From b8ef24470221327e4b6d2c63b7b1d80200726a3d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= Date: Wed, 27 Nov 2024 19:00:24 +0100 Subject: [PATCH 01/11] 3d: update cesium to 1.123 In some cases it was possible to trigger a rendering exception (when following the model and zooming in closely with small model size). The separate Bing maps API key is not required anymore. Also the orientation changed, the 90 deg yaw offset is not required anymore. And something seems to have changed in the quaternion as well. Not quite sure what exactly, but now it matches with the previous version. Cesium changelog: https://github.com/CesiumGS/cesium/blob/main/CHANGES.md?plain=1 --- app/config_default.ini | 2 - app/plot_app/config.py | 5 - .../NaturalEarthII/tilemapresource.xml | 28 +- .../Assets/Textures/SkyBox/tycho2t3_80_mx.jpg | Bin 134462 -> 118775 bytes .../Assets/Textures/SkyBox/tycho2t3_80_my.jpg | Bin 167849 -> 152501 bytes .../Assets/Textures/SkyBox/tycho2t3_80_mz.jpg | Bin 183677 -> 167980 bytes .../Assets/Textures/SkyBox/tycho2t3_80_px.jpg | Bin 138551 -> 122746 bytes .../Assets/Textures/SkyBox/tycho2t3_80_py.jpg | Bin 168829 -> 152999 bytes .../Assets/Textures/SkyBox/tycho2t3_80_pz.jpg | Bin 168640 -> 152537 bytes .../Assets/approximateTerrainHeights.json | 2 +- .../static/cesium/Build/Cesium/Cesium.js | 16494 +++++++++++++++- .../Cesium/ThirdParty/Workers/deflate.js | 51 - .../ThirdParty/Workers/draco_decoder.js | 55 - .../ThirdParty/Workers/draco_wasm_wrapper.js | 151 - .../Cesium/ThirdParty/Workers/inflate.js | 51 - .../Cesium/ThirdParty/Workers/package.json | 1 + .../ThirdParty/Workers/pako_deflate.min.js | 1 + .../ThirdParty/Workers/pako_inflate.min.js | 1 + .../ThirdParty/Workers/z-worker-pako.js | 1 + .../Cesium/ThirdParty/basis_transcoder.wasm | Bin 0 -> 500839 bytes .../Cesium/ThirdParty/draco_decoder.wasm | Bin 330634 -> 285948 bytes .../ThirdParty/google-earth-dbroot-parser.js | 2 +- .../Cesium/Widgets/Animation/Animation.css | 128 +- .../Cesium/Widgets/Animation/lighter.css | 71 +- .../BaseLayerPicker/BaseLayerPicker.css | 109 +- .../Widgets/BaseLayerPicker/lighter.css | 23 +- .../Cesium3DTilesInspector.css | 103 +- .../CesiumInspector/CesiumInspector.css | 114 +- .../Widgets/CesiumWidget/CesiumWidget.css | 120 +- .../Cesium/Widgets/CesiumWidget/lighter.css | 15 +- .../FullscreenButton/FullscreenButton.css | 9 +- .../Cesium/Widgets/Geocoder/Geocoder.css | 71 +- .../Build/Cesium/Widgets/Geocoder/lighter.css | 18 +- .../I3SBuildingSceneLayerExplorer.css | 27 + .../ArcGisMapServiceWorldHillshade.png | Bin 0 -> 8624 bytes .../ArcGisMapServiceWorldImagery.png | Bin 0 -> 12290 bytes .../ArcGisMapServiceWorldOcean.png | Bin 0 -> 9905 bytes .../esriNationalGeographic.png | Bin 11555 -> 0 bytes .../ImageryProviders/esriWorldImagery.png | Bin 11575 -> 0 bytes .../ImageryProviders/esriWorldStreetMap.png | Bin 8501 -> 0 bytes .../ImageryProviders/stadiaAlidadeSmooth.png | Bin 0 -> 7302 bytes .../stadiaAlidadeSmoothDark.png | Bin 0 -> 7289 bytes .../Widgets/Images/NavigationHelp/Mouse.svg | 166 +- .../Images/NavigationHelp/MouseLeft.svg | 150 +- .../Images/NavigationHelp/MouseMiddle.svg | 150 +- .../Images/NavigationHelp/MouseRight.svg | 150 +- .../Widgets/Images/NavigationHelp/Touch.svg | 238 +- .../Images/NavigationHelp/TouchDrag.svg | 256 +- .../Images/NavigationHelp/TouchRotate.svg | 150 +- .../Images/NavigationHelp/TouchTilt.svg | 268 +- .../Images/NavigationHelp/TouchZoom.svg | 146 +- .../Build/Cesium/Widgets/InfoBox/InfoBox.css | 93 +- .../Widgets/InfoBox/InfoBoxDescription.css | 179 +- .../NavigationHelpButton.css | 94 +- .../Widgets/NavigationHelpButton/lighter.css | 39 +- .../PerformanceWatchdog.css | 16 +- .../ProjectionPicker/ProjectionPicker.css | 39 +- .../SceneModePicker/SceneModePicker.css | 57 +- .../SelectionIndicator/SelectionIndicator.css | 21 +- .../Cesium/Widgets/Timeline/Timeline.css | 104 +- .../Build/Cesium/Widgets/Timeline/lighter.css | 24 +- .../Cesium/Widgets/VRButton/VRButton.css | 9 +- .../Build/Cesium/Widgets/Viewer/Viewer.css | 108 +- .../Widgets/VoxelInspector/VoxelInspector.css | 16 + .../cesium/Build/Cesium/Widgets/lighter.css | 238 +- .../Build/Cesium/Widgets/lighterShared.css | 47 +- .../cesium/Build/Cesium/Widgets/shared.css | 104 +- .../cesium/Build/Cesium/Widgets/widgets.css | 1343 +- .../Workers/cesiumWorkerBootstrapper.js | 29 - .../Build/Cesium/Workers/chunk-2HSPJH3C.js | 26 + .../Build/Cesium/Workers/chunk-2QX3ZRAN.js | 26 + .../Build/Cesium/Workers/chunk-3EKULFHC.js | 26 + .../Build/Cesium/Workers/chunk-3R25OJXK.js | 28 + .../Build/Cesium/Workers/chunk-56S3WY3H.js | 26 + .../Build/Cesium/Workers/chunk-5NCMUEUX.js | 26 + .../Build/Cesium/Workers/chunk-6A5E2WLP.js | 26 + .../Build/Cesium/Workers/chunk-6DBAMVE2.js | 26 + .../Build/Cesium/Workers/chunk-6QVIJ7JA.js | 26 + .../Build/Cesium/Workers/chunk-6UMNSGJM.js | 26 + .../Build/Cesium/Workers/chunk-7GU2ORNB.js | 26 + .../Build/Cesium/Workers/chunk-7MCGOXW3.js | 26 + .../Build/Cesium/Workers/chunk-A2ZU5ON6.js | 26 + .../Build/Cesium/Workers/chunk-AODSXSC5.js | 28 + .../Build/Cesium/Workers/chunk-AXIFPJHM.js | 26 + .../Build/Cesium/Workers/chunk-B4L3YPI4.js | 26 + .../Build/Cesium/Workers/chunk-BLYOACVP.js | 26 + .../Build/Cesium/Workers/chunk-BRFVOFKF.js | 26 + .../Build/Cesium/Workers/chunk-BSHGEEYG.js | 26 + .../Build/Cesium/Workers/chunk-C6CGQVLL.js | 26 + .../Build/Cesium/Workers/chunk-CHGCLMPO.js | 26 + .../Build/Cesium/Workers/chunk-DRYFJEFT.js | 26 + .../Build/Cesium/Workers/chunk-E3BAMNKM.js | 26 + .../Build/Cesium/Workers/chunk-E5APRSR6.js | 26 + .../Build/Cesium/Workers/chunk-EEABWYUP.js | 26 + .../Build/Cesium/Workers/chunk-GCC64MRJ.js | 26 + .../Build/Cesium/Workers/chunk-H3L4SJP4.js | 26 + .../Build/Cesium/Workers/chunk-IIPSFM7Z.js | 27 + .../Build/Cesium/Workers/chunk-IISQCXJ5.js | 26 + .../Build/Cesium/Workers/chunk-IY45XUGY.js | 26 + .../Build/Cesium/Workers/chunk-K4YWEDY2.js | 26 + .../Build/Cesium/Workers/chunk-KYVZRNFI.js | 26 + .../Build/Cesium/Workers/chunk-LNO7O274.js | 26 + .../Build/Cesium/Workers/chunk-M243PNMW.js | 26 + .../Build/Cesium/Workers/chunk-MOE32UQS.js | 26 + .../Build/Cesium/Workers/chunk-NYU5F26A.js | 26 + .../Build/Cesium/Workers/chunk-ONYACCBZ.js | 26 + .../Build/Cesium/Workers/chunk-OYWUGDKS.js | 27 + .../Build/Cesium/Workers/chunk-QNEABTP2.js | 26 + .../Build/Cesium/Workers/chunk-RCNUJLF4.js | 26 + .../Build/Cesium/Workers/chunk-RYO6NY7F.js | 26 + .../Build/Cesium/Workers/chunk-T53UE6JF.js | 26 + .../Build/Cesium/Workers/chunk-T5AUOWE7.js | 26 + .../Build/Cesium/Workers/chunk-TC4O6KYE.js | 26 + .../Build/Cesium/Workers/chunk-TRPXTCDK.js | 26 + .../Build/Cesium/Workers/chunk-UBAKWGRR.js | 26 + .../Build/Cesium/Workers/chunk-UKQRKTK2.js | 26 + .../Build/Cesium/Workers/chunk-WHQYJFDH.js | 26 + .../Build/Cesium/Workers/chunk-XDFUUQMZ.js | 26 + .../Build/Cesium/Workers/chunk-XQG25LEF.js | 26 + .../Build/Cesium/Workers/chunk-Y5B6Y3WD.js | 66 + .../Build/Cesium/Workers/chunk-ZEP44EYN.js | 26 + .../Build/Cesium/Workers/combineGeometry.js | 257 +- .../Build/Cesium/Workers/createBoxGeometry.js | 256 +- .../Workers/createBoxOutlineGeometry.js | 256 +- .../Cesium/Workers/createCircleGeometry.js | 257 +- .../Workers/createCircleOutlineGeometry.js | 256 +- .../Workers/createCoplanarPolygonGeometry.js | 258 +- .../createCoplanarPolygonOutlineGeometry.js | 258 +- .../Cesium/Workers/createCorridorGeometry.js | 258 +- .../Workers/createCorridorOutlineGeometry.js | 257 +- .../Cesium/Workers/createCylinderGeometry.js | 256 +- .../Workers/createCylinderOutlineGeometry.js | 256 +- .../Cesium/Workers/createEllipseGeometry.js | 257 +- .../Workers/createEllipseOutlineGeometry.js | 256 +- .../Cesium/Workers/createEllipsoidGeometry.js | 256 +- .../Workers/createEllipsoidOutlineGeometry.js | 256 +- .../Cesium/Workers/createFrustumGeometry.js | 256 +- .../Workers/createFrustumOutlineGeometry.js | 256 +- .../Build/Cesium/Workers/createGeometry.js | 257 +- .../Workers/createGroundPolylineGeometry.js | 257 +- .../Cesium/Workers/createPlaneGeometry.js | 256 +- .../Workers/createPlaneOutlineGeometry.js | 256 +- .../Cesium/Workers/createPolygonGeometry.js | 258 +- .../Workers/createPolygonOutlineGeometry.js | 258 +- .../Cesium/Workers/createPolylineGeometry.js | 257 +- .../Workers/createPolylineVolumeGeometry.js | 258 +- .../createPolylineVolumeOutlineGeometry.js | 257 +- .../Cesium/Workers/createRectangleGeometry.js | 258 +- .../Workers/createRectangleOutlineGeometry.js | 256 +- .../Workers/createSimplePolylineGeometry.js | 257 +- .../Cesium/Workers/createSphereGeometry.js | 256 +- .../Workers/createSphereOutlineGeometry.js | 256 +- .../Workers/createTaskProcessorWorker.js | 26 + .../createVectorTileClampedPolylines.js | 26 + .../Workers/createVectorTileGeometries.js | 257 +- .../Cesium/Workers/createVectorTilePoints.js | 100 +- .../Workers/createVectorTilePolygons.js | 257 +- .../Workers/createVectorTilePolylines.js | 100 +- ...VerticesFromGoogleEarthEnterpriseBuffer.js | 257 +- .../Workers/createVerticesFromHeightmap.js | 257 +- .../createVerticesFromQuantizedTerrainMesh.js | 256 +- .../Cesium/Workers/createWallGeometry.js | 257 +- .../Workers/createWallOutlineGeometry.js | 257 +- .../Build/Cesium/Workers/decodeDraco.js | 100 +- .../decodeGoogleEarthEnterprisePacket.js | 65 +- .../cesium/Build/Cesium/Workers/decodeI3S.js | 26 + .../Build/Cesium/Workers/transcodeCRNToDXT.js | 95 - .../Build/Cesium/Workers/transcodeKTX2.js | 56 + .../Cesium/Workers/transferTypedArrayTest.js | 49 +- .../Workers/upsampleQuantizedTerrainMesh.js | 257 +- .../static/cesium/Build/Cesium/index.cjs | 16027 +++++++++++++++ .../static/cesium/Build/Cesium/index.js | 16027 +++++++++++++++ app/plot_app/static/cesium/README | 4 +- .../models/CesiumAir/0_Cesium_Air.png | Bin 464090 -> 0 bytes .../models/CesiumAir/1_Cesium_Air_Prop.png | Bin 162164 -> 0 bytes .../models/CesiumAir/Cesium_Air.dae | 333 - .../models/CesiumAir/Cesium_Air.glb | Bin 623993 -> 586652 bytes .../models/CesiumAir/Cesium_Air.gltf | 802 - app/plot_app/templates/3d.html | 57 +- app/tornado_handlers/three_d.py | 3 +- 180 files changed, 54923 insertions(+), 12272 deletions(-) delete mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/deflate.js delete mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_decoder.js delete mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_wasm_wrapper.js delete mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/inflate.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/package.json create mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_deflate.min.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_inflate.min.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/z-worker-pako.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png delete mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriNationalGeographic.png delete mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldImagery.png delete mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldStreetMap.png create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png create mode 100644 app/plot_app/static/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css delete mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/cesiumWorkerBootstrapper.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2HSPJH3C.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2QX3ZRAN.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3EKULFHC.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3R25OJXK.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-56S3WY3H.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-5NCMUEUX.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6A5E2WLP.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6DBAMVE2.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6QVIJ7JA.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6UMNSGJM.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7GU2ORNB.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7MCGOXW3.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-A2ZU5ON6.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AODSXSC5.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AXIFPJHM.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-B4L3YPI4.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BLYOACVP.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BRFVOFKF.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BSHGEEYG.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-C6CGQVLL.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-CHGCLMPO.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-DRYFJEFT.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E3BAMNKM.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E5APRSR6.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-EEABWYUP.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-GCC64MRJ.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-H3L4SJP4.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IIPSFM7Z.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IISQCXJ5.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IY45XUGY.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-K4YWEDY2.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-KYVZRNFI.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-LNO7O274.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-M243PNMW.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-MOE32UQS.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-NYU5F26A.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ONYACCBZ.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-OYWUGDKS.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-QNEABTP2.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RCNUJLF4.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RYO6NY7F.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T53UE6JF.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T5AUOWE7.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TC4O6KYE.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TRPXTCDK.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UBAKWGRR.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UKQRKTK2.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-WHQYJFDH.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XDFUUQMZ.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XQG25LEF.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-Y5B6Y3WD.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ZEP44EYN.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/decodeI3S.js delete mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/transcodeCRNToDXT.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/Workers/transcodeKTX2.js create mode 100644 app/plot_app/static/cesium/Build/Cesium/index.cjs create mode 100644 app/plot_app/static/cesium/Build/Cesium/index.js delete mode 100644 app/plot_app/static/cesium/SampleData/models/CesiumAir/0_Cesium_Air.png delete mode 100644 app/plot_app/static/cesium/SampleData/models/CesiumAir/1_Cesium_Air_Prop.png delete mode 100644 app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.dae delete mode 100644 app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.gltf diff --git a/app/config_default.ini b/app/config_default.ini index 2a145402d..d5b469317 100644 --- a/app/config_default.ini +++ b/app/config_default.ini @@ -14,8 +14,6 @@ airframes_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/air parameters_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/parameters.xml events_url = https://px4-travis.s3.amazonaws.com/Firmware/master/_general/all_events.json.xz -# for 3D view, https://www.bingmapsportal.com/ -bing_maps_api_key = # for 3D view, https://cesium.com/ion/ cesium_api_key = # https://www.mapbox.com/account/access-tokens diff --git a/app/plot_app/config.py b/app/plot_app/config.py index fa28de28e..e195a0e38 100644 --- a/app/plot_app/config.py +++ b/app/plot_app/config.py @@ -30,7 +30,6 @@ __PARAMETERS_URL = _conf.get('general', 'parameters_url') __EVENTS_URL = _conf.get('general', 'events_url') __MAPBOX_API_ACCESS_TOKEN = _conf.get('general', 'mapbox_api_access_token') -__BING_API_KEY = _conf.get('general', 'bing_maps_api_key') __CESIUM_API_KEY = _conf.get('general', 'cesium_api_key') __LOG_CACHE_SIZE = int(_conf.get('general', 'log_cache_size')) __DB_FILENAME_CUSTOM = _conf.get('general', 'db_filename') @@ -136,10 +135,6 @@ def get_mapbox_api_access_token(): """ get MapBox API Access Token """ return __MAPBOX_API_ACCESS_TOKEN -def get_bing_maps_api_key(): - """ get Bing maps API key """ - return __BING_API_KEY - def get_cesium_api_key(): """ get Cesium API key """ return __CESIUM_API_KEY diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml index 6f502e7cf..d7734cce0 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml +++ b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/NaturalEarthII/tilemapresource.xml @@ -1,14 +1,14 @@ - - - NE2_HR_LC_SR_W_DR_recolored.tif - - EPSG:4326 - - - - - - - - - + + + NE2_HR_LC_SR_W_DR_recolored.tif + + EPSG:4326 + + + + + + + + + diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mx.jpg index 2f298755640bb9a0ea091ff02d66c8fd19473345..67192282d950d99c8a6e46de20c6e2291295be2b 100644 GIT binary patch literal 118775 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 KC|1t+AOG1BP&b$W literal 134462 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 tV;y2v$4JxpHKkKNZyOx{;iUL>cPKpXuUoEu3S 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

JQ}n*Piy=h97Dp&(!pNR9S%6R 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 MqFHV|sDI!5KWo*gV*mgE diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_my.jpg index 803622879039c6c6bbf5c3b8989acd8229304a14..3dfe883b32634e08fef90982bbfe4f75388bdb0b 100644 GIT binary patch literal 152501 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 eF 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®J-Y=N_BX>PM&2>Pl*4dvTzM zoh^+F5=|+1_0{z{*9bc{MnEzHo7U(Mk4a<^>PM(jynB_B^h#Y`w2MYjXoYc)@CVC5 F|Jn05A1?p^ literal 167849 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岔g3oEy+?}!aesnO)f&*{e9 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 LAlgX(--rJLv`JM( diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_mz.jpg index 476ca2c1d8f954017f2e0221f358c7f04b4ac5d6..7ef2363f27a8b6743202502fa4183362e9540def 100644 GIT binary patch literal 167980 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�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
      purV00{IM8EH)iMcM7sk$syFlj0(<+w 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 literal 138551 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�B&SF>cZ5^V2P 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 z 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

      Bv*Al^xFfPkF137pHJsOs9<>?=s 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 aJBNwjC9&DH+$sB^eMFFs%dr37>;DIyJ68k% diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_py.jpg index 251e07cd5adf4b639da448342d07e35fcfaf7678..a8421113e0b4a7a51160372eb19a6f2ab2e35884 100644 GIT binary patch literal 152999 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 UE9TaW1e4Xu)s0izmhVrFn?oG1&1>9)rdqYW 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� zIZdbr3b|9gUwi4=I}QE$wjWMGjjk^Q&lk+^1KOQKoLD?zF?4kxgg7@aX5+Z*TNm{j zT05=fsmrVjTW&)DBHGGKvOLLF2}rLp)zt(O^$A2vKgo=$r$~AiL6hJ*Su%Z{P~JiZ zo+>({DG1Ea6RXPV;*S0kmwbDm_EBZYb$SCD9cN`M6S&8#w+H@^rzhY%UM?cO9eJ^c zU;Dt+wA)1b(*0Gnh=3el5h38CLH$Us@3S7ET%}Ic@M=?cemWY1e^@ zojSG6mqTW4_-!7|J+i&|L|GOzGSor#4gU6ST|H%NP7H!3g%s<@_>4gNXL769iBolmWxc(@|0*L4QL*Pe#Ey`n9XJ zc!kF8ZHHlfR~U@dGWnWo|<`qYDYrOBxs3~ zrGnuW7@E;v%&%k(dHsGE0(0{o)y5O->b_-y3eeV0? z@TwaOhm`N6)ko?sPqY$Qyq(YI4poFvbn&cU+kTR1e9fm z0;nIe-y{5#G89|hH53%rTSwEM)gS~I8}n9kb>9gU(>AZ1H#-qtfiR;Db&WVE#x0J* zY&J_DI%gQj=G%by{dF$0XX4Klu;%jY6Et~U#s59^ssFXjH?QWrhA?}DyHIQh7A3_??_w3;>9?o_F6RLKpL}z0Vpg$6fQCH zg^t$A7PtL+y6l_pLWthW)GPbAeM|NU{Nv;M#vNWn-t)o^Aa`$r_siYVJ5>yN#EMP# zsM1K)e{#v`qxZLAp8h8ZU|^hj5{lh0c|2s_2a4R8sSaD#O^^bR5s5svU2CC{&tK87 z9zWC_*+5GZbtI70x6K@hg~~S=iL_0vsCp&Lc!YH7I}E-rPZ8-qJo%joo8uuqQEd4D!=rakrAI7AEZq+W)s0KC0raJ^%kh{yk4oO9-7w z2FXM;+Z*g! zd`#@feRN{dr;v+$RlL9dsASCs9;vRFP14`cvtrohW@%dG;DIy9AeVb@iU7>3t~n+v zTquh?OOw0F+g4m&p&t3B2ajz%3DKL+NqJ|)ULKk3GlePU;*{s@E0l*rN|Eoaeh{I< zV1vgAPhDti7sFuF^FKzup*K!DMtM2nwzOeHce?gonWuA`%~#vVB@4Ng>)IpzXWT1Z_W6W~f&N(D3$Yu%FNA?8b9m^xc7mVx-Ws zChMmIf1Dmz6}4BFQ?9KuGS(h9nT3kdHAqzP_X}5t)t28tK zC{y6cr6RF_d?D0vDF?^OK>RmMlbPRTB%g`JN~MNS_T1JTJm{x%0hmzmIq@E$R1Jy$ zJQMebD+9_Y^$U;&WVJ1r{R6^bO8O3%_U@oG-I-39zPE8b&ODG=dNJAOJ2e5hY~3ml}KvY{hLJkG=lX=m#|_?Jz9;diqdU`dEI<4yC? z5>-_sQ=F`El`{AT_03+Q57Z2txGo2JNUpuQ0KXn~RxWWTL1DG@wvV-x zN1Al=%^*!kD>oUd+f>vEl6 z)vH3~L?^^ZW$r{DLPf^^$Iw{@G}*RcSVR#NL_oTv8>G9Gh7qG=loFDoyA_liNH>hp zEw$08zz~owX(>m%qejSx?|c62KZ}R^zOM5;j`q1%(%b^bkuYgU{##Mp{I5W!Zp9P$ zP=$A)7;%spzhZt5;EO6X;_@Kuaegu8ngB>YN{|1uUf5YyAHW80nGz0~zaHH~#6R~5 z4wQI8FDw`4W6m(3wwk9LPPE&l>d}O$=cn!pwO7gJYyOm)5?Uki`mEtk&_sHLxe<^F zG{%C1Qm@kR2itrzErVZ4sj;t_s44ABQ$ZviNvP5!N zS&Mc72m(f z>O9R_*MSilJUJtD60ZTy>k~3~FHoD;s?FpOi@RD@6+~F%S^(>sm)Sp(kZn9a=AJ}^ z#5H#%8dP*L8@q#=esrbwJW#dd|8L3Gy~WYBmD6AJ zhchKEj;fQHq<0#clAP$1P6-})aQ+5g{6OtN($c09e;FU$`5754vv+GgU+-=F<|jIx zKg*a=XQ#Q;eZ7Y8&XG^(UaKaKC|vF>R#X**QKmD-`PdbWBcFYl8JFoXOx^oP8Dx`0#~^n&02QjjIv3q{2BouO}MOHPoB*)s;m2l*25FGpk|U7 zW1$5e@NS!cI*(S*WJuv2yz>5f)Sv8MqIOg#Pq{R~6ezzRsLk>C@#ci`?UWwDigulM z*tLsByd5~KQFcDAzls-lV6X|EEEj_m-9$H~1G5B0hdL0%$#GI|}-)%>4nn;g^;YYr+hm1z%>l%+Y+aflQ2oYF7m}m zjwnjT(>QpTZh9ATL{=u>Q2=r5sDc@PMw1h0@Z}Vq!^oB{?BAV#j>jz&E8jna8Y(sIr^Kkf?hPgGBQ!sA$ufGYS<{9a4~-?6nF|Un-;1cf(PC2Xv9mU2J)nL#`Y*daC3t$?7=Py zQWkqf5~R7h&ShP;6EGM3xjJnWfGPTN&LNDbILK~jMgJ&e6opS`;M1JAcX(vm!frjm zf|g9VGwh0$%drPnN7b*Li!A!WA3lg+DjOXz)M#GEtjvyF2K83>VaJF!4{s%-I6!Gl z%=c$?Ui+qUUCeH=EGaaa^2U@|8(Xcft5&)^8MRk@qv(MKi>M$ ziycPfjaw0DLS2tnZ`$IGUgbUN52TLs4qNYS`Hl?{JiW3>?0IMkH5re<7eb-;fnG9# zSF2K?U|~TcbP5IF5Pk(EPfOPDV053fSwW8UU|>vkGHFKt`x=w9MM?O|%rmf=dl69@&c?hq=XNfVB%@=T(C^og(A_OFD8^k8uu|7h)G zP(rWLQVm5whMDix9vrx62iu$e-Wr|Ivp6UI@gGC--|+hZT@O1P(d zJnVjh4OvyJi#vDtvZGho^!}reM_8jphmDY@YPh|p5s9Ga=?%*G!CMtdU3|ldjcLsX zdc7D2(sVIIS2rGiFf)CZSS{RmE*cW6TYIZOueCq^a`?s46CdC2o*^YFTXTEBU3#X! z`d0H*BzZmc?m5r%XFe%U-4{4HhaJ?J$g}+SQ!FcI?$QBsj@%2JLHE%T?| zU>E`g8+4}DRZSGw37nOS@^Xd(4LK~lbWG3vOC8^72jJ#aY=&dP&gcVwIgjG)OQ?$Q zyXPEA1se3pkLbjgT8i)(Dqjd;p@dygaA~wp`<@NyIJm6Mw#M) z+%HHA54J4R@Av=iEvuTc6Yv`TJ>bJsx2FwOhN7dSmczCf`d=H!fF4Rx{V46PN$d9` zaZ0322djP&rBSeU6V29Fo&8AdFN`Pk`|G!u8c^?XJJDOclqiii0kXDo7cFtT#K-?>rp(8)i z$fnV19!-FeG@q!*B(FJ()s4Nu503F8|(X!!F1U>WQQph{0?H<1}dZc)Ho zc;!p8u(KcC%3CWbw!*jkHS5c!#78kGe-28n=-{xXYQXHw;}RTPsya7n9JOX3O!J6oKUuYq`QawBK+S| z*50U)LalsWy=NF^fH9k;6I);(G7FjQiD)* zR}o9`3rLA4c<1DmogP=%^LETap)m1l$$1s}Re%j33u-g> z`$2bX{Jl~c_D##Oa^lRHR&nV+XN~C}v?PI@1sE4K5d5)nbM*fACEHl!L-&%T&m6_T z*ij`5|AbLLEKl0N}De{bpQRkXn0jRzKd5+BMW! z&_r5yAR_IbqC#6j#t{_V=pNqcnUUiGfjRKQ%=KBRYLVae`ZNXpXQ9 za~6pDUR^V~%B|4tAINXblCv#Y5|Nh2S`H;Q2&d>%WgZ+9&%^X#aHXCxjt)X6k4`Fv z%G3}6jEyari|I;(dTuuPA$ac+iD$K=&uYCZqGg@_1x25*d?W*`3WcLO!@E`N_Okn~ zaQ_}v3Rv$ug6Ae*1*!OA8&aF8Qf1HzGqiy5H?^vH1%amujle2o;$~hB zoUL!1^`A6e)TYs6-I|bhC~k^T{bmALTPZ>%GXT>(+gZH>8aOaw$}~T`-i?yrY9LS% zR#HN6SuUyAFThNGy02R3a?sp)X3tn1xi^v(*cN>(@*>)t{O`^QQ@i)dc-1NG> zy>QXkP%Ki$)@psmm|k~d#ezymfZDVefE|RsJ-d5e)Oh2N4>Pvl+s0UZPP5kfCDmr* zpVC`hkk(lrh{`rTp?~!|dF>hCBz2Z};Z<^*<5a5RVDD*S)jR08Y z2u>KD0kIAT$`$7i&;DvZ+Xko;e_hj_(4Fl8ZsDu2UVQcFpj>N~kh-xzv9#)_03UyL z{!xjAqd<#Bu2AaVUe5&!_mV%8AePSA!AHHQFou!e|ndVn8o?#M)J@J7@gq()4kw19n|CPK=)Km5pyPh`@0Tsf&dPlm4h1 zx|%eY(cgyIuq-Y2DBk)f%S(kz(Bbhe&v5=+?~i6o#$0!}6U4voT<<=3$<%%2JU{(I zjRdR3PwptIgjrB=3mnhPC>zn`^1*q0;kS&@e|&TR=c^ShB+*do5ep4uLXEeky7yU5 zS}0%ja{p{SWHV=#yI4^2Z{0}z>--ooQzU7WHnM^W7Cx{0P1b>qX^6-p+i$DSmGxv^ zm9G)#g>Az~KR02bX9Kva8!!rkwY`J-$~8?dB=xwfjoM>M=xw)G3#a z&R)fv&9U=~FeUz4H+uYm zM_ZtD*yS7>->gED*?KXqI%VI%x|sR#;8{E>3}UW2ZUrcds?+qQD<98u9dS+(~HlRX+{Wd z`xKx3X3t;p5GKIh`B4Gs3If?zjq56?F1m5QRIT(*h4Cdvnb9v)eYZVl4939NUAQz? zsEyghLisw@%NJqnfb8(Z)H@_vU7k-m@deEX)O{&!DuFo+4+6r@oJ*O_#zG=x9jFL> zs2dw^^UAx&!NC*DM`bBD?w?M9r$(|LF+UTaFqZhwBVjnK(_)!<>&1PP3((S{H>l*J z>u*+z{rhfGCo@GDBb-<_*f3Wz_hY;OnH}UEav#?z{p=`sp2&r8!gMZGHtqK-5ofw9 zn@V2*Aq+0*M}I&XveB)1QcNtUHTrfo{+xO6Nvoh#@U9RP8oDb-`m`D)ic2+MF>mmJ zhFi}6Di2>dFmu7ErY3Ve5BE>~WU<^^0Id$!+xLb%zO|?kuEW+#4`i4lzebdLnR_Za zV;R*`Xwe_2++7+pCv-&j8+8MiEDALw29$OAS@5Kj>f*_?Fy|tU{?4x8UB`|w$1#G+ z9?D}}AyNEBM$uAvK53Rt^bYLhfxd{uo2jJ2ld^n1iug{j&%^bsk6KvHG#HbuaH#Vr zy}Ar^Qo~w%Rz0lN8Xq~cuDdC?2`IQVhLv7NDn61md7I8Yj7|LK0I`n^CU>?;{x|bG0lEX1zoFv+ohRyWuw65>3_3^Kg9yZKjz2$OISce z*z3J_2Yu}Jwcmr#%Nz150k4Fp-sp&&pSmVve*kjXkv6B9EPuBx$c)wgW4+gWi`Pde ztjarGg=04B#-URgO2Kiw6QGNHxkqBExF_Nsj2PHE z`}G2e0~V$~20{kcxhfBT`>U9a~2ha!?8&>*~Ch^XK0TRYr@rUgN4W z0;)T4Rz~n?y;n&-pKCaE9hO)aHcuuhl|cY|lQIz#5DbV3vklGq?~&>N(_B?V{%6pP zt5a|Dp*Z2lC~&4(MxNbBc4Tg)_1bg-U*k6u8;SbZR)JRy3W=zMNi~iW1=;Mzd)LhFMF6x~IZ{9{kSyP9JON* zGwj0*IoK6LT?OYlC80T$Y<=WHr5!r}4W9nmPw>6T9DM}xuGt%u`#iAX zAf}5{2Xkr7tiaTz2Tlqs?#PDoxseP6Q@A(_Tr2F zyoi(|lT|A^6-(kIvb2>)N8$`kxXH8Lbez^xa%v82C@Y>Xm&>HC(y%|}Vw4qKyTR?8 z6DPe9;}E*BrnB)!rdOd`R1Kt9g(Jho&_b?K7mLa1rZJ+F2aZpLA zyhfu{zjE7Vw3JOsl6;oAhw#b~TeQ9wI^S1#qlG9MM z)Rcu*Myp+K-W&C#()lIrO@~Ggo3*}zU3RJh{W|xAAy>JUnj3a`*GJL@5s?b#6a?A> zI>_>&qY8e%T`JjdQ5@#q6f>7_U3w$CPYQ@|Q^?dia?1)|Zp83KO-BJ2I9juNmiwLN>k~l*bXNoezkSngoC(TU0BduXoYPevE2RAu(ZGye3wEfq`X-M!B@l zweP|C3_W;I>fO&?p-1`!f7L=z9Xxl7*RaDQ^hG+acjCBt{j^mU191wG!!fbL)Z0|9h0`=85`|g-=RB_+j}APY_g!(*sN(1vsJ3n;ejpqRxEi_4 z!f>@%5LSk1uU`<`)@4OM3HtY@K$-lZ$?%eUD|v|^>px_t*62_ykvH0} zm*p&$TpIC&K_y&3CCE*n!i7)lKF4otg&wGjvkKVU%uX-C@w;M@{;?Wq?P2E$I(pT` zLPRy<6In=`;JKHNIoK_ux%p1VE9cB7RG4t(3HM19exOYlG3UYk+bgk@u_{?aiKU z{ALyHi@Ldm2{2m_t7dOTm0<$@Vp1ZEW6;OppWbH2&1ull2ez2%!lQ{>*FbRgVaGgV zMP1DJeA4QLydJIVaO1i$k1uv*5_)v~XL55hcvsG^>=n>&^e^HaiTb&ws1N9`9>>^a zEd@u|t3{=Qk5{eqJ2jLu*9R1Vpo!loAvg9I9q z;?a+jYP~79EO1XXH=OL4pIy$on(`6wX}iftl79|N?RJ8hZhl(@ynAx@ zeij(c`)Q;3ySv*8tcx=1v*^5NvaJs=@F~lNu%?jd7h)XTMy!uB`h=V(FRl(=IB0Y^ z(`(sNu`&6=U3FN)oqw`Y*uxlu8nDj7;0JQhYJTc+2XmB-|Fa~*R7wng?O5FT5b3lHRrotc{_+Z zEgeQK_dAn(Q-JevQA3r(4>i}a=)tzjNx(X3*ETIaNb#`6-NC#V0Q(OP1U~Q7{*{>|NBmao#ucDd;3sTdJx4J)aQ|txCP0 zcXUt>>+KA{CS%uy?iWgzK40y&zQ`!7!tZM}-^!3Hf<^Z}|L>kWY~N~=oAjiRC>M-& z%SI-Ytx06>l#_yGMqK~uR!VWkqb0UD;3Pj6WmESlQsV_qFJ{%34oWEtf79EU!YHJ5 zhiIKcow?|EX8q?CpO$qR7cFZ3nUPd|SjvQJ2$WUha`$9Cu#ov-cVm4<4oVfXmL9Zf zWWY`xOjORr8ke)=^7N-&^ah9f54j-)p|mV4wj#?0$*;%M#%0d@SdM_)@~uN;&0Syp ztw{;N!LXSCm&c_e7$_HP=Dhq6@OSp!=z4G5BGbT0kaqBaRs_Wtd6H}le0ncMLpkA?cyXn5Lw)X!U>YkffH>qYC#*fdcEw-=`?!RK7BW zbGO-+q0T1C`P<$lV)50N3;$+J=_UaA1*J?&@d|zyBevm#->>>Yku}qcVIX)+oZU5% zu1^>9CU>X%8hA%fs4?hHMXgbacqY>h?A7@s@Y_kx1_Q+I!vm9V6)EDq70NZ;CR+?O z_PiM+!~M8PcU`u;kwRScUz3u*`?(v;Q=X~V?Ojlgnwy9Wh!92nFiU8Ne%g{mcy6af z({Ndea+I2u6)n*tMYYVKuu$}&XfeN3u%72JW&u2q`4y)21hrFL_tV~DqM}}de>mMw zBrECz^GWjN<08&xrAFbVUx)?TP5c%FEr}YyF ztFoE0wp4@QJkZtFn-kdI789D5f zay!Z9tj&ZRyeTDLFm6SBwU+S4&1pMGwMaWaP_lsWM=mp|>^F3Kd5D4UK(`vOl@w}+ z>6cY@8n>-ryhl>VULK%2(8*|NjZ}h=WR^KBHR~KXNmuyBntTTbw@h9I?>;Sl zWL(9!#F6Y)s7tmg)1=GZ%w*k-hrUv4nt_Uv1J z!!Ft`&cE{aj2dYf(0|>M%?-#P)bz_b%Q)1sA5XH}y}5STn|%fT!Y$J+CHL9Hz~@_YNhlGlci~Bs0~$mZV%I}jx+Frtsn|lTXJtu_Id@`*wmTlIHK_=0jh6Mo=0hBsVz1Ni$ zeYJHkrj$0S*)ytM`||&#^<;FNUo#LCgC$es!V`y%U1EyT`83#MHQK+j1Yh>!7$+%; zjX3!39~;4Qwb>3*V!KHPU zK9INf(B~E{3PvPUE88CDl+Bx&d+>?+x7d1)f#1vk67f~RCnd<@vbmEad`^=N z2sdi_zG+8MCk_|7yw@G;4TMhxYbti1>upB2a#BYZbX)?vzz)IQxq<^?bnSvFI9cUE zufei8-MC))vjTOUVyt9>jSaDC}p3j~xFc`}gkdL}FE4cq2U@%|oD_igoLKvnZK z?}Ppos+k#QSssmB``QblK@@I_lkZk6~&`2R1vWWEfOPR*V>bscQbi z+jWW^g;N$&48z2ZO9}$~<(rK@bnl(&T@6jB_O;oBpYc>jo71NlRFi!b;+AwVkDgJs zebmJ>HHL#JO9KQ2I0GqkhGZ2^kRKwQirCfwV9E#fd5h| z8A#Qah99KhDum~>IZIO&&H+FiosL)5@G@;n3I(F=yDv5N0V3?W5yf(Domc39XrXv4u2=RVXtm>k@`OP&Ii&j6n0Q=n19kH zmdZ`*NxNmUX4eIwd{rG8Nax6was^^7t6k!4 zU0xBH@zyl0W!vH-15%4D$^JL<>7ht;Vv7R9eR+|g&XysO?31!58Ns1)XbzMYQ~6pX zGg)sV)26~~p{lsFWy<4Fn3krv z_7AWk6K^gFJk7VAhEtE(M2j{5Oa>37QMu_inG11ShEFQi`S~?Q&#~T66JY zIRHbeyV3W|JO8+q%fsH=?7b?7IiXljAwnivw&gucJve`@eY}Z#ApZ4wtWH{5>h?w? zl*o09&ZE&CwO7+|hEEz+RH_6i41j1&_{LSXASnGi9+Cab+cR?GTE4@O^o$*;?TP$D zTveQ<#!;9Xfggr8WI&rn;zB^x$X*7UMvfBcjVpR8h#_aqtfw)E3sYSmg^5DC>JhQh za061ByNZ_&rlI&r!+Cc?gBwI;lRMjPEFw_pX6?@oFz~MCJ=tAg}cFyfkNUwY_y2 z7=WDw%|c$g9T^lwTQ`Nyi-(kzez=~OC=`3;cZ!ylM|7JeVo>Yr#;+4J?BG&OF7#eQ%F(zHEo1HayGKi2pRLLW)k=uL%g_VIjH}ZBn@{**i;z(XtHwD z0YsMeb6O*!k0Y_VwE=VaIh#VrRr8Yu?=o1I!_PBxYU1<<5E>hw4ZA-WW%ef$ba}M1 zV=!TS-?&%|CE`D^Zp~eHA8b~`*$Iq>dMO zdho8fscqsWFvXho`3#QZv6aIvCN9=uMfC?cm7ntwC)sL_G*9VaDXpcb?D2>Z zp}7LvSwEHff?r=|?Y1oeZd#3a=Z%m4*3Lh-@-U@54b4v;_IgRw;|88ew72%h7R^PWfCH8@+s>g2v79 z)`b3$1In(8+oR3Ms}LP7dEe}?Z|G(VrpL~#Do#-TRP=J@xU?yTu>-QXdj^D;<0WYr zIn3=@*C$c{#p^4)uampSu+g`StKiPO2e7&D%ENwj~e8WI^wmVgxH#lH`uNfofd7U z#t1(ZCBdRHN4BKGn%~_bW6bx{_CW1ZIW_NEZX)n|#}}_O2lmc+M0g&wmu%t!htjK4 zj5pB5&$a~!7cb_M0`xLA9}FbrERNYWMp{2l+tsi=Ju9C}ilyv$< z%8zGSl$phq-hrCojX2n{4z#W9aTCU~@$^4K@(&*1fSHJIj?;B6O*tuha8aOG-5Ys>2J&4 z&R#WHU5V905w5+ATpe9rkIZV8$9-8JtiN zWK(<8bo;$hdX-Z*UCjLSv~ZG<48l&uXU zwpVPIAhm`~?LfGc>3;OfLqyazg!3q+{&;U^m$q1+Jx39|FmyyI{qLU55~raciix!k zaF7x5fX9be3fzi?A(K{8>o*?_O(Vk3=qp+G%ruzk{xnhpU(0WPZXhREZ{)cJ9!gQ@C8`MW=O~Pjc3n zf7v3lxBOP`5pQ$Vm{rB5nEEK>Ux8_a4PvZbqh$=Utm_+T zM{sfbEwiF*Q)e~to68A?*fF3=O-~Asx*X5qYfFu3+8muB(U6b-p{SckIlFYVrS2tU zSx5lP6y`8H@USB}eJaUu2}TcAkbqxQsLMz5#1G9p$_381ul{$>=a}J>-CX3?e)5)v@Z2 z{|UU&57L+XP|($kP3#f<@c!>n(|EL6*4;=@iv=E60+T@G^jCP(bQ23;1&i>#jd`Cv_1^#V z7P6vNvx)rcDh}7JCB0$4E%VSdntFy=e;(s{?tT5IVsj0}TK5$aFmwp56AYK0jil|( zfljoSGzadoVMKW&fhuiiLJd#fO-%8+B~(&S&ccIOW$?;z(#}i>@|-#fH@n*H`bXYE z=N-M3)y~o2)qJa5-_xfTJ_+b`98NdS9X8qM&>EYU%z!iXy#!3L%j?uy(A=RQ9X4Kq^Xd?%(XXlgHqVLpvDb`LaBbwy&1 zul5}Th4a2eg!?rIFs7~?LM8yVV=?q0$%)f33aywTzOYlLp7ndkc|9;W0`lXABq%NY zq4CZBo04bI;9p_uI5_Fg!|vvz+B!}I-1WMsg@^271Evi{nVP2P71|ALa>MMQD< z{b!5p9DMIi<$G;xRwI&lGn5?JgvwSKs@nRxKpVnmww`r&;lj1N^mny7Hv{X(>U7kDh47Xu|eT z-@0CB^FA*h{rl+bq;T6>MEg)BO@n5(Tvdretlj=Z>3EIs?ievP##5=)9&{r+7>8K& z{@bq9$(BnvI72=yLDzKJH##+2AlLkvk|H@^bGNa_&GVm+MkU=L+2RxaU${F!RH<41 zHSIE~wrCxrYAs8-Uulu1F9Ck{2V>OnFI2z8bZAs=I+0gAPzr(F;WOXgN0d1{Kv^X7 z-AK?SJTgCjP^~9@RJB_wleURlX26Ptdz9f@)zf#{#x9#v0-h-Eo$d7@Xt|Fq%+ zG*hW#{_~YKcGU9HD_}AEU09qCt?D_o3wX;c5nR+En zV`1Cb^(|Rld8SPOe8bJ{&s2*R1$;O7otgx2k7PngO3r4mtr z!RswBRDc)59o|&`^zJwM18{OIR@8qeJh2Y43Z1HXLGKl{J%qWM1ZhlpFHUDd7yC^s zcvZQmniX#WM&vy@Z6C8JD@g&S%AzJl-}Pvn4%tsTGJQ%*IaznVCk?eSHOZV*w$83Q z#~{q@Q%ghK(d14rx3LT-y15qn8GBkPGBgV-veYxmebR-#_UrdbJ1j^3ck6W_+gDV8 z#L;*Lz@pHd^N5LN8&|1N{}|CyJ2#Yk-t=tj3c%+FtO#?cX3E^O9F)Xur!Jk*1r4Rw zcXa=&O`J3(Ezckrv#EH2i)6MUW zPPICVt*$qGwfxv$v?Sf7qQh7w@m%N6D{xg>-?StSqe`QVO8h<+);ergRtoaUEP=fZ zWQzB@^`pEl`deL9ZC|uvR-SGO4R#~{BqTv?`hy2bijuZy0J%^sGk2GF+}!wAy;c&j zk)T7?wXcS{aap-^O`&c4&;kPdS0g|Qb1xUA{6t7DDJANJf?!Tz}8>H{MywF`>hD!Zg?G^GsJE{R);53#rCB+3PRs3(TmB zC4C)s8wbKOcBIXTiRjic-D++Mt=iUf=YVm^8m+pIrI?9|=!#)2xkRJn$F{=j;l6A% z%ireKzN%$8q=u$Wb(Tk=WhMpZbFGRc=PSrR+c>2|_;Xs7^6KY0Ul{JxUhi^?T4kS2 zr+~lwnSdG#%{csg(7JUo`v>Z~A_J%`&Zg2qPqiOjT}xv$$>&8h#L zx9|1oc^WFce#N{RJ_QsMGWM34hB>~!D;6xlO?oqT#T>ebn{O_KlMg{GiIW_(^$KH^ z4^+^oR~IO=@>q=AeL;1^(hyHNqWYO7PSSXlSHqW6D8GDFF(Qx9#jRQ8QiptGM&x+| zT~biPN}r-$G0psrP1u2&dtI%*_xYq4La2FdX7_3zu9rBwG{Wv-Lw$aw9L{)1@!a(r zqOF(iWSHWnhdRoxv;*tCbK^HcK(O-Y1+G}R;?vU{bxUD&{Kb`A1ZP=HrBD+M|MCCs z6)@;21$T-QqRdediZ4Gn0j{5+!Bak=%T^)^tTeKe3@4=y#5Wwd!HSc@$~kp6CMZxEe0 zbk6OTSv4tKIBl~QbueLs5_Vv*A@~1|6@V|j=DKhPcPFB%W>^Au6CF?yzQz3zH1SMAsdW?l1rsO{s|aXB?&~uh;lsegAC|U?k~7Ml3aa0TK2ytgM!Wt+DD$PShl? zmZu`5tZjfMvHzjy3q%57Om*g>b{B!F+c1vZMhcj6gyDE=FrH6sLE1n>Cf`2D#gq03 zp2J!ri&CO3&dM2B(bzHdLHwIwm`r$xqdAz){x_!|NdwN%p$&cF2zeU(lAUjH9;q>g zSbt$zw%(*wMw9JH-y3!UzkQv0^fv^vuF|Cy6lN;WJ9oYR%!e#+Cb-V~=RE2{I8p~>1iuS$Eh>22k?GQY$b8NdXF8nF;P>Dt~FumX^*UC^nb z^0`M&P$KYnKAK|nh2?4eyFr2>x#e=c!;Cqr+K{<-tt-6+((tTChQVBU*DWeHJ|$Dz zqP%v0`>x89%X2x=!qG|+Y`?j_>g&89*-4*s!Fnr4nIQ-61+e4`S6u%YYeiA^*{wcm zcZtzqWm_#^$Tw5mimB#dy<6H=A(5goR6wZAvOik)@dndm;hoj4^#nB*?o0AiRTd{R zd2GBaJ6{)3n%KBy_ElRUa`q_bXa_jE6tN3&q(Dg>S?sbboIDlny0bypFp&vWMC<0s zG75t$QILKYMq9CvD~Zl%zqcO9aG%}jdBNO##L_(d=*8^uez{o;iioIY?7mI|XOWJc zceP9UH<1~O3hCfeGRI|aSYgq8$SzG*9q(pq5lMcx>e6{R%E5K0Z|6W?_j5 z0O)GEVY9F^{?YwCw6yst^TSodcUyrF|p*pDlRQ;~!!Nr`3)=#TNlSsKQ-EL+g zDyujRe`^)a)O(_d6Aevs+5L+~wYJmN3q|GKq0R!Ek?yZOv#+P($`CW>^TOto{5`OH zw()hl{NN7j!>?WZtEB7X@d23z?rW`?ZHP7UlZyOENHoRqD zTlW;)7s3iF`Vo`cwf8A{#(ns@_(DD5Uk|PtHP$OTj{-afCS8H*XwlKD5E4c=C~CY~ z`zHrOGlB)6)~lOhxIg?A(x~q`RcQO1K-1HDS5o-`lPE!vPR-#6xpGqZ3wD%R8ob1o zBz=-9f3tV@YiN2x5u(wtw5k+wHR=0ZfT8Y6uKND(!iBG)ZvM(DCZ*;v^NAXhw6cof zepC?;?)SVp`>I1ujbZ3*1f^I2RFh^?KGml4UPjz3^xKnsL@Sj5Jo+Du&f;jSC+cKeE!`r<|6 zH^?f)8E?-iX)Ed7?W8E{WUq0hz`%^Lo{;eo;d_vT{!mU%DfvdJdzmId5UZjND$r$J z)%%M{d6-dKB7Q0@Bd{suQ?z%S_yUBVO;5}w@;Gi{_7y@F^ZuTFiL z-}!re0=FQwr}kMDT6ep4RTV}^uk?vvOq)q)gND1PVA?M2&&9CH+HmSR?{9kpdAZ1A zu6O9FjM7d4hF}NVNMJA3gb)zCQZ62kCVkUt>NK#$6#-B^&G+Mu|22m?r{&veAiBl+ zuR_7dUN&;5xtT!=j$ ziEaCAe~Yc$0C$)KroT^C%E0fdFSE;A>H`3_Avv9pUIF2$;LFa*x4-oBH3=<3@9+k( zvUlAYd;22P(F|+cj9!}2NZ;j~y%UWmGU)QSkw)4e)`?y?2^N-G1|P{ZSeO`P>0B-+ z6th#9Nml^21TX5ic;5M|v~S7usNHemJ?K3;1Vb^|lm2SD)xA6g`ltBawXl~8vR$nx zx&>W1kHv3m=s{(&*X-IH=Q)oXJtWlCEVNdm(jcbukz}Bu_nSwFwX;K%Jkm54{SD=G z>5d*G_OjR`cwY6-7*OpxUm`|ZjIwG(U!M7zWyK|HPbEMQ{vLa$EC8lVo>xsPZS}nd zE*pL!srw!dBVgtQ*UMfBtUXC|o5XYOk3uTyn6(uj-|L)C^ zX0HPbf^%(sE=eOwVIT*$V|O<1@q|-+Xs^jGeA{^ zhrmuDXI7fMMAj-_f6NxMV9v;{ou)6N_S5{YE# z(PB-b{!h_)$5ZwHaa>lZBzvojY_jJi**kk)Dr8===Ot9uMRsv7vbU^j^R-u8TU@%C z*Cq23uF>!O{^DPc>z?!Zyx*_a^Epb!l@%x*94JTF)j`gR6oSw*l5-J&;Og~Ex`}wl z))`0mL}Z?^1X|Xw_rH`yufG)wvR~skELy9S7(TGv>`RV{#d;mt=@<%=V>tDloO0x5 zZ^~yLo*d7SI!QpM0)Y4pc^LNx8=-^qZRTfBjF74p*X8*?S_0+l{Dz8^swUu^qs9U6 zeJ*b2CKb-Y zB~k9-y5k)CpDOm&$J7fya%|OnBQn)r6y?7R#;Pc|fBCzv41Oc^mMw6vuPDx+=GVLH zMzWW)HtqVPp}6jQi(N~OdFa=tGxV^vG2X1wqx^xteYtkt<+YTH6Je(>BQ^m6MS&%s zHOCVCchAxZi;n(^Zt(c74Y;v_)>NiiU!TS5*P6oSlB00!&3Ev$#LtN@m7`XdsTe1kQ%|J zz&Ulb9IAVclm`h(nDv)`y@wz&jRj*^Mff)C%jjA`AUio33&=n72t8)4pk@??0yzfj zOj3%-&g2xbAC>U8U_9PE`3RC~4v76S-ki^CGcP@O6t+vnM*pknT`ayQSM}_|!6*SQ zc|XlnQ*qZbV9IQ-I(~DV39G--L7xPD=0etHV$=JJrA8luF79DknFPD@m^fCkC_{+O z!|L66$l%%YC3cb{Z52H_fs+ObzbeGjS>p$4G?6jmbLw>bSwQ^aj!Fu5ErqAw02kR| zRrY3siGb645aQLagNn`jLwgRvsUEWs+0!A2aUGKmUy`r>_Fbl=h0#m-z|@2`&T0%* za~6;iF~uB}(#3crI!$tz+99UVP1fzj2UXgnf=R2@PC@2e*nD{4oC5N}O5Hl^P1@@2NN0KF{6e$R7qrVpXZsKSpJW&;CE;EIRjOBn9DN@-vw)5 zTo_+3yL?7fN%f_#877I4fV#~>wlr$vHN$e((H^bE^H>tYSQzLiaLIB{YalkaIbzo; zhjSx7pu#@4Q9ccKs=U^p6FcuZ06pc8AIVqK`*Q04cq_XK%hGxh+r*5}iQ|b~pZdOz zD<5O2Bff5=8(>M{OBE68#^-armSP>-tW}+iyQZF(@09k=3~|>9Fa*5|1F^l`9S93? zk(#w+H5b@FIQHjJZ)}@ZyB4n_{GCsPXul3hLqA7|6pcU<#F;avx4$FXtsjBj81WE% zx6h{9j2m6wMVbRRzJ2zE@nQ@zs+3}7T-a51;v-s$3kg@>n5C3H>so5{+rIYpwcRGy zogHg>_NG$jZDI2X=Hp2h;Uga(Z5B%B+?B9R{S6H;R9$0xItIP}_!hojT6w!0qd!(T zJHYo605KN?slJmA-Tn+S@2%<@Dyb(iZ{EbH)qh(4QhnPnMx1)bKx8Coj^^S4MOFN1h_5X@@CboULg@P7Zz-!Vc^#nDQQf5?4~HT+&UL(LNeCSo0>qHuo?ZY}JV z=rQbghsuF^(v$ro;vCgghO0G%_BzR|jU4}daTCb5g5l&f44bx&Mf;wgaq5)OGBpIk+hn(X70hXk8vJ zr-ZhHi;&VlTt<_*?xS;ORTZQ-+uOW6l#UL&#Jl+&v=deN#bAD_*o1Yhh+2ei-V`U3fj6B>=<=9|7Qr zxkgbQmIqZ`f-_Mz$)tB#!=kgR)c~0Fh|uRnXZmpKF{Z8i-!FVGHmjMIs~*^PX3stt zua}v)581Nl!&UXZ>@VnhXClOZVa>x}94SNZO!liyvl1*v#A%wo(KR+C;;+fg@PtAp ze!n}Tk~xf5K!+!&1+XvqQ(sdyS?K2yUUQ1K4v4-Vlq3ogi2wvPw#ul>DHi#tvO5ZT zxl1jhB0uZXwRz)yE37q?qrVRbM4(~Y{2!udoC)hK-MNjc(|7i=U-t%{&6RU}?jLO# z8EVcfUjChK)3Lv*htCg5$uqZ!yVBM-x4{dHcA^5Ww$qD=fsE*=gto&#n8_Jow^{FN z>rapt9Wj?{uj0m)|7fW8KcdmcU#b+(I@P`C(9MsfQLT41 ziZ#J>kei-CSWv|{?T$EuG2K>S%ou(~1uCcWtdP5Wv+mE_SL}@ZhC#JaLB)kAvifyP zxdh2wv*1_j>bH(u-@KW{B9&$5)If5Y?nr)=%&&&c!5XMc>4Q9zYO)yf`)#g|_p|oe zM3m1=TC{y2<7{St@8|6^PC+}igkZa$LwWM#&(aty%>|7~9w~bbsr?k$9)egrkiGH~ zcNRmaIlRxO^2)5tUoaO>HuPnf9M8)o+^r{dVp_HpZc=)7RF=TEC06!p7JmSEp>3Ky z;cL~vUUw5$pk<5Nzm{HtHq!a+2z^Z2bqzYHMPW=x`~q~MICI&qmQMVBook3=y8b{8 zhBn>eR2`ElL3m*Yu0CzM^NxT%Tt3#=$>h&X+0bTDjQ(y4vN$OWb5xCNPqS83vg%ks z`q{K$39#mgXcCGva^7tGVyWp~dNHVod|RaQ$3fNLZ1x+w$56vFTs8BHXK8mE)jT@iDF+kj8Eq_U^&=6dplsFD&qrr0=b4oB&3r)?P~| z_=lRzR}yqr>tl_f+$D?N`3KNzNfsmNrmuGHbr+ZJI(yDE%b1#ME*mGhl;vw>F!_F= zzy!TH5OshAW!=v5aB&df_D&S5aA6$(Ep~yQ;TQi$^jA=TQ`@tma@z$sw+`1G85mQ3 z`(=-U`ogUE0)Pjm%v#l@gPPa7kDZk&QHekFYse-qG7#<^7BkjX7H%#i9SS52wJAUd`L2u1;_2^2(GT9jn6;Bpkf%6 zX^9x!>X}`?HC>OhFr{xTFIv}zzf)_akQ^#zU3c2ck|UW`g6 z?)tW>CDp9P&IQE&;?i_-4e}ga`+s|5i(#Y!U2|yY?IWDQ7KB4 z%4?{O9{`nKpEx}d@ob7S*$UZ~)Srk5nJ?*7zBeP(V*01p&7Bebyg~zxXc+toP70;Z8w&qm7$KCX~hUGYH;;sRk>>=y+g66nUpW z8ff85K^y-OdDYa{L(K4gZ)*?o%XRb|eAoi8*aGo%o;L9}fAyV^+tY>W7TMc(H;ymd zwaquj5T?J?B;4#+YoU6n#^1TNUBubpAvo~-h&5lc!O-u91old^j_y)rkd`buYwUUK zH&Mm;59Q|d5LZ??HuLXa9{Sz2-Tp^((~U4CguZ=0Ps^n`=y$8(tG%02n?cd~Dy*2P zqd&tt|8u#y7ms;`7}IQtdKaxtSils+uYJgr!Q+)P#YTEASB@g5CLfbDn@T3?64wFF`Jx!%?pgUqM^LzHHsD|cNIo*6T zq!sdcNVXx-Ky6)Dip2NE|6SZ6B(2?FZAghg$*1?hN`>o*He_SIQUtkH9+BiPZX#5V zNMxukk?qO|Ha+ay4|t@{~_KB#+*$!uERhjAx3gHD^Zai0r5MrcRag}QsV_e#Dj zj|>7@MSTwkY6RKZC~mDTxcdDyNF5Z`$Zp%i-n8$=&t?jnd!B~NsqBz1LmC*9Q8iJ4 ztgfgG*A!+$FKx$no`M&^6&6Lyv*}&==1N-3!BiWn%%MCOokKuO+hD-~ImJi3d_SE% zh4F+|6btXObkqXc?=TS$h;)@fhVj)Xx8q51s)srQ9beC8gzGc6^oguPBC1Kq>0fOQ zFGPrf=s>bL9XbS-yNCVXk-L#~tibn&@o8W?sC>^Zd}&2aJ-vCp8yo_5OY5b9n!dh=Ol^K$f5kQw=7gV&^|b*CsJ5@zAr$y?84j z_&x`LoU|Y%UU~)57zvDEmteJC=(Bl^_&9Qzk=-(FhzPIZHa~-LOQH0!Vg#<5BU_=! ze9<`M!a_d8oi*KQU}^X|H)1g1j_%366B?U8N?S)|b9t2LI@<d&Z9ADJaiZWQ zs(#zD)k?r|2i--d$?~05Zk?FsYpmI1yWq zUknUtcs;fHN}YJ2KbSyp*vD7G9S%oMR%YZhn}M#Gi$DNtDT@dUlXrRQM^6k@tob=l zp?(yg7j{FywiWx3^7Qr9G-T{CttppM(qXv5^Db(jTB9KAbf*qq#yffEJA$+ht6%vw zdW1#V-5g1GJ$s)|OHyIw%QQ@kzoZ`KU$7r+=6`USfhQa`q65S2^-Z}Si^(^X{is)g zg*7anO#w9jAjVcfS9^Wua^)K-*7A%l+lWNnrcAU1qQ@-pw%YkS2ahm?_+Za2%T8Yz zsbJb@e3Nt_eWO673BbT=-Gk^ z1)4_np;%)h@?^9vC_P}<7%Y90OSnG}WAYCEQ~5wW>t(%>Mlaw`N_!oe`S(!BWK3BB zSU+I71kQ_m+n?9-JgiK!ReSJr{*E};bZUYXNN#54aqpM?bPHCGiv3(u3zU_6Rf>&H zL;BYFB*kNIRYLg+4iGQVglb~5uH34u&GJd*P{312glXjNfJ3&VnGPZA>957BlUYc? zVU6Gz*ojynqcc63c_1qAAJKy-4~ms5tzmU<7MsK3l?99%yH>;qgRv8htUVVNSH2<| z^F77b(E8Rt`z$)qD(=@VI>8XF_4) zZ=u^vM1StmYja@1VZ9PMH!i{& zsS`UGu{9sQ=&2sKu8cTMzQyauc=FK)bn?t?V?A*p9D|Ie@ih97%AXS&9I~r( zZwfZt&n#A8Ro|)<;XG!^so8J5c1bRgFS9AiW)~Hx;C8uK@=02*YOOm@*mWR^Mtae2 z*W=LBxF+g&Tgp^_p$P>zMM>Lr2fwnu+W_*py=K-Nh!t|j44sUjtj%p3|ITy&sB-?U zxxr{H3Mp5#&FIQov}48D^gtDs@zV+Oktz{nvl}&JrJ+N{;rXSne9nQ1Ca3?66TYWh zVsx8@Db?0e3VqzzYp7e!yf^$)AbfGQz{jF1g_(6$BwHkrJR_*aBjwwDUeqSqWV0lt zQo{N*JN`*zDses(e5(DOei`qb>&F(7WWI zzx5-8iX(f0ZwRidq70HnTXkd9vHCBY)8Z$kX+-;7Y ze2J3Vb6%gWmWA^}Gilw@`Nb}!Kn(q0g$-ir*JF&VAI*8iRA~1^n%^c9BToE;?;Ax5D)N3%> zvx|VTz8YzLvWOnLf}TwDuY^Adv=D`ow9SS3V6V5?yD3_&B+}xihXx+Q+5`8hPBueb zG@pthD~xjFGWdb@1UT@5_I z&gyy(6JAL()hc(DN$X@+Ee4^EDz~-P%bvr^oCMq2h5#HlH7UCFAnYi7$yP^g-I#-Z zRPN%Efb*mg^x}Bz30P=&z|7RR-al!AMY4teh>kB^o@KG57u#h315$o6wa*-m?g!n_R)yI_I~r;rm@ zg25FBAYCaP5*qSc4s!4Z9+|11A3F0f4Cq9NRnN3&y|HP&X+|%wknOPZgc#kEYX_Dj zlqWxXH}=LAS!%u#^9-*G1t-_;oi0fIms(i&bJF9MhNkTAy_y7*v>9nn#ryH-T-59o zC*V)l&Gl4^H?+fCR=g$v3G|IUt``LFkUQyG%aIwcXz;sd1ea6;2MGIB-KAUHe_k|Q zs4$a|?j3oA*G}nCMAeSJd>ZTtjY&q)os_t6wdW6d3gpxxyM)Z)K`>`S9shYY>p2H1 zracVHfI56@!-Qw7dqEi)r&c?y-erJAVV-yLdNVX{j9O%^SI^{3(-`r*0>AT(*{tS# z_Mf7$Y|6!zdk&Y#Bvipg6f%7Mlu-bv4)y7GYI;$>T)(*3Rx{^Kox4?Fl8ShtpxYBP zen!}qrx!DZ+C)++J)@HUq4G02jt=GL8F8s-g}2E3W)SvBc&btNCVYzhj}eHhz|sfK?S* zwUOAZ)bw4wvsoIAHj#~*t?Bf;&n7I?Qn8^kpAkvZ+J2BHW9<3fpv;4%Zwq=un1Hwo zZ%dPECR)kTr98u9x z-0gcQK)}_WP8Dr_Was~=n9XXlqFleTDk~Xmcnd);Aw(av)j0iSyc_h^rcle_1E_oO zV{`lvgxqwX7G*;=M{p1D-t`|$B;L|*#m_5Niqv;vy0QnpN|F|&7f?|-Te|ZQOa^mx zjnC26v+b4Gko#RsG33!MM^5g{p;w7-0c*J*`Im2^IyIu!$l{HY;K}Bnl6NsuQQzGy z-gKURkQ>=73fOx-1SO&Ezf*qQ<=Lc{#z@2J+3#P-nz<7I-xF#2(${Cw}Yj zn@-#5b7|{4AiNL`()jA8?^PWxl0Gk6eM^i}J@exy$;JK=wN24DP;g4?>?(svi;*=b zQBg2?HNI@hD^Pp}Hge3i2Rwhp-+^uJYd!qH?=q98(>I`%@ z2(Iaze(O)#d%X>!-pN{MA}HN0l(Nm6ew8viic@rFokhD@wIj`eY25bZD9+{>9;w#ycFeh^0;lA5gVM78H= za=E@+BHCZX#h%hEDTTx4bFIhG915<@e)16xc3bODH0|R3GB5GA#3Uq9ZL?oBS@n6X zMdfY5JMBm~M^kyf(+8J1f1TX^l;#I(X`AI4{k56wB*uy5{u4r1SnDg9_Edzp$fPF5 zdaYjp?sAKv)P?QKl&+|q1R5;QC8x%8-XSGNO*XLke^^MJi_89}_tyJLOO8K3>9*B& zA&0!&tRJ0~a)0TsTWjAIL(2HH1`cG{cU5@93GGgN_0}sbkh8XfGRu0r$YNl4+u-&L zEvU1RrRcSflq$wd&ep^DA5pWirrO&y41EH#k8Ne1n>a6{OV_lXrx))MkW2zh&e0{FHC^H}lx`R5e| z5h?C{3(;9`cWZLV9#|gz6z2btK<@c5$KP>Tpr*FB8)d0QVft=n6=)<7_7L*KW&?6V9L|VA~sS1bGT!j(3Uo%oTvZ# z_6-Q-%SP{ouf8K8<4FvH0XH;Qv-rDF_hGZpw*FzYx^5x!FX!)_k{GI}#^#d^z-m!k zqWW}WJgU_AP~<`#!r)+b`1YyV{m>AH^SRz{vndormMtR)@hAMO9YX2BK?j%Ha(-AQ zJx7`oy|7cGHz#YwU>q^1M<1-HJX4(^G>H2 z{R-MEJa>wSSyf320{DR*s=dOq{${5P<}csKX6L?RhDvGJ=^ zHV}cj!xh}>M~$|7I@=uwm)|U10Csy{$HCu+-KSJ~3wssJa|2p&R{Oyrn^SZSYk^~d z{v(Ejy_0FbgA(qj1k$i0FZL7G5{s7@HxAl`F>@UwSVDO{_i%)c6bkis9tTs5U^v?s zPLh?#y|`{Dc*wP;R_7pcmJLD>jW%2BrCAE1L>Fh~_~K?oR5P-8y_AJrQ_4nt0=0lZ zAQjq}g2HZb$Sd}E92yi6PT-V=f0dq!XTx^YP=EL;YWyrVN-is$(mP${u&wjcQsSuH z>%C+YR;6SaT_xpwp`7ShssmQuah|q3cO2^D)SRumaC7`eW$-*G9yT+kd~Q5L@RMkQd2+GWN3HsF%>13K#*_#*ByX4$5`O-p^fLRN|) z7bFLq+0V2mnm#MWHGmoF**yr4zO!dkvWezhSe!R^PP{g9{PiFLzgxZ{H=H26@m_jx z=Ufn%zhJU5;}uBFI>eF#D~9u1QbGL1wcyD2@8AA$&q~IBt7w9gqZqs0;cRpt0Es5f`eR!<@xPA?G;^DnpT?q z>BJShF?beEUcR7!Tk2Q4HhpxzDjqEzZB{>Fxi-sgpNDJdrZ7?*~qh79>e-NVz`MX~Zm6IG~y=Lf{q;lri=d znDTRE?XHPLOUovx1h5cq6jd~Y;ONt}PKvTL#>@@Ey7H8vJ~S=OD(wyk=O61BE%n5a zTFBej;ejOTNyrE>zv<7Z;LE?t>}=?oya$D|&ax+)56iSX12^MO$KB*QQ(Po4c=`Lu z`l6I}k3esAnFj8~sjCT%dc@eudUU$AO-yKXF|)QLfL zmCP0<`Tf=n4VYx=Sl2V=T#kz!NH7BgZSA-GE%HiW#9aQcZ87r*`EvdAFw`v4?<95Zh$YS5=Lo2dac*bMG_m!|V8!j{4P(!LZLO4+GFIujT0#@w z9K-E1qq2ah6SI!!j2ZB{N`gzLrdjacI(_HDnS!yl)zKfh~?othIWIc9{> zhX}fvE9x=!Wh{CreD{om2An-+L6zAZ% z0)e))?B7VxPwIU#Kc_NlE#%8 zllDz(E5UV>{auR2!%UwAc``1&Pq~AQ4lON1ilQ>%*~0^^y;)EACbPeML{0)aAn?>Z zaH;1KmmuXL721;F^S#3avr;#|GaX7w&%JPKO7|J9L}tgodnXgc3<*jhokg2ZIdA6x zFJFK5cCIH|KL7{gE!jFpt*8OCW0gDF#-mV|kbBol9E91aMuDSy2SK`zzWd1M@LKX-(Dx0=g8DR=eU{P^cap|`3g*!o|Fv_> zI-3W1(gp!&BOz`Y%B>QTo;F=`V zJas&&lT3CSD#Ie?RU*0gpzJ@zG1P)pXM3cQsf*a-4`B**Dc1JNh1K;ya-Uh)0-)EL z7V{Pi1!=@{MVU5sTOjTi&l05~#~>@BqJWA4FsHp%)x<*0*NkA<>3@*M5sFPp>;<#g z2O%T^-!z+mbxKCn7BKtVW9()@6U(I_cj4V!CJcq%#`RcS4MLD|K(3E>Oy#Z^C!4n? z;@e_qD2BZ$h155}{(5>AxDatxybirOVNQ9#{3MhE16BB$dSsh>B+`FH*!56}=l*ba z|3-e1Y#CYD3~aM!l7?=i&u;%+cpU+fRBt|2YltClc!Kec1274Qr(+6V1oOC-9=Ik}jAJ9&{ST(HbUPse5X!AzpZ zkM$ITU3dp(19bwK((iuSEd1)uv>4cg`fExErwW*D)RJdP=u_6!_1 zZ3VYqeHQpf)Ux4~r#l}X_Ea=pQdl?X3hMt^!zg~B&8GY|`=133u^2O_JEvSaHg!Dq zLb;1!C)9Ta!7tWGTNBrn>>;MF4+-fSPz?+3_>hb6oAcS{>0mT7X@dJMfFsO)!oI?@ zbC0^}Nmk5WzUA1r2U$iR#(PusUnoL}*;wDm0Z z{GBdp^D-<~+dtEG0V#(|s*M_@bFwSO>_`A)sW!x%m`PLTit%f1GtFC8-WNbbLcub2 zHXis}^DrttIOPX4AHFHa&JT}HUn;d+W^WkMrIf~Lwe3}%a%z?~>Wt+AJL~Kj@+Y!l znV!*q0h&5gL(J*0R@_a+ju9m~ed6!%P|SdvV83^PfBMcMPIe<^fjT7uSb1?4O9=?;2{i?y1#y+k!nB{8%nqyD8YMx_8I z{jKZ3|0b=~UKv@(AlKlzJlZ<6TA8JTZ7li>(NP8rVT0U+3e`ZvQ#0WyjLbnkmOm#8 zv1sxLSwS0OlxpzduV?!ske56Ch{cW5xRtwTRz^2+emh)vRo5 z$zIo^z>s<#?;g4_5h*^+R;~n5WiZ)B#&B4COE&&L^~klayxk2iU43$P(1IA~vZ)yLwE>OTZ2}5f_po~L3{Z-w9mRg zCGj3aXT>xj9jWO}GQfAo?09i+6RqYz>#*Qd_qj-KA!JgQSmMp7h|cG=j?+R03tlC{ zRH1mnAg%Qa&R@Q^^N|62!}Z2+GT_9K-1U)!JxSl4$!G+7v6p{$92-9=5v#;%s4Qdk zBtDJcn?&f>Keb{@hPbDPnISPk;m#_&Q1@mcJAqRJL2siVlP3k@NsFoUdfXK`a`;J3 z-O^@PhtOI@?}@rb2J@}=s}dL-8do0F4HA=)$`}MmvKaF)!67}-2_2mP_I;(kY`9A_ zSMJ~<@vf96dCozwjfFhrGoFMgbTiZRnH~or@P4&Wuq2I;&CridBk$*KLz^LAiRl0A z6gIro^v8$inqhbIiO@X9Q;@ARIF4uN-JcdeX}ar1W_)*MNWtZ4x8-LX|?yd{zxO+bzqvscs)<~cMx$y_bpUv@cpKMvOXu|c`FFOP{7y^ z*xaJYRmQU^lJ*^f_T6PG#C<~?ZI`-p>%krq01G+PRd(LqCU}N#FJN@!f!g|WrbqS? z)}!qn?_7N?iQi8&1{}y(aqLISP`n#7Tb=|+mX~!1_kcw2gh`i?gw<)?%<8?6)T(9{ zpCdo^OBWVZS*Z?HAD(24=`egOv0Mc%PYo;be|3Ecsgne@6he)!f<<*gSPNax!=& zVDgFSuvX`;wG6W@k6od4?uoOujtxql3>FLfkdS6sHf&F)i4?V5VfixuE~(KxN63#3 zKornCJg{apq%+}Qb3Gh#p~#$RtpcP#!aB`=C+{~SKVIQW#LRvGjM<>QJY-xinCAns z{FgY-nOHR?+MMPHl+bzGF2)?Byb}VpYt}8EhrKlbE7h!lok8UMxX)l@i?2{y;%;e+fO3;_ ztM;E+Q>yl{e-qsByT1^yJ>=wV$Wl%XTPJ?`nHTnGgPrE}VWDx_tVJ;2Z!yyq0O&UK zd;Vu@f387jxOaZY49<(^S||j;mqMBzr%=fk`Qp$?amD8tuM}9FOUr2M3}%H}NgOfz zP=;MhGIA1U26PMIPhrb#OEuJQXfjwDR( zhSE?PJrqtLKa(LK5ho+RYNMH@?Pq8c~1r zOwJ>$t1`te4cO_;OH@+$ZL!N8l&1A-$qHgn&owq*as`+*u>dbk1PNGy3s1D88$)09mi5c1#=Q=UO&3XI-KS9JK9#(#kA?5fbG@vMTwA!p2sk>ee%%5XIv@FL zN9$Zw&TLN@1*CBc-MIuJBL^I;Ndtm<%^l$3zBQe4qQ*j6^=w{1a-jOQoNf;dE;-;5 z=m19=vTZL?-HNqJSFK zEIsNv#B2@hCzi;!TDu|!Ym9%cc(z&JoqUMXFp^OaF^f9b+4=P1PpSJ?``Qx0M77ua z{IsDKMvCo=HF3-`fb3N7+y{F$=^L@$UTL6#;RTxE!!WH>A+P32w0SB%6ASQjTyt1mJCVUUA3Ka%EPJIPX>Rwn>uzv13!a z0wN$^CELpp|A@T9Bd}V-Nr&y5iY){;51uxg;s;h{q9}}IKphWjN$oab*)y6?=p?87EUdTh<2M#rZas$4^4 z^qp1Mo2PR;n^;uwr5k|Iljsqit}gNt-l^F1*2-Jb{^1+Z94_fk@xtaVxEsBZm5-bI z@Xd%zxIS(y@Z|JSSBY9U>l3+KC6x=f%@VN0DlO*D^G}@C;}2_|ZQ(6X3-$dU;f#gK z&`v*FOL5M5N^Km?l!ZH{nF-Icp|Y3c#A{`(DGYPuo(HHWQ;G!9SpE%y$%<$4X{YiI0pT(MwS&FpQ=TdM%zEoP zTkw4Ju)3$+?ozj?`Y%RCNcJ#9GzZnZV8(rI6sTl2C}pI#IrtyR)0G#a&r8t=6T?r+ zf5XJsE`0H)Qxs~gT6RDACf^pzO*~c`m#g|c&#hk8zk0fHI_1r^D%jlB(BRSW2fdL^ zY@8q%XKoTa?yRGuT!nfvf>A4o`~ZB_-gMLYSsT*SPedt2=zA)J?sS-S>|I3UW=}1R z7V}fvxl3Uu-m`Wwj{BjR;+73jHI0U33m;vxvNm1sseM|@k=V?`=TFrsv4fo%CzKJU z8pAr$>fXD%C$n9Qo~&E#*;bUcEht8>)%?e;OAFpE>kH3^V@njQfW$W^)9A&nh9q9~ z*9kq7kTz+A0alUG0*83kT+Y;=C1bP+YTtQ79m=P?f-%k#KsDDy{cSM!IkGr=^XKZ) zP1j1-eaMs2-lF(0B*#iUgYtzMEYoqYWMAl0^^Z{COe0K>9PBuqCki|E(wH6J z1dh&?iZR`?GmohKX&oWW;;4hXZ~0_y(vv^!kghhR56bxiH0r{RZcc?$0i>6sK_T;< zEQff%@$|L?sr2F;+pabRP77p%z1K2n4gO;ze6uE)F*lE%b$LDq$+^I{RmbGFU+QB7gXn ze&$J2P%}{$Ke#Q|Act4Z>5zC=g8%f13n? zOgOXgmzR+jV~i=EZD@x}*J?7DymG`pq`>}YPxbCf^I&60Dy)!Cf#-fIohAy{ZOpEn zFo!)+DM2?``GyP%FX>F2C4=88a67hj-}BEWtvJ{%L|8Ch4+S(zIe&^Ds)@GGmj6{A z&9X8jQFz=)SK^&Jn@yACZ!mDn<-n{!@+n1N^)1E(AqA0o(pG}AC5r8=Q^CW$?6|TU zLiBiJem%ze(48si&&s-r3QcJ7TEb@15*J@8^F7+8`RZs9xTD`X(~-m1kU7GR1N%51 zho_)Q$^MSl&*!PbFg=c#66EjO{pMw_Ri;T4OsvXC3>f2-D$0dJ3$5N#FHYs2l=ok<`$td{QQk!QtBBY)h!V(QyO|ugwxqkk>Rpv zHYuWHs+AHf*Jhfw= ziLc^sSkGEIMjJ}ANf90D&qk=WVk^t>)tS^2xETUgi>!3Nn_iiK4uhL) z=HK}mr%i2+xNpU8ib#_W%%e_spdH5QFSw_{Ljibh)Ds%xR7tWu+u`H6rvg&UOzlA0 zkXy)s)_o5@Wx5oWOQ58ftubGKIJ3QO-)j6C4H+Xfj6ijLRle(8KuI#Fc<#qS`NHT8 z8qOH;WuCHAvwzU6Cu!MTGmlo^N>g@caWPMz59Ui@%T0=m%U) zl<>wf)ssYbRp&e`4zi#~57`$0dtuIm!T z;kiytnJj}3lpR>^z>4_=FcGv7NfpK)>JB%b>hG`kcwSuGINKZkBO39GxS~_O0)9){ z`A2jPybY>=pBE3l%>k7rKY0Y_v+WPjrA;@x!eQUtH{q}_((Jy$_blzYLn4T&SQ!HB zlUSn54We;AXuK5a|Cpprx)pt^(HI^{~f51*6oxZV`8X<%inf+K(e(Ec7{&Z-@rqD(3mV z)F~mY>T)#gxUuqMFr#4Bpc34ymTgce`!Vn_)cX<#vrGp+4hjvdMG4b>$Sp!@_X-s) zG1>lIul4?*Yj|S5ZP)+eExq-?Ja|%to~lM&|vqs z&v;ri>o?|<@BSQcy3>+s!lkTluagAt;G)oIKm(QFto+<>%-XM4Xy=m#OKg}I`NfOV zc8}Nb8%J|@(F#l44L^ZJ zB2v*Zf1#D6iFemZggY)f&272XP55f(o~}Bc3JLJV!8h){us5S(Zaz9>9ropn2j!Wl zX+ceXdk8stHND_V_uUQI3w+7Q{Xi+!6gGmL;_lzc9+ld;-Qa3QWQEodcc^#1InhJo z(X0hLu0TAHcv&0lDif6Lbg(#O#)*UenKV(+A*T~x=td=S5c4zoAE9^i9Xwa-52fsr z>Tk;6;4DLoN}cJ0(6%bp*g3{EJ>arH9WB?K(PceRVK6eBK;JB_6>1md$mQ6uELQPB zK5rKFnvW*NKz~9_D7GA817oYc?O^;(#zVK_A5rj>amLFfpxZgp*fbElTZF)%+l=cg z%DZ|_<^hbJo$g37Mm@+fIr>5Hr3-)5i%=t&06yf4f^K6Xx=G0JdOkvbcywjq>HC05 zg=O<-GM*Y)Rb+)&x|ME;_&ts#VylhX23yxp3WEXs3`fV4)EVHthrMA}P29*qgRRY& z*()hcoTE|Wv6NiFW+cJo5w$3rbq74eycwrhJm6jMCBsZ;>)5?i3$S5^OlEs%rKs|2 z7_C;Bbyy9vEk?{zWg;Kw#VnX@OtF;&J%TVISHsc^EG{Q?)}MrD4@MY>jqVhD&y~#- zxOC~PjnaQWy*kO7(kxo@WwwZtBw^lFv$TB-ZJ8ce)#k@#lz`iX0_!KDnJ`S~)XxTv z5EnF|#g$!5e^Av^Lp>{B*+ey9r$!9NqcB@;Cn%F#;(azt37VZ>pHb;-GENgX96WDm zKi@IB<*w+OD0URklZ;hSl#?=+E;rLRg=LqGf*kmm?OMeDjHI5$)Oft=%I2 z^(yGT#j*Si^Xn73gU_S(MJlzxX99^`3^3ZpF?ynp^A8HvxMy#};QwTO{GQ`8S5J1=>nG*&MB z;Fm$D_8>@BJRMQT3GUK}uL@kZzT6*ok$~~=a!u4PjhyvZJ5Y!@GLSW8?_F(IiA0s3 zd+cW{F{1!7P2AG5J=arP{DTeNg8 zOGE7&KMltybli9D)xAf~R_gml857Y#0nJYj-VegE!mZ~_69&Bpzk*>oE|dD#e)|m| zm;<=G1jdnPzlJKm^Jj44tMK$6>GY7SKf7_75Hck7%IiIh>ci*S^qzI}tkI@37T?h3 zHsR1l<|l1t{y#Stv_=&WaSs*nqWaXZoE&B;D_N!7rIf_wu?hDql}vGS^y!>m?EPQg zC?G=I#RP|I_vew1;a_-zvLc{w$kfvdH2z-HR=Y5tTAecM|H{9&RM8|M{JnvrsU{+d6RWqbYblAv&HhoFa;du=~ zoEAQcn-yENzE+8ldESp^+W*1h_aI`vl)+r^phP@N-!A8~!`pZ1*Nvh|Qui72e5MS+M60RgW7x4-f9K0ex+iSgb1x5MTyZ+ zLT&%&eqQI@{mFe@=Y5{v^Eg^OtX^;|wYQ|zK4v^a(SmZ?d{cUXESGsn^eKX*CC#An zT17MI)mnvwY<`MINs%>F+xJgTxjsqj!<-}BwTFAZ1I-yc{(G#$AG8MO+^a`&%$!Z` zMvOSb%KPt8y131RB&jvLdCaPmRDi0n)U3OijS^P%59v1Toms?EF3?eoz-LG;}5gFYMM)vT0?B1=YH2n5W;~>rC;lWWL z-5~y8?_pNZn5{#erzJ$k93v+~9IY$uLuL{pJ-(!@{65oe($mXCYS<_8t;3afHQ=O_ zdHilrs4#p$z|(zwI&ME&UPoul-3y1ZR_^&K9=?(8;Na8RxFw<%G?GqNZirJbh|}vk zcf(M-up#m)ZJt#9%~M)%c_r|t4!pVwg21vccUFF}`(yPU9<(;_H$Mo5et zM@6*hqLk=$MD*c2P8Q9eeElOepJAYjst~5lBqDVzjU*cTbTXnGI)08;`&dq^yVi(q z_7HU1;Ai>Lhk6!J5(531L8x%PmcpkU=yXm47E5nan3s!YO4IMsHbR&7W-u4%U_0L`|lyN}qFdG?l(_1Ymk~$NM+vTLTK?ilyrOK>S z5)uU`#}|aw;%#wh?5G@nG0Fa7+riFTo_;MGZJw&c4`+uJ32UG2WlKZ!>c}JIyN#G) zMZRyEd|{SvLeZ7FAvUP;&8sU9Y}X1$xI(P#nQu$b4n2{tpuvw)enm?mO_MV-r4lL4 z4igoHu$y|W3+JEWUV2#*kG;QcV&gDkG=c<89E)58qZS|^bRxtP4i6S1yUb31oovFq zDrzW~aWL1FCFv<9rk}mJWYXE8Azxat;6Sy{=smR`Dniui*W-#fTbv-q>MT{qEDvZm z{F|dg=8y(#p<{Tcj@0_^KnE@YXHw}qQ^`9K3IkC=i)7D3^a{QY3@vkz_Ank%n`5Uo zy2yS8R?phh-r@bce|vGdWZ$C`Nq^$X%_*}aUuT+=l9TdDl6IV&SKnBet2dQ8YuonD ztlYqDm_+8se!Cwc_OV;A_tIHsE`Aj^-K?Cw@tLpaqI1s{v#FSZgcb{hI(Z_b)pM7* zm=!k_b1NQa=$t+7{ab@oESC=~TcoTm<{_tZ8dDrb*bet~Rs4wQs=Nm z#{o~a_2(B`jh3H57L8|reI1XMcbk2`tMlr0^lQ0o!il&@tZ|6Oz6{xaG?E}z7shcg zuub3UY2)|9qqINizie8mVHw2Q$#?_(kQ7{%dRffc|0+`K?zk+6QAoG-Vwi3=XFuA$ z^5_sS=~&X(wPf=50}%G9;`ojB(z}fpW@npAcJ!;l+MI9G{IJ_%222Bbm2WtncJo7H z?{426Afh`)QRXbVli%#q0{Odd*@YT<{?A6IAr58w+JeW3n-HYi_^lFGLh7t|k@o93 zxMK9|C5T>YWJ&H!?0ajazGzO0MNe&v(UIQ3Z`j$w`xOUIoSmYnBsiJp7oAWbEZ&Pi z785OdwL{7)3&~~VDpurIP5A;SqyVlRSN{Kq+I z6xffk=OR3TO&cBa_8(uP!smgO~wNncl&&2L7pkNenJkFFch%Ii+|lj3hr z?zTW}Qd%f>S7OT8fd5JsTIJ zfwdYxx!^v9#Ym50@`-jj@zk+BFg|?1TwK4x`|&R^uDti5a}{%CC}PEbi~+iy;cCaU zC*!{CcJd?d)AiqpqzWE+xev|8tg&c=?h1S0n=*`zcS|MQ@BBBp>=3s2?%GnbNth__ zzh5V(b5gJMBSbdDw81tU7#CSa!?}LMz!Te`pm`P6;u?DVt=z3~U1LR}!ikxOL2>H=5L{b&Nkn zG(j8JVZwT^xAIu-(B5yS>_nLAo!fBGm0y-$wR#<~^Qq%;wZ@0)JCEQX$YRT<@AaS3 za#J_yN?l~Kv$;9qP8KPY<{rW=W-^ELZUShG_v#F*U^d`1ttStcgB45PZTpn8fB<(g zEIxPwlKg-w4RuORe7=^=J;Zvj<2r3}mjs*Kn}!3MY*h|#I46VG7~!=IfE17SJlv4F zZQ6Z&Y4+6Eiawb>Pht4b8uTq`DW0=A1$Q>tpp~7z&Y@D`a9F{fr0yHqd4aB?|Dx6S zmO1>UTV4;wnDVd<|#~FP-ErPr8p{_h^n1 zkg^e7a!jqQ3qBSMfsAjOt2xVTH+HMABJJ$s+Y%AogXDdN zPkl4aT6n%OiqwP-0L2sNdo90}?&S_~_liqMt5|#9cwknNX-zS?YCko0KrE@!YxYS$rcQn*ODGEn;l6D!bB?6AK}vJ# zbE!triQ@nc4DZ((>Ve{p$UxBTACislgz{m=-RNhdy!Rf7o8bL>G&yXjDMe@t zM2^Wxv>uKQz1XQoh^xDVUXObl{42`wJh?6EOrudN?gQ!9^OP_B7FdmbZ8Y zT-sb_9l>Qa47O_fX(GBJu3P4Kss5uBO&qcZaDGqWI8v~NVG?4!F(>8)x)OBzV`Db7 z4Qsn=;SP)c8m)L%Lq7Le_rE8Gx^s41vU}xEh%~Mx$Ct3y>e|WdzS{z^Sgf3r@gH-J zFX8RKPFp|;Yn2A|?jX$30uxnJ{{HV8LnlJ1{BtUugZ_Ks>0&yfS(X#`ps!mMmYqUn zJgKyI!W@&yQ1Ie5+e2%LpIZ@96gC z%N~_a%E#LCPC1yX?;iJtcq*N;Wf(@pN&zbhV@cZ96eRew z9gp88(7u@K7m?!?GCjoAFkzruYgfYS4K5!f=E^91%3_>2J5c#3gynKTwT{S&R_!@q z97RauqZ9s)V3bbfj`wpDYYV6E^@UiqP>BSg`HZL21i1cIEns-Q1|8^W^X)?g#vAIZ zBr|l7uV3dnzBL?zj-{n7iPxQsaY{I8OJ(NW_blnbMVHTh_@;Uf=LfWViC=s*{21E$ zKO#YS=|Q1pE;^2z#>f+Ihxuh-Cqss^P`bJp7RqY{R#eQ^9~nvefO{B@-$LoIW88-lpcc$%j3zu!FIh!K3y=)z?u1J zr8t$UZ38R0RvwpwoK+13^6hu~ZPfC8414*j*ptUc+ zCiL^%TiLLy%Zr`+71qKjfv=Yr-n|suN!?hc%;T{I7^r798RWXY@%|@BodN4aKxfC8 zY#4Nbo@H@A8InaQ&}X{Pe-MvpJ-^t^8RC>FHRv&Wm$3S;1Mk4`59wz}`{N8iCHs9# zSaXS%*WW0|m=^HT*XRX!()kk zRTwtU0;^wm5(sGZjIUWgU+_NLwFSBhvo%9Zo^dE;qt)j$PY{F_RD9hdh#;#cg7K^L zDF@SW+DG%GkT8#S!^@_P3r5mZ`_gk%?}h<$zy2GKDaw|?RnYD!YY8kf4oU-4zVyk! zC|4x>+Ri>lu2RAUe+}O0+umx@(`M|v9qB_7YfGqAR0=t4oJLA3L9%%H^oFf39J`sK zO)Dum+)FOqa?VH|ACwXeoMP5M^-% zBK0g+cAi?384oCGi5RUD!8u8v4P#JQKBk$$^cM|x@}wY0st z7i~ZViTNc-KeSAoa8Q?=Qz#Mk?G%w$lgfES1rrFUq0D(toB=Edg|Z8BhBVgRo+F(Y zQcWFX%-$v~qD07gwy#fx@KqbtpTqZ?^ZcE&a>}2rgk$TjkV=%h%lY18APlaV)F@kU zU@o<7TuE1;L>-YT+1gno!r)hFH+CwG{iZ9iI zc3pPi#z~rfkj{xC%#cDDf7!%{=`#3x#wNa&H}IubT>Ka?DZ{rsq%@?21`(fUSWKIt zQ(2pgW(IVwSZ06DF)y0zb?hYv&+=o;xVpJ)xg*j&O*NkFfntnYl$OhSx4WNv+ZPGE zuH_EJsk@z^!u?Xm-dtUmidEN;Rk@X>-(DXzgz58Ij-+9sIVF-2I$Q;rV`GP|;Anm| zbD3DXNyD0`P~Q^{`BHX1d_LFQB;vb5k#5N`Mz2R=O<=e-z1DG3D^=Ylw*UHenNO=- z`_p4+#{(YQxcyG!ZmTr#?3~FK=vPfOpm4z0)Ja8<3RHn5C>v)*|IMks zFE<7;fK|#P!aSD13lflE9lOCV*IlGWdH*)aF~v5+2w_5`mfBCD*qK)cazfz_;M;OR z$|*lb9TBLqu|)|sv$+#ed9r1k0#ZwnM6f|&6B&kHT6eX>5-`h442OuYO_BfufiPcT zUoQ`lI_9$fC-moBTEQ6$QjRAKKk)#DRPKWyZlurh&)kzQ=W?)j=I zd&_$Gt%+8sR5T=J*qMY6_+dgl7miWJVU9!$H1geCnq@a9WFPmQ^9{(Yb?`M93I%*> zax%t`(?$Y8l91)t-pv~~fxW_1VG3zMkp1$*tn4f?p4Go$QJ0d&EYjSMSr0dBO4bTd zSqnB0iw9tZa{W6m{g!sK&=>oX?5SFL)Gym`&{zSdknKJM$|hvWg6j8cS7u*8Atbr9 ztBX*~*>ft{WYA-55P2Ik1#11F$Zz%|C(JmQOXqM5=!^k84;Bd{ZQn$e{EJOn0_bGc z$5ed19g62S3ZTKkV_R;Ny*$obF|5{egE>*<3piHwn_Jkp5yY~UdNuYaJu1Q@8oC*m zfI$YVg*ekl$!R^EIl`Je|G{lj(;OLC)wMf&JZHM-izpLT2Q7cLYsM);rzN zHCYt9u~23y^E60z5)k^uU#Mt!d4!cRon@VZuda4ddm31}*x%XO$BxdXOvBszVvEZa z`H-S<#GJPFO#dUI$5&(|Xu+HM_gkbjY(Bm4`{on?upYaLLFUqUAg*V9_eFo_N)PKY zzqr*gVP1<;pp|!K--=ZP?Tlnywk-CMUJu`qhS#T%HO7c;U09PX{zrB;vzCzhn>oKl z*J^0FLCe$G(vsnD`v_p?E=h$vxtuZk5Y+N$&T}V73@@>^StfP|4j$;T=Qpz`g8TnO zmi1tjlfBiNI02cMh6w^?eL|z;-QRH=mPyXN%2$61ZHsXKG+i@jA=XfT2Nb+z z{pdz<+34LK&f1F&#nQbW+%PU=D8yo$Y~ZfSKVcLFk7XY0s(7yDH7m8SsgtXWExUZY z7cdu;`mpBvWSKbgR3b&N0e+4{c^`0*)lOoJ@V&!zG7s~I!uNiUm2t3^Cw5fcoQmA# z=*=x*8DybvlblxSp3LA|%)%JkY!T*|Qe73S`421F76ftA2(t&ZQ5cl5%h34KB-xs#r#foyF4tQcsl>+}6S08X#a-7MR z+ud1wA?c!FO&kmK0{H(54TS>Reoc?Q@Z?}+-I5{gy%zY^JsPTD{oP50f7`dA2_2-& z9C}o?Ouisw#z4j6`*rsi1xu?rPtnDxSp^WDRI!ZGq!fg*Sm-G*|2|2MS@qpdEF}>h z4R_?S$4CLZ94`_hBLbtR=C{1n!silkSOiw<+5k3Qr|V8{W4{6;r{d~ZrD`Qv#S~vS zmDhd@mRu*WzrS*Gc|m0*n!b#GQiUvGE%}l!B)a`F+EtmVXVfJ&33J1 zm3ui2l;3@If-b^#ev#_Fa0TQ#gkk!z_rv)WZzY(Z+Pf3>0v-(uaABiItZ+BPFx#Q2 zY6NR_(1NiDgKPiWDW|g4y%}Y0Zc~?;_vHyGV>(I=-qr=;C8`PgMSy^KOXkbBP}Y@5 zSr5+uTSqAe!KYsva#m@)zyn8(dm469i$BJP^nN4Bc%1?>@h!cg96`b?U5ub*ADIm1 z1Rw+gh%(A8HVo{!m)={T%;=xxt<@O=<4ExOk>n~6CK0vWFV}gfUgFY|*X}x~uy#<{ zz(s%ZQ)B!aM~QsX>sh~D%JVp?c?Iiz*375WEEv1p)Pbcu1qXRQIpboeuB{pft6(Wc z_U3*cm!)S9G&cuU9n{~Ll!37jx%cZ`+H#Cf`?$|gMSc<&-y`Z8elxnc_?Ohd@)}A1 z@iQP62XC$3QSMt9Grel%4=(SC^mBUALFJ}#^->YuyefaZy9%;03UWdWm&IwtnXY(r z9C&WEFa*+P%4F;*y!r z@zwVT6jiN8Ihl~h3Wthtm?H~0Kx%XUOYN$#I&@i|$pzIQ=nTB5+JYuLBXvr#ZX zmsw6UYW&>N=smD9XfHvCmdFHZ<~GzLEQ__x`0~A^&h<-*%u1PnjdO01Rp@|pe@EO@ z%HdWkA4pC%_FD36sbbfcr)B(9R+lT#%Ksuw&xxZ&s6<=zhO(gh{HWpul-q^1C?<2P zDk#jeuv>&O+3cy`($!#~aKlrGR@lI& zvuztAc3P!cYCqUTjGCk4Sgp5svZ z3ScAL=aL?+HMNq;sWF-rI&ZTBSDyu1B`n-uc8Vihdy165hM46z8uiCXBXWl$NeU?v zAH1a%)b&{D1FwWRP4Am=i=*wyd)$Ed`iTPTr>q7ln6$i)&SXqa6LmV#I5_$v(&LRt zj_;ZUq6gJyDy0(R#ZNp-=-bY+pkrEbmKwgm|cn$svV znlcNncYeQLJ;3a?2B8IWD?b0dtzlil8YhfO9|t;qlT^b%Gsjj@*EeFFpPsg7IGW;5 zhNqGK1gOA@Lmdv_?$v$KZ%G_=3unUe14EL#n@ve{AN1PwSYf|8* z1%i^SKL|KG_VM)*3ra{(mx7Oi&yn?my1QT*=kh03b5VBfVKRQ~9l)j=#EB=fq=W|* z?`3lg>u58@=a1Q!S|tj7PZvF$x$%3c+rrbiuY4ph#Cg;gu{6YZI9rcPR@eWgNfqAR zm@@2LguK5sPo5L!a34V_G1J=+k&{wHZWF-<>Snb~Fdz~>(ll+D{WJ^^@HH!^0$ z@}G@|`^U6^dbNr)!d<=*o|LJg3+G3-J zK73^vn7Uw96m5|k@+n;_s8(n6s;|LD0bRJe8(C6^6>q@ZlHwUE!|*QGby7ji=f8)} z=eL=vo&bA7Kd;4nNNqz-5ztuaNS1&MlLk}-RhXacBJZvA0y@7J$U6q6*j@dHQjg(YLf_OauF%KFW-qQW%-!E0?F%reB*Ua~z`=#-Rne-bjmPO=TM+ zUeUt}ApL1Jlz7;j`I)vqy zI{^OpRn5k~eNZl*ef0>d-0T`E-<|777kji-SJz(hq`HRQAvvCyLS_1LPvxeIEX#OR zIU@0}=D9@*f+Jh01a0wt*qgamzKh|>tS7WS{^?PsKfYmLJur40;#x|Q968!O*j3Q=76HGJwAAbR&qW63G9r%fwE-FmjJB))j&DvYA>Z#TpNmm#H=Z9h zx=;x?Z48;tW-J`v`FicyW`4<}lPqm|rsDi%o*ot{Efv5lt~6OC7QA>z@K4a3fVe|A z62!?=X{OkCj)W$M5PYoYmna%a+2I!tNGr0Ve`h&;IXfPfXAVjF5TuKwOo3}> zaSau=t%@6cmh6w8>{lgyj3Nhi=FAb$wp;t=ho>)jS$NLhw8fuXz#eiw^`u}(+ca0s z*UrPht$nR$msq4alHOq>mb~?hEH#+g_K%TNqOb=aXIQ#X4gDM7)gi@NJFQj8!`&;- z(yT8MW!8^;o*$JG>tLB5yxEway?i$Qno)19t%|j>V`oH%c|4mT5X7~R^{6MRBY=S? zWt_ry&`ak7rfhls7;GQ>^ES{7CBywM{E$*gZ~OY7-9GFt+Ubk${=1mmj+msXw{cUa zv9Y?UxT3{=VxGhO3U4QU+2X;z;qi>4dgW}*C~*s;N!r66MhS6VKRf#vST?V0{;=W@ zbTm-K(F`{2&xtDTM;5;$?irJe)_z2lg(gr%MeH zon2QmS8f!=rV*)?>B5(~F540$MrFhD<-<5nt>3+J#85Z9CEF=5;wscrMHH8mq;#INnIuR7T%UQmG1Q>|XdcYlu9$zbVWH z{m^en8rnazsdXpOBRJgiA@m>tjQE8vKb}ldcSc@ax{?2hNt*)w*%U?`cZ&z}6xKeWf3+C*9_jgsmp(c1|B+^QQN+rOKF2X@>^LnR+Wj;s7 z*RHpc1iTip7Pw4v#KCaxr10#%EEU?4N3Wf-+sRf=}BV4FT(vWNWAFy4dv$A@sFK^=f~-BLD+hWXt`|E0X28n}=< zI)pdx{%WA%Wow00rbl9;7n73U5>xNvw0pVKgARS)gQkGg!6I4VIorDZia+#`QV6+u-rMqPRQ5lGhAX^TME zzx*VEcz~$QdKmnti~ga(QB;$)TvT?5Cy#zLA=SX{thH}hUjcuaT4PuK947|aO@+(8 zfYrF8=N*IN;ts=?OZ5FUTCd*&QcT$6J;Sd?Wt`5;XHDa6iWl{e3L|bcA6`Ih&u`Ws=(`J|2VA=1k)Mn0p< ztQEaQSX>nXC?jVI0&EUjNEZG6-zxuXdV+KJg?0dt<%*{{i4ge6a(+C5E)1VGuMojz zGZTCf!-K3fK%ne40*9N+RWGA*oEG-j{+|3&;^H^O=Pe7`Q*hXaudI{|t~!`(Xp~iJ z&F7%kXlKKBghV91bZ}E?SfGYc2$O~S-W=ySKQ>j%WT|tUo)@*h`Vy`jS+)!MLd$h$ zR*YJE&5OT&uot+VBEU5|>XT6a5V_OuspXX6KBY$N+JAphHTp&XTV$LsB&zi$YL@yc zzD)jDNBK^6`Oel}_ok%g}tM0C$TxPGQ4^rnBhx!d-iLQ%oNF50IJ-5GPK zU`FB^KxNY-o?QQv9RGD7wEYqU3Qd#2CKJSfa7LhYw3mxBE=kvpUjmFYGQ z&hAPUcS{fTO(W~jY1uN-V}ZE76LpZk^ERg|%Gy?qQ@xew>Nd<1Y_7MLw-rYiig~1W z=C-Ni?XfxfZ{7?psXB9e$-{1kizDD_(vj;3XMK|DAm%lIZmcz_yNS>*$8h|c|>Lq zyyks<9f0ue7m&XHYcb^zYGZPhm}c-h6|RGH?{J`MYxC9$T@Ca2ROJ&v2%B?MN$M}| z_O)!oDY5q9>oTIo+y;yz#mz@1x_{P{61@ZJvNCK!JL3%1#ipKV=8Me%-`dg+m8>dN z2XMICb3?viJCQhg4TI%;nio;7-jB@5jU*b}bliR;#XfPFnp59cbMXc~?6C6Ym(Lj0 z`-y)cg;qSBCLGq|i-*Lhp~bBUtw)to?ZULAv!%_>j-z9j;hsY0n4tGT_*L4qF;m0)G2YBtj7BK9VAxKSKMzmbM-J@PwC-)+>f^r6ixXo~XutJ~tI z-y2M&0m9^8KZ6d2QFeo;&;v6A&$3I}?}X0^_Lq+fEctsyy>T{yG(0~|9lZ74r*{kJ zY+MbV+}o{A<-L<<>uPPPld*Q|H!|5Ufwf#i>{e+&7Hxn@Td z`_f~^EIh@bj(s@kK*6Nj)WZ@tibp`W9%1RG1vT5mD90LGoCbT@EU5^j_7YqAMwh{o z5MGrZt8lksjckn%Lp7)-`rH+o9toQd^;DF4dWPQCf*MZHkrLR?*>%4=rt+oimVt38ef zfmBDnrNmQ4nH`{>*o&=biqpou*XAz zi00V0>R)`_e!HeyEZ-({dT7(_*#x!OD2$|%RT%L5gbTOTU&9OJc-Ry9Kw|I2lvkYZ z4k>&*fg&NH@;Sgxy$x&7bni}a+|z$61jK`UK5nSwfvijrON{lRHmy|sW3)lQ4dG;* z^GH*H+bm-mSVe+;=F)MA9oP{j$Q1Hz%kuOSnp(x~JnsqkC}ik6v=-Uz&dood%~P() zdRcJ%Dl=Q+wc@N|WPsy0b6Lyc`2TP>ZuO}o?)253Or7>&6_BK?qJZynFFdYThQcJ! z;NH!0VT8WTQFP79KK_or=RkN2fm)%*U-2aFO#sTSV zmKlc5HNt8`C+^STichXp65azqP*A?%I@^=y@#~j0NWn<6T5@F>Go?XmG{Pr=w`2bL|NA^uGusi_N%Q9mwSScz&?us!FE zP7xhF?)O@%c)r#JfNsRk?8eL&Imp=#vfO&9P>*!|402vu*Ue%}%~ zLZ$KF;-nB?C0B)VxxGRSWvLK*x(}COZiPbmuVE{}e&NnYO%WG%o!cDuVFcFHz}elp zV^YG&DlB}f&pvmRn!oJUdR{VMw2t|#)xlvfQW{Amp<}5{p1ak;S>u#Cp4V8ju&WcP z4!PUbu~BtscCs)lvNmF*AtvUF3wyj5=rW|tUf7{USvWSd7+FmBJs6HfQ2|h2&-3 z_($n&Q?q~ie?lBqhI6q!_8WRQ*CJGVkjeP!r;-KB$yguXLR=9LhUlXEy#__+a*?Kf zJ(~+5+?;&z8l~L0x_tr|cH?K7sXVX{HlR~ew`~MwZd1`Yo9?)pxuqHbAAEXEm zeCfT7^Xf1TuJ^=PTwZ?N!tN>8ljfHU8gMGgXW1y5>Ic?Lj+0Hx-Q`DB0TmO&Xq(R9 zin)fm8YoQ4_Bi+$O(v&(*CwGS+NV`^$F9+MvdNC9y2;B+dg$_dI9g+0zAJ`TXSwnm zNNX$V#(@PalvCa-!1KrX`1ofwRdi;~%2sC_Eb4md1AadZhjv$dV0IOvsWM~fw+%^1 z8$A8YV6aa8l{e(mD~D+1)*A>+Ccdl+#>wRdZ)}3b%+8nK4Htazr;9~X3C~;Eps~hW zuqHWo=LyF?RUz|XMeqCY2Hwp4X=o!=Ux*Wpo1~m?xo~S!LvPN2sQQZ4_i%B-)qW!5 zlf0R4R)Q_t7qcm@`qZpZ*10D9jU~zK8eiCCkoS7zxZP(XyN!3-i`222FVY-!ZAuq0 zu#5STN-aNh(BS=!D2B&DW3Tb$*NeI5UVm#o{Ize7Zcu7=8ft%Wg=DNfS;IF2#hvdbxMxU%LZB_g@k8lB!K^*2SSVj+}<@nCS&%C+==n|Pb zzOe%*zcx8$1IvhPH@e$R3kd;?MxTD;tc`BCB-T%(`7LikAM(SHZ=O1YJ$)mSH`H}T(z*LX8ZlFWKg2heQ z%8pob(7{TW`@=&?JNrnn{~AjwrsxbjZo?ke8hMns%G_-Sf1!w2ij?Tx^3?g^LxVRQ z`j8AumW{}dQ}ZAMuBA!!^E3LrlN$Hhd70PCdg$%gw4_Iz4`MSu`OOBz#LME0*aZhr z5p42wE7@b7QT0Pi`TR8yt=n3_SHEoHTxTbNqXZQqR1^L)_Q)Z>Cck%X+=K3V4YQLi9rG)X> z#ZC#mPR%S^Yrx-k(+aRciG0hkBJxCHSW|ortzP||!xQ8;s$$?g(aI{MN<$Y)i4hw% zaTIEM7TX!-mE&8_Y9LM)5jGY4{eie<|HzAZ9WzyBpS%=)S{O-eYlt3RYO%@@nA{sT z*%#HT*l8P?pXGeGgpoX}Y)ve;qsrZ6K5ET&;qAA1M5=QqeQi16z6;0u@lISt{R|05 zN|S#j`$6mk8UFP2c)=I=mQ1r@_g%qo9m$YUuK&$Cz%Hp3bhwTE0!}&Qw@lwjc5vPM zD)QPSKMtDo03^6PhR;IvGMu8ewAl^xGJkF{rGwj>x5AMmhNCxAcNZR$CSduKInCeh zMohU}N3AN^FZjySuvSHzrZW>AuqCB6O+Tc;mKWP|-}UG&iyDtpPhMdwAA>sauLr=n!?qq!lwV4+ zI!)iLe@%|FieI1p;J$Ds;czzAQMc}1eHPuxgr{CuzmScx*9~Vnf8rSulwqc=_&*{l zm(FSHt=@YNQVKSe#5;sg{VZGiI3r9G`% z=HKFX?ns%+rXR3J%p#PZN|D4mbsO%90$?h_r}Ctyn+p)9c@0(BEXCC0e_xJR<(K$# z&Dvy$s{AsX(Wh>eApPEfO|12qK09TGYtfv>#&Z=anYeX_@(VGr>E9I0#^Ekvs6{4H zHg4hFcGd`L@HSF>R_JudQ&;!bjg*I;spBgHaBwG+#a+ zZ<;8*Z6IGgBFxc{$|6&UxwiPX{w**~=#fCT(?!#4M?Lw2)_BGb5sWz`Jb3G`X)qF} zj%SW#9q(`L)AR64jBp24T$NW)h~LG9NA3?3!JofIFG`66MnG|^dML<00?sn`;~ZGj z^4d=Co&AqYJ@d`sjomfb*yn@UFA>VG3;B}iKeKx5bzZ?rM1scDf8k7#uh*NhQ-?8n z$trddzDZh7jmzx=UYjOxxP<v`bvv-0e(moPd4MccuZ2`hUP8G6$Bj}9X!QQso zsO4;*@yxqbFNtnHo&M_txR^#egI2G04oW)k5c|7J4;-<1$qPX6Re;93E5Z_YadXO* ztpzpi{)*XZ+#P-tDQ)_Wl+XRRNh&g14P2ol;~Vun|08aCcNc5c4RKn4qcOAlUoL{> zh9ikVj_*|U3br!x^SbO-RRo|T^R&MZO%)CJY-2|qK`OT4Y==$F{}FXIJcM()e3~`j z?~xxCi62qt4E6W4Y-YWDZef+fprP{8qjenTO#|!^jraD@j4gqq;V>}y7nvB+$FRYj zvmTi(8YihzEj+DJ2%_*-TqLJ)Bw6k+J#a7ciH3nb$4}B)9UuRX$ac?k`BY*oXRIPZ zE_ds;+s=lwIfz@z;Bg<_s!o_B{S-9jO3`@L<2)(u{U9viaKdg*h19e z?kmWEn0lkj>h=)U`|0xH4;$VXj-I+!lcCa01})3pzvBk^F9xdJb?egJ8` z3fZ47IPvkkZm$R_{;_W3!Kmdz4K*w+yUSxTr!-yy*!Uk#Ghm=LlMkSg zNi?by@wV&H1m=-U4+6GzQhb>sPOIU8w3b{JR^$%4ZHqgn3@6(sMPXhaS?VE?SyRU* z2<30QNjWW0qn*8Eb&L_F>qycOt58q{RAKoaOM*tPs#w?ZEwH@P?2A)zoUjSaPyo*-MzJESp z31w_QKA{Vbvy2Pg3B3`k;`yfJ`8bW}O*=q>(2zU#p)0RDtPmcxHNog*B%Mr|3u^~}C+pFd+HEbX(+_`IsSJ+5mq`r;3=iL1z zm50zz;&YWFckD3E+wl&4HvNGxaRX+!up+To06)&?-RNjscDokXENj%1_M-P{uOM%! zd{4?DYWYd%h9KS8Vq>_Yh1B0#{`BbajfrHz7O}VegKkRY#**uhq9JV9&B?RW*JG}x zB9x>Z>SwaoeGBba5968-szy*+cHWtMSaNWy_>t z>7oG-P*#~dNMhfyo4^kOS;%2K3ln$xKdFg)KVYO|eoWyOitudD>~a&58g}Zw#R0oQ zpiA@)+T%IvJr}!R8_8nq9m6vB={M%*>3AL1Bv^1h6o*hkZ$NP}+Io~LBwR%oz(hfW z=YD6Z)NCFX@LIlvvii9yX|47_wa9UpYflYlnb^AzQP=z8A5+u;D@W`P3pCQXfo{Du zoV%|3_bIwdV;((oEW?#A8C#5GY8AI);=Mju>=;o0nG&*iBh4D_{&O%_(gs5pHr2T*&CiWKJ8aqYFe*CP1R#$6tya|E zQgs!I?hFsLt41s_*1h5MMhM0By8?_x(clfBKSqKl3qEXI5n+Vr{IXU&yFmHvX1`eY zJ3T7cWGvvn`}PFs^XD%*qbwR!KVaPZ3&rXijDe=uI^Nik;L;=n+|HWqp}P;n*G?O_ zUVKXjNKCS!|5_a5J7zCyjk7}-XZcR_IF#~L-^Cs-e2$sT9nBz==!#{4x2w3 zXDWw|Rxq;J-xeW~c@iiCqd9K0d-iOsVflkdsU~S8 zv5P}qHxS5xEqLP;tQV-7Hv1~tsE?lJ2|r-W)O?cRFa+f<*`Zna`Sjl+nWPHK)viB1 z8gOCkrSH?aH=)}zR`8l(--IibqK5&dKAi{ZchUQ{LRMhzUo~)%AUX4v*N;g@CP;; z)KF?uHZ}T%?&~FMCV~i8QDJVC4`Oc2&nTcD=Mwr>E!FSRgE+B2-T~bfq~=KUA)>T=80p=L-T; zfQCFrKA%l7+@xhk{Z|$FdYBa}lf&m)t>gW<^z+ZZo~jh^M|5P$)5KSAJqkvFlDE9u zRNo%FX{uv!9Ad1kAnZuSw)d`mZ?>X|ZF3p={{TJfy=m$Gp^+I52KZ|o&%c(f!6|fQ zEvJfEY&iCLe)^dVV+mdK@R5_rYgByn0kF0ko&H_FGpMWE8D7);YU9*nB1OebtgL@A ztj&^;l}10Oo^MqS(2S)7?};3j`JYVz7DPlzVcdpJ_xayiF#iCGOra?v0(R!Rchy`Y z2V_M{tV_!AUj6&%C#Fl{$KgI8ac%oL#APk8$EG`b{rRpneLolLNmIL?dsm-sHEf|S zwMpIzGUhKi_Q|5AP=t~zQmRuT@%CK?(qv@D3q=Ecs|SDQM52)i$?6et5?DOzpIv9G z7piqLxXO!X)%5%59*F^rde^Z{(H>54)p>qiqEU=!kNk&|i?46Y>!-tFu@Be!K%<=B z(^N%-cEdXxB^5UNJ-c(D(qSd2Y=lblD({9e5u)5EFNkr+xbhg-r*M$^gqUWnnoWKKRFPZN)SzKLy8jB*9>p5L77r&p&L z&6Ik^P?gIOG2Q1c+W6GUQ6ny%>C#_?p>G%Y-$6TvqfxGSjkxvtd1~eTLwO60RlvnO zSJ&&Q>J-Ct$(t@RFTyXko$D09fg2@Tt~QU6`Q@NDk&yK_0Z0vd)-^pz-GL~#^#1@o zwYFbPkb{D&m+;o1jAKS#SDewHzM&!nXB#u{+5)rbmyJU?As(g>qWe~R`u_R_-L}j0 zah`RUMJ-rj%gz2%pa|Mv80B19tTEdZ40E3U0F|nPQQhGZRz1#m{O_r2F?Qbz-<<_Q zGJ0)7!^I^2*w|m!P~GmAi1YmR)l|BWQFg|nuLqa&pz2(iN+h%2jRiZR67Y<#bYh2> zItV-7nu22K&)V-s@qMypzM2E#DHz*J;XJbaznunUeM@MSTD|^SzMD9&QVfX2BfPwR z7mY-Q4mb>>V|v#Yp|yxelCtiV$LF4dSB6pr1T8)BtO z!HaRV5fQ4;1Xf1NN1STb48{a${{Xl1pv}vuN>^)|`QCjstKl-=N_c!OFWkn0CN_9e z9#ws`$($6J#zrZ|OlT1*SaDMP{Kl!;#xBGHmhpd2D$q$FhGYK!054K;q;}J0IKYl{ z#LRasO9~c+=RidU)7wq&+`p<`oa-3cmL1fH>Hh$)jQ;@qr}R?(v!SwM(T7*zJD9s& z!HShNUA5yQCN_SPzpjFtl=sf5;oxiV)SyS4dYSy=S~gCMJ*mAh<%-vCJLnM=+XmFy zyqVWJ!s8vaa*>UoDNona<)N4e$DS{?fsnnuC_Y*NIcpYr>qhs4ygAQg(#lUrg364C z(?B&7!rh(9tu(QTQ4xGgSN{N&rP~#XT4ldKuDS9S=qiGwO1qw#%565b*OwYhN`Ssw zky!H9H%O>kC$M>FF^Sx%ywKLGt0qY%EN_#wo?cW}-lEzf`rmXVRr#oYD94V^!sXgW;=4oXU`grZ?PkSVk6T%cyHZCH0E9W;SoiLlyQH|NdXXZ2l$ynzO4Qvl86^9=! z3dCaec-E`DnfqunhLew7YQgGrtmMH}%cpUST~KH9zJgWa{{YsRH-5R+t;>sijWJ^> zQxK1*Ith5awSP@k;ot69urc>WRgbI97xbh%^5psiQ@f4ORLtW ziCIRo7?)Fvi{bicF)F$a+Qq0ZA8jSdR74(41gKnY_0EGvl1#j@?`D|8cTaIliB{hA z=b@Fxv(1^oprf`;1xGzglULl-fSmZdd3|)o44(;ZgypKvf!`;kw|9sBzhCm`+M=8u zy17TG)9I0%SjJu;O8M)W-hnF1V{OTh`rMjuaD2v-RSMQ+F zyzP}WRCm^D_V`M=LoSG^ce+tIryAQ*)AaYJk9`C1{{Z6}qU(C$);~Ic>S7*~k;D?Bx#EXv=27IgEP|1{*a%B1Qs&;LR zg1pZ^zJkaS=#t$S(u@VXR%`Q(M5M%H21HzE4>}ykOg+EOoJ+xbMIFu2^w3t&sNz>m zvMB!mA6;TFw3L}tdpu`T`jsQcm*#ZKz`2W>vpCQU{M%1I+dzxrQ0E4c+KC;?)$+cE znIw?hXOJ`+J{jLnbpE_+LRBKXSBhK4otsHqtFsOr9uI`OPqKbIxO(w z^)X9sryKeDXd*N=w0ahr?JkXU$t&g(68Qcp&`v)HBLX<3b9`u+%`8{T&Lo?MdVjrV zbZkJZQ{4V^?~+%ASkzOurD&=#3uT6)^I@VrL!~pRv!?BE6pPx#Z1?9-UB!|+YQp<# z(bDO4C-FWPPkdl*QY*BqwdIa~&V!#$B&7cUbgO0ERuA@S4bV_cs66(paqsolMp2RR zI;Pp(;QdCVj7Uj}$JKj1s=ogK`=Gv`LVZu`4w_rFz+HgxT7j2_5H^JH?gz-vZD~hm zO=USlB1JiCzHz1Ar%8{9EF~LJFxTfMg9J+@Pf>Q2kokFI%fEdYoIg!a%KbatYopSW z()b9ZkF1^pSPxlUkZES5D8hw=i#7ygDrlE(*zWV^pq`XB^|m7Bh^49(VjEgQF*Drrp7V&jqF(0DfyiN8@0(Q;)m1x>6c3Sd#>bv)h@Vo7WEnm zza#SW!eqLhnayWE&VwKRy|R&Si0Hf6TUZiePg}vSnpUXono-UcSSG9dLGnK97 zdBA5tl9XhfHtY-AeeqZF(giZKDe#_O<5M`W!kO#Y?dXHRoGh_BZ`Crm+;EclKq+0KRD z#4_=3e=TBY*}H@@rhQkbTfelU(6#QALI444v>T4frr ze9JNFYGw>fT&uHoY7rDn=n!NCd0yHBxN)CtQzleUCH(ZODAOUM%Z%N6bD#py9`$Yw z9ETV?8ls4?+ibj>O$=0I4td8HpuldrE1OFVU=TgD{Y<+X|`sf~6T8A0!>8!h>lvj^UPX9r z=U0sby82`;;wleiGy7V6ujbvJ)xLxUBd%eq&4u~q&xwyxBbk20si zx6VB;P|1-iLi0hYjHS~XxVTSF4b z*gZJsL06J;cRVqwN;NTMxR+0u_>WB%c@L|q{arA^jqqFi=ro)Rvz~m-6eowxtmtaI zHeM6YLT5L}eFe{`^(0DG)-9{~`RJu`aAke9h{#aFnI7lirZEw2$mb_I2%+PTT{7_l zcrmT!W%c74-mXt8&{X-iX?==x7F7?TVb*F?)M7MaT0&H)uWbRkMtix_J5o|hbB`@e zTgN`Sb43{RGy_!ec-51Z&A;2_#<0t#BeY4Flm)W<&OJ2CsIryVN;HwEj~%Pf&_lQ_ zT653mo{~2b);PSFdGh?uvo?3RwyM)6vV_%+OjG;lC2Ce+^wL)9bN1Fm&NK=nyu7ps zhHK<$o4Vz9CAS(P=G?ceN}}M;r|tC6Xp-GSntSVd-It8#LTzh=@^3oXD(@KwK-aaL z4gGanNLJ%?QpbzO@c!D1;{LqpTNAhMpwW)$k>OtYvYvwpn^?P{P%XOU=BU2^0C!x* zvCMBZs$xb4M$6DiXBp0};&k>%Nn2|6$8SD$JT!JYd1%iPYu`ZeR$eq+(elQYa+Bg! zz+1&*TZwpzu17${V+Vw>M?uD1b6$Ga7Q8+z-MH4YaG1t{g~KM z+9Qv?uo=tWL8Ovz1)K$F$?1AVzqFUWos4`=+%$`yr#b;DHeET-Z5A9F(dPy0DcN#o zK+4)waoe_x4f^(VtT@lPqn!iEW-D5NyB;y7_c_P0s*g@z4qZa&cOtX&{E&Z)Fzw5d4781mG(tnzlyR@71r`*+f2Lm)uOVWhM4&vjR8tr4TB5**>K zfA>J#ND=AAM7f(L#O+0Y?wf-gh6g#fT=w{?@t0JaY~(n8dI6qcaf%&`cjHylrwo_@ zQbhf=0VW%}81~mlb>5sdZ0V=!9g$o0QB%`E%XFo&cAyyr;<@tC(+H{5fW3(=W19@> zVp+chdH2>=sIto`XP)=>&|r@G+*M(3Rn^(?QZn2>-oJfL%NcbLPR<=%Ck@o1$~$gW z22A6ho`OuQsv!RWXzFpd&a+AU{WP@1sV3Y$T3DNfLyewWk@u^q zp4IE3Q{6)vks82fz3G%%-C4H5K6p6Pk@T}U;_ICUUF3R9BMzG1>*ilwa^;PE9t~B- zGYyy9^C&-^$R8k|VjJjJ#@tViKusmEp2p+8D(R(*?3iSoSnS z;@m@V7!RG6bNTJ52_r|Z(^m=kNQ+fP2Gl&o?Ee6&@Ph3=48KD(dsoe^q9T!ZwC zYR@_yZj};?I+@I)yPr)YkTP$*_te5+ zF==Y(F!|kf(<#ryRbP$17u)9Os_OK*&t7;ok|le$0q>tZb0aE~(%d&y6ZtjQsT!zujwVhPZ=`fL_rBkH#thVd;Im+rpKolvQkj-M62A{&lEqv zch@-giQuvE4?doynz_Rxb${I_3i|ndGzUq^J0oH?UD*EskIdLoLSOG`5{ta%dA@S!3D;M;rT6VnQs@CaB zFq~yLGCA2>Y_5MiwC;(}yGHC{)%$A>Bo6E zj9OUA+?D4^j^291XM|-g4c&@+XgTd=4Z}s%e7v;oAt=cVW{G=wY1=78QNeVWuGRCu zO;L`T?2R$Ik0q5{{$7CTN<>zrIU^E0nLqREsaQ9=+RhKmX;-T$OB5V#uKXT=hyhqZlkh636f)iQM#kKetMH>9Nu{L@2wJ2B*d2)PCqL3 zq>?#m@fWw|G#Z%*-54py(a|PYizUAiZ=RVKIWTTFg+8CQq|1~KH$hNdoJoZ_sTX69 z+xgI0m^*B&IMrZPho&)<{j@w(IL_<7&FP#-%0S$24Oh0Z<2}shoi#3} z=~>X-_U^g~Zc2xK4PM+w#5P?Ws{H=CNlT?D&LMbWg_l{>%9C~GzFG;bvPGu*X-^Hf z^6jORc9D#8=D(kptvPO;!r>ceT$%umac(dU zrFfT$w-%^FSXfbAfS_Z6B%e7XSbtfdbN?4$mA=~Mxi?tJ) zqb=D3)@zEYeu&`?e9hFY_HQH zvhRb7tmrhNjrBb9oWDH{3Y2FWD#06HJtD`xfd1XB-Qc`x`f-%kY-Eu)G+iEgoYCHo zEoiPlGmE;=B$~BKG26bgDG`iVqVFrJUGjsuCGpAIiC{}b4zKO&y$WF zPh$g}1B!UG)Fty`q#io11mNRn=puYm3E@;iCxWfoGxpW3pz z`)3*j>HI#VW7L<02XqmkFYBH>@vd)raeefa@Y^pq^wyoSTve_Pewqzb_^vnKM{IV> zr)u}Q_10Mk+h#qzG#Pwck`DfQ+mi#1$8Bw_rQnL=fb`C~&#w-rN2Su2L#9in$(LF) zmhPa{4Xi+>s5x%&K?4+#D6(qAYd*euhPQfaMW>qe*1G3GQL3x%WBJjwjb}Zpop0?h zYo+`R@SGvka$fr)`HWn@Q$Z3cNXA209(AmX7B?t}ws+7C=8Ru$VzyFKb~*$ZNt9xt z_SDF#YY!S?60OotKTQN}3kz#5gIVMry2bOKbGE90=WMiDn^x<#gG>o>KE}24MZSFN zRVgvE6?IOnkpeGI3mTDp=qJTEZchwxVT}I(=A~@y^wk$4UK_mMmWe6{VDiuu?Y`Hh zsI0~BW`_3etT?@5-z**U8zn!ptf~XsRL%HAC_!HMU;NVUcS56Ob_W>8*FgMUthxt9 z>dEQF+;rr$FDP((>Q;S7Vm3hRa9jR$EnYmd-H8|#6u|$jfRH z;jCk|=pv{`FYl}35R%FygJjX*|D#w?mM67g^P(Og*9YBjA28XWV7OoWU{6^v8QuBdztDLX3g z>6HMjslsPcSAP|8U-_z(pr55Hvgbff*{ZyMcWogkhgB@Pv}*nJBxANV)wjW_>9OD9 zFAo%U&{WOE5;m%#gB)W}O@ra2ky(k4uNu2hBr;2}Z0CZQA!MkVv)Yf7WjGg3|~ z^R|bnG&f38_mkT}bLr2gQR)m!bHOarPki3BfiDMuY>low{{U@BN-+k8ShJe)#+|z} zD9dft#G}_yQuPrPB`V67e_xigRhU5feRV-8F;l`u?nfZ@^Z9CLb~2K@cgL2hFNwbr z%QF1DwG3qm7q~#%o(^?TBQ3-|e^;0J)4nH6j65nT$CuO7{rAyQEG1;+AD&%l#fe=( zjE*h8Uzazooqm*heN;N18Vf|~uC>o$Lec2{{{TG@#jp%3M2`>W{%aDEAsE?}s;)k| zNU%ixQojkEXvp0Yt7K#}jdP3ku=mb@qjgRtfJ&Rw(IiNb8>Wll@)OpymljkELW>SR z&pM$xY$ODVP_bNAe?0XRGbhu8Xo&-Cwij*lPH&&L8e@AxC6`pZW3}M#u6-!VbCD9U zY5C5&OQ#*ZIGsXX9~Mk!j(vYCK{FthDwVXZ3xC(wTWp4Ll#%URdtc922|`hh-P_T8 zG2k)H`gv-0#2CsuqSDR@N88HvM@jVdyJrJFJV`$nyue)i}&j@F1qQLhlj?~eTA^Osw6ES$Pxr~Qm$%S^gMIW3HQ zH`sf6@O`wei{ZOKpNBc-xzQKboWHI9t8zvu00(rf0IPGyo<7>=C_Oe4V=Ly@C%%cJ zw1MGGwiMOh&pPQr)7?5|J{xTUxX*nR=czqC!YEcA4OGYwNRH*bxB7km06w~@&tOIb zW8odp%6Izav_@Da&Qh9CpWC7#3GPRHhx6sFUCP;b9{TAD>5_}#q`GeN{`D|o&B#Wn zYmdL>Xf9HU5gA5ZIQTb38&X;>&7rU zn?S3-Zu!tmCDrNmjfP4DX)}0xKDs5dYDb(U=8rBkn@*HTNiJC*&NOad1~%Q^+}-FM z&rsX6sq;z~bYI`=qp5pHkf_*GEbbjIk=MlE;>QR%zW9QH%x-++6$c{qOTS z31PK25)3Vsj@l&#ZN>PVuWQE!w6Wo0N%M`A{#J;1ri3{-4&R@?fR^K>2+5sVkxC31 zKRX)eblF7-1#(F(PSvRRlBy-^;;j1q`legDjN<_pcGBuUem;C?G^GU@bm*X= z)M9k{ak*7SCT{3Gf8LedB$1gt+6`x>L-iLLy2@mIbbGHCm}r04I2~^8C)Dj-yHc0P_Q& z(rs9k7qP39q((k0Qhu!W(5&lrNXDXeKgU0P6}_V6ZZn``T|q8P@mJ-ki73e=ZA>?c z*2^mz$DbNF4ofcd2n9)gowZSnUYgCSXb)xc_R%~7q`bf0o%_16mLSl0K;ZKI^cn*h zcv|^mSgFk4VP*Sy=igFczC+7epNDnfS}(JW1$dq8d;Xxo=lpS?o3ubEtQr|SyLjLX zX(HXqfaGgB4JhqPM&pEd_tHU(2}=A{8La;RjbwlUH4`XmZQ6xV%juwG+9gEvy;lA5 ziBaGMp!wy8WM`sgt2jP~T?Eoa;1tvJZUsB4U1(6b{2q_rMgVh3(?71JQ~B2AQF{-iCg^mo*fZs}7?y*yV*fxMTjwIKu3@z4m7#!ouaEZsYo zEog};NQo9wa0YKlbx^YLgD!yEa@%E(K6=G@raNhN)>V?*t;qPI3*62>_d$%vrt{s# zvNhZe{%*92TSZO1^}5!nT()?Q1lDSmm9I6R3MYVl4R7rV^<6e*n^QW`h?cUU%^D0t8;pl9 zmVv6{8eMew_|zMP@7jMt~)M{#8Q*fL7V+Y{_7VS zW1ROfrZWs9@_Tt`+%zFy>p`3-*Pb8oqN+yWuT5-}#Y)dQ+niI!mVva0tBwt3J8-Uo zvyR@{#}<}o8jv7g?rT-68~*?r#BSB1th`>Z8@x&$h3G07nv*(sRc#O7T5=^AKtodq#^Q>n#H8!J+|YX-Imxkm6;ZEp`@=RvOVrscH<37gSe z;l6a=g$Eqy2aX(R+J)nqJ@hFnU(~&@X?K2=;_$p^HL3%i*{y0H(_`4@L(0&49kj$+ z2Mf;{3^I*~mQ(GaS_gxTYUi8s^wzwYr_Vr$#Xq|3R~4+RUtclNLmI{F7u%lIpkzdh zSjyD#703D1`*-cD9jAnMWM6$0n~51Y9R?%ITz1gLff2te)&V)MS6C98tp>_f;LU4L z%L$*hlxUXJ9vacLp-SD6d+0JyXH0go2M2Z51z6Z}=hItkwu=-VB=^u%pv7Y^)S_nw ziB4N-MDjiKk?%Z(JnIBPrSg}Sf^0G^r)@ILczjN8&sPPEWP~LL!*Z{DcQv-lttE_^ zpnCoq38;m|Z1Xe`D)&c=&NZYl6N~dRUVm*esTZ|WueO6%(>_{cZH27t zw?MHP#yQrKOK1r~TH`>0Cx&J&kG8c%jM6eICU5h;jqiseAfc{4dU|nV)`-aIvaGKc z-v)wrGHndFssrV!Sj)i}#yR93Yu7<4New;MzL|AauvRK327zH2$H5sJW8&QR{{R}F z2`iCyVLbkNxJjH|ox7J5U;bxA!q|*h@dWRmlc0Kr=#qq8u?Vs~wIrRpV}Z*?e=)7J zP+1p_F0sa@b-Oj?;dC8jNt9)~b1D|@vBmpnpHgZaO7N6zC_g;)Ek+T{a~by*!abmG6H$RFcGW!*MG zoZ6+nx{Hy~1i{@6ETA&pB(Q*qT>k(%CWSDtc{m)nJvh-_Sut4>b}H0L?T>!imNLDv zB(_G^7v-*S>QaCfQ+3DFT`Q+JG2GqQt&iuffRsPx+tiB|_ewlb&3bm$+8d<{VIEz- zo|>XjdXH13)2^8+ref20ziZ8D*vP0<zg~l!V9-p6vfQz@MBXCKLR&1uZ z_V?BeuJ`ort7-D>^0J&*7$V-8jM_zUoEWdHZUPaf=<>aal^Q}IpY#9FlX;zmxkfH&7Obckspb)lPj!r?H;zhkn01_x08!G21T@STBq7 z_2=JQlYEnKT#+ic_t11+l)8APTdw%$vD+B()^!M>!J5vRKx7vJ;CRkAUI zHR=-cBVu9xb)`N1CN9{Ey20nU>)Syb8+vR}4iBGx{GYdNZINa%=2`I}SL2GPxJY1Le{PfgI!WMYD z-;S*naS!c2>eHdaU1k1bB-41qa(Nq0%d(?HzYPM+>1Sk691T>?al zQ=+&)bv1OnM8*DROVgBx463*q_tRkt3Xw@(dMf&TGH@BnFgKBBBI};t>rkxZV2i>X z{{TP6osc3vDMJ>RtXf~5jqKwH?eN5WIY~F=epF+~)CC32Kf2?Z^U%&bMRw({&uvtM zWbTKHy(VvuO%j4`y{^=aQ;XF=-2VW$WqUzwKZ@3{Bb~<;U#C<+l@N~gjkNb)FP?_t zTT#azeYwyOoa1rnuI9ysid80)H5s*BQOke(qD=adY-J?JDgn>iL`}Ci)fLHl3MVLa z1x8Sj%}8tNCZ^I-BO2X;Jn8JQYOwZC&*N0D#glfN%KrZVo%95D@2%i-b$U68CRZ!2 zZFI<~?CMB1o)mW;bXTslAdb+LlB{Dt`e-L;5#1_RCzq4^>u#wG&E4~P@2z7pg1_p^ z{A)@whlOeH4A`D$o`Xvgkr=U${clnSnjYHe;Y^ebIj7~K0(CQV8KAJxNt@>!S^3*k z%fP}w_s$V~zMq)UD~!e+@&)A4% zXf&nq8=ww&KAJZ>Xfe%RG{#ij`thuW)yo@p=Z}_w>PYyX6Q>=ckn+@}suUjh*5^ zeYHhxHrn#zTH^HTo4$3Y8VL|$KEIy24Y3rvE1JfzF_es1$s<9CIm_hfO0ms6oH`9M zfyQ!GYYGud@bjKMv>~$p0K4Bp;RgyY|s zoEWBMaxUam`TgwF$}x{oj`BhM(c${(+eYZP^)v?RhTg+^*O4CD7To#kHF)DeZ^II! zDA7{!TD|*fP0~n4@5t7YIo;1{<3d*m=ql_*3eI&l#=*nuszHF3NaoynR-}^>i9TpL z47coSQ)W5stX-&J%4t(Lr?ol?-0hH&Pj9}lKZiK6AhDH;8!_fMPnM#uJo;Z6WOl1e zSm-kDlfiyk&QQmfmWlvZK2@cpC`IJZGT3!|Hz*H&Q$ZUF=gUs}sLz4sv#D`(S;goo z2L7Nf(LqCxrnO?KElZMG46Z`8TO`4pu@z~oFPGmz8(q{=`ZuNUxzEo=JhfCM_(AP_ zXeLpVB*t-LBatc5URLU*IZn69XvMdVHH&E7U9#P10{A=Wirod@8q48tD&6Xd42f+y z#CgyGx?U1ia0Td*;f;4MM;2J{*{tTgxHKICBpaJ*Yft`8uYp*&EzMtj2{3J}_Tkk_ z!*M1h92L9mpe9A0*vW13)o$4)5o0Rz1kXJC=s9vn46_<9PzqFSe5*jh1rFIrWmaQG z_N3L{eOn%Y_-OP3ZMa{ESrDsh@{xO6;Ys-JY) zCJ_QFy0e?l=f0SX*wke@Y9}YQt7hYLWl6}DP5wHHl9*+8ANJ#q{L=|LuoBGo1#aYqcOatro;oHl}fx$=60xsLmU)8d(`%%ww^xY?O>mrqeEpViS#t z2@MwKS}%w;ESx#MaiaHh{6i+N`4`T!w4ws}Nh?0OBD!_d>TOe|T`DYL$BCMi)8AP6(X6^Yqr*1CsogHP6dME_!Pld{?~lKOJa44{Hf{r5gEpI%7Ai z!qafj27bRIM~Fi9fs}Ko7|X!P*wI-o@n3I!X}vzAzvJmKjdyOJvBUP(j1Hi`5xaLN zPdGeZ1AsnXhNugZ2@%^FJ{-|^=b~|x2}8keENhS4)0je1dYSGE?e)&4 zDk6TUc9kc7-^PGhcqL%S@}*r|Y~c5=PcAf*hWNXc@>?D;+ZB#=MBeSO6qzEnmS3mmmb-QT0H}Yc>GXPiUxrJk z{lit>`Oj@}i57AAl1P}S{{U-#e|=o#{Wv>F%Ij=_qmFp>^Zr5^PH+5^lPNJGN%7ed zh~4%B+Ko(Jo4uT+JZ&SiEnGf@TlDkLb*0giWeu^EWq0ahx8`4cYo5k%lj89)jnEul zZu$tG%aBKH{{Z&8@B4n*W4EWYizVSJ9(Su_C`ZQ~q^R35xz{&{LA1~EyO*l(X_zNc{-l}MwV+0Wth(Dh~1 zgdr}a#1MqIj)?4#ABxH>WL<8*M5B-V(bAmFml9Hj0!@MCURV3;j9Bl4VPkyvr?=DF zRndAKUa24IJ}*q$L(>T-mKwjVieMc$F=B3gbMpt}+OfjMo}t0%LOs8Epq1N7Gd(H~#<< z&Q)q3pO?<2Cy5|oI8HI00hxdHSDt%oMK8q}J`{*K^wmP{FcmL8*Y@LIr~d%@=l=l1 z{{a0p{{Z3t0ImLur~d%-um1pvcQ=1_fZq8A|TtC0pP+W#2d`lS?+uijp@crFR`8_(AB)mt5 zzI*fdd1y=tS+IV5UY?}4S5gK$-Q~r$`nm~X+-xEzHH6~z(sNm)WfD!VP?KntUzyHz zD<6j~z;32Hb5)Lhx;kv3$Rv%v+6uTzwjF_^m*@FGCp(!IuG_p`e+^ zZuSR+Y4GuUW!9QEu#`envu?bOJvF=}`3u9tpO&W-HF?kTods3R8DVY5-n2t&d!zy> zWo?WccpeeJ($Y6d%PY5s3j>)`=2}e>Ndog zxpv`L`s-rkRTWvseF26B0%x7dGm@u#}^FyZ3&$^ZIKB)r_LN0WM3>LqvSh?&*>QZYhg1tcGJ3 zcYBHHrZV`GfW|U#akul`&`5J!ICEc}wNdfNAsmI^`KygeDvB&`BX_J8HE1}{B19K0 z{+?{TR?;znIHvN+C1Z=e=0AN#C?)55WqeL{L^hYe=O0}IFV(fEEh{c_o_=~IyCPW- zx;Xdwx{Atkq!_fdXKyD!%CQ@x`PP>sw}!a=^)IHbGubuS6>;M2`TXc6uvka9z4cLy zY$Vp=_c#yC=tIQZNe}5Vch&?u8LwRiy|-~K&wT)1WzM=!;gXxvSr!GxuEyHW@2Ga~ zqx9W+=m|xHMI{x!aetZ7{jKwUT3IrFTHO8ncF-N_jX7hVK6Du?&DBPZa@khVUzMQI ziQYzUj!iP~%VHROO=t6+4=kE*TD)2Jw?IoRfO}~+fb}BNpDWbX>1FqM(R_MnE5gPh z`mZLdYqmg9R;}^*T9T}}eGW7&%FG{41;@o9kk^rmH5K8%mb2nq=T$XoQY+Im=r-hc zZZ}uHrN|Lf4*E|Bl8sqf19L~dfpSEuO=!s%Y^n3TWFq3)=JX|3o8_Rr%;z2Xsy|mg zm!Yt-ku7TLoe_+uF96D1&|Z$*{InUX#*G)7@jyK$T6_u27JhhtAB7rX*k0B>89w8)a8|s*4kquKLm& zZkqD)(fV5R<eFn$>xh4%yIX=aHAsjRjtAyVkTpC337|9OqbRzvn?wlu0!na9*@!PS#G| z=WS)2qzYNaaB5Y}x1eke_F&fSnr!-KRV0s5m699d2BNawJv116u-~4M!<_#5J!?pm ziSc9a!`z{V^UuFnh}+Urig;& z4}ArHYK?>R*I{88#JFk4|xkI7<0*QSG1gt0fhm!~Ok9+M?6buq8X)6|c{lhcP-pGy+l6mWKPsUvaT-FJDnM})rW zcHn>WL8L5qW5}*GU0Gu2B`mQHHH(nM13SE2-Epiim5)u6BM9*K_t0GBeOWLTG!?=5 zjYMS&y0DF-jn0RoE7%j>G{#Y?`|6ZgNS#&S#r^ag?A=wiD`lF!vPN)(fEA;IkLO2< zGqxdTaIEU2##8?Qk8qjscF+SahgH*%=k!zctyCCA@pQ>nTbFJ;`MpCFE|$yo_0`3M zx}F%e%fn7Rp8o(n70hmj_Ptx+oS4cxqW+_gmW~V&suioRO!23w(t2G$a&k3^9G_hf z+@%@FrRR0mIs{bQAkn#a{k0@=;EFd(MQWD6RK&a=Gwq<;Yoog%xd9i;9D3?+f9RsJ z2cOGWh)E=E4-*v4Yp+R+*k@|vc4&KWV^LahoEWnh$v0c;pUT%Vg<5fn&V03RP?RH# z#`3+quiH`)+qwjE+ctdo)f!7C=I748Z!KTLl1Pjgk-NMX+;tme@W|{JD(A}vt!@?5 zh*6FUtH0ks&X>Xxi*4GG@;+YgI+(};5$Zb>Qr~?COqnU~BpkBB`+Dl4%444uHse2R z{{X!ar2I%*z4KXp{`z`-O`SO%EyE*hh`gQe&sinaiz&+PHEmy>bnj#{jJCzWYSxO| zcJ$G(o?_FBI8SGtE+CPViIg#0#81pumasCEDqDh#{{S58by&Su#N^H7SJzN!LLEsg zSlur)ALai5A4`!Qr%E8~_;5l-cV$}g#r`@Dfe6NP+ZM7rIp2 z?s*ylT~nysY9&4kP&|%W`RI{KvSLW95gs%7<*Mj)BMA(~T`?H}!FjJQEl4uyN!(LR zwwZJ5{Adr=GAog&#-CQc{{Ve-kHVKtSE17HPaloUw@vtjGS6Xd?ZZg z^Y59q7kdIKiYoyy$t%1WiFdAkg}HUe=fdyuC&4gj7m|a zyZv+Lsg&i^-782L3-ZU;Ky_r3VuL1!HhjL=($A-RMPQ|aRGt2prG6(?GmvzM7mjgvHBR5NhLtYVuzVYWkChQZ{@-TUK+NuY9e^jA1*xE#`oYgs*c* zWd1R&4z9@(qEWrfRq=W>-_u$sCi*IzIyU%i4+<5b^s7l#f5L^VGo!TGkY}lKu1>sX(g5m(Sy%RwMn%&dGk- z%`vHAkKak*j>Sc%(1Ym2vv#6pCe3SQ@&M&txW=QhbaEqriL^H$Gf1!n28jreYJ@0 z1Q#`RgVS4Y{GduMG3EEs7|Low3o7Ei`UR4VI*h;LDg|9M7 z7Fi#utX9m%?<4$ZF(xI72~BtWqfJ}bqlr2$_La7r>tKcCy#fVtHn@4?M6SG7>3^P@ z1-w1=QjXYVz1b+nf-0Pk8oHAg!c=mn(?U4K4<5S77|xuRnt9M`l;tUM$#d_ZXvuQC zV;WeLRj>C4Z8%{r@~geo-|zY5pe0x5@88!?Oc_+vh1`&|KDwJXX5U>V&k2(mdGG!- z0I9bWTVb77NEv4}>+^obrbT7S=TtD;wJ~(fCf4G5Q4q>V>&$=GwPRwWkIH(JqF zJc$vZ?Vtm6fXcX|omLpJ6uJek-%>|%Qd(x()zWmoOk*4UPe1JA@z6|)rb}|p8+odJ zni|_=t@5oB1B?1rs467dV|7cMdVKT%4rPn)p}zN~*)@-*oKb7HoM;LNxo<_Td9L1C zWXAj$J#(yGEfnJGjRWNo=S)So#@V=_yVSC*F)KZ}#)>@aL8~3FPTvaMhK7a2{!|SI%++aJp(3aK5&bZbE&M)XZY5oNSVG31<$6$m5H{nWcun-Hy1kxoygs7tIMp&#>j;fzJ9t1 zInG@JC`vM6II)y@C5Kud%(|{=@2reEo;b05lC*^?J`t-L&<*c5ImUU=+2LESTx(-$ zR&SfpSiaf|_-6BTsxEJwe6=}RDfQJusW?Vags7hz#aoOPf=T*6p;<*u7aCfdIkb9L#h{kUqoYU0I`J|#I??X5tURN`B6qBUS= zIH8(v=~{Q#g%3IK=g&l9vWqHv()0c_M9F(=nq3D;N2o=5yP~Gz&TsJ4l@6r#9~QDo zC4Bv~jO7V21dKt)o9V47OzEVUNWgJsG#uoTLV>%!+1FO%34B<)lCHVeHXvIr+$Voc zcAO$Y5_*>_XekeuZ~f6z)BRNve+|U188gjeQ&U*9PZVwU)jPfx!5Cid%|D&B5toiE zjl@nOR-kKgBeakbb4TS~h{|%5Pt_}-zB_9~Z)rmKNB!wy%cueJU*Ge#sM1CRXj7Sa zzs|5iAnjiN0I2lV>Z3VIC5){+v`|PomS;YCBcys`T}N*vlJ9@}{{XsxAw9MsZNl^Q z)Y}&nW#f%?q=s>4>RwMTzvXB#B__vgVwb|i_Wizk&s(YRj+;3!f}pEc%6W0E5-Eg> zSG{ujYJ8}7M+N@?ca>->cId|B#6Rud+0)b*+$RJisb!_t*S4xrjAbZFRUp06z+;L% z^)fc?xk5zq8|UX)I5DWFq0u^>UAHI)_XYlUuUgRGPCYVAgfkZ+dwks;I9!N|3;L@c zFHJB>xQt_RGIz<{X#W6uqDcg39(*&4Sl3uFIvc3!)(z6ceqHsWe-S_`YpzO z2agF-IqJ#sztR*8b8HCnckrR#oG~ zse@n>WOyObX0<8k$T?^9H}&5hYmFHuvYL5IpgQ?Zru=5C&0LNos76>HRw2?$AlOuY z>uOHmsWEan2&{wFR98ALUUpr!Gt$c-Lp7yF1|F7mo*|7D{-w@XaO1b8OEU*+o+g>3 zkk{%KH2uaEh~gWp6}`|~B?>|YpP!XRlK~>#TB(qm)J}f=wN0fpCN%Ikb_|l`N!p~Z=4nq1*iPVa%c6+Jt*0b4Ux!(odd0H7gL2^Qo{2E| z3t2vQ#UxfkM&3N^@vNa!<|_vNwL*v1Zp7mRbMFTwz+PTVa&uW}5~LHRnR5j9M~jzM zAV97`<-2i_24iF-ww5O!X@IJIiynKVgwrLDDWB=H^4UQYEuxzV!d3w+Q>bG){` zm9@7bRjA&R&-*6lv%R-;6jHOAJ4=)J${1?;{e$m;KE8Lq%uvD#3{wO493BvUnlyFOr_aabCif%OzR=94 zF<3p?vyb4thE0FlW~i!za^itQ-WF4+6p>?O%6pC}>OWsPE0Cic*J#EWK*q|eHpVwu zr5d$&ybi)u`t~n=K+J3I=)?<(cVaVvB3~9iV(6%H`|gr}Gi+Nu$!UNh*#+z{P8U0| znf^WR?A(hbEltMtu6Yd<-jL?|IMx^Dk^YEN<-1K8m|Ue1U~p^LbJ?@HI}y>T z&;crNBEMYR6g-Old~p?Qnp#>xv!3ese!CBECG;h=s*__kgQ+aAgi?Mtap{x75#a)_ zFNIy(%znGWQa|k;GQ2jWLVfuc{m*A5O%0dS@ahW5PB|;VTAY$Yk?a5R zpnNDJLAT(?lL6@pCl~#GBYXD!pG9P}4YlMy_aQd(MBKclTN8W;s(ZOLimeWn%K6Ng+6= zr(EaR%CeCBu8-z|EHFmZw7VKklaTmu0UQ55V$=rC9~`gOukgjZJI5iCnAFZp}l zQBIN5+JgPH;iw}`&IFp{JuLLG0Y%MPcVzO(?7LU4RB1c1Ji||&(1HIJr3h*EpPGp% ztt5|>6`4PN&j2$ew=OS^EcH@-(q6fspU+L}u=$l2H_L9FoqJGxR~2odga!TUwR77` z*<^DruFT5Y@TW?ta3kjjb zStf$?v~)Ep%jiT1V?V8$RGsRstWV~>!D1HQ7r(F_yH0F2QgTOtlBijFT_lkM4~`bo zx~>pq10T9RXWI2Spw#dV>yzty*TvWfqiRmxb?CcmqQ_@=Er`@0%H)3OdxL;Yqvi3S z35rFVvd2gU^FOnK@u+Hu@}YHP!;)pI{{FLHCA3!ZgDMo_#y{=*Q`c&a7YLidrU>00 z-Vk5U6X;E@A|d^dTV8t>C^m;Yiy^i_f{aa(wH?0vr+BFb#3{Z78JnMbL$S{58aCary7ocYG$%Kn?k@Sg5l!b%mcrodF&E0*$$9jNCl@gt#MlB5;Lj9`lD|CS z7_fi76|s-j{#e5etuaH{4X43H@M%(+3XClIRmD+G2JvNN^$x$7auSq9TAU{Vr;+wr zp-KYWc}?WLU}>zB2ZRmWiwh$(0PMie?4U^s&py~w4Ft6`y(7v%NwSt66ph5`4*(HC z5y}kbWe1pM?`r;ZjpijczSdV(JZg&4Ak;VYXBODm<*dHINzWIoe4p49D_;FZNrYd{ z8chz0aClL*;^^)bBxg~4$PfC4H3>OQuDu_4iKn-IGKEY&i6-wTkf6|8p9?lAv+pC! zkXaL!#O434!DDNJxr+Fm3lGl7bU>=%QtRc_U&w5bw|57-%!r%PpZ!l$JC72R$LQ^h z9;BL^XTJZt7%beuQ#+UokUsC06kbrs5oFd`XA9K*KIxJBq@=fXvSFQ2eRK z6MySteJv`$ecH$lE^;k;B`R1`cM8BSDvQ4K$_19ZaHv7v^DA>=q}Z0Tljy(}R|q-r zhT5d7P1iL3?b#X-owSs3zu8{bOF(Nr$Z6q!H45tq7Wl@q68;%3)QI+_*g3i(`FZk* zXZ6KpyWE4qQBSyps(mtE$EMCV$!7Jo_mqEUDYH)%?R9ykA%D?^X?84GY>@#63a;E4E>q$T8#0!hp9O zL$QveqSw8qao*n!e*R>|V>b)of(D_JL#N2Yn!Sm|}{VC*5H zTQNY;q4e#q;w8TYvKceyD^oFoR zF|Hk!sC`Y@f2Ag7`z@1I$IZi5+h9D8d~MN|uvVjg!W}KlCD2RW0ustu1@%(9VplK4 z_Ul;p>c6_Zv)?1iw5$ecrmS=PD!qy%;UH#|^@z_OL^Cy#*H6^sh5o$*Y<$*{{ET$? zJxRuldRL?fE!fAqwx4fwoglReShXLdBmW$RDV-=Efn$D{)Jp{v_=~TRA>`V_Jb9+S zQueYZi#yBqE2#@&d|A`CM-fXl5l^KAfvD-V<12KO|0k;P?#3HU4TIUly~8TZGeN0A0z-sge=N5?+nDGhk#J^4-HSGV%P$whJQ;Oo>GyyQ%nP+oG- zj7&f?C7VW2;$*-s#NK2dG69}CD1wrE^nzlgUF3V+ z>k%x-cl5RkbZ6CTo*(LA65r)HnzDDWprw5s$@;=UBftr;x7JZBUTa)_>(=0XAUQH| zEq(bO9Cr?c3i|zmj!oZHlb^Gf8YnefV0=g^3Vm?PE%uMo8NgmFd+d(g-w4l_eoe_O z>48({9!a2I&KJUIBWQ{aK2teb9@5T=*`4d?AcM$`TCr6F<{~+{-KJQ54XQb@jowbX z9pE0?(0<=Zt@jk~o9O%t7&g=C>%jB?pqRojuW;C$hf@EM`y^x_fo&K9v2y2z*k($( z0B0V-Yd+uP;I_?^D2;UxekW zhHBo?tdjI^UxmXc*@^&=EB_?xbIjB{+S={aJf_!sS_kVUHE9no6xie4~fYQ10LTpl1IBRFGv(&d&1}r!nO8KYm~vEbHM}JuS>8m2 zLif*dewE76v)g2W;A3Z;!Pv6_`y#g4*B=uGbDQhs$Fu)c-TOx8rDkLC3~m*&t!K9w zQ1n)rxqLX(U?^aUGSt4)7AzfmM)LO0G3~}^ZwAbUd9eIFjX(bt*4Pty$1KCo$t08` zFnr;8H~rbHrL@?R9n*X0Ysne`+l5f=^AqF(lT%3ptRY|ww8ib<_H1xZ{rayL)1-#3 z)J03PjZH(h;mlWE%U6*d*Vp@&Le*_VAWT{Sv|T##J3y}FK44G|8pXv?|U z-(u&Yz5Q@ko>Eo(3hi`TTYCdLrF?NnUF|#MeI9KcH*psrm*!CfzN@|58Ec;o_l5^sF#k;#jl^j=*HoZ3%+c~dy#i%X>4QeKk=hEe{y zFsXLQ@>P?Css2^3e;dmf4$s_q25bBuGRVcyCU#JfLMn+ZQ&7J45iIUt(Trd(!%1>7 zZhj&C>KPr5UGe?a6VI~*GN@mFY3Lxi*?>Kyf-E41yBB6x67&e+1Gf9x_EU9vsVZDHNALgaWWUenEo?tfhkhHF01!a!*<61q{;*Iq>R^! zF`NE=Mkp_3ZsoWm!&CB1(@rDa0T{Gthx2LvC^Ou@&vDY|VNRFA+L*xB z1WIT$sQbaPP{`Ahe$bO!p?;IL z2hF7k!DbTF)(JK$m%e4RQpFl>e)0+)M5KO5uTiGv^}*baYgL*eRm`_pV@lK+R{TKh z^*VCIGkn#27d=Z$^PR3viM;4w=DXRWk=WDu1R?+5PJ-;20<86XBemO2T6BSjH?)g zlAXC6&(V_(wa5%(k!-~!AdX(rIVbc_Qr+z`od$sjz7}n{<-wswf?BQKA--N%yJqm3 zZPF@`;M^7eFtrU)uPs+R>s?(zzDDbe(3=@h^3P{XS_W!F48Twy@v1H*9rIDFK?eCY zxa+-QYH3E9*lFH`Jet0;=}tp_v5zk1%Ki;eVMnALIg=sZ7|%jgaBrlY4*2j&?DOSK zlw9(W3mIRr7t1RZzg}*ZxPE4}IgXrudzzh#@Xj9|c8m_4rPsax37dPzKTq*B`|9S$ zBw+D=jF^Rhiu|{Pq5XHRcLncFx0_3^in!8@b+iMqWOHpIWvu|3;F-~K5#|NhDB9G_ z8p+PS+;npLf!mE0n%3UxjU*l)EWUY^=oiYMRJ>HiHF#G3S@lWMJ=jEMakxuUk4e4o z=*z>!=cco=)?DwVyH5)y7PyTDY&U0|dfdR1^+?8)LgB;9DMr5VtPgjBZQ)$P+Ia7g zk`=G1Hq@=A_UXB6b095`9&sO`Sii*K%Fs4l%;J zxB=WdueSlpUvpkUvxS?(SEL{klx1p0j6uedb)!B_S*c6S=NOB5T+pweX>#jL$+{cv zyc-d^7(4HF#J8(<83CB~7etk*NUCyFae;Z|{q{}wuVM~o1M?i}g(O!pFEw>20?~+L zq-?8Hu{dh_zJE(qnl-ZQD&Y3qIDITM@c z72oGf2gtfgRI?KRnaSDjGp^fP=n8BKi2JFcExj6+upUW1M`n`W^b~=Sj1DJvK zDxqMvR-UFvZ3zUi#Bp;G%PtOHJ%k|`97I}*;N5YR(jVYY15-Dj!y_uXa(`uYho8)p z#el2X_}FtQzc&x=L4FArH62kE>^G zj*srw+dZbSco`CHPa~`k6ht!1^%C>g08)Eyp_-z>sFTU7qpCZ`d;mH(83Bzmcx^3v z))QBb<})NGKhilHkwxfG4kgdEOT#hJfW$vMy%4A79c*05w;nV3f9pE1idcGsB=z+` zNJ?%v(9aM;`1?{#!nzkgSr@GL9&UcA6qTKFrnr3?(%^VsH6x0K&a}ZxVJb!q|9leO z`i8HW=4$!JHP^YvjTXKbl@6z{40CgACU&{#@gyT!^c-JucNr5G6|p1wUAD(4MfcwNch^}x+G+O z70d2lOvaZZAw{-fe?7_MaEQcq)Aiv`@iK_Ap zY+iDy`xcnKM3|1g?d*7#VPq`BRSOG#Sg*M;8+FkkOO_Q78s(JlwR=Q(Jba8|I#cd| z4G(dzem|b>kkb6}&1v;jqNMR=C`w)LL5LB^^`5)K+CU#pJ<%^DYXl?UztV3=MiPgj zGfE+XlJ`t@|6s`YFg7ze$+P^6<2j)W8bSA765Ct`uqr)l5$yfhYYlC51KDO1b2J*` ztNe;zKwEiFmt5bhN`4CSa@6ocW^OqAnRWY|o9_45!RS$)W3`D|ZrejoVck&9-e?=N z34ealm`We9e7;pyLaAo33}x>Vk|i$PN4{aDtuTd5o_ot$&M)P@?*kq#=@|qSrMe4i zip3a2g05U<%tUw?ZPzc461QrBpPH6w9=AWbv+aTEz0G*Izzb8Qv*zRO=XeHdh}?+_HSmqa*G454<)%bD%BkUj zPk#Gwv8gWB4w!F)Q1$a?W!>~(iCSfk>FHMwinG=Ks}bZa2Um-t0GOth42U+fgg-mKkqb#2P?3y`xq_#UZH1ko|sw58b#O?vV zwYO5XghVcRm0A^QgnLeQN#N7S_%UHm>@%EqSVI=o3=a1V+m?kUChUW_;f?F z>h4Vr04!f4G7*7q@5GkRX0z0BVT0=(c2y3O7yx<51-<>Id4)(-d#dL#rlsNYBK;k$ ziEKY%1EjmyIr-Kkc{Da#qaNs<7uDYKTzF->-O8%8Z$~=npu68gFE!~dZ@iddeJ7|l z@=zCKmJk0XX*+8nz@tC1hutbK{?ufPaCV8W2Bt?IxzIb@kbj227tMN9yD1}zWI+}a z2qdfnnC1?QPJ7dwf=y)_YeF*%i@8}Bs75=U8%k%{Uc&DPJs z=G@9bsZh$29g%s#I1zK=k&HD=66N4-**aC4KS!-4r^!FHBix=H*0I-swNvDQzl`O; z5Fe@BR82wv?o3F5)>+vdnG1o_6{(54Aj698K0w+-mMJ!iLIk2k;9jaAZzbo91$c;M zlOu|TUDxjsQa)2$)ZQ?fFF&#cT$n`F_4lCXR%$e>z}u9UBNGKP6TKLIwtB5nJ9(#5 zh<9n&yE8AAGHRQ^;C2ii{N&YqvAbRMsM@AhP=eh)7zrNk9U9H;mdcj4o2Hw+Wy!370Yggcm%5odMJNY(rJU-4(=tG}?Hzm*q6zUO1_i^s6DQT9#?$ zRbN+)h?ilXh;OnV%&I+jLz1?ZgG&tN7F2D|@`5Pf$f` z*hh(N3QhIHqyyrw9pA*(ab^7|e&VKkqj{!tYC+?7P|t0+lit*&nYW+BZI}IQOeevA zeHT<^E7q{>{O$x}s4Agv@%Z~&&?hS9sgi*euXu6~^iCGH77s|-%?9QaT`_2-<=;IUK&$u_qmyMxE%ae2^t*rme++N{fmdP=SXqe}-j zHEE{c&~Nlea^s`nnNB5r+#6(0j&mU|ZI(8lV887OpBx~q$$ue8N48j%Pgi$D=H9&=kX-J@j=hXJZS(-~3V-2W9=AgKZ#pTeI5!(}>IRKXZ=}}Tc&?vNHospQ6~w~Z zk&AUr>v$J{uqB0EoEWPS^+P7T#CmNqRD&flsz1}Ee8`{(o)5&CKslj_YV_SzWoRu; zcLgKtEj_8dYc3|ugmRFpwmIuFv&YqYWqEthr$5`u%nBUDWnIO{;b{V~X%Hc|h?Uwg zsHY;JsoD+Ae}s{kiwNZ`f`{j($=Vz5cRQrF(2kvGlV=vuo&+*F8cPnp4ae2oM=pw{ zUM*wyU2j$TuK0rVBv)8#F)l_F8OAYp?>tW4rCG?{s^cdA#(MOw^=2p|z!hADdNorV zHig8kjOBK%%%`9lj)m5n&+Ts9w{&M1@5MrR#jD6VD#?}gFC(FQTlGILo=J93cx`;9 z{eK)i*q!z+jsu@Oh>B=o|qQ`XGQ+4pY%z%F#@`*l}Gg9D5)-*7W^86wzb z%Rg7b{AcK`@5;pRiqxNE_Xa8sII2MM7EF0JOQZM1**n8Yl0wSei^U7qtc*$1miwE+ zv@xOhRYn6X7(3Zi#~3OqJ+-kJrCgt4P-U?xKOjXEzVe1uQ+7kc*=bNTv!nD~BJc7RmEt=;3gsl(LcuY8SUemWuv{KDED|xOZ zM1_b?m>@z)B~vs7LaK!ieUg7XU+mh_R1$zl(Pg(QCU6{_9iJdqUt>po9jnYiF3;v) z0E+XGV+n!@d*#FPHX4rv<>!1V6C)DX1{wA@vY1Ls8i;9nx>Dq7*v%CSqK`qjGz;Kl#0N!LHMJdh0n66aV9>XeL- zXK$>S3@!T`&6tw6yJvhUDhmrD7l;{#UVwm{)vl=>w+#tOFX+>5{iIJDyY1{!LT8%( z8tSW~T*kQ`GMk(Yc4;#G(8ir-8<~0X<0x3lm#KO?LPLg0J<^>vPp@?5VSA6#z;eNB zrPP#_8O-S{d# zyi>Y5BWBnTP;UQwQ;V;mKO~4nywtZ5ucbM10$EsDpGUFk_I}BIc>fXaKcuzQd0=_- zO{z@m(5#koBC3!{n@Yos4ZvvknI;;a_i08`<1z(9|nDI zAA~GslAGquxgYL1etM%w8`(^NguvlqC;Vqy;440XM!($^=Z}`;izK0OqSntbdim=E zD~Xm1ys$7T7%p9ov{*gfv@&m^mG2qMt!4M`#l!1ECDYG*A^RcIAKf|(qAv<>jNGnL zEu7rgWb;e4;j*VGi_Wgc4LUqkW(WO;rBc)eIAo_R7n@W}I?1$??f$-Kqid*l~1tqI9FQ3<+@ z%KAzGzf`Ns!EknvxyH%;9_>X2{w)0zzk3?igFD${ba|)Sa*<-~v@$Z2Lm!B^;xJm0{p~rWN8uv`06r3%8cGjnS1xcP z?^SR56mCO^C_7~%)3Cx)ndUfA!KfRqM%3>~-nT68MefWxh2A%^Bn4pg5=^WA?(kaj zzdPaQ^IV_*Zk8l6oH97`#)1&5oCKu*25W&|!2tl{yGjoUF)#h=N!e8Hu)*4<{KNFd z#Nlo!h=PnYi?2BMufl;7s7M;chU?b5!;^)~o3{`52jj_v#is7oH-a9Tf1Q2S0ODVkG}(7oKM-CVWtKD4ylO7s3PjT2z-mR`o;_=pPp!o1l&7C5&*U zPgmCin71%?$J0srk3Xl2Y!xf6T1)(Qt;r~KKurk-C)JQ3^aBvNcXyvnAc zX`&C+%wMhK?&(*fv52|H`GU@enxyJjkw-!2a@N~|!xWV&#St-V$A>dJ;bm8+ zv{+ZkLtybvTvgAl5i#HD-(d^-;V;Dy34LI1Q z)`zOszy9a(VK4HqC&4)24qvezTN@L==HDijgt6bx-nW@%>?fN`B?d?)i@0a-_`t;d zsG-{(l~hL=AA|6Lkz8yefzvILtE@;po@oVFpq6P$sS@Mb*5lJ?7Wz;I`!|%BQV>>T zs8;cAt_}uHxj&~NG$Ak++p$9N5VbZ?nETXiIR8V!5(-UzIHVvz+tWVHeqz1f2VKyL zA5L3yOjilM*~I3i#JbTis$ctjeVE`mD@U>>pf!cQVZJ3T==Aj=g|2y8p3y&VOYt6O zUV55tkFYR|+F4zFp2hliK4DRLuH`Kz6Re0yrtOkRf(Xm#_p*A1bciWGk1EymA1xV2 zN3-f~Z}^Wo2ZDuKti+uq9$y?Tm~H-iM_sd}HZy5_@)X2K@pQmMV|y);UHLIDH@SRF zMBAH!R5`W`-JEDP5T|p(Qg=knlGr8ftH3QuZEszNM9xBiCRezm6&1x*eo2$-sm{rD zBdFd$Z{nt*mT-=XLi02UDZVl?9Nuwg;I z7-OwBeKP~Cx||0T=KqOGZXQ*yS^y~){m#tfdBNe)_9Xt?VzjC3fdP|sNM8(>{Tr5% z;_!eK+DB>#G~^Lo!1ve6seJlV@G2EP84krQP1TmKa5}j55Wa%A#{(_Hg$g)#FnDZ%T1q63IFj{Pip0nY*oQ) z2z5!$lp#v2pEvQ%ZM~ZlmM*RpzQ=EaR<9%gA8Tw?O7fNG*$$N`%}epR@r$COUCzOs zbl}w{ddCY}9c0A8qJu zc$F9H9@+?Q`?mGZU#}MN>}>&?=ejvdrB40-T@$tMlq%nhRb;h$d_x?FvilaL^36){ zxopqE=PlyG_`jn1FEtZ3zAqd|&dcQ@ox|TzF(zfiaz46T(Nb}|z1Rq(_nPxEk5sPs zrNSa$eTBDFI_(B~2r0wY^PN6J1YTdW=vrS5Uf-s@|LZ#w(p4aF)?JWi`Kbd`D8X>Q zAuI)ziYM#8Cw*$=7ZY3Sh|Yx+fkpIEq1y5io#3?2cqRKb7`P>TC*g$G?6;^|!7Mpp zO*J5RTX_eJg+o3;4(aAPmgV(H9yG91hbf9Cv&37kk$n^7+ee;9Nc&U>qMg1dWjcs8 z(Mm2wVy|BNwAsi$@)><<0+TXgtDY{`(Iq$b-fj9zK5x1t-oW*SFa4I4qe1R$&kcl; z6yAfrH+?Ddd|4Z@8R#^rXPKdaMa{V%1G>*~$FuFWW%ZLW12t?-Csx&R%vyKC?+_0V zjKGI#1NF($^fh7h4HmsT+ORVZ8EYxn>0fLLOv7xz;BGMVaq=5PiFenrW#jRz-l#+^ ztmO@DUHU&BCZ_F{@^ma9eJ?lGri>D8Yb%_&YuzDJZ0!)l=b7!po2@?WbhVrA4}d*ObGplF*+61{ z6{+npgo~6mBH0vC%f>D8xeZW8kZy|Q7%tY47-m-0@{qQ;m&x{90t0?pX010DE6YID zkPal&xz$N^IrZo*rE5$UHO$%Z{1m18x5hS|J62R@-exOnjxBkFaq=JD)(V@-1bi6Rp2k9I`KZ@8uPlUlUl1yHdKgjpzQ?VL<7 z4a|4zpXaDZaN-wSXC;txY`sykPr2DZ#ocX6M)!X6dz3U6Un$Qw{Q$WF0{NNUV&el5iM1&xU{>CwU$fOv6FD8)o%kqonfRMCP}mh;Iy3Aw4g zIsj4;AgttlZxk98-1F!GPVE9{3hT>2rJ0y=BXQ~hGTZpJa=dtfc=fCKxX!otW&&X; zIetk_1{}o5^BwGu40~xNaj#NIND2b0rI?w`-R4hOvsRa1-7`II2r3+NI^WT05Dv8I zLA^joL^}tYV<#&KrD$3MLz2t=C=V%gFjq-Vs?2$~Vk|w#^=l#rtZMWNHNLu zgIR-1IcUIVP>(NlbiJ@v|mbUL+ZoBx7W-3XT*RYyXaQF zrEa}u9evI4xU{*IM%RgSlRxL)rR(HfPll=7>l5hyn-)U(_5>p$!y>4p!ZNTVBySko z0#nfk8}Qgf4>;~%GZT(f6oR+JJ9TR0$y?x#9yuR>C7;M%a%fQ=E*1A6Au0ZJHGx8D zzdZj?RpNpi(M%n*_?V3GU(Yt57Cd5K-81>o;Db3MKdrhB6G!4UVNROU+nQ}#Gyb9G zahQMWQV-%;(yx~^h`;+mW2yiD>I{d@e^)5n=6sN!@8#(`~$@@p<`~E zy`j(X!EVrom@F66Q^AU~pq5f8oY}(r@*}$7%8V&}Au*hck|nOU?33tFr+rr;JAMg< zMT)LZc>egsom5|7K$PL%rP|sJAQ!TTpztWM>e33^J0S-{-!hsKvEtpdRjke5^pvy)1GB^SjJd<+cNxvsoiEnc-Lrt$9=0vE8QGjZYe&*pRf*}Fq7)-#*Ztrv7 z*6taU0pg`)q&SYRgB<1e+N*nAWZ2S>Vz=GSJpW2q7xYmgW$arpQ>*PD^Q?Il_E|_6R#jcz~zT zS3mWsH^ek84bHJZ$4;9Wa1)S9Nihqg^y_CMs5a4Gp$Sdd%6ckuC-@S{R6^!0cxf8bp1n)@8!;>W3Su1GY+m2*5uKx z{c)+tqeLWiPhufeH$|~fQYUt=i9*;hU0&Sd5N zGkp1+$AlH|i~wc)*J7q%!fTf^ZH{y3mCsZBx(804B$U^W*(bNZ&QmLcgSj~xO}$E^ z4yT{4KKQ=wZ;RcH^LNu~SaIPb@0{qXvpsaKVF8XVrG|?7p!(vp#a7?JnTc5~t?OXu z?5$67I-CeQKP7!pwJ%sZ*43!)8H9yoc=y zAXy{km%XlR%yj<7mTdBA8@`t@NPq|ogLvC~P(QTR_iQnp|E!;#YJ?`sl23ldZPTbj zjui!xb92aAfqM72=$Kpcj2K-GJ*4Kz2+m%D^|GC6{Zi}~e2wHmD}RP}7F|62(~^fSkxsh%B-P;lG&^}agl>6!E!fZz%x;vTq2nrvot=N1CT&> zCAZ1z{+~@_*yJpAYfi|{vnSR4-LrtAjowwyIDTXSS3Y@U^dJp#yol1qY(ZK4u@leP z!@4PF!^pS3^1~XT;9JF(uAq!4X0dbVfX(2*m(g^?ZF_)9Hs3HXzfY0oajJn>C z(_HT777$WPK8718-ud>3oJ$R_J9=g;M9=#!^9{nn8(ngP^@VL;^Il`$uM%c=2@db( z!}%SJCKJ+hh6QvU#ht2H#IDI+8(%7IRgU3=`rGe0wTG3oufWzes^^_Soix9KJOpKD zqGkPleLvNP5So1ro5=Be@6c@fw0MI7ncHW9P_0+fMSTW;Jv96_aCpTVB`R%J1c*>N z_O%0f+A78OY#^^(i8p!7xx<2ew3$t^XfbkHf@w!_H?b`RX7h26ZF^z}WfM5%2!_4iwgv;|2+y%`>Xhu)Vo;6&?OQ z!yr`O$!IQ#l0AFG_vPLmI1udX=1wgPs##^f_8=zdJr*SQjqU0`Iyu3r= zKefE3BACku(AHG3SGb#Vuw0XGf|Ig4h{+6XB`@9 z&spIfow>y6NrqaZo^-8WTpmuV(Uxm5_T&Y^>cVHKEcwX|hU#_uAgcWrryi?z5KP;ugo8!T(mxSG{tKybG<6iQoC7A}d`t3Qo&e zcOK2{G!A@N&)7C(H7YUb#9WtQQ5&TSawBLI{=Mv;wcaf=XFpytQ$Vdp?hv=m9trPM zhtF{}q^R;yGNV*urYoxttN*U{^0iXLC@dUKmsH2obGB#1s8EDU>rVVLy)O|n6BG4X z68EP-u-+C$3bcXTLRBNtd5{?g`1#Rac8$V?ik3z6@+5Cs#6GY@bvTJ};d5s;Ht*@j*Rtil6iB1OHjvp=&2LH$crn04Bb; zmTC#s1y04c872j-vF1wgkB*kF3c0&>Hq1V8!?ZR1_o6QPWgRwx-iSB4BXH9KzrOw( zNIH~9h?gC43daib>t{JMwY|fL1y1cyje&ZeCbf-TZtXIcL2+yCGg#h7*j*>?cOt~# z!>F+PMu9jL2?Rx;o~SUaw6;klZ1MBYR(F_8=69XAIgaV}S8SG*2-tp!lQkiQHbl;H=@5*0B@@(!nK%J z+@~^C6pdhm1>%BV2|r@9?El(GifY$>`;n~G{5O0n&Q}^ggb%HhDwza}|EdtETb3W) z4$}H=jy*hX!;ZLz5dY*kI}g}nkeR}F?(m7;w3|Fy2qKl;Uwg?wuv zv-Z8gAQ{V6=@!YTqbNNo+)O>|yBY=@ zelW|RhMWg@{WKV5(XX9%Ld~xKo^~LV1n^AosTn)9+V2L|@wXkZDySAVm03VE{7ve` zz`E%YGbZMthBR6KhU1KZGe0jd#rB|(QJ=mJvw61~`oL9~EPGT7AyyL(Om=~4HNL!qbn5-AuRKW3iN#sfe`0!7d++G?Cbq6pmfj~N0%f$b0j#&Poy;)0W#|?-8pYRW zSu>TOTDn~4ZWfT0W~SwLG?$pi<~n&J%u_$rPRn6Z*cOBTwOFh-6%O?J>NkXVKKzXT zUdM!$^40Q(*CLLM@))OE8D=24?{QHL8KuFzJwBbc_s!I37(}#TU}>j)DBrT5{9jL1 zj4#IV*JhB`t?=Y-o5}dWy4Puos0cx0M?Isu~SJbBHydnv-JDW_k9fv zbHc)wG-DYB_~_w;-tip(e$VVd*6?W7iOjv{abW?_&F2}`viJVGhHso4e(0ABk5Tf< zI3?u(aXO*LCx^4tN!0Fal~w;;Tf#TOB@1p@deV|s$zIX|p;@{cl{z1L14swN=}+CX z91+g3j)l1n-(3`oYJ*>nr+QV!C8p3R+dw-XJ4duYZ*3XCdL>Yn%=|Z1jpOx-?86pc zkDJbjL>)3d9AMS{>Y?&Ua*!%0fzGq#H4UF=DUx{Fb9yu^Sw+zA|L7&BvG3!wv&}1Ef)I7+$=i zAT_Yqxj^3{cefgv7xwxxh*6lq*OgK>jD)wRG`iuaN{=V|lwg=rQAOllf0b1NS*eY_ zgw_iB;0#CPHB`G7w=CG2D(LPeE}S}?Dc;Ha&EVBi8c04C$l-dp*XfC(qxCR{9XxTRQ`t`#K2-g^#u?TZc<& zDd~Dzbi<+vVf|#m*OjIBK*F9^Kt1FS^;*zF*oUSFm7@f2;2(cm&6_kQ!HK=~@)Pp2 zz5^m%#F;lXa^R;tx~`Uenh6qIS`lX_!;Uqug(jsruoTE?|7x-6kcByMmk2fDNi3K; zo|j)1kKnxM(A^XDQ`P=x+mBbZr&c*5fQ?#1g*vOJjz{wp@3fB*rwbgbU3=NyYV!RV z&u}KON;PEFzIi|Erd_n+<@ru_kyHEbXuVMw5PgC~mQUROw5xc>!k76$hi9Tbb2 ziIal`<+Y@+M+nY{bhyubIw zsf&RSTZ8KVQFI>eY`$$6?o?XT78JENwKt{q-g~qSwW+;n(bfoR?>%GICRSS&t9HyF zMKuydNvs&Z@BRJ&M;tklH_vn3_jR7nKj;OEuOlZ^L}O+3+Zep+r{b&cne5qa+4?=^ zOcAkR>p7x4j>bKQ5d7{xugA~xU1<-1V%C{E9%G6Bq`a_~d&QkQt{PLgOCQRuXreo@ zk?NzUXQC+23NR!0_sSQO=Wqolgf8B4`DY1B?Obhvvhctx*hl*OY z`eYmJ9(#a=MMlG^T-yOv2&y|o7P$rj59s2l%04RnQKncK$r|GG32tJtS!GJb!g( zhw3uu;^L~KGGO@${x?HMlLt#)R6a-jwHmA;Of1zvEM5LIDPZde-EhJN@o@UPI-@tp;x}i7dGtm3x9Jw>UtV)NNkAb)hAD@KG+Kr=* zxLv$P*T21d<-cExBGTo1>hy2*hOt@?Mw$J4-$W5Z*#7TU;G!dS^TKYw+cp>yeAs_+cr;a!ZD} z5JD*gL5+Ay8RqNzFwemZwZvGf$|aWE*iiV;-t+=xcZ5h|H>T>cor+F2tDY`bPfNY) zZHJn_SkS<9R=l8^Iz@SDLCUG9Qfbkw7fmfW1}5xr&dfh+5YmtAULrCeoL0+G&>%F+ z0D;$;k-Tu8=gdxr{aBdlxG2q|KmOK8aBz=M5>#o8q}DN zb_6)?gok+qpzY059^B7uwr2vflq7IE@YP+qwqp6|A=~I$eg)EZJEBvSoh-z2Tz~QI*LLxz?#w7zw`Ixur8U3b90Bim?csktmjN;3rq4fB*#YCr%nZmIn?M@ z`C@*&`-*%a*a%#bkL$y4BUQ#W1-uaX0H-5COOU_i5A&cGX#v-0h+fd#(9KST!K$HN z@oEmGu1BUk?BP%FR>H7i`}in5P3v~=|CIoHrnXhCLW_)j9_r_A9o5AKY5)^NEtT%q zxJ4d*R08cPByG8W;ObhW1{O?+2=gGifOEC_x?4nh-Pd17bW*xLd^lJYB#V&cB^>7u zWODKCzdxcA%XsqZzU6Y4sljOr-{IkGblpa}?lW?lOYb$_^ z&$5nKghp{TVgGWBhcfJ!CVKdn473rv`xQ?@IP|2|ZuYJ_KB{x+2EseD^Y4F35dM_! zy|&oXh#ov_m|NdQLa>;Or~k5PI&ALfX$!CUv4qW~zVCVa3&`|zA@&!TR$g_R3)g3) zBEBvzC@r3NM&;h*+ucL->rI5|H!3AODrWoL71rCzicDQzPGSk~`k40)&k(175=Y&t zAE)!-&Sn^Dlx}RQ$~de&*usX}yo6*k;8hk~T;`ye*HTO2;_!|?84tLQ_jJyfdUhsp zMHcf=hG$}T(pcno8MHEfC2HpX&CmVjN;*L#jH^sAf1OO0>HZ?;|Fv=29cO8DD%8IrdZ~0u4hEgfKW6?y*_Qalk zk})6r7!J#Q)L?vi;mU6!-LIu_Pm>b8QwT#R4cXKpAAAixn4X_7W$){2DRn0L z_d4-pkzeQ)fIjhSt{I3+{p8-=MQig=qgKa%s=86+?)sclZFYCvREpr{%$pCgkA(!n zEgy7#800`2%zN3w&KoS=sa#84weOQ5o9QA>k{F#Jkur+|vqlc`EH-z@S00kRDVS>i z^6v_tE)tMD`8#~CjMs;yOEbXTvenk&XJ~Gu#FKKnn4ylQq7I30$4DkeTiFrDISUIM z8eLjmSxi+|zXLsmOLP@KD|F4-8(#mnODnbCOo5B+Yk%l_>0xbHw5`>bVh1j|4OtXN zSz9ca`zW6D`hL=;GyeAe8c?RGynk@hkssigak3~DT+x~0p8UW>P|mYSR$xh+esh>d zt#KlzeP~lFgZ~}fljiC&=g;e3j<~RVpA5t^9a-j7crsZ<>k-#ZUP95d4BD551Gr@bg+Eu*Vys^{6F@ zzoG<*w4B+ym+?chP!@J_x&$bCC=(>>t*X3S2dDK#JN>{y&7qG`=CmDH3Jm^3K@Ozr z(me9S^y3OA`baKzx%&tm74{oHrvw^bcQlM(8Q#%poeHpc^m?uNHzmTfBYUs*hR`!| zquPfUe^1{$bh=cfKv21rC@DeKdfnvqH4(!=S*uAhw?w>{tsdC$UHQzXs?|Ii1 zZuhe)x=uieU$_{{70KFx#^e7j7abb88P-s3vQmZQEX{YuYdW1VZJU6~;Gt);_rqqn zD?Q_9mKf@$nx7St^?IsA_om~LZ^2JX9y!^F@O|@kG~Gkmy!lnl)kyl>y%!K$?qXT* z7#b+58bey-(1-_`vvR>lBdopW&Z7z;^_Q|k%Xy})I zqr$DLKP+a+%ZFb$bdYgW- zqTiJmKMEoIpc;A=US-xXjV|u`?-mnuF0)4R;{vCS5bis7eHAa|PlJ3?LE(bF?9eLT zQv?MzT1Tf$ICIRpm+6Ic;e{(ldEn~<$a1K(hO!qGHS|Gs`nUF$>72zAW+^?n_x_N* zFpV|KdEo@zAu+!yACDDa#ZicI(G=6hIaY0^!$q>uj5%JC_PSk^eK6oN&%+pIZ)JTX z=a;9Y=1Mbk?0>v)BG=%|O_SY{?|c$EqbKJZCYJr0Tbe#f{i-9OGtlbwG)Zvu$mLv2 zzz$3PtY@YV_y1obtS69^dZ3}Mj*5KR{TTSW8YL*v^X*>b)A|c|Qdl}f3a&>aU-lDn z;}DdeoKAC!t{?O_d3AwyV2w9E?_^Eu;D<&C9QG^s;Cm7-bJT#82au=dZ|1 z9BZysy0NW=R$B16r;m&3jx8B>FdMeTtg7*ric2u4?MY;BJ~5|)nP%ijKQO<3f_<%Dm?+%>2$_BVxZYwZUTzej zy+GS^j|4cuHI`$!5+e3T5KA%|^cKV}JsbbsA`^WYa3BWWy!mSj7eB<$2&3*jG!Ym! zFOH6G>KST8yoU*S`D&1Ql#Yi&mVclXTRtC-?3aaka`A~da5!6p_7S#K3MqlSy8Si6 zW9KsG81d!vt#yUItrO3!05IqW^Z29~)cp7YI2UIa3;nbKg#)=z6LhP@)Jxr_>CtGU zvX?*j^-8-Ai(k-!f%0+43vbWZRU9grvYkDxb|P!|YIVk73)>_tqH}LK<@nIhgg7ln zUhQsy$Z5bdly5Y4K0#g`!sp08;~W>hF`HuGd3NHzUsi2gn&LC+kKVVr^N6lCVx21K zJ41A|{e8G+m>;B9$}*U~R-8pazPn$7Ihx|#yp47od1jwz222ZgaRs}bq}VRdxj69O zEq$>BmiKWnv=C8kguJ*wlb)jqhMt5yMUA%{9Qd=t zoDzosCRd}%+CDkJ^y$HSK*&DmhwlCUlUib>7=^-w47qmz4C>>{q@Z4lpcXkf5DlF z5*bvcF}THSSAm@dbKeqskM>aV>FoEU&PaNN;F*F-ufylUMYA0VR$JHN)ukGp+L@OA zku6pY!GxpIy6&;GE$7K!e-8K0W)9?Bek7UD(Sh?#F|{G>9&P9<-;AMX#k=hHLNlD< zQ!6Kk3g_P;eUTDvJ>GhbGyT+UD`UXjI_X~Y;+IA7jU$v<1Jv!g%yws0UHOV5N8;&> zdtFatw`7*i7PqT!opghT-za+8`baHH$O3!3tpbbGpyIkC_@3XGE6DQkArjMI_(O*W zGZES~`NVY%2KrJm{Mp_RbndU_by4$64Ani?gu$g3tYJIgx}kU+v#sS~h%D*Zsg zBH)gw@%D!&kpWKBKPwls*}Ie8h{Hb|$-52;uig@&pUS0Nvzky~#y41GxW%##Bq>th z8;K48b6&PI$g3)6N&VF=(}6EOSs)2UuG)@NMNco0=?qnqIZ6DY9$;>fdl*+WpT?`} zS)NW=eQ8>|U*CNHBdHL;3cU<@(laAGPO<+TVCJrY0zPV0d$%JQl$TKq@OPgzv=l<~ zl?vT-Q}#M>RmixtPtrSwr8ztqd-agqpU?#QA)eTshUeNmCR`w0H09v0&q?@i~D>ecJm^jMPHxCANexZ2P-mmw8>=vt!$} zk5y5Ri`Vem2Y6ss=5Ch^vs>$CI9eqpMtycFP!2<3^+CL-%@+q|Bf1u&n!s9{&84yd9{`>NQ6 z+OK6wm|qtx1U3cRIe1B{49=?_Or7LCHuTgbg(i8ZyA8iLsc#ZUCclt3{qbkb{Y7kF zf8dfQd8W%3e--p$X&M*Dcl)NDhER9sfO`ixOTfPEEM~0zBuu)#NV7WHLxe(srNryr z0r!Ck-&DAJY;{0c7gT6s3v~XXGYWP`>{;hleJslUX$wXyZnUybNjJ4R{*O-)D>U=S zrj^s$yB{GW9Rarc+0h}IxVcd2WHLhMBccT3e?^8 zp2h*NJFv(n88+alx}A(rg4KSW)@N^M#L~^~x|2pY(k)Xbn$&oQ?!zmphm#o6GdPB} z>Y@cK@WBCN0p)8AnzVKu(eQXRxmW~n7w|2pF?+-G(rk1!9Scqi(vw`VcP_-*@fk#cr6#}he%#;h^KINzp^|mfuiKZ z1hokIvqK@Wn2!rgy;tM+I<8BNV7{9>9HvW^)sL(dD~8=)4yb^UfC_@aLMUbZz(E?h ze$Ruv7+v+>7r15x!1wYmDK@YV(D!Mch&eP&A|bZHb;(NQUJuzAzl@b1>loZD3r{I0 zdyRZckkA^enbza#^3&10=JOzr9mHS1C{sN7xIE!O;nNlDkh-T_kBv56C^02e?HRO= z2V39uiCRE09*J?yg9Shv^DXeG|Ie{*1U5AE;ZWEgJTsq`qK4l?2u49uAv$NmVq8&% z^_YBdo57oD_$XG55MK3f3z|wX<0uJ8m%IyDa*W(EGuMT+r6;)~+bw1FFvD8#swWWt zH5^)G1<}^4VRXN9|8V6Dw-9Z-c%Jt9V8~#1uKZe_RY=i0^OZn}0YwLSQ8{Q@7QJ7} zu?RYG<~DK886GQ+8uan zUhdFrWlcs7N1*@m->pxfyyzzhDBQHY66=pW3ZyYs3klj3Nd{umQ|}eo%v+XNk#pex z;GnOeu9DI9RdQ^uqAeY$bUMt1-{brnANDWQ{|_u-KmAsxrdRjFX_WSSSbB+N-FdKG z4V$NJXWxl3@p7Y2ijzzQaD%s7Nn4SP1%>FK>6Dd^px~D5n-q5$pYPH8?kqv+Lc@a> z!|sE6+yBtQ4X%R8>>nS?)y>-Hodfe>*l4$rK2q6=|}{VM&fc=}iU+X*T{0LO2&6%t=FGicxQNsTaCAU=&L;3ZlG>Qiva z<1=8y{dXK%W(603t)~{0@o!cD?BZkSMUfd{oByRUVe;(45o!8wf#GR? zQ6NTh`=o6CAJvXCKkS(;et|-hGS4z_2RFAd=WFVN`Me-q>ss{HYIe+KcZ#6KQs|no zrTF5%TZYB4Iv$Gi_b^+%;qGPjQZMHDo=u}la^=vhPdXQTU3X^rbRuO`J$^~SHy+s# z1_#Pv2Y`xWC-b2o+r6ZKefI*v$Iof)hfRrpT#p; z>L5D8_v()?cdsL*-253k(1zv^LOlr1;iY-&YMtmegfZc(vjg+q+h>FKHETwRWG3bXE#-NW0R3pYzcs#C|}VP55i~RA*hF4$BSxBDp3) zeQY>{7Cz6K+)V2bm7gc3s@F7rGUHX& zVJ!bi&T75)=gX5hYc`DMD3r>wK}zGEOgZD9na`__ibs+hFtZ7d^f&?y68E5 zPII7PgiY^U2WSY^espTr?B69fczCujCC?n>i* z_v7Tf4ol67o zm&oNqO;aPy$VN%-Kr`SmSgM$@o_=w+JMSr`OXBQ8FR{XTUiOU+?k7AiMf8lut#@~Y zq(-XY2@D>^(Mqti?&@c+qJfP^Yf=MwqB;rn42na_XGN3u;3i4FaEis%stQa>faS-N z#C7X5v#9Vz=XE7Q{+C}9yBlO{rB-h zU|3e8hgFZ;Xv~r4FBsc9EJYU$*m)BU|f&hQ92#uzdnY5zjGNvyP*%l@iA;Eq?CzVuYwD%vVJHIa)xr$pb=>##J4 zUtrR9r_BF3bBAf%D?}z(97;Uc#F2q+h;uspz3=FCub9hn$)aCzf>=JH5}k^xHVfFY z3wGGw*$9v9pd|GV{#I($f=RDWoZ0v=oMOjiQ5>Np@&bZ=Y=8G~2WewsHlW&}?-^_I z;>7Xau5rRQhr->50`_dg2V4tWEV%{oKrbi0uKiMNJ1b=z-7x z)@NGzrGf@?n&pay6u+6KcYT|xqatZGa|W${V%5Lf6>KaP;zJ~JETR^@6|LsPujUM{ zPt~n~$%p-5UL3P&u5N7zGlEnEdzd>aiyW0!R7v@-D^@|iWTTKph9+v|28!C_cB4k5 z7uS+(?4H#K_pzq9+>SiO?L#EcVQ9PIgWGG3;341$mW~T}xxIeMCVv#SD5KHVeDgXmEvKKb(Pf+o`^-bJvdLx_x{b1u zdy5S;q_+@l$KHRm`s30~ZbU~sq3ee&Q-tLTUdeGPMnh4!QZS9VcK*}e@scw3C7$rp zT2%*kuenpwcTeZ7eKos=q`D<~TGQs)CzGet6~n8SH|uzdWh%B0I~>I_(UG32R3DL= z!$~50HBcGBjGE3WRmnnIb3hS(0D-xQy?nw=+1i{>a7_kjI;kVCe|9lkgl^k!^FGg> zAkiG^v?f0d-JTxk0bX~D5<^Xs0ZJ&G>%!jn1&WI%PYiAHQ63)m9$&bMrDJqNGrJ@{ zq7cseBXTjO5Lm&PP0afBq$nW!OR4b3Aem>LELbUpD#5s9U({ZS*;95_2owDnIETlI zdzu)#PA)JcJejNz~Xkf}3HHu?e+cJ@)s7n#fG-WOKt%$TW6q;vbSdT`h>%_Kv1t}N#sGJM`k^A!3fE9 zEs#s_@D58mkL1%}mI527;0|WP1Rhv03)hO(-FuMHwsX_2V`xrtnAKpLMI;JjF7_ja zPCKw*fdhqzL&mAUidsyn*uO*OXe6dIcWts4@r)J>Eo=_w6Rg@ez-8aST17D>>z(TF zGs9hZm=btmer_A7YC2o@bqsH$N#9h;j39UFUu*aw6^p@>Mg4(w_DW4Fd^D3eFY06q zD(3YFEQ24LH?L%;$-Me9TX54Q)g|vv!WQmH|0L1BH7K2Im;{~Yn4sZ+1kX|{eg$;Z zvVcDgtD_?uvAXbnE{`*4v{ifTTrQ@#!C92V86LBpZEQK5L4Pq(PQF5~6?%G+Ul#Xj zOMF#jP3F2?McQv%#3SIbRw2m%?|0(|p7mpjID=}+Us?Mh7dMRJGB;Jxkz!WwT{1A3 z(s|p}F_xXJ%bQhYQ#BjXPmv~tw?&1JAtMaOH+j(tr`&%;i-(Y5#pqB8US(Jb{CYVYxH$RfS?Txo+_q;*LKvVS)M&L)S(DC znM|FFI*k(lNMxv*M%l0(Q5g@Pd8Dk) zt%^R|?()&Ue_!};scXpG9N;s{LHnNGx~&lfnC`TO88pOh^V>>lT{9zKV2=C7%%qaRndI}KNI zl52iaqZm27#C&h9OA%}ht3Ox`F0^E zY<%@szS+#(`ra}iK{WwF|6Je@nqr)69rqA(VJYOyVkPzc7JLc2wm1FWp}ISbs8;x5y+&Xl@*EX5ocQ)1aLbN)*{l`zCI7YHiAO?okN<$i&sf( zOoRv*dtpR%&vHa3x`O0QQ4`5d5N8gVO=hADlU4}_a0ucQEnRo+cdlvLTBBSX1}eWJ z)8_)nAxX@h4+qc9E%d4;0iiSZ@BeNU%)uMp7Wdx*78puO9wo#b-5FF^w(Yc(~ zok?|wKE2$_57A^enK7#X0Qv2wttS#*Cx6}Z#8NEpGvKEx$1EN+#cGkYBdzfZUi>R$ z^cw9kqPJ=9<1h9!CJ{l<5bspQ+iV>Xdj|OI-*k|pYEME&W{s4`&&nM*uo>k^Wi0(l zB>5Jn+<+M71~Fsj?)&!)H_z~B>xYkI*&W~+_Iv}QW3a4SNPDaVd*H8YIldQS1v+w+ zMk1fvH~~i@%R4*fUw5}8IhgxS`j4u869hi&N8p(`-paK&F_n`)pi|}^I)s+km}XWP zOTR9^712S`(LB&ZDVGr^EZUV5yU|t(`jKF=R#oa-^jIpFWfhTRS6CghNB^R9j4S-i zzsmI1|Mi6D@%hlG(5VW!3r)n(|eTjvu zetC>)?v>Q8u2@tUHmrz>R9K~Ztt&kA_;kLjI?$QQvs@(QiPBR3*@8wd#98?9e5{3* z9MC~wJYafziJnkb6|C0u(f>EnJ6+sfIY6nzkXy8|VLkf-M6|y(rC=FdU7W8-HmS}T z3o6LTSVnLLvq%R?b--coWxp!|y|$pEN!JwX^CSUjS(Wlj_pvL9b5#T0?!juw1nq=* z9%e`zW%<>0w8BY_V4j9bCQE2^jG_nlNA>D~bH2Sw(iq;F%Su0!n=u-iMWQ zd}uFkBLC-u{g0-oKZ)2t(C8c0nS%IB?4wUMzUM{4x%YbYrM7!kF9@*hBkq9pxqKS` zB>AY-ec}_I#cH*J7N7jhS@!D(0tU7*s+IJt|8shH(jgUu?>^}DEL9s5GR7b+7Bav~Ku;WK@_bXTci^3%Nw(lWw@!oPe; zIdgBKvu-v8l!YQ>s{F5%SlM2g72!@6KJT_*1H;BO_}ckL#*6ioeR6$b)HCzOsl}N> z4ufsB0hB{V8uRDcegune&e9>K9>T#p9g%$gD#Po#rN|GWE&B9$K{|G7AnXoB7?dRw zXSM#c&-7xa+*r<^w}{O0(dkwHgGVtIPr!;N+I*Tnem+@uT*4*OR6Ys#J!wc-@?3Wn zsjH=@rl8$FIaxBHtlO-w0g12}@DZ@Y`@sP_feBvUP^^lSQ8EEjg-*<}qU+tRJ2k+m zt)^2^$^^*IEc2+greyHpXWMGlo`qGkdB$ii-&8NJO*$i}cXyf&5*rCrjqfmv`F@Dc z>D+5YE%stQ*;G+r$1v$@WjRQ``Mrw+#Z=?yW+HkAi@m$$;fA(i)lxy^;^4Dk+%m}xH8O7||2v=xF(!%3-aR~- zMyZWsL$cq6~ai;Z+Yd((7?g>xoQ$BX#~iCkG)*eY4?wY#o4Osq}s z3tGeFGJ&)()RBdN*4s~U^*)JIY|Z|zLeEs`i$9yaBemSqZrFT2tKP48S;k}`*h7d4 zUNBRV8xgIS4jM+QWv1+okADmL0ef^2wdza(z8x2nZA@4i-`hbkaukh|!M6xO^TG2- zUk>m{Sm1p5M2(bjCI>s8X?!01UK2LdJg-sXzgwhWrh0d-t?#Ikqtdx=OtJ}MBhAR? zlaSo8XF`3a3#04Yj--|AsnbK|3)qSJ+1(N7Ldr%V2+ql;pqnXno{ihtscrIWNaz2; zh9m45h{~leugO5t8*ueQ$xn5##mL`v@toH86ET@Tq9 zm_|2{&q5b4VBzeQ!~4ds(Xm(89inVQS-v}^%}b_Pp0XmHFWW?=&(! zZ<1KMaOK-<_Z8YwtKW468m2b7X(2O`Y6j;~FHF|pN)%hi^i@b+btth}vHEY|wQR_U zM5{HD;dh@ zUovfP+n+ZNPT=|Y*Flogk%pcF?swsOXW3rp)v?4cZ~k|Yz}J1)iJ9&P-soGj9p>{eEBEeELlDLVtYLE`ZqGaA#``*4f#pfC}_|@ za*h(yFM!pDoY7ElZBC(!^}ziESN88D)?3#SQ+j3QKQp6~W)dhpJliay);s*;@mt?L z3sG6G2f~Q2sjn5J4Fc{LE@hnswgoA?-J?v`7;&HZfIe;~VNlahHr;7ZkJskEtYIt% zBNA`@YchBd`(zrlnT4Xym^yJoyy{Qr6nzBI3!02pz?%3ZjB%y}ij82B z;MT69eE90PTxoqj7qx#|Da(sQJ!L10_0_@{S)Caw{{FV6G%z0pyIHNYq=Ebm*zV}h z-rGliT|rIkp(_y{kC=ys#?VEinRl(+YtK$*+_OOL4I^Fwg@eXi7P|bdp$!(w8FP#=tP`EStl+SAg4gGG=6R*{kttNxdc|J?AnR^qzUq|X-Rexq3Uzx zOQII_avebz*JAfE`$!TgEz=aW%MyLP*|bjKkk)>339Hspa(L`*{@ZJ~#&#Z48=Pbt zRn=d`_V2c~e^L~1L#2-&9tEQ0CIW*Yrgg<9oDNZ4rMdBwA3g*f z&r{e#;*muo17-G8dKWZq>=n-k2&DVH$v;l~8-lVjC3OL1ldiYW_PmWJOU;!rl0HU% zX<8+vp+e6_<3}J_RY{!WFPLJO)NV_%X9PocXIO-pWO9n80L5!#zpvXYle0D1%B<>v?Oj zqlk;13o(8X6pfA5>^+2*i&{(SY9X67Pt5+iWy}F(siLF~6S_)%z~S;;)z3u&JZ#|^ z6?l$~qDiS9YZ_&(k1Y-?Zh)l`?T9L9y`^FGa-H-=6g~M|_c*(bA&~6n0F8+Ob!Tyj z8D!CoqP4NjbSvjwqIxn;1znmwR?tcEtv!@~UELO>TmCHhgpE+uePnO!ka@Y6_l1jY z<6A`7UbD$tIb)2*v#^%J9OxtKWupz=npog?0}}+qQR%5VR^QpfI-?w7)n6vF={b@C zysmVU%oy?24r9^%kx1pMPf#(c?A;G9SS#_DZdm;kPAYaKCM#UA@>K17SP{q8NIj!d zNv-MNV5Ba9Pu&VJ1yml446Iklm#;t@dmNh+7gJ4cZNX-l2}YFvmV@hXGt^3tRl8E% z6ZBC*EsfmdbHR~1M+X0Fk^5B`xW|9DhJ{z9&6@)h+OOVFm^GQKnK< zs@yix&irDPgK7FwNKo|d(vXL_j~1y}5!prgHVH6tAgIU0X&z#N!A>TKGTmnC}ZY)6u%<=M%MUNJM;AyKdy0$#P^Nx z&=dD~&Du6FuNnhA)30wMB}dJy=Gg>VatU=cNKP*N%LZ#?;3r2Y@rk=Jhxjub%{Lrr zm`5Iofo&Nl#C_?~(Xr&P*-*!K_sd>Cd#)CwOiG%AeyA`pG}Iw+OYD<{DTa!rAT;E# zkv#1Shi4Vgh`x!+Z;l^>z}5|_oH8NvO-3oZ-%zSevy-1T%jGnDA-5htX)0xI?<^5< zJuOZ`*;ngUJ&v1F%j2L%4K5%?Q%(L*##?@@9~~(vP86rf!(A}OLA(J(%-0E40Cmx9!OT%lCFPww zD#JgnyircId?hPDJekAhs;o$j6`-%`6r;z_2G>G7YBgNQg3x=VVf_Y`efHXd-P5-x zA580#=)M2)@fTEU70@1iEFY>>YgpKpEDW9t3>p{Ph0BMz?(E2zT(#4*rfOCpO!=^QVfqaIbz8AA~Md~b@MDdpf1z{28oJ9ct6-Q>}C9PVGq3uB_9=6HWq0mqd0 zDAsvG&v^G=ix2^G5>8?b>R>L%aQxv;LxdS`;dba@(9y|_fUnBvnT|dx4H`Ge zmO9frLtkMTR|p@oGm4eH?A-4;&pqme@}SX8P`)1T~C*I*7PVXFP%s1J>KRcd&B;YY$SR?O$`oP07gLShQ=8 z+|ihz?aumVpSY3*oD)3EH_MIjG z$Bir}?}vS6zQ>FFi)sFr$O(Hk8B&89gUQA}7lX8pS&@=z)KM&>4dqMj)7g2t5o#H4 z8*9*i0_<4Qe6y0=(rYW`+E8kqYKm$e(<&dH){OyupL6VQ`R?@N=`5d;Mt5*0H5ehN z(|dVTzb7x346$9O@GepAjFE2LZOJU?6`$Vm(E1n0#YapAhc0M??8=89qoglgy)bzR zj13F8QXc7A2UGeIjtNVI-HEVhMk1uwGCTJ>>s5%ZKer_vUwo*`UXu#%JU7sA$IYv# z{f29bmYWz(OPlgmbJ1Ogiq?2@(WwPpY~kSTqe)#qh>#99(OyJxJO6%*vFo%Fd@FOb z+Fps+Z6lQjs@00~Xnv7JJWmEx;H4}jL4i^@e6ROA|1ZK z<%V@v3Gkq(%#z<8ncj&e zf3T+JdT<2oth4NzpK2%V75W4oy$WOx9xF0G_~>!}0rSn(jYa3YN18i8zMH%^kY5{O z5+J!U)v}fAsJPh93Z+76KF?}BXr_(oYD}OT{Sgv68&bV-(qQ2(9U`LgrRg`l+}96F zkLN9A)ozL@Qgt{J1YsZ68u*1e5ho#3z@os$WHs<_opGL~dgP zlB4c-E;}w=g*>f!Zc$crcK&>%%iVNc#Bi;`&BL&5qs^_G%AwN6#|i%64%y8N`e0wx zY0>IMbbQ@@K+-&iJDH(}i8-w`oiyi(1&0A2>#Orweys&xn}^m0_Ycw?A|-%J#C-9i z#Vl0fS=gShWgw<>E|}lKD^kL^@X~E{oGLdeM{@PVv4NlaVK^g6@^WtV#I}`h4sfsh z`n`&GQ?TF6X}T^dUH>lOMP~pt^Avb_zfm|s9ZYk&xJ9!dghCG#et%3Jo_}{}kk)dl z<9j0I!N!+L7O55Iv+2uuq2F2)!653con6jmMJa_(6IS-Mp)Lq`M!-(5>uezMIfynP zgLTgq+!0RZA)lB=$MM~_u5d>dDYQqm*C})1%KqWsAIM&*VRaxIFMDR{K&csTk1z}2 z(eM4!8DpcQm(Wy0dsi)F$D_Zyt##5F!-qGLsbuKu-G?o}t(8=+_6ub2xAYLthZ_6A za}+f|k(wY3-e?*|gw^Qp$`5ch*#F^AtdY)O#QwoZuVbq;Q85$vNp=~Vd9c9!|qXhp9 z4W(j&^I#1Xv(~H+x8bx9k&c6Y^AfuLUy-baDltzKVTcj3asZA-y6uDwR02)P^q+== z9^(shw7Q>Ku9|xjPq2Lz3EZ#bgqlN|9T2?#kwn`B+aojdeouLR6OkiB5OW$C_>Ubn z6`3b-)Ncn{aMfC^v?^rQ2VG10LC|xUwH=8eZ% z8Jz<1m~NT0g#^MZ87K>LrFxSbJ7YArr#JC(D%?xL;Y&zMzVkjs-ZbyKJpKNMCF6_O z@s$XfBAMt{30fo7)ruxe6-q?~uAJM!O!ccL#-fmvauQA^09-#|4vNrLez?Ql`F_Iw z1Xd71{cblMo4!M8=A3 z)F@mLk6xy=X01w&d`pUtt&54h$a$H@-*KKl60|bo%)*elGZx;K=}1fbzg^{pZ#SKU zNGfYKN{`hGi9jxUx6ivH<$>V%VLSg1KAlzT3t4c%aU=1>>E%n;6v%6SN-W%frThTD zIqfBXs!YzL&DR4q>HU8K;9X+~U0j}kQgDEpS%&>b_G|ME>olXzS4>2$XKhR@c=TU? z`^MS3bvR7~JBT-+Wf(+qcKmniqPbwOB+@^12wNS*7hYM2y6k@=0?-bigkNvWRdy0* zM09`YJVLPlgoUFg);5=lpBp+)bUcVQMA=tS>D3^x4SxJC7<7?$jt;XUmIL(TBgV{Y z`-|k|;yZ}TBA8e$v)1{I$IiYtY`TmXh&`1mOI1yR17+DPlhBYQXhqq)T#JAe)r`;x z_wdi|y>ryG&a1Yom)U3fP1MdZCx=y^S(^$>f@6IMzpdhReX|NIxTqSXnsDYdj=v~I z3^e)fHAPB?x5`?2dXcNiE(BH&bFoz3dCsGUpGFVV1q(yu7QK9V?}N7A0dkgFxeRQC zj3$(dw{#I8yk{6iPq2%MzGJX>>xXT8!>-K~>})J`shE-V>$j519?J-+JG-+MWL~Y00!iRy_?&2 z!&5zrYI`lQiV=$11ncJQBDXm~Fi0~&_4{>wfcOc;hh+97s(7ZuV%-insU5}XrXi7`HtpCr5sdobPCy<6~ zPXpReKUn>|fC22wsxSE~39+W>WvM(B^TtzU^i8i~BLZSYVFVL;=91mBq)nNlV;Uo! z6}lfHGcna;2r#rj6V>UmsagJ|$O_Q8hhK^aOMd6uJpSY()tdJ-%fkhoUphjk2;XnSt*u8IsK>)eD>F6X^RU@C2$DojFH>vlV9 z10RQZ0#H&T8-+OQ3PBk1 zIM^VAR677H*`D-H3Zr;zh1YQ}2DPjzv+nI?O^BsBf|#N9#>^$8Xv^Z4s@!G7>A~`` zJ9p6DyG7K&Y7^GJW2Wb`1M@SdM^gh!1M!ny_^ir9)eKeF;s}}h2|kCf1M4y3DY#D? ze$F=8X`LAy^v~+E_<-rClJweskqI|NoI{YUjbD9$uK7)_zgt`>!S`ey(To{<<#fFJJ7ibVNU@{#*N|G&+as0T_pikaeCX|M@>wkUL2rBmwyL2 zKhYvnSd^6vl9F{J6YSf`rxG^J z{W&4|7DUy&TS}?q#7wi@1Y}L#542gdDjufAt*zD0zVD&tO{SmzI09Q`*dZ;vj1^fz z%V(RA`NlCES}&-*k=+u_^*ATI7b&m7*gNBq@JnZG(W&KLX&~kG48HB*Vjl?_`t;TY<7LhLB8bg3+%|yzZlSmxuEFTllKAjBqkqs~_;Pk4<2~qL_{Ykd$wLh26LG9v>SCQV z(Q&jd`WCsD^u_yP3QAA4^x0cyOh;d(O>xRP(+vp=dw-ja_iqE%N^gxy-#zF2e6shj zo!y%j^*$l7dv8!Px)g26m*h(*6F7M66C;jrfoQaTsPR|*-dAiQc4Ti+|KVh?f>TGc zHeoQLJc?rZThS&N^sF14tnCCgj1Eqf91PgTRFol^wByYjtT-Gdxn(!JU+W3?2#_o( zZZB+YH6DcdRi%tJB+S;Z=-yPHmfp>og{1;LG`ENJ#+gJhK+}4+^#jahDPJ9=C*8Hu zoS6$+81r!+2wKG{TQ)TxTsgH{aXTQFLz32(x+gKbcWE6^2ew9o0aV^ffuo* zwUzp4K+&Y;S*Bg((vlU_4Xw@nmC{|B^*5g=Z&QAiV$VWqV&a7)z}Ry&Jp-582M>#u zJ@f2aI3P8wc?@hK2%o&ZNOYK=;ei+^w!bME_v+A$a)rFvb&|nP5-{>A!mxx8TK)|N;9-Z+*&wgf7Ux%#zZW=O zHd_c{@`MGyOQ*4Yn6dFNq6hKb=}HKqDyiq~b2Ad3sQN7)ZQ#(NW66!j7nUQn>#%GG z;EXr7vekYp9`6C7p!bCDnV=~t8j9h<^70qlo*Zm(>+%i7W&1X=RXfp4a5#csaMc zUnlF|?G1Si;;ad{m$@HsojCW+Xa52Y1 zz`*56Iw^{5AEK3Wx%toaKa%ntjJ%KKrnI--{b#`4R?If$uId|~_Ui&7T+X*%-u&>X zZx0_JAnSG`q~O-Pt?0i^=_!7qH zCTXjlY^T9u+d0;S7O>2D<}cl#o>)#rvbQKIkM0UaXFSq(Ro{RmHYM*P@=2A%VWDi- zPA<)($fcRZ4a-pEhs}sTt@ZZ1HHF%h=Cj!$-s>$DEuln%N5yD0w8Tt-t)8_DS_glJ zebRgvh*B*pq|f9sr`7ok#kr}h0(3(BRQGVyKZCLJ%Vs7ngHOMORjRrU=BB!O5DWtabw zJzYoqhB_E;n832-$pT%;U}hYW~t9CYQ+LO5k*_dV$Zt|}gn-~!IX z@=z3_I2-!FNa&vX>BTnw$#ntuuGh!TrabR!BK@}2rr%bk6)b*>WEvYM$=E$_zw1 zP~waZ13)CkM%VAH8ar8B2G4_QKk7%xG0cKZf|rM1(gu76+m zjv+YpL(4R*j)jys^XgXFD2l?_sHu>Mjyw5F^M{6gt&W=FkWWVwlCRNI`^6YNLc)#x}k)AF_nPh!mFMac*|1DD$`X1gRB9_DPZUAd%5K}Ydm}Yjd_@E-ZCWGw; zzpxtU*fSjS<&c8W6}a#M;zp^Y#26zNT+B~(oq8ke@p{bgVr_{90c*jk9T7r`W-3iJ z2YwD7rTompHIW@5YjLNuUQga;oz9oByUWK3XX)aDlUlO(le2lm5_V5G@$92KgEe#z zEZ&^ubDp(fs2c2Q5_*1w&ZeZ-wDHe^C+m`U7Lk4PHnoMaRjq8@3ySR^{;F#u;)o8yJrttV!{DXK5eeJB@E2hH$E_!mYn;w*Vc}@(KV;oGK`rdwe zsB&Xz-ZryA!AJx}`H^qYcj`lKQ-+RSC&M*Ks)MPEZJUy4OUAZwv!o57Hhfm(;-$KX zvheRP=&c@S@~7ik?p7V5`?#Ij*@^E~bAr%Y7hv+SfXPpCF+zw;OaF}Z^9r+%OJJ|Z zu9tOpGa8c<=Elu+b~6p$&pPb&;!hC5bx*xRs^jrW-5`z|6hR2zx_kb+yLT_S6B}pc7un~f&`y*bw-??$#VVc3Co`yYzqKhhzteV*1jTsM@6_%gdVx^ zdmQAM%3l&==a0jp)Qr!Q86LvSbL|;1+@qUSDG4+@FWiH~zS?^?%`l2{8jZ#z-T{ed zm;5TsKLLpyhiioUxx3mPGJcY4U_|>-qS)DCl0`p0fcu#0)0MS+fb)bfg2TnSfa&>e zCL4~-=7Rxy8Xg620rlN&@=4R^L45wA`ZLg~`>IAcrK!*6DSoGpZYWOb-@QT^%o_XA z=iL$?jb`s<9}@Vs8(5Aal~-_|di;FiO)ch^#6+_9YLf~F_F2r)2xQkfDVskvVp5E?+08!&zps6}kJb80*y{+@T{7WY9nYt5 zq_8W?OuEitSlZ>@4VobH2V}uqZcn-gSggT%y3ikFQy-fI`8(mZeMOV;n#?(x{w4pM zQ01by7ee<6s!*5*qZCj*Ejk%-+s=Tj@2<_`4OMk5z&R zuFP5GK`~KWcjvFTDO34YTTx|SAg0eNzFYj0tgF?X%)U{UV*SGFdPxjPVq7 z@6#ug#Ur#xusiDtsTE>%!@{s(m2yUDmq0+ofROhL2%H456=96R+luPkLh4w^q^(|g zal;#Dk^DTT)#Fhex|21-bk;+S7*yzqMs2FO;?v5W6&r=H6T^m7=BJcGt<^GtUuf@KpY|l#u>z!XdFr;hJh)^oN-=@n z8eHx3vS!TJVw2S4ji(yY1uw9b(V9v_*}B(M*p`((FinPo!Lsc+p$uw`*_LW67VB~l{RU*1@E-~IkKBWkQ*%!NdDruqSH5RlU`q#$ z{@Wiq23u^99@*UL!l+tcj1R(FVX}D&7}LyY?*z;2kjH3LHNdJYV&6jWZTXqU(tIApOETmJRnj6NRIJD5 zqKe6uaPc)mCW)X*uVPs*7r`RHvC9tC>J{&yvJ7m(pcVlk8UdqkCk49*_~AZ2+oEBe zr+K5xMW6iIW)N%R!-GxbEE_ooC_dbSRkUm045buO@j3Tq3!bVNdl z)n{BI`A_)AxUpH}ZhL<^rIi9}&VzA=HGv6VW?_hDGc}Kp>3Rlez#D|W2QTmRV{3oW zZElniDim!PCH*g8PKroFu{Ge&J!7qqqk8sq`%&CHRiKWOLZ~xcQ|zU(j83EK7x2nS z2N9|(lZr@p`-CB1ZS(M54Pz>s_J!wd&wRo^G<%eBEkj1Cv&}h0Na#ZTxxN6Mm99~~ zd`}Bdm%>D^bAmGLUR;#2KAR2mdy-2EGRP<{GZ&mG40YzU2A3*UR1$gRO$X?HI`7-; zW$$gDj3j(K+{;L@p~>yj&J*Y(Ek9(b{rWfhPWO#VH+Hj|8)G$!O#G+N zjr$|TMul45@Z)?v6W4~4yy1~%^3bl9Thjsj3ytP{oV$RfTbkX8_j)=#YR(W#L6c{< z8fMO6JnYgcEzh!HOriQ7E^;V}kh>xpz6SGiuv3t}nIzRDpcvy;>Vqx$#9@c@5 z%5K#G-8D1XklQeQdBv@ACy$1b$X#$;RsM^o#@Wp;l`cx`6F8a%hErH+^Iw+pCrxjQ zMR&lp;+6grKFJ_#n)pnToSN<93rpfO;*Xsq{Fn1HwB;95%bJFwrRG~a4xTkfE$|y{ z=^2;DvkSCe=)EK@glqE*kJ|{lMZ;=|Mjb+bT-cwa+%7mB@7X6#P*c(23T?eSv_{## zH1;XaI_b)!5z5pFJwdFqT(r)@O){vg$O<%w`PAR5uz4T~daL$ypTWH%s_o;B|1J!qP zULLPLqq`)|oi`!i-}`gQf`*diIpglGzdW+IQ0wg%l3$dNRdjVXWGw&0cwV4)>qAWy zmRwT6CaRGT5e(^YsQ~IXA*hf0Id>x&iqvrf7 zQWxLs2A6pCd1f1{KFi;SoleHFYrs2-UY{%!QVNa==FOFtv32lppU#1r0!-uiJeX?E zrU&jn`q|ORtb02(IK9#_9MOz)f0Ay({WnN4(YXjAoCXwnK3z8-83;=4;~I(*a5QXd zF38K{ndu^q5n0&1Q&&DBH4s1e+^tXovFDyLbvl~>xVb(}6d}J`N+}|=Z7Rwu6Q)0r z#HC$c)^Aq+mJP`|j-T+nb;mT*&EQ4N_n@$zm4@u)nB6i7kY%;zEMP?%yPM9~UF!MO z_PA(+FJ{#ED$`6`cu<}w`Tcmp9TYpzHm8%4{&e8!ty+=zU1{#YyUlNSe#Gdkv?yoV ztXzwG3#}g$ z1WgH>WfHX}scK?$QT(s^yA$2s9b`Xcu%jEH>u|~UkchLP{sW}__HglK;*f1%I52&v zen-i6%3^LN9JzWuyfk9zt#mp~w48JAw|HptSGz z?7Y|k)yy1C9QK(e3mEA!KN&oA=J=trl3x-@Wm(aRd{sgJ>V8pOOVp^Q>a7Q3CSE$6-!$i97w4s>M%F$L0K{yH!ahe9 zY*5`Tl~jH5i|5)^)AwINyNazZo1NUO0w&Y(MS7GpO!byIt~~ zruRjoSXJ$x)x$@XB|tXfM6%l?yp7b27NpHy~Rs1no3S8Uiu#WkbA1t zmPG*kJ+94{OWcBCAav}WS#+8Q=>@C$K2{y?e?G{pE?xu8@-VI6MZjJUdM>6aA?~4~ z68Ew|?3c+N{?TmI-RO~%z~kM@V4tXa;{3pr0hvnBtBe?KwpT7LX17N=+drFaQ+->T zx5+m?^jO|8*xI^V6K(7-0I!?c8n2j2wynAy{U;jnQ8D@8+?8B4&ZEn4cogwzUPq=h zvF^;4CW6dm#B$*WjGmURznVDfPrOLWdE$V}L|k397(7Y6V+Nl`EpBPsjTV>DcA#BO zW=5;7_!Tdq#nAHqNX)0V)isQ=8(&sg`OopSbpD*98xPPWBu#pZ7G}j)R52AkE*GH{ z^ZgZcT$53PB}<)`%FHUX_0Us)l%EoLXv4uXyEuYpKvdCQ*jc`K>a$#%P;zEl5S3p# z*wv(wg(TVy2WYGfsKEk#tuB{=5!N=BUL{c`(Id;Xz34a4-z@DQGA`+x9h?KDnupPE zX14R?ak?Gbs}zrNCePkElAg3xOFEj!bsi%^?)y11m;TK-@V#!qR(ibP0g3B49^kwk zH<+5KvD<1+?8`U@{ho20)v!86{PPbQ4{a_8Qvi0PuWD|A`_(t_TejS>&}-ymp-!ec zv!vqF``v$z@J6Z<9(kOXx?lYl;hfcp8YYi|qs>wr?)#e9&vjH6LgY2S0b7NUyj2|a z$qZn%2eTZOJ}0xb%;^y#7R5c{rOa?>KuRU7;sL*u!Jwu47a=kM0mGx+!Z0WS`eGJV zkS{_|wa0oEc-UUW+rTkx=0TlpPBFC`3VsdyDSP6JwCr;>_}X&!X96>AYm6? zz401NZ5?OZNGFIlKwoy6a`b_{WRXmc@Gy^HS*!mfP7gB2J!M|Yryec4e+JAYjrr8i z1iOGmDEOWc0cL;q70<`3hHn?%wZvd9)uaWGrLPBLz4+0;D{+HuurYQ=#6kOZ-c5-7 zl^BIc1dA&g@*yqA$$Y$!;nU040~zM~WTUam%S_`Ivkod+*bI}2l#Xlh(vypnZL`5j z&4q0fkK+wht>>MDzE*9ws~yk{Y+KyBm!m%S4&oO$9;*7uXV?kVc!J8uWBQCU2=)21C=68Oo1&iUHf zzCyz0_Hx0K3+E>{I@HOiBX)56RWvVY-5@2>3KkD2hg#z6Wic($9m+gbTRgTg_PMo^ zgB6I574G!5aqDm<3VYUoEH37!mu>}pj%m`u!MCevjv#-5K`gS|JJ>tgg!}CxMqaA! zm1J7KGlK7^IW3j*_gT_^B&f)Y3LcTHcX+R|2nGkyq)o(<&dUv<# zOlxZOh225+IO0Qa2(MX(lu*>1P5_AcR%hmrDFdm|5?x@}KLQ*Q2F|lXOx7ZAYPAaE ztY`j()##Lv?e_&h(Q(=|L9?G#AXJ3m3{M-%zEy_L^kp~?nVa#)R%>%=3iNC99(_i` zvvrNj+~t$Lq5qNWl~f5_>0ueY*SIg7YiAs;hBFeO!x_=(rRMio{^%*TjTDiRLa8{E5ZAv<;HR7>rpVTw0;?Yd!b6ZRn zpvYir)d?tm^R2)FP&1Z}Q2uzEqSspcLh{yp5`K zS*D4{>;2gJNare5Hyn&er}OLiMbN0$x&n&B5pa)te7E{Op=PQ%c!ugPW&}UiI(SBZ z>I|}P3%{V#lr#~_DLIyTGEho zF13A~tI&fo<08#rsdTZ%Gv1`wLDbgTL}GqADjxkF9{IZN`Q&c$D#*Z05Eqj9$=`HKcnqxPg;bk6VlxnAr=HOeurrI^M73vx}-H*_g`a?f_ zr7PwOdow7Bu&a(+9|a5{JZ5L=`|Z9}G?a{er&zAg%*yqV+4fv-&E@PK`0&M+C_jBu z$I)yCb6&48?$bZ#<@naFW^^`eh6XpVB{63o$$EJP^mcUNhOjnrv+fpp?`1ztiCMY* z#G4c;Za@2mgr5KEO9Zg#ulduCI83lhI;ClLUBcAhwMw{F|r{vi8CD#$Zo zJS!pTPk74F30}>*<-3P`Go6{1|Hd$JHU?rXHb29*cX=aLS+Qt2y_Q9$#xZuXU_F;R>^`~(Ef-!guB2MUxs~*afkx<7 z*a?xYs*xQenAxT*C%rM`SAE9U;><7yu1%_dY)mEVMzqpiBJbO`s0sgCX``$0diAL~ zJs_D4svM{n9E0YFJ zd1>Wae$t}n`F6s%v3jb*{i6AnlXF+fNE8%DNEUFDrgQ56o?@*@hlftMPs$J_B-!%0wQI5*VkJ+!(wQ|;`d~>g(|3o!-a&4ZQ-(At5_4kdWCgt+3Xz+Y5dx_FsrMD2@rrYVPgFJQA z+LHQS?a{>+bHUKbupe7=dzAKYvR;HWKXZnRwS@RI%>2wPIpng=m%yRE8KOEm_E#~? zPB^24Y@|`6&u^#5zSSTj@=5IqaC~8#v`HSAZ$M_`)b7+~0|%bGORnvY!S-i8sG2WV zl0?IdwMoK=)?ElJ)Y8sZaw?yK5gEbk&53#Z;USh6D2t=5P*e_3H_F>YyNY}oNnw9zd9;ydiQ`O5`kHJa zAJnZ5o`5IT&ECf!C+ZoN``xNpBS0@&`h zCShwcW+UG}_!zG46s1?q$h^Wv?9#dzaYlrh>TV5QID17G6pyy@_1QKjigMkpxcN6# zzNWCFCSz^px;0GmB&kqO6!yaGv7k^7R?SCK7^pfNevSLL>VPT8yU(Qc3+CotKy!&g z;_1$6d_CqLDwi8`izds~#+pApm;iBsr%r>8k7jmTmHK?$g>oaG)NR(YpUoEPbdTHRE# z?DJ1N!XE3bLWYvJI?-NOnWAb(ipHwJ*5+SNSk>!MqQ%_No3r!$PD}5CxBWq_^CE#9 ziNc?uI7^gJ;V6C%VB{%QW>2mjWG-}6c)9&^t^&LsjAHS|2K)$LTLF269N|L4zA0a1 zhhWaJFCt$MZdgOAP8PL(bAFNb`0I2PFYZyxU@*CS(8U&Kh%=jn0dF7e_!-`!_66PG z!vf=oV{6C9gjE94n?Stjg|$)%loy;NRgF zc>mUu*TYfnm0f?KB5~Y}+=hO1_)8Z;#PBRk!=CH@3~HZ#!uPIKTaqcm4sE&YMBxh> z0&pbr(9rCJ(ae7StNkB|IL=^63{$lu($kU*%)Z_QkY;MY9uLQOMg0wSI77%sm)?yge`xQOB;pWxy{K6LsbKOT(>c zK&=8^h$_$j)Sug;pG-JCX9>IOBv=fx8;*cn*CWaWv|9L{E9SQ}bw_}l=;}P*gd~ow zHk|*Rpf%xC=_2~}vpm>ahwxdlo6FkXXKAgepb2wY*Y;<0^Vw({mANVWZ7vq06VdIW z9znXT?T_~JmXoaY6Do}uN{ftaJ^sEqTFGh-%=JBPNyw@T4M)g}BSXMNni*fh1?qSR z)%oC%lBX4e&&a%sxs%q5^SjP^mM2`m?uApNX2Q0gK8S2{zfC}WucPEIt($cN*bNN! zJSq<)C^s64QaGF@#A+`Z>G`Xl*S{_T_&*&1;_G7_G$L~5oo>umOYjsOlUp0~YE7?9VQc*hbM3k$j@^FB zoO3UktJJcxn})-^;}F#|Hrq3z&a&& zxRYxBu!!EXyZ4fqUqZ_t=v#g}LN&FGkf=7T0zCa`8RF<+=AKvl-nG5jjR@5$^(%4q zuckK&t)U&Ssxl~+&>Fr`%0ECasXfjwT#%%bZfHdhH;Ea;PNGZ!L*E}~nb9h)()VA5 zscp#s=B!UB;Q`h(alv9=#3j|aN(;nJF`zKkDQRiHp-1p23 zI>_lW*RC}VzxYwj4#uS6*(Lcq?&Xt+1$s%%wx2bagzdjFGL;Ec=5;+}Q_g+}oy$CM zbu;C2cK(AO9oN+>nN~Wy>yDg|XNftisTBKJakm)qHaDfXR*XZ*t6&wAV*bc=?&j8m zmf=Lt@Ek%j!Hr>SaAYX|y>=|aZi%l=U~LYW?gzQoSbC)ddR6!S&Ow>{F=M)uDR+CLy<-65 z4b%>GEZo{x(uA9QHK3TbQ!#H0RA7$TYyxTpv32;y<@6_<*@wSF``mg!TRBHH-Cu%82Cq|(yfbd6!_M;m$hgnjM%R#X;LpZ z2YCOTG&)1HH<{m<__q=@b1?rs7n`)e|K`P>udTK27hfFjn6>n@w&$-qf6UVf)r6CP zxJZ0}T?^I8O2M$vXClM>zqKpjh1M=Gr2f}|X*e~yc_P-nij9wA@Z3)n4k4v?AfWth zD*Hj1oPu=#ExC>Oto*l{vA;OB;$d_NV-vrVx+1Mka2(d;w^m8oIN!yV^k5aMM$)Tg zCIJiR457t!qPu0v$pQ{t;$uD(%^0Kp9VFKnoL6}g!qdC;d z70-1D^h#?3@)asa9{T(YN6LIXgXGDSn%n*z-9>~+r8Q*DRw6DQYy3x2FAvVE^a^FT zus@xV*HYr3qgZBm9b^E<>{ylX_=VHzL3N{Ueh}h=_sI2ZSaZn`ls|YnBC~CtIpK@& zl&W%~NtCJ$$<`)g`DWn-tyj2kmck#i8TJQpiJAq|Ir0UM@fsTCvk-Z3KhV`kJ}s&o z`q=BJ&gRWXKDS?)3WOHdR5fK2csy$?47r}O4##QTV>UbAY2wBTrZOi1)Xnz_hz~DV z&PavnKx^&IjL6f$$yu1|bI;X++62903j1U^lIqCTp=QnfD00R7gU( z+x1oO05E0(Q)8cy=#M!-k~ZWA9BYcL6$yL#9RHEfy;4}}p0n|+l?$L}sd8>ab#z-u zqYdH*{kJN%>kB?dvRbPq4*Dgz?c44fK94bae%8KGFh2*#q4tu&wAA(NC1*VaMH_-O zs%{?P&$fSw!03KY$DRjY5*N#)>TL!R)sK~N$CGo+c~Ld=njKzDNwrV1TNG@9c`IMq6rM8Hiu&R9YqnKr2Fo}yyE1_#X8u!HuwgboRYPqubNJF$QW%d4 z*$Jca)MKnzNz{AdUuW|1QVF!4mJg9hk||a=YXTG5JVZriXjXtKTPd2q|zhocXEVn^z_ErbnXaJcPI%7;g5@-4P@Rnl(JUS ze}Qc+;~x!xdja>;z5~i+;rQWSa?M0@S^M@>x=Hgz>6(2^GwUFBHP@2bl^#+m##%6>n1Yk@PH&t3sFMY z&CMKqYYvb2It-xLdOsd!8;bwi$xr(rVr3$Ae66q;f1B2$AGMtLI+)39kBwI?D)r?R z@$(QHuW}#XclhyUx%tl7>$}^Fz~j%LOtQK$ZI8Pe=9+1E*ta%WG`WNa(K-gZNUA-9v*2 z;y5ZEAL%M+sVH9$Ud6%#uB?D<9CW#Ktc{mPTC_;cxz#x9_+-CW{5Gk!FiJ8AAO*+W z*1y1;7zMMBF1u^*ae5Ojx0Xhh=7Y8#eD;XzSVT-6uBrySRarJ+IGIyQpFGRm0QD#E zpC4}S6swY+xdze)2W^R6q!#>&wi9tQcp~s~oFUF5y?vk~)_b?cf0v|+u8D12q03b% zy425Sw^lo5P6<5pks3&(5*_+{KuQ@Gr}uulTo-FV-r*)?gk`*ej+)q8^J7mNbF}!& zlo36M?#mEIH{d(VGIrRU%>Z(jFgp&86`^FDg*`M^G=21lXkb|PQ~Hk+p(uZa|J`Ma z<)^Rm#045WUZ=`>^_@NcmlRnSg}}O=Td0D#48EgQz}Kb8ycD4NE7yL zJ-HX%)GBUFUTSn-_!jLt@pQt8JkXi>2H)8g@pga)+0ZVbMiawdCiG zksqEQ5$r!bq|t9^imrs|k9WI~^6aHX<&JHUN^(@6$hrw`ra5})He@l3hcD81s_ZLU zIyP=}#5;l%g)ErqS_6w>C$7R2Ww#x)D+Jm!Z54v=Z!(7_-eMgaWej1!%-Ys8cQb%oBg-8;V6? zqomMABYYnpDF*BmaX`9T?em`5>6t7>n}64#OsvK=yPHI$ z=F8p=2YfR|X5sdRQmLcjLxZn}{y-Ahc00Jyi6f)V!s0)YKNkR`n{HQcH*<=MArrFK zX|L?BA!}B5HxSgOeom3$Tos^)-$dk-w|(0N$R&iny8Ds`7g+;cGV46h$-W{@t))A= zqqVAE(ql&R!PR1GDqSZG%A}>173A43_zjO{3n7NF;szUc2o5KkG-A(Los{nwOQ9|t zDS65F**A=|Jr)vx8o@BD;*$vD0u++;&c~W&UqaEt6cncV?I7h+S^L`2B)c&QYVmSAxo*ilKF1 z4NFhwDiO^wfSAk4K=HV}j%DVxrUEam-xBZ+*N3_LR z4gK$!?$#-ECFM7TbK27g5y%(WM*$+6akjjW0pQ>W{4HQJ|JPRj=69LMsVf7OsisZD z6uY0<+-0I{XRGD;E<$yao|enu%SUOc5^QUoqhO`GT>(2QUHySGd!Hm>Xd+s?U!%cuCc0(`I&Ao;q?mv=Qp@arZn|4W$^9v6lzEuXkQYRXR;KnmZoUW?x z;GBgb1=qo4n3PjLEu40TP*O@+FpuFf`IB|P8Ul#D)Oz8RQoXp0gjJ}}jUNSs%rE|m}ql71;^%euiAAcYKxw#H=Y<)}Ruw1fxJjrmX zSK(@EC#{Vq{BzFZ!0xC#$@6S8cupKe_`tv^Kj^JD(&d7;c0fK7!>mgEK}7t1ak0Ec z`EYb0jZ~dqI_gQVm$~}VYXqOd#fwR}QIpquhXL0lKMjLuiC0x3-e@W(g?wlDW% zB+Q^2f)0)@)x3iSAu^r9^4)RPZK0==3e6X}x_kes6c%r zpU@+P#Wjc;jLljK*Ct+Yx?e5bnLUCN5>Jr67XKoJ)*S$S``zLjT{3l(HqcP)+|}$y z()tamo~&5HA#+MTeV`-r_4zdKNeN|TW|wu(IU>~FPyU}P7V0XL&|!uyt`;reIP}Hd zl_Xe&DJ=eeh;6BBXF=7a%BivnjEQdko&7{m$twA6`ewHpCd`oW@b=L-!Y?k=rt{FD zv&;uBZPkNnGmuGN7J85%WI|M-02fvK9ho@kslcg$bfdHvs(W&}lh{i~~qb96Mdq2}v#lT=#i2W8Da5Bcaf{mixD%>Is;F7{?s&a~t5fo#{+G26E|%h+YA_yD8023^c-S zz-}2W9(XznkPKh$Egtg-T&z@13YPGat?>1X%d;oQqP9*?Tpnvk#ggVuVUGKcP<;?NEa>PZZ#FW zQ6qaJkr9~U;_GK!q8ia+wQz?_HcS}QWN?5Ikt&)mu|81=**vhU#mPwJF78T=k0#JArIS&%3ErO;p(4I z%n|x)ELH!UN!34QSRLfK-QB5yNFd8)*&b7;33e6CU*at&mbo?jJP}sXK)p*zUE~+3 zLAYNrg?R*8MBBB~t!8rDPbQ=l_2TpJ!-s8hhX@rDrbcfKh6go3lHli1h&}k+kF2At zyW$?uqH+6rzvTJ&70N;%rU~cxiBPb(kL&&#YF>ob-UyKRi`+kRRq|Y{7myl46^A%; zABZG8Fc_H&yUW4)qV-2T03>O9G&m4?;j%0!1uE`tDxz;>+8z#qrm{UN7C7Dn?CL@n zo*5<27KL&*|NaALw_4g2bYIr;%3cQmJwk!oX)5hH+1T|Qfx0*HCtQh~2iPqJv+0yW zCI7fp`R)_?R9!9hmEY%+g1I+VUu_0wc%Z;u#;WzwNOCcH+ui$r2Lp_FZX{Z?%k>DU zKIr=3zYmn|3s?mA@dY1#^~y5mm74nu82)mSnl!kbQ9EW@2z-+zX{r5gh2wa`hE}P@ zUD2Y->BOoIz5DV+@pj%AnaVG7ad+$o(+i;9d~pOYlrH-s#qgPFYxC=QX-8v<(NMS2 zO?s$|$Fu3K;Uy$5Kft+2DwLd2q7nmzhGn8q$-CZfW5>PNU+y zI1Ha5<9col&um6E29h%Z@o-pN`A`h(vs|Xy?~pU?XwqC&EbKZ#@(Sm>AZdMK#N1C&C}er?sVccjTm-0P_z!R z__1ZYyg})FHcZ@*?U1%~DG0d%3-d0@DXQl84OSm=dRg~0)Q0&H^{Vm*c4OZ_Y)9n#Lngp~ zJ*KVWxx50dsgMp;QO$iI9M=AKLIYL(BC)q1(GA2Nn0aB6^xD#Q=A_EF6Z-ziu-T2&uddlziSbCL5d+0YS={9b`+EuX*=b7yUqd) zNu@Kv_jxfSJ|D(WF5kpJLOVAs4D2YKyE3bjhAG?I%)obvHz}LM(NWgf)@+(o*rkaQ zjtx`;yE|SvbyFT%a#y5Rnt3sR^5ck&Xr%OX0Oms-uYtBWgz#s+F*!*#-V5n8nrLe1 z8h5|Z4RD(!%lmTsFf)%w=-%QU`lR|2KRr<=Dd?-7EzCwKcRHc|GtkmXKL4hcj9W)% z(Jne7QAc^RL?^zJuQf=#ja{NB4~|p9&g6d-lAd8tN?%U^#J<6?iyq$;g7a@BcJEu9 zonV=H)ma4WW|K3wWJKC`mtGr+V`ew{i{<39Cbi4QIg2+p|v?uyD;v?Si^&p=6 zhn?A`VH9D8RWwwd5}wuHg0}4eIq679eESeCLa%Mrcq(fP#R2z~R{Yx{T4(~^YtCkD z6u{?Bs+M+34Tdz*3I8S}o2=0Z2g6LqPtM)m%A1hsc^e((`(Kwo{vQ2zW^ak)M*QUo zRJGS9fw{Cam28x5rlZ7ae#E0!Hro-7N7Zr(!%Q7%)rET6WU7-@g!3HQkxjVc&Elj& zu>SUA2xLU|wKa0Ht*mjNWlek$e-J0kHdXh301659_R`vy<@@N2$#j@XGD>Q^_{pdq zkoDrjsXB=t2n+dIPtiF@2~a{zv*hXcvFR}Cbh=4K*85Ak2bQCyBdfYo#7_&JF9xXJ z8>t?r#t6fh5-${X^2KVROQX1^Osb`H9=^ZpT-ZhuH^H$~UfqvV z8Fc{&~VLi^DC?izjYAp1P@#iyoAE#Ew{k zkzP#|rPO8AyNR2qa4Es%#cQ;>zxx({X_sA2(ik3s5CNTc4JyGkV6}w3!&G zJ(}b8`e=iQ)Tl8oEqU|Mb!8WNQ{Lmqo?g%Gr>Qx}ekW3LlwF|nSAWa()W)Z}J7v0A zD=)~=SMd6KnwuSzT6x}a^3w^!;Y;I2Ou+b8iu3MkbYJR-&FC~p2_sio{lo34zKggn zQcE`Ezn>Z-Y@DQZB^{uG@JG|rUE|Q{^?#!NtE(^SI&kXrr3gc!#@?;1qu4Qi=DGg> zO(}JyF^Mh`Qa?}2j{15#dVkf*eP&iZ8g}2$wm-&@5ZK48&1KZ95G9=b4_#>zj3YSM z%2L}E;x+fXbabWDhxGkMMEC6oCl`79cKy5QlU((FH%-OH`67AdkK;uX6RJuQxDm$h z?KAIMsC8%kA5|c9YL4ymrd!@78q8{-=F7wLeHty>LfxVm|iID>}j9DAtEn}Z!T{=ytPmV zrPS&mN>Fx@LXjI!Yp+_+5$Q~p*vMGqcYD9ZYP!rwS{BOlma6O8_0AnOR4Wdd9nw@U z+xFGNsne7~aSovh$%!|1{GYL?ID;4$G>e+NcJ2Abw1tA&v|qPx+|?Z*oknHF=E~5- z>H*V<7j<*{tBq6^L#dp$+LwIxb#GI8?yZ%GMRuND^%Cl`S#Fa%we|0&6BtygKw_io z-$gKy6x+7IDp9fZ)QbsiiZpUO-l}gh_=T_O^soHW@cbs>C${Wszy4|hfAVz2PHCgQ zwkI}Hq-Sh`v5UvgO2etNWwr&?7f-IHz+fmoUC%GI=o!E~B%HoKdw<4_rrU}Umu}{? zruDkgk^=VQT8MOIx|?XJetK%4ip3bp_;3EYqURbVj3!>YguPt4wLCDw$eG-K0Fply|nrDUz%T%K7fXVaB#OQ>4M*T3GiETo%TcE-3dpW9iCrtOPu z&}*c3WFr?~)0r5`A6-NeXHcx(Mg6tQn9hK4k59_iPMo??dNS(~>O_1{jf#4@5$Um( z+&8xU->#_XKAfM0QX?5hck3m$vti%8YG>2G(ukHu4b_P=I;UXN$k#$;kt;+rv~D8 z3OxC3&~l0KV$^C%$l7ojenEQATd8Zh=%INtq?og*#v7Lu(mk=J_g9N$WbKpj(Nj2# zV2HBh`hEWZ&W2O?Q80AOh4S~-*d&tZjpvskth=_v@}YZwjSxw`k(F+YdTU2LIp@ju z)pZC#+Y@kdlEe6GctL72eEi=k&`kp`3napl}iT0r5 zH&=}iNcA6yov~EoJ+IF-pqrF{y9>kpx2*;nhp0`-gSmcxT`SM^S%IixdkA$PQ@1UzFj^iaVPTpD-l*Ds?sO_d1 z>h$8mD;Wh!R6dRIqi_6dq?d{e*FR1_Z2?ST*?d#YbF4;EvJqr+gH%b6PEe48i}gEw z^)O~tC=dJoG#N=U+a7XPZ5A-L_Za6(A&FdtYbf2lyXZ8dD}Pm9FZ0t?v6#x}zdkMh z0NoLGN)nV=N58K+uA3OjX*qP|wcB33m)gw-G9w0Cs=oTDPySM6l8#2|ytSh}t6_Q1 zo}g3O`|+T-fZB;&-&)kjtE~3Mm~GDdMwX86Z9AAU5G0#qF&{6!f(-UwZFK!BDoV#4 z^x%^y-XhV%`QKBzp7Eli@veu3NkoVGD8Gor$&*-PWvGI$HunBBJw{c#HR-JrH7*|BdJIKWBHwK4q_rb++ZT6SXIxZDKq&9$ExNB=H`~=hH=?ar^5CH(j{U3+q}6lNM_MiI<%7jTBNZAALAj zjlHw1t+6F$b9i4p1;i%=j`V{mG=7sA)b&UmX^~~Ll@{At&`t8&G8gpEZ@!CV68!o0 zG!k=WGmlL&Hal9eM_MvL2Opp3Oi=1ad5bR>jRJv0j$6l;q|4{qjWU(8;=PS!@Q5^b z&=2ag9916N>l^~m@vU~OoZaVG30FR}cF=0t3Rxl69>;9!VKXbI7v-(7rzh7zr0_s z(J_SO8;iB8kAH0f!}}M>k%Y&Hn&)g2qwmco`GLQ=J1HqKhoq z>DyH(^#rlc3Ugf7(_HF-&}F!n+l*<6wsB;4^1rr%w@}xs+gAz7JGx~%q-VX4pKSz5 zH%nm1U0U3((vL&SSn$l3O$y0wvnY@J zVqZ6!&_i9c?QVq9G5BbnE9cWq#+ba9QuEMFEH1D->X|37~1z>wz9)RtkQh9tvF8^)++6z14Tg(>tdVRD!-MCG++P9?2bFXvvb z4oczG!BlKiCcH{fri~@1a!BOxyyqGR1Ycufj|Hn_ySgkfWLMpMI8qKFE79X001>W9kLNn0goWy&VuOw&v7Qi z41oRD|DoWQ1OWUC=z@DL4Dvtc@L{n3`rW_31$?#t`}p4vzB&LLd;<^H==$pZ-{XJJ z10a~~008^)f8Ob#QPJ^M-n#>E3AR?hSrM$kGjfCgP?xvb59|aGDk`cfaD=Lgsu}{J zrlGS&LtR}%PfJ@<2d%degVsZD&^N>z>l!64Ml831YCb{_wLs}c-YX`^!Kyp zFIwBglJ<`7p5A}nzUzDcVd%45F+8IDGWzxV^vvwskNKYqi~q(20pt8X+kXf4|Abm+OLSxr$vdK_Gx#i!eYf(3`_4}q57WYPDy{X;M z=I{T8_Fs|xzY8q$|5s%H6WITa>jR((4qd1YOb2iQ7M`ED(0+X35%P1XZ)Of|g1naW z{*zzlud8{MK1bWw9VTY<2q*1cfDa8|7CzT7-Kk$3-MrUdPT7Cnv^aDcDR+`Bc3X#= znA)do1VUO)HaX4DRR&ld3LT;{dvg8Co_x^4e2u#PQ>dwsCCL)1 zGHK$Yqm*Z5u?uwgczEeYBenHTyQgLA`1$#R&A;g^B$~wp7$WXG*#dB|(>~sPl@@zK ztXoDq%>a693=z@vB@$QQt&UdORcKd4m^7how|Qt?eiSI}xY}t3F^N`F3W&3n>r^tz zwX3Chd=8JwG7?v>0tZXVV@!y+h%s8@#~CauwiJjViUwlTm&l`!<^2!LC%6#hhho!k zKL~MFiUM+XoNW?~b!WcFD++-L%)*)+Q9xAS-NvtEEl+^{hoAGYBNUSSdsUH05|Wy2 z7JN#IHyIY+vf!zOv?h!CI}rw8i$8?7f;;^f{xsnucFY`j2 zZR3wsz$vf0v>K1V&f5VC4YZ+l2`(sDSZM+5P#fU!O$27)m8z6zMq_n=-Hp64Xkl_hb-uu8{B(`ZwuE&q&ShN33h&@oF+ z0iteFI=|8p`mRJw=+8GiLKmCaQwordKZhR3bFQ|7LZnBMepDF63tTorU=7Z_z>iP& za&T>*9&=Ml_ntd;?5lMwg;7ACkRt@WH>j%4$G>`~Fo+{;xG|d0f{idCR(!yIw)SZA zc}TL$y>Wj=MQ%b;ekcUF!y=| z^PS5pIt&uZyNWqNjcv2tV@vH`r-6bia!4x_|ME+>clA5f2OPD|32{ikIL(c=S3wnL zD`Wza*raTXqSi?HsL#oCWV*lPXK{Xry^E$_WwZc)0)NF8SiA3?9rX&nuc_p~2BB;f zh{y9#HVG|VSOv!X9uCuyp2|e;`kI8jyTZ8|1&&!QEA_dJ=hg@Q`smH%&|&)k?EH9? z&~kg~51Uu_3Ww{5Y!N*8gm_?gzplNQ^A4F2~*?msxV@WVo&pK}p3mHyP~Ja^pYf=sj1yB8e&s%ErzjEixPk~-MQRXTS~ zIDDg{JquknDStNIxnpH@`{*k{LPR2NtwO+x9iy`~&uNRe0DiKY_cY<1W;t=qK=>+< zZIPUErl{-XWN)szpUAM|aw(~;)?j*|fPx`QFj$^S=Ynm_x=ff|T9q`g1e z1RW|UTaNWa>C7mzGO6TMpfd{calQn)Av0y}GcVJ<{d(3r%mihfN8KTdeU@qA;sKJA zmT%8Y%>|;9g6mV|(q4J#VG|4y^C1qh^kn&~dv?BCF|GkO(e}NKu+RmwzbOgY$=3{L zf>T-zl zlC5UStpa3f-oh9K{o;g3bs_I%*G$8rk@y1}ZFC|uZb#~PB5W17Q`UXe`1r}YEv+=w zz#Kqc@R+fb;d?XFMkFV0VQ==?I-X*16l@JYpzYHtkheF@xp(iH>;#@fj3COsXD!wJ z^wqET-s@+rLEzDr5UaqEvU>ZLUdUGf&-t-r2D#ySv5c|4Ee;T2#51qeZ7HqKVup&o zb8S1x-}8H(n49z4CcY$aj+agw)L5^9`b3j!(8DF|(5tj#7ufkq0}q!gM^=j0O<<&3 z3+rKv%fuU6Meos;&DP>OLtds&SrG*(blln;DN)AyT#SXsbo`~?U-qm7;j;ZiQQJNh znD)K|N*iKlDX@?F;egz1awn3l%?e42e~-c(dil~!#*+C{W3TsNMy{y&QW%1jUcjDa zoM9SUz)GwP^lA*FQgeY5n-Gp-NfFwf$U9c^EtsR%MakuusVHbTB>bB!f(p+ ziqgwYgh056ceen{akTiOK{m1A2Cq(f)({D)rsj65B*^auwlhZ;=2wBafMe9IolsgQ znIwb}jWaM~oOofAu{$hMBp+L`TL6OSk31}FQl-D4;c@OL;GX?wWLE|Eqq(}(fZ*dw zu}xcq{@wSY03tpXjh3-|hi{wCZ0=)FB!mLRT{-tWyzCj<7@q(kDyM5V#3Y0>ihun@ z1k;S4`-7bu@?tC~${XWRsG>=0^8L5$btZ=A{N;Y=h+#aB<>x#a{*fD8D7Z?xVe-kX zU>(30tO80D@M#UhAmwvK%icehUZhU00?Q{(o~qBJ$mXKmhrMT@Dsp~^Y;F~B>CWI< z)J9)=d=bMP;;3L5-^Xa(H!fHh1IY1Ya;N#>&-wdr4==Ppn&jYhuSCzj?Ju^BvFC)c z%4R;XvFA34o1RTN-c$Abd?W6_@4D*I-WI`)eZuJe8Mb@0$1e*!smJv=fY?>iIMwYgCNV%%7f} z^8WB@55ZDg?EHAX>b#jkySnak#yS4PLPM-KGI*UJFs9k_u+VEJJY=T-Th(|tsXv3W zBz^!zBh_3wuUz^oR*>`?Ue{uR6S7Ve?W1R8GGYS!m=mhJpRNmWMHpSOpoPVGZZ$01 zVaGpb60=B0z5)}lQx`05zvhoho^@!WLYDa2QEiXzVQSLn%o~RvO7vlwjw|s1CtyO< zB5F4nef{gb?d51y`QBqh@OmUn{(OX`D>jutL0&u<6}VFvA>SsFR;Ayv-yQOm^Ju?j z>cG0W%ItD#*ys}+Exb?vK5ts%9(=I(oZ*+SPL!he`xlz=& zQb($7H+#bk$>uzgyy2GPRcvO(Lq}wik+PH?X8d?0VS#}0@A@H`6{Bo6wdyb2?35Q_ zI^w8WLzJ~Rrwq5yx=dAXpIbOhY%N?~1Dg}tQg?0%_%qyku9}Kcgim$u)S8(Us!l+0 z{VnY#r^$6IE|r`9wE0G?ruG{gV28e2E2)}N6p-*vbZFJE@jDD$+he3ODLBHpw{d`I z^1XV~4*ZQ^qqLM<-~-qIY9uQK{4~_{^LLdqLKS#SKX-DE>X)breyqr;>xB~0pl5v2df@k#Q2{yj zEnBBTtLY*8l?U;QbJhb~nCa#m+ujsELa-GeV`jZ8W!l(P{s?vXyBhtOy%Bj-DKo4# zP%&%C%O(MeLJF?fbY?K|H(c>QzW!6luViZ!0aG{t3+Dms&kcv)GP> zo+hWaHEiXq{q!-m>}^qv4YPpIGAD!wwGcl*&|%3HFSP>-P}lp@Z&_p>c#A{2%4=JJ zEOs&;x0r?kx|;Up99cj-Fi%r6edwMpUFbr8yOF$jraZ1nwn4xKQ~cRKD(2Bj4m}`# zfJ{yuwb^-H#Oi6#`_vR>%QsvFd?{*&OxMeFxW&erMrtpt*Iq_U#iUp6YTdcx%Ju51 z$@=nyZV373xEaL8R?tZHVI}M;0HB%T9^g2?#g|I`{IV@2Jbm%2%heclIZ3FFjQd(K zK}H-QM<)H43=&z;Oqmn39pSv^H>Tb#<=RsfMcd}@qPXP^&h}Mc7S-hj;JaO z%5m#~3{IL|wl_**Z&_x2yj^Y@o@Qd?OVPC0buJ>5ZYvNkMY$p_A1$#Tk%*w#ANE`( zGB`#r0t!}sW*8X<#5fdYl)Wnj7!&cD1U{b+GKCY)@Aux+i+vL-?pX!ic|+i5fh1hv zy9V#5>a_*p(sGW$YR}lanJKq(eQ_Q{Da`2y%FM5$+7ye_dZOVH7gOa22@anQh})UJTTxM8?~+i zU&SL)8w?}4p)EKDaci!7;KIX)J&kEo*qJYp+J6nXUrthSH(4kX^|-=OZk`zhJ_b!w z6MhcUzWYdGcnH_xx3CIS8#7<*3Ak=q*z;=7x&j|RpJw?UeP_29KCfF0+;QBpyfH78 zt2FeSsodqd<>_H!*rN>Wr9O%D0buc`{k|!)!!KZLhxEDHYItTf!U^)BA{2L~z%^4I z(>}pZC+r=6p`E~O9AWE)#{|?q$H|vgwp`=IIAl-d77*L1owPNVF~G0X^u^hdP4-8g zsH2Ufi*%R+F64<8esC!_hW>o(Oae(HHd0PkV7BJnCbijuVOMB)%7zjCg6l|^TL9@@ zeB~zCi2{gIcuG%#ecPG6H)ZP$AY{_gS`2PoW7%}n%dM?C9NONKEu7?z0tk@*)h2e% z4tR?*L{6n8RhVcbeThk)dhPT`FD_U&=DdKm3Lp`ql(+$#m8r}?A8d^6!b&}`s}*aV zTB1lzJwX-=e8352;h48So6wW>u5cyA-($HCX21$#8+I$wCKApd5G3hbmCLIgDk2fW zz(tB0JjvX1Ioc-1XQ&j2-C}Q%m)}Ah^}M5J<`xeV zxK_t`d}kv4D>a_JRIJ1*4>GWKwn`FWdlEqJ2QUcaHPp*KNsr zOwbsAcD|Y*4H_U6#17s9j89)-H_EhCj88UnXuLec-_5M@_N?{l~)y=C>VFg^&pHy+<*ShRT?_^sBA9$|v_|%W$D735wn1GQK zM!tcHQ@;k)a(y%q(^b)@EpJn`oVZV#Z;@Jz_uqksmmO5KJ7v~iv}oQ*_?dX)VYWWH z?1+OO``#(6mGcav^0!2-zkQDMs_m2*DSD<`?^}&qLC_VJFY(fLtiMMK(NuXm64LL6 zq~Yt1v|X8G%Tl1W@7|WejINiZ{NM<|HMGjl7;;bvyBk+AJx-nZb&O!70C&3&PQ!CjaS%=XUojeu8+yg&0OnYof$t1TlCTWB#xrN46$)M3QZ@aAOa1pHE}nin6}n>d8mT7`5#;ztFyLQT z6jR-z7VUv?Smzx zcScbxvab+b%;k3;SZpoYY|CNyEt^676@IUTd5;Qt?oX@*S55M{=4z0-cGS-b0`EBt z8-eA_3n9J@@tC&c*;euzJN%TP4@n|16g)8WwtZwm!o~iZ%V-cQmU&C37obV&kY`Dq zR_YUR>#`QR#Sgd!bzFY<#zN+WuG4GLme5sz>GHCAl%iein9EI>ttE=!(UMM|p6Vxd z>y>@T=7U~?Cg!j^hP}XKT{i4Sd;6GZ70}RL-$Hlxmtv|WL#NqfNGox@hJ6F#t`NSn zW$iqxkkiBA)(wRl$51e1g68h4ZErYA;uuAIg{x3j&j}G!*s(+v{M({}j7HTEXjOc4vYfbN{nAu)ud@CAl$?yHF}iL%)OW+_j7gP)f5}26|GsnF>%y6c zUcpi+5dC~BUp5&Q=YwOEb@G~yttqTe{bydj zn09ZqFw(mEN9JWA^Tzpr7w@WwIYwC}56fS=SE~{w9tOAMUdi2(PPJ;4M zPBy~KgXF~0Iv98F?*5K!+OBLV$B)1h zro0^!p&sGzh&m8+HXiO^&u|FQ;t%<*Dv8>Vd2r0UK^$9Cyzo#U=QjNiEl1|7eexyB zltu~cjp#F$C~FPMEE*i!{vG-J@nFq3TM!~zcB{Qq@D4@3)aeAX*!n<#>e0agg#{pg z|U%;T@A%@S(hAEmDcT0WEYU3+! zD=(CpW#=ZwrU8Cc*1^0T5tB0l7b(ka?=vd+?86q#!VG`#p&bRTjp*axOV4E+LGK_5MdgD^R)6l{ftN-8sd4RmUalU$?DA(*%x@ zr+?;E9Q06LC`C*2z~D>2L@PDC>FjG;l?y=Tepy7rYz1)HF@>4m>g*-g)v14&)aEd= zz@(^^SzdT`qewd@<(I!+qO%P!H(SlW&p(AG0cE$Wzk^9SiN0+9UjvCX@o1ju^loJJf;4FQMX+8)<9VbFA zO4<;2!SZi+SqZP%LeAlT|Eb~Hu6YRFU8V69a7z4YhF%A@{=Ix|5~F(VS|4rU;8Ozpy!rq8zpE&tdnL! zwR!&BBev7$-2;udOakvv?QzkV*D-*H z)<)WnQPc|@4Eux;iEFdQN`vT^F1?2%DV3V;AHQhrq^!3(72^MQn{1#>=kR@un?RVy z7+5E+_6(1^chEsMheUjivuq?Sc-xS_zb)|y*L?M~#2|fR^a$avlQfEl;Z<@vPpCrs zD9nFW7tprf5b-u!quWZ>Cw`sLeXZa|5te(ttNYTFBrL{uRtTXtp+!mqN=2NUP$vm; zg5`q%xuft>^}7cME<`d$QKb%qDBl(b6gD)CdInsZwR9}2`C0Go#qffY}4jWHPX_I$1|DrmjT&a zW&dSI)fmFNZ$i~NxFS|Sn-_Al)rk|X&J0~KqPM#?ShxS_B*dS~9Q^hgfK8pPj*3Qt zl~*(xd)dHcquPh8J4d~XewZSmY>3g(nNnca;XeP&L)pq|xtHYuy*=x=Vxf`J<+@dZ zjyT#?u~FM9Zs|6m6+r0I%@&#ziJ)xJ_2h5X?C46Yw}#%#V>YA(J72|yZTTGNLxPpf zv;vTQBV`_q%I{!%y!S+)r6=jIr}R!O=kw09BZw3gl?^7)3s-l& zxqR_3^HMc#2l*S5=6O}!Le*pFP%hw>e%_G{yL0-4x)`T-njR$!g=TlUx)8*3KPvM6 zW0r@A1r?I-Q zkD?euLO@2JzTrsJt2b7fDfbJKowQu%gs_BR{fDx6qT-vXc}?Z-_MaT8qBeDFG@ zXg{NmzlP2a%vdOzUkpGvHgH&+3_l;!a~6^XoJx>%x7erpH}%t3@(Tq|Y9O!qjDi4G zJhn%1Y{sa=?dJaCAo2!*OEERJtf+7@rH8F+Wj{eO+To&H1^%I^EosN8?rS)G3*9gN zBqz=bn|(@ntimyx!P3({1V-xOQwh)v?mh=p#%2tY<<6)>ubgaokP`vFpN-U&ZVK1YYIb*hwko8^{CduOGtOEuff!UKQx z$+$>X!aNG#_<{+y1%#wyrEVrc@|YI1=?^)dF}Bdd+fnM;ayIpIA_LX?iL*HZ}bNI2jYG)}i^CeC`35CVW!ec?? zE>t`Jx-6jJcm$5Y=l48aWCNY4F=miAt&cT5>H!Z+0ypbxGA@0w z_HOaItu#y*w$bPXWVB3J&hRjjWMwqwFPT*1zor+f#ogo(!TO(XDR87Q*x7pg5(HG{(=E*sqME_okh;n{%cka3HEd(`in9$CFbODtTK`TSpL zMd~r@Fi5oCu@#-A8Jf`zscWWInp%b8&cMqA(A44gC)+iIz&|s!)cowS8xW}ZB7B+b z@~lD~_2+ub<7cn_y1~o_Lb3*yrzEVdU_CCeXPd}zp+%W7$}i0GpP=Y)3Y)m<262dJ zi^F3Xn3xtC0y{acr=tn@(KNI^Ii<+_yA~||Qq!ctjijZ3mhL#(u>7_U-F)7^^2P6p z{tERv?LQQkTHG!xc^>dG=BO`U_4HPJl&KC6QDy7*hr2CxDbH$DA%vXsdOmF4v&P^UQ9?*v>zcCkj^q=lW}+3kDU?Bw$u~%VPS=4Yv7wN}g{k z_2pe2GA6m@tC{xMap#?a7s@;7qu!x+9WJ|Um9gI&m8BKElJTvjw_QAu?%TOOAZe24 ze2THLmHcZFne$7ofZSCXm5g}-#iA7xPxX*MH@5pU3P6SB?7eItZGNI|vUTd0c;GlM z0v>@TDSF5A%iw>fQ_C-P4opi-WTr#tu&O-yyBPvfz}C%`tJ!;TTVpTks>wXK*id}^CLVU zA=8a7H%*wUuzbNUoWYi{;_gQ;BwG?V5g*uk=U;P9iIn&)S0!P#f{(18av1B1sWH*? zOeGzYTa%1ls^ub?qn#Wc1;p6IYO%ikem(sZ+pyxpo6F9$xd~_-NFmqUQw69q zQ2Rid0E;O?h_gpKCweycjP&%(sP9rGOZGqLNMAk3 zGp;QPZLPf;N3X!J2}(gE)V*^~GdWO6ZUh_Ef7i9mmI%xj?F))}(k;B2pkrrq zMx`fI*IZ%L>y9VEZbwE8&R@hE_}sFz-E-Qe9mJtKi;od;zx)qS@FSf>p_|MEN^=Si z0X4&t!&epdN%E{c^`{QMN4OmAF3d#K3V~<}jcCfq`cS5QVDlOilwVB3Z66sqQeQi? zYjT_^{%n@(uX&?wXQo={Kgpf$PXKFJe>b1KV-QbT@_Desk*aq|gLb<3f|%5420gC3 zum?1eY@IQTu?AXq#k`hwxXlcj`boYhhuzA#xA?Krktnx^Q?^L|7{67Zn~f=GFZ1cn zzli5gr}TVdoYfU~XSUAyvy2ad>iFFWlhNYt(zKxH z#DulWQHdef&&jY^gJYDnZAkRzio!JwY8_v_KYx5pSeFSI`n$matxv5S95Al!D^N#TtrQmL;NP9ppl(rhAQ|puDhH2z6EhBiG?Q6Va zqtxXVsc5@jf*jx`3*jT~mVqgST*MHq;!Ich;~PnbX`%M}lg~Vkt?Cp2x}PkOuQ!sBMd|7GyIvYO@ulH-UY3NG3Ja z$<;C8z$pXKA{~m*Xkkkx)xVO>PCY8wbiIkFv>Q2mb29~iL)Sn(+E^@qRisTL78(g! ziQi-8c_;F_M51*wR%pF(n)Dzi@A1A$mriHe?%julij4X5%}NUNd|0=t{`t+n$1%Mu z#E}|l(O17lwYl|kfwf%VbD?P);Z3?XsF(l)N}SfKo|ij1nndtZPT!|!2+96XW`36U zWfx18@JIzhsYz(~;xKD6EmXZ(2Wkl7*JahL|D5TV@jj-uKV5f6?Av@BaTq@uz079VglCFpXZ2VJsvVWS-cQ2Zmf2U48a>ffZV;hjov6-SGmFPXtRt)gfH~>pOBN&S*dZZ}o4p;l1ItkW$snV)Up3%>$SfCz zN~8V2JJ+{baOU0Eg4jVQn!g`v( zs%b2aX)^rxq@BKP||snaFP^m&(j) z$A9?Qyp@!s0I*h=n_5b~zG~ou1^&-O$Sf@mYCF2w-0fH+shR;2N*9 zHj5L%y5v36RT5~2ul0AuP?65#@ENHcp!adw{N(y)+@{%;dXaTvNC>Ov*(3nts)E+9 z1v_DRgXwk>Fl*SWc_Q1L8lr~f`5+d1rm>rfE$j=_N86oN0iT)*>TzQ#*~i3~d#zz;EaYdrkP-ktMpO$1Eh@3g)={?uujwa1`bjR!tjG|wnFIkS=0+DIN)dSc zaI>`NCk`7m@62#GV3`Ir)8y79<3gqu((Jf9FK^2zd`B{!c@6BaykOHP zk>zK-YZzYoB7K=rpmk?&mpIumM{NQW8~&joKSL&yg$Og8st5GpgboOJ7S3xFoU1i`afo-Sr=&&I*T;R@2LK3sC1Sej zdX-JT_saO8te=LnfLy;K=eM8%{c|RTo!03(-6cOG;O1(?7SqrCszd+Djz6wth_*YG zY0c#ACL|9vwa@(!BGwN)M(P2k$gIWbNO#|QN1jlr@mP_PSnb4k1@SF*n{$dFYc=?~ zm%KbZe759cGf{<&Wsp+@W)KPYR|!oHP{1$N98ajfb`?+< zW;x06GZni&u2FGS20wJ*_w$Gm{}yqbkh0O<#VW=cl{mJN8kG|i`D3EJ#Z-`P)a9SQ=hX`n z`!4jvS5Y_l;6mv9p=#e1P)}6*U}FOr1=9<*uy-+`JY&jJr-UHZXmZ&rU+99iQQcpm zIQ(DS-7uBA3N8zDf1y7x`9CVXu@Tiu3Uae&!z*U*@oOCfzdj`bgqpX1%CNi9KWF89e9w6r_)s277sLPkAgxS93!U9NL8SoxW#LLxLB2 zRu)>^rcUZ3YJ@6YkE|azNi8WrY!7*{E3hcDBN3~7S6ykBm46xD?B^ZpbF`H53W8A@ z>`(j`Qy#vG>=ta3-5&`X=}z@m0aMM_}V4%fb+Lw zFcNIjMeA44OcZOb%J^pgegeIZ)H3DiX`@htF!BykgLQ4(vP9%`DN14XLLJ#U2U0h8 zKN6lqa;~p^(119V)vLK|ZffCef{0dSj&aj(>0i7wP4zH(%f_OgjlU^6Yrjf)XF&tmARW! z`xQDv9>JN3*cc+1=R8avr&}+uth#`u*taDI;+ld1V$0XmsDL5Y0f@93EUOC+8yehd zs@yhRK<#qrB%hay;Boe`+!BK)wZ7*~^7Gk{uaP>#*HPy~d!m!YEGD(Gul!VA-qjq! zU?s52!}R_cVV&6q7zR(Q4zX47f7kznX!{HeoTD|i(_^J4XPxM91_oX?)?ZVrx{*>> z%aC9UlE0>Fcs&|CaRV;L*j0pa{#n-y~Flg^kW)oTd{=0J@J?rix9TJ@dv$;*UL_D;r*sy!(hE-+J(8IgOT-=D8*d~3V zyC>iD`%@^94~otad5A-DJJBTtLDz3Mjbu>hGQZ+^=&KPm7gZDFscEFs`}jxi~W2P7In zAQVcrjtQz~Rsx=ju%C-*O7=iJ`Nr(^Cg|Oe66<`O>TGb7>UW! zT(zqDjEVht`dpqJV8$_)ywtUy8D}njzQ$IAf1@UiWEsD|8{e61*jE{>$>A$=49p;v z7Zn_+1JX>|p_lTbl}KwrLlbx~C~LmrV@8v@U!02uaN=^OYO)+E=zth=WAih5H`>=M z6io)FYqv#}4?`} z<2hnmR9s`<0Arzt3S;(+F3@2={ihrB|JGPj_~lU&Xu(gn(A#+hmI=WXf+}*^H-ph( zHw2v;+wqX7tOG;-0^I}znuZ&Buib;u*uxGG9gd6gEi(==r1QKAsO`NCCsv#mx#sUMb>FcsDm!u@ zzw2aW<)!<8Yik~J>^JZrs{nq~YcKY^bSKCETjfIn5f=icbP#@Yl%ZU&9w-YzqRP(B zDOLeK9UcPHzuqUmD+lx7I}mhv$!?;g0Ehxtfj?0{`>@&_=OXxqQAACrdusrF=UD&< zhHSh~a{4|9)|Q<29e?)6`4Gg>LOeKi-_BNz07CckPZ>5=BEye#)TMV^7gqw#1E==xKo1~}o?z`lcExtgNY9o@mLs)$KaOOU zkC>|9tD@Y()kK;vGSy}$K;|*vuwD~$=xGwJdm^&WToR2`G0x-tA?_laF>u)K^Dfi8 zz>H3%I%+%5Z7R3>OyJxiwt-8>45|XknHEB8Oh1$2Hr?DsDbB4`eR~@|YPsw?UzaDd$*)A(LRlU&b zC$@xd-D2GsZKH;ExwRv)^PFXf%F&WIgaK)4ndvJ*P2epCLUIrd)x&-jHL4#o=5@}8 zxuX?l7Fpd;C+hKpVvh?2z)lXM`e2y3mAZ>nk_F2!cCowe!=nRP;W-~RV3~Q!#ct=| z%VGM?j~Rn=Rj?+_A?k*l4m*AKJtr|~eM)c*it76B$C@E2cEEKTwd$N;EGJx{vsa-l7Nqq2&^$fBH+lq8#%pTF zjGhf-jdhw+EQa@o7AZKa6hA;+9Ap~O`+J#rZ-}N6V1Wh;Q4K^-Ts%A;topH;7n3BE znZGEDmu+WEE&4@&eEVBVbd$ImRc4Mk_3DN4n~>oFoUI1w?R8j2VP8)tM1FU!a$y*9 z_{o*T^pyutUA(&0#7zoWpXgHT5DWcl?dh%e>%(7ZWNY+a%lK+P;c^l627_*Co3t&Z z`sxcVank3$Ky)^`Yp^dfvSCe5kUftGLl-)ko}RWjnyzi$lj5EQ)|o2VQvh@wf{reL zw#i1@$B_$YsvBmZ-d@OVm$OAidwa7x*3-ITm2?>VMj4?5(iX*)? zCUtB*dv&ZkKgL5p&S!5xruFFG_7KtWkXI;xzzLsbeSen=x2_9nOTva25@>GahD``| z`YneY1;2szD1(GLM9r*AvGww2hg5HnuGVMw-M=&`CYhFvdBM5YX(G@qP`p$0Tr;iS zoPLYvVKPh_rDz1S4JfpeQRmokO-`|;@h5N8ZLxN*+%){~#xZ(I{t5~(d&R~^kflf4 zc$xZEY8WLngC8C{<+|YW%Hhr(P};h(@FG_`n@(tW==iHQoDg*Uix$(f<>6LcH9Q)z zm}b`_8tu-=ovuF@0U$G|KxMo-8eWUnw0Juy0X7No<57UYwflvfS(wYp-zS!)8Z+HErNHjg>WsP97J%r737^$%XyZQ2 zE&6mmi=v^1&+mT#!zoLdOSg6EroYizKo9bI<2rEV?0RxWmqb07Bl|J6$6or|<9i2O zML5Q$tF0c7O&n@E^4T7ppLPS(CqJcF|BDjES<%d{8lAhh?}$jji+->Ny_xQyJsRpE z=ONJ7MY+l|Kk zQlhITx8@*-Z9BC_K_hy_CVtJw{LB=88WHw{Ol{9WGk*0+mTGfbX<|m%Er3`aaxBS& z+uLkw|K@qfvi#?FFEIv>sHt3Y?vwk=ev@0k_A5D9HfZm!j#hos73V{;`^=DbaHy(r z=?=PN#ZAS-B($OnVosNtLWX& z7x24FzQxi07e{9w&-DKP|MzSRX(*kxW0|Q`C0FDV zqpK!dJNM4R_v~rYe@Tuel7WO2IPLHRrA+AIv-8RBa1KrHn|!fHcgyqx{+GDYj`Ir# z$K_T?9xeIUlnBa*VlNc!KQi**$#gV1d9HG>T=%R`D$@59%_W0?ou=7Sp;&@agZrw= zp6SkzA9-T*Oq02P>3Wb_U}SjgbV9c?gA~e>a$qwXT+X{B_`L}^Sm|?*YG!!KqjXK- zXNSZpk2K>Ddb30X|7fv2Ce^bCF#GO70v=hvAP2px+BTXktCr1}T<%!!yfHdFMZlsO z5Y7%w2ts&vJJ`bdG2alajD0Cw<1zY1X7~c_9|5@21(^_yP#6;ZVp`VZ#6|g1s+d|M z+3$ss>>OQUaDrwu6WUwPdRFq4BvQibZ-K|Fnm;DY|2{1{Rea;S2!nJ8!ee-hiuX>;B1oHL!8=(#65;fiXz@ z;y!aF-5P5>vKL0Rd}k=%tS5DM`|r1MHq_loKBvK0z3GlW{ZC;4u(Y4<{O6V;OQOXR zFp&(__}={sj=ixmznx&bD~B+<6GhjKl7oxScIN+TwkEaGgzg$Dr9iP$h+Ziqn*y|q%p7CSfd(>98ruro@ zBNw>24&a3}SG5t{*4!*Nt5=v9_!QeeAY!MZ6MAm`kG`K8WDk);cN_&Dg|jcwdK zIY_AYq=cNSC79`(tlH#BeEX<69+}bye40&ePpW=$M{Csci{0Db zj2tjcIZ9U~AZ+V!I2g5q#a~U(|DRofLf;`_w%qC?c>`T)=jMBt61q;?IIM0;z@#uP zpi(*LK(E}}t*N;$qFtY9nsnhiCw$b?NS&)Eb7S6ZdBSV?c#@E}%Cy1LLXI%B1YbMt z0hqJjv~4#ApX#pWkz-4I6(864J%y1p+^7-I2*KmSt2WPfa0ask}`bI(L`?gmu?>RAN8kQQ=p~ZbERCr0G$y4_b zJJWi}#BA#(g0 zAa&~2&$quc%^Tiy31ju#-8#K@Yspu0k7?`z*NYGwdVe1`nZFmnd6zjd0CzugdZpw( z$aw(`&S~yXix4@5q|gEJ?6RZJ(Xf5ouoc_z=oy`9PJbybEiJ|Gf!%52TGc4kFeb55 zlIq|+=>UXDx4U+7-GSOOozzyB>Z?#d;b&cngWKZVMv8qV#NH5o60+5#(C^l!qEihK z=K0Z*$HT}Vls2-kWo^9`zMEs_AT_&~6O(^*jTW1ia6tp_F=@{BH$1f=))@v*jVFGx zmMD%Lt%byvoeoK*cd@t6x#T+b=d8Pf@j_rzcV@8#JvZBGjXNVDVFkk4OIe}-4v~O@nqNWI1}|=} zI{sYVp^~7&j5GYGQg=v$3oqK0Y)iK%gARDlgH<(^@->5`Zq>_~iDFp4+Ms7z#8>Ka9&|ga2m4ET*a@ zYG^P<0?1l#=zodBFj+_h`e>|Ci`c|kE?F$vZ)A z`0PUrI*DRK@1)|h8MDxE(|0pR-z_Z;7WsmZB0X%T4@g${Y4KBvbcP1Ou_B!7Ux=7S zz4L~C(-4$!h1uF2f7_&%lk{B z4;LS&qa67{JJP7{_Mlvk|AQL2ep>CVHC?FaZax*`MB-((>O*-rCfx+ z3(UIdX0*e07XKBleS5U)@w7B5nHC5a4(DG#87kOLYW~21t=>@)G;ly#Gk!a9q}3~+ z0Ks#7XHmZO-mlyZ`P?~oz-ER#On+VjVU<5Z9x#mAg=}v>(n3-w&HeOt)*Jtv>ja%| zA_Oi)UV05HOsgtull3M>4zMlS%LLP4TH2zt-_o~@`>o>M8bkG7D>zZpHCt}$X+XlK z#);r0rNPPkd!a*l&C(w4yM+j>v*)WK>W&i+(?GiY*O@SVJIoaoP#5sQBpJAc!v@+g z2-ch^7;6Nw;{3r59W*_2fv~jLykeFVWdA(#nq5{-{c4?Zkn<81Q@6{flTtrE zENp98M`k9(igc!U@vikB3Z@wcZ)>nW`?mAhb-l3`nx>sju;$|po`i7ZJ-Y~4efvel ztc7NI${lWHhP?Pq?A%S$>ra^C`or^snTJV(2`knx{gA!ojdR$4s;dXvO&HxDph37o%F!U3cHH)?29;vm;ULz6ULMm_M`jGG4? z^MtzNQrD&x8}=g|2Uv64m!xNRAzhD$&YtaM7hCS5N5^(WGnBEsQnSR!1{fW=l|jUY z2;pCr8uLh25sIS?vMP~|D@?}fTefM1jyG~q47L|vpbcGEr9{5b(PGWBQg{s$AW4Y= z2Tt9&(LF8TCL-!1fgzZ%tCO^F*@SaZ#%~^{qNL5w(260s+)3%Z?h1M5(qu5}w3-viV%$Q=alR?C3;|`+)4vRk+Fz=8-&%cz!R1r|6#VxZHb6cZh1!`m7 ztaxd_eVq4aivEssYi7<33EznF58$j%eDR#C;PXr?qvFf`+rHefOEesz>K=q$()Pv8 z2zvhHIv(%*M-XNQOwhTia{AUM=N0&(bHUMJM19A+PS4|+IuMZEnb9U1MDihzo4w|c znb+vRa^$Y#y40s-1>ZgviDTU1@L7@eK($~p9xbKpMz1jj#CX%Fzm?_FeO>BY;@sFU zKSr5Bf|tyTwEGWo4S1I;*sFWDx2{7EjxRh`^W5jlL)7bF9dm6Y+;seMl|=^;=6&Cf z)#mmdkgy)v*B#Pw#AYk;CDZ>0*#{*|`>McG*p`Mfhws=sa0S>znL1w`9PB~2g1}5h zma>GtOOKoOJb0f7o8Z3#NaE^YXNgHMO<`7P^v9*sf9Kfq$k^`X zKV4D-t7YwR%MqbV((vH7A<+)*P9tGKRsIJoF6QdGmQIO6VR;?;_hOiI1xB;%t6}_P zkA9ixKzGIl3dvHBx5f`iq{yf= zGn>Y^ke8hC_tegW>wUGYD- z#TtN*E*IETy>tnF({2JkGm?0EPUh2{@#6H8ZC$L)>^p)ptk3tg5SZOsGIi^AGF={Mct3L*9M-d|FX zNb=QJbe%Vkzxv)_4{AUTek@6cqa8-u+-rwf@VuzX{2xj;I~|7&ce`ifu2&d1=r~=2 z6r8uHtk8j5At~t)sf=K>-(!-7{2l;Xs57@C2mGymkSEkJJhu7>XJEl~Mp7oN(La#) z$3Y1Jb=8^?99MIe>9#oQYMlB&&3gi|iq0bJ*YKhp*s^l14F(}$@qT|tX?Hp6nMp4s zo^r7HQhYA$R`1gwe(Dn1Bv?;2q}cr*7tz9S*qaovAt7h|Mvy} zRZ!OSGh6DV?kl^g-)D4v3KSr13q?a<7Woa@@mpxGI&_T2)S+4-f_eFwCLq~j4WkhW z>+BL(nfqHF{PnbTG%r`%`lPkLz3exlIy?Ck7i;7W8a1>>`MrLDDWG(q(;5-gp*5tS zMBu`dlavcx&>KZZHy8RI9QS$WkA4m8ejdnkK={NBB z5-u%4}SP?(zApIj# z+AXdjX4P7td1Gj&s`!xK4y~6%YylTxUfp;S3? zJP%&Np_=Kp> z9&!h9C4OwhX7tC#KOZs=8axagsU)*~A-?njwA_?@2=dw(_VNjnRiIAX4X@N^3H20* zOe&>H-}{uvKxG&THrCaJcwG2!XsGpnCya#`E*}id(%JJ6s}1iJ1e`dKQbgLoZ?>KK zTlp7Ut|_U!$>k6`57g)En3 z;rG!dWrbETdX!O=9-4?Yt9p?exPFC2UE4;3rO3w_TN=JSOvxot?0KZJ2DFjy;ur_GNa@fr#x0y8M0qoQ;2T8Cfn1-p4lh#mO2fEOzm1 zM*N*!GH_FA(q!|0Ev784VQ0-MwP?@p!x4h>qcW$T)|?r5!fI9t7Q3@D{2m;qx;diQ zD>nLn8uFGM^ikMw$~Qm%)@8h$9zaos)$EgwuWSK zs*iGd7@Qa;?8g0EKMR&XL#4h}jT?@*TN@+<#B*hsL6{Xhk7_U>9~<-kc~?D5cp3U| z?ZOiu=XJMZ&70Y>?*Wis3v08lzcyrpc~7Zdtqs2T!Z|P;qX5$3+FLEzH=o)w&?8jz z*CG2=05Np#8X@9yJWpM?*ll6=Fjw#A-s06quy^4vsd6IG{JLz!{p2Un`hhhH;GA=V z?h}NJq^Gm@rCon;Q+f^ZR`-&w_TeIOUXV;Ukb-f08heu7WOhv7M0}XdZ|h zxE>X;q+Ul<7X44l&=!(~7D2JTO&_(91{cDG)MYnsG$MzyheKDWJnA}bNzAPeB_VDpXDka(-UVL>a`6Y<4BPoe^Cu_7I_HyUwp@-0fwX>}9=o+D?=9{m#U z@6~)1!jHN0GsiV%bii3b2Pd65hP!7M18=|l;!}#K!BE(vZF8%S%*U(KE#paq6{097 zNcVyG?EL_0t8L);pldMflbhm{|6dr(9KmGSB+{ig>BDt#Zaqn=i>v}nR6)Lq8=NOA zSv~T}=!4{EWUd}*PSdodIDgZu+ImQUYD%izROqE&;hZ&i-eTnxyf$*WVH$uNy;B2| zCK;Y}IITCXm)$h|0;s>eRDkjVVbo6a`n-%byr8?%U>B(~&h7nTfDwAA1jVk+`>tBf z3_Kr{bC4UO(#f&EVu$%n+U=-#_T3L|o>`{G&V#A4WRMVxZa1h7?M*oU@w!Jox$dk) zrdi!!Suk&>{pXBB%)NN|r})usVc_;59(~}NRW>6Zrq@A|9u{zc8}a*&_<=Bj5N0NO zbgcVcFvnLj@Q0X>2|e@Qx#lm~8LiQOA20 zlg?o`3`^_~>`wAz+~>HGn7=IY?^hTeOYU%bZ60bfqA;yS!YBVLXDldy7!TvJZ?+J39`GRfrMr4}=`xAQ_caj2hTz`2el z2vvOd%~z1slGYurO;vO}M#Ig7e9nDYYc1`OdaYOo1?R?(dj|2rkZ6`**v`eqwqmQs z(t2>9L@5R@Hi4pF&0vE=g}tR8Nhg~Tko{h1!ucw*G%eq4ARY_I3`lXj?{)fT-4$8{ zB($RfqqnboOZK&xL{>kCP!OZrQhLHKN;_tbkbNHwG)05n$mwc)6(XGYF~iTkb6jFE zRf>=32+Nb>#U=lxR#02@!wKu#nmgkw1WY>G^%iT-wAqU)36|Z{<8})-P+v$en1ciT z0it7DcedMIe7tZt9C4rFCM|8&*M&011;taMTYqs^J)3MTbN3%?aSRn<+|nWI-9xo} z88ce%LwY}EkK-8^dvqtIN^6|@MK>tt4khltVes7iK0G{~YGUwn^$MG6{PR%TXxb>F zJ>9|@dw$lnqJXo1%^RgamA1;JtK-wQ)uWVMaPqn3Q}mbF*L!kRQTE`SaoK%u_?c9S zx{?Hc%y39{_aE~8)=(JsIP>kVk(h(-`rab{!Mu)8)_5TiVo{B-j!bCLzd;2(W)~7B zBb3|S{;^Jv#R%l*`Cb@88U>P@Rn zxpS?M^^yj(@MTgR-jprwqoS0dDLunEs_N!)16??HxxLP-Qu@LF*kBs%`DoKu!^W*> zY{u+-c^2pVW>51{w{n}%E!PUJjtVb;MrFM7x03}OWNe|8Tb7f#L}^~DO4*`)gd>Er zGpTm6tbq%Du!mw7VQ<*=)lZTMkD9E4e=^?7@sEfP>pD0vO%xbt2&cz#eeq`2SQXlQ zp`6?oxz+(&2Y7aPbr4u*%acppQ&2*O%aT&K;ejOP7-;ROa6c!*FEBb%Sg@9404 z*S{|Ee5M-nM9fIQsG~W-+{GPJE~QuzDZYIOVIo7y7eTFsXSBf3IzvQZ1|(!ADM7i4-QTLvN45M!kbf zB&)~n{&WDbVO+WvBI+D~5s+4|Bd=iGP!x>H)Op?o1ppFhLIWu#fXUq9Cq5g6{3cV?>a^h z!g5I%GnQ997WBYRtEVQYC`q%0H9k!Ul$xG8ecA<7EeVkuZ}l{?HO1%QM#8cT#PmTL z0kPnbv4v--p*Kic%)!m)R<2#AMO0Pj*aW)jw34Jmi!8_*Z+ZA@*ohiIroP{c*LRPy z=V$K7t#4C_O5+BT|7Ng&3-NG+slfRFQ3j%+F8-|Adu(Z7`h+yTOy!a_$c)rsr7wQu zm~4ODk=qn!mf%0Rk!##j^t+iZHM8AgxtZsFdJYQ|z(XDqE8O}X#5s|+t&&HhV>LAv z@Ao1qT~x!Vx(JTP`eyv{Vh;~S3;_>G;DYXiBKma+^BBqa*q&PGUQ*OjV&k`RoXjT3 zMhVYA#C#=|K!~T&q{VEIr$*_R9^Vh_kaP`P-yL~>a@8ce4?3eVBe~AbSR?JV%Cw%C zHz>Y$+20m_lv{F0W|Y7E<$KQVM~sKGN)xG?<@t)Ay5I00bIm<80@mUOVRw}?!9TL+J|5`$zj^xVWK_UmZzWcixBx_iC|fuXlgYLiLWx!I3` zE7NJ50i!5FH0aSQegRZ2$RRBHaN%)*X4y^QRQ!203T-E2+_KIxc(64oWbI3njYPN= zFxrl0V7|CZ>0qiQinOfa22T$(rsRso)q!a*!_Sl%=`NM#@l?~V>>n2*(T1Q1TguAr zE<_*l-w=N>4EFAs8^;MsnI`SaF?72OpDjOky&84r_epmtTj;5wDYpH4jf`R*9tE$d z3J%N^wwW>BF*-&y^zb8^{+@46?@VNU4@gdb*gMs8e*rML2~U}K>oACX4L5XgpT%|G z_Esj%VyU#)SCOeh$o#y(xAQ_;75#K#X0z^#7iLc$%aD^2SyapDK9XYV3*n8iqGMYt z{tt58!n11;tXLbBe)JFG=k@)k3>k&;yMlxH&4xYr$};_%un@NJfLRSFforyXaaOH7 zBZZ@$6t{DJq{HD+NYYosa?-BQgp4&gJIrrpKZ`0Zx5E~)`MgUB->QDSEe`d(#Oeyg zVUyD#M?BG9nXB8p0?n6O{~mjFM-0hDgEZHO%4D}}?@`-S*+<`X=TCmVUG_dY+6_B3 zPSs6MvE`V(vkEPKo`)tM1MXrMpLX!}TyebL`*5m_t~_r&*S<7((@Xy4Nat%$3!SAX~=#!yI$wQx`A{_F8%Ib*6?g?Z0lxZORN9kXxa zyx&7M{)gwnn>;e=iB?kWz@u&FR>Ph~hIrR8*j>EgdXer2_(xm4sCu{y%J+Tt2>n$7 z3XOCLt)CF|TngjdHc_9~@Z1Ur!67c%Ljn$yJy3iKy0mViEtCA=R;rOQwJG^W{);4k z#88eG{|dBTnAQgxGJC=jU$P{fbgLN=Jk0_`i&mdDE&4G~eM;jVB327lQ3IuXO86k8 zjq?lr#DATa^_jqszOruNhTl=g40dV}!3)jsy^9~Ilks2G8L^c_C1gnqV$Bk(-kc=x zh0!ef@3d9dlcSwX@+t-7wtd1j4#MGr*ossdlm3cqVJ{1sYPA}o@H~N1$4}R<$5$zS z%F88<1E1yc^YE!TQI5`rt8?R2t*Q{l4((<)&6G&Vi;aRmOQ6QJx)@l08Tfk<3?7`X z0bRv2t0twGK~yvy*yVfB&1-L^5s{QpalFM2-(4$iwgBR=k>iE8h-C=#G+tSf$!&@G zKD3P-*<|gxbh|8P2iCChzgWCZ;+L>Fr!QxY+@s6onB^++_QUuJ$AP=s2My%T>Jzl# zQp&SKI$NF|ei;^Im|v*`oe;-lV?HiB%p8lNvs!SPQ@PP@iburp=si1L#;yafqH3^f zlbr*oU@~)vAM+L$$Q8u44>@)QMGabjz z_I4J0g`yMmX~+vYru5I&(3&Uj-4}aG-(ovHO2hP{<&43l0M}7@Il&_NF0{5VBu3Q> z>rTtrW!L#No}_TPB!K0z1|AVBx_3scRSa>lr&?tiiwm*yk}P&RAH;H1^^^!$ zEG`@7@P-5mE8Xt?s*c*Zx?aF_js#iM>I^bVng%5@|qlJ|4z3cO|O!I&Orv)B`_4inl8~?welLjay4VG zd47}33q}!v+uDd`Z56p*BJGyY7!)N!qSUyyJaSncOl~hsVK9RAMmeT{$s4irGX| zltbEAVfmp^5J>p`E&A<9qp!bRJZL&ote38jhv+x^{s$M*$9u%PeC!K@stgi>&x_z@ zfg9S@U*|;XGY6FCRl_-TjLRn4=rKicZP?_<5+E5 z_P{32hBxu2>~oPpOT8zqh8$EDd&e!Lou(4oz#mJ_KJxVXoEFElIf?Pl7i-L*30wf6 z23y~k4Q7)&{Z(f@k>X7pG);#%TEt$bVJXkGnc2kLuCcg)gl0{Kb)_CDRKqO47tL3Z zl$y-&I*-IEy6L`aX{lg&LNcGe3(^C@DRTJNmzf?a5wgf5>sf?M(`tEC&n5W~Q#S9e z>I1us2pb)FcE#6q*s6B6cCP~rax{R5=r4~7?kGmcu-^WTZH*{uLXuwsxt^W{-U z57T;4)vlQ>Ht5fGyItu%r(oyKtTcb}{0|qT={768;b%_YquJ2O)ebE=_V1QIW|e!X zAdo>7>1g2Glfs%2#|GC?m#OTj(ZwF$HQXto&DZ@`Pb5X#Im2Z4L2t8u?m;+DRK)(_ zO<(YjMR>&?*9#vArYk~6Ttz@4)Fu~ib+;l~-8HCifLm(#!pqN_ia>$sQBCN+6&h%wMEd8wM z5vG^F?;g)P>k-N)B7W0FPbdRv5b(Yau>$ z>YmbzC_~E@K#sV=WZjEk0jo``XhP_B8c71Nj^a}++QF7H0W%wx-dc%I17NWmRKo_ z)8uiSl1+o$>|`~IU>fTAO=FN6?Z&+(NRDhAv3_tC)yu!45CN=Z{xx`Gk1DDgF zHh*{Q5R?0Lq3^g^G$pYqQcE3*p}-b$`7fOjVd7mGapiTtAzBLVt_mmDV*vq4x8@%?DQ<`y!Zr7Z0PgwP8=@=&da$gbTgcspc?qUNEQ9?Nrwz7=#G#Ml*oxe#nU#iHtroigzO0e#ouFnv*n~r z7lX-!>?t4&y#d8Yb^}AccyMj+Mc|RMq=D{&w6oHKQ`1Yp0ZIR9P+%0zfZ@8}-{J$T zH$PxtHfCT|7Kc18)}Dt)evBhYa#l%Pk2PDH|NT>KBzxIy)N00 z0QG(m$fTGI?LdtH0Fky3b9;~N5Bu7dhBlHk0}WM&XuG$-^M7|By2XX#ERF)xo&SXn zGagA}es7i?3-a^uw9F&%A5I5n-Ob}Bq-29~K@8yzO%uXwiI7sk`DZ0!*YzV1Oa4BP z-TXOOoRkpwYU_jNINO>spTo90*CiyZIIjKzhd<%B;q!95=2mNU34xx(wVXJ4vut6$ zOn=Wf$qEtblGjPB+IY(K-x!RXV6HncF#PAz_kJZmMG;Uulc|IJntJ=iIu?I8Wf}|Z z3FA?lO-8o2o5*iN6yG{P7g`iJ<~Cs2+&oYQ5q0{w@6nd0k$MDJEkw~ay^6#obcb?P zbE04KYLg@KzPuba3az>2@o;+_L5rEZ-eBrz^+b$i6qs zPYcCF*?(qxQ`htr9f+~M@_VNB!Y*^21Z866lTb0^2>=;#z7`BbWD{~kOiGpOr|}uX zd!(|ll*OLr1rud(SoF|J1cbYUofB0B8Kmm!yuBauKP%*N-Zw5iqe8A}8_T zE0VX_TaUQ0Mzqsqevbh3D9%us_X~F?>9&Mdp%us)5SV~HtVYq1&q5iOU^w|ZVefO1 zL7w9EEex3snHyp><&a+W`WzG~;BzDaU>ka>Dwl3Eak>?DGIB)Xzws&ZC~<6IP84dI zLH5ObCU+~*58`Cc4*8sL%pt*tGoo8Qg69IxD%Z4*$yVI8zF6sJ&r6sqL&M(<=NPR1 z#4*e19+~0J>?L*T${ta6I9)&5MBkPoqeQ&pYFmkkXbpH0+85t1*LPsj;k`W%Of--( zrX&_OBm*U)ZKlj-$7yvqcZR!qu8R(+mE=SElcorpiSPS32YNnV=z>3Ku1;Ur#qoS6n|)}^!c{;$SVgt;c83+`W7S>o%*wqW zb>bS7m@G*;*G2O>&QFsN#Sd#1{x%mFpc+IuHN}5_WN66Oios?T0%!$3=cLXmBiuug zNW>5MusZE{Y~H)_Usz9ALeE2xDWOni-unlyEZn5@EX}H9bkQHXewt?u+w;TmdX3rj z*>d~$u~GXvo%3FqK6p|yCZC%xQ|_>GZ4e&L? z7;ESwe4e_?YewrWp6CQ!Hqan=O_3W(Tiq_56n3P>Fp+M~jy_24&jDbAL9RbDHk35h z=n|S4K1`zQwY3B2Hbw5%eJuu44O2i}kl&s7P$_-i^5~@*{$kI!>T7BRvS-oXQ3s>0 z87qSPuK2dUF{7z?Hm3Sc?Rz@meA#dIk7selUB-eQcGvl38z$08aGD1^2&XxQ9UU0DPy`sD5cO7S& z(N0EmwB^*=-_qcXoT@4SI0SB zmonqVzxO=dhlY;d%pfVm?)`aD(YoXVX+Y?Mp?V`l-K~`o#-EF*K{tn-7 z&lFCr9uhn4D=u6XH=&2!+^(@oqpnFsq17-!xJl!r9UUD)b9>=u8q>vq;aQ-5`H&vD zLsx?Sgaj;Y*@Ri5rp#F;qI5~vYJby5twImXpHArVK{ymV~O z`akQ}8C1DBYDIgB57C>qf>gk|cZCtqpV4tAh*1J?@wv|G;^o2VvEh{jWkUGq>-?%b zvdMO&)nnEot61J+N`~ZaFGG2?D-HW`b_Ps|1*0|tNp4fX*!eEW!bnK}tmhj0KE;QWuWgfXiW}WlvR9y~Tl( zBfjz%0uTQ27fdHDUe@RGBZwP6v%HBUN5}2^l&}==D~B`;!-Z~6m~nTrvF>P=HCViF zbxM5!uQd!hr@4m&A5hD7jfNy4{<)3VsJ=?$$<{>l9~ zf00eSJW}A{a~ZMzQ9`jtGIsT8?WSzIbZOU`F!SqGQTI+ft&jYeJiNm#+h=L1=-%b6 zjd^UQPMn4B2(?*m`0y*|!Z+louk9skYKLs|&9t=HS+PT@<#er{~xpyVeegA8iBKrfllY4CtGUA^KQLGqrX9*)u-=U$Ze5B(w3<6s$y^&pv9va}y zPT^3Pyo8K4gkVR_#9~ii*p#dRJb-;Wayl~R%_xz-p2lW1NM^_A%8VCRcA*SU9q`xv z%pfnuh!FeFsBQYGBuzQ$jyMMesj0g3dJ%AV-nL+|jekHpF=` zR8PpY?*aS6ILDtdS+BNWbBGcP?*oWU>m(T%2}wqgon39htxctp|BHqIVCvV9JNl1% z#=PAL!iHHBL*~xd@{2nLEw;y*KpbU^%Q=}hb+{CNj~saA9!$}G8Jg-nUmk`rKlr{6 z>~<=Sx@8S()Q!IG`XS$b7svhL$`>^XY!%`V2M@TI|3&xHsF8d@f`Ok_z{u?n_iX6X2t3JoSayM=}oH?xkdJ=DAao{ zDk0nn`aj6wrK_qbKV!Y%d**2_-@r^VwT8FW26=ef;#Fi@Q0nf+H`& z!c*BkL^J~a4y;y9L=h`egu+`(U0RJ%7jtD?_CSBm+7}S%+k`hw+EOL|Y-rL*Fpj@@ z(2_XBGxVJT*0{}iYdewof?4FLIW&tL-58(Tcpd!n;%bj*umIB8)vf@q2LOI z_MZ`_t2lwhO`Y*2?=If^d^_dpb4v;43#E#~WJD$ysP2114s-;mnwSj)FQT{F)gn{AdSn)>mz$Wz~sA|2wU;X}}Ab7THpQ1e;yXY4k zMov^<{i95oI)?WWy5MEVjDfmGThuw|N~9pA^_S~4n2^EPa-S;K>&+@B=tlpbbDWeG zAu(H+ZAGI)++dy-s#g%Hjp96MU!ZbJcS`Av-dTL=tarQ|ks+N(`jexBxOh+ZgbLwb zfbJZGNiQUw8B-L#Bu^SCU%xGqg z{NRR;4HSlodjTXyF8;G{#`au`Hj~OK?t4b6WVI3(Q+Sf4E|Z!CBq)r4wVxqC4hhMJ zSS~h8G7>I@PRGMo3JY&P-Nd$flp2)}bur>PJyor4rXDGu;}Pstlk3)+SRb~m=e6LD z@UYYEmkj6k)fCW?`=47ke&y!%WRH2(Z;;`6qL_IR zLcZ|03Yt~8_`mmNO3q0r?BN^D@NEjPkh(7QQnC>q+2sdM;V-P2zp^idmssPQ75bul zME{fMPgU&ow^&0)+05wJ-dyX~{xuIB1mlEg(5Pbs4FsJ7c<9kU>@?*9Y;^C@!xI*= zCWBIzlt%tB=!AnE)$DKHg)W#N*qowkHo7x4ZfrQU#M4TkLXVFz+#Dbsw?7Ka$p4+> zkuPb(2l+hK_k_iOGJV|vo-h7y;q1SgO;q16BdtcjgTBmVvJ_;6p^a+ck4s3{mXEX++cBYtcPWsLITrm?YT=MId<(n=?8PN$ zl5F>A%5YvykQzSf9u*BC>zyh^_r^P>r(-RcZsxVRkrE_U!(HsTL6xZCpUDZ`$}QS1 zMy&cBW(%sx(NUk1gL*gvR?ip}atUKnl|8*R*UW?EpS)HB)Bkw<&GH7%OW~GfyD2{= z#xlcxT5awb04fVMguE=PvSs)llR4>ZcE=e#fjr&Y%C$4oE$oJJ#5sDaV)%5Ko2_yO zSaBuwztH%K~m%8%N)@>bHnGuGlgRaYxrqkVmn z9Fn>VUT9&BRxJcvxB1P0&Wz#gv;c~DC!}lV>lPF{UuN$Pae!+H;~*n>cyoPEE! zacL2RMLxltHxi+5(0L~%6&ZUTYwE3t#LxQ|1;C8mVx0dwdVD|e zn}Xul1va_u!A1Q3ujx~Cv}4+GeQCs%Eny4S+g0NKoaS9K8>#f8_1oqX!s|X!nyk@- z;(WO-A#XMes07H&MOu);QeGQhY^W*;x_(& zyD;FVh=V1P;H3F|qyB$Z`G0gPpqn+j2#KKYB-bHs7Tn_%THZS0Sb^c$kIC_utk!Baf(#E#|IY$&0JUZaHPNEnIQou@{ny55>H^roAO;4N?&{{CG`jFt8^m$mPC@fxdV=E8rC{f~PxH|PZ$Ml&6kTOnhu z`?a18(rA4lg}o5S@Y=69cGo-R*)U=56W#m?%VYJkM@+6<_r&>5L;R==r_fCc#(%U(w0T?YrGd=ut zIap>t3zmg47;ze*%^ub`-CYH7hA0c7NhX-4&V6><>2E)1JWiDddlJ|lD#SXfG!9hE zbEgx(o0Q0LbHH6OIlVcR=S2j5h4WOd-P3xJ&T70^8xf9#W6C5r?2Ir%PVpQ83ps@s zG*0Vhpdln$C!f61B}3!QDp4L!y%sK$D2boYExg`41J}V$VM!SXT^)8&viB5_h$Oj$ zVm}NR?$OsAu;EA%)CJEMdk&?H3nK$lgqITLzkLw!)$zgr^g~{Ko6KkSm8E{#|44>% z915u_E{9NB4ZCpXX*h?xRLa9ulYi&XF0o*{!OK4y8%%48BBjI86tK(+W$`oVGuR=& z7ixgr6yHA;^Y7vr?4l49JJ;tJM%h!rjx6G7pqN_*aJj06(K+$Yq+jK`6mXL4E*@|B z=J59`L=wP>@OU=VfI-BTY}~5XuS4^4@t+9Q-TR`FBs)%*AE?m9h5=J2;qP@XKbaDx z3^FKaa(!g3^X1$Zc7J}3M1Apj`rD7&KRy?tQv`mHX(SSsD&TfoBSK5WcBZa0ITAYs z*gifT2H%!8fLQX=N?W@7%nmX4*`@(!ghC!|idZXSq#=6#fYrT8j2A&?{MXoQk54b8Gd1BvCw$Czj$J?ct_bX`L`C~XMKYa@j(s8nP1};OEfqUwC16JMxBuxC z8j@A771t)4m5X$iJN5b*JL?WP=MA7i|1G)=k$v`1w9)Msb9l4}5rXNIn1og&OY_{U zfu75Bc}&2nA@>gjlW(4nOJu!WT1Z>npx{Mr*J0+uRYEZ8g5N;KhGrigXx*@*xf92HWL4up>WK9*tO6{Dg(>AbrRo21bnf9y_x~UN%$A`U zqPy)j%ss{A?sodJVK&_N91_c+qvTZRTbeEBFhu2Eb1rE{w{v$V)tyN)C8NXU#$9sA zYGcWvoT>@m-~0ak>AGCH`W)V$*WvkmJe!2F`IqD@Z>=bFJU^o3B%(yzk_sKRd8~0| zE>EH{wQH2l{5Q=o31w`nJ5FR2d{PM-5JBEIBbQ*2UqJ$!50E7>qv%6?ULj-+yq;Gi~4c$4M%?qjwvIb4k+ zirikTp)|LT3qiLkZvksjxgJ2s1w7cm@bmr%J|2{*%cAb&y0})O4-lID90%}NKbKr& zII=Y49S63AiCBq(woD%n5FkLC1E#nTL&3Q*BO)(rB#!pe!fg6UBA6 z@91&mjZ1SDup8V$l2IPpr>lgo*g^M?_i~@zb>%!^vPVv)PyrjK`kl{W&N#^cs&l+; znK3U~UX85{llRH(8?QZM4H2rv2WY~NKKJRQ>J9R+5A50gigc%nc&me;$26}xd>}Z0 z_JoxY`ViE_yGmBC0a!As;8kHRqYjhjA{a0GkKbgsd(KC@mZhd`v1Uod?$_tMw=$ig zUC^a4jFC0@W6JE5$1iy02xhVjBw*B3<0Bi|%`G)ZM(0*zU|z$rD&LZvm)mUB)jr#1 zQrFuzX%JQ{?3Cj4rr&Z5 zO1?6fqhaVrJ8P+|*m zLLnGeR#-!$-jd{}{*d(}{6C;LyB{M^$Kg%(Gl`DtVSy)1(B; zozM#UW@gd`(gzatHHgAhZ9{SsMRH&We0JN)DS;xb^Sbtkwg{=p!xvcU8sdhA0Ryg2 zlvAOYlAcjj3D>RPVpfv#Og^_>b>KJF9`_e+c$CijmG%8A{dtMpC;df z$FN%3wTfsnbk`~K#kE-UKddg@>#hMb@Y*(^$All#fn0ffhle^gl27b3$QNh6NZjDu zN)iu@%7V_aEuQ}{o^uZrc*_Al6*H|J_?w)fTc*adXs9H!i-@Qeh7G^3?($+wvJn$) z?J5|5R&+&)`87c2WO)K8Bd*btEWUJ8!Fj_z?jnb=G(&J-aRY}!e${-Jq`QTill4tr zQJh>BXZD?}^W!5*fw_s&erV8%^fs#~DLm^rpNBL`ky6fv$aE1S<)00$G}}##wdx&Rz*P zxAV>)oTr@5Kz_+UmTLDsheX$YXOwakSUVKCmS~%zqE+`QTmzcCwN>J$?i4RbO8_Bp ztaDKtJ}2)nR&}Q?01MAxG-{j(!e?nRhT7FVk(0P)xl!-31Xu-pX#R%lzVjmZqm*iWK5v*uu#v0{Fg<&YvRvr5AM$%-p3w)IC; zKy>y)qb@n=%Vd4UZ$~tmuZIU`>=s;2G5?q%K3V74HnI1}*kYvl)qlmhjXG_cAg^^R zpr*y>!kG?V#PP!wJ8{`8?Y@r-iaUEeYtC59ov*BpYRFc?iyAdn*Cm z(PI=+MB60GPmO7d(&^AAgUW&|_rK#IUV!e7Ko<=FterE7&cvv)P z8Eg}-l_S{$;Mlk9gqdcyxO*ZE-kzm2;wnNwjv@nAl*3oHxG=oU_{+6otkPh4;c?~n z^CJuLdVuSI)h>zs2Co?={?qfbIP_j6%a2@h-y0~P6$#V*WxrdG4Wb*2bSNKsIx%og zGAM#5jYtBrb-IMMv9-dwwzyh>n%^bUWyV(>U>ClavCg@Z@4HOym3qA8{0mO|Vqn@C z!RBWKIXJ;VM_t6M^kp1X38n7>4EF9fi~UDuLnKrzQj%uHr>i6tyT>QPd88gV zuM!Yowcjqm)P|Xs#2jC))siKgv|qX46MQ=gz<2ZLz7noE)+67-TiE68eT)z zuE+U&ps07>{46)Z)<#gZ{@}lQe3bltYF~ANd380?VOE$iR?uI_zZ<1ksZb~X+)J_9 znf=7Y#{9Kl2}ZacIdP)%fnt6niyIWSDT6^)0*1NfUTFY@9=q=%se}*%1TA2KPSeI> zTz*V?-jT@Wmvj?-HlLwlj*7_G9ynD}w72p`XB=5-Jjv1X*y8f8Zxvw*t&;l_^!6-9q1a!*K@bhfG=zVJn)_}({au?L|i4ejP= zH{!N$+Cojk%3m9BQ15z&oo^i@p{%{Xe5pI~_|zw06w$smdf_qu_luT(qg<0qqJ&_!eY|Qy>yy+;ITPyd*{FqBX&ZufOmMncVzrgw>TsvECS^6Q5m}*nWZ(xxf$8uR0KMQ4%Ek9+bWNFZw^S5@AjS z6tRhA!@p2NX#*#9>Yo*Wo)QeR~PnBx)sOVqtX< ziEK$d_Boln)D#^2PiF=VhJK4tp!7$w{nDFvVF+fMDM1CVS7R{chpyW!qRYuE1M6-` zJ#r!LZq(+DOX6Fn2aH1C!bq1%KFzgz`e`nkl9stVwei9HKtm|d+msZ#t*%)h zu5)ar#4d`|pz_CsUAUxfGLST-#%SqgeZ9=2d)~VBj;2|-F-lfQcghr0-5?_IkNU3L zwyw5QnnF^3DSK8pij!AhSv9dDms#=Q^}pb{oHt3@Jf=YyeCLlWFQ}+$GU|)ybOQp8TmV!ivP^4HN#)Y9?$QQ8|LMMXy0xhez+jC}F@0NbKLW z9)t=XI$-VQ)`lpX6+Bv-f(5gN5IGAu63~$@_qj30ZCn;K#YP>K8z;_s;K>xv&~-t1 zwHuz*b$@3xfY!s%t2n)?hna^LU-7>m+N4pnO`ATbC*tK7uL zbxNG+P8@OPmy}HjGfH2nU>iKm7giY1*@=>Ap0`jcwKb)v89J~8%>1vf3pD8vUpQeRH?I|pFJktJw z$x`3UB2~jKD{5w{Ybn~Iqo<~t{aiSkX)tfAfzT!IJl{E4BpW-3=8miYs81~OSMZc$))Py{4n`V zurD;(dS?i+*iEg|Y0+}SiV1>N`%@v=cKiTc5`hx~5lV#XLB{?N3OyJ(A<5K&hlOpj zfMtYCcmvwv&5V1-Ia3wB1^!R$F9SU^X4o6IxH1s)2gktK@=i7_JV(0wwMpex3ztY} zvY3NjWqYRX?p5}e!Sxr6J;@Ra*t6C`OFbzh;IB;P4kyKtKd@r=e-%_hSR9kc0aTzE z%wnNiH&}-2qvrd|Sz?YKQN!hXQXScZ*r^qxt9aYEPp6cNn+N%r+upVBTopwUNH6iK zJiCFVhA>^fzq5GY(E-=NK7X~W+Zino+`AS^YXVl3HlB^(ZFafsLr(fs*AHZd6RHnt z-MA1R}E9u z&Yv&v4J_PF`Ymju-t(}?*6B~5_C(w%s%s6z=N~*}^>}ZP!rG8#Zk6)EHcbu{!cfgG zjUIT%!&Pjebg*J_mOC%r@&?~DUh3D`}Bb{kDL9Dgs)dnk;cV+%u@J?MAY4;$o z&@)A9EPAqhWgvN!HLAR^ZH_!yy6h5(!~F<(WDOu6?IMccMrq&sN_;sGa1 zFvgJQ363gwY?uvK!1m@j&F>Ume7=e4+y}p{iVw|9yZYyZ^ZdF>xPetLLJi}esLh6{$2g5@7Chz+31SSATbYv9#2 z4IZ7-0P41faqz$CGPGSj6g%Tq-Aq7$K}B^_w;1f`FAki+q;n4M$5u zZqYc93pgm0w{Q$JtaG~40FvjL5b;a)lUp6}aj8*y*~F_Gp`cCecKKTOjw8;|x|w4i zAUz>h7X5Y}09j>2eVqkjyQoyAhYZlN%SG_-w#8;ncKY53q`5sBG zJ5&REO`zCiTfoYXn3M*t0oy%eOF1@elNbxYLaS;d&U_V(PQ8eU*F8zXMKFoy|B}`N?8ZHzYM$MyqK?bzt4+A(S|G{#&@Xqr>0ZaPF=a%YyOeg zrFJGPDxsS)1*vRpvVnH#F9_y;sSOtmzy^u0j*J>WFSB^imwN3s@8k1*@V7Z%*HTtL zsQGrY+yOcZeRjDP>iy|LIfAKw%jkQ*g`(L^Cpe@pBP?X|Zh?9#1MZ0t2aemKJWj6Cm?>Po*qZ>w~=3rK9?QfL6GLUb5Zj)_op*6c_diANb z5}zP$sDoS{d6BzEIW|2;fNLCcNTh_H4DdgYY8~RuE$ostg1KIZ@)n^l&^nkCmn=sx z;KH~2nbpO#Y5L|`Sp2=5ftFWgfv2tBU9Js*vcQax#U29Vdtb|EFwE4*eNc$Ze)_iD zQ0(~vi4j3Mi~ss2x6N2@IE%IaA}*)(n#ruedv{F(ubaAzZ18cPj2p5ur3(fIM^Cd-W?v#x&hg{ivf6IGeF%mD zdqxTgAS2qG(pnex40T+X@R2>m=Vl5@Z7in&OA(Q1FBTn#Y>GYmImVj!xRd4Se+zO( z`m^#*&pwko@162)FRy>k6e>_*fi?cNhpuP zuvjP}P18@;oRbC?cFB3AM3h43fuEQ0_yL3obH}?ff*}5N2XMJw$zU8bwao~l*6naR zXCXSB)kZ0}HRa>QJ8B767KHitbADuRqdV~x{J_#nZ?Dr}?5Tm4rTPj z_xK*IG~;+0tXD+1um0{E*uUMdEQE$?XR%v3F1#o6^+YWhI~>X4)9a;ARSG;e>Pr~Xc#SC0KRUyryEjSSr&BEpoDaI- zc$b00$oL`Th$?h8S(M8C&tt!qN|5ZFBJgOfCpU5klh5REd|^5Ki0GEcEk zOEj&rIv7WWPGK6m;>%nf$-hF_Pkja8*lCaTi)0?4TsixEgm>oqV%4*X>u*DYZpRnf zbldPU%OJ1s4Dp1`rLW<@rY}x1-p6TIrQ+Z$33AGPj`y0_7J-3bs_T(=4|wr|Y%o0|Y*3wpLnll?0<0u2z0*Tmj5~53%zi*& zWPj7p>{L(ZtPjR6+VZTCO(8I&dL2q!t-f!IX>my;&3YM3_AZSqnG(sx0>^;&fm+ey;; zHytdt8IlDwlQ+ILIlubBoB*6((5OzTbr2`*@9``Ut6aogAXP)}&Mhxh%LJq^wX3my z4n;X_|KcEg?z9jP>}=u?mPOj#gKWY+wbv7P;yybw#)%?D;wKv9E@~z~+(jv1dPPOs zv+PFl14R=yMdELL@J!1?T|4YLXX&3#-fD+8L>8$S5S0ov2Fvz;^Vq-y#EQQdnUy7V zn*tBH1`am3yj1%~X$?Z>-WfAa+9s!h!HiQ-Y0_lr#iLeT&E_Sqx0S;3Mm4~)BQq7q z*`nfKnqqL-c0S@3W(s-QL)VXp z93#X?ae_fz?9Moxu63&5As_@;93H!fSTO-7ms6h_#~WUs8l4|vbe4osL^sv_Qry-V z24Ti_{^Vjce-}-1##mF&$@<{l82NzkW2_x7NPeHFO|d1Ms3FVdDqYiEG557S)DR;=FLR+1zgq4Lq8i`8;*0W zIsg?KY`XC9)}JV2!R5vwMHRb(d{oMQiBTeNK#0xnN^?HBZLldCY5&ELIbJ?_1?Z{9 z)A(W0SffVvqFz=(9hCk~h)P_(nh3mfp_hS$RAX33`lxe*xZ%jQpGS>t$@TF*)#?31 zNN}AXB5uAw%`@GGlJ$7T9i@Zbv8MJ>koB&cfE!RDf!~C74iYNzYl~m_l=^uj1 z$r2Mf46Z)64mP}8fJZ68*JDde1Qu-Pnv{Q;Z{6<&nhCXg1-XbS-=O)C$zQB51+J1p z@?8HdST#np&X5AcE%*j%nO*D$&s&6wHa5aIVg~KFR1y;uIhfTu#gA_2zjjtt`h#oe zj69Lj(fbs#&bnu<5-NwU1Z;sNc2iwDs`@MMY~@;CQi{h$KE37q=z6l$0wD(+f-aM? zb0#*VsSy=FU=IEXrEIyM8fd){)-wyD)h0~-C@F}bN)4{b!wq5P4Iw$R`R?LaC_J6G z(TJ0{(g*t*oP{;xu|;4!0$SfG4_)t2y3Jxn(40=+DNL^mj=?%d|ECv!O2JUmjXJT) zvdda+GWg}!2OK36FMxiK$A16C=fLVm7FqFOyZ2b|MVjpJZeblDh`4Douht!Ss4+PuFxIWSm zd=p6Bc(D4I(xyp51gNRKqnYu%XJ6vQdyIs@0!5h1riBP{NI;0g2qHSi7xA1Drz^m5 zoYgy9@cPDoF2xcOQ^dYn5Qe7@=hbSla*BOGs$ znSi3sN{!%PexE%3u%&~h^ZElZFuu^}y1Z|Bswz`Fd|BWXrar?;w-^~Gt?hzf`*i7E zQbZB}%H4ESAJuWUSG^~TffBBDP%88BYI&JXh_<~SYynr9MT6*%b=Vv8961zlNRaI-8 z5AYu0f|jxBKn84Mt~sIJsmg!x?Umb`;(Gy}q;l$s@zH%~nM^)EnWe_*?c-e$PQA_# zdHr-E$pvdhX?r%}fnE2=vr-Fg$fUxa@A_kjwW0$1UXJ z3fR!8%>*E+0E|I{Fh1Hw6;K**{q6}=D(U#F;tOz40N%j4xj%w?0`|tL3%0s44hh{} zlPEw92WHG1O>{Lk>fM7(r(iQr@F0}Tisi3Y7(aof#Q7m-t0>r{J{O2i9@mscf{xpQ z0DsL_HZ^$YWnRuXqj7KoQexrDqSe@~&Vx}pjQEk&d;o04xWTpCHryRCIUMQJz&>gV zJFT6|0&m;0j^v_s6j9GvJce`uMeC|}{SW&Tq_NItf-2>|Rp^#}fG>8qzl(B}cqS*0Ev#xdoGB?gh-fk-xnyS?gNhxQ)!m-ukmg-%XvZz;t-oxN zBRV;u*VFIz9j$tiNschuce?J*F)KCfJfEu*N!v8*ZW90Nu-C?3P&_tqW$EWgQn_-Rtq)$SE0QQ(}^73TW2-4Y;mQp8cac23k{6QBS zml05Nl{~fUBk{@6u?8%)%k6y$hyHHhFUa)7D8IyK^P>zMxWI|+lM(t2e~QBPI&)J4 z`X0g2pAeh%x1yeMv~l~^L($>e~#MklTq$fN-6 zaCxbwN0~q|F%u14l=;S50^F_ zYRD-n$`LFz zY(|n(UzKtjRkw4jKr(auw*fb}3w$Q6zvzqzU-D^~vjzUl#9?2v%F_inh?XeM99_QN zS))bp<#<&;*GZrTq*U|cv^)t&khA><{2tS;cqcB?>AyzesnG!KcJQdG70#C#--DU? z>KST%zvFu3I7CLer13xnf9A1eQAsfce5$xmWS)x6ZIt!Hy3?KJY3PXmK?yvYk^VEm z=#5LC@)MqbM2z3GW*3dF>9R;7I6VKqSADlfGG&TBwLk9u`BS&VpAbXFNRpSjGk>{( z)Xoco+v)R?4W2AKN7P4w(c_*h8?0b7su6V4J2h5x#+^P}iCy~PaYPa8=r=IOEZ-{Nu z;u?*rjXIEOceg%DaHavkq?d)~q_)p(ufLsVk1Q}lieV5R?X=vuFjMW|qbyke3vo)u zvs+B6-oU-h{JZK3K*|StIEyX4H+5rHA9811A6BKFjUBFIxw)Kf_itFJQw-Db2Krx-Uhv>E=UZcQ1Ng;Mvb76nC=^XRJ`ahR8f2rd(pXMs~Q8+MfA^can!6mWw zxUx!mGxmkG-%P>>ZS&6w0On>JB}n_;ml0lwM&c?QX3dQEMMWa*nFo)}QO@EfIU8K} z2j<45AltWJOnlxnOm&+o*`?6S$wuCAxoqp2KJM1#RO(U_Du2{6 zSB`c00=~nQ5W&uCmVhf}OWAZBEGO%u^T6Iuk&^&-nW%M#3wiGDTepXpqgfKNS<>W{ ze{Opj*Ygi&qbJB8bxwMC(IpyqdC6-qflQn~vlSrX8tiMfVk&Ew$p*#RH+Q#MdYKnY zJtcB$X2Yc+An)hVYs0cubHpjL#ZS8|4YzL5f+YU$c8RUDlc!4*F@s z+dqY-W~aNNerf#}W3=DTDSC4CTMhoE!>V}vEx)>jK2&RRxjPk=H89M~f$e>w z$74D{@m}iIh7G$*oI9K`5-rzZ!#(!|sn8GhBV4C9nQ5}Zuc}Z%8 z)T}#wWGGz<kVuF!6$zpb>u+_f**?oCK3wwsIYbw2-*y*ycj9?jlzGDKb_>OV2|Sj{O6 zEm(@r?oj|OMaI6Ho84zs()MlEu8|kv)zCWiVx~{VK5@xgyA>F&j% zd0sqF&vUl)I@_2(=bxaocT}1N58I|JnXIMmIXc$%bD<|0#9ydox4MJJ6jY9huSWi& z{x0w*2*&e>244MVLe$N({UDRWepH`*pR4Vx5uhQ!<@o+wDpJKy%~5Y!VD9WNd9Gd6 zxJE6r&nl6~hn8joQqubVY*yLQ2Tb^S*3cG&5Ws|{V%@dT(s2DFjx&!Hk({>=gG1j&R$aluZ)W_JeAxGu+CN7Eab`V@ zPe>G}HBIVTD)h%e=jD0G@lAJy&RfPg6K1-ggBVGQFf zhXn>hQ>NpEU4kyIa(u~vv!y6rd{d_{y5IwGH}|*8LC7OwUye>_N2tzwbS$*DF!v}V z$Wi0`_`*FWN0rdXlmJ^f8i$MWK(TGC(ywD{g3<%$qnrT>`B82Fv)x5itDoLdKxfNk%CyYbk5QwsSqw z<7^PRE)=&zT&nFM77EhYYL9*Y#TzUQd#ng&;j zV4|#`hh!_V{hi&U28#r8EKXId>m42Em$s}JJaVuslG9+~L4%w-IGd6oFJ9IWO@a_{%P~7YF8VBOSo6{{fc4sK#wd zk&;6nW*$(F=P>Q6x-Zh{MQ{JJ&>0a7ll(nZ;Wu{9b<6_NO1y~I?RZt@*Y6d9O+lpg zMMech(}z@+X*gqMY^$@MKX$4DI$TyI#Plixh|*^V)i^I|pd#9^hWVt?Q^@jKacf)y z5?;0VZD6biQ(t@}{358S~*c zQ7+Ae<|zIvYoqm8D@BHRL402HWxd4siAw|_nRwct@&K&vxN8!&?)Df};cu#`%! z-T0*X&D~L)h~1gP#LI`5f&oK%8vmaHm0e(GyfV9(YDvF zG%qQX!?r%McDX2on;AEY3PPe z0FRf7!Iv$7T^?oX3OXasiN7*Xu4eE9fp^wr&EnS=Bf*!hcE-U#%-}5k$tJ%{{dN1w zR)xHMdukp~B7gGwv%@7zY{qA(-Jde(@jeZ^Xl|c%nP!Pbrqbxv%y_@uogu%#&DoI) z|B^ZaWcM|UQnLm=#5$g!T4)8a3E(Kvv9;U!{4%&JP{Z@V&!m6xu>XThj_nP-woeW8 z=(~9qhW8r?v9eR-v+c@m7u`&hZH8K!7*tWNX965`m2nnAjFAFx>UJ&A=qLC)jf8*ezh=u;m zosyXFGOSs2A*K(1DC_(Yv&>T_(|(3v&=ZNpXI`+1`H^$Tf0vvSsE^!>r~Qg};?#RAN5p9@TP#cafrk$gr_R}OMJzYGWZ_c|Zg1(8Xc zU~P?Jo%!Q2^`wt)Tm*{6l|i024SSySI8TZDBF~R|tRhYcz<~qJ!M0;m`9-{1lf&KR zBJN3~`Bm}mWkBT=h7^Nn01~B{S8DsqMaP6OeoiOGL^)q;1K&)T=#;1@EBdz+J=zR! z`xD3w7BSDrhac9JDzQd(svNHzLnmPv^I8f*2|_8MIjN*82|2KuUt$~*wOyx_FC-c)kQ!{12I6!=WMRdI5VIYbXymO4@4FZ)n`ysGajSpi!f5zYE+|1J^>h8b<7Qz!K{?O9 z;y{Z#H_a^w_tAK3P4(?_mo2c+&{G(_&*StPAiYA9*TH_-azX7b1il80>$`t9#p2ho z@3WsWZXrSZ7gZAL7RGYEMN0>+SLmAKg9&e`OM?BCJDcqmw(EoNs|-pbiAt zgIsIa&%#qC(v^WL9P*~9M8FRZO7}N6fR;w8-l|!v+pK3Eh?{ZsG^w*N*%4IWpK5Y4 zC;;|B6I|^tA|$oU=seE8;GLOi8wBFv|U%5JO&~4hAO5^Lnt#eAebY zhu$2aCKEf?ezQ)%Oatzep|*fF)hRYOeTE;myWkdSl_(<2FwhGbk=-`yY~P+?rcik^ z1E3_)#fmMOm@Cj~5Tfn+~7T zo4h3&P&$#pJv|2N*$wh^YQKxB-kVn&Ky7=Edb{9I=tuW1@T%jN>+pKT4tx~sTR<2Q zr!W>)LpoP*jucP(hX(jYN$O&eJLkzqC)it#s5m%Y03I?r8fiYvjpx{=me9IMJtq$^ zU`P@MTmmNaBq|bo*1ZB~e_J+<+?#`C$&t4V#@oh=2J-DLs+a)u1RFg;$l_<^!;Dh( z`Z*h0SYtv-Y_K|A&i`T*12IOvZ*q-`mnvTs-b8C6cqIFqxglq}**%CK-GwA^=-4i3 zhuTdU7%qNW0&4#@W2fEC%{};N?j4$V$fj4QwNd@BMPi)*h^jJfE%6iFc4e;+rurO@9kmrHV{x9$D#!gwOT) zOYp|p?>DmTa{SnfHp5#csi%M(qBmLsnH!PRO89eB$IuSR1tBR;n|MO>6WVU7w;FPA zBlW_eNDd{owRg&&mUuB5cF;0K@pY;ygi)-DNi?~VBjkC8!hpAszTbe(^xVy7gGeKs zG1{8F3r=<|1w*Ot4LN{6&Rz5mcods zNiGl=fN#*6!8DrVZbSUEDoNh3*U*r>IC-*cqoyrH!YR<6@?GSJeOzTpJ_M=U6lsDb zmRs1vB!E83GCedxcgE%HIsymW*6#`i{ITrB5oESEG!ffMGELPRFldd+Fqt%4F#KGr z!>Nr<C>WgvEM{oOlSb*lpzYRs{^|z7H=4K^eo1W{Cjg#eMYt+Pt zu_b90Kf3qmHk$%~Th`LmprS0EAK2VCBI1r>T_QnYmTO=9Vt>bDzRkj1#5H!Ydh+V} zJ@vkv^S16sJqctj&Gv$ z!Wa-RfQYgBJzy3!6pWWQgv`@m3}}>O?#!8X2OcPnr%R%Va;f%+MUKmMTo!++Hk1^a z-h-{)5Fp~(NZ-O9q-XksG>6~Q=c$wJ`;kYDCo2sT5T8@vgMD!3$mfj9pK^Tml3@p# z67Pm>6C))pBp0?|bp76$dXl0j8x#MHp{BlZ;3`g@pV7|^x`m%Tc_r^lV<#NSW~K!y zxZP_j`UA%8ROt=K-cc&>h$c&y8=SE;TSsXhOWRtPgmj%07(Hx$coL`g@QWmQl}*!G z8w~eSt}vdub>7(h!5ZOEcciW#dQ@6(%P7g>mPlVpBUKsqpz3YiS{ogaeMzo@ zD!;YZwsVi?g~m1gxeS(0VDEGxCEmN0*AG+eZJk=OhaO&IdZ3*WjHX7^I9>0u%=9F` z{ipQY;O&o2xw8TI3puD;zC6uddBM~=$j{l~b~MzQdgguYiO2TNSK#JNnDx?rby=GP zCRI(I4e#C(Gu?8F1pex^XOU1YCW7gY{Jcu^uJ)BY!`tovK3Jy}7A-Uur@F5vGFQme^7WulNnDR#@U6%Bs_7B75RN z86uly+aBMSaY|#ahHH%Id$kO0s{_1pv1X^rO0xC#Rz8e|o7}V*pJ+y+{}gJEW)*S& zW#4k@?{4@#EF$gC$Xh4ptC951x}PGtoMd4<9k*APg{rh)b1+li*dD~F9Z8_V8yVzo z@}G=-=CucMnBh5v0aO4D3V<$sf`-hP?B#lQw*>70moM+@nTuWvGGgS^y+wiOlpLoO zaTY&|)GoC378%9B+--kAjrikdvB-Io!%~B`B15GDyoox5#r3MSW4boXUt39}jS@e* z{!(=YEut+CBhWN}#xLjGc3WHU^Fyi#iw4s6?=NM1fD(}3pgi*G+tAJOrc4=-wwjn` zFPUSe1}O93dz_>z4E%@L#d}nB)?i7)b&n%4{kX* zuU{8u2;NpY^&!%dUN}0iJ4sUkmUBhE$GjpmhKF2N`>wn>M=($FT_#W-tOwn>^X|6? zMWq|sSSjo2>!pw+Brfu=y~Q32>~6?h6|l+u?go-eRLOKn!Sm(SlGvle>W=b@)SJ5q zC!Xu~00$2kGORR0$Q>FIkb4{2(7t_#{)>^<^)Z{mgGyRGKd-qy47hurB@5%GztyOQ z@sR|p>d#=PZWr6R{cGA9(OB80_c>HkH~T}0g-VEFx_wi0KF-G#Z8;1ZRCxSlwg#hG%LjE6rxH6Y+6osh972!IAr&>@BXMi+>f zUWum%H=qfoam45xWxYz-UkD))j=S?A_hi!XoL=L58+w%;Za&_M1m6Wu-<2=*jlJt3 z3^*rjC=^YuMHaLz+vB3LM(WIu=k!!V#^O4xk^mQw8ZK?e2D^|9&mym`5wB#>SQb#Y z#IBHJ(55-Oh5y-RbR|&cDVQY5kL)*k{HHgbrs=Zj1#S17m)hm*AmG-yMJC$Q=lRzov4elqQcb{;4`Ghl2LL zVo$37;wPH6Ii}N`_x@7SGx`=YUcA&`m?@HY0=u186!t?pvF0ikv%)~@P#PJ2wAHo> z$kvTSiS^zwT9_=NSYRwupsaB)>Il5|wHm&aC(n)_?T6o+=bd5M`Lx>!{0(Y0KH)C* z@dlw$r7Ax}5mwdBg^lC+@m}!-hdpRoatJ-fbLy+n?lD8xrUsx;aafZBhe2+e7ZD3;gRz6kvscj{&;PD}XI-cvW;BpS_diFMrF~{6$?9HYx{JHA1dv7*Oq$ zphHIq)M?YhB`L!Y0a7BgAm;IE`f-cnYkl$GmTR^4U1+xxO&2^aJ0IY&1MQ@j?=F-X zJ!vHTYj?9>^Be>*3Ppt}vjYbGVoa~N4qB~^%7+qd`m&t^ei&r~87ZSP@#fpwsKxcn z-Wn)N`tlPXzLjvfH{+M8xks4n3O_!udeq*h+r2IZYj1=czw*VXaij2bt9ggP%}Kh| z&w|nZcGgSMRgIhRdFGgK0Z_uT zr9O!)p?MMb$G+aF;k}v6C7}F6m^Qnlmyd(}+~3G!_|X5O=v*9`-v2-TnazgQT+(UF#%fMOPPrXzm~A<^ zRfsw{CzYDQ`IXG%8irKInVDOuX6EZMx+{evnPhV*6HY0FHkKqYmq^awFfqfTXVrnUpF&45rWD4;A?VIW!6ry%=322zOR!kx7aE7vA#3v%V7y!C36rJ=?57!wH5C!{xI1+;~BO-^k*=;gZ&E9MhNz zdu~*m;!zkXG1x$?u3AaagP0F(1-s$B_<;CdAuW?e$_0Iaj#L4}D5{uuMn7xF76f(! zul`ev`eXLlcBX(jr%L_WgZZmAl2liYSJE9{F6qyPola!}^p`3IRlNETvQkEchIiR{ zwwbAK6ZQ75OU>guWxILt3>akB{|UccT|a0;CUIg(!?R+sQfR***7VI0$;!1~83qI?Mr`^R7-2R@QDWe9j0x zeM8sZ*KO5B4`KS-D7OuAL{ZcLS2>!AM4L>bwVUO4eN%e!4IiMKt7X2}MF0r6+~3O7 zi<XpM4L5jfUj@aOK$6AK;FZc6_w5+I3~V;&O{!<>4}Qs<%M|#CQAx0u6H|=Nij( zH}Rv`%gM#Jp`Wv1g&N-a&(Or))8!X*BkZSrWxX|b^xeQ~k`3MjrH+9 ze?XaC*#r8&>Oi&!xG{Ul5VH~osbz zGl?NNtrqmZo7>vRWMMDE+U^rYE4>qw3_8cz4E+PYTGw^?Y#9I6q;~ih`bkF0_iBV` zdlw5}lLNCW;ThL%ZTr{dM9|r-fxoQI1}jLb%4kTt3;79Rw0}$j zSAf;dGSAX3zeBi)IM=yei%k!5Rr3mUaZoqB<53{jbziy=Z+6PRCe6hlRZ6^ROGBpk zqqKJowS7&;HhJ!h^m!*#-@R*` zJ`Hc9efMah{|*JzkUKTU9*Fu^qo2Z5aQ`=78A(!6w@!!;iA;HV-n!%-g@jP9yyv2W z1xUunKUzHWS_+ar$18KVbl26QClB@3TOC;72|rKwmXkWVAeNvJRS~~h16>@zPBUBd z3)nnh((@vsT(}TQYbYdsLb0h0H1R6yxuRZ}>uWB2$xE$?AP++F`8S<@PH=Oq)MKDo78wr-oJQsdVOrbSIhhF$ZhZ2fgsE$O z#%~E#I2?}97>1qOa>d!VBV{9GEHt&3M+~c%dkkmQ#8B~zZC)Sc1WV5j2+X4vFk?dn zmUIVrHNEXXcW}@3?%wM-AT&`>*f#Joz4c?4+4s~p6){@s= z^d%h0NgV`-{PzqqOB7XUoO+chcaxJGj5?Tro^Dd|LOW2+R-tF(#R!+s3QKp&fAkc9 zwo^BilZh-5ND71Hb2;4k;_dBb7Aqe{gga0U(7V1*fNP=2;ptEAg}dzI+cVY(=cVIC zMA#)i2+tNJeK4xM@?Z@wZ_%BT{d+iIxI(d4SFDi3zN?L7JvYndl@GX6mHu9zEFs(y zpDIS#pLkI822RDcmu*WvT3A$yrPaScd$m(=G}KrB5m0oENz{XmO&0$iyMoH=;l@(l zdBXWf_SbzvI!fa6Rg4tuADQvC@qO<5`u6sYXRuvwFC);%F^8AFdj)^@k;iS94EbRR#kJ{3n3gL%1kWmV z^9j~%Bh}Nm%lpWKaCDsl;U@utnke3Mbq*R_IS<)>MuvMEa$QepT3rJ>p8t|@h;{5L zhPkM4EB^iDI|!i>qW$29%$0RYW1AKIbG_%!Z_`1o6?xE$s5-Ol;SBl^Q8)+E1={{)+@sKfVO?tCfTNXe}T(_E>58lm>75QsR`3LD;h0?-*9<4_a z9VsrWjp5Y&I6VG6cYPFW1kc~K4X!f1L6MGtsov{h;dUsLn-pFqR8vWf5G@dGA6kLz z%?21;49aC;L4sHEraruh0(}0ocvi1Ql7vYFd{V2sd3=yh_N#rf3{2udclh2nx zHIbkHGIs~4buKFX3?^hB%0&0ZBiK>d;1?Y^Dl_ur;STSSd24$B#JTPDkN1e>PYS@1 zqQBxo`>Uif>QXkImr`85?Pd03@f>{zX~Oea){PB%zB>oaG}nI3czsf{@xq=ew2u6V zefrcZ?#A8pAM1}?T=p~0=wbvkpYiq+6TWr`qd`zl<;BfJRia$L7tG^<4CmRY=~d%T z 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

      NFB2oW+pI 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 diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg b/app/plot_app/static/cesium/Build/Cesium/Assets/Textures/SkyBox/tycho2t3_80_pz.jpg index d6d86c2a4b67ff402595b963b6cb94840030a26d..5efcc76e2bb5a1bcc1982117711a4863c13983e6 100644 GIT binary patch literal 152537 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

      b*&C#e?R-c!Y+IkGbf!#zix}h$ez$2xDZM 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
    1. 1gDa_Mei!z}iDsxNWvxUXUPBWjvR%B0?&YB26}8}w^22-X3p z)tut4rs+oaA<*9nqLGr&qQ4BAhw%8!59Jh|uQ@+s z=NzBXNAh~5MnnSIl!sS9NZAQv`T1IgZlF`>Zs$+L(F{|Ap1kntG&0B+J9#oh!o`yg zLL)Xnex{KO6P8+M&HCPtfvFwNJCQ0!wU zs!?CL894SSf9F-r*9|u1vE;v6_s(W*`aJ`v#Q0WE?yT8v^ z`b1|$aqqz{UYWi|ihB1ul;_(ti>Ie<$q_)FgqH4yRrmonWy7)Od^D-nBWA+{Oxbi? zxz^hiqgJ)qRMWy%ncq`U!QX8ZBwQ1wll-Yh!$B5ARH0!;GPi#FvmO(Kw`?1PrRSWp zmuR2_+V0{`3y++eVNrZ_Bpu_$FM>N;xsikJ{_a-?jrTP@oE7AVX9%$7pRlnP&EwJP z!{*WQUPK_F*8t@`m|M>j%_KS*X!`);Yd5%kiejzv8W4fanQ%(`Wp1mM3B5m=hN(gw zex!eSnSXQ*HUTsQ4P9dG-z{Cev2}dD6eLEOjt-B@t>fnZN0h_NJyXZ{sn1tX-cB|h zHnn{q691wD|E&o)yU&pPr*Lrh&fma;qI3U&y;DZ z60ktfLbaH9pi@sBbzI5c(S5Y4U8`w?NmY5YIp5-YAOU~(M)bi{Ou3oKy+Acm<)S7` zX;6WI;kjq&2m*G~#d6S)Rz|+8iKfQlTH1PIn6?C%TcsT@7lZ!9@Ose$p4rBq)Z6sJ zdFNLie2PsJ6|r9bZX$2t!4eRz{$0FHnRT7A??-dpH?o?;zQ&o<*$B&gvA-FT5A=8zt!|q3mpxv{y@jT5H&*e&DWd)%L;~{k)L~oF zB5li-*}JD_%guS;8(%xwDUYSfp{thjL-a)NV1MDnLd}9w50*-tw))O|yI)@nsck*! zeuLe!_pc;H{+s%PGpX~{E>B9gGOJLd!^;H<;#kYDgz`2ToZ+klEeY4@;dD*GCsIPM zWQNz_`GQ5W+z|gn6$+}?AyeRebxX*kUg5OE{D-2sp88~0^`(Fivd}=E_NZ{IQENdEM93;*;R;+Ju|j-!BCNYl4Q+ri20i@0~hWg?Oo^)uZaPd*;xfB193DM&MXzcKaW3vQiIx+Q_jy&BX4Cyf=yHgIB1 zi)nkAhHk217?CK9#^&kYZy`_Pm}CJhC)B<`2vh1__2SCd$I8e*)5H}8*-WN}2{(

      U+p|UPy^_6=WSVr}?kN_M8tN`>HdZ_u>u!JY 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 M5gp@4I2{N7*#rT|-v9sr literal 168640 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 z%0D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∾fTt&zE$yU&H>_V!N8!yF(XwukL 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 z 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 diff --git a/app/plot_app/static/cesium/Build/Cesium/Assets/approximateTerrainHeights.json b/app/plot_app/static/cesium/Build/Cesium/Assets/approximateTerrainHeights.json index e4e7ca371..259b1cbb5 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Assets/approximateTerrainHeights.json +++ b/app/plot_app/static/cesium/Build/Cesium/Assets/approximateTerrainHeights.json @@ -1 +1 @@ -{"6-0-0":[10.662392616271973,26.89437484741211],"6-0-1":[6.744882106781006,20.60187530517578],"6-0-2":[4.049985408782959,14.190625190734863],"6-0-3":[2.999666213989258,8.887890815734863],"6-0-4":[0.8949999809265137,6.790625095367432],"6-0-5":[0.8389999866485596,4.217128753662109],"6-0-6":[1.0129166841506958,996.6328735351562],"6-0-7":[1.6561719179153442,1473.79052734375],"6-0-8":[4.23466682434082,1405.418701171875],"6-0-9":[3.7839417457580566,9.417577743530273],"6-0-10":[0.33741796016693115,10.400215148925781],"6-0-11":[0.3738437592983246,9.41488265991211],"6-0-12":[-1.2068616151809692,10.713489532470703],"6-0-13":[-24.74429702758789,1797.1217041015625],"6-0-14":[-25.526838302612305,3.236640691757202],"6-0-15":[-12.715624809265137,0.054375000298023224],"6-0-16":[-21.006210327148438,-5.625],"6-0-17":[-25.642499923706055,-10.7993745803833],"6-0-18":[-25.801523208618164,-11.56656265258789],"6-0-19":[-23.983495712280273,-9.294875144958496],"6-0-20":[-21.024805068969727,-8.0122652053833],"6-0-21":[-17.253652572631836,28.35755729675293],"6-0-22":[-10.430000305175781,-0.18010741472244263],"6-0-23":[-6.085000038146973,1.268125057220459],"6-0-24":[0.20000000298023224,8.959297180175781],"6-0-25":[4.507139682769775,13.869999885559082],"6-0-26":[6.4291582107543945,18.9325008392334],"6-0-27":[9.264628410339355,23.026874542236328],"6-0-28":[10.92245864868164,27.123613357543945],"6-0-29":[12.682499885559082,32.420040130615234],"6-0-30":[15.674773216247559,36.435333251953125],"6-0-31":[17.173749923706055,41.696876525878906],"6-0-32":[18.65656280517578,43.90009689331055],"6-0-33":[19.852249145507812,48.68000030517578],"6-0-34":[21.118749618530273,56.49267578125],"6-0-35":[26.262500762939453,78.99913787841797],"6-0-36":[33,95.11029052734375],"6-0-37":[17.361024856567383,1242.8570556640625],"6-0-38":[17.562183380126953,1197.82421875],"6-0-39":[46.88206481933594,149.87619018554688],"6-0-40":[49.39250183105469,105.0863265991211],"6-0-41":[41.616249084472656,101.96843719482422],"6-0-42":[20.683752059936523,550.1085205078125],"6-0-43":[17.205312728881836,92.56500244140625],"6-0-44":[16.92913055419922,77.9800033569336],"6-0-45":[18.563125610351562,46.624141693115234],"6-0-46":[12.380000114440918,43.064064025878906],"6-0-47":[3.408663749694824,29.34000015258789],"6-0-48":[-19.809316635131836,6.480000019073486],"6-0-49":[-39.18437576293945,-4.525784015655518],"6-0-50":[-57.561134338378906,-19.100000381469727],"6-0-51":[-76.35336303710938,-29.469491958618164],"6-0-52":[-88.3481674194336,-37.907501220703125],"6-0-53":[-97.6156234741211,-44.45500183105469],"6-0-54":[-101.64617156982422,-48.19124984741211],"6-0-55":[-119.69437408447266,-51.12393569946289],"6-0-56":[-126.96334075927734,-57.56533432006836],"6-0-57":[-126.29269409179688,-60.821327209472656],"6-0-58":[-126.25599670410156,-59.930580139160156],"6-0-59":[-119.09048461914062,-54.849998474121094],"6-0-60":[-110.8706283569336,-48.640201568603516],"6-0-61":[-96.6114273071289,258.7962646484375],"6-0-62":[-90.73312377929688,2997.3701171875],"6-0-63":[-31.66657257080078,3098.166259765625],"6-1-0":[10.710624694824219,26.9424991607666],"6-1-1":[7.143750190734863,20.791250228881836],"5-0-0":[6.744882106781006,26.9424991607666],"6-1-2":[3.8924999237060547,15.039999961853027],"6-1-3":[3.3754611015319824,8.355371475219727],"5-0-1":[2.999666213989258,15.039999961853027],"6-1-4":[-0.6043750047683716,6.82687520980835],"6-1-5":[-0.5409374833106995,4.820000171661377],"5-0-2":[-0.6043750047683716,6.82687520980835],"6-1-6":[-0.37812501192092896,343.8921203613281],"6-1-7":[0.4310937523841858,308.29644775390625],"5-0-3":[-0.37812501192092896,1473.79052734375],"6-1-8":[1.8817499876022339,906.9592895507812],"6-1-9":[4.01687479019165,286.6402587890625],"5-0-4":[1.8817499876022339,1405.418701171875],"6-1-10":[3.661250114440918,13.999062538146973],"6-1-11":[1.5071094036102295,14.171875],"5-0-5":[0.33741796016693115,14.171875],"6-1-12":[2.4733006954193115,10.454843521118164],"6-1-13":[-22.05035972595215,1734.2342529296875],"5-0-6":[-24.74429702758789,1797.1217041015625],"6-1-14":[-20.709688186645508,6.517499923706055],"6-1-15":[-11.227499961853027,1.309999942779541],"5-0-7":[-25.526838302612305,6.517499923706055],"6-1-16":[-20.504375457763672,-4.756666660308838],"6-1-17":[-25.697500228881836,-10.005000114440918],"5-0-8":[-25.697500228881836,-4.756666660308838],"6-1-18":[-26.180585861206055,-12.152578353881836],"6-1-19":[-25.860937118530273,-9.226449966430664],"5-0-9":[-26.180585861206055,-9.226449966430664],"6-1-20":[-22.912500381469727,-7.871250152587891],"6-1-21":[-16.028125762939453,0.2562499940395355],"5-0-10":[-22.912500381469727,28.35755729675293],"6-1-22":[-9.585546493530273,9.267816543579102],"6-1-23":[-2.893749952316284,6.539999961853027],"5-0-11":[-10.430000305175781,9.267816543579102],"6-1-24":[0.8600000143051147,11.165937423706055],"6-1-25":[4.318515777587891,18.65625],"5-0-12":[0.20000000298023224,18.65625],"6-1-26":[6.617916584014893,18.186717987060547],"6-1-27":[8.708791732788086,22.840625762939453],"5-0-13":[6.4291582107543945,23.026874542236328],"6-1-28":[9.961166381835938,23.631250381469727],"6-1-29":[9.979999542236328,31.22347640991211],"5-0-14":[9.961166381835938,32.420040130615234],"6-1-30":[13.018346786499023,34.393829345703125],"6-1-31":[16.280000686645508,38.73692321777344],"5-0-15":[13.018346786499023,41.696876525878906],"6-1-32":[16.811914443969727,39.96182632446289],"6-1-33":[17.687732696533203,44.10054397583008],"5-0-16":[16.811914443969727,48.68000030517578],"6-1-34":[18.549999237060547,49.527931213378906],"6-1-35":[22.646608352661133,65.9437484741211],"5-0-17":[18.549999237060547,78.99913787841797],"6-1-36":[28.21576690673828,188.58447265625],"6-1-37":[34.365665435791016,262.2835998535156],"5-0-18":[17.361024856567383,1242.8570556640625],"6-1-38":[45.219852447509766,1074.20068359375],"6-1-39":[25.485000610351562,561.4708251953125],"5-0-19":[17.562183380126953,1197.82421875],"6-1-40":[23.50523567199707,105.16500091552734],"6-1-41":[23.639999389648438,99.69751739501953],"5-0-20":[23.50523567199707,105.16500091552734],"6-1-42":[19.329999923706055,82.53816223144531],"6-1-43":[18.61750030517578,61.848297119140625],"5-0-21":[17.205312728881836,550.1085205078125],"6-1-44":[20.077499389648438,55.807342529296875],"6-1-45":[18.77750015258789,46.451934814453125],"5-0-22":[16.92913055419922,77.9800033569336],"6-1-46":[8.688750267028809,36.1150016784668],"6-1-47":[-36.779884338378906,306.2413330078125],"5-0-23":[-36.779884338378906,306.2413330078125],"6-1-48":[-22.6590633392334,5.184999942779541],"6-1-49":[-42.81999969482422,-11.132499694824219],"5-0-24":[-42.81999969482422,6.480000019073486],"6-1-50":[-57.8447265625,-19.100000381469727],"6-1-51":[-75.6875,-29.657812118530273],"5-0-25":[-76.35336303710938,-19.100000381469727],"6-1-52":[-86.82427978515625,-37.51066589355469],"6-1-53":[-96.12187194824219,-43.0724983215332],"5-0-26":[-97.6156234741211,-37.51066589355469],"6-1-54":[-101.16291046142578,-47.18199920654297],"6-1-55":[-120.91999816894531,-50.741249084472656],"5-0-27":[-120.91999816894531,-47.18199920654297],"6-1-56":[-127.83187866210938,-59.08183288574219],"6-1-57":[-130.4034423828125,-62.14841842651367],"5-0-28":[-130.4034423828125,-57.56533432006836],"6-1-58":[-130.17813110351562,-59.599998474121094],"6-1-59":[-119.24624633789062,-55.12033462524414],"5-0-29":[-130.17813110351562,-54.849998474121094],"6-1-60":[-110.9800033569336,-49.40937423706055],"6-1-61":[-97.86125183105469,-11.154218673706055],"5-0-30":[-110.9800033569336,258.7962646484375],"6-1-62":[-91.51000213623047,3443.806396484375],"6-1-63":[-29.539499282836914,3102.3349609375],"5-0-31":[-91.51000213623047,3443.806396484375],"6-2-0":[10.72249984741211,26.978750228881836],"6-2-1":[7.835697174072266,20.818124771118164],"6-2-2":[3.5824999809265137,15.7240629196167],"6-2-3":[2.5450000762939453,7.197812557220459],"6-2-4":[-0.6043750047683716,5.78000020980835],"6-2-5":[-0.5006250143051147,5.614433765411377],"6-2-6":[-0.5006250143051147,2.5158984661102295],"6-2-7":[0.492249995470047,3.569999933242798],"6-2-8":[1.4524999856948853,1107.570068359375],"6-2-9":[4.335000038146973,935.4871826171875],"6-2-10":[6.380000114440918,447.81634521484375],"6-2-11":[2.78653883934021,22.323867797851562],"6-2-12":[4.367499828338623,15.329999923706055],"6-2-13":[-21.962499618530273,1546.33056640625],"6-2-14":[-15.59000015258789,10.1021089553833],"6-2-15":[-8.9399995803833,3.5063672065734863],"6-2-16":[-19.279375076293945,-3.755000114440918],"6-2-17":[-25.094999313354492,-8.481249809265137],"6-2-18":[-26.212108612060547,-11.532500267028809],"6-2-19":[-26.610645294189453,-11.45008373260498],"6-2-20":[-24.214374542236328,-7.640625],"6-2-21":[-15.306171417236328,-2.943349599838257],"6-2-22":[-9.574999809265137,22.83011245727539],"6-2-23":[0.062298279255628586,13.158320426940918],"6-2-24":[3.6593527793884277,16.573633193969727],"6-2-25":[5.953750133514404,18.746641159057617],"6-2-26":[7.563711166381836,18.264375686645508],"6-2-27":[8.723750114440918,22.689844131469727],"6-2-28":[9.83185863494873,22.15999984741211],"6-2-29":[9.862890243530273,26.059999465942383],"6-2-30":[12.205530166625977,32.272186279296875],"6-2-31":[13.892125129699707,34.720001220703125],"6-2-32":[14.450139045715332,36.72468566894531],"6-2-33":[14.449928283691406,38.34441375732422],"6-2-34":[17.75,45.32490158081055],"6-2-35":[20.66746711730957,56.50179672241211],"6-2-36":[14.562848091125488,1897.3251953125],"6-2-37":[21.739688873291016,602.1018676757812],"6-2-38":[6.5295610427856445,258.2967224121094],"6-2-39":[23.90250015258789,87.92964935302734],"6-2-40":[24.731639862060547,68.49024200439453],"6-2-41":[28.760000228881836,71.419921875],"6-2-42":[24.125,69.10718536376953],"6-2-43":[21.797500610351562,60.22218704223633],"6-2-44":[16.266874313354492,53.68000030517578],"6-2-45":[9.604999542236328,38.474998474121094],"6-2-46":[4.351250171661377,25.7549991607666],"6-2-47":[-8.33187484741211,16.05062484741211],"6-2-48":[-23.65412139892578,-1.7899999618530273],"6-2-49":[-43.09312438964844,-12.4712495803833],"6-2-50":[-57.43781280517578,-20.260000228881836],"6-2-51":[-75.0199966430664,-28.990625381469727],"6-2-52":[-85.42469024658203,-36.157501220703125],"6-2-53":[-94.36000061035156,-42.323123931884766],"6-2-54":[-100.34156036376953,-45.743751525878906],"6-2-55":[-118.1500015258789,-50.3025016784668],"6-2-56":[-127.83187866210938,-57.377498626708984],"6-2-57":[-132.45355224609375,-63.72624969482422],"6-2-58":[-131.20750427246094,-59.33671951293945],"6-2-59":[-117.93499755859375,-55.100833892822266],"6-2-60":[-110.82062530517578,-49.584999084472656],"6-2-61":[-98.67361450195312,-43.95000076293945],"6-2-62":[-90.625,3904.294677734375],"6-2-63":[-29.5396671295166,3104.91357421875],"6-3-0":[10.725000381469727,27.02312469482422],"6-3-1":[7.914999961853027,20.811874389648438],"5-1-0":[7.835697174072266,27.02312469482422],"6-3-2":[3.442500114440918,16.579999923706055],"6-3-3":[2.118833303451538,6.474374771118164],"5-1-1":[2.118833303451538,16.579999923706055],"4-0-0":[2.118833303451538,27.02312469482422],"6-3-4":[-0.020625000819563866,6.752500057220459],"6-3-5":[-0.5521875023841858,6.62890625],"5-1-2":[-0.6043750047683716,6.752500057220459],"6-3-6":[-1.0343749523162842,3.0254688262939453],"6-3-7":[0.5851041674613953,2.78125],"5-1-3":[-1.0343749523162842,3.569999933242798],"4-0-1":[-1.0343749523162842,1473.79052734375],"6-3-8":[1.2638332843780518,912.8394775390625],"6-3-9":[4.335000038146973,618.7957153320312],"5-1-4":[1.2638332843780518,1107.570068359375],"6-3-10":[6.380000114440918,21.81999969482422],"6-3-11":[-9.61993408203125,311.3698425292969],"5-1-5":[-9.61993408203125,447.81634521484375],"4-0-2":[-9.61993408203125,1405.418701171875],"6-3-12":[5.535624980926514,24.459999084472656],"6-3-13":[-16.074665069580078,1745.844970703125],"5-1-6":[-21.962499618530273,1745.844970703125],"6-3-14":[-2.9375,13.590624809265137],"6-3-15":[-7.301249980926514,5.276796817779541],"5-1-7":[-15.59000015258789,13.590624809265137],"4-0-3":[-25.526838302612305,1797.1217041015625],"6-3-16":[-15.656874656677246,-3.1670000553131104],"6-3-17":[-22.95687484741211,-8.299062728881836],"5-1-8":[-25.094999313354492,-3.1670000553131104],"6-3-18":[-26.204374313354492,-10.939416885375977],"6-3-19":[-27.226797103881836,-12.177499771118164],"5-1-9":[-27.226797103881836,-10.939416885375977],"4-0-4":[-27.226797103881836,-3.1670000553131104],"6-3-20":[-24.80500030517578,-7.640625],"6-3-21":[-14.334297180175781,0.46000000834465027],"5-1-10":[-24.80500030517578,0.46000000834465027],"6-3-22":[-3.3324999809265137,23.052753448486328],"6-3-23":[2.585249900817871,22.362812042236328],"5-1-11":[-9.574999809265137,23.052753448486328],"4-0-5":[-24.80500030517578,28.35755729675293],"6-3-24":[6.284999847412109,19.354999542236328],"6-3-25":[8.08457088470459,21.313344955444336],"5-1-12":[3.6593527793884277,21.313344955444336],"6-3-26":[1.665480613708496,34.676639556884766],"6-3-27":[8.888359069824219,23.50749969482422],"5-1-13":[1.665480613708496,34.676639556884766],"4-0-6":[0.20000000298023224,34.676639556884766],"6-3-28":[10.27673053741455,25.69953155517578],"6-3-29":[10.854316711425781,24.850000381469727],"5-1-14":[9.83185863494873,26.059999465942383],"6-3-30":[11.935444831848145,28.26628875732422],"6-3-31":[13.637499809265137,30.638906478881836],"5-1-15":[11.935444831848145,34.720001220703125],"4-0-7":[9.83185863494873,41.696876525878906],"6-3-32":[14.742258071899414,33.864646911621094],"6-3-33":[11.587777137756348,35.782501220703125],"5-1-16":[11.587777137756348,38.34441375732422],"6-3-34":[16.569652557373047,41.3337516784668],"6-3-35":[18.052499771118164,51.0681266784668],"5-1-17":[16.569652557373047,56.50179672241211],"4-0-8":[11.587777137756348,78.99913787841797],"6-3-36":[19.63053321838379,771.3870849609375],"6-3-37":[21.730600357055664,997.058837890625],"5-1-18":[14.562848091125488,1897.3251953125],"6-3-38":[22.855899810791016,125.78282928466797],"6-3-39":[22.68316650390625,58.95882797241211],"5-1-19":[6.5295610427856445,258.2967224121094],"4-0-9":[6.5295610427856445,1897.3251953125],"6-3-40":[21.127500534057617,59.20500183105469],"6-3-41":[21.127500534057617,57.285118103027344],"5-1-20":[21.127500534057617,71.419921875],"6-3-42":[19.0049991607666,55.56656265258789],"6-3-43":[19.0049991607666,45.13603591918945],"5-1-21":[19.0049991607666,69.10718536376953],"4-0-10":[17.205312728881836,550.1085205078125],"6-3-44":[12.682499885559082,42.368751525878906],"6-3-45":[7.261363983154297,30.686582565307617],"5-1-22":[7.261363983154297,53.68000030517578],"6-3-46":[1.0724999904632568,18.095624923706055],"6-3-47":[-14.020000457763672,6.667441368103027],"5-1-23":[-14.020000457763672,25.7549991607666],"4-0-11":[-36.779884338378906,306.2413330078125],"6-3-48":[-25.511249542236328,-4.539999961853027],"6-3-49":[-40.7599983215332,-13.018750190734863],"5-1-24":[-43.09312438964844,-1.7899999618530273],"6-3-50":[-55.840721130371094,-20.054582595825195],"6-3-51":[-71.87000274658203,-27.950000762939453],"5-1-25":[-75.0199966430664,-20.054582595825195],"4-0-12":[-76.35336303710938,6.480000019073486],"6-3-52":[-83.22348022460938,-35.080833435058594],"6-3-53":[-91.12094116210938,-41.0724983215332],"5-1-26":[-94.36000061035156,-35.080833435058594],"6-3-54":[-99.0167007446289,-44.501834869384766],"6-3-55":[-114.53187561035156,-49.532501220703125],"5-1-27":[-118.1500015258789,-44.501834869384766],"4-0-13":[-120.91999816894531,-35.080833435058594],"6-3-56":[-126.72624969482422,-56.7413330078125],"6-3-57":[-132.78492736816406,-63.72624969482422],"5-1-28":[-132.78492736816406,-56.7413330078125],"6-3-58":[-132.20132446289062,-59.467498779296875],"6-3-59":[-117.44249725341797,-55.060333251953125],"5-1-29":[-132.20132446289062,-55.060333251953125],"4-0-14":[-132.78492736816406,-54.849998474121094],"6-3-60":[-110.8968734741211,-50.056251525878906],"6-3-61":[-98.88008117675781,-43.58091735839844],"5-1-30":[-110.8968734741211,-43.58091735839844],"6-3-62":[-87.66812133789062,3970.4091796875],"6-3-63":[-29.539833068847656,3106.06298828125],"5-1-31":[-90.625,3970.4091796875],"4-0-15":[-110.9800033569336,3970.4091796875],"6-4-0":[10.727499961853027,27.069395065307617],"6-4-1":[8.585000038146973,20.871875762939453],"6-4-2":[3.210624933242798,17.102188110351562],"6-4-3":[2.1036667823791504,7.081250190734863],"6-4-4":[1.1974999904632568,8.009452819824219],"6-4-5":[-0.21687500178813934,6.215000152587891],"6-4-6":[-1.0792968273162842,2.403749942779541],"6-4-7":[0.3981249928474426,611.0447998046875],"6-4-8":[1.0700000524520874,1101.3404541015625],"6-4-9":[4.699999809265137,428.476318359375],"6-4-10":[9.227499961853027,653.3540649414062],"6-4-11":[10.760000228881836,27.567129135131836],"6-4-12":[-14.981194496154785,1825.964599609375],"6-4-13":[-15.59131145477295,2084.312744140625],"6-4-14":[3.4749999046325684,18.158788681030273],"6-4-15":[-5.559999942779541,6.142148494720459],"6-4-16":[-15.536250114440918,-2.5199999809265137],"6-4-17":[-23.209999084472656,-7.816874980926514],"6-4-18":[-26.70197296142578,-10.935832977294922],"6-4-19":[-27.99039077758789,-11.6274995803833],"6-4-20":[-24.260000228881836,-7.941249847412109],"6-4-21":[-14.619140625,0.9671875238418579],"6-4-22":[-0.19875000417232513,17.5401554107666],"6-4-23":[2.537734270095825,28.14875030517578],"6-4-24":[7.625,19.580507278442383],"6-4-25":[8.145000457763672,21.938350677490234],"6-4-26":[9.01953411102295,22.230369567871094],"6-4-27":[10.38117504119873,25.704999923706055],"6-4-28":[11.659500122070312,27.187793731689453],"6-4-29":[12.013416290283203,27.8350772857666],"6-4-30":[12.522455215454102,28.261249542236328],"6-4-31":[13.606291770935059,29.571718215942383],"6-4-32":[14.294477462768555,32.883750915527344],"6-4-33":[15.454000473022461,34.8537483215332],"6-4-34":[16.243749618530273,35.598751068115234],"6-4-35":[15.794037818908691,39.89781188964844],"6-4-36":[15.1875,43.71812438964844],"6-4-37":[15.332924842834473,45.709999084472656],"6-4-38":[15.372841835021973,48.55828094482422],"6-4-39":[15.29671859741211,45.875],"6-4-40":[15.099374771118164,44.400001525878906],"6-4-41":[14.973041534423828,42.283748626708984],"6-4-42":[13.731249809265137,42.2599983215332],"6-4-43":[12.0625,37.31624984741211],"6-4-44":[10.391875267028809,32.279998779296875],"6-4-45":[5.849208354949951,25.327890396118164],"6-4-46":[-0.36531248688697815,17.649999618530273],"6-4-47":[-16.6043758392334,1.0724999904632568],"6-4-48":[-26.314863204956055,-7.425666809082031],"6-4-49":[-40.7599983215332,-13.577500343322754],"6-4-50":[-53.72312545776367,-20.059999465942383],"6-4-51":[-70.16000366210938,-26.951875686645508],"6-4-52":[-80.78187561035156,-33.290000915527344],"6-4-53":[-89,-39.396873474121094],"6-4-54":[-97.34562683105469,-43.10625076293945],"6-4-55":[-113.4800033569336,-49.01625061035156],"6-4-56":[-126.74002075195312,-56.10499954223633],"6-4-57":[-131.58999633789062,-62.78125],"6-4-58":[-131.9031219482422,-58.903751373291016],"6-4-59":[-117.29125213623047,-55.060001373291016],"6-4-60":[-111.06124877929688,-49.975624084472656],"6-4-61":[-98.74500274658203,-43.61541748046875],"6-4-62":[-87.84062194824219,3807.758544921875],"6-4-63":[-29.539833068847656,3106.126953125],"6-5-0":[10.783124923706055,27.115625381469727],"6-5-1":[8.585000038146973,21.094999313354492],"5-2-0":[8.585000038146973,27.115625381469727],"6-5-2":[3.172499895095825,17.65999984741211],"6-5-3":[0.9281666874885559,7.257500171661377],"5-2-1":[0.9281666874885559,17.65999984741211],"6-5-4":[-0.47874999046325684,7.990879058837891],"6-5-5":[-2.169374942779541,1.633632779121399],"5-2-2":[-2.169374942779541,8.009452819824219],"6-5-6":[-0.7378125190734863,0.5643749833106995],"6-5-7":[-0.4325000047683716,977.804443359375],"5-2-3":[-1.0792968273162842,977.804443359375],"6-5-8":[1.0700000524520874,1285.6285400390625],"6-5-9":[5.929843902587891,689.9798583984375],"5-2-4":[1.0700000524520874,1285.6285400390625],"6-5-10":[9.227499961853027,574.40771484375],"6-5-11":[12.46500015258789,29.757186889648438],"5-2-5":[9.227499961853027,653.3540649414062],"6-5-12":[-36.24821090698242,2863.95849609375],"6-5-13":[-3.1123046875,25.076250076293945],"5-2-6":[-36.24821090698242,2863.95849609375],"6-5-14":[3.541249990463257,19.58953094482422],"6-5-15":[-6.320000171661377,5.935800552368164],"5-2-7":[-6.320000171661377,19.58953094482422],"6-5-16":[-17.390625,-2.5199999809265137],"6-5-17":[-24.53499984741211,-7.99875020980835],"5-2-8":[-24.53499984741211,-2.5199999809265137],"6-5-18":[-27.219999313354492,-11.555000305175781],"6-5-19":[-27.565000534057617,-11.8125],"5-2-9":[-27.99039077758789,-10.935832977294922],"6-5-20":[-24.979999542236328,-7.941249847412109],"6-5-21":[-15.876562118530273,-0.19875000417232513],"5-2-10":[-24.979999542236328,0.9671875238418579],"6-5-22":[-3.569999933242798,8.22445297241211],"6-5-23":[3.2079999446868896,68.1701431274414],"5-2-11":[-3.569999933242798,68.1701431274414],"6-5-24":[7.474999904632568,18.669511795043945],"6-5-25":[7.192163944244385,18.094999313354492],"5-2-12":[7.192163944244385,21.938350677490234],"6-5-26":[7.38706111907959,20.469921112060547],"6-5-27":[8.5649995803833,27.758750915527344],"5-2-13":[7.38706111907959,27.758750915527344],"6-5-28":[11.808157920837402,30.772384643554688],"6-5-29":[12.822500228881836,30.650989532470703],"5-2-14":[11.659500122070312,30.772384643554688],"6-5-30":[13.6196870803833,32.29343795776367],"6-5-31":[13.869250297546387,32.649845123291016],"5-2-15":[12.522455215454102,32.649845123291016],"6-5-32":[14.355667114257812,32.290000915527344],"6-5-33":[15.096875190734863,34.30531311035156],"5-2-16":[14.294477462768555,34.8537483215332],"6-5-34":[14.433011054992676,33.95476531982422],"6-5-35":[14.390000343322754,37.53130340576172],"5-2-17":[14.390000343322754,39.89781188964844],"6-5-36":[12.641250610351562,37.43314743041992],"6-5-37":[11.667878150939941,31.094200134277344],"5-2-18":[11.667878150939941,45.709999084472656],"6-5-38":[11.75207805633545,38.61710739135742],"6-5-39":[12.159394264221191,31.698749542236328],"5-2-19":[11.75207805633545,48.55828094482422],"6-5-40":[10.418749809265137,30.121660232543945],"6-5-41":[10.418749809265137,29.261659622192383],"5-2-20":[10.418749809265137,44.400001525878906],"6-5-42":[10.267499923706055,28.581092834472656],"6-5-43":[8.595894813537598,25.152206420898438],"5-2-21":[8.595894813537598,42.2599983215332],"6-5-44":[6.707499980926514,23.38849639892578],"6-5-45":[4.270113945007324,19.08464813232422],"5-2-22":[4.270113945007324,32.279998779296875],"6-5-46":[-1.3551172018051147,10.739375114440918],"6-5-47":[-17.260000228881836,-0.35624998807907104],"5-2-23":[-17.260000228881836,17.649999618530273],"6-5-48":[-26.3909969329834,-8.289999961853027],"6-5-49":[-40.477813720703125,-13.412500381469727],"5-2-24":[-40.7599983215332,-7.425666809082031],"6-5-50":[-51.9833984375,-19.839082717895508],"6-5-51":[-66.21624755859375,-25.934999465942383],"5-2-25":[-70.16000366210938,-19.839082717895508],"6-5-52":[-77.23214721679688,-31.843666076660156],"6-5-53":[-85.89562225341797,-37.712501525878906],"5-2-26":[-89,-31.843666076660156],"6-5-54":[-96.2763900756836,-42.09375],"6-5-55":[-112.02812194824219,-48.58000183105469],"5-2-27":[-113.4800033569336,-42.09375],"6-5-56":[-123.42982482910156,-55.02583312988281],"6-5-57":[-130.9237518310547,-62.404998779296875],"5-2-28":[-131.58999633789062,-55.02583312988281],"6-5-58":[-131.3125,-59.02000045776367],"6-5-59":[-121.4140625,-54.72233200073242],"5-2-29":[-131.9031219482422,-54.72233200073242],"6-5-60":[-111.22000122070312,146.65567016601562],"6-5-61":[-98.39125061035156,-43.74583435058594],"5-2-30":[-111.22000122070312,146.65567016601562],"6-5-62":[-87.93000030517578,3579.748779296875],"6-5-63":[-29.540000915527344,3100.273193359375],"5-2-31":[-87.93000030517578,3807.758544921875],"6-6-0":[10.892499923706055,27.171875],"6-6-1":[8.998749732971191,21.33187484741211],"6-6-2":[3.203749895095825,17.97687530517578],"6-6-3":[0.5060937404632568,6.610000133514404],"6-6-4":[-2.9449803829193115,6.610000133514404],"6-6-5":[-3.6736719608306885,0.41749998927116394],"6-6-6":[-2.0174999237060547,37.02391815185547],"6-6-7":[-1.0175000429153442,1376.88427734375],"6-6-8":[3.711385488510132,982.6102905273438],"6-6-9":[7.431666851043701,985.8113403320312],"6-6-10":[11.947500228881836,1234.977294921875],"6-6-11":[13.11198616027832,705.1353759765625],"6-6-12":[-89.40628051757812,2536.317138671875],"6-6-13":[3.4082393646240234,22.828222274780273],"6-6-14":[2.6549999713897705,19.518827438354492],"6-6-15":[-7.981249809265137,5.630624771118164],"6-6-16":[-18.665624618530273,-3.6115000247955322],"6-6-17":[-26.51593780517578,-9.157500267028809],"6-6-18":[-29.612010955810547,-12.335583686828613],"6-6-19":[-29.53402328491211,-12.549500465393066],"6-6-20":[-27.31624984741211,-8.278905868530273],"6-6-21":[-18.44513702392578,-1.9548333883285522],"6-6-22":[-6.478125095367432,7.13156270980835],"6-6-23":[3.018749952316284,190.00540161132812],"6-6-24":[6.517499923706055,138.46029663085938],"6-6-25":[5.691249847412109,15.955312728881836],"6-6-26":[5.407812595367432,16.509374618530273],"6-6-27":[6.054375171661377,22.739999771118164],"6-6-28":[9.029999732971191,28.203632354736328],"6-6-29":[-17.455322265625,51.54735565185547],"6-6-30":[13.152978897094727,50.1531982421875],"6-6-31":[15.347332954406738,33.26054763793945],"6-6-32":[14.323166847229004,31.905000686645508],"6-6-33":[13.671250343322754,32.65812683105469],"6-6-34":[12.206250190734863,30.780000686645508],"6-6-35":[8.786381721496582,41.933101654052734],"6-6-36":[9.463125228881836,29.87468719482422],"6-6-37":[9.157500267028809,25.282499313354492],"6-6-38":[9.38070297241211,32.544952392578125],"6-6-39":[9.541874885559082,25.030624389648438],"6-6-40":[7.995625019073486,24.1299991607666],"6-6-41":[6.632500171661377,21.249061584472656],"6-6-42":[6.038750171661377,21.200000762939453],"6-6-43":[5.827499866485596,20.06218719482422],"6-6-44":[4.24484395980835,16.540000915527344],"6-6-45":[2.140000104904175,12.633125305175781],"6-6-46":[-4.040605545043945,7.65500020980835],"6-6-47":[-16.618125915527344,-0.23140625655651093],"6-6-48":[-26.462852478027344,-8.010000228881836],"6-6-49":[-39.58000183105469,-13.390233993530273],"6-6-50":[-50.26874923706055,-19.087499618530273],"6-6-51":[-63.68000030517578,-24.712499618530273],"6-6-52":[-73.98031616210938,-30.155000686645508],"6-6-53":[-84.18499755859375,-35.5625],"6-6-54":[-95.46593475341797,-40.93000030517578],"6-6-55":[-110.05000305175781,-48.04499816894531],"6-6-56":[-123.49640655517578,-54.779998779296875],"6-6-57":[-129.7449951171875,-61.6931266784668],"6-6-58":[-129.7449951171875,-62.063751220703125],"6-6-59":[-121.73558807373047,-53.84749984741211],"6-6-60":[-109.44000244140625,382.34393310546875],"6-6-61":[-98.12875366210938,-36.441165924072266],"6-6-62":[-87.48999786376953,3110.84814453125],"6-6-63":[-29.540000915527344,3090.167724609375],"6-7-0":[11.053125381469727,27.224374771118164],"6-7-1":[8.998749732971191,21.612499237060547],"5-3-0":[8.998749732971191,27.224374771118164],"6-7-2":[3.119999885559082,18.015625],"6-7-3":[-1.8799999952316284,4.745761871337891],"5-3-1":[-1.8799999952316284,18.015625],"4-1-0":[-1.8799999952316284,27.224374771118164],"6-7-4":[-2.227851629257202,3.158750057220459],"6-7-5":[-10.471875190734863,-0.692187488079071],"5-3-2":[-10.471875190734863,6.610000133514404],"6-7-6":[-6.590000152587891,40.507728576660156],"6-7-7":[4.262625217437744,1489.2713623046875],"5-3-3":[-6.590000152587891,1489.2713623046875],"4-1-1":[-10.471875190734863,1489.2713623046875],"3-0-0":[-10.471875190734863,1489.2713623046875],"6-7-8":[5.883906364440918,1063.9132080078125],"6-7-9":[20.709917068481445,1104.56689453125],"5-3-4":[3.711385488510132,1104.56689453125],"6-7-10":[14.913749694824219,1599.95361328125],"6-7-11":[-8.968847274780273,1740.5635986328125],"5-3-5":[-8.968847274780273,1740.5635986328125],"4-1-2":[-8.968847274780273,1740.5635986328125],"6-7-12":[-61.84696960449219,2512.649169921875],"6-7-13":[5.5706257820129395,22.756444931030273],"5-3-6":[-89.40628051757812,2536.317138671875],"6-7-14":[0.6449999809265137,18.200000762939453],"6-7-15":[-12.260000228881836,3.0401368141174316],"5-3-7":[-12.260000228881836,19.518827438354492],"4-1-3":[-89.40628051757812,2863.95849609375],"3-0-1":[-89.40628051757812,2863.95849609375],"6-7-16":[-22.241249084472656,-4.090000152587891],"6-7-17":[-29.139999389648438,-10.0756254196167],"5-3-8":[-29.139999389648438,-3.6115000247955322],"6-7-18":[-31.979999542236328,-13.470000267028809],"6-7-19":[-31.857500076293945,-13.832500457763672],"5-3-9":[-31.979999542236328,-12.335583686828613],"4-1-4":[-31.979999542236328,-2.5199999809265137],"6-7-20":[-30.100000381469727,-10.001250267028809],"6-7-21":[-23.559999465942383,-3.547499895095825],"5-3-10":[-30.100000381469727,-1.9548333883285522],"6-7-22":[-13.90999984741211,4.683222770690918],"6-7-23":[0.9925000071525574,14.597343444824219],"5-3-11":[-13.90999984741211,190.00540161132812],"4-1-5":[-30.100000381469727,190.00540161132812],"3-0-2":[-31.979999542236328,190.00540161132812],"6-7-24":[3.4261648654937744,1613.08447265625],"6-7-25":[5.025000095367432,15.517350196838379],"5-3-12":[3.4261648654937744,1613.08447265625],"6-7-26":[3.251499891281128,10.995976448059082],"6-7-27":[3.444999933242798,17.454374313354492],"5-3-13":[3.251499891281128,22.739999771118164],"4-1-6":[3.251499891281128,1613.08447265625],"6-7-28":[7.093530654907227,27.004491806030273],"6-7-29":[10.9350004196167,32.981563568115234],"5-3-14":[-17.455322265625,51.54735565185547],"6-7-30":[11.966679573059082,44.94723129272461],"6-7-31":[15.142438888549805,36.63479995727539],"5-3-15":[11.966679573059082,50.1531982421875],"4-1-7":[-17.455322265625,51.54735565185547],"3-0-3":[-17.455322265625,1613.08447265625],"6-7-32":[14.440875053405762,33.4582405090332],"6-7-33":[12.085000038146973,29.120664596557617],"5-3-16":[12.085000038146973,33.4582405090332],"6-7-34":[9.4303617477417,27.019062042236328],"6-7-35":[7.862258434295654,36.932315826416016],"5-3-17":[7.862258434295654,41.933101654052734],"4-1-8":[7.862258434295654,41.933101654052734],"6-7-36":[7.222499847412109,22.350000381469727],"6-7-37":[6.790533542633057,18.926250457763672],"5-3-18":[6.790533542633057,29.87468719482422],"6-7-38":[1.569578766822815,124.29959106445312],"6-7-39":[2.329150438308716,568.3699340820312],"5-3-19":[1.569578766822815,568.3699340820312],"4-1-9":[1.569578766822815,568.3699340820312],"3-0-4":[1.569578766822815,1897.3251953125],"6-7-40":[4.25,19.084375381469727],"6-7-41":[3.0164222717285156,14.766797065734863],"5-3-20":[3.0164222717285156,24.1299991607666],"6-7-42":[2.3410000801086426,12.323749542236328],"6-7-43":[2.2915000915527344,11.625273704528809],"5-3-21":[2.2915000915527344,21.200000762939453],"4-1-10":[2.2915000915527344,44.400001525878906],"6-7-44":[1.2625000476837158,10.720000267028809],"6-7-45":[0.7663333415985107,8.1459379196167],"5-3-22":[0.7663333415985107,16.540000915527344],"6-7-46":[-6.770625114440918,4.106874942779541],"6-7-47":[-16.151874542236328,-2.7074999809265137],"5-3-23":[-16.618125915527344,7.65500020980835],"4-1-11":[-17.260000228881836,32.279998779296875],"3-0-5":[-36.779884338378906,550.1085205078125],"6-7-48":[-26.576112747192383,-6.488333225250244],"6-7-49":[-40.14809799194336,-13.727499961853027],"5-3-24":[-40.14809799194336,-6.488333225250244],"6-7-50":[-47.5598258972168,-19.184999465942383],"6-7-51":[-60.0256233215332,-23.459999084472656],"5-3-25":[-63.68000030517578,-19.087499618530273],"4-1-12":[-70.16000366210938,-6.488333225250244],"6-7-52":[-69.1161117553711,-28.303499221801758],"6-7-53":[-81.44844055175781,-33.852500915527344],"5-3-26":[-84.18499755859375,-28.303499221801758],"6-7-54":[-93.96027374267578,-39.48649978637695],"6-7-55":[-109.84249877929688,-47.07500076293945],"5-3-27":[-110.05000305175781,-39.48649978637695],"4-1-13":[-113.4800033569336,-28.303499221801758],"3-0-6":[-120.91999816894531,6.480000019073486],"6-7-56":[-122.71861267089844,-54.61083221435547],"6-7-57":[-128.4365692138672,-60.842498779296875],"5-3-28":[-129.7449951171875,-54.61083221435547],"6-7-58":[-128.98800659179688,-62.740623474121094],"6-7-59":[-122.70687866210938,340.281494140625],"5-3-29":[-129.7449951171875,340.281494140625],"4-1-14":[-131.9031219482422,340.281494140625],"6-7-60":[-107.61062622070312,329.5502014160156],"6-7-61":[-97.2934799194336,5.382500171661377],"5-3-30":[-109.44000244140625,382.34393310546875],"6-7-62":[-86.3637466430664,3872.32177734375],"6-7-63":[-29.5401668548584,3078.76220703125],"5-3-31":[-87.48999786376953,3872.32177734375],"4-1-15":[-111.22000122070312,3872.32177734375],"3-0-7":[-132.78492736816406,3970.4091796875],"6-8-0":[11.2524995803833,27.272499084472656],"6-8-1":[8.741250038146973,21.803749084472656],"6-8-2":[2.697499990463257,17.899999618530273],"6-8-3":[-2.9568750858306885,4.355625152587891],"6-8-4":[-4.016738414764404,0.2549999952316284],"6-8-5":[-11.49072265625,-1.159999966621399],"6-8-6":[-10.523750305175781,46.218265533447266],"6-8-7":[12.55757999420166,2230.08203125],"6-8-8":[36.02083206176758,2322.748046875],"6-8-9":[40.433250427246094,1231.303955078125],"6-8-10":[15.758459091186523,1286.103759765625],"6-8-11":[-30.374862670898438,2365.51171875],"6-8-12":[7.932148456573486,340.6808776855469],"6-8-13":[5.517499923706055,23.365703582763672],"6-8-14":[-1.668125033378601,15.380000114440918],"6-8-15":[-16.517499923706055,0.6449999809265137],"6-8-16":[-24.681114196777344,-6.495500087738037],"6-8-17":[-32.28593826293945,-11.479999542236328],"6-8-18":[-35.38164138793945,-14.688249588012695],"6-8-19":[-34.557010650634766,-15.157500267028809],"6-8-20":[-31.707500457763672,-12.282500267028809],"6-8-21":[-26.04572296142578,-7.166416645050049],"6-8-22":[-18.779062271118164,0.9925000071525574],"6-8-23":[-3.5112500190734863,7.308281421661377],"6-8-24":[-3.445197820663452,4224.75732421875],"6-8-25":[1.0067187547683716,4199.189453125],"6-8-26":[0.32515624165534973,10.199999809265137],"6-8-27":[0.5287500023841858,13.279999732971191],"6-8-28":[4.260000228881836,20.803749084472656],"6-8-29":[8.369375228881836,29.81999969482422],"6-8-30":[12.880000114440918,33.99531173706055],"6-8-31":[-1.7135710716247559,39.29106521606445],"6-8-32":[14.172597885131836,33.53726577758789],"6-8-33":[6.641286849975586,33.64236831665039],"6-8-34":[6.426085948944092,29.427732467651367],"6-8-35":[5.614999771118164,18.209178924560547],"6-8-36":[5.177499771118164,15.561875343322754],"6-8-37":[5.3986639976501465,18.428096771240234],"6-8-38":[3.8399999141693115,14.397500038146973],"6-8-39":[3.25,45.91533279418945],"6-8-40":[1.537500023841858,11.5],"6-8-41":[0.06595833599567413,7.997499942779541],"6-8-42":[-0.014666666276752949,5.420000076293945],"6-8-43":[0.21820832788944244,5.21875],"6-8-44":[-2.277578115463257,4.539999961853027],"6-8-45":[-2.6106250286102295,2.5893750190734863],"6-8-46":[-8.970000267028809,1.159999966621399],"6-8-47":[-17.024375915527344,-3.983281135559082],"6-8-48":[-25.832500457763672,-6.488333225250244],"6-8-49":[-38.77000045776367,-13.075390815734863],"6-8-50":[-45.682498931884766,-18.947500228881836],"6-8-51":[-56.599998474121094,-22.560546875],"6-8-52":[-66.30249786376953,-26.799999237060547],"6-8-53":[-78.97000122070312,-32.27937316894531],"6-8-54":[-91.82875061035156,-38.185001373291016],"6-8-55":[-109.22000122070312,-46.252498626708984],"6-8-56":[-120.91417694091797,-53.724998474121094],"6-8-57":[-127.5999984741211,-60.42375183105469],"6-8-58":[-128.13999938964844,-62.514373779296875],"6-8-59":[-122.70687866210938,772.241455078125],"6-8-60":[-106.37999725341797,254.92803955078125],"6-8-61":[-97.01875305175781,77.32746124267578],"6-8-62":[-84.40812683105469,3797.08642578125],"6-8-63":[-29.5401668548584,3066.32568359375],"6-9-0":[11.457500457763672,27.3409366607666],"6-9-1":[8.741250038146973,22.091875076293945],"5-4-0":[8.741250038146973,27.3409366607666],"6-9-2":[2.3125,17.4403133392334],"6-9-3":[-4.860000133514404,3.8345508575439453],"5-4-1":[-4.860000133514404,17.899999618530273],"6-9-4":[-6.113242149353027,-0.500781238079071],"6-9-5":[-15.194999694824219,-2.83119797706604],"5-4-2":[-15.194999694824219,0.2549999952316284],"6-9-6":[-15.194999694824219,52.496681213378906],"6-9-7":[4.1992950439453125,2249.44970703125],"5-4-3":[-15.194999694824219,2249.44970703125],"6-9-8":[56.6418342590332,1957.91357421875],"6-9-9":[69.73687744140625,3549.51953125],"5-4-4":[36.02083206176758,3549.51953125],"6-9-10":[-8.724931716918945,3498.21533203125],"6-9-11":[-44.89970397949219,2301.60986328125],"5-4-5":[-44.89970397949219,3498.21533203125],"6-9-12":[6.613800048828125,28.1115779876709],"6-9-13":[5.071705341339111,22.277910232543945],"5-4-6":[5.071705341339111,340.6808776855469],"6-9-14":[-6.215312480926514,10.483750343322754],"6-9-15":[-22.350000381469727,-1.668125033378601],"5-4-7":[-22.350000381469727,15.380000114440918],"6-9-16":[-30.470624923706055,-8.539999961853027],"6-9-17":[-38.54499816894531,-13.074999809265137],"5-4-8":[-38.54499816894531,-6.495500087738037],"6-9-18":[-40.52312469482422,-16.27375030517578],"6-9-19":[-40.951560974121094,-16.03499984741211],"5-4-9":[-40.951560974121094,-14.688249588012695],"6-9-20":[-37.310001373291016,-13.341875076293945],"6-9-21":[-28.3565616607666,-9.7212495803833],"5-4-10":[-37.310001373291016,-7.166416645050049],"6-9-22":[-23.56999969482422,-3.5112500190734863],"6-9-23":[-16.8203125,1.375583291053772],"5-4-11":[-23.56999969482422,7.308281421661377],"6-9-24":[-11.510000228881836,8.239999771118164],"6-9-25":[-7.90749979019165,8.262412071228027],"5-4-12":[-11.510000228881836,4224.75732421875],"6-9-26":[-7.036445140838623,2.7547266483306885],"6-9-27":[-5.187187671661377,7.724999904632568],"5-4-13":[-7.036445140838623,13.279999732971191],"6-9-28":[1.3993333578109741,14.770977020263672],"6-9-29":[5.738749980926514,25.084999084472656],"5-4-14":[1.3993333578109741,29.81999969482422],"6-9-30":[10.368332862854004,28.440351486206055],"6-9-31":[12.398750305175781,30.850000381469727],"5-4-15":[-1.7135710716247559,39.29106521606445],"6-9-32":[13.545700073242188,31.330703735351562],"6-9-33":[10.49038028717041,28.4503116607666],"5-4-16":[6.641286849975586,33.64236831665039],"6-9-34":[7.622499942779541,22.625938415527344],"6-9-35":[4.585000038146973,15.886347770690918],"5-4-17":[4.585000038146973,29.427732467651367],"6-9-36":[2.958083391189575,11.100625038146973],"6-9-37":[-14.05573844909668,364.9197082519531],"5-4-18":[-14.05573844909668,364.9197082519531],"6-9-38":[1.8324999809265137,11.441797256469727],"6-9-39":[-0.7841235995292664,7.858437538146973],"5-4-19":[-0.7841235995292664,45.91533279418945],"6-9-40":[-2.8086719512939453,87.138671875],"6-9-41":[-2.895312547683716,2.059511661529541],"5-4-20":[-2.895312547683716,87.138671875],"6-9-42":[-3.314687490463257,0.39476561546325684],"6-9-43":[-4.28000020980835,0.6543750166893005],"5-4-21":[-4.28000020980835,5.420000076293945],"6-9-44":[-7.130312442779541,0.2199999988079071],"6-9-45":[-8.895000457763672,-1.2880417108535767],"5-4-22":[-8.895000457763672,4.539999961853027],"6-9-46":[-12.568750381469727,-1.341249942779541],"6-9-47":[-20.690000534057617,-5.15625],"5-4-23":[-20.690000534057617,1.159999966621399],"6-9-48":[-26.087186813354492,-8.732500076293945],"6-9-49":[-37.592185974121094,-13.138750076293945],"5-4-24":[-38.77000045776367,-6.488333225250244],"6-9-50":[-45.897499084472656,-17.80841636657715],"6-9-51":[-53.375,-22.5362491607666],"5-4-25":[-56.599998474121094,-17.80841636657715],"6-9-52":[-62.80812454223633,-25.90166664123535],"6-9-53":[-76.08875274658203,-30.770000457763672],"5-4-26":[-78.97000122070312,-25.90166664123535],"6-9-54":[-90.62894439697266,-37.361331939697266],"6-9-55":[-107.40687561035156,-45.630001068115234],"5-4-27":[-109.22000122070312,-37.361331939697266],"6-9-56":[-119.95437622070312,-53.04199981689453],"6-9-57":[-125.6215591430664,-58.6775016784668],"5-4-28":[-127.5999984741211,-53.04199981689453],"6-9-58":[-126.30062866210938,-58.13999938964844],"6-9-59":[-119.93265533447266,1007.2230834960938],"5-4-29":[-128.13999938964844,1007.2230834960938],"6-9-60":[-106.58070373535156,462.56500244140625],"6-9-61":[-95.9932632446289,462.56500244140625],"5-4-30":[-106.58070373535156,462.56500244140625],"6-9-62":[-84.93437194824219,2783.563232421875],"6-9-63":[-29.5401668548584,3039.727783203125],"5-4-31":[-84.93437194824219,3797.08642578125],"6-10-0":[11.667499542236328,27.381250381469727],"6-10-1":[8.800000190734863,22.46076202392578],"6-10-2":[2.1112499237060547,17.543750762939453],"6-10-3":[-5.066249847412109,2.911875009536743],"6-10-4":[-6.13232421875,-2.322499990463257],"6-10-5":[-16.623750686645508,-2.831583261489868],"6-10-6":[-16.978086471557617,31.95650291442871],"6-10-7":[-2.478412628173828,2250.863525390625],"6-10-8":[75.19137573242188,1714.2178955078125],"6-10-9":[30.4282169342041,6207.27099609375],"6-10-10":[-317.1861877441406,2318.110595703125],"6-10-11":[5.097465991973877,380.1875305175781],"6-10-12":[6.091172218322754,24.807422637939453],"6-10-13":[0.8162500262260437,18.20281219482422],"6-10-14":[-11.189238548278809,6.40500020980835],"6-10-15":[-27.778749465942383,-4.114999771118164],"6-10-16":[-35.959022521972656,-11.547666549682617],"6-10-17":[-43.893028259277344,-15.647500038146973],"6-10-18":[-45.00177764892578,-19.380332946777344],"6-10-19":[-44.414180755615234,-18.815500259399414],"6-10-20":[-43.073123931884766,-14.677499771118164],"6-10-21":[-34.28632736206055,-11.934833526611328],"6-10-22":[-28.407188415527344,-8.918749809265137],"6-10-23":[-23.580801010131836,-5.934166431427002],"6-10-24":[-20.022499084472656,-3.9537501335144043],"6-10-25":[-15.207304954528809,-3.1872000694274902],"6-10-26":[-11.962812423706055,-2.8350000381469727],"6-10-27":[-7.587500095367432,2.3499999046325684],"6-10-28":[-2.344374895095825,10.547499656677246],"6-10-29":[2.750624895095825,19.950000762939453],"6-10-30":[6.931250095367432,24.19937515258789],"6-10-31":[9.905625343322754,28.098125457763672],"6-10-32":[11.261249542236328,27.8700008392334],"6-10-33":[8.09375,27.3075008392334],"6-10-34":[4.973124980926514,20.69499969482422],"6-10-35":[0.28120237588882446,29.218786239624023],"6-10-36":[0.021005859598517418,34.327457427978516],"6-10-37":[-7.0457844734191895,982.4304809570312],"6-10-38":[-46.9925651550293,1738.201904296875],"6-10-39":[-8.604140281677246,368.8756103515625],"6-10-40":[-9.095549583435059,399.2919921875],"6-10-41":[-6.123906135559082,-0.9018645882606506],"6-10-42":[-5.0234375,-1.0723333358764648],"6-10-43":[-7.011757850646973,-1.377500057220459],"6-10-44":[-10.096796989440918,-2.2940833568573],"6-10-45":[-14.94156265258789,-3.9200000762939453],"6-10-46":[-16.655000686645508,-4.409583568572998],"6-10-47":[-23.635000228881836,-6.946249961853027],"6-10-48":[-27.675975799560547,-10.440333366394043],"6-10-49":[-35.4900016784668,-13.581250190734863],"6-10-50":[-42.838436126708984,-16.97624969482422],"6-10-51":[-51.630001068115234,-20.99625015258789],"6-10-52":[-60.0724983215332,-24.385000228881836],"6-10-53":[-74.72000122070312,-29.940000534057617],"6-10-54":[-88.640625,-36.563751220703125],"6-10-55":[-106.08000183105469,-44.40250015258789],"6-10-56":[-116.66030883789062,-51.744998931884766],"6-10-57":[-123.79499816894531,-57.34812545776367],"6-10-58":[-124.49594116210938,-55.657501220703125],"6-10-59":[-112.81625366210938,883.8759765625],"6-10-60":[-105.10375213623047,570.3699951171875],"6-10-61":[-5.83859395980835,549.4630126953125],"6-10-62":[-84.9361343383789,2425.3310546875],"6-10-63":[-29.5401668548584,3008.66650390625],"6-11-0":[11.741874694824219,27.44562530517578],"6-11-1":[8.800000190734863,23.155000686645508],"5-5-0":[8.800000190734863,27.44562530517578],"6-11-2":[1.899999976158142,18.149999618530273],"6-11-3":[-6.340000152587891,2.653749942779541],"5-5-1":[-6.340000152587891,18.149999618530273],"4-2-0":[-6.340000152587891,27.44562530517578],"6-11-4":[-8.0600004196167,-2.322499990463257],"6-11-5":[-16.518125534057617,-3.474375009536743],"5-5-2":[-16.623750686645508,-2.322499990463257],"6-11-6":[-17.3660945892334,5.585000038146973],"6-11-7":[-2.4521875381469727,2337.165283203125],"5-5-3":[-17.3660945892334,2337.165283203125],"4-2-1":[-17.3660945892334,2337.165283203125],"6-11-8":[96.6646728515625,1624.5230712890625],"6-11-9":[111.02944946289062,4180.154296875],"5-5-4":[30.4282169342041,6207.27099609375],"6-11-10":[-100.64525604248047,4014.1943359375],"6-11-11":[5.562460899353027,27.081594467163086],"5-5-5":[-317.1861877441406,4014.1943359375],"4-2-2":[-317.1861877441406,6207.27099609375],"6-11-12":[4.912499904632568,20.017305374145508],"6-11-13":[-4.050000190734863,12.888671875],"5-5-6":[-4.050000190734863,24.807422637939453],"6-11-14":[-18.19937515258789,1.0381250381469727],"6-11-15":[-33.29999923706055,-7.027500152587891],"5-5-7":[-33.29999923706055,6.40500020980835],"4-2-3":[-33.29999923706055,340.6808776855469],"6-11-16":[-42.193748474121094,-14.255000114440918],"6-11-17":[-50.15812683105469,-18.6200008392334],"5-5-8":[-50.15812683105469,-11.547666549682617],"6-11-18":[-52.630001068115234,-21.882030487060547],"6-11-19":[-51.008750915527344,-21.950000762939453],"5-5-9":[-52.630001068115234,-18.815500259399414],"4-2-4":[-52.630001068115234,-6.495500087738037],"6-11-20":[-49.52000045776367,-17.940624237060547],"6-11-21":[-42.63312530517578,-14.489999771118164],"5-5-10":[-49.52000045776367,-11.934833526611328],"6-11-22":[-34.900001525878906,-12.521249771118164],"6-11-23":[-31.497499465942383,-10.600000381469727],"5-5-11":[-34.900001525878906,-5.934166431427002],"4-2-5":[-49.52000045776367,7.308281421661377],"6-11-24":[-29.540000915527344,-8.20687484741211],"6-11-25":[-23.857500076293945,-6.388750076293945],"5-5-12":[-29.540000915527344,-3.1872000694274902],"6-11-26":[-19.860000610351562,-4.466249942779541],"6-11-27":[-13.369375228881836,-1.475000023841858],"5-5-13":[-19.860000610351562,2.3499999046325684],"4-2-6":[-29.540000915527344,4224.75732421875],"6-11-28":[-8.380000114440918,3.388124942779541],"6-11-29":[-0.3774999976158142,13.096875190734863],"5-5-14":[-8.380000114440918,19.950000762939453],"6-11-30":[3.7926056385040283,18.239473342895508],"6-11-31":[7.047500133514404,23.171875],"5-5-15":[3.7926056385040283,28.098125457763672],"4-2-7":[-8.380000114440918,39.29106521606445],"6-11-32":[8.414999961853027,23.227500915527344],"6-11-33":[6.614197254180908,21.793750762939453],"5-5-16":[6.614197254180908,27.8700008392334],"6-11-34":[1.940000057220459,15.524374961853027],"6-11-35":[-0.8299219012260437,8.733124732971191],"5-5-17":[-0.8299219012260437,29.218786239624023],"4-2-8":[-0.8299219012260437,33.64236831665039],"6-11-36":[-5.267663478851318,4.249687671661377],"6-11-37":[-19.161865234375,108.85962677001953],"5-5-18":[-19.161865234375,982.4304809570312],"6-11-38":[-10.063612937927246,418.1101989746094],"6-11-39":[-13.3696870803833,-1.418125033378601],"5-5-19":[-46.9925651550293,1738.201904296875],"4-2-9":[-46.9925651550293,1738.201904296875],"6-11-40":[-14.011959075927734,394.11322021484375],"6-11-41":[-9.36312484741211,-2.7464842796325684],"5-5-20":[-14.011959075927734,399.2919921875],"6-11-42":[-11.214374542236328,-2.0994532108306885],"6-11-43":[-11.678750038146973,-2.609999895095825],"5-5-21":[-11.678750038146973,-1.0723333358764648],"4-2-10":[-14.011959075927734,399.2919921875],"6-11-44":[-14.500624656677246,-3.6024999618530273],"6-11-45":[-18.65999984741211,-5.608749866485596],"5-5-22":[-18.65999984741211,-2.2940833568573],"6-11-46":[-22.4481258392334,-7.763750076293945],"6-11-47":[-26.040000915527344,-8.933124542236328],"5-5-23":[-26.040000915527344,-4.409583568572998],"4-2-11":[-26.040000915527344,4.539999961853027],"6-11-48":[-29.521249771118164,-11.907500267028809],"6-11-49":[-34.849998474121094,-13.596375465393066],"5-5-24":[-35.4900016784668,-10.440333366394043],"6-11-50":[-40.96437454223633,-16.509166717529297],"6-11-51":[-48.5212516784668,-20.15999984741211],"5-5-25":[-51.630001068115234,-16.509166717529297],"4-2-12":[-56.599998474121094,-6.488333225250244],"6-11-52":[-58.202362060546875,-23.76449966430664],"6-11-53":[-72.984375,-29.485000610351562],"5-5-26":[-74.72000122070312,-23.76449966430664],"6-11-54":[-86.2070541381836,-36.12033462524414],"6-11-55":[-103.1762466430664,-43.08000183105469],"5-5-27":[-106.08000183105469,-36.12033462524414],"4-2-13":[-109.22000122070312,-23.76449966430664],"6-11-56":[-113.78437805175781,-50.30149841308594],"6-11-57":[-120.62158203125,-55.962501525878906],"5-5-28":[-123.79499816894531,-50.30149841308594],"6-11-58":[-122.10093688964844,-30.170000076293945],"6-11-59":[-109.72523498535156,896.3336791992188],"5-5-29":[-124.49594116210938,896.3336791992188],"4-2-14":[-128.13999938964844,1007.2230834960938],"6-11-60":[-50.88039016723633,667.989990234375],"6-11-61":[119.3125,564.7938842773438],"5-5-30":[-105.10375213623047,667.989990234375],"6-11-62":[-24.929061889648438,3379.224609375],"6-11-63":[-29.540000915527344,2977.44091796875],"5-5-31":[-84.9361343383789,3379.224609375],"4-2-15":[-106.58070373535156,3797.08642578125],"6-12-0":[11.819000244140625,27.533750534057617],"6-12-1":[9.272500038146973,23.841699600219727],"6-12-2":[1.8106249570846558,18.506874084472656],"6-12-3":[-7.356874942779541,2.559999942779541],"6-12-4":[-10.197500228881836,-3.3635001182556152],"6-12-5":[-14.191875457763672,-3.64327073097229],"6-12-6":[-17.241249084472656,-1.4606093168258667],"6-12-7":[-2.3975000381469727,2626.572998046875],"6-12-8":[127.44281005859375,1971.138671875],"6-12-9":[267.4465026855469,4964.35400390625],"6-12-10":[-3.832796573638916,5003.12841796875],"6-12-11":[5.5312113761901855,17.7628116607666],"6-12-12":[1.2231249809265137,17.438905715942383],"6-12-13":[-9.271875381469727,8.073749542236328],"6-12-14":[-24.322851181030273,-2.5460000038146973],"6-12-15":[-38.36312484741211,-10.055000305175781],"6-12-16":[-46.588966369628906,-16.836334228515625],"6-12-17":[-57.07093811035156,-21.6924991607666],"6-12-18":[-58.75830078125,-25.00116729736328],"6-12-19":[-58.501190185546875,-24.80299949645996],"6-12-20":[-55.290626525878906,-22.36750030517578],"6-12-21":[-47.71769714355469,-17.538999557495117],"6-12-22":[-42.00968933105469,-15.949999809265137],"6-12-23":[-37.94425964355469,-14.942000389099121],"6-12-24":[-36.951873779296875,-12.1875],"6-12-25":[-32.3796501159668,-10.059000015258789],"6-12-26":[-27.788124084472656,-7.262499809265137],"6-12-27":[-19.340410232543945,-4.412166595458984],"6-12-28":[-13.918749809265137,-0.3774999976158142],"6-12-29":[-6.261875152587891,6.599999904632568],"6-12-30":[-0.20374999940395355,13.42562484741211],"6-12-31":[3.374375104904175,18.85124969482422],"6-12-32":[5.200624942779541,19.073749542236328],"6-12-33":[3.8550000190734863,16.436250686645508],"6-12-34":[1.0069496631622314,12.390000343322754],"6-12-35":[-5.90500020980835,3.0587499141693115],"6-12-36":[-9.382499694824219,-0.47999998927116394],"6-12-37":[-17.498376846313477,26.38780975341797],"6-12-38":[-14.845000267028809,15.84441089630127],"6-12-39":[-17.049999237060547,13.137022018432617],"6-12-40":[-17.300918579101562,-5.040020942687988],"6-12-41":[-154.98265075683594,367.09857177734375],"6-12-42":[-15.193652153015137,-4.663000106811523],"6-12-43":[-16.841405868530273,-5.49066686630249],"6-12-44":[-17.712987899780273,-5.685999870300293],"6-12-45":[-20.8799991607666,-7.489999771118164],"6-12-46":[-23.222383499145508,-9.376583099365234],"6-12-47":[-28.19937515258789,-11.329999923706055],"6-12-48":[-31.141874313354492,-13.012833595275879],"6-12-49":[-35.21500015258789,-15.162500381469727],"6-12-50":[-39.712501525878906,-16.790082931518555],"6-12-51":[-47.400001525878906,-19.153749465942383],"6-12-52":[-57.334373474121094,-23.293333053588867],"6-12-53":[-72.23999786376953,-28.77750015258789],"6-12-54":[-84.63749694824219,-35.595001220703125],"6-12-55":[-100.5999984741211,-41.8125],"6-12-56":[-110.80000305175781,-48.60749816894531],"6-12-57":[-116.72000122070312,-54.27937316894531],"6-12-58":[-118.76499938964844,732.2037353515625],"6-12-59":[-106.6206283569336,1118.7081298828125],"6-12-60":[70.79666900634766,697.8187255859375],"6-12-61":[154.07675170898438,547.4324951171875],"6-12-62":[132.6687469482422,3177.510986328125],"6-12-63":[-29.540000915527344,2958.3984375],"6-13-0":[11.89020824432373,27.6825008392334],"6-13-1":[9.272500038146973,24.717187881469727],"5-6-0":[9.272500038146973,27.6825008392334],"6-13-2":[1.7725000381469727,18.68000030517578],"6-13-3":[-8.119999885559082,2.2853124141693115],"5-6-1":[-8.119999885559082,18.68000030517578],"6-13-4":[-12.784062385559082,-3.7049999237060547],"6-13-5":[-16.110000610351562,-5.114140510559082],"5-6-2":[-16.110000610351562,-3.3635001182556152],"6-13-6":[-16.457382202148438,-1.5119999647140503],"6-13-7":[-4.497082233428955,2443.640625],"5-6-3":[-17.241249084472656,2626.572998046875],"6-13-8":[159.96824645996094,1955.5152587890625],"6-13-9":[264.6709289550781,3305.1884765625],"5-6-4":[127.44281005859375,4964.35400390625],"6-13-10":[-0.6224533319473267,5501.17333984375],"6-13-11":[3.4062371253967285,16.189647674560547],"5-6-5":[-3.832796573638916,5501.17333984375],"6-13-12":[-4.324687480926514,12.529999732971191],"6-13-13":[-18.104999542236328,1.2231249809265137],"5-6-6":[-18.104999542236328,17.438905715942383],"6-13-14":[-32.000938415527344,-5.039999961853027],"6-13-15":[-45.79999923706055,-13.681249618530273],"5-6-7":[-45.79999923706055,-2.5460000038146973],"6-13-16":[-52.602813720703125,-19.600000381469727],"6-13-17":[-65.06500244140625,-24.299999237060547],"5-6-8":[-65.06500244140625,-16.836334228515625],"6-13-18":[-66.1937484741211,-29.094375610351562],"6-13-19":[-65.61499786376953,-28.0575008392334],"5-6-9":[-66.1937484741211,-24.80299949645996],"6-13-20":[-61.2599983215332,-25.115625381469727],"6-13-21":[-55.51124954223633,-21.577499389648438],"5-6-10":[-61.2599983215332,-17.538999557495117],"6-13-22":[-51.79999923706055,-19.251874923706055],"6-13-23":[-47.06656265258789,-19.0887508392334],"5-6-11":[-51.79999923706055,-14.942000389099121],"6-13-24":[-46.23500061035156,-17.09749984741211],"6-13-25":[-43.40281295776367,-14.52750015258789],"5-6-12":[-46.23500061035156,-10.059000015258789],"6-13-26":[-38.70500183105469,-10.516249656677246],"6-13-27":[-27.95718765258789,-7.347499847412109],"5-6-13":[-38.70500183105469,-4.412166595458984],"6-13-28":[-23.219999313354492,-4.176249980926514],"6-13-29":[-16.963125228881836,-0.20374999940395355],"5-6-14":[-23.219999313354492,6.599999904632568],"6-13-30":[-9.104999542236328,5.142226696014404],"6-13-31":[-0.6143749952316284,10.048749923706055],"5-6-15":[-9.104999542236328,18.85124969482422],"6-13-32":[1.6259167194366455,10.9662504196167],"6-13-33":[1.6467499732971191,9.141249656677246],"5-6-16":[1.6259167194366455,19.073749542236328],"6-13-34":[-12.002031326293945,573.9912109375],"6-13-35":[-8.399999618530273,3.193598985671997],"5-6-17":[-12.002031326293945,573.9912109375],"6-13-36":[-12.407500267028809,-2.9606001377105713],"6-13-37":[-12.609062194824219,18.933923721313477],"5-6-18":[-17.498376846313477,26.38780975341797],"6-13-38":[-17.041166305541992,15.135894775390625],"6-13-39":[-23.072845458984375,21.328601837158203],"5-6-19":[-23.072845458984375,21.328601837158203],"6-13-40":[-20.889257431030273,-7.977499961853027],"6-13-41":[-20.887500762939453,-4.361435413360596],"5-6-20":[-154.98265075683594,367.09857177734375],"6-13-42":[-17.404375076293945,-4.927500247955322],"6-13-43":[-19.709999084472656,-8.031874656677246],"5-6-21":[-19.709999084472656,-4.663000106811523],"6-13-44":[-19.709999084472656,-8.363594055175781],"6-13-45":[-23.084999084472656,-9.224374771118164],"5-6-22":[-23.084999084472656,-5.685999870300293],"6-13-46":[-26.219999313354492,-10.623749732971191],"6-13-47":[-29.920000076293945,-11.929374694824219],"5-6-23":[-29.920000076293945,-9.376583099365234],"6-13-48":[-33.194374084472656,-14.27750015258789],"6-13-49":[-36.6875,-15.881250381469727],"5-6-24":[-36.6875,-13.012833595275879],"6-13-50":[-37.715763092041016,-16.790082931518555],"6-13-51":[-46.576873779296875,-18.042499542236328],"5-6-25":[-47.400001525878906,-16.790082931518555],"6-13-52":[-56.12125015258789,-21.694665908813477],"6-13-53":[-71.09062194824219,-28.363750457763672],"5-6-26":[-72.23999786376953,-21.694665908813477],"6-13-54":[-82.1624984741211,-35.16116714477539],"6-13-55":[-96.83625030517578,-41.49625015258789],"5-6-27":[-100.5999984741211,-35.16116714477539],"6-13-56":[-107.16232299804688,-47.12099838256836],"6-13-57":[-113.390625,-52.397499084472656],"5-6-28":[-116.72000122070312,-47.12099838256836],"6-13-58":[-113.7944107055664,799.7843627929688],"6-13-59":[542.7723388671875,1415.2315673828125],"5-6-29":[-118.76499938964844,1415.2315673828125],"6-13-60":[220.94874572753906,696.798095703125],"6-13-61":[196.25140380859375,578.8093872070312],"5-6-30":[70.79666900634766,697.8187255859375],"6-13-62":[157.8232879638672,2807.418701171875],"6-13-63":[-29.540000915527344,2933.2626953125],"5-6-31":[-29.540000915527344,3177.510986328125],"6-14-0":[11.983499526977539,27.800586700439453],"6-14-1":[9.31624984741211,25.275625228881836],"6-14-2":[1.78125,18.689062118530273],"6-14-3":[-8.413749694824219,2.838124990463257],"6-14-4":[-14.7079496383667,-4.242499828338623],"6-14-5":[-17.700117111206055,-6.659999847412109],"6-14-6":[-16.944686889648438,-3.213749885559082],"6-14-7":[-6.9461565017700195,1629.0704345703125],"6-14-8":[241.64471435546875,2195.838623046875],"6-14-9":[291.0743103027344,2352.24951171875],"6-14-10":[-17.804166793823242,5990.11962890625],"6-14-11":[-1.2200000286102295,1250.78271484375],"6-14-12":[-8.901054382324219,5.46999979019165],"6-14-13":[-24.341875076293945,-2.9000000953674316],"6-14-14":[-37.351036071777344,-9.516500473022461],"6-14-15":[-50.798126220703125,-17.008750915527344],"6-14-16":[-57.15242004394531,-23.13716697692871],"6-14-17":[-69.05999755859375,-26.797500610351562],"6-14-18":[-71.12750244140625,-32.266082763671875],"6-14-19":[-70.56632995605469,-30.6336669921875],"6-14-20":[-66.4800033569336,-28.02375030517578],"6-14-21":[-61.050899505615234,-25.990333557128906],"6-14-22":[-58.979373931884766,-23.49250030517578],"6-14-23":[-55.46990203857422,-22.957082748413086],"6-14-24":[-54.2287483215332,-21.90250015258789],"6-14-25":[-50.54070281982422,-19.65041732788086],"6-14-26":[-46.2053108215332,-14.460000038146973],"6-14-27":[-36.46812438964844,-11.821416854858398],"6-14-28":[-32.836875915527344,-8.883749961853027],"6-14-29":[-24.975000381469727,-4.8685832023620605],"6-14-30":[-17.654062271118164,-0.5412499904632568],"6-14-31":[-8.281425476074219,3.130000114440918],"6-14-32":[-4.328125,4.378749847412109],"6-14-33":[-3.033515691757202,4.030624866485596],"6-14-34":[-30.111135482788086,444.866943359375],"6-14-35":[-45.63091278076172,1253.8404541015625],"6-14-36":[-15.813750267028809,-4.200000286102295],"6-14-37":[-18.569297790527344,11.80428409576416],"6-14-38":[-20.379159927368164,12.551578521728516],"6-14-39":[-34.52309036254883,29.275890350341797],"6-14-40":[-23.6026554107666,-9.965995788574219],"6-14-41":[-23.645761489868164,-8.25],"6-14-42":[-22.250625610351562,-7.63742208480835],"6-14-43":[-21.352500915527344,-8.791250228881836],"6-14-44":[-21.352500915527344,-9.4486665725708],"6-14-45":[-23.94124984741211,-9.801250457763672],"6-14-46":[-26.927227020263672,-11.594083786010742],"6-14-47":[-30.821250915527344,-13.3462495803833],"6-14-48":[-34.24107360839844,-14.966666221618652],"6-14-49":[-36.45500183105469,-16.649999618530273],"6-14-50":[-38.96351623535156,-17.151832580566406],"6-14-51":[-43.16999816894531,-17.845233917236328],"6-14-52":[-55.19937515258789,-20.47249984741211],"6-14-53":[-70.31999969482422,-27.456249237060547],"6-14-54":[-81.46906280517578,-34.20000076293945],"6-14-55":[-94.23999786376953,-40.37437438964844],"6-14-56":[-103.98218536376953,-46.192501068115234],"6-14-57":[-110.47000122070312,-50.326873779296875],"6-14-58":[-111.10343933105469,1501.6400146484375],"6-14-59":[649.8099975585938,1730.6363525390625],"6-14-60":[290.61187744140625,752.20751953125],"6-14-61":[298.2987365722656,587.9898071289062],"6-14-62":[230.04750061035156,3232.0341796875],"6-14-63":[-29.539833068847656,2914.458740234375],"6-15-0":[12.072333335876465,27.943750381469727],"6-15-1":[9.31624984741211,25.799999237060547],"5-7-0":[9.31624984741211,27.943750381469727],"6-15-2":[2.005000114440918,18.618436813354492],"6-15-3":[-9.359999656677246,3.568125009536743],"5-7-1":[-9.359999656677246,18.689062118530273],"4-3-0":[-9.359999656677246,27.943750381469727],"6-15-4":[-15.657578468322754,-4.242499828338623],"6-15-5":[-19.891250610351562,-7.761250019073486],"5-7-2":[-19.891250610351562,-4.242499828338623],"6-15-6":[-18.709999084472656,-3.0283334255218506],"6-15-7":[-10.727499961853027,1677.3275146484375],"5-7-3":[-18.709999084472656,1677.3275146484375],"4-3-1":[-19.891250610351562,2626.572998046875],"3-1-0":[-19.891250610351562,2626.572998046875],"6-15-8":[6.28249979019165,2201.63671875],"6-15-9":[372.0604553222656,2244.88623046875],"5-7-4":[6.28249979019165,2352.24951171875],"6-15-10":[-3.497455358505249,3286.5234375],"6-15-11":[-24.00284194946289,4338.48828125],"5-7-5":[-24.00284194946289,5990.11962890625],"4-3-2":[-24.00284194946289,5990.11962890625],"6-15-12":[-15.999375343322754,0.25999999046325684],"6-15-13":[-30.5,-5.773749828338623],"5-7-6":[-30.5,5.46999979019165],"6-15-14":[-41.90562438964844,-12.5600004196167],"6-15-15":[-54.880001068115234,-19.831249237060547],"5-7-7":[-54.880001068115234,-9.516500473022461],"4-3-3":[-54.880001068115234,17.438905715942383],"3-1-1":[-317.1861877441406,6207.27099609375],"2-0-0":[-317.1861877441406,6207.27099609375],"6-15-16":[-61.52937316894531,-25.72249984741211],"6-15-17":[-71.95999908447266,-29.356250762939453],"5-7-8":[-71.95999908447266,-23.13716697692871],"6-15-18":[-74.96125030517578,-34.50175094604492],"6-15-19":[-75.34500122070312,-33.70500183105469],"5-7-9":[-75.34500122070312,-30.6336669921875],"4-3-4":[-75.34500122070312,-16.836334228515625],"6-15-20":[-73.31999969482422,-31.193124771118164],"6-15-21":[-69.10624694824219,-29.897499084472656],"5-7-10":[-73.31999969482422,-25.990333557128906],"6-15-22":[-67.30999755859375,-28.483125686645508],"6-15-23":[-66.04937744140625,-27.6825008392334],"5-7-11":[-67.30999755859375,-22.957082748413086],"4-3-5":[-73.31999969482422,-14.942000389099121],"3-1-2":[-75.34500122070312,7.308281421661377],"6-15-24":[-64.9000015258789,-26.113750457763672],"6-15-25":[-62.041873931884766,-23.708749771118164],"5-7-12":[-64.9000015258789,-19.65041732788086],"6-15-26":[-58.25,-19.12874984741211],"6-15-27":[-49.505001068115234,-17.077499389648438],"5-7-13":[-58.25,-11.821416854858398],"4-3-6":[-64.9000015258789,-4.412166595458984],"6-15-28":[-44.779998779296875,-13.5131254196167],"6-15-29":[-35.92124938964844,-9.363750457763672],"5-7-14":[-44.779998779296875,-4.8685832023620605],"6-15-30":[-28.31999969482422,-5.141250133514404],"6-15-31":[-19.134374618530273,-2.7125000953674316],"5-7-15":[-28.31999969482422,3.130000114440918],"4-3-7":[-44.779998779296875,18.85124969482422],"3-1-3":[-64.9000015258789,4224.75732421875],"2-0-1":[-75.34500122070312,4224.75732421875],"6-15-32":[-13.720000267028809,-1.7131249904632568],"6-15-33":[-10.62125015258789,-1.4902032613754272],"5-7-16":[-13.720000267028809,4.378749847412109],"6-15-34":[-10.770000457763672,-2.124570369720459],"6-15-35":[-13.920000076293945,-2.9356253147125244],"5-7-17":[-45.63091278076172,1253.8404541015625],"4-3-8":[-45.63091278076172,1253.8404541015625],"6-15-36":[-18.770000457763672,-4.46750020980835],"6-15-37":[-22.110000610351562,-7.906875133514404],"5-7-18":[-22.110000610351562,11.80428409576416],"6-15-38":[-22.479999542236328,7.9797844886779785],"6-15-39":[-23.826719284057617,16.81255340576172],"5-7-19":[-34.52309036254883,29.275890350341797],"4-3-9":[-34.52309036254883,29.275890350341797],"3-1-4":[-46.9925651550293,1738.201904296875],"6-15-40":[-25.597108840942383,210.53302001953125],"6-15-41":[-26.6200008392334,-11.385000228881836],"5-7-20":[-26.6200008392334,210.53302001953125],"6-15-42":[-26.149999618530273,-10.104687690734863],"6-15-43":[-23.46062469482422,-10.2212495803833],"5-7-21":[-26.149999618530273,-7.63742208480835],"4-3-10":[-154.98265075683594,367.09857177734375],"6-15-44":[-23.360000610351562,-10.289765357971191],"6-15-45":[-24.799999237060547,-10.387499809265137],"5-7-22":[-24.799999237060547,-9.4486665725708],"6-15-46":[-27.566953659057617,-12.051250457763672],"6-15-47":[-31.678749084472656,-13.689374923706055],"5-7-23":[-31.678749084472656,-11.594083786010742],"4-3-11":[-31.678749084472656,-5.685999870300293],"3-1-5":[-154.98265075683594,399.2919921875],"2-0-2":[-154.98265075683594,1897.3251953125],"6-15-48":[-33.820411682128906,-15.283166885375977],"6-15-49":[-36.23812484741211,-16.572500228881836],"5-7-24":[-36.45500183105469,-14.966666221618652],"6-15-50":[-40.841522216796875,-17.93341636657715],"6-15-51":[-40.80437469482422,-17.171499252319336],"5-7-25":[-43.16999816894531,-17.151832580566406],"4-3-12":[-47.400001525878906,-13.012833595275879],"6-15-52":[-53.45785140991211,-20.293167114257812],"6-15-53":[-68.2143783569336,-26.614999771118164],"5-7-26":[-70.31999969482422,-20.293167114257812],"6-15-54":[-79.47427368164062,-33.55141830444336],"6-15-55":[-91.98999786376953,-40.098045349121094],"5-7-27":[-94.23999786376953,-33.55141830444336],"4-3-13":[-100.5999984741211,-20.293167114257812],"3-1-6":[-109.22000122070312,-6.488333225250244],"6-15-56":[-99.14472961425781,-44.202999114990234],"6-15-57":[-105.5296859741211,-47.942501068115234],"5-7-28":[-110.47000122070312,-44.202999114990234],"6-15-58":[-105.5296859741211,1582.8037109375],"6-15-59":[752.20751953125,3280.756103515625],"5-7-29":[-111.10343933105469,3280.756103515625],"4-3-14":[-118.76499938964844,3280.756103515625],"6-15-60":[370.12579345703125,1055.949951171875],"6-15-61":[342.75750732421875,583.6599731445312],"5-7-30":[290.61187744140625,1055.949951171875],"6-15-62":[359.1356201171875,3299.768798828125],"6-15-63":[-29.5396671295166,2899.394775390625],"5-7-31":[-29.539833068847656,3299.768798828125],"4-3-15":[-29.540000915527344,3299.768798828125],"3-1-7":[-128.13999938964844,3797.08642578125],"2-0-3":[-132.78492736816406,3970.4091796875],"6-16-0":[12.184833526611328,28.052499771118164],"6-16-1":[9.425000190734863,26.433124542236328],"6-16-2":[2.3550000190734863,18.803749084472656],"6-16-3":[-9.460000038146973,3.6186327934265137],"6-16-4":[-15.498749732971191,-4.65500020980835],"6-16-5":[-19.891250610351562,-6.144374847412109],"6-16-6":[-18.709999084472656,-2.9288907051086426],"6-16-7":[-13.50113296508789,358.62237548828125],"6-16-8":[4.931458473205566,2700.73486328125],"6-16-9":[524.0399780273438,2379.954833984375],"6-16-10":[138.16371154785156,2349.519287109375],"6-16-11":[-19.038177490234375,3089.824462890625],"6-16-12":[-32.365787506103516,1191.7806396484375],"6-16-13":[-32.772499084472656,1099.2327880859375],"6-16-14":[-42.72089767456055,-15.25],"6-16-15":[-55.779998779296875,-21.827499389648438],"6-16-16":[-62.12187576293945,-27.457500457763672],"6-16-17":[-73.81937408447266,-31.059999465942383],"6-16-18":[-77.85652160644531,-35.86916732788086],"6-16-19":[-79.1880874633789,-36.66383361816406],"6-16-20":[-78.79125213623047,-34.532501220703125],"6-16-21":[-75.07132720947266,-33.65683364868164],"6-16-22":[-74.1821517944336,-33.08399963378906],"6-16-23":[-73.59064483642578,-32.442832946777344],"6-16-24":[-71.55551147460938,-31.170000076293945],"6-16-25":[-70.96455383300781,-29.129833221435547],"6-16-26":[-66.9800033569336,-25.122499465942383],"6-16-27":[-59.79132843017578,-22.612167358398438],"6-16-28":[-53.62562561035156,-18.47249984741211],"6-16-29":[-44.98892593383789,-14.428750038146973],"6-16-30":[-35.19218826293945,-9.880000114440918],"6-16-31":[-25.614238739013672,-7.010499954223633],"6-16-32":[-19.938749313354492,-5.380000114440918],"6-16-33":[-16.19253921508789,-5.075000286102295],"6-16-34":[-15.915801048278809,-4.900199890136719],"6-16-35":[-16.4117374420166,-5.385000228881836],"6-16-36":[-19.224180221557617,-6.960000038146973],"6-16-37":[-22.110000610351562,-9.385000228881836],"6-16-38":[-22.8221492767334,-10.64050006866455],"6-16-39":[-23.634775161743164,-10.88070297241211],"6-16-40":[-25.598867416381836,395.497802734375],"6-16-41":[-27.177167892456055,-12.585866928100586],"6-16-42":[-27.184999465942383,-11.899999618530273],"6-16-43":[-25.240703582763672,-11.482500076293945],"6-16-44":[-23.887500762939453,-10.73617172241211],"6-16-45":[-25.502187728881836,-11.642499923706055],"6-16-46":[-27.5489444732666,-12.42508316040039],"6-16-47":[-30.3799991607666,-13.833125114440918],"6-16-48":[-32.714412689208984,-14.635000228881836],"6-16-49":[-36.223751068115234,-15.295000076293945],"6-16-50":[-40.560001373291016,-17.572500228881836],"6-16-51":[-40.619998931884766,-17.171499252319336],"6-16-52":[-52.59749984741211,-20.030000686645508],"6-16-53":[-67.0999984741211,-26.248125076293945],"6-16-54":[-78.94437408447266,-32.278751373291016],"6-16-55":[-88.4000015258789,-38.743125915527344],"6-16-56":[-94.86624908447266,-42.36000061035156],"6-16-57":[-102.30000305175781,-45.37125015258789],"6-16-58":[-102.30000305175781,2780.2744140625],"6-16-59":[1055.949951171875,3057.05615234375],"6-16-60":[561.6331176757812,1251.60498046875],"6-16-61":[360.22686767578125,729.5387573242188],"6-16-62":[569.3925170898438,3324.721923828125],"6-16-63":[-29.539499282836914,2887.581298828125],"6-17-0":[12.286833763122559,28.19937515258789],"6-17-1":[9.425000190734863,27.083749771118164],"5-8-0":[9.425000190734863,28.19937515258789],"6-17-2":[2.442500114440918,19.469999313354492],"6-17-3":[-9.25374984741211,3.3941991329193115],"5-8-1":[-9.460000038146973,19.469999313354492],"6-17-4":[-12.454140663146973,-4.276083469390869],"6-17-5":[-17.593671798706055,-3.5425000190734863],"5-8-2":[-19.891250610351562,-3.5425000190734863],"6-17-6":[-16.966875076293945,-3.5717084407806396],"6-17-7":[-17.021875381469727,450.80499267578125],"5-8-3":[-18.709999084472656,450.80499267578125],"6-17-8":[-0.9910249710083008,2409.031982421875],"6-17-9":[729.4192504882812,2941.768310546875],"5-8-4":[-0.9910249710083008,2941.768310546875],"6-17-10":[639.5049438476562,2300.18603515625],"6-17-11":[-7.7277445793151855,3041.405029296875],"5-8-5":[-19.038177490234375,3089.824462890625],"6-17-12":[-40.40359878540039,2709.88427734375],"6-17-13":[-36.11019515991211,1110.765625],"5-8-6":[-40.40359878540039,2709.88427734375],"6-17-14":[-44.377498626708984,-16.386249542236328],"6-17-15":[-55.36249923706055,-22.039844512939453],"5-8-7":[-55.779998779296875,-15.25],"6-17-16":[-62.0283203125,-26.246166229248047],"6-17-17":[-74.4262466430664,-30.627500534057617],"5-8-8":[-74.4262466430664,-26.246166229248047],"6-17-18":[-79.52375030517578,-36.847415924072266],"6-17-19":[-81.7768783569336,-38.948123931884766],"5-8-9":[-81.7768783569336,-35.86916732788086],"6-17-20":[-81.38999938964844,-38.147499084472656],"6-17-21":[-82.88999938964844,-37.30649948120117],"5-8-10":[-82.88999938964844,-33.65683364868164],"6-17-22":[-83.09468841552734,-37.32500076293945],"6-17-23":[-82.34656524658203,-36.183982849121094],"5-8-11":[-83.09468841552734,-32.442832946777344],"6-17-24":[-81.18687438964844,-36.06999969482422],"6-17-25":[-80.3109359741211,-33.993751525878906],"5-8-12":[-81.18687438964844,-29.129833221435547],"6-17-26":[-77.61499786376953,-31.193124771118164],"6-17-27":[-70.93624877929688,-27.457500457763672],"5-8-13":[-77.61499786376953,-22.612167358398438],"6-17-28":[-64.30999755859375,-23.689374923706055],"6-17-29":[-53.990936279296875,-18.0674991607666],"5-8-14":[-64.30999755859375,-14.428750038146973],"6-17-30":[-43.72999954223633,-13.829375267028809],"6-17-31":[-34.30937576293945,-10.34749984741211],"5-8-15":[-43.72999954223633,-7.010499954223633],"6-17-32":[-28.030000686645508,-8.321874618530273],"6-17-33":[-22.5262508392334,-7.815000057220459],"5-8-16":[-28.030000686645508,-5.075000286102295],"6-17-34":[-20.705312728881836,-7.815000057220459],"6-17-35":[-20.21875,-8.004530906677246],"5-8-17":[-20.705312728881836,-4.900199890136719],"6-17-36":[-18.901601791381836,-8.25],"6-17-37":[-21.682811737060547,-9.447500228881836],"5-8-18":[-22.110000610351562,-6.960000038146973],"6-17-38":[-22.7861328125,-10.07883358001709],"6-17-39":[-23.6356258392334,-11.0649995803833],"5-8-19":[-23.6356258392334,-10.07883358001709],"6-17-40":[-25.597509384155273,315.390625],"6-17-41":[-27.149063110351562,-11.326250076293945],"5-8-20":[-27.177167892456055,395.497802734375],"6-17-42":[-27.19906234741211,-12.55875015258789],"6-17-43":[-25.290000915527344,-11.229999542236328],"5-8-21":[-27.19906234741211,-11.229999542236328],"6-17-44":[-23.381874084472656,-10.839219093322754],"6-17-45":[-25.683124542236328,-11.639843940734863],"5-8-22":[-25.683124542236328,-10.73617172241211],"6-17-46":[-27.3160343170166,-12.299333572387695],"6-17-47":[-29.014999389648438,-13.430000305175781],"5-8-23":[-30.3799991607666,-12.299333572387695],"6-17-48":[-30.308046340942383,-14.001749992370605],"6-17-49":[-34.8224983215332,-14.4375],"5-8-24":[-36.223751068115234,-14.001749992370605],"6-17-50":[-36.27666091918945,-15.715167045593262],"6-17-51":[-39.90812683105469,-16.545000076293945],"5-8-25":[-40.619998931884766,-15.715167045593262],"6-17-52":[-49.941856384277344,-19.223833084106445],"6-17-53":[-64.3812484741211,-24.436250686645508],"5-8-26":[-67.0999984741211,-19.223833084106445],"6-17-54":[-75.82951354980469,-31.354415893554688],"6-17-55":[-84.14437866210938,-37.16875076293945],"5-8-27":[-88.4000015258789,-31.354415893554688],"6-17-56":[-89.72777557373047,-39.94816589355469],"6-17-57":[-97.12150573730469,-43.443748474121094],"5-8-28":[-102.30000305175781,-39.94816589355469],"6-17-58":[-96.34843444824219,2730.015869140625],"6-17-59":[1251.60498046875,2341.317626953125],"5-8-29":[-102.30000305175781,3057.05615234375],"6-17-60":[646.7380981445312,1350.324951171875],"6-17-61":[434.89813232421875,803.4874877929688],"5-8-30":[360.22686767578125,1350.324951171875],"6-17-62":[729.5387573242188,3573.160400390625],"6-17-63":[-29.53933334350586,2879.048828125],"5-8-31":[-29.539499282836914,3573.160400390625],"6-18-0":[12.40250015258789,28.309999465942383],"6-18-1":[10.072500228881836,27.598651885986328],"6-18-2":[2.4049999713897705,20.073749542236328],"6-18-3":[-8.329999923706055,2.7487499713897705],"6-18-4":[-10.390625,-2.3653125762939453],"6-18-5":[-18.82437515258789,-3.4314844608306885],"6-18-6":[-22.520801544189453,142.07717895507812],"6-18-7":[-18.167499542236328,429.9646301269531],"6-18-8":[-0.1547500044107437,2151.78857421875],"6-18-9":[348.4206237792969,2614.22802734375],"6-18-10":[9.5156888961792,2710.741455078125],"6-18-11":[294.7574462890625,2698.89794921875],"6-18-12":[-24.65729331970215,2746.582763671875],"6-18-13":[-259.60552978515625,2747.569091796875],"6-18-14":[-46.274295806884766,1843.488037109375],"6-18-15":[-53.347225189208984,-22.188749313354492],"6-18-16":[-60.6584358215332,-26.445833206176758],"6-18-17":[-73.73175811767578,-29.66437530517578],"6-18-18":[-79.71800994873047,-35.92625045776367],"6-18-19":[-82.55191040039062,-39.872501373291016],"6-18-20":[-83.13372802734375,-40.29249954223633],"6-18-21":[-87.24937438964844,-40.68000030517578],"6-18-22":[-88.4378890991211,-41.388832092285156],"6-18-23":[-87.73374938964844,-40.45600128173828],"6-18-24":[-87.07062530517578,-40.241249084472656],"6-18-25":[-86.35034942626953,-38.80991744995117],"6-18-26":[-83.24500274658203,-35.8962516784668],"6-18-27":[-78.0176010131836,-32.161834716796875],"6-18-28":[-71.87999725341797,-27.655000686645508],"6-18-29":[-60.178611755371094,-22.100000381469727],"6-18-30":[-49.78937530517578,-17.75],"6-18-31":[-40.426971435546875,-14.239333152770996],"6-18-32":[-34.166873931884766,-11.43375015258789],"6-18-33":[-27.717714309692383,-10.125749588012695],"6-18-34":[-24.21125030517578,-9.984999656677246],"6-18-35":[-22.7041015625,-9.164999961853027],"6-18-36":[-19.040624618530273,-9.092416763305664],"6-18-37":[-20.020000457763672,-8.96875],"6-18-38":[-21.822500228881836,-9.077500343322754],"6-18-39":[-23.259531021118164,-10.05875015258789],"6-18-40":[-22.954530715942383,30.179208755493164],"6-18-41":[-25.635000228881836,-10.664375305175781],"6-18-42":[-26.068750381469727,-11.58912467956543],"6-18-43":[-24.62468719482422,-10.904999732971191],"6-18-44":[-23.282499313354492,-10.904999732971191],"6-18-45":[-24.943593978881836,-11.37093734741211],"6-18-46":[-26.572187423706055,-12.179390907287598],"6-18-47":[-27.950000762939453,-12.577500343322754],"6-18-48":[-28.655000686645508,-12.732500076293945],"6-18-49":[-31.28499984741211,-12.647500038146973],"6-18-50":[-33.09000015258789,-13.52750015258789],"6-18-51":[-38.29999923706055,-14.779375076293945],"6-18-52":[-46.74281311035156,-18.610000610351562],"6-18-53":[-62.70500183105469,-23.223125457763672],"6-18-54":[-73.10655975341797,-30.403749465942383],"6-18-55":[-79.88999938964844,-35.13687515258789],"6-18-56":[-85.71781158447266,-38.01750183105469],"6-18-57":[-91.80874633789062,-40.53874969482422],"6-18-58":[-89.37999725341797,2750.49462890625],"6-18-59":[1350.324951171875,2817.830810546875],"6-18-60":[749.407470703125,1490.04248046875],"6-18-61":[552.1337280273438,901.4537353515625],"6-18-62":[803.4874877929688,3682.626220703125],"6-18-63":[-29.539167404174805,2878.06884765625],"6-19-0":[12.494500160217285,28.438749313354492],"6-19-1":[10.072500228881836,28.627500534057617],"5-9-0":[10.072500228881836,28.627500534057617],"6-19-2":[2.3350000381469727,20.530000686645508],"6-19-3":[-8.132499694824219,2.4174413681030273],"5-9-1":[-8.329999923706055,20.530000686645508],"4-4-0":[-9.460000038146973,28.627500534057617],"6-19-4":[-13.579375267028809,-2.0561459064483643],"6-19-5":[-21.209999084472656,283.4925537109375],"5-9-2":[-21.209999084472656,283.4925537109375],"6-19-6":[-26.622499465942383,317.54400634765625],"6-19-7":[-24.438749313354492,581.3340454101562],"5-9-3":[-26.622499465942383,581.3340454101562],"4-4-1":[-26.622499465942383,581.3340454101562],"6-19-8":[-7.423489093780518,973.13623046875],"6-19-9":[6.638999938964844,2480.849609375],"5-9-4":[-7.423489093780518,2614.22802734375],"6-19-10":[-1.426869511604309,2228.726806640625],"6-19-11":[399.032958984375,2929.85595703125],"5-9-5":[-1.426869511604309,2929.85595703125],"4-4-2":[-19.038177490234375,3089.824462890625],"6-19-12":[587.4136352539062,2399.430908203125],"6-19-13":[-30.306669235229492,3974.9345703125],"5-9-6":[-259.60552978515625,3974.9345703125],"6-19-14":[-46.52277374267578,2829.289794921875],"6-19-15":[-55.1462516784668,2131.337158203125],"5-9-7":[-55.1462516784668,2829.289794921875],"4-4-3":[-259.60552978515625,3974.9345703125],"6-19-16":[-60.38052749633789,1592.4659423828125],"6-19-17":[-71.30937194824219,1595.58740234375],"5-9-8":[-73.73175811767578,1595.58740234375],"6-19-18":[-78.9501953125,251.62457275390625],"6-19-19":[-83.11843872070312,-38.05780029296875],"5-9-9":[-83.11843872070312,251.62457275390625],"4-4-4":[-83.11843872070312,1595.58740234375],"6-19-20":[-84.8949966430664,-41.29804611206055],"6-19-21":[-89.62999725341797,-42.03874969482422],"5-9-10":[-89.62999725341797,-40.29249954223633],"6-19-22":[-92.73500061035156,-43.78125],"6-19-23":[-93.18000030517578,-43.92979049682617],"5-9-11":[-93.18000030517578,-40.45600128173828],"4-4-5":[-93.18000030517578,-32.442832946777344],"6-19-24":[-93.0581283569336,-43.6193733215332],"6-19-25":[-92.28937530517578,-42.14374923706055],"5-9-12":[-93.0581283569336,-38.80991744995117],"6-19-26":[-89.2300033569336,-39.76750183105469],"6-19-27":[-85.22187805175781,-36.36000061035156],"5-9-13":[-89.2300033569336,-32.161834716796875],"4-4-6":[-93.0581283569336,-22.612167358398438],"6-19-28":[-78.95999908447266,-31.27375030517578],"6-19-29":[-67.4175033569336,-25.302499771118164],"5-9-14":[-78.95999908447266,-22.100000381469727],"6-19-30":[-57.060001373291016,-21.14812469482422],"6-19-31":[-48.06312561035156,-17.540000915527344],"5-9-15":[-57.060001373291016,-14.239333152770996],"4-4-7":[-78.95999908447266,-7.010499954223633],"6-19-32":[-41.400001525878906,-14.600625038146973],"6-19-33":[-33.29249954223633,-12.4375],"5-9-16":[-41.400001525878906,-10.125749588012695],"6-19-34":[-28.549999237060547,-11.75406265258789],"6-19-35":[-23.4781436920166,-9.555000305175781],"5-9-17":[-28.549999237060547,-9.164999961853027],"4-4-8":[-41.400001525878906,-4.900199890136719],"6-19-36":[-19.392499923706055,-8.585000038146973],"6-19-37":[-18.069276809692383,-7.737333297729492],"5-9-18":[-20.020000457763672,-7.737333297729492],"6-19-38":[-19.401796340942383,-7.690833568572998],"6-19-39":[-21.395000457763672,-8.1875],"5-9-19":[-23.259531021118164,-7.690833568572998],"4-4-9":[-23.6356258392334,-6.960000038146973],"6-19-40":[-21.182188034057617,0.37580230832099915],"6-19-41":[-23.258750915527344,-9.492500305175781],"5-9-20":[-25.635000228881836,30.179208755493164],"6-19-42":[-23.804237365722656,-10.860833168029785],"6-19-43":[-23.18000030517578,-10.716833114624023],"5-9-21":[-26.068750381469727,-10.716833114624023],"4-4-10":[-27.19906234741211,395.497802734375],"6-19-44":[-23.623125076293945,-10.755425453186035],"6-19-45":[-24.649999618530273,-11.339062690734863],"5-9-22":[-24.943593978881836,-10.755425453186035],"6-19-46":[-24.91878890991211,-11.976943016052246],"6-19-47":[-25.660682678222656,-11.818833351135254],"5-9-23":[-27.950000762939453,-11.818833351135254],"4-4-11":[-30.3799991607666,-10.73617172241211],"6-19-48":[-25.6160945892334,-11.542499542236328],"6-19-49":[-26.592187881469727,-11.361000061035156],"5-9-24":[-31.28499984741211,-11.361000061035156],"6-19-50":[-29.040624618530273,-11.878166198730469],"6-19-51":[-37.028751373291016,-13.237500190734863],"5-9-25":[-38.29999923706055,-11.878166198730469],"4-4-12":[-40.619998931884766,-11.361000061035156],"6-19-52":[-44.4541015625,-17.7586669921875],"6-19-53":[-60.60499954223633,-22.709688186645508],"5-9-26":[-62.70500183105469,-17.7586669921875],"6-19-54":[-69.02035522460938,-29.595666885375977],"6-19-55":[-75.61624908447266,-33.502498626708984],"5-9-27":[-79.88999938964844,-29.595666885375977],"4-4-13":[-88.4000015258789,-17.7586669921875],"6-19-56":[-80.79861450195312,-36.681331634521484],"6-19-57":[-87.73921966552734,-39.43349838256836],"5-9-28":[-91.80874633789062,-36.681331634521484],"6-19-58":[-80.05249786376953,2986.56689453125],"6-19-59":[1490.04248046875,3530.82080078125],"5-9-29":[-89.37999725341797,3530.82080078125],"4-4-14":[-102.30000305175781,3530.82080078125],"6-19-60":[865.9000244140625,1514.0999755859375],"6-19-61":[606.2260131835938,956.5349731445312],"5-9-30":[552.1337280273438,1514.0999755859375],"6-19-62":[901.4537353515625,3114.634765625],"6-19-63":[-29.538833618164062,2878.56005859375],"5-9-31":[-29.539167404174805,3682.626220703125],"4-4-15":[-29.539499282836914,3682.626220703125],"6-20-0":[12.604836463928223,28.541210174560547],"6-20-1":[10.4350004196167,29.47769546508789],"6-20-2":[2.270625114440918,20.813749313354492],"6-20-3":[-7.478750228881836,2.3768749237060547],"6-20-4":[-13.579375267028809,105.35331726074219],"6-20-5":[-22.762460708618164,360.5022277832031],"6-20-6":[-29.849199295043945,693.5319213867188],"6-20-7":[-27.47101593017578,842.6594848632812],"6-20-8":[101.52547454833984,662.4371948242188],"6-20-9":[38.73617935180664,1501.825439453125],"6-20-10":[-7.859354496002197,1335.357666015625],"6-20-11":[265.1253967285156,2410.695068359375],"6-20-12":[394.15997314453125,2580.469970703125],"6-20-13":[176.298828125,3118.00634765625],"6-20-14":[-26.411972045898438,3265.409423828125],"6-20-15":[-24.642744064331055,4373.5126953125],"6-20-16":[-14.166443824768066,3180.6181640625],"6-20-17":[-27.549434661865234,4292.7314453125],"6-20-18":[-76.11499786376953,2093.70849609375],"6-20-19":[-82.76000213623047,1757.20751953125],"6-20-20":[-84.7699966430664,-39.45000076293945],"6-20-21":[-90.01531219482422,-41.798126220703125],"6-20-22":[-93.62097930908203,-44.7087516784668],"6-20-23":[-95.171875,-46.27916717529297],"6-20-24":[-95.40328216552734,-46.252498626708984],"6-20-25":[-94.6449203491211,-44.6168327331543],"6-20-26":[-91.53687286376953,-43.00749969482422],"6-20-27":[-87.86714935302734,-39.483333587646484],"6-20-28":[-81.87187194824219,-34.42499923706055],"6-20-29":[-70.4437484741211,-28.53441619873047],"6-20-30":[-61.321876525878906,-24.487499237060547],"6-20-31":[-52.19271469116211,-20.850500106811523],"6-20-32":[-45.209999084472656,-17.017499923706055],"6-20-33":[-35.81785202026367,-14.292916297912598],"6-20-34":[-29.9971866607666,-12.237500190734863],"6-20-35":[-24.973125457763672,-9.386333465576172],"6-20-36":[-19.200000762939453,-7.521874904632568],"6-20-37":[-16.875625610351562,-6.210000038146973],"6-20-38":[-16.1200008392334,-6.043125152587891],"6-20-39":[-17.880624771118164,-6.161874771118164],"6-20-40":[-18.616249084472656,-6.824999809265137],"6-20-41":[-21.600000381469727,-7.833125114440918],"6-20-42":[-22.21875,-9.863750457763672],"6-20-43":[-23.823749542236328,-10.664999961853027],"6-20-44":[-24.724960327148438,-11.26550006866455],"6-20-45":[-25.78499984741211,-11.427031517028809],"6-20-46":[-25.794042587280273,-11.971597671508789],"6-20-47":[-24.124374389648438,-11.21500015258789],"6-20-48":[-23.479999542236328,-10.65625],"6-20-49":[-23.649999618530273,-10.31291675567627],"6-20-50":[-26.0362491607666,-10.70966625213623],"6-20-51":[-35.459999084472656,-11.922499656677246],"6-20-52":[-44.223751068115234,-15.930000305175781],"6-20-53":[-59.189998626708984,-21.915624618530273],"6-20-54":[-66.25875091552734,-28.403749465942383],"6-20-55":[-73.36000061035156,-32.299373626708984],"6-20-56":[-79.02677917480469,-35.559295654296875],"6-20-57":[-84.11312866210938,-37.5666389465332],"6-20-58":[-79.01000213623047,1956.6099853515625],"6-20-59":[1514.0999755859375,2297.86181640625],"6-20-60":[953.6950073242188,1535.1175537109375],"6-20-61":[812.01220703125,1062.99755859375],"6-20-62":[956.5349731445312,2865.18994140625],"6-20-63":[-29.582075119018555,2878.56005859375],"6-21-0":[12.696999549865723,28.946874618530273],"6-21-1":[10.4350004196167,30.365625381469727],"5-10-0":[10.4350004196167,30.365625381469727],"6-21-2":[2.270625114440918,21.719999313354492],"6-21-3":[-4.041874885559082,2.713749885559082],"5-10-1":[-7.478750228881836,21.719999313354492],"6-21-4":[-14.8725004196167,306.8108215332031],"6-21-5":[-25.811250686645508,454.86083984375],"5-10-2":[-25.811250686645508,454.86083984375],"6-21-6":[-33.3459358215332,413.7384338378906],"6-21-7":[-35.209373474121094,781.3670654296875],"5-10-3":[-35.209373474121094,842.6594848632812],"6-21-8":[126.37966918945312,696.5736694335938],"6-21-9":[137.72830200195312,880.3894653320312],"5-10-4":[38.73617935180664,1501.825439453125],"6-21-10":[-10.459357261657715,833.9287719726562],"6-21-11":[299.0572814941406,1099.38623046875],"5-10-5":[-10.459357261657715,2410.695068359375],"6-21-12":[314.7867736816406,3253.796142578125],"6-21-13":[300.7981872558594,3939.09716796875],"5-10-6":[176.298828125,3939.09716796875],"6-21-14":[196.3773651123047,2946.150146484375],"6-21-15":[15.242274284362793,2851.9541015625],"5-10-7":[-26.411972045898438,4373.5126953125],"6-21-16":[351.2245788574219,2953.968505859375],"6-21-17":[661.980712890625,3100.1279296875],"5-10-8":[-27.549434661865234,4292.7314453125],"6-21-18":[-17.480318069458008,4387.576171875],"6-21-19":[-41.69571304321289,4241.99462890625],"5-10-9":[-82.76000213623047,4387.576171875],"6-21-20":[-83.59625244140625,610.5792236328125],"6-21-21":[-89.125,1248.20263671875],"5-10-10":[-90.01531219482422,1248.20263671875],"6-21-22":[-93.1220932006836,-43.26750183105469],"6-21-23":[-95.03500366210938,-45.428749084472656],"5-10-11":[-95.171875,-43.26750183105469],"6-21-24":[-95.31269836425781,-46.307498931884766],"6-21-25":[-94.73799133300781,-45.23091506958008],"5-10-12":[-95.40328216552734,-44.6168327331543],"6-21-26":[-91.97937774658203,-43.77375030517578],"6-21-27":[-87.80150604248047,-40.96649932861328],"5-10-13":[-91.97937774658203,-39.483333587646484],"6-21-28":[-82.66625213623047,-36.11750030517578],"6-21-29":[-71.19747924804688,-30.736249923706055],"5-10-14":[-82.66625213623047,-28.53441619873047],"6-21-30":[-63.30500030517578,-26.8331241607666],"6-21-31":[-54.80875015258789,-22.8075008392334],"5-10-15":[-63.30500030517578,-20.850500106811523],"6-21-32":[-47.81999969482422,-18.670000076293945],"6-21-33":[-38.404998779296875,-15.133749961853027],"5-10-16":[-47.81999969482422,-14.292916297912598],"6-21-34":[-32.20500183105469,-12.898750305175781],"6-21-35":[-25.628965377807617,-9.336000442504883],"5-10-17":[-32.20500183105469,-9.336000442504883],"6-21-36":[-19.2918758392334,-6.073750019073486],"6-21-37":[-14.531874656677246,-4.671249866485596],"5-10-18":[-19.2918758392334,-4.671249866485596],"6-21-38":[-12.056249618530273,-4.2101664543151855],"6-21-39":[-13.170000076293945,-4.21750020980835],"5-10-19":[-17.880624771118164,-4.2101664543151855],"6-21-40":[-15.044023513793945,-5.086666584014893],"6-21-41":[-19.571874618530273,-6.523749828338623],"5-10-20":[-21.600000381469727,-5.086666584014893],"6-21-42":[-21.167499542236328,-9.26866626739502],"6-21-43":[-22.88249969482422,-10.447500228881836],"5-10-21":[-23.823749542236328,-9.26866626739502],"6-21-44":[-24.496522903442383,-11.317333221435547],"6-21-45":[-26.045019149780273,-12.018593788146973],"5-10-22":[-26.045019149780273,-11.26550006866455],"6-21-46":[-26.020000457763672,-11.9662504196167],"6-21-47":[-23.997949600219727,-10.763833045959473],"5-10-23":[-26.020000457763672,-10.763833045959473],"6-21-48":[-22.235000610351562,-10.037500381469727],"6-21-49":[-21.595781326293945,-9.786083221435547],"5-10-24":[-23.649999618530273,-9.786083221435547],"6-21-50":[-23.190214157104492,-10.14816665649414],"6-21-51":[-31.423124313354492,-11.332500457763672],"5-10-25":[-35.459999084472656,-10.14816665649414],"6-21-52":[-42.015625,-14.725166320800781],"6-21-53":[-56.27406311035156,-21.164688110351562],"5-10-26":[-59.189998626708984,-14.725166320800781],"6-21-54":[-63.5847282409668,-26.87583351135254],"6-21-55":[-71.421875,-31.114999771118164],"5-10-27":[-73.36000061035156,-26.87583351135254],"6-21-56":[-74.30622863769531,-34.391998291015625],"6-21-57":[-79.1669692993164,-34.74100112915039],"5-10-28":[-84.11312866210938,-34.391998291015625],"6-21-58":[-75.46156311035156,1699.9425048828125],"6-21-59":[1495.5018310546875,2538.049072265625],"5-10-29":[-79.01000213623047,2538.049072265625],"6-21-60":[1062.99755859375,1626.405029296875],"6-21-61":[869.7111206054688,1241.72119140625],"5-10-30":[812.01220703125,1626.405029296875],"6-21-62":[1025.918701171875,2638.660400390625],"6-21-63":[-29.62196922302246,2874.626220703125],"5-10-31":[-29.62196922302246,2878.56005859375],"6-22-0":[12.803752899169922,29.116426467895508],"6-22-1":[11.4310302734375,30.763124465942383],"6-22-2":[2.3399999141693115,22.884687423706055],"6-22-3":[-2.299999952316284,5.525136947631836],"6-22-4":[-15.353828430175781,459.74853515625],"6-22-5":[-28.85171890258789,707.5408325195312],"6-22-6":[-33.68498229980469,562.2254028320312],"6-22-7":[-36.82847595214844,561.104736328125],"6-22-8":[106.7437515258789,731.185546875],"6-22-9":[124.4999771118164,633.2732543945312],"6-22-10":[-20.181283950805664,980.6282348632812],"6-22-11":[221.72430419921875,953.8346557617188],"6-22-12":[291.6790466308594,1945.4451904296875],"6-22-13":[407.70904541015625,3751.066650390625],"6-22-14":[373.1355285644531,3467.22900390625],"6-22-15":[143.6695556640625,2981.675048828125],"6-22-16":[498.9130859375,2953.807373046875],"6-22-17":[1005.3326416015625,3455.022705078125],"6-22-18":[-109.12721252441406,3616.127685546875],"6-22-19":[-115.49979400634766,3677.0673828125],"6-22-20":[-106.81531524658203,3055.5322265625],"6-22-21":[-87.06019592285156,2579.491455078125],"6-22-22":[-90.85749816894531,227.3563995361328],"6-22-23":[-93.30999755859375,-36.74134063720703],"6-22-24":[-93.46812438964844,-43.317501068115234],"6-22-25":[-92.55968475341797,-42.61507797241211],"6-22-26":[-90.45500183105469,-41.08250045776367],"6-22-27":[-87.10093688964844,-38.630001068115234],"6-22-28":[-81.93000030517578,-34.926876068115234],"6-22-29":[-71.1015625,-31.113750457763672],"6-22-30":[-63.36750030517578,-27.035625457763672],"6-22-31":[-54.81345748901367,-23.61750030517578],"6-22-32":[-47.990623474121094,-19.6612491607666],"6-22-33":[-38.66062545776367,-15.789999961853027],"6-22-34":[-32.328125,-12.286250114440918],"6-22-35":[-25.129688262939453,-8],"6-22-36":[-18.520000457763672,-4.62375020980835],"6-22-37":[-11.881250381469727,-3.049999952316284],"6-22-38":[-9.239999771118164,-2.78125],"6-22-39":[-10.029999732971191,-2.9731249809265137],"6-22-40":[-12.548437118530273,-3.887500047683716],"6-22-41":[-18.450000762939453,-5.526875019073486],"6-22-42":[-20.413124084472656,-8.140000343322754],"6-22-43":[-22.65999984741211,-9.886249542236328],"6-22-44":[-24.439218521118164,-11.125],"6-22-45":[-25.500938415527344,-11.476875305175781],"6-22-46":[-25.475000381469727,-11.3306245803833],"6-22-47":[-23.4921875,-10.260000228881836],"6-22-48":[-21.3700008392334,-9.664083480834961],"6-22-49":[-20.267499923706055,-9.528124809265137],"6-22-50":[-22.587343215942383,-10.10129165649414],"6-22-51":[-29.69937515258789,-11.3247652053833],"6-22-52":[-41.537498474121094,-14.53066635131836],"6-22-53":[-53.66999816894531,-21.14484405517578],"6-22-54":[-61.260623931884766,-25.864999771118164],"6-22-55":[-68.77999877929688,-29.952499389648438],"6-22-56":[-72.32312774658203,-32.845001220703125],"6-22-57":[-76.49749755859375,-32.90656280517578],"6-22-58":[-76.52710723876953,3383.5595703125],"6-22-59":[1286.4825439453125,3626.483642578125],"6-22-60":[1241.72119140625,1694.935791015625],"6-22-61":[987.5284423828125,1432.9775390625],"6-22-62":[1168.6724853515625,2576.079345703125],"6-22-63":[-29.538000106811523,2863.2841796875],"6-23-0":[12.923791885375977,29.130624771118164],"6-23-1":[11.5337495803833,30.885000228881836],"5-11-0":[11.4310302734375,30.885000228881836],"6-23-2":[2.570625066757202,24.520000457763672],"6-23-3":[-2.859999895095825,9.460000038146973],"5-11-1":[-2.859999895095825,24.520000457763672],"4-5-0":[-7.478750228881836,30.885000228881836],"6-23-4":[-17.91374969482422,409.1918640136719],"6-23-5":[-35.369998931884766,754.5274047851562],"5-11-2":[-35.369998931884766,754.5274047851562],"6-23-6":[-35.76695251464844,628.5801391601562],"6-23-7":[-51.78937530517578,437.7607116699219],"5-11-3":[-51.78937530517578,628.5801391601562],"4-5-1":[-51.78937530517578,842.6594848632812],"3-2-0":[-51.78937530517578,842.6594848632812],"6-23-8":[212.0032501220703,620.3357543945312],"6-23-9":[126.79533386230469,594.998291015625],"5-11-4":[106.7437515258789,731.185546875],"6-23-10":[-25.9515323638916,952.8884887695312],"6-23-11":[181.68748474121094,969.0382690429688],"5-11-5":[-25.9515323638916,980.6282348632812],"4-5-2":[-25.9515323638916,2410.695068359375],"6-23-12":[362.5606689453125,1217.704345703125],"6-23-13":[599.3408813476562,3152.728515625],"5-11-6":[291.6790466308594,3751.066650390625],"6-23-14":[584.0292358398438,3396.82373046875],"6-23-15":[496.5095520019531,3385.14306640625],"5-11-7":[143.6695556640625,3467.22900390625],"4-5-3":[-26.411972045898438,4373.5126953125],"3-2-1":[-259.60552978515625,4373.5126953125],"6-23-16":[739.2645874023438,3846.9765625],"6-23-17":[1261.0601806640625,3659.443359375],"5-11-8":[498.9130859375,3846.9765625],"6-23-18":[342.6692199707031,3960.26220703125],"6-23-19":[53.25970458984375,2781.712646484375],"5-11-9":[-115.49979400634766,3960.26220703125],"4-5-4":[-115.49979400634766,4387.576171875],"6-23-20":[-43.41166305541992,2074.243408203125],"6-23-21":[-53.907108306884766,2324.399658203125],"5-11-10":[-106.81531524658203,3055.5322265625],"6-23-22":[-86.06437683105469,1902.2799072265625],"6-23-23":[-86.19046020507812,-37.160587310791016],"5-11-11":[-93.30999755859375,1902.2799072265625],"4-5-5":[-106.81531524658203,3055.5322265625],"3-2-2":[-115.49979400634766,4387.576171875],"6-23-24":[-86.53640747070312,-38.537498474121094],"6-23-25":[-85.6489028930664,238.05921936035156],"5-11-12":[-93.46812438964844,238.05921936035156],"6-23-26":[-84.31949615478516,-36.65250015258789],"6-23-27":[-80.63008117675781,-34.814666748046875],"5-11-13":[-90.45500183105469,-34.814666748046875],"4-5-6":[-95.40328216552734,238.05921936035156],"6-23-28":[-76.58187866210938,-32.08250045776367],"6-23-29":[-68.36320495605469,-29.043582916259766],"5-11-14":[-81.93000030517578,-29.043582916259766],"6-23-30":[-61.79375076293945,-25.292499542236328],"6-23-31":[-52.77812576293945,-21.98033332824707],"5-11-15":[-63.36750030517578,-21.98033332824707],"4-5-7":[-82.66625213623047,-20.850500106811523],"3-2-3":[-95.40328216552734,238.05921936035156],"6-23-32":[-46.79312515258789,-18.424999237060547],"6-23-33":[-38.03580093383789,-15.008832931518555],"5-11-16":[-47.990623474121094,-15.008832931518555],"6-23-34":[-31.4034366607666,-10.654999732971191],"6-23-35":[-23.02361297607422,-6.8429999351501465],"5-11-17":[-32.328125,-6.8429999351501465],"4-5-8":[-47.990623474121094,-6.8429999351501465],"6-23-36":[-15.563750267028809,-3.947499990463257],"6-23-37":[-8.411425590515137,-2.3543334007263184],"5-11-18":[-18.520000457763672,-2.3543334007263184],"6-23-38":[-5.821875095367432,-1.9918333292007446],"6-23-39":[-7.591875076293945,-2.190000057220459],"5-11-19":[-10.029999732971191,-1.9918333292007446],"4-5-9":[-19.2918758392334,-1.9918333292007446],"3-2-4":[-47.990623474121094,-1.9918333292007446],"6-23-40":[-10.370488166809082,-3.432499885559082],"6-23-41":[-16.027812957763672,-5.002500057220459],"5-11-20":[-18.450000762939453,-3.432499885559082],"6-23-42":[-19.180702209472656,-6.882166862487793],"6-23-43":[-22.0518741607666,-9.077500343322754],"5-11-21":[-22.65999984741211,-6.882166862487793],"4-5-10":[-23.823749542236328,-3.432499885559082],"6-23-44":[-22.856250762939453,-10.10866641998291],"6-23-45":[-23.625038146972656,-10.531332969665527],"5-11-22":[-25.500938415527344,-10.10866641998291],"6-23-46":[-23.434999465942383,-10.40999984741211],"6-23-47":[-22.16958999633789,-9.804499626159668],"5-11-23":[-25.475000381469727,-9.804499626159668],"4-5-11":[-26.045019149780273,-9.804499626159668],"3-2-5":[-30.3799991607666,395.497802734375],"6-23-48":[-20.384374618530273,-9.352781295776367],"6-23-49":[-21.165624618530273,-9.356719017028809],"5-11-24":[-21.3700008392334,-9.352781295776367],"6-23-50":[-23.209375381469727,-10.1899995803833],"6-23-51":[-30.1200008392334,-11.534375190734863],"5-11-25":[-30.1200008392334,-10.10129165649414],"4-5-12":[-35.459999084472656,-9.352781295776367],"6-23-52":[-43.444374084472656,-14.72249984741211],"6-23-53":[-51.529685974121094,-21.481250762939453],"5-11-26":[-53.66999816894531,-14.53066635131836],"6-23-54":[-58.942771911621094,-25.37791633605957],"6-23-55":[-65.29312133789062,-28.822500228881836],"5-11-27":[-68.77999877929688,-25.37791633605957],"4-5-13":[-73.36000061035156,-14.53066635131836],"3-2-6":[-88.4000015258789,-9.352781295776367],"6-23-56":[-69.36076354980469,-31.181333541870117],"6-23-57":[-72.55503845214844,-32.310001373291016],"5-11-28":[-76.49749755859375,-31.181333541870117],"6-23-58":[-73.41156005859375,2010.0078125],"6-23-59":[1105.4332275390625,2194.59521484375],"5-11-29":[-76.52710723876953,3626.483642578125],"4-5-14":[-84.11312866210938,3626.483642578125],"6-23-60":[1418.3399658203125,1763.018798828125],"6-23-61":[1252.1170654296875,1638.5799560546875],"5-11-30":[987.5284423828125,1763.018798828125],"6-23-62":[1432.9775390625,2755.158447265625],"6-23-63":[-29.53766632080078,2834.951171875],"5-11-31":[-29.538000106811523,2863.2841796875],"4-5-15":[-29.62196922302246,2878.56005859375],"3-2-7":[-102.30000305175781,3682.626220703125],"6-24-0":[13.08899974822998,29.09375],"6-24-1":[12.771227836608887,30.885000228881836],"6-24-2":[3.362499952316284,25.791250228881836],"6-24-3":[-3.4937500953674316,11.112441062927246],"6-24-4":[-19.2515811920166,404.1700134277344],"6-24-5":[-38.895626068115234,404.1700134277344],"6-24-6":[-40.0153923034668,637.4262084960938],"6-24-7":[-57.543357849121094,369.5162353515625],"6-24-8":[70.59933471679688,618.65185546875],"6-24-9":[123.35530853271484,643.8284301757812],"6-24-10":[-27.375497817993164,442.6983337402344],"6-24-11":[174.5903778076172,841.0401000976562],"6-24-12":[373.5768127441406,849.7937622070312],"6-24-13":[495.56829833984375,1071.087890625],"6-24-14":[572.5742797851562,2114.95166015625],"6-24-15":[720.4059448242188,3889.2705078125],"6-24-16":[1325.3367919921875,4191.25927734375],"6-24-17":[1258.65283203125,4109.87939453125],"6-24-18":[857.521484375,3690.590576171875],"6-24-19":[364.3179626464844,3824.203857421875],"6-24-20":[-26.56171989440918,3235.2861328125],"6-24-21":[-39.563140869140625,2589.57568359375],"6-24-22":[-71.53345489501953,1702.930419921875],"6-24-23":[-79.5688247680664,2045.202392578125],"6-24-24":[-78.29757690429688,-33.2912483215332],"6-24-25":[-77.07499694824219,268.0562744140625],"6-24-26":[-75.27671813964844,-31.52750015258789],"6-24-27":[-72.82062530517578,-29.627500534057617],"6-24-28":[-69.62000274658203,-28.02312469482422],"6-24-29":[-63.33250045776367,-25.657499313354492],"6-24-30":[-58.08000183105469,-23.111875534057617],"6-24-31":[-49.63999938964844,-20.207500457763672],"6-24-32":[-43.7599983215332,-17.2762508392334],"6-24-33":[-35.89374923706055,-13.422499656677246],"6-24-34":[-29.860000610351562,-9.9193754196167],"6-24-35":[-20.227500915527344,-6.4375],"6-24-36":[-13.600000381469727,-3.8648438453674316],"6-24-37":[-7.429999828338623,-2.3292500972747803],"6-24-38":[-4.949999809265137,-1.9404010772705078],"6-24-39":[-7.059999942779541,-2.1337499618530273],"6-24-40":[-9.662500381469727,-3.325166702270508],"6-24-41":[-13.800000190734863,-4.701562404632568],"6-24-42":[-17.75,-6.090000152587891],"6-24-43":[-20.171249389648438,-8.329375267028809],"6-24-44":[-21.39812469482422,-9.34850025177002],"6-24-45":[-21.959999084472656,-9.830078125],"6-24-46":[-21.959999084472656,-10.001562118530273],"6-24-47":[-20.6875,-9.669833183288574],"6-24-48":[-19.520000457763672,-9.430000305175781],"6-24-49":[-21.857872009277344,-9.46500015258789],"6-24-50":[-23.625429153442383,-10.527832984924316],"6-24-51":[-30.1200008392334,-11.802499771118164],"6-24-52":[-42.53937530517578,-14.642499923706055],"6-24-53":[-50.720001220703125,-20.346874237060547],"6-24-54":[-56.67375183105469,-24.59000015258789],"6-24-55":[-62.36000061035156,-27.158750534057617],"6-24-56":[-67.74500274658203,-29.514999389648438],"6-24-57":[-69.32250213623047,-30.92593765258789],"6-24-58":[-67.74624633789062,2438.8388671875],"6-24-59":[821.95751953125,3441.141357421875],"6-24-60":[1593.3074951171875,1871.8079833984375],"6-24-61":[1391.7049560546875,1816.6962890625],"6-24-62":[1638.5799560546875,2575.132080078125],"6-24-63":[-29.53733253479004,2813.186767578125],"6-25-0":[13.28083324432373,29.055625915527344],"6-25-1":[12.991250038146973,30.66437530517578],"5-12-0":[12.771227836608887,30.885000228881836],"6-25-2":[4.331250190734863,27.290000915527344],"6-25-3":[-3.5999999046325684,11.87874984741211],"5-12-1":[-3.5999999046325684,27.290000915527344],"6-25-4":[-18.477188110351562,293.9667053222656],"6-25-5":[-39.7400016784668,334.4587097167969],"5-12-2":[-39.7400016784668,404.1700134277344],"6-25-6":[-44.813045501708984,387.516845703125],"6-25-7":[-63.274375915527344,308.4985046386719],"5-12-3":[-63.274375915527344,637.4262084960938],"6-25-8":[-63.05812454223633,598.6048583984375],"6-25-9":[119.88375091552734,600.1868286132812],"5-12-4":[-63.05812454223633,643.8284301757812],"6-25-10":[-28.141164779663086,610.7572021484375],"6-25-11":[175.34375,613.7483520507812],"5-12-5":[-28.141164779663086,841.0401000976562],"6-25-12":[357.00494384765625,741.3196411132812],"6-25-13":[154.24305725097656,852.5703735351562],"5-12-6":[154.24305725097656,1071.087890625],"6-25-14":[529.7526245117188,2093.276123046875],"6-25-15":[667.1549682617188,3842.671142578125],"5-12-7":[529.7526245117188,3889.2705078125],"6-25-16":[1046.967041015625,4204.44091796875],"6-25-17":[1396.764404296875,3751.4248046875],"5-12-8":[1046.967041015625,4204.44091796875],"6-25-18":[1174.2559814453125,4348.3828125],"6-25-19":[1345.7490234375,3458.3349609375],"5-12-9":[364.3179626464844,4348.3828125],"6-25-20":[852.0631103515625,3295.6884765625],"6-25-21":[84.61900329589844,3091.225830078125],"5-12-10":[-39.563140869140625,3295.6884765625],"6-25-22":[-38.21055603027344,3268.301025390625],"6-25-23":[-66.40340423583984,2081.226318359375],"5-12-11":[-79.5688247680664,3268.301025390625],"6-25-24":[-67.9429702758789,-28.525562286376953],"6-25-25":[-66.5824966430664,-26.447500228881836],"5-12-12":[-78.29757690429688,268.0562744140625],"6-25-26":[-65.04499816894531,-25.225000381469727],"6-25-27":[-63.05500030517578,-24.165000915527344],"5-12-13":[-75.27671813964844,-24.165000915527344],"6-25-28":[-59.255001068115234,-15.522700309753418],"6-25-29":[-54.34410095214844,-22.319665908813477],"5-12-14":[-69.62000274658203,-15.522700309753418],"6-25-30":[-50.436561584472656,-20.5049991607666],"6-25-31":[-44.99455261230469,-18.741666793823242],"5-12-15":[-58.08000183105469,-18.741666793823242],"6-25-32":[-39.9631233215332,-16.2237491607666],"6-25-33":[-33.51333999633789,-12.954750061035156],"5-12-16":[-43.7599983215332,-12.954750061035156],"6-25-34":[-26.724061965942383,-9.783541679382324],"6-25-35":[-19.181875228881836,-6.510166645050049],"5-12-17":[-29.860000610351562,-6.4375],"6-25-36":[-14.510000228881836,-4.010000228881836],"6-25-37":[-8.866874694824219,-2.502500057220459],"5-12-18":[-14.510000228881836,-2.3292500972747803],"6-25-38":[-6.335000038146973,-2.1827917098999023],"6-25-39":[-6.838125228881836,-2.309999942779541],"5-12-19":[-7.059999942779541,-1.9404010772705078],"6-25-40":[-9.40380859375,-3.3299999237060547],"6-25-41":[-32.095970153808594,501.95904541015625],"5-12-20":[-32.095970153808594,501.95904541015625],"6-25-42":[-16.077499389648438,-5.369999885559082],"6-25-43":[-18.471582412719727,-7.508749961853027],"5-12-21":[-20.171249389648438,-5.369999885559082],"6-25-44":[-19.572324752807617,-8.508166313171387],"6-25-45":[-20.507186889648438,-9.3412504196167],"5-12-22":[-21.959999084472656,-8.508166313171387],"6-25-46":[-20.658143997192383,-9.34375],"6-25-47":[-19.821250915527344,-8.989666938781738],"5-12-23":[-21.959999084472656,-8.989666938781738],"6-25-48":[-19.592069625854492,-9.098750114440918],"6-25-49":[-22.089061737060547,-9.676250457763672],"5-12-24":[-22.089061737060547,-9.098750114440918],"6-25-50":[-24.3075008392334,-10.801250457763672],"6-25-51":[-29.520000457763672,-11.995624542236328],"5-12-25":[-30.1200008392334,-10.527832984924316],"6-25-52":[-38.641719818115234,-14.616167068481445],"6-25-53":[-48.87906265258789,-19.40275001525879],"5-12-26":[-50.720001220703125,-14.616167068481445],"6-25-54":[-53.26298904418945,-23.188167572021484],"6-25-55":[-58.76187515258789,-25.889999389648438],"5-12-27":[-62.36000061035156,-23.188167572021484],"6-25-56":[-65.34625244140625,-28.745832443237305],"6-25-57":[-65.62992095947266,-29.51849937438965],"5-12-28":[-69.32250213623047,-28.745832443237305],"6-25-58":[-63.64250183105469,821.95751953125],"6-25-59":[726.873779296875,1676.6800537109375],"5-12-29":[-67.74624633789062,3441.141357421875],"6-25-60":[1630.885009765625,1996.2762451171875],"6-25-61":[1569.8984375,1996.2762451171875],"5-12-30":[1391.7049560546875,1996.2762451171875],"6-25-62":[1816.6962890625,2606.330078125],"6-25-63":[-29.536832809448242,2795.254150390625],"5-12-31":[-29.53733253479004,2813.186767578125],"6-26-0":[13.547586441040039,29.136249542236328],"6-26-1":[13.943750381469727,30.475624084472656],"6-26-2":[5.288750171661377,27.86687469482422],"6-26-3":[-3.319999933242798,281.70538330078125],"6-26-4":[-18.477188110351562,308.76776123046875],"6-26-5":[-40.41062545776367,381.7304992675781],"6-26-6":[-46.85929870605469,317.7424621582031],"6-26-7":[-64.68099975585938,215.88893127441406],"6-26-8":[-2.2603416442871094,571.3153686523438],"6-26-9":[116.7823715209961,565.7662353515625],"6-26-10":[-32.40644454956055,599.9398803710938],"6-26-11":[208.2876434326172,611.8388671875],"6-26-12":[299.9306335449219,731.3884887695312],"6-26-13":[318.8929443359375,749.392578125],"6-26-14":[470.62213134765625,993.23583984375],"6-26-15":[555.4791870117188,1446.1971435546875],"6-26-16":[932.5281982421875,3114.59521484375],"6-26-17":[1209.866455078125,4338.5517578125],"6-26-18":[1296.536376953125,4383.2421875],"6-26-19":[1070.6571044921875,3998.9736328125],"6-26-20":[855.6885375976562,3617.01318359375],"6-26-21":[658.3076782226562,2970.031982421875],"6-26-22":[417.6405334472656,3258.003173828125],"6-26-23":[-28.59000015258789,3307.8759765625],"6-26-24":[-62.720069885253906,2734.407470703125],"6-26-25":[-59.484100341796875,2861.6806640625],"6-26-26":[-52.89500045776367,-18.545625686645508],"6-26-27":[-50.45000076293945,-18.19499969482422],"6-26-28":[-48.33000183105469,-18.135313034057617],"6-26-29":[-46.342811584472656,-18.063749313354492],"6-26-30":[-44.40999984741211,-17.731874465942383],"6-26-31":[-40.439064025878906,-17.020000457763672],"6-26-32":[-37.310001373291016,-15.4975004196167],"6-26-33":[-31.85124969482422,-12.902832984924316],"6-26-34":[-26.46125030517578,-10.00374984741211],"6-26-35":[-21.24152374267578,-7.319499969482422],"6-26-36":[-17.778749465942383,-4.661250114440918],"6-26-37":[-11.753339767456055,-3.187166690826416],"6-26-38":[-7.860000133514404,-2.802000045776367],"6-26-39":[-6.78000020980835,-2.9075000286102295],"6-26-40":[-7.783750057220459,-2.882499933242798],"6-26-41":[-10.704843521118164,8.480862617492676],"6-26-42":[-14.625624656677246,-4.568749904632568],"6-26-43":[-16.8799991607666,-6.599374771118164],"6-26-44":[-18.5674991607666,-7.397583484649658],"6-26-45":[-19.405000686645508,-7.991250038146973],"6-26-46":[-19.504375457763672,-8.349531173706055],"6-26-47":[-18.5753116607666,-8.35562515258789],"6-26-48":[-19.104999542236328,-8.3774995803833],"6-26-49":[-22.075000762939453,-9.268750190734863],"6-26-50":[-24.130937576293945,-10.476249694824219],"6-26-51":[-29.3799991607666,-11.821874618530273],"6-26-52":[-38.32749938964844,-14.039999961853027],"6-26-53":[-46.189998626708984,-17.491249084472656],"6-26-54":[-51.19593811035156,-21.671249389648438],"6-26-55":[-57.4900016784668,-24.386249542236328],"6-26-56":[-63.63874816894531,-27.72249984741211],"6-26-57":[-62.8125,189.44313049316406],"6-26-58":[-60.90999984741211,881.6343994140625],"6-26-59":[740.6487426757812,1748.5400390625],"6-26-60":[1676.6800537109375,2076.646240234375],"6-26-61":[1756.3472900390625,2181.0654296875],"6-26-62":[1948.766357421875,2606.48876953125],"6-26-63":[-29.536500930786133,2777.837646484375],"6-27-0":[13.609615325927734,29.487499237060547],"6-27-1":[13.943750381469727,31.084999084472656],"5-13-0":[13.547586441040039,31.084999084472656],"6-27-2":[6.450624942779541,27.899999618530273],"6-27-3":[-0.41187500953674316,320.4958190917969],"5-13-1":[-3.319999933242798,320.4958190917969],"4-6-0":[-3.5999999046325684,320.4958190917969],"6-27-4":[-16.489805221557617,372.6816101074219],"6-27-5":[-40.20624923706055,294.1231689453125],"5-13-2":[-40.41062545776367,381.7304992675781],"6-27-6":[-53.842342376708984,132.19882202148438],"6-27-7":[-71.24812316894531,117.69999694824219],"5-13-3":[-71.24812316894531,317.7424621582031],"4-6-1":[-71.24812316894531,637.4262084960938],"6-27-8":[-10.8412504196167,325.5276184082031],"6-27-9":[25.92566680908203,428.64678955078125],"5-13-4":[-10.8412504196167,571.3153686523438],"6-27-10":[-36.625450134277344,567.1392822265625],"6-27-11":[275.4012145996094,510.8363037109375],"5-13-5":[-36.625450134277344,611.8388671875],"4-6-2":[-63.05812454223633,841.0401000976562],"6-27-12":[177.93112182617188,779.8211669921875],"6-27-13":[230.46328735351562,797.8910522460938],"5-13-6":[177.93112182617188,797.8910522460938],"6-27-14":[353.2326354980469,843.6193237304688],"6-27-15":[486.4490661621094,1208.1021728515625],"5-13-7":[353.2326354980469,1446.1971435546875],"4-6-3":[154.24305725097656,3889.2705078125],"6-27-16":[469.5370788574219,2194.749755859375],"6-27-17":[827.2254028320312,1798.5089111328125],"5-13-8":[469.5370788574219,4338.5517578125],"6-27-18":[821.2898559570312,2635.821044921875],"6-27-19":[656.6206665039062,2159.52099609375],"5-13-9":[656.6206665039062,4383.2421875],"4-6-4":[364.3179626464844,4383.2421875],"6-27-20":[633.5263671875,1925.9459228515625],"6-27-21":[300.28948974609375,2697.8330078125],"5-13-10":[300.28948974609375,3617.01318359375],"6-27-22":[335.3158874511719,2999.919189453125],"6-27-23":[921.8988037109375,3424.2919921875],"5-13-11":[-28.59000015258789,3424.2919921875],"4-6-5":[-79.5688247680664,3617.01318359375],"6-27-24":[401.211669921875,3479.93603515625],"6-27-25":[-46.79450988769531,4234.2822265625],"5-13-12":[-62.720069885253906,4234.2822265625],"6-27-26":[-39.040000915527344,-13.0024995803833],"6-27-27":[-35.27375030517578,-12.541666984558105],"5-13-13":[-52.89500045776367,-12.541666984558105],"4-6-6":[-78.29757690429688,4234.2822265625],"6-27-28":[-35.19089889526367,-12.850500106811523],"6-27-29":[-35.333221435546875,-13.410666465759277],"5-13-14":[-48.33000183105469,-12.850500106811523],"6-27-30":[-35.16831970214844,-14.098666191101074],"6-27-31":[-34.8849983215332,-14.9375],"5-13-15":[-44.40999984741211,-14.098666191101074],"4-6-7":[-69.62000274658203,-12.850500106811523],"6-27-32":[-33.662498474121094,-14.667499542236328],"6-27-33":[-30.23455047607422,-13.296250343322754],"5-13-16":[-37.310001373291016,-12.902832984924316],"6-27-34":[-28.1200008392334,-11.023124694824219],"6-27-35":[-24.653125762939453,-9.210000038146973],"5-13-17":[-28.1200008392334,-7.319499969482422],"4-6-8":[-43.7599983215332,-6.4375],"6-27-36":[-20.4481258392334,-6.321249961853027],"6-27-37":[-14.709375381469727,-4.117499828338623],"5-13-18":[-20.4481258392334,-3.187166690826416],"6-27-38":[-10.699999809265137,-3.46875],"6-27-39":[-7.819375038146973,-2.9535000324249268],"5-13-19":[-10.699999809265137,-2.802000045776367],"4-6-9":[-20.4481258392334,-1.9404010772705078],"6-27-40":[-6.356269359588623,-2.127500057220459],"6-27-41":[-8.90250015258789,-2.070499897003174],"5-13-20":[-10.704843521118164,8.480862617492676],"6-27-42":[-12.617597579956055,-3.6410000324249268],"6-27-43":[-14.871874809265137,-5.647500038146973],"5-13-21":[-16.8799991607666,-3.6410000324249268],"4-6-10":[-32.095970153808594,501.95904541015625],"6-27-44":[-15.663945198059082,-6.126333236694336],"6-27-45":[-17.150468826293945,-6.68149995803833],"5-13-22":[-19.405000686645508,-6.126333236694336],"6-27-46":[-17.13394546508789,-7.460333347320557],"6-27-47":[-16.638320922851562,-6.9058332443237305],"5-13-23":[-19.504375457763672,-6.9058332443237305],"4-6-11":[-21.959999084472656,-6.126333236694336],"6-27-48":[-18.126386642456055,-7.16616678237915],"6-27-49":[-20.751249313354492,-8.239999771118164],"5-13-24":[-22.075000762939453,-7.16616678237915],"6-27-50":[-23.02669906616211,-9.758999824523926],"6-27-51":[-27.560625076293945,-10.567500114440918],"5-13-25":[-29.3799991607666,-9.758999824523926],"4-6-12":[-30.1200008392334,-7.16616678237915],"6-27-52":[-33.0363883972168,-12.474833488464355],"6-27-53":[-43.04249954223633,-16.0049991607666],"5-13-26":[-46.189998626708984,-12.474833488464355],"6-27-54":[-47.8427734375,-20.493083953857422],"6-27-55":[-55.32437515258789,-23.045000076293945],"5-13-27":[-57.4900016784668,-20.493083953857422],"4-6-13":[-62.36000061035156,-12.474833488464355],"6-27-56":[-59.560916900634766,-26.311832427978516],"6-27-57":[-57.29240417480469,647.0881958007812],"5-13-28":[-63.63874816894531,647.0881958007812],"6-27-58":[-55.246212005615234,899.0579833984375],"6-27-59":[799.614990234375,1803.3399658203125],"5-13-29":[-60.90999984741211,1803.3399658203125],"4-6-14":[-69.32250213623047,3441.141357421875],"6-27-60":[1748.5400390625,2159.554931640625],"6-27-61":[1868.0693359375,2197.1513671875],"5-13-30":[1676.6800537109375,2197.1513671875],"6-27-62":[2095.958740234375,2581.404052734375],"6-27-63":[-29.53616714477539,2769.490478515625],"5-13-31":[-29.536500930786133,2777.837646484375],"4-6-15":[-29.53733253479004,2813.186767578125],"6-28-0":[13.60986614227295,29.97687530517578],"6-28-1":[13.977499961853027,31.750625610351562],"6-28-2":[7.614999771118164,27.892187118530273],"6-28-3":[-0.9725000262260437,311.22064208984375],"6-28-4":[-14.034394264221191,373.544921875],"6-28-5":[-35.4900016784668,302.68310546875],"6-28-6":[-52.220001220703125,269.0389099121094],"6-28-7":[-71.45974731445312,37.529998779296875],"6-28-8":[-13.779999732971191,273.384765625],"6-28-9":[-36.7333869934082,404.2498474121094],"6-28-10":[-38.447269439697266,438.23004150390625],"6-28-11":[60.84860610961914,436.4885559082031],"6-28-12":[151.7113037109375,375.4621276855469],"6-28-13":[182.4457244873047,807.4945678710938],"6-28-14":[219.33074951171875,785.8844604492188],"6-28-15":[355.3438415527344,755.863525390625],"6-28-16":[348.2613220214844,1090.387939453125],"6-28-17":[415.18585205078125,1115.4359130859375],"6-28-18":[336.8008117675781,1003.3074340820312],"6-28-19":[247.09083557128906,1013.6737670898438],"6-28-20":[245.510498046875,909.80126953125],"6-28-21":[22.354347229003906,784.5789794921875],"6-28-22":[2.366769313812256,3697.181396484375],"6-28-23":[-6.028477668762207,3685.350341796875],"6-28-24":[-7.324571132659912,3903.9619140625],"6-28-25":[-32.59000015258789,5379.640625],"6-28-26":[-33.8474235534668,1685.026123046875],"6-28-27":[-25.728750228881836,-8.022109031677246],"6-28-28":[-27.139999389648438,-9.265000343322754],"6-28-29":[-28.1299991607666,-9.53695297241211],"6-28-30":[-29.721250534057617,-10.399999618530273],"6-28-31":[-30.488750457763672,-11.782125473022461],"6-28-32":[-30.2918758392334,-13.087499618530273],"6-28-33":[-29.108125686645508,-13.911874771118164],"6-28-34":[-28.1200008392334,-12.6850004196167],"6-28-35":[-25.457988739013672,-10.253000259399414],"6-28-36":[-21.316875457763672,-7.523281097412109],"6-28-37":[-14.778672218322754,-5.330833435058594],"6-28-38":[-12.0259370803833,-4.054999828338623],"6-28-39":[-8.068944931030273,-2.4124999046325684],"6-28-40":[-6.036250114440918,-1.0676562786102295],"6-28-41":[-7.110000133514404,-1.0676562786102295],"6-28-42":[-10.82437515258789,-2.7950000762939453],"6-28-43":[-12.779999732971191,-4.70437479019165],"6-28-44":[-13.739375114440918,-5.300000190734863],"6-28-45":[-14.989999771118164,-5.285781383514404],"6-28-46":[-15.390625,-5.566640853881836],"6-28-47":[-15.789999961853027,-5.297916889190674],"6-28-48":[-15.920624732971191,-5.651098728179932],"6-28-49":[-19.25,-6.886250019073486],"6-28-50":[-20.655000686645508,-7.713749885559082],"6-28-51":[-24.6200008392334,-9.261750221252441],"6-28-52":[-31.186250686645508,-11.539999961853027],"6-28-53":[-40.849998474121094,-14.843125343322754],"6-28-54":[-45.748748779296875,-18.9737491607666],"6-28-55":[-52.380001068115234,-21.706249237060547],"6-28-56":[-55.07374954223633,-24.38249969482422],"6-28-57":[-50.78187561035156,721.38720703125],"6-28-58":[-51.442501068115234,799.614990234375],"6-28-59":[687.2349853515625,1812.125],"6-28-60":[1803.3399658203125,2299.61865234375],"6-28-61":[1923.5926513671875,2175.976318359375],"6-28-62":[1878.6961669921875,2429.862548828125],"6-28-63":[-29.535667419433594,2761.568603515625],"6-29-0":[13.60986614227295,30.774375915527344],"6-29-1":[13.977499961853027,32.4900016784668],"5-14-0":[13.60986614227295,32.4900016784668],"6-29-2":[8.585624694824219,28.93000030517578],"6-29-3":[-0.2150000035762787,604.7734985351562],"5-14-1":[-0.9725000262260437,604.7734985351562],"6-29-4":[-10.781874656677246,424.8585510253906],"6-29-5":[-29.331562042236328,367.0179138183594],"5-14-2":[-35.4900016784668,424.8585510253906],"6-29-6":[-48.9521484375,423.0372619628906],"6-29-7":[-71.02999877929688,188.05526733398438],"5-14-3":[-71.45974731445312,423.0372619628906],"6-29-8":[-71.02999877929688,258.9603271484375],"6-29-9":[-40.69954299926758,265.4730224609375],"5-14-4":[-71.02999877929688,404.2498474121094],"6-29-10":[-45.66239929199219,362.5343322753906],"6-29-11":[35.430267333984375,333.895751953125],"5-14-5":[-45.66239929199219,438.23004150390625],"6-29-12":[69.29764556884766,353.3586730957031],"6-29-13":[176.6434783935547,297.07110595703125],"5-14-6":[69.29764556884766,807.4945678710938],"6-29-14":[185.4031982421875,507.50738525390625],"6-29-15":[216.94708251953125,624.7622680664062],"5-14-7":[185.4031982421875,785.8844604492188],"6-29-16":[248.19227600097656,602.1018676757812],"6-29-17":[227.8706817626953,668.2752075195312],"5-14-8":[227.8706817626953,1115.4359130859375],"6-29-18":[151.81576538085938,558.261962890625],"6-29-19":[87.66143798828125,500.1534423828125],"5-14-9":[87.66143798828125,1013.6737670898438],"6-29-20":[11.410943031311035,489.4504089355469],"6-29-21":[-74.47344970703125,534.6771850585938],"5-14-10":[-74.47344970703125,909.80126953125],"6-29-22":[-59.503204345703125,197.09071350097656],"6-29-23":[-60.31214904785156,1437.0750732421875],"5-14-11":[-60.31214904785156,3697.181396484375],"6-29-24":[-52.88999938964844,3376.078857421875],"6-29-25":[-16.381250381469727,5601.18115234375],"5-14-12":[-52.88999938964844,5601.18115234375],"6-29-26":[-23.20343780517578,3710.86669921875],"6-29-27":[-17.719999313354492,-5.437333106994629],"5-14-13":[-33.8474235534668,3710.86669921875],"6-29-28":[-18.289531707763672,-5.371250152587891],"6-29-29":[-20.019062042236328,-5.801249980926514],"5-14-14":[-28.1299991607666,-5.371250152587891],"6-29-30":[-22.843477249145508,-7.343416690826416],"6-29-31":[-25.670625686645508,-8.542499542236328],"5-14-15":[-30.488750457763672,-7.343416690826416],"6-29-32":[-27.323301315307617,-11.174666404724121],"6-29-33":[-28.2042179107666,-12.928750038146973],"5-14-16":[-30.2918758392334,-11.174666404724121],"6-29-34":[-27.922500610351562,-12.747875213623047],"6-29-35":[-25.569608688354492,-10.376500129699707],"5-14-17":[-28.1200008392334,-10.253000259399414],"6-29-36":[-21.370624542236328,-7.550000190734863],"6-29-37":[-14.742500305175781,-5.8754167556762695],"5-14-18":[-21.370624542236328,-5.330833435058594],"6-29-38":[-12.09749984741211,-3.7049999237060547],"6-29-39":[-7.922324180603027,-1.6024999618530273],"5-14-19":[-12.09749984741211,-1.6024999618530273],"6-29-40":[-4.727499961853027,-0.26124998927116394],"6-29-41":[-5.156875133514404,-0.14024999737739563],"5-14-20":[-7.110000133514404,-0.14024999737739563],"6-29-42":[-8.486249923706055,-1.412083387374878],"6-29-43":[-11.269922256469727,-3.505000114440918],"5-14-21":[-12.779999732971191,-1.412083387374878],"6-29-44":[-11.148750305175781,-3.8237500190734863],"6-29-45":[-11.688124656677246,-3.55049991607666],"5-14-22":[-14.989999771118164,-3.55049991607666],"6-29-46":[-12.800214767456055,-3.5684165954589844],"6-29-47":[-11.230429649353027,-3.957583427429199],"5-14-23":[-15.789999961853027,-3.5684165954589844],"6-29-48":[-12.863574028015137,-3.810666561126709],"6-29-49":[-15.216815948486328,-6.073750019073486],"5-14-24":[-19.25,-3.810666561126709],"6-29-50":[-18.277284622192383,-7.318281173706055],"6-29-51":[-22.802499771118164,-8.447265625],"5-14-25":[-24.6200008392334,-7.318281173706055],"6-29-52":[-28.278301239013672,-10.900968551635742],"6-29-53":[-37.400936126708984,-12.863750457763672],"5-14-26":[-40.849998474121094,-10.900968551635742],"6-29-54":[-42.092559814453125,-16.84316635131836],"6-29-55":[-48.35625076293945,-19.69124984741211],"5-14-27":[-52.380001068115234,-16.84316635131836],"6-29-56":[-54.190860748291016,-22.105499267578125],"6-29-57":[-47.439979553222656,695.1583251953125],"5-14-28":[-55.07374954223633,721.38720703125],"6-29-58":[-44.614376068115234,1067.52880859375],"6-29-59":[697.670654296875,1825.1793212890625],"5-14-29":[-51.442501068115234,1825.1793212890625],"6-29-60":[1812.125,2484.304931640625],"6-29-61":[1887.5423583984375,2200.242431640625],"5-14-30":[1803.3399658203125,2484.304931640625],"6-29-62":[1867.7537841796875,2364.98681640625],"6-29-63":[-29.535165786743164,2744.45556640625],"5-14-31":[-29.535667419433594,2761.568603515625],"6-30-0":[13.60986614227295,31.461875915527344],"6-30-1":[14.833864212036133,32.7688102722168],"6-30-2":[9.255000114440918,30.004375457763672],"6-30-3":[1.409999966621399,1609.719482421875],"6-30-4":[-8.820625305175781,717.9462280273438],"6-30-5":[-23.563749313354492,477.2509460449219],"6-30-6":[-38.690311431884766,559.2890625],"6-30-7":[-70.30999755859375,433.77142333984375],"6-30-8":[-70.30999755859375,458.520751953125],"6-30-9":[-96.35437774658203,174.7340850830078],"6-30-10":[-99.27828216552734,106.10008239746094],"6-30-11":[-98.52371215820312,228.75082397460938],"6-30-12":[-14.616000175476074,294.2605895996094],"6-30-13":[195.65296936035156,456.5606994628906],"6-30-14":[57.99934005737305,564.9129028320312],"6-30-15":[181.5343780517578,584.4856567382812],"6-30-16":[173.46217346191406,471.2747497558594],"6-30-17":[26.59649658203125,446.0809326171875],"6-30-18":[123.08892822265625,490.80596923828125],"6-30-19":[2.263608455657959,806.4000244140625],"6-30-20":[-9.395611763000488,204.35586547851562],"6-30-21":[-55.43519592285156,125.39044952392578],"6-30-22":[-65.73636627197266,-25.611732482910156],"6-30-23":[-65.68025207519531,-25.423749923706055],"6-30-24":[-54.868282318115234,-14.042501449584961],"6-30-25":[-36.5031852722168,2490.705078125],"6-30-26":[-21.018783569335938,2540.81005859375],"6-30-27":[-19.234777450561523,-2.7719922065734863],"6-30-28":[-11.266562461853027,-1.8462998867034912],"6-30-29":[-14.5600004196167,-2.2899999618530273],"6-30-30":[-17.245624542236328,-4.28000020980835],"6-30-31":[-22.1299991607666,-5.316249847412109],"6-30-32":[-25.313749313354492,-8.633199691772461],"6-30-33":[-27.5049991607666,-11.241232872009277],"6-30-34":[-27.5049991607666,-12.148124694824219],"6-30-35":[-24.975000381469727,-9.832500457763672],"6-30-36":[-20.930625915527344,-7.403124809265137],"6-30-37":[-14.8018159866333,-5.53249979019165],"6-30-38":[-11.86343765258789,-2.8087499141693115],"6-30-39":[-6.855937480926514,-0.38749998807907104],"6-30-40":[-2.990000009536743,1.2531249523162842],"6-30-41":[-2.619999885559082,1.521484375],"6-30-42":[-6.464375019073486,0.1537500023841858],"6-30-43":[-9.479999542236328,-1.412500023841858],"6-30-44":[-9.479999542236328,-2.838124990463257],"6-30-45":[-7.653749942779541,-2.1624999046325684],"6-30-46":[-9.060937881469727,-1.9304687976837158],"6-30-47":[-9.8306245803833,-2.8031249046325684],"6-30-48":[-11.712812423706055,-2.880000114440918],"6-30-49":[-14.4350004196167,-4.070624828338623],"6-30-50":[-16.7137508392334,-6.138750076293945],"6-30-51":[-22.368749618530273,-7.948124885559082],"6-30-52":[-24.401874542236328,-9.85170841217041],"6-30-53":[-33.42499923706055,-11.710000038146973],"6-30-54":[-38.579063415527344,-14.8149995803833],"6-30-55":[-43.95000076293945,-16.858531951904297],"6-30-56":[-52.805625915527344,-19.97296905517578],"6-30-57":[-46.557579040527344,310.03125],"6-30-58":[-43.54999923706055,1562.0059814453125],"6-30-59":[790.5900268554688,1824.2149658203125],"6-30-60":[1816.7730712890625,2275.023681640625],"6-30-61":[1789.458740234375,2180.512451171875],"6-30-62":[1867.2652587890625,2328.80078125],"6-30-63":[-29.534833908081055,2744.45703125],"6-31-0":[13.60986614227295,32.223751068115234],"6-31-1":[15.068750381469727,32.834999084472656],"5-15-0":[13.60986614227295,32.834999084472656],"6-31-2":[10.78125,881.8322143554688],"6-31-3":[4.921750068664551,2250.634033203125],"5-15-1":[1.409999966621399,2250.634033203125],"4-7-0":[-0.9725000262260437,2250.634033203125],"6-31-4":[-5.450312614440918,1374.07666015625],"6-31-5":[-22.846250534057617,583.4486694335938],"5-15-2":[-23.563749313354492,1374.07666015625],"6-31-6":[-45.85847473144531,413.33221435546875],"6-31-7":[-57.78562545776367,429.7001953125],"5-15-3":[-70.30999755859375,559.2890625],"4-7-1":[-71.45974731445312,1374.07666015625],"3-3-0":[-71.45974731445312,2250.634033203125],"6-31-8":[-36.14802551269531,577.6168212890625],"6-31-9":[-96.69312286376953,282.1166687011719],"5-15-4":[-96.69312286376953,577.6168212890625],"6-31-10":[-99.11488342285156,-46.981834411621094],"6-31-11":[-98.4800033569336,190.5708465576172],"5-15-5":[-99.27828216552734,228.75082397460938],"4-7-2":[-99.27828216552734,577.6168212890625],"6-31-12":[-15.932578086853027,323.9969482421875],"6-31-13":[204.84600830078125,447.14007568359375],"5-15-6":[-15.932578086853027,456.5606994628906],"6-31-14":[150.72079467773438,671.1128540039062],"6-31-15":[147.71234130859375,604.8933715820312],"5-15-7":[57.99934005737305,671.1128540039062],"4-7-3":[-15.932578086853027,807.4945678710938],"3-3-1":[-99.27828216552734,3889.2705078125],"2-1-0":[-259.60552978515625,4373.5126953125],"6-31-16":[142.69387817382812,422.7424011230469],"6-31-17":[82.02781677246094,300.3182067871094],"5-15-8":[26.59649658203125,471.2747497558594],"6-31-18":[37.49706268310547,509.5253601074219],"6-31-19":[3.7503535747528076,590.4490966796875],"5-15-9":[2.263608455657959,806.4000244140625],"4-7-4":[2.263608455657959,1115.4359130859375],"6-31-20":[-28.12285614013672,146.08395385742188],"6-31-21":[-51.453731536865234,78.69307708740234],"5-15-10":[-55.43519592285156,204.35586547851562],"6-31-22":[-60.5212516784668,-24.959999084472656],"6-31-23":[-60.544979095458984,-17.000001907348633],"5-15-11":[-65.73636627197266,-17.000001907348633],"4-7-5":[-74.47344970703125,3697.181396484375],"3-3-2":[-79.5688247680664,4383.2421875],"6-31-24":[-51.290000915527344,129.7989501953125],"6-31-25":[-28.084999084472656,2495.759033203125],"5-15-12":[-54.868282318115234,2495.759033203125],"6-31-26":[-31.803260803222656,4217.92333984375],"6-31-27":[-39.21763610839844,1667.2733154296875],"5-15-13":[-39.21763610839844,4217.92333984375],"4-7-6":[-54.868282318115234,5601.18115234375],"6-31-28":[-3.6882030963897705,3.559999942779541],"6-31-29":[-7.939062595367432,1.7878973484039307],"5-15-14":[-14.5600004196167,3.559999942779541],"6-31-30":[-10.632499694824219,-0.9549999833106995],"6-31-31":[-23.371536254882812,1700.4434814453125],"5-15-15":[-23.371536254882812,1700.4434814453125],"4-7-7":[-30.488750457763672,1700.4434814453125],"3-3-3":[-78.29757690429688,5601.18115234375],"2-1-1":[-115.49979400634766,5601.18115234375],"1-0-0":[-317.1861877441406,6207.27099609375],"6-31-32":[-321.58245849609375,1684.4144287109375],"6-31-33":[-25.16470718383789,-8.123507499694824],"5-15-16":[-321.58245849609375,1684.4144287109375],"6-31-34":[-25.229629516601562,-10.225000381469727],"6-31-35":[-23.466737747192383,-8.634666442871094],"5-15-17":[-27.5049991607666,-8.634666442871094],"4-7-8":[-321.58245849609375,1684.4144287109375],"6-31-36":[-19.498125076293945,-5.987500190734863],"6-31-37":[-14.161151885986328,-4.585999965667725],"5-15-18":[-20.930625915527344,-4.585999965667725],"6-31-38":[-10.884374618530273,-1.7699999809265137],"6-31-39":[-4.982851505279541,1.0399999618530273],"5-15-19":[-11.86343765258789,1.0399999618530273],"4-7-9":[-21.370624542236328,1.0399999618530273],"3-3-4":[-321.58245849609375,1684.4144287109375],"6-31-40":[-0.4581249952316284,3.5899999141693115],"6-31-41":[0.1537500023841858,3.569999933242798],"5-15-20":[-2.990000009536743,3.5899999141693115],"6-31-42":[-1.860898494720459,3.3237500190734863],"6-31-43":[-5.762499809265137,-0.19249999523162842],"5-15-21":[-9.479999542236328,3.3237500190734863],"4-7-10":[-12.779999732971191,3.5899999141693115],"6-31-44":[-6.161289215087891,-2.1033332347869873],"6-31-45":[-5.440605640411377,-1.1924999952316284],"5-15-22":[-9.479999542236328,-1.1924999952316284],"6-31-46":[-4.525702953338623,-0.737500011920929],"6-31-47":[-5.474863052368164,-0.9375],"5-15-23":[-9.8306245803833,-0.737500011920929],"4-7-11":[-15.789999961853027,-0.737500011920929],"3-3-5":[-32.095970153808594,501.95904541015625],"2-1-2":[-321.58245849609375,1684.4144287109375],"6-31-48":[-7.291113376617432,-1.034333348274231],"6-31-49":[-11.9556245803833,-1.3849999904632568],"5-15-24":[-14.4350004196167,-1.034333348274231],"6-31-50":[-15.071328163146973,-4.164166450500488],"6-31-51":[-19.143749237060547,-5.734499931335449],"5-15-25":[-22.368749618530273,-4.164166450500488],"4-7-12":[-24.6200008392334,-1.034333348274231],"6-31-52":[-21.7559757232666,-8.28600025177002],"6-31-53":[-29.279375076293945,-9.984999656677246],"5-15-26":[-33.42499923706055,-8.28600025177002],"6-31-54":[-34.03529357910156,-12.932499885559082],"6-31-55":[-39.760623931884766,-14.371999740600586],"5-15-27":[-43.95000076293945,-12.932499885559082],"4-7-13":[-52.380001068115234,-8.28600025177002],"3-3-6":[-62.36000061035156,-1.034333348274231],"6-31-56":[-43.42976379394531,1365.619384765625],"6-31-57":[-44.80941390991211,282.180419921875],"5-15-28":[-52.805625915527344,1365.619384765625],"6-31-58":[-39.756561279296875,1267.0072021484375],"6-31-59":[957.9031372070312,1887.8699951171875],"5-15-29":[-43.54999923706055,1887.8699951171875],"4-7-14":[-55.07374954223633,1887.8699951171875],"6-31-60":[1730.62744140625,2175.255859375],"6-31-61":[1639.4625244140625,1987.1214599609375],"5-15-30":[1639.4625244140625,2275.023681640625],"6-31-62":[1752.654052734375,2714.8681640625],"6-31-63":[-29.534334182739258,2744.45849609375],"5-15-31":[-29.534833908081055,2744.45849609375],"4-7-15":[-29.535667419433594,2761.568603515625],"3-3-7":[-69.32250213623047,3441.141357421875],"2-1-3":[-102.30000305175781,3682.626220703125],"1-0-1":[-321.58245849609375,3970.4091796875],"6-32-0":[13.609612464904785,32.700740814208984],"6-32-1":[15.633749961853027,32.834999084472656],"6-32-2":[12.535197257995605,1148.723388671875],"6-32-3":[3.5450000762939453,1723.077392578125],"6-32-4":[-3.478749990463257,1337.9537353515625],"6-32-5":[-22.639999389648438,684.1025390625],"6-32-6":[-45.529998779296875,367.1369934082031],"6-32-7":[-63.10874938964844,395.5621032714844],"6-32-8":[-72.92769622802734,546.2210693359375],"6-32-9":[-93.9800033569336,248.09083557128906],"6-32-10":[-96.38500213623047,-44.470001220703125],"6-32-11":[-97.8539810180664,87.34253692626953],"6-32-12":[-57.45587158203125,240.4307403564453],"6-32-13":[116.0750961303711,415.09088134765625],"6-32-14":[116.17733764648438,599.33740234375],"6-32-15":[138.68125915527344,568.6915893554688],"6-32-16":[-2.588705539703369,551.42822265625],"6-32-17":[75.1243667602539,291.62066650390625],"6-32-18":[-24.23882293701172,294.3131103515625],"6-32-19":[4.688924312591553,321.4842529296875],"6-32-20":[-31.380125045776367,211.55624389648438],"6-32-21":[-63.339420318603516,90.37579345703125],"6-32-22":[-63.102378845214844,-25.227392196655273],"6-32-23":[-57.22077178955078,-7.6501970291137695],"6-32-24":[-31.366640090942383,200.23219299316406],"6-32-25":[-33.44078826904297,1010.3015747070312],"6-32-26":[-35.501033782958984,3009.310546875],"6-32-27":[-28.358240127563477,2376.927001953125],"6-32-28":[-3.2114062309265137,10.909114837646484],"6-32-29":[-1.760585904121399,10.505273818969727],"6-32-30":[-4.670000076293945,6.7381978034973145],"6-32-31":[-7.343671798706055,73.0645751953125],"6-32-32":[-18.666501998901367,716.3709716796875],"6-32-33":[-20.8799991607666,-4.493750095367432],"6-32-34":[-21.3799991607666,-6.536250114440918],"6-32-35":[-20.17937469482422,-6.027500152587891],"6-32-36":[-17.040000915527344,-4.756406307220459],"6-32-37":[-11.748125076293945,-2.762500047683716],"6-32-38":[-9,-0.2837499976158142],"6-32-39":[-2.865000009536743,3.559375047683716],"6-32-40":[0.5988333225250244,5.449609279632568],"6-32-41":[1.565000057220459,6.306640625],"6-32-42":[-0.19249999523162842,5.543749809265137],"6-32-43":[-3.9200000762939453,1.1283984184265137],"6-32-44":[-5.256875038146973,-0.574999988079071],"6-32-45":[-4.776249885559082,-0.14499999582767487],"6-32-46":[-2.4362499713897705,1.4231250286102295],"6-32-47":[-2.426875114440918,2.7179296016693115],"6-32-48":[-2.635624885559082,1.5575000047683716],"6-32-49":[-7.980000019073486,-0.10875000059604645],"6-32-50":[-11.832500457763672,-1.816249966621399],"6-32-51":[-16.399999618530273,-4.239999771118164],"6-32-52":[-18.965625762939453,-6.574999809265137],"6-32-53":[-25.68000030517578,-8.314374923706055],"6-32-54":[-28.746875762939453,-11.318750381469727],"6-32-55":[-35.040000915527344,-12.680624961853027],"6-32-56":[-41.258750915527344,-14.170624732971191],"6-32-57":[-36.5915641784668,248.00355529785156],"6-32-58":[-36.5915641784668,1290.601318359375],"6-32-59":[1072.4759521484375,2685.376220703125],"6-32-60":[1460.8974609375,2381.83544921875],"6-32-61":[1444.3438720703125,1985.5250244140625],"6-32-62":[1435.2166748046875,2244.922607421875],"6-32-63":[-29.533832550048828,2744.45947265625],"6-33-0":[13.609612464904785,33.178123474121094],"6-33-1":[15.633749961853027,33.381248474121094],"5-16-0":[13.609612464904785,33.381248474121094],"6-33-2":[13.830156326293945,1617.9508056640625],"6-33-3":[3.5450000762939453,1701.020263671875],"5-16-1":[3.5450000762939453,1723.077392578125],"6-33-4":[-1.2981250286102295,1540.6612548828125],"6-33-5":[-21.28125,1009.4609375],"5-16-2":[-22.639999389648438,1540.6612548828125],"6-33-6":[-36.74531173706055,819.8519897460938],"6-33-7":[-62.76374816894531,557.5596923828125],"5-16-3":[-63.10874938964844,819.8519897460938],"6-33-8":[-72.8228530883789,444.3411560058594],"6-33-9":[-88.50312805175781,366.6748352050781],"5-16-4":[-93.9800033569336,546.2210693359375],"6-33-10":[-95.61443328857422,-42.25016784667969],"6-33-11":[-97.08373260498047,-45.9669075012207],"5-16-5":[-97.8539810180664,87.34253692626953],"6-33-12":[-96.1167221069336,205.41311645507812],"6-33-13":[26.23398780822754,323.9056701660156],"5-16-6":[-96.1167221069336,415.09088134765625],"6-33-14":[40.15834045410156,604.6658325195312],"6-33-15":[99.8071517944336,613.0411376953125],"5-16-7":[40.15834045410156,613.0411376953125],"6-33-16":[103.99250793457031,486.53594970703125],"6-33-17":[42.02951431274414,356.668212890625],"5-16-8":[-2.588705539703369,551.42822265625],"6-33-18":[73.98677825927734,611.4224853515625],"6-33-19":[-2.387826919555664,1256.3944091796875],"5-16-9":[-24.23882293701172,1256.3944091796875],"6-33-20":[-18.209444046020508,703.6430053710938],"6-33-21":[-62.85859298706055,133.7196502685547],"5-16-10":[-63.339420318603516,703.6430053710938],"6-33-22":[-63.043617248535156,-24.555400848388672],"6-33-23":[-54.76517868041992,-15.600799560546875],"5-16-11":[-63.102378845214844,-7.6501970291137695],"6-33-24":[-55.003807067871094,38.887596130371094],"6-33-25":[-31.170000076293945,-5.73250150680542],"5-16-12":[-55.003807067871094,1010.3015747070312],"6-33-26":[-16.69755744934082,2458.8642578125],"6-33-27":[-29.3737850189209,2108.961669921875],"5-16-13":[-35.501033782958984,3009.310546875],"6-33-28":[-12.980457305908203,2165.3642578125],"6-33-29":[3.8887500762939453,21.335975646972656],"5-16-14":[-12.980457305908203,2165.3642578125],"6-33-30":[-9.944382667541504,580.0387573242188],"6-33-31":[-3.6567187309265137,9.279999732971191],"5-16-15":[-9.944382667541504,580.0387573242188],"6-33-32":[-8.8310546875,4.828281402587891],"6-33-33":[-12.474117279052734,2.122499942779541],"5-16-16":[-20.8799991607666,716.3709716796875],"6-33-34":[-13.350136756896973,-2.7409660816192627],"6-33-35":[-13.26205062866211,-2.887333393096924],"5-16-17":[-21.3799991607666,-2.7409660816192627],"6-33-36":[-11.464374542236328,-2.6955833435058594],"6-33-37":[-8.94222640991211,-0.7492499947547913],"5-16-18":[-17.040000915527344,-0.7492499947547913],"6-33-38":[-5.133124828338623,2.7381250858306885],"6-33-39":[-0.2837499976158142,8.079999923706055],"5-16-19":[-9,8.079999923706055],"6-33-40":[1.9474999904632568,9.424530982971191],"6-33-41":[2.809999942779541,10.7446870803833],"5-16-20":[0.5988333225250244,10.7446870803833],"6-33-42":[0.8956249952316284,8.505000114440918],"6-33-43":[-0.574999988079071,5.525000095367432],"5-16-21":[-3.9200000762939453,8.505000114440918],"6-33-44":[-2.1230077743530273,3.5487890243530273],"6-33-45":[-1.4517773389816284,3.2899999618530273],"5-16-22":[-5.256875038146973,3.5487890243530273],"6-33-46":[-0.14499999582767487,6.869375228881836],"6-33-47":[1.0724999904632568,7.720312595367432],"5-16-23":[-2.4362499713897705,7.720312595367432],"6-33-48":[-0.10875000059604645,7.039999961853027],"6-33-49":[-2.9049999713897705,4.005937576293945],"5-16-24":[-7.980000019073486,7.039999961853027],"6-33-50":[-7.721738338470459,0.6499999761581421],"6-33-51":[-12.578125,-2.016249895095825],"5-16-25":[-16.399999618530273,0.6499999761581421],"6-33-52":[-14.9888277053833,-3.669250011444092],"6-33-53":[-21.941875457763672,-5.753749847412109],"5-16-26":[-25.68000030517578,-3.669250011444092],"6-33-54":[-24.510351181030273,-9.259249687194824],"6-33-55":[-29.298749923706055,-10.4975004196167],"5-16-27":[-35.040000915527344,-9.259249687194824],"6-33-56":[-30.528242111206055,-11.385416984558105],"6-33-57":[-34.536563873291016,-11.657500267028809],"5-16-28":[-41.258750915527344,248.00355529785156],"6-33-58":[-34.68156433105469,1304.6239013671875],"6-33-59":[163.09291076660156,4721.9384765625],"5-16-29":[-36.5915641784668,4721.9384765625],"6-33-60":[441.1223449707031,2555.39404296875],"6-33-61":[1232.67626953125,1732.4361572265625],"5-16-30":[441.1223449707031,2555.39404296875],"6-33-62":[1251.8375244140625,2245.561279296875],"6-33-63":[-29.53350067138672,2744.4609375],"5-16-31":[-29.533832550048828,2744.4609375],"6-34-0":[13.609612464904785,33.56019592285156],"6-34-1":[16.20199966430664,34.26222610473633],"6-34-2":[15.093725204467773,1823.8212890625],"6-34-3":[5.88100004196167,1627.2674560546875],"6-34-4":[0.7875000238418579,1272.0947265625],"6-34-5":[-16.009687423706055,1913.67138671875],"6-34-6":[-22.8671875,1056.54296875],"6-34-7":[-53.188751220703125,570.7405395507812],"6-34-8":[-67.07808685302734,613.9686889648438],"6-34-9":[-84.48999786376953,433.16314697265625],"6-34-10":[-91.93250274658203,-38.647499084472656],"6-34-11":[-96.05726623535156,-44.35799789428711],"6-34-12":[-95.87000274658203,171.7896270751953],"6-34-13":[-45.991973876953125,145.1162872314453],"6-34-14":[-3.034637451171875,594.9109497070312],"6-34-15":[117.38831329345703,614.3532104492188],"6-34-16":[124.0527114868164,432.13677978515625],"6-34-17":[17.53190040588379,436.83734130859375],"6-34-18":[94.64409637451172,1652.415283203125],"6-34-19":[35.464500427246094,2004.6978759765625],"6-34-20":[-31.332612991333008,358.1960144042969],"6-34-21":[-56.90498352050781,76.44124603271484],"6-34-22":[-52.23574447631836,86.31781005859375],"6-34-23":[-53.40187454223633,678.5545654296875],"6-34-24":[-46.90708923339844,565.4134521484375],"6-34-25":[-34.294002532958984,19.566333770751953],"6-34-26":[-32.89708709716797,735.53662109375],"6-34-27":[-24.669208526611328,729.4535522460938],"6-34-28":[-18.576236724853516,3818.3037109375],"6-34-29":[-17.783672332763672,1199.759033203125],"6-34-30":[0.9851564764976501,213.97396850585938],"6-34-31":[2.0450003147125244,21.125],"6-34-32":[2.122499942779541,20.072383880615234],"6-34-33":[-5.452031135559082,10.112500190734863],"6-34-34":[-5.764999866485596,0.7950000166893005],"6-34-35":[-6.046093940734863,2.958125114440918],"6-34-36":[-5.938437461853027,2.958125114440918],"6-34-37":[-5.129687309265137,6.163125038146973],"6-34-38":[-1.2999999523162842,9.794179916381836],"6-34-39":[1.6437499523162842,14.126386642456055],"6-34-40":[4.235452651977539,15.165312767028809],"6-34-41":[4.476180553436279,14.03109359741211],"6-34-42":[3.4067959785461426,12.0181245803833],"6-34-43":[3.4060769081115723,11.006250381469727],"6-34-44":[1.5522500276565552,10.904999732971191],"6-34-45":[1.4821666479110718,9.298476219177246],"6-34-46":[1.5427500009536743,11.80923843383789],"6-34-47":[3.7225000858306885,12.766875267028809],"6-34-48":[2.174999952316284,11.743749618530273],"6-34-49":[0.4183333218097687,7.879511833190918],"6-34-50":[-3.2459375858306885,5.768750190734863],"6-34-51":[-6.929999828338623,1.4936718940734863],"6-34-52":[-11.324999809265137,-1.4450000524520874],"6-34-53":[-18.2549991607666,-3.747499942779541],"6-34-54":[-20.78499984741211,-6.340390682220459],"6-34-55":[-25.280000686645508,-7.545000076293945],"6-34-56":[-27.003124237060547,-9.252344131469727],"6-34-57":[-33.974998474121094,-10.944999694824219],"6-34-58":[-34.79148483276367,1241.1287841796875],"6-34-59":[-52.354373931884766,1732.8399658203125],"6-34-60":[-52.354373931884766,2250.427490234375],"6-34-61":[873.0006103515625,1480.748291015625],"6-34-62":[1247.41748046875,2251.123779296875],"6-34-63":[-29.533000946044922,2745.46240234375],"6-35-0":[13.609612464904785,34.154998779296875],"6-35-1":[16.51300048828125,35.75312423706055],"5-17-0":[13.609612464904785,35.75312423706055],"6-35-2":[16.38882827758789,1923.5887451171875],"6-35-3":[9.49625015258789,2313.90185546875],"5-17-1":[5.88100004196167,2313.90185546875],"4-8-0":[3.5450000762939453,2313.90185546875],"6-35-4":[3.3087499141693115,2252.724365234375],"6-35-5":[-8.03921890258789,1712.430908203125],"5-17-2":[-16.009687423706055,2252.724365234375],"6-35-6":[-16.624961853027344,1559.4354248046875],"6-35-7":[-53.775001525878906,272.3143615722656],"5-17-3":[-53.775001525878906,1559.4354248046875],"4-8-1":[-63.10874938964844,2252.724365234375],"6-35-8":[-65.48381042480469,185.60025024414062],"6-35-9":[-76.09625244140625,184.5128173828125],"5-17-4":[-84.48999786376953,613.9686889648438],"6-35-10":[-88.71499633789062,293.2671813964844],"6-35-11":[-92.7027359008789,81.86988067626953],"5-17-5":[-96.05726623535156,293.2671813964844],"4-8-2":[-97.8539810180664,613.9686889648438],"6-35-12":[-92.6500015258789,123.69763946533203],"6-35-13":[-45.81018829345703,181.35301208496094],"5-17-6":[-95.87000274658203,181.35301208496094],"6-35-14":[-26.9197998046875,536.1646728515625],"6-35-15":[122.02342987060547,651.6944580078125],"5-17-7":[-26.9197998046875,651.6944580078125],"4-8-3":[-96.1167221069336,651.6944580078125],"6-35-16":[27.963048934936523,701.75048828125],"6-35-17":[-8.597023963928223,951.4263305664062],"5-17-8":[-8.597023963928223,951.4263305664062],"6-35-18":[-44.7895393371582,1713.98291015625],"6-35-19":[-37.12843322753906,1476.71875],"5-17-9":[-44.7895393371582,2004.6978759765625],"4-8-4":[-44.7895393371582,2004.6978759765625],"6-35-20":[-74.32875061035156,139.8324432373047],"6-35-21":[-74.17781066894531,28.938535690307617],"5-17-10":[-74.32875061035156,358.1960144042969],"6-35-22":[-68.2699966430664,63.3629035949707],"6-35-23":[-53.743629455566406,293.7559814453125],"5-17-11":[-68.2699966430664,678.5545654296875],"4-8-5":[-74.32875061035156,703.6430053710938],"6-35-24":[-62.6550178527832,1104.61669921875],"6-35-25":[-46.416873931884766,14.259981155395508],"5-17-12":[-62.6550178527832,1104.61669921875],"6-35-26":[-24.530000686645508,8.2515230178833],"6-35-27":[-12.34000015258789,357.6253356933594],"5-17-13":[-32.89708709716797,735.53662109375],"4-8-6":[-62.6550178527832,3009.310546875],"6-35-28":[-9.045613288879395,1960.7244873046875],"6-35-29":[-37.994014739990234,1563.9573974609375],"5-17-14":[-37.994014739990234,3818.3037109375],"6-35-30":[10.5625,29.1983585357666],"6-35-31":[-33.99045181274414,2816.318603515625],"5-17-15":[-33.99045181274414,2816.318603515625],"4-8-7":[-37.994014739990234,3818.3037109375],"6-35-32":[-39.35813903808594,6286.7705078125],"6-35-33":[-56.72711181640625,4458.61083984375],"5-17-16":[-56.72711181640625,6286.7705078125],"6-35-34":[-63.313175201416016,4118.73876953125],"6-35-35":[-8.376976013183594,458.9070739746094],"5-17-17":[-63.313175201416016,4118.73876953125],"4-8-8":[-63.313175201416016,6286.7705078125],"6-35-36":[-1.4499218463897705,18],"6-35-37":[2.1943750381469727,21.760000228881836],"5-17-18":[-5.938437461853027,21.760000228881836],"6-35-38":[3.783750057220459,22.138437271118164],"6-35-39":[5.816249847412109,20.110000610351562],"5-17-19":[-1.2999999523162842,22.138437271118164],"4-8-9":[-17.040000915527344,22.138437271118164],"6-35-40":[6.542343616485596,19.828750610351562],"6-35-41":[-22.91495132446289,470.0792541503906],"5-17-20":[-22.91495132446289,470.0792541503906],"6-35-42":[5.503125190734863,19.6299991607666],"6-35-43":[-88.4389419555664,1091.3018798828125],"5-17-21":[-88.4389419555664,1091.3018798828125],"4-8-10":[-88.4389419555664,1091.3018798828125],"6-35-44":[-23.759532928466797,1289.288818359375],"6-35-45":[4.727916717529297,16.90999984741211],"5-17-22":[-23.759532928466797,1289.288818359375],"6-35-46":[4.869124889373779,18.793437957763672],"6-35-47":[6.110000133514404,18.776561737060547],"5-17-23":[1.5427500009536743,18.793437957763672],"4-8-11":[-23.759532928466797,1289.288818359375],"6-35-48":[4.514999866485596,19.17562484741211],"6-35-49":[3.2125000953674316,14.354999542236328],"5-17-24":[0.4183333218097687,19.17562484741211],"6-35-50":[1.4537500143051147,11.005937576293945],"6-35-51":[-2.169374942779541,8.585234642028809],"5-17-25":[-6.929999828338623,11.005937576293945],"4-8-12":[-16.399999618530273,19.17562484741211],"6-35-52":[-5.593203067779541,3.440000057220459],"6-35-53":[-11.997812271118164,-1.4149999618530273],"5-17-26":[-18.2549991607666,3.440000057220459],"6-35-54":[-13.814648628234863,-3.0811667442321777],"6-35-55":[-20.583749771118164,-4.159999847412109],"5-17-27":[-25.280000686645508,-3.0811667442321777],"4-8-13":[-35.040000915527344,3.440000057220459],"6-35-56":[-21.592500686645508,-7.005000114440918],"6-35-57":[-30.2081241607666,327.4503173828125],"5-17-28":[-33.974998474121094,327.4503173828125],"6-35-58":[-30.726055145263672,1088.6669921875],"6-35-59":[-49.3962516784668,1067.494873046875],"5-17-29":[-52.354373931884766,1732.8399658203125],"4-8-14":[-52.354373931884766,4721.9384765625],"6-35-60":[-49.3962516784668,1223.5858154296875],"6-35-61":[548.4749755859375,1388.02001953125],"5-17-30":[-52.354373931884766,2250.427490234375],"6-35-62":[1139.79296875,2260.71240234375],"6-35-63":[-29.532541275024414,2745.46337890625],"5-17-31":[-29.533000946044922,2745.46337890625],"4-8-15":[-52.354373931884766,2745.46337890625],"6-36-0":[13.60969352722168,34.608123779296875],"6-36-1":[16.930999755859375,36.791446685791016],"6-36-2":[17.480960845947266,2230.74365234375],"6-36-3":[8.20657730102539,2258.078857421875],"6-36-4":[6.489999771118164,1817.357177734375],"6-36-5":[1.3459999561309814,2118.707763671875],"6-36-6":[-14.899999618530273,1862.6602783203125],"6-36-7":[-49.68000030517578,611.882080078125],"6-36-8":[-62.20249938964844,282.82696533203125],"6-36-9":[-68.8062515258789,575.7647705078125],"6-36-10":[-79.90238189697266,428.0107421875],"6-36-11":[-45.303707122802734,430.044677734375],"6-36-12":[-47.67145919799805,408.9637145996094],"6-36-13":[-44.51835250854492,406.32373046875],"6-36-14":[126.58505249023438,610.8485107421875],"6-36-15":[16.435157775878906,575.2938232421875],"6-36-16":[12.099763870239258,700.0196533203125],"6-36-17":[-45.24113464355469,927.500244140625],"6-36-18":[-64.49224090576172,1201.6031494140625],"6-36-19":[-85.53500366210938,191.40065002441406],"6-36-20":[-89.05337524414062,-36.2439079284668],"6-36-21":[-93.15879821777344,-34.13500213623047],"6-36-22":[-90.88398742675781,29.146835327148438],"6-36-23":[-82.16000366210938,55.7501220703125],"6-36-24":[-67.35836029052734,1947.5755615234375],"6-36-25":[-49.85895538330078,2231.321044921875],"6-36-26":[-37.002498626708984,0.9772487878799438],"6-36-27":[-29.927499771118164,-2.9284005165100098],"6-36-28":[-18.950000762939453,1449.8553466796875],"6-36-29":[-29.877696990966797,4212.66796875],"6-36-30":[-37.469970703125,5414.8701171875],"6-36-31":[-328.0532531738281,5809.47802734375],"6-36-32":[167.6475067138672,5906.1796875],"6-36-33":[112.46368408203125,4149.9248046875],"6-36-34":[77.11599731445312,5607.443359375],"6-36-35":[-116.38557434082031,6754.431640625],"6-36-36":[-49.480438232421875,5914.68212890625],"6-36-37":[-7.034445285797119,824.1224365234375],"6-36-38":[10.055000305175781,32.10759735107422],"6-36-39":[9.188955307006836,30.00374984741211],"6-36-40":[9.06992244720459,28.9012508392334],"6-36-41":[9.770933151245117,29.255937576293945],"6-36-42":[8.852499961853027,27.54964828491211],"6-36-43":[7.851250171661377,26.741016387939453],"6-36-44":[8.150001525878906,25.778945922851562],"6-36-45":[8.098671913146973,22.472675323486328],"6-36-46":[8.440000534057617,23.1350154876709],"6-36-47":[9.170533180236816,22.903671264648438],"6-36-48":[7.171719074249268,22.446107864379883],"6-36-49":[4.693906307220459,22.44002914428711],"6-36-50":[4.053515434265137,19.427936553955078],"6-36-51":[1.9565000534057617,10.135558128356934],"6-36-52":[-2.0643749237060547,8.338749885559082],"6-36-53":[-5.889999866485596,2.42919921875],"6-36-54":[-7.669374942779541,0.9959570169448853],"6-36-55":[-16.420000076293945,-0.39250001311302185],"6-36-56":[-17.956249237060547,4.820000171661377],"6-36-57":[-24.96843719482422,322.59100341796875],"6-36-58":[-25.4918155670166,1069.76904296875],"6-36-59":[-46.78437423706055,1055.469970703125],"6-36-60":[-49.79624938964844,832.4734497070312],"6-36-61":[240.99000549316406,1288.6181640625],"6-36-62":[1054.14501953125,2281.244384765625],"6-36-63":[-29.532167434692383,2745.464599609375],"6-37-0":[13.60969352722168,35.391563415527344],"6-37-1":[17.14900016784668,38.446250915527344],"5-18-0":[13.60969352722168,38.446250915527344],"6-37-2":[18.24250030517578,2437.46875],"6-37-3":[7.27216100692749,2148.915771484375],"5-18-1":[7.27216100692749,2437.46875],"6-37-4":[7.890486240386963,1260.23095703125],"6-37-5":[4.776249885559082,32.76499938964844],"5-18-2":[1.3459999561309814,2118.707763671875],"6-37-6":[-1.9151500463485718,1808.185546875],"6-37-7":[-40.49187469482422,1101.486083984375],"5-18-3":[-49.68000030517578,1862.6602783203125],"6-37-8":[-50.5896110534668,282.6098937988281],"6-37-9":[-60.816017150878906,642.26123046875],"5-18-4":[-68.8062515258789,642.26123046875],"6-37-10":[-29.581199645996094,648.1566772460938],"6-37-11":[-23.750877380371094,410.18841552734375],"5-18-5":[-79.90238189697266,648.1566772460938],"6-37-12":[-40.7246208190918,516.4205932617188],"6-37-13":[163.419189453125,654.1401977539062],"5-18-6":[-47.67145919799805,654.1401977539062],"6-37-14":[225.34600830078125,700.0050048828125],"6-37-15":[-96.59557342529297,889.4213256835938],"5-18-7":[-96.59557342529297,889.4213256835938],"6-37-16":[-33.2802848815918,1597.562255859375],"6-37-17":[-113.28196716308594,1241.6170654296875],"5-18-8":[-113.28196716308594,1597.562255859375],"6-37-18":[-86.47750091552734,7.405726432800293],"6-37-19":[-97.80999755859375,-12.115809440612793],"5-18-9":[-97.80999755859375,1201.6031494140625],"6-37-20":[-102.59062194824219,-42.7385139465332],"6-37-21":[-100.61343383789062,-43.80812454223633],"5-18-10":[-102.59062194824219,-34.13500213623047],"6-37-22":[-95.91999816894531,-41.08000183105469],"6-37-23":[-92.85687255859375,26.26848602294922],"5-18-11":[-95.91999816894531,55.7501220703125],"6-37-24":[-83.19019317626953,1217.9403076171875],"6-37-25":[-62.639373779296875,2330.682861328125],"5-18-12":[-83.19019317626953,2330.682861328125],"6-37-26":[-56.439998626708984,-14.963749885559082],"6-37-27":[-48.39730453491211,871.942626953125],"5-18-13":[-56.439998626708984,871.942626953125],"6-37-28":[-49.018287658691406,5700.21044921875],"6-37-29":[-23.51932716369629,3844.513427734375],"5-18-14":[-49.018287658691406,5700.21044921875],"6-37-30":[169.00404357910156,5315.888671875],"6-37-31":[170.25942993164062,3836.765380859375],"5-18-15":[-328.0532531738281,5809.47802734375],"6-37-32":[117.06708526611328,443.3743896484375],"6-37-33":[81.67510986328125,324.5817565917969],"5-18-16":[81.67510986328125,5906.1796875],"6-37-34":[90.991455078125,2362.211181640625],"6-37-35":[136.3090362548828,5683.587890625],"5-18-17":[-116.38557434082031,6754.431640625],"6-37-36":[213.99058532714844,5564.57568359375],"6-37-37":[-123.52845001220703,5547.74072265625],"5-18-18":[-123.52845001220703,5914.68212890625],"6-37-38":[11.414454460144043,41.11851501464844],"6-37-39":[13.525312423706055,40.435001373291016],"5-18-19":[9.188955307006836,41.11851501464844],"6-37-40":[13.779999732971191,39.291404724121094],"6-37-41":[13.663750648498535,37.497501373291016],"5-18-20":[9.06992244720459,39.291404724121094],"6-37-42":[12.714219093322754,34.41627502441406],"6-37-43":[9.070001602172852,32.130859375],"5-18-21":[7.851250171661377,34.41627502441406],"6-37-44":[8.292949676513672,34.45293045043945],"6-37-45":[-18.705533981323242,1376.535888671875],"5-18-22":[-18.705533981323242,1376.535888671875],"6-37-46":[-29.581918716430664,1061.2470703125],"6-37-47":[-7.305708885192871,1414.2452392578125],"5-18-23":[-29.581918716430664,1414.2452392578125],"6-37-48":[-36.84894561767578,4026.287353515625],"6-37-49":[-269.4302978515625,3587.08349609375],"5-18-24":[-269.4302978515625,4026.287353515625],"6-37-50":[-96.76741790771484,2789.906005859375],"6-37-51":[-222.28146362304688,1172.62939453125],"5-18-25":[-222.28146362304688,2789.906005859375],"6-37-52":[1.7937500476837158,13.508125305175781],"6-37-53":[0.7265625,11.274999618530273],"5-18-26":[-5.889999866485596,13.508125305175781],"6-37-54":[-0.39250001311302185,8.585000038146973],"6-37-55":[-7.65625,4.3515625],"5-18-27":[-16.420000076293945,8.585000038146973],"6-37-56":[-8.520800590515137,510.5131530761719],"6-37-57":[-19.022422790527344,669.2753295898438],"5-18-28":[-24.96843719482422,669.2753295898438],"6-37-58":[-21.40005874633789,1660.7501220703125],"6-37-59":[-46.8337516784668,796.8704223632812],"5-18-29":[-46.8337516784668,1660.7501220703125],"6-37-60":[-52.308204650878906,243.31312561035156],"6-37-61":[219.3477325439453,1153.82763671875],"5-18-30":[-52.308204650878906,1288.6181640625],"6-37-62":[921.3074951171875,2321.172607421875],"6-37-63":[-29.53183364868164,2745.466064453125],"5-18-31":[-29.532167434692383,2745.466064453125],"6-38-0":[13.60969352722168,36.28562545776367],"6-38-1":[17.42934226989746,39.791873931884766],"6-38-2":[18.960832595825195,2116.62158203125],"6-38-3":[6.6004638671875,2052.804443359375],"6-38-4":[10.005264282226562,1115.310791015625],"6-38-5":[12.54307746887207,35.54378890991211],"6-38-6":[0.8310890197753906,1713.2840576171875],"6-38-7":[-34.11000061035156,1625.1866455078125],"6-38-8":[-39.920623779296875,332.8118896484375],"6-38-9":[-52.514686584472656,633.7987060546875],"6-38-10":[-48.560001373291016,658.265625],"6-38-11":[-23.602924346923828,464.630126953125],"6-38-12":[271.5736389160156,704.3402099609375],"6-38-13":[334.3036804199219,1114.6097412109375],"6-38-14":[-30.937789916992188,1053.2388916015625],"6-38-15":[-69.07948303222656,1266.544189453125],"6-38-16":[-76.03465270996094,1888.8756103515625],"6-38-17":[-77.03250122070312,507.56732177734375],"6-38-18":[-86.88480377197266,-36.029998779296875],"6-38-19":[-98.40875244140625,-42.875267028808594],"6-38-20":[-103.23140716552734,-47.88750076293945],"6-38-21":[-104.416015625,-47.930084228515625],"6-38-22":[-104.13359069824219,-46.842498779296875],"6-38-23":[-103.5531234741211,-41.220001220703125],"6-38-24":[-101.45294952392578,1152.730224609375],"6-38-25":[-85.83548736572266,3067.98828125],"6-38-26":[-70.7249984741211,-20.786283493041992],"6-38-27":[-65.39366912841797,833.0942993164062],"6-38-28":[-114.2239990234375,4925.720703125],"6-38-29":[10.547547340393066,5356.83642578125],"6-38-30":[61.91861343383789,3882.22021484375],"6-38-31":[106.50067138671875,839.197998046875],"6-38-32":[68.16675567626953,474.2840576171875],"6-38-33":[63.393367767333984,249.1269073486328],"6-38-34":[103.34008026123047,384.5770568847656],"6-38-35":[184.942626953125,644.826904296875],"6-38-36":[252.99893188476562,6360.3369140625],"6-38-37":[-22.38800621032715,6449.40087890625],"6-38-38":[-1.321825385093689,5847.76806640625],"6-38-39":[12.470003128051758,42.31535720825195],"6-38-40":[-9.885950088500977,2677.32470703125],"6-38-41":[-3.777056932449341,2243.244384765625],"6-38-42":[5.25936222076416,5156.31103515625],"6-38-43":[2.3032543659210205,5062.62109375],"6-38-44":[-10.8034029006958,5023.29150390625],"6-38-45":[10.457124710083008,4724.39306640625],"6-38-46":[-49.6171989440918,3766.1513671875],"6-38-47":[-60.03179931640625,2585.49462890625],"6-38-48":[-22.29766082763672,3553.083251953125],"6-38-49":[7.6759538650512695,3257.61572265625],"6-38-50":[-72.8376235961914,2695.14404296875],"6-38-51":[-106.70047760009766,1949.6085205078125],"6-38-52":[4.990600109100342,21.770780563354492],"6-38-53":[5.46999979019165,21.12874984741211],"6-38-54":[2.622499942779541,15.3540620803833],"6-38-55":[0.10374999791383743,12.22330093383789],"6-38-56":[-3.348437547683716,2784.5751953125],"6-38-57":[-15.494999885559082,1731.587646484375],"6-38-58":[-15.494999885559082,1790.2100830078125],"6-38-59":[-44.22999954223633,1401.510009765625],"6-38-60":[-50.32374954223633,332.1981201171875],"6-38-61":[241.75625610351562,1029.43701171875],"6-38-62":[742.5562744140625,2346.013671875],"6-38-63":[-29.531333923339844,2745.467041015625],"6-39-0":[13.60969352722168,37.57374954223633],"6-39-1":[17.684843063354492,41.28125],"5-19-0":[13.60969352722168,41.28125],"6-39-2":[16.510000228881836,1723.3394775390625],"6-39-3":[6.849416732788086,1651.247802734375],"5-19-1":[6.6004638671875,2116.62158203125],"4-9-0":[6.6004638671875,2437.46875],"6-39-4":[11.112500190734863,1535.6839599609375],"6-39-5":[13.707500457763672,38.137107849121094],"5-19-2":[10.005264282226562,1535.6839599609375],"6-39-6":[2.984687566757202,1492.44775390625],"6-39-7":[-1.8567222356796265,1664.50244140625],"5-19-3":[-34.11000061035156,1713.2840576171875],"4-9-1":[-49.68000030517578,2118.707763671875],"3-4-0":[-63.10874938964844,2437.46875],"6-39-8":[-16.4134578704834,932.9500122070312],"6-39-9":[-42.677188873291016,781.0403442382812],"5-19-4":[-52.514686584472656,932.9500122070312],"6-39-10":[-44.27162170410156,360.5017395019531],"6-39-11":[-41.87602615356445,596.283447265625],"5-19-5":[-48.560001373291016,658.265625],"4-9-2":[-79.90238189697266,932.9500122070312],"6-39-12":[51.44956588745117,869.2879028320312],"6-39-13":[188.00245666503906,1077.81005859375],"5-19-6":[51.44956588745117,1114.6097412109375],"6-39-14":[-31.122724533081055,916.287841796875],"6-39-15":[-25.781152725219727,1579.3577880859375],"5-19-7":[-69.07948303222656,1579.3577880859375],"4-9-3":[-96.59557342529297,1579.3577880859375],"3-4-1":[-97.8539810180664,1579.3577880859375],"6-39-16":[-56.19929504394531,1114.2064208984375],"6-39-17":[-75.75250244140625,23.867616653442383],"5-19-8":[-77.03250122070312,1888.8756103515625],"6-39-18":[-85.75,-37.0220832824707],"6-39-19":[-95.0356216430664,-41.17250061035156],"5-19-9":[-98.40875244140625,-36.029998779296875],"4-9-4":[-113.28196716308594,1888.8756103515625],"6-39-20":[-101.453125,-44.35150146484375],"6-39-21":[-103.87533569335938,-46.852500915527344],"5-19-10":[-104.416015625,-44.35150146484375],"6-39-22":[-105.28433227539062,-49.02616500854492],"6-39-23":[-104.92167663574219,-50.05648422241211],"5-19-11":[-105.28433227539062,-41.220001220703125],"4-9-5":[-105.28433227539062,55.7501220703125],"3-4-2":[-113.28196716308594,2004.6978759765625],"6-39-24":[-129.89500427246094,-42.270626068115234],"6-39-25":[-132.4121856689453,1440.9359130859375],"5-19-12":[-132.4121856689453,3067.98828125],"6-39-26":[-85.87000274658203,-29.525352478027344],"6-39-27":[-89.52357482910156,1217.9534912109375],"5-19-13":[-89.52357482910156,1217.9534912109375],"4-9-6":[-132.4121856689453,3067.98828125],"6-39-28":[-34.003570556640625,3550.660888671875],"6-39-29":[-4.6902313232421875,404.1317138671875],"5-19-14":[-114.2239990234375,5356.83642578125],"6-39-30":[19.108613967895508,759.9472045898438],"6-39-31":[49.74159622192383,984.9420776367188],"5-19-15":[19.108613967895508,3882.22021484375],"4-9-7":[-328.0532531738281,5809.47802734375],"3-4-3":[-328.0532531738281,5809.47802734375],"6-39-32":[-0.5706705451011658,880.619873046875],"6-39-33":[34.67192077636719,244.6671905517578],"5-19-16":[-0.5706705451011658,880.619873046875],"6-39-34":[68.0064697265625,300.3858337402344],"6-39-35":[108.30511474609375,433.22174072265625],"5-19-17":[68.0064697265625,644.826904296875],"4-9-8":[-116.38557434082031,6754.431640625],"6-39-36":[155.88058471679688,5347.82861328125],"6-39-37":[202.17491149902344,6455.943359375],"5-19-18":[-22.38800621032715,6455.943359375],"6-39-38":[2.9250400066375732,6600.27001953125],"6-39-39":[3.7806410789489746,6222.24560546875],"5-19-19":[-1.321825385093689,6600.27001953125],"4-9-9":[-123.52845001220703,6600.27001953125],"3-4-4":[-123.52845001220703,6754.431640625],"6-39-40":[25.810760498046875,6775.95947265625],"6-39-41":[366.30511474609375,6919.8994140625],"5-19-20":[-9.885950088500977,6919.8994140625],"6-39-42":[645.9628295898438,6300.88671875],"6-39-43":[493.6404724121094,6969.12255859375],"5-19-21":[2.3032543659210205,6969.12255859375],"4-9-10":[-9.885950088500977,6969.12255859375],"6-39-44":[407.9263000488281,5888.3291015625],"6-39-45":[231.75115966796875,3998.121337890625],"5-19-22":[-10.8034029006958,5888.3291015625],"6-39-46":[248.580810546875,2022.2747802734375],"6-39-47":[173.834716796875,1957.385986328125],"5-19-23":[-60.03179931640625,3766.1513671875],"4-9-11":[-60.03179931640625,5888.3291015625],"3-4-5":[-88.4389419555664,6969.12255859375],"6-39-48":[-0.13332229852676392,1353.1087646484375],"6-39-49":[-111.829833984375,1097.143310546875],"5-19-24":[-111.829833984375,3553.083251953125],"6-39-50":[-1.4902971982955933,605.899658203125],"6-39-51":[-63.301795959472656,2581.83837890625],"5-19-25":[-106.70047760009766,2695.14404296875],"4-9-12":[-269.4302978515625,4026.287353515625],"6-39-52":[7.242627143859863,30.31999969482422],"6-39-53":[8.168749809265137,28.4190616607666],"5-19-26":[4.990600109100342,30.31999969482422],"6-39-54":[5.996250152587891,24.510000228881836],"6-39-55":[4.949999809265137,1701.65869140625],"5-19-27":[0.10374999791383743,1701.65869140625],"4-9-13":[-16.420000076293945,1701.65869140625],"3-4-6":[-269.4302978515625,4026.287353515625],"6-39-56":[2.041249990463257,2876.768798828125],"6-39-57":[-5.157187461853027,2323.877197265625],"5-19-28":[-15.494999885559082,2876.768798828125],"6-39-58":[-5.157187461853027,2011.2806396484375],"6-39-59":[-38.70000076293945,1401.510009765625],"5-19-29":[-44.22999954223633,2011.2806396484375],"4-9-14":[-46.8337516784668,2876.768798828125],"6-39-60":[-48.68375015258789,398.9533386230469],"6-39-61":[152.3056182861328,947.4288940429688],"5-19-30":[-50.32374954223633,1029.43701171875],"6-39-62":[609.1300048828125,2348.154052734375],"6-39-63":[-29.5310001373291,2745.468017578125],"5-19-31":[-29.531333923339844,2745.468017578125],"4-9-15":[-52.308204650878906,2745.468017578125],"3-4-7":[-52.354373931884766,4721.9384765625],"6-40-0":[13.5805025100708,38.530487060546875],"6-40-1":[18.42766761779785,42.477638244628906],"6-40-2":[14.0337495803833,1837.1756591796875],"6-40-3":[9.204999923706055,1301.302734375],"6-40-4":[16.610000610351562,1474.886962890625],"6-40-5":[15.167438507080078,294.7435302734375],"6-40-6":[5.315000057220459,35.38874816894531],"6-40-7":[0.08749999850988388,1690.5201416015625],"6-40-8":[-12.773085594177246,2057.1875],"6-40-9":[-31.209999084472656,1148.5550537109375],"6-40-10":[-38.99687576293945,1032.1065673828125],"6-40-11":[-38.8635139465332,935.9376831054688],"6-40-12":[283.81768798828125,898.0314331054688],"6-40-13":[24.7689266204834,1031.678466796875],"6-40-14":[-26.01861572265625,1255.3284912109375],"6-40-15":[-50.50922775268555,787.1233520507812],"6-40-16":[-51.939998626708984,269.0627746582031],"6-40-17":[-74.04000091552734,-24.93239974975586],"6-40-18":[-82.0356216430664,-34.939998626708984],"6-40-19":[-88.69999694824219,-36.7756233215332],"6-40-20":[-92.92500305175781,48.3438835144043],"6-40-21":[-98.05000305175781,-42.90250015258789],"6-40-22":[-101.83562469482422,-47.14250183105469],"6-40-23":[-104.67937469482422,-50.454063415527344],"6-40-24":[-138.64962768554688,-50.20933151245117],"6-40-25":[-141.11624145507812,1288.2890625],"6-40-26":[-90.27999877929688,-35.91007995605469],"6-40-27":[-82.70567321777344,92.39002990722656],"6-40-28":[-60.96760940551758,2718.181396484375],"6-40-29":[-37.498043060302734,2385.73876953125],"6-40-30":[52.53725814819336,2826.610595703125],"6-40-31":[41.04399108886719,2785.86328125],"6-40-32":[-10.001166343688965,1058.298828125],"6-40-33":[7.095154285430908,158.15298461914062],"6-40-34":[23.99372100830078,203.49993896484375],"6-40-35":[68.74652099609375,470.4722595214844],"6-40-36":[117.60458374023438,267.630126953125],"6-40-37":[126.79554748535156,5469.93896484375],"6-40-38":[191.9182586669922,5778.205078125],"6-40-39":[986.5236206054688,6050.0498046875],"6-40-40":[396.3408508300781,6388.8671875],"6-40-41":[262.6158752441406,6039.41015625],"6-40-42":[156.73568725585938,4549.068359375],"6-40-43":[232.7043914794922,2816.114501953125],"6-40-44":[196.6194305419922,812.7232666015625],"6-40-45":[94.32240295410156,598.5833129882812],"6-40-46":[-102.42082977294922,1675.5557861328125],"6-40-47":[0.8086986541748047,1125.822021484375],"6-40-48":[-8.442444801330566,672.8513793945312],"6-40-49":[1.6721515655517578,282.55010986328125],"6-40-50":[9.920000076293945,25.988672256469727],"6-40-51":[-12.003965377807617,1141.965576171875],"6-40-52":[12.592300415039062,33.611629486083984],"6-40-53":[14.04062557220459,33.972110748291016],"6-40-54":[10.798922538757324,32.096561431884766],"6-40-55":[7.940000057220459,2110.83935546875],"6-40-56":[7.142383098602295,2245.400634765625],"6-40-57":[1.7666583061218262,2040.5631103515625],"6-40-58":[-14.931249618530273,2090.42236328125],"6-40-59":[-38.70000076293945,870.907470703125],"6-40-60":[-48.68375015258789,230.80499267578125],"6-40-61":[-53.085662841796875,864.8670043945312],"6-40-62":[549.5101928710938,2344.267578125],"6-40-63":[-29.580486297607422,2745.468994140625],"6-41-0":[13.5805025100708,39.47968673706055],"6-41-1":[19.117250442504883,44.258750915527344],"5-20-0":[13.5805025100708,44.258750915527344],"6-41-2":[13.197578430175781,951.7786865234375],"6-41-3":[11.372166633605957,1019.5700073242188],"5-20-1":[9.204999923706055,1837.1756591796875],"6-41-4":[17.37874984741211,1639.309326171875],"6-41-5":[16.473360061645508,47.30781173706055],"5-20-2":[15.167438507080078,1639.309326171875],"6-41-6":[12.24625015258789,47.30781173706055],"6-41-7":[6.3689165115356445,1076.4251708984375],"5-20-3":[0.08749999850988388,1690.5201416015625],"6-41-8":[-2.2068750858306885,1785.6239013671875],"6-41-9":[-5.14968729019165,768.0764770507812],"5-20-4":[-31.209999084472656,2057.1875],"6-41-10":[-18.244482040405273,1491.4786376953125],"6-41-11":[-32.020137786865234,1587.2745361328125],"5-20-5":[-38.99687576293945,1587.2745361328125],"6-41-12":[-13.089576721191406,864.3588256835938],"6-41-13":[25.943368911743164,1005.8218383789062],"5-20-6":[-13.089576721191406,1031.678466796875],"6-41-14":[-40.08513259887695,587.9959106445312],"6-41-15":[-62.22666549682617,347.01470947265625],"5-20-7":[-62.22666549682617,1255.3284912109375],"6-41-16":[-51.61507797241211,265.7265625],"6-41-17":[-68.98562622070312,-25.547592163085938],"5-20-8":[-74.04000091552734,269.0627746582031],"6-41-18":[-71.60997772216797,-29.964250564575195],"6-41-19":[-78.00499725341797,-32.58625030517578],"5-20-9":[-88.69999694824219,-29.964250564575195],"6-41-20":[-85.80500030517578,18.110549926757812],"6-41-21":[-94.06843566894531,-39.59000015258789],"5-20-10":[-98.05000305175781,48.3438835144043],"6-41-22":[-102.74491882324219,-46.496665954589844],"6-41-23":[-105.56316375732422,-50.83124923706055],"5-20-11":[-105.56316375732422,-46.496665954589844],"6-41-24":[-129.53199768066406,-50.47800064086914],"6-41-25":[-129.4774932861328,1103.8948974609375],"5-20-12":[-141.11624145507812,1288.2890625],"6-41-26":[-90.39250183105469,869.5392456054688],"6-41-27":[-83.9459228515625,203.333251953125],"5-20-13":[-90.39250183105469,869.5392456054688],"6-41-28":[-92.40963745117188,2565.5888671875],"6-41-29":[-92.51641845703125,2449.20654296875],"5-20-14":[-92.51641845703125,2718.181396484375],"6-41-30":[126.29708099365234,2659.717529296875],"6-41-31":[-0.8849133849143982,2129.56298828125],"5-20-15":[-0.8849133849143982,2826.610595703125],"6-41-32":[-35.39140701293945,103.22542572021484],"6-41-33":[-58.31167221069336,106.2967758178711],"5-20-16":[-58.31167221069336,1058.298828125],"6-41-34":[-8.146404266357422,187.28440856933594],"6-41-35":[3.6975150108337402,1127.7066650390625],"5-20-17":[-8.146404266357422,1127.7066650390625],"6-41-36":[121.95471954345703,684.6690673828125],"6-41-37":[141.3287353515625,910.621826171875],"5-20-18":[117.60458374023438,5469.93896484375],"6-41-38":[214.1822967529297,4327.45556640625],"6-41-39":[236.7208251953125,4098.6083984375],"5-20-19":[191.9182586669922,6050.0498046875],"6-41-40":[173.1451416015625,2622.243896484375],"6-41-41":[94.42643737792969,1259.45556640625],"5-20-20":[94.42643737792969,6388.8671875],"6-41-42":[68.09735107421875,1956.1507568359375],"6-41-43":[84.73764038085938,1847.610595703125],"5-20-21":[68.09735107421875,4549.068359375],"6-41-44":[37.81985855102539,370.3173828125],"6-41-45":[-42.52362823486328,1242.863525390625],"5-20-22":[-42.52362823486328,1242.863525390625],"6-41-46":[-22.189857482910156,172.47108459472656],"6-41-47":[-31.66913414001465,129.6820831298828],"5-20-23":[-102.42082977294922,1675.5557861328125],"6-41-48":[11.071328163146973,24.275117874145508],"6-41-49":[10.943437576293945,26.75398063659668],"5-20-24":[-8.442444801330566,672.8513793945312],"6-41-50":[10.2475004196167,27.926008224487305],"6-41-51":[-32.008113861083984,987.966796875],"5-20-25":[-32.008113861083984,1141.965576171875],"6-41-52":[13.897500038146973,37.6896858215332],"6-41-53":[15.645000457763672,37.0021858215332],"5-20-26":[12.592300415039062,37.6896858215332],"6-41-54":[14.312333106994629,2255.28466796875],"6-41-55":[8.729999542236328,2099.31884765625],"5-20-27":[7.940000057220459,2255.28466796875],"6-41-56":[6.992499828338623,2890.4892578125],"6-41-57":[-1.9502500295639038,2528.750732421875],"5-20-28":[-1.9502500295639038,2890.4892578125],"6-41-58":[-28.2948055267334,1987.390625],"6-41-59":[-36.0625,-12.831250190734863],"5-20-29":[-38.70000076293945,2090.42236328125],"6-41-60":[-47.592498779296875,-17.933509826660156],"6-41-61":[-51.946876525878906,806.5267333984375],"5-20-30":[-53.085662841796875,864.8670043945312],"6-41-62":[471.2987365722656,2332.425537109375],"6-41-63":[-29.580486297607422,2745.4697265625],"5-20-31":[-29.580486297607422,2745.4697265625],"6-42-0":[13.609644889831543,39.86410140991211],"6-42-1":[20.078750610351562,45.766876220703125],"6-42-2":[13.398750305175781,636.0850219726562],"6-42-3":[13.398750305175781,1412.385009765625],"6-42-4":[19.1512508392334,1850.84130859375],"6-42-5":[16.994749069213867,99.20687866210938],"6-42-6":[19.110000610351562,50.31101608276367],"6-42-7":[14.302119255065918,47.469764709472656],"6-42-8":[7.199999809265137,1284.7635498046875],"6-42-9":[7.199999809265137,31.2738094329834],"6-42-10":[-1.440000057220459,19.119062423706055],"6-42-11":[-15.711684226989746,1027.4757080078125],"6-42-12":[-15.443567276000977,846.1084594726562],"6-42-13":[-12.898258209228516,704.0990600585938],"6-42-14":[-35.1506233215332,560.678955078125],"6-42-15":[-28.73699378967285,626.1734008789062],"6-42-16":[-51.64884948730469,12.816696166992188],"6-42-17":[-59.92499923706055,-22.723125457763672],"6-42-18":[-63.955623626708984,-25.318750381469727],"6-42-19":[-70.70999908447266,-27.671875],"6-42-20":[-79.18000030517578,-32.63750076293945],"6-42-21":[-92.98999786376953,-37.860626220703125],"6-42-22":[-102.25812530517578,-44.04249954223633],"6-42-23":[-104.5062484741211,-48.01124954223633],"6-42-24":[-109.88999938964844,-46.13837432861328],"6-42-25":[-127.71937561035156,350.6883239746094],"6-42-26":[-127.79902648925781,1415.2760009765625],"6-42-27":[-108.64335632324219,1174.7613525390625],"6-42-28":[-95.37468719482422,906.026123046875],"6-42-29":[-54.22836685180664,2236.76123046875],"6-42-30":[-7.383772373199463,2551.051025390625],"6-42-31":[-5.053922176361084,1982.4715576171875],"6-42-32":[-47.65615463256836,394.8396911621094],"6-42-33":[-73.3076171875,139.3924560546875],"6-42-34":[-32.26030731201172,379.2051696777344],"6-42-35":[37.284446716308594,586.1595458984375],"6-42-36":[152.35693359375,742.1585083007812],"6-42-37":[128.0788116455078,1176.043701171875],"6-42-38":[126.79940795898438,1325.783447265625],"6-42-39":[110.10272216796875,644.3350219726562],"6-42-40":[97.77256774902344,249.7909393310547],"6-42-41":[34.67401885986328,233.96473693847656],"6-42-42":[2.157991409301758,142.1062469482422],"6-42-43":[-47.9432373046875,159.45187377929688],"6-42-44":[8.075815200805664,171.0079803466797],"6-42-45":[-24.237281799316406,773.001708984375],"6-42-46":[11.515625,27.533946990966797],"6-42-47":[5.167500019073486,24.62289047241211],"6-42-48":[5.167500019073486,23.26984405517578],"6-42-49":[8.208125114440918,25.71770668029785],"6-42-50":[-14.464447021484375,710.1716918945312],"6-42-51":[7.631406307220459,36.255001068115234],"6-42-52":[18.27750015258789,39.829978942871094],"6-42-53":[15.15250015258789,41.76023483276367],"6-42-54":[17.248659133911133,2109.77197265625],"6-42-55":[9.824999809265137,2069.7900390625],"6-42-56":[4.327499866485596,269.2690124511719],"6-42-57":[-10.070625305175781,1250.1007080078125],"6-42-58":[-23.731250762939453,1211.46142578125],"6-42-59":[-36.13999938964844,-12.105937957763672],"6-42-60":[-49.11000061035156,-17.947500228881836],"6-42-61":[-51.946876525878906,889.6487426757812],"6-42-62":[706.6425170898438,2326.433837890625],"6-42-63":[-29.53008270263672,2745.470458984375],"6-43-0":[13.609644889831543,39.923126220703125],"6-43-1":[20.421249389648438,46.115936279296875],"5-21-0":[13.609644889831543,46.115936279296875],"6-43-2":[15.745156288146973,633.10986328125],"6-43-3":[17.13604164123535,1941.4000244140625],"5-21-1":[13.398750305175781,1941.4000244140625],"4-10-0":[9.204999923706055,1941.4000244140625],"6-43-4":[99.20687866210938,2238.215576171875],"6-43-5":[18.20718765258789,1021.3280029296875],"5-21-2":[16.994749069213867,2238.215576171875],"6-43-6":[19.110000610351562,56.064998626708984],"6-43-7":[20.15250015258789,55.34062576293945],"5-21-3":[14.302119255065918,56.064998626708984],"4-10-1":[0.08749999850988388,2238.215576171875],"6-43-8":[17.0206241607666,49.439998626708984],"6-43-9":[9.896249771118164,42.3806266784668],"5-21-4":[7.199999809265137,1284.7635498046875],"6-43-10":[5.256875038146973,33.279998779296875],"6-43-11":[0.6825000047683716,23.825273513793945],"5-21-5":[-15.711684226989746,1027.4757080078125],"4-10-2":[-38.99687576293945,2057.1875],"6-43-12":[-8.850826263427734,1193.157470703125],"6-43-13":[-13.271954536437988,895.9225463867188],"5-21-6":[-15.443567276000977,1193.157470703125],"6-43-14":[-20.116092681884766,804.7216186523438],"6-43-15":[-48.43497848510742,566.645751953125],"5-21-7":[-48.43497848510742,804.7216186523438],"4-10-3":[-62.22666549682617,1255.3284912109375],"6-43-16":[-45.13117599487305,-4.420000076293945],"6-43-17":[-49.8782958984375,-13.27750015258789],"5-21-8":[-59.92499923706055,12.816696166992188],"6-43-18":[-53.58511734008789,-19.77716636657715],"6-43-19":[-63.298126220703125,-23.077499389648438],"5-21-9":[-70.70999908447266,-19.77716636657715],"4-10-4":[-88.69999694824219,269.0627746582031],"6-43-20":[-73.48640441894531,-28.47533416748047],"6-43-21":[-87.05437469482422,-33.602500915527344],"5-21-10":[-92.98999786376953,-28.47533416748047],"6-43-22":[-94.58169555664062,-38.95375061035156],"6-43-23":[-97.22445678710938,-43.01250076293945],"5-21-11":[-104.5062484741211,-38.95375061035156],"4-10-5":[-105.56316375732422,48.3438835144043],"6-43-24":[-97.14250183105469,-43.830833435058594],"6-43-25":[-102.42406463623047,-45.56016540527344],"5-21-12":[-127.71937561035156,350.6883239746094],"6-43-26":[-113.65100860595703,-45.85945129394531],"6-43-27":[-108.05009460449219,-44.720001220703125],"5-21-13":[-127.79902648925781,1415.2760009765625],"4-10-6":[-141.11624145507812,1415.2760009765625],"6-43-28":[-95.83976745605469,-31.874374389648438],"6-43-29":[-77.20443725585938,502.5425720214844],"5-21-14":[-95.83976745605469,2236.76123046875],"6-43-30":[-149.20790100097656,1207.51513671875],"6-43-31":[87.422119140625,1109.79052734375],"5-21-15":[-149.20790100097656,2551.051025390625],"4-10-7":[-149.20790100097656,2826.610595703125],"6-43-32":[-59.9599723815918,483.7904052734375],"6-43-33":[-57.000335693359375,412.3945617675781],"5-21-16":[-73.3076171875,483.7904052734375],"6-43-34":[2.7372195720672607,657.0245361328125],"6-43-35":[87.5876235961914,621.433837890625],"5-21-17":[-32.26030731201172,657.0245361328125],"4-10-8":[-73.3076171875,1127.7066650390625],"6-43-36":[215.2888946533203,689.0324096679688],"6-43-37":[74.01032257080078,949.2073974609375],"5-21-18":[74.01032257080078,1176.043701171875],"6-43-38":[58.91065979003906,1245.778076171875],"6-43-39":[66.15335083007812,856.3311767578125],"5-21-19":[58.91065979003906,1325.783447265625],"4-10-9":[58.91065979003906,6050.0498046875],"6-43-40":[22.811086654663086,738.9885864257812],"6-43-41":[-2.873819589614868,703.3743896484375],"5-21-20":[-2.873819589614868,738.9885864257812],"6-43-42":[24.10928726196289,362.612060546875],"6-43-43":[-5.891228675842285,395.2868347167969],"5-21-21":[-47.9432373046875,395.2868347167969],"4-10-10":[-47.9432373046875,6388.8671875],"6-43-44":[-44.8405647277832,228.2337646484375],"6-43-45":[-41.28563690185547,445.1734924316406],"5-21-22":[-44.8405647277832,773.001708984375],"6-43-46":[2.6524999141693115,26.496856689453125],"6-43-47":[0.5304999947547913,19.660390853881836],"5-21-23":[0.5304999947547913,27.533946990966797],"4-10-11":[-102.42082977294922,1675.5557861328125],"6-43-48":[0.2409999966621399,14.05306625366211],"6-43-49":[3.692500114440918,25.642812728881836],"5-21-24":[0.2409999966621399,25.71770668029785],"6-43-50":[3.6277928352355957,714.58740234375],"6-43-51":[5.698124885559082,38.790000915527344],"5-21-25":[-14.464447021484375,714.58740234375],"4-10-12":[-32.008113861083984,1141.965576171875],"6-43-52":[18.27750015258789,41.025001525878906],"6-43-53":[15.15250015258789,44.20000076293945],"5-21-26":[15.15250015258789,44.20000076293945],"6-43-54":[19.286561965942383,1728.1546630859375],"6-43-55":[9.824999809265137,37.009376525878906],"5-21-27":[9.824999809265137,2109.77197265625],"4-10-13":[7.940000057220459,2255.28466796875],"6-43-56":[1.809999942779541,22.360000610351562],"6-43-57":[-9.851249694824219,6.906152248382568],"5-21-28":[-10.070625305175781,1250.1007080078125],"6-43-58":[-23.423749923706055,-4.866250038146973],"6-43-59":[-35.84000015258789,-11.975000381469727],"5-21-29":[-36.13999938964844,1211.46142578125],"4-10-14":[-38.70000076293945,2890.4892578125],"6-43-60":[-50.62812423706055,-17.947500228881836],"6-43-61":[-51.00187683105469,1371.3677978515625],"5-21-30":[-51.946876525878906,1371.3677978515625],"6-43-62":[889.6487426757812,2317.255615234375],"6-43-63":[-29.530000686645508,2745.470947265625],"5-21-31":[-29.53008270263672,2745.470947265625],"4-10-15":[-53.085662841796875,2745.470947265625],"6-44-0":[13.609999656677246,39.836875915527344],"6-44-1":[20.309375762939453,45.85499954223633],"6-44-2":[17.472999572753906,772.1279296875],"6-44-3":[19.239416122436523,2089.375],"6-44-4":[1020.9400024414062,2319.039794921875],"6-44-5":[23.1200008392334,1708.3834228515625],"6-44-6":[23.378841400146484,1880.95166015625],"6-44-7":[23.024518966674805,1854.0625],"6-44-8":[21.547500610351562,1029.054931640625],"6-44-9":[17.359525680541992,54.2705078125],"6-44-10":[12.022500038146973,44.612186431884766],"6-44-11":[7.840000152587891,35.635292053222656],"6-44-12":[1.9200711250305176,148.7121124267578],"6-44-13":[-20.294322967529297,486.60101318359375],"6-44-14":[-16.92605972290039,577.0435791015625],"6-44-15":[-12.043671607971191,408.5379943847656],"6-44-16":[-25.92869758605957,8.563750267028809],"6-44-17":[-39.150001525878906,-6.776875019073486],"6-44-18":[-44.889373779296875,-11.09375],"6-44-19":[-56.939998626708984,-15.520625114440918],"6-44-20":[-66.16124725341797,-21.280000686645508],"6-44-21":[-77.88999938964844,-27.125625610351562],"6-44-22":[-85.03874969482422,-32.05500030517578],"6-44-23":[-89.26499938964844,-36.064998626708984],"6-44-24":[-91.0043716430664,-38.75749969482422],"6-44-25":[-96.70999908447266,-40.68299865722656],"6-44-26":[-98.95494079589844,-43.31624984741211],"6-44-27":[-95.9228744506836,-44.4162483215332],"6-44-28":[-95.17320251464844,-38.68000030517578],"6-44-29":[-81.59937286376953,14.369462013244629],"6-44-30":[-61.2351188659668,1030.81005859375],"6-44-31":[94.48527526855469,889.296142578125],"6-44-32":[-68.01325225830078,823.14404296875],"6-44-33":[-38.48038864135742,487.9617919921875],"6-44-34":[67.74529266357422,694.401123046875],"6-44-35":[161.68035888671875,753.328857421875],"6-44-36":[228.41795349121094,612.2869262695312],"6-44-37":[103.13397216796875,914.7008666992188],"6-44-38":[86.09651184082031,880.4185791015625],"6-44-39":[114.58521270751953,752.7461547851562],"6-44-40":[106.53168487548828,799.5657958984375],"6-44-41":[70.48329162597656,899.6111450195312],"6-44-42":[35.319374084472656,584.1432495117188],"6-44-43":[1.9798250198364258,482.2642517089844],"6-44-44":[-15.025041580200195,526.3984375],"6-44-45":[1.506250023841858,25.023475646972656],"6-44-46":[-0.3499999940395355,22.196094512939453],"6-44-47":[-1.184999942779541,4.23562479019165],"6-44-48":[-2.106250047683716,6.211874961853027],"6-44-49":[-0.027499999850988388,20.81692123413086],"6-44-50":[4.522202014923096,23.39280128479004],"6-44-51":[4.37624979019165,37.13249969482422],"6-44-52":[17.752500534057617,41.136287689208984],"6-44-53":[20.432811737060547,1523.8778076171875],"6-44-54":[16.014375686645508,578.5823974609375],"6-44-55":[7.53000020980835,38.024845123291016],"6-44-56":[-1.3700000047683716,22.219999313354492],"6-44-57":[-9.329999923706055,2.313124895095825],"6-44-58":[-22.51937484741211,-3.028749942779541],"6-44-59":[-35.84000015258789,-11.884140968322754],"6-44-60":[-51.0009765625,204.78187561035156],"6-44-61":[-50.716251373291016,1540.943603515625],"6-44-62":[1083.3349609375,2298.905029296875],"6-44-63":[-29.530000686645508,2745.4716796875],"6-45-0":[13.609999656677246,39.30857467651367],"6-45-1":[20.0049991607666,45.8650016784668],"5-22-0":[13.609999656677246,45.8650016784668],"6-45-2":[18.204999923706055,829.2979125976562],"6-45-3":[45.54591751098633,2185.375],"5-22-1":[17.472999572753906,2185.375],"6-45-4":[1552.6175537109375,2333.408203125],"6-45-5":[1247.0374755859375,2344.9609375],"5-22-2":[23.1200008392334,2344.9609375],"6-45-6":[26.830875396728516,2399.396240234375],"6-45-7":[22.920936584472656,1842.916748046875],"5-22-3":[22.920936584472656,2399.396240234375],"6-45-8":[27.10296630859375,2229.5947265625],"6-45-9":[22.31475067138672,1280.2401123046875],"5-22-4":[17.359525680541992,2229.5947265625],"6-45-10":[19.37125015258789,59.79999923706055],"6-45-11":[16.177499771118164,52.282188415527344],"5-22-5":[7.840000152587891,59.79999923706055],"6-45-12":[14.520625114440918,48.2400016784668],"6-45-13":[12.672968864440918,43.654998779296875],"5-22-6":[-20.294322967529297,486.60101318359375],"6-45-14":[-9.594228744506836,300.99029541015625],"6-45-15":[-18.19355010986328,337.4884338378906],"5-22-7":[-18.19355010986328,577.0435791015625],"6-45-16":[-9.427343368530273,30.389999389648438],"6-45-17":[-20.10906219482422,6.012187480926514],"5-22-8":[-39.150001525878906,30.389999389648438],"6-45-18":[-27.16568374633789,-1.9774166345596313],"6-45-19":[-40.57437515258789,-6.644999980926514],"5-22-9":[-56.939998626708984,-1.9774166345596313],"6-45-20":[-50.806697845458984,-12.66533374786377],"6-45-21":[-62.287498474121094,-18.143749237060547],"5-22-10":[-77.88999938964844,-12.66533374786377],"6-45-22":[-68.67250061035156,-23.399499893188477],"6-45-23":[-75.92500305175781,-27.388750076293945],"5-22-11":[-89.26499938964844,-23.399499893188477],"6-45-24":[-80.1480484008789,-31.400917053222656],"6-45-25":[-85.29562377929688,-34.94874954223633],"5-22-12":[-96.70999908447266,-31.400917053222656],"6-45-26":[-89.67945098876953,-37.87641525268555],"6-45-27":[-90.84187316894531,-41.3125],"5-22-13":[-98.95494079589844,-37.87641525268555],"6-45-28":[-90.84187316894531,-40.139373779296875],"6-45-29":[-87.63296508789062,-32.1393928527832],"5-22-14":[-95.17320251464844,14.369462013244629],"6-45-30":[-71.91000366210938,795.5399169921875],"6-45-31":[-78.80567932128906,615.0183715820312],"5-22-15":[-78.80567932128906,1030.81005859375],"6-45-32":[-60.646934509277344,667.4108276367188],"6-45-33":[-29.065187454223633,524.3359985351562],"5-22-16":[-68.01325225830078,823.14404296875],"6-45-34":[114.46839141845703,806.9476318359375],"6-45-35":[140.1668701171875,772.1469116210938],"5-22-17":[67.74529266357422,806.9476318359375],"6-45-36":[148.33489990234375,508.1993103027344],"6-45-37":[188.038330078125,1020.2592163085938],"5-22-18":[103.13397216796875,1020.2592163085938],"6-45-38":[279.5477600097656,1043.987060546875],"6-45-39":[226.83969116210938,630.232177734375],"5-22-19":[86.09651184082031,1043.987060546875],"6-45-40":[218.51470947265625,1344.62109375],"6-45-41":[192.3480987548828,1399.2891845703125],"5-22-20":[70.48329162597656,1399.2891845703125],"6-45-42":[-18.155691146850586,1093.1861572265625],"6-45-43":[-20.185056686401367,529.2383422851562],"5-22-21":[-20.185056686401367,1093.1861572265625],"6-45-44":[-0.7074999809265137,38.76353454589844],"6-45-45":[-4.224999904632568,9.666034698486328],"5-22-22":[-15.025041580200195,526.3984375],"6-45-46":[-4.590937614440918,2.2718749046325684],"6-45-47":[-5.760000228881836,-0.3499999940395355],"5-22-23":[-5.760000228881836,22.196094512939453],"6-45-48":[-6.986562728881836,-0.027499999850988388],"6-45-49":[-2.703437566757202,14.994375228881836],"5-22-24":[-6.986562728881836,20.81692123413086],"6-45-50":[5.014452934265137,17.560077667236328],"6-45-51":[6.249374866485596,35.3693733215332],"5-22-25":[4.37624979019165,37.13249969482422],"6-45-52":[17.752500534057617,40.40070343017578],"6-45-53":[20.229999542236328,47.285545349121094],"5-22-26":[17.752500534057617,1523.8778076171875],"6-45-54":[13.668749809265137,45.073123931884766],"6-45-55":[7.53000020980835,29.367265701293945],"5-22-27":[7.53000020980835,578.5823974609375],"6-45-56":[-1.693515658378601,15.359999656677246],"6-45-57":[-5.699375152587891,-0.8041666746139526],"5-22-28":[-9.329999923706055,22.219999313354492],"6-45-58":[-21.58089828491211,-2.4999165534973145],"6-45-59":[-34.94062423706055,-11.267499923706055],"5-22-29":[-35.84000015258789,-2.4999165534973145],"6-45-60":[-51.01169967651367,354.3037414550781],"6-45-61":[-49.76109313964844,1979.9337158203125],"5-22-30":[-51.01169967651367,1979.9337158203125],"6-45-62":[1259.3974609375,2275.460693359375],"6-45-63":[-29.530000686645508,2745.47216796875],"5-22-31":[-29.530000686645508,2745.47216796875],"6-46-0":[13.609999656677246,38.71843719482422],"6-46-1":[19.714374542236328,46.41749954223633],"6-46-2":[19.834375381469727,660.3397216796875],"6-46-3":[405.24468994140625,2285.507568359375],"6-46-4":[1894.8455810546875,2457.136962890625],"6-46-5":[1860.541259765625,2475.0185546875],"6-46-6":[29.196250915527344,2542.8330078125],"6-46-7":[26.429582595825195,1831.6719970703125],"6-46-8":[29.817916870117188,2027.71630859375],"6-46-9":[29.489084243774414,2175.09716796875],"6-46-10":[26.25374984741211,1494.4234619140625],"6-46-11":[24.841106414794922,68.27825927734375],"6-46-12":[21.596250534057617,63.25],"6-46-13":[21.596250534057617,55.805625915527344],"6-46-14":[17.39750099182129,52.215213775634766],"6-46-15":[15.175352096557617,53.91990280151367],"6-46-16":[5.414999961853027,41.05875015258789],"6-46-17":[-3.6500000953674316,21.151561737060547],"6-46-18":[-11.7787504196167,10.116562843322754],"6-46-19":[-24.700000762939453,1.955625057220459],"6-46-20":[-35.14406204223633,-2.5274999141693115],"6-46-21":[-46.2400016784668,-7.815000057220459],"6-46-22":[-53.59718704223633,-12.922499656677246],"6-46-23":[-62.779998779296875,-17.62874984741211],"6-46-24":[-68.85406494140625,-22.407499313354492],"6-46-25":[-75.74500274658203,-26.936250686645508],"6-46-26":[-82.24250030517578,-30.537500381469727],"6-46-27":[-86.5999984741211,-34.575626373291016],"6-46-28":[-87.20902252197266,-38.79109191894531],"6-46-29":[-85.58390808105469,-35.95500183105469],"6-46-30":[-76.0718765258789,-28.51041603088379],"6-46-31":[-60.97624969482422,35.71901321411133],"6-46-32":[-80.06915283203125,69.735107421875],"6-46-33":[-95.4843978881836,521.385498046875],"6-46-34":[51.02231979370117,882.7360229492188],"6-46-35":[105.36943054199219,737.9002075195312],"6-46-36":[127.52586364746094,1154.064453125],"6-46-37":[227.19105529785156,1475.4334716796875],"6-46-38":[312.6428527832031,1034.41455078125],"6-46-39":[301.73724365234375,1075.1507568359375],"6-46-40":[-51.67102813720703,1855.3851318359375],"6-46-41":[-37.25775909423828,1825.16015625],"6-46-42":[-24.632381439208984,1827.74072265625],"6-46-43":[-6.224238395690918,13.97671890258789],"6-46-44":[-9.689765930175781,10.920000076293945],"6-46-45":[-8.46810531616211,-0.7074999809265137],"6-46-46":[-8.575156211853027,-1.875166654586792],"6-46-47":[-7.315000057220459,-2.1463332176208496],"6-46-48":[-8.375469207763672,-2.221250057220459],"6-46-49":[-4.737011909484863,9.494999885559082],"6-46-50":[1.024999976158142,14.81624984741211],"6-46-51":[8.2421875,36.8493766784668],"6-46-52":[18.322500228881836,40.448673248291016],"6-46-53":[18.154375076293945,42.53187561035156],"6-46-54":[13.508906364440918,40.61906433105469],"6-46-55":[8.007499694824219,27.682050704956055],"6-46-56":[-0.8162500262260437,15.9868745803833],"6-46-57":[-4.010000228881836,0.14000000059604645],"6-46-58":[-20.530624389648438,-1.5187499523162842],"6-46-59":[-34.2400016784668,437.7049865722656],"6-46-60":[-50.265625,631.9554443359375],"6-46-61":[-48.15250015258789,1965.2493896484375],"6-46-62":[1373.28125,2268.08740234375],"6-46-63":[-29.530000686645508,2745.472412109375],"6-47-0":[13.609999656677246,37.98701095581055],"6-47-1":[19.552499771118164,47.52000045776367],"5-23-0":[13.609999656677246,47.52000045776367],"6-47-2":[20.298906326293945,700.9014282226562],"6-47-3":[443.2174987792969,2373.93994140625],"5-23-1":[19.834375381469727,2373.93994140625],"4-11-0":[13.609999656677246,2373.93994140625],"6-47-4":[2285.507568359375,2625.239990234375],"6-47-5":[2286.783447265625,2882.0458984375],"5-23-2":[1860.541259765625,2882.0458984375],"6-47-6":[1707.248779296875,2840.79931640625],"6-47-7":[1101.2791748046875,2476.31005859375],"5-23-3":[26.429582595825195,2840.79931640625],"4-11-1":[22.920936584472656,2882.0458984375],"3-5-0":[0.08749999850988388,2882.0458984375],"6-47-8":[1301.3275146484375,2769.790283203125],"6-47-9":[1356.5789794921875,2769.948974609375],"5-23-4":[29.489084243774414,2769.948974609375],"6-47-10":[33.06999969482422,2452.68505859375],"6-47-11":[31.625,81.25765991210938],"5-23-5":[24.841106414794922,2452.68505859375],"4-11-2":[7.840000152587891,2769.948974609375],"6-47-12":[29.549999237060547,78.25468444824219],"6-47-13":[24.700000762939453,72.81124877929688],"5-23-6":[21.596250534057617,78.25468444824219],"6-47-14":[23.650083541870117,69.46499633789062],"6-47-15":[21.38249969482422,70.09874725341797],"5-23-7":[15.175352096557617,70.09874725341797],"4-11-3":[-20.294322967529297,577.0435791015625],"3-5-1":[-62.22666549682617,2769.948974609375],"2-2-0":[-97.8539810180664,2882.0458984375],"6-47-16":[13.609999656677246,55.70000076293945],"6-47-17":[5.96999979019165,40.63999938964844],"5-23-8":[-3.6500000953674316,55.70000076293945],"6-47-18":[1.955625057220459,29.530000686645508],"6-47-19":[-2.6312499046325684,22.05500030517578],"5-23-9":[-24.700000762939453,29.530000686645508],"4-11-4":[-56.939998626708984,55.70000076293945],"6-47-20":[-11.824101448059082,15.180000305175781],"6-47-21":[-23.14093780517578,4.775000095367432],"5-23-10":[-46.2400016784668,15.180000305175781],"6-47-22":[-31.3101749420166,-2.172333240509033],"6-47-23":[-42.5099983215332,-7.527500152587891],"5-23-11":[-62.779998779296875,-2.172333240509033],"4-11-5":[-89.26499938964844,15.180000305175781],"3-5-2":[-105.56316375732422,269.0627746582031],"6-47-24":[-50.67048645019531,-13.691166877746582],"6-47-25":[-59.07781219482422,-19.142499923706055],"5-23-12":[-75.74500274658203,-13.691166877746582],"6-47-26":[-65.45425415039062,-24.582000732421875],"6-47-27":[-76.89250183105469,-25.665000915527344],"5-23-13":[-86.5999984741211,-24.582000732421875],"4-11-6":[-98.95494079589844,-13.691166877746582],"6-47-28":[-76.89250183105469,-30.33766746520996],"6-47-29":[-77.76300811767578,-32.040164947509766],"5-23-14":[-87.20902252197266,-30.33766746520996],"6-47-30":[-72.56218719482422,-28.65013313293457],"6-47-31":[-64.39320373535156,-23.150001525878906],"5-23-15":[-76.0718765258789,35.71901321411133],"4-11-7":[-95.17320251464844,1030.81005859375],"3-5-3":[-149.20790100097656,2826.610595703125],"2-2-1":[-328.0532531738281,5809.47802734375],"6-47-32":[-64.97384643554688,198.91323852539062],"6-47-33":[-52.116451263427734,442.3109130859375],"5-23-16":[-95.4843978881836,521.385498046875],"6-47-34":[64.012939453125,663.0606689453125],"6-47-35":[165.3874969482422,868.8060913085938],"5-23-17":[51.02231979370117,882.7360229492188],"4-11-8":[-95.4843978881836,882.7360229492188],"6-47-36":[242.55133056640625,1657.869873046875],"6-47-37":[397.40618896484375,1576.1229248046875],"5-23-18":[127.52586364746094,1657.869873046875],"6-47-38":[443.9574279785156,1269.925537109375],"6-47-39":[482.05755615234375,2353.3193359375],"5-23-19":[301.73724365234375,2353.3193359375],"4-11-9":[86.09651184082031,2353.3193359375],"3-5-4":[-95.4843978881836,6050.0498046875],"6-47-40":[-47.102088928222656,2413.317138671875],"6-47-41":[-19.82015609741211,2.384999990463257],"5-23-20":[-51.67102813720703,2413.317138671875],"6-47-42":[-16.510156631469727,2.7682225704193115],"6-47-43":[-14.9975004196167,-2.9049999713897705],"5-23-21":[-24.632381439208984,1827.74072265625],"4-11-10":[-51.67102813720703,2413.317138671875],"6-47-44":[-12.698749542236328,-3.315000057220459],"6-47-45":[-12.420000076293945,-4.001874923706055],"5-23-22":[-12.698749542236328,10.920000076293945],"6-47-46":[-12.92562484741211,-3.008125066757202],"6-47-47":[-9.678750038146973,-2.7652344703674316],"5-23-23":[-12.92562484741211,-1.875166654586792],"4-11-11":[-15.025041580200195,526.3984375],"3-5-5":[-102.42082977294922,6388.8671875],"2-2-2":[-123.52845001220703,6969.12255859375],"6-47-48":[-7.967792987823486,-2.424999952316284],"6-47-49":[-5.084824085235596,12.350000381469727],"5-23-24":[-8.375469207763672,12.350000381469727],"6-47-50":[0.9412500262260437,19.193143844604492],"6-47-51":[9.930000305175781,36.66875076293945],"5-23-25":[0.9412500262260437,36.8493766784668],"4-11-12":[-8.375469207763672,37.13249969482422],"6-47-52":[18.322500228881836,42.387107849121094],"6-47-53":[18.154375076293945,853.57421875],"5-23-26":[18.154375076293945,853.57421875],"6-47-54":[14.520000457763672,46.029998779296875],"6-47-55":[8.007499694824219,29.235370635986328],"5-23-27":[8.007499694824219,46.029998779296875],"4-11-13":[7.53000020980835,1523.8778076171875],"3-5-6":[-32.008113861083984,2255.28466796875],"6-47-56":[0.14000000059604645,16.440000534057617],"6-47-57":[-4.25,0.8174999952316284],"5-23-28":[-4.25,16.440000534057617],"6-47-58":[-18.562049865722656,-1.5187499523162842],"6-47-59":[-29.559999465942383,457.62750244140625],"5-23-29":[-34.2400016784668,457.62750244140625],"4-11-14":[-35.84000015258789,457.62750244140625],"6-47-60":[-47.366798400878906,731.0154418945312],"6-47-61":[-47.529998779296875,1373.28125],"5-23-30":[-50.265625,1965.2493896484375],"6-47-62":[1353.90625,2263.155029296875],"6-47-63":[-29.530000686645508,2745.972900390625],"5-23-31":[-29.530000686645508,2745.972900390625],"4-11-15":[-51.01169967651367,2745.972900390625],"3-5-7":[-53.085662841796875,2890.4892578125],"2-2-3":[-269.4302978515625,4721.9384765625],"6-48-0":[13.609999656677246,37.60124969482422],"6-48-1":[19.520000457763672,48.05531311035156],"6-48-2":[23.0483341217041,949.390625],"6-48-3":[418.1529541015625,2469.75],"6-48-4":[2373.93994140625,2812.588134765625],"6-48-5":[2625.239990234375,3024.05126953125],"6-48-6":[2476.31005859375,3047.675537109375],"6-48-7":[2357.419921875,2826.06640625],"6-48-8":[1710.8876953125,2785.16162109375],"6-48-9":[45.47194290161133,2833.8955078125],"6-48-10":[-226.58326721191406,2803.25439453125],"6-48-11":[39.099998474121094,92.56375122070312],"6-48-12":[36.79750061035156,90.1460189819336],"6-48-13":[33.0543327331543,85.2163314819336],"6-48-14":[32.0525016784668,78.8550033569336],"6-48-15":[27.85650062561035,72.38939666748047],"6-48-16":[21.235000610351562,65.88500213623047],"6-48-17":[15.605194091796875,54.54429626464844],"6-48-18":[11.427499771118164,45.37093734741211],"6-48-19":[8.366494178771973,39.30958938598633],"6-48-20":[2.882499933242798,32.192501068115234],"6-48-21":[-3.799999952316284,23.350351333618164],"6-48-22":[-13.695625305175781,10.295624732971191],"6-48-23":[-26.68000030517578,-1.4993749856948853],"6-48-24":[-36.65625,-9.037500381469727],"6-48-25":[-48.75,-14.662500381469727],"6-48-26":[-52.30500030517578,-19.607500076293945],"6-48-27":[-60.65999984741211,-21.739999771118164],"6-48-28":[-65.08000183105469,-22.59000015258789],"6-48-29":[-65.13249969482422,-24.571250915527344],"6-48-30":[-64.06999969482422,-23.028749465942383],"6-48-31":[-58.55976486206055,-22.339792251586914],"6-48-32":[-70.49673461914062,80.2405776977539],"6-48-33":[-60.52996826171875,366.274169921875],"6-48-34":[46.82706832885742,588.2048950195312],"6-48-35":[175.94485473632812,1298.56787109375],"6-48-36":[374.9563293457031,1756.48486328125],"6-48-37":[264.8665771484375,1788.7630615234375],"6-48-38":[158.30543518066406,2047.80419921875],"6-48-39":[-0.9378759860992432,2789.2412109375],"6-48-40":[-170.48275756835938,2060.9853515625],"6-48-41":[-22.345449447631836,-6.955001354217529],"6-48-42":[-21.241249084472656,-7.278583526611328],"6-48-43":[-16.429922103881836,-5.74566650390625],"6-48-44":[-15.079375267028809,-5.853166580200195],"6-48-45":[-14.738750457763672,-5.738166809082031],"6-48-46":[-15.4335355758667,-5.210000038146973],"6-48-47":[-14.067011833190918,-3.494333267211914],"6-48-48":[-9.336250305175781,-1.350156307220459],"6-48-49":[-3.6424999237060547,16.960311889648438],"6-48-50":[3.9171833992004395,17.521835327148438],"6-48-51":[9.504765510559082,35.68000030517578],"6-48-52":[17.40250015258789,41.276248931884766],"6-48-53":[19.29487419128418,277.8311767578125],"6-48-54":[14.494453430175781,46.029998779296875],"6-48-55":[8.34749984741211,28.55728530883789],"6-48-56":[0.8174999952316284,16.967500686645508],"6-48-57":[-6.666250228881836,1.361875057220459],"6-48-58":[-16.219999313354492,-2.3588333129882812],"6-48-59":[-31.718124389648438,213.7274932861328],"6-48-60":[-45.796875,701.3731079101562],"6-48-61":[-47.529998779296875,1548.8687744140625],"6-48-62":[1362.5799560546875,2265.704345703125],"6-48-63":[-29.530000686645508,2746.472900390625],"6-49-0":[13.609999656677246,37.45687484741211],"6-49-1":[19.530000686645508,48.720001220703125],"5-24-0":[13.609999656677246,48.720001220703125],"6-49-2":[24.056249618530273,1459.952392578125],"6-49-3":[919.349365234375,2462.16259765625],"5-24-1":[23.0483341217041,2469.75],"6-49-4":[2354.9951171875,2812.588134765625],"6-49-5":[2629.111328125,3141.202392578125],"5-24-2":[2354.9951171875,3141.202392578125],"6-49-6":[2784.5244140625,3182.087890625],"6-49-7":[2634.5693359375,3042.617431640625],"5-24-3":[2357.419921875,3182.087890625],"6-49-8":[44.40553283691406,2652.864990234375],"6-49-9":[44.54399871826172,2012.546630859375],"5-24-4":[44.40553283691406,2833.8955078125],"6-49-10":[46.28187561035156,334.7674560546875],"6-49-11":[44.974998474121094,101.27999877929688],"5-24-5":[-226.58326721191406,2803.25439453125],"6-49-12":[43.91374969482422,101.99124908447266],"6-49-13":[40.13750076293945,98.23719024658203],"5-24-6":[33.0543327331543,101.99124908447266],"6-49-14":[36.7599983215332,93.08999633789062],"6-49-15":[33.717498779296875,86.05687713623047],"5-24-7":[27.85650062561035,93.08999633789062],"6-49-16":[28.950000762939453,81.47000122070312],"6-49-17":[23.81999969482422,73.87781524658203],"5-24-8":[15.605194091796875,81.47000122070312],"6-49-18":[21.400625228881836,66.19000244140625],"6-49-19":[17.360000610351562,60.529998779296875],"5-24-9":[8.366494178771973,66.19000244140625],"6-49-20":[13.708749771118164,55.5],"6-49-21":[5.849999904632568,39.032814025878906],"5-24-10":[-3.799999952316284,55.5],"6-49-22":[-1.4993749856948853,22.34000015258789],"6-49-23":[-16.88249969482422,4.582499980926514],"5-24-11":[-26.68000030517578,22.34000015258789],"6-49-24":[-26.7799015045166,-4.397416591644287],"6-49-25":[-37.7009391784668,-9.55875015258789],"5-24-12":[-48.75,-4.397416591644287],"6-49-26":[-42.32777404785156,-13.76924991607666],"6-49-27":[-43.84585952758789,-16.485000610351562],"5-24-13":[-60.65999984741211,-13.76924991607666],"6-49-28":[-45.309471130371094,-15.237750053405762],"6-49-29":[-49.209922790527344,-15.422499656677246],"5-24-14":[-65.13249969482422,-15.237750053405762],"6-49-30":[-47.141563415527344,-16.295000076293945],"6-49-31":[-46.80500030517578,-15.865249633789062],"5-24-15":[-64.06999969482422,-15.865249633789062],"6-49-32":[-46.80500030517578,79.71224212646484],"6-49-33":[-74.22998809814453,1125.0458984375],"5-24-16":[-74.22998809814453,1125.0458984375],"6-49-34":[53.15143585205078,966.204833984375],"6-49-35":[149.221923828125,1272.46875],"5-24-17":[46.82706832885742,1298.56787109375],"6-49-36":[99.05867004394531,2017.3021240234375],"6-49-37":[0.3823036849498749,1423.157470703125],"5-24-18":[0.3823036849498749,2017.3021240234375],"6-49-38":[-51.392513275146484,1567.3233642578125],"6-49-39":[-41.55802536010742,2863.342529296875],"5-24-19":[-51.392513275146484,2863.342529296875],"6-49-40":[-24.01053237915039,694.7389526367188],"6-49-41":[-23.567031860351562,-9.829288482666016],"5-24-20":[-170.48275756835938,2060.9853515625],"6-49-42":[-21.486562728881836,-7.664999961853027],"6-49-43":[-17.459569931030273,-7.181562423706055],"5-24-21":[-21.486562728881836,-5.74566650390625],"6-49-44":[-15.235976219177246,-6.728750228881836],"6-49-45":[-14.62125015258789,-6.411916732788086],"5-24-22":[-15.235976219177246,-5.738166809082031],"6-49-46":[-15.667402267456055,-6.335750102996826],"6-49-47":[-14.705840110778809,-4.797083377838135],"5-24-23":[-15.667402267456055,-3.494333267211914],"6-49-48":[-10.038749694824219,-0.7137500047683716],"6-49-49":[-1.570859432220459,14.991874694824219],"5-24-24":[-10.038749694824219,16.960311889648438],"6-49-50":[3.408733367919922,15.133515357971191],"6-49-51":[6.245742321014404,37.33000183105469],"5-24-25":[3.408733367919922,37.33000183105469],"6-49-52":[17.40250015258789,40.02812576293945],"6-49-53":[19.24640655517578,44.898494720458984],"5-24-26":[17.40250015258789,277.8311767578125],"6-49-54":[14.637499809265137,42.22999954223633],"6-49-55":[8.34749984741211,28.452577590942383],"5-24-27":[8.34749984741211,46.029998779296875],"6-49-56":[1.361875057220459,16.68000030517578],"6-49-57":[-9.0600004196167,1.8796875476837158],"5-24-28":[-9.0600004196167,16.967500686645508],"6-49-58":[-13.790546417236328,-3.5141665935516357],"6-49-59":[-31.946250915527344,-7.78125],"5-24-29":[-31.946250915527344,213.7274932861328],"6-49-60":[-42.49177551269531,467.09124755859375],"6-49-61":[-22.0987491607666,1679.3499755859375],"5-24-30":[-47.529998779296875,1679.3499755859375],"6-49-62":[1548.8687744140625,2265.704345703125],"6-49-63":[-29.530000686645508,2746.473388671875],"5-24-31":[-29.530000686645508,2746.473388671875],"6-50-0":[13.609999656677246,37.627498626708984],"6-50-1":[19.612499237060547,49.95500183105469],"6-50-2":[24.84670639038086,1457.66943359375],"6-50-3":[1097.6181640625,2354.9951171875],"6-50-4":[2249.234130859375,2629.111328125],"6-50-5":[2558.10009765625,3200.73681640625],"6-50-6":[3042.617431640625,3253.380615234375],"6-50-7":[2639.6650390625,3209.326904296875],"6-50-8":[45.07891845703125,3108.36962890625],"6-50-9":[45.7400016784668,106.80988311767578],"6-50-10":[49.277000427246094,105.77458953857422],"6-50-11":[49.505001068115234,111.90374755859375],"6-50-12":[49.85874938964844,112.689453125],"6-50-13":[46.54750061035156,108.31423950195312],"6-50-14":[43.24625015258789,103.26968383789062],"6-50-15":[40.73649978637695,96.79564666748047],"6-50-16":[37.48875045776367,92.99624633789062],"6-50-17":[33.10566711425781,87.82499694824219],"6-50-18":[30.853750228881836,80.39624786376953],"6-50-19":[27.75316619873047,76.43062591552734],"6-50-20":[20.5987491607666,68.84750366210938],"6-50-21":[12.039830207824707,47.84263610839844],"6-50-22":[3.317500114440918,31.004375457763672],"6-50-23":[-8.199999809265137,12.44580078125],"6-50-24":[-17.96500015258789,2.1875],"6-50-25":[-27.34000015258789,-2.986875057220459],"6-50-26":[-32.4609375,-5.755000114440918],"6-50-27":[-35.264373779296875,-10.364999771118164],"6-50-28":[-34.68437576293945,-9.18375015258789],"6-50-29":[-34.532501220703125,-8.1118745803833],"6-50-30":[-34.025001525878906,-8.327500343322754],"6-50-31":[-34.83000183105469,-8.327500343322754],"6-50-32":[-34.83000183105469,-10.925475120544434],"6-50-33":[-44.75894546508789,1106.513916015625],"6-50-34":[4.533596038818359,1190.317626953125],"6-50-35":[-49.143531799316406,1083.791748046875],"6-50-36":[-42.93952560424805,626.8162231445312],"6-50-37":[-28.077165603637695,986.1725463867188],"6-50-38":[-23.7293701171875,124.33824157714844],"6-50-39":[-23.05548858642578,-5.860131740570068],"6-50-40":[-23.211563110351562,-8.264452934265137],"6-50-41":[-22.234394073486328,-6.03249979019165],"6-50-42":[-20.014999389648438,-1.9548437595367432],"6-50-43":[-15.0521879196167,-2.365000009536743],"6-50-44":[-14.727187156677246,-4.643437385559082],"6-50-45":[-13.406874656677246,-4.066249847412109],"6-50-46":[-13.530625343322754,-3.83203125],"6-50-47":[-13.345937728881836,-3.1024999618530273],"6-50-48":[-9.199999809265137,0.5400000214576721],"6-50-49":[-0.7137500047683716,12.975839614868164],"6-50-50":[2.9000000953674316,23.344980239868164],"6-50-51":[-44.484928131103516,2738.6904296875],"6-50-52":[19.4950008392334,41.63624954223633],"6-50-53":[20.407499313354492,43.99886703491211],"6-50-54":[14.133749961853027,41.05531311035156],"6-50-55":[7.932499885559082,28.290624618530273],"6-50-56":[1.7324999570846558,16.489999771118164],"6-50-57":[-9.568750381469727,2.533261775970459],"6-50-58":[-12.439687728881836,-2.319999933242798],"6-50-59":[-30.920000076293945,-7.274374961853027],"6-50-60":[-38.73500061035156,776.1950073242188],"6-50-61":[467.09124755859375,1715.1474609375],"6-50-62":[1679.3499755859375,2262.453857421875],"6-50-63":[-29.530000686645508,2746.473388671875],"6-51-0":[13.609999656677246,37.869998931884766],"6-51-1":[19.717500686645508,51.90999984741211],"5-25-0":[13.609999656677246,51.90999984741211],"6-51-2":[25.09000015258789,1225.540283203125],"6-51-3":[563.183837890625,2251.732421875],"5-25-1":[24.84670639038086,2354.9951171875],"4-12-0":[13.609999656677246,2469.75],"6-51-4":[2064.185546875,2558.10009765625],"6-51-5":[2479.1513671875,3116.179931640625],"5-25-2":[2064.185546875,3200.73681640625],"6-51-6":[2863.3037109375,3190.714599609375],"6-51-7":[842.8400268554688,3318.433837890625],"5-25-3":[842.8400268554688,3318.433837890625],"4-12-1":[842.8400268554688,3318.433837890625],"6-51-8":[51.797264099121094,2952.103271484375],"6-51-9":[51.81187438964844,111.54000091552734],"5-25-4":[45.07891845703125,3108.36962890625],"6-51-10":[52.282501220703125,118.0043716430664],"6-51-11":[54.03125,122.70062255859375],"5-25-5":[49.277000427246094,122.70062255859375],"4-12-2":[-226.58326721191406,3108.36962890625],"6-51-12":[56.06437683105469,122.30000305175781],"6-51-13":[52.063751220703125,118.7074966430664],"5-25-6":[46.54750061035156,122.30000305175781],"6-51-14":[49.477500915527344,113.29000091552734],"6-51-15":[47.29499816894531,108.6937484741211],"5-25-7":[40.73649978637695,113.29000091552734],"4-12-3":[27.85650062561035,122.30000305175781],"6-51-16":[45.131248474121094,107.58000183105469],"6-51-17":[41.29875183105469,102.25875091552734],"5-25-8":[33.10566711425781,107.58000183105469],"6-51-18":[39.595001220703125,98.77999877929688],"6-51-19":[34.86249923706055,94.2699966430664],"5-25-9":[27.75316619873047,98.77999877929688],"4-12-4":[8.366494178771973,107.58000183105469],"6-51-20":[25.609375,77.16000366210938],"6-51-21":[16.228750228881836,56.243751525878906],"5-25-10":[12.039830207824707,77.16000366210938],"6-51-22":[7.851874828338623,41.91999816894531],"6-51-23":[2.049999952316284,22.965625762939453],"5-25-11":[-8.199999809265137,41.91999816894531],"4-12-5":[-26.68000030517578,77.16000366210938],"6-51-24":[-2.986875057220459,19.100000381469727],"6-51-25":[-9.532187461853027,11.366874694824219],"5-25-12":[-27.34000015258789,19.100000381469727],"6-51-26":[-18.236074447631836,4.210000038146973],"6-51-27":[-22.85238265991211,-3.869999885559082],"5-25-13":[-35.264373779296875,4.210000038146973],"4-12-6":[-60.65999984741211,19.100000381469727],"6-51-28":[-21.854999542236328,-3.4549999237060547],"6-51-29":[-16.152891159057617,0.3199999928474426],"5-25-14":[-34.68437576293945,0.3199999928474426],"6-51-30":[-15.015175819396973,0.3199999928474426],"6-51-31":[-23.514999389648438,-1.0674999952316284],"5-25-15":[-34.83000183105469,0.3199999928474426],"4-12-7":[-65.13249969482422,0.3199999928474426],"6-51-32":[-24.981250762939453,-5.271400451660156],"6-51-33":[-25.199708938598633,315.6641540527344],"5-25-16":[-44.75894546508789,1106.513916015625],"6-51-34":[-43.633827209472656,1194.049072265625],"6-51-35":[-34.804290771484375,1027.1605224609375],"5-25-17":[-49.143531799316406,1194.049072265625],"4-12-8":[-74.22998809814453,1298.56787109375],"6-51-36":[-25.881147384643555,-9.505000114440918],"6-51-37":[-26.025039672851562,-8.122166633605957],"5-25-18":[-42.93952560424805,986.1725463867188],"6-51-38":[-21.082500457763672,-6.582333564758301],"6-51-39":[-20.114355087280273,-3.54701566696167],"5-25-19":[-23.7293701171875,124.33824157714844],"4-12-9":[-51.392513275146484,2863.342529296875],"6-51-40":[-17.90999984741211,-6.144999980926514],"6-51-41":[-15.718222618103027,-2.700500011444092],"5-25-20":[-23.211563110351562,-2.700500011444092],"6-51-42":[-11.248749732971191,4.875625133514404],"6-51-43":[-8.508749961853027,4.813125133514404],"5-25-21":[-20.014999389648438,4.875625133514404],"4-12-10":[-170.48275756835938,2060.9853515625],"6-51-44":[-8.798906326293945,-0.42516666650772095],"6-51-45":[-8.927421569824219,-0.4964999854564667],"5-25-22":[-14.727187156677246,-0.42516666650772095],"6-51-46":[-7.496874809265137,-0.30399999022483826],"6-51-47":[-7.208125114440918,0.5199999809265137],"5-25-23":[-13.530625343322754,0.5199999809265137],"4-12-11":[-15.667402267456055,0.5199999809265137],"6-51-48":[-5.833125114440918,5.096875190734863],"6-51-49":[0.5400000214576721,16.360000610351562],"5-25-24":[-9.199999809265137,16.360000610351562],"6-51-50":[6.576250076293945,28.16374969482422],"6-51-51":[0.07833333313465118,2916.187255859375],"5-25-25":[-44.484928131103516,2916.187255859375],"4-12-12":[-44.484928131103516,2916.187255859375],"6-51-52":[19.4950008392334,44.41015625],"6-51-53":[20.676250457763672,45.560001373291016],"5-25-26":[19.4950008392334,45.560001373291016],"6-51-54":[13.204999923706055,41.841251373291016],"6-51-55":[7.932499885559082,27.236600875854492],"5-25-27":[7.932499885559082,41.841251373291016],"4-12-13":[7.932499885559082,277.8311767578125],"6-51-56":[1.434999942779541,15.813750267028809],"6-51-57":[-8.956562042236328,2.5818750858306885],"5-25-28":[-9.568750381469727,16.489999771118164],"6-51-58":[-10.688672065734863,-0.6916666626930237],"6-51-59":[-26.20541000366211,682.8253173828125],"5-25-29":[-30.920000076293945,682.8253173828125],"4-12-14":[-31.946250915527344,682.8253173828125],"6-51-60":[-38.68226623535156,818.9724731445312],"6-51-61":[776.1950073242188,1785.2950439453125],"5-25-30":[-38.73500061035156,1785.2950439453125],"6-51-62":[1715.1474609375,2257.842529296875],"6-51-63":[-29.530000686645508,2746.473388671875],"5-25-31":[-29.530000686645508,2746.473388671875],"4-12-15":[-47.529998779296875,2746.473388671875],"6-52-0":[13.609999656677246,37.994510650634766],"6-52-1":[19.750625610351562,52.82218933105469],"6-52-2":[26.305519104003906,1141.671630859375],"6-52-3":[39.31562042236328,2076.739990234375],"6-52-4":[1811.2425537109375,2521.50341796875],"6-52-5":[2242.705078125,2887.35498046875],"6-52-6":[2056.01318359375,3023.828857421875],"6-52-7":[55.87800216674805,3002.563232421875],"6-52-8":[54.977108001708984,1206.670166015625],"6-52-9":[54.305843353271484,120.00812530517578],"6-52-10":[55.78018569946289,125.86831665039062],"6-52-11":[59.3125,126.27486419677734],"6-52-12":[59.5861930847168,122.55999755859375],"6-52-13":[56.65317916870117,121.97437286376953],"6-52-14":[54.49250030517578,120.68937683105469],"6-52-15":[53.737972259521484,118.58165740966797],"6-52-16":[51.45000076293945,117.91000366210938],"6-52-17":[49.3900032043457,956.0730590820312],"6-52-18":[47.13500213623047,292.0919494628906],"6-52-19":[38.595516204833984,98.4437484741211],"6-52-20":[29.290000915527344,80.31812286376953],"6-52-21":[22.357751846313477,62.31019592285156],"6-52-22":[12.180000305175781,49.640625],"6-52-23":[9.782544136047363,32.207637786865234],"6-52-24":[6.184999942779541,30.738985061645508],"6-52-25":[2.4671666622161865,27.0216007232666],"6-52-26":[-6.87375020980835,18.415937423706055],"6-52-27":[-11.600000381469727,3.783339738845825],"6-52-28":[-11.600000381469727,1.8081250190734863],"6-52-29":[-6.039999961853027,9.760937690734863],"6-52-30":[-1.628749966621399,10.094551086425781],"6-52-31":[-11.800000190734863,9.710331916809082],"6-52-32":[-15.711406707763672,1.1150000095367432],"6-52-33":[-24.60410499572754,236.4765167236328],"6-52-34":[-22.924062728881836,-6.9994330406188965],"6-52-35":[-23.020402908325195,-9.642499923706055],"6-52-36":[-21.920000076293945,-7.298749923706055],"6-52-37":[-18.483125686645508,-6.711249828338623],"6-52-38":[-16.280000686645508,-5.1886773109436035],"6-52-39":[-15.675000190734863,-4.333984375],"6-52-40":[-15.600000381469727,-5.171249866485596],"6-52-41":[-11.28125,0.29624998569488525],"6-52-42":[-4.710000038146973,5.26171875],"6-52-43":[-1.1399999856948853,6.152968883514404],"6-52-44":[-1.580625057220459,8.802109718322754],"6-52-45":[-1.7400000095367432,7.349999904632568],"6-52-46":[-1.7831250429153442,8.02115249633789],"6-52-47":[-1.0643750429153442,9.109999656677246],"6-52-48":[0.3244999945163727,11.616601943969727],"6-52-49":[3.1449999809265137,20.8231258392334],"6-52-50":[10.637499809265137,31.483924865722656],"6-52-51":[8.470874786376953,44.14500045776367],"6-52-52":[20.989999771118164,48.10559844970703],"6-52-53":[20.059999465942383,47.567501068115234],"6-52-54":[12.405625343322754,39.983436584472656],"6-52-55":[6.847499847412109,24.832538604736328],"6-52-56":[1.3025000095367432,15.0600004196167],"6-52-57":[-6.510000228881836,2.356250047683716],"6-52-58":[-10.523750305175781,-0.06583333015441895],"6-52-59":[-21.860000610351562,1124.546875],"6-52-60":[-37.750938415527344,910.7380981445312],"6-52-61":[818.3943481445312,1887.28125],"6-52-62":[1785.2950439453125,2271.1962890625],"6-52-63":[-29.530000686645508,2746.473388671875],"6-53-0":[13.609999656677246,38.03335952758789],"6-53-1":[19.677499771118164,53.57500076293945],"5-26-0":[13.609999656677246,53.57500076293945],"6-53-2":[26.452499389648438,988.2930908203125],"6-53-3":[357.1724853515625,1866.375],"5-26-1":[26.305519104003906,2076.739990234375],"6-53-4":[1590.5487060546875,2511.90380859375],"6-53-5":[1504.8870849609375,2633.929931640625],"5-26-2":[1504.8870849609375,2887.35498046875],"6-53-6":[50.54645919799805,2633.929931640625],"6-53-7":[54.99721908569336,3982.850830078125],"5-26-3":[50.54645919799805,3982.850830078125],"6-53-8":[57.33625030517578,121.20062255859375],"6-53-9":[57.33625030517578,128.07000732421875],"5-26-4":[54.305843353271484,1206.670166015625],"6-53-10":[60.52375030517578,129.49374389648438],"6-53-11":[60.77292251586914,127.44925689697266],"5-26-5":[55.78018569946289,129.49374389648438],"6-53-12":[59.9978141784668,122.27999877929688],"6-53-13":[59.832969665527344,127.22906494140625],"5-26-6":[56.65317916870117,127.22906494140625],"6-53-14":[60.04375076293945,129.79061889648438],"6-53-15":[59.64781188964844,129.68031311035156],"5-26-7":[53.737972259521484,129.79061889648438],"6-53-16":[58.286251068115234,129.27999877929688],"6-53-17":[56.51250076293945,123.06814575195312],"5-26-8":[49.3900032043457,956.0730590820312],"6-53-18":[49.22187423706055,2346.08935546875],"6-53-19":[40.38249969482422,100.62999725341797],"5-26-9":[38.595516204833984,2346.08935546875],"6-53-20":[31.826875686645508,83.94750213623047],"6-53-21":[25.241249084472656,69.71211242675781],"5-26-10":[22.357751846313477,83.94750213623047],"6-53-22":[17.36312484741211,52.24531173706055],"6-53-23":[15.167031288146973,40.619686126708984],"5-26-11":[9.782544136047363,52.24531173706055],"6-53-24":[15.010624885559082,37.07746124267578],"6-53-25":[10.173749923706055,36.89250183105469],"5-26-12":[2.4671666622161865,37.07746124267578],"6-53-26":[3.3637499809265137,31.770000457763672],"6-53-27":[0.3824999928474426,19.02312469482422],"5-26-13":[-11.600000381469727,31.770000457763672],"6-53-28":[0.23828125,13.15999984741211],"6-53-29":[1.8081250190734863,18.252500534057617],"5-26-14":[-11.600000381469727,18.252500534057617],"6-53-30":[5.200937271118164,18.059999465942383],"6-53-31":[0.5878099799156189,16.6456241607666],"5-26-15":[-11.800000190734863,18.059999465942383],"6-53-32":[-9.171250343322754,11.600000381469727],"6-53-33":[-13.9975004196167,-1.777500033378601],"5-26-16":[-24.60410499572754,236.4765167236328],"6-53-34":[-21.17578125,-5.378749847412109],"6-53-35":[-21.112499237060547,-7.872499942779541],"5-26-17":[-23.020402908325195,-5.378749847412109],"6-53-36":[-19.022499084472656,-7.108984470367432],"6-53-37":[-14.630762100219727,-6.556250095367432],"5-26-18":[-21.920000076293945,-6.556250095367432],"6-53-38":[-14.319999694824219,-5.316093921661377],"6-53-39":[-22.834869384765625,584.1786499023438],"5-26-19":[-22.834869384765625,584.1786499023438],"6-53-40":[-12.760000228881836,-3.5950000286102295],"6-53-41":[-8.920488357543945,2.4549999237060547],"5-26-20":[-15.600000381469727,2.4549999237060547],"6-53-42":[0.26249998807907104,10.347909927368164],"6-53-43":[2.822291612625122,13.550000190734863],"5-26-21":[-4.710000038146973,13.550000190734863],"6-53-44":[2.9937500953674316,18.096250534057617],"6-53-45":[3.744374990463257,19.270000457763672],"5-26-22":[-1.7400000095367432,19.270000457763672],"6-53-46":[4.182734489440918,19.270000457763672],"6-53-47":[4.922031402587891,20.110000610351562],"5-26-23":[-1.7831250429153442,20.110000610351562],"6-53-48":[4.932499885559082,21.471874237060547],"6-53-49":[6.897500038146973,25.28499984741211],"5-26-24":[0.3244999945163727,25.28499984741211],"6-53-50":[10.637499809265137,32.3173828125],"6-53-51":[8.470874786376953,44.337501525878906],"5-26-25":[8.470874786376953,44.337501525878906],"6-53-52":[22.072500228881836,48.364532470703125],"6-53-53":[20.059999465942383,48.13560485839844],"5-26-26":[20.059999465942383,48.364532470703125],"6-53-54":[11.81624984741211,40.03468704223633],"6-53-55":[6.847499847412109,22.9800968170166],"5-26-27":[6.847499847412109,40.03468704223633],"6-53-56":[1.2253124713897705,13.567500114440918],"6-53-57":[-4.913144588470459,1.9778125286102295],"5-26-28":[-6.510000228881836,15.0600004196167],"6-53-58":[-10.240351676940918,-0.09395833313465118],"6-53-59":[-16.524765014648438,1294.1385498046875],"5-26-29":[-21.860000610351562,1294.1385498046875],"6-53-60":[-35.53437423706055,1634.1728515625],"6-53-61":[910.7380981445312,1960.7724609375],"5-26-30":[-37.750938415527344,1960.7724609375],"6-53-62":[1887.28125,2301.30126953125],"6-53-63":[-29.530000686645508,2746.473388671875],"5-26-31":[-29.530000686645508,2746.473388671875],"6-54-0":[13.609999656677246,38.022499084472656],"6-54-1":[19.60187530517578,54.547813415527344],"6-54-2":[26.58595848083496,989.9244384765625],"6-54-3":[31.940000534057617,1631.625],"6-54-4":[1236.1282958984375,2416.1953125],"6-54-5":[47.32131576538086,2217.33251953125],"6-54-6":[48.058624267578125,2458.389404296875],"6-54-7":[54.40381622314453,2560.608154296875],"6-54-8":[59.360328674316406,127.94750213623047],"6-54-9":[61.22249984741211,130.3949432373047],"6-54-10":[62.35499954223633,130.1787567138672],"6-54-11":[60.84975051879883,126.54624938964844],"6-54-12":[60.650596618652344,122.77372741699219],"6-54-13":[60.638980865478516,127.14303588867188],"6-54-14":[62.98374938964844,131.0536346435547],"6-54-15":[64.62999725341797,132.16867065429688],"6-54-16":[60.84375,129.7550048828125],"6-54-17":[57.3337516784668,122.82312774658203],"6-54-18":[41.128875732421875,1086.31689453125],"6-54-19":[38.342498779296875,100.88025665283203],"6-54-20":[31.04312515258789,82.9800033569336],"6-54-21":[26.81395721435547,66.48343658447266],"6-54-22":[21.1200008392334,53.94062423706055],"6-54-23":[17.103490829467773,42.852596282958984],"6-54-24":[18.446250915527344,45.38874816894531],"6-54-25":[15.885000228881836,1434.617919921875],"6-54-26":[10.323749542236328,41.688751220703125],"6-54-27":[7.130252838134766,30.02294921875],"6-54-28":[6.5370001792907715,22.90999984741211],"6-54-29":[6.711249828338623,23.816015243530273],"6-54-30":[8.300000190734863,22.608301162719727],"6-54-31":[6.313560962677002,20.594276428222656],"6-54-32":[-2.3203125,18.26937484741211],"6-54-33":[-10.40999984741211,1.4893749952316284],"6-54-34":[-15.528437614440918,-1.9887499809265137],"6-54-35":[-16.594375610351562,-5.32937479019165],"6-54-36":[-16.280624389648438,-6.180624961853027],"6-54-37":[-15.5107421875,-6.101640701293945],"6-54-38":[-15.316875457763672,-6.300000190734863],"6-54-39":[-13.64120101928711,-5.144999980926514],"6-54-40":[-12.505937576293945,-0.7425000071525574],"6-54-41":[-6.029375076293945,5.658437728881836],"6-54-42":[1.3933333158493042,12.491464614868164],"6-54-43":[4.87375020980835,19.1981258392334],"6-54-44":[7.124755382537842,24.92544937133789],"6-54-45":[8.926250457763672,26.978437423706055],"6-54-46":[9.5287504196167,27.229354858398438],"6-54-47":[9.5287504196167,27.994375228881836],"6-54-48":[10.953749656677246,28.850078582763672],"6-54-49":[10.953749656677246,32.38249969482422],"6-54-50":[15.146249771118164,35.55617141723633],"6-54-51":[2.708674907684326,43.38999938964844],"6-54-52":[3.9549999237060547,1349.0821533203125],"6-54-53":[10.789140701293945,1035.33447265625],"6-54-54":[10.995624542236328,38.38999938964844],"6-54-55":[6.047500133514404,21.849687576293945],"6-54-56":[1.3212499618530273,12.6899995803833],"6-54-57":[-4.180624961853027,2.9781250953674316],"6-54-58":[-8.5493745803833,102.37124633789062],"6-54-59":[-11.482725143432617,1507.4434814453125],"6-54-60":[282.953125,1787.3897705078125],"6-54-61":[1151.70751953125,2012.9837646484375],"6-54-62":[1960.7724609375,2336.2294921875],"6-54-63":[-29.530000686645508,2746.472900390625],"6-55-0":[13.609999656677246,37.947364807128906],"6-55-1":[19.577499389648438,55.68000030517578],"5-27-0":[13.609999656677246,55.68000030517578],"6-55-2":[26.303590774536133,766.8861083984375],"6-55-3":[31.305999755859375,1410.941650390625],"5-27-1":[26.303590774536133,1631.625],"4-13-0":[13.609999656677246,2076.739990234375],"6-55-4":[33.455318450927734,2030.6729736328125],"6-55-5":[42.85283279418945,2071.9638671875],"5-27-2":[33.455318450927734,2416.1953125],"6-55-6":[49.24166488647461,2327.635986328125],"6-55-7":[55.03437423706055,1988.6097412109375],"5-27-3":[48.058624267578125,2560.608154296875],"4-13-1":[33.455318450927734,3982.850830078125],"3-6-0":[13.609999656677246,3982.850830078125],"6-55-8":[59.61275100708008,1471.3140869140625],"6-55-9":[64.12318420410156,194.1305694580078],"5-27-4":[59.360328674316406,1471.3140869140625],"6-55-10":[60.837501525878906,129.9043731689453],"6-55-11":[60.837501525878906,126.0999984741211],"5-27-5":[60.837501525878906,130.1787567138672],"4-13-2":[54.305843353271484,1471.3140869140625],"6-55-12":[59.8818244934082,126.0999984741211],"6-55-13":[60.00773620605469,126.12249755859375],"5-27-6":[59.8818244934082,127.14303588867188],"6-55-14":[62.57500076293945,129.0041961669922],"6-55-15":[62.57500076293945,131.87777709960938],"5-27-7":[62.57500076293945,132.16867065429688],"4-13-3":[53.737972259521484,132.16867065429688],"3-6-1":[-226.58326721191406,3108.36962890625],"6-55-16":[59.45249938964844,129.90875244140625],"6-55-17":[53.564998626708984,120.25212860107422],"5-27-8":[53.564998626708984,129.90875244140625],"6-55-18":[41.906150817871094,1131.6129150390625],"6-55-19":[36.601905822753906,100.94249725341797],"5-27-9":[36.601905822753906,1131.6129150390625],"4-13-4":[36.601905822753906,2346.08935546875],"6-55-20":[30.3253116607666,76.16874694824219],"6-55-21":[26.983749389648438,63.932498931884766],"5-27-10":[26.81395721435547,82.9800033569336],"6-55-22":[22.3018741607666,55.84000015258789],"6-55-23":[20.157499313354492,50.583126068115234],"5-27-11":[17.103490829467773,55.84000015258789],"4-13-5":[9.782544136047363,83.94750213623047],"3-6-2":[-26.68000030517578,2346.08935546875],"6-55-24":[19.985313415527344,51.744998931884766],"6-55-25":[2.585261583328247,2003.7935791015625],"5-27-12":[2.585261583328247,2003.7935791015625],"6-55-26":[-31.77845573425293,2815.544677734375],"6-55-27":[12.130000114440918,37.3849983215332],"5-27-13":[-31.77845573425293,2815.544677734375],"4-13-6":[-31.77845573425293,2815.544677734375],"6-55-28":[11.03499984741211,31.135000228881836],"6-55-29":[11.252187728881836,32.88750076293945],"5-27-14":[6.5370001792907715,32.88750076293945],"6-55-30":[10.591375350952148,30.920000076293945],"6-55-31":[9.617968559265137,23.861249923706055],"5-27-15":[6.313560962677002,30.920000076293945],"4-13-7":[-11.800000190734863,32.88750076293945],"3-6-3":[-65.13249969482422,2815.544677734375],"6-55-32":[1.4893749952316284,20.701875686645508],"6-55-33":[-3.015312433242798,8.1875],"5-27-16":[-10.40999984741211,20.701875686645508],"6-55-34":[-9.535625457763672,4],"6-55-35":[-12.067500114440918,-1.2300000190734863],"5-27-17":[-16.594375610351562,4],"4-13-8":[-24.60410499572754,236.4765167236328],"6-55-36":[-12.659570693969727,-2.7774999141693115],"6-55-37":[-14.12125015258789,-3.245166778564453],"5-27-18":[-16.280624389648438,-2.7774999141693115],"6-55-38":[-14.416250228881836,-3.25516676902771],"6-55-39":[-12.987968444824219,-2.5134999752044678],"5-27-19":[-15.316875457763672,-2.5134999752044678],"4-13-9":[-22.834869384765625,584.1786499023438],"3-6-4":[-74.22998809814453,2863.342529296875],"6-55-40":[-10.212656021118164,3.3399999141693115],"6-55-41":[-0.7425000071525574,11.75],"5-27-20":[-12.505937576293945,11.75],"6-55-42":[3.1700000762939453,18.061874389648438],"6-55-43":[7.051249980926514,25.520000457763672],"5-27-21":[1.3933333158493042,25.520000457763672],"4-13-10":[-15.600000381469727,25.520000457763672],"6-55-44":[9.907500267028809,32.403751373291016],"6-55-45":[13.072656631469727,35.34000015258789],"5-27-22":[7.124755382537842,35.34000015258789],"6-55-46":[13.587187767028809,36.94562530517578],"6-55-47":[13.634875297546387,36.977500915527344],"5-27-23":[9.5287504196167,36.977500915527344],"4-13-11":[-1.7831250429153442,36.977500915527344],"3-6-5":[-170.48275756835938,2060.9853515625],"6-55-48":[14.162187576293945,36.959999084472656],"6-55-49":[14.192265510559082,37.23500061035156],"5-27-24":[10.953749656677246,37.23500061035156],"6-55-50":[16.344999313354492,39.755001068115234],"6-55-51":[3.6167500019073486,42.26250076293945],"5-27-25":[2.708674907684326,43.38999938964844],"4-13-12":[0.3244999945163727,44.337501525878906],"6-55-52":[3.9549999237060547,37.880001068115234],"6-55-53":[9.633203506469727,38.961875915527344],"5-27-26":[3.9549999237060547,1349.0821533203125],"6-55-54":[10.302499771118164,35.958126068115234],"6-55-55":[6.047500133514404,20.463829040527344],"5-27-27":[6.047500133514404,38.38999938964844],"4-13-13":[3.9549999237060547,1349.0821533203125],"3-6-6":[-44.484928131103516,2916.187255859375],"6-55-56":[1.7400000095367432,12.013750076293945],"6-55-57":[-4.192812442779541,3.216171979904175],"5-27-28":[-4.192812442779541,12.6899995803833],"6-55-58":[-6.270429611206055,557.1953125],"6-55-59":[102.37124633789062,1604.4749755859375],"5-27-29":[-11.482725143432617,1604.4749755859375],"4-13-14":[-21.860000610351562,1604.4749755859375],"6-55-60":[378.53851318359375,1737.3087158203125],"6-55-61":[1187.1968994140625,2103.64990234375],"5-27-30":[282.953125,2103.64990234375],"6-55-62":[2012.9837646484375,2360.074951171875],"6-55-63":[-29.530000686645508,2746.472900390625],"5-27-31":[-29.530000686645508,2746.472900390625],"4-13-15":[-37.750938415527344,2746.473388671875],"3-6-7":[-47.529998779296875,2746.473388671875],"6-56-0":[13.609999656677246,37.868751525878906],"6-56-1":[19.577499389648438,55.72999954223633],"6-56-2":[25.75374984741211,654.030029296875],"6-56-3":[28.030166625976562,1529.1279296875],"6-56-4":[28.030166625976562,995.5300903320312],"6-56-5":[38.3693733215332,1653.8668212890625],"6-56-6":[49.954891204833984,1001.9917602539062],"6-56-7":[55.40999984741211,671.0933837890625],"6-56-8":[61.97628402709961,1784.69140625],"6-56-9":[62.67250061035156,1475.56005859375],"6-56-10":[60.065696716308594,128.24000549316406],"6-56-11":[60.247501373291016,126.28312683105469],"6-56-12":[59.566036224365234,126.28312683105469],"6-56-13":[59.86528778076172,126.20609283447266],"6-56-14":[61.49784851074219,126.54499816894531],"6-56-15":[60.30500030517578,127.17375183105469],"6-56-16":[56.772499084472656,126.5],"6-56-17":[50.99100112915039,117.01312255859375],"6-56-18":[43.524375915527344,106.95773315429688],"6-56-19":[36.602806091308594,92.66447448730469],"6-56-20":[32.36750030517578,81.818359375],"6-56-21":[27.933008193969727,72.02375030517578],"6-56-22":[25.770000457763672,65.53150177001953],"6-56-23":[23.875802993774414,64.23026275634766],"6-56-24":[23.739999771118164,52.10499954223633],"6-56-25":[24.851699829101562,53.973487854003906],"6-56-26":[18.6924991607666,52.627498626708984],"6-56-27":[15.510000228881836,44.212501525878906],"6-56-28":[15.289999961853027,40.19511795043945],"6-56-29":[15.582500457763672,37.66398620605469],"6-56-30":[12.322500228881836,36.227500915527344],"6-56-31":[11.022950172424316,26.969200134277344],"6-56-32":[4.255000114440918,25.100000381469727],"6-56-33":[2.1589999198913574,15.554081916809082],"6-56-34":[-2.101875066757202,11.922499656677246],"6-56-35":[-5.340000152587891,8.469374656677246],"6-56-36":[-7.15625,4.105000019073486],"6-56-37":[-7.327499866485596,0.8431249856948853],"6-56-38":[-8.473750114440918,0.6712304949760437],"6-56-39":[-8.301250457763672,1.8831249475479126],"6-56-40":[-4.639999866485596,8.39486312866211],"6-56-41":[2.1575000286102295,16.032188415527344],"6-56-42":[6.23199987411499,22.138750076293945],"6-56-43":[9.6225004196167,30.629375457763672],"6-56-44":[15.594991683959961,36.644805908203125],"6-56-45":[16.372499465942383,40.494686126708984],"6-56-46":[18.424999237060547,43.36427688598633],"6-56-47":[18.424999237060547,44.12681579589844],"6-56-48":[18.167499542236328,43.97249984741211],"6-56-49":[18.167499542236328,41.78089904785156],"6-56-50":[20.30109405517578,41.647674560546875],"6-56-51":[20.30109405517578,42.32062530517578],"6-56-52":[17.447500228881836,40.959999084472656],"6-56-53":[15.9087495803833,41.95558547973633],"6-56-54":[9.773124694824219,33.91999816894531],"6-56-55":[6.164708137512207,19.62874984741211],"6-56-56":[1.7234375476837158,12.28125],"6-56-57":[-2.057499885559082,3.9728124141693115],"6-56-58":[-5.815000057220459,819.3262329101562],"6-56-59":[421.0459289550781,1695.379150390625],"6-56-60":[516.5906372070312,1629.0013427734375],"6-56-61":[1285.43505859375,2172.8349609375],"6-56-62":[2103.64990234375,2379.91943359375],"6-56-63":[-29.530000686645508,2746.472412109375],"6-57-0":[13.609999656677246,37.798126220703125],"6-57-1":[19.623125076293945,55.08124923706055],"5-28-0":[13.609999656677246,55.72999954223633],"6-57-2":[25.600078582763672,59.228126525878906],"6-57-3":[28.302499771118164,1436.6854248046875],"5-28-1":[25.600078582763672,1529.1279296875],"6-57-4":[28.302499771118164,681.9363403320312],"6-57-5":[38.016876220703125,949.9181518554688],"5-28-2":[28.030166625976562,1653.8668212890625],"6-57-6":[51.09749984741211,115.48218536376953],"6-57-7":[57.707889556884766,126.65062713623047],"5-28-3":[49.954891204833984,1001.9917602539062],"6-57-8":[62.465782165527344,1937.4210205078125],"6-57-9":[60.8494758605957,2123.610595703125],"5-28-4":[60.8494758605957,2123.610595703125],"6-57-10":[59.70845413208008,124.90343475341797],"6-57-11":[58.97447204589844,123.9800033569336],"5-28-5":[58.97447204589844,128.24000549316406],"6-57-12":[58.91382598876953,123.9800033569336],"6-57-13":[57.13212203979492,122.49781036376953],"5-28-6":[57.13212203979492,126.28312683105469],"6-57-14":[58.080509185791016,124.13980102539062],"6-57-15":[58.53190612792969,122.99197387695312],"5-28-7":[58.080509185791016,127.17375183105469],"6-57-16":[54.18375015258789,119.59375],"6-57-17":[49.499027252197266,110.35655975341797],"5-28-8":[49.499027252197266,126.5],"6-57-18":[43.12101745605469,101.62781524658203],"6-57-19":[40.71500015258789,95.4574966430664],"5-28-9":[36.602806091308594,106.95773315429688],"6-57-20":[36.01187515258789,1880.8416748046875],"6-57-21":[32.181251525878906,2439.686767578125],"5-28-10":[27.933008193969727,2439.686767578125],"6-57-22":[30.535869598388672,1522.96337890625],"6-57-23":[25.18000030517578,68.00399780273438],"5-28-11":[23.875802993774414,1522.96337890625],"6-57-24":[-14.484793663024902,116.50971221923828],"6-57-25":[25.65999984741211,60.5888671875],"5-28-12":[-14.484793663024902,116.50971221923828],"6-57-26":[1.5671111345291138,171.476806640625],"6-57-27":[18.280000686645508,57.95149612426758],"5-28-13":[1.5671111345291138,171.476806640625],"6-57-28":[17.327699661254883,53.30796813964844],"6-57-29":[17.617584228515625,43.03093719482422],"5-28-14":[15.289999961853027,53.30796813964844],"6-57-30":[14.235750198364258,37.18000030517578],"6-57-31":[11.874687194824219,33.400001525878906],"5-28-15":[11.022950172424316,37.18000030517578],"6-57-32":[8.76937484741211,34.400001525878906],"6-57-33":[6.710000038146973,26.586875915527344],"5-28-16":[2.1589999198913574,34.400001525878906],"6-57-34":[4.935999870300293,24.729999542236328],"6-57-35":[2.8125,19.532812118530273],"5-28-17":[-5.340000152587891,24.729999542236328],"6-57-36":[0.8431249856948853,14.1899995803833],"6-57-37":[0.34031251072883606,10.335000038146973],"5-28-18":[-7.327499866485596,14.1899995803833],"6-57-38":[-0.05312500149011612,10.44156265258789],"6-57-39":[-0.16093750298023224,10.329999923706055],"5-28-19":[-8.473750114440918,10.44156265258789],"6-57-40":[1.3700000047683716,15.832500457763672],"6-57-41":[5.033124923706055,21.639999389648438],"5-28-20":[-4.639999866485596,21.639999389648438],"6-57-42":[8.3412504196167,26.938749313354492],"6-57-43":[11.9037504196167,34.45000076293945],"5-28-21":[6.23199987411499,34.45000076293945],"6-57-44":[15.595000267028809,40.41359329223633],"6-57-45":[18.813125610351562,45.88999938964844],"5-28-22":[15.594991683959961,45.88999938964844],"6-57-46":[20.61750030517578,49.36406326293945],"6-57-47":[22.0234375,50.18406295776367],"5-28-23":[18.424999237060547,50.18406295776367],"6-57-48":[21.38687515258789,50.154998779296875],"6-57-49":[20.475000381469727,48.124061584472656],"5-28-24":[18.167499542236328,50.154998779296875],"6-57-50":[20.407917022705078,45.478126525878906],"6-57-51":[20.347999572753906,44.15437316894531],"5-28-25":[20.30109405517578,45.478126525878906],"6-57-52":[19.718124389648438,42.179412841796875],"6-57-53":[15.9087495803833,42.474220275878906],"5-28-26":[15.9087495803833,42.474220275878906],"6-57-54":[9.162500381469727,31.178125381469727],"6-57-55":[6.212500095367432,18.184823989868164],"5-28-27":[6.164708137512207,33.91999816894531],"6-57-56":[2.309375047683716,13.359999656677246],"6-57-57":[0.4271875023841858,11.693750381469727],"5-28-28":[-2.057499885559082,13.359999656677246],"6-57-58":[-1.8993359804153442,1093.2574462890625],"6-57-59":[819.3262329101562,1811.7001953125],"5-28-29":[-5.815000057220459,1811.7001953125],"6-57-60":[814.021484375,1663.603759765625],"6-57-61":[1522.3531494140625,2225.39990234375],"5-28-30":[516.5906372070312,2225.39990234375],"6-57-62":[2172.8349609375,2420.796142578125],"6-57-63":[-29.530000686645508,2746.472412109375],"5-28-31":[-29.530000686645508,2746.472412109375],"6-58-0":[13.609999656677246,37.771873474121094],"6-58-1":[19.712499618530273,53.619998931884766],"6-58-2":[25.567249298095703,61.939884185791016],"6-58-3":[29.90625,345.14312744140625],"6-58-4":[30.001333236694336,79.44011688232422],"6-58-5":[38.662498474121094,105.3550033569336],"6-58-6":[50.37874984741211,116.36312866210938],"6-58-7":[58.462501525878906,124.91999816894531],"6-58-8":[60.439998626708984,1885.3704833984375],"6-58-9":[60.015506744384766,2140.579345703125],"6-58-10":[58.4275016784668,121.68499755859375],"6-58-11":[57.73749923706055,123.86000061035156],"6-58-12":[56.63744354248047,123.86000061035156],"6-58-13":[57.04881286621094,123.13978576660156],"6-58-14":[55.87116622924805,119.27906036376953],"6-58-15":[55.11164855957031,118.33031463623047],"6-58-16":[50.41312789916992,118.04187774658203],"6-58-17":[47.21875,106.07624816894531],"6-58-18":[45.73500061035156,104.9345703125],"6-58-19":[42.8849983215332,99.36492156982422],"6-58-20":[28.43880271911621,1402.1947021484375],"6-58-21":[13.236388206481934,3730.84716796875],"6-58-22":[29.840120315551758,1980.82177734375],"6-58-23":[-10.666366577148438,745.8621826171875],"6-58-24":[-18.63727378845215,535.704833984375],"6-58-25":[-14.596675872802734,356.3331604003906],"6-58-26":[-1.612644076347351,135.28648376464844],"6-58-27":[-20.694656372070312,301.5450134277344],"6-58-28":[0.18783532083034515,458.59356689453125],"6-58-29":[18.93454360961914,63.459102630615234],"6-58-30":[15.771249771118164,41.9074821472168],"6-58-31":[13.350488662719727,38.209999084472656],"6-58-32":[13.4712495803833,38.209999084472656],"6-58-33":[12.71940803527832,33.97820281982422],"6-58-34":[-2.223259687423706,864.6653442382812],"6-58-35":[7.456166744232178,27.56624984741211],"6-58-36":[5.050000190734863,20.0575008392334],"6-58-37":[4.983333110809326,16.726171493530273],"6-58-38":[4.462500095367432,16.6119327545166],"6-58-39":[4.414583206176758,17.646249771118164],"6-58-40":[5.554538726806641,22.030370712280273],"6-58-41":[8.28499984741211,26.0674991607666],"6-58-42":[11.111364364624023,30.334999084472656],"6-58-43":[13.850000381469727,35.76374816894531],"6-58-44":[17.65250015258789,40.208984375],"6-58-45":[20.041250228881836,47.09187316894531],"6-58-46":[23.204999923706055,50.171016693115234],"6-58-47":[24.783750534057617,52.717735290527344],"6-58-48":[24.354999542236328,54.255859375],"6-58-49":[24.354999542236328,51.810333251953125],"6-58-50":[22.38249969482422,49.91999816894531],"6-58-51":[21.5049991607666,46.015254974365234],"6-58-52":[18.452167510986328,42.71562576293945],"6-58-53":[13.300000190734863,41.859375],"6-58-54":[9.112343788146973,28.670000076293945],"6-58-55":[6.739999771118164,17.280176162719727],"6-58-56":[3.081249952316284,13.479999542236328],"6-58-57":[2.2592499256134033,357.8634948730469],"6-58-58":[2.4813332557678223,1674.62744140625],"6-58-59":[1093.2574462890625,1949.5684814453125],"6-58-60":[1289.3153076171875,1790.3399658203125],"6-58-61":[1663.603759765625,2289.9326171875],"6-58-62":[2225.39990234375,2460.8505859375],"6-58-63":[-29.530000686645508,2746.471923828125],"6-59-0":[13.609999656677246,37.7800407409668],"6-59-1":[19.80062484741211,52.170623779296875],"5-29-0":[13.609999656677246,53.619998931884766],"6-59-2":[25.750707626342773,63.74250030517578],"6-59-3":[30.496000289916992,64.23999786376953],"5-29-1":[25.567249298095703,345.14312744140625],"4-14-0":[13.609999656677246,1529.1279296875],"6-59-4":[30.517499923706055,84.67749786376953],"6-59-5":[41.87562561035156,100.48124694824219],"5-29-2":[30.001333236694336,105.3550033569336],"6-59-6":[50.165000915527344,115.79167938232422],"6-59-7":[56.8125,119.94937133789062],"5-29-3":[50.165000915527344,124.91999816894531],"4-14-1":[28.030166625976562,1653.8668212890625],"6-59-8":[57.71296691894531,1189.7474365234375],"6-59-9":[59.833919525146484,125.86222839355469],"5-29-4":[57.71296691894531,2140.579345703125],"6-59-10":[55.41749954223633,120.7300033569336],"6-59-11":[54.59834289550781,121.47625732421875],"5-29-5":[54.59834289550781,123.86000061035156],"4-14-2":[54.59834289550781,2140.579345703125],"6-59-12":[54.7311897277832,121.87984466552734],"6-59-13":[57.85499954223633,122.99117279052734],"5-29-6":[54.7311897277832,123.86000061035156],"6-59-14":[52.82749938964844,118.24687194824219],"6-59-15":[49.92552947998047,112.42250061035156],"5-29-7":[49.92552947998047,119.27906036376953],"4-14-3":[49.92552947998047,127.17375183105469],"6-59-16":[47.92090606689453,112.42250061035156],"6-59-17":[45.532989501953125,102.31562805175781],"5-29-8":[45.532989501953125,118.04187774658203],"6-59-18":[43.50812530517578,103.09027099609375],"6-59-19":[40.185909271240234,98.53277587890625],"5-29-9":[40.185909271240234,104.9345703125],"4-14-4":[36.602806091308594,126.5],"6-59-20":[40.187007904052734,88.86125183105469],"6-59-21":[34.442935943603516,731.9693603515625],"5-29-10":[13.236388206481934,3730.84716796875],"6-59-22":[-35.000633239746094,609.2245483398438],"6-59-23":[182.6399383544922,951.2550048828125],"5-29-11":[-35.000633239746094,1980.82177734375],"4-14-5":[-35.000633239746094,3730.84716796875],"6-59-24":[63.418174743652344,838.6109619140625],"6-59-25":[2.5282747745513916,699.4052124023438],"5-29-12":[-18.63727378845215,838.6109619140625],"6-59-26":[4.849714756011963,480.971923828125],"6-59-27":[22.181438446044922,1567.3345947265625],"5-29-13":[-20.694656372070312,1567.3345947265625],"4-14-6":[-20.694656372070312,1567.3345947265625],"6-59-28":[-24.76106834411621,1463.860107421875],"6-59-29":[1.2246639728546143,935.2755737304688],"5-29-14":[-24.76106834411621,1463.860107421875],"6-59-30":[17.768749237060547,49.37648391723633],"6-59-31":[15.916707992553711,40.50550842285156],"5-29-15":[13.350488662719727,49.37648391723633],"4-14-7":[-24.76106834411621,1463.860107421875],"6-59-32":[17.611249923706055,40.60343933105469],"6-59-33":[15.369999885559082,39.251834869384766],"5-29-16":[12.71940803527832,40.60343933105469],"6-59-34":[13.6878023147583,36.869998931884766],"6-59-35":[10.362500190734863,29.323204040527344],"5-29-17":[-2.223259687423706,864.6653442382812],"4-14-8":[-5.340000152587891,864.6653442382812],"6-59-36":[8.780625343322754,22.537500381469727],"6-59-37":[8.2318754196167,21.100000381469727],"5-29-18":[4.983333110809326,22.537500381469727],"6-59-38":[8.088749885559082,23.256874084472656],"6-59-39":[8.164999961853027,24.607500076293945],"5-29-19":[4.414583206176758,24.607500076293945],"4-14-9":[-8.473750114440918,24.607500076293945],"6-59-40":[9.229999542236328,25.799375534057617],"6-59-41":[11.6875,28.53125],"5-29-20":[5.554538726806641,28.53125],"6-59-42":[13.3412504196167,31.391132354736328],"6-59-43":[15.337187767028809,35.1193733215332],"5-29-21":[11.111364364624023,35.76374816894531],"4-14-10":[-4.639999866485596,35.76374816894531],"6-59-44":[17.3700008392334,39.978790283203125],"6-59-45":[15.000103950500488,2060.1064453125],"5-29-22":[15.000103950500488,2060.1064453125],"6-59-46":[22.80500030517578,50.11441421508789],"6-59-47":[24.47249984741211,52.46500015258789],"5-29-23":[22.80500030517578,52.717735290527344],"4-14-11":[15.000103950500488,2060.1064453125],"6-59-48":[25.920000076293945,55.18312454223633],"6-59-49":[25.170000076293945,55.90187454223633],"5-29-24":[24.354999542236328,55.90187454223633],"6-59-50":[23.473125457763672,53.47999954223633],"6-59-51":[21.5049991607666,49.05125045776367],"5-29-25":[21.5049991607666,53.47999954223633],"4-14-12":[18.167499542236328,55.90187454223633],"6-59-52":[18.452167510986328,44.540000915527344],"6-59-53":[13.300000190734863,39.119998931884766],"5-29-26":[13.300000190734863,44.540000915527344],"6-59-54":[8.952500343322754,26.979999542236328],"6-59-55":[6.739999771118164,17.270898818969727],"5-29-27":[6.739999771118164,28.670000076293945],"4-14-13":[6.164708137512207,44.540000915527344],"6-59-56":[4.683984279632568,14.618124961853027],"6-59-57":[4.849999904632568,608.0900268554688],"5-29-28":[2.2592499256134033,608.0900268554688],"6-59-58":[10.522500038146973,2647.26806640625],"6-59-59":[1580.6025390625,2213.90625],"5-29-29":[2.4813332557678223,2647.26806640625],"4-14-14":[-5.815000057220459,2647.26806640625],"6-59-60":[1486.8238525390625,1899.5899658203125],"6-59-61":[1790.3399658203125,2337.3349609375],"5-29-30":[1289.3153076171875,2337.3349609375],"6-59-62":[2289.9326171875,2494.90380859375],"6-59-63":[-29.530000686645508,2746.471435546875],"5-29-31":[-29.530000686645508,2746.471923828125],"4-14-15":[-29.530000686645508,2746.472412109375],"6-60-0":[13.609999656677246,37.774375915527344],"6-60-1":[19.829999923706055,52.106876373291016],"6-60-2":[26.072500228881836,63.797733306884766],"6-60-3":[31.532499313354492,68.90827941894531],"6-60-4":[32.12216567993164,88.60415649414062],"6-60-5":[43.35749816894531,100.58218383789062],"6-60-6":[50.1610221862793,660.7227783203125],"6-60-7":[54.73701095581055,115.85624694824219],"6-60-8":[55.537498474121094,123.34750366210938],"6-60-9":[56.936248779296875,123.84249877929688],"6-60-10":[54.7706298828125,119.66000366210938],"6-60-11":[36.30938720703125,467.0794372558594],"6-60-12":[54.6694450378418,847.1412353515625],"6-60-13":[31.721574783325195,1061.1876220703125],"6-60-14":[50.82883071899414,118.8998794555664],"6-60-15":[46.845001220703125,106.05999755859375],"6-60-16":[46.52921676635742,848.0225830078125],"6-60-17":[45.68915557861328,934.3092651367188],"6-60-18":[43.526790618896484,948.1864013671875],"6-60-19":[36.29579162597656,97.21154022216797],"6-60-20":[36.5029182434082,3428.77392578125],"6-60-21":[36.12596893310547,3435.156982421875],"6-60-22":[183.3260498046875,753.2549438476562],"6-60-23":[203.99546813964844,625.4411010742188],"6-60-24":[208.988525390625,621.8565063476562],"6-60-25":[126.64251708984375,616.3297729492188],"6-60-26":[54.15531921386719,571.2150268554688],"6-60-27":[72.56627655029297,986.0034790039062],"6-60-28":[266.5927429199219,1965.57080078125],"6-60-29":[-0.27410370111465454,1465.1328125],"6-60-30":[10.107251167297363,448.4481201171875],"6-60-31":[17.883888244628906,41.589256286621094],"6-60-32":[19.009374618530273,40.09421920776367],"6-60-33":[17.403749465942383,38.616249084472656],"6-60-34":[14.289375305175781,36.869998931884766],"6-60-35":[11.081116676330566,29.155000686645508],"6-60-36":[9.956744194030762,23.08562469482422],"6-60-37":[10.09749984741211,23.771738052368164],"6-60-38":[10.536022186279297,25.269296646118164],"6-60-39":[11.829999923706055,25.481971740722656],"6-60-40":[12.344644546508789,27.107851028442383],"6-60-41":[13.012499809265137,29.471874237060547],"6-60-42":[14.243000030517578,30.494375228881836],"6-60-43":[15.077031135559082,32.65999984741211],"6-60-44":[15.8100004196167,38.09562683105469],"6-60-45":[18.294374465942383,45.49398422241211],"6-60-46":[6.475727081298828,931.4411010742188],"6-60-47":[23.420000076293945,51.84000015258789],"6-60-48":[24.91437530517578,56.44728469848633],"6-60-49":[26.782499313354492,56.309452056884766],"6-60-50":[24.857500076293945,54.11898422241211],"6-60-51":[23.88249969482422,51.2819938659668],"6-60-52":[18.844375610351562,47.15437316894531],"6-60-53":[13.076250076293945,37.44562530517578],"6-60-54":[8.97249984741211,27.200000762939453],"6-60-55":[7.298375129699707,18.173261642456055],"6-60-56":[6.692911148071289,18.96320343017578],"6-60-57":[8.72249984741211,1445.4749755859375],"6-60-58":[608.0900268554688,2647.26806640625],"6-60-59":[1819.4000244140625,2378.6201171875],"6-60-60":[1773.2025146484375,2084.26123046875],"6-60-61":[1899.5899658203125,2371.324951171875],"6-60-62":[2337.3349609375,2524.959716796875],"6-60-63":[-29.530000686645508,2746.48291015625],"6-61-0":[13.609999656677246,37.75669860839844],"6-61-1":[19.7862491607666,52.4900016784668],"5-30-0":[13.609999656677246,52.4900016784668],"6-61-2":[26.072500228881836,61.80160140991211],"6-61-3":[29.915000915527344,75.44000244140625],"5-30-1":[26.072500228881836,75.44000244140625],"6-61-4":[34.23500061035156,88.44310760498047],"6-61-5":[43.497501373291016,100.67312622070312],"5-30-2":[32.12216567993164,100.67312622070312],"6-61-6":[49.898067474365234,2067.71142578125],"6-61-7":[51.02974319458008,110.484375],"5-30-3":[49.898067474365234,2067.71142578125],"6-61-8":[51.944618225097656,113.6137924194336],"6-61-9":[52.94961166381836,792.84912109375],"5-30-4":[51.944618225097656,792.84912109375],"6-61-10":[54.1843147277832,472.8525085449219],"6-61-11":[40.340309143066406,998.81494140625],"5-30-5":[36.30938720703125,998.81494140625],"6-61-12":[47.756290435791016,911.3287963867188],"6-61-13":[45.76242446899414,978.662109375],"5-30-6":[31.721574783325195,1061.1876220703125],"6-61-14":[51.83250045776367,275.162841796875],"6-61-15":[44.76000213623047,105.84937286376953],"5-30-7":[44.76000213623047,275.162841796875],"6-61-16":[42.9969367980957,2441.791748046875],"6-61-17":[63.03526306152344,2479.285888671875],"5-30-8":[42.9969367980957,2479.285888671875],"6-61-18":[21.60199737548828,1153.6800537109375],"6-61-19":[35.434268951416016,1045.53466796875],"5-30-9":[21.60199737548828,1153.6800537109375],"6-61-20":[43.20000076293945,3969.244873046875],"6-61-21":[321.36688232421875,3240.149658203125],"5-30-10":[36.12596893310547,3969.244873046875],"6-61-22":[327.4252624511719,538.0221557617188],"6-61-23":[228.84820556640625,581.2377319335938],"5-30-11":[183.3260498046875,753.2549438476562],"6-61-24":[207.90066528320312,518.061279296875],"6-61-25":[135.48361206054688,456.48040771484375],"5-30-12":[126.64251708984375,621.8565063476562],"6-61-26":[189.70416259765625,487.9707946777344],"6-61-27":[282.4544982910156,725.3330688476562],"5-30-13":[54.15531921386719,986.0034790039062],"6-61-28":[245.42984008789062,1263.803955078125],"6-61-29":[98.59326934814453,1793.4537353515625],"5-30-14":[-0.27410370111465454,1965.57080078125],"6-61-30":[9.647578239440918,563.5889892578125],"6-61-31":[17.84971046447754,40.63999938964844],"5-30-15":[9.647578239440918,563.5889892578125],"6-61-32":[18.113750457763672,39.26093673706055],"6-61-33":[16.279376983642578,37.51103591918945],"5-30-16":[16.279376983642578,40.09421920776367],"6-61-34":[14.289375305175781,34.2478141784668],"6-61-35":[11.712499618530273,28.8384952545166],"5-30-17":[11.081116676330566,36.869998931884766],"6-61-36":[11.309082984924316,28.815000534057617],"6-61-37":[-99.66465759277344,814.3954467773438],"5-30-18":[-99.66465759277344,814.3954467773438],"6-61-38":[11.901249885559082,26.062265396118164],"6-61-39":[12.452500343322754,26.8984375],"5-30-19":[10.536022186279297,26.8984375],"6-61-40":[12.649374961853027,30.03156280517578],"6-61-41":[13.853750228881836,32.616249084472656],"5-30-20":[12.344644546508789,32.616249084472656],"6-61-42":[14.873749732971191,32.505001068115234],"6-61-43":[15.142499923706055,33.4553108215332],"5-30-21":[14.243000030517578,33.4553108215332],"6-61-44":[15.8100004196167,36.24449157714844],"6-61-45":[17.749217987060547,44.19906234741211],"5-30-22":[15.8100004196167,45.49398422241211],"6-61-46":[21.260000228881836,47.288673400878906],"6-61-47":[22.24566650390625,50.540000915527344],"5-30-23":[6.475727081298828,931.4411010742188],"6-61-48":[24.6299991607666,53.22511672973633],"6-61-49":[25.06999969482422,55.26124954223633],"5-30-24":[24.6299991607666,56.44728469848633],"6-61-50":[26.010000228881836,56.196834564208984],"6-61-51":[23.88249969482422,54.09187316894531],"5-30-25":[23.88249969482422,56.196834564208984],"6-61-52":[17.857500076293945,50.81437683105469],"6-61-53":[13.076250076293945,35.166873931884766],"5-30-26":[13.076250076293945,50.81437683105469],"6-61-54":[9.428750038146973,26.809999465942383],"6-61-55":[7.572500228881836,20.641563415527344],"5-30-27":[7.298375129699707,27.200000762939453],"6-61-56":[7.485312461853027,20.75374984741211],"6-61-57":[10.041390419006348,2119.0224609375],"5-30-28":[6.692911148071289,2119.0224609375],"6-61-58":[1445.4749755859375,2720.0478515625],"6-61-59":[2045.4925537109375,2519.143798828125],"5-30-29":[608.0900268554688,2720.0478515625],"6-61-60":[1905.59228515625,2242.544921875],"6-61-61":[1958.1231689453125,2404.875],"5-30-30":[1773.2025146484375,2404.875],"6-61-62":[2371.324951171875,2555.092041015625],"6-61-63":[-29.530000686645508,2747.469970703125],"5-30-31":[-29.530000686645508,2747.469970703125],"6-62-0":[13.609999656677246,37.72624969482422],"6-62-1":[19.739999771118164,53.00062561035156],"6-62-2":[26.546249389648438,59.24638748168945],"6-62-3":[28.635313034057617,75.61250305175781],"6-62-4":[36.20249938964844,85.27218627929688],"6-62-5":[42.310001373291016,99.79000091552734],"6-62-6":[49.28499984741211,108.10843658447266],"6-62-7":[49.782814025878906,103.87000274658203],"6-62-8":[50.5724983215332,107.82250213623047],"6-62-9":[49.70124816894531,111.73062133789062],"6-62-10":[49.6668586730957,298.21002197265625],"6-62-11":[49.965110778808594,1388.0882568359375],"6-62-12":[41.71603012084961,1035.9302978515625],"6-62-13":[45.89146041870117,1109.05615234375],"6-62-14":[20.27583885192871,639.8948364257812],"6-62-15":[44.39109420776367,219.0296630859375],"6-62-16":[32.45598220825195,2687.212158203125],"6-62-17":[297.06658935546875,2577.78173828125],"6-62-18":[44.235782623291016,3501.32275390625],"6-62-19":[32.499114990234375,2419.805908203125],"6-62-20":[632.4515380859375,3718.370849609375],"6-62-21":[368.61175537109375,1721.0511474609375],"6-62-22":[218.45553588867188,696.391845703125],"6-62-23":[131.07815551757812,471.4528503417969],"6-62-24":[138.86412048339844,407.05340576171875],"6-62-25":[256.9522705078125,487.5280456542969],"6-62-26":[239.52796936035156,1006.13134765625],"6-62-27":[249.30572509765625,631.600830078125],"6-62-28":[194.0611114501953,789.7427978515625],"6-62-29":[15.139787673950195,766.658935546875],"6-62-30":[-46.140071868896484,332.61700439453125],"6-62-31":[17.317800521850586,38.67356872558594],"6-62-32":[17.526500701904297,38.47999954223633],"6-62-33":[15.746514320373535,36.13093566894531],"6-62-34":[14.550000190734863,33.158809661865234],"6-62-35":[12.037031173706055,28.927480697631836],"6-62-36":[12.109999656677246,28.815000534057617],"6-62-37":[12.836999893188477,26.811250686645508],"6-62-38":[12.655097961425781,28.49429702758789],"6-62-39":[13.057499885559082,31.271249771118164],"6-62-40":[13.655885696411133,34.27179718017578],"6-62-41":[15.4399995803833,36.129920959472656],"6-62-42":[16.174999237060547,36.66046905517578],"6-62-43":[16.174999237060547,37.76499938964844],"6-62-44":[16.201250076293945,37.76499938964844],"6-62-45":[16.201250076293945,40.310001373291016],"6-62-46":[17.780000686645508,44.63750076293945],"6-62-47":[19.75749969482422,49.2599983215332],"6-62-48":[22.320667266845703,50.12062454223633],"6-62-49":[23.733125686645508,54.939998626708984],"6-62-50":[26.517499923706055,56.36492156982422],"6-62-51":[24.74795913696289,55.640625],"6-62-52":[17.742813110351562,50.788124084472656],"6-62-53":[13.063750267028809,33.86042785644531],"6-62-54":[10.423749923706055,25.957813262939453],"6-62-55":[9.912291526794434,22.353925704956055],"6-62-56":[8.785625457763672,20.956621170043945],"6-62-57":[10.28499984741211,2479.22509765625],"6-62-58":[1813.36181640625,2850.400146484375],"6-62-59":[2242.544921875,2618.263671875],"6-62-60":[1991.4005126953125,2314.657470703125],"6-62-61":[1993.1412353515625,2457.945068359375],"6-62-62":[2404.875,2581.133544921875],"6-62-63":[-29.530166625976562,2749.46337890625],"6-63-0":[13.609999656677246,37.729454040527344],"6-63-1":[19.729999542236328,53.58000183105469],"5-31-0":[13.609999656677246,53.58000183105469],"6-63-2":[26.546249389648438,62.23500061035156],"6-63-3":[28.85562515258789,73.72000122070312],"5-31-1":[26.546249389648438,75.61250305175781],"4-15-0":[13.609999656677246,75.61250305175781],"6-63-4":[35.880001068115234,86.27249908447266],"6-63-5":[42.26156234741211,98.33031463623047],"5-31-2":[35.880001068115234,99.79000091552734],"6-63-6":[48.49630355834961,104.23413848876953],"6-63-7":[48.27445983886719,101.09368896484375],"5-31-3":[48.27445983886719,108.10843658447266],"4-15-1":[32.12216567993164,2067.71142578125],"3-7-0":[13.609999656677246,2067.71142578125],"6-63-8":[48.821720123291016,103.65324401855469],"6-63-9":[48.9398193359375,103.54920196533203],"5-31-4":[48.821720123291016,111.73062133789062],"6-63-10":[46.96500015258789,500.1719970703125],"6-63-11":[46.689998626708984,821.8721313476562],"5-31-5":[46.689998626708984,1388.0882568359375],"4-15-2":[36.30938720703125,1388.0882568359375],"6-63-12":[-1.2225662469863892,942.8108520507812],"6-63-13":[5.010127544403076,686.849853515625],"5-31-6":[-1.2225662469863892,1109.05615234375],"6-63-14":[29.66975212097168,466.8013610839844],"6-63-15":[17.327831268310547,332.20953369140625],"5-31-7":[17.327831268310547,639.8948364257812],"4-15-3":[-1.2225662469863892,1109.05615234375],"3-7-1":[-1.2225662469863892,2140.579345703125],"2-3-0":[-226.58326721191406,3982.850830078125],"6-63-16":[16.6298885345459,3299.634765625],"6-63-17":[40.73721694946289,2357.657958984375],"5-31-8":[16.6298885345459,3299.634765625],"6-63-18":[40.99497604370117,2423.3642578125],"6-63-19":[45.96165466308594,1802.729248046875],"5-31-9":[32.499114990234375,3501.32275390625],"4-15-4":[16.6298885345459,3501.32275390625],"6-63-20":[585.2816162109375,2177.751953125],"6-63-21":[198.79539489746094,856.9365844726562],"5-31-10":[198.79539489746094,3718.370849609375],"6-63-22":[154.10662841796875,519.59033203125],"6-63-23":[95.92691040039062,407.471923828125],"5-31-11":[95.92691040039062,696.391845703125],"4-15-5":[36.12596893310547,3969.244873046875],"3-7-2":[-35.000633239746094,3969.244873046875],"6-63-24":[189.2420196533203,556.8372192382812],"6-63-25":[243.53643798828125,577.0238647460938],"5-31-12":[138.86412048339844,577.0238647460938],"6-63-26":[242.097412109375,1303.8314208984375],"6-63-27":[216.6278533935547,572.2550048828125],"5-31-13":[216.6278533935547,1303.8314208984375],"4-15-6":[54.15531921386719,1303.8314208984375],"6-63-28":[63.80579376220703,555.418212890625],"6-63-29":[21.373212814331055,874.91796875],"5-31-14":[15.139787673950195,874.91796875],"6-63-30":[-6.383384704589844,370.7690734863281],"6-63-31":[16.481172561645508,36.19449234008789],"5-31-15":[-46.140071868896484,370.7690734863281],"4-15-7":[-46.140071868896484,1965.57080078125],"3-7-3":[-46.140071868896484,1965.57080078125],"2-3-1":[-65.13249969482422,3969.244873046875],"1-1-0":[-328.0532531738281,5809.47802734375],"6-63-32":[17.15999984741211,36.77699279785156],"6-63-33":[16.298046112060547,37.07179641723633],"5-31-16":[15.746514320373535,38.47999954223633],"6-63-34":[12.342499732971191,34.979373931884766],"6-63-35":[10.706768989562988,28.638399124145508],"5-31-17":[10.706768989562988,34.979373931884766],"4-15-8":[10.706768989562988,40.09421920776367],"6-63-36":[11.051791191101074,26.152284622192383],"6-63-37":[12.727499961853027,29.219999313354492],"5-31-18":[11.051791191101074,29.219999313354492],"6-63-38":[13.430000305175781,32.72624969482422],"6-63-39":[14.755624771118164,35.31999969482422],"5-31-19":[12.655097961425781,35.31999969482422],"4-15-9":[-99.66465759277344,814.3954467773438],"3-7-4":[-99.66465759277344,864.6653442382812],"6-63-40":[15.892499923706055,39.665626525878906],"6-63-41":[17.6668758392334,41.81999969482422],"5-31-20":[13.655885696411133,41.81999969482422],"6-63-42":[18.18000030517578,43.475624084472656],"6-63-43":[17.227500915527344,42.549705505371094],"5-31-21":[16.174999237060547,43.475624084472656],"4-15-10":[12.344644546508789,43.475624084472656],"6-63-44":[15.948905944824219,39.025001525878906],"6-63-45":[15.926750183105469,35.61125183105469],"5-31-22":[15.926750183105469,40.310001373291016],"6-63-46":[17.780000686645508,43.740623474121094],"6-63-47":[19.652578353881836,46.896873474121094],"5-31-23":[17.780000686645508,49.2599983215332],"4-15-11":[6.475727081298828,931.4411010742188],"3-7-5":[-4.639999866485596,2060.1064453125],"2-3-2":[-170.48275756835938,2863.342529296875],"6-63-48":[22.320667266845703,46.824649810791016],"6-63-49":[23.177499771118164,52.868125915527344],"5-31-24":[22.320667266845703,54.939998626708984],"6-63-50":[25.950000762939453,55.433475494384766],"6-63-51":[24.74795913696289,55.5866813659668],"5-31-25":[24.74795913696289,56.36492156982422],"4-15-12":[22.320667266845703,56.44728469848633],"6-63-52":[17.567968368530273,49.35187530517578],"6-63-53":[13.063750267028809,33.42982482910156],"5-31-26":[13.063750267028809,50.788124084472656],"6-63-54":[11.454375267028809,27.130624771118164],"6-63-55":[10.404999732971191,26.459980010986328],"5-31-27":[9.912291526794434,27.130624771118164],"4-15-13":[7.298375129699707,50.81437683105469],"3-7-6":[6.164708137512207,56.44728469848633],"6-63-56":[8.785625457763672,27.92074203491211],"6-63-57":[10.28499984741211,2064.73681640625],"5-31-28":[8.785625457763672,2479.22509765625],"6-63-58":[6.2979655265808105,2924.46240234375],"6-63-59":[-4.160320281982422,2804.299560546875],"5-31-29":[-4.160320281982422,2924.46240234375],"4-15-14":[-4.160320281982422,2924.46240234375],"6-63-60":[-10.222886085510254,2430.84228515625],"6-63-61":[-15.140766143798828,2498.8603515625],"5-31-30":[-15.140766143798828,2498.8603515625],"6-63-62":[-22.787166595458984,2597.04248046875],"6-63-63":[-29.530332565307617,2749.46337890625],"5-31-31":[-29.530332565307617,2749.46337890625],"4-15-15":[-29.530332565307617,2749.46337890625],"3-7-7":[-29.530332565307617,2924.46240234375],"2-3-3":[-47.529998779296875,2924.46240234375],"1-1-1":[-269.4302978515625,6969.12255859375],"0-0-0":[-328.0532531738281,6969.12255859375],"6-64-0":[13.609999656677246,37.775001525878906],"6-64-1":[19.729999542236328,53.58000183105469],"6-64-2":[26.603750228881836,62.88523483276367],"6-64-3":[31.417499542236328,76.26750183105469],"6-64-4":[36.86333465576172,86.27249908447266],"6-64-5":[42.709373474121094,96.98999786376953],"6-64-6":[47.0099983215332,101.28250122070312],"6-64-7":[46.73679733276367,97.63999938964844],"6-64-8":[45.830623626708984,101.58125305175781],"6-64-9":[45.049217224121094,100.51000213623047],"6-64-10":[45.186248779296875,100.5531234741211],"6-64-11":[44.21048355102539,95.57711029052734],"6-64-12":[41.57500076293945,93.34093475341797],"6-64-13":[34.37473678588867,320.13458251953125],"6-64-14":[39.88637161254883,478.3519287109375],"6-64-15":[62.72459411621094,1880.4366455078125],"6-64-16":[53.23228454589844,3439.26513671875],"6-64-17":[36.390445709228516,2431.197265625],"6-64-18":[43.43257522583008,942.6529541015625],"6-64-19":[44.6815185546875,1847.7310791015625],"6-64-20":[490.9859924316406,1993.837158203125],"6-64-21":[201.86016845703125,739.3895263671875],"6-64-22":[138.19180297851562,750.523193359375],"6-64-23":[240.330322265625,1166.1856689453125],"6-64-24":[334.0950622558594,962.4119262695312],"6-64-25":[276.6943664550781,863.3107299804688],"6-64-26":[184.15028381347656,556.459228515625],"6-64-27":[168.6219024658203,439.9532470703125],"6-64-28":[61.715423583984375,880.0928955078125],"6-64-29":[-17.90817642211914,1022.4351196289062],"6-64-30":[14.825469017028809,41.295989990234375],"6-64-31":[15.225125312805176,34.37800598144531],"6-64-32":[16.2137508392334,36.762107849121094],"6-64-33":[11.493749618530273,36.61785125732422],"6-64-34":[9.51937484741211,33.220001220703125],"6-64-35":[9.4330472946167,23.723125457763672],"6-64-36":[10.6225004196167,24.943750381469727],"6-64-37":[12.539687156677246,29.776874542236328],"6-64-38":[14.73900032043457,33.256778717041016],"6-64-39":[16.290000915527344,40.916873931884766],"6-64-40":[19.975000381469727,44.484649658203125],"6-64-41":[19.975000381469727,48.025936126708984],"6-64-42":[20.903282165527344,49.2678337097168],"6-64-43":[20.232500076293945,48.268436431884766],"6-64-44":[16.760000228881836,40.94499969482422],"6-64-45":[16.760000228881836,37.170936584472656],"6-64-46":[18.631458282470703,43.84177780151367],"6-64-47":[20.078125,44.44499969482422],"6-64-48":[21.173280715942383,45.848751068115234],"6-64-49":[22.3331241607666,51.900001525878906],"6-64-50":[24.993906021118164,54.928924560546875],"6-64-51":[23.667499542236328,55.35695266723633],"6-64-52":[17.254844665527344,48.099998474121094],"6-64-53":[13.734774589538574,33.437068939208984],"6-64-54":[13.391037940979004,34.0036735534668],"6-64-55":[11.028205871582031,33.963340759277344],"6-64-56":[10.257916450500488,28.86248016357422],"6-64-57":[11.815800666809082,2706.601318359375],"6-64-58":[6.297941207885742,2970.023193359375],"6-64-59":[-4.160420894622803,2947.11865234375],"6-64-60":[-10.222746849060059,2543.75],"6-64-61":[-15.140000343322754,2526.15869140625],"6-64-62":[-22.787797927856445,2618.027099609375],"6-64-63":[-29.530500411987305,2752.446533203125],"6-65-0":[13.609999656677246,37.805625915527344],"6-65-1":[19.760000228881836,53.087501525878906],"5-32-0":[13.609999656677246,53.58000183105469],"6-65-2":[26.312000274658203,62.45035171508789],"6-65-3":[31.012332916259766,77.0999984741211],"5-32-1":[26.312000274658203,77.0999984741211],"6-65-4":[38.1875,84.79792785644531],"6-65-5":[42.64656066894531,95.65531158447266],"5-32-2":[36.86333465576172,96.98999786376953],"6-65-6":[44.99580383300781,96.87601470947266],"6-65-7":[43.49456024169922,94.69757843017578],"5-32-3":[43.49456024169922,101.28250122070312],"6-65-8":[42.80005645751953,94.17312622070312],"6-65-9":[35.63236999511719,935.71484375],"5-32-4":[35.63236999511719,935.71484375],"6-65-10":[20.82847023010254,1428.2213134765625],"6-65-11":[40.95017623901367,136.29981994628906],"5-32-5":[20.82847023010254,1428.2213134765625],"6-65-12":[36.371280670166016,88.76156616210938],"6-65-13":[-46.65290451049805,286.3205871582031],"5-32-6":[-46.65290451049805,320.13458251953125],"6-65-14":[-132.67787170410156,643.3136596679688],"6-65-15":[137.99505615234375,2274.23681640625],"5-32-7":[-132.67787170410156,2274.23681640625],"6-65-16":[38.054176330566406,2373.307861328125],"6-65-17":[38.960296630859375,1377.7242431640625],"5-32-8":[36.390445709228516,3439.26513671875],"6-65-18":[41.703651428222656,1623.5625],"6-65-19":[89.48381042480469,2161.9892578125],"5-32-9":[41.703651428222656,2161.9892578125],"6-65-20":[100.21405029296875,941.4568481445312],"6-65-21":[185.699951171875,739.3894653320312],"5-32-10":[100.21405029296875,1993.837158203125],"6-65-22":[257.4659423828125,1758.113037109375],"6-65-23":[380.48004150390625,2914.1796875],"5-32-11":[138.19180297851562,2914.1796875],"6-65-24":[426.07708740234375,1308.0146484375],"6-65-25":[280.091064453125,733.0252075195312],"5-32-12":[276.6943664550781,1308.0146484375],"6-65-26":[222.1928253173828,683.01123046875],"6-65-27":[143.28521728515625,527.9813232421875],"5-32-13":[143.28521728515625,683.01123046875],"6-65-28":[62.64746856689453,650.850341796875],"6-65-29":[-15.658533096313477,1095.6048583984375],"5-32-14":[-17.90817642211914,1095.6048583984375],"6-65-30":[-13.74268627166748,66.61552429199219],"6-65-31":[14.48812484741211,33.893123626708984],"5-32-15":[-13.74268627166748,66.61552429199219],"6-65-32":[-19.137874603271484,391.8760070800781],"6-65-33":[8.663408279418945,29.841815948486328],"5-32-16":[-19.137874603271484,391.8760070800781],"6-65-34":[8.351897239685059,21.96468734741211],"6-65-35":[8.944999694824219,22.600000381469727],"5-32-17":[8.351897239685059,33.220001220703125],"6-65-36":[10.6225004196167,25.970937728881836],"6-65-37":[12.585624694824219,30.780000686645508],"5-32-18":[10.6225004196167,30.780000686645508],"6-65-38":[14.938750267028809,37.694374084472656],"6-65-39":[17.157499313354492,49.900001525878906],"5-32-19":[14.73900032043457,49.900001525878906],"6-65-40":[20.877500534057617,54.90625],"6-65-41":[22.640625,55.997501373291016],"5-32-20":[19.975000381469727,55.997501373291016],"6-65-42":[22.519296646118164,51.02652359008789],"6-65-43":[20.232500076293945,46.190467834472656],"5-32-21":[20.232500076293945,51.02652359008789],"6-65-44":[17.996875762939453,42.5099983215332],"6-65-45":[17.847124099731445,41.98062515258789],"5-32-22":[16.760000228881836,42.5099983215332],"6-65-46":[18.631458282470703,42.471248626708984],"6-65-47":[19.735000610351562,46.0625],"5-32-23":[18.631458282470703,46.0625],"6-65-48":[21.173280715942383,46.39437484741211],"6-65-49":[22.3331241607666,50.9743766784668],"5-32-24":[21.173280715942383,51.900001525878906],"6-65-50":[24.641407012939453,53.794647216796875],"6-65-51":[11.851372718811035,778.8563842773438],"5-32-25":[11.851372718811035,778.8563842773438],"6-65-52":[17.24250030517578,47.7087516784668],"6-65-53":[14.74984359741211,34.747501373291016],"5-32-26":[13.734774589538574,48.099998474121094],"6-65-54":[14.81624984741211,35.366329193115234],"6-65-55":[11.992500305175781,34.41259765625],"5-32-27":[11.028205871582031,35.366329193115234],"6-65-56":[10.653124809265137,29.788124084472656],"6-65-57":[13.901719093322754,3054.901611328125],"5-32-28":[10.257916450500488,3054.901611328125],"6-65-58":[2706.601318359375,3100.955078125],"6-65-59":[2543.75,3103.702392578125],"5-32-29":[-4.160420894622803,3103.702392578125],"6-65-60":[2255.434326171875,2692.56494140625],"6-65-61":[2248.982421875,2548.445068359375],"5-32-30":[-15.140000343322754,2692.56494140625],"6-65-62":[2526.15869140625,2639.219482421875],"6-65-63":[-29.53066635131836,2753.438720703125],"5-32-31":[-29.53066635131836,2753.438720703125],"6-66-0":[13.609999656677246,37.8224983215332],"6-66-1":[19.788124084472656,52.1349983215332],"6-66-2":[25.646249771118164,63.09193420410156],"6-66-3":[31.054203033447266,77.41999816894531],"6-66-4":[38.55066680908203,84.65249633789062],"6-66-5":[41.57437515258789,92.57357025146484],"6-66-6":[43.18281173706055,93.0999984741211],"6-66-7":[40.627498626708984,90.0815658569336],"6-66-8":[40.54776382446289,87.07499694824219],"6-66-9":[20.943635940551758,2049.001953125],"6-66-10":[19.292827606201172,2462.5283203125],"6-66-11":[4.236361503601074,1233.3709716796875],"6-66-12":[30.987659454345703,116.99364471435547],"6-66-13":[-180.5344696044922,876.354736328125],"6-66-14":[90.73540496826172,1537.525390625],"6-66-15":[147.78536987304688,4840.896484375],"6-66-16":[39.2318229675293,4069.341552734375],"6-66-17":[43.904998779296875,838.4733276367188],"6-66-18":[39.99685287475586,1553.7706298828125],"6-66-19":[-16.367427825927734,2250.355712890625],"6-66-20":[30.287790298461914,336.7509460449219],"6-66-21":[186.56759643554688,611.020751953125],"6-66-22":[377.14691162109375,1857.81591796875],"6-66-23":[773.4960327148438,2746.393310546875],"6-66-24":[408.8160095214844,1769.8695068359375],"6-66-25":[324.43267822265625,1672.9239501953125],"6-66-26":[317.1329040527344,774.7885131835938],"6-66-27":[281.3623046875,874.423828125],"6-66-28":[46.87838363647461,1294.9075927734375],"6-66-29":[5.320474624633789,816.3525390625],"6-66-30":[-26.98060417175293,431.072509765625],"6-66-31":[-28.021018981933594,2007.4483642578125],"6-66-32":[7.572500228881836,607.8590698242188],"6-66-33":[6.066562652587891,24.354921340942383],"6-66-34":[7.096963882446289,17.297500610351562],"6-66-35":[8.795624732971191,26.3643741607666],"6-66-36":[11.613166809082031,28.972421646118164],"6-66-37":[13.109999656677246,31.908437728881836],"6-66-38":[15.696271896362305,39.674747467041016],"6-66-39":[19.551250457763672,50.82374954223633],"6-66-40":[22.637500762939453,56.49708938598633],"6-66-41":[24.023828506469727,57.1223030090332],"6-66-42":[22.80500030517578,49.958126068115234],"6-66-43":[22.80500030517578,49.10429763793945],"6-66-44":[20.77375030517578,46.163143157958984],"6-66-45":[20.77375030517578,46.34117126464844],"6-66-46":[21.39875030517578,48.194862365722656],"6-66-47":[21.39875030517578,49.672149658203125],"6-66-48":[23.35124969482422,51.873748779296875],"6-66-49":[23.35124969482422,52.2502326965332],"6-66-50":[25.436250686645508,54.240665435791016],"6-66-51":[21.38249969482422,55.200313568115234],"6-66-52":[17.565000534057617,44.13999938964844],"6-66-53":[17.565000534057617,39.217498779296875],"6-66-54":[17.078125,39.217498779296875],"6-66-55":[14.682374954223633,33.834999084472656],"6-66-56":[12.76515007019043,30.473203659057617],"6-66-57":[13.304374694824219,3138.56005859375],"6-66-58":[3003.044677734375,3267.041259765625],"6-66-59":[2692.56494140625,3207.211181640625],"6-66-60":[2381.28759765625,2800.267578125],"6-66-61":[2355.208984375,2565.61376953125],"6-66-62":[2548.445068359375,2666.141357421875],"6-66-63":[-29.530834197998047,2755.430908203125],"6-67-0":[13.609999656677246,37.782501220703125],"6-67-1":[19.71500015258789,51.223751068115234],"5-33-0":[13.609999656677246,52.1349983215332],"6-67-2":[25.625499725341797,63.15980529785156],"6-67-3":[30.337499618530273,786.2189331054688],"5-33-1":[25.625499725341797,786.2189331054688],"4-16-0":[13.609999656677246,786.2189331054688],"6-67-4":[37.26300048828125,946.447509765625],"6-67-5":[39.532501220703125,88.34062194824219],"5-33-2":[37.26300048828125,946.447509765625],"6-67-6":[40.8224983215332,88.49087524414062],"6-67-7":[39.27996063232422,85.49298858642578],"5-33-3":[39.27996063232422,93.0999984741211],"4-16-1":[36.86333465576172,946.447509765625],"6-67-8":[31.584196090698242,197.74993896484375],"6-67-9":[20.721492767333984,2315.182861328125],"5-33-4":[20.721492767333984,2315.182861328125],"6-67-10":[28.834814071655273,2472.3505859375],"6-67-11":[32.50333786010742,847.7908325195312],"5-33-5":[4.236361503601074,2472.3505859375],"4-16-2":[4.236361503601074,2472.3505859375],"6-67-12":[-50.519386291503906,217.6855010986328],"6-67-13":[33.14527893066406,1186.2093505859375],"5-33-6":[-180.5344696044922,1186.2093505859375],"6-67-14":[128.8147430419922,1069.9283447265625],"6-67-15":[40.08847427368164,4029.259033203125],"5-33-7":[40.08847427368164,4840.896484375],"4-16-3":[-180.5344696044922,4840.896484375],"6-67-16":[38.15068054199219,2694.009765625],"6-67-17":[43.45500183105469,2374.3759765625],"5-33-8":[38.15068054199219,4069.341552734375],"6-67-18":[34.10542297363281,1143.740966796875],"6-67-19":[27.14674949645996,1413.2965087890625],"5-33-9":[-16.367427825927734,2250.355712890625],"4-16-4":[-16.367427825927734,4069.341552734375],"6-67-20":[23.529146194458008,728.4649658203125],"6-67-21":[219.62428283691406,762.9684448242188],"5-33-10":[23.529146194458008,762.9684448242188],"6-67-22":[420.92578125,1483.5916748046875],"6-67-23":[607.7343139648438,1924.89453125],"5-33-11":[377.14691162109375,2746.393310546875],"4-16-5":[23.529146194458008,2914.1796875],"6-67-24":[396.41357421875,1977.285888671875],"6-67-25":[374.5256042480469,2023.8218994140625],"5-33-12":[324.43267822265625,2023.8218994140625],"6-67-26":[327.6443176269531,714.8829345703125],"6-67-27":[323.670654296875,784.4395141601562],"5-33-13":[281.3623046875,874.423828125],"4-16-6":[143.28521728515625,2023.8218994140625],"6-67-28":[100.15664672851562,1784.9505615234375],"6-67-29":[31.381372451782227,3028.3876953125],"5-33-14":[5.320474624633789,3028.3876953125],"6-67-30":[-10.875025749206543,4049.42578125],"6-67-31":[-22.216703414916992,1231.4781494140625],"5-33-15":[-28.021018981933594,4049.42578125],"4-16-7":[-28.021018981933594,4049.42578125],"6-67-32":[-63.61603927612305,953.432373046875],"6-67-33":[-6.597724914550781,932.4388427734375],"5-33-16":[-63.61603927612305,953.432373046875],"6-67-34":[7.15500020980835,22.91390609741211],"6-67-35":[9.038125038146973,31.459999084472656],"5-33-17":[7.096963882446289,31.459999084472656],"4-16-8":[-63.61603927612305,953.432373046875],"6-67-36":[13.462499618530273,35.42499923706055],"6-67-37":[14.74291706085205,42.08656311035156],"5-33-18":[11.613166809082031,42.08656311035156],"6-67-38":[16.096250534057617,47],"6-67-39":[20.85124969482422,47.730857849121094],"5-33-19":[15.696271896362305,50.82374954223633],"4-16-9":[10.6225004196167,50.82374954223633],"6-67-40":[22.309999465942383,48.494998931884766],"6-67-41":[23.960800170898438,51.59000015258789],"5-33-20":[22.309999465942383,57.1223030090332],"6-67-42":[24.801250457763672,52.65367126464844],"6-67-43":[23.022499084472656,51.41062545776367],"5-33-21":[22.80500030517578,52.65367126464844],"4-16-10":[19.975000381469727,57.1223030090332],"6-67-44":[22.698593139648438,50.40999984741211],"6-67-45":[22.330957412719727,50.4900016784668],"5-33-22":[20.77375030517578,50.4900016784668],"6-67-46":[22.352500915527344,53.741249084472656],"6-67-47":[24.227344512939453,55.20249938964844],"5-33-23":[21.39875030517578,55.20249938964844],"4-16-11":[16.760000228881836,55.20249938964844],"6-67-48":[24.66960906982422,54.20017623901367],"6-67-49":[23.853208541870117,53.650001525878906],"5-33-24":[23.35124969482422,54.20017623901367],"6-67-50":[25.436250686645508,58.27937316894531],"6-67-51":[21.38249969482422,55.275001525878906],"5-33-25":[21.38249969482422,58.27937316894531],"4-16-12":[11.851372718811035,778.8563842773438],"6-67-52":[18.430625915527344,43.34000015258789],"6-67-53":[18.430625915527344,44.36000061035156],"5-33-26":[17.565000534057617,44.36000061035156],"6-67-54":[17.078125,44.31999969482422],"6-67-55":[14.725000381469727,36.0993766784668],"5-33-27":[14.682374954223633,44.31999969482422],"4-16-13":[11.028205871582031,48.099998474121094],"6-67-56":[12.671875,32.068748474121094],"6-67-57":[11.970600128173828,3175.5009765625],"5-33-28":[11.970600128173828,3175.5009765625],"6-67-58":[3138.56005859375,3414.14990234375],"6-67-59":[2800.267578125,3300.152587890625],"5-33-29":[2692.56494140625,3414.14990234375],"4-16-14":[-4.160420894622803,3414.14990234375],"6-67-60":[2458.67431640625,2920.72998046875],"6-67-61":[2439.798583984375,2579.64501953125],"5-33-30":[2355.208984375,2920.72998046875],"6-67-62":[2565.61376953125,2681.467529296875],"6-67-63":[-29.5310001373291,2759.369384765625],"5-33-31":[-29.5310001373291,2759.369384765625],"4-16-15":[-29.5310001373291,2920.72998046875],"6-68-0":[13.609999656677246,37.68562316894531],"6-68-1":[19.579374313354492,50.900001525878906],"6-68-2":[25.25,62.295623779296875],"6-68-3":[29.49625015258789,1385.6441650390625],"6-68-4":[33.18152618408203,1035.7216796875],"6-68-5":[38.9900016784668,85.08000183105469],"6-68-6":[39.154998779296875,85.08000183105469],"6-68-7":[15.059297561645508,1058.537353515625],"6-68-8":[9.739541053771973,1750.9786376953125],"6-68-9":[19.45448112487793,1810.164794921875],"6-68-10":[36.637939453125,1715.3262939453125],"6-68-11":[31.964374542236328,400.6411437988281],"6-68-12":[-23.10869598388672,248.19332885742188],"6-68-13":[-7.781350135803223,988.4624633789062],"6-68-14":[94.57923126220703,1845.8333740234375],"6-68-15":[33.771217346191406,3777.166259765625],"6-68-16":[31.24575424194336,2893.679443359375],"6-68-17":[26.501718521118164,2503.261962890625],"6-68-18":[-23.3113956451416,2005.147216796875],"6-68-19":[31.767499923706055,209.5533447265625],"6-68-20":[27.577566146850586,965.2254638671875],"6-68-21":[218.906982421875,1068.727294921875],"6-68-22":[308.0438232421875,1178.6671142578125],"6-68-23":[533.6177368164062,1310.680419921875],"6-68-24":[378.5033264160156,1156.0885009765625],"6-68-25":[344.8374328613281,602.1047973632812],"6-68-26":[267.0752868652344,715.3884887695312],"6-68-27":[261.2430725097656,609.8646850585938],"6-68-28":[128.6457977294922,1857.583984375],"6-68-29":[216.8602752685547,2461.3837890625],"6-68-30":[390.81732177734375,1585.6212158203125],"6-68-31":[140.91505432128906,1076.930419921875],"6-68-32":[52.66347122192383,1044.6702880859375],"6-68-33":[-17.84096908569336,885.7998657226562],"6-68-34":[-25.076984405517578,923.8004760742188],"6-68-35":[-3.3454296588897705,613.6489868164062],"6-68-36":[-2.047696590423584,2521.1005859375],"6-68-37":[-19.60114097595215,2407.09912109375],"6-68-38":[-21.60890007019043,2094.4501953125],"6-68-39":[-59.487579345703125,1680.34130859375],"6-68-40":[23.139999389648438,60.76972579956055],"6-68-41":[24.247499465942383,62.60818099975586],"6-68-42":[25.7549991607666,60.895565032958984],"6-68-43":[25.7549991607666,56.461387634277344],"6-68-44":[24.764999389648438,52.151248931884766],"6-68-45":[24.764999389648438,57.30792999267578],"6-68-46":[26.028905868530273,57.31378936767578],"6-68-47":[26.764999389648438,56.44626998901367],"6-68-48":[26.263750076293945,55.855857849121094],"6-68-49":[26.263750076293945,59.35625076293945],"6-68-50":[26.82135772705078,62.980506896972656],"6-68-51":[23.625,56.75068283081055],"6-68-52":[20.02750015258789,46.57875061035156],"6-68-53":[20.02750015258789,47.680274963378906],"6-68-54":[18.372499465942383,47.0959358215332],"6-68-55":[15.040708541870117,38.60334014892578],"6-68-56":[12.835000038146973,47.94937515258789],"6-68-57":[11.404767036437988,3169.804931640625],"6-68-58":[3108.398681640625,3460.3544921875],"6-68-59":[2920.72998046875,3384.39501953125],"6-68-60":[2494.4599609375,3077.237548828125],"6-68-61":[2482.5390625,2588.550048828125],"6-68-62":[2579.64501953125,2693.7275390625],"6-68-63":[-29.531166076660156,2763.352783203125],"6-69-0":[13.609999656677246,37.43017578125],"6-69-1":[19.40250015258789,50.43718719482422],"5-34-0":[13.609999656677246,50.900001525878906],"6-69-2":[25.038665771484375,60.0222282409668],"6-69-3":[29.147499084472656,1634.294921875],"5-34-1":[25.038665771484375,1634.294921875],"6-69-4":[31.423084259033203,1233.1607666015625],"6-69-5":[35.1150016784668,82.69841766357422],"5-34-2":[31.423084259033203,1233.1607666015625],"6-69-6":[35.2653923034668,81.81336212158203],"6-69-7":[6.639206886291504,1592.634765625],"5-34-3":[6.639206886291504,1592.634765625],"6-69-8":[4.878176212310791,1958.9747314453125],"6-69-9":[47.040191650390625,1310.4202880859375],"5-34-4":[4.878176212310791,1958.9747314453125],"6-69-10":[25.333702087402344,797.67333984375],"6-69-11":[26.180150985717773,411.96795654296875],"5-34-5":[25.333702087402344,1715.3262939453125],"6-69-12":[19.393564224243164,280.501708984375],"6-69-13":[17.14306640625,1624.8095703125],"5-34-6":[-23.10869598388672,1624.8095703125],"6-69-14":[154.3846893310547,1918.9649658203125],"6-69-15":[39.779197692871094,2548.5859375],"5-34-7":[33.771217346191406,3777.166259765625],"6-69-16":[16.478599548339844,1992.8487548828125],"6-69-17":[37.95524597167969,2820.35400390625],"5-34-8":[16.478599548339844,2893.679443359375],"6-69-18":[29.132110595703125,3340.966796875],"6-69-19":[28.620553970336914,288.6690368652344],"5-34-9":[-23.3113956451416,3340.966796875],"6-69-20":[9.013053894042969,392.9414978027344],"6-69-21":[69.58488464355469,877.1011962890625],"5-34-10":[9.013053894042969,1068.727294921875],"6-69-22":[310.3897399902344,889.9554443359375],"6-69-23":[406.1775817871094,1202.4154052734375],"5-34-11":[308.0438232421875,1310.680419921875],"6-69-24":[27.247848510742188,3331.161865234375],"6-69-25":[184.00927734375,849.9962158203125],"5-34-12":[27.247848510742188,3331.161865234375],"6-69-26":[148.07437133789062,439.6126403808594],"6-69-27":[260.5954284667969,551.364501953125],"5-34-13":[148.07437133789062,715.3884887695312],"6-69-28":[213.54217529296875,1124.78759765625],"6-69-29":[275.1274719238281,1747.9337158203125],"5-34-14":[128.6457977294922,2461.3837890625],"6-69-30":[354.2816162109375,1070.43603515625],"6-69-31":[276.4906921386719,830.1593627929688],"5-34-15":[140.91505432128906,1585.6212158203125],"6-69-32":[252.96107482910156,879.8086547851562],"6-69-33":[167.87599182128906,929.3990478515625],"5-34-16":[-17.84096908569336,1044.6702880859375],"6-69-34":[256.145751953125,1488.195068359375],"6-69-35":[12.555623054504395,2127.15185546875],"5-34-17":[-25.076984405517578,2127.15185546875],"6-69-36":[166.21409606933594,2639.3017578125],"6-69-37":[859.2269287109375,2023.492919921875],"5-34-18":[-19.60114097595215,2639.3017578125],"6-69-38":[730.146240234375,1749.2393798828125],"6-69-39":[10.848285675048828,2585.58544921875],"5-34-19":[-59.487579345703125,2585.58544921875],"6-69-40":[-162.30459594726562,2386.256591796875],"6-69-41":[-159.8747100830078,2015.6773681640625],"5-34-20":[-162.30459594726562,2386.256591796875],"6-69-42":[18.983673095703125,704.8265380859375],"6-69-43":[26.094999313354492,62.29021072387695],"5-34-21":[18.983673095703125,704.8265380859375],"6-69-44":[25.43132781982422,58.470001220703125],"6-69-45":[25.828125,55.16999816894531],"5-34-22":[24.764999389648438,58.470001220703125],"6-69-46":[26.028905868530273,58.48234558105469],"6-69-47":[27.553203582763672,60.0993766784668],"5-34-23":[26.028905868530273,60.0993766784668],"6-69-48":[27.02898406982422,60.60874938964844],"6-69-49":[27.998125076293945,64.19499969482422],"5-34-24":[26.263750076293945,64.19499969482422],"6-69-50":[29.221250534057617,67.44750213623047],"6-69-51":[23.625,62.145938873291016],"5-34-25":[23.625,67.44750213623047],"6-69-52":[21.629688262939453,53.09000015258789],"6-69-53":[22.44499969482422,49.64250183105469],"5-34-26":[20.02750015258789,53.09000015258789],"6-69-54":[19.27375030517578,47.75593566894531],"6-69-55":[15.242500305175781,39.43359375],"5-34-27":[15.040708541870117,47.75593566894531],"6-69-56":[14.467041969299316,300.1435852050781],"6-69-57":[14.892499923706055,3108.398681640625],"5-34-28":[11.404767036437988,3169.804931640625],"6-69-58":[3052.070068359375,3514.255859375],"6-69-59":[3077.237548828125,3446.21875],"5-34-29":[2920.72998046875,3514.255859375],"6-69-60":[2544.201171875,3147.360107421875],"6-69-61":[2511.132080078125,2608.2900390625],"5-34-30":[2482.5390625,3147.360107421875],"6-69-62":[2588.550048828125,2704.01513671875],"6-69-63":[-29.531333923339844,2767.337158203125],"5-34-31":[-29.531333923339844,2767.337158203125],"6-70-0":[13.609999656677246,37.15312576293945],"6-70-1":[19.2293758392334,49.86000061035156],"6-70-2":[24.520000457763672,56.83156204223633],"6-70-3":[28.603124618530273,1635.7398681640625],"6-70-4":[29.163541793823242,1193.3651123046875],"6-70-5":[30.176408767700195,441.8138122558594],"6-70-6":[29.727157592773438,72.0926284790039],"6-70-7":[12.729230880737305,2122.74169921875],"6-70-8":[199.3977813720703,2096.52197265625],"6-70-9":[20.309301376342773,735.3598022460938],"6-70-10":[18.936601638793945,350.9493103027344],"6-70-11":[-25.106895446777344,119.81227111816406],"6-70-12":[22.143390655517578,358.7109069824219],"6-70-13":[35.60849380493164,462.601318359375],"6-70-14":[142.49136352539062,2057.44287109375],"6-70-15":[100.00666809082031,1043.37353515625],"6-70-16":[27.803903579711914,2489.765625],"6-70-17":[24.67145538330078,2049.005859375],"6-70-18":[22.691173553466797,753.2384033203125],"6-70-19":[22.41114616394043,59.297733306884766],"6-70-20":[23.961936950683594,142.32994079589844],"6-70-21":[-25.036346435546875,490.935546875],"6-70-22":[198.0266876220703,1063.150634765625],"6-70-23":[343.5698547363281,1540.584716796875],"6-70-24":[27.162729263305664,3468.038818359375],"6-70-25":[108.10494995117188,1729.2615966796875],"6-70-26":[121.9186019897461,428.4776306152344],"6-70-27":[274.16326904296875,1624.06396484375],"6-70-28":[322.1063537597656,1063.0797119140625],"6-70-29":[354.64697265625,767.2960205078125],"6-70-30":[305.2978820800781,833.7996215820312],"6-70-31":[254.1812744140625,533.9447021484375],"6-70-32":[223.98583984375,448.9023132324219],"6-70-33":[192.31333923339844,886.2742309570312],"6-70-34":[403.12274169921875,1242.6915283203125],"6-70-35":[605.843505859375,1757.0399169921875],"6-70-36":[1116.783447265625,1831.751953125],"6-70-37":[1104.797119140625,1687.1781005859375],"6-70-38":[1028.6031494140625,2162.833984375],"6-70-39":[1184.9974365234375,2171.423583984375],"6-70-40":[1018.03955078125,2505.715087890625],"6-70-41":[47.8117790222168,2222.394775390625],"6-70-42":[7.61805534362793,1720.5283203125],"6-70-43":[18.253440856933594,2268.66455078125],"6-70-44":[2.1738133430480957,2017.385009765625],"6-70-45":[26.725000381469727,58.30031204223633],"6-70-46":[27.585832595825195,59.456600189208984],"6-70-47":[29.095500946044922,64.50250244140625],"6-70-48":[29.912250518798828,64.56507873535156],"6-70-49":[29.847917556762695,67.1031265258789],"6-70-50":[31.81624984741211,70.72624969482422],"6-70-51":[27.491859436035156,66.4083023071289],"6-70-52":[24.048749923706055,57.381248474121094],"6-70-53":[24.048749923706055,50.75871276855469],"6-70-54":[19.072969436645508,48.8771858215332],"6-70-55":[15.382499694824219,38.04833984375],"6-70-56":[14.005425453186035,268.91046142578125],"6-70-57":[15.569453239440918,3052.070068359375],"6-70-58":[2944.421142578125,3536.77099609375],"6-70-59":[3147.360107421875,3480.289306640625],"6-70-60":[2608.2900390625,3239.324951171875],"6-70-61":[2539.6298828125,2709.22802734375],"6-70-62":[2602.10498046875,2724.908935546875],"6-70-63":[-29.531333923339844,2768.644287109375],"6-71-0":[13.609999656677246,36.759239196777344],"6-71-1":[19.100000381469727,48.9375],"5-35-0":[13.609999656677246,49.86000061035156],"6-71-2":[24.154613494873047,54.0099983215332],"6-71-3":[27.729999542236328,709.8801879882812],"5-35-1":[24.154613494873047,1635.7398681640625],"4-17-0":[13.609999656677246,1635.7398681640625],"6-71-4":[28.011167526245117,684.1887817382812],"6-71-5":[27.24285888671875,62.740936279296875],"5-35-2":[27.24285888671875,1193.3651123046875],"6-71-6":[19.67296028137207,948.289306640625],"6-71-7":[4.843403339385986,1854.1368408203125],"5-35-3":[4.843403339385986,2122.74169921875],"4-17-1":[4.843403339385986,2122.74169921875],"3-8-0":[4.843403339385986,2122.74169921875],"6-71-8":[19.0575008392334,851.7579345703125],"6-71-9":[17.77016258239746,511.553955078125],"5-35-4":[17.77016258239746,2096.52197265625],"6-71-10":[17.317426681518555,158.6826934814453],"6-71-11":[17.94281768798828,214.14988708496094],"5-35-5":[-25.106895446777344,350.9493103027344],"4-17-2":[-25.106895446777344,2096.52197265625],"6-71-12":[11.89322280883789,342.6621398925781],"6-71-13":[80.40325164794922,644.42626953125],"5-35-6":[11.89322280883789,644.42626953125],"6-71-14":[118.41012573242188,2648.44921875],"6-71-15":[68.74269104003906,1842.416259765625],"5-35-7":[68.74269104003906,2648.44921875],"4-17-3":[-23.10869598388672,3777.166259765625],"3-8-1":[-180.5344696044922,4840.896484375],"6-71-16":[65.18314361572266,2700.0234375],"6-71-17":[23.064607620239258,2930.522216796875],"5-35-8":[23.064607620239258,2930.522216796875],"6-71-18":[13.5036039352417,2524.919189453125],"6-71-19":[8.996862411499023,1090.3857421875],"5-35-9":[8.996862411499023,2524.919189453125],"4-17-4":[-23.3113956451416,3340.966796875],"6-71-20":[18.3700008392334,903.8015747070312],"6-71-21":[-31.97802734375,311.9857482910156],"5-35-10":[-31.97802734375,903.8015747070312],"6-71-22":[94.19860076904297,388.13909912109375],"6-71-23":[273.4918518066406,1038.114501953125],"5-35-11":[94.19860076904297,1540.584716796875],"4-17-5":[-31.97802734375,1540.584716796875],"3-8-2":[-31.97802734375,4069.341552734375],"6-71-24":[452.55169677734375,932.8563232421875],"6-71-25":[308.29681396484375,1368.76123046875],"5-35-12":[27.162729263305664,3468.038818359375],"6-71-26":[326.68048095703125,1327.6888427734375],"6-71-27":[373.8379821777344,1212.8369140625],"5-35-13":[121.9186019897461,1624.06396484375],"4-17-6":[27.162729263305664,3468.038818359375],"6-71-28":[371.4044494628906,934.4649658203125],"6-71-29":[382.6241760253906,935.0108032226562],"5-35-14":[322.1063537597656,1063.0797119140625],"6-71-30":[291.3446960449219,761.7289428710938],"6-71-31":[282.2857666015625,549.056396484375],"5-35-15":[254.1812744140625,833.7996215820312],"4-17-7":[128.6457977294922,2461.3837890625],"3-8-3":[-28.021018981933594,4049.42578125],"6-71-32":[271.349365234375,592.49365234375],"6-71-33":[253.50621032714844,758.0873413085938],"5-35-16":[192.31333923339844,886.2742309570312],"6-71-34":[404.1356201171875,1099.2406005859375],"6-71-35":[753.1700439453125,1385.3482666015625],"5-35-17":[403.12274169921875,1757.0399169921875],"4-17-8":[-25.076984405517578,2127.15185546875],"6-71-36":[1050.7860107421875,1507.7322998046875],"6-71-37":[1011.5501708984375,1380.2471923828125],"5-35-18":[1011.5501708984375,1831.751953125],"6-71-38":[960.556884765625,1371.6513671875],"6-71-39":[940.6723022460938,1497.558837890625],"5-35-19":[940.6723022460938,2171.423583984375],"4-17-9":[-59.487579345703125,2639.3017578125],"3-8-4":[-63.61603927612305,2639.3017578125],"6-71-40":[991.8734741210938,1399.3734130859375],"6-71-41":[722.2374267578125,1582.98974609375],"5-35-20":[47.8117790222168,2505.715087890625],"6-71-42":[427.66436767578125,1667.488037109375],"6-71-43":[142.44491577148438,2341.8076171875],"5-35-21":[7.61805534362793,2341.8076171875],"4-17-10":[-162.30459594726562,2505.715087890625],"6-71-44":[-5.93008279800415,1732.6717529296875],"6-71-45":[27.220041275024414,59.8337516784668],"5-35-22":[-5.93008279800415,2017.385009765625],"6-71-46":[29.170625686645508,63.234375],"6-71-47":[30.142499923706055,66.9000015258789],"5-35-23":[27.585832595825195,66.9000015258789],"4-17-11":[-5.93008279800415,2017.385009765625],"3-8-5":[-162.30459594726562,2505.715087890625],"6-71-48":[31.75749969482422,66.9000015258789],"6-71-49":[32.114376068115234,69.55999755859375],"5-35-24":[29.847917556762695,69.55999755859375],"6-71-50":[33.709999084472656,73.56749725341797],"6-71-51":[28.80500030517578,72.29750061035156],"5-35-25":[27.491859436035156,73.56749725341797],"4-17-12":[23.625,73.56749725341797],"6-71-52":[25.576250076293945,60.84000015258789],"6-71-53":[24.428749084472656,53.166873931884766],"5-35-26":[24.048749923706055,60.84000015258789],"6-71-54":[19.18328094482422,48.84000015258789],"6-71-55":[15.382499694824219,38.11375045776367],"5-35-27":[15.382499694824219,48.8771858215332],"4-17-13":[15.040708541870117,60.84000015258789],"3-8-6":[11.028205871582031,778.8563842773438],"6-71-56":[14.98495864868164,187.96249389648438],"6-71-57":[15.793749809265137,2944.421142578125],"5-35-28":[14.005425453186035,3052.070068359375],"6-71-58":[2840.084716796875,3600.92333984375],"6-71-59":[3239.324951171875,3598.469970703125],"5-35-29":[2840.084716796875,3600.92333984375],"4-17-14":[11.404767036437988,3600.92333984375],"6-71-60":[2709.22802734375,3295.320068359375],"6-71-61":[2568.241943359375,2810.95751953125],"5-35-30":[2539.6298828125,3295.320068359375],"6-71-62":[2621.330078125,2751.917236328125],"6-71-63":[-29.5314998626709,2771.319091796875],"5-35-31":[-29.5314998626709,2771.319091796875],"4-17-15":[-29.5314998626709,3295.320068359375],"3-8-7":[-29.5314998626709,3600.92333984375],"6-72-0":[13.609999656677246,36.48062515258789],"6-72-1":[19.014999389648438,48.13999938964844],"6-72-2":[23.604875564575195,52.846248626708984],"6-72-3":[25.147499084472656,753.1624755859375],"6-72-4":[25.05437469482422,528.0713500976562],"6-72-5":[22.703750610351562,56.97062683105469],"6-72-6":[22.557579040527344,1086.57470703125],"6-72-7":[21.136947631835938,1167.11767578125],"6-72-8":[17.66149139404297,435.2364807128906],"6-72-9":[17.523351669311523,286.6453552246094],"6-72-10":[15.174811363220215,241.91282653808594],"6-72-11":[12.202834129333496,275.1282043457031],"6-72-12":[29.06003189086914,318.5590515136719],"6-72-13":[28.384414672851562,382.73541259765625],"6-72-14":[135.43734741210938,1998.1148681640625],"6-72-15":[147.15101623535156,2540.911376953125],"6-72-16":[49.82748794555664,2847.5615234375],"6-72-17":[30.855205535888672,2950.980712890625],"6-72-18":[21.062259674072266,2427.615234375],"6-72-19":[7.762499809265137,2464.2265625],"6-72-20":[7.731078624725342,425.5946044921875],"6-72-21":[-11.657929420471191,284.93341064453125],"6-72-22":[88.27754974365234,639.162109375],"6-72-23":[289.9853515625,1107.429931640625],"6-72-24":[470.56121826171875,1912.85009765625],"6-72-25":[498.02392578125,1340.7694091796875],"6-72-26":[593.5655517578125,1710.6942138671875],"6-72-27":[454.3244934082031,3017.51123046875],"6-72-28":[444.142822265625,1371.3599853515625],"6-72-29":[477.2939758300781,1047.823974609375],"6-72-30":[352.3892822265625,768.8858642578125],"6-72-31":[319.72235107421875,630.5152587890625],"6-72-32":[322.0748291015625,733.6262817382812],"6-72-33":[332.5413818359375,807.6490478515625],"6-72-34":[430.5401916503906,1119.4578857421875],"6-72-35":[723.9613037109375,1534.3062744140625],"6-72-36":[1022.2809448242188,1643.4080810546875],"6-72-37":[961.733642578125,1249.497802734375],"6-72-38":[916.8944091796875,1116.912841796875],"6-72-39":[892.5455322265625,1255.2542724609375],"6-72-40":[958.5137939453125,1498.7823486328125],"6-72-41":[975.8270874023438,1901.599609375],"6-72-42":[928.720458984375,1783.144287109375],"6-72-43":[77.74161529541016,2501.83935546875],"6-72-44":[12.699691772460938,1649.0194091796875],"6-72-45":[28.004484176635742,66.26531219482422],"6-72-46":[29.827167510986328,70.2455825805664],"6-72-47":[32.16749954223633,68.23217010498047],"6-72-48":[32.4527702331543,66.92375183105469],"6-72-49":[32.505001068115234,71.4046859741211],"6-72-50":[34.783668518066406,76.34664154052734],"6-72-51":[30.329999923706055,73.60181427001953],"6-72-52":[26.604999542236328,61.35625076293945],"6-72-53":[24.541250228881836,54.429317474365234],"6-72-54":[19.540000915527344,49.248748779296875],"6-72-55":[15.457708358764648,38.714298248291016],"6-72-56":[15.317436218261719,41.79246139526367],"6-72-57":[21.912500381469727,3236.802490234375],"6-72-58":[2872.27490234375,3666.268798828125],"6-72-59":[3295.320068359375,3666.268798828125],"6-72-60":[2810.95751953125,3378.922607421875],"6-72-61":[2625.947509765625,2968.063720703125],"6-72-62":[2649.64990234375,2779.143310546875],"6-72-63":[-29.531665802001953,2774.304931640625],"6-73-0":[13.609999656677246,36.20000076293945],"6-73-1":[18.977500915527344,47.60749816894531],"5-36-0":[13.609999656677246,48.13999938964844],"6-73-2":[22.992408752441406,49.567012786865234],"6-73-3":[23.45421600341797,674.0393676757812],"5-36-1":[22.992408752441406,753.1624755859375],"6-73-4":[23.041250228881836,204.97108459472656],"6-73-5":[22.009897232055664,51.04728698730469],"5-36-2":[22.009897232055664,528.0713500976562],"6-73-6":[18.61275863647461,696.5953979492188],"6-73-7":[22.394514083862305,1083.5570068359375],"5-36-3":[18.61275863647461,1167.11767578125],"6-73-8":[17.695571899414062,559.1198120117188],"6-73-9":[46.96871566772461,398.5994873046875],"5-36-4":[17.523351669311523,559.1198120117188],"6-73-10":[10.30447006225586,258.0596008300781],"6-73-11":[18.422388076782227,338.69512939453125],"5-36-5":[10.30447006225586,338.69512939453125],"6-73-12":[21.076793670654297,371.6467590332031],"6-73-13":[119.02493286132812,309.6332092285156],"5-36-6":[21.076793670654297,382.73541259765625],"6-73-14":[82.56687927246094,1369.7589111328125],"6-73-15":[13.616247177124023,2520.585693359375],"5-36-7":[13.616247177124023,2540.911376953125],"6-73-16":[28.54277992248535,1559.7530517578125],"6-73-17":[28.773820877075195,1798.34716796875],"5-36-8":[28.54277992248535,2950.980712890625],"6-73-18":[23.188749313354492,2185.733154296875],"6-73-19":[-52.98889923095703,2137.495361328125],"5-36-9":[-52.98889923095703,2464.2265625],"6-73-20":[1.3053125143051147,266.0587158203125],"6-73-21":[-117.55912780761719,282.9302673339844],"5-36-10":[-117.55912780761719,425.5946044921875],"6-73-22":[27.75735092163086,574.3427124023438],"6-73-23":[275.3021545410156,1131.973876953125],"5-36-11":[27.75735092163086,1131.973876953125],"6-73-24":[280.0955505371094,1082.011474609375],"6-73-25":[366.2447814941406,841.2550659179688],"5-36-12":[280.0955505371094,1912.85009765625],"6-73-26":[428.4599609375,2020.8809814453125],"6-73-27":[423.73046875,1156.645263671875],"5-36-13":[423.73046875,3017.51123046875],"6-73-28":[386.9683532714844,960.0308837890625],"6-73-29":[394.8827819824219,977.6113891601562],"5-36-14":[386.9683532714844,1371.3599853515625],"6-73-30":[497.3334655761719,946.031005859375],"6-73-31":[366.8795166015625,1103.1630859375],"5-36-15":[319.72235107421875,1103.1630859375],"6-73-32":[379.78582763671875,1540.3837890625],"6-73-33":[413.2900085449219,1685.2509765625],"5-36-16":[322.0748291015625,1685.2509765625],"6-73-34":[504.5543212890625,1701.659423828125],"6-73-35":[515.1812744140625,1902.7041015625],"5-36-17":[430.5401916503906,1902.7041015625],"6-73-36":[935.2384643554688,1683.009765625],"6-73-37":[473.44775390625,1546.4249267578125],"5-36-18":[473.44775390625,1683.009765625],"6-73-38":[414.3267822265625,1440.15869140625],"6-73-39":[758.7850952148438,1496.98779296875],"5-36-19":[414.3267822265625,1496.98779296875],"6-73-40":[770.5770874023438,2110.33447265625],"6-73-41":[993.8888549804688,1898.2701416015625],"5-36-20":[770.5770874023438,2110.33447265625],"6-73-42":[1210.08984375,3126.8798828125],"6-73-43":[4.710208415985107,2790.10888671875],"5-36-21":[4.710208415985107,3126.8798828125],"6-73-44":[11.680817604064941,321.0530700683594],"6-73-45":[28.820234298706055,68.51875305175781],"5-36-22":[11.680817604064941,1649.0194091796875],"6-73-46":[33.0490837097168,71.8505859375],"6-73-47":[33.10840606689453,68.83296966552734],"5-36-23":[29.827167510986328,71.8505859375],"6-73-48":[32.88833236694336,69.44844055175781],"6-73-49":[33.330623626708984,74.63343811035156],"5-36-24":[32.4527702331543,74.63343811035156],"6-73-50":[35.38687515258789,76.54984283447266],"6-73-51":[30.59000015258789,74.12984466552734],"5-36-25":[30.329999923706055,76.54984283447266],"6-73-52":[27.6825008392334,63.58000183105469],"6-73-53":[24.541250228881836,58.27687454223633],"5-36-26":[24.541250228881836,63.58000183105469],"6-73-54":[20.077499389648438,51.53499984741211],"6-73-55":[15.990708351135254,40.57093811035156],"5-36-27":[15.457708358764648,51.53499984741211],"6-73-56":[15.992500305175781,41.87742233276367],"6-73-57":[19.59375,3236.802490234375],"5-36-28":[15.317436218261719,3236.802490234375],"6-73-58":[2976.864990234375,3671.283447265625],"6-73-59":[3378.922607421875,3685.986083984375],"5-36-29":[2872.27490234375,3685.986083984375],"6-73-60":[2968.063720703125,3441.199951171875],"6-73-61":[2691.686279296875,3024.00634765625],"5-36-30":[2625.947509765625,3441.199951171875],"6-73-62":[2691.686279296875,2818.113037109375],"6-73-63":[-29.53183364868164,2780.485107421875],"5-36-31":[-29.53183364868164,2818.113037109375],"6-74-0":[13.609999656677246,36.06312561035156],"6-74-1":[18.96062469482422,46.85562515258789],"6-74-2":[22.035938262939453,46.99625015258789],"6-74-3":[20.969999313354492,289.50048828125],"6-74-4":[19.8485164642334,46.65999984741211],"6-74-5":[17.556249618530273,45.7421875],"6-74-6":[11.97379207611084,739.6786499023438],"6-74-7":[14.652543067932129,736.8433227539062],"6-74-8":[-6.697631359100342,3219.229248046875],"6-74-9":[-7.697969913482666,401.89276123046875],"6-74-10":[-74.05023193359375,523.3490600585938],"6-74-11":[30.863542556762695,314.2758483886719],"6-74-12":[121.32876586914062,307.6301574707031],"6-74-13":[94.68948364257812,347.0857238769531],"6-74-14":[53.31065368652344,387.1876220703125],"6-74-15":[16.899866104125977,488.7175598144531],"6-74-16":[26.92825698852539,429.53607177734375],"6-74-17":[0.6040371656417847,2570.685302734375],"6-74-18":[-38.19149398803711,3075.91943359375],"6-74-19":[2.744999885559082,3021.9697265625],"6-74-20":[2.744999885559082,110.16929626464844],"6-74-21":[-52.60090255737305,355.6610107421875],"6-74-22":[11.08220100402832,602.6605834960938],"6-74-23":[11.917182922363281,551.01904296875],"6-74-24":[164.06248474121094,713.3358764648438],"6-74-25":[187.4525604248047,639.4682006835938],"6-74-26":[300.40484619140625,1130.47998046875],"6-74-27":[439.1142272949219,1410.1396484375],"6-74-28":[346.35418701171875,1323.8192138671875],"6-74-29":[356.78814697265625,738.6835327148438],"6-74-30":[452.9048156738281,1580.587158203125],"6-74-31":[534.0068969726562,5024.4853515625],"6-74-32":[645.8724975585938,4495.20458984375],"6-74-33":[625.9923706054688,3460.990234375],"6-74-34":[590.290283203125,2489.5693359375],"6-74-35":[742.27294921875,1708.5123291015625],"6-74-36":[432.1929016113281,1881.8800048828125],"6-74-37":[298.5581970214844,1739.3355712890625],"6-74-38":[466.8029479980469,1752.7098388671875],"6-74-39":[255.50762939453125,1623.812255859375],"6-74-40":[350.82623291015625,2352.7158203125],"6-74-41":[677.2380981445312,2369.868408203125],"6-74-42":[12.408987998962402,3510.34326171875],"6-74-43":[4.611972808837891,2075.3447265625],"6-74-44":[25.510467529296875,57.02128982543945],"6-74-45":[28.715312957763672,66.09500122070312],"6-74-46":[31.872249603271484,69.32749938964844],"6-74-47":[32.66852569580078,69.50499725341797],"6-74-48":[33.211666107177734,80.24333953857422],"6-74-49":[35.21875,80.15283203125],"6-74-50":[35.5086669921875,79.80844116210938],"6-74-51":[31.794666290283203,73.1098403930664],"6-74-52":[29.44124984741211,67.9906234741211],"6-74-53":[26.696250915527344,59.40703201293945],"6-74-54":[20.927499771118164,53.20500183105469],"6-74-55":[18.14116668701172,42.582576751708984],"6-74-56":[17.260120391845703,359.1937561035156],"6-74-57":[18.723392486572266,2976.864990234375],"6-74-58":[2510.84375,3667.34130859375],"6-74-59":[3441.199951171875,3732.448974609375],"6-74-60":[3024.00634765625,3510.169921875],"6-74-61":[2783.2509765625,3119.659912109375],"6-74-62":[2780.485107421875,2893.12158203125],"6-74-63":[-29.53183364868164,2805.434326171875],"6-75-0":[13.609999656677246,35.98374938964844],"6-75-1":[18.947500228881836,45.040077209472656],"5-37-0":[13.609999656677246,46.85562515258789],"6-75-2":[21.424999237060547,45.14500045776367],"6-75-3":[20.74346160888672,291.17193603515625],"5-37-1":[20.74346160888672,291.17193603515625],"4-18-0":[13.609999656677246,753.1624755859375],"6-75-4":[17.80500030517578,41.446876525878906],"6-75-5":[17.263051986694336,39.317264556884766],"5-37-2":[17.263051986694336,46.65999984741211],"6-75-6":[15.555000305175781,177.13168334960938],"6-75-7":[15.555000305175781,1181.2149658203125],"5-37-3":[11.97379207611084,1181.2149658203125],"4-18-1":[11.97379207611084,1181.2149658203125],"6-75-8":[16.771800994873047,712.4686889648438],"6-75-9":[-32.13914489746094,4110.38134765625],"5-37-4":[-32.13914489746094,4110.38134765625],"6-75-10":[-19.291643142700195,318.420654296875],"6-75-11":[30.728939056396484,357.7540283203125],"5-37-5":[-74.05023193359375,523.3490600585938],"4-18-2":[-74.05023193359375,4110.38134765625],"6-75-12":[140.0762939453125,313.8388366699219],"6-75-13":[123.476318359375,252.11465454101562],"5-37-6":[94.68948364257812,347.0857238769531],"6-75-14":[-181.3583526611328,293.9797058105469],"6-75-15":[-133.07029724121094,195.68463134765625],"5-37-7":[-181.3583526611328,488.7175598144531],"4-18-3":[-181.3583526611328,2540.911376953125],"6-75-16":[12.442140579223633,673.303466796875],"6-75-17":[25.703094482421875,2438.112060546875],"5-37-8":[0.6040371656417847,2570.685302734375],"6-75-18":[22.5144100189209,3012.54931640625],"6-75-19":[6.700693130493164,2342.5341796875],"5-37-9":[-38.19149398803711,3075.91943359375],"4-18-4":[-52.98889923095703,3075.91943359375],"6-75-20":[8.838525772094727,223.6673126220703],"6-75-21":[-4.498502254486084,1970.9051513671875],"5-37-10":[-52.60090255737305,1970.9051513671875],"6-75-22":[11.168331146240234,2002.3048095703125],"6-75-23":[78.7122802734375,726.1485595703125],"5-37-11":[11.08220100402832,2002.3048095703125],"4-18-5":[-117.55912780761719,2002.3048095703125],"6-75-24":[172.2118377685547,1207.84765625],"6-75-25":[212.55099487304688,942.1060180664062],"5-37-12":[164.06248474121094,1207.84765625],"6-75-26":[305.98980712890625,740.0162963867188],"6-75-27":[352.0279846191406,1457.6075439453125],"5-37-13":[300.40484619140625,1457.6075439453125],"4-18-6":[164.06248474121094,3017.51123046875],"6-75-28":[354.1611022949219,988.6334228515625],"6-75-29":[356.576171875,725.2932739257812],"5-37-14":[346.35418701171875,1323.8192138671875],"6-75-30":[389.8245849609375,3166.210693359375],"6-75-31":[594.3082275390625,2060.895263671875],"5-37-15":[389.8245849609375,5024.4853515625],"4-18-7":[319.72235107421875,5024.4853515625],"6-75-32":[1072.5743408203125,1787.809326171875],"6-75-33":[1016.1658325195312,1756.2413330078125],"5-37-16":[625.9923706054688,4495.20458984375],"6-75-34":[735.5387573242188,2443.30078125],"6-75-35":[493.17681884765625,2943.4921875],"5-37-17":[493.17681884765625,2943.4921875],"4-18-8":[322.0748291015625,4495.20458984375],"6-75-36":[446.635498046875,1864.3543701171875],"6-75-37":[93.22949981689453,1716.38330078125],"5-37-18":[93.22949981689453,1881.8800048828125],"6-75-38":[74.67857360839844,2583.299560546875],"6-75-39":[57.486141204833984,2427.436767578125],"5-37-19":[57.486141204833984,2583.299560546875],"4-18-9":[57.486141204833984,2583.299560546875],"6-75-40":[-242.8247528076172,1442.61279296875],"6-75-41":[-31.186614990234375,1914.123046875],"5-37-20":[-242.8247528076172,2369.868408203125],"6-75-42":[2.0477075576782227,1636.5892333984375],"6-75-43":[21.63249969482422,58.025936126708984],"5-37-21":[2.0477075576782227,3510.34326171875],"4-18-10":[-242.8247528076172,3510.34326171875],"6-75-44":[25.622499465942383,61.16812515258789],"6-75-45":[29.149375915527344,66.21562194824219],"5-37-22":[25.510467529296875,66.21562194824219],"6-75-46":[31.946250915527344,69.33562469482422],"6-75-47":[33.03562545776367,82.95999908447266],"5-37-23":[31.872249603271484,82.95999908447266],"4-18-11":[11.680817604064941,1649.0194091796875],"6-75-48":[35.1875,89.61250305175781],"6-75-49":[39.20500183105469,86.76964569091797],"5-37-24":[33.211666107177734,89.61250305175781],"6-75-50":[36.60874938964844,80.47000122070312],"6-75-51":[34.255001068115234,78.21312713623047],"5-37-25":[31.794666290283203,80.47000122070312],"4-18-12":[30.329999923706055,89.61250305175781],"6-75-52":[30.278125762939453,72.12000274658203],"6-75-53":[26.696250915527344,63.44124984741211],"5-37-26":[26.696250915527344,72.12000274658203],"6-75-54":[20.797813415527344,54.630001068115234],"6-75-55":[18.14116668701172,45.97999954223633],"5-37-27":[18.14116668701172,54.630001068115234],"4-18-13":[15.457708358764648,72.12000274658203],"6-75-56":[18.665000915527344,861.2525024414062],"6-75-57":[359.1937561035156,2787.679931640625],"5-37-28":[17.260120391845703,2976.864990234375],"6-75-58":[2576.621337890625,3670.320068359375],"6-75-59":[3510.169921875,3745.5625],"5-37-29":[2510.84375,3745.5625],"4-18-14":[15.317436218261719,3745.5625],"6-75-60":[3119.659912109375,3590.969970703125],"6-75-61":[2882.509765625,3236.159912109375],"5-37-30":[2783.2509765625,3590.969970703125],"6-75-62":[2805.434326171875,2971.56005859375],"6-75-63":[-29.531999588012695,2839.81494140625],"5-37-31":[-29.531999588012695,2971.56005859375],"4-18-15":[-29.531999588012695,3590.969970703125],"6-76-0":[13.60971736907959,35.95124816894531],"6-76-1":[18.88687515258789,43.70000076293945],"6-76-2":[20.05859375,43.8181266784668],"6-76-3":[17.552499771118164,47.609375],"6-76-4":[15.488750457763672,38.459999084472656],"6-76-5":[14.039999961853027,35.51499938964844],"6-76-6":[13.196874618530273,32.080623626708984],"6-76-7":[13.643115997314453,1139.0487060546875],"6-76-8":[15.767187118530273,538.6320190429688],"6-76-9":[14.869531631469727,306.0772399902344],"6-76-10":[21.9521484375,316.7452087402344],"6-76-11":[80.9841537475586,357.6891174316406],"6-76-12":[126.53659057617188,332.09747314453125],"6-76-13":[34.697898864746094,291.2425231933594],"6-76-14":[4.454084873199463,251.9646759033203],"6-76-15":[11.092575073242188,721.6337280273438],"6-76-16":[16.180130004882812,1541.9820556640625],"6-76-17":[17.64993667602539,2603.843505859375],"6-76-18":[19.98114013671875,3897.676513671875],"6-76-19":[14.59000015258789,3093.9833984375],"6-76-20":[-398.5462646484375,2689.112060546875],"6-76-21":[-349.4720153808594,2516.832275390625],"6-76-22":[7.341726303100586,2262.375732421875],"6-76-23":[-21.598499298095703,1972.670654296875],"6-76-24":[-6.6863322257995605,2173.0615234375],"6-76-25":[324.7959289550781,1591.137451171875],"6-76-26":[356.1921081542969,1104.104248046875],"6-76-27":[401.9883728027344,2729.647705078125],"6-76-28":[392.01385498046875,3267.44482421875],"6-76-29":[375.1089172363281,3342.06298828125],"6-76-30":[309.01422119140625,2770.2470703125],"6-76-31":[236.85044860839844,4305.9091796875],"6-76-32":[545.4292602539062,3396.0322265625],"6-76-33":[671.259033203125,3634.013671875],"6-76-34":[206.1063995361328,2462.710205078125],"6-76-35":[230.1919708251953,2952.412841796875],"6-76-36":[-18.364639282226562,1938.394775390625],"6-76-37":[7.997279167175293,2969.87646484375],"6-76-38":[-27.138322830200195,1841.507080078125],"6-76-39":[-30.922563552856445,319.6822814941406],"6-76-40":[-13.732768058776855,244.1560821533203],"6-76-41":[8.6537504196167,35.4494514465332],"6-76-42":[14.148750305175781,44.709510803222656],"6-76-43":[19.206249237060547,58.80056381225586],"6-76-44":[24.235000610351562,61.32373046875],"6-76-45":[27.408750534057617,65.5999984741211],"6-76-46":[32.33133316040039,76.2220687866211],"6-76-47":[35.63249969482422,92.81124877929688],"6-76-48":[41.49016571044922,92.9386978149414],"6-76-49":[40.236751556396484,88.71605682373047],"6-76-50":[39.23749923706055,85.7797622680664],"6-76-51":[36.063167572021484,83.6151351928711],"6-76-52":[32.255001068115234,75.92687225341797],"6-76-53":[27.560916900634766,65.47795104980469],"6-76-54":[22.219999313354492,58.432186126708984],"6-76-55":[22.219999313354492,48.61271667480469],"6-76-56":[20.395780563354492,1399.9912109375],"6-76-57":[861.2525024414062,2930.452392578125],"6-76-58":[2787.679931640625,3670.251953125],"6-76-59":[3590.969970703125,3781.605712890625],"6-76-60":[2776.724609375,3628.25],"6-76-61":[2954.990966796875,3346.545654296875],"6-76-62":[2839.81494140625,3092.465087890625],"6-76-63":[-29.532167434692383,2876.001953125],"6-77-0":[13.60971736907959,35.86455154418945],"6-77-1":[18.747499465942383,42.424373626708984],"5-38-0":[13.60971736907959,43.70000076293945],"6-77-2":[19.648183822631836,42.424373626708984],"6-77-3":[17.24766731262207,120.98816680908203],"5-38-1":[17.24766731262207,120.98816680908203],"6-77-4":[12.8100004196167,34.795623779296875],"6-77-5":[12.614133834838867,29.577285766601562],"5-38-2":[12.614133834838867,38.459999084472656],"6-77-6":[10.819999694824219,27.510936737060547],"6-77-7":[10.819999694824219,395.39825439453125],"5-38-3":[10.819999694824219,1139.0487060546875],"6-77-8":[13.484999656677246,352.94244384765625],"6-77-9":[13.484999656677246,366.86810302734375],"5-38-4":[13.484999656677246,538.6320190429688],"6-77-10":[35.39888000488281,327.9554443359375],"6-77-11":[93.37698364257812,306.607666015625],"5-38-5":[21.9521484375,357.6891174316406],"6-77-12":[105.39958953857422,311.3212585449219],"6-77-13":[-117.35704803466797,300.0298767089844],"5-38-6":[-117.35704803466797,332.09747314453125],"6-77-14":[44.47571563720703,375.5104064941406],"6-77-15":[2.5751829147338867,323.2161560058594],"5-38-7":[2.5751829147338867,721.6337280273438],"6-77-16":[12.38882827758789,1062.0811767578125],"6-77-17":[17.2211856842041,3382.15576171875],"5-38-8":[12.38882827758789,3382.15576171875],"6-77-18":[227.32139587402344,3297.159912109375],"6-77-19":[120.11888885498047,2377.56884765625],"5-38-9":[14.59000015258789,3897.676513671875],"6-77-20":[501.73089599609375,1781.7384033203125],"6-77-21":[534.0470581054688,1378.427978515625],"5-38-10":[-398.5462646484375,2689.112060546875],"6-77-22":[6.854352951049805,2032.537353515625],"6-77-23":[-26.423173904418945,2355.83740234375],"5-38-11":[-26.423173904418945,2355.83740234375],"6-77-24":[-82.72187805175781,2168.0849609375],"6-77-25":[-31.304258346557617,2735.550048828125],"5-38-12":[-82.72187805175781,2735.550048828125],"6-77-26":[-27.830236434936523,3016.688720703125],"6-77-27":[581.818359375,4526.4345703125],"5-38-13":[-27.830236434936523,4526.4345703125],"6-77-28":[713.3197021484375,4259.17724609375],"6-77-29":[510.694580078125,4177.48828125],"5-38-14":[375.1089172363281,4259.17724609375],"6-77-30":[298.72381591796875,2764.04736328125],"6-77-31":[167.9808349609375,3442.169921875],"5-38-15":[167.9808349609375,4305.9091796875],"6-77-32":[136.09181213378906,5158.3046875],"6-77-33":[-45.67362594604492,5869.54736328125],"5-38-16":[-45.67362594604492,5869.54736328125],"6-77-34":[-49.5765495300293,2618.1767578125],"6-77-35":[-48.054901123046875,1490.099609375],"5-38-17":[-49.5765495300293,2952.412841796875],"6-77-36":[-18.94719696044922,1408.4072265625],"6-77-37":[-43.81877899169922,2305.099609375],"5-38-18":[-43.81877899169922,2969.87646484375],"6-77-38":[-55.153892517089844,506.5555114746094],"6-77-39":[-23.764108657836914,1.3250000476837158],"5-38-19":[-55.153892517089844,1841.507080078125],"6-77-40":[-2.880000114440918,15.310312271118164],"6-77-41":[4.201250076293945,25.40999984741211],"5-38-20":[-13.732768058776855,244.1560821533203],"6-77-42":[9.209089279174805,34.122615814208984],"6-77-43":[15.55453109741211,46.326873779296875],"5-38-21":[9.209089279174805,58.80056381225586],"6-77-44":[24.235000610351562,56.56437683105469],"6-77-45":[27.408750534057617,71.2750015258789],"5-38-22":[24.235000610351562,71.2750015258789],"6-77-46":[32.880001068115234,83.07125091552734],"6-77-47":[39.510623931884766,93.25499725341797],"5-38-23":[32.33133316040039,93.25499725341797],"6-77-48":[38.0471076965332,1277.55810546875],"6-77-49":[42.15250015258789,90.88999938964844],"5-38-24":[38.0471076965332,1277.55810546875],"6-77-50":[42.470001220703125,93.62187194824219],"6-77-51":[38.1875,92.26343536376953],"5-38-25":[36.063167572021484,93.62187194824219],"6-77-52":[33.287498474121094,80.43000030517578],"6-77-53":[29.462499618530273,68.78093719482422],"5-38-26":[27.560916900634766,80.43000030517578],"6-77-54":[25.283124923706055,62.814998626708984],"6-77-55":[22.684999465942383,52.05781173706055],"5-38-27":[22.219999313354492,62.814998626708984],"6-77-56":[18.958742141723633,1399.9912109375],"6-77-57":[751.8553466796875,3035.0048828125],"5-38-28":[18.958742141723633,3035.0048828125],"6-77-58":[2930.452392578125,3670.14306640625],"6-77-59":[3628.25,3814.28125],"5-38-29":[2787.679931640625,3814.28125],"6-77-60":[3346.545654296875,3652.2099609375],"6-77-61":[3073.202392578125,3460.171142578125],"5-38-30":[2776.724609375,3652.2099609375],"6-77-62":[2876.001953125,3182.264892578125],"6-77-63":[-29.532167434692383,2907.961181640625],"5-38-31":[-29.532167434692383,3182.264892578125],"6-78-0":[13.60971736907959,35.7009391784668],"6-78-1":[18.50812530517578,41.36000061035156],"6-78-2":[18.622167587280273,41.36000061035156],"6-78-3":[14.082500457763672,41.70375061035156],"6-78-4":[10.333749771118164,32.25],"6-78-5":[8.692500114440918,25.044374465942383],"6-78-6":[8.195937156677246,22.549999237060547],"6-78-7":[9.203749656677246,327.9093017578125],"6-78-8":[11.602499961853027,314.81024169921875],"6-78-9":[12.908124923706055,268.48931884765625],"6-78-10":[44.724098205566406,286.19635009765625],"6-78-11":[79.76529693603516,279.5233154296875],"6-78-12":[76.55258178710938,258.21551513671875],"6-78-13":[77.59427642822266,248.67337036132812],"6-78-14":[14.284347534179688,340.25531005859375],"6-78-15":[2.684476137161255,680.4059448242188],"6-78-16":[13.149191856384277,3881.84912109375],"6-78-17":[13.739137649536133,3918.4033203125],"6-78-18":[321.0081481933594,3209.193603515625],"6-78-19":[147.38116455078125,1446.3653564453125],"6-78-20":[267.19403076171875,949.7077026367188],"6-78-21":[374.4357604980469,1047.1676025390625],"6-78-22":[737.1289672851562,1974.54443359375],"6-78-23":[99.43926239013672,2149.1884765625],"6-78-24":[-38.585304260253906,2651.92236328125],"6-78-25":[-18.108613967895508,2755.95849609375],"6-78-26":[-202.90380859375,3297.678466796875],"6-78-27":[-172.93887329101562,3970.5927734375],"6-78-28":[208.6212921142578,3839.47705078125],"6-78-29":[250.5797119140625,4373.173828125],"6-78-30":[130.76663208007812,1692.98583984375],"6-78-31":[-26.092708587646484,881.9769897460938],"6-78-32":[-77.8481216430664,278.93377685546875],"6-78-33":[-77.14749908447266,504.4172058105469],"6-78-34":[-74.92843627929688,56.48774337768555],"6-78-35":[-67.50140380859375,634.0450439453125],"6-78-36":[-58.20707702636719,1404.0667724609375],"6-78-37":[-82.51032257080078,980.8863525390625],"6-78-38":[-39.099571228027344,-9.705000877380371],"6-78-39":[-22.600507736206055,25.573383331298828],"6-78-40":[-3.869999885559082,7.789687633514404],"6-78-41":[3.4090065956115723,20.42937469482422],"6-78-42":[8.869999885559082,32.46630859375],"6-78-43":[15.802499771118164,49.22187423706055],"6-78-44":[24.72249984741211,59.666873931884766],"6-78-45":[29.264999389648438,78.44312286376953],"6-78-46":[35.64408493041992,87.66040802001953],"6-78-47":[42.400001525878906,92.6937484741211],"6-78-48":[42.737998962402344,92.6937484741211],"6-78-49":[43.348751068115234,91.96687316894531],"6-78-50":[45.448001861572266,100.70390319824219],"6-78-51":[40.217498779296875,95.43502044677734],"6-78-52":[34.911251068115234,81.60687255859375],"6-78-53":[31.40974998474121,70.89076232910156],"6-78-54":[26.8075008392334,64.38343811035156],"6-78-55":[25.077499389648438,54.846797943115234],"6-78-56":[20.746665954589844,1829.2412109375],"6-78-57":[790.9087524414062,3049.453857421875],"6-78-58":[3035.0048828125,3654.393798828125],"6-78-59":[3633.1298828125,3814.28125],"6-78-60":[3460.171142578125,3676.47314453125],"6-78-61":[3182.264892578125,3515.547607421875],"6-78-62":[2907.961181640625,3278.235107421875],"6-78-63":[-29.532167434692383,2956.717529296875],"6-79-0":[13.60971736907959,35.34312438964844],"6-79-1":[18.174999237060547,40.1403923034668],"5-39-0":[13.60971736907959,41.36000061035156],"6-79-2":[18.311166763305664,40.91050720214844],"6-79-3":[14.082500457763672,38.77687454223633],"5-39-1":[14.082500457763672,41.70375061035156],"4-19-0":[13.60971736907959,120.98816680908203],"6-79-4":[8.852499961853027,27.868749618530273],"6-79-5":[7.691905498504639,19.450899124145508],"5-39-2":[7.691905498504639,32.25],"6-79-6":[6.772230625152588,17.54035186767578],"6-79-7":[7.34250020980835,252.88272094726562],"5-39-3":[6.772230625152588,327.9093017578125],"4-19-1":[6.772230625152588,1139.0487060546875],"3-9-0":[6.772230625152588,1181.2149658203125],"6-79-8":[10.659684181213379,223.99508666992188],"6-79-9":[12.58418083190918,273.7090759277344],"5-39-4":[10.659684181213379,314.81024169921875],"6-79-10":[36.181793212890625,309.08807373046875],"6-79-11":[67.88745880126953,297.06549072265625],"5-39-5":[36.181793212890625,309.08807373046875],"4-19-2":[10.659684181213379,538.6320190429688],"6-79-12":[65.82777404785156,294.4367980957031],"6-79-13":[86.91752624511719,291.6959228515625],"5-39-6":[65.82777404785156,294.4367980957031],"6-79-14":[-19.343399047851562,260.3907470703125],"6-79-15":[-9.596465110778809,476.1158142089844],"5-39-7":[-19.343399047851562,680.4059448242188],"4-19-3":[-117.35704803466797,721.6337280273438],"3-9-1":[-181.3583526611328,4110.38134765625],"2-4-0":[-181.3583526611328,4840.896484375],"6-79-16":[37.86785888671875,5616.150390625],"6-79-17":[25.497167587280273,5133.36669921875],"5-39-8":[13.149191856384277,5616.150390625],"6-79-18":[263.1850891113281,4058.1494140625],"6-79-19":[31.48460578918457,3448.775634765625],"5-39-9":[31.48460578918457,4058.1494140625],"4-19-4":[12.38882827758789,5616.150390625],"6-79-20":[2.3174126148223877,377.36700439453125],"6-79-21":[110.72166442871094,790.417724609375],"5-39-10":[2.3174126148223877,1047.1676025390625],"6-79-22":[400.54559326171875,1407.0499267578125],"6-79-23":[692.9746704101562,1499.61328125],"5-39-11":[99.43926239013672,2149.1884765625],"4-19-5":[-398.5462646484375,2689.112060546875],"3-9-2":[-398.5462646484375,5616.150390625],"6-79-24":[612.191650390625,1721.9696044921875],"6-79-25":[-26.77619171142578,2990.338134765625],"5-39-12":[-38.585304260253906,2990.338134765625],"6-79-26":[-70.2271957397461,3647.383544921875],"6-79-27":[-179.37579345703125,3223.801513671875],"5-39-13":[-202.90380859375,3970.5927734375],"4-19-6":[-202.90380859375,4526.4345703125],"6-79-28":[-41.81968688964844,3002.2197265625],"6-79-29":[152.09945678710938,1451.55078125],"5-39-14":[-41.81968688964844,4373.173828125],"6-79-30":[61.261436462402344,913.0420532226562],"6-79-31":[-86.73999786376953,587.0220336914062],"5-39-15":[-86.73999786376953,1692.98583984375],"4-19-7":[-86.73999786376953,4373.173828125],"3-9-3":[-202.90380859375,5024.4853515625],"2-4-1":[-398.5462646484375,5616.150390625],"6-79-32":[-87.57366943359375,65.60655975341797],"6-79-33":[-86.63546752929688,-37.76877212524414],"5-39-16":[-87.57366943359375,504.4172058105469],"6-79-34":[-81.83000183105469,-34.756248474121094],"6-79-35":[-71.29499816894531,-26.583555221557617],"5-39-17":[-81.83000183105469,634.0450439453125],"4-19-8":[-87.57366943359375,5869.54736328125],"6-79-36":[-59.040000915527344,2336.87939453125],"6-79-37":[-52.960350036621094,605.9714965820312],"5-39-18":[-82.51032257080078,2336.87939453125],"6-79-38":[-43.739715576171875,926.3504028320312],"6-79-39":[-68.101318359375,1064.168212890625],"5-39-19":[-68.101318359375,1064.168212890625],"4-19-9":[-82.51032257080078,2969.87646484375],"3-9-4":[-87.57366943359375,5869.54736328125],"6-79-40":[-18.987329483032227,1347.9295654296875],"6-79-41":[-12.004594802856445,199.0380401611328],"5-39-20":[-18.987329483032227,1347.9295654296875],"6-79-42":[8.425116539001465,42.608123779296875],"6-79-43":[17.671249389648438,65.20249938964844],"5-39-21":[8.425116539001465,65.20249938964844],"4-19-10":[-18.987329483032227,1347.9295654296875],"6-79-44":[24.72249984741211,70.24124908447266],"6-79-45":[31.309375762939453,83.26000213623047],"5-39-22":[24.72249984741211,83.26000213623047],"6-79-46":[39.48125076293945,87.77749633789062],"6-79-47":[43.036781311035156,91.27999877929688],"5-39-23":[35.64408493041992,92.6937484741211],"4-19-11":[24.235000610351562,93.25499725341797],"3-9-5":[-242.8247528076172,3510.34326171875],"2-4-2":[-242.8247528076172,5869.54736328125],"6-79-48":[42.49834442138672,94.02222442626953],"6-79-49":[43.22999954223633,91.86000061035156],"5-39-24":[42.49834442138672,94.02222442626953],"6-79-50":[45.58700180053711,101.83258056640625],"6-79-51":[40.619998931884766,94.49279022216797],"5-39-25":[40.217498779296875,101.83258056640625],"4-19-12":[36.063167572021484,1277.55810546875],"6-79-52":[35.825626373291016,81.73999786376953],"6-79-53":[31.856000900268555,70.91437530517578],"5-39-26":[31.40974998474121,81.73999786376953],"6-79-54":[28.079374313354492,64.3984375],"6-79-55":[25.077499389648438,56.22312545776367],"5-39-27":[25.077499389648438,64.3984375],"4-19-13":[22.219999313354492,81.73999786376953],"3-9-6":[15.457708358764648,1277.55810546875],"6-79-56":[24.516407012939453,2238.392578125],"6-79-57":[1829.2412109375,3044.780029296875],"5-39-28":[20.746665954589844,3049.453857421875],"6-79-58":[3023.5595703125,3633.1298828125],"6-79-59":[3590.927490234375,3703.5322265625],"5-39-29":[3023.5595703125,3814.28125],"4-19-14":[18.958742141723633,3814.28125],"6-79-60":[3515.547607421875,3739.76123046875],"6-79-61":[3278.235107421875,3596.530029296875],"5-39-30":[3182.264892578125,3739.76123046875],"6-79-62":[2956.717529296875,3326.449951171875],"6-79-63":[-29.532333374023438,2985.8701171875],"5-39-31":[-29.532333374023438,3326.449951171875],"4-19-15":[-29.532333374023438,3739.76123046875],"3-9-7":[-29.532333374023438,3814.28125],"2-4-3":[-29.532333374023438,3814.28125],"6-80-0":[13.609829902648926,34.91875076293945],"6-80-1":[17.784374237060547,39.26750183105469],"6-80-2":[16.68343734741211,40.646873474121094],"6-80-3":[11.494999885559082,517.1036987304688],"6-80-4":[7.135000228881836,26.440000534057617],"6-80-5":[4.682499885559082,16.8856258392334],"6-80-6":[4.580546855926514,15.071249961853027],"6-80-7":[4.739999771118164,237.5083770751953],"6-80-8":[7.542547225952148,245.47523498535156],"6-80-9":[34.12028503417969,285.0784606933594],"6-80-10":[9.182148933410645,302.01220703125],"6-80-11":[61.24806594848633,248.9680938720703],"6-80-12":[48.700252532958984,347.2693176269531],"6-80-13":[6.35075569152832,372.8235168457031],"6-80-14":[-41.24351501464844,355.609130859375],"6-80-15":[-76.26393127441406,115.88446044921875],"6-80-16":[-56.451332092285156,4485.87744140625],"6-80-17":[-15.952225685119629,4116.845703125],"6-80-18":[161.31887817382812,4577.2392578125],"6-80-19":[32.18891143798828,3588.06591796875],"6-80-20":[-43.58817672729492,2783.900146484375],"6-80-21":[-86.2223129272461,444.9345397949219],"6-80-22":[151.7890167236328,925.6859130859375],"6-80-23":[340.2076416015625,1343.120849609375],"6-80-24":[285.3125,1028.06640625],"6-80-25":[400.8968811035156,1455.5018310546875],"6-80-26":[79.57488250732422,2444.70166015625],"6-80-27":[-65.01297760009766,2493.234619140625],"6-80-28":[-50.68000030517578,2422.223876953125],"6-80-29":[62.25400924682617,1006.9679565429688],"6-80-30":[-93.24624633789062,501.5491027832031],"6-80-31":[-99.59308624267578,235.86447143554688],"6-80-32":[-97.88500213623047,-42.83000183105469],"6-80-33":[-90.44161987304688,-40.915000915527344],"6-80-34":[-87.48822021484375,-33.5525016784668],"6-80-35":[-79.13500213623047,8.70492935180664],"6-80-36":[-62.542423248291016,621.1754760742188],"6-80-37":[-52.782325744628906,1207.8701171875],"6-80-38":[-3.344435214996338,2631.64111328125],"6-80-39":[-45.57821273803711,2635.656005859375],"6-80-40":[-13.399310111999512,1977.9127197265625],"6-80-41":[3.1323599815368652,244.2657470703125],"6-80-42":[12.300000190734863,42.608123779296875],"6-80-43":[19.055625915527344,65.04000091552734],"6-80-44":[27.434999465942383,70.25454711914062],"6-80-45":[35.59117126464844,85.75812530517578],"6-80-46":[41.63225173950195,87.77749633789062],"6-80-47":[42.87906265258789,92.36000061035156],"6-80-48":[44.130001068115234,94.45404052734375],"6-80-49":[43.940834045410156,91.86000061035156],"6-80-50":[45.057498931884766,99.83000183105469],"6-80-51":[40.48249816894531,92.2074966430664],"6-80-52":[35.29999923706055,81.73999786376953],"6-80-53":[31.46500015258789,70.91437530517578],"6-80-54":[28.4424991607666,63.709999084472656],"6-80-55":[27.255578994750977,572.140625],"6-80-56":[26.346220016479492,2427.47509765625],"6-80-57":[2238.392578125,3127.77880859375],"6-80-58":[3023.705078125,3590.927490234375],"6-80-59":[3513.322509765625,3615.31005859375],"6-80-60":[3595.113037109375,3741.767578125],"6-80-61":[3326.449951171875,3655.249267578125],"6-80-62":[2985.8701171875,3360.642578125],"6-80-63":[-29.532333374023438,3013.014892578125],"6-81-0":[13.609829902648926,34.27392578125],"6-81-1":[17.420000076293945,38.053749084472656],"5-40-0":[13.609829902648926,39.26750183105469],"6-81-2":[16.066431045532227,37.37826156616211],"6-81-3":[11.144039154052734,453.0975036621094],"5-40-1":[11.144039154052734,517.1036987304688],"6-81-4":[5.363749980926514,22.483749389648438],"6-81-5":[2.513000011444092,12.859648704528809],"5-40-2":[2.513000011444092,26.440000534057617],"6-81-6":[2.2417500019073486,9.585468292236328],"6-81-7":[2.5420000553131104,195.7081298828125],"5-40-3":[2.2417500019073486,237.5083770751953],"6-81-8":[7.9679999351501465,467.260986328125],"6-81-9":[65.3292465209961,477.067626953125],"5-40-4":[7.542547225952148,477.067626953125],"6-81-10":[7.848367691040039,275.8890380859375],"6-81-11":[59.539554595947266,298.4552307128906],"5-40-5":[7.848367691040039,302.01220703125],"6-81-12":[19.86543083190918,367.9424743652344],"6-81-13":[0.32000017166137695,377.4931945800781],"5-40-6":[0.32000017166137695,377.4931945800781],"6-81-14":[-51.53701400756836,65.51543426513672],"6-81-15":[-57.243770599365234,5.034618377685547],"5-40-7":[-76.26393127441406,355.609130859375],"6-81-16":[-43.479923248291016,748.2247924804688],"6-81-17":[-65.89244842529297,4455.703125],"5-40-8":[-65.89244842529297,4485.87744140625],"6-81-18":[-72.99921417236328,4802.08447265625],"6-81-19":[473.2911071777344,3898.221923828125],"5-40-9":[-72.99921417236328,4802.08447265625],"6-81-20":[-93.20372772216797,4173.88720703125],"6-81-21":[-121.5427474975586,2032.4765625],"5-40-10":[-121.5427474975586,4173.88720703125],"6-81-22":[-85.20906066894531,483.6067810058594],"6-81-23":[-57.80921936035156,539.0863037109375],"5-40-11":[-85.20906066894531,1343.120849609375],"6-81-24":[77.9879150390625,467.80523681640625],"6-81-25":[176.5585479736328,1015.6068725585938],"5-40-12":[77.9879150390625,1455.5018310546875],"6-81-26":[-51.13999938964844,2138.386962890625],"6-81-27":[-58.48749923706055,2078.27685546875],"5-40-13":[-65.01297760009766,2493.234619140625],"6-81-28":[-83.93499755859375,1996.2510986328125],"6-81-29":[-102.98500061035156,846.66845703125],"5-40-14":[-102.98500061035156,2422.223876953125],"6-81-30":[-103.28972625732422,410.8124084472656],"6-81-31":[-103.33879852294922,-46.62312698364258],"5-40-15":[-103.33879852294922,501.5491027832031],"6-81-32":[-99.6987533569336,-45.29249954223633],"6-81-33":[-91.36498260498047,-41.35499954223633],"5-40-16":[-99.6987533569336,-40.915000915527344],"6-81-34":[-87.04259490966797,-35.59262466430664],"6-81-35":[-80.35843658447266,-28.860624313354492],"5-40-17":[-87.48822021484375,8.70492935180664],"6-81-36":[-95.34363555908203,2866.349609375],"6-81-37":[-44.04396438598633,2817.392333984375],"5-40-18":[-95.34363555908203,2866.349609375],"6-81-38":[-37.93754577636719,1755.55029296875],"6-81-39":[-49.86737823486328,1687.299072265625],"5-40-19":[-49.86737823486328,2635.656005859375],"6-81-40":[-10.789999961853027,74.99059295654297],"6-81-41":[1.0700000524520874,25.077110290527344],"5-40-20":[-13.399310111999512,1977.9127197265625],"6-81-42":[8.346602439880371,34.806739807128906],"6-81-43":[16.88249969482422,54.42937469482422],"5-40-21":[8.346602439880371,65.04000091552734],"6-81-44":[27.434999465942383,70.8599624633789],"6-81-45":[35.92499923706055,83.87085723876953],"5-40-22":[27.434999465942383,85.75812530517578],"6-81-46":[39.83549880981445,85.22285461425781],"6-81-47":[42.10625076293945,89.87437438964844],"5-40-23":[39.83549880981445,92.36000061035156],"6-81-48":[10.509146690368652,895.6724243164062],"6-81-49":[44.14208221435547,90.77193450927734],"5-40-24":[10.509146690368652,895.6724243164062],"6-81-50":[42.93031311035156,94.392578125],"6-81-51":[38.916831970214844,91.86583709716797],"5-40-25":[38.916831970214844,99.83000183105469],"6-81-52":[33.966251373291016,80.52999877929688],"6-81-53":[30.707916259765625,68.93353271484375],"5-40-26":[30.707916259765625,81.73999786376953],"6-81-54":[28.326749801635742,62.74156188964844],"6-81-55":[29.720582962036133,1099.7449951171875],"5-40-27":[27.255578994750977,1099.7449951171875],"6-81-56":[30.45804214477539,2482.794921875],"6-81-57":[2427.47509765625,3161.719482421875],"5-40-28":[26.346220016479492,3161.719482421875],"6-81-58":[3127.77880859375,3513.322509765625],"6-81-59":[3362.15869140625,3613.485107421875],"5-40-29":[3023.705078125,3615.31005859375],"6-81-60":[3596.577392578125,3745.468505859375],"6-81-61":[3360.642578125,3699.742431640625],"5-40-30":[3326.449951171875,3745.468505859375],"6-81-62":[3013.014892578125,3382.262451171875],"6-81-63":[-29.532333374023438,3034.70751953125],"5-40-31":[-29.532333374023438,3382.262451171875],"6-82-0":[13.609829902648926,33.756874084472656],"6-82-1":[17.00749969482422,37.1193733215332],"6-82-2":[15.53499984741211,35.51499938964844],"6-82-3":[8.157500267028809,574.4508666992188],"6-82-4":[4.355625152587891,19.290000915527344],"6-82-5":[1.277734398841858,79.60874938964844],"6-82-6":[0.5618749856948853,585.9290161132812],"6-82-7":[0.5481250286102295,166.6781768798828],"6-82-8":[5.534191608428955,263.88507080078125],"6-82-9":[23.588151931762695,441.3379211425781],"6-82-10":[5.3725056648254395,321.1504211425781],"6-82-11":[52.243934631347656,337.15264892578125],"6-82-12":[32.72145462036133,384.63128662109375],"6-82-13":[-1.7810112237930298,320.6715393066406],"6-82-14":[-63.458221435546875,173.564453125],"6-82-15":[-85.86798095703125,-10.01181411743164],"6-82-16":[-173.8170623779297,522.2612915039062],"6-82-17":[-63.15378189086914,294.15765380859375],"6-82-18":[-61.40509796142578,3417.014404296875],"6-82-19":[-32.50667953491211,5595.75146484375],"6-82-20":[768.454345703125,4411.41015625],"6-82-21":[-91.08441925048828,4366.478515625],"6-82-22":[-64.71749877929688,1761.31591796875],"6-82-23":[-110.56964111328125,170.4696807861328],"6-82-24":[-44.94266128540039,274.326171875],"6-82-25":[68.28646850585938,1114.6148681640625],"6-82-26":[-145.357177734375,1466.682861328125],"6-82-27":[-88.54000091552734,1380.5618896484375],"6-82-28":[-104.67500305175781,723.5172119140625],"6-82-29":[-111.55374908447266,-41.967506408691406],"6-82-30":[-110.82734680175781,-50.610313415527344],"6-82-31":[-104.5127944946289,-49.03066635131836],"6-82-32":[-100.43000030517578,-45.11811828613281],"6-82-33":[-93.3931655883789,-10.816478729248047],"6-82-34":[-83.71089935302734,5.074777603149414],"6-82-35":[-74.95500183105469,-0.2052142173051834],"6-82-36":[-62.65999984741211,-19.801250457763672],"6-82-37":[-49.130001068115234,-15.480859756469727],"6-82-38":[-35.85499954223633,-11.678750038146973],"6-82-39":[-24.05923843383789,-4.212500095367432],"6-82-40":[-11.32437515258789,1.3336719274520874],"6-82-41":[0.8831250071525574,15.414999961853027],"6-82-42":[7.735000133514404,31.553438186645508],"6-82-43":[16.239452362060547,52.880001068115234],"6-82-44":[26.356266021728516,70.89543151855469],"6-82-45":[33.595001220703125,79.73480224609375],"6-82-46":[36.43375015258789,83.4390640258789],"6-82-47":[40.09375,89.69000244140625],"6-82-48":[31.650283813476562,1115.1273193359375],"6-82-49":[43.67124938964844,90.17913818359375],"6-82-50":[42.263126373291016,91.89125061035156],"6-82-51":[37.84000015258789,90.04910278320312],"6-82-52":[33.966251373291016,77.83000183105469],"6-82-53":[30.525083541870117,67.41486358642578],"6-82-54":[28.326749801635742,61.415000915527344],"6-82-55":[29.720582962036133,1774.6195068359375],"6-82-56":[1099.7449951171875,2729.031982421875],"6-82-57":[2482.794921875,3157.074951171875],"6-82-58":[3040.047607421875,3362.15869140625],"6-82-59":[3161.6669921875,3614.28759765625],"6-82-60":[3541.012451171875,3772.22216796875],"6-82-61":[3382.262451171875,3728.179931640625],"6-82-62":[3034.70751953125,3397.84375],"6-82-63":[-29.532499313354492,3048.456298828125],"6-83-0":[13.609829902648926,33.13312530517578],"6-83-1":[16.830181121826172,36.0710334777832],"5-41-0":[13.609829902648926,37.1193733215332],"6-83-2":[15.314127922058105,35.216407775878906],"6-83-3":[8.157500267028809,497.9058837890625],"5-41-1":[8.157500267028809,574.4508666992188],"4-20-0":[8.157500267028809,574.4508666992188],"6-83-4":[2.8399999141693115,16.008750915527344],"6-83-5":[1.2000000476837158,1212.8082275390625],"5-41-2":[1.2000000476837158,1212.8082275390625],"6-83-6":[-2.4800000190734863,1230.810302734375],"6-83-7":[-3.4825000762939453,212.1230010986328],"5-41-3":[-3.4825000762939453,1230.810302734375],"4-20-1":[-3.4825000762939453,1230.810302734375],"6-83-8":[21.023624420166016,244.38922119140625],"6-83-9":[32.3819580078125,331.02862548828125],"5-41-4":[5.534191608428955,441.3379211425781],"6-83-10":[0.6597825288772583,350.4629821777344],"6-83-11":[53.02870178222656,469.8078918457031],"5-41-5":[0.6597825288772583,469.8078918457031],"4-20-2":[0.6597825288772583,477.067626953125],"6-83-12":[50.86530303955078,476.5897216796875],"6-83-13":[40.69453430175781,627.3978271484375],"5-41-6":[-1.7810112237930298,627.3978271484375],"6-83-14":[-46.58251190185547,323.69195556640625],"6-83-15":[-87.64563751220703,232.08062744140625],"5-41-7":[-87.64563751220703,323.69195556640625],"4-20-3":[-87.64563751220703,627.3978271484375],"6-83-16":[-161.10369873046875,321.63134765625],"6-83-17":[-92.98035430908203,1858.16259765625],"5-41-8":[-173.8170623779297,1858.16259765625],"6-83-18":[-78.57514190673828,3878.237548828125],"6-83-19":[299.2399597167969,3814.00244140625],"5-41-9":[-78.57514190673828,5595.75146484375],"4-20-4":[-173.8170623779297,5595.75146484375],"6-83-20":[674.017333984375,4034.302490234375],"6-83-21":[627.23095703125,3448.74169921875],"5-41-10":[-91.08441925048828,4411.41015625],"6-83-22":[-84.07687377929688,2931.27001953125],"6-83-23":[-93.4913330078125,1395.6357421875],"5-41-11":[-110.56964111328125,2931.27001953125],"4-20-5":[-121.5427474975586,4411.41015625],"6-83-24":[-29.799631118774414,300.1856384277344],"6-83-25":[-71.9487533569336,1727.167236328125],"5-41-12":[-71.9487533569336,1727.167236328125],"6-83-26":[-76.14875030517578,1060.4178466796875],"6-83-27":[-94.45999908447266,1466.1551513671875],"5-41-13":[-145.357177734375,1466.682861328125],"4-20-6":[-145.357177734375,2493.234619140625],"6-83-28":[-107.48259735107422,-44.27000045776367],"6-83-29":[-112.8853988647461,-51.27000045776367],"5-41-14":[-112.8853988647461,723.5172119140625],"6-83-30":[-112.21499633789062,-52.38882827758789],"6-83-31":[-111.91312408447266,-50.21500015258789],"5-41-15":[-112.21499633789062,-49.03066635131836],"4-20-7":[-112.8853988647461,2422.223876953125],"6-83-32":[-107.43562316894531,-46.38254165649414],"6-83-33":[-100.54000091552734,862.7944946289062],"5-41-16":[-107.43562316894531,862.7944946289062],"6-83-34":[-86.89078521728516,-10.479891777038574],"6-83-35":[-74.62124633789062,-31.329999923706055],"5-41-17":[-86.89078521728516,5.074777603149414],"4-20-8":[-107.43562316894531,862.7944946289062],"6-83-36":[-65.80000305175781,-24.565000534057617],"6-83-37":[-50.203006744384766,-9.899639129638672],"5-41-18":[-65.80000305175781,-9.899639129638672],"6-83-38":[-36.26789093017578,-11.197110176086426],"6-83-39":[-27.014999389648438,3059.5537109375],"5-41-19":[-36.26789093017578,3059.5537109375],"4-20-9":[-95.34363555908203,3059.5537109375],"6-83-40":[-8.137499809265137,2.2799999713897705],"6-83-41":[0.8831250071525574,16.25],"5-41-20":[-11.32437515258789,16.25],"6-83-42":[7.735000133514404,33.51759719848633],"6-83-43":[16.986875534057617,55.75187683105469],"5-41-21":[7.735000133514404,55.75187683105469],"4-20-10":[-13.399310111999512,1977.9127197265625],"6-83-44":[26.422500610351562,65.97888946533203],"6-83-45":[28.6299991607666,71.7778091430664],"5-41-22":[26.356266021728516,79.73480224609375],"6-83-46":[31.755332946777344,77.91802978515625],"6-83-47":[36.38249969482422,85.70249938964844],"5-41-23":[31.755332946777344,89.69000244140625],"4-20-11":[26.356266021728516,92.36000061035156],"6-83-48":[41.07233428955078,88.95437622070312],"6-83-49":[41.42716598510742,88.25273132324219],"5-41-24":[31.650283813476562,1115.1273193359375],"6-83-50":[40.86249923706055,86.85906219482422],"6-83-51":[37.020999908447266,83.44125366210938],"5-41-25":[37.020999908447266,91.89125061035156],"4-20-12":[10.509146690368652,1115.1273193359375],"6-83-52":[33.5,75.3793716430664],"6-83-53":[30.594999313354492,67.42420196533203],"5-41-26":[30.525083541870117,77.83000183105469],"6-83-54":[28.688749313354492,62.310001373291016],"6-83-55":[29.587499618530273,2242.904296875],"5-41-27":[28.326749801635742,2242.904296875],"4-20-13":[27.255578994750977,2242.904296875],"6-83-56":[568.495849609375,2841.07763671875],"6-83-57":[2729.031982421875,3100.2177734375],"5-41-28":[568.495849609375,3157.074951171875],"6-83-58":[2651.98974609375,3161.6669921875],"6-83-59":[2944.39990234375,3541.012451171875],"5-41-29":[2651.98974609375,3614.28759765625],"4-20-14":[26.346220016479492,3615.31005859375],"6-83-60":[3405.030029296875,3807.2177734375],"6-83-61":[3397.84375,3762.742431640625],"5-41-30":[3382.262451171875,3807.2177734375],"6-83-62":[3048.456298828125,3423.544921875],"6-83-63":[-29.532499313354492,3056.24365234375],"5-41-31":[-29.532499313354492,3423.544921875],"4-20-15":[-29.532499313354492,3807.2177734375],"6-84-0":[13.609885215759277,32.725624084472656],"6-84-1":[15.68375015258789,35.51874923706055],"6-84-2":[14.453583717346191,462.9171447753906],"6-84-3":[6.067500114440918,600.6279907226562],"6-84-4":[1.877500057220459,99.90374755859375],"6-84-5":[-4.122187614440918,1436.7232666015625],"6-84-6":[-6.373164176940918,243.8814239501953],"6-84-7":[-6.062890529632568,220.036376953125],"6-84-8":[14.079083442687988,1250.9747314453125],"6-84-9":[44.807518005371094,1096.2373046875],"6-84-10":[-0.19025689363479614,1512.307861328125],"6-84-11":[81.33892822265625,975.8860473632812],"6-84-12":[69.62987518310547,1624.3941650390625],"6-84-13":[-109.78680419921875,1020.6593017578125],"6-84-14":[69.50052642822266,630.8472290039062],"6-84-15":[-35.723079681396484,381.11517333984375],"6-84-16":[-25.956588745117188,265.266845703125],"6-84-17":[-108.08636474609375,292.4346923828125],"6-84-18":[2.4456088542938232,3050.6884765625],"6-84-19":[657.64453125,3289.79150390625],"6-84-20":[218.20338439941406,3513.072998046875],"6-84-21":[84.19729614257812,4466.1357421875],"6-84-22":[-257.74481201171875,3206.2333984375],"6-84-23":[-71.95855712890625,2955.43017578125],"6-84-24":[-79.7562484741211,1006.286865234375],"6-84-25":[-89.60710906982422,187.09201049804688],"6-84-26":[-101.43460845947266,-35.61301040649414],"6-84-27":[-105.79339599609375,-39.16749954223633],"6-84-28":[-108.1450424194336,-47.234832763671875],"6-84-29":[-116.7359390258789,-51.27000045776367],"6-84-30":[-120.8292007446289,-54.73566818237305],"6-84-31":[-121.13484191894531,-53.64849853515625],"6-84-32":[-120.5250015258789,-50.27000045776367],"6-84-33":[-111.76499938964844,-41.47850036621094],"6-84-34":[-97.71062469482422,-15.91882038116455],"6-84-35":[-82.45490264892578,-11.705252647399902],"6-84-36":[-73.4800033569336,-25.08500099182129],"6-84-37":[-58.252498626708984,-16.991249084472656],"6-84-38":[-39.624141693115234,-4.404106616973877],"6-84-39":[-29.09976577758789,810.6611938476562],"6-84-40":[-9.759374618530273,2.2799999713897705],"6-84-41":[0.8360937237739563,15.40999984741211],"6-84-42":[7.341249942779541,34.60685729980469],"6-84-43":[17.48015594482422,52.900001525878906],"6-84-44":[21.665000915527344,56.55937576293945],"6-84-45":[24.504375457763672,63.5],"6-84-46":[28.483749389648438,71.78062438964844],"6-84-47":[33.69124984741211,82.13999938964844],"6-84-48":[37.057498931884766,84.49187469482422],"6-84-49":[39.192813873291016,84.87249755859375],"6-84-50":[37.64725112915039,82.9418716430664],"6-84-51":[36.03499984741211,81.00125122070312],"6-84-52":[33.477657318115234,74.04000091552734],"6-84-53":[30.968000411987305,66.4335708618164],"6-84-54":[28.910625457763672,62.36343765258789],"6-84-55":[28.43462562561035,1169.1824951171875],"6-84-56":[306.8424987792969,2834.452392578125],"6-84-57":[2494.947509765625,2971.594970703125],"6-84-58":[2350.4892578125,2944.39990234375],"6-84-59":[2693.02197265625,3405.030029296875],"6-84-60":[3368.56005859375,3828.333740234375],"6-84-61":[3423.544921875,3798.93408203125],"6-84-62":[3056.21240234375,3451.492431640625],"6-84-63":[-29.532499313354492,3061.97607421875],"6-85-0":[13.609885215759277,32.26250076293945],"6-85-1":[15.625833511352539,35.53937530517578],"5-42-0":[13.609885215759277,35.53937530517578],"6-85-2":[13.830897331237793,255.8768768310547],"6-85-3":[6.067500114440918,601.0454711914062],"5-42-1":[6.067500114440918,601.0454711914062],"6-85-4":[1.2725000381469727,851.3453369140625],"6-85-5":[-6.914999961853027,1077.9996337890625],"5-42-2":[-6.914999961853027,1436.7232666015625],"6-85-6":[-11.503125190734863,152.23358154296875],"6-85-7":[-9.854687690734863,400.7345886230469],"5-42-3":[-11.503125190734863,400.7345886230469],"6-85-8":[20.675209045410156,1773.7913818359375],"6-85-9":[-5.625511169433594,1487.9412841796875],"5-42-4":[-5.625511169433594,1773.7913818359375],"6-85-10":[-53.10524368286133,1559.3665771484375],"6-85-11":[-77.23284912109375,864.3931274414062],"5-42-5":[-77.23284912109375,1559.3665771484375],"6-85-12":[-233.10203552246094,1394.49267578125],"6-85-13":[29.594621658325195,600.1273193359375],"5-42-6":[-233.10203552246094,1624.3941650390625],"6-85-14":[24.54953384399414,429.20947265625],"6-85-15":[-30.903039932250977,315.68414306640625],"5-42-7":[-35.723079681396484,630.8472290039062],"6-85-16":[-30.460506439208984,243.13427734375],"6-85-17":[32.63323974609375,430.0711364746094],"5-42-8":[-108.08636474609375,430.0711364746094],"6-85-18":[50.89097595214844,3092.391845703125],"6-85-19":[225.19778442382812,3228.771728515625],"5-42-9":[2.4456088542938232,3289.79150390625],"6-85-20":[429.5672302246094,2831.81494140625],"6-85-21":[250.9495391845703,3905.225830078125],"5-42-10":[84.19729614257812,4466.1357421875],"6-85-22":[-102.10209655761719,3453.87939453125],"6-85-23":[-85.99624633789062,2164.40185546875],"5-42-11":[-257.74481201171875,3453.87939453125],"6-85-24":[-99.79914093017578,1992.4886474609375],"6-85-25":[-110.94312286376953,-39.87812805175781],"5-42-12":[-110.94312286376953,1992.4886474609375],"6-85-26":[-117.40499877929688,-43.92679977416992],"6-85-27":[-127.51000213623047,-50.662498474121094],"5-42-13":[-127.51000213623047,-35.61301040649414],"6-85-28":[-131.9931182861328,-54.3224983215332],"6-85-29":[-131.8300018310547,-55.098751068115234],"5-42-14":[-131.9931182861328,-47.234832763671875],"6-85-30":[-135.57000732421875,-59.068748474121094],"6-85-31":[-136.22312927246094,-60.26250076293945],"5-42-15":[-136.22312927246094,-53.64849853515625],"6-85-32":[-135.18687438964844,-55.88249969482422],"6-85-33":[-126.28656005859375,-49.837501525878906],"5-42-16":[-135.18687438964844,-41.47850036621094],"6-85-34":[-114.16500091552734,-41.73875045776367],"6-85-35":[-93.30750274658203,-35.72483444213867],"5-42-17":[-114.16500091552734,-11.705252647399902],"6-85-36":[-76.6988296508789,-25.5170841217041],"6-85-37":[-60.9111328125,12.56291389465332],"5-42-18":[-76.6988296508789,12.56291389465332],"6-85-38":[-42.125,-11.510475158691406],"6-85-39":[-26.501249313354492,-4.38040018081665],"5-42-19":[-42.125,810.6611938476562],"6-85-40":[-10.148750305175781,1.0206249952316284],"6-85-41":[0.6165624856948853,18.405624389648438],"5-42-20":[-10.148750305175781,18.405624389648438],"6-85-42":[7.341249942779541,33.392539978027344],"6-85-43":[14.166250228881836,42.26124954223633],"5-42-21":[7.341249942779541,52.900001525878906],"6-85-44":[20.808622360229492,47.96812438964844],"6-85-45":[23.876249313354492,56.420936584472656],"5-42-22":[20.808622360229492,63.5],"6-85-46":[27.269739151000977,65.09236145019531],"6-85-47":[30.366249084472656,73.17375183105469],"5-42-23":[27.269739151000977,82.13999938964844],"6-85-48":[33.17466735839844,77.74027252197266],"6-85-49":[36.618751525878906,78.56620788574219],"5-42-24":[33.17466735839844,84.87249755859375],"6-85-50":[36.35200119018555,77.828125],"6-85-51":[34.922000885009766,75.63871002197266],"5-42-25":[34.922000885009766,82.9418716430664],"6-85-52":[32.62125015258789,71.76249694824219],"6-85-53":[30.301000595092773,66.44049072265625],"5-42-26":[30.301000595092773,74.04000091552734],"6-85-54":[27.356874465942383,61.95343780517578],"6-85-55":[26.88512420654297,470.01031494140625],"5-42-27":[26.88512420654297,1169.1824951171875],"6-85-56":[29.802749633789062,2724.66064453125],"6-85-57":[1711.9925537109375,2726.291259765625],"5-42-28":[29.802749633789062,2971.594970703125],"6-85-58":[1711.9925537109375,2693.02197265625],"6-85-59":[2435.246337890625,3395.860107421875],"5-42-29":[1711.9925537109375,3405.030029296875],"6-85-60":[3366.599365234375,3894.071533203125],"6-85-61":[3451.492431640625,3860.75],"5-42-30":[3366.599365234375,3894.071533203125],"6-85-62":[3061.900390625,3477.37744140625],"6-85-63":[-29.532499313354492,3064.632568359375],"5-42-31":[-29.532499313354492,3477.37744140625],"6-86-0":[13.591815948486328,31.913436889648438],"6-86-1":[14.498749732971191,35.53937530517578],"6-86-2":[11.813124656677246,372.34259033203125],"6-86-3":[3.3450000286102295,515.3949584960938],"6-86-4":[1.0631250143051147,851.77294921875],"6-86-5":[-8.2890625,891.6768188476562],"6-86-6":[-14.789999961853027,-3.6028332710266113],"6-86-7":[-14.033320426940918,414.414306640625],"6-86-8":[-7.893750190734863,1361.21142578125],"6-86-9":[-6.903450012207031,250.24729919433594],"6-86-10":[-12.453062057495117,219.7003173828125],"6-86-11":[30.074390411376953,213.65406799316406],"6-86-12":[40.86934280395508,217.00564575195312],"6-86-13":[-251.8015594482422,281.4515686035156],"6-86-14":[1.3596724271774292,248.90374755859375],"6-86-15":[3.2725136280059814,244.1541290283203],"6-86-16":[-29.811279296875,713.3446655273438],"6-86-17":[-65.14035034179688,925.0496215820312],"6-86-18":[118.27310943603516,769.0946655273438],"6-86-19":[259.0544128417969,3625.12255859375],"6-86-20":[437.5157470703125,4120.5810546875],"6-86-21":[417.86309814453125,2348.73486328125],"6-86-22":[-70.19376373291016,2575.16650390625],"6-86-23":[-95.28062438964844,426.3899230957031],"6-86-24":[-105.5918197631836,-40.847251892089844],"6-86-25":[-120.88062286376953,-49.19171905517578],"6-86-26":[-133.1916046142578,-54.847251892089844],"6-86-27":[-143.87750244140625,-59.25374984741211],"6-86-28":[-150.33204650878906,-63.76183319091797],"6-86-29":[-151.56480407714844,-65.77649688720703],"6-86-30":[-150.83811950683594,-65.78291320800781],"6-86-31":[-149.0906219482422,-67.58525085449219],"6-86-32":[-147.34375,-64.0062484741211],"6-86-33":[-138.47950744628906,-57.09108352661133],"6-86-34":[-126.91343688964844,-47.83124923706055],"6-86-35":[-106.99017333984375,-36.762664794921875],"6-86-36":[-89.41687774658203,-30.072500228881836],"6-86-37":[-64.87298583984375,-21.063350677490234],"6-86-38":[-48.22999954223633,209.3679656982422],"6-86-39":[-26.278749465942383,376.4708557128906],"6-86-40":[-11.569999694824219,0.8020312786102295],"6-86-41":[0.26499998569488525,18.364999771118164],"6-86-42":[7.71875,27.1746883392334],"6-86-43":[12.565625190734863,39.029998779296875],"6-86-44":[18.375,47.61000061035156],"6-86-45":[23.483125686645508,52.92499923706055],"6-86-46":[25.88249969482422,59.571876525878906],"6-86-47":[28.888124465942383,66.33999633789062],"6-86-48":[31.732500076293945,72.20964813232422],"6-86-49":[35.04890441894531,79.6083984375],"6-86-50":[34.6657829284668,75.07125091552734],"6-86-51":[34.42070388793945,72.79781341552734],"6-86-52":[31.272109985351562,70.55187225341797],"6-86-53":[28.815000534057617,64.54875183105469],"6-86-54":[26.886249542236328,60.599998474121094],"6-86-55":[24.41179656982422,59.599998474121094],"6-86-56":[27.969999313354492,2407.489990234375],"6-86-57":[1004.1722412109375,2407.489990234375],"6-86-58":[953.7227783203125,2435.246337890625],"6-86-59":[2297.211181640625,3458.6923828125],"6-86-60":[3395.860107421875,3925.84765625],"6-86-61":[3477.37744140625,3915.116943359375],"6-86-62":[3064.431640625,3500.576171875],"6-86-63":[-29.532499313354492,3065.396484375],"6-87-0":[13.591815948486328,31.438613891601562],"6-87-1":[14.361332893371582,35.36769485473633],"5-43-0":[13.591815948486328,35.53937530517578],"6-87-2":[10.387499809265137,28.831249237060547],"6-87-3":[2.680000066757202,330.29296875],"5-43-1":[2.680000066757202,515.3949584960938],"4-21-0":[2.680000066757202,601.0454711914062],"6-87-4":[-2.1500000953674316,1076.990966796875],"6-87-5":[-10.359999656677246,397.9580383300781],"5-43-2":[-10.359999656677246,1076.990966796875],"6-87-6":[-15.859375,37.99549865722656],"6-87-7":[-16.493946075439453,1223.9254150390625],"5-43-3":[-16.493946075439453,1223.9254150390625],"4-21-1":[-16.493946075439453,1436.7232666015625],"3-10-0":[-16.493946075439453,1436.7232666015625],"6-87-8":[-9.1049165725708,1275.3896484375],"6-87-9":[-9.416341781616211,200.26785278320312],"5-43-4":[-9.416341781616211,1361.21142578125],"6-87-10":[-16.28082275390625,154.2554168701172],"6-87-11":[12.980074882507324,142.52976989746094],"5-43-5":[-16.28082275390625,219.7003173828125],"4-21-2":[-77.23284912109375,1773.7913818359375],"6-87-12":[33.77791976928711,210.7185821533203],"6-87-13":[8.934012413024902,447.897705078125],"5-43-6":[-251.8015594482422,447.897705078125],"6-87-14":[78.72257232666016,1084.5328369140625],"6-87-15":[-9.591490745544434,566.9865112304688],"5-43-7":[-9.591490745544434,1084.5328369140625],"4-21-3":[-251.8015594482422,1624.3941650390625],"3-10-1":[-251.8015594482422,1773.7913818359375],"6-87-16":[64.29000091552734,821.11669921875],"6-87-17":[59.56960678100586,2139.161376953125],"5-43-8":[-65.14035034179688,2139.161376953125],"6-87-18":[168.80569458007812,4103.599609375],"6-87-19":[306.0535888671875,4599.83251953125],"5-43-9":[118.27310943603516,4599.83251953125],"4-21-4":[-108.08636474609375,4599.83251953125],"6-87-20":[773.4352416992188,4772.1142578125],"6-87-21":[-3.5499963760375977,3524.88916015625],"5-43-10":[-3.5499963760375977,4772.1142578125],"6-87-22":[-79.14826965332031,2437.67236328125],"6-87-23":[-101.83999633789062,529.039794921875],"5-43-11":[-101.83999633789062,2575.16650390625],"4-21-5":[-257.74481201171875,4772.1142578125],"3-10-2":[-257.74481201171875,5595.75146484375],"6-87-24":[-118.43000030517578,-45.372501373291016],"6-87-25":[-141.92999267578125,-54.11312484741211],"5-43-12":[-141.92999267578125,-40.847251892089844],"6-87-26":[-150.6981201171875,-61.38249969482422],"6-87-27":[-163.77999877929688,-68.36000061035156],"5-43-13":[-163.77999877929688,-54.847251892089844],"4-21-6":[-163.77999877929688,1992.4886474609375],"6-87-28":[-170.55125427246094,-73.16500091552734],"6-87-29":[-174.44000244140625,-76.65374755859375],"5-43-14":[-174.44000244140625,-63.76183319091797],"6-87-30":[-173.19000244140625,-74.88175201416016],"6-87-31":[-167.30062866210938,-74.44999694824219],"5-43-15":[-173.19000244140625,-65.78291320800781],"4-21-7":[-174.44000244140625,-47.234832763671875],"3-10-3":[-174.44000244140625,2493.234619140625],"6-87-32":[-162.10000610351562,-70.63249969482422],"6-87-33":[-151.06375122070312,-64.32250213623047],"5-43-16":[-162.10000610351562,-57.09108352661133],"6-87-34":[-139.13999938964844,-55.61750030517578],"6-87-35":[-119.36250305175781,-45.345001220703125],"5-43-17":[-139.13999938964844,-36.762664794921875],"4-21-8":[-162.10000610351562,-11.705252647399902],"6-87-36":[-99.81999969482422,-34.09437561035156],"6-87-37":[-73.90937805175781,-24.115400314331055],"5-43-18":[-99.81999969482422,-21.063350677490234],"6-87-38":[-54.68000030517578,-13.140049934387207],"6-87-39":[-30.901874542236328,-5.980000019073486],"5-43-19":[-54.68000030517578,376.4708557128906],"4-21-9":[-99.81999969482422,810.6611938476562],"3-10-4":[-162.10000610351562,3059.5537109375],"6-87-40":[-16.860000610351562,0.26499998569488525],"6-87-41":[-1.5125000476837158,14.594687461853027],"5-43-20":[-16.860000610351562,18.364999771118164],"6-87-42":[5.698419570922852,23.562227249145508],"6-87-43":[10.555000305175781,36.103126525878906],"5-43-21":[5.698419570922852,39.029998779296875],"4-21-10":[-16.860000610351562,52.900001525878906],"6-87-44":[18.375,45.534454345703125],"6-87-45":[20.452499389648438,51.4665641784668],"5-43-22":[18.375,52.92499923706055],"6-87-46":[25.88249969482422,56.5847282409668],"6-87-47":[28.047500610351562,63.43589782714844],"5-43-23":[25.88249969482422,66.33999633789062],"4-21-11":[18.375,82.13999938964844],"3-10-5":[-16.860000610351562,1977.9127197265625],"6-87-48":[31.010000228881836,78.84500122070312],"6-87-49":[35.15812683105469,81.14828491210938],"5-43-24":[31.010000228881836,81.14828491210938],"6-87-50":[34.5724983215332,74.8359375],"6-87-51":[33.7418327331543,72.47937774658203],"5-43-25":[33.7418327331543,75.07125091552734],"4-21-12":[31.010000228881836,84.87249755859375],"6-87-52":[30.616500854492188,72.74615478515625],"6-87-53":[28.030916213989258,63.260955810546875],"5-43-26":[28.030916213989258,72.74615478515625],"6-87-54":[25.926406860351562,57.15625],"6-87-55":[24.41179656982422,55.453125],"5-43-27":[24.41179656982422,60.599998474121094],"4-21-13":[24.41179656982422,1169.1824951171875],"3-10-6":[10.509146690368652,2242.904296875],"6-87-56":[25.66550064086914,1925.53857421875],"6-87-57":[136.322509765625,1897.67236328125],"5-43-28":[25.66550064086914,2407.489990234375],"6-87-58":[355.79998779296875,2297.211181640625],"6-87-59":[2244.47998046875,3491.060302734375],"5-43-29":[355.79998779296875,3491.060302734375],"4-21-14":[25.66550064086914,3491.060302734375],"6-87-60":[3458.6923828125,3965.199951171875],"6-87-61":[3500.576171875,3965.199951171875],"5-43-30":[3395.860107421875,3965.199951171875],"6-87-62":[3065.04248046875,3512.3701171875],"6-87-63":[-29.532499313354492,3065.316162109375],"5-43-31":[-29.532499313354492,3512.3701171875],"4-21-15":[-29.532499313354492,3965.199951171875],"3-10-7":[-29.532499313354492,3965.199951171875],"6-88-0":[13.58133316040039,31.003124237060547],"6-88-1":[13.273750305175781,34.79875183105469],"6-88-2":[9.601875305175781,27.690000534057617],"6-88-3":[1.2999999523162842,19.271249771118164],"6-88-4":[-5.136581897735596,793.4641723632812],"6-88-5":[-12.571249961853027,3.9598333835601807],"6-88-6":[-14.529062271118164,64.33499908447266],"6-88-7":[-18.335311889648438,249.40220642089844],"6-88-8":[-13.238791465759277,223.29156494140625],"6-88-9":[3.217822313308716,226.5132293701172],"6-88-10":[-20.97278594970703,136.46517944335938],"6-88-11":[2.463749408721924,131.77439880371094],"6-88-12":[34.5001335144043,332.4967041015625],"6-88-13":[145.8518829345703,893.054931640625],"6-88-14":[222.12786865234375,731.78369140625],"6-88-15":[55.49120330810547,447.98779296875],"6-88-16":[49.183555603027344,2106.115966796875],"6-88-17":[156.79754638671875,5451.9560546875],"6-88-18":[244.11167907714844,5411.26806640625],"6-88-19":[361.4432678222656,5666.75341796875],"6-88-20":[181.3050537109375,4714.7666015625],"6-88-21":[-15.134298324584961,3432.06591796875],"6-88-22":[-77.26504516601562,1024.233154296875],"6-88-23":[-103.32820129394531,403.1736145019531],"6-88-24":[-126.48409271240234,569.0103759765625],"6-88-25":[-152.375,-59.602500915527344],"6-88-26":[-167.16624450683594,-70.9713363647461],"6-88-27":[-179.30499267578125,-76.12249755859375],"6-88-28":[-187.0712432861328,-81.8981704711914],"6-88-29":[-189.19090270996094,-85.5999984741211],"6-88-30":[-189.77679443359375,-83.95249938964844],"6-88-31":[-187.16543579101562,-81.05816650390625],"6-88-32":[-180.8800048828125,-76.23500061035156],"6-88-33":[-170.45375061035156,-69.57675170898438],"6-88-34":[-155.67250061035156,-60.53499984741211],"6-88-35":[-133.84500122070312,-49.919498443603516],"6-88-36":[-111.16312408447266,-38.442501068115234],"6-88-37":[-85.99564361572266,-27.34749984741211],"6-88-38":[-66.92937469482422,-16.672500610351562],"6-88-39":[-40.71826171875,-8.666500091552734],"6-88-40":[-24.154375076293945,-1.5125000476837158],"6-88-41":[-5.666523456573486,10.449999809265137],"6-88-42":[1.9137500524520874,19.782499313354492],"6-88-43":[7.537499904632568,31.299999237060547],"6-88-44":[12.647500038146973,39.84749984741211],"6-88-45":[17.05500030517578,49.38999938964844],"6-88-46":[21.657499313354492,55.451873779296875],"6-88-47":[26.112499237060547,62.119998931884766],"6-88-48":[30.670534133911133,79.27613067626953],"6-88-49":[-55.81418991088867,1713.785400390625],"6-88-50":[33.89144515991211,78.23722839355469],"6-88-51":[33.400001525878906,70.94000244140625],"6-88-52":[29.734375,72.0718765258789],"6-88-53":[27.21125030517578,63.178749084472656],"6-88-54":[24.13249969482422,56.060001373291016],"6-88-55":[22.304332733154297,50.77000045776367],"6-88-56":[16.286874771118164,1116.816650390625],"6-88-57":[13.9009370803833,1564.498779296875],"6-88-58":[355.79998779296875,2295.873046875],"6-88-59":[2244.131591796875,3490.989990234375],"6-88-60":[3476.04248046875,3997.781982421875],"6-88-61":[3512.3701171875,4001.339111328125],"6-88-62":[3064.809326171875,3523.625],"6-88-63":[-29.53266716003418,3065.04248046875],"6-89-0":[13.609577178955078,30.404550552368164],"6-89-1":[13.245499610900879,33.534568786621094],"5-44-0":[13.245499610900879,34.79875183105469],"6-89-2":[9.342499732971191,26.420936584472656],"6-89-3":[1.068416714668274,16.781875610351562],"5-44-1":[1.068416714668274,27.690000534057617],"6-89-4":[-9.3540620803833,2.275624990463257],"6-89-5":[-14.345000267028809,7.8828125],"5-44-2":[-14.345000267028809,793.4641723632812],"6-89-6":[-19.824687957763672,60.29865264892578],"6-89-7":[-28.709999084472656,104.262451171875],"5-44-3":[-28.709999084472656,249.40220642089844],"6-89-8":[-30.5887508392334,100.52874755859375],"6-89-9":[14.747859001159668,139.62506103515625],"5-44-4":[-30.5887508392334,226.5132293701172],"6-89-10":[-23.631439208984375,118.5112533569336],"6-89-11":[12.073504447937012,117.66683197021484],"5-44-5":[-23.631439208984375,136.46517944335938],"6-89-12":[-17.41826057434082,204.1189422607422],"6-89-13":[-52.69059371948242,749.6593627929688],"5-44-6":[-52.69059371948242,893.054931640625],"6-89-14":[235.46090698242188,1122.4857177734375],"6-89-15":[163.0922088623047,1082.593994140625],"5-44-7":[55.49120330810547,1122.4857177734375],"6-89-16":[148.1405792236328,4445.77294921875],"6-89-17":[252.71728515625,5979.54150390625],"5-44-8":[49.183555603027344,5979.54150390625],"6-89-18":[784.1422119140625,7425.21533203125],"6-89-20":[59.848262786865234,2777.07177734375],"6-89-19":[190.61822509765625,7670.16748046875],"5-44-9":[190.61822509765625,7670.16748046875],"6-89-21":[3.236844539642334,1028.72265625],"5-44-10":[-15.134298324584961,4714.7666015625],"6-89-22":[-10.17637825012207,913.4779663085938],"6-89-23":[-89.15397644042969,1654.095947265625],"5-44-11":[-103.32820129394531,1654.095947265625],"6-89-24":[-133.03619384765625,1010.3441162109375],"6-89-25":[-155.7637481689453,598.42578125],"5-44-12":[-155.7637481689453,1010.3441162109375],"6-89-26":[-173.22425842285156,-75.99773406982422],"6-89-27":[-184.154052734375,-67.66439819335938],"5-44-13":[-184.154052734375,-67.66439819335938],"6-89-28":[-193.1654510498047,-72.32279205322266],"6-89-29":[-194.62850952148438,-67.67924499511719],"5-44-14":[-194.62850952148438,-67.67924499511719],"6-89-30":[-195.23562622070312,-67.2073745727539],"6-89-31":[-194.80885314941406,-43.56918716430664],"5-44-15":[-195.23562622070312,-43.56918716430664],"6-89-32":[-191.20252990722656,-78.05555725097656],"6-89-33":[-180.9600067138672,-40.52687072753906],"5-44-16":[-191.20252990722656,-40.52687072753906],"6-89-34":[-165.0449981689453,-37.609893798828125],"6-89-35":[-149.6699981689453,-56.07749938964844],"5-44-17":[-165.0449981689453,-37.609893798828125],"6-89-36":[-128.72000122070312,-45.30812454223633],"6-89-37":[-102.86812591552734,-34.290000915527344],"5-44-18":[-128.72000122070312,-27.34749984741211],"6-89-38":[-81.8499984741211,-22.521875381469727],"6-89-39":[-54.744998931884766,-12.774999618530273],"5-44-19":[-81.8499984741211,-8.666500091552734],"6-89-40":[-37.18000030517578,-4.349999904632568],"6-89-41":[-16.369688034057617,3.125312566757202],"5-44-20":[-37.18000030517578,10.449999809265137],"6-89-42":[-2.9700000286102295,13.038398742675781],"6-89-43":[4.233749866485596,24.3331241607666],"5-44-21":[-2.9700000286102295,31.299999237060547],"6-89-44":[9.980838775634766,32.1579475402832],"6-89-45":[13.896249771118164,42.416873931884766],"5-44-22":[9.980838775634766,49.38999938964844],"6-89-46":[21.657499313354492,50.574649810791016],"6-89-47":[23.209999084472656,61.34000015258789],"5-44-23":[21.657499313354492,62.119998931884766],"6-89-48":[28.470733642578125,76.09500122070312],"6-89-49":[32.489540100097656,302.7770080566406],"5-44-24":[-55.81418991088867,1713.785400390625],"6-89-50":[6.342123985290527,315.341552734375],"6-89-51":[32.786834716796875,72.04261779785156],"5-44-25":[6.342123985290527,315.341552734375],"6-89-52":[28.917030334472656,68.60242462158203],"6-89-53":[26.945667266845703,58.87214660644531],"5-44-26":[26.945667266845703,72.0718765258789],"6-89-54":[21.202499389648438,53.897499084472656],"6-89-55":[21.202499389648438,49.05253982543945],"5-44-27":[21.202499389648438,56.060001373291016],"6-89-56":[16.076641082763672,392.2562561035156],"6-89-57":[13.9009370803833,1769.27001953125],"5-44-28":[13.9009370803833,1769.27001953125],"6-89-58":[1383.42626953125,2436.166259765625],"6-89-59":[2295.873046875,3484.925048828125],"5-44-29":[355.79998779296875,3490.989990234375],"6-89-60":[3476.04248046875,4020.699951171875],"6-89-61":[3523.625,4020.699951171875],"5-44-30":[3476.04248046875,4020.699951171875],"6-89-62":[3063.5986328125,3529.72998046875],"6-89-63":[-29.53266716003418,3064.809326171875],"5-44-31":[-29.53266716003418,3529.72998046875],"6-90-0":[13.567000389099121,29.920625686645508],"6-90-1":[12.1875,32.384376525878906],"6-90-2":[9.210624694824219,25.5],"6-90-3":[0.2549999952316284,16.052715301513672],"6-90-4":[-11.922402381896973,1.309999942779541],"6-90-5":[-15.175000190734863,-4.479052543640137],"6-90-6":[-19.824687957763672,102.1339340209961],"6-90-7":[-28.88312530517578,97.20354461669922],"6-90-8":[-30.5887508392334,91.647705078125],"6-90-9":[11.335124969482422,169.40936279296875],"6-90-10":[-26.47713851928711,102.5190200805664],"6-90-11":[16.218286514282227,130.7038116455078],"6-90-12":[-4.562238693237305,132.7057342529297],"6-90-13":[-44.98386001586914,965.2605590820312],"6-90-14":[341.6103210449219,1507.2652587890625],"6-90-15":[71.29281616210938,1151.872802734375],"6-90-16":[241.76966857910156,4807.3486328125],"6-90-17":[805.574462890625,6513.203125],"6-90-18":[1232.72265625,7543.40625],"6-90-20":[101.67042541503906,5343.3193359375],"6-90-21":[81.23748016357422,447.7905578613281],"6-90-22":[129.0603485107422,997.9905395507812],"6-90-19":[396.4926452636719,8087.95751953125],"6-90-23":[-71.00019836425781,1264.9271240234375],"6-90-24":[-72.07383728027344,1499.2198486328125],"6-90-25":[-97.08061218261719,1527.7735595703125],"6-90-26":[-172.10037231445312,969.7511596679688],"6-90-27":[-189.49366760253906,1943.77294921875],"6-90-28":[-199.6003875732422,132.04934692382812],"6-90-29":[-204.1074981689453,-76.78763580322266],"6-90-30":[-205.06118774414062,-73.55055236816406],"6-90-31":[-204.42152404785156,-69.2811508178711],"6-90-32":[-200.90249633789062,-74.10244750976562],"6-90-33":[-190.6924285888672,-82.52249908447266],"6-90-34":[-178.24188232421875,-74.83499908447266],"6-90-35":[-156.7588653564453,-64.37033081054688],"6-90-36":[-137.015625,-52.73625183105469],"6-90-37":[-110.71424102783203,-40.93366622924805],"6-90-38":[-90.73406219482422,-28.8075008392334],"6-90-39":[-64.93965148925781,-19.043500900268555],"6-90-40":[-47.64374923706055,-9.273750305175781],"6-90-41":[-26.358476638793945,-1.846333384513855],"6-90-42":[-11.943437576293945,7.030312538146973],"6-90-43":[1.097499966621399,18.969999313354492],"6-90-44":[6.574999809265137,26.735937118530273],"6-90-45":[11.562032699584961,36.439998626708984],"6-90-46":[16.22953224182129,45.24531173706055],"6-90-47":[21.291250228881836,56.939998626708984],"6-90-48":[26.157499313354492,64.97750091552734],"6-90-49":[29.487499237060547,73.83999633789062],"6-90-50":[27.757192611694336,2779.40234375],"6-90-51":[30.57604217529297,74.04125213623047],"6-90-52":[29.342500686645508,65.79000091552734],"6-90-53":[23.637500762939453,58.33574295043945],"6-90-54":[20.446874618530273,50.43000030517578],"6-90-55":[17.327655792236328,44.94062423706055],"6-90-56":[15.751041412353516,1525.6346435546875],"6-90-57":[392.2562561035156,2210.2412109375],"6-90-58":[1769.27001953125,2619.184326171875],"6-90-59":[2436.166259765625,3487.592529296875],"6-90-60":[3484.4853515625,4037.864013671875],"6-90-61":[3527.594970703125,4030.894287109375],"6-90-62":[3063.362548828125,3530.3095703125],"6-90-63":[-29.53266716003418,3064.81396484375],"6-91-0":[13.586562156677246,29.323749542236328],"6-91-1":[12.1875,31.001249313354492],"5-45-0":[12.1875,32.384376525878906],"6-91-2":[8.560308456420898,24.234375],"6-91-3":[-0.3400000035762787,15.883125305175781],"5-45-1":[-0.3400000035762787,25.5],"4-22-0":[-0.3400000035762787,34.79875183105469],"6-91-4":[-13.014726638793945,0.3643749952316284],"6-91-5":[-17.459999084472656,-5.581953048706055],"5-45-2":[-17.459999084472656,1.309999942779541],"6-91-6":[-19.991405487060547,101.99349975585938],"6-91-7":[-29.042499542236328,103.00816345214844],"5-45-3":[-29.042499542236328,103.00816345214844],"4-22-1":[-29.042499542236328,793.4641723632812],"6-91-8":[-29.042499542236328,81.74091339111328],"6-91-9":[-9.532187461853027,122.71709442138672],"5-45-4":[-30.5887508392334,169.40936279296875],"6-91-10":[-28.838241577148438,110.80467224121094],"6-91-11":[16.809194564819336,118.6754379272461],"5-45-5":[-28.838241577148438,130.7038116455078],"4-22-2":[-30.5887508392334,226.5132293701172],"6-91-12":[41.21223831176758,133.67994689941406],"6-91-13":[17.89723014831543,487.7553405761719],"5-45-6":[-44.98386001586914,965.2605590820312],"6-91-14":[131.95521545410156,1504.9158935546875],"6-91-15":[271.4757995605469,1384.8092041015625],"5-45-7":[71.29281616210938,1507.2652587890625],"4-22-3":[-52.69059371948242,1507.2652587890625],"6-91-16":[329.52978515625,4930.9462890625],"6-91-17":[1039.8211669921875,5827.626953125],"5-45-8":[241.76966857910156,6513.203125],"6-91-18":[1051.98046875,6379.7509765625],"6-91-19":[2249.39453125,8560.572265625],"5-45-9":[396.4926452636719,8560.572265625],"4-22-4":[49.183555603027344,8560.572265625],"6-91-20":[176.06027221679688,6725.078125],"6-91-21":[96.74449157714844,4563.5791015625],"5-45-10":[81.23748016357422,6725.078125],"6-91-22":[31.65577507019043,732.7535400390625],"6-91-23":[133.09837341308594,994.2244873046875],"5-45-11":[-71.00019836425781,1264.9271240234375],"4-22-5":[-103.32820129394531,6725.078125],"6-91-24":[88.59796905517578,1273.2572021484375],"6-91-25":[133.6719970703125,698.37109375],"5-45-12":[-97.08061218261719,1527.7735595703125],"6-91-26":[29.034944534301758,1069.766845703125],"6-91-27":[-98.97490692138672,2543.214111328125],"5-45-13":[-189.49366760253906,2543.214111328125],"4-22-6":[-189.49366760253906,2543.214111328125],"6-91-28":[-197.24874877929688,2590.236083984375],"6-91-29":[-213.048828125,1544.9346923828125],"5-45-14":[-213.048828125,2590.236083984375],"6-91-30":[-213.8937530517578,-102.05374908447266],"6-91-31":[-208.08250427246094,-100.58000183105469],"5-45-15":[-213.8937530517578,-69.2811508178711],"4-22-7":[-213.8937530517578,2590.236083984375],"6-91-32":[-205.63999938964844,-96.41999816894531],"6-91-33":[-194.0124969482422,-89.47624969482422],"5-45-16":[-205.63999938964844,-74.10244750976562],"6-91-34":[-182.41000366210938,-79.86937713623047],"6-91-35":[-161.3507080078125,-69.08999633789062],"5-45-17":[-182.41000366210938,-64.37033081054688],"4-22-8":[-205.63999938964844,-37.609893798828125],"6-91-36":[-142.1999969482422,-57.493125915527344],"6-91-37":[-116.72624969482422,-45.588748931884766],"5-45-18":[-142.1999969482422,-40.93366622924805],"6-91-38":[-98.12999725341797,-34.544376373291016],"6-91-39":[-76.38500213623047,-24.502500534057617],"5-45-19":[-98.12999725341797,-19.043500900268555],"4-22-9":[-142.1999969482422,-8.666500091552734],"6-91-40":[-59.560001373291016,-14.97249984741211],"6-91-41":[-39.682498931884766,-6.642499923706055],"5-45-20":[-59.560001373291016,-1.846333384513855],"6-91-42":[-24.549999237060547,1.097499966621399],"6-91-43":[-6.230625152587891,12.329375267028809],"5-45-21":[-24.549999237060547,18.969999313354492],"4-22-10":[-59.560001373291016,31.299999237060547],"6-91-44":[3.6900084018707275,23.122499465942383],"6-91-45":[-0.4597697854042053,882.58056640625],"5-45-22":[-0.4597697854042053,882.58056640625],"6-91-46":[14.12126636505127,40.83732604980469],"6-91-47":[18.737499237060547,51.82062530517578],"5-45-23":[14.12126636505127,56.939998626708984],"4-22-11":[-0.4597697854042053,882.58056640625],"6-91-48":[26.157499313354492,57.62826156616211],"6-91-49":[26.587499618530273,64.21499633789062],"5-45-24":[26.157499313354492,73.83999633789062],"6-91-50":[28.514999389648438,71.31187438964844],"6-91-51":[27.465333938598633,68.42758178710938],"5-45-25":[27.465333938598633,2779.40234375],"4-22-12":[-55.81418991088867,2779.40234375],"6-91-52":[27.545000076293945,61.2189826965332],"6-91-53":[23.637500762939453,57.258731842041016],"5-45-26":[23.637500762939453,65.79000091552734],"6-91-54":[18.377500534057617,46.64437484741211],"6-91-55":[17.303916931152344,38.657928466796875],"5-45-27":[17.303916931152344,50.43000030517578],"4-22-13":[17.303916931152344,72.0718765258789],"6-91-56":[15.751041412353516,1873.5450439453125],"6-91-57":[1472.92919921875,2662.64501953125],"5-45-28":[15.751041412353516,2662.64501953125],"6-91-58":[2210.2412109375,2841.820068359375],"6-91-59":[2619.184326171875,3506.7099609375],"5-45-29":[1769.27001953125,3506.7099609375],"4-22-14":[13.9009370803833,3506.7099609375],"6-91-60":[3487.592529296875,4042.030029296875],"6-91-61":[3516.409912109375,4030.726318359375],"5-45-30":[3484.4853515625,4042.030029296875],"6-91-62":[3063.050048828125,3527.594970703125],"6-91-63":[-29.53266716003418,3066.410400390625],"5-45-31":[-29.53266716003418,3530.3095703125],"4-22-15":[-29.53266716003418,4042.030029296875],"6-92-0":[13.552666664123535,28.873125076293945],"6-92-1":[11.244999885559082,30.231250762939453],"6-92-2":[7.88937520980835,23.270000457763672],"6-92-3":[-1.4443750381469727,283.88800048828125],"6-92-4":[-12.524999618530273,-0.3400000035762787],"6-92-5":[-17.930936813354492,255.30909729003906],"6-92-6":[-21.305137634277344,243.7481231689453],"6-92-7":[-24.360000610351562,117.75812530517578],"6-92-8":[-24.360000610351562,64.42933654785156],"6-92-9":[-19.865156173706055,203.6481475830078],"6-92-10":[-30.157249450683594,114.51226043701172],"6-92-11":[9.322805404663086,125.14555358886719],"6-92-12":[63.096519470214844,235.4797821044922],"6-92-13":[48.158748626708984,478.2939147949219],"6-92-14":[109.62982177734375,1419.865234375],"6-92-15":[276.3157043457031,4532.619140625],"6-92-16":[432.3592529296875,6633.61328125],"6-92-17":[908.5514526367188,7087.39013671875],"6-92-18":[1029.3973388671875,4976.92919921875],"6-92-19":[1276.560546875,7022.2939453125],"6-92-20":[2453.791748046875,7194.46435546875],"6-92-21":[35.378177642822266,7787.5625],"6-92-22":[-15.193840980529785,295.9892272949219],"6-92-23":[-6.9275007247924805,1069.667724609375],"6-92-24":[29.90353012084961,1095.7015380859375],"6-92-25":[-88.55541229248047,1197.86083984375],"6-92-26":[-182.74554443359375,1006.7289428710938],"6-92-27":[-197.06805419921875,1132.4154052734375],"6-92-28":[-198.1790313720703,434.79119873046875],"6-92-29":[-212.75,2430.441162109375],"6-92-30":[-213.8937530517578,-101.01366424560547],"6-92-31":[-207.86573791503906,-100.16500091552734],"6-92-32":[-205.7881317138672,-94.42375183105469],"6-92-33":[-194.99867248535156,-88.59750366210938],"6-92-34":[-182.47906494140625,-79.41187286376953],"6-92-35":[-161.33999633789062,-70.63749694824219],"6-92-36":[-142.3681182861328,-59.6775016784668],"6-92-37":[-120.52989959716797,-49.07083511352539],"6-92-38":[-104.91656494140625,-39.42250061035156],"6-92-39":[-84.2617416381836,-29.785499572753906],"6-92-40":[-67.55062866210938,-20.850000381469727],"6-92-41":[-47.52839660644531,-12.672750473022461],"6-92-42":[-33.5525016784668,-4.079999923706055],"6-92-43":[-15.914589881896973,6.039999961853027],"6-92-44":[-3.1006250381469727,19.260000228881836],"6-92-45":[3.143749952316284,28.239999771118164],"6-92-46":[9.412500381469727,36.282501220703125],"6-92-47":[15.617500305175781,46.41999816894531],"6-92-48":[19.592500686645508,52.380001068115234],"6-92-49":[23.344375610351562,58.25749969482422],"6-92-50":[24.555625915527344,61.501251220703125],"6-92-51":[20.830078125,56.560001373291016],"6-92-52":[20.979999542236328,56.282501220703125],"6-92-53":[20.931249618530273,53.696876525878906],"6-92-54":[15.672499656677246,43.91999816894531],"6-92-55":[14.254500389099121,36.2400016784668],"6-92-56":[15.39273452758789,2339.168701171875],"6-92-57":[1873.5450439453125,2935.3125],"6-92-58":[2662.64501953125,3173.46630859375],"6-92-59":[2841.820068359375,3593.62255859375],"6-92-60":[3506.7099609375,4042.030029296875],"6-92-61":[3499.1923828125,4001.034912109375],"6-92-62":[3062.85498046875,3516.409912109375],"6-92-63":[-29.532833099365234,3066.457763671875],"6-93-0":[13.5625,28.301698684692383],"6-93-1":[11.244999885559082,29.443553924560547],"5-46-0":[11.244999885559082,30.231250762939453],"6-93-2":[7.364999771118164,22.420625686645508],"6-93-3":[-1.9299999475479126,13.277421951293945],"5-46-1":[-1.9299999475479126,283.88800048828125],"6-93-4":[-12.519062042236328,9.412812232971191],"6-93-5":[-19.037500381469727,346.131103515625],"5-46-2":[-19.037500381469727,346.131103515625],"6-93-6":[-25.923124313354492,405.5068664550781],"6-93-7":[-28.697500228881836,174.15170288085938],"5-46-3":[-28.697500228881836,405.5068664550781],"6-93-8":[-19.05309295654297,149.96734619140625],"6-93-9":[-3.702597141265869,236.05438232421875],"5-46-4":[-24.360000610351562,236.05438232421875],"6-93-10":[-30.256254196166992,155.45314025878906],"6-93-11":[10.194197654724121,162.80654907226562],"5-46-5":[-30.256254196166992,162.80654907226562],"6-93-12":[-1.5191590785980225,446.70294189453125],"6-93-13":[73.3392333984375,2380.395263671875],"5-46-6":[-1.5191590785980225,2380.395263671875],"6-93-14":[23.355884552001953,2711.999755859375],"6-93-15":[124.82964324951172,3961.7666015625],"5-46-7":[23.355884552001953,4532.619140625],"6-93-16":[105.6257553100586,5107.7392578125],"6-93-17":[837.9389038085938,3794.392578125],"5-46-8":[105.6257553100586,7087.39013671875],"6-93-18":[954.9082641601562,6062.90625],"6-93-19":[1693.30126953125,6911.7255859375],"5-46-9":[954.9082641601562,7022.2939453125],"6-93-20":[4293.12451171875,6600.17236328125],"6-93-21":[81.1865005493164,8103.54638671875],"5-46-10":[35.378177642822266,8103.54638671875],"6-93-22":[-46.1298942565918,2512.348876953125],"6-93-23":[-31.314592361450195,1178.4508056640625],"5-46-11":[-46.1298942565918,2512.348876953125],"6-93-24":[-19.455522537231445,1262.4283447265625],"6-93-25":[-161.44671630859375,1608.785888671875],"5-46-12":[-161.44671630859375,1608.785888671875],"6-93-26":[-181.91749572753906,-37.98592758178711],"6-93-27":[-194.56500244140625,-86.28109741210938],"5-46-13":[-197.06805419921875,1132.4154052734375],"6-93-28":[-196.81883239746094,-88.67076873779297],"6-93-29":[-203.20335388183594,351.89337158203125],"5-46-14":[-212.75,2430.441162109375],"6-93-30":[-206.91864013671875,-92.98341369628906],"6-93-31":[-203.7803192138672,-91.4643325805664],"5-46-15":[-213.8937530517578,-91.4643325805664],"6-93-32":[-197.9600067138672,-88.46499633789062],"6-93-33":[-185.93638610839844,-84.21941375732422],"5-46-16":[-205.7881317138672,-84.21941375732422],"6-93-34":[-175.58062744140625,-76.82875061035156],"6-93-35":[-155.41310119628906,-69.1346664428711],"5-46-17":[-182.47906494140625,-69.1346664428711],"6-93-36":[-142.65875244140625,-61.654998779296875],"6-93-37":[-126.4565658569336,-53.23749923706055],"5-46-18":[-142.65875244140625,-49.07083511352539],"6-93-38":[-113.56999969482422,-44.203125],"6-93-39":[-92.3421859741211,-34.337501525878906],"5-46-19":[-113.56999969482422,-29.785499572753906],"6-93-40":[-75.44000244140625,-25.323749542236328],"6-93-41":[-57.42625045776367,-17.514999389648438],"5-46-20":[-75.44000244140625,-12.672750473022461],"6-93-42":[-43.8650016784668,-9.491874694824219],"6-93-43":[-26.5262508392334,-2.265000104904175],"5-46-21":[-43.8650016784668,6.039999961853027],"6-93-44":[-14.65999984741211,3.6815428733825684],"6-93-45":[-1.2324999570846558,17.6953125],"5-46-22":[-14.65999984741211,28.239999771118164],"6-93-46":[5.937505722045898,28.982011795043945],"6-93-47":[11.241250038146973,38.29999923706055],"5-46-23":[5.937505722045898,46.41999816894531],"6-93-48":[19.381250381469727,44.78382873535156],"6-93-49":[19.381250381469727,49.766876220703125],"5-46-24":[19.381250381469727,58.25749969482422],"6-93-50":[20.90999984741211,50.42789077758789],"6-93-51":[20.830078125,47.64011764526367],"5-46-25":[20.830078125,61.501251220703125],"6-93-52":[18.263750076293945,48.45661926269531],"6-93-53":[18.263750076293945,48.78290939331055],"5-46-26":[18.263750076293945,56.282501220703125],"6-93-54":[14.046250343322754,41],"6-93-55":[13.542275428771973,635.1649780273438],"5-46-27":[13.542275428771973,635.1649780273438],"6-93-56":[15.529999732971191,2519.016357421875],"6-93-57":[2339.168701171875,3197.53759765625],"5-46-28":[15.39273452758789,3197.53759765625],"6-93-58":[2935.3125,3364.120361328125],"6-93-59":[3109.51416015625,3621.1201171875],"5-46-29":[2662.64501953125,3621.1201171875],"6-93-60":[3593.62255859375,4025.50390625],"6-93-61":[3480.012451171875,3923.73681640625],"5-46-30":[3480.012451171875,4042.030029296875],"6-93-62":[3063.461181640625,3499.1923828125],"6-93-63":[-29.532833099365234,3067.14306640625],"5-46-31":[-29.532833099365234,3516.409912109375],"6-94-0":[13.476458549499512,27.846874237060547],"6-94-1":[10.9375,28.840312957763672],"6-94-2":[6.214921951293945,22.114999771118164],"6-94-3":[-2.734375,11.475312232971191],"6-94-4":[-13.512598037719727,-1.4375],"6-94-5":[-19.783437728881836,311.620361328125],"6-94-6":[-11.514724731445312,248.41746520996094],"6-94-7":[-28.697500228881836,355.1006164550781],"6-94-8":[-17.894899368286133,176.79124450683594],"6-94-9":[-7.9386749267578125,232.9547882080078],"6-94-10":[-30.82672691345215,204.2724609375],"6-94-11":[21.880521774291992,252.0951690673828],"6-94-12":[-18.20566177368164,544.6852416992188],"6-94-13":[103.65641021728516,2652.02978515625],"6-94-14":[329.8445739746094,4375.84033203125],"6-94-15":[163.3590087890625,3786.9638671875],"6-94-16":[217.97764587402344,5220.27294921875],"6-94-17":[745.639404296875,3644.019775390625],"6-94-18":[804.6489868164062,6686.69580078125],"6-94-19":[4212.1767578125,6437.4970703125],"6-94-20":[4352.91064453125,6733.8291015625],"6-94-21":[458.231201171875,8019.75927734375],"6-94-22":[-62.141639709472656,8777.140625],"6-94-23":[-49.500640869140625,1317.615234375],"6-94-24":[-131.4813690185547,1124.06640625],"6-94-25":[-160.9949951171875,1331.0523681640625],"6-94-26":[-174.0565185546875,-73.06270599365234],"6-94-27":[-177.33999633789062,-76.23312377929688],"6-94-28":[-181.49749755859375,-77.26687622070312],"6-94-29":[-187.39207458496094,-77.29812622070312],"6-94-30":[-187.31500244140625,-78.625],"6-94-31":[-187.51593017578125,-78.17749786376953],"6-94-32":[-182.91000366210938,-76.46925354003906],"6-94-33":[-176.39093017578125,-74.65125274658203],"6-94-34":[-168.4250030517578,-71.13500213623047],"6-94-35":[-151.13687133789062,-67.72250366210938],"6-94-36":[-139.59750366210938,-60.575748443603516],"6-94-37":[-126.4565658569336,-54.127498626708984],"6-94-38":[-114.2153091430664,-45.30875015258789],"6-94-39":[-93.07464599609375,-37.724998474121094],"6-94-40":[-77.94499969482422,-29.614999771118164],"6-94-41":[-61.7766227722168,-22.17366600036621],"6-94-42":[-50.698123931884766,-14.140000343322754],"6-94-43":[-33.48966979980469,-7.533666610717773],"6-94-44":[-21.329374313354492,-1.2324999570846558],"6-94-45":[-8.9818754196167,10.59000015258789],"6-94-46":[0.5662500262260437,21.4090633392334],"6-94-47":[7.518125057220459,31.899999618530273],"6-94-48":[11.75,38.11406326293945],"6-94-49":[15.47249984741211,42.61000061035156],"6-94-50":[16.8331241607666,42.875],"6-94-51":[15.607500076293945,40.974063873291016],"6-94-52":[12.936875343322754,36.11000061035156],"6-94-53":[11.482500076293945,39.696876525878906],"6-94-54":[10.618749618530273,32.64500045776367],"6-94-55":[10.624747276306152,1029.092529296875],"6-94-56":[635.1649780273438,2637.603759765625],"6-94-57":[2519.016357421875,3300.4775390625],"6-94-58":[3197.53759765625,3450.967529296875],"6-94-59":[3321.28955078125,3672.405029296875],"6-94-60":[3621.1201171875,3954.969482421875],"6-94-61":[3420.25634765625,3850.876220703125],"6-94-62":[3064.94580078125,3480.012451171875],"6-94-63":[-29.532833099365234,3067.904052734375],"6-95-0":[13.314408302307129,27.292402267456055],"6-95-1":[10.9375,27.934999465942383],"5-47-0":[10.9375,28.840312957763672],"6-95-2":[6.207980632781982,21.836875915527344],"6-95-3":[-3.2799999713897705,10.210000038146973],"5-47-1":[-3.2799999713897705,22.114999771118164],"4-23-0":[-3.2799999713897705,283.88800048828125],"6-95-4":[-13.562714576721191,46.559749603271484],"6-95-5":[-14.68017578125,348.5869140625],"5-47-2":[-19.783437728881836,348.5869140625],"6-95-6":[-9.3860502243042,401.3263854980469],"6-95-7":[-9.938124656677246,941.0604248046875],"5-47-3":[-28.697500228881836,941.0604248046875],"4-23-1":[-28.697500228881836,941.0604248046875],"3-11-0":[-29.042499542236328,941.0604248046875],"6-95-8":[-21.589235305786133,733.228515625],"6-95-9":[-13.858083724975586,628.729736328125],"5-47-4":[-21.589235305786133,733.228515625],"6-95-10":[-32.567440032958984,242.84942626953125],"6-95-11":[53.10066604614258,262.7790222167969],"5-47-5":[-32.567440032958984,262.7790222167969],"4-23-2":[-32.567440032958984,733.228515625],"6-95-12":[74.14888763427734,2173.732666015625],"6-95-13":[176.51329040527344,3529.693359375],"5-47-6":[-18.20566177368164,3529.693359375],"6-95-14":[474.07928466796875,4279.83447265625],"6-95-15":[301.4472351074219,3328.40234375],"5-47-7":[163.3590087890625,4375.84033203125],"4-23-3":[-18.20566177368164,4532.619140625],"3-11-1":[-52.69059371948242,4532.619140625],"2-5-0":[-251.8015594482422,4532.619140625],"6-95-16":[-260.4971008300781,4987.0830078125],"6-95-17":[619.6075439453125,2654.789306640625],"5-47-8":[-260.4971008300781,5220.27294921875],"6-95-18":[731.8682250976562,6201.26318359375],"6-95-19":[4444.4189453125,6890.39306640625],"5-47-9":[731.8682250976562,6890.39306640625],"4-23-4":[-260.4971008300781,7087.39013671875],"6-95-20":[4425.1494140625,6254.62451171875],"6-95-21":[988.3388061523438,7070.265625],"5-47-10":[458.231201171875,8019.75927734375],"6-95-22":[-69.57247924804688,8478.3935546875],"6-95-23":[-139.7662811279297,533.6275024414062],"5-47-11":[-139.7662811279297,8777.140625],"4-23-5":[-139.7662811279297,8777.140625],"3-11-2":[-260.4971008300781,8777.140625],"6-95-24":[-131.4190673828125,26.159215927124023],"6-95-25":[-146.12249755859375,-61.404998779296875],"5-47-12":[-160.9949951171875,1331.0523681640625],"6-95-26":[-150.9558563232422,-63.404998779296875],"6-95-27":[-152.35562133789062,-64.19000244140625],"5-47-13":[-177.33999633789062,-63.404998779296875],"4-23-6":[-197.06805419921875,1608.785888671875],"6-95-28":[-152.6035614013672,-62.125],"6-95-29":[-153.0497283935547,-59.7702751159668],"5-47-14":[-187.39207458496094,-59.7702751159668],"6-95-30":[-153.21910095214844,-59.814998626708984],"6-95-31":[-153.96902465820312,-60.33000183105469],"5-47-15":[-187.51593017578125,-59.814998626708984],"4-23-7":[-213.8937530517578,2430.441162109375],"3-11-3":[-213.8937530517578,2590.236083984375],"2-5-1":[-260.4971008300781,8777.140625],"1-2-0":[-398.5462646484375,8777.140625],"6-95-32":[-153.8304443359375,-61.96833419799805],"6-95-33":[-150.15560913085938,-62.76750183105469],"5-47-16":[-182.91000366210938,-61.96833419799805],"6-95-34":[-147.06312561035156,-63.181331634521484],"6-95-35":[-139.2858428955078,-62.21666717529297],"5-47-17":[-168.4250030517578,-62.21666717529297],"4-23-8":[-205.7881317138672,-61.96833419799805],"6-95-36":[-135.35812377929688,-58.3033332824707],"6-95-37":[-121.03640747070312,-51.25699996948242],"5-47-18":[-139.59750366210938,-51.25699996948242],"6-95-38":[-111.36687469482422,-44.80890655517578],"6-95-39":[-96.38074493408203,-38.31050109863281],"5-47-19":[-114.2153091430664,-37.724998474121094],"4-23-9":[-142.65875244140625,-29.785499572753906],"3-11-4":[-205.7881317138672,-8.666500091552734],"6-95-40":[-87.27999877929688,-30.973125457763672],"6-95-41":[-73.29937744140625,-25.908750534057617],"5-47-20":[-87.27999877929688,-22.17366600036621],"6-95-42":[-61.2400016784668,-17.399843215942383],"6-95-43":[-45.2131233215332,-11.387499809265137],"5-47-21":[-61.2400016784668,-7.533666610717773],"4-23-10":[-87.27999877929688,6.039999961853027],"6-95-44":[-34.86000061035156,-6.029375076293945],"6-95-45":[-20.892499923706055,0.5662500262260437],"5-47-22":[-34.86000061035156,10.59000015258789],"6-95-46":[-8.300000190734863,12.6572265625],"6-95-47":[2.817500114440918,22.587499618530273],"5-47-23":[-8.300000190734863,31.899999618530273],"4-23-11":[-34.86000061035156,46.41999816894531],"3-11-5":[-87.27999877929688,882.58056640625],"2-5-2":[-205.7881317138672,3059.5537109375],"6-95-48":[11.137499809265137,29.282636642456055],"6-95-49":[11.137499809265137,33.21500015258789],"5-47-24":[11.137499809265137,42.61000061035156],"6-95-50":[13.3774995803833,33.57402420043945],"6-95-51":[13.3774995803833,32.63589859008789],"5-47-25":[13.3774995803833,42.875],"4-23-12":[11.137499809265137,61.501251220703125],"6-95-52":[10.234999656677246,30.481874465942383],"6-95-53":[10.234999656677246,23.794530868530273],"5-47-26":[10.234999656677246,39.696876525878906],"6-95-54":[6.789999961853027,21.98062515258789],"6-95-55":[6.789999961853027,1290.050048828125],"5-47-27":[6.789999961853027,1290.050048828125],"4-23-13":[6.789999961853027,1290.050048828125],"3-11-6":[-55.81418991088867,2779.40234375],"6-95-56":[1007.5287475585938,2688.642578125],"6-95-57":[2637.603759765625,3479.010009765625],"5-47-28":[635.1649780273438,3479.010009765625],"6-95-58":[3300.4775390625,3627.6298828125],"6-95-59":[3450.967529296875,3738.389892578125],"5-47-29":[3197.53759765625,3738.389892578125],"4-23-14":[15.39273452758789,3738.389892578125],"6-95-60":[3672.405029296875,3883.618408203125],"6-95-61":[3372.97998046875,3781.93115234375],"5-47-30":[3372.97998046875,3954.969482421875],"6-95-62":[3066.60498046875,3420.25634765625],"6-95-63":[-29.533000946044922,3069.770751953125],"5-47-31":[-29.533000946044922,3480.012451171875],"4-23-15":[-29.533000946044922,4042.030029296875],"3-11-7":[-29.533000946044922,4042.030029296875],"2-5-3":[-55.81418991088867,4042.030029296875],"1-2-1":[-242.8247528076172,5869.54736328125],"6-96-0":[13.052812576293945,27.113750457763672],"6-96-1":[10.662500381469727,27.25],"6-96-2":[6.325405597686768,21.59000015258789],"6-96-3":[-3.804374933242798,327.89617919921875],"6-96-4":[-13.969433784484863,41.968257904052734],"6-96-5":[-14.510624885559082,491.92535400390625],"6-96-6":[-12.8301362991333,766.6072387695312],"6-96-7":[15.52994441986084,1577.69482421875],"6-96-8":[23.062108993530273,974.8023681640625],"6-96-9":[0.5107666850090027,751.0200805664062],"6-96-10":[-32.160579681396484,917.0142822265625],"6-96-11":[22.51589012145996,457.26171875],"6-96-12":[87.23982238769531,1266.162841796875],"6-96-13":[216.38951110839844,3265.9912109375],"6-96-14":[707.8226928710938,4151.47900390625],"6-96-15":[820.50244140625,4116.2265625],"6-96-16":[-31.385780334472656,3824.300048828125],"6-96-17":[290.20721435546875,2504.004638671875],"6-96-18":[1263.81494140625,5909.95947265625],"6-96-19":[3248.18017578125,6767.16748046875],"6-96-20":[4109.93896484375,6522.83837890625],"6-96-21":[2989.512451171875,7463.685546875],"6-96-22":[-83.68018341064453,7512.83154296875],"6-96-23":[-108.99283599853516,1663.77587890625],"6-96-24":[-122.51468658447266,1062.2327880859375],"6-96-25":[-126.55335998535156,-53.865623474121094],"6-96-26":[-128.8424835205078,-59.442203521728516],"6-96-27":[-129.37313842773438,407.5013427734375],"6-96-28":[-128.17984008789062,114.94805145263672],"6-96-29":[-123.93095397949219,-53.59375],"6-96-30":[-121.578125,-48.891876220703125],"6-96-31":[-126.68687438964844,-47.666717529296875],"6-96-32":[-127.66999816894531,-47.944061279296875],"6-96-33":[-128.61749267578125,-48.791873931884766],"6-96-34":[-129.45375061035156,-51.46125030517578],"6-96-35":[-129.4287567138672,-54.630001068115234],"6-96-36":[-128.75999450683594,-55.19124984741211],"6-96-37":[-118.47750091552734,-52.1614990234375],"6-96-38":[-109.44718933105469,-47.881717681884766],"6-96-39":[-96.49433898925781,-43.647335052490234],"6-96-40":[-90.52749633789062,-37.51499938964844],"6-96-41":[-79.28250122070312,-30.632333755493164],"6-96-42":[-69.20187377929688,-23.040000915527344],"6-96-43":[-55.823829650878906,-17.80266761779785],"6-96-44":[-44.200626373291016,-11.237500190734863],"6-96-45":[-29.801795959472656,-4.630833148956299],"6-96-46":[-17.315937042236328,4.178124904632568],"6-96-47":[-2.322499990463257,15.180000305175781],"6-96-48":[3.002500057220459,21.53125],"6-96-49":[6.76437520980835,26.1299991607666],"6-96-50":[9.327500343322754,27.602500915527344],"6-96-51":[9.20270824432373,26.575000762939453],"6-96-52":[7.166874885559082,26.059999465942383],"6-96-53":[2.3949999809265137,19.4950008392334],"6-96-54":[2.3949999809265137,14.930000305175781],"6-96-55":[3.383333444595337,1584.7650146484375],"6-96-56":[1290.050048828125,2802.1181640625],"6-96-57":[2688.642578125,3518.928466796875],"6-96-58":[3479.010009765625,3704.376953125],"6-96-59":[3627.6298828125,3756.383056640625],"6-96-60":[3652.335693359375,3799.8994140625],"6-96-61":[3341.1474609375,3696.83740234375],"6-96-62":[3068.5888671875,3372.97998046875],"6-96-63":[-29.533166885375977,3073.16357421875],"6-97-0":[12.856024742126465,27.032499313354492],"6-97-1":[10.662500381469727,26.666250228881836],"5-48-0":[10.662500381469727,27.25],"6-97-2":[5.8896331787109375,21.290311813354492],"6-97-3":[-5.429999828338623,785.3258056640625],"5-48-1":[-5.429999828338623,785.3258056640625],"6-97-4":[-15.456250190734863,476.7156677246094],"6-97-5":[-7.8809685707092285,604.3900756835938],"5-48-2":[-15.456250190734863,604.3900756835938],"6-97-6":[-13.911874771118164,806.2216186523438],"6-97-7":[44.766666412353516,1618.970703125],"5-48-3":[-13.911874771118164,1618.970703125],"6-97-8":[91.31050109863281,1177.40380859375],"6-97-9":[10.89466667175293,764.9723510742188],"5-48-4":[0.5107666850090027,1177.40380859375],"6-97-10":[-24.585384368896484,1092.035888671875],"6-97-11":[-3.0953714847564697,823.050048828125],"5-48-5":[-32.160579681396484,1092.035888671875],"6-97-12":[74.372802734375,2561.552978515625],"6-97-13":[260.8565368652344,2677.4873046875],"5-48-6":[74.372802734375,3265.9912109375],"6-97-14":[697.6602172851562,2882.053466796875],"6-97-15":[906.9234008789062,4155.2607421875],"5-48-7":[697.6602172851562,4155.2607421875],"6-97-16":[219.5271453857422,4825.03125],"6-97-17":[271.20452880859375,4733.63427734375],"5-48-8":[-31.385780334472656,4825.03125],"6-97-18":[2241.796142578125,5772.1142578125],"6-97-19":[2644.39892578125,6131.64013671875],"5-48-9":[1263.81494140625,6767.16748046875],"6-97-20":[3253.980224609375,6237.57958984375],"6-97-21":[107.58236694335938,7221.30712890625],"5-48-10":[107.58236694335938,7463.685546875],"6-97-22":[-53.323036193847656,5335.49267578125],"6-97-23":[-92.66422271728516,2777.956298828125],"5-48-11":[-108.99283599853516,7512.83154296875],"6-97-24":[-99.37605285644531,3021.89013671875],"6-97-25":[-120.7573471069336,1489.969482421875],"5-48-12":[-126.55335998535156,3021.89013671875],"6-97-26":[-124.45304870605469,365.6628112792969],"6-97-27":[-120.5621109008789,671.1530151367188],"5-48-13":[-129.37313842773438,671.1530151367188],"6-97-28":[-127.90248107910156,253.15017700195312],"6-97-29":[-120.44039154052734,634.6896362304688],"5-48-14":[-128.17984008789062,634.6896362304688],"6-97-30":[-106.5248031616211,2140.286865234375],"6-97-31":[-94.43054962158203,-30.37150001525879],"5-48-15":[-126.68687438964844,2140.286865234375],"6-97-32":[-93.36885070800781,-30.415000915527344],"6-97-33":[-100.57312774658203,-33.35124969482422],"5-48-16":[-128.61749267578125,-30.415000915527344],"6-97-34":[-105.95040893554688,-38.16266632080078],"6-97-35":[-109.15499877929688,-42.722251892089844],"5-48-17":[-129.45375061035156,-38.16266632080078],"6-97-36":[-110.9351577758789,-44.597450256347656],"6-97-37":[-107.54334259033203,-47.067501068115234],"5-48-18":[-128.75999450683594,-44.597450256347656],"6-97-38":[-103.95531463623047,-48.28562545776367],"6-97-39":[-97.48765563964844,-45.28216552734375],"5-48-19":[-109.44718933105469,-43.647335052490234],"6-97-40":[-91.35124969482422,-40.59562683105469],"6-97-41":[-84.51968383789062,-34.82749938964844],"5-48-20":[-91.35124969482422,-30.632333755493164],"6-97-42":[-74.45999908447266,-27.37762451171875],"6-97-43":[-60.53718566894531,-22.774999618530273],"5-48-21":[-74.45999908447266,-17.80266761779785],"6-97-44":[-55.81999969482422,-16.334999084472656],"6-97-45":[-41.67593765258789,-9.3462495803833],"5-48-22":[-55.81999969482422,-4.630833148956299],"6-97-46":[-29.334999084472656,-2.322499990463257],"6-97-47":[-13.560312271118164,4.78249979019165],"5-48-23":[-29.334999084472656,15.180000305175781],"6-97-48":[-3.7100000381469727,11.685097694396973],"6-97-49":[2.565000057220459,17.700624465942383],"5-48-24":[-3.7100000381469727,26.1299991607666],"6-97-50":[5.93583345413208,18.2979679107666],"6-97-51":[6.017499923706055,18.12857437133789],"5-48-25":[5.93583345413208,27.602500915527344],"6-97-52":[3.7899999618530273,17.860624313354492],"6-97-53":[-1.5049999952316284,12.14632797241211],"5-48-26":[-1.5049999952316284,26.059999465942383],"6-97-54":[-2.198124885559082,7.24880838394165],"6-97-55":[-0.04749999940395355,1584.7650146484375],"5-48-27":[-2.198124885559082,1584.7650146484375],"6-97-56":[1497.4268798828125,2824.500244140625],"6-97-57":[2802.1181640625,3500.22119140625],"5-48-28":[1290.050048828125,3518.928466796875],"6-97-58":[3409.992431640625,3719.53662109375],"6-97-59":[3704.376953125,3755.965087890625],"5-48-29":[3409.992431640625,3756.383056640625],"6-97-60":[3612.8125,3775.2177734375],"6-97-61":[3317.344970703125,3652.335693359375],"5-48-30":[3317.344970703125,3799.8994140625],"6-97-62":[3069.2275390625,3341.1474609375],"6-97-63":[-29.533166885375977,3074.6630859375],"5-48-31":[-29.533166885375977,3372.97998046875],"6-98-0":[12.579874992370605,27.024375915527344],"6-98-1":[10.265000343322754,26.346250534057617],"6-98-2":[4.579750061035156,20.9950008392334],"6-98-3":[-6.413125038146973,915.4048461914062],"6-98-4":[-16.478164672851562,237.03045654296875],"6-98-5":[-7.977250099182129,810.4712524414062],"6-98-6":[-11.462499618530273,688.5680541992188],"6-98-7":[12.53962516784668,1569.9576416015625],"6-98-8":[124.4237289428711,1090.493896484375],"6-98-9":[50.44355392456055,887.6380004882812],"6-98-10":[-26.996055603027344,775.0951538085938],"6-98-11":[69.08615112304688,615.5441284179688],"6-98-12":[151.22683715820312,2887.355224609375],"6-98-13":[660.1279296875,2999.00732421875],"6-98-14":[1179.376953125,3482.5576171875],"6-98-15":[1006.2695922851562,3928.840087890625],"6-98-16":[422.9771423339844,2953.741455078125],"6-98-17":[1074.6883544921875,5415.07421875],"6-98-18":[2272.725830078125,5725.80322265625],"6-98-19":[2617.619140625,5462.56103515625],"6-98-20":[3023.420166015625,5731.4736328125],"6-98-21":[133.36399841308594,6535.041015625],"6-98-22":[23.08816909790039,5106.103515625],"6-98-23":[12.306039810180664,3346.33251953125],"6-98-24":[-17.377464294433594,2464.79248046875],"6-98-25":[-86.6626205444336,2574.024169921875],"6-98-26":[-135.69265747070312,1748.9698486328125],"6-98-27":[-96.38909912109375,1498.3673095703125],"6-98-28":[-92.55000305175781,1085.70263671875],"6-98-29":[-80.52999877929688,550.4512939453125],"6-98-30":[-71.72074127197266,3433.717529296875],"6-98-31":[-71.06343841552734,1843.020751953125],"6-98-32":[-66.70249938964844,242.9921417236328],"6-98-33":[-76.30000305175781,-20.39134979248047],"6-98-34":[-86.18718719482422,-23.447500228881836],"6-98-35":[-91.27667999267578,-29.19124984741211],"6-98-36":[-94.13500213623047,-13.366007804870605],"6-98-37":[-101.06218719482422,-41.41374969482422],"6-98-38":[-100.76000213623047,-44.67499923706055],"6-98-39":[-96.24874877929688,-45.32133483886719],"6-98-40":[-93.33374786376953,-42.41999816894531],"6-98-41":[-84.99500274658203,-35.94124984741211],"6-98-42":[-76.4375,-31.602500915527344],"6-98-43":[-68.4990005493164,-27.91699981689453],"6-98-44":[-62.85562515258789,-21.688749313354492],"6-98-45":[-50.55451202392578,-14.9975004196167],"6-98-46":[-38.502498626708984,-7.653749942779541],"6-98-47":[-23.3543758392334,-2.1989998817443848],"6-98-48":[-12.6225004196167,4.063437461853027],"6-98-49":[-1.821874976158142,10.045000076293945],"6-98-50":[0.7799999713897705,11.735937118530273],"6-98-51":[1.978124976158142,12.162500381469727],"6-98-52":[-0.23999999463558197,11.34000015258789],"6-98-53":[-6.557499885559082,6.35281229019165],"6-98-54":[-6.913671970367432,6.5859375],"6-98-55":[-6.317519664764404,1715.717529296875],"6-98-56":[1527.574951171875,2802.830078125],"6-98-57":[2705.17431640625,3409.992431640625],"6-98-58":[3387.34375,3708.2900390625],"6-98-59":[3611.48193359375,3736.72998046875],"6-98-60":[3543.29931640625,3737.7060546875],"6-98-61":[3284.6611328125,3612.8125],"6-98-62":[3070.76953125,3317.344970703125],"6-98-63":[-29.53333282470703,3075.463134765625],"6-99-0":[12.3149995803833,27.00310516357422],"6-99-1":[10.265000343322754,25.8316593170166],"5-49-0":[10.265000343322754,27.024375915527344],"6-99-2":[4.579500198364258,20.47687530517578],"6-99-3":[-6.171875,969.3905639648438],"5-49-1":[-6.413125038146973,969.3905639648438],"4-24-0":[-6.413125038146973,969.3905639648438],"6-99-4":[-16.1728515625,517.21142578125],"6-99-5":[-8.142187118530273,589.9935913085938],"5-49-2":[-16.478164672851562,810.4712524414062],"6-99-6":[-11.641077995300293,855.63525390625],"6-99-7":[102.24889373779297,1354.629638671875],"5-49-3":[-11.641077995300293,1569.9576416015625],"4-24-1":[-16.478164672851562,1618.970703125],"6-99-8":[120.1405029296875,1086.9710693359375],"6-99-9":[86.63688659667969,868.7294311523438],"5-49-4":[50.44355392456055,1090.493896484375],"6-99-10":[-31.01534080505371,599.8834838867188],"6-99-11":[80.02674102783203,729.8206787109375],"5-49-5":[-31.01534080505371,775.0951538085938],"4-24-2":[-32.160579681396484,1177.40380859375],"6-99-12":[187.08139038085938,2274.4658203125],"6-99-13":[527.5209350585938,3424.71875],"5-49-6":[151.22683715820312,3424.71875],"6-99-14":[1035.3907470703125,3181.134521484375],"6-99-15":[1160.5819091796875,3821.632080078125],"5-49-7":[1006.2695922851562,3928.840087890625],"4-24-3":[74.372802734375,4155.2607421875],"6-99-16":[637.5889892578125,3902.63818359375],"6-99-17":[836.3162231445312,3828.17822265625],"5-49-8":[422.9771423339844,5415.07421875],"6-99-18":[1288.0206298828125,5499.11181640625],"6-99-19":[2175.471923828125,6216.5908203125],"5-49-9":[1288.0206298828125,6216.5908203125],"4-24-4":[-31.385780334472656,6767.16748046875],"6-99-20":[2779.55078125,6063.78369140625],"6-99-21":[1586.783203125,6434.640625],"5-49-10":[133.36399841308594,6535.041015625],"6-99-22":[657.10009765625,5432.08251953125],"6-99-23":[300.67315673828125,3530.7431640625],"5-49-11":[12.306039810180664,5432.08251953125],"4-24-5":[-108.99283599853516,7512.83154296875],"6-99-24":[129.64825439453125,2554.74609375],"6-99-25":[-17.16620635986328,2536.98095703125],"5-49-12":[-86.6626205444336,2574.024169921875],"6-99-26":[-78.0910873413086,2080.039306640625],"6-99-27":[-90.5689926147461,2009.712158203125],"5-49-13":[-135.69265747070312,2080.039306640625],"4-24-6":[-135.69265747070312,3021.89013671875],"6-99-28":[-65.0599594116211,1760.04345703125],"6-99-29":[-72.9413070678711,1543.0560302734375],"5-49-14":[-92.55000305175781,1760.04345703125],"6-99-30":[-57.00798797607422,2251.465087890625],"6-99-31":[-38.88768768310547,2884.852294921875],"5-49-15":[-71.72074127197266,3433.717529296875],"4-24-7":[-128.17984008789062,3433.717529296875],"6-99-32":[-81.90363311767578,3098.124755859375],"6-99-33":[-45.743865966796875,302.4935607910156],"5-49-16":[-81.90363311767578,3098.124755859375],"6-99-34":[-54.347068786621094,-15.47299861907959],"6-99-35":[-71.16999816894531,-18.504066467285156],"5-49-17":[-91.27667999267578,-15.47299861907959],"4-24-8":[-129.45375061035156,3098.124755859375],"6-99-36":[-82.82749938964844,-25.906333923339844],"6-99-37":[-88.24937438964844,-33.314998626708984],"5-49-18":[-101.06218719482422,-13.366007804870605],"6-99-38":[-94.26626586914062,-41.22174835205078],"6-99-39":[-95.17402648925781,-42.76283264160156],"5-49-19":[-100.76000213623047,-41.22174835205078],"4-24-9":[-128.75999450683594,-13.366007804870605],"6-99-40":[-92.19437408447266,-40.17578125],"6-99-41":[-83.67742156982422,-35.94124984741211],"5-49-20":[-93.33374786376953,-35.94124984741211],"6-99-42":[-78.68875122070312,-34.931251525878906],"6-99-43":[-74.98500061035156,-31.9950008392334],"5-49-21":[-78.68875122070312,-27.91699981689453],"4-24-10":[-93.33374786376953,-17.80266761779785],"6-99-44":[-72.55999755859375,-26.459999084472656],"6-99-45":[-59.75749969482422,-19.83625030517578],"5-49-22":[-72.55999755859375,-14.9975004196167],"6-99-46":[-48.959999084472656,-13.120624542236328],"6-99-47":[-34.752498626708984,-6.952499866485596],"5-49-23":[-48.959999084472656,-2.1989998817443848],"4-24-11":[-72.55999755859375,15.180000305175781],"6-99-48":[-22.479999542236328,-1.821874976158142],"6-99-49":[-11.765625,0.7799999713897705],"5-49-24":[-22.479999542236328,10.045000076293945],"6-99-50":[-6.679999828338623,3.513925790786743],"6-99-51":[-3.059999942779541,3.6220312118530273],"5-49-25":[-6.679999828338623,12.162500381469727],"4-24-12":[-22.479999542236328,27.602500915527344],"6-99-52":[-6.103750228881836,2.938124895095825],"6-99-53":[-14.489999771118164,-0.23999999463558197],"5-49-26":[-14.489999771118164,11.34000015258789],"6-99-54":[-16.113750457763672,2.3984766006469727],"6-99-55":[-5.522500038146973,1741.1663818359375],"5-49-27":[-16.113750457763672,1741.1663818359375],"4-24-13":[-16.113750457763672,1741.1663818359375],"6-99-56":[1318.62744140625,2705.17431640625],"6-99-57":[2640.607421875,3387.34375],"5-49-28":[1318.62744140625,3409.992431640625],"6-99-58":[3292.469970703125,3611.48193359375],"6-99-59":[3525.75244140625,3694.9423828125],"5-49-29":[3292.469970703125,3736.72998046875],"4-24-14":[1290.050048828125,3756.383056640625],"6-99-60":[3433.71240234375,3696.04931640625],"6-99-61":[3240.360107421875,3543.29931640625],"5-49-30":[3240.360107421875,3737.7060546875],"6-99-62":[3070.723876953125,3284.6611328125],"6-99-63":[-29.53350067138672,3075.958740234375],"5-49-31":[-29.53350067138672,3317.344970703125],"4-24-15":[-29.53350067138672,3799.8994140625],"6-100-0":[12.141249656677246,26.98812484741211],"6-100-1":[10.276249885559082,25.239999771118164],"6-100-2":[3.434375047683716,20.525312423706055],"6-100-3":[-0.7556250095367432,788.1603393554688],"6-100-4":[-13.0493745803833,864.9545288085938],"6-100-5":[-6.2657084465026855,624.5289916992188],"6-100-6":[-13.39162540435791,737.35888671875],"6-100-7":[45.51605987548828,676.8431396484375],"6-100-8":[147.98194885253906,958.8784790039062],"6-100-9":[114.45652770996094,855.8261108398438],"6-100-10":[-24.798931121826172,555.6571044921875],"6-100-11":[130.9779052734375,852.8773193359375],"6-100-12":[253.4986114501953,917.9906616210938],"6-100-13":[346.4425048828125,3194.58203125],"6-100-14":[732.5319213867188,2295.1875],"6-100-15":[986.958251953125,3379.0302734375],"6-100-16":[844.6471557617188,3558.084228515625],"6-100-17":[745.3832397460938,1902.572509765625],"6-100-18":[1168.5538330078125,5176.8681640625],"6-100-19":[1398.2760009765625,4952.18994140625],"6-100-20":[475.7709655761719,6100.37451171875],"6-100-21":[222.10797119140625,7111.27880859375],"6-100-22":[347.1823425292969,4334.25537109375],"6-100-23":[41.068031311035156,3117.267578125],"6-100-24":[36.191551208496094,3084.015625],"6-100-25":[52.60023880004883,2792.632568359375],"6-100-26":[-35.295494079589844,1323.339111328125],"6-100-27":[-72.11222076416016,1726.8887939453125],"6-100-28":[-49.939998626708984,1062.1951904296875],"6-100-29":[-35.13999938964844,1503.5521240234375],"6-100-30":[-117.37947845458984,2181.095947265625],"6-100-31":[-68.73313903808594,1252.5933837890625],"6-100-32":[-20.46755027770996,3783.23681640625],"6-100-33":[-69.40849304199219,3170.09423828125],"6-100-34":[-37.005001068115234,1.5950000286102295],"6-100-35":[-51.439998626708984,-9.86775016784668],"6-100-36":[-64.34687805175781,-13.795000076293945],"6-100-37":[-82.43000030517578,-27.147499084472656],"6-100-38":[-86.63312530517578,-34.466251373291016],"6-100-39":[-87.83000183105469,-34.635311126708984],"6-100-40":[-85.5199966430664,-36.5099983215332],"6-100-41":[-80.18250274658203,-37.621334075927734],"6-100-42":[-78.67765808105469,-37.255001068115234],"6-100-43":[-81.39718627929688,-35.65566635131836],"6-100-44":[-80.05000305175781,-30.594999313354492],"6-100-45":[-66.3199234008789,-24.76308250427246],"6-100-46":[-55.38468933105469,-18.127500534057617],"6-100-47":[-41.047637939453125,-11.5625],"6-100-48":[-30.55500030517578,-6.292500019073486],"6-100-49":[-19.2523250579834,-3.510666608810425],"6-100-50":[-13.285937309265137,-1.4500000476837158],"6-100-51":[-9.515625,-0.8500000238418579],"6-100-52":[-12.518964767456055,-1.6088333129882812],"6-100-53":[-17.404687881469727,-3.387500047683716],"6-100-54":[-19.90314483642578,-2.007499933242798],"6-100-55":[-15.860429763793945,1791.7099609375],"6-100-56":[1558.6600341796875,2640.607421875],"6-100-57":[2600.885009765625,3292.469970703125],"6-100-58":[3117.9423828125,3525.75244140625],"6-100-59":[3441.922607421875,3605.3056640625],"6-100-60":[3363.738037109375,3601.39990234375],"6-100-61":[3196.6650390625,3433.71240234375],"6-100-62":[3070.694580078125,3240.360107421875],"6-100-63":[-29.533540725708008,3075.885009765625],"6-101-0":[12.06624984741211,26.968124389648438],"6-101-1":[10.276249885559082,24.00374984741211],"5-50-0":[10.276249885559082,26.98812484741211],"6-101-2":[1.8837499618530273,20.604686737060547],"6-101-3":[-0.03999999910593033,776.5399780273438],"5-50-1":[-0.7556250095367432,788.1603393554688],"6-101-4":[-9.339374542236328,841.9341430664062],"6-101-5":[-23.583749771118164,832.709716796875],"5-50-2":[-23.583749771118164,864.9545288085938],"6-101-6":[-24.807655334472656,718.394775390625],"6-101-7":[121.13387298583984,1011.67724609375],"5-50-3":[-24.807655334472656,1011.67724609375],"6-101-8":[224.50125122070312,929.4348754882812],"6-101-9":[162.5760040283203,836.0345458984375],"5-50-4":[114.45652770996094,958.8784790039062],"6-101-10":[-27.017669677734375,706.5784301757812],"6-101-11":[88.71034240722656,984.0960083007812],"5-50-5":[-27.017669677734375,984.0960083007812],"6-101-12":[253.55718994140625,1472.90625],"6-101-13":[369.0807189941406,2280.06005859375],"5-50-6":[253.4986114501953,3194.58203125],"6-101-14":[518.2158203125,1985.1497802734375],"6-101-15":[932.3848266601562,2132.005126953125],"5-50-7":[518.2158203125,3379.0302734375],"6-101-16":[778.8764038085938,2678.1650390625],"6-101-17":[651.8800659179688,2311.11181640625],"5-50-8":[651.8800659179688,3558.084228515625],"6-101-18":[992.3842163085938,3502.19287109375],"6-101-19":[629.1767578125,4106.18212890625],"5-50-9":[629.1767578125,5176.8681640625],"6-101-20":[194.36094665527344,4524.8251953125],"6-101-21":[96.37752532958984,1942.562744140625],"5-50-10":[96.37752532958984,7111.27880859375],"6-101-22":[245.141357421875,2858.203125],"6-101-23":[21.037729263305664,2530.421142578125],"5-50-11":[21.037729263305664,4334.25537109375],"6-101-24":[-94.29571533203125,2937.623291015625],"6-101-25":[-56.6727294921875,2686.46435546875],"5-50-12":[-94.29571533203125,3084.015625],"6-101-26":[-2.5225887298583984,1984.9564208984375],"6-101-27":[-62.527076721191406,1793.0111083984375],"5-50-13":[-72.11222076416016,1984.9564208984375],"6-101-28":[-88.9769287109375,988.3006591796875],"6-101-29":[-13.686327934265137,296.80072021484375],"5-50-14":[-88.9769287109375,1503.5521240234375],"6-101-30":[-7.252152919769287,564.0897216796875],"6-101-31":[-34.23201370239258,1041.6949462890625],"5-50-15":[-117.37947845458984,2181.095947265625],"6-101-32":[-50.62480926513672,1126.8436279296875],"6-101-33":[-55.3551025390625,2229.42626953125],"5-50-16":[-69.40849304199219,3783.23681640625],"6-101-34":[-36.87211227416992,2218.2744140625],"6-101-35":[-23.966562271118164,362.8846130371094],"5-50-17":[-51.439998626708984,2218.2744140625],"6-101-36":[-50.001346588134766,-8.056249618530273],"6-101-37":[-67.21125030517578,-17.959732055664062],"5-50-18":[-82.43000030517578,-8.056249618530273],"6-101-38":[-72.91429901123047,-27.957500457763672],"6-101-39":[-72.67992401123047,-32.21875],"5-50-19":[-87.83000183105469,-27.957500457763672],"6-101-40":[-76.23905944824219,-33.326332092285156],"6-101-41":[-78.0512466430664,-36.983123779296875],"5-50-20":[-85.5199966430664,-33.326332092285156],"6-101-42":[-80.09074401855469,-38.14374923706055],"6-101-43":[-82.01734161376953,-39.33218765258789],"5-50-21":[-82.01734161376953,-35.65566635131836],"6-101-44":[-82.42781066894531,-34.068748474121094],"6-101-45":[-71.26062774658203,-28.184999465942383],"5-50-22":[-82.42781066894531,-24.76308250427246],"6-101-46":[-62.709999084472656,-21.813749313354492],"6-101-47":[-49.63687515258789,-15.77750015258789],"5-50-23":[-62.709999084472656,-11.5625],"6-101-48":[-39.38999938964844,-10.576250076293945],"6-101-49":[-28.154062271118164,-7.193749904632568],"5-50-24":[-39.38999938964844,-3.510666608810425],"6-101-50":[-21.760000228881836,-4.943124771118164],"6-101-51":[-17.135313034057617,-4.867422103881836],"5-50-25":[-21.760000228881836,-0.8500000238418579],"6-101-52":[-18.222187042236328,-5.130000114440918],"6-101-53":[-25.725000381469727,-6.911874771118164],"5-50-26":[-25.725000381469727,-1.6088333129882812],"6-101-54":[-26.465625762939453,-8.949999809265137],"6-101-55":[-27.043750762939453,1793.859375],"5-50-27":[-27.043750762939453,1793.859375],"6-101-56":[1569.3199462890625,2600.885009765625],"6-101-57":[2518.512451171875,3117.9423828125],"5-50-28":[1558.6600341796875,3292.469970703125],"6-101-58":[2973.887451171875,3441.922607421875],"6-101-59":[3288.117431640625,3528.6875],"5-50-29":[2973.887451171875,3605.3056640625],"6-101-60":[3280.251220703125,3498.597412109375],"6-101-61":[3169.635009765625,3363.738037109375],"5-50-30":[3169.635009765625,3601.39990234375],"6-101-62":[3069.833740234375,3196.6650390625],"6-101-63":[-29.533666610717773,3075.281982421875],"5-50-31":[-29.533666610717773,3240.360107421875],"6-102-0":[12.039999961853027,26.9559383392334],"6-102-1":[10.0287504196167,23.169687271118164],"6-102-2":[1.6371874809265137,20.510000228881836],"6-102-3":[-0.7002343535423279,3.5999999046325684],"6-102-4":[-9.339374542236328,927.4326782226562],"6-102-5":[-21.43830108642578,1119.0721435546875],"6-102-6":[-21.059999465942383,734.3880004882812],"6-102-7":[132.34861755371094,887.8001098632812],"6-102-8":[166.7278289794922,947.8831787109375],"6-102-9":[178.95567321777344,743.499267578125],"6-102-10":[-23.45667266845703,607.1334838867188],"6-102-11":[188.20120239257812,1969.849365234375],"6-102-12":[317.03961181640625,2509.710205078125],"6-102-13":[401.972900390625,1987.1124267578125],"6-102-14":[522.5114135742188,2758.42333984375],"6-102-15":[862.6259155273438,2221.83935546875],"6-102-16":[705.9061889648438,1397.1702880859375],"6-102-17":[902.2406616210938,2304.1640625],"6-102-18":[874.9180297851562,1918.5618896484375],"6-102-19":[285.5086364746094,3718.1845703125],"6-102-20":[36.405147552490234,3019.6357421875],"6-102-21":[48.415260314941406,2199.574462890625],"6-102-22":[81.86380004882812,2506.954345703125],"6-102-23":[-4.487086772918701,1720.4412841796875],"6-102-24":[-110.93511199951172,1495.09716796875],"6-102-25":[-45.578857421875,1791.5574951171875],"6-102-26":[-43.689796447753906,2581.29638671875],"6-102-27":[-24.817638397216797,2426.486572265625],"6-102-28":[-33.44102478027344,1298.2012939453125],"6-102-29":[2.6475000381469727,41.21500015258789],"6-102-30":[-11.171079635620117,1014.8482055664062],"6-102-31":[-30.378761291503906,1601.84130859375],"6-102-32":[-4.173274993896484,1034.185302734375],"6-102-33":[5.393982410430908,373.3113708496094],"6-102-34":[-27.483510971069336,3442.894287109375],"6-102-35":[-16.452909469604492,32.4587516784668],"6-102-36":[-35.915000915527344,-0.17273437976837158],"6-102-37":[-55.88999938964844,-9.773324966430664],"6-102-38":[-63.67250061035156,-20.55875015258789],"6-102-39":[-67.06937408447266,-25.590625762939453],"6-102-40":[-74.44468688964844,-31.394729614257812],"6-102-41":[-78.86593627929688,-34.22249984741211],"6-102-42":[-80.61429595947266,-38.59000015258789],"6-102-43":[-81.49304962158203,-37.505001068115234],"6-102-44":[-81.54812622070312,-36.82374954223633],"6-102-45":[-75.31758117675781,-31.360000610351562],"6-102-46":[-66.16531372070312,-25.52750015258789],"6-102-47":[-55.1413459777832,-19.95800018310547],"6-102-48":[-45.83250045776367,-14.587499618530273],"6-102-49":[-34.13527297973633,-11.036333084106445],"6-102-50":[-27.399999618530273,-8.606249809265137],"6-102-51":[-22.975624084472656,-8.325833320617676],"6-102-52":[-24.395898818969727,-8.557833671569824],"6-102-53":[-30.223125457763672,-9.288749694824219],"6-102-54":[-36.53761672973633,-12.517499923706055],"6-102-55":[-33.125545501708984,1569.3199462890625],"6-102-56":[1087.427490234375,2518.512451171875],"6-102-57":[2491.997314453125,2973.887451171875],"6-102-58":[2898.385009765625,3288.117431640625],"6-102-59":[3218.559326171875,3458.761962890625],"6-102-60":[3217.244384765625,3410.3798828125],"6-102-61":[3122.291259765625,3280.251220703125],"6-102-62":[3068.025390625,3169.635009765625],"6-102-63":[-29.533832550048828,3074.6787109375],"6-103-0":[11.817336082458496,26.931875228881836],"6-103-1":[10.0287504196167,22.968124389648438],"5-51-0":[10.0287504196167,26.9559383392334],"6-103-2":[1.761875033378601,20.020000457763672],"6-103-3":[-4.679999828338623,2.365000009536743],"5-51-1":[-4.679999828338623,20.510000228881836],"4-25-0":[-4.679999828338623,788.1603393554688],"6-103-4":[-7.066543102264404,732.2693481445312],"6-103-5":[-18.387500762939453,1038.6973876953125],"5-51-2":[-21.43830108642578,1119.0721435546875],"6-103-6":[-8.215499877929688,689.781005859375],"6-103-7":[42.214290618896484,820.6544799804688],"5-51-3":[-21.059999465942383,887.8001098632812],"4-25-1":[-24.807655334472656,1119.0721435546875],"3-12-0":[-24.807655334472656,1618.970703125],"6-103-8":[142.6613311767578,871.061767578125],"6-103-9":[190.73883056640625,581.3455810546875],"5-51-4":[142.6613311767578,947.8831787109375],"6-103-10":[-22.820222854614258,599.1442260742188],"6-103-11":[157.28475952148438,2526.105712890625],"5-51-5":[-23.45667266845703,2526.105712890625],"4-25-2":[-27.017669677734375,2526.105712890625],"6-103-12":[409.5706481933594,2781.9208984375],"6-103-13":[538.792724609375,2000.3720703125],"5-51-6":[317.03961181640625,2781.9208984375],"6-103-14":[796.8623657226562,2483.452880859375],"6-103-15":[786.009521484375,1631.531005859375],"5-51-7":[522.5114135742188,2758.42333984375],"4-25-3":[253.4986114501953,3379.0302734375],"3-12-1":[-32.160579681396484,4155.2607421875],"6-103-16":[657.0386962890625,1440.5582275390625],"6-103-17":[814.4816284179688,2312.803955078125],"5-51-8":[657.0386962890625,2312.803955078125],"6-103-18":[461.7703857421875,2785.311279296875],"6-103-19":[90.9733657836914,2608.846923828125],"5-51-9":[90.9733657836914,3718.1845703125],"4-25-4":[90.9733657836914,5176.8681640625],"6-103-20":[-14.59168815612793,3075.609130859375],"6-103-21":[-41.03794479370117,2284.8916015625],"5-51-10":[-41.03794479370117,3075.609130859375],"6-103-22":[6.198770046234131,2090.381103515625],"6-103-23":[-33.893341064453125,1930.5634765625],"5-51-11":[-33.893341064453125,2506.954345703125],"4-25-5":[-41.03794479370117,7111.27880859375],"3-12-2":[-108.99283599853516,7512.83154296875],"6-103-24":[-68.72269439697266,1683.0919189453125],"6-103-25":[-50.31270980834961,1775.488525390625],"5-51-12":[-110.93511199951172,1791.5574951171875],"6-103-26":[-15.984999656677246,22.83502197265625],"6-103-27":[-1.3075000047683716,35.119998931884766],"5-51-13":[-43.689796447753906,2581.29638671875],"4-25-6":[-110.93511199951172,3084.015625],"6-103-28":[7.059999942779541,50.114376068115234],"6-103-29":[13.683751106262207,63.150001525878906],"5-51-14":[-33.44102478027344,1298.2012939453125],"6-103-30":[17.553897857666016,93.67708587646484],"6-103-31":[-60.470115661621094,1707.5223388671875],"5-51-15":[-60.470115661621094,1707.5223388671875],"4-25-7":[-117.37947845458984,2181.095947265625],"3-12-3":[-135.69265747070312,3433.717529296875],"6-103-32":[-5.202020645141602,1767.4635009765625],"6-103-33":[16.48212242126465,98.62550354003906],"5-51-16":[-5.202020645141602,1767.4635009765625],"6-103-34":[-32.42257308959961,3363.426513671875],"6-103-35":[-8.094200134277344,36.61726379394531],"5-51-17":[-32.42257308959961,3442.894287109375],"4-25-8":[-69.40849304199219,3783.23681640625],"6-103-36":[-20.478515625,14.711250305175781],"6-103-37":[-39.41999816894531,-2.5824999809265137],"5-51-18":[-55.88999938964844,14.711250305175781],"6-103-38":[-48.06984329223633,-12.98900032043457],"6-103-39":[-62.91999816894531,-19.510000228881836],"5-51-19":[-67.06937408447266,-12.98900032043457],"4-25-9":[-87.83000183105469,14.711250305175781],"3-12-4":[-129.45375061035156,3783.23681640625],"6-103-40":[-67.30343627929688,-22.53179931640625],"6-103-41":[-76.30656433105469,-23.362499237060547],"5-51-20":[-78.86593627929688,-22.53179931640625],"6-103-42":[-79.5485610961914,-31.815000534057617],"6-103-43":[-79.52164459228516,-36.314842224121094],"5-51-21":[-81.49304962158203,-31.815000534057617],"4-25-10":[-85.5199966430664,-22.53179931640625],"6-103-44":[-81.63999938964844,-36.17466354370117],"6-103-45":[-78.42562866210938,-33.2087516784668],"5-51-22":[-81.63999938964844,-31.360000610351562],"6-103-46":[-69.23999786376953,-28.582500457763672],"6-103-47":[-59.936248779296875,-23.25749969482422],"5-51-23":[-69.23999786376953,-19.95800018310547],"4-25-11":[-82.42781066894531,-11.5625],"3-12-5":[-93.33374786376953,15.180000305175781],"6-103-48":[-51.29999923706055,-17.940624237060547],"6-103-49":[-40.415000915527344,-14.138750076293945],"5-51-24":[-51.29999923706055,-11.036333084106445],"6-103-50":[-34.47999954223633,-12.041874885559082],"6-103-51":[-30.947500228881836,-11.710416793823242],"5-51-25":[-34.47999954223633,-8.325833320617676],"4-25-12":[-51.29999923706055,-0.8500000238418579],"6-103-52":[-31.638124465942383,-11.835000038146973],"6-103-53":[-39.290000915527344,-12.703125],"5-51-26":[-39.290000915527344,-8.557833671569824],"6-103-54":[-43.13874816894531,-15.555000305175781],"6-103-55":[-38.78874969482422,1241.7139892578125],"5-51-27":[-43.13874816894531,1569.3199462890625],"4-25-13":[-43.13874816894531,1793.859375],"3-12-6":[-51.29999923706055,1793.859375],"6-103-56":[767.030029296875,2536.9755859375],"6-103-57":[2496.328125,2925.6298828125],"5-51-28":[767.030029296875,2973.887451171875],"6-103-58":[2895.284423828125,3218.559326171875],"6-103-59":[3190.50244140625,3373.23486328125],"5-51-29":[2895.284423828125,3458.761962890625],"4-25-14":[767.030029296875,3605.3056640625],"6-103-60":[3144.58740234375,3368.41259765625],"6-103-61":[3056.95751953125,3217.244384765625],"5-51-30":[3056.95751953125,3410.3798828125],"6-103-62":[3059.0869140625,3122.291259765625],"6-103-63":[-29.534000396728516,3072.11328125],"5-51-31":[-29.534000396728516,3169.635009765625],"4-25-15":[-29.534000396728516,3601.39990234375],"3-12-7":[-29.534000396728516,3799.8994140625],"6-104-0":[11.395625114440918,26.923749923706055],"6-104-1":[9.9087495803833,23.012285232543945],"6-104-2":[2.365000009536743,20.306875228881836],"6-104-3":[-5.998125076293945,3.2401366233825684],"6-104-4":[-5.998125076293945,82.83891296386719],"6-104-5":[-17.306249618530273,495.9525146484375],"6-104-6":[-8.762588500976562,399.0910339355469],"6-104-7":[13.610994338989258,491.0516052246094],"6-104-8":[115.43140411376953,750.880615234375],"6-104-9":[116.10437774658203,561.5291137695312],"6-104-10":[-21.957290649414062,1677.5823974609375],"6-104-11":[150.22683715820312,2530.442138671875],"6-104-12":[479.34100341796875,2992.364013671875],"6-104-13":[504.8572082519531,1634.3475341796875],"6-104-14":[575.6790771484375,1654.7225341796875],"6-104-15":[617.4766235351562,1754.5362548828125],"6-104-16":[880.330810546875,1742.1429443359375],"6-104-17":[128.3405303955078,2838.34228515625],"6-104-18":[-3.8795130252838135,3047.595947265625],"6-104-19":[5.775850772857666,1847.957275390625],"6-104-20":[-14.271394729614258,1280.504638671875],"6-104-21":[-154.5433807373047,1772.7618408203125],"6-104-22":[-30.86983299255371,2103.75244140625],"6-104-23":[-95.55509948730469,1877.287841796875],"6-104-24":[-70.07720184326172,953.50244140625],"6-104-25":[-6.164999961853027,27.987499237060547],"6-104-26":[3.365000009536743,44.498748779296875],"6-104-27":[10.307501792907715,55.82601547241211],"6-104-28":[17.560001373291016,73.23249816894531],"6-104-29":[25.674999237060547,79.67453002929688],"6-104-30":[10.650348663330078,2422.75537109375],"6-104-31":[29.678714752197266,2305.224365234375],"6-104-32":[6.493336200714111,2345.040283203125],"6-104-33":[23.547834396362305,1325.5146484375],"6-104-34":[-20.929399490356445,3699.172119140625],"6-104-35":[4.346236228942871,1042.392822265625],"6-104-36":[-2.5824999809265137,22.633495330810547],"6-104-37":[-24.90999984741211,7.413750171661377],"6-104-38":[-38.05812454223633,-5.305000305175781],"6-104-39":[-58.72812271118164,307.86492919921875],"6-104-40":[-68.82820892333984,370.7476806640625],"6-104-41":[-63.630001068115234,291.0906066894531],"6-104-42":[-75.38749694824219,303.78668212890625],"6-104-43":[-77.45413970947266,189.4241485595703],"6-104-44":[-81.91609191894531,202.31829833984375],"6-104-45":[-78.43132781982422,-34.62158203125],"6-104-46":[-69.88999938964844,-30.524999618530273],"6-104-47":[-61.5109748840332,-25.77899932861328],"6-104-48":[-54.2287483215332,-20.78499984741211],"6-104-49":[-44.250274658203125,-17.39983367919922],"6-104-50":[-39.244998931884766,-15.5600004196167],"6-104-51":[-36.42576217651367,-15.241167068481445],"6-104-52":[-37.16798782348633,-15.455833435058594],"6-104-53":[-45.53874969482422,-15.942500114440918],"6-104-54":[-46.973201751708984,-19.125],"6-104-55":[-44.17023468017578,1300.88671875],"6-104-56":[486.82562255859375,2508.45751953125],"6-104-57":[2399.347412109375,2971.72119140625],"6-104-58":[2925.6298828125,3190.50244140625],"6-104-59":[3187.9931640625,3320.01318359375],"6-104-60":[3081.53759765625,3317.02001953125],"6-104-61":[2940.53369140625,3144.58740234375],"6-104-62":[3024.2265625,3080.425048828125],"6-104-63":[-29.53416633605957,3069.67041015625],"6-105-0":[11.09399127960205,26.8956241607666],"6-105-1":[9.459358215332031,22.948476791381836],"5-52-0":[9.459358215332031,26.923749923706055],"6-105-2":[2.7668750286102295,20.286874771118164],"6-105-3":[-5.308125019073486,3.7906250953674316],"5-52-1":[-5.998125076293945,20.306875228881836],"6-105-4":[-5.645625114440918,-0.6535833477973938],"6-105-5":[-15.123671531677246,237.6919708251953],"5-52-2":[-17.306249618530273,495.9525146484375],"6-105-6":[-2.026824951171875,277.0776062011719],"6-105-7":[17.85645866394043,385.9036865234375],"5-52-3":[-8.762588500976562,491.0516052246094],"6-105-8":[110.65704345703125,448.34423828125],"6-105-9":[56.909149169921875,380.4173889160156],"5-52-4":[56.909149169921875,750.880615234375],"6-105-10":[-16.125072479248047,1615.060302734375],"6-105-11":[217.5137481689453,2962.6435546875],"5-52-5":[-21.957290649414062,2962.6435546875],"6-105-12":[454.5268249511719,2450.235107421875],"6-105-13":[406.433837890625,1532.319091796875],"5-52-6":[406.433837890625,2992.364013671875],"6-105-14":[432.2392883300781,1232.85205078125],"6-105-15":[549.842529296875,1464.1834716796875],"5-52-7":[432.2392883300781,1754.5362548828125],"6-105-16":[730.4099731445312,2060.021484375],"6-105-17":[-64.07971954345703,2407.62890625],"5-52-8":[-64.07971954345703,2838.34228515625],"6-105-18":[-63.80284881591797,805.5870361328125],"6-105-19":[-16.166181564331055,1519.790283203125],"5-52-9":[-63.80284881591797,3047.595947265625],"6-105-20":[-33.5651969909668,1755.8779296875],"6-105-21":[-69.58358764648438,1735.5242919921875],"5-52-10":[-154.5433807373047,1772.7618408203125],"6-105-22":[4.652620792388916,2160.71044921875],"6-105-23":[-47.9760856628418,1800.5181884765625],"5-52-11":[-95.55509948730469,2160.71044921875],"6-105-24":[1.502500057220459,35.13750076293945],"6-105-25":[6.5800018310546875,52.58000183105469],"5-52-12":[-70.07720184326172,953.50244140625],"6-105-26":[13.993752479553223,67.4124984741211],"6-105-27":[22.249378204345703,82.33000183105469],"5-52-13":[3.365000009536743,82.33000183105469],"6-105-28":[30.082500457763672,2125.14453125],"6-105-29":[13.271993637084961,4108.6796875],"5-52-14":[13.271993637084961,4108.6796875],"6-105-30":[17.77521514892578,2687.604248046875],"6-105-31":[15.581348419189453,2267.2998046875],"5-52-15":[10.650348663330078,2687.604248046875],"6-105-32":[-40.36251449584961,1916.4329833984375],"6-105-33":[6.530210971832275,1738.0380859375],"5-52-16":[-40.36251449584961,2345.040283203125],"6-105-34":[14.434529304504395,3755.874267578125],"6-105-35":[-28.5382022857666,2972.86767578125],"5-52-17":[-28.5382022857666,3755.874267578125],"6-105-36":[3.706876039505005,35.21792984008789],"6-105-37":[-12.085468292236328,21.017499923706055],"5-52-18":[-24.90999984741211,35.21792984008789],"6-105-38":[-24.318124771118164,2.7181639671325684],"6-105-39":[-35.24810791015625,1205.9722900390625],"5-52-19":[-58.72812271118164,1205.9722900390625],"6-105-40":[29.133516311645508,1196.0513916015625],"6-105-41":[167.75819396972656,715.2401123046875],"5-52-20":[-68.82820892333984,1196.0513916015625],"6-105-42":[-14.206986427307129,661.9976806640625],"6-105-43":[-99.75154113769531,566.345947265625],"5-52-21":[-99.75154113769531,661.9976806640625],"6-105-44":[-78.52347564697266,969.3388061523438],"6-105-45":[-78.20470428466797,-34.74274826049805],"5-52-22":[-81.91609191894531,969.3388061523438],"6-105-46":[-69.9398422241211,-30.989999771118164],"6-105-47":[-61.906776428222656,-27.202499389648438],"5-52-23":[-69.9398422241211,-25.77899932861328],"6-105-48":[-54.834999084472656,-22.896875381469727],"6-105-49":[-47.72593688964844,-19.912500381469727],"5-52-24":[-54.834999084472656,-17.39983367919922],"6-105-50":[-42.439998626708984,-18.560625076293945],"6-105-51":[-41.439998626708984,-18.274375915527344],"5-52-25":[-42.439998626708984,-15.241167068481445],"6-105-52":[-43.23468780517578,-18.397499084472656],"6-105-53":[-52.01499938964844,-19.128124237060547],"5-52-26":[-52.01499938964844,-15.455833435058594],"6-105-54":[-54.033748626708984,-21.066875457763672],"6-105-55":[-53.095001220703125,680.376220703125],"5-52-27":[-54.033748626708984,1300.88671875],"6-105-56":[536.8099975585938,2408.297607421875],"6-105-57":[2392.948974609375,3030.3125],"5-52-28":[486.82562255859375,3030.3125],"6-105-58":[2971.72119140625,3188.155517578125],"6-105-59":[3108.985107421875,3235.6044921875],"5-52-29":[2925.6298828125,3320.01318359375],"6-105-60":[3012.27001953125,3197.280029296875],"6-105-61":[2926.36083984375,3081.53759765625],"5-52-30":[2926.36083984375,3317.02001953125],"6-105-62":[2976.461181640625,3060.171875],"6-105-63":[-29.534500122070312,3063.51416015625],"5-52-31":[-29.534500122070312,3080.425048828125],"6-106-0":[10.645625114440918,26.881563186645508],"6-106-1":[8.537500381469727,22.52312469482422],"6-106-2":[2.4987499713897705,19.453125],"6-106-3":[-5.699999809265137,3.746875047683716],"6-106-4":[-6.55148458480835,0.12404166907072067],"6-106-5":[-15.62906265258789,39.747501373291016],"6-106-6":[-15.62906265258789,346.254638671875],"6-106-7":[14.943625450134277,411.13677978515625],"6-106-8":[91.1597900390625,443.5286865234375],"6-106-9":[32.40992736816406,383.4845886230469],"6-106-10":[-14.763406753540039,717.4058837890625],"6-106-11":[169.48362731933594,2548.25048828125],"6-106-12":[315.35223388671875,2226.518310546875],"6-106-13":[309.6911926269531,1486.603759765625],"6-106-14":[471.52777099609375,1598.4366455078125],"6-106-15":[383.8426513671875,1743.80908203125],"6-106-16":[236.1094970703125,1936.11279296875],"6-106-17":[-59.34538269042969,1887.2481689453125],"6-106-18":[-120.46707916259766,785.4136352539062],"6-106-19":[-39.034908294677734,1101.7681884765625],"6-106-20":[-105.15167999267578,584.5284423828125],"6-106-21":[-78.24170684814453,1795.6600341796875],"6-106-22":[-35.19308090209961,1934.5506591796875],"6-106-23":[-36.19482421875,3691.207763671875],"6-106-24":[-4.518364429473877,1951.278076171875],"6-106-25":[17.56875228881836,2501.6220703125],"6-106-26":[-6.785483360290527,2962.206787109375],"6-106-27":[26.5418643951416,2343.0869140625],"6-106-28":[24.22179412841797,1769.3575439453125],"6-106-29":[30.27001953125,536.5322875976562],"6-106-30":[32.10991668701172,935.328857421875],"6-106-31":[37.62660217285156,2935.39013671875],"6-106-32":[39.93707275390625,3132.806640625],"6-106-33":[-11.888333320617676,3490.22509765625],"6-106-34":[19.974328994750977,1959.4854736328125],"6-106-35":[5.423966407775879,2405.03369140625],"6-106-36":[10.50875186920166,52.69140625],"6-106-37":[1.5750000476837158,42.4992561340332],"6-106-38":[-1.2899999618530273,35.05461883544922],"6-106-39":[-31.041540145874023,1152.2900390625],"6-106-40":[340.66522216796875,1241.4190673828125],"6-106-41":[303.9790344238281,737.3851318359375],"6-106-42":[254.0583038330078,673.7930908203125],"6-106-43":[-1.481818437576294,507.3038024902344],"6-106-44":[-78.17295837402344,1063.091796875],"6-106-45":[-78.00910186767578,-33.8125],"6-106-46":[-69.48500061035156,-30.79312515258789],"6-106-47":[-61.109375,-27.354999542236328],"6-106-48":[-54.98749923706055,-24.248750686645508],"6-106-49":[-48.710899353027344,-21.27666664123535],"6-106-50":[-45.032501220703125,-20.594999313354492],"6-106-51":[-45.0837516784668,-20.393999099731445],"6-106-52":[-47.531349182128906,-20.766582489013672],"6-106-53":[-57.274375915527344,-21.903749465942383],"6-106-54":[-61.20624923706055,-25.9424991607666],"6-106-55":[-59.824764251708984,845.2374877929688],"6-106-56":[519.8556518554688,2462.733154296875],"6-106-57":[2401.534912109375,3046.358642578125],"6-106-58":[3030.3125,3177.39990234375],"6-106-59":[2994.820068359375,3172.347412109375],"6-106-60":[2931.1162109375,3109.0537109375],"6-106-61":[2879.885986328125,3012.27001953125],"6-106-62":[2930.228759765625,3048.302490234375],"6-106-63":[-29.587488174438477,3060.241455078125],"6-107-0":[10.15999984741211,26.86750030517578],"6-107-1":[8.139708518981934,21.462696075439453],"5-53-0":[8.139708518981934,26.881563186645508],"6-107-2":[2.413437604904175,16.787187576293945],"6-107-3":[-5.347499847412109,4.388124942779541],"5-53-1":[-5.699999809265137,19.453125],"4-26-0":[-5.998125076293945,26.923749923706055],"6-107-4":[-5.788066387176514,0.23917968571186066],"6-107-5":[-13.900312423706055,13.673333168029785],"5-53-2":[-15.62906265258789,39.747501373291016],"6-107-6":[-13.900312423706055,479.00537109375],"6-107-7":[3.5830166339874268,427.0550537109375],"5-53-3":[-15.62906265258789,479.00537109375],"4-26-1":[-17.306249618530273,495.9525146484375],"6-107-8":[3.9033889770507812,342.4036560058594],"6-107-9":[56.97005844116211,417.2188415527344],"5-53-4":[3.9033889770507812,443.5286865234375],"6-107-10":[-10.304116249084473,1200.1827392578125],"6-107-11":[142.1153106689453,2000.947265625],"5-53-5":[-14.763406753540039,2548.25048828125],"4-26-2":[-21.957290649414062,2962.6435546875],"6-107-12":[249.5493621826172,1644.2117919921875],"6-107-13":[260.3295593261719,1523.385498046875],"5-53-6":[249.5493621826172,2226.518310546875],"6-107-14":[165.9662322998047,1600.4388427734375],"6-107-15":[117.12785339355469,1541.68359375],"5-53-7":[117.12785339355469,1743.80908203125],"4-26-3":[117.12785339355469,2992.364013671875],"6-107-16":[42.30064010620117,816.1380615234375],"6-107-17":[-150.5021209716797,1174.4647216796875],"5-53-8":[-150.5021209716797,1936.11279296875],"6-107-18":[-29.12253189086914,918.2625732421875],"6-107-19":[3.799683094024658,96.89410400390625],"5-53-9":[-120.46707916259766,1101.7681884765625],"4-26-4":[-150.5021209716797,3047.595947265625],"6-107-20":[-52.46895217895508,121.180908203125],"6-107-21":[-35.83429718017578,1218.6937255859375],"5-53-10":[-105.15167999267578,1795.6600341796875],"6-107-22":[0.698478639125824,450.0506591796875],"6-107-23":[-53.70463562011719,3956.00146484375],"5-53-11":[-53.70463562011719,3956.00146484375],"4-26-5":[-154.5433807373047,3956.00146484375],"6-107-24":[11.303256034851074,1042.6578369140625],"6-107-25":[-10.644895553588867,2731.6064453125],"5-53-12":[-10.644895553588867,2731.6064453125],"6-107-26":[-0.2650891840457916,2712.3232421875],"6-107-27":[-54.18501663208008,2627.625],"5-53-13":[-54.18501663208008,2962.206787109375],"4-26-6":[-70.07720184326172,2962.206787109375],"6-107-28":[-134.1881561279297,2528.22265625],"6-107-29":[21.903949737548828,2469.264404296875],"5-53-14":[-134.1881561279297,2528.22265625],"6-107-30":[58.3849983215332,136.18215942382812],"6-107-31":[24.07520866394043,2286.436767578125],"5-53-15":[24.07520866394043,2935.39013671875],"4-26-7":[-134.1881561279297,4108.6796875],"6-107-32":[0.8419284224510193,2955.48193359375],"6-107-33":[28.66122055053711,2702.645751953125],"5-53-16":[-11.888333320617676,3490.22509765625],"6-107-34":[15.942488670349121,1676.81494140625],"6-107-35":[5.351846218109131,2244.6015625],"5-53-17":[5.351846218109131,2405.03369140625],"4-26-8":[-40.36251449584961,3755.874267578125],"6-107-36":[21.361249923706055,72.30809783935547],"6-107-37":[-21.625112533569336,280.2849426269531],"5-53-18":[-21.625112533569336,280.2849426269531],"6-107-38":[-20.06814956665039,284.7078857421875],"6-107-39":[-14.215166091918945,553.6465454101562],"5-53-19":[-31.041540145874023,1152.2900390625],"4-26-9":[-58.72812271118164,1205.9722900390625],"6-107-40":[235.60284423828125,710.8161010742188],"6-107-41":[292.36102294921875,692.6553344726562],"5-53-20":[235.60284423828125,1241.4190673828125],"6-107-42":[104.90637969970703,561.3460693359375],"6-107-43":[-30.256011962890625,610.8652954101562],"5-53-21":[-30.256011962890625,673.7930908203125],"4-26-10":[-99.75154113769531,1241.4190673828125],"6-107-44":[-76.0870132446289,322.3399658203125],"6-107-45":[-73.82052612304688,-32.371917724609375],"5-53-22":[-78.17295837402344,1063.091796875],"6-107-46":[-67.40656280517578,-29.790000915527344],"6-107-47":[-60.770626068115234,-27.097333908081055],"5-53-23":[-69.48500061035156,-27.097333908081055],"4-26-11":[-81.91609191894531,1063.091796875],"6-107-48":[-54.942501068115234,-24.936874389648438],"6-107-49":[-49.54951095581055,-22.677499771118164],"5-53-24":[-54.98749923706055,-21.27666664123535],"6-107-50":[-47.08124923706055,-22.058124542236328],"6-107-51":[-49,-22.03937530517578],"5-53-25":[-49,-20.393999099731445],"4-26-12":[-54.98749923706055,-15.241167068481445],"6-107-52":[-52.134376525878906,-22.787500381469727],"6-107-53":[-62.68000030517578,-24.369375228881836],"5-53-26":[-62.68000030517578,-20.766582489013672],"6-107-54":[-67.39125061035156,-28.928749084472656],"6-107-55":[-64.35375213623047,1172.9024658203125],"5-53-27":[-67.39125061035156,1172.9024658203125],"4-26-13":[-67.39125061035156,1300.88671875],"6-107-56":[845.2374877929688,2590.72509765625],"6-107-57":[2462.733154296875,3089.3349609375],"5-53-28":[519.8556518554688,3089.3349609375],"6-107-58":[3046.358642578125,3196.304931640625],"6-107-59":[2917.969970703125,3163.3662109375],"5-53-29":[2917.969970703125,3196.304931640625],"4-26-14":[486.82562255859375,3320.01318359375],"6-107-60":[2826.824951171875,2994.820068359375],"6-107-61":[2826.824951171875,2932.310791015625],"5-53-30":[2826.824951171875,3109.0537109375],"6-107-62":[2871.64501953125,3035.4931640625],"6-107-63":[-29.572309494018555,3058.061767578125],"5-53-31":[-29.587488174438477,3060.241455078125],"4-26-15":[-29.587488174438477,3317.02001953125],"6-108-0":[10.040078163146973,26.859375],"6-108-1":[7.603750228881836,20.1875],"6-108-2":[2.4156250953674316,15.359999656677246],"6-108-3":[-5.018886566162109,4.795527458190918],"6-108-4":[-5,0.19750000536441803],"6-108-5":[-10.520000457763672,23.29597282409668],"6-108-6":[-6.100703239440918,487.1304931640625],"6-108-7":[-1.8410333395004272,1127.3905029296875],"6-108-8":[-14.602749824523926,1401.1768798828125],"6-108-9":[9.018291473388672,816.8931274414062],"6-108-10":[0.9944562911987305,804.4678344726562],"6-108-11":[261.2876892089844,1845.919921875],"6-108-12":[224.24710083007812,1706.8504638671875],"6-108-13":[169.5654296875,1269.13134765625],"6-108-14":[159.24978637695312,878.2234497070312],"6-108-15":[100.27754211425781,339.0616455078125],"6-108-16":[60.869781494140625,1264.5626220703125],"6-108-17":[-268.69342041015625,1987.40771484375],"6-108-18":[-101.35450744628906,1234.97705078125],"6-108-19":[-7.783987045288086,581.1946411132812],"6-108-20":[16.920663833618164,1941.54638671875],"6-108-21":[18.575000762939453,59.79499816894531],"6-108-22":[22.079999923706055,60.961307525634766],"6-108-23":[8.003097534179688,553.5545654296875],"6-108-24":[22.25,69.86156463623047],"6-108-25":[31.0575008392334,86.49874877929688],"6-108-26":[38.77000045776367,279.0564880371094],"6-108-27":[15.220137596130371,1607.3092041015625],"6-108-28":[-24.496809005737305,2547.0654296875],"6-108-29":[21.538570404052734,3011.037841796875],"6-108-30":[36.96856689453125,1410.912109375],"6-108-31":[-6.94961404800415,2053.626708984375],"6-108-32":[33.67299270629883,1465.29150390625],"6-108-33":[35.2654914855957,2752.581787109375],"6-108-34":[-4.8577704429626465,1869.5675048828125],"6-108-35":[7.812381267547607,2985.194580078125],"6-108-36":[18.748552322387695,169.8892059326172],"6-108-37":[-47.88648986816406,844.90576171875],"6-108-38":[-13.371504783630371,967.0010375976562],"6-108-39":[127.51785278320312,455.3905029296875],"6-108-40":[265.2843933105469,557.0946655273438],"6-108-41":[312.18670654296875,555.4915771484375],"6-108-42":[124.91072845458984,497.2385559082031],"6-108-43":[-59.02543640136719,276.4925537109375],"6-108-44":[-71.43875122070312,115.265380859375],"6-108-45":[-69.82687377929688,-30.39875030517578],"6-108-46":[-64.73999786376953,-28.341249465942383],"6-108-47":[-58.67250061035156,-26.1200008392334],"6-108-48":[-54.08000183105469,-24.30062484741211],"6-108-49":[-49.443748474121094,-23.51169204711914],"6-108-50":[-48.529884338378906,-23.469833374023438],"6-108-51":[-51.551876068115234,-23.602500915527344],"6-108-52":[-55.444374084472656,-24.60033416748047],"6-108-53":[-65.38843536376953,-26.412500381469727],"6-108-54":[-71.75707244873047,-31.343082427978516],"6-108-55":[-65.98255920410156,1359.82373046875],"6-108-56":[1164.449951171875,2630.579833984375],"6-108-57":[2590.72509765625,3151.3125],"6-108-58":[3089.3349609375,3203.6328125],"6-108-59":[2882.882568359375,3159.635009765625],"6-108-60":[2697.34619140625,2917.969970703125],"6-108-61":[2697.34619140625,2871.64501953125],"6-108-62":[2844.514892578125,3023.217529296875],"6-108-63":[-29.53499984741211,3057.858154296875],"6-109-0":[10.071249961853027,26.831249237060547],"6-109-1":[7.603750228881836,19.556249618530273],"5-54-0":[7.603750228881836,26.859375],"6-109-2":[1.9450000524520874,15.291250228881836],"6-109-3":[-4.587500095367432,4.338125228881836],"5-54-1":[-5.018886566162109,15.359999656677246],"6-109-4":[-4.587500095367432,1.3206249475479126],"6-109-5":[-11.142187118530273,-0.27250000834465027],"5-54-2":[-11.142187118530273,23.29597282409668],"6-109-6":[-13.2212495803833,1068.5482177734375],"6-109-7":[49.78281784057617,2201.015869140625],"5-54-3":[-13.2212495803833,2201.015869140625],"6-109-8":[105.58416748046875,2117.986328125],"6-109-9":[2.066075086593628,1848.173828125],"5-54-4":[-14.602749824523926,2117.986328125],"6-109-10":[2.819803476333618,676.8499755859375],"6-109-11":[199.21148681640625,2240.322265625],"5-54-5":[0.9944562911987305,2240.322265625],"6-109-12":[203.0760955810547,2048.931640625],"6-109-13":[137.94741821289062,905.3820190429688],"5-54-6":[137.94741821289062,2048.931640625],"6-109-14":[100.62044525146484,1057.6190185546875],"6-109-15":[12.103288650512695,1445.4256591796875],"5-54-7":[12.103288650512695,1445.4256591796875],"6-109-16":[169.2510528564453,1718.966796875],"6-109-17":[-9.269830703735352,2763.76806640625],"5-54-8":[-268.69342041015625,2763.76806640625],"6-109-18":[-16.30503273010254,1727.0347900390625],"6-109-19":[-43.55134963989258,1925.5797119140625],"5-54-9":[-101.35450744628906,1925.5797119140625],"6-109-20":[-39.23483657836914,1453.6046142578125],"6-109-21":[16.048099517822266,722.7515258789062],"5-54-10":[-39.23483657836914,1941.54638671875],"6-109-22":[13.178258895874023,672.7855224609375],"6-109-23":[24.41031265258789,69.73999786376953],"5-54-11":[8.003097534179688,672.7855224609375],"6-109-24":[29.922500610351562,74.98968505859375],"6-109-25":[35.90812683105469,87.32562255859375],"5-54-12":[22.25,87.32562255859375],"6-109-26":[42.78033447265625,100.03480529785156],"6-109-27":[47.352500915527344,114.5171890258789],"5-54-13":[15.220137596130371,1607.3092041015625],"6-109-28":[47.352500915527344,127.21390533447266],"6-109-29":[45.25312423706055,289.496826171875],"5-54-14":[-24.496809005737305,3011.037841796875],"6-109-30":[39.86431121826172,726.387451171875],"6-109-31":[-77.8031005859375,1820.664794921875],"5-54-15":[-77.8031005859375,2053.626708984375],"6-109-32":[-16.97292709350586,2152.94775390625],"6-109-33":[17.044315338134766,2555.70703125],"5-54-16":[-16.97292709350586,2752.581787109375],"6-109-34":[33.44093704223633,1415.7528076171875],"6-109-35":[30.37507438659668,2395.348876953125],"5-54-17":[-4.8577704429626465,2985.194580078125],"6-109-36":[4.41843843460083,198.3114013671875],"6-109-37":[-3.5617198944091797,755.1380004882812],"5-54-18":[-47.88648986816406,844.90576171875],"6-109-38":[123.22166442871094,1012.7681274414062],"6-109-39":[240.33421325683594,556.9723510742188],"5-54-19":[-13.371504783630371,1012.7681274414062],"6-109-40":[305.48968505859375,1049.442626953125],"6-109-41":[288.49078369140625,1051.485595703125],"5-54-20":[265.2843933105469,1051.485595703125],"6-109-42":[117.95211029052734,457.27752685546875],"6-109-43":[-68.15966796875,175.1285400390625],"5-54-21":[-68.15966796875,497.2385559082031],"6-109-44":[-66.20892333984375,-23.797632217407227],"6-109-45":[-63.968048095703125,-28.21150016784668],"5-54-22":[-71.43875122070312,115.265380859375],"6-109-46":[-60.296875,-26.684999465942383],"6-109-47":[-55.646873474121094,-25.020334243774414],"5-54-23":[-64.73999786376953,-25.020334243774414],"6-109-48":[-52.0412483215332,-23.149999618530273],"6-109-49":[-47.98478698730469,-22.51908302307129],"5-54-24":[-54.08000183105469,-22.51908302307129],"6-109-50":[-47.81103515625,-22.3973331451416],"6-109-51":[-52.38999938964844,-23.56999969482422],"5-54-25":[-52.38999938964844,-22.3973331451416],"6-109-52":[-58.587501525878906,-25.84749984741211],"6-109-53":[-69.43499755859375,-28.360624313354492],"5-54-26":[-69.43499755859375,-24.60033416748047],"6-109-54":[-76.92124938964844,-32.970001220703125],"6-109-55":[-75.42378997802734,1185.12255859375],"5-54-27":[-76.92124938964844,1359.82373046875],"6-109-56":[945.1087646484375,2622.601806640625],"6-109-57":[2578.3837890625,3171.08837890625],"5-54-28":[945.1087646484375,3171.08837890625],"6-109-58":[3008.626220703125,3189.22021484375],"6-109-59":[2819.280029296875,3116.034912109375],"5-54-29":[2819.280029296875,3203.6328125],"6-109-60":[2623.100830078125,2882.882568359375],"6-109-61":[2629.617431640625,2844.514892578125],"5-54-30":[2623.100830078125,2917.969970703125],"6-109-62":[2805.6875,3011.96240234375],"6-109-63":[-29.535249710083008,3059.52490234375],"5-54-31":[-29.535249710083008,3059.52490234375],"6-110-0":[10.548749923706055,26.8231258392334],"6-110-1":[6.878749847412109,20.98062515258789],"6-110-2":[1.923281192779541,15.125],"6-110-3":[-4.541250228881836,2.917187452316284],"6-110-4":[-4.019999980926514,4.853125095367432],"6-110-5":[-10.854999542236328,-0.21421875059604645],"6-110-6":[-13.897988319396973,856.1284790039062],"6-110-7":[47.149471282958984,1828.98583984375],"6-110-8":[120.23799896240234,1922.6566162109375],"6-110-9":[31.37041664123535,2002.649169921875],"6-110-10":[5.262241363525391,531.4788818359375],"6-110-11":[163.23605346679688,2290.5703125],"6-110-12":[207.26580810546875,2374.20068359375],"6-110-13":[182.49888610839844,1509.01806640625],"6-110-14":[66.20710754394531,1216.435791015625],"6-110-15":[10.103692054748535,1386.0037841796875],"6-110-16":[4.323400974273682,1509.86669921875],"6-110-17":[10.26012134552002,1774.1800537109375],"6-110-18":[-48.6901969909668,999.3602294921875],"6-110-19":[-18.687772750854492,1373.09375],"6-110-20":[-17.53952407836914,1801.4195556640625],"6-110-21":[-19.020692825317383,1948.188720703125],"6-110-22":[24.00410270690918,290.94085693359375],"6-110-23":[28.825000762939453,74.18390655517578],"6-110-24":[34.849998474121094,77.84107208251953],"6-110-25":[38.27000045776367,88.56187438964844],"6-110-26":[43.53766632080078,99.44109344482422],"6-110-27":[49.52975082397461,113.79000091552734],"6-110-28":[55.44499969482422,127.02749633789062],"6-110-29":[62.11750030517578,137.94125366210938],"6-110-30":[67.63999938964844,149.07882690429688],"6-110-31":[62.22065353393555,363.48809814453125],"6-110-32":[-56.45692443847656,1519.0338134765625],"6-110-33":[-10.581006050109863,3088.669921875],"6-110-34":[26.674110412597656,862.4263305664062],"6-110-35":[40.626426696777344,116.3291015625],"6-110-36":[-0.6164039373397827,359.5176086425781],"6-110-37":[-20.347820281982422,453.10943603515625],"6-110-38":[138.035400390625,558.6033325195312],"6-110-39":[237.65353393554688,915.4181518554688],"6-110-40":[389.7268371582031,1429.676513671875],"6-110-41":[289.7884216308594,1437.6102294921875],"6-110-42":[27.631139755249023,482.507568359375],"6-110-43":[-47.59000015258789,188.1759490966797],"6-110-44":[-60.48500061035156,-16.06519889831543],"6-110-45":[-58.00749969482422,-25.18000030517578],"6-110-46":[-56.41999816894531,-23.906875610351562],"6-110-47":[-52.81999969482422,-22.852500915527344],"6-110-48":[-49.84000015258789,-21.483749389648438],"6-110-49":[-46.071250915527344,-21.125625610351562],"6-110-50":[-46.514686584472656,-21.318750381469727],"6-110-51":[-52.45624923706055,-23.05437469482422],"6-110-52":[-59.61955261230469,-26.040000915527344],"6-110-53":[-71.73500061035156,-29.783750534057617],"6-110-54":[-80.18144226074219,-34.719581604003906],"6-110-55":[-74.88249969482422,1382.719970703125],"6-110-56":[948.4249877929688,2601.736328125],"6-110-57":[2573.546630859375,3136.5625],"6-110-58":[2893.920654296875,3137.88330078125],"6-110-59":[2675.264892578125,3008.626220703125],"6-110-60":[2578.010498046875,2819.280029296875],"6-110-61":[2594.093017578125,2805.6875],"6-110-62":[2759.423828125,2999.7275390625],"6-110-63":[-29.535499572753906,3062.375],"6-111-0":[11.531874656677246,28.015625],"6-111-1":[6.596027851104736,23.672500610351562],"5-55-0":[6.596027851104736,28.015625],"6-111-2":[2.125,13.533437728881836],"6-111-3":[-4.238749980926514,2.5799999237060547],"5-55-1":[-4.541250228881836,15.125],"4-27-0":[-5.018886566162109,28.015625],"6-111-4":[-1.3393750190734863,4.979453086853027],"6-111-5":[-6.895625114440918,-0.375],"5-55-2":[-10.854999542236328,4.979453086853027],"6-111-6":[-9.752422332763672,462.0810241699219],"6-111-7":[19.542749404907227,1221.3096923828125],"5-55-3":[-13.897988319396973,1828.98583984375],"4-27-1":[-13.897988319396973,2201.015869140625],"3-13-0":[-17.306249618530273,2201.015869140625],"6-111-8":[105.45774841308594,1652.57568359375],"6-111-9":[35.476165771484375,2070.505859375],"5-55-4":[31.37041664123535,2070.505859375],"6-111-10":[7.841791152954102,825.8564453125],"6-111-11":[208.6302490234375,1856.8231201171875],"5-55-5":[5.262241363525391,2290.5703125],"4-27-2":[-14.602749824523926,2290.5703125],"6-111-12":[30.93016815185547,2358.544677734375],"6-111-13":[242.51205444335938,2286.519775390625],"5-55-6":[30.93016815185547,2374.20068359375],"6-111-14":[42.212989807128906,2263.838623046875],"6-111-15":[-27.40255355834961,1447.7294921875],"5-55-7":[-27.40255355834961,2263.838623046875],"4-27-3":[-27.40255355834961,2374.20068359375],"3-13-1":[-27.40255355834961,2992.364013671875],"2-6-0":[-32.160579681396484,4155.2607421875],"6-111-16":[-79.6911392211914,1878.5408935546875],"6-111-17":[23.246318817138672,62.04999923706055],"5-55-8":[-79.6911392211914,1878.5408935546875],"6-111-18":[25.698749542236328,66.76499938964844],"6-111-19":[-16.839323043823242,1986.1080322265625],"5-55-9":[-48.6901969909668,1986.1080322265625],"4-27-4":[-268.69342041015625,2763.76806640625],"6-111-20":[-0.36219334602355957,1882.107177734375],"6-111-21":[27.458126068115234,74.08000183105469],"5-55-10":[-19.020692825317383,1948.188720703125],"6-111-22":[33.040000915527344,75.0472183227539],"6-111-23":[33.9140625,80.5],"5-55-11":[24.00410270690918,290.94085693359375],"4-27-5":[-39.23483657836914,1948.188720703125],"3-13-2":[-268.69342041015625,3956.00146484375],"6-111-24":[37.064998626708984,83.12187194824219],"6-111-25":[39.619998931884766,93.94000244140625],"5-55-12":[34.849998474121094,93.94000244140625],"6-111-26":[44.33000183105469,102.27437591552734],"6-111-27":[49.631248474121094,114.33999633789062],"5-55-13":[43.53766632080078,114.33999633789062],"4-27-6":[15.220137596130371,1607.3092041015625],"6-111-28":[55.180667877197266,125.79906463623047],"6-111-29":[59.4762077331543,301.7226257324219],"5-55-14":[55.180667877197266,301.7226257324219],"6-111-30":[66.39015197753906,148.83624267578125],"6-111-31":[69.38235473632812,149.74415588378906],"5-55-15":[62.22065353393555,363.48809814453125],"4-27-7":[-77.8031005859375,3011.037841796875],"3-13-3":[-134.1881561279297,4108.6796875],"2-6-1":[-268.69342041015625,7512.83154296875],"6-111-32":[15.146706581115723,3028.23486328125],"6-111-33":[-92.73839569091797,2016.58154296875],"5-55-16":[-92.73839569091797,3088.669921875],"6-111-34":[38.32501983642578,670.1463012695312],"6-111-35":[39.61852264404297,131.24000549316406],"5-55-17":[26.674110412597656,862.4263305664062],"4-27-8":[-92.73839569091797,3088.669921875],"6-111-36":[-50.66433334350586,610.21435546875],"6-111-37":[37.90886688232422,457.35809326171875],"5-55-18":[-50.66433334350586,610.21435546875],"6-111-38":[212.43186950683594,466.2076110839844],"6-111-39":[278.1312255859375,1152.218994140625],"5-55-19":[138.035400390625,1152.218994140625],"4-27-9":[-50.66433334350586,1152.218994140625],"3-13-4":[-92.73839569091797,3755.874267578125],"6-111-40":[234.53250122070312,1528.5208740234375],"6-111-41":[101.81592559814453,1002.6502075195312],"5-55-20":[101.81592559814453,1528.5208740234375],"6-111-42":[72.04338836669922,400.1426086425781],"6-111-43":[-50.50321578979492,399.922607421875],"5-55-21":[-50.50321578979492,482.507568359375],"4-27-10":[-68.15966796875,1528.5208740234375],"6-111-44":[-51.724708557128906,212.31222534179688],"6-111-45":[-50.86457061767578,-20.772499084472656],"5-55-22":[-60.48500061035156,212.31222534179688],"6-111-46":[-49.685916900634766,-20.97166633605957],"6-111-47":[-47.08236312866211,-20.452999114990234],"5-55-23":[-56.41999816894531,-20.452999114990234],"4-27-11":[-71.43875122070312,212.31222534179688],"3-13-5":[-99.75154113769531,1528.5208740234375],"2-6-2":[-129.45375061035156,3783.23681640625],"6-111-48":[-45.22062683105469,-19.5049991607666],"6-111-49":[-42.62757873535156,-19.5049991607666],"5-55-24":[-49.84000015258789,-19.5049991607666],"6-111-50":[-45.54152297973633,-20.178083419799805],"6-111-51":[-51.94550323486328,-22.677499771118164],"5-55-25":[-52.45624923706055,-20.178083419799805],"4-27-12":[-54.08000183105469,-19.5049991607666],"6-111-52":[-60.114376068115234,-25.881166458129883],"6-111-53":[-74.08000183105469,-30.600000381469727],"5-55-26":[-74.08000183105469,-25.881166458129883],"6-111-54":[-82.20625305175781,-35.97624969482422],"6-111-55":[-78.65499877929688,1711.275634765625],"5-55-27":[-82.20625305175781,1711.275634765625],"4-27-13":[-82.20625305175781,1711.275634765625],"3-13-6":[-82.20625305175781,1711.275634765625],"6-111-56":[1382.719970703125,2605.534912109375],"6-111-57":[2513.78759765625,2976.728759765625],"5-55-28":[948.4249877929688,3136.5625],"6-111-58":[2794.5400390625,2992.840087890625],"6-111-59":[2564.77001953125,2893.920654296875],"5-55-29":[2564.77001953125,3137.88330078125],"4-27-14":[945.1087646484375,3203.6328125],"6-111-60":[2500.6953125,2687.29052734375],"6-111-61":[2526.81005859375,2763.185302734375],"5-55-30":[2500.6953125,2819.280029296875],"6-111-62":[2709.284912109375,2987.49755859375],"6-111-63":[-29.535667419433594,3065.2578125],"5-55-31":[-29.535667419433594,3065.2578125],"4-27-15":[-29.535667419433594,3065.2578125],"3-13-7":[-29.587488174438477,3320.01318359375],"2-6-3":[-82.20625305175781,3799.8994140625],"6-112-0":[12.702500343322754,28.888124465942383],"6-112-1":[6.422044277191162,25.483125686645508],"6-112-2":[2.2389843463897705,12.866562843322754],"6-112-3":[-4.1240234375,4.09353494644165],"6-112-4":[-0.6845312714576721,55.50812530517578],"6-112-5":[-5.980000019073486,225.2657470703125],"6-112-6":[-8.157500267028809,496.1143798828125],"6-112-7":[13.726166725158691,1767.278564453125],"6-112-8":[107.91549682617188,1681.64111328125],"6-112-9":[91.80030059814453,1766.6695556640625],"6-112-10":[12.16731071472168,1755.0657958984375],"6-112-11":[24.970348358154297,1915.0177001953125],"6-112-12":[3.846111536026001,2099.472900390625],"6-112-13":[23.285791397094727,2155.75048828125],"6-112-14":[6.544188499450684,1965.963134765625],"6-112-15":[15.764370918273926,2024.2510986328125],"6-112-16":[12.728078842163086,1410.9742431640625],"6-112-17":[25.602500915527344,66.51499938964844],"6-112-18":[-24.294858932495117,3037.72802734375],"6-112-19":[-29.582820892333984,3225.430908203125],"6-112-20":[16.39544677734375,1148.9560546875],"6-112-21":[35.654998779296875,80.82125091552734],"6-112-22":[36.810001373291016,83.25544738769531],"6-112-23":[36.79109573364258,87.9574966430664],"6-112-24":[39.763999938964844,92.1661148071289],"6-112-25":[41.967498779296875,97.9018783569336],"6-112-26":[46.97383499145508,104.84492492675781],"6-112-27":[51.717498779296875,114.87437438964844],"6-112-28":[56.92499923706055,128.33741760253906],"6-112-29":[57.721275329589844,134.68344116210938],"6-112-30":[65.91675567626953,141.56500244140625],"6-112-31":[67.63156127929688,143.16000366210938],"6-112-32":[6.634612560272217,1532.5244140625],"6-112-33":[44.60397720336914,4900.74951171875],"6-112-34":[45.112667083740234,141.5593719482422],"6-112-35":[56.190635681152344,138.85018920898438],"6-112-36":[28.288576126098633,417.6700439453125],"6-112-37":[-0.9403872489929199,370.76263427734375],"6-112-38":[108.64749145507812,478.7390441894531],"6-112-39":[201.08203125,643.7965087890625],"6-112-40":[73.33515930175781,1103.74267578125],"6-112-41":[-45.73155212402344,301.6623229980469],"6-112-42":[-38.94584274291992,426.7216491699219],"6-112-43":[-35.043800354003906,487.72686767578125],"6-112-44":[-41.283966064453125,417.2722473144531],"6-112-45":[-43.348751068115234,-6.758749961853027],"6-112-46":[-43.02000045776367,-16.663150787353516],"6-112-47":[-41.884376525878906,-17.815000534057617],"6-112-48":[-40.81999969482422,-17.537578582763672],"6-112-49":[-40.220001220703125,-17.584375381469727],"6-112-50":[-44.513126373291016,-18.846250534057617],"6-112-51":[-52.071250915527344,-21.669374465942383],"6-112-52":[-60.30095672607422,-25.802499771118164],"6-112-53":[-75.14718627929688,-30.771406173706055],"6-112-54":[-83.5892562866211,-37.04108428955078],"6-112-55":[-84.72638702392578,1701.9000244140625],"6-112-56":[1598.15869140625,2525.837646484375],"6-112-57":[2453.6376953125,2840.9599609375],"6-112-58":[2629.409912109375,2867.36962890625],"6-112-59":[2498.340087890625,2794.5400390625],"6-112-60":[2390.048095703125,2564.77001953125],"6-112-61":[2390.048095703125,2709.284912109375],"6-112-62":[2666.35498046875,2977.757568359375],"6-112-63":[-29.535999298095703,3068.13818359375],"6-113-0":[13.215499877929688,29.529062271118164],"6-113-1":[6.551249980926514,26.1981258392334],"5-56-0":[6.422044277191162,29.529062271118164],"6-113-2":[2.6543750762939453,15.619999885559082],"6-113-3":[-3.232109308242798,6.853750228881836],"5-56-1":[-4.1240234375,15.619999885559082],"6-113-4":[0.26570311188697815,195.81553649902344],"6-113-5":[-4.338125228881836,347.79925537109375],"5-56-2":[-5.980000019073486,347.79925537109375],"6-113-6":[-5.976327896118164,370.9669189453125],"6-113-7":[44.86349868774414,2177.90283203125],"5-56-3":[-8.157500267028809,2177.90283203125],"6-113-8":[234.8249969482422,2476.5478515625],"6-113-9":[401.3289794921875,2650.261962890625],"5-56-4":[91.80030059814453,2650.261962890625],"6-113-10":[23.808443069458008,2153.14306640625],"6-113-11":[-0.2923329770565033,1760.978515625],"5-56-5":[-0.2923329770565033,2153.14306640625],"6-113-12":[-14.425732612609863,1103.00830078125],"6-113-13":[1.70438814163208,1633.701171875],"5-56-6":[-14.425732612609863,2155.75048828125],"6-113-14":[6.0241618156433105,2108.1982421875],"6-113-15":[5.386302471160889,1700.9891357421875],"5-56-7":[5.386302471160889,2108.1982421875],"6-113-16":[25.392566680908203,1549.6265869140625],"6-113-17":[-8.61678695678711,1641.186279296875],"5-56-8":[-8.61678695678711,1641.186279296875],"6-113-18":[-22.79438591003418,2604.920166015625],"6-113-19":[-48.46418762207031,3800.251953125],"5-56-9":[-48.46418762207031,3800.251953125],"6-113-20":[33.11129379272461,892.00537109375],"6-113-21":[38.380741119384766,417.5035705566406],"5-56-10":[16.39544677734375,1148.9560546875],"6-113-22":[40.6037483215332,91.38249969482422],"6-113-23":[42.439998626708984,95.05835723876953],"5-56-11":[36.79109573364258,95.05835723876953],"6-113-24":[44.584999084472656,97.79877471923828],"6-113-25":[46.59812545776367,101.91030883789062],"5-56-12":[39.763999938964844,101.91030883789062],"6-113-26":[49.349998474121094,105.9604721069336],"6-113-27":[48.14500045776367,115.82937622070312],"5-56-13":[46.97383499145508,115.82937622070312],"6-113-28":[47.63500213623047,237.0478057861328],"6-113-29":[57.20579528808594,131.83250427246094],"5-56-14":[47.63500213623047,237.0478057861328],"6-113-30":[64.56251525878906,137.11065673828125],"6-113-31":[68.1859130859375,144.75999450683594],"5-56-15":[64.56251525878906,144.75999450683594],"6-113-32":[42.041595458984375,2301.20458984375],"6-113-33":[54.12743377685547,5227.3828125],"5-56-16":[6.634612560272217,5227.3828125],"6-113-34":[38.0442008972168,203.528564453125],"6-113-35":[58.859413146972656,141.0850067138672],"5-56-17":[38.0442008972168,203.528564453125],"6-113-36":[54.67124938964844,131.1199951171875],"6-113-37":[-15.458501815795898,223.45799255371094],"5-56-18":[-15.458501815795898,417.6700439453125],"6-113-38":[7.101803302764893,475.9681091308594],"6-113-39":[134.5004425048828,657.0802612304688],"5-56-19":[7.101803302764893,657.0802612304688],"6-113-40":[48.524600982666016,421.93359375],"6-113-41":[-34.595333099365234,242.01539611816406],"5-56-20":[-45.73155212402344,1103.74267578125],"6-113-42":[-55.10395050048828,1079.099609375],"6-113-43":[-15.563440322875977,1164.8416748046875],"5-56-21":[-55.10395050048828,1164.8416748046875],"6-113-44":[-38.16399383544922,716.9841918945312],"6-113-45":[-33.32500076293945,267.938720703125],"5-56-22":[-43.348751068115234,716.9841918945312],"6-113-46":[-34.859588623046875,-12.786665916442871],"6-113-47":[-35.4226188659668,-15.736599922180176],"5-56-23":[-43.02000045776367,-12.786665916442871],"6-113-48":[-35.40578079223633,-16.809999465942383],"6-113-49":[-37.64812469482422,-17.053203582763672],"5-56-24":[-40.81999969482422,-16.809999465942383],"6-113-50":[-42.3444709777832,-18.337249755859375],"6-113-51":[-51.22249984741211,-20.462499618530273],"5-56-25":[-52.071250915527344,-18.337249755859375],"6-113-52":[-59.958927154541016,-25.011999130249023],"6-113-53":[-76.6576919555664,-30.452499389648438],"5-56-26":[-76.6576919555664,-25.011999130249023],"6-113-54":[-85.0843734741211,-37.6904182434082],"6-113-55":[-88.86219024658203,1616.1424560546875],"5-56-27":[-88.86219024658203,1701.9000244140625],"6-113-56":[1284.6400146484375,2522.109375],"6-113-57":[2297.9765625,2629.409912109375],"5-56-28":[1284.6400146484375,2840.9599609375],"6-113-58":[2577.31494140625,2726.708984375],"6-113-59":[2407.179931640625,2693.86376953125],"5-56-29":[2407.179931640625,2867.36962890625],"6-113-60":[2235.70556640625,2498.340087890625],"6-113-61":[2303.195068359375,2666.35498046875],"5-56-30":[2235.70556640625,2709.284912109375],"6-113-62":[2636.28759765625,2970.0224609375],"6-113-63":[-29.53616714477539,3070.030029296875],"5-56-31":[-29.53616714477539,3070.030029296875],"6-114-0":[13.204375267028809,29.61492156982422],"6-114-1":[8.145530700683594,26.138437271118164],"6-114-2":[3.619999885559082,17.180625915527344],"6-114-3":[0.6924999952316284,7.060625076293945],"6-114-4":[0.49790623784065247,25.09612464904785],"6-114-5":[-1.9900000095367432,264.3922119140625],"6-114-6":[-2.4043750762939453,486.1860046386719],"6-114-7":[19.725175857543945,1696.848876953125],"6-114-8":[77.22899627685547,2512.721923828125],"6-114-9":[497.5786437988281,2822.422607421875],"6-114-10":[9.71587085723877,2513.421142578125],"6-114-11":[10.974706649780273,1227.4149169921875],"6-114-12":[11.665538787841797,627.0619506835938],"6-114-13":[3.095820188522339,1624.42724609375],"6-114-14":[7.4605865478515625,1440.1026611328125],"6-114-15":[-16.773208618164062,1737.8624267578125],"6-114-16":[-15.867565155029297,2312.9658203125],"6-114-17":[-84.12662506103516,2061.689453125],"6-114-18":[-17.61836051940918,1666.1339111328125],"6-114-19":[-16.173006057739258,124.81082916259766],"6-114-20":[11.531497955322266,77.37226867675781],"6-114-21":[17.614675521850586,96.42070007324219],"6-114-22":[9.96710205078125,768.1024169921875],"6-114-23":[28.86750030517578,604.83154296875],"6-114-24":[41.43026351928711,100.44522857666016],"6-114-25":[48.834999084472656,105.18937683105469],"6-114-26":[50.731414794921875,109.46375274658203],"6-114-27":[34.45000076293945,109.75658416748047],"6-114-28":[34.45000076293945,122.9992904663086],"6-114-29":[59.18499755859375,129.67910766601562],"6-114-30":[63.451114654541016,136.2510528564453],"6-114-31":[66.37312316894531,144.6999969482422],"6-114-32":[64.30880737304688,1467.7957763671875],"6-114-33":[33.026973724365234,4032.220458984375],"6-114-34":[24.723731994628906,3694.05322265625],"6-114-35":[31.232864379882812,439.4742736816406],"6-114-36":[-3.3828868865966797,882.398193359375],"6-114-37":[7.793904781341553,520.57470703125],"6-114-38":[-0.711439847946167,739.4083251953125],"6-114-39":[40.063602447509766,660.8094482421875],"6-114-40":[66.17192077636719,435.74798583984375],"6-114-41":[40.88275909423828,374.9598083496094],"6-114-42":[42.73994445800781,458.6563415527344],"6-114-43":[12.466410636901855,485.3210144042969],"6-114-44":[-17.43451499938965,336.8585510253906],"6-114-45":[-41.03781509399414,1170.08984375],"6-114-46":[-31.622499465942383,-2.9375],"6-114-47":[-33.619998931884766,-14.071249961853027],"6-114-48":[-34.7756233215332,-15.387499809265137],"6-114-49":[-37.494998931884766,-16.54146957397461],"6-114-50":[-40.360626220703125,-17.474750518798828],"6-114-51":[-49.63999938964844,-19.171249389648438],"6-114-52":[-59.33656311035156,-23.219999313354492],"6-114-53":[-75.375,-29.25374984741211],"6-114-54":[-88.57575988769531,-36.54875183105469],"6-114-55":[-89.5580825805664,1284.6400146484375],"6-114-56":[522.143310546875,2298.06494140625],"6-114-57":[2001.4356689453125,2577.31494140625],"6-114-58":[2428.59375,2638.074951171875],"6-114-59":[2355.27490234375,2612.98876953125],"6-114-60":[2205.202392578125,2407.179931640625],"6-114-61":[2221.106201171875,2636.28759765625],"6-114-62":[2602.74365234375,2964.78759765625],"6-114-63":[-29.536500930786133,3070.967529296875],"6-115-0":[12.074999809265137,29.544179916381836],"6-115-1":[8.62874984741211,24.46044921875],"5-57-0":[8.145530700683594,29.61492156982422],"6-115-2":[2.3975000381469727,17.299999237060547],"6-115-3":[1.8203749656677246,6.236875057220459],"5-57-1":[0.6924999952316284,17.299999237060547],"4-28-0":[-4.1240234375,29.61492156982422],"6-115-4":[0.8026250004768372,5.860000133514404],"6-115-5":[-0.8112499713897705,73.42987823486328],"5-57-2":[-1.9900000095367432,264.3922119140625],"6-115-6":[-0.8112499713897705,115.07627868652344],"6-115-7":[1.7745000123977661,672.752685546875],"5-57-3":[-2.4043750762939453,1696.848876953125],"4-28-1":[-8.157500267028809,2177.90283203125],"6-115-8":[49.514373779296875,2830.642822265625],"6-115-9":[503.9610900878906,2291.462890625],"5-57-4":[49.514373779296875,2830.642822265625],"6-115-10":[9.120444297790527,2265.176513671875],"6-115-11":[12.442978858947754,34.939998626708984],"5-57-5":[9.120444297790527,2513.421142578125],"4-28-2":[-0.2923329770565033,2830.642822265625],"6-115-12":[15.269999504089355,35.918357849121094],"6-115-13":[10.831809043884277,820.939453125],"5-57-6":[3.095820188522339,1624.42724609375],"6-115-14":[14.24219799041748,1183.293701171875],"6-115-15":[9.983827590942383,553.4686889648438],"5-57-7":[-16.773208618164062,1737.8624267578125],"4-28-3":[-16.773208618164062,2155.75048828125],"6-115-16":[9.037500381469727,1740.552001953125],"6-115-17":[8.77761459350586,43.599998474121094],"5-57-8":[-84.12662506103516,2312.9658203125],"6-115-18":[14.80000114440918,45.01927185058594],"6-115-19":[16.454378128051758,54.07225036621094],"5-57-9":[-17.61836051940918,1666.1339111328125],"4-28-4":[-84.12662506103516,3800.251953125],"6-115-20":[24.53992462158203,58.300682067871094],"6-115-21":[25.927499771118164,65.70874786376953],"5-57-10":[11.531497955322266,96.42070007324219],"6-115-22":[27.145002365112305,79.02813720703125],"6-115-23":[25.235393524169922,82.8499984741211],"5-57-11":[9.96710205078125,768.1024169921875],"4-28-5":[9.96710205078125,1148.9560546875],"6-115-24":[19.7591609954834,904.4130859375],"6-115-25":[34.27754211425781,1005.00732421875],"5-57-12":[19.7591609954834,1005.00732421875],"6-115-26":[39.750003814697266,844.8390502929688],"6-115-27":[31.11359977722168,457.0445861816406],"5-57-13":[31.11359977722168,844.8390502929688],"4-28-6":[19.7591609954834,1005.00732421875],"6-115-28":[39.70000076293945,118.4888687133789],"6-115-29":[57.522499084472656,126.9000015258789],"5-57-14":[34.45000076293945,129.67910766601562],"6-115-30":[61.370601654052734,131.1943817138672],"6-115-31":[64.24250030517578,143.2949981689453],"5-57-15":[61.370601654052734,144.6999969482422],"4-28-7":[34.45000076293945,237.0478057861328],"6-115-32":[67.54129791259766,296.1795654296875],"6-115-33":[36.60327911376953,3477.98046875],"5-57-16":[33.026973724365234,4032.220458984375],"6-115-34":[32.51049041748047,4553.65234375],"6-115-35":[36.30091094970703,265.7647705078125],"5-57-17":[24.723731994628906,4553.65234375],"4-28-8":[6.634612560272217,5227.3828125],"6-115-36":[59.7531852722168,573.4743041992188],"6-115-37":[29.750572204589844,1449.4176025390625],"5-57-18":[-3.3828868865966797,1449.4176025390625],"6-115-38":[28.522674560546875,1670.1334228515625],"6-115-39":[244.1732177734375,1064.7767333984375],"5-57-19":[-0.711439847946167,1670.1334228515625],"4-28-9":[-15.458501815795898,1670.1334228515625],"6-115-40":[176.38949584960938,727.3900146484375],"6-115-41":[119.67829132080078,517.6893310546875],"5-57-20":[40.88275909423828,727.3900146484375],"6-115-42":[67.33686828613281,518.955810546875],"6-115-43":[59.37562942504883,560.1074829101562],"5-57-21":[12.466410636901855,560.1074829101562],"4-28-10":[-55.10395050048828,1164.8416748046875],"6-115-44":[34.38574981689453,521.3291015625],"6-115-45":[-56.76288604736328,1522.548828125],"5-57-22":[-56.76288604736328,1522.548828125],"6-115-46":[-46.80474853515625,1610.48046875],"6-115-47":[-195.2725067138672,1424.549072265625],"5-57-23":[-195.2725067138672,1610.48046875],"4-28-11":[-195.2725067138672,1610.48046875],"6-115-48":[-32.34013748168945,-13.510000228881836],"6-115-49":[-36.09000015258789,-15.232500076293945],"5-57-24":[-37.494998931884766,-13.510000228881836],"6-115-50":[-39.147499084472656,-17.167417526245117],"6-115-51":[-46.483123779296875,-18.912656784057617],"5-57-25":[-49.63999938964844,-17.167417526245117],"4-28-12":[-52.071250915527344,-13.510000228881836],"6-115-52":[-56.638614654541016,-22.555166244506836],"6-115-53":[-72.9937515258789,-28.38249969482422],"5-57-26":[-75.375,-22.555166244506836],"6-115-54":[-88.65697479248047,-36.23583221435547],"6-115-55":[-97.83999633789062,759.7892456054688],"5-57-27":[-97.83999633789062,1284.6400146484375],"4-28-13":[-97.83999633789062,1701.9000244140625],"6-115-56":[-97.83999633789062,2001.4356689453125],"6-115-57":[1792.1075439453125,2428.59375],"5-57-28":[-97.83999633789062,2577.31494140625],"6-115-58":[2305.925048828125,2559.9931640625],"6-115-59":[2344.159912109375,2552.68310546875],"5-57-29":[2305.925048828125,2638.074951171875],"4-28-14":[-97.83999633789062,2867.36962890625],"6-115-60":[2100.9375,2355.27490234375],"6-115-61":[2117.14990234375,2602.74365234375],"5-57-30":[2100.9375,2636.28759765625],"6-115-62":[2569.81494140625,2959.581787109375],"6-115-63":[-29.536666870117188,3075.990478515625],"5-57-31":[-29.536666870117188,3075.990478515625],"4-28-15":[-29.536666870117188,3075.990478515625],"6-116-0":[10.665624618530273,29.112499237060547],"6-116-1":[7.220333099365234,22.055625915527344],"6-116-2":[2.25,16.649999618530273],"6-116-3":[1.8078124523162842,6.874101638793945],"6-116-4":[1.2005000114440918,361.9646911621094],"6-116-5":[-0.5600000023841858,89.28201293945312],"6-116-6":[-0.7743750214576721,341.41461181640625],"6-116-7":[1.7745000123977661,925.7824096679688],"6-116-8":[39.126773834228516,2260.361328125],"6-116-9":[440.905517578125,2390.556884765625],"6-116-10":[-3.354823350906372,1856.7806396484375],"6-116-11":[13.800000190734863,37.505001068115234],"6-116-12":[16.010000228881836,37.89433670043945],"6-116-13":[16.010000228881836,37.39656066894531],"6-116-14":[18.59164047241211,40.86542892456055],"6-116-15":[10.256943702697754,1590.3302001953125],"6-116-16":[-1.6091797351837158,1786.56689453125],"6-116-17":[8.342499732971191,43.599998474121094],"6-116-18":[15.480937957763672,44.52750015258789],"6-116-19":[15.73812484741211,47.619998931884766],"6-116-20":[16.8174991607666,51.474998474121094],"6-116-21":[19.434999465942383,63.15999984741211],"6-116-22":[23.953750610351562,70.36250305175781],"6-116-23":[29.0100040435791,74.36593627929688],"6-116-24":[26.610000610351562,82.68672943115234],"6-116-25":[30.184627532958984,93.32398223876953],"6-116-26":[30.987895965576172,99.50405883789062],"6-116-27":[30.961488723754883,99.07742309570312],"6-116-28":[45.57500076293945,117.30792999267578],"6-116-29":[55.187400817871094,122.73999786376953],"6-116-30":[58.42723083496094,127.65812683105469],"6-116-31":[60.623172760009766,135.0800018310547],"6-116-32":[62.0526008605957,783.6565551757812],"6-116-33":[65.8573226928711,1907.6220703125],"6-116-34":[31.245834350585938,4188.77490234375],"6-116-35":[53.936866760253906,4099.50048828125],"6-116-36":[62.28409957885742,139.9199981689453],"6-116-37":[59.30500030517578,129.46966552734375],"6-116-38":[36.96384048461914,1285.7059326171875],"6-116-39":[26.9000244140625,1325.22900390625],"6-116-40":[126.78111267089844,1296.7542724609375],"6-116-41":[189.9697265625,988.4273681640625],"6-116-42":[97.05457305908203,430.663330078125],"6-116-43":[131.13632202148438,1421.12646484375],"6-116-44":[85.41197967529297,2241.0205078125],"6-116-45":[-70.559326171875,1999.20361328125],"6-116-46":[-19.927776336669922,1568.3592529296875],"6-116-47":[-160.76014709472656,1420.8681640625],"6-116-48":[-29.68375015258789,-12.33218765258789],"6-116-49":[-36.44039535522461,-13.090234756469727],"6-116-50":[-40.72152328491211,-17.243749618530273],"6-116-51":[-47.29499816894531,-19.53499984741211],"6-116-52":[-54.92937469482422,-22.38483238220215],"6-116-53":[-72.47000122070312,-27.53499984741211],"6-116-54":[-87.52726745605469,-35.51300048828125],"6-116-55":[-101.32499694824219,-44.717498779296875],"6-116-56":[-102.53226470947266,1792.1075439453125],"6-116-57":[1600.89501953125,2338.90869140625],"6-116-58":[2295.636474609375,2481.0849609375],"6-116-59":[2291.177490234375,2481.952392578125],"6-116-60":[1899.802001953125,2344.159912109375],"6-116-61":[1943.7081298828125,2569.81494140625],"6-116-62":[2529.66748046875,2955.419921875],"6-116-63":[-29.536874771118164,3081.9423828125],"6-117-0":[9.486249923706055,28.138145446777344],"6-117-1":[6.763000011444092,18.879863739013672],"5-58-0":[6.763000011444092,29.112499237060547],"6-117-2":[2.2899999618530273,14.987812042236328],"6-117-3":[1.6208332777023315,7.389218807220459],"5-58-1":[1.6208332777023315,16.649999618530273],"6-117-4":[1.4889583587646484,155.9803009033203],"6-117-5":[0.48500001430511475,58.0925407409668],"5-58-2":[-0.5600000023841858,361.9646911621094],"6-117-6":[0.3932291567325592,341.41461181640625],"6-117-7":[3.5183749198913574,692.031982421875],"5-58-3":[-0.7743750214576721,925.7824096679688],"6-117-8":[22.343067169189453,2175.64599609375],"6-117-9":[114.09969329833984,2203.43798828125],"5-58-4":[22.343067169189453,2390.556884765625],"6-117-10":[5.559625148773193,2094.719970703125],"6-117-11":[-0.4635060727596283,1541.509521484375],"5-58-5":[-3.354823350906372,2094.719970703125],"6-117-12":[17.952125549316406,39.690242767333984],"6-117-13":[17.969375610351562,40.765625],"5-58-6":[16.010000228881836,40.765625],"6-117-14":[18.87874984741211,43.19855499267578],"6-117-15":[-7.86593770980835,1533.206298828125],"5-58-7":[-7.86593770980835,1590.3302001953125],"6-117-16":[-7.872968673706055,45.400840759277344],"6-117-17":[12.998679161071777,36.852500915527344],"5-58-8":[-7.872968673706055,1786.56689453125],"6-117-18":[10.1850004196167,34.606876373291016],"6-117-19":[10.1850004196167,33.00312423706055],"5-58-9":[10.1850004196167,47.619998931884766],"6-117-20":[12.59874439239502,37.831092834472656],"6-117-21":[14.567500114440918,46.099063873291016],"5-58-10":[12.59874439239502,63.15999984741211],"6-117-22":[19.385944366455078,56.8708381652832],"6-117-23":[25.612499237060547,72.86000061035156],"5-58-11":[19.385944366455078,74.36593627929688],"6-117-24":[31.14550018310547,82.55413818359375],"6-117-25":[36.51883316040039,88.4946060180664],"5-58-12":[26.610000610351562,93.32398223876953],"6-117-26":[38.76350021362305,89.45427703857422],"6-117-27":[39.86125183105469,92.43867492675781],"5-58-13":[30.961488723754883,99.50405883789062],"6-117-28":[41.99208450317383,110.82344818115234],"6-117-29":[35.45594024658203,503.7287902832031],"5-58-14":[35.45594024658203,503.7287902832031],"6-117-30":[53.071876525878906,118.79447174072266],"6-117-31":[54.682498931884766,129.0264892578125],"5-58-15":[53.071876525878906,135.0800018310547],"6-117-32":[53.24993896484375,964.3775634765625],"6-117-33":[57.101566314697266,2427.6357421875],"5-58-16":[53.24993896484375,2427.6357421875],"6-117-34":[58.875022888183594,2022.9703369140625],"6-117-35":[-78.96611785888672,3071.923095703125],"5-58-17":[-78.96611785888672,4188.77490234375],"6-117-36":[62.087520599365234,143.55313110351562],"6-117-37":[61.21175765991211,128.8140411376953],"5-58-18":[59.30500030517578,143.55313110351562],"6-117-38":[57.561561584472656,126.22562408447266],"6-117-39":[30.205888748168945,869.7911376953125],"5-58-19":[26.9000244140625,1325.22900390625],"6-117-40":[0.01781328395009041,1008.4034423828125],"6-117-41":[75.28893280029297,1199.974853515625],"5-58-20":[0.01781328395009041,1296.7542724609375],"6-117-42":[145.6856689453125,1550.4273681640625],"6-117-43":[-25.518312454223633,1629.0196533203125],"5-58-21":[-25.518312454223633,1629.0196533203125],"6-117-44":[-80.42904663085938,1622.965576171875],"6-117-45":[-23.021146774291992,1262.5177001953125],"5-58-22":[-80.42904663085938,2241.0205078125],"6-117-46":[-14.619453430175781,1.667382836341858],"6-117-47":[-24.709999084472656,-5.89937686920166],"5-58-23":[-160.76014709472656,1568.3592529296875],"6-117-48":[-29.365938186645508,-11.359833717346191],"6-117-49":[-35.6456413269043,-13.208749771118164],"5-58-24":[-36.44039535522461,-11.359833717346191],"6-117-50":[-40.4484748840332,-17.243749618530273],"6-117-51":[-48.20000076293945,-20.044374465942383],"5-58-25":[-48.20000076293945,-17.243749618530273],"6-117-52":[-53.68312454223633,-23.20916748046875],"6-117-53":[-71.27625274658203,-27.262500762939453],"5-58-26":[-72.47000122070312,-22.38483238220215],"6-117-54":[-86.61160278320312,-34.15299987792969],"6-117-55":[-101.98625183105469,-43.806251525878906],"5-58-27":[-101.98625183105469,-34.15299987792969],"6-117-56":[-106.24812316894531,1600.89501953125],"6-117-57":[1442.23876953125,2342.56787109375],"5-58-28":[-106.24812316894531,2342.56787109375],"6-117-58":[2216.37109375,2456.9404296875],"6-117-59":[2218.72998046875,2466.508056640625],"5-58-29":[2216.37109375,2481.952392578125],"6-117-60":[1411.3575439453125,2291.177490234375],"6-117-61":[1690.0849609375,2529.66748046875],"5-58-30":[1411.3575439453125,2569.81494140625],"6-117-62":[2447.362548828125,2953.2724609375],"6-117-63":[-29.537166595458984,3084.902587890625],"5-58-31":[-29.537166595458984,3084.902587890625],"6-118-0":[8.815625190734863,27.709999084472656],"6-118-1":[6.642499923706055,17.179061889648438],"6-118-2":[1.8231250047683716,14.164999961853027],"6-118-3":[1.290624976158142,7.12375020980835],"6-118-4":[1.8012499809265137,112.11741638183594],"6-118-5":[0.828083336353302,6.130234241485596],"6-118-6":[0.715416669845581,75.9356689453125],"6-118-7":[3.5340499877929688,559.1232299804688],"6-118-8":[15.46150016784668,1102.2059326171875],"6-118-9":[92.72373962402344,1636.0654296875],"6-118-10":[2.354978322982788,1813.4786376953125],"6-118-11":[1.2194784879684448,1062.2607421875],"6-118-12":[17.21588897705078,43.50031280517578],"6-118-13":[19.636249542236328,45.975364685058594],"6-118-14":[0.731469452381134,1460.1236572265625],"6-118-15":[-7.908124923706055,1395.610107421875],"6-118-16":[-7.915156364440918,30.436250686645508],"6-118-17":[6.230000019073486,30.198749542236328],"6-118-18":[4.708749771118164,24.25],"6-118-19":[4.926249980926514,23.700000762939453],"6-118-20":[6.292500019073486,28.333436965942383],"6-118-21":[10.463125228881836,37.150001525878906],"6-118-22":[12.988750457763672,50.319374084472656],"6-118-23":[19.098125457763672,62.27000045776367],"6-118-24":[25.967500686645508,72.18437194824219],"6-118-25":[29.55875015258789,81.25499725341797],"6-118-26":[33.77295684814453,84.40875244140625],"6-118-27":[35.3068733215332,83.9800033569336],"6-118-28":[39.2400016784668,102.11485290527344],"6-118-29":[44.51163864135742,337.6989440917969],"6-118-30":[50.713748931884766,111.4332046508789],"6-118-31":[54.60862350463867,118.89913940429688],"6-118-32":[58.04140090942383,435.7176818847656],"6-118-33":[2.7415387630462646,2388.150390625],"6-118-34":[53.28290557861328,143.45147705078125],"6-118-35":[58.58671188354492,1094.57421875],"6-118-36":[60.498992919921875,866.239990234375],"6-118-37":[60.70478057861328,127.94062805175781],"6-118-38":[55.23906326293945,126.06999969482422],"6-118-39":[48.722591400146484,114.90018463134766],"6-118-40":[16.011627197265625,468.228271484375],"6-118-41":[-7.423759460449219,1263.12548828125],"6-118-42":[3.557708263397217,1616.844482421875],"6-118-43":[-3.456015110015869,1396.92724609375],"6-118-44":[7.578750133514404,40.311954498291016],"6-118-45":[0.6600000262260437,22.4189453125],"6-118-46":[-11.276874542236328,6.933164119720459],"6-118-47":[-22.420000076293945,-3.984999895095825],"6-118-48":[-29.365938186645508,-9.382499694824219],"6-118-49":[-35.14500045776367,-14.484375],"6-118-50":[-40.6496696472168,-17.235750198364258],"6-118-51":[-48.87874984741211,-20.439374923706055],"6-118-52":[-56.67544937133789,-24.1564998626709],"6-118-53":[-69.2484359741211,-27.350000381469727],"6-118-54":[-85.11312866210938,-33.760581970214844],"6-118-55":[-101.79750061035156,-42.7443733215332],"6-118-56":[-106.99699401855469,1522.7574462890625],"6-118-57":[1441.772216796875,2294.889892578125],"6-118-58":[1910.7437744140625,2319.457763671875],"6-118-59":[1821.9599609375,2399.60400390625],"6-118-60":[803.634765625,2218.72998046875],"6-118-61":[1627.453125,2447.362548828125],"6-118-62":[2363.530029296875,2959.2548828125],"6-118-63":[-29.53733253479004,3089.361328125],"6-119-0":[8.678437232971191,27.138750076293945],"6-119-1":[6.409847259521484,16.73812484741211],"5-59-0":[6.409847259521484,27.709999084472656],"6-119-2":[1.7775781154632568,13.154375076293945],"6-119-3":[1.2133333683013916,7.079999923706055],"5-59-1":[1.2133333683013916,14.164999961853027],"4-29-0":[1.2133333683013916,29.112499237060547],"6-119-4":[2.016249895095825,7.079999923706055],"6-119-5":[0.4939010441303253,6.935546875],"5-59-2":[0.4939010441303253,112.11741638183594],"6-119-6":[1.2906770706176758,81.6427001953125],"6-119-7":[3.2453999519348145,433.7110290527344],"5-59-3":[0.715416669845581,559.1232299804688],"4-29-1":[-0.7743750214576721,925.7824096679688],"3-14-0":[-8.157500267028809,2177.90283203125],"6-119-8":[15.621330261230469,1098.364990234375],"6-119-9":[80.42500305175781,1766.679931640625],"5-59-4":[15.46150016784668,1766.679931640625],"6-119-10":[-12.745160102844238,1878.568603515625],"6-119-11":[15.705033302307129,935.5357055664062],"5-59-5":[-12.745160102844238,1878.568603515625],"4-29-2":[-12.745160102844238,2390.556884765625],"6-119-12":[13.953348159790039,2005.11962890625],"6-119-13":[17.080238342285156,2477.117431640625],"5-59-6":[13.953348159790039,2477.117431640625],"6-119-14":[1.0381250381469727,1817.916748046875],"6-119-15":[3.2560620307922363,33.3420295715332],"5-59-7":[-7.908124923706055,1817.916748046875],"4-29-3":[-7.908124923706055,2477.117431640625],"3-14-1":[-16.773208618164062,2830.642822265625],"6-119-16":[4.272500038146973,23.388750076293945],"6-119-17":[1.7020000219345093,17.372480392456055],"5-59-8":[-7.915156364440918,30.436250686645508],"6-119-18":[0.23899999260902405,11.201874732971191],"6-119-19":[1.5377343893051147,11.194999694824219],"5-59-9":[0.23899999260902405,24.25],"4-29-4":[-7.915156364440918,1786.56689453125],"6-119-20":[4.13539457321167,19.584999084472656],"6-119-21":[6.497499942779541,25.027812957763672],"5-59-10":[4.13539457321167,37.150001525878906],"6-119-22":[9.004817008972168,34.9375],"6-119-23":[13.702500343322754,51.541873931884766],"5-59-11":[9.004817008972168,62.27000045776367],"4-29-5":[4.13539457321167,74.36593627929688],"3-14-2":[-84.12662506103516,3800.251953125],"6-119-24":[20.279375076293945,58.62882995605469],"6-119-25":[26.329999923706055,64.61756134033203],"5-59-12":[20.279375076293945,81.25499725341797],"6-119-26":[29.213666915893555,76.12562561035156],"6-119-27":[31.514686584472656,78.91500091552734],"5-59-13":[29.213666915893555,84.40875244140625],"4-29-6":[20.279375076293945,99.50405883789062],"6-119-28":[34.897499084472656,91.6171875],"6-119-29":[42.31672286987305,102.13916015625],"5-59-14":[34.897499084472656,337.6989440917969],"6-119-30":[49.885765075683594,110.55802917480469],"6-119-31":[51.587501525878906,118.66593933105469],"5-59-15":[49.885765075683594,118.89913940429688],"4-29-7":[34.897499084472656,503.7287902832031],"3-14-3":[19.7591609954834,1005.00732421875],"6-119-32":[55.156333923339844,126.20240020751953],"6-119-33":[55.729034423828125,960.8795166015625],"5-59-16":[2.7415387630462646,2388.150390625],"6-119-34":[6.183466911315918,2782.56201171875],"6-119-35":[49.89093780517578,1115.4150390625],"5-59-17":[6.183466911315918,2782.56201171875],"4-29-8":[-78.96611785888672,4188.77490234375],"6-119-36":[63.796875,138.90640258789062],"6-119-37":[60.58150100708008,131.75225830078125],"5-59-18":[60.498992919921875,866.239990234375],"6-119-38":[55.491641998291016,123.46561431884766],"6-119-39":[49.44233322143555,110.91312408447266],"5-59-19":[48.722591400146484,126.06999969482422],"4-29-9":[26.9000244140625,1325.22900390625],"3-14-4":[-78.96611785888672,5227.3828125],"6-119-40":[40.761016845703125,99.58000183105469],"6-119-41":[33.80708312988281,84.70574188232422],"5-59-20":[-7.423759460449219,1263.12548828125],"6-119-42":[26.011524200439453,74.0328140258789],"6-119-43":[18.31999969482422,59.156639099121094],"5-59-21":[-3.456015110015869,1616.844482421875],"4-29-10":[-25.518312454223633,1629.0196533203125],"6-119-44":[11.243749618530273,40.959999084472656],"6-119-45":[3.476249933242798,25.383438110351562],"5-59-22":[0.6600000262260437,40.959999084472656],"6-119-46":[-5.622949123382568,10.6899995803833],"6-119-47":[-18.51187515258789,-2.200000047683716],"5-59-23":[-22.420000076293945,10.6899995803833],"4-29-11":[-160.76014709472656,2241.0205078125],"3-14-5":[-195.2725067138672,2241.0205078125],"6-119-48":[-27.887714385986328,-8.104499816894531],"6-119-49":[-34.86164093017578,-13.332500457763672],"5-59-24":[-35.14500045776367,-8.104499816894531],"6-119-50":[-42.146484375,-16.71500015258789],"6-119-51":[-55.47999954223633,-20.5362491607666],"5-59-25":[-55.47999954223633,-16.71500015258789],"4-29-12":[-55.47999954223633,-8.104499816894531],"6-119-52":[-67.24624633789062,-24.479999542236328],"6-119-53":[-69.9800033569336,-28.77312469482422],"5-59-26":[-69.9800033569336,-24.1564998626709],"6-119-54":[-84.62875366210938,-34.473167419433594],"6-119-55":[-101.05999755859375,-42.64484405517578],"5-59-27":[-101.79750061035156,-33.760581970214844],"4-29-13":[-101.98625183105469,-22.38483238220215],"3-14-6":[-101.98625183105469,1701.9000244140625],"6-119-56":[-106.66616821289062,1594.2003173828125],"6-119-57":[1522.7574462890625,2260.155029296875],"5-59-28":[-106.99699401855469,2294.889892578125],"6-119-58":[1520.8018798828125,2260.155029296875],"6-119-59":[1378.3599853515625,2352.81689453125],"5-59-29":[1378.3599853515625,2399.60400390625],"4-29-14":[-106.99699401855469,2481.952392578125],"6-119-60":[115.06254577636719,3169.819091796875],"6-119-61":[1392.8712158203125,2470.733642578125],"5-59-30":[115.06254577636719,3169.819091796875],"6-119-62":[2356.792724609375,2967.239990234375],"6-119-63":[-29.53766632080078,3091.364990234375],"5-59-31":[-29.53766632080078,3091.364990234375],"4-29-15":[-29.53766632080078,3169.819091796875],"3-14-7":[-106.99699401855469,3169.819091796875],"6-120-0":[8.692500114440918,26.74187469482422],"6-120-1":[5.528749942779541,17.39875030517578],"6-120-2":[1.8200000524520874,12.039999961853027],"6-120-3":[0.5954166650772095,7.079999923706055],"6-120-4":[2.0975000858306885,7.079999923706055],"6-120-5":[0.7456145882606506,5.166874885559082],"6-120-6":[1.055999994277954,56.89479064941406],"6-120-7":[2.8581249713897705,903.9415893554688],"6-120-8":[56.39567947387695,1454.0367431640625],"6-120-9":[12.61048412322998,1757.6082763671875],"6-120-10":[12.59611701965332,947.6790771484375],"6-120-11":[15.292058944702148,2605.120849609375],"6-120-12":[7.080582141876221,3631.58447265625],"6-120-13":[-0.6945898532867432,3468.02197265625],"6-120-14":[1.4083333015441895,40.119998931884766],"6-120-15":[4.122499942779541,24.947500228881836],"6-120-16":[-0.26750001311302185,17.940000534057617],"6-120-17":[-4.960625171661377,7.427499771118164],"6-120-18":[-6.550000190734863,3],"6-120-19":[-3.976679801940918,7.460000038146973],"6-120-20":[-0.5799999833106995,12.976249694824219],"6-120-21":[2.198124885559082,17.270000457763672],"6-120-22":[4.586249828338623,25.5206241607666],"6-120-23":[8.8931245803833,39.88249969482422],"6-120-24":[15.157500267028809,49.4943733215332],"6-120-25":[21.301952362060547,58.41999816894531],"6-120-26":[25.248958587646484,62.263126373291016],"6-120-27":[28.532968521118164,69.77999877929688],"6-120-28":[32.36146545410156,84.62999725341797],"6-120-29":[37.30500030517578,831.8881225585938],"6-120-30":[42.450164794921875,102.94812774658203],"6-120-31":[46.516876220703125,110.30000305175781],"6-120-32":[48.73749923706055,118.15687561035156],"6-120-33":[52.39812469482422,128.81468200683594],"6-120-34":[36.327980041503906,1251.1383056640625],"6-120-35":[16.842161178588867,2387.584228515625],"6-120-36":[45.89206314086914,264.38232421875],"6-120-37":[59.1775016784668,130.21524047851562],"6-120-38":[55.657501220703125,121.68000030517578],"6-120-39":[49.17133331298828,115.93640899658203],"6-120-40":[42.96500015258789,105.8949966430664],"6-120-41":[35.400333404541016,90.5185775756836],"6-120-42":[28.582500457763672,74.61250305175781],"6-120-43":[8.576234817504883,495.657958984375],"6-120-44":[12.800000190734863,48.153751373291016],"6-120-45":[5.961341857910156,25.67837905883789],"6-120-46":[-2.474375009536743,12.369375228881836],"6-120-47":[-16.46125030517578,-0.49437499046325684],"6-120-48":[-25.266151428222656,-6.400000095367432],"6-120-49":[-33.36320495605469,-10.640000343322754],"6-120-50":[-42.49348449707031,-14.520781517028809],"6-120-51":[-55.79249954223633,383.7384948730469],"6-120-52":[-67.97261810302734,-26.30500030517578],"6-120-53":[-72.62593841552734,-30.519500732421875],"6-120-54":[-84.7211685180664,-34.99150085449219],"6-120-55":[-104.09874725341797,-43.287498474121094],"6-120-56":[-112.01777648925781,1627.1080322265625],"6-120-57":[475.75750732421875,2656.258544921875],"6-120-58":[867.5308837890625,2268.894775390625],"6-120-59":[1045.70263671875,2732.982421875],"6-120-60":[-105.77312469482422,3191.80615234375],"6-120-61":[347.55816650390625,2726.561767578125],"6-120-62":[2344.7861328125,2977.1982421875],"6-120-63":[-29.53783416748047,3090.375],"6-121-0":[8.973125457763672,26.74187469482422],"6-121-1":[5.528749942779541,18.197187423706055],"5-60-0":[5.528749942779541,26.74187469482422],"6-121-2":[1.996250033378601,10.993749618530273],"6-121-3":[0.42116665840148926,4.815625190734863],"5-60-1":[0.42116665840148926,12.039999961853027],"6-121-4":[2.251619815826416,7.425000190734863],"6-121-5":[0.7152083516120911,4.926953315734863],"5-60-2":[0.7152083516120911,7.425000190734863],"6-121-6":[1.2916666269302368,271.4375],"6-121-7":[2.8581249713897705,1052.6834716796875],"5-60-3":[1.055999994277954,1052.6834716796875],"6-121-8":[37.860416412353516,1653.565673828125],"6-121-9":[11.567999839782715,1415.3004150390625],"5-60-4":[11.567999839782715,1757.6082763671875],"6-121-10":[10.821890830993652,1872.7850341796875],"6-121-11":[9.111438751220703,3277.22802734375],"5-60-5":[9.111438751220703,3277.22802734375],"6-121-12":[-5.053789138793945,4774.22265625],"6-121-13":[-5.96682596206665,28.130781173706055],"5-60-6":[-5.96682596206665,4774.22265625],"6-121-14":[3.79875111579895,18.416563034057617],"6-121-15":[-1.0800000429153442,16.7503719329834],"5-60-7":[-1.0800000429153442,40.119998931884766],"6-121-16":[-7.921875,7.260624885559082],"6-121-17":[-11.569999694824219,-0.26750001311302185],"5-60-8":[-11.569999694824219,17.940000534057617],"6-121-18":[-11.897187232971191,-2.7018749713897705],"6-121-19":[-13.4946870803833,-0.5799999833106995],"5-60-9":[-13.4946870803833,7.460000038146973],"6-121-20":[-13.399999618530273,2.198124885559082],"6-121-21":[-4.886562347412109,8.55843734741211],"5-60-10":[-13.399999618530273,17.270000457763672],"6-121-22":[1.3107500076293945,15.95003890991211],"6-121-23":[6.085000038146973,30.174375534057617],"5-60-11":[1.3107500076293945,39.88249969482422],"6-121-24":[11.756769180297852,45.260135650634766],"6-121-25":[17.548749923706055,49.690311431884766],"5-60-12":[11.756769180297852,58.41999816894531],"6-121-26":[24.652942657470703,60.13412094116211],"6-121-27":[25.475000381469727,66.55365753173828],"5-60-13":[24.652942657470703,69.77999877929688],"6-121-28":[28.73543357849121,75.08226776123047],"6-121-29":[32.36000061035156,84.9000015258789],"5-60-14":[28.73543357849121,831.8881225585938],"6-121-30":[37.912498474121094,673.9683227539062],"6-121-31":[41.13249969482422,96.34249877929688],"5-60-15":[37.912498474121094,673.9683227539062],"6-121-32":[43.400665283203125,101.49954986572266],"6-121-33":[46.932498931884766,118.88749694824219],"5-60-16":[43.400665283203125,128.81468200683594],"6-121-34":[49.60951232910156,839.36083984375],"6-121-35":[9.568012237548828,1980.0616455078125],"5-60-17":[9.568012237548828,2387.584228515625],"6-121-36":[44.872840881347656,241.21823120117188],"6-121-37":[58.564998626708984,129.19125366210938],"5-60-18":[44.872840881347656,264.38232421875],"6-121-38":[56.185001373291016,122.2020263671875],"6-121-39":[50.70249938964844,116.6963882446289],"5-60-19":[49.17133331298828,122.2020263671875],"6-121-40":[45.59210968017578,106.1117935180664],"6-121-41":[37.73875045776367,94.43732452392578],"5-60-20":[35.400333404541016,106.1117935180664],"6-121-42":[32.385623931884766,82.3499984741211],"6-121-43":[24.792499542236328,66.26488494873047],"5-60-21":[8.576234817504883,495.657958984375],"6-121-44":[14.551875114440918,55.75],"6-121-45":[6.510000228881836,35.27531433105469],"5-60-22":[5.961341857910156,55.75],"6-121-46":[-0.49437499046325684,21.219999313354492],"6-121-47":[-12.250624656677246,3.973750114440918],"5-60-23":[-16.46125030517578,21.219999313354492],"6-121-48":[-19.803085327148438,-3.4900832176208496],"6-121-49":[-29.01531219482422,-8.067500114440918],"5-60-24":[-33.36320495605469,-3.4900832176208496],"6-121-50":[-41.041561126708984,-10.84041690826416],"6-121-51":[-63.15999984741211,-19.986719131469727],"5-60-25":[-63.15999984741211,383.7384948730469],"6-121-52":[-72.97562408447266,-28.170000076293945],"6-121-53":[-77.21624755859375,-33.823123931884766],"5-60-26":[-77.21624755859375,-26.30500030517578],"6-121-54":[-88.45218658447266,-36.591251373291016],"6-121-55":[-106.45874786376953,1402.855224609375],"5-60-27":[-106.45874786376953,1402.855224609375],"6-121-56":[-114.62625122070312,475.75750732421875],"6-121-57":[-117.5804672241211,2620.771240234375],"5-60-28":[-117.5804672241211,2656.258544921875],"6-121-58":[-116.4671859741211,3433.817138671875],"6-121-59":[-115.51000213623047,3317.9130859375],"5-60-29":[-116.4671859741211,3433.817138671875],"6-121-60":[-115.68836212158203,2320.190673828125],"6-121-61":[-91.82906341552734,4077.77685546875],"5-60-30":[-115.68836212158203,4077.77685546875],"6-121-62":[1924.90966796875,2984.135009765625],"6-121-63":[-29.538000106811523,3088.162841796875],"5-60-31":[-29.538000106811523,3090.375],"6-122-0":[9.422499656677246,26.75374984741211],"6-122-1":[5.654697418212891,18.58611297607422],"6-122-2":[2.494999885559082,11.397187232971191],"6-122-3":[0.2621093690395355,4.800624847412109],"6-122-4":[1.9500000476837158,7.462890625],"6-122-5":[0.7733437418937683,4.79861307144165],"6-122-6":[1.1493802070617676,7.611445426940918],"6-122-7":[3.84375,1528.569091796875],"6-122-8":[108.15875244140625,1757.5029296875],"6-122-9":[10.946916580200195,1582.2799072265625],"6-122-10":[6.8008904457092285,1233.6624755859375],"6-122-11":[7.890000343322754,932.537109375],"6-122-12":[-3.3978259563446045,850.9730834960938],"6-122-13":[1.6449999809265137,20.105810165405273],"6-122-14":[0.4893749952316284,16.334999084472656],"6-122-15":[-7.203750133514404,6.87624979019165],"6-122-16":[-12.067129135131836,-0.715583324432373],"6-122-17":[-17.580097198486328,-4.258749961853027],"6-122-18":[-18.54181671142578,-5.378749847412109],"6-122-19":[-18.71062469482422,-6.193749904632568],"6-122-20":[-17.5625,-2.8787500858306885],"6-122-21":[-10.743749618530273,2.450000047683716],"6-122-22":[-3.6293749809265137,10.618437767028809],"6-122-23":[1.4924999475479126,22.489999771118164],"6-122-24":[7.722499847412109,36.8459358215332],"6-122-25":[14.127449989318848,46.46500015258789],"6-122-26":[19.28809928894043,54.71320343017578],"6-122-27":[23.591699600219727,60.98859786987305],"6-122-28":[26.752784729003906,65.90101623535156],"6-122-29":[28.538803100585938,72.28894805908203],"6-122-30":[31.659082412719727,81.31906127929688],"6-122-31":[36.025001525878906,86.87999725341797],"6-122-32":[39.15758514404297,92.43624877929688],"6-122-33":[41.6510009765625,106.0250015258789],"6-122-34":[46.6578254699707,119.41500091552734],"6-122-35":[48.07094955444336,866.3185424804688],"6-122-36":[45.55891036987305,126.92754364013672],"6-122-37":[53.70066452026367,127.15707397460938],"6-122-38":[52.98944854736328,340.7690734863281],"6-122-39":[35.29603958129883,1689.023681640625],"6-122-40":[46.98320388793945,106.60968780517578],"6-122-41":[40.00339889526367,96.94999694824219],"6-122-42":[33.404998779296875,82.61250305175781],"6-122-43":[27.677000045776367,66.12531280517578],"6-122-44":[18.65999984741211,57.536251068115234],"6-122-45":[14.328749656677246,44.26701354980469],"6-122-46":[3.0012500286102295,29.201875686645508],"6-122-47":[-11.145000457763672,13.462499618530273],"6-122-48":[-19.416093826293945,-2.932478904724121],"6-122-49":[-27.373437881469727,-6.287600040435791],"6-122-50":[-46.334800720214844,517.8741455078125],"6-122-51":[-65.38823699951172,-20.438125610351562],"6-122-52":[-77.61161804199219,-31.584999084472656],"6-122-53":[-81.77318572998047,-37.06999969482422],"6-122-54":[-91.48986053466797,-38.57266616821289],"6-122-55":[-105.69000244140625,-45.165000915527344],"6-122-56":[-117.37384796142578,-51.892333984375],"6-122-57":[-60.45609664916992,3075.790283203125],"6-122-58":[-117.88853454589844,3148.595947265625],"6-122-59":[-115.51116943359375,2551.8212890625],"6-122-60":[-111.81999969482422,209.77999877929688],"6-122-61":[-93.21853637695312,3800.6328125],"6-122-62":[1431.844482421875,3358.989990234375],"6-122-63":[-29.538333892822266,3084.4736328125],"6-123-0":[9.851249694824219,26.77375030517578],"6-123-1":[5.733749866485596,18.852500915527344],"5-61-0":[5.654697418212891,26.77375030517578],"6-123-2":[2.9375,12],"6-123-3":[0.1446666717529297,5.400000095367432],"5-61-1":[0.1446666717529297,12],"4-30-0":[0.1446666717529297,26.77375030517578],"6-123-4":[0.9200000166893005,8.011249542236328],"6-123-5":[1.1187916994094849,5.412499904632568],"5-61-2":[0.7733437418937683,8.011249542236328],"6-123-6":[1.159999966621399,7.18625020980835],"6-123-7":[3.593437433242798,1680.3233642578125],"5-61-3":[1.1493802070617676,1680.3233642578125],"4-30-1":[0.7152083516120911,1680.3233642578125],"6-123-8":[102.27891540527344,1646.580810546875],"6-123-9":[12.038999557495117,1328.4658203125],"5-61-4":[10.946916580200195,1757.5029296875],"6-123-10":[4.755800724029541,1210.9276123046875],"6-123-11":[5.382916450500488,20.58367156982422],"5-61-5":[4.755800724029541,1233.6624755859375],"4-30-2":[4.755800724029541,3277.22802734375],"6-123-12":[-6.742199897766113,744.804443359375],"6-123-13":[-5.230391979217529,18.847753524780273],"5-61-6":[-6.742199897766113,850.9730834960938],"6-123-14":[-6.414609432220459,11.449023246765137],"6-123-15":[-19.479999542236328,0.4893749952316284],"5-61-7":[-19.479999542236328,16.334999084472656],"4-30-3":[-19.479999542236328,4774.22265625],"6-123-16":[-20.732500076293945,-3.9000000953674316],"6-123-17":[-25.1200008392334,-6.724999904632568],"5-61-8":[-25.1200008392334,-0.715583324432373],"6-123-18":[-25.1200008392334,-8.7134370803833],"6-123-19":[-20.434999465942383,-8.817500114440918],"5-61-9":[-25.1200008392334,-5.378749847412109],"4-30-4":[-25.1200008392334,17.940000534057617],"6-123-20":[-18.993125915527344,-6.489375114440918],"6-123-21":[-14.620624542236328,-2.184999942779541],"5-61-10":[-18.993125915527344,2.450000047683716],"6-123-22":[-8.930000305175781,1.4924999475479126],"6-123-23":[-0.8424999713897705,14.40250015258789],"5-61-11":[-8.930000305175781,22.489999771118164],"4-30-5":[-18.993125915527344,39.88249969482422],"6-123-24":[5.502047061920166,29.6007022857666],"6-123-25":[10.768524169921875,38.57500076293945],"5-61-12":[5.502047061920166,46.46500015258789],"6-123-26":[16.151100158691406,50.76755905151367],"6-123-27":[19.030500411987305,52.362728118896484],"5-61-13":[16.151100158691406,60.98859786987305],"4-30-6":[5.502047061920166,69.77999877929688],"6-123-28":[20.242504119873047,74.25261688232422],"6-123-29":[19.9263973236084,68.92803955078125],"5-61-14":[19.9263973236084,74.25261688232422],"6-123-30":[27.600000381469727,72.05000305175781],"6-123-31":[30.844999313354492,78.31500244140625],"5-61-15":[27.600000381469727,86.87999725341797],"4-30-7":[19.9263973236084,831.8881225585938],"6-123-32":[9.901000022888184,105.89216613769531],"6-123-33":[38.55853271484375,93.3125],"5-61-16":[9.901000022888184,106.0250015258789],"6-123-34":[42.046234130859375,104.46794891357422],"6-123-35":[26.89684295654297,608.859375],"5-61-17":[26.89684295654297,866.3185424804688],"4-30-8":[9.568012237548828,2387.584228515625],"6-123-36":[44.53181457519531,1017.7314453125],"6-123-37":[-166.25953674316406,1941.7493896484375],"5-61-18":[-166.25953674316406,1941.7493896484375],"6-123-38":[49.915000915527344,717.2467041015625],"6-123-39":[18.089313507080078,1664.4691162109375],"5-61-19":[18.089313507080078,1689.023681640625],"4-30-9":[-166.25953674316406,1941.7493896484375],"6-123-40":[48.474998474121094,309.1024169921875],"6-123-41":[41.306251525878906,105.66000366210938],"5-61-20":[40.00339889526367,309.1024169921875],"6-123-42":[34.678749084472656,357.8639221191406],"6-123-43":[28.791000366210938,77.859375],"5-61-21":[27.677000045776367,357.8639221191406],"4-30-10":[8.576234817504883,495.657958984375],"6-123-44":[23.627500534057617,65.37999725341797],"6-123-45":[14.328749656677246,51.133750915527344],"5-61-22":[14.328749656677246,65.37999725341797],"6-123-46":[6.731250762939453,41.959999084472656],"6-123-47":[-345.6128845214844,2939.59375],"5-61-23":[-345.6128845214844,2939.59375],"4-30-11":[-345.6128845214844,2939.59375],"6-123-48":[-74.0552978515625,2088.413330078125],"6-123-49":[-22.41708755493164,566.575927734375],"5-61-24":[-74.0552978515625,2088.413330078125],"6-123-50":[-82.30044555664062,649.829345703125],"6-123-51":[-70.0999984741211,-20.383085250854492],"5-61-25":[-82.30044555664062,649.829345703125],"4-30-12":[-82.30044555664062,2088.413330078125],"6-123-52":[-83.375,-32.372501373291016],"6-123-53":[-91.84124755859375,-39.818748474121094],"5-61-26":[-91.84124755859375,-31.584999084472656],"6-123-54":[-95.57624816894531,-41.026248931884766],"6-123-55":[-108.16000366210938,-46.75312423706055],"5-61-27":[-108.16000366210938,-38.57266616821289],"4-30-13":[-108.16000366210938,1402.855224609375],"6-123-56":[-118.67826080322266,-52.76750183105469],"6-123-57":[-116.80374908447266,3530.376953125],"5-61-28":[-118.67826080322266,3530.376953125],"6-123-58":[-117.57605743408203,2686.34326171875],"6-123-59":[-114.22285461425781,3368.2919921875],"5-61-29":[-117.88853454589844,3368.2919921875],"4-30-14":[-118.67826080322266,3530.376953125],"6-123-60":[-105.64125061035156,-47.9375],"6-123-61":[-94.71062469482422,4324.9130859375],"5-61-30":[-111.81999969482422,4324.9130859375],"6-123-62":[1173.3499755859375,3260.288330078125],"6-123-63":[-29.53849983215332,3084.2314453125],"5-61-31":[-29.53849983215332,3358.989990234375],"4-30-15":[-115.68836212158203,4324.9130859375],"6-124-0":[10.164999961853027,26.781875610351562],"6-124-1":[6.141250133514404,19.0362491607666],"6-124-2":[3.0350000858306885,12.258437156677246],"6-124-3":[0.1446666717529297,5.743613243103027],"6-124-4":[0.8962500095367432,8.053632736206055],"6-124-5":[1.267005205154419,5.660703182220459],"6-124-6":[1.3919792175292969,7.35623025894165],"6-124-7":[3.5218749046325684,1617.8173828125],"6-124-8":[8.51284122467041,1409.685546875],"6-124-9":[10.131875038146973,2305.87646484375],"6-124-10":[0.4503124952316284,2164.877197265625],"6-124-11":[2.565000057220459,14.625781059265137],"6-124-12":[-3.234999895095825,14.31624984741211],"6-124-13":[-10.588465690612793,10.533437728881836],"6-124-14":[-10.3568754196167,8.758593559265137],"6-124-15":[-21.038124084472656,-0.00011111106869066134],"6-124-16":[-24.631132125854492,-2.7678542137145996],"6-124-17":[-31.192031860351562,-3.8537917137145996],"6-124-18":[-30.747499465942383,-6.470624923706055],"6-124-19":[-26.10431671142578,-2.494999885559082],"6-124-20":[-24.309375762939453,-7.512249946594238],"6-124-21":[-15.2284574508667,-4.762416839599609],"6-124-22":[-13.586250305175781,-0.8424999713897705],"6-124-23":[-4.544804573059082,9.699999809265137],"6-124-24":[2.359999895095825,21.53499984741211],"6-124-25":[7.354609489440918,32.29999923706055],"6-124-26":[12.555000305175781,38.181095123291016],"6-124-27":[15.945625305175781,48.52156066894531],"6-124-28":[21.55500030517578,62.194828033447266],"6-124-29":[18.505596160888672,57.20781326293945],"6-124-30":[24.34410285949707,61.689998626708984],"6-124-31":[27.973125457763672,68.95999908447266],"6-124-32":[29.89604949951172,114.25445556640625],"6-124-33":[33.15556716918945,84.08999633789062],"6-124-34":[36.931251525878906,96.34500122070312],"6-124-35":[42.038124084472656,117.26000213623047],"6-124-36":[44.94070053100586,447.2655334472656],"6-124-37":[62.0625,132.90695190429688],"6-124-38":[41.719268798828125,1137.867919921875],"6-124-39":[34.07183074951172,895.9603881835938],"6-124-40":[47.964073181152344,131.9654541015625],"6-124-41":[46.439998626708984,105.9106674194336],"6-124-42":[39.86750030517578,96.08906555175781],"6-124-43":[32.69200134277344,85.74500274658203],"6-124-44":[26.315000534057617,75.43136596679688],"6-124-45":[20.78499984741211,56.681251525878906],"6-124-46":[8.984882354736328,1441.4979248046875],"6-124-47":[-4.0661187171936035,3719.72314453125],"6-124-48":[-31.97266387939453,2290.193603515625],"6-124-49":[-23.41812515258789,-3.7899999618530273],"6-124-50":[-84.401123046875,535.720458984375],"6-124-51":[-73.93937683105469,-20.627735137939453],"6-124-52":[-86.8559799194336,-35.05266571044922],"6-124-53":[-95.39562225341797,-42.17499923706055],"6-124-54":[-98.03624725341797,-43.580501556396484],"6-124-55":[-110.56062316894531,-48.45000076293945],"6-124-56":[-118.67500305175781,-54.08283233642578],"6-124-57":[-117.83056640625,3544.391845703125],"6-124-58":[-118.4262466430664,1962.188720703125],"6-124-59":[-115.84441375732422,2252.053955078125],"6-124-60":[-105.90750122070312,-48.57500076293945],"6-124-61":[-95.3706283569336,3812.583251953125],"6-124-62":[594.225830078125,3705.937744140625],"6-124-63":[-29.538665771484375,3085.38427734375],"6-125-0":[10.359375,26.809999465942383],"6-125-1":[6.141250133514404,19.403749465942383],"5-62-0":[6.141250133514404,26.809999465942383],"6-125-2":[3.262500047683716,12.4399995803833],"6-125-3":[0.9076562523841858,6.387812614440918],"5-62-1":[0.1446666717529297,12.4399995803833],"6-125-4":[1.277500033378601,6.48166036605835],"6-125-5":[1.132755160331726,5.316171646118164],"5-62-2":[0.8962500095367432,8.053632736206055],"6-125-6":[1.294614553451538,6.460273265838623],"6-125-7":[3.1424999237060547,1111.2384033203125],"5-62-3":[1.294614553451538,1617.8173828125],"6-125-8":[7.111324787139893,1048.769287109375],"6-125-9":[6.897500038146973,1518.98291015625],"5-62-4":[6.897500038146973,2305.87646484375],"6-125-10":[-2.905937433242798,1665.4542236328125],"6-125-11":[4.440892098500626e-16,6.856269359588623],"5-62-5":[-2.905937433242798,2164.877197265625],"6-125-12":[-2.3302342891693115,8.767499923706055],"6-125-13":[-14.45060920715332,953.5545043945312],"5-62-6":[-14.45060920715332,953.5545043945312],"6-125-14":[-5.053242206573486,5.274062633514404],"6-125-15":[-17.970624923706055,-2.392343759536743],"5-62-7":[-21.038124084472656,8.758593559265137],"6-125-16":[-24.391328811645508,-7.682583332061768],"6-125-17":[-28.594688415527344,-10.110312461853027],"5-62-8":[-31.192031860351562,-2.7678542137145996],"6-125-18":[-28.594688415527344,-11.003499984741211],"6-125-19":[-25.619688034057617,-2.4119861125946045],"5-62-9":[-30.747499465942383,-2.4119861125946045],"6-125-20":[-22.740625381469727,-4.660150051116943],"6-125-21":[-15.8021879196167,-6.047222137451172],"5-62-10":[-24.309375762939453,-4.660150051116943],"6-125-22":[-14.017187118530273,-3.424375057220459],"6-125-23":[-6.767499923706055,4.633124828338623],"5-62-11":[-14.017187118530273,9.699999809265137],"6-125-24":[1.2134166955947876,15.793749809265137],"6-125-25":[6.110234260559082,24.938282012939453],"5-62-12":[1.2134166955947876,32.29999923706055],"6-125-26":[10.22274398803711,30.2540225982666],"6-125-27":[13.8725004196167,41.973751068115234],"5-62-13":[10.22274398803711,48.52156066894531],"6-125-28":[18.088924407958984,48.12140655517578],"6-125-29":[17.799293518066406,54.496944427490234],"5-62-14":[17.799293518066406,62.194828033447266],"6-125-30":[22.387983322143555,56.84427261352539],"6-125-31":[16.569965362548828,59.790000915527344],"5-62-15":[16.569965362548828,68.95999908447266],"6-125-32":[25.850000381469727,66.30999755859375],"6-125-33":[27.999065399169922,72.86687469482422],"5-62-16":[25.850000381469727,114.25445556640625],"6-125-34":[33.00258255004883,81.64630889892578],"6-125-35":[38.912498474121094,103.04000091552734],"5-62-17":[33.00258255004883,117.26000213623047],"6-125-36":[47.50676727294922,124.12249755859375],"6-125-37":[57.226531982421875,130.48500061035156],"5-62-18":[44.94070053100586,447.2655334472656],"6-125-38":[61.15570068359375,131.45498657226562],"6-125-39":[52.546165466308594,288.82794189453125],"5-62-19":[34.07183074951172,1137.867919921875],"6-125-40":[48.8828125,107.86812591552734],"6-125-41":[48.010501861572266,104.6889419555664],"5-62-20":[46.439998626708984,131.9654541015625],"6-125-42":[42.872501373291016,97.21937561035156],"6-125-43":[37.60750198364258,89.44999694824219],"5-62-21":[32.69200134277344,97.21937561035156],"6-125-44":[6.978790760040283,816.339111328125],"6-125-45":[-0.9611777663230896,2517.070068359375],"5-62-22":[-0.9611777663230896,2517.070068359375],"6-125-46":[-17.872848510742188,2863.394775390625],"6-125-47":[-35.6466064453125,2605.148193359375],"5-62-23":[-35.6466064453125,3719.72314453125],"6-125-48":[-10.045000076293945,11.020000457763672],"6-125-49":[-27.670000076293945,-4.710050106048584],"5-62-24":[-31.97266387939453,2290.193603515625],"6-125-50":[-48.9765625,-11.918749809265137],"6-125-51":[-75.77999877929688,-21.912500381469727],"5-62-25":[-84.401123046875,535.720458984375],"6-125-52":[-88.20531463623047,-37.165000915527344],"6-125-53":[-96.8949966430664,-44.361873626708984],"5-62-26":[-96.8949966430664,-35.05266571044922],"6-125-54":[-99.70281219482422,-46.2243766784668],"6-125-55":[-113.94999694824219,-50.03437423706055],"5-62-27":[-113.94999694824219,-43.580501556396484],"6-125-56":[-118.22125244140625,-55.584999084472656],"6-125-57":[-119.59075927734375,-57.02846908569336],"5-62-28":[-119.59075927734375,3544.391845703125],"6-125-58":[-119.1226577758789,-57.36281204223633],"6-125-59":[-115.12242126464844,-52.66033172607422],"5-62-29":[-119.1226577758789,2252.053955078125],"6-125-60":[-106.03312683105469,-48.631248474121094],"6-125-61":[-95.5356216430664,2586.720947265625],"5-62-30":[-106.03312683105469,3812.583251953125],"6-125-62":[617.4712524414062,3991.968017578125],"6-125-63":[-29.538833618164062,3087.54150390625],"5-62-31":[-29.538833618164062,3991.968017578125],"6-126-0":[10.487500190734863,26.829999923706055],"6-126-1":[6.398749828338623,19.786386489868164],"6-126-2":[3.5999999046325684,12.733750343322754],"6-126-3":[1.3492499589920044,7.318398475646973],"6-126-4":[1.2323437929153442,5.593124866485596],"6-126-5":[1.1515833139419556,4.507187366485596],"6-126-6":[1.2412500381469727,5.94656229019165],"6-126-7":[2.530625104904175,1644.017578125],"6-126-8":[4.572999954223633,1334.4520263671875],"6-126-9":[2.5342917442321777,1348.0728759765625],"6-126-10":[-4.545000076293945,360.6773376464844],"6-126-11":[-0.2119726538658142,3.7412500381469727],"6-126-12":[-4.152902603149414,11.03085708618164],"6-126-13":[-20.6646785736084,663.4946899414062],"6-126-14":[-17.170000076293945,1.891391634941101],"6-126-15":[-17.020000457763672,-2.1318750381469727],"6-126-16":[-23.497655868530273,-6.985000133514404],"6-126-17":[-25.319374084472656,-10.803750038146973],"6-126-18":[-24.766874313354492,-10.532500267028809],"6-126-19":[-22.163536071777344,-7.927328109741211],"6-126-20":[-19.019725799560547,-6.360937595367432],"6-126-21":[-15.661913871765137,-4.680013656616211],"6-126-22":[-13.703749656677246,-4.144999980926514],"6-126-23":[-8.07095718383789,4.179375171661377],"6-126-24":[0.4300000071525574,12.933730125427246],"6-126-25":[5.526875019073486,20.0049991607666],"6-126-26":[9,27.009296417236328],"6-126-27":[12.0912504196167,34.88999938964844],"6-126-28":[14.827500343322754,40.96500015258789],"6-126-29":[17.43343734741211,44.775001525878906],"6-126-30":[17.982492446899414,49.647499084472656],"6-126-31":[20.759374618530273,52.07406234741211],"6-126-32":[19.195858001708984,55.994998931884766],"6-126-33":[25.26053237915039,65.99500274658203],"6-126-34":[28.985332489013672,76.54812622070312],"6-126-35":[34.87456512451172,95.01000213623047],"6-126-36":[41.34239959716797,297.715087890625],"6-126-37":[52.3394660949707,122.30999755859375],"6-126-38":[55.22907257080078,587.2330932617188],"6-126-39":[52.13249969482422,124.1449966430664],"6-126-40":[49.801876068115234,107.98562622070312],"6-126-41":[47.349998474121094,102.98999786376953],"6-126-42":[43.401248931884766,96.69499969482422],"6-126-43":[39.32500076293945,86.99128723144531],"6-126-44":[-5.895473480224609,921.2303466796875],"6-126-45":[-23.771774291992188,2784.970947265625],"6-126-46":[-12.289172172546387,1743.2305908203125],"6-126-47":[4.880000591278076,29.201309204101562],"6-126-48":[-9.953827857971191,11.399999618530273],"6-126-49":[-34.9240608215332,-4.575266361236572],"6-126-50":[-54.63589859008789,-14.058500289916992],"6-126-51":[-75.70999908447266,-26.389999389648438],"6-126-52":[-89.10504150390625,-37.37633514404297],"6-126-53":[-98.3578109741211,-44.98500061035156],"6-126-54":[-101.05359649658203,-48.44874954223633],"6-126-55":[-115.5687484741211,-50.65250015258789],"6-126-56":[-120.86365509033203,-56.97716522216797],"6-126-57":[-122.59597778320312,-57.42866516113281],"6-126-58":[-120.56812286376953,-57.41999816894531],"6-126-59":[-115.90642547607422,-52.64083480834961],"6-126-60":[-106.88312530517578,-48.235626220703125],"6-126-61":[-95.55773162841797,3164.894287109375],"6-126-62":[1096.8623046875,4009.411865234375],"6-126-63":[-29.538999557495117,3089.76904296875],"6-127-0":[10.58187484741211,26.86294937133789],"6-127-1":[6.398749828338623,20.24591827392578],"5-63-0":[6.398749828338623,26.86294937133789],"6-127-2":[3.828125,13.391562461853027],"6-127-3":[2.4124999046325684,8.620098114013672],"5-63-1":[1.3492499589920044,13.391562461853027],"4-31-0":[0.1446666717529297,26.86294937133789],"6-127-4":[1.1341874599456787,6.789374828338623],"6-127-5":[1.1391197443008423,4.388300895690918],"5-63-2":[1.1341874599456787,6.789374828338623],"6-127-6":[1.2412500381469727,612.6314697265625],"6-127-7":[2.317514181137085,1712.248291015625],"5-63-3":[1.2412500381469727,1712.248291015625],"4-31-1":[0.8962500095367432,1712.248291015625],"3-15-0":[0.1446666717529297,1712.248291015625],"6-127-8":[4.509941101074219,1465.5589599609375],"6-127-9":[3.0112500190734863,918.2298583984375],"5-63-4":[2.5342917442321777,1465.5589599609375],"6-127-10":[-3.075800895690918,11.460000038146973],"6-127-11":[-0.11046875268220901,3.4357030391693115],"5-63-5":[-4.545000076293945,360.6773376464844],"4-31-2":[-4.545000076293945,2305.87646484375],"6-127-12":[-1.98046875,11.603384017944336],"6-127-13":[-24.790000915527344,1210.9061279296875],"5-63-6":[-24.790000915527344,1210.9061279296875],"6-127-14":[-25.567968368530273,1.3818750381469727],"6-127-15":[-13.9350004196167,-1.3850226402282715],"5-63-7":[-25.567968368530273,1.891391634941101],"4-31-3":[-25.567968368530273,1210.9061279296875],"3-15-1":[-25.567968368530273,4774.22265625],"2-7-0":[-25.567968368530273,4774.22265625],"6-127-16":[-20.990449905395508,-6.430362701416016],"6-127-17":[-25.897811889648438,-10.687030792236328],"5-63-8":[-25.897811889648438,-6.430362701416016],"6-127-18":[-26.047500610351562,-10.543749809265137],"6-127-19":[-22.583690643310547,-7.929999828338623],"5-63-9":[-26.047500610351562,-7.927328109741211],"4-31-4":[-31.192031860351562,-2.4119861125946045],"6-127-20":[-18.9976749420166,-7.929999828338623],"6-127-21":[-16.815038681030273,-4.702624797821045],"5-63-10":[-19.019725799560547,-4.680013656616211],"6-127-22":[-10.689687728881836,-3.042776346206665],"6-127-23":[-8.259042739868164,1.2518750429153442],"5-63-11":[-13.703749656677246,4.179375171661377],"4-31-5":[-24.309375762939453,9.699999809265137],"3-15-2":[-31.192031860351562,39.88249969482422],"6-127-24":[0.4300000071525574,9.712167739868164],"6-127-25":[4.50726842880249,17.608749389648438],"5-63-12":[0.4300000071525574,20.0049991607666],"6-127-26":[6.904363632202148,22.77814483642578],"6-127-27":[8.892187118530273,29.203750610351562],"5-63-13":[6.904363632202148,34.88999938964844],"4-31-6":[0.4300000071525574,48.52156066894531],"6-127-28":[12.010000228881836,34.992069244384766],"6-127-29":[14.229776382446289,37.72249984741211],"5-63-14":[12.010000228881836,44.775001525878906],"6-127-30":[15.674653053283691,40.081329345703125],"6-127-31":[19.02943229675293,46.54999923706055],"5-63-15":[15.674653053283691,52.07406234741211],"4-31-7":[12.010000228881836,68.95999908447266],"3-15-3":[0.4300000071525574,831.8881225585938],"2-7-1":[-84.12662506103516,3800.251953125],"1-3-0":[-268.69342041015625,7512.83154296875],"6-127-32":[20.921300888061523,50.52000045776367],"6-127-33":[22.895599365234375,57.970001220703125],"5-63-16":[19.195858001708984,65.99500274658203],"6-127-34":[25.27159881591797,69.74749755859375],"6-127-35":[27.531539916992188,86.046875],"5-63-17":[25.27159881591797,95.01000213623047],"4-31-8":[19.195858001708984,117.26000213623047],"6-127-36":[39.54096603393555,104.6762466430664],"6-127-37":[22.065427780151367,1069.2264404296875],"5-63-18":[22.065427780151367,1069.2264404296875],"6-127-38":[20.152463912963867,1371.142578125],"6-127-39":[49.740779876708984,108.6534194946289],"5-63-19":[20.152463912963867,1371.142578125],"4-31-9":[20.152463912963867,1371.142578125],"3-15-4":[-166.25953674316406,2387.584228515625],"6-127-40":[48.9318733215332,103.14312744140625],"6-127-41":[47.07058334350586,98.55187225341797],"5-63-20":[47.07058334350586,107.98562622070312],"6-127-42":[43.96562576293945,94.47718811035156],"6-127-43":[38.98933792114258,91.70519256591797],"5-63-21":[38.98933792114258,96.69499969482422],"4-31-10":[32.69200134277344,131.9654541015625],"6-127-44":[20.80000114440918,83.15750122070312],"6-127-45":[-12.666748046875,1759.875],"5-63-22":[-23.771774291992188,2784.970947265625],"6-127-46":[11.751603126525879,42.599998474121094],"6-127-47":[3.2400007247924805,30.548555374145508],"5-63-23":[-12.289172172546387,1743.2305908203125],"4-31-11":[-35.6466064453125,3719.72314453125],"3-15-5":[-345.6128845214844,3719.72314453125],"2-7-2":[-345.6128845214844,5227.3828125],"6-127-48":[-9.444129943847656,37.413089752197266],"6-127-49":[-38.810935974121094,351.38970947265625],"5-63-24":[-38.810935974121094,351.38970947265625],"6-127-50":[-56.23386764526367,-17.747499465942383],"6-127-51":[-75.78312683105469,-28.673749923706055],"5-63-25":[-75.78312683105469,-14.058500289916992],"4-31-12":[-84.401123046875,2290.193603515625],"6-127-52":[-88.84896850585938,-37.45000076293945],"6-127-53":[-98.41281127929688,-44.71004867553711],"5-63-26":[-98.41281127929688,-37.37633514404297],"6-127-54":[-101.54408264160156,-48.810916900634766],"6-127-55":[-117.06999969482422,-50.94906234741211],"5-63-27":[-117.06999969482422,-48.44874954223633],"4-31-13":[-117.06999969482422,-35.05266571044922],"3-15-6":[-117.06999969482422,2290.193603515625],"6-127-56":[-123.44367218017578,-57.63003158569336],"6-127-57":[-123.92687225341797,-60.36750030517578],"5-63-28":[-123.92687225341797,-56.97716522216797],"6-127-58":[-123.29304504394531,-58.62687683105469],"6-127-59":[-117.48185729980469,-53.65999984741211],"5-63-29":[-123.29304504394531,-52.64083480834961],"4-31-14":[-123.92687225341797,3544.391845703125],"6-127-60":[-109.52312469482422,-48.22328186035156],"6-127-61":[-95.57916259765625,1201.6624755859375],"5-63-30":[-109.52312469482422,3164.894287109375],"6-127-62":[-43.07516098022461,3227.464599609375],"6-127-63":[-31.670408248901367,3092.97607421875],"5-63-31":[-43.07516098022461,4009.411865234375],"4-31-15":[-109.52312469482422,4009.411865234375],"3-15-7":[-123.92687225341797,4324.9130859375],"2-7-3":[-123.92687225341797,4324.9130859375],"1-3-1":[-345.6128845214844,5227.3828125],"0-1-0":[-398.5462646484375,8777.140625]} \ No newline at end of file +{"6-0-0":[-60.9,1359.39],"6-0-1":[-734.16,2871.77],"6-0-2":[-860.34,14.2],"6-0-3":[-820.07,8.89],"6-0-4":[-822.21,6.8],"6-0-5":[-1287.68,4.22],"6-0-6":[-3806.44,996.64],"6-0-7":[-4083.09,1473.8],"6-0-8":[-4254.47,1405.42],"6-0-9":[-4909.7,9.42],"6-0-10":[-5356.65,10.41],"6-0-11":[-5779.14,9.42],"6-0-12":[-5680.2,10.72],"6-0-13":[-5633.18,1797.13],"6-0-14":[-5473.11,3.24],"6-0-15":[-5073.82,0.06],"6-0-16":[-3112.78,-5.62],"6-0-17":[-4278.61,-10.79],"6-0-18":[-5776.01,-11.56],"6-0-19":[-8664.64,-9.29],"6-0-20":[-10108.73,43.72],"6-0-21":[-6315.74,480.3],"6-0-22":[-3138.45,-0.18],"6-0-23":[-3177.81,259.94],"6-0-24":[-4361.69,195.8],"6-0-25":[-4176.86,1120.83],"6-0-26":[-3604,1188.85],"6-0-27":[-4874.82,377.59],"6-0-28":[-5555.91,212.64],"6-0-29":[-6808.91,32.43],"6-0-30":[-6537.63,36.44],"6-0-31":[-5876.58,41.7],"6-0-32":[-6002.84,43.91],"6-0-33":[-6383.26,48.69],"6-0-34":[-6458.42,56.5],"6-0-35":[-6608.86,79],"6-0-36":[-6499.38,95.12],"6-0-37":[-6382.42,1242.86],"6-0-38":[-5476.07,1197.83],"6-0-39":[-6577.17,149.88],"6-0-40":[-5871.43,105.09],"6-0-41":[-5691.18,101.97],"6-0-42":[-6084.14,550.11],"6-0-43":[-6456.25,92.57],"6-0-44":[-5403.21,77.99],"6-0-45":[-7722.74,46.63],"6-0-46":[-8051.96,43.07],"6-0-47":[-7228.07,29.35],"6-0-48":[-6696.32,6.49],"6-0-49":[-7347.5,-4.52],"6-0-50":[-5663.37,1731.13],"6-0-51":[-4025.96,-29.46],"6-0-52":[-4181.98,-37.9],"6-0-53":[-3554.43,-44.45],"6-0-54":[-175.4,-32.99],"6-0-55":[-119.7,1412.43],"6-0-56":[-126.97,1474.79],"6-0-57":[-126.3,982.63],"6-0-58":[-1295.62,-59.46],"6-0-59":[-1696.92,-54.84],"6-0-60":[-2540.06,-48.64],"6-0-61":[-2969.81,258.8],"6-0-62":[-3982.53,2997.38],"6-0-63":[-4339.64,3098.17],"6-1-0":[-62.92,1400.78],"6-1-1":[-811.24,3723.38],"5-0-0":[-811.24,3723.38],"6-1-2":[-822.56,15.04],"6-1-3":[-767.63,8.36],"5-0-1":[-860.34,15.04],"6-1-4":[-730.48,6.83],"6-1-5":[-3128.49,4.83],"5-0-2":[-3128.49,6.83],"6-1-6":[-4134.79,343.9],"6-1-7":[-4441.09,308.3],"5-0-3":[-4441.09,1473.8],"6-1-8":[-4533.36,906.96],"6-1-9":[-4556.62,286.65],"5-0-4":[-4909.7,1405.42],"6-1-10":[-5768.3,14],"6-1-11":[-5899.35,14.18],"5-0-5":[-5899.35,14.18],"6-1-12":[-5651.2,10.46],"6-1-13":[-6362.61,1734.24],"5-0-6":[-6362.61,1797.13],"6-1-14":[-5667.12,6.52],"6-1-15":[-5396,1.31],"5-0-7":[-5667.12,6.52],"6-1-16":[-3687.33,294.62],"6-1-17":[-5765.96,-10],"5-0-8":[-5765.96,294.62],"6-1-18":[-5729.6,-12.15],"6-1-19":[-6079.81,-9.22],"5-0-9":[-8664.64,-9.22],"6-1-20":[-10076.36,-7.87],"6-1-21":[-9964.92,0.26],"5-0-10":[-10108.73,480.3],"6-1-22":[-9820.47,9.27],"6-1-23":[-10731.15,6.54],"5-0-11":[-10731.15,259.94],"6-1-24":[-8128.35,538.48],"6-1-25":[-3473,974.2],"5-0-12":[-8128.35,1120.83],"6-1-26":[-5852,229.74],"6-1-27":[-5790.22,521.25],"5-0-13":[-5852,1188.85],"6-1-28":[-5704.51,327.62],"6-1-29":[-6687.63,31.23],"5-0-14":[-6808.91,327.62],"6-1-30":[-6552.55,34.4],"6-1-31":[-6370.48,38.74],"5-0-15":[-6552.55,41.7],"6-1-32":[-5715.64,39.97],"6-1-33":[-5857.02,44.11],"5-0-16":[-6383.26,48.69],"6-1-34":[-6145.81,49.53],"6-1-35":[-6715.64,65.95],"5-0-17":[-6715.64,79],"6-1-36":[-5845.01,188.59],"6-1-37":[-5976.36,262.29],"5-0-18":[-6499.38,1242.86],"6-1-38":[-5615.55,1074.21],"6-1-39":[-5961.75,561.48],"5-0-19":[-6577.17,1197.83],"6-1-40":[-5749.3,105.17],"6-1-41":[-5646.26,99.7],"5-0-20":[-5871.43,105.17],"6-1-42":[-6209.24,82.54],"6-1-43":[-6165.22,61.85],"5-0-21":[-6456.25,550.11],"6-1-44":[-6248.43,55.81],"6-1-45":[-7562.16,46.46],"5-0-22":[-7722.74,77.99],"6-1-46":[-6645.44,36.12],"6-1-47":[-7451.64,306.25],"5-0-23":[-8051.96,306.25],"6-1-48":[-6155.38,5.19],"6-1-49":[-7337.43,-11.13],"5-0-24":[-7347.5,6.49],"6-1-50":[-7328.11,1663.23],"6-1-51":[-4298.74,-29.65],"5-0-25":[-7328.11,1731.13],"6-1-52":[-3730.44,-37.51],"6-1-53":[-191.66,-43.07],"5-0-26":[-4181.98,-37.51],"6-1-54":[-117.87,309.64],"6-1-55":[-120.92,886.84],"5-0-27":[-175.4,1412.43],"6-1-56":[-127.84,338.3],"6-1-57":[-130.41,309.89],"5-0-28":[-130.41,1474.79],"6-1-58":[-2110.87,-59.59],"6-1-59":[-2239.39,-55.12],"5-0-29":[-2239.39,-54.84],"6-1-60":[-3264.35,-49.4],"6-1-61":[-3093.55,-11.15],"5-0-30":[-3264.35,258.8],"6-1-62":[-4063.46,3443.81],"6-1-63":[-4241.6,3102.34],"5-0-31":[-4339.64,3443.81],"6-2-0":[-65.96,1535.56],"6-2-1":[-726.95,3893.49],"6-2-2":[-822.56,15.73],"6-2-3":[-756.52,7.2],"6-2-4":[-976.58,5.79],"6-2-5":[-3873.63,5.62],"6-2-6":[-4273.11,2.52],"6-2-7":[-4730.1,3.57],"6-2-8":[-4275.1,1107.58],"6-2-9":[-4203.77,935.49],"6-2-10":[-5335.51,447.82],"6-2-11":[-5754.56,22.33],"6-2-12":[-5580.99,15.33],"6-2-13":[-6324.53,1546.34],"6-2-14":[-5877.47,10.11],"6-2-15":[-5605.22,3.51],"6-2-16":[-5451.88,-3.75],"6-2-17":[-5191.5,-8.48],"6-2-18":[-5888.86,-11.53],"6-2-19":[-6170.07,-11.45],"6-2-20":[-6231.35,-7.64],"6-2-21":[-6591.66,-2.94],"6-2-22":[-6564.98,22.84],"6-2-23":[-9845.18,13.16],"6-2-24":[-9880.17,66.19],"6-2-25":[-9681.78,234.26],"6-2-26":[-9135.58,489.1],"6-2-27":[-5127.54,1851.33],"6-2-28":[-5847.04,276.4],"6-2-29":[-6984.98,26.06],"6-2-30":[-6587.38,259.45],"6-2-31":[-6810.43,34.73],"6-2-32":[-5944.71,36.73],"6-2-33":[-6196.39,38.35],"6-2-34":[-6274.62,45.33],"6-2-35":[-6655.12,56.51],"6-2-36":[-6233.79,1897.33],"6-2-37":[-6086.2,602.11],"6-2-38":[-5770.59,258.3],"6-2-39":[-5644.12,87.93],"6-2-40":[-5280.45,68.5],"6-2-41":[-5640.3,90.18],"6-2-42":[-5794.61,69.11],"6-2-43":[-6212.25,60.23],"6-2-44":[-6473.07,53.69],"6-2-45":[-6649.88,38.48],"6-2-46":[-6137.71,25.76],"6-2-47":[-7286.95,16.06],"6-2-48":[-6428.91,-1.78],"6-2-49":[-7302.54,-12.47],"6-2-50":[-7770.99,1478.35],"6-2-51":[-3880.57,-28.99],"6-2-52":[-3448.8,-36.15],"6-2-53":[-178.92,439.82],"6-2-54":[-123.47,902.48],"6-2-55":[-118.16,1085.57],"6-2-56":[-127.84,-21.84],"6-2-57":[-132.46,-19.72],"6-2-58":[-2110.87,-59.33],"6-2-59":[-2528.11,-55.1],"6-2-60":[-3347.91,-49.58],"6-2-61":[-3384.08,-43.95],"6-2-62":[-3950.67,3904.3],"6-2-63":[-4226.49,3104.92],"6-3-0":[-67.96,1730.59],"6-3-1":[-816.29,4033.51],"5-1-0":[-816.29,4033.51],"6-3-2":[-811.11,16.58],"6-3-3":[-756.52,6.48],"5-1-1":[-822.56,16.58],"4-0-0":[-860.34,4033.51],"6-3-4":[-1287.47,6.76],"6-3-5":[-4053.9,6.63],"5-1-2":[-4053.9,6.76],"6-3-6":[-4347.97,3.03],"6-3-7":[-4616.06,2.79],"5-1-3":[-4730.1,3.57],"4-0-1":[-4730.1,1473.8],"6-3-8":[-4631.95,912.84],"6-3-9":[-3872.37,618.8],"5-1-4":[-4631.95,1107.58],"6-3-10":[-5400.71,21.82],"6-3-11":[-5589.06,311.37],"5-1-5":[-5754.56,447.82],"4-0-2":[-5899.35,1405.42],"6-3-12":[-5676.31,24.46],"6-3-13":[-5899.59,1745.85],"5-1-6":[-6324.53,1745.85],"6-3-14":[-5693.6,13.6],"6-3-15":[-6424.28,5.28],"5-1-7":[-6424.28,13.6],"4-0-3":[-6424.28,1797.13],"6-3-16":[-5503.34,-3.16],"6-3-17":[-5293.32,-8.29],"5-1-8":[-5503.34,-3.16],"6-3-18":[-5706.05,-10.93],"6-3-19":[-5968.6,-12.17],"5-1-9":[-6170.07,-10.93],"4-0-4":[-8664.64,294.62],"6-3-20":[-6353.54,-7.64],"6-3-21":[-6004.34,0.47],"5-1-10":[-6591.66,0.47],"6-3-22":[-6626.4,23.06],"6-3-23":[-7232.28,22.37],"5-1-11":[-9845.18,23.06],"4-0-5":[-10731.15,480.3],"6-3-24":[-6517.94,19.36],"6-3-25":[-5787.28,113.77],"5-1-12":[-9880.17,234.26],"6-3-26":[-5603.42,996.87],"6-3-27":[-5500.68,711.38],"5-1-13":[-9135.58,1851.33],"4-0-6":[-9880.17,1851.33],"6-3-28":[-6128.57,217.04],"6-3-29":[-5976.44,24.86],"5-1-14":[-6984.98,276.4],"6-3-30":[-6431.75,177.46],"6-3-31":[-7363.73,30.64],"5-1-15":[-7363.73,259.45],"4-0-7":[-7363.73,327.62],"6-3-32":[-5957,33.87],"6-3-33":[-6180.13,35.79],"5-1-16":[-6196.39,38.35],"6-3-34":[-6378.4,41.34],"6-3-35":[-5963.3,51.07],"5-1-17":[-6655.12,56.51],"4-0-8":[-6715.64,79],"6-3-36":[-6145.95,771.39],"6-3-37":[-6134.23,997.06],"5-1-18":[-6233.79,1897.33],"6-3-38":[-5498.8,125.79],"6-3-39":[-5122.04,58.96],"5-1-19":[-5770.59,258.3],"4-0-9":[-6577.17,1897.33],"6-3-40":[-5350.19,59.21],"6-3-41":[-5359.87,68.85],"5-1-20":[-5640.3,90.18],"6-3-42":[-5855.5,55.57],"6-3-43":[-6391.29,45.14],"5-1-21":[-6391.29,69.11],"4-0-10":[-6456.25,550.11],"6-3-44":[-6435.56,42.37],"6-3-45":[-6707.23,30.69],"5-1-22":[-6707.23,53.69],"6-3-46":[-6686.73,18.1],"6-3-47":[-7092.52,6.67],"5-1-23":[-7286.95,25.76],"4-0-11":[-8051.96,306.25],"6-3-48":[-6953.08,-4.53],"6-3-49":[-5732.35,-13.01],"5-1-24":[-7302.54,-1.78],"6-3-50":[-7284.14,1619.84],"6-3-51":[-3483.9,-27.95],"5-1-25":[-7770.99,1619.84],"4-0-12":[-7770.99,1731.13],"6-3-52":[-2236.21,269.38],"6-3-53":[-158.69,-15.42],"5-1-26":[-3448.8,439.82],"6-3-54":[-99.02,616.8],"6-3-55":[-114.54,911.84],"5-1-27":[-123.47,1085.57],"4-0-13":[-4181.98,1412.43],"6-3-56":[-126.73,-22.99],"6-3-57":[-132.79,-17.75],"5-1-28":[-132.79,-17.75],"6-3-58":[-1869.44,-59.46],"6-3-59":[-2920.48,-55.06],"5-1-29":[-2920.48,-55.06],"4-0-14":[-2920.48,1474.79],"6-3-60":[-3346.96,-50.05],"6-3-61":[-3572.53,-43.58],"5-1-30":[-3572.53,-43.58],"6-3-62":[-3949.75,3970.41],"6-3-63":[-4299.54,3106.07],"5-1-31":[-4299.54,3970.41],"4-0-15":[-4339.64,3970.41],"6-4-0":[-67.96,1783.47],"6-4-1":[-1161.5,3926.7],"6-4-2":[-828.82,17.11],"6-4-3":[-704.94,7.09],"6-4-4":[-1407.45,8.01],"6-4-5":[-4181.68,6.22],"6-4-6":[-4383.79,2.41],"6-4-7":[-4623.83,611.05],"6-4-8":[-4397.23,1101.35],"6-4-9":[-3605.91,428.48],"6-4-10":[-5268.98,653.36],"6-4-11":[-5379.79,27.57],"6-4-12":[-5644.48,1825.97],"6-4-13":[-5659.92,2084.32],"6-4-14":[-5581.4,18.16],"6-4-15":[-6069.3,6.15],"6-4-16":[-5732.91,-2.51],"6-4-17":[-5561.06,-7.81],"6-4-18":[-5467.07,-10.93],"6-4-19":[-6445.04,-11.62],"6-4-20":[-6164.47,-7.94],"6-4-21":[-5852.56,0.97],"6-4-22":[-6692.69,17.55],"6-4-23":[-6202.21,28.15],"6-4-24":[-6698.19,19.59],"6-4-25":[-9080.84,56.94],"6-4-26":[-6082.57,22.24],"6-4-27":[-5919.39,25.71],"6-4-28":[-5822.56,27.19],"6-4-29":[-6220.26,27.84],"6-4-30":[-6622.88,28.27],"6-4-31":[-8273.64,29.58],"6-4-32":[-6224.53,32.89],"6-4-33":[-6221.95,34.86],"6-4-34":[-5718.7,35.6],"6-4-35":[-5595.88,39.9],"6-4-36":[-5808.46,43.72],"6-4-37":[-5899.51,45.71],"6-4-38":[-6912.49,48.56],"6-4-39":[-6145.04,45.88],"6-4-40":[-5619.26,863.24],"6-4-41":[-5186.7,42.29],"6-4-42":[-6049.87,42.26],"6-4-43":[-6355.98,37.32],"6-4-44":[-6622.78,32.28],"6-4-45":[-6960.65,25.33],"6-4-46":[-6793.71,17.65],"6-4-47":[-6566.43,1.08],"6-4-48":[-6377.69,-7.42],"6-4-49":[-5865.62,-13.57],"6-4-50":[-7273.09,1965.32],"6-4-51":[-5208.92,1802.98],"6-4-52":[-514.98,6.05],"6-4-53":[-481.77,671.37],"6-4-54":[-97.35,455.48],"6-4-55":[-113.49,1067.35],"6-4-56":[-126.75,528.03],"6-4-57":[-131.59,-27.82],"6-4-58":[-546.1,-58.9],"6-4-59":[-2622.06,-55.06],"6-4-60":[-3507.79,-49.97],"6-4-61":[-3821.97,-43.61],"6-4-62":[-3936.9,3807.76],"6-4-63":[-4312.53,3106.13],"6-5-0":[-65.96,1809.17],"6-5-1":[-1123.74,3611.78],"5-2-0":[-1161.5,3926.7],"6-5-2":[-783.29,17.66],"6-5-3":[-769.58,7.26],"5-2-1":[-828.82,17.66],"6-5-4":[-2373.31,8],"6-5-5":[-4237.37,1.64],"5-2-2":[-4237.37,8.01],"6-5-6":[-4523.95,0.57],"6-5-7":[-4449.41,977.81],"5-2-3":[-4623.83,977.81],"6-5-8":[-4776.71,1285.63],"6-5-9":[-3809.51,689.98],"5-2-4":[-4776.71,1285.63],"6-5-10":[-5160.02,574.41],"6-5-11":[-5484.51,29.76],"5-2-5":[-5484.51,653.36],"6-5-12":[-5463.02,2863.96],"6-5-13":[-5510.9,25.08],"5-2-6":[-5659.92,2863.96],"6-5-14":[-5633.47,19.59],"6-5-15":[-6371.35,5.94],"5-2-7":[-6371.35,19.59],"6-5-16":[-5828.33,-2.51],"6-5-17":[-6421.22,-7.99],"5-2-8":[-6421.22,-2.51],"6-5-18":[-5982.99,-11.55],"6-5-19":[-6565.05,-11.81],"5-2-9":[-6565.05,-10.93],"6-5-20":[-6784.16,-7.94],"6-5-21":[-6028.23,-0.19],"5-2-10":[-6784.16,0.97],"6-5-22":[-6399.53,8.23],"6-5-23":[-6135.89,68.18],"5-2-11":[-6692.69,68.18],"6-5-24":[-6055.38,18.67],"6-5-25":[-5836.09,998.66],"5-2-12":[-9080.84,998.66],"6-5-26":[-6060.91,20.47],"6-5-27":[-5996.07,196.74],"5-2-13":[-6082.57,196.74],"6-5-28":[-5155.46,84.53],"6-5-29":[-6004.46,30.66],"5-2-14":[-6220.26,84.53],"6-5-30":[-5896.13,32.3],"6-5-31":[-6776.17,32.65],"5-2-15":[-8273.64,32.65],"6-5-32":[-5810.52,32.3],"6-5-33":[-5562.23,34.31],"5-2-16":[-6224.53,34.86],"6-5-34":[-5388.87,33.96],"6-5-35":[-5395.61,37.54],"5-2-17":[-5718.7,39.9],"6-5-36":[-5752.23,37.44],"6-5-37":[-5924.58,31.1],"5-2-18":[-5924.58,45.71],"6-5-38":[-6440.59,38.62],"6-5-39":[-5463.5,31.7],"5-2-19":[-6912.49,48.56],"6-5-40":[-5484.19,50.2],"6-5-41":[-5747.8,29.27],"5-2-20":[-5747.8,863.24],"6-5-42":[-5919.79,28.59],"6-5-43":[-6218.64,25.16],"5-2-21":[-6355.98,42.26],"6-5-44":[-7345.46,23.39],"6-5-45":[-6835.24,19.09],"5-2-22":[-7345.46,32.28],"6-5-46":[-6802.21,10.74],"6-5-47":[-5979.18,-0.35],"5-2-23":[-6802.21,17.65],"6-5-48":[-5777.25,-8.28],"6-5-49":[-5982.59,-13.41],"5-2-24":[-6377.69,-7.42],"6-5-50":[-7131.76,-19.83],"6-5-51":[-4248.36,2750.95],"5-2-25":[-7273.09,2750.95],"6-5-52":[-82.49,0.95],"6-5-53":[-85.9,583.42],"5-2-26":[-514.98,671.37],"6-5-54":[-96.28,649.97],"6-5-55":[-112.03,1302.63],"5-2-27":[-113.49,1302.63],"6-5-56":[-123.43,899.72],"6-5-57":[-130.93,-28.8],"5-2-28":[-131.59,899.72],"6-5-58":[-2065.53,-59.02],"6-5-59":[-2302.29,-54.72],"5-2-29":[-2622.06,-54.72],"6-5-60":[-3827.92,146.66],"6-5-61":[-3883.39,-43.74],"5-2-30":[-3883.39,146.66],"6-5-62":[-4110.64,3579.75],"6-5-63":[-4229.45,3100.28],"5-2-31":[-4312.53,3807.76],"6-6-0":[-94.11,1778.04],"6-6-1":[-1591.32,2998.88],"6-6-2":[-746.81,17.98],"6-6-3":[-770.17,6.62],"6-6-4":[-3154.74,6.62],"6-6-5":[-4196.81,0.42],"6-6-6":[-4609.89,37.03],"6-6-7":[-4642.27,1376.89],"6-6-8":[-4626.96,982.62],"6-6-9":[-4855.42,985.82],"6-6-10":[-5061.5,1234.98],"6-6-11":[-4882.7,705.14],"6-6-12":[-5664.91,2536.32],"6-6-13":[-5500.81,22.83],"6-6-14":[-5641.77,19.52],"6-6-15":[-6089.63,5.64],"6-6-16":[-6504.35,-3.61],"6-6-17":[-6018.21,-9.15],"6-6-18":[-5722.93,-12.33],"6-6-19":[-6011.9,-12.54],"6-6-20":[-6422.91,-8.27],"6-6-21":[-6422.91,-1.95],"6-6-22":[-6254.61,7.14],"6-6-23":[-5852.12,190.01],"6-6-24":[-5518.96,138.47],"6-6-25":[-5674.11,119.03],"6-6-26":[-6452.43,16.51],"6-6-27":[-5818.55,191.73],"6-6-28":[-5208.22,135.96],"6-6-29":[-6149.2,51.55],"6-6-30":[-6208.7,50.16],"6-6-31":[-5562.63,33.27],"6-6-32":[-5937.47,31.91],"6-6-33":[-5302.58,272.18],"6-6-34":[-5325.41,52.97],"6-6-35":[-5599.08,41.94],"6-6-36":[-6146.87,29.88],"6-6-37":[-6482.14,25.29],"6-6-38":[-6038.67,32.55],"6-6-39":[-5338.91,25.04],"6-6-40":[-5281.24,46.05],"6-6-41":[-5779.94,21.25],"6-6-42":[-6126.98,21.21],"6-6-43":[-6173.19,20.07],"6-6-44":[-6250.7,16.55],"6-6-45":[-7523.68,12.64],"6-6-46":[-6434.49,7.66],"6-6-47":[-5854.24,-0.23],"6-6-48":[-5883.17,-8.01],"6-6-49":[-5303.84,-13.39],"6-6-50":[-6978.57,-19.08],"6-6-51":[-6793.58,2398.31],"6-6-52":[-80.36,612.17],"6-6-53":[-89.66,1323.98],"6-6-54":[-95.47,955.8],"6-6-55":[-110.06,986.95],"6-6-56":[-123.5,1457.88],"6-6-57":[-267.02,37.04],"6-6-58":[-2483.25,-62.06],"6-6-59":[-2735.7,-53.84],"6-6-60":[-3837.89,382.35],"6-6-61":[-3859.19,-36.44],"6-6-62":[-4111.64,3110.85],"6-6-63":[-4265.4,3090.17],"6-7-0":[-114.12,1993.53],"6-7-1":[-1659.34,3802.26],"5-3-0":[-1659.34,3802.26],"6-7-2":[-726.96,18.02],"6-7-3":[-856.88,4.75],"5-3-1":[-856.88,18.02],"4-1-0":[-1659.34,3926.7],"6-7-4":[-3515.76,174.18],"6-7-5":[-4316.77,-0.69],"5-3-2":[-4316.77,174.18],"6-7-6":[-4525.93,40.51],"6-7-7":[-4826.23,1489.28],"5-3-3":[-4826.23,1489.28],"4-1-1":[-4826.23,1489.28],"3-0-0":[-4826.23,4033.51],"6-7-8":[-4705.16,1063.92],"6-7-9":[-4508.79,1104.57],"5-3-4":[-4855.42,1104.57],"6-7-10":[-4405.97,1599.96],"6-7-11":[-4732.4,1740.57],"5-3-5":[-5061.5,1740.57],"4-1-2":[-5484.51,1740.57],"6-7-12":[-5035.8,2512.65],"6-7-13":[-6007.55,22.76],"5-3-6":[-6007.55,2536.32],"6-7-14":[-5655.69,18.21],"6-7-15":[-5490.55,3.05],"5-3-7":[-6089.63,19.52],"4-1-3":[-6371.35,2863.96],"3-0-1":[-6424.28,2863.96],"6-7-16":[-5742.76,-4.09],"6-7-17":[-5608.7,-10.07],"5-3-8":[-6504.35,-3.61],"6-7-18":[-5790.02,-13.47],"6-7-19":[-5942.52,-13.83],"5-3-9":[-6011.9,-12.33],"4-1-4":[-6565.05,-2.51],"6-7-20":[-6122.28,-10],"6-7-21":[-5983.9,-3.54],"5-3-10":[-6422.91,-1.95],"6-7-22":[-5652.19,4.69],"6-7-23":[-5471.5,14.6],"5-3-11":[-6254.61,190.01],"4-1-5":[-6784.16,190.01],"3-0-2":[-10731.15,480.3],"6-7-24":[-5211.11,1613.09],"6-7-25":[-10751.44,366.35],"5-3-12":[-10751.44,1613.09],"6-7-26":[-5776.41,11],"6-7-27":[-6202.43,17.46],"5-3-13":[-6452.43,191.73],"4-1-6":[-10751.44,1613.09],"6-7-28":[-6652.2,1903.24],"6-7-29":[-6197.55,32.99],"5-3-14":[-6652.2,1903.24],"6-7-30":[-5754.01,44.95],"6-7-31":[-5455.55,41.99],"5-3-15":[-6208.7,50.16],"4-1-7":[-8273.64,1903.24],"3-0-3":[-10751.44,1903.24],"6-7-32":[-5343.6,107.13],"6-7-33":[-4698.31,110.78],"5-3-16":[-5937.47,272.18],"6-7-34":[-5062.03,27.02],"6-7-35":[-5630.37,36.94],"5-3-17":[-5630.37,52.97],"4-1-8":[-6224.53,272.18],"6-7-36":[-6164.69,22.36],"6-7-37":[-5971.41,18.93],"5-3-18":[-6482.14,29.88],"6-7-38":[-5951.46,124.3],"6-7-39":[-4961.01,1612.94],"5-3-19":[-6038.67,1612.94],"4-1-9":[-6912.49,1612.94],"3-0-4":[-6912.49,1897.33],"6-7-40":[-6841.68,19.09],"6-7-41":[-6117.84,14.77],"5-3-20":[-6841.68,46.05],"6-7-42":[-6969.86,12.33],"6-7-43":[-6304.07,11.63],"5-3-21":[-6969.86,21.21],"4-1-10":[-6969.86,863.24],"6-7-44":[-6236.81,10.73],"6-7-45":[-6777.07,8.15],"5-3-22":[-7523.68,16.55],"6-7-46":[-5942.92,4.11],"6-7-47":[-6327.91,-2.7],"5-3-23":[-6434.49,7.66],"4-1-11":[-7523.68,32.28],"3-0-5":[-8051.96,863.24],"6-7-48":[-5660.04,-6.48],"6-7-49":[-5377.17,-13.72],"5-3-24":[-5883.17,-6.48],"6-7-50":[-6003.68,-19.18],"6-7-51":[-7476.07,2467.65],"5-3-25":[-7476.07,2467.65],"4-1-12":[-7476.07,2750.95],"6-7-52":[-294.64,1671.56],"6-7-53":[-81.45,1454.97],"5-3-26":[-294.64,1671.56],"6-7-54":[-93.97,1100.59],"6-7-55":[-109.85,1114.85],"5-3-27":[-110.06,1114.85],"4-1-13":[-514.98,1671.56],"3-0-6":[-7770.99,2750.95],"6-7-56":[-122.72,1462.27],"6-7-57":[-2671.74,44.62],"5-3-28":[-2671.74,1462.27],"6-7-58":[-3895.05,-62.74],"6-7-59":[-3863.74,340.29],"5-3-29":[-3895.05,340.29],"4-1-14":[-3895.05,1462.27],"6-7-60":[-3837.37,329.56],"6-7-61":[-3854.32,5.39],"5-3-30":[-3859.19,382.35],"6-7-62":[-3894.65,3872.33],"6-7-63":[-4253.4,3078.77],"5-3-31":[-4265.4,3872.33],"4-1-15":[-4312.53,3872.33],"3-0-7":[-4339.64,3970.41],"6-8-0":[-133.19,2418.18],"6-8-1":[-1497.67,3630.69],"6-8-2":[-725.49,17.9],"6-8-3":[-860.75,4.36],"6-8-4":[-3573.59,698.67],"6-8-5":[-4331.48,-1.15],"6-8-6":[-4503.3,46.22],"6-8-7":[-4850,2230.09],"6-8-8":[-4712.88,2322.75],"6-8-9":[-4566.51,1231.31],"6-8-10":[-4355.63,1286.11],"6-8-11":[-4501.55,2365.52],"6-8-12":[-4660.11,340.69],"6-8-13":[-5966.24,23.37],"6-8-14":[-5682.56,15.39],"6-8-15":[-5231.54,0.65],"6-8-16":[-5608.95,-6.49],"6-8-17":[-5431.41,-11.47],"6-8-18":[-5762.65,-14.68],"6-8-19":[-5770,-15.15],"6-8-20":[-6098.74,-12.28],"6-8-21":[-5777.78,-7.16],"6-8-22":[-5728.06,1],"6-8-23":[-5391.55,7.31],"6-8-24":[-5807.69,4224.76],"6-8-25":[-5219.34,4199.19],"6-8-26":[-9303.29,93.4],"6-8-27":[-5769.45,13.28],"6-8-28":[-6531.38,20.81],"6-8-29":[-6133.11,227.93],"6-8-30":[-5459.96,441.43],"6-8-31":[-5482.43,39.3],"6-8-32":[-5063.73,105.79],"6-8-33":[-4939.68,33.65],"6-8-34":[-5381.15,29.43],"6-8-35":[-5847.02,18.21],"6-8-36":[-6404.77,15.57],"6-8-37":[-6114.51,18.43],"6-8-38":[-5763.74,4199.19],"6-8-39":[-6049.76,4224.65],"6-8-40":[-5216.39,11.5],"6-8-41":[-6204.87,8],"6-8-42":[-6753.63,5.43],"6-8-43":[-6639.76,5.22],"6-8-44":[-6145.45,4.54],"6-8-45":[-6369.08,2.59],"6-8-46":[-6009.01,1.16],"6-8-47":[-6003.66,-3.98],"6-8-48":[-5816.42,-6.48],"6-8-49":[-5499.75,-13.07],"6-8-50":[-5244.21,-18.94],"6-8-51":[-6022.65,229.61],"6-8-52":[-333.13,2312.51],"6-8-53":[-78.98,1236.1],"6-8-54":[-91.83,1205.31],"6-8-55":[-109.23,2269.75],"6-8-56":[-120.92,2154.43],"6-8-57":[-3744.55,41.81],"6-8-58":[-4090.38,-62.51],"6-8-59":[-3900.79,772.25],"6-8-60":[-3952.21,254.93],"6-8-61":[-3830.41,77.33],"6-8-62":[-3849.56,3797.09],"6-8-63":[-4233.39,3066.33],"6-9-0":[-133.33,2625.88],"6-9-1":[-1543.8,2875.32],"5-4-0":[-1543.8,3630.69],"6-9-2":[-750.6,17.45],"6-9-3":[-948.63,3.84],"5-4-1":[-948.63,17.9],"6-9-4":[-3712.36,882.14],"6-9-5":[-4355.95,-2.83],"5-4-2":[-4355.95,882.14],"6-9-6":[-4514.92,52.5],"6-9-7":[-4691.52,2249.45],"5-4-3":[-4850,2249.45],"6-9-8":[-4726.41,1957.92],"6-9-9":[-4515.51,3549.52],"5-4-4":[-4726.41,3549.52],"6-9-10":[-3523.27,3498.22],"6-9-11":[-3809.98,2301.61],"5-4-5":[-4501.55,3498.22],"6-9-12":[-5184.02,28.12],"6-9-13":[-5526.88,22.28],"5-4-6":[-5966.24,340.69],"6-9-14":[-5637.58,10.49],"6-9-15":[-6327.22,-1.66],"5-4-7":[-6327.22,15.39],"6-9-16":[-6383.59,-8.53],"6-9-17":[-5698.62,-13.07],"5-4-8":[-6383.59,-6.49],"6-9-18":[-5820.88,-16.27],"6-9-19":[-5844.73,-16.03],"5-4-9":[-5844.73,-14.68],"6-9-20":[-5753.67,-13.34],"6-9-21":[-5997.64,-9.72],"5-4-10":[-6098.74,-7.16],"6-9-22":[-6149.97,-3.51],"6-9-23":[-5554.04,244.22],"5-4-11":[-6149.97,244.22],"6-9-24":[-5257.94,211.35],"6-9-25":[-5050.78,8.27],"5-4-12":[-5807.69,4224.76],"6-9-26":[-6105.07,325.78],"6-9-27":[-5717.79,7.73],"5-4-13":[-9303.29,325.78],"6-9-28":[-6191.84,3407.2],"6-9-29":[-6202.92,25.09],"5-4-14":[-6531.38,3407.2],"6-9-30":[-6482.71,28.45],"6-9-31":[-5201.78,30.86],"5-4-15":[-6482.71,441.43],"6-9-32":[-5182.24,31.34],"6-9-33":[-5362.99,28.46],"5-4-16":[-5362.99,105.79],"6-9-34":[-5789.15,22.63],"6-9-35":[-5533.58,15.89],"5-4-17":[-5847.02,29.43],"6-9-36":[-6622.39,11.11],"6-9-37":[-6497.61,364.92],"5-4-18":[-6622.39,364.92],"6-9-38":[-5642.43,11.45],"6-9-39":[-5994.03,7.86],"5-4-19":[-6049.76,4224.65],"6-9-40":[-5922.92,87.14],"6-9-41":[-6445.99,2.06],"5-4-20":[-6445.99,87.14],"6-9-42":[-6639.94,0.4],"6-9-43":[-5881.49,0.66],"5-4-21":[-6753.63,5.43],"6-9-44":[-6260.21,0.22],"6-9-45":[-6305.46,-1.28],"5-4-22":[-6369.08,4.54],"6-9-46":[-6130.83,-1.34],"6-9-47":[-6127.19,-5.15],"5-4-23":[-6130.83,1.16],"6-9-48":[-6167.65,-8.73],"6-9-49":[-5701.32,-13.13],"5-4-24":[-6167.65,-6.48],"6-9-50":[-5808.68,-17.8],"6-9-51":[-5585.66,-22.53],"5-4-25":[-6022.65,229.61],"6-9-52":[-3994.2,2166.51],"6-9-53":[-554.63,3405.43],"5-4-26":[-3994.2,3405.43],"6-9-54":[-90.63,3271.87],"6-9-55":[-107.41,1943.8],"5-4-27":[-109.23,3271.87],"6-9-56":[-119.96,2151.83],"6-9-57":[-3879.83,50.13],"5-4-28":[-3879.83,2154.43],"6-9-58":[-3936.01,-58.13],"6-9-59":[-3930.23,1007.23],"5-4-29":[-4090.38,1007.23],"6-9-60":[-3961.21,462.57],"6-9-61":[-3866.34,462.57],"5-4-30":[-3961.21,462.57],"6-9-62":[-3785.04,2783.57],"6-9-63":[-4243.39,3039.73],"5-4-31":[-4243.39,3797.09],"6-10-0":[-168.35,2478.84],"6-10-1":[-1188.55,2541.84],"6-10-2":[-835.74,17.55],"6-10-3":[-1077.31,67.73],"6-10-4":[-1634.85,417.41],"6-10-5":[-4329.28,-2.83],"6-10-6":[-4516.89,31.96],"6-10-7":[-4681.61,2250.87],"6-10-8":[-5159.84,1714.22],"6-10-9":[-4538.5,6207.28],"6-10-10":[-3782.64,2318.12],"6-10-11":[-3750.01,380.19],"6-10-12":[-5228.22,24.81],"6-10-13":[-5185.35,18.21],"6-10-14":[-5553.54,6.41],"6-10-15":[-6417.51,-4.11],"6-10-16":[-5662.92,-11.54],"6-10-17":[-5774.67,-15.64],"6-10-18":[-6844.62,-19.38],"6-10-19":[-6254.77,-18.81],"6-10-20":[-6338.1,-14.67],"6-10-21":[-6350.66,-11.93],"6-10-22":[-5752.27,-8.91],"6-10-23":[-5626.96,337.29],"6-10-24":[-5190.17,300.87],"6-10-25":[-6327.94,1587.33],"6-10-26":[-4919.76,858.44],"6-10-27":[-5755.82,266.32],"6-10-28":[-5400.68,1458.3],"6-10-29":[-5831.18,19.96],"6-10-30":[-5587.29,24.2],"6-10-31":[-5535.76,28.1],"6-10-32":[-5166.66,27.88],"6-10-33":[-5404.48,27.31],"6-10-34":[-5750.11,20.7],"6-10-35":[-5655.89,29.22],"6-10-36":[-6415.07,34.33],"6-10-37":[-6463.93,982.44],"6-10-38":[-5795.6,1738.21],"6-10-39":[-6460.21,368.88],"6-10-40":[-6468.28,399.3],"6-10-41":[-7036.1,-0.9],"6-10-42":[-6744.24,-1.07],"6-10-43":[-6358.02,-1.37],"6-10-44":[-6201.6,-2.29],"6-10-45":[-6329.6,-3.92],"6-10-46":[-5996.93,-4.4],"6-10-47":[-5697.46,-6.94],"6-10-48":[-5653.13,-10.44],"6-10-49":[-5656,-13.58],"6-10-50":[-5893.86,-16.97],"6-10-51":[-5523.63,-20.99],"6-10-52":[-5381.5,346.13],"6-10-53":[-1809.46,2120.75],"6-10-54":[-88.65,6095.63],"6-10-55":[-106.09,1765.96],"6-10-56":[-116.67,2185.42],"6-10-57":[-3874.65,26.49],"6-10-58":[-3919.09,-55.65],"6-10-59":[-3927.57,883.88],"6-10-60":[-3907.83,570.37],"6-10-61":[-3613.14,549.47],"6-10-62":[-3644,2425.34],"6-10-63":[-4227.35,3008.67],"6-11-0":[-183.38,2377.6],"6-11-1":[-1234.31,3176.27],"5-5-0":[-1234.31,3176.27],"6-11-2":[-902.26,18.15],"6-11-3":[-1164.72,75.57],"5-5-1":[-1164.72,75.57],"4-2-0":[-1543.8,3630.69],"6-11-4":[-2094.06,663.6],"6-11-5":[-4260.3,-3.47],"5-5-2":[-4329.28,663.6],"6-11-6":[-4409.85,5.59],"6-11-7":[-4506.16,2337.17],"5-5-3":[-4681.61,2337.17],"4-2-1":[-4850,2337.17],"6-11-8":[-5196.88,1624.53],"6-11-9":[-4768.63,4180.16],"5-5-4":[-5196.88,6207.28],"6-11-10":[-4182.3,4014.2],"6-11-11":[-3864.66,27.09],"5-5-5":[-4182.3,4014.2],"4-2-2":[-5196.88,6207.28],"6-11-12":[-4863.31,20.02],"6-11-13":[-5098.5,12.89],"5-5-6":[-5228.22,24.81],"6-11-14":[-5577.52,1.04],"6-11-15":[-5517.12,-7.02],"5-5-7":[-6417.51,6.41],"4-2-3":[-6417.51,340.69],"6-11-16":[-5726.26,-14.25],"6-11-17":[-6014.63,-18.62],"5-5-8":[-6014.63,-11.54],"6-11-18":[-6047.97,-21.88],"6-11-19":[-5954.95,-21.95],"5-5-9":[-6844.62,-18.81],"4-2-4":[-6844.62,-6.49],"6-11-20":[-6376.27,-17.94],"6-11-21":[-5426.35,-14.48],"5-5-10":[-6376.27,-11.93],"6-11-22":[-5074.5,-12.52],"6-11-23":[-5623.64,309.11],"5-5-11":[-5752.27,337.29],"4-2-5":[-6376.27,337.29],"6-11-24":[-6007.69,-8.2],"6-11-25":[-4854.06,287.11],"5-5-12":[-6327.94,1587.33],"6-11-26":[-4603.51,322.84],"6-11-27":[-5478.68,40.87],"5-5-13":[-5755.82,858.44],"4-2-6":[-9303.29,4224.76],"6-11-28":[-6630.7,3.39],"6-11-29":[-5892.13,13.1],"5-5-14":[-6630.7,1458.3],"6-11-30":[-5587.29,18.24],"6-11-31":[-5106.24,23.18],"5-5-15":[-5587.29,28.1],"4-2-7":[-6630.7,3407.2],"6-11-32":[-5002.41,23.23],"6-11-33":[-5509.79,21.8],"5-5-16":[-5509.79,27.88],"6-11-34":[-5851.53,15.53],"6-11-35":[-5631.96,8.74],"5-5-17":[-5851.53,29.22],"4-2-8":[-5851.53,105.79],"6-11-36":[-6312.55,4.25],"6-11-37":[-6661.84,108.86],"5-5-18":[-6661.84,982.44],"6-11-38":[-6246.69,418.12],"6-11-39":[-6396.35,-1.41],"5-5-19":[-6460.21,1738.21],"4-2-9":[-6661.84,4224.65],"6-11-40":[-6560.2,394.12],"6-11-41":[-6052.54,-2.74],"5-5-20":[-7036.1,399.3],"6-11-42":[-6502.29,-2.09],"6-11-43":[-6219.92,-2.6],"5-5-21":[-6744.24,-1.07],"4-2-10":[-7036.1,399.3],"6-11-44":[-5862.36,-3.6],"6-11-45":[-6436.13,-5.6],"5-5-22":[-6436.13,-2.29],"6-11-46":[-5819.59,-7.76],"6-11-47":[-5495.45,-8.93],"5-5-23":[-5996.93,-4.4],"4-2-11":[-6436.13,4.54],"6-11-48":[-5200.05,-11.9],"6-11-49":[-8103.44,-13.59],"5-5-24":[-8103.44,-10.44],"6-11-50":[-5232.18,-16.5],"6-11-51":[-4750.88,-20.15],"5-5-25":[-5893.86,-16.5],"4-2-12":[-8103.44,229.61],"6-11-52":[-5077.5,-23.76],"6-11-53":[-2754.79,3834.03],"5-5-26":[-5381.5,3834.03],"6-11-54":[-86.21,3972.34],"6-11-55":[-103.18,1602.16],"5-5-27":[-106.09,6095.63],"4-2-13":[-5381.5,6095.63],"6-11-56":[-113.79,2293.15],"6-11-57":[-3765.29,6.83],"5-5-28":[-3874.65,2293.15],"6-11-58":[-3865.62,-30.17],"6-11-59":[-3941.99,896.34],"5-5-29":[-3941.99,896.34],"4-2-14":[-4090.38,2293.15],"6-11-60":[-3893.37,667.99],"6-11-61":[-3732.8,564.8],"5-5-30":[-3907.83,667.99],"6-11-62":[-3422.03,3379.23],"6-11-63":[-4222.37,2977.45],"5-5-31":[-4227.35,3379.23],"4-2-15":[-4243.39,3797.09],"6-12-0":[-181.36,1693.13],"6-12-1":[-1455.74,2871.83],"6-12-2":[-1098.55,18.51],"6-12-3":[-1119.23,2.56],"6-12-4":[-1551.27,1171.54],"6-12-5":[-4185.02,252.83],"6-12-6":[-4455.12,-1.46],"6-12-7":[-4548.47,2626.58],"6-12-8":[-4886.04,1971.14],"6-12-9":[-4860.51,4964.36],"6-12-10":[-4561.15,5003.13],"6-12-11":[-4330.54,17.77],"6-12-12":[-5941.24,17.44],"6-12-13":[-5681.57,8.08],"6-12-14":[-5679.46,-2.54],"6-12-15":[-5618.32,-10.05],"6-12-16":[-5733.88,-16.83],"6-12-17":[-6117.04,-21.69],"6-12-18":[-6699.21,-25],"6-12-19":[-6042.47,-24.8],"6-12-20":[-6163.38,-22.36],"6-12-21":[-5676.67,-17.53],"6-12-22":[-4728.02,419.05],"6-12-23":[-5762.93,154.67],"6-12-24":[-5637.54,138.75],"6-12-25":[-5061.96,265.8],"6-12-26":[-4719.59,549.53],"6-12-27":[-5417.45,-4.41],"6-12-28":[-5746,-0.37],"6-12-29":[-5483.02,6.6],"6-12-30":[-5099.46,13.43],"6-12-31":[-4938.09,18.86],"6-12-32":[-4792.79,19.08],"6-12-33":[-6222.37,16.44],"6-12-34":[-5876.68,12.4],"6-12-35":[-5719.46,3.06],"6-12-36":[-6252.33,-0.47],"6-12-37":[-6689.38,26.39],"6-12-38":[-6041.73,15.85],"6-12-39":[-6382.53,13.14],"6-12-40":[-6633.54,-5.04],"6-12-41":[-5606.01,367.1],"6-12-42":[-6254.81,-4.66],"6-12-43":[-6442.49,-5.49],"6-12-44":[-6251.77,-5.68],"6-12-45":[-5961.27,-7.48],"6-12-46":[-6225.81,-9.37],"6-12-47":[-5200.68,-11.32],"6-12-48":[-4973.03,-13.01],"6-12-49":[-4891.62,-15.16],"6-12-50":[-4935.48,-16.79],"6-12-51":[-4684.63,-19.15],"6-12-52":[-4852.85,-23.29],"6-12-53":[-4722.62,4901.79],"6-12-54":[-84.64,4907.93],"6-12-55":[-100.6,1849.36],"6-12-56":[-110.81,2580.94],"6-12-57":[-3674.95,-28.39],"6-12-58":[-3819.03,732.21],"6-12-59":[-3893.84,1118.71],"6-12-60":[-3872.09,697.82],"6-12-61":[-3706.18,547.44],"6-12-62":[-3461.9,3177.52],"6-12-63":[-4221.36,2958.4],"6-13-0":[-161.34,1474.13],"6-13-1":[-1652.61,2990.28],"5-6-0":[-1652.61,2990.28],"6-13-2":[-922.38,18.69],"6-13-3":[-1307.85,2.29],"5-6-1":[-1307.85,18.69],"6-13-4":[-1245.45,1086.26],"6-13-5":[-4159.76,828.09],"5-6-2":[-4185.02,1171.54],"6-13-6":[-4531.15,-1.51],"6-13-7":[-4629.72,2443.65],"5-6-3":[-4629.72,2626.58],"6-13-8":[-4866.08,1955.52],"6-13-9":[-4896.44,3305.19],"5-6-4":[-4896.44,4964.36],"6-13-10":[-4581.53,5501.18],"6-13-11":[-5943.29,16.19],"5-6-5":[-5943.29,5501.18],"6-13-12":[-6014.26,12.53],"6-13-13":[-5533.57,1.23],"5-6-6":[-6014.26,17.44],"6-13-14":[-5250.64,-5.03],"6-13-15":[-5500.84,-13.68],"5-6-7":[-5679.46,-2.54],"6-13-16":[-5716.49,-19.6],"6-13-17":[-6636.39,-24.29],"5-6-8":[-6636.39,-16.83],"6-13-18":[-6228.62,-29.09],"6-13-19":[-5856.69,-28.05],"5-6-9":[-6699.21,-24.8],"6-13-20":[-5910.84,-25.11],"6-13-21":[-5256.1,-21.57],"5-6-10":[-6163.38,-17.53],"6-13-22":[-4830.29,-19.25],"6-13-23":[-5393,-19.08],"5-6-11":[-5762.93,419.05],"6-13-24":[-5111.43,229.65],"6-13-25":[-4776.85,276.62],"5-6-12":[-5637.54,276.62],"6-13-26":[-4587.09,1606.36],"6-13-27":[-5913.51,-7.34],"5-6-13":[-5913.51,1606.36],"6-13-28":[-5787.05,27.02],"6-13-29":[-4722.33,528.03],"5-6-14":[-5787.05,528.03],"6-13-30":[-5229.34,5.15],"6-13-31":[-5127.76,10.05],"5-6-15":[-5229.34,18.86],"6-13-32":[-4776.14,10.97],"6-13-33":[-5127.13,9.15],"5-6-16":[-6222.37,19.08],"6-13-34":[-5659.07,574],"6-13-35":[-7447.7,3.2],"5-6-17":[-7447.7,574],"6-13-36":[-6016.23,-2.96],"6-13-37":[-6776.68,18.94],"5-6-18":[-6776.68,26.39],"6-13-38":[-5885.01,15.14],"6-13-39":[-6294.03,21.33],"5-6-19":[-6382.53,21.33],"6-13-40":[-6242.29,-7.97],"6-13-41":[-5471.92,-4.36],"5-6-20":[-6633.54,367.1],"6-13-42":[-5640.19,-4.92],"6-13-43":[-6405.01,-8.03],"5-6-21":[-6442.49,-4.66],"6-13-44":[-6316.29,-8.36],"6-13-45":[-6352.55,-9.22],"5-6-22":[-6352.55,-5.68],"6-13-46":[-6171.18,-10.62],"6-13-47":[-5055.96,-11.92],"5-6-23":[-6225.81,-9.37],"6-13-48":[-4727.1,-14.27],"6-13-49":[-6709.55,-15.88],"5-6-24":[-6709.55,-13.01],"6-13-50":[-4532.06,-16.79],"6-13-51":[-4206.32,-18.04],"5-6-25":[-4935.48,-16.79],"6-13-52":[-3930.24,-21.69],"6-13-53":[-3805.7,5374.27],"5-6-26":[-4852.85,5374.27],"6-13-54":[-82.17,3164.74],"6-13-55":[-96.84,1843.66],"5-6-27":[-100.6,4907.93],"6-13-56":[-192.46,2256.65],"6-13-57":[-3560.52,-45.32],"5-6-28":[-3674.95,2580.94],"6-13-58":[-3777.45,799.79],"6-13-59":[-3830.96,1415.24],"5-6-29":[-3893.84,1415.24],"6-13-60":[-3818.7,696.8],"6-13-61":[-3786.2,578.81],"5-6-30":[-3872.09,697.82],"6-13-62":[-3456.9,2807.42],"6-13-63":[-4223.36,2933.27],"5-6-31":[-4223.36,3177.52],"6-14-0":[-215.89,1760.1],"6-14-1":[-1678.19,3160.02],"6-14-2":[-1200.9,18.69],"6-14-3":[-1245.84,2.84],"6-14-4":[-1486.78,1054.84],"6-14-5":[-4124.23,874.8],"6-14-6":[-4464.26,-3.21],"6-14-7":[-4716.03,1629.08],"6-14-8":[-4779.66,2195.84],"6-14-9":[-5029.49,2352.25],"6-14-10":[-4887.53,5990.12],"6-14-11":[-5167.06,1250.79],"6-14-12":[-3998.63,5.47],"6-14-13":[-5641.75,-2.9],"6-14-14":[-5640.26,-9.51],"6-14-15":[-6063.37,-17],"6-14-16":[-6353.19,-23.13],"6-14-17":[-6412.37,-26.79],"6-14-18":[-5979.38,-32.26],"6-14-19":[-5645.82,-30.63],"6-14-20":[-5195.75,-28.02],"6-14-21":[-4903.61,-1.91],"6-14-22":[-4940.46,-23.49],"6-14-23":[-5190.71,-22.95],"6-14-24":[-4875.96,295.99],"6-14-25":[-4544.85,145.6],"6-14-26":[-4451.65,78.85],"6-14-27":[-4792.38,-11.82],"6-14-28":[-4507.28,1173.83],"6-14-29":[-4839.24,388.87],"6-14-30":[-4916.53,-0.54],"6-14-31":[-4887.14,3.14],"6-14-32":[-4975.78,4.38],"6-14-33":[-5142.66,4.04],"6-14-34":[-5322.02,444.87],"6-14-35":[-5384.02,1253.85],"6-14-36":[-6344.65,-4.2],"6-14-37":[-5851.42,11.81],"6-14-38":[-5795.76,12.56],"6-14-39":[-5701.16,29.28],"6-14-40":[-6003.76,-9.96],"6-14-41":[-5477.38,-8.25],"6-14-42":[-5257.35,-7.63],"6-14-43":[-6050.14,-8.79],"6-14-44":[-6456.24,-9.44],"6-14-45":[-6312.83,-9.8],"6-14-46":[-5960.56,-11.59],"6-14-47":[-4585.8,-13.34],"6-14-48":[-4683.62,-14.96],"6-14-49":[-4721.83,-16.64],"6-14-50":[-3984.97,-17.15],"6-14-51":[-3687.61,-17.84],"6-14-52":[-3668.18,1159.79],"6-14-53":[-434.8,5828.29],"6-14-54":[-81.47,2178.34],"6-14-55":[-94.24,2088.55],"6-14-56":[-557.25,1489.78],"6-14-57":[-3334.1,-50.32],"6-14-58":[-3731.79,1501.65],"6-14-59":[-3805.12,1730.64],"6-14-60":[-3800.65,752.21],"6-14-61":[-3796.21,587.99],"6-14-62":[-3065.97,3232.04],"6-14-63":[-4227.36,2914.46],"6-15-0":[-252.92,1750.21],"6-15-1":[-1586.85,3417.75],"5-7-0":[-1678.19,3417.75],"6-15-2":[-1307.4,18.62],"6-15-3":[-1291.03,3.57],"5-7-1":[-1307.4,18.69],"4-3-0":[-1678.19,3417.75],"6-15-4":[-1008.08,3235.77],"6-15-5":[-3901.52,1165.61],"5-7-2":[-4124.23,3235.77],"6-15-6":[-4460.99,-3.02],"6-15-7":[-4699.29,1677.33],"5-7-3":[-4716.03,1677.33],"4-3-1":[-4716.03,3235.77],"3-1-0":[-4850,3630.69],"6-15-8":[-5027.23,2201.64],"6-15-9":[-5359.93,2244.89],"5-7-4":[-5359.93,2352.25],"6-15-10":[-5092.31,3286.53],"6-15-11":[-4715.56,4338.49],"5-7-5":[-5167.06,5990.12],"4-3-2":[-5943.29,5990.12],"6-15-12":[-4457.58,0.26],"6-15-13":[-5147.09,-5.77],"5-7-6":[-5641.75,5.47],"6-15-14":[-5959.55,-12.56],"6-15-15":[-6660.79,-19.83],"5-7-7":[-6660.79,-9.51],"4-3-3":[-6660.79,17.44],"3-1-1":[-6660.79,6207.28],"2-0-0":[-6660.79,6207.28],"6-15-16":[-6324.33,-25.72],"6-15-17":[-6080.83,-29.35],"5-7-8":[-6412.37,-23.13],"6-15-18":[-5404.77,-34.5],"6-15-19":[-5340.82,-33.7],"5-7-9":[-5979.38,-30.63],"4-3-4":[-6699.21,-16.83],"6-15-20":[-5105.14,-31.19],"6-15-21":[-4617.63,-29.89],"5-7-10":[-5195.75,-1.91],"6-15-22":[-4638.21,-28.48],"6-15-23":[-4781.63,1449.55],"5-7-11":[-5190.71,1449.55],"4-3-5":[-6163.38,1449.55],"3-1-2":[-6844.62,1449.55],"6-15-24":[-4774.4,187.4],"6-15-25":[-4764.79,87.27],"5-7-12":[-4875.96,295.99],"6-15-26":[-4780.15,-19.12],"6-15-27":[-5089.12,-17.07],"5-7-13":[-5089.12,78.85],"4-3-6":[-5913.51,1606.36],"6-15-28":[-4769.36,-13.51],"6-15-29":[-4843.95,-9.36],"5-7-14":[-4843.95,1173.83],"6-15-30":[-4850.25,-5.14],"6-15-31":[-4785.05,-2.71],"5-7-15":[-4916.53,3.14],"4-3-7":[-5787.05,1173.83],"3-1-3":[-9303.29,4224.76],"2-0-1":[-10751.44,4224.76],"6-15-32":[-4660.98,-1.71],"6-15-33":[-5517.77,-1.49],"5-7-16":[-5517.77,4.38],"6-15-34":[-5355.58,-2.12],"6-15-35":[-5221.35,-2.93],"5-7-17":[-5384.02,1253.85],"4-3-8":[-7447.7,1253.85],"6-15-36":[-5945.39,-4.46],"6-15-37":[-5896.5,-7.9],"5-7-18":[-6344.65,11.81],"6-15-38":[-5714.69,7.98],"6-15-39":[-5642.41,16.82],"5-7-19":[-5795.76,29.28],"4-3-9":[-6776.68,29.28],"3-1-4":[-7447.7,4224.65],"6-15-40":[-5681.96,210.54],"6-15-41":[-5264.79,-11.38],"5-7-20":[-6003.76,210.54],"6-15-42":[-5490.76,-10.1],"6-15-43":[-6114.44,-10.22],"5-7-21":[-6114.44,-7.63],"4-3-10":[-6633.54,367.1],"6-15-44":[-5810.62,-10.28],"6-15-45":[-6078.66,-10.38],"5-7-22":[-6456.24,-9.44],"6-15-46":[-5516.56,-12.05],"6-15-47":[-5004.1,-13.68],"5-7-23":[-5960.56,-11.59],"4-3-11":[-6456.24,-5.68],"3-1-5":[-7036.1,399.3],"2-0-2":[-8051.96,4224.65],"6-15-48":[-4386.38,-15.28],"6-15-49":[-4351.89,-16.57],"5-7-24":[-4721.83,-14.96],"6-15-50":[-3798.21,-17.93],"6-15-51":[-3479.92,-17.17],"5-7-25":[-3984.97,-17.15],"4-3-12":[-6709.55,-13.01],"6-15-52":[-3159.54,4170.48],"6-15-53":[-822.27,3102.72],"5-7-26":[-3668.18,5828.29],"6-15-54":[-79.48,2084.36],"6-15-55":[-91.99,2173.62],"5-7-27":[-94.24,2178.34],"4-3-13":[-4852.85,5828.29],"3-1-6":[-8103.44,6095.63],"6-15-56":[-143.51,1622.37],"6-15-57":[-2992.58,-47.94],"5-7-28":[-3334.1,1622.37],"6-15-58":[-3641,1582.81],"6-15-59":[-3753.24,3280.76],"5-7-29":[-3805.12,3280.76],"4-3-14":[-3893.84,3280.76],"6-15-60":[-3755.03,1055.95],"6-15-61":[-3729.99,583.66],"5-7-30":[-3800.65,1055.95],"6-15-62":[-2999.82,3299.77],"6-15-63":[-4222.86,2899.4],"5-7-31":[-4227.36,3299.77],"4-3-15":[-4227.36,3299.77],"3-1-7":[-4243.39,3797.09],"2-0-3":[-8103.44,6095.63],"6-16-0":[-250.92,1810.14],"6-16-1":[-1292.23,3415.68],"6-16-2":[-1365.82,18.81],"6-16-3":[-1466.32,3.62],"6-16-4":[-1138.15,2724.76],"6-16-5":[-3589.89,2752.29],"6-16-6":[-4465.85,-2.92],"6-16-7":[-4699.29,358.63],"6-16-8":[-5027.84,2700.74],"6-16-9":[-5450.75,2379.96],"6-16-10":[-5052.16,2349.52],"6-16-11":[-4766.48,3089.83],"6-16-12":[-5372.47,1191.79],"6-16-13":[-5318.08,1099.24],"6-16-14":[-5414.76,-15.25],"6-16-15":[-6829.25,-21.82],"6-16-16":[-6240.03,-27.45],"6-16-17":[-5540.11,-31.05],"6-16-18":[-5487.51,-35.86],"6-16-19":[-5353.62,20.74],"6-16-20":[-5006.12,-34.53],"6-16-21":[-4672.99,-33.65],"6-16-22":[-4556.55,-33.08],"6-16-23":[-4527.94,2112.46],"6-16-24":[-4781.49,-31.17],"6-16-25":[-4721.21,-29.12],"6-16-26":[-4621.98,-25.12],"6-16-27":[-4958.22,-22.61],"6-16-28":[-4911.16,-18.47],"6-16-29":[-5018.64,-14.42],"6-16-30":[-5681.41,-9.88],"6-16-31":[-4890.89,-7.01],"6-16-32":[-4847.19,-5.38],"6-16-33":[-4875.66,-5.07],"6-16-34":[-5164.7,-4.9],"6-16-35":[-6115.42,-5.38],"6-16-36":[-5822.7,-6.96],"6-16-37":[-6357.23,-9.38],"6-16-38":[-5707.43,-10.64],"6-16-39":[-5588.39,-10.88],"6-16-40":[-5367.6,395.5],"6-16-41":[-5450.06,-12.58],"6-16-42":[-5481.79,-11.89],"6-16-43":[-5542.03,-11.48],"6-16-44":[-6548.04,-10.73],"6-16-45":[-5665.39,-11.64],"6-16-46":[-5185,-12.42],"6-16-47":[-4202.64,-13.83],"6-16-48":[-4574.57,-14.63],"6-16-49":[-5094.21,-15.29],"6-16-50":[-3625.99,971.36],"6-16-51":[-3183.7,1215.57],"6-16-52":[-870.18,2897.13],"6-16-53":[-67.1,2248.84],"6-16-54":[-78.95,2468.64],"6-16-55":[-88.41,2460.72],"6-16-56":[-94.87,332.64],"6-16-57":[-2771.85,-36.44],"6-16-58":[-3499.69,2780.28],"6-16-59":[-3699.81,3057.06],"6-16-60":[-3732.88,1251.61],"6-16-61":[-3718.56,729.54],"6-16-62":[-2843.18,3324.73],"6-16-63":[-4214.39,2887.59],"6-17-0":[-199.93,1456.34],"6-17-1":[-1768,3620.15],"5-8-0":[-1768,3620.15],"6-17-2":[-1475.26,19.47],"6-17-3":[-1402.55,3.4],"5-8-1":[-1475.26,19.47],"6-17-4":[-1180.97,1470.8],"6-17-5":[-2625.03,2591.07],"5-8-2":[-3589.89,2752.29],"6-17-6":[-4466.16,-3.57],"6-17-7":[-4549.31,450.81],"5-8-3":[-4699.29,450.81],"6-17-8":[-5008.75,2409.04],"6-17-9":[-5233.55,2941.77],"5-8-4":[-5450.75,2941.77],"6-17-10":[-5119.82,2300.19],"6-17-11":[-4890.47,3041.41],"5-8-5":[-5119.82,3089.83],"6-17-12":[-6658.81,2709.89],"6-17-13":[-4851.18,1110.77],"5-8-6":[-6658.81,2709.89],"6-17-14":[-5821.52,-16.38],"6-17-15":[-5674.88,-22.03],"5-8-7":[-6829.25,-15.25],"6-17-16":[-5851.22,-26.24],"6-17-17":[-5301.91,-30.62],"5-8-8":[-6240.03,-26.24],"6-17-18":[-5466.61,-36.84],"6-17-19":[-5104.24,-38.94],"5-8-9":[-5487.51,20.74],"6-17-20":[-4709.73,-38.14],"6-17-21":[-4666.22,-37.3],"5-8-10":[-5006.12,-33.65],"6-17-22":[-4992.97,-37.32],"6-17-23":[-4460.76,239.39],"5-8-11":[-4992.97,2112.46],"6-17-24":[-4823.9,-36.06],"6-17-25":[-5006.1,-33.99],"5-8-12":[-5006.1,-29.12],"6-17-26":[-4437.45,-31.19],"6-17-27":[-4609.57,-27.45],"5-8-13":[-4958.22,-22.61],"6-17-28":[-4932.8,-23.68],"6-17-29":[-5183.75,-18.06],"5-8-14":[-5183.75,-14.42],"6-17-30":[-5106.77,-13.82],"6-17-31":[-4902.56,-10.34],"5-8-15":[-5681.41,-7.01],"6-17-32":[-4738.9,-8.32],"6-17-33":[-4738.24,-7.81],"5-8-16":[-4875.66,-5.07],"6-17-34":[-5231.72,-7.81],"6-17-35":[-5297.05,-8],"5-8-17":[-6115.42,-4.9],"6-17-36":[-5635.03,-8.25],"6-17-37":[-5415.4,-9.44],"5-8-18":[-6357.23,-6.96],"6-17-38":[-6887.6,-10.07],"6-17-39":[-5911.14,-11.06],"5-8-19":[-6887.6,-10.07],"6-17-40":[-5556.7,315.4],"6-17-41":[-5276.82,-11.32],"5-8-20":[-5556.7,395.5],"6-17-42":[-5701.15,-12.55],"6-17-43":[-5607.75,-11.22],"5-8-21":[-5701.15,-11.22],"6-17-44":[-6593.4,-10.83],"6-17-45":[-5575.85,-11.63],"5-8-22":[-6593.4,-10.73],"6-17-46":[-4741.3,-12.29],"6-17-47":[-4894.74,-13.43],"5-8-23":[-5185,-12.29],"6-17-48":[-4122.26,-14],"6-17-49":[-3621.62,-14.43],"5-8-24":[-5094.21,-14],"6-17-50":[-3957.44,993.74],"6-17-51":[-771.77,2522.54],"5-8-25":[-3957.44,2522.54],"6-17-52":[-216.42,2808.07],"6-17-53":[-64.39,2249.4],"5-8-26":[-870.18,2897.13],"6-17-54":[-75.83,2758.77],"6-17-55":[-84.15,2323.38],"5-8-27":[-88.41,2758.77],"6-17-56":[-89.73,401.81],"6-17-57":[-2441.75,-16.49],"5-8-28":[-2771.85,401.81],"6-17-58":[-2973.68,2730.02],"6-17-59":[-3594.22,2341.32],"5-8-29":[-3699.81,3057.06],"6-17-60":[-3727.72,1350.33],"6-17-61":[-3692.53,803.49],"5-8-30":[-3732.88,1350.33],"6-17-62":[-2811.27,3573.17],"6-17-63":[-4214.39,2879.05],"5-8-31":[-4214.39,3573.17],"6-18-0":[-239.93,1305.63],"6-18-1":[-1961.07,3782.46],"6-18-2":[-1554.87,20.08],"6-18-3":[-1327.79,253.46],"6-18-4":[-1088.12,3239.67],"6-18-5":[-1217.67,3108.19],"6-18-6":[-4824.35,142.08],"6-18-7":[-4475.98,429.97],"6-18-8":[-5097.66,2151.79],"6-18-9":[-5286.88,2614.23],"6-18-10":[-5383.94,2710.75],"6-18-11":[-4674.83,2698.9],"6-18-12":[-6208.63,2746.59],"6-18-13":[-5145.3,2747.57],"6-18-14":[-5330.71,1843.49],"6-18-15":[-5251.84,-22.18],"6-18-16":[-5203.52,-26.44],"6-18-17":[-5196.89,-29.66],"6-18-18":[-5294.47,-35.92],"6-18-19":[-4940.34,-39.87],"6-18-20":[-4969.7,-40.29],"6-18-21":[-4577.18,-40.68],"6-18-22":[-4373.32,-41.38],"6-18-23":[-4278.81,36.16],"6-18-24":[-4720.03,-40.24],"6-18-25":[-5013.32,-38.8],"6-18-26":[-4588.47,-35.89],"6-18-27":[-4400.12,-32.16],"6-18-28":[-5008.64,-27.65],"6-18-29":[-6174.12,-22.1],"6-18-30":[-4934.3,-17.75],"6-18-31":[-4842.18,-14.23],"6-18-32":[-4876.31,-11.43],"6-18-33":[-4758.41,-10.12],"6-18-34":[-5086.71,-9.98],"6-18-35":[-5093.33,-9.16],"6-18-36":[-5155.12,-9.09],"6-18-37":[-5307.78,-8.96],"6-18-38":[-5730.1,-9.07],"6-18-39":[-5129.31,-10.05],"6-18-40":[-5279.34,30.18],"6-18-41":[-5425.68,-10.66],"6-18-42":[-5345.64,-11.58],"6-18-43":[-5141.56,-10.9],"6-18-44":[-5415.73,-10.9],"6-18-45":[-5030.18,-11.37],"6-18-46":[-4788.93,-12.17],"6-18-47":[-4459,-12.57],"6-18-48":[-3487.82,-12.73],"6-18-49":[-3561.32,1575.89],"6-18-50":[-1988.24,2584.28],"6-18-51":[-538.42,2544.16],"6-18-52":[-46.75,2552.9],"6-18-53":[-62.71,2504.4],"6-18-54":[-73.11,2557.92],"6-18-55":[-79.89,2151.24],"6-18-56":[-258.64,398.97],"6-18-57":[-798.4,126.06],"6-18-58":[-1790.31,2750.5],"6-18-59":[-3353.04,2817.84],"6-18-60":[-3629.63,1490.05],"6-18-61":[-3621.66,901.46],"6-18-62":[-2800.02,3682.63],"6-18-63":[-4215.33,2878.07],"6-19-0":[-379.17,1287.38],"6-19-1":[-1593.06,3146.76],"5-9-0":[-1961.07,3782.46],"6-19-2":[-1890.58,20.54],"6-19-3":[-1414.05,2.42],"5-9-1":[-1890.58,253.46],"4-4-0":[-1961.07,3782.46],"6-19-4":[-1211.44,4101.76],"6-19-5":[-1382.71,2119.92],"5-9-2":[-1382.71,4101.76],"6-19-6":[-3876.71,317.55],"6-19-7":[-4530.82,581.34],"5-9-3":[-4824.35,581.34],"4-4-1":[-4824.35,4101.76],"6-19-8":[-4995.54,973.14],"6-19-9":[-5321.16,2480.85],"5-9-4":[-5321.16,2614.23],"6-19-10":[-5607.39,2228.73],"6-19-11":[-4754.48,2929.86],"5-9-5":[-5607.39,2929.86],"4-4-2":[-5607.39,3089.83],"6-19-12":[-6114.42,2399.44],"6-19-13":[-4562,3974.94],"5-9-6":[-6208.63,3974.94],"6-19-14":[-4492.89,2829.29],"6-19-15":[-5013.47,2131.34],"5-9-7":[-5330.71,2829.29],"4-4-3":[-6829.25,3974.94],"6-19-16":[-4953.87,1592.47],"6-19-17":[-4866.48,1595.59],"5-9-8":[-5203.52,1595.59],"6-19-18":[-5637.2,251.63],"6-19-19":[-5637.2,-38.05],"5-9-9":[-5637.2,251.63],"4-4-4":[-6240.03,1595.59],"6-19-20":[-4758.37,-41.29],"6-19-21":[-4461.38,-42.03],"5-9-10":[-4969.7,-40.29],"6-19-22":[-4510.74,-43.78],"6-19-23":[-4246.08,165.38],"5-9-11":[-4510.74,165.38],"4-4-5":[-5006.12,2112.46],"6-19-24":[-4386.55,-43.61],"6-19-25":[-4787.48,-42.14],"5-9-12":[-5013.32,-38.8],"6-19-26":[-4592.84,-39.76],"6-19-27":[-4940.84,-36.36],"5-9-13":[-4940.84,-32.16],"4-4-6":[-5013.32,-22.61],"6-19-28":[-4653.41,-31.27],"6-19-29":[-5351.52,-25.3],"5-9-14":[-6174.12,-22.1],"6-19-30":[-5449.15,-21.14],"6-19-31":[-5024.53,-17.54],"5-9-15":[-5449.15,-14.23],"4-4-7":[-6174.12,-7.01],"6-19-32":[-5169.3,-14.6],"6-19-33":[-5203.96,-12.43],"5-9-16":[-5203.96,-10.12],"6-19-34":[-5208.9,-11.75],"6-19-35":[-5361.21,-9.55],"5-9-17":[-5361.21,-9.16],"4-4-8":[-6115.42,-4.9],"6-19-36":[-5037.02,-8.58],"6-19-37":[-4920.17,-7.73],"5-9-18":[-5307.78,-7.73],"6-19-38":[-5156.8,-7.69],"6-19-39":[-5026.43,-8.18],"5-9-19":[-5730.1,-7.69],"4-4-9":[-6887.6,-6.96],"6-19-40":[-5045.17,0.38],"6-19-41":[-5538.83,-9.49],"5-9-20":[-5538.83,30.18],"6-19-42":[-5356.53,-10.86],"6-19-43":[-5215.62,-10.71],"5-9-21":[-5356.53,-10.71],"4-4-10":[-5701.15,395.5],"6-19-44":[-5127.44,-10.75],"6-19-45":[-5197.76,258.9],"5-9-22":[-5415.73,258.9],"6-19-46":[-4421.91,1557.91],"6-19-47":[-3471,1551.49],"5-9-23":[-4788.93,1557.91],"4-4-11":[-6593.4,1557.91],"6-19-48":[-3140.15,2121.88],"6-19-49":[-2469.93,2675.95],"5-9-24":[-3561.32,2675.95],"6-19-50":[-626.92,3796.99],"6-19-51":[-37.03,2275.43],"5-9-25":[-1988.24,3796.99],"4-4-12":[-5094.21,3796.99],"6-19-52":[-44.46,2778.85],"6-19-53":[-60.61,2131.71],"5-9-26":[-62.71,2778.85],"6-19-54":[-69.03,2392.98],"6-19-55":[-75.62,968.87],"5-9-27":[-79.89,2557.92],"4-4-13":[-870.18,2897.13],"6-19-56":[-347.17,572.32],"6-19-57":[-601.74,288.87],"5-9-28":[-798.4,572.32],"6-19-58":[-515.17,2986.57],"6-19-59":[-2994.68,3530.83],"5-9-29":[-3353.04,3530.83],"4-4-14":[-3699.81,3530.83],"6-19-60":[-3551.26,1514.1],"6-19-61":[-3519.87,956.54],"5-9-30":[-3629.63,1514.1],"6-19-62":[-2747.86,3114.64],"6-19-63":[-4214.39,2878.57],"5-9-31":[-4215.33,3682.63],"4-4-15":[-4215.33,3682.63],"6-20-0":[-417.32,1224.41],"6-20-1":[-1370.96,2452.93],"6-20-2":[-1973.46,20.82],"6-20-3":[-1633.9,2.38],"6-20-4":[-1302.3,1894.43],"6-20-5":[-1304.79,801.61],"6-20-6":[-3626.95,693.54],"6-20-7":[-4536.9,842.66],"6-20-8":[-5055.43,662.44],"6-20-9":[-5264.21,1501.83],"6-20-10":[-5515.35,1335.36],"6-20-11":[-5331.65,2410.7],"6-20-12":[-6105.34,2580.47],"6-20-13":[-4265.75,3118.01],"6-20-14":[-4519.48,3265.41],"6-20-15":[-4565.58,4373.52],"6-20-16":[-4835.84,3180.62],"6-20-17":[-4743.31,4292.74],"6-20-18":[-6588.28,2093.71],"6-20-19":[-4944.06,1757.21],"6-20-20":[-4796.65,-39.45],"6-20-21":[-4565.81,-41.79],"6-20-22":[-4128.01,-44.7],"6-20-23":[-3987,-46.27],"6-20-24":[-4050.55,-46.25],"6-20-25":[-4341.52,-44.61],"6-20-26":[-4080.21,-43],"6-20-27":[-4829.5,-39.48],"6-20-28":[-5119.06,-34.42],"6-20-29":[-5269.86,-28.53],"6-20-30":[-4689.02,-24.48],"6-20-31":[-4770.8,-20.85],"6-20-32":[-5202.52,-17.01],"6-20-33":[-4890.99,-14.29],"6-20-34":[-5023.56,-12.23],"6-20-35":[-4964.45,-9.38],"6-20-36":[-4986.97,-7.52],"6-20-37":[-4880.33,-6.21],"6-20-38":[-4961.7,-6.04],"6-20-39":[-4755.38,-6.16],"6-20-40":[-4689.63,-6.82],"6-20-41":[-4833.3,-7.83],"6-20-42":[-4861.26,-9.86],"6-20-43":[-4844.73,-10.66],"6-20-44":[-5134.28,1750.54],"6-20-45":[-3868.94,2051.18],"6-20-46":[-46.03,4249.41],"6-20-47":[-44.93,3135.77],"6-20-48":[-291.98,4326.16],"6-20-49":[-419.89,3212.16],"6-20-50":[-26.04,3002.43],"6-20-51":[-35.46,2455.47],"6-20-52":[-44.23,2254.26],"6-20-53":[-59.19,1409.29],"6-20-54":[-66.26,1525.83],"6-20-55":[-73.37,629.49],"6-20-56":[-489.3,852.51],"6-20-57":[-671.27,681.52],"6-20-58":[-552.12,1956.61],"6-20-59":[-2448.23,2297.87],"6-20-60":[-3307.66,1535.12],"6-20-61":[-3393.94,1063],"6-20-62":[-2705,2865.19],"6-20-63":[-4214.39,2878.57],"6-21-0":[-337.42,1346.84],"6-21-1":[-1233.6,2030.55],"5-10-0":[-1370.96,2452.93],"6-21-2":[-1772.55,89.14],"6-21-3":[-1871.86,2.72],"5-10-1":[-1973.46,89.14],"6-21-4":[-2467.23,2541.55],"6-21-5":[-1623.25,454.87],"5-10-2":[-2467.23,2541.55],"6-21-6":[-3359.57,413.74],"6-21-7":[-4538.31,781.37],"5-10-3":[-4538.31,842.66],"6-21-8":[-5075.96,696.58],"6-21-9":[-5249.7,880.39],"5-10-4":[-5264.21,1501.83],"6-21-10":[-5445.64,833.93],"6-21-11":[-5899.2,1099.39],"5-10-5":[-5899.2,2410.7],"6-21-12":[-4299.21,3253.8],"6-21-13":[-3763.46,3939.1],"5-10-6":[-6105.34,3939.1],"6-21-14":[-4281.45,2946.16],"6-21-15":[-4207.65,2851.96],"5-10-7":[-4565.58,4373.52],"6-21-16":[-4394.17,2953.97],"6-21-17":[-5603.84,3100.13],"5-10-8":[-5603.84,4292.74],"6-21-18":[-5251.97,4387.58],"6-21-19":[-4621.58,4242],"5-10-9":[-6588.28,4387.58],"6-21-20":[-4530.92,610.58],"6-21-21":[-4249.27,1248.21],"5-10-10":[-4796.65,1248.21],"6-21-22":[-4100.77,-43.26],"6-21-23":[-3917.92,-45.42],"5-10-11":[-4128.01,-43.26],"6-21-24":[-3839.51,-46.3],"6-21-25":[-4146.3,-45.23],"5-10-12":[-4341.52,-44.61],"6-21-26":[-4034.73,-43.77],"6-21-27":[-4622.19,-40.96],"5-10-13":[-4829.5,-39.48],"6-21-28":[-5026.68,-36.11],"6-21-29":[-4710.14,-30.73],"5-10-14":[-5269.86,-28.53],"6-21-30":[-4711.56,-26.83],"6-21-31":[-4649.73,-22.8],"5-10-15":[-4770.8,-20.85],"6-21-32":[-5165.04,-18.67],"6-21-33":[-5124.61,-15.13],"5-10-16":[-5202.52,-14.29],"6-21-34":[-4928.38,-12.89],"6-21-35":[-4817.72,-9.33],"5-10-17":[-5023.56,-9.33],"6-21-36":[-4751.47,-6.07],"6-21-37":[-4705.07,-4.67],"5-10-18":[-4986.97,-4.67],"6-21-38":[-4736.47,-4.21],"6-21-39":[-4814.85,-4.21],"5-10-19":[-4961.7,-4.21],"6-21-40":[-4826.11,-5.08],"6-21-41":[-5135.13,-6.52],"5-10-20":[-5135.13,-5.08],"6-21-42":[-5265.07,1190.2],"6-21-43":[-4590.1,596.6],"5-10-21":[-5265.07,1190.2],"6-21-44":[-2985.45,4155.23],"6-21-45":[-26.05,4282.35],"5-10-22":[-5134.28,4282.35],"6-21-46":[-26.03,3002.91],"6-21-47":[-24,2907.88],"5-10-23":[-46.03,4249.41],"6-21-48":[-22.24,2814],"6-21-49":[-21.6,2800.67],"5-10-24":[-419.89,4326.16],"6-21-50":[-23.2,3778.63],"6-21-51":[-31.43,3065.26],"5-10-25":[-35.46,3778.63],"6-21-52":[-42.02,1088.13],"6-21-53":[-56.28,798.49],"5-10-26":[-59.19,2254.26],"6-21-54":[-63.59,815.62],"6-21-55":[-71.43,688.52],"5-10-27":[-73.37,1525.83],"6-21-56":[-537.59,775.33],"6-21-57":[-441.32,399.72],"5-10-28":[-671.27,852.51],"6-21-58":[-523.41,1699.95],"6-21-59":[-1766.91,2538.05],"5-10-29":[-2448.23,2538.05],"6-21-60":[-3331.72,1626.41],"6-21-61":[-3355.23,1241.73],"5-10-30":[-3393.94,1626.41],"6-21-62":[-2622.98,2638.67],"6-21-63":[-4214.39,2874.63],"5-10-31":[-4214.39,2878.57],"6-22-0":[-398.63,1167.08],"6-22-1":[-651.33,2264.33],"6-22-2":[-1498.06,363.46],"6-22-3":[-1848.36,1220.89],"6-22-4":[-2407.5,3509.49],"6-22-5":[-1967.05,3362.6],"6-22-6":[-3532.52,562.23],"6-22-7":[-4708.86,561.11],"6-22-8":[-5102.62,731.19],"6-22-9":[-5406.44,633.28],"6-22-10":[-5616.21,980.63],"6-22-11":[-5777.27,953.84],"6-22-12":[-4339.32,1945.45],"6-22-13":[-3575.12,3751.07],"6-22-14":[-5353.78,3467.23],"6-22-15":[-3948.99,2981.68],"6-22-16":[-4230.11,2953.81],"6-22-17":[-4698.67,3455.03],"6-22-18":[-4417.21,3616.13],"6-22-19":[-4614.73,3677.07],"6-22-20":[-4612.07,3055.54],"6-22-21":[-4169.26,2579.5],"6-22-22":[-4121.9,227.36],"6-22-23":[-4832.83,-36.74],"6-22-24":[-4589.1,-43.31],"6-22-25":[-6924.66,-42.61],"6-22-26":[-3909.53,-41.08],"6-22-27":[-4173.36,-38.63],"6-22-28":[-5079.89,-34.92],"6-22-29":[-4716.43,-31.11],"6-22-30":[-4620.67,-27.03],"6-22-31":[-4566.09,-23.61],"6-22-32":[-4502.76,-19.66],"6-22-33":[-4557.38,-15.78],"6-22-34":[-4533.81,-12.28],"6-22-35":[-4814.45,-8],"6-22-36":[-4853.38,-4.62],"6-22-37":[-4430.16,-3.04],"6-22-38":[-4409.56,-2.78],"6-22-39":[-4975.84,-2.97],"6-22-40":[-4329.8,195.98],"6-22-41":[-4894.06,155.36],"6-22-42":[-4774.93,2577.48],"6-22-43":[-2521.79,3006.53],"6-22-44":[-112.74,3560.31],"6-22-45":[-107.66,3555.42],"6-22-46":[-25.48,3327.82],"6-22-47":[-23.5,2834],"6-22-48":[-21.38,2971.69],"6-22-49":[-20.27,3240.49],"6-22-50":[-22.59,3550.72],"6-22-51":[-29.7,1888.48],"6-22-52":[-41.54,948.84],"6-22-53":[-53.67,976.63],"6-22-54":[-61.27,681.33],"6-22-55":[-68.78,730.22],"6-22-56":[-498.55,541.09],"6-22-57":[-457.73,551.22],"6-22-58":[-534.91,3383.56],"6-22-59":[-664.24,3626.49],"6-22-60":[-2942.53,1694.94],"6-22-61":[-3274.61,1432.98],"6-22-62":[-2650.99,2576.08],"6-22-63":[-4214.39,2863.29],"6-23-0":[-421.11,1136.69],"6-23-1":[-833.08,2882.18],"5-11-0":[-833.08,2882.18],"6-23-2":[-1737.91,525.6],"6-23-3":[-2333.53,9.47],"5-11-1":[-2333.53,1220.89],"4-5-0":[-2333.53,2882.18],"6-23-4":[-2030.12,2135.73],"6-23-5":[-2116.36,1778.2],"5-11-2":[-2407.5,3509.49],"6-23-6":[-3602.71,628.59],"6-23-7":[-4632.63,437.77],"5-11-3":[-4708.86,628.59],"4-5-1":[-4708.86,3509.49],"3-2-0":[-4824.35,4101.76],"6-23-8":[-5155.37,620.34],"6-23-9":[-5302.33,595],"5-11-4":[-5406.44,731.19],"6-23-10":[-5557.74,952.89],"6-23-11":[-5636.66,969.04],"5-11-5":[-5777.27,980.63],"4-5-2":[-5899.2,2410.7],"6-23-12":[-4315.7,1217.71],"6-23-13":[-3848.72,3152.73],"5-11-6":[-4339.32,3751.07],"6-23-14":[-5731.78,3396.83],"6-23-15":[-3515.08,3385.15],"5-11-7":[-5731.78,3467.23],"4-5-3":[-6105.34,4373.52],"3-2-1":[-6829.25,4373.52],"6-23-16":[-3720.8,3846.98],"6-23-17":[-3729.31,3659.45],"5-11-8":[-4698.67,3846.98],"6-23-18":[-3857.79,3960.27],"6-23-19":[-4665.03,2781.72],"5-11-9":[-4665.03,3960.27],"4-5-4":[-6588.28,4387.58],"6-23-20":[-4586.57,2074.25],"6-23-21":[-3908.44,2324.4],"5-11-10":[-4612.07,3055.54],"6-23-22":[-4234.4,1902.28],"6-23-23":[-4248.98,-37.16],"5-11-11":[-4832.83,1902.28],"4-5-5":[-4832.83,3055.54],"3-2-2":[-6588.28,4387.58],"6-23-24":[-4096.4,-38.53],"6-23-25":[-3684.54,238.06],"5-11-12":[-6924.66,238.06],"6-23-26":[-4079.58,-36.65],"6-23-27":[-4195.46,-34.81],"5-11-13":[-4195.46,-34.81],"4-5-6":[-6924.66,238.06],"6-23-28":[-5581.2,-32.08],"6-23-29":[-5226.21,-29.04],"5-11-14":[-5581.2,-29.04],"6-23-30":[-4536.94,-25.29],"6-23-31":[-4550.37,-21.98],"5-11-15":[-4620.67,-21.98],"4-5-7":[-5581.2,-20.85],"3-2-3":[-6924.66,238.06],"6-23-32":[-4255.85,-18.42],"6-23-33":[-4442.94,-15],"5-11-16":[-4557.38,-15],"6-23-34":[-5616.78,-10.65],"6-23-35":[-4625.81,-6.84],"5-11-17":[-5616.78,-6.84],"4-5-8":[-5616.78,-6.84],"6-23-36":[-4390.47,-3.94],"6-23-37":[-4586.73,-2.35],"5-11-18":[-4853.38,-2.35],"6-23-38":[-4741.58,182.06],"6-23-39":[-4374.02,-2.19],"5-11-19":[-4975.84,182.06],"4-5-9":[-4986.97,182.06],"3-2-4":[-6887.6,182.06],"6-23-40":[-4592.1,-3.43],"6-23-41":[-4363.36,1835.28],"5-11-20":[-4894.06,1835.28],"6-23-42":[-1649.44,2317.4],"6-23-43":[-253.34,2074.33],"5-11-21":[-4774.93,3006.53],"4-5-10":[-5265.07,3006.53],"6-23-44":[-22.86,2716.48],"6-23-45":[-23.63,3833.28],"5-11-22":[-112.74,3833.28],"6-23-46":[-23.44,3527.63],"6-23-47":[-22.17,3624.57],"5-11-23":[-25.48,3624.57],"4-5-11":[-5134.28,4282.35],"3-2-5":[-6593.4,4282.35],"6-23-48":[-20.39,3270.25],"6-23-49":[-21.17,3156.76],"5-11-24":[-21.38,3270.25],"6-23-50":[-23.21,2985.77],"6-23-51":[-30.13,1202.75],"5-11-25":[-30.13,3550.72],"4-5-12":[-419.89,4326.16],"6-23-52":[-43.45,965.03],"6-23-53":[-51.53,945.27],"5-11-26":[-53.67,976.63],"6-23-54":[-58.95,477.09],"6-23-55":[-65.3,616.4],"5-11-27":[-68.78,730.22],"4-5-13":[-73.37,2254.26],"3-2-6":[-5094.21,4326.16],"6-23-56":[-381.19,424.76],"6-23-57":[-248.43,630.55],"5-11-28":[-498.55,630.55],"6-23-58":[-530.93,2010.01],"6-23-59":[-510.12,2194.6],"5-11-29":[-664.24,3626.49],"4-5-14":[-2448.23,3626.49],"6-23-60":[-2788.93,1763.02],"6-23-61":[-3206.53,1638.58],"5-11-30":[-3274.61,1763.02],"6-23-62":[-2569.85,2755.16],"6-23-63":[-4214.39,2834.96],"5-11-31":[-4214.39,2863.29],"4-5-15":[-4214.39,2878.57],"3-2-7":[-4215.33,3682.63],"6-24-0":[-444.11,1186.8],"6-24-1":[-1081.56,1860.38],"6-24-2":[-884.27,780.39],"6-24-3":[-2481.46,11.12],"6-24-4":[-1806.9,3362.09],"6-24-5":[-1623.32,2494.83],"6-24-6":[-3546.49,637.43],"6-24-7":[-4475.39,369.52],"6-24-8":[-5232.42,618.66],"6-24-9":[-5302.19,643.83],"6-24-10":[-5599.09,442.7],"6-24-11":[-5552.22,841.05],"6-24-12":[-4529.43,849.8],"6-24-13":[-4302.91,1071.09],"6-24-14":[-4466.8,2114.96],"6-24-15":[-3366.56,3889.28],"6-24-16":[-3659.9,4191.26],"6-24-17":[-3400.71,4109.88],"6-24-18":[-3545.38,3690.6],"6-24-19":[-4815.26,3824.21],"6-24-20":[-4264.88,3235.29],"6-24-21":[-3729.77,2589.58],"6-24-22":[-4007.02,1702.94],"6-24-23":[-5911.74,2045.21],"6-24-24":[-4035.63,-33.29],"6-24-25":[-4136.33,268.06],"6-24-26":[-4161.32,-31.52],"6-24-27":[-5001.37,-29.62],"6-24-28":[-4128.07,-28.02],"6-24-29":[-4975.29,-25.65],"6-24-30":[-4578.48,-23.11],"6-24-31":[-4349.57,-20.2],"6-24-32":[-4541,-17.27],"6-24-33":[-4341.2,-13.42],"6-24-34":[-4969.11,-9.91],"6-24-35":[-4622.82,-6.43],"6-24-36":[-6027.68,-3.86],"6-24-37":[-4987.2,-2.32],"6-24-38":[-4501.51,906.1],"6-24-39":[-4247.65,-2.13],"6-24-40":[-3703.92,2006.2],"6-24-41":[-3317.83,1625.93],"6-24-42":[-1102.76,2496.57],"6-24-43":[-20.18,3193.33],"6-24-44":[-21.4,3709.46],"6-24-45":[-21.96,3624.72],"6-24-46":[-21.96,3997.5],"6-24-47":[-20.69,3958.09],"6-24-48":[-19.53,3750.79],"6-24-49":[-21.86,2056.55],"6-24-50":[-23.63,1056.01],"6-24-51":[-30.13,836.55],"6-24-52":[-42.54,834.09],"6-24-53":[-50.73,423.69],"6-24-54":[-56.68,479.95],"6-24-55":[-62.37,620.69],"6-24-56":[-397.73,366.7],"6-24-57":[-327.26,618.35],"6-24-58":[-578.4,2438.84],"6-24-59":[-539.33,3441.15],"6-24-60":[-2590.64,1871.81],"6-24-61":[-3123.2,1816.7],"6-24-62":[-2650.65,2575.14],"6-24-63":[-4214.39,2813.19],"6-25-0":[-303.71,1053.33],"6-25-1":[-651.82,1708.98],"5-12-0":[-1081.56,1860.38],"6-25-2":[-922.35,1020.06],"6-25-3":[-2433.51,33.82],"5-12-1":[-2481.46,1020.06],"6-25-4":[-1734.73,293.97],"6-25-5":[-1461.69,334.46],"5-12-2":[-1806.9,3362.09],"6-25-6":[-3803.3,387.52],"6-25-7":[-4628.98,308.5],"5-12-3":[-4628.98,637.43],"6-25-8":[-5084.99,598.61],"6-25-9":[-5252.45,600.19],"5-12-4":[-5302.19,643.83],"6-25-10":[-5484.86,610.76],"6-25-11":[-5604.4,613.75],"5-12-5":[-5604.4,841.05],"6-25-12":[-4715.59,741.32],"6-25-13":[-4517.04,852.58],"5-12-6":[-4715.59,1071.09],"6-25-14":[-4478.47,2093.28],"6-25-15":[-3966.59,3842.68],"5-12-7":[-4478.47,3889.28],"6-25-16":[-3770.45,4204.45],"6-25-17":[-3937.86,3751.43],"5-12-8":[-3937.86,4204.45],"6-25-18":[-4104.8,4348.39],"6-25-19":[-5472.45,3458.34],"5-12-9":[-5472.45,4348.39],"6-25-20":[-5358.88,3295.69],"6-25-21":[-3924,3091.23],"5-12-10":[-5358.88,3295.69],"6-25-22":[-4181.74,3268.31],"6-25-23":[-4107.01,2081.23],"5-12-11":[-5911.74,3268.31],"6-25-24":[-4139.43,-28.52],"6-25-25":[-4417.91,-26.44],"5-12-12":[-4417.91,268.06],"6-25-26":[-4796.18,-25.22],"6-25-27":[-3903.47,-24.16],"5-12-13":[-5001.37,-24.16],"6-25-28":[-4620.9,-15.52],"6-25-29":[-4156.21,-22.31],"5-12-14":[-4975.29,-15.52],"6-25-30":[-4696.61,-20.5],"6-25-31":[-4184.51,-18.74],"5-12-15":[-4696.61,-18.74],"6-25-32":[-4009.76,-16.22],"6-25-33":[-4172.12,-12.95],"5-12-16":[-4541,-12.95],"6-25-34":[-4842.46,-9.78],"6-25-35":[-5609.97,98.48],"5-12-17":[-5609.97,98.48],"6-25-36":[-5165.76,-4.01],"6-25-37":[-5237.78,-2.5],"5-12-18":[-6027.68,-2.32],"6-25-38":[-5867.09,-2.18],"6-25-39":[-5887.61,-2.3],"5-12-19":[-5887.61,906.1],"6-25-40":[-3836.87,2005.22],"6-25-41":[-2624.66,3194.32],"5-12-20":[-3836.87,3194.32],"6-25-42":[-16.08,3023.14],"6-25-43":[-18.48,3241.73],"5-12-21":[-1102.76,3241.73],"6-25-44":[-19.58,3410.37],"6-25-45":[-20.51,4171.18],"5-12-22":[-21.96,4171.18],"6-25-46":[-20.66,3695.94],"6-25-47":[-19.83,4048.21],"5-12-23":[-21.96,4048.21],"6-25-48":[-19.6,3764.34],"6-25-49":[-22.09,1976.48],"5-12-24":[-22.09,3764.34],"6-25-50":[-24.31,843.14],"6-25-51":[-29.53,749.28],"5-12-25":[-30.13,1056.01],"6-25-52":[-38.65,583.75],"6-25-53":[-48.88,527.66],"5-12-26":[-50.73,834.09],"6-25-54":[-53.27,454.9],"6-25-55":[-321.18,564.64],"5-12-27":[-321.18,620.69],"6-25-56":[-365.61,281.37],"6-25-57":[-401.21,416.56],"5-12-28":[-401.21,618.35],"6-25-58":[-659.6,821.96],"6-25-59":[-553.58,1676.69],"5-12-29":[-659.6,3441.15],"6-25-60":[-2291.56,1996.28],"6-25-61":[-3041.73,1996.28],"5-12-30":[-3123.2,1996.28],"6-25-62":[-2813.69,2606.34],"6-25-63":[-4215.39,2795.26],"5-12-31":[-4215.39,2813.19],"6-26-0":[-439.71,1000.01],"6-26-1":[-730.5,1772.1],"6-26-2":[-897.49,2298.54],"6-26-3":[-1713.07,281.71],"6-26-4":[-1913.82,308.77],"6-26-5":[-1684.72,381.74],"6-26-6":[-3787.14,317.75],"6-26-7":[-4740.18,215.89],"6-26-8":[-5062.53,571.32],"6-26-9":[-5238.49,565.77],"6-26-10":[-6488.99,599.94],"6-26-11":[-6644.9,611.84],"6-26-12":[-4903.49,731.39],"6-26-13":[-5400.04,749.4],"6-26-14":[-4879.74,993.24],"6-26-15":[-4103.16,1446.2],"6-26-16":[-4120.52,3114.6],"6-26-17":[-4230.7,4338.56],"6-26-18":[-4413.49,4383.25],"6-26-19":[-5096.75,3998.98],"6-26-20":[-4111.25,3617.02],"6-26-21":[-3860.99,2970.04],"6-26-22":[-4545.1,3258.01],"6-26-23":[-4215.41,3307.88],"6-26-24":[-4394.09,2734.41],"6-26-25":[-4782.29,2861.69],"6-26-26":[-5685.17,-18.54],"6-26-27":[-4949.82,-18.19],"6-26-28":[-5202.13,-18.13],"6-26-29":[-4328.88,-18.06],"6-26-30":[-4889.01,-17.73],"6-26-31":[-4042.13,-17.02],"6-26-32":[-3932.99,-15.49],"6-26-33":[-4611.24,-12.9],"6-26-34":[-4215.41,-10],"6-26-35":[-4437.77,-7.31],"6-26-36":[-4454.44,-4.66],"6-26-37":[-4569.44,-3.18],"6-26-38":[-5094.37,2826.68],"6-26-39":[-4696.56,2654.65],"6-26-40":[-1698.12,3217.88],"6-26-41":[-10.71,3238.99],"6-26-42":[-14.63,2817.94],"6-26-43":[-16.88,3502.89],"6-26-44":[-18.57,3901.67],"6-26-45":[-19.41,4305.19],"6-26-46":[-19.51,4229.83],"6-26-47":[-18.58,3014],"6-26-48":[-19.11,1409.63],"6-26-49":[-22.08,981.78],"6-26-50":[-24.14,734.9],"6-26-51":[-29.38,727.51],"6-26-52":[-38.33,598.01],"6-26-53":[-46.19,511.34],"6-26-54":[-51.2,426.83],"6-26-55":[-57.5,452.88],"6-26-56":[-155.67,204.81],"6-26-57":[-311.85,196.31],"6-26-58":[-599.85,881.64],"6-26-59":[-578.3,1748.55],"6-26-60":[-1765.96,2076.65],"6-26-61":[-2851.24,2181.07],"6-26-62":[-2859.69,2606.49],"6-26-63":[-4215.39,2777.84],"6-27-0":[-553.59,784.94],"6-27-1":[-488.74,1493.87],"5-13-0":[-730.5,1772.1],"6-27-2":[-1148.95,2712.56],"6-27-3":[-2045.61,320.5],"5-13-1":[-2045.61,2712.56],"4-6-0":[-2481.46,2712.56],"6-27-4":[-2032.29,372.69],"6-27-5":[-1445.53,449.81],"5-13-2":[-2032.29,449.81],"6-27-6":[-3787.98,283.15],"6-27-7":[-4721.05,117.7],"5-13-3":[-4740.18,317.75],"4-6-1":[-4740.18,3362.09],"6-27-8":[-5023.3,325.53],"6-27-9":[-5311.91,428.65],"5-13-4":[-5311.91,571.32],"6-27-10":[-6550.67,567.14],"6-27-11":[-5322.93,510.84],"5-13-5":[-6644.9,611.84],"4-6-2":[-6644.9,841.05],"6-27-12":[-5100.87,779.83],"6-27-13":[-4957,797.9],"5-13-6":[-5400.04,797.9],"6-27-14":[-4562.1,843.62],"6-27-15":[-4900.36,1208.11],"5-13-7":[-4900.36,1446.2],"4-6-3":[-5400.04,3889.28],"6-27-16":[-4715.92,2194.75],"6-27-17":[-6020.76,1798.51],"5-13-8":[-6020.76,4338.56],"6-27-18":[-4494.59,2635.83],"6-27-19":[-4926.46,2159.53],"5-13-9":[-5096.75,4383.25],"4-6-4":[-6020.76,4383.25],"6-27-20":[-4552.08,1925.95],"6-27-21":[-3967.39,2697.84],"5-13-10":[-4552.08,3617.02],"6-27-22":[-4104.46,2999.92],"6-27-23":[-4228.95,3424.3],"5-13-11":[-4545.1,3424.3],"4-6-5":[-5911.74,3617.02],"6-27-24":[-4620.51,3479.94],"6-27-25":[-4583.52,4234.29],"5-13-12":[-4782.29,4234.29],"6-27-26":[-5549.86,-13],"6-27-27":[-5063.91,-12.54],"5-13-13":[-5685.17,-12.54],"4-6-6":[-5685.17,4234.29],"6-27-28":[-5516.32,-12.85],"6-27-29":[-5126.11,-13.41],"5-13-14":[-5516.32,-12.85],"6-27-30":[-4940.44,-14.09],"6-27-31":[-3922.85,-14.93],"5-13-15":[-4940.44,-14.09],"4-6-7":[-5516.32,-12.85],"6-27-32":[-10287.73,-14.66],"6-27-33":[-3838.8,-13.29],"5-13-16":[-10287.73,-12.9],"6-27-34":[-3952.86,-11.02],"6-27-35":[-4397.75,-9.21],"5-13-17":[-4437.77,-7.31],"4-6-8":[-10287.73,98.48],"6-27-36":[-3846.19,-6.32],"6-27-37":[-5411.31,-4.11],"5-13-18":[-5411.31,-3.18],"6-27-38":[-5381.88,4089.29],"6-27-39":[-7.82,3353.19],"5-13-19":[-5381.88,4089.29],"4-6-9":[-6027.68,4089.29],"6-27-40":[-6.36,3366.29],"6-27-41":[-8.91,2906.92],"5-13-20":[-1698.12,3366.29],"6-27-42":[-12.62,2615.39],"6-27-43":[-14.88,1857.98],"5-13-21":[-16.88,3502.89],"4-6-10":[-3836.87,3502.89],"6-27-44":[-15.67,2106.54],"6-27-45":[-17.16,2595.28],"5-13-22":[-19.41,4305.19],"6-27-46":[-17.14,1790.4],"6-27-47":[-16.64,2157.81],"5-13-23":[-19.51,4229.83],"4-6-11":[-21.96,4305.19],"6-27-48":[-18.13,1197.65],"6-27-49":[-20.76,806.78],"5-13-24":[-22.08,1409.63],"6-27-50":[-23.03,796.95],"6-27-51":[-27.57,771.94],"5-13-25":[-29.38,796.95],"4-6-12":[-30.13,3764.34],"6-27-52":[-33.04,487.72],"6-27-53":[-43.05,509.42],"5-13-26":[-46.19,598.01],"6-27-54":[-47.85,403.44],"6-27-55":[-55.33,313.6],"5-13-27":[-57.5,452.88],"4-6-13":[-321.18,834.09],"6-27-56":[-165.48,97.2],"6-27-57":[-389.09,647.09],"5-13-28":[-389.09,647.09],"6-27-58":[-464.97,899.06],"6-27-59":[-578.3,1803.34],"5-13-29":[-599.85,1803.34],"4-6-14":[-659.6,3441.15],"6-27-60":[-1164.05,2159.56],"6-27-61":[-2655.88,2197.16],"5-13-30":[-2851.24,2197.16],"6-27-62":[-2735.67,2581.41],"6-27-63":[-4215.89,2769.5],"5-13-31":[-4215.89,2777.84],"4-6-15":[-4215.89,2813.19],"6-28-0":[-589.49,895.88],"6-28-1":[-904.43,1735],"6-28-2":[-1112.91,1235.69],"6-28-3":[-2043.07,844.52],"6-28-4":[-2281.87,373.55],"6-28-5":[-1363.66,836.38],"6-28-6":[-4066.69,674.51],"6-28-7":[-4710.07,37.53],"6-28-8":[-5012.79,273.39],"6-28-9":[-5266.71,404.25],"6-28-10":[-5706.52,438.24],"6-28-11":[-5494.65,436.49],"6-28-12":[-5263.46,375.47],"6-28-13":[-5318.9,807.5],"6-28-14":[-4751.14,785.89],"6-28-15":[-4761.28,755.87],"6-28-16":[-5205.32,1090.39],"6-28-17":[-6497.54,1115.44],"6-28-18":[-4875.35,1003.31],"6-28-19":[-5278.57,1013.68],"6-28-20":[-4266.28,909.81],"6-28-21":[-4277.75,784.58],"6-28-22":[-4135.64,3697.19],"6-28-23":[-5658.77,3685.36],"6-28-24":[-4615.83,3903.97],"6-28-25":[-4879.2,5379.65],"6-28-26":[-6091.1,1685.03],"6-28-27":[-5229.41,-8.02],"6-28-28":[-5370.65,-9.26],"6-28-29":[-5029.2,-9.53],"6-28-30":[-5149.38,-10.39],"6-28-31":[-3741.68,-11.78],"6-28-32":[-4859.21,-13.08],"6-28-33":[-4605.78,-13.91],"6-28-34":[-3888.71,-12.68],"6-28-35":[-4747.63,-10.25],"6-28-36":[-4599.95,-7.52],"6-28-37":[-5655.38,1591.03],"6-28-38":[-3254.97,5307.64],"6-28-39":[-8.33,3851.97],"6-28-40":[-6.04,3653.33],"6-28-41":[-7.12,3606.16],"6-28-42":[-10.83,781.34],"6-28-43":[-12.78,907.4],"6-28-44":[-13.74,1016.87],"6-28-45":[-14.99,1005.18],"6-28-46":[-15.4,1103.03],"6-28-47":[-15.79,1073.93],"6-28-48":[-15.93,729.34],"6-28-49":[-19.25,738.55],"6-28-50":[-20.66,791.33],"6-28-51":[-24.63,359.46],"6-28-52":[-31.19,426.97],"6-28-53":[-40.85,427.93],"6-28-54":[-45.75,331.13],"6-28-55":[-52.39,260.77],"6-28-56":[-249.03,31.77],"6-28-57":[-291.84,721.39],"6-28-58":[-258.27,799.62],"6-28-59":[-519.66,1812.13],"6-28-60":[-695.6,2299.62],"6-28-61":[-2450.61,2175.98],"6-28-62":[-2467.84,2429.87],"6-28-63":[-4216.39,2761.57],"6-29-0":[-670.41,737.08],"6-29-1":[-665.35,1980.27],"5-14-0":[-904.43,1980.27],"6-29-2":[-1176.89,984.33],"6-29-3":[-2142.75,2066.14],"5-14-1":[-2142.75,2066.14],"6-29-4":[-2246.48,424.86],"6-29-5":[-1485.53,801.98],"5-14-2":[-2281.87,836.38],"6-29-6":[-4086.72,546.17],"6-29-7":[-4691.99,188.06],"5-14-3":[-4710.07,674.51],"6-29-8":[-4933.06,258.97],"6-29-9":[-5287.28,265.48],"5-14-4":[-5287.28,404.25],"6-29-10":[-5484.98,362.54],"6-29-11":[-5715.5,333.9],"5-14-5":[-5715.5,438.24],"6-29-12":[-5465.58,353.36],"6-29-13":[-5431.27,297.08],"5-14-6":[-5465.58,807.5],"6-29-14":[-4814.21,507.51],"6-29-15":[-5139.28,624.77],"5-14-7":[-5139.28,785.89],"6-29-16":[-4901.17,602.11],"6-29-17":[-6258.5,668.28],"5-14-8":[-6497.54,1115.44],"6-29-18":[-4824.97,558.27],"6-29-19":[-4787.72,500.16],"5-14-9":[-5278.57,1013.68],"6-29-20":[-4729.79,489.46],"6-29-21":[-4326.7,534.68],"5-14-10":[-4729.79,909.81],"6-29-22":[-4200.36,197.1],"6-29-23":[-5409.91,1437.08],"5-14-11":[-5658.77,3697.19],"6-29-24":[-4759.9,3376.08],"6-29-25":[-5145.15,5601.19],"5-14-12":[-5145.15,5601.19],"6-29-26":[-5646.48,3710.87],"6-29-27":[-5111.49,-5.43],"5-14-13":[-6091.1,3710.87],"6-29-28":[-5198.68,-5.37],"6-29-29":[-4685.05,-5.8],"5-14-14":[-5370.65,-5.37],"6-29-30":[-4562.98,-7.34],"6-29-31":[-3766.53,-8.54],"5-14-15":[-5149.38,-7.34],"6-29-32":[-4270.36,-11.17],"6-29-33":[-4267.65,-12.92],"5-14-16":[-4859.21,-11.17],"6-29-34":[-4304.77,-12.74],"6-29-35":[-5036.16,-10.37],"5-14-17":[-5036.16,-10.25],"6-29-36":[-4927.2,-7.55],"6-29-37":[-5616.3,3669.89],"5-14-18":[-5655.38,3669.89],"6-29-38":[-1835.13,5523.17],"6-29-39":[-3149.73,3283.09],"5-14-19":[-3254.97,5523.17],"6-29-40":[-3378.56,1345.28],"6-29-41":[-1756.43,193.62],"5-14-20":[-3378.56,3653.33],"6-29-42":[-70.76,507.97],"6-29-43":[-11.27,487.69],"5-14-21":[-70.76,907.4],"6-29-44":[-11.15,502.01],"6-29-45":[-11.69,556.71],"5-14-22":[-14.99,1016.87],"6-29-46":[-12.81,657.33],"6-29-47":[-11.24,593.9],"5-14-23":[-15.79,1103.03],"6-29-48":[-12.87,609.26],"6-29-49":[-15.22,481.25],"5-14-24":[-19.25,738.55],"6-29-50":[-18.28,290.43],"6-29-51":[-22.81,343.35],"5-14-25":[-24.63,791.33],"6-29-52":[-28.28,328.57],"6-29-53":[-37.41,365.55],"5-14-26":[-40.85,427.93],"6-29-54":[-82.28,245.7],"6-29-55":[-48.36,222.95],"5-14-27":[-82.28,331.13],"6-29-56":[-184.27,180.06],"6-29-57":[-496.2,695.16],"5-14-28":[-496.2,721.39],"6-29-58":[-343.95,1067.53],"6-29-59":[-491.39,1825.18],"5-14-29":[-519.66,1825.18],"6-29-60":[-664.28,2484.31],"6-29-61":[-2275.16,2200.25],"5-14-30":[-2450.61,2484.31],"6-29-62":[-2669.75,2364.99],"6-29-63":[-4216.39,2744.46],"5-14-31":[-4216.39,2761.57],"6-30-0":[-683.41,733.6],"6-30-1":[-703.44,2104.03],"6-30-2":[-1390.04,936.6],"6-30-3":[-1958,1609.72],"6-30-4":[-2316.35,717.95],"6-30-5":[-1776.88,1397.15],"6-30-6":[-3459.86,559.29],"6-30-7":[-4646.45,433.78],"6-30-8":[-5124.1,458.53],"6-30-9":[-5123.08,174.74],"6-30-10":[-5282.92,106.11],"6-30-11":[-6403.12,228.76],"6-30-12":[-7162.59,294.27],"6-30-13":[-6116.46,456.57],"6-30-14":[-5551.79,564.92],"6-30-15":[-5146.8,584.49],"6-30-16":[-5033.92,471.28],"6-30-17":[-5140.65,446.09],"6-30-18":[-5034.68,490.81],"6-30-19":[-4387.03,806.41],"6-30-20":[-5194.52,204.36],"6-30-21":[-4444.26,125.4],"6-30-22":[-4421.26,-25.61],"6-30-23":[-4321.97,-25.42],"6-30-24":[-4680.88,-14.04],"6-30-25":[-5059.77,2490.71],"6-30-26":[-4874.36,2540.82],"6-30-27":[-4690.19,-2.77],"6-30-28":[-5085.57,-1.84],"6-30-29":[-4909.25,-2.28],"6-30-30":[-4430.52,-4.28],"6-30-31":[-3787.91,-5.31],"6-30-32":[-3813.24,-8.63],"6-30-33":[-4282.62,-11.24],"6-30-34":[-4055.16,-12.14],"6-30-35":[-4888.98,-9.83],"6-30-36":[-6739.12,-7.4],"6-30-37":[-6668.56,2406.1],"6-30-38":[-2535.05,2428.71],"6-30-39":[-3785.54,-0.38],"6-30-40":[-3944.08,1.26],"6-30-41":[-3640.72,1.53],"6-30-42":[-109.86,126.71],"6-30-43":[-9.48,205.26],"6-30-44":[-9.48,795.12],"6-30-45":[-7.66,480.69],"6-30-46":[-9.07,435.79],"6-30-47":[-9.84,460.48],"6-30-48":[-11.72,559.47],"6-30-49":[-14.44,443.49],"6-30-50":[-16.72,447.4],"6-30-51":[-22.37,278.21],"6-30-52":[-110.99,220.76],"6-30-53":[-173.11,114.06],"6-30-54":[-118.63,158.11],"6-30-55":[-48.98,462.53],"6-30-56":[-132.66,437.71],"6-30-57":[-419.5,576.27],"6-30-58":[-337.86,1562.01],"6-30-59":[-652.43,1824.22],"6-30-60":[-559.27,2275.03],"6-30-61":[-2146.95,2180.52],"6-30-62":[-2620.12,2328.81],"6-30-63":[-4214.89,2744.46],"6-31-0":[-632.33,642.36],"6-31-1":[-1311.87,2619.83],"5-15-0":[-1311.87,2619.83],"6-31-2":[-1670.02,1700.11],"6-31-3":[-1505.89,2250.64],"5-15-1":[-1958,2250.64],"4-7-0":[-2142.75,2619.83],"6-31-4":[-2104.87,1374.08],"6-31-5":[-1565.53,583.45],"5-15-2":[-2316.35,1397.15],"6-31-6":[-3638.82,413.34],"6-31-7":[-4686.95,1580.64],"5-15-3":[-4686.95,1580.64],"4-7-1":[-4710.07,1580.64],"3-3-0":[-4740.18,3362.09],"6-31-8":[-5042.89,577.62],"6-31-9":[-4980.95,282.12],"5-15-4":[-5124.1,577.62],"6-31-10":[-5310.1,-46.98],"6-31-11":[-5722.75,190.58],"5-15-5":[-6403.12,228.76],"4-7-2":[-6403.12,577.62],"6-31-12":[-6291.76,324],"6-31-13":[-5111.3,447.15],"5-15-6":[-7162.59,456.57],"6-31-14":[-5530.61,671.12],"6-31-15":[-5164.36,604.9],"5-15-7":[-5551.79,671.12],"4-7-3":[-7162.59,807.5],"3-3-1":[-7162.59,3889.28],"2-1-0":[-7162.59,4373.52],"6-31-16":[-4822.44,422.75],"6-31-17":[-4823.05,300.32],"5-15-8":[-5140.65,471.28],"6-31-18":[-4833.5,509.53],"6-31-19":[-4467.91,590.45],"5-15-9":[-5034.68,806.41],"4-7-4":[-6497.54,1115.44],"6-31-20":[-4946.44,146.09],"6-31-21":[-4407.4,78.7],"5-15-10":[-5194.52,204.36],"6-31-22":[-4533.97,-24.95],"6-31-23":[-5033.68,-3.53],"5-15-11":[-5033.68,-3.53],"4-7-5":[-5658.77,3697.19],"3-3-2":[-6497.54,4383.25],"6-31-24":[-5131.34,129.8],"6-31-25":[-4759.71,2495.76],"5-15-12":[-5131.34,2495.76],"6-31-26":[-4820.52,4217.93],"6-31-27":[-4834.53,1667.28],"5-15-13":[-4874.36,4217.93],"4-7-6":[-6091.1,5601.19],"6-31-28":[-5293.16,3.56],"6-31-29":[-4500.18,1.79],"5-15-14":[-5293.16,3.56],"6-31-30":[-4189.47,-0.95],"6-31-31":[-4104.28,1700.45],"5-15-15":[-4430.52,1700.45],"4-7-7":[-5370.65,1700.45],"3-3-3":[-6091.1,5601.19],"2-1-1":[-6924.66,5601.19],"1-0-0":[-10751.44,6207.28],"6-31-32":[-3510.08,1684.42],"6-31-33":[-4070.18,-8.12],"5-15-16":[-4282.62,1684.42],"6-31-34":[-3905.47,-10.22],"6-31-35":[-4170.38,-8.63],"5-15-17":[-4888.98,-8.63],"4-7-8":[-5036.16,1684.42],"6-31-36":[-6565.97,1589.27],"6-31-37":[-1812.77,4112.94],"5-15-18":[-6739.12,4112.94],"6-31-38":[-859.48,2424.67],"6-31-39":[-3743.15,104.44],"5-15-19":[-3785.54,2428.71],"4-7-9":[-6739.12,5523.17],"3-3-4":[-10287.73,5523.17],"6-31-40":[-3908.65,3.59],"6-31-41":[-3567.18,3.57],"5-15-20":[-3944.08,3.59],"6-31-42":[-397.92,76.86],"6-31-43":[-58.3,146.46],"5-15-21":[-397.92,205.26],"4-7-10":[-3944.08,3653.33],"6-31-44":[-6.17,569.71],"6-31-45":[-5.45,505.58],"5-15-22":[-9.48,795.12],"6-31-46":[-4.53,291.79],"6-31-47":[-5.48,416.99],"5-15-23":[-9.84,460.48],"4-7-11":[-15.79,1103.03],"3-3-5":[-3944.08,4305.19],"2-1-2":[-10287.73,5523.17],"6-31-48":[-132.81,589.98],"6-31-49":[-11.96,638.88],"5-15-24":[-132.81,638.88],"6-31-50":[-15.08,443],"6-31-51":[-19.15,311.46],"5-15-25":[-22.37,447.4],"4-7-12":[-132.81,791.33],"6-31-52":[-198.6,182.6],"6-31-53":[-208.92,-9.98],"5-15-26":[-208.92,220.76],"6-31-54":[-201.71,281.1],"6-31-55":[-39.77,576.62],"5-15-27":[-201.71,576.62],"4-7-13":[-208.92,576.62],"3-3-6":[-321.18,3764.34],"6-31-56":[-270.99,1365.62],"6-31-57":[-502.2,424.34],"5-15-28":[-502.2,1365.62],"6-31-58":[-502.24,1267.01],"6-31-59":[-500.79,1887.87],"5-15-29":[-652.43,1887.87],"4-7-14":[-652.43,1887.87],"6-31-60":[-838.7,2175.26],"6-31-61":[-2146.95,1987.13],"5-15-30":[-2146.95,2275.03],"6-31-62":[-2638.31,2714.87],"6-31-63":[-4214.39,2744.46],"5-15-31":[-4214.89,2744.46],"4-7-15":[-4216.39,2761.57],"3-3-7":[-4216.39,3441.15],"2-1-3":[-5094.21,4326.16],"1-0-1":[-10287.73,6095.63],"6-32-0":[-651.16,891.44],"6-32-1":[-1552.49,1948.79],"6-32-2":[-1753.91,2344.15],"6-32-3":[-1288.78,1880.89],"6-32-4":[-1721.76,2029.25],"6-32-5":[-1511.31,684.11],"6-32-6":[-2539.96,367.14],"6-32-7":[-4349.76,395.57],"6-32-8":[-4839.06,546.23],"6-32-9":[-5001.37,248.1],"6-32-10":[-5439.68,-44.47],"6-32-11":[-5724.72,87.35],"6-32-12":[-6336.83,240.44],"6-32-13":[-5142.35,415.1],"6-32-14":[-5460.52,599.34],"6-32-15":[-4689.89,568.7],"6-32-16":[-4679.1,551.43],"6-32-17":[-5583.01,291.63],"6-32-18":[-5370.29,294.32],"6-32-19":[-5027.02,321.49],"6-32-20":[-4299.38,211.56],"6-32-21":[-4681.53,90.38],"6-32-22":[-4375.93,-7.81],"6-32-23":[-4439.29,-7.65],"6-32-24":[-5208.19,200.24],"6-32-25":[-5459.67,1010.31],"6-32-26":[-4966.32,3009.32],"6-32-27":[-4803.68,2376.93],"6-32-28":[-5024,10.91],"6-32-29":[-4552.19,10.51],"6-32-30":[-4518.06,6.74],"6-32-31":[-3413.49,663.37],"6-32-32":[-3814.72,716.38],"6-32-33":[-4502.59,-4.49],"6-32-34":[-3766.35,-6.53],"6-32-35":[-5498.08,-6.02],"6-32-36":[-6062.39,2332.91],"6-32-37":[-3402.81,2916.82],"6-32-38":[-3812.19,964.29],"6-32-39":[-1204.75,182.66],"6-32-40":[-3737.48,5.45],"6-32-41":[-3492.01,6.31],"6-32-42":[-2792.42,86.86],"6-32-43":[-49.18,196.98],"6-32-44":[-5.26,309.51],"6-32-45":[-4.78,279.02],"6-32-46":[-2.44,284.12],"6-32-47":[-68.64,505.12],"6-32-48":[-161.62,554.68],"6-32-49":[-174.75,577.05],"6-32-50":[-11.84,403.02],"6-32-51":[-80.26,236.41],"6-32-52":[-241.21,84.28],"6-32-53":[-273.09,-8.31],"6-32-54":[-233.27,253.41],"6-32-55":[-129.67,539.22],"6-32-56":[-348.03,403.5],"6-32-57":[-470.07,449.89],"6-32-58":[-496.76,1290.61],"6-32-59":[-472.31,2685.38],"6-32-60":[-800.22,2381.84],"6-32-61":[-1910.19,1985.53],"6-32-62":[-2730.3,2244.93],"6-32-63":[-4214.39,2744.46],"6-33-0":[-350.03,366.89],"6-33-1":[-1236.85,1500.73],"5-16-0":[-1552.49,1948.79],"6-33-2":[-1749.59,1693.18],"6-33-3":[-1626.27,2653.23],"5-16-1":[-1753.91,2653.23],"6-33-4":[-2555.32,4704.79],"6-33-5":[-1385.22,1009.47],"5-16-2":[-2555.32,4704.79],"6-33-6":[-1100.12,819.86],"6-33-7":[-4304.38,557.56],"5-16-3":[-4349.76,819.86],"6-33-8":[-4717.53,444.35],"6-33-9":[-5014.69,366.68],"5-16-4":[-5014.69,546.23],"6-33-10":[-5580.11,-42.25],"6-33-11":[-6310.58,-45.96],"5-16-5":[-6310.58,87.35],"6-33-12":[-5887.78,205.42],"6-33-13":[-5096.82,323.91],"5-16-6":[-6336.83,415.1],"6-33-14":[-5141.14,604.67],"6-33-15":[-5045.87,613.05],"5-16-7":[-5460.52,613.05],"6-33-16":[-4428.48,486.54],"6-33-17":[-5579.29,356.67],"5-16-8":[-5583.01,551.43],"6-33-18":[-5095.04,611.43],"6-33-19":[-4956.22,1256.4],"5-16-9":[-5370.29,1256.4],"6-33-20":[-4459.43,703.65],"6-33-21":[-4536.16,133.72],"5-16-10":[-4681.53,703.65],"6-33-22":[-4327.34,-9.17],"6-33-23":[-5710.56,-15.6],"5-16-11":[-5710.56,-7.65],"6-33-24":[-4728.77,38.89],"6-33-25":[-5255.71,-5.73],"5-16-12":[-5459.67,1010.31],"6-33-26":[-5088.65,2458.87],"6-33-27":[-5143.3,2108.97],"5-16-13":[-5143.3,3009.32],"6-33-28":[-5077.06,2165.37],"6-33-29":[-4768.23,21.34],"5-16-14":[-5077.06,2165.37],"6-33-30":[-4621.04,580.04],"6-33-31":[-3768.75,9.28],"5-16-15":[-4621.04,663.37],"6-33-32":[-4778.61,4.83],"6-33-33":[-3866.48,493.04],"5-16-16":[-4778.61,716.38],"6-33-34":[-3463.64,-2.74],"6-33-35":[-5264.94,2112.86],"5-16-17":[-5498.08,2112.86],"6-33-36":[-1265.04,2015.96],"6-33-37":[-5834.04,2371.84],"5-16-18":[-6062.39,2916.82],"6-33-38":[-5561.97,2.74],"6-33-39":[-4850.21,12.09],"5-16-19":[-5561.97,964.29],"6-33-40":[-3721.53,9.43],"6-33-41":[-3446.02,10.75],"5-16-20":[-3737.48,10.75],"6-33-42":[-2926.21,85.16],"6-33-43":[-6.76,670.08],"5-16-21":[-2926.21,670.08],"6-33-44":[-2.13,1191.3],"6-33-45":[-1.46,564.53],"5-16-22":[-5.26,1191.3],"6-33-46":[-0.15,347.1],"6-33-47":[-135.47,473.44],"5-16-23":[-135.47,505.12],"6-33-48":[-256.34,566.65],"6-33-49":[-167.37,570.37],"5-16-24":[-256.34,577.05],"6-33-50":[-7.73,310.25],"6-33-51":[-187.94,187.42],"5-16-25":[-187.94,403.02],"6-33-52":[-241.18,-3.66],"6-33-53":[-285.94,-5.75],"5-16-26":[-285.94,84.28],"6-33-54":[-219.87,399.59],"6-33-55":[-497.41,430.98],"5-16-27":[-497.41,539.22],"6-33-56":[-420.6,576.62],"6-33-57":[-736.8,864.62],"5-16-28":[-736.8,864.62],"6-33-58":[-774.19,1304.63],"6-33-59":[-793.68,4721.94],"5-16-29":[-793.68,4721.94],"6-33-60":[-800.68,2555.4],"6-33-61":[-1816.41,1732.44],"5-16-30":[-1910.19,2555.4],"6-33-62":[-2782.86,2245.57],"6-33-63":[-4214.89,2744.47],"5-16-31":[-4214.89,2744.47],"6-34-0":[-454.83,542.8],"6-34-1":[-1478.32,428.27],"6-34-2":[-1866.74,1823.83],"6-34-3":[-2047.48,2270.95],"6-34-4":[-2606.71,1556.84],"6-34-5":[-2627.94,1913.68],"6-34-6":[-1191.1,1056.55],"6-34-7":[-4260.54,570.75],"6-34-8":[-4632.93,613.97],"6-34-9":[-4928.09,433.17],"6-34-10":[-5263.71,-38.64],"6-34-11":[-6036.97,-44.35],"6-34-12":[-6155.38,171.79],"6-34-13":[-5688.04,145.12],"6-34-14":[-4849.44,594.92],"6-34-15":[-4302.63,614.36],"6-34-16":[-4708.92,432.14],"6-34-17":[-5187.86,436.84],"6-34-18":[-4796.58,1652.42],"6-34-19":[-4753.59,2004.7],"6-34-20":[-4390.66,358.2],"6-34-21":[-4342.5,76.45],"6-34-22":[-5078.47,86.32],"6-34-23":[-4795.27,678.56],"6-34-24":[-4711.24,565.42],"6-34-25":[-4864.62,19.57],"6-34-26":[-5307.29,735.54],"6-34-27":[-5583.4,729.46],"6-34-28":[-5386.72,3818.31],"6-34-29":[-5922.69,1199.76],"6-34-30":[-5526.33,213.98],"6-34-31":[-4419.31,21.13],"6-34-32":[-4679.46,20.08],"6-34-33":[-4932.19,93.97],"6-34-34":[-4711.18,1158.76],"6-34-35":[-3210.82,3734.31],"6-34-36":[-3366.76,691.45],"6-34-37":[-1999.35,687.54],"6-34-38":[-6807.88,9.8],"6-34-39":[-4726.82,503.41],"6-34-40":[-3500.23,611.32],"6-34-41":[-344.47,88.56],"6-34-42":[-83.1,82.28],"6-34-43":[-41.18,336.97],"6-34-44":[1.55,1938.99],"6-34-45":[1.48,1607.82],"6-34-46":[1.54,428.39],"6-34-47":[-71.85,420.82],"6-34-48":[-80.29,600.77],"6-34-49":[-1.02,564.78],"6-34-50":[-56.04,146.55],"6-34-51":[-187.94,168.79],"6-34-52":[-252.94,-1.44],"6-34-53":[-311.22,-3.74],"6-34-54":[-313.66,517.83],"6-34-55":[-438.4,576.97],"6-34-56":[-237.34,538.73],"6-34-57":[-161.05,1030.58],"6-34-58":[-811.08,1906.63],"6-34-59":[-838.51,1732.84],"6-34-60":[-783.24,2250.43],"6-34-61":[-1769.21,1753.86],"6-34-62":[-2783.53,2251.13],"6-34-63":[-4219.24,2745.47],"6-35-0":[-459.62,452.64],"6-35-1":[-1463.64,603.08],"5-17-0":[-1478.32,603.08],"6-35-2":[-1858.56,1923.59],"6-35-3":[-2344.57,2313.91],"5-17-1":[-2344.57,2313.91],"4-8-0":[-2344.57,2653.23],"6-35-4":[-2871.64,2252.73],"6-35-5":[-2571.35,1712.44],"5-17-2":[-2871.64,2252.73],"6-35-6":[-1027.03,1559.44],"6-35-7":[-4207.3,272.32],"5-17-3":[-4260.54,1559.44],"4-8-1":[-4349.76,4704.79],"6-35-8":[-4447.9,185.61],"6-35-9":[-5050.87,184.52],"5-17-4":[-5050.87,613.97],"6-35-10":[-5719.26,293.27],"6-35-11":[-5529.33,81.87],"5-17-5":[-6036.97,293.27],"4-8-2":[-6310.58,613.97],"6-35-12":[-5305.72,123.7],"6-35-13":[-4672.46,181.36],"5-17-6":[-6155.38,181.36],"6-35-14":[-4394.81,536.17],"6-35-15":[-4785.62,651.7],"5-17-7":[-4849.44,651.7],"4-8-3":[-6336.83,651.7],"6-35-16":[-5189.33,701.76],"6-35-17":[-5118.02,951.43],"5-17-8":[-5189.33,951.43],"6-35-18":[-4407.59,1713.99],"6-35-19":[-4331.47,1476.72],"5-17-9":[-4796.58,2004.7],"4-8-4":[-5583.01,2004.7],"6-35-20":[-4392,1834.6],"6-35-21":[-4783.03,28.94],"5-17-10":[-4783.03,1834.6],"6-35-22":[-4621.18,840.08],"6-35-23":[-4947.87,293.76],"5-17-11":[-5078.47,840.08],"4-8-5":[-5710.56,1834.6],"6-35-24":[-5282.94,1104.62],"6-35-25":[-4816.41,14.26],"5-17-12":[-5282.94,1104.62],"6-35-26":[-5347.3,8.26],"6-35-27":[-6488.32,357.63],"5-17-13":[-6488.32,735.54],"4-8-6":[-6488.32,3009.32],"6-35-28":[-6906.46,1960.73],"6-35-29":[-6336.37,4007.75],"5-17-14":[-6906.46,4007.75],"6-35-30":[-4440.69,4388.45],"6-35-31":[-4459.71,6213.75],"5-17-15":[-5526.33,6213.75],"4-8-7":[-6906.46,6213.75],"6-35-32":[-5218.74,6286.78],"6-35-33":[-5042.7,4458.62],"5-17-16":[-5218.74,6286.78],"6-35-34":[-4708.73,4118.74],"6-35-35":[-4012.1,1896.73],"5-17-17":[-4711.18,4118.74],"4-8-8":[-5498.08,6286.78],"6-35-36":[-3818.41,288.63],"6-35-37":[-2951.15,21.77],"5-17-18":[-3818.41,691.45],"6-35-38":[-7357.49,22.14],"6-35-39":[-4359.2,1048.6],"5-17-19":[-7357.49,1048.6],"4-8-9":[-7357.49,2916.82],"6-35-40":[-1553.17,257.76],"6-35-41":[-946.57,470.08],"5-17-20":[-3500.23,611.32],"6-35-42":[-1053.62,27.72],"6-35-43":[-866.11,1091.31],"5-17-21":[-1053.62,1091.31],"4-8-10":[-3737.48,1091.31],"6-35-44":[-69.43,1392.94],"6-35-45":[4.72,1677.79],"5-17-22":[-69.43,1938.99],"6-35-46":[4.86,939.44],"6-35-47":[-106.62,672.4],"5-17-23":[-106.62,939.44],"4-8-11":[-135.47,1938.99],"6-35-48":[-33.74,618.24],"6-35-49":[-3.08,519.17],"5-17-24":[-80.29,618.24],"6-35-50":[-125.18,177.05],"6-35-51":[-247.54,111.71],"5-17-25":[-247.54,177.05],"4-8-12":[-256.34,618.24],"6-35-52":[-237.66,68.63],"6-35-53":[-245.4,250.26],"5-17-26":[-311.22,250.26],"6-35-54":[-548.44,169.55],"6-35-55":[-478.9,182.61],"5-17-27":[-548.44,576.97],"4-8-13":[-548.44,576.97],"6-35-56":[-197.41,197.49],"6-35-57":[-850.85,1559.44],"5-17-28":[-850.85,1559.44],"6-35-58":[-952.94,1784.85],"6-35-59":[-708.27,2036.4],"5-17-29":[-952.94,2036.4],"4-8-14":[-952.94,4721.94],"6-35-60":[-528.88,2299.86],"6-35-61":[-1592.98,1971.3],"5-17-30":[-1769.21,2299.86],"6-35-62":[-2784.06,2260.72],"6-35-63":[-4215.39,2745.47],"5-17-31":[-4219.24,2745.47],"4-8-15":[-4219.24,2745.47],"6-36-0":[-489.79,822.76],"6-36-1":[-1366.27,1154.63],"6-36-2":[-1683.51,2230.75],"6-36-3":[-1884.8,2258.08],"6-36-4":[-2367.54,1817.36],"6-36-5":[-2385.15,2118.71],"6-36-6":[-1364.35,1862.67],"6-36-7":[-4087.74,611.89],"6-36-8":[-4262.94,282.83],"6-36-9":[-5089.76,575.77],"6-36-10":[-5139.84,428.02],"6-36-11":[-5274.38,430.05],"6-36-12":[-4997.51,408.97],"6-36-13":[-4177.36,406.33],"6-36-14":[-4221.39,610.85],"6-36-15":[-4309.16,575.3],"6-36-16":[-5063.08,700.02],"6-36-17":[-4764.18,927.51],"6-36-18":[-4804.48,1201.61],"6-36-19":[-4436.54,191.41],"6-36-20":[-4791.15,-36.24],"6-36-21":[-4697.14,-34.13],"6-36-22":[-4820.37,29.15],"6-36-23":[-5032.56,55.76],"6-36-24":[-6376.98,1947.58],"6-36-25":[-5043.08,2231.33],"6-36-26":[-5556.63,807.13],"6-36-27":[-6025.05,5673.66],"6-36-28":[-2187.54,6657.51],"6-36-29":[-180.23,4957.44],"6-36-30":[-37.47,5414.88],"6-36-31":[-328.06,5809.48],"6-36-32":[-623.84,5906.18],"6-36-33":[-4269.78,5319.85],"6-36-34":[-4417.62,5607.45],"6-36-35":[-4208.62,6754.44],"6-36-36":[-4176.44,5914.69],"6-36-37":[-4288.99,824.13],"6-36-38":[-6848.89,2167.33],"6-36-39":[-6923.15,1828.57],"6-36-40":[-4947.98,411.38],"6-36-41":[-5170.05,422.7],"6-36-42":[-5116.4,27.55],"6-36-43":[-3615.81,26.75],"6-36-44":[-1006.26,156.63],"6-36-45":[-89.15,1138.15],"6-36-46":[-54.04,900.59],"6-36-47":[-201.99,692.08],"6-36-48":[7.17,548.17],"6-36-49":[4.69,580.92],"6-36-50":[-48.23,396.38],"6-36-51":[-242.98,388.95],"6-36-52":[-185.02,401.03],"6-36-53":[-180.3,428.06],"6-36-54":[-562.17,511.81],"6-36-55":[-206.42,273.04],"6-36-56":[-156.47,519.49],"6-36-57":[-1062.12,1733.71],"6-36-58":[-1087.43,1801.07],"6-36-59":[-759.94,1748.06],"6-36-60":[-275.14,2158.52],"6-36-61":[-1442.57,2325.18],"6-36-62":[-2787.79,2281.25],"6-36-63":[-4215.39,2745.47],"6-37-0":[-529.7,950.33],"6-37-1":[-1610.79,1129.6],"5-18-0":[-1610.79,1154.63],"6-37-2":[-1851.99,2437.47],"6-37-3":[-1683.51,2148.92],"5-18-1":[-1884.8,2437.47],"6-37-4":[-1556.76,1260.24],"6-37-5":[-1695.95,1184.79],"5-18-2":[-2385.15,2118.71],"6-37-6":[-1120.23,1808.19],"6-37-7":[-3519.71,1101.49],"5-18-3":[-4087.74,1862.67],"6-37-8":[-4147.78,282.61],"6-37-9":[-4780.41,642.27],"5-18-4":[-5089.76,642.27],"6-37-10":[-5266.36,648.16],"6-37-11":[-5260.84,410.19],"5-18-5":[-5274.38,648.16],"6-37-12":[-4472.73,1084.61],"6-37-13":[-3802.59,2661.91],"5-18-6":[-4997.51,2661.91],"6-37-14":[-1764.59,3481.08],"6-37-15":[-3424.87,3901.29],"5-18-7":[-4309.16,3901.29],"6-37-16":[-3865.32,1597.57],"6-37-17":[-4566.1,1241.62],"5-18-8":[-5063.08,1597.57],"6-37-18":[-5188.07,1352.53],"6-37-19":[-5441.31,-10.6],"5-18-9":[-5441.31,1352.53],"6-37-20":[-5453.77,-42.73],"6-37-21":[-4766.46,-43.8],"5-18-10":[-5453.77,-34.13],"6-37-22":[-5001.2,-41.08],"6-37-23":[-5070.1,26.27],"5-18-11":[-5070.1,55.76],"6-37-24":[-6091.51,1217.95],"6-37-25":[-7536.97,2330.69],"5-18-12":[-7536.97,2330.69],"6-37-26":[-7556.84,5459.75],"6-37-27":[-346.06,5421.57],"5-18-13":[-7556.84,5673.66],"6-37-28":[-49.02,5700.22],"6-37-29":[-23.52,3844.52],"5-18-14":[-2187.54,6657.51],"6-37-30":[-114.49,5315.89],"6-37-31":[-8.04,3836.77],"5-18-15":[-328.06,5809.48],"6-37-32":[117.06,3769.75],"6-37-33":[-136.42,5266.88],"5-18-16":[-4269.78,5906.18],"6-37-34":[-34.08,3760.52],"6-37-35":[-2679.16,5683.59],"5-18-17":[-4417.62,6754.44],"6-37-36":[-4297.04,5564.58],"6-37-37":[-4632.8,5547.75],"5-18-18":[-4632.8,5914.69],"6-37-38":[-5938.07,2250.67],"6-37-39":[-4564.93,1130.92],"5-18-19":[-6923.15,2250.67],"6-37-40":[-5547.39,781.66],"6-37-41":[-5471.37,37.5],"5-18-20":[-5547.39,781.66],"6-37-42":[-5342.72,34.42],"6-37-43":[-5384.9,32.14],"5-18-21":[-5384.9,34.42],"6-37-44":[-4916.35,34.46],"6-37-45":[-3432.19,1376.54],"5-18-22":[-4916.35,1376.54],"6-37-46":[-122.33,1199.69],"6-37-47":[-70.31,1528.77],"5-18-23":[-201.99,1528.77],"6-37-48":[-68.87,4026.29],"6-37-49":[-269.44,3587.09],"5-18-24":[-269.44,4026.29],"6-37-50":[-96.77,2789.91],"6-37-51":[-222.29,1172.63],"5-18-25":[-242.98,2789.91],"6-37-52":[-5.66,395.16],"6-37-53":[-1.67,603.79],"5-18-26":[-185.02,603.79],"6-37-54":[-542.06,589.74],"6-37-55":[-65.58,231.36],"5-18-27":[-562.17,589.74],"6-37-56":[-96.03,1105.5],"6-37-57":[-923.87,1832.24],"5-18-28":[-1062.12,1832.24],"6-37-58":[-1032.37,1660.76],"6-37-59":[-1613.33,1225.22],"5-18-29":[-1613.33,1801.07],"6-37-60":[-479.28,2166.62],"6-37-61":[-1311.15,2452.46],"5-18-30":[-1442.57,2452.46],"6-37-62":[-2784.78,2321.18],"6-37-63":[-4220.26,2745.47],"5-18-31":[-4220.26,2745.47],"6-38-0":[-519.6,681.02],"6-38-1":[-2198.47,1253.78],"6-38-2":[-2189.44,2116.63],"6-38-3":[-1281.64,2052.81],"6-38-4":[-1351.54,1194.93],"6-38-5":[-1749.15,1667.87],"6-38-6":[-1095.72,1736.55],"6-38-7":[-1549.9,2969.55],"6-38-8":[-3766.38,332.82],"6-38-9":[-4402.36,633.8],"6-38-10":[-4964.76,658.27],"6-38-11":[-5005.56,464.64],"6-38-12":[-4494.31,1846.61],"6-38-13":[-982.8,2481.75],"6-38-14":[-30.94,2821.86],"6-38-15":[-404.7,3452.08],"6-38-16":[-470.67,2451.53],"6-38-17":[-481.26,3626.15],"6-38-18":[-86.89,4659.39],"6-38-19":[-8228.12,4831.22],"6-38-20":[-6381.71,4956.12],"6-38-21":[-6742.27,5115.31],"6-38-22":[-7913.93,2168.25],"6-38-23":[-7969.31,2607.62],"6-38-24":[-8050.34,1152.74],"6-38-25":[-8983.51,5763.75],"6-38-26":[-1820.84,6405.39],"6-38-27":[-65.4,6266.34],"6-38-28":[-114.23,4925.73],"6-38-29":[-32.53,5356.84],"6-38-30":[-54.2,3882.23],"6-38-31":[-58.3,839.2],"6-38-32":[68.16,826.19],"6-38-33":[63.39,3838.4],"6-38-34":[43.63,5193.89],"6-38-35":[-82.22,4760.78],"6-38-36":[-5251.11,6360.34],"6-38-37":[-4600.41,6449.41],"6-38-38":[-4723.57,5847.77],"6-38-39":[-5617.49,1104.68],"6-38-40":[-5800.95,2677.33],"6-38-41":[-5756.35,2243.25],"6-38-42":[-5801.58,5156.32],"6-38-43":[-5646.47,5062.63],"6-38-44":[-5456.02,5023.3],"6-38-45":[-4488.42,4724.4],"6-38-46":[-2637.57,3766.16],"6-38-47":[-218.88,2585.5],"6-38-48":[-268.93,3553.09],"6-38-49":[-290.78,3257.62],"6-38-50":[-72.84,2695.15],"6-38-51":[-106.71,1949.61],"6-38-52":[-22.58,448.63],"6-38-53":[-345.6,645.25],"6-38-54":[-425.69,601.83],"6-38-55":[-34.96,322.36],"6-38-56":[-362.66,2784.58],"6-38-57":[-1715.35,1767.29],"6-38-58":[-1598.79,1790.22],"6-38-59":[-1058.75,1401.52],"6-38-60":[-492.06,2004.84],"6-38-61":[-1191,2082.48],"6-38-62":[-2626.37,2346.02],"6-38-63":[-4248.26,2745.47],"6-39-0":[-540.35,1101.15],"6-39-1":[-2345.14,1569.05],"5-19-0":[-2345.14,1569.05],"6-39-2":[-2346.92,1723.34],"6-39-3":[-1117.86,1651.25],"5-19-1":[-2346.92,2116.63],"4-9-0":[-2346.92,2437.47],"6-39-4":[-1326.57,1535.69],"6-39-5":[-1071.1,1564.82],"5-19-2":[-1749.15,1667.87],"6-39-6":[-1194.75,2245.82],"6-39-7":[-1603.15,2751.69],"5-19-3":[-1603.15,2969.55],"4-9-1":[-4087.74,2969.55],"3-4-0":[-4349.76,4704.79],"6-39-8":[-3410.04,1942.94],"6-39-9":[-4259.66,781.05],"5-19-4":[-4402.36,1942.94],"6-39-10":[-4838.54,360.51],"6-39-11":[-4796.57,596.29],"5-19-5":[-5005.56,658.27],"4-9-2":[-5274.38,1942.94],"6-39-12":[-1992.23,2555.83],"6-39-13":[-110,1077.82],"5-19-6":[-4494.31,2555.83],"6-39-14":[-97.91,1073.14],"6-39-15":[-70.35,1579.36],"5-19-7":[-404.7,3452.08],"4-9-3":[-4997.51,3901.29],"3-4-1":[-6336.83,3901.29],"6-39-16":[-56.2,1927.38],"6-39-17":[-75.76,1953.98],"5-19-8":[-481.26,3626.15],"6-39-18":[-85.75,3926.12],"6-39-19":[-95.04,5824.32],"5-19-9":[-8228.12,5824.32],"4-9-4":[-8228.12,5824.32],"6-39-20":[-101.46,6819.12],"6-39-21":[-103.88,6238.9],"5-19-10":[-6742.27,6819.12],"6-39-22":[-105.29,6823.9],"6-39-23":[-347.5,6678.96],"5-19-11":[-7969.31,6823.9],"4-9-5":[-7969.31,6823.9],"3-4-2":[-8228.12,6823.9],"6-39-24":[-1003.53,6134.25],"6-39-25":[-603.21,6488.27],"5-19-12":[-8983.51,6488.27],"6-39-26":[-133.8,6313.82],"6-39-27":[-89.53,5209.77],"5-19-13":[-1820.84,6405.39],"4-9-6":[-8983.51,6488.27],"6-39-28":[-34.01,3550.67],"6-39-29":[-4.7,404.14],"5-19-14":[-114.23,5356.84],"6-39-30":[-66.26,759.95],"6-39-31":[-103.64,984.95],"5-19-15":[-103.64,3882.23],"4-9-7":[-2187.54,6657.51],"3-4-3":[-8983.51,6657.51],"6-39-32":[-0.58,914.93],"6-39-33":[34.67,648.95],"5-19-16":[-0.58,3838.4],"6-39-34":[29.78,308.24],"6-39-35":[-1861.76,3455.66],"5-19-17":[-1861.76,5193.89],"4-9-8":[-4417.62,6754.44],"6-39-36":[-5294.02,5347.83],"6-39-37":[-5290.9,6455.95],"5-19-18":[-5294.02,6455.95],"6-39-38":[-8591.11,6600.28],"6-39-39":[-8438.23,6222.25],"5-19-19":[-8591.11,6600.28],"4-9-9":[-8591.11,6600.28],"3-4-4":[-8591.11,6754.44],"6-39-40":[-5981.36,6775.96],"6-39-41":[-6284.61,6919.9],"5-19-20":[-6284.61,6919.9],"6-39-42":[-5637.46,6300.89],"6-39-43":[-5662.35,6969.13],"5-19-21":[-5801.58,6969.13],"4-9-10":[-6284.61,6969.13],"6-39-44":[-5728.78,5888.33],"6-39-45":[-5031.43,3998.13],"5-19-22":[-5728.78,5888.33],"6-39-46":[-3807.89,2022.28],"6-39-47":[-332.14,1957.39],"5-19-23":[-3807.89,3766.16],"4-9-11":[-5728.78,5888.33],"3-4-5":[-6284.61,6969.13],"6-39-48":[-175.48,1477.25],"6-39-49":[-384.07,1097.15],"5-19-24":[-384.07,3553.09],"6-39-50":[-1.5,1051.93],"6-39-51":[-63.31,2581.84],"5-19-25":[-106.71,2695.15],"4-9-12":[-384.07,4026.29],"6-39-52":[-197.52,578.19],"6-39-53":[-600.93,341.52],"5-19-26":[-600.93,645.25],"6-39-54":[-718.65,797.88],"6-39-55":[-24.6,1701.66],"5-19-27":[-718.65,1701.66],"4-9-13":[-718.65,1701.66],"3-4-6":[-718.65,4026.29],"6-39-56":[-498.94,2876.77],"6-39-57":[-2351.44,2323.88],"5-19-28":[-2351.44,2876.77],"6-39-58":[-2355.6,2011.29],"6-39-59":[-1040.24,1401.52],"5-19-29":[-2355.6,2011.29],"4-9-14":[-2355.6,2876.77],"6-39-60":[-450.15,1746.17],"6-39-61":[-1380.02,1850.39],"5-19-30":[-1380.02,2082.48],"6-39-62":[-2491.33,2348.16],"6-39-63":[-4221.26,2745.47],"5-19-31":[-4248.26,2745.47],"4-9-15":[-4248.26,2745.47],"3-4-7":[-4248.26,4721.94],"6-40-0":[-518.26,955.16],"6-40-1":[-1903.37,2049.21],"6-40-2":[-2397.96,1837.18],"6-40-3":[-1139.43,1301.31],"6-40-4":[-1317.34,1474.89],"6-40-5":[-852.66,1902.88],"6-40-6":[-1199.74,1790.09],"6-40-7":[-1039.02,2087.2],"6-40-8":[-1484.99,2121.08],"6-40-9":[-4113.48,1148.56],"6-40-10":[-5256.25,1032.11],"6-40-11":[-5559.15,935.94],"6-40-12":[-4034.62,1017.96],"6-40-13":[-239.87,1031.68],"6-40-14":[-129.01,1255.33],"6-40-15":[-156.96,787.13],"6-40-16":[-112.19,1095.82],"6-40-17":[-149.28,1612.57],"6-40-18":[-82.04,560.77],"6-40-19":[-88.7,797.37],"6-40-20":[-92.93,2767.12],"6-40-21":[-98.06,4454.06],"6-40-22":[-101.84,6008.42],"6-40-23":[-104.68,6321.87],"6-40-24":[-138.65,5950.05],"6-40-25":[-141.12,5674.19],"6-40-26":[-90.28,5257.92],"6-40-27":[-82.71,249.83],"6-40-28":[-60.97,2718.19],"6-40-29":[-37.5,2385.74],"6-40-30":[-52.83,2826.62],"6-40-31":[-121.52,2785.87],"6-40-32":[-10.01,2582.86],"6-40-33":[7.09,2809.61],"6-40-34":[-11.96,2317.75],"6-40-35":[-1931.5,2634.17],"6-40-36":[-5900.26,415.46],"6-40-37":[-5292.46,5469.94],"6-40-38":[-8473.44,5778.21],"6-40-39":[-8765.31,6050.05],"6-40-40":[-6184.48,6388.87],"6-40-41":[-6021.8,6039.42],"6-40-42":[-6469.31,4549.07],"6-40-43":[-5770.41,2816.12],"6-40-44":[-5499.84,812.73],"6-40-45":[-5107.82,598.59],"6-40-46":[-4907.4,1675.56],"6-40-47":[-1909.77,1125.83],"6-40-48":[-144.12,739.39],"6-40-49":[-415.2,1230.12],"6-40-50":[9.92,1016.65],"6-40-51":[-12.01,1141.97],"6-40-52":[-177.35,907.17],"6-40-53":[-969.23,971.12],"6-40-54":[-709.63,1167.51],"6-40-55":[-1316.7,2130.8],"6-40-56":[-1953,2245.41],"6-40-57":[-2399.4,2040.57],"6-40-58":[-2406.73,2090.43],"6-40-59":[-957.04,1300.57],"6-40-60":[-820.36,1398.5],"6-40-61":[-1488.61,1801.27],"6-40-62":[-2390.21,2344.27],"6-40-63":[-4215.39,2745.47],"6-41-0":[-375.14,788.95],"6-41-1":[-626.85,1980.15],"5-20-0":[-1903.37,2049.21],"6-41-2":[-2305.3,951.78],"6-41-3":[-1106.51,1019.58],"5-20-1":[-2397.96,1837.18],"6-41-4":[-897.08,1639.31],"6-41-5":[-1223.78,1899.16],"5-20-2":[-1317.34,1902.88],"6-41-6":[-1257.9,2841.54],"6-41-7":[-1237.22,3005.49],"5-20-3":[-1257.9,3005.49],"6-41-8":[-1400.73,2174.82],"6-41-9":[-4875.59,2640.33],"5-20-4":[-4875.59,2640.33],"6-41-10":[-4863.8,1491.48],"6-41-11":[-4557.28,1587.28],"5-20-5":[-5559.15,1587.28],"6-41-12":[-4321.84,864.36],"6-41-13":[-562.25,1005.83],"5-20-6":[-4321.84,1031.68],"6-41-14":[-181.17,588],"6-41-15":[-141.59,347.02],"5-20-7":[-181.17,1255.33],"6-41-16":[-162.09,265.73],"6-41-17":[-160.53,167.98],"5-20-8":[-162.09,1612.57],"6-41-18":[-71.61,1130.86],"6-41-19":[-78.01,364.32],"5-20-9":[-88.7,1130.86],"6-41-20":[-85.81,1807.61],"6-41-21":[-94.07,1879.15],"5-20-10":[-98.06,4454.06],"6-41-22":[-102.75,1192.45],"6-41-23":[-105.57,2546.24],"5-20-11":[-105.57,6321.87],"6-41-24":[-129.54,4079.61],"6-41-25":[-129.48,4284.46],"5-20-12":[-141.12,5950.05],"6-41-26":[-90.4,875.94],"6-41-27":[-83.95,666.67],"5-20-13":[-90.4,5257.92],"6-41-28":[-92.41,2565.59],"6-41-29":[-92.52,2449.21],"5-20-14":[-92.52,2718.19],"6-41-30":[4.52,2659.72],"6-41-31":[-1083.88,2129.57],"5-20-15":[-1083.88,2826.62],"6-41-32":[-35.4,2040.48],"6-41-33":[-58.32,2642.7],"5-20-16":[-58.32,2809.61],"6-41-34":[-21.58,2230.21],"6-41-35":[-1469.01,2467.61],"5-20-17":[-1931.5,2634.17],"6-41-36":[-4732.86,684.67],"6-41-37":[-4486.55,910.63],"5-20-18":[-5900.26,5469.94],"6-41-38":[-7810.98,4327.46],"6-41-39":[-8307.1,4098.61],"5-20-19":[-8765.31,6050.05],"6-41-40":[-6255.3,2622.25],"6-41-41":[-6370.08,1259.46],"5-20-20":[-6370.08,6388.87],"6-41-42":[-6091.27,1956.16],"6-41-43":[-5359.24,1847.62],"5-20-21":[-6469.31,4549.07],"6-41-44":[-5477.52,370.32],"6-41-45":[-5478.14,1242.87],"5-20-22":[-5499.84,1242.87],"6-41-46":[-5151.26,172.48],"6-41-47":[-3392.7,258.78],"5-20-23":[-5151.26,1675.56],"6-41-48":[-137.1,330.93],"6-41-49":[-460.55,546.49],"5-20-24":[-460.55,1230.12],"6-41-50":[10.24,988.83],"6-41-51":[-147.13,987.97],"5-20-25":[-147.13,1141.97],"6-41-52":[-427.03,1511.26],"6-41-53":[-750.68,1408.43],"5-20-26":[-969.23,1511.26],"6-41-54":[-589.21,2255.29],"6-41-55":[-772.02,2099.32],"5-20-27":[-1316.7,2255.29],"6-41-56":[-2123.37,2890.49],"6-41-57":[-2314.58,2528.76],"5-20-28":[-2399.4,2890.49],"6-41-58":[-2174.37,1987.4],"6-41-59":[-704.38,1390.38],"5-20-29":[-2406.73,2090.43],"6-41-60":[-1053.08,1209.84],"6-41-61":[-1736.3,967.78],"5-20-30":[-1736.3,1801.27],"6-41-62":[-2104.34,2332.43],"6-41-63":[-4222.3,2745.47],"5-20-31":[-4222.3,2745.47],"6-42-0":[-453.13,803.72],"6-42-1":[-1912.63,1447.17],"6-42-2":[-2173.89,636.09],"6-42-3":[-1352.22,1412.39],"6-42-4":[-879.27,1850.85],"6-42-5":[-1795.07,1425.68],"6-42-6":[-1103.4,1254.23],"6-42-7":[-613.53,109.47],"6-42-8":[-1048.58,2037.53],"6-42-9":[-4655.1,2218.59],"6-42-10":[-5197,19.12],"6-42-11":[-4779.19,1027.48],"6-42-12":[-4818.14,846.11],"6-42-13":[-1704.28,704.1],"6-42-14":[-1339.29,560.68],"6-42-15":[-2117.74,626.18],"6-42-16":[-2434.12,12.82],"6-42-17":[-97.7,9.64],"6-42-18":[-63.96,727.01],"6-42-19":[-70.71,146.41],"6-42-20":[-79.19,153.45],"6-42-21":[-92.99,121.66],"6-42-22":[-102.26,227.97],"6-42-23":[-104.51,246.54],"6-42-24":[-109.89,620.33],"6-42-25":[-127.72,1291.8],"6-42-26":[-127.8,1415.28],"6-42-27":[-108.65,1174.77],"6-42-28":[-95.38,906.03],"6-42-29":[-54.23,2236.77],"6-42-30":[-10.46,2551.06],"6-42-31":[-8.06,1982.48],"6-42-32":[-47.66,1810.47],"6-42-33":[-73.31,2410.43],"6-42-34":[-221.29,2194.7],"6-42-35":[-2087.24,851],"6-42-36":[-3955.53,1044.76],"6-42-37":[-6015.39,1316.28],"6-42-38":[-7426.7,1325.79],"6-42-39":[-6458.04,644.34],"6-42-40":[-6448.9,249.8],"6-42-41":[-7561.67,233.97],"6-42-42":[-7274.89,142.11],"6-42-43":[-6028.69,159.46],"6-42-44":[-5656.3,171.01],"6-42-45":[-5488.93,773.01],"6-42-46":[-5388.86,27.54],"6-42-47":[-4682.72,24.63],"6-42-48":[-546.32,617.18],"6-42-49":[-1069.25,540.69],"6-42-50":[-212.17,710.18],"6-42-51":[-710.71,831.11],"6-42-52":[-2466.84,974.47],"6-42-53":[-2642.04,41.77],"6-42-54":[-2230.11,2109.78],"6-42-55":[-1447.8,2069.8],"6-42-56":[-1941.74,269.27],"6-42-57":[-1984.8,1250.11],"6-42-58":[-1167.28,1211.47],"6-42-59":[-877.97,1082.45],"6-42-60":[-1133.93,1364.36],"6-42-61":[-1831.57,889.65],"6-42-62":[-2119.05,2326.44],"6-42-63":[-4223.29,2745.48],"6-43-0":[-435.12,768.15],"6-43-1":[-1633.64,761.78],"5-21-0":[-1912.63,1447.17],"6-43-2":[-1955.14,1359.43],"6-43-3":[-1586.09,1941.41],"5-21-1":[-2173.89,1941.41],"4-10-0":[-2397.96,2049.21],"6-43-4":[-843.7,2238.22],"6-43-5":[-674.96,1021.33],"5-21-2":[-1795.07,2238.22],"6-43-6":[-944.44,56.07],"6-43-7":[-951.56,55.35],"5-21-3":[-1103.4,1254.23],"4-10-1":[-1795.07,3005.49],"6-43-8":[-650.15,49.44],"6-43-9":[-2315.61,1677.31],"5-21-4":[-4655.1,2218.59],"6-43-10":[-5276.84,55.02],"6-43-11":[-5621.9,23.83],"5-21-5":[-5621.9,1027.48],"4-10-2":[-5621.9,2640.33],"6-43-12":[-5554.84,1193.16],"6-43-13":[-2774.99,895.93],"5-21-6":[-5554.84,1193.16],"6-43-14":[-4993.64,804.73],"6-43-15":[-5579.67,566.65],"5-21-7":[-5579.67,804.73],"4-10-3":[-5579.67,1255.33],"6-43-16":[-5390.46,-4.42],"6-43-17":[-4092.11,-13.27],"5-21-8":[-5390.46,12.82],"6-43-18":[-95.28,432.02],"6-43-19":[-63.3,214.23],"5-21-9":[-95.28,727.01],"4-10-4":[-5390.46,1612.57],"6-43-20":[-73.49,367.29],"6-43-21":[-87.06,352.61],"5-21-10":[-92.99,367.29],"6-43-22":[-94.59,661.37],"6-43-23":[-97.23,692.98],"5-21-11":[-104.51,692.98],"4-10-5":[-105.57,6321.87],"6-43-24":[-97.15,809.32],"6-43-25":[-102.43,1167.79],"5-21-12":[-127.72,1291.8],"6-43-26":[-113.66,921.21],"6-43-27":[-108.06,686.04],"5-21-13":[-127.8,1415.28],"4-10-6":[-141.12,5950.05],"6-43-28":[-95.84,602.42],"6-43-29":[-77.21,647.02],"5-21-14":[-95.84,2236.77],"6-43-30":[-149.21,1207.52],"6-43-31":[-18.35,1109.8],"5-21-15":[-149.21,2551.06],"4-10-7":[-1083.88,2826.62],"6-43-32":[-59.96,1027.78],"6-43-33":[-57.01,1121.51],"5-21-16":[-73.31,2410.43],"6-43-34":[-2930.18,657.03],"6-43-35":[-4527.52,621.44],"5-21-17":[-4527.52,2194.7],"4-10-8":[-4527.52,2809.61],"6-43-36":[-5297.58,689.04],"6-43-37":[-6039.3,949.21],"5-21-18":[-6039.3,1316.28],"6-43-38":[-6230.06,1245.78],"6-43-39":[-7317.05,856.34],"5-21-19":[-7426.7,1325.79],"4-10-9":[-8765.31,6050.05],"6-43-40":[-7777.47,738.99],"6-43-41":[-8245.68,703.38],"5-21-20":[-8245.68,738.99],"6-43-42":[-6689.99,362.62],"6-43-43":[-6202.56,395.29],"5-21-21":[-7274.89,395.29],"4-10-10":[-8245.68,6388.87],"6-43-44":[-6937.73,228.24],"6-43-45":[-5692.36,445.18],"5-21-22":[-6937.73,773.01],"6-43-46":[-5434.99,26.5],"6-43-47":[-4811.38,19.67],"5-21-23":[-5434.99,27.54],"4-10-11":[-6937.73,1675.56],"6-43-48":[-516.46,521.4],"6-43-49":[-513.94,786.22],"5-21-24":[-1069.25,786.22],"6-43-50":[-303.89,858.37],"6-43-51":[-2693.23,1148.31],"5-21-25":[-2693.23,1148.31],"4-10-12":[-2693.23,1230.12],"6-43-52":[-3342.42,41.03],"6-43-53":[-3212.72,44.21],"5-21-26":[-3342.42,974.47],"6-43-54":[-2665.55,1728.16],"6-43-55":[-1317.01,37.01],"5-21-27":[-2665.55,2109.78],"4-10-13":[-3342.42,2255.29],"6-43-56":[-1257.74,22.37],"6-43-57":[-970.28,259.92],"5-21-28":[-1984.8,1250.11],"6-43-58":[-1268.2,1118.73],"6-43-59":[-649.94,512.61],"5-21-29":[-1268.2,1211.47],"4-10-14":[-2406.73,2890.49],"6-43-60":[-599.83,1177.05],"6-43-61":[-1811.25,1371.37],"5-21-30":[-1831.57,1371.37],"6-43-62":[-2242.68,2317.26],"6-43-63":[-4215.39,2745.48],"5-21-31":[-4223.29,2745.48],"4-10-15":[-4223.29,2745.48],"6-44-0":[-401.99,533.78],"6-44-1":[-1084.56,771.47],"6-44-2":[-1764.29,1711.26],"6-44-3":[-1608.19,2089.38],"6-44-4":[-815.35,2319.04],"6-44-5":[-552.8,1708.39],"6-44-6":[-2155.62,1880.96],"6-44-7":[-2812.72,1854.07],"6-44-8":[-2870.71,1029.06],"6-44-9":[-2580.17,758.51],"6-44-10":[-4212.93,1786.88],"6-44-11":[-5974.95,35.64],"6-44-12":[-5589.14,148.72],"6-44-13":[-3396.26,486.61],"6-44-14":[-6359.32,577.05],"6-44-15":[-6549.98,408.54],"6-44-16":[-5888.74,8.57],"6-44-17":[-5613.75,-6.77],"6-44-18":[-4438.41,0.15],"6-44-19":[-1095.24,485.4],"6-44-20":[-431.29,464.32],"6-44-21":[-77.89,558.14],"6-44-22":[-85.04,878.92],"6-44-23":[-89.27,777.81],"6-44-24":[-91.01,742.52],"6-44-25":[-96.71,869.35],"6-44-26":[-98.96,900.05],"6-44-27":[-95.93,596.31],"6-44-28":[-95.18,733.32],"6-44-29":[-81.6,685.36],"6-44-30":[-61.24,1030.82],"6-44-31":[-99.31,889.3],"6-44-32":[-68.02,823.15],"6-44-33":[-45.24,1008.83],"6-44-34":[-2993.36,694.41],"6-44-35":[-4943.53,753.33],"6-44-36":[-5604.1,612.29],"6-44-37":[-5946.15,914.71],"6-44-38":[-6280.97,880.42],"6-44-39":[-7026.06,752.75],"6-44-40":[-7602.91,799.57],"6-44-41":[-6892.43,899.62],"6-44-42":[-6396.59,584.15],"6-44-43":[-5958.12,482.27],"6-44-44":[-5830.6,526.4],"6-44-45":[-5636.92,25.03],"6-44-46":[-5566.01,22.2],"6-44-47":[-5012.17,4.24],"6-44-48":[-1354.96,372.42],"6-44-49":[-617.47,514.04],"6-44-50":[-571.38,465.61],"6-44-51":[-3493,125.75],"6-44-52":[-3733.16,41.14],"6-44-53":[-3548.01,1523.88],"6-44-54":[-2867.09,578.59],"6-44-55":[-915.51,1108.35],"6-44-56":[-963.76,1813.61],"6-44-57":[-968.04,1896.59],"6-44-58":[-1231.82,1033.64],"6-44-59":[-144.3,780.38],"6-44-60":[-408.65,1172.05],"6-44-61":[-1797.59,1540.95],"6-44-62":[-2498.95,2298.91],"6-44-63":[-4215.39,2745.48],"6-45-0":[-514.14,579.03],"6-45-1":[-1079.97,716.42],"5-22-0":[-1084.56,771.47],"6-45-2":[-1682.8,1919.3],"6-45-3":[-1622.24,2185.38],"5-22-1":[-1764.29,2185.38],"6-45-4":[-758.02,2333.41],"6-45-5":[-564,2344.97],"5-22-2":[-815.35,2344.97],"6-45-6":[-3106.06,2399.4],"6-45-7":[-3469.32,1842.92],"5-22-3":[-3469.32,2399.4],"6-45-8":[-3594.96,2229.6],"6-45-9":[-3416.97,1280.25],"5-22-4":[-3594.96,2229.6],"6-45-10":[-5404.29,59.8],"6-45-11":[-5903.43,52.29],"5-22-5":[-5974.95,1786.88],"6-45-12":[-5584.37,48.25],"6-45-13":[-3699.42,43.66],"5-22-6":[-5589.14,486.61],"6-45-14":[-6475.73,301],"6-45-15":[-6553.82,337.49],"5-22-7":[-6553.82,577.05],"6-45-16":[-6157.36,30.39],"6-45-17":[-5825.15,6.02],"5-22-8":[-6157.36,30.39],"6-45-18":[-5323.59,-1.97],"6-45-19":[-4325.6,21.81],"5-22-9":[-5323.59,485.4],"6-45-20":[-1151.79,503.24],"6-45-21":[-62.29,1073.19],"5-22-10":[-1151.79,1073.19],"6-45-22":[-68.68,1362.48],"6-45-23":[-75.93,1318.62],"5-22-11":[-89.27,1362.48],"6-45-24":[-80.15,605.26],"6-45-25":[-85.3,1036.98],"5-22-12":[-96.71,1036.98],"6-45-26":[-89.68,1009.26],"6-45-27":[-90.85,499.44],"5-22-13":[-98.96,1009.26],"6-45-28":[-90.85,721.91],"6-45-29":[-87.64,772.95],"5-22-14":[-95.18,772.95],"6-45-30":[-71.92,795.54],"6-45-31":[-95.64,654.41],"5-22-15":[-99.31,1030.82],"6-45-32":[-74.95,667.42],"6-45-33":[-2803.2,777.54],"5-22-16":[-2803.2,1008.83],"6-45-34":[-4763.78,806.95],"6-45-35":[-5170.62,772.15],"5-22-17":[-5170.62,806.95],"6-45-36":[-5575.31,508.2],"6-45-37":[-6275.55,1020.26],"5-22-18":[-6275.55,1020.26],"6-45-38":[-6065.98,1043.99],"6-45-39":[-6587.67,630.24],"5-22-19":[-7026.06,1043.99],"6-45-40":[-6536.49,1344.63],"6-45-41":[-6510.29,1399.29],"5-22-20":[-7602.91,1399.29],"6-45-42":[-6285.66,1093.19],"6-45-43":[-6352.74,529.24],"5-22-21":[-6396.59,1093.19],"6-45-44":[-6945.4,38.77],"6-45-45":[-5841.63,9.67],"5-22-22":[-6945.4,526.4],"6-45-46":[-5569.08,2.28],"6-45-47":[-4979.43,-0.34],"5-22-23":[-5569.08,22.2],"6-45-48":[-281.94,314.96],"6-45-49":[-741.17,281],"5-22-24":[-1354.96,514.04],"6-45-50":[-3288.47,17.57],"6-45-51":[-3678.29,35.37],"5-22-25":[-3678.29,465.61],"6-45-52":[-3705.27,40.41],"6-45-53":[-3555.83,47.29],"5-22-26":[-3733.16,1523.88],"6-45-54":[-2954.33,1497.68],"6-45-55":[-561.55,2058.1],"5-22-27":[-2954.33,2058.1],"6-45-56":[-871.87,1991.65],"6-45-57":[-1444.63,2162.43],"5-22-28":[-1444.63,2162.43],"6-45-58":[-213.42,734.96],"6-45-59":[-176.36,717.06],"5-22-29":[-1231.82,1033.64],"6-45-60":[-307.69,1258.22],"6-45-61":[-2043.57,1979.94],"5-22-30":[-2043.57,1979.94],"6-45-62":[-2799.05,2275.47],"6-45-63":[-4215.39,2745.48],"5-22-31":[-4215.39,2745.48],"6-46-0":[-600.57,253.52],"6-46-1":[-1161.49,110.47],"6-46-2":[-1608.38,1909.74],"6-46-3":[-1608.38,2285.51],"6-46-4":[-660.02,2457.14],"6-46-5":[-587.75,2475.02],"6-46-6":[-3468.61,2542.84],"6-46-7":[-3842.71,1831.68],"6-46-8":[-4135.6,2027.72],"6-46-9":[-4164.77,2175.1],"6-46-10":[-5695.74,1494.43],"6-46-11":[-5636.52,68.28],"6-46-12":[-5418.75,63.25],"6-46-13":[-4699.06,55.81],"6-46-14":[-6555.82,52.22],"6-46-15":[-6273.74,53.92],"6-46-16":[-5934.72,41.06],"6-46-17":[-5945.64,21.16],"6-46-18":[-5476.11,10.12],"6-46-19":[-5080.14,1.96],"6-46-20":[-3726.88,-2.52],"6-46-21":[-2797.96,1768.73],"6-46-22":[-304.2,1772.18],"6-46-23":[-114.49,1703.39],"6-46-24":[-68.86,1058.15],"6-46-25":[-75.75,1031.41],"6-46-26":[-82.25,1437.44],"6-46-27":[-86.6,1104.08],"6-46-28":[-87.21,724.61],"6-46-29":[-85.59,850.74],"6-46-30":[-76.08,432.39],"6-46-31":[-188.32,61.63],"6-46-32":[-465.17,69.74],"6-46-33":[-3641.86,521.39],"6-46-34":[-5009.6,882.74],"6-46-35":[-5227.39,737.91],"6-46-36":[-5366.84,1154.07],"6-46-37":[-6065.49,1475.44],"6-46-38":[-5796.67,1034.42],"6-46-39":[-5802.83,1075.16],"6-46-40":[-6118.27,1855.39],"6-46-41":[-6014.32,1825.17],"6-46-42":[-5802.8,1827.75],"6-46-43":[-6312.21,13.98],"6-46-44":[-5836.48,10.93],"6-46-45":[-5773.27,-0.7],"6-46-46":[-5581.92,-1.87],"6-46-47":[-3927.84,-2.14],"6-46-48":[-3192.19,-2.22],"6-46-49":[-2704.45,9.5],"6-46-50":[-4015.33,14.82],"6-46-51":[-4109.31,36.85],"6-46-52":[-3815.7,40.45],"6-46-53":[-3570.03,1495.91],"6-46-54":[-1414.56,1745.13],"6-46-55":[-499.08,1430.54],"6-46-56":[-1211.42,796],"6-46-57":[-792.03,1400.19],"6-46-58":[-20.54,682.53],"6-46-59":[-312.54,445.25],"6-46-60":[-852.59,814.06],"6-46-61":[-2162.89,1965.25],"6-46-62":[-3090.6,2268.09],"6-46-63":[-4215.39,2745.48],"6-47-0":[-904.59,189.53],"6-47-1":[-1300.87,465.89],"5-23-0":[-1300.87,465.89],"6-47-2":[-1956.75,700.91],"6-47-3":[-1479.71,2373.94],"5-23-1":[-1956.75,2373.94],"4-11-0":[-1956.75,2373.94],"6-47-4":[-904.62,2625.24],"6-47-5":[-979.12,2882.05],"5-23-2":[-979.12,2882.05],"6-47-6":[-3656.18,2840.8],"6-47-7":[-4133.21,2476.32],"5-23-3":[-4133.21,2840.8],"4-11-1":[-4133.21,2882.05],"3-5-0":[-4133.21,3005.49],"6-47-8":[-4535.63,2769.8],"6-47-9":[-4542.9,2769.95],"5-23-4":[-4542.9,2769.95],"6-47-10":[-5649.71,2452.69],"6-47-11":[-4390.16,81.26],"5-23-5":[-5695.74,2452.69],"4-11-2":[-5974.95,2769.95],"6-47-12":[-5320.13,78.26],"6-47-13":[-3965.58,72.82],"5-23-6":[-5418.75,78.26],"6-47-14":[-6582.96,69.47],"6-47-15":[-6227.22,70.1],"5-23-7":[-6582.96,70.1],"4-11-3":[-6582.96,577.05],"3-5-1":[-6582.96,2769.95],"2-2-0":[-6582.96,4704.79],"6-47-16":[-5550.89,55.71],"6-47-17":[-5717.71,40.64],"5-23-8":[-5945.64,55.71],"6-47-18":[-5463.7,29.54],"6-47-19":[-5150.83,22.06],"5-23-9":[-5476.11,29.54],"4-11-4":[-6157.36,485.4],"6-47-20":[-4302.71,15.19],"6-47-21":[-3829.03,4.78],"5-23-10":[-4302.71,1768.73],"6-47-22":[-3450.87,-2.17],"6-47-23":[-169.03,2244.32],"5-23-11":[-3450.87,2244.32],"4-11-5":[-4302.71,2244.32],"3-5-2":[-6157.36,6321.87],"6-47-24":[-50.68,2250.32],"6-47-25":[-59.08,1259.93],"5-23-12":[-75.75,2250.32],"6-47-26":[-65.46,1510.11],"6-47-27":[-76.9,1617.75],"5-23-13":[-86.6,1617.75],"4-11-6":[-98.96,2250.32],"6-47-28":[-76.9,862.81],"6-47-29":[-77.77,653.06],"5-23-14":[-87.21,862.81],"6-47-30":[-72.57,423.19],"6-47-31":[-135.46,169.45],"5-23-15":[-188.32,432.39],"4-11-7":[-188.32,1030.82],"3-5-3":[-1083.88,5950.05],"2-2-1":[-8983.51,6823.9],"6-47-32":[-4004.8,198.92],"6-47-33":[-4253.5,442.32],"5-23-16":[-4253.5,521.39],"6-47-34":[-4745.48,663.07],"6-47-35":[-5210.95,868.81],"5-23-17":[-5227.39,882.74],"4-11-8":[-5227.39,1008.83],"6-47-36":[-5300,1657.87],"6-47-37":[-5463.79,1576.13],"5-23-18":[-6065.49,1657.87],"6-47-38":[-4906.81,1269.93],"6-47-39":[-5194.04,2353.32],"5-23-19":[-5802.83,2353.32],"4-11-9":[-7026.06,2353.32],"3-5-4":[-8765.31,6050.05],"6-47-40":[-6046.99,2413.32],"6-47-41":[-5047.25,2.39],"5-23-20":[-6118.27,2413.32],"6-47-42":[-5501.03,2.77],"6-47-43":[-5758.32,-2.9],"5-23-21":[-6312.21,1827.75],"4-11-10":[-7602.91,2413.32],"6-47-44":[-6089.22,-3.31],"6-47-45":[-5767.68,-4],"5-23-22":[-6089.22,10.93],"6-47-46":[-5390.06,-3],"6-47-47":[-5265.74,-2.76],"5-23-23":[-5581.92,-1.87],"4-11-11":[-6945.4,526.4],"3-5-5":[-8245.68,6388.87],"2-2-2":[-8765.31,6969.13],"6-47-48":[-4565.83,-2.42],"6-47-49":[-4375.17,12.36],"5-23-24":[-4565.83,12.36],"6-47-50":[-4451.86,19.2],"6-47-51":[-4093.83,36.67],"5-23-25":[-4451.86,36.85],"4-11-12":[-4565.83,514.04],"6-47-52":[-3679.12,42.39],"6-47-53":[-3118.44,2073.1],"5-23-26":[-3815.7,2073.1],"6-47-54":[14.52,1814.36],"6-47-55":[-56.43,1185.43],"5-23-27":[-1414.56,1814.36],"4-11-13":[-3815.7,2073.1],"3-5-6":[-4565.83,2255.29],"6-47-56":[-821.49,371.23],"6-47-57":[-206.04,937.06],"5-23-28":[-1211.42,1400.19],"6-47-58":[-257.19,355.03],"6-47-59":[-408.52,457.63],"5-23-29":[-408.52,682.53],"4-11-14":[-1444.63,2162.43],"6-47-60":[-393.65,962.23],"6-47-61":[-2075.98,1373.29],"5-23-30":[-2162.89,1965.25],"6-47-62":[-3803.43,2263.16],"6-47-63":[-4215.39,2745.98],"5-23-31":[-4215.39,2745.98],"4-11-15":[-4215.39,2745.98],"3-5-7":[-4223.29,2890.49],"2-2-3":[-4565.83,4721.94],"6-48-0":[-1002.56,89.53],"6-48-1":[-1625.52,784.32],"6-48-2":[-1856.43,949.4],"6-48-3":[-1397.31,2469.75],"6-48-4":[-934.43,2812.59],"6-48-5":[-1655.77,3024.06],"6-48-6":[-3835.14,3047.68],"6-48-7":[-4422.64,2826.07],"6-48-8":[-4694.59,2785.17],"6-48-9":[-4814.83,2833.9],"6-48-10":[-5546.05,2803.26],"6-48-11":[-4563.38,92.57],"6-48-12":[-5098.13,90.15],"6-48-13":[-3690.49,85.22],"6-48-14":[-6580.29,78.86],"6-48-15":[-6151.22,72.39],"6-48-16":[-6074.8,65.89],"6-48-17":[-5427.71,54.55],"6-48-18":[-6129.36,45.38],"6-48-19":[-5109.91,39.31],"6-48-20":[-4602.01,32.2],"6-48-21":[-4278.58,23.36],"6-48-22":[-3719.52,10.3],"6-48-23":[-2324.46,1973.99],"6-48-24":[-36.66,2699.24],"6-48-25":[-48.75,1971.8],"6-48-26":[-52.31,1656.77],"6-48-27":[-60.66,1603.49],"6-48-28":[-65.09,1259.07],"6-48-29":[-65.14,586.2],"6-48-30":[-85.29,344.01],"6-48-31":[-3865.9,57.26],"6-48-32":[-4518.8,80.25],"6-48-33":[-4888.4,366.28],"6-48-34":[-5293.87,588.21],"6-48-35":[-5433.96,1298.57],"6-48-36":[-5101.32,1756.49],"6-48-37":[-5420.55,1788.77],"6-48-38":[-5745.06,2047.81],"6-48-39":[-5639.86,2789.25],"6-48-40":[-6236.13,2060.99],"6-48-41":[-4727.7,-6.95],"6-48-42":[-5242.68,-7.27],"6-48-43":[-5266.3,-5.74],"6-48-44":[-5333.57,-5.85],"6-48-45":[-5726.45,-5.73],"6-48-46":[-5196.72,-5.21],"6-48-47":[-5068.54,-3.49],"6-48-48":[-4815.61,-1.35],"6-48-49":[-4598.65,16.97],"6-48-50":[-4840.96,17.53],"6-48-51":[-3842.65,35.69],"6-48-52":[-4250.99,41.28],"6-48-53":[-2309.22,2448.9],"6-48-54":[-833.91,2176.59],"6-48-55":[-163.3,1316.63],"6-48-56":[-625.27,364.42],"6-48-57":[-429.12,233.82],"6-48-58":[-370.87,131.2],"6-48-59":[-405.36,213.73],"6-48-60":[-403.85,1124.93],"6-48-61":[-2027.94,1548.87],"6-48-62":[-3799.43,2265.71],"6-48-63":[-4215.39,2746.48],"6-49-0":[-884.4,67.53],"6-49-1":[-1576.67,792.41],"5-24-0":[-1625.52,792.41],"6-49-2":[-968.6,1459.96],"6-49-3":[-1449.32,2462.17],"5-24-1":[-1856.43,2469.75],"6-49-4":[-1271.56,2812.59],"6-49-5":[-2510.28,3141.21],"5-24-2":[-2510.28,3141.21],"6-49-6":[-4105.65,3182.09],"6-49-7":[-4433.76,3042.62],"5-24-3":[-4433.76,3182.09],"6-49-8":[-4797.43,2652.87],"6-49-9":[-5015.21,2012.55],"5-24-4":[-5015.21,2833.9],"6-49-10":[-6312.12,334.77],"6-49-11":[-4263.69,101.28],"5-24-5":[-6312.12,2803.26],"6-49-12":[-4042.22,102],"6-49-13":[-4218.24,98.24],"5-24-6":[-5098.13,102],"6-49-14":[-6403.93,93.09],"6-49-15":[-6267.83,86.06],"5-24-7":[-6580.29,93.09],"6-49-16":[-6293.49,81.48],"6-49-17":[-5597.43,73.88],"5-24-8":[-6293.49,81.48],"6-49-18":[-5448.01,66.2],"6-49-19":[-5367.78,60.53],"5-24-9":[-6129.36,66.2],"6-49-20":[-4884.47,55.5],"6-49-21":[-4997.91,39.04],"5-24-10":[-4997.91,55.5],"6-49-22":[-4463.39,22.35],"6-49-23":[-3796.85,590.73],"5-24-11":[-4463.39,1973.99],"6-49-24":[-2425.07,2757.34],"6-49-25":[-305.26,1443.38],"5-24-12":[-2425.07,2757.34],"6-49-26":[-42.33,1372.15],"6-49-27":[-43.85,1922.31],"5-24-13":[-60.66,1922.31],"6-49-28":[-45.31,1258.47],"6-49-29":[-49.21,961.21],"5-24-14":[-65.14,1259.07],"6-49-30":[-109.15,1068.98],"6-49-31":[-4222.06,110.24],"5-24-15":[-4222.06,1068.98],"6-49-32":[-4682.57,79.72],"6-49-33":[-4896.78,1125.05],"5-24-16":[-4896.78,1125.05],"6-49-34":[-5688.41,966.21],"6-49-35":[-5559.66,1272.47],"5-24-17":[-5688.41,1298.57],"6-49-36":[-5912.92,2017.31],"6-49-37":[-5804.87,1423.16],"5-24-18":[-5912.92,2017.31],"6-49-38":[-6106.25,1567.33],"6-49-39":[-6381.23,2863.35],"5-24-19":[-6381.23,2863.35],"6-49-40":[-6341.73,694.74],"6-49-41":[-5511.51,-9.82],"5-24-20":[-6341.73,2060.99],"6-49-42":[-4982.01,-7.66],"6-49-43":[-5465.76,-7.18],"5-24-21":[-5465.76,-5.74],"6-49-44":[-4910.54,-6.72],"6-49-45":[-5277.97,-6.41],"5-24-22":[-5726.45,-5.73],"6-49-46":[-5311.51,-6.33],"6-49-47":[-5095.47,-4.79],"5-24-23":[-5311.51,-3.49],"6-49-48":[-4913.48,-0.71],"6-49-49":[-4767.83,15],"5-24-24":[-4913.48,16.97],"6-49-50":[-5488.9,15.14],"6-49-51":[-3939.76,37.34],"5-24-25":[-5488.9,37.34],"6-49-52":[-3572.36,40.03],"6-49-53":[-3055.63,450.7],"5-24-26":[-4250.99,2448.9],"6-49-54":[-2100.15,1967.18],"6-49-55":[-830.24,1959.77],"5-24-27":[-2100.15,2176.59],"6-49-56":[-499.68,462.22],"6-49-57":[-211.12,297.17],"5-24-28":[-625.27,462.22],"6-49-58":[-274.87,210.95],"6-49-59":[-342.73,50.33],"5-24-29":[-405.36,213.73],"6-49-60":[-160.19,1081.6],"6-49-61":[-2028.98,1679.35],"5-24-30":[-2028.98,1679.35],"6-49-62":[-3790.08,2265.71],"6-49-63":[-4219.2,2746.48],"5-24-31":[-4219.2,2746.48],"6-50-0":[-934.9,69.52],"6-50-1":[-1469.25,976.22],"6-50-2":[-737.71,1457.67],"6-50-3":[-1618.91,2355],"6-50-4":[-1269.34,2629.12],"6-50-5":[-3058.83,3200.74],"6-50-6":[-4224.36,3253.39],"6-50-7":[-4528.57,3209.33],"6-50-8":[-4867.96,3108.37],"6-50-9":[-5389.9,106.81],"6-50-10":[-5404.37,105.78],"6-50-11":[-3936.37,111.91],"6-50-12":[-3975.13,2633.15],"6-50-13":[-5213.59,108.32],"6-50-14":[-6122.93,103.27],"6-50-15":[-6062.21,96.8],"6-50-16":[-5451.29,93],"6-50-17":[-5793.05,87.83],"6-50-18":[-5441.17,80.4],"6-50-19":[-5078.03,76.44],"6-50-20":[-4896.54,68.85],"6-50-21":[-5006.6,47.85],"6-50-22":[-4983.72,31.01],"6-50-23":[-4241.18,12.45],"6-50-24":[-4270.18,2.19],"6-50-25":[-3977.54,109.32],"6-50-26":[-4394.4,914.15],"6-50-27":[-4327.88,559.81],"6-50-28":[-2118.33,1063.79],"6-50-29":[-34.54,1141.75],"6-50-30":[-3552.2,1000.51],"6-50-31":[-4554.15,-8.32],"6-50-32":[-5281.5,-10.92],"6-50-33":[-4950.78,1106.52],"6-50-34":[-6051.37,1190.32],"6-50-35":[-5728.2,1083.8],"6-50-36":[-6319.68,626.82],"6-50-37":[-6294.95,986.18],"6-50-38":[-7008.06,124.34],"6-50-39":[-6739.38,-5.86],"6-50-40":[-6851.27,-8.26],"6-50-41":[-5929.45,-6.03],"6-50-42":[-5432.53,-1.95],"6-50-43":[-4629.98,-2.36],"6-50-44":[-4319.88,-4.64],"6-50-45":[-5375.44,-4.06],"6-50-46":[-5352.82,-3.83],"6-50-47":[-4886.28,-3.1],"6-50-48":[-4927.65,0.55],"6-50-49":[-4878.3,12.98],"6-50-50":[-4465.96,23.35],"6-50-51":[-3742.67,2738.7],"6-50-52":[-3572.36,41.64],"6-50-53":[-3233.45,44],"6-50-54":[-2680.33,41.06],"6-50-55":[-1017.21,3258.28],"6-50-56":[-385.83,2270.17],"6-50-57":[-210.97,833.52],"6-50-58":[-293.35,735.1],"6-50-59":[-224.42,580.16],"6-50-60":[-151.03,1003.54],"6-50-61":[-1755.39,1715.15],"6-50-62":[-3795.59,2262.46],"6-50-63":[-4236.22,2746.48],"6-51-0":[-907.39,120.52],"6-51-1":[-1308.24,740.14],"5-25-0":[-1469.25,976.22],"6-51-2":[-1060.28,1225.55],"6-51-3":[-1586.02,2251.74],"5-25-1":[-1618.91,2355],"4-12-0":[-1856.43,2469.75],"6-51-4":[-1120.27,2558.11],"6-51-5":[-3440.48,3116.18],"5-25-2":[-3440.48,3200.74],"6-51-6":[-4327.81,3190.72],"6-51-7":[-4613.28,3318.44],"5-25-3":[-4613.28,3318.44],"4-12-1":[-4613.28,3318.44],"6-51-8":[-4928.05,2952.11],"6-51-9":[-5317.04,111.55],"5-25-4":[-5389.9,3108.37],"6-51-10":[-5773.22,118.01],"6-51-11":[-3983.49,122.71],"5-25-5":[-5773.22,122.71],"4-12-2":[-6312.12,3108.37],"6-51-12":[-4736.44,2776.21],"6-51-13":[-5062.61,118.71],"5-25-6":[-5213.59,2776.21],"6-51-14":[-5842.32,113.3],"6-51-15":[-5917.21,108.7],"5-25-7":[-6122.93,113.3],"4-12-3":[-6580.29,2776.21],"6-51-16":[-5510.34,107.59],"6-51-17":[-5386.95,102.26],"5-25-8":[-5793.05,107.59],"6-51-18":[-5246.88,98.78],"6-51-19":[-5023.93,94.27],"5-25-9":[-5441.17,98.78],"4-12-4":[-6293.49,107.59],"6-51-20":[-4702.21,77.17],"6-51-21":[-4520.84,56.25],"5-25-10":[-5006.6,77.17],"6-51-22":[-4931.19,41.92],"6-51-23":[-5003.58,22.97],"5-25-11":[-5003.58,41.92],"4-12-5":[-5006.6,1973.99],"6-51-24":[-4927.8,19.11],"6-51-25":[-4549.86,11.37],"5-25-12":[-4927.8,109.32],"6-51-26":[-4810.57,4.22],"6-51-27":[-4861.84,-3.86],"5-25-13":[-4861.84,914.15],"4-12-6":[-4927.8,2757.34],"6-51-28":[-4937.15,981.16],"6-51-29":[-4430.45,1135.93],"5-25-14":[-4937.15,1141.75],"6-51-30":[-4404.87,305.41],"6-51-31":[-4637.59,-1.06],"5-25-15":[-4637.59,1000.51],"4-12-7":[-4937.15,1259.07],"6-51-32":[-5219.05,-5.27],"6-51-33":[-4625.84,315.67],"5-25-16":[-5281.5,1106.52],"6-51-34":[-5717.47,1194.05],"6-51-35":[-6295.78,1027.17],"5-25-17":[-6295.78,1194.05],"4-12-8":[-6295.78,1298.57],"6-51-36":[-6924.46,-9.5],"6-51-37":[-6878,-8.12],"5-25-18":[-6924.46,986.18],"6-51-38":[-6234.42,-6.58],"6-51-39":[-6390.19,-3.54],"5-25-19":[-7008.06,124.34],"4-12-9":[-7008.06,2863.35],"6-51-40":[-7677.07,-6.14],"6-51-41":[-6648.02,-2.7],"5-25-20":[-7677.07,-2.7],"6-51-42":[-5887.74,4.88],"6-51-43":[-4881.84,4.82],"5-25-21":[-5887.74,4.88],"4-12-10":[-7677.07,2060.99],"6-51-44":[-4683.33,-0.42],"6-51-45":[-4718.71,-0.49],"5-25-22":[-5375.44,-0.42],"6-51-46":[-4904.66,-0.3],"6-51-47":[-4464.49,0.52],"5-25-23":[-5352.82,0.52],"4-12-11":[-5726.45,0.52],"6-51-48":[-4783.84,5.1],"6-51-49":[-5104.6,16.37],"5-25-24":[-5104.6,16.37],"6-51-50":[-4801.07,28.17],"6-51-51":[-3120.41,2916.19],"5-25-25":[-4801.07,2916.19],"4-12-12":[-5488.9,2916.19],"6-51-52":[-3181.33,44.42],"6-51-53":[-3383.44,45.57],"5-25-26":[-3572.36,45.57],"6-51-54":[-2894.6,41.85],"6-51-55":[-1321.25,3107.62],"5-25-27":[-2894.6,3258.28],"4-12-13":[-4250.99,3258.28],"6-51-56":[-153.79,2672.67],"6-51-57":[-145.78,1240.65],"5-25-28":[-385.83,2672.67],"6-51-58":[-210.99,1318.26],"6-51-59":[-468.11,682.83],"5-25-29":[-468.11,1318.26],"4-12-14":[-625.27,2672.67],"6-51-60":[-296.25,994.66],"6-51-61":[-1099.16,1785.3],"5-25-30":[-1755.39,1785.3],"6-51-62":[-3959.51,2257.85],"6-51-63":[-4228.8,2746.48],"5-25-31":[-4236.22,2746.48],"4-12-15":[-4236.22,2746.48],"6-52-0":[-733.46,128.52],"6-52-1":[-1214.07,792.32],"6-52-2":[-1144.24,1141.68],"6-52-3":[-1607.7,2076.74],"6-52-4":[-959.91,2521.51],"6-52-5":[-3476.54,2887.36],"6-52-6":[-4419.2,3023.83],"6-52-7":[-4739.83,3002.57],"6-52-8":[-4949.2,1206.68],"6-52-9":[-5254.67,120.01],"6-52-10":[-5012.8,125.87],"6-52-11":[-4183.89,126.28],"6-52-12":[-7086.05,122.56],"6-52-13":[-4742.87,121.98],"6-52-14":[-5741.02,120.69],"6-52-15":[-5712.7,118.59],"6-52-16":[-5649.06,117.92],"6-52-17":[-5750.86,956.08],"6-52-18":[-5457.64,292.1],"6-52-19":[-5232.26,98.45],"6-52-20":[-5260.33,80.32],"6-52-21":[-4887.73,62.32],"6-52-22":[-5495.99,49.65],"6-52-23":[-5492.27,32.21],"6-52-24":[-5015.71,30.74],"6-52-25":[-5073.96,27.03],"6-52-26":[-5048.05,18.42],"6-52-27":[-5662.8,3.79],"6-52-28":[-5485.53,1.81],"6-52-29":[-5441.5,9.77],"6-52-30":[-5026.25,1799.5],"6-52-31":[-4933.34,9.72],"6-52-32":[-4854.58,1.12],"6-52-33":[-5356.72,236.48],"6-52-34":[-5355.94,-6.99],"6-52-35":[-6308.17,-9.64],"6-52-36":[-7469.7,-7.29],"6-52-37":[-6466.58,-6.71],"6-52-38":[-5677.51,-5.18],"6-52-39":[-5879.9,-4.33],"6-52-40":[-6914.98,-5.17],"6-52-41":[-6668.6,0.3],"6-52-42":[-5783.44,5.27],"6-52-43":[-4800.88,6.16],"6-52-44":[-3657.96,8.81],"6-52-45":[-3599.29,299.98],"6-52-46":[-4106.24,909.05],"6-52-47":[-4134.65,9.11],"6-52-48":[-4445.46,11.62],"6-52-49":[-4535.08,20.83],"6-52-50":[-4818.88,31.49],"6-52-51":[-3539.4,44.15],"6-52-52":[-3219.89,48.11],"6-52-53":[-3059.39,47.57],"6-52-54":[-2932.62,39.99],"6-52-55":[-2319.46,1511.36],"6-52-56":[-1028.73,3019.59],"6-52-57":[-6.52,1863.6],"6-52-58":[-117.54,2132.8],"6-52-59":[-470.01,1124.55],"6-52-60":[-286.17,1099.18],"6-52-61":[-908.43,1887.29],"6-52-62":[-4139.66,2271.2],"6-52-63":[-4259.41,2746.48],"6-53-0":[-809.92,127.52],"6-53-1":[-947.44,1084.84],"5-26-0":[-1214.07,1084.84],"6-53-2":[-956.82,1208.94],"6-53-3":[-2013.41,1866.38],"5-26-1":[-2013.41,2076.74],"6-53-4":[-1764.48,2511.91],"6-53-5":[-3618.3,2633.93],"5-26-2":[-3618.3,2887.36],"6-53-6":[-4517.43,2633.93],"6-53-7":[-4776.29,3982.86],"5-26-3":[-4776.29,3982.86],"6-53-8":[-4996.61,121.21],"6-53-9":[-5272.07,128.08],"5-26-4":[-5272.07,1206.68],"6-53-10":[-5305.35,129.5],"6-53-11":[-4591.49,127.45],"5-26-5":[-5305.35,129.5],"6-53-12":[-8129.66,122.28],"6-53-13":[-5430.02,127.23],"5-26-6":[-8129.66,127.23],"6-53-14":[-5642.1,129.8],"6-53-15":[-5516.49,129.69],"5-26-7":[-5741.02,129.8],"6-53-16":[-5390.18,129.28],"6-53-17":[-5280.21,123.07],"5-26-8":[-5750.86,956.08],"6-53-18":[-4871.36,2346.09],"6-53-19":[-5425.47,100.63],"5-26-9":[-5457.64,2346.09],"6-53-20":[-4690.2,83.95],"6-53-21":[-5286.82,69.72],"5-26-10":[-5286.82,83.95],"6-53-22":[-5993.62,52.25],"6-53-23":[-5992.94,40.62],"5-26-11":[-5993.62,52.25],"6-53-24":[-5509.86,1698.2],"6-53-25":[-6172.64,36.9],"5-26-12":[-6172.64,1698.2],"6-53-26":[-5853.26,31.78],"6-53-27":[-6369.72,19.03],"5-26-13":[-6369.72,31.78],"6-53-28":[-5966.33,13.16],"6-53-29":[-5889.03,18.26],"5-26-14":[-5966.33,18.26],"6-53-30":[-5882.35,18.06],"6-53-31":[-5211.23,16.65],"5-26-15":[-5882.35,1799.5],"6-53-32":[-4558.97,11.61],"6-53-33":[-4701.82,-1.77],"5-26-16":[-5356.72,236.48],"6-53-34":[-5295.87,-5.37],"6-53-35":[-6621.27,-7.87],"5-26-17":[-6621.27,-5.37],"6-53-36":[-6149.42,-7.1],"6-53-37":[-6059.63,-6.55],"5-26-18":[-7469.7,-6.55],"6-53-38":[-5287.23,-5.31],"6-53-39":[-6580.97,584.18],"5-26-19":[-6580.97,584.18],"6-53-40":[-6305.15,-3.59],"6-53-41":[-6288.64,2.46],"5-26-20":[-6914.98,2.46],"6-53-42":[-5252.94,10.35],"6-53-43":[-4611.72,13.56],"5-26-21":[-5783.44,13.56],"6-53-44":[-3688.88,18.1],"6-53-45":[-3553.03,2273.57],"5-26-22":[-3688.88,2273.57],"6-53-46":[-3357.17,19.28],"6-53-47":[-3667.73,20.12],"5-26-23":[-4134.65,909.05],"6-53-48":[-3844.29,21.48],"6-53-49":[-4138.56,25.29],"5-26-24":[-4535.08,25.29],"6-53-50":[-4790.72,32.32],"6-53-51":[-3440.33,44.34],"5-26-25":[-4818.88,44.34],"6-53-52":[-3980.63,48.37],"6-53-53":[-2353.14,48.14],"5-26-26":[-3980.63,48.37],"6-53-54":[-2657.56,40.04],"6-53-55":[-2300.41,22.99],"5-26-27":[-2932.62,1511.36],"6-53-56":[-606.79,3601.13],"6-53-57":[-1293.17,2772.76],"5-26-28":[-1293.17,3601.13],"6-53-58":[-778.68,2578.34],"6-53-59":[-343.06,1326.38],"5-26-29":[-778.68,2578.34],"6-53-60":[-301.96,1634.18],"6-53-61":[-1086.2,1960.78],"5-26-30":[-1086.2,1960.78],"6-53-62":[-4340.78,2301.31],"6-53-63":[-4271.39,2746.48],"5-26-31":[-4340.78,2746.48],"6-54-0":[-754.78,88.51],"6-54-1":[-695.88,963.85],"6-54-2":[-418.94,1073.68],"6-54-3":[-2490,1676.23],"6-54-4":[-1598.54,2416.2],"6-54-5":[-3641.22,2217.34],"6-54-6":[-4536.45,2458.39],"6-54-7":[-4805.67,2560.61],"6-54-8":[-5052.79,127.95],"6-54-9":[-5437.3,130.4],"6-54-10":[-7400.45,984.27],"6-54-11":[-6940.26,1259.84],"6-54-12":[-8445.16,122.78],"6-54-13":[-5307.61,127.15],"6-54-14":[-5355.46,131.06],"6-54-15":[-5217.86,132.17],"6-54-16":[-5140.39,129.76],"6-54-17":[-4935.97,122.83],"6-54-18":[-4706.91,1086.32],"6-54-19":[-5082.4,100.89],"6-54-20":[-5179.26,82.99],"6-54-21":[-5666.62,66.49],"6-54-22":[-6090.48,53.95],"6-54-23":[-6169.21,42.86],"6-54-24":[-6313.67,45.39],"6-54-25":[-6126.45,1434.62],"6-54-26":[-6062.27,41.69],"6-54-27":[-6226.38,30.03],"6-54-28":[-6103.99,22.91],"6-54-29":[-6024.65,23.82],"6-54-30":[-6448.31,22.61],"6-54-31":[-5649.85,20.6],"6-54-32":[-5202.51,18.27],"6-54-33":[-5070.73,1.49],"6-54-34":[-5639,-1.98],"6-54-35":[-5982.46,-5.32],"6-54-36":[-6017.65,-6.18],"6-54-37":[-5355.92,-6.1],"6-54-38":[-4934.39,1347.61],"6-54-39":[-5602.69,-5.14],"6-54-40":[-5816.35,-0.74],"6-54-41":[-5840.06,5.66],"6-54-42":[-5618.61,12.5],"6-54-43":[-5587.6,19.2],"6-54-44":[-5458.07,24.93],"6-54-45":[-3690.54,1045.93],"6-54-46":[-4181.35,27.23],"6-54-47":[-3525.7,28],"6-54-48":[-4185.13,28.86],"6-54-49":[-4218.21,32.39],"6-54-50":[-4267.86,35.56],"6-54-51":[-3736.27,43.39],"6-54-52":[-3618.08,1349.09],"6-54-53":[-3154.88,1035.34],"6-54-54":[-1757.64,38.39],"6-54-55":[-1268.84,21.85],"6-54-56":[-1242.39,2823.54],"6-54-57":[-1478.9,2688.59],"6-54-58":[-756.79,2458.1],"6-54-59":[-426.59,2385.99],"6-54-60":[-450.17,1787.39],"6-54-61":[-1732.42,2012.99],"6-54-62":[-4431.77,2336.23],"6-54-63":[-4266.36,2746.48],"6-55-0":[-773.63,75.52],"6-55-1":[-909.04,906.14],"5-27-0":[-909.04,963.85],"6-55-2":[-384.43,939.66],"6-55-3":[-2740.34,1854.31],"5-27-1":[-2740.34,1854.31],"4-13-0":[-2740.34,2076.74],"6-55-4":[-1511.29,2030.68],"6-55-5":[-3639.12,2071.97],"5-27-2":[-3641.22,2416.2],"6-55-6":[-4571.3,2327.64],"6-55-7":[-4921.03,1988.61],"5-27-3":[-4921.03,2560.61],"4-13-1":[-4921.03,3982.86],"3-6-0":[-4921.03,3982.86],"6-55-8":[-5022.04,1471.32],"6-55-9":[-5224.27,194.14],"5-27-4":[-5437.3,1471.32],"6-55-10":[-7788.44,129.91],"6-55-11":[-8273.63,126.1],"5-27-5":[-8273.63,1259.84],"4-13-2":[-8273.63,1471.32],"6-55-12":[-7837.58,126.1],"6-55-13":[-5124.34,126.13],"5-27-6":[-8445.16,127.15],"6-55-14":[-5117.88,129.01],"6-55-15":[-4967.25,131.88],"5-27-7":[-5355.46,132.17],"4-13-3":[-8445.16,132.17],"3-6-1":[-8445.16,3108.37],"6-55-16":[-4833.04,129.91],"6-55-17":[-4637.36,120.26],"5-27-8":[-5140.39,129.91],"6-55-18":[-4526.53,1131.62],"6-55-19":[-4501.61,100.95],"5-27-9":[-5082.4,1131.62],"4-13-4":[-5750.86,2346.09],"6-55-20":[-5093.86,76.17],"6-55-21":[-5753.2,63.94],"5-27-10":[-5753.2,82.99],"6-55-22":[-5978.68,55.85],"6-55-23":[-6224.65,50.59],"5-27-11":[-6224.65,55.85],"4-13-5":[-6224.65,83.95],"3-6-2":[-6293.49,2346.09],"6-55-24":[-6228.02,51.75],"6-55-25":[-6270.35,2003.8],"5-27-12":[-6313.67,2003.8],"6-55-26":[-6240.19,2815.55],"6-55-27":[-6433.11,37.39],"5-27-13":[-6433.11,2815.55],"4-13-6":[-6433.11,2815.55],"6-55-28":[-6295.21,31.14],"6-55-29":[-6099.62,32.89],"5-27-14":[-6295.21,32.89],"6-55-30":[-6399.44,30.93],"6-55-31":[-5954.07,23.87],"5-27-15":[-6448.31,30.93],"4-13-7":[-6448.31,1799.5],"3-6-3":[-6448.31,2815.55],"6-55-32":[-5049.31,20.71],"6-55-33":[-4783.68,8.19],"5-27-16":[-5202.51,20.71],"6-55-34":[-5310.1,4],"6-55-35":[-5627.49,-1.23],"5-27-17":[-5982.46,4],"4-13-8":[-6621.27,236.48],"6-55-36":[-5557.2,-2.77],"6-55-37":[-4574.29,2699.54],"5-27-18":[-6017.65,2699.54],"6-55-38":[-4364.05,1963.83],"6-55-39":[-5227.73,-2.51],"5-27-19":[-5602.69,1963.83],"4-13-9":[-7469.7,2699.54],"3-6-4":[-7469.7,2863.35],"6-55-40":[-5398.44,3.34],"6-55-41":[-5418.06,11.75],"5-27-20":[-5840.06,11.75],"6-55-42":[-5567.95,18.07],"6-55-43":[-5910.79,25.53],"5-27-21":[-5910.79,25.53],"4-13-10":[-6914.98,25.53],"6-55-44":[-5858.3,32.41],"6-55-45":[-5328.4,1066.57],"5-27-22":[-5858.3,1066.57],"6-55-46":[-4416.42,36.95],"6-55-47":[-4492.85,36.98],"5-27-23":[-4492.85,36.98],"4-13-11":[-5858.3,2273.57],"3-6-5":[-7677.07,2273.57],"6-55-48":[-4477.06,36.96],"6-55-49":[-4483.64,37.24],"5-27-24":[-4483.64,37.24],"6-55-50":[-4294.04,39.76],"6-55-51":[-4067.88,42.27],"5-27-25":[-4294.04,43.39],"4-13-12":[-4818.88,44.34],"6-55-52":[-3984.71,37.89],"6-55-53":[-3551.53,38.97],"5-27-26":[-3984.71,1349.09],"6-55-54":[-1641.24,173.11],"6-55-55":[-1355.39,1438.49],"5-27-27":[-1757.64,1438.49],"4-13-13":[-3984.71,1511.36],"3-6-6":[-5488.9,3258.28],"6-55-56":[-1512.26,2044.53],"6-55-57":[-1226.91,2666.25],"5-27-28":[-1512.26,2823.54],"6-55-58":[-678.79,2014.72],"6-55-59":[-910.8,2088.28],"5-27-29":[-910.8,2458.1],"4-13-14":[-1512.26,3601.13],"6-55-60":[-652.73,1737.31],"6-55-61":[-3251.34,2103.65],"5-27-30":[-3251.34,2103.65],"6-55-62":[-4488.79,2360.08],"6-55-63":[-4270.87,2746.48],"5-27-31":[-4488.79,2746.48],"4-13-15":[-4488.79,2746.48],"3-6-7":[-4488.79,3601.13],"6-56-0":[-774.61,63.52],"6-56-1":[-909.04,872.66],"6-56-2":[-422.73,1232.27],"6-56-3":[-2742.33,1544.62],"6-56-4":[-1114.07,1035.02],"6-56-5":[-3179.65,1653.87],"6-56-6":[-4594.77,1002],"6-56-7":[-4924.28,671.1],"6-56-8":[-5019,1784.7],"6-56-9":[-5199.04,1475.57],"6-56-10":[-6481.97,128.25],"6-56-11":[-5268.9,126.29],"6-56-12":[-5631.13,126.29],"6-56-13":[-5336.55,126.21],"6-56-14":[-4959.12,126.55],"6-56-15":[-4734.53,127.18],"6-56-16":[-4920.4,126.5],"6-56-17":[-4441.83,117.02],"6-56-18":[-4364.6,106.96],"6-56-19":[-4479.79,92.67],"6-56-20":[-4807.92,81.82],"6-56-21":[-5147.88,72.03],"6-56-22":[-5777.15,65.54],"6-56-23":[-5742.39,64.24],"6-56-24":[-6087.05,52.11],"6-56-25":[-5930.72,53.98],"6-56-26":[-5982.95,52.63],"6-56-27":[-6107.29,44.22],"6-56-28":[-6675.95,40.2],"6-56-29":[-5957.58,37.67],"6-56-30":[-5964.89,36.23],"6-56-31":[-7097.01,26.97],"6-56-32":[-5371.34,25.11],"6-56-33":[-4808.56,15.56],"6-56-34":[-4714.13,11.93],"6-56-35":[-5258.45,18.59],"6-56-36":[-5112.44,4.11],"6-56-37":[-4736.03,0.85],"6-56-38":[-3880.88,0.68],"6-56-39":[-4794.46,1.89],"6-56-40":[-4889.28,8.4],"6-56-41":[-5026.05,16.04],"6-56-42":[-5214.14,22.14],"6-56-43":[-5362.66,30.63],"6-56-44":[-5615.35,36.65],"6-56-45":[-5576.93,40.5],"6-56-46":[-5354.96,43.37],"6-56-47":[-6001.14,44.13],"6-56-48":[-4965.81,43.98],"6-56-49":[-4608.39,41.79],"6-56-50":[-4520.54,41.65],"6-56-51":[-4015.97,42.33],"6-56-52":[-3435.94,40.96],"6-56-53":[-4034.45,41.96],"6-56-54":[-1992.34,1450.89],"6-56-55":[-566.09,1695.97],"6-56-56":[-1528.23,1011.13],"6-56-57":[-608.36,1329.89],"6-56-58":[-531.53,1771.7],"6-56-59":[-1105.87,1695.38],"6-56-60":[-1294.97,1632.27],"6-56-61":[-3320.58,2172.84],"6-56-62":[-4500.76,2379.92],"6-56-63":[-4387.83,2746.48],"6-57-0":[-830.8,52.51],"6-57-1":[-644.38,541.88],"5-28-0":[-909.04,872.66],"6-57-2":[-469.54,919.88],"6-57-3":[-1635.29,1436.69],"5-28-1":[-2742.33,1544.62],"6-57-4":[-1835.91,748.02],"6-57-5":[-1621.7,949.92],"5-28-2":[-3179.65,1653.87],"6-57-6":[-4643.42,115.49],"6-57-7":[-4970.55,126.66],"5-28-3":[-4970.55,1002],"6-57-8":[-5107.08,1937.43],"6-57-9":[-5242.54,2123.62],"5-28-4":[-5242.54,2123.62],"6-57-10":[-5693.64,124.91],"6-57-11":[-5329.67,123.99],"5-28-5":[-6481.97,128.25],"6-57-12":[-5384.49,123.99],"6-57-13":[-4791.5,122.5],"5-28-6":[-5631.13,126.29],"6-57-14":[-4728.1,124.14],"6-57-15":[-4503.56,123],"5-28-7":[-4959.12,127.18],"6-57-16":[-4242.46,119.6],"6-57-17":[-4149.79,110.36],"5-28-8":[-4920.4,126.5],"6-57-18":[-4243.75,101.63],"6-57-19":[-4386.42,95.46],"5-28-9":[-4479.79,106.96],"6-57-20":[-4570.43,1880.85],"6-57-21":[-4843.17,2439.69],"5-28-10":[-5147.88,2439.69],"6-57-22":[-5236.17,1522.97],"6-57-23":[-5741.26,68.01],"5-28-11":[-5777.15,1522.97],"6-57-24":[-5614.52,116.51],"6-57-25":[-5297.41,60.59],"5-28-12":[-6087.05,116.51],"6-57-26":[-5603.59,171.48],"6-57-27":[-5382.72,57.96],"5-28-13":[-6107.29,171.48],"6-57-28":[-5194.58,53.31],"6-57-29":[-5536.19,43.04],"5-28-14":[-6675.95,53.31],"6-57-30":[-5589.52,37.19],"6-57-31":[-7749.42,33.41],"5-28-15":[-7749.42,37.19],"6-57-32":[-6535.92,34.41],"6-57-33":[-5119.28,26.59],"5-28-16":[-6535.92,34.41],"6-57-34":[-5045.49,24.73],"6-57-35":[-5489.86,64.15],"5-28-17":[-5489.86,64.15],"6-57-36":[-4822.11,32.17],"6-57-37":[-4030.39,167.47],"5-28-18":[-5112.44,167.47],"6-57-38":[-3442.1,26.06],"6-57-39":[-4106.03,77.57],"5-28-19":[-4794.46,77.57],"6-57-40":[-3840.8,15.84],"6-57-41":[-4457.53,1486.33],"5-28-20":[-5026.05,1486.33],"6-57-42":[-4775,2391.26],"6-57-43":[-4880.59,1794.09],"5-28-21":[-5362.66,2391.26],"6-57-44":[-5715.96,40.42],"6-57-45":[-5874.66,45.89],"5-28-22":[-5874.66,45.89],"6-57-46":[-5731.84,49.37],"6-57-47":[-5915.23,50.19],"5-28-23":[-6001.14,50.19],"6-57-48":[-5019.61,50.16],"6-57-49":[-4959.49,48.13],"5-28-24":[-5019.61,50.16],"6-57-50":[-4915.16,45.48],"6-57-51":[-2574.6,44.16],"5-28-25":[-4915.16,45.48],"6-57-52":[-2779.21,42.18],"6-57-53":[-2770.8,42.48],"5-28-26":[-4034.45,42.48],"6-57-54":[-2250.06,2074.83],"6-57-55":[-937.18,1823.2],"5-28-27":[-2250.06,2074.83],"6-57-56":[-2391.06,13.36],"6-57-57":[-1732.19,11.7],"5-28-28":[-2391.06,1329.89],"6-57-58":[-480,1116.85],"6-57-59":[-648.11,1811.71],"5-28-29":[-1105.87,1811.71],"6-57-60":[-581.27,1663.61],"6-57-61":[-3797.26,2225.4],"5-28-30":[-3797.26,2225.4],"6-57-62":[-4462.42,2420.8],"6-57-63":[-4395.9,2746.48],"5-28-31":[-4500.76,2746.48],"6-58-0":[-1148.46,66.14],"6-58-1":[-665.78,663],"6-58-2":[-313.37,1111.16],"6-58-3":[-1468.54,664.4],"6-58-4":[-1187.8,1036.71],"6-58-5":[-1368.34,949.82],"6-58-6":[-4702.71,116.37],"6-58-7":[-4948.55,124.92],"6-58-8":[-5107.83,1885.38],"6-58-9":[-5547.42,2140.58],"6-58-10":[-5606.58,121.69],"6-58-11":[-6067.01,123.87],"6-58-12":[-5079.01,123.87],"6-58-13":[-4653.01,123.14],"6-58-14":[-4703.6,119.28],"6-58-15":[-4200.54,118.34],"6-58-16":[-4449.71,118.05],"6-58-17":[-4235.37,106.08],"6-58-18":[-4790.67,104.94],"6-58-19":[-4811.33,99.37],"6-58-20":[-4716.62,1402.2],"6-58-21":[-4379.44,3730.85],"6-58-22":[-4656.43,1980.83],"6-58-23":[-5347.55,745.87],"6-58-24":[-5267.8,535.71],"6-58-25":[-5167.21,356.34],"6-58-26":[-4869.58,135.29],"6-58-27":[-4636.76,301.55],"6-58-28":[-4670.67,458.6],"6-58-29":[-4517.78,728.66],"6-58-30":[-4838.32,41.91],"6-58-31":[-5688.29,38.21],"6-58-32":[-5734.08,38.21],"6-58-33":[-5055.81,33.98],"6-58-34":[-5032.26,864.67],"6-58-35":[-4600.32,429.6],"6-58-36":[-54.18,293.54],"6-58-37":[-1031.12,160.54],"6-58-38":[-1535.05,305.33],"6-58-39":[-68.02,458.89],"6-58-40":[-2869.5,631.86],"6-58-41":[-3974.67,1938.63],"6-58-42":[-4394.56,3619.16],"6-58-43":[-4562.11,1377.96],"6-58-44":[-5087.64,40.21],"6-58-45":[-5651.93,47.1],"6-58-46":[-5721.22,50.18],"6-58-47":[-5752.16,52.72],"6-58-48":[-4937.63,54.26],"6-58-49":[-4956.28,51.82],"6-58-50":[-4777.71,49.92],"6-58-51":[-3124.35,46.02],"6-58-52":[-1653.76,42.72],"6-58-53":[-2623.27,41.86],"6-58-54":[-2249.64,2067.07],"6-58-55":[-1286.31,1823.02],"6-58-56":[-1838.64,13.48],"6-58-57":[-2627.31,357.87],"6-58-58":[-2489.23,1674.63],"6-58-59":[-525.93,1949.57],"6-58-60":[-412.71,1790.34],"6-58-61":[-3836.73,2289.94],"6-58-62":[-4429.02,2460.86],"6-58-63":[-4376.9,2746.48],"6-59-0":[-1206.49,37.79],"6-59-1":[-771.79,804.61],"5-29-0":[-1206.49,804.61],"6-59-2":[-502.92,913.12],"6-59-3":[-1477.39,666.92],"5-29-1":[-1477.39,1111.16],"4-14-0":[-2742.33,1544.62],"6-59-4":[-1221.06,985.85],"6-59-5":[-1102.26,2634.47],"5-29-2":[-1368.34,2634.47],"6-59-6":[-4507.92,590.06],"6-59-7":[-5028.45,119.95],"5-29-3":[-5028.45,590.06],"4-14-1":[-5028.45,2634.47],"6-59-8":[-5146.03,1189.75],"6-59-9":[-5583.49,125.87],"5-29-4":[-5583.49,2140.58],"6-59-10":[-5586.8,120.74],"6-59-11":[-6953.14,121.48],"5-29-5":[-6953.14,123.87],"4-14-2":[-6953.14,2140.58],"6-59-12":[-5147.12,121.88],"6-59-13":[-4354.82,123],"5-29-6":[-5147.12,123.87],"6-59-14":[-4318.08,118.25],"6-59-15":[-5252.69,112.43],"5-29-7":[-5252.69,119.28],"4-14-3":[-5631.13,127.18],"6-59-16":[-4267.14,112.43],"6-59-17":[-4115.34,102.32],"5-29-8":[-4449.71,118.05],"6-59-18":[-4149.18,1976.1],"6-59-19":[-4477.69,98.54],"5-29-9":[-4811.33,1976.1],"4-14-4":[-4920.4,1976.1],"6-59-20":[-4890.61,88.87],"6-59-21":[-4996.43,731.97],"5-29-10":[-4996.43,3730.85],"6-59-22":[-5046.75,609.23],"6-59-23":[-5769,951.26],"5-29-11":[-5769,1980.83],"4-14-5":[-5777.15,3730.85],"6-59-24":[-5613.69,838.62],"6-59-25":[-4980.13,699.41],"5-29-12":[-5613.69,838.62],"6-59-26":[-4879.62,480.98],"6-59-27":[-4556.45,1567.34],"5-29-13":[-4879.62,1567.34],"4-14-6":[-6107.29,1567.34],"6-59-28":[-3942.58,1463.87],"6-59-29":[-5153.94,935.28],"5-29-14":[-5153.94,1463.87],"6-59-30":[-4808.82,49.38],"6-59-31":[-5536.73,40.51],"5-29-15":[-5688.29,49.38],"4-14-7":[-7749.42,1463.87],"6-59-32":[-5359.65,40.61],"6-59-33":[-4901.26,39.26],"5-29-16":[-5734.08,40.61],"6-59-34":[-4767.54,846.28],"6-59-35":[-25.15,1448.88],"5-29-17":[-5032.26,1448.88],"4-14-8":[-6535.92,1448.88],"6-59-36":[8.78,1514.42],"6-59-37":[8.23,473.97],"5-29-18":[-1031.12,1514.42],"6-59-38":[8.08,659.04],"6-59-39":[8.16,820.4],"5-29-19":[-1535.05,820.4],"4-14-9":[-5112.44,1514.42],"6-59-40":[9.22,900.26],"6-59-41":[-1973.23,613.04],"5-29-20":[-3974.67,1938.63],"6-59-42":[-3432.46,677.68],"6-59-43":[-4528.95,35.12],"5-29-21":[-4562.11,3619.16],"4-14-10":[-5362.66,3619.16],"6-59-44":[-5013.92,39.98],"6-59-45":[-5484.61,2060.11],"5-29-22":[-5651.93,2060.11],"6-59-46":[-5484.61,50.12],"6-59-47":[-5342,52.47],"5-29-23":[-5752.16,52.72],"4-14-11":[-6001.14,2060.11],"6-59-48":[-5782.44,55.19],"6-59-49":[-4748.58,55.91],"5-29-24":[-5782.44,55.91],"6-59-50":[-2644.4,53.48],"6-59-51":[-2954.78,49.06],"5-29-25":[-4777.71,53.48],"4-14-12":[-5782.44,55.91],"6-59-52":[-2619.14,44.55],"6-59-53":[-2018.58,39.12],"5-29-26":[-2623.27,44.55],"6-59-54":[-1697.04,33.19],"6-59-55":[-1710.62,1126.25],"5-29-27":[-2249.64,2067.07],"4-14-13":[-4034.45,2074.83],"6-59-56":[-2070.49,14.62],"6-59-57":[-3062.21,608.1],"5-29-28":[-3062.21,608.1],"6-59-58":[-2999.86,2647.27],"6-59-59":[-474.44,2213.91],"5-29-29":[-2999.86,2647.27],"4-14-14":[-3062.21,2647.27],"6-59-60":[-374.42,1899.59],"6-59-61":[-3953.82,2337.34],"5-29-30":[-3953.82,2337.34],"6-59-62":[-4440.83,2494.91],"6-59-63":[-4361.23,2746.48],"5-29-31":[-4440.83,2746.48],"4-14-15":[-4500.76,2746.48],"6-60-0":[-1299.63,37.78],"6-60-1":[-925.01,799.08],"6-60-2":[-888.63,844.65],"6-60-3":[-1564.59,1285.49],"6-60-4":[-1370.09,821.15],"6-60-5":[-861.46,2604.03],"6-60-6":[-2131.54,850.01],"6-60-7":[-5034.9,115.86],"6-60-8":[-5132.02,123.35],"6-60-9":[-5381,123.85],"6-60-10":[-5892.44,119.67],"6-60-11":[-6972.08,467.08],"6-60-12":[-5129.93,847.15],"6-60-13":[-4115.41,1061.19],"6-60-14":[-5149.97,118.9],"6-60-15":[-4197.74,106.06],"6-60-16":[-4496.35,848.03],"6-60-17":[-4334.49,934.31],"6-60-18":[-4285.89,948.19],"6-60-19":[-4575.69,97.22],"6-60-20":[-4698.24,3428.78],"6-60-21":[-4892.13,3435.16],"6-60-22":[-4748.59,753.26],"6-60-23":[-5350.38,625.45],"6-60-24":[-4910.61,621.86],"6-60-25":[-4648.03,616.33],"6-60-26":[-4676.41,571.22],"6-60-27":[-4867.15,986.01],"6-60-28":[-4699.54,1965.58],"6-60-29":[-4703.7,1465.14],"6-60-30":[-4667.95,448.45],"6-60-31":[-5397.54,41.59],"6-60-32":[-5480.26,40.1],"6-60-33":[-4905.17,384.5],"6-60-34":[-3030.57,1362.69],"6-60-35":[11.08,1866.57],"6-60-36":[9.95,974],"6-60-37":[10.09,560.21],"6-60-38":[10.53,590.61],"6-60-39":[11.82,617.24],"6-60-40":[12.34,504.44],"6-60-41":[13.01,728.38],"6-60-42":[-2724.53,3423.9],"6-60-43":[-4462.04,3558.63],"6-60-44":[-4869.33,38.1],"6-60-45":[-5088.63,920.71],"6-60-46":[-5053.46,931.45],"6-60-47":[-5012.51,826.02],"6-60-48":[-5033.05,56.45],"6-60-49":[-4522.14,56.31],"6-60-50":[-1171.04,965.28],"6-60-51":[-2688.99,777.38],"6-60-52":[-2494.46,322.12],"6-60-53":[-2239.43,37.45],"6-60-54":[-2334.36,27.21],"6-60-55":[-2566.02,18.18],"6-60-56":[-2200.43,18.97],"6-60-57":[-2916.5,1445.48],"6-60-58":[-3327.48,2647.27],"6-60-59":[-1547.91,2378.63],"6-60-60":[-2292.77,2084.27],"6-60-61":[-3981.16,2371.33],"6-60-62":[-4419.87,2524.96],"6-60-63":[-4393.27,2746.49],"6-61-0":[-1249.62,37.76],"6-61-1":[-1112.88,587.07],"5-30-0":[-1299.63,799.08],"6-61-2":[-1546.38,649.12],"6-61-3":[-1554.59,1436.28],"5-30-1":[-1564.59,1436.28],"6-61-4":[-1101.76,882.21],"6-61-5":[-477.94,2622.95],"5-30-2":[-1370.09,2622.95],"6-61-6":[-1793.98,2094.27],"6-61-7":[-4983.68,110.49],"5-30-3":[-5034.9,2094.27],"6-61-8":[-5222.84,113.62],"6-61-9":[-5428.09,792.85],"5-30-4":[-5428.09,792.85],"6-61-10":[-5710.62,472.86],"6-61-11":[-5248.33,998.82],"5-30-5":[-6972.08,998.82],"6-61-12":[-4485.39,911.33],"6-61-13":[-3387.91,978.67],"5-30-6":[-5129.93,1061.19],"6-61-14":[-4788.04,275.17],"6-61-15":[-4478.72,105.85],"5-30-7":[-5149.97,275.17],"6-61-16":[-4586.88,2441.8],"6-61-17":[-4535.47,2479.29],"5-30-8":[-4586.88,2479.29],"6-61-18":[-4473.78,1153.69],"6-61-19":[-4636.74,1045.54],"5-30-9":[-4636.74,1153.69],"6-61-20":[-4641.17,3969.25],"6-61-21":[-4928.56,3240.15],"5-30-10":[-4928.56,3969.25],"6-61-22":[-4945.72,538.03],"6-61-23":[-5865.09,581.24],"5-30-11":[-5865.09,753.26],"6-61-24":[-5850.78,518.07],"6-61-25":[-5370.23,456.49],"5-30-12":[-5850.78,621.86],"6-61-26":[-4853.21,2075.33],"6-61-27":[-5280.81,725.34],"5-30-13":[-5280.81,2075.33],"6-61-28":[-4922.18,1263.81],"6-61-29":[-5222.98,1793.46],"5-30-14":[-5222.98,1965.58],"6-61-30":[-5291.44,563.59],"6-61-31":[-5622.65,40.64],"5-30-15":[-5622.65,563.59],"6-61-32":[-5631.84,39.27],"6-61-33":[-4922.72,482.59],"5-30-16":[-5631.84,482.59],"6-61-34":[14.28,1670.46],"6-61-35":[11.71,1228.8],"5-30-17":[-3030.57,1866.57],"6-61-36":[11.3,718.33],"6-61-37":[-99.67,814.4],"5-30-18":[-99.67,974],"6-61-38":[11.9,417.33],"6-61-39":[12.45,434.7],"5-30-19":[10.53,617.24],"6-61-40":[12.64,544.46],"6-61-41":[13.85,536.59],"5-30-20":[12.34,728.38],"6-61-42":[-160.95,3255.79],"6-61-43":[-137.3,4091.3],"5-30-21":[-4462.04,4091.3],"6-61-44":[-3374.34,1009.54],"6-61-45":[-1542.98,1097.45],"5-30-22":[-5088.63,1097.45],"6-61-46":[21.26,2425.69],"6-61-47":[-4937.09,2341.94],"5-30-23":[-5053.46,2425.69],"6-61-48":[-4955.38,53.23],"6-61-49":[-2050.17,264.6],"5-30-24":[-5033.05,264.6],"6-61-50":[-85.62,935.9],"6-61-51":[-216.07,827.24],"5-30-25":[-2688.99,965.28],"6-61-52":[-1523.2,893.55],"6-61-53":[-1457.29,582.89],"5-30-26":[-2494.46,893.55],"6-61-54":[-3630.65,832.57],"6-61-55":[-3897.67,20.65],"5-30-27":[-3897.67,832.57],"6-61-56":[-3381.61,20.76],"6-61-57":[-3738.02,2173.37],"5-30-28":[-3738.02,2173.37],"6-61-58":[-3509.49,2720.05],"6-61-59":[-2958.98,2519.15],"5-30-29":[-3509.49,2720.05],"6-61-60":[-3517.99,2242.55],"6-61-61":[-4835.02,2404.88],"5-30-30":[-4835.02,2404.88],"6-61-62":[-4382.08,2555.1],"6-61-63":[-4356.44,2747.47],"5-30-31":[-4419.87,2747.47],"6-62-0":[-1240.53,37.73],"6-62-1":[-744.04,572.31],"6-62-2":[-1580.4,576.58],"6-62-3":[-1451.86,615.97],"6-62-4":[-1027.1,702.71],"6-62-5":[-541.12,2552.32],"6-62-6":[-1283.7,2664.01],"6-62-7":[-4784.72,103.88],"6-62-8":[-5202.61,107.83],"6-62-9":[-5387.25,111.74],"6-62-10":[-5726.24,298.22],"6-62-11":[-5787.56,1388.09],"6-62-12":[-5721.89,1035.94],"6-62-13":[-3686.08,1109.06],"6-62-14":[-4480.28,639.9],"6-62-15":[-4790.76,219.03],"6-62-16":[-4896.5,2687.22],"6-62-17":[-5213.44,2577.79],"6-62-18":[-5267.5,3501.33],"6-62-19":[-4911.78,2419.81],"6-62-20":[-5018.1,3718.38],"6-62-21":[-5389.78,1721.06],"6-62-22":[-5293.41,696.4],"6-62-23":[-6394.68,471.46],"6-62-24":[-6204.36,407.06],"6-62-25":[-6073.72,487.53],"6-62-26":[-5931.72,1006.14],"6-62-27":[-5677.56,631.61],"6-62-28":[-6118.85,789.75],"6-62-29":[-6377.35,766.66],"6-62-30":[-5920.61,332.62],"6-62-31":[-5347.75,38.68],"6-62-32":[-5283.42,38.48],"6-62-33":[-5043.38,317.61],"6-62-34":[14.55,749.67],"6-62-35":[12.03,765.74],"6-62-36":[12.1,606.6],"6-62-37":[12.83,948.09],"6-62-38":[12.65,466.53],"6-62-39":[13.05,375.52],"6-62-40":[13.65,421.27],"6-62-41":[15.43,679.87],"6-62-42":[16.17,1792.55],"6-62-43":[16.17,3730.02],"6-62-44":[-1802.42,2423.6],"6-62-45":[-795.86,3440.21],"6-62-46":[17.78,2505.49],"6-62-47":[-4748.41,2581.45],"6-62-48":[-4763.6,209.81],"6-62-49":[-141.99,627.25],"6-62-50":[-120.06,1059.5],"6-62-51":[-251.76,960.71],"6-62-52":[-247.14,1324.16],"6-62-53":[-1590.71,281.57],"6-62-54":[-3485.5,25.96],"6-62-55":[-3904.05,22.36],"6-62-56":[-3764.97,20.96],"6-62-57":[-3158.94,2479.23],"6-62-58":[-3693.62,2850.41],"6-62-59":[-3705.92,2618.27],"6-62-60":[-4289.29,2314.66],"6-62-61":[-4712.91,2457.95],"6-62-62":[-4452.31,2581.14],"6-62-63":[-4363.32,2749.47],"6-63-0":[-1319.19,37.73],"6-63-1":[-591,629.84],"5-31-0":[-1319.19,629.84],"6-63-2":[-1565.59,582.77],"6-63-3":[-787.72,708.63],"5-31-1":[-1580.4,708.63],"4-15-0":[-1580.4,1436.28],"6-63-4":[-1062.91,441.27],"6-63-5":[-825.64,2411.62],"5-31-2":[-1062.91,2552.32],"6-63-6":[-2079.21,2153.36],"6-63-7":[-4632.1,101.1],"5-31-3":[-4784.72,2664.01],"4-15-1":[-5034.9,2664.01],"3-7-0":[-5034.9,2664.01],"6-63-8":[-5168.36,103.66],"6-63-9":[-5405.65,103.55],"5-31-4":[-5405.65,111.74],"6-63-10":[-5625.94,500.18],"6-63-11":[-5368.78,821.88],"5-31-5":[-5787.56,1388.09],"4-15-2":[-6972.08,1388.09],"6-63-12":[-5779.91,942.82],"6-63-13":[-3150.45,686.85],"5-31-6":[-5779.91,1109.06],"6-63-14":[-4455.82,466.81],"6-63-15":[-4710.93,332.21],"5-31-7":[-4790.76,639.9],"4-15-3":[-5779.91,1109.06],"3-7-1":[-6972.08,2140.58],"2-3-0":[-8445.16,3982.86],"6-63-16":[-4828.77,3299.64],"6-63-17":[-5389.17,2357.66],"5-31-8":[-5389.17,3299.64],"6-63-18":[-5668.97,2423.37],"6-63-19":[-5265.41,1802.73],"5-31-9":[-5668.97,3501.33],"4-15-4":[-5668.97,3501.33],"6-63-20":[-5105.1,2177.76],"6-63-21":[-5430.78,856.94],"5-31-10":[-5430.78,3718.38],"6-63-22":[-6103,519.6],"6-63-23":[-6129.72,407.48],"5-31-11":[-6394.68,696.4],"4-15-5":[-6394.68,3969.25],"3-7-2":[-6394.68,3969.25],"6-63-24":[-6145.98,556.84],"6-63-25":[-6723.66,577.03],"5-31-12":[-6723.66,577.03],"6-63-26":[-6115.4,1303.84],"6-63-27":[-6907.8,572.26],"5-31-13":[-6907.8,1303.84],"4-15-6":[-6907.8,2075.33],"6-63-28":[-6077.21,555.42],"6-63-29":[-5349.22,874.92],"5-31-14":[-6377.35,874.92],"6-63-30":[-5907.53,370.77],"6-63-31":[-5392.83,36.2],"5-31-15":[-5920.61,370.77],"4-15-7":[-6377.35,1965.58],"3-7-3":[-7749.42,2075.33],"2-3-1":[-7749.42,3969.25],"1-1-0":[-8983.51,6823.9],"6-63-32":[-5237.08,36.78],"6-63-33":[-5332.47,337.3],"5-31-16":[-5332.47,337.3],"6-63-34":[12.34,850.91],"6-63-35":[10.7,534.42],"5-31-17":[10.7,850.91],"4-15-8":[-5631.84,1866.57],"6-63-36":[11.05,535.26],"6-63-37":[12.72,1059.45],"5-31-18":[11.05,1059.45],"6-63-38":[13.43,539.26],"6-63-39":[14.75,528.02],"5-31-19":[12.65,539.26],"4-15-9":[-99.67,1059.45],"3-7-4":[-6535.92,1866.57],"6-63-40":[15.89,392.77],"6-63-41":[17.66,514.08],"5-31-20":[13.65,679.87],"6-63-42":[18.18,854.51],"6-63-43":[17.22,2207.98],"5-31-21":[16.17,3730.02],"4-15-10":[-4462.04,4091.3],"6-63-44":[-2692.96,1819.27],"6-63-45":[-2727.24,2335.87],"5-31-22":[-2727.24,3440.21],"6-63-46":[-94.68,2294.55],"6-63-47":[-3267.83,3213.77],"5-31-23":[-4748.41,3213.77],"4-15-11":[-5088.63,3440.21],"3-7-5":[-6001.14,4091.3],"2-3-2":[-7677.07,4091.3],"6-63-48":[-2413.96,314.06],"6-63-49":[-125.93,458.45],"5-31-24":[-4763.6,627.25],"6-63-50":[-10.71,680.68],"6-63-51":[-74.8,920.28],"5-31-25":[-251.76,1059.5],"4-15-12":[-5033.05,1059.5],"6-63-52":[-207.69,768.72],"6-63-53":[-1592.49,477.85],"5-31-26":[-1592.49,1324.16],"6-63-54":[-3090.17,27.14],"6-63-55":[-3709.78,26.46],"5-31-27":[-3904.05,27.14],"4-15-13":[-3904.05,1324.16],"3-7-6":[-5782.44,2074.83],"6-63-56":[-3741.06,27.93],"6-63-57":[-3312.16,2064.74],"5-31-28":[-3764.97,2479.23],"6-63-58":[-3792.48,2924.47],"6-63-59":[-3755.19,2804.3],"5-31-29":[-3792.48,2924.47],"4-15-14":[-3792.48,2924.47],"6-63-60":[-4389.4,2430.85],"6-63-61":[-4358.46,2498.87],"5-31-30":[-4712.91,2498.87],"6-63-62":[-4399.93,2597.05],"6-63-63":[-4364.12,2749.47],"5-31-31":[-4452.31,2749.47],"4-15-15":[-4835.02,2749.47],"3-7-7":[-4835.02,2924.47],"2-3-3":[-5782.44,3601.13],"1-1-1":[-8765.31,6969.13],"0-0-0":[-10751.44,6969.13],"6-64-0":[-1334.18,71.4],"6-64-1":[-500.53,635.35],"6-64-2":[-1479.4,533.01],"6-64-3":[-727.38,868.41],"6-64-4":[-758.4,672.79],"6-64-5":[-493.96,1542.28],"6-64-6":[-1124.19,2748.59],"6-64-7":[-4705.66,97.64],"6-64-8":[-4703.7,101.59],"6-64-9":[-5432.74,100.52],"6-64-10":[-5630.75,100.56],"6-64-11":[-5630.75,95.58],"6-64-12":[-5345.91,93.35],"6-64-13":[-3563.83,320.14],"6-64-14":[-4443.47,478.36],"6-64-15":[-5021.66,1880.44],"6-64-16":[-5151.99,3439.27],"6-64-17":[-5464.6,2431.2],"6-64-18":[-5552.88,942.66],"6-64-19":[-5435.68,1847.74],"6-64-20":[-5111.48,1993.84],"6-64-21":[-5001.86,739.39],"6-64-22":[-5851.42,750.53],"6-64-23":[-5757.84,1166.19],"6-64-24":[-5891.23,962.42],"6-64-25":[-6214.46,863.32],"6-64-26":[-6405.06,556.46],"6-64-27":[-5931.02,439.96],"6-64-28":[-5910,880.1],"6-64-29":[-5948.93,1022.44],"6-64-30":[-5525.52,111.21],"6-64-31":[-5035.82,34.38],"6-64-32":[-5581.84,36.77],"6-64-33":[-4837,36.62],"6-64-34":[-3062.65,975.32],"6-64-35":[9.43,830.09],"6-64-36":[10.62,427.95],"6-64-37":[12.53,530.46],"6-64-38":[14.73,818.13],"6-64-39":[16.29,941.03],"6-64-40":[19.97,1131.19],"6-64-41":[19.97,747.03],"6-64-42":[20.9,738.64],"6-64-43":[20.23,1991.34],"6-64-44":[-2678.87,1870.96],"6-64-45":[-3009.41,892.45],"6-64-46":[-2298.84,2396.54],"6-64-47":[20.07,3307.05],"6-64-48":[21.17,1814.23],"6-64-49":[-19.17,460.22],"6-64-50":[-31.06,303.6],"6-64-51":[-119.99,69.5],"6-64-52":[-193.68,48.1],"6-64-53":[-365.14,33.44],"6-64-54":[-2807.25,34.01],"6-64-55":[-3663.22,33.97],"6-64-56":[-3651.68,28.87],"6-64-57":[-3375.09,2706.61],"6-64-58":[-3885.42,2970.03],"6-64-59":[-3243.34,2947.12],"6-64-60":[-5524.14,2543.75],"6-64-61":[-4267.84,2526.16],"6-64-62":[-4884.95,2618.03],"6-64-63":[-4358.43,2752.45],"6-65-0":[-1098.57,57.45],"6-65-1":[-389.02,564.12],"5-32-0":[-1334.18,635.35],"6-65-2":[-1174.16,508.61],"6-65-3":[-740.81,668.75],"5-32-1":[-1479.4,868.41],"6-65-4":[-627.75,699.43],"6-65-5":[-30.98,1367.57],"5-32-2":[-758.4,1542.28],"6-65-6":[-873.13,2772.09],"6-65-7":[-4574.33,94.7],"5-32-3":[-4705.66,2772.09],"6-65-8":[-4519.12,94.18],"6-65-9":[-5430.79,935.72],"5-32-4":[-5432.74,935.72],"6-65-10":[-5726.93,1428.23],"6-65-11":[-6027.37,136.3],"5-32-5":[-6027.37,1428.23],"6-65-12":[-5142.23,676.88],"6-65-13":[-4740.25,286.33],"5-32-6":[-5345.91,676.88],"6-65-14":[-4635.6,643.32],"6-65-15":[-5295.44,2274.24],"5-32-7":[-5295.44,2274.24],"6-65-16":[-5773.02,2373.31],"6-65-17":[-5528.15,1377.73],"5-32-8":[-5773.02,3439.27],"6-65-18":[-5597.07,1623.57],"6-65-19":[-5634.6,2161.99],"5-32-9":[-5634.6,2161.99],"6-65-20":[-5459.42,941.46],"6-65-21":[-5394.57,739.39],"5-32-10":[-5459.42,1993.84],"6-65-22":[-5524.01,1758.12],"6-65-23":[-5571.83,2914.18],"5-32-11":[-5851.42,2914.18],"6-65-24":[-5683.47,1308.02],"6-65-25":[-6049.62,733.03],"5-32-12":[-6214.46,1308.02],"6-65-26":[-5647.11,683.02],"6-65-27":[-5806.28,527.99],"5-32-13":[-6405.06,683.02],"6-65-28":[-5769.39,650.86],"6-65-29":[-5697.53,1095.61],"5-32-14":[-5948.93,1095.61],"6-65-30":[-5530.49,66.62],"6-65-31":[-4657.52,281.88],"5-32-15":[-5530.49,281.88],"6-65-32":[-4440.82,391.88],"6-65-33":[-4218.77,47.91],"5-32-16":[-5581.84,391.88],"6-65-34":[-2997.79,933.61],"6-65-35":[8.94,572.18],"5-32-17":[-3062.65,975.32],"6-65-36":[10.62,508.69],"6-65-37":[12.58,666.01],"5-32-18":[10.62,666.01],"6-65-38":[14.93,725.01],"6-65-39":[17.15,1254.61],"5-32-19":[14.73,1254.61],"6-65-40":[20.87,2815.18],"6-65-41":[22.64,1798.58],"5-32-20":[19.97,2815.18],"6-65-42":[22.51,738.64],"6-65-43":[20.23,937.99],"5-32-21":[20.23,1991.34],"6-65-44":[17.99,2193.6],"6-65-45":[-2963.47,1675],"5-32-22":[-3009.41,2193.6],"6-65-46":[-2928.08,1301.3],"6-65-47":[-2362.09,2234.57],"5-32-23":[-2928.08,3307.05],"6-65-48":[21.17,2126.31],"6-65-49":[-49.16,634.25],"5-32-24":[-49.16,2126.31],"6-65-50":[-3.62,255.51],"6-65-51":[-34.57,778.86],"5-32-25":[-119.99,778.86],"6-65-52":[-310.82,125.03],"6-65-53":[-1207.43,1371.74],"5-32-26":[-1207.43,1371.74],"6-65-54":[-2395.72,894.58],"6-65-55":[-2359.67,34.42],"5-32-27":[-3663.22,894.58],"6-65-56":[-3251.41,29.79],"6-65-57":[-3500.86,3054.91],"5-32-28":[-3651.68,3054.91],"6-65-58":[-3769.91,3100.96],"6-65-59":[-3303.24,3103.71],"5-32-29":[-3885.42,3103.71],"6-65-60":[-5524.14,2692.57],"6-65-61":[-4197.79,2548.45],"5-32-30":[-5524.14,2692.57],"6-65-62":[-5404.2,2639.22],"6-65-63":[-4369.78,2753.44],"5-32-31":[-5404.2,2753.44],"6-66-0":[-1299.53,57.45],"6-66-1":[-546.13,504.13],"6-66-2":[-1357.4,434.6],"6-66-3":[-827.83,430.64],"6-66-4":[-325.44,548.76],"6-66-5":[-25.54,1298.81],"6-66-6":[-925.44,3079.8],"6-66-7":[-4327.24,90.09],"6-66-8":[-4943.8,87.08],"6-66-9":[-5452.19,2049.01],"6-66-10":[-5694.43,2462.53],"6-66-11":[-5794.53,1233.38],"6-66-12":[-5386.45,117],"6-66-13":[-4487.2,876.36],"6-66-14":[-4794.62,1537.53],"6-66-15":[-5225.42,4840.9],"6-66-16":[-5125.62,4069.35],"6-66-17":[-6457.04,838.48],"6-66-18":[-5626.94,1553.78],"6-66-19":[-5791.54,2250.36],"6-66-20":[-5551.91,336.76],"6-66-21":[-5781.56,611.03],"6-66-22":[-5219.71,1857.82],"6-66-23":[-4876.68,2746.4],"6-66-24":[-5426.1,1769.87],"6-66-25":[-5582.63,1672.93],"6-66-26":[-5492.86,774.79],"6-66-27":[-5473.4,874.43],"6-66-28":[-5417.7,1294.91],"6-66-29":[-5122.17,816.36],"6-66-30":[-4914.13,431.08],"6-66-31":[-4204.51,2007.45],"6-66-32":[-3670.86,1816.45],"6-66-33":[-2644.22,362.07],"6-66-34":[7.09,766.35],"6-66-35":[8.79,1258.09],"6-66-36":[11.61,820.42],"6-66-37":[13.1,766.79],"6-66-38":[15.69,1619.97],"6-66-39":[19.55,1713.86],"6-66-40":[22.63,2725.4],"6-66-41":[24.02,1802.55],"6-66-42":[22.8,608.18],"6-66-43":[22.8,289.7],"6-66-44":[-3.93,2284.42],"6-66-45":[-3107.33,1585.24],"6-66-46":[-2944.98,813.79],"6-66-47":[-2724.13,3919.02],"6-66-48":[23.35,4706.54],"6-66-49":[23.35,1505.08],"6-66-50":[-149.54,861.98],"6-66-51":[-21.04,111.68],"6-66-52":[-546.34,1206.24],"6-66-53":[-1225.97,2364.91],"6-66-54":[-740.87,2008.92],"6-66-55":[-1651.18,33.84],"6-66-56":[-3214.03,30.48],"6-66-57":[-3430.56,3138.57],"6-66-58":[-3550.91,3267.05],"6-66-59":[-3667.44,3207.22],"6-66-60":[-2502.69,2800.27],"6-66-61":[-4064.25,2565.62],"6-66-62":[-5150.03,2666.15],"6-66-63":[-4380.24,2755.44],"6-67-0":[-1411.07,38.77],"6-67-1":[-777.85,325.07],"5-33-0":[-1411.07,504.13],"6-67-2":[-1008.17,301.02],"6-67-3":[-841.35,786.22],"5-33-1":[-1357.4,786.22],"4-16-0":[-1479.4,868.41],"6-67-4":[-120.01,946.45],"6-67-5":[24.93,1165.91],"5-33-2":[-325.44,1298.81],"6-67-6":[-675.67,2826.89],"6-67-7":[-4145.22,85.5],"5-33-3":[-4327.24,3079.8],"4-16-1":[-4705.66,3079.8],"6-67-8":[-5265.72,197.75],"6-67-9":[-6317.1,2315.19],"5-33-4":[-6317.1,2315.19],"6-67-10":[-5541.28,2472.36],"6-67-11":[-6275.45,847.8],"5-33-5":[-6275.45,2472.36],"4-16-2":[-6317.1,2472.36],"6-67-12":[-5974.42,217.69],"6-67-13":[-6088.36,1186.21],"5-33-6":[-6088.36,1186.21],"6-67-14":[-4895.96,1069.93],"6-67-15":[-5222.06,4029.26],"5-33-7":[-5225.42,4840.9],"4-16-3":[-6088.36,4840.9],"6-67-16":[-5683.46,2694.01],"6-67-17":[-5551.89,2374.38],"5-33-8":[-6457.04,4069.35],"6-67-18":[-6708.74,1143.75],"6-67-19":[-5720.89,1413.3],"5-33-9":[-6708.74,2250.36],"4-16-4":[-6708.74,4069.35],"6-67-20":[-5387.04,728.47],"6-67-21":[-5364.72,762.97],"5-33-10":[-5781.56,762.97],"6-67-22":[-5068.72,1483.6],"6-67-23":[-4831.99,1924.9],"5-33-11":[-5219.71,2746.4],"4-16-5":[-5851.42,2914.18],"6-67-24":[-5042.96,1977.29],"6-67-25":[-5197.69,2023.83],"5-33-12":[-5582.63,2023.83],"6-67-26":[-5129.75,714.89],"6-67-27":[-4799.44,784.44],"5-33-13":[-5492.86,874.43],"4-16-6":[-6405.06,2023.83],"6-67-28":[-4895.37,1784.96],"6-67-29":[-4493.72,3028.39],"5-33-14":[-5417.7,3028.39],"6-67-30":[-4058.35,4049.43],"6-67-31":[-2094.93,1231.48],"5-33-15":[-4914.13,4049.43],"4-16-7":[-5948.93,4049.43],"6-67-32":[-2544.85,1215.48],"6-67-33":[-2020.52,4000.43],"5-33-16":[-3670.86,4000.43],"6-67-34":[7.15,2977.39],"6-67-35":[9.03,1719.96],"5-33-17":[7.09,2977.39],"4-16-8":[-5581.84,4000.43],"6-67-36":[13.46,738.44],"6-67-37":[14.74,703.93],"5-33-18":[11.61,820.42],"6-67-38":[16.09,1946.83],"6-67-39":[20.85,1936.29],"5-33-19":[15.69,1946.83],"4-16-9":[10.62,1946.83],"6-67-40":[22.3,1877.89],"6-67-41":[23.96,1519.31],"5-33-20":[22.3,2725.4],"6-67-42":[24.8,762.58],"6-67-43":[-5.04,735.58],"5-33-21":[-5.04,762.58],"4-16-10":[-5.04,2815.18],"6-67-44":[-201.67,1518.16],"6-67-45":[-2914.72,1093.52],"5-33-22":[-3107.33,2284.42],"6-67-46":[-3023.85,2311.56],"6-67-47":[-2615.5,2568.33],"5-33-23":[-3023.85,3919.02],"4-16-11":[-3107.33,3919.02],"6-67-48":[-59.72,3904.84],"6-67-49":[23.85,1041.93],"5-33-24":[-59.72,4706.54],"6-67-50":[25.43,1154.04],"6-67-51":[-23.45,205.77],"5-33-25":[-149.54,1154.04],"4-16-12":[-149.54,4706.54],"6-67-52":[-660.53,831.59],"6-67-53":[-319.12,2383.62],"5-33-26":[-1225.97,2383.62],"6-67-54":[-558.14,2178.23],"6-67-55":[-1422.15,180.11],"5-33-27":[-1651.18,2178.23],"4-16-13":[-3663.22,2383.62],"6-67-56":[-3048.46,32.07],"6-67-57":[-2893.81,3175.51],"5-33-28":[-3430.56,3175.51],"6-67-58":[-3427.44,3414.15],"6-67-59":[-2366.66,3300.16],"5-33-29":[-3667.44,3414.15],"4-16-14":[-3885.42,3414.15],"6-67-60":[-2060.67,2920.73],"6-67-61":[-4046.55,2579.65],"5-33-30":[-4064.25,2920.73],"6-67-62":[-5067.2,2681.47],"6-67-63":[-4376.88,2759.37],"5-33-31":[-5150.03,2759.37],"4-16-15":[-5524.14,2920.73],"6-68-0":[-1395.97,228.71],"6-68-1":[-746.57,344.56],"6-68-2":[-1204.84,600.81],"6-68-3":[-573.03,1385.65],"6-68-4":[-211.37,1035.73],"6-68-5":[-227.53,1514.04],"6-68-6":[-1218.75,2800.76],"6-68-7":[-3690.64,1058.54],"6-68-8":[-5160.84,1750.98],"6-68-9":[-6317.1,1810.17],"6-68-10":[-5667.86,1715.33],"6-68-11":[-6260.37,400.65],"6-68-12":[-5691.62,248.2],"6-68-13":[-4704.67,988.47],"6-68-14":[-7020.16,1845.84],"6-68-15":[-5826.45,3777.17],"6-68-16":[-6188.92,2893.68],"6-68-17":[-5692.66,2503.27],"6-68-18":[-5375.56,2005.15],"6-68-19":[-5450.8,209.56],"6-68-20":[-4919.36,965.23],"6-68-21":[-4692.14,1068.73],"6-68-22":[-4667.49,1178.67],"6-68-23":[-4122.01,1310.69],"6-68-24":[-3252.84,1657.37],"6-68-25":[-1445.59,2062.81],"6-68-26":[-3234.01,2330.5],"6-68-27":[-3799.02,2407.12],"6-68-28":[-3849.29,1857.59],"6-68-29":[-2704.63,2461.39],"6-68-30":[-1235.92,1585.63],"6-68-31":[88.63,1076.94],"6-68-32":[52.66,1044.68],"6-68-33":[-17.85,1463.62],"6-68-34":[-25.08,2402.42],"6-68-35":[-3.35,1798.57],"6-68-36":[-2.05,2521.11],"6-68-37":[-19.61,2407.1],"6-68-38":[-21.61,2094.46],"6-68-39":[-59.49,1680.35],"6-68-40":[23.13,1273.22],"6-68-41":[24.24,1174.97],"6-68-42":[25.75,1094.83],"6-68-43":[-510.76,969.01],"6-68-44":[-1838.28,128.05],"6-68-45":[-3559.2,1968.98],"6-68-46":[-3590.74,2422.35],"6-68-47":[-77.86,2768.43],"6-68-48":[-48.75,3568.74],"6-68-49":[26.26,1796.66],"6-68-50":[26.82,970.67],"6-68-51":[-12.7,243.29],"6-68-52":[-81.09,392.83],"6-68-53":[8.74,1613.82],"6-68-54":[-371.45,1720.18],"6-68-55":[-731.98,1680.62],"6-68-56":[-2957.29,876.47],"6-68-57":[-2789.98,3169.81],"6-68-58":[-2473.32,3460.36],"6-68-59":[-2118.53,3384.4],"6-68-60":[-2469.5,3077.24],"6-68-61":[-4044.31,2588.56],"6-68-62":[-5294.54,2693.73],"6-68-63":[-4390.55,2763.36],"6-69-0":[-1534.01,353.71],"6-69-1":[-850.67,488.28],"5-34-0":[-1534.01,488.28],"6-69-2":[-1116.49,724.24],"6-69-3":[-389.05,1634.3],"5-34-1":[-1204.84,1634.3],"6-69-4":[-114.79,1233.17],"6-69-5":[-167.07,1537.33],"5-34-2":[-227.53,1537.33],"6-69-6":[-893.03,2579.46],"6-69-7":[-4333.93,1592.64],"5-34-3":[-4333.93,2800.76],"6-69-8":[-5100.83,1958.98],"6-69-9":[-5438.85,1310.43],"5-34-4":[-6317.1,1958.98],"6-69-10":[-5731.52,797.68],"6-69-11":[-6054.28,411.97],"5-34-5":[-6260.37,1715.33],"6-69-12":[-5152.25,280.51],"6-69-13":[-4670.89,1624.81],"5-34-6":[-5691.62,1624.81],"6-69-14":[-5444.08,1918.97],"6-69-15":[-5602.62,2548.59],"5-34-7":[-7020.16,3777.17],"6-69-16":[-5880.21,1992.85],"6-69-17":[-5615.19,2820.36],"5-34-8":[-6188.92,2893.68],"6-69-18":[-5076.52,3340.97],"6-69-19":[-5031.26,288.67],"5-34-9":[-5450.8,3340.97],"6-69-20":[-4517.89,392.95],"6-69-21":[-2713.93,877.11],"5-34-10":[-4919.36,1068.73],"6-69-22":[-1587.65,1976.43],"6-69-23":[-179.5,2379.26],"5-34-11":[-4667.49,2379.26],"6-69-24":[-76.51,3331.17],"6-69-25":[184,1663.86],"5-34-12":[-3252.84,3331.17],"6-69-26":[148.07,1957.8],"6-69-27":[176.23,2555.3],"5-34-13":[-3799.02,2555.3],"6-69-28":[29.61,2065.15],"6-69-29":[275.12,1747.94],"5-34-14":[-3849.29,2461.39],"6-69-30":[175.88,1070.44],"6-69-31":[253.73,861.8],"5-34-15":[-1235.92,1585.63],"6-69-32":[-26.92,879.81],"6-69-33":[167.87,1051.06],"5-34-16":[-26.92,1463.62],"6-69-34":[256.14,1735.94],"6-69-35":[12.55,2127.16],"5-34-17":[-25.08,2402.42],"6-69-36":[166.21,2639.31],"6-69-37":[175.08,2023.5],"5-34-18":[-19.61,2639.31],"6-69-38":[215,1749.24],"6-69-39":[10.84,3232.15],"5-34-19":[-59.49,3232.15],"6-69-40":[-162.31,2386.26],"6-69-41":[-159.88,2015.68],"5-34-20":[-162.31,2386.26],"6-69-42":[18.98,938.39],"6-69-43":[-2052.93,390.74],"5-34-21":[-2052.93,1094.83],"6-69-44":[-4025.63,257.63],"6-69-45":[-3561.57,3305.09],"5-34-22":[-4025.63,3305.09],"6-69-46":[-3491.33,2729.6],"6-69-47":[-498.59,1910.02],"5-34-23":[-3590.74,2768.43],"6-69-48":[-34.71,2419.32],"6-69-49":[27.99,1810.92],"5-34-24":[-48.75,3568.74],"6-69-50":[27.14,1580.34],"6-69-51":[-65.55,271.04],"5-34-25":[-65.55,1580.34],"6-69-52":[-38.22,401.67],"6-69-53":[22.44,782.08],"5-34-26":[-81.09,1613.82],"6-69-54":[19.27,1264.46],"6-69-55":[-516.11,1855.33],"5-34-27":[-731.98,1855.33],"6-69-56":[-2615.8,1502.36],"6-69-57":[-2563.83,3108.4],"5-34-28":[-2957.29,3169.81],"6-69-58":[-2060.43,3514.26],"6-69-59":[-931.16,3446.22],"5-34-29":[-2473.32,3514.26],"6-69-60":[-2662.69,3147.37],"6-69-61":[-4050.55,2608.3],"5-34-30":[-4050.55,3147.37],"6-69-62":[-4985.7,2704.02],"6-69-63":[-4378.1,2767.34],"5-34-31":[-5294.54,2767.34],"6-70-0":[-1296.53,146.9],"6-70-1":[-771.95,377.43],"6-70-2":[-1112.58,582.7],"6-70-3":[-12.71,1635.74],"6-70-4":[-143.04,1193.37],"6-70-5":[30.17,1777.45],"6-70-6":[-870.06,2266.17],"6-70-7":[-4579.35,2122.75],"6-70-8":[-5091.86,2096.53],"6-70-9":[-5441.27,735.36],"6-70-10":[-5521.23,350.95],"6-70-11":[-5870.11,119.82],"6-70-12":[-5490.68,358.72],"6-70-13":[-4850.2,462.61],"6-70-14":[-5849.2,2057.45],"6-70-15":[-5313.8,1043.38],"6-70-16":[-5533.8,2489.77],"6-70-17":[-5647.65,2049.01],"6-70-18":[-5270.37,753.24],"6-70-19":[-4446.22,1946.4],"6-70-20":[-2062.42,2219.67],"6-70-21":[-190.7,1622.53],"6-70-22":[68.85,2131.4],"6-70-23":[343.56,2428.71],"6-70-24":[27.16,3468.04],"6-70-25":[108.1,2059.93],"6-70-26":[121.91,1646.91],"6-70-27":[274.16,1823.65],"6-70-28":[322.1,1743.04],"6-70-29":[354.64,1235.68],"6-70-30":[262.03,872.26],"6-70-31":[254.18,533.95],"6-70-32":[223.98,518.93],"6-70-33":[192.31,886.28],"6-70-34":[374.92,1242.7],"6-70-35":[339.89,1757.04],"6-70-36":[292.26,1831.76],"6-70-37":[178.82,1687.18],"6-70-38":[175.77,2162.84],"6-70-39":[527.04,3422.04],"6-70-40":[356.51,2505.72],"6-70-41":[47.81,2222.4],"6-70-42":[-651.9,1720.53],"6-70-43":[-3892.14,2268.67],"6-70-44":[-4167.54,2017.39],"6-70-45":[-4024.78,727.91],"6-70-46":[-2423.02,1931.45],"6-70-47":[-1183.92,2422.92],"6-70-48":[29.91,1026.9],"6-70-49":[29.84,2002.07],"6-70-50":[31.81,455.04],"6-70-51":[-106.87,346],"6-70-52":[-425.67,109.12],"6-70-53":[-275.99,320.25],"6-70-54":[-257.87,689.96],"6-70-55":[15.38,1949.22],"6-70-56":[-1496.13,2034.64],"6-70-57":[-1371.09,3052.08],"6-70-58":[-472.27,3536.78],"6-70-59":[-295.51,3480.29],"6-70-60":[-2571.36,3239.33],"6-70-61":[-4037.07,2709.23],"6-70-62":[-4806.88,2724.91],"6-70-63":[-4397.11,2768.65],"6-71-0":[-1366.5,180.42],"6-71-1":[-1045.85,177.35],"5-35-0":[-1366.5,377.43],"6-71-2":[-1106.99,577.96],"6-71-3":[-139.06,862.17],"5-35-1":[-1112.58,1635.74],"4-17-0":[-1534.01,1635.74],"6-71-4":[-31.29,779.54],"6-71-5":[27.24,1826.93],"5-35-2":[-143.04,1826.93],"6-71-6":[-972.15,2236.9],"6-71-7":[-4515.43,1854.14],"5-35-3":[-4579.35,2266.17],"4-17-1":[-4579.35,2800.76],"3-8-0":[-4705.66,3079.8],"6-71-8":[-5083,851.76],"6-71-9":[-5368.62,511.56],"5-35-4":[-5441.27,2096.53],"6-71-10":[-5717.96,158.69],"6-71-11":[-6002.07,214.15],"5-35-5":[-6002.07,350.95],"4-17-2":[-6317.1,2096.53],"6-71-12":[-5985.81,342.67],"6-71-13":[-4829.82,644.43],"5-35-6":[-5985.81,644.43],"6-71-14":[-5630.52,2648.45],"6-71-15":[-5696.39,1842.42],"5-35-7":[-5849.2,2648.45],"4-17-3":[-7020.16,3777.17],"3-8-1":[-7020.16,4840.9],"6-71-16":[-5400.18,2700.03],"6-71-17":[-5606.51,2930.53],"5-35-8":[-5647.65,2930.53],"6-71-18":[-5476.96,2524.92],"6-71-19":[-2974.28,1636.67],"5-35-9":[-5476.96,2524.92],"4-17-4":[-6188.92,3340.97],"6-71-20":[18.37,2264.81],"6-71-21":[-31.98,1643.49],"5-35-10":[-2062.42,2264.81],"6-71-22":[94.19,1557.97],"6-71-23":[273.49,1396.87],"5-35-11":[68.85,2428.71],"4-17-5":[-4919.36,2428.71],"3-8-2":[-6708.74,4069.35],"6-71-24":[452.55,1492.56],"6-71-25":[308.29,1368.77],"5-35-12":[27.16,3468.04],"6-71-26":[326.68,1369.26],"6-71-27":[373.83,1499.67],"5-35-13":[121.91,1823.65],"4-17-6":[-3799.02,3468.04],"6-71-28":[371.4,1383.2],"6-71-29":[382.62,1091.79],"5-35-14":[322.1,1743.04],"6-71-30":[291.34,761.73],"6-71-31":[282.28,584.48],"5-35-15":[254.18,872.26],"4-17-7":[-3849.29,2461.39],"3-8-3":[-6405.06,4049.43],"6-71-32":[271.34,592.5],"6-71-33":[253.5,758.09],"5-35-16":[192.31,886.28],"6-71-34":[393.62,1099.25],"6-71-35":[383.62,1385.35],"5-35-17":[339.89,1757.04],"4-17-8":[-26.92,2402.42],"6-71-36":[388.19,1507.74],"6-71-37":[353.84,1380.25],"5-35-18":[178.82,1831.76],"6-71-38":[344.8,1371.66],"6-71-39":[487.74,1497.56],"5-35-19":[175.77,3422.04],"4-17-9":[-59.49,3422.04],"3-8-4":[-5581.84,4000.43],"6-71-40":[291.96,1399.38],"6-71-41":[101.97,1582.99],"5-35-20":[47.81,2505.72],"6-71-42":[-192.85,1667.49],"6-71-43":[-3939.79,2341.81],"5-35-21":[-3939.79,2341.81],"4-17-10":[-3939.79,2505.72],"6-71-44":[-5096.78,1732.68],"6-71-45":[-5096.08,2430.31],"5-35-22":[-5096.78,2430.31],"6-71-46":[-1220.58,2821.28],"6-71-47":[30.14,2550.27],"5-35-23":[-2423.02,2821.28],"4-17-11":[-5096.78,3305.09],"3-8-5":[-5096.78,3919.02],"6-71-48":[31.75,1822.33],"6-71-49":[32.11,2509.12],"5-35-24":[29.84,2509.12],"6-71-50":[33.7,620.24],"6-71-51":[-70.85,335.96],"5-35-25":[-106.87,620.24],"4-17-12":[-106.87,3568.74],"6-71-52":[-218.92,210.85],"6-71-53":[-209.1,157.78],"5-35-26":[-425.67,320.25],"6-71-54":[-161.71,548.2],"6-71-55":[-109.75,820.05],"5-35-27":[-257.87,1949.22],"4-17-13":[-731.98,1949.22],"3-8-6":[-3663.22,4706.54],"6-71-56":[-427.72,1800.79],"6-71-57":[-457.25,2944.43],"5-35-28":[-1496.13,3052.08],"6-71-58":[-482.06,3600.93],"6-71-59":[-266.53,3598.47],"5-35-29":[-482.06,3600.93],"4-17-14":[-2957.29,3600.93],"6-71-60":[-2661.25,3295.33],"6-71-61":[-4172.92,2810.96],"5-35-30":[-4172.92,3295.33],"6-71-62":[-5181.02,2751.92],"6-71-63":[-4390.32,2771.32],"5-35-31":[-5181.02,2771.32],"4-17-15":[-5294.54,3295.33],"3-8-7":[-5524.14,3600.93],"6-72-0":[-1151.65,235.57],"6-72-1":[-1116.99,366.1],"6-72-2":[-1218.03,841.26],"6-72-3":[-155.53,753.17],"6-72-4":[18.55,948.27],"6-72-5":[22.7,1790.98],"6-72-6":[-847.11,2859.42],"6-72-7":[-4432.93,1167.12],"6-72-8":[-5028.12,435.24],"6-72-9":[-5233.47,286.65],"6-72-10":[-5869.59,241.92],"6-72-11":[-6044.56,275.13],"6-72-12":[-6053.24,318.56],"6-72-13":[-5914.13,382.74],"6-72-14":[-5764.94,1998.12],"6-72-15":[-6150.11,2540.92],"6-72-16":[-5652.67,2847.57],"6-72-17":[-5293.94,2950.99],"6-72-18":[-5648.78,2427.62],"6-72-19":[-5036.24,2464.23],"6-72-20":[7.73,2380.96],"6-72-21":[-11.66,1773.15],"6-72-22":[88.27,1869.59],"6-72-23":[289.98,1464.79],"6-72-24":[470.56,1912.86],"6-72-25":[498.02,1340.77],"6-72-26":[593.56,1710.7],"6-72-27":[454.32,3017.52],"6-72-28":[444.14,1527.59],"6-72-29":[442.37,1113.75],"6-72-30":[352.38,786.57],"6-72-31":[319.72,701.62],"6-72-32":[322.07,733.63],"6-72-33":[332.54,807.65],"6-72-34":[430.54,1119.46],"6-72-35":[449.14,1534.31],"6-72-36":[468.39,2938.51],"6-72-37":[634.18,1558.71],"6-72-38":[538.7,1314.77],"6-72-39":[480.56,1888.87],"6-72-40":[305.79,1498.79],"6-72-41":[87.14,1901.6],"6-72-42":[-6.16,1783.15],"6-72-43":[-3410.48,2501.84],"6-72-44":[-4635.36,2392.7],"6-72-45":[-1535.43,2378.1],"6-72-46":[-1546.81,2846.24],"6-72-47":[32.16,2746.21],"6-72-48":[32.45,2472.37],"6-72-49":[32.5,2002.61],"6-72-50":[34.78,369.41],"6-72-51":[30.32,312.78],"6-72-52":[-33.81,268.25],"6-72-53":[-115.27,236.4],"6-72-54":[-93.35,289.52],"6-72-55":[-118.26,410.07],"6-72-56":[-452.6,1137.67],"6-72-57":[-498.31,3236.81],"6-72-58":[-447.32,3666.27],"6-72-59":[-205.86,3666.27],"6-72-60":[-1730.17,3378.93],"6-72-61":[-4033.67,2968.07],"6-72-62":[-5182.3,2779.15],"6-72-63":[-4400.75,2774.31],"6-73-0":[-1098.45,386.48],"6-73-1":[-252.17,589.35],"5-36-0":[-1151.65,589.35],"6-73-2":[-246.65,1025.36],"6-73-3":[23.45,1256.47],"5-36-1":[-1218.03,1256.47],"6-73-4":[23.04,1575.59],"6-73-5":[22,2167.88],"5-36-2":[18.55,2167.88],"6-73-6":[-768.66,2661.08],"6-73-7":[-4274.15,1083.56],"5-36-3":[-4432.93,2859.42],"6-73-8":[-5101.12,559.12],"6-73-9":[-5237.91,398.6],"5-36-4":[-5237.91,559.12],"6-73-10":[-5410.92,258.06],"6-73-11":[-5818.04,338.7],"5-36-5":[-6044.56,338.7],"6-73-12":[-5916.34,371.65],"6-73-13":[-6576.21,309.64],"5-36-6":[-6576.21,382.74],"6-73-14":[-6043.8,1369.76],"6-73-15":[-6226.23,2520.59],"5-36-7":[-6226.23,2540.92],"6-73-16":[-6031.72,1559.76],"6-73-17":[-4388.63,1798.35],"5-36-8":[-6031.72,2950.99],"6-73-18":[-4756.13,2185.74],"6-73-19":[-4900.81,2137.5],"5-36-9":[-5648.78,2464.23],"6-73-20":[-3072.54,2714.39],"6-73-21":[-117.56,3028.87],"5-36-10":[-3072.54,3028.87],"6-73-22":[27.75,1855.23],"6-73-23":[275.3,2052.36],"5-36-11":[27.75,2052.36],"6-73-24":[280.09,1490.96],"6-73-25":[366.24,1373.07],"5-36-12":[280.09,1912.86],"6-73-26":[428.45,2020.89],"6-73-27":[423.73,1615.01],"5-36-13":[423.73,3017.52],"6-73-28":[386.96,1897.94],"6-73-29":[394.88,1695.64],"5-36-14":[386.96,1897.94],"6-73-30":[425.75,1632.25],"6-73-31":[366.87,1474.32],"5-36-15":[319.72,1632.25],"6-73-32":[374.33,1540.39],"6-73-33":[413.29,1685.26],"5-36-16":[322.07,1685.26],"6-73-34":[408.77,1701.66],"6-73-35":[399.36,1902.71],"5-36-17":[399.36,1902.71],"6-73-36":[436.55,1683.01],"6-73-37":[454.43,2005.89],"5-36-18":[436.55,2938.51],"6-73-38":[387.47,1440.16],"6-73-39":[313.56,1496.99],"5-36-19":[313.56,1888.87],"6-73-40":[303.1,2110.34],"6-73-41":[35.21,1898.28],"5-36-20":[35.21,2110.34],"6-73-42":[-115.12,3126.88],"6-73-43":[-3277.96,2790.11],"5-36-21":[-3410.48,3126.88],"6-73-44":[-4410.36,2087.17],"6-73-45":[-1533.08,2111.08],"5-36-22":[-4635.36,2392.7],"6-73-46":[-1407.82,1782.34],"6-73-47":[-132.5,1515.81],"5-36-23":[-1546.81,2846.24],"6-73-48":[-48.96,2476.4],"6-73-49":[33.33,1341.89],"5-36-24":[-48.96,2476.4],"6-73-50":[35.38,302.26],"6-73-51":[30.59,367.74],"5-36-25":[30.32,369.41],"6-73-52":[27.68,312.58],"6-73-53":[-91.02,254.41],"5-36-26":[-115.27,312.58],"6-73-54":[20.07,387],"6-73-55":[-0.77,495.19],"5-36-27":[-118.26,495.19],"6-73-56":[-62.28,1042.73],"6-73-57":[-430.03,3236.81],"5-36-28":[-498.31,3236.81],"6-73-58":[-439.32,3671.29],"6-73-59":[-323.86,3685.99],"5-36-29":[-447.32,3685.99],"6-73-60":[-1858.42,3441.2],"6-73-61":[-4051.29,3024.01],"5-36-30":[-4051.29,3441.2],"6-73-62":[-4957.74,2818.12],"6-73-63":[-4411.94,2780.49],"5-36-31":[-5182.3,2818.12],"6-74-0":[-1236.82,554.52],"6-74-1":[-115.89,808.27],"6-74-2":[22.03,898.1],"6-74-3":[-214.68,1339.53],"6-74-4":[-109.83,1733.48],"6-74-5":[-19.14,1828.63],"6-74-6":[-1043.71,2004.49],"6-74-7":[-4151.29,736.85],"6-74-8":[-5058.32,3219.23],"6-74-9":[-5278.16,401.9],"6-74-10":[-5420.6,523.35],"6-74-11":[-5510.77,314.28],"6-74-12":[-5800,307.64],"6-74-13":[-6626.98,347.09],"6-74-14":[-6537.35,387.19],"6-74-15":[-6142.73,488.72],"6-74-16":[-6021.75,429.54],"6-74-17":[-5675.14,2570.69],"6-74-18":[-5047.31,3075.92],"6-74-19":[-4902.23,3021.97],"6-74-20":[-3976.43,2037.33],"6-74-21":[-2943.73,3474.34],"6-74-22":[11.08,2304.86],"6-74-23":[11.91,2318.87],"6-74-24":[164.06,1564.06],"6-74-25":[187.45,1723.71],"6-74-26":[300.4,1719.44],"6-74-27":[439.11,1802.88],"6-74-28":[346.35,1700.51],"6-74-29":[356.78,2454.65],"6-74-30":[452.9,3419],"6-74-31":[534,5024.49],"6-74-32":[553.03,4938.48],"6-74-33":[461.33,3461],"6-74-34":[382.42,2489.57],"6-74-35":[381.96,1708.52],"6-74-36":[432.19,1881.89],"6-74-37":[298.55,1739.34],"6-74-38":[217.88,1752.71],"6-74-39":[183.38,1623.82],"6-74-40":[18.19,2352.72],"6-74-41":[18.19,2369.87],"6-74-42":[-47.25,3510.35],"6-74-43":[-3200.67,2075.35],"6-74-44":[-4452.12,2962.7],"6-74-45":[-1603.77,2988.35],"6-74-46":[-2119.52,2510.29],"6-74-47":[-2188.57,416.42],"6-74-48":[-230.72,445.51],"6-74-49":[35.21,379.33],"6-74-50":[35.5,351.6],"6-74-51":[31.79,306.62],"6-74-52":[29.44,332.57],"6-74-53":[-27.17,205.8],"6-74-54":[20.92,394.56],"6-74-55":[18.14,656.54],"6-74-56":[-392.13,716.25],"6-74-57":[-410.17,2976.87],"6-74-58":[-426.08,3667.35],"6-74-59":[-338.34,3732.45],"6-74-60":[-1620.83,3510.17],"6-74-61":[-4272.22,3119.66],"6-74-62":[-4960.26,2893.13],"6-74-63":[-4388.84,2805.44],"6-75-0":[-1220.82,637.81],"6-75-1":[18.94,947.66],"5-37-0":[-1236.82,947.66],"6-75-2":[21.42,1165.87],"6-75-3":[-335.37,1205.39],"5-37-1":[-335.37,1339.53],"4-18-0":[-1236.82,1339.53],"6-75-4":[-108.22,1531.11],"6-75-5":[17.26,1406.61],"5-37-2":[-109.83,1828.63],"6-75-6":[-680,2529.86],"6-75-7":[-3764.21,1181.22],"5-37-3":[-4151.29,2529.86],"4-18-1":[-4432.93,2859.42],"6-75-8":[-4934.93,712.47],"6-75-9":[-5173.02,4110.39],"5-37-4":[-5278.16,4110.39],"6-75-10":[-5338.72,318.43],"6-75-11":[-5582.3,357.76],"5-37-5":[-5582.3,523.35],"4-18-2":[-6044.56,4110.39],"6-75-12":[-5891.33,313.84],"6-75-13":[-5966.26,252.12],"5-37-6":[-6626.98,347.09],"6-75-14":[-6187.44,293.98],"6-75-15":[-5647.59,195.69],"5-37-7":[-6537.35,488.72],"4-18-3":[-6626.98,2540.92],"6-75-16":[-6289.49,673.31],"6-75-17":[-6185.21,2438.12],"5-37-8":[-6289.49,2570.69],"6-75-18":[-5007.04,3012.55],"6-75-19":[-4544.81,2342.54],"5-37-9":[-5047.31,3075.92],"4-18-4":[-6289.49,3075.92],"6-75-20":[-4169.53,223.67],"6-75-21":[-3183.61,1970.91],"5-37-10":[-4169.53,3474.34],"6-75-22":[-1688.18,2002.31],"6-75-23":[-207.39,1362.61],"5-37-11":[-1688.18,2318.87],"4-18-5":[-4169.53,3474.34],"6-75-24":[65.06,2320.42],"6-75-25":[91.67,2518.28],"5-37-12":[65.06,2518.28],"6-75-26":[104.79,1669.47],"6-75-27":[352.02,1809.35],"5-37-13":[104.79,1809.35],"4-18-6":[65.06,3017.52],"6-75-28":[354.16,2864.49],"6-75-29":[356.57,2398.3],"5-37-14":[346.35,2864.49],"6-75-30":[389.82,3166.22],"6-75-31":[594.3,2060.9],"5-37-15":[389.82,5024.49],"4-18-7":[319.72,5024.49],"6-75-32":[585.06,2012.4],"6-75-33":[416.69,3105.21],"5-37-16":[416.69,4938.48],"6-75-34":[392.48,2443.31],"6-75-35":[382.84,2943.5],"5-37-17":[381.96,2943.5],"4-18-8":[322.07,4938.48],"6-75-36":[378.03,1864.36],"6-75-37":[93.22,1716.39],"5-37-18":[93.22,1881.89],"6-75-38":[74.67,2583.3],"6-75-39":[57.48,2427.44],"5-37-19":[57.48,2583.3],"4-18-9":[57.48,2938.51],"6-75-40":[-242.83,1442.62],"6-75-41":[-91.25,2018.31],"5-37-20":[-242.83,2369.87],"6-75-42":[-83.43,1989.17],"6-75-43":[-2707.91,240.08],"5-37-21":[-3200.67,3510.35],"4-18-10":[-3410.48,3510.35],"6-75-44":[-2823.85,2320.44],"6-75-45":[-1210.6,2953.57],"5-37-22":[-4452.12,2988.35],"6-75-46":[-2177.38,2379.21],"6-75-47":[-2265.89,699.95],"5-37-23":[-2265.89,2510.29],"4-18-11":[-4635.36,2988.35],"6-75-48":[-215.43,194.97],"6-75-49":[-173.62,295.62],"5-37-24":[-230.72,445.51],"6-75-50":[36.6,248.97],"6-75-51":[34.25,310.31],"5-37-25":[31.79,351.6],"4-18-12":[-230.72,2476.4],"6-75-52":[30.27,360.14],"6-75-53":[-41.42,701.92],"5-37-26":[-41.42,701.92],"6-75-54":[20.79,428.74],"6-75-55":[-121.89,777.04],"5-37-27":[-121.89,777.04],"4-18-13":[-121.89,777.04],"6-75-56":[-384.7,1213.92],"6-75-57":[-447.71,2787.68],"5-37-28":[-447.71,2976.87],"6-75-58":[-375.05,3670.33],"6-75-59":[-331.06,3745.57],"5-37-29":[-426.08,3745.57],"4-18-14":[-498.31,3745.57],"6-75-60":[-1033.03,3590.97],"6-75-61":[-4324.73,3236.16],"5-37-30":[-4324.73,3590.97],"6-75-62":[-4687.77,2971.57],"6-75-63":[-4404.37,2839.82],"5-37-31":[-4960.26,2971.57],"4-18-15":[-5182.3,3590.97],"6-76-0":[-1100.37,787.46],"6-76-1":[18.88,1369.31],"6-76-2":[20.05,1230.96],"6-76-3":[-173.13,1383.91],"6-76-4":[15.48,1488.42],"6-76-5":[14.03,1534.77],"6-76-6":[-164.43,2313.76],"6-76-7":[-3852.41,1139.05],"6-76-8":[-4903.69,538.64],"6-76-9":[-5169.28,306.08],"6-76-10":[-5362.81,316.75],"6-76-11":[-5483.38,357.69],"6-76-12":[-5573.62,332.1],"6-76-13":[-5588.1,291.25],"6-76-14":[-5682.31,251.97],"6-76-15":[-5514.79,721.64],"6-76-16":[-5255.82,1541.99],"6-76-17":[-5815.38,2603.85],"6-76-18":[-6277.37,3897.68],"6-76-19":[-5944.74,3093.99],"6-76-20":[-4889.87,2689.12],"6-76-21":[-3229.67,2516.84],"6-76-22":[-2487.96,2262.38],"6-76-23":[-2603.95,1972.68],"6-76-24":[-2073.83,2173.07],"6-76-25":[-93.96,1794.5],"6-76-26":[28.49,2849.88],"6-76-27":[217.45,2729.65],"6-76-28":[235.12,3267.45],"6-76-29":[230.59,3342.07],"6-76-30":[309.01,3564.01],"6-76-31":[236.85,4305.91],"6-76-32":[258.3,4251.91],"6-76-33":[330.21,3634.02],"6-76-34":[206.1,3310.07],"6-76-35":[230.19,3133.45],"6-76-36":[-18.37,2712.65],"6-76-37":[7.99,2969.88],"6-76-38":[-27.14,1841.51],"6-76-39":[-90.16,2064.08],"6-76-40":[-2173.17,1805.67],"6-76-41":[-2277.59,2225.38],"6-76-42":[-1756.08,2563.86],"6-76-43":[-2149.83,2801.7],"6-76-44":[-2247.85,3074.25],"6-76-45":[-318.31,3812.51],"6-76-46":[-2278.18,2525.74],"6-76-47":[-2641.23,1537.39],"6-76-48":[-60.34,737.51],"6-76-49":[-15.68,250.51],"6-76-50":[5.94,290.32],"6-76-51":[36.06,326.5],"6-76-52":[32.25,359.97],"6-76-53":[20.17,425.42],"6-76-54":[0.26,323.5],"6-76-55":[-203.89,540.75],"6-76-56":[-284.94,1400],"6-76-57":[-321.47,2930.46],"6-76-58":[-321.94,3670.26],"6-76-59":[-308.26,3781.61],"6-76-60":[-353.67,3628.25],"6-76-61":[-4071.22,3346.55],"6-76-62":[-5122.48,3092.47],"6-76-63":[-4415.19,2876.01],"6-77-0":[-1124.35,1055.36],"6-77-1":[18.74,1392.41],"5-38-0":[-1124.35,1392.41],"6-77-2":[19.64,1229.3],"6-77-3":[-94.34,1373.41],"5-38-1":[-173.13,1383.91],"6-77-4":[12.81,1634.75],"6-77-5":[12.61,1743.61],"5-38-2":[12.61,1743.61],"6-77-6":[-352.38,1813.53],"6-77-7":[-4089.95,676.92],"5-38-3":[-4089.95,2313.76],"6-77-8":[-4882.69,352.95],"6-77-9":[-5215.5,366.87],"5-38-4":[-5215.5,538.64],"6-77-10":[-5498.32,327.96],"6-77-11":[-5772.44,306.61],"5-38-5":[-5772.44,357.69],"6-77-12":[-5701.29,311.33],"6-77-13":[-5196.38,300.03],"5-38-6":[-5701.29,332.1],"6-77-14":[-5259.29,375.52],"6-77-15":[-4338.29,1214.51],"5-38-7":[-5682.31,1214.51],"6-77-16":[-4941.4,1062.09],"6-77-17":[-5667.66,3382.16],"5-38-8":[-5815.38,3382.16],"6-77-18":[-5914.86,3297.16],"6-77-19":[-5911.63,2377.57],"5-38-9":[-6277.37,3897.68],"6-77-20":[-5580.5,1781.74],"6-77-21":[-5357.43,1378.43],"5-38-10":[-5580.5,2689.12],"6-77-22":[-5016.07,2032.54],"6-77-23":[-4117.39,2355.84],"5-38-11":[-5016.07,2355.84],"6-77-24":[-3411.94,2168.09],"6-77-25":[-2838.58,2735.56],"5-38-12":[-3411.94,2735.56],"6-77-26":[-70.43,3016.69],"6-77-27":[82.06,4526.44],"5-38-13":[-70.43,4526.44],"6-77-28":[-83.3,4259.18],"6-77-29":[-358.33,4177.49],"5-38-14":[-358.33,4259.18],"6-77-30":[-934.21,5793.53],"6-77-31":[142.08,4892.29],"5-38-15":[-934.21,5793.53],"6-77-32":[136.09,5158.31],"6-77-33":[-45.68,5869.55],"5-38-16":[-45.68,5869.55],"6-77-34":[-49.58,4123.49],"6-77-35":[-48.06,4205.18],"5-38-17":[-49.58,4205.18],"6-77-36":[-18.95,4458.44],"6-77-37":[-438.11,2927.68],"5-38-18":[-438.11,4458.44],"6-77-38":[-2829.96,2650.56],"6-77-39":[-2796.31,2037.87],"5-38-19":[-2829.96,2650.56],"6-77-40":[-2472.44,2270.84],"6-77-41":[-1743.75,2075.54],"5-38-20":[-2472.44,2270.84],"6-77-42":[9.2,1378.06],"6-77-43":[15.55,1800.57],"5-38-21":[-2149.83,2801.7],"6-77-44":[24.23,2378.7],"6-77-45":[27.4,3201.77],"5-38-22":[-2247.85,3812.51],"6-77-46":[-2116.73,3332.16],"6-77-47":[-2192.81,1046.56],"5-38-23":[-2641.23,3332.16],"6-77-48":[-40.14,1277.56],"6-77-49":[42.15,369.81],"5-38-24":[-60.34,1277.56],"6-77-50":[-102.73,298.77],"6-77-51":[38.18,305.31],"5-38-25":[-102.73,326.5],"6-77-52":[33.28,305.57],"6-77-53":[29.46,331.34],"5-38-26":[20.17,425.42],"6-77-54":[-0.19,369.05],"6-77-55":[-189.27,356.35],"5-38-27":[-203.89,540.75],"6-77-56":[-235.14,1400],"6-77-57":[-372.29,3035.01],"5-38-28":[-372.29,3035.01],"6-77-58":[-287.74,3670.15],"6-77-59":[-274.5,3814.29],"5-38-29":[-321.94,3814.29],"6-77-60":[-469.71,3652.21],"6-77-61":[-3993.76,3460.18],"5-38-30":[-4071.22,3652.21],"6-77-62":[-5243.84,3182.27],"6-77-63":[-4424.23,2907.97],"5-38-31":[-5243.84,3182.27],"6-78-0":[-970.38,939.18],"6-78-1":[18.5,1250.32],"6-78-2":[-30.99,1167.04],"6-78-3":[14.08,1218.6],"6-78-4":[10.33,1687.01],"6-78-5":[8.69,1466.36],"6-78-6":[-400.01,1386.1],"6-78-7":[-3581.29,518.66],"6-78-8":[-4793.25,314.82],"6-78-9":[-5180.83,268.49],"6-78-10":[-5348.63,286.2],"6-78-11":[-5412.25,279.53],"6-78-12":[-4944.88,258.22],"6-78-13":[-4186.19,248.68],"6-78-14":[-4793.25,340.26],"6-78-15":[-4143.61,680.41],"6-78-16":[-5893.98,3881.85],"6-78-17":[-4967.62,3918.41],"6-78-18":[-5507.69,3209.2],"6-78-19":[-5894.31,1446.37],"6-78-20":[-5402.84,949.71],"6-78-21":[-5248.75,1047.17],"6-78-22":[-4866.76,1974.55],"6-78-23":[-4208.66,2149.19],"6-78-24":[-4061.47,2651.93],"6-78-25":[-3288.6,2755.96],"6-78-26":[-3098.02,3297.68],"6-78-27":[-3315.48,3970.6],"6-78-28":[-3578.64,3839.48],"6-78-29":[-3580.79,4373.18],"6-78-30":[-3657.85,1692.99],"6-78-31":[-3167.58,881.98],"6-78-32":[-77.85,835.18],"6-78-33":[-77.15,1678.99],"6-78-34":[-74.93,4326.17],"6-78-35":[-67.51,3769.59],"6-78-36":[-130.64,3880.6],"6-78-37":[-2000.23,3253.67],"6-78-38":[-2030.7,2669.71],"6-78-39":[-711.3,2607.92],"6-78-40":[-3.87,2060.19],"6-78-41":[3.4,2044.8],"6-78-42":[8.86,1048.06],"6-78-43":[15.8,951.21],"6-78-44":[24.72,1433.82],"6-78-45":[29.26,3156.2],"6-78-46":[-2024.01,3821.45],"6-78-47":[-2001.31,3842.94],"6-78-48":[-74.88,677.36],"6-78-49":[11.18,337.93],"6-78-50":[45.44,248.74],"6-78-51":[40.21,253.02],"6-78-52":[34.91,285.29],"6-78-53":[31.4,287.71],"6-78-54":[-3.31,270.42],"6-78-55":[-81.06,316.21],"6-78-56":[-257.78,1829.25],"6-78-57":[-388.9,3049.46],"6-78-58":[-347.69,3654.4],"6-78-59":[-343.6,3814.29],"6-78-60":[-573.3,3676.48],"6-78-61":[-3981.03,3515.55],"6-78-62":[-5253.05,3278.24],"6-78-63":[-4405.8,2956.72],"6-79-0":[-613.35,1108.07],"6-79-1":[-682.84,1001.69],"5-39-0":[-970.38,1250.32],"6-79-2":[-353.21,781.43],"6-79-3":[-157.61,1344.7],"5-39-1":[-353.21,1344.7],"4-19-0":[-1124.35,1392.41],"6-79-4":[-36.17,1629.79],"6-79-5":[7.69,1296.92],"5-39-2":[-36.17,1687.01],"6-79-6":[-355.26,1171.38],"6-79-7":[-2386.01,1544.08],"5-39-3":[-3581.29,1544.08],"4-19-1":[-4089.95,2313.76],"3-9-0":[-4432.93,2859.42],"6-79-8":[-4562.76,224],"6-79-9":[-5148.85,273.71],"5-39-4":[-5180.83,314.82],"6-79-10":[-5415.85,309.09],"6-79-11":[-5462.34,297.07],"5-39-5":[-5462.34,309.09],"4-19-2":[-5772.44,538.64],"6-79-12":[-5180.01,294.44],"6-79-13":[-4272.35,291.7],"5-39-6":[-5180.01,294.44],"6-79-14":[-5007.92,260.4],"6-79-15":[-4145.05,476.12],"5-39-7":[-5007.92,680.41],"4-19-3":[-5701.29,1214.51],"3-9-1":[-6626.98,4110.39],"2-4-0":[-7020.16,4840.9],"6-79-16":[-5156.24,5616.16],"6-79-17":[-5348.51,5133.37],"5-39-8":[-5893.98,5616.16],"6-79-18":[-4972.35,4058.15],"6-79-19":[-4829.8,3448.78],"5-39-9":[-5894.31,4058.15],"4-19-4":[-6277.37,5616.16],"6-79-20":[-4587.19,377.37],"6-79-21":[-4872.25,790.42],"5-39-10":[-5402.84,1047.17],"6-79-22":[-4701.53,1407.05],"6-79-23":[-4057.57,1499.62],"5-39-11":[-4866.76,2149.19],"4-19-5":[-5580.5,2689.12],"3-9-2":[-6289.49,5616.16],"6-79-24":[-3209.08,1721.97],"6-79-25":[-2548.5,2990.34],"5-39-12":[-4061.47,2990.34],"6-79-26":[-3723.11,3647.39],"6-79-27":[-3701.88,3223.81],"5-39-13":[-3723.11,3970.6],"4-19-6":[-4061.47,4526.44],"6-79-28":[-4216.96,3002.22],"6-79-29":[-4531.33,1451.56],"5-39-14":[-4531.33,4373.18],"6-79-30":[-4682.65,913.05],"6-79-31":[-4288.31,587.03],"5-39-15":[-4682.65,1692.99],"4-19-7":[-4682.65,5793.53],"3-9-3":[-4682.65,5793.53],"2-4-1":[-6708.74,5793.53],"6-79-32":[-3596.12,522.02],"6-79-33":[-86.64,869.52],"5-39-16":[-3596.12,1678.99],"6-79-34":[-81.84,1423.53],"6-79-35":[-1528.24,2909.22],"5-39-17":[-1528.24,4326.17],"4-19-8":[-3596.12,5869.55],"6-79-36":[-1674.39,3169.82],"6-79-37":[-933.73,3564.38],"5-39-18":[-2000.23,3880.6],"6-79-38":[-93.44,2963.33],"6-79-39":[-68.11,1691.97],"5-39-19":[-2030.7,2963.33],"4-19-9":[-2829.96,4458.44],"3-9-4":[-3596.12,5869.55],"6-79-40":[-18.99,1441.6],"6-79-41":[-12.01,1436.47],"5-39-20":[-18.99,2060.19],"6-79-42":[8.42,786.4],"6-79-43":[7.66,379.51],"5-39-21":[7.66,1048.06],"4-19-10":[-2472.44,2801.7],"6-79-44":[24.72,3388.51],"6-79-45":[31.3,4034.49],"5-39-22":[24.72,4034.49],"6-79-46":[30.84,5065.49],"6-79-47":[39.44,5582.77],"5-39-23":[-2024.01,5582.77],"4-19-11":[-2641.23,5582.77],"3-9-5":[-4635.36,5582.77],"2-4-2":[-5581.84,5869.55],"6-79-48":[-6.88,476.03],"6-79-49":[-45.43,262.45],"5-39-24":[-74.88,677.36],"6-79-50":[45.58,287.29],"6-79-51":[40.61,298.27],"5-39-25":[40.21,298.27],"4-19-12":[-102.73,1277.56],"6-79-52":[35.82,293.08],"6-79-53":[31.85,306.15],"5-39-26":[31.4,306.15],"6-79-54":[11.02,265.84],"6-79-55":[-22.65,224.63],"5-39-27":[-81.06,316.21],"4-19-13":[-203.89,540.75],"3-9-6":[-230.72,2476.4],"6-79-56":[-132.5,2238.4],"6-79-57":[-376.73,3044.79],"5-39-28":[-388.9,3049.46],"6-79-58":[-382.68,3633.13],"6-79-59":[-360.54,3703.54],"5-39-29":[-382.68,3814.29],"4-19-14":[-388.9,3814.29],"6-79-60":[-487.25,3739.77],"6-79-61":[-3962.4,3596.54],"5-39-30":[-3981.03,3739.77],"6-79-62":[-5147.9,3326.45],"6-79-63":[-4431.66,2985.88],"5-39-31":[-5253.05,3326.45],"4-19-15":[-5253.05,3739.77],"3-9-7":[-5253.05,3814.29],"2-4-3":[-5524.14,4706.54],"6-80-0":[-607.91,1052.02],"6-80-1":[-695.37,916.87],"6-80-2":[-313.43,688.23],"6-80-3":[-506.03,1590.08],"6-80-4":[-302.45,1299.84],"6-80-5":[-41.81,1102.37],"6-80-6":[-257.53,933.24],"6-80-7":[-884.89,1429.72],"6-80-8":[-4242.68,436.57],"6-80-9":[-5126.54,285.08],"6-80-10":[-5387.21,302.02],"6-80-11":[-5405.84,248.97],"6-80-12":[-5239.46,347.27],"6-80-13":[-4483.75,372.83],"6-80-14":[-5189.69,355.61],"6-80-15":[-3747.5,115.89],"6-80-16":[-3686.91,4485.88],"6-80-17":[-5781.09,4116.85],"6-80-18":[-5034.39,4577.24],"6-80-19":[-4691.4,3588.07],"6-80-20":[-4381.02,2783.91],"6-80-21":[-3952.44,444.94],"6-80-22":[-4308.52,925.69],"6-80-23":[-3977.26,1950.83],"6-80-24":[1.69,2559.62],"6-80-25":[11.6,2551.64],"6-80-26":[-3601.77,2444.71],"6-80-27":[-4091.03,2493.24],"6-80-28":[-4677.41,2422.23],"6-80-29":[-4881.94,1006.97],"6-80-30":[-4951.46,501.55],"6-80-31":[-4954.17,235.87],"6-80-32":[-4709.84,231.65],"6-80-33":[-3470.76,497.87],"6-80-34":[-87.49,977.44],"6-80-35":[-1955.8,2394.22],"6-80-36":[-4238.65,2432.86],"6-80-37":[-52.79,2399.7],"6-80-38":[-3.35,2631.65],"6-80-39":[-45.58,2635.66],"6-80-40":[-13.4,1977.92],"6-80-41":[3.13,907.5],"6-80-42":[-48.51,443.94],"6-80-43":[-13.11,2710.9],"6-80-44":[27.43,3527.05],"6-80-45":[35.59,4482.23],"6-80-46":[-2.1,3994.84],"6-80-47":[-76.02,4318.89],"6-80-48":[-36.78,116.54],"6-80-49":[-45.44,351.6],"6-80-50":[4.21,362.82],"6-80-51":[40.48,339.43],"6-80-52":[35.29,243.79],"6-80-53":[31.46,421.25],"6-80-54":[28.44,286.08],"6-80-55":[-16.19,572.15],"6-80-56":[-122.56,2427.48],"6-80-57":[-344.52,3127.78],"6-80-58":[-354.02,3590.93],"6-80-59":[-359.54,3615.32],"6-80-60":[-594.45,3741.77],"6-80-61":[-3969.31,3655.25],"6-80-62":[-5188.16,3360.65],"6-80-63":[-4417.84,3013.02],"6-81-0":[-445.47,790.85],"6-81-1":[-579.87,425.58],"5-40-0":[-695.37,1052.02],"6-81-2":[-242.37,1171.88],"6-81-3":[-234.37,703.61],"5-40-1":[-506.03,1590.08],"6-81-4":[-375.85,887.16],"6-81-5":[-161.15,1045.3],"5-40-2":[-375.85,1299.84],"6-81-6":[-62.37,1221.56],"6-81-7":[-1167.31,1508.82],"5-40-3":[-1167.31,1508.82],"6-81-8":[-4170.54,1226.45],"6-81-9":[-5147.46,477.07],"5-40-4":[-5147.46,1226.45],"6-81-10":[-5384.89,275.89],"6-81-11":[-5567.68,298.46],"5-40-5":[-5567.68,302.02],"6-81-12":[-5556.1,367.95],"6-81-13":[-5033.22,377.5],"5-40-6":[-5556.1,377.5],"6-81-14":[-5015.18,65.52],"6-81-15":[-4002.56,841.67],"5-40-7":[-5189.69,841.67],"6-81-16":[-3685,748.23],"6-81-17":[-4092.46,4455.71],"5-40-8":[-5781.09,4485.88],"6-81-18":[-4444.4,4802.09],"6-81-19":[-4794.15,3898.23],"5-40-9":[-5034.39,4802.09],"6-81-20":[-5198.95,4173.89],"6-81-21":[-5598.2,2032.48],"5-40-10":[-5598.2,4173.89],"6-81-22":[-5621.37,483.61],"6-81-23":[-5224.64,539.09],"5-40-11":[-5621.37,1950.83],"6-81-24":[-5022.02,1587.94],"6-81-25":[-4903.94,1702.56],"5-40-12":[-5022.02,2559.62],"6-81-26":[-3390.66,2723.38],"6-81-27":[-4200.55,2795.35],"5-40-13":[-4200.55,2795.35],"6-81-28":[-5482.93,1996.26],"6-81-29":[-5374.08,846.67],"5-40-14":[-5482.93,2422.23],"6-81-30":[-5361.33,410.82],"6-81-31":[-5223.91,-46.62],"5-40-15":[-5361.33,501.55],"6-81-32":[-5354.28,-45.29],"6-81-33":[-5202.96,382.82],"5-40-16":[-5354.28,497.87],"6-81-34":[-4772.87,840.63],"6-81-35":[-1909.66,1978.24],"5-40-17":[-4772.87,2394.22],"6-81-36":[-4295.27,2866.35],"6-81-37":[-2474.56,2817.4],"5-40-18":[-4295.27,2866.35],"6-81-38":[-37.94,1755.56],"6-81-39":[-49.87,1687.3],"5-40-19":[-49.87,2635.66],"6-81-40":[-57.71,536.44],"6-81-41":[-101.18,464.66],"5-40-20":[-101.18,1977.92],"6-81-42":[-87.87,1944.41],"6-81-43":[-12.99,4091.88],"5-40-21":[-87.87,4091.88],"6-81-44":[27.43,3768.23],"6-81-45":[-1031.88,4731.09],"5-40-22":[-1031.88,4731.09],"6-81-46":[-918.65,4364.68],"6-81-47":[-755.34,705.21],"5-40-23":[-918.65,4364.68],"6-81-48":[-47.43,895.68],"6-81-49":[-43.18,90.78],"5-40-24":[-47.43,895.68],"6-81-50":[2.4,372.49],"6-81-51":[21.02,334.11],"5-40-25":[2.4,372.49],"6-81-52":[33.96,288.46],"6-81-53":[30.7,269.64],"5-40-26":[30.7,421.25],"6-81-54":[28.32,478.06],"6-81-55":[3.1,1099.75],"5-40-27":[-16.19,1099.75],"6-81-56":[-100.26,2482.8],"6-81-57":[-290.32,3161.72],"5-40-28":[-344.52,3161.72],"6-81-58":[-314.37,3513.33],"6-81-59":[-375.95,3613.49],"5-40-29":[-375.95,3615.32],"6-81-60":[-590.56,3745.47],"6-81-61":[-3970.26,3699.75],"5-40-30":[-3970.26,3745.47],"6-81-62":[-5105.72,3382.27],"6-81-63":[-4656.2,3034.71],"5-40-31":[-5188.16,3382.27],"6-82-0":[-599.47,1070.76],"6-82-1":[-348.88,540.96],"6-82-2":[-38.22,899.07],"6-82-3":[-212.45,846.93],"6-82-4":[-648.98,789.11],"6-82-5":[1.27,1323.62],"6-82-6":[-313.5,1189.76],"6-82-7":[-260.3,2246.69],"6-82-8":[-3969.17,1587.85],"6-82-9":[-5168.42,441.34],"6-82-10":[-5365.38,321.16],"6-82-11":[-5536.76,337.16],"6-82-12":[-5534.93,384.64],"6-82-13":[-4880.9,320.68],"6-82-14":[-4736.9,173.57],"6-82-15":[-3958,982.13],"6-82-16":[-4319.35,522.27],"6-82-17":[-4720.05,294.16],"6-82-18":[-6332.17,3417.02],"6-82-19":[-6279.16,5595.76],"6-82-20":[-5617.22,4411.42],"6-82-21":[-5768.11,4366.48],"6-82-22":[-5860.36,1761.32],"6-82-23":[-5726.87,170.47],"6-82-24":[-5743.21,274.33],"6-82-25":[-5255.34,1114.62],"6-82-26":[-4888.06,1466.69],"6-82-27":[-5072.73,1380.57],"6-82-28":[-5232.44,723.52],"6-82-29":[-5364.53,27.68],"6-82-30":[-5545.23,11.01],"6-82-31":[-5332.59,-49.03],"6-82-32":[-5272.06,-45.11],"6-82-33":[-5358.16,-10.81],"6-82-34":[-5287.25,5.08],"6-82-35":[-5185.25,703.52],"6-82-36":[-5425.29,1352.56],"6-82-37":[-5630.71,1423.68],"6-82-38":[-35.86,1084.1],"6-82-39":[-24.06,227.43],"6-82-40":[-103.37,153.45],"6-82-41":[-202.87,1732.32],"6-82-42":[-86.69,4285.49],"6-82-43":[16.23,4287.41],"6-82-44":[-28.43,5494.75],"6-82-45":[-1068.46,3402],"6-82-46":[-987.88,286.16],"6-82-47":[-578.39,474.26],"6-82-48":[-51.84,1115.13],"6-82-49":[-50.16,171.52],"6-82-50":[-1.25,299.67],"6-82-51":[36.22,375.64],"6-82-52":[33.96,329.16],"6-82-53":[30.52,319.15],"6-82-54":[28.32,438.32],"6-82-55":[5.56,1774.62],"6-82-56":[-124.12,2729.04],"6-82-57":[-198.79,3157.08],"6-82-58":[-295.24,3362.16],"6-82-59":[-353.36,3614.29],"6-82-60":[-539.75,3772.23],"6-82-61":[-3953.55,3728.18],"6-82-62":[-5186.27,3397.85],"6-82-63":[-4702.29,3048.46],"6-83-0":[-564.45,1069.71],"6-83-1":[-153.79,796.8],"5-41-0":[-599.47,1070.76],"6-83-2":[15.31,951.14],"6-83-3":[-113.51,904.5],"5-41-1":[-212.45,951.14],"4-20-0":[-695.37,1590.08],"6-83-4":[-485.6,1019.15],"6-83-5":[-11.14,1503.33],"5-41-2":[-648.98,1503.33],"6-83-6":[-272.38,1230.82],"6-83-7":[-311.37,1993.91],"5-41-3":[-313.5,2246.69],"4-20-1":[-1167.31,2246.69],"6-83-8":[-4634.74,1908.12],"6-83-9":[-5125.14,331.03],"5-41-4":[-5168.42,1908.12],"6-83-10":[-5243.09,350.47],"6-83-11":[-5406.52,469.81],"5-41-5":[-5536.76,469.81],"4-20-2":[-5567.68,1908.12],"6-83-12":[-5439.07,476.59],"6-83-13":[-5360.87,627.4],"5-41-6":[-5534.93,627.4],"6-83-14":[-4630.33,323.7],"6-83-15":[-4323.21,232.09],"5-41-7":[-4736.9,982.13],"4-20-3":[-5556.1,982.13],"6-83-16":[-4496.34,321.64],"6-83-17":[-4885.79,1858.17],"5-41-8":[-4885.79,1858.17],"6-83-18":[-5123.35,3878.24],"6-83-19":[-6718.3,3814.01],"5-41-9":[-6718.3,5595.76],"4-20-4":[-6718.3,5595.76],"6-83-20":[-6774,4034.31],"6-83-21":[-6839.22,3448.75],"5-41-10":[-6839.22,4411.42],"6-83-22":[-5620.75,2931.28],"6-83-23":[-5595.05,1395.64],"5-41-11":[-5860.36,2931.28],"4-20-5":[-6839.22,4411.42],"6-83-24":[-5025.44,2920.56],"6-83-25":[-5267.5,1727.17],"5-41-12":[-5743.21,2920.56],"6-83-26":[-5123.87,1060.42],"6-83-27":[-5029.91,1466.16],"5-41-13":[-5123.87,1466.69],"4-20-6":[-5743.21,2920.56],"6-83-28":[-5508.98,-44.27],"6-83-29":[-4389.05,214.21],"5-41-14":[-5508.98,723.52],"6-83-30":[-4357.02,782.79],"6-83-31":[-5137.86,-50.21],"5-41-15":[-5545.23,782.79],"4-20-7":[-5545.23,2422.23],"6-83-32":[-5314.12,-46.38],"6-83-33":[-5614.7,862.8],"5-41-16":[-5614.7,862.8],"6-83-34":[-5577.79,-10.47],"6-83-35":[-5182.77,-31.32],"5-41-17":[-5577.79,703.52],"4-20-8":[-5614.7,2394.22],"6-83-36":[-4511.57,1412.17],"6-83-37":[-3831.85,1030.52],"5-41-18":[-5630.71,1423.68],"6-83-38":[-3585.77,1700.21],"6-83-39":[-27.02,3059.56],"5-41-19":[-3585.77,3059.56],"4-20-9":[-5630.71,3059.56],"6-83-40":[-134.31,1310.57],"6-83-41":[-191.43,2787.3],"5-41-20":[-202.87,2787.3],"6-83-42":[7.73,3357.26],"6-83-43":[16.98,3964.31],"5-41-21":[-86.69,4287.41],"4-20-10":[-202.87,4287.41],"6-83-44":[26.42,3759],"6-83-45":[-63.56,3836.25],"5-41-22":[-1068.46,5494.75],"6-83-46":[-60.94,1827.16],"6-83-47":[-114.1,314.63],"5-41-23":[-987.88,1827.16],"4-20-11":[-1068.46,5494.75],"6-83-48":[-83.21,231.08],"6-83-49":[-35.06,320.69],"5-41-24":[-83.21,1115.13],"6-83-50":[40.86,616.39],"6-83-51":[37.02,459.58],"5-41-25":[-1.25,616.39],"4-20-12":[-83.21,1115.13],"6-83-52":[33.5,442.85],"6-83-53":[30.59,339.47],"5-41-26":[30.52,442.85],"6-83-54":[28.68,337.03],"6-83-55":[18.67,2242.91],"5-41-27":[5.56,2242.91],"4-20-13":[-16.19,2242.91],"6-83-56":[-158.29,2841.08],"6-83-57":[-247.05,3100.22],"5-41-28":[-247.05,3157.08],"6-83-58":[-252.23,3161.67],"6-83-59":[-384,3541.02],"5-41-29":[-384,3614.29],"4-20-14":[-384,3615.32],"6-83-60":[-572.12,3807.22],"6-83-61":[-3879.34,3762.75],"5-41-30":[-3953.55,3807.22],"6-83-62":[-4903.55,3423.55],"6-83-63":[-4589.93,3056.25],"5-41-31":[-5186.27,3423.55],"4-20-15":[-5188.16,3807.22],"6-84-0":[-462.49,582.84],"6-84-1":[-328.81,1037.36],"6-84-2":[14.45,1081.68],"6-84-3":[-387.99,886.04],"6-84-4":[-216.46,1023.47],"6-84-5":[-70.1,1436.73],"6-84-6":[-103.35,1295.71],"6-84-7":[-303.02,1934.97],"6-84-8":[-4182.74,1250.98],"6-84-9":[-4917.61,1096.24],"6-84-10":[-5110.65,1512.31],"6-84-11":[-5270.52,975.89],"6-84-12":[-5290.16,1624.4],"6-84-13":[-5400.11,1020.66],"6-84-14":[-4894.48,630.85],"6-84-15":[-4745.05,381.12],"6-84-16":[-4987.2,265.27],"6-84-17":[-5281.48,292.44],"6-84-18":[-5836.1,3050.69],"6-84-19":[-5818.9,3289.8],"6-84-20":[-6578.1,3513.08],"6-84-21":[-5878.98,4466.14],"6-84-22":[-6534.79,3206.24],"6-84-23":[-5720.73,2955.44],"6-84-24":[-5516.96,1006.29],"6-84-25":[-4756.9,187.1],"6-84-26":[-4678.6,-35.61],"6-84-27":[-4654.95,-39.16],"6-84-28":[-4518.41,-28.72],"6-84-29":[-4208.2,213.94],"6-84-30":[-4538.58,-42.82],"6-84-31":[-4857.68,-53.64],"6-84-32":[-5394.31,-44.62],"6-84-33":[-5613.24,-41.47],"6-84-34":[-5297.8,-15.91],"6-84-35":[-5101.96,-11.7],"6-84-36":[-5499.36,-25.08],"6-84-37":[-4713.67,-16.99],"6-84-38":[-4301.04,185.08],"6-84-39":[-2980.26,961.28],"6-84-40":[-3378.52,2918.44],"6-84-41":[-1151.89,3127.26],"6-84-42":[7.34,4351.1],"6-84-43":[17.48,3400.07],"6-84-44":[21.66,3212.8],"6-84-45":[6.6,2997.69],"6-84-46":[-102.22,286.43],"6-84-47":[-22.51,261.98],"6-84-48":[-26.82,374.17],"6-84-49":[39.19,591.85],"6-84-50":[37.64,993.66],"6-84-51":[36.03,1601.39],"6-84-52":[33.47,925.89],"6-84-53":[30.96,1461.81],"6-84-54":[28.91,1084.24],"6-84-55":[16.37,1261.04],"6-84-56":[-130.15,2834.46],"6-84-57":[-396.29,2971.6],"6-84-58":[-396.29,2944.4],"6-84-59":[-328.25,3405.04],"6-84-60":[-597.8,3828.34],"6-84-61":[-3788.87,3798.94],"6-84-62":[-4848.77,3451.5],"6-84-63":[-4510.96,3061.98],"6-85-0":[-690,433.63],"6-85-1":[-457.37,975.82],"5-42-0":[-690,1037.36],"6-85-2":[13.83,1299.01],"6-85-3":[-419.89,1019.11],"5-42-1":[-419.89,1299.01],"6-85-4":[-830.07,1360.06],"6-85-5":[-695.45,2999.15],"5-42-2":[-830.07,2999.15],"6-85-6":[-266.96,2295.42],"6-85-7":[-1076.55,1778.99],"5-42-3":[-1076.55,2295.42],"6-85-8":[-4190.64,1773.8],"6-85-9":[-4762.25,1487.95],"5-42-4":[-4917.61,1773.8],"6-85-10":[-4948.41,1559.37],"6-85-11":[-5080.07,864.4],"5-42-5":[-5270.52,1559.37],"6-85-12":[-5419.76,1394.5],"6-85-13":[-5594.69,600.13],"5-42-6":[-5594.69,1624.4],"6-85-14":[-5097.9,429.21],"6-85-15":[-4796.18,315.69],"5-42-7":[-5097.9,630.85],"6-85-16":[-5524.4,243.14],"6-85-17":[-5768.88,430.08],"5-42-8":[-5768.88,430.08],"6-85-18":[-5589.1,3092.4],"6-85-19":[-5934.6,3228.78],"5-42-9":[-5934.6,3289.8],"6-85-20":[-6770.5,2831.82],"6-85-21":[-6817.28,3905.23],"5-42-10":[-6817.28,4466.14],"6-85-22":[-6709.38,3453.88],"6-85-23":[-5792.46,2164.41],"5-42-11":[-6709.38,3453.88],"6-85-24":[-5484.88,1992.49],"6-85-25":[-5286.66,25.87],"5-42-12":[-5516.96,1992.49],"6-85-26":[-4248.87,28.92],"6-85-27":[-4210.77,43.52],"5-42-13":[-4678.6,43.52],"6-85-28":[-3781.28,-37.67],"6-85-29":[-4287.62,-44.2],"5-42-14":[-4518.41,213.94],"6-85-30":[-4861.17,-59.06],"6-85-31":[-5132.57,-60.26],"5-42-15":[-5132.57,-42.82],"6-85-32":[-5556.87,-55.88],"6-85-33":[-5144.84,-49.83],"5-42-16":[-5613.24,-41.47],"6-85-34":[-4770.64,-41.73],"6-85-35":[-4833.5,-35.72],"5-42-17":[-5297.8,-11.7],"6-85-36":[-4832.9,-25.51],"6-85-37":[-4426.33,12.57],"5-42-18":[-5499.36,12.57],"6-85-38":[-4177.52,-11.51],"6-85-39":[-4112.02,1927.5],"5-42-19":[-4301.04,1927.5],"6-85-40":[-3664.51,2127.4],"6-85-41":[-89.15,3375.88],"5-42-20":[-3664.51,3375.88],"6-85-42":[7.34,3828.19],"6-85-43":[14.16,2719],"5-42-21":[7.34,4351.1],"6-85-44":[20.8,3176.76],"6-85-45":[23.87,3046.38],"5-42-22":[6.6,3212.8],"6-85-46":[27.26,405.08],"6-85-47":[-1.52,242.14],"5-42-23":[-102.22,405.08],"6-85-48":[-3.54,294.72],"6-85-49":[36.61,408.2],"5-42-24":[-26.82,591.85],"6-85-50":[36.35,551.14],"6-85-51":[-160.1,1362.49],"5-42-25":[-160.1,1601.39],"6-85-52":[-21.22,833.36],"6-85-53":[-20.09,1506.37],"5-42-26":[-21.22,1506.37],"6-85-54":[-4.67,1533.95],"6-85-55":[21.69,1802.8],"5-42-27":[-4.67,1802.8],"6-85-56":[-203.29,2724.67],"6-85-57":[-396.29,2726.3],"5-42-28":[-396.31,2971.6],"6-85-58":[-499.48,2693.03],"6-85-59":[-348.85,3395.87],"5-42-29":[-499.48,3405.04],"6-85-60":[-369.01,3894.08],"6-85-61":[-3796.88,3860.75],"5-42-30":[-3796.88,3894.08],"6-85-62":[-4719.26,3477.38],"6-85-63":[-4513.54,3064.64],"5-42-31":[-4848.77,3477.38],"6-86-0":[-753.27,251.12],"6-86-1":[-466.99,1030.05],"6-86-2":[11.81,1938.39],"6-86-3":[3.34,1421.23],"6-86-4":[-801.92,1600.86],"6-86-5":[-1082.04,3054.14],"6-86-6":[-700.69,2012.28],"6-86-7":[-806.03,2132.78],"6-86-8":[-3912.94,1361.22],"6-86-9":[-4585.29,250.25],"6-86-10":[-4946.48,219.71],"6-86-11":[-5126.76,213.66],"6-86-12":[-5068.99,217.01],"6-86-13":[-5140.98,281.46],"6-86-14":[-4858.96,248.91],"6-86-15":[-4878.06,244.16],"6-86-16":[-5684.41,713.35],"6-86-17":[-5765.18,925.05],"6-86-18":[-5641.98,769.1],"6-86-19":[-5615.16,3625.13],"6-86-20":[-5640.46,4120.59],"6-86-21":[-6897.64,2348.74],"6-86-22":[-6025.99,2575.17],"6-86-23":[-5754.46,426.39],"6-86-24":[-5012.35,324.48],"6-86-25":[-4448.42,182.37],"6-86-26":[-4638.51,-54.84],"6-86-27":[-4395.85,-37.12],"6-86-28":[-4402.76,-38.59],"6-86-29":[-4565.06,-65.77],"6-86-30":[-4843.92,-65.78],"6-86-31":[-5276.07,-67.58],"6-86-32":[-5038.14,-64],"6-86-33":[-4993.52,-57.09],"6-86-34":[-5251.52,-47.83],"6-86-35":[-5106.74,-36.76],"6-86-36":[-4516.21,-30.07],"6-86-37":[-4252,-21.06],"6-86-38":[-4015.79,209.37],"6-86-39":[-4236.3,376.48],"6-86-40":[-4436.02,387.36],"6-86-41":[-173.17,2468.93],"6-86-42":[7.71,2226.7],"6-86-43":[12.56,3995.58],"6-86-44":[18.37,3592.12],"6-86-45":[23.48,762.48],"6-86-46":[-48.04,901.05],"6-86-47":[-23.79,672.29],"6-86-48":[14.5,229.04],"6-86-49":[16.37,243.99],"6-86-50":[-198.8,279.58],"6-86-51":[34.42,205.49],"6-86-52":[31.27,211.66],"6-86-53":[23.66,225.7],"6-86-54":[-6.69,255.71],"6-86-55":[-6.75,1361.22],"6-86-56":[-210.37,2407.49],"6-86-57":[-215.22,2407.49],"6-86-58":[-397.61,2435.25],"6-86-59":[-355.94,3458.7],"6-86-60":[-377.17,3925.85],"6-86-61":[-3648.94,3915.12],"6-86-62":[-4993.61,3500.58],"6-86-63":[-4383.74,3065.4],"6-87-0":[-770.81,59.22],"6-87-1":[-454.18,910.5],"5-43-0":[-770.81,1030.05],"6-87-2":[10.38,2261.07],"6-87-3":[-386.02,2071.45],"5-43-1":[-386.02,2261.07],"4-21-0":[-770.81,2261.07],"6-87-4":[-383.96,1917.49],"6-87-5":[-3800.21,2042.55],"5-43-2":[-3800.21,3054.14],"6-87-6":[-2884.07,2117.36],"6-87-7":[-1727.04,2087.2],"5-43-3":[-2884.07,2132.78],"4-21-1":[-3800.21,3054.14],"3-10-0":[-3800.21,3054.14],"6-87-8":[-3759.02,1275.39],"6-87-9":[-4471.39,200.27],"5-43-4":[-4585.29,1361.22],"6-87-10":[-4763.91,154.26],"6-87-11":[-4755.98,142.53],"5-43-5":[-5126.76,219.71],"4-21-2":[-5270.52,1773.8],"6-87-12":[-4690.1,210.72],"6-87-13":[-5090.98,447.9],"5-43-6":[-5140.98,447.9],"6-87-14":[-3386.43,1084.54],"6-87-15":[-4735.27,566.99],"5-43-7":[-4878.06,1084.54],"4-21-3":[-5594.69,1624.4],"3-10-1":[-5594.69,1908.12],"6-87-16":[-5449.05,821.12],"6-87-17":[-5622.74,2139.17],"5-43-8":[-5765.18,2139.17],"6-87-18":[-5271.62,4103.6],"6-87-19":[-4991.34,4599.84],"5-43-9":[-5641.98,4599.84],"4-21-4":[-5934.6,4599.84],"6-87-20":[-5574.64,4772.12],"6-87-21":[-5572.75,3524.89],"5-43-10":[-6897.64,4772.12],"6-87-22":[-5739.76,2437.68],"6-87-23":[-5238.92,529.04],"5-43-11":[-6025.99,2575.17],"4-21-5":[-6897.64,4772.12],"3-10-2":[-6897.64,5595.76],"6-87-24":[-4481.3,-45.37],"6-87-25":[-6299.64,-54.11],"5-43-12":[-6299.64,324.48],"6-87-26":[-4518.2,-61.38],"6-87-27":[-5566.79,-68.36],"5-43-13":[-5566.79,-37.12],"4-21-6":[-6299.64,1992.49],"6-87-28":[-6365.04,-73.16],"6-87-29":[-4813.22,-76.65],"5-43-14":[-6365.04,-38.59],"6-87-30":[-4724.02,-74.88],"6-87-31":[-4950.65,-74.44],"5-43-15":[-5276.07,-65.78],"4-21-7":[-6365.04,213.94],"3-10-3":[-6365.04,2920.56],"6-87-32":[-5184.39,-70.63],"6-87-33":[-5209.14,-64.32],"5-43-16":[-5209.14,-57.09],"6-87-34":[-5299.08,-55.61],"6-87-35":[-4792.16,-45.34],"5-43-17":[-5299.08,-36.76],"4-21-8":[-5613.24,-11.7],"6-87-36":[-4585.57,-34.09],"6-87-37":[-4374.05,-24.11],"5-43-18":[-4585.57,-21.06],"6-87-38":[-3814.21,-13.14],"6-87-39":[-3394.78,-5.98],"5-43-19":[-4236.3,376.48],"4-21-9":[-5499.36,1927.5],"3-10-4":[-5630.71,3059.56],"6-87-40":[-3357.38,497.04],"6-87-41":[-93,2342.65],"5-43-20":[-4436.02,2468.93],"6-87-42":[5.69,3445.88],"6-87-43":[10.55,4709.11],"5-43-21":[5.69,4709.11],"4-21-10":[-4436.02,4709.11],"6-87-44":[18.37,4506.23],"6-87-45":[20.45,4004.61],"5-43-22":[18.37,4506.23],"6-87-46":[25.88,2081.25],"6-87-47":[28.04,795.12],"5-43-23":[-48.04,2081.25],"4-21-11":[-102.22,4506.23],"3-10-5":[-4436.02,5494.75],"6-87-48":[15.28,553.96],"6-87-49":[35.15,1026.53],"5-43-24":[14.5,1026.53],"6-87-50":[34.57,409.9],"6-87-51":[33.74,203.46],"5-43-25":[-198.8,409.9],"4-21-12":[-198.8,1601.39],"6-87-52":[16.11,133.57],"6-87-53":[-2.86,157.13],"5-43-26":[-2.86,225.7],"6-87-54":[-10.31,212.3],"6-87-55":[-10.62,1282.39],"5-43-27":[-10.62,1361.22],"4-21-13":[-21.22,1802.8],"3-10-6":[-198.8,2242.91],"6-87-56":[-79.71,1925.54],"6-87-57":[-164.03,1897.68],"5-43-28":[-215.22,2407.49],"6-87-58":[-346.65,2297.22],"6-87-59":[-393.73,3491.07],"5-43-29":[-397.61,3491.07],"4-21-14":[-499.48,3491.07],"6-87-60":[-577.11,3965.2],"6-87-61":[-3620.25,3965.2],"5-43-30":[-3648.94,3965.2],"6-87-62":[-5015.61,3512.38],"6-87-63":[-4383.62,3065.32],"5-43-31":[-5015.61,3512.38],"4-21-15":[-5015.61,3965.2],"3-10-7":[-5188.16,3965.2],"6-88-0":[-767.86,36.5],"6-88-1":[-428.44,959.04],"6-88-2":[9.6,2322.15],"6-88-3":[-39.25,2104.93],"6-88-4":[-606.74,2084.95],"6-88-5":[-2859.78,1815.24],"6-88-6":[-2822.2,1622.18],"6-88-7":[-1642.56,344.05],"6-88-8":[-3225.87,223.3],"6-88-9":[-4395.86,226.52],"6-88-10":[-4629.63,136.47],"6-88-11":[-4715.75,131.78],"6-88-12":[-4678.56,332.5],"6-88-13":[-4662.12,893.06],"6-88-14":[-1886.34,1554.79],"6-88-15":[-3945.89,447.99],"6-88-16":[-4579.02,2106.12],"6-88-17":[-4768.15,5451.96],"6-88-18":[-4851.07,5411.27],"6-88-19":[-5345.82,5666.76],"6-88-20":[-5826.83,4714.77],"6-88-21":[-5490.03,3432.07],"6-88-22":[-5665.99,1024.24],"6-88-23":[-4919.76,403.18],"6-88-24":[-4401.41,569.02],"6-88-25":[-4766.29,-59.6],"6-88-26":[-5085.97,-70.97],"6-88-27":[-4713.83,-76.12],"6-88-28":[-6296.59,-81.89],"6-88-29":[-5415.32,-85.59],"6-88-30":[-5415.58,-83.95],"6-88-31":[-5034.84,-81.05],"6-88-32":[-4678.13,-76.23],"6-88-33":[-5091.68,-69.57],"6-88-34":[-5315.04,-60.53],"6-88-35":[-4910.61,-49.91],"6-88-36":[-4700.31,-38.44],"6-88-37":[-4340.52,-27.34],"6-88-38":[-3775.62,-16.67],"6-88-39":[-3259.24,482.01],"6-88-40":[-197.97,378.18],"6-88-41":[-45.65,1001.24],"6-88-42":[1.91,3360.06],"6-88-43":[7.53,4608.76],"6-88-44":[12.64,5486.75],"6-88-45":[17.05,5223.27],"6-88-46":[21.65,5206.96],"6-88-47":[26.11,2040.12],"6-88-48":[30.67,440.1],"6-88-49":[-55.82,1713.79],"6-88-50":[33.89,827.05],"6-88-51":[33.4,306.53],"6-88-52":[7.42,123.77],"6-88-53":[-39.7,327.42],"6-88-54":[3.08,230.49],"6-88-55":[-15.39,234.28],"6-88-56":[-22.57,1116.82],"6-88-57":[-96.74,1564.5],"6-88-58":[-334.85,2295.88],"6-88-59":[-547.49,3490.99],"6-88-60":[-643.72,3997.79],"6-88-61":[-3594.02,4001.34],"6-88-62":[-4474.87,3523.63],"6-88-63":[-4558.49,3065.05],"6-89-0":[-706.47,30.41],"6-89-1":[-440.72,977.07],"5-44-0":[-767.86,977.07],"6-89-2":[9.34,2464.93],"6-89-3":[1.06,2473.48],"5-44-1":[-39.25,2473.48],"6-89-4":[-936.59,2332.14],"6-89-5":[-1376.15,981.03],"5-44-2":[-2859.78,2332.14],"6-89-6":[-1438.63,1303.35],"6-89-7":[-1336.73,318.58],"5-44-3":[-2822.2,1622.18],"6-89-8":[-3587.69,100.53],"6-89-9":[-4154.48,139.63],"5-44-4":[-4395.86,226.52],"6-89-10":[-4569.43,118.52],"6-89-11":[-4715.57,117.67],"5-44-5":[-4715.75,136.47],"6-89-12":[-4169.96,204.12],"6-89-13":[-3830.5,749.66],"5-44-6":[-4678.56,893.06],"6-89-14":[-2468.19,1122.49],"6-89-15":[-4016.9,1082.6],"5-44-7":[-4016.9,1554.79],"6-89-16":[-4414.85,4445.78],"6-89-17":[-4631.89,5979.55],"5-44-8":[-4768.15,5979.55],"6-89-18":[-4974.01,7425.22],"6-89-20":[-5304.14,2777.08],"6-89-19":[-5513.3,7670.17],"5-44-9":[-5513.3,7670.17],"6-89-21":[-5172.38,1028.73],"5-44-10":[-5826.83,4714.77],"6-89-22":[-4626.02,913.48],"6-89-23":[-5042.76,1654.1],"5-44-11":[-5665.99,1654.1],"6-89-24":[-5314.43,1010.35],"6-89-25":[-5903.05,598.43],"5-44-12":[-5903.05,1010.35],"6-89-26":[-6180.12,-75.99],"6-89-27":[-5778.91,-67.66],"5-44-13":[-6180.12,-67.66],"6-89-28":[-5869.67,-72.32],"6-89-29":[-4365.43,48.53],"5-44-14":[-6296.59,48.53],"6-89-30":[-4791.83,15.48],"6-89-31":[-5071.12,1.04],"5-44-15":[-5415.58,15.48],"6-89-32":[-4576.94,-3.46],"6-89-33":[-4785.27,6.33],"5-44-16":[-5091.68,6.33],"6-89-34":[-4574.62,105.2],"6-89-35":[-4689.33,94.67],"5-44-17":[-5315.04,105.2],"6-89-36":[-4438.32,200.09],"6-89-37":[-3765.77,-34.29],"5-44-18":[-4700.31,200.09],"6-89-38":[-3494.6,568.44],"6-89-39":[-182.94,902.33],"5-44-19":[-3775.62,902.33],"6-89-40":[-76.25,1584.1],"6-89-41":[-16.37,827.48],"5-44-20":[-197.97,1584.1],"6-89-42":[-2.98,985.73],"6-89-43":[4.23,2682.07],"5-44-21":[-2.98,4608.76],"6-89-44":[9.98,7438.17],"6-89-45":[13.89,7210.21],"5-44-22":[9.98,7438.17],"6-89-46":[21.65,5961.54],"6-89-47":[23.2,4291.76],"5-44-23":[21.65,5961.54],"6-89-48":[28.47,1036.59],"6-89-49":[32.48,1064.49],"5-44-24":[-55.82,1713.79],"6-89-50":[6.34,715.49],"6-89-51":[-9.37,197.65],"5-44-25":[-9.37,827.05],"6-89-52":[15.38,111.68],"6-89-53":[-3.32,343.8],"5-44-26":[-39.7,343.8],"6-89-54":[14.74,147.43],"6-89-55":[-17.33,117.58],"5-44-27":[-17.33,234.28],"6-89-56":[-17.83,392.26],"6-89-57":[-29.56,1769.28],"5-44-28":[-96.74,1769.28],"6-89-58":[-272.69,2436.17],"6-89-59":[-510.33,3484.93],"5-44-29":[-547.49,3490.99],"6-89-60":[-640.09,4020.7],"6-89-61":[-3575.47,4020.7],"5-44-30":[-3594.02,4020.7],"6-89-62":[-4236.46,3529.73],"6-89-63":[-4514.53,3064.81],"5-44-31":[-4558.49,3529.73],"6-90-0":[-640.98,61.26],"6-90-1":[-390.9,805.39],"6-90-2":[9.21,2183.68],"6-90-3":[0.25,2469.66],"6-90-4":[-1304.8,2425.45],"6-90-5":[-1149.32,1548.99],"6-90-6":[-414.72,2224.46],"6-90-7":[-1632.86,499.7],"6-90-8":[-3548.24,91.65],"6-90-9":[-4053.7,169.41],"6-90-10":[-4212.58,102.52],"6-90-11":[-4304.91,130.71],"6-90-12":[-3505.98,132.71],"6-90-13":[-2934.53,2598.41],"6-90-14":[-3135.99,1507.27],"6-90-15":[-4279.42,1151.88],"6-90-16":[-4489.05,4807.35],"6-90-17":[-4479.4,6513.21],"6-90-18":[-5017.58,7543.41],"6-90-20":[-5217.14,5343.32],"6-90-21":[-4488.37,447.8],"6-90-22":[-4547.42,998],"6-90-19":[-5325.59,8087.96],"6-90-23":[-5040.15,1264.93],"6-90-24":[-5735.98,1499.22],"6-90-25":[-5813.09,1527.78],"6-90-26":[-6081.85,969.76],"6-90-27":[-5744.78,1943.78],"6-90-28":[-5599.69,132.05],"6-90-29":[-5614.43,-76.78],"6-90-30":[-5738.79,-73.55],"6-90-31":[-5224.71,100.88],"6-90-32":[-4737.85,203.27],"6-90-33":[-3727.92,187.82],"6-90-34":[-3145.88,89.54],"6-90-35":[-2988.52,52.04],"6-90-36":[-2425.97,1816.78],"6-90-37":[-1039.44,953.76],"6-90-38":[-113.99,1391.73],"6-90-39":[-64.94,1364.22],"6-90-40":[-47.65,1160.93],"6-90-41":[-26.36,959.99],"6-90-42":[-11.95,366.79],"6-90-43":[1.09,5121.48],"6-90-44":[6.57,7900.96],"6-90-45":[11.56,7428.15],"6-90-46":[16.22,6455.21],"6-90-47":[21.29,4685.71],"6-90-48":[26.15,1023.87],"6-90-49":[29.48,1442.28],"6-90-50":[-31.98,2779.41],"6-90-51":[0.44,113.69],"6-90-52":[21.05,124.69],"6-90-53":[-11.69,331.23],"6-90-54":[10.84,175.41],"6-90-55":[-17.9,105.1],"6-90-56":[-21.34,1525.64],"6-90-57":[-32.68,2210.25],"6-90-58":[-120.9,2619.19],"6-90-59":[-433.61,3487.6],"6-90-60":[-567.12,4037.87],"6-90-61":[-3570.81,4030.9],"6-90-62":[-4219.09,3530.31],"6-90-63":[-4406.28,3064.82],"6-91-0":[-639.31,189.19],"6-91-1":[-384.95,834.08],"5-45-0":[-640.98,834.08],"6-91-2":[8.56,2367.16],"6-91-3":[-0.35,2551.86],"5-45-1":[-0.35,2551.86],"4-22-0":[-767.86,2551.86],"6-91-4":[-1479.06,2480.04],"6-91-5":[-281.82,1619.37],"5-45-2":[-1479.06,2480.04],"6-91-6":[-498.16,1605.36],"6-91-7":[-1553.63,731.58],"5-45-3":[-1632.86,2224.46],"4-22-1":[-2859.78,2480.04],"6-91-8":[-3586.88,81.75],"6-91-9":[-4086.33,122.72],"5-45-4":[-4086.33,169.41],"6-91-10":[-4014.01,110.81],"6-91-11":[-2910.87,118.68],"5-45-5":[-4304.91,130.71],"4-22-2":[-4715.75,226.52],"6-91-12":[-2973.92,133.68],"6-91-13":[-3695.85,487.76],"5-45-6":[-3695.85,2598.41],"6-91-14":[-3738.3,1504.92],"6-91-15":[-4043.82,1384.81],"5-45-7":[-4279.42,1507.27],"4-22-3":[-4678.56,2598.41],"6-91-16":[-4375.35,4930.95],"6-91-17":[-4265.58,5827.63],"5-45-8":[-4489.05,6513.21],"6-91-18":[-4366.17,6379.76],"6-91-19":[-4748.48,8560.58],"5-45-9":[-5325.59,8560.58],"4-22-4":[-5513.3,8560.58],"6-91-20":[-4652.94,6725.08],"6-91-21":[-4609.1,4563.58],"5-45-10":[-5217.14,6725.08],"6-91-22":[-4986.87,732.76],"6-91-23":[-5274.33,994.23],"5-45-11":[-5274.33,1264.93],"4-22-5":[-5826.83,6725.08],"6-91-24":[-5529.09,1273.26],"6-91-25":[-6647.67,698.38],"5-45-12":[-6647.67,1527.78],"6-91-26":[-5942.01,1069.77],"6-91-27":[-5762.94,2543.22],"5-45-13":[-6081.85,2543.22],"4-22-6":[-6647.67,2543.22],"6-91-28":[-5774.81,2590.24],"6-91-29":[-5738.63,1544.94],"5-45-14":[-5774.81,2590.24],"6-91-30":[-5469.78,-102.05],"6-91-31":[-5216.17,-100.58],"5-45-15":[-5738.79,100.88],"4-22-7":[-6296.59,2590.24],"6-91-32":[-5076.96,-96.41],"6-91-33":[-4415.5,-89.47],"5-45-16":[-5076.96,203.27],"6-91-34":[-3876.39,1456.94],"6-91-35":[-1368.49,2500.59],"5-45-17":[-3876.39,2500.59],"4-22-8":[-5315.04,2500.59],"6-91-36":[-142.2,2482.21],"6-91-37":[-116.73,1003.95],"5-45-18":[-2425.97,2482.21],"6-91-38":[-98.13,689.37],"6-91-39":[-76.39,1212.26],"5-45-19":[-113.99,1391.73],"4-22-9":[-4700.31,2482.21],"6-91-40":[-59.57,977.73],"6-91-41":[-39.69,677.26],"5-45-20":[-59.57,1160.93],"6-91-42":[-24.55,4424.66],"6-91-43":[-6.24,6545.87],"5-45-21":[-24.55,6545.87],"4-22-10":[-197.97,6545.87],"6-91-44":[3.69,8392.58],"6-91-45":[-0.46,6247.71],"5-45-22":[-0.46,8392.58],"6-91-46":[14.12,5742.63],"6-91-47":[18.73,4840.78],"5-45-23":[14.12,6455.21],"4-22-11":[-0.46,8392.58],"6-91-48":[26.15,1330.33],"6-91-49":[26.58,1464.91],"5-45-24":[26.15,1464.91],"6-91-50":[19.97,460.76],"6-91-51":[27.46,101.74],"5-45-25":[-31.98,2779.41],"4-22-12":[-55.82,2779.41],"6-91-52":[20.79,113.28],"6-91-53":[-17.77,113.81],"5-45-26":[-17.77,331.23],"6-91-54":[-9.28,129.12],"6-91-55":[-14.96,98.12],"5-45-27":[-17.9,175.41],"4-22-13":[-39.7,343.8],"6-91-56":[-19.59,1873.55],"6-91-57":[-21.81,2662.65],"5-45-28":[-32.68,2662.65],"6-91-58":[-80.34,2841.83],"6-91-59":[-317.86,3506.71],"5-45-29":[-433.61,3506.71],"4-22-14":[-547.49,3506.71],"6-91-60":[-233.74,4042.04],"6-91-61":[-3602.62,4030.73],"5-45-30":[-3602.62,4042.04],"6-91-62":[-4392.18,3527.6],"6-91-63":[-4471.35,3066.42],"5-45-31":[-4471.35,3530.31],"4-22-15":[-4558.49,4042.04],"6-92-0":[-645.12,227.14],"6-92-1":[-397.86,937.13],"6-92-2":[7.88,2366.12],"6-92-3":[-1.45,2837.93],"6-92-4":[-1235.35,2211.57],"6-92-5":[-686.65,1122.37],"6-92-6":[-162.24,1378.61],"6-92-7":[-774.24,1072.09],"6-92-8":[-3708.87,64.43],"6-92-9":[-3896.11,203.65],"6-92-10":[-3247.71,114.52],"6-92-11":[-4588.27,125.15],"6-92-12":[-4759.65,235.48],"6-92-13":[-4573.21,478.3],"6-92-14":[-4218.85,1419.87],"6-92-15":[-4033.49,4532.62],"6-92-16":[-3758.83,6633.62],"6-92-17":[-3919.79,7087.4],"6-92-18":[-4298.67,4976.93],"6-92-19":[-4525.92,7022.3],"6-92-20":[-4589.42,7194.47],"6-92-21":[-4677.75,7787.57],"6-92-22":[-4830.92,295.99],"6-92-23":[-5268.63,1069.67],"6-92-24":[-5627.16,1095.71],"6-92-25":[-6029.63,1197.87],"6-92-26":[-6091.69,1006.73],"6-92-27":[-6323.49,1132.42],"6-92-28":[-5678.07,434.8],"6-92-29":[-5900.81,2430.45],"6-92-30":[-5399.93,-101.01],"6-92-31":[-5206.63,-100.16],"6-92-32":[-5022.99,-94.42],"6-92-33":[-4622.89,-88.59],"6-92-34":[-4222.18,2382.44],"6-92-35":[-3966.9,367.8],"6-92-36":[-3737.67,1082.42],"6-92-37":[-3408.68,924.73],"6-92-38":[-104.92,1135.87],"6-92-39":[-84.27,1075.71],"6-92-40":[-67.56,1049.67],"6-92-41":[-47.53,244.26],"6-92-42":[-33.56,7477.1],"6-92-43":[-15.92,6783.47],"6-92-44":[-3.11,6972.29],"6-92-45":[3.14,4850.94],"6-92-46":[9.41,6956.38],"6-92-47":[15.61,6473.62],"6-92-48":[19.59,4411.61],"6-92-49":[23.34,1366.87],"6-92-50":[24.55,472.32],"6-92-51":[20.83,226.49],"6-92-52":[12.33,118.27],"6-92-53":[-1.93,111.49],"6-92-54":[-18.83,205.66],"6-92-55":[-19.8,76.05],"6-92-56":[-14.79,2339.17],"6-92-57":[-28.39,2935.32],"6-92-58":[-72.76,3173.47],"6-92-59":[-191.46,3593.63],"6-92-60":[-328.07,4042.04],"6-92-61":[-3603.54,4001.04],"6-92-62":[-4413.7,3516.41],"6-92-63":[-4414.53,3066.46],"6-93-0":[-598.54,447.74],"6-93-1":[-405.36,559.4],"5-46-0":[-645.12,937.13],"6-93-2":[7.36,2052.06],"6-93-3":[-1.93,2388.42],"5-46-1":[-1.93,2837.93],"6-93-4":[-825.37,1419.34],"6-93-5":[-321.04,1310.48],"5-46-2":[-1235.35,2211.57],"6-93-6":[-535.25,796.65],"6-93-7":[-1525.55,783.16],"5-46-3":[-1525.55,1378.61],"6-93-8":[-3607.56,149.97],"6-93-9":[-3782.36,236.06],"5-46-4":[-3896.11,236.06],"6-93-10":[-3244.4,155.46],"6-93-11":[-4940.09,162.81],"5-46-5":[-4940.09,162.81],"6-93-12":[-4915.47,446.71],"6-93-13":[-4738.91,2380.4],"5-46-6":[-4915.47,2380.4],"6-93-14":[-4289.66,2712],"6-93-15":[-4355.64,3961.77],"5-46-7":[-4355.64,4532.62],"6-93-16":[-4432.86,5107.74],"6-93-17":[-3773.11,3794.4],"5-46-8":[-4432.86,7087.4],"6-93-18":[-4143.17,6062.91],"6-93-19":[-4597.94,6911.73],"5-46-9":[-4597.94,7022.3],"6-93-20":[-4953.08,6600.18],"6-93-21":[-4693,8103.55],"5-46-10":[-4953.08,8103.55],"6-93-22":[-5242.48,2512.35],"6-93-23":[-5502.72,1178.46],"5-46-11":[-5502.72,2512.35],"6-93-24":[-5927.26,1262.43],"6-93-25":[-5842.24,1608.79],"5-46-12":[-6029.63,1608.79],"6-93-26":[-6117.19,-37.98],"6-93-27":[-6121.17,-86.28],"5-46-13":[-6323.49,1132.42],"6-93-28":[-5759.02,-88.67],"6-93-29":[-5683.35,351.9],"5-46-14":[-5900.81,2430.45],"6-93-30":[-5408.99,-92.98],"6-93-31":[-5189.72,-91.46],"5-46-15":[-5408.99,-91.46],"6-93-32":[-4779.36,-88.46],"6-93-33":[-4502,-84.21],"5-46-16":[-5022.99,-84.21],"6-93-34":[-4405.78,250.19],"6-93-35":[-4122.18,-69.13],"5-46-17":[-4405.78,2382.44],"6-93-36":[-3761.1,-61.65],"6-93-37":[-3546.44,-21.32],"5-46-18":[-3761.1,1082.42],"6-93-38":[-2986.65,1526.78],"6-93-39":[-92.35,1210.44],"5-46-19":[-2986.65,1526.78],"6-93-40":[-75.45,1148.44],"6-93-41":[-57.43,2392.36],"5-46-20":[-75.45,2392.36],"6-93-42":[-43.87,7996.56],"6-93-43":[-26.53,6529.17],"5-46-21":[-43.87,7996.56],"6-93-44":[-14.66,6785.68],"6-93-45":[-1.24,5925.82],"5-46-22":[-14.66,6972.29],"6-93-46":[5.93,3698.38],"6-93-47":[11.24,4974.72],"5-46-23":[5.93,6956.38],"6-93-48":[19.38,3851.93],"6-93-49":[19.38,2590],"5-46-24":[19.38,4411.61],"6-93-50":[20.9,2292.4],"6-93-51":[20.83,411.7],"5-46-25":[20.83,2292.4],"6-93-52":[12.97,151.82],"6-93-53":[18.26,165.91],"5-46-26":[-1.93,165.91],"6-93-54":[-9.15,247.3],"6-93-55":[-19.02,635.17],"5-46-27":[-19.8,635.17],"6-93-56":[-16.08,2519.02],"6-93-57":[-14.95,3197.54],"5-46-28":[-28.39,3197.54],"6-93-58":[-59.02,3364.13],"6-93-59":[-200.6,3621.13],"5-46-29":[-200.6,3621.13],"6-93-60":[-383.88,4025.51],"6-93-61":[-3638.41,3923.74],"5-46-30":[-3638.41,4042.04],"6-93-62":[-4412.72,3499.2],"6-93-63":[-4412.72,3067.15],"5-46-31":[-4414.53,3516.41],"6-94-0":[-576.96,447.74],"6-94-1":[-490.72,533.51],"6-94-2":[-88.61,1993.81],"6-94-3":[-25.35,2256.16],"6-94-4":[-65.53,916.49],"6-94-5":[-226.99,650.86],"6-94-6":[-535.25,744.12],"6-94-7":[-952.38,1128.23],"6-94-8":[-3523.31,216.58],"6-94-9":[-3903.39,232.96],"6-94-10":[-4655.36,204.28],"6-94-11":[-4953.77,252.1],"6-94-12":[-5052.19,544.69],"6-94-13":[-4860.03,2652.03],"6-94-14":[-4450.02,4375.85],"6-94-15":[-4317.75,3786.97],"6-94-16":[-4383.8,5220.28],"6-94-17":[-4658.52,3644.02],"6-94-18":[-4060.5,6686.7],"6-94-19":[-4111.06,6437.5],"6-94-20":[-4733.64,6733.83],"6-94-21":[-4909.98,8019.76],"6-94-22":[-4884.18,8777.15],"6-94-23":[-5346.94,1317.62],"6-94-24":[-5660.98,1124.07],"6-94-25":[-5665.75,1331.06],"6-94-26":[-5692.51,-73.06],"6-94-27":[-5733.14,-76.23],"6-94-28":[-5947.08,-77.26],"6-94-29":[-5808.81,-77.29],"6-94-30":[-5433.18,-78.62],"6-94-31":[-5040.3,-78.17],"6-94-32":[-4752.82,-76.46],"6-94-33":[-4483.87,-74.65],"6-94-34":[-4218.61,-71.13],"6-94-35":[-3868.68,-67.72],"6-94-36":[-3569.03,-60.57],"6-94-37":[-3265.74,-54.12],"6-94-38":[-2992,1261.05],"6-94-39":[-1598.7,1080.07],"6-94-40":[-77.95,1222.62],"6-94-41":[-61.78,8598.15],"6-94-42":[-50.7,7880.79],"6-94-43":[-33.49,6616.83],"6-94-44":[-21.33,6332.71],"6-94-45":[-8.99,6551.71],"6-94-46":[0.56,3604.04],"6-94-47":[7.51,4970.26],"6-94-48":[11.75,3721.8],"6-94-49":[15.47,4235.84],"6-94-50":[16.83,2541.05],"6-94-51":[15.6,525.74],"6-94-52":[12.93,239.09],"6-94-53":[11.48,204.28],"6-94-54":[-14.13,238.32],"6-94-55":[-18.6,1029.1],"6-94-56":[-15.92,2637.61],"6-94-57":[-11.52,3300.48],"6-94-58":[-61.57,3450.97],"6-94-59":[-198.69,3672.41],"6-94-60":[-397.08,3954.97],"6-94-61":[-3665.4,3850.88],"6-94-62":[-4412.06,3480.02],"6-94-63":[-4409.04,3067.91],"6-95-0":[-602.77,562.41],"6-95-1":[-460.9,424.48],"5-47-0":[-602.77,562.41],"6-95-2":[6.2,1674.74],"6-95-3":[-126.18,1339.78],"5-47-1":[-126.18,2256.16],"4-23-0":[-645.12,2837.93],"6-95-4":[-501.23,855.62],"6-95-5":[-355.11,859.48],"5-47-2":[-501.23,916.49],"6-95-6":[-433.11,1054.02],"6-95-7":[-816.66,941.07],"5-47-3":[-952.38,1128.23],"4-23-1":[-1525.55,2211.57],"3-11-0":[-2859.78,2837.93],"6-95-8":[-3578.67,733.23],"6-95-9":[-4260.32,628.73],"5-47-4":[-4260.32,733.23],"6-95-10":[-4696.15,242.85],"6-95-11":[-4872.34,262.78],"5-47-5":[-4953.77,262.78],"4-23-2":[-4953.77,733.23],"6-95-12":[-4878.33,2173.74],"6-95-13":[-4844.26,3529.7],"5-47-6":[-5052.19,3529.7],"6-95-14":[-4336.73,4279.84],"6-95-15":[-4012.33,3328.41],"5-47-7":[-4450.02,4375.85],"4-23-3":[-5052.19,4532.62],"3-11-1":[-5052.19,4532.62],"2-5-0":[-5594.69,4532.62],"6-95-16":[-3897.48,4987.09],"6-95-17":[-4190.29,2654.79],"5-47-8":[-4658.52,5220.28],"6-95-18":[-4529.97,6201.27],"6-95-19":[-4902.77,6890.4],"5-47-9":[-4902.77,6890.4],"4-23-4":[-4902.77,7087.4],"6-95-20":[-4279.48,6254.63],"6-95-21":[-4679.07,7070.27],"5-47-10":[-4909.98,8019.76],"6-95-22":[-5271.01,8478.4],"6-95-23":[-5469.35,533.63],"5-47-11":[-5469.35,8777.15],"4-23-5":[-5502.72,8777.15],"3-11-2":[-5826.83,8777.15],"6-95-24":[-6170.59,26.16],"6-95-25":[-6029.46,-61.4],"5-47-12":[-6170.59,1331.06],"6-95-26":[-6233.8,-63.4],"6-95-27":[-6168.75,-64.19],"5-47-13":[-6233.8,-63.4],"4-23-6":[-6323.49,1608.79],"6-95-28":[-5946.53,-62.12],"6-95-29":[-5563.77,-59.77],"5-47-14":[-5947.08,-59.77],"6-95-30":[-5415.34,-59.81],"6-95-31":[-5091.48,-60.33],"5-47-15":[-5433.18,-59.81],"4-23-7":[-5947.08,2430.45],"3-11-3":[-6647.67,2590.24],"2-5-1":[-6897.64,8777.15],"1-2-0":[-7020.16,8777.15],"6-95-32":[-4840.71,-61.96],"6-95-33":[-4477.56,-62.76],"5-47-16":[-4840.71,-61.96],"6-95-34":[-4145.89,-63.18],"6-95-35":[-4001.9,-62.21],"5-47-17":[-4218.61,-62.21],"4-23-8":[-5022.99,2382.44],"6-95-36":[-3450.75,-58.3],"6-95-37":[-3372.07,-51.25],"5-47-18":[-3569.03,-51.25],"6-95-38":[-2676.42,-44.8],"6-95-39":[-2060.04,21.7],"5-47-19":[-2992,1261.05],"4-23-9":[-3761.1,1526.78],"3-11-4":[-5315.04,2500.59],"6-95-40":[-87.28,515.63],"6-95-41":[-73.3,8337.38],"5-47-20":[-87.28,8598.15],"6-95-42":[-61.25,6940.28],"6-95-43":[-45.22,6206.62],"5-47-21":[-61.25,7880.79],"4-23-10":[-87.28,8598.15],"6-95-44":[-34.87,6723.39],"6-95-45":[-20.9,6097.25],"5-47-22":[-34.87,6723.39],"6-95-46":[-8.31,2575.12],"6-95-47":[-220.5,5153.81],"5-47-23":[-220.5,5153.81],"4-23-11":[-220.5,6972.29],"3-11-5":[-220.5,8598.15],"2-5-2":[-5630.71,8598.15],"6-95-48":[11.13,3250.14],"6-95-49":[11.13,4186.84],"5-47-24":[11.13,4235.84],"6-95-50":[13.37,3407.69],"6-95-51":[13.37,2121.23],"5-47-25":[13.37,3407.69],"4-23-12":[11.13,4411.61],"6-95-52":[10.23,254.78],"6-95-53":[-6.6,249.74],"5-47-26":[-6.6,254.78],"6-95-54":[-14.83,629.23],"6-95-55":[-23.34,1290.06],"5-47-27":[-23.34,1290.06],"4-23-13":[-23.34,1290.06],"3-11-6":[-55.82,4411.61],"6-95-56":[-11.92,2688.65],"6-95-57":[-12.05,3479.02],"5-47-28":[-15.92,3479.02],"6-95-58":[-66.28,3627.63],"6-95-59":[-225.58,3738.39],"5-47-29":[-225.58,3738.39],"4-23-14":[-225.58,3738.39],"6-95-60":[-389.39,3883.62],"6-95-61":[-3689.24,3781.94],"5-47-30":[-3689.24,3954.97],"6-95-62":[-4427.44,3420.26],"6-95-63":[-4395.91,3069.78],"5-47-31":[-4427.44,3480.02],"4-23-15":[-4427.44,4042.04],"3-11-7":[-4558.49,4042.04],"2-5-3":[-5188.16,4411.61],"1-2-1":[-5630.71,8598.15],"6-96-0":[-507.95,550.11],"6-96-1":[-395.05,585.56],"6-96-2":[6.32,1424.65],"6-96-3":[-31.33,1441.83],"6-96-4":[-453.58,1344.57],"6-96-5":[-201.96,1305.47],"6-96-6":[-290.34,1334],"6-96-7":[-358.6,1577.7],"6-96-8":[-3477.28,974.81],"6-96-9":[-4185.57,751.03],"6-96-10":[-4564.8,917.02],"6-96-11":[-4753.73,457.27],"6-96-12":[-4737.6,1266.17],"6-96-13":[-4756.71,3266],"6-96-14":[-4510.66,4151.48],"6-96-15":[-4069.46,4116.23],"6-96-16":[-3473.69,3824.31],"6-96-17":[-3788.26,2504.01],"6-96-18":[-4700.84,5909.96],"6-96-19":[-4874.41,6767.17],"6-96-20":[-5176.8,6522.84],"6-96-21":[-4920.94,7463.69],"6-96-22":[-5332.86,7512.84],"6-96-23":[-5984.55,1663.78],"6-96-24":[-5819.56,1062.24],"6-96-25":[-6172.54,-53.86],"6-96-26":[-6470.49,-59.44],"6-96-27":[-6334.52,407.51],"6-96-28":[-6436.56,114.95],"6-96-29":[-5830.63,-53.59],"6-96-30":[-5438.79,-48.89],"6-96-31":[-4933.77,-47.66],"6-96-32":[-4971.61,-47.94],"6-96-33":[-4598.44,-48.79],"6-96-34":[-4770.86,-51.46],"6-96-35":[-3985.12,95.94],"6-96-36":[-3493.93,364.5],"6-96-37":[-3068.68,-52.16],"6-96-38":[-2570.27,-47.88],"6-96-39":[-1611.51,971.23],"6-96-40":[-110.58,1645.76],"6-96-41":[-79.29,7274.95],"6-96-42":[-69.21,7054.69],"6-96-43":[-55.83,6428.04],"6-96-44":[-44.21,6604.16],"6-96-45":[-29.81,5836.96],"6-96-46":[-17.32,2435],"6-96-47":[-19.04,3762.29],"6-96-48":[3,4053.22],"6-96-49":[6.76,4099.84],"6-96-50":[9.32,3157.99],"6-96-51":[9.2,1217.16],"6-96-52":[7.16,445.77],"6-96-53":[-41.06,924.54],"6-96-54":[2.39,754.02],"6-96-55":[3.38,1584.77],"6-96-56":[14.61,2802.12],"6-96-57":[-13.87,3518.93],"6-96-58":[-60.39,3704.38],"6-96-59":[-114.78,3756.39],"6-96-60":[-212.46,3799.9],"6-96-61":[-3739.84,3696.84],"6-96-62":[-4393.72,3372.98],"6-96-63":[-4412.76,3073.17],"6-97-0":[-364.14,494.02],"6-97-1":[-399.12,366.65],"5-48-0":[-507.95,585.56],"6-97-2":[5.88,988],"6-97-3":[-5.43,1653.63],"5-48-1":[-31.33,1653.63],"6-97-4":[-15.46,1661.74],"6-97-5":[-282.65,1274.66],"5-48-2":[-453.58,1661.74],"6-97-6":[-438.53,1165.53],"6-97-7":[-407.85,1618.98],"5-48-3":[-438.53,1618.98],"6-97-8":[-2713.91,1177.41],"6-97-9":[-4143.19,764.98],"5-48-4":[-4185.57,1177.41],"6-97-10":[-4571.83,1092.04],"6-97-11":[-4667.26,823.06],"5-48-5":[-4753.73,1092.04],"6-97-12":[-4992.04,2561.56],"6-97-13":[-4442.71,2677.49],"5-48-6":[-4992.04,3266],"6-97-14":[-4214.57,2882.06],"6-97-15":[-4045.73,4155.27],"5-48-7":[-4510.66,4155.27],"6-97-16":[-3751.2,4825.04],"6-97-17":[-4087.17,4733.64],"5-48-8":[-4087.17,4825.04],"6-97-18":[-4588.68,5772.12],"6-97-19":[-4985.77,6131.65],"5-48-9":[-4985.77,6767.17],"6-97-20":[-5603.67,6237.58],"6-97-21":[-4539.45,7221.31],"5-48-10":[-5603.67,7463.69],"6-97-22":[-5521.12,5335.5],"6-97-23":[-6178.41,2777.96],"5-48-11":[-6178.41,7512.84],"6-97-24":[-5874.71,3021.9],"6-97-25":[-6475.28,1489.97],"5-48-12":[-6475.28,3021.9],"6-97-26":[-6434.12,365.67],"6-97-27":[-6299.38,671.16],"5-48-13":[-6470.49,671.16],"6-97-28":[-6037.15,253.16],"6-97-29":[-5599.45,634.69],"5-48-14":[-6436.56,634.69],"6-97-30":[-5263.17,2140.29],"6-97-31":[-5140.67,-30.37],"5-48-15":[-5438.79,2140.29],"6-97-32":[-5106.69,-30.41],"6-97-33":[-4931.92,2040.29],"5-48-16":[-5106.69,2040.29],"6-97-34":[-4661.45,548.69],"6-97-35":[-4636.64,171.14],"5-48-17":[-4770.86,548.69],"6-97-36":[-3316.65,618.15],"6-97-37":[-2881.1,316.65],"5-48-18":[-3493.93,618.15],"6-97-38":[-2676.29,1443.77],"6-97-39":[-137.79,2960.9],"5-48-19":[-2676.29,2960.9],"6-97-40":[-91.36,2693.99],"6-97-41":[-84.52,5200.27],"5-48-20":[-110.58,7274.95],"6-97-42":[-74.46,7161.3],"6-97-43":[-60.54,6144.57],"5-48-21":[-74.46,7161.3],"6-97-44":[-55.82,6036.64],"6-97-45":[-41.68,5696.1],"5-48-22":[-55.82,6604.16],"6-97-46":[-29.34,4612.61],"6-97-47":[-13.57,4736.04],"5-48-23":[-29.34,4736.04],"6-97-48":[-3.72,4132.25],"6-97-49":[2.56,2840.06],"5-48-24":[-3.72,4132.25],"6-97-50":[5.93,2600.03],"6-97-51":[6.01,2378.55],"5-48-25":[5.93,3157.99],"6-97-52":[3.78,811.06],"6-97-53":[-1.51,1061.04],"5-48-26":[-41.06,1061.04],"6-97-54":[-2.2,784.39],"6-97-55":[-0.05,1584.77],"5-48-27":[-2.2,1584.77],"6-97-56":[43.27,2824.51],"6-97-57":[-14.89,3500.23],"5-48-28":[-14.89,3518.93],"6-97-58":[-24.5,3719.54],"6-97-59":[-126.51,3755.97],"5-48-29":[-126.51,3756.39],"6-97-60":[-221.84,3775.22],"6-97-61":[-3792.88,3652.34],"5-48-30":[-3792.88,3799.9],"6-97-62":[-4477.7,3341.15],"6-97-63":[-4401.04,3074.67],"5-48-31":[-4477.7,3372.98],"6-98-0":[-371.51,448.58],"6-98-1":[-316.46,300.99],"6-98-2":[4.57,1060.02],"6-98-3":[-254.89,1807.12],"6-98-4":[-16.48,1774.8],"6-98-5":[-298.82,1169.06],"6-98-6":[-774.09,715.29],"6-98-7":[-2340.07,1569.96],"6-98-8":[-1082.6,1090.5],"6-98-9":[-4200.3,887.64],"6-98-10":[-4568.5,775.1],"6-98-11":[-4834.4,615.55],"6-98-12":[-4862.94,2887.36],"6-98-13":[-4329.53,2999.01],"6-98-14":[-4764.12,3482.56],"6-98-15":[-4080.63,3928.85],"6-98-16":[-4130.05,2953.75],"6-98-17":[-4647.34,5415.08],"6-98-18":[-4790.05,5725.81],"6-98-19":[-4988.02,5462.57],"6-98-20":[-5720.28,5731.48],"6-98-21":[-4587.04,6535.05],"6-98-22":[-5777.18,5106.11],"6-98-23":[-6446.93,3346.34],"6-98-24":[-6216.81,2464.8],"6-98-25":[-6329.09,2574.03],"6-98-26":[-6412.8,1748.97],"6-98-27":[-6111.95,1498.37],"6-98-28":[-6037.15,1085.71],"6-98-29":[-6003.77,550.46],"6-98-30":[-5871.84,3433.72],"6-98-31":[-5614.47,1843.03],"6-98-32":[-5471.08,1698.95],"6-98-33":[-1424.27,3384.6],"6-98-34":[-2250.26,448.92],"6-98-35":[-2791.74,954.7],"6-98-36":[-2811.05,1369.36],"6-98-37":[-388.5,1662.98],"6-98-38":[-190.16,2513.02],"6-98-39":[-96.25,2383.84],"6-98-40":[-93.34,3253.33],"6-98-41":[-85,4949.11],"6-98-42":[-76.44,6337.06],"6-98-43":[-68.5,5603.47],"6-98-44":[-62.86,5366.56],"6-98-45":[-50.56,5626.81],"6-98-46":[-38.51,5318.07],"6-98-47":[-23.36,2894.75],"6-98-48":[-12.63,3815.84],"6-98-49":[-1.83,3449.56],"6-98-50":[0.77,2894.03],"6-98-51":[1.97,2716.31],"6-98-52":[-0.24,590.54],"6-98-53":[-6.56,774.1],"6-98-54":[-6.92,878.64],"6-98-55":[-6.32,1715.72],"6-98-56":[12.62,2802.84],"6-98-57":[-12.46,3410],"6-98-58":[-22.47,3708.3],"6-98-59":[-214.72,3736.73],"6-98-60":[-1142.49,3737.71],"6-98-61":[-3792.91,3612.82],"6-98-62":[-4469.7,3317.35],"6-98-63":[-4417.4,3075.47],"6-99-0":[-364.52,447.51],"6-99-1":[-290.13,155.66],"5-49-0":[-371.51,448.58],"6-99-2":[-22.28,953.5],"6-99-3":[-482.07,1748.05],"5-49-1":[-482.07,1807.12],"4-24-0":[-507.95,1807.12],"6-99-4":[-813.43,1651.8],"6-99-5":[-218.72,590],"5-49-2":[-813.43,1774.8],"6-99-6":[-285.15,855.64],"6-99-7":[-3731.89,1480.74],"5-49-3":[-3731.89,1569.96],"4-24-1":[-3731.89,1774.8],"6-99-8":[-3736.42,1436.53],"6-99-9":[-4507.24,868.73],"5-49-4":[-4507.24,1436.53],"6-99-10":[-4621.74,599.89],"6-99-11":[-4707.79,729.83],"5-49-5":[-4834.4,775.1],"4-24-2":[-4834.4,1436.53],"6-99-12":[-5090.06,2274.47],"6-99-13":[-4188.76,3424.72],"5-49-6":[-5090.06,3424.72],"6-99-14":[-4292.66,3181.14],"6-99-15":[-4676.48,3821.64],"5-49-7":[-4764.12,3928.85],"4-24-3":[-5090.06,4155.27],"6-99-16":[-4251.07,3902.64],"6-99-17":[-4738.26,3828.18],"5-49-8":[-4738.26,5415.08],"6-99-18":[-4876.5,5499.12],"6-99-19":[-5960.03,6216.6],"5-49-9":[-5960.03,6216.6],"4-24-4":[-5960.03,6767.17],"6-99-20":[-6992.72,6063.79],"6-99-21":[-4952.91,6434.65],"5-49-10":[-6992.72,6535.05],"6-99-22":[-5781.88,5432.09],"6-99-23":[-6502.07,3530.75],"5-49-11":[-6502.07,5432.09],"4-24-5":[-6992.72,7512.84],"6-99-24":[-7339.17,2554.75],"6-99-25":[-6570.41,2536.99],"5-49-12":[-7339.17,2574.03],"6-99-26":[-6827.32,2080.04],"6-99-27":[-6445.11,2009.72],"5-49-13":[-6827.32,2080.04],"4-24-6":[-7339.17,3021.9],"6-99-28":[-6607.43,1760.05],"6-99-29":[-6362.58,1543.06],"5-49-14":[-6607.43,1760.05],"6-99-30":[-6442.03,2251.47],"6-99-31":[-5733.72,3054.12],"5-49-15":[-6442.03,3433.72],"4-24-7":[-6607.43,3433.72],"6-99-32":[-195.98,3098.13],"6-99-33":[-150.19,2196.47],"5-49-16":[-5471.08,3384.6],"6-99-34":[-147.54,1442.07],"6-99-35":[-118.78,1686.04],"5-49-17":[-2791.74,1686.04],"4-24-8":[-5471.08,3384.6],"6-99-36":[-143.43,1862.71],"6-99-37":[-88.25,2022.05],"5-49-18":[-2811.05,2022.05],"6-99-38":[-94.27,2510.97],"6-99-39":[-95.18,2501.75],"5-49-19":[-190.16,2513.02],"4-24-9":[-3493.93,2960.9],"6-99-40":[-92.2,3411.71],"6-99-41":[-83.68,5229.16],"5-49-20":[-93.34,5229.16],"6-99-42":[-78.69,6352.65],"6-99-43":[-74.99,5945.78],"5-49-21":[-78.69,6352.65],"4-24-10":[-110.58,7274.95],"6-99-44":[-72.56,6157.61],"6-99-45":[-59.76,5387.12],"5-49-22":[-72.56,6157.61],"6-99-46":[-48.96,3739.65],"6-99-47":[-34.76,3871.64],"5-49-23":[-48.96,5318.07],"4-24-11":[-72.56,6604.16],"6-99-48":[-22.48,3771.63],"6-99-49":[-11.77,3171.14],"5-49-24":[-22.48,3815.84],"6-99-50":[-6.68,3321.72],"6-99-51":[-3.06,2161.47],"5-49-25":[-6.68,3321.72],"4-24-12":[-22.48,4132.25],"6-99-52":[-6.11,696.82],"6-99-53":[-14.49,592.88],"5-49-26":[-14.49,774.1],"6-99-54":[-16.12,865.7],"6-99-55":[-5.53,1741.17],"5-49-27":[-16.12,1741.17],"4-24-13":[-41.06,1741.17],"6-99-56":[108.04,2705.18],"6-99-57":[-11.7,3387.35],"5-49-28":[-12.46,3410],"6-99-58":[-9.12,3611.49],"6-99-59":[-229.47,3694.95],"5-49-29":[-229.47,3736.73],"4-24-14":[-229.47,3756.39],"6-99-60":[-2254.34,3696.05],"6-99-61":[-3851.31,3543.3],"5-49-30":[-3851.31,3737.71],"6-99-62":[-4412.98,3284.67],"6-99-63":[-4408.48,3075.96],"5-49-31":[-4469.7,3317.35],"4-24-15":[-4477.7,3799.9],"6-100-0":[-390.94,351.58],"6-100-1":[-450.17,176.67],"6-100-2":[-337.26,852.14],"6-100-3":[-92.47,1463.97],"6-100-4":[-1198.63,1680.37],"6-100-5":[-276.63,702.17],"6-100-6":[-847.1,737.36],"6-100-7":[-779.5,1198.23],"6-100-8":[-1490.09,958.88],"6-100-9":[-4561.87,855.83],"6-100-10":[-4756.31,555.66],"6-100-11":[-4695.48,852.88],"6-100-12":[-4493.8,918],"6-100-13":[-4524.26,3194.59],"6-100-14":[-4412.44,2295.19],"6-100-15":[-4058.81,3379.04],"6-100-16":[-4869.14,3558.09],"6-100-17":[-5072.75,1902.58],"6-100-18":[-5507.87,5176.87],"6-100-19":[-6806.78,4952.19],"6-100-20":[-7047.82,6100.38],"6-100-21":[-5422.5,7111.28],"6-100-22":[-5589.41,4334.26],"6-100-23":[-6273.7,3117.27],"6-100-24":[-6680.93,3084.02],"6-100-25":[-7178.68,2792.64],"6-100-26":[-6925.86,1323.34],"6-100-27":[-5898.05,1726.89],"6-100-28":[-6590.9,1062.2],"6-100-29":[-6749.52,1503.56],"6-100-30":[-4431.14,3063.08],"6-100-31":[-68.74,3673.24],"6-100-32":[-174.08,3783.24],"6-100-33":[-79.57,3170.1],"6-100-34":[-114.16,1437.39],"6-100-35":[-109.27,1036.2],"6-100-36":[-136.16,1688.89],"6-100-37":[-82.44,1262.34],"6-100-38":[-86.64,2743.63],"6-100-39":[-87.84,2954.02],"6-100-40":[-85.52,3019.27],"6-100-41":[-80.19,4227.26],"6-100-42":[-78.68,7011.33],"6-100-43":[-81.4,5829.36],"6-100-44":[-80.06,4840.27],"6-100-45":[-66.32,5057.87],"6-100-46":[-55.39,1867.69],"6-100-47":[-41.05,3437.08],"6-100-48":[-30.56,3288.03],"6-100-49":[-19.26,2279.18],"6-100-50":[-931.09,3069.79],"6-100-51":[-9.52,911],"6-100-52":[-12.52,823.95],"6-100-53":[-17.41,557.51],"6-100-54":[-19.91,858.74],"6-100-55":[-15.87,1791.71],"6-100-56":[62.06,2640.61],"6-100-57":[-13.37,3292.47],"6-100-58":[-6.91,3525.76],"6-100-59":[-234.59,3605.31],"6-100-60":[-2981.06,3601.4],"6-100-61":[-3897.97,3433.72],"6-100-62":[-4391.74,3240.37],"6-100-63":[-4393.37,3075.89],"6-101-0":[-421.01,313.54],"6-101-1":[-512.44,178.89],"5-50-0":[-512.44,351.58],"6-101-2":[-361.24,1063.19],"6-101-3":[-0.04,1302.37],"5-50-1":[-361.24,1463.97],"6-101-4":[-1405.91,935.03],"6-101-5":[-772.36,832.71],"5-50-2":[-1405.91,1680.37],"6-101-6":[-1534.94,728.03],"6-101-7":[-1407.76,1011.68],"5-50-3":[-1534.94,1198.23],"6-101-8":[-2600.51,929.44],"6-101-9":[-4397.62,836.04],"5-50-4":[-4561.87,958.88],"6-101-10":[-4770.73,706.58],"6-101-11":[-4773,984.1],"5-50-5":[-4773,984.1],"6-101-12":[-4525.52,1472.91],"6-101-13":[-4274.01,2280.07],"5-50-6":[-4525.52,3194.59],"6-101-14":[-5036.77,1985.15],"6-101-15":[-4218.02,2132.01],"5-50-7":[-5036.77,3379.04],"6-101-16":[-5245.63,2678.17],"6-101-17":[-5049.38,2311.12],"5-50-8":[-5245.63,3558.09],"6-101-18":[-6178.58,3502.2],"6-101-19":[-6836.91,4106.19],"5-50-9":[-6836.91,5176.87],"6-101-20":[-6222.74,4524.83],"6-101-21":[-6183.09,1942.57],"5-50-10":[-7047.82,7111.28],"6-101-22":[-6217.18,2858.21],"6-101-23":[-6156.22,2530.43],"5-50-11":[-6273.7,4334.26],"6-101-24":[-6127.32,2937.63],"6-101-25":[-6187.88,2686.47],"5-50-12":[-7178.68,3084.02],"6-101-26":[-6708.63,1984.96],"6-101-27":[-6304.3,1793.02],"5-50-13":[-6925.86,1984.96],"6-101-28":[-6890.34,988.31],"6-101-29":[-6807.99,2085.28],"5-50-14":[-6890.34,2085.28],"6-101-30":[-827.51,2120.45],"6-101-31":[-91.17,1041.7],"5-50-15":[-4431.14,3673.24],"6-101-32":[-97.78,1126.85],"6-101-33":[-741.62,2229.43],"5-50-16":[-741.62,3783.24],"6-101-34":[-86,2218.28],"6-101-35":[-91.75,972.31],"5-50-17":[-114.16,2218.28],"6-101-36":[-82.03,1722.02],"6-101-37":[-67.22,1888.96],"5-50-18":[-136.16,1888.96],"6-101-38":[-84.9,2609.46],"6-101-39":[-73.16,2809.62],"5-50-19":[-87.84,2954.02],"6-101-40":[-76.24,2431.42],"6-101-41":[-78.06,2794.21],"5-50-20":[-85.52,4227.26],"6-101-42":[-80.1,1837.51],"6-101-43":[-82.02,4346.82],"5-50-21":[-82.02,7011.33],"6-101-44":[-82.43,4015.21],"6-101-45":[-71.27,3380.19],"5-50-22":[-82.43,5057.87],"6-101-46":[-62.71,2269.12],"6-101-47":[-49.64,2628.18],"5-50-23":[-62.71,3437.08],"6-101-48":[-39.39,2089],"6-101-49":[-28.16,1965.15],"5-50-24":[-39.39,3288.03],"6-101-50":[-1045.89,2237.07],"6-101-51":[-17.14,1465.9],"5-50-25":[-1045.89,3069.79],"6-101-52":[-18.23,975.1],"6-101-53":[-25.73,697.58],"5-50-26":[-25.73,975.1],"6-101-54":[-26.47,842.08],"6-101-55":[-27.05,1793.86],"5-50-27":[-27.05,1793.86],"6-101-56":[130.63,2600.89],"6-101-57":[-15.79,3117.95],"5-50-28":[-15.79,3292.47],"6-101-58":[-21.12,3441.93],"6-101-59":[-223.25,3528.69],"5-50-29":[-234.59,3605.31],"6-101-60":[-3261.12,3498.6],"6-101-61":[-4152.25,3363.74],"5-50-30":[-4152.25,3601.4],"6-101-62":[-4394.82,3196.67],"6-101-63":[-4379.5,3075.29],"5-50-31":[-4394.82,3240.37],"6-102-0":[-536.22,303.03],"6-102-1":[-458.93,93],"6-102-2":[-523.45,1394.62],"6-102-3":[-340.76,1118.35],"6-102-4":[-637.66,963.87],"6-102-5":[-1006.67,1119.08],"6-102-6":[-1697.74,734.39],"6-102-7":[-1650.38,887.81],"6-102-8":[-3194.12,947.89],"6-102-9":[-4309.08,743.5],"6-102-10":[-4735.62,607.14],"6-102-11":[-4787.15,1969.85],"6-102-12":[-4697.47,2509.72],"6-102-13":[-4218.23,1987.12],"6-102-14":[-4472.05,2758.43],"6-102-15":[-4465.68,2221.84],"6-102-16":[-4700.72,1397.18],"6-102-17":[-5315.38,2304.17],"6-102-18":[-6259.92,1918.57],"6-102-19":[-6187.94,3718.19],"6-102-20":[-5971.58,3019.64],"6-102-21":[-5845.44,2199.58],"6-102-22":[-6124.87,2506.96],"6-102-23":[-6381.94,1720.45],"6-102-24":[-5579.24,1495.1],"6-102-25":[-5964.56,1791.56],"6-102-26":[-6228.05,2581.3],"6-102-27":[-6191.63,2426.49],"6-102-28":[-7237.19,1298.21],"6-102-29":[-3650.72,3393.89],"6-102-30":[-84.28,1014.85],"6-102-31":[-93.44,1601.85],"6-102-32":[-104.01,1543.85],"6-102-33":[-125.97,901.87],"6-102-34":[-1367.07,3442.9],"6-102-35":[-1855.07,1260.19],"6-102-36":[-322.96,2328.48],"6-102-37":[-1009.39,2525.3],"6-102-38":[-380.49,1743.52],"6-102-39":[-142.48,1395.18],"6-102-40":[-83.25,1596.45],"6-102-41":[-78.87,2416.96],"6-102-42":[-80.62,2152.58],"6-102-43":[-81.5,2932.67],"6-102-44":[-81.55,3630.19],"6-102-45":[-75.32,1896.56],"6-102-46":[-66.17,2239.16],"6-102-47":[-55.15,1390.17],"6-102-48":[-45.84,2203.77],"6-102-49":[-34.14,2652.43],"6-102-50":[-1232.75,1976.12],"6-102-51":[-1190.99,2418.74],"6-102-52":[-24.4,1885.73],"6-102-53":[-30.23,601.14],"6-102-54":[-36.54,759.49],"6-102-55":[-33.13,1569.32],"6-102-56":[133.31,2518.52],"6-102-57":[-10.76,2973.89],"6-102-58":[-33.46,3288.12],"6-102-59":[-305.74,3458.77],"6-102-60":[-3439.58,3410.38],"6-102-61":[-4199.53,3280.26],"6-102-62":[-4394.84,3169.64],"6-102-63":[-4385.62,3074.68],"6-103-0":[-664.29,385.94],"6-103-1":[-607.48,87.39],"5-51-0":[-664.29,385.94],"6-103-2":[-559,1207.8],"6-103-3":[-287.93,790.24],"5-51-1":[-559,1394.62],"4-25-0":[-664.29,1463.97],"6-103-4":[-231.49,809.08],"6-103-5":[-1283.43,1038.7],"5-51-2":[-1283.43,1119.08],"6-103-6":[-1537.95,689.79],"6-103-7":[-1465.17,820.66],"5-51-3":[-1697.74,887.81],"4-25-1":[-1697.74,1680.37],"3-12-0":[-3731.89,1807.12],"6-103-8":[-3174.17,871.07],"6-103-9":[-4207.91,581.35],"5-51-4":[-4309.08,947.89],"6-103-10":[-4597.12,599.15],"6-103-11":[-4821.39,2526.11],"5-51-5":[-4821.39,2526.11],"4-25-2":[-4821.39,2526.11],"6-103-12":[-4544.45,2781.93],"6-103-13":[-4167.75,2000.38],"5-51-6":[-4697.47,2781.93],"6-103-14":[-4476.17,2483.46],"6-103-15":[-4442.04,1631.54],"5-51-7":[-4476.17,2758.43],"4-25-3":[-5036.77,3379.04],"3-12-1":[-5090.06,4155.27],"6-103-16":[-4817.91,1440.56],"6-103-17":[-5610.41,2312.81],"5-51-8":[-5610.41,2312.81],"6-103-18":[-6311.98,2785.32],"6-103-19":[-6138.44,2608.85],"5-51-9":[-6311.98,3718.19],"4-25-4":[-6836.91,5176.87],"6-103-20":[-5508.45,3075.61],"6-103-21":[-5886.75,2284.9],"5-51-10":[-5971.58,3075.61],"6-103-22":[-6066.19,2090.39],"6-103-23":[-5457.66,1930.57],"5-51-11":[-6381.94,2506.96],"4-25-5":[-7047.82,7111.28],"3-12-2":[-7047.82,7512.84],"6-103-24":[-5713.12,1683.1],"6-103-25":[-5757.33,1775.49],"5-51-12":[-5964.56,1791.56],"6-103-26":[-5922.59,22.84],"6-103-27":[-5849.17,35.12],"5-51-13":[-6228.05,2581.3],"4-25-6":[-7178.68,3084.02],"6-103-28":[-7243.99,50.12],"6-103-29":[-1454.02,3260.42],"5-51-14":[-7243.99,3393.89],"6-103-30":[-58.02,93.68],"6-103-31":[-60.48,1707.53],"5-51-15":[-93.44,1707.53],"4-25-7":[-7243.99,3673.24],"3-12-3":[-7339.17,3673.24],"6-103-32":[-162.28,1767.47],"6-103-33":[-1017.75,98.63],"5-51-16":[-1017.75,1767.47],"6-103-34":[-2341.53,3363.43],"6-103-35":[-4457.98,275.89],"5-51-17":[-4457.98,3442.9],"4-25-8":[-4457.98,3783.24],"6-103-36":[-4499.26,14.72],"6-103-37":[-3941.7,93.37],"5-51-18":[-4499.26,2525.3],"6-103-38":[-2622.21,1699.47],"6-103-39":[-141.96,1600.09],"5-51-19":[-2622.21,1743.52],"4-25-9":[-4499.26,2954.02],"3-12-4":[-5471.08,3783.24],"6-103-40":[-137.39,1823.56],"6-103-41":[-76.31,2004.38],"5-51-20":[-137.39,2416.96],"6-103-42":[-79.55,2165.55],"6-103-43":[-79.53,2984.61],"5-51-21":[-81.5,2984.61],"4-25-10":[-137.39,7011.33],"6-103-44":[-81.64,2519.86],"6-103-45":[-78.43,2732.28],"5-51-22":[-81.64,3630.19],"6-103-46":[-69.24,2273.81],"6-103-47":[-59.94,1433.55],"5-51-23":[-69.24,2273.81],"4-25-11":[-82.43,5057.87],"3-12-5":[-137.39,7274.95],"6-103-48":[-51.3,1616.53],"6-103-49":[-40.42,2462.04],"5-51-24":[-51.3,2652.43],"6-103-50":[-34.48,1978.37],"6-103-51":[-292.05,2624.92],"5-51-25":[-1232.75,2624.92],"4-25-12":[-1232.75,3288.03],"6-103-52":[-31.64,2452.11],"6-103-53":[-39.3,580.7],"5-51-26":[-39.3,2452.11],"6-103-54":[-43.14,595.46],"6-103-55":[-38.79,1241.72],"5-51-27":[-43.14,1569.32],"4-25-13":[-43.14,2452.11],"3-12-6":[-1232.75,4132.25],"6-103-56":[41.8,2536.98],"6-103-57":[-10.42,2925.63],"5-51-28":[-10.76,2973.89],"6-103-58":[-41.3,3218.56],"6-103-59":[-864.59,3373.24],"5-51-29":[-864.59,3458.77],"4-25-14":[-864.59,3605.31],"6-103-60":[-3543.19,3368.42],"6-103-61":[-4192.59,3217.25],"5-51-30":[-4199.53,3410.38],"6-103-62":[-4418.45,3122.3],"6-103-63":[-4379.77,3072.12],"5-51-31":[-4418.45,3169.64],"4-25-15":[-4418.45,3601.4],"3-12-7":[-4477.7,3799.9],"6-104-0":[-526.41,278.25],"6-104-1":[-607.48,84.32],"6-104-2":[-567.79,1215.23],"6-104-3":[-136.97,496.59],"6-104-4":[-530.59,368.79],"6-104-5":[-1286.3,495.96],"6-104-6":[-1290.23,483.95],"6-104-7":[-1728.3,491.06],"6-104-8":[-2795.06,750.89],"6-104-9":[-4321.31,561.53],"6-104-10":[-4660.95,1677.59],"6-104-11":[-4755.16,2530.45],"6-104-12":[-4867.13,2992.37],"6-104-13":[-4319.24,1634.35],"6-104-14":[-4861.02,1654.73],"6-104-15":[-4590.03,1754.54],"6-104-16":[-4680.89,1742.15],"6-104-17":[-5021.65,2838.35],"6-104-18":[-6327.49,3047.6],"6-104-19":[-6022.91,1847.96],"6-104-20":[-5238.09,1280.51],"6-104-21":[-5427.73,1772.77],"6-104-22":[-1527.77,2103.76],"6-104-23":[-3176.09,1877.29],"6-104-24":[-4631.17,953.51],"6-104-25":[-4908.55,27.99],"6-104-26":[-6087.43,44.5],"6-104-27":[-6964.5,55.83],"6-104-28":[-7180.91,944.4],"6-104-29":[-1168.01,3611.18],"6-104-30":[-48.05,2422.76],"6-104-31":[29.67,2305.23],"6-104-32":[-137.09,2345.05],"6-104-33":[-2420.97,2313.76],"6-104-34":[-3121.56,3699.18],"6-104-35":[-4705.71,1042.4],"6-104-36":[-4651.58,248.09],"6-104-37":[-4548.6,171.3],"6-104-38":[-3947.09,13.11],"6-104-39":[-1918.04,879.5],"6-104-40":[-160.75,1768.37],"6-104-41":[-63.64,2023.75],"6-104-42":[-75.39,1680.76],"6-104-43":[-77.46,1192.5],"6-104-44":[-81.92,1797.89],"6-104-45":[-78.44,2994.6],"6-104-46":[-69.89,2749.34],"6-104-47":[-61.52,1693.13],"6-104-48":[-54.23,1689.54],"6-104-49":[-44.26,1624.78],"6-104-50":[-39.25,1606.81],"6-104-51":[-36.43,2574.37],"6-104-52":[-37.17,2397.44],"6-104-53":[-45.54,1602.59],"6-104-54":[-46.98,571.52],"6-104-55":[-44.18,1300.89],"6-104-56":[14.72,2508.46],"6-104-57":[-9.19,2971.73],"6-104-58":[-48.98,3190.51],"6-104-59":[-1971.26,3320.02],"6-104-60":[-3543.17,3317.03],"6-104-61":[-4270.15,3144.59],"6-104-62":[-4463.8,3080.43],"6-104-63":[-4359.14,3069.68],"6-105-0":[-386.63,295.13],"6-105-1":[-530.27,104.53],"5-52-0":[-607.48,295.13],"6-105-2":[-57.63,673.64],"6-105-3":[-142.54,382.73],"5-52-1":[-567.79,1215.23],"6-105-4":[-1219.69,24.28],"6-105-5":[-1293.1,453.82],"5-52-2":[-1293.1,495.96],"6-105-6":[-1282.86,471.8],"6-105-7":[-1513.06,385.91],"5-52-3":[-1728.3,491.06],"6-105-8":[-3081.89,448.35],"6-105-9":[-4301.03,380.42],"5-52-4":[-4321.31,750.89],"6-105-10":[-4774.33,1615.07],"6-105-11":[-4753.47,2962.65],"5-52-5":[-4774.33,2962.65],"6-105-12":[-4793.17,2450.24],"6-105-13":[-4635.6,1532.32],"5-52-6":[-4867.13,2992.37],"6-105-14":[-5474.7,1232.86],"6-105-15":[-4765.11,1464.19],"5-52-7":[-5474.7,1754.54],"6-105-16":[-5081.47,2060.03],"6-105-17":[-5649.49,2407.63],"5-52-8":[-5649.49,2838.35],"6-105-18":[-6192.35,805.59],"6-105-19":[-5515.95,1519.8],"5-52-9":[-6327.49,3047.6],"6-105-20":[-153.64,1755.88],"6-105-21":[-69.59,1735.53],"5-52-10":[-5427.73,1772.77],"6-105-22":[4.65,2160.72],"6-105-23":[-47.98,1800.52],"5-52-11":[-3176.09,2160.72],"6-105-24":[-983.55,1138.97],"6-105-25":[-4898.89,52.59],"5-52-12":[-4908.55,1138.97],"6-105-26":[-6006.98,67.42],"6-105-27":[-7165.68,82.34],"5-52-13":[-7165.68,82.34],"6-105-28":[-7107.38,2813.87],"6-105-29":[-2789.9,4108.68],"5-52-14":[-7180.91,4108.68],"6-105-30":[-2046.22,2687.61],"6-105-31":[-2203.42,2267.3],"5-52-15":[-2203.42,2687.61],"6-105-32":[-2023.09,2189.3],"6-105-33":[-475.58,2628.6],"5-52-16":[-2420.97,2628.6],"6-105-34":[-2993.96,4026.67],"6-105-35":[-3073,2972.87],"5-52-17":[-4705.71,4026.67],"6-105-36":[-5007.8,38.1],"6-105-37":[-4418.38,27.92],"5-52-18":[-5007.8,248.09],"6-105-38":[-4679.05,2.72],"6-105-39":[-3358.64,1205.98],"5-52-19":[-4679.05,1205.98],"6-105-40":[-100.62,1717.53],"6-105-41":[13.76,2116.73],"5-52-20":[-160.75,2116.73],"6-105-42":[-14.21,1651.52],"6-105-43":[-99.76,1646.92],"5-52-21":[-99.76,1680.76],"6-105-44":[-78.53,1437.77],"6-105-45":[-78.21,708.59],"5-52-22":[-81.92,2994.6],"6-105-46":[-69.94,2304.63],"6-105-47":[-61.91,2016.37],"5-52-23":[-69.94,2749.34],"6-105-48":[-54.84,1440.18],"6-105-49":[-47.73,1222.85],"5-52-24":[-54.84,1689.54],"6-105-50":[-42.44,1502.32],"6-105-51":[-41.44,2344.1],"5-52-25":[-42.44,2574.37],"6-105-52":[-43.24,2813.61],"6-105-53":[-52.02,1580.09],"5-52-26":[-52.02,2813.61],"6-105-54":[-54.04,379.62],"6-105-55":[-53.1,680.38],"5-52-27":[-54.04,1300.89],"6-105-56":[19.16,2408.3],"6-105-57":[-6.33,3030.32],"5-52-28":[-9.19,3030.32],"6-105-58":[-48.95,3188.16],"6-105-59":[-2420.07,3235.61],"5-52-29":[-2420.07,3320.02],"6-105-60":[-3653.6,3197.29],"6-105-61":[-4402.41,3081.54],"5-52-30":[-4402.41,3317.03],"6-105-62":[-4442.47,3060.18],"6-105-63":[-4335.36,3063.52],"5-52-31":[-4463.8,3080.43],"6-106-0":[-382.69,518.1],"6-106-1":[-442,276.46],"6-106-2":[-281.26,561.88],"6-106-3":[-169.68,522.34],"6-106-4":[-1384.91,0.13],"6-106-5":[-1025.1,460.29],"6-106-6":[-1225,454.78],"6-106-7":[-1960.43,411.14],"6-106-8":[-3522.54,443.53],"6-106-9":[-4277.44,383.49],"6-106-10":[-4763.29,717.41],"6-106-11":[-4792.44,2548.26],"6-106-12":[-4965.29,2226.52],"6-106-13":[-4754.24,1486.61],"6-106-14":[-5102.45,1598.44],"6-106-15":[-4846.65,1743.81],"6-106-16":[-5136.73,1936.12],"6-106-17":[-5992.39,1887.25],"6-106-18":[-6270.11,785.42],"6-106-19":[-5555.1,1101.77],"6-106-20":[-105.16,584.53],"6-106-21":[-78.25,1795.67],"6-106-22":[-35.2,1934.56],"6-106-23":[-36.2,3691.21],"6-106-24":[-55.29,1951.28],"6-106-25":[-2434.64,2501.63],"6-106-26":[-5844.39,2962.21],"6-106-27":[-7088.95,2343.09],"6-106-28":[-7127.73,2288.03],"6-106-29":[-5085.75,1818.49],"6-106-30":[-2226.25,3403.08],"6-106-31":[-2614.6,3030.91],"6-106-32":[-5551.59,3132.81],"6-106-33":[-5187.49,3490.23],"6-106-34":[-4798.95,1959.49],"6-106-35":[-4231.66,2405.04],"6-106-36":[-5091.52,2311.11],"6-106-37":[-5322.52,2857.2],"6-106-38":[-4356.76,2411.64],"6-106-39":[-4709.05,1867.27],"6-106-40":[-1353.88,3536.2],"6-106-41":[-232.12,1847.54],"6-106-42":[-29.3,1738.68],"6-106-43":[-76.47,544.69],"6-106-44":[-78.18,1063.1],"6-106-45":[-82.72,673.36],"6-106-46":[-69.49,1847.24],"6-106-47":[-61.11,1904.12],"6-106-48":[-54.99,1698.78],"6-106-49":[-48.72,1558.94],"6-106-50":[-45.04,1454.59],"6-106-51":[-45.09,2182.46],"6-106-52":[-47.54,2446.34],"6-106-53":[-57.28,707.41],"6-106-54":[-61.21,389.51],"6-106-55":[-59.83,845.24],"6-106-56":[15,2462.74],"6-106-57":[-18.09,3046.36],"6-106-58":[-77.59,3177.4],"6-106-59":[-2784.49,3172.35],"6-106-60":[-5343.81,3109.06],"6-106-61":[-5227.4,3012.28],"6-106-62":[-4422.66,3048.31],"6-106-63":[-4439.18,3060.25],"6-107-0":[-286.77,546.08],"6-107-1":[-378.19,115.12],"5-53-0":[-442,546.08],"6-107-2":[-455.31,408.6],"6-107-3":[-333.04,478.27],"5-53-1":[-455.31,561.88],"4-26-0":[-607.48,1215.23],"6-107-4":[-681.52,0.24],"6-107-5":[-883.51,565.28],"5-53-2":[-1384.91,565.28],"6-107-6":[-779.35,479.01],"6-107-7":[-986.72,427.06],"5-53-3":[-1960.43,479.01],"4-26-1":[-1960.43,565.28],"6-107-8":[-3454.89,342.41],"6-107-9":[-4321.54,417.22],"5-53-4":[-4321.54,443.53],"6-107-10":[-4617.61,1200.19],"6-107-11":[-4818.58,2000.95],"5-53-5":[-4818.58,2548.26],"4-26-2":[-4818.58,2962.65],"6-107-12":[-5173.19,1644.22],"6-107-13":[-5052,1523.39],"5-53-6":[-5173.19,2226.52],"6-107-14":[-5421.41,1600.44],"6-107-15":[-5348.99,1541.69],"5-53-7":[-5421.41,1743.81],"4-26-3":[-5474.7,2992.37],"6-107-16":[-5283.07,816.14],"6-107-17":[-5990.04,1174.47],"5-53-8":[-5992.39,1936.12],"6-107-18":[-6455.15,918.27],"6-107-19":[-5625.24,284.34],"5-53-9":[-6455.15,1101.77],"4-26-4":[-6455.15,3047.6],"6-107-20":[-52.47,526.37],"6-107-21":[-35.84,1218.7],"5-53-10":[-105.16,1795.67],"6-107-22":[0.69,665.65],"6-107-23":[-53.71,3956.01],"5-53-11":[-53.71,3956.01],"4-26-5":[-5427.73,3956.01],"6-107-24":[11.3,1042.66],"6-107-25":[-140.92,2731.61],"5-53-12":[-2434.64,2731.61],"6-107-26":[-2442.89,2712.33],"6-107-27":[-3959.71,2627.63],"5-53-13":[-7088.95,2962.21],"4-26-6":[-7165.68,2962.21],"6-107-28":[-4124.69,2528.23],"6-107-29":[-5178.42,2469.27],"5-53-14":[-7127.73,2528.23],"6-107-30":[-6397.3,2587.77],"6-107-31":[-4678.95,2851.48],"5-53-15":[-6397.3,3403.08],"4-26-7":[-7180.91,4108.68],"6-107-32":[-5755.48,2955.49],"6-107-33":[-5453.9,2702.65],"5-53-16":[-5755.48,3490.23],"6-107-34":[-5829.92,2335.3],"6-107-35":[-5067.92,2392.22],"5-53-17":[-5829.92,2405.04],"4-26-8":[-5829.92,4026.67],"6-107-36":[-3178.2,2496.62],"6-107-37":[-5674.08,2665.32],"5-53-18":[-5674.08,2857.2],"6-107-38":[-5493.89,2656.26],"6-107-39":[-5934.3,936.67],"5-53-19":[-5934.3,2656.26],"4-26-9":[-5934.3,2857.2],"6-107-40":[-6907.12,3813],"6-107-41":[-1957.5,692.66],"5-53-20":[-6907.12,3813],"6-107-42":[-102.58,1162.16],"6-107-43":[-51.74,610.87],"5-53-21":[-102.58,1738.68],"4-26-10":[-6907.12,3813],"6-107-44":[-79.98,322.34],"6-107-45":[-103.15,850.26],"5-53-22":[-103.15,1063.1],"6-107-46":[-98.51,1077.53],"6-107-47":[-60.78,748.14],"5-53-23":[-98.51,1904.12],"4-26-11":[-103.15,2994.6],"6-107-48":[-54.95,1479.71],"6-107-49":[-49.55,1565.44],"5-53-24":[-54.99,1698.78],"6-107-50":[-47.09,1490.38],"6-107-51":[-49,1610.21],"5-53-25":[-49,2182.46],"4-26-12":[-54.99,2574.37],"6-107-52":[-52.14,1975.45],"6-107-53":[-62.69,1147.18],"5-53-26":[-62.69,2446.34],"6-107-54":[-67.4,422.24],"6-107-55":[-64.36,1172.91],"5-53-27":[-67.4,1172.91],"4-26-13":[-67.4,2813.61],"6-107-56":[0.38,2590.73],"6-107-57":[-18.89,3089.34],"5-53-28":[-18.89,3089.34],"6-107-58":[-68.11,3196.31],"6-107-59":[-2999.96,3163.37],"5-53-29":[-2999.96,3196.31],"4-26-14":[-2999.96,3320.02],"6-107-60":[-5139.66,2994.83],"6-107-61":[-4603,2932.32],"5-53-30":[-5343.81,3109.06],"6-107-62":[-4447.14,3035.5],"6-107-63":[-4391.36,3058.07],"5-53-31":[-4447.14,3060.25],"4-26-15":[-5343.81,3317.03],"6-108-0":[-269.86,460.52],"6-108-1":[-909.85,103.01],"6-108-2":[-934.43,448.87],"6-108-3":[-448.87,410.23],"6-108-4":[-1134.26,783.32],"6-108-5":[-1014.64,707.83],"6-108-6":[-803.54,487.14],"6-108-7":[-492.37,1127.4],"6-108-8":[-3410.5,1401.18],"6-108-9":[-4432.32,816.9],"6-108-10":[-4679.36,804.47],"6-108-11":[-4901.46,1845.92],"6-108-12":[-4877.43,1706.86],"6-108-13":[-5078.78,1269.14],"6-108-14":[-5485.84,878.23],"6-108-15":[-5416.22,339.07],"6-108-16":[-5311.85,1264.57],"6-108-17":[-5872.94,1987.41],"6-108-18":[-6139.97,1234.98],"6-108-19":[-5744.12,581.2],"6-108-20":[-1210.92,1941.55],"6-108-21":[18.57,485.34],"6-108-22":[22.07,547.54],"6-108-23":[8,553.56],"6-108-24":[22.25,451.89],"6-108-25":[12.35,918.99],"6-108-26":[-100.52,825.9],"6-108-27":[-1028.33,1607.31],"6-108-28":[-3782.32,2883.2],"6-108-29":[-5712.91,3011.04],"6-108-30":[-5919.23,2699.58],"6-108-31":[-6130.93,2053.63],"6-108-32":[-5581.72,1989.62],"6-108-33":[-5856.99,2752.59],"6-108-34":[-5125.09,2931.03],"6-108-35":[-9837.42,2985.2],"6-108-36":[-9176.01,1499.32],"6-108-37":[-7403.24,844.91],"6-108-38":[-6431.65,967.01],"6-108-39":[-6750.67,455.4],"6-108-40":[-8904.47,557.1],"6-108-41":[-2245.02,555.5],"6-108-42":[-155.54,497.24],"6-108-43":[-143.34,1897.55],"6-108-44":[-116.63,504.19],"6-108-45":[-69.83,1160],"6-108-46":[-133.68,1895.04],"6-108-47":[-58.68,1225.25],"6-108-48":[-54.09,331.06],"6-108-49":[-49.45,858.23],"6-108-50":[-48.53,1246.12],"6-108-51":[-51.56,1690.85],"6-108-52":[-55.45,1790.32],"6-108-53":[-65.39,785.47],"6-108-54":[-71.76,816.92],"6-108-55":[-65.99,1394.18],"6-108-56":[-2.53,2630.58],"6-108-57":[-6.92,3151.32],"6-108-58":[-53.92,3203.64],"6-108-59":[-2992.28,3159.64],"6-108-60":[-4112.67,2917.97],"6-108-61":[-4420.65,2871.65],"6-108-62":[-4443.67,3023.22],"6-108-63":[-4394.23,3057.86],"6-109-0":[-270.44,656.94],"6-109-1":[-827.99,51.45],"5-54-0":[-909.85,656.94],"6-109-2":[-881.02,445.4],"6-109-3":[-438.51,348.03],"5-54-1":[-934.43,448.87],"6-109-4":[-755.24,1075.1],"6-109-5":[-1021.66,875.53],"5-54-2":[-1134.26,1075.1],"6-109-6":[-964.92,1068.55],"6-109-7":[-1389.91,2201.02],"5-54-3":[-1389.91,2201.02],"6-109-8":[-2933.34,2117.99],"6-109-9":[-4505.72,1848.18],"5-54-4":[-4505.72,2117.99],"6-109-10":[-4787.22,676.85],"6-109-11":[-4862.28,2240.33],"5-54-5":[-4901.46,2240.33],"6-109-12":[-4826.2,2048.94],"6-109-13":[-4454.84,905.39],"5-54-6":[-5078.78,2048.94],"6-109-14":[-5226.57,1057.62],"6-109-15":[-5811.86,1445.43],"5-54-7":[-5811.86,1445.43],"6-109-16":[-6600.71,1718.97],"6-109-17":[-5848.43,2763.77],"5-54-8":[-6600.71,2763.77],"6-109-18":[-6128.18,1727.04],"6-109-19":[-5755.9,1925.58],"5-54-9":[-6139.97,1925.58],"6-109-20":[-2873.02,1453.61],"6-109-21":[16.04,722.76],"5-54-10":[-2873.02,1941.55],"6-109-22":[13.17,993.49],"6-109-23":[24.41,997.46],"5-54-11":[8,997.46],"6-109-24":[29.92,532.19],"6-109-25":[35.9,997.76],"5-54-12":[12.35,997.76],"6-109-26":[-62.41,705.14],"6-109-27":[-155.45,192.69],"5-54-13":[-1028.33,1607.31],"6-109-28":[-3320.92,2276.38],"6-109-29":[-5565.73,1372.75],"5-54-14":[-5712.91,3011.04],"6-109-30":[-5326.65,2446.71],"6-109-31":[-5439.11,2066.98],"5-54-15":[-6130.93,2699.58],"6-109-32":[-5242.54,2152.95],"6-109-33":[-9088.35,2555.71],"5-54-16":[-9088.35,2752.59],"6-109-34":[-9658.18,1415.76],"6-109-35":[-10034.76,2395.35],"5-54-17":[-10034.76,2985.2],"6-109-36":[-7677.31,198.32],"6-109-37":[-6489.8,755.14],"5-54-18":[-9176.01,1499.32],"6-109-38":[-6783.71,1012.77],"6-109-39":[-6707.72,556.98],"5-54-19":[-6783.71,1012.77],"6-109-40":[-7531.73,1049.45],"6-109-41":[-7516.23,1051.49],"5-54-20":[-8904.47,1051.49],"6-109-42":[-1415.28,657.78],"6-109-43":[-917.74,1418.1],"5-54-21":[-1415.28,1897.55],"6-109-44":[-203.47,1825.58],"6-109-45":[-2529.02,1649.03],"5-54-22":[-2529.02,1825.58],"6-109-46":[-2502.26,2676.78],"6-109-47":[-55.65,1688.92],"5-54-23":[-2502.26,2676.78],"6-109-48":[-52.05,1423.43],"6-109-49":[-47.99,1021.62],"5-54-24":[-54.09,1423.43],"6-109-50":[-47.82,876.38],"6-109-51":[-52.39,1918.93],"5-54-25":[-52.39,1918.93],"6-109-52":[-58.59,2139.52],"6-109-53":[-69.44,671.86],"5-54-26":[-69.44,2139.52],"6-109-54":[-76.93,1835.17],"6-109-55":[-75.43,2142.74],"5-54-27":[-76.93,2142.74],"6-109-56":[54.7,2622.61],"6-109-57":[-13.76,3171.09],"5-54-28":[-13.76,3171.09],"6-109-58":[-51.27,3189.23],"6-109-59":[-2937.77,3116.04],"5-54-29":[-2992.28,3203.64],"6-109-60":[-4129.79,2882.89],"6-109-61":[-4476.03,2844.52],"5-54-30":[-4476.03,2917.97],"6-109-62":[-4360.94,3011.97],"6-109-63":[-4379.14,3059.53],"5-54-31":[-4443.67,3059.53],"6-110-0":[-250.66,758.26],"6-110-1":[-639.76,157.09],"6-110-2":[-685.8,661.06],"6-110-3":[-268.85,380.05],"6-110-4":[-297.72,699.79],"6-110-5":[-929.59,824.82],"6-110-6":[-1441.83,856.13],"6-110-7":[-1340.2,1828.99],"6-110-8":[-2191.42,1922.66],"6-110-9":[-4584.62,2002.65],"6-110-10":[-4755.66,531.48],"6-110-11":[-4922.75,2290.58],"6-110-12":[-4734.98,2374.21],"6-110-13":[-4033.09,1509.02],"6-110-14":[-5177.97,1216.44],"6-110-15":[-5122.6,1386.01],"6-110-16":[-5852.6,1509.87],"6-110-17":[-6019.33,1774.19],"6-110-18":[-5925.45,999.37],"6-110-19":[-5864.11,1373.1],"6-110-20":[-1399.53,1801.42],"6-110-21":[-19.03,1948.19],"6-110-22":[24,1394.61],"6-110-23":[28.82,1297.55],"6-110-24":[34.84,856.67],"6-110-25":[38.27,554.6],"6-110-26":[-37.78,444.1],"6-110-27":[-141.33,346.26],"6-110-28":[-2350.94,127.03],"6-110-29":[-7570.28,837.45],"6-110-30":[-7572.68,2981.67],"6-110-31":[-4811.97,1446.01],"6-110-32":[-5014.78,1519.04],"6-110-33":[-5712.41,3088.67],"6-110-34":[-6523.63,862.43],"6-110-35":[-6612.97,116.33],"6-110-36":[-6757,359.52],"6-110-37":[-7622.08,453.11],"6-110-38":[-7728.22,558.61],"6-110-39":[-6469.64,915.42],"6-110-40":[-6273.13,1429.68],"6-110-41":[-6885.04,1437.62],"6-110-42":[-5789.08,1847.18],"6-110-43":[-2607.79,1764.42],"6-110-44":[-2139.1,1318.08],"6-110-45":[-3282.63,927.36],"6-110-46":[-3638.83,1736.18],"6-110-47":[-2977.08,1480.88],"6-110-48":[-49.85,1362.03],"6-110-49":[-46.08,1189.43],"6-110-50":[-46.52,1475],"6-110-51":[-52.46,2242.57],"6-110-52":[-59.62,2260.57],"6-110-53":[-71.74,522.46],"6-110-54":[-80.19,1992.64],"6-110-55":[-74.89,1933.66],"6-110-56":[37.2,2601.74],"6-110-57":[-29.38,3136.57],"6-110-58":[-51.27,3137.89],"6-110-59":[-2933.37,3008.63],"6-110-60":[-4048.36,2819.29],"6-110-61":[-4427.04,2805.69],"6-110-62":[-4352,2999.73],"6-110-63":[-4305.39,3062.38],"6-111-0":[-323.33,754.83],"6-111-1":[-702.85,187.17],"5-55-0":[-702.85,758.26],"6-111-2":[-737.84,648.26],"6-111-3":[-469.89,449.75],"5-55-1":[-737.84,661.06],"4-27-0":[-934.43,758.26],"6-111-4":[-1182.43,490.13],"6-111-5":[-1362,1088.07],"5-55-2":[-1362,1088.07],"6-111-6":[-1166.96,1035.63],"6-111-7":[-1423.87,1221.31],"5-55-3":[-1441.83,1828.99],"4-27-1":[-1441.83,2201.02],"3-13-0":[-1960.43,2201.02],"6-111-8":[-2163.91,1652.58],"6-111-9":[-4546.4,2070.51],"5-55-4":[-4584.62,2070.51],"6-111-10":[-4788.65,825.86],"6-111-11":[-4913.95,1856.83],"5-55-5":[-4922.75,2290.58],"4-27-2":[-4922.75,2290.58],"6-111-12":[-4533.1,2358.55],"6-111-13":[-4006.46,2286.52],"5-55-6":[-4734.98,2374.21],"6-111-14":[-4355.03,2263.84],"6-111-15":[-4810.31,1447.73],"5-55-7":[-5177.97,2263.84],"4-27-3":[-5811.86,2374.21],"3-13-1":[-5811.86,2992.37],"2-6-0":[-5811.86,4155.27],"6-111-16":[-5292.31,1878.55],"6-111-17":[-5825.22,62.05],"5-55-8":[-6019.33,1878.55],"6-111-18":[-5782.95,66.77],"6-111-19":[-6031.55,1986.11],"5-55-9":[-6031.55,1986.11],"4-27-4":[-6600.71,2763.77],"6-111-20":[-178.07,1882.11],"6-111-21":[27.45,387.12],"5-55-10":[-1399.53,1948.19],"6-111-22":[33.04,937.65],"6-111-23":[33.91,1419.55],"5-55-11":[24,1419.55],"4-27-5":[-2873.02,1948.19],"3-13-2":[-6600.71,3956.01],"6-111-24":[37.06,1087.22],"6-111-25":[39.61,455.2],"5-55-12":[34.84,1087.22],"6-111-26":[44.33,446.87],"6-111-27":[0.43,554.22],"5-55-13":[-141.33,554.22],"4-27-6":[-1028.33,1607.31],"6-111-28":[-342.38,125.8],"6-111-29":[-3693.35,614.14],"5-55-14":[-7570.28,837.45],"6-111-30":[-3688.89,1913.09],"6-111-31":[-4778.06,2928.23],"5-55-15":[-7572.68,2981.67],"4-27-7":[-7572.68,3011.04],"3-13-3":[-7572.68,4108.68],"2-6-1":[-7572.68,7512.84],"6-111-32":[-5480.06,3028.24],"6-111-33":[-6076.26,2016.59],"5-55-16":[-6076.26,3088.67],"6-111-34":[-8930.19,670.15],"6-111-35":[-6319.86,174.3],"5-55-17":[-8930.19,862.43],"4-27-8":[-10034.76,3088.67],"6-111-36":[-6662.31,610.22],"6-111-37":[-6727.95,457.36],"5-55-18":[-7622.08,610.22],"6-111-38":[-6703.37,466.21],"6-111-39":[-7157.32,1152.22],"5-55-19":[-7728.22,1152.22],"4-27-9":[-9176.01,1499.32],"3-13-4":[-10034.76,4026.67],"6-111-40":[-5842.52,1528.53],"6-111-41":[-5775.21,1002.66],"5-55-20":[-6885.04,1528.53],"6-111-42":[-5651.27,400.15],"6-111-43":[-4946.41,1791.1],"5-55-21":[-5789.08,1847.18],"4-27-10":[-8904.47,1897.55],"6-111-44":[-1567.69,1916.11],"6-111-45":[-3584.66,-20.77],"5-55-22":[-3584.66,1916.11],"6-111-46":[-3855.55,-20.97],"6-111-47":[-3726.44,1812.54],"5-55-23":[-3855.55,1812.54],"4-27-11":[-3855.55,2676.78],"3-13-5":[-8904.47,3813],"2-6-2":[-10034.76,7274.95],"6-111-48":[-45.23,1405.74],"6-111-49":[-42.63,2153.84],"5-55-24":[-49.85,2153.84],"6-111-50":[-45.55,2160.52],"6-111-51":[-51.95,2239.63],"5-55-25":[-52.46,2242.57],"4-27-12":[-54.09,2242.57],"6-111-52":[-60.12,1808.82],"6-111-53":[-74.09,806.78],"5-55-26":[-74.09,2260.57],"6-111-54":[-82.21,2067.49],"6-111-55":[-78.66,1711.28],"5-55-27":[-82.21,2067.49],"4-27-13":[-82.21,2260.57],"3-13-6":[-82.21,2813.61],"6-111-56":[18.81,2605.54],"6-111-57":[-26.45,2976.73],"5-55-28":[-29.38,3136.57],"6-111-58":[-46.21,2992.85],"6-111-59":[-3028.17,2893.93],"5-55-29":[-3028.17,3137.89],"4-27-14":[-3028.17,3203.64],"6-111-60":[-4045.52,2687.3],"6-111-61":[-4452.97,2763.19],"5-55-30":[-4452.97,2819.29],"6-111-62":[-4321.84,2987.5],"6-111-63":[-4305.39,3065.26],"5-55-31":[-4352,3065.26],"4-27-15":[-4476.03,3065.26],"3-13-7":[-5343.81,3320.02],"2-6-3":[-5343.81,4132.25],"6-112-0":[-315.35,703.8],"6-112-1":[-500.97,188.17],"6-112-2":[-672.54,426.09],"6-112-3":[-637.86,265.05],"6-112-4":[-1182.43,535.81],"6-112-5":[-1178.5,965.91],"6-112-6":[-1309.88,1017.56],"6-112-7":[-2150.48,1767.28],"6-112-8":[-3092.96,1681.65],"6-112-9":[-4395.44,1766.67],"6-112-10":[-4664.57,1755.07],"6-112-11":[-4741.98,1915.02],"6-112-12":[-4452.89,2099.48],"6-112-13":[-3978.01,2155.76],"6-112-14":[-4196.3,1965.97],"6-112-15":[-4806.19,2024.26],"6-112-16":[-5271.91,1410.98],"6-112-17":[-5632.69,66.52],"6-112-18":[-5870.55,3037.73],"6-112-19":[-5099.73,3225.44],"6-112-20":[-42.36,1148.96],"6-112-21":[-8.1,410.71],"6-112-22":[-5.97,293.67],"6-112-23":[36.79,1063.75],"6-112-24":[39.76,637.58],"6-112-25":[41.96,467.74],"6-112-26":[-2.18,358.76],"6-112-27":[-1.62,407.82],"6-112-28":[-55.19,128.34],"6-112-29":[-53.86,134.69],"6-112-30":[-1512.17,4766.85],"6-112-31":[-5137.94,1479.51],"6-112-32":[-5372.95,1532.53],"6-112-33":[-5738.8,4900.75],"6-112-34":[-8241.06,152.9],"6-112-35":[-7154.87,138.86],"6-112-36":[-6266.86,417.68],"6-112-37":[-6347.65,370.77],"6-112-38":[-6180.93,478.74],"6-112-39":[-6935.69,643.8],"6-112-40":[-6887.3,1103.75],"6-112-41":[-6044.18,301.67],"6-112-42":[-5342,426.73],"6-112-43":[-4826.53,1062.96],"6-112-44":[-2697.25,3130.43],"6-112-45":[-3480.96,2969.74],"6-112-46":[-3690.31,-16.66],"6-112-47":[-3710.67,1366.96],"6-112-48":[-2085.48,1915.25],"6-112-49":[-40.23,1848.97],"6-112-50":[-44.52,2039.75],"6-112-51":[-174.25,1981.47],"6-112-52":[-60.31,1859.99],"6-112-53":[-75.15,1697.18],"6-112-54":[-83.59,1769.68],"6-112-55":[-84.73,1703.65],"6-112-56":[14.74,2525.84],"6-112-57":[-27.87,2840.96],"6-112-58":[-40.15,2867.37],"6-112-59":[-2183.56,2794.55],"6-112-60":[-3705.32,2564.78],"6-112-61":[-4506.77,2709.29],"6-112-62":[-4289.6,2977.76],"6-112-63":[-4281.74,3068.14],"6-113-0":[-237.9,609.54],"6-113-1":[-654.94,258.06],"5-56-0":[-654.94,703.8],"6-113-2":[-681.4,461.37],"6-113-3":[-773.18,6.86],"5-56-1":[-773.18,461.37],"6-113-4":[-684.38,493.31],"6-113-5":[-626.54,608.12],"5-56-2":[-1182.43,965.91],"6-113-6":[-1337.5,609.54],"6-113-7":[-1015.02,2177.91],"5-56-3":[-2150.48,2177.91],"6-113-8":[-3386.76,2476.55],"6-113-9":[-4330.29,2650.27],"5-56-4":[-4395.44,2650.27],"6-113-10":[-4642.34,2153.15],"6-113-11":[-4825.16,1760.98],"5-56-5":[-4825.16,2153.15],"6-113-12":[-4357.22,1103.01],"6-113-13":[-4344.99,1633.71],"5-56-6":[-4452.89,2155.76],"6-113-14":[-5073.4,2108.2],"6-113-15":[-5648.56,1700.99],"5-56-7":[-5648.56,2108.2],"6-113-16":[-5457.85,1549.63],"6-113-17":[-5625.96,1641.19],"5-56-8":[-5632.69,1641.19],"6-113-18":[-5664.55,2604.93],"6-113-19":[-78.76,3800.26],"5-56-9":[-5870.55,3800.26],"6-113-20":[-8.36,1074.29],"6-113-21":[-5.83,1038.21],"5-56-10":[-42.36,1148.96],"6-113-22":[6.51,236.01],"6-113-23":[42.43,387.89],"5-56-11":[-5.97,1063.75],"6-113-24":[44.58,634.08],"6-113-25":[-5.67,464.96],"5-56-12":[-5.67,637.58],"6-113-26":[-99.13,216.97],"6-113-27":[-11.67,115.83],"5-56-13":[-99.13,407.82],"6-113-28":[0.49,237.05],"6-113-29":[3.59,230.31],"5-56-14":[-55.19,237.05],"6-113-30":[6.27,4681.3],"6-113-31":[-4723.47,2263.2],"5-56-15":[-5137.94,4766.85],"6-113-32":[-4812.96,2301.21],"6-113-33":[-5291.95,5227.39],"5-56-16":[-5738.8,5227.39],"6-113-34":[-8740.43,203.53],"6-113-35":[-8879.14,194.76],"5-56-17":[-8879.14,203.53],"6-113-36":[-7669.24,131.12],"6-113-37":[-6711.73,223.46],"5-56-18":[-7669.24,417.68],"6-113-38":[-7963.6,475.97],"6-113-39":[-6789.64,657.09],"5-56-19":[-7963.6,657.09],"6-113-40":[-5735.69,421.94],"6-113-41":[-5809.94,242.02],"5-56-20":[-6887.3,1103.75],"6-113-42":[-4854.7,1079.1],"6-113-43":[-4237.08,1164.85],"5-56-21":[-5342,1164.85],"6-113-44":[-6405.63,3720.25],"6-113-45":[-2520.67,2507.92],"5-56-22":[-6405.63,3720.25],"6-113-46":[-4096.61,1520.18],"6-113-47":[-3742.35,1494.65],"5-56-23":[-4096.61,1520.18],"6-113-48":[-2201.39,1675.03],"6-113-49":[-792.69,2012.19],"5-56-24":[-2201.39,2012.19],"6-113-50":[-191.23,1604.7],"6-113-51":[-162.88,1067.01],"5-56-25":[-191.23,2039.75],"6-113-52":[-197.34,1704.07],"6-113-53":[-76.66,2148.55],"5-56-26":[-197.34,2148.55],"6-113-54":[-85.09,2671.32],"6-113-55":[-88.87,2502.55],"5-56-27":[-88.87,2671.32],"6-113-56":[48.36,2522.11],"6-113-57":[-29.31,2629.41],"5-56-28":[-29.31,2840.96],"6-113-58":[-26.26,2726.71],"6-113-59":[-670.83,2693.87],"5-56-29":[-2183.56,2867.37],"6-113-60":[-3387.1,2498.35],"6-113-61":[-4352.21,2666.36],"5-56-30":[-4506.77,2709.29],"6-113-62":[-4113.81,2970.03],"6-113-63":[-4290.72,3070.04],"5-56-31":[-4290.72,3070.04],"6-114-0":[-217.29,631.52],"6-114-1":[-652.96,593.83],"6-114-2":[-652.96,502.69],"6-114-3":[-711.39,7.07],"6-114-4":[-962.46,35.46],"6-114-5":[-969.37,264.4],"6-114-6":[-2060.35,486.19],"6-114-7":[-1457.34,1696.85],"6-114-8":[-3458.33,2512.73],"6-114-9":[-4383.62,2822.43],"6-114-10":[-4900.81,2513.43],"6-114-11":[-4971.59,1227.42],"6-114-12":[-4627.64,627.07],"6-114-13":[-4444.85,1624.43],"6-114-14":[-5259.1,2346.04],"6-114-15":[-6433.58,1737.87],"6-114-16":[-5970.29,2312.97],"6-114-17":[-5424.99,2061.69],"6-114-18":[-4050.6,1666.14],"6-114-19":[-16.18,315.6],"6-114-20":[11.53,433.31],"6-114-21":[17.61,444.66],"6-114-22":[9.96,768.11],"6-114-23":[28.86,604.84],"6-114-24":[41.43,641.31],"6-114-25":[6.21,732.92],"6-114-26":[-2.3,520.43],"6-114-27":[-5.85,880.74],"6-114-28":[7.56,438.76],"6-114-29":[20.35,3629.05],"6-114-30":[-3441.73,3943.74],"6-114-31":[-4244.85,1426.8],"6-114-32":[-4340.52,1467.8],"6-114-33":[-4413.15,4032.23],"6-114-34":[-5477.02,3694.06],"6-114-35":[-10049.63,439.48],"6-114-36":[-10883.73,882.4],"6-114-37":[-5760.92,520.58],"6-114-38":[-8182.96,739.41],"6-114-39":[-5356.9,660.81],"6-114-40":[-8476.64,710.83],"6-114-41":[-9287.43,750.15],"6-114-42":[-9851.17,458.66],"6-114-43":[-9796.6,485.33],"6-114-44":[-9315.04,336.86],"6-114-45":[-7698.82,1596.14],"6-114-46":[-2831.4,1994.69],"6-114-47":[-793.5,2215.96],"6-114-48":[-1277.31,1574.86],"6-114-49":[-960.62,1356.08],"6-114-50":[-94.37,1531.42],"6-114-51":[-709.67,522.06],"6-114-52":[-430.47,1139.42],"6-114-53":[-75.38,2490.43],"6-114-54":[-88.58,2850.78],"6-114-55":[-89.56,2551.72],"6-114-56":[16.7,2298.07],"6-114-57":[-19.08,2577.32],"6-114-58":[-24.95,2638.08],"6-114-59":[-83.74,2612.99],"6-114-60":[-2174.13,2407.18],"6-114-61":[-3518.73,2636.29],"6-114-62":[-3712.95,2964.79],"6-114-63":[-4283.73,3070.97],"6-115-0":[-187.04,530.93],"6-115-1":[-99.37,430.8],"5-57-0":[-652.96,631.52],"6-115-2":[-563.41,825.96],"6-115-3":[-731.31,170.94],"5-57-1":[-731.31,825.96],"4-28-0":[-773.18,825.96],"6-115-4":[-1100.27,5.87],"6-115-5":[-1251.66,73.43],"5-57-2":[-1251.66,264.4],"6-115-6":[-1636.04,115.08],"6-115-7":[-2093.35,672.76],"5-57-3":[-2093.35,1696.85],"4-28-1":[-2150.48,2177.91],"6-115-8":[-3667.84,2830.65],"6-115-9":[-4258.51,2291.47],"5-57-4":[-4383.62,2830.65],"6-115-10":[-4724.92,2265.18],"6-115-11":[-4195.94,34.94],"5-57-5":[-4971.59,2513.43],"4-28-2":[-4971.59,2830.65],"6-115-12":[-3868.98,35.92],"6-115-13":[-5231.94,820.94],"5-57-6":[-5231.94,1624.43],"6-115-14":[-6647.87,1183.3],"6-115-15":[-5281.18,553.47],"5-57-7":[-6647.87,2346.04],"4-28-3":[-6647.87,2346.04],"6-115-16":[-5068.24,1740.56],"6-115-17":[-4365.04,1514.48],"5-57-8":[-5970.29,2312.97],"6-115-18":[-126.48,1481.35],"6-115-19":[16.45,488.33],"5-57-9":[-4050.6,1666.14],"4-28-4":[-5970.29,3800.26],"6-115-20":[24.53,517.03],"6-115-21":[25.92,466.97],"5-57-10":[11.53,517.03],"6-115-22":[27.14,504.64],"6-115-23":[25.23,721.3],"5-57-11":[9.96,768.11],"4-28-5":[-42.36,1148.96],"6-115-24":[19.75,1064.3],"6-115-25":[-5.67,1668.89],"5-57-12":[-5.67,1668.89],"6-115-26":[-2825.97,1447.2],"6-115-27":[-3615.64,572.29],"5-57-13":[-3615.64,1447.2],"4-28-6":[-3615.64,1668.89],"6-115-28":[-2126.29,211.74],"6-115-29":[-404.43,4475.65],"5-57-14":[-2126.29,4475.65],"6-115-30":[-2695.19,3432.98],"6-115-31":[-5029,210.19],"5-57-15":[-5029,3943.74],"4-28-7":[-5137.94,4766.85],"6-115-32":[-4771.84,296.18],"6-115-33":[-5123.4,3477.99],"5-57-16":[-5123.4,4032.23],"6-115-34":[-4997.92,4553.66],"6-115-35":[-7320.04,488.1],"5-57-17":[-10049.63,4553.66],"4-28-8":[-10049.63,5227.39],"6-115-36":[-10739.69,573.48],"6-115-37":[-5915.41,1449.42],"5-57-18":[-10883.73,1449.42],"6-115-38":[-5524.22,1670.14],"6-115-39":[-8932.24,1064.78],"5-57-19":[-8932.24,1670.14],"4-28-9":[-10883.73,1670.14],"6-115-40":[-8812,727.4],"6-115-41":[-8392.96,517.69],"5-57-20":[-9287.43,750.15],"6-115-42":[-7872.39,518.96],"6-115-43":[-6764.45,560.11],"5-57-21":[-9851.17,560.11],"4-28-10":[-9851.17,1164.85],"6-115-44":[-7018.42,521.33],"6-115-45":[-7799.77,1522.55],"5-57-22":[-9315.04,1596.14],"6-115-46":[-7614.84,1610.49],"6-115-47":[-6336.52,1704.56],"5-57-23":[-7614.84,2215.96],"4-28-11":[-9315.04,3720.25],"6-115-48":[-3744.4,504.45],"6-115-49":[-2649.47,1115.29],"5-57-24":[-3744.4,1574.86],"6-115-50":[-1798.94,796.94],"6-115-51":[-1884.46,1.57],"5-57-25":[-1884.46,1531.42],"4-28-12":[-3744.4,2039.75],"6-115-52":[-486.07,-22.55],"6-115-53":[-197.82,2231.18],"5-57-26":[-486.07,2490.43],"6-115-54":[-88.66,2288.35],"6-115-55":[-97.84,2886.75],"5-57-27":[-97.84,2886.75],"4-28-13":[-486.07,2886.75],"6-115-56":[-97.84,2001.44],"6-115-57":[-13.4,2428.6],"5-57-28":[-97.84,2577.32],"6-115-58":[-28.88,2560],"6-115-59":[-79.49,2552.69],"5-57-29":[-83.74,2638.08],"4-28-14":[-2183.56,2867.37],"6-115-60":[-2354.66,2355.28],"6-115-61":[-3053.46,2602.75],"5-57-30":[-3518.73,2636.29],"6-115-62":[-3317.66,2959.59],"6-115-63":[-4448.78,3076],"5-57-31":[-4448.78,3076],"4-28-15":[-4506.77,3076],"6-116-0":[-157.27,588],"6-116-1":[-30.91,619.39],"6-116-2":[-86.06,857.81],"6-116-3":[-594.94,584.08],"6-116-4":[-868.16,361.97],"6-116-5":[-1058.27,89.29],"6-116-6":[-1566.39,341.42],"6-116-7":[-2001.59,925.79],"6-116-8":[-3618.3,2260.37],"6-116-9":[-4360.2,2390.56],"6-116-10":[-4749.94,1856.79],"6-116-11":[-4365.05,37.51],"6-116-12":[-4921.25,37.9],"6-116-13":[-5623.28,37.4],"6-116-14":[-6034.38,40.87],"6-116-15":[-5248.79,1590.34],"6-116-16":[-4152.47,1786.57],"6-116-17":[-3533.65,1543.35],"6-116-18":[-3081.9,1965.18],"6-116-19":[15.73,2197.03],"6-116-20":[16.81,1387.12],"6-116-21":[19.43,339.66],"6-116-22":[23.95,968.42],"6-116-23":[29.01,1287.75],"6-116-24":[-77.95,1323.71],"6-116-25":[-1556,1284.39],"6-116-26":[-4497.18,99.51],"6-116-27":[-5262.69,99.08],"6-116-28":[-3029.54,3997.49],"6-116-29":[-6385.09,4112.66],"6-116-30":[-2568.6,1782.61],"6-116-31":[-6288.19,740.66],"6-116-32":[-7111.28,783.66],"6-116-33":[-5493.91,1907.63],"6-116-34":[-4683.48,4188.78],"6-116-35":[-7034.25,4099.51],"6-116-36":[-9875.02,139.92],"6-116-37":[-9525.81,129.47],"6-116-38":[-8773.83,1285.71],"6-116-39":[-7921.08,1325.23],"6-116-40":[-6582.23,1296.76],"6-116-41":[-6316.23,988.43],"6-116-42":[-8465.08,430.67],"6-116-43":[-6438.18,1421.13],"6-116-44":[-7095.88,2241.03],"6-116-45":[-7675.74,1999.21],"6-116-46":[-7337.56,1568.36],"6-116-47":[-9334.83,1737.57],"6-116-48":[-3739.03,1541.1],"6-116-49":[-3476.14,-13.09],"6-116-50":[-1798.94,-17.24],"6-116-51":[-1811.87,-19.53],"6-116-52":[-301.26,-22.38],"6-116-53":[-167.42,1885.71],"6-116-54":[-87.53,2398.56],"6-116-55":[-101.33,2286.69],"6-116-56":[-102.54,1792.11],"6-116-57":[-13.65,2338.91],"6-116-58":[-31.04,2481.09],"6-116-59":[-75.07,2481.96],"6-116-60":[-2584.8,2344.16],"6-116-61":[-2779.5,2569.82],"6-116-62":[-2768.05,2955.42],"6-116-63":[-4427.28,3081.95],"6-117-0":[-117.15,889.5],"6-117-1":[-8.17,1165.42],"5-58-0":[-157.27,1165.42],"6-117-2":[-333.27,1098.87],"6-117-3":[-364.55,1029.82],"5-58-1":[-594.94,1098.87],"6-117-4":[-777.9,446.39],"6-117-5":[-981.65,58.1],"5-58-2":[-1058.27,446.39],"6-117-6":[-1431.07,341.42],"6-117-7":[-1846.36,692.04],"5-58-3":[-2001.59,925.79],"6-117-8":[-3562.75,2175.65],"6-117-9":[-4180.76,2203.44],"5-58-4":[-4360.2,2390.56],"6-117-10":[-4281.24,2094.72],"6-117-11":[-4335.23,1541.51],"5-58-5":[-4749.94,2094.72],"6-117-12":[-4618.79,39.7],"6-117-13":[-4806.12,40.77],"5-58-6":[-5623.28,40.77],"6-117-14":[-5012.17,43.2],"6-117-15":[-6446.55,1533.21],"5-58-7":[-6446.55,1590.34],"6-117-16":[-4699.4,45.41],"6-117-17":[-4932.33,36.86],"5-58-8":[-4932.33,1786.57],"6-117-18":[-4982.4,1251.5],"6-117-19":[-4968.05,1583.75],"5-58-9":[-4982.4,2197.03],"6-117-20":[-528.87,1608.21],"6-117-21":[14.56,1512.08],"5-58-10":[-528.87,1608.21],"6-117-22":[19.38,1197.94],"6-117-23":[-32.07,1008.31],"5-58-11":[-32.07,1287.75],"6-117-24":[-324.64,868.08],"6-117-25":[-1824.42,88.5],"5-58-12":[-1824.42,1323.71],"6-117-26":[-4890.42,89.46],"6-117-27":[-4788.85,120.54],"5-58-13":[-5262.69,120.54],"6-117-28":[-3189.37,3000.93],"6-117-29":[-8146.74,1965.94],"5-58-14":[-8146.74,4112.66],"6-117-30":[-2812.73,2341.64],"6-117-31":[-7174.86,935.38],"5-58-15":[-7174.86,2341.64],"6-117-32":[-7126.95,964.38],"6-117-33":[-5915.39,2427.64],"5-58-16":[-7126.95,2427.64],"6-117-34":[-5061.26,2022.98],"6-117-35":[-6177.77,3071.93],"5-58-17":[-7034.25,4188.78],"6-117-36":[-6298.8,143.56],"6-117-37":[-6635.98,128.82],"5-58-18":[-9875.02,143.56],"6-117-38":[-6274.6,126.23],"6-117-39":[-6113.61,869.8],"5-58-19":[-8773.83,1325.23],"6-117-40":[-5929.23,1008.41],"6-117-41":[-6305.98,1199.98],"5-58-20":[-6582.23,1296.76],"6-117-42":[-6805.26,1550.43],"6-117-43":[-7008.26,1629.02],"5-58-21":[-8465.08,1629.02],"6-117-44":[-8681.6,1622.97],"6-117-45":[-8183.55,1262.52],"5-58-22":[-8681.6,2241.03],"6-117-46":[-6895.09,1.67],"6-117-47":[-9654.63,-5.89],"5-58-23":[-9654.63,1737.57],"6-117-48":[-7416.93,1460.21],"6-117-49":[-3583.39,-13.2],"5-58-24":[-7416.93,1541.1],"6-117-50":[-1433.49,-17.24],"6-117-51":[-1442.55,-20.04],"5-58-25":[-1811.87,-17.24],"6-117-52":[-456.12,1447.51],"6-117-53":[-164.68,2081.72],"5-58-26":[-456.12,2081.72],"6-117-54":[-86.62,2232.56],"6-117-55":[-101.99,2194.66],"5-58-27":[-101.99,2398.56],"6-117-56":[-106.25,1600.9],"6-117-57":[-18.37,2342.57],"5-58-28":[-106.25,2342.57],"6-117-58":[-30.84,2456.95],"6-117-59":[-74.54,2466.51],"5-58-29":[-75.07,2481.96],"6-117-60":[-2625.71,2291.18],"6-117-61":[-2781.74,2529.67],"5-58-30":[-2781.74,2569.82],"6-117-62":[-2248.52,2953.28],"6-117-63":[-4401.78,3084.91],"5-58-31":[-4427.28,3084.91],"6-118-0":[-129.02,911.99],"6-118-1":[6.64,1219.86],"6-118-2":[-297.72,2134.22],"6-118-3":[-2190.37,2133.38],"6-118-4":[-543.46,1022.63],"6-118-5":[-987.51,871.83],"6-118-6":[-1170.75,75.94],"6-118-7":[-2295.81,559.13],"6-118-8":[-3542.04,1102.21],"6-118-9":[-3936.44,1636.07],"6-118-10":[-4037.5,1813.48],"6-118-11":[-4143.24,1062.27],"6-118-12":[-4447.72,43.51],"6-118-13":[-4632.72,45.98],"6-118-14":[-5518.07,1460.13],"6-118-15":[-5586.61,1395.62],"6-118-16":[-6399.77,30.44],"6-118-17":[-5185.87,30.2],"6-118-18":[-5078.26,24.25],"6-118-19":[-5133.45,23.71],"6-118-20":[-5212.89,1371.43],"6-118-21":[-7297.49,1596.89],"6-118-22":[-4793.53,1262.63],"6-118-23":[-4385.58,466.32],"6-118-24":[-3305.66,72.19],"6-118-25":[-3117.27,81.26],"6-118-26":[-4793.75,84.41],"6-118-27":[-4811.89,769.24],"6-118-28":[-5121.46,987.57],"6-118-29":[-8895.66,337.7],"6-118-30":[-6033.07,2324.77],"6-118-31":[-6318.75,396.72],"6-118-32":[-4831.85,435.72],"6-118-33":[-4739.98,2388.16],"6-118-34":[-5400.43,419.14],"6-118-35":[-6063.11,1094.58],"6-118-36":[-8213.52,866.24],"6-118-37":[-6352.85,127.95],"6-118-38":[-5939.1,126.07],"6-118-39":[-6146.39,114.91],"6-118-40":[-5790.02,468.23],"6-118-41":[-6284.8,1263.13],"6-118-42":[-6559.51,1616.85],"6-118-43":[-6354.62,1396.93],"6-118-44":[-6695.74,40.32],"6-118-45":[-8749.81,22.42],"6-118-46":[-9912.03,6.94],"6-118-47":[-9502.69,-3.98],"6-118-48":[-9591.92,1305.84],"6-118-49":[-3423.16,1389.12],"6-118-50":[-1280.44,-10.19],"6-118-51":[-927.75,-20.43],"6-118-52":[-1013.08,982.96],"6-118-53":[-160.55,1825.48],"6-118-54":[-85.12,1590.07],"6-118-55":[-101.8,1107.21],"6-118-56":[-107,1522.76],"6-118-57":[-31.01,2294.89],"6-118-58":[-31.98,2319.46],"6-118-59":[-91.3,2399.61],"6-118-60":[-2793.15,2218.73],"6-118-61":[-2881.88,2447.37],"6-118-62":[-3368.66,2959.26],"6-118-63":[-4393.23,3089.37],"6-119-0":[-54.55,760],"6-119-1":[6.4,1341.53],"5-59-0":[-129.02,1341.53],"6-119-2":[-449.12,2688.82],"6-119-3":[-3165.15,3402.83],"5-59-1":[-3165.15,3402.83],"4-29-0":[-3165.15,3402.83],"6-119-4":[-610.56,1715.86],"6-119-5":[-1075.15,1249.44],"5-59-2":[-1075.15,1715.86],"6-119-6":[-1268.32,341.83],"6-119-7":[-1805.28,795.87],"5-59-3":[-2295.81,795.87],"4-29-1":[-2295.81,1715.86],"3-14-0":[-3165.15,3402.83],"6-119-8":[-3519.24,1098.37],"6-119-9":[-3570.74,1766.68],"5-59-4":[-3936.44,1766.68],"6-119-10":[-3550.32,1878.57],"6-119-11":[-6470.11,935.54],"5-59-5":[-6470.11,1878.57],"4-29-2":[-6470.11,2390.56],"6-119-12":[-4628.34,2005.12],"6-119-13":[-4845.41,2477.12],"5-59-6":[-4845.41,2477.12],"6-119-14":[-5636.3,1817.92],"6-119-15":[-5622.88,33.35],"5-59-7":[-5636.3,1817.92],"4-29-3":[-6446.55,2477.12],"3-14-1":[-6647.87,2830.65],"6-119-16":[-5611.37,23.39],"6-119-17":[-5516.39,17.38],"5-59-8":[-6399.77,30.44],"6-119-18":[-5476.01,11.21],"6-119-19":[-5309.53,11.2],"5-59-9":[-5476.01,24.25],"4-29-4":[-6399.77,2197.03],"6-119-20":[-5347.62,19.59],"6-119-21":[-5080.75,25.03],"5-59-10":[-7297.49,1596.89],"6-119-22":[-5020.66,34.94],"6-119-23":[-4903.3,56.89],"5-59-11":[-5020.66,1262.63],"4-29-5":[-7297.49,1608.21],"3-14-2":[-7297.49,3800.26],"6-119-24":[-3435.85,58.63],"6-119-25":[-3571.58,64.62],"5-59-12":[-3571.58,81.26],"6-119-26":[-4795.19,76.13],"6-119-27":[-4536.58,78.92],"5-59-13":[-4811.89,769.24],"4-29-6":[-5262.69,1323.71],"6-119-28":[-5330.86,1020.41],"6-119-29":[-7295.87,2736.56],"5-59-14":[-8895.66,2736.56],"6-119-30":[-3608.32,909.88],"6-119-31":[-3154.36,118.67],"5-59-15":[-6318.75,2324.77],"4-29-7":[-8895.66,4112.66],"3-14-3":[-8895.66,4766.85],"6-119-32":[-3114.22,260.46],"6-119-33":[-4255.39,960.88],"5-59-16":[-4831.85,2388.16],"6-119-34":[-5297.69,2782.57],"6-119-35":[-6052.62,1115.42],"5-59-17":[-6063.11,2782.57],"4-29-8":[-7126.95,4188.78],"6-119-36":[-6402.6,138.91],"6-119-37":[-6824.02,131.76],"5-59-18":[-8213.52,866.24],"6-119-38":[-6498.7,123.47],"6-119-39":[-5918.74,110.92],"5-59-19":[-6498.7,126.07],"4-29-9":[-9875.02,1325.23],"3-14-4":[-10883.73,5227.39],"6-119-40":[-6128.03,99.59],"6-119-41":[-6519.49,84.71],"5-59-20":[-6519.49,1263.13],"6-119-42":[-9176.7,74.04],"6-119-43":[-10680.3,59.16],"5-59-21":[-10680.3,1616.85],"4-29-10":[-10680.3,1629.02],"6-119-44":[-6763.45,40.96],"6-119-45":[-6519.66,25.39],"5-59-22":[-8749.81,40.96],"6-119-46":[-9445.89,10.69],"6-119-47":[-6123.65,-2.2],"5-59-23":[-9912.03,10.69],"4-29-11":[-9912.03,2241.03],"3-14-5":[-10680.3,3720.25],"6-119-48":[-10853.54,-8.1],"6-119-49":[-8574.57,1748.92],"5-59-24":[-10853.54,1748.92],"6-119-50":[-1223.57,2383.12],"6-119-51":[-217.21,1893.12],"5-59-25":[-1280.44,2383.12],"4-29-12":[-10853.54,2383.12],"6-119-52":[-433.74,838.54],"6-119-53":[-451.42,1902.57],"5-59-26":[-1013.08,1902.57],"6-119-54":[-84.63,1806.68],"6-119-55":[-101.06,1131.36],"5-59-27":[-101.8,1806.68],"4-29-13":[-1013.08,2398.56],"3-14-6":[-10853.54,2886.75],"6-119-56":[-106.67,1594.21],"6-119-57":[-31.01,2260.16],"5-59-28":[-107,2294.89],"6-119-58":[-40.57,2260.16],"6-119-59":[-122.46,2352.82],"5-59-29":[-122.46,2399.61],"4-29-14":[-122.46,2481.96],"6-119-60":[-2866.22,3169.82],"6-119-61":[-2914.69,2470.74],"5-59-30":[-2914.69,3169.82],"6-119-62":[-3553,2967.24],"6-119-63":[-4413.73,3091.37],"5-59-31":[-4413.73,3091.37],"4-29-15":[-4427.28,3169.82],"3-14-7":[-4506.77,3169.82],"6-120-0":[-55.55,724.25],"6-120-1":[5.52,1874.12],"6-120-2":[-955.47,2936.62],"6-120-3":[-2180.06,3414.83],"6-120-4":[-69.75,2856.44],"6-120-5":[-897.88,2143.79],"6-120-6":[-1157.78,2764.3],"6-120-7":[-2619.95,1481.77],"6-120-8":[-3296.34,1454.04],"6-120-9":[-3345.62,1757.61],"6-120-10":[-6609.18,947.68],"6-120-11":[-6590.7,2605.13],"6-120-12":[-5687.86,3631.59],"6-120-13":[-5276.6,3468.03],"6-120-14":[-5872.65,40.12],"6-120-15":[-5614.35,24.95],"6-120-16":[-5664,17.95],"6-120-17":[-5402.66,7.43],"6-120-18":[-5497,3],"6-120-19":[-5339.46,7.47],"6-120-20":[-4782.38,525.64],"6-120-21":[-4754.25,112.06],"6-120-22":[-4204.44,41.18],"6-120-23":[-3361.51,128.34],"6-120-24":[-2901.96,320.52],"6-120-25":[-4792.78,312.66],"6-120-26":[-5489.9,62.27],"6-120-27":[-4823.71,320.6],"6-120-28":[-5326.13,2329.59],"6-120-29":[-4282.44,1183.15],"6-120-30":[-2845.84,307.69],"6-120-31":[-3113.14,110.31],"6-120-32":[-3457.59,118.16],"6-120-33":[-4809.47,128.82],"6-120-34":[-5306.33,1251.14],"6-120-35":[-5928.98,2387.59],"6-120-36":[-6390.47,264.39],"6-120-37":[-6457.12,130.22],"6-120-38":[-6076.57,121.69],"6-120-39":[-5927.65,115.94],"6-120-40":[-5955.92,105.9],"6-120-41":[-6311.98,90.52],"6-120-42":[-6153.64,74.62],"6-120-43":[-5805.65,495.66],"6-120-44":[-5548.65,48.16],"6-120-45":[-6239.76,25.68],"6-120-46":[-7151.59,12.37],"6-120-47":[-6409.75,-0.49],"6-120-48":[-8360.13,-6.4],"6-120-49":[-7969.09,-10.64],"6-120-50":[-7897.4,3297.03],"6-120-51":[-1959.34,3585.59],"6-120-52":[-113.8,2516.12],"6-120-53":[-197.28,960.68],"6-120-54":[-84.73,1792.6],"6-120-55":[-104.1,1485.04],"6-120-56":[-112.02,1627.11],"6-120-57":[-24.77,2656.26],"6-120-58":[-47.85,2268.9],"6-120-59":[-172.93,2732.99],"6-120-60":[-3015.38,3191.81],"6-120-61":[-3572.17,2726.57],"6-120-62":[-4035.09,2977.2],"6-120-63":[-4362.3,3090.38],"6-121-0":[-56.54,784.16],"6-121-1":[-119.82,2728.02],"5-60-0":[-119.82,2728.02],"6-121-2":[-1558.73,4094.57],"6-121-3":[-1548.62,2241.19],"5-60-1":[-2180.06,4094.57],"6-121-4":[-1757.29,3832.91],"6-121-5":[-2241.05,3569.68],"5-60-2":[-2241.05,3832.91],"6-121-6":[-1300.6,2695.9],"6-121-7":[-2708.34,1052.69],"5-60-3":[-2708.34,2764.3],"6-121-8":[-3358.21,1653.57],"6-121-9":[-4131.5,1415.31],"5-60-4":[-4131.5,1757.61],"6-121-10":[-4858.1,1872.79],"6-121-11":[-5472.05,3277.23],"5-60-5":[-6609.18,3277.23],"6-121-12":[-5350.87,4774.23],"6-121-13":[-5927.84,28.14],"5-60-6":[-5927.84,4774.23],"6-121-14":[-7062.03,18.42],"6-121-15":[-5638.62,16.76],"5-60-7":[-7062.03,40.12],"6-121-16":[-5398.32,7.27],"6-121-17":[-5249.74,-0.26],"5-60-8":[-5664,17.95],"6-121-18":[-5445.67,-2.7],"6-121-19":[-4935,-0.57],"5-60-9":[-5497,7.47],"6-121-20":[-2281.98,2.2],"6-121-21":[-2412.8,8.56],"5-60-10":[-4782.38,525.64],"6-121-22":[-2319.41,15.96],"6-121-23":[-2554.81,30.18],"5-60-11":[-4204.44,128.34],"6-121-24":[-3725.28,107.41],"6-121-25":[-4952.98,278.42],"5-60-12":[-4952.98,320.52],"6-121-26":[-5302.77,60.14],"6-121-27":[-8432.48,310],"5-60-13":[-8432.48,320.6],"6-121-28":[-8445.91,1874.06],"6-121-29":[-4394.15,798.37],"5-60-14":[-8445.91,2329.59],"6-121-30":[-4214.87,673.97],"6-121-31":[-4909.25,96.35],"5-60-15":[-4909.25,673.97],"6-121-32":[-4524.53,101.5],"6-121-33":[-4708.54,1195.58],"5-60-16":[-4809.47,1195.58],"6-121-34":[-5263.16,839.37],"6-121-35":[-5431.78,1980.07],"5-60-17":[-5928.98,2387.59],"6-121-36":[-5881.53,241.22],"6-121-37":[-5906.24,129.2],"5-60-18":[-6457.12,264.39],"6-121-38":[-6153.29,122.21],"6-121-39":[-5665.94,116.7],"5-60-19":[-6153.29,122.21],"6-121-40":[-6068.98,106.12],"6-121-41":[-6769.5,94.44],"5-60-20":[-6769.5,106.12],"6-121-42":[-6326.71,82.35],"6-121-43":[-6475.65,66.27],"5-60-21":[-6475.65,495.66],"6-121-44":[-6585.85,55.75],"6-121-45":[-5665.02,35.28],"5-60-22":[-6585.85,55.75],"6-121-46":[-5980.55,21.22],"6-121-47":[-8565.41,3.98],"5-60-23":[-8565.41,21.22],"6-121-48":[-7688.98,-3.49],"6-121-49":[-6094.09,-8.06],"5-60-24":[-8360.13,-3.49],"6-121-50":[-7925.02,-10.84],"6-121-51":[-7262.98,4714.21],"5-60-25":[-7925.02,4714.21],"6-121-52":[-1254.34,3173.24],"6-121-53":[-279.33,1760.54],"5-60-26":[-1254.34,3173.24],"6-121-54":[-88.46,1430.3],"6-121-55":[-106.46,1636.79],"5-60-27":[-106.46,1792.6],"6-121-56":[-114.63,1037.69],"6-121-57":[-117.59,2620.78],"5-60-28":[-117.59,2656.26],"6-121-58":[-116.47,3433.82],"6-121-59":[-326.4,3317.92],"5-60-29":[-326.4,3433.82],"6-121-60":[-2852.26,2320.2],"6-121-61":[-3608.19,4077.78],"5-60-30":[-3608.19,4077.78],"6-121-62":[-4027.06,2984.14],"6-121-63":[-4301.84,3088.17],"5-60-31":[-4362.3,3090.38],"6-122-0":[-56.54,1014.6],"6-122-1":[-109.77,3546.5],"6-122-2":[-1210.31,4044.71],"6-122-3":[-1409.05,4.81],"6-122-4":[-1085.99,2572.72],"6-122-5":[-1350.81,3255.72],"6-122-6":[-1368.16,3402.98],"6-122-7":[-2794.56,1528.57],"6-122-8":[-3475.81,2107.47],"6-122-9":[-4413.25,1582.28],"6-122-10":[-5290.8,1233.67],"6-122-11":[-5917.39,932.54],"6-122-12":[-5796.65,850.98],"6-122-13":[-4791.57,472.87],"6-122-14":[-9889.98,16.34],"6-122-15":[-5992.39,6.88],"6-122-16":[-5621.81,-0.71],"6-122-17":[-5005.96,-4.25],"6-122-18":[-4194.8,-5.37],"6-122-19":[-3160.01,-6.19],"6-122-20":[-3411.31,-2.87],"6-122-21":[-3636.98,2.46],"6-122-22":[-3840.52,10.62],"6-122-23":[-3781.57,22.49],"6-122-24":[-4206.98,1627.03],"6-122-25":[-6101.98,333.75],"6-122-26":[-5952.12,54.72],"6-122-27":[-9079.48,60.99],"6-122-28":[-8454.89,738.31],"6-122-29":[-5441.79,72.29],"6-122-30":[-4625.54,81.32],"6-122-31":[-4641.51,86.88],"6-122-32":[-4517.57,92.44],"6-122-33":[-4923.32,106.03],"6-122-34":[-5332.06,119.42],"6-122-35":[-5557.99,866.32],"6-122-36":[-5705.71,218.89],"6-122-37":[-5889.42,127.16],"6-122-38":[-5897.43,340.77],"6-122-39":[-6007.07,1689.03],"6-122-40":[-6305.73,106.61],"6-122-41":[-6283.84,96.95],"6-122-42":[-6920.2,82.62],"6-122-43":[-7795.55,66.13],"6-122-44":[-6961.36,57.54],"6-122-45":[-6797.87,44.27],"6-122-46":[-6318.08,29.21],"6-122-47":[-7616.71,13.47],"6-122-48":[-10312.48,-2.93],"6-122-49":[-6228.89,-6.28],"6-122-50":[-6196.34,517.88],"6-122-51":[-6991.8,775.99],"6-122-52":[-4261.65,866.52],"6-122-53":[-1470.63,1246.67],"6-122-54":[-91.49,1594.29],"6-122-55":[-105.7,1756.51],"6-122-56":[-117.38,1533.57],"6-122-57":[-60.46,3075.8],"6-122-58":[-117.89,3148.6],"6-122-59":[-1054.95,2551.83],"6-122-60":[-2851.46,209.78],"6-122-61":[-3431.75,3800.64],"6-122-62":[-3988.49,3358.99],"6-122-63":[-4295.78,3084.48],"6-123-0":[-56.54,1244.65],"6-123-1":[-232.32,3676.75],"5-61-0":[-232.32,3676.75],"6-123-2":[-3382.75,4354.84],"6-123-3":[-1294.36,5.41],"5-61-1":[-3382.75,4354.84],"4-30-0":[-3382.75,4354.84],"6-123-4":[-2791.43,3682.29],"6-123-5":[-1170.46,3170.38],"5-61-2":[-2791.43,3682.29],"6-123-6":[-2127.24,3838.38],"6-123-7":[-3347.99,1680.33],"5-61-3":[-3347.99,3838.38],"4-30-1":[-3347.99,3838.38],"6-123-8":[-3635.38,1646.59],"6-123-9":[-3647.76,1328.47],"5-61-4":[-4413.25,2107.47],"6-123-10":[-5327.86,1210.93],"6-123-11":[-5689.06,20.59],"5-61-5":[-5917.39,1233.67],"4-30-2":[-6609.18,3277.23],"6-123-12":[-5306.98,744.81],"6-123-13":[-1323.94,597.84],"5-61-6":[-5796.65,850.98],"6-123-14":[-3360.99,467.59],"6-123-15":[-4513.17,2234.46],"5-61-7":[-9889.98,2234.46],"4-30-3":[-9889.98,4774.23],"6-123-16":[-4699.05,2752.59],"6-123-17":[-4390.06,-6.72],"5-61-8":[-5621.81,2752.59],"6-123-18":[-3204.99,-8.71],"6-123-19":[-3164.59,-8.81],"5-61-9":[-4194.8,-5.37],"4-30-4":[-5664,2752.59],"6-123-20":[-4217.52,33.69],"6-123-21":[-4274.01,312.86],"5-61-10":[-4274.01,312.86],"6-123-22":[-3827.4,1.5],"6-123-23":[-3830.58,209.11],"5-61-11":[-3840.52,209.11],"4-30-5":[-4782.38,525.64],"6-123-24":[-7245.18,1610.47],"6-123-25":[-7349.14,684.13],"5-61-12":[-7349.14,1627.03],"6-123-26":[-6517.45,1790.76],"6-123-27":[-9033.13,917.4],"5-61-13":[-9079.48,1790.76],"4-30-6":[-9079.48,1790.76],"6-123-28":[-5951.42,556.87],"6-123-29":[-5497.1,68.93],"5-61-14":[-8454.89,738.31],"6-123-30":[-4910.82,72.06],"6-123-31":[-4464.67,236.83],"5-61-15":[-4910.82,236.83],"4-30-7":[-8454.89,2329.59],"6-123-32":[-4593.18,105.9],"6-123-33":[-5101.41,189.87],"5-61-16":[-5101.41,189.87],"6-123-34":[-5266.67,289.81],"6-123-35":[-5291.73,608.86],"5-61-17":[-5557.99,866.32],"4-30-8":[-5928.98,2387.59],"6-123-36":[-5767.79,1017.74],"6-123-37":[-6472.3,1941.75],"5-61-18":[-6472.3,1941.75],"6-123-38":[-5832.98,717.25],"6-123-39":[-9233.31,1664.47],"5-61-19":[-9233.31,1689.03],"4-30-9":[-9233.31,1941.75],"6-123-40":[-6592.72,309.11],"6-123-41":[-6481.34,105.67],"5-61-20":[-6592.72,309.11],"6-123-42":[-6303.27,357.87],"6-123-43":[-6844.66,77.86],"5-61-21":[-7795.55,357.87],"4-30-10":[-7795.55,495.66],"6-123-44":[-7086.51,65.38],"6-123-45":[-5939.97,51.14],"5-61-22":[-7086.51,65.38],"6-123-46":[-6464.77,41.96],"6-123-47":[-5894.23,2939.6],"5-61-23":[-7616.71,2939.6],"4-30-11":[-8565.41,2939.6],"6-123-48":[-6765.22,2088.42],"6-123-49":[-7225.31,566.58],"5-61-24":[-10312.48,2088.42],"6-123-50":[-7023.81,649.83],"6-123-51":[-7022.87,934.21],"5-61-25":[-7023.81,934.21],"4-30-12":[-10312.48,4714.21],"6-123-52":[-4126.33,-32.37],"6-123-53":[-3406.12,1230.43],"5-61-26":[-4261.65,1246.67],"6-123-54":[-95.58,1329.47],"6-123-55":[-108.17,1683.59],"5-61-27":[-108.17,1756.51],"4-30-13":[-4261.65,3173.24],"6-123-56":[-118.68,1650.33],"6-123-57":[-116.81,3530.38],"5-61-28":[-118.68,3530.38],"6-123-58":[-159.87,2686.35],"6-123-59":[-2076.04,3368.3],"5-61-29":[-2076.04,3368.3],"4-30-14":[-2076.04,3530.38],"6-123-60":[-2853.15,-47.93],"6-123-61":[-3435.37,4324.92],"5-61-30":[-3435.37,4324.92],"6-123-62":[-3977.47,3260.29],"6-123-63":[-4287.81,3084.24],"5-61-31":[-4295.78,3358.99],"4-30-15":[-4362.3,4324.92],"6-124-0":[-56.54,1301.6],"6-124-1":[-1191.92,3708.01],"6-124-2":[-1848.48,3644.05],"6-124-3":[-995.03,5.75],"6-124-4":[-1020.34,2277.07],"6-124-5":[-1133.6,1872.18],"6-124-6":[-2735.85,3841.38],"6-124-7":[-3498.04,1617.82],"6-124-8":[-3588.31,1409.69],"6-124-9":[-4799.27,2305.88],"6-124-10":[-5503.23,2164.88],"6-124-11":[-6053.23,14.63],"6-124-12":[-5956.51,14.32],"6-124-13":[-796.01,475.72],"6-124-14":[-1475.84,8.76],"6-124-15":[-1676.68,2157.34],"6-124-16":[-2008.55,3583.72],"6-124-17":[-2140.02,1384.49],"6-124-18":[-2382.68,-6.47],"6-124-19":[-3086.24,3.63],"6-124-20":[-4605.92,-7.51],"6-124-21":[-4715.27,-4.76],"6-124-22":[-4322.05,-0.84],"6-124-23":[-7577.19,199.74],"6-124-24":[-7373.16,963.85],"6-124-25":[-4229.08,1044.88],"6-124-26":[-3856.45,38.19],"6-124-27":[-4605.43,656.26],"6-124-28":[-6193.84,78.61],"6-124-29":[-5618.92,57.21],"6-124-30":[-4139.69,61.69],"6-124-31":[-4704.02,110.26],"6-124-32":[-4720.62,114.26],"6-124-33":[-4885.21,199.85],"6-124-34":[-5006.81,1181.19],"6-124-35":[-5183.38,353.36],"6-124-36":[-5749.76,447.27],"6-124-37":[-5836.57,1039.27],"6-124-38":[-6631,1137.87],"6-124-39":[-6170.25,895.97],"6-124-40":[-6352.28,131.97],"6-124-41":[-6401.53,105.92],"6-124-42":[-6323.16,96.09],"6-124-43":[-6035.82,85.75],"6-124-44":[-6040.28,75.44],"6-124-45":[-6821.76,56.69],"6-124-46":[-7017.19,1441.5],"6-124-47":[-6967.66,3719.73],"6-124-48":[-6885.19,2290.2],"6-124-49":[-6816.74,-3.78],"6-124-50":[-7342.18,535.73],"6-124-51":[-4825.77,-20.62],"6-124-52":[-4087.83,-35.05],"6-124-53":[-3238.86,2185.88],"6-124-54":[-98.04,2328.88],"6-124-55":[-110.57,1461.98],"6-124-56":[-118.68,1628.36],"6-124-57":[-117.84,3544.4],"6-124-58":[-196.58,1962.19],"6-124-59":[-2437.77,2252.06],"6-124-60":[-2814.21,-48.57],"6-124-61":[-3412.93,3812.59],"6-124-62":[-4012.16,3705.94],"6-124-63":[-4284.77,3085.39],"6-125-0":[-56.54,1317.16],"6-125-1":[-572.69,3995.42],"5-62-0":[-1191.92,3995.42],"6-125-2":[-1311.11,2953.97],"6-125-3":[-964.64,6.39],"5-62-1":[-1848.48,3644.05],"6-125-4":[-964.64,6.49],"6-125-5":[-641.47,5.32],"5-62-2":[-1133.6,2277.07],"6-125-6":[-2768.91,6.47],"6-125-7":[-4295,1111.24],"5-62-3":[-4295,3841.38],"6-125-8":[-4019.88,1048.77],"6-125-9":[-4953.31,1518.99],"5-62-4":[-4953.31,2305.88],"6-125-10":[-5798.48,1665.46],"6-125-11":[-5866.14,6.86],"5-62-5":[-6053.23,2164.88],"6-125-12":[-5760.7,8.77],"6-125-13":[-4633.32,953.56],"5-62-6":[-5956.51,953.56],"6-125-14":[-1469.18,5.28],"6-125-15":[-2476.63,-2.39],"5-62-7":[-2476.63,2157.34],"6-125-16":[-2350.31,2480.82],"6-125-17":[-1065.55,2703.39],"5-62-8":[-2350.31,3583.72],"6-125-18":[-2048.5,2435.06],"6-125-19":[-2432.05,771.91],"5-62-9":[-3086.24,2435.06],"6-125-20":[-3878.8,43.61],"6-125-21":[-4100.08,-6.04],"5-62-10":[-4715.27,43.61],"6-125-22":[-5196.44,-3.42],"6-125-23":[-7758.52,4.64],"5-62-11":[-7758.52,199.74],"6-125-24":[-4709.36,513.79],"6-125-25":[-3752.38,24.94],"5-62-12":[-7373.16,1044.88],"6-125-26":[-6621.91,30.26],"6-125-27":[-5178.35,388.48],"5-62-13":[-6621.91,656.26],"6-125-28":[-5685.04,48.13],"6-125-29":[-5834.84,54.5],"5-62-14":[-6193.84,78.61],"6-125-30":[-5675.27,56.85],"6-125-31":[-4961.08,80.57],"5-62-15":[-5675.27,110.26],"6-125-32":[-5122.01,216.12],"6-125-33":[-5296.87,448.44],"5-62-16":[-5296.87,448.44],"6-125-34":[-5462.36,652.65],"6-125-35":[-5659.88,103.05],"5-62-17":[-5659.88,1181.19],"6-125-36":[-5926.4,124.13],"6-125-37":[-5839.93,130.49],"5-62-18":[-5926.4,1039.27],"6-125-38":[-5706.76,131.46],"6-125-39":[-5894.32,288.83],"5-62-19":[-6631,1137.87],"6-125-40":[-6238.28,107.87],"6-125-41":[-6426.06,104.69],"5-62-20":[-6426.06,131.97],"6-125-42":[-6389.68,97.22],"6-125-43":[-5810.29,89.45],"5-62-21":[-6389.68,97.22],"6-125-44":[-6349.71,816.34],"6-125-45":[-6401.67,2517.08],"5-62-22":[-6821.76,2517.08],"6-125-46":[-6548.04,2863.4],"6-125-47":[-7577.65,2605.15],"5-62-23":[-7577.74,3719.73],"6-125-48":[-7742.5,11.03],"6-125-49":[-6175.39,-4.71],"5-62-24":[-7742.5,2290.2],"6-125-50":[-7297.08,855.48],"6-125-51":[-4515.77,-21.91],"5-62-25":[-7342.18,855.48],"6-125-52":[-4005.44,-37.16],"6-125-53":[-3534.25,1715.44],"5-62-26":[-4087.83,2185.88],"6-125-54":[-99.71,1567.95],"6-125-55":[-113.95,1055.77],"5-62-27":[-113.95,2328.88],"6-125-56":[-118.23,1132.25],"6-125-57":[-119.6,-21.59],"5-62-28":[-119.6,3544.4],"6-125-58":[-269.84,-35.5],"6-125-59":[-2414.97,-52.66],"5-62-29":[-2437.77,2252.06],"6-125-60":[-2787.87,-48.63],"6-125-61":[-3242.97,2586.73],"5-62-30":[-3412.93,3812.59],"6-125-62":[-4002.19,3991.97],"6-125-63":[-4279.77,3087.55],"5-62-31":[-4284.77,3991.97],"6-126-0":[-56.54,1326.01],"6-126-1":[6.39,4136.33],"6-126-2":[-1110.71,3023.78],"6-126-3":[-832.6,7.32],"6-126-4":[-882.14,5.6],"6-126-5":[-714.62,4.51],"6-126-6":[-3402.46,5.95],"6-126-7":[-3875.2,1644.02],"6-126-8":[-5179.44,1334.46],"6-126-9":[-4806.11,1348.08],"6-126-10":[-5608.88,360.68],"6-126-11":[-5709.67,3.75],"6-126-12":[-5642.23,11.04],"6-126-13":[-5402.41,663.5],"6-126-14":[-3878.3,1.9],"6-126-15":[-3026,-2.13],"6-126-16":[-2994.81,-6.98],"6-126-17":[-3629.85,1723.22],"6-126-18":[-3098.11,2690.97],"6-126-19":[-3270.73,861.23],"6-126-20":[-4248.84,-6.36],"6-126-21":[-4689.77,-4.68],"6-126-22":[-4958.08,-4.14],"6-126-23":[-5774.74,4.18],"6-126-24":[-5415.15,260.52],"6-126-25":[-4431.02,483.23],"6-126-26":[-5087.7,174.6],"6-126-27":[-4511.06,229.72],"6-126-28":[-5530.34,40.97],"6-126-29":[-5978.96,401.29],"6-126-30":[-5867.38,423.39],"6-126-31":[-5805.77,165.51],"6-126-32":[-6483.05,56],"6-126-33":[-6671.64,66],"6-126-34":[-6545.42,76.55],"6-126-35":[-6624.72,95.02],"6-126-36":[-5934.9,297.72],"6-126-37":[-5555.83,122.31],"6-126-38":[-5267.64,587.24],"6-126-39":[-5478.95,124.15],"6-126-40":[-6264.23,107.99],"6-126-41":[-6215.65,102.99],"6-126-42":[-5936.66,96.7],"6-126-43":[-5953.59,87],"6-126-44":[-5339.24,921.24],"6-126-45":[-5656.73,2784.98],"6-126-46":[-6788.78,1743.24],"6-126-47":[-7214.84,29.21],"6-126-48":[-6130.94,11.4],"6-126-49":[-7290.53,-4.57],"6-126-50":[-7355,491.49],"6-126-51":[-5551.08,-26.38],"6-126-52":[-4441.49,-37.37],"6-126-53":[-3701.8,418.22],"6-126-54":[-122.63,1368.07],"6-126-55":[-115.57,1359.45],"6-126-56":[-120.87,1643.02],"6-126-57":[-122.6,-15.98],"6-126-58":[-624.79,-39.61],"6-126-59":[-2268.14,-52.64],"6-126-60":[-2705.49,-48.23],"6-126-61":[-3105.89,3164.9],"6-126-62":[-4043.65,4009.42],"6-126-63":[-4253.65,3089.77],"6-127-0":[-56.54,1334.33],"6-127-1":[-210.07,3234.37],"5-63-0":[-210.07,4136.33],"6-127-2":[-982.23,1050.27],"6-127-3":[-866.89,8.63],"5-63-1":[-1110.71,3023.78],"4-31-0":[-1848.48,4136.33],"6-127-4":[-866.24,6.79],"6-127-5":[-934.59,4.39],"5-63-2":[-934.59,6.79],"6-127-6":[-3725.21,612.64],"6-127-7":[-4050.17,1712.25],"5-63-3":[-4050.17,1712.25],"4-31-1":[-4295,3841.38],"3-15-0":[-4295,4354.84],"6-127-8":[-5328.81,1465.56],"6-127-9":[-4628.49,918.23],"5-63-4":[-5328.81,1465.56],"6-127-10":[-5971.35,11.47],"6-127-11":[-5641.74,3.44],"5-63-5":[-5971.35,360.68],"4-31-2":[-6053.23,2305.88],"6-127-12":[-5548.55,11.61],"6-127-13":[-5408.37,1210.91],"5-63-6":[-5642.23,1210.91],"6-127-14":[-5040.03,327.38],"6-127-15":[-3895.37,12.41],"5-63-7":[-5040.03,327.38],"4-31-3":[-5956.51,2157.34],"3-15-1":[-9889.98,4774.23],"2-7-0":[-9889.98,4774.23],"6-127-16":[-3066.41,-6.43],"6-127-17":[-4084.12,-10.68],"5-63-8":[-4084.12,1723.22],"6-127-18":[-4617.02,1681.88],"6-127-19":[-4460.78,-7.92],"5-63-9":[-4617.02,2690.97],"4-31-4":[-4617.02,3583.72],"6-127-20":[-4339.84,-7.92],"6-127-21":[-4478.85,40.71],"5-63-10":[-4689.77,40.71],"6-127-22":[-4490.23,-3.04],"6-127-23":[-4568.72,1.26],"5-63-11":[-5774.74,4.18],"4-31-5":[-7758.52,199.74],"3-15-2":[-7758.52,3583.72],"6-127-24":[-4711.94,9.72],"6-127-25":[-4084.66,1312.41],"5-63-12":[-5415.15,1312.41],"6-127-26":[-4195.61,981.61],"6-127-27":[-4943.02,64.11],"5-63-13":[-5087.7,981.61],"4-31-6":[-7373.16,1312.41],"6-127-28":[-5249.7,472.52],"6-127-29":[-5962.93,523.86],"5-63-14":[-5978.96,523.86],"6-127-30":[-6244.65,40.09],"6-127-31":[-5963.28,46.55],"5-63-15":[-6244.65,423.39],"4-31-7":[-6244.65,523.86],"3-15-3":[-9079.48,2329.59],"2-7-1":[-9079.48,4766.85],"1-3-0":[-9889.98,7512.84],"6-127-32":[-5882.89,50.53],"6-127-33":[-6530.92,57.98],"5-63-16":[-6671.64,66],"6-127-34":[-6610.51,69.75],"6-127-35":[-6659.17,86.05],"5-63-17":[-6659.17,95.02],"4-31-8":[-6671.64,1181.19],"6-127-36":[-6695.83,104.68],"6-127-37":[-5931.51,1069.23],"5-63-18":[-6695.83,1069.23],"6-127-38":[-5463.07,1371.15],"6-127-39":[-5548.25,108.66],"5-63-19":[-5548.25,1371.15],"4-31-9":[-6695.83,1371.15],"3-15-4":[-9233.31,2387.59],"6-127-40":[-6217.08,103.15],"6-127-41":[-6232.24,98.56],"5-63-20":[-6264.23,107.99],"6-127-42":[-6540.92,94.48],"6-127-43":[-5834.93,91.71],"5-63-21":[-6540.92,96.7],"4-31-10":[-6540.92,131.97],"6-127-44":[-5276.76,83.16],"6-127-45":[-5718.98,1759.88],"5-63-22":[-5718.98,2784.98],"6-127-46":[-6872.58,42.6],"6-127-47":[-7215.56,30.55],"5-63-23":[-7215.56,1743.24],"4-31-11":[-7577.65,3719.73],"3-15-5":[-8565.41,3719.73],"2-7-2":[-10883.73,5227.39],"6-127-48":[-6546.41,37.42],"6-127-49":[-7350.29,351.39],"5-63-24":[-7350.29,351.39],"6-127-50":[-7318.33,1130.9],"6-127-51":[-4299.75,-28.67],"5-63-25":[-7355,1130.9],"4-31-12":[-7742.5,2290.2],"6-127-52":[-4544.67,-37.45],"6-127-53":[-3726.9,-44.71],"5-63-26":[-4544.67,418.22],"6-127-54":[-175.46,962.23],"6-127-55":[-117.07,1527.58],"5-63-27":[-175.46,1527.58],"4-31-13":[-4544.67,2328.88],"3-15-6":[-10312.48,4714.21],"6-127-56":[-123.45,1789.28],"6-127-57":[-123.93,639.49],"5-63-28":[-123.93,1789.28],"6-127-58":[-1148.1,-47.82],"6-127-59":[-1910.34,-53.65],"5-63-29":[-2268.14,-39.61],"4-31-14":[-2437.77,3544.4],"6-127-60":[-2503.26,-48.22],"6-127-61":[-2903.07,1201.67],"5-63-30":[-3105.89,3164.9],"6-127-62":[-3966.1,3227.47],"6-127-63":[-4341.65,3092.98],"5-63-31":[-4341.65,4009.42],"4-31-15":[-4341.65,4009.42],"3-15-7":[-4362.3,4324.92],"2-7-3":[-10853.54,4714.21],"1-3-1":[-10883.73,7274.95],"0-1-0":[-10883.73,8777.15]} diff --git a/app/plot_app/static/cesium/Build/Cesium/Cesium.js b/app/plot_app/static/cesium/Build/Cesium/Cesium.js index da4e19e2d..c0c3030e4 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Cesium.js +++ b/app/plot_app/static/cesium/Build/Cesium/Cesium.js @@ -1,371 +1,12311 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** - * @license almond 0.3.3 Copyright jQuery Foundation and other contributors. - * Released under MIT license, http://github.com/requirejs/almond/LICENSE - */ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -// Copyright 2012 Google Inc., Apache 2.0 license. - -/** -@license -tween.js - https://github.com/sole/tween.js - -Copyright (c) 2010-2012 Tween.js authors. - -Easing equations Copyright (c) 2001 Robert Penner http://robertpenner.com/easing/ - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in -all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN -THE SOFTWARE. -*/ - -/*! - * protobuf.js v6.7.0 (c) 2016, Daniel Wirtz - * Compiled Wed, 22 Mar 2017 17:30:26 UTC - * Licensed under the BSD-3-Clause License - * see: https://github.com/dcodeIO/protobuf.js for details - */ - -/** - * Dictionary of provider id to copyright strings. - * @type {Object} - * @default {} - */ - -/** - @license - fontmetrics.js - https://github.com/Pomax/fontmetrics.js - - Copyright (C) 2011 by Mike "Pomax" Kamermans - - Permission is hereby granted, free of charge, to any person obtaining a copy - of this software and associated documentation files (the "Software"), to deal - in the Software without restriction, including without limitation the rights - to use, copy, modify, merge, publish, distribute, sublicense, and/or sell - copies of the Software, and to permit persons to whom the Software is - furnished to do so, subject to the following conditions: - - The above copyright notice and this permission notice shall be included in - all copies or substantial portions of the Software. - - THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR - IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, - FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE - AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER - LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, - OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN - THE SOFTWARE. -**/ - -/** -@license -topojson - https://github.com/mbostock/topojson - -Copyright (c) 2012, Michael Bostock -All rights reserved. - -Redistribution and use in source and binary forms, with or without -modification, are permitted provided that the following conditions are met: - -* Redistributions of source code must retain the above copyright notice, this - list of conditions and the following disclaimer. - -* Redistributions in binary form must reproduce the above copyright notice, - this list of conditions and the following disclaimer in the documentation - and/or other materials provided with the distribution. - -* The name Michael Bostock may not be used to endorse or promote products - derived from this software without specific prior written permission. - -THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" -AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE -IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE -DISCLAIMED. IN NO EVENT SHALL MICHAEL BOSTOCK BE LIABLE FOR ANY DIRECT, -INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, -BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, -DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY -OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING -NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, -EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/*! - * Autolinker.js - * 0.17.1 - * - * Copyright(c) 2015 Gregory Jacobs - * MIT Licensed. http://www.opensource.org/licenses/mit-license.php - * - * https://github.com/gregjacobs/Autolinker.js - */ - -/** -@license - Copyright (c) 2013 Gildas Lormeau. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the distribution. - - 3. The names of the authors may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, - INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -**/ - /** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var Cesium=(()=>{var NCe=Object.create;var U9=Object.defineProperty;var kCe=Object.getOwnPropertyDescriptor;var UCe=Object.getOwnPropertyNames;var DCe=Object.getPrototypeOf,BCe=Object.prototype.hasOwnProperty;var D9=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var bl=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),OCe=(e,t)=>{for(var n in t)U9(e,n,{get:t[n],enumerable:!0})},Tq=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of UCe(t))!BCe.call(e,o)&&o!==n&&U9(e,o,{get:()=>t[o],enumerable:!(i=kCe(t,o))||i.enumerable});return e};var T=(e,t,n)=>(n=e!=null?NCe(DCe(e)):{},Tq(t||!e||!e.__esModule?U9(n,"default",{value:e,enumerable:!0}):n,e)),YCe=e=>Tq(U9({},"__esModule",{value:!0}),e);var S=bl(()=>{globalThis.CESIUM_WORKERS=atob("dmFyIENlc2l1bVdvcmtlcnM9KCgpPT57dmFyIFlTPU9iamVjdC5jcmVhdGU7dmFyIEJsPU9iamVjdC5kZWZpbmVQcm9wZXJ0eTt2YXIgJFM9T2JqZWN0LmdldE93blByb3BlcnR5RGVzY3JpcHRvcjt2YXIgWlM9T2JqZWN0LmdldE93blByb3BlcnR5TmFtZXM7dmFyIFFTPU9iamVjdC5nZXRQcm90b3R5cGVPZixKUz1PYmplY3QucHJvdG90eXBlLmhhc093blByb3BlcnR5O3ZhciBwcj0odD0+dHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6dHlwZW9mIFByb3h5PCJ1Ij9uZXcgUHJveHkodCx7Z2V0OihlLG4pPT4odHlwZW9mIHJlcXVpcmU8InUiP3JlcXVpcmU6ZSlbbl19KTp0KShmdW5jdGlvbih0KXtpZih0eXBlb2YgcmVxdWlyZTwidSIpcmV0dXJuIHJlcXVpcmUuYXBwbHkodGhpcyxhcmd1bWVudHMpO3Rocm93IEVycm9yKCdEeW5hbWljIHJlcXVpcmUgb2YgIicrdCsnIiBpcyBub3Qgc3VwcG9ydGVkJyl9KSxsMT10PT5lPT57dmFyIG49dFtlXTtpZihuKXJldHVybiBuKCk7dGhyb3cgbmV3IEVycm9yKCJNb2R1bGUgbm90IGZvdW5kIGluIGJ1bmRsZTogIitlKX07dmFyIFo9KHQsZSk9PigpPT4odCYmKGU9dCh0PTApKSxlKTt2YXIgWG49KHQsZSk9PigpPT4oZXx8dCgoZT17ZXhwb3J0czp7fX0pLmV4cG9ydHMsZSksZS5leHBvcnRzKSxkZT0odCxlKT0+e2Zvcih2YXIgbiBpbiBlKUJsKHQsbix7Z2V0OmVbbl0sZW51bWVyYWJsZTohMH0pfSxwMT0odCxlLG4sbyk9PntpZihlJiZ0eXBlb2YgZT09Im9iamVjdCJ8fHR5cGVvZiBlPT0iZnVuY3Rpb24iKWZvcihsZXQgciBvZiBaUyhlKSkhSlMuY2FsbCh0LHIpJiZyIT09biYmQmwodCxyLHtnZXQ6KCk9PmVbcl0sZW51bWVyYWJsZTohKG89JFMoZSxyKSl8fG8uZW51bWVyYWJsZX0pO3JldHVybiB0fTt2YXIgZHI9KHQsZSxuKT0+KG49dCE9bnVsbD9ZUyhRUyh0KSk6e30scDEoZXx8IXR8fCF0Ll9fZXNNb2R1bGU/QmwobiwiZGVmYXVsdCIse3ZhbHVlOnQsZW51bWVyYWJsZTohMH0pOm4sdCkpLHRDPXQ9PnAxKEJsKHt9LCJfX2VzTW9kdWxlIix7dmFsdWU6ITB9KSx0KTtmdW5jdGlvbiBlQyh0KXtyZXR1cm4gdCE9bnVsbH12YXIgaCxmdD1aKCgpPT57aD1lQ30pO2Z1bmN0aW9uIFZzKHQpe3RoaXMubmFtZT0iRGV2ZWxvcGVyRXJyb3IiLHRoaXMubWVzc2FnZT10O2xldCBlO3RyeXt0aHJvdyBuZXcgRXJyb3J9Y2F0Y2gobil7ZT1uLnN0YWNrfXRoaXMuc3RhY2s9ZX12YXIgRixIdD1aKCgpPT57ZnQoKTtoKE9iamVjdC5jcmVhdGUpJiYoVnMucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoRXJyb3IucHJvdG90eXBlKSxWcy5wcm90b3R5cGUuY29uc3RydWN0b3I9VnMpO1ZzLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe2xldCB0PWAke3RoaXMubmFtZX06ICR7dGhpcy5tZXNzYWdlfWA7cmV0dXJuIGgodGhpcy5zdGFjaykmJih0Kz1gCiR7dGhpcy5zdGFjay50b1N0cmluZygpfWApLHR9O1ZzLnRocm93SW5zdGFudGlhdGlvbkVycm9yPWZ1bmN0aW9uKCl7dGhyb3cgbmV3IFZzKCJUaGlzIGZ1bmN0aW9uIGRlZmluZXMgYW4gaW50ZXJmYWNlIGFuZCBzaG91bGQgbm90IGJlIGNhbGxlZCBkaXJlY3RseS4iKX07Rj1Wc30pO2Z1bmN0aW9uIG5DKHQpe3JldHVybmAke3R9IGlzIHJlcXVpcmVkLCBhY3R1YWwgdmFsdWUgd2FzIHVuZGVmaW5lZGB9ZnVuY3Rpb24gemModCxlLG4pe3JldHVybmBFeHBlY3RlZCAke259IHRvIGJlIHR5cGVvZiAke2V9LCBhY3R1YWwgdHlwZW9mIHdhcyAke3R9YH12YXIgWW4seSxYdD1aKCgpPT57ZnQoKTtIdCgpO1luPXt9O1luLnR5cGVPZj17fTtZbi5kZWZpbmVkPWZ1bmN0aW9uKHQsZSl7aWYoIWgoZSkpdGhyb3cgbmV3IEYobkModCkpfTtZbi50eXBlT2YuZnVuYz1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiBlIT0iZnVuY3Rpb24iKXRocm93IG5ldyBGKHpjKHR5cGVvZiBlLCJmdW5jdGlvbiIsdCkpfTtZbi50eXBlT2Yuc3RyaW5nPWZ1bmN0aW9uKHQsZSl7aWYodHlwZW9mIGUhPSJzdHJpbmciKXRocm93IG5ldyBGKHpjKHR5cGVvZiBlLCJzdHJpbmciLHQpKX07WW4udHlwZU9mLm51bWJlcj1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiBlIT0ibnVtYmVyIil0aHJvdyBuZXcgRih6Yyh0eXBlb2YgZSwibnVtYmVyIix0KSl9O1luLnR5cGVPZi5udW1iZXIubGVzc1RoYW49ZnVuY3Rpb24odCxlLG4pe2lmKFluLnR5cGVPZi5udW1iZXIodCxlKSxlPj1uKXRocm93IG5ldyBGKGBFeHBlY3RlZCAke3R9IHRvIGJlIGxlc3MgdGhhbiAke259LCBhY3R1YWwgdmFsdWUgd2FzICR7ZX1gKX07WW4udHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzPWZ1bmN0aW9uKHQsZSxuKXtpZihZbi50eXBlT2YubnVtYmVyKHQsZSksZT5uKXRocm93IG5ldyBGKGBFeHBlY3RlZCAke3R9IHRvIGJlIGxlc3MgdGhhbiBvciBlcXVhbCB0byAke259LCBhY3R1YWwgdmFsdWUgd2FzICR7ZX1gKX07WW4udHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbj1mdW5jdGlvbih0LGUsbil7aWYoWW4udHlwZU9mLm51bWJlcih0LGUpLGU8PW4pdGhyb3cgbmV3IEYoYEV4cGVjdGVkICR7dH0gdG8gYmUgZ3JlYXRlciB0aGFuICR7bn0sIGFjdHVhbCB2YWx1ZSB3YXMgJHtlfWApfTtZbi50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHM9ZnVuY3Rpb24odCxlLG4pe2lmKFluLnR5cGVPZi5udW1iZXIodCxlKSxlPG4pdGhyb3cgbmV3IEYoYEV4cGVjdGVkICR7dH0gdG8gYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvICR7bn0sIGFjdHVhbCB2YWx1ZSB3YXMgJHtlfWApfTtZbi50eXBlT2Yub2JqZWN0PWZ1bmN0aW9uKHQsZSl7aWYodHlwZW9mIGUhPSJvYmplY3QiKXRocm93IG5ldyBGKHpjKHR5cGVvZiBlLCJvYmplY3QiLHQpKX07WW4udHlwZU9mLmJvb2w9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgZSE9ImJvb2xlYW4iKXRocm93IG5ldyBGKHpjKHR5cGVvZiBlLCJib29sZWFuIix0KSl9O1luLnR5cGVPZi5iaWdpbnQ9ZnVuY3Rpb24odCxlKXtpZih0eXBlb2YgZSE9ImJpZ2ludCIpdGhyb3cgbmV3IEYoemModHlwZW9mIGUsImJpZ2ludCIsdCkpfTtZbi50eXBlT2YubnVtYmVyLmVxdWFscz1mdW5jdGlvbih0LGUsbixvKXtpZihZbi50eXBlT2YubnVtYmVyKHQsbiksWW4udHlwZU9mLm51bWJlcihlLG8pLG4hPT1vKXRocm93IG5ldyBGKGAke3R9IG11c3QgYmUgZXF1YWwgdG8gJHtlfSwgdGhlIGFjdHVhbCB2YWx1ZXMgYXJlICR7bn0gYW5kICR7b31gKX07eT1Zbn0pO2Z1bmN0aW9uIGQxKHQsZSl7cmV0dXJuIHQ/P2V9dmFyIHgsSXQ9WigoKT0+e2QxLkVNUFRZX09CSkVDVD1PYmplY3QuZnJlZXplKHt9KTt4PWQxfSk7dmFyIGgxPVhuKChXVixtMSk9Pnt2YXIgUmk9ZnVuY3Rpb24odCl7dD09bnVsbCYmKHQ9bmV3IERhdGUoKS5nZXRUaW1lKCkpLHRoaXMuTj02MjQsdGhpcy5NPTM5Nyx0aGlzLk1BVFJJWF9BPTI1Njc0ODM2MTUsdGhpcy5VUFBFUl9NQVNLPTIxNDc0ODM2NDgsdGhpcy5MT1dFUl9NQVNLPTIxNDc0ODM2NDcsdGhpcy5tdD1uZXcgQXJyYXkodGhpcy5OKSx0aGlzLm10aT10aGlzLk4rMSx0LmNvbnN0cnVjdG9yPT1BcnJheT90aGlzLmluaXRfYnlfYXJyYXkodCx0Lmxlbmd0aCk6dGhpcy5pbml0X3NlZWQodCl9O1JpLnByb3RvdHlwZS5pbml0X3NlZWQ9ZnVuY3Rpb24odCl7Zm9yKHRoaXMubXRbMF09dD4+PjAsdGhpcy5tdGk9MTt0aGlzLm10aTx0aGlzLk47dGhpcy5tdGkrKyl7dmFyIHQ9dGhpcy5tdFt0aGlzLm10aS0xXV50aGlzLm10W3RoaXMubXRpLTFdPj4+MzA7dGhpcy5tdFt0aGlzLm10aV09KCgodCY0Mjk0OTAxNzYwKT4+PjE2KSoxODEyNDMzMjUzPDwxNikrKHQmNjU1MzUpKjE4MTI0MzMyNTMrdGhpcy5tdGksdGhpcy5tdFt0aGlzLm10aV0+Pj49MH19O1JpLnByb3RvdHlwZS5pbml0X2J5X2FycmF5PWZ1bmN0aW9uKHQsZSl7dmFyIG4sbyxyO2Zvcih0aGlzLmluaXRfc2VlZCgxOTY1MDIxOCksbj0xLG89MCxyPXRoaXMuTj5lP3RoaXMuTjplO3I7ci0tKXt2YXIgaT10aGlzLm10W24tMV1edGhpcy5tdFtuLTFdPj4+MzA7dGhpcy5tdFtuXT0odGhpcy5tdFtuXV4oKChpJjQyOTQ5MDE3NjApPj4+MTYpKjE2NjQ1MjU8PDE2KSsoaSY2NTUzNSkqMTY2NDUyNSkrdFtvXStvLHRoaXMubXRbbl0+Pj49MCxuKyssbysrLG4+PXRoaXMuTiYmKHRoaXMubXRbMF09dGhpcy5tdFt0aGlzLk4tMV0sbj0xKSxvPj1lJiYobz0wKX1mb3Iocj10aGlzLk4tMTtyO3ItLSl7dmFyIGk9dGhpcy5tdFtuLTFdXnRoaXMubXRbbi0xXT4+PjMwO3RoaXMubXRbbl09KHRoaXMubXRbbl1eKCgoaSY0Mjk0OTAxNzYwKT4+PjE2KSoxNTY2MDgzOTQxPDwxNikrKGkmNjU1MzUpKjE1NjYwODM5NDEpLW4sdGhpcy5tdFtuXT4+Pj0wLG4rKyxuPj10aGlzLk4mJih0aGlzLm10WzBdPXRoaXMubXRbdGhpcy5OLTFdLG49MSl9dGhpcy5tdFswXT0yMTQ3NDgzNjQ4fTtSaS5wcm90b3R5cGUucmFuZG9tX2ludD1mdW5jdGlvbigpe3ZhciB0LGU9bmV3IEFycmF5KDAsdGhpcy5NQVRSSVhfQSk7aWYodGhpcy5tdGk+PXRoaXMuTil7dmFyIG47Zm9yKHRoaXMubXRpPT10aGlzLk4rMSYmdGhpcy5pbml0X3NlZWQoNTQ4OSksbj0wO248dGhpcy5OLXRoaXMuTTtuKyspdD10aGlzLm10W25dJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W24rMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbbl09dGhpcy5tdFtuK3RoaXMuTV1edD4+PjFeZVt0JjFdO2Zvcig7bjx0aGlzLk4tMTtuKyspdD10aGlzLm10W25dJnRoaXMuVVBQRVJfTUFTS3x0aGlzLm10W24rMV0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbbl09dGhpcy5tdFtuKyh0aGlzLk0tdGhpcy5OKV1edD4+PjFeZVt0JjFdO3Q9dGhpcy5tdFt0aGlzLk4tMV0mdGhpcy5VUFBFUl9NQVNLfHRoaXMubXRbMF0mdGhpcy5MT1dFUl9NQVNLLHRoaXMubXRbdGhpcy5OLTFdPXRoaXMubXRbdGhpcy5NLTFdXnQ+Pj4xXmVbdCYxXSx0aGlzLm10aT0wfXJldHVybiB0PXRoaXMubXRbdGhpcy5tdGkrK10sdF49dD4+PjExLHRePXQ8PDcmMjYzNjkyODY0MCx0Xj10PDwxNSY0MDIyNzMwNzUyLHRePXQ+Pj4xOCx0Pj4+MH07UmkucHJvdG90eXBlLnJhbmRvbV9pbnQzMT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKT4+PjF9O1JpLnByb3RvdHlwZS5yYW5kb21faW5jbD1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk1KX07UmkucHJvdG90eXBlLnJhbmRvbT1mdW5jdGlvbigpe3JldHVybiB0aGlzLnJhbmRvbV9pbnQoKSooMS80Mjk0OTY3Mjk2KX07UmkucHJvdG90eXBlLnJhbmRvbV9leGNsPWZ1bmN0aW9uKCl7cmV0dXJuKHRoaXMucmFuZG9tX2ludCgpKy41KSooMS80Mjk0OTY3Mjk2KX07UmkucHJvdG90eXBlLnJhbmRvbV9sb25nPWZ1bmN0aW9uKCl7dmFyIHQ9dGhpcy5yYW5kb21faW50KCk+Pj41LGU9dGhpcy5yYW5kb21faW50KCk+Pj42O3JldHVybih0KjY3MTA4ODY0K2UpKigxLzkwMDcxOTkyNTQ3NDA5OTIpfTttMS5leHBvcnRzPVJpfSk7dmFyIE9tLHh0LFVsLF8xLE0sV3Q9WigoKT0+e09tPWRyKGgxKCksMSk7WHQoKTtJdCgpO2Z0KCk7SHQoKTt4dD17fTt4dC5FUFNJTE9OMT0uMTt4dC5FUFNJTE9OMj0uMDE7eHQuRVBTSUxPTjM9LjAwMTt4dC5FUFNJTE9OND0xZS00O3h0LkVQU0lMT041PTFlLTU7eHQuRVBTSUxPTjY9MWUtNjt4dC5FUFNJTE9ONz0xZS03O3h0LkVQU0lMT044PTFlLTg7eHQuRVBTSUxPTjk9MWUtOTt4dC5FUFNJTE9OMTA9MWUtMTA7eHQuRVBTSUxPTjExPTFlLTExO3h0LkVQU0lMT04xMj0xZS0xMjt4dC5FUFNJTE9OMTM9MWUtMTM7eHQuRVBTSUxPTjE0PTFlLTE0O3h0LkVQU0lMT04xNT0xZS0xNTt4dC5FUFNJTE9OMTY9MWUtMTY7eHQuRVBTSUxPTjE3PTFlLTE3O3h0LkVQU0lMT04xOD0xZS0xODt4dC5FUFNJTE9OMTk9MWUtMTk7eHQuRVBTSUxPTjIwPTFlLTIwO3h0LkVQU0lMT04yMT0xZS0yMTt4dC5HUkFWSVRBVElPTkFMUEFSQU1FVEVSPTM5ODYwMDQ0MThlNTt4dC5TT0xBUl9SQURJVVM9Njk1NWU1O3h0LkxVTkFSX1JBRElVUz0xNzM3NDAwO3h0LlNJWFRZX0ZPVVJfS0lMT0JZVEVTPTY0KjEwMjQ7eHQuRk9VUl9HSUdBQllURVM9NCoxMDI0KjEwMjQqMTAyNDt4dC5zaWduPXgoTWF0aC5zaWduLGZ1bmN0aW9uKGUpe3JldHVybiBlPStlLGU9PT0wfHxlIT09ZT9lOmU+MD8xOi0xfSk7eHQuc2lnbk5vdFplcm89ZnVuY3Rpb24odCl7cmV0dXJuIHQ8MD8tMToxfTt4dC50b1NOb3JtPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGU9eChlLDI1NSksTWF0aC5yb3VuZCgoeHQuY2xhbXAodCwtMSwxKSouNSsuNSkqZSl9O3h0LmZyb21TTm9ybT1mdW5jdGlvbih0LGUpe3JldHVybiBlPXgoZSwyNTUpLHh0LmNsYW1wKHQsMCxlKS9lKjItMX07eHQubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj1NYXRoLm1heChuLWUsMCksbj09PTA/MDp4dC5jbGFtcCgodC1lKS9uLDAsMSl9O3h0LnNpbmg9eChNYXRoLnNpbmgsZnVuY3Rpb24oZSl7cmV0dXJuKE1hdGguZXhwKGUpLU1hdGguZXhwKC1lKSkvMn0pO3h0LmNvc2g9eChNYXRoLmNvc2gsZnVuY3Rpb24oZSl7cmV0dXJuKE1hdGguZXhwKGUpK01hdGguZXhwKC1lKSkvMn0pO3h0LmxlcnA9ZnVuY3Rpb24odCxlLG4pe3JldHVybigxLW4pKnQrbiplfTt4dC5QST1NYXRoLlBJO3h0Lk9ORV9PVkVSX1BJPTEvTWF0aC5QSTt4dC5QSV9PVkVSX1RXTz1NYXRoLlBJLzI7eHQuUElfT1ZFUl9USFJFRT1NYXRoLlBJLzM7eHQuUElfT1ZFUl9GT1VSPU1hdGguUEkvNDt4dC5QSV9PVkVSX1NJWD1NYXRoLlBJLzY7eHQuVEhSRUVfUElfT1ZFUl9UV089MypNYXRoLlBJLzI7eHQuVFdPX1BJPTIqTWF0aC5QSTt4dC5PTkVfT1ZFUl9UV09fUEk9MS8oMipNYXRoLlBJKTt4dC5SQURJQU5TX1BFUl9ERUdSRUU9TWF0aC5QSS8xODA7eHQuREVHUkVFU19QRVJfUkFESUFOPTE4MC9NYXRoLlBJO3h0LlJBRElBTlNfUEVSX0FSQ1NFQ09ORD14dC5SQURJQU5TX1BFUl9ERUdSRUUvMzYwMDt4dC50b1JhZGlhbnM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImRlZ3JlZXMgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQqeHQuUkFESUFOU19QRVJfREVHUkVFfTt4dC50b0RlZ3JlZXM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJhZGlhbnMgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQqeHQuREVHUkVFU19QRVJfUkFESUFOfTt4dC5jb252ZXJ0TG9uZ2l0dWRlUmFuZ2U9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFuZ2xlIGlzIHJlcXVpcmVkLiIpO2xldCBlPXh0LlRXT19QSSxuPXQtTWF0aC5mbG9vcih0L2UpKmU7cmV0dXJuIG48LU1hdGguUEk/bitlOm4+PU1hdGguUEk/bi1lOm59O3h0LmNsYW1wVG9MYXRpdHVkZVJhbmdlPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4geHQuY2xhbXAodCwtMSp4dC5QSV9PVkVSX1RXTyx4dC5QSV9PVkVSX1RXTyl9O3h0Lm5lZ2F0aXZlUGlUb1BpPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdD49LXh0LlBJJiZ0PD14dC5QST90Onh0Lnplcm9Ub1R3b1BpKHQreHQuUEkpLXh0LlBJfTt4dC56ZXJvVG9Ud29QaT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiYW5nbGUgaXMgcmVxdWlyZWQuIik7aWYodD49MCYmdDw9eHQuVFdPX1BJKXJldHVybiB0O2xldCBlPXh0Lm1vZCh0LHh0LlRXT19QSSk7cmV0dXJuIE1hdGguYWJzKGUpPHh0LkVQU0lMT04xNCYmTWF0aC5hYnModCk+eHQuRVBTSUxPTjE0P3h0LlRXT19QSTplfTt4dC5tb2Q9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigibSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigibiBpcyByZXF1aXJlZC4iKTtpZihlPT09MCl0aHJvdyBuZXcgRigiZGl2aXNvciBjYW5ub3QgYmUgMC4iKTtyZXR1cm4geHQuc2lnbih0KT09PXh0LnNpZ24oZSkmJk1hdGguYWJzKHQpPE1hdGguYWJzKGUpP3Q6KHQlZStlKSVlfTt4dC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJsZWZ0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJyaWdodCBpcyByZXF1aXJlZC4iKTtuPXgobiwwKSxvPXgobyxuKTtsZXQgcj1NYXRoLmFicyh0LWUpO3JldHVybiByPD1vfHxyPD1uKk1hdGgubWF4KE1hdGguYWJzKHQpLE1hdGguYWJzKGUpKX07eHQubGVzc1RoYW49ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJmaXJzdCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigic2Vjb25kIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJhYnNvbHV0ZUVwc2lsb24gaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQtZTwtbn07eHQubGVzc1RoYW5PckVxdWFscz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImZpcnN0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJzZWNvbmQgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoImFic29sdXRlRXBzaWxvbiBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdC1lPG59O3h0LmdyZWF0ZXJUaGFuPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigiZmlyc3QgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoInNlY29uZCBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigiYWJzb2x1dGVFcHNpbG9uIGlzIHJlcXVpcmVkLiIpO3JldHVybiB0LWU+bn07eHQuZ3JlYXRlclRoYW5PckVxdWFscz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImZpcnN0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJzZWNvbmQgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoImFic29sdXRlRXBzaWxvbiBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdC1lPi1ufTtVbD1bMV07eHQuZmFjdG9yaWFsPWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT0ibnVtYmVyInx8dDwwKXRocm93IG5ldyBGKCJBIG51bWJlciBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMCBpcyByZXF1aXJlZC4iKTtsZXQgZT1VbC5sZW5ndGg7aWYodD49ZSl7bGV0IG49VWxbZS0xXTtmb3IobGV0IG89ZTtvPD10O28rKyl7bGV0IHI9bipvO1VsLnB1c2gociksbj1yfX1yZXR1cm4gVWxbdF19O3h0LmluY3JlbWVudFdyYXA9ZnVuY3Rpb24odCxlLG4pe2lmKG49eChuLDApLCFoKHQpKXRocm93IG5ldyBGKCJuIGlzIHJlcXVpcmVkLiIpO2lmKGU8PW4pdGhyb3cgbmV3IEYoIm1heGltdW1WYWx1ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBtaW5pbXVtVmFsdWUuIik7cmV0dXJuKyt0LHQ+ZSYmKHQ9biksdH07eHQuaXNQb3dlck9mVHdvPWZ1bmN0aW9uKHQpe2lmKHR5cGVvZiB0IT0ibnVtYmVyInx8dDwwfHx0PjQyOTQ5NjcyOTUpdGhyb3cgbmV3IEYoIkEgbnVtYmVyIGJldHdlZW4gMCBhbmQgKDJeMzIpLTEgaXMgcmVxdWlyZWQuIik7cmV0dXJuIHQhPT0wJiYodCZ0LTEpPT09MH07eHQubmV4dFBvd2VyT2ZUd289ZnVuY3Rpb24odCl7aWYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ+MjE0NzQ4MzY0OCl0aHJvdyBuZXcgRigiQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAyXjMxIGlzIHJlcXVpcmVkLiIpO3JldHVybi0tdCx0fD10Pj4xLHR8PXQ+PjIsdHw9dD4+NCx0fD10Pj44LHR8PXQ+PjE2LCsrdCx0fTt4dC5wcmV2aW91c1Bvd2VyT2ZUd289ZnVuY3Rpb24odCl7aWYodHlwZW9mIHQhPSJudW1iZXIifHx0PDB8fHQ+NDI5NDk2NzI5NSl0aHJvdyBuZXcgRigiQSBudW1iZXIgYmV0d2VlbiAwIGFuZCAoMl4zMiktMSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdHw9dD4+MSx0fD10Pj4yLHR8PXQ+PjQsdHw9dD4+OCx0fD10Pj4xNix0fD10Pj4zMix0PSh0Pj4+MCktKHQ+Pj4xKSx0fTt4dC5jbGFtcD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm51bWJlcigidmFsdWUiLHQpLHkudHlwZU9mLm51bWJlcigibWluIixlKSx5LnR5cGVPZi5udW1iZXIoIm1heCIsbiksdDxlP2U6dD5uP246dH07XzE9bmV3IE9tLmRlZmF1bHQ7eHQuc2V0UmFuZG9tTnVtYmVyU2VlZD1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigic2VlZCBpcyByZXF1aXJlZC4iKTtfMT1uZXcgT20uZGVmYXVsdCh0KX07eHQubmV4dFJhbmRvbU51bWJlcj1mdW5jdGlvbigpe3JldHVybiBfMS5yYW5kb20oKX07eHQucmFuZG9tQmV0d2Vlbj1mdW5jdGlvbih0LGUpe3JldHVybiB4dC5uZXh0UmFuZG9tTnVtYmVyKCkqKGUtdCkrdH07eHQuYWNvc0NsYW1wZWQ9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoInZhbHVlIGlzIHJlcXVpcmVkLiIpO3JldHVybiBNYXRoLmFjb3MoeHQuY2xhbXAodCwtMSwxKSl9O3h0LmFzaW5DbGFtcGVkPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2YWx1ZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gTWF0aC5hc2luKHh0LmNsYW1wKHQsLTEsMSkpfTt4dC5jaG9yZExlbmd0aD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhbmdsZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigicmFkaXVzIGlzIHJlcXVpcmVkLiIpO3JldHVybiAyKmUqTWF0aC5zaW4odCouNSl9O3h0LmxvZ0Jhc2U9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigibnVtYmVyIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJiYXNlIGlzIHJlcXVpcmVkLiIpO3JldHVybiBNYXRoLmxvZyh0KS9NYXRoLmxvZyhlKX07eHQuY2JydD14KE1hdGguY2JydCxmdW5jdGlvbihlKXtsZXQgbj1NYXRoLnBvdyhNYXRoLmFicyhlKSwuMzMzMzMzMzMzMzMzMzMzMyk7cmV0dXJuIGU8MD8tbjpufSk7eHQubG9nMj14KE1hdGgubG9nMixmdW5jdGlvbihlKXtyZXR1cm4gTWF0aC5sb2coZSkqTWF0aC5MT0cyRX0pO3h0LmZvZz1mdW5jdGlvbih0LGUpe2xldCBuPXQqZTtyZXR1cm4gMS1NYXRoLmV4cCgtKG4qbikpfTt4dC5mYXN0QXBwcm94aW1hdGVBdGFuPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoIngiLHQpLHQqKC0uMTc4NCpNYXRoLmFicyh0KS0uMDY2Myp0KnQrMS4wMzAxKX07eHQuZmFzdEFwcHJveGltYXRlQXRhbjI9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoIngiLHQpLHkudHlwZU9mLm51bWJlcigieSIsZSk7bGV0IG4sbz1NYXRoLmFicyh0KTtuPU1hdGguYWJzKGUpO2xldCByPU1hdGgubWF4KG8sbik7bj1NYXRoLm1pbihvLG4pO2xldCBpPW4vcjtpZihpc05hTihpKSl0aHJvdyBuZXcgRigiZWl0aGVyIHggb3IgeSBtdXN0IGJlIG5vbnplcm8iKTtyZXR1cm4gbz14dC5mYXN0QXBwcm94aW1hdGVBdGFuKGkpLG89TWF0aC5hYnMoZSk+TWF0aC5hYnModCk/eHQuUElfT1ZFUl9UV08tbzpvLG89dDwwP3h0LlBJLW86byxvPWU8MD8tbzpvLG99O009eHR9KTtmdW5jdGlvbiBidCh0LGUsbil7dGhpcy54PXgodCwwKSx0aGlzLnk9eChlLDApLHRoaXMuej14KG4sMCl9dmFyIGtsLHkxLFZsLEVtLG9DLG1yLGpjLGEsRnQ9WigoKT0+e1h0KCk7SXQoKTtmdCgpO0h0KCk7V3QoKTtidC5mcm9tU3BoZXJpY2FsPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmljYWwiLHQpLGgoZSl8fChlPW5ldyBidCk7bGV0IG49dC5jbG9jayxvPXQuY29uZSxyPXgodC5tYWduaXR1ZGUsMSksaT1yKk1hdGguc2luKG8pO3JldHVybiBlLng9aSpNYXRoLmNvcyhuKSxlLnk9aSpNYXRoLnNpbihuKSxlLno9cipNYXRoLmNvcyhvKSxlfTtidC5mcm9tRWxlbWVudHM9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIGgobyk/KG8ueD10LG8ueT1lLG8uej1uLG8pOm5ldyBidCh0LGUsbil9O2J0LmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS54PXQueCxlLnk9dC55LGUuej10LnosZSk6bmV3IGJ0KHQueCx0LnksdC56KX07YnQuZnJvbUNhcnRlc2lhbjQ9YnQuY2xvbmU7YnQucGFja2VkTGVuZ3RoPTM7YnQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LngsZVtuKytdPXQueSxlW25dPXQueixlfTtidC51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgYnQpLG4ueD10W2UrK10sbi55PXRbZSsrXSxuLno9dFtlXSxufTtidC5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImFycmF5Iix0KTtsZXQgbj10Lmxlbmd0aCxvPW4qMztpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEYoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiAzIGVsZW1lbnRzIik7ZS5sZW5ndGghPT1vJiYoZS5sZW5ndGg9byl9Zm9yKGxldCByPTA7cjxuOysrcilidC5wYWNrKHRbcl0sZSxyKjMpO3JldHVybiBlfTtidC51bnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgiYXJyYXkiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJhcnJheS5sZW5ndGgiLHQubGVuZ3RoLDMpLHQubGVuZ3RoJTMhPT0wKXRocm93IG5ldyBGKCJhcnJheSBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMuIik7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uLzM6ZT1uZXcgQXJyYXkobi8zKTtmb3IobGV0IG89MDtvPG47bys9Myl7bGV0IHI9by8zO2Vbcl09YnQudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07YnQuZnJvbUFycmF5PWJ0LnVucGFjaztidC5tYXhpbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5tYXgodC54LHQueSx0LnopfTtidC5taW5pbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5taW4odC54LHQueSx0LnopfTtidC5taW5pbXVtQnlDb21wb25lbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImZpcnN0Iix0KSx5LnR5cGVPZi5vYmplY3QoInNlY29uZCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD1NYXRoLm1pbih0LngsZS54KSxuLnk9TWF0aC5taW4odC55LGUueSksbi56PU1hdGgubWluKHQueixlLnopLG59O2J0Lm1heGltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWF4KHQueCxlLngpLG4ueT1NYXRoLm1heCh0LnksZS55KSxuLno9TWF0aC5tYXgodC56LGUueiksbn07YnQuY2xhbXA9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS50eXBlT2Yub2JqZWN0KCJtaW4iLGUpLHkudHlwZU9mLm9iamVjdCgibWF4IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyk7bGV0IHI9TS5jbGFtcCh0LngsZS54LG4ueCksaT1NLmNsYW1wKHQueSxlLnksbi55KSxzPU0uY2xhbXAodC56LGUueixuLnopO3JldHVybiBvLng9cixvLnk9aSxvLno9cyxvfTtidC5tYWduaXR1ZGVTcXVhcmVkPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksdC54KnQueCt0LnkqdC55K3Queip0Lnp9O2J0Lm1hZ25pdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KGJ0Lm1hZ25pdHVkZVNxdWFyZWQodCkpfTtrbD1uZXcgYnQ7YnQuZGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSxidC5zdWJ0cmFjdCh0LGUsa2wpLGJ0Lm1hZ25pdHVkZShrbCl9O2J0LmRpc3RhbmNlU3F1YXJlZD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGJ0LnN1YnRyYWN0KHQsZSxrbCksYnQubWFnbml0dWRlU3F1YXJlZChrbCl9O2J0Lm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49YnQubWFnbml0dWRlKHQpO2lmKGUueD10LngvbixlLnk9dC55L24sZS56PXQuei9uLGlzTmFOKGUueCl8fGlzTmFOKGUueSl8fGlzTmFOKGUueikpdGhyb3cgbmV3IEYoIm5vcm1hbGl6ZWQgcmVzdWx0IGlzIG5vdCBhIG51bWJlciIpO3JldHVybiBlfTtidC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx0LngqZS54K3QueSplLnkrdC56KmUuen07YnQubXVsdGlwbHlDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLngsbi55PXQueSplLnksbi56PXQueiplLnosbn07YnQuZGl2aWRlQ29tcG9uZW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngvZS54LG4ueT10LnkvZS55LG4uej10LnovZS56LG59O2J0LmFkZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngrZS54LG4ueT10LnkrZS55LG4uej10LnorZS56LG59O2J0LnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC1lLngsbi55PXQueS1lLnksbi56PXQuei1lLnosbn07YnQubXVsdGlwbHlCeVNjYWxhcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxhciIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngqZSxuLnk9dC55KmUsbi56PXQueiplLG59O2J0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxuLno9dC56L2Usbn07YnQubmVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PS10LngsZS55PS10LnksZS56PS10LnosZX07YnQuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PU1hdGguYWJzKHQueCksZS55PU1hdGguYWJzKHQueSksZS56PU1hdGguYWJzKHQueiksZX07eTE9bmV3IGJ0O2J0LmxlcnA9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgic3RhcnQiLHQpLHkudHlwZU9mLm9iamVjdCgiZW5kIixlKSx5LnR5cGVPZi5udW1iZXIoInQiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxidC5tdWx0aXBseUJ5U2NhbGFyKGUsbix5MSksbz1idC5tdWx0aXBseUJ5U2NhbGFyKHQsMS1uLG8pLGJ0LmFkZCh5MSxvLG8pfTtWbD1uZXcgYnQsRW09bmV3IGJ0O2J0LmFuZ2xlQmV0d2Vlbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksYnQubm9ybWFsaXplKHQsVmwpLGJ0Lm5vcm1hbGl6ZShlLEVtKTtsZXQgbj1idC5kb3QoVmwsRW0pLG89YnQubWFnbml0dWRlKGJ0LmNyb3NzKFZsLEVtLFZsKSk7cmV0dXJuIE1hdGguYXRhbjIobyxuKX07b0M9bmV3IGJ0O2J0Lm1vc3RPcnRob2dvbmFsQXhpcz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49YnQubm9ybWFsaXplKHQsb0MpO3JldHVybiBidC5hYnMobixuKSxuLng8PW4ueT9uLng8PW4uej9lPWJ0LmNsb25lKGJ0LlVOSVRfWCxlKTplPWJ0LmNsb25lKGJ0LlVOSVRfWixlKTpuLnk8PW4uej9lPWJ0LmNsb25lKGJ0LlVOSVRfWSxlKTplPWJ0LmNsb25lKGJ0LlVOSVRfWixlKSxlfTtidC5wcm9qZWN0VmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImEiLHQpLHkuZGVmaW5lZCgiYiIsZSkseS5kZWZpbmVkKCJyZXN1bHQiLG4pO2xldCBvPWJ0LmRvdCh0LGUpL2J0LmRvdChlLGUpO3JldHVybiBidC5tdWx0aXBseUJ5U2NhbGFyKGUsbyxuKX07YnQuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0Lng9PT1lLngmJnQueT09PWUueSYmdC56PT09ZS56fTtidC5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQueD09PWVbbl0mJnQueT09PWVbbisxXSYmdC56PT09ZVtuKzJdfTtidC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmTS5lcXVhbHNFcHNpbG9uKHQueCxlLngsbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueSxlLnksbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueixlLnosbixvKX07YnQuY3Jvc3M9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXQueCxyPXQueSxpPXQueixzPWUueCxmPWUueSx1PWUueixjPXIqdS1pKmYsbD1pKnMtbyp1LHA9bypmLXIqcztyZXR1cm4gbi54PWMsbi55PWwsbi56PXAsbn07YnQubWlkcG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9KHQueCtlLngpKi41LG4ueT0odC55K2UueSkqLjUsbi56PSh0LnorZS56KSouNSxufTtidC5mcm9tRGVncmVlcz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoImxvbmdpdHVkZSIsdCkseS50eXBlT2YubnVtYmVyKCJsYXRpdHVkZSIsZSksdD1NLnRvUmFkaWFucyh0KSxlPU0udG9SYWRpYW5zKGUpLGJ0LmZyb21SYWRpYW5zKHQsZSxuLG8scil9O21yPW5ldyBidCxqYz1uZXcgYnQ7YnQuX2VsbGlwc29pZFJhZGlpU3F1YXJlZD1uZXcgYnQoNjM3ODEzNyo2Mzc4MTM3LDYzNzgxMzcqNjM3ODEzNyw2MzU2NzUyMzE0MjQ1MTc5ZS05KjYzNTY3NTIzMTQyNDUxNzllLTkpO2J0LmZyb21SYWRpYW5zPWZ1bmN0aW9uKHQsZSxuLG8scil7eS50eXBlT2YubnVtYmVyKCJsb25naXR1ZGUiLHQpLHkudHlwZU9mLm51bWJlcigibGF0aXR1ZGUiLGUpLG49eChuLDApO2xldCBpPWgobyk/by5yYWRpaVNxdWFyZWQ6YnQuX2VsbGlwc29pZFJhZGlpU3F1YXJlZCxzPU1hdGguY29zKGUpO21yLng9cypNYXRoLmNvcyh0KSxtci55PXMqTWF0aC5zaW4odCksbXIuej1NYXRoLnNpbihlKSxtcj1idC5ub3JtYWxpemUobXIsbXIpLGJ0Lm11bHRpcGx5Q29tcG9uZW50cyhpLG1yLGpjKTtsZXQgZj1NYXRoLnNxcnQoYnQuZG90KG1yLGpjKSk7cmV0dXJuIGpjPWJ0LmRpdmlkZUJ5U2NhbGFyKGpjLGYsamMpLG1yPWJ0Lm11bHRpcGx5QnlTY2FsYXIobXIsbixtciksaChyKXx8KHI9bmV3IGJ0KSxidC5hZGQoamMsbXIscil9O2J0LmZyb21EZWdyZWVzQXJyYXk9ZnVuY3Rpb24odCxlLG4pe2lmKHkuZGVmaW5lZCgiY29vcmRpbmF0ZXMiLHQpLHQubGVuZ3RoPDJ8fHQubGVuZ3RoJTIhPT0wKXRocm93IG5ldyBGKCJ0aGUgbnVtYmVyIG9mIGNvb3JkaW5hdGVzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyIGFuZCBhdCBsZWFzdCAyIik7bGV0IG89dC5sZW5ndGg7aChuKT9uLmxlbmd0aD1vLzI6bj1uZXcgQXJyYXkoby8yKTtmb3IobGV0IHI9MDtyPG87cis9Mil7bGV0IGk9dFtyXSxzPXRbcisxXSxmPXIvMjtuW2ZdPWJ0LmZyb21EZWdyZWVzKGkscywwLGUsbltmXSl9cmV0dXJuIG59O2J0LmZyb21SYWRpYW5zQXJyYXk9ZnVuY3Rpb24odCxlLG4pe2lmKHkuZGVmaW5lZCgiY29vcmRpbmF0ZXMiLHQpLHQubGVuZ3RoPDJ8fHQubGVuZ3RoJTIhPT0wKXRocm93IG5ldyBGKCJ0aGUgbnVtYmVyIG9mIGNvb3JkaW5hdGVzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyIGFuZCBhdCBsZWFzdCAyIik7bGV0IG89dC5sZW5ndGg7aChuKT9uLmxlbmd0aD1vLzI6bj1uZXcgQXJyYXkoby8yKTtmb3IobGV0IHI9MDtyPG87cis9Mil7bGV0IGk9dFtyXSxzPXRbcisxXSxmPXIvMjtuW2ZdPWJ0LmZyb21SYWRpYW5zKGkscywwLGUsbltmXSl9cmV0dXJuIG59O2J0LmZyb21EZWdyZWVzQXJyYXlIZWlnaHRzPWZ1bmN0aW9uKHQsZSxuKXtpZih5LmRlZmluZWQoImNvb3JkaW5hdGVzIix0KSx0Lmxlbmd0aDwzfHx0Lmxlbmd0aCUzIT09MCl0aHJvdyBuZXcgRigidGhlIG51bWJlciBvZiBjb29yZGluYXRlcyBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMyBhbmQgYXQgbGVhc3QgMyIpO2xldCBvPXQubGVuZ3RoO2gobik/bi5sZW5ndGg9by8zOm49bmV3IEFycmF5KG8vMyk7Zm9yKGxldCByPTA7cjxvO3IrPTMpe2xldCBpPXRbcl0scz10W3IrMV0sZj10W3IrMl0sdT1yLzM7blt1XT1idC5mcm9tRGVncmVlcyhpLHMsZixlLG5bdV0pfXJldHVybiBufTtidC5mcm9tUmFkaWFuc0FycmF5SGVpZ2h0cz1mdW5jdGlvbih0LGUsbil7aWYoeS5kZWZpbmVkKCJjb29yZGluYXRlcyIsdCksdC5sZW5ndGg8M3x8dC5sZW5ndGglMyE9PTApdGhyb3cgbmV3IEYoInRoZSBudW1iZXIgb2YgY29vcmRpbmF0ZXMgbXVzdCBiZSBhIG11bHRpcGxlIG9mIDMgYW5kIGF0IGxlYXN0IDMiKTtsZXQgbz10Lmxlbmd0aDtoKG4pP24ubGVuZ3RoPW8vMzpuPW5ldyBBcnJheShvLzMpO2ZvcihsZXQgcj0wO3I8bztyKz0zKXtsZXQgaT10W3JdLHM9dFtyKzFdLGY9dFtyKzJdLHU9ci8zO25bdV09YnQuZnJvbVJhZGlhbnMoaSxzLGYsZSxuW3VdKX1yZXR1cm4gbn07YnQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBidCgwLDAsMCkpO2J0Lk9ORT1PYmplY3QuZnJlZXplKG5ldyBidCgxLDEsMSkpO2J0LlVOSVRfWD1PYmplY3QuZnJlZXplKG5ldyBidCgxLDAsMCkpO2J0LlVOSVRfWT1PYmplY3QuZnJlZXplKG5ldyBidCgwLDEsMCkpO2J0LlVOSVRfWj1PYmplY3QuZnJlZXplKG5ldyBidCgwLDAsMSkpO2J0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gYnQuY2xvbmUodGhpcyx0KX07YnQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gYnQuZXF1YWxzKHRoaXMsdCl9O2J0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gYnQuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07YnQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSwgJHt0aGlzLnp9KWB9O2E9YnR9KTtmdW5jdGlvbiBzQyh0LGUsbixvLHIpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJjYXJ0ZXNpYW4gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoIm9uZU92ZXJSYWRpaSBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigib25lT3ZlclJhZGlpU3F1YXJlZCBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgRigiY2VudGVyVG9sZXJhbmNlU3F1YXJlZCBpcyByZXF1aXJlZC4iKTtsZXQgaT10Lngscz10LnksZj10LnosdT1lLngsYz1lLnksbD1lLnoscD1pKmkqdSp1LGQ9cypzKmMqYyxtPWYqZipsKmwsXz1wK2QrbSxnPU1hdGguc3FydCgxL18pLGI9YS5tdWx0aXBseUJ5U2NhbGFyKHQsZyxyQyk7aWYoXzxvKXJldHVybiBpc0Zpbml0ZShnKT9hLmNsb25lKGIscik6dm9pZCAwO2xldCB3PW4ueCxPPW4ueSxFPW4ueixUPWlDO1QueD1iLngqdyoyLFQueT1iLnkqTyoyLFQuej1iLnoqRSoyO2xldCBDPSgxLWcpKmEubWFnbml0dWRlKHQpLyguNSphLm1hZ25pdHVkZShUKSksTj0wLEksRCx2LEwsVSxBLFMsUCxCLGosSDtkb3tDLT1OLHY9MS8oMStDKncpLEw9MS8oMStDKk8pLFU9MS8oMStDKkUpLEE9dip2LFM9TCpMLFA9VSpVLEI9QSp2LGo9UypMLEg9UCpVLEk9cCpBK2QqUyttKlAtMSxEPXAqQip3K2QqaipPK20qSCpFO2xldCBrPS0yKkQ7Tj1JL2t9d2hpbGUoTWF0aC5hYnMoSSk+TS5FUFNJTE9OMTIpO3JldHVybiBoKHIpPyhyLng9aSp2LHIueT1zKkwsci56PWYqVSxyKTpuZXcgYShpKnYscypMLGYqVSl9dmFyIHJDLGlDLEdsLFJtPVooKCk9PntGdCgpO2Z0KCk7SHQoKTtXdCgpO3JDPW5ldyBhLGlDPW5ldyBhO0dsPXNDfSk7ZnVuY3Rpb24gX24odCxlLG4pe3RoaXMubG9uZ2l0dWRlPXgodCwwKSx0aGlzLmxhdGl0dWRlPXgoZSwwKSx0aGlzLmhlaWdodD14KG4sMCl9dmFyIGNDLGFDLGZDLGN0LEllPVooKCk9PntGdCgpO1h0KCk7SXQoKTtmdCgpO1d0KCk7Um0oKTtfbi5mcm9tUmFkaWFucz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4geS50eXBlT2YubnVtYmVyKCJsb25naXR1ZGUiLHQpLHkudHlwZU9mLm51bWJlcigibGF0aXR1ZGUiLGUpLG49eChuLDApLGgobyk/KG8ubG9uZ2l0dWRlPXQsby5sYXRpdHVkZT1lLG8uaGVpZ2h0PW4sbyk6bmV3IF9uKHQsZSxuKX07X24uZnJvbURlZ3JlZXM9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigibG9uZ2l0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIoImxhdGl0dWRlIixlKSx0PU0udG9SYWRpYW5zKHQpLGU9TS50b1JhZGlhbnMoZSksX24uZnJvbVJhZGlhbnModCxlLG4sbyl9O2NDPW5ldyBhLGFDPW5ldyBhLGZDPW5ldyBhO19uLl9lbGxpcHNvaWRPbmVPdmVyUmFkaWk9bmV3IGEoMS82Mzc4MTM3LDEvNjM3ODEzNywxLzYzNTY3NTIzMTQyNDUxNzllLTkpO19uLl9lbGxpcHNvaWRPbmVPdmVyUmFkaWlTcXVhcmVkPW5ldyBhKDEvKDYzNzgxMzcqNjM3ODEzNyksMS8oNjM3ODEzNyo2Mzc4MTM3KSwxLyg2MzU2NzUyMzE0MjQ1MTc5ZS05KjYzNTY3NTIzMTQyNDUxNzllLTkpKTtfbi5fZWxsaXBzb2lkQ2VudGVyVG9sZXJhbmNlU3F1YXJlZD1NLkVQU0lMT04xO19uLmZyb21DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlLG4pe2xldCBvPWgoZSk/ZS5vbmVPdmVyUmFkaWk6X24uX2VsbGlwc29pZE9uZU92ZXJSYWRpaSxyPWgoZSk/ZS5vbmVPdmVyUmFkaWlTcXVhcmVkOl9uLl9lbGxpcHNvaWRPbmVPdmVyUmFkaWlTcXVhcmVkLGk9aChlKT9lLl9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkOl9uLl9lbGxpcHNvaWRDZW50ZXJUb2xlcmFuY2VTcXVhcmVkLHM9R2wodCxvLHIsaSxhQyk7aWYoIWgocykpcmV0dXJuO2xldCBmPWEubXVsdGlwbHlDb21wb25lbnRzKHMscixjQyk7Zj1hLm5vcm1hbGl6ZShmLGYpO2xldCB1PWEuc3VidHJhY3QodCxzLGZDKSxjPU1hdGguYXRhbjIoZi55LGYueCksbD1NYXRoLmFzaW4oZi56KSxwPU0uc2lnbihhLmRvdCh1LHQpKSphLm1hZ25pdHVkZSh1KTtyZXR1cm4gaChuKT8obi5sb25naXR1ZGU9YyxuLmxhdGl0dWRlPWwsbi5oZWlnaHQ9cCxuKTpuZXcgX24oYyxsLHApfTtfbi50b0NhcnRlc2lhbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiY2FydG9ncmFwaGljIix0KSxhLmZyb21SYWRpYW5zKHQubG9uZ2l0dWRlLHQubGF0aXR1ZGUsdC5oZWlnaHQsZSxuKX07X24uY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLmxvbmdpdHVkZT10LmxvbmdpdHVkZSxlLmxhdGl0dWRlPXQubGF0aXR1ZGUsZS5oZWlnaHQ9dC5oZWlnaHQsZSk6bmV3IF9uKHQubG9uZ2l0dWRlLHQubGF0aXR1ZGUsdC5oZWlnaHQpfTtfbi5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQubG9uZ2l0dWRlPT09ZS5sb25naXR1ZGUmJnQubGF0aXR1ZGU9PT1lLmxhdGl0dWRlJiZ0LmhlaWdodD09PWUuaGVpZ2h0fTtfbi5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKHQubG9uZ2l0dWRlLWUubG9uZ2l0dWRlKTw9biYmTWF0aC5hYnModC5sYXRpdHVkZS1lLmxhdGl0dWRlKTw9biYmTWF0aC5hYnModC5oZWlnaHQtZS5oZWlnaHQpPD1ufTtfbi5aRVJPPU9iamVjdC5mcmVlemUobmV3IF9uKDAsMCwwKSk7X24ucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBfbi5jbG9uZSh0aGlzLHQpfTtfbi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBfbi5lcXVhbHModGhpcyx0KX07X24ucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gX24uZXF1YWxzRXBzaWxvbih0aGlzLHQsZSl9O19uLnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybmAoJHt0aGlzLmxvbmdpdHVkZX0sICR7dGhpcy5sYXRpdHVkZX0sICR7dGhpcy5oZWlnaHR9KWB9O2N0PV9ufSk7ZnVuY3Rpb24ganQodCxlKXt0aGlzLng9eCh0LDApLHRoaXMueT14KGUsMCl9dmFyIHpsLGcxLEExLGIxLHVDLHR0LFVlPVooKCk9PntYdCgpO0l0KCk7ZnQoKTtIdCgpO1d0KCk7anQuZnJvbUVsZW1lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gaChuKT8obi54PXQsbi55PWUsbik6bmV3IGp0KHQsZSl9O2p0LmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS54PXQueCxlLnk9dC55LGUpOm5ldyBqdCh0LngsdC55KX07anQuZnJvbUNhcnRlc2lhbjM9anQuY2xvbmU7anQuZnJvbUNhcnRlc2lhbjQ9anQuY2xvbmU7anQucGFja2VkTGVuZ3RoPTI7anQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LngsZVtuXT10LnksZX07anQudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IGp0KSxuLng9dFtlKytdLG4ueT10W2VdLG59O2p0LnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiYXJyYXkiLHQpO2xldCBuPXQubGVuZ3RoLG89bioyO2lmKCFoKGUpKWU9bmV3IEFycmF5KG8pO2Vsc2V7aWYoIUFycmF5LmlzQXJyYXkoZSkmJmUubGVuZ3RoIT09byl0aHJvdyBuZXcgRigiSWYgcmVzdWx0IGlzIGEgdHlwZWQgYXJyYXksIGl0IG11c3QgaGF2ZSBleGFjdGx5IGFycmF5Lmxlbmd0aCAqIDIgZWxlbWVudHMiKTtlLmxlbmd0aCE9PW8mJihlLmxlbmd0aD1vKX1mb3IobGV0IHI9MDtyPG47KytyKWp0LnBhY2sodFtyXSxlLHIqMik7cmV0dXJuIGV9O2p0LnVucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoeS5kZWZpbmVkKCJhcnJheSIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImFycmF5Lmxlbmd0aCIsdC5sZW5ndGgsMiksdC5sZW5ndGglMiE9PTApdGhyb3cgbmV3IEYoImFycmF5IGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgMi4iKTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW4vMjplPW5ldyBBcnJheShuLzIpO2ZvcihsZXQgbz0wO288bjtvKz0yKXtsZXQgcj1vLzI7ZVtyXT1qdC51bnBhY2sodCxvLGVbcl0pfXJldHVybiBlfTtqdC5mcm9tQXJyYXk9anQudW5wYWNrO2p0Lm1heGltdW1Db21wb25lbnQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSxNYXRoLm1heCh0LngsdC55KX07anQubWluaW11bUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLE1hdGgubWluKHQueCx0LnkpfTtqdC5taW5pbXVtQnlDb21wb25lbnQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImZpcnN0Iix0KSx5LnR5cGVPZi5vYmplY3QoInNlY29uZCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD1NYXRoLm1pbih0LngsZS54KSxuLnk9TWF0aC5taW4odC55LGUueSksbn07anQubWF4aW11bUJ5Q29tcG9uZW50PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJmaXJzdCIsdCkseS50eXBlT2Yub2JqZWN0KCJzZWNvbmQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9TWF0aC5tYXgodC54LGUueCksbi55PU1hdGgubWF4KHQueSxlLnkpLG59O2p0LmNsYW1wPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkudHlwZU9mLm9iamVjdCgibWluIixlKSx5LnR5cGVPZi5vYmplY3QoIm1heCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pO2xldCByPU0uY2xhbXAodC54LGUueCxuLngpLGk9TS5jbGFtcCh0LnksZS55LG4ueSk7cmV0dXJuIG8ueD1yLG8ueT1pLG99O2p0Lm1hZ25pdHVkZVNxdWFyZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx0LngqdC54K3QueSp0Lnl9O2p0Lm1hZ25pdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTWF0aC5zcXJ0KGp0Lm1hZ25pdHVkZVNxdWFyZWQodCkpfTt6bD1uZXcganQ7anQuZGlzdGFuY2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSxqdC5zdWJ0cmFjdCh0LGUsemwpLGp0Lm1hZ25pdHVkZSh6bCl9O2p0LmRpc3RhbmNlU3F1YXJlZD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLGp0LnN1YnRyYWN0KHQsZSx6bCksanQubWFnbml0dWRlU3F1YXJlZCh6bCl9O2p0Lm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49anQubWFnbml0dWRlKHQpO2lmKGUueD10LngvbixlLnk9dC55L24saXNOYU4oZS54KXx8aXNOYU4oZS55KSl0aHJvdyBuZXcgRigibm9ybWFsaXplZCByZXN1bHQgaXMgbm90IGEgbnVtYmVyIik7cmV0dXJuIGV9O2p0LmRvdD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHQueCplLngrdC55KmUueX07anQuY3Jvc3M9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx0LngqZS55LXQueSplLnh9O2p0Lm11bHRpcGx5Q29tcG9uZW50cz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngqZS54LG4ueT10LnkqZS55LG59O2p0LmRpdmlkZUNvbXBvbmVudHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54L2UueCxuLnk9dC55L2UueSxufTtqdC5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54K2UueCxuLnk9dC55K2UueSxufTtqdC5zdWJ0cmFjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ueD10LngtZS54LG4ueT10LnktZS55LG59O2p0Lm11bHRpcGx5QnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54KmUsbi55PXQueSplLG59O2p0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxufTtqdC5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9LXQueCxlLnk9LXQueSxlfTtqdC5hYnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9TWF0aC5hYnModC54KSxlLnk9TWF0aC5hYnModC55KSxlfTtnMT1uZXcganQ7anQubGVycD1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzdGFydCIsdCkseS50eXBlT2Yub2JqZWN0KCJlbmQiLGUpLHkudHlwZU9mLm51bWJlcigidCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLGp0Lm11bHRpcGx5QnlTY2FsYXIoZSxuLGcxKSxvPWp0Lm11bHRpcGx5QnlTY2FsYXIodCwxLW4sbyksanQuYWRkKGcxLG8sbyl9O0ExPW5ldyBqdCxiMT1uZXcganQ7anQuYW5nbGVCZXR3ZWVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksanQubm9ybWFsaXplKHQsQTEpLGp0Lm5vcm1hbGl6ZShlLGIxKSxNLmFjb3NDbGFtcGVkKGp0LmRvdChBMSxiMSkpfTt1Qz1uZXcganQ7anQubW9zdE9ydGhvZ29uYWxBeGlzPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1qdC5ub3JtYWxpemUodCx1Qyk7cmV0dXJuIGp0LmFicyhuLG4pLG4ueDw9bi55P2U9anQuY2xvbmUoanQuVU5JVF9YLGUpOmU9anQuY2xvbmUoanQuVU5JVF9ZLGUpLGV9O2p0LmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmdC54PT09ZS54JiZ0Lnk9PT1lLnl9O2p0LmVxdWFsc0FycmF5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdC54PT09ZVtuXSYmdC55PT09ZVtuKzFdfTtqdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmTS5lcXVhbHNFcHNpbG9uKHQueCxlLngsbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueSxlLnksbixvKX07anQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBqdCgwLDApKTtqdC5PTkU9T2JqZWN0LmZyZWV6ZShuZXcganQoMSwxKSk7anQuVU5JVF9YPU9iamVjdC5mcmVlemUobmV3IGp0KDEsMCkpO2p0LlVOSVRfWT1PYmplY3QuZnJlZXplKG5ldyBqdCgwLDEpKTtqdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIGp0LmNsb25lKHRoaXMsdCl9O2p0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGp0LmVxdWFscyh0aGlzLHQpfTtqdC5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGp0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUsbil9O2p0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybmAoJHt0aGlzLnh9LCAke3RoaXMueX0pYH07dHQ9anR9KTtmdW5jdGlvbiBUMSh0LGUsbixvKXtlPXgoZSwwKSxuPXgobiwwKSxvPXgobywwKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygieCIsZSwwKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygieSIsbiwwKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygieiIsbywwKSx0Ll9yYWRpaT1uZXcgYShlLG4sbyksdC5fcmFkaWlTcXVhcmVkPW5ldyBhKGUqZSxuKm4sbypvKSx0Ll9yYWRpaVRvVGhlRm91cnRoPW5ldyBhKGUqZSplKmUsbipuKm4qbixvKm8qbypvKSx0Ll9vbmVPdmVyUmFkaWk9bmV3IGEoZT09PTA/MDoxL2Usbj09PTA/MDoxL24sbz09PTA/MDoxL28pLHQuX29uZU92ZXJSYWRpaVNxdWFyZWQ9bmV3IGEoZT09PTA/MDoxLyhlKmUpLG49PT0wPzA6MS8obipuKSxvPT09MD8wOjEvKG8qbykpLHQuX21pbmltdW1SYWRpdXM9TWF0aC5taW4oZSxuLG8pLHQuX21heGltdW1SYWRpdXM9TWF0aC5tYXgoZSxuLG8pLHQuX2NlbnRlclRvbGVyYW5jZVNxdWFyZWQ9TS5FUFNJTE9OMSx0Ll9yYWRpaVNxdWFyZWQueiE9PTAmJih0Ll9zcXVhcmVkWE92ZXJTcXVhcmVkWj10Ll9yYWRpaVNxdWFyZWQueC90Ll9yYWRpaVNxdWFyZWQueil9ZnVuY3Rpb24geGUodCxlLG4pe3RoaXMuX3JhZGlpPXZvaWQgMCx0aGlzLl9yYWRpaVNxdWFyZWQ9dm9pZCAwLHRoaXMuX3JhZGlpVG9UaGVGb3VydGg9dm9pZCAwLHRoaXMuX29uZU92ZXJSYWRpaT12b2lkIDAsdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZD12b2lkIDAsdGhpcy5fbWluaW11bVJhZGl1cz12b2lkIDAsdGhpcy5fbWF4aW11bVJhZGl1cz12b2lkIDAsdGhpcy5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZD12b2lkIDAsdGhpcy5fc3F1YXJlZFhPdmVyU3F1YXJlZFo9dm9pZCAwLFQxKHRoaXMsdCxlLG4pfWZ1bmN0aW9uIHcxKHQsZSxuKXt5LnR5cGVPZi5udW1iZXIoImEiLHQpLHkudHlwZU9mLm51bWJlcigiYiIsZSkseS50eXBlT2YuZnVuYygiZnVuYyIsbik7bGV0IG89LjUqKGUrdCkscj0uNSooZS10KSxpPTA7Zm9yKGxldCBzPTA7czw1O3MrKyl7bGV0IGY9cip5Q1tzXTtpKz1nQ1tzXSoobihvK2YpK24oby1mKSl9cmV0dXJuIGkqPXIsaX12YXIgbEMscEMsZEMsbUMsaEMsX0MseUMsZ0MsJCxadD1aKCgpPT57VWUoKTtGdCgpO0llKCk7WHQoKTtJdCgpO2Z0KCk7SHQoKTtXdCgpO1JtKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoeGUucHJvdG90eXBlLHtyYWRpaTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGlpfX0scmFkaWlTcXVhcmVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcmFkaWlTcXVhcmVkfX0scmFkaWlUb1RoZUZvdXJ0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGlpVG9UaGVGb3VydGh9fSxvbmVPdmVyUmFkaWk6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9vbmVPdmVyUmFkaWl9fSxvbmVPdmVyUmFkaWlTcXVhcmVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZH19LG1pbmltdW1SYWRpdXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9taW5pbXVtUmFkaXVzfX0sbWF4aW11bVJhZGl1czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX21heGltdW1SYWRpdXN9fX0pO3hlLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpcmV0dXJuO2xldCBuPXQuX3JhZGlpO3JldHVybiBoKGUpPyhhLmNsb25lKG4sZS5fcmFkaWkpLGEuY2xvbmUodC5fcmFkaWlTcXVhcmVkLGUuX3JhZGlpU3F1YXJlZCksYS5jbG9uZSh0Ll9yYWRpaVRvVGhlRm91cnRoLGUuX3JhZGlpVG9UaGVGb3VydGgpLGEuY2xvbmUodC5fb25lT3ZlclJhZGlpLGUuX29uZU92ZXJSYWRpaSksYS5jbG9uZSh0Ll9vbmVPdmVyUmFkaWlTcXVhcmVkLGUuX29uZU92ZXJSYWRpaVNxdWFyZWQpLGUuX21pbmltdW1SYWRpdXM9dC5fbWluaW11bVJhZGl1cyxlLl9tYXhpbXVtUmFkaXVzPXQuX21heGltdW1SYWRpdXMsZS5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZD10Ll9jZW50ZXJUb2xlcmFuY2VTcXVhcmVkLGUpOm5ldyB4ZShuLngsbi55LG4ueil9O3hlLmZyb21DYXJ0ZXNpYW4zPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGgoZSl8fChlPW5ldyB4ZSksaCh0KSYmVDEoZSx0LngsdC55LHQueiksZX07eGUuV0dTODQ9T2JqZWN0LmZyZWV6ZShuZXcgeGUoNjM3ODEzNyw2Mzc4MTM3LDYzNTY3NTIzMTQyNDUxNzllLTkpKTt4ZS5VTklUX1NQSEVSRT1PYmplY3QuZnJlZXplKG5ldyB4ZSgxLDEsMSkpO3hlLk1PT049T2JqZWN0LmZyZWV6ZShuZXcgeGUoTS5MVU5BUl9SQURJVVMsTS5MVU5BUl9SQURJVVMsTS5MVU5BUl9SQURJVVMpKTt4ZS5fZGVmYXVsdD14ZS5XR1M4NDtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh4ZSx7ZGVmYXVsdDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHhlLl9kZWZhdWx0fSxzZXQ6ZnVuY3Rpb24odCl7eS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseGUuX2RlZmF1bHQ9dCxhLl9lbGxpcHNvaWRSYWRpaVNxdWFyZWQ9dC5yYWRpaVNxdWFyZWQsY3QuX2VsbGlwc29pZE9uZU92ZXJSYWRpaT10Lm9uZU92ZXJSYWRpaSxjdC5fZWxsaXBzb2lkT25lT3ZlclJhZGlpU3F1YXJlZD10Lm9uZU92ZXJSYWRpaVNxdWFyZWQsY3QuX2VsbGlwc29pZENlbnRlclRvbGVyYW5jZVNxdWFyZWQ9dC5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZH19fSk7eGUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiB4ZS5jbG9uZSh0aGlzLHQpfTt4ZS5wYWNrZWRMZW5ndGg9YS5wYWNrZWRMZW5ndGg7eGUucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGEucGFjayh0Ll9yYWRpaSxlLG4pLGV9O3hlLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89YS51bnBhY2sodCxlKTtyZXR1cm4geGUuZnJvbUNhcnRlc2lhbjMobyxuKX07eGUucHJvdG90eXBlLmdlb2NlbnRyaWNTdXJmYWNlTm9ybWFsPWEubm9ybWFsaXplO3hlLnByb3RvdHlwZS5nZW9kZXRpY1N1cmZhY2VOb3JtYWxDYXJ0b2dyYXBoaWM9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImNhcnRvZ3JhcGhpYyIsdCk7bGV0IG49dC5sb25naXR1ZGUsbz10LmxhdGl0dWRlLHI9TWF0aC5jb3MobyksaT1yKk1hdGguY29zKG4pLHM9cipNYXRoLnNpbihuKSxmPU1hdGguc2luKG8pO3JldHVybiBoKGUpfHwoZT1uZXcgYSksZS54PWksZS55PXMsZS56PWYsYS5ub3JtYWxpemUoZSxlKX07eGUucHJvdG90eXBlLmdlb2RldGljU3VyZmFjZU5vcm1hbD1mdW5jdGlvbih0LGUpe2lmKHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSxpc05hTih0LngpfHxpc05hTih0LnkpfHxpc05hTih0LnopKXRocm93IG5ldyBGKCJjYXJ0ZXNpYW4gaGFzIGEgTmFOIGNvbXBvbmVudCIpO2lmKCFhLmVxdWFsc0Vwc2lsb24odCxhLlpFUk8sTS5FUFNJTE9OMTQpKXJldHVybiBoKGUpfHwoZT1uZXcgYSksZT1hLm11bHRpcGx5Q29tcG9uZW50cyh0LHRoaXMuX29uZU92ZXJSYWRpaVNxdWFyZWQsZSksYS5ub3JtYWxpemUoZSxlKX07bEM9bmV3IGEscEM9bmV3IGE7eGUucHJvdG90eXBlLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuPWZ1bmN0aW9uKHQsZSl7bGV0IG49bEMsbz1wQzt0aGlzLmdlb2RldGljU3VyZmFjZU5vcm1hbENhcnRvZ3JhcGhpYyh0LG4pLGEubXVsdGlwbHlDb21wb25lbnRzKHRoaXMuX3JhZGlpU3F1YXJlZCxuLG8pO2xldCByPU1hdGguc3FydChhLmRvdChuLG8pKTtyZXR1cm4gYS5kaXZpZGVCeVNjYWxhcihvLHIsbyksYS5tdWx0aXBseUJ5U2NhbGFyKG4sdC5oZWlnaHQsbiksaChlKXx8KGU9bmV3IGEpLGEuYWRkKG8sbixlKX07eGUucHJvdG90eXBlLmNhcnRvZ3JhcGhpY0FycmF5VG9DYXJ0ZXNpYW5BcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydG9ncmFwaGljcyIsdCk7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uOmU9bmV3IEFycmF5KG4pO2ZvcihsZXQgbz0wO288bjtvKyspZVtvXT10aGlzLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHRbb10sZVtvXSk7cmV0dXJuIGV9O2RDPW5ldyBhLG1DPW5ldyBhLGhDPW5ldyBhO3hlLnByb3RvdHlwZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYz1mdW5jdGlvbih0LGUpe2xldCBuPXRoaXMuc2NhbGVUb0dlb2RldGljU3VyZmFjZSh0LG1DKTtpZighaChuKSlyZXR1cm47bGV0IG89dGhpcy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobixkQykscj1hLnN1YnRyYWN0KHQsbixoQyksaT1NYXRoLmF0YW4yKG8ueSxvLngpLHM9TWF0aC5hc2luKG8ueiksZj1NLnNpZ24oYS5kb3Qocix0KSkqYS5tYWduaXR1ZGUocik7cmV0dXJuIGgoZSk/KGUubG9uZ2l0dWRlPWksZS5sYXRpdHVkZT1zLGUuaGVpZ2h0PWYsZSk6bmV3IGN0KGkscyxmKX07eGUucHJvdG90eXBlLmNhcnRlc2lhbkFycmF5VG9DYXJ0b2dyYXBoaWNBcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCk7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uOmU9bmV3IEFycmF5KG4pO2ZvcihsZXQgbz0wO288bjsrK28pZVtvXT10aGlzLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHRbb10sZVtvXSk7cmV0dXJuIGV9O3hlLnByb3RvdHlwZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEdsKHQsdGhpcy5fb25lT3ZlclJhZGlpLHRoaXMuX29uZU92ZXJSYWRpaVNxdWFyZWQsdGhpcy5fY2VudGVyVG9sZXJhbmNlU3F1YXJlZCxlKX07eGUucHJvdG90eXBlLnNjYWxlVG9HZW9jZW50cmljU3VyZmFjZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSxoKGUpfHwoZT1uZXcgYSk7bGV0IG49dC54LG89dC55LHI9dC56LGk9dGhpcy5fb25lT3ZlclJhZGlpU3F1YXJlZCxzPTEvTWF0aC5zcXJ0KG4qbippLngrbypvKmkueStyKnIqaS56KTtyZXR1cm4gYS5tdWx0aXBseUJ5U2NhbGFyKHQscyxlKX07eGUucHJvdG90eXBlLnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZT1mdW5jdGlvbih0LGUpe3JldHVybiBoKGUpfHwoZT1uZXcgYSksYS5tdWx0aXBseUNvbXBvbmVudHModCx0aGlzLl9vbmVPdmVyUmFkaWksZSl9O3hlLnByb3RvdHlwZS50cmFuc2Zvcm1Qb3NpdGlvbkZyb21TY2FsZWRTcGFjZT1mdW5jdGlvbih0LGUpe3JldHVybiBoKGUpfHwoZT1uZXcgYSksYS5tdWx0aXBseUNvbXBvbmVudHModCx0aGlzLl9yYWRpaSxlKX07eGUucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcz09PXR8fGgodCkmJmEuZXF1YWxzKHRoaXMuX3JhZGlpLHQuX3JhZGlpKX07eGUucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JhZGlpLnRvU3RyaW5nKCl9O3hlLnByb3RvdHlwZS5nZXRTdXJmYWNlTm9ybWFsSW50ZXJzZWN0aW9uV2l0aFpBeGlzPWZ1bmN0aW9uKHQsZSxuKXtpZih5LnR5cGVPZi5vYmplY3QoInBvc2l0aW9uIix0KSwhTS5lcXVhbHNFcHNpbG9uKHRoaXMuX3JhZGlpLngsdGhpcy5fcmFkaWkueSxNLkVQU0lMT04xNSkpdGhyb3cgbmV3IEYoIkVsbGlwc29pZCBtdXN0IGJlIGFuIGVsbGlwc29pZCBvZiByZXZvbHV0aW9uIChyYWRpaS54ID09IHJhZGlpLnkpIik7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuKCJFbGxpcHNvaWQucmFkaWkueiIsdGhpcy5fcmFkaWkueiwwKSxlPXgoZSwwKTtsZXQgbz10aGlzLl9zcXVhcmVkWE92ZXJTcXVhcmVkWjtpZihoKG4pfHwobj1uZXcgYSksbi54PTAsbi55PTAsbi56PXQueiooMS1vKSwhKE1hdGguYWJzKG4ueik+PXRoaXMuX3JhZGlpLnotZSkpcmV0dXJuIG59O19DPW5ldyBhO3hlLnByb3RvdHlwZS5nZXRMb2NhbEN1cnZhdHVyZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgic3VyZmFjZVBvc2l0aW9uIix0KSxoKGUpfHwoZT1uZXcgdHQpO2xldCBuPXRoaXMuZ2V0U3VyZmFjZU5vcm1hbEludGVyc2VjdGlvbldpdGhaQXhpcyh0LDAsX0MpLG89YS5kaXN0YW5jZSh0LG4pLHI9dGhpcy5taW5pbXVtUmFkaXVzKm8vdGhpcy5tYXhpbXVtUmFkaXVzKioyLGk9bypyKioyO3JldHVybiB0dC5mcm9tRWxlbWVudHMoMS9vLDEvaSxlKX07eUM9Wy4xNDg4NzQzMzg5ODE2MywuNDMzMzk1Mzk0MTI5MjUsLjY3OTQwOTU2ODI5OTAyLC44NjUwNjMzNjY2ODg5OCwuOTczOTA2NTI4NTE3MTcsMF0sZ0M9Wy4yOTU1MjQyMjQ3MTQ3NSwuMjY5MjY2NzE5MzA5OTksLjIxOTA4NjM2MjUxNTk4LC4xNDk0NTEzNDkxNTA1OCwuMDY2NjcxMzQ0MzA4Njg0LDBdO3hlLnByb3RvdHlwZS5zdXJmYWNlQXJlYT1mdW5jdGlvbih0KXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCk7bGV0IGU9dC53ZXN0LG49dC5lYXN0LG89dC5zb3V0aCxyPXQubm9ydGg7Zm9yKDtuPGU7KW4rPU0uVFdPX1BJO2xldCBpPXRoaXMuX3JhZGlpU3F1YXJlZCxzPWkueCxmPWkueSx1PWkueixjPXMqZjtyZXR1cm4gdzEobyxyLGZ1bmN0aW9uKGwpe2xldCBwPU1hdGguY29zKGwpLGQ9TWF0aC5zaW4obCk7cmV0dXJuIE1hdGguY29zKGwpKncxKGUsbixmdW5jdGlvbihtKXtsZXQgXz1NYXRoLmNvcyhtKSxnPU1hdGguc2luKG0pO3JldHVybiBNYXRoLnNxcnQoYypkKmQrdSooZipfKl8rcypnKmcpKnAqcCl9KX0pfTskPXhlfSk7ZnVuY3Rpb24gamwodCl7dGhpcy5fZWxsaXBzb2lkPXgodCwkLmRlZmF1bHQpLHRoaXMuX3NlbWltYWpvckF4aXM9dGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXM9MS90aGlzLl9zZW1pbWFqb3JBeGlzfXZhciBKbixTaT1aKCgpPT57RnQoKTtJZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoamwucHJvdG90eXBlLHtlbGxpcHNvaWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9fX0pO2psLnByb3RvdHlwZS5wcm9qZWN0PWZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5fc2VtaW1ham9yQXhpcyxvPXQubG9uZ2l0dWRlKm4scj10LmxhdGl0dWRlKm4saT10LmhlaWdodDtyZXR1cm4gaChlKT8oZS54PW8sZS55PXIsZS56PWksZSk6bmV3IGEobyxyLGkpfTtqbC5wcm90b3R5cGUudW5wcm9qZWN0PWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImNhcnRlc2lhbiBpcyByZXF1aXJlZCIpO2xldCBuPXRoaXMuX29uZU92ZXJTZW1pbWFqb3JBeGlzLG89dC54Km4scj10LnkqbixpPXQuejtyZXR1cm4gaChlKT8oZS5sb25naXR1ZGU9byxlLmxhdGl0dWRlPXIsZS5oZWlnaHQ9aSxlKTpuZXcgY3QobyxyLGkpfTtKbj1qbH0pO3ZhciBBQyxTbixrcz1aKCgpPT57QUM9e09VVFNJREU6LTEsSU5URVJTRUNUSU5HOjAsSU5TSURFOjF9LFNuPU9iamVjdC5mcmVlemUoQUMpfSk7ZnVuY3Rpb24gYkModCxlKXt0aGlzLnN0YXJ0PXgodCwwKSx0aGlzLnN0b3A9eChlLDApfXZhciBRcixIbD1aKCgpPT57SXQoKTtRcj1iQ30pO2Z1bmN0aW9uIFR0KHQsZSxuLG8scixpLHMsZix1KXt0aGlzWzBdPXgodCwwKSx0aGlzWzFdPXgobywwKSx0aGlzWzJdPXgocywwKSx0aGlzWzNdPXgoZSwwKSx0aGlzWzRdPXgociwwKSx0aGlzWzVdPXgoZiwwKSx0aGlzWzZdPXgobiwwKSx0aGlzWzddPXgoaSwwKSx0aGlzWzhdPXgodSwwKX1mdW5jdGlvbiBSQyh0KXtsZXQgZT0wO2ZvcihsZXQgbj0wO248OTsrK24pe2xldCBvPXRbbl07ZSs9bypvfXJldHVybiBNYXRoLnNxcnQoZSl9ZnVuY3Rpb24gU0ModCl7bGV0IGU9MDtmb3IobGV0IG49MDtuPDM7KytuKXtsZXQgbz10W1R0LmdldEVsZW1lbnRJbmRleCh4bVtuXSxDbVtuXSldO2UrPTIqbypvfXJldHVybiBNYXRoLnNxcnQoZSl9ZnVuY3Rpb24gQ0ModCxlKXtsZXQgbj1NLkVQU0lMT04xNSxvPTAscj0xO2ZvcihsZXQgYz0wO2M8MzsrK2Mpe2xldCBsPU1hdGguYWJzKHRbVHQuZ2V0RWxlbWVudEluZGV4KHhtW2NdLENtW2NdKV0pO2w+byYmKHI9YyxvPWwpfWxldCBpPTEscz0wLGY9Q21bcl0sdT14bVtyXTtpZihNYXRoLmFicyh0W1R0LmdldEVsZW1lbnRJbmRleCh1LGYpXSk+bil7bGV0IGM9dFtUdC5nZXRFbGVtZW50SW5kZXgodSx1KV0sbD10W1R0LmdldEVsZW1lbnRJbmRleChmLGYpXSxwPXRbVHQuZ2V0RWxlbWVudEluZGV4KHUsZildLGQ9KGMtbCkvMi9wLG07ZDwwP209LTEvKC1kK01hdGguc3FydCgxK2QqZCkpOm09MS8oZCtNYXRoLnNxcnQoMStkKmQpKSxpPTEvTWF0aC5zcXJ0KDErbSptKSxzPW0qaX1yZXR1cm4gZT1UdC5jbG9uZShUdC5JREVOVElUWSxlKSxlW1R0LmdldEVsZW1lbnRJbmRleChmLGYpXT1lW1R0LmdldEVsZW1lbnRJbmRleCh1LHUpXT1pLGVbVHQuZ2V0RWxlbWVudEluZGV4KHUsZildPXMsZVtUdC5nZXRFbGVtZW50SW5kZXgoZix1KV09LXMsZX12YXIgd0MsVEMsU20sTzEsT0MsRUMsQ20seG0scWwsRTEseEMsUSxCbj1aKCgpPT57RnQoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO1d0KCk7VHQucGFja2VkTGVuZ3RoPTk7VHQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10WzBdLGVbbisrXT10WzFdLGVbbisrXT10WzJdLGVbbisrXT10WzNdLGVbbisrXT10WzRdLGVbbisrXT10WzVdLGVbbisrXT10WzZdLGVbbisrXT10WzddLGVbbisrXT10WzhdLGV9O1R0LnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBUdCksblswXT10W2UrK10sblsxXT10W2UrK10sblsyXT10W2UrK10sblszXT10W2UrK10sbls0XT10W2UrK10sbls1XT10W2UrK10sbls2XT10W2UrK10sbls3XT10W2UrK10sbls4XT10W2UrK10sbn07VHQucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJhcnJheSIsdCk7bGV0IG49dC5sZW5ndGgsbz1uKjk7aWYoIWgoZSkpZT1uZXcgQXJyYXkobyk7ZWxzZXtpZighQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGghPT1vKXRocm93IG5ldyBGKCJJZiByZXN1bHQgaXMgYSB0eXBlZCBhcnJheSwgaXQgbXVzdCBoYXZlIGV4YWN0bHkgYXJyYXkubGVuZ3RoICogOSBlbGVtZW50cyIpO2UubGVuZ3RoIT09byYmKGUubGVuZ3RoPW8pfWZvcihsZXQgcj0wO3I8bjsrK3IpVHQucGFjayh0W3JdLGUscio5KTtyZXR1cm4gZX07VHQudW5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXtpZih5LmRlZmluZWQoImFycmF5Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiYXJyYXkubGVuZ3RoIix0Lmxlbmd0aCw5KSx0Lmxlbmd0aCU5IT09MCl0aHJvdyBuZXcgRigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA5LiIpO2xldCBuPXQubGVuZ3RoO2goZSk/ZS5sZW5ndGg9bi85OmU9bmV3IEFycmF5KG4vOSk7Zm9yKGxldCBvPTA7bzxuO28rPTkpe2xldCByPW8vOTtlW3JdPVR0LnVucGFjayh0LG8sZVtyXSl9cmV0dXJuIGV9O1R0LmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZSk6bmV3IFR0KHRbMF0sdFszXSx0WzZdLHRbMV0sdFs0XSx0WzddLHRbMl0sdFs1XSx0WzhdKX07VHQuZnJvbUFycmF5PVR0LnVucGFjaztUdC5mcm9tQ29sdW1uTWFqb3JBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlcyIsdCksVHQuY2xvbmUodCxlKX07VHQuZnJvbVJvd01ham9yQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJ2YWx1ZXMiLHQpLGgoZSk/KGVbMF09dFswXSxlWzFdPXRbM10sZVsyXT10WzZdLGVbM109dFsxXSxlWzRdPXRbNF0sZVs1XT10WzddLGVbNl09dFsyXSxlWzddPXRbNV0sZVs4XT10WzhdLGUpOm5ldyBUdCh0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSx0WzZdLHRbN10sdFs4XSl9O1R0LmZyb21RdWF0ZXJuaW9uPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KTtsZXQgbj10LngqdC54LG89dC54KnQueSxyPXQueCp0LnosaT10LngqdC53LHM9dC55KnQueSxmPXQueSp0LnosdT10LnkqdC53LGM9dC56KnQueixsPXQueip0LncscD10LncqdC53LGQ9bi1zLWMrcCxtPTIqKG8tbCksXz0yKihyK3UpLGc9MioobytsKSxiPS1uK3MtYytwLHc9MiooZi1pKSxPPTIqKHItdSksRT0yKihmK2kpLFQ9LW4tcytjK3A7cmV0dXJuIGgoZSk/KGVbMF09ZCxlWzFdPWcsZVsyXT1PLGVbM109bSxlWzRdPWIsZVs1XT1FLGVbNl09XyxlWzddPXcsZVs4XT1ULGUpOm5ldyBUdChkLG0sXyxnLGIsdyxPLEUsVCl9O1R0LmZyb21IZWFkaW5nUGl0Y2hSb2xsPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJoZWFkaW5nUGl0Y2hSb2xsIix0KTtsZXQgbj1NYXRoLmNvcygtdC5waXRjaCksbz1NYXRoLmNvcygtdC5oZWFkaW5nKSxyPU1hdGguY29zKHQucm9sbCksaT1NYXRoLnNpbigtdC5waXRjaCkscz1NYXRoLnNpbigtdC5oZWFkaW5nKSxmPU1hdGguc2luKHQucm9sbCksdT1uKm8sYz0tcipzK2YqaSpvLGw9ZipzK3IqaSpvLHA9bipzLGQ9cipvK2YqaSpzLG09LWYqbytyKmkqcyxfPS1pLGc9ZipuLGI9cipuO3JldHVybiBoKGUpPyhlWzBdPXUsZVsxXT1wLGVbMl09XyxlWzNdPWMsZVs0XT1kLGVbNV09ZyxlWzZdPWwsZVs3XT1tLGVbOF09YixlKTpuZXcgVHQodSxjLGwscCxkLG0sXyxnLGIpfTtUdC5mcm9tU2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsdCksaChlKT8oZVswXT10LngsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT10LnksZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT10LnosZSk6bmV3IFR0KHQueCwwLDAsMCx0LnksMCwwLDAsdC56KX07VHQuZnJvbVVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoInNjYWxlIix0KSxoKGUpPyhlWzBdPXQsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT10LGVbNV09MCxlWzZdPTAsZVs3XT0wLGVbOF09dCxlKTpuZXcgVHQodCwwLDAsMCx0LDAsMCwwLHQpfTtUdC5mcm9tQ3Jvc3NQcm9kdWN0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmVjdG9yIix0KSxoKGUpPyhlWzBdPTAsZVsxXT10LnosZVsyXT0tdC55LGVbM109LXQueixlWzRdPTAsZVs1XT10LngsZVs2XT10LnksZVs3XT0tdC54LGVbOF09MCxlKTpuZXcgVHQoMCwtdC56LHQueSx0LnosMCwtdC54LC10LnksdC54LDApfTtUdC5mcm9tUm90YXRpb25YPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YubnVtYmVyKCJhbmdsZSIsdCk7bGV0IG49TWF0aC5jb3ModCksbz1NYXRoLnNpbih0KTtyZXR1cm4gaChlKT8oZVswXT0xLGVbMV09MCxlWzJdPTAsZVszXT0wLGVbNF09bixlWzVdPW8sZVs2XT0wLGVbN109LW8sZVs4XT1uLGUpOm5ldyBUdCgxLDAsMCwwLG4sLW8sMCxvLG4pfTtUdC5mcm9tUm90YXRpb25ZPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YubnVtYmVyKCJhbmdsZSIsdCk7bGV0IG49TWF0aC5jb3ModCksbz1NYXRoLnNpbih0KTtyZXR1cm4gaChlKT8oZVswXT1uLGVbMV09MCxlWzJdPS1vLGVbM109MCxlWzRdPTEsZVs1XT0wLGVbNl09byxlWzddPTAsZVs4XT1uLGUpOm5ldyBUdChuLDAsbywwLDEsMCwtbywwLG4pfTtUdC5mcm9tUm90YXRpb25aPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YubnVtYmVyKCJhbmdsZSIsdCk7bGV0IG49TWF0aC5jb3ModCksbz1NYXRoLnNpbih0KTtyZXR1cm4gaChlKT8oZVswXT1uLGVbMV09byxlWzJdPTAsZVszXT0tbyxlWzRdPW4sZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0xLGUpOm5ldyBUdChuLC1vLDAsbyxuLDAsMCwwLDEpfTtUdC50b0FycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSxoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlKTpbdFswXSx0WzFdLHRbMl0sdFszXSx0WzRdLHRbNV0sdFs2XSx0WzddLHRbOF1dfTtUdC5nZXRFbGVtZW50SW5kZXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInJvdyIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygicm93IixlLDIpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJjb2x1bW4iLHQsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImNvbHVtbiIsdCwyKSx0KjMrZX07VHQuZ2V0Q29sdW1uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89ZSozLHI9dFtvXSxpPXRbbysxXSxzPXRbbysyXTtyZXR1cm4gbi54PXIsbi55PWksbi56PXMsbn07VHQuc2V0Q29sdW1uPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDIpLHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksbz1UdC5jbG9uZSh0LG8pO2xldCByPWUqMztyZXR1cm4gb1tyXT1uLngsb1tyKzFdPW4ueSxvW3IrMl09bi56LG99O1R0LmdldFJvdz1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbZV0scj10W2UrM10saT10W2UrNl07cmV0dXJuIG4ueD1vLG4ueT1yLG4uej1pLG59O1R0LnNldFJvdz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMikseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxvPVR0LmNsb25lKHQsbyksb1tlXT1uLngsb1tlKzNdPW4ueSxvW2UrNl09bi56LG99O3dDPW5ldyBhO1R0LnNldFNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPVR0LmdldFNjYWxlKHQsd0MpLHI9ZS54L28ueCxpPWUueS9vLnkscz1lLnovby56O3JldHVybiBuWzBdPXRbMF0qcixuWzFdPXRbMV0qcixuWzJdPXRbMl0qcixuWzNdPXRbM10qaSxuWzRdPXRbNF0qaSxuWzVdPXRbNV0qaSxuWzZdPXRbNl0qcyxuWzddPXRbN10qcyxuWzhdPXRbOF0qcyxufTtUQz1uZXcgYTtUdC5zZXRVbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89VHQuZ2V0U2NhbGUodCxUQykscj1lL28ueCxpPWUvby55LHM9ZS9vLno7cmV0dXJuIG5bMF09dFswXSpyLG5bMV09dFsxXSpyLG5bMl09dFsyXSpyLG5bM109dFszXSppLG5bNF09dFs0XSppLG5bNV09dFs1XSppLG5bNl09dFs2XSpzLG5bN109dFs3XSpzLG5bOF09dFs4XSpzLG59O1NtPW5ldyBhO1R0LmdldFNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbMF0sdFsxXSx0WzJdLFNtKSksZS55PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbM10sdFs0XSx0WzVdLFNtKSksZS56PWEubWFnbml0dWRlKGEuZnJvbUVsZW1lbnRzKHRbNl0sdFs3XSx0WzhdLFNtKSksZX07TzE9bmV3IGE7VHQuZ2V0TWF4aW11bVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBUdC5nZXRTY2FsZSh0LE8xKSxhLm1heGltdW1Db21wb25lbnQoTzEpfTtPQz1uZXcgYTtUdC5zZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1UdC5nZXRTY2FsZSh0LE9DKTtyZXR1cm4gblswXT1lWzBdKm8ueCxuWzFdPWVbMV0qby54LG5bMl09ZVsyXSpvLngsblszXT1lWzNdKm8ueSxuWzRdPWVbNF0qby55LG5bNV09ZVs1XSpvLnksbls2XT1lWzZdKm8ueixuWzddPWVbN10qby56LG5bOF09ZVs4XSpvLnosbn07RUM9bmV3IGE7VHQuZ2V0Um90YXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPVR0LmdldFNjYWxlKHQsRUMpO3JldHVybiBlWzBdPXRbMF0vbi54LGVbMV09dFsxXS9uLngsZVsyXT10WzJdL24ueCxlWzNdPXRbM10vbi55LGVbNF09dFs0XS9uLnksZVs1XT10WzVdL24ueSxlWzZdPXRbNl0vbi56LGVbN109dFs3XS9uLnosZVs4XT10WzhdL24ueixlfTtUdC5tdWx0aXBseT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89dFswXSplWzBdK3RbM10qZVsxXSt0WzZdKmVbMl0scj10WzFdKmVbMF0rdFs0XSplWzFdK3RbN10qZVsyXSxpPXRbMl0qZVswXSt0WzVdKmVbMV0rdFs4XSplWzJdLHM9dFswXSplWzNdK3RbM10qZVs0XSt0WzZdKmVbNV0sZj10WzFdKmVbM10rdFs0XSplWzRdK3RbN10qZVs1XSx1PXRbMl0qZVszXSt0WzVdKmVbNF0rdFs4XSplWzVdLGM9dFswXSplWzZdK3RbM10qZVs3XSt0WzZdKmVbOF0sbD10WzFdKmVbNl0rdFs0XSplWzddK3RbN10qZVs4XSxwPXRbMl0qZVs2XSt0WzVdKmVbN10rdFs4XSplWzhdO3JldHVybiBuWzBdPW8sblsxXT1yLG5bMl09aSxuWzNdPXMsbls0XT1mLG5bNV09dSxuWzZdPWMsbls3XT1sLG5bOF09cCxufTtUdC5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0rZVswXSxuWzFdPXRbMV0rZVsxXSxuWzJdPXRbMl0rZVsyXSxuWzNdPXRbM10rZVszXSxuWzRdPXRbNF0rZVs0XSxuWzVdPXRbNV0rZVs1XSxuWzZdPXRbNl0rZVs2XSxuWzddPXRbN10rZVs3XSxuWzhdPXRbOF0rZVs4XSxufTtUdC5zdWJ0cmFjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXS1lWzBdLG5bMV09dFsxXS1lWzFdLG5bMl09dFsyXS1lWzJdLG5bM109dFszXS1lWzNdLG5bNF09dFs0XS1lWzRdLG5bNV09dFs1XS1lWzVdLG5bNl09dFs2XS1lWzZdLG5bN109dFs3XS1lWzddLG5bOF09dFs4XS1lWzhdLG59O1R0Lm11bHRpcGx5QnlWZWN0b3I9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUueCxyPWUueSxpPWUueixzPXRbMF0qbyt0WzNdKnIrdFs2XSppLGY9dFsxXSpvK3RbNF0qcit0WzddKmksdT10WzJdKm8rdFs1XSpyK3RbOF0qaTtyZXR1cm4gbi54PXMsbi55PWYsbi56PXUsbn07VHQubXVsdGlwbHlCeVNjYWxhcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxhciIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSplLG5bMV09dFsxXSplLG5bMl09dFsyXSplLG5bM109dFszXSplLG5bNF09dFs0XSplLG5bNV09dFs1XSplLG5bNl09dFs2XSplLG5bN109dFs3XSplLG5bOF09dFs4XSplLG59O1R0Lm11bHRpcGx5QnlTY2FsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdKmUueCxuWzFdPXRbMV0qZS54LG5bMl09dFsyXSplLngsblszXT10WzNdKmUueSxuWzRdPXRbNF0qZS55LG5bNV09dFs1XSplLnksbls2XT10WzZdKmUueixuWzddPXRbN10qZS56LG5bOF09dFs4XSplLnosbn07VHQubXVsdGlwbHlCeVVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdKmUsblsxXT10WzFdKmUsblsyXT10WzJdKmUsblszXT10WzNdKmUsbls0XT10WzRdKmUsbls1XT10WzVdKmUsbls2XT10WzZdKmUsbls3XT10WzddKmUsbls4XT10WzhdKmUsbn07VHQubmVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT0tdFswXSxlWzFdPS10WzFdLGVbMl09LXRbMl0sZVszXT0tdFszXSxlWzRdPS10WzRdLGVbNV09LXRbNV0sZVs2XT0tdFs2XSxlWzddPS10WzddLGVbOF09LXRbOF0sZX07VHQudHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj10WzBdLG89dFszXSxyPXRbNl0saT10WzFdLHM9dFs0XSxmPXRbN10sdT10WzJdLGM9dFs1XSxsPXRbOF07cmV0dXJuIGVbMF09bixlWzFdPW8sZVsyXT1yLGVbM109aSxlWzRdPXMsZVs1XT1mLGVbNl09dSxlWzddPWMsZVs4XT1sLGV9O0NtPVsxLDAsMF0seG09WzIsMiwxXTtxbD1uZXcgVHQsRTE9bmV3IFR0O1R0LmNvbXB1dGVFaWdlbkRlY29tcG9zaXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCk7bGV0IG49TS5FUFNJTE9OMjAsbz0xMCxyPTAsaT0wO2goZSl8fChlPXt9KTtsZXQgcz1lLnVuaXRhcnk9VHQuY2xvbmUoVHQuSURFTlRJVFksZS51bml0YXJ5KSxmPWUuZGlhZ29uYWw9VHQuY2xvbmUodCxlLmRpYWdvbmFsKSx1PW4qUkMoZik7Zm9yKDtpPG8mJlNDKGYpPnU7KUNDKGYscWwpLFR0LnRyYW5zcG9zZShxbCxFMSksVHQubXVsdGlwbHkoZixxbCxmKSxUdC5tdWx0aXBseShFMSxmLGYpLFR0Lm11bHRpcGx5KHMscWwscyksKytyPjImJigrK2kscj0wKTtyZXR1cm4gZX07VHQuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT1NYXRoLmFicyh0WzBdKSxlWzFdPU1hdGguYWJzKHRbMV0pLGVbMl09TWF0aC5hYnModFsyXSksZVszXT1NYXRoLmFicyh0WzNdKSxlWzRdPU1hdGguYWJzKHRbNF0pLGVbNV09TWF0aC5hYnModFs1XSksZVs2XT1NYXRoLmFicyh0WzZdKSxlWzddPU1hdGguYWJzKHRbN10pLGVbOF09TWF0aC5hYnModFs4XSksZX07VHQuZGV0ZXJtaW5hbnQ9ZnVuY3Rpb24odCl7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpO2xldCBlPXRbMF0sbj10WzNdLG89dFs2XSxyPXRbMV0saT10WzRdLHM9dFs3XSxmPXRbMl0sdT10WzVdLGM9dFs4XTtyZXR1cm4gZSooaSpjLXUqcykrcioodSpvLW4qYykrZioobipzLWkqbyl9O1R0LmludmVyc2U9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXRbMF0sbz10WzFdLHI9dFsyXSxpPXRbM10scz10WzRdLGY9dFs1XSx1PXRbNl0sYz10WzddLGw9dFs4XSxwPVR0LmRldGVybWluYW50KHQpO2lmKE1hdGguYWJzKHApPD1NLkVQU0lMT04xNSl0aHJvdyBuZXcgRigibWF0cml4IGlzIG5vdCBpbnZlcnRpYmxlIik7ZVswXT1zKmwtYypmLGVbMV09YypyLW8qbCxlWzJdPW8qZi1zKnIsZVszXT11KmYtaSpsLGVbNF09bipsLXUqcixlWzVdPWkqci1uKmYsZVs2XT1pKmMtdSpzLGVbN109dSpvLW4qYyxlWzhdPW4qcy1pKm87bGV0IGQ9MS9wO3JldHVybiBUdC5tdWx0aXBseUJ5U2NhbGFyKGUsZCxlKX07eEM9bmV3IFR0O1R0LmludmVyc2VUcmFuc3Bvc2U9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxUdC5pbnZlcnNlKFR0LnRyYW5zcG9zZSh0LHhDKSxlKX07VHQuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0WzBdPT09ZVswXSYmdFsxXT09PWVbMV0mJnRbMl09PT1lWzJdJiZ0WzNdPT09ZVszXSYmdFs0XT09PWVbNF0mJnRbNV09PT1lWzVdJiZ0WzZdPT09ZVs2XSYmdFs3XT09PWVbN10mJnRbOF09PT1lWzhdfTtUdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKHRbMF0tZVswXSk8PW4mJk1hdGguYWJzKHRbMV0tZVsxXSk8PW4mJk1hdGguYWJzKHRbMl0tZVsyXSk8PW4mJk1hdGguYWJzKHRbM10tZVszXSk8PW4mJk1hdGguYWJzKHRbNF0tZVs0XSk8PW4mJk1hdGguYWJzKHRbNV0tZVs1XSk8PW4mJk1hdGguYWJzKHRbNl0tZVs2XSk8PW4mJk1hdGguYWJzKHRbN10tZVs3XSk8PW4mJk1hdGguYWJzKHRbOF0tZVs4XSk8PW59O1R0LklERU5USVRZPU9iamVjdC5mcmVlemUobmV3IFR0KDEsMCwwLDAsMSwwLDAsMCwxKSk7VHQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBUdCgwLDAsMCwwLDAsMCwwLDAsMCkpO1R0LkNPTFVNTjBST1cwPTA7VHQuQ09MVU1OMFJPVzE9MTtUdC5DT0xVTU4wUk9XMj0yO1R0LkNPTFVNTjFST1cwPTM7VHQuQ09MVU1OMVJPVzE9NDtUdC5DT0xVTU4xUk9XMj01O1R0LkNPTFVNTjJST1cwPTY7VHQuQ09MVU1OMlJPVzE9NztUdC5DT0xVTU4yUk9XMj04O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFR0LnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gVHQucGFja2VkTGVuZ3RofX19KTtUdC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIFR0LmNsb25lKHRoaXMsdCl9O1R0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIFR0LmVxdWFscyh0aGlzLHQpfTtUdC5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbMF09PT1lW25dJiZ0WzFdPT09ZVtuKzFdJiZ0WzJdPT09ZVtuKzJdJiZ0WzNdPT09ZVtuKzNdJiZ0WzRdPT09ZVtuKzRdJiZ0WzVdPT09ZVtuKzVdJiZ0WzZdPT09ZVtuKzZdJiZ0WzddPT09ZVtuKzddJiZ0WzhdPT09ZVtuKzhdfTtUdC5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUpe3JldHVybiBUdC5lcXVhbHNFcHNpbG9uKHRoaXMsdCxlKX07VHQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXNbMF19LCAke3RoaXNbM119LCAke3RoaXNbNl19KQooJHt0aGlzWzFdfSwgJHt0aGlzWzRdfSwgJHt0aGlzWzddfSkKKCR7dGhpc1syXX0sICR7dGhpc1s1XX0sICR7dGhpc1s4XX0pYH07UT1UdH0pO2Z1bmN0aW9uIEx0KHQsZSxuLG8pe3RoaXMueD14KHQsMCksdGhpcy55PXgoZSwwKSx0aGlzLno9eChuLDApLHRoaXMudz14KG8sMCl9dmFyIEtsLFIxLFBDLFBtLGJvLE1DLE5DLFMxLGhlLGhyPVooKCk9PntYdCgpO0l0KCk7ZnQoKTtIdCgpO1d0KCk7THQuZnJvbUVsZW1lbnRzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIGgocik/KHIueD10LHIueT1lLHIuej1uLHIudz1vLHIpOm5ldyBMdCh0LGUsbixvKX07THQuZnJvbUNvbG9yPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY29sb3IiLHQpLGgoZSk/KGUueD10LnJlZCxlLnk9dC5ncmVlbixlLno9dC5ibHVlLGUudz10LmFscGhhLGUpOm5ldyBMdCh0LnJlZCx0LmdyZWVuLHQuYmx1ZSx0LmFscGhhKX07THQuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLng9dC54LGUueT10LnksZS56PXQueixlLnc9dC53LGUpOm5ldyBMdCh0LngsdC55LHQueix0LncpfTtMdC5wYWNrZWRMZW5ndGg9NDtMdC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQueCxlW24rK109dC55LGVbbisrXT10LnosZVtuXT10LncsZX07THQudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IEx0KSxuLng9dFtlKytdLG4ueT10W2UrK10sbi56PXRbZSsrXSxuLnc9dFtlXSxufTtMdC5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImFycmF5Iix0KTtsZXQgbj10Lmxlbmd0aCxvPW4qNDtpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEYoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiA0IGVsZW1lbnRzIik7ZS5sZW5ndGghPT1vJiYoZS5sZW5ndGg9byl9Zm9yKGxldCByPTA7cjxuOysrcilMdC5wYWNrKHRbcl0sZSxyKjQpO3JldHVybiBlfTtMdC51bnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgiYXJyYXkiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJhcnJheS5sZW5ndGgiLHQubGVuZ3RoLDQpLHQubGVuZ3RoJTQhPT0wKXRocm93IG5ldyBGKCJhcnJheSBsZW5ndGggbXVzdCBiZSBhIG11bHRpcGxlIG9mIDQuIik7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uLzQ6ZT1uZXcgQXJyYXkobi80KTtmb3IobGV0IG89MDtvPG47bys9NCl7bGV0IHI9by80O2Vbcl09THQudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07THQuZnJvbUFycmF5PUx0LnVucGFjaztMdC5tYXhpbXVtQ29tcG9uZW50PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksTWF0aC5tYXgodC54LHQueSx0LnosdC53KX07THQubWluaW11bUNvbXBvbmVudD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLE1hdGgubWluKHQueCx0LnksdC56LHQudyl9O0x0Lm1pbmltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWluKHQueCxlLngpLG4ueT1NYXRoLm1pbih0LnksZS55KSxuLno9TWF0aC5taW4odC56LGUueiksbi53PU1hdGgubWluKHQudyxlLncpLG59O0x0Lm1heGltdW1CeUNvbXBvbmVudD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZmlyc3QiLHQpLHkudHlwZU9mLm9iamVjdCgic2Vjb25kIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PU1hdGgubWF4KHQueCxlLngpLG4ueT1NYXRoLm1heCh0LnksZS55KSxuLno9TWF0aC5tYXgodC56LGUueiksbi53PU1hdGgubWF4KHQudyxlLncpLG59O0x0LmNsYW1wPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkudHlwZU9mLm9iamVjdCgibWluIixlKSx5LnR5cGVPZi5vYmplY3QoIm1heCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pO2xldCByPU0uY2xhbXAodC54LGUueCxuLngpLGk9TS5jbGFtcCh0LnksZS55LG4ueSkscz1NLmNsYW1wKHQueixlLnosbi56KSxmPU0uY2xhbXAodC53LGUudyxuLncpO3JldHVybiBvLng9cixvLnk9aSxvLno9cyxvLnc9ZixvfTtMdC5tYWduaXR1ZGVTcXVhcmVkPWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksdC54KnQueCt0LnkqdC55K3Queip0LnordC53KnQud307THQubWFnbml0dWRlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoTHQubWFnbml0dWRlU3F1YXJlZCh0KSl9O0tsPW5ldyBMdDtMdC5kaXN0YW5jZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLEx0LnN1YnRyYWN0KHQsZSxLbCksTHQubWFnbml0dWRlKEtsKX07THQuZGlzdGFuY2VTcXVhcmVkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksTHQuc3VidHJhY3QodCxlLEtsKSxMdC5tYWduaXR1ZGVTcXVhcmVkKEtsKX07THQubm9ybWFsaXplPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1MdC5tYWduaXR1ZGUodCk7aWYoZS54PXQueC9uLGUueT10LnkvbixlLno9dC56L24sZS53PXQudy9uLGlzTmFOKGUueCl8fGlzTmFOKGUueSl8fGlzTmFOKGUueil8fGlzTmFOKGUudykpdGhyb3cgbmV3IEYoIm5vcm1hbGl6ZWQgcmVzdWx0IGlzIG5vdCBhIG51bWJlciIpO3JldHVybiBlfTtMdC5kb3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx0LngqZS54K3QueSplLnkrdC56KmUueit0LncqZS53fTtMdC5tdWx0aXBseUNvbXBvbmVudHM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54KmUueCxuLnk9dC55KmUueSxuLno9dC56KmUueixuLnc9dC53KmUudyxufTtMdC5kaXZpZGVDb21wb25lbnRzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLngsbi55PXQueS9lLnksbi56PXQuei9lLnosbi53PXQudy9lLncsbn07THQuYWRkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCtlLngsbi55PXQueStlLnksbi56PXQueitlLnosbi53PXQudytlLncsbn07THQuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54LWUueCxuLnk9dC55LWUueSxuLno9dC56LWUueixuLnc9dC53LWUudyxufTtMdC5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCplLG4ueT10LnkqZSxuLno9dC56KmUsbi53PXQudyplLG59O0x0LmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxuLno9dC56L2Usbi53PXQudy9lLG59O0x0Lm5lZ2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD0tdC54LGUueT0tdC55LGUuej0tdC56LGUudz0tdC53LGV9O0x0LmFicz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGUueD1NYXRoLmFicyh0LngpLGUueT1NYXRoLmFicyh0LnkpLGUuej1NYXRoLmFicyh0LnopLGUudz1NYXRoLmFicyh0LncpLGV9O1IxPW5ldyBMdDtMdC5sZXJwPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksTHQubXVsdGlwbHlCeVNjYWxhcihlLG4sUjEpLG89THQubXVsdGlwbHlCeVNjYWxhcih0LDEtbixvKSxMdC5hZGQoUjEsbyxvKX07UEM9bmV3IEx0O0x0Lm1vc3RPcnRob2dvbmFsQXhpcz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49THQubm9ybWFsaXplKHQsUEMpO3JldHVybiBMdC5hYnMobixuKSxuLng8PW4ueT9uLng8PW4uej9uLng8PW4udz9lPUx0LmNsb25lKEx0LlVOSVRfWCxlKTplPUx0LmNsb25lKEx0LlVOSVRfVyxlKTpuLno8PW4udz9lPUx0LmNsb25lKEx0LlVOSVRfWixlKTplPUx0LmNsb25lKEx0LlVOSVRfVyxlKTpuLnk8PW4uej9uLnk8PW4udz9lPUx0LmNsb25lKEx0LlVOSVRfWSxlKTplPUx0LmNsb25lKEx0LlVOSVRfVyxlKTpuLno8PW4udz9lPUx0LmNsb25lKEx0LlVOSVRfWixlKTplPUx0LmNsb25lKEx0LlVOSVRfVyxlKSxlfTtMdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQueD09PWUueCYmdC55PT09ZS55JiZ0Lno9PT1lLnomJnQudz09PWUud307THQuZXF1YWxzQXJyYXk9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lng9PT1lW25dJiZ0Lnk9PT1lW24rMV0mJnQuej09PWVbbisyXSYmdC53PT09ZVtuKzNdfTtMdC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmTS5lcXVhbHNFcHNpbG9uKHQueCxlLngsbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueSxlLnksbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQueixlLnosbixvKSYmTS5lcXVhbHNFcHNpbG9uKHQudyxlLncsbixvKX07THQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBMdCgwLDAsMCwwKSk7THQuT05FPU9iamVjdC5mcmVlemUobmV3IEx0KDEsMSwxLDEpKTtMdC5VTklUX1g9T2JqZWN0LmZyZWV6ZShuZXcgTHQoMSwwLDAsMCkpO0x0LlVOSVRfWT1PYmplY3QuZnJlZXplKG5ldyBMdCgwLDEsMCwwKSk7THQuVU5JVF9aPU9iamVjdC5mcmVlemUobmV3IEx0KDAsMCwxLDApKTtMdC5VTklUX1c9T2JqZWN0LmZyZWV6ZShuZXcgTHQoMCwwLDAsMSkpO0x0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gTHQuY2xvbmUodGhpcyx0KX07THQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gTHQuZXF1YWxzKHRoaXMsdCl9O0x0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gTHQuZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07THQucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMueH0sICR7dGhpcy55fSwgJHt0aGlzLnp9LCAke3RoaXMud30pYH07UG09bmV3IEZsb2F0MzJBcnJheSgxKSxibz1uZXcgVWludDhBcnJheShQbS5idWZmZXIpLE1DPW5ldyBVaW50MzJBcnJheShbMjg3NDU0MDIwXSksTkM9bmV3IFVpbnQ4QXJyYXkoTUMuYnVmZmVyKSxTMT1OQ1swXT09PTY4O0x0LnBhY2tGbG9hdD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5udW1iZXIoInZhbHVlIix0KSxoKGUpfHwoZT1uZXcgTHQpLFBtWzBdPXQsUzE/KGUueD1ib1swXSxlLnk9Ym9bMV0sZS56PWJvWzJdLGUudz1ib1szXSk6KGUueD1ib1szXSxlLnk9Ym9bMl0sZS56PWJvWzFdLGUudz1ib1swXSksZX07THQudW5wYWNrRmxvYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicGFja2VkRmxvYXQiLHQpLFMxPyhib1swXT10LngsYm9bMV09dC55LGJvWzJdPXQueixib1szXT10LncpOihib1swXT10LncsYm9bMV09dC56LGJvWzJdPXQueSxib1szXT10LngpLFBtWzBdfTtoZT1MdH0pO2Z1bmN0aW9uIHNmKHQpe3RoaXMubmFtZT0iUnVudGltZUVycm9yIix0aGlzLm1lc3NhZ2U9dDtsZXQgZTt0cnl7dGhyb3cgbmV3IEVycm9yfWNhdGNoKG4pe2U9bi5zdGFja310aGlzLnN0YWNrPWV9dmFyIEFlLEpyPVooKCk9PntmdCgpO2goT2JqZWN0LmNyZWF0ZSkmJihzZi5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShFcnJvci5wcm90b3R5cGUpLHNmLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1zZik7c2YucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9YCR7dGhpcy5uYW1lfTogJHt0aGlzLm1lc3NhZ2V9YDtyZXR1cm4gaCh0aGlzLnN0YWNrKSYmKHQrPWAKJHt0aGlzLnN0YWNrLnRvU3RyaW5nKCl9YCksdH07QWU9c2Z9KTtmdW5jdGlvbiB3dCh0LGUsbixvLHIsaSxzLGYsdSxjLGwscCxkLG0sXyxnKXt0aGlzWzBdPXgodCwwKSx0aGlzWzFdPXgociwwKSx0aGlzWzJdPXgodSwwKSx0aGlzWzNdPXgoZCwwKSx0aGlzWzRdPXgoZSwwKSx0aGlzWzVdPXgoaSwwKSx0aGlzWzZdPXgoYywwKSx0aGlzWzddPXgobSwwKSx0aGlzWzhdPXgobiwwKSx0aGlzWzldPXgocywwKSx0aGlzWzEwXT14KGwsMCksdGhpc1sxMV09eChfLDApLHRoaXNbMTJdPXgobywwKSx0aGlzWzEzXT14KGYsMCksdGhpc1sxNF09eChwLDApLHRoaXNbMTVdPXgoZywwKX12YXIgSGMscWMsY2YsSUMsdkMsTW0sQzEsTEMsREMsRkMsQkMsVUMsVkMsa0Msc3QsVW49WigoKT0+e0Z0KCk7aHIoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO1d0KCk7Qm4oKTtKcigpO3d0LnBhY2tlZExlbmd0aD0xNjt3dC5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXRbMF0sZVtuKytdPXRbMV0sZVtuKytdPXRbMl0sZVtuKytdPXRbM10sZVtuKytdPXRbNF0sZVtuKytdPXRbNV0sZVtuKytdPXRbNl0sZVtuKytdPXRbN10sZVtuKytdPXRbOF0sZVtuKytdPXRbOV0sZVtuKytdPXRbMTBdLGVbbisrXT10WzExXSxlW24rK109dFsxMl0sZVtuKytdPXRbMTNdLGVbbisrXT10WzE0XSxlW25dPXRbMTVdLGV9O3d0LnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyB3dCksblswXT10W2UrK10sblsxXT10W2UrK10sblsyXT10W2UrK10sblszXT10W2UrK10sbls0XT10W2UrK10sbls1XT10W2UrK10sbls2XT10W2UrK10sbls3XT10W2UrK10sbls4XT10W2UrK10sbls5XT10W2UrK10sblsxMF09dFtlKytdLG5bMTFdPXRbZSsrXSxuWzEyXT10W2UrK10sblsxM109dFtlKytdLG5bMTRdPXRbZSsrXSxuWzE1XT10W2VdLG59O3d0LnBhY2tBcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiYXJyYXkiLHQpO2xldCBuPXQubGVuZ3RoLG89bioxNjtpZighaChlKSllPW5ldyBBcnJheShvKTtlbHNle2lmKCFBcnJheS5pc0FycmF5KGUpJiZlLmxlbmd0aCE9PW8pdGhyb3cgbmV3IEYoIklmIHJlc3VsdCBpcyBhIHR5cGVkIGFycmF5LCBpdCBtdXN0IGhhdmUgZXhhY3RseSBhcnJheS5sZW5ndGggKiAxNiBlbGVtZW50cyIpO2UubGVuZ3RoIT09byYmKGUubGVuZ3RoPW8pfWZvcihsZXQgcj0wO3I8bjsrK3Ipd3QucGFjayh0W3JdLGUscioxNik7cmV0dXJuIGV9O3d0LnVucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7aWYoeS5kZWZpbmVkKCJhcnJheSIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImFycmF5Lmxlbmd0aCIsdC5sZW5ndGgsMTYpLHQubGVuZ3RoJTE2IT09MCl0aHJvdyBuZXcgRigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAxNi4iKTtsZXQgbj10Lmxlbmd0aDtoKGUpP2UubGVuZ3RoPW4vMTY6ZT1uZXcgQXJyYXkobi8xNik7Zm9yKGxldCBvPTA7bzxuO28rPTE2KXtsZXQgcj1vLzE2O2Vbcl09d3QudW5wYWNrKHQsbyxlW3JdKX1yZXR1cm4gZX07d3QuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZVs0XT10WzRdLGVbNV09dFs1XSxlWzZdPXRbNl0sZVs3XT10WzddLGVbOF09dFs4XSxlWzldPXRbOV0sZVsxMF09dFsxMF0sZVsxMV09dFsxMV0sZVsxMl09dFsxMl0sZVsxM109dFsxM10sZVsxNF09dFsxNF0sZVsxNV09dFsxNV0sZSk6bmV3IHd0KHRbMF0sdFs0XSx0WzhdLHRbMTJdLHRbMV0sdFs1XSx0WzldLHRbMTNdLHRbMl0sdFs2XSx0WzEwXSx0WzE0XSx0WzNdLHRbN10sdFsxMV0sdFsxNV0pfTt3dC5mcm9tQXJyYXk9d3QudW5wYWNrO3d0LmZyb21Db2x1bW5NYWpvckFycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWVzIix0KSx3dC5jbG9uZSh0LGUpfTt3dC5mcm9tUm93TWFqb3JBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlcyIsdCksaChlKT8oZVswXT10WzBdLGVbMV09dFs0XSxlWzJdPXRbOF0sZVszXT10WzEyXSxlWzRdPXRbMV0sZVs1XT10WzVdLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09dFsyXSxlWzldPXRbNl0sZVsxMF09dFsxMF0sZVsxMV09dFsxNF0sZVsxMl09dFszXSxlWzEzXT10WzddLGVbMTRdPXRbMTFdLGVbMTVdPXRbMTVdLGUpOm5ldyB3dCh0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSx0WzZdLHRbN10sdFs4XSx0WzldLHRbMTBdLHRbMTFdLHRbMTJdLHRbMTNdLHRbMTRdLHRbMTVdKX07d3QuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInJvdGF0aW9uIix0KSxlPXgoZSxhLlpFUk8pLGgobik/KG5bMF09dFswXSxuWzFdPXRbMV0sblsyXT10WzJdLG5bM109MCxuWzRdPXRbM10sbls1XT10WzRdLG5bNl09dFs1XSxuWzddPTAsbls4XT10WzZdLG5bOV09dFs3XSxuWzEwXT10WzhdLG5bMTFdPTAsblsxMl09ZS54LG5bMTNdPWUueSxuWzE0XT1lLnosblsxNV09MSxuKTpuZXcgd3QodFswXSx0WzNdLHRbNl0sZS54LHRbMV0sdFs0XSx0WzddLGUueSx0WzJdLHRbNV0sdFs4XSxlLnosMCwwLDAsMSl9O3d0LmZyb21UcmFuc2xhdGlvblF1YXRlcm5pb25Sb3RhdGlvblNjYWxlPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgidHJhbnNsYXRpb24iLHQpLHkudHlwZU9mLm9iamVjdCgicm90YXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgic2NhbGUiLG4pLGgobyl8fChvPW5ldyB3dCk7bGV0IHI9bi54LGk9bi55LHM9bi56LGY9ZS54KmUueCx1PWUueCplLnksYz1lLngqZS56LGw9ZS54KmUudyxwPWUueSplLnksZD1lLnkqZS56LG09ZS55KmUudyxfPWUueiplLnosZz1lLnoqZS53LGI9ZS53KmUudyx3PWYtcC1fK2IsTz0yKih1LWcpLEU9MiooYyttKSxUPTIqKHUrZyksQz0tZitwLV8rYixOPTIqKGQtbCksST0yKihjLW0pLEQ9MiooZCtsKSx2PS1mLXArXytiO3JldHVybiBvWzBdPXcqcixvWzFdPVQqcixvWzJdPUkqcixvWzNdPTAsb1s0XT1PKmksb1s1XT1DKmksb1s2XT1EKmksb1s3XT0wLG9bOF09RSpzLG9bOV09TipzLG9bMTBdPXYqcyxvWzExXT0wLG9bMTJdPXQueCxvWzEzXT10Lnksb1sxNF09dC56LG9bMTVdPTEsb307d3QuZnJvbVRyYW5zbGF0aW9uUm90YXRpb25TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInRyYW5zbGF0aW9uUm90YXRpb25TY2FsZSIsdCksd3QuZnJvbVRyYW5zbGF0aW9uUXVhdGVybmlvblJvdGF0aW9uU2NhbGUodC50cmFuc2xhdGlvbix0LnJvdGF0aW9uLHQuc2NhbGUsZSl9O3d0LmZyb21UcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInRyYW5zbGF0aW9uIix0KSx3dC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihRLklERU5USVRZLHQsZSl9O3d0LmZyb21TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInNjYWxlIix0KSxoKGUpPyhlWzBdPXQueCxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTAsZVs1XT10LnksZVs2XT0wLGVbN109MCxlWzhdPTAsZVs5XT0wLGVbMTBdPXQueixlWzExXT0wLGVbMTJdPTAsZVsxM109MCxlWzE0XT0wLGVbMTVdPTEsZSk6bmV3IHd0KHQueCwwLDAsMCwwLHQueSwwLDAsMCwwLHQueiwwLDAsMCwwLDEpfTt3dC5mcm9tVW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigic2NhbGUiLHQpLGgoZSk/KGVbMF09dCxlWzFdPTAsZVsyXT0wLGVbM109MCxlWzRdPTAsZVs1XT10LGVbNl09MCxlWzddPTAsZVs4XT0wLGVbOV09MCxlWzEwXT10LGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSxlKTpuZXcgd3QodCwwLDAsMCwwLHQsMCwwLDAsMCx0LDAsMCwwLDAsMSl9O3d0LmZyb21Sb3RhdGlvbj1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInJvdGF0aW9uIix0KSxoKGUpfHwoZT1uZXcgd3QpLGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109MCxlWzRdPXRbM10sZVs1XT10WzRdLGVbNl09dFs1XSxlWzddPTAsZVs4XT10WzZdLGVbOV09dFs3XSxlWzEwXT10WzhdLGVbMTFdPTAsZVsxMl09MCxlWzEzXT0wLGVbMTRdPTAsZVsxNV09MSxlfTtIYz1uZXcgYSxxYz1uZXcgYSxjZj1uZXcgYTt3dC5mcm9tQ2FtZXJhPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYW1lcmEiLHQpO2xldCBuPXQucG9zaXRpb24sbz10LmRpcmVjdGlvbixyPXQudXA7eS50eXBlT2Yub2JqZWN0KCJjYW1lcmEucG9zaXRpb24iLG4pLHkudHlwZU9mLm9iamVjdCgiY2FtZXJhLmRpcmVjdGlvbiIsbykseS50eXBlT2Yub2JqZWN0KCJjYW1lcmEudXAiLHIpLGEubm9ybWFsaXplKG8sSGMpLGEubm9ybWFsaXplKGEuY3Jvc3MoSGMscixxYykscWMpLGEubm9ybWFsaXplKGEuY3Jvc3MocWMsSGMsY2YpLGNmKTtsZXQgaT1xYy54LHM9cWMueSxmPXFjLnosdT1IYy54LGM9SGMueSxsPUhjLnoscD1jZi54LGQ9Y2YueSxtPWNmLnosXz1uLngsZz1uLnksYj1uLnosdz1pKi1fK3MqLWcrZiotYixPPXAqLV8rZCotZyttKi1iLEU9dSpfK2MqZytsKmI7cmV0dXJuIGgoZSk/KGVbMF09aSxlWzFdPXAsZVsyXT0tdSxlWzNdPTAsZVs0XT1zLGVbNV09ZCxlWzZdPS1jLGVbN109MCxlWzhdPWYsZVs5XT1tLGVbMTBdPS1sLGVbMTFdPTAsZVsxMl09dyxlWzEzXT1PLGVbMTRdPUUsZVsxNV09MSxlKTpuZXcgd3QoaSxzLGYsdyxwLGQsbSxPLC11LC1jLC1sLEUsMCwwLDAsMSl9O3d0LmNvbXB1dGVQZXJzcGVjdGl2ZUZpZWxkT2ZWaWV3PWZ1bmN0aW9uKHQsZSxuLG8scil7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuKCJmb3ZZIix0LDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbigiZm92WSIsdCxNYXRoLlBJKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW4oIm5lYXIiLG4sMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuKCJmYXIiLG8sMCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLHIpO2xldCBzPTEvTWF0aC50YW4odCouNSksZj1zL2UsdT0obytuKS8obi1vKSxjPTIqbypuLyhuLW8pO3JldHVybiByWzBdPWYsclsxXT0wLHJbMl09MCxyWzNdPTAscls0XT0wLHJbNV09cyxyWzZdPTAscls3XT0wLHJbOF09MCxyWzldPTAsclsxMF09dSxyWzExXT0tMSxyWzEyXT0wLHJbMTNdPTAsclsxNF09YyxyWzE1XT0wLHJ9O3d0LmNvbXB1dGVPcnRob2dyYXBoaWNPZmZDZW50ZXI9ZnVuY3Rpb24odCxlLG4sbyxyLGkscyl7eS50eXBlT2YubnVtYmVyKCJsZWZ0Iix0KSx5LnR5cGVPZi5udW1iZXIoInJpZ2h0IixlKSx5LnR5cGVPZi5udW1iZXIoImJvdHRvbSIsbikseS50eXBlT2YubnVtYmVyKCJ0b3AiLG8pLHkudHlwZU9mLm51bWJlcigibmVhciIscikseS50eXBlT2YubnVtYmVyKCJmYXIiLGkpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixzKTtsZXQgZj0xLyhlLXQpLHU9MS8oby1uKSxjPTEvKGktciksbD0tKGUrdCkqZixwPS0obytuKSp1LGQ9LShpK3IpKmM7cmV0dXJuIGYqPTIsdSo9MixjKj0tMixzWzBdPWYsc1sxXT0wLHNbMl09MCxzWzNdPTAsc1s0XT0wLHNbNV09dSxzWzZdPTAsc1s3XT0wLHNbOF09MCxzWzldPTAsc1sxMF09YyxzWzExXT0wLHNbMTJdPWwsc1sxM109cCxzWzE0XT1kLHNbMTVdPTEsc307d3QuY29tcHV0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe3kudHlwZU9mLm51bWJlcigibGVmdCIsdCkseS50eXBlT2YubnVtYmVyKCJyaWdodCIsZSkseS50eXBlT2YubnVtYmVyKCJib3R0b20iLG4pLHkudHlwZU9mLm51bWJlcigidG9wIixvKSx5LnR5cGVPZi5udW1iZXIoIm5lYXIiLHIpLHkudHlwZU9mLm51bWJlcigiZmFyIixpKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIscyk7bGV0IGY9MipyLyhlLXQpLHU9MipyLyhvLW4pLGM9KGUrdCkvKGUtdCksbD0obytuKS8oby1uKSxwPS0oaStyKS8oaS1yKSxkPS0xLG09LTIqaSpyLyhpLXIpO3JldHVybiBzWzBdPWYsc1sxXT0wLHNbMl09MCxzWzNdPTAsc1s0XT0wLHNbNV09dSxzWzZdPTAsc1s3XT0wLHNbOF09YyxzWzldPWwsc1sxMF09cCxzWzExXT1kLHNbMTJdPTAsc1sxM109MCxzWzE0XT1tLHNbMTVdPTAsc307d3QuY29tcHV0ZUluZmluaXRlUGVyc3BlY3RpdmVPZmZDZW50ZXI9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe3kudHlwZU9mLm51bWJlcigibGVmdCIsdCkseS50eXBlT2YubnVtYmVyKCJyaWdodCIsZSkseS50eXBlT2YubnVtYmVyKCJib3R0b20iLG4pLHkudHlwZU9mLm51bWJlcigidG9wIixvKSx5LnR5cGVPZi5udW1iZXIoIm5lYXIiLHIpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixpKTtsZXQgcz0yKnIvKGUtdCksZj0yKnIvKG8tbiksdT0oZSt0KS8oZS10KSxjPShvK24pLyhvLW4pLGw9LTEscD0tMSxkPS0yKnI7cmV0dXJuIGlbMF09cyxpWzFdPTAsaVsyXT0wLGlbM109MCxpWzRdPTAsaVs1XT1mLGlbNl09MCxpWzddPTAsaVs4XT11LGlbOV09YyxpWzEwXT1sLGlbMTFdPXAsaVsxMl09MCxpWzEzXT0wLGlbMTRdPWQsaVsxNV09MCxpfTt3dC5jb21wdXRlVmlld3BvcnRUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0LGUsbixvKXtoKG8pfHwobz1uZXcgd3QpLHQ9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgcj14KHQueCwwKSxpPXgodC55LDApLHM9eCh0LndpZHRoLDApLGY9eCh0LmhlaWdodCwwKTtlPXgoZSwwKSxuPXgobiwxKTtsZXQgdT1zKi41LGM9ZiouNSxsPShuLWUpKi41LHA9dSxkPWMsbT1sLF89cit1LGc9aStjLGI9ZStsLHc9MTtyZXR1cm4gb1swXT1wLG9bMV09MCxvWzJdPTAsb1szXT0wLG9bNF09MCxvWzVdPWQsb1s2XT0wLG9bN109MCxvWzhdPTAsb1s5XT0wLG9bMTBdPW0sb1sxMV09MCxvWzEyXT1fLG9bMTNdPWcsb1sxNF09YixvWzE1XT13LG99O3d0LmNvbXB1dGVWaWV3PWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicG9zaXRpb24iLHQpLHkudHlwZU9mLm9iamVjdCgiZGlyZWN0aW9uIixlKSx5LnR5cGVPZi5vYmplY3QoInVwIixuKSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixvKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsciksclswXT1vLngsclsxXT1uLngsclsyXT0tZS54LHJbM109MCxyWzRdPW8ueSxyWzVdPW4ueSxyWzZdPS1lLnkscls3XT0wLHJbOF09by56LHJbOV09bi56LHJbMTBdPS1lLnosclsxMV09MCxyWzEyXT0tYS5kb3Qobyx0KSxyWzEzXT0tYS5kb3Qobix0KSxyWzE0XT1hLmRvdChlLHQpLHJbMTVdPTEscn07d3QudG9BcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCksaChlKT8oZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGVbNF09dFs0XSxlWzVdPXRbNV0sZVs2XT10WzZdLGVbN109dFs3XSxlWzhdPXRbOF0sZVs5XT10WzldLGVbMTBdPXRbMTBdLGVbMTFdPXRbMTFdLGVbMTJdPXRbMTJdLGVbMTNdPXRbMTNdLGVbMTRdPXRbMTRdLGVbMTVdPXRbMTVdLGUpOlt0WzBdLHRbMV0sdFsyXSx0WzNdLHRbNF0sdFs1XSx0WzZdLHRbN10sdFs4XSx0WzldLHRbMTBdLHRbMTFdLHRbMTJdLHRbMTNdLHRbMTRdLHRbMTVdXX07d3QuZ2V0RWxlbWVudEluZGV4PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJyb3ciLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoInJvdyIsZSwzKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiY29sdW1uIix0LDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJjb2x1bW4iLHQsMyksdCo0K2V9O3d0LmdldENvbHVtbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMykseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUqNCxyPXRbb10saT10W28rMV0scz10W28rMl0sZj10W28rM107cmV0dXJuIG4ueD1yLG4ueT1pLG4uej1zLG4udz1mLG59O3d0LnNldENvbHVtbj1mdW5jdGlvbih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwzKSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pLG89d3QuY2xvbmUodCxvKTtsZXQgcj1lKjQ7cmV0dXJuIG9bcl09bi54LG9bcisxXT1uLnksb1tyKzJdPW4ueixvW3IrM109bi53LG99O3d0LmdldFJvdz1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiaW5kZXgiLGUsMykseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbZV0scj10W2UrNF0saT10W2UrOF0scz10W2UrMTJdO3JldHVybiBuLng9byxuLnk9cixuLno9aSxuLnc9cyxufTt3dC5zZXRSb3c9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDMpLHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksbz13dC5jbG9uZSh0LG8pLG9bZV09bi54LG9bZSs0XT1uLnksb1tlKzhdPW4ueixvW2UrMTJdPW4udyxvfTt3dC5zZXRUcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInRyYW5zbGF0aW9uIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdLG5bMV09dFsxXSxuWzJdPXRbMl0sblszXT10WzNdLG5bNF09dFs0XSxuWzVdPXRbNV0sbls2XT10WzZdLG5bN109dFs3XSxuWzhdPXRbOF0sbls5XT10WzldLG5bMTBdPXRbMTBdLG5bMTFdPXRbMTFdLG5bMTJdPWUueCxuWzEzXT1lLnksblsxNF09ZS56LG5bMTVdPXRbMTVdLG59O0lDPW5ldyBhO3d0LnNldFNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXd0LmdldFNjYWxlKHQsSUMpLHI9ZS54L28ueCxpPWUueS9vLnkscz1lLnovby56O3JldHVybiBuWzBdPXRbMF0qcixuWzFdPXRbMV0qcixuWzJdPXRbMl0qcixuWzNdPXRbM10sbls0XT10WzRdKmksbls1XT10WzVdKmksbls2XT10WzZdKmksbls3XT10WzddLG5bOF09dFs4XSpzLG5bOV09dFs5XSpzLG5bMTBdPXRbMTBdKnMsblsxMV09dFsxMV0sblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0sbn07dkM9bmV3IGE7d3Quc2V0VW5pZm9ybVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXd0LmdldFNjYWxlKHQsdkMpLHI9ZS9vLngsaT1lL28ueSxzPWUvby56O3JldHVybiBuWzBdPXRbMF0qcixuWzFdPXRbMV0qcixuWzJdPXRbMl0qcixuWzNdPXRbM10sbls0XT10WzRdKmksbls1XT10WzVdKmksbls2XT10WzZdKmksbls3XT10WzddLG5bOF09dFs4XSpzLG5bOV09dFs5XSpzLG5bMTBdPXRbMTBdKnMsblsxMV09dFsxMV0sblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0sbn07TW09bmV3IGE7d3QuZ2V0U2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFswXSx0WzFdLHRbMl0sTW0pKSxlLnk9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFs0XSx0WzVdLHRbNl0sTW0pKSxlLno9YS5tYWduaXR1ZGUoYS5mcm9tRWxlbWVudHModFs4XSx0WzldLHRbMTBdLE1tKSksZX07QzE9bmV3IGE7d3QuZ2V0TWF4aW11bVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiB3dC5nZXRTY2FsZSh0LEMxKSxhLm1heGltdW1Db21wb25lbnQoQzEpfTtMQz1uZXcgYTt3dC5zZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz13dC5nZXRTY2FsZSh0LExDKTtyZXR1cm4gblswXT1lWzBdKm8ueCxuWzFdPWVbMV0qby54LG5bMl09ZVsyXSpvLngsblszXT10WzNdLG5bNF09ZVszXSpvLnksbls1XT1lWzRdKm8ueSxuWzZdPWVbNV0qby55LG5bN109dFs3XSxuWzhdPWVbNl0qby56LG5bOV09ZVs3XSpvLnosblsxMF09ZVs4XSpvLnosblsxMV09dFsxMV0sblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0sbn07REM9bmV3IGE7d3QuZ2V0Um90YXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXd0LmdldFNjYWxlKHQsREMpO3JldHVybiBlWzBdPXRbMF0vbi54LGVbMV09dFsxXS9uLngsZVsyXT10WzJdL24ueCxlWzNdPXRbNF0vbi55LGVbNF09dFs1XS9uLnksZVs1XT10WzZdL24ueSxlWzZdPXRbOF0vbi56LGVbN109dFs5XS9uLnosZVs4XT10WzEwXS9uLnosZX07d3QubXVsdGlwbHk9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbM10sZj10WzRdLHU9dFs1XSxjPXRbNl0sbD10WzddLHA9dFs4XSxkPXRbOV0sbT10WzEwXSxfPXRbMTFdLGc9dFsxMl0sYj10WzEzXSx3PXRbMTRdLE89dFsxNV0sRT1lWzBdLFQ9ZVsxXSxDPWVbMl0sTj1lWzNdLEk9ZVs0XSxEPWVbNV0sdj1lWzZdLEw9ZVs3XSxVPWVbOF0sQT1lWzldLFM9ZVsxMF0sUD1lWzExXSxCPWVbMTJdLGo9ZVsxM10sSD1lWzE0XSxrPWVbMTVdLEs9bypFK2YqVCtwKkMrZypOLFg9cipFK3UqVCtkKkMrYipOLFI9aSpFK2MqVCttKkMrdypOLG90PXMqRStsKlQrXypDK08qTixhdD1vKkkrZipEK3AqditnKkwscHQ9cipJK3UqRCtkKnYrYipMLHl0PWkqSStjKkQrbSp2K3cqTCxydD1zKkkrbCpEK18qditPKkwsUHQ9bypVK2YqQStwKlMrZypQLGd0PXIqVSt1KkErZCpTK2IqUCxDdD1pKlUrYypBK20qUyt3KlAsbXQ9cypVK2wqQStfKlMrTypQLHV0PW8qQitmKmorcCpIK2cqayx2dD1yKkIrdSpqK2QqSCtiKmssenQ9aSpCK2MqaittKkgrdyprLG1lPXMqQitsKmorXypIK08qaztyZXR1cm4gblswXT1LLG5bMV09WCxuWzJdPVIsblszXT1vdCxuWzRdPWF0LG5bNV09cHQsbls2XT15dCxuWzddPXJ0LG5bOF09UHQsbls5XT1ndCxuWzEwXT1DdCxuWzExXT1tdCxuWzEyXT11dCxuWzEzXT12dCxuWzE0XT16dCxuWzE1XT1tZSxufTt3dC5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0rZVswXSxuWzFdPXRbMV0rZVsxXSxuWzJdPXRbMl0rZVsyXSxuWzNdPXRbM10rZVszXSxuWzRdPXRbNF0rZVs0XSxuWzVdPXRbNV0rZVs1XSxuWzZdPXRbNl0rZVs2XSxuWzddPXRbN10rZVs3XSxuWzhdPXRbOF0rZVs4XSxuWzldPXRbOV0rZVs5XSxuWzEwXT10WzEwXStlWzEwXSxuWzExXT10WzExXStlWzExXSxuWzEyXT10WzEyXStlWzEyXSxuWzEzXT10WzEzXStlWzEzXSxuWzE0XT10WzE0XStlWzE0XSxuWzE1XT10WzE1XStlWzE1XSxufTt3dC5zdWJ0cmFjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXS1lWzBdLG5bMV09dFsxXS1lWzFdLG5bMl09dFsyXS1lWzJdLG5bM109dFszXS1lWzNdLG5bNF09dFs0XS1lWzRdLG5bNV09dFs1XS1lWzVdLG5bNl09dFs2XS1lWzZdLG5bN109dFs3XS1lWzddLG5bOF09dFs4XS1lWzhdLG5bOV09dFs5XS1lWzldLG5bMTBdPXRbMTBdLWVbMTBdLG5bMTFdPXRbMTFdLWVbMTFdLG5bMTJdPXRbMTJdLWVbMTJdLG5bMTNdPXRbMTNdLWVbMTNdLG5bMTRdPXRbMTRdLWVbMTRdLG5bMTVdPXRbMTVdLWVbMTVdLG59O3d0Lm11bHRpcGx5VHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbMF0scj10WzFdLGk9dFsyXSxzPXRbNF0sZj10WzVdLHU9dFs2XSxjPXRbOF0sbD10WzldLHA9dFsxMF0sZD10WzEyXSxtPXRbMTNdLF89dFsxNF0sZz1lWzBdLGI9ZVsxXSx3PWVbMl0sTz1lWzRdLEU9ZVs1XSxUPWVbNl0sQz1lWzhdLE49ZVs5XSxJPWVbMTBdLEQ9ZVsxMl0sdj1lWzEzXSxMPWVbMTRdLFU9bypnK3MqYitjKncsQT1yKmcrZipiK2wqdyxTPWkqZyt1KmIrcCp3LFA9bypPK3MqRStjKlQsQj1yKk8rZipFK2wqVCxqPWkqTyt1KkUrcCpULEg9bypDK3MqTitjKkksaz1yKkMrZipOK2wqSSxLPWkqQyt1Kk4rcCpJLFg9bypEK3MqditjKkwrZCxSPXIqRCtmKnYrbCpMK20sb3Q9aSpEK3UqditwKkwrXztyZXR1cm4gblswXT1VLG5bMV09QSxuWzJdPVMsblszXT0wLG5bNF09UCxuWzVdPUIsbls2XT1qLG5bN109MCxuWzhdPUgsbls5XT1rLG5bMTBdPUssblsxMV09MCxuWzEyXT1YLG5bMTNdPVIsblsxNF09b3QsblsxNV09MSxufTt3dC5tdWx0aXBseUJ5TWF0cml4Mz1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicm90YXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10WzBdLHI9dFsxXSxpPXRbMl0scz10WzRdLGY9dFs1XSx1PXRbNl0sYz10WzhdLGw9dFs5XSxwPXRbMTBdLGQ9ZVswXSxtPWVbMV0sXz1lWzJdLGc9ZVszXSxiPWVbNF0sdz1lWzVdLE89ZVs2XSxFPWVbN10sVD1lWzhdLEM9bypkK3MqbStjKl8sTj1yKmQrZiptK2wqXyxJPWkqZCt1Km0rcCpfLEQ9bypnK3MqYitjKncsdj1yKmcrZipiK2wqdyxMPWkqZyt1KmIrcCp3LFU9bypPK3MqRStjKlQsQT1yKk8rZipFK2wqVCxTPWkqTyt1KkUrcCpUO3JldHVybiBuWzBdPUMsblsxXT1OLG5bMl09SSxuWzNdPTAsbls0XT1ELG5bNV09dixuWzZdPUwsbls3XT0wLG5bOF09VSxuWzldPUEsblsxMF09UyxuWzExXT0wLG5bMTJdPXRbMTJdLG5bMTNdPXRbMTNdLG5bMTRdPXRbMTRdLG5bMTVdPXRbMTVdLG59O3d0Lm11bHRpcGx5QnlUcmFuc2xhdGlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgidHJhbnNsYXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz1vKnRbMF0rcip0WzRdK2kqdFs4XSt0WzEyXSxmPW8qdFsxXStyKnRbNV0raSp0WzldK3RbMTNdLHU9byp0WzJdK3IqdFs2XStpKnRbMTBdK3RbMTRdO3JldHVybiBuWzBdPXRbMF0sblsxXT10WzFdLG5bMl09dFsyXSxuWzNdPXRbM10sbls0XT10WzRdLG5bNV09dFs1XSxuWzZdPXRbNl0sbls3XT10WzddLG5bOF09dFs4XSxuWzldPXRbOV0sblsxMF09dFsxMF0sblsxMV09dFsxMV0sblsxMl09cyxuWzEzXT1mLG5bMTRdPXUsblsxNV09dFsxNV0sbn07d3QubXVsdGlwbHlCeVNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUueCxyPWUueSxpPWUuejtyZXR1cm4gbz09PTEmJnI9PT0xJiZpPT09MT93dC5jbG9uZSh0LG4pOihuWzBdPW8qdFswXSxuWzFdPW8qdFsxXSxuWzJdPW8qdFsyXSxuWzNdPXRbM10sbls0XT1yKnRbNF0sbls1XT1yKnRbNV0sbls2XT1yKnRbNl0sbls3XT10WzddLG5bOF09aSp0WzhdLG5bOV09aSp0WzldLG5bMTBdPWkqdFsxMF0sblsxMV09dFsxMV0sblsxMl09dFsxMl0sblsxM109dFsxM10sblsxNF09dFsxNF0sblsxNV09dFsxNV0sbil9O3d0Lm11bHRpcGx5QnlVbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSplLG5bMV09dFsxXSplLG5bMl09dFsyXSplLG5bM109dFszXSxuWzRdPXRbNF0qZSxuWzVdPXRbNV0qZSxuWzZdPXRbNl0qZSxuWzddPXRbN10sbls4XT10WzhdKmUsbls5XT10WzldKmUsblsxMF09dFsxMF0qZSxuWzExXT10WzExXSxuWzEyXT10WzEyXSxuWzEzXT10WzEzXSxuWzE0XT10WzE0XSxuWzE1XT10WzE1XSxufTt3dC5tdWx0aXBseUJ5VmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz1lLncsZj10WzBdKm8rdFs0XSpyK3RbOF0qaSt0WzEyXSpzLHU9dFsxXSpvK3RbNV0qcit0WzldKmkrdFsxM10qcyxjPXRbMl0qbyt0WzZdKnIrdFsxMF0qaSt0WzE0XSpzLGw9dFszXSpvK3RbN10qcit0WzExXSppK3RbMTVdKnM7cmV0dXJuIG4ueD1mLG4ueT11LG4uej1jLG4udz1sLG59O3d0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz1lLngscj1lLnksaT1lLnoscz10WzBdKm8rdFs0XSpyK3RbOF0qaSxmPXRbMV0qbyt0WzVdKnIrdFs5XSppLHU9dFsyXSpvK3RbNl0qcit0WzEwXSppO3JldHVybiBuLng9cyxuLnk9ZixuLno9dSxufTt3dC5tdWx0aXBseUJ5UG9pbnQ9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPWUueCxyPWUueSxpPWUueixzPXRbMF0qbyt0WzRdKnIrdFs4XSppK3RbMTJdLGY9dFsxXSpvK3RbNV0qcit0WzldKmkrdFsxM10sdT10WzJdKm8rdFs2XSpyK3RbMTBdKmkrdFsxNF07cmV0dXJuIG4ueD1zLG4ueT1mLG4uej11LG59O3d0Lm11bHRpcGx5QnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZSxuWzFdPXRbMV0qZSxuWzJdPXRbMl0qZSxuWzNdPXRbM10qZSxuWzRdPXRbNF0qZSxuWzVdPXRbNV0qZSxuWzZdPXRbNl0qZSxuWzddPXRbN10qZSxuWzhdPXRbOF0qZSxuWzldPXRbOV0qZSxuWzEwXT10WzEwXSplLG5bMTFdPXRbMTFdKmUsblsxMl09dFsxMl0qZSxuWzEzXT10WzEzXSplLG5bMTRdPXRbMTRdKmUsblsxNV09dFsxNV0qZSxufTt3dC5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlWzBdPS10WzBdLGVbMV09LXRbMV0sZVsyXT0tdFsyXSxlWzNdPS10WzNdLGVbNF09LXRbNF0sZVs1XT0tdFs1XSxlWzZdPS10WzZdLGVbN109LXRbN10sZVs4XT0tdFs4XSxlWzldPS10WzldLGVbMTBdPS10WzEwXSxlWzExXT0tdFsxMV0sZVsxMl09LXRbMTJdLGVbMTNdPS10WzEzXSxlWzE0XT0tdFsxNF0sZVsxNV09LXRbMTVdLGV9O3d0LnRyYW5zcG9zZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dFsxXSxvPXRbMl0scj10WzNdLGk9dFs2XSxzPXRbN10sZj10WzExXTtyZXR1cm4gZVswXT10WzBdLGVbMV09dFs0XSxlWzJdPXRbOF0sZVszXT10WzEyXSxlWzRdPW4sZVs1XT10WzVdLGVbNl09dFs5XSxlWzddPXRbMTNdLGVbOF09byxlWzldPWksZVsxMF09dFsxMF0sZVsxMV09dFsxNF0sZVsxMl09cixlWzEzXT1zLGVbMTRdPWYsZVsxNV09dFsxNV0sZX07d3QuYWJzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT1NYXRoLmFicyh0WzBdKSxlWzFdPU1hdGguYWJzKHRbMV0pLGVbMl09TWF0aC5hYnModFsyXSksZVszXT1NYXRoLmFicyh0WzNdKSxlWzRdPU1hdGguYWJzKHRbNF0pLGVbNV09TWF0aC5hYnModFs1XSksZVs2XT1NYXRoLmFicyh0WzZdKSxlWzddPU1hdGguYWJzKHRbN10pLGVbOF09TWF0aC5hYnModFs4XSksZVs5XT1NYXRoLmFicyh0WzldKSxlWzEwXT1NYXRoLmFicyh0WzEwXSksZVsxMV09TWF0aC5hYnModFsxMV0pLGVbMTJdPU1hdGguYWJzKHRbMTJdKSxlWzEzXT1NYXRoLmFicyh0WzEzXSksZVsxNF09TWF0aC5hYnModFsxNF0pLGVbMTVdPU1hdGguYWJzKHRbMTVdKSxlfTt3dC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnRbMTJdPT09ZVsxMl0mJnRbMTNdPT09ZVsxM10mJnRbMTRdPT09ZVsxNF0mJnRbMF09PT1lWzBdJiZ0WzFdPT09ZVsxXSYmdFsyXT09PWVbMl0mJnRbNF09PT1lWzRdJiZ0WzVdPT09ZVs1XSYmdFs2XT09PWVbNl0mJnRbOF09PT1lWzhdJiZ0WzldPT09ZVs5XSYmdFsxMF09PT1lWzEwXSYmdFszXT09PWVbM10mJnRbN109PT1lWzddJiZ0WzExXT09PWVbMTFdJiZ0WzE1XT09PWVbMTVdfTt3dC5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbj14KG4sMCksdD09PWV8fGgodCkmJmgoZSkmJk1hdGguYWJzKHRbMF0tZVswXSk8PW4mJk1hdGguYWJzKHRbMV0tZVsxXSk8PW4mJk1hdGguYWJzKHRbMl0tZVsyXSk8PW4mJk1hdGguYWJzKHRbM10tZVszXSk8PW4mJk1hdGguYWJzKHRbNF0tZVs0XSk8PW4mJk1hdGguYWJzKHRbNV0tZVs1XSk8PW4mJk1hdGguYWJzKHRbNl0tZVs2XSk8PW4mJk1hdGguYWJzKHRbN10tZVs3XSk8PW4mJk1hdGguYWJzKHRbOF0tZVs4XSk8PW4mJk1hdGguYWJzKHRbOV0tZVs5XSk8PW4mJk1hdGguYWJzKHRbMTBdLWVbMTBdKTw9biYmTWF0aC5hYnModFsxMV0tZVsxMV0pPD1uJiZNYXRoLmFicyh0WzEyXS1lWzEyXSk8PW4mJk1hdGguYWJzKHRbMTNdLWVbMTNdKTw9biYmTWF0aC5hYnModFsxNF0tZVsxNF0pPD1uJiZNYXRoLmFicyh0WzE1XS1lWzE1XSk8PW59O3d0LmdldFRyYW5zbGF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PXRbMTJdLGUueT10WzEzXSxlLno9dFsxNF0sZX07d3QuZ2V0TWF0cml4Mz1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpLGVbMF09dFswXSxlWzFdPXRbMV0sZVsyXT10WzJdLGVbM109dFs0XSxlWzRdPXRbNV0sZVs1XT10WzZdLGVbNl09dFs4XSxlWzddPXRbOV0sZVs4XT10WzEwXSxlfTtGQz1uZXcgUSxCQz1uZXcgUSxVQz1uZXcgaGUsVkM9bmV3IGhlKDAsMCwwLDEpO3d0LmludmVyc2U9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXRbMF0sbz10WzRdLHI9dFs4XSxpPXRbMTJdLHM9dFsxXSxmPXRbNV0sdT10WzldLGM9dFsxM10sbD10WzJdLHA9dFs2XSxkPXRbMTBdLG09dFsxNF0sXz10WzNdLGc9dFs3XSxiPXRbMTFdLHc9dFsxNV0sTz1kKncsRT1tKmIsVD1wKncsQz1tKmcsTj1wKmIsST1kKmcsRD1sKncsdj1tKl8sTD1sKmIsVT1kKl8sQT1sKmcsUz1wKl8sUD1PKmYrQyp1K04qYy0oRSpmK1QqdStJKmMpLEI9RSpzK0QqdStVKmMtKE8qcyt2KnUrTCpjKSxqPVQqcyt2KmYrQSpjLShDKnMrRCpmK1MqYyksSD1JKnMrTCpmK1MqdS0oTipzK1UqZitBKnUpLGs9RSpvK1QqcitJKmktKE8qbytDKnIrTippKSxLPU8qbit2KnIrTCppLShFKm4rRCpyK1UqaSksWD1DKm4rRCpvK1MqaS0oVCpuK3YqbytBKmkpLFI9TipuK1UqbytBKnItKEkqbitMKm8rUypyKTtPPXIqYyxFPWkqdSxUPW8qYyxDPWkqZixOPW8qdSxJPXIqZixEPW4qYyx2PWkqcyxMPW4qdSxVPXIqcyxBPW4qZixTPW8qcztsZXQgb3Q9TypnK0MqYitOKnctKEUqZytUKmIrSSp3KSxhdD1FKl8rRCpiK1Uqdy0oTypfK3YqYitMKncpLHB0PVQqXyt2KmcrQSp3LShDKl8rRCpnK1MqdykseXQ9SSpfK0wqZytTKmItKE4qXytVKmcrQSpiKSxydD1UKmQrSSptK0UqcC0oTiptK08qcCtDKmQpLFB0PUwqbStPKmwrdipkLShEKmQrVSptK0UqbCksZ3Q9RCpwK1MqbStDKmwtKEEqbStUKmwrdipwKSxDdD1BKmQrTipsK1UqcC0oTCpwK1MqZCtJKmwpLG10PW4qUCtvKkIrcipqK2kqSDtpZihNYXRoLmFicyhtdCk8TS5FUFNJTE9OMjEpe2lmKFEuZXF1YWxzRXBzaWxvbih3dC5nZXRNYXRyaXgzKHQsRkMpLEJDLE0uRVBTSUxPTjcpJiZoZS5lcXVhbHMod3QuZ2V0Um93KHQsMyxVQyksVkMpKXJldHVybiBlWzBdPTAsZVsxXT0wLGVbMl09MCxlWzNdPTAsZVs0XT0wLGVbNV09MCxlWzZdPTAsZVs3XT0wLGVbOF09MCxlWzldPTAsZVsxMF09MCxlWzExXT0wLGVbMTJdPS10WzEyXSxlWzEzXT0tdFsxM10sZVsxNF09LXRbMTRdLGVbMTVdPTEsZTt0aHJvdyBuZXcgQWUoIm1hdHJpeCBpcyBub3QgaW52ZXJ0aWJsZSBiZWNhdXNlIGl0cyBkZXRlcm1pbmF0ZSBpcyB6ZXJvLiIpfXJldHVybiBtdD0xL210LGVbMF09UCptdCxlWzFdPUIqbXQsZVsyXT1qKm10LGVbM109SCptdCxlWzRdPWsqbXQsZVs1XT1LKm10LGVbNl09WCptdCxlWzddPVIqbXQsZVs4XT1vdCptdCxlWzldPWF0Km10LGVbMTBdPXB0Km10LGVbMTFdPXl0Km10LGVbMTJdPXJ0Km10LGVbMTNdPVB0Km10LGVbMTRdPWd0Km10LGVbMTVdPUN0Km10LGV9O3d0LmludmVyc2VUcmFuc2Zvcm1hdGlvbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dFswXSxvPXRbMV0scj10WzJdLGk9dFs0XSxzPXRbNV0sZj10WzZdLHU9dFs4XSxjPXRbOV0sbD10WzEwXSxwPXRbMTJdLGQ9dFsxM10sbT10WzE0XSxfPS1uKnAtbypkLXIqbSxnPS1pKnAtcypkLWYqbSxiPS11KnAtYypkLWwqbTtyZXR1cm4gZVswXT1uLGVbMV09aSxlWzJdPXUsZVszXT0wLGVbNF09byxlWzVdPXMsZVs2XT1jLGVbN109MCxlWzhdPXIsZVs5XT1mLGVbMTBdPWwsZVsxMV09MCxlWzEyXT1fLGVbMTNdPWcsZVsxNF09YixlWzE1XT0xLGV9O2tDPW5ldyB3dDt3dC5pbnZlcnNlVHJhbnNwb3NlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksd3QuaW52ZXJzZSh3dC50cmFuc3Bvc2UodCxrQyksZSl9O3d0LklERU5USVRZPU9iamVjdC5mcmVlemUobmV3IHd0KDEsMCwwLDAsMCwxLDAsMCwwLDAsMSwwLDAsMCwwLDEpKTt3dC5aRVJPPU9iamVjdC5mcmVlemUobmV3IHd0KDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDAsMCwwLDApKTt3dC5DT0xVTU4wUk9XMD0wO3d0LkNPTFVNTjBST1cxPTE7d3QuQ09MVU1OMFJPVzI9Mjt3dC5DT0xVTU4wUk9XMz0zO3d0LkNPTFVNTjFST1cwPTQ7d3QuQ09MVU1OMVJPVzE9NTt3dC5DT0xVTU4xUk9XMj02O3d0LkNPTFVNTjFST1czPTc7d3QuQ09MVU1OMlJPVzA9ODt3dC5DT0xVTU4yUk9XMT05O3d0LkNPTFVNTjJST1cyPTEwO3d0LkNPTFVNTjJST1czPTExO3d0LkNPTFVNTjNST1cwPTEyO3d0LkNPTFVNTjNST1cxPTEzO3d0LkNPTFVNTjNST1cyPTE0O3d0LkNPTFVNTjNST1czPTE1O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHd0LnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gd3QucGFja2VkTGVuZ3RofX19KTt3dC5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHd0LmNsb25lKHRoaXMsdCl9O3d0LnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHd0LmVxdWFscyh0aGlzLHQpfTt3dC5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHRbMF09PT1lW25dJiZ0WzFdPT09ZVtuKzFdJiZ0WzJdPT09ZVtuKzJdJiZ0WzNdPT09ZVtuKzNdJiZ0WzRdPT09ZVtuKzRdJiZ0WzVdPT09ZVtuKzVdJiZ0WzZdPT09ZVtuKzZdJiZ0WzddPT09ZVtuKzddJiZ0WzhdPT09ZVtuKzhdJiZ0WzldPT09ZVtuKzldJiZ0WzEwXT09PWVbbisxMF0mJnRbMTFdPT09ZVtuKzExXSYmdFsxMl09PT1lW24rMTJdJiZ0WzEzXT09PWVbbisxM10mJnRbMTRdPT09ZVtuKzE0XSYmdFsxNV09PT1lW24rMTVdfTt3dC5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUpe3JldHVybiB3dC5lcXVhbHNFcHNpbG9uKHRoaXMsdCxlKX07d3QucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXNbMF19LCAke3RoaXNbNF19LCAke3RoaXNbOF19LCAke3RoaXNbMTJdfSkKKCR7dGhpc1sxXX0sICR7dGhpc1s1XX0sICR7dGhpc1s5XX0sICR7dGhpc1sxM119KQooJHt0aGlzWzJdfSwgJHt0aGlzWzZdfSwgJHt0aGlzWzEwXX0sICR7dGhpc1sxNF19KQooJHt0aGlzWzNdfSwgJHt0aGlzWzddfSwgJHt0aGlzWzExXX0sICR7dGhpc1sxNV19KWB9O3N0PXd0fSk7ZnVuY3Rpb24gR0ModCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLHkuZGVmaW5lZCgiaXRlbVRvRmluZCIsZSkseS5kZWZpbmVkKCJjb21wYXJhdG9yIixuKTtsZXQgbz0wLHI9dC5sZW5ndGgtMSxpLHM7Zm9yKDtvPD1yOyl7aWYoaT1+figobytyKS8yKSxzPW4odFtpXSxlKSxzPDApe289aSsxO2NvbnRpbnVlfWlmKHM+MCl7cj1pLTE7Y29udGludWV9cmV0dXJuIGl9cmV0dXJufihyKzEpfXZhciBHcyxObT1aKCgpPT57WHQoKTtHcz1HQ30pO2Z1bmN0aW9uIHpDKHQsZSxuLG8scil7dGhpcy54UG9sZVdhbmRlcj10LHRoaXMueVBvbGVXYW5kZXI9ZSx0aGlzLnhQb2xlT2Zmc2V0PW4sdGhpcy55UG9sZU9mZnNldD1vLHRoaXMudXQxTWludXNVdGM9cn12YXIgYWYsSW09WigoKT0+e2FmPXpDfSk7ZnVuY3Rpb24gakModCl7aWYodD09PW51bGx8fGlzTmFOKHQpKXRocm93IG5ldyBGKCJ5ZWFyIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgbnVtYmVyLiIpO3JldHVybiB0JTQ9PT0wJiZ0JTEwMCE9PTB8fHQlNDAwPT09MH12YXIgZmYsdm09WigoKT0+e0h0KCk7ZmY9akN9KTtmdW5jdGlvbiBIQyh0LGUsbixvLHIsaSxzLGYpe3Q9eCh0LDEpLGU9eChlLDEpLG49eChuLDEpLG89eChvLDApLHI9eChyLDApLGk9eChpLDApLHM9eChzLDApLGY9eChmLCExKSxnKCksYigpLHRoaXMueWVhcj10LHRoaXMubW9udGg9ZSx0aGlzLmRheT1uLHRoaXMuaG91cj1vLHRoaXMubWludXRlPXIsdGhpcy5zZWNvbmQ9aSx0aGlzLm1pbGxpc2Vjb25kPXMsdGhpcy5pc0xlYXBTZWNvbmQ9ZjtmdW5jdGlvbiBnKCl7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIlllYXIiLHQsMSkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIlllYXIiLHQsOTk5OSkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIk1vbnRoIixlLDEpLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJNb250aCIsZSwxMikseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIkRheSIsbiwxKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiRGF5IixuLDMxKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiSG91ciIsbywwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiSG91ciIsbywyMykseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIk1pbnV0ZSIsciwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygiTWludXRlIixyLDU5KSx5LnR5cGVPZi5ib29sKCJJc0xlYXBTZWNvbmQiLGYpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJTZWNvbmQiLGksMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIlNlY29uZCIsaSxmPzYwOjU5KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiTWlsbGlzZWNvbmQiLHMsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuKCJNaWxsaXNlY29uZCIscywxZTMpfWZ1bmN0aW9uIGIoKXtsZXQgdz1lPT09MiYmZmYodCk/eDFbZS0xXSsxOngxW2UtMV07aWYobj53KXRocm93IG5ldyBGKCJNb250aCBhbmQgRGF5IHJlcHJlc2VudHMgaW52YWxpZCBkYXRlIil9fXZhciB4MSxXbCxQMT1aKCgpPT57WHQoKTtJdCgpO0h0KCk7dm0oKTt4MT1bMzEsMjgsMzEsMzAsMzEsMzAsMzEsMzEsMzAsMzEsMzAsMzFdO1dsPUhDfSk7ZnVuY3Rpb24gcUModCxlKXt0aGlzLmp1bGlhbkRhdGU9dCx0aGlzLm9mZnNldD1lfXZhciBXZSxMbT1aKCgpPT57V2U9cUN9KTt2YXIgS0MseW4sWGw9WigoKT0+e0tDPXtTRUNPTkRTX1BFUl9NSUxMSVNFQ09ORDouMDAxLFNFQ09ORFNfUEVSX01JTlVURTo2MCxNSU5VVEVTX1BFUl9IT1VSOjYwLEhPVVJTX1BFUl9EQVk6MjQsU0VDT05EU19QRVJfSE9VUjozNjAwLE1JTlVURVNfUEVSX0RBWToxNDQwLFNFQ09ORFNfUEVSX0RBWTo4NjQwMCxEQVlTX1BFUl9KVUxJQU5fQ0VOVFVSWTozNjUyNSxQSUNPU0VDT05EOjFlLTksTU9ESUZJRURfSlVMSUFOX0RBVEVfRElGRkVSRU5DRToyNDAwMDAwNWUtMX0seW49T2JqZWN0LmZyZWV6ZShLQyl9KTt2YXIgV0MsT2UsWWw9WigoKT0+e1dDPXtVVEM6MCxUQUk6MX0sT2U9T2JqZWN0LmZyZWV6ZShXQyl9KTtmdW5jdGlvbiBEbSh0LGUpe3JldHVybiBHdC5jb21wYXJlKHQuanVsaWFuRGF0ZSxlLmp1bGlhbkRhdGUpfWZ1bmN0aW9uIEpsKHQpe0tjLmp1bGlhbkRhdGU9dDtsZXQgZT1HdC5sZWFwU2Vjb25kcyxuPUdzKGUsS2MsRG0pO248MCYmKG49fm4pLG4+PWUubGVuZ3RoJiYobj1lLmxlbmd0aC0xKTtsZXQgbz1lW25dLm9mZnNldDtuPjAmJkd0LnNlY29uZHNEaWZmZXJlbmNlKGVbbl0uanVsaWFuRGF0ZSx0KT5vJiYobi0tLG89ZVtuXS5vZmZzZXQpLEd0LmFkZFNlY29uZHModCxvLHQpfWZ1bmN0aW9uIE0xKHQsZSl7S2MuanVsaWFuRGF0ZT10O2xldCBuPUd0LmxlYXBTZWNvbmRzLG89R3MobixLYyxEbSk7aWYobzwwJiYobz1+byksbz09PTApcmV0dXJuIEd0LmFkZFNlY29uZHModCwtblswXS5vZmZzZXQsZSk7aWYobz49bi5sZW5ndGgpcmV0dXJuIEd0LmFkZFNlY29uZHModCwtbltvLTFdLm9mZnNldCxlKTtsZXQgcj1HdC5zZWNvbmRzRGlmZmVyZW5jZShuW29dLmp1bGlhbkRhdGUsdCk7aWYocj09PTApcmV0dXJuIEd0LmFkZFNlY29uZHModCwtbltvXS5vZmZzZXQsZSk7aWYoIShyPD0xKSlyZXR1cm4gR3QuYWRkU2Vjb25kcyh0LC1uWy0tb10ub2Zmc2V0LGUpfWZ1bmN0aW9uIG5zKHQsZSxuKXtsZXQgbz1lL3luLlNFQ09ORFNfUEVSX0RBWXwwO3JldHVybiB0Kz1vLGUtPXluLlNFQ09ORFNfUEVSX0RBWSpvLGU8MCYmKHQtLSxlKz15bi5TRUNPTkRTX1BFUl9EQVkpLG4uZGF5TnVtYmVyPXQsbi5zZWNvbmRzT2ZEYXk9ZSxufWZ1bmN0aW9uIEZtKHQsZSxuLG8scixpLHMpe2xldCBmPShlLTE0KS8xMnwwLHU9dCs0ODAwK2YsYz0oMTQ2MSp1LzR8MCkrKDM2NyooZS0yLTEyKmYpLzEyfDApLSgzKigodSsxMDApLzEwMHwwKS80fDApK24tMzIwNzU7bz1vLTEyLG88MCYmKG8rPTI0KTtsZXQgbD1pKyhvKnluLlNFQ09ORFNfUEVSX0hPVVIrcip5bi5TRUNPTkRTX1BFUl9NSU5VVEUrcyp5bi5TRUNPTkRTX1BFUl9NSUxMSVNFQ09ORCk7cmV0dXJuIGw+PTQzMjAwJiYoYy09MSksW2MsbF19ZnVuY3Rpb24gR3QodCxlLG4pe3RoaXMuZGF5TnVtYmVyPXZvaWQgMCx0aGlzLnNlY29uZHNPZkRheT12b2lkIDAsdD14KHQsMCksZT14KGUsMCksbj14KG4sT2UuVVRDKTtsZXQgbz10fDA7ZT1lKyh0LW8pKnluLlNFQ09ORFNfUEVSX0RBWSxucyhvLGUsdGhpcyksbj09PU9lLlVUQyYmSmwodGhpcyl9dmFyIE4xLCRsLFpsLEtjLFhDLFlDLCRDLFpDLFFDLEJtLEpDLHR4LGV4LERyLFFsLGtuLHRwPVooKCk9PntObSgpO0l0KCk7ZnQoKTtIdCgpO1AxKCk7dm0oKTtMbSgpO1hsKCk7WWwoKTtOMT1uZXcgV2wsJGw9WzMxLDI4LDMxLDMwLDMxLDMwLDMxLDMxLDMwLDMxLDMwLDMxXSxabD0yOTtLYz1uZXcgV2U7WEM9L14oXGR7NH0pJC8sWUM9L14oXGR7NH0pLShcZHsyfSkkLywkQz0vXihcZHs0fSktPyhcZHszfSkkLyxaQz0vXihcZHs0fSktP1coXGR7Mn0pLT8oXGR7MX0pPyQvLFFDPS9eKFxkezR9KS0/KFxkezJ9KS0/KFxkezJ9KSQvLEJtPS8oW1orXC1dKT8oXGR7Mn0pPzo/KFxkezJ9KT8kLyxKQz0vXihcZHsyfSkoXC5cZCspPy8uc291cmNlK0JtLnNvdXJjZSx0eD0vXihcZHsyfSk6PyhcZHsyfSkoXC5cZCspPy8uc291cmNlK0JtLnNvdXJjZSxleD0vXihcZHsyfSk6PyhcZHsyfSk6PyhcZHsyfSkoXC5cZCspPy8uc291cmNlK0JtLnNvdXJjZSxEcj0iSW52YWxpZCBJU08gODYwMSBkYXRlLiI7R3QuZnJvbUdyZWdvcmlhbkRhdGU9ZnVuY3Rpb24odCxlKXtpZighKHQgaW5zdGFuY2VvZiBXbCkpdGhyb3cgbmV3IEYoImRhdGUgbXVzdCBiZSBhIHZhbGlkIEdyZWdvcmlhbkRhdGUuIik7bGV0IG49Rm0odC55ZWFyLHQubW9udGgsdC5kYXksdC5ob3VyLHQubWludXRlLHQuc2Vjb25kLHQubWlsbGlzZWNvbmQpO3JldHVybiBoKGUpPyhucyhuWzBdLG5bMV0sZSksSmwoZSksZSk6bmV3IEd0KG5bMF0sblsxXSxPZS5VVEMpfTtHdC5mcm9tRGF0ZT1mdW5jdGlvbih0LGUpe2lmKCEodCBpbnN0YW5jZW9mIERhdGUpfHxpc05hTih0LmdldFRpbWUoKSkpdGhyb3cgbmV3IEYoImRhdGUgbXVzdCBiZSBhIHZhbGlkIEphdmFTY3JpcHQgRGF0ZS4iKTtsZXQgbj1GbSh0LmdldFVUQ0Z1bGxZZWFyKCksdC5nZXRVVENNb250aCgpKzEsdC5nZXRVVENEYXRlKCksdC5nZXRVVENIb3VycygpLHQuZ2V0VVRDTWludXRlcygpLHQuZ2V0VVRDU2Vjb25kcygpLHQuZ2V0VVRDTWlsbGlzZWNvbmRzKCkpO3JldHVybiBoKGUpPyhucyhuWzBdLG5bMV0sZSksSmwoZSksZSk6bmV3IEd0KG5bMF0sblsxXSxPZS5VVEMpfTtHdC5mcm9tSXNvODYwMT1mdW5jdGlvbih0LGUpe2lmKHR5cGVvZiB0IT0ic3RyaW5nIil0aHJvdyBuZXcgRihEcik7dD10LnJlcGxhY2UoIiwiLCIuIik7bGV0IG49dC5zcGxpdCgiVCIpLG8scj0xLGk9MSxzPTAsZj0wLHU9MCxjPTAsbD1uWzBdLHA9blsxXSxkLG07aWYoIWgobCkpdGhyb3cgbmV3IEYoRHIpO2xldCBfO2lmKG49bC5tYXRjaChRQyksbiE9PW51bGwpe2lmKF89bC5zcGxpdCgiLSIpLmxlbmd0aC0xLF8+MCYmXyE9PTIpdGhyb3cgbmV3IEYoRHIpO289K25bMV0scj0rblsyXSxpPStuWzNdfWVsc2UgaWYobj1sLm1hdGNoKFlDKSxuIT09bnVsbClvPStuWzFdLHI9K25bMl07ZWxzZSBpZihuPWwubWF0Y2goWEMpLG4hPT1udWxsKW89K25bMV07ZWxzZXtsZXQgTztpZihuPWwubWF0Y2goJEMpLG4hPT1udWxsKXtpZihvPStuWzFdLE89K25bMl0sbT1mZihvKSxPPDF8fG0mJk8+MzY2fHwhbSYmTz4zNjUpdGhyb3cgbmV3IEYoRHIpfWVsc2UgaWYobj1sLm1hdGNoKFpDKSxuIT09bnVsbCl7bz0rblsxXTtsZXQgRT0rblsyXSxUPStuWzNdfHwwO2lmKF89bC5zcGxpdCgiLSIpLmxlbmd0aC0xLF8+MCYmKCFoKG5bM10pJiZfIT09MXx8aChuWzNdKSYmXyE9PTIpKXRocm93IG5ldyBGKERyKTtsZXQgQz1uZXcgRGF0ZShEYXRlLlVUQyhvLDAsNCkpO089RSo3K1QtQy5nZXRVVENEYXkoKS0zfWVsc2UgdGhyb3cgbmV3IEYoRHIpO2Q9bmV3IERhdGUoRGF0ZS5VVEMobywwLDEpKSxkLnNldFVUQ0RhdGUoTykscj1kLmdldFVUQ01vbnRoKCkrMSxpPWQuZ2V0VVRDRGF0ZSgpfWlmKG09ZmYobykscjwxfHxyPjEyfHxpPDF8fChyIT09Mnx8IW0pJiZpPiRsW3ItMV18fG0mJnI9PT0yJiZpPlpsKXRocm93IG5ldyBGKERyKTtsZXQgZztpZihoKHApKXtpZihuPXAubWF0Y2goZXgpLG4hPT1udWxsKXtpZihfPXAuc3BsaXQoIjoiKS5sZW5ndGgtMSxfPjAmJl8hPT0yJiZfIT09Myl0aHJvdyBuZXcgRihEcik7cz0rblsxXSxmPStuWzJdLHU9K25bM10sYz0rKG5bNF18fDApKjFlMyxnPTV9ZWxzZSBpZihuPXAubWF0Y2godHgpLG4hPT1udWxsKXtpZihfPXAuc3BsaXQoIjoiKS5sZW5ndGgtMSxfPjIpdGhyb3cgbmV3IEYoRHIpO3M9K25bMV0sZj0rblsyXSx1PSsoblszXXx8MCkqNjAsZz00fWVsc2UgaWYobj1wLm1hdGNoKEpDKSxuIT09bnVsbClzPStuWzFdLGY9KyhuWzJdfHwwKSo2MCxnPTM7ZWxzZSB0aHJvdyBuZXcgRihEcik7aWYoZj49NjB8fHU+PTYxfHxzPjI0fHxzPT09MjQmJihmPjB8fHU+MHx8Yz4wKSl0aHJvdyBuZXcgRihEcik7bGV0IE89bltnXSxFPStuW2crMV0sVD0rKG5bZysyXXx8MCk7c3dpdGNoKE8pe2Nhc2UiKyI6cz1zLUUsZj1mLVQ7YnJlYWs7Y2FzZSItIjpzPXMrRSxmPWYrVDticmVhaztjYXNlIloiOmJyZWFrO2RlZmF1bHQ6Zj1mK25ldyBEYXRlKERhdGUuVVRDKG8sci0xLGkscyxmKSkuZ2V0VGltZXpvbmVPZmZzZXQoKTticmVha319bGV0IGI9dT09PTYwO2ZvcihiJiZ1LS07Zj49NjA7KWYtPTYwLHMrKztmb3IoO3M+PTI0OylzLT0yNCxpKys7Zm9yKGQ9bSYmcj09PTI/Wmw6JGxbci0xXTtpPmQ7KWktPWQscisrLHI+MTImJihyLT0xMixvKyspLGQ9bSYmcj09PTI/Wmw6JGxbci0xXTtmb3IoO2Y8MDspZis9NjAscy0tO2Zvcig7czwwOylzKz0yNCxpLS07Zm9yKDtpPDE7KXItLSxyPDEmJihyKz0xMixvLS0pLGQ9bSYmcj09PTI/Wmw6JGxbci0xXSxpKz1kO2xldCB3PUZtKG8scixpLHMsZix1LGMpO3JldHVybiBoKGUpPyhucyh3WzBdLHdbMV0sZSksSmwoZSkpOmU9bmV3IEd0KHdbMF0sd1sxXSxPZS5VVEMpLGImJkd0LmFkZFNlY29uZHMoZSwxLGUpLGV9O0d0Lm5vdz1mdW5jdGlvbih0KXtyZXR1cm4gR3QuZnJvbURhdGUobmV3IERhdGUsdCl9O1FsPW5ldyBHdCgwLDAsT2UuVEFJKTtHdC50b0dyZWdvcmlhbkRhdGU9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtsZXQgbj0hMSxvPU0xKHQsUWwpO2gobyl8fChHdC5hZGRTZWNvbmRzKHQsLTEsUWwpLG89TTEoUWwsUWwpLG49ITApO2xldCByPW8uZGF5TnVtYmVyLGk9by5zZWNvbmRzT2ZEYXk7aT49NDMyMDAmJihyKz0xKTtsZXQgcz1yKzY4NTY5fDAsZj00KnMvMTQ2MDk3fDA7cz1zLSgoMTQ2MDk3KmYrMykvNHwwKXwwO2xldCB1PTRlMyoocysxKS8xNDYxMDAxfDA7cz1zLSgxNDYxKnUvNHwwKSszMXwwO2xldCBjPTgwKnMvMjQ0N3wwLGw9cy0oMjQ0NypjLzgwfDApfDA7cz1jLzExfDA7bGV0IHA9YysyLTEyKnN8MCxkPTEwMCooZi00OSkrdStzfDAsbT1pL3luLlNFQ09ORFNfUEVSX0hPVVJ8MCxfPWktbSp5bi5TRUNPTkRTX1BFUl9IT1VSLGc9Xy95bi5TRUNPTkRTX1BFUl9NSU5VVEV8MDtfPV8tZyp5bi5TRUNPTkRTX1BFUl9NSU5VVEU7bGV0IGI9X3wwLHc9KF8tYikveW4uU0VDT05EU19QRVJfTUlMTElTRUNPTkQ7cmV0dXJuIG0rPTEyLG0+MjMmJihtLT0yNCksbiYmKGIrPTEpLGgoZSk/KGUueWVhcj1kLGUubW9udGg9cCxlLmRheT1sLGUuaG91cj1tLGUubWludXRlPWcsZS5zZWNvbmQ9YixlLm1pbGxpc2Vjb25kPXcsZS5pc0xlYXBTZWNvbmQ9bixlKTpuZXcgV2woZCxwLGwsbSxnLGIsdyxuKX07R3QudG9EYXRlPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJqdWxpYW5EYXRlIGlzIHJlcXVpcmVkLiIpO2xldCBlPUd0LnRvR3JlZ29yaWFuRGF0ZSh0LE4xKSxuPWUuc2Vjb25kO3JldHVybiBlLmlzTGVhcFNlY29uZCYmKG4tPTEpLG5ldyBEYXRlKERhdGUuVVRDKGUueWVhcixlLm1vbnRoLTEsZS5kYXksZS5ob3VyLGUubWludXRlLG4sZS5taWxsaXNlY29uZCkpfTtHdC50b0lzbzg2MDE9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtsZXQgbj1HdC50b0dyZWdvcmlhbkRhdGUodCxOMSksbz1uLnllYXIscj1uLm1vbnRoLGk9bi5kYXkscz1uLmhvdXIsZj1uLm1pbnV0ZSx1PW4uc2Vjb25kLGM9bi5taWxsaXNlY29uZDtvPT09MWU0JiZyPT09MSYmaT09PTEmJnM9PT0wJiZmPT09MCYmdT09PTAmJmM9PT0wJiYobz05OTk5LHI9MTIsaT0zMSxzPTI0KTtsZXQgbDtyZXR1cm4haChlKSYmYyE9PTA/KGw9KGMqLjAxKS50b1N0cmluZygpLnJlcGxhY2UoIi4iLCIiKSxgJHtvLnRvU3RyaW5nKCkucGFkU3RhcnQoNCwiMCIpfS0ke3IudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9LSR7aS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX1UJHtzLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke2YudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7dS50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0uJHtsfVpgKTohaChlKXx8ZT09PTA/YCR7by50b1N0cmluZygpLnBhZFN0YXJ0KDQsIjAiKX0tJHtyLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS0ke2kudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9VCR7cy50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHtmLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfToke3UudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9WmA6KGw9KGMqLjAxKS50b0ZpeGVkKGUpLnJlcGxhY2UoIi4iLCIiKS5zbGljZSgwLGUpLGAke28udG9TdHJpbmcoKS5wYWRTdGFydCg0LCIwIil9LSR7ci50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX0tJHtpLnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfVQke3MudG9TdHJpbmcoKS5wYWRTdGFydCgyLCIwIil9OiR7Zi50b1N0cmluZygpLnBhZFN0YXJ0KDIsIjAiKX06JHt1LnRvU3RyaW5nKCkucGFkU3RhcnQoMiwiMCIpfS4ke2x9WmApfTtHdC5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUuZGF5TnVtYmVyPXQuZGF5TnVtYmVyLGUuc2Vjb25kc09mRGF5PXQuc2Vjb25kc09mRGF5LGUpOm5ldyBHdCh0LmRheU51bWJlcix0LnNlY29uZHNPZkRheSxPZS5UQUkpfTtHdC5jb21wYXJlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImxlZnQgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoInJpZ2h0IGlzIHJlcXVpcmVkLiIpO2xldCBuPXQuZGF5TnVtYmVyLWUuZGF5TnVtYmVyO3JldHVybiBuIT09MD9uOnQuc2Vjb25kc09mRGF5LWUuc2Vjb25kc09mRGF5fTtHdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQuZGF5TnVtYmVyPT09ZS5kYXlOdW1iZXImJnQuc2Vjb25kc09mRGF5PT09ZS5zZWNvbmRzT2ZEYXl9O0d0LmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPXgobiwwKSx0PT09ZXx8aCh0KSYmaChlKSYmTWF0aC5hYnMoR3Quc2Vjb25kc0RpZmZlcmVuY2UodCxlKSk8PW59O0d0LnRvdGFsRGF5cz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtyZXR1cm4gdC5kYXlOdW1iZXIrdC5zZWNvbmRzT2ZEYXkveW4uU0VDT05EU19QRVJfREFZfTtHdC5zZWNvbmRzRGlmZmVyZW5jZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJsZWZ0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJyaWdodCBpcyByZXF1aXJlZC4iKTtyZXR1cm4odC5kYXlOdW1iZXItZS5kYXlOdW1iZXIpKnluLlNFQ09ORFNfUEVSX0RBWSsodC5zZWNvbmRzT2ZEYXktZS5zZWNvbmRzT2ZEYXkpfTtHdC5kYXlzRGlmZmVyZW5jZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJsZWZ0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJyaWdodCBpcyByZXF1aXJlZC4iKTtsZXQgbj10LmRheU51bWJlci1lLmRheU51bWJlcixvPSh0LnNlY29uZHNPZkRheS1lLnNlY29uZHNPZkRheSkveW4uU0VDT05EU19QRVJfREFZO3JldHVybiBuK299O0d0LmNvbXB1dGVUYWlNaW51c1V0Yz1mdW5jdGlvbih0KXtLYy5qdWxpYW5EYXRlPXQ7bGV0IGU9R3QubGVhcFNlY29uZHMsbj1HcyhlLEtjLERtKTtyZXR1cm4gbjwwJiYobj1+biwtLW4sbjwwJiYobj0wKSksZVtuXS5vZmZzZXR9O0d0LmFkZFNlY29uZHM9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJqdWxpYW5EYXRlIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJzZWNvbmRzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJyZXN1bHQgaXMgcmVxdWlyZWQuIik7cmV0dXJuIG5zKHQuZGF5TnVtYmVyLHQuc2Vjb25kc09mRGF5K2Usbil9O0d0LmFkZE1pbnV0ZXM9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJqdWxpYW5EYXRlIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJtaW51dGVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJyZXN1bHQgaXMgcmVxdWlyZWQuIik7bGV0IG89dC5zZWNvbmRzT2ZEYXkrZSp5bi5TRUNPTkRTX1BFUl9NSU5VVEU7cmV0dXJuIG5zKHQuZGF5TnVtYmVyLG8sbil9O0d0LmFkZEhvdXJzPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigianVsaWFuRGF0ZSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigiaG91cnMgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoInJlc3VsdCBpcyByZXF1aXJlZC4iKTtsZXQgbz10LnNlY29uZHNPZkRheStlKnluLlNFQ09ORFNfUEVSX0hPVVI7cmV0dXJuIG5zKHQuZGF5TnVtYmVyLG8sbil9O0d0LmFkZERheXM9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJqdWxpYW5EYXRlIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJkYXlzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJyZXN1bHQgaXMgcmVxdWlyZWQuIik7bGV0IG89dC5kYXlOdW1iZXIrZTtyZXR1cm4gbnMobyx0LnNlY29uZHNPZkRheSxuKX07R3QubGVzc1RoYW49ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3QuY29tcGFyZSh0LGUpPDB9O0d0Lmxlc3NUaGFuT3JFcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gR3QuY29tcGFyZSh0LGUpPD0wfTtHdC5ncmVhdGVyVGhhbj1mdW5jdGlvbih0LGUpe3JldHVybiBHdC5jb21wYXJlKHQsZSk+MH07R3QuZ3JlYXRlclRoYW5PckVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiBHdC5jb21wYXJlKHQsZSk+PTB9O0d0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gR3QuY2xvbmUodGhpcyx0KX07R3QucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gR3QuZXF1YWxzKHRoaXMsdCl9O0d0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEd0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtHdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gR3QudG9Jc284NjAxKHRoaXMpfTtHdC5sZWFwU2Vjb25kcz1bbmV3IFdlKG5ldyBHdCgyNDQxMzE3LDQzMjEwLE9lLlRBSSksMTApLG5ldyBXZShuZXcgR3QoMjQ0MTQ5OSw0MzIxMSxPZS5UQUkpLDExKSxuZXcgV2UobmV3IEd0KDI0NDE2ODMsNDMyMTIsT2UuVEFJKSwxMiksbmV3IFdlKG5ldyBHdCgyNDQyMDQ4LDQzMjEzLE9lLlRBSSksMTMpLG5ldyBXZShuZXcgR3QoMjQ0MjQxMyw0MzIxNCxPZS5UQUkpLDE0KSxuZXcgV2UobmV3IEd0KDI0NDI3NzgsNDMyMTUsT2UuVEFJKSwxNSksbmV3IFdlKG5ldyBHdCgyNDQzMTQ0LDQzMjE2LE9lLlRBSSksMTYpLG5ldyBXZShuZXcgR3QoMjQ0MzUwOSw0MzIxNyxPZS5UQUkpLDE3KSxuZXcgV2UobmV3IEd0KDI0NDM4NzQsNDMyMTgsT2UuVEFJKSwxOCksbmV3IFdlKG5ldyBHdCgyNDQ0MjM5LDQzMjE5LE9lLlRBSSksMTkpLG5ldyBXZShuZXcgR3QoMjQ0NDc4Niw0MzIyMCxPZS5UQUkpLDIwKSxuZXcgV2UobmV3IEd0KDI0NDUxNTEsNDMyMjEsT2UuVEFJKSwyMSksbmV3IFdlKG5ldyBHdCgyNDQ1NTE2LDQzMjIyLE9lLlRBSSksMjIpLG5ldyBXZShuZXcgR3QoMjQ0NjI0Nyw0MzIyMyxPZS5UQUkpLDIzKSxuZXcgV2UobmV3IEd0KDI0NDcxNjEsNDMyMjQsT2UuVEFJKSwyNCksbmV3IFdlKG5ldyBHdCgyNDQ3ODkyLDQzMjI1LE9lLlRBSSksMjUpLG5ldyBXZShuZXcgR3QoMjQ0ODI1Nyw0MzIyNixPZS5UQUkpLDI2KSxuZXcgV2UobmV3IEd0KDI0NDg4MDQsNDMyMjcsT2UuVEFJKSwyNyksbmV3IFdlKG5ldyBHdCgyNDQ5MTY5LDQzMjI4LE9lLlRBSSksMjgpLG5ldyBXZShuZXcgR3QoMjQ0OTUzNCw0MzIyOSxPZS5UQUkpLDI5KSxuZXcgV2UobmV3IEd0KDI0NTAwODMsNDMyMzAsT2UuVEFJKSwzMCksbmV3IFdlKG5ldyBHdCgyNDUwNjMwLDQzMjMxLE9lLlRBSSksMzEpLG5ldyBXZShuZXcgR3QoMjQ1MTE3OSw0MzIzMixPZS5UQUkpLDMyKSxuZXcgV2UobmV3IEd0KDI0NTM3MzYsNDMyMzMsT2UuVEFJKSwzMyksbmV3IFdlKG5ldyBHdCgyNDU0ODMyLDQzMjM0LE9lLlRBSSksMzQpLG5ldyBXZShuZXcgR3QoMjQ1NjEwOSw0MzIzNSxPZS5UQUkpLDM1KSxuZXcgV2UobmV3IEd0KDI0NTcyMDQsNDMyMzYsT2UuVEFJKSwzNiksbmV3IFdlKG5ldyBHdCgyNDU3NzU0LDQzMjM3LE9lLlRBSSksMzcpXTtrbj1HdH0pO3ZhciBJMT1YbigoV2MsWGMpPT57LyohIGh0dHBzOi8vbXRocy5iZS9wdW55Y29kZSB2MS40LjAgYnkgQG1hdGhpYXMgKi8oZnVuY3Rpb24odCl7dmFyIGU9dHlwZW9mIFdjPT0ib2JqZWN0IiYmV2MmJiFXYy5ub2RlVHlwZSYmV2Msbj10eXBlb2YgWGM9PSJvYmplY3QiJiZYYyYmIVhjLm5vZGVUeXBlJiZYYyxvPXR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWw7KG8uZ2xvYmFsPT09b3x8by53aW5kb3c9PT1vfHxvLnNlbGY9PT1vKSYmKHQ9byk7dmFyIHIsaT0yMTQ3NDgzNjQ3LHM9MzYsZj0xLHU9MjYsYz0zOCxsPTcwMCxwPTcyLGQ9MTI4LG09Ii0iLF89L154bi0tLyxnPS9bXlx4MjAtXHg3RV0vLGI9L1tceDJFXHUzMDAyXHVGRjBFXHVGRjYxXS9nLHc9e292ZXJmbG93OiJPdmVyZmxvdzogaW5wdXQgbmVlZHMgd2lkZXIgaW50ZWdlcnMgdG8gcHJvY2VzcyIsIm5vdC1iYXNpYyI6IklsbGVnYWwgaW5wdXQgPj0gMHg4MCAobm90IGEgYmFzaWMgY29kZSBwb2ludCkiLCJpbnZhbGlkLWlucHV0IjoiSW52YWxpZCBpbnB1dCJ9LE89cy1mLEU9TWF0aC5mbG9vcixUPVN0cmluZy5mcm9tQ2hhckNvZGUsQztmdW5jdGlvbiBOKGspe3Rocm93IG5ldyBSYW5nZUVycm9yKHdba10pfWZ1bmN0aW9uIEkoayxLKXtmb3IodmFyIFg9ay5sZW5ndGgsUj1bXTtYLS07KVJbWF09SyhrW1hdKTtyZXR1cm4gUn1mdW5jdGlvbiBEKGssSyl7dmFyIFg9ay5zcGxpdCgiQCIpLFI9IiI7WC5sZW5ndGg+MSYmKFI9WFswXSsiQCIsaz1YWzFdKSxrPWsucmVwbGFjZShiLCIuIik7dmFyIG90PWsuc3BsaXQoIi4iKSxhdD1JKG90LEspLmpvaW4oIi4iKTtyZXR1cm4gUithdH1mdW5jdGlvbiB2KGspe2Zvcih2YXIgSz1bXSxYPTAsUj1rLmxlbmd0aCxvdCxhdDtYPFI7KW90PWsuY2hhckNvZGVBdChYKyspLG90Pj01NTI5NiYmb3Q8PTU2MzE5JiZYPFI/KGF0PWsuY2hhckNvZGVBdChYKyspLChhdCY2NDUxMik9PTU2MzIwP0sucHVzaCgoKG90JjEwMjMpPDwxMCkrKGF0JjEwMjMpKzY1NTM2KTooSy5wdXNoKG90KSxYLS0pKTpLLnB1c2gob3QpO3JldHVybiBLfWZ1bmN0aW9uIEwoayl7cmV0dXJuIEkoayxmdW5jdGlvbihLKXt2YXIgWD0iIjtyZXR1cm4gSz42NTUzNSYmKEstPTY1NTM2LFgrPVQoSz4+PjEwJjEwMjN8NTUyOTYpLEs9NTYzMjB8SyYxMDIzKSxYKz1UKEspLFh9KS5qb2luKCIiKX1mdW5jdGlvbiBVKGspe3JldHVybiBrLTQ4PDEwP2stMjI6ay02NTwyNj9rLTY1OmstOTc8MjY/ay05NzpzfWZ1bmN0aW9uIEEoayxLKXtyZXR1cm4gaysyMis3NSooazwyNiktKChLIT0wKTw8NSl9ZnVuY3Rpb24gUyhrLEssWCl7dmFyIFI9MDtmb3Ioaz1YP0Uoay9sKTprPj4xLGsrPUUoay9LKTtrPk8qdT4+MTtSKz1zKWs9RShrL08pO3JldHVybiBFKFIrKE8rMSkqay8oaytjKSl9ZnVuY3Rpb24gUChrKXt2YXIgSz1bXSxYPWsubGVuZ3RoLFIsb3Q9MCxhdD1kLHB0PXAseXQscnQsUHQsZ3QsQ3QsbXQsdXQsdnQsenQ7Zm9yKHl0PWsubGFzdEluZGV4T2YobSkseXQ8MCYmKHl0PTApLHJ0PTA7cnQ8eXQ7KytydClrLmNoYXJDb2RlQXQocnQpPj0xMjgmJk4oIm5vdC1iYXNpYyIpLEsucHVzaChrLmNoYXJDb2RlQXQocnQpKTtmb3IoUHQ9eXQ+MD95dCsxOjA7UHQ8WDspe2ZvcihndD1vdCxDdD0xLG10PXM7UHQ+PVgmJk4oImludmFsaWQtaW5wdXQiKSx1dD1VKGsuY2hhckNvZGVBdChQdCsrKSksKHV0Pj1zfHx1dD5FKChpLW90KS9DdCkpJiZOKCJvdmVyZmxvdyIpLG90Kz11dCpDdCx2dD1tdDw9cHQ/ZjptdD49cHQrdT91Om10LXB0LCEodXQ8dnQpO210Kz1zKXp0PXMtdnQsQ3Q+RShpL3p0KSYmTigib3ZlcmZsb3ciKSxDdCo9enQ7Uj1LLmxlbmd0aCsxLHB0PVMob3QtZ3QsUixndD09MCksRShvdC9SKT5pLWF0JiZOKCJvdmVyZmxvdyIpLGF0Kz1FKG90L1IpLG90JT1SLEsuc3BsaWNlKG90KyssMCxhdCl9cmV0dXJuIEwoSyl9ZnVuY3Rpb24gQihrKXt2YXIgSyxYLFIsb3QsYXQscHQseXQscnQsUHQsZ3QsQ3QsbXQ9W10sdXQsdnQsenQsbWU7Zm9yKGs9dihrKSx1dD1rLmxlbmd0aCxLPWQsWD0wLGF0PXAscHQ9MDtwdDx1dDsrK3B0KUN0PWtbcHRdLEN0PDEyOCYmbXQucHVzaChUKEN0KSk7Zm9yKFI9b3Q9bXQubGVuZ3RoLG90JiZtdC5wdXNoKG0pO1I8dXQ7KXtmb3IoeXQ9aSxwdD0wO3B0PHV0OysrcHQpQ3Q9a1twdF0sQ3Q+PUsmJkN0PHl0JiYoeXQ9Q3QpO2Zvcih2dD1SKzEseXQtSz5FKChpLVgpL3Z0KSYmTigib3ZlcmZsb3ciKSxYKz0oeXQtSykqdnQsSz15dCxwdD0wO3B0PHV0OysrcHQpaWYoQ3Q9a1twdF0sQ3Q8SyYmKytYPmkmJk4oIm92ZXJmbG93IiksQ3Q9PUspe2ZvcihydD1YLFB0PXM7Z3Q9UHQ8PWF0P2Y6UHQ+PWF0K3U/dTpQdC1hdCwhKHJ0PGd0KTtQdCs9cyltZT1ydC1ndCx6dD1zLWd0LG10LnB1c2goVChBKGd0K21lJXp0LDApKSkscnQ9RShtZS96dCk7bXQucHVzaChUKEEocnQsMCkpKSxhdD1TKFgsdnQsUj09b3QpLFg9MCwrK1J9KytYLCsrS31yZXR1cm4gbXQuam9pbigiIil9ZnVuY3Rpb24gaihrKXtyZXR1cm4gRChrLGZ1bmN0aW9uKEspe3JldHVybiBfLnRlc3QoSyk/UChLLnNsaWNlKDQpLnRvTG93ZXJDYXNlKCkpOkt9KX1mdW5jdGlvbiBIKGspe3JldHVybiBEKGssZnVuY3Rpb24oSyl7cmV0dXJuIGcudGVzdChLKT8ieG4tLSIrQihLKTpLfSl9aWYocj17dmVyc2lvbjoiMS4zLjIiLHVjczI6e2RlY29kZTp2LGVuY29kZTpMfSxkZWNvZGU6UCxlbmNvZGU6Qix0b0FTQ0lJOkgsdG9Vbmljb2RlOmp9LHR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJnR5cGVvZiBkZWZpbmUuYW1kPT0ib2JqZWN0IiYmZGVmaW5lLmFtZClkZWZpbmUoInB1bnljb2RlIixmdW5jdGlvbigpe3JldHVybiByfSk7ZWxzZSBpZihlJiZuKWlmKFhjLmV4cG9ydHM9PWUpbi5leHBvcnRzPXI7ZWxzZSBmb3IoQyBpbiByKXIuaGFzT3duUHJvcGVydHkoQykmJihlW0NdPXJbQ10pO2Vsc2UgdC5wdW55Y29kZT1yfSkoV2MpfSk7dmFyIEwxPVhuKCh2MSxlcCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKiBJUHY2IFN1cHBvcnQKICoKICogVmVyc2lvbjogMS4xOS4xMQogKgogKiBBdXRob3I6IFJvZG5leSBSZWhtCiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzLwogKgogKiBMaWNlbnNlZCB1bmRlcgogKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UKICoKICovKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3R5cGVvZiBlcD09Im9iamVjdCImJmVwLmV4cG9ydHM/ZXAuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6dC5JUHY2PWUodCl9KSh2MSxmdW5jdGlvbih0KXsidXNlIHN0cmljdCI7dmFyIGU9dCYmdC5JUHY2O2Z1bmN0aW9uIG4ocil7dmFyIGk9ci50b0xvd2VyQ2FzZSgpLHM9aS5zcGxpdCgiOiIpLGY9cy5sZW5ndGgsdT04O3NbMF09PT0iIiYmc1sxXT09PSIiJiZzWzJdPT09IiI/KHMuc2hpZnQoKSxzLnNoaWZ0KCkpOnNbMF09PT0iIiYmc1sxXT09PSIiP3Muc2hpZnQoKTpzW2YtMV09PT0iIiYmc1tmLTJdPT09IiImJnMucG9wKCksZj1zLmxlbmd0aCxzW2YtMV0uaW5kZXhPZigiLiIpIT09LTEmJih1PTcpO3ZhciBjO2ZvcihjPTA7YzxmJiZzW2NdIT09IiI7YysrKTtpZihjPHUpZm9yKHMuc3BsaWNlKGMsMSwiMDAwMCIpO3MubGVuZ3RoPHU7KXMuc3BsaWNlKGMsMCwiMDAwMCIpO2Zvcih2YXIgbCxwPTA7cDx1O3ArKyl7bD1zW3BdLnNwbGl0KCIiKTtmb3IodmFyIGQ9MDtkPDMmJihsWzBdPT09IjAiJiZsLmxlbmd0aD4xKTtkKyspbC5zcGxpY2UoMCwxKTtzW3BdPWwuam9pbigiIil9dmFyIG09LTEsXz0wLGc9MCxiPS0xLHc9ITE7Zm9yKHA9MDtwPHU7cCsrKXc/c1twXT09PSIwIj9nKz0xOih3PSExLGc+XyYmKG09YixfPWcpKTpzW3BdPT09IjAiJiYodz0hMCxiPXAsZz0xKTtnPl8mJihtPWIsXz1nKSxfPjEmJnMuc3BsaWNlKG0sXywiIiksZj1zLmxlbmd0aDt2YXIgTz0iIjtmb3Ioc1swXT09PSIiJiYoTz0iOiIpLHA9MDtwPGYmJihPKz1zW3BdLHAhPT1mLTEpO3ArKylPKz0iOiI7cmV0dXJuIHNbZi0xXT09PSIiJiYoTys9IjoiKSxPfWZ1bmN0aW9uIG8oKXtyZXR1cm4gdC5JUHY2PT09dGhpcyYmKHQuSVB2Nj1lKSx0aGlzfXJldHVybntiZXN0Om4sbm9Db25mbGljdDpvfX0pfSk7dmFyIEYxPVhuKChEMSxucCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKiBTZWNvbmQgTGV2ZWwgRG9tYWluIChTTEQpIFN1cHBvcnQKICoKICogVmVyc2lvbjogMS4xOS4xMQogKgogKiBBdXRob3I6IFJvZG5leSBSZWhtCiAqIFdlYjogaHR0cDovL21lZGlhbGl6ZS5naXRodWIuaW8vVVJJLmpzLwogKgogKiBMaWNlbnNlZCB1bmRlcgogKiAgIE1JVCBMaWNlbnNlIGh0dHA6Ly93d3cub3BlbnNvdXJjZS5vcmcvbGljZW5zZXMvbWl0LWxpY2Vuc2UKICoKICovKGZ1bmN0aW9uKHQsZSl7InVzZSBzdHJpY3QiO3R5cGVvZiBucD09Im9iamVjdCImJm5wLmV4cG9ydHM/bnAuZXhwb3J0cz1lKCk6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoZSk6dC5TZWNvbmRMZXZlbERvbWFpbnM9ZSh0KX0pKEQxLGZ1bmN0aW9uKHQpeyJ1c2Ugc3RyaWN0Ijt2YXIgZT10JiZ0LlNlY29uZExldmVsRG9tYWlucyxuPXtsaXN0OnthYzoiIGNvbSBnb3YgbWlsIG5ldCBvcmcgIixhZToiIGFjIGNvIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHBybyBzY2ggIixhZjoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixhbDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsYW86IiBjbyBlZCBndiBpdCBvZyBwYiAiLGFyOiIgY29tIGVkdSBnb2IgZ292IGludCBtaWwgbmV0IG9yZyB0dXIgIixhdDoiIGFjIGNvIGd2IG9yICIsYXU6IiBhc24gY29tIGNzaXJvIGVkdSBnb3YgaWQgbmV0IG9yZyAiLGJhOiIgY28gY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgcnMgdW5iaSB1bm1vIHVuc2EgdW50eiB1bnplICIsYmI6IiBiaXogY28gY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnIHN0b3JlIHR2ICIsYmg6IiBiaXogY2MgY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnICIsYm46IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsYm86IiBjb20gZWR1IGdvYiBnb3YgaW50IG1pbCBuZXQgb3JnIHR2ICIsYnI6IiBhZG0gYWR2IGFnciBhbSBhcnEgYXJ0IGF0byBiIGJpbyBibG9nIGJtZCBjaW0gY25nIGNudCBjb20gY29vcCBlY24gZWR1IGVuZyBlc3AgZXRjIGV0aSBmYXIgZmxvZyBmbSBmbmQgZm90IGZzdCBnMTIgZ2dmIGdvdiBpbWIgaW5kIGluZiBqb3IganVzIGxlbCBtYXQgbWVkIG1pbCBtdXMgbmV0IG5vbSBub3QgbnRyIG9kbyBvcmcgcHBnIHBybyBwc2MgcHNpIHFzbCByZWMgc2xnIHNydiB0bXAgdHJkIHR1ciB0diB2ZXQgdmxvZyB3aWtpIHpsZyAiLGJzOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLGJ6OiIgZHUgZXQgb20gb3YgcmcgIixjYToiIGFiIGJjIG1iIG5iIG5mIG5sIG5zIG50IG51IG9uIHBlIHFjIHNrIHlrICIsY2s6IiBiaXogY28gZWR1IGdlbiBnb3YgaW5mbyBuZXQgb3JnICIsY246IiBhYyBhaCBiaiBjb20gY3EgZWR1IGZqIGdkIGdvdiBncyBneCBneiBoYSBoYiBoZSBoaSBobCBobiBqbCBqcyBqeCBsbiBtaWwgbmV0IG5tIG54IG9yZyBxaCBzYyBzZCBzaCBzbiBzeCB0aiB0dyB4aiB4eiB5biB6aiAiLGNvOiIgY29tIGVkdSBnb3YgbWlsIG5ldCBub20gb3JnICIsY3I6IiBhYyBjIGNvIGVkIGZpIGdvIG9yIHNhICIsY3k6IiBhYyBiaXogY29tIGVrbG9nZXMgZ292IGx0ZCBuYW1lIG5ldCBvcmcgcGFybGlhbWVudCBwcmVzcyBwcm8gdG0gIixkbzoiIGFydCBjb20gZWR1IGdvYiBnb3YgbWlsIG5ldCBvcmcgc2xkIHdlYiAiLGR6OiIgYXJ0IGFzc28gY29tIGVkdSBnb3YgbmV0IG9yZyBwb2wgIixlYzoiIGNvbSBlZHUgZmluIGdvdiBpbmZvIG1lZCBtaWwgbmV0IG9yZyBwcm8gIixlZzoiIGNvbSBlZHUgZXVuIGdvdiBtaWwgbmFtZSBuZXQgb3JnIHNjaSAiLGVyOiIgY29tIGVkdSBnb3YgaW5kIG1pbCBuZXQgb3JnIHJvY2hlc3QgdyAiLGVzOiIgY29tIGVkdSBnb2Igbm9tIG9yZyAiLGV0OiIgYml6IGNvbSBlZHUgZ292IGluZm8gbmFtZSBuZXQgb3JnICIsZmo6IiBhYyBiaXogY29tIGluZm8gbWlsIG5hbWUgbmV0IG9yZyBwcm8gIixmazoiIGFjIGNvIGdvdiBuZXQgbm9tIG9yZyAiLGZyOiIgYXNzbyBjb20gZiBnb3V2IG5vbSBwcmQgcHJlc3NlIHRtICIsZ2c6IiBjbyBuZXQgb3JnICIsZ2g6IiBjb20gZWR1IGdvdiBtaWwgb3JnICIsZ246IiBhYyBjb20gZ292IG5ldCBvcmcgIixncjoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsZ3Q6IiBjb20gZWR1IGdvYiBpbmQgbWlsIG5ldCBvcmcgIixndToiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixoazoiIGNvbSBlZHUgZ292IGlkdiBuZXQgb3JnICIsaHU6IiAyMDAwIGFncmFyIGJvbHQgY2FzaW5vIGNpdHkgY28gZXJvdGljYSBlcm90aWthIGZpbG0gZm9ydW0gZ2FtZXMgaG90ZWwgaW5mbyBpbmdhdGxhbiBqb2dhc3oga29ueXZlbG8gbGFrYXMgbWVkaWEgbmV3cyBvcmcgcHJpdiByZWtsYW0gc2V4IHNob3Agc3BvcnQgc3VsaSBzemV4IHRtIHRvenNkZSB1dGF6YXMgdmlkZW8gIixpZDoiIGFjIGNvIGdvIG1pbCBuZXQgb3Igc2NoIHdlYiAiLGlsOiIgYWMgY28gZ292IGlkZiBrMTIgbXVuaSBuZXQgb3JnICIsaW46IiBhYyBjbyBlZHUgZXJuZXQgZmlybSBnZW4gZ292IGkgaW5kIG1pbCBuZXQgbmljIG9yZyByZXMgIixpcToiIGNvbSBlZHUgZ292IGkgbWlsIG5ldCBvcmcgIixpcjoiIGFjIGNvIGRuc3NlYyBnb3YgaSBpZCBuZXQgb3JnIHNjaCAiLGl0OiIgZWR1IGdvdiAiLGplOiIgY28gbmV0IG9yZyAiLGpvOiIgY29tIGVkdSBnb3YgbWlsIG5hbWUgbmV0IG9yZyBzY2ggIixqcDoiIGFjIGFkIGNvIGVkIGdvIGdyIGxnIG5lIG9yICIsa2U6IiBhYyBjbyBnbyBpbmZvIG1lIG1vYmkgbmUgb3Igc2MgIixraDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnIHBlciAiLGtpOiIgYml6IGNvbSBkZSBlZHUgZ292IGluZm8gbW9iIG5ldCBvcmcgdGVsICIsa206IiBhc3NvIGNvbSBjb29wIGVkdSBnb3V2IGsgbWVkZWNpbiBtaWwgbm9tIG5vdGFpcmVzIHBoYXJtYWNpZW5zIHByZXNzZSB0bSB2ZXRlcmluYWlyZSAiLGtuOiIgZWR1IGdvdiBuZXQgb3JnICIsa3I6IiBhYyBidXNhbiBjaHVuZ2J1ayBjaHVuZ25hbSBjbyBkYWVndSBkYWVqZW9uIGVzIGdhbmd3b24gZ28gZ3dhbmdqdSBneWVvbmdidWsgZ3llb25nZ2kgZ3llb25nbmFtIGhzIGluY2hlb24gamVqdSBqZW9uYnVrIGplb25uYW0gayBrZyBtaWwgbXMgbmUgb3IgcGUgcmUgc2Mgc2VvdWwgdWxzYW4gIixrdzoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixreToiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixrejoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsbGI6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbGs6IiBhc3NuIGNvbSBlZHUgZ292IGdycCBob3RlbCBpbnQgbHRkIG5ldCBuZ28gb3JnIHNjaCBzb2Mgd2ViICIsbHI6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsbHY6IiBhc24gY29tIGNvbmYgZWR1IGdvdiBpZCBtaWwgbmV0IG9yZyAiLGx5OiIgY29tIGVkdSBnb3YgaWQgbWVkIG5ldCBvcmcgcGxjIHNjaCAiLG1hOiIgYWMgY28gZ292IG0gbmV0IG9yZyBwcmVzcyAiLG1jOiIgYXNzbyB0bSAiLG1lOiIgYWMgY28gZWR1IGdvdiBpdHMgbmV0IG9yZyBwcml2ICIsbWc6IiBjb20gZWR1IGdvdiBtaWwgbm9tIG9yZyBwcmQgdG0gIixtazoiIGNvbSBlZHUgZ292IGluZiBuYW1lIG5ldCBvcmcgcHJvICIsbWw6IiBjb20gZWR1IGdvdiBuZXQgb3JnIHByZXNzZSAiLG1uOiIgZWR1IGdvdiBvcmcgIixtbzoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixtdDoiIGNvbSBlZHUgZ292IG5ldCBvcmcgIixtdjoiIGFlcm8gYml6IGNvbSBjb29wIGVkdSBnb3YgaW5mbyBpbnQgbWlsIG11c2V1bSBuYW1lIG5ldCBvcmcgcHJvICIsbXc6IiBhYyBjbyBjb20gY29vcCBlZHUgZ292IGludCBtdXNldW0gbmV0IG9yZyAiLG14OiIgY29tIGVkdSBnb2IgbmV0IG9yZyAiLG15OiIgY29tIGVkdSBnb3YgbWlsIG5hbWUgbmV0IG9yZyBzY2ggIixuZjoiIGFydHMgY29tIGZpcm0gaW5mbyBuZXQgb3RoZXIgcGVyIHJlYyBzdG9yZSB3ZWIgIixuZzoiIGJpeiBjb20gZWR1IGdvdiBtaWwgbW9iaSBuYW1lIG5ldCBvcmcgc2NoICIsbmk6IiBhYyBjbyBjb20gZWR1IGdvYiBtaWwgbmV0IG5vbSBvcmcgIixucDoiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIsbnI6IiBiaXogY29tIGVkdSBnb3YgaW5mbyBuZXQgb3JnICIsb206IiBhYyBiaXogY28gY29tIGVkdSBnb3YgbWVkIG1pbCBtdXNldW0gbmV0IG9yZyBwcm8gc2NoICIscGU6IiBjb20gZWR1IGdvYiBtaWwgbmV0IG5vbSBvcmcgc2xkICIscGg6IiBjb20gZWR1IGdvdiBpIG1pbCBuZXQgbmdvIG9yZyAiLHBrOiIgYml6IGNvbSBlZHUgZmFtIGdvYiBnb2sgZ29uIGdvcCBnb3MgZ292IG5ldCBvcmcgd2ViICIscGw6IiBhcnQgYmlhbHlzdG9rIGJpeiBjb20gZWR1IGdkYSBnZGFuc2sgZ29yem93IGdvdiBpbmZvIGthdG93aWNlIGtyYWtvdyBsb2R6IGx1YmxpbiBtaWwgbmV0IG5nbyBvbHN6dHluIG9yZyBwb3puYW4gcHdyIHJhZG9tIHNsdXBzayBzemN6ZWNpbiB0b3J1biB3YXJzemF3YSB3YXcgd3JvYyB3cm9jbGF3IHpnb3JhICIscHI6IiBhYyBiaXogY29tIGVkdSBlc3QgZ292IGluZm8gaXNsYSBuYW1lIG5ldCBvcmcgcHJvIHByb2YgIixwczoiIGNvbSBlZHUgZ292IG5ldCBvcmcgcGxvIHNlYyAiLHB3OiIgYmVsYXUgY28gZWQgZ28gbmUgb3IgIixybzoiIGFydHMgY29tIGZpcm0gaW5mbyBub20gbnQgb3JnIHJlYyBzdG9yZSB0bSB3d3cgIixyczoiIGFjIGNvIGVkdSBnb3YgaW4gb3JnICIsc2I6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsc2M6IiBjb20gZWR1IGdvdiBuZXQgb3JnICIsc2g6IiBjbyBjb20gZWR1IGdvdiBuZXQgbm9tIG9yZyAiLHNsOiIgY29tIGVkdSBnb3YgbmV0IG9yZyAiLHN0OiIgY28gY29tIGNvbnN1bGFkbyBlZHUgZW1iYWl4YWRhIGdvdiBtaWwgbmV0IG9yZyBwcmluY2lwZSBzYW90b21lIHN0b3JlICIsc3Y6IiBjb20gZWR1IGdvYiBvcmcgcmVkICIsc3o6IiBhYyBjbyBvcmcgIix0cjoiIGF2IGJicyBiZWwgYml6IGNvbSBkciBlZHUgZ2VuIGdvdiBpbmZvIGsxMiBuYW1lIG5ldCBvcmcgcG9sIHRlbCB0c2sgdHYgd2ViICIsdHQ6IiBhZXJvIGJpeiBjYXQgY28gY29tIGNvb3AgZWR1IGdvdiBpbmZvIGludCBqb2JzIG1pbCBtb2JpIG11c2V1bSBuYW1lIG5ldCBvcmcgcHJvIHRlbCB0cmF2ZWwgIix0dzoiIGNsdWIgY29tIGViaXogZWR1IGdhbWUgZ292IGlkdiBtaWwgbmV0IG9yZyAiLG11OiIgYWMgY28gY29tIGdvdiBuZXQgb3Igb3JnICIsbXo6IiBhYyBjbyBlZHUgZ292IG9yZyAiLG5hOiIgY28gY29tICIsbno6IiBhYyBjbyBjcmkgZ2VlayBnZW4gZ292dCBoZWFsdGggaXdpIG1hb3JpIG1pbCBuZXQgb3JnIHBhcmxpYW1lbnQgc2Nob29sICIscGE6IiBhYm8gYWMgY29tIGVkdSBnb2IgaW5nIG1lZCBuZXQgbm9tIG9yZyBzbGQgIixwdDoiIGNvbSBlZHUgZ292IGludCBuZXQgbm9tZSBvcmcgcHVibCAiLHB5OiIgY29tIGVkdSBnb3YgbWlsIG5ldCBvcmcgIixxYToiIGNvbSBlZHUgZ292IG1pbCBuZXQgb3JnICIscmU6IiBhc3NvIGNvbSBub20gIixydToiIGFjIGFkeWdleWEgYWx0YWkgYW11ciBhcmtoYW5nZWxzayBhc3RyYWtoYW4gYmFzaGtpcmlhIGJlbGdvcm9kIGJpciBicnlhbnNrIGJ1cnlhdGlhIGNiZyBjaGVsIGNoZWx5YWJpbnNrIGNoaXRhIGNodWtvdGthIGNodXZhc2hpYSBjb20gZGFnZXN0YW4gZS1idXJnIGVkdSBnb3YgZ3Jvem55IGludCBpcmt1dHNrIGl2YW5vdm8gaXpoZXZzayBqYXIgam9zaGthci1vbGEga2FsbXlraWEga2FsdWdhIGthbWNoYXRrYSBrYXJlbGlhIGthemFuIGtjaHIga2VtZXJvdm8ga2hhYmFyb3ZzayBraGFrYXNzaWEga2h2IGtpcm92IGtvZW5pZyBrb21pIGtvc3Ryb21hIGtyYW5veWFyc2sga3ViYW4ga3VyZ2FuIGt1cnNrIGxpcGV0c2sgbWFnYWRhbiBtYXJpIG1hcmktZWwgbWFyaW5lIG1pbCBtb3Jkb3ZpYSBtb3NyZWcgbXNrIG11cm1hbnNrIG5hbGNoaWsgbmV0IG5ub3Ygbm92IG5vdm9zaWJpcnNrIG5zayBvbXNrIG9yZW5idXJnIG9yZyBvcnlvbCBwZW56YSBwZXJtIHBwIHBza292IHB0eiBybmQgcnlhemFuIHNha2hhbGluIHNhbWFyYSBzYXJhdG92IHNpbWJpcnNrIHNtb2xlbnNrIHNwYiBzdGF2cm9wb2wgc3R2IHN1cmd1dCB0YW1ib3YgdGF0YXJzdGFuIHRvbSB0b21zayB0c2FyaXRzeW4gdHNrIHR1bGEgdHV2YSB0dmVyIHR5dW1lbiB1ZG0gdWRtdXJ0aWEgdWxhbi11ZGUgdmxhZGlrYXZrYXogdmxhZGltaXIgdmxhZGl2b3N0b2sgdm9sZ29ncmFkIHZvbG9nZGEgdm9yb25lemggdnJuIHZ5YXRrYSB5YWt1dGlhIHlhbWFsIHlla2F0ZXJpbmJ1cmcgeXV6aG5vLXNha2hhbGluc2sgIixydzoiIGFjIGNvIGNvbSBlZHUgZ291diBnb3YgaW50IG1pbCBuZXQgIixzYToiIGNvbSBlZHUgZ292IG1lZCBuZXQgb3JnIHB1YiBzY2ggIixzZDoiIGNvbSBlZHUgZ292IGluZm8gbWVkIG5ldCBvcmcgdHYgIixzZToiIGEgYWMgYiBiZCBjIGQgZSBmIGcgaCBpIGsgbCBtIG4gbyBvcmcgcCBwYXJ0aSBwcCBwcmVzcyByIHMgdCB0bSB1IHcgeCB5IHogIixzZzoiIGNvbSBlZHUgZ292IGlkbiBuZXQgb3JnIHBlciAiLHNuOiIgYXJ0IGNvbSBlZHUgZ291diBvcmcgcGVyc28gdW5pdiAiLHN5OiIgY29tIGVkdSBnb3YgbWlsIG5ldCBuZXdzIG9yZyAiLHRoOiIgYWMgY28gZ28gaW4gbWkgbmV0IG9yICIsdGo6IiBhYyBiaXogY28gY29tIGVkdSBnbyBnb3YgaW5mbyBpbnQgbWlsIG5hbWUgbmV0IG5pYyBvcmcgdGVzdCB3ZWIgIix0bjoiIGFncmluZXQgY29tIGRlZmVuc2UgZWR1bmV0IGVucyBmaW4gZ292IGluZCBpbmZvIGludGwgbWluY29tIG5hdCBuZXQgb3JnIHBlcnNvIHJucnQgcm5zIHJudSB0b3VyaXNtICIsdHo6IiBhYyBjbyBnbyBuZSBvciAiLHVhOiIgYml6IGNoZXJrYXNzeSBjaGVybmlnb3YgY2hlcm5vdnRzeSBjayBjbiBjbyBjb20gY3JpbWVhIGN2IGRuIGRuZXByb3BldHJvdnNrIGRvbmV0c2sgZHAgZWR1IGdvdiBpZiBpbiBpdmFuby1mcmFua2l2c2sga2gga2hhcmtvdiBraGVyc29uIGtobWVsbml0c2tpeSBraWV2IGtpcm92b2dyYWQga20ga3Iga3Mga3YgbGcgbHVnYW5zayBsdXRzayBsdml2IG1lIG1rIG5ldCBuaWtvbGFldiBvZCBvZGVzc2Egb3JnIHBsIHBvbHRhdmEgcHAgcm92bm8gcnYgc2ViYXN0b3BvbCBzdW15IHRlIHRlcm5vcGlsIHV6aGdvcm9kIHZpbm5pY2Egdm4gemFwb3Jpemh6aGUgemhpdG9taXIgenAgenQgIix1ZzoiIGFjIGNvIGdvIG5lIG9yIG9yZyBzYyAiLHVrOiIgYWMgYmwgYnJpdGlzaC1saWJyYXJ5IGNvIGN5bSBnb3YgZ292dCBpY25ldCBqZXQgbGVhIGx0ZCBtZSBtaWwgbW9kIG5hdGlvbmFsLWxpYnJhcnktc2NvdGxhbmQgbmVsIG5ldCBuaHMgbmljIG5scyBvcmcgb3JnbiBwYXJsaWFtZW50IHBsYyBwb2xpY2Ugc2NoIHNjb3Qgc29jICIsdXM6IiBkbmkgZmVkIGlzYSBraWRzIG5zbiAiLHV5OiIgY29tIGVkdSBndWIgbWlsIG5ldCBvcmcgIix2ZToiIGNvIGNvbSBlZHUgZ29iIGluZm8gbWlsIG5ldCBvcmcgd2ViICIsdmk6IiBjbyBjb20gazEyIG5ldCBvcmcgIix2bjoiIGFjIGJpeiBjb20gZWR1IGdvdiBoZWFsdGggaW5mbyBpbnQgbmFtZSBuZXQgb3JnIHBybyAiLHllOiIgY28gY29tIGdvdiBsdGQgbWUgbmV0IG9yZyBwbGMgIix5dToiIGFjIGNvIGVkdSBnb3Ygb3JnICIsemE6IiBhYyBhZ3JpYyBhbHQgYm91cnNlIGNpdHkgY28gY3liZXJuZXQgZGIgZWR1IGdvdiBncm9uZGFyIGlhY2Nlc3MgaW10IGluY2EgbGFuZGVzaWduIGxhdyBtaWwgbmV0IG5nbyBuaXMgbm9tIG9saXZldHRpIG9yZyBwaXggc2Nob29sIHRtIHdlYiAiLHptOiIgYWMgY28gY29tIGVkdSBnb3YgbmV0IG9yZyBzY2ggIixjb206ImFyIGJyIGNuIGRlIGV1IGdiIGdyIGh1IGpwbiBrciBubyBxYyBydSBzYSBzZSB1ayB1cyB1eSB6YSAiLG5ldDoiZ2IganAgc2UgdWsgIixvcmc6ImFlIixkZToiY29tICJ9LGhhczpmdW5jdGlvbihvKXt2YXIgcj1vLmxhc3RJbmRleE9mKCIuIik7aWYocjw9MHx8cj49by5sZW5ndGgtMSlyZXR1cm4hMTt2YXIgaT1vLmxhc3RJbmRleE9mKCIuIixyLTEpO2lmKGk8PTB8fGk+PXItMSlyZXR1cm4hMTt2YXIgcz1uLmxpc3Rbby5zbGljZShyKzEpXTtyZXR1cm4gcz9zLmluZGV4T2YoIiAiK28uc2xpY2UoaSsxLHIpKyIgIik+PTA6ITF9LGlzOmZ1bmN0aW9uKG8pe3ZhciByPW8ubGFzdEluZGV4T2YoIi4iKTtpZihyPD0wfHxyPj1vLmxlbmd0aC0xKXJldHVybiExO3ZhciBpPW8ubGFzdEluZGV4T2YoIi4iLHItMSk7aWYoaT49MClyZXR1cm4hMTt2YXIgcz1uLmxpc3Rbby5zbGljZShyKzEpXTtyZXR1cm4gcz9zLmluZGV4T2YoIiAiK28uc2xpY2UoMCxyKSsiICIpPj0wOiExfSxnZXQ6ZnVuY3Rpb24obyl7dmFyIHI9by5sYXN0SW5kZXhPZigiLiIpO2lmKHI8PTB8fHI+PW8ubGVuZ3RoLTEpcmV0dXJuIG51bGw7dmFyIGk9by5sYXN0SW5kZXhPZigiLiIsci0xKTtpZihpPD0wfHxpPj1yLTEpcmV0dXJuIG51bGw7dmFyIHM9bi5saXN0W28uc2xpY2UocisxKV07cmV0dXJuIXN8fHMuaW5kZXhPZigiICIrby5zbGljZShpKzEscikrIiAiKTwwP251bGw6by5zbGljZShpKzEpfSxub0NvbmZsaWN0OmZ1bmN0aW9uKCl7cmV0dXJuIHQuU2Vjb25kTGV2ZWxEb21haW5zPT09dGhpcyYmKHQuU2Vjb25kTGV2ZWxEb21haW5zPWUpLHRoaXN9fTtyZXR1cm4gbn0pfSk7dmFyIHpzPVhuKChCMSxvcCk9PnsvKiEKICogVVJJLmpzIC0gTXV0YXRpbmcgVVJMcwogKgogKiBWZXJzaW9uOiAxLjE5LjExCiAqCiAqIEF1dGhvcjogUm9kbmV5IFJlaG0KICogV2ViOiBodHRwOi8vbWVkaWFsaXplLmdpdGh1Yi5pby9VUkkuanMvCiAqCiAqIExpY2Vuc2VkIHVuZGVyCiAqICAgTUlUIExpY2Vuc2UgaHR0cDovL3d3dy5vcGVuc291cmNlLm9yZy9saWNlbnNlcy9taXQtbGljZW5zZQogKgogKi8oZnVuY3Rpb24odCxlKXsidXNlIHN0cmljdCI7dHlwZW9mIG9wPT0ib2JqZWN0IiYmb3AuZXhwb3J0cz9vcC5leHBvcnRzPWUoSTEoKSxMMSgpLEYxKCkpOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFsiLi9wdW55Y29kZSIsIi4vSVB2NiIsIi4vU2Vjb25kTGV2ZWxEb21haW5zIl0sZSk6dC5VUkk9ZSh0LnB1bnljb2RlLHQuSVB2Nix0LlNlY29uZExldmVsRG9tYWlucyx0KX0pKEIxLGZ1bmN0aW9uKHQsZSxuLG8peyJ1c2Ugc3RyaWN0Ijt2YXIgcj1vJiZvLlVSSTtmdW5jdGlvbiBpKEEsUyl7dmFyIFA9YXJndW1lbnRzLmxlbmd0aD49MSxCPWFyZ3VtZW50cy5sZW5ndGg+PTI7aWYoISh0aGlzIGluc3RhbmNlb2YgaSkpcmV0dXJuIFA/Qj9uZXcgaShBLFMpOm5ldyBpKEEpOm5ldyBpO2lmKEE9PT12b2lkIDApe2lmKFApdGhyb3cgbmV3IFR5cGVFcnJvcigidW5kZWZpbmVkIGlzIG5vdCBhIHZhbGlkIGFyZ3VtZW50IGZvciBVUkkiKTt0eXBlb2YgbG9jYXRpb248InUiP0E9bG9jYXRpb24uaHJlZisiIjpBPSIifWlmKEE9PT1udWxsJiZQKXRocm93IG5ldyBUeXBlRXJyb3IoIm51bGwgaXMgbm90IGEgdmFsaWQgYXJndW1lbnQgZm9yIFVSSSIpO3JldHVybiB0aGlzLmhyZWYoQSksUyE9PXZvaWQgMD90aGlzLmFic29sdXRlVG8oUyk6dGhpc31mdW5jdGlvbiBzKEEpe3JldHVybi9eWzAtOV0rJC8udGVzdChBKX1pLnZlcnNpb249IjEuMTkuMTEiO3ZhciBmPWkucHJvdG90eXBlLHU9T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eTtmdW5jdGlvbiBjKEEpe3JldHVybiBBLnJlcGxhY2UoLyhbLiorP149IToke30oKXxbXF1cL1xcXSkvZywiXFwkMSIpfWZ1bmN0aW9uIGwoQSl7cmV0dXJuIEE9PT12b2lkIDA/IlVuZGVmaW5lZCI6U3RyaW5nKE9iamVjdC5wcm90b3R5cGUudG9TdHJpbmcuY2FsbChBKSkuc2xpY2UoOCwtMSl9ZnVuY3Rpb24gcChBKXtyZXR1cm4gbChBKT09PSJBcnJheSJ9ZnVuY3Rpb24gZChBLFMpe3ZhciBQPXt9LEIsajtpZihsKFMpPT09IlJlZ0V4cCIpUD1udWxsO2Vsc2UgaWYocChTKSlmb3IoQj0wLGo9Uy5sZW5ndGg7QjxqO0IrKylQW1NbQl1dPSEwO2Vsc2UgUFtTXT0hMDtmb3IoQj0wLGo9QS5sZW5ndGg7QjxqO0IrKyl7dmFyIEg9UCYmUFtBW0JdXSE9PXZvaWQgMHx8IVAmJlMudGVzdChBW0JdKTtIJiYoQS5zcGxpY2UoQiwxKSxqLS0sQi0tKX1yZXR1cm4gQX1mdW5jdGlvbiBtKEEsUyl7dmFyIFAsQjtpZihwKFMpKXtmb3IoUD0wLEI9Uy5sZW5ndGg7UDxCO1ArKylpZighbShBLFNbUF0pKXJldHVybiExO3JldHVybiEwfXZhciBqPWwoUyk7Zm9yKFA9MCxCPUEubGVuZ3RoO1A8QjtQKyspaWYoaj09PSJSZWdFeHAiKXtpZih0eXBlb2YgQVtQXT09InN0cmluZyImJkFbUF0ubWF0Y2goUykpcmV0dXJuITB9ZWxzZSBpZihBW1BdPT09UylyZXR1cm4hMDtyZXR1cm4hMX1mdW5jdGlvbiBfKEEsUyl7aWYoIXAoQSl8fCFwKFMpfHxBLmxlbmd0aCE9PVMubGVuZ3RoKXJldHVybiExO0Euc29ydCgpLFMuc29ydCgpO2Zvcih2YXIgUD0wLEI9QS5sZW5ndGg7UDxCO1ArKylpZihBW1BdIT09U1tQXSlyZXR1cm4hMTtyZXR1cm4hMH1mdW5jdGlvbiBnKEEpe3ZhciBTPS9eXC8rfFwvKyQvZztyZXR1cm4gQS5yZXBsYWNlKFMsIiIpfWkuX3BhcnRzPWZ1bmN0aW9uKCl7cmV0dXJue3Byb3RvY29sOm51bGwsdXNlcm5hbWU6bnVsbCxwYXNzd29yZDpudWxsLGhvc3RuYW1lOm51bGwsdXJuOm51bGwscG9ydDpudWxsLHBhdGg6bnVsbCxxdWVyeTpudWxsLGZyYWdtZW50Om51bGwscHJldmVudEludmFsaWRIb3N0bmFtZTppLnByZXZlbnRJbnZhbGlkSG9zdG5hbWUsZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzOmkuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLGVzY2FwZVF1ZXJ5U3BhY2U6aS5lc2NhcGVRdWVyeVNwYWNlfX0saS5wcmV2ZW50SW52YWxpZEhvc3RuYW1lPSExLGkuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzPSExLGkuZXNjYXBlUXVlcnlTcGFjZT0hMCxpLnByb3RvY29sX2V4cHJlc3Npb249L15bYS16XVthLXowLTkuKy1dKiQvaSxpLmlkbl9leHByZXNzaW9uPS9bXmEtejAtOVwuXy1dL2ksaS5wdW55Y29kZV9leHByZXNzaW9uPS8oeG4tLSkvaSxpLmlwNF9leHByZXNzaW9uPS9eXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfVwuXGR7MSwzfSQvLGkuaXA2X2V4cHJlc3Npb249L15ccyooKChbMC05QS1GYS1mXXsxLDR9Oil7N30oWzAtOUEtRmEtZl17MSw0fXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7Nn0oOlswLTlBLUZhLWZdezEsNH18KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs1fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDJ9KXw6KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXs0fSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDN9KXwoKDpbMC05QS1GYS1mXXsxLDR9KT86KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KChbMC05QS1GYS1mXXsxLDR9Oil7M30oKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw0fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCwyfTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKXwoKFswLTlBLUZhLWZdezEsNH06KXsyfSgoKDpbMC05QS1GYS1mXXsxLDR9KXsxLDV9KXwoKDpbMC05QS1GYS1mXXsxLDR9KXswLDN9OigoMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkoXC4oMjVbMC01XXwyWzAtNF1cZHwxXGRcZHxbMS05XT9cZCkpezN9KSl8OikpfCgoWzAtOUEtRmEtZl17MSw0fTopezF9KCgoOlswLTlBLUZhLWZdezEsNH0pezEsNn0pfCgoOlswLTlBLUZhLWZdezEsNH0pezAsNH06KCgyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKShcLigyNVswLTVdfDJbMC00XVxkfDFcZFxkfFsxLTldP1xkKSl7M30pKXw6KSl8KDooKCg6WzAtOUEtRmEtZl17MSw0fSl7MSw3fSl8KCg6WzAtOUEtRmEtZl17MSw0fSl7MCw1fTooKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKFwuKDI1WzAtNV18MlswLTRdXGR8MVxkXGR8WzEtOV0/XGQpKXszfSkpfDopKSkoJS4rKT9ccyokLyxpLmZpbmRfdXJpX2V4cHJlc3Npb249L1xiKCg/OlthLXpdW1x3LV0rOig/OlwvezEsM318W2EtejAtOSVdKXx3d3dcZHswLDN9Wy5dfFthLXowLTkuXC1dK1suXVthLXpdezIsNH1cLykoPzpbXlxzKCk8Pl0rfFwoKFteXHMoKTw+XSt8KFwoW15ccygpPD5dK1wpKSkqXCkpKyg/OlwoKFteXHMoKTw+XSt8KFwoW15ccygpPD5dK1wpKSkqXCl8W15cc2AhKClcW1xde307OiciLiw8Pj/Cq8K74oCc4oCd4oCY4oCZXSkpL2lnLGkuZmluZFVyaT17c3RhcnQ6L1xiKD86KFthLXpdW2EtejAtOS4rLV0qOlwvXC8pfHd3d1wuKS9naSxlbmQ6L1tcc1xyXG5dfCQvLHRyaW06L1tgISgpXFtcXXt9OzonIi4sPD4/wqvCu+KAnOKAneKAnuKAmOKAmV0rJC8scGFyZW5zOi8oXChbXlwpXSpcKXxcW1teXF1dKlxdfFx7W159XSpcfXw8W14+XSo+KS9nfSxpLmxlYWRpbmdfd2hpdGVzcGFjZV9leHByZXNzaW9uPS9eW1x4MDAtXHgyMFx1MDBhMFx1MTY4MFx1MjAwMC1cdTIwMGFcdTIwMjhcdTIwMjlcdTIwMmZcdTIwNWZcdTMwMDBcdWZlZmZdKy8saS5hc2NpaV90YWJfd2hpdGVzcGFjZT0vW1x1MDAwOVx1MDAwQVx1MDAwRF0rL2csaS5kZWZhdWx0UG9ydHM9e2h0dHA6IjgwIixodHRwczoiNDQzIixmdHA6IjIxIixnb3BoZXI6IjcwIix3czoiODAiLHdzczoiNDQzIn0saS5ob3N0UHJvdG9jb2xzPVsiaHR0cCIsImh0dHBzIl0saS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnM9L1teYS16QS1aMC05XC5cLTpfXS8saS5kb21BdHRyaWJ1dGVzPXthOiJocmVmIixibG9ja3F1b3RlOiJjaXRlIixsaW5rOiJocmVmIixiYXNlOiJocmVmIixzY3JpcHQ6InNyYyIsZm9ybToiYWN0aW9uIixpbWc6InNyYyIsYXJlYToiaHJlZiIsaWZyYW1lOiJzcmMiLGVtYmVkOiJzcmMiLHNvdXJjZToic3JjIix0cmFjazoic3JjIixpbnB1dDoic3JjIixhdWRpbzoic3JjIix2aWRlbzoic3JjIn0saS5nZXREb21BdHRyaWJ1dGU9ZnVuY3Rpb24oQSl7aWYoISghQXx8IUEubm9kZU5hbWUpKXt2YXIgUz1BLm5vZGVOYW1lLnRvTG93ZXJDYXNlKCk7aWYoIShTPT09ImlucHV0IiYmQS50eXBlIT09ImltYWdlIikpcmV0dXJuIGkuZG9tQXR0cmlidXRlc1tTXX19O2Z1bmN0aW9uIGIoQSl7cmV0dXJuIGVzY2FwZShBKX1mdW5jdGlvbiB3KEEpe3JldHVybiBlbmNvZGVVUklDb21wb25lbnQoQSkucmVwbGFjZSgvWyEnKCkqXS9nLGIpLnJlcGxhY2UoL1wqL2csIiUyQSIpfWkuZW5jb2RlPXcsaS5kZWNvZGU9ZGVjb2RlVVJJQ29tcG9uZW50LGkuaXNvODg1OT1mdW5jdGlvbigpe2kuZW5jb2RlPWVzY2FwZSxpLmRlY29kZT11bmVzY2FwZX0saS51bmljb2RlPWZ1bmN0aW9uKCl7aS5lbmNvZGU9dyxpLmRlY29kZT1kZWNvZGVVUklDb21wb25lbnR9LGkuY2hhcmFjdGVycz17cGF0aG5hbWU6e2VuY29kZTp7ZXhwcmVzc2lvbjovJSgyNHwyNnwyQnwyQ3wzQnwzRHwzQXw0MCkvaWcsbWFwOnsiJTI0IjoiJCIsIiUyNiI6IiYiLCIlMkIiOiIrIiwiJTJDIjoiLCIsIiUzQiI6IjsiLCIlM0QiOiI9IiwiJTNBIjoiOiIsIiU0MCI6IkAifX0sZGVjb2RlOntleHByZXNzaW9uOi9bXC9cPyNdL2csbWFwOnsiLyI6IiUyRiIsIj8iOiIlM0YiLCIjIjoiJTIzIn19fSxyZXNlcnZlZDp7ZW5jb2RlOntleHByZXNzaW9uOi8lKDIxfDIzfDI0fDI2fDI3fDI4fDI5fDJBfDJCfDJDfDJGfDNBfDNCfDNEfDNGfDQwfDVCfDVEKS9pZyxtYXA6eyIlM0EiOiI6IiwiJTJGIjoiLyIsIiUzRiI6Ij8iLCIlMjMiOiIjIiwiJTVCIjoiWyIsIiU1RCI6Il0iLCIlNDAiOiJAIiwiJTIxIjoiISIsIiUyNCI6IiQiLCIlMjYiOiImIiwiJTI3IjoiJyIsIiUyOCI6IigiLCIlMjkiOiIpIiwiJTJBIjoiKiIsIiUyQiI6IisiLCIlMkMiOiIsIiwiJTNCIjoiOyIsIiUzRCI6Ij0ifX19LHVybnBhdGg6e2VuY29kZTp7ZXhwcmVzc2lvbjovJSgyMXwyNHwyN3wyOHwyOXwyQXwyQnwyQ3wzQnwzRHw0MCkvaWcsbWFwOnsiJTIxIjoiISIsIiUyNCI6IiQiLCIlMjciOiInIiwiJTI4IjoiKCIsIiUyOSI6IikiLCIlMkEiOiIqIiwiJTJCIjoiKyIsIiUyQyI6IiwiLCIlM0IiOiI7IiwiJTNEIjoiPSIsIiU0MCI6IkAifX0sZGVjb2RlOntleHByZXNzaW9uOi9bXC9cPyM6XS9nLG1hcDp7Ii8iOiIlMkYiLCI/IjoiJTNGIiwiIyI6IiUyMyIsIjoiOiIlM0EifX19fSxpLmVuY29kZVF1ZXJ5PWZ1bmN0aW9uKEEsUyl7dmFyIFA9aS5lbmNvZGUoQSsiIik7cmV0dXJuIFM9PT12b2lkIDAmJihTPWkuZXNjYXBlUXVlcnlTcGFjZSksUz9QLnJlcGxhY2UoLyUyMC9nLCIrIik6UH0saS5kZWNvZGVRdWVyeT1mdW5jdGlvbihBLFMpe0ErPSIiLFM9PT12b2lkIDAmJihTPWkuZXNjYXBlUXVlcnlTcGFjZSk7dHJ5e3JldHVybiBpLmRlY29kZShTP0EucmVwbGFjZSgvXCsvZywiJTIwIik6QSl9Y2F0Y2h7cmV0dXJuIEF9fTt2YXIgTz17ZW5jb2RlOiJlbmNvZGUiLGRlY29kZToiZGVjb2RlIn0sRSxUPWZ1bmN0aW9uKEEsUyl7cmV0dXJuIGZ1bmN0aW9uKFApe3RyeXtyZXR1cm4gaVtTXShQKyIiKS5yZXBsYWNlKGkuY2hhcmFjdGVyc1tBXVtTXS5leHByZXNzaW9uLGZ1bmN0aW9uKEIpe3JldHVybiBpLmNoYXJhY3RlcnNbQV1bU10ubWFwW0JdfSl9Y2F0Y2h7cmV0dXJuIFB9fX07Zm9yKEUgaW4gTylpW0UrIlBhdGhTZWdtZW50Il09VCgicGF0aG5hbWUiLE9bRV0pLGlbRSsiVXJuUGF0aFNlZ21lbnQiXT1UKCJ1cm5wYXRoIixPW0VdKTt2YXIgQz1mdW5jdGlvbihBLFMsUCl7cmV0dXJuIGZ1bmN0aW9uKEIpe3ZhciBqO1A/aj1mdW5jdGlvbihYKXtyZXR1cm4gaVtTXShpW1BdKFgpKX06aj1pW1NdO2Zvcih2YXIgSD0oQisiIikuc3BsaXQoQSksaz0wLEs9SC5sZW5ndGg7azxLO2srKylIW2tdPWooSFtrXSk7cmV0dXJuIEguam9pbihBKX19O2kuZGVjb2RlUGF0aD1DKCIvIiwiZGVjb2RlUGF0aFNlZ21lbnQiKSxpLmRlY29kZVVyblBhdGg9QygiOiIsImRlY29kZVVyblBhdGhTZWdtZW50IiksaS5yZWNvZGVQYXRoPUMoIi8iLCJlbmNvZGVQYXRoU2VnbWVudCIsImRlY29kZSIpLGkucmVjb2RlVXJuUGF0aD1DKCI6IiwiZW5jb2RlVXJuUGF0aFNlZ21lbnQiLCJkZWNvZGUiKSxpLmVuY29kZVJlc2VydmVkPVQoInJlc2VydmVkIiwiZW5jb2RlIiksaS5wYXJzZT1mdW5jdGlvbihBLFMpe3ZhciBQO3JldHVybiBTfHwoUz17cHJldmVudEludmFsaWRIb3N0bmFtZTppLnByZXZlbnRJbnZhbGlkSG9zdG5hbWV9KSxBPUEucmVwbGFjZShpLmxlYWRpbmdfd2hpdGVzcGFjZV9leHByZXNzaW9uLCIiKSxBPUEucmVwbGFjZShpLmFzY2lpX3RhYl93aGl0ZXNwYWNlLCIiKSxQPUEuaW5kZXhPZigiIyIpLFA+LTEmJihTLmZyYWdtZW50PUEuc3Vic3RyaW5nKFArMSl8fG51bGwsQT1BLnN1YnN0cmluZygwLFApKSxQPUEuaW5kZXhPZigiPyIpLFA+LTEmJihTLnF1ZXJ5PUEuc3Vic3RyaW5nKFArMSl8fG51bGwsQT1BLnN1YnN0cmluZygwLFApKSxBPUEucmVwbGFjZSgvXihodHRwcz98ZnRwfHdzcz8pPzorWy9cXF0qL2ksIiQxOi8vIiksQT1BLnJlcGxhY2UoL15bL1xcXXsyLH0vaSwiLy8iKSxBLnN1YnN0cmluZygwLDIpPT09Ii8vIj8oUy5wcm90b2NvbD1udWxsLEE9QS5zdWJzdHJpbmcoMiksQT1pLnBhcnNlQXV0aG9yaXR5KEEsUykpOihQPUEuaW5kZXhPZigiOiIpLFA+LTEmJihTLnByb3RvY29sPUEuc3Vic3RyaW5nKDAsUCl8fG51bGwsUy5wcm90b2NvbCYmIVMucHJvdG9jb2wubWF0Y2goaS5wcm90b2NvbF9leHByZXNzaW9uKT9TLnByb3RvY29sPXZvaWQgMDpBLnN1YnN0cmluZyhQKzEsUCszKS5yZXBsYWNlKC9cXC9nLCIvIik9PT0iLy8iPyhBPUEuc3Vic3RyaW5nKFArMyksQT1pLnBhcnNlQXV0aG9yaXR5KEEsUykpOihBPUEuc3Vic3RyaW5nKFArMSksUy51cm49ITApKSksUy5wYXRoPUEsU30saS5wYXJzZUhvc3Q9ZnVuY3Rpb24oQSxTKXtBfHwoQT0iIiksQT1BLnJlcGxhY2UoL1xcL2csIi8iKTt2YXIgUD1BLmluZGV4T2YoIi8iKSxCLGo7aWYoUD09PS0xJiYoUD1BLmxlbmd0aCksQS5jaGFyQXQoMCk9PT0iWyIpQj1BLmluZGV4T2YoIl0iKSxTLmhvc3RuYW1lPUEuc3Vic3RyaW5nKDEsQil8fG51bGwsUy5wb3J0PUEuc3Vic3RyaW5nKEIrMixQKXx8bnVsbCxTLnBvcnQ9PT0iLyImJihTLnBvcnQ9bnVsbCk7ZWxzZXt2YXIgSD1BLmluZGV4T2YoIjoiKSxrPUEuaW5kZXhPZigiLyIpLEs9QS5pbmRleE9mKCI6IixIKzEpO0shPT0tMSYmKGs9PT0tMXx8SzxrKT8oUy5ob3N0bmFtZT1BLnN1YnN0cmluZygwLFApfHxudWxsLFMucG9ydD1udWxsKTooaj1BLnN1YnN0cmluZygwLFApLnNwbGl0KCI6IiksUy5ob3N0bmFtZT1qWzBdfHxudWxsLFMucG9ydD1qWzFdfHxudWxsKX1yZXR1cm4gUy5ob3N0bmFtZSYmQS5zdWJzdHJpbmcoUCkuY2hhckF0KDApIT09Ii8iJiYoUCsrLEE9Ii8iK0EpLFMucHJldmVudEludmFsaWRIb3N0bmFtZSYmaS5lbnN1cmVWYWxpZEhvc3RuYW1lKFMuaG9zdG5hbWUsUy5wcm90b2NvbCksUy5wb3J0JiZpLmVuc3VyZVZhbGlkUG9ydChTLnBvcnQpLEEuc3Vic3RyaW5nKFApfHwiLyJ9LGkucGFyc2VBdXRob3JpdHk9ZnVuY3Rpb24oQSxTKXtyZXR1cm4gQT1pLnBhcnNlVXNlcmluZm8oQSxTKSxpLnBhcnNlSG9zdChBLFMpfSxpLnBhcnNlVXNlcmluZm89ZnVuY3Rpb24oQSxTKXt2YXIgUD1BLEI9QS5pbmRleE9mKCJcXCIpO0IhPT0tMSYmKEE9QS5yZXBsYWNlKC9cXC9nLCIvIikpO3ZhciBqPUEuaW5kZXhPZigiLyIpLEg9QS5sYXN0SW5kZXhPZigiQCIsaj4tMT9qOkEubGVuZ3RoLTEpLGs7cmV0dXJuIEg+LTEmJihqPT09LTF8fEg8aik/KGs9QS5zdWJzdHJpbmcoMCxIKS5zcGxpdCgiOiIpLFMudXNlcm5hbWU9a1swXT9pLmRlY29kZShrWzBdKTpudWxsLGsuc2hpZnQoKSxTLnBhc3N3b3JkPWtbMF0/aS5kZWNvZGUoay5qb2luKCI6IikpOm51bGwsQT1QLnN1YnN0cmluZyhIKzEpKTooUy51c2VybmFtZT1udWxsLFMucGFzc3dvcmQ9bnVsbCksQX0saS5wYXJzZVF1ZXJ5PWZ1bmN0aW9uKEEsUyl7aWYoIUEpcmV0dXJue307aWYoQT1BLnJlcGxhY2UoLyYrL2csIiYiKS5yZXBsYWNlKC9eXD8qJip8JiskL2csIiIpLCFBKXJldHVybnt9O2Zvcih2YXIgUD17fSxCPUEuc3BsaXQoIiYiKSxqPUIubGVuZ3RoLEgsayxLLFg9MDtYPGo7WCsrKUg9QltYXS5zcGxpdCgiPSIpLGs9aS5kZWNvZGVRdWVyeShILnNoaWZ0KCksUyksSz1ILmxlbmd0aD9pLmRlY29kZVF1ZXJ5KEguam9pbigiPSIpLFMpOm51bGwsayE9PSJfX3Byb3RvX18iJiYodS5jYWxsKFAsayk/KCh0eXBlb2YgUFtrXT09InN0cmluZyJ8fFBba109PT1udWxsKSYmKFBba109W1Bba11dKSxQW2tdLnB1c2goSykpOlBba109Syk7cmV0dXJuIFB9LGkuYnVpbGQ9ZnVuY3Rpb24oQSl7dmFyIFM9IiIsUD0hMTtyZXR1cm4gQS5wcm90b2NvbCYmKFMrPUEucHJvdG9jb2wrIjoiKSwhQS51cm4mJihTfHxBLmhvc3RuYW1lKSYmKFMrPSIvLyIsUD0hMCksUys9aS5idWlsZEF1dGhvcml0eShBKXx8IiIsdHlwZW9mIEEucGF0aD09InN0cmluZyImJihBLnBhdGguY2hhckF0KDApIT09Ii8iJiZQJiYoUys9Ii8iKSxTKz1BLnBhdGgpLHR5cGVvZiBBLnF1ZXJ5PT0ic3RyaW5nIiYmQS5xdWVyeSYmKFMrPSI/IitBLnF1ZXJ5KSx0eXBlb2YgQS5mcmFnbWVudD09InN0cmluZyImJkEuZnJhZ21lbnQmJihTKz0iIyIrQS5mcmFnbWVudCksU30saS5idWlsZEhvc3Q9ZnVuY3Rpb24oQSl7dmFyIFM9IiI7aWYoQS5ob3N0bmFtZSlpLmlwNl9leHByZXNzaW9uLnRlc3QoQS5ob3N0bmFtZSk/Uys9IlsiK0EuaG9zdG5hbWUrIl0iOlMrPUEuaG9zdG5hbWU7ZWxzZSByZXR1cm4iIjtyZXR1cm4gQS5wb3J0JiYoUys9IjoiK0EucG9ydCksU30saS5idWlsZEF1dGhvcml0eT1mdW5jdGlvbihBKXtyZXR1cm4gaS5idWlsZFVzZXJpbmZvKEEpK2kuYnVpbGRIb3N0KEEpfSxpLmJ1aWxkVXNlcmluZm89ZnVuY3Rpb24oQSl7dmFyIFM9IiI7cmV0dXJuIEEudXNlcm5hbWUmJihTKz1pLmVuY29kZShBLnVzZXJuYW1lKSksQS5wYXNzd29yZCYmKFMrPSI6IitpLmVuY29kZShBLnBhc3N3b3JkKSksUyYmKFMrPSJAIiksU30saS5idWlsZFF1ZXJ5PWZ1bmN0aW9uKEEsUyxQKXt2YXIgQj0iIixqLEgsayxLO2ZvcihIIGluIEEpaWYoSCE9PSJfX3Byb3RvX18iJiZ1LmNhbGwoQSxIKSlpZihwKEFbSF0pKWZvcihqPXt9LGs9MCxLPUFbSF0ubGVuZ3RoO2s8SztrKyspQVtIXVtrXSE9PXZvaWQgMCYmaltBW0hdW2tdKyIiXT09PXZvaWQgMCYmKEIrPSImIitpLmJ1aWxkUXVlcnlQYXJhbWV0ZXIoSCxBW0hdW2tdLFApLFMhPT0hMCYmKGpbQVtIXVtrXSsiIl09ITApKTtlbHNlIEFbSF0hPT12b2lkIDAmJihCKz0iJiIraS5idWlsZFF1ZXJ5UGFyYW1ldGVyKEgsQVtIXSxQKSk7cmV0dXJuIEIuc3Vic3RyaW5nKDEpfSxpLmJ1aWxkUXVlcnlQYXJhbWV0ZXI9ZnVuY3Rpb24oQSxTLFApe3JldHVybiBpLmVuY29kZVF1ZXJ5KEEsUCkrKFMhPT1udWxsPyI9IitpLmVuY29kZVF1ZXJ5KFMsUCk6IiIpfSxpLmFkZFF1ZXJ5PWZ1bmN0aW9uKEEsUyxQKXtpZih0eXBlb2YgUz09Im9iamVjdCIpZm9yKHZhciBCIGluIFMpdS5jYWxsKFMsQikmJmkuYWRkUXVlcnkoQSxCLFNbQl0pO2Vsc2UgaWYodHlwZW9mIFM9PSJzdHJpbmciKXtpZihBW1NdPT09dm9pZCAwKXtBW1NdPVA7cmV0dXJufWVsc2UgdHlwZW9mIEFbU109PSJzdHJpbmciJiYoQVtTXT1bQVtTXV0pO3AoUCl8fChQPVtQXSksQVtTXT0oQVtTXXx8W10pLmNvbmNhdChQKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5hZGRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIil9LGkuc2V0UXVlcnk9ZnVuY3Rpb24oQSxTLFApe2lmKHR5cGVvZiBTPT0ib2JqZWN0Iilmb3IodmFyIEIgaW4gUyl1LmNhbGwoUyxCKSYmaS5zZXRRdWVyeShBLEIsU1tCXSk7ZWxzZSBpZih0eXBlb2YgUz09InN0cmluZyIpQVtTXT1QPT09dm9pZCAwP251bGw6UDtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5zZXRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIil9LGkucmVtb3ZlUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBCLGosSDtpZihwKFMpKWZvcihCPTAsaj1TLmxlbmd0aDtCPGo7QisrKUFbU1tCXV09dm9pZCAwO2Vsc2UgaWYobChTKT09PSJSZWdFeHAiKWZvcihIIGluIEEpUy50ZXN0KEgpJiYoQVtIXT12b2lkIDApO2Vsc2UgaWYodHlwZW9mIFM9PSJvYmplY3QiKWZvcihIIGluIFMpdS5jYWxsKFMsSCkmJmkucmVtb3ZlUXVlcnkoQSxILFNbSF0pO2Vsc2UgaWYodHlwZW9mIFM9PSJzdHJpbmciKVAhPT12b2lkIDA/bChQKT09PSJSZWdFeHAiPyFwKEFbU10pJiZQLnRlc3QoQVtTXSk/QVtTXT12b2lkIDA6QVtTXT1kKEFbU10sUCk6QVtTXT09PVN0cmluZyhQKSYmKCFwKFApfHxQLmxlbmd0aD09PTEpP0FbU109dm9pZCAwOnAoQVtTXSkmJihBW1NdPWQoQVtTXSxQKSk6QVtTXT12b2lkIDA7ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkucmVtb3ZlUXVlcnkoKSBhY2NlcHRzIGFuIG9iamVjdCwgc3RyaW5nLCBSZWdFeHAgYXMgdGhlIGZpcnN0IHBhcmFtZXRlciIpfSxpLmhhc1F1ZXJ5PWZ1bmN0aW9uKEEsUyxQLEIpe3N3aXRjaChsKFMpKXtjYXNlIlN0cmluZyI6YnJlYWs7Y2FzZSJSZWdFeHAiOmZvcih2YXIgaiBpbiBBKWlmKHUuY2FsbChBLGopJiZTLnRlc3QoaikmJihQPT09dm9pZCAwfHxpLmhhc1F1ZXJ5KEEsaixQKSkpcmV0dXJuITA7cmV0dXJuITE7Y2FzZSJPYmplY3QiOmZvcih2YXIgSCBpbiBTKWlmKHUuY2FsbChTLEgpJiYhaS5oYXNRdWVyeShBLEgsU1tIXSkpcmV0dXJuITE7cmV0dXJuITA7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVUkkuaGFzUXVlcnkoKSBhY2NlcHRzIGEgc3RyaW5nLCByZWd1bGFyIGV4cHJlc3Npb24gb3Igb2JqZWN0IGFzIHRoZSBuYW1lIHBhcmFtZXRlciIpfXN3aXRjaChsKFApKXtjYXNlIlVuZGVmaW5lZCI6cmV0dXJuIFMgaW4gQTtjYXNlIkJvb2xlYW4iOnZhciBrPSEhKHAoQVtTXSk/QVtTXS5sZW5ndGg6QVtTXSk7cmV0dXJuIFA9PT1rO2Nhc2UiRnVuY3Rpb24iOnJldHVybiEhUChBW1NdLFMsQSk7Y2FzZSJBcnJheSI6aWYoIXAoQVtTXSkpcmV0dXJuITE7dmFyIEs9Qj9tOl87cmV0dXJuIEsoQVtTXSxQKTtjYXNlIlJlZ0V4cCI6cmV0dXJuIHAoQVtTXSk/Qj9tKEFbU10sUCk6ITE6ISEoQVtTXSYmQVtTXS5tYXRjaChQKSk7Y2FzZSJOdW1iZXIiOlA9U3RyaW5nKFApO2Nhc2UiU3RyaW5nIjpyZXR1cm4gcChBW1NdKT9CP20oQVtTXSxQKTohMTpBW1NdPT09UDtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5oYXNRdWVyeSgpIGFjY2VwdHMgdW5kZWZpbmVkLCBib29sZWFuLCBzdHJpbmcsIG51bWJlciwgUmVnRXhwLCBGdW5jdGlvbiBhcyB0aGUgdmFsdWUgcGFyYW1ldGVyIil9fSxpLmpvaW5QYXRocz1mdW5jdGlvbigpe2Zvcih2YXIgQT1bXSxTPVtdLFA9MCxCPTA7Qjxhcmd1bWVudHMubGVuZ3RoO0IrKyl7dmFyIGo9bmV3IGkoYXJndW1lbnRzW0JdKTtBLnB1c2goaik7Zm9yKHZhciBIPWouc2VnbWVudCgpLGs9MDtrPEgubGVuZ3RoO2srKyl0eXBlb2YgSFtrXT09InN0cmluZyImJlMucHVzaChIW2tdKSxIW2tdJiZQKyt9aWYoIVMubGVuZ3RofHwhUClyZXR1cm4gbmV3IGkoIiIpO3ZhciBLPW5ldyBpKCIiKS5zZWdtZW50KFMpO3JldHVybihBWzBdLnBhdGgoKT09PSIifHxBWzBdLnBhdGgoKS5zbGljZSgwLDEpPT09Ii8iKSYmSy5wYXRoKCIvIitLLnBhdGgoKSksSy5ub3JtYWxpemUoKX0saS5jb21tb25QYXRoPWZ1bmN0aW9uKEEsUyl7dmFyIFA9TWF0aC5taW4oQS5sZW5ndGgsUy5sZW5ndGgpLEI7Zm9yKEI9MDtCPFA7QisrKWlmKEEuY2hhckF0KEIpIT09Uy5jaGFyQXQoQikpe0ItLTticmVha31yZXR1cm4gQjwxP0EuY2hhckF0KDApPT09Uy5jaGFyQXQoMCkmJkEuY2hhckF0KDApPT09Ii8iPyIvIjoiIjooKEEuY2hhckF0KEIpIT09Ii8ifHxTLmNoYXJBdChCKSE9PSIvIikmJihCPUEuc3Vic3RyaW5nKDAsQikubGFzdEluZGV4T2YoIi8iKSksQS5zdWJzdHJpbmcoMCxCKzEpKX0saS53aXRoaW5TdHJpbmc9ZnVuY3Rpb24oQSxTLFApe1B8fChQPXt9KTt2YXIgQj1QLnN0YXJ0fHxpLmZpbmRVcmkuc3RhcnQsaj1QLmVuZHx8aS5maW5kVXJpLmVuZCxIPVAudHJpbXx8aS5maW5kVXJpLnRyaW0saz1QLnBhcmVuc3x8aS5maW5kVXJpLnBhcmVucyxLPS9bYS16MC05LV09WyInXT8kL2k7Zm9yKEIubGFzdEluZGV4PTA7Oyl7dmFyIFg9Qi5leGVjKEEpO2lmKCFYKWJyZWFrO3ZhciBSPVguaW5kZXg7aWYoUC5pZ25vcmVIdG1sKXt2YXIgb3Q9QS5zbGljZShNYXRoLm1heChSLTMsMCksUik7aWYob3QmJksudGVzdChvdCkpY29udGludWV9Zm9yKHZhciBhdD1SK0Euc2xpY2UoUikuc2VhcmNoKGopLHB0PUEuc2xpY2UoUixhdCkseXQ9LTE7Oyl7dmFyIHJ0PWsuZXhlYyhwdCk7aWYoIXJ0KWJyZWFrO3ZhciBQdD1ydC5pbmRleCtydFswXS5sZW5ndGg7eXQ9TWF0aC5tYXgoeXQsUHQpfWlmKHl0Pi0xP3B0PXB0LnNsaWNlKDAseXQpK3B0LnNsaWNlKHl0KS5yZXBsYWNlKEgsIiIpOnB0PXB0LnJlcGxhY2UoSCwiIiksIShwdC5sZW5ndGg8PVhbMF0ubGVuZ3RoKSYmIShQLmlnbm9yZSYmUC5pZ25vcmUudGVzdChwdCkpKXthdD1SK3B0Lmxlbmd0aDt2YXIgZ3Q9UyhwdCxSLGF0LEEpO2lmKGd0PT09dm9pZCAwKXtCLmxhc3RJbmRleD1hdDtjb250aW51ZX1ndD1TdHJpbmcoZ3QpLEE9QS5zbGljZSgwLFIpK2d0K0Euc2xpY2UoYXQpLEIubGFzdEluZGV4PVIrZ3QubGVuZ3RofX1yZXR1cm4gQi5sYXN0SW5kZXg9MCxBfSxpLmVuc3VyZVZhbGlkSG9zdG5hbWU9ZnVuY3Rpb24oQSxTKXt2YXIgUD0hIUEsQj0hIVMsaj0hMTtpZihCJiYoaj1tKGkuaG9zdFByb3RvY29scyxTKSksaiYmIVApdGhyb3cgbmV3IFR5cGVFcnJvcigiSG9zdG5hbWUgY2Fubm90IGJlIGVtcHR5LCBpZiBwcm90b2NvbCBpcyAiK1MpO2lmKEEmJkEubWF0Y2goaS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnMpKXtpZighdCl0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li06X10gYW5kIFB1bnljb2RlLmpzIGlzIG5vdCBhdmFpbGFibGUnKTtpZih0LnRvQVNDSUkoQSkubWF0Y2goaS5pbnZhbGlkX2hvc3RuYW1lX2NoYXJhY3RlcnMpKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLTpfXScpfX0saS5lbnN1cmVWYWxpZFBvcnQ9ZnVuY3Rpb24oQSl7aWYoQSl7dmFyIFM9TnVtYmVyKEEpO2lmKCEocyhTKSYmUz4wJiZTPDY1NTM2KSl0aHJvdyBuZXcgVHlwZUVycm9yKCdQb3J0ICInK0ErJyIgaXMgbm90IGEgdmFsaWQgcG9ydCcpfX0saS5ub0NvbmZsaWN0PWZ1bmN0aW9uKEEpe2lmKEEpe3ZhciBTPXtVUkk6dGhpcy5ub0NvbmZsaWN0KCl9O3JldHVybiBvLlVSSVRlbXBsYXRlJiZ0eXBlb2Ygby5VUklUZW1wbGF0ZS5ub0NvbmZsaWN0PT0iZnVuY3Rpb24iJiYoUy5VUklUZW1wbGF0ZT1vLlVSSVRlbXBsYXRlLm5vQ29uZmxpY3QoKSksby5JUHY2JiZ0eXBlb2Ygby5JUHY2Lm5vQ29uZmxpY3Q9PSJmdW5jdGlvbiImJihTLklQdjY9by5JUHY2Lm5vQ29uZmxpY3QoKSksby5TZWNvbmRMZXZlbERvbWFpbnMmJnR5cGVvZiBvLlNlY29uZExldmVsRG9tYWlucy5ub0NvbmZsaWN0PT0iZnVuY3Rpb24iJiYoUy5TZWNvbmRMZXZlbERvbWFpbnM9by5TZWNvbmRMZXZlbERvbWFpbnMubm9Db25mbGljdCgpKSxTfWVsc2Ugby5VUkk9PT10aGlzJiYoby5VUkk9cik7cmV0dXJuIHRoaXN9LGYuYnVpbGQ9ZnVuY3Rpb24oQSl7cmV0dXJuIEE9PT0hMD90aGlzLl9kZWZlcnJlZF9idWlsZD0hMDooQT09PXZvaWQgMHx8dGhpcy5fZGVmZXJyZWRfYnVpbGQpJiYodGhpcy5fc3RyaW5nPWkuYnVpbGQodGhpcy5fcGFydHMpLHRoaXMuX2RlZmVycmVkX2J1aWxkPSExKSx0aGlzfSxmLmNsb25lPWZ1bmN0aW9uKCl7cmV0dXJuIG5ldyBpKHRoaXMpfSxmLnZhbHVlT2Y9Zi50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmJ1aWxkKCExKS5fc3RyaW5nfTtmdW5jdGlvbiBOKEEpe3JldHVybiBmdW5jdGlvbihTLFApe3JldHVybiBTPT09dm9pZCAwP3RoaXMuX3BhcnRzW0FdfHwiIjoodGhpcy5fcGFydHNbQV09U3x8bnVsbCx0aGlzLmJ1aWxkKCFQKSx0aGlzKX19ZnVuY3Rpb24gSShBLFMpe3JldHVybiBmdW5jdGlvbihQLEIpe3JldHVybiBQPT09dm9pZCAwP3RoaXMuX3BhcnRzW0FdfHwiIjooUCE9PW51bGwmJihQPVArIiIsUC5jaGFyQXQoMCk9PT1TJiYoUD1QLnN1YnN0cmluZygxKSkpLHRoaXMuX3BhcnRzW0FdPVAsdGhpcy5idWlsZCghQiksdGhpcyl9fWYucHJvdG9jb2w9TigicHJvdG9jb2wiKSxmLnVzZXJuYW1lPU4oInVzZXJuYW1lIiksZi5wYXNzd29yZD1OKCJwYXNzd29yZCIpLGYuaG9zdG5hbWU9TigiaG9zdG5hbWUiKSxmLnBvcnQ9TigicG9ydCIpLGYucXVlcnk9SSgicXVlcnkiLCI/IiksZi5mcmFnbWVudD1JKCJmcmFnbWVudCIsIiMiKSxmLnNlYXJjaD1mdW5jdGlvbihBLFMpe3ZhciBQPXRoaXMucXVlcnkoQSxTKTtyZXR1cm4gdHlwZW9mIFA9PSJzdHJpbmciJiZQLmxlbmd0aD8iPyIrUDpQfSxmLmhhc2g9ZnVuY3Rpb24oQSxTKXt2YXIgUD10aGlzLmZyYWdtZW50KEEsUyk7cmV0dXJuIHR5cGVvZiBQPT0ic3RyaW5nIiYmUC5sZW5ndGg/IiMiK1A6UH0sZi5wYXRobmFtZT1mdW5jdGlvbihBLFMpe2lmKEE9PT12b2lkIDB8fEE9PT0hMCl7dmFyIFA9dGhpcy5fcGFydHMucGF0aHx8KHRoaXMuX3BhcnRzLmhvc3RuYW1lPyIvIjoiIik7cmV0dXJuIEE/KHRoaXMuX3BhcnRzLnVybj9pLmRlY29kZVVyblBhdGg6aS5kZWNvZGVQYXRoKShQKTpQfWVsc2UgcmV0dXJuIHRoaXMuX3BhcnRzLnVybj90aGlzLl9wYXJ0cy5wYXRoPUE/aS5yZWNvZGVVcm5QYXRoKEEpOiIiOnRoaXMuX3BhcnRzLnBhdGg9QT9pLnJlY29kZVBhdGgoQSk6Ii8iLHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYucGF0aD1mLnBhdGhuYW1lLGYuaHJlZj1mdW5jdGlvbihBLFMpe3ZhciBQO2lmKEE9PT12b2lkIDApcmV0dXJuIHRoaXMudG9TdHJpbmcoKTt0aGlzLl9zdHJpbmc9IiIsdGhpcy5fcGFydHM9aS5fcGFydHMoKTt2YXIgQj1BIGluc3RhbmNlb2YgaSxqPXR5cGVvZiBBPT0ib2JqZWN0IiYmKEEuaG9zdG5hbWV8fEEucGF0aHx8QS5wYXRobmFtZSk7aWYoQS5ub2RlTmFtZSl7dmFyIEg9aS5nZXREb21BdHRyaWJ1dGUoQSk7QT1BW0hdfHwiIixqPSExfWlmKCFCJiZqJiZBLnBhdGhuYW1lIT09dm9pZCAwJiYoQT1BLnRvU3RyaW5nKCkpLHR5cGVvZiBBPT0ic3RyaW5nInx8QSBpbnN0YW5jZW9mIFN0cmluZyl0aGlzLl9wYXJ0cz1pLnBhcnNlKFN0cmluZyhBKSx0aGlzLl9wYXJ0cyk7ZWxzZSBpZihCfHxqKXt2YXIgaz1CP0EuX3BhcnRzOkE7Zm9yKFAgaW4gaylQIT09InF1ZXJ5IiYmdS5jYWxsKHRoaXMuX3BhcnRzLFApJiYodGhpcy5fcGFydHNbUF09a1tQXSk7ay5xdWVyeSYmdGhpcy5xdWVyeShrLnF1ZXJ5LCExKX1lbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoImludmFsaWQgaW5wdXQiKTtyZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc30sZi5pcz1mdW5jdGlvbihBKXt2YXIgUz0hMSxQPSExLEI9ITEsaj0hMSxIPSExLGs9ITEsSz0hMSxYPSF0aGlzLl9wYXJ0cy51cm47c3dpdGNoKHRoaXMuX3BhcnRzLmhvc3RuYW1lJiYoWD0hMSxQPWkuaXA0X2V4cHJlc3Npb24udGVzdCh0aGlzLl9wYXJ0cy5ob3N0bmFtZSksQj1pLmlwNl9leHByZXNzaW9uLnRlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpLFM9UHx8QixqPSFTLEg9aiYmbiYmbi5oYXModGhpcy5fcGFydHMuaG9zdG5hbWUpLGs9aiYmaS5pZG5fZXhwcmVzc2lvbi50ZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSxLPWomJmkucHVueWNvZGVfZXhwcmVzc2lvbi50ZXN0KHRoaXMuX3BhcnRzLmhvc3RuYW1lKSksQS50b0xvd2VyQ2FzZSgpKXtjYXNlInJlbGF0aXZlIjpyZXR1cm4gWDtjYXNlImFic29sdXRlIjpyZXR1cm4hWDtjYXNlImRvbWFpbiI6Y2FzZSJuYW1lIjpyZXR1cm4gajtjYXNlInNsZCI6cmV0dXJuIEg7Y2FzZSJpcCI6cmV0dXJuIFM7Y2FzZSJpcDQiOmNhc2UiaXB2NCI6Y2FzZSJpbmV0NCI6cmV0dXJuIFA7Y2FzZSJpcDYiOmNhc2UiaXB2NiI6Y2FzZSJpbmV0NiI6cmV0dXJuIEI7Y2FzZSJpZG4iOnJldHVybiBrO2Nhc2UidXJsIjpyZXR1cm4hdGhpcy5fcGFydHMudXJuO2Nhc2UidXJuIjpyZXR1cm4hIXRoaXMuX3BhcnRzLnVybjtjYXNlInB1bnljb2RlIjpyZXR1cm4gS31yZXR1cm4gbnVsbH07dmFyIEQ9Zi5wcm90b2NvbCx2PWYucG9ydCxMPWYuaG9zdG5hbWU7Zi5wcm90b2NvbD1mdW5jdGlvbihBLFMpe2lmKEEmJihBPUEucmVwbGFjZSgvOihcL1wvKT8kLywiIiksIUEubWF0Y2goaS5wcm90b2NvbF9leHByZXNzaW9uKSkpdGhyb3cgbmV3IFR5cGVFcnJvcignUHJvdG9jb2wgIicrQStgIiBjb250YWlucyBjaGFyYWN0ZXJzIG90aGVyIHRoYW4gW0EtWjAtOS4rLV0gb3IgZG9lc24ndCBzdGFydCB3aXRoIFtBLVpdYCk7cmV0dXJuIEQuY2FsbCh0aGlzLEEsUyl9LGYuc2NoZW1lPWYucHJvdG9jb2wsZi5wb3J0PWZ1bmN0aW9uKEEsUyl7cmV0dXJuIHRoaXMuX3BhcnRzLnVybj9BPT09dm9pZCAwPyIiOnRoaXM6KEEhPT12b2lkIDAmJihBPT09MCYmKEE9bnVsbCksQSYmKEErPSIiLEEuY2hhckF0KDApPT09IjoiJiYoQT1BLnN1YnN0cmluZygxKSksaS5lbnN1cmVWYWxpZFBvcnQoQSkpKSx2LmNhbGwodGhpcyxBLFMpKX0sZi5ob3N0bmFtZT1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEEhPT12b2lkIDApe3ZhciBQPXtwcmV2ZW50SW52YWxpZEhvc3RuYW1lOnRoaXMuX3BhcnRzLnByZXZlbnRJbnZhbGlkSG9zdG5hbWV9LEI9aS5wYXJzZUhvc3QoQSxQKTtpZihCIT09Ii8iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLV0nKTtBPVAuaG9zdG5hbWUsdGhpcy5fcGFydHMucHJldmVudEludmFsaWRIb3N0bmFtZSYmaS5lbnN1cmVWYWxpZEhvc3RuYW1lKEEsdGhpcy5fcGFydHMucHJvdG9jb2wpfXJldHVybiBMLmNhbGwodGhpcyxBLFMpfSxmLm9yaWdpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe3ZhciBQPXRoaXMucHJvdG9jb2woKSxCPXRoaXMuYXV0aG9yaXR5KCk7cmV0dXJuIEI/KFA/UCsiOi8vIjoiIikrdGhpcy5hdXRob3JpdHkoKToiIn1lbHNle3ZhciBqPWkoQSk7cmV0dXJuIHRoaXMucHJvdG9jb2woai5wcm90b2NvbCgpKS5hdXRob3JpdHkoai5hdXRob3JpdHkoKSkuYnVpbGQoIVMpLHRoaXN9fSxmLmhvc3Q9ZnVuY3Rpb24oQSxTKXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIEE9PT12b2lkIDA/IiI6dGhpcztpZihBPT09dm9pZCAwKXJldHVybiB0aGlzLl9wYXJ0cy5ob3N0bmFtZT9pLmJ1aWxkSG9zdCh0aGlzLl9wYXJ0cyk6IiI7dmFyIFA9aS5wYXJzZUhvc3QoQSx0aGlzLl9wYXJ0cyk7aWYoUCE9PSIvIil0aHJvdyBuZXcgVHlwZUVycm9yKCdIb3N0bmFtZSAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05Li1dJyk7cmV0dXJuIHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYuYXV0aG9yaXR5PWZ1bmN0aW9uKEEsUyl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiBBPT09dm9pZCAwPyIiOnRoaXM7aWYoQT09PXZvaWQgMClyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWU/aS5idWlsZEF1dGhvcml0eSh0aGlzLl9wYXJ0cyk6IiI7dmFyIFA9aS5wYXJzZUF1dGhvcml0eShBLHRoaXMuX3BhcnRzKTtpZihQIT09Ii8iKXRocm93IG5ldyBUeXBlRXJyb3IoJ0hvc3RuYW1lICInK0ErJyIgY29udGFpbnMgY2hhcmFjdGVycyBvdGhlciB0aGFuIFtBLVowLTkuLV0nKTtyZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc30sZi51c2VyaW5mbz1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe3ZhciBQPWkuYnVpbGRVc2VyaW5mbyh0aGlzLl9wYXJ0cyk7cmV0dXJuIFAmJlAuc3Vic3RyaW5nKDAsUC5sZW5ndGgtMSl9ZWxzZSByZXR1cm4gQVtBLmxlbmd0aC0xXSE9PSJAIiYmKEErPSJAIiksaS5wYXJzZVVzZXJpbmZvKEEsdGhpcy5fcGFydHMpLHRoaXMuYnVpbGQoIVMpLHRoaXN9LGYucmVzb3VyY2U9ZnVuY3Rpb24oQSxTKXt2YXIgUDtyZXR1cm4gQT09PXZvaWQgMD90aGlzLnBhdGgoKSt0aGlzLnNlYXJjaCgpK3RoaXMuaGFzaCgpOihQPWkucGFyc2UoQSksdGhpcy5fcGFydHMucGF0aD1QLnBhdGgsdGhpcy5fcGFydHMucXVlcnk9UC5xdWVyeSx0aGlzLl9wYXJ0cy5mcmFnbWVudD1QLmZyYWdtZW50LHRoaXMuYnVpbGQoIVMpLHRoaXMpfSxmLnN1YmRvbWFpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDApe2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSlyZXR1cm4iIjt2YXIgUD10aGlzLl9wYXJ0cy5ob3N0bmFtZS5sZW5ndGgtdGhpcy5kb21haW4oKS5sZW5ndGgtMTtyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKDAsUCl8fCIifWVsc2V7dmFyIEI9dGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoLXRoaXMuZG9tYWluKCkubGVuZ3RoLGo9dGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKDAsQiksSD1uZXcgUmVnRXhwKCJeIitjKGopKTtpZihBJiZBLmNoYXJBdChBLmxlbmd0aC0xKSE9PSIuIiYmKEErPSIuIiksQS5pbmRleE9mKCI6IikhPT0tMSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW5zIGNhbm5vdCBjb250YWluIGNvbG9ucyIpO3JldHVybiBBJiZpLmVuc3VyZVZhbGlkSG9zdG5hbWUoQSx0aGlzLl9wYXJ0cy5wcm90b2NvbCksdGhpcy5fcGFydHMuaG9zdG5hbWU9dGhpcy5fcGFydHMuaG9zdG5hbWUucmVwbGFjZShILEEpLHRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLmRvbWFpbj1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKHR5cGVvZiBBPT0iYm9vbGVhbiImJihTPUEsQT12b2lkIDApLEE9PT12b2lkIDApe2lmKCF0aGlzLl9wYXJ0cy5ob3N0bmFtZXx8dGhpcy5pcygiSVAiKSlyZXR1cm4iIjt2YXIgUD10aGlzLl9wYXJ0cy5ob3N0bmFtZS5tYXRjaCgvXC4vZyk7aWYoUCYmUC5sZW5ndGg8MilyZXR1cm4gdGhpcy5fcGFydHMuaG9zdG5hbWU7dmFyIEI9dGhpcy5fcGFydHMuaG9zdG5hbWUubGVuZ3RoLXRoaXMudGxkKFMpLmxlbmd0aC0xO3JldHVybiBCPXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxhc3RJbmRleE9mKCIuIixCLTEpKzEsdGhpcy5fcGFydHMuaG9zdG5hbWUuc3Vic3RyaW5nKEIpfHwiIn1lbHNle2lmKCFBKXRocm93IG5ldyBUeXBlRXJyb3IoImNhbm5vdCBzZXQgZG9tYWluIGVtcHR5Iik7aWYoQS5pbmRleE9mKCI6IikhPT0tMSl0aHJvdyBuZXcgVHlwZUVycm9yKCJEb21haW5zIGNhbm5vdCBjb250YWluIGNvbG9ucyIpO2lmKGkuZW5zdXJlVmFsaWRIb3N0bmFtZShBLHRoaXMuX3BhcnRzLnByb3RvY29sKSwhdGhpcy5fcGFydHMuaG9zdG5hbWV8fHRoaXMuaXMoIklQIikpdGhpcy5fcGFydHMuaG9zdG5hbWU9QTtlbHNle3ZhciBqPW5ldyBSZWdFeHAoYyh0aGlzLmRvbWFpbigpKSsiJCIpO3RoaXMuX3BhcnRzLmhvc3RuYW1lPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2UoaixBKX1yZXR1cm4gdGhpcy5idWlsZCghUyksdGhpc319LGYudGxkPWZ1bmN0aW9uKEEsUyl7aWYodGhpcy5fcGFydHMudXJuKXJldHVybiBBPT09dm9pZCAwPyIiOnRoaXM7aWYodHlwZW9mIEE9PSJib29sZWFuIiYmKFM9QSxBPXZvaWQgMCksQT09PXZvaWQgMCl7aWYoIXRoaXMuX3BhcnRzLmhvc3RuYW1lfHx0aGlzLmlzKCJJUCIpKXJldHVybiIiO3ZhciBQPXRoaXMuX3BhcnRzLmhvc3RuYW1lLmxhc3RJbmRleE9mKCIuIiksQj10aGlzLl9wYXJ0cy5ob3N0bmFtZS5zdWJzdHJpbmcoUCsxKTtyZXR1cm4gUyE9PSEwJiZuJiZuLmxpc3RbQi50b0xvd2VyQ2FzZSgpXSYmbi5nZXQodGhpcy5fcGFydHMuaG9zdG5hbWUpfHxCfWVsc2V7dmFyIGo7aWYoQSlpZihBLm1hdGNoKC9bXmEtekEtWjAtOS1dLykpaWYobiYmbi5pcyhBKSlqPW5ldyBSZWdFeHAoYyh0aGlzLnRsZCgpKSsiJCIpLHRoaXMuX3BhcnRzLmhvc3RuYW1lPXRoaXMuX3BhcnRzLmhvc3RuYW1lLnJlcGxhY2UoaixBKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoJ1RMRCAiJytBKyciIGNvbnRhaW5zIGNoYXJhY3RlcnMgb3RoZXIgdGhhbiBbQS1aMC05XScpO2Vsc2V7aWYoIXRoaXMuX3BhcnRzLmhvc3RuYW1lfHx0aGlzLmlzKCJJUCIpKXRocm93IG5ldyBSZWZlcmVuY2VFcnJvcigiY2Fubm90IHNldCBUTEQgb24gbm9uLWRvbWFpbiBob3N0Iik7aj1uZXcgUmVnRXhwKGModGhpcy50bGQoKSkrIiQiKSx0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS5yZXBsYWNlKGosQSl9ZWxzZSB0aHJvdyBuZXcgVHlwZUVycm9yKCJjYW5ub3Qgc2V0IFRMRCBlbXB0eSIpO3JldHVybiB0aGlzLmJ1aWxkKCFTKSx0aGlzfX0sZi5kaXJlY3Rvcnk9ZnVuY3Rpb24oQSxTKXtpZih0aGlzLl9wYXJ0cy51cm4pcmV0dXJuIEE9PT12b2lkIDA/IiI6dGhpcztpZihBPT09dm9pZCAwfHxBPT09ITApe2lmKCF0aGlzLl9wYXJ0cy5wYXRoJiYhdGhpcy5fcGFydHMuaG9zdG5hbWUpcmV0dXJuIiI7aWYodGhpcy5fcGFydHMucGF0aD09PSIvIilyZXR1cm4iLyI7dmFyIFA9dGhpcy5fcGFydHMucGF0aC5sZW5ndGgtdGhpcy5maWxlbmFtZSgpLmxlbmd0aC0xLEI9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoMCxQKXx8KHRoaXMuX3BhcnRzLmhvc3RuYW1lPyIvIjoiIik7cmV0dXJuIEE/aS5kZWNvZGVQYXRoKEIpOkJ9ZWxzZXt2YXIgaj10aGlzLl9wYXJ0cy5wYXRoLmxlbmd0aC10aGlzLmZpbGVuYW1lKCkubGVuZ3RoLEg9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoMCxqKSxrPW5ldyBSZWdFeHAoIl4iK2MoSCkpO3JldHVybiB0aGlzLmlzKCJyZWxhdGl2ZSIpfHwoQXx8KEE9Ii8iKSxBLmNoYXJBdCgwKSE9PSIvIiYmKEE9Ii8iK0EpKSxBJiZBLmNoYXJBdChBLmxlbmd0aC0xKSE9PSIvIiYmKEErPSIvIiksQT1pLnJlY29kZVBhdGgoQSksdGhpcy5fcGFydHMucGF0aD10aGlzLl9wYXJ0cy5wYXRoLnJlcGxhY2UoayxBKSx0aGlzLmJ1aWxkKCFTKSx0aGlzfX0sZi5maWxlbmFtZT1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKHR5cGVvZiBBIT0ic3RyaW5nIil7aWYoIXRoaXMuX3BhcnRzLnBhdGh8fHRoaXMuX3BhcnRzLnBhdGg9PT0iLyIpcmV0dXJuIiI7dmFyIFA9dGhpcy5fcGFydHMucGF0aC5sYXN0SW5kZXhPZigiLyIpLEI9dGhpcy5fcGFydHMucGF0aC5zdWJzdHJpbmcoUCsxKTtyZXR1cm4gQT9pLmRlY29kZVBhdGhTZWdtZW50KEIpOkJ9ZWxzZXt2YXIgaj0hMTtBLmNoYXJBdCgwKT09PSIvIiYmKEE9QS5zdWJzdHJpbmcoMSkpLEEubWF0Y2goL1wuP1wvLykmJihqPSEwKTt2YXIgSD1uZXcgUmVnRXhwKGModGhpcy5maWxlbmFtZSgpKSsiJCIpO3JldHVybiBBPWkucmVjb2RlUGF0aChBKSx0aGlzLl9wYXJ0cy5wYXRoPXRoaXMuX3BhcnRzLnBhdGgucmVwbGFjZShILEEpLGo/dGhpcy5ub3JtYWxpemVQYXRoKFMpOnRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLnN1ZmZpeD1mdW5jdGlvbihBLFMpe2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gQT09PXZvaWQgMD8iIjp0aGlzO2lmKEE9PT12b2lkIDB8fEE9PT0hMCl7aWYoIXRoaXMuX3BhcnRzLnBhdGh8fHRoaXMuX3BhcnRzLnBhdGg9PT0iLyIpcmV0dXJuIiI7dmFyIFA9dGhpcy5maWxlbmFtZSgpLEI9UC5sYXN0SW5kZXhPZigiLiIpLGosSDtyZXR1cm4gQj09PS0xPyIiOihqPVAuc3Vic3RyaW5nKEIrMSksSD0vXlthLXowLTklXSskL2kudGVzdChqKT9qOiIiLEE/aS5kZWNvZGVQYXRoU2VnbWVudChIKTpIKX1lbHNle0EuY2hhckF0KDApPT09Ii4iJiYoQT1BLnN1YnN0cmluZygxKSk7dmFyIGs9dGhpcy5zdWZmaXgoKSxLO2lmKGspQT9LPW5ldyBSZWdFeHAoYyhrKSsiJCIpOks9bmV3IFJlZ0V4cChjKCIuIitrKSsiJCIpO2Vsc2V7aWYoIUEpcmV0dXJuIHRoaXM7dGhpcy5fcGFydHMucGF0aCs9Ii4iK2kucmVjb2RlUGF0aChBKX1yZXR1cm4gSyYmKEE9aS5yZWNvZGVQYXRoKEEpLHRoaXMuX3BhcnRzLnBhdGg9dGhpcy5fcGFydHMucGF0aC5yZXBsYWNlKEssQSkpLHRoaXMuYnVpbGQoIVMpLHRoaXN9fSxmLnNlZ21lbnQ9ZnVuY3Rpb24oQSxTLFApe3ZhciBCPXRoaXMuX3BhcnRzLnVybj8iOiI6Ii8iLGo9dGhpcy5wYXRoKCksSD1qLnN1YnN0cmluZygwLDEpPT09Ii8iLGs9ai5zcGxpdChCKTtpZihBIT09dm9pZCAwJiZ0eXBlb2YgQSE9Im51bWJlciImJihQPVMsUz1BLEE9dm9pZCAwKSxBIT09dm9pZCAwJiZ0eXBlb2YgQSE9Im51bWJlciIpdGhyb3cgbmV3IEVycm9yKCdCYWQgc2VnbWVudCAiJytBKyciLCBtdXN0IGJlIDAtYmFzZWQgaW50ZWdlcicpO2lmKEgmJmsuc2hpZnQoKSxBPDAmJihBPU1hdGgubWF4KGsubGVuZ3RoK0EsMCkpLFM9PT12b2lkIDApcmV0dXJuIEE9PT12b2lkIDA/azprW0FdO2lmKEE9PT1udWxsfHxrW0FdPT09dm9pZCAwKWlmKHAoUykpe2s9W107Zm9yKHZhciBLPTAsWD1TLmxlbmd0aDtLPFg7SysrKSFTW0tdLmxlbmd0aCYmKCFrLmxlbmd0aHx8IWtbay5sZW5ndGgtMV0ubGVuZ3RoKXx8KGsubGVuZ3RoJiYha1trLmxlbmd0aC0xXS5sZW5ndGgmJmsucG9wKCksay5wdXNoKGcoU1tLXSkpKX1lbHNlKFN8fHR5cGVvZiBTPT0ic3RyaW5nIikmJihTPWcoUyksa1trLmxlbmd0aC0xXT09PSIiP2tbay5sZW5ndGgtMV09UzprLnB1c2goUykpO2Vsc2UgUz9rW0FdPWcoUyk6ay5zcGxpY2UoQSwxKTtyZXR1cm4gSCYmay51bnNoaWZ0KCIiKSx0aGlzLnBhdGgoay5qb2luKEIpLFApfSxmLnNlZ21lbnRDb2RlZD1mdW5jdGlvbihBLFMsUCl7dmFyIEIsaixIO2lmKHR5cGVvZiBBIT0ibnVtYmVyIiYmKFA9UyxTPUEsQT12b2lkIDApLFM9PT12b2lkIDApe2lmKEI9dGhpcy5zZWdtZW50KEEsUyxQKSwhcChCKSlCPUIhPT12b2lkIDA/aS5kZWNvZGUoQik6dm9pZCAwO2Vsc2UgZm9yKGo9MCxIPUIubGVuZ3RoO2o8SDtqKyspQltqXT1pLmRlY29kZShCW2pdKTtyZXR1cm4gQn1pZighcChTKSlTPXR5cGVvZiBTPT0ic3RyaW5nInx8UyBpbnN0YW5jZW9mIFN0cmluZz9pLmVuY29kZShTKTpTO2Vsc2UgZm9yKGo9MCxIPVMubGVuZ3RoO2o8SDtqKyspU1tqXT1pLmVuY29kZShTW2pdKTtyZXR1cm4gdGhpcy5zZWdtZW50KEEsUyxQKX07dmFyIFU9Zi5xdWVyeTtyZXR1cm4gZi5xdWVyeT1mdW5jdGlvbihBLFMpe2lmKEE9PT0hMClyZXR1cm4gaS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO2lmKHR5cGVvZiBBPT0iZnVuY3Rpb24iKXt2YXIgUD1pLnBhcnNlUXVlcnkodGhpcy5fcGFydHMucXVlcnksdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksQj1BLmNhbGwodGhpcyxQKTtyZXR1cm4gdGhpcy5fcGFydHMucXVlcnk9aS5idWlsZFF1ZXJ5KEJ8fFAsdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHRoaXMuYnVpbGQoIVMpLHRoaXN9ZWxzZSByZXR1cm4gQSE9PXZvaWQgMCYmdHlwZW9mIEEhPSJzdHJpbmciPyh0aGlzLl9wYXJ0cy5xdWVyeT1pLmJ1aWxkUXVlcnkoQSx0aGlzLl9wYXJ0cy5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnMsdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSksdGhpcy5idWlsZCghUyksdGhpcyk6VS5jYWxsKHRoaXMsQSxTKX0sZi5zZXRRdWVyeT1mdW5jdGlvbihBLFMsUCl7dmFyIEI9aS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO2lmKHR5cGVvZiBBPT0ic3RyaW5nInx8QSBpbnN0YW5jZW9mIFN0cmluZylCW0FdPVMhPT12b2lkIDA/UzpudWxsO2Vsc2UgaWYodHlwZW9mIEE9PSJvYmplY3QiKWZvcih2YXIgaiBpbiBBKXUuY2FsbChBLGopJiYoQltqXT1BW2pdKTtlbHNlIHRocm93IG5ldyBUeXBlRXJyb3IoIlVSSS5hZGRRdWVyeSgpIGFjY2VwdHMgYW4gb2JqZWN0LCBzdHJpbmcgYXMgdGhlIG5hbWUgcGFyYW1ldGVyIik7cmV0dXJuIHRoaXMuX3BhcnRzLnF1ZXJ5PWkuYnVpbGRRdWVyeShCLHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0eXBlb2YgQSE9InN0cmluZyImJihQPVMpLHRoaXMuYnVpbGQoIVApLHRoaXN9LGYuYWRkUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBCPWkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtyZXR1cm4gaS5hZGRRdWVyeShCLEEsUz09PXZvaWQgMD9udWxsOlMpLHRoaXMuX3BhcnRzLnF1ZXJ5PWkuYnVpbGRRdWVyeShCLHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycyx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSx0eXBlb2YgQSE9InN0cmluZyImJihQPVMpLHRoaXMuYnVpbGQoIVApLHRoaXN9LGYucmVtb3ZlUXVlcnk9ZnVuY3Rpb24oQSxTLFApe3ZhciBCPWkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKTtyZXR1cm4gaS5yZW1vdmVRdWVyeShCLEEsUyksdGhpcy5fcGFydHMucXVlcnk9aS5idWlsZFF1ZXJ5KEIsdGhpcy5fcGFydHMuZHVwbGljYXRlUXVlcnlQYXJhbWV0ZXJzLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLHR5cGVvZiBBIT0ic3RyaW5nIiYmKFA9UyksdGhpcy5idWlsZCghUCksdGhpc30sZi5oYXNRdWVyeT1mdW5jdGlvbihBLFMsUCl7dmFyIEI9aS5wYXJzZVF1ZXJ5KHRoaXMuX3BhcnRzLnF1ZXJ5LHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpO3JldHVybiBpLmhhc1F1ZXJ5KEIsQSxTLFApfSxmLnNldFNlYXJjaD1mLnNldFF1ZXJ5LGYuYWRkU2VhcmNoPWYuYWRkUXVlcnksZi5yZW1vdmVTZWFyY2g9Zi5yZW1vdmVRdWVyeSxmLmhhc1NlYXJjaD1mLmhhc1F1ZXJ5LGYubm9ybWFsaXplPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3BhcnRzLnVybj90aGlzLm5vcm1hbGl6ZVByb3RvY29sKCExKS5ub3JtYWxpemVQYXRoKCExKS5ub3JtYWxpemVRdWVyeSghMSkubm9ybWFsaXplRnJhZ21lbnQoITEpLmJ1aWxkKCk6dGhpcy5ub3JtYWxpemVQcm90b2NvbCghMSkubm9ybWFsaXplSG9zdG5hbWUoITEpLm5vcm1hbGl6ZVBvcnQoITEpLm5vcm1hbGl6ZVBhdGgoITEpLm5vcm1hbGl6ZVF1ZXJ5KCExKS5ub3JtYWxpemVGcmFnbWVudCghMSkuYnVpbGQoKX0sZi5ub3JtYWxpemVQcm90b2NvbD1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIHRoaXMuX3BhcnRzLnByb3RvY29sPT0ic3RyaW5nIiYmKHRoaXMuX3BhcnRzLnByb3RvY29sPXRoaXMuX3BhcnRzLnByb3RvY29sLnRvTG93ZXJDYXNlKCksdGhpcy5idWlsZCghQSkpLHRoaXN9LGYubm9ybWFsaXplSG9zdG5hbWU9ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX3BhcnRzLmhvc3RuYW1lJiYodGhpcy5pcygiSUROIikmJnQ/dGhpcy5fcGFydHMuaG9zdG5hbWU9dC50b0FTQ0lJKHRoaXMuX3BhcnRzLmhvc3RuYW1lKTp0aGlzLmlzKCJJUHY2IikmJmUmJih0aGlzLl9wYXJ0cy5ob3N0bmFtZT1lLmJlc3QodGhpcy5fcGFydHMuaG9zdG5hbWUpKSx0aGlzLl9wYXJ0cy5ob3N0bmFtZT10aGlzLl9wYXJ0cy5ob3N0bmFtZS50b0xvd2VyQ2FzZSgpLHRoaXMuYnVpbGQoIUEpKSx0aGlzfSxmLm5vcm1hbGl6ZVBvcnQ9ZnVuY3Rpb24oQSl7cmV0dXJuIHR5cGVvZiB0aGlzLl9wYXJ0cy5wcm90b2NvbD09InN0cmluZyImJnRoaXMuX3BhcnRzLnBvcnQ9PT1pLmRlZmF1bHRQb3J0c1t0aGlzLl9wYXJ0cy5wcm90b2NvbF0mJih0aGlzLl9wYXJ0cy5wb3J0PW51bGwsdGhpcy5idWlsZCghQSkpLHRoaXN9LGYubm9ybWFsaXplUGF0aD1mdW5jdGlvbihBKXt2YXIgUz10aGlzLl9wYXJ0cy5wYXRoO2lmKCFTKXJldHVybiB0aGlzO2lmKHRoaXMuX3BhcnRzLnVybilyZXR1cm4gdGhpcy5fcGFydHMucGF0aD1pLnJlY29kZVVyblBhdGgodGhpcy5fcGFydHMucGF0aCksdGhpcy5idWlsZCghQSksdGhpcztpZih0aGlzLl9wYXJ0cy5wYXRoPT09Ii8iKXJldHVybiB0aGlzO1M9aS5yZWNvZGVQYXRoKFMpO3ZhciBQLEI9IiIsaixIO2ZvcihTLmNoYXJBdCgwKSE9PSIvIiYmKFA9ITAsUz0iLyIrUyksKFMuc2xpY2UoLTMpPT09Ii8uLiJ8fFMuc2xpY2UoLTIpPT09Ii8uIikmJihTKz0iLyIpLFM9Uy5yZXBsYWNlKC8oXC8oXC5cLykrKXwoXC9cLiQpL2csIi8iKS5yZXBsYWNlKC9cL3syLH0vZywiLyIpLFAmJihCPVMuc3Vic3RyaW5nKDEpLm1hdGNoKC9eKFwuXC5cLykrLyl8fCIiLEImJihCPUJbMF0pKTtqPVMuc2VhcmNoKC9cL1wuXC4oXC98JCkvKSxqIT09LTE7KXtpZihqPT09MCl7Uz1TLnN1YnN0cmluZygzKTtjb250aW51ZX1IPVMuc3Vic3RyaW5nKDAsaikubGFzdEluZGV4T2YoIi8iKSxIPT09LTEmJihIPWopLFM9Uy5zdWJzdHJpbmcoMCxIKStTLnN1YnN0cmluZyhqKzMpfXJldHVybiBQJiZ0aGlzLmlzKCJyZWxhdGl2ZSIpJiYoUz1CK1Muc3Vic3RyaW5nKDEpKSx0aGlzLl9wYXJ0cy5wYXRoPVMsdGhpcy5idWlsZCghQSksdGhpc30sZi5ub3JtYWxpemVQYXRobmFtZT1mLm5vcm1hbGl6ZVBhdGgsZi5ub3JtYWxpemVRdWVyeT1mdW5jdGlvbihBKXtyZXR1cm4gdHlwZW9mIHRoaXMuX3BhcnRzLnF1ZXJ5PT0ic3RyaW5nIiYmKHRoaXMuX3BhcnRzLnF1ZXJ5Lmxlbmd0aD90aGlzLnF1ZXJ5KGkucGFyc2VRdWVyeSh0aGlzLl9wYXJ0cy5xdWVyeSx0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlKSk6dGhpcy5fcGFydHMucXVlcnk9bnVsbCx0aGlzLmJ1aWxkKCFBKSksdGhpc30sZi5ub3JtYWxpemVGcmFnbWVudD1mdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fcGFydHMuZnJhZ21lbnR8fCh0aGlzLl9wYXJ0cy5mcmFnbWVudD1udWxsLHRoaXMuYnVpbGQoIUEpKSx0aGlzfSxmLm5vcm1hbGl6ZVNlYXJjaD1mLm5vcm1hbGl6ZVF1ZXJ5LGYubm9ybWFsaXplSGFzaD1mLm5vcm1hbGl6ZUZyYWdtZW50LGYuaXNvODg1OT1mdW5jdGlvbigpe3ZhciBBPWkuZW5jb2RlLFM9aS5kZWNvZGU7aS5lbmNvZGU9ZXNjYXBlLGkuZGVjb2RlPWRlY29kZVVSSUNvbXBvbmVudDt0cnl7dGhpcy5ub3JtYWxpemUoKX1maW5hbGx5e2kuZW5jb2RlPUEsaS5kZWNvZGU9U31yZXR1cm4gdGhpc30sZi51bmljb2RlPWZ1bmN0aW9uKCl7dmFyIEE9aS5lbmNvZGUsUz1pLmRlY29kZTtpLmVuY29kZT13LGkuZGVjb2RlPXVuZXNjYXBlO3RyeXt0aGlzLm5vcm1hbGl6ZSgpfWZpbmFsbHl7aS5lbmNvZGU9QSxpLmRlY29kZT1TfXJldHVybiB0aGlzfSxmLnJlYWRhYmxlPWZ1bmN0aW9uKCl7dmFyIEE9dGhpcy5jbG9uZSgpO0EudXNlcm5hbWUoIiIpLnBhc3N3b3JkKCIiKS5ub3JtYWxpemUoKTt2YXIgUz0iIjtpZihBLl9wYXJ0cy5wcm90b2NvbCYmKFMrPUEuX3BhcnRzLnByb3RvY29sKyI6Ly8iKSxBLl9wYXJ0cy5ob3N0bmFtZSYmKEEuaXMoInB1bnljb2RlIikmJnQ/KFMrPXQudG9Vbmljb2RlKEEuX3BhcnRzLmhvc3RuYW1lKSxBLl9wYXJ0cy5wb3J0JiYoUys9IjoiK0EuX3BhcnRzLnBvcnQpKTpTKz1BLmhvc3QoKSksQS5fcGFydHMuaG9zdG5hbWUmJkEuX3BhcnRzLnBhdGgmJkEuX3BhcnRzLnBhdGguY2hhckF0KDApIT09Ii8iJiYoUys9Ii8iKSxTKz1BLnBhdGgoITApLEEuX3BhcnRzLnF1ZXJ5KXtmb3IodmFyIFA9IiIsQj0wLGo9QS5fcGFydHMucXVlcnkuc3BsaXQoIiYiKSxIPWoubGVuZ3RoO0I8SDtCKyspe3ZhciBrPShqW0JdfHwiIikuc3BsaXQoIj0iKTtQKz0iJiIraS5kZWNvZGVRdWVyeShrWzBdLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLnJlcGxhY2UoLyYvZywiJTI2Iiksa1sxXSE9PXZvaWQgMCYmKFArPSI9IitpLmRlY29kZVF1ZXJ5KGtbMV0sdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSkucmVwbGFjZSgvJi9nLCIlMjYiKSl9Uys9Ij8iK1Auc3Vic3RyaW5nKDEpfXJldHVybiBTKz1pLmRlY29kZVF1ZXJ5KEEuaGFzaCgpLCEwKSxTfSxmLmFic29sdXRlVG89ZnVuY3Rpb24oQSl7dmFyIFM9dGhpcy5jbG9uZSgpLFA9WyJwcm90b2NvbCIsInVzZXJuYW1lIiwicGFzc3dvcmQiLCJob3N0bmFtZSIsInBvcnQiXSxCLGosSDtpZih0aGlzLl9wYXJ0cy51cm4pdGhyb3cgbmV3IEVycm9yKCJVUk5zIGRvIG5vdCBoYXZlIGFueSBnZW5lcmFsbHkgZGVmaW5lZCBoaWVyYXJjaGljYWwgY29tcG9uZW50cyIpO2lmKEEgaW5zdGFuY2VvZiBpfHwoQT1uZXcgaShBKSksUy5fcGFydHMucHJvdG9jb2x8fChTLl9wYXJ0cy5wcm90b2NvbD1BLl9wYXJ0cy5wcm90b2NvbCx0aGlzLl9wYXJ0cy5ob3N0bmFtZSkpcmV0dXJuIFM7Zm9yKGo9MDtIPVBbal07aisrKVMuX3BhcnRzW0hdPUEuX3BhcnRzW0hdO3JldHVybiBTLl9wYXJ0cy5wYXRoPyhTLl9wYXJ0cy5wYXRoLnN1YnN0cmluZygtMik9PT0iLi4iJiYoUy5fcGFydHMucGF0aCs9Ii8iKSxTLnBhdGgoKS5jaGFyQXQoMCkhPT0iLyImJihCPUEuZGlyZWN0b3J5KCksQj1CfHwoQS5wYXRoKCkuaW5kZXhPZigiLyIpPT09MD8iLyI6IiIpLFMuX3BhcnRzLnBhdGg9KEI/QisiLyI6IiIpK1MuX3BhcnRzLnBhdGgsUy5ub3JtYWxpemVQYXRoKCkpKTooUy5fcGFydHMucGF0aD1BLl9wYXJ0cy5wYXRoLFMuX3BhcnRzLnF1ZXJ5fHwoUy5fcGFydHMucXVlcnk9QS5fcGFydHMucXVlcnkpKSxTLmJ1aWxkKCksU30sZi5yZWxhdGl2ZVRvPWZ1bmN0aW9uKEEpe3ZhciBTPXRoaXMuY2xvbmUoKS5ub3JtYWxpemUoKSxQLEIsaixILGs7aWYoUy5fcGFydHMudXJuKXRocm93IG5ldyBFcnJvcigiVVJOcyBkbyBub3QgaGF2ZSBhbnkgZ2VuZXJhbGx5IGRlZmluZWQgaGllcmFyY2hpY2FsIGNvbXBvbmVudHMiKTtpZihBPW5ldyBpKEEpLm5vcm1hbGl6ZSgpLFA9Uy5fcGFydHMsQj1BLl9wYXJ0cyxIPVMucGF0aCgpLGs9QS5wYXRoKCksSC5jaGFyQXQoMCkhPT0iLyIpdGhyb3cgbmV3IEVycm9yKCJVUkkgaXMgYWxyZWFkeSByZWxhdGl2ZSIpO2lmKGsuY2hhckF0KDApIT09Ii8iKXRocm93IG5ldyBFcnJvcigiQ2Fubm90IGNhbGN1bGF0ZSBhIFVSSSByZWxhdGl2ZSB0byBhbm90aGVyIHJlbGF0aXZlIFVSSSIpO2lmKFAucHJvdG9jb2w9PT1CLnByb3RvY29sJiYoUC5wcm90b2NvbD1udWxsKSxQLnVzZXJuYW1lIT09Qi51c2VybmFtZXx8UC5wYXNzd29yZCE9PUIucGFzc3dvcmR8fFAucHJvdG9jb2whPT1udWxsfHxQLnVzZXJuYW1lIT09bnVsbHx8UC5wYXNzd29yZCE9PW51bGwpcmV0dXJuIFMuYnVpbGQoKTtpZihQLmhvc3RuYW1lPT09Qi5ob3N0bmFtZSYmUC5wb3J0PT09Qi5wb3J0KVAuaG9zdG5hbWU9bnVsbCxQLnBvcnQ9bnVsbDtlbHNlIHJldHVybiBTLmJ1aWxkKCk7aWYoSD09PWspcmV0dXJuIFAucGF0aD0iIixTLmJ1aWxkKCk7aWYoaj1pLmNvbW1vblBhdGgoSCxrKSwhailyZXR1cm4gUy5idWlsZCgpO3ZhciBLPUIucGF0aC5zdWJzdHJpbmcoai5sZW5ndGgpLnJlcGxhY2UoL1teXC9dKiQvLCIiKS5yZXBsYWNlKC8uKj9cLy9nLCIuLi8iKTtyZXR1cm4gUC5wYXRoPUsrUC5wYXRoLnN1YnN0cmluZyhqLmxlbmd0aCl8fCIuLyIsUy5idWlsZCgpfSxmLmVxdWFscz1mdW5jdGlvbihBKXt2YXIgUz10aGlzLmNsb25lKCksUD1uZXcgaShBKSxCPXt9LGo9e30sSD17fSxrLEssWDtpZihTLm5vcm1hbGl6ZSgpLFAubm9ybWFsaXplKCksUy50b1N0cmluZygpPT09UC50b1N0cmluZygpKXJldHVybiEwO2lmKGs9Uy5xdWVyeSgpLEs9UC5xdWVyeSgpLFMucXVlcnkoIiIpLFAucXVlcnkoIiIpLFMudG9TdHJpbmcoKSE9PVAudG9TdHJpbmcoKXx8ay5sZW5ndGghPT1LLmxlbmd0aClyZXR1cm4hMTtCPWkucGFyc2VRdWVyeShrLHRoaXMuX3BhcnRzLmVzY2FwZVF1ZXJ5U3BhY2UpLGo9aS5wYXJzZVF1ZXJ5KEssdGhpcy5fcGFydHMuZXNjYXBlUXVlcnlTcGFjZSk7Zm9yKFggaW4gQilpZih1LmNhbGwoQixYKSl7aWYocChCW1hdKSl7aWYoIV8oQltYXSxqW1hdKSlyZXR1cm4hMX1lbHNlIGlmKEJbWF0hPT1qW1hdKXJldHVybiExO0hbWF09ITB9Zm9yKFggaW4gailpZih1LmNhbGwoaixYKSYmIUhbWF0pcmV0dXJuITE7cmV0dXJuITB9LGYucHJldmVudEludmFsaWRIb3N0bmFtZT1mdW5jdGlvbihBKXtyZXR1cm4gdGhpcy5fcGFydHMucHJldmVudEludmFsaWRIb3N0bmFtZT0hIUEsdGhpc30sZi5kdXBsaWNhdGVRdWVyeVBhcmFtZXRlcnM9ZnVuY3Rpb24oQSl7cmV0dXJuIHRoaXMuX3BhcnRzLmR1cGxpY2F0ZVF1ZXJ5UGFyYW1ldGVycz0hIUEsdGhpc30sZi5lc2NhcGVRdWVyeVNwYWNlPWZ1bmN0aW9uKEEpe3JldHVybiB0aGlzLl9wYXJ0cy5lc2NhcGVRdWVyeVNwYWNlPSEhQSx0aGlzfSxpfSl9KTtmdW5jdGlvbiBueCh0KXtyZXR1cm4odC5sZW5ndGg9PT0wfHx0W3QubGVuZ3RoLTFdIT09Ii8iKSYmKHQ9YCR7dH0vYCksdH12YXIgVTEsVjE9WigoKT0+e1UxPW54fSk7ZnVuY3Rpb24gazEodCxlKXtpZih0PT09bnVsbHx8dHlwZW9mIHQhPSJvYmplY3QiKXJldHVybiB0O2U9eChlLCExKTtsZXQgbj1uZXcgdC5jb25zdHJ1Y3Rvcjtmb3IobGV0IG8gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG8pKXtsZXQgcj10W29dO2UmJihyPWsxKHIsZSkpLG5bb109cn1yZXR1cm4gbn12YXIgWWMsRzE9WigoKT0+e0l0KCk7WWM9azF9KTtmdW5jdGlvbiB6MSh0LGUsbil7bj14KG4sITEpO2xldCBvPXt9LHI9aCh0KSxpPWgoZSkscyxmLHU7aWYocilmb3IocyBpbiB0KXQuaGFzT3duUHJvcGVydHkocykmJihmPXRbc10saSYmbiYmdHlwZW9mIGY9PSJvYmplY3QiJiZlLmhhc093blByb3BlcnR5KHMpPyh1PWVbc10sdHlwZW9mIHU9PSJvYmplY3QiP29bc109ejEoZix1LG4pOm9bc109Zik6b1tzXT1mKTtpZihpKWZvcihzIGluIGUpZS5oYXNPd25Qcm9wZXJ0eShzKSYmIW8uaGFzT3duUHJvcGVydHkocykmJih1PWVbc10sb1tzXT11KTtyZXR1cm4gb312YXIgX3IscnA9WigoKT0+e0l0KCk7ZnQoKTtfcj16MX0pO2Z1bmN0aW9uIG94KCl7bGV0IHQsZSxuPW5ldyBQcm9taXNlKGZ1bmN0aW9uKG8scil7dD1vLGU9cn0pO3JldHVybntyZXNvbHZlOnQscmVqZWN0OmUscHJvbWlzZTpufX12YXIganMsVW09WigoKT0+e2pzPW94fSk7ZnVuY3Rpb24gVm0odCxlKXtsZXQgbjtyZXR1cm4gdHlwZW9mIGRvY3VtZW50PCJ1IiYmKG49ZG9jdW1lbnQpLFZtLl9pbXBsZW1lbnRhdGlvbih0LGUsbil9dmFyIGoxLHVmLGttPVooKCk9PntqMT1kcih6cygpLDEpO0l0KCk7ZnQoKTtIdCgpO1ZtLl9pbXBsZW1lbnRhdGlvbj1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJlbGF0aXZlIHVyaSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl7aWYodHlwZW9mIG4+InUiKXJldHVybiB0O2U9eChuLmJhc2VVUkksbi5sb2NhdGlvbi5ocmVmKX1sZXQgbz1uZXcgajEuZGVmYXVsdCh0KTtyZXR1cm4gby5zY2hlbWUoKSE9PSIiP28udG9TdHJpbmcoKTpvLmFic29sdXRlVG8oZSkudG9TdHJpbmcoKX07dWY9Vm19KTtmdW5jdGlvbiByeCh0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ1cmkgaXMgcmVxdWlyZWQuIik7bGV0IG49IiIsbz10Lmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIG8hPT0tMSYmKG49dC5zdWJzdHJpbmcoMCxvKzEpKSxlJiYodD1uZXcgSDEuZGVmYXVsdCh0KSx0LnF1ZXJ5KCkubGVuZ3RoIT09MCYmKG4rPWA/JHt0LnF1ZXJ5KCl9YCksdC5mcmFnbWVudCgpLmxlbmd0aCE9PTAmJihuKz1gIyR7dC5mcmFnbWVudCgpfWApKSxufXZhciBIMSxxMSxLMT1aKCgpPT57SDE9ZHIoenMoKSwxKTtmdCgpO0h0KCk7cTE9cnh9KTtmdW5jdGlvbiBpeCh0KXtpZighaCh0KSl0aHJvdyBuZXcgRigidXJpIGlzIHJlcXVpcmVkLiIpO2xldCBlPW5ldyBXMS5kZWZhdWx0KHQpO2Uubm9ybWFsaXplKCk7bGV0IG49ZS5wYXRoKCksbz1uLmxhc3RJbmRleE9mKCIvIik7cmV0dXJuIG8hPT0tMSYmKG49bi5zdWJzdHIobysxKSksbz1uLmxhc3RJbmRleE9mKCIuIiksbz09PS0xP249IiI6bj1uLnN1YnN0cihvKzEpLG59dmFyIFcxLFgxLFkxPVooKCk9PntXMT1kcih6cygpLDEpO2Z0KCk7SHQoKTtYMT1peH0pO2Z1bmN0aW9uIHN4KHQsZSxuKXtoKGUpfHwoZT10LndpZHRoKSxoKG4pfHwobj10LmhlaWdodCk7bGV0IG89JDFbZV07aChvKXx8KG89e30sJDFbZV09byk7bGV0IHI9b1tuXTtpZighaChyKSl7bGV0IGk9ZG9jdW1lbnQuY3JlYXRlRWxlbWVudCgiY2FudmFzIik7aS53aWR0aD1lLGkuaGVpZ2h0PW4scj1pLmdldENvbnRleHQoIjJkIix7d2lsbFJlYWRGcmVxdWVudGx5OiEwfSksci5nbG9iYWxDb21wb3NpdGVPcGVyYXRpb249ImNvcHkiLG9bbl09cn1yZXR1cm4gci5kcmF3SW1hZ2UodCwwLDAsZSxuKSxyLmdldEltYWdlRGF0YSgwLDAsZSxuKS5kYXRhfXZhciAkMSxHbSxaMT1aKCgpPT57ZnQoKTskMT17fTtHbT1zeH0pO2Z1bmN0aW9uIGF4KHQpe3JldHVybiB5LnR5cGVPZi5zdHJpbmcoInVyaSIsdCksY3gudGVzdCh0KX12YXIgY3gsaXAsem09WigoKT0+e1h0KCk7Y3g9L15ibG9iOi9pO2lwPWF4fSk7ZnVuY3Rpb24gZngodCl7aCh0aSl8fCh0aT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLHRpLmhyZWY9d2luZG93LmxvY2F0aW9uLmhyZWY7bGV0IGU9dGkuaG9zdCxuPXRpLnByb3RvY29sO3JldHVybiB0aS5ocmVmPXQsdGkuaHJlZj10aS5ocmVmLG4hPT10aS5wcm90b2NvbHx8ZSE9PXRpLmhvc3R9dmFyIHRpLFExLEoxPVooKCk9PntmdCgpO1ExPWZ4fSk7ZnVuY3Rpb24gbHgodCl7cmV0dXJuIHkudHlwZU9mLnN0cmluZygidXJpIix0KSx1eC50ZXN0KHQpfXZhciB1eCxzcCxqbT1aKCgpPT57WHQoKTt1eD0vXmRhdGE6L2k7c3A9bHh9KTtmdW5jdGlvbiBweCh0KXtsZXQgZT1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJzY3JpcHQiKTtyZXR1cm4gZS5hc3luYz0hMCxlLnNyYz10LG5ldyBQcm9taXNlKChuLG8pPT57d2luZG93LmNyb3NzT3JpZ2luSXNvbGF0ZWQmJmUuc2V0QXR0cmlidXRlKCJjcm9zc29yaWdpbiIsImFub255bW91cyIpO2xldCByPWRvY3VtZW50LmdldEVsZW1lbnRzQnlUYWdOYW1lKCJoZWFkIilbMF07ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtlLm9ubG9hZD12b2lkIDAsci5yZW1vdmVDaGlsZChlKSxuKCl9LGUub25lcnJvcj1mdW5jdGlvbihpKXtvKGkpfSxyLmFwcGVuZENoaWxkKGUpfSl9dmFyIHRBLGVBPVooKCk9Pnt0QT1weH0pO2Z1bmN0aW9uIGR4KHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJvYmogaXMgcmVxdWlyZWQuIik7bGV0IGU9IiI7Zm9yKGxldCBuIGluIHQpaWYodC5oYXNPd25Qcm9wZXJ0eShuKSl7bGV0IG89dFtuXSxyPWAke2VuY29kZVVSSUNvbXBvbmVudChuKX09YDtpZihBcnJheS5pc0FycmF5KG8pKWZvcihsZXQgaT0wLHM9by5sZW5ndGg7aTxzOysraSllKz1gJHtyK2VuY29kZVVSSUNvbXBvbmVudChvW2ldKX0mYDtlbHNlIGUrPWAke3IrZW5jb2RlVVJJQ29tcG9uZW50KG8pfSZgfXJldHVybiBlPWUuc2xpY2UoMCwtMSksZX12YXIgbkEsb0E9WigoKT0+e2Z0KCk7SHQoKTtuQT1keH0pO2Z1bmN0aW9uIG14KHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJxdWVyeVN0cmluZyBpcyByZXF1aXJlZC4iKTtsZXQgZT17fTtpZih0PT09IiIpcmV0dXJuIGU7bGV0IG49dC5yZXBsYWNlKC9cKy9nLCIlMjAiKS5zcGxpdCgvWyY7XS8pO2ZvcihsZXQgbz0wLHI9bi5sZW5ndGg7bzxyOysrbyl7bGV0IGk9bltvXS5zcGxpdCgiPSIpLHM9ZGVjb2RlVVJJQ29tcG9uZW50KGlbMF0pLGY9aVsxXTtoKGYpP2Y9ZGVjb2RlVVJJQ29tcG9uZW50KGYpOmY9IiI7bGV0IHU9ZVtzXTt0eXBlb2YgdT09InN0cmluZyI/ZVtzXT1bdSxmXTpBcnJheS5pc0FycmF5KHUpP3UucHVzaChmKTplW3NdPWZ9cmV0dXJuIGV9dmFyIHJBLGlBPVooKCk9PntmdCgpO0h0KCk7ckE9bXh9KTt2YXIgaHgsQ24sY3A9WigoKT0+e2h4PXtVTklTU1VFRDowLElTU1VFRDoxLEFDVElWRToyLFJFQ0VJVkVEOjMsQ0FOQ0VMTEVEOjQsRkFJTEVEOjV9LENuPU9iamVjdC5mcmVlemUoaHgpfSk7dmFyIF94LHNBLGNBPVooKCk9PntfeD17VEVSUkFJTjowLElNQUdFUlk6MSxUSUxFUzNEOjIsT1RIRVI6M30sc0E9T2JqZWN0LmZyZWV6ZShfeCl9KTtmdW5jdGlvbiBhcCh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9eCh0LnRocm90dGxlQnlTZXJ2ZXIsITEpLG49eCh0LnRocm90dGxlLCExKTt0aGlzLnVybD10LnVybCx0aGlzLnJlcXVlc3RGdW5jdGlvbj10LnJlcXVlc3RGdW5jdGlvbix0aGlzLmNhbmNlbEZ1bmN0aW9uPXQuY2FuY2VsRnVuY3Rpb24sdGhpcy5wcmlvcml0eUZ1bmN0aW9uPXQucHJpb3JpdHlGdW5jdGlvbix0aGlzLnByaW9yaXR5PXgodC5wcmlvcml0eSwwKSx0aGlzLnRocm90dGxlPW4sdGhpcy50aHJvdHRsZUJ5U2VydmVyPWUsdGhpcy50eXBlPXgodC50eXBlLHNBLk9USEVSKSx0aGlzLnNlcnZlcktleT10LnNlcnZlcktleSx0aGlzLnN0YXRlPUNuLlVOSVNTVUVELHRoaXMuZGVmZXJyZWQ9dm9pZCAwLHRoaXMuY2FuY2VsbGVkPSExfXZhciBhQSxmQT1aKCgpPT57SXQoKTtmdCgpO2NwKCk7Y0EoKTthcC5wcm90b3R5cGUuY2FuY2VsPWZ1bmN0aW9uKCl7dGhpcy5jYW5jZWxsZWQ9ITB9O2FwLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KT8odC51cmw9dGhpcy51cmwsdC5yZXF1ZXN0RnVuY3Rpb249dGhpcy5yZXF1ZXN0RnVuY3Rpb24sdC5jYW5jZWxGdW5jdGlvbj10aGlzLmNhbmNlbEZ1bmN0aW9uLHQucHJpb3JpdHlGdW5jdGlvbj10aGlzLnByaW9yaXR5RnVuY3Rpb24sdC5wcmlvcml0eT10aGlzLnByaW9yaXR5LHQudGhyb3R0bGU9dGhpcy50aHJvdHRsZSx0LnRocm90dGxlQnlTZXJ2ZXI9dGhpcy50aHJvdHRsZUJ5U2VydmVyLHQudHlwZT10aGlzLnR5cGUsdC5zZXJ2ZXJLZXk9dGhpcy5zZXJ2ZXJLZXksdC5zdGF0ZT1Dbi5VTklTU1VFRCx0LmRlZmVycmVkPXZvaWQgMCx0LmNhbmNlbGxlZD0hMSx0KTpuZXcgYXAodGhpcyl9O2FBPWFwfSk7ZnVuY3Rpb24geXgodCl7bGV0IGU9e307aWYoIXQpcmV0dXJuIGU7bGV0IG49dC5zcGxpdChgXHIKYCk7Zm9yKGxldCBvPTA7bzxuLmxlbmd0aDsrK28pe2xldCByPW5bb10saT1yLmluZGV4T2YoIjogIik7aWYoaT4wKXtsZXQgcz1yLnN1YnN0cmluZygwLGkpLGY9ci5zdWJzdHJpbmcoaSsyKTtlW3NdPWZ9fXJldHVybiBlfXZhciB1QSxsQT1aKCgpPT57dUE9eXh9KTtmdW5jdGlvbiBwQSh0LGUsbil7dGhpcy5zdGF0dXNDb2RlPXQsdGhpcy5yZXNwb25zZT1lLHRoaXMucmVzcG9uc2VIZWFkZXJzPW4sdHlwZW9mIHRoaXMucmVzcG9uc2VIZWFkZXJzPT0ic3RyaW5nIiYmKHRoaXMucmVzcG9uc2VIZWFkZXJzPXVBKHRoaXMucmVzcG9uc2VIZWFkZXJzKSl9dmFyIGxmLGRBPVooKCk9PntmdCgpO2xBKCk7cEEucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9IlJlcXVlc3QgaGFzIGZhaWxlZC4iO3JldHVybiBoKHRoaXMuc3RhdHVzQ29kZSkmJih0Kz1gIFN0YXR1cyBDb2RlOiAke3RoaXMuc3RhdHVzQ29kZX1gKSx0fTtsZj1wQX0pO2Z1bmN0aW9uIHBmKCl7dGhpcy5fbGlzdGVuZXJzPVtdLHRoaXMuX3Njb3Blcz1bXSx0aGlzLl90b1JlbW92ZT1bXSx0aGlzLl9pbnNpZGVSYWlzZUV2ZW50PSExfWZ1bmN0aW9uIGd4KHQsZSl7cmV0dXJuIGUtdH12YXIgbUEsaEE9WigoKT0+e1h0KCk7ZnQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhwZi5wcm90b3R5cGUse251bWJlck9mTGlzdGVuZXJzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGlzdGVuZXJzLmxlbmd0aC10aGlzLl90b1JlbW92ZS5sZW5ndGh9fX0pO3BmLnByb3RvdHlwZS5hZGRFdmVudExpc3RlbmVyPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YuZnVuYygibGlzdGVuZXIiLHQpLHRoaXMuX2xpc3RlbmVycy5wdXNoKHQpLHRoaXMuX3Njb3Blcy5wdXNoKGUpO2xldCBuPXRoaXM7cmV0dXJuIGZ1bmN0aW9uKCl7bi5yZW1vdmVFdmVudExpc3RlbmVyKHQsZSl9fTtwZi5wcm90b3R5cGUucmVtb3ZlRXZlbnRMaXN0ZW5lcj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLmZ1bmMoImxpc3RlbmVyIix0KTtsZXQgbj10aGlzLl9saXN0ZW5lcnMsbz10aGlzLl9zY29wZXMscj0tMTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krKylpZihuW2ldPT09dCYmb1tpXT09PWUpe3I9aTticmVha31yZXR1cm4gciE9PS0xPyh0aGlzLl9pbnNpZGVSYWlzZUV2ZW50Pyh0aGlzLl90b1JlbW92ZS5wdXNoKHIpLG5bcl09dm9pZCAwLG9bcl09dm9pZCAwKToobi5zcGxpY2UociwxKSxvLnNwbGljZShyLDEpKSwhMCk6ITF9O3BmLnByb3RvdHlwZS5yYWlzZUV2ZW50PWZ1bmN0aW9uKCl7dGhpcy5faW5zaWRlUmFpc2VFdmVudD0hMDtsZXQgdCxlPXRoaXMuX2xpc3RlbmVycyxuPXRoaXMuX3Njb3BlcyxvPWUubGVuZ3RoO2Zvcih0PTA7dDxvO3QrKyl7bGV0IGk9ZVt0XTtoKGkpJiZlW3RdLmFwcGx5KG5bdF0sYXJndW1lbnRzKX1sZXQgcj10aGlzLl90b1JlbW92ZTtpZihvPXIubGVuZ3RoLG8+MCl7Zm9yKHIuc29ydChneCksdD0wO3Q8bzt0Kyspe2xldCBpPXJbdF07ZS5zcGxpY2UoaSwxKSxuLnNwbGljZShpLDEpfXIubGVuZ3RoPTB9dGhpcy5faW5zaWRlUmFpc2VFdmVudD0hMX07bUE9cGZ9KTtmdW5jdGlvbiBIcyh0KXt5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMiLHQpLHkuZGVmaW5lZCgib3B0aW9ucy5jb21wYXJhdG9yIix0LmNvbXBhcmF0b3IpLHRoaXMuX2NvbXBhcmF0b3I9dC5jb21wYXJhdG9yLHRoaXMuX2FycmF5PVtdLHRoaXMuX2xlbmd0aD0wLHRoaXMuX21heGltdW1MZW5ndGg9dm9pZCAwfWZ1bmN0aW9uIEhtKHQsZSxuKXtsZXQgbz10W2VdO3RbZV09dFtuXSx0W25dPW99dmFyIF9BLHlBPVooKCk9PntYdCgpO0l0KCk7ZnQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhIcy5wcm90b3R5cGUse2xlbmd0aDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2xlbmd0aH19LGludGVybmFsQXJyYXk6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9hcnJheX19LG1heGltdW1MZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9tYXhpbXVtTGVuZ3RofSxzZXQ6ZnVuY3Rpb24odCl7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIm1heGltdW1MZW5ndGgiLHQsMCk7bGV0IGU9dGhpcy5fbGVuZ3RoO2lmKHQ8ZSl7bGV0IG49dGhpcy5fYXJyYXk7Zm9yKGxldCBvPXQ7bzxlOysrbyluW29dPXZvaWQgMDt0aGlzLl9sZW5ndGg9dCxuLmxlbmd0aD10fXRoaXMuX21heGltdW1MZW5ndGg9dH19LGNvbXBhcmF0b3I6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jb21wYXJhdG9yfX19KTtIcy5wcm90b3R5cGUucmVzZXJ2ZT1mdW5jdGlvbih0KXt0PXgodCx0aGlzLl9sZW5ndGgpLHRoaXMuX2FycmF5Lmxlbmd0aD10fTtIcy5wcm90b3R5cGUuaGVhcGlmeT1mdW5jdGlvbih0KXt0PXgodCwwKTtsZXQgZT10aGlzLl9sZW5ndGgsbj10aGlzLl9jb21wYXJhdG9yLG89dGhpcy5fYXJyYXkscj0tMSxpPSEwO2Zvcig7aTspe2xldCBzPTIqKHQrMSksZj1zLTE7ZjxlJiZuKG9bZl0sb1t0XSk8MD9yPWY6cj10LHM8ZSYmbihvW3NdLG9bcl0pPDAmJihyPXMpLHIhPT10PyhIbShvLHIsdCksdD1yKTppPSExfX07SHMucHJvdG90eXBlLnJlc29ydD1mdW5jdGlvbigpe2xldCB0PXRoaXMuX2xlbmd0aDtmb3IobGV0IGU9TWF0aC5jZWlsKHQvMik7ZT49MDstLWUpdGhpcy5oZWFwaWZ5KGUpfTtIcy5wcm90b3R5cGUuaW5zZXJ0PWZ1bmN0aW9uKHQpe3kuZGVmaW5lZCgiZWxlbWVudCIsdCk7bGV0IGU9dGhpcy5fYXJyYXksbj10aGlzLl9jb21wYXJhdG9yLG89dGhpcy5fbWF4aW11bUxlbmd0aCxyPXRoaXMuX2xlbmd0aCsrO2ZvcihyPGUubGVuZ3RoP2Vbcl09dDplLnB1c2godCk7ciE9PTA7KXtsZXQgcz1NYXRoLmZsb29yKChyLTEpLzIpO2lmKG4oZVtyXSxlW3NdKTwwKUhtKGUscixzKSxyPXM7ZWxzZSBicmVha31sZXQgaTtyZXR1cm4gaChvKSYmdGhpcy5fbGVuZ3RoPm8mJihpPWVbb10sdGhpcy5fbGVuZ3RoPW8pLGl9O0hzLnByb3RvdHlwZS5wb3A9ZnVuY3Rpb24odCl7aWYodD14KHQsMCksdGhpcy5fbGVuZ3RoPT09MClyZXR1cm47eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuKCJpbmRleCIsdCx0aGlzLl9sZW5ndGgpO2xldCBlPXRoaXMuX2FycmF5LG49ZVt0XTtyZXR1cm4gSG0oZSx0LC0tdGhpcy5fbGVuZ3RoKSx0aGlzLmhlYXBpZnkodCksZVt0aGlzLl9sZW5ndGhdPXZvaWQgMCxufTtfQT1Ic30pO2Z1bmN0aW9uIEF4KHQsZSl7cmV0dXJuIHQucHJpb3JpdHktZS5wcmlvcml0eX1mdW5jdGlvbiB3bigpe31mdW5jdGlvbiBnQSh0KXtoKHQucHJpb3JpdHlGdW5jdGlvbikmJih0LnByaW9yaXR5PXQucHJpb3JpdHlGdW5jdGlvbigpKX1mdW5jdGlvbiBBQSh0KXtyZXR1cm4gdC5zdGF0ZT09PUNuLlVOSVNTVUVEJiYodC5zdGF0ZT1Dbi5JU1NVRUQsdC5kZWZlcnJlZD1qcygpKSx0LmRlZmVycmVkLnByb21pc2V9ZnVuY3Rpb24gd3godCl7cmV0dXJuIGZ1bmN0aW9uKGUpe2lmKHQuc3RhdGU9PT1Dbi5DQU5DRUxMRUQpcmV0dXJuO2xldCBuPXQuZGVmZXJyZWQ7LS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tQ2lbdC5zZXJ2ZXJLZXldLHVwLnJhaXNlRXZlbnQoKSx0LnN0YXRlPUNuLlJFQ0VJVkVELHQuZGVmZXJyZWQ9dm9pZCAwLG4ucmVzb2x2ZShlKX19ZnVuY3Rpb24gVHgodCl7cmV0dXJuIGZ1bmN0aW9uKGUpe3Quc3RhdGUhPT1Dbi5DQU5DRUxMRUQmJigrK2plLm51bWJlck9mRmFpbGVkUmVxdWVzdHMsLS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tQ2lbdC5zZXJ2ZXJLZXldLHVwLnJhaXNlRXZlbnQoZSksdC5zdGF0ZT1Dbi5GQUlMRUQsdC5kZWZlcnJlZC5yZWplY3QoZSkpfX1mdW5jdGlvbiBiQSh0KXtsZXQgZT1BQSh0KTtyZXR1cm4gdC5zdGF0ZT1Dbi5BQ1RJVkUsZWkucHVzaCh0KSwrK2plLm51bWJlck9mQWN0aXZlUmVxdWVzdHMsKytqZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzRXZlciwrK0NpW3Quc2VydmVyS2V5XSx0LnJlcXVlc3RGdW5jdGlvbigpLnRoZW4od3godCkpLmNhdGNoKFR4KHQpKSxlfWZ1bmN0aW9uIHFzKHQpe2xldCBlPXQuc3RhdGU9PT1Dbi5BQ1RJVkU7aWYodC5zdGF0ZT1Dbi5DQU5DRUxMRUQsKytqZS5udW1iZXJPZkNhbmNlbGxlZFJlcXVlc3RzLGgodC5kZWZlcnJlZCkpe2xldCBuPXQuZGVmZXJyZWQ7dC5kZWZlcnJlZD12b2lkIDAsbi5yZWplY3QoKX1lJiYoLS1qZS5udW1iZXJPZkFjdGl2ZVJlcXVlc3RzLC0tQ2lbdC5zZXJ2ZXJLZXldLCsramUubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0cyksaCh0LmNhbmNlbEZ1bmN0aW9uKSYmdC5jYW5jZWxGdW5jdGlvbigpfWZ1bmN0aW9uIE94KCl7d24uZGVidWdTaG93U3RhdGlzdGljcyYmKGplLm51bWJlck9mQWN0aXZlUmVxdWVzdHM9PT0wJiZqZS5sYXN0TnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cz4wJiYoamUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cz4wJiYoY29uc29sZS5sb2coYE51bWJlciBvZiBhdHRlbXB0ZWQgcmVxdWVzdHM6ICR7amUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0c31gKSxqZS5udW1iZXJPZkF0dGVtcHRlZFJlcXVlc3RzPTApLGplLm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM+MCYmKGNvbnNvbGUubG9nKGBOdW1iZXIgb2YgY2FuY2VsbGVkIHJlcXVlc3RzOiAke2plLm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHN9YCksamUubnVtYmVyT2ZDYW5jZWxsZWRSZXF1ZXN0cz0wKSxqZS5udW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzPjAmJihjb25zb2xlLmxvZyhgTnVtYmVyIG9mIGNhbmNlbGxlZCBhY3RpdmUgcmVxdWVzdHM6ICR7amUubnVtYmVyT2ZDYW5jZWxsZWRBY3RpdmVSZXF1ZXN0c31gKSxqZS5udW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzPTApLGplLm51bWJlck9mRmFpbGVkUmVxdWVzdHM+MCYmKGNvbnNvbGUubG9nKGBOdW1iZXIgb2YgZmFpbGVkIHJlcXVlc3RzOiAke2plLm51bWJlck9mRmFpbGVkUmVxdWVzdHN9YCksamUubnVtYmVyT2ZGYWlsZWRSZXF1ZXN0cz0wKSksamUubGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM9amUubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cyl9dmFyIGZwLGplLCRjLHdvLGVpLENpLGJ4LHVwLGxwLHdBPVooKCk9PntmcD1kcih6cygpLDEpO1h0KCk7SXQoKTtVbSgpO2Z0KCk7aEEoKTt5QSgpO3ptKCk7am0oKTtjcCgpO2plPXtudW1iZXJPZkF0dGVtcHRlZFJlcXVlc3RzOjAsbnVtYmVyT2ZBY3RpdmVSZXF1ZXN0czowLG51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM6MCxudW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzOjAsbnVtYmVyT2ZGYWlsZWRSZXF1ZXN0czowLG51bWJlck9mQWN0aXZlUmVxdWVzdHNFdmVyOjAsbGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM6MH0sJGM9MjAsd289bmV3IF9BKHtjb21wYXJhdG9yOkF4fSk7d28ubWF4aW11bUxlbmd0aD0kYzt3by5yZXNlcnZlKCRjKTtlaT1bXSxDaT17fSxieD10eXBlb2YgZG9jdW1lbnQ8InUiP25ldyBmcC5kZWZhdWx0KGRvY3VtZW50LmxvY2F0aW9uLmhyZWYpOm5ldyBmcC5kZWZhdWx0LHVwPW5ldyBtQTt3bi5tYXhpbXVtUmVxdWVzdHM9NTA7d24ubWF4aW11bVJlcXVlc3RzUGVyU2VydmVyPTE4O3duLnJlcXVlc3RzQnlTZXJ2ZXI9e307d24udGhyb3R0bGVSZXF1ZXN0cz0hMDt3bi5kZWJ1Z1Nob3dTdGF0aXN0aWNzPSExO3duLnJlcXVlc3RDb21wbGV0ZWRFdmVudD11cDtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh3bix7c3RhdGlzdGljczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGplfX0scHJpb3JpdHlIZWFwTGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gJGN9LHNldDpmdW5jdGlvbih0KXtpZih0PCRjKWZvcig7d28ubGVuZ3RoPnQ7KXtsZXQgZT13by5wb3AoKTtxcyhlKX0kYz10LHdvLm1heGltdW1MZW5ndGg9dCx3by5yZXNlcnZlKHQpfX19KTt3bi5zZXJ2ZXJIYXNPcGVuU2xvdHM9ZnVuY3Rpb24odCxlKXtlPXgoZSwxKTtsZXQgbj14KHduLnJlcXVlc3RzQnlTZXJ2ZXJbdF0sd24ubWF4aW11bVJlcXVlc3RzUGVyU2VydmVyKTtyZXR1cm4gQ2lbdF0rZTw9bn07d24uaGVhcEhhc09wZW5TbG90cz1mdW5jdGlvbih0KXtyZXR1cm4gd28ubGVuZ3RoK3Q8PSRjfTt3bi51cGRhdGU9ZnVuY3Rpb24oKXtsZXQgdCxlLG49MCxvPWVpLmxlbmd0aDtmb3IodD0wO3Q8bzsrK3Qpe2lmKGU9ZWlbdF0sZS5jYW5jZWxsZWQmJnFzKGUpLGUuc3RhdGUhPT1Dbi5BQ1RJVkUpeysrbjtjb250aW51ZX1uPjAmJihlaVt0LW5dPWUpfWVpLmxlbmd0aC09bjtsZXQgcj13by5pbnRlcm5hbEFycmF5LGk9d28ubGVuZ3RoO2Zvcih0PTA7dDxpOysrdClnQShyW3RdKTt3by5yZXNvcnQoKTtsZXQgcz1NYXRoLm1heCh3bi5tYXhpbXVtUmVxdWVzdHMtZWkubGVuZ3RoLDApLGY9MDtmb3IoO2Y8cyYmd28ubGVuZ3RoPjA7KXtpZihlPXdvLnBvcCgpLGUuY2FuY2VsbGVkKXtxcyhlKTtjb250aW51ZX1pZihlLnRocm90dGxlQnlTZXJ2ZXImJiF3bi5zZXJ2ZXJIYXNPcGVuU2xvdHMoZS5zZXJ2ZXJLZXkpKXtxcyhlKTtjb250aW51ZX1iQShlKSwrK2Z9T3goKX07d24uZ2V0U2VydmVyS2V5PWZ1bmN0aW9uKHQpe3kudHlwZU9mLnN0cmluZygidXJsIix0KTtsZXQgZT1uZXcgZnAuZGVmYXVsdCh0KTtlLnNjaGVtZSgpPT09IiImJihlPWUuYWJzb2x1dGVUbyhieCksZS5ub3JtYWxpemUoKSk7bGV0IG49ZS5hdXRob3JpdHkoKTsvOi8udGVzdChuKXx8KG49YCR7bn06JHtlLnNjaGVtZSgpPT09Imh0dHBzIj8iNDQzIjoiODAifWApO2xldCBvPUNpW25dO3JldHVybiBoKG8pfHwoQ2lbbl09MCksbn07d24ucmVxdWVzdD1mdW5jdGlvbih0KXtpZih5LnR5cGVPZi5vYmplY3QoInJlcXVlc3QiLHQpLHkudHlwZU9mLnN0cmluZygicmVxdWVzdC51cmwiLHQudXJsKSx5LnR5cGVPZi5mdW5jKCJyZXF1ZXN0LnJlcXVlc3RGdW5jdGlvbiIsdC5yZXF1ZXN0RnVuY3Rpb24pLHNwKHQudXJsKXx8aXAodC51cmwpKXJldHVybiB1cC5yYWlzZUV2ZW50KCksdC5zdGF0ZT1Dbi5SRUNFSVZFRCx0LnJlcXVlc3RGdW5jdGlvbigpO2lmKCsramUubnVtYmVyT2ZBdHRlbXB0ZWRSZXF1ZXN0cyxoKHQuc2VydmVyS2V5KXx8KHQuc2VydmVyS2V5PXduLmdldFNlcnZlcktleSh0LnVybCkpLHduLnRocm90dGxlUmVxdWVzdHMmJnQudGhyb3R0bGVCeVNlcnZlciYmIXduLnNlcnZlckhhc09wZW5TbG90cyh0LnNlcnZlcktleSkpcmV0dXJuO2lmKCF3bi50aHJvdHRsZVJlcXVlc3RzfHwhdC50aHJvdHRsZSlyZXR1cm4gYkEodCk7aWYoZWkubGVuZ3RoPj13bi5tYXhpbXVtUmVxdWVzdHMpcmV0dXJuO2dBKHQpO2xldCBlPXdvLmluc2VydCh0KTtpZihoKGUpKXtpZihlPT09dClyZXR1cm47cXMoZSl9cmV0dXJuIEFBKHQpfTt3bi5jbGVhckZvclNwZWNzPWZ1bmN0aW9uKCl7Zm9yKDt3by5sZW5ndGg+MDspe2xldCBlPXdvLnBvcCgpO3FzKGUpfWxldCB0PWVpLmxlbmd0aDtmb3IobGV0IGU9MDtlPHQ7KytlKXFzKGVpW2VdKTtlaS5sZW5ndGg9MCxDaT17fSxqZS5udW1iZXJPZkF0dGVtcHRlZFJlcXVlc3RzPTAsamUubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0cz0wLGplLm51bWJlck9mQ2FuY2VsbGVkUmVxdWVzdHM9MCxqZS5udW1iZXJPZkNhbmNlbGxlZEFjdGl2ZVJlcXVlc3RzPTAsamUubnVtYmVyT2ZGYWlsZWRSZXF1ZXN0cz0wLGplLm51bWJlck9mQWN0aXZlUmVxdWVzdHNFdmVyPTAsamUubGFzdE51bWJlck9mQWN0aXZlUmVxdWVzdHM9MH07d24ubnVtYmVyT2ZBY3RpdmVSZXF1ZXN0c0J5U2VydmVyPWZ1bmN0aW9uKHQpe3JldHVybiBDaVt0XX07d24ucmVxdWVzdEhlYXA9d287bHA9d259KTtmdW5jdGlvbiBFeCh0KXtsZXQgZT1uZXcgVEEuZGVmYXVsdCh0KTtlLm5vcm1hbGl6ZSgpO2xldCBuPWUuYXV0aG9yaXR5KCk7aWYobi5sZW5ndGghPT0wKXtpZihlLmF1dGhvcml0eShuKSxuLmluZGV4T2YoIkAiKSE9PS0xJiYobj1uLnNwbGl0KCJAIilbMV0pLG4uaW5kZXhPZigiOiIpPT09LTEpe2xldCBvPWUuc2NoZW1lKCk7aWYoby5sZW5ndGg9PT0wJiYobz13aW5kb3cubG9jYXRpb24ucHJvdG9jb2wsbz1vLnN1YnN0cmluZygwLG8ubGVuZ3RoLTEpKSxvPT09Imh0dHAiKW4rPSI6ODAiO2Vsc2UgaWYobz09PSJodHRwcyIpbis9Ijo0NDMiO2Vsc2UgcmV0dXJufXJldHVybiBufX12YXIgVEEsZGYsWmMscW0sT0E9WigoKT0+e1RBPWRyKHpzKCksMSk7ZnQoKTtIdCgpO2RmPXt9LFpjPXt9O2RmLmFkZD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJob3N0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpfHxlPD0wKXRocm93IG5ldyBGKCJwb3J0IGlzIHJlcXVpcmVkIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLiIpO2xldCBuPWAke3QudG9Mb3dlckNhc2UoKX06JHtlfWA7aChaY1tuXSl8fChaY1tuXT0hMCl9O2RmLnJlbW92ZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJob3N0IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpfHxlPD0wKXRocm93IG5ldyBGKCJwb3J0IGlzIHJlcXVpcmVkIHRvIGJlIGdyZWF0ZXIgdGhhbiAwLiIpO2xldCBuPWAke3QudG9Mb3dlckNhc2UoKX06JHtlfWA7aChaY1tuXSkmJmRlbGV0ZSBaY1tuXX07ZGYuY29udGFpbnM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoInVybCBpcyByZXF1aXJlZC4iKTtsZXQgZT1FeCh0KTtyZXR1cm4hIShoKGUpJiZoKFpjW2VdKSl9O2RmLmNsZWFyPWZ1bmN0aW9uKCl7WmM9e319O3FtPWRmfSk7ZnVuY3Rpb24ga3QodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHR5cGVvZiB0PT0ic3RyaW5nIiYmKHQ9e3VybDp0fSkseS50eXBlT2Yuc3RyaW5nKCJvcHRpb25zLnVybCIsdC51cmwpLHRoaXMuX3VybD12b2lkIDAsdGhpcy5fdGVtcGxhdGVWYWx1ZXM9bmkodC50ZW1wbGF0ZVZhbHVlcyx7fSksdGhpcy5fcXVlcnlQYXJhbWV0ZXJzPW5pKHQucXVlcnlQYXJhbWV0ZXJzLHt9KSx0aGlzLmhlYWRlcnM9bmkodC5oZWFkZXJzLHt9KSx0aGlzLnJlcXVlc3Q9eCh0LnJlcXVlc3QsbmV3IGFBKSx0aGlzLnByb3h5PXQucHJveHksdGhpcy5yZXRyeUNhbGxiYWNrPXQucmV0cnlDYWxsYmFjayx0aGlzLnJldHJ5QXR0ZW1wdHM9eCh0LnJldHJ5QXR0ZW1wdHMsMCksdGhpcy5fcmV0cnlDb3VudD0wLHgodC5wYXJzZVVybCwhMCk/dGhpcy5wYXJzZVVybCh0LnVybCwhMCwhMCk6dGhpcy5fdXJsPXQudXJsLHRoaXMuX2NyZWRpdHM9dC5jcmVkaXRzfWZ1bmN0aW9uIG5pKHQsZSl7cmV0dXJuIGgodCk/WWModCk6ZX1mdW5jdGlvbiBSeCh0KXtyZXR1cm4gdC5sZW5ndGg9PT0wP3t9OnQuaW5kZXhPZigiPSIpPT09LTE/e1t0XTp2b2lkIDB9OnJBKHQpfWZ1bmN0aW9uIGRwKHQsZSxuKXtpZighbilyZXR1cm4gX3IodCxlKTtsZXQgbz1ZYyh0LCEwKTtmb3IobGV0IHIgaW4gZSlpZihlLmhhc093blByb3BlcnR5KHIpKXtsZXQgaT1vW3JdLHM9ZVtyXTtoKGkpPyhBcnJheS5pc0FycmF5KGkpfHwoaT1vW3JdPVtpXSksb1tyXT1pLmNvbmNhdChzKSk6b1tyXT1BcnJheS5pc0FycmF5KHMpP3Muc2xpY2UoKTpzfXJldHVybiBvfWZ1bmN0aW9uIFN4KHQpe2xldCBlPU9iamVjdC5rZXlzKHQpO3JldHVybiBlLmxlbmd0aD09PTA/IiI6ZS5sZW5ndGg9PT0xJiYhaCh0W2VbMF1dKT9gPyR7ZVswXX1gOmA/JHtuQSh0KX1gfWZ1bmN0aW9uIEttKHQpe2xldCBlPXQucmVzb3VyY2Usbj10LmZsaXBZLG89dC5za2lwQ29sb3JTcGFjZUNvbnZlcnNpb24scj10LnByZWZlckltYWdlQml0bWFwLGk9ZS5yZXF1ZXN0O2kudXJsPWUudXJsLGkucmVxdWVzdEZ1bmN0aW9uPWZ1bmN0aW9uKCl7bGV0IGY9ITE7IWUuaXNEYXRhVXJpJiYhZS5pc0Jsb2JVcmkmJihmPWUuaXNDcm9zc09yaWdpblVybCk7bGV0IHU9anMoKTtyZXR1cm4ga3QuX0ltcGxlbWVudGF0aW9ucy5jcmVhdGVJbWFnZShpLGYsdSxuLG8sciksdS5wcm9taXNlfTtsZXQgcz1scC5yZXF1ZXN0KGkpO2lmKGgocykpcmV0dXJuIHMuY2F0Y2goZnVuY3Rpb24oZil7cmV0dXJuIGkuc3RhdGUhPT1Dbi5GQUlMRUQ/UHJvbWlzZS5yZWplY3QoZik6ZS5yZXRyeU9uRXJyb3IoZikudGhlbihmdW5jdGlvbih1KXtyZXR1cm4gdT8oaS5zdGF0ZT1Dbi5VTklTU1VFRCxpLmRlZmVycmVkPXZvaWQgMCxLbSh7cmVzb3VyY2U6ZSxmbGlwWTpuLHNraXBDb2xvclNwYWNlQ29udmVyc2lvbjpvLHByZWZlckltYWdlQml0bWFwOnJ9KSk6UHJvbWlzZS5yZWplY3QoZil9KX0pfWZ1bmN0aW9uIENBKHQsZSxuKXtsZXQgbz17fTtvW2VdPW4sdC5zZXRRdWVyeVBhcmFtZXRlcnMobyk7bGV0IHI9dC5yZXF1ZXN0LGk9dC51cmw7ci51cmw9aSxyLnJlcXVlc3RGdW5jdGlvbj1mdW5jdGlvbigpe2xldCBmPWpzKCk7cmV0dXJuIHdpbmRvd1tuXT1mdW5jdGlvbih1KXtmLnJlc29sdmUodSk7dHJ5e2RlbGV0ZSB3aW5kb3dbbl19Y2F0Y2h7d2luZG93W25dPXZvaWQgMH19LGt0Ll9JbXBsZW1lbnRhdGlvbnMubG9hZEFuZEV4ZWN1dGVTY3JpcHQoaSxuLGYpLGYucHJvbWlzZX07bGV0IHM9bHAucmVxdWVzdChyKTtpZihoKHMpKXJldHVybiBzLmNhdGNoKGZ1bmN0aW9uKGYpe3JldHVybiByLnN0YXRlIT09Q24uRkFJTEVEP1Byb21pc2UucmVqZWN0KGYpOnQucmV0cnlPbkVycm9yKGYpLnRoZW4oZnVuY3Rpb24odSl7cmV0dXJuIHU/KHIuc3RhdGU9Q24uVU5JU1NVRUQsci5kZWZlcnJlZD12b2lkIDAsQ0EodCxlLG4pKTpQcm9taXNlLnJlamVjdChmKX0pfSl9ZnVuY3Rpb24gV20odCl7aWYodC5zdGF0ZT09PUNuLklTU1VFRHx8dC5zdGF0ZT09PUNuLkFDVElWRSl0aHJvdyBuZXcgQWUoIlRoZSBSZXNvdXJjZSBpcyBhbHJlYWR5IGJlaW5nIGZldGNoZWQuIik7dC5zdGF0ZT1Dbi5VTklTU1VFRCx0LmRlZmVycmVkPXZvaWQgMH1mdW5jdGlvbiBwcCh0LGUpe2xldCBuPWRlY29kZVVSSUNvbXBvbmVudChlKTtyZXR1cm4gdD9hdG9iKG4pOm59ZnVuY3Rpb24gRUEodCxlKXtsZXQgbj1wcCh0LGUpLG89bmV3IEFycmF5QnVmZmVyKG4ubGVuZ3RoKSxyPW5ldyBVaW50OEFycmF5KG8pO2ZvcihsZXQgaT0wO2k8bi5sZW5ndGg7aSsrKXJbaV09bi5jaGFyQ29kZUF0KGkpO3JldHVybiBvfWZ1bmN0aW9uIHh4KHQsZSl7ZT14KGUsIiIpO2xldCBuPXRbMV0sbz0hIXRbMl0scj10WzNdLGkscztzd2l0Y2goZSl7Y2FzZSIiOmNhc2UidGV4dCI6cmV0dXJuIHBwKG8scik7Y2FzZSJhcnJheWJ1ZmZlciI6cmV0dXJuIEVBKG8scik7Y2FzZSJibG9iIjpyZXR1cm4gaT1FQShvLHIpLG5ldyBCbG9iKFtpXSx7dHlwZTpufSk7Y2FzZSJkb2N1bWVudCI6cmV0dXJuIHM9bmV3IERPTVBhcnNlcixzLnBhcnNlRnJvbVN0cmluZyhwcChvLHIpLG4pO2Nhc2UianNvbiI6cmV0dXJuIEpTT04ucGFyc2UocHAobyxyKSk7ZGVmYXVsdDp0aHJvdyBuZXcgRihgVW5oYW5kbGVkIHJlc3BvbnNlVHlwZTogJHtlfWApfX1mdW5jdGlvbiBQeCh0LGUsbixvLHIsaSxzKXtmZXRjaCh0LHttZXRob2Q6bixoZWFkZXJzOnJ9KS50aGVuKGFzeW5jIGY9PntpZighZi5vayl7bGV0IHU9e307Zi5oZWFkZXJzLmZvckVhY2goKGMsbCk9Pnt1W2xdPWN9KSxpLnJlamVjdChuZXcgbGYoZi5zdGF0dXMsZix1KSk7cmV0dXJufXN3aXRjaChlKXtjYXNlInRleHQiOmkucmVzb2x2ZShmLnRleHQoKSk7YnJlYWs7Y2FzZSJqc29uIjppLnJlc29sdmUoZi5qc29uKCkpO2JyZWFrO2RlZmF1bHQ6aS5yZXNvbHZlKG5ldyBVaW50OEFycmF5KGF3YWl0IGYuYXJyYXlCdWZmZXIoKSkuYnVmZmVyKTticmVha319KS5jYXRjaCgoKT0+e2kucmVqZWN0KG5ldyBsZil9KX12YXIgUkEsU0EsUWMsQ3gsTXgsb2ksbWY9WigoKT0+e1JBPWRyKHpzKCksMSk7VjEoKTtYdCgpO0cxKCk7cnAoKTtJdCgpO1VtKCk7ZnQoKTtIdCgpO2ttKCk7SzEoKTtZMSgpO1oxKCk7em0oKTtKMSgpO2ptKCk7ZUEoKTtXdCgpO29BKCk7aUEoKTtmQSgpO2RBKCk7d0EoKTtjcCgpO0pyKCk7T0EoKTtTQT1mdW5jdGlvbigpe3RyeXtsZXQgdD1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIHQub3BlbigiR0VUIiwiIyIsITApLHQucmVzcG9uc2VUeXBlPSJibG9iIix0LnJlc3BvbnNlVHlwZT09PSJibG9iIn1jYXRjaHtyZXR1cm4hMX19KCk7a3QuY3JlYXRlSWZOZWVkZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQgaW5zdGFuY2VvZiBrdD90LmdldERlcml2ZWRSZXNvdXJjZSh7cmVxdWVzdDp0LnJlcXVlc3R9KTp0eXBlb2YgdCE9InN0cmluZyI/dDpuZXcga3Qoe3VybDp0fSl9O2t0LnN1cHBvcnRzSW1hZ2VCaXRtYXBPcHRpb25zPWZ1bmN0aW9uKCl7cmV0dXJuIGgoUWMpP1FjOnR5cGVvZiBjcmVhdGVJbWFnZUJpdG1hcCE9ImZ1bmN0aW9uIj8oUWM9UHJvbWlzZS5yZXNvbHZlKCExKSxRYyk6KFFjPWt0LmZldGNoQmxvYih7dXJsOiJkYXRhOmltYWdlL3BuZztiYXNlNjQsaVZCT1J3MEtHZ29BQUFBTlNVaEVVZ0FBQUFFQUFBQUJDQUlBQUFDUWQxUGVBQUFBQkdkQlRVRUFBRTRnM3JFaURnQUFBQ0JqU0ZKTkFBQjZKZ0FBZ0lRQUFQb0FBQUNBNkFBQWRUQUFBT3BnQUFBNm1BQUFGM0NjdWxFOEFBQUFERWxFUVZRSTEyTmc2R0FBQUFFVUFJbmdFM1ppQUFBQUFFbEZUa1N1UW1DQyJ9KS50aGVuKGZ1bmN0aW9uKGUpe2xldCBuPXtpbWFnZU9yaWVudGF0aW9uOiJmbGlwWSIscHJlbXVsdGlwbHlBbHBoYToibm9uZSIsY29sb3JTcGFjZUNvbnZlcnNpb246Im5vbmUifTtyZXR1cm4gUHJvbWlzZS5hbGwoW2NyZWF0ZUltYWdlQml0bWFwKGUsbiksY3JlYXRlSW1hZ2VCaXRtYXAoZSldKX0pLnRoZW4oZnVuY3Rpb24oZSl7bGV0IG49R20oZVswXSksbz1HbShlWzFdKTtyZXR1cm4gblsxXSE9PW9bMV19KS5jYXRjaChmdW5jdGlvbigpe3JldHVybiExfSksUWMpfTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhrdCx7aXNCbG9iU3VwcG9ydGVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gU0F9fX0pO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGt0LnByb3RvdHlwZSx7cXVlcnlQYXJhbWV0ZXJzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcXVlcnlQYXJhbWV0ZXJzfX0sdGVtcGxhdGVWYWx1ZXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl90ZW1wbGF0ZVZhbHVlc319LHVybDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZ2V0VXJsQ29tcG9uZW50KCEwLCEwKX0sc2V0OmZ1bmN0aW9uKHQpe3RoaXMucGFyc2VVcmwodCwhMSwhMSl9fSxleHRlbnNpb246e2dldDpmdW5jdGlvbigpe3JldHVybiBYMSh0aGlzLl91cmwpfX0saXNEYXRhVXJpOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gc3AodGhpcy5fdXJsKX19LGlzQmxvYlVyaTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGlwKHRoaXMuX3VybCl9fSxpc0Nyb3NzT3JpZ2luVXJsOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gUTEodGhpcy5fdXJsKX19LGhhc0hlYWRlcnM6e2dldDpmdW5jdGlvbigpe3JldHVybiBPYmplY3Qua2V5cyh0aGlzLmhlYWRlcnMpLmxlbmd0aD4wfX0sY3JlZGl0czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2NyZWRpdHN9fX0pO2t0LnByb3RvdHlwZS50b1N0cmluZz1mdW5jdGlvbigpe3JldHVybiB0aGlzLmdldFVybENvbXBvbmVudCghMCwhMCl9O2t0LnByb3RvdHlwZS5wYXJzZVVybD1mdW5jdGlvbih0LGUsbixvKXtsZXQgcj1uZXcgUkEuZGVmYXVsdCh0KSxpPVJ4KHIucXVlcnkoKSk7dGhpcy5fcXVlcnlQYXJhbWV0ZXJzPWU/ZHAoaSx0aGlzLnF1ZXJ5UGFyYW1ldGVycyxuKTppLHIuc2VhcmNoKCIiKSxyLmZyYWdtZW50KCIiKSxoKG8pJiZyLnNjaGVtZSgpPT09IiImJihyPXIuYWJzb2x1dGVUbyh1ZihvKSkpLHRoaXMuX3VybD1yLnRvU3RyaW5nKCl9O2t0LnByb3RvdHlwZS5nZXRVcmxDb21wb25lbnQ9ZnVuY3Rpb24odCxlKXtpZih0aGlzLmlzRGF0YVVyaSlyZXR1cm4gdGhpcy5fdXJsO2xldCBuPXRoaXMuX3VybDt0JiYobj1gJHtufSR7U3godGhpcy5xdWVyeVBhcmFtZXRlcnMpfWApLG49bi5yZXBsYWNlKC8lN0IvZywieyIpLnJlcGxhY2UoLyU3RC9nLCJ9Iik7bGV0IG89dGhpcy5fdGVtcGxhdGVWYWx1ZXM7cmV0dXJuIE9iamVjdC5rZXlzKG8pLmxlbmd0aD4wJiYobj1uLnJlcGxhY2UoL3soLio/KX0vZyxmdW5jdGlvbihyLGkpe2xldCBzPW9baV07cmV0dXJuIGgocyk/ZW5jb2RlVVJJQ29tcG9uZW50KHMpOnJ9KSksZSYmaCh0aGlzLnByb3h5KSYmKG49dGhpcy5wcm94eS5nZXRVUkwobikpLG59O2t0LnByb3RvdHlwZS5zZXRRdWVyeVBhcmFtZXRlcnM9ZnVuY3Rpb24odCxlKXtlP3RoaXMuX3F1ZXJ5UGFyYW1ldGVycz1kcCh0aGlzLl9xdWVyeVBhcmFtZXRlcnMsdCwhMSk6dGhpcy5fcXVlcnlQYXJhbWV0ZXJzPWRwKHQsdGhpcy5fcXVlcnlQYXJhbWV0ZXJzLCExKX07a3QucHJvdG90eXBlLmFwcGVuZFF1ZXJ5UGFyYW1ldGVycz1mdW5jdGlvbih0KXt0aGlzLl9xdWVyeVBhcmFtZXRlcnM9ZHAodCx0aGlzLl9xdWVyeVBhcmFtZXRlcnMsITApfTtrdC5wcm90b3R5cGUuc2V0VGVtcGxhdGVWYWx1ZXM9ZnVuY3Rpb24odCxlKXtlP3RoaXMuX3RlbXBsYXRlVmFsdWVzPV9yKHRoaXMuX3RlbXBsYXRlVmFsdWVzLHQpOnRoaXMuX3RlbXBsYXRlVmFsdWVzPV9yKHQsdGhpcy5fdGVtcGxhdGVWYWx1ZXMpfTtrdC5wcm90b3R5cGUuZ2V0RGVyaXZlZFJlc291cmNlPWZ1bmN0aW9uKHQpe2xldCBlPXRoaXMuY2xvbmUoKTtpZihlLl9yZXRyeUNvdW50PTAsaCh0LnVybCkpe2xldCBuPXgodC5wcmVzZXJ2ZVF1ZXJ5UGFyYW1ldGVycywhMSk7ZS5wYXJzZVVybCh0LnVybCwhMCxuLHRoaXMuX3VybCl9cmV0dXJuIGgodC5xdWVyeVBhcmFtZXRlcnMpJiYoZS5fcXVlcnlQYXJhbWV0ZXJzPV9yKHQucXVlcnlQYXJhbWV0ZXJzLGUucXVlcnlQYXJhbWV0ZXJzKSksaCh0LnRlbXBsYXRlVmFsdWVzKSYmKGUuX3RlbXBsYXRlVmFsdWVzPV9yKHQudGVtcGxhdGVWYWx1ZXMsZS50ZW1wbGF0ZVZhbHVlcykpLGgodC5oZWFkZXJzKSYmKGUuaGVhZGVycz1fcih0LmhlYWRlcnMsZS5oZWFkZXJzKSksaCh0LnByb3h5KSYmKGUucHJveHk9dC5wcm94eSksaCh0LnJlcXVlc3QpJiYoZS5yZXF1ZXN0PXQucmVxdWVzdCksaCh0LnJldHJ5Q2FsbGJhY2spJiYoZS5yZXRyeUNhbGxiYWNrPXQucmV0cnlDYWxsYmFjayksaCh0LnJldHJ5QXR0ZW1wdHMpJiYoZS5yZXRyeUF0dGVtcHRzPXQucmV0cnlBdHRlbXB0cyksZX07a3QucHJvdG90eXBlLnJldHJ5T25FcnJvcj1mdW5jdGlvbih0KXtsZXQgZT10aGlzLnJldHJ5Q2FsbGJhY2s7aWYodHlwZW9mIGUhPSJmdW5jdGlvbiJ8fHRoaXMuX3JldHJ5Q291bnQ+PXRoaXMucmV0cnlBdHRlbXB0cylyZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCExKTtsZXQgbj10aGlzO3JldHVybiBQcm9taXNlLnJlc29sdmUoZSh0aGlzLHQpKS50aGVuKGZ1bmN0aW9uKG8pe3JldHVybisrbi5fcmV0cnlDb3VudCxvfSl9O2t0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KT8odC5fdXJsPXRoaXMuX3VybCx0Ll9xdWVyeVBhcmFtZXRlcnM9WWModGhpcy5fcXVlcnlQYXJhbWV0ZXJzKSx0Ll90ZW1wbGF0ZVZhbHVlcz1ZYyh0aGlzLl90ZW1wbGF0ZVZhbHVlcyksdC5oZWFkZXJzPVljKHRoaXMuaGVhZGVycyksdC5wcm94eT10aGlzLnByb3h5LHQucmV0cnlDYWxsYmFjaz10aGlzLnJldHJ5Q2FsbGJhY2ssdC5yZXRyeUF0dGVtcHRzPXRoaXMucmV0cnlBdHRlbXB0cyx0Ll9yZXRyeUNvdW50PTAsdC5yZXF1ZXN0PXRoaXMucmVxdWVzdC5jbG9uZSgpLHQpOm5ldyBrdCh7dXJsOnRoaXMuX3VybCxxdWVyeVBhcmFtZXRlcnM6dGhpcy5xdWVyeVBhcmFtZXRlcnMsdGVtcGxhdGVWYWx1ZXM6dGhpcy50ZW1wbGF0ZVZhbHVlcyxoZWFkZXJzOnRoaXMuaGVhZGVycyxwcm94eTp0aGlzLnByb3h5LHJldHJ5Q2FsbGJhY2s6dGhpcy5yZXRyeUNhbGxiYWNrLHJldHJ5QXR0ZW1wdHM6dGhpcy5yZXRyeUF0dGVtcHRzLHJlcXVlc3Q6dGhpcy5yZXF1ZXN0LmNsb25lKCkscGFyc2VVcmw6ITEsY3JlZGl0czpoKHRoaXMuY3JlZGl0cyk/dGhpcy5jcmVkaXRzLnNsaWNlKCk6dm9pZCAwfSl9O2t0LnByb3RvdHlwZS5nZXRCYXNlVXJpPWZ1bmN0aW9uKHQpe3JldHVybiBxMSh0aGlzLmdldFVybENvbXBvbmVudCh0KSx0KX07a3QucHJvdG90eXBlLmFwcGVuZEZvcndhcmRTbGFzaD1mdW5jdGlvbigpe3RoaXMuX3VybD1VMSh0aGlzLl91cmwpfTtrdC5wcm90b3R5cGUuZmV0Y2hBcnJheUJ1ZmZlcj1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6ImFycmF5YnVmZmVyIn0pfTtrdC5mZXRjaEFycmF5QnVmZmVyPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hBcnJheUJ1ZmZlcigpfTtrdC5wcm90b3R5cGUuZmV0Y2hCbG9iPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuZmV0Y2goe3Jlc3BvbnNlVHlwZToiYmxvYiJ9KX07a3QuZmV0Y2hCbG9iPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hCbG9iKCl9O2t0LnByb3RvdHlwZS5mZXRjaEltYWdlPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT14KHQucHJlZmVySW1hZ2VCaXRtYXAsITEpLG49eCh0LnByZWZlckJsb2IsITEpLG89eCh0LmZsaXBZLCExKSxyPXgodC5za2lwQ29sb3JTcGFjZUNvbnZlcnNpb24sITEpO2lmKFdtKHRoaXMucmVxdWVzdCksIVNBfHx0aGlzLmlzRGF0YVVyaXx8dGhpcy5pc0Jsb2JVcml8fCF0aGlzLmhhc0hlYWRlcnMmJiFuKXJldHVybiBLbSh7cmVzb3VyY2U6dGhpcyxmbGlwWTpvLHNraXBDb2xvclNwYWNlQ29udmVyc2lvbjpyLHByZWZlckltYWdlQml0bWFwOmV9KTtsZXQgaT10aGlzLmZldGNoQmxvYigpO2lmKCFoKGkpKXJldHVybjtsZXQgcyxmLHUsYztyZXR1cm4ga3Quc3VwcG9ydHNJbWFnZUJpdG1hcE9wdGlvbnMoKS50aGVuKGZ1bmN0aW9uKGwpe3JldHVybiBzPWwsZj1zJiZlLGl9KS50aGVuKGZ1bmN0aW9uKGwpe2lmKCFoKGwpKXJldHVybjtpZihjPWwsZilyZXR1cm4ga3QuY3JlYXRlSW1hZ2VCaXRtYXBGcm9tQmxvYihsLHtmbGlwWTpvLHByZW11bHRpcGx5QWxwaGE6ITEsc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnJ9KTtsZXQgcD13aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChsKTtyZXR1cm4gdT1uZXcga3Qoe3VybDpwfSksS20oe3Jlc291cmNlOnUsZmxpcFk6byxza2lwQ29sb3JTcGFjZUNvbnZlcnNpb246cixwcmVmZXJJbWFnZUJpdG1hcDohMX0pfSkudGhlbihmdW5jdGlvbihsKXtpZihoKGwpKXJldHVybiBsLmJsb2I9YyxmfHx3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1LnVybCksbH0pLmNhdGNoKGZ1bmN0aW9uKGwpe3JldHVybiBoKHUpJiZ3aW5kb3cuVVJMLnJldm9rZU9iamVjdFVSTCh1LnVybCksbC5ibG9iPWMsUHJvbWlzZS5yZWplY3QobCl9KX07a3QuZmV0Y2hJbWFnZT1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoSW1hZ2Uoe2ZsaXBZOnQuZmxpcFksc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnQuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uLHByZWZlckJsb2I6dC5wcmVmZXJCbG9iLHByZWZlckltYWdlQml0bWFwOnQucHJlZmVySW1hZ2VCaXRtYXB9KX07a3QucHJvdG90eXBlLmZldGNoVGV4dD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6InRleHQifSl9O2t0LmZldGNoVGV4dD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoVGV4dCgpfTtrdC5wcm90b3R5cGUuZmV0Y2hKc29uPWZ1bmN0aW9uKCl7bGV0IHQ9dGhpcy5mZXRjaCh7cmVzcG9uc2VUeXBlOiJ0ZXh0IixoZWFkZXJzOntBY2NlcHQ6ImFwcGxpY2F0aW9uL2pzb24sKi8qO3E9MC4wMSJ9fSk7aWYoaCh0KSlyZXR1cm4gdC50aGVuKGZ1bmN0aW9uKGUpe2lmKGgoZSkpcmV0dXJuIEpTT04ucGFyc2UoZSl9KX07a3QuZmV0Y2hKc29uPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2hKc29uKCl9O2t0LnByb3RvdHlwZS5mZXRjaFhNTD1mdW5jdGlvbigpe3JldHVybiB0aGlzLmZldGNoKHtyZXNwb25zZVR5cGU6ImRvY3VtZW50IixvdmVycmlkZU1pbWVUeXBlOiJ0ZXh0L3htbCJ9KX07a3QuZmV0Y2hYTUw9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5mZXRjaFhNTCgpfTtrdC5wcm90b3R5cGUuZmV0Y2hKc29ucD1mdW5jdGlvbih0KXt0PXgodCwiY2FsbGJhY2siKSxXbSh0aGlzLnJlcXVlc3QpO2xldCBlO2RvIGU9YGxvYWRKc29ucCR7TS5uZXh0UmFuZG9tTnVtYmVyKCkudG9TdHJpbmcoKS5zdWJzdHJpbmcoMiw4KX1gO3doaWxlKGgod2luZG93W2VdKSk7cmV0dXJuIENBKHRoaXMsdCxlKX07a3QuZmV0Y2hKc29ucD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLmZldGNoSnNvbnAodC5jYWxsYmFja1BhcmFtZXRlck5hbWUpfTtrdC5wcm90b3R5cGUuX21ha2VSZXF1ZXN0PWZ1bmN0aW9uKHQpe2xldCBlPXRoaXM7V20oZS5yZXF1ZXN0KTtsZXQgbj1lLnJlcXVlc3Qsbz1lLnVybDtuLnVybD1vLG4ucmVxdWVzdEZ1bmN0aW9uPWZ1bmN0aW9uKCl7bGV0IGk9dC5yZXNwb25zZVR5cGUscz1fcih0LmhlYWRlcnMsZS5oZWFkZXJzKSxmPXQub3ZlcnJpZGVNaW1lVHlwZSx1PXQubWV0aG9kLGM9dC5kYXRhLGw9anMoKSxwPWt0Ll9JbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHIobyxpLHUsYyxzLGwsZik7cmV0dXJuIGgocCkmJmgocC5hYm9ydCkmJihuLmNhbmNlbEZ1bmN0aW9uPWZ1bmN0aW9uKCl7cC5hYm9ydCgpfSksbC5wcm9taXNlfTtsZXQgcj1scC5yZXF1ZXN0KG4pO2lmKGgocikpcmV0dXJuIHIudGhlbihmdW5jdGlvbihpKXtyZXR1cm4gbi5jYW5jZWxGdW5jdGlvbj12b2lkIDAsaX0pLmNhdGNoKGZ1bmN0aW9uKGkpe3JldHVybiBuLmNhbmNlbEZ1bmN0aW9uPXZvaWQgMCxuLnN0YXRlIT09Q24uRkFJTEVEP1Byb21pc2UucmVqZWN0KGkpOmUucmV0cnlPbkVycm9yKGkpLnRoZW4oZnVuY3Rpb24ocyl7cmV0dXJuIHM/KG4uc3RhdGU9Q24uVU5JU1NVRUQsbi5kZWZlcnJlZD12b2lkIDAsZS5mZXRjaCh0KSk6UHJvbWlzZS5yZWplY3QoaSl9KX0pfTtDeD0vXmRhdGE6KC4qPykoO2Jhc2U2NCk/LCguKikkLztrdC5wcm90b3R5cGUuZmV0Y2g9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmkodCx7fSksdC5tZXRob2Q9IkdFVCIsdGhpcy5fbWFrZVJlcXVlc3QodCl9O2t0LmZldGNoPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkuZmV0Y2goe3Jlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOnQub3ZlcnJpZGVNaW1lVHlwZX0pfTtrdC5wcm90b3R5cGUuZGVsZXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0PW5pKHQse30pLHQubWV0aG9kPSJERUxFVEUiLHRoaXMuX21ha2VSZXF1ZXN0KHQpfTtrdC5kZWxldGU9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5kZWxldGUoe3Jlc3BvbnNlVHlwZTp0LnJlc3BvbnNlVHlwZSxvdmVycmlkZU1pbWVUeXBlOnQub3ZlcnJpZGVNaW1lVHlwZSxkYXRhOnQuZGF0YX0pfTtrdC5wcm90b3R5cGUuaGVhZD1mdW5jdGlvbih0KXtyZXR1cm4gdD1uaSh0LHt9KSx0Lm1ldGhvZD0iSEVBRCIsdGhpcy5fbWFrZVJlcXVlc3QodCl9O2t0LmhlYWQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5oZWFkKHtyZXNwb25zZVR5cGU6dC5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTp0Lm92ZXJyaWRlTWltZVR5cGV9KX07a3QucHJvdG90eXBlLm9wdGlvbnM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9bmkodCx7fSksdC5tZXRob2Q9Ik9QVElPTlMiLHRoaXMuX21ha2VSZXF1ZXN0KHQpfTtrdC5vcHRpb25zPWZ1bmN0aW9uKHQpe3JldHVybiBuZXcga3QodCkub3B0aW9ucyh7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0LnByb3RvdHlwZS5wb3N0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgiZGF0YSIsdCksZT1uaShlLHt9KSxlLm1ldGhvZD0iUE9TVCIsZS5kYXRhPXQsdGhpcy5fbWFrZVJlcXVlc3QoZSl9O2t0LnBvc3Q9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5wb3N0KHQuZGF0YSx7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0LnByb3RvdHlwZS5wdXQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJkYXRhIix0KSxlPW5pKGUse30pLGUubWV0aG9kPSJQVVQiLGUuZGF0YT10LHRoaXMuX21ha2VSZXF1ZXN0KGUpfTtrdC5wdXQ9ZnVuY3Rpb24odCl7cmV0dXJuIG5ldyBrdCh0KS5wdXQodC5kYXRhLHtyZXNwb25zZVR5cGU6dC5yZXNwb25zZVR5cGUsb3ZlcnJpZGVNaW1lVHlwZTp0Lm92ZXJyaWRlTWltZVR5cGV9KX07a3QucHJvdG90eXBlLnBhdGNoPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgiZGF0YSIsdCksZT1uaShlLHt9KSxlLm1ldGhvZD0iUEFUQ0giLGUuZGF0YT10LHRoaXMuX21ha2VSZXF1ZXN0KGUpfTtrdC5wYXRjaD1mdW5jdGlvbih0KXtyZXR1cm4gbmV3IGt0KHQpLnBhdGNoKHQuZGF0YSx7cmVzcG9uc2VUeXBlOnQucmVzcG9uc2VUeXBlLG92ZXJyaWRlTWltZVR5cGU6dC5vdmVycmlkZU1pbWVUeXBlfSl9O2t0Ll9JbXBsZW1lbnRhdGlvbnM9e307a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkSW1hZ2VFbGVtZW50PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1uZXcgSW1hZ2U7by5vbmxvYWQ9ZnVuY3Rpb24oKXtvLm5hdHVyYWxXaWR0aD09PTAmJm8ubmF0dXJhbEhlaWdodD09PTAmJm8ud2lkdGg9PT0wJiZvLmhlaWdodD09PTAmJihvLndpZHRoPTMwMCxvLmhlaWdodD0xNTApLG4ucmVzb2x2ZShvKX0sby5vbmVycm9yPWZ1bmN0aW9uKHIpe24ucmVqZWN0KHIpfSxlJiYocW0uY29udGFpbnModCk/by5jcm9zc09yaWdpbj0idXNlLWNyZWRlbnRpYWxzIjpvLmNyb3NzT3JpZ2luPSIiKSxvLnNyYz10fTtrdC5fSW1wbGVtZW50YXRpb25zLmNyZWF0ZUltYWdlPWZ1bmN0aW9uKHQsZSxuLG8scixpKXtsZXQgcz10LnVybDtrdC5zdXBwb3J0c0ltYWdlQml0bWFwT3B0aW9ucygpLnRoZW4oZnVuY3Rpb24oZil7aWYoIShmJiZpKSl7a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkSW1hZ2VFbGVtZW50KHMsZSxuKTtyZXR1cm59bGV0IHU9ImJsb2IiLGM9IkdFVCIsbD1qcygpLHA9a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkV2l0aFhocihzLHUsYyx2b2lkIDAsdm9pZCAwLGwsdm9pZCAwLHZvaWQgMCx2b2lkIDApO3JldHVybiBoKHApJiZoKHAuYWJvcnQpJiYodC5jYW5jZWxGdW5jdGlvbj1mdW5jdGlvbigpe3AuYWJvcnQoKX0pLGwucHJvbWlzZS50aGVuKGZ1bmN0aW9uKGQpe2lmKCFoKGQpKXtuLnJlamVjdChuZXcgQWUoYFN1Y2Nlc3NmdWxseSByZXRyaWV2ZWQgJHtzfSBidXQgaXQgY29udGFpbmVkIG5vIGNvbnRlbnQuYCkpO3JldHVybn1yZXR1cm4ga3QuY3JlYXRlSW1hZ2VCaXRtYXBGcm9tQmxvYihkLHtmbGlwWTpvLHByZW11bHRpcGx5QWxwaGE6ITEsc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uOnJ9KX0pLnRoZW4oZnVuY3Rpb24oZCl7bi5yZXNvbHZlKGQpfSl9KS5jYXRjaChmdW5jdGlvbihmKXtuLnJlamVjdChmKX0pfTtrdC5jcmVhdGVJbWFnZUJpdG1hcEZyb21CbG9iPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkuZGVmaW5lZCgib3B0aW9ucyIsZSkseS50eXBlT2YuYm9vbCgib3B0aW9ucy5mbGlwWSIsZS5mbGlwWSkseS50eXBlT2YuYm9vbCgib3B0aW9ucy5wcmVtdWx0aXBseUFscGhhIixlLnByZW11bHRpcGx5QWxwaGEpLHkudHlwZU9mLmJvb2woIm9wdGlvbnMuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uIixlLnNraXBDb2xvclNwYWNlQ29udmVyc2lvbiksY3JlYXRlSW1hZ2VCaXRtYXAodCx7aW1hZ2VPcmllbnRhdGlvbjplLmZsaXBZPyJmbGlwWSI6Im5vbmUiLHByZW11bHRpcGx5QWxwaGE6ZS5wcmVtdWx0aXBseUFscGhhPyJwcmVtdWx0aXBseSI6Im5vbmUiLGNvbG9yU3BhY2VDb252ZXJzaW9uOmUuc2tpcENvbG9yU3BhY2VDb252ZXJzaW9uPyJub25lIjoiZGVmYXVsdCJ9KX07TXg9dHlwZW9mIFhNTEh0dHBSZXF1ZXN0PiJ1IjtrdC5fSW1wbGVtZW50YXRpb25zLmxvYWRXaXRoWGhyPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPUN4LmV4ZWModCk7aWYoZiE9PW51bGwpe2kucmVzb2x2ZSh4eChmLGUpKTtyZXR1cm59aWYoTXgpe1B4KHQsZSxuLG8scixpLHMpO3JldHVybn1sZXQgdT1uZXcgWE1MSHR0cFJlcXVlc3Q7aWYocW0uY29udGFpbnModCkmJih1LndpdGhDcmVkZW50aWFscz0hMCksdS5vcGVuKG4sdCwhMCksaChzKSYmaCh1Lm92ZXJyaWRlTWltZVR5cGUpJiZ1Lm92ZXJyaWRlTWltZVR5cGUocyksaChyKSlmb3IobGV0IGwgaW4gcilyLmhhc093blByb3BlcnR5KGwpJiZ1LnNldFJlcXVlc3RIZWFkZXIobCxyW2xdKTtoKGUpJiYodS5yZXNwb25zZVR5cGU9ZSk7bGV0IGM9ITE7cmV0dXJuIHR5cGVvZiB0PT0ic3RyaW5nIiYmKGM9dC5pbmRleE9mKCJmaWxlOi8vIik9PT0wfHx0eXBlb2Ygd2luZG93PCJ1IiYmd2luZG93LmxvY2F0aW9uLm9yaWdpbj09PSJmaWxlOi8vIiksdS5vbmxvYWQ9ZnVuY3Rpb24oKXtpZigodS5zdGF0dXM8MjAwfHx1LnN0YXR1cz49MzAwKSYmIShjJiZ1LnN0YXR1cz09PTApKXtpLnJlamVjdChuZXcgbGYodS5zdGF0dXMsdS5yZXNwb25zZSx1LmdldEFsbFJlc3BvbnNlSGVhZGVycygpKSk7cmV0dXJufWxldCBsPXUucmVzcG9uc2UscD11LnJlc3BvbnNlVHlwZTtpZihuPT09IkhFQUQifHxuPT09Ik9QVElPTlMiKXtsZXQgbT11LmdldEFsbFJlc3BvbnNlSGVhZGVycygpLnRyaW0oKS5zcGxpdCgvW1xyXG5dKy8pLF89e307bS5mb3JFYWNoKGZ1bmN0aW9uKGcpe2xldCBiPWcuc3BsaXQoIjogIiksdz1iLnNoaWZ0KCk7X1t3XT1iLmpvaW4oIjogIil9KSxpLnJlc29sdmUoXyk7cmV0dXJufWlmKHUuc3RhdHVzPT09MjA0KWkucmVzb2x2ZSh2b2lkIDApO2Vsc2UgaWYoaChsKSYmKCFoKGUpfHxwPT09ZSkpaS5yZXNvbHZlKGwpO2Vsc2UgaWYoZT09PSJqc29uIiYmdHlwZW9mIGw9PSJzdHJpbmciKXRyeXtpLnJlc29sdmUoSlNPTi5wYXJzZShsKSl9Y2F0Y2goZCl7aS5yZWplY3QoZCl9ZWxzZShwPT09IiJ8fHA9PT0iZG9jdW1lbnQiKSYmaCh1LnJlc3BvbnNlWE1MKSYmdS5yZXNwb25zZVhNTC5oYXNDaGlsZE5vZGVzKCk/aS5yZXNvbHZlKHUucmVzcG9uc2VYTUwpOihwPT09IiJ8fHA9PT0idGV4dCIpJiZoKHUucmVzcG9uc2VUZXh0KT9pLnJlc29sdmUodS5yZXNwb25zZVRleHQpOmkucmVqZWN0KG5ldyBBZSgiSW52YWxpZCBYTUxIdHRwUmVxdWVzdCByZXNwb25zZSB0eXBlLiIpKX0sdS5vbmVycm9yPWZ1bmN0aW9uKGwpe2kucmVqZWN0KG5ldyBsZil9LHUuc2VuZChvKSx1fTtrdC5fSW1wbGVtZW50YXRpb25zLmxvYWRBbmRFeGVjdXRlU2NyaXB0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdEEodCxlKS5jYXRjaChmdW5jdGlvbihvKXtuLnJlamVjdChvKX0pfTtrdC5fRGVmYXVsdEltcGxlbWVudGF0aW9ucz17fTtrdC5fRGVmYXVsdEltcGxlbWVudGF0aW9ucy5jcmVhdGVJbWFnZT1rdC5fSW1wbGVtZW50YXRpb25zLmNyZWF0ZUltYWdlO2t0Ll9EZWZhdWx0SW1wbGVtZW50YXRpb25zLmxvYWRXaXRoWGhyPWt0Ll9JbXBsZW1lbnRhdGlvbnMubG9hZFdpdGhYaHI7a3QuX0RlZmF1bHRJbXBsZW1lbnRhdGlvbnMubG9hZEFuZEV4ZWN1dGVTY3JpcHQ9a3QuX0ltcGxlbWVudGF0aW9ucy5sb2FkQW5kRXhlY3V0ZVNjcmlwdDtrdC5ERUZBVUxUPU9iamVjdC5mcmVlemUobmV3IGt0KHt1cmw6dHlwZW9mIGRvY3VtZW50PiJ1Ij8iIjpkb2N1bWVudC5sb2NhdGlvbi5ocmVmLnNwbGl0KCI/IilbMF19KSk7b2k9a3R9KTtmdW5jdGlvbiBfZih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fZGF0ZXM9dm9pZCAwLHRoaXMuX3NhbXBsZXM9dm9pZCAwLHRoaXMuX2RhdGVDb2x1bW49LTEsdGhpcy5feFBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uPS0xLHRoaXMuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbj0tMSx0aGlzLl91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW49LTEsdGhpcy5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uPS0xLHRoaXMuX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbj0tMSx0aGlzLl90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW49LTEsdGhpcy5fY29sdW1uQ291bnQ9MCx0aGlzLl9sYXN0SW5kZXg9LTEsdGhpcy5fYWRkTmV3TGVhcFNlY29uZHM9eCh0LmFkZE5ld0xlYXBTZWNvbmRzLCEwKSxoKHQuZGF0YSk/eEEodGhpcyx0LmRhdGEpOnhBKHRoaXMse2NvbHVtbk5hbWVzOlsiZGF0ZUlzbzg2MDEiLCJtb2RpZmllZEp1bGlhbkRhdGVVdGMiLCJ4UG9sZVdhbmRlclJhZGlhbnMiLCJ5UG9sZVdhbmRlclJhZGlhbnMiLCJ1dDFNaW51c1V0Y1NlY29uZHMiLCJsZW5ndGhPZkRheUNvcnJlY3Rpb25TZWNvbmRzIiwieENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiwieUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiwidGFpTWludXNVdGNTZWNvbmRzIl0sc2FtcGxlczpbXX0pfWZ1bmN0aW9uIE54KHQsZSl7cmV0dXJuIGtuLmNvbXBhcmUodC5qdWxpYW5EYXRlLGUpfWZ1bmN0aW9uIHhBKHQsZSl7aWYoIWgoZS5jb2x1bW5OYW1lcykpdGhyb3cgbmV3IEFlKCJFcnJvciBpbiBsb2FkZWQgRU9QIGRhdGE6IFRoZSBjb2x1bW5OYW1lcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4iKTtpZighaChlLnNhbXBsZXMpKXRocm93IG5ldyBBZSgiRXJyb3IgaW4gbG9hZGVkIEVPUCBkYXRhOiBUaGUgc2FtcGxlcyBwcm9wZXJ0eSBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLmNvbHVtbk5hbWVzLmluZGV4T2YoIm1vZGlmaWVkSnVsaWFuRGF0ZVV0YyIpLG89ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ4UG9sZVdhbmRlclJhZGlhbnMiKSxyPWUuY29sdW1uTmFtZXMuaW5kZXhPZigieVBvbGVXYW5kZXJSYWRpYW5zIiksaT1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInV0MU1pbnVzVXRjU2Vjb25kcyIpLHM9ZS5jb2x1bW5OYW1lcy5pbmRleE9mKCJ4Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnMiKSxmPWUuY29sdW1uTmFtZXMuaW5kZXhPZigieUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zIiksdT1lLmNvbHVtbk5hbWVzLmluZGV4T2YoInRhaU1pbnVzVXRjU2Vjb25kcyIpO2lmKG48MHx8bzwwfHxyPDB8fGk8MHx8czwwfHxmPDB8fHU8MCl0aHJvdyBuZXcgQWUoIkVycm9yIGluIGxvYWRlZCBFT1AgZGF0YTogVGhlIGNvbHVtbk5hbWVzIHByb3BlcnR5IG11c3QgaW5jbHVkZSBtb2RpZmllZEp1bGlhbkRhdGVVdGMsIHhQb2xlV2FuZGVyUmFkaWFucywgeVBvbGVXYW5kZXJSYWRpYW5zLCB1dDFNaW51c1V0Y1NlY29uZHMsIHhDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFucywgeUNlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zLCBhbmQgdGFpTWludXNVdGNTZWNvbmRzIGNvbHVtbnMiKTtsZXQgYz10Ll9zYW1wbGVzPWUuc2FtcGxlcyxsPXQuX2RhdGVzPVtdO3QuX2RhdGVDb2x1bW49bix0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW49byx0Ll95UG9sZVdhbmRlclJhZGlhbnNDb2x1bW49cix0Ll91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW49aSx0Ll94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW49cyx0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW49Zix0Ll90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW49dSx0Ll9jb2x1bW5Db3VudD1lLmNvbHVtbk5hbWVzLmxlbmd0aCx0Ll9sYXN0SW5kZXg9dm9pZCAwO2xldCBwLGQ9dC5fYWRkTmV3TGVhcFNlY29uZHM7Zm9yKGxldCBtPTAsXz1jLmxlbmd0aDttPF87bSs9dC5fY29sdW1uQ291bnQpe2xldCBnPWNbbStuXSxiPWNbbSt1XSx3PWcreW4uTU9ESUZJRURfSlVMSUFOX0RBVEVfRElGRkVSRU5DRSxPPW5ldyBrbih3LGIsT2UuVEFJKTtpZihsLnB1c2goTyksZCl7aWYoYiE9PXAmJmgocCkpe2xldCBFPWtuLmxlYXBTZWNvbmRzLFQ9R3MoRSxPLE54KTtpZihUPDApe2xldCBDPW5ldyBXZShPLGIpO0Uuc3BsaWNlKH5ULDAsQyl9fXA9Yn19fWZ1bmN0aW9uIFBBKHQsZSxuLG8scil7bGV0IGk9bipvO3IueFBvbGVXYW5kZXI9ZVtpK3QuX3hQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0sci55UG9sZVdhbmRlcj1lW2krdC5feVBvbGVXYW5kZXJSYWRpYW5zQ29sdW1uXSxyLnhQb2xlT2Zmc2V0PWVbaSt0Ll94Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dLHIueVBvbGVPZmZzZXQ9ZVtpK3QuX3lDZWxlc3RpYWxQb2xlT2Zmc2V0UmFkaWFuc0NvbHVtbl0sci51dDFNaW51c1V0Yz1lW2krdC5fdXQxTWludXNVdGNTZWNvbmRzQ29sdW1uXX1mdW5jdGlvbiBoZih0LGUsbil7cmV0dXJuIGUrdCoobi1lKX1mdW5jdGlvbiBNQSh0LGUsbixvLHIsaSxzKXtsZXQgZj10Ll9jb2x1bW5Db3VudDtpZihpPmUubGVuZ3RoLTEpcmV0dXJuIHMueFBvbGVXYW5kZXI9MCxzLnlQb2xlV2FuZGVyPTAscy54UG9sZU9mZnNldD0wLHMueVBvbGVPZmZzZXQ9MCxzLnV0MU1pbnVzVXRjPTAscztsZXQgdT1lW3JdLGM9ZVtpXTtpZih1LmVxdWFscyhjKXx8by5lcXVhbHModSkpcmV0dXJuIFBBKHQsbixyLGYscykscztpZihvLmVxdWFscyhjKSlyZXR1cm4gUEEodCxuLGksZixzKSxzO2xldCBsPWtuLnNlY29uZHNEaWZmZXJlbmNlKG8sdSkva24uc2Vjb25kc0RpZmZlcmVuY2UoYyx1KSxwPXIqZixkPWkqZixtPW5bcCt0Ll91dDFNaW51c1V0Y1NlY29uZHNDb2x1bW5dLF89bltkK3QuX3V0MU1pbnVzVXRjU2Vjb25kc0NvbHVtbl0sZz1fLW07aWYoZz4uNXx8ZzwtLjUpe2xldCBiPW5bcCt0Ll90YWlNaW51c1V0Y1NlY29uZHNDb2x1bW5dLHc9bltkK3QuX3RhaU1pbnVzVXRjU2Vjb25kc0NvbHVtbl07YiE9PXcmJihjLmVxdWFscyhvKT9tPV86Xy09dy1iKX1yZXR1cm4gcy54UG9sZVdhbmRlcj1oZihsLG5bcCt0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW5dLG5bZCt0Ll94UG9sZVdhbmRlclJhZGlhbnNDb2x1bW5dKSxzLnlQb2xlV2FuZGVyPWhmKGwsbltwK3QuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0sbltkK3QuX3lQb2xlV2FuZGVyUmFkaWFuc0NvbHVtbl0pLHMueFBvbGVPZmZzZXQ9aGYobCxuW3ArdC5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uXSxuW2QrdC5feENlbGVzdGlhbFBvbGVPZmZzZXRSYWRpYW5zQ29sdW1uXSkscy55UG9sZU9mZnNldD1oZihsLG5bcCt0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dLG5bZCt0Ll95Q2VsZXN0aWFsUG9sZU9mZnNldFJhZGlhbnNDb2x1bW5dKSxzLnV0MU1pbnVzVXRjPWhmKGwsbSxfKSxzfXZhciBOQSxJQT1aKCgpPT57Tm0oKTtYdCgpO0l0KCk7ZnQoKTtJbSgpO3RwKCk7TG0oKTttZigpO0pyKCk7WGwoKTtZbCgpO19mLmZyb21Vcmw9YXN5bmMgZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoInVybCIsdCksZT14KGUseC5FTVBUWV9PQkpFQ1QpO2xldCBuPW9pLmNyZWF0ZUlmTmVlZGVkKHQpLG87dHJ5e289YXdhaXQgbi5mZXRjaEpzb24oKX1jYXRjaHt0aHJvdyBuZXcgQWUoYEFuIGVycm9yIG9jY3VycmVkIHdoaWxlIHJldHJpZXZpbmcgdGhlIEVPUCBkYXRhIGZyb20gdGhlIFVSTCAke24udXJsfS5gKX1yZXR1cm4gbmV3IF9mKHthZGROZXdMZWFwU2Vjb25kczplLmFkZE5ld0xlYXBTZWNvbmRzLGRhdGE6b30pfTtfZi5OT05FPU9iamVjdC5mcmVlemUoe2NvbXB1dGU6ZnVuY3Rpb24odCxlKXtyZXR1cm4gaChlKT8oZS54UG9sZVdhbmRlcj0wLGUueVBvbGVXYW5kZXI9MCxlLnhQb2xlT2Zmc2V0PTAsZS55UG9sZU9mZnNldD0wLGUudXQxTWludXNVdGM9MCk6ZT1uZXcgYWYoMCwwLDAsMCwwKSxlfX0pO19mLnByb3RvdHlwZS5jb21wdXRlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodGhpcy5fc2FtcGxlcykpcmV0dXJuO2lmKGgoZSl8fChlPW5ldyBhZigwLDAsMCwwLDApKSx0aGlzLl9zYW1wbGVzLmxlbmd0aD09PTApcmV0dXJuIGUueFBvbGVXYW5kZXI9MCxlLnlQb2xlV2FuZGVyPTAsZS54UG9sZU9mZnNldD0wLGUueVBvbGVPZmZzZXQ9MCxlLnV0MU1pbnVzVXRjPTAsZTtsZXQgbj10aGlzLl9kYXRlcyxvPXRoaXMuX2xhc3RJbmRleCxyPTAsaT0wO2lmKGgobykpe2xldCBmPW5bb10sdT1uW28rMV0sYz1rbi5sZXNzVGhhbk9yRXF1YWxzKGYsdCksbD0haCh1KSxwPWx8fGtuLmdyZWF0ZXJUaGFuT3JFcXVhbHModSx0KTtpZihjJiZwKXJldHVybiByPW8sIWwmJnUuZXF1YWxzKHQpJiYrK3IsaT1yKzEsTUEodGhpcyxuLHRoaXMuX3NhbXBsZXMsdCxyLGksZSksZX1sZXQgcz1HcyhuLHQsa24uY29tcGFyZSx0aGlzLl9kYXRlQ29sdW1uKTtyZXR1cm4gcz49MD8oczxuLmxlbmd0aC0xJiZuW3MrMV0uZXF1YWxzKHQpJiYrK3Mscj1zLGk9cyk6KGk9fnMscj1pLTEscjwwJiYocj0wKSksdGhpcy5fbGFzdEluZGV4PXIsTUEodGhpcyxuLHRoaXMuX3NhbXBsZXMsdCxyLGksZSksZX07TkE9X2Z9KTtmdW5jdGlvbiBUbyh0LGUsbil7dGhpcy5oZWFkaW5nPXgodCwwKSx0aGlzLnBpdGNoPXgoZSwwKSx0aGlzLnJvbGw9eChuLDApfXZhciBtcCx2QT1aKCgpPT57SXQoKTtmdCgpO0h0KCk7V3QoKTtUby5mcm9tUXVhdGVybmlvbj1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJxdWF0ZXJuaW9uIGlzIHJlcXVpcmVkIik7aChlKXx8KGU9bmV3IFRvKTtsZXQgbj0yKih0LncqdC55LXQueip0LngpLG89MS0yKih0LngqdC54K3QueSp0LnkpLHI9MioodC53KnQueCt0LnkqdC56KSxpPTEtMioodC55KnQueSt0LnoqdC56KSxzPTIqKHQudyp0LnordC54KnQueSk7cmV0dXJuIGUuaGVhZGluZz0tTWF0aC5hdGFuMihzLGkpLGUucm9sbD1NYXRoLmF0YW4yKHIsbyksZS5waXRjaD0tTS5hc2luQ2xhbXBlZChuKSxlfTtUby5mcm9tRGVncmVlcz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgRigiaGVhZGluZyBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJwaXRjaCBpcyByZXF1aXJlZCIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJyb2xsIGlzIHJlcXVpcmVkIik7cmV0dXJuIGgobyl8fChvPW5ldyBUbyksby5oZWFkaW5nPXQqTS5SQURJQU5TX1BFUl9ERUdSRUUsby5waXRjaD1lKk0uUkFESUFOU19QRVJfREVHUkVFLG8ucm9sbD1uKk0uUkFESUFOU19QRVJfREVHUkVFLG99O1RvLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5oZWFkaW5nPXQuaGVhZGluZyxlLnBpdGNoPXQucGl0Y2gsZS5yb2xsPXQucm9sbCxlKTpuZXcgVG8odC5oZWFkaW5nLHQucGl0Y2gsdC5yb2xsKX07VG8uZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LmhlYWRpbmc9PT1lLmhlYWRpbmcmJnQucGl0Y2g9PT1lLnBpdGNoJiZ0LnJvbGw9PT1lLnJvbGx9O1RvLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZNLmVxdWFsc0Vwc2lsb24odC5oZWFkaW5nLGUuaGVhZGluZyxuLG8pJiZNLmVxdWFsc0Vwc2lsb24odC5waXRjaCxlLnBpdGNoLG4sbykmJk0uZXF1YWxzRXBzaWxvbih0LnJvbGwsZS5yb2xsLG4sbyl9O1RvLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gVG8uY2xvbmUodGhpcyx0KX07VG8ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gVG8uZXF1YWxzKHRoaXMsdCl9O1RvLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gVG8uZXF1YWxzRXBzaWxvbih0aGlzLHQsZSxuKX07VG8ucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMuaGVhZGluZ30sICR7dGhpcy5waXRjaH0sICR7dGhpcy5yb2xsfSlgfTttcD1Ub30pO2Z1bmN0aW9uIEl4KCl7bGV0IHQ9ZG9jdW1lbnQuZ2V0RWxlbWVudHNCeVRhZ05hbWUoInNjcmlwdCIpO2ZvcihsZXQgZT0wLG49dC5sZW5ndGg7ZTxuOysrZSl7bGV0IG89dFtlXS5nZXRBdHRyaWJ1dGUoInNyYyIpLHI9REEuZXhlYyhvKTtpZihyIT09bnVsbClyZXR1cm4gclsxXX19ZnVuY3Rpb24gRkEodCl7cmV0dXJuIHR5cGVvZiBkb2N1bWVudD4idSI/dDooaChocCl8fChocD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJhIikpLGhwLmhyZWY9dCxocC5ocmVmKX1mdW5jdGlvbiBCQSgpe2lmKGgoS3MpKXJldHVybiBLcztsZXQgdDtpZih0eXBlb2YgQ0VTSVVNX0JBU0VfVVJMPCJ1Ij90PUNFU0lVTV9CQVNFX1VSTDpoKExBPy51cmwpP3Q9dWYoIi4iLExBLnVybCk6dHlwZW9mIGRlZmluZT09Im9iamVjdCImJmgoZGVmaW5lLmFtZCkmJiFkZWZpbmUuYW1kLnRvVXJsVW5kZWZpbmVkJiZoKHByLnRvVXJsKT90PXVmKCIuLiIsV3MoIkNvcmUvYnVpbGRNb2R1bGVVcmwuanMiKSk6dD1JeCgpLCFoKHQpKXRocm93IG5ldyBGKCJVbmFibGUgdG8gZGV0ZXJtaW5lIENlc2l1bSBiYXNlIFVSTCBhdXRvbWF0aWNhbGx5LCB0cnkgZGVmaW5pbmcgYSBnbG9iYWwgdmFyaWFibGUgY2FsbGVkIENFU0lVTV9CQVNFX1VSTC4iKTtyZXR1cm4gS3M9bmV3IG9pKHt1cmw6RkEodCl9KSxLcy5hcHBlbmRGb3J3YXJkU2xhc2goKSxLc31mdW5jdGlvbiB2eCh0KXtyZXR1cm4gRkEocHIudG9VcmwoYC4uLyR7dH1gKSl9ZnVuY3Rpb24gVUEodCl7cmV0dXJuIEJBKCkuZ2V0RGVyaXZlZFJlc291cmNlKHt1cmw6dH0pLnVybH1mdW5jdGlvbiBXcyh0KXtyZXR1cm4gaChfcCl8fCh0eXBlb2YgZGVmaW5lPT0ib2JqZWN0IiYmaChkZWZpbmUuYW1kKSYmIWRlZmluZS5hbWQudG9VcmxVbmRlZmluZWQmJmgocHIudG9VcmwpP19wPXZ4Ol9wPVVBKSxfcCh0KX12YXIgTEEsREEsaHAsS3MsX3AseXAsWG09WigoKT0+e2Z0KCk7SHQoKTtrbSgpO21mKCk7TEE9e30sREE9LygoPzouKlwvKXxeKUNlc2l1bVwuanMoPzpcP3xcI3wkKS87V3MuX2Nlc2l1bVNjcmlwdFJlZ2V4PURBO1dzLl9idWlsZE1vZHVsZVVybEZyb21CYXNlVXJsPVVBO1dzLl9jbGVhckJhc2VSZXNvdXJjZT1mdW5jdGlvbigpe0tzPXZvaWQgMH07V3Muc2V0QmFzZVVybD1mdW5jdGlvbih0KXtLcz1vaS5ERUZBVUxULmdldERlcml2ZWRSZXNvdXJjZSh7dXJsOnR9KX07V3MuZ2V0Q2VzaXVtQmFzZVVybD1CQTt5cD1Xc30pO2Z1bmN0aW9uIEx4KHQsZSxuKXt0aGlzLng9dCx0aGlzLnk9ZSx0aGlzLnM9bn12YXIgZ3AsWW09WigoKT0+e2dwPUx4fSk7ZnVuY3Rpb24gUW0odCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHRoaXMuX3h5c0ZpbGVVcmxUZW1wbGF0ZT1vaS5jcmVhdGVJZk5lZWRlZCh0Lnh5c0ZpbGVVcmxUZW1wbGF0ZSksdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyPXgodC5pbnRlcnBvbGF0aW9uT3JkZXIsOSksdGhpcy5fc2FtcGxlWmVyb0p1bGlhbkVwaGVtZXJpc0RhdGU9eCh0LnNhbXBsZVplcm9KdWxpYW5FcGhlbWVyaXNEYXRlLDI0NDIzOTY1ZS0xKSx0aGlzLl9zYW1wbGVaZXJvRGF0ZVRUPW5ldyBrbih0aGlzLl9zYW1wbGVaZXJvSnVsaWFuRXBoZW1lcmlzRGF0ZSwwLE9lLlRBSSksdGhpcy5fc3RlcFNpemVEYXlzPXgodC5zdGVwU2l6ZURheXMsMSksdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGU9eCh0LnNhbXBsZXNQZXJYeXNGaWxlLDFlMyksdGhpcy5fdG90YWxTYW1wbGVzPXgodC50b3RhbFNhbXBsZXMsMjc0MjYpLHRoaXMuX3NhbXBsZXM9bmV3IEFycmF5KHRoaXMuX3RvdGFsU2FtcGxlcyozKSx0aGlzLl9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3M9W107bGV0IGU9dGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyLG49dGhpcy5fZGVub21pbmF0b3JzPW5ldyBBcnJheShlKzEpLG89dGhpcy5feFRhYmxlPW5ldyBBcnJheShlKzEpLHI9TWF0aC5wb3codGhpcy5fc3RlcFNpemVEYXlzLGUpO2ZvcihsZXQgaT0wO2k8PWU7KytpKXtuW2ldPXIsb1tpXT1pKnRoaXMuX3N0ZXBTaXplRGF5cztmb3IobGV0IHM9MDtzPD1lOysrcylzIT09aSYmKG5baV0qPWktcyk7bltpXT0xL25baV19dGhpcy5fd29yaz1uZXcgQXJyYXkoZSsxKSx0aGlzLl9jb2VmPW5ldyBBcnJheShlKzEpfWZ1bmN0aW9uICRtKHQsZSxuKXtsZXQgbz1EeDtyZXR1cm4gby5kYXlOdW1iZXI9ZSxvLnNlY29uZHNPZkRheT1uLGtuLmRheXNEaWZmZXJlbmNlKG8sdC5fc2FtcGxlWmVyb0RhdGVUVCl9ZnVuY3Rpb24gWm0odCxlKXtpZih0Ll9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV0pcmV0dXJuIHQuX2NodW5rRG93bmxvYWRzSW5Qcm9ncmVzc1tlXTtsZXQgbixvPXQuX3h5c0ZpbGVVcmxUZW1wbGF0ZTtoKG8pP249by5nZXREZXJpdmVkUmVzb3VyY2Uoe3RlbXBsYXRlVmFsdWVzOnswOmV9fSk6bj1uZXcgb2koe3VybDp5cChgQXNzZXRzL0lBVTIwMDZfWFlTL0lBVTIwMDZfWFlTXyR7ZX0uanNvbmApfSk7bGV0IHI9bi5mZXRjaEpzb24oKS50aGVuKGZ1bmN0aW9uKGkpe3QuX2NodW5rRG93bmxvYWRzSW5Qcm9ncmVzc1tlXT0hMTtsZXQgcz10Ll9zYW1wbGVzLGY9aS5zYW1wbGVzLHU9ZSp0Ll9zYW1wbGVzUGVyWHlzRmlsZSozO2ZvcihsZXQgYz0wLGw9Zi5sZW5ndGg7YzxsOysrYylzW3UrY109ZltjXX0pO3JldHVybiB0Ll9jaHVua0Rvd25sb2Fkc0luUHJvZ3Jlc3NbZV09cixyfXZhciBEeCxWQSxrQT1aKCgpPT57WG0oKTtJdCgpO2Z0KCk7WW0oKTt0cCgpO21mKCk7WWwoKTtEeD1uZXcga24oMCwwLE9lLlRBSSk7UW0ucHJvdG90eXBlLnByZWxvYWQ9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9JG0odGhpcyx0LGUpLGk9JG0odGhpcyxuLG8pLHM9ci90aGlzLl9zdGVwU2l6ZURheXMtdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyLzJ8MDtzPDAmJihzPTApO2xldCBmPWkvdGhpcy5fc3RlcFNpemVEYXlzLXRoaXMuX2ludGVycG9sYXRpb25PcmRlci8yfDArdGhpcy5faW50ZXJwb2xhdGlvbk9yZGVyO2Y+PXRoaXMuX3RvdGFsU2FtcGxlcyYmKGY9dGhpcy5fdG90YWxTYW1wbGVzLTEpO2xldCB1PXMvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCxjPWYvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCxsPVtdO2ZvcihsZXQgcD11O3A8PWM7KytwKWwucHVzaChabSh0aGlzLHApKTtyZXR1cm4gUHJvbWlzZS5hbGwobCl9O1FtLnByb3RvdHlwZS5jb21wdXRlWHlzUmFkaWFucz1mdW5jdGlvbih0LGUsbil7bGV0IG89JG0odGhpcyx0LGUpO2lmKG88MClyZXR1cm47bGV0IHI9by90aGlzLl9zdGVwU2l6ZURheXN8MDtpZihyPj10aGlzLl90b3RhbFNhbXBsZXMpcmV0dXJuO2xldCBpPXRoaXMuX2ludGVycG9sYXRpb25PcmRlcixzPXItKGkvMnwwKTtzPDAmJihzPTApO2xldCBmPXMraTtmPj10aGlzLl90b3RhbFNhbXBsZXMmJihmPXRoaXMuX3RvdGFsU2FtcGxlcy0xLHM9Zi1pLHM8MCYmKHM9MCkpO2xldCB1PSExLGM9dGhpcy5fc2FtcGxlcztpZihoKGNbcyozXSl8fChabSh0aGlzLHMvdGhpcy5fc2FtcGxlc1Blclh5c0ZpbGV8MCksdT0hMCksaChjW2YqM10pfHwoWm0odGhpcyxmL3RoaXMuX3NhbXBsZXNQZXJYeXNGaWxlfDApLHU9ITApLHUpcmV0dXJuO2gobik/KG4ueD0wLG4ueT0wLG4ucz0wKTpuPW5ldyBncCgwLDAsMCk7bGV0IGw9by1zKnRoaXMuX3N0ZXBTaXplRGF5cyxwPXRoaXMuX3dvcmssZD10aGlzLl9kZW5vbWluYXRvcnMsbT10aGlzLl9jb2VmLF89dGhpcy5feFRhYmxlLGcsYjtmb3IoZz0wO2c8PWk7KytnKXBbZ109bC1fW2ddO2ZvcihnPTA7Zzw9aTsrK2cpe2ZvcihtW2ddPTEsYj0wO2I8PWk7KytiKWIhPT1nJiYobVtnXSo9cFtiXSk7bVtnXSo9ZFtnXTtsZXQgdz0ocytnKSozO24ueCs9bVtnXSpjW3crK10sbi55Kz1tW2ddKmNbdysrXSxuLnMrPW1bZ10qY1t3XX1yZXR1cm4gbn07VkE9UW19KTt2YXIgb3MsTm4scW8sR0EsekE9WigoKT0+e2Z0KCk7Tm49e3JlcXVlc3RGdWxsc2NyZWVuOnZvaWQgMCxleGl0RnVsbHNjcmVlbjp2b2lkIDAsZnVsbHNjcmVlbkVuYWJsZWQ6dm9pZCAwLGZ1bGxzY3JlZW5FbGVtZW50OnZvaWQgMCxmdWxsc2NyZWVuY2hhbmdlOnZvaWQgMCxmdWxsc2NyZWVuZXJyb3I6dm9pZCAwfSxxbz17fTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhxbyx7ZWxlbWVudDp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIGRvY3VtZW50W05uLmZ1bGxzY3JlZW5FbGVtZW50XX19LGNoYW5nZUV2ZW50TmFtZTp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIE5uLmZ1bGxzY3JlZW5jaGFuZ2V9fSxlcnJvckV2ZW50TmFtZTp7Z2V0OmZ1bmN0aW9uKCl7aWYocW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkpcmV0dXJuIE5uLmZ1bGxzY3JlZW5lcnJvcn19LGVuYWJsZWQ6e2dldDpmdW5jdGlvbigpe2lmKHFvLnN1cHBvcnRzRnVsbHNjcmVlbigpKXJldHVybiBkb2N1bWVudFtObi5mdWxsc2NyZWVuRW5hYmxlZF19fSxmdWxsc2NyZWVuOntnZXQ6ZnVuY3Rpb24oKXtpZihxby5zdXBwb3J0c0Z1bGxzY3JlZW4oKSlyZXR1cm4gcW8uZWxlbWVudCE9PW51bGx9fX0pO3FvLnN1cHBvcnRzRnVsbHNjcmVlbj1mdW5jdGlvbigpe2lmKGgob3MpKXJldHVybiBvcztvcz0hMTtsZXQgdD1kb2N1bWVudC5ib2R5O2lmKHR5cGVvZiB0LnJlcXVlc3RGdWxsc2NyZWVuPT0iZnVuY3Rpb24iKXJldHVybiBObi5yZXF1ZXN0RnVsbHNjcmVlbj0icmVxdWVzdEZ1bGxzY3JlZW4iLE5uLmV4aXRGdWxsc2NyZWVuPSJleGl0RnVsbHNjcmVlbiIsTm4uZnVsbHNjcmVlbkVuYWJsZWQ9ImZ1bGxzY3JlZW5FbmFibGVkIixObi5mdWxsc2NyZWVuRWxlbWVudD0iZnVsbHNjcmVlbkVsZW1lbnQiLE5uLmZ1bGxzY3JlZW5jaGFuZ2U9ImZ1bGxzY3JlZW5jaGFuZ2UiLE5uLmZ1bGxzY3JlZW5lcnJvcj0iZnVsbHNjcmVlbmVycm9yIixvcz0hMCxvcztsZXQgZT1bIndlYmtpdCIsIm1veiIsIm8iLCJtcyIsImtodG1sIl0sbjtmb3IobGV0IG89MCxyPWUubGVuZ3RoO288cjsrK28pe2xldCBpPWVbb107bj1gJHtpfVJlcXVlc3RGdWxsc2NyZWVuYCx0eXBlb2YgdFtuXT09ImZ1bmN0aW9uIj8oTm4ucmVxdWVzdEZ1bGxzY3JlZW49bixvcz0hMCk6KG49YCR7aX1SZXF1ZXN0RnVsbFNjcmVlbmAsdHlwZW9mIHRbbl09PSJmdW5jdGlvbiImJihObi5yZXF1ZXN0RnVsbHNjcmVlbj1uLG9zPSEwKSksbj1gJHtpfUV4aXRGdWxsc2NyZWVuYCx0eXBlb2YgZG9jdW1lbnRbbl09PSJmdW5jdGlvbiI/Tm4uZXhpdEZ1bGxzY3JlZW49bjoobj1gJHtpfUNhbmNlbEZ1bGxTY3JlZW5gLHR5cGVvZiBkb2N1bWVudFtuXT09ImZ1bmN0aW9uIiYmKE5uLmV4aXRGdWxsc2NyZWVuPW4pKSxuPWAke2l9RnVsbHNjcmVlbkVuYWJsZWRgLGRvY3VtZW50W25dIT09dm9pZCAwP05uLmZ1bGxzY3JlZW5FbmFibGVkPW46KG49YCR7aX1GdWxsU2NyZWVuRW5hYmxlZGAsZG9jdW1lbnRbbl0hPT12b2lkIDAmJihObi5mdWxsc2NyZWVuRW5hYmxlZD1uKSksbj1gJHtpfUZ1bGxzY3JlZW5FbGVtZW50YCxkb2N1bWVudFtuXSE9PXZvaWQgMD9Obi5mdWxsc2NyZWVuRWxlbWVudD1uOihuPWAke2l9RnVsbFNjcmVlbkVsZW1lbnRgLGRvY3VtZW50W25dIT09dm9pZCAwJiYoTm4uZnVsbHNjcmVlbkVsZW1lbnQ9bikpLG49YCR7aX1mdWxsc2NyZWVuY2hhbmdlYCxkb2N1bWVudFtgb24ke259YF0hPT12b2lkIDAmJihpPT09Im1zIiYmKG49Ik1TRnVsbHNjcmVlbkNoYW5nZSIpLE5uLmZ1bGxzY3JlZW5jaGFuZ2U9biksbj1gJHtpfWZ1bGxzY3JlZW5lcnJvcmAsZG9jdW1lbnRbYG9uJHtufWBdIT09dm9pZCAwJiYoaT09PSJtcyImJihuPSJNU0Z1bGxzY3JlZW5FcnJvciIpLE5uLmZ1bGxzY3JlZW5lcnJvcj1uKX1yZXR1cm4gb3N9O3FvLnJlcXVlc3RGdWxsc2NyZWVuPWZ1bmN0aW9uKHQsZSl7cW8uc3VwcG9ydHNGdWxsc2NyZWVuKCkmJnRbTm4ucmVxdWVzdEZ1bGxzY3JlZW5dKHt2ckRpc3BsYXk6ZX0pfTtxby5leGl0RnVsbHNjcmVlbj1mdW5jdGlvbigpe3FvLnN1cHBvcnRzRnVsbHNjcmVlbigpJiZkb2N1bWVudFtObi5leGl0RnVsbHNjcmVlbl0oKX07cW8uX25hbWVzPU5uO0dBPXFvfSk7ZnVuY3Rpb24gWHModCl7bGV0IGU9dC5zcGxpdCgiLiIpO2ZvcihsZXQgbj0wLG89ZS5sZW5ndGg7bjxvOysrbillW25dPXBhcnNlSW50KGVbbl0sMTApO3JldHVybiBlfWZ1bmN0aW9uIHJoKCl7aWYoIWgoQXApJiYoQXA9ITEsIVJwKCkpKXtsZXQgdD0vIENocm9tZVwvKFtcLjAtOV0rKS8uZXhlYyhFby51c2VyQWdlbnQpO3QhPT1udWxsJiYoQXA9ITAsakE9WHModFsxXSkpfXJldHVybiBBcH1mdW5jdGlvbiBGeCgpe3JldHVybiByaCgpJiZqQX1mdW5jdGlvbiBxQSgpe2lmKCFoKGJwKSYmKGJwPSExLCFyaCgpJiYhUnAoKSYmLyBTYWZhcmlcL1tcLjAtOV0rLy50ZXN0KEVvLnVzZXJBZ2VudCkpKXtsZXQgdD0vIFZlcnNpb25cLyhbXC4wLTldKykvLmV4ZWMoRW8udXNlckFnZW50KTt0IT09bnVsbCYmKGJwPSEwLEhBPVhzKHRbMV0pKX1yZXR1cm4gYnB9ZnVuY3Rpb24gQngoKXtyZXR1cm4gcUEoKSYmSEF9ZnVuY3Rpb24gS0EoKXtpZighaCh3cCkpe3dwPSExO2xldCB0PS8gQXBwbGVXZWJLaXRcLyhbXC4wLTldKykoXCs/KS8uZXhlYyhFby51c2VyQWdlbnQpO3QhPT1udWxsJiYod3A9ITAsbmg9WHModFsxXSksbmguaXNOaWdodGx5PSEhdFsyXSl9cmV0dXJuIHdwfWZ1bmN0aW9uIFV4KCl7cmV0dXJuIEtBKCkmJm5ofWZ1bmN0aW9uIFdBKCl7aWYoIWgoeWYpKXt5Zj0hMTtsZXQgdDtFby5hcHBOYW1lPT09Ik1pY3Jvc29mdCBJbnRlcm5ldCBFeHBsb3JlciI/KHQ9L01TSUUgKFswLTldezEsfVtcLjAtOV17MCx9KS8uZXhlYyhFby51c2VyQWdlbnQpLHQhPT1udWxsJiYoeWY9ITAsb2g9WHModFsxXSkpKTpFby5hcHBOYW1lPT09Ik5ldHNjYXBlIiYmKHQ9L1RyaWRlbnRcLy4qcnY6KFswLTldezEsfVtcLjAtOV17MCx9KS8uZXhlYyhFby51c2VyQWdlbnQpLHQhPT1udWxsJiYoeWY9ITAsb2g9WHModFsxXSkpKX1yZXR1cm4geWZ9ZnVuY3Rpb24gVngoKXtyZXR1cm4gV0EoKSYmb2h9ZnVuY3Rpb24gUnAoKXtpZighaChUcCkpe1RwPSExO2xldCB0PS8gRWRnXC8oW1wuMC05XSspLy5leGVjKEVvLnVzZXJBZ2VudCk7dCE9PW51bGwmJihUcD0hMCxYQT1Ycyh0WzFdKSl9cmV0dXJuIFRwfWZ1bmN0aW9uIGt4KCl7cmV0dXJuIFJwKCkmJlhBfWZ1bmN0aW9uIFNwKCl7aWYoIWgoT3ApKXtPcD0hMTtsZXQgdD0vRmlyZWZveFwvKFtcLjAtOV0rKS8uZXhlYyhFby51c2VyQWdlbnQpO3QhPT1udWxsJiYoT3A9ITAsaWg9WHModFsxXSkpfXJldHVybiBPcH1mdW5jdGlvbiBHeCgpe3JldHVybiBoKEptKXx8KEptPS9XaW5kb3dzL2kudGVzdChFby5hcHBWZXJzaW9uKSksSm19ZnVuY3Rpb24gengoKXtyZXR1cm4gaCh0aCl8fCh0aD1uYXZpZ2F0b3IucGxhdGZvcm09PT0iaVBob25lInx8bmF2aWdhdG9yLnBsYXRmb3JtPT09ImlQb2QifHxuYXZpZ2F0b3IucGxhdGZvcm09PT0iaVBhZCIpLHRofWZ1bmN0aW9uIGp4KCl7cmV0dXJuIFNwKCkmJmlofWZ1bmN0aW9uIEh4KCl7cmV0dXJuIGgoZWgpfHwoZWg9IVNwKCkmJnR5cGVvZiBQb2ludGVyRXZlbnQ8InUiJiYoIWgoRW8ucG9pbnRlckVuYWJsZWQpfHxFby5wb2ludGVyRW5hYmxlZCkpLGVofWZ1bmN0aW9uICRBKCl7aWYoIWgoRXApKXtsZXQgdD1kb2N1bWVudC5jcmVhdGVFbGVtZW50KCJjYW52YXMiKTt0LnNldEF0dHJpYnV0ZSgic3R5bGUiLCJpbWFnZS1yZW5kZXJpbmc6IC1tb3otY3Jpc3AtZWRnZXM7aW1hZ2UtcmVuZGVyaW5nOiBwaXhlbGF0ZWQ7Iik7bGV0IGU9dC5zdHlsZS5pbWFnZVJlbmRlcmluZztFcD1oKGUpJiZlIT09IiIsRXAmJihZQT1lKX1yZXR1cm4gRXB9ZnVuY3Rpb24gcXgoKXtyZXR1cm4gJEEoKT9ZQTp2b2lkIDB9ZnVuY3Rpb24gT28oKXtpZighT28uaW5pdGlhbGl6ZWQpdGhyb3cgbmV3IEYoIllvdSBtdXN0IGNhbGwgRmVhdHVyZURldGVjdGlvbi5zdXBwb3J0c1dlYlAuaW5pdGlhbGl6ZSBhbmQgd2FpdCBmb3IgdGhlIHByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgY2FsbGluZyBGZWF0dXJlRGV0ZWN0aW9uLnN1cHBvcnRzV2ViUCIpO3JldHVybiBPby5fcmVzdWx0fXZhciBFbyxBcCxqQSxicCxIQSx3cCxuaCx5ZixvaCxUcCxYQSxPcCxpaCxKbSx0aCxlaCxZQSxFcCxKYyx5cixZcyxzaD1aKCgpPT57WHQoKTtJdCgpO2Z0KCk7SHQoKTt6QSgpO3R5cGVvZiBuYXZpZ2F0b3I8InUiP0VvPW5hdmlnYXRvcjpFbz17fTtPby5fcHJvbWlzZT12b2lkIDA7T28uX3Jlc3VsdD12b2lkIDA7T28uaW5pdGlhbGl6ZT1mdW5jdGlvbigpe3JldHVybiBoKE9vLl9wcm9taXNlKXx8KE9vLl9wcm9taXNlPW5ldyBQcm9taXNlKHQ9PntsZXQgZT1uZXcgSW1hZ2U7ZS5vbmxvYWQ9ZnVuY3Rpb24oKXtPby5fcmVzdWx0PWUud2lkdGg+MCYmZS5oZWlnaHQ+MCx0KE9vLl9yZXN1bHQpfSxlLm9uZXJyb3I9ZnVuY3Rpb24oKXtPby5fcmVzdWx0PSExLHQoT28uX3Jlc3VsdCl9LGUuc3JjPSJkYXRhOmltYWdlL3dlYnA7YmFzZTY0LFVrbEdSaUlBQUFCWFJVSlFWbEE0SUJZQUFBQXdBUUNkQVNvQkFBRUFEc0QrSmFRQUEzQUFBQUFBIn0pKSxPby5fcHJvbWlzZX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoT28se2luaXRpYWxpemVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaChPby5fcmVzdWx0KX19fSk7SmM9W107dHlwZW9mIEFycmF5QnVmZmVyPCJ1IiYmKEpjLnB1c2goSW50OEFycmF5LFVpbnQ4QXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXkpLHR5cGVvZiBVaW50OENsYW1wZWRBcnJheTwidSImJkpjLnB1c2goVWludDhDbGFtcGVkQXJyYXkpLHR5cGVvZiBVaW50OENsYW1wZWRBcnJheTwidSImJkpjLnB1c2goVWludDhDbGFtcGVkQXJyYXkpLHR5cGVvZiBCaWdJbnQ2NEFycmF5PCJ1IiYmSmMucHVzaChCaWdJbnQ2NEFycmF5KSx0eXBlb2YgQmlnVWludDY0QXJyYXk8InUiJiZKYy5wdXNoKEJpZ1VpbnQ2NEFycmF5KSk7eXI9e2lzQ2hyb21lOnJoLGNocm9tZVZlcnNpb246RngsaXNTYWZhcmk6cUEsc2FmYXJpVmVyc2lvbjpCeCxpc1dlYmtpdDpLQSx3ZWJraXRWZXJzaW9uOlV4LGlzSW50ZXJuZXRFeHBsb3JlcjpXQSxpbnRlcm5ldEV4cGxvcmVyVmVyc2lvbjpWeCxpc0VkZ2U6UnAsZWRnZVZlcnNpb246a3gsaXNGaXJlZm94OlNwLGZpcmVmb3hWZXJzaW9uOmp4LGlzV2luZG93czpHeCxpc0lQYWRPcklPUzp6eCxoYXJkd2FyZUNvbmN1cnJlbmN5OngoRW8uaGFyZHdhcmVDb25jdXJyZW5jeSwzKSxzdXBwb3J0c1BvaW50ZXJFdmVudHM6SHgsc3VwcG9ydHNJbWFnZVJlbmRlcmluZ1BpeGVsYXRlZDokQSxzdXBwb3J0c1dlYlA6T28saW1hZ2VSZW5kZXJpbmdWYWx1ZTpxeCx0eXBlZEFycmF5VHlwZXM6SmN9O3lyLnN1cHBvcnRzQmFzaXM9ZnVuY3Rpb24odCl7cmV0dXJuIHlyLnN1cHBvcnRzV2ViQXNzZW1ibHkoKSYmdC5jb250ZXh0LnN1cHBvcnRzQmFzaXN9O3lyLnN1cHBvcnRzRnVsbHNjcmVlbj1mdW5jdGlvbigpe3JldHVybiBHQS5zdXBwb3J0c0Z1bGxzY3JlZW4oKX07eXIuc3VwcG9ydHNUeXBlZEFycmF5cz1mdW5jdGlvbigpe3JldHVybiB0eXBlb2YgQXJyYXlCdWZmZXI8InUifTt5ci5zdXBwb3J0c0JpZ0ludDY0QXJyYXk9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIEJpZ0ludDY0QXJyYXk8InUifTt5ci5zdXBwb3J0c0JpZ1VpbnQ2NEFycmF5PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBCaWdVaW50NjRBcnJheTwidSJ9O3lyLnN1cHBvcnRzQmlnSW50PWZ1bmN0aW9uKCl7cmV0dXJuIHR5cGVvZiBCaWdJbnQ8InUifTt5ci5zdXBwb3J0c1dlYldvcmtlcnM9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFdvcmtlcjwidSJ9O3lyLnN1cHBvcnRzV2ViQXNzZW1ibHk9ZnVuY3Rpb24oKXtyZXR1cm4gdHlwZW9mIFdlYkFzc2VtYmx5PCJ1In07eXIuc3VwcG9ydHNXZWJnbDI9ZnVuY3Rpb24odCl7cmV0dXJuIHkuZGVmaW5lZCgic2NlbmUiLHQpLHQuY29udGV4dC53ZWJnbDJ9O3lyLnN1cHBvcnRzRXNtV2ViV29ya2Vycz1mdW5jdGlvbigpe3JldHVybiFTcCgpfHxwYXJzZUludChpaCk+PTExNH07WXM9eXJ9KTtmdW5jdGlvbiBFdCh0LGUsbixvKXt0aGlzLng9eCh0LDApLHRoaXMueT14KGUsMCksdGhpcy56PXgobiwwKSx0aGlzLnc9eChvLDApfXZhciBnZixLeCxXeCxaQSxRQSxjaCxKQSxDcCxhaCxGcix0Yix4cCxmaCxlYix1aCxsaCxYeCxZeCxBZix0YSwkeCxuYixQcCxNcCx4aSxQaSxlZSxLbz1aKCgpPT57RnQoKTtYdCgpO0l0KCk7ZnQoKTtzaCgpO1d0KCk7Qm4oKTtnZj1uZXcgYTtFdC5mcm9tQXhpc0FuZ2xlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImF4aXMiLHQpLHkudHlwZU9mLm51bWJlcigiYW5nbGUiLGUpO2xldCBvPWUvMixyPU1hdGguc2luKG8pO2dmPWEubm9ybWFsaXplKHQsZ2YpO2xldCBpPWdmLngqcixzPWdmLnkqcixmPWdmLnoqcix1PU1hdGguY29zKG8pO3JldHVybiBoKG4pPyhuLng9aSxuLnk9cyxuLno9ZixuLnc9dSxuKTpuZXcgRXQoaSxzLGYsdSl9O0t4PVsxLDIsMF0sV3g9bmV3IEFycmF5KDMpO0V0LmZyb21Sb3RhdGlvbk1hdHJpeD1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KTtsZXQgbixvLHIsaSxzLGY9dFtRLkNPTFVNTjBST1cwXSx1PXRbUS5DT0xVTU4xUk9XMV0sYz10W1EuQ09MVU1OMlJPVzJdLGw9Zit1K2M7aWYobD4wKW49TWF0aC5zcXJ0KGwrMSkscz0uNSpuLG49LjUvbixvPSh0W1EuQ09MVU1OMVJPVzJdLXRbUS5DT0xVTU4yUk9XMV0pKm4scj0odFtRLkNPTFVNTjJST1cwXS10W1EuQ09MVU1OMFJPVzJdKSpuLGk9KHRbUS5DT0xVTU4wUk9XMV0tdFtRLkNPTFVNTjFST1cwXSkqbjtlbHNle2xldCBwPUt4LGQ9MDt1PmYmJihkPTEpLGM+ZiYmYz51JiYoZD0yKTtsZXQgbT1wW2RdLF89cFttXTtuPU1hdGguc3FydCh0W1EuZ2V0RWxlbWVudEluZGV4KGQsZCldLXRbUS5nZXRFbGVtZW50SW5kZXgobSxtKV0tdFtRLmdldEVsZW1lbnRJbmRleChfLF8pXSsxKTtsZXQgZz1XeDtnW2RdPS41Km4sbj0uNS9uLHM9KHRbUS5nZXRFbGVtZW50SW5kZXgoXyxtKV0tdFtRLmdldEVsZW1lbnRJbmRleChtLF8pXSkqbixnW21dPSh0W1EuZ2V0RWxlbWVudEluZGV4KG0sZCldK3RbUS5nZXRFbGVtZW50SW5kZXgoZCxtKV0pKm4sZ1tfXT0odFtRLmdldEVsZW1lbnRJbmRleChfLGQpXSt0W1EuZ2V0RWxlbWVudEluZGV4KGQsXyldKSpuLG89LWdbMF0scj0tZ1sxXSxpPS1nWzJdfXJldHVybiBoKGUpPyhlLng9byxlLnk9cixlLno9aSxlLnc9cyxlKTpuZXcgRXQobyxyLGkscyl9O1pBPW5ldyBFdCxRQT1uZXcgRXQsY2g9bmV3IEV0LEpBPW5ldyBFdDtFdC5mcm9tSGVhZGluZ1BpdGNoUm9sbD1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImhlYWRpbmdQaXRjaFJvbGwiLHQpLEpBPUV0LmZyb21BeGlzQW5nbGUoYS5VTklUX1gsdC5yb2xsLFpBKSxjaD1FdC5mcm9tQXhpc0FuZ2xlKGEuVU5JVF9ZLC10LnBpdGNoLGUpLGU9RXQubXVsdGlwbHkoY2gsSkEsY2gpLFFBPUV0LmZyb21BeGlzQW5nbGUoYS5VTklUX1osLXQuaGVhZGluZyxaQSksRXQubXVsdGlwbHkoUUEsZSxlKX07Q3A9bmV3IGEsYWg9bmV3IGEsRnI9bmV3IEV0LHRiPW5ldyBFdCx4cD1uZXcgRXQ7RXQucGFja2VkTGVuZ3RoPTQ7RXQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LngsZVtuKytdPXQueSxlW24rK109dC56LGVbbl09dC53LGV9O0V0LnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBFdCksbi54PXRbZV0sbi55PXRbZSsxXSxuLno9dFtlKzJdLG4udz10W2UrM10sbn07RXQucGFja2VkSW50ZXJwb2xhdGlvbkxlbmd0aD0zO0V0LmNvbnZlcnRQYWNrZWRBcnJheUZvckludGVycG9sYXRpb249ZnVuY3Rpb24odCxlLG4sbyl7RXQudW5wYWNrKHQsbio0LHhwKSxFdC5jb25qdWdhdGUoeHAseHApO2ZvcihsZXQgcj0wLGk9bi1lKzE7cjxpO3IrKyl7bGV0IHM9ciozO0V0LnVucGFjayh0LChlK3IpKjQsRnIpLEV0Lm11bHRpcGx5KEZyLHhwLEZyKSxGci53PDAmJkV0Lm5lZ2F0ZShGcixGciksRXQuY29tcHV0ZUF4aXMoRnIsQ3ApO2xldCBmPUV0LmNvbXB1dGVBbmdsZShGcik7aChvKXx8KG89W10pLG9bc109Q3AueCpmLG9bcysxXT1DcC55KmYsb1tzKzJdPUNwLnoqZn19O0V0LnVucGFja0ludGVycG9sYXRpb25SZXN1bHQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtoKHIpfHwocj1uZXcgRXQpLGEuZnJvbUFycmF5KHQsMCxhaCk7bGV0IGk9YS5tYWduaXR1ZGUoYWgpO3JldHVybiBFdC51bnBhY2soZSxvKjQsdGIpLGk9PT0wP0V0LmNsb25lKEV0LklERU5USVRZLEZyKTpFdC5mcm9tQXhpc0FuZ2xlKGFoLGksRnIpLEV0Lm11bHRpcGx5KEZyLHRiLHIpfTtFdC5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUueD10LngsZS55PXQueSxlLno9dC56LGUudz10LncsZSk6bmV3IEV0KHQueCx0LnksdC56LHQudyl9O0V0LmNvbmp1Z2F0ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9LXQueCxlLnk9LXQueSxlLno9LXQueixlLnc9dC53LGV9O0V0Lm1hZ25pdHVkZVNxdWFyZWQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicXVhdGVybmlvbiIsdCksdC54KnQueCt0LnkqdC55K3Queip0LnordC53KnQud307RXQubWFnbml0dWRlPWZ1bmN0aW9uKHQpe3JldHVybiBNYXRoLnNxcnQoRXQubWFnbml0dWRlU3F1YXJlZCh0KSl9O0V0Lm5vcm1hbGl6ZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj0xL0V0Lm1hZ25pdHVkZSh0KSxvPXQueCpuLHI9dC55Km4saT10LnoqbixzPXQudypuO3JldHVybiBlLng9byxlLnk9cixlLno9aSxlLnc9cyxlfTtFdC5pbnZlcnNlPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPUV0Lm1hZ25pdHVkZVNxdWFyZWQodCk7cmV0dXJuIGU9RXQuY29uanVnYXRlKHQsZSksRXQubXVsdGlwbHlCeVNjYWxhcihlLDEvbixlKX07RXQuYWRkPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueCtlLngsbi55PXQueStlLnksbi56PXQueitlLnosbi53PXQudytlLncsbn07RXQuc3VidHJhY3Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54LWUueCxuLnk9dC55LWUueSxuLno9dC56LWUueixuLnc9dC53LWUudyxufTtFdC5uZWdhdGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZS54PS10LngsZS55PS10LnksZS56PS10LnosZS53PS10LncsZX07RXQuZG90PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksdC54KmUueCt0LnkqZS55K3QueiplLnordC53KmUud307RXQubXVsdGlwbHk9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXQueCxyPXQueSxpPXQueixzPXQudyxmPWUueCx1PWUueSxjPWUueixsPWUudyxwPXMqZitvKmwrcipjLWkqdSxkPXMqdS1vKmMrcipsK2kqZixtPXMqYytvKnUtcipmK2kqbCxfPXMqbC1vKmYtcip1LWkqYztyZXR1cm4gbi54PXAsbi55PWQsbi56PW0sbi53PV8sbn07RXQubXVsdGlwbHlCeVNjYWxhcj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicXVhdGVybmlvbiIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLng9dC54KmUsbi55PXQueSplLG4uej10LnoqZSxuLnc9dC53KmUsbn07RXQuZGl2aWRlQnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHkudHlwZU9mLm51bWJlcigic2NhbGFyIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi54PXQueC9lLG4ueT10LnkvZSxuLno9dC56L2Usbi53PXQudy9lLG59O0V0LmNvbXB1dGVBeGlzPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49dC53O2lmKE1hdGguYWJzKG4tMSk8TS5FUFNJTE9ONnx8TWF0aC5hYnMobisxKTxNLkVQU0lMT042KXJldHVybiBlLng9MSxlLnk9ZS56PTAsZTtsZXQgbz0xL01hdGguc3FydCgxLW4qbik7cmV0dXJuIGUueD10LngqbyxlLnk9dC55Km8sZS56PXQueipvLGV9O0V0LmNvbXB1dGVBbmdsZT1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJxdWF0ZXJuaW9uIix0KSxNYXRoLmFicyh0LnctMSk8TS5FUFNJTE9ONj8wOjIqTWF0aC5hY29zKHQudyl9O2ZoPW5ldyBFdDtFdC5sZXJwPWZ1bmN0aW9uKHQsZSxuLG8pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksZmg9RXQubXVsdGlwbHlCeVNjYWxhcihlLG4sZmgpLG89RXQubXVsdGlwbHlCeVNjYWxhcih0LDEtbixvKSxFdC5hZGQoZmgsbyxvKX07ZWI9bmV3IEV0LHVoPW5ldyBFdCxsaD1uZXcgRXQ7RXQuc2xlcnA9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJzdGFydCIsdCkseS50eXBlT2Yub2JqZWN0KCJlbmQiLGUpLHkudHlwZU9mLm51bWJlcigidCIsbikseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG8pO2xldCByPUV0LmRvdCh0LGUpLGk9ZTtpZihyPDAmJihyPS1yLGk9ZWI9RXQubmVnYXRlKGUsZWIpKSwxLXI8TS5FUFNJTE9ONilyZXR1cm4gRXQubGVycCh0LGksbixvKTtsZXQgcz1NYXRoLmFjb3Mocik7cmV0dXJuIHVoPUV0Lm11bHRpcGx5QnlTY2FsYXIodCxNYXRoLnNpbigoMS1uKSpzKSx1aCksbGg9RXQubXVsdGlwbHlCeVNjYWxhcihpLE1hdGguc2luKG4qcyksbGgpLG89RXQuYWRkKHVoLGxoLG8pLEV0Lm11bHRpcGx5QnlTY2FsYXIobywxL01hdGguc2luKHMpLG8pfTtFdC5sb2c9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInF1YXRlcm5pb24iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1NLmFjb3NDbGFtcGVkKHQudyksbz0wO3JldHVybiBuIT09MCYmKG89bi9NYXRoLnNpbihuKSksYS5tdWx0aXBseUJ5U2NhbGFyKHQsbyxlKX07RXQuZXhwPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj1hLm1hZ25pdHVkZSh0KSxvPTA7cmV0dXJuIG4hPT0wJiYobz1NYXRoLnNpbihuKS9uKSxlLng9dC54Km8sZS55PXQueSpvLGUuej10LnoqbyxlLnc9TWF0aC5jb3MobiksZX07WHg9bmV3IGEsWXg9bmV3IGEsQWY9bmV3IEV0LHRhPW5ldyBFdDtFdC5jb21wdXRlSW5uZXJRdWFkcmFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgicTAiLHQpLHkudHlwZU9mLm9iamVjdCgicTEiLGUpLHkudHlwZU9mLm9iamVjdCgicTIiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKTtsZXQgcj1FdC5jb25qdWdhdGUoZSxBZik7RXQubXVsdGlwbHkocixuLHRhKTtsZXQgaT1FdC5sb2codGEsWHgpO0V0Lm11bHRpcGx5KHIsdCx0YSk7bGV0IHM9RXQubG9nKHRhLFl4KTtyZXR1cm4gYS5hZGQoaSxzLGkpLGEubXVsdGlwbHlCeVNjYWxhcihpLC4yNSxpKSxhLm5lZ2F0ZShpLGkpLEV0LmV4cChpLEFmKSxFdC5tdWx0aXBseShlLEFmLG8pfTtFdC5zcXVhZD1mdW5jdGlvbih0LGUsbixvLHIsaSl7eS50eXBlT2Yub2JqZWN0KCJxMCIsdCkseS50eXBlT2Yub2JqZWN0KCJxMSIsZSkseS50eXBlT2Yub2JqZWN0KCJzMCIsbikseS50eXBlT2Yub2JqZWN0KCJzMSIsbykseS50eXBlT2YubnVtYmVyKCJ0IixyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsaSk7bGV0IHM9RXQuc2xlcnAodCxlLHIsQWYpLGY9RXQuc2xlcnAobixvLHIsdGEpO3JldHVybiBFdC5zbGVycChzLGYsMipyKigxLXIpLGkpfTskeD1uZXcgRXQsbmI9MS45MDExMDc0NTM1MTczMDAzLFBwPVlzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLE1wPVlzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLHhpPVlzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdLFBpPVlzLnN1cHBvcnRzVHlwZWRBcnJheXMoKT9uZXcgRmxvYXQzMkFycmF5KDgpOltdO2ZvcihsZXQgdD0wO3Q8NzsrK3Qpe2xldCBlPXQrMSxuPTIqZSsxO1BwW3RdPTEvKGUqbiksTXBbdF09ZS9ufVBwWzddPW5iLyg4KjE3KTtNcFs3XT1uYio4LzE3O0V0LmZhc3RTbGVycD1mdW5jdGlvbih0LGUsbixvKXt5LnR5cGVPZi5vYmplY3QoInN0YXJ0Iix0KSx5LnR5cGVPZi5vYmplY3QoImVuZCIsZSkseS50eXBlT2YubnVtYmVyKCJ0IixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyk7bGV0IHI9RXQuZG90KHQsZSksaTtyPj0wP2k9MTooaT0tMSxyPS1yKTtsZXQgcz1yLTEsZj0xLW4sdT1uKm4sYz1mKmY7Zm9yKGxldCBtPTc7bT49MDstLW0peGlbbV09KFBwW21dKnUtTXBbbV0pKnMsUGlbbV09KFBwW21dKmMtTXBbbV0pKnM7bGV0IGw9aSpuKigxK3hpWzBdKigxK3hpWzFdKigxK3hpWzJdKigxK3hpWzNdKigxK3hpWzRdKigxK3hpWzVdKigxK3hpWzZdKigxK3hpWzddKSkpKSkpKSkscD1mKigxK1BpWzBdKigxK1BpWzFdKigxK1BpWzJdKigxK1BpWzNdKigxK1BpWzRdKigxK1BpWzVdKigxK1BpWzZdKigxK1BpWzddKSkpKSkpKSksZD1FdC5tdWx0aXBseUJ5U2NhbGFyKHQscCwkeCk7cmV0dXJuIEV0Lm11bHRpcGx5QnlTY2FsYXIoZSxsLG8pLEV0LmFkZChkLG8sbyl9O0V0LmZhc3RTcXVhZD1mdW5jdGlvbih0LGUsbixvLHIsaSl7eS50eXBlT2Yub2JqZWN0KCJxMCIsdCkseS50eXBlT2Yub2JqZWN0KCJxMSIsZSkseS50eXBlT2Yub2JqZWN0KCJzMCIsbikseS50eXBlT2Yub2JqZWN0KCJzMSIsbykseS50eXBlT2YubnVtYmVyKCJ0IixyKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsaSk7bGV0IHM9RXQuZmFzdFNsZXJwKHQsZSxyLEFmKSxmPUV0LmZhc3RTbGVycChuLG8scix0YSk7cmV0dXJuIEV0LmZhc3RTbGVycChzLGYsMipyKigxLXIpLGkpfTtFdC5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQueD09PWUueCYmdC55PT09ZS55JiZ0Lno9PT1lLnomJnQudz09PWUud307RXQuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIG49eChuLDApLHQ9PT1lfHxoKHQpJiZoKGUpJiZNYXRoLmFicyh0LngtZS54KTw9biYmTWF0aC5hYnModC55LWUueSk8PW4mJk1hdGguYWJzKHQuei1lLnopPD1uJiZNYXRoLmFicyh0LnctZS53KTw9bn07RXQuWkVSTz1PYmplY3QuZnJlZXplKG5ldyBFdCgwLDAsMCwwKSk7RXQuSURFTlRJVFk9T2JqZWN0LmZyZWV6ZShuZXcgRXQoMCwwLDAsMSkpO0V0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gRXQuY2xvbmUodGhpcyx0KX07RXQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gRXQuZXF1YWxzKHRoaXMsdCl9O0V0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIEV0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtFdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpcy54fSwgJHt0aGlzLnl9LCAke3RoaXMuen0sICR7dGhpcy53fSlgfTtlZT1FdH0pO3ZhciBSZSxwaCxlYSxkaCxXbyxycyxpcyxzcyxaeCxReCxKeCx0MyxlMyxuMyxvMyxvYixyMyxpMyxzMyxjMyxhMyxmMyx1MyxsMyxwMyxkMyxOcCxfaCxtMyxoMyxfMyxJcCx5MyxnMyxBMyxiMyxtaCxoaCx3MyxUMyxPMyxFMyxyYixpYix5aCxSMyxTMyxnaCxzYixYbyxjcz1aKCgpPT57VWUoKTtGdCgpO2hyKCk7SWUoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO0lBKCk7SW0oKTtadCgpO3ZBKCk7a0EoKTtZbSgpO3RwKCk7V3QoKTtCbigpO1VuKCk7S28oKTtYbCgpO1JlPXt9LHBoPXt1cDp7c291dGg6ImVhc3QiLG5vcnRoOiJ3ZXN0Iix3ZXN0OiJzb3V0aCIsZWFzdDoibm9ydGgifSxkb3duOntzb3V0aDoid2VzdCIsbm9ydGg6ImVhc3QiLHdlc3Q6Im5vcnRoIixlYXN0OiJzb3V0aCJ9LHNvdXRoOnt1cDoid2VzdCIsZG93bjoiZWFzdCIsd2VzdDoiZG93biIsZWFzdDoidXAifSxub3J0aDp7dXA6ImVhc3QiLGRvd246Indlc3QiLHdlc3Q6InVwIixlYXN0OiJkb3duIn0sd2VzdDp7dXA6Im5vcnRoIixkb3duOiJzb3V0aCIsbm9ydGg6ImRvd24iLHNvdXRoOiJ1cCJ9LGVhc3Q6e3VwOiJzb3V0aCIsZG93bjoibm9ydGgiLG5vcnRoOiJ1cCIsc291dGg6ImRvd24ifX0sZWE9e25vcnRoOlstMSwwLDBdLGVhc3Q6WzAsMSwwXSx1cDpbMCwwLDFdLHNvdXRoOlsxLDAsMF0sd2VzdDpbMCwtMSwwXSxkb3duOlswLDAsLTFdfSxkaD17fSxXbz17ZWFzdDpuZXcgYSxub3J0aDpuZXcgYSx1cDpuZXcgYSx3ZXN0Om5ldyBhLHNvdXRoOm5ldyBhLGRvd246bmV3IGF9LHJzPW5ldyBhLGlzPW5ldyBhLHNzPW5ldyBhO1JlLmxvY2FsRnJhbWVUb0ZpeGVkRnJhbWVHZW5lcmF0b3I9ZnVuY3Rpb24odCxlKXtpZighcGguaGFzT3duUHJvcGVydHkodCl8fCFwaFt0XS5oYXNPd25Qcm9wZXJ0eShlKSl0aHJvdyBuZXcgRigiZmlyc3RBeGlzIGFuZCBzZWNvbmRBeGlzIG11c3QgYmUgZWFzdCwgbm9ydGgsIHVwLCB3ZXN0LCBzb3V0aCBvciBkb3duLiIpO2xldCBuPXBoW3RdW2VdLG8scj10K2U7cmV0dXJuIGgoZGhbcl0pP289ZGhbcl06KG89ZnVuY3Rpb24oaSxzLGYpe2lmKCFoKGkpKXRocm93IG5ldyBGKCJvcmlnaW4gaXMgcmVxdWlyZWQuIik7aWYoaXNOYU4oaS54KXx8aXNOYU4oaS55KXx8aXNOYU4oaS56KSl0aHJvdyBuZXcgRigib3JpZ2luIGhhcyBhIE5hTiBjb21wb25lbnQiKTtpZihoKGYpfHwoZj1uZXcgc3QpLGEuZXF1YWxzRXBzaWxvbihpLGEuWkVSTyxNLkVQU0lMT04xNCkpYS51bnBhY2soZWFbdF0sMCxycyksYS51bnBhY2soZWFbZV0sMCxpcyksYS51bnBhY2soZWFbbl0sMCxzcyk7ZWxzZSBpZihNLmVxdWFsc0Vwc2lsb24oaS54LDAsTS5FUFNJTE9OMTQpJiZNLmVxdWFsc0Vwc2lsb24oaS55LDAsTS5FUFNJTE9OMTQpKXtsZXQgdT1NLnNpZ24oaS56KTthLnVucGFjayhlYVt0XSwwLHJzKSx0IT09ImVhc3QiJiZ0IT09Indlc3QiJiZhLm11bHRpcGx5QnlTY2FsYXIocnMsdSxycyksYS51bnBhY2soZWFbZV0sMCxpcyksZSE9PSJlYXN0IiYmZSE9PSJ3ZXN0IiYmYS5tdWx0aXBseUJ5U2NhbGFyKGlzLHUsaXMpLGEudW5wYWNrKGVhW25dLDAsc3MpLG4hPT0iZWFzdCImJm4hPT0id2VzdCImJmEubXVsdGlwbHlCeVNjYWxhcihzcyx1LHNzKX1lbHNle3M9eChzLCQuZGVmYXVsdCkscy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoaSxXby51cCk7bGV0IHU9V28udXAsYz1Xby5lYXN0O2MueD0taS55LGMueT1pLngsYy56PTAsYS5ub3JtYWxpemUoYyxXby5lYXN0KSxhLmNyb3NzKHUsYyxXby5ub3J0aCksYS5tdWx0aXBseUJ5U2NhbGFyKFdvLnVwLC0xLFdvLmRvd24pLGEubXVsdGlwbHlCeVNjYWxhcihXby5lYXN0LC0xLFdvLndlc3QpLGEubXVsdGlwbHlCeVNjYWxhcihXby5ub3J0aCwtMSxXby5zb3V0aCkscnM9V29bdF0saXM9V29bZV0sc3M9V29bbl19cmV0dXJuIGZbMF09cnMueCxmWzFdPXJzLnksZlsyXT1ycy56LGZbM109MCxmWzRdPWlzLngsZls1XT1pcy55LGZbNl09aXMueixmWzddPTAsZls4XT1zcy54LGZbOV09c3MueSxmWzEwXT1zcy56LGZbMTFdPTAsZlsxMl09aS54LGZbMTNdPWkueSxmWzE0XT1pLnosZlsxNV09MSxmfSxkaFtyXT1vKSxvfTtSZS5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZT1SZS5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJlYXN0Iiwibm9ydGgiKTtSZS5ub3J0aEVhc3REb3duVG9GaXhlZEZyYW1lPVJlLmxvY2FsRnJhbWVUb0ZpeGVkRnJhbWVHZW5lcmF0b3IoIm5vcnRoIiwiZWFzdCIpO1JlLm5vcnRoVXBFYXN0VG9GaXhlZEZyYW1lPVJlLmxvY2FsRnJhbWVUb0ZpeGVkRnJhbWVHZW5lcmF0b3IoIm5vcnRoIiwidXAiKTtSZS5ub3J0aFdlc3RVcFRvRml4ZWRGcmFtZT1SZS5sb2NhbEZyYW1lVG9GaXhlZEZyYW1lR2VuZXJhdG9yKCJub3J0aCIsIndlc3QiKTtaeD1uZXcgZWUsUXg9bmV3IGEoMSwxLDEpLEp4PW5ldyBzdDtSZS5oZWFkaW5nUGl0Y2hSb2xsVG9GaXhlZEZyYW1lPWZ1bmN0aW9uKHQsZSxuLG8scil7eS50eXBlT2Yub2JqZWN0KCJIZWFkaW5nUGl0Y2hSb2xsIixlKSxvPXgobyxSZS5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZSk7bGV0IGk9ZWUuZnJvbUhlYWRpbmdQaXRjaFJvbGwoZSxaeCkscz1zdC5mcm9tVHJhbnNsYXRpb25RdWF0ZXJuaW9uUm90YXRpb25TY2FsZShhLlpFUk8saSxReCxKeCk7cmV0dXJuIHI9byh0LG4sciksc3QubXVsdGlwbHkocixzLHIpfTt0Mz1uZXcgc3QsZTM9bmV3IFE7UmUuaGVhZGluZ1BpdGNoUm9sbFF1YXRlcm5pb249ZnVuY3Rpb24odCxlLG4sbyxyKXt5LnR5cGVPZi5vYmplY3QoIkhlYWRpbmdQaXRjaFJvbGwiLGUpO2xldCBpPVJlLmhlYWRpbmdQaXRjaFJvbGxUb0ZpeGVkRnJhbWUodCxlLG4sbyx0Mykscz1zdC5nZXRNYXRyaXgzKGksZTMpO3JldHVybiBlZS5mcm9tUm90YXRpb25NYXRyaXgocyxyKX07bjM9bmV3IGEoMSwxLDEpLG8zPW5ldyBhLG9iPW5ldyBzdCxyMz1uZXcgc3QsaTM9bmV3IFEsczM9bmV3IGVlO1JlLmZpeGVkRnJhbWVUb0hlYWRpbmdQaXRjaFJvbGw9ZnVuY3Rpb24odCxlLG4sbyl7eS5kZWZpbmVkKCJ0cmFuc2Zvcm0iLHQpLGU9eChlLCQuZGVmYXVsdCksbj14KG4sUmUuZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUpLGgobyl8fChvPW5ldyBtcCk7bGV0IHI9c3QuZ2V0VHJhbnNsYXRpb24odCxvMyk7aWYoYS5lcXVhbHMocixhLlpFUk8pKXJldHVybiBvLmhlYWRpbmc9MCxvLnBpdGNoPTAsby5yb2xsPTAsbztsZXQgaT1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24obihyLGUsb2IpLG9iKSxzPXN0LnNldFNjYWxlKHQsbjMscjMpO3M9c3Quc2V0VHJhbnNsYXRpb24ocyxhLlpFUk8scyksaT1zdC5tdWx0aXBseShpLHMsaSk7bGV0IGY9ZWUuZnJvbVJvdGF0aW9uTWF0cml4KHN0LmdldE1hdHJpeDMoaSxpMyksczMpO3JldHVybiBmPWVlLm5vcm1hbGl6ZShmLGYpLG1wLmZyb21RdWF0ZXJuaW9uKGYsbyl9O2MzPTYqMzYwMCs0MSo2MCs1MC41NDg0MSxhMz04NjQwMTg0ODEyODY2ZS02LGYzPS4wOTMxMDQsdTM9LTYyZS03LGwzPTExNzcyNzU4Mzg0NjY4ZS0zMixwMz03MjkyMTE1ODU1M2UtMTUsZDM9TS5UV09fUEkvODY0MDAsTnA9bmV3IGtuO1JlLmNvbXB1dGVJY3JmVG9DZW50cmFsQm9keUZpeGVkTWF0cml4PWZ1bmN0aW9uKHQsZSl7bGV0IG49UmUuY29tcHV0ZUljcmZUb0ZpeGVkTWF0cml4KHQsZSk7cmV0dXJuIGgobil8fChuPVJlLmNvbXB1dGVUZW1lVG9Qc2V1ZG9GaXhlZE1hdHJpeCh0LGUpKSxufTtSZS5jb21wdXRlVGVtZVRvUHNldWRvRml4ZWRNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiZGF0ZSBpcyByZXF1aXJlZC4iKTtOcD1rbi5hZGRTZWNvbmRzKHQsLWtuLmNvbXB1dGVUYWlNaW51c1V0Yyh0KSxOcCk7bGV0IG49TnAuZGF5TnVtYmVyLG89TnAuc2Vjb25kc09mRGF5LHIsaT1uLTI0NTE1NDU7bz49NDMyMDA/cj0oaSsuNSkveW4uREFZU19QRVJfSlVMSUFOX0NFTlRVUlk6cj0oaS0uNSkveW4uREFZU19QRVJfSlVMSUFOX0NFTlRVUlk7bGV0IGY9KGMzK3IqKGEzK3IqKGYzK3IqdTMpKSkqZDMlTS5UV09fUEksdT1wMytsMyoobi0yNDUxNTQ1NWUtMSksYz0obyt5bi5TRUNPTkRTX1BFUl9EQVkqLjUpJXluLlNFQ09ORFNfUEVSX0RBWSxsPWYrdSpjLHA9TWF0aC5jb3MobCksZD1NYXRoLnNpbihsKTtyZXR1cm4gaChlKT8oZVswXT1wLGVbMV09LWQsZVsyXT0wLGVbM109ZCxlWzRdPXAsZVs1XT0wLGVbNl09MCxlWzddPTAsZVs4XT0xLGUpOm5ldyBRKHAsZCwwLC1kLHAsMCwwLDAsMSl9O1JlLmlhdTIwMDZYeXNEYXRhPW5ldyBWQTtSZS5lYXJ0aE9yaWVudGF0aW9uUGFyYW1ldGVycz1OQS5OT05FO19oPTMyLjE4NCxtMz0yNDUxNTQ1O1JlLnByZWxvYWRJY3JmRml4ZWQ9ZnVuY3Rpb24odCl7bGV0IGU9dC5zdGFydC5kYXlOdW1iZXIsbj10LnN0YXJ0LnNlY29uZHNPZkRheStfaCxvPXQuc3RvcC5kYXlOdW1iZXIscj10LnN0b3Auc2Vjb25kc09mRGF5K19oO3JldHVybiBSZS5pYXUyMDA2WHlzRGF0YS5wcmVsb2FkKGUsbixvLHIpfTtSZS5jb21wdXRlSWNyZlRvRml4ZWRNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiZGF0ZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgUSk7bGV0IG49UmUuY29tcHV0ZUZpeGVkVG9JY3JmTWF0cml4KHQsZSk7aWYoaChuKSlyZXR1cm4gUS50cmFuc3Bvc2UobixlKX07aDM9MzIuMTg0LF8zPTI0NTE1NDUsSXA9bmV3IG1wLHkzPW5ldyBRLGczPW5ldyBrbjtSZS5jb21wdXRlTW9vbkZpeGVkVG9JY3JmTWF0cml4PWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImRhdGUgaXMgcmVxdWlyZWQuIik7aChlKXx8KGU9bmV3IFEpO2xldCBuPWtuLmFkZFNlY29uZHModCxoMyxnMyksbz1rbi50b3RhbERheXMobiktXzMscj1NLnRvUmFkaWFucygxMi4xMTIpLU0udG9SYWRpYW5zKC4wNTI5OTIpKm8saT1NLnRvUmFkaWFucygyNC4yMjQpLU0udG9SYWRpYW5zKC4xMDU5ODQpKm8scz1NLnRvUmFkaWFucygyMjcuNjQ1KStNLnRvUmFkaWFucygxMy4wMTIpKm8sZj1NLnRvUmFkaWFucygyNjEuMTA1KStNLnRvUmFkaWFucygxMy4zNDA3MTYpKm8sdT1NLnRvUmFkaWFucygzNTgpK00udG9SYWRpYW5zKC45ODU2KSpvO3JldHVybiBJcC5waXRjaD1NLnRvUmFkaWFucygxODApLU0udG9SYWRpYW5zKDMuODc4KSpNYXRoLnNpbihyKS1NLnRvUmFkaWFucyguMTIpKk1hdGguc2luKGkpK00udG9SYWRpYW5zKC4wNykqTWF0aC5zaW4ocyktTS50b1JhZGlhbnMoLjAxNykqTWF0aC5zaW4oZiksSXAucm9sbD1NLnRvUmFkaWFucyg2Ni41My05MCkrTS50b1JhZGlhbnMoMS41NDMpKk1hdGguY29zKHIpK00udG9SYWRpYW5zKC4yNCkqTWF0aC5jb3MoaSktTS50b1JhZGlhbnMoLjAyOCkqTWF0aC5jb3MocykrTS50b1JhZGlhbnMoLjAwNykqTWF0aC5jb3MoZiksSXAuaGVhZGluZz1NLnRvUmFkaWFucygyNDQuMzc1LTkwKStNLnRvUmFkaWFucygxMy4xNzYzNTgzMSkqbytNLnRvUmFkaWFucygzLjU1OCkqTWF0aC5zaW4ocikrTS50b1JhZGlhbnMoLjEyMSkqTWF0aC5zaW4oaSktTS50b1JhZGlhbnMoLjA2NCkqTWF0aC5zaW4ocykrTS50b1JhZGlhbnMoLjAxNikqTWF0aC5zaW4oZikrTS50b1JhZGlhbnMoLjAyNSkqTWF0aC5zaW4odSksUS5mcm9tSGVhZGluZ1BpdGNoUm9sbChJcCx5Myl9O1JlLmNvbXB1dGVJY3JmVG9Nb29uRml4ZWRNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiZGF0ZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgUSk7bGV0IG49UmUuY29tcHV0ZU1vb25GaXhlZFRvSWNyZk1hdHJpeCh0LGUpO2lmKGgobikpcmV0dXJuIFEudHJhbnNwb3NlKG4sZSl9O0EzPW5ldyBncCgwLDAsMCksYjM9bmV3IGFmKDAsMCwwLDAsMCwwKSxtaD1uZXcgUSxoaD1uZXcgUTtSZS5jb21wdXRlRml4ZWRUb0ljcmZNYXRyaXg9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiZGF0ZSBpcyByZXF1aXJlZC4iKTtoKGUpfHwoZT1uZXcgUSk7bGV0IG49UmUuZWFydGhPcmllbnRhdGlvblBhcmFtZXRlcnMuY29tcHV0ZSh0LGIzKTtpZighaChuKSlyZXR1cm47bGV0IG89dC5kYXlOdW1iZXIscj10LnNlY29uZHNPZkRheStfaCxpPVJlLmlhdTIwMDZYeXNEYXRhLmNvbXB1dGVYeXNSYWRpYW5zKG8scixBMyk7aWYoIWgoaSkpcmV0dXJuO2xldCBzPWkueCtuLnhQb2xlT2Zmc2V0LGY9aS55K24ueVBvbGVPZmZzZXQsdT0xLygxK01hdGguc3FydCgxLXMqcy1mKmYpKSxjPW1oO2NbMF09MS11KnMqcyxjWzNdPS11KnMqZixjWzZdPXMsY1sxXT0tdSpzKmYsY1s0XT0xLXUqZipmLGNbN109ZixjWzJdPS1zLGNbNV09LWYsY1s4XT0xLXUqKHMqcytmKmYpO2xldCBsPVEuZnJvbVJvdGF0aW9uWigtaS5zLGhoKSxwPVEubXVsdGlwbHkoYyxsLG1oKSxkPXQuZGF5TnVtYmVyLG09dC5zZWNvbmRzT2ZEYXkta24uY29tcHV0ZVRhaU1pbnVzVXRjKHQpK24udXQxTWludXNVdGMsXz1kLTI0NTE1NDUsZz1tL3luLlNFQ09ORFNfUEVSX0RBWSxiPS43NzkwNTcyNzMyNjQrZysuMDAyNzM3ODExOTExMzU0NDgqKF8rZyk7Yj1iJTEqTS5UV09fUEk7bGV0IHc9US5mcm9tUm90YXRpb25aKGIsaGgpLE89US5tdWx0aXBseShwLHcsbWgpLEU9TWF0aC5jb3Mobi54UG9sZVdhbmRlciksVD1NYXRoLmNvcyhuLnlQb2xlV2FuZGVyKSxDPU1hdGguc2luKG4ueFBvbGVXYW5kZXIpLE49TWF0aC5zaW4obi55UG9sZVdhbmRlciksST1vLW0zK3IveW4uU0VDT05EU19QRVJfREFZO0kvPTM2NTI1O2xldCBEPS00N2UtNipJKk0uUkFESUFOU19QRVJfREVHUkVFLzM2MDAsdj1NYXRoLmNvcyhEKSxMPU1hdGguc2luKEQpLFU9aGg7cmV0dXJuIFVbMF09RSp2LFVbMV09RSpMLFVbMl09QyxVWzNdPS1UKkwrTipDKnYsVVs0XT1UKnYrTipDKkwsVVs1XT0tTipFLFVbNl09LU4qTC1UKkMqdixVWzddPU4qdi1UKkMqTCxVWzhdPVQqRSxRLm11bHRpcGx5KE8sVSxlKX07dzM9bmV3IGhlO1JlLnBvaW50VG9XaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbih0LGUsbixvKXtyZXR1cm4gbz1SZS5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcyh0LGUsbixvKSxvLnk9MiplWzVdLW8ueSxvfTtSZS5wb2ludFRvR0xXaW5kb3dDb29yZGluYXRlcz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgRigibW9kZWxWaWV3UHJvamVjdGlvbk1hdHJpeCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigidmlld3BvcnRUcmFuc2Zvcm1hdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigicG9pbnQgaXMgcmVxdWlyZWQuIik7aChvKXx8KG89bmV3IHR0KTtsZXQgcj13MztyZXR1cm4gc3QubXVsdGlwbHlCeVZlY3Rvcih0LGhlLmZyb21FbGVtZW50cyhuLngsbi55LG4ueiwxLHIpLHIpLGhlLm11bHRpcGx5QnlTY2FsYXIociwxL3IudyxyKSxzdC5tdWx0aXBseUJ5VmVjdG9yKGUscixyKSx0dC5mcm9tQ2FydGVzaWFuNChyLG8pfTtUMz1uZXcgYSxPMz1uZXcgYSxFMz1uZXcgYTtSZS5yb3RhdGlvbk1hdHJpeEZyb21Qb3NpdGlvblZlbG9jaXR5PWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigidmVsb2NpdHkgaXMgcmVxdWlyZWQuIik7bGV0IHI9eChuLCQuZGVmYXVsdCkuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHQsVDMpLGk9YS5jcm9zcyhlLHIsTzMpO2EuZXF1YWxzRXBzaWxvbihpLGEuWkVSTyxNLkVQU0lMT042KSYmKGk9YS5jbG9uZShhLlVOSVRfWCxpKSk7bGV0IHM9YS5jcm9zcyhpLGUsRTMpO3JldHVybiBhLm5vcm1hbGl6ZShzLHMpLGEuY3Jvc3MoZSxzLGkpLGEubmVnYXRlKGksaSksYS5ub3JtYWxpemUoaSxpKSxoKG8pfHwobz1uZXcgUSksb1swXT1lLngsb1sxXT1lLnksb1syXT1lLnosb1szXT1pLngsb1s0XT1pLnksb1s1XT1pLnosb1s2XT1zLngsb1s3XT1zLnksb1s4XT1zLnosb307cmI9bmV3IHN0KDAsMCwxLDAsMSwwLDAsMCwwLDEsMCwwLDAsMCwwLDEpLGliPW5ldyBjdCx5aD1uZXcgYSxSMz1uZXcgYSxTMz1uZXcgUSxnaD1uZXcgc3Qsc2I9bmV3IHN0O1JlLmJhc2lzVG8yRD1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInByb2plY3Rpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoIm1hdHJpeCBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigicmVzdWx0IGlzIHJlcXVpcmVkLiIpO2xldCBvPXN0LmdldFRyYW5zbGF0aW9uKGUsUjMpLHI9dC5lbGxpcHNvaWQsaTtpZihhLmVxdWFscyhvLGEuWkVSTykpaT1hLmNsb25lKGEuWkVSTyx5aCk7ZWxzZXtsZXQgbD1yLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8saWIpO2k9dC5wcm9qZWN0KGwseWgpLGEuZnJvbUVsZW1lbnRzKGkueixpLngsaS55LGkpfWxldCBzPVJlLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKG8scixnaCksZj1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24ocyxzYiksdT1zdC5nZXRNYXRyaXgzKGUsUzMpLGM9c3QubXVsdGlwbHlCeU1hdHJpeDMoZix1LG4pO3JldHVybiBzdC5tdWx0aXBseShyYixjLG4pLHN0LnNldFRyYW5zbGF0aW9uKG4saSxuKSxufTtSZS5lbGxpcHNvaWRUbzJETW9kZWxNYXRyaXg9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJwcm9qZWN0aW9uIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJjZW50ZXIgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoInJlc3VsdCBpcyByZXF1aXJlZC4iKTtsZXQgbz10LmVsbGlwc29pZCxyPVJlLmVhc3ROb3J0aFVwVG9GaXhlZEZyYW1lKGUsbyxnaCksaT1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24ocixzYikscz1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsaWIpLGY9dC5wcm9qZWN0KHMseWgpO2EuZnJvbUVsZW1lbnRzKGYueixmLngsZi55LGYpO2xldCB1PXN0LmZyb21UcmFuc2xhdGlvbihmLGdoKTtyZXR1cm4gc3QubXVsdGlwbHkocmIsaSxuKSxzdC5tdWx0aXBseSh1LG4sbiksbn07WG89UmV9KTtmdW5jdGlvbiBiZih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJpZGVudGlmaWVyIGlzIHJlcXVpcmVkLiIpO2goY2JbdF0pfHwoY2JbdF09ITAsY29uc29sZS53YXJuKHgoZSx0KSkpfXZhciBjYixuYSx2cD1aKCgpPT57SXQoKTtmdCgpO0h0KCk7Y2I9e307YmYuZ2VvbWV0cnlPdXRsaW5lcz0iRW50aXR5IGdlb21ldHJ5IG91dGxpbmVzIGFyZSB1bnN1cHBvcnRlZCBvbiB0ZXJyYWluLiBPdXRsaW5lcyB3aWxsIGJlIGRpc2FibGVkLiBUbyBlbmFibGUgb3V0bGluZXMsIGRpc2FibGUgZ2VvbWV0cnkgdGVycmFpbiBjbGFtcGluZyBieSBleHBsaWNpdGx5IHNldHRpbmcgaGVpZ2h0IHRvIDAuIjtiZi5nZW9tZXRyeVpJbmRleD0iRW50aXR5IGdlb21ldHJ5IHdpdGggekluZGV4IGFyZSB1bnN1cHBvcnRlZCB3aGVuIGhlaWdodCBvciBleHRydWRlZEhlaWdodCBhcmUgZGVmaW5lZC4gIHpJbmRleCB3aWxsIGJlIGlnbm9yZWQiO2JmLmdlb21ldHJ5SGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggaGVpZ2h0UmVmZXJlbmNlIG11c3QgYWxzbyBoYXZlIGEgZGVmaW5lZCBoZWlnaHQuICBoZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtiZi5nZW9tZXRyeUV4dHJ1ZGVkSGVpZ2h0UmVmZXJlbmNlPSJFbnRpdHkgY29ycmlkb3IsIGVsbGlwc2UsIHBvbHlnb24gb3IgcmVjdGFuZ2xlIHdpdGggZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2UgbXVzdCBhbHNvIGhhdmUgYSBkZWZpbmVkIGV4dHJ1ZGVkSGVpZ2h0LiAgZXh0cnVkZWRIZWlnaHRSZWZlcmVuY2Ugd2lsbCBiZSBpZ25vcmVkIjtuYT1iZn0pO2Z1bmN0aW9uIEMzKHQsZSl7aWYoIWgodCl8fCFoKGUpKXRocm93IG5ldyBGKCJpZGVudGlmaWVyIGFuZCBtZXNzYWdlIGFyZSByZXF1aXJlZC4iKTtuYSh0LGUpfXZhciBhYixmYj1aKCgpPT57ZnQoKTtIdCgpO3ZwKCk7YWI9QzN9KTtmdW5jdGlvbiBzZSh0LGUsbixvKXt0aGlzLndlc3Q9eCh0LDApLHRoaXMuc291dGg9eChlLDApLHRoaXMuZWFzdD14KG4sMCksdGhpcy5ub3J0aD14KG8sMCl9dmFyIHgzLFAzLE0zLE4zLEkzLEFoLHYzLE50LFRuPVooKCk9PntGdCgpO0llKCk7WHQoKTtJdCgpO2Z0KCk7WnQoKTtXdCgpO2NzKCk7VW4oKTtmYigpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHNlLnByb3RvdHlwZSx7d2lkdGg6e2dldDpmdW5jdGlvbigpe3JldHVybiBzZS5jb21wdXRlV2lkdGgodGhpcyl9fSxoZWlnaHQ6e2dldDpmdW5jdGlvbigpe3JldHVybiBzZS5jb21wdXRlSGVpZ2h0KHRoaXMpfX19KTtzZS5wYWNrZWRMZW5ndGg9NDtzZS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQud2VzdCxlW24rK109dC5zb3V0aCxlW24rK109dC5lYXN0LGVbbl09dC5ub3J0aCxlfTtzZS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKSxoKG4pfHwobj1uZXcgc2UpLG4ud2VzdD10W2UrK10sbi5zb3V0aD10W2UrK10sbi5lYXN0PXRbZSsrXSxuLm5vcnRoPXRbZV0sbn07c2UuY29tcHV0ZVdpZHRoPWZ1bmN0aW9uKHQpe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KTtsZXQgZT10LmVhc3Qsbj10Lndlc3Q7cmV0dXJuIGU8biYmKGUrPU0uVFdPX1BJKSxlLW59O3NlLmNvbXB1dGVIZWlnaHQ9ZnVuY3Rpb24odCl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx0Lm5vcnRoLXQuc291dGh9O3NlLmZyb21EZWdyZWVzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIHQ9TS50b1JhZGlhbnMoeCh0LDApKSxlPU0udG9SYWRpYW5zKHgoZSwwKSksbj1NLnRvUmFkaWFucyh4KG4sMCkpLG89TS50b1JhZGlhbnMoeChvLDApKSxoKHIpPyhyLndlc3Q9dCxyLnNvdXRoPWUsci5lYXN0PW4sci5ub3J0aD1vLHIpOm5ldyBzZSh0LGUsbixvKX07c2UuZnJvbVJhZGlhbnM9ZnVuY3Rpb24odCxlLG4sbyxyKXtyZXR1cm4gaChyKT8oci53ZXN0PXgodCwwKSxyLnNvdXRoPXgoZSwwKSxyLmVhc3Q9eChuLDApLHIubm9ydGg9eChvLDApLHIpOm5ldyBzZSh0LGUsbixvKX07c2UuZnJvbUNhcnRvZ3JhcGhpY0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJjYXJ0b2dyYXBoaWNzIix0KTtsZXQgbj1OdW1iZXIuTUFYX1ZBTFVFLG89LU51bWJlci5NQVhfVkFMVUUscj1OdW1iZXIuTUFYX1ZBTFVFLGk9LU51bWJlci5NQVhfVkFMVUUscz1OdW1iZXIuTUFYX1ZBTFVFLGY9LU51bWJlci5NQVhfVkFMVUU7Zm9yKGxldCB1PTAsYz10Lmxlbmd0aDt1PGM7dSsrKXtsZXQgbD10W3VdO249TWF0aC5taW4obixsLmxvbmdpdHVkZSksbz1NYXRoLm1heChvLGwubG9uZ2l0dWRlKSxzPU1hdGgubWluKHMsbC5sYXRpdHVkZSksZj1NYXRoLm1heChmLGwubGF0aXR1ZGUpO2xldCBwPWwubG9uZ2l0dWRlPj0wP2wubG9uZ2l0dWRlOmwubG9uZ2l0dWRlK00uVFdPX1BJO3I9TWF0aC5taW4ocixwKSxpPU1hdGgubWF4KGkscCl9cmV0dXJuIG8tbj5pLXImJihuPXIsbz1pLG8+TS5QSSYmKG89by1NLlRXT19QSSksbj5NLlBJJiYobj1uLU0uVFdPX1BJKSksaChlKT8oZS53ZXN0PW4sZS5zb3V0aD1zLGUuZWFzdD1vLGUubm9ydGg9ZixlKTpuZXcgc2UobixzLG8sZil9O3NlLmZyb21DYXJ0ZXNpYW5BcnJheT1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJjYXJ0ZXNpYW5zIix0KSxlPXgoZSwkLmRlZmF1bHQpO2xldCBvPU51bWJlci5NQVhfVkFMVUUscj0tTnVtYmVyLk1BWF9WQUxVRSxpPU51bWJlci5NQVhfVkFMVUUscz0tTnVtYmVyLk1BWF9WQUxVRSxmPU51bWJlci5NQVhfVkFMVUUsdT0tTnVtYmVyLk1BWF9WQUxVRTtmb3IobGV0IGM9MCxsPXQubGVuZ3RoO2M8bDtjKyspe2xldCBwPWUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModFtjXSk7bz1NYXRoLm1pbihvLHAubG9uZ2l0dWRlKSxyPU1hdGgubWF4KHIscC5sb25naXR1ZGUpLGY9TWF0aC5taW4oZixwLmxhdGl0dWRlKSx1PU1hdGgubWF4KHUscC5sYXRpdHVkZSk7bGV0IGQ9cC5sb25naXR1ZGU+PTA/cC5sb25naXR1ZGU6cC5sb25naXR1ZGUrTS5UV09fUEk7aT1NYXRoLm1pbihpLGQpLHM9TWF0aC5tYXgocyxkKX1yZXR1cm4gci1vPnMtaSYmKG89aSxyPXMscj5NLlBJJiYocj1yLU0uVFdPX1BJKSxvPk0uUEkmJihvPW8tTS5UV09fUEkpKSxoKG4pPyhuLndlc3Q9byxuLnNvdXRoPWYsbi5lYXN0PXIsbi5ub3J0aD11LG4pOm5ldyBzZShvLGYscix1KX07eDM9bmV3IGEsUDM9bmV3IGEsTTM9bmV3IGEsTjM9bmV3IGEsSTM9bmV3IGEsQWg9bmV3IEFycmF5KDUpO2ZvcihsZXQgdD0wO3Q8QWgubGVuZ3RoOysrdClBaFt0XT1uZXcgYTtzZS5mcm9tQm91bmRpbmdTcGhlcmU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgiYm91bmRpbmdTcGhlcmUiLHQpO2xldCBvPXQuY2VudGVyLHI9dC5yYWRpdXM7aWYoaChlKXx8KGU9JC5kZWZhdWx0KSxoKG4pfHwobj1uZXcgc2UpLGEuZXF1YWxzKG8sYS5aRVJPKSlyZXR1cm4gc2UuY2xvbmUoc2UuTUFYX1ZBTFVFLG4pLG47bGV0IGk9WG8uZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUobyxlLHgzKSxzPXN0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKGksYS5VTklUX1gsUDMpO2Eubm9ybWFsaXplKHMscyk7bGV0IGY9c3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IoaSxhLlVOSVRfWSxNMyk7YS5ub3JtYWxpemUoZixmKSxhLm11bHRpcGx5QnlTY2FsYXIoZixyLGYpLGEubXVsdGlwbHlCeVNjYWxhcihzLHIscyk7bGV0IHU9YS5uZWdhdGUoZixJMyksYz1hLm5lZ2F0ZShzLE4zKSxsPUFoLHA9bFswXTtyZXR1cm4gYS5hZGQobyxmLHApLHA9bFsxXSxhLmFkZChvLGMscCkscD1sWzJdLGEuYWRkKG8sdSxwKSxwPWxbM10sYS5hZGQobyxzLHApLGxbNF09byxzZS5mcm9tQ2FydGVzaWFuQXJyYXkobCxlLG4pfTtzZS5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUud2VzdD10Lndlc3QsZS5zb3V0aD10LnNvdXRoLGUuZWFzdD10LmVhc3QsZS5ub3J0aD10Lm5vcnRoLGUpOm5ldyBzZSh0Lndlc3QsdC5zb3V0aCx0LmVhc3QsdC5ub3J0aCl9O3NlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPXgobiwwKSx0PT09ZXx8aCh0KSYmaChlKSYmTWF0aC5hYnModC53ZXN0LWUud2VzdCk8PW4mJk1hdGguYWJzKHQuc291dGgtZS5zb3V0aCk8PW4mJk1hdGguYWJzKHQuZWFzdC1lLmVhc3QpPD1uJiZNYXRoLmFicyh0Lm5vcnRoLWUubm9ydGgpPD1ufTtzZS5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIHNlLmNsb25lKHRoaXMsdCl9O3NlLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHNlLmVxdWFscyh0aGlzLHQpfTtzZS5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJnQud2VzdD09PWUud2VzdCYmdC5zb3V0aD09PWUuc291dGgmJnQuZWFzdD09PWUuZWFzdCYmdC5ub3J0aD09PWUubm9ydGh9O3NlLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHNlLmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtzZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gYWIoIlJlY3RhbmdsZS52YWxpZGF0ZSIsIlJlY3RhbmdsZS52YWxpZGF0ZSBpcyBhIG5vLW9wIGFuZCBoYXMgYmVlbiBkZXByZWNhdGVkLiBJdCB3aWxsIGJlIHJlbW92ZWQgaW4gQ2VzaXVtIDEuMTI0LiIpLHNlLl92YWxpZGF0ZSh0KX07c2UuX3ZhbGlkYXRlPWZ1bmN0aW9uKHQpe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KTtsZXQgZT10Lm5vcnRoO3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJub3J0aCIsZSwtTS5QSV9PVkVSX1RXTykseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm5vcnRoIixlLE0uUElfT1ZFUl9UV08pO2xldCBuPXQuc291dGg7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInNvdXRoIixuLC1NLlBJX09WRVJfVFdPKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygic291dGgiLG4sTS5QSV9PVkVSX1RXTyk7bGV0IG89dC53ZXN0O3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ3ZXN0IixvLC1NYXRoLlBJKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygid2VzdCIsbyxNYXRoLlBJKTtsZXQgcj10LmVhc3Q7eS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImVhc3QiLHIsLU1hdGguUEkpLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJlYXN0IixyLE1hdGguUEkpfTtzZS5zb3V0aHdlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQud2VzdCxlLmxhdGl0dWRlPXQuc291dGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC53ZXN0LHQuc291dGgpfTtzZS5ub3J0aHdlc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQud2VzdCxlLmxhdGl0dWRlPXQubm9ydGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC53ZXN0LHQubm9ydGgpfTtzZS5ub3J0aGVhc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQuZWFzdCxlLmxhdGl0dWRlPXQubm9ydGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC5lYXN0LHQubm9ydGgpfTtzZS5zb3V0aGVhc3Q9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGgoZSk/KGUubG9uZ2l0dWRlPXQuZWFzdCxlLmxhdGl0dWRlPXQuc291dGgsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodC5lYXN0LHQuc291dGgpfTtzZS5jZW50ZXI9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCk7bGV0IG49dC5lYXN0LG89dC53ZXN0O248byYmKG4rPU0uVFdPX1BJKTtsZXQgcj1NLm5lZ2F0aXZlUGlUb1BpKChvK24pKi41KSxpPSh0LnNvdXRoK3Qubm9ydGgpKi41O3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT1yLGUubGF0aXR1ZGU9aSxlLmhlaWdodD0wLGUpOm5ldyBjdChyLGkpfTtzZS5pbnRlcnNlY3Rpb249ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx5LnR5cGVPZi5vYmplY3QoIm90aGVyUmVjdGFuZ2xlIixlKTtsZXQgbz10LmVhc3Qscj10Lndlc3QsaT1lLmVhc3Qscz1lLndlc3Q7bzxyJiZpPjA/bys9TS5UV09fUEk6aTxzJiZvPjAmJihpKz1NLlRXT19QSSksbzxyJiZzPDA/cys9TS5UV09fUEk6aTxzJiZyPDAmJihyKz1NLlRXT19QSSk7bGV0IGY9TS5uZWdhdGl2ZVBpVG9QaShNYXRoLm1heChyLHMpKSx1PU0ubmVnYXRpdmVQaVRvUGkoTWF0aC5taW4obyxpKSk7aWYoKHQud2VzdDx0LmVhc3R8fGUud2VzdDxlLmVhc3QpJiZ1PD1mKXJldHVybjtsZXQgYz1NYXRoLm1heCh0LnNvdXRoLGUuc291dGgpLGw9TWF0aC5taW4odC5ub3J0aCxlLm5vcnRoKTtpZighKGM+PWwpKXJldHVybiBoKG4pPyhuLndlc3Q9ZixuLnNvdXRoPWMsbi5lYXN0PXUsbi5ub3J0aD1sLG4pOm5ldyBzZShmLGMsdSxsKX07c2Uuc2ltcGxlSW50ZXJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCkseS50eXBlT2Yub2JqZWN0KCJvdGhlclJlY3RhbmdsZSIsZSk7bGV0IG89TWF0aC5tYXgodC53ZXN0LGUud2VzdCkscj1NYXRoLm1heCh0LnNvdXRoLGUuc291dGgpLGk9TWF0aC5taW4odC5lYXN0LGUuZWFzdCkscz1NYXRoLm1pbih0Lm5vcnRoLGUubm9ydGgpO2lmKCEocj49c3x8bz49aSkpcmV0dXJuIGgobik/KG4ud2VzdD1vLG4uc291dGg9cixuLmVhc3Q9aSxuLm5vcnRoPXMsbik6bmV3IHNlKG8scixpLHMpfTtzZS51bmlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLHkudHlwZU9mLm9iamVjdCgib3RoZXJSZWN0YW5nbGUiLGUpLGgobil8fChuPW5ldyBzZSk7bGV0IG89dC5lYXN0LHI9dC53ZXN0LGk9ZS5lYXN0LHM9ZS53ZXN0O288ciYmaT4wP28rPU0uVFdPX1BJOmk8cyYmbz4wJiYoaSs9TS5UV09fUEkpLG88ciYmczwwP3MrPU0uVFdPX1BJOmk8cyYmcjwwJiYocis9TS5UV09fUEkpO2xldCBmPU0ubmVnYXRpdmVQaVRvUGkoTWF0aC5taW4ocixzKSksdT1NLm5lZ2F0aXZlUGlUb1BpKE1hdGgubWF4KG8saSkpO3JldHVybiBuLndlc3Q9ZixuLnNvdXRoPU1hdGgubWluKHQuc291dGgsZS5zb3V0aCksbi5lYXN0PXUsbi5ub3J0aD1NYXRoLm1heCh0Lm5vcnRoLGUubm9ydGgpLG59O3NlLmV4cGFuZD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRvZ3JhcGhpYyIsZSksaChuKXx8KG49bmV3IHNlKSxuLndlc3Q9TWF0aC5taW4odC53ZXN0LGUubG9uZ2l0dWRlKSxuLnNvdXRoPU1hdGgubWluKHQuc291dGgsZS5sYXRpdHVkZSksbi5lYXN0PU1hdGgubWF4KHQuZWFzdCxlLmxvbmdpdHVkZSksbi5ub3J0aD1NYXRoLm1heCh0Lm5vcnRoLGUubGF0aXR1ZGUpLG59O3NlLmNvbnRhaW5zPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLHkudHlwZU9mLm9iamVjdCgiY2FydG9ncmFwaGljIixlKTtsZXQgbj1lLmxvbmdpdHVkZSxvPWUubGF0aXR1ZGUscj10Lndlc3QsaT10LmVhc3Q7cmV0dXJuIGk8ciYmKGkrPU0uVFdPX1BJLG48MCYmKG4rPU0uVFdPX1BJKSksKG4+cnx8TS5lcXVhbHNFcHNpbG9uKG4scixNLkVQU0lMT04xNCkpJiYobjxpfHxNLmVxdWFsc0Vwc2lsb24obixpLE0uRVBTSUxPTjE0KSkmJm8+PXQuc291dGgmJm88PXQubm9ydGh9O3YzPW5ldyBjdDtzZS5zdWJzYW1wbGU9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLHQpLGU9eChlLCQuZGVmYXVsdCksbj14KG4sMCksaChvKXx8KG89W10pO2xldCByPTAsaT10Lm5vcnRoLHM9dC5zb3V0aCxmPXQuZWFzdCx1PXQud2VzdCxjPXYzO2MuaGVpZ2h0PW4sYy5sb25naXR1ZGU9dSxjLmxhdGl0dWRlPWksb1tyXT1lLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGMsb1tyXSkscisrLGMubG9uZ2l0dWRlPWYsb1tyXT1lLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGMsb1tyXSkscisrLGMubGF0aXR1ZGU9cyxvW3JdPWUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYyxvW3JdKSxyKyssYy5sb25naXR1ZGU9dSxvW3JdPWUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYyxvW3JdKSxyKyssaTwwP2MubGF0aXR1ZGU9aTpzPjA/Yy5sYXRpdHVkZT1zOmMubGF0aXR1ZGU9MDtmb3IobGV0IGw9MTtsPDg7KytsKWMubG9uZ2l0dWRlPS1NYXRoLlBJK2wqTS5QSV9PVkVSX1RXTyxzZS5jb250YWlucyh0LGMpJiYob1tyXT1lLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGMsb1tyXSkscisrKTtyZXR1cm4gYy5sYXRpdHVkZT09PTAmJihjLmxvbmdpdHVkZT11LG9bcl09ZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihjLG9bcl0pLHIrKyxjLmxvbmdpdHVkZT1mLG9bcl09ZS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihjLG9bcl0pLHIrKyksby5sZW5ndGg9cixvfTtzZS5zdWJzZWN0aW9uPWZ1bmN0aW9uKHQsZSxuLG8scixpKXtpZih5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIndlc3RMZXJwIixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJ3ZXN0TGVycCIsZSwxKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygic291dGhMZXJwIixuLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJzb3V0aExlcnAiLG4sMSkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImVhc3RMZXJwIixvLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJlYXN0TGVycCIsbywxKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygibm9ydGhMZXJwIixyLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJub3J0aExlcnAiLHIsMSkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIndlc3RMZXJwIixlLG8pLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJzb3V0aExlcnAiLG4sciksaChpKXx8KGk9bmV3IHNlKSx0Lndlc3Q8PXQuZWFzdCl7bGV0IGY9dC5lYXN0LXQud2VzdDtpLndlc3Q9dC53ZXN0K2UqZixpLmVhc3Q9dC53ZXN0K28qZn1lbHNle2xldCBmPU0uVFdPX1BJK3QuZWFzdC10Lndlc3Q7aS53ZXN0PU0ubmVnYXRpdmVQaVRvUGkodC53ZXN0K2UqZiksaS5lYXN0PU0ubmVnYXRpdmVQaVRvUGkodC53ZXN0K28qZil9bGV0IHM9dC5ub3J0aC10LnNvdXRoO3JldHVybiBpLnNvdXRoPXQuc291dGgrbipzLGkubm9ydGg9dC5zb3V0aCtyKnMsZT09PTEmJihpLndlc3Q9dC5lYXN0KSxvPT09MSYmKGkuZWFzdD10LmVhc3QpLG49PT0xJiYoaS5zb3V0aD10Lm5vcnRoKSxyPT09MSYmKGkubm9ydGg9dC5ub3J0aCksaX07c2UuTUFYX1ZBTFVFPU9iamVjdC5mcmVlemUobmV3IHNlKC1NYXRoLlBJLC1NLlBJX09WRVJfVFdPLE1hdGguUEksTS5QSV9PVkVSX1RXTykpO050PXNlfSk7ZnVuY3Rpb24gbmUodCxlKXt0aGlzLmNlbnRlcj1hLmNsb25lKHgodCxhLlpFUk8pKSx0aGlzLnJhZGl1cz14KGUsMCl9dmFyIFRoLE9oLEVoLFJoLFNoLENoLHhoLGlvLFBoLE1oLE5oLEloLEwzLHViLEQzLEYzLGJoLHdoLEIzLFUzLFYzLGszLEczLHozLGozLEgzLHEzLEszLFczLFgzLGxiLFkzLCQzLFozLFEzLEozLGRiLHBiLEF0LHZlPVooKCk9PntGdCgpO0llKCk7WHQoKTtJdCgpO2Z0KCk7WnQoKTtTaSgpO2tzKCk7SGwoKTtXdCgpO0JuKCk7VW4oKTtUbigpO1RoPW5ldyBhLE9oPW5ldyBhLEVoPW5ldyBhLFJoPW5ldyBhLFNoPW5ldyBhLENoPW5ldyBhLHhoPW5ldyBhLGlvPW5ldyBhLFBoPW5ldyBhLE1oPW5ldyBhLE5oPW5ldyBhLEloPW5ldyBhLEwzPTQvMypNLlBJO25lLmZyb21Qb2ludHM9ZnVuY3Rpb24odCxlKXtpZihoKGUpfHwoZT1uZXcgbmUpLCFoKHQpfHx0Lmxlbmd0aD09PTApcmV0dXJuIGUuY2VudGVyPWEuY2xvbmUoYS5aRVJPLGUuY2VudGVyKSxlLnJhZGl1cz0wLGU7bGV0IG49YS5jbG9uZSh0WzBdLHhoKSxvPWEuY2xvbmUobixUaCkscj1hLmNsb25lKG4sT2gpLGk9YS5jbG9uZShuLEVoKSxzPWEuY2xvbmUobixSaCksZj1hLmNsb25lKG4sU2gpLHU9YS5jbG9uZShuLENoKSxjPXQubGVuZ3RoLGw7Zm9yKGw9MTtsPGM7bCsrKXthLmNsb25lKHRbbF0sbik7bGV0IEQ9bi54LHY9bi55LEw9bi56O0Q8by54JiZhLmNsb25lKG4sbyksRD5zLngmJmEuY2xvbmUobixzKSx2PHIueSYmYS5jbG9uZShuLHIpLHY+Zi55JiZhLmNsb25lKG4sZiksTDxpLnomJmEuY2xvbmUobixpKSxMPnUueiYmYS5jbG9uZShuLHUpfWxldCBwPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KHMsbyxpbykpLGQ9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoZixyLGlvKSksbT1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdCh1LGksaW8pKSxfPW8sZz1zLGI9cDtkPmImJihiPWQsXz1yLGc9ZiksbT5iJiYoYj1tLF89aSxnPXUpO2xldCB3PVBoO3cueD0oXy54K2cueCkqLjUsdy55PShfLnkrZy55KSouNSx3Lno9KF8ueitnLnopKi41O2xldCBPPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGcsdyxpbykpLEU9TWF0aC5zcXJ0KE8pLFQ9TWg7VC54PW8ueCxULnk9ci55LFQuej1pLno7bGV0IEM9Tmg7Qy54PXMueCxDLnk9Zi55LEMuej11Lno7bGV0IE49YS5taWRwb2ludChULEMsSWgpLEk9MDtmb3IobD0wO2w8YztsKyspe2EuY2xvbmUodFtsXSxuKTtsZXQgRD1hLm1hZ25pdHVkZShhLnN1YnRyYWN0KG4sTixpbykpO0Q+SSYmKEk9RCk7bGV0IHY9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3Qobix3LGlvKSk7aWYodj5PKXtsZXQgTD1NYXRoLnNxcnQodik7RT0oRStMKSouNSxPPUUqRTtsZXQgVT1MLUU7dy54PShFKncueCtVKm4ueCkvTCx3Lnk9KEUqdy55K1Uqbi55KS9MLHcuej0oRSp3LnorVSpuLnopL0x9fXJldHVybiBFPEk/KGEuY2xvbmUodyxlLmNlbnRlciksZS5yYWRpdXM9RSk6KGEuY2xvbmUoTixlLmNlbnRlciksZS5yYWRpdXM9SSksZX07dWI9bmV3IEpuLEQzPW5ldyBhLEYzPW5ldyBhLGJoPW5ldyBjdCx3aD1uZXcgY3Q7bmUuZnJvbVJlY3RhbmdsZTJEPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmUuZnJvbVJlY3RhbmdsZVdpdGhIZWlnaHRzMkQodCxlLDAsMCxuKX07bmUuZnJvbVJlY3RhbmdsZVdpdGhIZWlnaHRzMkQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZihoKHIpfHwocj1uZXcgbmUpLCFoKHQpKXJldHVybiByLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxyLmNlbnRlciksci5yYWRpdXM9MCxyO3ViLl9lbGxpcHNvaWQ9JC5kZWZhdWx0LGU9eChlLHViKSxOdC5zb3V0aHdlc3QodCxiaCksYmguaGVpZ2h0PW4sTnQubm9ydGhlYXN0KHQsd2gpLHdoLmhlaWdodD1vO2xldCBpPWUucHJvamVjdChiaCxEMykscz1lLnByb2plY3Qod2gsRjMpLGY9cy54LWkueCx1PXMueS1pLnksYz1zLnotaS56O3IucmFkaXVzPU1hdGguc3FydChmKmYrdSp1K2MqYykqLjU7bGV0IGw9ci5jZW50ZXI7cmV0dXJuIGwueD1pLngrZiouNSxsLnk9aS55K3UqLjUsbC56PWkueitjKi41LHJ9O0IzPVtdO25lLmZyb21SZWN0YW5nbGUzRD1mdW5jdGlvbih0LGUsbixvKXtpZihlPXgoZSwkLmRlZmF1bHQpLG49eChuLDApLGgobyl8fChvPW5ldyBuZSksIWgodCkpcmV0dXJuIG8uY2VudGVyPWEuY2xvbmUoYS5aRVJPLG8uY2VudGVyKSxvLnJhZGl1cz0wLG87bGV0IHI9TnQuc3Vic2FtcGxlKHQsZSxuLEIzKTtyZXR1cm4gbmUuZnJvbVBvaW50cyhyLG8pfTtuZS5mcm9tVmVydGljZXM9ZnVuY3Rpb24odCxlLG4sbyl7aWYoaChvKXx8KG89bmV3IG5lKSwhaCh0KXx8dC5sZW5ndGg9PT0wKXJldHVybiBvLmNlbnRlcj1hLmNsb25lKGEuWkVSTyxvLmNlbnRlciksby5yYWRpdXM9MCxvO2U9eChlLGEuWkVSTyksbj14KG4sMykseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInN0cmlkZSIsbiwzKTtsZXQgcj14aDtyLng9dFswXStlLngsci55PXRbMV0rZS55LHIuej10WzJdK2UuejtsZXQgaT1hLmNsb25lKHIsVGgpLHM9YS5jbG9uZShyLE9oKSxmPWEuY2xvbmUocixFaCksdT1hLmNsb25lKHIsUmgpLGM9YS5jbG9uZShyLFNoKSxsPWEuY2xvbmUocixDaCkscD10Lmxlbmd0aCxkO2ZvcihkPTA7ZDxwO2QrPW4pe2xldCBMPXRbZF0rZS54LFU9dFtkKzFdK2UueSxBPXRbZCsyXStlLno7ci54PUwsci55PVUsci56PUEsTDxpLngmJmEuY2xvbmUocixpKSxMPnUueCYmYS5jbG9uZShyLHUpLFU8cy55JiZhLmNsb25lKHIscyksVT5jLnkmJmEuY2xvbmUocixjKSxBPGYueiYmYS5jbG9uZShyLGYpLEE+bC56JiZhLmNsb25lKHIsbCl9bGV0IG09YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QodSxpLGlvKSksXz1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChjLHMsaW8pKSxnPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGwsZixpbykpLGI9aSx3PXUsTz1tO18+TyYmKE89XyxiPXMsdz1jKSxnPk8mJihPPWcsYj1mLHc9bCk7bGV0IEU9UGg7RS54PShiLngrdy54KSouNSxFLnk9KGIueSt3LnkpKi41LEUuej0oYi56K3cueikqLjU7bGV0IFQ9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QodyxFLGlvKSksQz1NYXRoLnNxcnQoVCksTj1NaDtOLng9aS54LE4ueT1zLnksTi56PWYuejtsZXQgST1OaDtJLng9dS54LEkueT1jLnksSS56PWwuejtsZXQgRD1hLm1pZHBvaW50KE4sSSxJaCksdj0wO2ZvcihkPTA7ZDxwO2QrPW4pe3IueD10W2RdK2UueCxyLnk9dFtkKzFdK2UueSxyLno9dFtkKzJdK2UuejtsZXQgTD1hLm1hZ25pdHVkZShhLnN1YnRyYWN0KHIsRCxpbykpO0w+diYmKHY9TCk7bGV0IFU9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QocixFLGlvKSk7aWYoVT5UKXtsZXQgQT1NYXRoLnNxcnQoVSk7Qz0oQytBKSouNSxUPUMqQztsZXQgUz1BLUM7RS54PShDKkUueCtTKnIueCkvQSxFLnk9KEMqRS55K1Mqci55KS9BLEUuej0oQypFLnorUypyLnopL0F9fXJldHVybiBDPHY/KGEuY2xvbmUoRSxvLmNlbnRlciksby5yYWRpdXM9Qyk6KGEuY2xvbmUoRCxvLmNlbnRlciksby5yYWRpdXM9diksb307bmUuZnJvbUVuY29kZWRDYXJ0ZXNpYW5WZXJ0aWNlcz1mdW5jdGlvbih0LGUsbil7aWYoaChuKXx8KG49bmV3IG5lKSwhaCh0KXx8IWgoZSl8fHQubGVuZ3RoIT09ZS5sZW5ndGh8fHQubGVuZ3RoPT09MClyZXR1cm4gbi5jZW50ZXI9YS5jbG9uZShhLlpFUk8sbi5jZW50ZXIpLG4ucmFkaXVzPTAsbjtsZXQgbz14aDtvLng9dFswXStlWzBdLG8ueT10WzFdK2VbMV0sby56PXRbMl0rZVsyXTtsZXQgcj1hLmNsb25lKG8sVGgpLGk9YS5jbG9uZShvLE9oKSxzPWEuY2xvbmUobyxFaCksZj1hLmNsb25lKG8sUmgpLHU9YS5jbG9uZShvLFNoKSxjPWEuY2xvbmUobyxDaCksbD10Lmxlbmd0aCxwO2ZvcihwPTA7cDxsO3ArPTMpe2xldCB2PXRbcF0rZVtwXSxMPXRbcCsxXStlW3ArMV0sVT10W3ArMl0rZVtwKzJdO28ueD12LG8ueT1MLG8uej1VLHY8ci54JiZhLmNsb25lKG8sciksdj5mLngmJmEuY2xvbmUobyxmKSxMPGkueSYmYS5jbG9uZShvLGkpLEw+dS55JiZhLmNsb25lKG8sdSksVTxzLnomJmEuY2xvbmUobyxzKSxVPmMueiYmYS5jbG9uZShvLGMpfWxldCBkPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGYscixpbykpLG09YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QodSxpLGlvKSksXz1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChjLHMsaW8pKSxnPXIsYj1mLHc9ZDttPncmJih3PW0sZz1pLGI9dSksXz53JiYodz1fLGc9cyxiPWMpO2xldCBPPVBoO08ueD0oZy54K2IueCkqLjUsTy55PShnLnkrYi55KSouNSxPLno9KGcueitiLnopKi41O2xldCBFPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KGIsTyxpbykpLFQ9TWF0aC5zcXJ0KEUpLEM9TWg7Qy54PXIueCxDLnk9aS55LEMuej1zLno7bGV0IE49Tmg7Ti54PWYueCxOLnk9dS55LE4uej1jLno7bGV0IEk9YS5taWRwb2ludChDLE4sSWgpLEQ9MDtmb3IocD0wO3A8bDtwKz0zKXtvLng9dFtwXStlW3BdLG8ueT10W3ArMV0rZVtwKzFdLG8uej10W3ArMl0rZVtwKzJdO2xldCB2PWEubWFnbml0dWRlKGEuc3VidHJhY3QobyxJLGlvKSk7dj5EJiYoRD12KTtsZXQgTD1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChvLE8saW8pKTtpZihMPkUpe2xldCBVPU1hdGguc3FydChMKTtUPShUK1UpKi41LEU9VCpUO2xldCBBPVUtVDtPLng9KFQqTy54K0Eqby54KS9VLE8ueT0oVCpPLnkrQSpvLnkpL1UsTy56PShUKk8ueitBKm8ueikvVX19cmV0dXJuIFQ8RD8oYS5jbG9uZShPLG4uY2VudGVyKSxuLnJhZGl1cz1UKTooYS5jbG9uZShJLG4uY2VudGVyKSxuLnJhZGl1cz1EKSxufTtuZS5mcm9tQ29ybmVyUG9pbnRzPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImNvcm5lciIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHBvc2l0ZUNvcm5lciIsZSksaChuKXx8KG49bmV3IG5lKTtsZXQgbz1hLm1pZHBvaW50KHQsZSxuLmNlbnRlcik7cmV0dXJuIG4ucmFkaXVzPWEuZGlzdGFuY2UobyxlKSxufTtuZS5mcm9tRWxsaXBzb2lkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiZWxsaXBzb2lkIix0KSxoKGUpfHwoZT1uZXcgbmUpLGEuY2xvbmUoYS5aRVJPLGUuY2VudGVyKSxlLnJhZGl1cz10Lm1heGltdW1SYWRpdXMsZX07VTM9bmV3IGE7bmUuZnJvbUJvdW5kaW5nU3BoZXJlcz1mdW5jdGlvbih0LGUpe2lmKGgoZSl8fChlPW5ldyBuZSksIWgodCl8fHQubGVuZ3RoPT09MClyZXR1cm4gZS5jZW50ZXI9YS5jbG9uZShhLlpFUk8sZS5jZW50ZXIpLGUucmFkaXVzPTAsZTtsZXQgbj10Lmxlbmd0aDtpZihuPT09MSlyZXR1cm4gbmUuY2xvbmUodFswXSxlKTtpZihuPT09MilyZXR1cm4gbmUudW5pb24odFswXSx0WzFdLGUpO2xldCBvPVtdLHI7Zm9yKHI9MDtyPG47cisrKW8ucHVzaCh0W3JdLmNlbnRlcik7ZT1uZS5mcm9tUG9pbnRzKG8sZSk7bGV0IGk9ZS5jZW50ZXIscz1lLnJhZGl1cztmb3Iocj0wO3I8bjtyKyspe2xldCBmPXRbcl07cz1NYXRoLm1heChzLGEuZGlzdGFuY2UoaSxmLmNlbnRlcixVMykrZi5yYWRpdXMpfXJldHVybiBlLnJhZGl1cz1zLGV9O1YzPW5ldyBhLGszPW5ldyBhLEczPW5ldyBhO25lLmZyb21PcmllbnRlZEJvdW5kaW5nQm94PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJvcmllbnRlZEJvdW5kaW5nQm94Iix0KSxoKGUpfHwoZT1uZXcgbmUpO2xldCBuPXQuaGFsZkF4ZXMsbz1RLmdldENvbHVtbihuLDAsVjMpLHI9US5nZXRDb2x1bW4obiwxLGszKSxpPVEuZ2V0Q29sdW1uKG4sMixHMyk7cmV0dXJuIGEuYWRkKG8scixvKSxhLmFkZChvLGksbyksZS5jZW50ZXI9YS5jbG9uZSh0LmNlbnRlcixlLmNlbnRlciksZS5yYWRpdXM9YS5tYWduaXR1ZGUobyksZX07ejM9bmV3IGEsajM9bmV3IGE7bmUuZnJvbVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJ0cmFuc2Zvcm1hdGlvbiIsdCksaChlKXx8KGU9bmV3IG5lKTtsZXQgbj1zdC5nZXRUcmFuc2xhdGlvbih0LHozKSxvPXN0LmdldFNjYWxlKHQsajMpLHI9LjUqYS5tYWduaXR1ZGUobyk7cmV0dXJuIGUuY2VudGVyPWEuY2xvbmUobixlLmNlbnRlciksZS5yYWRpdXM9cixlfTtuZS5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGUuY2VudGVyPWEuY2xvbmUodC5jZW50ZXIsZS5jZW50ZXIpLGUucmFkaXVzPXQucmFkaXVzLGUpOm5ldyBuZSh0LmNlbnRlcix0LnJhZGl1cyl9O25lLnBhY2tlZExlbmd0aD00O25lLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApO2xldCBvPXQuY2VudGVyO3JldHVybiBlW24rK109by54LGVbbisrXT1vLnksZVtuKytdPW8ueixlW25dPXQucmFkaXVzLGV9O25lLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IG5lKTtsZXQgbz1uLmNlbnRlcjtyZXR1cm4gby54PXRbZSsrXSxvLnk9dFtlKytdLG8uej10W2UrK10sbi5yYWRpdXM9dFtlXSxufTtIMz1uZXcgYSxxMz1uZXcgYTtuZS51bmlvbj1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSxoKG4pfHwobj1uZXcgbmUpO2xldCBvPXQuY2VudGVyLHI9dC5yYWRpdXMsaT1lLmNlbnRlcixzPWUucmFkaXVzLGY9YS5zdWJ0cmFjdChpLG8sSDMpLHU9YS5tYWduaXR1ZGUoZik7aWYocj49dStzKXJldHVybiB0LmNsb25lKG4pLG47aWYocz49dStyKXJldHVybiBlLmNsb25lKG4pLG47bGV0IGM9KHIrdStzKSouNSxsPWEubXVsdGlwbHlCeVNjYWxhcihmLCgtcitjKS91LHEzKTtyZXR1cm4gYS5hZGQobCxvLGwpLGEuY2xvbmUobCxuLmNlbnRlciksbi5yYWRpdXM9YyxufTtLMz1uZXcgYTtuZS5leHBhbmQ9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgic3BoZXJlIix0KSx5LnR5cGVPZi5vYmplY3QoInBvaW50IixlKSxuPW5lLmNsb25lKHQsbik7bGV0IG89YS5tYWduaXR1ZGUoYS5zdWJ0cmFjdChlLG4uY2VudGVyLEszKSk7cmV0dXJuIG8+bi5yYWRpdXMmJihuLnJhZGl1cz1vKSxufTtuZS5pbnRlcnNlY3RQbGFuZT1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgic3BoZXJlIix0KSx5LnR5cGVPZi5vYmplY3QoInBsYW5lIixlKTtsZXQgbj10LmNlbnRlcixvPXQucmFkaXVzLHI9ZS5ub3JtYWwsaT1hLmRvdChyLG4pK2UuZGlzdGFuY2U7cmV0dXJuIGk8LW8/U24uT1VUU0lERTppPG8/U24uSU5URVJTRUNUSU5HOlNuLklOU0lERX07bmUudHJhbnNmb3JtPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgidHJhbnNmb3JtIixlKSxoKG4pfHwobj1uZXcgbmUpLG4uY2VudGVyPXN0Lm11bHRpcGx5QnlQb2ludChlLHQuY2VudGVyLG4uY2VudGVyKSxuLnJhZGl1cz1zdC5nZXRNYXhpbXVtU2NhbGUoZSkqdC5yYWRpdXMsbn07VzM9bmV3IGE7bmUuZGlzdGFuY2VTcXVhcmVkVG89ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoInNwaGVyZSIsdCkseS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLGUpO2xldCBuPWEuc3VidHJhY3QodC5jZW50ZXIsZSxXMyksbz1hLm1hZ25pdHVkZShuKS10LnJhZGl1cztyZXR1cm4gbzw9MD8wOm8qb307bmUudHJhbnNmb3JtV2l0aG91dFNjYWxlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgidHJhbnNmb3JtIixlKSxoKG4pfHwobj1uZXcgbmUpLG4uY2VudGVyPXN0Lm11bHRpcGx5QnlQb2ludChlLHQuY2VudGVyLG4uY2VudGVyKSxuLnJhZGl1cz10LnJhZGl1cyxufTtYMz1uZXcgYTtuZS5jb21wdXRlUGxhbmVEaXN0YW5jZXM9ZnVuY3Rpb24odCxlLG4sbyl7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHkudHlwZU9mLm9iamVjdCgicG9zaXRpb24iLGUpLHkudHlwZU9mLm9iamVjdCgiZGlyZWN0aW9uIixuKSxoKG8pfHwobz1uZXcgUXIpO2xldCByPWEuc3VidHJhY3QodC5jZW50ZXIsZSxYMyksaT1hLmRvdChuLHIpO3JldHVybiBvLnN0YXJ0PWktdC5yYWRpdXMsby5zdG9wPWkrdC5yYWRpdXMsb307bGI9bmV3IGEsWTM9bmV3IGEsJDM9bmV3IGEsWjM9bmV3IGEsUTM9bmV3IGEsSjM9bmV3IGN0LGRiPW5ldyBBcnJheSg4KTtmb3IobGV0IHQ9MDt0PDg7Kyt0KWRiW3RdPW5ldyBhO3BiPW5ldyBKbjtuZS5wcm9qZWN0VG8yRD1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJzcGhlcmUiLHQpLHBiLl9lbGxpcHNvaWQ9JC5kZWZhdWx0LGU9eChlLHBiKTtsZXQgbz1lLmVsbGlwc29pZCxyPXQuY2VudGVyLGk9dC5yYWRpdXMsczthLmVxdWFscyhyLGEuWkVSTyk/cz1hLmNsb25lKGEuVU5JVF9YLGxiKTpzPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHIsbGIpO2xldCBmPWEuY3Jvc3MoYS5VTklUX1oscyxZMyk7YS5ub3JtYWxpemUoZixmKTtsZXQgdT1hLmNyb3NzKHMsZiwkMyk7YS5ub3JtYWxpemUodSx1KSxhLm11bHRpcGx5QnlTY2FsYXIocyxpLHMpLGEubXVsdGlwbHlCeVNjYWxhcih1LGksdSksYS5tdWx0aXBseUJ5U2NhbGFyKGYsaSxmKTtsZXQgYz1hLm5lZ2F0ZSh1LFEzKSxsPWEubmVnYXRlKGYsWjMpLHA9ZGIsZD1wWzBdO2EuYWRkKHMsdSxkKSxhLmFkZChkLGYsZCksZD1wWzFdLGEuYWRkKHMsdSxkKSxhLmFkZChkLGwsZCksZD1wWzJdLGEuYWRkKHMsYyxkKSxhLmFkZChkLGwsZCksZD1wWzNdLGEuYWRkKHMsYyxkKSxhLmFkZChkLGYsZCksYS5uZWdhdGUocyxzKSxkPXBbNF0sYS5hZGQocyx1LGQpLGEuYWRkKGQsZixkKSxkPXBbNV0sYS5hZGQocyx1LGQpLGEuYWRkKGQsbCxkKSxkPXBbNl0sYS5hZGQocyxjLGQpLGEuYWRkKGQsbCxkKSxkPXBbN10sYS5hZGQocyxjLGQpLGEuYWRkKGQsZixkKTtsZXQgbT1wLmxlbmd0aDtmb3IobGV0IHc9MDt3PG07Kyt3KXtsZXQgTz1wW3ddO2EuYWRkKHIsTyxPKTtsZXQgRT1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKE8sSjMpO2UucHJvamVjdChFLE8pfW49bmUuZnJvbVBvaW50cyhwLG4pLHI9bi5jZW50ZXI7bGV0IF89ci54LGc9ci55LGI9ci56O3JldHVybiByLng9YixyLnk9XyxyLno9ZyxufTtuZS5pc09jY2x1ZGVkPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgic3BoZXJlIix0KSx5LnR5cGVPZi5vYmplY3QoIm9jY2x1ZGVyIixlKSwhZS5pc0JvdW5kaW5nU3BoZXJlVmlzaWJsZSh0KX07bmUuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZhLmVxdWFscyh0LmNlbnRlcixlLmNlbnRlcikmJnQucmFkaXVzPT09ZS5yYWRpdXN9O25lLnByb3RvdHlwZS5pbnRlcnNlY3RQbGFuZT1mdW5jdGlvbih0KXtyZXR1cm4gbmUuaW50ZXJzZWN0UGxhbmUodGhpcyx0KX07bmUucHJvdG90eXBlLmRpc3RhbmNlU3F1YXJlZFRvPWZ1bmN0aW9uKHQpe3JldHVybiBuZS5kaXN0YW5jZVNxdWFyZWRUbyh0aGlzLHQpfTtuZS5wcm90b3R5cGUuY29tcHV0ZVBsYW5lRGlzdGFuY2VzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gbmUuY29tcHV0ZVBsYW5lRGlzdGFuY2VzKHRoaXMsdCxlLG4pfTtuZS5wcm90b3R5cGUuaXNPY2NsdWRlZD1mdW5jdGlvbih0KXtyZXR1cm4gbmUuaXNPY2NsdWRlZCh0aGlzLHQpfTtuZS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBuZS5lcXVhbHModGhpcyx0KX07bmUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBuZS5jbG9uZSh0aGlzLHQpfTtuZS5wcm90b3R5cGUudm9sdW1lPWZ1bmN0aW9uKCl7bGV0IHQ9dGhpcy5yYWRpdXM7cmV0dXJuIEwzKnQqdCp0fTtBdD1uZX0pO3ZhciB0UCxxdCwkcz1aKCgpPT57dFA9e0RFUFRIX0JVRkZFUl9CSVQ6MjU2LFNURU5DSUxfQlVGRkVSX0JJVDoxMDI0LENPTE9SX0JVRkZFUl9CSVQ6MTYzODQsUE9JTlRTOjAsTElORVM6MSxMSU5FX0xPT1A6MixMSU5FX1NUUklQOjMsVFJJQU5HTEVTOjQsVFJJQU5HTEVfU1RSSVA6NSxUUklBTkdMRV9GQU46NixaRVJPOjAsT05FOjEsU1JDX0NPTE9SOjc2OCxPTkVfTUlOVVNfU1JDX0NPTE9SOjc2OSxTUkNfQUxQSEE6NzcwLE9ORV9NSU5VU19TUkNfQUxQSEE6NzcxLERTVF9BTFBIQTo3NzIsT05FX01JTlVTX0RTVF9BTFBIQTo3NzMsRFNUX0NPTE9SOjc3NCxPTkVfTUlOVVNfRFNUX0NPTE9SOjc3NSxTUkNfQUxQSEFfU0FUVVJBVEU6Nzc2LEZVTkNfQUREOjMyNzc0LEJMRU5EX0VRVUFUSU9OOjMyNzc3LEJMRU5EX0VRVUFUSU9OX1JHQjozMjc3NyxCTEVORF9FUVVBVElPTl9BTFBIQTozNDg3NyxGVU5DX1NVQlRSQUNUOjMyNzc4LEZVTkNfUkVWRVJTRV9TVUJUUkFDVDozMjc3OSxCTEVORF9EU1RfUkdCOjMyOTY4LEJMRU5EX1NSQ19SR0I6MzI5NjksQkxFTkRfRFNUX0FMUEhBOjMyOTcwLEJMRU5EX1NSQ19BTFBIQTozMjk3MSxDT05TVEFOVF9DT0xPUjozMjc2OSxPTkVfTUlOVVNfQ09OU1RBTlRfQ09MT1I6MzI3NzAsQ09OU1RBTlRfQUxQSEE6MzI3NzEsT05FX01JTlVTX0NPTlNUQU5UX0FMUEhBOjMyNzcyLEJMRU5EX0NPTE9SOjMyNzczLEFSUkFZX0JVRkZFUjozNDk2MixFTEVNRU5UX0FSUkFZX0JVRkZFUjozNDk2MyxBUlJBWV9CVUZGRVJfQklORElORzozNDk2NCxFTEVNRU5UX0FSUkFZX0JVRkZFUl9CSU5ESU5HOjM0OTY1LFNUUkVBTV9EUkFXOjM1MDQwLFNUQVRJQ19EUkFXOjM1MDQ0LERZTkFNSUNfRFJBVzozNTA0OCxCVUZGRVJfU0laRTozNDY2MCxCVUZGRVJfVVNBR0U6MzQ2NjEsQ1VSUkVOVF9WRVJURVhfQVRUUklCOjM0MzQyLEZST05UOjEwMjgsQkFDSzoxMDI5LEZST05UX0FORF9CQUNLOjEwMzIsQ1VMTF9GQUNFOjI4ODQsQkxFTkQ6MzA0MixESVRIRVI6MzAyNCxTVEVOQ0lMX1RFU1Q6Mjk2MCxERVBUSF9URVNUOjI5MjksU0NJU1NPUl9URVNUOjMwODksUE9MWUdPTl9PRkZTRVRfRklMTDozMjgyMyxTQU1QTEVfQUxQSEFfVE9fQ09WRVJBR0U6MzI5MjYsU0FNUExFX0NPVkVSQUdFOjMyOTI4LE5PX0VSUk9SOjAsSU5WQUxJRF9FTlVNOjEyODAsSU5WQUxJRF9WQUxVRToxMjgxLElOVkFMSURfT1BFUkFUSU9OOjEyODIsT1VUX09GX01FTU9SWToxMjg1LENXOjIzMDQsQ0NXOjIzMDUsTElORV9XSURUSDoyODQ5LEFMSUFTRURfUE9JTlRfU0laRV9SQU5HRTozMzkwMSxBTElBU0VEX0xJTkVfV0lEVEhfUkFOR0U6MzM5MDIsQ1VMTF9GQUNFX01PREU6Mjg4NSxGUk9OVF9GQUNFOjI4ODYsREVQVEhfUkFOR0U6MjkyOCxERVBUSF9XUklURU1BU0s6MjkzMCxERVBUSF9DTEVBUl9WQUxVRToyOTMxLERFUFRIX0ZVTkM6MjkzMixTVEVOQ0lMX0NMRUFSX1ZBTFVFOjI5NjEsU1RFTkNJTF9GVU5DOjI5NjIsU1RFTkNJTF9GQUlMOjI5NjQsU1RFTkNJTF9QQVNTX0RFUFRIX0ZBSUw6Mjk2NSxTVEVOQ0lMX1BBU1NfREVQVEhfUEFTUzoyOTY2LFNURU5DSUxfUkVGOjI5NjcsU1RFTkNJTF9WQUxVRV9NQVNLOjI5NjMsU1RFTkNJTF9XUklURU1BU0s6Mjk2OCxTVEVOQ0lMX0JBQ0tfRlVOQzozNDgxNixTVEVOQ0lMX0JBQ0tfRkFJTDozNDgxNyxTVEVOQ0lMX0JBQ0tfUEFTU19ERVBUSF9GQUlMOjM0ODE4LFNURU5DSUxfQkFDS19QQVNTX0RFUFRIX1BBU1M6MzQ4MTksU1RFTkNJTF9CQUNLX1JFRjozNjAwMyxTVEVOQ0lMX0JBQ0tfVkFMVUVfTUFTSzozNjAwNCxTVEVOQ0lMX0JBQ0tfV1JJVEVNQVNLOjM2MDA1LFZJRVdQT1JUOjI5NzgsU0NJU1NPUl9CT1g6MzA4OCxDT0xPUl9DTEVBUl9WQUxVRTozMTA2LENPTE9SX1dSSVRFTUFTSzozMTA3LFVOUEFDS19BTElHTk1FTlQ6MzMxNyxQQUNLX0FMSUdOTUVOVDozMzMzLE1BWF9URVhUVVJFX1NJWkU6MzM3OSxNQVhfVklFV1BPUlRfRElNUzozMzg2LFNVQlBJWEVMX0JJVFM6MzQwOCxSRURfQklUUzozNDEwLEdSRUVOX0JJVFM6MzQxMSxCTFVFX0JJVFM6MzQxMixBTFBIQV9CSVRTOjM0MTMsREVQVEhfQklUUzozNDE0LFNURU5DSUxfQklUUzozNDE1LFBPTFlHT05fT0ZGU0VUX1VOSVRTOjEwNzUyLFBPTFlHT05fT0ZGU0VUX0ZBQ1RPUjozMjgyNCxURVhUVVJFX0JJTkRJTkdfMkQ6MzI4NzMsU0FNUExFX0JVRkZFUlM6MzI5MzYsU0FNUExFUzozMjkzNyxTQU1QTEVfQ09WRVJBR0VfVkFMVUU6MzI5MzgsU0FNUExFX0NPVkVSQUdFX0lOVkVSVDozMjkzOSxDT01QUkVTU0VEX1RFWFRVUkVfRk9STUFUUzozNDQ2NyxET05UX0NBUkU6NDM1MixGQVNURVNUOjQzNTMsTklDRVNUOjQzNTQsR0VORVJBVEVfTUlQTUFQX0hJTlQ6MzMxNzAsQllURTo1MTIwLFVOU0lHTkVEX0JZVEU6NTEyMSxTSE9SVDo1MTIyLFVOU0lHTkVEX1NIT1JUOjUxMjMsSU5UOjUxMjQsVU5TSUdORURfSU5UOjUxMjUsRkxPQVQ6NTEyNixERVBUSF9DT01QT05FTlQ6NjQwMixBTFBIQTo2NDA2LFJHQjo2NDA3LFJHQkE6NjQwOCxMVU1JTkFOQ0U6NjQwOSxMVU1JTkFOQ0VfQUxQSEE6NjQxMCxVTlNJR05FRF9TSE9SVF80XzRfNF80OjMyODE5LFVOU0lHTkVEX1NIT1JUXzVfNV81XzE6MzI4MjAsVU5TSUdORURfU0hPUlRfNV82XzU6MzM2MzUsRlJBR01FTlRfU0hBREVSOjM1NjMyLFZFUlRFWF9TSEFERVI6MzU2MzMsTUFYX1ZFUlRFWF9BVFRSSUJTOjM0OTIxLE1BWF9WRVJURVhfVU5JRk9STV9WRUNUT1JTOjM2MzQ3LE1BWF9WQVJZSU5HX1ZFQ1RPUlM6MzYzNDgsTUFYX0NPTUJJTkVEX1RFWFRVUkVfSU1BR0VfVU5JVFM6MzU2NjEsTUFYX1ZFUlRFWF9URVhUVVJFX0lNQUdFX1VOSVRTOjM1NjYwLE1BWF9URVhUVVJFX0lNQUdFX1VOSVRTOjM0OTMwLE1BWF9GUkFHTUVOVF9VTklGT1JNX1ZFQ1RPUlM6MzYzNDksU0hBREVSX1RZUEU6MzU2NjMsREVMRVRFX1NUQVRVUzozNTcxMixMSU5LX1NUQVRVUzozNTcxNCxWQUxJREFURV9TVEFUVVM6MzU3MTUsQVRUQUNIRURfU0hBREVSUzozNTcxNyxBQ1RJVkVfVU5JRk9STVM6MzU3MTgsQUNUSVZFX0FUVFJJQlVURVM6MzU3MjEsU0hBRElOR19MQU5HVUFHRV9WRVJTSU9OOjM1NzI0LENVUlJFTlRfUFJPR1JBTTozNTcyNSxORVZFUjo1MTIsTEVTUzo1MTMsRVFVQUw6NTE0LExFUVVBTDo1MTUsR1JFQVRFUjo1MTYsTk9URVFVQUw6NTE3LEdFUVVBTDo1MTgsQUxXQVlTOjUxOSxLRUVQOjc2ODAsUkVQTEFDRTo3NjgxLElOQ1I6NzY4MixERUNSOjc2ODMsSU5WRVJUOjUzODYsSU5DUl9XUkFQOjM0MDU1LERFQ1JfV1JBUDozNDA1NixWRU5ET1I6NzkzNixSRU5ERVJFUjo3OTM3LFZFUlNJT046NzkzOCxORUFSRVNUOjk3MjgsTElORUFSOjk3MjksTkVBUkVTVF9NSVBNQVBfTkVBUkVTVDo5OTg0LExJTkVBUl9NSVBNQVBfTkVBUkVTVDo5OTg1LE5FQVJFU1RfTUlQTUFQX0xJTkVBUjo5OTg2LExJTkVBUl9NSVBNQVBfTElORUFSOjk5ODcsVEVYVFVSRV9NQUdfRklMVEVSOjEwMjQwLFRFWFRVUkVfTUlOX0ZJTFRFUjoxMDI0MSxURVhUVVJFX1dSQVBfUzoxMDI0MixURVhUVVJFX1dSQVBfVDoxMDI0MyxURVhUVVJFXzJEOjM1NTMsVEVYVFVSRTo1ODkwLFRFWFRVUkVfQ1VCRV9NQVA6MzQwNjcsVEVYVFVSRV9CSU5ESU5HX0NVQkVfTUFQOjM0MDY4LFRFWFRVUkVfQ1VCRV9NQVBfUE9TSVRJVkVfWDozNDA2OSxURVhUVVJFX0NVQkVfTUFQX05FR0FUSVZFX1g6MzQwNzAsVEVYVFVSRV9DVUJFX01BUF9QT1NJVElWRV9ZOjM0MDcxLFRFWFRVUkVfQ1VCRV9NQVBfTkVHQVRJVkVfWTozNDA3MixURVhUVVJFX0NVQkVfTUFQX1BPU0lUSVZFX1o6MzQwNzMsVEVYVFVSRV9DVUJFX01BUF9ORUdBVElWRV9aOjM0MDc0LE1BWF9DVUJFX01BUF9URVhUVVJFX1NJWkU6MzQwNzYsVEVYVFVSRTA6MzM5ODQsVEVYVFVSRTE6MzM5ODUsVEVYVFVSRTI6MzM5ODYsVEVYVFVSRTM6MzM5ODcsVEVYVFVSRTQ6MzM5ODgsVEVYVFVSRTU6MzM5ODksVEVYVFVSRTY6MzM5OTAsVEVYVFVSRTc6MzM5OTEsVEVYVFVSRTg6MzM5OTIsVEVYVFVSRTk6MzM5OTMsVEVYVFVSRTEwOjMzOTk0LFRFWFRVUkUxMTozMzk5NSxURVhUVVJFMTI6MzM5OTYsVEVYVFVSRTEzOjMzOTk3LFRFWFRVUkUxNDozMzk5OCxURVhUVVJFMTU6MzM5OTksVEVYVFVSRTE2OjM0ZTMsVEVYVFVSRTE3OjM0MDAxLFRFWFRVUkUxODozNDAwMixURVhUVVJFMTk6MzQwMDMsVEVYVFVSRTIwOjM0MDA0LFRFWFRVUkUyMTozNDAwNSxURVhUVVJFMjI6MzQwMDYsVEVYVFVSRTIzOjM0MDA3LFRFWFRVUkUyNDozNDAwOCxURVhUVVJFMjU6MzQwMDksVEVYVFVSRTI2OjM0MDEwLFRFWFRVUkUyNzozNDAxMSxURVhUVVJFMjg6MzQwMTIsVEVYVFVSRTI5OjM0MDEzLFRFWFRVUkUzMDozNDAxNCxURVhUVVJFMzE6MzQwMTUsQUNUSVZFX1RFWFRVUkU6MzQwMTYsUkVQRUFUOjEwNDk3LENMQU1QX1RPX0VER0U6MzMwNzEsTUlSUk9SRURfUkVQRUFUOjMzNjQ4LEZMT0FUX1ZFQzI6MzU2NjQsRkxPQVRfVkVDMzozNTY2NSxGTE9BVF9WRUM0OjM1NjY2LElOVF9WRUMyOjM1NjY3LElOVF9WRUMzOjM1NjY4LElOVF9WRUM0OjM1NjY5LEJPT0w6MzU2NzAsQk9PTF9WRUMyOjM1NjcxLEJPT0xfVkVDMzozNTY3MixCT09MX1ZFQzQ6MzU2NzMsRkxPQVRfTUFUMjozNTY3NCxGTE9BVF9NQVQzOjM1Njc1LEZMT0FUX01BVDQ6MzU2NzYsU0FNUExFUl8yRDozNTY3OCxTQU1QTEVSX0NVQkU6MzU2ODAsVkVSVEVYX0FUVFJJQl9BUlJBWV9FTkFCTEVEOjM0MzM4LFZFUlRFWF9BVFRSSUJfQVJSQVlfU0laRTozNDMzOSxWRVJURVhfQVRUUklCX0FSUkFZX1NUUklERTozNDM0MCxWRVJURVhfQVRUUklCX0FSUkFZX1RZUEU6MzQzNDEsVkVSVEVYX0FUVFJJQl9BUlJBWV9OT1JNQUxJWkVEOjM0OTIyLFZFUlRFWF9BVFRSSUJfQVJSQVlfUE9JTlRFUjozNDM3MyxWRVJURVhfQVRUUklCX0FSUkFZX0JVRkZFUl9CSU5ESU5HOjM0OTc1LElNUExFTUVOVEFUSU9OX0NPTE9SX1JFQURfVFlQRTozNTczOCxJTVBMRU1FTlRBVElPTl9DT0xPUl9SRUFEX0ZPUk1BVDozNTczOSxDT01QSUxFX1NUQVRVUzozNTcxMyxMT1dfRkxPQVQ6MzYzMzYsTUVESVVNX0ZMT0FUOjM2MzM3LEhJR0hfRkxPQVQ6MzYzMzgsTE9XX0lOVDozNjMzOSxNRURJVU1fSU5UOjM2MzQwLEhJR0hfSU5UOjM2MzQxLEZSQU1FQlVGRkVSOjM2MTYwLFJFTkRFUkJVRkZFUjozNjE2MSxSR0JBNDozMjg1NCxSR0I1X0ExOjMyODU1LFJHQjU2NTozNjE5NCxERVBUSF9DT01QT05FTlQxNjozMzE4OSxTVEVOQ0lMX0lOREVYOjY0MDEsU1RFTkNJTF9JTkRFWDg6MzYxNjgsREVQVEhfU1RFTkNJTDozNDA0MSxSRU5ERVJCVUZGRVJfV0lEVEg6MzYxNjIsUkVOREVSQlVGRkVSX0hFSUdIVDozNjE2MyxSRU5ERVJCVUZGRVJfSU5URVJOQUxfRk9STUFUOjM2MTY0LFJFTkRFUkJVRkZFUl9SRURfU0laRTozNjE3NixSRU5ERVJCVUZGRVJfR1JFRU5fU0laRTozNjE3NyxSRU5ERVJCVUZGRVJfQkxVRV9TSVpFOjM2MTc4LFJFTkRFUkJVRkZFUl9BTFBIQV9TSVpFOjM2MTc5LFJFTkRFUkJVRkZFUl9ERVBUSF9TSVpFOjM2MTgwLFJFTkRFUkJVRkZFUl9TVEVOQ0lMX1NJWkU6MzYxODEsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9PQkpFQ1RfVFlQRTozNjA0OCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX09CSkVDVF9OQU1FOjM2MDQ5LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MRVZFTDozNjA1MCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1RFWFRVUkVfQ1VCRV9NQVBfRkFDRTozNjA1MSxDT0xPUl9BVFRBQ0hNRU5UMDozNjA2NCxERVBUSF9BVFRBQ0hNRU5UOjM2MDk2LFNURU5DSUxfQVRUQUNITUVOVDozNjEyOCxERVBUSF9TVEVOQ0lMX0FUVEFDSE1FTlQ6MzMzMDYsTk9ORTowLEZSQU1FQlVGRkVSX0NPTVBMRVRFOjM2MDUzLEZSQU1FQlVGRkVSX0lOQ09NUExFVEVfQVRUQUNITUVOVDozNjA1NCxGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX01JU1NJTkdfQVRUQUNITUVOVDozNjA1NSxGUkFNRUJVRkZFUl9JTkNPTVBMRVRFX0RJTUVOU0lPTlM6MzYwNTcsRlJBTUVCVUZGRVJfVU5TVVBQT1JURUQ6MzYwNjEsRlJBTUVCVUZGRVJfQklORElORzozNjAwNixSRU5ERVJCVUZGRVJfQklORElORzozNjAwNyxNQVhfUkVOREVSQlVGRkVSX1NJWkU6MzQwMjQsSU5WQUxJRF9GUkFNRUJVRkZFUl9PUEVSQVRJT046MTI4NixVTlBBQ0tfRkxJUF9ZX1dFQkdMOjM3NDQwLFVOUEFDS19QUkVNVUxUSVBMWV9BTFBIQV9XRUJHTDozNzQ0MSxDT05URVhUX0xPU1RfV0VCR0w6Mzc0NDIsVU5QQUNLX0NPTE9SU1BBQ0VfQ09OVkVSU0lPTl9XRUJHTDozNzQ0MyxCUk9XU0VSX0RFRkFVTFRfV0VCR0w6Mzc0NDQsQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVDozMzc3NixDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQxX0VYVDozMzc3NyxDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQzX0VYVDozMzc3OCxDT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVDozMzc3OSxDT01QUkVTU0VEX1JHQl9QVlJUQ180QlBQVjFfSU1HOjM1ODQwLENPTVBSRVNTRURfUkdCX1BWUlRDXzJCUFBWMV9JTUc6MzU4NDEsQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzRCUFBWMV9JTUc6MzU4NDIsQ09NUFJFU1NFRF9SR0JBX1BWUlRDXzJCUFBWMV9JTUc6MzU4NDMsQ09NUFJFU1NFRF9SR0JBX0FTVENfNHg0X1dFQkdMOjM3ODA4LENPTVBSRVNTRURfUkdCX0VUQzFfV0VCR0w6MzYxOTYsQ09NUFJFU1NFRF9SR0JBX0JQVENfVU5PUk06MzY0OTIsSEFMRl9GTE9BVF9PRVM6MzYxOTMsRE9VQkxFOjUxMzAsUkVBRF9CVUZGRVI6MzA3NCxVTlBBQ0tfUk9XX0xFTkdUSDozMzE0LFVOUEFDS19TS0lQX1JPV1M6MzMxNSxVTlBBQ0tfU0tJUF9QSVhFTFM6MzMxNixQQUNLX1JPV19MRU5HVEg6MzMzMCxQQUNLX1NLSVBfUk9XUzozMzMxLFBBQ0tfU0tJUF9QSVhFTFM6MzMzMixDT0xPUjo2MTQ0LERFUFRIOjYxNDUsU1RFTkNJTDo2MTQ2LFJFRDo2NDAzLFJHQjg6MzI4NDksUkdCQTg6MzI4NTYsUkdCMTBfQTI6MzI4NTcsVEVYVFVSRV9CSU5ESU5HXzNEOjMyODc0LFVOUEFDS19TS0lQX0lNQUdFUzozMjg3NyxVTlBBQ0tfSU1BR0VfSEVJR0hUOjMyODc4LFRFWFRVUkVfM0Q6MzI4NzksVEVYVFVSRV9XUkFQX1I6MzI4ODIsTUFYXzNEX1RFWFRVUkVfU0laRTozMjg4MyxVTlNJR05FRF9JTlRfMl8xMF8xMF8xMF9SRVY6MzM2NDAsTUFYX0VMRU1FTlRTX1ZFUlRJQ0VTOjMzZTMsTUFYX0VMRU1FTlRTX0lORElDRVM6MzMwMDEsVEVYVFVSRV9NSU5fTE9EOjMzMDgyLFRFWFRVUkVfTUFYX0xPRDozMzA4MyxURVhUVVJFX0JBU0VfTEVWRUw6MzMwODQsVEVYVFVSRV9NQVhfTEVWRUw6MzMwODUsTUlOOjMyNzc1LE1BWDozMjc3NixERVBUSF9DT01QT05FTlQyNDozMzE5MCxNQVhfVEVYVFVSRV9MT0RfQklBUzozNDA0NSxURVhUVVJFX0NPTVBBUkVfTU9ERTozNDg5MixURVhUVVJFX0NPTVBBUkVfRlVOQzozNDg5MyxDVVJSRU5UX1FVRVJZOjM0OTE3LFFVRVJZX1JFU1VMVDozNDkxOCxRVUVSWV9SRVNVTFRfQVZBSUxBQkxFOjM0OTE5LFNUUkVBTV9SRUFEOjM1MDQxLFNUUkVBTV9DT1BZOjM1MDQyLFNUQVRJQ19SRUFEOjM1MDQ1LFNUQVRJQ19DT1BZOjM1MDQ2LERZTkFNSUNfUkVBRDozNTA0OSxEWU5BTUlDX0NPUFk6MzUwNTAsTUFYX0RSQVdfQlVGRkVSUzozNDg1MixEUkFXX0JVRkZFUjA6MzQ4NTMsRFJBV19CVUZGRVIxOjM0ODU0LERSQVdfQlVGRkVSMjozNDg1NSxEUkFXX0JVRkZFUjM6MzQ4NTYsRFJBV19CVUZGRVI0OjM0ODU3LERSQVdfQlVGRkVSNTozNDg1OCxEUkFXX0JVRkZFUjY6MzQ4NTksRFJBV19CVUZGRVI3OjM0ODYwLERSQVdfQlVGRkVSODozNDg2MSxEUkFXX0JVRkZFUjk6MzQ4NjIsRFJBV19CVUZGRVIxMDozNDg2MyxEUkFXX0JVRkZFUjExOjM0ODY0LERSQVdfQlVGRkVSMTI6MzQ4NjUsRFJBV19CVUZGRVIxMzozNDg2NixEUkFXX0JVRkZFUjE0OjM0ODY3LERSQVdfQlVGRkVSMTU6MzQ4NjgsTUFYX0ZSQUdNRU5UX1VOSUZPUk1fQ09NUE9ORU5UUzozNTY1NyxNQVhfVkVSVEVYX1VOSUZPUk1fQ09NUE9ORU5UUzozNTY1OCxTQU1QTEVSXzNEOjM1Njc5LFNBTVBMRVJfMkRfU0hBRE9XOjM1NjgyLEZSQUdNRU5UX1NIQURFUl9ERVJJVkFUSVZFX0hJTlQ6MzU3MjMsUElYRUxfUEFDS19CVUZGRVI6MzUwNTEsUElYRUxfVU5QQUNLX0JVRkZFUjozNTA1MixQSVhFTF9QQUNLX0JVRkZFUl9CSU5ESU5HOjM1MDUzLFBJWEVMX1VOUEFDS19CVUZGRVJfQklORElORzozNTA1NSxGTE9BVF9NQVQyeDM6MzU2ODUsRkxPQVRfTUFUMng0OjM1Njg2LEZMT0FUX01BVDN4MjozNTY4NyxGTE9BVF9NQVQzeDQ6MzU2ODgsRkxPQVRfTUFUNHgyOjM1Njg5LEZMT0FUX01BVDR4MzozNTY5MCxTUkdCOjM1OTA0LFNSR0I4OjM1OTA1LFNSR0I4X0FMUEhBODozNTkwNyxDT01QQVJFX1JFRl9UT19URVhUVVJFOjM0ODk0LFJHQkEzMkY6MzQ4MzYsUkdCMzJGOjM0ODM3LFJHQkExNkY6MzQ4NDIsUkdCMTZGOjM0ODQzLFZFUlRFWF9BVFRSSUJfQVJSQVlfSU5URUdFUjozNTA2OSxNQVhfQVJSQVlfVEVYVFVSRV9MQVlFUlM6MzUwNzEsTUlOX1BST0dSQU1fVEVYRUxfT0ZGU0VUOjM1MDc2LE1BWF9QUk9HUkFNX1RFWEVMX09GRlNFVDozNTA3NyxNQVhfVkFSWUlOR19DT01QT05FTlRTOjM1NjU5LFRFWFRVUkVfMkRfQVJSQVk6MzU4NjYsVEVYVFVSRV9CSU5ESU5HXzJEX0FSUkFZOjM1ODY5LFIxMUZfRzExRl9CMTBGOjM1ODk4LFVOU0lHTkVEX0lOVF8xMEZfMTFGXzExRl9SRVY6MzU4OTksUkdCOV9FNTozNTkwMSxVTlNJR05FRF9JTlRfNV85XzlfOV9SRVY6MzU5MDIsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9NT0RFOjM1OTY3LE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQ09NUE9ORU5UUzozNTk2OCxUUkFOU0ZPUk1fRkVFREJBQ0tfVkFSWUlOR1M6MzU5NzEsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUl9TVEFSVDozNTk3MixUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX1NJWkU6MzU5NzMsVFJBTlNGT1JNX0ZFRURCQUNLX1BSSU1JVElWRVNfV1JJVFRFTjozNTk3NixSQVNURVJJWkVSX0RJU0NBUkQ6MzU5NzcsTUFYX1RSQU5TRk9STV9GRUVEQkFDS19JTlRFUkxFQVZFRF9DT01QT05FTlRTOjM1OTc4LE1BWF9UUkFOU0ZPUk1fRkVFREJBQ0tfU0VQQVJBVEVfQVRUUklCUzozNTk3OSxJTlRFUkxFQVZFRF9BVFRSSUJTOjM1OTgwLFNFUEFSQVRFX0FUVFJJQlM6MzU5ODEsVFJBTlNGT1JNX0ZFRURCQUNLX0JVRkZFUjozNTk4MixUUkFOU0ZPUk1fRkVFREJBQ0tfQlVGRkVSX0JJTkRJTkc6MzU5ODMsUkdCQTMyVUk6MzYyMDgsUkdCMzJVSTozNjIwOSxSR0JBMTZVSTozNjIxNCxSR0IxNlVJOjM2MjE1LFJHQkE4VUk6MzYyMjAsUkdCOFVJOjM2MjIxLFJHQkEzMkk6MzYyMjYsUkdCMzJJOjM2MjI3LFJHQkExNkk6MzYyMzIsUkdCMTZJOjM2MjMzLFJHQkE4STozNjIzOCxSR0I4STozNjIzOSxSRURfSU5URUdFUjozNjI0NCxSR0JfSU5URUdFUjozNjI0OCxSR0JBX0lOVEVHRVI6MzYyNDksU0FNUExFUl8yRF9BUlJBWTozNjI4OSxTQU1QTEVSXzJEX0FSUkFZX1NIQURPVzozNjI5MixTQU1QTEVSX0NVQkVfU0hBRE9XOjM2MjkzLFVOU0lHTkVEX0lOVF9WRUMyOjM2Mjk0LFVOU0lHTkVEX0lOVF9WRUMzOjM2Mjk1LFVOU0lHTkVEX0lOVF9WRUM0OjM2Mjk2LElOVF9TQU1QTEVSXzJEOjM2Mjk4LElOVF9TQU1QTEVSXzNEOjM2Mjk5LElOVF9TQU1QTEVSX0NVQkU6MzYzMDAsSU5UX1NBTVBMRVJfMkRfQVJSQVk6MzYzMDMsVU5TSUdORURfSU5UX1NBTVBMRVJfMkQ6MzYzMDYsVU5TSUdORURfSU5UX1NBTVBMRVJfM0Q6MzYzMDcsVU5TSUdORURfSU5UX1NBTVBMRVJfQ1VCRTozNjMwOCxVTlNJR05FRF9JTlRfU0FNUExFUl8yRF9BUlJBWTozNjMxMSxERVBUSF9DT01QT05FTlQzMkY6MzYwMTIsREVQVEgzMkZfU1RFTkNJTDg6MzYwMTMsRkxPQVRfMzJfVU5TSUdORURfSU5UXzI0XzhfUkVWOjM2MjY5LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfQ09MT1JfRU5DT0RJTkc6MzMyOTYsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9DT01QT05FTlRfVFlQRTozMzI5NyxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX1JFRF9TSVpFOjMzMjk4LEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfR1JFRU5fU0laRTozMzI5OSxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0JMVUVfU0laRTozMzMwMCxGUkFNRUJVRkZFUl9BVFRBQ0hNRU5UX0FMUEhBX1NJWkU6MzMzMDEsRlJBTUVCVUZGRVJfQVRUQUNITUVOVF9ERVBUSF9TSVpFOjMzMzAyLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfU1RFTkNJTF9TSVpFOjMzMzAzLEZSQU1FQlVGRkVSX0RFRkFVTFQ6MzMzMDQsVU5TSUdORURfSU5UXzI0Xzg6MzQwNDIsREVQVEgyNF9TVEVOQ0lMODozNTA1NixVTlNJR05FRF9OT1JNQUxJWkVEOjM1ODYzLERSQVdfRlJBTUVCVUZGRVJfQklORElORzozNjAwNixSRUFEX0ZSQU1FQlVGRkVSOjM2MDA4LERSQVdfRlJBTUVCVUZGRVI6MzYwMDksUkVBRF9GUkFNRUJVRkZFUl9CSU5ESU5HOjM2MDEwLFJFTkRFUkJVRkZFUl9TQU1QTEVTOjM2MDExLEZSQU1FQlVGRkVSX0FUVEFDSE1FTlRfVEVYVFVSRV9MQVlFUjozNjA1MixNQVhfQ09MT1JfQVRUQUNITUVOVFM6MzYwNjMsQ09MT1JfQVRUQUNITUVOVDE6MzYwNjUsQ09MT1JfQVRUQUNITUVOVDI6MzYwNjYsQ09MT1JfQVRUQUNITUVOVDM6MzYwNjcsQ09MT1JfQVRUQUNITUVOVDQ6MzYwNjgsQ09MT1JfQVRUQUNITUVOVDU6MzYwNjksQ09MT1JfQVRUQUNITUVOVDY6MzYwNzAsQ09MT1JfQVRUQUNITUVOVDc6MzYwNzEsQ09MT1JfQVRUQUNITUVOVDg6MzYwNzIsQ09MT1JfQVRUQUNITUVOVDk6MzYwNzMsQ09MT1JfQVRUQUNITUVOVDEwOjM2MDc0LENPTE9SX0FUVEFDSE1FTlQxMTozNjA3NSxDT0xPUl9BVFRBQ0hNRU5UMTI6MzYwNzYsQ09MT1JfQVRUQUNITUVOVDEzOjM2MDc3LENPTE9SX0FUVEFDSE1FTlQxNDozNjA3OCxDT0xPUl9BVFRBQ0hNRU5UMTU6MzYwNzksRlJBTUVCVUZGRVJfSU5DT01QTEVURV9NVUxUSVNBTVBMRTozNjE4MixNQVhfU0FNUExFUzozNjE4MyxIQUxGX0ZMT0FUOjUxMzEsUkc6MzMzMTksUkdfSU5URUdFUjozMzMyMCxSODozMzMyMSxSRzg6MzMzMjMsUjE2RjozMzMyNSxSMzJGOjMzMzI2LFJHMTZGOjMzMzI3LFJHMzJGOjMzMzI4LFI4STozMzMyOSxSOFVJOjMzMzMwLFIxNkk6MzMzMzEsUjE2VUk6MzMzMzIsUjMySTozMzMzMyxSMzJVSTozMzMzNCxSRzhJOjMzMzM1LFJHOFVJOjMzMzM2LFJHMTZJOjMzMzM3LFJHMTZVSTozMzMzOCxSRzMySTozMzMzOSxSRzMyVUk6MzMzNDAsVkVSVEVYX0FSUkFZX0JJTkRJTkc6MzQyMjksUjhfU05PUk06MzY3NTYsUkc4X1NOT1JNOjM2NzU3LFJHQjhfU05PUk06MzY3NTgsUkdCQThfU05PUk06MzY3NTksU0lHTkVEX05PUk1BTElaRUQ6MzY3NjQsQ09QWV9SRUFEX0JVRkZFUjozNjY2MixDT1BZX1dSSVRFX0JVRkZFUjozNjY2MyxDT1BZX1JFQURfQlVGRkVSX0JJTkRJTkc6MzY2NjIsQ09QWV9XUklURV9CVUZGRVJfQklORElORzozNjY2MyxVTklGT1JNX0JVRkZFUjozNTM0NSxVTklGT1JNX0JVRkZFUl9CSU5ESU5HOjM1MzY4LFVOSUZPUk1fQlVGRkVSX1NUQVJUOjM1MzY5LFVOSUZPUk1fQlVGRkVSX1NJWkU6MzUzNzAsTUFYX1ZFUlRFWF9VTklGT1JNX0JMT0NLUzozNTM3MSxNQVhfRlJBR01FTlRfVU5JRk9STV9CTE9DS1M6MzUzNzMsTUFYX0NPTUJJTkVEX1VOSUZPUk1fQkxPQ0tTOjM1Mzc0LE1BWF9VTklGT1JNX0JVRkZFUl9CSU5ESU5HUzozNTM3NSxNQVhfVU5JRk9STV9CTE9DS19TSVpFOjM1Mzc2LE1BWF9DT01CSU5FRF9WRVJURVhfVU5JRk9STV9DT01QT05FTlRTOjM1Mzc3LE1BWF9DT01CSU5FRF9GUkFHTUVOVF9VTklGT1JNX0NPTVBPTkVOVFM6MzUzNzksVU5JRk9STV9CVUZGRVJfT0ZGU0VUX0FMSUdOTUVOVDozNTM4MCxBQ1RJVkVfVU5JRk9STV9CTE9DS1M6MzUzODIsVU5JRk9STV9UWVBFOjM1MzgzLFVOSUZPUk1fU0laRTozNTM4NCxVTklGT1JNX0JMT0NLX0lOREVYOjM1Mzg2LFVOSUZPUk1fT0ZGU0VUOjM1Mzg3LFVOSUZPUk1fQVJSQVlfU1RSSURFOjM1Mzg4LFVOSUZPUk1fTUFUUklYX1NUUklERTozNTM4OSxVTklGT1JNX0lTX1JPV19NQUpPUjozNTM5MCxVTklGT1JNX0JMT0NLX0JJTkRJTkc6MzUzOTEsVU5JRk9STV9CTE9DS19EQVRBX1NJWkU6MzUzOTIsVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STVM6MzUzOTQsVU5JRk9STV9CTE9DS19BQ1RJVkVfVU5JRk9STV9JTkRJQ0VTOjM1Mzk1LFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9WRVJURVhfU0hBREVSOjM1Mzk2LFVOSUZPUk1fQkxPQ0tfUkVGRVJFTkNFRF9CWV9GUkFHTUVOVF9TSEFERVI6MzUzOTgsSU5WQUxJRF9JTkRFWDo0Mjk0OTY3Mjk1LE1BWF9WRVJURVhfT1VUUFVUX0NPTVBPTkVOVFM6MzcxNTQsTUFYX0ZSQUdNRU5UX0lOUFVUX0NPTVBPTkVOVFM6MzcxNTcsTUFYX1NFUlZFUl9XQUlUX1RJTUVPVVQ6MzcxMzcsT0JKRUNUX1RZUEU6MzcxMzgsU1lOQ19DT05ESVRJT046MzcxMzksU1lOQ19TVEFUVVM6MzcxNDAsU1lOQ19GTEFHUzozNzE0MSxTWU5DX0ZFTkNFOjM3MTQyLFNZTkNfR1BVX0NPTU1BTkRTX0NPTVBMRVRFOjM3MTQzLFVOU0lHTkFMRUQ6MzcxNDQsU0lHTkFMRUQ6MzcxNDUsQUxSRUFEWV9TSUdOQUxFRDozNzE0NixUSU1FT1VUX0VYUElSRUQ6MzcxNDcsQ09ORElUSU9OX1NBVElTRklFRDozNzE0OCxXQUlUX0ZBSUxFRDozNzE0OSxTWU5DX0ZMVVNIX0NPTU1BTkRTX0JJVDoxLFZFUlRFWF9BVFRSSUJfQVJSQVlfRElWSVNPUjozNTA3MCxBTllfU0FNUExFU19QQVNTRUQ6MzU4ODcsQU5ZX1NBTVBMRVNfUEFTU0VEX0NPTlNFUlZBVElWRTozNjIwMixTQU1QTEVSX0JJTkRJTkc6MzUwOTcsUkdCMTBfQTJVSTozNjk3NSxJTlRfMl8xMF8xMF8xMF9SRVY6MzYyNTUsVFJBTlNGT1JNX0ZFRURCQUNLOjM2Mzg2LFRSQU5TRk9STV9GRUVEQkFDS19QQVVTRUQ6MzYzODcsVFJBTlNGT1JNX0ZFRURCQUNLX0FDVElWRTozNjM4OCxUUkFOU0ZPUk1fRkVFREJBQ0tfQklORElORzozNjM4OSxDT01QUkVTU0VEX1IxMV9FQUM6Mzc0ODgsQ09NUFJFU1NFRF9TSUdORURfUjExX0VBQzozNzQ4OSxDT01QUkVTU0VEX1JHMTFfRUFDOjM3NDkwLENPTVBSRVNTRURfU0lHTkVEX1JHMTFfRUFDOjM3NDkxLENPTVBSRVNTRURfUkdCOF9FVEMyOjM3NDkyLENPTVBSRVNTRURfU1JHQjhfRVRDMjozNzQ5MyxDT01QUkVTU0VEX1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyOjM3NDk0LENPTVBSRVNTRURfU1JHQjhfUFVOQ0hUSFJPVUdIX0FMUEhBMV9FVEMyOjM3NDk1LENPTVBSRVNTRURfUkdCQThfRVRDMl9FQUM6Mzc0OTYsQ09NUFJFU1NFRF9TUkdCOF9BTFBIQThfRVRDMl9FQUM6Mzc0OTcsVEVYVFVSRV9JTU1VVEFCTEVfRk9STUFUOjM3MTY3LE1BWF9FTEVNRU5UX0lOREVYOjM2MjAzLFRFWFRVUkVfSU1NVVRBQkxFX0xFVkVMUzozMzUwMyxNQVhfVEVYVFVSRV9NQVhfQU5JU09UUk9QWV9FWFQ6MzQwNDd9LHF0PU9iamVjdC5mcmVlemUodFApfSk7dmFyIGNlLG50LEZlPVooKCk9PntJdCgpO2Z0KCk7SHQoKTskcygpO2NlPXtCWVRFOnF0LkJZVEUsVU5TSUdORURfQllURTpxdC5VTlNJR05FRF9CWVRFLFNIT1JUOnF0LlNIT1JULFVOU0lHTkVEX1NIT1JUOnF0LlVOU0lHTkVEX1NIT1JULElOVDpxdC5JTlQsVU5TSUdORURfSU5UOnF0LlVOU0lHTkVEX0lOVCxGTE9BVDpxdC5GTE9BVCxET1VCTEU6cXQuRE9VQkxFfTtjZS5nZXRTaXplSW5CeXRlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQuIik7c3dpdGNoKHQpe2Nhc2UgY2UuQllURTpyZXR1cm4gSW50OEFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgY2UuVU5TSUdORURfQllURTpyZXR1cm4gVWludDhBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIGNlLlNIT1JUOnJldHVybiBJbnQxNkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgY2UuVU5TSUdORURfU0hPUlQ6cmV0dXJuIFVpbnQxNkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgY2UuSU5UOnJldHVybiBJbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UO2Nhc2UgY2UuVU5TSUdORURfSU5UOnJldHVybiBVaW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtjYXNlIGNlLkZMT0FUOnJldHVybiBGbG9hdDMyQXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSBjZS5ET1VCTEU6cmV0dXJuIEZsb2F0NjRBcnJheS5CWVRFU19QRVJfRUxFTUVOVDtkZWZhdWx0OnRocm93IG5ldyBGKCJjb21wb25lbnREYXRhdHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O2NlLmZyb21UeXBlZEFycmF5PWZ1bmN0aW9uKHQpe2lmKHQgaW5zdGFuY2VvZiBJbnQ4QXJyYXkpcmV0dXJuIGNlLkJZVEU7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIGNlLlVOU0lHTkVEX0JZVEU7aWYodCBpbnN0YW5jZW9mIEludDE2QXJyYXkpcmV0dXJuIGNlLlNIT1JUO2lmKHQgaW5zdGFuY2VvZiBVaW50MTZBcnJheSlyZXR1cm4gY2UuVU5TSUdORURfU0hPUlQ7aWYodCBpbnN0YW5jZW9mIEludDMyQXJyYXkpcmV0dXJuIGNlLklOVDtpZih0IGluc3RhbmNlb2YgVWludDMyQXJyYXkpcmV0dXJuIGNlLlVOU0lHTkVEX0lOVDtpZih0IGluc3RhbmNlb2YgRmxvYXQzMkFycmF5KXJldHVybiBjZS5GTE9BVDtpZih0IGluc3RhbmNlb2YgRmxvYXQ2NEFycmF5KXJldHVybiBjZS5ET1VCTEU7dGhyb3cgbmV3IEYoImFycmF5IG11c3QgYmUgYW4gSW50OEFycmF5LCBVaW50OEFycmF5LCBJbnQxNkFycmF5LCBVaW50MTZBcnJheSwgSW50MzJBcnJheSwgVWludDMyQXJyYXksIEZsb2F0MzJBcnJheSwgb3IgRmxvYXQ2NEFycmF5LiIpfTtjZS52YWxpZGF0ZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KSYmKHQ9PT1jZS5CWVRFfHx0PT09Y2UuVU5TSUdORURfQllURXx8dD09PWNlLlNIT1JUfHx0PT09Y2UuVU5TSUdORURfU0hPUlR8fHQ9PT1jZS5JTlR8fHQ9PT1jZS5VTlNJR05FRF9JTlR8fHQ9PT1jZS5GTE9BVHx8dD09PWNlLkRPVUJMRSl9O2NlLmNyZWF0ZVR5cGVkQXJyYXk9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiY29tcG9uZW50RGF0YXR5cGUgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoInZhbHVlc09yTGVuZ3RoIGlzIHJlcXVpcmVkLiIpO3N3aXRjaCh0KXtjYXNlIGNlLkJZVEU6cmV0dXJuIG5ldyBJbnQ4QXJyYXkoZSk7Y2FzZSBjZS5VTlNJR05FRF9CWVRFOnJldHVybiBuZXcgVWludDhBcnJheShlKTtjYXNlIGNlLlNIT1JUOnJldHVybiBuZXcgSW50MTZBcnJheShlKTtjYXNlIGNlLlVOU0lHTkVEX1NIT1JUOnJldHVybiBuZXcgVWludDE2QXJyYXkoZSk7Y2FzZSBjZS5JTlQ6cmV0dXJuIG5ldyBJbnQzMkFycmF5KGUpO2Nhc2UgY2UuVU5TSUdORURfSU5UOnJldHVybiBuZXcgVWludDMyQXJyYXkoZSk7Y2FzZSBjZS5GTE9BVDpyZXR1cm4gbmV3IEZsb2F0MzJBcnJheShlKTtjYXNlIGNlLkRPVUJMRTpyZXR1cm4gbmV3IEZsb2F0NjRBcnJheShlKTtkZWZhdWx0OnRocm93IG5ldyBGKCJjb21wb25lbnREYXRhdHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O2NlLmNyZWF0ZUFycmF5QnVmZmVyVmlldz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgRigiY29tcG9uZW50RGF0YXR5cGUgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImJ1ZmZlciBpcyByZXF1aXJlZC4iKTtzd2l0Y2gobj14KG4sMCksbz14KG8sKGUuYnl0ZUxlbmd0aC1uKS9jZS5nZXRTaXplSW5CeXRlcyh0KSksdCl7Y2FzZSBjZS5CWVRFOnJldHVybiBuZXcgSW50OEFycmF5KGUsbixvKTtjYXNlIGNlLlVOU0lHTkVEX0JZVEU6cmV0dXJuIG5ldyBVaW50OEFycmF5KGUsbixvKTtjYXNlIGNlLlNIT1JUOnJldHVybiBuZXcgSW50MTZBcnJheShlLG4sbyk7Y2FzZSBjZS5VTlNJR05FRF9TSE9SVDpyZXR1cm4gbmV3IFVpbnQxNkFycmF5KGUsbixvKTtjYXNlIGNlLklOVDpyZXR1cm4gbmV3IEludDMyQXJyYXkoZSxuLG8pO2Nhc2UgY2UuVU5TSUdORURfSU5UOnJldHVybiBuZXcgVWludDMyQXJyYXkoZSxuLG8pO2Nhc2UgY2UuRkxPQVQ6cmV0dXJuIG5ldyBGbG9hdDMyQXJyYXkoZSxuLG8pO2Nhc2UgY2UuRE9VQkxFOnJldHVybiBuZXcgRmxvYXQ2NEFycmF5KGUsbixvKTtkZWZhdWx0OnRocm93IG5ldyBGKCJjb21wb25lbnREYXRhdHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O2NlLmZyb21OYW1lPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIkJZVEUiOnJldHVybiBjZS5CWVRFO2Nhc2UiVU5TSUdORURfQllURSI6cmV0dXJuIGNlLlVOU0lHTkVEX0JZVEU7Y2FzZSJTSE9SVCI6cmV0dXJuIGNlLlNIT1JUO2Nhc2UiVU5TSUdORURfU0hPUlQiOnJldHVybiBjZS5VTlNJR05FRF9TSE9SVDtjYXNlIklOVCI6cmV0dXJuIGNlLklOVDtjYXNlIlVOU0lHTkVEX0lOVCI6cmV0dXJuIGNlLlVOU0lHTkVEX0lOVDtjYXNlIkZMT0FUIjpyZXR1cm4gY2UuRkxPQVQ7Y2FzZSJET1VCTEUiOnJldHVybiBjZS5ET1VCTEU7ZGVmYXVsdDp0aHJvdyBuZXcgRigibmFtZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O250PU9iamVjdC5mcmVlemUoY2UpfSk7dmFyIGVQLE1pLExwPVooKCk9PntlUD17Tk9ORTowLFRSSUFOR0xFUzoxLExJTkVTOjIsUE9MWUxJTkVTOjN9LE1pPU9iamVjdC5mcmVlemUoZVApfSk7ZnVuY3Rpb24gWXQodCxlLG4sbyl7dGhpc1swXT14KHQsMCksdGhpc1sxXT14KG4sMCksdGhpc1syXT14KGUsMCksdGhpc1szXT14KG8sMCl9dmFyIG5QLG9QLG1iLGhiLHJQLGlQLFlvLHdmPVooKCk9PntVZSgpO1h0KCk7SXQoKTtmdCgpO0h0KCk7WXQucGFja2VkTGVuZ3RoPTQ7WXQucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10WzBdLGVbbisrXT10WzFdLGVbbisrXT10WzJdLGVbbisrXT10WzNdLGV9O1l0LnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBZdCksblswXT10W2UrK10sblsxXT10W2UrK10sblsyXT10W2UrK10sblszXT10W2UrK10sbn07WXQucGFja0FycmF5PWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJhcnJheSIsdCk7bGV0IG49dC5sZW5ndGgsbz1uKjQ7aWYoIWgoZSkpZT1uZXcgQXJyYXkobyk7ZWxzZXtpZighQXJyYXkuaXNBcnJheShlKSYmZS5sZW5ndGghPT1vKXRocm93IG5ldyBGKCJJZiByZXN1bHQgaXMgYSB0eXBlZCBhcnJheSwgaXQgbXVzdCBoYXZlIGV4YWN0bHkgYXJyYXkubGVuZ3RoICogNCBlbGVtZW50cyIpO2UubGVuZ3RoIT09byYmKGUubGVuZ3RoPW8pfWZvcihsZXQgcj0wO3I8bjsrK3IpWXQucGFjayh0W3JdLGUscio0KTtyZXR1cm4gZX07WXQudW5wYWNrQXJyYXk9ZnVuY3Rpb24odCxlKXtpZih5LmRlZmluZWQoImFycmF5Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiYXJyYXkubGVuZ3RoIix0Lmxlbmd0aCw0KSx0Lmxlbmd0aCU0IT09MCl0aHJvdyBuZXcgRigiYXJyYXkgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiA0LiIpO2xldCBuPXQubGVuZ3RoO2goZSk/ZS5sZW5ndGg9bi80OmU9bmV3IEFycmF5KG4vNCk7Zm9yKGxldCBvPTA7bzxuO28rPTQpe2xldCByPW8vNDtlW3JdPVl0LnVucGFjayh0LG8sZVtyXSl9cmV0dXJuIGV9O1l0LmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZVswXT10WzBdLGVbMV09dFsxXSxlWzJdPXRbMl0sZVszXT10WzNdLGUpOm5ldyBZdCh0WzBdLHRbMl0sdFsxXSx0WzNdKX07WXQuZnJvbUFycmF5PVl0LnVucGFjaztZdC5mcm9tQ29sdW1uTWFqb3JBcnJheT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlcyIsdCksWXQuY2xvbmUodCxlKX07WXQuZnJvbVJvd01ham9yQXJyYXk9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS5kZWZpbmVkKCJ2YWx1ZXMiLHQpLGgoZSk/KGVbMF09dFswXSxlWzFdPXRbMl0sZVsyXT10WzFdLGVbM109dFszXSxlKTpuZXcgWXQodFswXSx0WzFdLHRbMl0sdFszXSl9O1l0LmZyb21TY2FsZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInNjYWxlIix0KSxoKGUpPyhlWzBdPXQueCxlWzFdPTAsZVsyXT0wLGVbM109dC55LGUpOm5ldyBZdCh0LngsMCwwLHQueSl9O1l0LmZyb21Vbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2YubnVtYmVyKCJzY2FsZSIsdCksaChlKT8oZVswXT10LGVbMV09MCxlWzJdPTAsZVszXT10LGUpOm5ldyBZdCh0LDAsMCx0KX07WXQuZnJvbVJvdGF0aW9uPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2YubnVtYmVyKCJhbmdsZSIsdCk7bGV0IG49TWF0aC5jb3ModCksbz1NYXRoLnNpbih0KTtyZXR1cm4gaChlKT8oZVswXT1uLGVbMV09byxlWzJdPS1vLGVbM109bixlKTpuZXcgWXQobiwtbyxvLG4pfTtZdC50b0FycmF5PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSxoKGUpPyhlWzBdPXRbMF0sZVsxXT10WzFdLGVbMl09dFsyXSxlWzNdPXRbM10sZSk6W3RbMF0sdFsxXSx0WzJdLHRbM11dfTtZdC5nZXRFbGVtZW50SW5kZXg9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoInJvdyIsZSwwKSx5LnR5cGVPZi5udW1iZXIubGVzc1RoYW5PckVxdWFscygicm93IixlLDEpLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJjb2x1bW4iLHQsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImNvbHVtbiIsdCwxKSx0KjIrZX07WXQuZ2V0Q29sdW1uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGV4IixlLDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJpbmRleCIsZSwxKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89ZSoyLHI9dFtvXSxpPXRbbysxXTtyZXR1cm4gbi54PXIsbi55PWksbn07WXQuc2V0Q29sdW1uPWZ1bmN0aW9uKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDEpLHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksbz1ZdC5jbG9uZSh0LG8pO2xldCByPWUqMjtyZXR1cm4gb1tyXT1uLngsb1tyKzFdPW4ueSxvfTtZdC5nZXRSb3c9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDEpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKTtsZXQgbz10W2VdLHI9dFtlKzJdO3JldHVybiBuLng9byxuLnk9cixufTtZdC5zZXRSb3c9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiaW5kZXgiLGUsMCkseS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoImluZGV4IixlLDEpLHkudHlwZU9mLm9iamVjdCgiY2FydGVzaWFuIixuKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbyksbz1ZdC5jbG9uZSh0LG8pLG9bZV09bi54LG9bZSsyXT1uLnksb307blA9bmV3IHR0O1l0LnNldFNjYWxlPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPVl0LmdldFNjYWxlKHQsblApLHI9ZS54L28ueCxpPWUueS9vLnk7cmV0dXJuIG5bMF09dFswXSpyLG5bMV09dFsxXSpyLG5bMl09dFsyXSppLG5bM109dFszXSppLG59O29QPW5ldyB0dDtZdC5zZXRVbmlmb3JtU2NhbGU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbik7bGV0IG89WXQuZ2V0U2NhbGUodCxvUCkscj1lL28ueCxpPWUvby55O3JldHVybiBuWzBdPXRbMF0qcixuWzFdPXRbMV0qcixuWzJdPXRbMl0qaSxuWzNdPXRbM10qaSxufTttYj1uZXcgdHQ7WXQuZ2V0U2NhbGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlLng9dHQubWFnbml0dWRlKHR0LmZyb21FbGVtZW50cyh0WzBdLHRbMV0sbWIpKSxlLnk9dHQubWFnbml0dWRlKHR0LmZyb21FbGVtZW50cyh0WzJdLHRbM10sbWIpKSxlfTtoYj1uZXcgdHQ7WXQuZ2V0TWF4aW11bVNjYWxlPWZ1bmN0aW9uKHQpe3JldHVybiBZdC5nZXRTY2FsZSh0LGhiKSx0dC5tYXhpbXVtQ29tcG9uZW50KGhiKX07clA9bmV3IHR0O1l0LnNldFJvdGF0aW9uPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPVl0LmdldFNjYWxlKHQsclApO3JldHVybiBuWzBdPWVbMF0qby54LG5bMV09ZVsxXSpvLngsblsyXT1lWzJdKm8ueSxuWzNdPWVbM10qby55LG59O2lQPW5ldyB0dDtZdC5nZXRSb3RhdGlvbj1mdW5jdGlvbih0LGUpe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSk7bGV0IG49WXQuZ2V0U2NhbGUodCxpUCk7cmV0dXJuIGVbMF09dFswXS9uLngsZVsxXT10WzFdL24ueCxlWzJdPXRbMl0vbi55LGVbM109dFszXS9uLnksZX07WXQubXVsdGlwbHk9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbMF0qZVswXSt0WzJdKmVbMV0scj10WzBdKmVbMl0rdFsyXSplWzNdLGk9dFsxXSplWzBdK3RbM10qZVsxXSxzPXRbMV0qZVsyXSt0WzNdKmVbM107cmV0dXJuIG5bMF09byxuWzFdPWksblsyXT1yLG5bM109cyxufTtZdC5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0rZVswXSxuWzFdPXRbMV0rZVsxXSxuWzJdPXRbMl0rZVsyXSxuWzNdPXRbM10rZVszXSxufTtZdC5zdWJ0cmFjdD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXS1lWzBdLG5bMV09dFsxXS1lWzFdLG5bMl09dFsyXS1lWzJdLG5bM109dFszXS1lWzNdLG59O1l0Lm11bHRpcGx5QnlWZWN0b3I9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pO2xldCBvPXRbMF0qZS54K3RbMl0qZS55LHI9dFsxXSplLngrdFszXSplLnk7cmV0dXJuIG4ueD1vLG4ueT1yLG59O1l0Lm11bHRpcGx5QnlTY2FsYXI9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuWzBdPXRbMF0qZSxuWzFdPXRbMV0qZSxuWzJdPXRbMl0qZSxuWzNdPXRbM10qZSxufTtZdC5tdWx0aXBseUJ5U2NhbGU9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJzY2FsZSIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG5bMF09dFswXSplLngsblsxXT10WzFdKmUueCxuWzJdPXRbMl0qZS55LG5bM109dFszXSplLnksbn07WXQubXVsdGlwbHlCeVVuaWZvcm1TY2FsZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5udW1iZXIoInNjYWxlIixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksblswXT10WzBdKmUsblsxXT10WzFdKmUsblsyXT10WzJdKmUsblszXT10WzNdKmUsbn07WXQubmVnYXRlPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibWF0cml4Iix0KSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsZSksZVswXT0tdFswXSxlWzFdPS10WzFdLGVbMl09LXRbMl0sZVszXT0tdFszXSxlfTtZdC50cmFuc3Bvc2U9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoIm1hdHJpeCIsdCkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLGUpO2xldCBuPXRbMF0sbz10WzJdLHI9dFsxXSxpPXRbM107cmV0dXJuIGVbMF09bixlWzFdPW8sZVsyXT1yLGVbM109aSxlfTtZdC5hYnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJtYXRyaXgiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSxlWzBdPU1hdGguYWJzKHRbMF0pLGVbMV09TWF0aC5hYnModFsxXSksZVsyXT1NYXRoLmFicyh0WzJdKSxlWzNdPU1hdGguYWJzKHRbM10pLGV9O1l0LmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmdFswXT09PWVbMF0mJnRbMV09PT1lWzFdJiZ0WzJdPT09ZVsyXSYmdFszXT09PWVbM119O1l0LmVxdWFsc0FycmF5PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdFswXT09PWVbbl0mJnRbMV09PT1lW24rMV0mJnRbMl09PT1lW24rMl0mJnRbM109PT1lW24rM119O1l0LmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiBuPXgobiwwKSx0PT09ZXx8aCh0KSYmaChlKSYmTWF0aC5hYnModFswXS1lWzBdKTw9biYmTWF0aC5hYnModFsxXS1lWzFdKTw9biYmTWF0aC5hYnModFsyXS1lWzJdKTw9biYmTWF0aC5hYnModFszXS1lWzNdKTw9bn07WXQuSURFTlRJVFk9T2JqZWN0LmZyZWV6ZShuZXcgWXQoMSwwLDAsMSkpO1l0LlpFUk89T2JqZWN0LmZyZWV6ZShuZXcgWXQoMCwwLDAsMCkpO1l0LkNPTFVNTjBST1cwPTA7WXQuQ09MVU1OMFJPVzE9MTtZdC5DT0xVTU4xUk9XMD0yO1l0LkNPTFVNTjFST1cxPTM7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoWXQucHJvdG90eXBlLHtsZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiBZdC5wYWNrZWRMZW5ndGh9fX0pO1l0LnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gWXQuY2xvbmUodGhpcyx0KX07WXQucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gWXQuZXF1YWxzKHRoaXMsdCl9O1l0LnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIFl0LmVxdWFsc0Vwc2lsb24odGhpcyx0LGUpfTtZdC5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm5gKCR7dGhpc1swXX0sICR7dGhpc1syXX0pCigke3RoaXNbMV19LCAke3RoaXNbM119KWB9O1lvPVl0fSk7dmFyIG1vLEJ0LHRuPVooKCk9PnskcygpO21vPXtQT0lOVFM6cXQuUE9JTlRTLExJTkVTOnF0LkxJTkVTLExJTkVfTE9PUDpxdC5MSU5FX0xPT1AsTElORV9TVFJJUDpxdC5MSU5FX1NUUklQLFRSSUFOR0xFUzpxdC5UUklBTkdMRVMsVFJJQU5HTEVfU1RSSVA6cXQuVFJJQU5HTEVfU1RSSVAsVFJJQU5HTEVfRkFOOnF0LlRSSUFOR0xFX0ZBTn07bW8uaXNMaW5lcz1mdW5jdGlvbih0KXtyZXR1cm4gdD09PW1vLkxJTkVTfHx0PT09bW8uTElORV9MT09QfHx0PT09bW8uTElORV9TVFJJUH07bW8uaXNUcmlhbmdsZXM9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1tby5UUklBTkdMRVN8fHQ9PT1tby5UUklBTkdMRV9TVFJJUHx8dD09PW1vLlRSSUFOR0xFX0ZBTn07bW8udmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1tby5QT0lOVFN8fHQ9PT1tby5MSU5FU3x8dD09PW1vLkxJTkVfTE9PUHx8dD09PW1vLkxJTkVfU1RSSVB8fHQ9PT1tby5UUklBTkdMRVN8fHQ9PT1tby5UUklBTkdMRV9TVFJJUHx8dD09PW1vLlRSSUFOR0xFX0ZBTn07QnQ9T2JqZWN0LmZyZWV6ZShtbyl9KTtmdW5jdGlvbiB2aCh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLmF0dHJpYnV0ZXMiLHQuYXR0cmlidXRlcyksdGhpcy5hdHRyaWJ1dGVzPXQuYXR0cmlidXRlcyx0aGlzLmluZGljZXM9dC5pbmRpY2VzLHRoaXMucHJpbWl0aXZlVHlwZT14KHQucHJpbWl0aXZlVHlwZSxCdC5UUklBTkdMRVMpLHRoaXMuYm91bmRpbmdTcGhlcmU9dC5ib3VuZGluZ1NwaGVyZSx0aGlzLmdlb21ldHJ5VHlwZT14KHQuZ2VvbWV0cnlUeXBlLE1pLk5PTkUpLHRoaXMuYm91bmRpbmdTcGhlcmVDVj10LmJvdW5kaW5nU3BoZXJlQ1YsdGhpcy5vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGV9dmFyIHNQLGNQLF9iLGFQLGZQLHVQLGxQLHBQLGRQLG1QLFV0LFhlPVooKCk9PntVZSgpO0Z0KCk7SWUoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO0xwKCk7d2YoKTtCbigpO1VuKCk7dG4oKTtLbygpO1RuKCk7Y3MoKTt2aC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcz1mdW5jdGlvbih0KXt5LnR5cGVPZi5vYmplY3QoImdlb21ldHJ5Iix0KTtsZXQgZT0tMTtmb3IobGV0IG4gaW4gdC5hdHRyaWJ1dGVzKWlmKHQuYXR0cmlidXRlcy5oYXNPd25Qcm9wZXJ0eShuKSYmaCh0LmF0dHJpYnV0ZXNbbl0pJiZoKHQuYXR0cmlidXRlc1tuXS52YWx1ZXMpKXtsZXQgbz10LmF0dHJpYnV0ZXNbbl0scj1vLnZhbHVlcy5sZW5ndGgvby5jb21wb25lbnRzUGVyQXR0cmlidXRlO2lmKGUhPT1yJiZlIT09LTEpdGhyb3cgbmV3IEYoIkFsbCBhdHRyaWJ1dGUgbGlzdHMgbXVzdCBoYXZlIHRoZSBzYW1lIG51bWJlciBvZiBhdHRyaWJ1dGVzLiIpO2U9cn1yZXR1cm4gZX07c1A9bmV3IGN0LGNQPW5ldyBhLF9iPW5ldyBzdCxhUD1bbmV3IGN0LG5ldyBjdCxuZXcgY3RdLGZQPVtuZXcgdHQsbmV3IHR0LG5ldyB0dF0sdVA9W25ldyB0dCxuZXcgdHQsbmV3IHR0XSxsUD1uZXcgYSxwUD1uZXcgZWUsZFA9bmV3IHN0LG1QPW5ldyBZbzt2aC5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz1mdW5jdGlvbih0LGUsbixvKXtsZXQgcixpPU50LmNlbnRlcihvLHNQKSxzPWN0LnRvQ2FydGVzaWFuKGksbixjUCksZj1Yby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShzLG4sX2IpLHU9c3QuaW52ZXJzZShmLF9iKSxjPWZQLGw9YVA7bFswXS5sb25naXR1ZGU9by53ZXN0LGxbMF0ubGF0aXR1ZGU9by5zb3V0aCxsWzFdLmxvbmdpdHVkZT1vLndlc3QsbFsxXS5sYXRpdHVkZT1vLm5vcnRoLGxbMl0ubG9uZ2l0dWRlPW8uZWFzdCxsWzJdLmxhdGl0dWRlPW8uc291dGg7bGV0IHA9bFA7Zm9yKHI9MDtyPDM7cisrKWN0LnRvQ2FydGVzaWFuKGxbcl0sbixwKSxwPXN0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKHUscCxwKSxjW3JdLng9cC54LGNbcl0ueT1wLnk7bGV0IGQ9ZWUuZnJvbUF4aXNBbmdsZShhLlVOSVRfWiwtZSxwUCksbT1RLmZyb21RdWF0ZXJuaW9uKGQsZFApLF89dC5sZW5ndGgsZz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksYj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdz1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksTz1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Zm9yKHI9MDtyPF87cisrKXA9c3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IodSx0W3JdLHApLHA9US5tdWx0aXBseUJ5VmVjdG9yKG0scCxwKSxnPU1hdGgubWluKGcscC54KSxiPU1hdGgubWluKGIscC55KSx3PU1hdGgubWF4KHcscC54KSxPPU1hdGgubWF4KE8scC55KTtsZXQgRT1Zby5mcm9tUm90YXRpb24oZSxtUCksVD11UDtUWzBdLng9ZyxUWzBdLnk9YixUWzFdLng9ZyxUWzFdLnk9TyxUWzJdLng9dyxUWzJdLnk9YjtsZXQgQz1jWzBdLE49Y1syXS54LUMueCxJPWNbMV0ueS1DLnk7Zm9yKHI9MDtyPDM7cisrKXtsZXQgQT1UW3JdO1lvLm11bHRpcGx5QnlWZWN0b3IoRSxBLEEpLEEueD0oQS54LUMueCkvTixBLnk9KEEueS1DLnkpL0l9bGV0IEQ9VFswXSx2PVRbMV0sTD1UWzJdLFU9bmV3IEFycmF5KDYpO3JldHVybiB0dC5wYWNrKEQsVSksdHQucGFjayh2LFUsMiksdHQucGFjayhMLFUsNCksVX07VXQ9dmh9KTtmdW5jdGlvbiBoUCh0KXtpZih0PXgodCx4LkVNUFRZX09CSkVDVCksIWgodC5jb21wb25lbnREYXRhdHlwZSkpdGhyb3cgbmV3IEYoIm9wdGlvbnMuY29tcG9uZW50RGF0YXR5cGUgaXMgcmVxdWlyZWQuIik7aWYoIWgodC5jb21wb25lbnRzUGVyQXR0cmlidXRlKSl0aHJvdyBuZXcgRigib3B0aW9ucy5jb21wb25lbnRzUGVyQXR0cmlidXRlIGlzIHJlcXVpcmVkLiIpO2lmKHQuY29tcG9uZW50c1BlckF0dHJpYnV0ZTwxfHx0LmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU+NCl0aHJvdyBuZXcgRigib3B0aW9ucy5jb21wb25lbnRzUGVyQXR0cmlidXRlIG11c3QgYmUgYmV0d2VlbiAxIGFuZCA0LiIpO2lmKCFoKHQudmFsdWVzKSl0aHJvdyBuZXcgRigib3B0aW9ucy52YWx1ZXMgaXMgcmVxdWlyZWQuIik7dGhpcy5jb21wb25lbnREYXRhdHlwZT10LmNvbXBvbmVudERhdGF0eXBlLHRoaXMuY29tcG9uZW50c1BlckF0dHJpYnV0ZT10LmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsdGhpcy5ub3JtYWxpemU9eCh0Lm5vcm1hbGl6ZSwhMSksdGhpcy52YWx1ZXM9dC52YWx1ZXN9dmFyIGl0LFllPVooKCk9PntJdCgpO2Z0KCk7SHQoKTtpdD1oUH0pO2Z1bmN0aW9uIF9QKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx0aGlzLnBvc2l0aW9uPXQucG9zaXRpb24sdGhpcy5ub3JtYWw9dC5ub3JtYWwsdGhpcy5zdD10LnN0LHRoaXMuYml0YW5nZW50PXQuYml0YW5nZW50LHRoaXMudGFuZ2VudD10LnRhbmdlbnQsdGhpcy5jb2xvcj10LmNvbG9yfXZhciBpZSxhbj1aKCgpPT57SXQoKTtpZT1fUH0pO3ZhciBIZSx5YixnYj1aKCgpPT57VWUoKTtGdCgpO2hyKCk7WHQoKTtIdCgpO3dmKCk7Qm4oKTtVbigpO0hlPXtTQ0FMQVI6IlNDQUxBUiIsVkVDMjoiVkVDMiIsVkVDMzoiVkVDMyIsVkVDNDoiVkVDNCIsTUFUMjoiTUFUMiIsTUFUMzoiTUFUMyIsTUFUNDoiTUFUNCJ9O0hlLmdldE1hdGhUeXBlPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEhlLlNDQUxBUjpyZXR1cm4gTnVtYmVyO2Nhc2UgSGUuVkVDMjpyZXR1cm4gdHQ7Y2FzZSBIZS5WRUMzOnJldHVybiBhO2Nhc2UgSGUuVkVDNDpyZXR1cm4gaGU7Y2FzZSBIZS5NQVQyOnJldHVybiBZbztjYXNlIEhlLk1BVDM6cmV0dXJuIFE7Y2FzZSBIZS5NQVQ0OnJldHVybiBzdDtkZWZhdWx0OnRocm93IG5ldyBGKCJhdHRyaWJ1dGVUeXBlIGlzIG5vdCBhIHZhbGlkIHZhbHVlLiIpfX07SGUuZ2V0TnVtYmVyT2ZDb21wb25lbnRzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIEhlLlNDQUxBUjpyZXR1cm4gMTtjYXNlIEhlLlZFQzI6cmV0dXJuIDI7Y2FzZSBIZS5WRUMzOnJldHVybiAzO2Nhc2UgSGUuVkVDNDpjYXNlIEhlLk1BVDI6cmV0dXJuIDQ7Y2FzZSBIZS5NQVQzOnJldHVybiA5O2Nhc2UgSGUuTUFUNDpyZXR1cm4gMTY7ZGVmYXVsdDp0aHJvdyBuZXcgRigiYXR0cmlidXRlVHlwZSBpcyBub3QgYSB2YWxpZCB2YWx1ZS4iKX19O0hlLmdldEF0dHJpYnV0ZUxvY2F0aW9uQ291bnQ9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgSGUuU0NBTEFSOmNhc2UgSGUuVkVDMjpjYXNlIEhlLlZFQzM6Y2FzZSBIZS5WRUM0OnJldHVybiAxO2Nhc2UgSGUuTUFUMjpyZXR1cm4gMjtjYXNlIEhlLk1BVDM6cmV0dXJuIDM7Y2FzZSBIZS5NQVQ0OnJldHVybiA0O2RlZmF1bHQ6dGhyb3cgbmV3IEYoImF0dHJpYnV0ZVR5cGUgaXMgbm90IGEgdmFsaWQgdmFsdWUuIil9fTtIZS5nZXRHbHNsVHlwZT1mdW5jdGlvbih0KXtzd2l0Y2goeS50eXBlT2Yuc3RyaW5nKCJhdHRyaWJ1dGVUeXBlIix0KSx0KXtjYXNlIEhlLlNDQUxBUjpyZXR1cm4iZmxvYXQiO2Nhc2UgSGUuVkVDMjpyZXR1cm4idmVjMiI7Y2FzZSBIZS5WRUMzOnJldHVybiJ2ZWMzIjtjYXNlIEhlLlZFQzQ6cmV0dXJuInZlYzQiO2Nhc2UgSGUuTUFUMjpyZXR1cm4ibWF0MiI7Y2FzZSBIZS5NQVQzOnJldHVybiJtYXQzIjtjYXNlIEhlLk1BVDQ6cmV0dXJuIm1hdDQiO2RlZmF1bHQ6dGhyb3cgbmV3IEYoImF0dHJpYnV0ZVR5cGUgaXMgbm90IGEgdmFsaWQgdmFsdWUuIil9fTt5Yj1PYmplY3QuZnJlZXplKEhlKX0pO2Z1bmN0aW9uIERwKHQpe3JldHVybiB3YlswXT10LHdiWzBdfWZ1bmN0aW9uIExoKHQpe3JldHVybiB0Pj4xXi0odCYxKX12YXIgQWIsYmIsZW4sVGYsd2IsRGgsbm4sYXM9WigoKT0+e1VlKCk7RnQoKTtGZSgpO1h0KCk7ZnQoKTtIdCgpO1d0KCk7Z2IoKTtBYj0xLzI1NixiYj0yNTYsZW49e307ZW4ub2N0RW5jb2RlSW5SYW5nZT1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJ2ZWN0b3IiLHQpLHkuZGVmaW5lZCgicmVzdWx0IixuKTtsZXQgbz1hLm1hZ25pdHVkZVNxdWFyZWQodCk7aWYoTWF0aC5hYnMoby0xKT5NLkVQU0lMT042KXRocm93IG5ldyBGKCJ2ZWN0b3IgbXVzdCBiZSBub3JtYWxpemVkLiIpO2lmKG4ueD10LngvKE1hdGguYWJzKHQueCkrTWF0aC5hYnModC55KStNYXRoLmFicyh0LnopKSxuLnk9dC55LyhNYXRoLmFicyh0LngpK01hdGguYWJzKHQueSkrTWF0aC5hYnModC56KSksdC56PDApe2xldCByPW4ueCxpPW4ueTtuLng9KDEtTWF0aC5hYnMoaSkpKk0uc2lnbk5vdFplcm8ociksbi55PSgxLU1hdGguYWJzKHIpKSpNLnNpZ25Ob3RaZXJvKGkpfXJldHVybiBuLng9TS50b1NOb3JtKG4ueCxlKSxuLnk9TS50b1NOb3JtKG4ueSxlKSxufTtlbi5vY3RFbmNvZGU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gZW4ub2N0RW5jb2RlSW5SYW5nZSh0LDI1NSxlKX07VGY9bmV3IHR0LHdiPW5ldyBVaW50OEFycmF5KDEpO2VuLm9jdEVuY29kZVRvQ2FydGVzaWFuND1mdW5jdGlvbih0LGUpe3JldHVybiBlbi5vY3RFbmNvZGVJblJhbmdlKHQsNjU1MzUsVGYpLGUueD1EcChUZi54KkFiKSxlLnk9RHAoVGYueCksZS56PURwKFRmLnkqQWIpLGUudz1EcChUZi55KSxlfTtlbi5vY3REZWNvZGVJblJhbmdlPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKHkuZGVmaW5lZCgicmVzdWx0IixvKSx0PDB8fHQ+bnx8ZTwwfHxlPm4pdGhyb3cgbmV3IEYoYHggYW5kIHkgbXVzdCBiZSB1bnNpZ25lZCBub3JtYWxpemVkIGludGVnZXJzIGJldHdlZW4gMCBhbmQgJHtufWApO2lmKG8ueD1NLmZyb21TTm9ybSh0LG4pLG8ueT1NLmZyb21TTm9ybShlLG4pLG8uej0xLShNYXRoLmFicyhvLngpK01hdGguYWJzKG8ueSkpLG8uejwwKXtsZXQgcj1vLng7by54PSgxLU1hdGguYWJzKG8ueSkpKk0uc2lnbk5vdFplcm8ociksby55PSgxLU1hdGguYWJzKHIpKSpNLnNpZ25Ob3RaZXJvKG8ueSl9cmV0dXJuIGEubm9ybWFsaXplKG8sbyl9O2VuLm9jdERlY29kZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGVuLm9jdERlY29kZUluUmFuZ2UodCxlLDI1NSxuKX07ZW4ub2N0RGVjb2RlRnJvbUNhcnRlc2lhbjQ9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImVuY29kZWQiLHQpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKTtsZXQgbj10Lngsbz10Lnkscj10LnosaT10Lnc7aWYobjwwfHxuPjI1NXx8bzwwfHxvPjI1NXx8cjwwfHxyPjI1NXx8aTwwfHxpPjI1NSl0aHJvdyBuZXcgRigieCwgeSwgeiwgYW5kIHcgbXVzdCBiZSB1bnNpZ25lZCBub3JtYWxpemVkIGludGVnZXJzIGJldHdlZW4gMCBhbmQgMjU1Iik7bGV0IHM9bipiYitvLGY9cipiYitpO3JldHVybiBlbi5vY3REZWNvZGVJblJhbmdlKHMsZiw2NTUzNSxlKX07ZW4ub2N0UGFja0Zsb2F0PWZ1bmN0aW9uKHQpe3JldHVybiB5LmRlZmluZWQoImVuY29kZWQiLHQpLDI1Nip0LngrdC55fTtEaD1uZXcgdHQ7ZW4ub2N0RW5jb2RlRmxvYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIGVuLm9jdEVuY29kZSh0LERoKSxlbi5vY3RQYWNrRmxvYXQoRGgpfTtlbi5vY3REZWNvZGVGbG9hdD1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgidmFsdWUiLHQpO2xldCBuPXQvMjU2LG89TWF0aC5mbG9vcihuKSxyPShuLW8pKjI1NjtyZXR1cm4gZW4ub2N0RGVjb2RlKG8scixlKX07ZW4ub2N0UGFjaz1mdW5jdGlvbih0LGUsbixvKXt5LmRlZmluZWQoInYxIix0KSx5LmRlZmluZWQoInYyIixlKSx5LmRlZmluZWQoInYzIixuKSx5LmRlZmluZWQoInJlc3VsdCIsbyk7bGV0IHI9ZW4ub2N0RW5jb2RlRmxvYXQodCksaT1lbi5vY3RFbmNvZGVGbG9hdChlKSxzPWVuLm9jdEVuY29kZShuLERoKTtyZXR1cm4gby54PTY1NTM2KnMueCtyLG8ueT02NTUzNipzLnkraSxvfTtlbi5vY3RVbnBhY2s9ZnVuY3Rpb24odCxlLG4sbyl7eS5kZWZpbmVkKCJwYWNrZWQiLHQpLHkuZGVmaW5lZCgidjEiLGUpLHkuZGVmaW5lZCgidjIiLG4pLHkuZGVmaW5lZCgidjMiLG8pO2xldCByPXQueC82NTUzNixpPU1hdGguZmxvb3Iocikscz0oci1pKSo2NTUzNjtyPXQueS82NTUzNjtsZXQgZj1NYXRoLmZsb29yKHIpLHU9KHItZikqNjU1MzY7ZW4ub2N0RGVjb2RlRmxvYXQocyxlKSxlbi5vY3REZWNvZGVGbG9hdCh1LG4pLGVuLm9jdERlY29kZShpLGYsbyl9O2VuLmNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzPWZ1bmN0aW9uKHQpe3kuZGVmaW5lZCgidGV4dHVyZUNvb3JkaW5hdGVzIix0KTtsZXQgZT10LngqNDA5NXwwLG49dC55KjQwOTV8MDtyZXR1cm4gNDA5NiplK259O2VuLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNvbXByZXNzZWQiLHQpLHkuZGVmaW5lZCgicmVzdWx0IixlKTtsZXQgbj10LzQwOTYsbz1NYXRoLmZsb29yKG4pO3JldHVybiBlLng9by80MDk1LGUueT0odC1vKjQwOTYpLzQwOTUsZX07ZW4uemlnWmFnRGVsdGFEZWNvZGU9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgidUJ1ZmZlciIsdCkseS5kZWZpbmVkKCJ2QnVmZmVyIixlKSx5LnR5cGVPZi5udW1iZXIuZXF1YWxzKCJ1QnVmZmVyLmxlbmd0aCIsInZCdWZmZXIubGVuZ3RoIix0Lmxlbmd0aCxlLmxlbmd0aCksaChuKSYmeS50eXBlT2YubnVtYmVyLmVxdWFscygidUJ1ZmZlci5sZW5ndGgiLCJoZWlnaHRCdWZmZXIubGVuZ3RoIix0Lmxlbmd0aCxuLmxlbmd0aCk7bGV0IG89dC5sZW5ndGgscj0wLGk9MCxzPTA7Zm9yKGxldCBmPTA7ZjxvOysrZilyKz1MaCh0W2ZdKSxpKz1MaChlW2ZdKSx0W2ZdPXIsZVtmXT1pLGgobikmJihzKz1MaChuW2ZdKSxuW2ZdPXMpfTtlbi5kZXF1YW50aXplPWZ1bmN0aW9uKHQsZSxuLG8pe3kuZGVmaW5lZCgidHlwZWRBcnJheSIsdCkseS5kZWZpbmVkKCJjb21wb25lbnREYXRhdHlwZSIsZSkseS5kZWZpbmVkKCJ0eXBlIixuKSx5LmRlZmluZWQoImNvdW50IixvKTtsZXQgcj15Yi5nZXROdW1iZXJPZkNvbXBvbmVudHMobiksaTtzd2l0Y2goZSl7Y2FzZSBudC5CWVRFOmk9MTI3O2JyZWFrO2Nhc2UgbnQuVU5TSUdORURfQllURTppPTI1NTticmVhaztjYXNlIG50LlNIT1JUOmk9MzI3Njc7YnJlYWs7Y2FzZSBudC5VTlNJR05FRF9TSE9SVDppPTY1NTM1O2JyZWFrO2Nhc2UgbnQuSU5UOmk9MjE0NzQ4MzY0NzticmVhaztjYXNlIG50LlVOU0lHTkVEX0lOVDppPTQyOTQ5NjcyOTU7YnJlYWs7ZGVmYXVsdDp0aHJvdyBuZXcgRihgQ2Fubm90IGRlcXVhbnRpemUgY29tcG9uZW50IGRhdGF0eXBlOiAke2V9YCl9bGV0IHM9bmV3IEZsb2F0MzJBcnJheShvKnIpO2ZvcihsZXQgZj0wO2Y8bztmKyspZm9yKGxldCB1PTA7dTxyO3UrKyl7bGV0IGM9ZipyK3U7c1tjXT1NYXRoLm1heCh0W2NdL2ksLTEpfXJldHVybiBzfTtlbi5kZWNvZGVSR0I1NjU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoInR5cGVkQXJyYXkiLHQpO2xldCBuPXQubGVuZ3RoKjM7aChlKSYmeS50eXBlT2YubnVtYmVyLmVxdWFscygicmVzdWx0Lmxlbmd0aCIsInR5cGVkQXJyYXkubGVuZ3RoICogMyIsZS5sZW5ndGgsbik7bGV0IG89dC5sZW5ndGg7aChlKXx8KGU9bmV3IEZsb2F0MzJBcnJheShvKjMpKTtsZXQgcj0zMSxpPTYzLHM9MS8zMSxmPTEvNjM7Zm9yKGxldCB1PTA7dTxvO3UrKyl7bGV0IGM9dFt1XSxsPWM+PjExLHA9Yz4+NSZpLGQ9YyZyLG09Myp1O2VbbV09bCpzLGVbbSsxXT1wKmYsZVttKzJdPWQqc31yZXR1cm4gZX07bm49ZW59KTtmdW5jdGlvbiB5UCh0LGUsbixvLHIpe3kuZGVmaW5lZCgicG9pbnQiLHQpLHkuZGVmaW5lZCgicDAiLGUpLHkuZGVmaW5lZCgicDEiLG4pLHkuZGVmaW5lZCgicDIiLG8pLGgocil8fChyPW5ldyBhKTtsZXQgaSxzLGYsdSxjLGwscCxkO2lmKGgoZS56KSl7aWYoYS5lcXVhbHNFcHNpbG9uKHQsZSxNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1gscik7aWYoYS5lcXVhbHNFcHNpbG9uKHQsbixNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1kscik7aWYoYS5lcXVhbHNFcHNpbG9uKHQsbyxNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1oscik7aT1hLnN1YnRyYWN0KG4sZSxUYikscz1hLnN1YnRyYWN0KG8sZSxPYiksZj1hLnN1YnRyYWN0KHQsZSxFYiksdT1hLmRvdChpLGkpLGM9YS5kb3QoaSxzKSxsPWEuZG90KGksZikscD1hLmRvdChzLHMpLGQ9YS5kb3QocyxmKX1lbHNle2lmKHR0LmVxdWFsc0Vwc2lsb24odCxlLE0uRVBTSUxPTjE0KSlyZXR1cm4gYS5jbG9uZShhLlVOSVRfWCxyKTtpZih0dC5lcXVhbHNFcHNpbG9uKHQsbixNLkVQU0lMT04xNCkpcmV0dXJuIGEuY2xvbmUoYS5VTklUX1kscik7aWYodHQuZXF1YWxzRXBzaWxvbih0LG8sTS5FUFNJTE9OMTQpKXJldHVybiBhLmNsb25lKGEuVU5JVF9aLHIpO2k9dHQuc3VidHJhY3QobixlLFRiKSxzPXR0LnN1YnRyYWN0KG8sZSxPYiksZj10dC5zdWJ0cmFjdCh0LGUsRWIpLHU9dHQuZG90KGksaSksYz10dC5kb3QoaSxzKSxsPXR0LmRvdChpLGYpLHA9dHQuZG90KHMscyksZD10dC5kb3QocyxmKX1yLnk9cCpsLWMqZCxyLno9dSpkLWMqbDtsZXQgbT11KnAtYypjO2lmKG0hPT0wKXJldHVybiByLnkvPW0sci56Lz1tLHIueD0xLXIueS1yLnoscn12YXIgVGIsT2IsRWIsUmIsU2I9WigoKT0+e1VlKCk7RnQoKTtYdCgpO2Z0KCk7V3QoKTtUYj1uZXcgYSxPYj1uZXcgYSxFYj1uZXcgYTtSYj15UH0pO2Z1bmN0aW9uIHJpKCl7dGhpcy5oaWdoPWEuY2xvbmUoYS5aRVJPKSx0aGlzLmxvdz1hLmNsb25lKGEuWkVSTyl9dmFyIE5pLEZoLFpzLEJoPVooKCk9PntGdCgpO1h0KCk7ZnQoKTtyaS5lbmNvZGU9ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5udW1iZXIoInZhbHVlIix0KSxoKGUpfHwoZT17aGlnaDowLGxvdzowfSk7bGV0IG47cmV0dXJuIHQ+PTA/KG49TWF0aC5mbG9vcih0LzY1NTM2KSo2NTUzNixlLmhpZ2g9bixlLmxvdz10LW4pOihuPU1hdGguZmxvb3IoLXQvNjU1MzYpKjY1NTM2LGUuaGlnaD0tbixlLmxvdz10K24pLGV9O05pPXtoaWdoOjAsbG93OjB9O3JpLmZyb21DYXJ0ZXNpYW49ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImNhcnRlc2lhbiIsdCksaChlKXx8KGU9bmV3IHJpKTtsZXQgbj1lLmhpZ2gsbz1lLmxvdztyZXR1cm4gcmkuZW5jb2RlKHQueCxOaSksbi54PU5pLmhpZ2gsby54PU5pLmxvdyxyaS5lbmNvZGUodC55LE5pKSxuLnk9TmkuaGlnaCxvLnk9TmkubG93LHJpLmVuY29kZSh0LnosTmkpLG4uej1OaS5oaWdoLG8uej1OaS5sb3csZX07Rmg9bmV3IHJpO3JpLndyaXRlRWxlbWVudHM9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiY2FydGVzaWFuQXJyYXkiLGUpLHkudHlwZU9mLm51bWJlcigiaW5kZXgiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRleCIsbiwwKSxyaS5mcm9tQ2FydGVzaWFuKHQsRmgpO2xldCBvPUZoLmhpZ2gscj1GaC5sb3c7ZVtuXT1vLngsZVtuKzFdPW8ueSxlW24rMl09by56LGVbbiszXT1yLngsZVtuKzRdPXIueSxlW24rNV09ci56fTtacz1yaX0pO3ZhciB0byxEdCwkZT1aKCgpPT57ZnQoKTtIdCgpO1d0KCk7JHMoKTt0bz17VU5TSUdORURfQllURTpxdC5VTlNJR05FRF9CWVRFLFVOU0lHTkVEX1NIT1JUOnF0LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDpxdC5VTlNJR05FRF9JTlR9O3RvLmdldFNpemVJbkJ5dGVzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIHRvLlVOU0lHTkVEX0JZVEU6cmV0dXJuIFVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSB0by5VTlNJR05FRF9TSE9SVDpyZXR1cm4gVWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Y2FzZSB0by5VTlNJR05FRF9JTlQ6cmV0dXJuIFVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5UfXRocm93IG5ldyBGKCJpbmRleERhdGF0eXBlIGlzIHJlcXVpcmVkIGFuZCBtdXN0IGJlIGEgdmFsaWQgSW5kZXhEYXRhdHlwZSBjb25zdGFudC4iKX07dG8uZnJvbVNpemVJbkJ5dGVzPWZ1bmN0aW9uKHQpe3N3aXRjaCh0KXtjYXNlIDI6cmV0dXJuIHRvLlVOU0lHTkVEX1NIT1JUO2Nhc2UgNDpyZXR1cm4gdG8uVU5TSUdORURfSU5UO2Nhc2UgMTpyZXR1cm4gdG8uVU5TSUdORURfQllURTtkZWZhdWx0OnRocm93IG5ldyBGKCJTaXplIGluIGJ5dGVzIGNhbm5vdCBiZSBtYXBwZWQgdG8gYW4gSW5kZXhEYXRhdHlwZSIpfX07dG8udmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJih0PT09dG8uVU5TSUdORURfQllURXx8dD09PXRvLlVOU0lHTkVEX1NIT1JUfHx0PT09dG8uVU5TSUdORURfSU5UKX07dG8uY3JlYXRlVHlwZWRBcnJheT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJudW1iZXJPZlZlcnRpY2VzIGlzIHJlcXVpcmVkLiIpO3JldHVybiB0Pj1NLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP25ldyBVaW50MzJBcnJheShlKTpuZXcgVWludDE2QXJyYXkoZSl9O3RvLmNyZWF0ZVR5cGVkQXJyYXlGcm9tQXJyYXlCdWZmZXI9ZnVuY3Rpb24odCxlLG4sbyl7aWYoIWgodCkpdGhyb3cgbmV3IEYoIm51bWJlck9mVmVydGljZXMgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoInNvdXJjZUFycmF5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJieXRlT2Zmc2V0IGlzIHJlcXVpcmVkLiIpO3JldHVybiB0Pj1NLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP25ldyBVaW50MzJBcnJheShlLG4sbyk6bmV3IFVpbnQxNkFycmF5KGUsbixvKX07dG8uZnJvbVR5cGVkQXJyYXk9ZnVuY3Rpb24odCl7aWYodCBpbnN0YW5jZW9mIFVpbnQ4QXJyYXkpcmV0dXJuIHRvLlVOU0lHTkVEX0JZVEU7aWYodCBpbnN0YW5jZW9mIFVpbnQxNkFycmF5KXJldHVybiB0by5VTlNJR05FRF9TSE9SVDtpZih0IGluc3RhbmNlb2YgVWludDMyQXJyYXkpcmV0dXJuIHRvLlVOU0lHTkVEX0lOVDt0aHJvdyBuZXcgRigiYXJyYXkgbXVzdCBiZSBhIFVpbnQ4QXJyYXksIFVpbnQxNkFycmF5LCBvciBVaW50MzJBcnJheS4iKX07RHQ9T2JqZWN0LmZyZWV6ZSh0byl9KTtmdW5jdGlvbiBDYih0LGUsbil7bGV0IG89dCtlO3JldHVybiBNLnNpZ24odCkhPT1NLnNpZ24oZSkmJk1hdGguYWJzKG8vTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKTxuPzA6b312YXIgVWgsZ3IsRnA9WigoKT0+e0h0KCk7V3QoKTtVaD17fTtVaC5jb21wdXRlRGlzY3JpbWluYW50PWZ1bmN0aW9uKHQsZSxuKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEYoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBGKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtyZXR1cm4gZSplLTQqdCpufTtVaC5jb21wdXRlUmVhbFJvb3RzPWZ1bmN0aW9uKHQsZSxuKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEYoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBGKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtsZXQgbztpZih0PT09MClyZXR1cm4gZT09PTA/W106Wy1uL2VdO2lmKGU9PT0wKXtpZihuPT09MClyZXR1cm5bMCwwXTtsZXQgdT1NYXRoLmFicyhuKSxjPU1hdGguYWJzKHQpO2lmKHU8YyYmdS9jPE0uRVBTSUxPTjE0KXJldHVyblswLDBdO2lmKHU+YyYmYy91PE0uRVBTSUxPTjE0KXJldHVybltdO2lmKG89LW4vdCxvPDApcmV0dXJuW107bGV0IGw9TWF0aC5zcXJ0KG8pO3JldHVyblstbCxsXX1lbHNlIGlmKG49PT0wKXJldHVybiBvPS1lL3QsbzwwP1tvLDBdOlswLG9dO2xldCByPWUqZSxpPTQqdCpuLHM9Q2IociwtaSxNLkVQU0lMT04xNCk7aWYoczwwKXJldHVybltdO2xldCBmPS0uNSpDYihlLE0uc2lnbihlKSpNYXRoLnNxcnQocyksTS5FUFNJTE9OMTQpO3JldHVybiBlPjA/W2YvdCxuL2ZdOltuL2YsZi90XX07Z3I9VWh9KTtmdW5jdGlvbiBWaCh0LGUsbixvKXtsZXQgcj10LGk9ZS8zLHM9bi8zLGY9byx1PXIqcyxjPWkqZixsPWkqaSxwPXMqcyxkPXIqcy1sLG09cipmLWkqcyxfPWkqZi1wLGc9NCpkKl8tbSptLGIsdztpZihnPDApe2xldCBSLG90LGF0O2wqYz49dSpwPyhSPXIsb3Q9ZCxhdD0tMippKmQrciptKTooUj1mLG90PV8sYXQ9LWYqbSsyKnMqXyk7bGV0IHl0PS0oYXQ8MD8tMToxKSpNYXRoLmFicyhSKSpNYXRoLnNxcnQoLWcpO3c9LWF0K3l0O2xldCBydD13LzIsUHQ9cnQ8MD8tTWF0aC5wb3coLXJ0LDEvMyk6TWF0aC5wb3cocnQsMS8zKSxndD13PT09eXQ/LVB0Oi1vdC9QdDtyZXR1cm4gYj1vdDw9MD9QdCtndDotYXQvKFB0KlB0K2d0Kmd0K290KSxsKmM+PXUqcD9bKGItaSkvcl06Wy1mLyhiK3MpXX1sZXQgTz1kLEU9LTIqaSpkK3IqbSxUPV8sQz0tZiptKzIqcypfLE49TWF0aC5zcXJ0KGcpLEk9TWF0aC5zcXJ0KDMpLzIsRD1NYXRoLmFicyhNYXRoLmF0YW4yKHIqTiwtRSkvMyk7Yj0yKk1hdGguc3FydCgtTyk7bGV0IHY9TWF0aC5jb3MoRCk7dz1iKnY7bGV0IEw9YiooLXYvMi1JKk1hdGguc2luKEQpKSxVPXcrTD4yKmk/dy1pOkwtaSxBPXIsUz1VL0E7RD1NYXRoLmFicyhNYXRoLmF0YW4yKGYqTiwtQykvMyksYj0yKk1hdGguc3FydCgtVCksdj1NYXRoLmNvcyhEKSx3PWIqdixMPWIqKC12LzItSSpNYXRoLnNpbihEKSk7bGV0IFA9LWYsQj13K0w8MipzP3crczpMK3Msaj1QL0IsSD1BKkIsaz0tVSpCLUEqUCxLPVUqUCxYPShzKmstaSpLKS8oLWkqaytzKkgpO3JldHVybiBTPD1YP1M8PWo/WDw9aj9bUyxYLGpdOltTLGosWF06W2osUyxYXTpTPD1qP1tYLFMsal06WDw9aj9bWCxqLFNdOltqLFgsU119dmFyIGtoLEJwLHhiPVooKCk9PntIdCgpO0ZwKCk7a2g9e307a2guY29tcHV0ZURpc2NyaW1pbmFudD1mdW5jdGlvbih0LGUsbixvKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEYoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBGKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEYoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7bGV0IHI9dCp0LGk9ZSplLHM9bipuLGY9bypvO3JldHVybiAxOCp0KmUqbipvK2kqcy0yNypyKmYtNCoodCpzKm4raSplKm8pfTtraC5jb21wdXRlUmVhbFJvb3RzPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKHR5cGVvZiB0IT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYSBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgZSE9Im51bWJlciIpdGhyb3cgbmV3IEYoImIgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIG4hPSJudW1iZXIiKXRocm93IG5ldyBGKCJjIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBvIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiZCBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtsZXQgcixpO2lmKHQ9PT0wKXJldHVybiBnci5jb21wdXRlUmVhbFJvb3RzKGUsbixvKTtpZihlPT09MCl7aWYobj09PTApe2lmKG89PT0wKXJldHVyblswLDAsMF07aT0tby90O2xldCBzPWk8MD8tTWF0aC5wb3coLWksMS8zKTpNYXRoLnBvdyhpLDEvMyk7cmV0dXJuW3MscyxzXX1lbHNlIGlmKG89PT0wKXJldHVybiByPWdyLmNvbXB1dGVSZWFsUm9vdHModCwwLG4pLHIuTGVuZ3RoPT09MD9bMF06W3JbMF0sMCxyWzFdXTtyZXR1cm4gVmgodCwwLG4sbyl9ZWxzZXtpZihuPT09MClyZXR1cm4gbz09PTA/KGk9LWUvdCxpPDA/W2ksMCwwXTpbMCwwLGldKTpWaCh0LGUsMCxvKTtpZihvPT09MClyZXR1cm4gcj1nci5jb21wdXRlUmVhbFJvb3RzKHQsZSxuKSxyLmxlbmd0aD09PTA/WzBdOnJbMV08PTA/W3JbMF0sclsxXSwwXTpyWzBdPj0wP1swLHJbMF0sclsxXV06W3JbMF0sMCxyWzFdXX1yZXR1cm4gVmgodCxlLG4sbyl9O0JwPWtofSk7ZnVuY3Rpb24gQnIodCxlLG4sbyl7bGV0IHI9dCp0LGk9ZS0zKnIvOCxzPW4tZSp0LzIrcip0LzgsZj1vLW4qdC80K2Uqci8xNi0zKnIqci8yNTYsdT1CcC5jb21wdXRlUmVhbFJvb3RzKDEsMippLGkqaS00KmYsLXMqcyk7aWYodS5sZW5ndGg+MCl7bGV0IGM9LXQvNCxsPXVbdS5sZW5ndGgtMV07aWYoTWF0aC5hYnMobCk8TS5FUFNJTE9OMTQpe2xldCBwPWdyLmNvbXB1dGVSZWFsUm9vdHMoMSxpLGYpO2lmKHAubGVuZ3RoPT09Mil7bGV0IGQ9cFswXSxtPXBbMV0sXztpZihkPj0wJiZtPj0wKXtsZXQgZz1NYXRoLnNxcnQoZCksYj1NYXRoLnNxcnQobSk7cmV0dXJuW2MtYixjLWcsYytnLGMrYl19ZWxzZXtpZihkPj0wJiZtPDApcmV0dXJuIF89TWF0aC5zcXJ0KGQpLFtjLV8sYytfXTtpZihkPDAmJm0+PTApcmV0dXJuIF89TWF0aC5zcXJ0KG0pLFtjLV8sYytfXX19cmV0dXJuW119ZWxzZSBpZihsPjApe2xldCBwPU1hdGguc3FydChsKSxkPShpK2wtcy9wKS8yLG09KGkrbCtzL3ApLzIsXz1nci5jb21wdXRlUmVhbFJvb3RzKDEscCxkKSxnPWdyLmNvbXB1dGVSZWFsUm9vdHMoMSwtcCxtKTtyZXR1cm4gXy5sZW5ndGghPT0wPyhfWzBdKz1jLF9bMV0rPWMsZy5sZW5ndGghPT0wPyhnWzBdKz1jLGdbMV0rPWMsX1sxXTw9Z1swXT9bX1swXSxfWzFdLGdbMF0sZ1sxXV06Z1sxXTw9X1swXT9bZ1swXSxnWzFdLF9bMF0sX1sxXV06X1swXT49Z1swXSYmX1sxXTw9Z1sxXT9bZ1swXSxfWzBdLF9bMV0sZ1sxXV06Z1swXT49X1swXSYmZ1sxXTw9X1sxXT9bX1swXSxnWzBdLGdbMV0sX1sxXV06X1swXT5nWzBdJiZfWzBdPGdbMV0/W2dbMF0sX1swXSxnWzFdLF9bMV1dOltfWzBdLGdbMF0sX1sxXSxnWzFdXSk6Xyk6Zy5sZW5ndGghPT0wPyhnWzBdKz1jLGdbMV0rPWMsZyk6W119fXJldHVybltdfWZ1bmN0aW9uIE9mKHQsZSxuLG8pe2xldCByPW4qbixpPWUqZSxzPXQqdCxmPS0yKmUsdT1uKnQraS00Km8sYz1zKm8tbiplKnQrcixsPUJwLmNvbXB1dGVSZWFsUm9vdHMoMSxmLHUsYyk7aWYobC5sZW5ndGg+MCl7bGV0IHA9bFswXSxkPWUtcCxtPWQqZCxfPXQvMixnPWQvMixiPW0tNCpvLHc9bSs0Kk1hdGguYWJzKG8pLE89cy00KnAsRT1zKzQqTWF0aC5hYnMocCksVCxDO2lmKHA8MHx8YipFPE8qdyl7bGV0IEE9TWF0aC5zcXJ0KE8pO1Q9QS8yLEM9QT09PTA/MDoodCpnLW4pL0F9ZWxzZXtsZXQgQT1NYXRoLnNxcnQoYik7VD1BPT09MD8wOih0KmctbikvQSxDPUEvMn1sZXQgTixJO189PT0wJiZUPT09MD8oTj0wLEk9MCk6TS5zaWduKF8pPT09TS5zaWduKFQpPyhOPV8rVCxJPXAvTik6KEk9Xy1ULE49cC9JKTtsZXQgRCx2O2c9PT0wJiZDPT09MD8oRD0wLHY9MCk6TS5zaWduKGcpPT09TS5zaWduKEMpPyhEPWcrQyx2PW8vRCk6KHY9Zy1DLEQ9by92KTtsZXQgTD1nci5jb21wdXRlUmVhbFJvb3RzKDEsTixEKSxVPWdyLmNvbXB1dGVSZWFsUm9vdHMoMSxJLHYpO2lmKEwubGVuZ3RoIT09MClyZXR1cm4gVS5sZW5ndGghPT0wP0xbMV08PVVbMF0/W0xbMF0sTFsxXSxVWzBdLFVbMV1dOlVbMV08PUxbMF0/W1VbMF0sVVsxXSxMWzBdLExbMV1dOkxbMF0+PVVbMF0mJkxbMV08PVVbMV0/W1VbMF0sTFswXSxMWzFdLFVbMV1dOlVbMF0+PUxbMF0mJlVbMV08PUxbMV0/W0xbMF0sVVswXSxVWzFdLExbMV1dOkxbMF0+VVswXSYmTFswXTxVWzFdP1tVWzBdLExbMF0sVVsxXSxMWzFdXTpbTFswXSxVWzBdLExbMV0sVVsxXV06TDtpZihVLmxlbmd0aCE9PTApcmV0dXJuIFV9cmV0dXJuW119dmFyIEdoLFBiLE1iPVooKCk9Pnt4YigpO0h0KCk7V3QoKTtGcCgpO0doPXt9O0doLmNvbXB1dGVEaXNjcmltaW5hbnQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEYoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBGKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEYoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBGKCJlIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2xldCBpPXQqdCxzPWkqdCxmPWUqZSx1PWYqZSxjPW4qbixsPWMqbixwPW8qbyxkPXAqbyxtPXIqcixfPW0qcjtyZXR1cm4gZipjKnAtNCp1KmQtNCp0KmwqcCsxOCp0KmUqbipkLTI3KmkqcCpwKzI1NipzKl8rciooMTgqdSpuKm8tNCpmKmwrMTYqdCpjKmMtODAqdCplKmMqby02KnQqZipwKzE0NCppKm4qcCkrbSooMTQ0KnQqZipuLTI3KmYqZi0xMjgqaSpjLTE5MippKmUqbyl9O0doLmNvbXB1dGVSZWFsUm9vdHM9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZih0eXBlb2YgdCE9Im51bWJlciIpdGhyb3cgbmV3IEYoImEgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIGUhPSJudW1iZXIiKXRocm93IG5ldyBGKCJiIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKHR5cGVvZiBuIT0ibnVtYmVyIil0aHJvdyBuZXcgRigiYyBpcyBhIHJlcXVpcmVkIG51bWJlci4iKTtpZih0eXBlb2YgbyE9Im51bWJlciIpdGhyb3cgbmV3IEYoImQgaXMgYSByZXF1aXJlZCBudW1iZXIuIik7aWYodHlwZW9mIHIhPSJudW1iZXIiKXRocm93IG5ldyBGKCJlIGlzIGEgcmVxdWlyZWQgbnVtYmVyLiIpO2lmKE1hdGguYWJzKHQpPE0uRVBTSUxPTjE1KXJldHVybiBCcC5jb21wdXRlUmVhbFJvb3RzKGUsbixvLHIpO2xldCBpPWUvdCxzPW4vdCxmPW8vdCx1PXIvdCxjPWk8MD8xOjA7c3dpdGNoKGMrPXM8MD9jKzE6YyxjKz1mPDA/YysxOmMsYys9dTwwP2MrMTpjLGMpe2Nhc2UgMDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxOnJldHVybiBPZihpLHMsZix1KTtjYXNlIDI6cmV0dXJuIE9mKGkscyxmLHUpO2Nhc2UgMzpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSA0OnJldHVybiBCcihpLHMsZix1KTtjYXNlIDU6cmV0dXJuIE9mKGkscyxmLHUpO2Nhc2UgNjpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSA3OnJldHVybiBCcihpLHMsZix1KTtjYXNlIDg6cmV0dXJuIE9mKGkscyxmLHUpO2Nhc2UgOTpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMTpyZXR1cm4gT2YoaSxzLGYsdSk7Y2FzZSAxMjpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxMzpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxNDpyZXR1cm4gQnIoaSxzLGYsdSk7Y2FzZSAxNTpyZXR1cm4gQnIoaSxzLGYsdSk7ZGVmYXVsdDpyZXR1cm59fTtQYj1HaH0pO2Z1bmN0aW9uIFVwKHQsZSl7ZT1hLmNsb25lKHgoZSxhLlpFUk8pKSxhLmVxdWFscyhlLGEuWkVSTyl8fGEubm9ybWFsaXplKGUsZSksdGhpcy5vcmlnaW49YS5jbG9uZSh4KHQsYS5aRVJPKSksdGhpcy5kaXJlY3Rpb249ZX12YXIgUXMsVnA9WigoKT0+e0Z0KCk7WHQoKTtJdCgpO2Z0KCk7VXAuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLm9yaWdpbj1hLmNsb25lKHQub3JpZ2luKSxlLmRpcmVjdGlvbj1hLmNsb25lKHQuZGlyZWN0aW9uKSxlKTpuZXcgVXAodC5vcmlnaW4sdC5kaXJlY3Rpb24pfTtVcC5nZXRQb2ludD1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgicmF5Iix0KSx5LnR5cGVPZi5udW1iZXIoInQiLGUpLGgobil8fChuPW5ldyBhKSxuPWEubXVsdGlwbHlCeVNjYWxhcih0LmRpcmVjdGlvbixlLG4pLGEuYWRkKHQub3JpZ2luLG4sbil9O1FzPVVwfSk7ZnVuY3Rpb24gd1AodCxlLG4sbyl7bGV0IHI9ZSplLTQqdCpuO2lmKHI8MClyZXR1cm47aWYocj4wKXtsZXQgcz0xLygyKnQpLGY9TWF0aC5zcXJ0KHIpLHU9KC1lK2YpKnMsYz0oLWUtZikqcztyZXR1cm4gdTxjPyhvLnJvb3QwPXUsby5yb290MT1jKTooby5yb290MD1jLG8ucm9vdDE9dSksb31sZXQgaT0tZS8oMip0KTtpZihpIT09MClyZXR1cm4gby5yb290MD1vLnJvb3QxPWksb31mdW5jdGlvbiBWYih0LGUsbil7aChuKXx8KG49bmV3IFFyKTtsZXQgbz10Lm9yaWdpbixyPXQuZGlyZWN0aW9uLGk9ZS5jZW50ZXIscz1lLnJhZGl1cyplLnJhZGl1cyxmPWEuc3VidHJhY3QobyxpLFViKSx1PWEuZG90KHIsciksYz0yKmEuZG90KHIsZiksbD1hLm1hZ25pdHVkZVNxdWFyZWQoZiktcyxwPXdQKHUsYyxsLFRQKTtpZihoKHApKXJldHVybiBuLnN0YXJ0PXAucm9vdDAsbi5zdG9wPXAucm9vdDEsbn1mdW5jdGlvbiBKcyh0LGUsbil7bGV0IG89dCtlO3JldHVybiBNLnNpZ24odCkhPT1NLnNpZ24oZSkmJk1hdGguYWJzKG8vTWF0aC5tYXgoTWF0aC5hYnModCksTWF0aC5hYnMoZSkpKTxuPzA6b312YXIgZ24sZ1AsQVAsVWIsTmIsSWIsYlAsVFAsT1AsRVAsUlAsemgsdmIsTGIsa3AsU1AsQ1AseFAsUFAsTVAsTlAsRGIsRmIsQmIsSVAsdlAsTFAsaG8sdGM9WigoKT0+e0Z0KCk7SWUoKTtJdCgpO2Z0KCk7SHQoKTtIbCgpO1d0KCk7Qm4oKTtGcCgpO01iKCk7VnAoKTtnbj17fTtnbi5yYXlQbGFuZT1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJheSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigicGxhbmUgaXMgcmVxdWlyZWQuIik7aChuKXx8KG49bmV3IGEpO2xldCBvPXQub3JpZ2luLHI9dC5kaXJlY3Rpb24saT1lLm5vcm1hbCxzPWEuZG90KGkscik7aWYoTWF0aC5hYnMocyk8TS5FUFNJTE9OMTUpcmV0dXJuO2xldCBmPSgtZS5kaXN0YW5jZS1hLmRvdChpLG8pKS9zO2lmKCEoZjwwKSlyZXR1cm4gbj1hLm11bHRpcGx5QnlTY2FsYXIocixmLG4pLGEuYWRkKG8sbixuKX07Z1A9bmV3IGEsQVA9bmV3IGEsVWI9bmV3IGEsTmI9bmV3IGEsSWI9bmV3IGE7Z24ucmF5VHJpYW5nbGVQYXJhbWV0cmljPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJheSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigicDAgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoInAxIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBGKCJwMiBpcyByZXF1aXJlZC4iKTtyPXgociwhMSk7bGV0IGk9dC5vcmlnaW4scz10LmRpcmVjdGlvbixmPWEuc3VidHJhY3QobixlLGdQKSx1PWEuc3VidHJhY3QobyxlLEFQKSxjPWEuY3Jvc3Mocyx1LFViKSxsPWEuZG90KGYsYykscCxkLG0sXyxnO2lmKHIpe2lmKGw8TS5FUFNJTE9ONnx8KHA9YS5zdWJ0cmFjdChpLGUsTmIpLG09YS5kb3QocCxjKSxtPDB8fG0+bCl8fChkPWEuY3Jvc3MocCxmLEliKSxfPWEuZG90KHMsZCksXzwwfHxtK18+bCkpcmV0dXJuO2c9YS5kb3QodSxkKS9sfWVsc2V7aWYoTWF0aC5hYnMobCk8TS5FUFNJTE9ONilyZXR1cm47bGV0IGI9MS9sO2lmKHA9YS5zdWJ0cmFjdChpLGUsTmIpLG09YS5kb3QocCxjKSpiLG08MHx8bT4xfHwoZD1hLmNyb3NzKHAsZixJYiksXz1hLmRvdChzLGQpKmIsXzwwfHxtK18+MSkpcmV0dXJuO2c9YS5kb3QodSxkKSpifXJldHVybiBnfTtnbi5yYXlUcmlhbmdsZT1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9Z24ucmF5VHJpYW5nbGVQYXJhbWV0cmljKHQsZSxuLG8scik7aWYoISghaChzKXx8czwwKSlyZXR1cm4gaChpKXx8KGk9bmV3IGEpLGEubXVsdGlwbHlCeVNjYWxhcih0LmRpcmVjdGlvbixzLGkpLGEuYWRkKHQub3JpZ2luLGksaSl9O2JQPW5ldyBRcztnbi5saW5lU2VnbWVudFRyaWFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2MCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigidjEgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoInAwIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBGKCJwMSBpcyByZXF1aXJlZC4iKTtpZighaChyKSl0aHJvdyBuZXcgRigicDIgaXMgcmVxdWlyZWQuIik7bGV0IGY9YlA7YS5jbG9uZSh0LGYub3JpZ2luKSxhLnN1YnRyYWN0KGUsdCxmLmRpcmVjdGlvbiksYS5ub3JtYWxpemUoZi5kaXJlY3Rpb24sZi5kaXJlY3Rpb24pO2xldCB1PWduLnJheVRyaWFuZ2xlUGFyYW1ldHJpYyhmLG4sbyxyLGkpO2lmKCEoIWgodSl8fHU8MHx8dT5hLmRpc3RhbmNlKHQsZSkpKXJldHVybiBoKHMpfHwocz1uZXcgYSksYS5tdWx0aXBseUJ5U2NhbGFyKGYuZGlyZWN0aW9uLHUscyksYS5hZGQoZi5vcmlnaW4scyxzKX07VFA9e3Jvb3QwOjAscm9vdDE6MH07Z24ucmF5U3BoZXJlPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigicmF5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJzcGhlcmUgaXMgcmVxdWlyZWQuIik7aWYobj1WYih0LGUsbiksISghaChuKXx8bi5zdG9wPDApKXJldHVybiBuLnN0YXJ0PU1hdGgubWF4KG4uc3RhcnQsMCksbn07T1A9bmV3IFFzO2duLmxpbmVTZWdtZW50U3BoZXJlPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJwMCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigicDEgaXMgcmVxdWlyZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoInNwaGVyZSBpcyByZXF1aXJlZC4iKTtsZXQgcj1PUDthLmNsb25lKHQsci5vcmlnaW4pO2xldCBpPWEuc3VidHJhY3QoZSx0LHIuZGlyZWN0aW9uKSxzPWEubWFnbml0dWRlKGkpO2lmKGEubm9ybWFsaXplKGksaSksbz1WYihyLG4sbyksISghaChvKXx8by5zdG9wPDB8fG8uc3RhcnQ+cykpcmV0dXJuIG8uc3RhcnQ9TWF0aC5tYXgoby5zdGFydCwwKSxvLnN0b3A9TWF0aC5taW4oby5zdG9wLHMpLG99O0VQPW5ldyBhLFJQPW5ldyBhO2duLnJheUVsbGlwc29pZD1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJyYXkgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImVsbGlwc29pZCBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLm9uZU92ZXJSYWRpaSxvPWEubXVsdGlwbHlDb21wb25lbnRzKG4sdC5vcmlnaW4sRVApLHI9YS5tdWx0aXBseUNvbXBvbmVudHMobix0LmRpcmVjdGlvbixSUCksaT1hLm1hZ25pdHVkZVNxdWFyZWQobykscz1hLmRvdChvLHIpLGYsdSxjLGwscDtpZihpPjEpe2lmKHM+PTApcmV0dXJuO2xldCBkPXMqcztpZihmPWktMSx1PWEubWFnbml0dWRlU3F1YXJlZChyKSxjPXUqZixkPGMpcmV0dXJuO2lmKGQ+Yyl7bD1zKnMtYyxwPS1zK01hdGguc3FydChsKTtsZXQgXz1wL3UsZz1mL3A7cmV0dXJuIF88Zz9uZXcgUXIoXyxnKTp7c3RhcnQ6ZyxzdG9wOl99fWxldCBtPU1hdGguc3FydChmL3UpO3JldHVybiBuZXcgUXIobSxtKX1lbHNlIGlmKGk8MSlyZXR1cm4gZj1pLTEsdT1hLm1hZ25pdHVkZVNxdWFyZWQociksYz11KmYsbD1zKnMtYyxwPS1zK01hdGguc3FydChsKSxuZXcgUXIoMCxwL3UpO2lmKHM8MClyZXR1cm4gdT1hLm1hZ25pdHVkZVNxdWFyZWQociksbmV3IFFyKDAsLXMvdSl9O2duLnF1YWRyYXRpY1ZlY3RvckV4cHJlc3Npb249ZnVuY3Rpb24odCxlLG4sbyxyKXtsZXQgaT1vKm8scz1yKnIsZj0odFtRLkNPTFVNTjFST1cxXS10W1EuQ09MVU1OMlJPVzJdKSpzLHU9cioobypKcyh0W1EuQ09MVU1OMVJPVzBdLHRbUS5DT0xVTU4wUk9XMV0sTS5FUFNJTE9OMTUpK2UueSksYz10W1EuQ09MVU1OMFJPVzBdKmkrdFtRLkNPTFVNTjJST1cyXSpzK28qZS54K24sbD1zKkpzKHRbUS5DT0xVTU4yUk9XMV0sdFtRLkNPTFVNTjFST1cyXSxNLkVQU0lMT04xNSkscD1yKihvKkpzKHRbUS5DT0xVTU4yUk9XMF0sdFtRLkNPTFVNTjBST1cyXSkrZS56KSxkLG09W107aWYocD09PTAmJmw9PT0wKXtpZihkPWdyLmNvbXB1dGVSZWFsUm9vdHMoZix1LGMpLGQubGVuZ3RoPT09MClyZXR1cm4gbTtsZXQgRD1kWzBdLHY9TWF0aC5zcXJ0KE1hdGgubWF4KDEtRCpELDApKTtpZihtLnB1c2gobmV3IGEobyxyKkQsciotdikpLG0ucHVzaChuZXcgYShvLHIqRCxyKnYpKSxkLmxlbmd0aD09PTIpe2xldCBMPWRbMV0sVT1NYXRoLnNxcnQoTWF0aC5tYXgoMS1MKkwsMCkpO20ucHVzaChuZXcgYShvLHIqTCxyKi1VKSksbS5wdXNoKG5ldyBhKG8scipMLHIqVSkpfXJldHVybiBtfWxldCBfPXAqcCxnPWwqbCxiPWYqZix3PXAqbCxPPWIrZyxFPTIqKHUqZit3KSxUPTIqYypmK3UqdS1nK18sQz0yKihjKnUtdyksTj1jKmMtXztpZihPPT09MCYmRT09PTAmJlQ9PT0wJiZDPT09MClyZXR1cm4gbTtkPVBiLmNvbXB1dGVSZWFsUm9vdHMoTyxFLFQsQyxOKTtsZXQgST1kLmxlbmd0aDtpZihJPT09MClyZXR1cm4gbTtmb3IobGV0IEQ9MDtEPEk7KytEKXtsZXQgdj1kW0RdLEw9dip2LFU9TWF0aC5tYXgoMS1MLDApLEE9TWF0aC5zcXJ0KFUpLFM7TS5zaWduKGYpPT09TS5zaWduKGMpP1M9SnMoZipMK2MsdSp2LE0uRVBTSUxPTjEyKTpNLnNpZ24oYyk9PT1NLnNpZ24odSp2KT9TPUpzKGYqTCx1KnYrYyxNLkVQU0lMT04xMik6Uz1KcyhmKkwrdSp2LGMsTS5FUFNJTE9OMTIpO2xldCBQPUpzKGwqdixwLE0uRVBTSUxPTjE1KSxCPVMqUDtCPDA/bS5wdXNoKG5ldyBhKG8scip2LHIqQSkpOkI+MD9tLnB1c2gobmV3IGEobyxyKnYsciotQSkpOkEhPT0wPyhtLnB1c2gobmV3IGEobyxyKnYsciotQSkpLG0ucHVzaChuZXcgYShvLHIqdixyKkEpKSwrK0QpOm0ucHVzaChuZXcgYShvLHIqdixyKkEpKX1yZXR1cm4gbX07emg9bmV3IGEsdmI9bmV3IGEsTGI9bmV3IGEsa3A9bmV3IGEsU1A9bmV3IGEsQ1A9bmV3IFEseFA9bmV3IFEsUFA9bmV3IFEsTVA9bmV3IFEsTlA9bmV3IFEsRGI9bmV3IFEsRmI9bmV3IFEsQmI9bmV3IGEsSVA9bmV3IGEsdlA9bmV3IGN0O2duLmdyYXppbmdBbHRpdHVkZUxvY2F0aW9uPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJheSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigiZWxsaXBzb2lkIGlzIHJlcXVpcmVkLiIpO2xldCBuPXQub3JpZ2luLG89dC5kaXJlY3Rpb247aWYoIWEuZXF1YWxzKG4sYS5aRVJPKSl7bGV0IE49ZS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobix6aCk7aWYoYS5kb3QobyxOKT49MClyZXR1cm4gbn1sZXQgcj1oKHRoaXMucmF5RWxsaXBzb2lkKHQsZSkpLGk9ZS50cmFuc2Zvcm1Qb3NpdGlvblRvU2NhbGVkU3BhY2Uobyx6aCkscz1hLm5vcm1hbGl6ZShpLGkpLGY9YS5tb3N0T3J0aG9nb25hbEF4aXMoaSxrcCksdT1hLm5vcm1hbGl6ZShhLmNyb3NzKGYscyx2YiksdmIpLGM9YS5ub3JtYWxpemUoYS5jcm9zcyhzLHUsTGIpLExiKSxsPUNQO2xbMF09cy54LGxbMV09cy55LGxbMl09cy56LGxbM109dS54LGxbNF09dS55LGxbNV09dS56LGxbNl09Yy54LGxbN109Yy55LGxbOF09Yy56O2xldCBwPVEudHJhbnNwb3NlKGwseFApLGQ9US5mcm9tU2NhbGUoZS5yYWRpaSxQUCksbT1RLmZyb21TY2FsZShlLm9uZU92ZXJSYWRpaSxNUCksXz1OUDtfWzBdPTAsX1sxXT0tby56LF9bMl09by55LF9bM109by56LF9bNF09MCxfWzVdPS1vLngsX1s2XT0tby55LF9bN109by54LF9bOF09MDtsZXQgZz1RLm11bHRpcGx5KFEubXVsdGlwbHkocCxtLERiKSxfLERiKSxiPVEubXVsdGlwbHkoUS5tdWx0aXBseShnLGQsRmIpLGwsRmIpLHc9US5tdWx0aXBseUJ5VmVjdG9yKGcsbixTUCksTz1nbi5xdWFkcmF0aWNWZWN0b3JFeHByZXNzaW9uKGIsYS5uZWdhdGUodyx6aCksMCwwLDEpLEUsVCxDPU8ubGVuZ3RoO2lmKEM+MCl7bGV0IE49YS5jbG9uZShhLlpFUk8sSVApLEk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2ZvcihsZXQgdj0wO3Y8QzsrK3Ype0U9US5tdWx0aXBseUJ5VmVjdG9yKGQsUS5tdWx0aXBseUJ5VmVjdG9yKGwsT1t2XSxCYiksQmIpO2xldCBMPWEubm9ybWFsaXplKGEuc3VidHJhY3QoRSxuLGtwKSxrcCksVT1hLmRvdChMLG8pO1U+SSYmKEk9VSxOPWEuY2xvbmUoRSxOKSl9bGV0IEQ9ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhOLHZQKTtyZXR1cm4gST1NLmNsYW1wKEksMCwxKSxUPWEubWFnbml0dWRlKGEuc3VidHJhY3QoTixuLGtwKSkqTWF0aC5zcXJ0KDEtSSpJKSxUPXI/LVQ6VCxELmhlaWdodD1ULGUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oRCxuZXcgYSl9fTtMUD1uZXcgYTtnbi5saW5lU2VnbWVudFBsYW5lPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJlbmRQb2ludDAgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImVuZFBvaW50MSBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigicGxhbmUgaXMgcmVxdWlyZWQuIik7aChvKXx8KG89bmV3IGEpO2xldCByPWEuc3VidHJhY3QoZSx0LExQKSxpPW4ubm9ybWFsLHM9YS5kb3QoaSxyKTtpZihNYXRoLmFicyhzKTxNLkVQU0lMT042KXJldHVybjtsZXQgZj1hLmRvdChpLHQpLHU9LShuLmRpc3RhbmNlK2YpL3M7aWYoISh1PDB8fHU+MSkpcmV0dXJuIGEubXVsdGlwbHlCeVNjYWxhcihyLHUsbyksYS5hZGQodCxvLG8pLG99O2duLnRyaWFuZ2xlUGxhbmVJbnRlcnNlY3Rpb249ZnVuY3Rpb24odCxlLG4sbyl7aWYoIWgodCl8fCFoKGUpfHwhaChuKXx8IWgobykpdGhyb3cgbmV3IEYoInAwLCBwMSwgcDIsIGFuZCBwbGFuZSBhcmUgcmVxdWlyZWQuIik7bGV0IHI9by5ub3JtYWwsaT1vLmRpc3RhbmNlLHM9YS5kb3Qocix0KStpPDAsZj1hLmRvdChyLGUpK2k8MCx1PWEuZG90KHIsbikraTwwLGM9MDtjKz1zPzE6MCxjKz1mPzE6MCxjKz11PzE6MDtsZXQgbCxwO2lmKChjPT09MXx8Yz09PTIpJiYobD1uZXcgYSxwPW5ldyBhKSxjPT09MSl7aWYocylyZXR1cm4gZ24ubGluZVNlZ21lbnRQbGFuZSh0LGUsbyxsKSxnbi5saW5lU2VnbWVudFBsYW5lKHQsbixvLHApLHtwb3NpdGlvbnM6W3QsZSxuLGwscF0saW5kaWNlczpbMCwzLDQsMSwyLDQsMSw0LDNdfTtpZihmKXJldHVybiBnbi5saW5lU2VnbWVudFBsYW5lKGUsbixvLGwpLGduLmxpbmVTZWdtZW50UGxhbmUoZSx0LG8scCkse3Bvc2l0aW9uczpbdCxlLG4sbCxwXSxpbmRpY2VzOlsxLDMsNCwyLDAsNCwyLDQsM119O2lmKHUpcmV0dXJuIGduLmxpbmVTZWdtZW50UGxhbmUobix0LG8sbCksZ24ubGluZVNlZ21lbnRQbGFuZShuLGUsbyxwKSx7cG9zaXRpb25zOlt0LGUsbixsLHBdLGluZGljZXM6WzIsMyw0LDAsMSw0LDAsNCwzXX19ZWxzZSBpZihjPT09MilpZihzKWlmKGYpe2lmKCF1KXJldHVybiBnbi5saW5lU2VnbWVudFBsYW5lKHQsbixvLGwpLGduLmxpbmVTZWdtZW50UGxhbmUoZSxuLG8scCkse3Bvc2l0aW9uczpbdCxlLG4sbCxwXSxpbmRpY2VzOlswLDEsNCwwLDQsMywyLDMsNF19fWVsc2UgcmV0dXJuIGduLmxpbmVTZWdtZW50UGxhbmUobixlLG8sbCksZ24ubGluZVNlZ21lbnRQbGFuZSh0LGUsbyxwKSx7cG9zaXRpb25zOlt0LGUsbixsLHBdLGluZGljZXM6WzIsMCw0LDIsNCwzLDEsMyw0XX07ZWxzZSByZXR1cm4gZ24ubGluZVNlZ21lbnRQbGFuZShlLHQsbyxsKSxnbi5saW5lU2VnbWVudFBsYW5lKG4sdCxvLHApLHtwb3NpdGlvbnM6W3QsZSxuLGwscF0saW5kaWNlczpbMSwyLDQsMSw0LDMsMCwzLDRdfX07aG89Z259KTtmdW5jdGlvbiBlbyh0LGUpe2lmKHkudHlwZU9mLm9iamVjdCgibm9ybWFsIix0KSwhTS5lcXVhbHNFcHNpbG9uKGEubWFnbml0dWRlKHQpLDEsTS5FUFNJTE9ONikpdGhyb3cgbmV3IEYoIm5vcm1hbCBtdXN0IGJlIG5vcm1hbGl6ZWQuIik7eS50eXBlT2YubnVtYmVyKCJkaXN0YW5jZSIsZSksdGhpcy5ub3JtYWw9YS5jbG9uZSh0KSx0aGlzLmRpc3RhbmNlPWV9dmFyIERQLEZQLEJQLFVQLFZQLG9uLGZzPVooKCk9PntGdCgpO2hyKCk7WHQoKTtmdCgpO0h0KCk7V3QoKTtVbigpO2VvLmZyb21Qb2ludE5vcm1hbD1mdW5jdGlvbih0LGUsbil7aWYoeS50eXBlT2Yub2JqZWN0KCJwb2ludCIsdCkseS50eXBlT2Yub2JqZWN0KCJub3JtYWwiLGUpLCFNLmVxdWFsc0Vwc2lsb24oYS5tYWduaXR1ZGUoZSksMSxNLkVQU0lMT042KSl0aHJvdyBuZXcgRigibm9ybWFsIG11c3QgYmUgbm9ybWFsaXplZC4iKTtsZXQgbz0tYS5kb3QoZSx0KTtyZXR1cm4gaChuKT8oYS5jbG9uZShlLG4ubm9ybWFsKSxuLmRpc3RhbmNlPW8sbik6bmV3IGVvKGUsbyl9O0RQPW5ldyBhO2VvLmZyb21DYXJ0ZXNpYW40PWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJjb2VmZmljaWVudHMiLHQpO2xldCBuPWEuZnJvbUNhcnRlc2lhbjQodCxEUCksbz10Lnc7aWYoIU0uZXF1YWxzRXBzaWxvbihhLm1hZ25pdHVkZShuKSwxLE0uRVBTSUxPTjYpKXRocm93IG5ldyBGKCJub3JtYWwgbXVzdCBiZSBub3JtYWxpemVkLiIpO3JldHVybiBoKGUpPyhhLmNsb25lKG4sZS5ub3JtYWwpLGUuZGlzdGFuY2U9byxlKTpuZXcgZW8obixvKX07ZW8uZ2V0UG9pbnREaXN0YW5jZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInBsYW5lIix0KSx5LnR5cGVPZi5vYmplY3QoInBvaW50IixlKSxhLmRvdCh0Lm5vcm1hbCxlKSt0LmRpc3RhbmNlfTtGUD1uZXcgYTtlby5wcm9qZWN0UG9pbnRPbnRvUGxhbmU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicGxhbmUiLHQpLHkudHlwZU9mLm9iamVjdCgicG9pbnQiLGUpLGgobil8fChuPW5ldyBhKTtsZXQgbz1lby5nZXRQb2ludERpc3RhbmNlKHQsZSkscj1hLm11bHRpcGx5QnlTY2FsYXIodC5ub3JtYWwsbyxGUCk7cmV0dXJuIGEuc3VidHJhY3QoZSxyLG4pfTtCUD1uZXcgc3QsVVA9bmV3IGhlLFZQPW5ldyBhO2VvLnRyYW5zZm9ybT1mdW5jdGlvbih0LGUsbil7eS50eXBlT2Yub2JqZWN0KCJwbGFuZSIsdCkseS50eXBlT2Yub2JqZWN0KCJ0cmFuc2Zvcm0iLGUpO2xldCBvPXQubm9ybWFsLHI9dC5kaXN0YW5jZSxpPXN0LmludmVyc2VUcmFuc3Bvc2UoZSxCUCkscz1oZS5mcm9tRWxlbWVudHMoby54LG8ueSxvLnoscixVUCk7cz1zdC5tdWx0aXBseUJ5VmVjdG9yKGkscyxzKTtsZXQgZj1hLmZyb21DYXJ0ZXNpYW40KHMsVlApO3JldHVybiBzPWhlLmRpdmlkZUJ5U2NhbGFyKHMsYS5tYWduaXR1ZGUoZikscyksZW8uZnJvbUNhcnRlc2lhbjQocyxuKX07ZW8uY2xvbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJwbGFuZSIsdCksaChlKT8oYS5jbG9uZSh0Lm5vcm1hbCxlLm5vcm1hbCksZS5kaXN0YW5jZT10LmRpc3RhbmNlLGUpOm5ldyBlbyh0Lm5vcm1hbCx0LmRpc3RhbmNlKX07ZW8uZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksdC5kaXN0YW5jZT09PWUuZGlzdGFuY2UmJmEuZXF1YWxzKHQubm9ybWFsLGUubm9ybWFsKX07ZW8uT1JJR0lOX1hZX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IGVvKGEuVU5JVF9aLDApKTtlby5PUklHSU5fWVpfUExBTkU9T2JqZWN0LmZyZWV6ZShuZXcgZW8oYS5VTklUX1gsMCkpO2VvLk9SSUdJTl9aWF9QTEFORT1PYmplY3QuZnJlZXplKG5ldyBlbyhhLlVOSVRfWSwwKSk7b249ZW99KTt2YXIgamgsa2IsR2I9WigoKT0+e0l0KCk7ZnQoKTtIdCgpO2poPXt9O2poLmNhbGN1bGF0ZUFDTVI9ZnVuY3Rpb24odCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQuaW5kaWNlcyxuPXQubWF4aW11bUluZGV4LG89eCh0LmNhY2hlU2l6ZSwyNCk7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImluZGljZXMgaXMgcmVxdWlyZWQuIik7bGV0IHI9ZS5sZW5ndGg7aWYocjwzfHxyJTMhPT0wKXRocm93IG5ldyBGKCJpbmRpY2VzIGxlbmd0aCBtdXN0IGJlIGEgbXVsdGlwbGUgb2YgdGhyZWUuIik7aWYobjw9MCl0aHJvdyBuZXcgRigibWF4aW11bUluZGV4IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYobzwzKXRocm93IG5ldyBGKCJjYWNoZVNpemUgbXVzdCBiZSBncmVhdGVyIHRoYW4gdHdvLiIpO2lmKCFoKG4pKXtuPTA7bGV0IGY9MCx1PWVbZl07Zm9yKDtmPHI7KXU+biYmKG49dSksKytmLHU9ZVtmXX1sZXQgaT1bXTtmb3IobGV0IGY9MDtmPG4rMTtmKyspaVtmXT0wO2xldCBzPW8rMTtmb3IobGV0IGY9MDtmPHI7KytmKXMtaVtlW2ZdXT5vJiYoaVtlW2ZdXT1zLCsrcyk7cmV0dXJuKHMtbysxKS8oci8zKX07amgudGlwc2lmeT1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5pbmRpY2VzLG49dC5tYXhpbXVtSW5kZXgsbz14KHQuY2FjaGVTaXplLDI0KSxyO2Z1bmN0aW9uIGkoVSxBLFMsUCl7Zm9yKDtBLmxlbmd0aD49MTspe2xldCBCPUFbQS5sZW5ndGgtMV07aWYoQS5zcGxpY2UoQS5sZW5ndGgtMSwxKSxVW0JdLm51bUxpdmVUcmlhbmdsZXM+MClyZXR1cm4gQn1mb3IoO3I8UDspe2lmKFVbcl0ubnVtTGl2ZVRyaWFuZ2xlcz4wKXJldHVybisrcixyLTE7KytyfXJldHVybi0xfWZ1bmN0aW9uIHMoVSxBLFMsUCxCLGosSCl7bGV0IGs9LTEsSyxYPS0xLFI9MDtmb3IoO1I8Uy5sZW5ndGg7KXtsZXQgb3Q9U1tSXTtQW290XS5udW1MaXZlVHJpYW5nbGVzJiYoSz0wLEItUFtvdF0udGltZVN0YW1wKzIqUFtvdF0ubnVtTGl2ZVRyaWFuZ2xlczw9QSYmKEs9Qi1QW290XS50aW1lU3RhbXApLChLPlh8fFg9PT0tMSkmJihYPUssaz1vdCkpLCsrUn1yZXR1cm4gaz09PS0xP2koUCxqLFUsSCk6a31pZighaChlKSl0aHJvdyBuZXcgRigiaW5kaWNlcyBpcyByZXF1aXJlZC4iKTtsZXQgZj1lLmxlbmd0aDtpZihmPDN8fGYlMyE9PTApdGhyb3cgbmV3IEYoImluZGljZXMgbGVuZ3RoIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aHJlZS4iKTtpZihuPD0wKXRocm93IG5ldyBGKCJtYXhpbXVtSW5kZXggbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKTtpZihvPDMpdGhyb3cgbmV3IEYoImNhY2hlU2l6ZSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB0d28uIik7bGV0IHU9MCxjPTAsbD1lW2NdLHA9ZjtpZihoKG4pKXU9bisxO2Vsc2V7Zm9yKDtjPHA7KWw+dSYmKHU9bCksKytjLGw9ZVtjXTtpZih1PT09LTEpcmV0dXJuIDA7Kyt1fWxldCBkPVtdLG07Zm9yKG09MDttPHU7bSsrKWRbbV09e251bUxpdmVUcmlhbmdsZXM6MCx0aW1lU3RhbXA6MCx2ZXJ0ZXhUcmlhbmdsZXM6W119O2M9MDtsZXQgXz0wO2Zvcig7YzxwOylkW2VbY11dLnZlcnRleFRyaWFuZ2xlcy5wdXNoKF8pLCsrZFtlW2NdXS5udW1MaXZlVHJpYW5nbGVzLGRbZVtjKzFdXS52ZXJ0ZXhUcmlhbmdsZXMucHVzaChfKSwrK2RbZVtjKzFdXS5udW1MaXZlVHJpYW5nbGVzLGRbZVtjKzJdXS52ZXJ0ZXhUcmlhbmdsZXMucHVzaChfKSwrK2RbZVtjKzJdXS5udW1MaXZlVHJpYW5nbGVzLCsrXyxjKz0zO2xldCBnPTAsYj1vKzE7cj0xO2xldCB3PVtdLE89W10sRSxULEM9MCxOPVtdLEk9Zi8zLEQ9W107Zm9yKG09MDttPEk7bSsrKURbbV09ITE7bGV0IHYsTDtmb3IoO2chPT0tMTspe3c9W10sVD1kW2ddLEw9VC52ZXJ0ZXhUcmlhbmdsZXMubGVuZ3RoO2ZvcihsZXQgVT0wO1U8TDsrK1UpaWYoXz1ULnZlcnRleFRyaWFuZ2xlc1tVXSwhRFtfXSl7RFtfXT0hMCxjPV8rXytfO2ZvcihsZXQgQT0wO0E8MzsrK0Epdj1lW2NdLHcucHVzaCh2KSxPLnB1c2godiksTltDXT12LCsrQyxFPWRbdl0sLS1FLm51bUxpdmVUcmlhbmdsZXMsYi1FLnRpbWVTdGFtcD5vJiYoRS50aW1lU3RhbXA9YiwrK2IpLCsrY31nPXMoZSxvLHcsZCxiLE8sdSl9cmV0dXJuIE59O2tiPWpofSk7ZnVuY3Rpb24gV3AodCxlLG4sbyxyKXt0W2UrK109bix0W2UrK109byx0W2UrK109byx0W2UrK109cix0W2UrK109cix0W2VdPW59ZnVuY3Rpb24ga1AodCl7bGV0IGU9dC5sZW5ndGgsbj1lLzMqNixvPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxuKSxyPTA7Zm9yKGxldCBpPTA7aTxlO2krPTMscis9NilXcChvLHIsdFtpXSx0W2krMV0sdFtpKzJdKTtyZXR1cm4gb31mdW5jdGlvbiBHUCh0KXtsZXQgZT10Lmxlbmd0aDtpZihlPj0zKXtsZXQgbj0oZS0yKSo2LG89RHQuY3JlYXRlVHlwZWRBcnJheShlLG4pO1dwKG8sMCx0WzBdLHRbMV0sdFsyXSk7bGV0IHI9Njtmb3IobGV0IGk9MztpPGU7KytpLHIrPTYpV3AobyxyLHRbaS0xXSx0W2ldLHRbaS0yXSk7cmV0dXJuIG99cmV0dXJuIG5ldyBVaW50MTZBcnJheX1mdW5jdGlvbiB6UCh0KXtpZih0Lmxlbmd0aD4wKXtsZXQgZT10Lmxlbmd0aC0xLG49KGUtMSkqNixvPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxuKSxyPXRbMF0saT0wO2ZvcihsZXQgcz0xO3M8ZTsrK3MsaSs9NilXcChvLGkscix0W3NdLHRbcysxXSk7cmV0dXJuIG99cmV0dXJuIG5ldyBVaW50MTZBcnJheX1mdW5jdGlvbiB6Yih0KXtsZXQgZT17fTtmb3IobGV0IG4gaW4gdClpZih0Lmhhc093blByb3BlcnR5KG4pJiZoKHRbbl0pJiZoKHRbbl0udmFsdWVzKSl7bGV0IG89dFtuXTtlW25dPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6by5jb21wb25lbnREYXRhdHlwZSxjb21wb25lbnRzUGVyQXR0cmlidXRlOm8uY29tcG9uZW50c1BlckF0dHJpYnV0ZSxub3JtYWxpemU6by5ub3JtYWxpemUsdmFsdWVzOltdfSl9cmV0dXJuIGV9ZnVuY3Rpb24galAodCxlLG4pe2ZvcihsZXQgbyBpbiBlKWlmKGUuaGFzT3duUHJvcGVydHkobykmJmgoZVtvXSkmJmgoZVtvXS52YWx1ZXMpKXtsZXQgcj1lW29dO2ZvcihsZXQgaT0wO2k8ci5jb21wb25lbnRzUGVyQXR0cmlidXRlOysraSl0W29dLnZhbHVlcy5wdXNoKHIudmFsdWVzW24qci5jb21wb25lbnRzUGVyQXR0cmlidXRlK2ldKX19ZnVuY3Rpb24gcWgodCxlKXtpZihoKGUpKXtsZXQgbj1lLnZhbHVlcyxvPW4ubGVuZ3RoO2ZvcihsZXQgcj0wO3I8bztyKz0zKWEudW5wYWNrKG4scixWciksc3QubXVsdGlwbHlCeVBvaW50KHQsVnIsVnIpLGEucGFjayhWcixuLHIpfX1mdW5jdGlvbiBLaCh0LGUpe2lmKGgoZSkpe2xldCBuPWUudmFsdWVzLG89bi5sZW5ndGg7Zm9yKGxldCByPTA7cjxvO3IrPTMpYS51bnBhY2sobixyLFZyKSxRLm11bHRpcGx5QnlWZWN0b3IodCxWcixWciksVnI9YS5ub3JtYWxpemUoVnIsVnIpLGEucGFjayhWcixuLHIpfX1mdW5jdGlvbiBxUCh0LGUpe2xldCBuPXQubGVuZ3RoLG89e30scj10WzBdW2VdLmF0dHJpYnV0ZXMsaTtmb3IoaSBpbiByKWlmKHIuaGFzT3duUHJvcGVydHkoaSkmJmgocltpXSkmJmgocltpXS52YWx1ZXMpKXtsZXQgcz1yW2ldLGY9cy52YWx1ZXMubGVuZ3RoLHU9ITA7Zm9yKGxldCBjPTE7YzxuOysrYyl7bGV0IGw9dFtjXVtlXS5hdHRyaWJ1dGVzW2ldO2lmKCFoKGwpfHxzLmNvbXBvbmVudERhdGF0eXBlIT09bC5jb21wb25lbnREYXRhdHlwZXx8cy5jb21wb25lbnRzUGVyQXR0cmlidXRlIT09bC5jb21wb25lbnRzUGVyQXR0cmlidXRlfHxzLm5vcm1hbGl6ZSE9PWwubm9ybWFsaXplKXt1PSExO2JyZWFrfWYrPWwudmFsdWVzLmxlbmd0aH11JiYob1tpXT1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOnMuY29tcG9uZW50RGF0YXR5cGUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpzLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsbm9ybWFsaXplOnMubm9ybWFsaXplLHZhbHVlczpudC5jcmVhdGVUeXBlZEFycmF5KHMuY29tcG9uZW50RGF0YXR5cGUsZil9KSl9cmV0dXJuIG99ZnVuY3Rpb24gV2godCxlKXtsZXQgbj10Lmxlbmd0aCxvLHIsaSxzLGY9dFswXS5tb2RlbE1hdHJpeCx1PWgodFswXVtlXS5pbmRpY2VzKSxjPXRbMF1bZV0ucHJpbWl0aXZlVHlwZTtmb3Iocj0xO3I8bjsrK3Ipe2lmKCFzdC5lcXVhbHModFtyXS5tb2RlbE1hdHJpeCxmKSl0aHJvdyBuZXcgRigiQWxsIGluc3RhbmNlcyBtdXN0IGhhdmUgdGhlIHNhbWUgbW9kZWxNYXRyaXguIik7aWYoaCh0W3JdW2VdLmluZGljZXMpIT09dSl0aHJvdyBuZXcgRigiQWxsIGluc3RhbmNlIGdlb21ldHJpZXMgbXVzdCBoYXZlIGFuIGluZGljZXMgb3Igbm90IGhhdmUgb25lLiIpO2lmKHRbcl1bZV0ucHJpbWl0aXZlVHlwZSE9PWMpdGhyb3cgbmV3IEYoIkFsbCBpbnN0YW5jZSBnZW9tZXRyaWVzIG11c3QgaGF2ZSB0aGUgc2FtZSBwcmltaXRpdmVUeXBlLiIpfWxldCBsPXFQKHQsZSkscCxkLG07Zm9yKG8gaW4gbClpZihsLmhhc093blByb3BlcnR5KG8pKWZvcihwPWxbb10udmFsdWVzLHM9MCxyPTA7cjxuOysrcilmb3IoZD10W3JdW2VdLmF0dHJpYnV0ZXNbb10udmFsdWVzLG09ZC5sZW5ndGgsaT0wO2k8bTsrK2kpcFtzKytdPWRbaV07bGV0IF87aWYodSl7bGV0IE89MDtmb3Iocj0wO3I8bjsrK3IpTys9dFtyXVtlXS5pbmRpY2VzLmxlbmd0aDtsZXQgRT1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyhuZXcgVXQoe2F0dHJpYnV0ZXM6bCxwcmltaXRpdmVUeXBlOkJ0LlBPSU5UU30pKSxUPUR0LmNyZWF0ZVR5cGVkQXJyYXkoRSxPKSxDPTAsTj0wO2ZvcihyPTA7cjxuOysrcil7bGV0IEk9dFtyXVtlXS5pbmRpY2VzLEQ9SS5sZW5ndGg7Zm9yKHM9MDtzPEQ7KytzKVRbQysrXT1OK0lbc107Tis9VXQuY29tcHV0ZU51bWJlck9mVmVydGljZXModFtyXVtlXSl9Xz1UfWxldCBnPW5ldyBhLGI9MCx3O2ZvcihyPTA7cjxuOysrcil7aWYodz10W3JdW2VdLmJvdW5kaW5nU3BoZXJlLCFoKHcpKXtnPXZvaWQgMDticmVha31hLmFkZCh3LmNlbnRlcixnLGcpfWlmKGgoZykpZm9yKGEuZGl2aWRlQnlTY2FsYXIoZyxuLGcpLHI9MDtyPG47KytyKXt3PXRbcl1bZV0uYm91bmRpbmdTcGhlcmU7bGV0IE89YS5tYWduaXR1ZGUoYS5zdWJ0cmFjdCh3LmNlbnRlcixnLEtQKSkrdy5yYWRpdXM7Tz5iJiYoYj1PKX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOmwsaW5kaWNlczpfLHByaW1pdGl2ZVR5cGU6Yyxib3VuZGluZ1NwaGVyZTpoKGcpP25ldyBBdChnLGIpOnZvaWQgMH0pfWZ1bmN0aW9uIFlQKHQpe2lmKGgodC5pbmRpY2VzKSlyZXR1cm4gdDtsZXQgZT1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtpZihlPDMpdGhyb3cgbmV3IEYoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhdCBsZWFzdCB0aHJlZS4iKTtpZihlJTMhPT0wKXRocm93IG5ldyBGKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiB0aHJlZS4iKTtsZXQgbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsZSk7Zm9yKGxldCBvPTA7bzxlOysrbyluW29dPW87cmV0dXJuIHQuaW5kaWNlcz1uLHR9ZnVuY3Rpb24gJFAodCl7bGV0IGU9VXQuY29tcHV0ZU51bWJlck9mVmVydGljZXModCk7aWYoZTwzKXRocm93IG5ldyBGKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYXQgbGVhc3QgdGhyZWUuIik7bGV0IG49RHQuY3JlYXRlVHlwZWRBcnJheShlLChlLTIpKjMpO25bMF09MSxuWzFdPTAsblsyXT0yO2xldCBvPTM7Zm9yKGxldCByPTM7cjxlOysrciluW28rK109ci0xLG5bbysrXT0wLG5bbysrXT1yO3JldHVybiB0LmluZGljZXM9bix0LnByaW1pdGl2ZVR5cGU9QnQuVFJJQU5HTEVTLHR9ZnVuY3Rpb24gWlAodCl7bGV0IGU9VXQuY29tcHV0ZU51bWJlck9mVmVydGljZXModCk7aWYoZTwzKXRocm93IG5ldyBGKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYXQgbGVhc3QgMy4iKTtsZXQgbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsKGUtMikqMyk7blswXT0wLG5bMV09MSxuWzJdPTIsZT4zJiYoblszXT0wLG5bNF09MixuWzVdPTMpO2xldCBvPTY7Zm9yKGxldCByPTM7cjxlLTE7cis9MiluW28rK109cixuW28rK109ci0xLG5bbysrXT1yKzEscisyPGUmJihuW28rK109cixuW28rK109cisxLG5bbysrXT1yKzIpO3JldHVybiB0LmluZGljZXM9bix0LnByaW1pdGl2ZVR5cGU9QnQuVFJJQU5HTEVTLHR9ZnVuY3Rpb24gUVAodCl7aWYoaCh0LmluZGljZXMpKXJldHVybiB0O2xldCBlPVV0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO2lmKGU8Mil0aHJvdyBuZXcgRigiVGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBtdXN0IGJlIGF0IGxlYXN0IHR3by4iKTtpZihlJTIhPT0wKXRocm93IG5ldyBGKCJUaGUgbnVtYmVyIG9mIHZlcnRpY2VzIG11c3QgYmUgYSBtdWx0aXBsZSBvZiAyLiIpO2xldCBuPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSxlKTtmb3IobGV0IG89MDtvPGU7KytvKW5bb109bztyZXR1cm4gdC5pbmRpY2VzPW4sdH1mdW5jdGlvbiBKUCh0KXtsZXQgZT1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtpZihlPDIpdGhyb3cgbmV3IEYoIlRoZSBudW1iZXIgb2YgdmVydGljZXMgbXVzdCBiZSBhdCBsZWFzdCB0d28uIik7bGV0IG49RHQuY3JlYXRlVHlwZWRBcnJheShlLChlLTEpKjIpO25bMF09MCxuWzFdPTE7bGV0IG89Mjtmb3IobGV0IHI9MjtyPGU7KytyKW5bbysrXT1yLTEsbltvKytdPXI7cmV0dXJuIHQuaW5kaWNlcz1uLHQucHJpbWl0aXZlVHlwZT1CdC5MSU5FUyx0fWZ1bmN0aW9uIHRNKHQpe2xldCBlPVV0LmNvbXB1dGVOdW1iZXJPZlZlcnRpY2VzKHQpO2lmKGU8Mil0aHJvdyBuZXcgRigiVGhlIG51bWJlciBvZiB2ZXJ0aWNlcyBtdXN0IGJlIGF0IGxlYXN0IHR3by4iKTtsZXQgbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsZSoyKTtuWzBdPTAsblsxXT0xO2xldCBvPTI7Zm9yKGxldCByPTI7cjxlOysrciluW28rK109ci0xLG5bbysrXT1yO3JldHVybiBuW28rK109ZS0xLG5bb109MCx0LmluZGljZXM9bix0LnByaW1pdGl2ZVR5cGU9QnQuTElORVMsdH1mdW5jdGlvbiBlTSh0KXtzd2l0Y2godC5wcmltaXRpdmVUeXBlKXtjYXNlIEJ0LlRSSUFOR0xFX0ZBTjpyZXR1cm4gJFAodCk7Y2FzZSBCdC5UUklBTkdMRV9TVFJJUDpyZXR1cm4gWlAodCk7Y2FzZSBCdC5UUklBTkdMRVM6cmV0dXJuIFlQKHQpO2Nhc2UgQnQuTElORV9TVFJJUDpyZXR1cm4gSlAodCk7Y2FzZSBCdC5MSU5FX0xPT1A6cmV0dXJuIHRNKHQpO2Nhc2UgQnQuTElORVM6cmV0dXJuIFFQKHQpfXJldHVybiB0fWZ1bmN0aW9uIHVzKHQsZSl7TWF0aC5hYnModC55KTxNLkVQU0lMT042JiYoZT90Lnk9LU0uRVBTSUxPTjY6dC55PU0uRVBTSUxPTjYpfWZ1bmN0aW9uIG5NKHQsZSxuKXtpZih0LnkhPT0wJiZlLnkhPT0wJiZuLnkhPT0wKXt1cyh0LHQueTwwKSx1cyhlLGUueTwwKSx1cyhuLG4ueTwwKTtyZXR1cm59bGV0IG89TWF0aC5hYnModC55KSxyPU1hdGguYWJzKGUueSksaT1NYXRoLmFicyhuLnkpLHM7bz5yP28+aT9zPU0uc2lnbih0LnkpOnM9TS5zaWduKG4ueSk6cj5pP3M9TS5zaWduKGUueSk6cz1NLnNpZ24obi55KTtsZXQgZj1zPDA7dXModCxmKSx1cyhlLGYpLHVzKG4sZil9ZnVuY3Rpb24gYnIodCxlLG4sbyl7YS5hZGQodCxhLm11bHRpcGx5QnlTY2FsYXIoYS5zdWJ0cmFjdChlLHQsV2IpLHQueS8odC55LWUueSksV2IpLG4pLGEuY2xvbmUobixvKSx1cyhuLCEwKSx1cyhvLCExKX1mdW5jdGlvbiBvTSh0LGUsbil7aWYodC54Pj0wfHxlLng+PTB8fG4ueD49MClyZXR1cm47bk0odCxlLG4pO2xldCBvPXQueTwwLHI9ZS55PDAsaT1uLnk8MCxzPTA7cys9bz8xOjAscys9cj8xOjAscys9aT8xOjA7bGV0IGY9WGguaW5kaWNlcztzPT09MT8oZlsxXT0zLGZbMl09NCxmWzVdPTYsZls3XT02LGZbOF09NSxvPyhicih0LGUsZWMsb2MpLGJyKHQsbixuYyxyYyksZlswXT0wLGZbM109MSxmWzRdPTIsZls2XT0xKTpyPyhicihlLG4sZWMsb2MpLGJyKGUsdCxuYyxyYyksZlswXT0xLGZbM109MixmWzRdPTAsZls2XT0yKTppJiYoYnIobix0LGVjLG9jKSxicihuLGUsbmMscmMpLGZbMF09MixmWzNdPTAsZls0XT0xLGZbNl09MCkpOnM9PT0yJiYoZlsyXT00LGZbNF09NCxmWzVdPTMsZls3XT01LGZbOF09NixvP3I/aXx8KGJyKG4sdCxlYyxvYyksYnIobixlLG5jLHJjKSxmWzBdPTAsZlsxXT0xLGZbM109MCxmWzZdPTIpOihicihlLG4sZWMsb2MpLGJyKGUsdCxuYyxyYyksZlswXT0yLGZbMV09MCxmWzNdPTIsZls2XT0xKTooYnIodCxlLGVjLG9jKSxicih0LG4sbmMscmMpLGZbMF09MSxmWzFdPTIsZlszXT0xLGZbNl09MCkpO2xldCB1PVhoLnBvc2l0aW9ucztyZXR1cm4gdVswXT10LHVbMV09ZSx1WzJdPW4sdS5sZW5ndGg9Mywocz09PTF8fHM9PT0yKSYmKHVbM109ZWMsdVs0XT1uYyx1WzVdPW9jLHVbNl09cmMsdS5sZW5ndGg9NyksWGh9ZnVuY3Rpb24gWGIodCxlKXtsZXQgbj10LmF0dHJpYnV0ZXM7aWYobi5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoPT09MClyZXR1cm47Zm9yKGxldCByIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShyKSYmaChuW3JdKSYmaChuW3JdLnZhbHVlcykpe2xldCBpPW5bcl07aS52YWx1ZXM9bnQuY3JlYXRlVHlwZWRBcnJheShpLmNvbXBvbmVudERhdGF0eXBlLGkudmFsdWVzKX1sZXQgbz1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtyZXR1cm4gdC5pbmRpY2VzPUR0LmNyZWF0ZVR5cGVkQXJyYXkobyx0LmluZGljZXMpLGUmJih0LmJvdW5kaW5nU3BoZXJlPUF0LmZyb21WZXJ0aWNlcyhuLnBvc2l0aW9uLnZhbHVlcykpLHR9ZnVuY3Rpb24gc2EodCl7bGV0IGU9dC5hdHRyaWJ1dGVzLG49e307Zm9yKGxldCBvIGluIGUpaWYoZS5oYXNPd25Qcm9wZXJ0eShvKSYmaChlW29dKSYmaChlW29dLnZhbHVlcykpe2xldCByPWVbb107bltvXT1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOnIuY29tcG9uZW50RGF0YXR5cGUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpyLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGUsbm9ybWFsaXplOnIubm9ybWFsaXplLHZhbHVlczpbXX0pfXJldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6bixpbmRpY2VzOltdLHByaW1pdGl2ZVR5cGU6dC5wcmltaXRpdmVUeXBlfSl9ZnVuY3Rpb24gUWgodCxlLG4pe2xldCBvPWgodC5nZW9tZXRyeS5ib3VuZGluZ1NwaGVyZSk7ZT1YYihlLG8pLG49WGIobixvKSxoKG4pJiYhaChlKT90Lmdlb21ldHJ5PW46IWgobikmJmgoZSk/dC5nZW9tZXRyeT1lOih0Lndlc3RIZW1pc3BoZXJlR2VvbWV0cnk9ZSx0LmVhc3RIZW1pc3BoZXJlR2VvbWV0cnk9bix0Lmdlb21ldHJ5PXZvaWQgMCl9ZnVuY3Rpb24gSmgodCxlKXtsZXQgbj1uZXcgdCxvPW5ldyB0LHI9bmV3IHQ7cmV0dXJuIGZ1bmN0aW9uKGkscyxmLHUsYyxsLHAsZCl7bGV0IG09dC5mcm9tQXJyYXkoYyxpKmUsbiksXz10LmZyb21BcnJheShjLHMqZSxvKSxnPXQuZnJvbUFycmF5KGMsZiplLHIpO3QubXVsdGlwbHlCeVNjYWxhcihtLHUueCxtKSx0Lm11bHRpcGx5QnlTY2FsYXIoXyx1LnksXyksdC5tdWx0aXBseUJ5U2NhbGFyKGcsdS56LGcpO2xldCBiPXQuYWRkKG0sXyxtKTt0LmFkZChiLGcsYiksZCYmdC5ub3JtYWxpemUoYixiKSx0LnBhY2soYixsLHAqZSl9fWZ1bmN0aW9uIEhwKHQsZSxuLG8scixpLHMsZix1LGMsbCxwLGQsbSxfLGcpe2lmKCFoKGkpJiYhaChzKSYmIWgoZikmJiFoKHUpJiYhaChjKSYmbT09PTApcmV0dXJuO2xldCBiPWEuZnJvbUFycmF5KHIsdCozLFNmKSx3PWEuZnJvbUFycmF5KHIsZSozLFloKSxPPWEuZnJvbUFycmF5KHIsbiozLCRoKSxFPVJiKG8sYix3LE8sc00pO2lmKGgoRSkpe2lmKGgoaSkmJktwKHQsZSxuLEUsaSxwLm5vcm1hbC52YWx1ZXMsZywhMCksaChjKSl7bGV0IFQ9YS5mcm9tQXJyYXkoYyx0KjMsU2YpLEM9YS5mcm9tQXJyYXkoYyxlKjMsWWgpLE49YS5mcm9tQXJyYXkoYyxuKjMsJGgpO2EubXVsdGlwbHlCeVNjYWxhcihULEUueCxUKSxhLm11bHRpcGx5QnlTY2FsYXIoQyxFLnksQyksYS5tdWx0aXBseUJ5U2NhbGFyKE4sRS56LE4pO2xldCBJOyFhLmVxdWFscyhULGEuWkVSTyl8fCFhLmVxdWFscyhDLGEuWkVSTyl8fCFhLmVxdWFscyhOLGEuWkVSTyk/KEk9YS5hZGQoVCxDLFQpLGEuYWRkKEksTixJKSxhLm5vcm1hbGl6ZShJLEkpKTooST1TZixJLng9MCxJLnk9MCxJLno9MCksYS5wYWNrKEkscC5leHRydWRlRGlyZWN0aW9uLnZhbHVlcyxnKjMpfWlmKGgobCkmJmlNKHQsZSxuLEUsbCxwLmFwcGx5T2Zmc2V0LnZhbHVlcyxnKSxoKHMpJiZLcCh0LGUsbixFLHMscC50YW5nZW50LnZhbHVlcyxnLCEwKSxoKGYpJiZLcCh0LGUsbixFLGYscC5iaXRhbmdlbnQudmFsdWVzLGcsITApLGgodSkmJnR3KHQsZSxuLEUsdSxwLnN0LnZhbHVlcyxnKSxtPjApZm9yKGxldCBUPTA7VDxtO1QrKyl7bGV0IEM9ZFtUXTtjTSh0LGUsbixFLGcsX1tDXSxwW0NdKX19fWZ1bmN0aW9uIGNNKHQsZSxuLG8scixpLHMpe2xldCBmPWkuY29tcG9uZW50c1BlckF0dHJpYnV0ZSx1PWkudmFsdWVzLGM9cy52YWx1ZXM7c3dpdGNoKGYpe2Nhc2UgNDpyTSh0LGUsbixvLHUsYyxyLCExKTticmVhaztjYXNlIDM6S3AodCxlLG4sbyx1LGMsciwhMSk7YnJlYWs7Y2FzZSAyOnR3KHQsZSxuLG8sdSxjLHIsITEpO2JyZWFrO2RlZmF1bHQ6Y1tyXT11W3RdKm8ueCt1W2VdKm8ueSt1W25dKm8uen19ZnVuY3Rpb24gaWkodCxlLG4sbyxyLGkpe2xldCBzPXQucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zO2lmKHIhPT0tMSl7bGV0IGY9b1tyXSx1PW5bZl07cmV0dXJuIHU9PT0tMT8obltmXT1zLHQucG9zaXRpb24udmFsdWVzLnB1c2goaS54LGkueSxpLnopLGUucHVzaChzKSxzKTooZS5wdXNoKHUpLHUpfXJldHVybiB0LnBvc2l0aW9uLnZhbHVlcy5wdXNoKGkueCxpLnksaS56KSxlLnB1c2gocyksc31mdW5jdGlvbiBZYih0KXtsZXQgZT10Lmdlb21ldHJ5LG49ZS5hdHRyaWJ1dGVzLG89bi5wb3NpdGlvbi52YWx1ZXMscj1oKG4ubm9ybWFsKT9uLm5vcm1hbC52YWx1ZXM6dm9pZCAwLGk9aChuLmJpdGFuZ2VudCk/bi5iaXRhbmdlbnQudmFsdWVzOnZvaWQgMCxzPWgobi50YW5nZW50KT9uLnRhbmdlbnQudmFsdWVzOnZvaWQgMCxmPWgobi5zdCk/bi5zdC52YWx1ZXM6dm9pZCAwLHU9aChuLmV4dHJ1ZGVEaXJlY3Rpb24pP24uZXh0cnVkZURpcmVjdGlvbi52YWx1ZXM6dm9pZCAwLGM9aChuLmFwcGx5T2Zmc2V0KT9uLmFwcGx5T2Zmc2V0LnZhbHVlczp2b2lkIDAsbD1lLmluZGljZXMscD1bXTtmb3IobGV0IEkgaW4gbiluLmhhc093blByb3BlcnR5KEkpJiYhYU1bSV0mJmgobltJXSkmJnAucHVzaChJKTtsZXQgZD1wLmxlbmd0aCxtPXNhKGUpLF89c2EoZSksZyxiLHcsTyxFLFQ9W107VC5sZW5ndGg9by5sZW5ndGgvMztsZXQgQz1bXTtmb3IoQy5sZW5ndGg9by5sZW5ndGgvMyxFPTA7RTxULmxlbmd0aDsrK0UpVFtFXT0tMSxDW0VdPS0xO2xldCBOPWwubGVuZ3RoO2ZvcihFPTA7RTxOO0UrPTMpe2xldCBJPWxbRV0sRD1sW0UrMV0sdj1sW0UrMl0sTD1hLmZyb21BcnJheShvLEkqMyksVT1hLmZyb21BcnJheShvLEQqMyksQT1hLmZyb21BcnJheShvLHYqMyksUz1vTShMLFUsQSk7aWYoaChTKSYmUy5wb3NpdGlvbnMubGVuZ3RoPjMpe2xldCBQPVMucG9zaXRpb25zLEI9Uy5pbmRpY2VzLGo9Qi5sZW5ndGg7Zm9yKGxldCBIPTA7SDxqOysrSCl7bGV0IGs9QltIXSxLPVBba107Sy55PDA/KGc9Xy5hdHRyaWJ1dGVzLGI9Xy5pbmRpY2VzLHc9VCk6KGc9bS5hdHRyaWJ1dGVzLGI9bS5pbmRpY2VzLHc9QyksTz1paShnLGIsdyxsLGs8Mz9FK2s6LTEsSyksSHAoSSxELHYsSyxvLHIscyxpLGYsdSxjLGcscCxkLG4sTyl9fWVsc2UgaChTKSYmKEw9Uy5wb3NpdGlvbnNbMF0sVT1TLnBvc2l0aW9uc1sxXSxBPVMucG9zaXRpb25zWzJdKSxMLnk8MD8oZz1fLmF0dHJpYnV0ZXMsYj1fLmluZGljZXMsdz1UKTooZz1tLmF0dHJpYnV0ZXMsYj1tLmluZGljZXMsdz1DKSxPPWlpKGcsYix3LGwsRSxMKSxIcChJLEQsdixMLG8scixzLGksZix1LGMsZyxwLGQsbixPKSxPPWlpKGcsYix3LGwsRSsxLFUpLEhwKEksRCx2LFUsbyxyLHMsaSxmLHUsYyxnLHAsZCxuLE8pLE89aWkoZyxiLHcsbCxFKzIsQSksSHAoSSxELHYsQSxvLHIscyxpLGYsdSxjLGcscCxkLG4sTyl9UWgodCxfLG0pfWZ1bmN0aW9uIGlhKHQsZSxuLG8scixpLHMpe2lmKCFoKHMpKXJldHVybjtsZXQgZj1hLmZyb21BcnJheShvLHQqMyxTZik7YS5lcXVhbHNFcHNpbG9uKGYsbixNLkVQU0lMT04xMCk/aS5hcHBseU9mZnNldC52YWx1ZXNbcl09c1t0XTppLmFwcGx5T2Zmc2V0LnZhbHVlc1tyXT1zW2VdfWZ1bmN0aW9uICRiKHQpe2xldCBlPXQuZ2VvbWV0cnksbj1lLmF0dHJpYnV0ZXMsbz1uLnBvc2l0aW9uLnZhbHVlcyxyPWgobi5hcHBseU9mZnNldCk/bi5hcHBseU9mZnNldC52YWx1ZXM6dm9pZCAwLGk9ZS5pbmRpY2VzLHM9c2EoZSksZj1zYShlKSx1LGM9aS5sZW5ndGgsbD1bXTtsLmxlbmd0aD1vLmxlbmd0aC8zO2xldCBwPVtdO2ZvcihwLmxlbmd0aD1vLmxlbmd0aC8zLHU9MDt1PGwubGVuZ3RoOysrdSlsW3VdPS0xLHBbdV09LTE7Zm9yKHU9MDt1PGM7dSs9Mil7bGV0IGQ9aVt1XSxtPWlbdSsxXSxfPWEuZnJvbUFycmF5KG8sZCozLFNmKSxnPWEuZnJvbUFycmF5KG8sbSozLFloKSxiO01hdGguYWJzKF8ueSk8TS5FUFNJTE9ONiYmKF8ueTwwP18ueT0tTS5FUFNJTE9ONjpfLnk9TS5FUFNJTE9ONiksTWF0aC5hYnMoZy55KTxNLkVQU0lMT042JiYoZy55PDA/Zy55PS1NLkVQU0lMT042OmcueT1NLkVQU0lMT042KTtsZXQgdz1zLmF0dHJpYnV0ZXMsTz1zLmluZGljZXMsRT1wLFQ9Zi5hdHRyaWJ1dGVzLEM9Zi5pbmRpY2VzLE49bCxJPWhvLmxpbmVTZWdtZW50UGxhbmUoXyxnLGV3LCRoKTtpZihoKEkpKXtsZXQgRD1hLm11bHRpcGx5QnlTY2FsYXIoYS5VTklUX1ksNSpNLkVQU0lMT045LGZNKTtfLnk8MCYmKGEubmVnYXRlKEQsRCksdz1mLmF0dHJpYnV0ZXMsTz1mLmluZGljZXMsRT1sLFQ9cy5hdHRyaWJ1dGVzLEM9cy5pbmRpY2VzLE49cCk7bGV0IHY9YS5hZGQoSSxELHVNKTtiPWlpKHcsTyxFLGksdSxfKSxpYShkLG0sXyxvLGIsdyxyKSxiPWlpKHcsTyxFLGksLTEsdiksaWEoZCxtLHYsbyxiLHcsciksYS5uZWdhdGUoRCxEKSxhLmFkZChJLEQsdiksYj1paShULEMsTixpLC0xLHYpLGlhKGQsbSx2LG8sYixULHIpLGI9aWkoVCxDLE4saSx1KzEsZyksaWEoZCxtLGcsbyxiLFQscil9ZWxzZXtsZXQgRCx2LEw7Xy55PDA/KEQ9Zi5hdHRyaWJ1dGVzLHY9Zi5pbmRpY2VzLEw9bCk6KEQ9cy5hdHRyaWJ1dGVzLHY9cy5pbmRpY2VzLEw9cCksYj1paShELHYsTCxpLHUsXyksaWEoZCxtLF8sbyxiLEQsciksYj1paShELHYsTCxpLHUrMSxnKSxpYShkLG0sZyxvLGIsRCxyKX19UWgodCxmLHMpfWZ1bmN0aW9uIEpiKHQpe2xldCBlPXQuYXR0cmlidXRlcyxuPWUucG9zaXRpb24udmFsdWVzLG89ZS5wcmV2UG9zaXRpb24udmFsdWVzLHI9ZS5uZXh0UG9zaXRpb24udmFsdWVzLGk9bi5sZW5ndGg7Zm9yKGxldCBzPTA7czxpO3MrPTMpe2xldCBmPWEudW5wYWNrKG4scyxudyk7aWYoZi54PjApY29udGludWU7bGV0IHU9YS51bnBhY2sobyxzLG93KTsoZi55PDAmJnUueT4wfHxmLnk+MCYmdS55PDApJiYocy0zPjA/KG9bc109bltzLTNdLG9bcysxXT1uW3MtMl0sb1tzKzJdPW5bcy0xXSk6YS5wYWNrKGYsbyxzKSk7bGV0IGM9YS51bnBhY2socixzLFpoKTsoZi55PDAmJmMueT4wfHxmLnk+MCYmYy55PDApJiYocyszPGk/KHJbc109bltzKzNdLHJbcysxXT1uW3MrNF0scltzKzJdPW5bcys1XSk6YS5wYWNrKGYscixzKSl9fWZ1bmN0aW9uIF9NKHQpe2xldCBlPXQuZ2VvbWV0cnksbj1lLmF0dHJpYnV0ZXMsbz1uLnBvc2l0aW9uLnZhbHVlcyxyPW4ucHJldlBvc2l0aW9uLnZhbHVlcyxpPW4ubmV4dFBvc2l0aW9uLnZhbHVlcyxzPW4uZXhwYW5kQW5kV2lkdGgudmFsdWVzLGY9aChuLnN0KT9uLnN0LnZhbHVlczp2b2lkIDAsdT1oKG4uY29sb3IpP24uY29sb3IudmFsdWVzOnZvaWQgMCxjPXNhKGUpLGw9c2EoZSkscCxkLG0sXz0hMSxnPW8ubGVuZ3RoLzM7Zm9yKHA9MDtwPGc7cCs9NCl7bGV0IGI9cCx3PXArMixPPWEuZnJvbUFycmF5KG8sYiozLG53KSxFPWEuZnJvbUFycmF5KG8sdyozLG93KTtpZihNYXRoLmFicyhPLnkpPHFwKWZvcihPLnk9cXAqKEUueTwwPy0xOjEpLG9bcCozKzFdPU8ueSxvWyhwKzEpKjMrMV09Ty55LGQ9YiozO2Q8YiozKzQqMztkKz0zKXJbZF09b1twKjNdLHJbZCsxXT1vW3AqMysxXSxyW2QrMl09b1twKjMrMl07aWYoTWF0aC5hYnMoRS55KTxxcClmb3IoRS55PXFwKihPLnk8MD8tMToxKSxvWyhwKzIpKjMrMV09RS55LG9bKHArMykqMysxXT1FLnksZD1iKjM7ZDxiKjMrNCozO2QrPTMpaVtkXT1vWyhwKzIpKjNdLGlbZCsxXT1vWyhwKzIpKjMrMV0saVtkKzJdPW9bKHArMikqMysyXTtsZXQgVD1jLmF0dHJpYnV0ZXMsQz1jLmluZGljZXMsTj1sLmF0dHJpYnV0ZXMsST1sLmluZGljZXMsRD1oby5saW5lU2VnbWVudFBsYW5lKE8sRSxldyxwTSk7aWYoaChEKSl7Xz0hMDtsZXQgdj1hLm11bHRpcGx5QnlTY2FsYXIoYS5VTklUX1ksaE0sZE0pO08ueTwwJiYoYS5uZWdhdGUodix2KSxUPWwuYXR0cmlidXRlcyxDPWwuaW5kaWNlcyxOPWMuYXR0cmlidXRlcyxJPWMuaW5kaWNlcyk7bGV0IEw9YS5hZGQoRCx2LG1NKTtULnBvc2l0aW9uLnZhbHVlcy5wdXNoKE8ueCxPLnksTy56LE8ueCxPLnksTy56KSxULnBvc2l0aW9uLnZhbHVlcy5wdXNoKEwueCxMLnksTC56KSxULnBvc2l0aW9uLnZhbHVlcy5wdXNoKEwueCxMLnksTC56KSxULnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChyW2IqM10scltiKjMrMV0scltiKjMrMl0pLFQucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKHJbYiozKzNdLHJbYiozKzRdLHJbYiozKzVdKSxULnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChPLngsTy55LE8ueixPLngsTy55LE8ueiksVC5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goTC54LEwueSxMLnopLFQubmV4dFBvc2l0aW9uLnZhbHVlcy5wdXNoKEwueCxMLnksTC56KSxULm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChMLngsTC55LEwueiksVC5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goTC54LEwueSxMLnopLGEubmVnYXRlKHYsdiksYS5hZGQoRCx2LEwpLE4ucG9zaXRpb24udmFsdWVzLnB1c2goTC54LEwueSxMLnopLE4ucG9zaXRpb24udmFsdWVzLnB1c2goTC54LEwueSxMLnopLE4ucG9zaXRpb24udmFsdWVzLnB1c2goRS54LEUueSxFLnosRS54LEUueSxFLnopLE4ucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKEwueCxMLnksTC56KSxOLnByZXZQb3NpdGlvbi52YWx1ZXMucHVzaChMLngsTC55LEwueiksTi5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2goTC54LEwueSxMLnopLE4ucHJldlBvc2l0aW9uLnZhbHVlcy5wdXNoKEwueCxMLnksTC56KSxOLm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChFLngsRS55LEUueixFLngsRS55LEUueiksTi5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goaVt3KjNdLGlbdyozKzFdLGlbdyozKzJdKSxOLm5leHRQb3NpdGlvbi52YWx1ZXMucHVzaChpW3cqMyszXSxpW3cqMys0XSxpW3cqMys1XSk7bGV0IFU9dHQuZnJvbUFycmF5KHMsYioyLFpiKSxBPU1hdGguYWJzKFUueSk7VC5leHBhbmRBbmRXaWR0aC52YWx1ZXMucHVzaCgtMSxBLDEsQSksVC5leHBhbmRBbmRXaWR0aC52YWx1ZXMucHVzaCgtMSwtQSwxLC1BKSxOLmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLEEsMSxBKSxOLmV4cGFuZEFuZFdpZHRoLnZhbHVlcy5wdXNoKC0xLC1BLDEsLUEpO2xldCBTPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KEQsTyxaaCkpO2lmKFMvPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KEUsTyxaaCkpLGgodSkpe2xldCBQPWhlLmZyb21BcnJheSh1LGIqNCxRYiksQj1oZS5mcm9tQXJyYXkodSx3KjQsUWIpLGo9TS5sZXJwKFAueCxCLngsUyksSD1NLmxlcnAoUC55LEIueSxTKSxrPU0ubGVycChQLnosQi56LFMpLEs9TS5sZXJwKFAudyxCLncsUyk7Zm9yKGQ9Yio0O2Q8Yio0KzIqNDsrK2QpVC5jb2xvci52YWx1ZXMucHVzaCh1W2RdKTtmb3IoVC5jb2xvci52YWx1ZXMucHVzaChqLEgsayxLKSxULmNvbG9yLnZhbHVlcy5wdXNoKGosSCxrLEspLE4uY29sb3IudmFsdWVzLnB1c2goaixILGssSyksTi5jb2xvci52YWx1ZXMucHVzaChqLEgsayxLKSxkPXcqNDtkPHcqNCsyKjQ7KytkKU4uY29sb3IudmFsdWVzLnB1c2godVtkXSl9aWYoaChmKSl7bGV0IFA9dHQuZnJvbUFycmF5KGYsYioyLFpiKSxCPXR0LmZyb21BcnJheShmLChwKzMpKjIsbE0pLGo9TS5sZXJwKFAueCxCLngsUyk7Zm9yKGQ9YioyO2Q8YioyKzIqMjsrK2QpVC5zdC52YWx1ZXMucHVzaChmW2RdKTtmb3IoVC5zdC52YWx1ZXMucHVzaChqLFAueSksVC5zdC52YWx1ZXMucHVzaChqLEIueSksTi5zdC52YWx1ZXMucHVzaChqLFAueSksTi5zdC52YWx1ZXMucHVzaChqLEIueSksZD13KjI7ZDx3KjIrMioyOysrZClOLnN0LnZhbHVlcy5wdXNoKGZbZF0pfW09VC5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMtNCxDLnB1c2gobSxtKzIsbSsxKSxDLnB1c2gobSsxLG0rMixtKzMpLG09Ti5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMtNCxJLnB1c2gobSxtKzIsbSsxKSxJLnB1c2gobSsxLG0rMixtKzMpfWVsc2V7bGV0IHYsTDtmb3IoTy55PDA/KHY9bC5hdHRyaWJ1dGVzLEw9bC5pbmRpY2VzKToodj1jLmF0dHJpYnV0ZXMsTD1jLmluZGljZXMpLHYucG9zaXRpb24udmFsdWVzLnB1c2goTy54LE8ueSxPLnopLHYucG9zaXRpb24udmFsdWVzLnB1c2goTy54LE8ueSxPLnopLHYucG9zaXRpb24udmFsdWVzLnB1c2goRS54LEUueSxFLnopLHYucG9zaXRpb24udmFsdWVzLnB1c2goRS54LEUueSxFLnopLGQ9cCozO2Q8cCozKzQqMzsrK2Qpdi5wcmV2UG9zaXRpb24udmFsdWVzLnB1c2gocltkXSksdi5uZXh0UG9zaXRpb24udmFsdWVzLnB1c2goaVtkXSk7Zm9yKGQ9cCoyO2Q8cCoyKzQqMjsrK2Qpdi5leHBhbmRBbmRXaWR0aC52YWx1ZXMucHVzaChzW2RdKSxoKGYpJiZ2LnN0LnZhbHVlcy5wdXNoKGZbZF0pO2lmKGgodSkpZm9yKGQ9cCo0O2Q8cCo0KzQqNDsrK2Qpdi5jb2xvci52YWx1ZXMucHVzaCh1W2RdKTttPXYucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLTQsTC5wdXNoKG0sbSsyLG0rMSksTC5wdXNoKG0rMSxtKzIsbSszKX19XyYmKEpiKGwpLEpiKGMpKSxRaCh0LGwsYyl9dmFyIHZvLGpiLEhQLEhoLFZyLEdwLHpwLEtQLEFyLEVmLG9hLHJhLFdQLEhiLFhQLFJmLFVyLHFiLEtiLGpwLFdiLGVjLG5jLG9jLHJjLFhoLHJNLEtwLHR3LGlNLFNmLFloLCRoLHNNLGFNLGV3LGZNLHVNLFpiLGxNLG53LG93LFpoLHBNLGRNLG1NLFFiLGhNLHFwLFZlLHNpPVooKCk9PnthcygpO1NiKCk7dmUoKTtVZSgpO0Z0KCk7aHIoKTtJZSgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7QmgoKTtTaSgpO1hlKCk7WWUoKTtMcCgpOyRlKCk7a3MoKTt0YygpO1d0KCk7Qm4oKTtVbigpO2ZzKCk7dG4oKTtHYigpO3ZvPXt9O3ZvLnRvV2lyZWZyYW1lPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtsZXQgZT10LmluZGljZXM7aWYoaChlKSl7c3dpdGNoKHQucHJpbWl0aXZlVHlwZSl7Y2FzZSBCdC5UUklBTkdMRVM6dC5pbmRpY2VzPWtQKGUpO2JyZWFrO2Nhc2UgQnQuVFJJQU5HTEVfU1RSSVA6dC5pbmRpY2VzPUdQKGUpO2JyZWFrO2Nhc2UgQnQuVFJJQU5HTEVfRkFOOnQuaW5kaWNlcz16UChlKTticmVhaztkZWZhdWx0OnRocm93IG5ldyBGKCJnZW9tZXRyeS5wcmltaXRpdmVUeXBlIG11c3QgYmUgVFJJQU5HTEVTLCBUUklBTkdMRV9TVFJJUCwgb3IgVFJJQU5HTEVfRkFOLiIpfXQucHJpbWl0aXZlVHlwZT1CdC5MSU5FU31yZXR1cm4gdH07dm8uY3JlYXRlTGluZVNlZ21lbnRzRm9yVmVjdG9ycz1mdW5jdGlvbih0LGUsbil7aWYoZT14KGUsIm5vcm1hbCIpLCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtpZighaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24pKXRocm93IG5ldyBGKCJnZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uIGlzIHJlcXVpcmVkLiIpO2lmKCFoKHQuYXR0cmlidXRlc1tlXSkpdGhyb3cgbmV3IEYoYGdlb21ldHJ5LmF0dHJpYnV0ZXMgbXVzdCBoYXZlIGFuIGF0dHJpYnV0ZSB3aXRoIHRoZSBzYW1lIG5hbWUgYXMgdGhlIGF0dHJpYnV0ZU5hbWUgcGFyYW1ldGVyLCAke2V9LmApO249eChuLDFlNCk7bGV0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxyPXQuYXR0cmlidXRlc1tlXS52YWx1ZXMsaT1vLmxlbmd0aCxzPW5ldyBGbG9hdDY0QXJyYXkoMippKSxmPTA7Zm9yKGxldCBsPTA7bDxpO2wrPTMpc1tmKytdPW9bbF0sc1tmKytdPW9bbCsxXSxzW2YrK109b1tsKzJdLHNbZisrXT1vW2xdK3JbbF0qbixzW2YrK109b1tsKzFdK3JbbCsxXSpuLHNbZisrXT1vW2wrMl0rcltsKzJdKm47bGV0IHUsYz10LmJvdW5kaW5nU3BoZXJlO3JldHVybiBoKGMpJiYodT1uZXcgQXQoYy5jZW50ZXIsYy5yYWRpdXMrbikpLG5ldyBVdCh7YXR0cmlidXRlczp7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpzfSl9LHByaW1pdGl2ZVR5cGU6QnQuTElORVMsYm91bmRpbmdTcGhlcmU6dX0pfTt2by5jcmVhdGVBdHRyaWJ1dGVMb2NhdGlvbnM9ZnVuY3Rpb24odCl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2xldCBlPVsicG9zaXRpb24iLCJwb3NpdGlvbkhpZ2giLCJwb3NpdGlvbkxvdyIsInBvc2l0aW9uM0RIaWdoIiwicG9zaXRpb24zRExvdyIsInBvc2l0aW9uMkRIaWdoIiwicG9zaXRpb24yRExvdyIsInBpY2tDb2xvciIsIm5vcm1hbCIsInN0IiwidGFuZ2VudCIsImJpdGFuZ2VudCIsImV4dHJ1ZGVEaXJlY3Rpb24iLCJjb21wcmVzc2VkQXR0cmlidXRlcyJdLG49dC5hdHRyaWJ1dGVzLG89e30scj0wLGkscz1lLmxlbmd0aDtmb3IoaT0wO2k8czsrK2kpe2xldCBmPWVbaV07aChuW2ZdKSYmKG9bZl09cisrKX1mb3IobGV0IGYgaW4gbiluLmhhc093blByb3BlcnR5KGYpJiYhaChvW2ZdKSYmKG9bZl09cisrKTtyZXR1cm4gb307dm8ucmVvcmRlckZvclByZVZlcnRleENhY2hlPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtsZXQgZT1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KSxuPXQuaW5kaWNlcztpZihoKG4pKXtsZXQgbz1uZXcgSW50MzJBcnJheShlKTtmb3IobGV0IGQ9MDtkPGU7ZCsrKW9bZF09LTE7bGV0IHI9bixpPXIubGVuZ3RoLHM9RHQuY3JlYXRlVHlwZWRBcnJheShlLGkpLGY9MCx1PTAsYz0wLGw7Zm9yKDtmPGk7KWw9b1tyW2ZdXSxsIT09LTE/c1t1XT1sOihsPXJbZl0sb1tsXT1jLHNbdV09YywrK2MpLCsrZiwrK3U7dC5pbmRpY2VzPXM7bGV0IHA9dC5hdHRyaWJ1dGVzO2ZvcihsZXQgZCBpbiBwKWlmKHAuaGFzT3duUHJvcGVydHkoZCkmJmgocFtkXSkmJmgocFtkXS52YWx1ZXMpKXtsZXQgbT1wW2RdLF89bS52YWx1ZXMsZz0wLGI9bS5jb21wb25lbnRzUGVyQXR0cmlidXRlLHc9bnQuY3JlYXRlVHlwZWRBcnJheShtLmNvbXBvbmVudERhdGF0eXBlLGMqYik7Zm9yKDtnPGU7KXtsZXQgTz1vW2ddO2lmKE8hPT0tMSlmb3IobGV0IEU9MDtFPGI7RSsrKXdbYipPK0VdPV9bYipnK0VdOysrZ31tLnZhbHVlcz13fX1yZXR1cm4gdH07dm8ucmVvcmRlckZvclBvc3RWZXJ0ZXhDYWNoZT1mdW5jdGlvbih0LGUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtsZXQgbj10LmluZGljZXM7aWYodC5wcmltaXRpdmVUeXBlPT09QnQuVFJJQU5HTEVTJiZoKG4pKXtsZXQgbz1uLmxlbmd0aCxyPTA7Zm9yKGxldCBpPTA7aTxvO2krKyluW2ldPnImJihyPW5baV0pO3QuaW5kaWNlcz1rYi50aXBzaWZ5KHtpbmRpY2VzOm4sbWF4aW11bUluZGV4OnIsY2FjaGVTaXplOmV9KX1yZXR1cm4gdH07dm8uZml0VG9VbnNpZ25lZFNob3J0SW5kaWNlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7aWYoaCh0LmluZGljZXMpJiZ0LnByaW1pdGl2ZVR5cGUhPT1CdC5UUklBTkdMRVMmJnQucHJpbWl0aXZlVHlwZSE9PUJ0LkxJTkVTJiZ0LnByaW1pdGl2ZVR5cGUhPT1CdC5QT0lOVFMpdGhyb3cgbmV3IEYoImdlb21ldHJ5LnByaW1pdGl2ZVR5cGUgbXVzdCBlcXVhbCB0byBQcmltaXRpdmVUeXBlLlRSSUFOR0xFUywgUHJpbWl0aXZlVHlwZS5MSU5FUywgb3IgUHJpbWl0aXZlVHlwZS5QT0lOVFMuIik7bGV0IGU9W10sbj1VdC5jb21wdXRlTnVtYmVyT2ZWZXJ0aWNlcyh0KTtpZihoKHQuaW5kaWNlcykmJm4+PU0uU0lYVFlfRk9VUl9LSUxPQllURVMpe2xldCBvPVtdLHI9W10saT0wLHM9emIodC5hdHRyaWJ1dGVzKSxmPXQuaW5kaWNlcyx1PWYubGVuZ3RoLGM7dC5wcmltaXRpdmVUeXBlPT09QnQuVFJJQU5HTEVTP2M9Mzp0LnByaW1pdGl2ZVR5cGU9PT1CdC5MSU5FUz9jPTI6dC5wcmltaXRpdmVUeXBlPT09QnQuUE9JTlRTJiYoYz0xKTtmb3IobGV0IGw9MDtsPHU7bCs9Yyl7Zm9yKGxldCBwPTA7cDxjOysrcCl7bGV0IGQ9ZltsK3BdLG09b1tkXTtoKG0pfHwobT1pKyssb1tkXT1tLGpQKHMsdC5hdHRyaWJ1dGVzLGQpKSxyLnB1c2gobSl9aStjPj1NLlNJWFRZX0ZPVVJfS0lMT0JZVEVTJiYoZS5wdXNoKG5ldyBVdCh7YXR0cmlidXRlczpzLGluZGljZXM6cixwcmltaXRpdmVUeXBlOnQucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTp0LmJvdW5kaW5nU3BoZXJlLGJvdW5kaW5nU3BoZXJlQ1Y6dC5ib3VuZGluZ1NwaGVyZUNWfSkpLG89W10scj1bXSxpPTAscz16Yih0LmF0dHJpYnV0ZXMpKX1yLmxlbmd0aCE9PTAmJmUucHVzaChuZXcgVXQoe2F0dHJpYnV0ZXM6cyxpbmRpY2VzOnIscHJpbWl0aXZlVHlwZTp0LnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6dC5ib3VuZGluZ1NwaGVyZSxib3VuZGluZ1NwaGVyZUNWOnQuYm91bmRpbmdTcGhlcmVDVn0pKX1lbHNlIGUucHVzaCh0KTtyZXR1cm4gZX07amI9bmV3IGEsSFA9bmV3IGN0O3ZvLnByb2plY3RUbzJEPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImdlb21ldHJ5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJhdHRyaWJ1dGVOYW1lIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJhdHRyaWJ1dGVOYW1lM0QgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEYoImF0dHJpYnV0ZU5hbWUyRCBpcyByZXF1aXJlZC4iKTtpZighaCh0LmF0dHJpYnV0ZXNbZV0pKXRocm93IG5ldyBGKGBnZW9tZXRyeSBtdXN0IGhhdmUgYXR0cmlidXRlIG1hdGNoaW5nIHRoZSBhdHRyaWJ1dGVOYW1lIGFyZ3VtZW50OiAke2V9LmApO2lmKHQuYXR0cmlidXRlc1tlXS5jb21wb25lbnREYXRhdHlwZSE9PW50LkRPVUJMRSl0aHJvdyBuZXcgRigiVGhlIGF0dHJpYnV0ZSBjb21wb25lbnREYXRhdHlwZSBtdXN0IGJlIENvbXBvbmVudERhdGF0eXBlLkRPVUJMRS4iKTtsZXQgaT10LmF0dHJpYnV0ZXNbZV07cj1oKHIpP3I6bmV3IEpuO2xldCBzPXIuZWxsaXBzb2lkLGY9aS52YWx1ZXMsdT1uZXcgRmxvYXQ2NEFycmF5KGYubGVuZ3RoKSxjPTA7Zm9yKGxldCBsPTA7bDxmLmxlbmd0aDtsKz0zKXtsZXQgcD1hLmZyb21BcnJheShmLGwsamIpLGQ9cy5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhwLEhQKTtpZighaChkKSl0aHJvdyBuZXcgRihgQ291bGQgbm90IHByb2plY3QgcG9pbnQgKCR7cC54fSwgJHtwLnl9LCAke3Auen0pIHRvIDJELmApO2xldCBtPXIucHJvamVjdChkLGpiKTt1W2MrK109bS54LHVbYysrXT1tLnksdVtjKytdPW0uen1yZXR1cm4gdC5hdHRyaWJ1dGVzW25dPWksdC5hdHRyaWJ1dGVzW29dPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dX0pLGRlbGV0ZSB0LmF0dHJpYnV0ZXNbZV0sdH07SGg9e2hpZ2g6MCxsb3c6MH07dm8uZW5jb2RlQXR0cmlidXRlPWZ1bmN0aW9uKHQsZSxuLG8pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXR0cmlidXRlTmFtZSBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigiYXR0cmlidXRlSGlnaE5hbWUgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEYoImF0dHJpYnV0ZUxvd05hbWUgaXMgcmVxdWlyZWQuIik7aWYoIWgodC5hdHRyaWJ1dGVzW2VdKSl0aHJvdyBuZXcgRihgZ2VvbWV0cnkgbXVzdCBoYXZlIGF0dHJpYnV0ZSBtYXRjaGluZyB0aGUgYXR0cmlidXRlTmFtZSBhcmd1bWVudDogJHtlfS5gKTtpZih0LmF0dHJpYnV0ZXNbZV0uY29tcG9uZW50RGF0YXR5cGUhPT1udC5ET1VCTEUpdGhyb3cgbmV3IEYoIlRoZSBhdHRyaWJ1dGUgY29tcG9uZW50RGF0YXR5cGUgbXVzdCBiZSBDb21wb25lbnREYXRhdHlwZS5ET1VCTEUuIik7bGV0IHI9dC5hdHRyaWJ1dGVzW2VdLGk9ci52YWx1ZXMscz1pLmxlbmd0aCxmPW5ldyBGbG9hdDMyQXJyYXkocyksdT1uZXcgRmxvYXQzMkFycmF5KHMpO2ZvcihsZXQgbD0wO2w8czsrK2wpWnMuZW5jb2RlKGlbbF0sSGgpLGZbbF09SGguaGlnaCx1W2xdPUhoLmxvdztsZXQgYz1yLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU7cmV0dXJuIHQuYXR0cmlidXRlc1tuXT1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Yyx2YWx1ZXM6Zn0pLHQuYXR0cmlidXRlc1tvXT1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Yyx2YWx1ZXM6dX0pLGRlbGV0ZSB0LmF0dHJpYnV0ZXNbZV0sdH07VnI9bmV3IGE7R3A9bmV3IHN0LHpwPW5ldyBRO3ZvLnRyYW5zZm9ybVRvV29ybGRDb29yZGluYXRlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiaW5zdGFuY2UgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5tb2RlbE1hdHJpeDtpZihzdC5lcXVhbHMoZSxzdC5JREVOVElUWSkpcmV0dXJuIHQ7bGV0IG49dC5nZW9tZXRyeS5hdHRyaWJ1dGVzO3FoKGUsbi5wb3NpdGlvbikscWgoZSxuLnByZXZQb3NpdGlvbikscWgoZSxuLm5leHRQb3NpdGlvbiksKGgobi5ub3JtYWwpfHxoKG4udGFuZ2VudCl8fGgobi5iaXRhbmdlbnQpKSYmKHN0LmludmVyc2UoZSxHcCksc3QudHJhbnNwb3NlKEdwLEdwKSxzdC5nZXRNYXRyaXgzKEdwLHpwKSxLaCh6cCxuLm5vcm1hbCksS2goenAsbi50YW5nZW50KSxLaCh6cCxuLmJpdGFuZ2VudCkpO2xldCBvPXQuZ2VvbWV0cnkuYm91bmRpbmdTcGhlcmU7cmV0dXJuIGgobykmJih0Lmdlb21ldHJ5LmJvdW5kaW5nU3BoZXJlPUF0LnRyYW5zZm9ybShvLGUsbykpLHQubW9kZWxNYXRyaXg9c3QuY2xvbmUoc3QuSURFTlRJVFkpLHR9O0tQPW5ldyBhO3ZvLmNvbWJpbmVJbnN0YW5jZXM9ZnVuY3Rpb24odCl7aWYoIWgodCl8fHQubGVuZ3RoPDEpdGhyb3cgbmV3IEYoImluc3RhbmNlcyBpcyByZXF1aXJlZCBhbmQgbXVzdCBoYXZlIGxlbmd0aCBncmVhdGVyIHRoYW4gemVyby4iKTtsZXQgZT1bXSxuPVtdLG89dC5sZW5ndGg7Zm9yKGxldCBpPTA7aTxvOysraSl7bGV0IHM9dFtpXTtoKHMuZ2VvbWV0cnkpP2UucHVzaChzKTpoKHMud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgocy5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmbi5wdXNoKHMpfWxldCByPVtdO3JldHVybiBlLmxlbmd0aD4wJiZyLnB1c2goV2goZSwiZ2VvbWV0cnkiKSksbi5sZW5ndGg+MCYmKHIucHVzaChXaChuLCJ3ZXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpLHIucHVzaChXaChuLCJlYXN0SGVtaXNwaGVyZUdlb21ldHJ5IikpKSxyfTtBcj1uZXcgYSxFZj1uZXcgYSxvYT1uZXcgYSxyYT1uZXcgYTt2by5jb21wdXRlTm9ybWFsPWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJnZW9tZXRyeSBpcyByZXF1aXJlZC4iKTtpZighaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24pfHwhaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzKSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMgaXMgcmVxdWlyZWQuIik7aWYoIWgodC5pbmRpY2VzKSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkuaW5kaWNlcyBpcyByZXF1aXJlZC4iKTtpZih0LmluZGljZXMubGVuZ3RoPDJ8fHQuaW5kaWNlcy5sZW5ndGglMyE9PTApdGhyb3cgbmV3IEYoImdlb21ldHJ5LmluZGljZXMgbGVuZ3RoIG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgYW5kIGJlIGEgbXVsdGlwbGUgb2YgMy4iKTtpZih0LnByaW1pdGl2ZVR5cGUhPT1CdC5UUklBTkdMRVMpdGhyb3cgbmV3IEYoImdlb21ldHJ5LnByaW1pdGl2ZVR5cGUgbXVzdCBiZSBQcmltaXRpdmVUeXBlLlRSSUFOR0xFUy4iKTtsZXQgZT10LmluZGljZXMsbj10LmF0dHJpYnV0ZXMsbz1uLnBvc2l0aW9uLnZhbHVlcyxyPW4ucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLGk9ZS5sZW5ndGgscz1uZXcgQXJyYXkociksZj1uZXcgQXJyYXkoaS8zKSx1PW5ldyBBcnJheShpKSxjO2ZvcihjPTA7YzxyO2MrKylzW2NdPXtpbmRleE9mZnNldDowLGNvdW50OjAsY3VycmVudENvdW50OjB9O2xldCBsPTA7Zm9yKGM9MDtjPGk7Yys9Myl7bGV0IF89ZVtjXSxnPWVbYysxXSxiPWVbYysyXSx3PV8qMyxPPWcqMyxFPWIqMztFZi54PW9bd10sRWYueT1vW3crMV0sRWYuej1vW3crMl0sb2EueD1vW09dLG9hLnk9b1tPKzFdLG9hLno9b1tPKzJdLHJhLng9b1tFXSxyYS55PW9bRSsxXSxyYS56PW9bRSsyXSxzW19dLmNvdW50Kyssc1tnXS5jb3VudCsrLHNbYl0uY291bnQrKyxhLnN1YnRyYWN0KG9hLEVmLG9hKSxhLnN1YnRyYWN0KHJhLEVmLHJhKSxmW2xdPWEuY3Jvc3Mob2EscmEsbmV3IGEpLGwrK31sZXQgcD0wO2ZvcihjPTA7YzxyO2MrKylzW2NdLmluZGV4T2Zmc2V0Kz1wLHArPXNbY10uY291bnQ7bD0wO2xldCBkO2ZvcihjPTA7YzxpO2MrPTMpe2Q9c1tlW2NdXTtsZXQgXz1kLmluZGV4T2Zmc2V0K2QuY3VycmVudENvdW50O3VbX109bCxkLmN1cnJlbnRDb3VudCsrLGQ9c1tlW2MrMV1dLF89ZC5pbmRleE9mZnNldCtkLmN1cnJlbnRDb3VudCx1W19dPWwsZC5jdXJyZW50Q291bnQrKyxkPXNbZVtjKzJdXSxfPWQuaW5kZXhPZmZzZXQrZC5jdXJyZW50Q291bnQsdVtfXT1sLGQuY3VycmVudENvdW50KyssbCsrfWxldCBtPW5ldyBGbG9hdDMyQXJyYXkociozKTtmb3IoYz0wO2M8cjtjKyspe2xldCBfPWMqMztpZihkPXNbY10sYS5jbG9uZShhLlpFUk8sQXIpLGQuY291bnQ+MCl7Zm9yKGw9MDtsPGQuY291bnQ7bCsrKWEuYWRkKEFyLGZbdVtkLmluZGV4T2Zmc2V0K2xdXSxBcik7YS5lcXVhbHNFcHNpbG9uKGEuWkVSTyxBcixNLkVQU0lMT04xMCkmJmEuY2xvbmUoZlt1W2QuaW5kZXhPZmZzZXRdXSxBcil9YS5lcXVhbHNFcHNpbG9uKGEuWkVSTyxBcixNLkVQU0lMT04xMCkmJihBci56PTEpLGEubm9ybWFsaXplKEFyLEFyKSxtW19dPUFyLngsbVtfKzFdPUFyLnksbVtfKzJdPUFyLnp9cmV0dXJuIHQuYXR0cmlidXRlcy5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSx0fTtXUD1uZXcgYSxIYj1uZXcgYSxYUD1uZXcgYTt2by5jb21wdXRlVGFuZ2VudEFuZEJpdGFuZ2VudD1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5hdHRyaWJ1dGVzLG49dC5pbmRpY2VzO2lmKCFoKGUucG9zaXRpb24pfHwhaChlLnBvc2l0aW9uLnZhbHVlcykpdGhyb3cgbmV3IEYoImdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUubm9ybWFsKXx8IWgoZS5ub3JtYWwudmFsdWVzKSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUuc3QpfHwhaChlLnN0LnZhbHVlcykpdGhyb3cgbmV3IEYoImdlb21ldHJ5LmF0dHJpYnV0ZXMuc3QudmFsdWVzIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJnZW9tZXRyeS5pbmRpY2VzIGlzIHJlcXVpcmVkLiIpO2lmKG4ubGVuZ3RoPDJ8fG4ubGVuZ3RoJTMhPT0wKXRocm93IG5ldyBGKCJnZW9tZXRyeS5pbmRpY2VzIGxlbmd0aCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiAwIGFuZCBiZSBhIG11bHRpcGxlIG9mIDMuIik7aWYodC5wcmltaXRpdmVUeXBlIT09QnQuVFJJQU5HTEVTKXRocm93IG5ldyBGKCJnZW9tZXRyeS5wcmltaXRpdmVUeXBlIG11c3QgYmUgUHJpbWl0aXZlVHlwZS5UUklBTkdMRVMuIik7bGV0IG89dC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxyPXQuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLGk9dC5hdHRyaWJ1dGVzLnN0LnZhbHVlcyxzPXQuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsZj1uLmxlbmd0aCx1PW5ldyBBcnJheShzKjMpLGM7Zm9yKGM9MDtjPHUubGVuZ3RoO2MrKyl1W2NdPTA7bGV0IGwscCxkO2ZvcihjPTA7YzxmO2MrPTMpe2xldCBnPW5bY10sYj1uW2MrMV0sdz1uW2MrMl07bD1nKjMscD1iKjMsZD13KjM7bGV0IE89ZyoyLEU9YioyLFQ9dyoyLEM9b1tsXSxOPW9bbCsxXSxJPW9bbCsyXSxEPWlbT10sdj1pW08rMV0sTD1pW0UrMV0tdixVPWlbVCsxXS12LEE9MS8oKGlbRV0tRCkqVS0oaVtUXS1EKSpMKSxTPShVKihvW3BdLUMpLUwqKG9bZF0tQykpKkEsUD0oVSoob1twKzFdLU4pLUwqKG9bZCsxXS1OKSkqQSxCPShVKihvW3ArMl0tSSktTCoob1tkKzJdLUkpKSpBO3VbbF0rPVMsdVtsKzFdKz1QLHVbbCsyXSs9Qix1W3BdKz1TLHVbcCsxXSs9UCx1W3ArMl0rPUIsdVtkXSs9Uyx1W2QrMV0rPVAsdVtkKzJdKz1CfWxldCBtPW5ldyBGbG9hdDMyQXJyYXkocyozKSxfPW5ldyBGbG9hdDMyQXJyYXkocyozKTtmb3IoYz0wO2M8cztjKyspe2w9YyozLHA9bCsxLGQ9bCsyO2xldCBnPWEuZnJvbUFycmF5KHIsbCxXUCksYj1hLmZyb21BcnJheSh1LGwsWFApLHc9YS5kb3QoZyxiKTthLm11bHRpcGx5QnlTY2FsYXIoZyx3LEhiKSxhLm5vcm1hbGl6ZShhLnN1YnRyYWN0KGIsSGIsYiksYiksbVtsXT1iLngsbVtwXT1iLnksbVtkXT1iLnosYS5ub3JtYWxpemUoYS5jcm9zcyhnLGIsYiksYiksX1tsXT1iLngsX1twXT1iLnksX1tkXT1iLnp9cmV0dXJuIHQuYXR0cmlidXRlcy50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSksdC5hdHRyaWJ1dGVzLmJpdGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6X30pLHR9O1JmPW5ldyB0dCxVcj1uZXcgYSxxYj1uZXcgYSxLYj1uZXcgYSxqcD1uZXcgdHQ7dm8uY29tcHJlc3NWZXJ0aWNlcz1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiZ2VvbWV0cnkgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb24sbixvO2lmKGgoZSkpe2xldCBOPWUudmFsdWVzO289Ti5sZW5ndGgvMztsZXQgST1uZXcgRmxvYXQzMkFycmF5KG8qMiksRD0wO2ZvcihuPTA7bjxvOysrbil7aWYoYS5mcm9tQXJyYXkoTixuKjMsVXIpLGEuZXF1YWxzKFVyLGEuWkVSTykpe0QrPTI7Y29udGludWV9anA9bm4ub2N0RW5jb2RlSW5SYW5nZShVciw2NTUzNSxqcCksSVtEKytdPWpwLngsSVtEKytdPWpwLnl9cmV0dXJuIHQuYXR0cmlidXRlcy5jb21wcmVzc2VkQXR0cmlidXRlcz1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6SX0pLGRlbGV0ZSB0LmF0dHJpYnV0ZXMuZXh0cnVkZURpcmVjdGlvbix0fWxldCByPXQuYXR0cmlidXRlcy5ub3JtYWwsaT10LmF0dHJpYnV0ZXMuc3Qscz1oKHIpLGY9aChpKTtpZighcyYmIWYpcmV0dXJuIHQ7bGV0IHU9dC5hdHRyaWJ1dGVzLnRhbmdlbnQsYz10LmF0dHJpYnV0ZXMuYml0YW5nZW50LGw9aCh1KSxwPWgoYyksZCxtLF8sZztzJiYoZD1yLnZhbHVlcyksZiYmKG09aS52YWx1ZXMpLGwmJihfPXUudmFsdWVzKSxwJiYoZz1jLnZhbHVlcyksbz0ocz9kLmxlbmd0aDptLmxlbmd0aCkvKHM/MzoyKTtsZXQgTz1vLEU9ZiYmcz8yOjE7RSs9bHx8cD8xOjAsTyo9RTtsZXQgVD1uZXcgRmxvYXQzMkFycmF5KE8pLEM9MDtmb3Iobj0wO248bzsrK24pe2YmJih0dC5mcm9tQXJyYXkobSxuKjIsUmYpLFRbQysrXT1ubi5jb21wcmVzc1RleHR1cmVDb29yZGluYXRlcyhSZikpO2xldCBOPW4qMztzJiZoKF8pJiZoKGcpPyhhLmZyb21BcnJheShkLE4sVXIpLGEuZnJvbUFycmF5KF8sTixxYiksYS5mcm9tQXJyYXkoZyxOLEtiKSxubi5vY3RQYWNrKFVyLHFiLEtiLFJmKSxUW0MrK109UmYueCxUW0MrK109UmYueSk6KHMmJihhLmZyb21BcnJheShkLE4sVXIpLFRbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpLGwmJihhLmZyb21BcnJheShfLE4sVXIpLFRbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpLHAmJihhLmZyb21BcnJheShnLE4sVXIpLFRbQysrXT1ubi5vY3RFbmNvZGVGbG9hdChVcikpKX1yZXR1cm4gdC5hdHRyaWJ1dGVzLmNvbXByZXNzZWRBdHRyaWJ1dGVzPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTpFLHZhbHVlczpUfSkscyYmZGVsZXRlIHQuYXR0cmlidXRlcy5ub3JtYWwsZiYmZGVsZXRlIHQuYXR0cmlidXRlcy5zdCxwJiZkZWxldGUgdC5hdHRyaWJ1dGVzLmJpdGFuZ2VudCxsJiZkZWxldGUgdC5hdHRyaWJ1dGVzLnRhbmdlbnQsdH07V2I9bmV3IGE7ZWM9bmV3IGEsbmM9bmV3IGEsb2M9bmV3IGEscmM9bmV3IGEsWGg9e3Bvc2l0aW9uczpuZXcgQXJyYXkoNyksaW5kaWNlczpuZXcgQXJyYXkoMyozKX07ck09SmgoaGUsNCksS3A9SmgoYSwzKSx0dz1KaCh0dCwyKSxpTT1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXtsZXQgZj1yW3RdKm8ueCx1PXJbZV0qby55LGM9cltuXSpvLno7aVtzXT1mK3UrYz5NLkVQU0lMT042PzE6MH0sU2Y9bmV3IGEsWWg9bmV3IGEsJGg9bmV3IGEsc009bmV3IGE7YU09e3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxiaXRhbmdlbnQ6ITAsdGFuZ2VudDohMCxzdDohMCxleHRydWRlRGlyZWN0aW9uOiEwLGFwcGx5T2Zmc2V0OiEwfTtldz1vbi5mcm9tUG9pbnROb3JtYWwoYS5aRVJPLGEuVU5JVF9ZKSxmTT1uZXcgYSx1TT1uZXcgYTtaYj1uZXcgdHQsbE09bmV3IHR0LG53PW5ldyBhLG93PW5ldyBhLFpoPW5ldyBhLHBNPW5ldyBhLGRNPW5ldyBhLG1NPW5ldyBhLFFiPW5ldyBoZTtoTT01Kk0uRVBTSUxPTjkscXA9TS5FUFNJTE9ONjt2by5zcGxpdExvbmdpdHVkZT1mdW5jdGlvbih0KXtpZighaCh0KSl0aHJvdyBuZXcgRigiaW5zdGFuY2UgaXMgcmVxdWlyZWQuIik7bGV0IGU9dC5nZW9tZXRyeSxuPWUuYm91bmRpbmdTcGhlcmU7aWYoaChuKSYmKG4uY2VudGVyLngtbi5yYWRpdXM+MHx8QXQuaW50ZXJzZWN0UGxhbmUobixvbi5PUklHSU5fWlhfUExBTkUpIT09U24uSU5URVJTRUNUSU5HKSlyZXR1cm4gdDtpZihlLmdlb21ldHJ5VHlwZSE9PU1pLk5PTkUpc3dpdGNoKGUuZ2VvbWV0cnlUeXBlKXtjYXNlIE1pLlBPTFlMSU5FUzpfTSh0KTticmVhaztjYXNlIE1pLlRSSUFOR0xFUzpZYih0KTticmVhaztjYXNlIE1pLkxJTkVTOiRiKHQpO2JyZWFrfWVsc2UgZU0oZSksZS5wcmltaXRpdmVUeXBlPT09QnQuVFJJQU5HTEVTP1liKHQpOmUucHJpbWl0aXZlVHlwZT09PUJ0LkxJTkVTJiYkYih0KTtyZXR1cm4gdH07VmU9dm99KTtmdW5jdGlvbiBDZih0LGUsbil7dD14KHQsMCksZT14KGUsMCksbj14KG4sMCksdGhpcy52YWx1ZT1uZXcgRmxvYXQzMkFycmF5KFt0LGUsbl0pfXZhciBydyxpdz1aKCgpPT57WHQoKTtGZSgpO0l0KCk7ZnQoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhDZi5wcm90b3R5cGUse2NvbXBvbmVudERhdGF0eXBlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gbnQuRkxPQVR9fSxjb21wb25lbnRzUGVyQXR0cmlidXRlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gM319LG5vcm1hbGl6ZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuITF9fX0pO0NmLmZyb21DYXJ0ZXNpYW4zPWZ1bmN0aW9uKHQpe3JldHVybiB5LmRlZmluZWQoIm9mZnNldCIsdCksbmV3IENmKHQueCx0LnksdC56KX07Q2YudG9WYWx1ZT1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoIm9mZnNldCIsdCksaChlKXx8KGU9bmV3IEZsb2F0MzJBcnJheShbdC54LHQueSx0LnpdKSksZVswXT10LngsZVsxXT10LnksZVsyXT10LnosZX07cnc9Q2Z9KTtmdW5jdGlvbiAkbyh0KXt0aGlzLl9lbGxpcHNvaWQ9eCh0LCQuV0dTODQpLHRoaXMuX3NlbWltYWpvckF4aXM9dGhpcy5fZWxsaXBzb2lkLm1heGltdW1SYWRpdXMsdGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXM9MS90aGlzLl9zZW1pbWFqb3JBeGlzfXZhciBubyxpYz1aKCgpPT57RnQoKTtJZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7V3QoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcygkby5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19fSk7JG8ubWVyY2F0b3JBbmdsZVRvR2VvZGV0aWNMYXRpdHVkZT1mdW5jdGlvbih0KXtyZXR1cm4gTS5QSV9PVkVSX1RXTy0yKk1hdGguYXRhbihNYXRoLmV4cCgtdCkpfTskby5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlPWZ1bmN0aW9uKHQpe3Q+JG8uTWF4aW11bUxhdGl0dWRlP3Q9JG8uTWF4aW11bUxhdGl0dWRlOnQ8LSRvLk1heGltdW1MYXRpdHVkZSYmKHQ9LSRvLk1heGltdW1MYXRpdHVkZSk7bGV0IGU9TWF0aC5zaW4odCk7cmV0dXJuIC41Kk1hdGgubG9nKCgxK2UpLygxLWUpKX07JG8uTWF4aW11bUxhdGl0dWRlPSRvLm1lcmNhdG9yQW5nbGVUb0dlb2RldGljTGF0aXR1ZGUoTWF0aC5QSSk7JG8ucHJvdG90eXBlLnByb2plY3Q9ZnVuY3Rpb24odCxlKXtsZXQgbj10aGlzLl9zZW1pbWFqb3JBeGlzLG89dC5sb25naXR1ZGUqbixyPSRvLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUodC5sYXRpdHVkZSkqbixpPXQuaGVpZ2h0O3JldHVybiBoKGUpPyhlLng9byxlLnk9cixlLno9aSxlKTpuZXcgYShvLHIsaSl9OyRvLnByb3RvdHlwZS51bnByb2plY3Q9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiY2FydGVzaWFuIGlzIHJlcXVpcmVkIik7bGV0IG49dGhpcy5fb25lT3ZlclNlbWltYWpvckF4aXMsbz10LngqbixyPSRvLm1lcmNhdG9yQW5nbGVUb0dlb2RldGljTGF0aXR1ZGUodC55Km4pLGk9dC56O3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT1vLGUubGF0aXR1ZGU9cixlLmhlaWdodD1pLGUpOm5ldyBjdChvLHIsaSl9O25vPSRvfSk7ZnVuY3Rpb24geU0odCxlLG4pe2xldCBvPSFuLHI9dC5sZW5ndGgsaTtpZighbyYmcj4xKXtsZXQgcz10WzBdLm1vZGVsTWF0cml4O2ZvcihpPTE7aTxyOysraSlpZighc3QuZXF1YWxzKHMsdFtpXS5tb2RlbE1hdHJpeCkpe289ITA7YnJlYWt9fWlmKG8pZm9yKGk9MDtpPHI7KytpKWgodFtpXS5nZW9tZXRyeSkmJlZlLnRyYW5zZm9ybVRvV29ybGRDb29yZGluYXRlcyh0W2ldKTtlbHNlIHN0Lm11bHRpcGx5VHJhbnNmb3JtYXRpb24oZSx0WzBdLm1vZGVsTWF0cml4LGUpfWZ1bmN0aW9uIHQwKHQsZSl7bGV0IG49dC5hdHRyaWJ1dGVzLG89bi5wb3NpdGlvbixyPW8udmFsdWVzLmxlbmd0aC9vLmNvbXBvbmVudHNQZXJBdHRyaWJ1dGU7bi5iYXRjaElkPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpuZXcgRmxvYXQzMkFycmF5KHIpfSk7bGV0IGk9bi5iYXRjaElkLnZhbHVlcztmb3IobGV0IHM9MDtzPHI7KytzKWlbc109ZX1mdW5jdGlvbiBnTSh0KXtsZXQgZT10Lmxlbmd0aDtmb3IobGV0IG49MDtuPGU7KytuKXtsZXQgbz10W25dO2goby5nZW9tZXRyeSk/dDAoby5nZW9tZXRyeSxuKTpoKG8ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgoby5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmKHQwKG8ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSxuKSx0MChvLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnksbikpfX1mdW5jdGlvbiBBTSh0KXtsZXQgZT10Lmluc3RhbmNlcyxuPXQucHJvamVjdGlvbixvPXQuZWxlbWVudEluZGV4VWludFN1cHBvcnRlZCxyPXQuc2NlbmUzRE9ubHksaT10LnZlcnRleENhY2hlT3B0aW1pemUscz10LmNvbXByZXNzVmVydGljZXMsZj10Lm1vZGVsTWF0cml4LHUsYyxsLHA9ZS5sZW5ndGg7Zm9yKHU9MDt1PHA7Kyt1KWlmKGgoZVt1XS5nZW9tZXRyeSkpe2w9ZVt1XS5nZW9tZXRyeS5wcmltaXRpdmVUeXBlO2JyZWFrfWZvcih1PTE7dTxwOysrdSlpZihoKGVbdV0uZ2VvbWV0cnkpJiZlW3VdLmdlb21ldHJ5LnByaW1pdGl2ZVR5cGUhPT1sKXRocm93IG5ldyBGKCJBbGwgaW5zdGFuY2UgZ2VvbWV0cmllcyBtdXN0IGhhdmUgdGhlIHNhbWUgcHJpbWl0aXZlVHlwZS4iKTtpZih5TShlLGYsciksIXIpZm9yKHU9MDt1PHA7Kyt1KWgoZVt1XS5nZW9tZXRyeSkmJlZlLnNwbGl0TG9uZ2l0dWRlKGVbdV0pO2lmKGdNKGUpLGkpZm9yKHU9MDt1PHA7Kyt1KXtsZXQgbT1lW3VdO2gobS5nZW9tZXRyeSk/KFZlLnJlb3JkZXJGb3JQb3N0VmVydGV4Q2FjaGUobS5nZW9tZXRyeSksVmUucmVvcmRlckZvclByZVZlcnRleENhY2hlKG0uZ2VvbWV0cnkpKTpoKG0ud2VzdEhlbWlzcGhlcmVHZW9tZXRyeSkmJmgobS5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5KSYmKFZlLnJlb3JkZXJGb3JQb3N0VmVydGV4Q2FjaGUobS53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5KSxWZS5yZW9yZGVyRm9yUHJlVmVydGV4Q2FjaGUobS53ZXN0SGVtaXNwaGVyZUdlb21ldHJ5KSxWZS5yZW9yZGVyRm9yUG9zdFZlcnRleENhY2hlKG0uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSksVmUucmVvcmRlckZvclByZVZlcnRleENhY2hlKG0uZWFzdEhlbWlzcGhlcmVHZW9tZXRyeSkpfWxldCBkPVZlLmNvbWJpbmVJbnN0YW5jZXMoZSk7Zm9yKHA9ZC5sZW5ndGgsdT0wO3U8cDsrK3Upe2M9ZFt1XTtsZXQgbT1jLmF0dHJpYnV0ZXM7aWYocilmb3IobGV0IF8gaW4gbSltLmhhc093blByb3BlcnR5KF8pJiZtW19dLmNvbXBvbmVudERhdGF0eXBlPT09bnQuRE9VQkxFJiZWZS5lbmNvZGVBdHRyaWJ1dGUoYyxfLGAke199M0RIaWdoYCxgJHtffTNETG93YCk7ZWxzZSBmb3IobGV0IF8gaW4gbSlpZihtLmhhc093blByb3BlcnR5KF8pJiZtW19dLmNvbXBvbmVudERhdGF0eXBlPT09bnQuRE9VQkxFKXtsZXQgZz1gJHtffTNEYCxiPWAke199MkRgO1ZlLnByb2plY3RUbzJEKGMsXyxnLGIsbiksaChjLmJvdW5kaW5nU3BoZXJlKSYmXz09PSJwb3NpdGlvbiImJihjLmJvdW5kaW5nU3BoZXJlQ1Y9QXQuZnJvbVZlcnRpY2VzKGMuYXR0cmlidXRlcy5wb3NpdGlvbjJELnZhbHVlcykpLFZlLmVuY29kZUF0dHJpYnV0ZShjLGcsYCR7Z31IaWdoYCxgJHtnfUxvd2ApLFZlLmVuY29kZUF0dHJpYnV0ZShjLGIsYCR7Yn1IaWdoYCxgJHtifUxvd2ApfXMmJlZlLmNvbXByZXNzVmVydGljZXMoYyl9aWYoIW8pe2xldCBtPVtdO2ZvcihwPWQubGVuZ3RoLHU9MDt1PHA7Kyt1KWM9ZFt1XSxtPW0uY29uY2F0KFZlLmZpdFRvVW5zaWduZWRTaG9ydEluZGljZXMoYykpO2Q9bX1yZXR1cm4gZH1mdW5jdGlvbiBlMCh0LGUsbixvKXtsZXQgcixpLHMsZj1vLmxlbmd0aC0xO2lmKGY+PTApe2xldCBjPW9bZl07cj1jLm9mZnNldCtjLmNvdW50LHM9Yy5pbmRleCxpPW5bc10uaW5kaWNlcy5sZW5ndGh9ZWxzZSByPTAscz0wLGk9bltzXS5pbmRpY2VzLmxlbmd0aDtsZXQgdT10Lmxlbmd0aDtmb3IobGV0IGM9MDtjPHU7KytjKXtsZXQgcD10W2NdW2VdO2lmKCFoKHApKWNvbnRpbnVlO2xldCBkPXAuaW5kaWNlcy5sZW5ndGg7citkPmkmJihyPTAsaT1uWysrc10uaW5kaWNlcy5sZW5ndGgpLG8ucHVzaCh7aW5kZXg6cyxvZmZzZXQ6cixjb3VudDpkfSkscis9ZH19ZnVuY3Rpb24gYk0odCxlKXtsZXQgbj1bXTtyZXR1cm4gZTAodCwiZ2VvbWV0cnkiLGUsbiksZTAodCwid2VzdEhlbWlzcGhlcmVHZW9tZXRyeSIsZSxuKSxlMCh0LCJlYXN0SGVtaXNwaGVyZUdlb21ldHJ5IixlLG4pLG59ZnVuY3Rpb24gd00odCxlKXtsZXQgbj10LmF0dHJpYnV0ZXM7Zm9yKGxldCBvIGluIG4paWYobi5oYXNPd25Qcm9wZXJ0eShvKSl7bGV0IHI9bltvXTtoKHIpJiZoKHIudmFsdWVzKSYmZS5wdXNoKHIudmFsdWVzLmJ1ZmZlcil9aCh0LmluZGljZXMpJiZlLnB1c2godC5pbmRpY2VzLmJ1ZmZlcil9ZnVuY3Rpb24gVE0odCxlKXtsZXQgbj10Lmxlbmd0aDtmb3IobGV0IG89MDtvPG47KytvKXdNKHRbb10sZSl9ZnVuY3Rpb24gT00odCl7bGV0IGU9MSxuPXQubGVuZ3RoO2ZvcihsZXQgbz0wO288bjtvKyspe2xldCByPXRbb107aWYoKytlLCFoKHIpKWNvbnRpbnVlO2xldCBpPXIuYXR0cmlidXRlcztlKz03KzIqQXQucGFja2VkTGVuZ3RoKyhoKHIuaW5kaWNlcyk/ci5pbmRpY2VzLmxlbmd0aDowKTtmb3IobGV0IHMgaW4gaSlpZihpLmhhc093blByb3BlcnR5KHMpJiZoKGlbc10pKXtsZXQgZj1pW3NdO2UrPTUrZi52YWx1ZXMubGVuZ3RofX1yZXR1cm4gZX1mdW5jdGlvbiBFTSh0LGUpe2xldCBuPXQubGVuZ3RoLG89bmV3IEZsb2F0NjRBcnJheSgxK24qMTkpLHI9MDtvW3IrK109bjtmb3IobGV0IGk9MDtpPG47aSsrKXtsZXQgcz10W2ldO2lmKHN0LnBhY2socy5tb2RlbE1hdHJpeCxvLHIpLHIrPXN0LnBhY2tlZExlbmd0aCxoKHMuYXR0cmlidXRlcykmJmgocy5hdHRyaWJ1dGVzLm9mZnNldCkpe2xldCBmPXMuYXR0cmlidXRlcy5vZmZzZXQudmFsdWU7b1tyXT1mWzBdLG9bcisxXT1mWzFdLG9bcisyXT1mWzJdfXIrPTN9cmV0dXJuIGUucHVzaChvLmJ1ZmZlciksb31mdW5jdGlvbiBSTSh0KXtsZXQgZT10LG49bmV3IEFycmF5KGVbMF0pLG89MCxyPTE7Zm9yKDtyPGUubGVuZ3RoOyl7bGV0IGk9c3QudW5wYWNrKGUscikscztyKz1zdC5wYWNrZWRMZW5ndGgsaChlW3JdKSYmKHM9e29mZnNldDpuZXcgcncoZVtyXSxlW3IrMV0sZVtyKzJdKX0pLHIrPTMsbltvKytdPXttb2RlbE1hdHJpeDppLGF0dHJpYnV0ZXM6c319cmV0dXJuIG59ZnVuY3Rpb24gc3codCl7bGV0IGU9dC5sZW5ndGgsbj0xKyhBdC5wYWNrZWRMZW5ndGgrMSkqZSxvPW5ldyBGbG9hdDMyQXJyYXkobikscj0wO29bcisrXT1lO2ZvcihsZXQgaT0wO2k8ZTsrK2kpe2xldCBzPXRbaV07aChzKT8ob1tyKytdPTEsQXQucGFjayh0W2ldLG8scikpOm9bcisrXT0wLHIrPUF0LnBhY2tlZExlbmd0aH1yZXR1cm4gb31mdW5jdGlvbiBjdyh0KXtsZXQgZT1uZXcgQXJyYXkodFswXSksbj0wLG89MTtmb3IoO288dC5sZW5ndGg7KXRbbysrXT09PTEmJihlW25dPUF0LnVucGFjayh0LG8pKSwrK24sbys9QXQucGFja2VkTGVuZ3RoO3JldHVybiBlfXZhciBJaSxjYSxuMD1aKCgpPT57dmUoKTtGZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7U2koKTtYZSgpO1llKCk7YW4oKTtzaSgpOyRlKCk7VW4oKTtpdygpO2ljKCk7SWk9e307SWkuY29tYmluZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlLG4sbz10Lmluc3RhbmNlcyxyPW8ubGVuZ3RoLGkscyxmPSExO3I+MCYmKGU9QU0odCksZS5sZW5ndGg+MCYmKG49VmUuY3JlYXRlQXR0cmlidXRlTG9jYXRpb25zKGVbMF0pLHQuY3JlYXRlUGlja09mZnNldHMmJihpPWJNKG8sZSkpKSxoKG9bMF0uYXR0cmlidXRlcykmJmgob1swXS5hdHRyaWJ1dGVzLm9mZnNldCkmJihzPW5ldyBBcnJheShyKSxmPSEwKSk7bGV0IHU9bmV3IEFycmF5KHIpLGM9bmV3IEFycmF5KHIpO2ZvcihsZXQgbD0wO2w8cjsrK2wpe2xldCBwPW9bbF0sZD1wLmdlb21ldHJ5O2goZCkmJih1W2xdPWQuYm91bmRpbmdTcGhlcmUsY1tsXT1kLmJvdW5kaW5nU3BoZXJlQ1YsZiYmKHNbbF09cC5nZW9tZXRyeS5vZmZzZXRBdHRyaWJ1dGUpKTtsZXQgbT1wLmVhc3RIZW1pc3BoZXJlR2VvbWV0cnksXz1wLndlc3RIZW1pc3BoZXJlR2VvbWV0cnk7aChtKSYmaChfKSYmKGgobS5ib3VuZGluZ1NwaGVyZSkmJmgoXy5ib3VuZGluZ1NwaGVyZSkmJih1W2xdPUF0LnVuaW9uKG0uYm91bmRpbmdTcGhlcmUsXy5ib3VuZGluZ1NwaGVyZSkpLGgobS5ib3VuZGluZ1NwaGVyZUNWKSYmaChfLmJvdW5kaW5nU3BoZXJlQ1YpJiYoY1tsXT1BdC51bmlvbihtLmJvdW5kaW5nU3BoZXJlQ1YsXy5ib3VuZGluZ1NwaGVyZUNWKSkpfXJldHVybntnZW9tZXRyaWVzOmUsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxhdHRyaWJ1dGVMb2NhdGlvbnM6bixwaWNrT2Zmc2V0czppLG9mZnNldEluc3RhbmNlRXh0ZW5kOnMsYm91bmRpbmdTcGhlcmVzOnUsYm91bmRpbmdTcGhlcmVzQ1Y6Y319O0lpLnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHM9ZnVuY3Rpb24odCxlKXtsZXQgbj1uZXcgRmxvYXQ2NEFycmF5KE9NKHQpKSxvPVtdLHI9e30saT10Lmxlbmd0aCxzPTA7bltzKytdPWk7Zm9yKGxldCBmPTA7ZjxpO2YrKyl7bGV0IHU9dFtmXSxjPWgodSk7aWYobltzKytdPWM/MTowLCFjKWNvbnRpbnVlO25bcysrXT11LnByaW1pdGl2ZVR5cGUsbltzKytdPXUuZ2VvbWV0cnlUeXBlLG5bcysrXT14KHUub2Zmc2V0QXR0cmlidXRlLC0xKTtsZXQgbD1oKHUuYm91bmRpbmdTcGhlcmUpPzE6MDtuW3MrK109bCxsJiZBdC5wYWNrKHUuYm91bmRpbmdTcGhlcmUsbixzKSxzKz1BdC5wYWNrZWRMZW5ndGg7bGV0IHA9aCh1LmJvdW5kaW5nU3BoZXJlQ1YpPzE6MDtuW3MrK109cCxwJiZBdC5wYWNrKHUuYm91bmRpbmdTcGhlcmVDVixuLHMpLHMrPUF0LnBhY2tlZExlbmd0aDtsZXQgZD11LmF0dHJpYnV0ZXMsbT1bXTtmb3IobGV0IGcgaW4gZClkLmhhc093blByb3BlcnR5KGcpJiZoKGRbZ10pJiYobS5wdXNoKGcpLGgocltnXSl8fChyW2ddPW8ubGVuZ3RoLG8ucHVzaChnKSkpO25bcysrXT1tLmxlbmd0aDtmb3IobGV0IGc9MDtnPG0ubGVuZ3RoO2crKyl7bGV0IGI9bVtnXSx3PWRbYl07bltzKytdPXJbYl0sbltzKytdPXcuY29tcG9uZW50RGF0YXR5cGUsbltzKytdPXcuY29tcG9uZW50c1BlckF0dHJpYnV0ZSxuW3MrK109dy5ub3JtYWxpemU/MTowLG5bcysrXT13LnZhbHVlcy5sZW5ndGgsbi5zZXQody52YWx1ZXMscykscys9dy52YWx1ZXMubGVuZ3RofWxldCBfPWgodS5pbmRpY2VzKT91LmluZGljZXMubGVuZ3RoOjA7bltzKytdPV8sXz4wJiYobi5zZXQodS5pbmRpY2VzLHMpLHMrPV8pfXJldHVybiBlLnB1c2gobi5idWZmZXIpLHtzdHJpbmdUYWJsZTpvLHBhY2tlZERhdGE6bn19O0lpLnVucGFja0NyZWF0ZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbih0KXtsZXQgZT10LnN0cmluZ1RhYmxlLG49dC5wYWNrZWREYXRhLG8scj1uZXcgQXJyYXkoblswXSksaT0wLHM9MTtmb3IoO3M8bi5sZW5ndGg7KXtpZighKG5bcysrXT09PTEpKXtyW2krK109dm9pZCAwO2NvbnRpbnVlfWxldCB1PW5bcysrXSxjPW5bcysrXSxsPW5bcysrXTtsPT09LTEmJihsPXZvaWQgMCk7bGV0IHAsZDtuW3MrK109PT0xJiYocD1BdC51bnBhY2sobixzKSkscys9QXQucGFja2VkTGVuZ3RoLG5bcysrXT09PTEmJihkPUF0LnVucGFjayhuLHMpKSxzKz1BdC5wYWNrZWRMZW5ndGg7bGV0IGcsYix3LE89bmV3IGllLEU9bltzKytdO2ZvcihvPTA7bzxFO28rKyl7bGV0IEM9ZVtuW3MrK11dLE49bltzKytdO3c9bltzKytdO2xldCBJPW5bcysrXSE9PTA7Zz1uW3MrK10sYj1udC5jcmVhdGVUeXBlZEFycmF5KE4sZyk7Zm9yKGxldCBEPTA7RDxnO0QrKyliW0RdPW5bcysrXTtPW0NdPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6Tixjb21wb25lbnRzUGVyQXR0cmlidXRlOncsbm9ybWFsaXplOkksdmFsdWVzOmJ9KX1sZXQgVDtpZihnPW5bcysrXSxnPjApe2xldCBDPWIubGVuZ3RoL3c7Zm9yKFQ9RHQuY3JlYXRlVHlwZWRBcnJheShDLGcpLG89MDtvPGc7bysrKVRbb109bltzKytdfXJbaSsrXT1uZXcgVXQoe3ByaW1pdGl2ZVR5cGU6dSxnZW9tZXRyeVR5cGU6Yyxib3VuZGluZ1NwaGVyZTpwLGJvdW5kaW5nU3BoZXJlQ1Y6ZCxpbmRpY2VzOlQsYXR0cmlidXRlczpPLG9mZnNldEF0dHJpYnV0ZTpsfSl9cmV0dXJuIHJ9O0lpLnBhY2tDb21iaW5lR2VvbWV0cnlQYXJhbWV0ZXJzPWZ1bmN0aW9uKHQsZSl7bGV0IG49dC5jcmVhdGVHZW9tZXRyeVJlc3VsdHMsbz1uLmxlbmd0aDtmb3IobGV0IHI9MDtyPG87cisrKWUucHVzaChuW3JdLnBhY2tlZERhdGEuYnVmZmVyKTtyZXR1cm57Y3JlYXRlR2VvbWV0cnlSZXN1bHRzOnQuY3JlYXRlR2VvbWV0cnlSZXN1bHRzLHBhY2tlZEluc3RhbmNlczpFTSh0Lmluc3RhbmNlcyxlKSxlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsaXNHZW9ncmFwaGljOnQucHJvamVjdGlvbiBpbnN0YW5jZW9mIEpuLGVsZW1lbnRJbmRleFVpbnRTdXBwb3J0ZWQ6dC5lbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkLHNjZW5lM0RPbmx5OnQuc2NlbmUzRE9ubHksdmVydGV4Q2FjaGVPcHRpbWl6ZTp0LnZlcnRleENhY2hlT3B0aW1pemUsY29tcHJlc3NWZXJ0aWNlczp0LmNvbXByZXNzVmVydGljZXMsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxjcmVhdGVQaWNrT2Zmc2V0czp0LmNyZWF0ZVBpY2tPZmZzZXRzfX07SWkudW5wYWNrQ29tYmluZUdlb21ldHJ5UGFyYW1ldGVycz1mdW5jdGlvbih0KXtsZXQgZT1STSh0LnBhY2tlZEluc3RhbmNlcyksbj10LmNyZWF0ZUdlb21ldHJ5UmVzdWx0cyxvPW4ubGVuZ3RoLHI9MDtmb3IobGV0IGY9MDtmPG87ZisrKXtsZXQgdT1JaS51bnBhY2tDcmVhdGVHZW9tZXRyeVJlc3VsdHMobltmXSksYz11Lmxlbmd0aDtmb3IobGV0IGw9MDtsPGM7bCsrKXtsZXQgcD11W2xdLGQ9ZVtyXTtkLmdlb21ldHJ5PXAsKytyfX1sZXQgaT0kLmNsb25lKHQuZWxsaXBzb2lkKSxzPXQuaXNHZW9ncmFwaGljP25ldyBKbihpKTpuZXcgbm8oaSk7cmV0dXJue2luc3RhbmNlczplLGVsbGlwc29pZDppLHByb2plY3Rpb246cyxlbGVtZW50SW5kZXhVaW50U3VwcG9ydGVkOnQuZWxlbWVudEluZGV4VWludFN1cHBvcnRlZCxzY2VuZTNET25seTp0LnNjZW5lM0RPbmx5LHZlcnRleENhY2hlT3B0aW1pemU6dC52ZXJ0ZXhDYWNoZU9wdGltaXplLGNvbXByZXNzVmVydGljZXM6dC5jb21wcmVzc1ZlcnRpY2VzLG1vZGVsTWF0cml4OnN0LmNsb25lKHQubW9kZWxNYXRyaXgpLGNyZWF0ZVBpY2tPZmZzZXRzOnQuY3JlYXRlUGlja09mZnNldHN9fTtJaS5wYWNrQ29tYmluZUdlb21ldHJ5UmVzdWx0cz1mdW5jdGlvbih0LGUpe2godC5nZW9tZXRyaWVzKSYmVE0odC5nZW9tZXRyaWVzLGUpO2xldCBuPXN3KHQuYm91bmRpbmdTcGhlcmVzKSxvPXN3KHQuYm91bmRpbmdTcGhlcmVzQ1YpO3JldHVybiBlLnB1c2gobi5idWZmZXIsby5idWZmZXIpLHtnZW9tZXRyaWVzOnQuZ2VvbWV0cmllcyxhdHRyaWJ1dGVMb2NhdGlvbnM6dC5hdHRyaWJ1dGVMb2NhdGlvbnMsbW9kZWxNYXRyaXg6dC5tb2RlbE1hdHJpeCxwaWNrT2Zmc2V0czp0LnBpY2tPZmZzZXRzLG9mZnNldEluc3RhbmNlRXh0ZW5kOnQub2Zmc2V0SW5zdGFuY2VFeHRlbmQsYm91bmRpbmdTcGhlcmVzOm4sYm91bmRpbmdTcGhlcmVzQ1Y6b319O0lpLnVucGFja0NvbWJpbmVHZW9tZXRyeVJlc3VsdHM9ZnVuY3Rpb24odCl7cmV0dXJue2dlb21ldHJpZXM6dC5nZW9tZXRyaWVzLGF0dHJpYnV0ZUxvY2F0aW9uczp0LmF0dHJpYnV0ZUxvY2F0aW9ucyxtb2RlbE1hdHJpeDp0Lm1vZGVsTWF0cml4LHBpY2tPZmZzZXRzOnQucGlja09mZnNldHMsb2Zmc2V0SW5zdGFuY2VFeHRlbmQ6dC5vZmZzZXRJbnN0YW5jZUV4dGVuZCxib3VuZGluZ1NwaGVyZXM6Y3codC5ib3VuZGluZ1NwaGVyZXMpLGJvdW5kaW5nU3BoZXJlc0NWOmN3KHQuYm91bmRpbmdTcGhlcmVzQ1YpfX07Y2E9SWl9KTtmdW5jdGlvbiBTTSh0KXtsZXQgZSxuPXQubmFtZSxvPXQubWVzc2FnZTtoKG4pJiZoKG8pP2U9YCR7bn06ICR7b31gOmU9dC50b1N0cmluZygpO2xldCByPXQuc3RhY2s7cmV0dXJuIGgocikmJihlKz1gCiR7cn1gKSxlfXZhciBhdyxmdz1aKCgpPT57ZnQoKTthdz1TTX0pO3ZhciBvMD17fTtkZShvMCx7ZGVmYXVsdDooKT0+UWV9KTtmdW5jdGlvbiBDTSh0KXthc3luYyBmdW5jdGlvbiBlKHtkYXRhOm99KXtsZXQgcj1bXSxpPXtpZDpvLmlkLHJlc3VsdDp2b2lkIDAsZXJyb3I6dm9pZCAwfTtzZWxmLkNFU0lVTV9CQVNFX1VSTD1vLmJhc2VVcmw7dHJ5e2xldCBzPWF3YWl0IHQoby5wYXJhbWV0ZXJzLHIpO2kucmVzdWx0PXN9Y2F0Y2gocyl7cyBpbnN0YW5jZW9mIEVycm9yP2kuZXJyb3I9e25hbWU6cy5uYW1lLG1lc3NhZ2U6cy5tZXNzYWdlLHN0YWNrOnMuc3RhY2t9OmkuZXJyb3I9c31vLmNhblRyYW5zZmVyQXJyYXlCdWZmZXJ8fChyLmxlbmd0aD0wKTt0cnl7cG9zdE1lc3NhZ2UoaSxyKX1jYXRjaChzKXtpLnJlc3VsdD12b2lkIDAsaS5lcnJvcj1gcG9zdE1lc3NhZ2UgZmFpbGVkIHdpdGggZXJyb3I6ICR7YXcocyl9CiAgd2l0aCByZXNwb25zZU1lc3NhZ2U6ICR7SlNPTi5zdHJpbmdpZnkoaSl9YCxwb3N0TWVzc2FnZShpKX19ZnVuY3Rpb24gbihvKXtwb3N0TWVzc2FnZSh7aWQ6by5kYXRhPy5pZCxlcnJvcjpgcG9zdE1lc3NhZ2UgZmFpbGVkIHdpdGggZXJyb3I6ICR7SlNPTi5zdHJpbmdpZnkobyl9YH0pfXJldHVybiBzZWxmLm9ubWVzc2FnZT1lLHNlbGYub25tZXNzYWdlZXJyb3I9bixzZWxmfXZhciBRZSxzbz1aKCgpPT57ZncoKTtRZT1DTX0pO3ZhciByMD17fTtkZShyMCx7ZGVmYXVsdDooKT0+UE19KTtmdW5jdGlvbiB4TSh0LGUpe2xldCBuPWNhLnVucGFja0NvbWJpbmVHZW9tZXRyeVBhcmFtZXRlcnModCksbz1jYS5jb21iaW5lR2VvbWV0cnkobik7cmV0dXJuIGNhLnBhY2tDb21iaW5lR2VvbWV0cnlSZXN1bHRzKG8sZSl9dmFyIFBNLGkwPVooKCk9PntuMCgpO3NvKCk7UE09UWUoeE0pfSk7dmFyIE1NLGZlLExvPVooKCk9PntNTT17Tk9ORTowLFRPUDoxLEFMTDoyfSxmZT1PYmplY3QuZnJlZXplKE1NKX0pO2Z1bmN0aW9uIEduKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx0aGlzLnBvc2l0aW9uPXgodC5wb3NpdGlvbiwhMSksdGhpcy5ub3JtYWw9eCh0Lm5vcm1hbCwhMSksdGhpcy5zdD14KHQuc3QsITEpLHRoaXMuYml0YW5nZW50PXgodC5iaXRhbmdlbnQsITEpLHRoaXMudGFuZ2VudD14KHQudGFuZ2VudCwhMSksdGhpcy5jb2xvcj14KHQuY29sb3IsITEpfXZhciBkdCxSbz1aKCgpPT57SXQoKTtmdCgpO0h0KCk7R24uUE9TSVRJT05fT05MWT1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITB9KSk7R24uUE9TSVRJT05fQU5EX05PUk1BTD1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITAsbm9ybWFsOiEwfSkpO0duLlBPU0lUSU9OX05PUk1BTF9BTkRfU1Q9T2JqZWN0LmZyZWV6ZShuZXcgR24oe3Bvc2l0aW9uOiEwLG5vcm1hbDohMCxzdDohMH0pKTtHbi5QT1NJVElPTl9BTkRfU1Q9T2JqZWN0LmZyZWV6ZShuZXcgR24oe3Bvc2l0aW9uOiEwLHN0OiEwfSkpO0duLlBPU0lUSU9OX0FORF9DT0xPUj1PYmplY3QuZnJlZXplKG5ldyBHbih7cG9zaXRpb246ITAsY29sb3I6ITB9KSk7R24uQUxMPU9iamVjdC5mcmVlemUobmV3IEduKHtwb3NpdGlvbjohMCxub3JtYWw6ITAsc3Q6ITAsdGFuZ2VudDohMCxiaXRhbmdlbnQ6ITB9KSk7R24uREVGQVVMVD1Hbi5QT1NJVElPTl9OT1JNQUxfQU5EX1NUO0duLnBhY2tlZExlbmd0aD02O0duLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxlW24rK109dC5wb3NpdGlvbj8xOjAsZVtuKytdPXQubm9ybWFsPzE6MCxlW24rK109dC5zdD8xOjAsZVtuKytdPXQudGFuZ2VudD8xOjAsZVtuKytdPXQuYml0YW5nZW50PzE6MCxlW25dPXQuY29sb3I/MTowLGV9O0duLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7cmV0dXJuIGU9eChlLDApLGgobil8fChuPW5ldyBHbiksbi5wb3NpdGlvbj10W2UrK109PT0xLG4ubm9ybWFsPXRbZSsrXT09PTEsbi5zdD10W2UrK109PT0xLG4udGFuZ2VudD10W2UrK109PT0xLG4uYml0YW5nZW50PXRbZSsrXT09PTEsbi5jb2xvcj10W2VdPT09MSxufTtHbi5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSl8fChlPW5ldyBHbiksZS5wb3NpdGlvbj10LnBvc2l0aW9uLGUubm9ybWFsPXQubm9ybWFsLGUuc3Q9dC5zdCxlLnRhbmdlbnQ9dC50YW5nZW50LGUuYml0YW5nZW50PXQuYml0YW5nZW50LGUuY29sb3I9dC5jb2xvcixlfTtkdD1Hbn0pO2Z1bmN0aW9uIHJyKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10Lm1pbmltdW0sbj10Lm1heGltdW07aWYoeS50eXBlT2Yub2JqZWN0KCJtaW4iLGUpLHkudHlwZU9mLm9iamVjdCgibWF4IixuKSxoKHQub2Zmc2V0QXR0cmlidXRlKSYmdC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApdGhyb3cgbmV3IEYoIkdlb21ldHJ5T2Zmc2V0QXR0cmlidXRlLlRPUCBpcyBub3QgYSBzdXBwb3J0ZWQgb3B0aW9ucy5vZmZzZXRBdHRyaWJ1dGUgZm9yIHRoaXMgZ2VvbWV0cnkuIik7bGV0IG89eCh0LnZlcnRleEZvcm1hdCxkdC5ERUZBVUxUKTt0aGlzLl9taW5pbXVtPWEuY2xvbmUoZSksdGhpcy5fbWF4aW11bT1hLmNsb25lKG4pLHRoaXMuX3ZlcnRleEZvcm1hdD1vLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVCb3hHZW9tZXRyeSJ9dmFyIE5NLGx3LHB3LGR3LHV3LHMwLHhmLGMwPVooKCk9Pnt2ZSgpO0Z0KCk7WHQoKTtGZSgpO0l0KCk7ZnQoKTtIdCgpO1hlKCk7WWUoKTthbigpO0xvKCk7dG4oKTtSbygpO05NPW5ldyBhO3JyLmZyb21EaW1lbnNpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmRpbWVuc2lvbnM7eS50eXBlT2Yub2JqZWN0KCJkaW1lbnNpb25zIixlKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiZGltZW5zaW9ucy54IixlLngsMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImRpbWVuc2lvbnMueSIsZS55LDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJkaW1lbnNpb25zLnoiLGUueiwwKTtsZXQgbj1hLm11bHRpcGx5QnlTY2FsYXIoZSwuNSxuZXcgYSk7cmV0dXJuIG5ldyBycih7bWluaW11bTphLm5lZ2F0ZShuLG5ldyBhKSxtYXhpbXVtOm4sdmVydGV4Rm9ybWF0OnQudmVydGV4Rm9ybWF0LG9mZnNldEF0dHJpYnV0ZTp0Lm9mZnNldEF0dHJpYnV0ZX0pfTtyci5mcm9tQXhpc0FsaWduZWRCb3VuZGluZ0JveD1mdW5jdGlvbih0KXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJib3VuZGluZ0JveCIsdCksbmV3IHJyKHttaW5pbXVtOnQubWluaW11bSxtYXhpbXVtOnQubWF4aW11bX0pfTtyci5wYWNrZWRMZW5ndGg9MiphLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGgrMTtyci5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksYS5wYWNrKHQuX21pbmltdW0sZSxuKSxhLnBhY2sodC5fbWF4aW11bSxlLG4rYS5wYWNrZWRMZW5ndGgpLGR0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbisyKmEucGFja2VkTGVuZ3RoKSxlW24rMiphLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGhdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtsdz1uZXcgYSxwdz1uZXcgYSxkdz1uZXcgZHQsdXc9e21pbmltdW06bHcsbWF4aW11bTpwdyx2ZXJ0ZXhGb3JtYXQ6ZHcsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07cnIudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1hLnVucGFjayh0LGUsbHcpLHI9YS51bnBhY2sodCxlK2EucGFja2VkTGVuZ3RoLHB3KSxpPWR0LnVucGFjayh0LGUrMiphLnBhY2tlZExlbmd0aCxkdykscz10W2UrMiphLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGhdO3JldHVybiBoKG4pPyhuLl9taW5pbXVtPWEuY2xvbmUobyxuLl9taW5pbXVtKSxuLl9tYXhpbXVtPWEuY2xvbmUocixuLl9tYXhpbXVtKSxuLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoaSxuLl92ZXJ0ZXhGb3JtYXQpLG4uX29mZnNldEF0dHJpYnV0ZT1zPT09LTE/dm9pZCAwOnMsbik6KHV3Lm9mZnNldEF0dHJpYnV0ZT1zPT09LTE/dm9pZCAwOnMsbmV3IHJyKHV3KSl9O3JyLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX21pbmltdW0sbj10Ll9tYXhpbXVtLG89dC5fdmVydGV4Rm9ybWF0O2lmKGEuZXF1YWxzKGUsbikpcmV0dXJuO2xldCByPW5ldyBpZSxpLHM7aWYoby5wb3NpdGlvbiYmKG8uc3R8fG8ubm9ybWFsfHxvLnRhbmdlbnR8fG8uYml0YW5nZW50KSl7aWYoby5wb3NpdGlvbiYmKHM9bmV3IEZsb2F0NjRBcnJheSg2KjQqMyksc1swXT1lLngsc1sxXT1lLnksc1syXT1uLnosc1szXT1uLngsc1s0XT1lLnksc1s1XT1uLnosc1s2XT1uLngsc1s3XT1uLnksc1s4XT1uLnosc1s5XT1lLngsc1sxMF09bi55LHNbMTFdPW4ueixzWzEyXT1lLngsc1sxM109ZS55LHNbMTRdPWUueixzWzE1XT1uLngsc1sxNl09ZS55LHNbMTddPWUueixzWzE4XT1uLngsc1sxOV09bi55LHNbMjBdPWUueixzWzIxXT1lLngsc1syMl09bi55LHNbMjNdPWUueixzWzI0XT1uLngsc1syNV09ZS55LHNbMjZdPWUueixzWzI3XT1uLngsc1syOF09bi55LHNbMjldPWUueixzWzMwXT1uLngsc1szMV09bi55LHNbMzJdPW4ueixzWzMzXT1uLngsc1szNF09ZS55LHNbMzVdPW4ueixzWzM2XT1lLngsc1szN109ZS55LHNbMzhdPWUueixzWzM5XT1lLngsc1s0MF09bi55LHNbNDFdPWUueixzWzQyXT1lLngsc1s0M109bi55LHNbNDRdPW4ueixzWzQ1XT1lLngsc1s0Nl09ZS55LHNbNDddPW4ueixzWzQ4XT1lLngsc1s0OV09bi55LHNbNTBdPWUueixzWzUxXT1uLngsc1s1Ml09bi55LHNbNTNdPWUueixzWzU0XT1uLngsc1s1NV09bi55LHNbNTZdPW4ueixzWzU3XT1lLngsc1s1OF09bi55LHNbNTldPW4ueixzWzYwXT1lLngsc1s2MV09ZS55LHNbNjJdPWUueixzWzYzXT1uLngsc1s2NF09ZS55LHNbNjVdPWUueixzWzY2XT1uLngsc1s2N109ZS55LHNbNjhdPW4ueixzWzY5XT1lLngsc1s3MF09ZS55LHNbNzFdPW4ueixyLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6c30pKSxvLm5vcm1hbCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0wLGNbMV09MCxjWzJdPTEsY1szXT0wLGNbNF09MCxjWzVdPTEsY1s2XT0wLGNbN109MCxjWzhdPTEsY1s5XT0wLGNbMTBdPTAsY1sxMV09MSxjWzEyXT0wLGNbMTNdPTAsY1sxNF09LTEsY1sxNV09MCxjWzE2XT0wLGNbMTddPS0xLGNbMThdPTAsY1sxOV09MCxjWzIwXT0tMSxjWzIxXT0wLGNbMjJdPTAsY1syM109LTEsY1syNF09MSxjWzI1XT0wLGNbMjZdPTAsY1syN109MSxjWzI4XT0wLGNbMjldPTAsY1szMF09MSxjWzMxXT0wLGNbMzJdPTAsY1szM109MSxjWzM0XT0wLGNbMzVdPTAsY1szNl09LTEsY1szN109MCxjWzM4XT0wLGNbMzldPS0xLGNbNDBdPTAsY1s0MV09MCxjWzQyXT0tMSxjWzQzXT0wLGNbNDRdPTAsY1s0NV09LTEsY1s0Nl09MCxjWzQ3XT0wLGNbNDhdPTAsY1s0OV09MSxjWzUwXT0wLGNbNTFdPTAsY1s1Ml09MSxjWzUzXT0wLGNbNTRdPTAsY1s1NV09MSxjWzU2XT0wLGNbNTddPTAsY1s1OF09MSxjWzU5XT0wLGNbNjBdPTAsY1s2MV09LTEsY1s2Ml09MCxjWzYzXT0wLGNbNjRdPS0xLGNbNjVdPTAsY1s2Nl09MCxjWzY3XT0tMSxjWzY4XT0wLGNbNjldPTAsY1s3MF09LTEsY1s3MV09MCxyLm5vcm1hbD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Y30pfWlmKG8uc3Qpe2xldCBjPW5ldyBGbG9hdDMyQXJyYXkoNDgpO2NbMF09MCxjWzFdPTAsY1syXT0xLGNbM109MCxjWzRdPTEsY1s1XT0xLGNbNl09MCxjWzddPTEsY1s4XT0xLGNbOV09MCxjWzEwXT0wLGNbMTFdPTAsY1sxMl09MCxjWzEzXT0xLGNbMTRdPTEsY1sxNV09MSxjWzE2XT0wLGNbMTddPTAsY1sxOF09MSxjWzE5XT0wLGNbMjBdPTEsY1syMV09MSxjWzIyXT0wLGNbMjNdPTEsY1syNF09MSxjWzI1XT0wLGNbMjZdPTAsY1syN109MCxjWzI4XT0wLGNbMjldPTEsY1szMF09MSxjWzMxXT0xLGNbMzJdPTEsY1szM109MCxjWzM0XT0wLGNbMzVdPTAsY1szNl09MCxjWzM3XT0xLGNbMzhdPTEsY1szOV09MSxjWzQwXT0wLGNbNDFdPTAsY1s0Ml09MSxjWzQzXT0wLGNbNDRdPTEsY1s0NV09MSxjWzQ2XT0wLGNbNDddPTEsci5zdD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6Y30pfWlmKG8udGFuZ2VudCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0xLGNbMV09MCxjWzJdPTAsY1szXT0xLGNbNF09MCxjWzVdPTAsY1s2XT0xLGNbN109MCxjWzhdPTAsY1s5XT0xLGNbMTBdPTAsY1sxMV09MCxjWzEyXT0tMSxjWzEzXT0wLGNbMTRdPTAsY1sxNV09LTEsY1sxNl09MCxjWzE3XT0wLGNbMThdPS0xLGNbMTldPTAsY1syMF09MCxjWzIxXT0tMSxjWzIyXT0wLGNbMjNdPTAsY1syNF09MCxjWzI1XT0xLGNbMjZdPTAsY1syN109MCxjWzI4XT0xLGNbMjldPTAsY1szMF09MCxjWzMxXT0xLGNbMzJdPTAsY1szM109MCxjWzM0XT0xLGNbMzVdPTAsY1szNl09MCxjWzM3XT0tMSxjWzM4XT0wLGNbMzldPTAsY1s0MF09LTEsY1s0MV09MCxjWzQyXT0wLGNbNDNdPS0xLGNbNDRdPTAsY1s0NV09MCxjWzQ2XT0tMSxjWzQ3XT0wLGNbNDhdPS0xLGNbNDldPTAsY1s1MF09MCxjWzUxXT0tMSxjWzUyXT0wLGNbNTNdPTAsY1s1NF09LTEsY1s1NV09MCxjWzU2XT0wLGNbNTddPS0xLGNbNThdPTAsY1s1OV09MCxjWzYwXT0xLGNbNjFdPTAsY1s2Ml09MCxjWzYzXT0xLGNbNjRdPTAsY1s2NV09MCxjWzY2XT0xLGNbNjddPTAsY1s2OF09MCxjWzY5XT0xLGNbNzBdPTAsY1s3MV09MCxyLnRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX1pZihvLmJpdGFuZ2VudCl7bGV0IGM9bmV3IEZsb2F0MzJBcnJheSg3Mik7Y1swXT0wLGNbMV09MSxjWzJdPTAsY1szXT0wLGNbNF09MSxjWzVdPTAsY1s2XT0wLGNbN109MSxjWzhdPTAsY1s5XT0wLGNbMTBdPTEsY1sxMV09MCxjWzEyXT0wLGNbMTNdPTEsY1sxNF09MCxjWzE1XT0wLGNbMTZdPTEsY1sxN109MCxjWzE4XT0wLGNbMTldPTEsY1syMF09MCxjWzIxXT0wLGNbMjJdPTEsY1syM109MCxjWzI0XT0wLGNbMjVdPTAsY1syNl09MSxjWzI3XT0wLGNbMjhdPTAsY1syOV09MSxjWzMwXT0wLGNbMzFdPTAsY1szMl09MSxjWzMzXT0wLGNbMzRdPTAsY1szNV09MSxjWzM2XT0wLGNbMzddPTAsY1szOF09MSxjWzM5XT0wLGNbNDBdPTAsY1s0MV09MSxjWzQyXT0wLGNbNDNdPTAsY1s0NF09MSxjWzQ1XT0wLGNbNDZdPTAsY1s0N109MSxjWzQ4XT0wLGNbNDldPTAsY1s1MF09MSxjWzUxXT0wLGNbNTJdPTAsY1s1M109MSxjWzU0XT0wLGNbNTVdPTAsY1s1Nl09MSxjWzU3XT0wLGNbNThdPTAsY1s1OV09MSxjWzYwXT0wLGNbNjFdPTAsY1s2Ml09MSxjWzYzXT0wLGNbNjRdPTAsY1s2NV09MSxjWzY2XT0wLGNbNjddPTAsY1s2OF09MSxjWzY5XT0wLGNbNzBdPTAsY1s3MV09MSxyLmJpdGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Y30pfWk9bmV3IFVpbnQxNkFycmF5KDYqMiozKSxpWzBdPTAsaVsxXT0xLGlbMl09MixpWzNdPTAsaVs0XT0yLGlbNV09MyxpWzZdPTYsaVs3XT01LGlbOF09NCxpWzldPTcsaVsxMF09NixpWzExXT00LGlbMTJdPTgsaVsxM109OSxpWzE0XT0xMCxpWzE1XT04LGlbMTZdPTEwLGlbMTddPTExLGlbMThdPTE0LGlbMTldPTEzLGlbMjBdPTEyLGlbMjFdPTE1LGlbMjJdPTE0LGlbMjNdPTEyLGlbMjRdPTE4LGlbMjVdPTE3LGlbMjZdPTE2LGlbMjddPTE5LGlbMjhdPTE4LGlbMjldPTE2LGlbMzBdPTIwLGlbMzFdPTIxLGlbMzJdPTIyLGlbMzNdPTIwLGlbMzRdPTIyLGlbMzVdPTIzfWVsc2Ugcz1uZXcgRmxvYXQ2NEFycmF5KDgqMyksc1swXT1lLngsc1sxXT1lLnksc1syXT1lLnosc1szXT1uLngsc1s0XT1lLnksc1s1XT1lLnosc1s2XT1uLngsc1s3XT1uLnksc1s4XT1lLnosc1s5XT1lLngsc1sxMF09bi55LHNbMTFdPWUueixzWzEyXT1lLngsc1sxM109ZS55LHNbMTRdPW4ueixzWzE1XT1uLngsc1sxNl09ZS55LHNbMTddPW4ueixzWzE4XT1uLngsc1sxOV09bi55LHNbMjBdPW4ueixzWzIxXT1lLngsc1syMl09bi55LHNbMjNdPW4ueixyLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6c30pLGk9bmV3IFVpbnQxNkFycmF5KDYqMiozKSxpWzBdPTQsaVsxXT01LGlbMl09NixpWzNdPTQsaVs0XT02LGlbNV09NyxpWzZdPTEsaVs3XT0wLGlbOF09MyxpWzldPTEsaVsxMF09MyxpWzExXT0yLGlbMTJdPTEsaVsxM109NixpWzE0XT01LGlbMTVdPTEsaVsxNl09MixpWzE3XT02LGlbMThdPTIsaVsxOV09MyxpWzIwXT03LGlbMjFdPTIsaVsyMl09NyxpWzIzXT02LGlbMjRdPTMsaVsyNV09MCxpWzI2XT00LGlbMjddPTMsaVsyOF09NCxpWzI5XT03LGlbMzBdPTAsaVszMV09MSxpWzMyXT01LGlbMzNdPTAsaVszNF09NSxpWzM1XT00O2xldCBmPWEuc3VidHJhY3QobixlLE5NKSx1PWEubWFnbml0dWRlKGYpKi41O2lmKGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IGM9cy5sZW5ndGgsbD10Ll9vZmZzZXRBdHRyaWJ1dGU9PT1mZS5OT05FPzA6MSxwPW5ldyBVaW50OEFycmF5KGMvMykuZmlsbChsKTtyLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnB9KX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOnIsaW5kaWNlczppLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOm5ldyBBdChhLlpFUk8sdSksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtyci5nZXRVbml0Qm94PWZ1bmN0aW9uKCl7cmV0dXJuIGgoczApfHwoczA9cnIuY3JlYXRlR2VvbWV0cnkocnIuZnJvbURpbWVuc2lvbnMoe2RpbWVuc2lvbnM6bmV3IGEoMSwxLDEpLHZlcnRleEZvcm1hdDpkdC5QT1NJVElPTl9PTkxZfSkpKSxzMH07eGY9cnJ9KTt2YXIgYTA9e307ZGUoYTAse2RlZmF1bHQ6KCk9PnZNfSk7ZnVuY3Rpb24gSU0odCxlKXtyZXR1cm4gaChlKSYmKHQ9eGYudW5wYWNrKHQsZSkpLHhmLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB2TSxmMD1aKCgpPT57YzAoKTtmdCgpO3ZNPUlNfSk7ZnVuY3Rpb24gY2kodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQubWluaW11bSxuPXQubWF4aW11bTtpZih5LnR5cGVPZi5vYmplY3QoIm1pbiIsZSkseS50eXBlT2Yub2JqZWN0KCJtYXgiLG4pLGgodC5vZmZzZXRBdHRyaWJ1dGUpJiZ0Lm9mZnNldEF0dHJpYnV0ZT09PWZlLlRPUCl0aHJvdyBuZXcgRigiR2VvbWV0cnlPZmZzZXRBdHRyaWJ1dGUuVE9QIGlzIG5vdCBhIHN1cHBvcnRlZCBvcHRpb25zLm9mZnNldEF0dHJpYnV0ZSBmb3IgdGhpcyBnZW9tZXRyeS4iKTt0aGlzLl9taW49YS5jbG9uZShlKSx0aGlzLl9tYXg9YS5jbG9uZShuKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQm94T3V0bGluZUdlb21ldHJ5In12YXIgTE0saHcsX3csbXcsdTAseXc9WigoKT0+e3ZlKCk7RnQoKTtYdCgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7WGUoKTtZZSgpO2FuKCk7TG8oKTt0bigpO0xNPW5ldyBhO2NpLmZyb21EaW1lbnNpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LmRpbWVuc2lvbnM7eS50eXBlT2Yub2JqZWN0KCJkaW1lbnNpb25zIixlKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiZGltZW5zaW9ucy54IixlLngsMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImRpbWVuc2lvbnMueSIsZS55LDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJkaW1lbnNpb25zLnoiLGUueiwwKTtsZXQgbj1hLm11bHRpcGx5QnlTY2FsYXIoZSwuNSxuZXcgYSk7cmV0dXJuIG5ldyBjaSh7bWluaW11bTphLm5lZ2F0ZShuLG5ldyBhKSxtYXhpbXVtOm4sb2Zmc2V0QXR0cmlidXRlOnQub2Zmc2V0QXR0cmlidXRlfSl9O2NpLmZyb21BeGlzQWxpZ25lZEJvdW5kaW5nQm94PWZ1bmN0aW9uKHQpe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImJvdW5kaW5kQm94Iix0KSxuZXcgY2koe21pbmltdW06dC5taW5pbXVtLG1heGltdW06dC5tYXhpbXVtfSl9O2NpLnBhY2tlZExlbmd0aD0yKmEucGFja2VkTGVuZ3RoKzE7Y2kucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGEucGFjayh0Ll9taW4sZSxuKSxhLnBhY2sodC5fbWF4LGUsbithLnBhY2tlZExlbmd0aCksZVtuK2EucGFja2VkTGVuZ3RoKjJdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtodz1uZXcgYSxfdz1uZXcgYSxtdz17bWluaW11bTpodyxtYXhpbXVtOl93LG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O2NpLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89YS51bnBhY2sodCxlLGh3KSxyPWEudW5wYWNrKHQsZSthLnBhY2tlZExlbmd0aCxfdyksaT10W2UrYS5wYWNrZWRMZW5ndGgqMl07cmV0dXJuIGgobik/KG4uX21pbj1hLmNsb25lKG8sbi5fbWluKSxuLl9tYXg9YS5jbG9uZShyLG4uX21heCksbi5fb2Zmc2V0QXR0cmlidXRlPWk9PT0tMT92b2lkIDA6aSxuKToobXcub2Zmc2V0QXR0cmlidXRlPWk9PT0tMT92b2lkIDA6aSxuZXcgY2kobXcpKX07Y2kuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fbWluLG49dC5fbWF4O2lmKGEuZXF1YWxzKGUsbikpcmV0dXJuO2xldCBvPW5ldyBpZSxyPW5ldyBVaW50MTZBcnJheSgxMioyKSxpPW5ldyBGbG9hdDY0QXJyYXkoOCozKTtpWzBdPWUueCxpWzFdPWUueSxpWzJdPWUueixpWzNdPW4ueCxpWzRdPWUueSxpWzVdPWUueixpWzZdPW4ueCxpWzddPW4ueSxpWzhdPWUueixpWzldPWUueCxpWzEwXT1uLnksaVsxMV09ZS56LGlbMTJdPWUueCxpWzEzXT1lLnksaVsxNF09bi56LGlbMTVdPW4ueCxpWzE2XT1lLnksaVsxN109bi56LGlbMThdPW4ueCxpWzE5XT1uLnksaVsyMF09bi56LGlbMjFdPWUueCxpWzIyXT1uLnksaVsyM109bi56LG8ucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSksclswXT00LHJbMV09NSxyWzJdPTUsclszXT02LHJbNF09NixyWzVdPTcscls2XT03LHJbN109NCxyWzhdPTAscls5XT0xLHJbMTBdPTEsclsxMV09MixyWzEyXT0yLHJbMTNdPTMsclsxNF09MyxyWzE1XT0wLHJbMTZdPTAsclsxN109NCxyWzE4XT0xLHJbMTldPTUsclsyMF09MixyWzIxXT02LHJbMjJdPTMsclsyM109NztsZXQgcz1hLnN1YnRyYWN0KG4sZSxMTSksZj1hLm1hZ25pdHVkZShzKSouNTtpZihoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCB1PWkubGVuZ3RoLGM9dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsbD1uZXcgVWludDhBcnJheSh1LzMpLmZpbGwoYyk7by5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpsfSl9cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpvLGluZGljZXM6cixwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOm5ldyBBdChhLlpFUk8sZiksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTt1MD1jaX0pO3ZhciBsMD17fTtkZShsMCx7ZGVmYXVsdDooKT0+Rk19KTtmdW5jdGlvbiBETSh0LGUpe3JldHVybiBoKGUpJiYodD11MC51bnBhY2sodCxlKSksdTAuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEZNLHAwPVooKCk9Pnt5dygpO2Z0KCk7Rk09RE19KTtmdW5jdGlvbiBhYSh0LGUsbixvLHIsaSxzLGYsdSxjKXtsZXQgbD10K2U7YS5tdWx0aXBseUJ5U2NhbGFyKG8sTWF0aC5jb3MobCksWHApLGEubXVsdGlwbHlCeVNjYWxhcihuLE1hdGguc2luKGwpLGd3KSxhLmFkZChYcCxndyxYcCk7bGV0IHA9TWF0aC5jb3ModCk7cD1wKnA7bGV0IGQ9TWF0aC5zaW4odCk7ZD1kKmQ7bGV0IF89aS9NYXRoLnNxcnQocypwK3IqZCkvZjtyZXR1cm4gZWUuZnJvbUF4aXNBbmdsZShYcCxfLEF3KSxRLmZyb21RdWF0ZXJuaW9uKEF3LGJ3KSxRLm11bHRpcGx5QnlWZWN0b3IoYncsdSxjKSxhLm5vcm1hbGl6ZShjLGMpLGEubXVsdGlwbHlCeVNjYWxhcihjLGYsYyksY312YXIgbTAsWHAsZ3csQXcsYncsd3csVHcsZDAsQk0sVU0sVk0sa00sa3IsaDA9WigoKT0+e0Z0KCk7V3QoKTtCbigpO0tvKCk7bTA9e30sWHA9bmV3IGEsZ3c9bmV3IGEsQXc9bmV3IGVlLGJ3PW5ldyBRO3d3PW5ldyBhLFR3PW5ldyBhLGQwPW5ldyBhLEJNPW5ldyBhO20wLnJhaXNlUG9zaXRpb25zVG9IZWlnaHQ9ZnVuY3Rpb24odCxlLG4pe2xldCBvPWUuZWxsaXBzb2lkLHI9ZS5oZWlnaHQsaT1lLmV4dHJ1ZGVkSGVpZ2h0LHM9bj90Lmxlbmd0aC8zKjI6dC5sZW5ndGgvMyxmPW5ldyBGbG9hdDY0QXJyYXkocyozKSx1PXQubGVuZ3RoLGM9bj91OjA7Zm9yKGxldCBsPTA7bDx1O2wrPTMpe2xldCBwPWwrMSxkPWwrMixtPWEuZnJvbUFycmF5KHQsbCx3dyk7by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG0sbSk7bGV0IF89YS5jbG9uZShtLFR3KSxnPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKG0sQk0pLGI9YS5tdWx0aXBseUJ5U2NhbGFyKGcscixkMCk7YS5hZGQobSxiLG0pLG4mJihhLm11bHRpcGx5QnlTY2FsYXIoZyxpLGIpLGEuYWRkKF8sYixfKSxmW2wrY109Xy54LGZbcCtjXT1fLnksZltkK2NdPV8ueiksZltsXT1tLngsZltwXT1tLnksZltkXT1tLnp9cmV0dXJuIGZ9O1VNPW5ldyBhLFZNPW5ldyBhLGtNPW5ldyBhO20wLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LnNlbWlNaW5vckF4aXMscj10LnNlbWlNYWpvckF4aXMsaT10LnJvdGF0aW9uLHM9dC5jZW50ZXIsZj10LmdyYW51bGFyaXR5KjgsdT1vKm8sYz1yKnIsbD1yKm8scD1hLm1hZ25pdHVkZShzKSxkPWEubm9ybWFsaXplKHMsVU0pLG09YS5jcm9zcyhhLlVOSVRfWixzLFZNKTttPWEubm9ybWFsaXplKG0sbSk7bGV0IF89YS5jcm9zcyhkLG0sa00pLGc9MStNYXRoLmNlaWwoTS5QSV9PVkVSX1RXTy9mKSxiPU0uUElfT1ZFUl9UV08vKGctMSksdz1NLlBJX09WRVJfVFdPLWcqYjt3PDAmJihnLT1NYXRoLmNlaWwoTWF0aC5hYnModykvYikpO2xldCBPPTIqKGcqKGcrMikpLEU9ZT9uZXcgQXJyYXkoTyozKTp2b2lkIDAsVD0wLEM9d3csTj1UdyxJPWcqNCozLEQ9SS0xLHY9MCxMPW4/bmV3IEFycmF5KEkpOnZvaWQgMCxVLEEsUyxQLEI7Zm9yKHc9TS5QSV9PVkVSX1RXTyxDPWFhKHcsaSxfLG0sdSxsLGMscCxkLEMpLGUmJihFW1QrK109Qy54LEVbVCsrXT1DLnksRVtUKytdPUMueiksbiYmKExbRC0tXT1DLnosTFtELS1dPUMueSxMW0QtLV09Qy54KSx3PU0uUElfT1ZFUl9UV08tYixVPTE7VTxnKzE7KytVKXtpZihDPWFhKHcsaSxfLG0sdSxsLGMscCxkLEMpLE49YWEoTWF0aC5QSS13LGksXyxtLHUsbCxjLHAsZCxOKSxlKXtmb3IoRVtUKytdPUMueCxFW1QrK109Qy55LEVbVCsrXT1DLnosUz0yKlUrMixBPTE7QTxTLTE7KytBKVA9QS8oUy0xKSxCPWEubGVycChDLE4sUCxkMCksRVtUKytdPUIueCxFW1QrK109Qi55LEVbVCsrXT1CLno7RVtUKytdPU4ueCxFW1QrK109Ti55LEVbVCsrXT1OLnp9biYmKExbRC0tXT1DLnosTFtELS1dPUMueSxMW0QtLV09Qy54LExbdisrXT1OLngsTFt2KytdPU4ueSxMW3YrK109Ti56KSx3PU0uUElfT1ZFUl9UV08tKFUrMSkqYn1mb3IoVT1nO1U+MTstLVUpe2lmKHc9TS5QSV9PVkVSX1RXTy0oVS0xKSpiLEM9YWEoLXcsaSxfLG0sdSxsLGMscCxkLEMpLE49YWEodytNYXRoLlBJLGksXyxtLHUsbCxjLHAsZCxOKSxlKXtmb3IoRVtUKytdPUMueCxFW1QrK109Qy55LEVbVCsrXT1DLnosUz0yKihVLTEpKzIsQT0xO0E8Uy0xOysrQSlQPUEvKFMtMSksQj1hLmxlcnAoQyxOLFAsZDApLEVbVCsrXT1CLngsRVtUKytdPUIueSxFW1QrK109Qi56O0VbVCsrXT1OLngsRVtUKytdPU4ueSxFW1QrK109Ti56fW4mJihMW0QtLV09Qy56LExbRC0tXT1DLnksTFtELS1dPUMueCxMW3YrK109Ti54LExbdisrXT1OLnksTFt2KytdPU4ueil9dz1NLlBJX09WRVJfVFdPLEM9YWEoLXcsaSxfLG0sdSxsLGMscCxkLEMpO2xldCBqPXt9O3JldHVybiBlJiYoRVtUKytdPUMueCxFW1QrK109Qy55LEVbVCsrXT1DLnosai5wb3NpdGlvbnM9RSxqLm51bVB0cz1nKSxuJiYoTFtELS1dPUMueixMW0QtLV09Qy55LExbRC0tXT1DLngsai5vdXRlclBvc2l0aW9ucz1MKSxqfTtrcj1tMH0pO2Z1bmN0aW9uIEdNKHQpe2lmKHQ9eCh0LHguRU1QVFlfT0JKRUNUKSwhaCh0Lmdlb21ldHJ5KSl0aHJvdyBuZXcgRigib3B0aW9ucy5nZW9tZXRyeSBpcyByZXF1aXJlZC4iKTt0aGlzLmdlb21ldHJ5PXQuZ2VvbWV0cnksdGhpcy5tb2RlbE1hdHJpeD1zdC5jbG9uZSh4KHQubW9kZWxNYXRyaXgsc3QuSURFTlRJVFkpKSx0aGlzLmlkPXQuaWQsdGhpcy5waWNrUHJpbWl0aXZlPXQucGlja1ByaW1pdGl2ZSx0aGlzLmF0dHJpYnV0ZXM9eCh0LmF0dHJpYnV0ZXMse30pLHRoaXMud2VzdEhlbWlzcGhlcmVHZW9tZXRyeT12b2lkIDAsdGhpcy5lYXN0SGVtaXNwaGVyZUdlb21ldHJ5PXZvaWQgMH12YXIgY28sc2M9WigoKT0+e0l0KCk7ZnQoKTtIdCgpO1VuKCk7Y289R019KTtmdW5jdGlvbiBOdyh0LGUsbil7bGV0IG89ZS52ZXJ0ZXhGb3JtYXQscj1lLmNlbnRlcixpPWUuc2VtaU1ham9yQXhpcyxzPWUuc2VtaU1pbm9yQXhpcyxmPWUuZWxsaXBzb2lkLHU9ZS5zdFJvdGF0aW9uLGM9bj90Lmxlbmd0aC8zKjI6dC5sZW5ndGgvMyxsPWUuc2hhZG93Vm9sdW1lLHA9by5zdD9uZXcgRmxvYXQzMkFycmF5KGMqMik6dm9pZCAwLGQ9by5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxtPW8udGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGMqMyk6dm9pZCAwLF89by5iaXRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxnPWw/bmV3IEZsb2F0MzJBcnJheShjKjMpOnZvaWQgMCxiPTAsdz1SdyxPPVN3LEU9Q3csVD1uZXcgSm4oZiksQz1ULnByb2plY3QoZi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLFpwKSx4dyksTj1mLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocixmYSk7Zi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoTixOKTtsZXQgST1FdyxEPXpNO2lmKHUhPT0wKXtsZXQgQj1lZS5mcm9tQXhpc0FuZ2xlKE4sdSxnMCk7ST1RLmZyb21RdWF0ZXJuaW9uKEIsSSksQj1lZS5mcm9tQXhpc0FuZ2xlKE4sLXUsZzApLEQ9US5mcm9tUXVhdGVybmlvbihCLEQpfWVsc2UgST1RLmNsb25lKFEuSURFTlRJVFksSSksRD1RLmNsb25lKFEuSURFTlRJVFksRCk7bGV0IHY9dHQuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksUHcpLEw9dHQuZnJvbUVsZW1lbnRzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksTXcpLFU9dC5sZW5ndGgsQT1uP1U6MCxTPUEvMyoyO2ZvcihsZXQgQj0wO0I8VTtCKz0zKXtsZXQgaj1CKzEsSD1CKzIsaz1hLmZyb21BcnJheSh0LEIsZmEpO2lmKG8uc3Qpe2xldCBLPVEubXVsdGlwbHlCeVZlY3RvcihJLGssXzApLFg9VC5wcm9qZWN0KGYuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoSyxacCkseTApO2Euc3VidHJhY3QoWCxDLFgpLCRuLng9KFgueCtpKS8oMippKSwkbi55PShYLnkrcykvKDIqcyksdi54PU1hdGgubWluKCRuLngsdi54KSx2Lnk9TWF0aC5taW4oJG4ueSx2LnkpLEwueD1NYXRoLm1heCgkbi54LEwueCksTC55PU1hdGgubWF4KCRuLnksTC55KSxuJiYocFtiK1NdPSRuLngscFtiKzErU109JG4ueSkscFtiKytdPSRuLngscFtiKytdPSRuLnl9KG8ubm9ybWFsfHxvLnRhbmdlbnR8fG8uYml0YW5nZW50fHxsKSYmKHc9Zi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoayx3KSxsJiYoZ1tCK0FdPS13LngsZ1tqK0FdPS13LnksZ1tIK0FdPS13LnopLChvLm5vcm1hbHx8by50YW5nZW50fHxvLmJpdGFuZ2VudCkmJigoby50YW5nZW50fHxvLmJpdGFuZ2VudCkmJihPPWEubm9ybWFsaXplKGEuY3Jvc3MoYS5VTklUX1osdyxPKSxPKSxRLm11bHRpcGx5QnlWZWN0b3IoRCxPLE8pKSxvLm5vcm1hbCYmKGRbQl09dy54LGRbal09dy55LGRbSF09dy56LG4mJihkW0IrQV09LXcueCxkW2orQV09LXcueSxkW0grQV09LXcueikpLG8udGFuZ2VudCYmKG1bQl09Ty54LG1bal09Ty55LG1bSF09Ty56LG4mJihtW0IrQV09LU8ueCxtW2orQV09LU8ueSxtW0grQV09LU8ueikpLG8uYml0YW5nZW50JiYoRT1hLm5vcm1hbGl6ZShhLmNyb3NzKHcsTyxFKSxFKSxfW0JdPUUueCxfW2pdPUUueSxfW0hdPUUueixuJiYoX1tCK0FdPUUueCxfW2orQV09RS55LF9bSCtBXT1FLnopKSkpfWlmKG8uc3Qpe1U9cC5sZW5ndGg7Zm9yKGxldCBCPTA7QjxVO0IrPTIpcFtCXT0ocFtCXS12LngpLyhMLngtdi54KSxwW0IrMV09KHBbQisxXS12LnkpLyhMLnktdi55KX1sZXQgUD1uZXcgaWU7aWYoby5wb3NpdGlvbil7bGV0IEI9a3IucmFpc2VQb3NpdGlvbnNUb0hlaWdodCh0LGUsbik7UC5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkJ9KX1pZihvLnN0JiYoUC5zdD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6cH0pKSxvLm5vcm1hbCYmKFAubm9ybWFsPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpkfSkpLG8udGFuZ2VudCYmKFAudGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxvLmJpdGFuZ2VudCYmKFAuYml0YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpffSkpLGwmJihQLmV4dHJ1ZGVEaXJlY3Rpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmd9KSksbiYmaChlLm9mZnNldEF0dHJpYnV0ZSkpe2xldCBCPW5ldyBVaW50OEFycmF5KGMpO2lmKGUub2Zmc2V0QXR0cmlidXRlPT09ZmUuVE9QKUI9Qi5maWxsKDEsMCxjLzIpO2Vsc2V7bGV0IGo9ZS5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5OT05FPzA6MTtCPUIuZmlsbChqKX1QLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOkJ9KX1yZXR1cm4gUH1mdW5jdGlvbiBJdyh0KXtsZXQgZT1uZXcgQXJyYXkoMTIqKHQqKHQrMSkpLTYpLG49MCxvLHIsaSxzLGY7Zm9yKG89MCxpPTEscz0wO3M8MztzKyspZVtuKytdPWkrKyxlW24rK109byxlW24rK109aTtmb3Iocz0yO3M8dCsxOysrcyl7Zm9yKGk9cyoocysxKS0xLG89KHMtMSkqcy0xLGVbbisrXT1pKyssZVtuKytdPW8sZVtuKytdPWkscj0yKnMsZj0wO2Y8ci0xOysrZillW24rK109aSxlW24rK109bysrLGVbbisrXT1vLGVbbisrXT1pKyssZVtuKytdPW8sZVtuKytdPWk7ZVtuKytdPWkrKyxlW24rK109byxlW24rK109aX1mb3Iocj10KjIsKytpLCsrbyxzPTA7czxyLTE7KytzKWVbbisrXT1pLGVbbisrXT1vKyssZVtuKytdPW8sZVtuKytdPWkrKyxlW24rK109byxlW24rK109aTtmb3IoZVtuKytdPWksZVtuKytdPW8rKyxlW24rK109byxlW24rK109aSsrLGVbbisrXT1vKyssZVtuKytdPW8sKytvLHM9dC0xO3M+MTstLXMpe2ZvcihlW24rK109bysrLGVbbisrXT1vLGVbbisrXT1pLHI9MipzLGY9MDtmPHItMTsrK2YpZVtuKytdPWksZVtuKytdPW8rKyxlW24rK109byxlW24rK109aSsrLGVbbisrXT1vLGVbbisrXT1pO2VbbisrXT1vKyssZVtuKytdPW8rKyxlW24rK109aSsrfWZvcihzPTA7czwzO3MrKyllW24rK109bysrLGVbbisrXT1vLGVbbisrXT1pO3JldHVybiBlfWZ1bmN0aW9uIGpNKHQpe2xldCBlPXQuY2VudGVyO2NjPWEubXVsdGlwbHlCeVNjYWxhcih0LmVsbGlwc29pZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSxjYyksdC5oZWlnaHQsY2MpLGNjPWEuYWRkKGUsY2MsY2MpO2xldCBuPW5ldyBBdChjYyx0LnNlbWlNYWpvckF4aXMpLG89a3IuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnModCwhMCwhMSkscj1vLnBvc2l0aW9ucyxpPW8ubnVtUHRzLHM9Tncocix0LCExKSxmPUl3KGkpO3JldHVybiBmPUR0LmNyZWF0ZVR5cGVkQXJyYXkoci5sZW5ndGgvMyxmKSx7Ym91bmRpbmdTcGhlcmU6bixhdHRyaWJ1dGVzOnMsaW5kaWNlczpmfX1mdW5jdGlvbiBITSh0LGUpe2xldCBuPWUudmVydGV4Rm9ybWF0LG89ZS5jZW50ZXIscj1lLnNlbWlNYWpvckF4aXMsaT1lLnNlbWlNaW5vckF4aXMscz1lLmVsbGlwc29pZCxmPWUuaGVpZ2h0LHU9ZS5leHRydWRlZEhlaWdodCxjPWUuc3RSb3RhdGlvbixsPXQubGVuZ3RoLzMqMixwPW5ldyBGbG9hdDY0QXJyYXkobCozKSxkPW4uc3Q/bmV3IEZsb2F0MzJBcnJheShsKjIpOnZvaWQgMCxtPW4ubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkobCozKTp2b2lkIDAsXz1uLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShsKjMpOnZvaWQgMCxnPW4uYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkobCozKTp2b2lkIDAsYj1lLnNoYWRvd1ZvbHVtZSx3PWI/bmV3IEZsb2F0MzJBcnJheShsKjMpOnZvaWQgMCxPPTAsRT1SdyxUPVN3LEM9Q3csTj1uZXcgSm4ocyksST1OLnByb2plY3Qocy5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvLFpwKSx4dyksRD1zLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UobyxmYSk7cy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoRCxEKTtsZXQgdj1lZS5mcm9tQXhpc0FuZ2xlKEQsYyxnMCksTD1RLmZyb21RdWF0ZXJuaW9uKHYsRXcpLFU9dHQuZnJvbUVsZW1lbnRzKE51bWJlci5QT1NJVElWRV9JTkZJTklUWSxOdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksUHcpLEE9dHQuZnJvbUVsZW1lbnRzKE51bWJlci5ORUdBVElWRV9JTkZJTklUWSxOdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksTXcpLFM9dC5sZW5ndGgsUD1TLzMqMjtmb3IobGV0IGo9MDtqPFM7ais9Myl7bGV0IEg9aisxLGs9aisyLEs9YS5mcm9tQXJyYXkodCxqLGZhKSxYO2lmKG4uc3Qpe2xldCBvdD1RLm11bHRpcGx5QnlWZWN0b3IoTCxLLF8wKSxhdD1OLnByb2plY3Qocy5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvdCxacCkseTApO2Euc3VidHJhY3QoYXQsSSxhdCksJG4ueD0oYXQueCtyKS8oMipyKSwkbi55PShhdC55K2kpLygyKmkpLFUueD1NYXRoLm1pbigkbi54LFUueCksVS55PU1hdGgubWluKCRuLnksVS55KSxBLng9TWF0aC5tYXgoJG4ueCxBLngpLEEueT1NYXRoLm1heCgkbi55LEEueSksZFtPK1BdPSRuLngsZFtPKzErUF09JG4ueSxkW08rK109JG4ueCxkW08rK109JG4ueX1LPXMuc2NhbGVUb0dlb2RldGljU3VyZmFjZShLLEspLFg9YS5jbG9uZShLLF8wKSxFPXMuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEssRSksYiYmKHdbaitTXT0tRS54LHdbSCtTXT0tRS55LHdbaytTXT0tRS56KTtsZXQgUj1hLm11bHRpcGx5QnlTY2FsYXIoRSxmLE93KTtpZihLPWEuYWRkKEssUixLKSxSPWEubXVsdGlwbHlCeVNjYWxhcihFLHUsUiksWD1hLmFkZChYLFIsWCksbi5wb3NpdGlvbiYmKHBbaitTXT1YLngscFtIK1NdPVgueSxwW2srU109WC56LHBbal09Sy54LHBbSF09Sy55LHBba109Sy56KSxuLm5vcm1hbHx8bi50YW5nZW50fHxuLmJpdGFuZ2VudCl7Qz1hLmNsb25lKEUsQyk7bGV0IG90PWEuZnJvbUFycmF5KHQsKGorMyklUyxPdyk7YS5zdWJ0cmFjdChvdCxLLG90KTtsZXQgYXQ9YS5zdWJ0cmFjdChYLEsseTApO0U9YS5ub3JtYWxpemUoYS5jcm9zcyhhdCxvdCxFKSxFKSxuLm5vcm1hbCYmKG1bal09RS54LG1bSF09RS55LG1ba109RS56LG1baitTXT1FLngsbVtIK1NdPUUueSxtW2srU109RS56KSxuLnRhbmdlbnQmJihUPWEubm9ybWFsaXplKGEuY3Jvc3MoQyxFLFQpLFQpLF9bal09VC54LF9bSF09VC55LF9ba109VC56LF9baitTXT1ULngsX1tqKzErU109VC55LF9baisyK1NdPVQueiksbi5iaXRhbmdlbnQmJihnW2pdPUMueCxnW0hdPUMueSxnW2tdPUMueixnW2orU109Qy54LGdbSCtTXT1DLnksZ1trK1NdPUMueil9fWlmKG4uc3Qpe1M9ZC5sZW5ndGg7Zm9yKGxldCBqPTA7ajxTO2orPTIpZFtqXT0oZFtqXS1VLngpLyhBLngtVS54KSxkW2orMV09KGRbaisxXS1VLnkpLyhBLnktVS55KX1sZXQgQj1uZXcgaWU7aWYobi5wb3NpdGlvbiYmKEIucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpwfSkpLG4uc3QmJihCLnN0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpkfSkpLG4ubm9ybWFsJiYoQi5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSksbi50YW5nZW50JiYoQi50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpffSkpLG4uYml0YW5nZW50JiYoQi5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmd9KSksYiYmKEIuZXh0cnVkZURpcmVjdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6d30pKSxoKGUub2Zmc2V0QXR0cmlidXRlKSl7bGV0IGo9bmV3IFVpbnQ4QXJyYXkobCk7aWYoZS5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1Apaj1qLmZpbGwoMSwwLGwvMik7ZWxzZXtsZXQgSD1lLm9mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxO2o9ai5maWxsKEgpfUIuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6an0pfXJldHVybiBCfWZ1bmN0aW9uIHFNKHQpe2xldCBlPXQubGVuZ3RoLzMsbj1EdC5jcmVhdGVUeXBlZEFycmF5KGUsZSo2KSxvPTA7Zm9yKGxldCByPTA7cjxlO3IrKyl7bGV0IGk9cixzPXIrZSxmPShpKzEpJWUsdT1mK2U7bltvKytdPWksbltvKytdPXMsbltvKytdPWYsbltvKytdPWYsbltvKytdPXMsbltvKytdPXV9cmV0dXJuIG59ZnVuY3Rpb24gS00odCl7bGV0IGU9dC5jZW50ZXIsbj10LmVsbGlwc29pZCxvPXQuc2VtaU1ham9yQXhpcyxyPWEubXVsdGlwbHlCeVNjYWxhcihuLmdlb2RldGljU3VyZmFjZU5vcm1hbChlLGZhKSx0LmhlaWdodCxmYSk7WXAuY2VudGVyPWEuYWRkKGUscixZcC5jZW50ZXIpLFlwLnJhZGl1cz1vLHI9YS5tdWx0aXBseUJ5U2NhbGFyKG4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGUsciksdC5leHRydWRlZEhlaWdodCxyKSwkcC5jZW50ZXI9YS5hZGQoZSxyLCRwLmNlbnRlciksJHAucmFkaXVzPW87bGV0IGk9a3IuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnModCwhMCwhMCkscz1pLnBvc2l0aW9ucyxmPWkubnVtUHRzLHU9aS5vdXRlclBvc2l0aW9ucyxjPUF0LnVuaW9uKFlwLCRwKSxsPU53KHMsdCwhMCkscD1JdyhmKSxkPXAubGVuZ3RoO3AubGVuZ3RoPWQqMjtsZXQgbT1zLmxlbmd0aC8zO2ZvcihsZXQgVD0wO1Q8ZDtUKz0zKXBbVCtkXT1wW1QrMl0rbSxwW1QrMStkXT1wW1QrMV0rbSxwW1QrMitkXT1wW1RdK207bGV0IF89RHQuY3JlYXRlVHlwZWRBcnJheShtKjIvMyxwKSxnPW5ldyBVdCh7YXR0cmlidXRlczpsLGluZGljZXM6XyxwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFU30pLGI9SE0odSx0KTtwPXFNKHUpO2xldCB3PUR0LmNyZWF0ZVR5cGVkQXJyYXkodS5sZW5ndGgqMi8zLHApLE89bmV3IFV0KHthdHRyaWJ1dGVzOmIsaW5kaWNlczp3LHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTfSksRT1WZS5jb21iaW5lSW5zdGFuY2VzKFtuZXcgY28oe2dlb21ldHJ5Omd9KSxuZXcgY28oe2dlb21ldHJ5Ok99KV0pO3JldHVybntib3VuZGluZ1NwaGVyZTpjLGF0dHJpYnV0ZXM6RVswXS5hdHRyaWJ1dGVzLGluZGljZXM6RVswXS5pbmRpY2VzfX1mdW5jdGlvbiB2dyh0LGUsbixvLHIsaSxzKXtsZXQgdT1rci5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh7Y2VudGVyOnQsc2VtaU1ham9yQXhpczplLHNlbWlNaW5vckF4aXM6bixyb3RhdGlvbjpvLGdyYW51bGFyaXR5OnJ9LCExLCEwKS5vdXRlclBvc2l0aW9ucyxjPXUubGVuZ3RoLzMsbD1uZXcgQXJyYXkoYyk7Zm9yKGxldCBkPTA7ZDxjOysrZClsW2RdPWEuZnJvbUFycmF5KHUsZCozKTtsZXQgcD1OdC5mcm9tQ2FydGVzaWFuQXJyYXkobCxpLHMpO3JldHVybiBwLndpZHRoPk0uUEkmJihwLm5vcnRoPXAubm9ydGg+MD9NLlBJX09WRVJfVFdPLU0uRVBTSUxPTjc6cC5ub3J0aCxwLnNvdXRoPXAuc291dGg8MD9NLkVQU0lMT043LU0uUElfT1ZFUl9UV086cC5zb3V0aCxwLmVhc3Q9TS5QSSxwLndlc3Q9LU0uUEkpLHB9ZnVuY3Rpb24gZmkodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQuY2VudGVyLG49eCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpLG89dC5zZW1pTWFqb3JBeGlzLHI9dC5zZW1pTWlub3JBeGlzLGk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxzPXgodC52ZXJ0ZXhGb3JtYXQsZHQuREVGQVVMVCk7aWYoeS5kZWZpbmVkKCJvcHRpb25zLmNlbnRlciIsZSkseS50eXBlT2YubnVtYmVyKCJvcHRpb25zLnNlbWlNYWpvckF4aXMiLG8pLHkudHlwZU9mLm51bWJlcigib3B0aW9ucy5zZW1pTWlub3JBeGlzIixyKSxvPHIpdGhyb3cgbmV3IEYoInNlbWlNYWpvckF4aXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gdGhlIHNlbWlNaW5vckF4aXMuIik7aWYoaTw9MCl0aHJvdyBuZXcgRigiZ3JhbnVsYXJpdHkgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKTtsZXQgZj14KHQuaGVpZ2h0LDApLHU9eCh0LmV4dHJ1ZGVkSGVpZ2h0LGYpO3RoaXMuX2NlbnRlcj1hLmNsb25lKGUpLHRoaXMuX3NlbWlNYWpvckF4aXM9byx0aGlzLl9zZW1pTWlub3JBeGlzPXIsdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUobiksdGhpcy5fcm90YXRpb249eCh0LnJvdGF0aW9uLDApLHRoaXMuX3N0Um90YXRpb249eCh0LnN0Um90YXRpb24sMCksdGhpcy5faGVpZ2h0PU1hdGgubWF4KHUsZiksdGhpcy5fZ3JhbnVsYXJpdHk9aSx0aGlzLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUocyksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4odSxmKSx0aGlzLl9zaGFkb3dWb2x1bWU9eCh0LnNoYWRvd1ZvbHVtZSwhMSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRWxsaXBzZUdlb21ldHJ5Iix0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fcmVjdGFuZ2xlPXZvaWQgMCx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPXZvaWQgMH1mdW5jdGlvbiBXTSh0KXtsZXQgZT0tdC5fc3RSb3RhdGlvbjtpZihlPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBvPWtyLmNvbXB1dGVFbGxpcHNlUG9zaXRpb25zKHtjZW50ZXI6dC5fY2VudGVyLHNlbWlNYWpvckF4aXM6dC5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOnQuX3NlbWlNaW5vckF4aXMscm90YXRpb246dC5fcm90YXRpb24sZ3JhbnVsYXJpdHk6dC5fZ3JhbnVsYXJpdHl9LCExLCEwKS5vdXRlclBvc2l0aW9ucyxyPW8ubGVuZ3RoLzMsaT1uZXcgQXJyYXkocik7Zm9yKGxldCB1PTA7dTxyOysrdSlpW3VdPWEuZnJvbUFycmF5KG8sdSozKTtsZXQgcz10Ll9lbGxpcHNvaWQsZj10LnJlY3RhbmdsZTtyZXR1cm4gVXQuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHMoaSxlLHMsZil9dmFyIGZhLF8wLHkwLE93LCRuLEV3LHpNLGcwLFJ3LFN3LEN3LFpwLHh3LFB3LE13LGNjLFlwLCRwLEx3LER3LEZ3LGFpLEdyLEEwPVooKCk9Pnt2ZSgpO1VlKCk7RnQoKTtJZSgpO1h0KCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtoMCgpO1p0KCk7U2koKTtYZSgpO1llKCk7YW4oKTtzYygpO0xvKCk7c2koKTskZSgpO1d0KCk7Qm4oKTt0bigpO0tvKCk7VG4oKTtSbygpO2ZhPW5ldyBhLF8wPW5ldyBhLHkwPW5ldyBhLE93PW5ldyBhLCRuPW5ldyB0dCxFdz1uZXcgUSx6TT1uZXcgUSxnMD1uZXcgZWUsUnc9bmV3IGEsU3c9bmV3IGEsQ3c9bmV3IGEsWnA9bmV3IGN0LHh3PW5ldyBhLFB3PW5ldyB0dCxNdz1uZXcgdHQ7Y2M9bmV3IGE7WXA9bmV3IEF0LCRwPW5ldyBBdDtmaS5wYWNrZWRMZW5ndGg9YS5wYWNrZWRMZW5ndGgrJC5wYWNrZWRMZW5ndGgrZHQucGFja2VkTGVuZ3RoKzk7ZmkucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGEucGFjayh0Ll9jZW50ZXIsZSxuKSxuKz1hLnBhY2tlZExlbmd0aCwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1kdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX3NlbWlNYWpvckF4aXMsZVtuKytdPXQuX3NlbWlNaW5vckF4aXMsZVtuKytdPXQuX3JvdGF0aW9uLGVbbisrXT10Ll9zdFJvdGF0aW9uLGVbbisrXT10Ll9oZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fc2hhZG93Vm9sdW1lPzE6MCxlW25dPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtMdz1uZXcgYSxEdz1uZXcgJCxGdz1uZXcgZHQsYWk9e2NlbnRlcjpMdyxlbGxpcHNvaWQ6RHcsdmVydGV4Rm9ybWF0OkZ3LHNlbWlNYWpvckF4aXM6dm9pZCAwLHNlbWlNaW5vckF4aXM6dm9pZCAwLHJvdGF0aW9uOnZvaWQgMCxzdFJvdGF0aW9uOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsc2hhZG93Vm9sdW1lOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtmaS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPWEudW5wYWNrKHQsZSxMdyk7ZSs9YS5wYWNrZWRMZW5ndGg7bGV0IHI9JC51bnBhY2sodCxlLER3KTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT1kdC51bnBhY2sodCxlLEZ3KTtlKz1kdC5wYWNrZWRMZW5ndGg7bGV0IHM9dFtlKytdLGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdLHA9dFtlKytdLGQ9dFtlKytdLG09dFtlKytdPT09MSxfPXRbZV07cmV0dXJuIGgobik/KG4uX2NlbnRlcj1hLmNsb25lKG8sbi5fY2VudGVyKSxuLl9lbGxpcHNvaWQ9JC5jbG9uZShyLG4uX2VsbGlwc29pZCksbi5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKGksbi5fdmVydGV4Rm9ybWF0KSxuLl9zZW1pTWFqb3JBeGlzPXMsbi5fc2VtaU1pbm9yQXhpcz1mLG4uX3JvdGF0aW9uPXUsbi5fc3RSb3RhdGlvbj1jLG4uX2hlaWdodD1sLG4uX2dyYW51bGFyaXR5PXAsbi5fZXh0cnVkZWRIZWlnaHQ9ZCxuLl9zaGFkb3dWb2x1bWU9bSxuLl9vZmZzZXRBdHRyaWJ1dGU9Xz09PS0xP3ZvaWQgMDpfLG4pOihhaS5oZWlnaHQ9bCxhaS5leHRydWRlZEhlaWdodD1kLGFpLmdyYW51bGFyaXR5PXAsYWkuc3RSb3RhdGlvbj1jLGFpLnJvdGF0aW9uPXUsYWkuc2VtaU1ham9yQXhpcz1zLGFpLnNlbWlNaW5vckF4aXM9ZixhaS5zaGFkb3dWb2x1bWU9bSxhaS5vZmZzZXRBdHRyaWJ1dGU9Xz09PS0xP3ZvaWQgMDpfLG5ldyBmaShhaSkpfTtmaS5jb21wdXRlUmVjdGFuZ2xlPWZ1bmN0aW9uKHQsZSl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBuPXQuY2VudGVyLG89eCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpLHI9dC5zZW1pTWFqb3JBeGlzLGk9dC5zZW1pTWlub3JBeGlzLHM9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxmPXgodC5yb3RhdGlvbiwwKTtpZih5LmRlZmluZWQoIm9wdGlvbnMuY2VudGVyIixuKSx5LnR5cGVPZi5udW1iZXIoIm9wdGlvbnMuc2VtaU1ham9yQXhpcyIscikseS50eXBlT2YubnVtYmVyKCJvcHRpb25zLnNlbWlNaW5vckF4aXMiLGkpLHI8aSl0aHJvdyBuZXcgRigic2VtaU1ham9yQXhpcyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiBvciBlcXVhbCB0byB0aGUgc2VtaU1pbm9yQXhpcy4iKTtpZihzPD0wKXRocm93IG5ldyBGKCJncmFudWxhcml0eSBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO3JldHVybiB2dyhuLHIsaSxmLHMsbyxlKX07ZmkuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7aWYodC5fc2VtaU1ham9yQXhpczw9MHx8dC5fc2VtaU1pbm9yQXhpczw9MClyZXR1cm47bGV0IGU9dC5faGVpZ2h0LG49dC5fZXh0cnVkZWRIZWlnaHQsbz0hTS5lcXVhbHNFcHNpbG9uKGUsbiwwLE0uRVBTSUxPTjIpO3QuX2NlbnRlcj10Ll9lbGxpcHNvaWQuc2NhbGVUb0dlb2RldGljU3VyZmFjZSh0Ll9jZW50ZXIsdC5fY2VudGVyKTtsZXQgcj17Y2VudGVyOnQuX2NlbnRlcixzZW1pTWFqb3JBeGlzOnQuX3NlbWlNYWpvckF4aXMsc2VtaU1pbm9yQXhpczp0Ll9zZW1pTWlub3JBeGlzLGVsbGlwc29pZDp0Ll9lbGxpcHNvaWQscm90YXRpb246dC5fcm90YXRpb24saGVpZ2h0OmUsZ3JhbnVsYXJpdHk6dC5fZ3JhbnVsYXJpdHksdmVydGV4Rm9ybWF0OnQuX3ZlcnRleEZvcm1hdCxzdFJvdGF0aW9uOnQuX3N0Um90YXRpb259LGk7aWYobylyLmV4dHJ1ZGVkSGVpZ2h0PW4sci5zaGFkb3dWb2x1bWU9dC5fc2hhZG93Vm9sdW1lLHIub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxpPUtNKHIpO2Vsc2UgaWYoaT1qTShyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBzPWkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLGY9dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsdT1uZXcgVWludDhBcnJheShzLzMpLmZpbGwoZik7aS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnV9KX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOmkuYXR0cmlidXRlcyxpbmRpY2VzOmkuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTppLmJvdW5kaW5nU3BoZXJlLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07ZmkuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10Ll9ncmFudWxhcml0eSxyPXQuX2VsbGlwc29pZCxpPWUobyxyKSxzPW4obyxyKTtyZXR1cm4gbmV3IGZpKHtjZW50ZXI6dC5fY2VudGVyLHNlbWlNYWpvckF4aXM6dC5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOnQuX3NlbWlNaW5vckF4aXMsZWxsaXBzb2lkOnIscm90YXRpb246dC5fcm90YXRpb24sc3RSb3RhdGlvbjp0Ll9zdFJvdGF0aW9uLGdyYW51bGFyaXR5Om8sZXh0cnVkZWRIZWlnaHQ6aSxoZWlnaHQ6cyx2ZXJ0ZXhGb3JtYXQ6ZHQuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITB9KX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZmkucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3JlY3RhbmdsZSl8fCh0aGlzLl9yZWN0YW5nbGU9dncodGhpcy5fY2VudGVyLHRoaXMuX3NlbWlNYWpvckF4aXMsdGhpcy5fc2VtaU1pbm9yQXhpcyx0aGlzLl9yb3RhdGlvbix0aGlzLl9ncmFudWxhcml0eSx0aGlzLl9lbGxpcHNvaWQpKSx0aGlzLl9yZWN0YW5nbGV9fSx0ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKXx8KHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9V00odGhpcykpLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHN9fX0pO0dyPWZpfSk7ZnVuY3Rpb24gdmkodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucmFkaXVzO3kudHlwZU9mLm51bWJlcigicmFkaXVzIixlKTtsZXQgbj17Y2VudGVyOnQuY2VudGVyLHNlbWlNYWpvckF4aXM6ZSxzZW1pTWlub3JBeGlzOmUsZWxsaXBzb2lkOnQuZWxsaXBzb2lkLGhlaWdodDp0LmhlaWdodCxleHRydWRlZEhlaWdodDp0LmV4dHJ1ZGVkSGVpZ2h0LGdyYW51bGFyaXR5OnQuZ3JhbnVsYXJpdHksdmVydGV4Rm9ybWF0OnQudmVydGV4Rm9ybWF0LHN0Um90YXRpb246dC5zdFJvdGF0aW9uLHNoYWRvd1ZvbHVtZTp0LnNoYWRvd1ZvbHVtZX07dGhpcy5fZWxsaXBzZUdlb21ldHJ5PW5ldyBHcihuKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDaXJjbGVHZW9tZXRyeSJ9dmFyIEJ3LF9vLGIwLFV3PVooKCk9PntGdCgpO1h0KCk7SXQoKTtmdCgpO0EwKCk7WnQoKTtSbygpO3ZpLnBhY2tlZExlbmd0aD1Hci5wYWNrZWRMZW5ndGg7dmkucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLEdyLnBhY2sodC5fZWxsaXBzZUdlb21ldHJ5LGUsbil9O0J3PW5ldyBHcih7Y2VudGVyOm5ldyBhLHNlbWlNYWpvckF4aXM6MSxzZW1pTWlub3JBeGlzOjF9KSxfbz17Y2VudGVyOm5ldyBhLHJhZGl1czp2b2lkIDAsZWxsaXBzb2lkOiQuY2xvbmUoJC5kZWZhdWx0KSxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsdmVydGV4Rm9ybWF0Om5ldyBkdCxzdFJvdGF0aW9uOnZvaWQgMCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMCxzaGFkb3dWb2x1bWU6dm9pZCAwfTt2aS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2xldCBvPUdyLnVucGFjayh0LGUsQncpO3JldHVybiBfby5jZW50ZXI9YS5jbG9uZShvLl9jZW50ZXIsX28uY2VudGVyKSxfby5lbGxpcHNvaWQ9JC5jbG9uZShvLl9lbGxpcHNvaWQsX28uZWxsaXBzb2lkKSxfby5lbGxpcHNvaWQ9JC5jbG9uZShvLl9lbGxpcHNvaWQsQncuX2VsbGlwc29pZCksX28uaGVpZ2h0PW8uX2hlaWdodCxfby5leHRydWRlZEhlaWdodD1vLl9leHRydWRlZEhlaWdodCxfby5ncmFudWxhcml0eT1vLl9ncmFudWxhcml0eSxfby52ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoby5fdmVydGV4Rm9ybWF0LF9vLnZlcnRleEZvcm1hdCksX28uc3RSb3RhdGlvbj1vLl9zdFJvdGF0aW9uLF9vLnNoYWRvd1ZvbHVtZT1vLl9zaGFkb3dWb2x1bWUsaChuKT8oX28uc2VtaU1ham9yQXhpcz1vLl9zZW1pTWFqb3JBeGlzLF9vLnNlbWlNaW5vckF4aXM9by5fc2VtaU1pbm9yQXhpcyxuLl9lbGxpcHNlR2VvbWV0cnk9bmV3IEdyKF9vKSxuKTooX28ucmFkaXVzPW8uX3NlbWlNYWpvckF4aXMsbmV3IHZpKF9vKSl9O3ZpLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe3JldHVybiBHci5jcmVhdGVHZW9tZXRyeSh0Ll9lbGxpcHNlR2VvbWV0cnkpfTt2aS5jcmVhdGVTaGFkb3dWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuX2VsbGlwc2VHZW9tZXRyeS5fZ3JhbnVsYXJpdHkscj10Ll9lbGxpcHNlR2VvbWV0cnkuX2VsbGlwc29pZCxpPWUobyxyKSxzPW4obyxyKTtyZXR1cm4gbmV3IHZpKHtjZW50ZXI6dC5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXIscmFkaXVzOnQuX2VsbGlwc2VHZW9tZXRyeS5fc2VtaU1ham9yQXhpcyxlbGxpcHNvaWQ6cixzdFJvdGF0aW9uOnQuX2VsbGlwc2VHZW9tZXRyeS5fc3RSb3RhdGlvbixncmFudWxhcml0eTpvLGV4dHJ1ZGVkSGVpZ2h0OmksaGVpZ2h0OnMsdmVydGV4Rm9ybWF0OmR0LlBPU0lUSU9OX09OTFksc2hhZG93Vm9sdW1lOiEwfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHZpLnByb3RvdHlwZSx7cmVjdGFuZ2xlOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzZUdlb21ldHJ5LnJlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNlR2VvbWV0cnkudGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50c319fSk7YjA9dml9KTt2YXIgdzA9e307ZGUodzAse2RlZmF1bHQ6KCk9PllNfSk7ZnVuY3Rpb24gWE0odCxlKXtyZXR1cm4gaChlKSYmKHQ9YjAudW5wYWNrKHQsZSkpLHQuX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyPWEuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXIpLHQuX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQpLGIwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBZTSxUMD1aKCgpPT57RnQoKTtVdygpO2Z0KCk7WnQoKTtZTT1YTX0pO2Z1bmN0aW9uICRNKHQpe2xldCBlPXQuY2VudGVyO2FjPWEubXVsdGlwbHlCeVNjYWxhcih0LmVsbGlwc29pZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSxhYyksdC5oZWlnaHQsYWMpLGFjPWEuYWRkKGUsYWMsYWMpO2xldCBuPW5ldyBBdChhYyx0LnNlbWlNYWpvckF4aXMpLG89a3IuY29tcHV0ZUVsbGlwc2VQb3NpdGlvbnModCwhMSwhMCkub3V0ZXJQb3NpdGlvbnMscj1uZXcgaWUoe3Bvc2l0aW9uOm5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6a3IucmFpc2VQb3NpdGlvbnNUb0hlaWdodChvLHQsITEpfSl9KSxpPW8ubGVuZ3RoLzMscz1EdC5jcmVhdGVUeXBlZEFycmF5KGksaSoyKSxmPTA7Zm9yKGxldCB1PTA7dTxpOysrdSlzW2YrK109dSxzW2YrK109KHUrMSklaTtyZXR1cm57Ym91bmRpbmdTcGhlcmU6bixhdHRyaWJ1dGVzOnIsaW5kaWNlczpzfX1mdW5jdGlvbiBaTSh0KXtsZXQgZT10LmNlbnRlcixuPXQuZWxsaXBzb2lkLG89dC5zZW1pTWFqb3JBeGlzLHI9YS5tdWx0aXBseUJ5U2NhbGFyKG4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGUsVncpLHQuaGVpZ2h0LFZ3KTtRcC5jZW50ZXI9YS5hZGQoZSxyLFFwLmNlbnRlciksUXAucmFkaXVzPW8scj1hLm11bHRpcGx5QnlTY2FsYXIobi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZSxyKSx0LmV4dHJ1ZGVkSGVpZ2h0LHIpLEpwLmNlbnRlcj1hLmFkZChlLHIsSnAuY2VudGVyKSxKcC5yYWRpdXM9bztsZXQgaT1rci5jb21wdXRlRWxsaXBzZVBvc2l0aW9ucyh0LCExLCEwKS5vdXRlclBvc2l0aW9ucyxzPW5ldyBpZSh7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczprci5yYWlzZVBvc2l0aW9uc1RvSGVpZ2h0KGksdCwhMCl9KX0pO2k9cy5wb3NpdGlvbi52YWx1ZXM7bGV0IGY9QXQudW5pb24oUXAsSnApLHU9aS5sZW5ndGgvMztpZihoKHQub2Zmc2V0QXR0cmlidXRlKSl7bGV0IF89bmV3IFVpbnQ4QXJyYXkodSk7aWYodC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApXz1fLmZpbGwoMSwwLHUvMik7ZWxzZXtsZXQgZz10Lm9mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxO189Xy5maWxsKGcpfXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6X30pfWxldCBjPXgodC5udW1iZXJPZlZlcnRpY2FsTGluZXMsMTYpO2M9TS5jbGFtcChjLDAsdS8yKTtsZXQgbD1EdC5jcmVhdGVUeXBlZEFycmF5KHUsdSoyK2MqMik7dS89MjtsZXQgcD0wLGQ7Zm9yKGQ9MDtkPHU7KytkKWxbcCsrXT1kLGxbcCsrXT0oZCsxKSV1LGxbcCsrXT1kK3UsbFtwKytdPShkKzEpJXUrdTtsZXQgbTtpZihjPjApe2xldCBfPU1hdGgubWluKGMsdSk7bT1NYXRoLnJvdW5kKHUvXyk7bGV0IGc9TWF0aC5taW4obSpjLHUpO2ZvcihkPTA7ZDxnO2QrPW0pbFtwKytdPWQsbFtwKytdPWQrdX1yZXR1cm57Ym91bmRpbmdTcGhlcmU6ZixhdHRyaWJ1dGVzOnMsaW5kaWNlczpsfX1mdW5jdGlvbiB1YSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5jZW50ZXIsbj14KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCksbz10LnNlbWlNYWpvckF4aXMscj10LnNlbWlNaW5vckF4aXMsaT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJjZW50ZXIgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEYoInNlbWlNYWpvckF4aXMgaXMgcmVxdWlyZWQuIik7aWYoIWgocikpdGhyb3cgbmV3IEYoInNlbWlNaW5vckF4aXMgaXMgcmVxdWlyZWQuIik7aWYobzxyKXRocm93IG5ldyBGKCJzZW1pTWFqb3JBeGlzIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIHRoZSBzZW1pTWlub3JBeGlzLiIpO2lmKGk8PTApdGhyb3cgbmV3IEYoImdyYW51bGFyaXR5IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7bGV0IHM9eCh0LmhlaWdodCwwKSxmPXgodC5leHRydWRlZEhlaWdodCxzKTt0aGlzLl9jZW50ZXI9YS5jbG9uZShlKSx0aGlzLl9zZW1pTWFqb3JBeGlzPW8sdGhpcy5fc2VtaU1pbm9yQXhpcz1yLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG4pLHRoaXMuX3JvdGF0aW9uPXgodC5yb3RhdGlvbiwwKSx0aGlzLl9oZWlnaHQ9TWF0aC5tYXgoZixzKSx0aGlzLl9ncmFudWxhcml0eT1pLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PU1hdGgubWluKGYscyksdGhpcy5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPU1hdGgubWF4KHgodC5udW1iZXJPZlZlcnRpY2FsTGluZXMsMTYpLDApLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNlT3V0bGluZUdlb21ldHJ5In12YXIgVncsYWMsUXAsSnAsa3csR3csTGksenIsTzA9WigoKT0+e3ZlKCk7RnQoKTtGZSgpO0l0KCk7ZnQoKTtIdCgpO2gwKCk7WnQoKTtYZSgpO1llKCk7YW4oKTtMbygpOyRlKCk7V3QoKTt0bigpO1Z3PW5ldyBhLGFjPW5ldyBhO1FwPW5ldyBBdCxKcD1uZXcgQXQ7dWEucGFja2VkTGVuZ3RoPWEucGFja2VkTGVuZ3RoKyQucGFja2VkTGVuZ3RoKzg7dWEucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7cmV0dXJuIG49eChuLDApLGEucGFjayh0Ll9jZW50ZXIsZSxuKSxuKz1hLnBhY2tlZExlbmd0aCwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX3NlbWlNYWpvckF4aXMsZVtuKytdPXQuX3NlbWlNaW5vckF4aXMsZVtuKytdPXQuX3JvdGF0aW9uLGVbbisrXT10Ll9oZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O2t3PW5ldyBhLEd3PW5ldyAkLExpPXtjZW50ZXI6a3csZWxsaXBzb2lkOkd3LHNlbWlNYWpvckF4aXM6dm9pZCAwLHNlbWlNaW5vckF4aXM6dm9pZCAwLHJvdGF0aW9uOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTt1YS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvPWEudW5wYWNrKHQsZSxrdyk7ZSs9YS5wYWNrZWRMZW5ndGg7bGV0IHI9JC51bnBhY2sodCxlLEd3KTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT10W2UrK10scz10W2UrK10sZj10W2UrK10sdT10W2UrK10sYz10W2UrK10sbD10W2UrK10scD10W2UrK10sZD10W2VdO3JldHVybiBoKG4pPyhuLl9jZW50ZXI9YS5jbG9uZShvLG4uX2NlbnRlciksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3NlbWlNYWpvckF4aXM9aSxuLl9zZW1pTWlub3JBeGlzPXMsbi5fcm90YXRpb249ZixuLl9oZWlnaHQ9dSxuLl9ncmFudWxhcml0eT1jLG4uX2V4dHJ1ZGVkSGVpZ2h0PWwsbi5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPXAsbi5fb2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuKTooTGkuaGVpZ2h0PXUsTGkuZXh0cnVkZWRIZWlnaHQ9bCxMaS5ncmFudWxhcml0eT1jLExpLnJvdGF0aW9uPWYsTGkuc2VtaU1ham9yQXhpcz1pLExpLnNlbWlNaW5vckF4aXM9cyxMaS5udW1iZXJPZlZlcnRpY2FsTGluZXM9cCxMaS5vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG5ldyB1YShMaSkpfTt1YS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtpZih0Ll9zZW1pTWFqb3JBeGlzPD0wfHx0Ll9zZW1pTWlub3JBeGlzPD0wKXJldHVybjtsZXQgZT10Ll9oZWlnaHQsbj10Ll9leHRydWRlZEhlaWdodCxvPSFNLmVxdWFsc0Vwc2lsb24oZSxuLDAsTS5FUFNJTE9OMik7dC5fY2VudGVyPXQuX2VsbGlwc29pZC5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQuX2NlbnRlcix0Ll9jZW50ZXIpO2xldCByPXtjZW50ZXI6dC5fY2VudGVyLHNlbWlNYWpvckF4aXM6dC5fc2VtaU1ham9yQXhpcyxzZW1pTWlub3JBeGlzOnQuX3NlbWlNaW5vckF4aXMsZWxsaXBzb2lkOnQuX2VsbGlwc29pZCxyb3RhdGlvbjp0Ll9yb3RhdGlvbixoZWlnaHQ6ZSxncmFudWxhcml0eTp0Ll9ncmFudWxhcml0eSxudW1iZXJPZlZlcnRpY2FsTGluZXM6dC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzfSxpO2lmKG8pci5leHRydWRlZEhlaWdodD1uLHIub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxpPVpNKHIpO2Vsc2UgaWYoaT0kTShyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBzPWkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLGY9dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsdT1uZXcgVWludDhBcnJheShzLzMpLmZpbGwoZik7aS5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOnV9KX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOmkuYXR0cmlidXRlcyxpbmRpY2VzOmkuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOmkuYm91bmRpbmdTcGhlcmUsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTt6cj11YX0pO2Z1bmN0aW9uIGxhKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnJhZGl1czt5LnR5cGVPZi5udW1iZXIoInJhZGl1cyIsZSk7bGV0IG49e2NlbnRlcjp0LmNlbnRlcixzZW1pTWFqb3JBeGlzOmUsc2VtaU1pbm9yQXhpczplLGVsbGlwc29pZDp0LmVsbGlwc29pZCxoZWlnaHQ6dC5oZWlnaHQsZXh0cnVkZWRIZWlnaHQ6dC5leHRydWRlZEhlaWdodCxncmFudWxhcml0eTp0LmdyYW51bGFyaXR5LG51bWJlck9mVmVydGljYWxMaW5lczp0Lm51bWJlck9mVmVydGljYWxMaW5lc307dGhpcy5fZWxsaXBzZUdlb21ldHJ5PW5ldyB6cihuKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDaXJjbGVPdXRsaW5lR2VvbWV0cnkifXZhciBRTSxpcixFMCx6dz1aKCgpPT57RnQoKTtYdCgpO0l0KCk7ZnQoKTtPMCgpO1p0KCk7bGEucGFja2VkTGVuZ3RoPXpyLnBhY2tlZExlbmd0aDtsYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCksenIucGFjayh0Ll9lbGxpcHNlR2VvbWV0cnksZSxuKX07UU09bmV3IHpyKHtjZW50ZXI6bmV3IGEsc2VtaU1ham9yQXhpczoxLHNlbWlNaW5vckF4aXM6MX0pLGlyPXtjZW50ZXI6bmV3IGEscmFkaXVzOnZvaWQgMCxlbGxpcHNvaWQ6JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsbnVtYmVyT2ZWZXJ0aWNhbExpbmVzOnZvaWQgMCxzZW1pTWFqb3JBeGlzOnZvaWQgMCxzZW1pTWlub3JBeGlzOnZvaWQgMH07bGEudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz16ci51bnBhY2sodCxlLFFNKTtyZXR1cm4gaXIuY2VudGVyPWEuY2xvbmUoby5fY2VudGVyLGlyLmNlbnRlciksaXIuZWxsaXBzb2lkPSQuY2xvbmUoby5fZWxsaXBzb2lkLGlyLmVsbGlwc29pZCksaXIuaGVpZ2h0PW8uX2hlaWdodCxpci5leHRydWRlZEhlaWdodD1vLl9leHRydWRlZEhlaWdodCxpci5ncmFudWxhcml0eT1vLl9ncmFudWxhcml0eSxpci5udW1iZXJPZlZlcnRpY2FsTGluZXM9by5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGgobik/KGlyLnNlbWlNYWpvckF4aXM9by5fc2VtaU1ham9yQXhpcyxpci5zZW1pTWlub3JBeGlzPW8uX3NlbWlNaW5vckF4aXMsbi5fZWxsaXBzZUdlb21ldHJ5PW5ldyB6cihpciksbik6KGlyLnJhZGl1cz1vLl9zZW1pTWFqb3JBeGlzLG5ldyBsYShpcikpfTtsYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4genIuY3JlYXRlR2VvbWV0cnkodC5fZWxsaXBzZUdlb21ldHJ5KX07RTA9bGF9KTt2YXIgUjA9e307ZGUoUjAse2RlZmF1bHQ6KCk9PnROfSk7ZnVuY3Rpb24gSk0odCxlKXtyZXR1cm4gaChlKSYmKHQ9RTAudW5wYWNrKHQsZSkpLHQuX2VsbGlwc2VHZW9tZXRyeS5fY2VudGVyPWEuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9jZW50ZXIpLHQuX2VsbGlwc2VHZW9tZXRyeS5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzZUdlb21ldHJ5Ll9lbGxpcHNvaWQpLEUwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB0TixTMD1aKCgpPT57RnQoKTt6dygpO2Z0KCk7WnQoKTt0Tj1KTX0pO2Z1bmN0aW9uIGVOKHQsZSxuLG8pe2lmKHkuZGVmaW5lZCgiZXF1YWxzRXBzaWxvbiIsZSksIWgodCkpcmV0dXJuO249eChuLCExKTtsZXQgcj1oKG8pLGk9dC5sZW5ndGg7aWYoaTwyKXJldHVybiB0O2xldCBzLGY9dFswXSx1LGMsbD0wLHA9LTE7Zm9yKHM9MTtzPGk7KytzKXU9dFtzXSxlKGYsdSxqdyk/KGgoYyl8fChjPXQuc2xpY2UoMCxzKSxsPXMtMSxwPTApLHImJm8ucHVzaChzKSk6KGgoYykmJihjLnB1c2godSksbD1zLHImJihwPW8ubGVuZ3RoKSksZj11KTtyZXR1cm4gbiYmZSh0WzBdLHRbaS0xXSxqdykmJihyJiYoaChjKT9vLnNwbGljZShwLDAsbCk6by5wdXNoKGktMSkpLGgoYyk/Yy5sZW5ndGgtPTE6Yz10LnNsaWNlKDAsLTEpKSxoKGMpP2M6dH12YXIgancseG4sanI9WigoKT0+e1h0KCk7SXQoKTtmdCgpO1d0KCk7anc9TS5FUFNJTE9OMTA7eG49ZU59KTtmdW5jdGlvbiBJbih0LGUsbixvKXt0aGlzLng9eCh0LDApLHRoaXMueT14KGUsMCksdGhpcy53aWR0aD14KG4sMCksdGhpcy5oZWlnaHQ9eChvLDApfXZhciBIdyxuTixvTixIcixQZj1aKCgpPT57VWUoKTtJZSgpO1h0KCk7SXQoKTtmdCgpO1p0KCk7U2koKTtrcygpO1RuKCk7SW4ucGFja2VkTGVuZ3RoPTQ7SW4ucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LngsZVtuKytdPXQueSxlW24rK109dC53aWR0aCxlW25dPXQuaGVpZ2h0LGV9O0luLnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBJbiksbi54PXRbZSsrXSxuLnk9dFtlKytdLG4ud2lkdGg9dFtlKytdLG4uaGVpZ2h0PXRbZV0sbn07SW4uZnJvbVBvaW50cz1mdW5jdGlvbih0LGUpe2lmKGgoZSl8fChlPW5ldyBJbiksIWgodCl8fHQubGVuZ3RoPT09MClyZXR1cm4gZS54PTAsZS55PTAsZS53aWR0aD0wLGUuaGVpZ2h0PTAsZTtsZXQgbj10Lmxlbmd0aCxvPXRbMF0ueCxyPXRbMF0ueSxpPXRbMF0ueCxzPXRbMF0ueTtmb3IobGV0IGY9MTtmPG47ZisrKXtsZXQgdT10W2ZdLGM9dS54LGw9dS55O289TWF0aC5taW4oYyxvKSxpPU1hdGgubWF4KGMsaSkscj1NYXRoLm1pbihsLHIpLHM9TWF0aC5tYXgobCxzKX1yZXR1cm4gZS54PW8sZS55PXIsZS53aWR0aD1pLW8sZS5oZWlnaHQ9cy1yLGV9O0h3PW5ldyBKbixuTj1uZXcgY3Qsb049bmV3IGN0O0luLmZyb21SZWN0YW5nbGU9ZnVuY3Rpb24odCxlLG4pe2lmKGgobil8fChuPW5ldyBJbiksIWgodCkpcmV0dXJuIG4ueD0wLG4ueT0wLG4ud2lkdGg9MCxuLmhlaWdodD0wLG47SHcuX2VsbGlwc29pZD0kLmRlZmF1bHQsZT14KGUsSHcpO2xldCBvPWUucHJvamVjdChOdC5zb3V0aHdlc3QodCxuTikpLHI9ZS5wcm9qZWN0KE50Lm5vcnRoZWFzdCh0LG9OKSk7cmV0dXJuIHR0LnN1YnRyYWN0KHIsbyxyKSxuLng9by54LG4ueT1vLnksbi53aWR0aD1yLngsbi5oZWlnaHQ9ci55LG59O0luLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS54PXQueCxlLnk9dC55LGUud2lkdGg9dC53aWR0aCxlLmhlaWdodD10LmhlaWdodCxlKTpuZXcgSW4odC54LHQueSx0LndpZHRoLHQuaGVpZ2h0KX07SW4udW5pb249ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSksaChuKXx8KG49bmV3IEluKTtsZXQgbz1NYXRoLm1pbih0LngsZS54KSxyPU1hdGgubWluKHQueSxlLnkpLGk9TWF0aC5tYXgodC54K3Qud2lkdGgsZS54K2Uud2lkdGgpLHM9TWF0aC5tYXgodC55K3QuaGVpZ2h0LGUueStlLmhlaWdodCk7cmV0dXJuIG4ueD1vLG4ueT1yLG4ud2lkdGg9aS1vLG4uaGVpZ2h0PXMtcixufTtJbi5leHBhbmQ9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KSx5LnR5cGVPZi5vYmplY3QoInBvaW50IixlKSxuPUluLmNsb25lKHQsbik7bGV0IG89ZS54LW4ueCxyPWUueS1uLnk7cmV0dXJuIG8+bi53aWR0aD9uLndpZHRoPW86bzwwJiYobi53aWR0aC09byxuLng9ZS54KSxyPm4uaGVpZ2h0P24uaGVpZ2h0PXI6cjwwJiYobi5oZWlnaHQtPXIsbi55PWUueSksbn07SW4uaW50ZXJzZWN0PWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKTtsZXQgbj10Lngsbz10Lnkscj1lLngsaT1lLnk7cmV0dXJuIG4+citlLndpZHRofHxuK3Qud2lkdGg8cnx8byt0LmhlaWdodDxpfHxvPmkrZS5oZWlnaHQ/U24uT1VUU0lERTpTbi5JTlRFUlNFQ1RJTkd9O0luLmVxdWFscz1mdW5jdGlvbih0LGUpe3JldHVybiB0PT09ZXx8aCh0KSYmaChlKSYmdC54PT09ZS54JiZ0Lnk9PT1lLnkmJnQud2lkdGg9PT1lLndpZHRoJiZ0LmhlaWdodD09PWUuaGVpZ2h0fTtJbi5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIEluLmNsb25lKHRoaXMsdCl9O0luLnByb3RvdHlwZS5pbnRlcnNlY3Q9ZnVuY3Rpb24odCl7cmV0dXJuIEluLmludGVyc2VjdCh0aGlzLHQpfTtJbi5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBJbi5lcXVhbHModGhpcyx0KX07SHI9SW59KTtmdW5jdGlvbiBEbyh0LGUsbil7dGhpcy5taW5pbXVtPWEuY2xvbmUoeCh0LGEuWkVSTykpLHRoaXMubWF4aW11bT1hLmNsb25lKHgoZSxhLlpFUk8pKSxoKG4pP249YS5jbG9uZShuKTpuPWEubWlkcG9pbnQodGhpcy5taW5pbXVtLHRoaXMubWF4aW11bSxuZXcgYSksdGhpcy5jZW50ZXI9bn12YXIgdGQsRGksTWY9WigoKT0+e0Z0KCk7WHQoKTtJdCgpO2Z0KCk7a3MoKTtEby5mcm9tQ29ybmVycz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgibWluaW11bSIsdCkseS5kZWZpbmVkKCJtYXhpbXVtIixlKSxoKG4pfHwobj1uZXcgRG8pLG4ubWluaW11bT1hLmNsb25lKHQsbi5taW5pbXVtKSxuLm1heGltdW09YS5jbG9uZShlLG4ubWF4aW11bSksbi5jZW50ZXI9YS5taWRwb2ludCh0LGUsbi5jZW50ZXIpLG59O0RvLmZyb21Qb2ludHM9ZnVuY3Rpb24odCxlKXtpZihoKGUpfHwoZT1uZXcgRG8pLCFoKHQpfHx0Lmxlbmd0aD09PTApcmV0dXJuIGUubWluaW11bT1hLmNsb25lKGEuWkVSTyxlLm1pbmltdW0pLGUubWF4aW11bT1hLmNsb25lKGEuWkVSTyxlLm1heGltdW0pLGUuY2VudGVyPWEuY2xvbmUoYS5aRVJPLGUuY2VudGVyKSxlO2xldCBuPXRbMF0ueCxvPXRbMF0ueSxyPXRbMF0ueixpPXRbMF0ueCxzPXRbMF0ueSxmPXRbMF0ueix1PXQubGVuZ3RoO2ZvcihsZXQgcD0xO3A8dTtwKyspe2xldCBkPXRbcF0sbT1kLngsXz1kLnksZz1kLno7bj1NYXRoLm1pbihtLG4pLGk9TWF0aC5tYXgobSxpKSxvPU1hdGgubWluKF8sbykscz1NYXRoLm1heChfLHMpLHI9TWF0aC5taW4oZyxyKSxmPU1hdGgubWF4KGcsZil9bGV0IGM9ZS5taW5pbXVtO2MueD1uLGMueT1vLGMuej1yO2xldCBsPWUubWF4aW11bTtyZXR1cm4gbC54PWksbC55PXMsbC56PWYsZS5jZW50ZXI9YS5taWRwb2ludChjLGwsZS5jZW50ZXIpLGV9O0RvLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5taW5pbXVtPWEuY2xvbmUodC5taW5pbXVtLGUubWluaW11bSksZS5tYXhpbXVtPWEuY2xvbmUodC5tYXhpbXVtLGUubWF4aW11bSksZS5jZW50ZXI9YS5jbG9uZSh0LmNlbnRlcixlLmNlbnRlciksZSk6bmV3IERvKHQubWluaW11bSx0Lm1heGltdW0sdC5jZW50ZXIpfTtEby5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJmEuZXF1YWxzKHQuY2VudGVyLGUuY2VudGVyKSYmYS5lcXVhbHModC5taW5pbXVtLGUubWluaW11bSkmJmEuZXF1YWxzKHQubWF4aW11bSxlLm1heGltdW0pfTt0ZD1uZXcgYTtEby5pbnRlcnNlY3RQbGFuZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiYm94Iix0KSx5LmRlZmluZWQoInBsYW5lIixlKSx0ZD1hLnN1YnRyYWN0KHQubWF4aW11bSx0Lm1pbmltdW0sdGQpO2xldCBuPWEubXVsdGlwbHlCeVNjYWxhcih0ZCwuNSx0ZCksbz1lLm5vcm1hbCxyPW4ueCpNYXRoLmFicyhvLngpK24ueSpNYXRoLmFicyhvLnkpK24ueipNYXRoLmFicyhvLnopLGk9YS5kb3QodC5jZW50ZXIsbykrZS5kaXN0YW5jZTtyZXR1cm4gaS1yPjA/U24uSU5TSURFOmkrcjwwP1NuLk9VVFNJREU6U24uSU5URVJTRUNUSU5HfTtEby5wcm90b3R5cGUuY2xvbmU9ZnVuY3Rpb24odCl7cmV0dXJuIERvLmNsb25lKHRoaXMsdCl9O0RvLnByb3RvdHlwZS5pbnRlcnNlY3RQbGFuZT1mdW5jdGlvbih0KXtyZXR1cm4gRG8uaW50ZXJzZWN0UGxhbmUodGhpcyx0KX07RG8ucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4gRG8uZXF1YWxzKHRoaXMsdCl9O0RpPURvfSk7ZnVuY3Rpb24gdWkodCxlKXtpZih5LmRlZmluZWQoIm9yaWdpbiIsdCksZT14KGUsJC5kZWZhdWx0KSx0PWUuc2NhbGVUb0dlb2RldGljU3VyZmFjZSh0KSwhaCh0KSl0aHJvdyBuZXcgRigib3JpZ2luIG11c3Qgbm90IGJlIGF0IHRoZSBjZW50ZXIgb2YgdGhlIGVsbGlwc29pZC4iKTtsZXQgbj1Yby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZSh0LGUpO3RoaXMuX2VsbGlwc29pZD1lLHRoaXMuX29yaWdpbj10LHRoaXMuX3hBeGlzPWEuZnJvbUNhcnRlc2lhbjQoc3QuZ2V0Q29sdW1uKG4sMCxDMCkpLHRoaXMuX3lBeGlzPWEuZnJvbUNhcnRlc2lhbjQoc3QuZ2V0Q29sdW1uKG4sMSxDMCkpO2xldCBvPWEuZnJvbUNhcnRlc2lhbjQoc3QuZ2V0Q29sdW1uKG4sMixDMCkpO3RoaXMuX3BsYW5lPW9uLmZyb21Qb2ludE5vcm1hbCh0LG8pfXZhciBDMCxyTixxdyxlZCxpTix5byxwYT1aKCgpPT57TWYoKTtVZSgpO0Z0KCk7aHIoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7dGMoKTtVbigpO2ZzKCk7VnAoKTtjcygpO0MwPW5ldyBoZTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyh1aS5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19LG9yaWdpbjp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX29yaWdpbn19LHBsYW5lOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGxhbmV9fSx4QXhpczp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3hBeGlzfX0seUF4aXM6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl95QXhpc319LHpBeGlzOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fcGxhbmUubm9ybWFsfX19KTtyTj1uZXcgRGk7dWkuZnJvbVBvaW50cz1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCk7bGV0IG49RGkuZnJvbVBvaW50cyh0LHJOKTtyZXR1cm4gbmV3IHVpKG4uY2VudGVyLGUpfTtxdz1uZXcgUXMsZWQ9bmV3IGE7dWkucHJvdG90eXBlLnByb2plY3RQb2ludE9udG9QbGFuZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFuIix0KTtsZXQgbj1xdztuLm9yaWdpbj10LGEubm9ybWFsaXplKHQsbi5kaXJlY3Rpb24pO2xldCBvPWhvLnJheVBsYW5lKG4sdGhpcy5fcGxhbmUsZWQpO2lmKGgobyl8fChhLm5lZ2F0ZShuLmRpcmVjdGlvbixuLmRpcmVjdGlvbiksbz1oby5yYXlQbGFuZShuLHRoaXMuX3BsYW5lLGVkKSksaChvKSl7bGV0IHI9YS5zdWJ0cmFjdChvLHRoaXMuX29yaWdpbixvKSxpPWEuZG90KHRoaXMuX3hBeGlzLHIpLHM9YS5kb3QodGhpcy5feUF4aXMscik7cmV0dXJuIGgoZSk/KGUueD1pLGUueT1zLGUpOm5ldyB0dChpLHMpfX07dWkucHJvdG90eXBlLnByb2plY3RQb2ludHNPbnRvUGxhbmU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNhcnRlc2lhbnMiLHQpLGgoZSl8fChlPVtdKTtsZXQgbj0wLG89dC5sZW5ndGg7Zm9yKGxldCByPTA7cjxvO3IrKyl7bGV0IGk9dGhpcy5wcm9qZWN0UG9pbnRPbnRvUGxhbmUodFtyXSxlW25dKTtoKGkpJiYoZVtuXT1pLG4rKyl9cmV0dXJuIGUubGVuZ3RoPW4sZX07dWkucHJvdG90eXBlLnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNhcnRlc2lhbiIsdCksaChlKXx8KGU9bmV3IHR0KTtsZXQgbj1xdztuLm9yaWdpbj10LGEuY2xvbmUodGhpcy5fcGxhbmUubm9ybWFsLG4uZGlyZWN0aW9uKTtsZXQgbz1oby5yYXlQbGFuZShuLHRoaXMuX3BsYW5lLGVkKTtoKG8pfHwoYS5uZWdhdGUobi5kaXJlY3Rpb24sbi5kaXJlY3Rpb24pLG89aG8ucmF5UGxhbmUobix0aGlzLl9wbGFuZSxlZCkpO2xldCByPWEuc3VidHJhY3Qobyx0aGlzLl9vcmlnaW4sbyksaT1hLmRvdCh0aGlzLl94QXhpcyxyKSxzPWEuZG90KHRoaXMuX3lBeGlzLHIpO3JldHVybiBlLng9aSxlLnk9cyxlfTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50c1RvTmVhcmVzdE9uUGxhbmU9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNhcnRlc2lhbnMiLHQpLGgoZSl8fChlPVtdKTtsZXQgbj10Lmxlbmd0aDtlLmxlbmd0aD1uO2ZvcihsZXQgbz0wO288bjtvKyspZVtvXT10aGlzLnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmUodFtvXSxlW29dKTtyZXR1cm4gZX07aU49bmV3IGE7dWkucHJvdG90eXBlLnByb2plY3RQb2ludE9udG9FbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNhcnRlc2lhbiIsdCksaChlKXx8KGU9bmV3IGEpO2xldCBuPXRoaXMuX2VsbGlwc29pZCxvPXRoaXMuX29yaWdpbixyPXRoaXMuX3hBeGlzLGk9dGhpcy5feUF4aXMscz1pTjtyZXR1cm4gYS5tdWx0aXBseUJ5U2NhbGFyKHIsdC54LHMpLGU9YS5hZGQobyxzLGUpLGEubXVsdGlwbHlCeVNjYWxhcihpLHQueSxzKSxhLmFkZChlLHMsZSksbi5zY2FsZVRvR2VvY2VudHJpY1N1cmZhY2UoZSxlKSxlfTt1aS5wcm90b3R5cGUucHJvamVjdFBvaW50c09udG9FbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXt5LmRlZmluZWQoImNhcnRlc2lhbnMiLHQpO2xldCBuPXQubGVuZ3RoO2goZSk/ZS5sZW5ndGg9bjplPW5ldyBBcnJheShuKTtmb3IobGV0IG89MDtvPG47KytvKWVbb109dGhpcy5wcm9qZWN0UG9pbnRPbnRvRWxsaXBzb2lkKHRbb10sZVtvXSk7cmV0dXJuIGV9O3lvPXVpfSk7ZnVuY3Rpb24gQmUodCxlKXt0aGlzLmNlbnRlcj1hLmNsb25lKHgodCxhLlpFUk8pKSx0aGlzLmhhbGZBeGVzPVEuY2xvbmUoeChlLFEuWkVSTykpfWZ1bmN0aW9uIEt3KHQsZSxuLG8scixpLHMsZix1LGMsbCl7aWYoIWgocil8fCFoKGkpfHwhaChzKXx8IWgoZil8fCFoKHUpfHwhaChjKSl0aHJvdyBuZXcgRigiYWxsIGV4dGVudHMgKG1pbmltdW0vbWF4aW11bSBYL1kvWikgYXJlIHJlcXVpcmVkLiIpO2gobCl8fChsPW5ldyBCZSk7bGV0IHA9bC5oYWxmQXhlcztRLnNldENvbHVtbihwLDAsZSxwKSxRLnNldENvbHVtbihwLDEsbixwKSxRLnNldENvbHVtbihwLDIsbyxwKTtsZXQgZD1adztkLng9KHIraSkvMixkLnk9KHMrZikvMixkLno9KHUrYykvMjtsZXQgbT1tTjttLng9KGktcikvMixtLnk9KGYtcykvMixtLno9KGMtdSkvMjtsZXQgXz1sLmNlbnRlcjtyZXR1cm4gZD1RLm11bHRpcGx5QnlWZWN0b3IocCxkLGQpLGEuYWRkKHQsZCxfKSxRLm11bHRpcGx5QnlTY2FsZShwLG0scCksbH12YXIgc04sY04sYU4sZk4sdU4sbE4scE4sZE4sWncsbU4sV3csaE4sX04seU4sZ04sQU4sYk4sd04sWHcsVE4sWXcsT04sRU4sUk4sU04sQ04seE4sUE4sTU4sTk4sSU4sdk4sTE4sRE4sRk4sQk4sUXcsSncsdFQsVU4sJHcsVk4sa04sR04sek4sak4sSE4scU4sS04sU28sZGE9WigoKT0+e3ZlKCk7VWUoKTtGdCgpO0llKCk7WHQoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO3BhKCk7a3MoKTtIbCgpO1d0KCk7Qm4oKTtVbigpO2ZzKCk7VG4oKTtCZS5wYWNrZWRMZW5ndGg9YS5wYWNrZWRMZW5ndGgrUS5wYWNrZWRMZW5ndGg7QmUucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGEucGFjayh0LmNlbnRlcixlLG4pLFEucGFjayh0LmhhbGZBeGVzLGUsbithLnBhY2tlZExlbmd0aCksZX07QmUudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IEJlKSxhLnVucGFjayh0LGUsbi5jZW50ZXIpLFEudW5wYWNrKHQsZSthLnBhY2tlZExlbmd0aCxuLmhhbGZBeGVzKSxufTtzTj1uZXcgYSxjTj1uZXcgYSxhTj1uZXcgYSxmTj1uZXcgYSx1Tj1uZXcgYSxsTj1uZXcgYSxwTj1uZXcgUSxkTj17dW5pdGFyeTpuZXcgUSxkaWFnb25hbDpuZXcgUX07QmUuZnJvbVBvaW50cz1mdW5jdGlvbih0LGUpe2lmKGgoZSl8fChlPW5ldyBCZSksIWgodCl8fHQubGVuZ3RoPT09MClyZXR1cm4gZS5oYWxmQXhlcz1RLlpFUk8sZS5jZW50ZXI9YS5aRVJPLGU7bGV0IG4sbz10Lmxlbmd0aCxyPWEuY2xvbmUodFswXSxzTik7Zm9yKG49MTtuPG87bisrKWEuYWRkKHIsdFtuXSxyKTtsZXQgaT0xL287YS5tdWx0aXBseUJ5U2NhbGFyKHIsaSxyKTtsZXQgcz0wLGY9MCx1PTAsYz0wLGw9MCxwPTAsZDtmb3Iobj0wO248bztuKyspZD1hLnN1YnRyYWN0KHRbbl0scixjTikscys9ZC54KmQueCxmKz1kLngqZC55LHUrPWQueCpkLnosYys9ZC55KmQueSxsKz1kLnkqZC56LHArPWQueipkLno7cyo9aSxmKj1pLHUqPWksYyo9aSxsKj1pLHAqPWk7bGV0IG09cE47bVswXT1zLG1bMV09ZixtWzJdPXUsbVszXT1mLG1bNF09YyxtWzVdPWwsbVs2XT11LG1bN109bCxtWzhdPXA7bGV0IF89US5jb21wdXRlRWlnZW5EZWNvbXBvc2l0aW9uKG0sZE4pLGc9US5jbG9uZShfLnVuaXRhcnksZS5oYWxmQXhlcyksYj1RLmdldENvbHVtbihnLDAsZk4pLHc9US5nZXRDb2x1bW4oZywxLHVOKSxPPVEuZ2V0Q29sdW1uKGcsMixsTiksRT0tTnVtYmVyLk1BWF9WQUxVRSxUPS1OdW1iZXIuTUFYX1ZBTFVFLEM9LU51bWJlci5NQVhfVkFMVUUsTj1OdW1iZXIuTUFYX1ZBTFVFLEk9TnVtYmVyLk1BWF9WQUxVRSxEPU51bWJlci5NQVhfVkFMVUU7Zm9yKG49MDtuPG87bisrKWQ9dFtuXSxFPU1hdGgubWF4KGEuZG90KGIsZCksRSksVD1NYXRoLm1heChhLmRvdCh3LGQpLFQpLEM9TWF0aC5tYXgoYS5kb3QoTyxkKSxDKSxOPU1hdGgubWluKGEuZG90KGIsZCksTiksST1NYXRoLm1pbihhLmRvdCh3LGQpLEkpLEQ9TWF0aC5taW4oYS5kb3QoTyxkKSxEKTtiPWEubXVsdGlwbHlCeVNjYWxhcihiLC41KihOK0UpLGIpLHc9YS5tdWx0aXBseUJ5U2NhbGFyKHcsLjUqKEkrVCksdyksTz1hLm11bHRpcGx5QnlTY2FsYXIoTywuNSooRCtDKSxPKTtsZXQgdj1hLmFkZChiLHcsZS5jZW50ZXIpO2EuYWRkKHYsTyx2KTtsZXQgTD1hTjtyZXR1cm4gTC54PUUtTixMLnk9VC1JLEwuej1DLUQsYS5tdWx0aXBseUJ5U2NhbGFyKEwsLjUsTCksUS5tdWx0aXBseUJ5U2NhbGUoZS5oYWxmQXhlcyxMLGUuaGFsZkF4ZXMpLGV9O1p3PW5ldyBhLG1OPW5ldyBhO1d3PW5ldyBjdCxoTj1uZXcgYSxfTj1uZXcgY3QseU49bmV3IGN0LGdOPW5ldyBjdCxBTj1uZXcgY3QsYk49bmV3IGN0LHdOPW5ldyBhLFh3PW5ldyBhLFROPW5ldyBhLFl3PW5ldyBhLE9OPW5ldyBhLEVOPW5ldyB0dCxSTj1uZXcgdHQsU049bmV3IHR0LENOPW5ldyB0dCx4Tj1uZXcgdHQsUE49bmV3IGEsTU49bmV3IGEsTk49bmV3IGEsSU49bmV3IGEsdk49bmV3IHR0LExOPW5ldyBhLEROPW5ldyBhLEZOPW5ldyBhLEJOPW5ldyBvbihhLlVOSVRfWCwwKTtCZS5mcm9tUmVjdGFuZ2xlPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInJlY3RhbmdsZSBpcyByZXF1aXJlZCIpO2lmKHQud2lkdGg8MHx8dC53aWR0aD5NLlRXT19QSSl0aHJvdyBuZXcgRigiUmVjdGFuZ2xlIHdpZHRoIG11c3QgYmUgYmV0d2VlbiAwIGFuZCAyICogcGkiKTtpZih0LmhlaWdodDwwfHx0LmhlaWdodD5NLlBJKXRocm93IG5ldyBGKCJSZWN0YW5nbGUgaGVpZ2h0IG11c3QgYmUgYmV0d2VlbiAwIGFuZCBwaSIpO2lmKGgobykmJiFNLmVxdWFsc0Vwc2lsb24oby5yYWRpaS54LG8ucmFkaWkueSxNLkVQU0lMT04xNSkpdGhyb3cgbmV3IEYoIkVsbGlwc29pZCBtdXN0IGJlIGFuIGVsbGlwc29pZCBvZiByZXZvbHV0aW9uIChyYWRpaS54ID09IHJhZGlpLnkpIik7ZT14KGUsMCksbj14KG4sMCksbz14KG8sJC5kZWZhdWx0KTtsZXQgaSxzLGYsdSxjLGwscDtpZih0LndpZHRoPD1NLlBJKXtsZXQgST1OdC5jZW50ZXIodCxXdyksRD1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEksaE4pLHY9bmV3IHlvKEQsbyk7cD12LnBsYW5lO2xldCBMPUkubG9uZ2l0dWRlLFU9dC5zb3V0aDwwJiZ0Lm5vcnRoPjA/MDpJLmxhdGl0dWRlLEE9Y3QuZnJvbVJhZGlhbnMoTCx0Lm5vcnRoLG4sX04pLFM9Y3QuZnJvbVJhZGlhbnModC53ZXN0LHQubm9ydGgsbix5TiksUD1jdC5mcm9tUmFkaWFucyh0Lndlc3QsVSxuLGdOKSxCPWN0LmZyb21SYWRpYW5zKHQud2VzdCx0LnNvdXRoLG4sQU4pLGo9Y3QuZnJvbVJhZGlhbnMoTCx0LnNvdXRoLG4sYk4pLEg9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihBLHdOKSxrPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oUyxYdyksSz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKFAsVE4pLFg9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihCLFl3KSxSPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oaixPTiksb3Q9di5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKEgsRU4pLGF0PXYucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShrLFJOKSxwdD12LnByb2plY3RQb2ludFRvTmVhcmVzdE9uUGxhbmUoSyxTTikseXQ9di5wcm9qZWN0UG9pbnRUb05lYXJlc3RPblBsYW5lKFgsQ04pLHJ0PXYucHJvamVjdFBvaW50VG9OZWFyZXN0T25QbGFuZShSLHhOKTtyZXR1cm4gaT1NYXRoLm1pbihhdC54LHB0LngseXQueCkscz0taSx1PU1hdGgubWF4KGF0Lnksb3QueSksZj1NYXRoLm1pbih5dC55LHJ0LnkpLFMuaGVpZ2h0PUIuaGVpZ2h0PWUsaz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKFMsWHcpLFg9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihCLFl3KSxjPU1hdGgubWluKG9uLmdldFBvaW50RGlzdGFuY2UocCxrKSxvbi5nZXRQb2ludERpc3RhbmNlKHAsWCkpLGw9bixLdyh2Lm9yaWdpbix2LnhBeGlzLHYueUF4aXMsdi56QXhpcyxpLHMsZix1LGMsbCxyKX1sZXQgZD10LnNvdXRoPjAsbT10Lm5vcnRoPDAsXz1kP3Quc291dGg6bT90Lm5vcnRoOjAsZz1OdC5jZW50ZXIodCxXdykubG9uZ2l0dWRlLGI9YS5mcm9tUmFkaWFucyhnLF8sbixvLFBOKTtiLno9MDtsZXQgTz1NYXRoLmFicyhiLngpPE0uRVBTSUxPTjEwJiZNYXRoLmFicyhiLnkpPE0uRVBTSUxPTjEwP2EuVU5JVF9YOmEubm9ybWFsaXplKGIsTU4pLEU9YS5VTklUX1osVD1hLmNyb3NzKE8sRSxOTik7cD1vbi5mcm9tUG9pbnROb3JtYWwoYixPLEJOKTtsZXQgQz1hLmZyb21SYWRpYW5zKGcrTS5QSV9PVkVSX1RXTyxfLG4sbyxJTik7cz1hLmRvdChvbi5wcm9qZWN0UG9pbnRPbnRvUGxhbmUocCxDLHZOKSxUKSxpPS1zLHU9YS5mcm9tUmFkaWFucygwLHQubm9ydGgsbT9lOm4sbyxMTikueixmPWEuZnJvbVJhZGlhbnMoMCx0LnNvdXRoLGQ/ZTpuLG8sRE4pLno7bGV0IE49YS5mcm9tUmFkaWFucyh0LmVhc3QsXyxuLG8sRk4pO3JldHVybiBjPW9uLmdldFBvaW50RGlzdGFuY2UocCxOKSxsPTAsS3coYixULEUsTyxpLHMsZix1LGMsbCxyKX07QmUuZnJvbVRyYW5zZm9ybWF0aW9uPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidHJhbnNmb3JtYXRpb24iLHQpLGgoZSl8fChlPW5ldyBCZSksZS5jZW50ZXI9c3QuZ2V0VHJhbnNsYXRpb24odCxlLmNlbnRlciksZS5oYWxmQXhlcz1zdC5nZXRNYXRyaXgzKHQsZS5oYWxmQXhlcyksZS5oYWxmQXhlcz1RLm11bHRpcGx5QnlTY2FsYXIoZS5oYWxmQXhlcywuNSxlLmhhbGZBeGVzKSxlfTtCZS5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSk/KGEuY2xvbmUodC5jZW50ZXIsZS5jZW50ZXIpLFEuY2xvbmUodC5oYWxmQXhlcyxlLmhhbGZBeGVzKSxlKTpuZXcgQmUodC5jZW50ZXIsdC5oYWxmQXhlcyl9O0JlLmludGVyc2VjdFBsYW5lPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImJveCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigicGxhbmUgaXMgcmVxdWlyZWQuIik7bGV0IG49dC5jZW50ZXIsbz1lLm5vcm1hbCxyPXQuaGFsZkF4ZXMsaT1vLngscz1vLnksZj1vLnosdT1NYXRoLmFicyhpKnJbUS5DT0xVTU4wUk9XMF0rcypyW1EuQ09MVU1OMFJPVzFdK2YqcltRLkNPTFVNTjBST1cyXSkrTWF0aC5hYnMoaSpyW1EuQ09MVU1OMVJPVzBdK3MqcltRLkNPTFVNTjFST1cxXStmKnJbUS5DT0xVTU4xUk9XMl0pK01hdGguYWJzKGkqcltRLkNPTFVNTjJST1cwXStzKnJbUS5DT0xVTU4yUk9XMV0rZipyW1EuQ09MVU1OMlJPVzJdKSxjPWEuZG90KG8sbikrZS5kaXN0YW5jZTtyZXR1cm4gYzw9LXU/U24uT1VUU0lERTpjPj11P1NuLklOU0lERTpTbi5JTlRFUlNFQ1RJTkd9O1F3PW5ldyBhLEp3PW5ldyBhLHRUPW5ldyBhLFVOPW5ldyBhLCR3PW5ldyBhLFZOPW5ldyBhO0JlLmRpc3RhbmNlU3F1YXJlZFRvPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImJveCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigiY2FydGVzaWFuIGlzIHJlcXVpcmVkLiIpO2xldCBuPWEuc3VidHJhY3QoZSx0LmNlbnRlcixadyksbz10LmhhbGZBeGVzLHI9US5nZXRDb2x1bW4obywwLFF3KSxpPVEuZ2V0Q29sdW1uKG8sMSxKdykscz1RLmdldENvbHVtbihvLDIsdFQpLGY9YS5tYWduaXR1ZGUociksdT1hLm1hZ25pdHVkZShpKSxjPWEubWFnbml0dWRlKHMpLGw9ITAscD0hMCxkPSEwO2Y+MD9hLmRpdmlkZUJ5U2NhbGFyKHIsZixyKTpsPSExLHU+MD9hLmRpdmlkZUJ5U2NhbGFyKGksdSxpKTpwPSExLGM+MD9hLmRpdmlkZUJ5U2NhbGFyKHMsYyxzKTpkPSExO2xldCBtPSFsKyFwKyFkLF8sZyxiO2lmKG09PT0xKXtsZXQgVD1yO189aSxnPXMscD9kfHwoVD1zLGc9cik6KFQ9aSxfPXIpLGI9YS5jcm9zcyhfLGcsJHcpLFQ9PT1yP3I9YjpUPT09aT9pPWI6VD09PXMmJihzPWIpfWVsc2UgaWYobT09PTIpe189cixwP189aTpkJiYoXz1zKTtsZXQgVD1hLlVOSVRfWTtULmVxdWFsc0Vwc2lsb24oXyxNLkVQU0lMT04zKSYmKFQ9YS5VTklUX1gpLGc9YS5jcm9zcyhfLFQsVU4pLGEubm9ybWFsaXplKGcsZyksYj1hLmNyb3NzKF8sZywkdyksYS5ub3JtYWxpemUoYixiKSxfPT09cj8oaT1nLHM9Yik6Xz09PWk/KHM9ZyxyPWIpOl89PT1zJiYocj1nLGk9Yil9ZWxzZSBtPT09MyYmKHI9YS5VTklUX1gsaT1hLlVOSVRfWSxzPWEuVU5JVF9aKTtsZXQgdz1WTjt3Lng9YS5kb3QobixyKSx3Lnk9YS5kb3QobixpKSx3Lno9YS5kb3QobixzKTtsZXQgTz0wLEU7cmV0dXJuIHcueDwtZj8oRT13LngrZixPKz1FKkUpOncueD5mJiYoRT13LngtZixPKz1FKkUpLHcueTwtdT8oRT13LnkrdSxPKz1FKkUpOncueT51JiYoRT13LnktdSxPKz1FKkUpLHcuejwtYz8oRT13LnorYyxPKz1FKkUpOncuej5jJiYoRT13LnotYyxPKz1FKkUpLE99O2tOPW5ldyBhLEdOPW5ldyBhO0JlLmNvbXB1dGVQbGFuZURpc3RhbmNlcz1mdW5jdGlvbih0LGUsbixvKXtpZighaCh0KSl0aHJvdyBuZXcgRigiYm94IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigiZGlyZWN0aW9uIGlzIHJlcXVpcmVkLiIpO2gobyl8fChvPW5ldyBRcik7bGV0IHI9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHM9dC5jZW50ZXIsZj10LmhhbGZBeGVzLHU9US5nZXRDb2x1bW4oZiwwLFF3KSxjPVEuZ2V0Q29sdW1uKGYsMSxKdyksbD1RLmdldENvbHVtbihmLDIsdFQpLHA9YS5hZGQodSxjLGtOKTthLmFkZChwLGwscCksYS5hZGQocCxzLHApO2xldCBkPWEuc3VidHJhY3QocCxlLEdOKSxtPWEuZG90KG4sZCk7cmV0dXJuIHI9TWF0aC5taW4obSxyKSxpPU1hdGgubWF4KG0saSksYS5hZGQocyx1LHApLGEuYWRkKHAsYyxwKSxhLnN1YnRyYWN0KHAsbCxwKSxhLnN1YnRyYWN0KHAsZSxkKSxtPWEuZG90KG4sZCkscj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxhLmFkZChzLHUscCksYS5zdWJ0cmFjdChwLGMscCksYS5hZGQocCxsLHApLGEuc3VidHJhY3QocCxlLGQpLG09YS5kb3QobixkKSxyPU1hdGgubWluKG0sciksaT1NYXRoLm1heChtLGkpLGEuYWRkKHMsdSxwKSxhLnN1YnRyYWN0KHAsYyxwKSxhLnN1YnRyYWN0KHAsbCxwKSxhLnN1YnRyYWN0KHAsZSxkKSxtPWEuZG90KG4sZCkscj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxhLnN1YnRyYWN0KHMsdSxwKSxhLmFkZChwLGMscCksYS5hZGQocCxsLHApLGEuc3VidHJhY3QocCxlLGQpLG09YS5kb3QobixkKSxyPU1hdGgubWluKG0sciksaT1NYXRoLm1heChtLGkpLGEuc3VidHJhY3Qocyx1LHApLGEuYWRkKHAsYyxwKSxhLnN1YnRyYWN0KHAsbCxwKSxhLnN1YnRyYWN0KHAsZSxkKSxtPWEuZG90KG4sZCkscj1NYXRoLm1pbihtLHIpLGk9TWF0aC5tYXgobSxpKSxhLnN1YnRyYWN0KHMsdSxwKSxhLnN1YnRyYWN0KHAsYyxwKSxhLmFkZChwLGwscCksYS5zdWJ0cmFjdChwLGUsZCksbT1hLmRvdChuLGQpLHI9TWF0aC5taW4obSxyKSxpPU1hdGgubWF4KG0saSksYS5zdWJ0cmFjdChzLHUscCksYS5zdWJ0cmFjdChwLGMscCksYS5zdWJ0cmFjdChwLGwscCksYS5zdWJ0cmFjdChwLGUsZCksbT1hLmRvdChuLGQpLHI9TWF0aC5taW4obSxyKSxpPU1hdGgubWF4KG0saSksby5zdGFydD1yLG8uc3RvcD1pLG99O3pOPW5ldyBhLGpOPW5ldyBhLEhOPW5ldyBhO0JlLmNvbXB1dGVDb3JuZXJzPWZ1bmN0aW9uKHQsZSl7eS50eXBlT2Yub2JqZWN0KCJib3giLHQpLGgoZSl8fChlPVtuZXcgYSxuZXcgYSxuZXcgYSxuZXcgYSxuZXcgYSxuZXcgYSxuZXcgYSxuZXcgYV0pO2xldCBuPXQuY2VudGVyLG89dC5oYWxmQXhlcyxyPVEuZ2V0Q29sdW1uKG8sMCx6TiksaT1RLmdldENvbHVtbihvLDEsak4pLHM9US5nZXRDb2x1bW4obywyLEhOKTtyZXR1cm4gYS5jbG9uZShuLGVbMF0pLGEuc3VidHJhY3QoZVswXSxyLGVbMF0pLGEuc3VidHJhY3QoZVswXSxpLGVbMF0pLGEuc3VidHJhY3QoZVswXSxzLGVbMF0pLGEuY2xvbmUobixlWzFdKSxhLnN1YnRyYWN0KGVbMV0scixlWzFdKSxhLnN1YnRyYWN0KGVbMV0saSxlWzFdKSxhLmFkZChlWzFdLHMsZVsxXSksYS5jbG9uZShuLGVbMl0pLGEuc3VidHJhY3QoZVsyXSxyLGVbMl0pLGEuYWRkKGVbMl0saSxlWzJdKSxhLnN1YnRyYWN0KGVbMl0scyxlWzJdKSxhLmNsb25lKG4sZVszXSksYS5zdWJ0cmFjdChlWzNdLHIsZVszXSksYS5hZGQoZVszXSxpLGVbM10pLGEuYWRkKGVbM10scyxlWzNdKSxhLmNsb25lKG4sZVs0XSksYS5hZGQoZVs0XSxyLGVbNF0pLGEuc3VidHJhY3QoZVs0XSxpLGVbNF0pLGEuc3VidHJhY3QoZVs0XSxzLGVbNF0pLGEuY2xvbmUobixlWzVdKSxhLmFkZChlWzVdLHIsZVs1XSksYS5zdWJ0cmFjdChlWzVdLGksZVs1XSksYS5hZGQoZVs1XSxzLGVbNV0pLGEuY2xvbmUobixlWzZdKSxhLmFkZChlWzZdLHIsZVs2XSksYS5hZGQoZVs2XSxpLGVbNl0pLGEuc3VidHJhY3QoZVs2XSxzLGVbNl0pLGEuY2xvbmUobixlWzddKSxhLmFkZChlWzddLHIsZVs3XSksYS5hZGQoZVs3XSxpLGVbN10pLGEuYWRkKGVbN10scyxlWzddKSxlfTtxTj1uZXcgUTtCZS5jb21wdXRlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCxlKXt5LnR5cGVPZi5vYmplY3QoImJveCIsdCksaChlKXx8KGU9bmV3IHN0KTtsZXQgbj10LmNlbnRlcixvPVEubXVsdGlwbHlCeVVuaWZvcm1TY2FsZSh0LmhhbGZBeGVzLDIscU4pO3JldHVybiBzdC5mcm9tUm90YXRpb25UcmFuc2xhdGlvbihvLG4sZSl9O0tOPW5ldyBBdDtCZS5pc09jY2x1ZGVkPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImJveCBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigib2NjbHVkZXIgaXMgcmVxdWlyZWQuIik7bGV0IG49QXQuZnJvbU9yaWVudGVkQm91bmRpbmdCb3godCxLTik7cmV0dXJuIWUuaXNCb3VuZGluZ1NwaGVyZVZpc2libGUobil9O0JlLnByb3RvdHlwZS5pbnRlcnNlY3RQbGFuZT1mdW5jdGlvbih0KXtyZXR1cm4gQmUuaW50ZXJzZWN0UGxhbmUodGhpcyx0KX07QmUucHJvdG90eXBlLmRpc3RhbmNlU3F1YXJlZFRvPWZ1bmN0aW9uKHQpe3JldHVybiBCZS5kaXN0YW5jZVNxdWFyZWRUbyh0aGlzLHQpfTtCZS5wcm90b3R5cGUuY29tcHV0ZVBsYW5lRGlzdGFuY2VzPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gQmUuY29tcHV0ZVBsYW5lRGlzdGFuY2VzKHRoaXMsdCxlLG4pfTtCZS5wcm90b3R5cGUuY29tcHV0ZUNvcm5lcnM9ZnVuY3Rpb24odCl7cmV0dXJuIEJlLmNvbXB1dGVDb3JuZXJzKHRoaXMsdCl9O0JlLnByb3RvdHlwZS5jb21wdXRlVHJhbnNmb3JtYXRpb249ZnVuY3Rpb24odCl7cmV0dXJuIEJlLmNvbXB1dGVUcmFuc2Zvcm1hdGlvbih0aGlzLHQpfTtCZS5wcm90b3R5cGUuaXNPY2NsdWRlZD1mdW5jdGlvbih0KXtyZXR1cm4gQmUuaXNPY2NsdWRlZCh0aGlzLHQpfTtCZS5lcXVhbHM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gdD09PWV8fGgodCkmJmgoZSkmJmEuZXF1YWxzKHQuY2VudGVyLGUuY2VudGVyKSYmUS5lcXVhbHModC5oYWxmQXhlcyxlLmhhbGZBeGVzKX07QmUucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBCZS5jbG9uZSh0aGlzLHQpfTtCZS5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiBCZS5lcXVhbHModGhpcyx0KX07U289QmV9KTtmdW5jdGlvbiBpVCh0LGUsbixvLHIpe2xldCBpPWEuc3VidHJhY3QodCxlLFdOKSxzPWEuZG90KG4saSksZj1hLmRvdChvLGkpO3JldHVybiB0dC5mcm9tRWxlbWVudHMocyxmLHIpfXZhciBOZixXTixlVCxuVCxvVCxyVCxtYSx4MD1aKCgpPT57VWUoKTtGdCgpO1h0KCk7Qm4oKTtkYSgpO05mPXt9LFdOPW5ldyBhLGVUPW5ldyBhLG5UPW5ldyBhLG9UPW5ldyBhLHJUPW5ldyBTbztOZi52YWxpZE91dGxpbmU9ZnVuY3Rpb24odCl7eS5kZWZpbmVkKCJwb3NpdGlvbnMiLHQpO2xldCBuPVNvLmZyb21Qb2ludHModCxyVCkuaGFsZkF4ZXMsbz1RLmdldENvbHVtbihuLDAsZVQpLHI9US5nZXRDb2x1bW4obiwxLG5UKSxpPVEuZ2V0Q29sdW1uKG4sMixvVCkscz1hLm1hZ25pdHVkZShvKSxmPWEubWFnbml0dWRlKHIpLHU9YS5tYWduaXR1ZGUoaSk7cmV0dXJuIShzPT09MCYmKGY9PT0wfHx1PT09MCl8fGY9PT0wJiZ1PT09MCl9O05mLmNvbXB1dGVQcm9qZWN0VG8yREFyZ3VtZW50cz1mdW5jdGlvbih0LGUsbixvKXt5LmRlZmluZWQoInBvc2l0aW9ucyIsdCkseS5kZWZpbmVkKCJjZW50ZXJSZXN1bHQiLGUpLHkuZGVmaW5lZCgicGxhbmVBeGlzMVJlc3VsdCIsbikseS5kZWZpbmVkKCJwbGFuZUF4aXMyUmVzdWx0IixvKTtsZXQgcj1Tby5mcm9tUG9pbnRzKHQsclQpLGk9ci5oYWxmQXhlcyxzPVEuZ2V0Q29sdW1uKGksMCxlVCksZj1RLmdldENvbHVtbihpLDEsblQpLHU9US5nZXRDb2x1bW4oaSwyLG9UKSxjPWEubWFnbml0dWRlKHMpLGw9YS5tYWduaXR1ZGUoZikscD1hLm1hZ25pdHVkZSh1KSxkPU1hdGgubWluKGMsbCxwKTtpZihjPT09MCYmKGw9PT0wfHxwPT09MCl8fGw9PT0wJiZwPT09MClyZXR1cm4hMTtsZXQgbSxfO3JldHVybihkPT09bHx8ZD09PXApJiYobT1zKSxkPT09Yz9tPWY6ZD09PXAmJihfPWYpLChkPT09Y3x8ZD09PWwpJiYoXz11KSxhLm5vcm1hbGl6ZShtLG4pLGEubm9ybWFsaXplKF8sbyksYS5jbG9uZShyLmNlbnRlcixlKSwhMH07TmYuY3JlYXRlUHJvamVjdFBvaW50c1RvMkRGdW5jdGlvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8pe2xldCByPW5ldyBBcnJheShvLmxlbmd0aCk7Zm9yKGxldCBpPTA7aTxvLmxlbmd0aDtpKyspcltpXT1pVChvW2ldLHQsZSxuKTtyZXR1cm4gcn19O05mLmNyZWF0ZVByb2plY3RQb2ludFRvMkRGdW5jdGlvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGZ1bmN0aW9uKG8scil7cmV0dXJuIGlUKG8sdCxlLG4scil9fTttYT1OZn0pO3ZhciBYTixfZSxmYz1aKCgpPT57WE49e05PTkU6MCxHRU9ERVNJQzoxLFJIVU1COjJ9LF9lPU9iamVjdC5mcmVlemUoWE4pfSk7ZnVuY3Rpb24gTTAodCxlLG4pe2lmKHQ9PT0wKXJldHVybiBlKm47bGV0IG89dCp0LHI9bypvLGk9cipvLHM9aSpvLGY9cypvLHU9ZipvLGM9bixsPU1hdGguc2luKDIqYykscD1NYXRoLnNpbig0KmMpLGQ9TWF0aC5zaW4oNipjKSxtPU1hdGguc2luKDgqYyksXz1NYXRoLnNpbigxMCpjKSxnPU1hdGguc2luKDEyKmMpO3JldHVybiBlKigoMS1vLzQtMypyLzY0LTUqaS8yNTYtMTc1KnMvMTYzODQtNDQxKmYvNjU1MzYtNDg1MSp1LzEwNDg1NzYpKmMtKDMqby84KzMqci8zMis0NSppLzEwMjQrMTA1KnMvNDA5NisyMjA1KmYvMTMxMDcyKzYyMzcqdS81MjQyODgpKmwrKDE1KnIvMjU2KzQ1KmkvMTAyNCs1MjUqcy8xNjM4NCsxNTc1KmYvNjU1MzYrMTU1OTI1KnUvODM4ODYwOCkqcC0oMzUqaS8zMDcyKzE3NSpzLzEyMjg4KzM2NzUqZi8yNjIxNDQrMTM0NzUqdS8xMDQ4NTc2KSpkKygzMTUqcy8xMzEwNzIrMjIwNSpmLzUyNDI4OCs0MzY1OSp1LzgzODg2MDgpKm0tKDY5MypmLzEzMTA3MjArNjIzNyp1LzUyNDI4ODApKl8rMTAwMSp1LzgzODg2MDgqZyl9ZnVuY3Rpb24gWU4odCxlLG4pe2xldCBvPXQvbjtpZihlPT09MClyZXR1cm4gbztsZXQgcj1vKm8saT1yKm8scz1pKm8sZj1lLHU9ZipmLGM9dSp1LGw9Yyp1LHA9bCp1LGQ9cCp1LG09ZCp1LF89TWF0aC5zaW4oMipvKSxnPU1hdGguY29zKDIqbyksYj1NYXRoLnNpbig0Km8pLHc9TWF0aC5jb3MoNCpvKSxPPU1hdGguc2luKDYqbyksRT1NYXRoLmNvcyg2Km8pLFQ9TWF0aC5zaW4oOCpvKSxDPU1hdGguY29zKDgqbyksTj1NYXRoLnNpbigxMCpvKSxJPU1hdGguY29zKDEwKm8pLEQ9TWF0aC5zaW4oMTIqbyk7cmV0dXJuIG8rbyp1LzQrNypvKmMvNjQrMTUqbypsLzI1Nis1NzkqbypwLzE2Mzg0KzE1MTUqbypkLzY1NTM2KzE2ODM3Km8qbS8xMDQ4NTc2KygzKm8qYy8xNis0NSpvKmwvMjU2LW8qKDMyKnItNTYxKSpwLzQwOTYtbyooMjMyKnItMTY3NykqZC8xNjM4NCtvKigzOTk5ODUtOTA1NjAqcis1MTIqcykqbS81MjQyODgwKSpnKygyMSpvKmwvMjU2KzQ4MypvKnAvNDA5Ni1vKigyMjQqci0xOTY5KSpkLzE2Mzg0LW8qKDMzMTUyKnItMTEyNTk5KSptLzEwNDg1NzYpKncrKDE1MSpvKnAvNDA5Nis0NjgxKm8qZC82NTUzNisxNDc5Km8qbS8xNjM4NC00NTMqaSptLzMyNzY4KSpFKygxMDk3Km8qZC82NTUzNis0Mjc4MypvKm0vMTA0ODU3NikqQys4MDExKm8qbS8xMDQ4NTc2KkkrKDMqdS84KzMqYy8xNisyMTMqbC8yMDQ4LTMqcipsLzY0KzI1NSpwLzQwOTYtMzMqcipwLzUxMisyMDg2MSpkLzUyNDI4OC0zMypyKmQvNTEyK3MqZC8xMDI0KzI4MjczKm0vMTA0ODU3Ni00NzEqciptLzgxOTIrOSpzKm0vNDA5NikqXysoMjEqYy8yNTYrMjEqbC8yNTYrNTMzKnAvODE5Mi0yMSpyKnAvNTEyKzE5NypkLzQwOTYtMzE1KnIqZC80MDk2KzU4NDAzOSptLzE2Nzc3MjE2LTEyNTE3KnIqbS8xMzEwNzIrNypzKm0vMjA0OCkqYisoMTUxKmwvNjE0NCsxNTEqcC80MDk2KzUwMTkqZC8xMzEwNzItNDUzKnIqZC8xNjM4NCsyNjk2NSptLzc4NjQzMi04NjA3KnIqbS8xMzEwNzIpKk8rKDEwOTcqcC8xMzEwNzIrMTA5NypkLzY1NTM2KzIyNTc5NyptLzEwNDg1NzYwLTEwOTcqciptLzY1NTM2KSpUKyg4MDExKmQvMjYyMTQ0MCs4MDExKm0vMTA0ODU3NikqTisyOTMzOTMqbS8yNTE2NTgyNDAqRH1mdW5jdGlvbiBoYSh0LGUpe2lmKHQ9PT0wKXJldHVybiBNYXRoLmxvZyhNYXRoLnRhbiguNSooTS5QSV9PVkVSX1RXTytlKSkpO2xldCBuPXQqTWF0aC5zaW4oZSk7cmV0dXJuIE1hdGgubG9nKE1hdGgudGFuKC41KihNLlBJX09WRVJfVFdPK2UpKSktdC8yKk1hdGgubG9nKCgxK24pLygxLW4pKX1mdW5jdGlvbiAkTih0LGUsbixvLHIpe2xldCBpPWhhKHQuX2VsbGlwdGljaXR5LG4pLHM9aGEodC5fZWxsaXB0aWNpdHkscik7cmV0dXJuIE1hdGguYXRhbjIoTS5uZWdhdGl2ZVBpVG9QaShvLWUpLHMtaSl9ZnVuY3Rpb24gWk4odCxlLG4sbyxyLGkscyl7bGV0IGY9dC5faGVhZGluZyx1PWktbyxjPTA7aWYoTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKGYpLE0uUElfT1ZFUl9UV08sTS5FUFNJTE9OOCkpaWYoZT09PW4pYz1lKk1hdGguY29zKHIpKk0ubmVnYXRpdmVQaVRvUGkodSk7ZWxzZXtsZXQgbD1NYXRoLnNpbihyKTtjPWUqTWF0aC5jb3MocikqTS5uZWdhdGl2ZVBpVG9QaSh1KS9NYXRoLnNxcnQoMS10Ll9lbGxpcHRpY2l0eVNxdWFyZWQqbCpsKX1lbHNle2xldCBsPU0wKHQuX2VsbGlwdGljaXR5LGUscik7Yz0oTTAodC5fZWxsaXB0aWNpdHksZSxzKS1sKS9NYXRoLmNvcyhmKX1yZXR1cm4gTWF0aC5hYnMoYyl9ZnVuY3Rpb24gc1QodCxlLG4sbyl7bGV0IHI9YS5ub3JtYWxpemUoby5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihlLFAwKSxRTiksaT1hLm5vcm1hbGl6ZShvLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKG4sUDApLFAwKTt5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygidmFsdWUiLE1hdGguYWJzKE1hdGguYWJzKGEuYW5nbGVCZXR3ZWVuKHIsaSkpLU1hdGguUEkpLC4wMTI1KTtsZXQgcz1vLm1heGltdW1SYWRpdXMsZj1vLm1pbmltdW1SYWRpdXMsdT1zKnMsYz1mKmY7dC5fZWxsaXB0aWNpdHlTcXVhcmVkPSh1LWMpL3UsdC5fZWxsaXB0aWNpdHk9TWF0aC5zcXJ0KHQuX2VsbGlwdGljaXR5U3F1YXJlZCksdC5fc3RhcnQ9Y3QuY2xvbmUoZSx0Ll9zdGFydCksdC5fc3RhcnQuaGVpZ2h0PTAsdC5fZW5kPWN0LmNsb25lKG4sdC5fZW5kKSx0Ll9lbmQuaGVpZ2h0PTAsdC5faGVhZGluZz0kTih0LGUubG9uZ2l0dWRlLGUubGF0aXR1ZGUsbi5sb25naXR1ZGUsbi5sYXRpdHVkZSksdC5fZGlzdGFuY2U9Wk4odCxvLm1heGltdW1SYWRpdXMsby5taW5pbXVtUmFkaXVzLGUubG9uZ2l0dWRlLGUubGF0aXR1ZGUsbi5sb25naXR1ZGUsbi5sYXRpdHVkZSl9ZnVuY3Rpb24gY1QodCxlLG4sbyxyLGkpe2lmKG49PT0wKXJldHVybiBjdC5jbG9uZSh0LGkpO2xldCBzPXIqcixmLHUsYztpZihNYXRoLmFicyhNLlBJX09WRVJfVFdPLU1hdGguYWJzKGUpKT5NLkVQU0lMT044KXtsZXQgbD1NMChyLG8sdC5sYXRpdHVkZSkscD1uKk1hdGguY29zKGUpLGQ9bCtwO2lmKHU9WU4oZCxyLG8pLE1hdGguYWJzKGUpPE0uRVBTSUxPTjEwKWY9TS5uZWdhdGl2ZVBpVG9QaSh0LmxvbmdpdHVkZSk7ZWxzZXtsZXQgbT1oYShyLHQubGF0aXR1ZGUpLF89aGEocix1KTtjPU1hdGgudGFuKGUpKihfLW0pLGY9TS5uZWdhdGl2ZVBpVG9QaSh0LmxvbmdpdHVkZStjKX19ZWxzZXt1PXQubGF0aXR1ZGU7bGV0IGw7aWYocj09PTApbD1vKk1hdGguY29zKHQubGF0aXR1ZGUpO2Vsc2V7bGV0IHA9TWF0aC5zaW4odC5sYXRpdHVkZSk7bD1vKk1hdGguY29zKHQubGF0aXR1ZGUpL01hdGguc3FydCgxLXMqcCpwKX1jPW4vbCxlPjA/Zj1NLm5lZ2F0aXZlUGlUb1BpKHQubG9uZ2l0dWRlK2MpOmY9TS5uZWdhdGl2ZVBpVG9QaSh0LmxvbmdpdHVkZS1jKX1yZXR1cm4gaChpKT8oaS5sb25naXR1ZGU9ZixpLmxhdGl0dWRlPXUsaS5oZWlnaHQ9MCxpKTpuZXcgY3QoZix1LDApfWZ1bmN0aW9uIEZpKHQsZSxuKXtsZXQgbz14KG4sJC5kZWZhdWx0KTt0aGlzLl9lbGxpcHNvaWQ9byx0aGlzLl9zdGFydD1uZXcgY3QsdGhpcy5fZW5kPW5ldyBjdCx0aGlzLl9oZWFkaW5nPXZvaWQgMCx0aGlzLl9kaXN0YW5jZT12b2lkIDAsdGhpcy5fZWxsaXB0aWNpdHk9dm9pZCAwLHRoaXMuX2VsbGlwdGljaXR5U3F1YXJlZD12b2lkIDAsaCh0KSYmaChlKSYmc1QodGhpcyx0LGUsbyl9dmFyIFFOLFAwLFpvLElmPVooKCk9PntGdCgpO0llKCk7WHQoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1d0KCk7UU49bmV3IGEsUDA9bmV3IGE7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRmkucHJvdG90eXBlLHtlbGxpcHNvaWQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbGxpcHNvaWR9fSxzdXJmYWNlRGlzdGFuY2U6e2dldDpmdW5jdGlvbigpe3JldHVybiB5LmRlZmluZWQoImRpc3RhbmNlIix0aGlzLl9kaXN0YW5jZSksdGhpcy5fZGlzdGFuY2V9fSxzdGFydDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3N0YXJ0fX0sZW5kOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZW5kfX0saGVhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmaW5lZCgiZGlzdGFuY2UiLHRoaXMuX2Rpc3RhbmNlKSx0aGlzLl9oZWFkaW5nfX19KTtGaS5mcm9tU3RhcnRIZWFkaW5nRGlzdGFuY2U9ZnVuY3Rpb24odCxlLG4sbyxyKXt5LmRlZmluZWQoInN0YXJ0Iix0KSx5LmRlZmluZWQoImhlYWRpbmciLGUpLHkuZGVmaW5lZCgiZGlzdGFuY2UiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZGlzdGFuY2UiLG4sMCk7bGV0IGk9eChvLCQuZGVmYXVsdCkscz1pLm1heGltdW1SYWRpdXMsZj1pLm1pbmltdW1SYWRpdXMsdT1zKnMsYz1mKmYsbD1NYXRoLnNxcnQoKHUtYykvdSk7ZT1NLm5lZ2F0aXZlUGlUb1BpKGUpO2xldCBwPWNUKHQsZSxuLGkubWF4aW11bVJhZGl1cyxsKTtyZXR1cm4haChyKXx8aChvKSYmIW8uZXF1YWxzKHIuZWxsaXBzb2lkKT9uZXcgRmkodCxwLGkpOihyLnNldEVuZFBvaW50cyh0LHApLHIpfTtGaS5wcm90b3R5cGUuc2V0RW5kUG9pbnRzPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJzdGFydCIsdCkseS5kZWZpbmVkKCJlbmQiLGUpLHNUKHRoaXMsdCxlLHRoaXMuX2VsbGlwc29pZCl9O0ZpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nRnJhY3Rpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKHQqdGhpcy5fZGlzdGFuY2UsZSl9O0ZpLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7aWYoeS50eXBlT2YubnVtYmVyKCJkaXN0YW5jZSIsdCksIWgodGhpcy5fZGlzdGFuY2UpfHx0aGlzLl9kaXN0YW5jZT09PTApdGhyb3cgbmV3IEYoIkVsbGlwc29pZFJodW1iTGluZSBtdXN0IGhhdmUgZGlzdGluY3Qgc3RhcnQgYW5kIGVuZCBzZXQuIik7cmV0dXJuIGNUKHRoaXMuX3N0YXJ0LHRoaXMuX2hlYWRpbmcsdCx0aGlzLl9lbGxpcHNvaWQubWF4aW11bVJhZGl1cyx0aGlzLl9lbGxpcHRpY2l0eSxlKX07RmkucHJvdG90eXBlLmZpbmRJbnRlcnNlY3Rpb25XaXRoTG9uZ2l0dWRlPWZ1bmN0aW9uKHQsZSl7aWYoeS50eXBlT2YubnVtYmVyKCJpbnRlcnNlY3Rpb25Mb25naXR1ZGUiLHQpLCFoKHRoaXMuX2Rpc3RhbmNlKXx8dGhpcy5fZGlzdGFuY2U9PT0wKXRocm93IG5ldyBGKCJFbGxpcHNvaWRSaHVtYkxpbmUgbXVzdCBoYXZlIGRpc3RpbmN0IHN0YXJ0IGFuZCBlbmQgc2V0LiIpO2xldCBuPXRoaXMuX2VsbGlwdGljaXR5LG89dGhpcy5faGVhZGluZyxyPU1hdGguYWJzKG8pLGk9dGhpcy5fc3RhcnQ7aWYodD1NLm5lZ2F0aXZlUGlUb1BpKHQpLE0uZXF1YWxzRXBzaWxvbihNYXRoLmFicyh0KSxNYXRoLlBJLE0uRVBTSUxPTjE0KSYmKHQ9TS5zaWduKGkubG9uZ2l0dWRlKSpNYXRoLlBJKSxoKGUpfHwoZT1uZXcgY3QpLE1hdGguYWJzKE0uUElfT1ZFUl9UV08tcik8PU0uRVBTSUxPTjgpcmV0dXJuIGUubG9uZ2l0dWRlPXQsZS5sYXRpdHVkZT1pLmxhdGl0dWRlLGUuaGVpZ2h0PTAsZTtpZihNLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnMoTS5QSV9PVkVSX1RXTy1yKSxNLlBJX09WRVJfVFdPLE0uRVBTSUxPTjgpKXJldHVybiBNLmVxdWFsc0Vwc2lsb24odCxpLmxvbmdpdHVkZSxNLkVQU0lMT04xMik/dm9pZCAwOihlLmxvbmdpdHVkZT10LGUubGF0aXR1ZGU9TS5QSV9PVkVSX1RXTypNLnNpZ24oTS5QSV9PVkVSX1RXTy1vKSxlLmhlaWdodD0wLGUpO2xldCBzPWkubGF0aXR1ZGUsZj1uKk1hdGguc2luKHMpLHU9TWF0aC50YW4oLjUqKE0uUElfT1ZFUl9UV08rcykpKk1hdGguZXhwKCh0LWkubG9uZ2l0dWRlKS9NYXRoLnRhbihvKSksYz0oMStmKS8oMS1mKSxsPWkubGF0aXR1ZGUscDtkb3twPWw7bGV0IGQ9bipNYXRoLnNpbihwKSxtPSgxK2QpLygxLWQpO2w9MipNYXRoLmF0YW4odSpNYXRoLnBvdyhtL2Msbi8yKSktTS5QSV9PVkVSX1RXT313aGlsZSghTS5lcXVhbHNFcHNpbG9uKGwscCxNLkVQU0lMT04xMikpO3JldHVybiBlLmxvbmdpdHVkZT10LGUubGF0aXR1ZGU9bCxlLmhlaWdodD0wLGV9O0ZpLnByb3RvdHlwZS5maW5kSW50ZXJzZWN0aW9uV2l0aExhdGl0dWRlPWZ1bmN0aW9uKHQsZSl7aWYoeS50eXBlT2YubnVtYmVyKCJpbnRlcnNlY3Rpb25MYXRpdHVkZSIsdCksIWgodGhpcy5fZGlzdGFuY2UpfHx0aGlzLl9kaXN0YW5jZT09PTApdGhyb3cgbmV3IEYoIkVsbGlwc29pZFJodW1iTGluZSBtdXN0IGhhdmUgZGlzdGluY3Qgc3RhcnQgYW5kIGVuZCBzZXQuIik7bGV0IG49dGhpcy5fZWxsaXB0aWNpdHksbz10aGlzLl9oZWFkaW5nLHI9dGhpcy5fc3RhcnQ7aWYoTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKG8pLE0uUElfT1ZFUl9UV08sTS5FUFNJTE9OOCkpcmV0dXJuO2xldCBpPWhhKG4sci5sYXRpdHVkZSkscz1oYShuLHQpLGY9TWF0aC50YW4obykqKHMtaSksdT1NLm5lZ2F0aXZlUGlUb1BpKHIubG9uZ2l0dWRlK2YpO3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT11LGUubGF0aXR1ZGU9dCxlLmhlaWdodD0wLGUpOm5ldyBjdCh1LHQsMCl9O1pvPUZpfSk7ZnVuY3Rpb24gSk4odCxlKXt0aGlzLnBvc2l0aW9ucz1oKHQpP3Q6W10sdGhpcy5ob2xlcz1oKGUpP2U6W119dmFyIGFULGZUPVooKCk9PntmdCgpO2FUPUpOfSk7ZnVuY3Rpb24gdjAodCxlLG49Mil7bGV0IG89ZSYmZS5sZW5ndGgscj1vP2VbMF0qbjp0Lmxlbmd0aCxpPWxUKHQsMCxyLG4sITApLHM9W107aWYoIWl8fGkubmV4dD09PWkucHJldilyZXR1cm4gcztsZXQgZix1LGM7aWYobyYmKGk9ckkodCxlLGksbikpLHQubGVuZ3RoPjgwKm4pe2Y9MS8wLHU9MS8wO2xldCBsPS0xLzAscD0tMS8wO2ZvcihsZXQgZD1uO2Q8cjtkKz1uKXtsZXQgbT10W2RdLF89dFtkKzFdO208ZiYmKGY9bSksXzx1JiYodT1fKSxtPmwmJihsPW0pLF8+cCYmKHA9Xyl9Yz1NYXRoLm1heChsLWYscC11KSxjPWMhPT0wPzMyNzY3L2M6MH1yZXR1cm4gdmYoaSxzLG4sZix1LGMsMCksc31mdW5jdGlvbiBsVCh0LGUsbixvLHIpe2xldCBpO2lmKHI9PT1oSSh0LGUsbixvKT4wKWZvcihsZXQgcz1lO3M8bjtzKz1vKWk9dVQocy9vfDAsdFtzXSx0W3MrMV0saSk7ZWxzZSBmb3IobGV0IHM9bi1vO3M+PWU7cy09bylpPXVUKHMvb3wwLHRbc10sdFtzKzFdLGkpO3JldHVybiBpJiZyZChpLGkubmV4dCkmJihEZihpKSxpPWkubmV4dCksaX1mdW5jdGlvbiB1Yyh0LGUpe2lmKCF0KXJldHVybiB0O2V8fChlPXQpO2xldCBuPXQsbztkbyBpZihvPSExLCFuLnN0ZWluZXImJihyZChuLG4ubmV4dCl8fHZuKG4ucHJldixuLG4ubmV4dCk9PT0wKSl7aWYoRGYobiksbj1lPW4ucHJldixuPT09bi5uZXh0KWJyZWFrO289ITB9ZWxzZSBuPW4ubmV4dDt3aGlsZShvfHxuIT09ZSk7cmV0dXJuIGV9ZnVuY3Rpb24gdmYodCxlLG4sbyxyLGkscyl7aWYoIXQpcmV0dXJuOyFzJiZpJiZmSSh0LG8scixpKTtsZXQgZj10O2Zvcig7dC5wcmV2IT09dC5uZXh0Oyl7bGV0IHU9dC5wcmV2LGM9dC5uZXh0O2lmKGk/ZUkodCxvLHIsaSk6dEkodCkpe2UucHVzaCh1LmksdC5pLGMuaSksRGYodCksdD1jLm5leHQsZj1jLm5leHQ7Y29udGludWV9aWYodD1jLHQ9PT1mKXtzP3M9PT0xPyh0PW5JKHVjKHQpLGUpLHZmKHQsZSxuLG8scixpLDIpKTpzPT09MiYmb0kodCxlLG4sbyxyLGkpOnZmKHVjKHQpLGUsbixvLHIsaSwxKTticmVha319fWZ1bmN0aW9uIHRJKHQpe2xldCBlPXQucHJldixuPXQsbz10Lm5leHQ7aWYodm4oZSxuLG8pPj0wKXJldHVybiExO2xldCByPWUueCxpPW4ueCxzPW8ueCxmPWUueSx1PW4ueSxjPW8ueSxsPXI8aT9yPHM/cjpzOmk8cz9pOnMscD1mPHU/ZjxjP2Y6Yzp1PGM/dTpjLGQ9cj5pP3I+cz9yOnM6aT5zP2k6cyxtPWY+dT9mPmM/ZjpjOnU+Yz91OmMsXz1vLm5leHQ7Zm9yKDtfIT09ZTspe2lmKF8ueD49bCYmXy54PD1kJiZfLnk+PXAmJl8ueTw9bSYmX2EocixmLGksdSxzLGMsXy54LF8ueSkmJnZuKF8ucHJldixfLF8ubmV4dCk+PTApcmV0dXJuITE7Xz1fLm5leHR9cmV0dXJuITB9ZnVuY3Rpb24gZUkodCxlLG4sbyl7bGV0IHI9dC5wcmV2LGk9dCxzPXQubmV4dDtpZih2bihyLGkscyk+PTApcmV0dXJuITE7bGV0IGY9ci54LHU9aS54LGM9cy54LGw9ci55LHA9aS55LGQ9cy55LG09Zjx1P2Y8Yz9mOmM6dTxjP3U6YyxfPWw8cD9sPGQ/bDpkOnA8ZD9wOmQsZz1mPnU/Zj5jP2Y6Yzp1PmM/dTpjLGI9bD5wP2w+ZD9sOmQ6cD5kP3A6ZCx3PU4wKG0sXyxlLG4sbyksTz1OMChnLGIsZSxuLG8pLEU9dC5wcmV2WixUPXQubmV4dFo7Zm9yKDtFJiZFLno+PXcmJlQmJlQuejw9Tzspe2lmKEUueD49bSYmRS54PD1nJiZFLnk+PV8mJkUueTw9YiYmRSE9PXImJkUhPT1zJiZfYShmLGwsdSxwLGMsZCxFLngsRS55KSYmdm4oRS5wcmV2LEUsRS5uZXh0KT49MHx8KEU9RS5wcmV2WixULng+PW0mJlQueDw9ZyYmVC55Pj1fJiZULnk8PWImJlQhPT1yJiZUIT09cyYmX2EoZixsLHUscCxjLGQsVC54LFQueSkmJnZuKFQucHJldixULFQubmV4dCk+PTApKXJldHVybiExO1Q9VC5uZXh0Wn1mb3IoO0UmJkUuej49dzspe2lmKEUueD49bSYmRS54PD1nJiZFLnk+PV8mJkUueTw9YiYmRSE9PXImJkUhPT1zJiZfYShmLGwsdSxwLGMsZCxFLngsRS55KSYmdm4oRS5wcmV2LEUsRS5uZXh0KT49MClyZXR1cm4hMTtFPUUucHJldlp9Zm9yKDtUJiZULno8PU87KXtpZihULng+PW0mJlQueDw9ZyYmVC55Pj1fJiZULnk8PWImJlQhPT1yJiZUIT09cyYmX2EoZixsLHUscCxjLGQsVC54LFQueSkmJnZuKFQucHJldixULFQubmV4dCk+PTApcmV0dXJuITE7VD1ULm5leHRafXJldHVybiEwfWZ1bmN0aW9uIG5JKHQsZSl7bGV0IG49dDtkb3tsZXQgbz1uLnByZXYscj1uLm5leHQubmV4dDshcmQobyxyKSYmcFQobyxuLG4ubmV4dCxyKSYmTGYobyxyKSYmTGYocixvKSYmKGUucHVzaChvLmksbi5pLHIuaSksRGYobiksRGYobi5uZXh0KSxuPXQ9ciksbj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiB1YyhuKX1mdW5jdGlvbiBvSSh0LGUsbixvLHIsaSl7bGV0IHM9dDtkb3tsZXQgZj1zLm5leHQubmV4dDtmb3IoO2YhPT1zLnByZXY7KXtpZihzLmkhPT1mLmkmJnBJKHMsZikpe2xldCB1PWRUKHMsZik7cz11YyhzLHMubmV4dCksdT11Yyh1LHUubmV4dCksdmYocyxlLG4sbyxyLGksMCksdmYodSxlLG4sbyxyLGksMCk7cmV0dXJufWY9Zi5uZXh0fXM9cy5uZXh0fXdoaWxlKHMhPT10KX1mdW5jdGlvbiBySSh0LGUsbixvKXtsZXQgcj1bXTtmb3IobGV0IGk9MCxzPWUubGVuZ3RoO2k8cztpKyspe2xldCBmPWVbaV0qbyx1PWk8cy0xP2VbaSsxXSpvOnQubGVuZ3RoLGM9bFQodCxmLHUsbywhMSk7Yz09PWMubmV4dCYmKGMuc3RlaW5lcj0hMCksci5wdXNoKGxJKGMpKX1yLnNvcnQoaUkpO2ZvcihsZXQgaT0wO2k8ci5sZW5ndGg7aSsrKW49c0kocltpXSxuKTtyZXR1cm4gbn1mdW5jdGlvbiBpSSh0LGUpe3JldHVybiB0LngtZS54fWZ1bmN0aW9uIHNJKHQsZSl7bGV0IG49Y0kodCxlKTtpZighbilyZXR1cm4gZTtsZXQgbz1kVChuLHQpO3JldHVybiB1YyhvLG8ubmV4dCksdWMobixuLm5leHQpfWZ1bmN0aW9uIGNJKHQsZSl7bGV0IG49ZSxvPXQueCxyPXQueSxpPS0xLzAscztkb3tpZihyPD1uLnkmJnI+PW4ubmV4dC55JiZuLm5leHQueSE9PW4ueSl7bGV0IHA9bi54KyhyLW4ueSkqKG4ubmV4dC54LW4ueCkvKG4ubmV4dC55LW4ueSk7aWYocDw9byYmcD5pJiYoaT1wLHM9bi54PG4ubmV4dC54P246bi5uZXh0LHA9PT1vKSlyZXR1cm4gc31uPW4ubmV4dH13aGlsZShuIT09ZSk7aWYoIXMpcmV0dXJuIG51bGw7bGV0IGY9cyx1PXMueCxjPXMueSxsPTEvMDtuPXM7ZG97aWYobz49bi54JiZuLng+PXUmJm8hPT1uLngmJl9hKHI8Yz9vOmkscix1LGMscjxjP2k6byxyLG4ueCxuLnkpKXtsZXQgcD1NYXRoLmFicyhyLW4ueSkvKG8tbi54KTtMZihuLHQpJiYocDxsfHxwPT09bCYmKG4ueD5zLnh8fG4ueD09PXMueCYmYUkocyxuKSkpJiYocz1uLGw9cCl9bj1uLm5leHR9d2hpbGUobiE9PWYpO3JldHVybiBzfWZ1bmN0aW9uIGFJKHQsZSl7cmV0dXJuIHZuKHQucHJldix0LGUucHJldik8MCYmdm4oZS5uZXh0LHQsdC5uZXh0KTwwfWZ1bmN0aW9uIGZJKHQsZSxuLG8pe2xldCByPXQ7ZG8gci56PT09MCYmKHIuej1OMChyLngsci55LGUsbixvKSksci5wcmV2Wj1yLnByZXYsci5uZXh0Wj1yLm5leHQscj1yLm5leHQ7d2hpbGUociE9PXQpO3IucHJldloubmV4dFo9bnVsbCxyLnByZXZaPW51bGwsdUkocil9ZnVuY3Rpb24gdUkodCl7bGV0IGUsbj0xO2Rve2xldCBvPXQscjt0PW51bGw7bGV0IGk9bnVsbDtmb3IoZT0wO287KXtlKys7bGV0IHM9byxmPTA7Zm9yKGxldCBjPTA7YzxuJiYoZisrLHM9cy5uZXh0WiwhIXMpO2MrKyk7bGV0IHU9bjtmb3IoO2Y+MHx8dT4wJiZzOylmIT09MCYmKHU9PT0wfHwhc3x8by56PD1zLnopPyhyPW8sbz1vLm5leHRaLGYtLSk6KHI9cyxzPXMubmV4dFosdS0tKSxpP2kubmV4dFo9cjp0PXIsci5wcmV2Wj1pLGk9cjtvPXN9aS5uZXh0Wj1udWxsLG4qPTJ9d2hpbGUoZT4xKTtyZXR1cm4gdH1mdW5jdGlvbiBOMCh0LGUsbixvLHIpe3JldHVybiB0PSh0LW4pKnJ8MCxlPShlLW8pKnJ8MCx0PSh0fHQ8PDgpJjE2NzExOTM1LHQ9KHR8dDw8NCkmMjUyNjQ1MTM1LHQ9KHR8dDw8MikmODU4OTkzNDU5LHQ9KHR8dDw8MSkmMTQzMTY1NTc2NSxlPShlfGU8PDgpJjE2NzExOTM1LGU9KGV8ZTw8NCkmMjUyNjQ1MTM1LGU9KGV8ZTw8MikmODU4OTkzNDU5LGU9KGV8ZTw8MSkmMTQzMTY1NTc2NSx0fGU8PDF9ZnVuY3Rpb24gbEkodCl7bGV0IGU9dCxuPXQ7ZG8oZS54PG4ueHx8ZS54PT09bi54JiZlLnk8bi55KSYmKG49ZSksZT1lLm5leHQ7d2hpbGUoZSE9PXQpO3JldHVybiBufWZ1bmN0aW9uIF9hKHQsZSxuLG8scixpLHMsZil7cmV0dXJuKHItcykqKGUtZik+PSh0LXMpKihpLWYpJiYodC1zKSooby1mKT49KG4tcykqKGUtZikmJihuLXMpKihpLWYpPj0oci1zKSooby1mKX1mdW5jdGlvbiBwSSh0LGUpe3JldHVybiB0Lm5leHQuaSE9PWUuaSYmdC5wcmV2LmkhPT1lLmkmJiFkSSh0LGUpJiYoTGYodCxlKSYmTGYoZSx0KSYmbUkodCxlKSYmKHZuKHQucHJldix0LGUucHJldil8fHZuKHQsZS5wcmV2LGUpKXx8cmQodCxlKSYmdm4odC5wcmV2LHQsdC5uZXh0KT4wJiZ2bihlLnByZXYsZSxlLm5leHQpPjApfWZ1bmN0aW9uIHZuKHQsZSxuKXtyZXR1cm4oZS55LXQueSkqKG4ueC1lLngpLShlLngtdC54KSoobi55LWUueSl9ZnVuY3Rpb24gcmQodCxlKXtyZXR1cm4gdC54PT09ZS54JiZ0Lnk9PT1lLnl9ZnVuY3Rpb24gcFQodCxlLG4sbyl7bGV0IHI9b2Qodm4odCxlLG4pKSxpPW9kKHZuKHQsZSxvKSkscz1vZCh2bihuLG8sdCkpLGY9b2Qodm4obixvLGUpKTtyZXR1cm4hIShyIT09aSYmcyE9PWZ8fHI9PT0wJiZuZCh0LG4sZSl8fGk9PT0wJiZuZCh0LG8sZSl8fHM9PT0wJiZuZChuLHQsbyl8fGY9PT0wJiZuZChuLGUsbykpfWZ1bmN0aW9uIG5kKHQsZSxuKXtyZXR1cm4gZS54PD1NYXRoLm1heCh0Lngsbi54KSYmZS54Pj1NYXRoLm1pbih0Lngsbi54KSYmZS55PD1NYXRoLm1heCh0Lnksbi55KSYmZS55Pj1NYXRoLm1pbih0Lnksbi55KX1mdW5jdGlvbiBvZCh0KXtyZXR1cm4gdD4wPzE6dDwwPy0xOjB9ZnVuY3Rpb24gZEkodCxlKXtsZXQgbj10O2Rve2lmKG4uaSE9PXQuaSYmbi5uZXh0LmkhPT10LmkmJm4uaSE9PWUuaSYmbi5uZXh0LmkhPT1lLmkmJnBUKG4sbi5uZXh0LHQsZSkpcmV0dXJuITA7bj1uLm5leHR9d2hpbGUobiE9PXQpO3JldHVybiExfWZ1bmN0aW9uIExmKHQsZSl7cmV0dXJuIHZuKHQucHJldix0LHQubmV4dCk8MD92bih0LGUsdC5uZXh0KT49MCYmdm4odCx0LnByZXYsZSk+PTA6dm4odCxlLHQucHJldik8MHx8dm4odCx0Lm5leHQsZSk8MH1mdW5jdGlvbiBtSSh0LGUpe2xldCBuPXQsbz0hMSxyPSh0LngrZS54KS8yLGk9KHQueStlLnkpLzI7ZG8gbi55PmkhPW4ubmV4dC55PmkmJm4ubmV4dC55IT09bi55JiZyPChuLm5leHQueC1uLngpKihpLW4ueSkvKG4ubmV4dC55LW4ueSkrbi54JiYobz0hbyksbj1uLm5leHQ7d2hpbGUobiE9PXQpO3JldHVybiBvfWZ1bmN0aW9uIGRUKHQsZSl7bGV0IG49STAodC5pLHQueCx0LnkpLG89STAoZS5pLGUueCxlLnkpLHI9dC5uZXh0LGk9ZS5wcmV2O3JldHVybiB0Lm5leHQ9ZSxlLnByZXY9dCxuLm5leHQ9cixyLnByZXY9bixvLm5leHQ9bixuLnByZXY9byxpLm5leHQ9byxvLnByZXY9aSxvfWZ1bmN0aW9uIHVUKHQsZSxuLG8pe2xldCByPUkwKHQsZSxuKTtyZXR1cm4gbz8oci5uZXh0PW8ubmV4dCxyLnByZXY9byxvLm5leHQucHJldj1yLG8ubmV4dD1yKTooci5wcmV2PXIsci5uZXh0PXIpLHJ9ZnVuY3Rpb24gRGYodCl7dC5uZXh0LnByZXY9dC5wcmV2LHQucHJldi5uZXh0PXQubmV4dCx0LnByZXZaJiYodC5wcmV2Wi5uZXh0Wj10Lm5leHRaKSx0Lm5leHRaJiYodC5uZXh0Wi5wcmV2Wj10LnByZXZaKX1mdW5jdGlvbiBJMCh0LGUsbil7cmV0dXJue2k6dCx4OmUseTpuLHByZXY6bnVsbCxuZXh0Om51bGwsejowLHByZXZaOm51bGwsbmV4dFo6bnVsbCxzdGVpbmVyOiExfX1mdW5jdGlvbiBoSSh0LGUsbixvKXtsZXQgcj0wO2ZvcihsZXQgaT1lLHM9bi1vO2k8bjtpKz1vKXIrPSh0W3NdLXRbaV0pKih0W2krMV0rdFtzKzFdKSxzPWk7cmV0dXJuIHJ9dmFyIG1UPVooKCk9Pnt9KTt2YXIgaWQsQ28sbGM9WigoKT0+eyRzKCk7aWQ9e0NMT0NLV0lTRTpxdC5DVyxDT1VOVEVSX0NMT0NLV0lTRTpxdC5DQ1d9O2lkLnZhbGlkYXRlPWZ1bmN0aW9uKHQpe3JldHVybiB0PT09aWQuQ0xPQ0tXSVNFfHx0PT09aWQuQ09VTlRFUl9DTE9DS1dJU0V9O0NvPU9iamVjdC5mcmVlemUoaWQpfSk7dmFyIF9JLHlJLGxzLGdULEFULGJULGhULF9ULHlULEJpLHdULFRULE9ULHlhLGdJLEFJLGJJLEwwLFBlLHFyPVooKCk9PnttVCgpO1VlKCk7RnQoKTtJZSgpO1h0KCk7RmUoKTtJdCgpO2Z0KCk7WnQoKTtJZigpO1hlKCk7WWUoKTtXdCgpO3RuKCk7bGMoKTtfST1uZXcgYSx5ST1uZXcgYSxscz17fTtscy5jb21wdXRlQXJlYTJEPWZ1bmN0aW9uKHQpe3kuZGVmaW5lZCgicG9zaXRpb25zIix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygicG9zaXRpb25zLmxlbmd0aCIsdC5sZW5ndGgsMyk7bGV0IGU9dC5sZW5ndGgsbj0wO2ZvcihsZXQgbz1lLTEscj0wO3I8ZTtvPXIrKyl7bGV0IGk9dFtvXSxzPXRbcl07bis9aS54KnMueS1zLngqaS55fXJldHVybiBuKi41fTtscy5jb21wdXRlV2luZGluZ09yZGVyMkQ9ZnVuY3Rpb24odCl7cmV0dXJuIGxzLmNvbXB1dGVBcmVhMkQodCk+MD9Dby5DT1VOVEVSX0NMT0NLV0lTRTpDby5DTE9DS1dJU0V9O2xzLnRyaWFuZ3VsYXRlPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJwb3NpdGlvbnMiLHQpO2xldCBuPXR0LnBhY2tBcnJheSh0KTtyZXR1cm4gdjAobixlLDIpfTtnVD1uZXcgYSxBVD1uZXcgYSxiVD1uZXcgYSxoVD1uZXcgYSxfVD1uZXcgYSx5VD1uZXcgYSxCaT1uZXcgYSx3VD1uZXcgdHQsVFQ9bmV3IHR0LE9UPW5ldyB0dCx5YT1uZXcgdHQ7bHMuY29tcHV0ZVN1YmRpdmlzaW9uPWZ1bmN0aW9uKHQsZSxuLG8scil7cj14KHIsTS5SQURJQU5TX1BFUl9ERUdSRUUpO2xldCBpPWgobyk7eS50eXBlT2Yub2JqZWN0KCJlbGxpcHNvaWQiLHQpLHkuZGVmaW5lZCgicG9zaXRpb25zIixlKSx5LmRlZmluZWQoImluZGljZXMiLG4pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJpbmRpY2VzLmxlbmd0aCIsbi5sZW5ndGgsMykseS50eXBlT2YubnVtYmVyLmVxdWFscygiaW5kaWNlcy5sZW5ndGggJSAzIiwiMCIsbi5sZW5ndGglMywwKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW4oImdyYW51bGFyaXR5IixyLDApO2xldCBzPW4uc2xpY2UoMCksZix1PWUubGVuZ3RoLGM9bmV3IEFycmF5KHUqMyksbD1uZXcgQXJyYXkodSoyKSxwPTAsZD0wO2ZvcihmPTA7Zjx1O2YrKyl7bGV0IEU9ZVtmXTtpZihjW3ArK109RS54LGNbcCsrXT1FLnksY1twKytdPUUueixpKXtsZXQgVD1vW2ZdO2xbZCsrXT1ULngsbFtkKytdPVQueX19bGV0IG09W10sXz17fSxnPXQubWF4aW11bVJhZGl1cyxiPU0uY2hvcmRMZW5ndGgocixnKSx3PWIqYjtmb3IoO3MubGVuZ3RoPjA7KXtsZXQgRT1zLnBvcCgpLFQ9cy5wb3AoKSxDPXMucG9wKCksTj1hLmZyb21BcnJheShjLEMqMyxnVCksST1hLmZyb21BcnJheShjLFQqMyxBVCksRD1hLmZyb21BcnJheShjLEUqMyxiVCksdixMLFU7aSYmKHY9dHQuZnJvbUFycmF5KGwsQyoyLHdUKSxMPXR0LmZyb21BcnJheShsLFQqMixUVCksVT10dC5mcm9tQXJyYXkobCxFKjIsT1QpKTtsZXQgQT1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoTixoVCksZyxoVCksUz1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoSSxfVCksZyxfVCksUD1hLm11bHRpcGx5QnlTY2FsYXIoYS5ub3JtYWxpemUoRCx5VCksZyx5VCksQj1hLm1hZ25pdHVkZVNxdWFyZWQoYS5zdWJ0cmFjdChBLFMsQmkpKSxqPWEubWFnbml0dWRlU3F1YXJlZChhLnN1YnRyYWN0KFMsUCxCaSkpLEg9YS5tYWduaXR1ZGVTcXVhcmVkKGEuc3VidHJhY3QoUCxBLEJpKSksaz1NYXRoLm1heChCLGosSCksSyxYLFI7az53P0I9PT1rPyhLPWAke01hdGgubWluKEMsVCl9ICR7TWF0aC5tYXgoQyxUKX1gLGY9X1tLXSxoKGYpfHwoWD1hLmFkZChOLEksQmkpLGEubXVsdGlwbHlCeVNjYWxhcihYLC41LFgpLGMucHVzaChYLngsWC55LFgueiksZj1jLmxlbmd0aC8zLTEsX1tLXT1mLGkmJihSPXR0LmFkZCh2LEwseWEpLHR0Lm11bHRpcGx5QnlTY2FsYXIoUiwuNSxSKSxsLnB1c2goUi54LFIueSkpKSxzLnB1c2goQyxmLEUpLHMucHVzaChmLFQsRSkpOmo9PT1rPyhLPWAke01hdGgubWluKFQsRSl9ICR7TWF0aC5tYXgoVCxFKX1gLGY9X1tLXSxoKGYpfHwoWD1hLmFkZChJLEQsQmkpLGEubXVsdGlwbHlCeVNjYWxhcihYLC41LFgpLGMucHVzaChYLngsWC55LFgueiksZj1jLmxlbmd0aC8zLTEsX1tLXT1mLGkmJihSPXR0LmFkZChMLFUseWEpLHR0Lm11bHRpcGx5QnlTY2FsYXIoUiwuNSxSKSxsLnB1c2goUi54LFIueSkpKSxzLnB1c2goVCxmLEMpLHMucHVzaChmLEUsQykpOkg9PT1rJiYoSz1gJHtNYXRoLm1pbihFLEMpfSAke01hdGgubWF4KEUsQyl9YCxmPV9bS10saChmKXx8KFg9YS5hZGQoRCxOLEJpKSxhLm11bHRpcGx5QnlTY2FsYXIoWCwuNSxYKSxjLnB1c2goWC54LFgueSxYLnopLGY9Yy5sZW5ndGgvMy0xLF9bS109ZixpJiYoUj10dC5hZGQoVSx2LHlhKSx0dC5tdWx0aXBseUJ5U2NhbGFyKFIsLjUsUiksbC5wdXNoKFIueCxSLnkpKSkscy5wdXNoKEUsZixUKSxzLnB1c2goZixDLFQpKToobS5wdXNoKEMpLG0ucHVzaChUKSxtLnB1c2goRSkpfWxldCBPPXthdHRyaWJ1dGVzOntwb3NpdGlvbjpuZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmN9KX0saW5kaWNlczptLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTfTtyZXR1cm4gaSYmKE8uYXR0cmlidXRlcy5zdD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bH0pKSxuZXcgVXQoTyl9O2dJPW5ldyBjdCxBST1uZXcgY3QsYkk9bmV3IGN0LEwwPW5ldyBjdDtscy5jb21wdXRlUmh1bWJMaW5lU3ViZGl2aXNpb249ZnVuY3Rpb24odCxlLG4sbyxyKXtyPXgocixNLlJBRElBTlNfUEVSX0RFR1JFRSk7bGV0IGk9aChvKTt5LnR5cGVPZi5vYmplY3QoImVsbGlwc29pZCIsdCkseS5kZWZpbmVkKCJwb3NpdGlvbnMiLGUpLHkuZGVmaW5lZCgiaW5kaWNlcyIsbikseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoImluZGljZXMubGVuZ3RoIixuLmxlbmd0aCwzKSx5LnR5cGVPZi5udW1iZXIuZXF1YWxzKCJpbmRpY2VzLmxlbmd0aCAlIDMiLCIwIixuLmxlbmd0aCUzLDApLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbigiZ3JhbnVsYXJpdHkiLHIsMCk7bGV0IHM9bi5zbGljZSgwKSxmLHU9ZS5sZW5ndGgsYz1uZXcgQXJyYXkodSozKSxsPW5ldyBBcnJheSh1KjIpLHA9MCxkPTA7Zm9yKGY9MDtmPHU7ZisrKXtsZXQgQz1lW2ZdO2lmKGNbcCsrXT1DLngsY1twKytdPUMueSxjW3ArK109Qy56LGkpe2xldCBOPW9bZl07bFtkKytdPU4ueCxsW2QrK109Ti55fX1sZXQgbT1bXSxfPXt9LGc9dC5tYXhpbXVtUmFkaXVzLGI9TS5jaG9yZExlbmd0aChyLGcpLHc9bmV3IFpvKHZvaWQgMCx2b2lkIDAsdCksTz1uZXcgWm8odm9pZCAwLHZvaWQgMCx0KSxFPW5ldyBabyh2b2lkIDAsdm9pZCAwLHQpO2Zvcig7cy5sZW5ndGg+MDspe2xldCBDPXMucG9wKCksTj1zLnBvcCgpLEk9cy5wb3AoKSxEPWEuZnJvbUFycmF5KGMsSSozLGdUKSx2PWEuZnJvbUFycmF5KGMsTiozLEFUKSxMPWEuZnJvbUFycmF5KGMsQyozLGJUKSxVLEEsUztpJiYoVT10dC5mcm9tQXJyYXkobCxJKjIsd1QpLEE9dHQuZnJvbUFycmF5KGwsTioyLFRUKSxTPXR0LmZyb21BcnJheShsLEMqMixPVCkpO2xldCBQPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoRCxnSSksQj10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHYsQUkpLGo9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhMLGJJKTt3LnNldEVuZFBvaW50cyhQLEIpO2xldCBIPXcuc3VyZmFjZURpc3RhbmNlO08uc2V0RW5kUG9pbnRzKEIsaik7bGV0IGs9Ty5zdXJmYWNlRGlzdGFuY2U7RS5zZXRFbmRQb2ludHMoaixQKTtsZXQgSz1FLnN1cmZhY2VEaXN0YW5jZSxYPU1hdGgubWF4KEgsayxLKSxSLG90LGF0LHB0LHl0O1g+Yj9IPT09WD8oUj1gJHtNYXRoLm1pbihJLE4pfSAke01hdGgubWF4KEksTil9YCxmPV9bUl0saChmKXx8KG90PXcuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uKC41LEwwKSxhdD0oUC5oZWlnaHQrQi5oZWlnaHQpKi41LHB0PWEuZnJvbVJhZGlhbnMob3QubG9uZ2l0dWRlLG90LmxhdGl0dWRlLGF0LHQsQmkpLGMucHVzaChwdC54LHB0LnkscHQueiksZj1jLmxlbmd0aC8zLTEsX1tSXT1mLGkmJih5dD10dC5hZGQoVSxBLHlhKSx0dC5tdWx0aXBseUJ5U2NhbGFyKHl0LC41LHl0KSxsLnB1c2goeXQueCx5dC55KSkpLHMucHVzaChJLGYsQykscy5wdXNoKGYsTixDKSk6az09PVg/KFI9YCR7TWF0aC5taW4oTixDKX0gJHtNYXRoLm1heChOLEMpfWAsZj1fW1JdLGgoZil8fChvdD1PLmludGVycG9sYXRlVXNpbmdGcmFjdGlvbiguNSxMMCksYXQ9KEIuaGVpZ2h0K2ouaGVpZ2h0KSouNSxwdD1hLmZyb21SYWRpYW5zKG90LmxvbmdpdHVkZSxvdC5sYXRpdHVkZSxhdCx0LEJpKSxjLnB1c2gocHQueCxwdC55LHB0LnopLGY9Yy5sZW5ndGgvMy0xLF9bUl09ZixpJiYoeXQ9dHQuYWRkKEEsUyx5YSksdHQubXVsdGlwbHlCeVNjYWxhcih5dCwuNSx5dCksbC5wdXNoKHl0LngseXQueSkpKSxzLnB1c2goTixmLEkpLHMucHVzaChmLEMsSSkpOks9PT1YJiYoUj1gJHtNYXRoLm1pbihDLEkpfSAke01hdGgubWF4KEMsSSl9YCxmPV9bUl0saChmKXx8KG90PUUuaW50ZXJwb2xhdGVVc2luZ0ZyYWN0aW9uKC41LEwwKSxhdD0oai5oZWlnaHQrUC5oZWlnaHQpKi41LHB0PWEuZnJvbVJhZGlhbnMob3QubG9uZ2l0dWRlLG90LmxhdGl0dWRlLGF0LHQsQmkpLGMucHVzaChwdC54LHB0LnkscHQueiksZj1jLmxlbmd0aC8zLTEsX1tSXT1mLGkmJih5dD10dC5hZGQoUyxVLHlhKSx0dC5tdWx0aXBseUJ5U2NhbGFyKHl0LC41LHl0KSxsLnB1c2goeXQueCx5dC55KSkpLHMucHVzaChDLGYsTikscy5wdXNoKGYsSSxOKSk6KG0ucHVzaChJKSxtLnB1c2goTiksbS5wdXNoKEMpKX1sZXQgVD17YXR0cmlidXRlczp7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpjfSl9LGluZGljZXM6bSxwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFU307cmV0dXJuIGkmJihULmF0dHJpYnV0ZXMuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmx9KSksbmV3IFV0KFQpfTtscy5zY2FsZVRvR2VvZGV0aWNIZWlnaHQ9ZnVuY3Rpb24odCxlLG4sbyl7bj14KG4sJC5kZWZhdWx0KTtsZXQgcj1fSSxpPXlJO2lmKGU9eChlLDApLG89eChvLCEwKSxoKHQpKXtsZXQgcz10Lmxlbmd0aDtmb3IobGV0IGY9MDtmPHM7Zis9MylhLmZyb21BcnJheSh0LGYsaSksbyYmKGk9bi5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGksaSkpLGUhPT0wJiYocj1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChpLHIpLGEubXVsdGlwbHlCeVNjYWxhcihyLGUsciksYS5hZGQoaSxyLGkpKSx0W2ZdPWkueCx0W2YrMV09aS55LHRbZisyXT1pLnp9cmV0dXJuIHR9O1BlPWxzfSk7ZnVuY3Rpb24gcHMoKXt0aGlzLl9hcnJheT1bXSx0aGlzLl9vZmZzZXQ9MCx0aGlzLl9sZW5ndGg9MH12YXIgRDAsRVQ9WigoKT0+e09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKHBzLnByb3RvdHlwZSx7bGVuZ3RoOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fbGVuZ3RofX19KTtwcy5wcm90b3R5cGUuZW5xdWV1ZT1mdW5jdGlvbih0KXt0aGlzLl9hcnJheS5wdXNoKHQpLHRoaXMuX2xlbmd0aCsrfTtwcy5wcm90b3R5cGUuZGVxdWV1ZT1mdW5jdGlvbigpe2lmKHRoaXMuX2xlbmd0aD09PTApcmV0dXJuO2xldCB0PXRoaXMuX2FycmF5LGU9dGhpcy5fb2Zmc2V0LG49dFtlXTtyZXR1cm4gdFtlXT12b2lkIDAsZSsrLGU+MTAmJmUqMj50Lmxlbmd0aCYmKHRoaXMuX2FycmF5PXQuc2xpY2UoZSksZT0wKSx0aGlzLl9vZmZzZXQ9ZSx0aGlzLl9sZW5ndGgtLSxufTtwcy5wcm90b3R5cGUucGVlaz1mdW5jdGlvbigpe2lmKHRoaXMuX2xlbmd0aCE9PTApcmV0dXJuIHRoaXMuX2FycmF5W3RoaXMuX29mZnNldF19O3BzLnByb3RvdHlwZS5jb250YWlucz1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fYXJyYXkuaW5kZXhPZih0KSE9PS0xfTtwcy5wcm90b3R5cGUuY2xlYXI9ZnVuY3Rpb24oKXt0aGlzLl9hcnJheS5sZW5ndGg9dGhpcy5fb2Zmc2V0PXRoaXMuX2xlbmd0aD0wfTtwcy5wcm90b3R5cGUuc29ydD1mdW5jdGlvbih0KXt0aGlzLl9vZmZzZXQ+MCYmKHRoaXMuX2FycmF5PXRoaXMuX2FycmF5LnNsaWNlKHRoaXMuX29mZnNldCksdGhpcy5fb2Zmc2V0PTApLHRoaXMuX2FycmF5LnNvcnQodCl9O0QwPXBzfSk7ZnVuY3Rpb24gQ1QodCxlLG4sbyl7cmV0dXJuIHR0LnN1YnRyYWN0KGUsdCxwYyksdHQubXVsdGlwbHlCeVNjYWxhcihwYyxuL28scGMpLHR0LmFkZCh0LHBjLHBjKSxbcGMueCxwYy55XX1mdW5jdGlvbiB3SSh0LGUsbixvKXtyZXR1cm4gYS5zdWJ0cmFjdChlLHQsZHMpLGEubXVsdGlwbHlCeVNjYWxhcihkcyxuL28sZHMpLGEuYWRkKHQsZHMsZHMpLFtkcy54LGRzLnksZHMuel19ZnVuY3Rpb24gUEkodCxlLG4pe2xldCBvPW4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModCxjZCkscj1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsYWQpO2lmKE1hdGguc2lnbihvLmxhdGl0dWRlKT09PU1hdGguc2lnbihyLmxhdGl0dWRlKSlyZXR1cm47c2Quc2V0RW5kUG9pbnRzKG8scik7bGV0IGk9c2QuZmluZEludGVyc2VjdGlvbldpdGhMYXRpdHVkZSgwLHhJKTtpZighaChpKSlyZXR1cm47bGV0IHM9TWF0aC5taW4oby5sb25naXR1ZGUsci5sb25naXR1ZGUpLGY9TWF0aC5tYXgoby5sb25naXR1ZGUsci5sb25naXR1ZGUpO2lmKE1hdGguYWJzKGYtcyk+TS5QSSl7bGV0IHU9cztzPWYsZj11fWlmKCEoaS5sb25naXR1ZGU8c3x8aS5sb25naXR1ZGU+ZikpcmV0dXJuIG4uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oaSl9ZnVuY3Rpb24gTUkodCxlLG4sbyl7aWYobz09PV9lLlJIVU1CKXJldHVybiBQSSh0LGUsbik7bGV0IHI9aG8ubGluZVNlZ21lbnRQbGFuZSh0LGUsb24uT1JJR0lOX1hZX1BMQU5FKTtpZihoKHIpKXJldHVybiBuLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UocixyKX1mdW5jdGlvbiBJSSh0LGUsbil7bGV0IG89W10scixpLHMsZix1LGM9MDtmb3IoO2M8dC5sZW5ndGg7KXtyPXRbY10saT10WyhjKzEpJXQubGVuZ3RoXSxzPU0uc2lnbihyLnopLGY9TS5zaWduKGkueik7bGV0IGw9cD0+ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhwLE5JKS5sb25naXR1ZGU7aWYocz09PTApby5wdXNoKHtwb3NpdGlvbjpjLHR5cGU6cyx2aXNpdGVkOiExLG5leHQ6Zix0aGV0YTpsKHIpfSk7ZWxzZSBpZihmIT09MCl7aWYodT1NSShyLGksZSxuKSwrK2MsIWgodSkpY29udGludWU7dC5zcGxpY2UoYywwLHUpLG8ucHVzaCh7cG9zaXRpb246Yyx0eXBlOnMsdmlzaXRlZDohMSxuZXh0OmYsdGhldGE6bCh1KX0pfSsrY31yZXR1cm4gb31mdW5jdGlvbiB4VCh0LGUsbixvLHIsaSxzKXtsZXQgZj1bXSx1PWksYz1wPT5kPT5kLnBvc2l0aW9uPT09cCxsPVtdO2Rve2xldCBwPW5bdV07Zi5wdXNoKHApO2xldCBkPW8uZmluZEluZGV4KGModSkpLG09b1tkXTtpZighaChtKSl7Kyt1O2NvbnRpbnVlfWxldHt2aXNpdGVkOl8sdHlwZTpnLG5leHQ6Yn09bTtpZihtLnZpc2l0ZWQ9ITAsZz09PTApe2lmKGI9PT0wKXtsZXQgVD1vW2QtKHM/MTotMSldO2lmKFQ/LnBvc2l0aW9uPT09dSsxKVQudmlzaXRlZD0hMDtlbHNleysrdTtjb250aW51ZX19aWYoIV8mJnMmJmI+MHx8aT09PXUmJiFzJiZiPDApeysrdTtjb250aW51ZX19aWYoIShzP2c+PTA6Zzw9MCkpeysrdTtjb250aW51ZX1ffHxsLnB1c2godSk7bGV0IE89ZCsocz8xOi0xKSxFPW9bT107aWYoIWgoRSkpeysrdTtjb250aW51ZX11PUUucG9zaXRpb259d2hpbGUodTxuLmxlbmd0aCYmdT49MCYmdSE9PWkmJmYubGVuZ3RoPG4ubGVuZ3RoKTt0LnNwbGljZShlLHIsZik7Zm9yKGxldCBwIG9mIGwpZT14VCh0LCsrZSxuLG8sMCxwLCFzKTtyZXR1cm4gZX12YXIgT24scGMsZHMsY2QsYWQsVEksT0ksc2QsRUksUkksU0ksQ0kseEksTkksdkksTEksREksRkksUlQsU1QsQkksVUkseWUsRmY9WigoKT0+e2ZjKCk7anIoKTtVZSgpO0Z0KCk7SWUoKTtGZSgpO0l0KCk7ZnQoKTtadCgpO0lmKCk7WGUoKTtZZSgpO2FuKCk7c2koKTskZSgpO3RjKCk7V3QoKTtCbigpO2ZzKCk7ZlQoKTtxcigpO3RuKCk7S28oKTtFVCgpO2xjKCk7T249e307T24uY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aD1mdW5jdGlvbih0LGUpe2xldCBuPTAsbz1bdF07Zm9yKDtvLmxlbmd0aD4wOyl7bGV0IHI9by5wb3AoKTtpZighaChyKSljb250aW51ZTtuKz0yO2xldCBpPXIucG9zaXRpb25zLHM9ci5ob2xlcztpZihoKGkpJiZpLmxlbmd0aD4wJiYobis9aS5sZW5ndGgqZS5wYWNrZWRMZW5ndGgpLGgocykpe2xldCBmPXMubGVuZ3RoO2ZvcihsZXQgdT0wO3U8ZjsrK3Upby5wdXNoKHNbdV0pfX1yZXR1cm4gbn07T24ucGFja1BvbHlnb25IaWVyYXJjaHk9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9W3RdO2Zvcig7ci5sZW5ndGg+MDspe2xldCBpPXIucG9wKCk7aWYoIWgoaSkpY29udGludWU7bGV0IHM9aS5wb3NpdGlvbnMsZj1pLmhvbGVzO2lmKGVbbisrXT1oKHMpP3MubGVuZ3RoOjAsZVtuKytdPWgoZik/Zi5sZW5ndGg6MCxoKHMpKXtsZXQgdT1zLmxlbmd0aDtmb3IobGV0IGM9MDtjPHU7KytjLG4rPW8ucGFja2VkTGVuZ3RoKW8ucGFjayhzW2NdLGUsbil9aWYoaChmKSl7bGV0IHU9Zi5sZW5ndGg7Zm9yKGxldCBjPTA7Yzx1OysrYylyLnB1c2goZltjXSl9fXJldHVybiBufTtPbi51bnBhY2tQb2x5Z29uSGllcmFyY2h5PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10W2UrK10scj10W2UrK10saT1uZXcgQXJyYXkobykscz1yPjA/bmV3IEFycmF5KHIpOnZvaWQgMDtmb3IobGV0IGY9MDtmPG87KytmLGUrPW4ucGFja2VkTGVuZ3RoKWlbZl09bi51bnBhY2sodCxlKTtmb3IobGV0IGY9MDtmPHI7KytmKXNbZl09T24udW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsbiksZT1zW2ZdLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIHNbZl0uc3RhcnRpbmdJbmRleDtyZXR1cm57cG9zaXRpb25zOmksaG9sZXM6cyxzdGFydGluZ0luZGV4OmV9fTtwYz1uZXcgdHQ7ZHM9bmV3IGE7T24uc3ViZGl2aWRlTGluZUNvdW50PWZ1bmN0aW9uKHQsZSxuKXtsZXQgcj1hLmRpc3RhbmNlKHQsZSkvbixpPU1hdGgubWF4KDAsTWF0aC5jZWlsKE0ubG9nMihyKSkpO3JldHVybiBNYXRoLnBvdygyLGkpfTtjZD1uZXcgY3QsYWQ9bmV3IGN0LFRJPW5ldyBjdCxPST1uZXcgYSxzZD1uZXcgWm87T24uc3ViZGl2aWRlUmh1bWJMaW5lQ291bnQ9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9dC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlLGNkKSxpPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobixhZCksZj1uZXcgWm8ocixpLHQpLnN1cmZhY2VEaXN0YW5jZS9vLHU9TWF0aC5tYXgoMCxNYXRoLmNlaWwoTS5sb2cyKGYpKSk7cmV0dXJuIE1hdGgucG93KDIsdSl9O09uLnN1YmRpdmlkZVRleGNvb3JkTGluZT1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9T24uc3ViZGl2aWRlTGluZUNvdW50KG4sbyxyKSxmPXR0LmRpc3RhbmNlKHQsZSksdT1mL3MsYz1pO2MubGVuZ3RoPXMqMjtsZXQgbD0wO2ZvcihsZXQgcD0wO3A8cztwKyspe2xldCBkPUNUKHQsZSxwKnUsZik7Y1tsKytdPWRbMF0sY1tsKytdPWRbMV19cmV0dXJuIGN9O09uLnN1YmRpdmlkZUxpbmU9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9T24uc3ViZGl2aWRlTGluZUNvdW50KHQsZSxuKSxpPWEuZGlzdGFuY2UodCxlKSxzPWkvcjtoKG8pfHwobz1bXSk7bGV0IGY9bztmLmxlbmd0aD1yKjM7bGV0IHU9MDtmb3IobGV0IGM9MDtjPHI7YysrKXtsZXQgbD13SSh0LGUsYypzLGkpO2ZbdSsrXT1sWzBdLGZbdSsrXT1sWzFdLGZbdSsrXT1sWzJdfXJldHVybiBmfTtPbi5zdWJkaXZpZGVUZXhjb29yZFJodW1iTGluZT1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXtsZXQgZj1uLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG8sY2QpLHU9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLGFkKTtzZC5zZXRFbmRQb2ludHMoZix1KTtsZXQgYz1zZC5zdXJmYWNlRGlzdGFuY2UvaSxsPU1hdGgubWF4KDAsTWF0aC5jZWlsKE0ubG9nMihjKSkpLHA9TWF0aC5wb3coMixsKSxkPXR0LmRpc3RhbmNlKHQsZSksbT1kL3AsXz1zO18ubGVuZ3RoPXAqMjtsZXQgZz0wO2ZvcihsZXQgYj0wO2I8cDtiKyspe2xldCB3PUNUKHQsZSxiKm0sZCk7X1tnKytdPXdbMF0sX1tnKytdPXdbMV19cmV0dXJuIF99O09uLnN1YmRpdmlkZVJodW1iTGluZT1mdW5jdGlvbih0LGUsbixvLHIpe2xldCBpPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZSxjZCkscz10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG4sYWQpLGY9bmV3IFpvKGkscyx0KSx1PWYuc3VyZmFjZURpc3RhbmNlL28sYz1NYXRoLm1heCgwLE1hdGguY2VpbChNLmxvZzIodSkpKSxsPU1hdGgucG93KDIsYykscD1mLnN1cmZhY2VEaXN0YW5jZS9sO2gocil8fChyPVtdKTtsZXQgZD1yO2QubGVuZ3RoPWwqMztsZXQgbT0wO2ZvcihsZXQgXz0wO188bDtfKyspe2xldCBnPWYuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZShfKnAsVEkpLGI9dC5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihnLE9JKTtkW20rK109Yi54LGRbbSsrXT1iLnksZFttKytdPWIuen1yZXR1cm4gZH07RUk9bmV3IGEsUkk9bmV3IGEsU0k9bmV3IGEsQ0k9bmV3IGE7T24uc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQ9ZnVuY3Rpb24odCxlLG4sbyxyKXtvPXgobywkLmRlZmF1bHQpO2xldCBpPUVJLHM9UkksZj1TSSx1PUNJO2lmKGgodCkmJmgodC5hdHRyaWJ1dGVzKSYmaCh0LmF0dHJpYnV0ZXMucG9zaXRpb24pKXtsZXQgYz10LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLGw9Yy5sZW5ndGgvMjtmb3IobGV0IHA9MDtwPGw7cCs9MylhLmZyb21BcnJheShjLHAsZiksby5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZixpKSx1PW8uc2NhbGVUb0dlb2RldGljU3VyZmFjZShmLHUpLHM9YS5tdWx0aXBseUJ5U2NhbGFyKGksbixzKSxzPWEuYWRkKHUscyxzKSxjW3ArbF09cy54LGNbcCsxK2xdPXMueSxjW3ArMitsXT1zLnosciYmKHU9YS5jbG9uZShmLHUpKSxzPWEubXVsdGlwbHlCeVNjYWxhcihpLGUscykscz1hLmFkZCh1LHMscyksY1twXT1zLngsY1twKzFdPXMueSxjW3ArMl09cy56fXJldHVybiB0fTtPbi5wb2x5Z29uT3V0bGluZXNGcm9tSGllcmFyY2h5PWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1bXSxyPW5ldyBEMDtyLmVucXVldWUodCk7bGV0IGkscyxmO2Zvcig7ci5sZW5ndGghPT0wOyl7bGV0IHU9ci5kZXF1ZXVlKCksYz11LnBvc2l0aW9ucztpZihlKWZvcihmPWMubGVuZ3RoLGk9MDtpPGY7aSsrKW4uc2NhbGVUb0dlb2RldGljU3VyZmFjZShjW2ldLGNbaV0pO2lmKGM9eG4oYyxhLmVxdWFsc0Vwc2lsb24sITApLGMubGVuZ3RoPDMpY29udGludWU7bGV0IGw9dS5ob2xlcz91LmhvbGVzLmxlbmd0aDowO2ZvcihpPTA7aTxsO2krKyl7bGV0IHA9dS5ob2xlc1tpXSxkPXAucG9zaXRpb25zO2lmKGUpZm9yKGY9ZC5sZW5ndGgscz0wO3M8ZjsrK3Mpbi5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGRbc10sZFtzXSk7aWYoZD14bihkLGEuZXF1YWxzRXBzaWxvbiwhMCksZC5sZW5ndGg8Myljb250aW51ZTtvLnB1c2goZCk7bGV0IG09MDtmb3IoaChwLmhvbGVzKSYmKG09cC5ob2xlcy5sZW5ndGgpLHM9MDtzPG07cysrKXIuZW5xdWV1ZShwLmhvbGVzW3NdKX1vLnB1c2goYyl9cmV0dXJuIG99O3hJPW5ldyBjdDtOST1uZXcgY3Q7T24uc3BsaXRQb2x5Z29uc09uRXF1YXRvcj1mdW5jdGlvbih0LGUsbixvKXtoKG8pfHwobz1bXSksby5zcGxpY2UoMCwwLC4uLnQpLG8ubGVuZ3RoPXQubGVuZ3RoO2xldCByPTA7Zm9yKDtyPG8ubGVuZ3RoOyl7bGV0IGk9b1tyXSxzPWkuc2xpY2UoKTtpZihpLmxlbmd0aDwzKXtvW3JdPXMsKytyO2NvbnRpbnVlfWxldCBmPUlJKHMsZSxuKTtpZihzLmxlbmd0aD09PWkubGVuZ3RofHxmLmxlbmd0aDw9MSl7b1tyXT1zLCsrcjtjb250aW51ZX1mLnNvcnQoKGMsbCk9PmMudGhldGEtbC50aGV0YSk7bGV0IHU9c1swXS56Pj0wO3I9eFQobyxyLHMsZiwxLDAsdSl9cmV0dXJuIG99O09uLnBvbHlnb25zRnJvbUhpZXJhcmNoeT1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9W10sZj1bXSx1PW5ldyBEMDt1LmVucXVldWUodCk7bGV0IGM9aChpKTtmb3IoO3UubGVuZ3RoIT09MDspe2xldCBsPXUuZGVxdWV1ZSgpLHA9bC5wb3NpdGlvbnMsZD1sLmhvbGVzLG0sXztpZihvKWZvcihfPXAubGVuZ3RoLG09MDttPF87bSsrKXIuc2NhbGVUb0dlb2RldGljU3VyZmFjZShwW21dLHBbbV0pO2lmKGV8fChwPXhuKHAsYS5lcXVhbHNFcHNpbG9uLCEwKSkscC5sZW5ndGg8Myljb250aW51ZTtsZXQgZz1uKHApO2lmKCFoKGcpKWNvbnRpbnVlO2xldCBiPVtdLHc9UGUuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKGcpO2lmKHc9PT1Dby5DTE9DS1dJU0UmJihnLnJldmVyc2UoKSxwPXAuc2xpY2UoKS5yZXZlcnNlKCkpLGMpe2M9ITE7bGV0IE49W3BdO2lmKE49aShOLE4pLE4ubGVuZ3RoPjEpe2ZvcihsZXQgSSBvZiBOKXUuZW5xdWV1ZShuZXcgYVQoSSxkKSk7Y29udGludWV9fWxldCBPPXAuc2xpY2UoKSxFPWgoZCk/ZC5sZW5ndGg6MCxUPVtdLEM7Zm9yKG09MDttPEU7bSsrKXtsZXQgTj1kW21dLEk9Ti5wb3NpdGlvbnM7aWYobylmb3IoXz1JLmxlbmd0aCxDPTA7QzxfOysrQylyLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoSVtDXSxJW0NdKTtpZihlfHwoST14bihJLGEuZXF1YWxzRXBzaWxvbiwhMCkpLEkubGVuZ3RoPDMpY29udGludWU7bGV0IEQ9bihJKTtpZighaChEKSljb250aW51ZTt3PVBlLmNvbXB1dGVXaW5kaW5nT3JkZXIyRChEKSx3PT09Q28uQ0xPQ0tXSVNFJiYoRC5yZXZlcnNlKCksST1JLnNsaWNlKCkucmV2ZXJzZSgpKSxULnB1c2goSSksYi5wdXNoKE8ubGVuZ3RoKSxPPU8uY29uY2F0KEkpLGc9Zy5jb25jYXQoRCk7bGV0IHY9MDtmb3IoaChOLmhvbGVzKSYmKHY9Ti5ob2xlcy5sZW5ndGgpLEM9MDtDPHY7QysrKXUuZW5xdWV1ZShOLmhvbGVzW0NdKX1zLnB1c2goe291dGVyUmluZzpwLGhvbGVzOlR9KSxmLnB1c2goe3Bvc2l0aW9uczpPLHBvc2l0aW9uczJEOmcsaG9sZXM6Yn0pfXJldHVybntoaWVyYXJjaHk6cyxwb2x5Z29uczpmfX07dkk9bmV3IHR0LExJPW5ldyBhLERJPW5ldyBlZSxGST1uZXcgUTtPbi5jb21wdXRlQm91bmRpbmdSZWN0YW5nbGU9ZnVuY3Rpb24odCxlLG4sbyxyKXtsZXQgaT1lZS5mcm9tQXhpc0FuZ2xlKHQsbyxESSkscz1RLmZyb21RdWF0ZXJuaW9uKGksRkkpLGY9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGM9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLGw9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLHA9bi5sZW5ndGg7Zm9yKGxldCBkPTA7ZDxwOysrZCl7bGV0IG09YS5jbG9uZShuW2RdLExJKTtRLm11bHRpcGx5QnlWZWN0b3IocyxtLG0pO2xldCBfPWUobSx2SSk7aChfKSYmKGY9TWF0aC5taW4oZixfLngpLHU9TWF0aC5tYXgodSxfLngpLGM9TWF0aC5taW4oYyxfLnkpLGw9TWF0aC5tYXgobCxfLnkpKX1yZXR1cm4gci54PWYsci55PWMsci53aWR0aD11LWYsci5oZWlnaHQ9bC1jLHJ9O09uLmNyZWF0ZUdlb21ldHJ5RnJvbVBvc2l0aW9ucz1mdW5jdGlvbih0LGUsbixvLHIsaSxzKXtsZXQgZj1QZS50cmlhbmd1bGF0ZShlLnBvc2l0aW9uczJELGUuaG9sZXMpO2YubGVuZ3RoPDMmJihmPVswLDEsMl0pO2xldCB1PWUucG9zaXRpb25zLGM9aChuKSxsPWM/bi5wb3NpdGlvbnM6dm9pZCAwO2lmKHIpe2xldCBwPXUubGVuZ3RoLGQ9bmV3IEFycmF5KHAqMyksbT0wO2ZvcihsZXQgYj0wO2I8cDtiKyspe2xldCB3PXVbYl07ZFttKytdPXcueCxkW20rK109dy55LGRbbSsrXT13Lnp9bGV0IF89e2F0dHJpYnV0ZXM6e3Bvc2l0aW9uOm5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZH0pfSxpbmRpY2VzOmYscHJpbWl0aXZlVHlwZTpCdC5UUklBTkdMRVN9O2MmJihfLmF0dHJpYnV0ZXMuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOnR0LnBhY2tBcnJheShsKX0pKTtsZXQgZz1uZXcgVXQoXyk7cmV0dXJuIGkubm9ybWFsP1ZlLmNvbXB1dGVOb3JtYWwoZyk6Z31pZihzPT09X2UuR0VPREVTSUMpcmV0dXJuIFBlLmNvbXB1dGVTdWJkaXZpc2lvbih0LHUsZixsLG8pO2lmKHM9PT1fZS5SSFVNQilyZXR1cm4gUGUuY29tcHV0ZVJodW1iTGluZVN1YmRpdmlzaW9uKHQsdSxmLGwsbyl9O1JUPVtdLFNUPVtdLEJJPW5ldyBhLFVJPW5ldyBhO09uLmNvbXB1dGVXYWxsR2VvbWV0cnk9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe2xldCBzLGYsdSxjLGwscCxkLG0sXyxnPXQubGVuZ3RoLGI9MCx3PTAsTz1oKGUpLEU9Tz9lLnBvc2l0aW9uczp2b2lkIDA7aWYocilmb3IoZj1nKjMqMixzPW5ldyBBcnJheShmKjIpLE8mJihfPWcqMioyLG09bmV3IEFycmF5KF8qMikpLHU9MDt1PGc7dSsrKWM9dFt1XSxsPXRbKHUrMSklZ10sc1tiXT1zW2IrZl09Yy54LCsrYixzW2JdPXNbYitmXT1jLnksKytiLHNbYl09c1tiK2ZdPWMueiwrK2Isc1tiXT1zW2IrZl09bC54LCsrYixzW2JdPXNbYitmXT1sLnksKytiLHNbYl09c1tiK2ZdPWwueiwrK2IsTyYmKHA9RVt1XSxkPUVbKHUrMSklZ10sbVt3XT1tW3crX109cC54LCsrdyxtW3ddPW1bdytfXT1wLnksKyt3LG1bd109bVt3K19dPWQueCwrK3csbVt3XT1tW3crX109ZC55LCsrdyk7ZWxzZXtsZXQgRD1NLmNob3JkTGVuZ3RoKG8sbi5tYXhpbXVtUmFkaXVzKSx2PTA7aWYoaT09PV9lLkdFT0RFU0lDKWZvcih1PTA7dTxnO3UrKyl2Kz1Pbi5zdWJkaXZpZGVMaW5lQ291bnQodFt1XSx0Wyh1KzEpJWddLEQpO2Vsc2UgaWYoaT09PV9lLlJIVU1CKWZvcih1PTA7dTxnO3UrKyl2Kz1Pbi5zdWJkaXZpZGVSaHVtYkxpbmVDb3VudChuLHRbdV0sdFsodSsxKSVnXSxEKTtmb3IoZj0oditnKSozLHM9bmV3IEFycmF5KGYqMiksTyYmKF89KHYrZykqMixtPW5ldyBBcnJheShfKjIpKSx1PTA7dTxnO3UrKyl7Yz10W3VdLGw9dFsodSsxKSVnXTtsZXQgTCxVO08mJihwPUVbdV0sZD1FWyh1KzEpJWddKSxpPT09X2UuR0VPREVTSUM/KEw9T24uc3ViZGl2aWRlTGluZShjLGwsRCxTVCksTyYmKFU9T24uc3ViZGl2aWRlVGV4Y29vcmRMaW5lKHAsZCxjLGwsRCxSVCkpKTppPT09X2UuUkhVTUImJihMPU9uLnN1YmRpdmlkZVJodW1iTGluZShuLGMsbCxELFNUKSxPJiYoVT1Pbi5zdWJkaXZpZGVUZXhjb29yZFJodW1iTGluZShwLGQsbixjLGwsRCxSVCkpKTtsZXQgQT1MLmxlbmd0aDtmb3IobGV0IFM9MDtTPEE7KytTLCsrYilzW2JdPUxbU10sc1tiK2ZdPUxbU107aWYoc1tiXT1sLngsc1tiK2ZdPWwueCwrK2Isc1tiXT1sLnksc1tiK2ZdPWwueSwrK2Isc1tiXT1sLnosc1tiK2ZdPWwueiwrK2IsTyl7bGV0IFM9VS5sZW5ndGg7Zm9yKGxldCBQPTA7UDxTOysrUCwrK3cpbVt3XT1VW1BdLG1bdytfXT1VW1BdO21bd109ZC54LG1bdytfXT1kLngsKyt3LG1bd109ZC55LG1bdytfXT1kLnksKyt3fX19Zz1zLmxlbmd0aDtsZXQgVD1EdC5jcmVhdGVUeXBlZEFycmF5KGcvMyxnLXQubGVuZ3RoKjYpLEM9MDtmb3IoZy89Nix1PTA7dTxnO3UrKyl7bGV0IEQ9dSx2PUQrMSxMPUQrZyxVPUwrMTtjPWEuZnJvbUFycmF5KHMsRCozLEJJKSxsPWEuZnJvbUFycmF5KHMsdiozLFVJKSwhYS5lcXVhbHNFcHNpbG9uKGMsbCxNLkVQU0lMT04xMCxNLkVQU0lMT04xMCkmJihUW0MrK109RCxUW0MrK109TCxUW0MrK109dixUW0MrK109dixUW0MrK109TCxUW0MrK109VSl9bGV0IE49e2F0dHJpYnV0ZXM6bmV3IGllKHtwb3NpdGlvbjpuZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnN9KX0pLGluZGljZXM6VCxwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFU307cmV0dXJuIE8mJihOLmF0dHJpYnV0ZXMuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOm19KSksbmV3IFV0KE4pfTt5ZT1Pbn0pO2Z1bmN0aW9uIFpJKHQsZSxuLG8scixpLHMsZix1KXtsZXQgYz10LnBvc2l0aW9ucyxsPVBlLnRyaWFuZ3VsYXRlKHQucG9zaXRpb25zMkQsdC5ob2xlcyk7bC5sZW5ndGg8MyYmKGw9WzAsMSwyXSk7bGV0IHA9RHQuY3JlYXRlVHlwZWRBcnJheShjLmxlbmd0aCxsLmxlbmd0aCk7cC5zZXQobCk7bGV0IGQ9WEk7aWYobyE9PTApe2xldCBVPWVlLmZyb21BeGlzQW5nbGUocyxvLFBUKTtpZihkPVEuZnJvbVF1YXRlcm5pb24oVSxkKSxlLnRhbmdlbnR8fGUuYml0YW5nZW50KXtVPWVlLmZyb21BeGlzQW5nbGUocywtbyxQVCk7bGV0IEE9US5mcm9tUXVhdGVybmlvbihVLFlJKTtmPWEubm9ybWFsaXplKFEubXVsdGlwbHlCeVZlY3RvcihBLGYsZiksZiksZS5iaXRhbmdlbnQmJih1PWEubm9ybWFsaXplKGEuY3Jvc3MocyxmLHUpLHUpKX19ZWxzZSBkPVEuY2xvbmUoUS5JREVOVElUWSxkKTtsZXQgbT16STtlLnN0JiYobS54PW4ueCxtLnk9bi55KTtsZXQgXz1jLmxlbmd0aCxnPV8qMyxiPW5ldyBGbG9hdDY0QXJyYXkoZyksdz1lLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KGcpOnZvaWQgMCxPPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGcpOnZvaWQgMCxFPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoZyk6dm9pZCAwLFQ9ZS5zdD9uZXcgRmxvYXQzMkFycmF5KF8qMik6dm9pZCAwLEM9MCxOPTAsST0wLEQ9MCx2PTA7Zm9yKGxldCBVPTA7VTxfO1UrKyl7bGV0IEE9Y1tVXTtpZihiW0MrK109QS54LGJbQysrXT1BLnksYltDKytdPUEueixlLnN0KWlmKGgocikmJnIucG9zaXRpb25zLmxlbmd0aD09PV8pVFt2KytdPXIucG9zaXRpb25zW1VdLngsVFt2KytdPXIucG9zaXRpb25zW1VdLnk7ZWxzZXtsZXQgUz1RLm11bHRpcGx5QnlWZWN0b3IoZCxBLFZJKSxQPWkoUyxHSSk7dHQuc3VidHJhY3QoUCxtLFApO2xldCBCPU0uY2xhbXAoUC54L24ud2lkdGgsMCwxKSxqPU0uY2xhbXAoUC55L24uaGVpZ2h0LDAsMSk7VFt2KytdPUIsVFt2KytdPWp9ZS5ub3JtYWwmJih3W04rK109cy54LHdbTisrXT1zLnksd1tOKytdPXMueiksZS50YW5nZW50JiYoT1tEKytdPWYueCxPW0QrK109Zi55LE9bRCsrXT1mLnopLGUuYml0YW5nZW50JiYoRVtJKytdPXUueCxFW0krK109dS55LEVbSSsrXT11LnopfWxldCBMPW5ldyBpZTtyZXR1cm4gZS5wb3NpdGlvbiYmKEwucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSkpLGUubm9ybWFsJiYoTC5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnd9KSksZS50YW5nZW50JiYoTC50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpPfSkpLGUuYml0YW5nZW50JiYoTC5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkV9KSksZS5zdCYmKEwuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOlR9KSksbmV3IFV0KHthdHRyaWJ1dGVzOkwsaW5kaWNlczpwLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTfSl9ZnVuY3Rpb24gZGModCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9seWdvbkhpZXJhcmNoeSxuPXQudGV4dHVyZUNvb3JkaW5hdGVzO3kuZGVmaW5lZCgib3B0aW9ucy5wb2x5Z29uSGllcmFyY2h5IixlKTtsZXQgbz14KHQudmVydGV4Rm9ybWF0LGR0LkRFRkFVTFQpO3RoaXMuX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShvKSx0aGlzLl9wb2x5Z29uSGllcmFyY2h5PWUsdGhpcy5fc3RSb3RhdGlvbj14KHQuc3RSb3RhdGlvbiwwKSx0aGlzLl9lbGxpcHNvaWQ9JC5jbG9uZSh4KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCkpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUNvcGxhbmFyUG9seWdvbkdlb21ldHJ5Iix0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZXM9bix0aGlzLnBhY2tlZExlbmd0aD15ZS5jb21wdXRlSGllcmFyY2h5UGFja2VkTGVuZ3RoKGUsYSkrZHQucGFja2VkTGVuZ3RoKyQucGFja2VkTGVuZ3RoKyhoKG4pP3llLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgobix0dCk6MSkrMn12YXIgVkksa0ksR0ksekksakksSEkscUksQmYsS0ksV0ksUFQsWEksWUksJEksUUksSkksdHYsRjAsTVQ9WigoKT0+e2pyKCk7UGYoKTt2ZSgpO1VlKCk7RnQoKTtYdCgpO0ZlKCk7eDAoKTtJdCgpO2Z0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtzYygpO3NpKCk7JGUoKTtXdCgpO0JuKCk7RmYoKTtxcigpO3RuKCk7S28oKTtSbygpO1ZJPW5ldyBhLGtJPW5ldyBIcixHST1uZXcgdHQsekk9bmV3IHR0LGpJPW5ldyBhLEhJPW5ldyBhLHFJPW5ldyBhLEJmPW5ldyBhLEtJPW5ldyBhLFdJPW5ldyBhLFBUPW5ldyBlZSxYST1uZXcgUSxZST1uZXcgUSwkST1uZXcgYTtkYy5mcm9tUG9zaXRpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx5LmRlZmluZWQoIm9wdGlvbnMucG9zaXRpb25zIix0LnBvc2l0aW9ucyk7bGV0IGU9e3BvbHlnb25IaWVyYXJjaHk6e3Bvc2l0aW9uczp0LnBvc2l0aW9uc30sdmVydGV4Rm9ybWF0OnQudmVydGV4Rm9ybWF0LHN0Um90YXRpb246dC5zdFJvdGF0aW9uLGVsbGlwc29pZDp0LmVsbGlwc29pZCx0ZXh0dXJlQ29vcmRpbmF0ZXM6dC50ZXh0dXJlQ29vcmRpbmF0ZXN9O3JldHVybiBuZXcgZGMoZSl9O2RjLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxuPXllLnBhY2tQb2x5Z29uSGllcmFyY2h5KHQuX3BvbHlnb25IaWVyYXJjaHksZSxuLGEpLCQucGFjayh0Ll9lbGxpcHNvaWQsZSxuKSxuKz0kLnBhY2tlZExlbmd0aCxkdC5wYWNrKHQuX3ZlcnRleEZvcm1hdCxlLG4pLG4rPWR0LnBhY2tlZExlbmd0aCxlW24rK109dC5fc3RSb3RhdGlvbixoKHQuX3RleHR1cmVDb29yZGluYXRlcyk/bj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll90ZXh0dXJlQ29vcmRpbmF0ZXMsZSxuLHR0KTplW24rK109LTEsZVtuKytdPXQucGFja2VkTGVuZ3RoLGV9O1FJPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksSkk9bmV3IGR0LHR2PXtwb2x5Z29uSGllcmFyY2h5Ont9fTtkYy51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXllLnVucGFja1BvbHlnb25IaWVyYXJjaHkodCxlLGEpO2U9by5zdGFydGluZ0luZGV4LGRlbGV0ZSBvLnN0YXJ0aW5nSW5kZXg7bGV0IHI9JC51bnBhY2sodCxlLFFJKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT1kdC51bnBhY2sodCxlLEpJKTtlKz1kdC5wYWNrZWRMZW5ndGg7bGV0IHM9dFtlKytdLGY9dFtlXT09PS0xP3ZvaWQgMDp5ZS51bnBhY2tQb2x5Z29uSGllcmFyY2h5KHQsZSx0dCk7aChmKT8oZT1mLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIGYuc3RhcnRpbmdJbmRleCk6ZSsrO2xldCB1PXRbZSsrXTtyZXR1cm4gaChuKXx8KG49bmV3IGRjKHR2KSksbi5fcG9seWdvbkhpZXJhcmNoeT1vLG4uX2VsbGlwc29pZD0kLmNsb25lKHIsbi5fZWxsaXBzb2lkKSxuLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoaSxuLl92ZXJ0ZXhGb3JtYXQpLG4uX3N0Um90YXRpb249cyxuLl90ZXh0dXJlQ29vcmRpbmF0ZXM9ZixuLnBhY2tlZExlbmd0aD11LG59O2RjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3ZlcnRleEZvcm1hdCxuPXQuX3BvbHlnb25IaWVyYXJjaHksbz10Ll9zdFJvdGF0aW9uLHI9dC5fdGV4dHVyZUNvb3JkaW5hdGVzLGk9aChyKSxzPW4ucG9zaXRpb25zO2lmKHM9eG4ocyxhLmVxdWFsc0Vwc2lsb24sITApLHMubGVuZ3RoPDMpcmV0dXJuO2xldCBmPWpJLHU9SEksYz1xSSxsPUtJLHA9V0k7aWYoIW1hLmNvbXB1dGVQcm9qZWN0VG8yREFyZ3VtZW50cyhzLEJmLGwscCkpcmV0dXJuO2lmKGY9YS5jcm9zcyhsLHAsZiksZj1hLm5vcm1hbGl6ZShmLGYpLCFhLmVxdWFsc0Vwc2lsb24oQmYsYS5aRVJPLE0uRVBTSUxPTjYpKXtsZXQgdj10Ll9lbGxpcHNvaWQuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEJmLCRJKTthLmRvdChmLHYpPDAmJihmPWEubmVnYXRlKGYsZiksbD1hLm5lZ2F0ZShsLGwpKX1sZXQgbT1tYS5jcmVhdGVQcm9qZWN0UG9pbnRzVG8yREZ1bmN0aW9uKEJmLGwscCksXz1tYS5jcmVhdGVQcm9qZWN0UG9pbnRUbzJERnVuY3Rpb24oQmYsbCxwKTtlLnRhbmdlbnQmJih1PWEuY2xvbmUobCx1KSksZS5iaXRhbmdlbnQmJihjPWEuY2xvbmUocCxjKSk7bGV0IGc9eWUucG9seWdvbnNGcm9tSGllcmFyY2h5KG4saSxtLCExKSxiPWcuaGllcmFyY2h5LHc9Zy5wb2x5Z29ucyxPPWZ1bmN0aW9uKHYpe3JldHVybiB2fSxFPWk/eWUucG9seWdvbnNGcm9tSGllcmFyY2h5KHIsITAsTywhMSkucG9seWdvbnM6dm9pZCAwO2lmKGIubGVuZ3RoPT09MClyZXR1cm47cz1iWzBdLm91dGVyUmluZztsZXQgVD1BdC5mcm9tUG9pbnRzKHMpLEM9eWUuY29tcHV0ZUJvdW5kaW5nUmVjdGFuZ2xlKGYsXyxzLG8sa0kpLE49W107Zm9yKGxldCB2PTA7djx3Lmxlbmd0aDt2Kyspe2xldCBMPW5ldyBjbyh7Z2VvbWV0cnk6Wkkod1t2XSxlLEMsbyxpP0Vbdl06dm9pZCAwLF8sZix1LGMpfSk7Ti5wdXNoKEwpfWxldCBJPVZlLmNvbWJpbmVJbnN0YW5jZXMoTilbMF07SS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1uZXcgRmxvYXQ2NEFycmF5KEkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMpLEkuaW5kaWNlcz1EdC5jcmVhdGVUeXBlZEFycmF5KEkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsSS5pbmRpY2VzKTtsZXQgRD1JLmF0dHJpYnV0ZXM7cmV0dXJuIGUucG9zaXRpb258fGRlbGV0ZSBELnBvc2l0aW9uLG5ldyBVdCh7YXR0cmlidXRlczpELGluZGljZXM6SS5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6SS5wcmltaXRpdmVUeXBlLGJvdW5kaW5nU3BoZXJlOlR9KX07RjA9ZGN9KTt2YXIgQjA9e307ZGUoQjAse2RlZmF1bHQ6KCk9Pm52fSk7ZnVuY3Rpb24gZXYodCxlKXtyZXR1cm4gaChlKSYmKHQ9RjAudW5wYWNrKHQsZSkpLEYwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBudixVMD1aKCgpPT57TVQoKTtmdCgpO252PWV2fSk7ZnVuY3Rpb24gb3YodCl7bGV0IGU9dC5sZW5ndGgsbj1uZXcgRmxvYXQ2NEFycmF5KGUqMyksbz1EdC5jcmVhdGVUeXBlZEFycmF5KGUsZSoyKSxyPTAsaT0wO2ZvcihsZXQgZj0wO2Y8ZTtmKyspe2xldCB1PXRbZl07bltyKytdPXUueCxuW3IrK109dS55LG5bcisrXT11Lnosb1tpKytdPWYsb1tpKytdPShmKzEpJWV9bGV0IHM9bmV3IGllKHtwb3NpdGlvbjpuZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm59KX0pO3JldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6cyxpbmRpY2VzOm8scHJpbWl0aXZlVHlwZTpCdC5MSU5FU30pfWZ1bmN0aW9uIG1jKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvbHlnb25IaWVyYXJjaHk7eS5kZWZpbmVkKCJvcHRpb25zLnBvbHlnb25IaWVyYXJjaHkiLGUpLHRoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDb3BsYW5hclBvbHlnb25PdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKSsxfXZhciBydixWMCxOVD1aKCgpPT57anIoKTt2ZSgpO0Z0KCk7WHQoKTtGZSgpO3gwKCk7SXQoKTtmdCgpO1hlKCk7WWUoKTthbigpO3NjKCk7c2koKTskZSgpO0ZmKCk7dG4oKTttYy5mcm9tUG9zaXRpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx5LmRlZmluZWQoIm9wdGlvbnMucG9zaXRpb25zIix0LnBvc2l0aW9ucyk7bGV0IGU9e3BvbHlnb25IaWVyYXJjaHk6e3Bvc2l0aW9uczp0LnBvc2l0aW9uc319O3JldHVybiBuZXcgbWMoZSl9O21jLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxuPXllLnBhY2tQb2x5Z29uSGllcmFyY2h5KHQuX3BvbHlnb25IaWVyYXJjaHksZSxuLGEpLGVbbl09dC5wYWNrZWRMZW5ndGgsZX07cnY9e3BvbHlnb25IaWVyYXJjaHk6e319O21jLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89eWUudW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsYSk7ZT1vLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIG8uc3RhcnRpbmdJbmRleDtsZXQgcj10W2VdO3JldHVybiBoKG4pfHwobj1uZXcgbWMocnYpKSxuLl9wb2x5Z29uSGllcmFyY2h5PW8sbi5wYWNrZWRMZW5ndGg9cixufTttYy5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9wb2x5Z29uSGllcmFyY2h5LG49ZS5wb3NpdGlvbnM7aWYobj14bihuLGEuZXF1YWxzRXBzaWxvbiwhMCksbi5sZW5ndGg8M3x8IW1hLnZhbGlkT3V0bGluZShuKSlyZXR1cm47bGV0IHI9eWUucG9seWdvbk91dGxpbmVzRnJvbUhpZXJhcmNoeShlLCExKTtpZihyLmxlbmd0aD09PTApcmV0dXJuO2xldCBpPVtdO2ZvcihsZXQgdT0wO3U8ci5sZW5ndGg7dSsrKXtsZXQgYz1uZXcgY28oe2dlb21ldHJ5Om92KHJbdV0pfSk7aS5wdXNoKGMpfWxldCBzPVZlLmNvbWJpbmVJbnN0YW5jZXMoaSlbMF0sZj1BdC5mcm9tUG9pbnRzKGUucG9zaXRpb25zKTtyZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOnMuYXR0cmlidXRlcyxpbmRpY2VzOnMuaW5kaWNlcyxwcmltaXRpdmVUeXBlOnMucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTpmfSl9O1YwPW1jfSk7dmFyIGswPXt9O2RlKGswLHtkZWZhdWx0OigpPT5zdn0pO2Z1bmN0aW9uIGl2KHQsZSl7cmV0dXJuIGgoZSkmJih0PVYwLnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLFYwLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBzdixHMD1aKCgpPT57TlQoKTtmdCgpO1p0KCk7c3Y9aXZ9KTt2YXIgY3YsZm4saGM9WigoKT0+e2N2PXtST1VOREVEOjAsTUlURVJFRDoxLEJFVkVMRUQ6Mn0sZm49T2JqZWN0LmZyZWV6ZShjdil9KTtmdW5jdGlvbiBhdih0KXtsZXQgZT10Ll91U3F1YXJlZCxuPXQuX2VsbGlwc29pZC5tYXhpbXVtUmFkaXVzLG89dC5fZWxsaXBzb2lkLm1pbmltdW1SYWRpdXMscj0obi1vKS9uLGk9TWF0aC5jb3ModC5fc3RhcnRIZWFkaW5nKSxzPU1hdGguc2luKHQuX3N0YXJ0SGVhZGluZyksZj0oMS1yKSpNYXRoLnRhbih0Ll9zdGFydC5sYXRpdHVkZSksdT0xL01hdGguc3FydCgxK2YqZiksYz11KmYsbD1NYXRoLmF0YW4yKGYsaSkscD11KnMsZD1wKnAsbT0xLWQsXz1NYXRoLnNxcnQobSksZz1lLzQsYj1nKmcsdz1iKmcsTz1iKmIsRT0xK2ctMypiLzQrNSp3LzQtMTc1Kk8vNjQsVD0xLWcrMTUqYi84LTM1KncvOCxDPTEtMypnKzM1KmIvNCxOPTEtNSpnLEk9RSpsLVQqTWF0aC5zaW4oMipsKSpnLzItQypNYXRoLnNpbig0KmwpKmIvMTYtTipNYXRoLnNpbig2KmwpKncvNDgtTWF0aC5zaW4oOCpsKSo1Kk8vNTEyLEQ9dC5fY29uc3RhbnRzO0QuYT1uLEQuYj1vLEQuZj1yLEQuY29zaW5lSGVhZGluZz1pLEQuc2luZUhlYWRpbmc9cyxELnRhblU9ZixELmNvc2luZVU9dSxELnNpbmVVPWMsRC5zaWdtYT1sLEQuc2luZUFscGhhPXAsRC5zaW5lU3F1YXJlZEFscGhhPWQsRC5jb3NpbmVTcXVhcmVkQWxwaGE9bSxELmNvc2luZUFscGhhPV8sRC51Mk92ZXI0PWcsRC51NE92ZXIxNj1iLEQudTZPdmVyNjQ9dyxELnU4T3ZlcjI1Nj1PLEQuYTA9RSxELmExPVQsRC5hMj1DLEQuYTM9TixELmRpc3RhbmNlUmF0aW89SX1mdW5jdGlvbiBmdih0LGUpe3JldHVybiB0KmUqKDQrdCooNC0zKmUpKS8xNn1mdW5jdGlvbiBJVCh0LGUsbixvLHIsaSxzKXtsZXQgZj1mdih0LG4pO3JldHVybigxLWYpKnQqZSoobytmKnIqKHMrZippKigyKnMqcy0xKSkpfWZ1bmN0aW9uIHV2KHQsZSxuLG8scixpLHMpe2xldCBmPShlLW4pL2UsdT1pLW8sYz1NYXRoLmF0YW4oKDEtZikqTWF0aC50YW4ocikpLGw9TWF0aC5hdGFuKCgxLWYpKk1hdGgudGFuKHMpKSxwPU1hdGguY29zKGMpLGQ9TWF0aC5zaW4oYyksbT1NYXRoLmNvcyhsKSxfPU1hdGguc2luKGwpLGc9cCptLGI9cCpfLHc9ZCpfLE89ZCptLEU9dSxUPU0uVFdPX1BJLEM9TWF0aC5jb3MoRSksTj1NYXRoLnNpbihFKSxJLEQsdixMLFU7ZG97Qz1NYXRoLmNvcyhFKSxOPU1hdGguc2luKEUpO2xldCBYPWItTypDO3Y9TWF0aC5zcXJ0KG0qbSpOKk4rWCpYKSxEPXcrZypDLEk9TWF0aC5hdGFuMih2LEQpO2xldCBSO3Y9PT0wPyhSPTAsTD0xKTooUj1nKk4vdixMPTEtUipSKSxUPUUsVT1ELTIqdy9MLGlzRmluaXRlKFUpfHwoVT0wKSxFPXUrSVQoZixSLEwsSSx2LEQsVSl9d2hpbGUoTWF0aC5hYnMoRS1UKT5NLkVQU0lMT04xMik7bGV0IEE9TCooZSplLW4qbikvKG4qbiksUz0xK0EqKDQwOTYrQSooQSooMzIwLTE3NSpBKS03NjgpKS8xNjM4NCxQPUEqKDI1NitBKihBKig3NC00NypBKS0xMjgpKS8xMDI0LEI9VSpVLGo9UCp2KihVK1AqKEQqKDIqQi0xKS1QKlUqKDQqdip2LTMpKig0KkItMykvNikvNCksSD1uKlMqKEktaiksaz1NYXRoLmF0YW4yKG0qTixiLU8qQyksSz1NYXRoLmF0YW4yKHAqTixiKkMtTyk7dC5fZGlzdGFuY2U9SCx0Ll9zdGFydEhlYWRpbmc9ayx0Ll9lbmRIZWFkaW5nPUssdC5fdVNxdWFyZWQ9QX1mdW5jdGlvbiB2VCh0LGUsbixvKXtsZXQgcj1hLm5vcm1hbGl6ZShvLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGUsejApLGx2KSxpPWEubm9ybWFsaXplKG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4obix6MCksejApO3kudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJ2YWx1ZSIsTWF0aC5hYnMoTWF0aC5hYnMoYS5hbmdsZUJldHdlZW4ocixpKSktTWF0aC5QSSksLjAxMjUpLHV2KHQsby5tYXhpbXVtUmFkaXVzLG8ubWluaW11bVJhZGl1cyxlLmxvbmdpdHVkZSxlLmxhdGl0dWRlLG4ubG9uZ2l0dWRlLG4ubGF0aXR1ZGUpLHQuX3N0YXJ0PWN0LmNsb25lKGUsdC5fc3RhcnQpLHQuX2VuZD1jdC5jbG9uZShuLHQuX2VuZCksdC5fc3RhcnQuaGVpZ2h0PTAsdC5fZW5kLmhlaWdodD0wLGF2KHQpfWZ1bmN0aW9uIFVmKHQsZSxuKXtsZXQgbz14KG4sJC5kZWZhdWx0KTt0aGlzLl9lbGxpcHNvaWQ9byx0aGlzLl9zdGFydD1uZXcgY3QsdGhpcy5fZW5kPW5ldyBjdCx0aGlzLl9jb25zdGFudHM9e30sdGhpcy5fc3RhcnRIZWFkaW5nPXZvaWQgMCx0aGlzLl9lbmRIZWFkaW5nPXZvaWQgMCx0aGlzLl9kaXN0YW5jZT12b2lkIDAsdGhpcy5fdVNxdWFyZWQ9dm9pZCAwLGgodCkmJmgoZSkmJnZUKHRoaXMsdCxlLG8pfXZhciBsdix6MCxmZCxqMD1aKCgpPT57RnQoKTtJZSgpO1h0KCk7SXQoKTtmdCgpO1p0KCk7V3QoKTtsdj1uZXcgYSx6MD1uZXcgYTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhVZi5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19LHN1cmZhY2VEaXN0YW5jZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmaW5lZCgiZGlzdGFuY2UiLHRoaXMuX2Rpc3RhbmNlKSx0aGlzLl9kaXN0YW5jZX19LHN0YXJ0OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fc3RhcnR9fSxlbmQ6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9lbmR9fSxzdGFydEhlYWRpbmc6e2dldDpmdW5jdGlvbigpe3JldHVybiB5LmRlZmluZWQoImRpc3RhbmNlIix0aGlzLl9kaXN0YW5jZSksdGhpcy5fc3RhcnRIZWFkaW5nfX0sZW5kSGVhZGluZzp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHkuZGVmaW5lZCgiZGlzdGFuY2UiLHRoaXMuX2Rpc3RhbmNlKSx0aGlzLl9lbmRIZWFkaW5nfX19KTtVZi5wcm90b3R5cGUuc2V0RW5kUG9pbnRzPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJzdGFydCIsdCkseS5kZWZpbmVkKCJlbmQiLGUpLHZUKHRoaXMsdCxlLHRoaXMuX2VsbGlwc29pZCl9O1VmLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nRnJhY3Rpb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcy5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKHRoaXMuX2Rpc3RhbmNlKnQsZSl9O1VmLnByb3RvdHlwZS5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlPWZ1bmN0aW9uKHQsZSl7eS5kZWZpbmVkKCJkaXN0YW5jZSIsdGhpcy5fZGlzdGFuY2UpO2xldCBuPXRoaXMuX2NvbnN0YW50cyxvPW4uZGlzdGFuY2VSYXRpbyt0L24uYixyPU1hdGguY29zKDIqbyksaT1NYXRoLmNvcyg0Km8pLHM9TWF0aC5jb3MoNipvKSxmPU1hdGguc2luKDIqbyksdT1NYXRoLnNpbig0Km8pLGM9TWF0aC5zaW4oNipvKSxsPU1hdGguc2luKDgqbykscD1vKm8sZD1vKnAsbT1uLnU4T3ZlcjI1NixfPW4udTJPdmVyNCxnPW4udTZPdmVyNjQsYj1uLnU0T3ZlcjE2LHc9MipkKm0qci8zK28qKDEtXys3KmIvNC0xNSpnLzQrNTc5Km0vNjQtKGItMTUqZy80KzE4NyptLzE2KSpyLSg1KmcvNC0xMTUqbS8xNikqaS0yOSptKnMvMTYpKyhfLzItYis3MSpnLzMyLTg1Km0vMTYpKmYrKDUqYi8xNi01KmcvNCszODMqbS85NikqdS1wKigoZy0xMSptLzIpKmYrNSptKnUvMikrKDI5KmcvOTYtMjkqbS8xNikqYys1MzkqbSpsLzE1MzYsTz1NYXRoLmFzaW4oTWF0aC5zaW4odykqbi5jb3NpbmVBbHBoYSksRT1NYXRoLmF0YW4obi5hL24uYipNYXRoLnRhbihPKSk7dz13LW4uc2lnbWE7bGV0IFQ9TWF0aC5jb3MoMipuLnNpZ21hK3cpLEM9TWF0aC5zaW4odyksTj1NYXRoLmNvcyh3KSxJPW4uY29zaW5lVSpOLEQ9bi5zaW5lVSpDLEw9TWF0aC5hdGFuMihDKm4uc2luZUhlYWRpbmcsSS1EKm4uY29zaW5lSGVhZGluZyktSVQobi5mLG4uc2luZUFscGhhLG4uY29zaW5lU3F1YXJlZEFscGhhLHcsQyxOLFQpO3JldHVybiBoKGUpPyhlLmxvbmdpdHVkZT10aGlzLl9zdGFydC5sb25naXR1ZGUrTCxlLmxhdGl0dWRlPUUsZS5oZWlnaHQ9MCxlKTpuZXcgY3QodGhpcy5fc3RhcnQubG9uZ2l0dWRlK0wsRSwwKX07ZmQ9VWZ9KTtmdW5jdGlvbiBCVCh0LGUsbil7bGV0IG89cTA7by5sZW5ndGg9dDtsZXQgcjtpZihlPT09bil7Zm9yKHI9MDtyPHQ7cisrKW9bcl09ZTtyZXR1cm4gb31sZXQgcz0obi1lKS90O2ZvcihyPTA7cjx0O3IrKyl7bGV0IGY9ZStyKnM7b1tyXT1mfXJldHVybiBvfWZ1bmN0aW9uIGJ2KHQsZSxuLG8scixpLHMsZil7bGV0IHU9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHQsSzApLGM9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGUsQXYpLGw9Rm8ubnVtYmVyT2ZQb2ludHModCxlLG4pLHA9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyh1LGxkKSxkPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoYyx1ZCksbT1CVChsLHIsaSk7SDAuc2V0RW5kUG9pbnRzKHAsZCk7bGV0IF89SDAuc3VyZmFjZURpc3RhbmNlL2wsZz1mO3AuaGVpZ2h0PXI7bGV0IGI9by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihwLG1zKTthLnBhY2soYixzLGcpLGcrPTM7Zm9yKGxldCB3PTE7dzxsO3crKyl7bGV0IE89SDAuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZSh3Kl8sdWQpO08uaGVpZ2h0PW1bd10sYj1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKE8sbXMpLGEucGFjayhiLHMsZyksZys9M31yZXR1cm4gZ31mdW5jdGlvbiB3dih0LGUsbixvLHIsaSxzLGYpe2xldCB1PW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModCxsZCksYz1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUsdWQpLGw9Rm8ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmUodSxjLG4pO3UuaGVpZ2h0PTAsYy5oZWlnaHQ9MDtsZXQgcD1CVChsLHIsaSk7VmYuZWxsaXBzb2lkLmVxdWFscyhvKXx8KFZmPW5ldyBabyh2b2lkIDAsdm9pZCAwLG8pKSxWZi5zZXRFbmRQb2ludHModSxjKTtsZXQgZD1WZi5zdXJmYWNlRGlzdGFuY2UvbCxtPWY7dS5oZWlnaHQ9cjtsZXQgXz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHUsbXMpO2EucGFjayhfLHMsbSksbSs9Mztmb3IobGV0IGc9MTtnPGw7ZysrKXtsZXQgYj1WZi5pbnRlcnBvbGF0ZVVzaW5nU3VyZmFjZURpc3RhbmNlKGcqZCx1ZCk7Yi5oZWlnaHQ9cFtnXSxfPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYixtcyksYS5wYWNrKF8scyxtKSxtKz0zfXJldHVybiBtfXZhciBGbyxwdixkdixtdixMVCxodixEVCxfdix5dixndixxMCxsZCx1ZCxtcyxLMCxBdixIMCxWZixGVCxUdixBbixnYT1aKCgpPT57RnQoKTtJZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7ajAoKTtJZigpO3RjKCk7V3QoKTtVbigpO2ZzKCk7Rm89e307Rm8ubnVtYmVyT2ZQb2ludHM9ZnVuY3Rpb24odCxlLG4pe2xldCBvPWEuZGlzdGFuY2UodCxlKTtyZXR1cm4gTWF0aC5jZWlsKG8vbil9O0ZvLm51bWJlck9mUG9pbnRzUmh1bWJMaW5lPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1NYXRoLnBvdyh0LmxvbmdpdHVkZS1lLmxvbmdpdHVkZSwyKStNYXRoLnBvdyh0LmxhdGl0dWRlLWUubGF0aXR1ZGUsMik7cmV0dXJuIE1hdGgubWF4KDEsTWF0aC5jZWlsKE1hdGguc3FydChvLyhuKm4pKSkpfTtwdj1uZXcgY3Q7Rm8uZXh0cmFjdEhlaWdodHM9ZnVuY3Rpb24odCxlKXtsZXQgbj10Lmxlbmd0aCxvPW5ldyBBcnJheShuKTtmb3IobGV0IHI9MDtyPG47cisrKXtsZXQgaT10W3JdO29bcl09ZS5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhpLHB2KS5oZWlnaHR9cmV0dXJuIG99O2R2PW5ldyBzdCxtdj1uZXcgYSxMVD1uZXcgYSxodj1uZXcgb24oYS5VTklUX1gsMCksRFQ9bmV3IGEsX3Y9bmV3IG9uKGEuVU5JVF9YLDApLHl2PW5ldyBhLGd2PW5ldyBhLHEwPVtdO2xkPW5ldyBjdCx1ZD1uZXcgY3QsbXM9bmV3IGEsSzA9bmV3IGEsQXY9bmV3IGEsSDA9bmV3IGZkLFZmPW5ldyBabztGby53cmFwTG9uZ2l0dWRlPWZ1bmN0aW9uKHQsZSl7bGV0IG49W10sbz1bXTtpZihoKHQpJiZ0Lmxlbmd0aD4wKXtlPXgoZSxzdC5JREVOVElUWSk7bGV0IHI9c3QuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKGUsZHYpLGk9c3QubXVsdGlwbHlCeVBvaW50KHIsYS5aRVJPLG12KSxzPWEubm9ybWFsaXplKHN0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKHIsYS5VTklUX1ksTFQpLExUKSxmPW9uLmZyb21Qb2ludE5vcm1hbChpLHMsaHYpLHU9YS5ub3JtYWxpemUoc3QubXVsdGlwbHlCeVBvaW50QXNWZWN0b3IocixhLlVOSVRfWCxEVCksRFQpLGM9b24uZnJvbVBvaW50Tm9ybWFsKGksdSxfdiksbD0xO24ucHVzaChhLmNsb25lKHRbMF0pKTtsZXQgcD1uWzBdLGQ9dC5sZW5ndGg7Zm9yKGxldCBtPTE7bTxkOysrbSl7bGV0IF89dFttXTtpZihvbi5nZXRQb2ludERpc3RhbmNlKGMscCk8MHx8b24uZ2V0UG9pbnREaXN0YW5jZShjLF8pPDApe2xldCBnPWhvLmxpbmVTZWdtZW50UGxhbmUocCxfLGYseXYpO2lmKGgoZykpe2xldCBiPWEubXVsdGlwbHlCeVNjYWxhcihzLDVlLTksZ3YpO29uLmdldFBvaW50RGlzdGFuY2UoZixwKTwwJiZhLm5lZ2F0ZShiLGIpLG4ucHVzaChhLmFkZChnLGIsbmV3IGEpKSxvLnB1c2gobCsxKSxhLm5lZ2F0ZShiLGIpLG4ucHVzaChhLmFkZChnLGIsbmV3IGEpKSxsPTF9fW4ucHVzaChhLmNsb25lKHRbbV0pKSxsKysscD1ffW8ucHVzaChsKX1yZXR1cm57cG9zaXRpb25zOm4sbGVuZ3RoczpvfX07Rm8uZ2VuZXJhdGVBcmM9ZnVuY3Rpb24odCl7aCh0KXx8KHQ9e30pO2xldCBlPXQucG9zaXRpb25zO2lmKCFoKGUpKXRocm93IG5ldyBGKCJvcHRpb25zLnBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLmxlbmd0aCxvPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSxyPXgodC5oZWlnaHQsMCksaT1BcnJheS5pc0FycmF5KHIpO2lmKG48MSlyZXR1cm5bXTtpZihuPT09MSl7bGV0IGc9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGVbMF0sSzApO2lmKHI9aT9yWzBdOnIsciE9PTApe2xldCBiPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGcsbXMpO2EubXVsdGlwbHlCeVNjYWxhcihiLHIsYiksYS5hZGQoZyxiLGcpfXJldHVybltnLngsZy55LGcuel19bGV0IHM9dC5taW5EaXN0YW5jZTtpZighaChzKSl7bGV0IGc9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKTtzPU0uY2hvcmRMZW5ndGgoZyxvLm1heGltdW1SYWRpdXMpfWxldCBmPTAsdTtmb3IodT0wO3U8bi0xO3UrKylmKz1Gby5udW1iZXJPZlBvaW50cyhlW3VdLGVbdSsxXSxzKTtsZXQgYz0oZisxKSozLGw9bmV3IEFycmF5KGMpLHA9MDtmb3IodT0wO3U8bi0xO3UrKyl7bGV0IGc9ZVt1XSxiPWVbdSsxXSx3PWk/clt1XTpyLE89aT9yW3UrMV06cjtwPWJ2KGcsYixzLG8sdyxPLGwscCl9cTAubGVuZ3RoPTA7bGV0IGQ9ZVtuLTFdLG09by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhkLGxkKTttLmhlaWdodD1pP3Jbbi0xXTpyO2xldCBfPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4obSxtcyk7cmV0dXJuIGEucGFjayhfLGwsYy0zKSxsfTtGVD1uZXcgY3QsVHY9bmV3IGN0O0ZvLmdlbmVyYXRlUmh1bWJBcmM9ZnVuY3Rpb24odCl7aCh0KXx8KHQ9e30pO2xldCBlPXQucG9zaXRpb25zO2lmKCFoKGUpKXRocm93IG5ldyBGKCJvcHRpb25zLnBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtsZXQgbj1lLmxlbmd0aCxvPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSxyPXgodC5oZWlnaHQsMCksaT1BcnJheS5pc0FycmF5KHIpO2lmKG48MSlyZXR1cm5bXTtpZihuPT09MSl7bGV0IHc9by5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGVbMF0sSzApO2lmKHI9aT9yWzBdOnIsciE9PTApe2xldCBPPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHcsbXMpO2EubXVsdGlwbHlCeVNjYWxhcihPLHIsTyksYS5hZGQodyxPLHcpfXJldHVyblt3Lngsdy55LHcuel19bGV0IHM9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxmPTAsdSxjPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZVswXSxGVCksbDtmb3IodT0wO3U8bi0xO3UrKylsPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoZVt1KzFdLFR2KSxmKz1Gby5udW1iZXJPZlBvaW50c1JodW1iTGluZShjLGwscyksYz1jdC5jbG9uZShsLEZUKTtsZXQgcD0oZisxKSozLGQ9bmV3IEFycmF5KHApLG09MDtmb3IodT0wO3U8bi0xO3UrKyl7bGV0IHc9ZVt1XSxPPWVbdSsxXSxFPWk/clt1XTpyLFQ9aT9yW3UrMV06cjttPXd2KHcsTyxzLG8sRSxULGQsbSl9cTAubGVuZ3RoPTA7bGV0IF89ZVtuLTFdLGc9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhfLGxkKTtnLmhlaWdodD1pP3Jbbi0xXTpyO2xldCBiPW8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZyxtcyk7cmV0dXJuIGEucGFjayhiLGQscC0zKSxkfTtGby5nZW5lcmF0ZUNhcnRlc2lhbkFyYz1mdW5jdGlvbih0KXtsZXQgZT1Gby5nZW5lcmF0ZUFyYyh0KSxuPWUubGVuZ3RoLzMsbz1uZXcgQXJyYXkobik7Zm9yKGxldCByPTA7cjxuO3IrKylvW3JdPWEudW5wYWNrKGUsciozKTtyZXR1cm4gb307Rm8uZ2VuZXJhdGVDYXJ0ZXNpYW5SaHVtYkFyYz1mdW5jdGlvbih0KXtsZXQgZT1Gby5nZW5lcmF0ZVJodW1iQXJjKHQpLG49ZS5sZW5ndGgvMyxvPW5ldyBBcnJheShuKTtmb3IobGV0IHI9MDtyPG47cisrKW9bcl09YS51bnBhY2soZSxyKjMpO3JldHVybiBvfTtBbj1Gb30pO2Z1bmN0aW9uIEl2KHQsZSl7bGV0IG49bmV3IEFycmF5KHQubGVuZ3RoKTtmb3IobGV0IG89MDtvPHQubGVuZ3RoO28rKyl7bGV0IHI9dFtvXTtXMD1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHIsVzApLG5bb109VzAuaGVpZ2h0LHRbb109ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHIscil9cmV0dXJuIG59ZnVuY3Rpb24gWDAodCxlLG4sbyl7bGV0IHI9dFswXSxpPXRbMV0scz1hLmFuZ2xlQmV0d2VlbihyLGkpLGY9TWF0aC5jZWlsKHMvbyksdT1uZXcgQXJyYXkoZiksYztpZihlPT09bil7Zm9yKGM9MDtjPGY7YysrKXVbY109ZTtyZXR1cm4gdS5wdXNoKG4pLHV9bGV0IHA9KG4tZSkvZjtmb3IoYz0xO2M8ZjtjKyspe2xldCBkPWUrYypwO3VbY109ZH1yZXR1cm4gdVswXT1lLHUucHVzaChuKSx1fWZ1bmN0aW9uIHZ2KHQsZSxuLG8pe2xldCByPW5ldyB5byhuLG8pLGk9ci5wcm9qZWN0UG9pbnRPbnRvUGxhbmUoYS5hZGQobix0LGRkKSxkZCkscz1yLnByb2plY3RQb2ludE9udG9QbGFuZShhLmFkZChuLGUsbWQpLG1kKSxmPXR0LmFuZ2xlQmV0d2VlbihpLHMpO3JldHVybiBzLngqaS55LXMueSppLng+PTA/LWY6Zn1mdW5jdGlvbiBVaSh0LGUsbixvLHIsaSxzLGYpe2xldCB1PUJ2LGM9VXY7X2M9WG8uZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUodCxyLF9jKSx1PXN0Lm11bHRpcGx5QnlQb2ludEFzVmVjdG9yKF9jLEx2LHUpLHU9YS5ub3JtYWxpemUodSx1KTtsZXQgbD12dih1LGUsdCxyKTtZMD1RLmZyb21Sb3RhdGlvbloobCxZMCksVVQuej1pLF9jPXN0Lm11bHRpcGx5VHJhbnNmb3JtYXRpb24oX2Msc3QuZnJvbVJvdGF0aW9uVHJhbnNsYXRpb24oWTAsVVQsRHYpLF9jKTtsZXQgcD1GdjtwWzBdPXM7Zm9yKGxldCBkPTA7ZDxmO2QrKylmb3IobGV0IG09MDttPG4ubGVuZ3RoO20rPTMpYz1hLmZyb21BcnJheShuLG0sYyksYz1RLm11bHRpcGx5QnlWZWN0b3IocCxjLGMpLGM9c3QubXVsdGlwbHlCeVBvaW50KF9jLGMsYyksby5wdXNoKGMueCxjLnksYy56KTtyZXR1cm4gb31mdW5jdGlvbiAkMCh0LGUsbixvLHIsaSxzKXtmb3IobGV0IGY9MDtmPHQubGVuZ3RoO2YrPTMpe2xldCB1PWEuZnJvbUFycmF5KHQsZixWdik7bz1VaSh1LGUsbixvLHIsaVtmLzNdLHMsMSl9cmV0dXJuIG99ZnVuY3Rpb24ga3YodCxlKXtsZXQgbj10Lmxlbmd0aCxvPW5ldyBBcnJheShuKjYpLHI9MCxpPWUueCtlLndpZHRoLzIscz1lLnkrZS5oZWlnaHQvMixmPXRbMF07b1tyKytdPWYueC1pLG9bcisrXT0wLG9bcisrXT1mLnktcztmb3IobGV0IHU9MTt1PG47dSsrKXtmPXRbdV07bGV0IGM9Zi54LWksbD1mLnktcztvW3IrK109YyxvW3IrK109MCxvW3IrK109bCxvW3IrK109YyxvW3IrK109MCxvW3IrK109bH1yZXR1cm4gZj10WzBdLG9bcisrXT1mLngtaSxvW3IrK109MCxvW3IrK109Zi55LXMsb31mdW5jdGlvbiBWVCh0LGUpe2xldCBuPXQubGVuZ3RoLG89bmV3IEFycmF5KG4qMykscj0wLGk9ZS54K2Uud2lkdGgvMixzPWUueStlLmhlaWdodC8yO2ZvcihsZXQgZj0wO2Y8bjtmKyspb1tyKytdPXRbZl0ueC1pLG9bcisrXT0wLG9bcisrXT10W2ZdLnktcztyZXR1cm4gb31mdW5jdGlvbiBqVCh0LGUsbixvLHIsaSxzLGYsdSxjKXtsZXQgbD1hLmFuZ2xlQmV0d2VlbihhLnN1YnRyYWN0KGUsdCxBYSksYS5zdWJ0cmFjdChuLHQscGQpKSxwPW89PT1mbi5CRVZFTEVEPzA6TWF0aC5jZWlsKGwvTS50b1JhZGlhbnMoNSkpLGQ7cj9kPVEuZnJvbVF1YXRlcm5pb24oZWUuZnJvbUF4aXNBbmdsZShhLm5lZ2F0ZSh0LEFhKSxsLyhwKzEpLGtUKSx6VCk6ZD1RLmZyb21RdWF0ZXJuaW9uKGVlLmZyb21BeGlzQW5nbGUodCxsLyhwKzEpLGtUKSx6VCk7bGV0IG0sXztpZihlPWEuY2xvbmUoZSxHVCkscD4wKXtsZXQgZz1jPzI6MTtmb3IobGV0IGI9MDtiPHA7YisrKWU9US5tdWx0aXBseUJ5VmVjdG9yKGQsZSxlKSxtPWEuc3VidHJhY3QoZSx0LEFhKSxtPWEubm9ybWFsaXplKG0sbSkscnx8KG09YS5uZWdhdGUobSxtKSksXz1pLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UoZSxwZCkscz1VaShfLG0sZixzLGksdSwxLGcpfWVsc2UgbT1hLnN1YnRyYWN0KGUsdCxBYSksbT1hLm5vcm1hbGl6ZShtLG0pLHJ8fChtPWEubmVnYXRlKG0sbSkpLF89aS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGUscGQpLHM9VWkoXyxtLGYscyxpLHUsMSwxKSxuPWEuY2xvbmUobixHVCksbT1hLnN1YnRyYWN0KG4sdCxBYSksbT1hLm5vcm1hbGl6ZShtLG0pLHJ8fChtPWEubmVnYXRlKG0sbSkpLF89aS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKG4scGQpLHM9VWkoXyxtLGYscyxpLHUsMSwxKTtyZXR1cm4gc312YXIgYW8sT3YsRXYsUnYsU3YsQ3YseHYsUHYsTXYsTnYsQWEscGQsa2YsVzAsZGQsbWQsTHYsX2MsRHYsWTAsRnYsQnYsVXYsVVQsVnYsa1QsR1QselQsR3YsenYsaHMsaGQ9WigoKT0+e1VlKCk7RnQoKTtocigpO0llKCk7aGMoKTtwYSgpO1d0KCk7Qm4oKTtVbigpO2dhKCk7S28oKTtjcygpO3ZwKCk7YW89W25ldyBhLG5ldyBhXSxPdj1uZXcgYSxFdj1uZXcgYSxSdj1uZXcgYSxTdj1uZXcgYSxDdj1uZXcgYSx4dj1uZXcgYSxQdj1uZXcgYSxNdj1uZXcgYSxOdj1uZXcgYSxBYT1uZXcgYSxwZD1uZXcgYSxrZj17fSxXMD1uZXcgY3Q7ZGQ9bmV3IGEsbWQ9bmV3IGE7THY9bmV3IGEoLTEsMCwwKSxfYz1uZXcgc3QsRHY9bmV3IHN0LFkwPW5ldyBRLEZ2PVEuSURFTlRJVFkuY2xvbmUoKSxCdj1uZXcgYSxVdj1uZXcgaGUsVVQ9bmV3IGE7VnY9bmV3IGE7a1Q9bmV3IGVlLEdUPW5ldyBhLHpUPW5ldyBRO2tmLnJlbW92ZUR1cGxpY2F0ZXNGcm9tU2hhcGU9ZnVuY3Rpb24odCl7bGV0IGU9dC5sZW5ndGgsbj1bXTtmb3IobGV0IG89ZS0xLHI9MDtyPGU7bz1yKyspe2xldCBpPXRbb10scz10W3JdO3R0LmVxdWFscyhpLHMpfHxuLnB1c2gocyl9cmV0dXJuIG59O2tmLmFuZ2xlSXNHcmVhdGVyVGhhblBpPWZ1bmN0aW9uKHQsZSxuLG8pe2xldCByPW5ldyB5byhuLG8pLGk9ci5wcm9qZWN0UG9pbnRPbnRvUGxhbmUoYS5hZGQobix0LGRkKSxkZCkscz1yLnByb2plY3RQb2ludE9udG9QbGFuZShhLmFkZChuLGUsbWQpLG1kKTtyZXR1cm4gcy54KmkueS1zLnkqaS54Pj0wfTtHdj1uZXcgYSx6dj1uZXcgYTtrZi5jb21wdXRlUG9zaXRpb25zPWZ1bmN0aW9uKHQsZSxuLG8scil7bGV0IGk9by5fZWxsaXBzb2lkLHM9SXYodCxpKSxmPW8uX2dyYW51bGFyaXR5LHU9by5fY29ybmVyVHlwZSxjPXI/a3YoZSxuKTpWVChlLG4pLGw9cj9WVChlLG4pOnZvaWQgMCxwPW4uaGVpZ2h0LzIsZD1uLndpZHRoLzIsbT10Lmxlbmd0aCxfPVtdLGc9cj9bXTp2b2lkIDAsYj1Pdix3PUV2LE89UnYsRT1TdixUPUN2LEM9eHYsTj1QdixJPU12LEQ9TnYsdj10WzBdLEw9dFsxXTtFPWkuZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKHYsRSksYj1hLnN1YnRyYWN0KEwsdixiKSxiPWEubm9ybWFsaXplKGIsYiksST1hLmNyb3NzKEUsYixJKSxJPWEubm9ybWFsaXplKEksSSk7bGV0IFU9c1swXSxBPXNbMV07ciYmKGc9VWkodixJLGwsZyxpLFUrcCwxLDEpKSxEPWEuY2xvbmUodixEKSx2PUwsdz1hLm5lZ2F0ZShiLHcpO2xldCBTLFA7Zm9yKGxldCBIPTE7SDxtLTE7SCsrKXtsZXQgaz1yPzI6MTtpZihMPXRbSCsxXSx2LmVxdWFscyhMKSl7bmEoIlBvc2l0aW9ucyBhcmUgdG9vIGNsb3NlIGFuZCBhcmUgY29uc2lkZXJlZCBlcXVpdmFsZW50IHdpdGggcm91bmRpbmcgZXJyb3IuIik7Y29udGludWV9Yj1hLnN1YnRyYWN0KEwsdixiKSxiPWEubm9ybWFsaXplKGIsYiksRT1pLmdlb2RldGljU3VyZmFjZU5vcm1hbCh2LEUpO2xldCBLPWEubXVsdGlwbHlCeVNjYWxhcihFLGEuZG90KGIsRSksR3YpO2Euc3VidHJhY3QoYixLLEspLGEubm9ybWFsaXplKEssSyk7bGV0IFg9YS5tdWx0aXBseUJ5U2NhbGFyKEUsYS5kb3QodyxFKSx6dik7aWYoYS5zdWJ0cmFjdCh3LFgsWCksYS5ub3JtYWxpemUoWCxYKSwhTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKGEuZG90KEssWCkpLDEsTS5FUFNJTE9ONykpe089YS5hZGQoYix3LE8pLE89YS5ub3JtYWxpemUoTyxPKSxPPWEuY3Jvc3MoTyxFLE8pLE89YS5jcm9zcyhFLE8sTyksTz1hLm5vcm1hbGl6ZShPLE8pO2xldCBvdD0xL01hdGgubWF4KC4yNSxhLm1hZ25pdHVkZShhLmNyb3NzKE8sdyxBYSkpKSxhdD1rZi5hbmdsZUlzR3JlYXRlclRoYW5QaShiLHcsdixpKTthdD8oVD1hLmFkZCh2LGEubXVsdGlwbHlCeVNjYWxhcihPLG90KmQsTyksVCksQz1hLmFkZChULGEubXVsdGlwbHlCeVNjYWxhcihJLGQsQyksQyksYW9bMF09YS5jbG9uZShELGFvWzBdKSxhb1sxXT1hLmNsb25lKEMsYW9bMV0pLFM9WDAoYW8sVStwLEErcCxmKSxQPUFuLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6YW8sZ3JhbnVsYXJpdHk6ZixlbGxpcHNvaWQ6aX0pLF89JDAoUCxJLGMsXyxpLFMsMSksST1hLmNyb3NzKEUsYixJKSxJPWEubm9ybWFsaXplKEksSSksTj1hLmFkZChULGEubXVsdGlwbHlCeVNjYWxhcihJLGQsTiksTiksdT09PWZuLlJPVU5ERUR8fHU9PT1mbi5CRVZFTEVEP2pUKFQsQyxOLHUsYXQsaSxfLGMsQStwLHIpOihPPWEubmVnYXRlKE8sTyksXz1VaSh2LE8sYyxfLGksQStwLG90LGspKSxEPWEuY2xvbmUoTixEKSk6KFQ9YS5hZGQodixhLm11bHRpcGx5QnlTY2FsYXIoTyxvdCpkLE8pLFQpLEM9YS5hZGQoVCxhLm11bHRpcGx5QnlTY2FsYXIoSSwtZCxDKSxDKSxhb1swXT1hLmNsb25lKEQsYW9bMF0pLGFvWzFdPWEuY2xvbmUoQyxhb1sxXSksUz1YMChhbyxVK3AsQStwLGYpLFA9QW4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczphbyxncmFudWxhcml0eTpmLGVsbGlwc29pZDppfSksXz0kMChQLEksYyxfLGksUywxKSxJPWEuY3Jvc3MoRSxiLEkpLEk9YS5ub3JtYWxpemUoSSxJKSxOPWEuYWRkKFQsYS5tdWx0aXBseUJ5U2NhbGFyKEksLWQsTiksTiksdT09PWZuLlJPVU5ERUR8fHU9PT1mbi5CRVZFTEVEP2pUKFQsQyxOLHUsYXQsaSxfLGMsQStwLHIpOl89VWkodixPLGMsXyxpLEErcCxvdCxrKSxEPWEuY2xvbmUoTixEKSksdz1hLm5lZ2F0ZShiLHcpfWVsc2UgXz1VaShELEksYyxfLGksVStwLDEsMSksRD12O1U9QSxBPXNbSCsxXSx2PUx9YW9bMF09YS5jbG9uZShELGFvWzBdKSxhb1sxXT1hLmNsb25lKHYsYW9bMV0pLFM9WDAoYW8sVStwLEErcCxmKSxQPUFuLmdlbmVyYXRlQXJjKHtwb3NpdGlvbnM6YW8sZ3JhbnVsYXJpdHk6ZixlbGxpcHNvaWQ6aX0pLF89JDAoUCxJLGMsXyxpLFMsMSksciYmKGc9VWkodixJLGwsZyxpLEErcCwxLDEpKSxtPV8ubGVuZ3RoO2xldCBCPXI/bStnLmxlbmd0aDptLGo9bmV3IEZsb2F0NjRBcnJheShCKTtyZXR1cm4gai5zZXQoXyksciYmai5zZXQoZyxtKSxqfTtocz1rZn0pO2Z1bmN0aW9uIF9kKHQsZSxuLG8scil7bGV0IGk9YS5hbmdsZUJldHdlZW4oYS5zdWJ0cmFjdChlLHQsYmEpLGEuc3VidHJhY3Qobix0LFhUKSkscz1vPT09Zm4uQkVWRUxFRD8xOk1hdGguY2VpbChpL00udG9SYWRpYW5zKDUpKSsxLGY9cyozLHU9bmV3IEFycmF5KGYpO3VbZi0zXT1uLngsdVtmLTJdPW4ueSx1W2YtMV09bi56O2xldCBjO3I/Yz1RLmZyb21RdWF0ZXJuaW9uKGVlLmZyb21BeGlzQW5nbGUoYS5uZWdhdGUodCxiYSksaS9zLHFUKSxLVCk6Yz1RLmZyb21RdWF0ZXJuaW9uKGVlLmZyb21BeGlzQW5nbGUodCxpL3MscVQpLEtUKTtsZXQgbD0wO2U9YS5jbG9uZShlLGJhKTtmb3IobGV0IHA9MDtwPHM7cCsrKWU9US5tdWx0aXBseUJ5VmVjdG9yKGMsZSxlKSx1W2wrK109ZS54LHVbbCsrXT1lLnksdVtsKytdPWUuejtyZXR1cm4gdX1mdW5jdGlvbiBadih0KXtsZXQgZT1ZVCxuPSRULG89WlQscj10WzFdO249YS5mcm9tQXJyYXkodFsxXSxyLmxlbmd0aC0zLG4pLG89YS5mcm9tQXJyYXkodFswXSwwLG8pLGU9YS5taWRwb2ludChuLG8sZSk7bGV0IGk9X2QoZSxuLG8sZm4uUk9VTkRFRCwhMSkscz10Lmxlbmd0aC0xLGY9dFtzLTFdO3I9dFtzXSxuPWEuZnJvbUFycmF5KGYsZi5sZW5ndGgtMyxuKSxvPWEuZnJvbUFycmF5KHIsMCxvKSxlPWEubWlkcG9pbnQobixvLGUpO2xldCB1PV9kKGUsbixvLGZuLlJPVU5ERUQsITEpO3JldHVybltpLHVdfWZ1bmN0aW9uIFdUKHQsZSxuLG8pe2xldCByPWJhO3JldHVybiBvP3I9YS5hZGQodCxlLHIpOihlPWEubmVnYXRlKGUsZSkscj1hLmFkZCh0LGUscikpLFtyLngsci55LHIueixuLngsbi55LG4uel19ZnVuY3Rpb24gWjAodCxlLG4sbyl7bGV0IHI9bmV3IEFycmF5KHQubGVuZ3RoKSxpPW5ldyBBcnJheSh0Lmxlbmd0aCkscz1hLm11bHRpcGx5QnlTY2FsYXIoZSxuLGJhKSxmPWEubmVnYXRlKHMsWFQpLHU9MCxjPXQubGVuZ3RoLTE7Zm9yKGxldCBsPTA7bDx0Lmxlbmd0aDtsKz0zKXtsZXQgcD1hLmZyb21BcnJheSh0LGwsanYpLGQ9YS5hZGQocCxmLEhUKTtyW3UrK109ZC54LHJbdSsrXT1kLnksclt1KytdPWQuejtsZXQgbT1hLmFkZChwLHMsSFQpO2lbYy0tXT1tLnosaVtjLS1dPW0ueSxpW2MtLV09bS54fXJldHVybiBvLnB1c2gocixpKSxvfXZhciBRMCxiYSxYVCxqdixIVCxCbyxZVCwkVCxaVCxIdixxdixLdixXdixYdixZdiwkdixxVCxLVCxRdixKdixxZSxKMD1aKCgpPT57RnQoKTtoYygpO2Z0KCk7V3QoKTtCbigpO2dhKCk7aGQoKTtLbygpO1EwPXt9LGJhPW5ldyBhLFhUPW5ldyBhLGp2PW5ldyBhLEhUPW5ldyBhLEJvPVtuZXcgYSxuZXcgYV0sWVQ9bmV3IGEsJFQ9bmV3IGEsWlQ9bmV3IGEsSHY9bmV3IGEscXY9bmV3IGEsS3Y9bmV3IGEsV3Y9bmV3IGEsWHY9bmV3IGEsWXY9bmV3IGEsJHY9bmV3IGEscVQ9bmV3IGVlLEtUPW5ldyBRO1EwLmFkZEF0dHJpYnV0ZT1mdW5jdGlvbih0LGUsbixvKXtsZXQgcj1lLngsaT1lLnkscz1lLno7aChuKSYmKHRbbl09cix0W24rMV09aSx0W24rMl09cyksaChvKSYmKHRbb109cyx0W28tMV09aSx0W28tMl09cil9O1F2PW5ldyBhLEp2PW5ldyBhO1EwLmNvbXB1dGVQb3NpdGlvbnM9ZnVuY3Rpb24odCl7bGV0IGU9dC5ncmFudWxhcml0eSxuPXQucG9zaXRpb25zLG89dC5lbGxpcHNvaWQscj10LndpZHRoLzIsaT10LmNvcm5lclR5cGUscz10LnNhdmVBdHRyaWJ1dGVzLGY9WVQsdT0kVCxjPVpULGw9SHYscD1xdixkPUt2LG09V3YsXz1YdixnPVl2LGI9JHYsdz1bXSxPPXM/W106dm9pZCAwLEU9cz9bXTp2b2lkIDAsVD1uWzBdLEM9blsxXTt1PWEubm9ybWFsaXplKGEuc3VidHJhY3QoQyxULHUpLHUpLGY9by5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoVCxmKSxsPWEubm9ybWFsaXplKGEuY3Jvc3MoZix1LGwpLGwpLHMmJihPLnB1c2gobC54LGwueSxsLnopLEUucHVzaChmLngsZi55LGYueikpLG09YS5jbG9uZShULG0pLFQ9QyxjPWEubmVnYXRlKHUsYyk7bGV0IE4sST1bXSxELHY9bi5sZW5ndGg7Zm9yKEQ9MTtEPHYtMTtEKyspe2Y9by5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoVCxmKSxDPW5bRCsxXSx1PWEubm9ybWFsaXplKGEuc3VidHJhY3QoQyxULHUpLHUpO2xldCBVPWEubXVsdGlwbHlCeVNjYWxhcihmLGEuZG90KHUsZiksUXYpO2Euc3VidHJhY3QodSxVLFUpLGEubm9ybWFsaXplKFUsVSk7bGV0IEE9YS5tdWx0aXBseUJ5U2NhbGFyKGYsYS5kb3QoYyxmKSxKdik7aWYoYS5zdWJ0cmFjdChjLEEsQSksYS5ub3JtYWxpemUoQSxBKSwhTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKGEuZG90KFUsQSkpLDEsTS5FUFNJTE9ONykpe3A9YS5ub3JtYWxpemUoYS5hZGQodSxjLHApLHApLHA9YS5jcm9zcyhwLGYscCkscD1hLmNyb3NzKGYscCxwKSxwPWEubm9ybWFsaXplKHAscCk7bGV0IFA9ci9NYXRoLm1heCguMjUsYS5tYWduaXR1ZGUoYS5jcm9zcyhwLGMsYmEpKSksQj1ocy5hbmdsZUlzR3JlYXRlclRoYW5QaSh1LGMsVCxvKTtwPWEubXVsdGlwbHlCeVNjYWxhcihwLFAscCksQj8oXz1hLmFkZChULHAsXyksYj1hLmFkZChfLGEubXVsdGlwbHlCeVNjYWxhcihsLHIsYiksYiksZz1hLmFkZChfLGEubXVsdGlwbHlCeVNjYWxhcihsLHIqMixnKSxnKSxCb1swXT1hLmNsb25lKG0sQm9bMF0pLEJvWzFdPWEuY2xvbmUoYixCb1sxXSksTj1Bbi5nZW5lcmF0ZUFyYyh7cG9zaXRpb25zOkJvLGdyYW51bGFyaXR5OmUsZWxsaXBzb2lkOm99KSx3PVowKE4sbCxyLHcpLHMmJihPLnB1c2gobC54LGwueSxsLnopLEUucHVzaChmLngsZi55LGYueikpLGQ9YS5jbG9uZShnLGQpLGw9YS5ub3JtYWxpemUoYS5jcm9zcyhmLHUsbCksbCksZz1hLmFkZChfLGEubXVsdGlwbHlCeVNjYWxhcihsLHIqMixnKSxnKSxtPWEuYWRkKF8sYS5tdWx0aXBseUJ5U2NhbGFyKGwscixtKSxtKSxpPT09Zm4uUk9VTkRFRHx8aT09PWZuLkJFVkVMRUQ/SS5wdXNoKHtsZWZ0UG9zaXRpb25zOl9kKF8sZCxnLGksQil9KTpJLnB1c2goe2xlZnRQb3NpdGlvbnM6V1QoVCxhLm5lZ2F0ZShwLHApLGcsQil9KSk6KGc9YS5hZGQoVCxwLGcpLGI9YS5hZGQoZyxhLm5lZ2F0ZShhLm11bHRpcGx5QnlTY2FsYXIobCxyLGIpLGIpLGIpLF89YS5hZGQoZyxhLm5lZ2F0ZShhLm11bHRpcGx5QnlTY2FsYXIobCxyKjIsXyksXyksXyksQm9bMF09YS5jbG9uZShtLEJvWzBdKSxCb1sxXT1hLmNsb25lKGIsQm9bMV0pLE49QW4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczpCbyxncmFudWxhcml0eTplLGVsbGlwc29pZDpvfSksdz1aMChOLGwscix3KSxzJiYoTy5wdXNoKGwueCxsLnksbC56KSxFLnB1c2goZi54LGYueSxmLnopKSxkPWEuY2xvbmUoXyxkKSxsPWEubm9ybWFsaXplKGEuY3Jvc3MoZix1LGwpLGwpLF89YS5hZGQoZyxhLm5lZ2F0ZShhLm11bHRpcGx5QnlTY2FsYXIobCxyKjIsXyksXyksXyksbT1hLmFkZChnLGEubmVnYXRlKGEubXVsdGlwbHlCeVNjYWxhcihsLHIsbSksbSksbSksaT09PWZuLlJPVU5ERUR8fGk9PT1mbi5CRVZFTEVEP0kucHVzaCh7cmlnaHRQb3NpdGlvbnM6X2QoZyxkLF8saSxCKX0pOkkucHVzaCh7cmlnaHRQb3NpdGlvbnM6V1QoVCxwLF8sQil9KSksYz1hLm5lZ2F0ZSh1LGMpfVQ9Q31mPW8uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKFQsZiksQm9bMF09YS5jbG9uZShtLEJvWzBdKSxCb1sxXT1hLmNsb25lKFQsQm9bMV0pLE49QW4uZ2VuZXJhdGVBcmMoe3Bvc2l0aW9uczpCbyxncmFudWxhcml0eTplLGVsbGlwc29pZDpvfSksdz1aMChOLGwscix3KSxzJiYoTy5wdXNoKGwueCxsLnksbC56KSxFLnB1c2goZi54LGYueSxmLnopKTtsZXQgTDtyZXR1cm4gaT09PWZuLlJPVU5ERUQmJihMPVp2KHcpKSx7cG9zaXRpb25zOncsY29ybmVyczpJLGxlZnRzOk8sbm9ybWFsczpFLGVuZFBvc2l0aW9uczpMfX07cWU9UTB9KTtmdW5jdGlvbiBvTyh0LGUpe2ZvcihsZXQgbj0wO248dC5sZW5ndGg7bisrKXRbbl09ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKHRbbl0sdFtuXSk7cmV0dXJuIHR9ZnVuY3Rpb24gS3IodCxlLG4sbyxyLGkpe2xldCBzPXQubm9ybWFscyxmPXQudGFuZ2VudHMsdT10LmJpdGFuZ2VudHMsYz1hLm5vcm1hbGl6ZShhLmNyb3NzKG4sZSxfcyksX3MpO2kubm9ybWFsJiZxZS5hZGRBdHRyaWJ1dGUocyxlLG8sciksaS50YW5nZW50JiZxZS5hZGRBdHRyaWJ1dGUoZixjLG8sciksaS5iaXRhbmdlbnQmJnFlLmFkZEF0dHJpYnV0ZSh1LG4sbyxyKX1mdW5jdGlvbiByTyh0LGUsbil7bGV0IG89dC5wb3NpdGlvbnMscj10LmNvcm5lcnMsaT10LmVuZFBvc2l0aW9ucyxzPXQubGVmdHMsZj10Lm5vcm1hbHMsdT1uZXcgaWUsYyxsPTAscD0wLGQsbT0wLF87Zm9yKGQ9MDtkPG8ubGVuZ3RoO2QrPTIpXz1vW2RdLmxlbmd0aC0zLGwrPV8sbSs9XyoyLHArPW9bZCsxXS5sZW5ndGgtMztmb3IobCs9MyxwKz0zLGQ9MDtkPHIubGVuZ3RoO2QrKyl7Yz1yW2RdO2xldCBydD1yW2RdLmxlZnRQb3NpdGlvbnM7aChydCk/KF89cnQubGVuZ3RoLGwrPV8sbSs9Xyk6KF89cltkXS5yaWdodFBvc2l0aW9ucy5sZW5ndGgscCs9XyxtKz1fKX1sZXQgZz1oKGkpLGI7ZyYmKGI9aVswXS5sZW5ndGgtMyxsKz1iLHArPWIsYi89MyxtKz1iKjYpO2xldCB3PWwrcCxPPW5ldyBGbG9hdDY0QXJyYXkodyksRT1lLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KHcpOnZvaWQgMCxUPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHcpOnZvaWQgMCxDPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkodyk6dm9pZCAwLE49e25vcm1hbHM6RSx0YW5nZW50czpULGJpdGFuZ2VudHM6Q30sST0wLEQ9dy0xLHYsTCxVLEEsUz10TyxQPWVPLEIsaixIPWIvMixrPUR0LmNyZWF0ZVR5cGVkQXJyYXkody8zLG0pLEs9MDtpZihnKXtqPXlkLEI9Z2Q7bGV0IHJ0PWlbMF07Zm9yKFM9YS5mcm9tQXJyYXkoZiwwLFMpLFA9YS5mcm9tQXJyYXkocywwLFApLGQ9MDtkPEg7ZCsrKWo9YS5mcm9tQXJyYXkocnQsKEgtMS1kKSozLGopLEI9YS5mcm9tQXJyYXkocnQsKEgrZCkqMyxCKSxxZS5hZGRBdHRyaWJ1dGUoTyxCLEkpLHFlLmFkZEF0dHJpYnV0ZShPLGosdm9pZCAwLEQpLEtyKE4sUyxQLEksRCxlKSxMPUkvMyxBPUwrMSx2PShELTIpLzMsVT12LTEsa1tLKytdPXYsa1tLKytdPUwsa1tLKytdPVUsa1tLKytdPVUsa1tLKytdPUwsa1tLKytdPUEsSSs9MyxELT0zfWxldCBYPTAsUj0wLG90PW9bWCsrXSxhdD1vW1grK107Ty5zZXQob3QsSSksTy5zZXQoYXQsRC1hdC5sZW5ndGgrMSksUD1hLmZyb21BcnJheShzLFIsUCk7bGV0IHB0LHl0O2ZvcihfPWF0Lmxlbmd0aC0zLGQ9MDtkPF87ZCs9MylwdD1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChhLmZyb21BcnJheShvdCxkLF9zKSxfcykseXQ9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoYS5mcm9tQXJyYXkoYXQsXy1kLHdhKSx3YSksUz1hLm5vcm1hbGl6ZShhLmFkZChwdCx5dCxTKSxTKSxLcihOLFMsUCxJLEQsZSksTD1JLzMsQT1MKzEsdj0oRC0yKS8zLFU9di0xLGtbSysrXT12LGtbSysrXT1MLGtbSysrXT1VLGtbSysrXT1VLGtbSysrXT1MLGtbSysrXT1BLEkrPTMsRC09Mztmb3IocHQ9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoYS5mcm9tQXJyYXkob3QsXyxfcyksX3MpLHl0PW4uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKGEuZnJvbUFycmF5KGF0LF8sd2EpLHdhKSxTPWEubm9ybWFsaXplKGEuYWRkKHB0LHl0LFMpLFMpLFIrPTMsZD0wO2Q8ci5sZW5ndGg7ZCsrKXtsZXQgcnQ7Yz1yW2RdO2xldCBQdD1jLmxlZnRQb3NpdGlvbnMsZ3Q9Yy5yaWdodFBvc2l0aW9ucyxDdCxtdCx1dD1uTyx2dD15ZCx6dD1nZDtpZihTPWEuZnJvbUFycmF5KGYsUixTKSxoKFB0KSl7Zm9yKEtyKE4sUyxQLHZvaWQgMCxELGUpLEQtPTMsQ3Q9QSxtdD1VLHJ0PTA7cnQ8UHQubGVuZ3RoLzM7cnQrKyl1dD1hLmZyb21BcnJheShQdCxydCozLHV0KSxrW0srK109Q3Qsa1tLKytdPW10LXJ0LTEsa1tLKytdPW10LXJ0LHFlLmFkZEF0dHJpYnV0ZShPLHV0LHZvaWQgMCxEKSx2dD1hLmZyb21BcnJheShPLChtdC1ydC0xKSozLHZ0KSx6dD1hLmZyb21BcnJheShPLEN0KjMsenQpLFA9YS5ub3JtYWxpemUoYS5zdWJ0cmFjdCh2dCx6dCxQKSxQKSxLcihOLFMsUCx2b2lkIDAsRCxlKSxELT0zO3V0PWEuZnJvbUFycmF5KE8sQ3QqMyx1dCksdnQ9YS5zdWJ0cmFjdChhLmZyb21BcnJheShPLG10KjMsdnQpLHV0LHZ0KSx6dD1hLnN1YnRyYWN0KGEuZnJvbUFycmF5KE8sKG10LXJ0KSozLHp0KSx1dCx6dCksUD1hLm5vcm1hbGl6ZShhLmFkZCh2dCx6dCxQKSxQKSxLcihOLFMsUCxJLHZvaWQgMCxlKSxJKz0zfWVsc2V7Zm9yKEtyKE4sUyxQLEksdm9pZCAwLGUpLEkrPTMsQ3Q9VSxtdD1BLHJ0PTA7cnQ8Z3QubGVuZ3RoLzM7cnQrKyl1dD1hLmZyb21BcnJheShndCxydCozLHV0KSxrW0srK109Q3Qsa1tLKytdPW10K3J0LGtbSysrXT1tdCtydCsxLHFlLmFkZEF0dHJpYnV0ZShPLHV0LEkpLHZ0PWEuZnJvbUFycmF5KE8sQ3QqMyx2dCksenQ9YS5mcm9tQXJyYXkoTywobXQrcnQpKjMsenQpLFA9YS5ub3JtYWxpemUoYS5zdWJ0cmFjdCh2dCx6dCxQKSxQKSxLcihOLFMsUCxJLHZvaWQgMCxlKSxJKz0zO3V0PWEuZnJvbUFycmF5KE8sQ3QqMyx1dCksdnQ9YS5zdWJ0cmFjdChhLmZyb21BcnJheShPLChtdCtydCkqMyx2dCksdXQsdnQpLHp0PWEuc3VidHJhY3QoYS5mcm9tQXJyYXkoTyxtdCozLHp0KSx1dCx6dCksUD1hLm5vcm1hbGl6ZShhLm5lZ2F0ZShhLmFkZCh6dCx2dCxQKSxQKSxQKSxLcihOLFMsUCx2b2lkIDAsRCxlKSxELT0zfWZvcihvdD1vW1grK10sYXQ9b1tYKytdLG90LnNwbGljZSgwLDMpLGF0LnNwbGljZShhdC5sZW5ndGgtMywzKSxPLnNldChvdCxJKSxPLnNldChhdCxELWF0Lmxlbmd0aCsxKSxfPWF0Lmxlbmd0aC0zLFIrPTMsUD1hLmZyb21BcnJheShzLFIsUCkscnQ9MDtydDxhdC5sZW5ndGg7cnQrPTMpcHQ9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoYS5mcm9tQXJyYXkob3QscnQsX3MpLF9zKSx5dD1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChhLmZyb21BcnJheShhdCxfLXJ0LHdhKSx3YSksUz1hLm5vcm1hbGl6ZShhLmFkZChwdCx5dCxTKSxTKSxLcihOLFMsUCxJLEQsZSksQT1JLzMsTD1BLTEsVT0oRC0yKS8zLHY9VSsxLGtbSysrXT12LGtbSysrXT1MLGtbSysrXT1VLGtbSysrXT1VLGtbSysrXT1MLGtbSysrXT1BLEkrPTMsRC09MztJLT0zLEQrPTN9aWYoUz1hLmZyb21BcnJheShmLGYubGVuZ3RoLTMsUyksS3IoTixTLFAsSSxELGUpLGcpe0krPTMsRC09MyxqPXlkLEI9Z2Q7bGV0IHJ0PWlbMV07Zm9yKGQ9MDtkPEg7ZCsrKWo9YS5mcm9tQXJyYXkocnQsKGItZC0xKSozLGopLEI9YS5mcm9tQXJyYXkocnQsZCozLEIpLHFlLmFkZEF0dHJpYnV0ZShPLGosdm9pZCAwLEQpLHFlLmFkZEF0dHJpYnV0ZShPLEIsSSksS3IoTixTLFAsSSxELGUpLEE9SS8zLEw9QS0xLFU9KEQtMikvMyx2PVUrMSxrW0srK109dixrW0srK109TCxrW0srK109VSxrW0srK109VSxrW0srK109TCxrW0srK109QSxJKz0zLEQtPTN9aWYodS5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOk99KSxlLnN0KXtsZXQgcnQ9bmV3IEZsb2F0MzJBcnJheSh3LzMqMiksUHQsZ3QsQ3Q9MDtpZihnKXtsLz0zLHAvPTM7bGV0IG10PU1hdGguUEkvKGIrMSk7Z3Q9MS8obC1iKzEpLFB0PTEvKHAtYisxKTtsZXQgdXQsdnQ9Yi8yO2ZvcihkPXZ0KzE7ZDxiKzE7ZCsrKXV0PU0uUElfT1ZFUl9UV08rbXQqZCxydFtDdCsrXT1QdCooMStNYXRoLmNvcyh1dCkpLHJ0W0N0KytdPS41KigxK01hdGguc2luKHV0KSk7Zm9yKGQ9MTtkPHAtYisxO2QrKylydFtDdCsrXT1kKlB0LHJ0W0N0KytdPTA7Zm9yKGQ9YjtkPnZ0O2QtLSl1dD1NLlBJX09WRVJfVFdPLWQqbXQscnRbQ3QrK109MS1QdCooMStNYXRoLmNvcyh1dCkpLHJ0W0N0KytdPS41KigxK01hdGguc2luKHV0KSk7Zm9yKGQ9dnQ7ZD4wO2QtLSl1dD1NLlBJX09WRVJfVFdPLW10KmQscnRbQ3QrK109MS1ndCooMStNYXRoLmNvcyh1dCkpLHJ0W0N0KytdPS41KigxK01hdGguc2luKHV0KSk7Zm9yKGQ9bC1iO2Q+MDtkLS0pcnRbQ3QrK109ZCpndCxydFtDdCsrXT0xO2ZvcihkPTE7ZDx2dCsxO2QrKyl1dD1NLlBJX09WRVJfVFdPK210KmQscnRbQ3QrK109Z3QqKDErTWF0aC5jb3ModXQpKSxydFtDdCsrXT0uNSooMStNYXRoLnNpbih1dCkpfWVsc2V7Zm9yKGwvPTMscC89MyxndD0xLyhsLTEpLFB0PTEvKHAtMSksZD0wO2Q8cDtkKyspcnRbQ3QrK109ZCpQdCxydFtDdCsrXT0wO2ZvcihkPWw7ZD4wO2QtLSlydFtDdCsrXT0oZC0xKSpndCxydFtDdCsrXT0xfXUuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOnJ0fSl9cmV0dXJuIGUubm9ybWFsJiYodS5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOk4ubm9ybWFsc30pKSxlLnRhbmdlbnQmJih1LnRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOk4udGFuZ2VudHN9KSksZS5iaXRhbmdlbnQmJih1LmJpdGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Ti5iaXRhbmdlbnRzfSkpLHthdHRyaWJ1dGVzOnUsaW5kaWNlczprfX1mdW5jdGlvbiBlTCh0LGUpe2lmKCFlLm5vcm1hbCYmIWUudGFuZ2VudCYmIWUuYml0YW5nZW50JiYhZS5zdClyZXR1cm4gdDtsZXQgbj10LnBvc2l0aW9uLnZhbHVlcyxvLHI7KGUubm9ybWFsfHxlLmJpdGFuZ2VudCkmJihvPXQubm9ybWFsLnZhbHVlcyxyPXQuYml0YW5nZW50LnZhbHVlcyk7bGV0IGk9dC5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzE4LHM9aSozLGY9aSoyLHU9cyoyLGM7aWYoZS5ub3JtYWx8fGUuYml0YW5nZW50fHxlLnRhbmdlbnQpe2xldCBsPWUubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkocyo2KTp2b2lkIDAscD1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShzKjYpOnZvaWQgMCxkPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkocyo2KTp2b2lkIDAsbT10TyxfPWVPLGc9eWQsYj1nZCx3PXRMLE89bk8sRT11O2ZvcihjPTA7YzxzO2MrPTMpe2xldCBUPUUrdTttPWEuZnJvbUFycmF5KG4sYyxtKSxfPWEuZnJvbUFycmF5KG4sYytzLF8pLGc9YS5mcm9tQXJyYXkobiwoYyszKSVzLGcpLF89YS5zdWJ0cmFjdChfLG0sXyksZz1hLnN1YnRyYWN0KGcsbSxnKSxiPWEubm9ybWFsaXplKGEuY3Jvc3MoXyxnLGIpLGIpLGUubm9ybWFsJiYocWUuYWRkQXR0cmlidXRlKGwsYixUKSxxZS5hZGRBdHRyaWJ1dGUobCxiLFQrMykscWUuYWRkQXR0cmlidXRlKGwsYixFKSxxZS5hZGRBdHRyaWJ1dGUobCxiLEUrMykpLChlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKE89YS5mcm9tQXJyYXkobyxjLE8pLGUuYml0YW5nZW50JiYocWUuYWRkQXR0cmlidXRlKGQsTyxUKSxxZS5hZGRBdHRyaWJ1dGUoZCxPLFQrMykscWUuYWRkQXR0cmlidXRlKGQsTyxFKSxxZS5hZGRBdHRyaWJ1dGUoZCxPLEUrMykpLGUudGFuZ2VudCYmKHc9YS5ub3JtYWxpemUoYS5jcm9zcyhPLGIsdyksdykscWUuYWRkQXR0cmlidXRlKHAsdyxUKSxxZS5hZGRBdHRyaWJ1dGUocCx3LFQrMykscWUuYWRkQXR0cmlidXRlKHAsdyxFKSxxZS5hZGRBdHRyaWJ1dGUocCx3LEUrMykpKSxFKz02fWlmKGUubm9ybWFsKXtmb3IobC5zZXQobyksYz0wO2M8cztjKz0zKWxbYytzXT0tb1tjXSxsW2MrcysxXT0tb1tjKzFdLGxbYytzKzJdPS1vW2MrMl07dC5ub3JtYWwudmFsdWVzPWx9ZWxzZSB0Lm5vcm1hbD12b2lkIDA7aWYoZS5iaXRhbmdlbnQ/KGQuc2V0KHIpLGQuc2V0KHIscyksdC5iaXRhbmdlbnQudmFsdWVzPWQpOnQuYml0YW5nZW50PXZvaWQgMCxlLnRhbmdlbnQpe2xldCBUPXQudGFuZ2VudC52YWx1ZXM7cC5zZXQoVCkscC5zZXQoVCxzKSx0LnRhbmdlbnQudmFsdWVzPXB9fWlmKGUuc3Qpe2xldCBsPXQuc3QudmFsdWVzLHA9bmV3IEZsb2F0MzJBcnJheShmKjYpO3Auc2V0KGwpLHAuc2V0KGwsZik7bGV0IGQ9ZioyO2ZvcihsZXQgbT0wO208MjttKyspe2ZvcihwW2QrK109bFswXSxwW2QrK109bFsxXSxjPTI7YzxmO2MrPTIpe2xldCBfPWxbY10sZz1sW2MrMV07cFtkKytdPV8scFtkKytdPWcscFtkKytdPV8scFtkKytdPWd9cFtkKytdPWxbMF0scFtkKytdPWxbMV19dC5zdC52YWx1ZXM9cH1yZXR1cm4gdH1mdW5jdGlvbiB0Xyh0LGUsbil7bltlKytdPXRbMF0sbltlKytdPXRbMV0sbltlKytdPXRbMl07Zm9yKGxldCBvPTM7bzx0Lmxlbmd0aDtvKz0zKXtsZXQgcj10W29dLGk9dFtvKzFdLHM9dFtvKzJdO25bZSsrXT1yLG5bZSsrXT1pLG5bZSsrXT1zLG5bZSsrXT1yLG5bZSsrXT1pLG5bZSsrXT1zfXJldHVybiBuW2UrK109dFswXSxuW2UrK109dFsxXSxuW2UrK109dFsyXSxufWZ1bmN0aW9uIG5MKHQsZSl7bGV0IG49bmV3IGR0KHtwb3NpdGlvbjplLnBvc2l0aW9uLG5vcm1hbDplLm5vcm1hbHx8ZS5iaXRhbmdlbnR8fHQuc2hhZG93Vm9sdW1lLHRhbmdlbnQ6ZS50YW5nZW50LGJpdGFuZ2VudDplLm5vcm1hbHx8ZS5iaXRhbmdlbnQsc3Q6ZS5zdH0pLG89dC5lbGxpcHNvaWQscj1xZS5jb21wdXRlUG9zaXRpb25zKHQpLGk9ck8ocixuLG8pLHM9dC5oZWlnaHQsZj10LmV4dHJ1ZGVkSGVpZ2h0LHU9aS5hdHRyaWJ1dGVzLGM9aS5pbmRpY2VzLGw9dS5wb3NpdGlvbi52YWx1ZXMscD1sLmxlbmd0aCxkPW5ldyBGbG9hdDY0QXJyYXkocCo2KSxtPW5ldyBGbG9hdDY0QXJyYXkocCk7bS5zZXQobCk7bGV0IF89bmV3IEZsb2F0NjRBcnJheShwKjQpO2w9UGUuc2NhbGVUb0dlb2RldGljSGVpZ2h0KGwscyxvKSxfPXRfKGwsMCxfKSxtPVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChtLGYsbyksXz10XyhtLHAqMixfKSxkLnNldChsKSxkLnNldChtLHApLGQuc2V0KF8scCoyKSx1LnBvc2l0aW9uLnZhbHVlcz1kLHU9ZUwodSxlKTtsZXQgZyxiPXAvMztpZih0LnNoYWRvd1ZvbHVtZSl7bGV0IHY9dS5ub3JtYWwudmFsdWVzO3A9di5sZW5ndGg7bGV0IEw9bmV3IEZsb2F0MzJBcnJheShwKjYpO2ZvcihnPTA7ZzxwO2crKyl2W2ddPS12W2ddO0wuc2V0KHYscCksTD10Xyh2LHAqNCxMKSx1LmV4dHJ1ZGVEaXJlY3Rpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkx9KSxlLm5vcm1hbHx8KHUubm9ybWFsPXZvaWQgMCl9aWYoaCh0Lm9mZnNldEF0dHJpYnV0ZSkpe2xldCB2PW5ldyBVaW50OEFycmF5KGIqNik7aWYodC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1Apdj12LmZpbGwoMSwwLGIpLmZpbGwoMSxiKjIsYio0KTtlbHNle2xldCBMPXQub2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjE7dj12LmZpbGwoTCl9dS5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczp2fSl9bGV0IHc9Yy5sZW5ndGgsTz1iK2IsRT1EdC5jcmVhdGVUeXBlZEFycmF5KGQubGVuZ3RoLzMsdyoyK08qMyk7RS5zZXQoYyk7bGV0IFQ9dztmb3IoZz0wO2c8dztnKz0zKXtsZXQgdj1jW2ddLEw9Y1tnKzFdLFU9Y1tnKzJdO0VbVCsrXT1VK2IsRVtUKytdPUwrYixFW1QrK109ditifWxldCBDLE4sSSxEO2ZvcihnPTA7ZzxPO2crPTIpQz1nK08sTj1DK08sST1DKzEsRD1OKzEsRVtUKytdPUMsRVtUKytdPU4sRVtUKytdPUksRVtUKytdPUksRVtUKytdPU4sRVtUKytdPUQ7cmV0dXJue2F0dHJpYnV0ZXM6dSxpbmRpY2VzOkV9fWZ1bmN0aW9uIEpUKHQsZSxuLG8scixpKXtsZXQgcz1hLnN1YnRyYWN0KGUsdCxRVCk7YS5ub3JtYWxpemUocyxzKTtsZXQgZj1uLmdlb2RldGljU3VyZmFjZU5vcm1hbCh0LEdmKSx1PWEuY3Jvc3MocyxmLFFUKTthLm11bHRpcGx5QnlTY2FsYXIodSxvLHUpO2xldCBjPXIubGF0aXR1ZGUsbD1yLmxvbmdpdHVkZSxwPWkubGF0aXR1ZGUsZD1pLmxvbmdpdHVkZTthLmFkZCh0LHUsR2YpLG4uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoR2YsVHIpO2xldCBtPVRyLmxhdGl0dWRlLF89VHIubG9uZ2l0dWRlO2M9TWF0aC5taW4oYyxtKSxsPU1hdGgubWluKGwsXykscD1NYXRoLm1heChwLG0pLGQ9TWF0aC5tYXgoZCxfKSxhLnN1YnRyYWN0KHQsdSxHZiksbi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhHZixUciksbT1Uci5sYXRpdHVkZSxfPVRyLmxvbmdpdHVkZSxjPU1hdGgubWluKGMsbSksbD1NYXRoLm1pbihsLF8pLHA9TWF0aC5tYXgocCxtKSxkPU1hdGgubWF4KGQsXyksci5sYXRpdHVkZT1jLHIubG9uZ2l0dWRlPWwsaS5sYXRpdHVkZT1wLGkubG9uZ2l0dWRlPWR9ZnVuY3Rpb24gaU8odCxlLG4sbyxyKXt0PW9PKHQsZSk7bGV0IGk9eG4odCxhLmVxdWFsc0Vwc2lsb24pLHM9aS5sZW5ndGg7aWYoczwyfHxuPD0wKXJldHVybiBuZXcgTnQ7bGV0IGY9biouNTtRby5sYXRpdHVkZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksUW8ubG9uZ2l0dWRlPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxKby5sYXRpdHVkZT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksSm8ubG9uZ2l0dWRlPU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtsZXQgdSxjO2lmKG89PT1mbi5ST1VOREVEKXtsZXQgZD1pWzBdO2Euc3VidHJhY3QoZCxpWzFdLHdyKSxhLm5vcm1hbGl6ZSh3cix3ciksYS5tdWx0aXBseUJ5U2NhbGFyKHdyLGYsd3IpLGEuYWRkKGQsd3IsemYpLGUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoemYsVHIpLHU9VHIubGF0aXR1ZGUsYz1Uci5sb25naXR1ZGUsUW8ubGF0aXR1ZGU9TWF0aC5taW4oUW8ubGF0aXR1ZGUsdSksUW8ubG9uZ2l0dWRlPU1hdGgubWluKFFvLmxvbmdpdHVkZSxjKSxKby5sYXRpdHVkZT1NYXRoLm1heChKby5sYXRpdHVkZSx1KSxKby5sb25naXR1ZGU9TWF0aC5tYXgoSm8ubG9uZ2l0dWRlLGMpfWZvcihsZXQgZD0wO2Q8cy0xOysrZClKVChpW2RdLGlbZCsxXSxlLGYsUW8sSm8pO2xldCBsPWlbcy0xXTthLnN1YnRyYWN0KGwsaVtzLTJdLHdyKSxhLm5vcm1hbGl6ZSh3cix3ciksYS5tdWx0aXBseUJ5U2NhbGFyKHdyLGYsd3IpLGEuYWRkKGwsd3IsemYpLEpUKGwsemYsZSxmLFFvLEpvKSxvPT09Zm4uUk9VTkRFRCYmKGUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoemYsVHIpLHU9VHIubGF0aXR1ZGUsYz1Uci5sb25naXR1ZGUsUW8ubGF0aXR1ZGU9TWF0aC5taW4oUW8ubGF0aXR1ZGUsdSksUW8ubG9uZ2l0dWRlPU1hdGgubWluKFFvLmxvbmdpdHVkZSxjKSxKby5sYXRpdHVkZT1NYXRoLm1heChKby5sYXRpdHVkZSx1KSxKby5sb25naXR1ZGU9TWF0aC5tYXgoSm8ubG9uZ2l0dWRlLGMpKTtsZXQgcD1oKHIpP3I6bmV3IE50O3JldHVybiBwLm5vcnRoPUpvLmxhdGl0dWRlLHAuc291dGg9UW8ubGF0aXR1ZGUscC5lYXN0PUpvLmxvbmdpdHVkZSxwLndlc3Q9UW8ubG9uZ2l0dWRlLHB9ZnVuY3Rpb24ga2kodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9zaXRpb25zLG49dC53aWR0aDt5LmRlZmluZWQoIm9wdGlvbnMucG9zaXRpb25zIixlKSx5LmRlZmluZWQoIm9wdGlvbnMud2lkdGgiLG4pO2xldCBvPXgodC5oZWlnaHQsMCkscj14KHQuZXh0cnVkZWRIZWlnaHQsbyk7dGhpcy5fcG9zaXRpb25zPWUsdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpKSx0aGlzLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoeCh0LnZlcnRleEZvcm1hdCxkdC5ERUZBVUxUKSksdGhpcy5fd2lkdGg9bix0aGlzLl9oZWlnaHQ9TWF0aC5tYXgobyxyKSx0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbihvLHIpLHRoaXMuX2Nvcm5lclR5cGU9eCh0LmNvcm5lclR5cGUsZm4uUk9VTkRFRCksdGhpcy5fZ3JhbnVsYXJpdHk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSx0aGlzLl9zaGFkb3dWb2x1bWU9eCh0LnNoYWRvd1ZvbHVtZSwhMSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlQ29ycmlkb3JHZW9tZXRyeSIsdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3JlY3RhbmdsZT12b2lkIDAsdGhpcy5wYWNrZWRMZW5ndGg9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGgrN312YXIgdE8sZU8seWQsZ2QsdEwsbk8sX3Msd2EsUVQsR2YsVHIsd3IsemYsUW8sSm8sc08sY08sVmksZV8sYU89WigoKT0+e2pyKCk7dmUoKTtGdCgpO0llKCk7WHQoKTtGZSgpO2hjKCk7SjAoKTtJdCgpO2Z0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtMbygpOyRlKCk7V3QoKTtxcigpO3RuKCk7VG4oKTtSbygpO3RPPW5ldyBhLGVPPW5ldyBhLHlkPW5ldyBhLGdkPW5ldyBhLHRMPW5ldyBhLG5PPW5ldyBhLF9zPW5ldyBhLHdhPW5ldyBhO1FUPW5ldyBhLEdmPW5ldyBhLFRyPW5ldyBjdDt3cj1uZXcgYSx6Zj1uZXcgYSxRbz1uZXcgY3QsSm89bmV3IGN0O2tpLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApO2xldCBvPXQuX3Bvc2l0aW9ucyxyPW8ubGVuZ3RoO2VbbisrXT1yO2ZvcihsZXQgaT0wO2k8cjsrK2ksbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKG9baV0sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGR0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9ZHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll93aWR0aCxlW24rK109dC5faGVpZ2h0LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fY29ybmVyVHlwZSxlW24rK109dC5fZ3JhbnVsYXJpdHksZVtuKytdPXQuX3NoYWRvd1ZvbHVtZT8xOjAsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07c089JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxjTz1uZXcgZHQsVmk9e3Bvc2l0aW9uczp2b2lkIDAsZWxsaXBzb2lkOnNPLHZlcnRleEZvcm1hdDpjTyx3aWR0aDp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxleHRydWRlZEhlaWdodDp2b2lkIDAsY29ybmVyVHlwZTp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07a2kudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz10W2UrK10scj1uZXcgQXJyYXkobyk7Zm9yKGxldCBfPTA7XzxvOysrXyxlKz1hLnBhY2tlZExlbmd0aClyW19dPWEudW5wYWNrKHQsZSk7bGV0IGk9JC51bnBhY2sodCxlLHNPKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgcz1kdC51bnBhY2sodCxlLGNPKTtlKz1kdC5wYWNrZWRMZW5ndGg7bGV0IGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdLHA9dFtlKytdLGQ9dFtlKytdPT09MSxtPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1yLG4uX2VsbGlwc29pZD0kLmNsb25lKGksbi5fZWxsaXBzb2lkKSxuLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUocyxuLl92ZXJ0ZXhGb3JtYXQpLG4uX3dpZHRoPWYsbi5faGVpZ2h0PXUsbi5fZXh0cnVkZWRIZWlnaHQ9YyxuLl9jb3JuZXJUeXBlPWwsbi5fZ3JhbnVsYXJpdHk9cCxuLl9zaGFkb3dWb2x1bWU9ZCxuLl9vZmZzZXRBdHRyaWJ1dGU9bT09PS0xP3ZvaWQgMDptLG4pOihWaS5wb3NpdGlvbnM9cixWaS53aWR0aD1mLFZpLmhlaWdodD11LFZpLmV4dHJ1ZGVkSGVpZ2h0PWMsVmkuY29ybmVyVHlwZT1sLFZpLmdyYW51bGFyaXR5PXAsVmkuc2hhZG93Vm9sdW1lPWQsVmkub2Zmc2V0QXR0cmlidXRlPW09PT0tMT92b2lkIDA6bSxuZXcga2koVmkpKX07a2kuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgbj10LnBvc2l0aW9ucyxvPXQud2lkdGg7eS5kZWZpbmVkKCJvcHRpb25zLnBvc2l0aW9ucyIsbikseS5kZWZpbmVkKCJvcHRpb25zLndpZHRoIixvKTtsZXQgcj14KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCksaT14KHQuY29ybmVyVHlwZSxmbi5ST1VOREVEKTtyZXR1cm4gaU8obixyLG8saSxlKX07a2kuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9zaXRpb25zLG49dC5fd2lkdGgsbz10Ll9lbGxpcHNvaWQ7ZT1vTyhlLG8pO2xldCByPXhuKGUsYS5lcXVhbHNFcHNpbG9uKTtpZihyLmxlbmd0aDwyfHxuPD0wKXJldHVybjtsZXQgaT10Ll9oZWlnaHQscz10Ll9leHRydWRlZEhlaWdodCxmPSFNLmVxdWFsc0Vwc2lsb24oaSxzLDAsTS5FUFNJTE9OMiksdT10Ll92ZXJ0ZXhGb3JtYXQsYz17ZWxsaXBzb2lkOm8scG9zaXRpb25zOnIsd2lkdGg6bixjb3JuZXJUeXBlOnQuX2Nvcm5lclR5cGUsZ3JhbnVsYXJpdHk6dC5fZ3JhbnVsYXJpdHksc2F2ZUF0dHJpYnV0ZXM6ITB9LGw7aWYoZiljLmhlaWdodD1pLGMuZXh0cnVkZWRIZWlnaHQ9cyxjLnNoYWRvd1ZvbHVtZT10Ll9zaGFkb3dWb2x1bWUsYy5vZmZzZXRBdHRyaWJ1dGU9dC5fb2Zmc2V0QXR0cmlidXRlLGw9bkwoYyx1KTtlbHNle2xldCBtPXFlLmNvbXB1dGVQb3NpdGlvbnMoYyk7aWYobD1yTyhtLHUsbyksbC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQobC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxpLG8pLGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IF89dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsZz1sLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aCxiPW5ldyBVaW50OEFycmF5KGcvMykuZmlsbChfKTtsLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Yn0pfX1sZXQgcD1sLmF0dHJpYnV0ZXMsZD1BdC5mcm9tVmVydGljZXMocC5wb3NpdGlvbi52YWx1ZXMsdm9pZCAwLDMpO3JldHVybiB1LnBvc2l0aW9ufHwobC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz12b2lkIDApLG5ldyBVdCh7YXR0cmlidXRlczpwLGluZGljZXM6bC5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOmQsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtraS5jcmVhdGVTaGFkb3dWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuX2dyYW51bGFyaXR5LHI9dC5fZWxsaXBzb2lkLGk9ZShvLHIpLHM9bihvLHIpO3JldHVybiBuZXcga2koe3Bvc2l0aW9uczp0Ll9wb3NpdGlvbnMsd2lkdGg6dC5fd2lkdGgsY29ybmVyVHlwZTp0Ll9jb3JuZXJUeXBlLGVsbGlwc29pZDpyLGdyYW51bGFyaXR5Om8sZXh0cnVkZWRIZWlnaHQ6aSxoZWlnaHQ6cyx2ZXJ0ZXhGb3JtYXQ6ZHQuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITB9KX07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoa2kucHJvdG90eXBlLHtyZWN0YW5nbGU6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3JlY3RhbmdsZSl8fCh0aGlzLl9yZWN0YW5nbGU9aU8odGhpcy5fcG9zaXRpb25zLHRoaXMuX2VsbGlwc29pZCx0aGlzLl93aWR0aCx0aGlzLl9jb3JuZXJUeXBlKSksdGhpcy5fcmVjdGFuZ2xlfX0sdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuWzAsMCwwLDEsMSwwXX19fSk7ZV89a2l9KTt2YXIgbl89e307ZGUobl8se2RlZmF1bHQ6KCk9PnJMfSk7ZnVuY3Rpb24gb0wodCxlKXtyZXR1cm4gaChlKSYmKHQ9ZV8udW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksZV8uY3JlYXRlR2VvbWV0cnkodCl9dmFyIHJMLG9fPVooKCk9PnthTygpO2Z0KCk7WnQoKTtyTD1vTH0pO2Z1bmN0aW9uIHNMKHQsZSl7Zm9yKGxldCBuPTA7bjx0Lmxlbmd0aDtuKyspdFtuXT1lLnNjYWxlVG9HZW9kZXRpY1N1cmZhY2UodFtuXSx0W25dKTtyZXR1cm4gdH1mdW5jdGlvbiBsTyh0LGUpe2xldCBuPVtdLG89dC5wb3NpdGlvbnMscj10LmNvcm5lcnMsaT10LmVuZFBvc2l0aW9ucyxzPW5ldyBpZSxmLHU9MCxjPTAsbCxwPTAsZDtmb3IobD0wO2w8by5sZW5ndGg7bCs9MilkPW9bbF0ubGVuZ3RoLTMsdSs9ZCxwKz1kLzMqNCxjKz1vW2wrMV0ubGVuZ3RoLTM7Zm9yKHUrPTMsYys9MyxsPTA7bDxyLmxlbmd0aDtsKyspe2Y9cltsXTtsZXQgQj1yW2xdLmxlZnRQb3NpdGlvbnM7aChCKT8oZD1CLmxlbmd0aCx1Kz1kLHArPWQvMyoyKTooZD1yW2xdLnJpZ2h0UG9zaXRpb25zLmxlbmd0aCxjKz1kLHArPWQvMyoyKX1sZXQgbT1oKGkpLF87bSYmKF89aVswXS5sZW5ndGgtMyx1Kz1fLGMrPV8sXy89MyxwKz1fKjQpO2xldCBnPXUrYyxiPW5ldyBGbG9hdDY0QXJyYXkoZyksdz0wLE89Zy0xLEUsVCxDLE4sSSxELHY9Xy8yLEw9RHQuY3JlYXRlVHlwZWRBcnJheShnLzMscCs0KSxVPTA7aWYoTFtVKytdPXcvMyxMW1UrK109KE8tMikvMyxtKXtuLnB1c2gody8zKSxEPWZPLEk9dU87bGV0IEI9aVswXTtmb3IobD0wO2w8djtsKyspRD1hLmZyb21BcnJheShCLCh2LTEtbCkqMyxEKSxJPWEuZnJvbUFycmF5KEIsKHYrbCkqMyxJKSxxZS5hZGRBdHRyaWJ1dGUoYixJLHcpLHFlLmFkZEF0dHJpYnV0ZShiLEQsdm9pZCAwLE8pLFQ9dy8zLE49VCsxLEU9KE8tMikvMyxDPUUtMSxMW1UrK109RSxMW1UrK109QyxMW1UrK109VCxMW1UrK109Tix3Kz0zLE8tPTN9bGV0IEE9MCxTPW9bQSsrXSxQPW9bQSsrXTtmb3IoYi5zZXQoUyx3KSxiLnNldChQLE8tUC5sZW5ndGgrMSksZD1QLmxlbmd0aC0zLG4ucHVzaCh3LzMsKE8tMikvMyksbD0wO2w8ZDtsKz0zKVQ9dy8zLE49VCsxLEU9KE8tMikvMyxDPUUtMSxMW1UrK109RSxMW1UrK109QyxMW1UrK109VCxMW1UrK109Tix3Kz0zLE8tPTM7Zm9yKGw9MDtsPHIubGVuZ3RoO2wrKyl7bGV0IEI7Zj1yW2xdO2xldCBqPWYubGVmdFBvc2l0aW9ucyxIPWYucmlnaHRQb3NpdGlvbnMsayxLPWlMO2lmKGgoaikpe2ZvcihPLT0zLGs9QyxuLnB1c2goTiksQj0wO0I8ai5sZW5ndGgvMztCKyspSz1hLmZyb21BcnJheShqLEIqMyxLKSxMW1UrK109ay1CLTEsTFtVKytdPWstQixxZS5hZGRBdHRyaWJ1dGUoYixLLHZvaWQgMCxPKSxPLT0zO24ucHVzaChrLU1hdGguZmxvb3Ioai5sZW5ndGgvNikpLGU9PT1mbi5CRVZFTEVEJiZuLnB1c2goKE8tMikvMysxKSx3Kz0zfWVsc2V7Zm9yKHcrPTMsaz1OLG4ucHVzaChDKSxCPTA7QjxILmxlbmd0aC8zO0IrKylLPWEuZnJvbUFycmF5KEgsQiozLEspLExbVSsrXT1rK0IsTFtVKytdPWsrQisxLHFlLmFkZEF0dHJpYnV0ZShiLEssdyksdys9MztuLnB1c2goaytNYXRoLmZsb29yKEgubGVuZ3RoLzYpKSxlPT09Zm4uQkVWRUxFRCYmbi5wdXNoKHcvMy0xKSxPLT0zfWZvcihTPW9bQSsrXSxQPW9bQSsrXSxTLnNwbGljZSgwLDMpLFAuc3BsaWNlKFAubGVuZ3RoLTMsMyksYi5zZXQoUyx3KSxiLnNldChQLE8tUC5sZW5ndGgrMSksZD1QLmxlbmd0aC0zLEI9MDtCPFAubGVuZ3RoO0IrPTMpTj13LzMsVD1OLTEsQz0oTy0yKS8zLEU9QysxLExbVSsrXT1FLExbVSsrXT1DLExbVSsrXT1ULExbVSsrXT1OLHcrPTMsTy09Mzt3LT0zLE8rPTMsbi5wdXNoKHcvMywoTy0yKS8zKX1pZihtKXt3Kz0zLE8tPTMsRD1mTyxJPXVPO2xldCBCPWlbMV07Zm9yKGw9MDtsPHY7bCsrKUQ9YS5mcm9tQXJyYXkoQiwoXy1sLTEpKjMsRCksST1hLmZyb21BcnJheShCLGwqMyxJKSxxZS5hZGRBdHRyaWJ1dGUoYixELHZvaWQgMCxPKSxxZS5hZGRBdHRyaWJ1dGUoYixJLHcpLE49dy8zLFQ9Ti0xLEM9KE8tMikvMyxFPUMrMSxMW1UrK109RSxMW1UrK109QyxMW1UrK109VCxMW1UrK109Tix3Kz0zLE8tPTM7bi5wdXNoKHcvMyl9ZWxzZSBuLnB1c2gody8zLChPLTIpLzMpO3JldHVybiBMW1UrK109dy8zLExbVSsrXT0oTy0yKS8zLHMucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpifSkse2F0dHJpYnV0ZXM6cyxpbmRpY2VzOkwsd2FsbEluZGljZXM6bn19ZnVuY3Rpb24gY0wodCl7bGV0IGU9dC5lbGxpcHNvaWQsbj1xZS5jb21wdXRlUG9zaXRpb25zKHQpLG89bE8obix0LmNvcm5lclR5cGUpLHI9by53YWxsSW5kaWNlcyxpPXQuaGVpZ2h0LHM9dC5leHRydWRlZEhlaWdodCxmPW8uYXR0cmlidXRlcyx1PW8uaW5kaWNlcyxjPWYucG9zaXRpb24udmFsdWVzLGw9Yy5sZW5ndGgscD1uZXcgRmxvYXQ2NEFycmF5KGwpO3Auc2V0KGMpO2xldCBkPW5ldyBGbG9hdDY0QXJyYXkobCoyKTtpZihjPVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChjLGksZSkscD1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQocCxzLGUpLGQuc2V0KGMpLGQuc2V0KHAsbCksZi5wb3NpdGlvbi52YWx1ZXM9ZCxsLz0zLGgodC5vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgRT1uZXcgVWludDhBcnJheShsKjIpO2lmKHQub2Zmc2V0QXR0cmlidXRlPT09ZmUuVE9QKUU9RS5maWxsKDEsMCxsKTtlbHNle2xldCBUPXQub2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjE7RT1FLmZpbGwoVCl9Zi5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpFfSl9bGV0IG0sXz11Lmxlbmd0aCxnPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZC5sZW5ndGgvMywoXytyLmxlbmd0aCkqMik7Zy5zZXQodSk7bGV0IGI9Xztmb3IobT0wO208XzttKz0yKXtsZXQgRT11W21dLFQ9dVttKzFdO2dbYisrXT1FK2wsZ1tiKytdPVQrbH1sZXQgdyxPO2ZvcihtPTA7bTxyLmxlbmd0aDttKyspdz1yW21dLE89dytsLGdbYisrXT13LGdbYisrXT1PO3JldHVybnthdHRyaWJ1dGVzOmYsaW5kaWNlczpnfX1mdW5jdGlvbiBqZih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnMsbj10LndpZHRoO3kudHlwZU9mLm9iamVjdCgib3B0aW9ucy5wb3NpdGlvbnMiLGUpLHkudHlwZU9mLm51bWJlcigib3B0aW9ucy53aWR0aCIsbik7bGV0IG89eCh0LmhlaWdodCwwKSxyPXgodC5leHRydWRlZEhlaWdodCxvKTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9lbGxpcHNvaWQ9JC5jbG9uZSh4KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCkpLHRoaXMuX3dpZHRoPW4sdGhpcy5faGVpZ2h0PU1hdGgubWF4KG8sciksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4obyxyKSx0aGlzLl9jb3JuZXJUeXBlPXgodC5jb3JuZXJUeXBlLGZuLlJPVU5ERUQpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUNvcnJpZG9yT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoKyQucGFja2VkTGVuZ3RoKzZ9dmFyIGZPLHVPLGlMLHBPLHlzLHJfLGRPPVooKCk9PntqcigpO3ZlKCk7RnQoKTtYdCgpO0ZlKCk7aGMoKTtKMCgpO0l0KCk7ZnQoKTtadCgpO1hlKCk7WWUoKTthbigpO0xvKCk7JGUoKTtXdCgpO3FyKCk7dG4oKTtmTz1uZXcgYSx1Tz1uZXcgYSxpTD1uZXcgYTtqZi5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LnR5cGVPZi5vYmplY3QoImFycmF5IixlKSxuPXgobiwwKTtsZXQgbz10Ll9wb3NpdGlvbnMscj1vLmxlbmd0aDtlW24rK109cjtmb3IobGV0IGk9MDtpPHI7KytpLG4rPWEucGFja2VkTGVuZ3RoKWEucGFjayhvW2ldLGUsbik7cmV0dXJuICQucGFjayh0Ll9lbGxpcHNvaWQsZSxuKSxuKz0kLnBhY2tlZExlbmd0aCxlW24rK109dC5fd2lkdGgsZVtuKytdPXQuX2hlaWdodCxlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuKytdPXQuX2Nvcm5lclR5cGUsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O3BPPSQuY2xvbmUoJC5VTklUX1NQSEVSRSkseXM9e3Bvc2l0aW9uczp2b2lkIDAsZWxsaXBzb2lkOnBPLHdpZHRoOnZvaWQgMCxoZWlnaHQ6dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxjb3JuZXJUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07amYudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz10W2UrK10scj1uZXcgQXJyYXkobyk7Zm9yKGxldCBkPTA7ZDxvOysrZCxlKz1hLnBhY2tlZExlbmd0aClyW2RdPWEudW5wYWNrKHQsZSk7bGV0IGk9JC51bnBhY2sodCxlLHBPKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgcz10W2UrK10sZj10W2UrK10sdT10W2UrK10sYz10W2UrK10sbD10W2UrK10scD10W2VdO3JldHVybiBoKG4pPyhuLl9wb3NpdGlvbnM9cixuLl9lbGxpcHNvaWQ9JC5jbG9uZShpLG4uX2VsbGlwc29pZCksbi5fd2lkdGg9cyxuLl9oZWlnaHQ9ZixuLl9leHRydWRlZEhlaWdodD11LG4uX2Nvcm5lclR5cGU9YyxuLl9ncmFudWxhcml0eT1sLG4uX29mZnNldEF0dHJpYnV0ZT1wPT09LTE/dm9pZCAwOnAsbik6KHlzLnBvc2l0aW9ucz1yLHlzLndpZHRoPXMseXMuaGVpZ2h0PWYseXMuZXh0cnVkZWRIZWlnaHQ9dSx5cy5jb3JuZXJUeXBlPWMseXMuZ3JhbnVsYXJpdHk9bCx5cy5vZmZzZXRBdHRyaWJ1dGU9cD09PS0xP3ZvaWQgMDpwLG5ldyBqZih5cykpfTtqZi5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9wb3NpdGlvbnMsbj10Ll93aWR0aCxvPXQuX2VsbGlwc29pZDtlPXNMKGUsbyk7bGV0IHI9eG4oZSxhLmVxdWFsc0Vwc2lsb24pO2lmKHIubGVuZ3RoPDJ8fG48PTApcmV0dXJuO2xldCBpPXQuX2hlaWdodCxzPXQuX2V4dHJ1ZGVkSGVpZ2h0LGY9IU0uZXF1YWxzRXBzaWxvbihpLHMsMCxNLkVQU0lMT04yKSx1PXtlbGxpcHNvaWQ6byxwb3NpdGlvbnM6cix3aWR0aDpuLGNvcm5lclR5cGU6dC5fY29ybmVyVHlwZSxncmFudWxhcml0eTp0Ll9ncmFudWxhcml0eSxzYXZlQXR0cmlidXRlczohMX0sYztpZihmKXUuaGVpZ2h0PWksdS5leHRydWRlZEhlaWdodD1zLHUub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxjPWNMKHUpO2Vsc2V7bGV0IGQ9cWUuY29tcHV0ZVBvc2l0aW9ucyh1KTtpZihjPWxPKGQsdS5jb3JuZXJUeXBlKSxjLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChjLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLGksbyksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbT1jLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aCxfPXQuX29mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxLGc9bmV3IFVpbnQ4QXJyYXkobS8zKS5maWxsKF8pO2MuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpnfSl9fWxldCBsPWMuYXR0cmlidXRlcyxwPUF0LmZyb21WZXJ0aWNlcyhsLnBvc2l0aW9uLnZhbHVlcyx2b2lkIDAsMyk7cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpsLGluZGljZXM6Yy5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6QnQuTElORVMsYm91bmRpbmdTcGhlcmU6cCxvZmZzZXRBdHRyaWJ1dGU6dC5fb2Zmc2V0QXR0cmlidXRlfSl9O3JfPWpmfSk7dmFyIGlfPXt9O2RlKGlfLHtkZWZhdWx0OigpPT5mTH0pO2Z1bmN0aW9uIGFMKHQsZSl7cmV0dXJuIGgoZSkmJih0PXJfLnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLHJfLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBmTCxzXz1aKCgpPT57ZE8oKTtmdCgpO1p0KCk7Zkw9YUx9KTt2YXIgbU8sQWQsY189WigoKT0+e1d0KCk7bU89e307bU8uY29tcHV0ZVBvc2l0aW9ucz1mdW5jdGlvbih0LGUsbixvLHIpe2xldCBpPXQqLjUscz0taSxmPW8rbyx1PXI/MipmOmYsYz1uZXcgRmxvYXQ2NEFycmF5KHUqMyksbCxwPTAsZD0wLG09cj9mKjM6MCxfPXI/KGYrbykqMzpvKjM7Zm9yKGw9MDtsPG87bCsrKXtsZXQgZz1sL28qTS5UV09fUEksYj1NYXRoLmNvcyhnKSx3PU1hdGguc2luKGcpLE89YipuLEU9dypuLFQ9YiplLEM9dyplO2NbZCttXT1PLGNbZCttKzFdPUUsY1tkK20rMl09cyxjW2QrX109VCxjW2QrXysxXT1DLGNbZCtfKzJdPWksZCs9MyxyJiYoY1twKytdPU8sY1twKytdPUUsY1twKytdPXMsY1twKytdPVQsY1twKytdPUMsY1twKytdPWkpfXJldHVybiBjfTtBZD1tT30pO2Z1bmN0aW9uIEdpKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10Lmxlbmd0aCxuPXQudG9wUmFkaXVzLG89dC5ib3R0b21SYWRpdXMscj14KHQudmVydGV4Rm9ybWF0LGR0LkRFRkFVTFQpLGk9eCh0LnNsaWNlcywxMjgpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJvcHRpb25zLmxlbmd0aCBtdXN0IGJlIGRlZmluZWQuIik7aWYoIWgobikpdGhyb3cgbmV3IEYoIm9wdGlvbnMudG9wUmFkaXVzIG11c3QgYmUgZGVmaW5lZC4iKTtpZighaChvKSl0aHJvdyBuZXcgRigib3B0aW9ucy5ib3R0b21SYWRpdXMgbXVzdCBiZSBkZWZpbmVkLiIpO2lmKGk8Myl0aHJvdyBuZXcgRigib3B0aW9ucy5zbGljZXMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gMy4iKTtpZihoKHQub2Zmc2V0QXR0cmlidXRlKSYmdC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApdGhyb3cgbmV3IEYoIkdlb21ldHJ5T2Zmc2V0QXR0cmlidXRlLlRPUCBpcyBub3QgYSBzdXBwb3J0ZWQgb3B0aW9ucy5vZmZzZXRBdHRyaWJ1dGUgZm9yIHRoaXMgZ2VvbWV0cnkuIik7dGhpcy5fbGVuZ3RoPWUsdGhpcy5fdG9wUmFkaXVzPW4sdGhpcy5fYm90dG9tUmFkaXVzPW8sdGhpcy5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKHIpLHRoaXMuX3NsaWNlcz1pLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVDeWxpbmRlckdlb21ldHJ5In12YXIgYV8sdUwsbEwscEwsZEwsaE8sVGEsZl8sSGYsdV89WigoKT0+e3ZlKCk7VWUoKTtGdCgpO0ZlKCk7Y18oKTtJdCgpO2Z0KCk7SHQoKTtYZSgpO1llKCk7YW4oKTtMbygpOyRlKCk7V3QoKTt0bigpO1JvKCk7YV89bmV3IHR0LHVMPW5ldyBhLGxMPW5ldyBhLHBMPW5ldyBhLGRMPW5ldyBhO0dpLnBhY2tlZExlbmd0aD1kdC5wYWNrZWRMZW5ndGgrNTtHaS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtyZXR1cm4gbj14KG4sMCksZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1kdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2xlbmd0aCxlW24rK109dC5fdG9wUmFkaXVzLGVbbisrXT10Ll9ib3R0b21SYWRpdXMsZVtuKytdPXQuX3NsaWNlcyxlW25dPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlfTtoTz1uZXcgZHQsVGE9e3ZlcnRleEZvcm1hdDpoTyxsZW5ndGg6dm9pZCAwLHRvcFJhZGl1czp2b2lkIDAsYm90dG9tUmFkaXVzOnZvaWQgMCxzbGljZXM6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O0dpLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG89ZHQudW5wYWNrKHQsZSxoTyk7ZSs9ZHQucGFja2VkTGVuZ3RoO2xldCByPXRbZSsrXSxpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZV07cmV0dXJuIGgobik/KG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShvLG4uX3ZlcnRleEZvcm1hdCksbi5fbGVuZ3RoPXIsbi5fdG9wUmFkaXVzPWksbi5fYm90dG9tUmFkaXVzPXMsbi5fc2xpY2VzPWYsbi5fb2Zmc2V0QXR0cmlidXRlPXU9PT0tMT92b2lkIDA6dSxuKTooVGEubGVuZ3RoPXIsVGEudG9wUmFkaXVzPWksVGEuYm90dG9tUmFkaXVzPXMsVGEuc2xpY2VzPWYsVGEub2Zmc2V0QXR0cmlidXRlPXU9PT0tMT92b2lkIDA6dSxuZXcgR2koVGEpKX07R2kuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fbGVuZ3RoLG49dC5fdG9wUmFkaXVzLG89dC5fYm90dG9tUmFkaXVzLHI9dC5fdmVydGV4Rm9ybWF0LGk9dC5fc2xpY2VzO2lmKGU8PTB8fG48MHx8bzwwfHxuPT09MCYmbz09PTApcmV0dXJuO2xldCBzPWkraSxmPWkrcyx1PXMrcyxjPUFkLmNvbXB1dGVQb3NpdGlvbnMoZSxuLG8saSwhMCksbD1yLnN0P25ldyBGbG9hdDMyQXJyYXkodSoyKTp2b2lkIDAscD1yLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KHUqMyk6dm9pZCAwLGQ9ci50YW5nZW50P25ldyBGbG9hdDMyQXJyYXkodSozKTp2b2lkIDAsbT1yLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHUqMyk6dm9pZCAwLF8sZz1yLm5vcm1hbHx8ci50YW5nZW50fHxyLmJpdGFuZ2VudDtpZihnKXtsZXQgST1yLnRhbmdlbnR8fHIuYml0YW5nZW50LEQ9MCx2PTAsTD0wLFU9TWF0aC5hdGFuMihvLW4sZSksQT11TDtBLno9TWF0aC5zaW4oVSk7bGV0IFM9TWF0aC5jb3MoVSksUD1wTCxCPWxMO2ZvcihfPTA7XzxpO18rKyl7bGV0IGo9Xy9pKk0uVFdPX1BJLEg9UypNYXRoLmNvcyhqKSxrPVMqTWF0aC5zaW4oaik7ZyYmKEEueD1ILEEueT1rLEkmJihQPWEubm9ybWFsaXplKGEuY3Jvc3MoYS5VTklUX1osQSxQKSxQKSksci5ub3JtYWwmJihwW0QrK109QS54LHBbRCsrXT1BLnkscFtEKytdPUEueixwW0QrK109QS54LHBbRCsrXT1BLnkscFtEKytdPUEueiksci50YW5nZW50JiYoZFt2KytdPVAueCxkW3YrK109UC55LGRbdisrXT1QLnosZFt2KytdPVAueCxkW3YrK109UC55LGRbdisrXT1QLnopLHIuYml0YW5nZW50JiYoQj1hLm5vcm1hbGl6ZShhLmNyb3NzKEEsUCxCKSxCKSxtW0wrK109Qi54LG1bTCsrXT1CLnksbVtMKytdPUIueixtW0wrK109Qi54LG1bTCsrXT1CLnksbVtMKytdPUIueikpfWZvcihfPTA7XzxpO18rKylyLm5vcm1hbCYmKHBbRCsrXT0wLHBbRCsrXT0wLHBbRCsrXT0tMSksci50YW5nZW50JiYoZFt2KytdPTEsZFt2KytdPTAsZFt2KytdPTApLHIuYml0YW5nZW50JiYobVtMKytdPTAsbVtMKytdPS0xLG1bTCsrXT0wKTtmb3IoXz0wO188aTtfKyspci5ub3JtYWwmJihwW0QrK109MCxwW0QrK109MCxwW0QrK109MSksci50YW5nZW50JiYoZFt2KytdPTEsZFt2KytdPTAsZFt2KytdPTApLHIuYml0YW5nZW50JiYobVtMKytdPTAsbVtMKytdPTEsbVtMKytdPTApfWxldCBiPTEyKmktMTIsdz1EdC5jcmVhdGVUeXBlZEFycmF5KHUsYiksTz0wLEU9MDtmb3IoXz0wO188aS0xO18rKyl3W08rK109RSx3W08rK109RSsyLHdbTysrXT1FKzMsd1tPKytdPUUsd1tPKytdPUUrMyx3W08rK109RSsxLEUrPTI7Zm9yKHdbTysrXT1zLTIsd1tPKytdPTAsd1tPKytdPTEsd1tPKytdPXMtMix3W08rK109MSx3W08rK109cy0xLF89MTtfPGktMTtfKyspd1tPKytdPXMrXysxLHdbTysrXT1zK18sd1tPKytdPXM7Zm9yKF89MTtfPGktMTtfKyspd1tPKytdPWYsd1tPKytdPWYrXyx3W08rK109ZitfKzE7bGV0IFQ9MDtpZihyLnN0KXtsZXQgST1NYXRoLm1heChuLG8pO2ZvcihfPTA7Xzx1O18rKyl7bGV0IEQ9YS5mcm9tQXJyYXkoYyxfKjMsZEwpO2xbVCsrXT0oRC54K0kpLygyKkkpLGxbVCsrXT0oRC55K0kpLygyKkkpfX1sZXQgQz1uZXcgaWU7ci5wb3NpdGlvbiYmKEMucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpjfSkpLHIubm9ybWFsJiYoQy5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnB9KSksci50YW5nZW50JiYoQy50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpkfSkpLHIuYml0YW5nZW50JiYoQy5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm19KSksci5zdCYmKEMuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmx9KSksYV8ueD1lKi41LGFfLnk9TWF0aC5tYXgobyxuKTtsZXQgTj1uZXcgQXQoYS5aRVJPLHR0Lm1hZ25pdHVkZShhXykpO2lmKGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7ZT1jLmxlbmd0aDtsZXQgST10Ll9vZmZzZXRBdHRyaWJ1dGU9PT1mZS5OT05FPzA6MSxEPW5ldyBVaW50OEFycmF5KGUvMykuZmlsbChJKTtDLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOkR9KX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOkMsaW5kaWNlczp3LHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOk4sb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtHaS5nZXRVbml0Q3lsaW5kZXI9ZnVuY3Rpb24oKXtyZXR1cm4gaChmXyl8fChmXz1HaS5jcmVhdGVHZW9tZXRyeShuZXcgR2koe3RvcFJhZGl1czoxLGJvdHRvbVJhZGl1czoxLGxlbmd0aDoxLHZlcnRleEZvcm1hdDpkdC5QT1NJVElPTl9PTkxZfSkpKSxmX307SGY9R2l9KTt2YXIgbF89e307ZGUobF8se2RlZmF1bHQ6KCk9PmhMfSk7ZnVuY3Rpb24gbUwodCxlKXtyZXR1cm4gaChlKSYmKHQ9SGYudW5wYWNrKHQsZSkpLEhmLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBoTCxwXz1aKCgpPT57dV8oKTtmdCgpO2hMPW1MfSk7ZnVuY3Rpb24gT2EodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQubGVuZ3RoLG49dC50b3BSYWRpdXMsbz10LmJvdHRvbVJhZGl1cyxyPXgodC5zbGljZXMsMTI4KSxpPU1hdGgubWF4KHgodC5udW1iZXJPZlZlcnRpY2FsTGluZXMsMTYpLDApO2lmKHkudHlwZU9mLm51bWJlcigib3B0aW9ucy5wb3NpdGlvbnMiLGUpLHkudHlwZU9mLm51bWJlcigib3B0aW9ucy50b3BSYWRpdXMiLG4pLHkudHlwZU9mLm51bWJlcigib3B0aW9ucy5ib3R0b21SYWRpdXMiLG8pLHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJvcHRpb25zLnNsaWNlcyIsciwzKSxoKHQub2Zmc2V0QXR0cmlidXRlKSYmdC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApdGhyb3cgbmV3IEYoIkdlb21ldHJ5T2Zmc2V0QXR0cmlidXRlLlRPUCBpcyBub3QgYSBzdXBwb3J0ZWQgb3B0aW9ucy5vZmZzZXRBdHRyaWJ1dGUgZm9yIHRoaXMgZ2VvbWV0cnkuIik7dGhpcy5fbGVuZ3RoPWUsdGhpcy5fdG9wUmFkaXVzPW4sdGhpcy5fYm90dG9tUmFkaXVzPW8sdGhpcy5fc2xpY2VzPXIsdGhpcy5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzPWksdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUN5bGluZGVyT3V0bGluZUdlb21ldHJ5In12YXIgZF8seWMsbV8sX089WigoKT0+e3ZlKCk7VWUoKTtGdCgpO1h0KCk7RmUoKTtjXygpO0l0KCk7ZnQoKTtIdCgpO1hlKCk7WWUoKTthbigpO0xvKCk7JGUoKTt0bigpO2RfPW5ldyB0dDtPYS5wYWNrZWRMZW5ndGg9NjtPYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQuX2xlbmd0aCxlW24rK109dC5fdG9wUmFkaXVzLGVbbisrXT10Ll9ib3R0b21SYWRpdXMsZVtuKytdPXQuX3NsaWNlcyxlW24rK109dC5fbnVtYmVyT2ZWZXJ0aWNhbExpbmVzLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O3ljPXtsZW5ndGg6dm9pZCAwLHRvcFJhZGl1czp2b2lkIDAsYm90dG9tUmFkaXVzOnZvaWQgMCxzbGljZXM6dm9pZCAwLG51bWJlck9mVmVydGljYWxMaW5lczp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07T2EudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz10W2UrK10scj10W2UrK10saT10W2UrK10scz10W2UrK10sZj10W2UrK10sdT10W2VdO3JldHVybiBoKG4pPyhuLl9sZW5ndGg9byxuLl90b3BSYWRpdXM9cixuLl9ib3R0b21SYWRpdXM9aSxuLl9zbGljZXM9cyxuLl9udW1iZXJPZlZlcnRpY2FsTGluZXM9ZixuLl9vZmZzZXRBdHRyaWJ1dGU9dT09PS0xP3ZvaWQgMDp1LG4pOih5Yy5sZW5ndGg9byx5Yy50b3BSYWRpdXM9cix5Yy5ib3R0b21SYWRpdXM9aSx5Yy5zbGljZXM9cyx5Yy5udW1iZXJPZlZlcnRpY2FsTGluZXM9Zix5Yy5vZmZzZXRBdHRyaWJ1dGU9dT09PS0xP3ZvaWQgMDp1LG5ldyBPYSh5YykpfTtPYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9sZW5ndGgsbj10Ll90b3BSYWRpdXMsbz10Ll9ib3R0b21SYWRpdXMscj10Ll9zbGljZXMsaT10Ll9udW1iZXJPZlZlcnRpY2FsTGluZXM7aWYoZTw9MHx8bjwwfHxvPDB8fG49PT0wJiZvPT09MClyZXR1cm47bGV0IHM9cioyLGY9QWQuY29tcHV0ZVBvc2l0aW9ucyhlLG4sbyxyLCExKSx1PXIqMixjO2lmKGk+MCl7bGV0IGc9TWF0aC5taW4oaSxyKTtjPU1hdGgucm91bmQoci9nKSx1Kz1nfWxldCBsPUR0LmNyZWF0ZVR5cGVkQXJyYXkocyx1KjIpLHA9MCxkO2ZvcihkPTA7ZDxyLTE7ZCsrKWxbcCsrXT1kLGxbcCsrXT1kKzEsbFtwKytdPWQrcixsW3ArK109ZCsxK3I7aWYobFtwKytdPXItMSxsW3ArK109MCxsW3ArK109cityLTEsbFtwKytdPXIsaT4wKWZvcihkPTA7ZDxyO2QrPWMpbFtwKytdPWQsbFtwKytdPWQrcjtsZXQgbT1uZXcgaWU7bS5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmZ9KSxkXy54PWUqLjUsZF8ueT1NYXRoLm1heChvLG4pO2xldCBfPW5ldyBBdChhLlpFUk8sdHQubWFnbml0dWRlKGRfKSk7aWYoaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtlPWYubGVuZ3RoO2xldCBnPXQuX29mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxLGI9bmV3IFVpbnQ4QXJyYXkoZS8zKS5maWxsKGcpO20uYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Yn0pfXJldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6bSxpbmRpY2VzOmwscHJpbWl0aXZlVHlwZTpCdC5MSU5FUyxib3VuZGluZ1NwaGVyZTpfLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07bV89T2F9KTt2YXIgaF89e307ZGUoaF8se2RlZmF1bHQ6KCk9PnlMfSk7ZnVuY3Rpb24gX0wodCxlKXtyZXR1cm4gaChlKSYmKHQ9bV8udW5wYWNrKHQsZSkpLG1fLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB5TCxfXz1aKCgpPT57X08oKTtmdCgpO3lMPV9MfSk7dmFyIHlfPXt9O2RlKHlfLHtkZWZhdWx0OigpPT5BTH0pO2Z1bmN0aW9uIGdMKHQsZSl7cmV0dXJuIGgoZSkmJih0PUdyLnVucGFjayh0LGUpKSx0Ll9jZW50ZXI9YS5jbG9uZSh0Ll9jZW50ZXIpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksR3IuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEFMLGdfPVooKCk9PntGdCgpO2Z0KCk7QTAoKTtadCgpO0FMPWdMfSk7dmFyIEFfPXt9O2RlKEFfLHtkZWZhdWx0OigpPT53TH0pO2Z1bmN0aW9uIGJMKHQsZSl7cmV0dXJuIGgoZSkmJih0PXpyLnVucGFjayh0LGUpKSx0Ll9jZW50ZXI9YS5jbG9uZSh0Ll9jZW50ZXIpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksenIuY3JlYXRlR2VvbWV0cnkodCl9dmFyIHdMLGJfPVooKCk9PntGdCgpO2Z0KCk7TzAoKTtadCgpO3dMPWJMfSk7ZnVuY3Rpb24gemkodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXgodC5yYWRpaSxDTCksbj14KHQuaW5uZXJSYWRpaSxlKSxvPXgodC5taW5pbXVtQ2xvY2ssMCkscj14KHQubWF4aW11bUNsb2NrLE0uVFdPX1BJKSxpPXgodC5taW5pbXVtQ29uZSwwKSxzPXgodC5tYXhpbXVtQ29uZSxNLlBJKSxmPU1hdGgucm91bmQoeCh0LnN0YWNrUGFydGl0aW9ucyw2NCkpLHU9TWF0aC5yb3VuZCh4KHQuc2xpY2VQYXJ0aXRpb25zLDY0KSksYz14KHQudmVydGV4Rm9ybWF0LGR0LkRFRkFVTFQpO2lmKHU8Myl0aHJvdyBuZXcgRigib3B0aW9ucy5zbGljZVBhcnRpdGlvbnMgY2Fubm90IGJlIGxlc3MgdGhhbiB0aHJlZS4iKTtpZihmPDMpdGhyb3cgbmV3IEYoIm9wdGlvbnMuc3RhY2tQYXJ0aXRpb25zIGNhbm5vdCBiZSBsZXNzIHRoYW4gdGhyZWUuIik7dGhpcy5fcmFkaWk9YS5jbG9uZShlKSx0aGlzLl9pbm5lclJhZGlpPWEuY2xvbmUobiksdGhpcy5fbWluaW11bUNsb2NrPW8sdGhpcy5fbWF4aW11bUNsb2NrPXIsdGhpcy5fbWluaW11bUNvbmU9aSx0aGlzLl9tYXhpbXVtQ29uZT1zLHRoaXMuX3N0YWNrUGFydGl0aW9ucz1mLHRoaXMuX3NsaWNlUGFydGl0aW9ucz11LHRoaXMuX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShjKSx0aGlzLl9vZmZzZXRBdHRyaWJ1dGU9dC5vZmZzZXRBdHRyaWJ1dGUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlRWxsaXBzb2lkR2VvbWV0cnkifXZhciBUTCxPTCxFTCxSTCxTTCxDTCx5TyxnTyxBTyxiTyx3Tyxncyx3XyxzcixiZD1aKCgpPT57dmUoKTtVZSgpO0Z0KCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO0xvKCk7JGUoKTtXdCgpO3RuKCk7Um8oKTtUTD1uZXcgYSxPTD1uZXcgYSxFTD1uZXcgYSxSTD1uZXcgYSxTTD1uZXcgYSxDTD1uZXcgYSgxLDEsMSkseU89TWF0aC5jb3MsZ089TWF0aC5zaW47emkucGFja2VkTGVuZ3RoPTIqYS5wYWNrZWRMZW5ndGgrZHQucGFja2VkTGVuZ3RoKzc7emkucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7cmV0dXJuIG49eChuLDApLGEucGFjayh0Ll9yYWRpaSxlLG4pLG4rPWEucGFja2VkTGVuZ3RoLGEucGFjayh0Ll9pbm5lclJhZGlpLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1kdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX21pbmltdW1DbG9jayxlW24rK109dC5fbWF4aW11bUNsb2NrLGVbbisrXT10Ll9taW5pbXVtQ29uZSxlW24rK109dC5fbWF4aW11bUNvbmUsZVtuKytdPXQuX3N0YWNrUGFydGl0aW9ucyxlW24rK109dC5fc2xpY2VQYXJ0aXRpb25zLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O0FPPW5ldyBhLGJPPW5ldyBhLHdPPW5ldyBkdCxncz17cmFkaWk6QU8saW5uZXJSYWRpaTpiTyx2ZXJ0ZXhGb3JtYXQ6d08sbWluaW11bUNsb2NrOnZvaWQgMCxtYXhpbXVtQ2xvY2s6dm9pZCAwLG1pbmltdW1Db25lOnZvaWQgMCxtYXhpbXVtQ29uZTp2b2lkIDAsc3RhY2tQYXJ0aXRpb25zOnZvaWQgMCxzbGljZVBhcnRpdGlvbnM6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O3ppLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG89YS51bnBhY2sodCxlLEFPKTtlKz1hLnBhY2tlZExlbmd0aDtsZXQgcj1hLnVucGFjayh0LGUsYk8pO2UrPWEucGFja2VkTGVuZ3RoO2xldCBpPWR0LnVucGFjayh0LGUsd08pO2UrPWR0LnBhY2tlZExlbmd0aDtsZXQgcz10W2UrK10sZj10W2UrK10sdT10W2UrK10sYz10W2UrK10sbD10W2UrK10scD10W2UrK10sZD10W2VdO3JldHVybiBoKG4pPyhuLl9yYWRpaT1hLmNsb25lKG8sbi5fcmFkaWkpLG4uX2lubmVyUmFkaWk9YS5jbG9uZShyLG4uX2lubmVyUmFkaWkpLG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShpLG4uX3ZlcnRleEZvcm1hdCksbi5fbWluaW11bUNsb2NrPXMsbi5fbWF4aW11bUNsb2NrPWYsbi5fbWluaW11bUNvbmU9dSxuLl9tYXhpbXVtQ29uZT1jLG4uX3N0YWNrUGFydGl0aW9ucz1sLG4uX3NsaWNlUGFydGl0aW9ucz1wLG4uX29mZnNldEF0dHJpYnV0ZT1kPT09LTE/dm9pZCAwOmQsbik6KGdzLm1pbmltdW1DbG9jaz1zLGdzLm1heGltdW1DbG9jaz1mLGdzLm1pbmltdW1Db25lPXUsZ3MubWF4aW11bUNvbmU9Yyxncy5zdGFja1BhcnRpdGlvbnM9bCxncy5zbGljZVBhcnRpdGlvbnM9cCxncy5vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG5ldyB6aShncykpfTt6aS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9yYWRpaTtpZihlLng8PTB8fGUueTw9MHx8ZS56PD0wKXJldHVybjtsZXQgbj10Ll9pbm5lclJhZGlpO2lmKG4ueDw9MHx8bi55PD0wfHxuLno8PTApcmV0dXJuO2xldCBvPXQuX21pbmltdW1DbG9jayxyPXQuX21heGltdW1DbG9jayxpPXQuX21pbmltdW1Db25lLHM9dC5fbWF4aW11bUNvbmUsZj10Ll92ZXJ0ZXhGb3JtYXQsdT10Ll9zbGljZVBhcnRpdGlvbnMrMSxjPXQuX3N0YWNrUGFydGl0aW9ucysxO3U9TWF0aC5yb3VuZCh1Kk1hdGguYWJzKHItbykvTS5UV09fUEkpLGM9TWF0aC5yb3VuZChjKk1hdGguYWJzKHMtaSkvTS5QSSksdTwyJiYodT0yKSxjPDImJihjPTIpO2xldCBsLHAsZD0wLG09W2ldLF89W29dO2ZvcihsPTA7bDxjO2wrKyltLnB1c2goaStsKihzLWkpLyhjLTEpKTtmb3IobS5wdXNoKHMpLHA9MDtwPHU7cCsrKV8ucHVzaChvK3AqKHItbykvKHUtMSkpO18ucHVzaChyKTtsZXQgZz1tLmxlbmd0aCxiPV8ubGVuZ3RoLHc9MCxPPTEsRT1uLnghPT1lLnh8fG4ueSE9PWUueXx8bi56IT09ZS56LFQ9ITEsQz0hMSxOPSExO0UmJihPPTIsaT4wJiYoVD0hMCx3Kz11LTEpLHM8TWF0aC5QSSYmKEM9ITAsdys9dS0xKSwoci1vKSVNLlRXT19QST8oTj0hMCx3Kz0oYy0xKSoyKzEpOncrPTEpO2xldCBJPWIqZypPLEQ9bmV3IEZsb2F0NjRBcnJheShJKjMpLHY9bmV3IEFycmF5KEkpLmZpbGwoITEpLEw9bmV3IEFycmF5KEkpLmZpbGwoITEpLFU9dSpjKk8sQT02KihVK3crMS0odStjKSpPKSxTPUR0LmNyZWF0ZVR5cGVkQXJyYXkoVSxBKSxQPWYubm9ybWFsP25ldyBGbG9hdDMyQXJyYXkoSSozKTp2b2lkIDAsQj1mLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShJKjMpOnZvaWQgMCxqPWYuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoSSozKTp2b2lkIDAsSD1mLnN0P25ldyBGbG9hdDMyQXJyYXkoSSoyKTp2b2lkIDAsaz1uZXcgQXJyYXkoZyksSz1uZXcgQXJyYXkoZyk7Zm9yKGw9MDtsPGc7bCsrKWtbbF09Z08obVtsXSksS1tsXT15TyhtW2xdKTtsZXQgWD1uZXcgQXJyYXkoYiksUj1uZXcgQXJyYXkoYik7Zm9yKHA9MDtwPGI7cCsrKVJbcF09eU8oX1twXSksWFtwXT1nTyhfW3BdKTtmb3IobD0wO2w8ZztsKyspZm9yKHA9MDtwPGI7cCsrKURbZCsrXT1lLngqa1tsXSpSW3BdLERbZCsrXT1lLnkqa1tsXSpYW3BdLERbZCsrXT1lLnoqS1tsXTtsZXQgb3Q9SS8yO2lmKEUpZm9yKGw9MDtsPGc7bCsrKWZvcihwPTA7cDxiO3ArKylEW2QrK109bi54KmtbbF0qUltwXSxEW2QrK109bi55KmtbbF0qWFtwXSxEW2QrK109bi56KktbbF0sdltvdF09ITAsbD4wJiZsIT09Zy0xJiZwIT09MCYmcCE9PWItMSYmKExbb3RdPSEwKSxvdCsrO2Q9MDtsZXQgYXQscHQ7Zm9yKGw9MTtsPGctMjtsKyspZm9yKGF0PWwqYixwdD0obCsxKSpiLHA9MTtwPGItMjtwKyspU1tkKytdPXB0K3AsU1tkKytdPXB0K3ArMSxTW2QrK109YXQrcCsxLFNbZCsrXT1wdCtwLFNbZCsrXT1hdCtwKzEsU1tkKytdPWF0K3A7aWYoRSl7bGV0IHBlPWcqYjtmb3IobD0xO2w8Zy0yO2wrKylmb3IoYXQ9cGUrbCpiLHB0PXBlKyhsKzEpKmIscD0xO3A8Yi0yO3ArKylTW2QrK109cHQrcCxTW2QrK109YXQrcCxTW2QrK109YXQrcCsxLFNbZCsrXT1wdCtwLFNbZCsrXT1hdCtwKzEsU1tkKytdPXB0K3ArMX1sZXQgeXQscnQ7aWYoRSl7aWYoVClmb3IocnQ9ZypiLGw9MTtsPGItMjtsKyspU1tkKytdPWwsU1tkKytdPWwrMSxTW2QrK109cnQrbCsxLFNbZCsrXT1sLFNbZCsrXT1ydCtsKzEsU1tkKytdPXJ0K2w7aWYoQylmb3IoeXQ9ZypiLWIscnQ9ZypiKk8tYixsPTE7bDxiLTI7bCsrKVNbZCsrXT15dCtsKzEsU1tkKytdPXl0K2wsU1tkKytdPXJ0K2wsU1tkKytdPXl0K2wrMSxTW2QrK109cnQrbCxTW2QrK109cnQrbCsxfWlmKE4pe2ZvcihsPTE7bDxnLTI7bCsrKXJ0PWIqZytiKmwseXQ9YipsLFNbZCsrXT1ydCxTW2QrK109eXQrYixTW2QrK109eXQsU1tkKytdPXJ0LFNbZCsrXT1ydCtiLFNbZCsrXT15dCtiO2ZvcihsPTE7bDxnLTI7bCsrKXJ0PWIqZytiKihsKzEpLTEseXQ9YioobCsxKS0xLFNbZCsrXT15dCtiLFNbZCsrXT1ydCxTW2QrK109eXQsU1tkKytdPXl0K2IsU1tkKytdPXJ0K2IsU1tkKytdPXJ0fWxldCBQdD1uZXcgaWU7Zi5wb3NpdGlvbiYmKFB0LnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6RH0pKTtsZXQgZ3Q9MCxDdD0wLG10PTAsdXQ9MCx2dD1JLzIsenQsbWU9JC5mcm9tQ2FydGVzaWFuMyhlKSxhZT0kLmZyb21DYXJ0ZXNpYW4zKG4pO2lmKGYuc3R8fGYubm9ybWFsfHxmLnRhbmdlbnR8fGYuYml0YW5nZW50KXtmb3IobD0wO2w8STtsKyspe3p0PXZbbF0/YWU6bWU7bGV0IHBlPWEuZnJvbUFycmF5KEQsbCozLFRMKSx1ZT16dC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwocGUsT0wpO2lmKExbbF0mJmEubmVnYXRlKHVlLHVlKSxmLnN0KXtsZXQgUXQ9dHQubmVnYXRlKHVlLFNMKTtIW2d0KytdPU1hdGguYXRhbjIoUXQueSxRdC54KS9NLlRXT19QSSsuNSxIW2d0KytdPU1hdGguYXNpbih1ZS56KS9NYXRoLlBJKy41fWlmKGYubm9ybWFsJiYoUFtDdCsrXT11ZS54LFBbQ3QrK109dWUueSxQW0N0KytdPXVlLnopLGYudGFuZ2VudHx8Zi5iaXRhbmdlbnQpe2xldCBRdD1FTCxKdD0wLE5lO2lmKHZbbF0mJihKdD12dCksIVQmJmw+PUp0JiZsPEp0K2IqMj9OZT1hLlVOSVRfWDpOZT1hLlVOSVRfWixhLmNyb3NzKE5lLHVlLFF0KSxhLm5vcm1hbGl6ZShRdCxRdCksZi50YW5nZW50JiYoQlttdCsrXT1RdC54LEJbbXQrK109UXQueSxCW210KytdPVF0LnopLGYuYml0YW5nZW50KXtsZXQgZ2U9YS5jcm9zcyh1ZSxRdCxSTCk7YS5ub3JtYWxpemUoZ2UsZ2UpLGpbdXQrK109Z2UueCxqW3V0KytdPWdlLnksalt1dCsrXT1nZS56fX19Zi5zdCYmKFB0LnN0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpIfSkpLGYubm9ybWFsJiYoUHQubm9ybWFsPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpQfSkpLGYudGFuZ2VudCYmKFB0LnRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkJ9KSksZi5iaXRhbmdlbnQmJihQdC5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmp9KSl9aWYoaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgcGU9RC5sZW5ndGgsdWU9dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsUXQ9bmV3IFVpbnQ4QXJyYXkocGUvMykuZmlsbCh1ZSk7UHQuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6UXR9KX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOlB0LGluZGljZXM6UyxwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpBdC5mcm9tRWxsaXBzb2lkKG1lKSxvZmZzZXRBdHRyaWJ1dGU6dC5fb2Zmc2V0QXR0cmlidXRlfSl9O3ppLmdldFVuaXRFbGxpcHNvaWQ9ZnVuY3Rpb24oKXtyZXR1cm4gaCh3Xyl8fCh3Xz16aS5jcmVhdGVHZW9tZXRyeShuZXcgemkoe3JhZGlpOm5ldyBhKDEsMSwxKSx2ZXJ0ZXhGb3JtYXQ6ZHQuUE9TSVRJT05fT05MWX0pKSksd199O3NyPXppfSk7dmFyIFRfPXt9O2RlKFRfLHtkZWZhdWx0OigpPT5QTH0pO2Z1bmN0aW9uIHhMKHQsZSl7cmV0dXJuIGgoZSkmJih0PXNyLnVucGFjayh0LGUpKSxzci5jcmVhdGVHZW9tZXRyeSh0KX12YXIgUEwsT189WigoKT0+e2Z0KCk7YmQoKTtQTD14TH0pO2Z1bmN0aW9uIEVhKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT14KHQucmFkaWksTUwpLG49eCh0LmlubmVyUmFkaWksZSksbz14KHQubWluaW11bUNsb2NrLDApLHI9eCh0Lm1heGltdW1DbG9jayxNLlRXT19QSSksaT14KHQubWluaW11bUNvbmUsMCkscz14KHQubWF4aW11bUNvbmUsTS5QSSksZj1NYXRoLnJvdW5kKHgodC5zdGFja1BhcnRpdGlvbnMsMTApKSx1PU1hdGgucm91bmQoeCh0LnNsaWNlUGFydGl0aW9ucyw4KSksYz1NYXRoLnJvdW5kKHgodC5zdWJkaXZpc2lvbnMsMTI4KSk7aWYoZjwxKXRocm93IG5ldyBGKCJvcHRpb25zLnN0YWNrUGFydGl0aW9ucyBjYW5ub3QgYmUgbGVzcyB0aGFuIDEiKTtpZih1PDApdGhyb3cgbmV3IEYoIm9wdGlvbnMuc2xpY2VQYXJ0aXRpb25zIGNhbm5vdCBiZSBsZXNzIHRoYW4gMCIpO2lmKGM8MCl0aHJvdyBuZXcgRigib3B0aW9ucy5zdWJkaXZpc2lvbnMgbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gemVyby4iKTtpZihoKHQub2Zmc2V0QXR0cmlidXRlKSYmdC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApdGhyb3cgbmV3IEYoIkdlb21ldHJ5T2Zmc2V0QXR0cmlidXRlLlRPUCBpcyBub3QgYSBzdXBwb3J0ZWQgb3B0aW9ucy5vZmZzZXRBdHRyaWJ1dGUgZm9yIHRoaXMgZ2VvbWV0cnkuIik7dGhpcy5fcmFkaWk9YS5jbG9uZShlKSx0aGlzLl9pbm5lclJhZGlpPWEuY2xvbmUobiksdGhpcy5fbWluaW11bUNsb2NrPW8sdGhpcy5fbWF4aW11bUNsb2NrPXIsdGhpcy5fbWluaW11bUNvbmU9aSx0aGlzLl9tYXhpbXVtQ29uZT1zLHRoaXMuX3N0YWNrUGFydGl0aW9ucz1mLHRoaXMuX3NsaWNlUGFydGl0aW9ucz11LHRoaXMuX3N1YmRpdmlzaW9ucz1jLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVFbGxpcHNvaWRPdXRsaW5lR2VvbWV0cnkifXZhciBNTCx3ZCxUZCxUTyxPTyxqaSxXcixFXz1aKCgpPT57dmUoKTtGdCgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtMbygpOyRlKCk7V3QoKTt0bigpO01MPW5ldyBhKDEsMSwxKSx3ZD1NYXRoLmNvcyxUZD1NYXRoLnNpbjtFYS5wYWNrZWRMZW5ndGg9MiphLnBhY2tlZExlbmd0aCs4O0VhLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxhLnBhY2sodC5fcmFkaWksZSxuKSxuKz1hLnBhY2tlZExlbmd0aCxhLnBhY2sodC5faW5uZXJSYWRpaSxlLG4pLG4rPWEucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9taW5pbXVtQ2xvY2ssZVtuKytdPXQuX21heGltdW1DbG9jayxlW24rK109dC5fbWluaW11bUNvbmUsZVtuKytdPXQuX21heGltdW1Db25lLGVbbisrXT10Ll9zdGFja1BhcnRpdGlvbnMsZVtuKytdPXQuX3NsaWNlUGFydGl0aW9ucyxlW24rK109dC5fc3ViZGl2aXNpb25zLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O1RPPW5ldyBhLE9PPW5ldyBhLGppPXtyYWRpaTpUTyxpbm5lclJhZGlpOk9PLG1pbmltdW1DbG9jazp2b2lkIDAsbWF4aW11bUNsb2NrOnZvaWQgMCxtaW5pbXVtQ29uZTp2b2lkIDAsbWF4aW11bUNvbmU6dm9pZCAwLHN0YWNrUGFydGl0aW9uczp2b2lkIDAsc2xpY2VQYXJ0aXRpb25zOnZvaWQgMCxzdWJkaXZpc2lvbnM6dm9pZCAwLG9mZnNldEF0dHJpYnV0ZTp2b2lkIDB9O0VhLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG89YS51bnBhY2sodCxlLFRPKTtlKz1hLnBhY2tlZExlbmd0aDtsZXQgcj1hLnVucGFjayh0LGUsT08pO2UrPWEucGFja2VkTGVuZ3RoO2xldCBpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZSsrXSxsPXRbZSsrXSxwPXRbZSsrXSxkPXRbZV07cmV0dXJuIGgobik/KG4uX3JhZGlpPWEuY2xvbmUobyxuLl9yYWRpaSksbi5faW5uZXJSYWRpaT1hLmNsb25lKHIsbi5faW5uZXJSYWRpaSksbi5fbWluaW11bUNsb2NrPWksbi5fbWF4aW11bUNsb2NrPXMsbi5fbWluaW11bUNvbmU9ZixuLl9tYXhpbXVtQ29uZT11LG4uX3N0YWNrUGFydGl0aW9ucz1jLG4uX3NsaWNlUGFydGl0aW9ucz1sLG4uX3N1YmRpdmlzaW9ucz1wLG4uX29mZnNldEF0dHJpYnV0ZT1kPT09LTE/dm9pZCAwOmQsbik6KGppLm1pbmltdW1DbG9jaz1pLGppLm1heGltdW1DbG9jaz1zLGppLm1pbmltdW1Db25lPWYsamkubWF4aW11bUNvbmU9dSxqaS5zdGFja1BhcnRpdGlvbnM9YyxqaS5zbGljZVBhcnRpdGlvbnM9bCxqaS5zdWJkaXZpc2lvbnM9cCxqaS5vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG5ldyBFYShqaSkpfTtFYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtsZXQgZT10Ll9yYWRpaTtpZihlLng8PTB8fGUueTw9MHx8ZS56PD0wKXJldHVybjtsZXQgbj10Ll9pbm5lclJhZGlpO2lmKG4ueDw9MHx8bi55PD0wfHxuLno8PTApcmV0dXJuO2xldCBvPXQuX21pbmltdW1DbG9jayxyPXQuX21heGltdW1DbG9jayxpPXQuX21pbmltdW1Db25lLHM9dC5fbWF4aW11bUNvbmUsZj10Ll9zdWJkaXZpc2lvbnMsdT0kLmZyb21DYXJ0ZXNpYW4zKGUpLGM9dC5fc2xpY2VQYXJ0aXRpb25zKzEsbD10Ll9zdGFja1BhcnRpdGlvbnMrMTtjPU1hdGgucm91bmQoYypNYXRoLmFicyhyLW8pL00uVFdPX1BJKSxsPU1hdGgucm91bmQobCpNYXRoLmFicyhzLWkpL00uUEkpLGM8MiYmKGM9MiksbDwyJiYobD0yKTtsZXQgcD0wLGQ9MSxtPW4ueCE9PWUueHx8bi55IT09ZS55fHxuLnohPT1lLnosXz0hMSxnPSExO20mJihkPTIsaT4wJiYoXz0hMCxwKz1jKSxzPE1hdGguUEkmJihnPSEwLHArPWMpKTtsZXQgYj1mKmQqKGwrYyksdz1uZXcgRmxvYXQ2NEFycmF5KGIqMyksTz0yKihiK3AtKGMrbCkqZCksRT1EdC5jcmVhdGVUeXBlZEFycmF5KGIsTyksVCxDLE4sSSxEPTAsdj1uZXcgQXJyYXkobCksTD1uZXcgQXJyYXkobCk7Zm9yKFQ9MDtUPGw7VCsrKUk9aStUKihzLWkpLyhsLTEpLHZbVF09VGQoSSksTFtUXT13ZChJKTtsZXQgVT1uZXcgQXJyYXkoZiksQT1uZXcgQXJyYXkoZik7Zm9yKFQ9MDtUPGY7VCsrKU49bytUKihyLW8pLyhmLTEpLFVbVF09VGQoTiksQVtUXT13ZChOKTtmb3IoVD0wO1Q8bDtUKyspZm9yKEM9MDtDPGY7QysrKXdbRCsrXT1lLngqdltUXSpBW0NdLHdbRCsrXT1lLnkqdltUXSpVW0NdLHdbRCsrXT1lLnoqTFtUXTtpZihtKWZvcihUPTA7VDxsO1QrKylmb3IoQz0wO0M8ZjtDKyspd1tEKytdPW4ueCp2W1RdKkFbQ10sd1tEKytdPW4ueSp2W1RdKlVbQ10sd1tEKytdPW4ueipMW1RdO2Zvcih2Lmxlbmd0aD1mLEwubGVuZ3RoPWYsVD0wO1Q8ZjtUKyspST1pK1QqKHMtaSkvKGYtMSksdltUXT1UZChJKSxMW1RdPXdkKEkpO2ZvcihVLmxlbmd0aD1jLEEubGVuZ3RoPWMsVD0wO1Q8YztUKyspTj1vK1QqKHItbykvKGMtMSksVVtUXT1UZChOKSxBW1RdPXdkKE4pO2ZvcihUPTA7VDxmO1QrKylmb3IoQz0wO0M8YztDKyspd1tEKytdPWUueCp2W1RdKkFbQ10sd1tEKytdPWUueSp2W1RdKlVbQ10sd1tEKytdPWUueipMW1RdO2lmKG0pZm9yKFQ9MDtUPGY7VCsrKWZvcihDPTA7QzxjO0MrKyl3W0QrK109bi54KnZbVF0qQVtDXSx3W0QrK109bi55KnZbVF0qVVtDXSx3W0QrK109bi56KkxbVF07Zm9yKEQ9MCxUPTA7VDxsKmQ7VCsrKXtsZXQgQj1UKmY7Zm9yKEM9MDtDPGYtMTtDKyspRVtEKytdPUIrQyxFW0QrK109QitDKzF9bGV0IFM9bCpmKmQ7Zm9yKFQ9MDtUPGM7VCsrKWZvcihDPTA7QzxmLTE7QysrKUVbRCsrXT1TK1QrQypjLEVbRCsrXT1TK1QrKEMrMSkqYztpZihtKWZvcihTPWwqZipkK2MqZixUPTA7VDxjO1QrKylmb3IoQz0wO0M8Zi0xO0MrKylFW0QrK109UytUK0MqYyxFW0QrK109UytUKyhDKzEpKmM7aWYobSl7bGV0IEI9bCpmKmQsaj1CK2YqYztpZihfKWZvcihUPTA7VDxjO1QrKylFW0QrK109QitULEVbRCsrXT1qK1Q7aWYoZylmb3IoQis9ZipjLWMsais9ZipjLWMsVD0wO1Q8YztUKyspRVtEKytdPUIrVCxFW0QrK109aitUfWxldCBQPW5ldyBpZSh7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp3fSl9KTtpZihoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCBCPXcubGVuZ3RoLGo9dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsSD1uZXcgVWludDhBcnJheShCLzMpLmZpbGwoaik7UC5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpIfSl9cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpQLGluZGljZXM6RSxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOkF0LmZyb21FbGxpcHNvaWQodSksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTtXcj1FYX0pO3ZhciBSXz17fTtkZShSXyx7ZGVmYXVsdDooKT0+SUx9KTtmdW5jdGlvbiBOTCh0LGUpe3JldHVybiBoKHQuYnVmZmVyLGUpJiYodD1Xci51bnBhY2sodCxlKSksV3IuY3JlYXRlR2VvbWV0cnkodCl9dmFyIElMLFNfPVooKCk9PntmdCgpO0VfKCk7SUw9Tkx9KTtmdW5jdGlvbiBPcih0KXt0aGlzLnBsYW5lcz14KHQsW10pfXZhciBxZixBcyx2TCxFTyxPZCxDXz1aKCgpPT57RnQoKTtocigpO0l0KCk7ZnQoKTtIdCgpO2tzKCk7ZnMoKTtxZj1bbmV3IGEsbmV3IGEsbmV3IGFdO2EuY2xvbmUoYS5VTklUX1gscWZbMF0pO2EuY2xvbmUoYS5VTklUX1kscWZbMV0pO2EuY2xvbmUoYS5VTklUX1oscWZbMl0pO0FzPW5ldyBhLHZMPW5ldyBhLEVPPW5ldyBvbihuZXcgYSgxLDAsMCksMCk7T3IuZnJvbUJvdW5kaW5nU3BoZXJlPWZ1bmN0aW9uKHQsZSl7aWYoIWgodCkpdGhyb3cgbmV3IEYoImJvdW5kaW5nU3BoZXJlIGlzIHJlcXVpcmVkLiIpO2goZSl8fChlPW5ldyBPcik7bGV0IG49cWYubGVuZ3RoLG89ZS5wbGFuZXM7by5sZW5ndGg9MipuO2xldCByPXQuY2VudGVyLGk9dC5yYWRpdXMscz0wO2ZvcihsZXQgZj0wO2Y8bjsrK2Ype2xldCB1PXFmW2ZdLGM9b1tzXSxsPW9bcysxXTtoKGMpfHwoYz1vW3NdPW5ldyBoZSksaChsKXx8KGw9b1tzKzFdPW5ldyBoZSksYS5tdWx0aXBseUJ5U2NhbGFyKHUsLWksQXMpLGEuYWRkKHIsQXMsQXMpLGMueD11LngsYy55PXUueSxjLno9dS56LGMudz0tYS5kb3QodSxBcyksYS5tdWx0aXBseUJ5U2NhbGFyKHUsaSxBcyksYS5hZGQocixBcyxBcyksbC54PS11LngsbC55PS11LnksbC56PS11LnosbC53PS1hLmRvdChhLm5lZ2F0ZSh1LHZMKSxBcykscys9Mn1yZXR1cm4gZX07T3IucHJvdG90eXBlLmNvbXB1dGVWaXNpYmlsaXR5PWZ1bmN0aW9uKHQpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJib3VuZGluZ1ZvbHVtZSBpcyByZXF1aXJlZC4iKTtsZXQgZT10aGlzLnBsYW5lcyxuPSExO2ZvcihsZXQgbz0wLHI9ZS5sZW5ndGg7bzxyOysrbyl7bGV0IGk9dC5pbnRlcnNlY3RQbGFuZShvbi5mcm9tQ2FydGVzaWFuNChlW29dLEVPKSk7aWYoaT09PVNuLk9VVFNJREUpcmV0dXJuIFNuLk9VVFNJREU7aT09PVNuLklOVEVSU0VDVElORyYmKG49ITApfXJldHVybiBuP1NuLklOVEVSU0VDVElORzpTbi5JTlNJREV9O09yLnByb3RvdHlwZS5jb21wdXRlVmlzaWJpbGl0eVdpdGhQbGFuZU1hc2s9ZnVuY3Rpb24odCxlKXtpZighaCh0KSl0aHJvdyBuZXcgRigiYm91bmRpbmdWb2x1bWUgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoInBhcmVudFBsYW5lTWFzayBpcyByZXF1aXJlZC4iKTtpZihlPT09T3IuTUFTS19PVVRTSURFfHxlPT09T3IuTUFTS19JTlNJREUpcmV0dXJuIGU7bGV0IG49T3IuTUFTS19JTlNJREUsbz10aGlzLnBsYW5lcztmb3IobGV0IHI9MCxpPW8ubGVuZ3RoO3I8aTsrK3Ipe2xldCBzPXI8MzE/MTw8cjowO2lmKHI8MzEmJiEoZSZzKSljb250aW51ZTtsZXQgZj10LmludGVyc2VjdFBsYW5lKG9uLmZyb21DYXJ0ZXNpYW40KG9bcl0sRU8pKTtpZihmPT09U24uT1VUU0lERSlyZXR1cm4gT3IuTUFTS19PVVRTSURFO2Y9PT1Tbi5JTlRFUlNFQ1RJTkcmJihufD1zKX1yZXR1cm4gbn07T3IuTUFTS19PVVRTSURFPTQyOTQ5NjcyOTU7T3IuTUFTS19JTlNJREU9MDtPci5NQVNLX0lOREVURVJNSU5BVEU9MjE0NzQ4MzY0NztPZD1Pcn0pO2Z1bmN0aW9uIGxpKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx0aGlzLmxlZnQ9dC5sZWZ0LHRoaXMuX2xlZnQ9dm9pZCAwLHRoaXMucmlnaHQ9dC5yaWdodCx0aGlzLl9yaWdodD12b2lkIDAsdGhpcy50b3A9dC50b3AsdGhpcy5fdG9wPXZvaWQgMCx0aGlzLmJvdHRvbT10LmJvdHRvbSx0aGlzLl9ib3R0b209dm9pZCAwLHRoaXMubmVhcj14KHQubmVhciwxKSx0aGlzLl9uZWFyPXRoaXMubmVhcix0aGlzLmZhcj14KHQuZmFyLDVlOCksdGhpcy5fZmFyPXRoaXMuZmFyLHRoaXMuX2N1bGxpbmdWb2x1bWU9bmV3IE9kLHRoaXMuX29ydGhvZ3JhcGhpY01hdHJpeD1uZXcgc3R9ZnVuY3Rpb24gUk8odCl7aWYoIWgodC5yaWdodCl8fCFoKHQubGVmdCl8fCFoKHQudG9wKXx8IWgodC5ib3R0b20pfHwhaCh0Lm5lYXIpfHwhaCh0LmZhcikpdGhyb3cgbmV3IEYoInJpZ2h0LCBsZWZ0LCB0b3AsIGJvdHRvbSwgbmVhciwgb3IgZmFyIHBhcmFtZXRlcnMgYXJlIG5vdCBzZXQuIik7aWYodC50b3AhPT10Ll90b3B8fHQuYm90dG9tIT09dC5fYm90dG9tfHx0LmxlZnQhPT10Ll9sZWZ0fHx0LnJpZ2h0IT09dC5fcmlnaHR8fHQubmVhciE9PXQuX25lYXJ8fHQuZmFyIT09dC5fZmFyKXtpZih0LmxlZnQ+dC5yaWdodCl0aHJvdyBuZXcgRigicmlnaHQgbXVzdCBiZSBncmVhdGVyIHRoYW4gbGVmdC4iKTtpZih0LmJvdHRvbT50LnRvcCl0aHJvdyBuZXcgRigidG9wIG11c3QgYmUgZ3JlYXRlciB0aGFuIGJvdHRvbS4iKTtpZih0Lm5lYXI8PTB8fHQubmVhcj50LmZhcil0aHJvdyBuZXcgRigibmVhciBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBsZXNzIHRoYW4gZmFyLiIpO3QuX2xlZnQ9dC5sZWZ0LHQuX3JpZ2h0PXQucmlnaHQsdC5fdG9wPXQudG9wLHQuX2JvdHRvbT10LmJvdHRvbSx0Ll9uZWFyPXQubmVhcix0Ll9mYXI9dC5mYXIsdC5fb3J0aG9ncmFwaGljTWF0cml4PXN0LmNvbXB1dGVPcnRob2dyYXBoaWNPZmZDZW50ZXIodC5sZWZ0LHQucmlnaHQsdC5ib3R0b20sdC50b3AsdC5uZWFyLHQuZmFyLHQuX29ydGhvZ3JhcGhpY01hdHJpeCl9fXZhciBMTCxETCxGTCx4XyxTTyxDTz1aKCgpPT57RnQoKTtocigpO0NfKCk7SXQoKTtmdCgpO0h0KCk7V3QoKTtVbigpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGxpLnByb3RvdHlwZSx7cHJvamVjdGlvbk1hdHJpeDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIFJPKHRoaXMpLHRoaXMuX29ydGhvZ3JhcGhpY01hdHJpeH19fSk7TEw9bmV3IGEsREw9bmV3IGEsRkw9bmV3IGEseF89bmV3IGE7bGkucHJvdG90eXBlLmNvbXB1dGVDdWxsaW5nVm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigicG9zaXRpb24gaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImRpcmVjdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigidXAgaXMgcmVxdWlyZWQuIik7bGV0IG89dGhpcy5fY3VsbGluZ1ZvbHVtZS5wbGFuZXMscj10aGlzLnRvcCxpPXRoaXMuYm90dG9tLHM9dGhpcy5yaWdodCxmPXRoaXMubGVmdCx1PXRoaXMubmVhcixjPXRoaXMuZmFyLGw9YS5jcm9zcyhlLG4sTEwpO2Eubm9ybWFsaXplKGwsbCk7bGV0IHA9REw7YS5tdWx0aXBseUJ5U2NhbGFyKGUsdSxwKSxhLmFkZCh0LHAscCk7bGV0IGQ9Rkw7YS5tdWx0aXBseUJ5U2NhbGFyKGwsZixkKSxhLmFkZChwLGQsZCk7bGV0IG09b1swXTtyZXR1cm4gaChtKXx8KG09b1swXT1uZXcgaGUpLG0ueD1sLngsbS55PWwueSxtLno9bC56LG0udz0tYS5kb3QobCxkKSxhLm11bHRpcGx5QnlTY2FsYXIobCxzLGQpLGEuYWRkKHAsZCxkKSxtPW9bMV0saChtKXx8KG09b1sxXT1uZXcgaGUpLG0ueD0tbC54LG0ueT0tbC55LG0uej0tbC56LG0udz0tYS5kb3QoYS5uZWdhdGUobCx4XyksZCksYS5tdWx0aXBseUJ5U2NhbGFyKG4saSxkKSxhLmFkZChwLGQsZCksbT1vWzJdLGgobSl8fChtPW9bMl09bmV3IGhlKSxtLng9bi54LG0ueT1uLnksbS56PW4ueixtLnc9LWEuZG90KG4sZCksYS5tdWx0aXBseUJ5U2NhbGFyKG4scixkKSxhLmFkZChwLGQsZCksbT1vWzNdLGgobSl8fChtPW9bM109bmV3IGhlKSxtLng9LW4ueCxtLnk9LW4ueSxtLno9LW4ueixtLnc9LWEuZG90KGEubmVnYXRlKG4seF8pLGQpLG09b1s0XSxoKG0pfHwobT1vWzRdPW5ldyBoZSksbS54PWUueCxtLnk9ZS55LG0uej1lLnosbS53PS1hLmRvdChlLHApLGEubXVsdGlwbHlCeVNjYWxhcihlLGMsZCksYS5hZGQodCxkLGQpLG09b1s1XSxoKG0pfHwobT1vWzVdPW5ldyBoZSksbS54PS1lLngsbS55PS1lLnksbS56PS1lLnosbS53PS1hLmRvdChhLm5lZ2F0ZShlLHhfKSxkKSx0aGlzLl9jdWxsaW5nVm9sdW1lfTtsaS5wcm90b3R5cGUuZ2V0UGl4ZWxEaW1lbnNpb25zPWZ1bmN0aW9uKHQsZSxuLG8scil7aWYoUk8odGhpcyksIWgodCl8fCFoKGUpKXRocm93IG5ldyBGKCJCb3RoIGRyYXdpbmdCdWZmZXJXaWR0aCBhbmQgZHJhd2luZ0J1ZmZlckhlaWdodCBhcmUgcmVxdWlyZWQuIik7aWYodDw9MCl0aHJvdyBuZXcgRigiZHJhd2luZ0J1ZmZlcldpZHRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYoZTw9MCl0aHJvdyBuZXcgRigiZHJhd2luZ0J1ZmZlckhlaWdodCBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJkaXN0YW5jZSBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgRigicGl4ZWxSYXRpbyBpcyByZXF1aXJlZC4iKTtpZihvPD0wKXRocm93IG5ldyBGKCJwaXhlbFJhdGlvIG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYoIWgocikpdGhyb3cgbmV3IEYoIkEgcmVzdWx0IG9iamVjdCBpcyByZXF1aXJlZC4iKTtsZXQgaT10aGlzLnJpZ2h0LXRoaXMubGVmdCxzPXRoaXMudG9wLXRoaXMuYm90dG9tLGY9byppL3QsdT1vKnMvZTtyZXR1cm4gci54PWYsci55PXUscn07bGkucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpfHwodD1uZXcgbGkpLHQubGVmdD10aGlzLmxlZnQsdC5yaWdodD10aGlzLnJpZ2h0LHQudG9wPXRoaXMudG9wLHQuYm90dG9tPXRoaXMuYm90dG9tLHQubmVhcj10aGlzLm5lYXIsdC5mYXI9dGhpcy5mYXIsdC5fbGVmdD12b2lkIDAsdC5fcmlnaHQ9dm9pZCAwLHQuX3RvcD12b2lkIDAsdC5fYm90dG9tPXZvaWQgMCx0Ll9uZWFyPXZvaWQgMCx0Ll9mYXI9dm9pZCAwLHR9O2xpLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJnQgaW5zdGFuY2VvZiBsaSYmdGhpcy5yaWdodD09PXQucmlnaHQmJnRoaXMubGVmdD09PXQubGVmdCYmdGhpcy50b3A9PT10LnRvcCYmdGhpcy5ib3R0b209PT10LmJvdHRvbSYmdGhpcy5uZWFyPT09dC5uZWFyJiZ0aGlzLmZhcj09PXQuZmFyfTtsaS5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9PT10aGlzfHxoKHQpJiZ0IGluc3RhbmNlb2YgbGkmJk0uZXF1YWxzRXBzaWxvbih0aGlzLnJpZ2h0LHQucmlnaHQsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMubGVmdCx0LmxlZnQsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMudG9wLHQudG9wLGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLmJvdHRvbSx0LmJvdHRvbSxlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5uZWFyLHQubmVhcixlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5mYXIsdC5mYXIsZSxuKX07U089bGl9KTtmdW5jdGlvbiB0cih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bT1uZXcgU08sdGhpcy53aWR0aD10LndpZHRoLHRoaXMuX3dpZHRoPXZvaWQgMCx0aGlzLmFzcGVjdFJhdGlvPXQuYXNwZWN0UmF0aW8sdGhpcy5fYXNwZWN0UmF0aW89dm9pZCAwLHRoaXMubmVhcj14KHQubmVhciwxKSx0aGlzLl9uZWFyPXRoaXMubmVhcix0aGlzLmZhcj14KHQuZmFyLDVlOCksdGhpcy5fZmFyPXRoaXMuZmFyfWZ1bmN0aW9uIGJzKHQpe2lmKCFoKHQud2lkdGgpfHwhaCh0LmFzcGVjdFJhdGlvKXx8IWgodC5uZWFyKXx8IWgodC5mYXIpKXRocm93IG5ldyBGKCJ3aWR0aCwgYXNwZWN0UmF0aW8sIG5lYXIsIG9yIGZhciBwYXJhbWV0ZXJzIGFyZSBub3Qgc2V0LiIpO2xldCBlPXQuX29mZkNlbnRlckZydXN0dW07aWYodC53aWR0aCE9PXQuX3dpZHRofHx0LmFzcGVjdFJhdGlvIT09dC5fYXNwZWN0UmF0aW98fHQubmVhciE9PXQuX25lYXJ8fHQuZmFyIT09dC5fZmFyKXtpZih0LmFzcGVjdFJhdGlvPDApdGhyb3cgbmV3IEYoImFzcGVjdFJhdGlvIG11c3QgYmUgcG9zaXRpdmUuIik7aWYodC5uZWFyPDB8fHQubmVhcj50LmZhcil0aHJvdyBuZXcgRigibmVhciBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvIGFuZCBsZXNzIHRoYW4gZmFyLiIpO3QuX2FzcGVjdFJhdGlvPXQuYXNwZWN0UmF0aW8sdC5fd2lkdGg9dC53aWR0aCx0Ll9uZWFyPXQubmVhcix0Ll9mYXI9dC5mYXI7bGV0IG49MS90LmFzcGVjdFJhdGlvO2UucmlnaHQ9dC53aWR0aCouNSxlLmxlZnQ9LWUucmlnaHQsZS50b3A9biplLnJpZ2h0LGUuYm90dG9tPS1lLnRvcCxlLm5lYXI9dC5uZWFyLGUuZmFyPXQuZmFyfX12YXIgeG8sUF89WigoKT0+e1h0KCk7SXQoKTtmdCgpO0h0KCk7V3QoKTtDTygpO3RyLnBhY2tlZExlbmd0aD00O3RyLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxlW24rK109dC53aWR0aCxlW24rK109dC5hc3BlY3RSYXRpbyxlW24rK109dC5uZWFyLGVbbl09dC5mYXIsZX07dHIudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IHRyKSxuLndpZHRoPXRbZSsrXSxuLmFzcGVjdFJhdGlvPXRbZSsrXSxuLm5lYXI9dFtlKytdLG4uZmFyPXRbZV0sbn07T2JqZWN0LmRlZmluZVByb3BlcnRpZXModHIucHJvdG90eXBlLHtwcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gYnModGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5wcm9qZWN0aW9uTWF0cml4fX0sb2ZmQ2VudGVyRnJ1c3R1bTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGJzKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW19fX0pO3RyLnByb3RvdHlwZS5jb21wdXRlQ3VsbGluZ1ZvbHVtZT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIGJzKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW0uY29tcHV0ZUN1bGxpbmdWb2x1bWUodCxlLG4pfTt0ci5wcm90b3R5cGUuZ2V0UGl4ZWxEaW1lbnNpb25zPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIGJzKHRoaXMpLHRoaXMuX29mZkNlbnRlckZydXN0dW0uZ2V0UGl4ZWxEaW1lbnNpb25zKHQsZSxuLG8scil9O3RyLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KXx8KHQ9bmV3IHRyKSx0LmFzcGVjdFJhdGlvPXRoaXMuYXNwZWN0UmF0aW8sdC53aWR0aD10aGlzLndpZHRoLHQubmVhcj10aGlzLm5lYXIsdC5mYXI9dGhpcy5mYXIsdC5fYXNwZWN0UmF0aW89dm9pZCAwLHQuX3dpZHRoPXZvaWQgMCx0Ll9uZWFyPXZvaWQgMCx0Ll9mYXI9dm9pZCAwLHRoaXMuX29mZkNlbnRlckZydXN0dW0uY2xvbmUodC5fb2ZmQ2VudGVyRnJ1c3R1bSksdH07dHIucHJvdG90eXBlLmVxdWFscz1mdW5jdGlvbih0KXtyZXR1cm4haCh0KXx8ISh0IGluc3RhbmNlb2YgdHIpPyExOihicyh0aGlzKSxicyh0KSx0aGlzLndpZHRoPT09dC53aWR0aCYmdGhpcy5hc3BlY3RSYXRpbz09PXQuYXNwZWN0UmF0aW8mJnRoaXMuX29mZkNlbnRlckZydXN0dW0uZXF1YWxzKHQuX29mZkNlbnRlckZydXN0dW0pKX07dHIucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlLG4pe3JldHVybiFoKHQpfHwhKHQgaW5zdGFuY2VvZiB0cik/ITE6KGJzKHRoaXMpLGJzKHQpLE0uZXF1YWxzRXBzaWxvbih0aGlzLndpZHRoLHQud2lkdGgsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMuYXNwZWN0UmF0aW8sdC5hc3BlY3RSYXRpbyxlLG4pJiZ0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmVxdWFsc0Vwc2lsb24odC5fb2ZmQ2VudGVyRnJ1c3R1bSxlLG4pKX07eG89dHJ9KTtmdW5jdGlvbiBwaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5sZWZ0PXQubGVmdCx0aGlzLl9sZWZ0PXZvaWQgMCx0aGlzLnJpZ2h0PXQucmlnaHQsdGhpcy5fcmlnaHQ9dm9pZCAwLHRoaXMudG9wPXQudG9wLHRoaXMuX3RvcD12b2lkIDAsdGhpcy5ib3R0b209dC5ib3R0b20sdGhpcy5fYm90dG9tPXZvaWQgMCx0aGlzLm5lYXI9eCh0Lm5lYXIsMSksdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9eCh0LmZhciw1ZTgpLHRoaXMuX2Zhcj10aGlzLmZhcix0aGlzLl9jdWxsaW5nVm9sdW1lPW5ldyBPZCx0aGlzLl9wZXJzcGVjdGl2ZU1hdHJpeD1uZXcgc3QsdGhpcy5faW5maW5pdGVQZXJzcGVjdGl2ZT1uZXcgc3R9ZnVuY3Rpb24gTV8odCl7aWYoIWgodC5yaWdodCl8fCFoKHQubGVmdCl8fCFoKHQudG9wKXx8IWgodC5ib3R0b20pfHwhaCh0Lm5lYXIpfHwhaCh0LmZhcikpdGhyb3cgbmV3IEYoInJpZ2h0LCBsZWZ0LCB0b3AsIGJvdHRvbSwgbmVhciwgb3IgZmFyIHBhcmFtZXRlcnMgYXJlIG5vdCBzZXQuIik7bGV0e3RvcDplLGJvdHRvbTpuLHJpZ2h0Om8sbGVmdDpyLG5lYXI6aSxmYXI6c309dDtpZihlIT09dC5fdG9wfHxuIT09dC5fYm90dG9tfHxyIT09dC5fbGVmdHx8byE9PXQuX3JpZ2h0fHxpIT09dC5fbmVhcnx8cyE9PXQuX2Zhcil7aWYodC5uZWFyPD0wfHx0Lm5lYXI+dC5mYXIpdGhyb3cgbmV3IEYoIm5lYXIgbXVzdCBiZSBncmVhdGVyIHRoYW4gemVybyBhbmQgbGVzcyB0aGFuIGZhci4iKTt0Ll9sZWZ0PXIsdC5fcmlnaHQ9byx0Ll90b3A9ZSx0Ll9ib3R0b209bix0Ll9uZWFyPWksdC5fZmFyPXMsdC5fcGVyc3BlY3RpdmVNYXRyaXg9c3QuY29tcHV0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyKHIsbyxuLGUsaSxzLHQuX3BlcnNwZWN0aXZlTWF0cml4KSx0Ll9pbmZpbml0ZVBlcnNwZWN0aXZlPXN0LmNvbXB1dGVJbmZpbml0ZVBlcnNwZWN0aXZlT2ZmQ2VudGVyKHIsbyxuLGUsaSx0Ll9pbmZpbml0ZVBlcnNwZWN0aXZlKX19dmFyIEJMLFVMLFZMLGtMLHhPLFBPPVooKCk9PntGdCgpO2hyKCk7Q18oKTtJdCgpO2Z0KCk7SHQoKTtXdCgpO1VuKCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMocGkucHJvdG90eXBlLHtwcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gTV8odGhpcyksdGhpcy5fcGVyc3BlY3RpdmVNYXRyaXh9fSxpbmZpbml0ZVByb2plY3Rpb25NYXRyaXg6e2dldDpmdW5jdGlvbigpe3JldHVybiBNXyh0aGlzKSx0aGlzLl9pbmZpbml0ZVBlcnNwZWN0aXZlfX19KTtCTD1uZXcgYSxVTD1uZXcgYSxWTD1uZXcgYSxrTD1uZXcgYTtwaS5wcm90b3R5cGUuY29tcHV0ZUN1bGxpbmdWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJwb3NpdGlvbiBpcyByZXF1aXJlZC4iKTtpZighaChlKSl0aHJvdyBuZXcgRigiZGlyZWN0aW9uIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJ1cCBpcyByZXF1aXJlZC4iKTtsZXQgbz10aGlzLl9jdWxsaW5nVm9sdW1lLnBsYW5lcyxyPXRoaXMudG9wLGk9dGhpcy5ib3R0b20scz10aGlzLnJpZ2h0LGY9dGhpcy5sZWZ0LHU9dGhpcy5uZWFyLGM9dGhpcy5mYXIsbD1hLmNyb3NzKGUsbixCTCkscD1VTDthLm11bHRpcGx5QnlTY2FsYXIoZSx1LHApLGEuYWRkKHQscCxwKTtsZXQgZD1WTDthLm11bHRpcGx5QnlTY2FsYXIoZSxjLGQpLGEuYWRkKHQsZCxkKTtsZXQgbT1rTDthLm11bHRpcGx5QnlTY2FsYXIobCxmLG0pLGEuYWRkKHAsbSxtKSxhLnN1YnRyYWN0KG0sdCxtKSxhLm5vcm1hbGl6ZShtLG0pLGEuY3Jvc3MobSxuLG0pLGEubm9ybWFsaXplKG0sbSk7bGV0IF89b1swXTtyZXR1cm4gaChfKXx8KF89b1swXT1uZXcgaGUpLF8ueD1tLngsXy55PW0ueSxfLno9bS56LF8udz0tYS5kb3QobSx0KSxhLm11bHRpcGx5QnlTY2FsYXIobCxzLG0pLGEuYWRkKHAsbSxtKSxhLnN1YnRyYWN0KG0sdCxtKSxhLmNyb3NzKG4sbSxtKSxhLm5vcm1hbGl6ZShtLG0pLF89b1sxXSxoKF8pfHwoXz1vWzFdPW5ldyBoZSksXy54PW0ueCxfLnk9bS55LF8uej1tLnosXy53PS1hLmRvdChtLHQpLGEubXVsdGlwbHlCeVNjYWxhcihuLGksbSksYS5hZGQocCxtLG0pLGEuc3VidHJhY3QobSx0LG0pLGEuY3Jvc3MobCxtLG0pLGEubm9ybWFsaXplKG0sbSksXz1vWzJdLGgoXyl8fChfPW9bMl09bmV3IGhlKSxfLng9bS54LF8ueT1tLnksXy56PW0ueixfLnc9LWEuZG90KG0sdCksYS5tdWx0aXBseUJ5U2NhbGFyKG4scixtKSxhLmFkZChwLG0sbSksYS5zdWJ0cmFjdChtLHQsbSksYS5jcm9zcyhtLGwsbSksYS5ub3JtYWxpemUobSxtKSxfPW9bM10saChfKXx8KF89b1szXT1uZXcgaGUpLF8ueD1tLngsXy55PW0ueSxfLno9bS56LF8udz0tYS5kb3QobSx0KSxfPW9bNF0saChfKXx8KF89b1s0XT1uZXcgaGUpLF8ueD1lLngsXy55PWUueSxfLno9ZS56LF8udz0tYS5kb3QoZSxwKSxhLm5lZ2F0ZShlLG0pLF89b1s1XSxoKF8pfHwoXz1vWzVdPW5ldyBoZSksXy54PW0ueCxfLnk9bS55LF8uej1tLnosXy53PS1hLmRvdChtLGQpLHRoaXMuX2N1bGxpbmdWb2x1bWV9O3BpLnByb3RvdHlwZS5nZXRQaXhlbERpbWVuc2lvbnM9ZnVuY3Rpb24odCxlLG4sbyxyKXtpZihNXyh0aGlzKSwhaCh0KXx8IWgoZSkpdGhyb3cgbmV3IEYoIkJvdGggZHJhd2luZ0J1ZmZlcldpZHRoIGFuZCBkcmF3aW5nQnVmZmVySGVpZ2h0IGFyZSByZXF1aXJlZC4iKTtpZih0PD0wKXRocm93IG5ldyBGKCJkcmF3aW5nQnVmZmVyV2lkdGggbXVzdCBiZSBncmVhdGVyIHRoYW4gemVyby4iKTtpZihlPD0wKXRocm93IG5ldyBGKCJkcmF3aW5nQnVmZmVySGVpZ2h0IG11c3QgYmUgZ3JlYXRlciB0aGFuIHplcm8uIik7aWYoIWgobikpdGhyb3cgbmV3IEYoImRpc3RhbmNlIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG8pKXRocm93IG5ldyBGKCJwaXhlbFJhdGlvIGlzIHJlcXVpcmVkIik7aWYobzw9MCl0aHJvdyBuZXcgRigicGl4ZWxSYXRpbyBtdXN0IGJlIGdyZWF0ZXIgdGhhbiB6ZXJvLiIpO2lmKCFoKHIpKXRocm93IG5ldyBGKCJBIHJlc3VsdCBvYmplY3QgaXMgcmVxdWlyZWQuIik7bGV0IGk9MS90aGlzLm5lYXIscz10aGlzLnRvcCppLGY9MipvKm4qcy9lO3M9dGhpcy5yaWdodCppO2xldCB1PTIqbypuKnMvdDtyZXR1cm4gci54PXUsci55PWYscn07cGkucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpfHwodD1uZXcgcGkpLHQucmlnaHQ9dGhpcy5yaWdodCx0LmxlZnQ9dGhpcy5sZWZ0LHQudG9wPXRoaXMudG9wLHQuYm90dG9tPXRoaXMuYm90dG9tLHQubmVhcj10aGlzLm5lYXIsdC5mYXI9dGhpcy5mYXIsdC5fbGVmdD12b2lkIDAsdC5fcmlnaHQ9dm9pZCAwLHQuX3RvcD12b2lkIDAsdC5fYm90dG9tPXZvaWQgMCx0Ll9uZWFyPXZvaWQgMCx0Ll9mYXI9dm9pZCAwLHR9O3BpLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIGgodCkmJnQgaW5zdGFuY2VvZiBwaSYmdGhpcy5yaWdodD09PXQucmlnaHQmJnRoaXMubGVmdD09PXQubGVmdCYmdGhpcy50b3A9PT10LnRvcCYmdGhpcy5ib3R0b209PT10LmJvdHRvbSYmdGhpcy5uZWFyPT09dC5uZWFyJiZ0aGlzLmZhcj09PXQuZmFyfTtwaS5wcm90b3R5cGUuZXF1YWxzRXBzaWxvbj1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQ9PT10aGlzfHxoKHQpJiZ0IGluc3RhbmNlb2YgcGkmJk0uZXF1YWxzRXBzaWxvbih0aGlzLnJpZ2h0LHQucmlnaHQsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMubGVmdCx0LmxlZnQsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMudG9wLHQudG9wLGUsbikmJk0uZXF1YWxzRXBzaWxvbih0aGlzLmJvdHRvbSx0LmJvdHRvbSxlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5uZWFyLHQubmVhcixlLG4pJiZNLmVxdWFsc0Vwc2lsb24odGhpcy5mYXIsdC5mYXIsZSxuKX07eE89cGl9KTtmdW5jdGlvbiBlcih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bT1uZXcgeE8sdGhpcy5mb3Y9dC5mb3YsdGhpcy5fZm92PXZvaWQgMCx0aGlzLl9mb3Z5PXZvaWQgMCx0aGlzLl9zc2VEZW5vbWluYXRvcj12b2lkIDAsdGhpcy5hc3BlY3RSYXRpbz10LmFzcGVjdFJhdGlvLHRoaXMuX2FzcGVjdFJhdGlvPXZvaWQgMCx0aGlzLm5lYXI9eCh0Lm5lYXIsMSksdGhpcy5fbmVhcj10aGlzLm5lYXIsdGhpcy5mYXI9eCh0LmZhciw1ZTgpLHRoaXMuX2Zhcj10aGlzLmZhcix0aGlzLnhPZmZzZXQ9eCh0LnhPZmZzZXQsMCksdGhpcy5feE9mZnNldD10aGlzLnhPZmZzZXQsdGhpcy55T2Zmc2V0PXgodC55T2Zmc2V0LDApLHRoaXMuX3lPZmZzZXQ9dGhpcy55T2Zmc2V0fWZ1bmN0aW9uIFhyKHQpe2lmKCFoKHQuZm92KXx8IWgodC5hc3BlY3RSYXRpbyl8fCFoKHQubmVhcil8fCFoKHQuZmFyKSl0aHJvdyBuZXcgRigiZm92LCBhc3BlY3RSYXRpbywgbmVhciwgb3IgZmFyIHBhcmFtZXRlcnMgYXJlIG5vdCBzZXQuIik7aWYoISh0LmZvdiE9PXQuX2Zvdnx8dC5hc3BlY3RSYXRpbyE9PXQuX2FzcGVjdFJhdGlvfHx0Lm5lYXIhPT10Ll9uZWFyfHx0LmZhciE9PXQuX2Zhcnx8dC54T2Zmc2V0IT09dC5feE9mZnNldHx8dC55T2Zmc2V0IT09dC5feU9mZnNldCkpcmV0dXJuO2lmKHkudHlwZU9mLm51bWJlci5ncmVhdGVyVGhhbk9yRXF1YWxzKCJmb3YiLHQuZm92LDApLHkudHlwZU9mLm51bWJlci5sZXNzVGhhbigiZm92Iix0LmZvdixNYXRoLlBJKSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygiYXNwZWN0UmF0aW8iLHQuYXNwZWN0UmF0aW8sMCkseS50eXBlT2YubnVtYmVyLmdyZWF0ZXJUaGFuT3JFcXVhbHMoIm5lYXIiLHQubmVhciwwKSx0Lm5lYXI+dC5mYXIpdGhyb3cgbmV3IEYoIm5lYXIgbXVzdCBiZSBsZXNzIHRoYW4gZmFyLiIpO3QuX2FzcGVjdFJhdGlvPXQuYXNwZWN0UmF0aW8sdC5fZm92PXQuZm92LHQuX2Zvdnk9dC5hc3BlY3RSYXRpbzw9MT90LmZvdjpNYXRoLmF0YW4oTWF0aC50YW4odC5mb3YqLjUpL3QuYXNwZWN0UmF0aW8pKjIsdC5fbmVhcj10Lm5lYXIsdC5fZmFyPXQuZmFyLHQuX3NzZURlbm9taW5hdG9yPTIqTWF0aC50YW4oLjUqdC5fZm92eSksdC5feE9mZnNldD10LnhPZmZzZXQsdC5feU9mZnNldD10LnlPZmZzZXQ7bGV0IG49dC5fb2ZmQ2VudGVyRnJ1c3R1bTtuLnRvcD10Lm5lYXIqTWF0aC50YW4oLjUqdC5fZm92eSksbi5ib3R0b209LW4udG9wLG4ucmlnaHQ9dC5hc3BlY3RSYXRpbypuLnRvcCxuLmxlZnQ9LW4ucmlnaHQsbi5uZWFyPXQubmVhcixuLmZhcj10LmZhcixuLnJpZ2h0Kz10LnhPZmZzZXQsbi5sZWZ0Kz10LnhPZmZzZXQsbi50b3ArPXQueU9mZnNldCxuLmJvdHRvbSs9dC55T2Zmc2V0fXZhciBQbyxOXz1aKCgpPT57WHQoKTtJdCgpO2Z0KCk7SHQoKTtXdCgpO1BPKCk7ZXIucGFja2VkTGVuZ3RoPTY7ZXIucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHkuZGVmaW5lZCgiYXJyYXkiLGUpLG49eChuLDApLGVbbisrXT10LmZvdixlW24rK109dC5hc3BlY3RSYXRpbyxlW24rK109dC5uZWFyLGVbbisrXT10LmZhcixlW24rK109dC54T2Zmc2V0LGVbbl09dC55T2Zmc2V0LGV9O2VyLnVucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApLGgobil8fChuPW5ldyBlciksbi5mb3Y9dFtlKytdLG4uYXNwZWN0UmF0aW89dFtlKytdLG4ubmVhcj10W2UrK10sbi5mYXI9dFtlKytdLG4ueE9mZnNldD10W2UrK10sbi55T2Zmc2V0PXRbZV0sbn07T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoZXIucHJvdG90eXBlLHtwcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5wcm9qZWN0aW9uTWF0cml4fX0saW5maW5pdGVQcm9qZWN0aW9uTWF0cml4OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5pbmZpbml0ZVByb2plY3Rpb25NYXRyaXh9fSxmb3Z5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fZm92eX19LHNzZURlbm9taW5hdG9yOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fc3NlRGVub21pbmF0b3J9fSxvZmZDZW50ZXJGcnVzdHVtOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bX19fSk7ZXIucHJvdG90eXBlLmNvbXB1dGVDdWxsaW5nVm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5jb21wdXRlQ3VsbGluZ1ZvbHVtZSh0LGUsbil9O2VyLnByb3RvdHlwZS5nZXRQaXhlbERpbWVuc2lvbnM9ZnVuY3Rpb24odCxlLG4sbyxyKXtyZXR1cm4gWHIodGhpcyksdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5nZXRQaXhlbERpbWVuc2lvbnModCxlLG4sbyxyKX07ZXIucHJvdG90eXBlLmNsb25lPWZ1bmN0aW9uKHQpe3JldHVybiBoKHQpfHwodD1uZXcgZXIpLHQuYXNwZWN0UmF0aW89dGhpcy5hc3BlY3RSYXRpbyx0LmZvdj10aGlzLmZvdix0Lm5lYXI9dGhpcy5uZWFyLHQuZmFyPXRoaXMuZmFyLHQuX2FzcGVjdFJhdGlvPXZvaWQgMCx0Ll9mb3Y9dm9pZCAwLHQuX25lYXI9dm9pZCAwLHQuX2Zhcj12b2lkIDAsdGhpcy5fb2ZmQ2VudGVyRnJ1c3R1bS5jbG9uZSh0Ll9vZmZDZW50ZXJGcnVzdHVtKSx0fTtlci5wcm90b3R5cGUuZXF1YWxzPWZ1bmN0aW9uKHQpe3JldHVybiFoKHQpfHwhKHQgaW5zdGFuY2VvZiBlcik/ITE6KFhyKHRoaXMpLFhyKHQpLHRoaXMuZm92PT09dC5mb3YmJnRoaXMuYXNwZWN0UmF0aW89PT10LmFzcGVjdFJhdGlvJiZ0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmVxdWFscyh0Ll9vZmZDZW50ZXJGcnVzdHVtKSl9O2VyLnByb3RvdHlwZS5lcXVhbHNFcHNpbG9uPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4haCh0KXx8ISh0IGluc3RhbmNlb2YgZXIpPyExOihYcih0aGlzKSxYcih0KSxNLmVxdWFsc0Vwc2lsb24odGhpcy5mb3YsdC5mb3YsZSxuKSYmTS5lcXVhbHNFcHNpbG9uKHRoaXMuYXNwZWN0UmF0aW8sdC5hc3BlY3RSYXRpbyxlLG4pJiZ0aGlzLl9vZmZDZW50ZXJGcnVzdHVtLmVxdWFsc0Vwc2lsb24odC5fb2ZmQ2VudGVyRnJ1c3R1bSxlLG4pKX07UG89ZXJ9KTtmdW5jdGlvbiBnYyh0KXt5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMiLHQpLHkudHlwZU9mLm9iamVjdCgib3B0aW9ucy5mcnVzdHVtIix0LmZydXN0dW0pLHkudHlwZU9mLm9iamVjdCgib3B0aW9ucy5vcmlnaW4iLHQub3JpZ2luKSx5LnR5cGVPZi5vYmplY3QoIm9wdGlvbnMub3JpZW50YXRpb24iLHQub3JpZW50YXRpb24pO2xldCBlPXQuZnJ1c3R1bSxuPXQub3JpZW50YXRpb24sbz10Lm9yaWdpbixyPXgodC52ZXJ0ZXhGb3JtYXQsZHQuREVGQVVMVCksaT14KHQuX2RyYXdOZWFyUGxhbmUsITApLHMsZjtlIGluc3RhbmNlb2YgUG8/KHM9RWQsZj1Qby5wYWNrZWRMZW5ndGgpOmUgaW5zdGFuY2VvZiB4byYmKHM9R0wsZj14by5wYWNrZWRMZW5ndGgpLHRoaXMuX2ZydXN0dW1UeXBlPXMsdGhpcy5fZnJ1c3R1bT1lLmNsb25lKCksdGhpcy5fb3JpZ2luPWEuY2xvbmUobyksdGhpcy5fb3JpZW50YXRpb249ZWUuY2xvbmUobiksdGhpcy5fZHJhd05lYXJQbGFuZT1pLHRoaXMuX3ZlcnRleEZvcm1hdD1yLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZUZydXN0dW1HZW9tZXRyeSIsdGhpcy5wYWNrZWRMZW5ndGg9MitmK2EucGFja2VkTGVuZ3RoK2VlLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGh9ZnVuY3Rpb24gUmEodCxlLG4sbyxyLGkscyxmKXtsZXQgdT10LzMqMjtmb3IobGV0IGM9MDtjPDQ7KytjKWgoZSkmJihlW3RdPWkueCxlW3QrMV09aS55LGVbdCsyXT1pLnopLGgobikmJihuW3RdPXMueCxuW3QrMV09cy55LG5bdCsyXT1zLnopLGgobykmJihvW3RdPWYueCxvW3QrMV09Zi55LG9bdCsyXT1mLnopLHQrPTM7clt1XT0wLHJbdSsxXT0wLHJbdSsyXT0xLHJbdSszXT0wLHJbdSs0XT0xLHJbdSs1XT0xLHJbdSs2XT0wLHJbdSs3XT0xfXZhciBFZCxHTCx6TCxqTCxITCxxTCxLTCxXTCxYTCxJXyxNTyxOTyxJTyxZTCwkTCxaTCx3cyxLZix2TyxXZix2Xz1aKCgpPT57dmUoKTtGdCgpO2hyKCk7WHQoKTtGZSgpO0l0KCk7ZnQoKTtYZSgpO1llKCk7YW4oKTtCbigpO1VuKCk7UF8oKTtOXygpO3RuKCk7S28oKTtSbygpO0VkPTAsR0w9MTtnYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKTtsZXQgbz10Ll9mcnVzdHVtVHlwZSxyPXQuX2ZydXN0dW07cmV0dXJuIGVbbisrXT1vLG89PT1FZD8oUG8ucGFjayhyLGUsbiksbis9UG8ucGFja2VkTGVuZ3RoKTooeG8ucGFjayhyLGUsbiksbis9eG8ucGFja2VkTGVuZ3RoKSxhLnBhY2sodC5fb3JpZ2luLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsZWUucGFjayh0Ll9vcmllbnRhdGlvbixlLG4pLG4rPWVlLnBhY2tlZExlbmd0aCxkdC5wYWNrKHQuX3ZlcnRleEZvcm1hdCxlLG4pLG4rPWR0LnBhY2tlZExlbmd0aCxlW25dPXQuX2RyYXdOZWFyUGxhbmU/MTowLGV9O3pMPW5ldyBQbyxqTD1uZXcgeG8sSEw9bmV3IGVlLHFMPW5ldyBhLEtMPW5ldyBkdDtnYy51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXRbZSsrXSxyO289PT1FZD8ocj1Qby51bnBhY2sodCxlLHpMKSxlKz1Qby5wYWNrZWRMZW5ndGgpOihyPXhvLnVucGFjayh0LGUsakwpLGUrPXhvLnBhY2tlZExlbmd0aCk7bGV0IGk9YS51bnBhY2sodCxlLHFMKTtlKz1hLnBhY2tlZExlbmd0aDtsZXQgcz1lZS51bnBhY2sodCxlLEhMKTtlKz1lZS5wYWNrZWRMZW5ndGg7bGV0IGY9ZHQudW5wYWNrKHQsZSxLTCk7ZSs9ZHQucGFja2VkTGVuZ3RoO2xldCB1PXRbZV09PT0xO2lmKCFoKG4pKXJldHVybiBuZXcgZ2Moe2ZydXN0dW06cixvcmlnaW46aSxvcmllbnRhdGlvbjpzLHZlcnRleEZvcm1hdDpmLF9kcmF3TmVhclBsYW5lOnV9KTtsZXQgYz1vPT09bi5fZnJ1c3R1bVR5cGU/bi5fZnJ1c3R1bTp2b2lkIDA7cmV0dXJuIG4uX2ZydXN0dW09ci5jbG9uZShjKSxuLl9mcnVzdHVtVHlwZT1vLG4uX29yaWdpbj1hLmNsb25lKGksbi5fb3JpZ2luKSxuLl9vcmllbnRhdGlvbj1lZS5jbG9uZShzLG4uX29yaWVudGF0aW9uKSxuLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoZixuLl92ZXJ0ZXhGb3JtYXQpLG4uX2RyYXdOZWFyUGxhbmU9dSxufTtXTD1uZXcgUSxYTD1uZXcgc3QsSV89bmV3IHN0LE1PPW5ldyBhLE5PPW5ldyBhLElPPW5ldyBhLFlMPW5ldyBhLCRMPW5ldyBhLFpMPW5ldyBhLHdzPW5ldyBBcnJheSgzKSxLZj1uZXcgQXJyYXkoNCk7S2ZbMF09bmV3IGhlKC0xLC0xLDEsMSk7S2ZbMV09bmV3IGhlKDEsLTEsMSwxKTtLZlsyXT1uZXcgaGUoMSwxLDEsMSk7S2ZbM109bmV3IGhlKC0xLDEsMSwxKTt2Tz1uZXcgQXJyYXkoNCk7Zm9yKGxldCB0PTA7dDw0OysrdCl2T1t0XT1uZXcgaGU7Z2MuX2NvbXB1dGVOZWFyRmFyUGxhbmVzPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMsZil7bGV0IHU9US5mcm9tUXVhdGVybmlvbihlLFdMKSxjPXgoaSxNTyksbD14KHMsTk8pLHA9eChmLElPKTtjPVEuZ2V0Q29sdW1uKHUsMCxjKSxsPVEuZ2V0Q29sdW1uKHUsMSxsKSxwPVEuZ2V0Q29sdW1uKHUsMixwKSxhLm5vcm1hbGl6ZShjLGMpLGEubm9ybWFsaXplKGwsbCksYS5ub3JtYWxpemUocCxwKSxhLm5lZ2F0ZShjLGMpO2xldCBkPXN0LmNvbXB1dGVWaWV3KHQscCxsLGMsWEwpLG0sXyxnPW8ucHJvamVjdGlvbk1hdHJpeDtpZihuPT09RWQpe2xldCBiPXN0Lm11bHRpcGx5KGcsZCxJXyk7Xz1zdC5pbnZlcnNlKGIsSV8pfWVsc2UgbT1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24oZCxJXyk7aChfKT8od3NbMF09by5uZWFyLHdzWzFdPW8uZmFyKTood3NbMF09MCx3c1sxXT1vLm5lYXIsd3NbMl09by5mYXIpO2ZvcihsZXQgYj0wO2I8MjsrK2IpZm9yKGxldCB3PTA7dzw0Oysrdyl7bGV0IE89aGUuY2xvbmUoS2Zbd10sdk9bd10pO2lmKGgoXykpe089c3QubXVsdGlwbHlCeVZlY3RvcihfLE8sTyk7bGV0IEU9MS9PLnc7YS5tdWx0aXBseUJ5U2NhbGFyKE8sRSxPKSxhLnN1YnRyYWN0KE8sdCxPKSxhLm5vcm1hbGl6ZShPLE8pO2xldCBUPWEuZG90KHAsTyk7YS5tdWx0aXBseUJ5U2NhbGFyKE8sd3NbYl0vVCxPKSxhLmFkZChPLHQsTyl9ZWxzZXtsZXQgRT1vLm9mZkNlbnRlckZydXN0dW07aChFKSYmKG89RSk7bGV0IFQ9d3NbYl0sQz13c1tiKzFdO08ueD0oTy54KihvLnJpZ2h0LW8ubGVmdCkrby5sZWZ0K28ucmlnaHQpKi41LE8ueT0oTy55KihvLnRvcC1vLmJvdHRvbSkrby5ib3R0b20rby50b3ApKi41LE8uej0oTy56KihULUMpLVQtQykqLjUsTy53PTEsc3QubXVsdGlwbHlCeVZlY3RvcihtLE8sTyl9clsxMipiK3cqM109Ty54LHJbMTIqYit3KjMrMV09Ty55LHJbMTIqYit3KjMrMl09Ty56fX07Z2MuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fZnJ1c3R1bVR5cGUsbj10Ll9mcnVzdHVtLG89dC5fb3JpZ2luLHI9dC5fb3JpZW50YXRpb24saT10Ll9kcmF3TmVhclBsYW5lLHM9dC5fdmVydGV4Rm9ybWF0LGY9aT82OjUsdT1uZXcgRmxvYXQ2NEFycmF5KDMqNCo2KTtnYy5fY29tcHV0ZU5lYXJGYXJQbGFuZXMobyxyLGUsbix1KTtsZXQgYz0zKjQqMjt1W2NdPXVbMyo0XSx1W2MrMV09dVszKjQrMV0sdVtjKzJdPXVbMyo0KzJdLHVbYyszXT11WzBdLHVbYys0XT11WzFdLHVbYys1XT11WzJdLHVbYys2XT11WzMqM10sdVtjKzddPXVbMyozKzFdLHVbYys4XT11WzMqMysyXSx1W2MrOV09dVszKjddLHVbYysxMF09dVszKjcrMV0sdVtjKzExXT11WzMqNysyXSxjKz0zKjQsdVtjXT11WzMqNV0sdVtjKzFdPXVbMyo1KzFdLHVbYysyXT11WzMqNSsyXSx1W2MrM109dVszXSx1W2MrNF09dVs0XSx1W2MrNV09dVs1XSx1W2MrNl09dVswXSx1W2MrN109dVsxXSx1W2MrOF09dVsyXSx1W2MrOV09dVszKjRdLHVbYysxMF09dVszKjQrMV0sdVtjKzExXT11WzMqNCsyXSxjKz0zKjQsdVtjXT11WzNdLHVbYysxXT11WzRdLHVbYysyXT11WzVdLHVbYyszXT11WzMqNV0sdVtjKzRdPXVbMyo1KzFdLHVbYys1XT11WzMqNSsyXSx1W2MrNl09dVszKjZdLHVbYys3XT11WzMqNisxXSx1W2MrOF09dVszKjYrMl0sdVtjKzldPXVbMyoyXSx1W2MrMTBdPXVbMyoyKzFdLHVbYysxMV09dVszKjIrMl0sYys9Myo0LHVbY109dVszKjJdLHVbYysxXT11WzMqMisxXSx1W2MrMl09dVszKjIrMl0sdVtjKzNdPXVbMyo2XSx1W2MrNF09dVszKjYrMV0sdVtjKzVdPXVbMyo2KzJdLHVbYys2XT11WzMqN10sdVtjKzddPXVbMyo3KzFdLHVbYys4XT11WzMqNysyXSx1W2MrOV09dVszKjNdLHVbYysxMF09dVszKjMrMV0sdVtjKzExXT11WzMqMysyXSxpfHwodT11LnN1YmFycmF5KDMqNCkpO2xldCBsPW5ldyBpZSh7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczp1fSl9KTtpZihoKHMubm9ybWFsKXx8aChzLnRhbmdlbnQpfHxoKHMuYml0YW5nZW50KXx8aChzLnN0KSl7bGV0IGQ9aChzLm5vcm1hbCk/bmV3IEZsb2F0MzJBcnJheSgxMipmKTp2b2lkIDAsbT1oKHMudGFuZ2VudCk/bmV3IEZsb2F0MzJBcnJheSgzKjQqZik6dm9pZCAwLF89aChzLmJpdGFuZ2VudCk/bmV3IEZsb2F0MzJBcnJheSgzKjQqZik6dm9pZCAwLGc9aChzLnN0KT9uZXcgRmxvYXQzMkFycmF5KDIqNCpmKTp2b2lkIDAsYj1NTyx3PU5PLE89SU8sRT1hLm5lZ2F0ZShiLFlMKSxUPWEubmVnYXRlKHcsJEwpLEM9YS5uZWdhdGUoTyxaTCk7Yz0wLGkmJihSYShjLGQsbSxfLGcsQyxiLHcpLGMrPTMqNCksUmEoYyxkLG0sXyxnLE8sRSx3KSxjKz0zKjQsUmEoYyxkLG0sXyxnLEUsQyx3KSxjKz0zKjQsUmEoYyxkLG0sXyxnLFQsQyxFKSxjKz0zKjQsUmEoYyxkLG0sXyxnLGIsTyx3KSxjKz0zKjQsUmEoYyxkLG0sXyxnLHcsTyxFKSxoKGQpJiYobC5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmR9KSksaChtKSYmKGwudGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6bX0pKSxoKF8pJiYobC5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOl99KSksaChnKSYmKGwuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOmd9KSl9bGV0IHA9bmV3IFVpbnQxNkFycmF5KDYqZik7Zm9yKGxldCBkPTA7ZDxmOysrZCl7bGV0IG09ZCo2LF89ZCo0O3BbbV09XyxwW20rMV09XysxLHBbbSsyXT1fKzIscFttKzNdPV8scFttKzRdPV8rMixwW20rNV09XyszfXJldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6bCxpbmRpY2VzOnAscHJpbWl0aXZlVHlwZTpCdC5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6QXQuZnJvbVZlcnRpY2VzKHUpfSl9O1dmPWdjfSk7dmFyIExfPXt9O2RlKExfLHtkZWZhdWx0OigpPT5KTH0pO2Z1bmN0aW9uIFFMKHQsZSl7cmV0dXJuIGgoZSkmJih0PVdmLnVucGFjayh0LGUpKSxXZi5jcmVhdGVHZW9tZXRyeSh0KX12YXIgSkwsRF89WigoKT0+e2Z0KCk7dl8oKTtKTD1RTH0pO2Z1bmN0aW9uIFhmKHQpe3kudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLmZydXN0dW0iLHQuZnJ1c3R1bSkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLm9yaWdpbiIsdC5vcmlnaW4pLHkudHlwZU9mLm9iamVjdCgib3B0aW9ucy5vcmllbnRhdGlvbiIsdC5vcmllbnRhdGlvbik7bGV0IGU9dC5mcnVzdHVtLG49dC5vcmllbnRhdGlvbixvPXQub3JpZ2luLHI9eCh0Ll9kcmF3TmVhclBsYW5lLCEwKSxpLHM7ZSBpbnN0YW5jZW9mIFBvPyhpPUZfLHM9UG8ucGFja2VkTGVuZ3RoKTplIGluc3RhbmNlb2YgeG8mJihpPXRELHM9eG8ucGFja2VkTGVuZ3RoKSx0aGlzLl9mcnVzdHVtVHlwZT1pLHRoaXMuX2ZydXN0dW09ZS5jbG9uZSgpLHRoaXMuX29yaWdpbj1hLmNsb25lKG8pLHRoaXMuX29yaWVudGF0aW9uPWVlLmNsb25lKG4pLHRoaXMuX2RyYXdOZWFyUGxhbmU9cix0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVGcnVzdHVtT3V0bGluZUdlb21ldHJ5Iix0aGlzLnBhY2tlZExlbmd0aD0yK3MrYS5wYWNrZWRMZW5ndGgrZWUucGFja2VkTGVuZ3RofXZhciBGXyx0RCxlRCxuRCxvRCxyRCxCXyxMTz1aKCgpPT57dmUoKTtGdCgpO1h0KCk7RmUoKTtJdCgpO2Z0KCk7dl8oKTtYZSgpO1llKCk7YW4oKTtQXygpO05fKCk7dG4oKTtLbygpO0ZfPTAsdEQ9MTtYZi5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKTtsZXQgbz10Ll9mcnVzdHVtVHlwZSxyPXQuX2ZydXN0dW07cmV0dXJuIGVbbisrXT1vLG89PT1GXz8oUG8ucGFjayhyLGUsbiksbis9UG8ucGFja2VkTGVuZ3RoKTooeG8ucGFjayhyLGUsbiksbis9eG8ucGFja2VkTGVuZ3RoKSxhLnBhY2sodC5fb3JpZ2luLGUsbiksbis9YS5wYWNrZWRMZW5ndGgsZWUucGFjayh0Ll9vcmllbnRhdGlvbixlLG4pLG4rPWVlLnBhY2tlZExlbmd0aCxlW25dPXQuX2RyYXdOZWFyUGxhbmU/MTowLGV9O2VEPW5ldyBQbyxuRD1uZXcgeG8sb0Q9bmV3IGVlLHJEPW5ldyBhO1hmLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89dFtlKytdLHI7bz09PUZfPyhyPVBvLnVucGFjayh0LGUsZUQpLGUrPVBvLnBhY2tlZExlbmd0aCk6KHI9eG8udW5wYWNrKHQsZSxuRCksZSs9eG8ucGFja2VkTGVuZ3RoKTtsZXQgaT1hLnVucGFjayh0LGUsckQpO2UrPWEucGFja2VkTGVuZ3RoO2xldCBzPWVlLnVucGFjayh0LGUsb0QpO2UrPWVlLnBhY2tlZExlbmd0aDtsZXQgZj10W2VdPT09MTtpZighaChuKSlyZXR1cm4gbmV3IFhmKHtmcnVzdHVtOnIsb3JpZ2luOmksb3JpZW50YXRpb246cyxfZHJhd05lYXJQbGFuZTpmfSk7bGV0IHU9bz09PW4uX2ZydXN0dW1UeXBlP24uX2ZydXN0dW06dm9pZCAwO3JldHVybiBuLl9mcnVzdHVtPXIuY2xvbmUodSksbi5fZnJ1c3R1bVR5cGU9byxuLl9vcmlnaW49YS5jbG9uZShpLG4uX29yaWdpbiksbi5fb3JpZW50YXRpb249ZWUuY2xvbmUocyxuLl9vcmllbnRhdGlvbiksbi5fZHJhd05lYXJQbGFuZT1mLG59O1hmLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX2ZydXN0dW1UeXBlLG49dC5fZnJ1c3R1bSxvPXQuX29yaWdpbixyPXQuX29yaWVudGF0aW9uLGk9dC5fZHJhd05lYXJQbGFuZSxzPW5ldyBGbG9hdDY0QXJyYXkoMyo0KjIpO1dmLl9jb21wdXRlTmVhckZhclBsYW5lcyhvLHIsZSxuLHMpO2xldCBmPW5ldyBpZSh7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpzfSl9KSx1LGMsbD1pPzI6MSxwPW5ldyBVaW50MTZBcnJheSg4KihsKzEpKSxkPWk/MDoxO2Zvcig7ZDwyOysrZCl1PWk/ZCo4OjAsYz1kKjQscFt1XT1jLHBbdSsxXT1jKzEscFt1KzJdPWMrMSxwW3UrM109YysyLHBbdSs0XT1jKzIscFt1KzVdPWMrMyxwW3UrNl09YyszLHBbdSs3XT1jO2ZvcihkPTA7ZDwyOysrZCl1PShsK2QpKjgsYz1kKjQscFt1XT1jLHBbdSsxXT1jKzQscFt1KzJdPWMrMSxwW3UrM109Yys1LHBbdSs0XT1jKzIscFt1KzVdPWMrNixwW3UrNl09YyszLHBbdSs3XT1jKzc7cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpmLGluZGljZXM6cCxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOkF0LmZyb21WZXJ0aWNlcyhzKX0pfTtCXz1YZn0pO3ZhciBVXz17fTtkZShVXyx7ZGVmYXVsdDooKT0+c0R9KTtmdW5jdGlvbiBpRCh0LGUpe3JldHVybiBoKGUpJiYodD1CXy51bnBhY2sodCxlKSksQl8uY3JlYXRlR2VvbWV0cnkodCl9dmFyIHNELFZfPVooKCk9PntmdCgpO0xPKCk7c0Q9aUR9KTtmdW5jdGlvbiBUcyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCksdGhpcy5fZWxsaXBzb2lkPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSx0aGlzLl9yZWN0YW5nbGU9eCh0LnJlY3RhbmdsZSxOdC5NQVhfVkFMVUUpLHRoaXMuX3Byb2plY3Rpb249bmV3IEpuKHRoaXMuX2VsbGlwc29pZCksdGhpcy5fbnVtYmVyT2ZMZXZlbFplcm9UaWxlc1g9eCh0Lm51bWJlck9mTGV2ZWxaZXJvVGlsZXNYLDIpLHRoaXMuX251bWJlck9mTGV2ZWxaZXJvVGlsZXNZPXgodC5udW1iZXJPZkxldmVsWmVyb1RpbGVzWSwxKX12YXIgRE8sRk89WigoKT0+e1VlKCk7WHQoKTtJdCgpO2Z0KCk7WnQoKTtTaSgpO1d0KCk7VG4oKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhUcy5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2VsbGlwc29pZH19LHJlY3RhbmdsZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX3JlY3RhbmdsZX19LHByb2plY3Rpb246e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9wcm9qZWN0aW9ufX19KTtUcy5wcm90b3R5cGUuZ2V0TnVtYmVyT2ZYVGlsZXNBdExldmVsPWZ1bmN0aW9uKHQpe3JldHVybiB0aGlzLl9udW1iZXJPZkxldmVsWmVyb1RpbGVzWDw8dH07VHMucHJvdG90eXBlLmdldE51bWJlck9mWVRpbGVzQXRMZXZlbD1mdW5jdGlvbih0KXtyZXR1cm4gdGhpcy5fbnVtYmVyT2ZMZXZlbFplcm9UaWxlc1k8PHR9O1RzLnByb3RvdHlwZS5yZWN0YW5nbGVUb05hdGl2ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgicmVjdGFuZ2xlIix0KTtsZXQgbj1NLnRvRGVncmVlcyh0Lndlc3QpLG89TS50b0RlZ3JlZXModC5zb3V0aCkscj1NLnRvRGVncmVlcyh0LmVhc3QpLGk9TS50b0RlZ3JlZXModC5ub3J0aCk7cmV0dXJuIGgoZSk/KGUud2VzdD1uLGUuc291dGg9byxlLmVhc3Q9cixlLm5vcnRoPWksZSk6bmV3IE50KG4sbyxyLGkpfTtUcy5wcm90b3R5cGUudGlsZVhZVG9OYXRpdmVSZWN0YW5nbGU9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9dGhpcy50aWxlWFlUb1JlY3RhbmdsZSh0LGUsbixvKTtyZXR1cm4gci53ZXN0PU0udG9EZWdyZWVzKHIud2VzdCksci5zb3V0aD1NLnRvRGVncmVlcyhyLnNvdXRoKSxyLmVhc3Q9TS50b0RlZ3JlZXMoci5lYXN0KSxyLm5vcnRoPU0udG9EZWdyZWVzKHIubm9ydGgpLHJ9O1RzLnByb3RvdHlwZS50aWxlWFlUb1JlY3RhbmdsZT1mdW5jdGlvbih0LGUsbixvKXtsZXQgcj10aGlzLl9yZWN0YW5nbGUsaT10aGlzLmdldE51bWJlck9mWFRpbGVzQXRMZXZlbChuKSxzPXRoaXMuZ2V0TnVtYmVyT2ZZVGlsZXNBdExldmVsKG4pLGY9ci53aWR0aC9pLHU9dCpmK3Iud2VzdCxjPSh0KzEpKmYrci53ZXN0LGw9ci5oZWlnaHQvcyxwPXIubm9ydGgtZSpsLGQ9ci5ub3J0aC0oZSsxKSpsO3JldHVybiBoKG8pfHwobz1uZXcgTnQodSxkLGMscCkpLG8ud2VzdD11LG8uc291dGg9ZCxvLmVhc3Q9YyxvLm5vcnRoPXAsb307VHMucHJvdG90eXBlLnBvc2l0aW9uVG9UaWxlWFk9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXRoaXMuX3JlY3RhbmdsZTtpZighTnQuY29udGFpbnMobyx0KSlyZXR1cm47bGV0IHI9dGhpcy5nZXROdW1iZXJPZlhUaWxlc0F0TGV2ZWwoZSksaT10aGlzLmdldE51bWJlck9mWVRpbGVzQXRMZXZlbChlKSxzPW8ud2lkdGgvcixmPW8uaGVpZ2h0L2ksdT10LmxvbmdpdHVkZTtvLmVhc3Q8by53ZXN0JiYodSs9TS5UV09fUEkpO2xldCBjPSh1LW8ud2VzdCkvc3wwO2M+PXImJihjPXItMSk7bGV0IGw9KG8ubm9ydGgtdC5sYXRpdHVkZSkvZnwwO3JldHVybiBsPj1pJiYobD1pLTEpLGgobik/KG4ueD1jLG4ueT1sLG4pOm5ldyB0dChjLGwpfTtETz1Uc30pO2Z1bmN0aW9uIEdPKHQpe2N0LmZyb21SYWRpYW5zKHQuZWFzdCx0Lm5vcnRoLDAsWWZbMF0pLGN0LmZyb21SYWRpYW5zKHQud2VzdCx0Lm5vcnRoLDAsWWZbMV0pLGN0LmZyb21SYWRpYW5zKHQuZWFzdCx0LnNvdXRoLDAsWWZbMl0pLGN0LmZyb21SYWRpYW5zKHQud2VzdCx0LnNvdXRoLDAsWWZbM10pO2xldCBlPTAsbj0wLG89MCxyPTAsaT1Qbi5fdGVycmFpbkhlaWdodHNNYXhMZXZlbCxzO2ZvcihzPTA7czw9aTsrK3Mpe2xldCBmPSExO2ZvcihsZXQgdT0wO3U8NDsrK3Upe2xldCBjPVlmW3VdO2lmKGFELnBvc2l0aW9uVG9UaWxlWFkoYyxzLCRmKSx1PT09MClvPSRmLngscj0kZi55O2Vsc2UgaWYobyE9PSRmLnh8fHIhPT0kZi55KXtmPSEwO2JyZWFrfX1pZihmKWJyZWFrO2U9byxuPXJ9aWYocyE9PTApcmV0dXJue3g6ZSx5Om4sbGV2ZWw6cz5pP2k6cy0xfX12YXIgQk8sVU8sVk8sa18sY0Qsa08sYUQsWWYsJGYsUG4sUmQsR189WigoKT0+e3ZlKCk7WG0oKTtVZSgpO0Z0KCk7SWUoKTtYdCgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7Rk8oKTtUbigpO21mKCk7Qk89bmV3IGEsVU89bmV3IGEsVk89bmV3IGN0LGtfPW5ldyBhLGNEPW5ldyBhLGtPPW5ldyBBdCxhRD1uZXcgRE8sWWY9W25ldyBjdCxuZXcgY3QsbmV3IGN0LG5ldyBjdF0sJGY9bmV3IHR0LFBuPXt9O1BuLmluaXRpYWxpemU9ZnVuY3Rpb24oKXtsZXQgdD1Qbi5faW5pdFByb21pc2U7cmV0dXJuIGgodCl8fCh0PW9pLmZldGNoSnNvbih5cCgiQXNzZXRzL2FwcHJveGltYXRlVGVycmFpbkhlaWdodHMuanNvbiIpKS50aGVuKGZ1bmN0aW9uKGUpe1BuLl90ZXJyYWluSGVpZ2h0cz1lfSksUG4uX2luaXRQcm9taXNlPXQpLHR9O1BuLmdldE1pbmltdW1NYXhpbXVtSGVpZ2h0cz1mdW5jdGlvbih0LGUpe2lmKHkuZGVmaW5lZCgicmVjdGFuZ2xlIix0KSwhaChQbi5fdGVycmFpbkhlaWdodHMpKXRocm93IG5ldyBGKCJZb3UgbXVzdCBjYWxsIEFwcHJveGltYXRlVGVycmFpbkhlaWdodHMuaW5pdGlhbGl6ZSBhbmQgd2FpdCBmb3IgdGhlIHByb21pc2UgdG8gcmVzb2x2ZSBiZWZvcmUgdXNpbmcgdGhpcyBmdW5jdGlvbiIpO2U9eChlLCQuZGVmYXVsdCk7bGV0IG49R08odCksbz1Qbi5fZGVmYXVsdE1pblRlcnJhaW5IZWlnaHQscj1Qbi5fZGVmYXVsdE1heFRlcnJhaW5IZWlnaHQ7aWYoaChuKSl7bGV0IGk9YCR7bi5sZXZlbH0tJHtuLnh9LSR7bi55fWAscz1Qbi5fdGVycmFpbkhlaWdodHNbaV07aChzKSYmKG89c1swXSxyPXNbMV0pLGUuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oTnQubm9ydGhlYXN0KHQsVk8pLEJPKSxlLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKE50LnNvdXRod2VzdCh0LFZPKSxVTyksYS5taWRwb2ludChVTyxCTyxrXyk7bGV0IGY9ZS5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGtfLGNEKTtpZihoKGYpKXtsZXQgdT1hLmRpc3RhbmNlKGtfLGYpO289TWF0aC5taW4obywtdSl9ZWxzZSBvPVBuLl9kZWZhdWx0TWluVGVycmFpbkhlaWdodH1yZXR1cm4gbz1NYXRoLm1heChQbi5fZGVmYXVsdE1pblRlcnJhaW5IZWlnaHQsbykse21pbmltdW1UZXJyYWluSGVpZ2h0Om8sbWF4aW11bVRlcnJhaW5IZWlnaHQ6cn19O1BuLmdldEJvdW5kaW5nU3BoZXJlPWZ1bmN0aW9uKHQsZSl7aWYoeS5kZWZpbmVkKCJyZWN0YW5nbGUiLHQpLCFoKFBuLl90ZXJyYWluSGVpZ2h0cykpdGhyb3cgbmV3IEYoIllvdSBtdXN0IGNhbGwgQXBwcm94aW1hdGVUZXJyYWluSGVpZ2h0cy5pbml0aWFsaXplIGFuZCB3YWl0IGZvciB0aGUgcHJvbWlzZSB0byByZXNvbHZlIGJlZm9yZSB1c2luZyB0aGlzIGZ1bmN0aW9uIik7ZT14KGUsJC5kZWZhdWx0KTtsZXQgbj1HTyh0KSxvPVBuLl9kZWZhdWx0TWF4VGVycmFpbkhlaWdodDtpZihoKG4pKXtsZXQgaT1gJHtuLmxldmVsfS0ke24ueH0tJHtuLnl9YCxzPVBuLl90ZXJyYWluSGVpZ2h0c1tpXTtoKHMpJiYobz1zWzFdKX1sZXQgcj1BdC5mcm9tUmVjdGFuZ2xlM0QodCxlLDApO3JldHVybiBBdC5mcm9tUmVjdGFuZ2xlM0QodCxlLG8sa08pLEF0LnVuaW9uKHIsa08scil9O1BuLl90ZXJyYWluSGVpZ2h0c01heExldmVsPTY7UG4uX2RlZmF1bHRNYXhUZXJyYWluSGVpZ2h0PTllMztQbi5fZGVmYXVsdE1pblRlcnJhaW5IZWlnaHQ9LTFlNTtQbi5fdGVycmFpbkhlaWdodHM9dm9pZCAwO1BuLl9pbml0UHJvbWlzZT12b2lkIDA7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoUG4se2luaXRpYWxpemVkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gaChQbi5fdGVycmFpbkhlaWdodHMpfX19KTtSZD1Qbn0pO2Z1bmN0aW9uIEVzKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucztpZighaChlKXx8ZS5sZW5ndGg8Mil0aHJvdyBuZXcgRigiQXQgbGVhc3QgdHdvIHBvc2l0aW9ucyBhcmUgcmVxdWlyZWQuIik7aWYoaCh0LmFyY1R5cGUpJiZ0LmFyY1R5cGUhPT1fZS5HRU9ERVNJQyYmdC5hcmNUeXBlIT09X2UuUkhVTUIpdGhyb3cgbmV3IEYoIlZhbGlkIG9wdGlvbnMgZm9yIGFyY1R5cGUgYXJlIEFyY1R5cGUuR0VPREVTSUMgYW5kIEFyY1R5cGUuUkhVTUIuIik7dGhpcy53aWR0aD14KHQud2lkdGgsMSksdGhpcy5fcG9zaXRpb25zPWUsdGhpcy5ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksOTk5OSksdGhpcy5sb29wPXgodC5sb29wLCExKSx0aGlzLmFyY1R5cGU9eCh0LmFyY1R5cGUsX2UuR0VPREVTSUMpLHRoaXMuX2VsbGlwc29pZD0kLmRlZmF1bHQsdGhpcy5fcHJvamVjdGlvbkluZGV4PTAsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlR3JvdW5kUG9seWxpbmVHZW9tZXRyeSIsdGhpcy5fc2NlbmUzRE9ubHk9ITF9ZnVuY3Rpb24gWF8odCxlLG4sbyxyKXtsZXQgaT1VbyhvLHQsMCx1RCkscz1VbyhvLHQsbixqTyksZj1VbyhvLGUsMCxITyksdT1IaShzLGksak8pLGM9SGkoZixpLEhPKTtyZXR1cm4gYS5jcm9zcyhjLHUsciksYS5ub3JtYWxpemUocixyKX1mdW5jdGlvbiB6Xyh0LGUsbixvLHIsaSxzLGYsdSxjLGwpe2lmKHI9PT0wKXJldHVybjtsZXQgcDtpPT09X2UuR0VPREVTSUM/cD1uZXcgZmQodCxlLHMpOmk9PT1fZS5SSFVNQiYmKHA9bmV3IFpvKHQsZSxzKSk7bGV0IGQ9cC5zdXJmYWNlRGlzdGFuY2U7aWYoZDxyKXJldHVybjtsZXQgbT1YXyh0LGUsbyxzLG1EKSxfPU1hdGguY2VpbChkL3IpLGc9ZC9fLGI9Zyx3PV8tMSxPPWYubGVuZ3RoO2ZvcihsZXQgRT0wO0U8dztFKyspe2xldCBUPXAuaW50ZXJwb2xhdGVVc2luZ1N1cmZhY2VEaXN0YW5jZShiLGxEKSxDPVVvKHMsVCxuLHBEKSxOPVVvKHMsVCxvLGREKTthLnBhY2sobSxmLE8pLGEucGFjayhDLHUsTyksYS5wYWNrKE4sYyxPKSxsLnB1c2goVC5sYXRpdHVkZSksbC5wdXNoKFQubG9uZ2l0dWRlKSxPKz0zLGIrPWd9fWZ1bmN0aW9uIFVvKHQsZSxuLG8pe3JldHVybiBjdC5jbG9uZShlLGpfKSxqXy5oZWlnaHQ9bixjdC50b0NhcnRlc2lhbihqXyx0LG8pfWZ1bmN0aW9uIEhpKHQsZSxuKXtyZXR1cm4gYS5zdWJ0cmFjdCh0LGUsbiksYS5ub3JtYWxpemUobixuKSxufWZ1bmN0aW9uIHFPKHQsZSxuLG8pe3JldHVybiBvPUhpKHQsZSxvKSxvPWEuY3Jvc3MobyxuLG8pLG89YS5ub3JtYWxpemUobyxvKSxvPWEuY3Jvc3MobixvLG8pLG99ZnVuY3Rpb24gSF8odCxlLG4sbyxyKXtsZXQgaT1IaShuLGUsdUUpLHM9cU8odCxlLGksaEQpLGY9cU8obyxlLGksX0QpO2lmKE0uZXF1YWxzRXBzaWxvbihhLmRvdChzLGYpLEFELE0uRVBTSUxPTjUpKXJldHVybiByPWEuY3Jvc3MoaSxzLHIpLHI9YS5ub3JtYWxpemUocixyKSxyO3I9YS5hZGQoZixzLHIpLHI9YS5ub3JtYWxpemUocixyKTtsZXQgdT1hLmNyb3NzKGkscix5RCk7cmV0dXJuIGEuZG90KGYsdSk8Z0QmJihyPWEubmVnYXRlKHIscikpLHJ9ZnVuY3Rpb24gWE8odCxlLG4sbyl7bGV0IHI9SGkobixlLFJEKSxpPWEuZG90KHIsdCk7aWYoaT5jRXx8aTx6Tyl7bGV0IHM9SGkobyxuLHVFKSxmPWk8ek8/TS5QSV9PVkVSX1RXTzotTS5QSV9PVkVSX1RXTyx1PWVlLmZyb21BeGlzQW5nbGUocyxmLENEKSxjPVEuZnJvbVF1YXRlcm5pb24odSxTRCk7cmV0dXJuIFEubXVsdGlwbHlCeVZlY3RvcihjLHQsdCksITB9cmV0dXJuITF9ZnVuY3Rpb24gWmYodCxlLG4sbyxyKXtsZXQgaT1jdC50b0NhcnRlc2lhbihlLHQuX2VsbGlwc29pZCx4RCkscz1hLmFkZChpLG4sJE8pLGY9ITEsdT10Ll9lbGxpcHNvaWQsYz11LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHMsWU8pO01hdGguYWJzKGUubG9uZ2l0dWRlLWMubG9uZ2l0dWRlKT5NLlBJX09WRVJfVFdPJiYoZj0hMCxzPWEuc3VidHJhY3QoaSxuLCRPKSxjPXUuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMocyxZTykpLGMuaGVpZ2h0PTA7bGV0IGw9dC5wcm9qZWN0KGMscik7cmV0dXJuIHI9YS5zdWJ0cmFjdChsLG8sciksci56PTAscj1hLm5vcm1hbGl6ZShyLHIpLGYmJmEubmVnYXRlKHIscikscn1mdW5jdGlvbiBRTyh0LGUsbixvLHIsaSl7bGV0IHM9YS5zdWJ0cmFjdChlLHQsUEQpO2Eubm9ybWFsaXplKHMscyk7bGV0IGY9bi1hRSx1PWEubXVsdGlwbHlCeVNjYWxhcihzLGYsWk8pO2EuYWRkKHQsdSxyKTtsZXQgYz1vLWZFO3U9YS5tdWx0aXBseUJ5U2NhbGFyKHMsYyxaTyksYS5hZGQoZSx1LGkpfWZ1bmN0aW9uIHhkKHQsZSl7bGV0IG49b24uZ2V0UG9pbnREaXN0YW5jZShQZCx0KSxvPW9uLmdldFBvaW50RGlzdGFuY2UoUGQsZSkscj1NRDtNLmVxdWFsc0Vwc2lsb24obiwwLE0uRVBTSUxPTjIpPyhyPUhpKGUsdCxyKSxhLm11bHRpcGx5QnlTY2FsYXIocixNLkVQU0lMT04yLHIpLGEuYWRkKHQscix0KSk6TS5lcXVhbHNFcHNpbG9uKG8sMCxNLkVQU0lMT04yKSYmKHI9SGkodCxlLHIpLGEubXVsdGlwbHlCeVNjYWxhcihyLE0uRVBTSUxPTjIsciksYS5hZGQoZSxyLGUpKX1mdW5jdGlvbiBORCh0LGUpe2xldCBuPU1hdGguYWJzKHQubG9uZ2l0dWRlKSxvPU1hdGguYWJzKGUubG9uZ2l0dWRlKTtpZihNLmVxdWFsc0Vwc2lsb24obixNLlBJLE0uRVBTSUxPTjExKSl7bGV0IHI9TS5zaWduKGUubG9uZ2l0dWRlKTtyZXR1cm4gdC5sb25naXR1ZGU9cioobi1NLkVQU0lMT04xMSksMX1lbHNlIGlmKE0uZXF1YWxzRXBzaWxvbihvLE0uUEksTS5FUFNJTE9OMTEpKXtsZXQgcj1NLnNpZ24odC5sb25naXR1ZGUpO3JldHVybiBlLmxvbmdpdHVkZT1yKihvLU0uRVBTSUxPTjExKSwyfXJldHVybiAwfWZ1bmN0aW9uICREKHQsZSxuLG8scixpLHMpe2xldCBmLHUsYz1lLl9lbGxpcHNvaWQsbD1uLmxlbmd0aC8zLTEscD1sKjgsZD1wKjQsbT1sKjM2LF89cD42NTUzNT9uZXcgVWludDMyQXJyYXkobSk6bmV3IFVpbnQxNkFycmF5KG0pLGc9bmV3IEZsb2F0NjRBcnJheShwKjMpLGI9bmV3IEZsb2F0MzJBcnJheShkKSx3PW5ldyBGbG9hdDMyQXJyYXkoZCksTz1uZXcgRmxvYXQzMkFycmF5KGQpLEU9bmV3IEZsb2F0MzJBcnJheShkKSxUPW5ldyBGbG9hdDMyQXJyYXkoZCksQyxOLEksRDtzJiYoQz1uZXcgRmxvYXQzMkFycmF5KGQpLE49bmV3IEZsb2F0MzJBcnJheShkKSxJPW5ldyBGbG9hdDMyQXJyYXkoZCksRD1uZXcgRmxvYXQzMkFycmF5KHAqMikpO2xldCB2PWkubGVuZ3RoLzIsTD0wLFU9bEU7VS5oZWlnaHQ9MDtsZXQgQT1wRTtBLmhlaWdodD0wO2xldCBTPUpPLFA9cV87aWYocylmb3IodT0wLGY9MTtmPHY7ZisrKVUubGF0aXR1ZGU9aVt1XSxVLmxvbmdpdHVkZT1pW3UrMV0sQS5sYXRpdHVkZT1pW3UrMl0sQS5sb25naXR1ZGU9aVt1KzNdLFM9ZS5wcm9qZWN0KFUsUyksUD1lLnByb2plY3QoQSxQKSxMKz1hLmRpc3RhbmNlKFMsUCksdSs9MjtsZXQgQj1vLmxlbmd0aC8zO1A9YS51bnBhY2sobywwLFApO2xldCBqPTA7Zm9yKHU9MyxmPTE7ZjxCO2YrKylTPWEuY2xvbmUoUCxTKSxQPWEudW5wYWNrKG8sdSxQKSxqKz1hLmRpc3RhbmNlKFMsUCksdSs9MztsZXQgSDt1PTM7bGV0IGs9MCxLPTAsWD0wLFI9MCxvdD0hMSxhdD1hLnVucGFjayhuLDAsZUUpLHB0PWEudW5wYWNrKG8sMCxxXykseXQ9YS51bnBhY2sociwwLG5FKTtpZih0KXtsZXQgenQ9YS51bnBhY2sobixuLmxlbmd0aC02LHRFKTtYTyh5dCx6dCxhdCxwdCkmJih5dD1hLm5lZ2F0ZSh5dCx5dCkpfWxldCBydD0wLFB0PTAsZ3Q9MDtmb3IoZj0wO2Y8bDtmKyspe2xldCB6dD1hLmNsb25lKGF0LHRFKSxtZT1hLmNsb25lKHB0LEpPKSxhZT1hLmNsb25lKHl0LElEKTtvdCYmKGFlPWEubmVnYXRlKGFlLGFlKSksYXQ9YS51bnBhY2sobix1LGVFKSxwdD1hLnVucGFjayhvLHUscV8pLHl0PWEudW5wYWNrKHIsdSxuRSksb3Q9WE8oeXQsenQsYXQscHQpLFUubGF0aXR1ZGU9aVtrXSxVLmxvbmdpdHVkZT1pW2srMV0sQS5sYXRpdHVkZT1pW2srMl0sQS5sb25naXR1ZGU9aVtrKzNdO2xldCBwZSx1ZSxRdCxKdDtpZihzKXtsZXQgTGU9TkQoVSxBKTtwZT1lLnByb2plY3QoVSxWRCksdWU9ZS5wcm9qZWN0KEEsa0QpO2xldCBEbj1IaSh1ZSxwZSxyRSk7RG4ueT1NYXRoLmFicyhEbi55KSxRdD1LXyxKdD1XXyxMZT09PTB8fGEuZG90KERuLGEuVU5JVF9ZKT5jRT8oUXQ9WmYoZSxVLGFlLHBlLEtfKSxKdD1aZihlLEEseXQsdWUsV18pKTpMZT09PTE/KEp0PVpmKGUsQSx5dCx1ZSxXXyksUXQueD0wLFF0Lnk9TS5zaWduKFUubG9uZ2l0dWRlLU1hdGguYWJzKEEubG9uZ2l0dWRlKSksUXQuej0wKTooUXQ9WmYoZSxVLGFlLHBlLEtfKSxKdC54PTAsSnQueT1NLnNpZ24oVS5sb25naXR1ZGUtQS5sb25naXR1ZGUpLEp0Lno9MCl9bGV0IE5lPWEuZGlzdGFuY2UobWUscHQpLGdlPVpzLmZyb21DYXJ0ZXNpYW4oenQsS0QpLEVlPWEuc3VidHJhY3QoYXQsenQsR0QpLHVuPWEubm9ybWFsaXplKEVlLG9FKSxrZT1hLnN1YnRyYWN0KG1lLHp0LHpEKTtrZT1hLm5vcm1hbGl6ZShrZSxrZSk7bGV0IGJlPWEuY3Jvc3ModW4sa2Usb0UpO2JlPWEubm9ybWFsaXplKGJlLGJlKTtsZXQgbG49YS5jcm9zcyhrZSxhZSxIRCk7bG49YS5ub3JtYWxpemUobG4sbG4pO2xldCBwbj1hLnN1YnRyYWN0KHB0LGF0LGpEKTtwbj1hLm5vcm1hbGl6ZShwbixwbik7bGV0IEVuPWEuY3Jvc3MoeXQscG4scUQpO0VuPWEubm9ybWFsaXplKEVuLEVuKTtsZXQgcmU9TmUvaiwkdD1ydC9qLEdlPTAsZG4sc24sbW4sZm89MCxIbj0wO2lmKHMpe0dlPWEuZGlzdGFuY2UocGUsdWUpLGRuPVpzLmZyb21DYXJ0ZXNpYW4ocGUsV0QpLHNuPWEuc3VidHJhY3QodWUscGUsckUpLG1uPWEubm9ybWFsaXplKHNuLFhEKTtsZXQgTGU9bW4ueDttbi54PW1uLnksbW4ueT0tTGUsZm89R2UvTCxIbj1QdC9MfWZvcihIPTA7SDw4O0grKyl7bGV0IExlPVIrSCo0LERuPUsrSCoyLFduPUxlKzMsem89SDw0PzE6LTEscm49SD09PTJ8fEg9PT0zfHxIPT09Nnx8SD09PTc/MTotMTthLnBhY2soZ2UuaGlnaCxiLExlKSxiW1duXT1FZS54LGEucGFjayhnZS5sb3csdyxMZSksd1tXbl09RWUueSxhLnBhY2sobG4sTyxMZSksT1tXbl09RWUueixhLnBhY2soRW4sRSxMZSksRVtXbl09cmUqem8sYS5wYWNrKGJlLFQsTGUpO2xldCBSbj0kdCpybjtSbj09PTAmJnJuPDAmJihSbj05KSxUW1duXT1SbixzJiYoQ1tMZV09ZG4uaGlnaC54LENbTGUrMV09ZG4uaGlnaC55LENbTGUrMl09ZG4ubG93LngsQ1tMZSszXT1kbi5sb3cueSxJW0xlXT0tUXQueSxJW0xlKzFdPVF0LngsSVtMZSsyXT1KdC55LElbTGUrM109LUp0LngsTltMZV09c24ueCxOW0xlKzFdPXNuLnksTltMZSsyXT1tbi54LE5bTGUrM109bW4ueSxEW0RuXT1mbyp6byxSbj1IbipybixSbj09PTAmJnJuPDAmJihSbj05KSxEW0RuKzFdPVJuKX1sZXQgWmU9QkQsY249VUQsS2U9REQsaG49RkQsdW89TnQuZnJvbUNhcnRvZ3JhcGhpY0FycmF5KHZELExEKSxxbj1SZC5nZXRNaW5pbXVtTWF4aW11bUhlaWdodHModW8sYyksS249cW4ubWluaW11bVRlcnJhaW5IZWlnaHQsbG89cW4ubWF4aW11bVRlcnJhaW5IZWlnaHQ7Z3QrPU1hdGguYWJzKEtuKSxndCs9TWF0aC5hYnMobG8pLFFPKHp0LG1lLEtuLGxvLFplLEtlKSxRTyhhdCxwdCxLbixsbyxjbixobik7bGV0IHplPWEubXVsdGlwbHlCeVNjYWxhcihiZSxNLkVQU0lMT041LGlFKTthLmFkZChaZSx6ZSxaZSksYS5hZGQoY24semUsY24pLGEuYWRkKEtlLHplLEtlKSxhLmFkZChobix6ZSxobikseGQoWmUsY24pLHhkKEtlLGhuKSxhLnBhY2soWmUsZyxYKSxhLnBhY2soY24sZyxYKzMpLGEucGFjayhobixnLFgrNiksYS5wYWNrKEtlLGcsWCs5KSx6ZT1hLm11bHRpcGx5QnlTY2FsYXIoYmUsLTIqTS5FUFNJTE9ONSxpRSksYS5hZGQoWmUsemUsWmUpLGEuYWRkKGNuLHplLGNuKSxhLmFkZChLZSx6ZSxLZSksYS5hZGQoaG4semUsaG4pLHhkKFplLGNuKSx4ZChLZSxobiksYS5wYWNrKFplLGcsWCsxMiksYS5wYWNrKGNuLGcsWCsxNSksYS5wYWNrKGhuLGcsWCsxOCksYS5wYWNrKEtlLGcsWCsyMSksays9Mix1Kz0zLEsrPTE2LFgrPTI0LFIrPTMyLHJ0Kz1OZSxQdCs9R2V9dT0wO2xldCBDdD0wO2ZvcihmPTA7ZjxsO2YrKyl7Zm9yKEg9MDtIPHNFO0grKylfW3UrSF09ZEVbSF0rQ3Q7Q3QrPTgsdSs9c0V9bGV0IG10PVlEO0F0LmZyb21WZXJ0aWNlcyhuLGEuWkVSTywzLG10WzBdKSxBdC5mcm9tVmVydGljZXMobyxhLlpFUk8sMyxtdFsxXSk7bGV0IHV0PUF0LmZyb21Cb3VuZGluZ1NwaGVyZXMobXQpO3V0LnJhZGl1cys9Z3QvKGwqMik7bGV0IHZ0PXtwb3NpdGlvbjpuZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsbm9ybWFsaXplOiExLHZhbHVlczpnfSksc3RhcnRIaUFuZEZvcndhcmRPZmZzZXRYOk9zKGIpLHN0YXJ0TG9BbmRGb3J3YXJkT2Zmc2V0WTpPcyh3KSxzdGFydE5vcm1hbEFuZEZvcndhcmRPZmZzZXRaOk9zKE8pLGVuZE5vcm1hbEFuZFRleHR1cmVDb29yZGluYXRlTm9ybWFsaXphdGlvblg6T3MoRSkscmlnaHROb3JtYWxBbmRUZXh0dXJlQ29vcmRpbmF0ZU5vcm1hbGl6YXRpb25ZOk9zKFQpfTtyZXR1cm4gcyYmKHZ0LnN0YXJ0SGlMbzJEPU9zKEMpLHZ0Lm9mZnNldEFuZFJpZ2h0MkQ9T3MoTiksdnQuc3RhcnRFbmROb3JtYWxzMkQ9T3MoSSksdnQudGV4Y29vcmROb3JtYWxpemF0aW9uMkQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsbm9ybWFsaXplOiExLHZhbHVlczpEfSkpLG5ldyBVdCh7YXR0cmlidXRlczp2dCxpbmRpY2VzOl8sYm91bmRpbmdTcGhlcmU6dXR9KX1mdW5jdGlvbiBPcyh0KXtyZXR1cm4gbmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjQsbm9ybWFsaXplOiExLHZhbHVlczp0fSl9dmFyIFlfLGZELGNFLHpPLGFFLGZFLHVELGpPLEhPLGxELHBELGRELG1ELGpfLGhELF9ELHlELHVFLGdELEFELFBkLGJELHdELFRELE9ELEVELFNkLENkLEtPLFdPLFJELFNELENELFlPLHhELCRPLFBELFpPLE1ELGxFLHBFLEpPLHFfLHRFLGVFLElELG5FLHZELExELERELEZELEJELFVELFZELGtELEtfLFdfLEdELHpELGpELG9FLEhELHFELEtELFdELHJFLFhELGlFLFlELGRFLHNFLCRfLG1FPVooKCk9PntHXygpO2ZjKCk7anIoKTt2ZSgpO0Z0KCk7SWUoKTtYdCgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtqMCgpO0lmKCk7QmgoKTtTaSgpO1hlKCk7WWUoKTt0YygpO1d0KCk7Qm4oKTtmcygpO0tvKCk7VG4oKTtpYygpO1lfPVtKbixub10sZkQ9WV8ubGVuZ3RoLGNFPU1hdGguY29zKE0udG9SYWRpYW5zKDMwKSksek89TWF0aC5jb3MoTS50b1JhZGlhbnMoMTUwKSksYUU9MCxmRT0xZTM7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoRXMucHJvdG90eXBlLHtwYWNrZWRMZW5ndGg6e2dldDpmdW5jdGlvbigpe3JldHVybiAxK3RoaXMuX3Bvc2l0aW9ucy5sZW5ndGgqMysxKzErMSskLnBhY2tlZExlbmd0aCsxKzF9fX0pO0VzLnNldFByb2plY3Rpb25BbmRFbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXtsZXQgbj0wO2ZvcihsZXQgbz0wO288ZkQ7bysrKWlmKGUgaW5zdGFuY2VvZiBZX1tvXSl7bj1vO2JyZWFrfXQuX3Byb2plY3Rpb25JbmRleD1uLHQuX2VsbGlwc29pZD1lLmVsbGlwc29pZH07dUQ9bmV3IGEsak89bmV3IGEsSE89bmV3IGE7bEQ9bmV3IGN0LHBEPW5ldyBhLGREPW5ldyBhLG1EPW5ldyBhO2pfPW5ldyBjdDtFcy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKTtsZXQgbz14KG4sMCkscj10Ll9wb3NpdGlvbnMsaT1yLmxlbmd0aDtlW28rK109aTtmb3IobGV0IHM9MDtzPGk7KytzKXtsZXQgZj1yW3NdO2EucGFjayhmLGUsbyksbys9M31yZXR1cm4gZVtvKytdPXQuZ3JhbnVsYXJpdHksZVtvKytdPXQubG9vcD8xOjAsZVtvKytdPXQuYXJjVHlwZSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbyksbys9JC5wYWNrZWRMZW5ndGgsZVtvKytdPXQuX3Byb2plY3Rpb25JbmRleCxlW28rK109dC5fc2NlbmUzRE9ubHk/MTowLGV9O0VzLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCk7bGV0IG89eChlLDApLHI9dFtvKytdLGk9bmV3IEFycmF5KHIpO2ZvcihsZXQgZD0wO2Q8cjtkKyspaVtkXT1hLnVucGFjayh0LG8pLG8rPTM7bGV0IHM9dFtvKytdLGY9dFtvKytdPT09MSx1PXRbbysrXSxjPSQudW5wYWNrKHQsbyk7bys9JC5wYWNrZWRMZW5ndGg7bGV0IGw9dFtvKytdLHA9dFtvKytdPT09MTtyZXR1cm4gaChuKXx8KG49bmV3IEVzKHtwb3NpdGlvbnM6aX0pKSxuLl9wb3NpdGlvbnM9aSxuLmdyYW51bGFyaXR5PXMsbi5sb29wPWYsbi5hcmNUeXBlPXUsbi5fZWxsaXBzb2lkPWMsbi5fcHJvamVjdGlvbkluZGV4PWwsbi5fc2NlbmUzRE9ubHk9cCxufTtoRD1uZXcgYSxfRD1uZXcgYSx5RD1uZXcgYSx1RT1uZXcgYSxnRD0wLEFEPS0xO1BkPW9uLmZyb21Qb2ludE5vcm1hbChhLlpFUk8sYS5VTklUX1kpLGJEPW5ldyBhLHdEPW5ldyBhLFREPW5ldyBhLE9EPW5ldyBhLEVEPW5ldyBhLFNkPW5ldyBhLENkPW5ldyBjdCxLTz1uZXcgY3QsV089bmV3IGN0O0VzLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPSF0Ll9zY2VuZTNET25seSxuPXQubG9vcCxvPXQuX2VsbGlwc29pZCxyPXQuZ3JhbnVsYXJpdHksaT10LmFyY1R5cGUscz1uZXcgWV9bdC5fcHJvamVjdGlvbkluZGV4XShvKSxmPWFFLHU9ZkUsYyxsLHA9dC5fcG9zaXRpb25zLGQ9cC5sZW5ndGg7ZD09PTImJihuPSExKTtsZXQgbSxfLGcsYix3PW5ldyBabyh2b2lkIDAsdm9pZCAwLG8pLE8sRSxULEM9W3BbMF1dO2ZvcihsPTA7bDxkLTE7bCsrKW09cFtsXSxfPXBbbCsxXSxPPWhvLmxpbmVTZWdtZW50UGxhbmUobSxfLFBkLFNkKSxoKE8pJiYhYS5lcXVhbHNFcHNpbG9uKE8sbSxNLkVQU0lMT043KSYmIWEuZXF1YWxzRXBzaWxvbihPLF8sTS5FUFNJTE9ONykmJih0LmFyY1R5cGU9PT1fZS5HRU9ERVNJQz9DLnB1c2goYS5jbG9uZShPKSk6dC5hcmNUeXBlPT09X2UuUkhVTUImJihUPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoTyxDZCkubG9uZ2l0dWRlLGc9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhtLENkKSxiPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMoXyxLTyksdy5zZXRFbmRQb2ludHMoZyxiKSxFPXcuZmluZEludGVyc2VjdGlvbldpdGhMb25naXR1ZGUoVCxXTyksTz1vLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKEUsU2QpLGgoTykmJiFhLmVxdWFsc0Vwc2lsb24oTyxtLE0uRVBTSUxPTjcpJiYhYS5lcXVhbHNFcHNpbG9uKE8sXyxNLkVQU0lMT043KSYmQy5wdXNoKGEuY2xvbmUoTykpKSksQy5wdXNoKF8pO24mJihtPXBbZC0xXSxfPXBbMF0sTz1oby5saW5lU2VnbWVudFBsYW5lKG0sXyxQZCxTZCksaChPKSYmIWEuZXF1YWxzRXBzaWxvbihPLG0sTS5FUFNJTE9ONykmJiFhLmVxdWFsc0Vwc2lsb24oTyxfLE0uRVBTSUxPTjcpJiYodC5hcmNUeXBlPT09X2UuR0VPREVTSUM/Qy5wdXNoKGEuY2xvbmUoTykpOnQuYXJjVHlwZT09PV9lLlJIVU1CJiYoVD1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKE8sQ2QpLmxvbmdpdHVkZSxnPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobSxDZCksYj1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKF8sS08pLHcuc2V0RW5kUG9pbnRzKGcsYiksRT13LmZpbmRJbnRlcnNlY3Rpb25XaXRoTG9uZ2l0dWRlKFQsV08pLE89by5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihFLFNkKSxoKE8pJiYhYS5lcXVhbHNFcHNpbG9uKE8sbSxNLkVQU0lMT043KSYmIWEuZXF1YWxzRXBzaWxvbihPLF8sTS5FUFNJTE9ONykmJkMucHVzaChhLmNsb25lKE8pKSkpKTtsZXQgTj1DLmxlbmd0aCxJPW5ldyBBcnJheShOKTtmb3IobD0wO2w8TjtsKyspe2xldCBvdD1jdC5mcm9tQ2FydGVzaWFuKENbbF0sbyk7b3QuaGVpZ2h0PTAsSVtsXT1vdH1pZihJPXhuKEksY3QuZXF1YWxzRXBzaWxvbiksTj1JLmxlbmd0aCxOPDIpcmV0dXJuO2xldCBEPVtdLHY9W10sTD1bXSxVPVtdLEE9YkQsUz13RCxQPVRELEI9T0Qsaj1FRCxIPUlbMF0saz1JWzFdLEs9SVtOLTFdO2ZvcihBPVVvKG8sSyxmLEEpLEI9VW8obyxrLGYsQiksUz1VbyhvLEgsZixTKSxQPVVvKG8sSCx1LFApLG4/aj1IXyhBLFMsUCxCLGopOmo9WF8oSCxrLHUsbyxqKSxhLnBhY2soaix2LDApLGEucGFjayhTLEwsMCksYS5wYWNrKFAsVSwwKSxELnB1c2goSC5sYXRpdHVkZSksRC5wdXNoKEgubG9uZ2l0dWRlKSx6XyhILGssZix1LHIsaSxvLHYsTCxVLEQpLGw9MTtsPE4tMTsrK2wpe0E9YS5jbG9uZShTLEEpLFM9YS5jbG9uZShCLFMpO2xldCBvdD1JW2xdO1VvKG8sb3QsdSxQKSxVbyhvLElbbCsxXSxmLEIpLEhfKEEsUyxQLEIsaiksYz12Lmxlbmd0aCxhLnBhY2soaix2LGMpLGEucGFjayhTLEwsYyksYS5wYWNrKFAsVSxjKSxELnB1c2gob3QubGF0aXR1ZGUpLEQucHVzaChvdC5sb25naXR1ZGUpLHpfKElbbF0sSVtsKzFdLGYsdSxyLGksbyx2LEwsVSxEKX1sZXQgWD1JW04tMV0sUj1JW04tMl07aWYoUz1VbyhvLFgsZixTKSxQPVVvKG8sWCx1LFApLG4pe2xldCBvdD1JWzBdO0E9VW8obyxSLGYsQSksQj1VbyhvLG90LGYsQiksaj1IXyhBLFMsUCxCLGopfWVsc2Ugaj1YXyhSLFgsdSxvLGopO2lmKGM9di5sZW5ndGgsYS5wYWNrKGosdixjKSxhLnBhY2soUyxMLGMpLGEucGFjayhQLFUsYyksRC5wdXNoKFgubGF0aXR1ZGUpLEQucHVzaChYLmxvbmdpdHVkZSksbil7Zm9yKHpfKFgsSCxmLHUscixpLG8sdixMLFUsRCksYz12Lmxlbmd0aCxsPTA7bDwzOysrbCl2W2MrbF09dltsXSxMW2MrbF09TFtsXSxVW2MrbF09VVtsXTtELnB1c2goSC5sYXRpdHVkZSksRC5wdXNoKEgubG9uZ2l0dWRlKX1yZXR1cm4gJEQobixzLEwsVSx2LEQsZSl9O1JEPW5ldyBhLFNEPW5ldyBRLENEPW5ldyBlZTtZTz1uZXcgY3QseEQ9bmV3IGEsJE89bmV3IGE7UEQ9bmV3IGEsWk89bmV3IGE7TUQ9bmV3IGE7bEU9bmV3IGN0LHBFPW5ldyBjdCxKTz1uZXcgYSxxXz1uZXcgYSx0RT1uZXcgYSxlRT1uZXcgYSxJRD1uZXcgYSxuRT1uZXcgYSx2RD1bbEUscEVdLExEPW5ldyBOdCxERD1uZXcgYSxGRD1uZXcgYSxCRD1uZXcgYSxVRD1uZXcgYSxWRD1uZXcgYSxrRD1uZXcgYSxLXz1uZXcgYSxXXz1uZXcgYSxHRD1uZXcgYSx6RD1uZXcgYSxqRD1uZXcgYSxvRT1uZXcgYSxIRD1uZXcgYSxxRD1uZXcgYSxLRD1uZXcgWnMsV0Q9bmV3IFpzLHJFPW5ldyBhLFhEPW5ldyBhLGlFPW5ldyBhLFlEPVtuZXcgQXQsbmV3IEF0XSxkRT1bMCwyLDEsMCwzLDIsMCw3LDMsMCw0LDcsMCw1LDQsMCwxLDUsNSw3LDQsNSw2LDcsNSwyLDYsNSwxLDIsMyw2LDIsMyw3LDZdLHNFPWRFLmxlbmd0aDtFcy5fcHJvamVjdE5vcm1hbD1aZjskXz1Fc30pO3ZhciBaXz17fTtkZShaXyx7ZGVmYXVsdDooKT0+UUR9KTtmdW5jdGlvbiBaRCh0LGUpe3JldHVybiBSZC5pbml0aWFsaXplKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBoKGUpJiYodD0kXy51bnBhY2sodCxlKSksJF8uY3JlYXRlR2VvbWV0cnkodCl9KX12YXIgUUQsUV89WigoKT0+e0dfKCk7ZnQoKTttRSgpO1FEPVpEfSk7ZnVuY3Rpb24gU2EodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXgodC52ZXJ0ZXhGb3JtYXQsZHQuREVGQVVMVCk7dGhpcy5fdmVydGV4Rm9ybWF0PWUsdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUGxhbmVHZW9tZXRyeSJ9dmFyIGhFLEpELE1kLE5kLEpfLF9FPVooKCk9Pnt2ZSgpO0Z0KCk7WHQoKTtGZSgpO0l0KCk7ZnQoKTtYZSgpO1llKCk7YW4oKTt0bigpO1JvKCk7U2EucGFja2VkTGVuZ3RoPWR0LnBhY2tlZExlbmd0aDtTYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxlfTtoRT1uZXcgZHQsSkQ9e3ZlcnRleEZvcm1hdDpoRX07U2EudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1kdC51bnBhY2sodCxlLGhFKTtyZXR1cm4gaChuKT8obi5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKG8sbi5fdmVydGV4Rm9ybWF0KSxuKTpuZXcgU2EoSkQpfTtNZD1uZXcgYSgtLjUsLS41LDApLE5kPW5ldyBhKC41LC41LDApO1NhLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3ZlcnRleEZvcm1hdCxuPW5ldyBpZSxvLHI7aWYoZS5wb3NpdGlvbil7aWYocj1uZXcgRmxvYXQ2NEFycmF5KDQqMyksclswXT1NZC54LHJbMV09TWQueSxyWzJdPTAsclszXT1OZC54LHJbNF09TWQueSxyWzVdPTAscls2XT1OZC54LHJbN109TmQueSxyWzhdPTAscls5XT1NZC54LHJbMTBdPU5kLnksclsxMV09MCxuLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cn0pLGUubm9ybWFsKXtsZXQgaT1uZXcgRmxvYXQzMkFycmF5KDEyKTtpWzBdPTAsaVsxXT0wLGlbMl09MSxpWzNdPTAsaVs0XT0wLGlbNV09MSxpWzZdPTAsaVs3XT0wLGlbOF09MSxpWzldPTAsaVsxMF09MCxpWzExXT0xLG4ubm9ybWFsPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSl9aWYoZS5zdCl7bGV0IGk9bmV3IEZsb2F0MzJBcnJheSg4KTtpWzBdPTAsaVsxXT0wLGlbMl09MSxpWzNdPTAsaVs0XT0xLGlbNV09MSxpWzZdPTAsaVs3XT0xLG4uc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOml9KX1pZihlLnRhbmdlbnQpe2xldCBpPW5ldyBGbG9hdDMyQXJyYXkoMTIpO2lbMF09MSxpWzFdPTAsaVsyXT0wLGlbM109MSxpWzRdPTAsaVs1XT0wLGlbNl09MSxpWzddPTAsaVs4XT0wLGlbOV09MSxpWzEwXT0wLGlbMTFdPTAsbi50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczppfSl9aWYoZS5iaXRhbmdlbnQpe2xldCBpPW5ldyBGbG9hdDMyQXJyYXkoMTIpO2lbMF09MCxpWzFdPTEsaVsyXT0wLGlbM109MCxpWzRdPTEsaVs1XT0wLGlbNl09MCxpWzddPTEsaVs4XT0wLGlbOV09MCxpWzEwXT0xLGlbMTFdPTAsbi5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOml9KX1vPW5ldyBVaW50MTZBcnJheSgyKjMpLG9bMF09MCxvWzFdPTEsb1syXT0yLG9bM109MCxvWzRdPTIsb1s1XT0zfXJldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6bixpbmRpY2VzOm8scHJpbWl0aXZlVHlwZTpCdC5UUklBTkdMRVMsYm91bmRpbmdTcGhlcmU6bmV3IEF0KGEuWkVSTyxNYXRoLnNxcnQoMikpfSl9O0pfPVNhfSk7dmFyIHR5PXt9O2RlKHR5LHtkZWZhdWx0OigpPT5lRn0pO2Z1bmN0aW9uIHRGKHQsZSl7cmV0dXJuIGgoZSkmJih0PUpfLnVucGFjayh0LGUpKSxKXy5jcmVhdGVHZW9tZXRyeSh0KX12YXIgZUYsZXk9WigoKT0+e2Z0KCk7X0UoKTtlRj10Rn0pO2Z1bmN0aW9uIENhKCl7dGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUGxhbmVPdXRsaW5lR2VvbWV0cnkifXZhciBScyxJZCxueSx5RT1aKCgpPT57dmUoKTtGdCgpO1h0KCk7RmUoKTtmdCgpO1hlKCk7WWUoKTthbigpO3RuKCk7Q2EucGFja2VkTGVuZ3RoPTA7Q2EucGFjaz1mdW5jdGlvbih0LGUpe3JldHVybiB5LmRlZmluZWQoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxlfTtDYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LmRlZmluZWQoImFycmF5Iix0KSxoKG4pP246bmV3IENhfTtScz1uZXcgYSgtLjUsLS41LDApLElkPW5ldyBhKC41LC41LDApO0NhLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKCl7bGV0IHQ9bmV3IGllLGU9bmV3IFVpbnQxNkFycmF5KDQqMiksbj1uZXcgRmxvYXQ2NEFycmF5KDQqMyk7cmV0dXJuIG5bMF09UnMueCxuWzFdPVJzLnksblsyXT1Scy56LG5bM109SWQueCxuWzRdPVJzLnksbls1XT1Scy56LG5bNl09SWQueCxuWzddPUlkLnksbls4XT1Scy56LG5bOV09UnMueCxuWzEwXT1JZC55LG5bMTFdPVJzLnosdC5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm59KSxlWzBdPTAsZVsxXT0xLGVbMl09MSxlWzNdPTIsZVs0XT0yLGVbNV09MyxlWzZdPTMsZVs3XT0wLG5ldyBVdCh7YXR0cmlidXRlczp0LGluZGljZXM6ZSxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOm5ldyBBdChhLlpFUk8sTWF0aC5zcXJ0KDIpKX0pfTtueT1DYX0pO3ZhciBveT17fTtkZShveSx7ZGVmYXVsdDooKT0+b0Z9KTtmdW5jdGlvbiBuRih0LGUpe3JldHVybiBoKGUpJiYodD1ueS51bnBhY2sodCxlKSksbnkuY3JlYXRlR2VvbWV0cnkodCl9dmFyIG9GLHJ5PVooKCk9PntmdCgpO3lFKCk7b0Y9bkZ9KTtmdW5jdGlvbiBMbih0LGUpe3RoaXMucG9zaXRpb249dCxoKHRoaXMucG9zaXRpb24pfHwodGhpcy5wb3NpdGlvbj1uZXcgdHQpLHRoaXMudGFuZ2VudFBsYW5lPWUsaCh0aGlzLnRhbmdlbnRQbGFuZSl8fCh0aGlzLnRhbmdlbnRQbGFuZT1Mbi5OT1JUSF9QT0xFX1RBTkdFTlRfUExBTkUpfXZhciB4YSxyRixpRixzRixjRixjcixnRT1aKCgpPT57VWUoKTtGdCgpO0llKCk7WHQoKTtmdCgpO1p0KCk7cGEoKTt0YygpO1d0KCk7VnAoKTtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhMbi5wcm90b3R5cGUse2VsbGlwc29pZDp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMudGFuZ2VudFBsYW5lLmVsbGlwc29pZH19LHg6e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLnBvc2l0aW9uLnh9fSx5OntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5wb3NpdGlvbi55fX0sY29uZm9ybWFsTGF0aXR1ZGU6e2dldDpmdW5jdGlvbigpe2xldCB0PXR0Lm1hZ25pdHVkZSh0aGlzLnBvc2l0aW9uKSxlPTIqdGhpcy5lbGxpcHNvaWQubWF4aW11bVJhZGl1cztyZXR1cm4gdGhpcy50YW5nZW50UGxhbmUucGxhbmUubm9ybWFsLnoqKE0uUElfT1ZFUl9UV08tMipNYXRoLmF0YW4yKHQsZSkpfX0sbG9uZ2l0dWRlOntnZXQ6ZnVuY3Rpb24oKXtsZXQgdD1NLlBJX09WRVJfVFdPK01hdGguYXRhbjIodGhpcy55LHRoaXMueCk7cmV0dXJuIHQ+TWF0aC5QSSYmKHQtPU0uVFdPX1BJKSx0fX19KTt4YT1uZXcgY3QsckY9bmV3IGE7TG4ucHJvdG90eXBlLmdldExhdGl0dWRlPWZ1bmN0aW9uKHQpe2godCl8fCh0PSQuZGVmYXVsdCkseGEubGF0aXR1ZGU9dGhpcy5jb25mb3JtYWxMYXRpdHVkZSx4YS5sb25naXR1ZGU9dGhpcy5sb25naXR1ZGUseGEuaGVpZ2h0PTA7bGV0IGU9dGhpcy5lbGxpcHNvaWQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oeGEsckYpO3JldHVybiB0LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKGUseGEpLHhhLmxhdGl0dWRlfTtpRj1uZXcgUXMsc0Y9bmV3IGEsY0Y9bmV3IGE7TG4uZnJvbUNhcnRlc2lhbj1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFuIix0KTtsZXQgbj1NLnNpZ25Ob3RaZXJvKHQueiksbz1Mbi5OT1JUSF9QT0xFX1RBTkdFTlRfUExBTkUscj1Mbi5TT1VUSF9QT0xFO248MCYmKG89TG4uU09VVEhfUE9MRV9UQU5HRU5UX1BMQU5FLHI9TG4uTk9SVEhfUE9MRSk7bGV0IGk9aUY7aS5vcmlnaW49by5lbGxpcHNvaWQuc2NhbGVUb0dlb2NlbnRyaWNTdXJmYWNlKHQsaS5vcmlnaW4pLGkuZGlyZWN0aW9uPWEuc3VidHJhY3QoaS5vcmlnaW4scixzRiksYS5ub3JtYWxpemUoaS5kaXJlY3Rpb24saS5kaXJlY3Rpb24pO2xldCBzPWhvLnJheVBsYW5lKGksby5wbGFuZSxjRiksZj1hLnN1YnRyYWN0KHMscixzKSx1PWEuZG90KG8ueEF4aXMsZiksYz1uKmEuZG90KG8ueUF4aXMsZik7cmV0dXJuIGgoZSk/KGUucG9zaXRpb249bmV3IHR0KHUsYyksZS50YW5nZW50UGxhbmU9byxlKTpuZXcgTG4obmV3IHR0KHUsYyksbyl9O0xuLmZyb21DYXJ0ZXNpYW5BcnJheT1mdW5jdGlvbih0LGUpe3kuZGVmaW5lZCgiY2FydGVzaWFucyIsdCk7bGV0IG49dC5sZW5ndGg7aChlKT9lLmxlbmd0aD1uOmU9bmV3IEFycmF5KG4pO2ZvcihsZXQgbz0wO288bjtvKyspZVtvXT1Mbi5mcm9tQ2FydGVzaWFuKHRbb10sZVtvXSk7cmV0dXJuIGV9O0xuLmNsb25lPWZ1bmN0aW9uKHQsZSl7aWYoaCh0KSlyZXR1cm4gaChlKT8oZS5wb3NpdGlvbj10LnBvc2l0aW9uLGUudGFuZ2VudFBsYW5lPXQudGFuZ2VudFBsYW5lLGUpOm5ldyBMbih0LnBvc2l0aW9uLHQudGFuZ2VudFBsYW5lKX07TG4uSEFMRl9VTklUX1NQSEVSRT1PYmplY3QuZnJlZXplKG5ldyAkKC41LC41LC41KSk7TG4uTk9SVEhfUE9MRT1PYmplY3QuZnJlZXplKG5ldyBhKDAsMCwuNSkpO0xuLlNPVVRIX1BPTEU9T2JqZWN0LmZyZWV6ZShuZXcgYSgwLDAsLS41KSk7TG4uTk9SVEhfUE9MRV9UQU5HRU5UX1BMQU5FPU9iamVjdC5mcmVlemUobmV3IHlvKExuLk5PUlRIX1BPTEUsTG4uSEFMRl9VTklUX1NQSEVSRSkpO0xuLlNPVVRIX1BPTEVfVEFOR0VOVF9QTEFORT1PYmplY3QuZnJlZXplKG5ldyB5byhMbi5TT1VUSF9QT0xFLExuLkhBTEZfVU5JVF9TUEhFUkUpKTtjcj1Mbn0pO2Z1bmN0aW9uIGZGKHQsZSxuLG8pe2xldCBpPW8uY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWModCxhRikuaGVpZ2h0LHM9by5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhlLEFFKTtzLmhlaWdodD1pLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4ocyxlKTtsZXQgZj1vLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKG4sQUUpO2YuaGVpZ2h0PWktMTAwLG8uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oZixuKX1mdW5jdGlvbiBpeSh0KXtsZXQgZT10LnZlcnRleEZvcm1hdCxuPXQuZ2VvbWV0cnksbz10LnNoYWRvd1ZvbHVtZSxyPW4uYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaT1oKG4uYXR0cmlidXRlcy5zdCk/bi5hdHRyaWJ1dGVzLnN0LnZhbHVlczp2b2lkIDAscz1yLmxlbmd0aCxmPXQud2FsbCx1PXQudG9wfHxmLGM9dC5ib3R0b218fGY7aWYoZS5zdHx8ZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnR8fG8pe2xldCBsPXQuYm91bmRpbmdSZWN0YW5nbGUscD10LnJvdGF0aW9uQXhpcyxkPXQucHJvamVjdFRvMmQsbT10LmVsbGlwc29pZCxfPXQuc3RSb3RhdGlvbixnPXQucGVyUG9zaXRpb25IZWlnaHQsYj1fRjtiLng9bC54LGIueT1sLnk7bGV0IHc9ZS5zdD9uZXcgRmxvYXQzMkFycmF5KDIqKHMvMykpOnZvaWQgMCxPO2Uubm9ybWFsJiYoZyYmdSYmIWY/Tz1uLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlczpPPW5ldyBGbG9hdDMyQXJyYXkocykpO2xldCBFPWUudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHMpOnZvaWQgMCxUPWUuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkocyk6dm9pZCAwLEM9bz9uZXcgRmxvYXQzMkFycmF5KHMpOnZvaWQgMCxOPTAsST0wLEQ9bEYsdj1wRixMPWRGLFU9ITAsQT1BRixTPWJGO2lmKF8hPT0wKXtsZXQgaj1lZS5mcm9tQXhpc0FuZ2xlKHAsXyx3RSk7QT1RLmZyb21RdWF0ZXJuaW9uKGosQSksaj1lZS5mcm9tQXhpc0FuZ2xlKHAsLV8sd0UpLFM9US5mcm9tUXVhdGVybmlvbihqLFMpfWVsc2UgQT1RLmNsb25lKFEuSURFTlRJVFksQSksUz1RLmNsb25lKFEuSURFTlRJVFksUyk7bGV0IFA9MCxCPTA7dSYmYyYmKFA9cy8yLEI9cy8zLHMvPTIpO2ZvcihsZXQgaj0wO2o8cztqKz0zKXtsZXQgSD1hLmZyb21BcnJheShyLGosZ0YpO2lmKGUuc3QmJiFoKGkpKXtsZXQgaz1RLm11bHRpcGx5QnlWZWN0b3IoQSxILHVGKTtrPW0uc2NhbGVUb0dlb2RldGljU3VyZmFjZShrLGspO2xldCBLPWQoW2tdLHlGKVswXTt0dC5zdWJ0cmFjdChLLGIsSyk7bGV0IFg9TS5jbGFtcChLLngvbC53aWR0aCwwLDEpLFI9TS5jbGFtcChLLnkvbC5oZWlnaHQsMCwxKTtjJiYod1tOK0JdPVgsd1tOKzErQl09UiksdSYmKHdbTl09WCx3W04rMV09UiksTis9Mn1pZihlLm5vcm1hbHx8ZS50YW5nZW50fHxlLmJpdGFuZ2VudHx8byl7bGV0IGs9SSsxLEs9SSsyO2lmKGYpe2lmKGorMzxzKXtsZXQgWD1hLmZyb21BcnJheShyLGorMyxtRik7aWYoVSl7bGV0IFI9YS5mcm9tQXJyYXkocixqK3MsaEYpO2cmJmZGKEgsWCxSLG0pLGEuc3VidHJhY3QoWCxILFgpLGEuc3VidHJhY3QoUixILFIpLEQ9YS5ub3JtYWxpemUoYS5jcm9zcyhSLFgsRCksRCksVT0hMX1hLmVxdWFsc0Vwc2lsb24oWCxILE0uRVBTSUxPTjEwKSYmKFU9ITApfShlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKEw9bS5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoSCxMKSxlLnRhbmdlbnQmJih2PWEubm9ybWFsaXplKGEuY3Jvc3MoTCxELHYpLHYpKSl9ZWxzZSBEPW0uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEgsRCksKGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpJiYoZyYmKHZkPWEuZnJvbUFycmF5KE8sSSx2ZCksZGk9YS5jcm9zcyhhLlVOSVRfWix2ZCxkaSksZGk9YS5ub3JtYWxpemUoUS5tdWx0aXBseUJ5VmVjdG9yKFMsZGksZGkpLGRpKSxlLmJpdGFuZ2VudCYmKFBhPWEubm9ybWFsaXplKGEuY3Jvc3ModmQsZGksUGEpLFBhKSkpLHY9YS5jcm9zcyhhLlVOSVRfWixELHYpLHY9YS5ub3JtYWxpemUoUS5tdWx0aXBseUJ5VmVjdG9yKFMsdix2KSx2KSxlLmJpdGFuZ2VudCYmKEw9YS5ub3JtYWxpemUoYS5jcm9zcyhELHYsTCksTCkpKTtlLm5vcm1hbCYmKHQud2FsbD8oT1tJK1BdPUQueCxPW2srUF09RC55LE9bSytQXT1ELnopOmMmJihPW0krUF09LUQueCxPW2srUF09LUQueSxPW0srUF09LUQueiksKHUmJiFnfHxmKSYmKE9bSV09RC54LE9ba109RC55LE9bS109RC56KSksbyYmKGYmJihEPW0uZ2VvZGV0aWNTdXJmYWNlTm9ybWFsKEgsRCkpLENbSStQXT0tRC54LENbaytQXT0tRC55LENbSytQXT0tRC56KSxlLnRhbmdlbnQmJih0LndhbGw/KEVbSStQXT12LngsRVtrK1BdPXYueSxFW0srUF09di56KTpjJiYoRVtJK1BdPS12LngsRVtrK1BdPS12LnksRVtLK1BdPS12LnopLHUmJihnPyhFW0ldPWRpLngsRVtrXT1kaS55LEVbS109ZGkueik6KEVbSV09di54LEVba109di55LEVbS109di56KSkpLGUuYml0YW5nZW50JiYoYyYmKFRbSStQXT1MLngsVFtrK1BdPUwueSxUW0srUF09TC56KSx1JiYoZz8oVFtJXT1QYS54LFRba109UGEueSxUW0tdPVBhLnopOihUW0ldPUwueCxUW2tdPUwueSxUW0tdPUwueikpKSxJKz0zfX1lLnN0JiYhaChpKSYmKG4uYXR0cmlidXRlcy5zdD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6d30pKSxlLm5vcm1hbCYmKG4uYXR0cmlidXRlcy5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOk99KSksZS50YW5nZW50JiYobi5hdHRyaWJ1dGVzLnRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOkV9KSksZS5iaXRhbmdlbnQmJihuLmF0dHJpYnV0ZXMuYml0YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpUfSkpLG8mJihuLmF0dHJpYnV0ZXMuZXh0cnVkZURpcmVjdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6Q30pKX1pZih0LmV4dHJ1ZGUmJmgodC5vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbD1yLmxlbmd0aC8zLHA9bmV3IFVpbnQ4QXJyYXkobCk7aWYodC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1ApdSYmY3x8Zj9wPXAuZmlsbCgxLDAsbC8yKTp1JiYocD1wLmZpbGwoMSkpO2Vsc2V7bGV0IGQ9dC5vZmZzZXRBdHRyaWJ1dGU9PT1mZS5OT05FPzA6MTtwPXAuZmlsbChkKX1uLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6cH0pfXJldHVybiBufWZ1bmN0aW9uIHdGKHQsZSxuLG8scixpLHMsZix1LGMpe2xldCBsPXt3YWxsczpbXX0scDtpZihzfHxmKXtsZXQgTz15ZS5jcmVhdGVHZW9tZXRyeUZyb21Qb3NpdGlvbnModCxlLG4sbyxpLHUsYyksRT1PLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLFQ9Ty5pbmRpY2VzLEMsTjtpZihzJiZmKXtsZXQgST1FLmNvbmNhdChFKTtDPUkubGVuZ3RoLzMsTj1EdC5jcmVhdGVUeXBlZEFycmF5KEMsVC5sZW5ndGgqMiksTi5zZXQoVCk7bGV0IEQ9VC5sZW5ndGgsdj1DLzI7Zm9yKHA9MDtwPEQ7cCs9Myl7bGV0IEw9TltwXSt2LFU9TltwKzFdK3YsQT1OW3ArMl0rdjtOW3ArRF09QSxOW3ArMStEXT1VLE5bcCsyK0RdPUx9aWYoTy5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1JLGkmJnUubm9ybWFsKXtsZXQgTD1PLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcztPLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcz1uZXcgRmxvYXQzMkFycmF5KEkubGVuZ3RoKSxPLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcy5zZXQoTCl9aWYodS5zdCYmaChuKSl7bGV0IEw9Ty5hdHRyaWJ1dGVzLnN0LnZhbHVlcztPLmF0dHJpYnV0ZXMuc3QudmFsdWVzPW5ldyBGbG9hdDMyQXJyYXkoQyoyKSxPLmF0dHJpYnV0ZXMuc3QudmFsdWVzPUwuY29uY2F0KEwpfU8uaW5kaWNlcz1OfWVsc2UgaWYoZil7Zm9yKEM9RS5sZW5ndGgvMyxOPUR0LmNyZWF0ZVR5cGVkQXJyYXkoQyxULmxlbmd0aCkscD0wO3A8VC5sZW5ndGg7cCs9MylOW3BdPVRbcCsyXSxOW3ArMV09VFtwKzFdLE5bcCsyXT1UW3BdO08uaW5kaWNlcz1OfWwudG9wQW5kQm90dG9tPW5ldyBjbyh7Z2VvbWV0cnk6T30pfWxldCBkPXIub3V0ZXJSaW5nLG09eW8uZnJvbVBvaW50cyhkLHQpLF89bS5wcm9qZWN0UG9pbnRzT250b1BsYW5lKGQsVEUpLGc9UGUuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKF8pO2c9PT1Dby5DTE9DS1dJU0UmJihkPWQuc2xpY2UoKS5yZXZlcnNlKCkpO2xldCBiPXllLmNvbXB1dGVXYWxsR2VvbWV0cnkoZCxuLHQsbyxpLGMpO2wud2FsbHMucHVzaChuZXcgY28oe2dlb21ldHJ5OmJ9KSk7bGV0IHc9ci5ob2xlcztmb3IocD0wO3A8dy5sZW5ndGg7cCsrKXtsZXQgTz13W3BdO189bS5wcm9qZWN0UG9pbnRzT250b1BsYW5lKE8sVEUpLGc9UGUuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKF8pLGc9PT1Dby5DT1VOVEVSX0NMT0NLV0lTRSYmKE89Ty5zbGljZSgpLnJldmVyc2UoKSksYj15ZS5jb21wdXRlV2FsbEdlb21ldHJ5KE8sbix0LG8saSxjKSxsLndhbGxzLnB1c2gobmV3IGNvKHtnZW9tZXRyeTpifSkpfXJldHVybiBsfWZ1bmN0aW9uIFJyKHQpe2lmKHkudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLnBvbHlnb25IaWVyYXJjaHkiLHQucG9seWdvbkhpZXJhcmNoeSksaCh0LnBlclBvc2l0aW9uSGVpZ2h0KSYmdC5wZXJQb3NpdGlvbkhlaWdodCYmaCh0LmhlaWdodCkpdGhyb3cgbmV3IEYoIkNhbm5vdCB1c2UgYm90aCBvcHRpb25zLnBlclBvc2l0aW9uSGVpZ2h0IGFuZCBvcHRpb25zLmhlaWdodCIpO2lmKGgodC5hcmNUeXBlKSYmdC5hcmNUeXBlIT09X2UuR0VPREVTSUMmJnQuYXJjVHlwZSE9PV9lLlJIVU1CKXRocm93IG5ldyBGKCJJbnZhbGlkIGFyY1R5cGUuIFZhbGlkIG9wdGlvbnMgYXJlIEFyY1R5cGUuR0VPREVTSUMgYW5kIEFyY1R5cGUuUkhVTUIuIik7bGV0IGU9dC5wb2x5Z29uSGllcmFyY2h5LG49eCh0LnZlcnRleEZvcm1hdCxkdC5ERUZBVUxUKSxvPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSxyPXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksaT14KHQuc3RSb3RhdGlvbiwwKSxzPXQudGV4dHVyZUNvb3JkaW5hdGVzLGY9eCh0LnBlclBvc2l0aW9uSGVpZ2h0LCExKSx1PWYmJmgodC5leHRydWRlZEhlaWdodCksYz14KHQuaGVpZ2h0LDApLGw9eCh0LmV4dHJ1ZGVkSGVpZ2h0LGMpO2lmKCF1KXtsZXQgcD1NYXRoLm1heChjLGwpO2w9TWF0aC5taW4oYyxsKSxjPXB9dGhpcy5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKG4pLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG8pLHRoaXMuX2dyYW51bGFyaXR5PXIsdGhpcy5fc3RSb3RhdGlvbj1pLHRoaXMuX2hlaWdodD1jLHRoaXMuX2V4dHJ1ZGVkSGVpZ2h0PWwsdGhpcy5fY2xvc2VUb3A9eCh0LmNsb3NlVG9wLCEwKSx0aGlzLl9jbG9zZUJvdHRvbT14KHQuY2xvc2VCb3R0b20sITApLHRoaXMuX3BvbHlnb25IaWVyYXJjaHk9ZSx0aGlzLl9wZXJQb3NpdGlvbkhlaWdodD1mLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZT11LHRoaXMuX3NoYWRvd1ZvbHVtZT14KHQuc2hhZG93Vm9sdW1lLCExKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQb2x5Z29uR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9hcmNUeXBlPXgodC5hcmNUeXBlLF9lLkdFT0RFU0lDKSx0aGlzLl9yZWN0YW5nbGU9dm9pZCAwLHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM9dm9pZCAwLHRoaXMuX3RleHR1cmVDb29yZGluYXRlcz1zLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKSskLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGgrKHM/eWUuY29tcHV0ZUhpZXJhcmNoeVBhY2tlZExlbmd0aChzLHR0KToxKSsxMn1mdW5jdGlvbiBPRSh0LGUsbixvLHIsaSl7bGV0IHM9dC5sb25naXR1ZGUsZj1zPj0wP3M6cytNLlRXT19QSTtyLndlc3RPdmVySWRsPU1hdGgubWluKHIud2VzdE92ZXJJZGwsZiksci5lYXN0T3ZlcklkbD1NYXRoLm1heChyLmVhc3RPdmVySWRsLGYpLGkud2VzdD1NYXRoLm1pbihpLndlc3QscyksaS5lYXN0PU1hdGgubWF4KGkuZWFzdCxzKTtsZXQgdT10LmdldExhdGl0dWRlKG4pLGM9dTtpZihpLnNvdXRoPU1hdGgubWluKGkuc291dGgsdSksaS5ub3J0aD1NYXRoLm1heChpLm5vcnRoLHUpLG8hPT1fZS5SSFVNQil7bGV0IGQ9dHQuc3VidHJhY3QoZS5wb3NpdGlvbix0LnBvc2l0aW9uLFJGKSxtPXR0LmRvdChlLnBvc2l0aW9uLGQpL3R0LmRvdChkLGQpO2lmKG0+MCYmbTwxKXtsZXQgXz10dC5hZGQoZS5wb3NpdGlvbix0dC5tdWx0aXBseUJ5U2NhbGFyKGQsLW0sZCksU0YpLGc9Y3IuY2xvbmUoZSxDRik7Zy5wb3NpdGlvbj1fO2xldCBiPWcuZ2V0TGF0aXR1ZGUobik7aS5zb3V0aD1NYXRoLm1pbihpLnNvdXRoLGIpLGkubm9ydGg9TWF0aC5tYXgoaS5ub3J0aCxiKSxNYXRoLmFicyh1KT5NYXRoLmFicyhiKSYmKGM9Yil9fWxldCBsPWUueCp0LnktdC54KmUueSxwPU1hdGguc2lnbihsKTtwIT09MCYmKHAqPXR0LmFuZ2xlQmV0d2VlbihlLnBvc2l0aW9uLHQucG9zaXRpb24pKSxjPj0wJiYoci5ub3J0aEFuZ2xlKz1wKSxjPD0wJiYoci5zb3V0aEFuZ2xlKz1wKX1mdW5jdGlvbiBNRih0LGUsbil7cmV0dXJuIHQuaGVpZ2h0Pj1NLlBJfHx0LndpZHRoPj1NLlBJP2NyLmZyb21DYXJ0ZXNpYW4oZVswXSxQRikudGFuZ2VudFBsYW5lOnlvLmZyb21Qb2ludHMoZSxuKX1mdW5jdGlvbiBORih0LGUsbil7cmV0dXJuKG8scik9PntpZih0LmhlaWdodD49TS5QSXx8dC53aWR0aD49TS5QSSl7aWYodC5zb3V0aDwwJiZ0Lm5vcnRoPjApe2gocil8fChyPVtdKTtmb3IobGV0IHM9MDtzPG8ubGVuZ3RoOysrcyl7bGV0IGY9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhvW3NdLFJFKTtyW3NdPW5ldyB0dChmLmxvbmdpdHVkZS9NLlBJLGYubGF0aXR1ZGUvTS5QSV9PVkVSX1RXTyl9cmV0dXJuIHIubGVuZ3RoPW8ubGVuZ3RoLHJ9cmV0dXJuIGNyLmZyb21DYXJ0ZXNpYW5BcnJheShvLHIpfXJldHVybiB5by5mcm9tUG9pbnRzKGUsbikucHJvamVjdFBvaW50c09udG9QbGFuZShvLHIpfX1mdW5jdGlvbiBJRih0LGUsbil7aWYodC5oZWlnaHQ+PU0uUEl8fHQud2lkdGg+PU0uUEkpcmV0dXJuKHIsaSk9PntpZih0LnNvdXRoPDAmJnQubm9ydGg+MCl7bGV0IHM9bi5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhyLFJFKTtyZXR1cm4gaChpKXx8KGk9bmV3IHR0KSxpLng9cy5sb25naXR1ZGUvTS5QSSxpLnk9cy5sYXRpdHVkZS9NLlBJX09WRVJfVFdPLGl9cmV0dXJuIGNyLmZyb21DYXJ0ZXNpYW4ocixpKX07bGV0IG89eW8uZnJvbVBvaW50cyhlLG4pO3JldHVybihyLGkpPT5vLnByb2plY3RQb2ludHNPbnRvUGxhbmUocixpKX1mdW5jdGlvbiB2Rih0LGUsbixvKXtyZXR1cm4ocixpKT0+IW8mJih0LmhlaWdodD49TS5QSV9PVkVSX1RXT3x8dC53aWR0aD49MipNLlBJX09WRVJfVEhSRUUpP3llLnNwbGl0UG9seWdvbnNPbkVxdWF0b3IocixlLG4saSk6cn1mdW5jdGlvbiBMRih0LGUsbixvKXtpZihlLmhlaWdodD49TS5QSXx8ZS53aWR0aD49TS5QSSlyZXR1cm4gSHIuZnJvbVJlY3RhbmdsZShlLHZvaWQgMCxiRSk7bGV0IHI9dCxpPXlvLmZyb21Qb2ludHMocixuKTtyZXR1cm4geWUuY29tcHV0ZUJvdW5kaW5nUmVjdGFuZ2xlKGkucGxhbmUubm9ybWFsLGkucHJvamVjdFBvaW50T250b1BsYW5lLmJpbmQoaSkscixvLGJFKX1mdW5jdGlvbiBERih0KXtsZXQgZT0tdC5fc3RSb3RhdGlvbjtpZihlPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBuPXQuX2VsbGlwc29pZCxvPXQuX3BvbHlnb25IaWVyYXJjaHkucG9zaXRpb25zLHI9dC5yZWN0YW5nbGU7cmV0dXJuIFV0Ll90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzKG8sZSxuLHIpfXZhciBhRixBRSxiRSx1RixsRixwRixkRixtRixoRix2ZCxkaSxQYSxfRix5RixnRix3RSxBRixiRixURSxURixPRixFRixSRixTRixDRixFRSx4RixFcixQRixSRSxzeSxTRT1aKCgpPT57ZmMoKTtQZigpO3ZlKCk7VWUoKTtGdCgpO0llKCk7WHQoKTtGZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7cGEoKTtYZSgpO1llKCk7c2MoKTtMbygpO3NpKCk7JGUoKTtXdCgpO0JuKCk7RmYoKTtxcigpO0tvKCk7VG4oKTtnRSgpO1JvKCk7bGMoKTthRj1uZXcgY3QsQUU9bmV3IGN0O2JFPW5ldyBIcix1Rj1uZXcgYSxsRj1uZXcgYSxwRj1uZXcgYSxkRj1uZXcgYSxtRj1uZXcgYSxoRj1uZXcgYSx2ZD1uZXcgYSxkaT1uZXcgYSxQYT1uZXcgYSxfRj1uZXcgdHQseUY9bmV3IHR0LGdGPW5ldyBhLHdFPW5ldyBlZSxBRj1uZXcgUSxiRj1uZXcgUTtURT1bXTtSci5mcm9tUG9zaXRpb25zPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKSx5LmRlZmluZWQoIm9wdGlvbnMucG9zaXRpb25zIix0LnBvc2l0aW9ucyk7bGV0IGU9e3BvbHlnb25IaWVyYXJjaHk6e3Bvc2l0aW9uczp0LnBvc2l0aW9uc30saGVpZ2h0OnQuaGVpZ2h0LGV4dHJ1ZGVkSGVpZ2h0OnQuZXh0cnVkZWRIZWlnaHQsdmVydGV4Rm9ybWF0OnQudmVydGV4Rm9ybWF0LHN0Um90YXRpb246dC5zdFJvdGF0aW9uLGVsbGlwc29pZDp0LmVsbGlwc29pZCxncmFudWxhcml0eTp0LmdyYW51bGFyaXR5LHBlclBvc2l0aW9uSGVpZ2h0OnQucGVyUG9zaXRpb25IZWlnaHQsY2xvc2VUb3A6dC5jbG9zZVRvcCxjbG9zZUJvdHRvbTp0LmNsb3NlQm90dG9tLG9mZnNldEF0dHJpYnV0ZTp0Lm9mZnNldEF0dHJpYnV0ZSxhcmNUeXBlOnQuYXJjVHlwZSx0ZXh0dXJlQ29vcmRpbmF0ZXM6dC50ZXh0dXJlQ29vcmRpbmF0ZXN9O3JldHVybiBuZXcgUnIoZSl9O1JyLnBhY2s9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoInZhbHVlIix0KSx5LmRlZmluZWQoImFycmF5IixlKSxuPXgobiwwKSxuPXllLnBhY2tQb2x5Z29uSGllcmFyY2h5KHQuX3BvbHlnb25IaWVyYXJjaHksZSxuLGEpLCQucGFjayh0Ll9lbGxpcHNvaWQsZSxuKSxuKz0kLnBhY2tlZExlbmd0aCxkdC5wYWNrKHQuX3ZlcnRleEZvcm1hdCxlLG4pLG4rPWR0LnBhY2tlZExlbmd0aCxlW24rK109dC5faGVpZ2h0LGVbbisrXT10Ll9leHRydWRlZEhlaWdodCxlW24rK109dC5fZ3JhbnVsYXJpdHksZVtuKytdPXQuX3N0Um90YXRpb24sZVtuKytdPXQuX3BlclBvc2l0aW9uSGVpZ2h0RXh0cnVkZT8xOjAsZVtuKytdPXQuX3BlclBvc2l0aW9uSGVpZ2h0PzE6MCxlW24rK109dC5fY2xvc2VUb3A/MTowLGVbbisrXT10Ll9jbG9zZUJvdHRvbT8xOjAsZVtuKytdPXQuX3NoYWRvd1ZvbHVtZT8xOjAsZVtuKytdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlW24rK109dC5fYXJjVHlwZSxoKHQuX3RleHR1cmVDb29yZGluYXRlcyk/bj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll90ZXh0dXJlQ29vcmRpbmF0ZXMsZSxuLHR0KTplW24rK109LTEsZVtuKytdPXQucGFja2VkTGVuZ3RoLGV9O1RGPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksT0Y9bmV3IGR0LEVGPXtwb2x5Z29uSGllcmFyY2h5Ont9fTtSci51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe3kuZGVmaW5lZCgiYXJyYXkiLHQpLGU9eChlLDApO2xldCBvPXllLnVucGFja1BvbHlnb25IaWVyYXJjaHkodCxlLGEpO2U9by5zdGFydGluZ0luZGV4LGRlbGV0ZSBvLnN0YXJ0aW5nSW5kZXg7bGV0IHI9JC51bnBhY2sodCxlLFRGKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT1kdC51bnBhY2sodCxlLE9GKTtlKz1kdC5wYWNrZWRMZW5ndGg7bGV0IHM9dFtlKytdLGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdPT09MSxwPXRbZSsrXT09PTEsZD10W2UrK109PT0xLG09dFtlKytdPT09MSxfPXRbZSsrXT09PTEsZz10W2UrK10sYj10W2UrK10sdz10W2VdPT09LTE/dm9pZCAwOnllLnVucGFja1BvbHlnb25IaWVyYXJjaHkodCxlLHR0KTtoKHcpPyhlPXcuc3RhcnRpbmdJbmRleCxkZWxldGUgdy5zdGFydGluZ0luZGV4KTplKys7bGV0IE89dFtlKytdO3JldHVybiBoKG4pfHwobj1uZXcgUnIoRUYpKSxuLl9wb2x5Z29uSGllcmFyY2h5PW8sbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShpLG4uX3ZlcnRleEZvcm1hdCksbi5faGVpZ2h0PXMsbi5fZXh0cnVkZWRIZWlnaHQ9ZixuLl9ncmFudWxhcml0eT11LG4uX3N0Um90YXRpb249YyxuLl9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU9bCxuLl9wZXJQb3NpdGlvbkhlaWdodD1wLG4uX2Nsb3NlVG9wPWQsbi5fY2xvc2VCb3R0b209bSxuLl9zaGFkb3dWb2x1bWU9XyxuLl9vZmZzZXRBdHRyaWJ1dGU9Zz09PS0xP3ZvaWQgMDpnLG4uX2FyY1R5cGU9YixuLl90ZXh0dXJlQ29vcmRpbmF0ZXM9dyxuLnBhY2tlZExlbmd0aD1PLG59O1JGPW5ldyB0dCxTRj1uZXcgdHQsQ0Y9bmV3IGNyO0VFPW5ldyBjcix4Rj1uZXcgY3IsRXI9e25vcnRoQW5nbGU6MCxzb3V0aEFuZ2xlOjAsd2VzdE92ZXJJZGw6MCxlYXN0T3ZlcklkbDowfTtSci5jb21wdXRlUmVjdGFuZ2xlRnJvbVBvc2l0aW9ucz1mdW5jdGlvbih0LGUsbixvKXtpZih5LmRlZmluZWQoInBvc2l0aW9ucyIsdCksaChvKXx8KG89bmV3IE50KSx0Lmxlbmd0aDwzKXJldHVybiBvO28ud2VzdD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksby5lYXN0PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxvLnNvdXRoPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxvLm5vcnRoPU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxFci5ub3J0aEFuZ2xlPTAsRXIuc291dGhBbmdsZT0wLEVyLndlc3RPdmVySWRsPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxFci5lYXN0T3ZlcklkbD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IHI9dC5sZW5ndGgsaT1jci5mcm9tQ2FydGVzaWFuKHRbMF0seEYpO2ZvcihsZXQgcz0xO3M8cjtzKyspe2xldCBmPWNyLmZyb21DYXJ0ZXNpYW4odFtzXSxFRSk7T0UoZixpLGUsbixFcixvKSxpPWNyLmNsb25lKGYsaSl9cmV0dXJuIE9FKGNyLmZyb21DYXJ0ZXNpYW4odFswXSxFRSksaSxlLG4sRXIsbyksby5lYXN0LW8ud2VzdD5Fci5lYXN0T3ZlcklkbC1Fci53ZXN0T3ZlcklkbCYmKG8ud2VzdD1Fci53ZXN0T3ZlcklkbCxvLmVhc3Q9RXIuZWFzdE92ZXJJZGwsby5lYXN0Pk0uUEkmJihvLmVhc3Q9by5lYXN0LU0uVFdPX1BJKSxvLndlc3Q+TS5QSSYmKG8ud2VzdD1vLndlc3QtTS5UV09fUEkpKSxNLmVxdWFsc0Vwc2lsb24oTWF0aC5hYnMoRXIubm9ydGhBbmdsZSksTS5UV09fUEksTS5FUFNJTE9OMTApJiYoby5ub3J0aD1NLlBJX09WRVJfVFdPLG8uZWFzdD1NLlBJLG8ud2VzdD0tTS5QSSksTS5lcXVhbHNFcHNpbG9uKE1hdGguYWJzKEVyLnNvdXRoQW5nbGUpLE0uVFdPX1BJLE0uRVBTSUxPTjEwKSYmKG8uc291dGg9LU0uUElfT1ZFUl9UV08sby5lYXN0PU0uUEksby53ZXN0PS1NLlBJKSxvfTtQRj1uZXcgY3I7UkU9bmV3IGN0O1JyLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3ZlcnRleEZvcm1hdCxuPXQuX2VsbGlwc29pZCxvPXQuX2dyYW51bGFyaXR5LHI9dC5fc3RSb3RhdGlvbixpPXQuX3BvbHlnb25IaWVyYXJjaHkscz10Ll9wZXJQb3NpdGlvbkhlaWdodCxmPXQuX2Nsb3NlVG9wLHU9dC5fY2xvc2VCb3R0b20sYz10Ll9hcmNUeXBlLGw9dC5fdGV4dHVyZUNvb3JkaW5hdGVzLHA9aChsKSxkPWkucG9zaXRpb25zO2lmKGQubGVuZ3RoPDMpcmV0dXJuO2xldCBtPXQucmVjdGFuZ2xlLF89eWUucG9seWdvbnNGcm9tSGllcmFyY2h5KGkscCxORihtLGQsbiksIXMsbix2RihtLG4sYyxzKSksZz1fLmhpZXJhcmNoeSxiPV8ucG9seWdvbnMsdz1mdW5jdGlvbihQKXtyZXR1cm4gUH0sTz1wP3llLnBvbHlnb25zRnJvbUhpZXJhcmNoeShsLCEwLHcsITEsbikucG9seWdvbnM6dm9pZCAwO2lmKGcubGVuZ3RoPT09MClyZXR1cm47bGV0IEU9Z1swXS5vdXRlclJpbmcsVD1MRihFLG0sbixyKSxDPVtdLE49dC5faGVpZ2h0LEk9dC5fZXh0cnVkZWRIZWlnaHQsRD10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGV8fCFNLmVxdWFsc0Vwc2lsb24oTixJLDAsTS5FUFNJTE9OMiksdj17cGVyUG9zaXRpb25IZWlnaHQ6cyx2ZXJ0ZXhGb3JtYXQ6ZSxnZW9tZXRyeTp2b2lkIDAscm90YXRpb25BeGlzOk1GKG0sRSxuKS5wbGFuZS5ub3JtYWwscHJvamVjdFRvMmQ6SUYobSxFLG4pLGJvdW5kaW5nUmVjdGFuZ2xlOlQsZWxsaXBzb2lkOm4sc3RSb3RhdGlvbjpyLHRleHR1cmVDb29yZGluYXRlczp2b2lkIDAsYm90dG9tOiExLHRvcDohMCx3YWxsOiExLGV4dHJ1ZGU6ITEsYXJjVHlwZTpjfSxMO2lmKEQpZm9yKHYuZXh0cnVkZT0hMCx2LnRvcD1mLHYuYm90dG9tPXUsdi5zaGFkb3dWb2x1bWU9dC5fc2hhZG93Vm9sdW1lLHYub2Zmc2V0QXR0cmlidXRlPXQuX29mZnNldEF0dHJpYnV0ZSxMPTA7TDxiLmxlbmd0aDtMKyspe2xldCBQPXdGKG4sYltMXSxwP09bTF06dm9pZCAwLG8sZ1tMXSxzLGYsdSxlLGMpLEI7ZiYmdT8oQj1QLnRvcEFuZEJvdHRvbSx2Lmdlb21ldHJ5PXllLnNjYWxlVG9HZW9kZXRpY0hlaWdodEV4dHJ1ZGVkKEIuZ2VvbWV0cnksTixJLG4scykpOmY/KEI9UC50b3BBbmRCb3R0b20sQi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoQi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxOLG4sIXMpLHYuZ2VvbWV0cnk9Qi5nZW9tZXRyeSk6dSYmKEI9UC50b3BBbmRCb3R0b20sQi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoQi5nZW9tZXRyeS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxJLG4sITApLHYuZ2VvbWV0cnk9Qi5nZW9tZXRyeSksKGZ8fHUpJiYodi53YWxsPSExLEIuZ2VvbWV0cnk9aXkodiksQy5wdXNoKEIpKTtsZXQgaj1QLndhbGxzO3Yud2FsbD0hMDtmb3IobGV0IEg9MDtIPGoubGVuZ3RoO0grKyl7bGV0IGs9altIXTt2Lmdlb21ldHJ5PXllLnNjYWxlVG9HZW9kZXRpY0hlaWdodEV4dHJ1ZGVkKGsuZ2VvbWV0cnksTixJLG4scyksay5nZW9tZXRyeT1peSh2KSxDLnB1c2goayl9fWVsc2UgZm9yKEw9MDtMPGIubGVuZ3RoO0wrKyl7bGV0IFA9bmV3IGNvKHtnZW9tZXRyeTp5ZS5jcmVhdGVHZW9tZXRyeUZyb21Qb3NpdGlvbnMobixiW0xdLHA/T1tMXTp2b2lkIDAsbyxzLGUsYyl9KTtpZihQLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChQLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLE4sbiwhcyksdi5nZW9tZXRyeT1QLmdlb21ldHJ5LFAuZ2VvbWV0cnk9aXkodiksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgQj1QLmdlb21ldHJ5LmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aCxqPXQuX29mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxLEg9bmV3IFVpbnQ4QXJyYXkoQi8zKS5maWxsKGopO1AuZ2VvbWV0cnkuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpIfSl9Qy5wdXNoKFApfWxldCBVPVZlLmNvbWJpbmVJbnN0YW5jZXMoQylbMF07VS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1uZXcgRmxvYXQ2NEFycmF5KFUuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMpLFUuaW5kaWNlcz1EdC5jcmVhdGVUeXBlZEFycmF5KFUuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsVS5pbmRpY2VzKTtsZXQgQT1VLmF0dHJpYnV0ZXMsUz1BdC5mcm9tVmVydGljZXMoQS5wb3NpdGlvbi52YWx1ZXMpO3JldHVybiBlLnBvc2l0aW9ufHxkZWxldGUgQS5wb3NpdGlvbixuZXcgVXQoe2F0dHJpYnV0ZXM6QSxpbmRpY2VzOlUuaW5kaWNlcyxwcmltaXRpdmVUeXBlOlUucHJpbWl0aXZlVHlwZSxib3VuZGluZ1NwaGVyZTpTLG9mZnNldEF0dHJpYnV0ZTp0Ll9vZmZzZXRBdHRyaWJ1dGV9KX07UnIuY3JlYXRlU2hhZG93Vm9sdW1lPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10Ll9ncmFudWxhcml0eSxyPXQuX2VsbGlwc29pZCxpPWUobyxyKSxzPW4obyxyKTtyZXR1cm4gbmV3IFJyKHtwb2x5Z29uSGllcmFyY2h5OnQuX3BvbHlnb25IaWVyYXJjaHksZWxsaXBzb2lkOnIsc3RSb3RhdGlvbjp0Ll9zdFJvdGF0aW9uLGdyYW51bGFyaXR5Om8scGVyUG9zaXRpb25IZWlnaHQ6ITEsZXh0cnVkZWRIZWlnaHQ6aSxoZWlnaHQ6cyx2ZXJ0ZXhGb3JtYXQ6ZHQuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITAsYXJjVHlwZTp0Ll9hcmNUeXBlfSl9O09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKFJyLnByb3RvdHlwZSx7cmVjdGFuZ2xlOntnZXQ6ZnVuY3Rpb24oKXtpZighaCh0aGlzLl9yZWN0YW5nbGUpKXtsZXQgdD10aGlzLl9wb2x5Z29uSGllcmFyY2h5LnBvc2l0aW9uczt0aGlzLl9yZWN0YW5nbGU9UnIuY29tcHV0ZVJlY3RhbmdsZUZyb21Qb3NpdGlvbnModCx0aGlzLl9lbGxpcHNvaWQsdGhpcy5fYXJjVHlwZSl9cmV0dXJuIHRoaXMuX3JlY3RhbmdsZX19LHRleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHM6e2dldDpmdW5jdGlvbigpe3JldHVybiBoKHRoaXMuX3RleHR1cmVDb29yZGluYXRlUm90YXRpb25Qb2ludHMpfHwodGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cz1ERih0aGlzKSksdGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50c319fSk7c3k9UnJ9KTt2YXIgY3k9e307ZGUoY3kse2RlZmF1bHQ6KCk9PkJGfSk7ZnVuY3Rpb24gRkYodCxlKXtyZXR1cm4gaChlKSYmKHQ9c3kudW5wYWNrKHQsZSkpLHQuX2VsbGlwc29pZD0kLmNsb25lKHQuX2VsbGlwc29pZCksc3kuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEJGLGF5PVooKCk9PntmdCgpO1p0KCk7U0UoKTtCRj1GRn0pO2Z1bmN0aW9uIFVGKHQsZSxuLG8scil7bGV0IHM9eW8uZnJvbVBvaW50cyhlLHQpLnByb2plY3RQb2ludHNPbnRvUGxhbmUoZSxDRSk7UGUuY29tcHV0ZVdpbmRpbmdPcmRlcjJEKHMpPT09Q28uQ0xPQ0tXSVNFJiYocy5yZXZlcnNlKCksZT1lLnNsaWNlKCkucmV2ZXJzZSgpKTtsZXQgdSxjLGw9ZS5sZW5ndGgscD0wO2lmKG8pZm9yKHU9bmV3IEZsb2F0NjRBcnJheShsKjIqMyksYz0wO2M8bDtjKyspe2xldCBfPWVbY10sZz1lWyhjKzEpJWxdO3VbcCsrXT1fLngsdVtwKytdPV8ueSx1W3ArK109Xy56LHVbcCsrXT1nLngsdVtwKytdPWcueSx1W3ArK109Zy56fWVsc2V7bGV0IF89MDtpZihyPT09X2UuR0VPREVTSUMpZm9yKGM9MDtjPGw7YysrKV8rPXllLnN1YmRpdmlkZUxpbmVDb3VudChlW2NdLGVbKGMrMSklbF0sbik7ZWxzZSBpZihyPT09X2UuUkhVTUIpZm9yKGM9MDtjPGw7YysrKV8rPXllLnN1YmRpdmlkZVJodW1iTGluZUNvdW50KHQsZVtjXSxlWyhjKzEpJWxdLG4pO2Zvcih1PW5ldyBGbG9hdDY0QXJyYXkoXyozKSxjPTA7YzxsO2MrKyl7bGV0IGc7cj09PV9lLkdFT0RFU0lDP2c9eWUuc3ViZGl2aWRlTGluZShlW2NdLGVbKGMrMSklbF0sbixMZCk6cj09PV9lLlJIVU1CJiYoZz15ZS5zdWJkaXZpZGVSaHVtYkxpbmUodCxlW2NdLGVbKGMrMSklbF0sbixMZCkpO2xldCBiPWcubGVuZ3RoO2ZvcihsZXQgdz0wO3c8YjsrK3cpdVtwKytdPWdbd119fWw9dS5sZW5ndGgvMztsZXQgZD1sKjIsbT1EdC5jcmVhdGVUeXBlZEFycmF5KGwsZCk7Zm9yKHA9MCxjPTA7YzxsLTE7YysrKW1bcCsrXT1jLG1bcCsrXT1jKzE7cmV0dXJuIG1bcCsrXT1sLTEsbVtwKytdPTAsbmV3IGNvKHtnZW9tZXRyeTpuZXcgVXQoe2F0dHJpYnV0ZXM6bmV3IGllKHtwb3NpdGlvbjpuZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnV9KX0pLGluZGljZXM6bSxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTfSl9KX1mdW5jdGlvbiBWRih0LGUsbixvLHIpe2xldCBzPXlvLmZyb21Qb2ludHMoZSx0KS5wcm9qZWN0UG9pbnRzT250b1BsYW5lKGUsQ0UpO1BlLmNvbXB1dGVXaW5kaW5nT3JkZXIyRChzKT09PUNvLkNMT0NLV0lTRSYmKHMucmV2ZXJzZSgpLGU9ZS5zbGljZSgpLnJldmVyc2UoKSk7bGV0IHUsYyxsPWUubGVuZ3RoLHA9bmV3IEFycmF5KGwpLGQ9MDtpZihvKWZvcih1PW5ldyBGbG9hdDY0QXJyYXkobCoyKjMqMiksYz0wO2M8bDsrK2Mpe3BbY109ZC8zO2xldCBiPWVbY10sdz1lWyhjKzEpJWxdO3VbZCsrXT1iLngsdVtkKytdPWIueSx1W2QrK109Yi56LHVbZCsrXT13LngsdVtkKytdPXcueSx1W2QrK109dy56fWVsc2V7bGV0IGI9MDtpZihyPT09X2UuR0VPREVTSUMpZm9yKGM9MDtjPGw7YysrKWIrPXllLnN1YmRpdmlkZUxpbmVDb3VudChlW2NdLGVbKGMrMSklbF0sbik7ZWxzZSBpZihyPT09X2UuUkhVTUIpZm9yKGM9MDtjPGw7YysrKWIrPXllLnN1YmRpdmlkZVJodW1iTGluZUNvdW50KHQsZVtjXSxlWyhjKzEpJWxdLG4pO2Zvcih1PW5ldyBGbG9hdDY0QXJyYXkoYiozKjIpLGM9MDtjPGw7KytjKXtwW2NdPWQvMztsZXQgdztyPT09X2UuR0VPREVTSUM/dz15ZS5zdWJkaXZpZGVMaW5lKGVbY10sZVsoYysxKSVsXSxuLExkKTpyPT09X2UuUkhVTUImJih3PXllLnN1YmRpdmlkZVJodW1iTGluZSh0LGVbY10sZVsoYysxKSVsXSxuLExkKSk7bGV0IE89dy5sZW5ndGg7Zm9yKGxldCBFPTA7RTxPOysrRSl1W2QrK109d1tFXX19bD11Lmxlbmd0aC8oMyoyKTtsZXQgbT1wLmxlbmd0aCxfPShsKjIrbSkqMixnPUR0LmNyZWF0ZVR5cGVkQXJyYXkobCttLF8pO2ZvcihkPTAsYz0wO2M8bDsrK2MpZ1tkKytdPWMsZ1tkKytdPShjKzEpJWwsZ1tkKytdPWMrbCxnW2QrK109KGMrMSklbCtsO2ZvcihjPTA7YzxtO2MrKyl7bGV0IGI9cFtjXTtnW2QrK109YixnW2QrK109YitsfXJldHVybiBuZXcgY28oe2dlb21ldHJ5Om5ldyBVdCh7YXR0cmlidXRlczpuZXcgaWUoe3Bvc2l0aW9uOm5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dX0pfSksaW5kaWNlczpnLHByaW1pdGl2ZVR5cGU6QnQuTElORVN9KX0pfWZ1bmN0aW9uIEFjKHQpe2lmKHkudHlwZU9mLm9iamVjdCgib3B0aW9ucyIsdCkseS50eXBlT2Yub2JqZWN0KCJvcHRpb25zLnBvbHlnb25IaWVyYXJjaHkiLHQucG9seWdvbkhpZXJhcmNoeSksdC5wZXJQb3NpdGlvbkhlaWdodCYmaCh0LmhlaWdodCkpdGhyb3cgbmV3IEYoIkNhbm5vdCB1c2UgYm90aCBvcHRpb25zLnBlclBvc2l0aW9uSGVpZ2h0IGFuZCBvcHRpb25zLmhlaWdodCIpO2lmKGgodC5hcmNUeXBlKSYmdC5hcmNUeXBlIT09X2UuR0VPREVTSUMmJnQuYXJjVHlwZSE9PV9lLlJIVU1CKXRocm93IG5ldyBGKCJJbnZhbGlkIGFyY1R5cGUuIFZhbGlkIG9wdGlvbnMgYXJlIEFyY1R5cGUuR0VPREVTSUMgYW5kIEFyY1R5cGUuUkhVTUIuIik7bGV0IGU9dC5wb2x5Z29uSGllcmFyY2h5LG49eCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpLG89eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxyPXgodC5wZXJQb3NpdGlvbkhlaWdodCwhMSksaT1yJiZoKHQuZXh0cnVkZWRIZWlnaHQpLHM9eCh0LmFyY1R5cGUsX2UuR0VPREVTSUMpLGY9eCh0LmhlaWdodCwwKSx1PXgodC5leHRydWRlZEhlaWdodCxmKTtpZighaSl7bGV0IGM9TWF0aC5tYXgoZix1KTt1PU1hdGgubWluKGYsdSksZj1jfXRoaXMuX2VsbGlwc29pZD0kLmNsb25lKG4pLHRoaXMuX2dyYW51bGFyaXR5PW8sdGhpcy5faGVpZ2h0PWYsdGhpcy5fZXh0cnVkZWRIZWlnaHQ9dSx0aGlzLl9hcmNUeXBlPXMsdGhpcy5fcG9seWdvbkhpZXJhcmNoeT1lLHRoaXMuX3BlclBvc2l0aW9uSGVpZ2h0PXIsdGhpcy5fcGVyUG9zaXRpb25IZWlnaHRFeHRydWRlPWksdGhpcy5fb2Zmc2V0QXR0cmlidXRlPXQub2Zmc2V0QXR0cmlidXRlLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlnb25PdXRsaW5lR2VvbWV0cnkiLHRoaXMucGFja2VkTGVuZ3RoPXllLmNvbXB1dGVIaWVyYXJjaHlQYWNrZWRMZW5ndGgoZSxhKSskLnBhY2tlZExlbmd0aCs4fXZhciBDRSxMZCxrRixHRixmeSx4RT1aKCgpPT57ZmMoKTt2ZSgpO0Z0KCk7WHQoKTtGZSgpO0l0KCk7ZnQoKTtIdCgpO1p0KCk7cGEoKTtYZSgpO1llKCk7YW4oKTtzYygpO0xvKCk7c2koKTskZSgpO1d0KCk7RmYoKTtxcigpO3RuKCk7bGMoKTtDRT1bXSxMZD1bXTtBYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksbj15ZS5wYWNrUG9seWdvbkhpZXJhcmNoeSh0Ll9wb2x5Z29uSGllcmFyY2h5LGUsbixhKSwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2hlaWdodCxlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU/MTowLGVbbisrXT10Ll9wZXJQb3NpdGlvbkhlaWdodD8xOjAsZVtuKytdPXQuX2FyY1R5cGUsZVtuKytdPXgodC5fb2Zmc2V0QXR0cmlidXRlLC0xKSxlW25dPXQucGFja2VkTGVuZ3RoLGV9O2tGPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksR0Y9e3BvbHlnb25IaWVyYXJjaHk6e319O0FjLnVucGFjaz1mdW5jdGlvbih0LGUsbil7eS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCk7bGV0IG89eWUudW5wYWNrUG9seWdvbkhpZXJhcmNoeSh0LGUsYSk7ZT1vLnN0YXJ0aW5nSW5kZXgsZGVsZXRlIG8uc3RhcnRpbmdJbmRleDtsZXQgcj0kLnVucGFjayh0LGUsa0YpO2UrPSQucGFja2VkTGVuZ3RoO2xldCBpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXT09PTEsYz10W2UrK109PT0xLGw9dFtlKytdLHA9dFtlKytdLGQ9dFtlXTtyZXR1cm4gaChuKXx8KG49bmV3IEFjKEdGKSksbi5fcG9seWdvbkhpZXJhcmNoeT1vLG4uX2VsbGlwc29pZD0kLmNsb25lKHIsbi5fZWxsaXBzb2lkKSxuLl9oZWlnaHQ9aSxuLl9leHRydWRlZEhlaWdodD1zLG4uX2dyYW51bGFyaXR5PWYsbi5fcGVyUG9zaXRpb25IZWlnaHQ9YyxuLl9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGU9dSxuLl9hcmNUeXBlPWwsbi5fb2Zmc2V0QXR0cmlidXRlPXA9PT0tMT92b2lkIDA6cCxuLnBhY2tlZExlbmd0aD1kLG59O0FjLmZyb21Qb3NpdGlvbnM9ZnVuY3Rpb24odCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpLHkuZGVmaW5lZCgib3B0aW9ucy5wb3NpdGlvbnMiLHQucG9zaXRpb25zKTtsZXQgZT17cG9seWdvbkhpZXJhcmNoeTp7cG9zaXRpb25zOnQucG9zaXRpb25zfSxoZWlnaHQ6dC5oZWlnaHQsZXh0cnVkZWRIZWlnaHQ6dC5leHRydWRlZEhlaWdodCxlbGxpcHNvaWQ6dC5lbGxpcHNvaWQsZ3JhbnVsYXJpdHk6dC5ncmFudWxhcml0eSxwZXJQb3NpdGlvbkhlaWdodDp0LnBlclBvc2l0aW9uSGVpZ2h0LGFyY1R5cGU6dC5hcmNUeXBlLG9mZnNldEF0dHJpYnV0ZTp0Lm9mZnNldEF0dHJpYnV0ZX07cmV0dXJuIG5ldyBBYyhlKX07QWMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fZWxsaXBzb2lkLG49dC5fZ3JhbnVsYXJpdHksbz10Ll9wb2x5Z29uSGllcmFyY2h5LHI9dC5fcGVyUG9zaXRpb25IZWlnaHQsaT10Ll9hcmNUeXBlLHM9eWUucG9seWdvbk91dGxpbmVzRnJvbUhpZXJhcmNoeShvLCFyLGUpO2lmKHMubGVuZ3RoPT09MClyZXR1cm47bGV0IGYsdT1bXSxjPU0uY2hvcmRMZW5ndGgobixlLm1heGltdW1SYWRpdXMpLGw9dC5faGVpZ2h0LHA9dC5fZXh0cnVkZWRIZWlnaHQsZD10Ll9wZXJQb3NpdGlvbkhlaWdodEV4dHJ1ZGV8fCFNLmVxdWFsc0Vwc2lsb24obCxwLDAsTS5FUFNJTE9OMiksbSxfO2lmKGQpZm9yKF89MDtfPHMubGVuZ3RoO18rKyl7aWYoZj1WRihlLHNbX10sYyxyLGkpLGYuZ2VvbWV0cnk9eWUuc2NhbGVUb0dlb2RldGljSGVpZ2h0RXh0cnVkZWQoZi5nZW9tZXRyeSxsLHAsZSxyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCB3PWYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoLzMsTz1uZXcgVWludDhBcnJheSh3KTt0Ll9vZmZzZXRBdHRyaWJ1dGU9PT1mZS5UT1A/Tz1PLmZpbGwoMSwwLHcvMik6KG09dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjEsTz1PLmZpbGwobSkpLGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpPfSl9dS5wdXNoKGYpfWVsc2UgZm9yKF89MDtfPHMubGVuZ3RoO18rKyl7aWYoZj1VRihlLHNbX10sYyxyLGkpLGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9UGUuc2NhbGVUb0dlb2RldGljSGVpZ2h0KGYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsbCxlLCFyKSxoKHQuX29mZnNldEF0dHJpYnV0ZSkpe2xldCB3PWYuZ2VvbWV0cnkuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMubGVuZ3RoO209dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuTk9ORT8wOjE7bGV0IE89bmV3IFVpbnQ4QXJyYXkody8zKS5maWxsKG0pO2YuZ2VvbWV0cnkuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpPfSl9dS5wdXNoKGYpfWxldCBnPVZlLmNvbWJpbmVJbnN0YW5jZXModSlbMF0sYj1BdC5mcm9tVmVydGljZXMoZy5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyk7cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpnLmF0dHJpYnV0ZXMsaW5kaWNlczpnLmluZGljZXMscHJpbWl0aXZlVHlwZTpnLnByaW1pdGl2ZVR5cGUsYm91bmRpbmdTcGhlcmU6YixvZmZzZXRBdHRyaWJ1dGU6dC5fb2Zmc2V0QXR0cmlidXRlfSl9O2Z5PUFjfSk7dmFyIHV5PXt9O2RlKHV5LHtkZWZhdWx0OigpPT5qRn0pO2Z1bmN0aW9uIHpGKHQsZSl7cmV0dXJuIGgoZSkmJih0PWZ5LnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLGZ5LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBqRixseT1aKCgpPT57ZnQoKTtadCgpO3hFKCk7akY9ekZ9KTtmdW5jdGlvbiBweSh0LGUsbil7cmV0dXJuIG48MCYmKG4rPTEpLG4+MSYmKG4tPTEpLG4qNjwxP3QrKGUtdCkqNipuOm4qMjwxP2U6biozPDI/dCsoZS10KSooMi8zLW4pKjY6dH1mdW5jdGlvbiBxKHQsZSxuLG8pe3RoaXMucmVkPXgodCwxKSx0aGlzLmdyZWVuPXgoZSwxKSx0aGlzLmJsdWU9eChuLDEpLHRoaXMuYWxwaGE9eChvLDEpfXZhciBkeSxteSxxaSxIRixxRixLRixXRixvZSxNYT1aKCgpPT57WHQoKTtJdCgpO2Z0KCk7c2goKTtXdCgpO3EuZnJvbUNhcnRlc2lhbjQ9ZnVuY3Rpb24odCxlKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjYXJ0ZXNpYW4iLHQpLGgoZSk/KGUucmVkPXQueCxlLmdyZWVuPXQueSxlLmJsdWU9dC56LGUuYWxwaGE9dC53LGUpOm5ldyBxKHQueCx0LnksdC56LHQudyl9O3EuZnJvbUJ5dGVzPWZ1bmN0aW9uKHQsZSxuLG8scil7cmV0dXJuIHQ9cS5ieXRlVG9GbG9hdCh4KHQsMjU1KSksZT1xLmJ5dGVUb0Zsb2F0KHgoZSwyNTUpKSxuPXEuYnl0ZVRvRmxvYXQoeChuLDI1NSkpLG89cS5ieXRlVG9GbG9hdCh4KG8sMjU1KSksaChyKT8oci5yZWQ9dCxyLmdyZWVuPWUsci5ibHVlPW4sci5hbHBoYT1vLHIpOm5ldyBxKHQsZSxuLG8pfTtxLmZyb21BbHBoYT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgiY29sb3IiLHQpLHkudHlwZU9mLm51bWJlcigiYWxwaGEiLGUpLGgobik/KG4ucmVkPXQucmVkLG4uZ3JlZW49dC5ncmVlbixuLmJsdWU9dC5ibHVlLG4uYWxwaGE9ZSxuKTpuZXcgcSh0LnJlZCx0LmdyZWVuLHQuYmx1ZSxlKX07WXMuc3VwcG9ydHNUeXBlZEFycmF5cygpJiYoZHk9bmV3IEFycmF5QnVmZmVyKDQpLG15PW5ldyBVaW50MzJBcnJheShkeSkscWk9bmV3IFVpbnQ4QXJyYXkoZHkpKTtxLmZyb21SZ2JhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIG15WzBdPXQscS5mcm9tQnl0ZXMocWlbMF0scWlbMV0scWlbMl0scWlbM10sZSl9O3EuZnJvbUhzbD1mdW5jdGlvbih0LGUsbixvLHIpe3Q9eCh0LDApJTEsZT14KGUsMCksbj14KG4sMCksbz14KG8sMSk7bGV0IGk9bixzPW4sZj1uO2lmKGUhPT0wKXtsZXQgdTtuPC41P3U9biooMStlKTp1PW4rZS1uKmU7bGV0IGM9MipuLXU7aT1weShjLHUsdCsxLzMpLHM9cHkoYyx1LHQpLGY9cHkoYyx1LHQtMS8zKX1yZXR1cm4gaChyKT8oci5yZWQ9aSxyLmdyZWVuPXMsci5ibHVlPWYsci5hbHBoYT1vLHIpOm5ldyBxKGkscyxmLG8pfTtxLmZyb21SYW5kb209ZnVuY3Rpb24odCxlKXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IG49dC5yZWQ7aWYoIWgobikpe2xldCBzPXgodC5taW5pbXVtUmVkLDApLGY9eCh0Lm1heGltdW1SZWQsMSk7eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm1pbmltdW1SZWQiLHMsZiksbj1zK00ubmV4dFJhbmRvbU51bWJlcigpKihmLXMpfWxldCBvPXQuZ3JlZW47aWYoIWgobykpe2xldCBzPXgodC5taW5pbXVtR3JlZW4sMCksZj14KHQubWF4aW11bUdyZWVuLDEpO3kudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJtaW5pbXVtR3JlZW4iLHMsZiksbz1zK00ubmV4dFJhbmRvbU51bWJlcigpKihmLXMpfWxldCByPXQuYmx1ZTtpZighaChyKSl7bGV0IHM9eCh0Lm1pbmltdW1CbHVlLDApLGY9eCh0Lm1heGltdW1CbHVlLDEpO3kudHlwZU9mLm51bWJlci5sZXNzVGhhbk9yRXF1YWxzKCJtaW5pbXVtQmx1ZSIscyxmKSxyPXMrTS5uZXh0UmFuZG9tTnVtYmVyKCkqKGYtcyl9bGV0IGk9dC5hbHBoYTtpZighaChpKSl7bGV0IHM9eCh0Lm1pbmltdW1BbHBoYSwwKSxmPXgodC5tYXhpbXVtQWxwaGEsMSk7eS50eXBlT2YubnVtYmVyLmxlc3NUaGFuT3JFcXVhbHMoIm1pbmltdW1BbHBoYSIscyxmKSxpPXMrTS5uZXh0UmFuZG9tTnVtYmVyKCkqKGYtcyl9cmV0dXJuIGgoZSk/KGUucmVkPW4sZS5ncmVlbj1vLGUuYmx1ZT1yLGUuYWxwaGE9aSxlKTpuZXcgcShuLG8scixpKX07SEY9L14jKFswLTlhLWZdKShbMC05YS1mXSkoWzAtOWEtZl0pKFswLTlhLWZdKT8kL2kscUY9L14jKFswLTlhLWZdezJ9KShbMC05YS1mXXsyfSkoWzAtOWEtZl17Mn0pKFswLTlhLWZdezJ9KT8kL2ksS0Y9L15yZ2JhP1xzKlwoXHMqKFswLTkuXSslPylccypbLFxzXStccyooWzAtOS5dKyU/KVxzKlssXHNdK1xzKihbMC05Ll0rJT8pKD86XHMqWyxccy9dK1xzKihbMC05Ll0rKSk/XHMqXCkkL2ksV0Y9L15oc2xhP1xzKlwoXHMqKFswLTkuXSspXHMqWyxcc10rXHMqKFswLTkuXSslKVxzKlssXHNdK1xzKihbMC05Ll0rJSkoPzpccypbLFxzL10rXHMqKFswLTkuXSspKT9ccypcKSQvaTtxLmZyb21Dc3NDb2xvclN0cmluZz1mdW5jdGlvbih0LGUpe3kudHlwZU9mLnN0cmluZygiY29sb3IiLHQpLGgoZSl8fChlPW5ldyBxKSx0PXQudHJpbSgpO2xldCBuPXFbdC50b1VwcGVyQ2FzZSgpXTtpZihoKG4pKXJldHVybiBxLmNsb25lKG4sZSksZTtsZXQgbz1IRi5leGVjKHQpO3JldHVybiBvIT09bnVsbD8oZS5yZWQ9cGFyc2VJbnQob1sxXSwxNikvMTUsZS5ncmVlbj1wYXJzZUludChvWzJdLDE2KS8xNSxlLmJsdWU9cGFyc2VJbnQob1szXSwxNikvMTUsZS5hbHBoYT1wYXJzZUludCh4KG9bNF0sImYiKSwxNikvMTUsZSk6KG89cUYuZXhlYyh0KSxvIT09bnVsbD8oZS5yZWQ9cGFyc2VJbnQob1sxXSwxNikvMjU1LGUuZ3JlZW49cGFyc2VJbnQob1syXSwxNikvMjU1LGUuYmx1ZT1wYXJzZUludChvWzNdLDE2KS8yNTUsZS5hbHBoYT1wYXJzZUludCh4KG9bNF0sImZmIiksMTYpLzI1NSxlKToobz1LRi5leGVjKHQpLG8hPT1udWxsPyhlLnJlZD1wYXJzZUZsb2F0KG9bMV0pLyhvWzFdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksZS5ncmVlbj1wYXJzZUZsb2F0KG9bMl0pLyhvWzJdLnN1YnN0cigtMSk9PT0iJSI/MTAwOjI1NSksZS5ibHVlPXBhcnNlRmxvYXQob1szXSkvKG9bM10uc3Vic3RyKC0xKT09PSIlIj8xMDA6MjU1KSxlLmFscGhhPXBhcnNlRmxvYXQoeChvWzRdLCIxLjAiKSksZSk6KG89V0YuZXhlYyh0KSxvIT09bnVsbD9xLmZyb21Ic2wocGFyc2VGbG9hdChvWzFdKS8zNjAscGFyc2VGbG9hdChvWzJdKS8xMDAscGFyc2VGbG9hdChvWzNdKS8xMDAscGFyc2VGbG9hdCh4KG9bNF0sIjEuMCIpKSxlKTooZT12b2lkIDAsZSkpKSl9O3EucGFja2VkTGVuZ3RoPTQ7cS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksZVtuKytdPXQucmVkLGVbbisrXT10LmdyZWVuLGVbbisrXT10LmJsdWUsZVtuXT10LmFscGhhLGV9O3EudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS5kZWZpbmVkKCJhcnJheSIsdCksZT14KGUsMCksaChuKXx8KG49bmV3IHEpLG4ucmVkPXRbZSsrXSxuLmdyZWVuPXRbZSsrXSxuLmJsdWU9dFtlKytdLG4uYWxwaGE9dFtlXSxufTtxLmJ5dGVUb0Zsb2F0PWZ1bmN0aW9uKHQpe3JldHVybiB0LzI1NX07cS5mbG9hdFRvQnl0ZT1mdW5jdGlvbih0KXtyZXR1cm4gdD09PTE/MjU1OnQqMjU2fDB9O3EuY2xvbmU9ZnVuY3Rpb24odCxlKXtpZihoKHQpKXJldHVybiBoKGUpPyhlLnJlZD10LnJlZCxlLmdyZWVuPXQuZ3JlZW4sZS5ibHVlPXQuYmx1ZSxlLmFscGhhPXQuYWxwaGEsZSk6bmV3IHEodC5yZWQsdC5ncmVlbix0LmJsdWUsdC5hbHBoYSl9O3EuZXF1YWxzPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHQ9PT1lfHxoKHQpJiZoKGUpJiZ0LnJlZD09PWUucmVkJiZ0LmdyZWVuPT09ZS5ncmVlbiYmdC5ibHVlPT09ZS5ibHVlJiZ0LmFscGhhPT09ZS5hbHBoYX07cS5lcXVhbHNBcnJheT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHQucmVkPT09ZVtuXSYmdC5ncmVlbj09PWVbbisxXSYmdC5ibHVlPT09ZVtuKzJdJiZ0LmFscGhhPT09ZVtuKzNdfTtxLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gcS5jbG9uZSh0aGlzLHQpfTtxLnByb3RvdHlwZS5lcXVhbHM9ZnVuY3Rpb24odCl7cmV0dXJuIHEuZXF1YWxzKHRoaXMsdCl9O3EucHJvdG90eXBlLmVxdWFsc0Vwc2lsb249ZnVuY3Rpb24odCxlKXtyZXR1cm4gdGhpcz09PXR8fGgodCkmJk1hdGguYWJzKHRoaXMucmVkLXQucmVkKTw9ZSYmTWF0aC5hYnModGhpcy5ncmVlbi10LmdyZWVuKTw9ZSYmTWF0aC5hYnModGhpcy5ibHVlLXQuYmx1ZSk8PWUmJk1hdGguYWJzKHRoaXMuYWxwaGEtdC5hbHBoYSk8PWV9O3EucHJvdG90eXBlLnRvU3RyaW5nPWZ1bmN0aW9uKCl7cmV0dXJuYCgke3RoaXMucmVkfSwgJHt0aGlzLmdyZWVufSwgJHt0aGlzLmJsdWV9LCAke3RoaXMuYWxwaGF9KWB9O3EucHJvdG90eXBlLnRvQ3NzQ29sb3JTdHJpbmc9ZnVuY3Rpb24oKXtsZXQgdD1xLmZsb2F0VG9CeXRlKHRoaXMucmVkKSxlPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbiksbj1xLmZsb2F0VG9CeXRlKHRoaXMuYmx1ZSk7cmV0dXJuIHRoaXMuYWxwaGE9PT0xP2ByZ2IoJHt0fSwke2V9LCR7bn0pYDpgcmdiYSgke3R9LCR7ZX0sJHtufSwke3RoaXMuYWxwaGF9KWB9O3EucHJvdG90eXBlLnRvQ3NzSGV4U3RyaW5nPWZ1bmN0aW9uKCl7bGV0IHQ9cS5mbG9hdFRvQnl0ZSh0aGlzLnJlZCkudG9TdHJpbmcoMTYpO3QubGVuZ3RoPDImJih0PWAwJHt0fWApO2xldCBlPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbikudG9TdHJpbmcoMTYpO2UubGVuZ3RoPDImJihlPWAwJHtlfWApO2xldCBuPXEuZmxvYXRUb0J5dGUodGhpcy5ibHVlKS50b1N0cmluZygxNik7aWYobi5sZW5ndGg8MiYmKG49YDAke259YCksdGhpcy5hbHBoYTwxKXtsZXQgbz1xLmZsb2F0VG9CeXRlKHRoaXMuYWxwaGEpLnRvU3RyaW5nKDE2KTtyZXR1cm4gby5sZW5ndGg8MiYmKG89YDAke299YCksYCMke3R9JHtlfSR7bn0ke299YH1yZXR1cm5gIyR7dH0ke2V9JHtufWB9O3EucHJvdG90eXBlLnRvQnl0ZXM9ZnVuY3Rpb24odCl7bGV0IGU9cS5mbG9hdFRvQnl0ZSh0aGlzLnJlZCksbj1xLmZsb2F0VG9CeXRlKHRoaXMuZ3JlZW4pLG89cS5mbG9hdFRvQnl0ZSh0aGlzLmJsdWUpLHI9cS5mbG9hdFRvQnl0ZSh0aGlzLmFscGhhKTtyZXR1cm4gaCh0KT8odFswXT1lLHRbMV09bix0WzJdPW8sdFszXT1yLHQpOltlLG4sbyxyXX07cS5wcm90b3R5cGUudG9SZ2JhPWZ1bmN0aW9uKCl7cmV0dXJuIHFpWzBdPXEuZmxvYXRUb0J5dGUodGhpcy5yZWQpLHFpWzFdPXEuZmxvYXRUb0J5dGUodGhpcy5ncmVlbikscWlbMl09cS5mbG9hdFRvQnl0ZSh0aGlzLmJsdWUpLHFpWzNdPXEuZmxvYXRUb0J5dGUodGhpcy5hbHBoYSksbXlbMF19O3EucHJvdG90eXBlLmJyaWdodGVuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigibWFnbml0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygibWFnbml0dWRlIix0LDApLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSx0PTEtdCxlLnJlZD0xLSgxLXRoaXMucmVkKSp0LGUuZ3JlZW49MS0oMS10aGlzLmdyZWVuKSp0LGUuYmx1ZT0xLSgxLXRoaXMuYmx1ZSkqdCxlLmFscGhhPXRoaXMuYWxwaGEsZX07cS5wcm90b3R5cGUuZGFya2VuPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHkudHlwZU9mLm51bWJlcigibWFnbml0dWRlIix0KSx5LnR5cGVPZi5udW1iZXIuZ3JlYXRlclRoYW5PckVxdWFscygibWFnbml0dWRlIix0LDApLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixlKSx0PTEtdCxlLnJlZD10aGlzLnJlZCp0LGUuZ3JlZW49dGhpcy5ncmVlbip0LGUuYmx1ZT10aGlzLmJsdWUqdCxlLmFscGhhPXRoaXMuYWxwaGEsZX07cS5wcm90b3R5cGUud2l0aEFscGhhPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIHEuZnJvbUFscGhhKHRoaXMsdCxlKX07cS5hZGQ9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCtlLnJlZCxuLmdyZWVuPXQuZ3JlZW4rZS5ncmVlbixuLmJsdWU9dC5ibHVlK2UuYmx1ZSxuLmFscGhhPXQuYWxwaGErZS5hbHBoYSxufTtxLnN1YnRyYWN0PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi5yZWQ9dC5yZWQtZS5yZWQsbi5ncmVlbj10LmdyZWVuLWUuZ3JlZW4sbi5ibHVlPXQuYmx1ZS1lLmJsdWUsbi5hbHBoYT10LmFscGhhLWUuYWxwaGEsbn07cS5tdWx0aXBseT1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgibGVmdCIsdCkseS50eXBlT2Yub2JqZWN0KCJyaWdodCIsZSkseS50eXBlT2Yub2JqZWN0KCJyZXN1bHQiLG4pLG4ucmVkPXQucmVkKmUucmVkLG4uZ3JlZW49dC5ncmVlbiplLmdyZWVuLG4uYmx1ZT10LmJsdWUqZS5ibHVlLG4uYWxwaGE9dC5hbHBoYSplLmFscGhhLG59O3EuZGl2aWRlPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJsZWZ0Iix0KSx5LnR5cGVPZi5vYmplY3QoInJpZ2h0IixlKSx5LnR5cGVPZi5vYmplY3QoInJlc3VsdCIsbiksbi5yZWQ9dC5yZWQvZS5yZWQsbi5ncmVlbj10LmdyZWVuL2UuZ3JlZW4sbi5ibHVlPXQuYmx1ZS9lLmJsdWUsbi5hbHBoYT10LmFscGhhL2UuYWxwaGEsbn07cS5tb2Q9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB5LnR5cGVPZi5vYmplY3QoImxlZnQiLHQpLHkudHlwZU9mLm9iamVjdCgicmlnaHQiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCVlLnJlZCxuLmdyZWVuPXQuZ3JlZW4lZS5ncmVlbixuLmJsdWU9dC5ibHVlJWUuYmx1ZSxuLmFscGhhPXQuYWxwaGElZS5hbHBoYSxufTtxLmxlcnA9ZnVuY3Rpb24odCxlLG4sbyl7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgic3RhcnQiLHQpLHkudHlwZU9mLm9iamVjdCgiZW5kIixlKSx5LnR5cGVPZi5udW1iZXIoInQiLG4pLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixvKSxvLnJlZD1NLmxlcnAodC5yZWQsZS5yZWQsbiksby5ncmVlbj1NLmxlcnAodC5ncmVlbixlLmdyZWVuLG4pLG8uYmx1ZT1NLmxlcnAodC5ibHVlLGUuYmx1ZSxuKSxvLmFscGhhPU0ubGVycCh0LmFscGhhLGUuYWxwaGEsbiksb307cS5tdWx0aXBseUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjb2xvciIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZCplLG4uZ3JlZW49dC5ncmVlbiplLG4uYmx1ZT10LmJsdWUqZSxuLmFscGhhPXQuYWxwaGEqZSxufTtxLmRpdmlkZUJ5U2NhbGFyPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJjb2xvciIsdCkseS50eXBlT2YubnVtYmVyKCJzY2FsYXIiLGUpLHkudHlwZU9mLm9iamVjdCgicmVzdWx0IixuKSxuLnJlZD10LnJlZC9lLG4uZ3JlZW49dC5ncmVlbi9lLG4uYmx1ZT10LmJsdWUvZSxuLmFscGhhPXQuYWxwaGEvZSxufTtxLkFMSUNFQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjBGOEZGIikpO3EuQU5USVFVRVdISVRFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGQUVCRDciKSk7cS5BUVVBPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZGRkYiKSk7cS5BUVVBTUFSSU5FPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3RkZGRDQiKSk7cS5BWlVSRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjBGRkZGIikpO3EuQkVJR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RjVEQyIpKTtxLkJJU1FVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZFNEM0IikpO3EuQkxBQ0s9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwMDAwMCIpKTtxLkJMQU5DSEVEQUxNT05EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkVCQ0QiKSk7cS5CTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwRkYiKSk7cS5CTFVFVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4QTJCRTIiKSk7cS5CUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTUyQTJBIikpO3EuQlVSTFlXT09EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNERUI4ODciKSk7cS5DQURFVEJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzVGOUVBMCIpKTtxLkNIQVJUUkVVU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzdGRkYwMCIpKTtxLkNIT0NPTEFURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRDI2OTFFIikpO3EuQ09SQUw9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGN0Y1MCIpKTtxLkNPUk5GTE9XRVJCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2NDk1RUQiKSk7cS5DT1JOU0lMSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGOERDIikpO3EuQ1JJTVNPTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjREMxNDNDIikpO3EuQ1lBTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDBGRkZGIikpO3EuREFSS0JMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwMDA4QiIpKTtxLkRBUktDWUFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDhCOEIiKSk7cS5EQVJLR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCODg2MEIiKSk7cS5EQVJLR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTlBOUE5IikpO3EuREFSS0dSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDY0MDAiKSk7cS5EQVJLR1JFWT1xLkRBUktHUkFZO3EuREFSS0tIQUtJPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCREI3NkIiKSk7cS5EQVJLTUFHRU5UQT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEIwMDhCIikpO3EuREFSS09MSVZFR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzU1NkIyRiIpKTtxLkRBUktPUkFOR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGOEMwMCIpKTtxLkRBUktPUkNISUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzk5MzJDQyIpKTtxLkRBUktSRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzhCMDAwMCIpKTtxLkRBUktTQUxNT049T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0U5OTY3QSIpKTtxLkRBUktTRUFHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEZCQzhGIikpO3EuREFSS1NMQVRFQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDgzRDhCIikpO3EuREFSS1NMQVRFR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMkY0RjRGIikpO3EuREFSS1NMQVRFR1JFWT1xLkRBUktTTEFURUdSQVk7cS5EQVJLVFVSUVVPSVNFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMENFRDEiKSk7cS5EQVJLVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5NDAwRDMiKSk7cS5ERUVQUElOSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkYxNDkzIikpO3EuREVFUFNLWUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwQkZGRiIpKTtxLkRJTUdSQVk9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzY5Njk2OSIpKTtxLkRJTUdSRVk9cS5ESU1HUkFZO3EuRE9ER0VSQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMUU5MEZGIikpO3EuRklSRUJSSUNLPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCMjIyMjIiKSk7cS5GTE9SQUxXSElURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGQUYwIikpO3EuRk9SRVNUR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzIyOEIyMiIpKTtxLkZVQ0hTSUE9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDBGRiIpKTtxLkdBSU5TQk9STz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRENEQ0RDIikpO3EuR0hPU1RXSElURT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjhGOEZGIikpO3EuR09MRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZENzAwIikpO3EuR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEQUE1MjAiKSk7cS5HUkFZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4MDgwODAiKSk7cS5HUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDA4MDAwIikpO3EuR1JFRU5ZRUxMT1c9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0FERkYyRiIpKTtxLkdSRVk9cS5HUkFZO3EuSE9ORVlERVc9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRkZGMCIpKTtxLkhPVFBJTks9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGNjlCNCIpKTtxLklORElBTlJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQ0Q1QzVDIikpO3EuSU5ESUdPPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM0QjAwODIiKSk7cS5JVk9SWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGRkYwIikpO3EuS0hBS0k9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0YwRTY4QyIpKTtxLkxBVkVOREVSPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFNkU2RkEiKSk7cS5MQVZFTkRBUl9CTFVTSD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGMEY1IikpO3EuTEFXTkdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM3Q0ZDMDAiKSk7cS5MRU1PTkNISUZGT049T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkFDRCIpKTtxLkxJR0hUQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQUREOEU2IikpO3EuTElHSFRDT1JBTD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjA4MDgwIikpO3EuTElHSFRDWUFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFMEZGRkYiKSk7cS5MSUdIVEdPTERFTlJPRFlFTExPVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkFGQUQyIikpO3EuTElHSFRHUkFZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEM0QzRDMiKSk7cS5MSUdIVEdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM5MEVFOTAiKSk7cS5MSUdIVEdSRVk9cS5MSUdIVEdSQVk7cS5MSUdIVFBJTks9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGQjZDMSIpKTtxLkxJR0hUU0VBR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzIwQjJBQSIpKTtxLkxJR0hUU0tZQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODdDRUZBIikpO3EuTElHSFRTTEFURUdSQVk9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzc3ODg5OSIpKTtxLkxJR0hUU0xBVEVHUkVZPXEuTElHSFRTTEFURUdSQVk7cS5MSUdIVFNURUVMQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjBDNERFIikpO3EuTElHSFRZRUxMT1c9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkZFMCIpKTtxLkxJTUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwRkYwMCIpKTtxLkxJTUVHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMzJDRDMyIikpO3EuTElORU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZBRjBFNiIpKTtxLk1BR0VOVEE9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDBGRiIpKTtxLk1BUk9PTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODAwMDAwIikpO3EuTUVESVVNQVFVQU1BUklORT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNjZDREFBIikpO3EuTUVESVVNQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMDAwMENEIikpO3EuTUVESVVNT1JDSElEPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNCQTU1RDMiKSk7cS5NRURJVU1QVVJQTEU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzkzNzBEQiIpKTtxLk1FRElVTVNFQUdSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMzQ0IzNzEiKSk7cS5NRURJVU1TTEFURUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzdCNjhFRSIpKTtxLk1FRElVTVNQUklOR0dSRUVOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMEZBOUEiKSk7cS5NRURJVU1UVVJRVU9JU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzQ4RDFDQyIpKTtxLk1FRElVTVZJT0xFVFJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQzcxNTg1IikpO3EuTUlETklHSFRCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMxOTE5NzAiKSk7cS5NSU5UQ1JFQU09T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RkZGQSIpKTtxLk1JU1RZUk9TRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZFNEUxIikpO3EuTU9DQ0FTSU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRTRCNSIpKTtxLk5BVkFKT1dISVRFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGRkRFQUQiKSk7cS5OQVZZPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDAwODAiKSk7cS5PTERMQUNFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGREY1RTYiKSk7cS5PTElWRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjODA4MDAwIikpO3EuT0xJVkVEUkFCPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM2QjhFMjMiKSk7cS5PUkFOR0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGQTUwMCIpKTtxLk9SQU5HRVJFRD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkY0NTAwIikpO3EuT1JDSElEPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEQTcwRDYiKSk7cS5QQUxFR09MREVOUk9EPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFRUU4QUEiKSk7cS5QQUxFR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzk4RkI5OCIpKTtxLlBBTEVUVVJRVU9JU0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0FGRUVFRSIpKTtxLlBBTEVWSU9MRVRSRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0RCNzA5MyIpKTtxLlBBUEFZQVdISVA9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRUZENSIpKTtxLlBFQUNIUFVGRj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZEQUI5IikpO3EuUEVSVT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQ0Q4NTNGIikpO3EuUElOSz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZDMENCIikpO3EuUExVTT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRERBMEREIikpO3EuUE9XREVSQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQjBFMEU2IikpO3EuUFVSUExFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4MDAwODAiKSk7cS5SRUQ9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGMDAwMCIpKTtxLlJPU1lCUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQkM4RjhGIikpO3EuUk9ZQUxCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM0MTY5RTEiKSk7cS5TQURETEVCUk9XTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjOEI0NTEzIikpO3EuU0FMTU9OPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGQTgwNzIiKSk7cS5TQU5EWUJST1dOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNGNEE0NjAiKSk7cS5TRUFHUkVFTj1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjMkU4QjU3IikpO3EuU0VBU0hFTEw9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRjVFRSIpKTtxLlNJRU5OQT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjQTA1MjJEIikpO3EuU0lMVkVSPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNDMEMwQzAiKSk7cS5TS1lCTFVFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiM4N0NFRUIiKSk7cS5TTEFURUJMVUU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzZBNUFDRCIpKTtxLlNMQVRFR1JBWT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNzA4MDkwIikpO3EuU0xBVEVHUkVZPXEuU0xBVEVHUkFZO3EuU05PVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGQUZBIikpO3EuU1BSSU5HR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzAwRkY3RiIpKTtxLlNURUVMQkxVRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDY4MkI0IikpO3EuVEFOPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEMkI0OEMiKSk7cS5URUFMPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiMwMDgwODAiKSk7cS5USElTVExFPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNEOEJGRDgiKSk7cS5UT01BVE89T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGNjM0NyIpKTtxLlRVUlFVT0lTRT1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjNDBFMEQwIikpO3EuVklPTEVUPU9iamVjdC5mcmVlemUocS5mcm9tQ3NzQ29sb3JTdHJpbmcoIiNFRTgyRUUiKSk7cS5XSEVBVD1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRjVERUIzIikpO3EuV0hJVEU9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0ZGRkZGRiIpKTtxLldISVRFU01PS0U9T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiI0Y1RjVGNSIpKTtxLllFTExPVz1PYmplY3QuZnJlZXplKHEuZnJvbUNzc0NvbG9yU3RyaW5nKCIjRkZGRjAwIikpO3EuWUVMTE9XR1JFRU49T2JqZWN0LmZyZWV6ZShxLmZyb21Dc3NDb2xvclN0cmluZygiIzlBQ0QzMiIpKTtxLlRSQU5TUEFSRU5UPU9iamVjdC5mcmVlemUobmV3IHEoMCwwLDAsMCkpO29lPXF9KTtmdW5jdGlvbiBYRih0LGUsbixvLHIpe2xldCBpPXZFO2kubGVuZ3RoPXI7bGV0IHMsZj1uLnJlZCx1PW4uZ3JlZW4sYz1uLmJsdWUsbD1uLmFscGhhLHA9by5yZWQsZD1vLmdyZWVuLG09by5ibHVlLF89by5hbHBoYTtpZihvZS5lcXVhbHMobixvKSl7Zm9yKHM9MDtzPHI7cysrKWlbc109b2UuY2xvbmUobik7cmV0dXJuIGl9bGV0IGc9KHAtZikvcixiPShkLXUpL3Isdz0obS1jKS9yLE89KF8tbCkvcjtmb3Iocz0wO3M8cjtzKyspaVtzXT1uZXcgb2UoZitzKmcsdStzKmIsYytzKncsbCtzKk8pO3JldHVybiBpfWZ1bmN0aW9uIFFmKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucyxuPXQuY29sb3JzLG89eCh0LndpZHRoLDEpLHI9eCh0LmNvbG9yc1BlclZlcnRleCwhMSk7aWYoIWgoZSl8fGUubGVuZ3RoPDIpdGhyb3cgbmV3IEYoIkF0IGxlYXN0IHR3byBwb3NpdGlvbnMgYXJlIHJlcXVpcmVkLiIpO2lmKHR5cGVvZiBvIT0ibnVtYmVyIil0aHJvdyBuZXcgRigid2lkdGggbXVzdCBiZSBhIG51bWJlciIpO2lmKGgobikmJihyJiZuLmxlbmd0aDxlLmxlbmd0aHx8IXImJm4ubGVuZ3RoPGUubGVuZ3RoLTEpKXRocm93IG5ldyBGKCJjb2xvcnMgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX2NvbG9ycz1uLHRoaXMuX3dpZHRoPW8sdGhpcy5fY29sb3JzUGVyVmVydGV4PXIsdGhpcy5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKHgodC52ZXJ0ZXhGb3JtYXQsZHQuREVGQVVMVCkpLHRoaXMuX2FyY1R5cGU9eCh0LmFyY1R5cGUsX2UuR0VPREVTSUMpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpKSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVQb2x5bGluZUdlb21ldHJ5IjtsZXQgaT0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoO2krPWgobik/MStuLmxlbmd0aCpvZS5wYWNrZWRMZW5ndGg6MSx0aGlzLnBhY2tlZExlbmd0aD1pKyQucGFja2VkTGVuZ3RoK2R0LnBhY2tlZExlbmd0aCs0fXZhciB2RSxMRSxERSxiYyxQRSxNRSxORSxJRSxoeSxGRT1aKCgpPT57ZmMoKTtqcigpO3ZlKCk7RnQoKTtNYSgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtMcCgpOyRlKCk7V3QoKTtnYSgpO3RuKCk7Um8oKTt2RT1bXTtRZi5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX2NvbG9ycztmb3IoaT1oKHMpP3MubGVuZ3RoOjAsZVtuKytdPWksbz0wO288aTsrK28sbis9b2UucGFja2VkTGVuZ3RoKW9lLnBhY2soc1tvXSxlLG4pO3JldHVybiAkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1kdC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX3dpZHRoLGVbbisrXT10Ll9jb2xvcnNQZXJWZXJ0ZXg/MTowLGVbbisrXT10Ll9hcmNUeXBlLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07TEU9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxERT1uZXcgZHQsYmM9e3Bvc2l0aW9uczp2b2lkIDAsY29sb3JzOnZvaWQgMCxlbGxpcHNvaWQ6TEUsdmVydGV4Rm9ybWF0OkRFLHdpZHRoOnZvaWQgMCxjb2xvcnNQZXJWZXJ0ZXg6dm9pZCAwLGFyY1R5cGU6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMH07UWYudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtlPXgoZSwwKTtsZXQgbyxyPXRbZSsrXSxpPW5ldyBBcnJheShyKTtmb3Iobz0wO288cjsrK28sZSs9YS5wYWNrZWRMZW5ndGgpaVtvXT1hLnVucGFjayh0LGUpO3I9dFtlKytdO2xldCBzPXI+MD9uZXcgQXJyYXkocik6dm9pZCAwO2ZvcihvPTA7bzxyOysrbyxlKz1vZS5wYWNrZWRMZW5ndGgpc1tvXT1vZS51bnBhY2sodCxlKTtsZXQgZj0kLnVucGFjayh0LGUsTEUpO2UrPSQucGFja2VkTGVuZ3RoO2xldCB1PWR0LnVucGFjayh0LGUsREUpO2UrPWR0LnBhY2tlZExlbmd0aDtsZXQgYz10W2UrK10sbD10W2UrK109PT0xLHA9dFtlKytdLGQ9dFtlXTtyZXR1cm4gaChuKT8obi5fcG9zaXRpb25zPWksbi5fY29sb3JzPXMsbi5fZWxsaXBzb2lkPSQuY2xvbmUoZixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZSh1LG4uX3ZlcnRleEZvcm1hdCksbi5fd2lkdGg9YyxuLl9jb2xvcnNQZXJWZXJ0ZXg9bCxuLl9hcmNUeXBlPXAsbi5fZ3JhbnVsYXJpdHk9ZCxuKTooYmMucG9zaXRpb25zPWksYmMuY29sb3JzPXMsYmMud2lkdGg9YyxiYy5jb2xvcnNQZXJWZXJ0ZXg9bCxiYy5hcmNUeXBlPXAsYmMuZ3JhbnVsYXJpdHk9ZCxuZXcgUWYoYmMpKX07UEU9bmV3IGEsTUU9bmV3IGEsTkU9bmV3IGEsSUU9bmV3IGE7UWYuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fd2lkdGgsbj10Ll92ZXJ0ZXhGb3JtYXQsbz10Ll9jb2xvcnMscj10Ll9jb2xvcnNQZXJWZXJ0ZXgsaT10Ll9hcmNUeXBlLHM9dC5fZ3JhbnVsYXJpdHksZj10Ll9lbGxpcHNvaWQsdSxjLGwscD1bXSxkPXhuKHQuX3Bvc2l0aW9ucyxhLmVxdWFsc0Vwc2lsb24sITEscCk7aWYoaChvKSYmcC5sZW5ndGg+MCl7bGV0IEI9MCxqPXBbMF07bz1vLmZpbHRlcihmdW5jdGlvbihILGspe2xldCBLPSExO3JldHVybiByP0s9az09PWp8fGs9PT0wJiZqPT09MTpLPWsrMT09PWosSz8oQisrLGo9cFtCXSwhMSk6ITB9KX1sZXQgbT1kLmxlbmd0aDtpZihtPDJ8fGU8PTApcmV0dXJuO2lmKGk9PT1fZS5HRU9ERVNJQ3x8aT09PV9lLlJIVU1CKXtsZXQgQixqO2k9PT1fZS5HRU9ERVNJQz8oQj1NLmNob3JkTGVuZ3RoKHMsZi5tYXhpbXVtUmFkaXVzKSxqPUFuLm51bWJlck9mUG9pbnRzKTooQj1zLGo9QW4ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmUpO2xldCBIPUFuLmV4dHJhY3RIZWlnaHRzKGQsZik7aWYoaChvKSl7bGV0IGs9MTtmb3IodT0wO3U8bS0xOysrdSlrKz1qKGRbdV0sZFt1KzFdLEIpO2xldCBLPW5ldyBBcnJheShrKSxYPTA7Zm9yKHU9MDt1PG0tMTsrK3Upe2xldCBSPWRbdV0sb3Q9ZFt1KzFdLGF0PW9bdV0scHQ9aihSLG90LEIpO2lmKHImJnU8ayl7bGV0IHl0PW9bdSsxXSxydD1YRihSLG90LGF0LHl0LHB0KSxQdD1ydC5sZW5ndGg7Zm9yKGM9MDtjPFB0OysrYylLW1grK109cnRbY119ZWxzZSBmb3IoYz0wO2M8cHQ7KytjKUtbWCsrXT1vZS5jbG9uZShhdCl9S1tYXT1vZS5jbG9uZShvW28ubGVuZ3RoLTFdKSxvPUssdkUubGVuZ3RoPTB9aT09PV9lLkdFT0RFU0lDP2Q9QW4uZ2VuZXJhdGVDYXJ0ZXNpYW5BcmMoe3Bvc2l0aW9uczpkLG1pbkRpc3RhbmNlOkIsZWxsaXBzb2lkOmYsaGVpZ2h0Okh9KTpkPUFuLmdlbmVyYXRlQ2FydGVzaWFuUmh1bWJBcmMoe3Bvc2l0aW9uczpkLGdyYW51bGFyaXR5OkIsZWxsaXBzb2lkOmYsaGVpZ2h0Okh9KX1tPWQubGVuZ3RoO2xldCBfPW0qNC00LGc9bmV3IEZsb2F0NjRBcnJheShfKjMpLGI9bmV3IEZsb2F0NjRBcnJheShfKjMpLHc9bmV3IEZsb2F0NjRBcnJheShfKjMpLE89bmV3IEZsb2F0MzJBcnJheShfKjIpLEU9bi5zdD9uZXcgRmxvYXQzMkFycmF5KF8qMik6dm9pZCAwLFQ9aChvKT9uZXcgVWludDhBcnJheShfKjQpOnZvaWQgMCxDPTAsTj0wLEk9MCxEPTAsdjtmb3IoYz0wO2M8bTsrK2Mpe2M9PT0wPyh2PVBFLGEuc3VidHJhY3QoZFswXSxkWzFdLHYpLGEuYWRkKGRbMF0sdix2KSk6dj1kW2MtMV0sYS5jbG9uZSh2LE5FKSxhLmNsb25lKGRbY10sTUUpLGM9PT1tLTE/KHY9UEUsYS5zdWJ0cmFjdChkW20tMV0sZFttLTJdLHYpLGEuYWRkKGRbbS0xXSx2LHYpKTp2PWRbYysxXSxhLmNsb25lKHYsSUUpO2xldCBCLGo7aChUKSYmKGMhPT0wJiYhcj9CPW9bYy0xXTpCPW9bY10sYyE9PW0tMSYmKGo9b1tjXSkpO2xldCBIPWM9PT0wPzI6MCxrPWM9PT1tLTE/Mjo0O2ZvcihsPUg7bDxrOysrbCl7YS5wYWNrKE1FLGcsQyksYS5wYWNrKE5FLGIsQyksYS5wYWNrKElFLHcsQyksQys9MztsZXQgSz1sLTI8MD8tMToxO2lmKE9bTisrXT0yKihsJTIpLTEsT1tOKytdPUsqZSxuLnN0JiYoRVtJKytdPWMvKG0tMSksRVtJKytdPU1hdGgubWF4KE9bTi0yXSwwKSksaChUKSl7bGV0IFg9bDwyP0I6ajtUW0QrK109b2UuZmxvYXRUb0J5dGUoWC5yZWQpLFRbRCsrXT1vZS5mbG9hdFRvQnl0ZShYLmdyZWVuKSxUW0QrK109b2UuZmxvYXRUb0J5dGUoWC5ibHVlKSxUW0QrK109b2UuZmxvYXRUb0J5dGUoWC5hbHBoYSl9fX1sZXQgTD1uZXcgaWU7TC5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmd9KSxMLnByZXZQb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmJ9KSxMLm5leHRQb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnd9KSxMLmV4cGFuZEFuZFdpZHRoPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZToyLHZhbHVlczpPfSksbi5zdCYmKEwuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOkV9KSksaChUKSYmKEwuY29sb3I9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6NCx2YWx1ZXM6VCxub3JtYWxpemU6ITB9KSk7bGV0IFU9RHQuY3JlYXRlVHlwZWRBcnJheShfLG0qNi02KSxBPTAsUz0wLFA9bS0xO2ZvcihjPTA7YzxQOysrYylVW1MrK109QSxVW1MrK109QSsyLFVbUysrXT1BKzEsVVtTKytdPUErMSxVW1MrK109QSsyLFVbUysrXT1BKzMsQSs9NDtyZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOkwsaW5kaWNlczpVLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTLGJvdW5kaW5nU3BoZXJlOkF0LmZyb21Qb2ludHMoZCksZ2VvbWV0cnlUeXBlOk1pLlBPTFlMSU5FU30pfTtoeT1RZn0pO3ZhciBfeT17fTtkZShfeSx7ZGVmYXVsdDooKT0+JEZ9KTtmdW5jdGlvbiBZRih0LGUpe3JldHVybiBoKGUpJiYodD1oeS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxoeS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgJEYseXk9WigoKT0+e2Z0KCk7WnQoKTtGRSgpOyRGPVlGfSk7ZnVuY3Rpb24gWkYodCxlLG4sbyl7bGV0IHI9bmV3IGllO28ucG9zaXRpb24mJihyLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6dH0pKTtsZXQgaT1lLmxlbmd0aCxzPXQubGVuZ3RoLzMsZj0ocy1pKjIpLyhpKjIpLHU9UGUudHJpYW5ndWxhdGUoZSksYz0oZi0xKSppKjYrdS5sZW5ndGgqMixsPUR0LmNyZWF0ZVR5cGVkQXJyYXkocyxjKSxwLGQsbSxfLGcsYix3PWkqMixPPTA7Zm9yKHA9MDtwPGYtMTtwKyspe2ZvcihkPTA7ZDxpLTE7ZCsrKW09ZCoyK3AqaSoyLGI9bSt3LF89bSsxLGc9Xyt3LGxbTysrXT1fLGxbTysrXT1tLGxbTysrXT1nLGxbTysrXT1nLGxbTysrXT1tLGxbTysrXT1iO209aSoyLTIrcCppKjIsXz1tKzEsZz1fK3csYj1tK3csbFtPKytdPV8sbFtPKytdPW0sbFtPKytdPWcsbFtPKytdPWcsbFtPKytdPW0sbFtPKytdPWJ9aWYoby5zdHx8by50YW5nZW50fHxvLmJpdGFuZ2VudCl7bGV0IEM9bmV3IEZsb2F0MzJBcnJheShzKjIpLE49MS8oZi0xKSxJPTEvbi5oZWlnaHQsRD1uLmhlaWdodC8yLHYsTCxVPTA7Zm9yKHA9MDtwPGY7cCsrKXtmb3Iodj1wKk4sTD1JKihlWzBdLnkrRCksQ1tVKytdPXYsQ1tVKytdPUwsZD0xO2Q8aTtkKyspTD1JKihlW2RdLnkrRCksQ1tVKytdPXYsQ1tVKytdPUwsQ1tVKytdPXYsQ1tVKytdPUw7TD1JKihlWzBdLnkrRCksQ1tVKytdPXYsQ1tVKytdPUx9Zm9yKGQ9MDtkPGk7ZCsrKXY9MCxMPUkqKGVbZF0ueStEKSxDW1UrK109dixDW1UrK109TDtmb3IoZD0wO2Q8aTtkKyspdj0oZi0xKSpOLEw9SSooZVtkXS55K0QpLENbVSsrXT12LENbVSsrXT1MO3Iuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOm5ldyBGbG9hdDMyQXJyYXkoQyl9KX1sZXQgRT1zLWkqMjtmb3IocD0wO3A8dS5sZW5ndGg7cCs9Myl7bGV0IEM9dVtwXStFLE49dVtwKzFdK0UsST11W3ArMl0rRTtsW08rK109QyxsW08rK109TixsW08rK109SSxsW08rK109SStpLGxbTysrXT1OK2ksbFtPKytdPUMraX1sZXQgVD1uZXcgVXQoe2F0dHJpYnV0ZXM6cixpbmRpY2VzOmwsYm91bmRpbmdTcGhlcmU6QXQuZnJvbVZlcnRpY2VzKHQpLHByaW1pdGl2ZVR5cGU6QnQuVFJJQU5HTEVTfSk7aWYoby5ub3JtYWwmJihUPVZlLmNvbXB1dGVOb3JtYWwoVCkpLG8udGFuZ2VudHx8by5iaXRhbmdlbnQpe3RyeXtUPVZlLmNvbXB1dGVUYW5nZW50QW5kQml0YW5nZW50KFQpfWNhdGNoe25hKCJwb2x5bGluZS12b2x1bWUtdGFuZ2VudC1iaXRhbmdlbnQiLCJVbmFibGUgdG8gY29tcHV0ZSB0YW5nZW50cyBhbmQgYml0YW5nZW50cyBmb3IgcG9seWxpbmUgdm9sdW1lIGdlb21ldHJ5Iil9by50YW5nZW50fHwoVC5hdHRyaWJ1dGVzLnRhbmdlbnQ9dm9pZCAwKSxvLmJpdGFuZ2VudHx8KFQuYXR0cmlidXRlcy5iaXRhbmdlbnQ9dm9pZCAwKSxvLnN0fHwoVC5hdHRyaWJ1dGVzLnN0PXZvaWQgMCl9cmV0dXJuIFR9ZnVuY3Rpb24gdHUodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9seWxpbmVQb3NpdGlvbnMsbj10LnNoYXBlUG9zaXRpb25zO2lmKCFoKGUpKXRocm93IG5ldyBGKCJvcHRpb25zLnBvbHlsaW5lUG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJvcHRpb25zLnNoYXBlUG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX3NoYXBlPW4sdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoeCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpKSx0aGlzLl9jb3JuZXJUeXBlPXgodC5jb3JuZXJUeXBlLGZuLlJPVU5ERUQpLHRoaXMuX3ZlcnRleEZvcm1hdD1kdC5jbG9uZSh4KHQudmVydGV4Rm9ybWF0LGR0LkRFRkFVTFQpKSx0aGlzLl9ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlsaW5lVm9sdW1lR2VvbWV0cnkiO2xldCBvPTErZS5sZW5ndGgqYS5wYWNrZWRMZW5ndGg7bys9MStuLmxlbmd0aCp0dC5wYWNrZWRMZW5ndGgsdGhpcy5wYWNrZWRMZW5ndGg9byskLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGgrMn12YXIgQkUsVUUsSmYsUUYsZ3ksVkU9WigoKT0+e2pyKCk7UGYoKTt2ZSgpO1VlKCk7RnQoKTtGZSgpO2hjKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTtzaSgpOyRlKCk7V3QoKTt2cCgpO3FyKCk7aGQoKTt0bigpO1JvKCk7bGMoKTt0dS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX3NoYXBlO2ZvcihpPXMubGVuZ3RoLGVbbisrXT1pLG89MDtvPGk7KytvLG4rPXR0LnBhY2tlZExlbmd0aCl0dC5wYWNrKHNbb10sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGR0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9ZHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9jb3JuZXJUeXBlLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07QkU9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxVRT1uZXcgZHQsSmY9e3BvbHlsaW5lUG9zaXRpb25zOnZvaWQgMCxzaGFwZVBvc2l0aW9uczp2b2lkIDAsZWxsaXBzb2lkOkJFLHZlcnRleEZvcm1hdDpVRSxjb3JuZXJUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O3R1LnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcz1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPXR0LnBhY2tlZExlbmd0aClzW29dPXR0LnVucGFjayh0LGUpO2xldCBmPSQudW5wYWNrKHQsZSxCRSk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IHU9ZHQudW5wYWNrKHQsZSxVRSk7ZSs9ZHQucGFja2VkTGVuZ3RoO2xldCBjPXRbZSsrXSxsPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1pLG4uX3NoYXBlPXMsbi5fZWxsaXBzb2lkPSQuY2xvbmUoZixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZSh1LG4uX3ZlcnRleEZvcm1hdCksbi5fY29ybmVyVHlwZT1jLG4uX2dyYW51bGFyaXR5PWwsbik6KEpmLnBvbHlsaW5lUG9zaXRpb25zPWksSmYuc2hhcGVQb3NpdGlvbnM9cyxKZi5jb3JuZXJUeXBlPWMsSmYuZ3JhbnVsYXJpdHk9bCxuZXcgdHUoSmYpKX07UUY9bmV3IEhyO3R1LmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXhuKGUsYS5lcXVhbHNFcHNpbG9uKSxvPXQuX3NoYXBlO2lmKG89aHMucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZShvKSxuLmxlbmd0aDwyfHxvLmxlbmd0aDwzKXJldHVybjtQZS5jb21wdXRlV2luZGluZ09yZGVyMkQobyk9PT1Dby5DTE9DS1dJU0UmJm8ucmV2ZXJzZSgpO2xldCByPUhyLmZyb21Qb2ludHMobyxRRiksaT1ocy5jb21wdXRlUG9zaXRpb25zKG4sbyxyLHQsITApO3JldHVybiBaRihpLG8scix0Ll92ZXJ0ZXhGb3JtYXQpfTtneT10dX0pO3ZhciBBeT17fTtkZShBeSx7ZGVmYXVsdDooKT0+dEJ9KTtmdW5jdGlvbiBKRih0LGUpe3JldHVybiBoKGUpJiYodD1neS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxneS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgdEIsYnk9WigoKT0+e2Z0KCk7WnQoKTtWRSgpO3RCPUpGfSk7ZnVuY3Rpb24gZUIodCxlKXtsZXQgbj1uZXcgaWU7bi5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnR9KTtsZXQgbz1lLmxlbmd0aCxyPW4ucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLHM9dC5sZW5ndGgvMy9vLGY9RHQuY3JlYXRlVHlwZWRBcnJheShyLDIqbyoocysxKSksdSxjLGw9MDt1PTA7bGV0IHA9dSpvO2ZvcihjPTA7YzxvLTE7YysrKWZbbCsrXT1jK3AsZltsKytdPWMrcCsxO2ZvcihmW2wrK109by0xK3AsZltsKytdPXAsdT1zLTEscD11Km8sYz0wO2M8by0xO2MrKylmW2wrK109YytwLGZbbCsrXT1jK3ArMTtmb3IoZltsKytdPW8tMStwLGZbbCsrXT1wLHU9MDt1PHMtMTt1Kyspe2xldCBtPW8qdSxfPW0rbztmb3IoYz0wO2M8bztjKyspZltsKytdPWMrbSxmW2wrK109YytffXJldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6bixpbmRpY2VzOkR0LmNyZWF0ZVR5cGVkQXJyYXkocixmKSxib3VuZGluZ1NwaGVyZTpBdC5mcm9tVmVydGljZXModCkscHJpbWl0aXZlVHlwZTpCdC5MSU5FU30pfWZ1bmN0aW9uIG51KHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvbHlsaW5lUG9zaXRpb25zLG49dC5zaGFwZVBvc2l0aW9ucztpZighaChlKSl0aHJvdyBuZXcgRigib3B0aW9ucy5wb2x5bGluZVBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigib3B0aW9ucy5zaGFwZVBvc2l0aW9ucyBpcyByZXF1aXJlZC4iKTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9zaGFwZT1uLHRoaXMuX2VsbGlwc29pZD0kLmNsb25lKHgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSksdGhpcy5fY29ybmVyVHlwZT14KHQuY29ybmVyVHlwZSxmbi5ST1VOREVEKSx0aGlzLl9ncmFudWxhcml0eT14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVBvbHlsaW5lVm9sdW1lT3V0bGluZUdlb21ldHJ5IjtsZXQgbz0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoO28rPTErbi5sZW5ndGgqdHQucGFja2VkTGVuZ3RoLHRoaXMucGFja2VkTGVuZ3RoPW8rJC5wYWNrZWRMZW5ndGgrMn12YXIga0UsZXUsbkIsd3ksR0U9WigoKT0+e2pyKCk7UGYoKTt2ZSgpO1VlKCk7RnQoKTtGZSgpO2hjKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTskZSgpO1d0KCk7cXIoKTtoZCgpO3RuKCk7bGMoKTtudS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX3NoYXBlO2ZvcihpPXMubGVuZ3RoLGVbbisrXT1pLG89MDtvPGk7KytvLG4rPXR0LnBhY2tlZExlbmd0aCl0dC5wYWNrKHNbb10sZSxuKTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9jb3JuZXJUeXBlLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07a0U9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxldT17cG9seWxpbmVQb3NpdGlvbnM6dm9pZCAwLHNoYXBlUG9zaXRpb25zOnZvaWQgMCxlbGxpcHNvaWQ6a0UsaGVpZ2h0OnZvaWQgMCxjb3JuZXJUeXBlOnZvaWQgMCxncmFudWxhcml0eTp2b2lkIDB9O251LnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcz1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPXR0LnBhY2tlZExlbmd0aClzW29dPXR0LnVucGFjayh0LGUpO2xldCBmPSQudW5wYWNrKHQsZSxrRSk7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IHU9dFtlKytdLGM9dFtlXTtyZXR1cm4gaChuKT8obi5fcG9zaXRpb25zPWksbi5fc2hhcGU9cyxuLl9lbGxpcHNvaWQ9JC5jbG9uZShmLG4uX2VsbGlwc29pZCksbi5fY29ybmVyVHlwZT11LG4uX2dyYW51bGFyaXR5PWMsbik6KGV1LnBvbHlsaW5lUG9zaXRpb25zPWksZXUuc2hhcGVQb3NpdGlvbnM9cyxldS5jb3JuZXJUeXBlPXUsZXUuZ3JhbnVsYXJpdHk9YyxuZXcgbnUoZXUpKX07bkI9bmV3IEhyO251LmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXhuKGUsYS5lcXVhbHNFcHNpbG9uKSxvPXQuX3NoYXBlO2lmKG89aHMucmVtb3ZlRHVwbGljYXRlc0Zyb21TaGFwZShvKSxuLmxlbmd0aDwyfHxvLmxlbmd0aDwzKXJldHVybjtQZS5jb21wdXRlV2luZGluZ09yZGVyMkQobyk9PT1Dby5DTE9DS1dJU0UmJm8ucmV2ZXJzZSgpO2xldCByPUhyLmZyb21Qb2ludHMobyxuQiksaT1ocy5jb21wdXRlUG9zaXRpb25zKG4sbyxyLHQsITEpO3JldHVybiBlQihpLG8pfTt3eT1udX0pO3ZhciBUeT17fTtkZShUeSx7ZGVmYXVsdDooKT0+ckJ9KTtmdW5jdGlvbiBvQih0LGUpe3JldHVybiBoKGUpJiYodD13eS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx3eS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgckIsT3k9WigoKT0+e2Z0KCk7WnQoKTtHRSgpO3JCPW9CfSk7ZnVuY3Rpb24gSEUodCxlLG4sbyxyLGkscyl7bGV0IGY9TWF0aC5jb3MoZSksdT1vKmYsYz1uKmYsbD1NYXRoLnNpbihlKSxwPW8qbCxkPW4qbDtvdS5fZWxsaXBzb2lkPSQuZGVmYXVsdCxTcj1vdS5wcm9qZWN0KHQsU3IpLFNyPWEuc3VidHJhY3QoU3IsRGQsU3IpO2xldCBtPVlvLmZyb21Sb3RhdGlvbihlLHNCKTtTcj1Zby5tdWx0aXBseUJ5VmVjdG9yKG0sU3IsU3IpLFNyPWEuYWRkKFNyLERkLFNyKSx0PW91LnVucHJvamVjdChTcix0KSxpLT0xLHMtPTE7bGV0IF89dC5sYXRpdHVkZSxnPV8raSpkLGI9Xy11KnMsdz1fLXUqcytpKmQsTz1NYXRoLm1heChfLGcsYix3KSxFPU1hdGgubWluKF8sZyxiLHcpLFQ9dC5sb25naXR1ZGUsQz1UK2kqYyxOPVQrcypwLEk9VCtzKnAraSpjLEQ9TWF0aC5tYXgoVCxDLE4sSSksdj1NYXRoLm1pbihULEMsTixJKTtyZXR1cm57bm9ydGg6Tyxzb3V0aDpFLGVhc3Q6RCx3ZXN0OnYsZ3JhbllDb3M6dSxncmFuWVNpbjpwLGdyYW5YQ29zOmMsZ3JhblhTaW46ZCxud0Nvcm5lcjp0fX12YXIgekUsakUsaUIsRXksc0IsU3IsY0IsRGQsb3UsZ28sUnk9WigoKT0+e0Z0KCk7SWUoKTtmdCgpO0h0KCk7WnQoKTtTaSgpO1d0KCk7d2YoKTtUbigpO3pFPU1hdGguY29zLGpFPU1hdGguc2luLGlCPU1hdGguc3FydCxFeT17fTtFeS5jb21wdXRlUG9zaXRpb249ZnVuY3Rpb24odCxlLG4sbyxyLGkscyl7bGV0IGY9ZS5yYWRpaVNxdWFyZWQsdT10Lm53Q29ybmVyLGM9dC5ib3VuZGluZ1JlY3RhbmdsZSxsPXUubGF0aXR1ZGUtdC5ncmFuWUNvcypvK3IqdC5ncmFuWFNpbixwPXpFKGwpLGQ9akUobCksbT1mLnoqZCxfPXUubG9uZ2l0dWRlK28qdC5ncmFuWVNpbityKnQuZ3JhblhDb3MsZz1wKnpFKF8pLGI9cCpqRShfKSx3PWYueCpnLE89Zi55KmIsRT1pQih3KmcrTypiK20qZCk7aWYoaS54PXcvRSxpLnk9Ty9FLGkuej1tL0Usbil7bGV0IFQ9dC5zdE53Q29ybmVyO2goVCk/KGw9VC5sYXRpdHVkZS10LnN0R3JhbllDb3MqbytyKnQuc3RHcmFuWFNpbixfPVQubG9uZ2l0dWRlK28qdC5zdEdyYW5ZU2luK3IqdC5zdEdyYW5YQ29zLHMueD0oXy10LnN0V2VzdCkqdC5sb25TY2FsYXIscy55PShsLXQuc3RTb3V0aCkqdC5sYXRTY2FsYXIpOihzLng9KF8tYy53ZXN0KSp0LmxvblNjYWxhcixzLnk9KGwtYy5zb3V0aCkqdC5sYXRTY2FsYXIpfX07c0I9bmV3IFlvLFNyPW5ldyBhLGNCPW5ldyBjdCxEZD1uZXcgYSxvdT1uZXcgSm47RXkuY29tcHV0ZU9wdGlvbnM9ZnVuY3Rpb24odCxlLG4sbyxyLGkscyl7bGV0IGY9dC5lYXN0LHU9dC53ZXN0LGM9dC5ub3J0aCxsPXQuc291dGgscD0hMSxkPSExO2M9PT1NLlBJX09WRVJfVFdPJiYocD0hMCksbD09PS1NLlBJX09WRVJfVFdPJiYoZD0hMCk7bGV0IG0sXz1jLWw7dT5mP209TS5UV09fUEktdStmOm09Zi11O2xldCBnPU1hdGguY2VpbChtL2UpKzEsYj1NYXRoLmNlaWwoXy9lKSsxLHc9bS8oZy0xKSxPPV8vKGItMSksRT1OdC5ub3J0aHdlc3QodCxpKSxUPU50LmNlbnRlcih0LGNCKTsobiE9PTB8fG8hPT0wKSYmKFQubG9uZ2l0dWRlPEUubG9uZ2l0dWRlJiYoVC5sb25naXR1ZGUrPU0uVFdPX1BJKSxvdS5fZWxsaXBzb2lkPSQuZGVmYXVsdCxEZD1vdS5wcm9qZWN0KFQsRGQpKTtsZXQgQz1PLE49dyxJPTAsRD0wLHY9TnQuY2xvbmUodCxyKSxMPXtncmFuWUNvczpDLGdyYW5ZU2luOkksZ3JhblhDb3M6TixncmFuWFNpbjpELG53Q29ybmVyOkUsYm91bmRpbmdSZWN0YW5nbGU6dix3aWR0aDpnLGhlaWdodDpiLG5vcnRoQ2FwOnAsc291dGhDYXA6ZH07aWYobiE9PTApe2xldCBVPUhFKEUsbix3LE8sVCxnLGIpO2lmKGM9VS5ub3J0aCxsPVUuc291dGgsZj1VLmVhc3QsdT1VLndlc3QsYzwtTS5QSV9PVkVSX1RXT3x8Yz5NLlBJX09WRVJfVFdPfHxsPC1NLlBJX09WRVJfVFdPfHxsPk0uUElfT1ZFUl9UV08pdGhyb3cgbmV3IEYoIlJvdGF0ZWQgcmVjdGFuZ2xlIGlzIGludmFsaWQuICBJdCBjcm9zc2VzIG92ZXIgZWl0aGVyIHRoZSBub3J0aCBvciBzb3V0aCBwb2xlLiIpO0wuZ3JhbllDb3M9VS5ncmFuWUNvcyxMLmdyYW5ZU2luPVUuZ3JhbllTaW4sTC5ncmFuWENvcz1VLmdyYW5YQ29zLEwuZ3JhblhTaW49VS5ncmFuWFNpbix2Lm5vcnRoPWMsdi5zb3V0aD1sLHYuZWFzdD1mLHYud2VzdD11fWlmKG8hPT0wKXtuPW4tbztsZXQgVT1OdC5ub3J0aHdlc3QodixzKSxBPUhFKFUsbix3LE8sVCxnLGIpO0wuc3RHcmFuWUNvcz1BLmdyYW5ZQ29zLEwuc3RHcmFuWENvcz1BLmdyYW5YQ29zLEwuc3RHcmFuWVNpbj1BLmdyYW5ZU2luLEwuc3RHcmFuWFNpbj1BLmdyYW5YU2luLEwuc3ROd0Nvcm5lcj1VLEwuc3RXZXN0PUEud2VzdCxMLnN0U291dGg9QS5zb3V0aH1yZXR1cm4gTH07Z289RXl9KTtmdW5jdGlvbiBaRSh0LGUpe2xldCBuPW5ldyBVdCh7YXR0cmlidXRlczpuZXcgaWUscHJpbWl0aXZlVHlwZTpCdC5UUklBTkdMRVN9KTtyZXR1cm4gbi5hdHRyaWJ1dGVzLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZS5wb3NpdGlvbnN9KSx0Lm5vcm1hbCYmKG4uYXR0cmlidXRlcy5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUubm9ybWFsc30pKSx0LnRhbmdlbnQmJihuLmF0dHJpYnV0ZXMudGFuZ2VudD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6ZS50YW5nZW50c30pKSx0LmJpdGFuZ2VudCYmKG4uYXR0cmlidXRlcy5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmUuYml0YW5nZW50c30pKSxufWZ1bmN0aW9uIGxCKHQsZSxuLG8pe2xldCByPXQubGVuZ3RoLGk9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShyKTp2b2lkIDAscz1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShyKTp2b2lkIDAsZj1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KHIpOnZvaWQgMCx1PTAsYz1ZRSxsPVhFLHA9V0U7aWYoZS5ub3JtYWx8fGUudGFuZ2VudHx8ZS5iaXRhbmdlbnQpZm9yKGxldCBkPTA7ZDxyO2QrPTMpe2xldCBtPWEuZnJvbUFycmF5KHQsZCxTeSksXz11KzEsZz11KzI7cD1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChtLHApLChlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKGEuY3Jvc3MoYS5VTklUX1oscCxsKSxRLm11bHRpcGx5QnlWZWN0b3IobyxsLGwpLGEubm9ybWFsaXplKGwsbCksZS5iaXRhbmdlbnQmJmEubm9ybWFsaXplKGEuY3Jvc3MocCxsLGMpLGMpKSxlLm5vcm1hbCYmKGlbdV09cC54LGlbX109cC55LGlbZ109cC56KSxlLnRhbmdlbnQmJihzW3VdPWwueCxzW19dPWwueSxzW2ddPWwueiksZS5iaXRhbmdlbnQmJihmW3VdPWMueCxmW19dPWMueSxmW2ddPWMueiksdSs9M31yZXR1cm4gWkUoZSx7cG9zaXRpb25zOnQsbm9ybWFsczppLHRhbmdlbnRzOnMsYml0YW5nZW50czpmfSl9ZnVuY3Rpb24gcEIodCxlLG4pe2xldCBvPXQubGVuZ3RoLHI9ZS5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShvKTp2b2lkIDAsaT1lLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShvKTp2b2lkIDAscz1lLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KG8pOnZvaWQgMCxmPTAsdT0wLGM9MCxsPSEwLHA9WUUsZD1YRSxtPVdFO2lmKGUubm9ybWFsfHxlLnRhbmdlbnR8fGUuYml0YW5nZW50KWZvcihsZXQgXz0wO188bztfKz02KXtsZXQgZz1hLmZyb21BcnJheSh0LF8sU3kpLGI9YS5mcm9tQXJyYXkodCwoXys2KSVvLEN5KTtpZihsKXtsZXQgdz1hLmZyb21BcnJheSh0LChfKzMpJW8sUUUpO2Euc3VidHJhY3QoYixnLGIpLGEuc3VidHJhY3QodyxnLHcpLG09YS5ub3JtYWxpemUoYS5jcm9zcyh3LGIsbSksbSksbD0hMX1hLmVxdWFsc0Vwc2lsb24oYixnLE0uRVBTSUxPTjEwKSYmKGw9ITApLChlLnRhbmdlbnR8fGUuYml0YW5nZW50KSYmKHA9bi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZyxwKSxlLnRhbmdlbnQmJihkPWEubm9ybWFsaXplKGEuY3Jvc3MocCxtLGQpLGQpKSksZS5ub3JtYWwmJihyW2YrK109bS54LHJbZisrXT1tLnkscltmKytdPW0ueixyW2YrK109bS54LHJbZisrXT1tLnkscltmKytdPW0ueiksZS50YW5nZW50JiYoaVt1KytdPWQueCxpW3UrK109ZC55LGlbdSsrXT1kLnosaVt1KytdPWQueCxpW3UrK109ZC55LGlbdSsrXT1kLnopLGUuYml0YW5nZW50JiYoc1tjKytdPXAueCxzW2MrK109cC55LHNbYysrXT1wLnosc1tjKytdPXAueCxzW2MrK109cC55LHNbYysrXT1wLnopfXJldHVybiBaRShlLHtwb3NpdGlvbnM6dCxub3JtYWxzOnIsdGFuZ2VudHM6aSxiaXRhbmdlbnRzOnN9KX1mdW5jdGlvbiBKRSh0LGUpe2xldCBuPXQuX3ZlcnRleEZvcm1hdCxvPXQuX2VsbGlwc29pZCxyPWUuaGVpZ2h0LGk9ZS53aWR0aCxzPWUubm9ydGhDYXAsZj1lLnNvdXRoQ2FwLHU9MCxjPXIsbD1yLHA9MDtzJiYodT0xLGwtPTEscCs9MSksZiYmKGMtPTEsbC09MSxwKz0xKSxwKz1pKmw7bGV0IGQ9bi5wb3NpdGlvbj9uZXcgRmxvYXQ2NEFycmF5KHAqMyk6dm9pZCAwLG09bi5zdD9uZXcgRmxvYXQzMkFycmF5KHAqMik6dm9pZCAwLF89MCxnPTAsYj1TeSx3PWFCLE89TnVtYmVyLk1BWF9WQUxVRSxFPU51bWJlci5NQVhfVkFMVUUsVD0tTnVtYmVyLk1BWF9WQUxVRSxDPS1OdW1iZXIuTUFYX1ZBTFVFO2ZvcihsZXQgQT11O0E8YzsrK0EpZm9yKGxldCBTPTA7UzxpOysrUylnby5jb21wdXRlUG9zaXRpb24oZSxvLG4uc3QsQSxTLGIsdyksZFtfKytdPWIueCxkW18rK109Yi55LGRbXysrXT1iLnosbi5zdCYmKG1bZysrXT13LngsbVtnKytdPXcueSxPPU1hdGgubWluKE8sdy54KSxFPU1hdGgubWluKEUsdy55KSxUPU1hdGgubWF4KFQsdy54KSxDPU1hdGgubWF4KEMsdy55KSk7aWYocyYmKGdvLmNvbXB1dGVQb3NpdGlvbihlLG8sbi5zdCwwLDAsYix3KSxkW18rK109Yi54LGRbXysrXT1iLnksZFtfKytdPWIueixuLnN0JiYobVtnKytdPXcueCxtW2crK109dy55LE89dy54LEU9dy55LFQ9dy54LEM9dy55KSksZiYmKGdvLmNvbXB1dGVQb3NpdGlvbihlLG8sbi5zdCxyLTEsMCxiLHcpLGRbXysrXT1iLngsZFtfKytdPWIueSxkW19dPWIueixuLnN0JiYobVtnKytdPXcueCxtW2ddPXcueSxPPU1hdGgubWluKE8sdy54KSxFPU1hdGgubWluKEUsdy55KSxUPU1hdGgubWF4KFQsdy54KSxDPU1hdGgubWF4KEMsdy55KSkpLG4uc3QmJihPPDB8fEU8MHx8VD4xfHxDPjEpKWZvcihsZXQgQT0wO0E8bS5sZW5ndGg7QSs9MiltW0FdPShtW0FdLU8pLyhULU8pLG1bQSsxXT0obVtBKzFdLUUpLyhDLUUpO2xldCBOPWxCKGQsbixvLGUudGFuZ2VudFJvdGF0aW9uTWF0cml4KSxJPTYqKGktMSkqKGwtMSk7cyYmKEkrPTMqKGktMSkpLGYmJihJKz0zKihpLTEpKTtsZXQgRD1EdC5jcmVhdGVUeXBlZEFycmF5KHAsSSksdj0wLEw9MCxVO2ZvcihVPTA7VTxsLTE7KytVKXtmb3IobGV0IEE9MDtBPGktMTsrK0Epe2xldCBTPXYsUD1TK2ksQj1QKzEsaj1TKzE7RFtMKytdPVMsRFtMKytdPVAsRFtMKytdPWosRFtMKytdPWosRFtMKytdPVAsRFtMKytdPUIsKyt2fSsrdn1pZihzfHxmKXtsZXQgQT1wLTEsUz1wLTE7cyYmZiYmKEE9cC0yKTtsZXQgUCxCO2lmKHY9MCxzKWZvcihVPTA7VTxpLTE7VSsrKVA9dixCPVArMSxEW0wrK109QSxEW0wrK109UCxEW0wrK109QiwrK3Y7aWYoZilmb3Iodj0obC0xKSppLFU9MDtVPGktMTtVKyspUD12LEI9UCsxLERbTCsrXT1QLERbTCsrXT1TLERbTCsrXT1CLCsrdn1yZXR1cm4gTi5pbmRpY2VzPUQsbi5zdCYmKE4uYXR0cmlidXRlcy5zdD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkZMT0FULGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Mix2YWx1ZXM6bX0pKSxOfWZ1bmN0aW9uIE5hKHQsZSxuLG8scil7cmV0dXJuIHRbZSsrXT1vW25dLHRbZSsrXT1vW24rMV0sdFtlKytdPW9bbisyXSx0W2UrK109cltuXSx0W2UrK109cltuKzFdLHRbZV09cltuKzJdLHR9ZnVuY3Rpb24gSWEodCxlLG4sbyl7cmV0dXJuIHRbZSsrXT1vW25dLHRbZSsrXT1vW24rMV0sdFtlKytdPW9bbl0sdFtlXT1vW24rMV0sdH1mdW5jdGlvbiBkQih0LGUpe2xldCBuPXQuX3NoYWRvd1ZvbHVtZSxvPXQuX29mZnNldEF0dHJpYnV0ZSxyPXQuX3ZlcnRleEZvcm1hdCxpPXQuX2V4dHJ1ZGVkSGVpZ2h0LHM9dC5fc3VyZmFjZUhlaWdodCxmPXQuX2VsbGlwc29pZCx1PWUuaGVpZ2h0LGM9ZS53aWR0aCxsO2lmKG4pe2xldCBKdD1kdC5jbG9uZShyLHh5KTtKdC5ub3JtYWw9ITAsdC5fdmVydGV4Rm9ybWF0PUp0fWxldCBwPUpFKHQsZSk7biYmKHQuX3ZlcnRleEZvcm1hdD1yKTtsZXQgZD1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQocC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxzLGYsITEpO2Q9bmV3IEZsb2F0NjRBcnJheShkKTtsZXQgbT1kLmxlbmd0aCxfPW0qMixnPW5ldyBGbG9hdDY0QXJyYXkoXyk7Zy5zZXQoZCk7bGV0IGI9UGUuc2NhbGVUb0dlb2RldGljSGVpZ2h0KHAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsaSxmKTtnLnNldChiLG0pLHAuYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXM9ZztsZXQgdz1yLm5vcm1hbD9uZXcgRmxvYXQzMkFycmF5KF8pOnZvaWQgMCxPPXIudGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KF8pOnZvaWQgMCxFPXIuYml0YW5nZW50P25ldyBGbG9hdDMyQXJyYXkoXyk6dm9pZCAwLFQ9ci5zdD9uZXcgRmxvYXQzMkFycmF5KF8vMyoyKTp2b2lkIDAsQyxOO2lmKHIubm9ybWFsKXtmb3IoTj1wLmF0dHJpYnV0ZXMubm9ybWFsLnZhbHVlcyx3LnNldChOKSxsPTA7bDxtO2wrKylOW2xdPS1OW2xdO3cuc2V0KE4sbSkscC5hdHRyaWJ1dGVzLm5vcm1hbC52YWx1ZXM9d31pZihuKXtOPXAuYXR0cmlidXRlcy5ub3JtYWwudmFsdWVzLHIubm9ybWFsfHwocC5hdHRyaWJ1dGVzLm5vcm1hbD12b2lkIDApO2xldCBKdD1uZXcgRmxvYXQzMkFycmF5KF8pO2ZvcihsPTA7bDxtO2wrKylOW2xdPS1OW2xdO0p0LnNldChOLG0pLHAuYXR0cmlidXRlcy5leHRydWRlRGlyZWN0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpKdH0pfWxldCBJLEQ9aChvKTtpZihEKXtsZXQgSnQ9bS8zKjIsTmU9bmV3IFVpbnQ4QXJyYXkoSnQpO289PT1mZS5UT1A/TmU9TmUuZmlsbCgxLDAsSnQvMik6KEk9bz09PWZlLk5PTkU/MDoxLE5lPU5lLmZpbGwoSSkpLHAuYXR0cmlidXRlcy5hcHBseU9mZnNldD1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LlVOU0lHTkVEX0JZVEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZToxLHZhbHVlczpOZX0pfWlmKHIudGFuZ2VudCl7bGV0IEp0PXAuYXR0cmlidXRlcy50YW5nZW50LnZhbHVlcztmb3IoTy5zZXQoSnQpLGw9MDtsPG07bCsrKUp0W2xdPS1KdFtsXTtPLnNldChKdCxtKSxwLmF0dHJpYnV0ZXMudGFuZ2VudC52YWx1ZXM9T31pZihyLmJpdGFuZ2VudCl7bGV0IEp0PXAuYXR0cmlidXRlcy5iaXRhbmdlbnQudmFsdWVzO0Uuc2V0KEp0KSxFLnNldChKdCxtKSxwLmF0dHJpYnV0ZXMuYml0YW5nZW50LnZhbHVlcz1FfXIuc3QmJihDPXAuYXR0cmlidXRlcy5zdC52YWx1ZXMsVC5zZXQoQyksVC5zZXQoQyxtLzMqMikscC5hdHRyaWJ1dGVzLnN0LnZhbHVlcz1UKTtsZXQgdj1wLmluZGljZXMsTD12Lmxlbmd0aCxVPW0vMyxBPUR0LmNyZWF0ZVR5cGVkQXJyYXkoXy8zLEwqMik7Zm9yKEEuc2V0KHYpLGw9MDtsPEw7bCs9MylBW2wrTF09dltsKzJdK1UsQVtsKzErTF09dltsKzFdK1UsQVtsKzIrTF09dltsXStVO3AuaW5kaWNlcz1BO2xldCBTPWUubm9ydGhDYXAsUD1lLnNvdXRoQ2FwLEI9dSxqPTIsSD0wLGs9NCxLPTQ7UyYmKGotPTEsQi09MSxIKz0xLGstPTIsSy09MSksUCYmKGotPTEsQi09MSxIKz0xLGstPTIsSy09MSksSCs9aipjKzIqQi1rO2xldCBYPShIK0spKjIsUj1uZXcgRmxvYXQ2NEFycmF5KFgqMyksb3Q9bj9uZXcgRmxvYXQzMkFycmF5KFgqMyk6dm9pZCAwLGF0PUQ/bmV3IFVpbnQ4QXJyYXkoWCk6dm9pZCAwLHB0PXIuc3Q/bmV3IEZsb2F0MzJBcnJheShYKjIpOnZvaWQgMCx5dD1vPT09ZmUuVE9QO0QmJiF5dCYmKEk9bz09PWZlLkFMTD8xOjAsYXQ9YXQuZmlsbChJKSk7bGV0IHJ0PTAsUHQ9MCxndD0wLEN0PTAsbXQ9YypCLHV0O2ZvcihsPTA7bDxtdDtsKz1jKXV0PWwqMyxSPU5hKFIscnQsdXQsZCxiKSxydCs9NixyLnN0JiYocHQ9SWEocHQsUHQsbCoyLEMpLFB0Kz00KSxuJiYoZ3QrPTMsb3RbZ3QrK109Tlt1dF0sb3RbZ3QrK109Tlt1dCsxXSxvdFtndCsrXT1OW3V0KzJdKSx5dCYmKGF0W0N0KytdPTEsQ3QrPTEpO2lmKFApe2xldCBKdD1TP210KzE6bXQ7Zm9yKHV0PUp0KjMsbD0wO2w8MjtsKyspUj1OYShSLHJ0LHV0LGQsYikscnQrPTYsci5zdCYmKHB0PUlhKHB0LFB0LEp0KjIsQyksUHQrPTQpLG4mJihndCs9MyxvdFtndCsrXT1OW3V0XSxvdFtndCsrXT1OW3V0KzFdLG90W2d0KytdPU5bdXQrMl0pLHl0JiYoYXRbQ3QrK109MSxDdCs9MSl9ZWxzZSBmb3IobD1tdC1jO2w8bXQ7bCsrKXV0PWwqMyxSPU5hKFIscnQsdXQsZCxiKSxydCs9NixyLnN0JiYocHQ9SWEocHQsUHQsbCoyLEMpLFB0Kz00KSxuJiYoZ3QrPTMsb3RbZ3QrK109Tlt1dF0sb3RbZ3QrK109Tlt1dCsxXSxvdFtndCsrXT1OW3V0KzJdKSx5dCYmKGF0W0N0KytdPTEsQ3QrPTEpO2ZvcihsPW10LTE7bD4wO2wtPWMpdXQ9bCozLFI9TmEoUixydCx1dCxkLGIpLHJ0Kz02LHIuc3QmJihwdD1JYShwdCxQdCxsKjIsQyksUHQrPTQpLG4mJihndCs9MyxvdFtndCsrXT1OW3V0XSxvdFtndCsrXT1OW3V0KzFdLG90W2d0KytdPU5bdXQrMl0pLHl0JiYoYXRbQ3QrK109MSxDdCs9MSk7aWYoUyl7bGV0IEp0PW10O2Zvcih1dD1KdCozLGw9MDtsPDI7bCsrKVI9TmEoUixydCx1dCxkLGIpLHJ0Kz02LHIuc3QmJihwdD1JYShwdCxQdCxKdCoyLEMpLFB0Kz00KSxuJiYoZ3QrPTMsb3RbZ3QrK109Tlt1dF0sb3RbZ3QrK109Tlt1dCsxXSxvdFtndCsrXT1OW3V0KzJdKSx5dCYmKGF0W0N0KytdPTEsQ3QrPTEpfWVsc2UgZm9yKGw9Yy0xO2w+PTA7bC0tKXV0PWwqMyxSPU5hKFIscnQsdXQsZCxiKSxydCs9NixyLnN0JiYocHQ9SWEocHQsUHQsbCoyLEMpLFB0Kz00KSxuJiYoZ3QrPTMsb3RbZ3QrK109Tlt1dF0sb3RbZ3QrK109Tlt1dCsxXSxvdFtndCsrXT1OW3V0KzJdKSx5dCYmKGF0W0N0KytdPTEsQ3QrPTEpO2xldCB2dD1wQihSLHIsZik7ci5zdCYmKHZ0LmF0dHJpYnV0ZXMuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOnB0fSkpLG4mJih2dC5hdHRyaWJ1dGVzLmV4dHJ1ZGVEaXJlY3Rpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOm90fSkpLEQmJih2dC5hdHRyaWJ1dGVzLmFwcGx5T2Zmc2V0PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjEsdmFsdWVzOmF0fSkpO2xldCB6dD1EdC5jcmVhdGVUeXBlZEFycmF5KFgsSCo2KSxtZSxhZSxwZSx1ZTttPVIubGVuZ3RoLzM7bGV0IFF0PTA7Zm9yKGw9MDtsPG0tMTtsKz0yKXttZT1sLHVlPShtZSsyKSVtO2xldCBKdD1hLmZyb21BcnJheShSLG1lKjMsQ3kpLE5lPWEuZnJvbUFycmF5KFIsdWUqMyxRRSk7YS5lcXVhbHNFcHNpbG9uKEp0LE5lLE0uRVBTSUxPTjEwKXx8KGFlPShtZSsxKSVtLHBlPShhZSsyKSVtLHp0W1F0KytdPW1lLHp0W1F0KytdPWFlLHp0W1F0KytdPXVlLHp0W1F0KytdPXVlLHp0W1F0KytdPWFlLHp0W1F0KytdPXBlKX1yZXR1cm4gdnQuaW5kaWNlcz16dCx2dD1WZS5jb21iaW5lSW5zdGFuY2VzKFtuZXcgY28oe2dlb21ldHJ5OnB9KSxuZXcgY28oe2dlb21ldHJ5OnZ0fSldKSx2dFswXX1mdW5jdGlvbiBQeSh0LGUsbixvLHIpe2lmKG49PT0wKXJldHVybiBOdC5jbG9uZSh0LHIpO2xldCBpPWdvLmNvbXB1dGVPcHRpb25zKHQsZSxuLDAsJEUsdFIpLHM9aS5oZWlnaHQsZj1pLndpZHRoLHU9bUI7cmV0dXJuIGdvLmNvbXB1dGVQb3NpdGlvbihpLG8sITEsMCwwLHVbMF0pLGdvLmNvbXB1dGVQb3NpdGlvbihpLG8sITEsMCxmLTEsdVsxXSksZ28uY29tcHV0ZVBvc2l0aW9uKGksbywhMSxzLTEsMCx1WzJdKSxnby5jb21wdXRlUG9zaXRpb24oaSxvLCExLHMtMSxmLTEsdVszXSksTnQuZnJvbUNhcnRlc2lhbkFycmF5KHUsbyxyKX1mdW5jdGlvbiBtaSh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5yZWN0YW5nbGU7aWYoeS50eXBlT2Yub2JqZWN0KCJyZWN0YW5nbGUiLGUpLE50Ll92YWxpZGF0ZShlKSxlLm5vcnRoPGUuc291dGgpdGhyb3cgbmV3IEYoIm9wdGlvbnMucmVjdGFuZ2xlLm5vcnRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvIG9wdGlvbnMucmVjdGFuZ2xlLnNvdXRoIik7bGV0IG49eCh0LmhlaWdodCwwKSxvPXgodC5leHRydWRlZEhlaWdodCxuKTt0aGlzLl9yZWN0YW5nbGU9TnQuY2xvbmUoZSksdGhpcy5fZ3JhbnVsYXJpdHk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSx0aGlzLl9lbGxpcHNvaWQ9JC5jbG9uZSh4KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCkpLHRoaXMuX3N1cmZhY2VIZWlnaHQ9TWF0aC5tYXgobixvKSx0aGlzLl9yb3RhdGlvbj14KHQucm90YXRpb24sMCksdGhpcy5fc3RSb3RhdGlvbj14KHQuc3RSb3RhdGlvbiwwKSx0aGlzLl92ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoeCh0LnZlcnRleEZvcm1hdCxkdC5ERUZBVUxUKSksdGhpcy5fZXh0cnVkZWRIZWlnaHQ9TWF0aC5taW4obixvKSx0aGlzLl9zaGFkb3dWb2x1bWU9eCh0LnNoYWRvd1ZvbHVtZSwhMSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlUmVjdGFuZ2xlR2VvbWV0cnkiLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlPXZvaWQgMCx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPXZvaWQgMH1mdW5jdGlvbiB3Qih0KXtpZih0Ll9zdFJvdGF0aW9uPT09MClyZXR1cm5bMCwwLDAsMSwxLDBdO2xldCBlPU50LmNsb25lKHQuX3JlY3RhbmdsZSxLRSksbj10Ll9ncmFudWxhcml0eSxvPXQuX2VsbGlwc29pZCxyPXQuX3JvdGF0aW9uLXQuX3N0Um90YXRpb24saT1QeShlLG4scixvLEtFKSxzPWdCO3NbMF0ueD1pLndlc3Qsc1swXS55PWkuc291dGgsc1sxXS54PWkud2VzdCxzWzFdLnk9aS5ub3J0aCxzWzJdLng9aS5lYXN0LHNbMl0ueT1pLnNvdXRoO2xldCBmPXQucmVjdGFuZ2xlLHU9WW8uZnJvbVJvdGF0aW9uKHQuX3N0Um90YXRpb24sQUIpLGM9TnQuY2VudGVyKGYsYkIpO2ZvcihsZXQgXz0wO188MzsrK18pe2xldCBnPXNbX107Zy54LT1jLmxvbmdpdHVkZSxnLnktPWMubGF0aXR1ZGUsWW8ubXVsdGlwbHlCeVZlY3Rvcih1LGcsZyksZy54Kz1jLmxvbmdpdHVkZSxnLnkrPWMubGF0aXR1ZGUsZy54PShnLngtZi53ZXN0KS9mLndpZHRoLGcueT0oZy55LWYuc291dGgpL2YuaGVpZ2h0fWxldCBsPXNbMF0scD1zWzFdLGQ9c1syXSxtPW5ldyBBcnJheSg2KTtyZXR1cm4gdHQucGFjayhsLG0pLHR0LnBhY2socCxtLDIpLHR0LnBhY2soZCxtLDQpLG19dmFyIFN5LFdFLFhFLFlFLCRFLGFCLGZCLHVCLEN5LFFFLHh5LG1CLHRSLGhCLGVSLG5SLFNzLF9CLHFFLHlCLEtFLGdCLEFCLGJCLE15LG9SPVooKCk9Pnt2ZSgpO1VlKCk7RnQoKTtJZSgpO1h0KCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO3NjKCk7TG8oKTtzaSgpOyRlKCk7V3QoKTt3ZigpO0JuKCk7cXIoKTt0bigpO0tvKCk7VG4oKTtSeSgpO1JvKCk7U3k9bmV3IGEsV0U9bmV3IGEsWEU9bmV3IGEsWUU9bmV3IGEsJEU9bmV3IE50LGFCPW5ldyB0dCxmQj1uZXcgQXQsdUI9bmV3IEF0O0N5PW5ldyBhLFFFPW5ldyBhO3h5PW5ldyBkdDttQj1bbmV3IGEsbmV3IGEsbmV3IGEsbmV3IGFdLHRSPW5ldyBjdCxoQj1uZXcgY3Q7bWkucGFja2VkTGVuZ3RoPU50LnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCtkdC5wYWNrZWRMZW5ndGgrNzttaS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCkseS5kZWZpbmVkKCJhcnJheSIsZSksbj14KG4sMCksTnQucGFjayh0Ll9yZWN0YW5nbGUsZSxuKSxuKz1OdC5wYWNrZWRMZW5ndGgsJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGR0LnBhY2sodC5fdmVydGV4Rm9ybWF0LGUsbiksbis9ZHQucGFja2VkTGVuZ3RoLGVbbisrXT10Ll9ncmFudWxhcml0eSxlW24rK109dC5fc3VyZmFjZUhlaWdodCxlW24rK109dC5fcm90YXRpb24sZVtuKytdPXQuX3N0Um90YXRpb24sZVtuKytdPXQuX2V4dHJ1ZGVkSGVpZ2h0LGVbbisrXT10Ll9zaGFkb3dWb2x1bWU/MTowLGVbbl09eCh0Ll9vZmZzZXRBdHRyaWJ1dGUsLTEpLGV9O2VSPW5ldyBOdCxuUj0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLFNzPXtyZWN0YW5nbGU6ZVIsZWxsaXBzb2lkOm5SLHZlcnRleEZvcm1hdDp4eSxncmFudWxhcml0eTp2b2lkIDAsaGVpZ2h0OnZvaWQgMCxyb3RhdGlvbjp2b2lkIDAsc3RSb3RhdGlvbjp2b2lkIDAsZXh0cnVkZWRIZWlnaHQ6dm9pZCAwLHNoYWRvd1ZvbHVtZTp2b2lkIDAsb2Zmc2V0QXR0cmlidXRlOnZvaWQgMH07bWkudW5wYWNrPWZ1bmN0aW9uKHQsZSxuKXt5LmRlZmluZWQoImFycmF5Iix0KSxlPXgoZSwwKTtsZXQgbz1OdC51bnBhY2sodCxlLGVSKTtlKz1OdC5wYWNrZWRMZW5ndGg7bGV0IHI9JC51bnBhY2sodCxlLG5SKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgaT1kdC51bnBhY2sodCxlLHh5KTtlKz1kdC5wYWNrZWRMZW5ndGg7bGV0IHM9dFtlKytdLGY9dFtlKytdLHU9dFtlKytdLGM9dFtlKytdLGw9dFtlKytdLHA9dFtlKytdPT09MSxkPXRbZV07cmV0dXJuIGgobik/KG4uX3JlY3RhbmdsZT1OdC5jbG9uZShvLG4uX3JlY3RhbmdsZSksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3ZlcnRleEZvcm1hdD1kdC5jbG9uZShpLG4uX3ZlcnRleEZvcm1hdCksbi5fZ3JhbnVsYXJpdHk9cyxuLl9zdXJmYWNlSGVpZ2h0PWYsbi5fcm90YXRpb249dSxuLl9zdFJvdGF0aW9uPWMsbi5fZXh0cnVkZWRIZWlnaHQ9bCxuLl9zaGFkb3dWb2x1bWU9cCxuLl9vZmZzZXRBdHRyaWJ1dGU9ZD09PS0xP3ZvaWQgMDpkLG4pOihTcy5ncmFudWxhcml0eT1zLFNzLmhlaWdodD1mLFNzLnJvdGF0aW9uPXUsU3Muc3RSb3RhdGlvbj1jLFNzLmV4dHJ1ZGVkSGVpZ2h0PWwsU3Muc2hhZG93Vm9sdW1lPXAsU3Mub2Zmc2V0QXR0cmlidXRlPWQ9PT0tMT92b2lkIDA6ZCxuZXcgbWkoU3MpKX07bWkuY29tcHV0ZVJlY3RhbmdsZT1mdW5jdGlvbih0LGUpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgbj10LnJlY3RhbmdsZTtpZih5LnR5cGVPZi5vYmplY3QoInJlY3RhbmdsZSIsbiksTnQuX3ZhbGlkYXRlKG4pLG4ubm9ydGg8bi5zb3V0aCl0aHJvdyBuZXcgRigib3B0aW9ucy5yZWN0YW5nbGUubm9ydGggbXVzdCBiZSBncmVhdGVyIHRoYW4gb3IgZXF1YWwgdG8gb3B0aW9ucy5yZWN0YW5nbGUuc291dGgiKTtsZXQgbz14KHQuZ3JhbnVsYXJpdHksTS5SQURJQU5TX1BFUl9ERUdSRUUpLHI9eCh0LmVsbGlwc29pZCwkLmRlZmF1bHQpLGk9eCh0LnJvdGF0aW9uLDApO3JldHVybiBQeShuLG8saSxyLGUpfTtfQj1uZXcgUSxxRT1uZXcgZWUseUI9bmV3IGN0O21pLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2lmKE0uZXF1YWxzRXBzaWxvbih0Ll9yZWN0YW5nbGUubm9ydGgsdC5fcmVjdGFuZ2xlLnNvdXRoLE0uRVBTSUxPTjEwKXx8TS5lcXVhbHNFcHNpbG9uKHQuX3JlY3RhbmdsZS5lYXN0LHQuX3JlY3RhbmdsZS53ZXN0LE0uRVBTSUxPTjEwKSlyZXR1cm47bGV0IGU9dC5fcmVjdGFuZ2xlLG49dC5fZWxsaXBzb2lkLG89dC5fcm90YXRpb24scj10Ll9zdFJvdGF0aW9uLGk9dC5fdmVydGV4Rm9ybWF0LHM9Z28uY29tcHV0ZU9wdGlvbnMoZSx0Ll9ncmFudWxhcml0eSxvLHIsJEUsdFIsaEIpLGY9X0I7aWYociE9PTB8fG8hPT0wKXtsZXQgbT1OdC5jZW50ZXIoZSx5QiksXz1uLmdlb2RldGljU3VyZmFjZU5vcm1hbENhcnRvZ3JhcGhpYyhtLEN5KTtlZS5mcm9tQXhpc0FuZ2xlKF8sLXIscUUpLFEuZnJvbVF1YXRlcm5pb24ocUUsZil9ZWxzZSBRLmNsb25lKFEuSURFTlRJVFksZik7bGV0IHU9dC5fc3VyZmFjZUhlaWdodCxjPXQuX2V4dHJ1ZGVkSGVpZ2h0LGw9IU0uZXF1YWxzRXBzaWxvbih1LGMsMCxNLkVQU0lMT04yKTtzLmxvblNjYWxhcj0xL3QuX3JlY3RhbmdsZS53aWR0aCxzLmxhdFNjYWxhcj0xL3QuX3JlY3RhbmdsZS5oZWlnaHQscy50YW5nZW50Um90YXRpb25NYXRyaXg9ZjtsZXQgcCxkO2lmKGU9dC5fcmVjdGFuZ2xlLGwpe3A9ZEIodCxzKTtsZXQgbT1BdC5mcm9tUmVjdGFuZ2xlM0QoZSxuLHUsdUIpLF89QXQuZnJvbVJlY3RhbmdsZTNEKGUsbixjLGZCKTtkPUF0LnVuaW9uKG0sXyl9ZWxzZXtpZihwPUpFKHQscykscC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQocC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyx1LG4sITEpLGgodC5fb2Zmc2V0QXR0cmlidXRlKSl7bGV0IG09cC5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcy5sZW5ndGgsXz10Ll9vZmZzZXRBdHRyaWJ1dGU9PT1mZS5OT05FPzA6MSxnPW5ldyBVaW50OEFycmF5KG0vMykuZmlsbChfKTtwLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6Z30pfWQ9QXQuZnJvbVJlY3RhbmdsZTNEKGUsbix1KX1yZXR1cm4gaS5wb3NpdGlvbnx8ZGVsZXRlIHAuYXR0cmlidXRlcy5wb3NpdGlvbixuZXcgVXQoe2F0dHJpYnV0ZXM6cC5hdHRyaWJ1dGVzLGluZGljZXM6cC5pbmRpY2VzLHByaW1pdGl2ZVR5cGU6cC5wcmltaXRpdmVUeXBlLGJvdW5kaW5nU3BoZXJlOmQsb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTttaS5jcmVhdGVTaGFkb3dWb2x1bWU9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuX2dyYW51bGFyaXR5LHI9dC5fZWxsaXBzb2lkLGk9ZShvLHIpLHM9bihvLHIpO3JldHVybiBuZXcgbWkoe3JlY3RhbmdsZTp0Ll9yZWN0YW5nbGUscm90YXRpb246dC5fcm90YXRpb24sZWxsaXBzb2lkOnIsc3RSb3RhdGlvbjp0Ll9zdFJvdGF0aW9uLGdyYW51bGFyaXR5Om8sZXh0cnVkZWRIZWlnaHQ6cyxoZWlnaHQ6aSx2ZXJ0ZXhGb3JtYXQ6ZHQuUE9TSVRJT05fT05MWSxzaGFkb3dWb2x1bWU6ITB9KX07S0U9bmV3IE50LGdCPVtuZXcgdHQsbmV3IHR0LG5ldyB0dF0sQUI9bmV3IFlvLGJCPW5ldyBjdDtPYmplY3QuZGVmaW5lUHJvcGVydGllcyhtaS5wcm90b3R5cGUse3JlY3RhbmdsZTp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5fcm90YXRlZFJlY3RhbmdsZSl8fCh0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlPVB5KHRoaXMuX3JlY3RhbmdsZSx0aGlzLl9ncmFudWxhcml0eSx0aGlzLl9yb3RhdGlvbix0aGlzLl9lbGxpcHNvaWQpKSx0aGlzLl9yb3RhdGVkUmVjdGFuZ2xlfX0sdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50czp7Z2V0OmZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5fdGV4dHVyZUNvb3JkaW5hdGVSb3RhdGlvblBvaW50cyl8fCh0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzPXdCKHRoaXMpKSx0aGlzLl90ZXh0dXJlQ29vcmRpbmF0ZVJvdGF0aW9uUG9pbnRzfX19KTtNeT1taX0pO3ZhciBOeT17fTtkZShOeSx7ZGVmYXVsdDooKT0+T0J9KTtmdW5jdGlvbiBUQih0LGUpe3JldHVybiBoKGUpJiYodD1NeS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx0Ll9yZWN0YW5nbGU9TnQuY2xvbmUodC5fcmVjdGFuZ2xlKSxNeS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgT0IsSXk9WigoKT0+e2Z0KCk7WnQoKTtUbigpO29SKCk7T0I9VEJ9KTtmdW5jdGlvbiByUih0LGUpe2xldCBuPXQuX2VsbGlwc29pZCxvPWUuaGVpZ2h0LHI9ZS53aWR0aCxpPWUubm9ydGhDYXAscz1lLnNvdXRoQ2FwLGY9byx1PTIsYz0wLGw9NDtpJiYodS09MSxmLT0xLGMrPTEsbC09MikscyYmKHUtPTEsZi09MSxjKz0xLGwtPTIpLGMrPXUqcisyKmYtbDtsZXQgcD1uZXcgRmxvYXQ2NEFycmF5KGMqMyksZD0wLG09MCxfLGc9U0I7aWYoaSlnby5jb21wdXRlUG9zaXRpb24oZSxuLCExLG0sMCxnKSxwW2QrK109Zy54LHBbZCsrXT1nLnkscFtkKytdPWcuejtlbHNlIGZvcihfPTA7XzxyO18rKylnby5jb21wdXRlUG9zaXRpb24oZSxuLCExLG0sXyxnKSxwW2QrK109Zy54LHBbZCsrXT1nLnkscFtkKytdPWcuejtmb3IoXz1yLTEsbT0xO208bzttKyspZ28uY29tcHV0ZVBvc2l0aW9uKGUsbiwhMSxtLF8sZykscFtkKytdPWcueCxwW2QrK109Zy55LHBbZCsrXT1nLno7aWYobT1vLTEsIXMpZm9yKF89ci0yO18+PTA7Xy0tKWdvLmNvbXB1dGVQb3NpdGlvbihlLG4sITEsbSxfLGcpLHBbZCsrXT1nLngscFtkKytdPWcueSxwW2QrK109Zy56O2ZvcihfPTAsbT1vLTI7bT4wO20tLSlnby5jb21wdXRlUG9zaXRpb24oZSxuLCExLG0sXyxnKSxwW2QrK109Zy54LHBbZCsrXT1nLnkscFtkKytdPWcuejtsZXQgYj1wLmxlbmd0aC8zKjIsdz1EdC5jcmVhdGVUeXBlZEFycmF5KHAubGVuZ3RoLzMsYiksTz0wO2ZvcihsZXQgVD0wO1Q8cC5sZW5ndGgvMy0xO1QrKyl3W08rK109VCx3W08rK109VCsxO3dbTysrXT1wLmxlbmd0aC8zLTEsd1tPKytdPTA7bGV0IEU9bmV3IFV0KHthdHRyaWJ1dGVzOm5ldyBpZSxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTfSk7cmV0dXJuIEUuYXR0cmlidXRlcy5wb3NpdGlvbj1uZXcgaXQoe2NvbXBvbmVudERhdGF0eXBlOm50LkRPVUJMRSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOnB9KSxFLmluZGljZXM9dyxFfWZ1bmN0aW9uIHhCKHQsZSl7bGV0IG49dC5fc3VyZmFjZUhlaWdodCxvPXQuX2V4dHJ1ZGVkSGVpZ2h0LHI9dC5fZWxsaXBzb2lkLGk9clIodCxlKSxzPWUuaGVpZ2h0LGY9ZS53aWR0aCx1PVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChpLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLG4sciwhMSksYz11Lmxlbmd0aCxsPW5ldyBGbG9hdDY0QXJyYXkoYyoyKTtsLnNldCh1KTtsZXQgcD1QZS5zY2FsZVRvR2VvZGV0aWNIZWlnaHQoaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxvLHIpO2wuc2V0KHAsYyksaS5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcz1sO2xldCBkPWUubm9ydGhDYXAsbT1lLnNvdXRoQ2FwLF89NDtkJiYoXy09MSksbSYmKF8tPTEpO2xldCBnPShsLmxlbmd0aC8zK18pKjIsYj1EdC5jcmVhdGVUeXBlZEFycmF5KGwubGVuZ3RoLzMsZyk7Yz1sLmxlbmd0aC82O2xldCB3PTA7Zm9yKGxldCBFPTA7RTxjLTE7RSsrKWJbdysrXT1FLGJbdysrXT1FKzEsYlt3KytdPUUrYyxiW3crK109RStjKzE7Ylt3KytdPWMtMSxiW3crK109MCxiW3crK109YytjLTEsYlt3KytdPWMsYlt3KytdPTAsYlt3KytdPWM7bGV0IE87aWYoZClPPXMtMTtlbHNle2xldCBFPWYtMTtiW3crK109RSxiW3crK109RStjLE89ZitzLTJ9aWYoYlt3KytdPU8sYlt3KytdPU8rYywhbSl7bGV0IEU9ZitPLTE7Ylt3KytdPUUsYlt3XT1FK2N9cmV0dXJuIGkuaW5kaWNlcz1iLGl9ZnVuY3Rpb24gTGEodCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucmVjdGFuZ2xlLG49eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxvPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSxyPXgodC5yb3RhdGlvbiwwKTtpZighaChlKSl0aHJvdyBuZXcgRigicmVjdGFuZ2xlIGlzIHJlcXVpcmVkLiIpO2lmKE50Ll92YWxpZGF0ZShlKSxlLm5vcnRoPGUuc291dGgpdGhyb3cgbmV3IEYoIm9wdGlvbnMucmVjdGFuZ2xlLm5vcnRoIG11c3QgYmUgZ3JlYXRlciB0aGFuIG9wdGlvbnMucmVjdGFuZ2xlLnNvdXRoIik7bGV0IGk9eCh0LmhlaWdodCwwKSxzPXgodC5leHRydWRlZEhlaWdodCxpKTt0aGlzLl9yZWN0YW5nbGU9TnQuY2xvbmUoZSksdGhpcy5fZ3JhbnVsYXJpdHk9bix0aGlzLl9lbGxpcHNvaWQ9byx0aGlzLl9zdXJmYWNlSGVpZ2h0PU1hdGgubWF4KGkscyksdGhpcy5fcm90YXRpb249cix0aGlzLl9leHRydWRlZEhlaWdodD1NYXRoLm1pbihpLHMpLHRoaXMuX29mZnNldEF0dHJpYnV0ZT10Lm9mZnNldEF0dHJpYnV0ZSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVSZWN0YW5nbGVPdXRsaW5lR2VvbWV0cnkifXZhciBFQixSQixTQixDQixpUixzUix2YSxQQix2eSxjUj1aKCgpPT57dmUoKTtGdCgpO0llKCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpO0xvKCk7JGUoKTtXdCgpO3FyKCk7dG4oKTtUbigpO1J5KCk7RUI9bmV3IEF0LFJCPW5ldyBBdCxTQj1uZXcgYSxDQj1uZXcgTnQ7TGEucGFja2VkTGVuZ3RoPU50LnBhY2tlZExlbmd0aCskLnBhY2tlZExlbmd0aCs1O0xhLnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO3JldHVybiBuPXgobiwwKSxOdC5wYWNrKHQuX3JlY3RhbmdsZSxlLG4pLG4rPU50LnBhY2tlZExlbmd0aCwkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZVtuKytdPXQuX2dyYW51bGFyaXR5LGVbbisrXT10Ll9zdXJmYWNlSGVpZ2h0LGVbbisrXT10Ll9yb3RhdGlvbixlW24rK109dC5fZXh0cnVkZWRIZWlnaHQsZVtuXT14KHQuX29mZnNldEF0dHJpYnV0ZSwtMSksZX07aVI9bmV3IE50LHNSPSQuY2xvbmUoJC5VTklUX1NQSEVSRSksdmE9e3JlY3RhbmdsZTppUixlbGxpcHNvaWQ6c1IsZ3JhbnVsYXJpdHk6dm9pZCAwLGhlaWdodDp2b2lkIDAscm90YXRpb246dm9pZCAwLGV4dHJ1ZGVkSGVpZ2h0OnZvaWQgMCxvZmZzZXRBdHRyaWJ1dGU6dm9pZCAwfTtMYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvPU50LnVucGFjayh0LGUsaVIpO2UrPU50LnBhY2tlZExlbmd0aDtsZXQgcj0kLnVucGFjayh0LGUsc1IpO2UrPSQucGFja2VkTGVuZ3RoO2xldCBpPXRbZSsrXSxzPXRbZSsrXSxmPXRbZSsrXSx1PXRbZSsrXSxjPXRbZV07cmV0dXJuIGgobik/KG4uX3JlY3RhbmdsZT1OdC5jbG9uZShvLG4uX3JlY3RhbmdsZSksbi5fZWxsaXBzb2lkPSQuY2xvbmUocixuLl9lbGxpcHNvaWQpLG4uX3N1cmZhY2VIZWlnaHQ9cyxuLl9yb3RhdGlvbj1mLG4uX2V4dHJ1ZGVkSGVpZ2h0PXUsbi5fb2Zmc2V0QXR0cmlidXRlPWM9PT0tMT92b2lkIDA6YyxuKToodmEuZ3JhbnVsYXJpdHk9aSx2YS5oZWlnaHQ9cyx2YS5yb3RhdGlvbj1mLHZhLmV4dHJ1ZGVkSGVpZ2h0PXUsdmEub2Zmc2V0QXR0cmlidXRlPWM9PT0tMT92b2lkIDA6YyxuZXcgTGEodmEpKX07UEI9bmV3IGN0O0xhLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3JlY3RhbmdsZSxuPXQuX2VsbGlwc29pZCxvPWdvLmNvbXB1dGVPcHRpb25zKGUsdC5fZ3JhbnVsYXJpdHksdC5fcm90YXRpb24sMCxDQixQQikscixpO2lmKE0uZXF1YWxzRXBzaWxvbihlLm5vcnRoLGUuc291dGgsTS5FUFNJTE9OMTApfHxNLmVxdWFsc0Vwc2lsb24oZS5lYXN0LGUud2VzdCxNLkVQU0lMT04xMCkpcmV0dXJuO2xldCBzPXQuX3N1cmZhY2VIZWlnaHQsZj10Ll9leHRydWRlZEhlaWdodCx1PSFNLmVxdWFsc0Vwc2lsb24ocyxmLDAsTS5FUFNJTE9OMiksYztpZih1KXtpZihyPXhCKHQsbyksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgZD1yLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aC8zLG09bmV3IFVpbnQ4QXJyYXkoZCk7dC5fb2Zmc2V0QXR0cmlidXRlPT09ZmUuVE9QP209bS5maWxsKDEsMCxkLzIpOihjPXQuX29mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxLG09bS5maWxsKGMpKSxyLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6bX0pfWxldCBsPUF0LmZyb21SZWN0YW5nbGUzRChlLG4scyxSQikscD1BdC5mcm9tUmVjdGFuZ2xlM0QoZSxuLGYsRUIpO2k9QXQudW5pb24obCxwKX1lbHNle2lmKHI9clIodCxvKSxyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzPVBlLnNjYWxlVG9HZW9kZXRpY0hlaWdodChyLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLHMsbiwhMSksaCh0Ll9vZmZzZXRBdHRyaWJ1dGUpKXtsZXQgbD1yLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLmxlbmd0aDtjPXQuX29mZnNldEF0dHJpYnV0ZT09PWZlLk5PTkU/MDoxO2xldCBwPW5ldyBVaW50OEFycmF5KGwvMykuZmlsbChjKTtyLmF0dHJpYnV0ZXMuYXBwbHlPZmZzZXQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5VTlNJR05FRF9CWVRFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6MSx2YWx1ZXM6cH0pfWk9QXQuZnJvbVJlY3RhbmdsZTNEKGUsbixzKX1yZXR1cm4gbmV3IFV0KHthdHRyaWJ1dGVzOnIuYXR0cmlidXRlcyxpbmRpY2VzOnIuaW5kaWNlcyxwcmltaXRpdmVUeXBlOkJ0LkxJTkVTLGJvdW5kaW5nU3BoZXJlOmksb2Zmc2V0QXR0cmlidXRlOnQuX29mZnNldEF0dHJpYnV0ZX0pfTt2eT1MYX0pO3ZhciBMeT17fTtkZShMeSx7ZGVmYXVsdDooKT0+TkJ9KTtmdW5jdGlvbiBNQih0LGUpe3JldHVybiBoKGUpJiYodD12eS51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSx0Ll9yZWN0YW5nbGU9TnQuY2xvbmUodC5fcmVjdGFuZ2xlKSx2eS5jcmVhdGVHZW9tZXRyeSh0KX12YXIgTkIsRHk9WigoKT0+e2Z0KCk7WnQoKTtUbigpO2NSKCk7TkI9TUJ9KTtmdW5jdGlvbiBJQih0LGUsbixvLHIsaSxzKXtsZXQgZj1Bbi5udW1iZXJPZlBvaW50cyh0LGUsciksdSxjPW4ucmVkLGw9bi5ncmVlbixwPW4uYmx1ZSxkPW4uYWxwaGEsbT1vLnJlZCxfPW8uZ3JlZW4sZz1vLmJsdWUsYj1vLmFscGhhO2lmKG9lLmVxdWFscyhuLG8pKXtmb3IodT0wO3U8Zjt1KyspaVtzKytdPW9lLmZsb2F0VG9CeXRlKGMpLGlbcysrXT1vZS5mbG9hdFRvQnl0ZShsKSxpW3MrK109b2UuZmxvYXRUb0J5dGUocCksaVtzKytdPW9lLmZsb2F0VG9CeXRlKGQpO3JldHVybiBzfWxldCB3PShtLWMpL2YsTz0oXy1sKS9mLEU9KGctcCkvZixUPShiLWQpL2YsQz1zO2Zvcih1PTA7dTxmO3UrKylpW0MrK109b2UuZmxvYXRUb0J5dGUoYyt1KncpLGlbQysrXT1vZS5mbG9hdFRvQnl0ZShsK3UqTyksaVtDKytdPW9lLmZsb2F0VG9CeXRlKHArdSpFKSxpW0MrK109b2UuZmxvYXRUb0J5dGUoZCt1KlQpO3JldHVybiBDfWZ1bmN0aW9uIHJ1KHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucyxuPXQuY29sb3JzLG89eCh0LmNvbG9yc1BlclZlcnRleCwhMSk7aWYoIWgoZSl8fGUubGVuZ3RoPDIpdGhyb3cgbmV3IEYoIkF0IGxlYXN0IHR3byBwb3NpdGlvbnMgYXJlIHJlcXVpcmVkLiIpO2lmKGgobikmJihvJiZuLmxlbmd0aDxlLmxlbmd0aHx8IW8mJm4ubGVuZ3RoPGUubGVuZ3RoLTEpKXRocm93IG5ldyBGKCJjb2xvcnMgaGFzIGFuIGludmFsaWQgbGVuZ3RoLiIpO3RoaXMuX3Bvc2l0aW9ucz1lLHRoaXMuX2NvbG9ycz1uLHRoaXMuX2NvbG9yc1BlclZlcnRleD1vLHRoaXMuX2FyY1R5cGU9eCh0LmFyY1R5cGUsX2UuR0VPREVTSUMpLHRoaXMuX2dyYW51bGFyaXR5PXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksdGhpcy5fZWxsaXBzb2lkPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSx0aGlzLl93b3JrZXJOYW1lPSJjcmVhdGVTaW1wbGVQb2x5bGluZUdlb21ldHJ5IjtsZXQgcj0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoO3IrPWgobik/MStuLmxlbmd0aCpvZS5wYWNrZWRMZW5ndGg6MSx0aGlzLnBhY2tlZExlbmd0aD1yKyQucGFja2VkTGVuZ3RoKzN9dmFyIEZkLEJkLHZCLEZ5LGFSPVooKCk9PntmYygpO3ZlKCk7RnQoKTtNYSgpO0ZlKCk7SXQoKTtmdCgpO0h0KCk7WnQoKTtYZSgpO1llKCk7YW4oKTskZSgpO1d0KCk7Z2EoKTt0bigpO3J1LnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ2YWx1ZSBpcyByZXF1aXJlZCIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO249eChuLDApO2xldCBvLHI9dC5fcG9zaXRpb25zLGk9ci5sZW5ndGg7Zm9yKGVbbisrXT1pLG89MDtvPGk7KytvLG4rPWEucGFja2VkTGVuZ3RoKWEucGFjayhyW29dLGUsbik7bGV0IHM9dC5fY29sb3JzO2ZvcihpPWgocyk/cy5sZW5ndGg6MCxlW24rK109aSxvPTA7bzxpOysrbyxuKz1vZS5wYWNrZWRMZW5ndGgpb2UucGFjayhzW29dLGUsbik7cmV0dXJuICQucGFjayh0Ll9lbGxpcHNvaWQsZSxuKSxuKz0kLnBhY2tlZExlbmd0aCxlW24rK109dC5fY29sb3JzUGVyVmVydGV4PzE6MCxlW24rK109dC5fYXJjVHlwZSxlW25dPXQuX2dyYW51bGFyaXR5LGV9O3J1LnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcz1yPjA/bmV3IEFycmF5KHIpOnZvaWQgMDtmb3Iobz0wO288cjsrK28sZSs9b2UucGFja2VkTGVuZ3RoKXNbb109b2UudW5wYWNrKHQsZSk7bGV0IGY9JC51bnBhY2sodCxlKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgdT10W2UrK109PT0xLGM9dFtlKytdLGw9dFtlXTtyZXR1cm4gaChuKT8obi5fcG9zaXRpb25zPWksbi5fY29sb3JzPXMsbi5fZWxsaXBzb2lkPWYsbi5fY29sb3JzUGVyVmVydGV4PXUsbi5fYXJjVHlwZT1jLG4uX2dyYW51bGFyaXR5PWwsbik6bmV3IHJ1KHtwb3NpdGlvbnM6aSxjb2xvcnM6cyxlbGxpcHNvaWQ6Zixjb2xvcnNQZXJWZXJ0ZXg6dSxhcmNUeXBlOmMsZ3JhbnVsYXJpdHk6bH0pfTtGZD1uZXcgQXJyYXkoMiksQmQ9bmV3IEFycmF5KDIpLHZCPXtwb3NpdGlvbnM6RmQsaGVpZ2h0OkJkLGVsbGlwc29pZDp2b2lkIDAsbWluRGlzdGFuY2U6dm9pZCAwLGdyYW51bGFyaXR5OnZvaWQgMH07cnUuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9zaXRpb25zLG49dC5fY29sb3JzLG89dC5fY29sb3JzUGVyVmVydGV4LHI9dC5fYXJjVHlwZSxpPXQuX2dyYW51bGFyaXR5LHM9dC5fZWxsaXBzb2lkLGY9TS5jaG9yZExlbmd0aChpLHMubWF4aW11bVJhZGl1cyksdT1oKG4pJiYhbyxjLGw9ZS5sZW5ndGgscCxkLG0sXyxnPTA7aWYocj09PV9lLkdFT0RFU0lDfHxyPT09X2UuUkhVTUIpe2xldCBULEMsTjtyPT09X2UuR0VPREVTSUM/KFQ9TS5jaG9yZExlbmd0aChpLHMubWF4aW11bVJhZGl1cyksQz1Bbi5udW1iZXJPZlBvaW50cyxOPUFuLmdlbmVyYXRlQXJjKTooVD1pLEM9QW4ubnVtYmVyT2ZQb2ludHNSaHVtYkxpbmUsTj1Bbi5nZW5lcmF0ZVJodW1iQXJjKTtsZXQgST1Bbi5leHRyYWN0SGVpZ2h0cyhlLHMpLEQ9dkI7aWYocj09PV9lLkdFT0RFU0lDP0QubWluRGlzdGFuY2U9ZjpELmdyYW51bGFyaXR5PWksRC5lbGxpcHNvaWQ9cyx1KXtsZXQgdj0wO2ZvcihjPTA7YzxsLTE7YysrKXYrPUMoZVtjXSxlW2MrMV0sVCkrMTtwPW5ldyBGbG9hdDY0QXJyYXkodiozKSxtPW5ldyBVaW50OEFycmF5KHYqNCksRC5wb3NpdGlvbnM9RmQsRC5oZWlnaHQ9QmQ7bGV0IEw9MDtmb3IoYz0wO2M8bC0xOysrYyl7RmRbMF09ZVtjXSxGZFsxXT1lW2MrMV0sQmRbMF09SVtjXSxCZFsxXT1JW2MrMV07bGV0IFU9TihEKTtpZihoKG4pKXtsZXQgQT1VLmxlbmd0aC8zO189bltjXTtmb3IobGV0IFM9MDtTPEE7KytTKW1bTCsrXT1vZS5mbG9hdFRvQnl0ZShfLnJlZCksbVtMKytdPW9lLmZsb2F0VG9CeXRlKF8uZ3JlZW4pLG1bTCsrXT1vZS5mbG9hdFRvQnl0ZShfLmJsdWUpLG1bTCsrXT1vZS5mbG9hdFRvQnl0ZShfLmFscGhhKX1wLnNldChVLGcpLGcrPVUubGVuZ3RofX1lbHNlIGlmKEQucG9zaXRpb25zPWUsRC5oZWlnaHQ9SSxwPW5ldyBGbG9hdDY0QXJyYXkoTihEKSksaChuKSl7Zm9yKG09bmV3IFVpbnQ4QXJyYXkocC5sZW5ndGgvMyo0KSxjPTA7YzxsLTE7KytjKXtsZXQgTD1lW2NdLFU9ZVtjKzFdLEE9bltjXSxTPW5bYysxXTtnPUlCKEwsVSxBLFMsZixtLGcpfWxldCB2PW5bbC0xXTttW2crK109b2UuZmxvYXRUb0J5dGUodi5yZWQpLG1bZysrXT1vZS5mbG9hdFRvQnl0ZSh2LmdyZWVuKSxtW2crK109b2UuZmxvYXRUb0J5dGUodi5ibHVlKSxtW2crK109b2UuZmxvYXRUb0J5dGUodi5hbHBoYSl9fWVsc2V7ZD11P2wqMi0yOmwscD1uZXcgRmxvYXQ2NEFycmF5KGQqMyksbT1oKG4pP25ldyBVaW50OEFycmF5KGQqNCk6dm9pZCAwO2xldCBUPTAsQz0wO2ZvcihjPTA7YzxsOysrYyl7bGV0IE49ZVtjXTtpZih1JiZjPjAmJihhLnBhY2soTixwLFQpLFQrPTMsXz1uW2MtMV0sbVtDKytdPW9lLmZsb2F0VG9CeXRlKF8ucmVkKSxtW0MrK109b2UuZmxvYXRUb0J5dGUoXy5ncmVlbiksbVtDKytdPW9lLmZsb2F0VG9CeXRlKF8uYmx1ZSksbVtDKytdPW9lLmZsb2F0VG9CeXRlKF8uYWxwaGEpKSx1JiZjPT09bC0xKWJyZWFrO2EucGFjayhOLHAsVCksVCs9MyxoKG4pJiYoXz1uW2NdLG1bQysrXT1vZS5mbG9hdFRvQnl0ZShfLnJlZCksbVtDKytdPW9lLmZsb2F0VG9CeXRlKF8uZ3JlZW4pLG1bQysrXT1vZS5mbG9hdFRvQnl0ZShfLmJsdWUpLG1bQysrXT1vZS5mbG9hdFRvQnl0ZShfLmFscGhhKSl9fWxldCBiPW5ldyBpZTtiLnBvc2l0aW9uPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRE9VQkxFLGNvbXBvbmVudHNQZXJBdHRyaWJ1dGU6Myx2YWx1ZXM6cH0pLGgobikmJihiLmNvbG9yPW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuVU5TSUdORURfQllURSxjb21wb25lbnRzUGVyQXR0cmlidXRlOjQsdmFsdWVzOm0sbm9ybWFsaXplOiEwfSkpLGQ9cC5sZW5ndGgvMztsZXQgdz0oZC0xKSoyLE89RHQuY3JlYXRlVHlwZWRBcnJheShkLHcpLEU9MDtmb3IoYz0wO2M8ZC0xOysrYylPW0UrK109YyxPW0UrK109YysxO3JldHVybiBuZXcgVXQoe2F0dHJpYnV0ZXM6YixpbmRpY2VzOk8scHJpbWl0aXZlVHlwZTpCdC5MSU5FUyxib3VuZGluZ1NwaGVyZTpBdC5mcm9tUG9pbnRzKGUpfSl9O0Z5PXJ1fSk7dmFyIEJ5PXt9O2RlKEJ5LHtkZWZhdWx0OigpPT5EQn0pO2Z1bmN0aW9uIExCKHQsZSl7cmV0dXJuIGgoZSkmJih0PUZ5LnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLEZ5LmNyZWF0ZUdlb21ldHJ5KHQpfXZhciBEQixVeT1aKCgpPT57ZnQoKTtadCgpO2FSKCk7REI9TEJ9KTtmdW5jdGlvbiBEYSh0KXtsZXQgZT14KHQucmFkaXVzLDEpLG89e3JhZGlpOm5ldyBhKGUsZSxlKSxzdGFja1BhcnRpdGlvbnM6dC5zdGFja1BhcnRpdGlvbnMsc2xpY2VQYXJ0aXRpb25zOnQuc2xpY2VQYXJ0aXRpb25zLHZlcnRleEZvcm1hdDp0LnZlcnRleEZvcm1hdH07dGhpcy5fZWxsaXBzb2lkR2VvbWV0cnk9bmV3IHNyKG8pLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVNwaGVyZUdlb21ldHJ5In12YXIgRkIsQ3MsVnksZlI9WigoKT0+e0Z0KCk7WHQoKTtJdCgpO2Z0KCk7YmQoKTtSbygpO0RhLnBhY2tlZExlbmd0aD1zci5wYWNrZWRMZW5ndGg7RGEucGFjaz1mdW5jdGlvbih0LGUsbil7cmV0dXJuIHkudHlwZU9mLm9iamVjdCgidmFsdWUiLHQpLHNyLnBhY2sodC5fZWxsaXBzb2lkR2VvbWV0cnksZSxuKX07RkI9bmV3IHNyLENzPXtyYWRpdXM6dm9pZCAwLHJhZGlpOm5ldyBhLHZlcnRleEZvcm1hdDpuZXcgZHQsc3RhY2tQYXJ0aXRpb25zOnZvaWQgMCxzbGljZVBhcnRpdGlvbnM6dm9pZCAwfTtEYS51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2xldCBvPXNyLnVucGFjayh0LGUsRkIpO3JldHVybiBDcy52ZXJ0ZXhGb3JtYXQ9ZHQuY2xvbmUoby5fdmVydGV4Rm9ybWF0LENzLnZlcnRleEZvcm1hdCksQ3Muc3RhY2tQYXJ0aXRpb25zPW8uX3N0YWNrUGFydGl0aW9ucyxDcy5zbGljZVBhcnRpdGlvbnM9by5fc2xpY2VQYXJ0aXRpb25zLGgobik/KGEuY2xvbmUoby5fcmFkaWksQ3MucmFkaWkpLG4uX2VsbGlwc29pZEdlb21ldHJ5PW5ldyBzcihDcyksbik6KENzLnJhZGl1cz1vLl9yYWRpaS54LG5ldyBEYShDcykpfTtEYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4gc3IuY3JlYXRlR2VvbWV0cnkodC5fZWxsaXBzb2lkR2VvbWV0cnkpfTtWeT1EYX0pO3ZhciBreT17fTtkZShreSx7ZGVmYXVsdDooKT0+VUJ9KTtmdW5jdGlvbiBCQih0LGUpe3JldHVybiBoKGUpJiYodD1WeS51bnBhY2sodCxlKSksVnkuY3JlYXRlR2VvbWV0cnkodCl9dmFyIFVCLEd5PVooKCk9PntmdCgpO2ZSKCk7VUI9QkJ9KTtmdW5jdGlvbiBGYSh0KXtsZXQgZT14KHQucmFkaXVzLDEpLG89e3JhZGlpOm5ldyBhKGUsZSxlKSxzdGFja1BhcnRpdGlvbnM6dC5zdGFja1BhcnRpdGlvbnMsc2xpY2VQYXJ0aXRpb25zOnQuc2xpY2VQYXJ0aXRpb25zLHN1YmRpdmlzaW9uczp0LnN1YmRpdmlzaW9uc307dGhpcy5fZWxsaXBzb2lkR2VvbWV0cnk9bmV3IFdyKG8pLHRoaXMuX3dvcmtlck5hbWU9ImNyZWF0ZVNwaGVyZU91dGxpbmVHZW9tZXRyeSJ9dmFyIFZCLHdjLHp5LHVSPVooKCk9PntGdCgpO1h0KCk7SXQoKTtmdCgpO0VfKCk7RmEucGFja2VkTGVuZ3RoPVdyLnBhY2tlZExlbmd0aDtGYS5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4geS50eXBlT2Yub2JqZWN0KCJ2YWx1ZSIsdCksV3IucGFjayh0Ll9lbGxpcHNvaWRHZW9tZXRyeSxlLG4pfTtWQj1uZXcgV3Isd2M9e3JhZGl1czp2b2lkIDAscmFkaWk6bmV3IGEsc3RhY2tQYXJ0aXRpb25zOnZvaWQgMCxzbGljZVBhcnRpdGlvbnM6dm9pZCAwLHN1YmRpdmlzaW9uczp2b2lkIDB9O0ZhLnVucGFjaz1mdW5jdGlvbih0LGUsbil7bGV0IG89V3IudW5wYWNrKHQsZSxWQik7cmV0dXJuIHdjLnN0YWNrUGFydGl0aW9ucz1vLl9zdGFja1BhcnRpdGlvbnMsd2Muc2xpY2VQYXJ0aXRpb25zPW8uX3NsaWNlUGFydGl0aW9ucyx3Yy5zdWJkaXZpc2lvbnM9by5fc3ViZGl2aXNpb25zLGgobik/KGEuY2xvbmUoby5fcmFkaWksd2MucmFkaWkpLG4uX2VsbGlwc29pZEdlb21ldHJ5PW5ldyBXcih3Yyksbik6KHdjLnJhZGl1cz1vLl9yYWRpaS54LG5ldyBGYSh3YykpfTtGYS5jcmVhdGVHZW9tZXRyeT1mdW5jdGlvbih0KXtyZXR1cm4gV3IuY3JlYXRlR2VvbWV0cnkodC5fZWxsaXBzb2lkR2VvbWV0cnkpfTt6eT1GYX0pO3ZhciBqeT17fTtkZShqeSx7ZGVmYXVsdDooKT0+R0J9KTtmdW5jdGlvbiBrQih0LGUpe3JldHVybiBoKGUpJiYodD16eS51bnBhY2sodCxlKSksenkuY3JlYXRlR2VvbWV0cnkodCl9dmFyIEdCLEh5PVooKCk9PntmdCgpO3VSKCk7R0I9a0J9KTt2YXIgcXk9e307ZGUocXkse2RlZmF1bHQ6KCk9PmM0fSk7ZnVuY3Rpb24gcUIodCxlLG4sbyxyLGkscyl7bGV0IGY9dC5sZW5ndGgsdT1uZXcgRmxvYXQ2NEFycmF5KGYqMyk7Zm9yKGxldCBjPTA7YzxmOysrYyl7bGV0IGw9dFtjXSxwPWVbY10sZD1uW2NdLG09TS5sZXJwKG8ud2VzdCxvLmVhc3QsbC9pdSksXz1NLmxlcnAoby5zb3V0aCxvLm5vcnRoLHAvaXUpLGc9TS5sZXJwKHIsaSxkL2l1KSxiPWN0LmZyb21SYWRpYW5zKG0sXyxnLGpCKSx3PXMuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oYixIQik7YS5wYWNrKHcsdSxjKjMpfXJldHVybiB1fWZ1bmN0aW9uIEtCKHQpe2xldCBlPXQubGVuZ3RoLG49bmV3IFVpbnQzMkFycmF5KGUrMSksbz0wO2ZvcihsZXQgcj0wO3I8ZTsrK3IpbltyXT1vLG8rPXRbcl07cmV0dXJuIG5bZV09byxufWZ1bmN0aW9uIFlCKHQsZSxuLG8pe2xldCByPW8ubGVuZ3RoLGk9dC5sZW5ndGgscz1uZXcgVWludDhBcnJheShpKSxmPVdCLHU9WEIsYz0wO2ZvcihsZXQgcD0wO3A8cjtwKyspe2xldCBkPW9bcF0sbT1kO2ZvcihsZXQgXz0xO188ZDtfKyspe2xldCBnPWMrXyxiPWctMTt1LmxvbmdpdHVkZT10W2ddLHUubGF0aXR1ZGU9ZVtnXSxmLmxvbmdpdHVkZT10W2JdLGYubGF0aXR1ZGU9ZVtiXSxjdC5lcXVhbHModSxmKSYmKG0tLSxzW2JdPTEpfW9bcF09bSxjKz1kfWxldCBsPTA7Zm9yKGxldCBwPTA7cDxpO3ArKylzW3BdIT09MSYmKHRbbF09dFtwXSxlW2xdPWVbcF0sbltsXT1uW3BdLGwrKyl9ZnVuY3Rpb24gaFIodCl7bGV0IGU9dCo4LG49ZSozLG89ZSo0O3RoaXMuc3RhcnRFbGxpcHNvaWROb3JtYWxzPW5ldyBGbG9hdDMyQXJyYXkobiksdGhpcy5lbmRFbGxpcHNvaWROb3JtYWxzPW5ldyBGbG9hdDMyQXJyYXkobiksdGhpcy5zdGFydFBvc2l0aW9uQW5kSGVpZ2h0cz1uZXcgRmxvYXQzMkFycmF5KG8pLHRoaXMuc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzPW5ldyBGbG9hdDMyQXJyYXkobyksdGhpcy5lbmRQb3NpdGlvbkFuZEhlaWdodHM9bmV3IEZsb2F0MzJBcnJheShvKSx0aGlzLmVuZEZhY2VOb3JtYWxBbmRIYWxmV2lkdGhzPW5ldyBGbG9hdDMyQXJyYXkobyksdGhpcy52ZXJ0ZXhCYXRjaElkcz1uZXcgVWludDE2QXJyYXkoZSksdGhpcy5pbmRpY2VzPUR0LmNyZWF0ZVR5cGVkQXJyYXkoZSwzNip0KSx0aGlzLnZlYzNPZmZzZXQ9MCx0aGlzLnZlYzRPZmZzZXQ9MCx0aGlzLmJhdGNoSWRPZmZzZXQ9MCx0aGlzLmluZGV4T2Zmc2V0PTAsdGhpcy52b2x1bWVTdGFydEluZGV4PTB9ZnVuY3Rpb24gcFIodCxlLG4sbyxyKXtsZXQgaT1hLnN1YnRyYWN0KG4sZSwkQikscz1hLnN1YnRyYWN0KGUsdCxsUik7cmV0dXJuIGEubm9ybWFsaXplKGksaSksYS5ub3JtYWxpemUocyxzKSxhLmRvdChpLHMpPHpCJiYocz1hLm11bHRpcGx5QnlTY2FsYXIocywtMSxsUikpLGEuYWRkKGkscyxyKSxhLmVxdWFscyhyLGEuWkVSTykmJihyPWEuc3VidHJhY3QodCxlKSksYS5jcm9zcyhyLG8sciksYS5jcm9zcyhvLHIsciksYS5ub3JtYWxpemUocixyKSxyfWZ1bmN0aW9uIHM0KHQsZSl7bGV0IG49bmV3IFVpbnQxNkFycmF5KHQucG9zaXRpb25zKSxvPW5ldyBVaW50MTZBcnJheSh0LndpZHRocykscj1uZXcgVWludDMyQXJyYXkodC5jb3VudHMpLGk9bmV3IFVpbnQxNkFycmF5KHQuYmF0Y2hJZHMpLHM9ZTQsZj1uNCx1PW80LGM9bmV3IEZsb2F0NjRBcnJheSh0LnBhY2tlZEJ1ZmZlciksbD0wLHA9Y1tsKytdLGQ9Y1tsKytdO050LnVucGFjayhjLGwscyksbCs9TnQucGFja2VkTGVuZ3RoLCQudW5wYWNrKGMsbCxmKSxsKz0kLnBhY2tlZExlbmd0aCxhLnVucGFjayhjLGwsdSk7bGV0IG0sXz1uLmxlbmd0aC8zLGc9bi5zdWJhcnJheSgwLF8pLGI9bi5zdWJhcnJheShfLDIqXyksdz1uLnN1YmFycmF5KDIqXywzKl8pO25uLnppZ1phZ0RlbHRhRGVjb2RlKGcsYix3KSxZQihnLGIsdyxyKTtsZXQgTz1yLmxlbmd0aCxFPTA7Zm9yKG09MDttPE87bSsrKXtsZXQgVT1yW21dO0UrPVUtMX1sZXQgVD1uZXcgaFIoRSksQz1xQihnLGIsdyxzLHAsZCxmLHUpO189Zy5sZW5ndGg7bGV0IE49bmV3IEZsb2F0MzJBcnJheShfKjMpO2ZvcihtPTA7bTxfOysrbSlOW20qM109Q1ttKjNdLXUueCxOW20qMysxXT1DW20qMysxXS11LnksTlttKjMrMl09Q1ttKjMrMl0tdS56O2xldCBJPTAsRD0wO2ZvcihtPTA7bTxPO20rKyl7bGV0IFU9clttXS0xLEE9b1ttXSouNSxTPWlbbV0sUD1JO2ZvcihsZXQgQj0wO0I8VTtCKyspe2xldCBqPWEudW5wYWNrKE4sSSxyNCksSD1hLnVucGFjayhOLEkrMyxpNCksaz13W0RdLEs9d1tEKzFdO2s9TS5sZXJwKHAsZCxrL2l1KSxLPU0ubGVycChwLGQsSy9pdSksRCsrO2xldCBYPVVkLFI9VmQ7aWYoQj09PTApe2xldCBvdD1QK1UqMyxhdD1hLnVucGFjayhOLG90LFVkKTtpZihhLmVxdWFscyhhdCxqKSlhLnVucGFjayhOLG90LTMsWCk7ZWxzZXtsZXQgcHQ9YS5zdWJ0cmFjdChqLEgsVWQpO1g9YS5hZGQocHQsaixVZCl9fWVsc2UgYS51bnBhY2soTixJLTMsWCk7aWYoQj09PVUtMSl7bGV0IG90PWEudW5wYWNrKE4sUCxWZCk7aWYoYS5lcXVhbHMob3QsSCkpYS51bnBhY2soTixQKzMsUik7ZWxzZXtsZXQgYXQ9YS5zdWJ0cmFjdChILGosVmQpO1I9YS5hZGQoYXQsSCxWZCl9fWVsc2UgYS51bnBhY2soTixJKzYsUik7VC5hZGRWb2x1bWUoWCxqLEgsUixrLEssQSxTLHUsZiksSSs9M31JKz0zLEQrK31sZXQgdj1ULmluZGljZXM7ZS5wdXNoKFQuc3RhcnRFbGxpcHNvaWROb3JtYWxzLmJ1ZmZlciksZS5wdXNoKFQuZW5kRWxsaXBzb2lkTm9ybWFscy5idWZmZXIpLGUucHVzaChULnN0YXJ0UG9zaXRpb25BbmRIZWlnaHRzLmJ1ZmZlciksZS5wdXNoKFQuc3RhcnRGYWNlTm9ybWFsQW5kVmVydGV4Q29ybmVySWRzLmJ1ZmZlciksZS5wdXNoKFQuZW5kUG9zaXRpb25BbmRIZWlnaHRzLmJ1ZmZlciksZS5wdXNoKFQuZW5kRmFjZU5vcm1hbEFuZEhhbGZXaWR0aHMuYnVmZmVyKSxlLnB1c2goVC52ZXJ0ZXhCYXRjaElkcy5idWZmZXIpLGUucHVzaCh2LmJ1ZmZlcik7bGV0IEw9e2luZGV4RGF0YXR5cGU6di5CWVRFU19QRVJfRUxFTUVOVD09PTI/RHQuVU5TSUdORURfU0hPUlQ6RHQuVU5TSUdORURfSU5ULHN0YXJ0RWxsaXBzb2lkTm9ybWFsczpULnN0YXJ0RWxsaXBzb2lkTm9ybWFscy5idWZmZXIsZW5kRWxsaXBzb2lkTm9ybWFsczpULmVuZEVsbGlwc29pZE5vcm1hbHMuYnVmZmVyLHN0YXJ0UG9zaXRpb25BbmRIZWlnaHRzOlQuc3RhcnRQb3NpdGlvbkFuZEhlaWdodHMuYnVmZmVyLHN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkczpULnN0YXJ0RmFjZU5vcm1hbEFuZFZlcnRleENvcm5lcklkcy5idWZmZXIsZW5kUG9zaXRpb25BbmRIZWlnaHRzOlQuZW5kUG9zaXRpb25BbmRIZWlnaHRzLmJ1ZmZlcixlbmRGYWNlTm9ybWFsQW5kSGFsZldpZHRoczpULmVuZEZhY2VOb3JtYWxBbmRIYWxmV2lkdGhzLmJ1ZmZlcix2ZXJ0ZXhCYXRjaElkczpULnZlcnRleEJhdGNoSWRzLmJ1ZmZlcixpbmRpY2VzOnYuYnVmZmVyfTtpZih0LmtlZXBEZWNvZGVkUG9zaXRpb25zKXtsZXQgVT1LQihyKTtlLnB1c2goQy5idWZmZXIsVS5idWZmZXIpLEw9X3IoTCx7ZGVjb2RlZFBvc2l0aW9uczpDLmJ1ZmZlcixkZWNvZGVkUG9zaXRpb25PZmZzZXRzOlUuYnVmZmVyfSl9cmV0dXJuIEx9dmFyIGl1LHpCLGpCLEhCLFdCLFhCLGxSLCRCLF9SLGRSLG1SLFpCLFFCLEpCLHQ0LGU0LG40LG80LFVkLHI0LGk0LFZkLGM0LEt5PVooKCk9PnthcygpO0Z0KCk7SWUoKTtycCgpO1p0KCk7JGUoKTtXdCgpO1RuKCk7c28oKTtpdT0zMjc2Nyx6Qj1NYXRoLmNvcyhNLnRvUmFkaWFucygxNTApKSxqQj1uZXcgY3QsSEI9bmV3IGE7V0I9bmV3IGN0LFhCPW5ldyBjdDtsUj1uZXcgYSwkQj1uZXcgYTtfUj1bMCwyLDYsMCw2LDQsMCwxLDMsMCwzLDIsMCw0LDUsMCw1LDEsNSwzLDEsNSw3LDMsNyw1LDQsNyw0LDYsNyw2LDIsNywyLDNdLGRSPV9SLmxlbmd0aCxtUj1uZXcgYSxaQj1uZXcgYSxRQj1uZXcgYSxKQj1uZXcgYSx0ND1uZXcgYTtoUi5wcm90b3R5cGUuYWRkVm9sdW1lPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMsZix1LGMpe2xldCBsPWEuYWRkKGUsdSxtUikscD1jLmdlb2RldGljU3VyZmFjZU5vcm1hbChsLFpCKTtsPWEuYWRkKG4sdSxtUik7bGV0IGQ9Yy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwobCxKQiksbT1wUih0LGUsbixwLFFCKSxfPXBSKG8sbixlLGQsdDQpLGc9dGhpcy5zdGFydEVsbGlwc29pZE5vcm1hbHMsYj10aGlzLmVuZEVsbGlwc29pZE5vcm1hbHMsdz10aGlzLnN0YXJ0UG9zaXRpb25BbmRIZWlnaHRzLE89dGhpcy5zdGFydEZhY2VOb3JtYWxBbmRWZXJ0ZXhDb3JuZXJJZHMsRT10aGlzLmVuZFBvc2l0aW9uQW5kSGVpZ2h0cyxUPXRoaXMuZW5kRmFjZU5vcm1hbEFuZEhhbGZXaWR0aHMsQz10aGlzLnZlcnRleEJhdGNoSWRzLE49dGhpcy5iYXRjaElkT2Zmc2V0LEk9dGhpcy52ZWMzT2Zmc2V0LEQ9dGhpcy52ZWM0T2Zmc2V0LHY7Zm9yKHY9MDt2PDg7disrKWEucGFjayhwLGcsSSksYS5wYWNrKGQsYixJKSxhLnBhY2soZSx3LEQpLHdbRCszXT1yLGEucGFjayhuLEUsRCksRVtEKzNdPWksYS5wYWNrKG0sTyxEKSxPW0QrM109dixhLnBhY2soXyxULEQpLFRbRCszXT1zLENbTisrXT1mLEkrPTMsRCs9NDt0aGlzLmJhdGNoSWRPZmZzZXQ9Tix0aGlzLnZlYzNPZmZzZXQ9SSx0aGlzLnZlYzRPZmZzZXQ9RDtsZXQgTD10aGlzLmluZGljZXMsVT10aGlzLnZvbHVtZVN0YXJ0SW5kZXgsQT10aGlzLmluZGV4T2Zmc2V0O2Zvcih2PTA7djxkUjt2KyspTFtBK3ZdPV9SW3ZdK1U7dGhpcy52b2x1bWVTdGFydEluZGV4Kz04LHRoaXMuaW5kZXhPZmZzZXQrPWRSfTtlND1uZXcgTnQsbjQ9bmV3ICQsbzQ9bmV3IGEsVWQ9bmV3IGEscjQ9bmV3IGEsaTQ9bmV3IGEsVmQ9bmV3IGE7YzQ9UWUoczQpfSk7ZnVuY3Rpb24gYTQodCl7dGhpcy5vZmZzZXQ9dC5vZmZzZXQsdGhpcy5jb3VudD10LmNvdW50LHRoaXMuY29sb3I9dC5jb2xvcix0aGlzLmJhdGNoSWRzPXQuYmF0Y2hJZHN9dmFyIHlSLGdSPVooKCk9Pnt5Uj1hNH0pO3ZhciBXeT17fTtkZShXeSx7ZGVmYXVsdDooKT0+VDR9KTtmdW5jdGlvbiBkNCh0LGUpe2xldCBuPWUqZjQsbz1hLnVucGFjayh0LG4sR2QpO24rPWEucGFja2VkTGVuZ3RoO2xldCByPXN0LnVucGFjayh0LG4sQ3IubW9kZWxNYXRyaXgpO3N0Lm11bHRpcGx5QnlTY2FsZShyLG8scik7bGV0IGk9Q3IuYm91bmRpbmdWb2x1bWU7cmV0dXJuIGEuY2xvbmUoYS5aRVJPLGkuY2VudGVyKSxpLnJhZGl1cz1NYXRoLnNxcnQoMyksQ3J9ZnVuY3Rpb24gbTQodCxlKXtsZXQgbj1lKnU0LG89dFtuKytdLHI9dFtuKytdLGk9YS5mcm9tRWxlbWVudHMobyxvLHIsR2QpLHM9c3QudW5wYWNrKHQsbixDci5tb2RlbE1hdHJpeCk7c3QubXVsdGlwbHlCeVNjYWxlKHMsaSxzKTtsZXQgZj1Dci5ib3VuZGluZ1ZvbHVtZTtyZXR1cm4gYS5jbG9uZShhLlpFUk8sZi5jZW50ZXIpLGYucmFkaXVzPU1hdGguc3FydCgyKSxDcn1mdW5jdGlvbiBoNCh0LGUpe2xldCBuPWUqbDQsbz1hLnVucGFjayh0LG4sR2QpO24rPWEucGFja2VkTGVuZ3RoO2xldCByPXN0LnVucGFjayh0LG4sQ3IubW9kZWxNYXRyaXgpO3N0Lm11bHRpcGx5QnlTY2FsZShyLG8scik7bGV0IGk9Q3IuYm91bmRpbmdWb2x1bWU7cmV0dXJuIGEuY2xvbmUoYS5aRVJPLGkuY2VudGVyKSxpLnJhZGl1cz0xLENyfWZ1bmN0aW9uIF80KHQsZSl7bGV0IG49ZSpwNCxvPXRbbisrXSxyPWEudW5wYWNrKHQsbixHZCksaT1zdC5mcm9tVHJhbnNsYXRpb24ocixDci5tb2RlbE1hdHJpeCk7c3QubXVsdGlwbHlCeVVuaWZvcm1TY2FsZShpLG8saSk7bGV0IHM9Q3IuYm91bmRpbmdWb2x1bWU7cmV0dXJuIGEuY2xvbmUoYS5aRVJPLHMuY2VudGVyKSxzLnJhZGl1cz0xLENyfWZ1bmN0aW9uIGtkKHQsZSxuLG8scil7aWYoIWgoZSkpcmV0dXJuO2xldCBpPW4ubGVuZ3RoLHM9by5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxmPW8uaW5kaWNlcyx1PXQucG9zaXRpb25zLGM9dC52ZXJ0ZXhCYXRjaElkcyxsPXQuaW5kaWNlcyxwPXQuYmF0Y2hJZHMsZD10LmJhdGNoVGFibGVDb2xvcnMsbT10LmJhdGNoZWRJbmRpY2VzLF89dC5pbmRleE9mZnNldHMsZz10LmluZGV4Q291bnRzLGI9dC5ib3VuZGluZ1ZvbHVtZXMsdz10Lm1vZGVsTWF0cml4LE89dC5jZW50ZXIsRT10LnBvc2l0aW9uT2Zmc2V0LFQ9dC5iYXRjaElkSW5kZXgsQz10LmluZGV4T2Zmc2V0LE49dC5iYXRjaGVkSW5kaWNlc09mZnNldDtmb3IobGV0IEk9MDtJPGk7KytJKXtsZXQgRD1yKGUsSSksdj1ELm1vZGVsTWF0cml4O3N0Lm11bHRpcGx5KHcsdix2KTtsZXQgTD1uW0ldLFU9cy5sZW5ndGg7Zm9yKGxldCBQPTA7UDxVO1ArPTMpe2xldCBCPWEudW5wYWNrKHMsUCx5NCk7c3QubXVsdGlwbHlCeVBvaW50KHYsQixCKSxhLnN1YnRyYWN0KEIsTyxCKSxhLnBhY2soQix1LEUqMytQKSxjW1QrK109TH1sZXQgQT1mLmxlbmd0aDtmb3IobGV0IFA9MDtQPEE7KytQKWxbQytQXT1mW1BdK0U7bGV0IFM9SStOO21bU109bmV3IHlSKHtvZmZzZXQ6Qyxjb3VudDpBLGNvbG9yOm9lLmZyb21SZ2JhKGRbTF0pLGJhdGNoSWRzOltMXX0pLHBbU109TCxfW1NdPUMsZ1tTXT1BLGJbU109QXQudHJhbnNmb3JtKEQuYm91bmRpbmdWb2x1bWUsdiksRSs9VS8zLEMrPUF9dC5wb3NpdGlvbk9mZnNldD1FLHQuYmF0Y2hJZEluZGV4PVQsdC5pbmRleE9mZnNldD1DLHQuYmF0Y2hlZEluZGljZXNPZmZzZXQrPWl9ZnVuY3Rpb24gZzQodCl7bGV0IGU9bmV3IEZsb2F0NjRBcnJheSh0KSxuPTA7YS51bnBhY2soZSxuLEFSKSxuKz1hLnBhY2tlZExlbmd0aCxzdC51bnBhY2soZSxuLGJSKX1mdW5jdGlvbiBBNCh0KXtsZXQgZT10Lmxlbmd0aCxuPTA7Zm9yKGxldCBvPTA7bzxlOysrbyluKz1vZS5wYWNrZWRMZW5ndGgrMyt0W29dLmJhdGNoSWRzLmxlbmd0aDtyZXR1cm4gbn1mdW5jdGlvbiBiNCh0LGUsbil7bGV0IG89bi5sZW5ndGgscj0yK28qQXQucGFja2VkTGVuZ3RoKzErQTQoZSksaT1uZXcgRmxvYXQ2NEFycmF5KHIpLHM9MDtpW3MrK109dCxpW3MrK109bztmb3IobGV0IHU9MDt1PG87Kyt1KUF0LnBhY2soblt1XSxpLHMpLHMrPUF0LnBhY2tlZExlbmd0aDtsZXQgZj1lLmxlbmd0aDtpW3MrK109Zjtmb3IobGV0IHU9MDt1PGY7Kyt1KXtsZXQgYz1lW3VdO29lLnBhY2soYy5jb2xvcixpLHMpLHMrPW9lLnBhY2tlZExlbmd0aCxpW3MrK109Yy5vZmZzZXQsaVtzKytdPWMuY291bnQ7bGV0IGw9Yy5iYXRjaElkcyxwPWwubGVuZ3RoO2lbcysrXT1wO2ZvcihsZXQgZD0wO2Q8cDsrK2QpaVtzKytdPWxbZF19cmV0dXJuIGl9ZnVuY3Rpb24gdzQodCxlKXtsZXQgbj1oKHQuYm94ZXMpP25ldyBGbG9hdDMyQXJyYXkodC5ib3hlcyk6dm9pZCAwLG89aCh0LmJveEJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkodC5ib3hCYXRjaElkcyk6dm9pZCAwLHI9aCh0LmN5bGluZGVycyk/bmV3IEZsb2F0MzJBcnJheSh0LmN5bGluZGVycyk6dm9pZCAwLGk9aCh0LmN5bGluZGVyQmF0Y2hJZHMpP25ldyBVaW50MTZBcnJheSh0LmN5bGluZGVyQmF0Y2hJZHMpOnZvaWQgMCxzPWgodC5lbGxpcHNvaWRzKT9uZXcgRmxvYXQzMkFycmF5KHQuZWxsaXBzb2lkcyk6dm9pZCAwLGY9aCh0LmVsbGlwc29pZEJhdGNoSWRzKT9uZXcgVWludDE2QXJyYXkodC5lbGxpcHNvaWRCYXRjaElkcyk6dm9pZCAwLHU9aCh0LnNwaGVyZXMpP25ldyBGbG9hdDMyQXJyYXkodC5zcGhlcmVzKTp2b2lkIDAsYz1oKHQuc3BoZXJlQmF0Y2hJZHMpP25ldyBVaW50MTZBcnJheSh0LnNwaGVyZUJhdGNoSWRzKTp2b2lkIDAsbD1oKG4pP28ubGVuZ3RoOjAscD1oKHIpP2kubGVuZ3RoOjAsZD1oKHMpP2YubGVuZ3RoOjAsbT1oKHUpP2MubGVuZ3RoOjAsXz14Zi5nZXRVbml0Qm94KCksZz1IZi5nZXRVbml0Q3lsaW5kZXIoKSxiPXNyLmdldFVuaXRFbGxpcHNvaWQoKSx3PV8uYXR0cmlidXRlcy5wb3NpdGlvbi52YWx1ZXMsTz1nLmF0dHJpYnV0ZXMucG9zaXRpb24udmFsdWVzLEU9Yi5hdHRyaWJ1dGVzLnBvc2l0aW9uLnZhbHVlcyxUPXcubGVuZ3RoKmw7VCs9Ty5sZW5ndGgqcCxUKz1FLmxlbmd0aCooZCttKTtsZXQgQz1fLmluZGljZXMsTj1nLmluZGljZXMsST1iLmluZGljZXMsRD1DLmxlbmd0aCpsO0QrPU4ubGVuZ3RoKnAsRCs9SS5sZW5ndGgqKGQrbSk7bGV0IHY9bmV3IEZsb2F0MzJBcnJheShUKSxMPW5ldyBVaW50MTZBcnJheShULzMpLFU9RHQuY3JlYXRlVHlwZWRBcnJheShULzMsRCksQT1sK3ArZCttLFM9bmV3IFVpbnQxNkFycmF5KEEpLFA9bmV3IEFycmF5KEEpLEI9bmV3IFVpbnQzMkFycmF5KEEpLGo9bmV3IFVpbnQzMkFycmF5KEEpLEg9bmV3IEFycmF5KEEpO2c0KHQucGFja2VkQnVmZmVyKTtsZXQgaz17YmF0Y2hUYWJsZUNvbG9yczpuZXcgVWludDMyQXJyYXkodC5iYXRjaFRhYmxlQ29sb3JzKSxwb3NpdGlvbnM6dix2ZXJ0ZXhCYXRjaElkczpMLGluZGljZXM6VSxiYXRjaElkczpTLGJhdGNoZWRJbmRpY2VzOlAsaW5kZXhPZmZzZXRzOkIsaW5kZXhDb3VudHM6aixib3VuZGluZ1ZvbHVtZXM6SCxwb3NpdGlvbk9mZnNldDowLGJhdGNoSWRJbmRleDowLGluZGV4T2Zmc2V0OjAsYmF0Y2hlZEluZGljZXNPZmZzZXQ6MCxtb2RlbE1hdHJpeDpiUixjZW50ZXI6QVJ9O2tkKGssbixvLF8sZDQpLGtkKGsscixpLGcsbTQpLGtkKGsscyxmLGIsaDQpLGtkKGssdSxjLGIsXzQpO2xldCBLPWI0KFUuQllURVNfUEVSX0VMRU1FTlQsUCxIKTtyZXR1cm4gZS5wdXNoKHYuYnVmZmVyLEwuYnVmZmVyLFUuYnVmZmVyKSxlLnB1c2goUy5idWZmZXIsQi5idWZmZXIsai5idWZmZXIpLGUucHVzaChLLmJ1ZmZlcikse3Bvc2l0aW9uczp2LmJ1ZmZlcix2ZXJ0ZXhCYXRjaElkczpMLmJ1ZmZlcixpbmRpY2VzOlUuYnVmZmVyLGluZGV4T2Zmc2V0czpCLmJ1ZmZlcixpbmRleENvdW50czpqLmJ1ZmZlcixiYXRjaElkczpTLmJ1ZmZlcixwYWNrZWRCdWZmZXI6Sy5idWZmZXJ9fXZhciBHZCxmNCx1NCxsNCxwNCxDcix5NCxBUixiUixUNCxYeT1aKCgpPT57dmUoKTtjMCgpO0Z0KCk7TWEoKTt1XygpO2Z0KCk7YmQoKTskZSgpO1VuKCk7Z1IoKTtzbygpO0dkPW5ldyBhLGY0PXN0LnBhY2tlZExlbmd0aCthLnBhY2tlZExlbmd0aCx1ND1zdC5wYWNrZWRMZW5ndGgrMixsND1zdC5wYWNrZWRMZW5ndGgrYS5wYWNrZWRMZW5ndGgscDQ9YS5wYWNrZWRMZW5ndGgrMSxDcj17bW9kZWxNYXRyaXg6bmV3IHN0LGJvdW5kaW5nVm9sdW1lOm5ldyBBdH07eTQ9bmV3IGE7QVI9bmV3IGEsYlI9bmV3IHN0O1Q0PVFlKHc0KX0pO3ZhciAkeT17fTtkZSgkeSx7ZGVmYXVsdDooKT0+QzR9KTtmdW5jdGlvbiBSNCh0KXt0PW5ldyBGbG9hdDY0QXJyYXkodCk7bGV0IGU9MDt6ZC5taW49dFtlKytdLHpkLm1heD10W2UrK10sTnQudW5wYWNrKHQsZSx3UiksZSs9TnQucGFja2VkTGVuZ3RoLCQudW5wYWNrKHQsZSxUUil9ZnVuY3Rpb24gUzQodCxlKXtsZXQgbj1uZXcgVWludDE2QXJyYXkodC5wb3NpdGlvbnMpO1I0KHQucGFja2VkQnVmZmVyKTtsZXQgbz13UixyPVRSLGk9emQubWluLHM9emQubWF4LGY9bi5sZW5ndGgvMyx1PW4uc3ViYXJyYXkoMCxmKSxjPW4uc3ViYXJyYXkoZiwyKmYpLGw9bi5zdWJhcnJheSgyKmYsMypmKTtubi56aWdaYWdEZWx0YURlY29kZSh1LGMsbCk7bGV0IHA9bmV3IEZsb2F0NjRBcnJheShuLmxlbmd0aCk7Zm9yKGxldCBkPTA7ZDxmOysrZCl7bGV0IG09dVtkXSxfPWNbZF0sZz1sW2RdLGI9TS5sZXJwKG8ud2VzdCxvLmVhc3QsbS9ZeSksdz1NLmxlcnAoby5zb3V0aCxvLm5vcnRoLF8vWXkpLE89TS5sZXJwKGkscyxnL1l5KSxFPWN0LmZyb21SYWRpYW5zKGIsdyxPLE80KSxUPXIuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oRSxFNCk7YS5wYWNrKFQscCxkKjMpfXJldHVybiBlLnB1c2gocC5idWZmZXIpLHtwb3NpdGlvbnM6cC5idWZmZXJ9fXZhciBZeSxPNCxFNCx3UixUUix6ZCxDNCxaeT1aKCgpPT57YXMoKTtGdCgpO0llKCk7WnQoKTtXdCgpO1RuKCk7c28oKTtZeT0zMjc2NyxPND1uZXcgY3QsRTQ9bmV3IGEsd1I9bmV3IE50LFRSPW5ldyAkLHpkPXttaW46dm9pZCAwLG1heDp2b2lkIDB9O0M0PVFlKFM0KX0pO3ZhciBReT17fTtkZShReSx7ZGVmYXVsdDooKT0+QjR9KTtmdW5jdGlvbiB4NCh0KXtsZXQgZT1uZXcgRmxvYXQ2NEFycmF5KHQpLG49MDtCYS5pbmRleEJ5dGVzUGVyRWxlbWVudD1lW24rK10sQmEubWluPWVbbisrXSxCYS5tYXg9ZVtuKytdLGEudW5wYWNrKGUsbixTUiksbis9YS5wYWNrZWRMZW5ndGgsJC51bnBhY2soZSxuLENSKSxuKz0kLnBhY2tlZExlbmd0aCxOdC51bnBhY2soZSxuLHhSKX1mdW5jdGlvbiBQNCh0KXtsZXQgZT10Lmxlbmd0aCxuPTA7Zm9yKGxldCBvPTA7bzxlOysrbyluKz1vZS5wYWNrZWRMZW5ndGgrMyt0W29dLmJhdGNoSWRzLmxlbmd0aDtyZXR1cm4gbn1mdW5jdGlvbiBNNCh0LGUsbil7bGV0IG89ZS5sZW5ndGgscj0yK28qU28ucGFja2VkTGVuZ3RoKzErUDQobiksaT1uZXcgRmxvYXQ2NEFycmF5KHIpLHM9MDtpW3MrK109dCxpW3MrK109bztmb3IobGV0IHU9MDt1PG87Kyt1KVNvLnBhY2soZVt1XSxpLHMpLHMrPVNvLnBhY2tlZExlbmd0aDtsZXQgZj1uLmxlbmd0aDtpW3MrK109Zjtmb3IobGV0IHU9MDt1PGY7Kyt1KXtsZXQgYz1uW3VdO29lLnBhY2soYy5jb2xvcixpLHMpLHMrPW9lLnBhY2tlZExlbmd0aCxpW3MrK109Yy5vZmZzZXQsaVtzKytdPWMuY291bnQ7bGV0IGw9Yy5iYXRjaElkcyxwPWwubGVuZ3RoO2lbcysrXT1wO2ZvcihsZXQgZD0wO2Q8cDsrK2QpaVtzKytdPWxbZF19cmV0dXJuIGl9ZnVuY3Rpb24gRjQodCxlKXt4NCh0LnBhY2tlZEJ1ZmZlcik7bGV0IG47QmEuaW5kZXhCeXRlc1BlckVsZW1lbnQ9PT0yP249bmV3IFVpbnQxNkFycmF5KHQuaW5kaWNlcyk6bj1uZXcgVWludDMyQXJyYXkodC5pbmRpY2VzKTtsZXQgcj1uZXcgVWludDE2QXJyYXkodC5wb3NpdGlvbnMpLGk9bmV3IFVpbnQzMkFycmF5KHQuY291bnRzKSxzPW5ldyBVaW50MzJBcnJheSh0LmluZGV4Q291bnRzKSxmPW5ldyBVaW50MzJBcnJheSh0LmJhdGNoSWRzKSx1PW5ldyBVaW50MzJBcnJheSh0LmJhdGNoVGFibGVDb2xvcnMpLGM9bmV3IEFycmF5KGkubGVuZ3RoKSxsPVNSLHA9Q1IsZD14UixtPUJhLm1pbixfPUJhLm1heCxnPXQubWluaW11bUhlaWdodHMsYj10Lm1heGltdW1IZWlnaHRzO2goZykmJmgoYikmJihnPW5ldyBGbG9hdDMyQXJyYXkoZyksYj1uZXcgRmxvYXQzMkFycmF5KGIpKTtsZXQgdyxPLEUsVD1yLmxlbmd0aC8yLEM9ci5zdWJhcnJheSgwLFQpLE49ci5zdWJhcnJheShULDIqVCk7bm4uemlnWmFnRGVsdGFEZWNvZGUoQyxOKTtsZXQgST1uZXcgRmxvYXQ2NEFycmF5KFQqMyk7Zm9yKHc9MDt3PFQ7Kyt3KXtsZXQgcnQ9Q1t3XSxQdD1OW3ddLGd0PU0ubGVycChkLndlc3QsZC5lYXN0LHJ0L09SKSxDdD1NLmxlcnAoZC5zb3V0aCxkLm5vcnRoLFB0L09SKSxtdD1jdC5mcm9tUmFkaWFucyhndCxDdCwwLFJSKSx1dD1wLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKG10LEVSKTthLnBhY2sodXQsSSx3KjMpfWxldCBEPWkubGVuZ3RoLHY9bmV3IEFycmF5KEQpLEw9bmV3IEFycmF5KEQpLFU9MCxBPTA7Zm9yKHc9MDt3PEQ7Kyt3KXZbd109VSxMW3ddPUEsVSs9aVt3XSxBKz1zW3ddO2xldCBTPW5ldyBGbG9hdDMyQXJyYXkoVCozKjIpLFA9bmV3IFVpbnQxNkFycmF5KFQqMiksQj1uZXcgVWludDMyQXJyYXkoTC5sZW5ndGgpLGo9bmV3IFVpbnQzMkFycmF5KHMubGVuZ3RoKSxIPVtdLGs9e307Zm9yKHc9MDt3PEQ7Kyt3KUU9dVt3XSxoKGtbRV0pPyhrW0VdLnBvc2l0aW9uTGVuZ3RoKz1pW3ddLGtbRV0uaW5kZXhMZW5ndGgrPXNbd10sa1tFXS5iYXRjaElkcy5wdXNoKHcpKTprW0VdPXtwb3NpdGlvbkxlbmd0aDppW3ddLGluZGV4TGVuZ3RoOnNbd10sb2Zmc2V0OjAsaW5kZXhPZmZzZXQ6MCxiYXRjaElkczpbd119O2xldCBLLFg9MCxSPTA7Zm9yKEUgaW4gaylpZihrLmhhc093blByb3BlcnR5KEUpKXtLPWtbRV0sSy5vZmZzZXQ9WCxLLmluZGV4T2Zmc2V0PVI7bGV0IHJ0PUsucG9zaXRpb25MZW5ndGgqMixQdD1LLmluZGV4TGVuZ3RoKjIrSy5wb3NpdGlvbkxlbmd0aCo2O1grPXJ0LFIrPVB0LEsuaW5kZXhMZW5ndGg9UHR9bGV0IG90PVtdO2ZvcihFIGluIGspay5oYXNPd25Qcm9wZXJ0eShFKSYmKEs9a1tFXSxvdC5wdXNoKHtjb2xvcjpvZS5mcm9tUmdiYShwYXJzZUludChFKSksb2Zmc2V0OksuaW5kZXhPZmZzZXQsY291bnQ6Sy5pbmRleExlbmd0aCxiYXRjaElkczpLLmJhdGNoSWRzfSkpO2Zvcih3PTA7dzxEOysrdyl7RT11W3ddLEs9a1tFXTtsZXQgcnQ9Sy5vZmZzZXQsUHQ9cnQqMyxndD1ydCxDdD12W3ddLG10PWlbd10sdXQ9Zlt3XSx2dD1tLHp0PV87aChnKSYmaChiKSYmKHZ0PWdbd10senQ9Ylt3XSk7bGV0IG1lPU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxhZT1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFkscGU9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLHVlPU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtmb3IoTz0wO088bXQ7KytPKXtsZXQgZ2U9YS51bnBhY2soSSxDdCozK08qMyxFUik7cC5zY2FsZVRvR2VvZGV0aWNTdXJmYWNlKGdlLGdlKTtsZXQgRWU9cC5jYXJ0ZXNpYW5Ub0NhcnRvZ3JhcGhpYyhnZSxSUiksdW49RWUubGF0aXR1ZGUsa2U9RWUubG9uZ2l0dWRlO21lPU1hdGgubWluKHVuLG1lKSxhZT1NYXRoLm1heCh1bixhZSkscGU9TWF0aC5taW4oa2UscGUpLHVlPU1hdGgubWF4KGtlLHVlKTtsZXQgYmU9cC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoZ2UsTjQpLGxuPWEubXVsdGlwbHlCeVNjYWxhcihiZSx2dCxJNCkscG49YS5hZGQoZ2UsbG4sdjQpO2xuPWEubXVsdGlwbHlCeVNjYWxhcihiZSx6dCxsbik7bGV0IEVuPWEuYWRkKGdlLGxuLEw0KTthLnN1YnRyYWN0KEVuLGwsRW4pLGEuc3VidHJhY3QocG4sbCxwbiksYS5wYWNrKEVuLFMsUHQpLGEucGFjayhwbixTLFB0KzMpLFBbZ3RdPXV0LFBbZ3QrMV09dXQsUHQrPTYsZ3QrPTJ9ZD1ENCxkLndlc3Q9cGUsZC5lYXN0PXVlLGQuc291dGg9bWUsZC5ub3J0aD1hZSxjW3ddPVNvLmZyb21SZWN0YW5nbGUoZCxtLF8scCk7bGV0IFF0PUsuaW5kZXhPZmZzZXQsSnQ9TFt3XSxOZT1zW3ddO2ZvcihCW3ddPVF0LE89MDtPPE5lO08rPTMpe2xldCBnZT1uW0p0K09dLUN0LEVlPW5bSnQrTysxXS1DdCx1bj1uW0p0K08rMl0tQ3Q7SFtRdCsrXT1nZSoyK3J0LEhbUXQrK109RWUqMitydCxIW1F0KytdPXVuKjIrcnQsSFtRdCsrXT11bioyKzErcnQsSFtRdCsrXT1FZSoyKzErcnQsSFtRdCsrXT1nZSoyKzErcnR9Zm9yKE89MDtPPG10OysrTyl7bGV0IGdlPU8sRWU9KE8rMSklbXQ7SFtRdCsrXT1nZSoyKzErcnQsSFtRdCsrXT1FZSoyK3J0LEhbUXQrK109Z2UqMitydCxIW1F0KytdPWdlKjIrMStydCxIW1F0KytdPUVlKjIrMStydCxIW1F0KytdPUVlKjIrcnR9Sy5vZmZzZXQrPW10KjIsSy5pbmRleE9mZnNldD1RdCxqW3ddPVF0LUJbd119SD1EdC5jcmVhdGVUeXBlZEFycmF5KFMubGVuZ3RoLzMsSCk7bGV0IGF0PW90Lmxlbmd0aDtmb3IobGV0IHJ0PTA7cnQ8YXQ7KytydCl7bGV0IFB0PW90W3J0XS5iYXRjaElkcyxndD0wLEN0PVB0Lmxlbmd0aDtmb3IobGV0IG10PTA7bXQ8Q3Q7KyttdClndCs9altQdFttdF1dO290W3J0XS5jb3VudD1ndH1sZXQgcHQ9SC5CWVRFU19QRVJfRUxFTUVOVD09PTI/RHQuVU5TSUdORURfU0hPUlQ6RHQuVU5TSUdORURfSU5ULHl0PU00KHB0LGMsb3QpO3JldHVybiBlLnB1c2goUy5idWZmZXIsSC5idWZmZXIsQi5idWZmZXIsai5idWZmZXIsUC5idWZmZXIseXQuYnVmZmVyKSx7cG9zaXRpb25zOlMuYnVmZmVyLGluZGljZXM6SC5idWZmZXIsaW5kZXhPZmZzZXRzOkIuYnVmZmVyLGluZGV4Q291bnRzOmouYnVmZmVyLGJhdGNoSWRzOlAuYnVmZmVyLHBhY2tlZEJ1ZmZlcjp5dC5idWZmZXJ9fXZhciBTUixDUix4UixCYSxPUixFUixONCxJNCx2NCxMNCxSUixENCxCNCxKeT1aKCgpPT57YXMoKTtGdCgpO0llKCk7TWEoKTtmdCgpO1p0KCk7JGUoKTtXdCgpO2RhKCk7VG4oKTtzbygpO1NSPW5ldyBhLENSPW5ldyAkLHhSPW5ldyBOdCxCYT17bWluOnZvaWQgMCxtYXg6dm9pZCAwLGluZGV4Qnl0ZXNQZXJFbGVtZW50OnZvaWQgMH07T1I9MzI3NjcsRVI9bmV3IGEsTjQ9bmV3IGEsSTQ9bmV3IGEsdjQ9bmV3IGEsTDQ9bmV3IGEsUlI9bmV3IGN0LEQ0PW5ldyBOdDtCND1RZShGNCl9KTtmdW5jdGlvbiBrNCh0LGUsbixvLHIpe2xldCBpPXQubGVuZ3RoLzMscz10LnN1YmFycmF5KDAsaSksZj10LnN1YmFycmF5KGksMippKSx1PXQuc3ViYXJyYXkoMippLDMqaSk7bm4uemlnWmFnRGVsdGFEZWNvZGUocyxmLHUpO2xldCBjPW5ldyBGbG9hdDY0QXJyYXkodC5sZW5ndGgpO2ZvcihsZXQgbD0wO2w8aTsrK2wpe2xldCBwPXNbbF0sZD1mW2xdLG09dVtsXSxfPU0ubGVycChlLndlc3QsZS5lYXN0LHAvdGcpLGc9TS5sZXJwKGUuc291dGgsZS5ub3J0aCxkL3RnKSxiPU0ubGVycChuLG8sbS90Zyksdz1jdC5mcm9tUmFkaWFucyhfLGcsYixVNCksTz1yLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKHcsVjQpO2EucGFjayhPLGMsbCozKX1yZXR1cm4gY312YXIgdGcsVTQsVjQsUFIsTVI9WigoKT0+e2FzKCk7RnQoKTtJZSgpO1d0KCk7dGc9MzI3NjcsVTQ9bmV3IGN0LFY0PW5ldyBhO1BSPWs0fSk7dmFyIGVnPXt9O2RlKGVnLHtkZWZhdWx0OigpPT5xNH0pO2Z1bmN0aW9uIEc0KHQpe3Q9bmV3IEZsb2F0NjRBcnJheSh0KTtsZXQgZT0wO2pkLm1pbj10W2UrK10samQubWF4PXRbZSsrXSxOdC51bnBhY2sodCxlLERSKSxlKz1OdC5wYWNrZWRMZW5ndGgsJC51bnBhY2sodCxlLEZSKSxlKz0kLnBhY2tlZExlbmd0aCxhLnVucGFjayh0LGUsQlIpfWZ1bmN0aW9uIHo0KHQpe2xldCBlPXQubGVuZ3RoLG49bmV3IFVpbnQzMkFycmF5KGUrMSksbz0wO2ZvcihsZXQgcj0wO3I8ZTsrK3IpbltyXT1vLG8rPXRbcl07cmV0dXJuIG5bZV09byxufWZ1bmN0aW9uIEg0KHQsZSl7bGV0IG49bmV3IFVpbnQxNkFycmF5KHQucG9zaXRpb25zKSxvPW5ldyBVaW50MTZBcnJheSh0LndpZHRocykscj1uZXcgVWludDMyQXJyYXkodC5jb3VudHMpLGk9bmV3IFVpbnQxNkFycmF5KHQuYmF0Y2hJZHMpO0c0KHQucGFja2VkQnVmZmVyKTtsZXQgcz1EUixmPUZSLHU9QlIsYz1qZC5taW4sbD1qZC5tYXgscD1QUihuLHMsYyxsLGYpLGQ9cC5sZW5ndGgvMyxtPWQqNC00LF89bmV3IEZsb2F0MzJBcnJheShtKjMpLGc9bmV3IEZsb2F0MzJBcnJheShtKjMpLGI9bmV3IEZsb2F0MzJBcnJheShtKjMpLHc9bmV3IEZsb2F0MzJBcnJheShtKjIpLE89bmV3IFVpbnQxNkFycmF5KG0pLEU9MCxUPTAsQz0wLE4sST0wLEQ9ci5sZW5ndGg7Zm9yKE49MDtOPEQ7KytOKXtsZXQgUz1yW05dLFA9b1tOXSxCPWlbTl07Zm9yKGxldCBqPTA7ajxTOysrail7bGV0IEg7aWYoaj09PTApe2xldCBvdD1hLnVucGFjayhwLEkqMyxOUiksYXQ9YS51bnBhY2socCwoSSsxKSozLElSKTtIPWEuc3VidHJhY3Qob3QsYXQsdlIpLGEuYWRkKG90LEgsSCl9ZWxzZSBIPWEudW5wYWNrKHAsKEkrai0xKSozLHZSKTtsZXQgaz1hLnVucGFjayhwLChJK2opKjMsajQpLEs7aWYoaj09PVMtMSl7bGV0IG90PWEudW5wYWNrKHAsKEkrUy0xKSozLE5SKSxhdD1hLnVucGFjayhwLChJK1MtMikqMyxJUik7Sz1hLnN1YnRyYWN0KG90LGF0LExSKSxhLmFkZChvdCxLLEspfWVsc2UgSz1hLnVucGFjayhwLChJK2orMSkqMyxMUik7YS5zdWJ0cmFjdChILHUsSCksYS5zdWJ0cmFjdChrLHUsayksYS5zdWJ0cmFjdChLLHUsSyk7bGV0IFg9aj09PTA/MjowLFI9aj09PVMtMT8yOjQ7Zm9yKGxldCBvdD1YO290PFI7KytvdCl7YS5wYWNrKGssXyxFKSxhLnBhY2soSCxnLEUpLGEucGFjayhLLGIsRSksRSs9MztsZXQgYXQ9b3QtMjwwPy0xOjE7d1tUKytdPTIqKG90JTIpLTEsd1tUKytdPWF0KlAsT1tDKytdPUJ9fUkrPVN9bGV0IHY9RHQuY3JlYXRlVHlwZWRBcnJheShtLGQqNi02KSxMPTAsVT0wO2ZvcihEPWQtMSxOPTA7TjxEOysrTil2W1UrK109TCx2W1UrK109TCsyLHZbVSsrXT1MKzEsdltVKytdPUwrMSx2W1UrK109TCsyLHZbVSsrXT1MKzMsTCs9NDtlLnB1c2goXy5idWZmZXIsZy5idWZmZXIsYi5idWZmZXIpLGUucHVzaCh3LmJ1ZmZlcixPLmJ1ZmZlcix2LmJ1ZmZlcik7bGV0IEE9e2luZGV4RGF0YXR5cGU6di5CWVRFU19QRVJfRUxFTUVOVD09PTI/RHQuVU5TSUdORURfU0hPUlQ6RHQuVU5TSUdORURfSU5ULGN1cnJlbnRQb3NpdGlvbnM6Xy5idWZmZXIscHJldmlvdXNQb3NpdGlvbnM6Zy5idWZmZXIsbmV4dFBvc2l0aW9uczpiLmJ1ZmZlcixleHBhbmRBbmRXaWR0aDp3LmJ1ZmZlcixiYXRjaElkczpPLmJ1ZmZlcixpbmRpY2VzOnYuYnVmZmVyfTtpZih0LmtlZXBEZWNvZGVkUG9zaXRpb25zKXtsZXQgUz16NChyKTtlLnB1c2gocC5idWZmZXIsUy5idWZmZXIpLEE9X3IoQSx7ZGVjb2RlZFBvc2l0aW9uczpwLmJ1ZmZlcixkZWNvZGVkUG9zaXRpb25PZmZzZXRzOlMuYnVmZmVyfSl9cmV0dXJuIEF9dmFyIERSLEZSLEJSLGpkLE5SLElSLHZSLGo0LExSLHE0LG5nPVooKCk9PntGdCgpO3JwKCk7TVIoKTtadCgpOyRlKCk7VG4oKTtzbygpO0RSPW5ldyBOdCxGUj1uZXcgJCxCUj1uZXcgYSxqZD17bWluOnZvaWQgMCxtYXg6dm9pZCAwfTtOUj1uZXcgYSxJUj1uZXcgYSx2Uj1uZXcgYSxqND1uZXcgYSxMUj1uZXcgYTtxND1RZShINCl9KTtmdW5jdGlvbiBoaSh0LGUpe3kudHlwZU9mLm9iamVjdCgiZWxsaXBzb2lkIix0KSx0aGlzLl9lbGxpcHNvaWQ9dCx0aGlzLl9jYW1lcmFQb3NpdGlvbj1uZXcgYSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2U9bmV3IGEsdGhpcy5fZGlzdGFuY2VUb0xpbWJJblNjYWxlZFNwYWNlU3F1YXJlZD0wLGgoZSkmJih0aGlzLmNhbWVyYVBvc2l0aW9uPWUpfWZ1bmN0aW9uIGtSKHQsZSxuKXtpZihoKGUpJiZlPDAmJnQubWluaW11bVJhZGl1cz4tZSl7bGV0IG89YS5mcm9tRWxlbWVudHModC5yYWRpaS54K2UsdC5yYWRpaS55K2UsdC5yYWRpaS56K2UsWDQpO3Q9JC5mcm9tQ2FydGVzaWFuMyhvLG4pfXJldHVybiB0fWZ1bmN0aW9uIEdSKHQsZSxuLG8pe3kudHlwZU9mLm9iamVjdCgiZGlyZWN0aW9uVG9Qb2ludCIsZSkseS5kZWZpbmVkKCJwb3NpdGlvbnMiLG4pLGgobyl8fChvPW5ldyBhKTtsZXQgcj1xUih0LGUpLGk9MDtmb3IobGV0IHM9MCxmPW4ubGVuZ3RoO3M8ZjsrK3Mpe2xldCB1PW5bc10sYz1qUih0LHUscik7aWYoYzwwKXJldHVybjtpPU1hdGgubWF4KGksYyl9cmV0dXJuIEhSKHIsaSxvKX1mdW5jdGlvbiB6Uih0LGUsbixvLHIsaSl7eS50eXBlT2Yub2JqZWN0KCJkaXJlY3Rpb25Ub1BvaW50IixlKSx5LmRlZmluZWQoInZlcnRpY2VzIixuKSx5LnR5cGVPZi5udW1iZXIoInN0cmlkZSIsbyksaChpKXx8KGk9bmV3IGEpLG89eChvLDMpLHI9eChyLGEuWkVSTyk7bGV0IHM9cVIodCxlKSxmPTA7Zm9yKGxldCB1PTAsYz1uLmxlbmd0aDt1PGM7dSs9byl7SGQueD1uW3VdK3IueCxIZC55PW5bdSsxXStyLnksSGQuej1uW3UrMl0rci56O2xldCBsPWpSKHQsSGQscyk7aWYobDwwKXJldHVybjtmPU1hdGgubWF4KGYsbCl9cmV0dXJuIEhSKHMsZixpKX1mdW5jdGlvbiByZyh0LGUsbil7bGV0IG89ZSxyPW4saT1hLnN1YnRyYWN0KHQsbyxVUikscz0tYS5kb3QoaSxvKTtyZXR1cm4hKHI8MD9zPjA6cz5yJiZzKnMvYS5tYWduaXR1ZGVTcXVhcmVkKGkpPnIpfWZ1bmN0aW9uIGpSKHQsZSxuKXtsZXQgbz10LnRyYW5zZm9ybVBvc2l0aW9uVG9TY2FsZWRTcGFjZShlLFk0KSxyPWEubWFnbml0dWRlU3F1YXJlZChvKSxpPU1hdGguc3FydChyKSxzPWEuZGl2aWRlQnlTY2FsYXIobyxpLCQ0KTtyPU1hdGgubWF4KDEsciksaT1NYXRoLm1heCgxLGkpO2xldCBmPWEuZG90KHMsbiksdT1hLm1hZ25pdHVkZShhLmNyb3NzKHMsbixzKSksYz0xL2ksbD1NYXRoLnNxcnQoci0xKSpjO3JldHVybiAxLyhmKmMtdSpsKX1mdW5jdGlvbiBIUih0LGUsbil7aWYoIShlPD0wfHxlPT09MS8wfHxlIT09ZSkpcmV0dXJuIGEubXVsdGlwbHlCeVNjYWxhcih0LGUsbil9ZnVuY3Rpb24gcVIodCxlKXtyZXR1cm4gYS5lcXVhbHMoZSxhLlpFUk8pP2U6KHQudHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlKGUsb2cpLGEubm9ybWFsaXplKG9nLG9nKSl9dmFyIFVSLEs0LFZSLFc0LFg0LEhkLFk0LCQ0LG9nLHhzLHN1PVooKCk9Pnt2ZSgpO0Z0KCk7WHQoKTtJdCgpO2Z0KCk7WnQoKTtUbigpO09iamVjdC5kZWZpbmVQcm9wZXJ0aWVzKGhpLnByb3RvdHlwZSx7ZWxsaXBzb2lkOntnZXQ6ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5fZWxsaXBzb2lkfX0sY2FtZXJhUG9zaXRpb246e2dldDpmdW5jdGlvbigpe3JldHVybiB0aGlzLl9jYW1lcmFQb3NpdGlvbn0sc2V0OmZ1bmN0aW9uKHQpe2xldCBuPXRoaXMuX2VsbGlwc29pZC50cmFuc2Zvcm1Qb3NpdGlvblRvU2NhbGVkU3BhY2UodCx0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2UpLG89YS5tYWduaXR1ZGVTcXVhcmVkKG4pLTE7YS5jbG9uZSh0LHRoaXMuX2NhbWVyYVBvc2l0aW9uKSx0aGlzLl9jYW1lcmFQb3NpdGlvbkluU2NhbGVkU3BhY2U9bix0aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkPW99fX0pO1VSPW5ldyBhO2hpLnByb3RvdHlwZS5pc1BvaW50VmlzaWJsZT1mdW5jdGlvbih0KXtsZXQgbj10aGlzLl9lbGxpcHNvaWQudHJhbnNmb3JtUG9zaXRpb25Ub1NjYWxlZFNwYWNlKHQsVVIpO3JldHVybiByZyhuLHRoaXMuX2NhbWVyYVBvc2l0aW9uSW5TY2FsZWRTcGFjZSx0aGlzLl9kaXN0YW5jZVRvTGltYkluU2NhbGVkU3BhY2VTcXVhcmVkKX07aGkucHJvdG90eXBlLmlzU2NhbGVkU3BhY2VQb2ludFZpc2libGU9ZnVuY3Rpb24odCl7cmV0dXJuIHJnKHQsdGhpcy5fY2FtZXJhUG9zaXRpb25JblNjYWxlZFNwYWNlLHRoaXMuX2Rpc3RhbmNlVG9MaW1iSW5TY2FsZWRTcGFjZVNxdWFyZWQpfTtLND1uZXcgYTtoaS5wcm90b3R5cGUuaXNTY2FsZWRTcGFjZVBvaW50VmlzaWJsZVBvc3NpYmx5VW5kZXJFbGxpcHNvaWQ9ZnVuY3Rpb24odCxlKXtsZXQgbj10aGlzLl9lbGxpcHNvaWQsbyxyO3JldHVybiBoKGUpJiZlPDAmJm4ubWluaW11bVJhZGl1cz4tZT8ocj1LNCxyLng9dGhpcy5fY2FtZXJhUG9zaXRpb24ueC8obi5yYWRpaS54K2UpLHIueT10aGlzLl9jYW1lcmFQb3NpdGlvbi55LyhuLnJhZGlpLnkrZSksci56PXRoaXMuX2NhbWVyYVBvc2l0aW9uLnovKG4ucmFkaWkueitlKSxvPXIueCpyLngrci55KnIueStyLnoqci56LTEpOihyPXRoaXMuX2NhbWVyYVBvc2l0aW9uSW5TY2FsZWRTcGFjZSxvPXRoaXMuX2Rpc3RhbmNlVG9MaW1iSW5TY2FsZWRTcGFjZVNxdWFyZWQpLHJnKHQscixvKX07aGkucHJvdG90eXBlLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50PWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gR1IodGhpcy5fZWxsaXBzb2lkLHQsZSxuKX07VlI9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKTtoaS5wcm90b3R5cGUuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRQb3NzaWJseVVuZGVyRWxsaXBzb2lkPWZ1bmN0aW9uKHQsZSxuLG8pe2xldCByPWtSKHRoaXMuX2VsbGlwc29pZCxuLFZSKTtyZXR1cm4gR1Iocix0LGUsbyl9O2hpLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludEZyb21WZXJ0aWNlcz1mdW5jdGlvbih0LGUsbixvLHIpe3JldHVybiB6Uih0aGlzLl9lbGxpcHNvaWQsdCxlLG4sbyxyKX07aGkucHJvdG90eXBlLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50RnJvbVZlcnRpY2VzUG9zc2libHlVbmRlckVsbGlwc29pZD1mdW5jdGlvbih0LGUsbixvLHIsaSl7bGV0IHM9a1IodGhpcy5fZWxsaXBzb2lkLHIsVlIpO3JldHVybiB6UihzLHQsZSxuLG8saSl9O1c0PVtdO2hpLnByb3RvdHlwZS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludEZyb21SZWN0YW5nbGU9ZnVuY3Rpb24odCxlLG4pe3kudHlwZU9mLm9iamVjdCgicmVjdGFuZ2xlIix0KTtsZXQgbz1OdC5zdWJzYW1wbGUodCxlLDAsVzQpLHI9QXQuZnJvbVBvaW50cyhvKTtpZighKGEubWFnbml0dWRlKHIuY2VudGVyKTwuMSplLm1pbmltdW1SYWRpdXMpKXJldHVybiB0aGlzLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50KHIuY2VudGVyLG8sbil9O1g0PW5ldyBhO0hkPW5ldyBhO1k0PW5ldyBhLCQ0PW5ldyBhO29nPW5ldyBhO3hzPWhpfSk7dmFyIHFkLFo0LEtSLFdSPVooKCk9PntGdCgpO0llKCk7SHQoKTtmdCgpO3FkPXt9O3FkLmdldEhlaWdodD1mdW5jdGlvbih0LGUsbil7aWYoIU51bWJlci5pc0Zpbml0ZShlKSl0aHJvdyBuZXcgRigic2NhbGUgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIuIik7aWYoIU51bWJlci5pc0Zpbml0ZShuKSl0aHJvdyBuZXcgRigicmVsYXRpdmVIZWlnaHQgbXVzdCBiZSBhIGZpbml0ZSBudW1iZXIuIik7cmV0dXJuKHQtbikqZStufTtaND1uZXcgY3Q7cWQuZ2V0UG9zaXRpb249ZnVuY3Rpb24odCxlLG4sbyxyKXtsZXQgaT1lLmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHQsWjQpO2lmKCFoKGkpKXJldHVybiBhLmNsb25lKHQscik7bGV0IHM9cWQuZ2V0SGVpZ2h0KGkuaGVpZ2h0LG4sbyk7cmV0dXJuIGEuZnJvbVJhZGlhbnMoaS5sb25naXR1ZGUsaS5sYXRpdHVkZSxzLGUscil9O0tSPXFkfSk7dmFyIFE0LHhyLFhSPVooKCk9PntRND17Tk9ORTowLEJJVFMxMjoxfSx4cj1PYmplY3QuZnJlZXplKFE0KX0pO2Z1bmN0aW9uIE1vKHQsZSxuLG8scixpLHMsZix1LGMpe2xldCBsPXhyLk5PTkUscCxkO2lmKGgoZSkmJmgobikmJmgobykmJmgocikpe2xldCBtPWUubWluaW11bSxfPWUubWF4aW11bSxnPWEuc3VidHJhY3QoXyxtLEo0KSxiPW8tbjtNYXRoLm1heChhLm1heGltdW1Db21wb25lbnQoZyksYik8ZVUtMT9sPXhyLkJJVFMxMjpsPXhyLk5PTkUscD1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24ocixuZXcgc3QpO2xldCBPPWEubmVnYXRlKG0sVGMpO3N0Lm11bHRpcGx5KHN0LmZyb21UcmFuc2xhdGlvbihPLEtkKSxwLHApO2xldCBFPVRjO0UueD0xL2cueCxFLnk9MS9nLnksRS56PTEvZy56LHN0Lm11bHRpcGx5KHN0LmZyb21TY2FsZShFLEtkKSxwLHApLGQ9c3QuY2xvbmUociksc3Quc2V0VHJhbnNsYXRpb24oZCxhLlpFUk8sZCkscj1zdC5jbG9uZShyLG5ldyBzdCk7bGV0IFQ9c3QuZnJvbVRyYW5zbGF0aW9uKG0sS2QpLEM9c3QuZnJvbVNjYWxlKGcsdFUpLE49c3QubXVsdGlwbHkoVCxDLEtkKTtzdC5tdWx0aXBseShyLE4sciksc3QubXVsdGlwbHkoZCxOLGQpfXRoaXMucXVhbnRpemF0aW9uPWwsdGhpcy5taW5pbXVtSGVpZ2h0PW4sdGhpcy5tYXhpbXVtSGVpZ2h0PW8sdGhpcy5jZW50ZXI9YS5jbG9uZSh0KSx0aGlzLnRvU2NhbGVkRU5VPXAsdGhpcy5mcm9tU2NhbGVkRU5VPXIsdGhpcy5tYXRyaXg9ZCx0aGlzLmhhc1ZlcnRleE5vcm1hbHM9aSx0aGlzLmhhc1dlYk1lcmNhdG9yVD14KHMsITEpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscz14KGYsITEpLHRoaXMuZXhhZ2dlcmF0aW9uPXgodSwxKSx0aGlzLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0PXgoYywwKSx0aGlzLnN0cmlkZT0wLHRoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbD0wLHRoaXMuX29mZnNldFZlcnRleE5vcm1hbD0wLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKX12YXIgVGMsSjQsUHIsS2QsdFUsZVUsblUsWVIsV2QsWGQsUHMsY3U9WigoKT0+e2FzKCk7VWUoKTtGdCgpO0ZlKCk7SXQoKTtmdCgpO1d0KCk7VW4oKTtXUigpO1hSKCk7VGM9bmV3IGEsSjQ9bmV3IGEsUHI9bmV3IHR0LEtkPW5ldyBzdCx0VT1uZXcgc3QsZVU9TWF0aC5wb3coMiwxMik7TW8ucHJvdG90eXBlLmVuY29kZT1mdW5jdGlvbih0LGUsbixvLHIsaSxzLGYpe2xldCB1PW8ueCxjPW8ueTtpZih0aGlzLnF1YW50aXphdGlvbj09PXhyLkJJVFMxMil7bj1zdC5tdWx0aXBseUJ5UG9pbnQodGhpcy50b1NjYWxlZEVOVSxuLFRjKSxuLng9TS5jbGFtcChuLngsMCwxKSxuLnk9TS5jbGFtcChuLnksMCwxKSxuLno9TS5jbGFtcChuLnosMCwxKTtsZXQgbD10aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0LHA9TS5jbGFtcCgoci10aGlzLm1pbmltdW1IZWlnaHQpL2wsMCwxKTt0dC5mcm9tRWxlbWVudHMobi54LG4ueSxQcik7bGV0IGQ9bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO3R0LmZyb21FbGVtZW50cyhuLnoscCxQcik7bGV0IG09bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO3R0LmZyb21FbGVtZW50cyh1LGMsUHIpO2xldCBfPW5uLmNvbXByZXNzVGV4dHVyZUNvb3JkaW5hdGVzKFByKTtpZih0W2UrK109ZCx0W2UrK109bSx0W2UrK109Xyx0aGlzLmhhc1dlYk1lcmNhdG9yVCl7dHQuZnJvbUVsZW1lbnRzKHMsMCxQcik7bGV0IGc9bm4uY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXMoUHIpO3RbZSsrXT1nfX1lbHNlIGEuc3VidHJhY3Qobix0aGlzLmNlbnRlcixUYyksdFtlKytdPVRjLngsdFtlKytdPVRjLnksdFtlKytdPVRjLnosdFtlKytdPXIsdFtlKytdPXUsdFtlKytdPWMsdGhpcy5oYXNXZWJNZXJjYXRvclQmJih0W2UrK109cyk7cmV0dXJuIHRoaXMuaGFzVmVydGV4Tm9ybWFscyYmKHRbZSsrXT1ubi5vY3RQYWNrRmxvYXQoaSkpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmKHRbZSsrXT1mLngsdFtlKytdPWYueSx0W2UrK109Zi56KSxlfTtuVT1uZXcgYSxZUj1uZXcgYTtNby5wcm90b3R5cGUuYWRkR2VvZGV0aWNTdXJmYWNlTm9ybWFscz1mdW5jdGlvbih0LGUsbil7aWYodGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgbz10aGlzLnN0cmlkZSxyPXQubGVuZ3RoL287dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSEwLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgaT10aGlzLnN0cmlkZTtmb3IobGV0IHM9MDtzPHI7cysrKXtmb3IobGV0IGw9MDtsPG87bCsrKXtsZXQgcD1zKm8rbCxkPXMqaStsO2VbZF09dFtwXX1sZXQgZj10aGlzLmRlY29kZVBvc2l0aW9uKGUscyxuVSksdT1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChmLFlSKSxjPXMqaSt0aGlzLl9vZmZzZXRHZW9kZXRpY1N1cmZhY2VOb3JtYWw7ZVtjXT11LngsZVtjKzFdPXUueSxlW2MrMl09dS56fX07TW8ucHJvdG90eXBlLnJlbW92ZUdlb2RldGljU3VyZmFjZU5vcm1hbHM9ZnVuY3Rpb24odCxlKXtpZighdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzKXJldHVybjtsZXQgbj10aGlzLnN0cmlkZSxvPXQubGVuZ3RoL247dGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPSExLHRoaXMuX2NhbGN1bGF0ZVN0cmlkZUFuZE9mZnNldHMoKTtsZXQgcj10aGlzLnN0cmlkZTtmb3IobGV0IGk9MDtpPG87aSsrKWZvcihsZXQgcz0wO3M8cjtzKyspe2xldCBmPWkqbitzLHU9aSpyK3M7ZVt1XT10W2ZdfX07TW8ucHJvdG90eXBlLmRlY29kZVBvc2l0aW9uPWZ1bmN0aW9uKHQsZSxuKXtpZihoKG4pfHwobj1uZXcgYSksZSo9dGhpcy5zdHJpZGUsdGhpcy5xdWFudGl6YXRpb249PT14ci5CSVRTMTIpe2xldCBvPW5uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlXSxQcik7bi54PW8ueCxuLnk9by55O2xldCByPW5uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzFdLFByKTtyZXR1cm4gbi56PXIueCxzdC5tdWx0aXBseUJ5UG9pbnQodGhpcy5mcm9tU2NhbGVkRU5VLG4sbil9cmV0dXJuIG4ueD10W2VdLG4ueT10W2UrMV0sbi56PXRbZSsyXSxhLmFkZChuLHRoaXMuY2VudGVyLG4pfTtNby5wcm90b3R5cGUuZ2V0RXhhZ2dlcmF0ZWRQb3NpdGlvbj1mdW5jdGlvbih0LGUsbil7bj10aGlzLmRlY29kZVBvc2l0aW9uKHQsZSxuKTtsZXQgbz10aGlzLmV4YWdnZXJhdGlvbixyPXRoaXMuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQ7aWYobyE9PTEmJnRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyl7bGV0IHM9dGhpcy5kZWNvZGVHZW9kZXRpY1N1cmZhY2VOb3JtYWwodCxlLFlSKSxmPXRoaXMuZGVjb2RlSGVpZ2h0KHQsZSksdT1LUi5nZXRIZWlnaHQoZixvLHIpLWY7bi54Kz1zLngqdSxuLnkrPXMueSp1LG4ueis9cy56KnV9cmV0dXJuIG59O01vLnByb3RvdHlwZS5kZWNvZGVUZXh0dXJlQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCxlLG4pe3JldHVybiBoKG4pfHwobj1uZXcgdHQpLGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzJdLG4pOnR0LmZyb21FbGVtZW50cyh0W2UrNF0sdFtlKzVdLG4pfTtNby5wcm90b3R5cGUuZGVjb2RlSGVpZ2h0PWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzFdLFByKS55Kih0aGlzLm1heGltdW1IZWlnaHQtdGhpcy5taW5pbXVtSGVpZ2h0KSt0aGlzLm1pbmltdW1IZWlnaHQ6dFtlKzNdfTtNby5wcm90b3R5cGUuZGVjb2RlV2ViTWVyY2F0b3JUPWZ1bmN0aW9uKHQsZSl7cmV0dXJuIGUqPXRoaXMuc3RyaWRlLHRoaXMucXVhbnRpemF0aW9uPT09eHIuQklUUzEyP25uLmRlY29tcHJlc3NUZXh0dXJlQ29vcmRpbmF0ZXModFtlKzNdLFByKS54OnRbZSs2XX07TW8ucHJvdG90eXBlLmdldE9jdEVuY29kZWROb3JtYWw9ZnVuY3Rpb24odCxlLG4pe2U9ZSp0aGlzLnN0cmlkZSt0aGlzLl9vZmZzZXRWZXJ0ZXhOb3JtYWw7bGV0IG89dFtlXS8yNTYscj1NYXRoLmZsb29yKG8pLGk9KG8tcikqMjU2O3JldHVybiB0dC5mcm9tRWxlbWVudHMocixpLG4pfTtNby5wcm90b3R5cGUuZGVjb2RlR2VvZGV0aWNTdXJmYWNlTm9ybWFsPWZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gZT1lKnRoaXMuc3RyaWRlK3RoaXMuX29mZnNldEdlb2RldGljU3VyZmFjZU5vcm1hbCxuLng9dFtlXSxuLnk9dFtlKzFdLG4uej10W2UrMl0sbn07TW8ucHJvdG90eXBlLl9jYWxjdWxhdGVTdHJpZGVBbmRPZmZzZXRzPWZ1bmN0aW9uKCl7bGV0IHQ9MDtzd2l0Y2godGhpcy5xdWFudGl6YXRpb24pe2Nhc2UgeHIuQklUUzEyOnQrPTM7YnJlYWs7ZGVmYXVsdDp0Kz02fXRoaXMuaGFzV2ViTWVyY2F0b3JUJiYodCs9MSksdGhpcy5oYXNWZXJ0ZXhOb3JtYWxzJiYodGhpcy5fb2Zmc2V0VmVydGV4Tm9ybWFsPXQsdCs9MSksdGhpcy5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzJiYodGhpcy5fb2Zmc2V0R2VvZGV0aWNTdXJmYWNlTm9ybWFsPXQsdCs9MyksdGhpcy5zdHJpZGU9dH07V2Q9e3Bvc2l0aW9uM0RBbmRIZWlnaHQ6MCx0ZXh0dXJlQ29vcmRBbmRFbmNvZGVkTm9ybWFsczoxLGdlb2RldGljU3VyZmFjZU5vcm1hbDoyfSxYZD17Y29tcHJlc3NlZDA6MCxjb21wcmVzc2VkMToxLGdlb2RldGljU3VyZmFjZU5vcm1hbDoyfTtNby5wcm90b3R5cGUuZ2V0QXR0cmlidXRlcz1mdW5jdGlvbih0KXtsZXQgZT1udC5GTE9BVCxuPW50LmdldFNpemVJbkJ5dGVzKGUpLG89dGhpcy5zdHJpZGUqbixyPTAsaT1bXTtmdW5jdGlvbiBzKGYsdSl7aS5wdXNoKHtpbmRleDpmLHZlcnRleEJ1ZmZlcjp0LGNvbXBvbmVudERhdGF0eXBlOmUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTp1LG9mZnNldEluQnl0ZXM6cixzdHJpZGVJbkJ5dGVzOm99KSxyKz11Km59aWYodGhpcy5xdWFudGl6YXRpb249PT14ci5OT05FKXtzKFdkLnBvc2l0aW9uM0RBbmRIZWlnaHQsNCk7bGV0IGY9MjtmKz10aGlzLmhhc1dlYk1lcmNhdG9yVD8xOjAsZis9dGhpcy5oYXNWZXJ0ZXhOb3JtYWxzPzE6MCxzKFdkLnRleHR1cmVDb29yZEFuZEVuY29kZWROb3JtYWxzLGYpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmcyhXZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwsMyl9ZWxzZXtsZXQgZj10aGlzLmhhc1dlYk1lcmNhdG9yVHx8dGhpcy5oYXNWZXJ0ZXhOb3JtYWxzLHU9dGhpcy5oYXNXZWJNZXJjYXRvclQmJnRoaXMuaGFzVmVydGV4Tm9ybWFscztzKFhkLmNvbXByZXNzZWQwLGY/NDozKSx1JiZzKFhkLmNvbXByZXNzZWQxLDEpLHRoaXMuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmcyhYZC5nZW9kZXRpY1N1cmZhY2VOb3JtYWwsMyl9cmV0dXJuIGl9O01vLnByb3RvdHlwZS5nZXRBdHRyaWJ1dGVMb2NhdGlvbnM9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5xdWFudGl6YXRpb249PT14ci5OT05FP1dkOlhkfTtNby5jbG9uZT1mdW5jdGlvbih0LGUpe2lmKGgodCkpcmV0dXJuIGgoZSl8fChlPW5ldyBNbyksZS5xdWFudGl6YXRpb249dC5xdWFudGl6YXRpb24sZS5taW5pbXVtSGVpZ2h0PXQubWluaW11bUhlaWdodCxlLm1heGltdW1IZWlnaHQ9dC5tYXhpbXVtSGVpZ2h0LGUuY2VudGVyPWEuY2xvbmUodC5jZW50ZXIpLGUudG9TY2FsZWRFTlU9c3QuY2xvbmUodC50b1NjYWxlZEVOVSksZS5mcm9tU2NhbGVkRU5VPXN0LmNsb25lKHQuZnJvbVNjYWxlZEVOVSksZS5tYXRyaXg9c3QuY2xvbmUodC5tYXRyaXgpLGUuaGFzVmVydGV4Tm9ybWFscz10Lmhhc1ZlcnRleE5vcm1hbHMsZS5oYXNXZWJNZXJjYXRvclQ9dC5oYXNXZWJNZXJjYXRvclQsZS5oYXNHZW9kZXRpY1N1cmZhY2VOb3JtYWxzPXQuaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyxlLmV4YWdnZXJhdGlvbj10LmV4YWdnZXJhdGlvbixlLmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0PXQuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsZS5fY2FsY3VsYXRlU3RyaWRlQW5kT2Zmc2V0cygpLGV9O1BzPU1vfSk7dmFyIHNnPXt9O2RlKHNnLHtkZWZhdWx0OigpPT51VX0pO2Z1bmN0aW9uIGF1KHQsZSxuKXtuPXgobixNKTtsZXQgbz10Lmxlbmd0aDtmb3IobGV0IHI9MDtyPG87KytyKWlmKG4uZXF1YWxzRXBzaWxvbih0W3JdLGUsTS5FUFNJTE9OMTIpKXJldHVybiByO3JldHVybi0xfWZ1bmN0aW9uIGlVKHQsZSl7dC5lbGxpcHNvaWQ9JC5jbG9uZSh0LmVsbGlwc29pZCksdC5yZWN0YW5nbGU9TnQuY2xvbmUodC5yZWN0YW5nbGUpO2xldCBuPWZVKHQuYnVmZmVyLHQucmVsYXRpdmVUb0NlbnRlcix0LmVsbGlwc29pZCx0LnJlY3RhbmdsZSx0Lm5hdGl2ZVJlY3RhbmdsZSx0LmV4YWdnZXJhdGlvbix0LmV4YWdnZXJhdGlvblJlbGF0aXZlSGVpZ2h0LHQuc2tpcnRIZWlnaHQsdC5pbmNsdWRlV2ViTWVyY2F0b3JULHQubmVnYXRpdmVBbHRpdHVkZUV4cG9uZW50Qmlhcyx0Lm5lZ2F0aXZlRWxldmF0aW9uVGhyZXNob2xkKSxvPW4udmVydGljZXM7ZS5wdXNoKG8uYnVmZmVyKTtsZXQgcj1uLmluZGljZXM7cmV0dXJuIGUucHVzaChyLmJ1ZmZlcikse3ZlcnRpY2VzOm8uYnVmZmVyLGluZGljZXM6ci5idWZmZXIsbnVtYmVyT2ZBdHRyaWJ1dGVzOm4uZW5jb2Rpbmcuc3RyaWRlLG1pbmltdW1IZWlnaHQ6bi5taW5pbXVtSGVpZ2h0LG1heGltdW1IZWlnaHQ6bi5tYXhpbXVtSGVpZ2h0LGJvdW5kaW5nU3BoZXJlM0Q6bi5ib3VuZGluZ1NwaGVyZTNELG9yaWVudGVkQm91bmRpbmdCb3g6bi5vcmllbnRlZEJvdW5kaW5nQm94LG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOm4ub2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2UsZW5jb2Rpbmc6bi5lbmNvZGluZyx2ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHM6bi52ZXJ0ZXhDb3VudFdpdGhvdXRTa2lydHMsaW5kZXhDb3VudFdpdGhvdXRTa2lydHM6bi5pbmRleENvdW50V2l0aG91dFNraXJ0cyx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpuLndlc3RJbmRpY2VzU291dGhUb05vcnRoLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6bi5zb3V0aEluZGljZXNFYXN0VG9XZXN0LGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOm4uZWFzdEluZGljZXNOb3J0aFRvU291dGgsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDpuLm5vcnRoSW5kaWNlc1dlc3RUb0Vhc3R9fWZ1bmN0aW9uIGZVKHQsZSxuLG8scixpLHMsZix1LGMsbCl7bGV0IHAsZCxtLF8sZyxiO2gobyk/KHA9by53ZXN0LGQ9by5zb3V0aCxtPW8uZWFzdCxfPW8ubm9ydGgsZz1vLndpZHRoLGI9by5oZWlnaHQpOihwPU0udG9SYWRpYW5zKHIud2VzdCksZD1NLnRvUmFkaWFucyhyLnNvdXRoKSxtPU0udG9SYWRpYW5zKHIuZWFzdCksXz1NLnRvUmFkaWFucyhyLm5vcnRoKSxnPU0udG9SYWRpYW5zKG8ud2lkdGgpLGI9TS50b1JhZGlhbnMoby5oZWlnaHQpKTtsZXQgdz1bZCxfXSxPPVtwLG1dLEU9WG8uZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUoZSxuKSxUPXN0LmludmVyc2VUcmFuc2Zvcm1hdGlvbihFLGFVKSxDLE47dSYmKEM9bm8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShkKSxOPTEvKG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoXyktQykpO2xldCBEPWkhPT0xLHY9bmV3IERhdGFWaWV3KHQpLEw9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFU9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLEE9c1U7QS54PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxBLnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEEuej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IFM9Y1U7Uy54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxTLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFMuej1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IFA9MCxCPTAsaj0wLEgsaztmb3Ioaz0wO2s8NDsrK2spe2xldCByZT1QO0g9di5nZXRVaW50MzIocmUsITApLHJlKz1pZztsZXQgJHQ9TS50b1JhZGlhbnModi5nZXRGbG9hdDY0KHJlLCEwKSoxODApO3JlKz1PYyxhdShPLCR0KT09PS0xJiZPLnB1c2goJHQpO2xldCBHZT1NLnRvUmFkaWFucyh2LmdldEZsb2F0NjQocmUsITApKjE4MCk7cmUrPU9jLGF1KHcsR2UpPT09LTEmJncucHVzaChHZSkscmUrPTIqT2M7bGV0IGRuPXYuZ2V0SW50MzIocmUsITApO3JlKz1ZZCxCKz1kbixkbj12LmdldEludDMyKHJlLCEwKSxqKz1kbiozLFArPUgraWd9bGV0IEs9W10sWD1bXSxSPW5ldyBBcnJheShCKSxvdD1uZXcgQXJyYXkoQiksYXQ9bmV3IEFycmF5KEIpLHB0PXU/bmV3IEFycmF5KEIpOltdLHl0PUQ/bmV3IEFycmF5KEIpOltdLHJ0PW5ldyBBcnJheShqKSxQdD1bXSxndD1bXSxDdD1bXSxtdD1bXSx1dD0wLHZ0PTA7Zm9yKFA9MCxrPTA7azw0Oysrayl7SD12LmdldFVpbnQzMihQLCEwKSxQKz1pZztsZXQgcmU9UCwkdD1NLnRvUmFkaWFucyh2LmdldEZsb2F0NjQoUCwhMCkqMTgwKTtQKz1PYztsZXQgR2U9TS50b1JhZGlhbnModi5nZXRGbG9hdDY0KFAsITApKjE4MCk7UCs9T2M7bGV0IGRuPU0udG9SYWRpYW5zKHYuZ2V0RmxvYXQ2NChQLCEwKSoxODApLHNuPWRuKi41O1ArPU9jO2xldCBtbj1NLnRvUmFkaWFucyh2LmdldEZsb2F0NjQoUCwhMCkqMTgwKSxmbz1tbiouNTtQKz1PYztsZXQgSG49di5nZXRJbnQzMihQLCEwKTtQKz1ZZDtsZXQgWmU9di5nZXRJbnQzMihQLCEwKTtQKz1ZZCxQKz1ZZDtsZXQgY249bmV3IEFycmF5KEhuKTtmb3IobGV0IGhuPTA7aG48SG47Kytobil7bGV0IHVvPSR0K3YuZ2V0VWludDgoUCsrKSpkbjtOby5sb25naXR1ZGU9dW87bGV0IHFuPUdlK3YuZ2V0VWludDgoUCsrKSptbjtOby5sYXRpdHVkZT1xbjtsZXQgS249di5nZXRGbG9hdDMyKFAsITApO2lmKFArPXJVLEtuIT09MCYmS248bCYmKEtuKj0tTWF0aC5wb3coMixjKSksS24qPTYzNzEwMTAsTm8uaGVpZ2h0PUtuLGF1KE8sdW8pIT09LTF8fGF1KHcscW4pIT09LTEpe2xldCBEbj1hdShLLE5vLGN0KTtpZihEbj09PS0xKUsucHVzaChjdC5jbG9uZShObykpLFgucHVzaCh1dCk7ZWxzZXtjbltobl09WFtEbl07Y29udGludWV9fWNuW2huXT11dCxNYXRoLmFicyh1by1wKTxzbj9QdC5wdXNoKHtpbmRleDp1dCxjYXJ0b2dyYXBoaWM6Y3QuY2xvbmUoTm8pfSk6TWF0aC5hYnModW8tbSk8c24/Q3QucHVzaCh7aW5kZXg6dXQsY2FydG9ncmFwaGljOmN0LmNsb25lKE5vKX0pOk1hdGguYWJzKHFuLWQpPGZvP2d0LnB1c2goe2luZGV4OnV0LGNhcnRvZ3JhcGhpYzpjdC5jbG9uZShObyl9KTpNYXRoLmFicyhxbi1fKTxmbyYmbXQucHVzaCh7aW5kZXg6dXQsY2FydG9ncmFwaGljOmN0LmNsb25lKE5vKX0pLEw9TWF0aC5taW4oS24sTCksVT1NYXRoLm1heChLbixVKSxhdFt1dF09S247bGV0IGxvPW4uY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oTm8pO2lmKFJbdXRdPWxvLHUmJihwdFt1dF09KG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUocW4pLUMpKk4pLEQpe2xldCBEbj1uLmdlb2RldGljU3VyZmFjZU5vcm1hbChsbyk7eXRbdXRdPURufXN0Lm11bHRpcGx5QnlQb2ludChULGxvLFVhKSxhLm1pbmltdW1CeUNvbXBvbmVudChVYSxBLEEpLGEubWF4aW11bUJ5Q29tcG9uZW50KFVhLFMsUyk7bGV0IHplPSh1by1wKS8obS1wKTt6ZT1NLmNsYW1wKHplLDAsMSk7bGV0IExlPShxbi1kKS8oXy1kKTtMZT1NLmNsYW1wKExlLDAsMSksb3RbdXRdPW5ldyB0dCh6ZSxMZSksKyt1dH1sZXQgS2U9WmUqMztmb3IobGV0IGhuPTA7aG48S2U7KytobiwrK3Z0KXJ0W3Z0XT1jblt2LmdldFVpbnQxNihQLCEwKV0sUCs9b1U7aWYoSCE9PVAtcmUpdGhyb3cgbmV3IEFlKCJJbnZhbGlkIHRlcnJhaW4gdGlsZS4iKX1SLmxlbmd0aD11dCxvdC5sZW5ndGg9dXQsYXQubGVuZ3RoPXV0LHUmJihwdC5sZW5ndGg9dXQpLEQmJih5dC5sZW5ndGg9dXQpO2xldCB6dD11dCxtZT12dCxhZT17aE1pbjpMLGxhc3RCb3JkZXJQb2ludDp2b2lkIDAsc2tpcnRIZWlnaHQ6Zix0b0VOVTpULGVsbGlwc29pZDpuLG1pbmltdW06QSxtYXhpbXVtOlN9O1B0LnNvcnQoZnVuY3Rpb24ocmUsJHQpe3JldHVybiAkdC5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtcmUuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksZ3Quc29ydChmdW5jdGlvbihyZSwkdCl7cmV0dXJuIHJlLmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtJHQuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pLEN0LnNvcnQoZnVuY3Rpb24ocmUsJHQpe3JldHVybiByZS5jYXJ0b2dyYXBoaWMubGF0aXR1ZGUtJHQuY2FydG9ncmFwaGljLmxhdGl0dWRlfSksbXQuc29ydChmdW5jdGlvbihyZSwkdCl7cmV0dXJuICR0LmNhcnRvZ3JhcGhpYy5sb25naXR1ZGUtcmUuY2FydG9ncmFwaGljLmxvbmdpdHVkZX0pO2xldCBwZT0xZS01O2lmKCRkKFIsYXQsb3QscHQseXQscnQsYWUsUHQsLXBlKmcsITAsLXBlKmIpLCRkKFIsYXQsb3QscHQseXQscnQsYWUsZ3QsLXBlKmIsITEpLCRkKFIsYXQsb3QscHQseXQscnQsYWUsQ3QscGUqZywhMCxwZSpiKSwkZChSLGF0LG90LHB0LHl0LHJ0LGFlLG10LHBlKmIsITEpLFB0Lmxlbmd0aD4wJiZtdC5sZW5ndGg+MCl7bGV0IHJlPVB0WzBdLmluZGV4LCR0PXp0LEdlPW10W210Lmxlbmd0aC0xXS5pbmRleCxkbj1SLmxlbmd0aC0xO3J0LnB1c2goR2UsZG4sJHQsJHQscmUsR2UpfUI9Ui5sZW5ndGg7bGV0IHVlPUF0LmZyb21Qb2ludHMoUiksUXQ7aChvKSYmKFF0PVNvLmZyb21SZWN0YW5nbGUobyxMLFUsbikpO2xldCBOZT1uZXcgeHMobikuY29tcHV0ZUhvcml6b25DdWxsaW5nUG9pbnRQb3NzaWJseVVuZGVyRWxsaXBzb2lkKGUsUixMKSxnZT1uZXcgRGkoQSxTLGUpLEVlPW5ldyBQcyhlLGdlLGFlLmhNaW4sVSxFLCExLHUsRCxpLHMpLHVuPW5ldyBGbG9hdDMyQXJyYXkoQipFZS5zdHJpZGUpLGtlPTA7Zm9yKGxldCByZT0wO3JlPEI7KytyZSlrZT1FZS5lbmNvZGUodW4sa2UsUltyZV0sb3RbcmVdLGF0W3JlXSx2b2lkIDAscHRbcmVdLHl0W3JlXSk7bGV0IGJlPVB0Lm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLmluZGV4fSkucmV2ZXJzZSgpLGxuPWd0Lm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLmluZGV4fSkucmV2ZXJzZSgpLHBuPUN0Lm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLmluZGV4fSkucmV2ZXJzZSgpLEVuPW10Lm1hcChmdW5jdGlvbihyZSl7cmV0dXJuIHJlLmluZGV4fSkucmV2ZXJzZSgpO3JldHVybiBsbi51bnNoaWZ0KHBuW3BuLmxlbmd0aC0xXSksbG4ucHVzaChiZVswXSksRW4udW5zaGlmdChiZVtiZS5sZW5ndGgtMV0pLEVuLnB1c2gocG5bMF0pLHt2ZXJ0aWNlczp1bixpbmRpY2VzOm5ldyBVaW50MTZBcnJheShydCksbWF4aW11bUhlaWdodDpVLG1pbmltdW1IZWlnaHQ6TCxlbmNvZGluZzpFZSxib3VuZGluZ1NwaGVyZTNEOnVlLG9yaWVudGVkQm91bmRpbmdCb3g6UXQsb2NjbHVkZWVQb2ludEluU2NhbGVkU3BhY2U6TmUsdmVydGV4Q291bnRXaXRob3V0U2tpcnRzOnp0LGluZGV4Q291bnRXaXRob3V0U2tpcnRzOm1lLHdlc3RJbmRpY2VzU291dGhUb05vcnRoOmJlLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6bG4sZWFzdEluZGljZXNOb3J0aFRvU291dGg6cG4sbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDpFbn19ZnVuY3Rpb24gJGQodCxlLG4sbyxyLGkscyxmLHUsYyxsKXtsZXQgcD1mLmxlbmd0aDtmb3IobGV0IGQ9MDtkPHA7KytkKXtsZXQgbT1mW2RdLF89bS5jYXJ0b2dyYXBoaWMsZz1tLmluZGV4LGI9dC5sZW5ndGgsdz1fLmxvbmdpdHVkZSxPPV8ubGF0aXR1ZGU7Tz1NLmNsYW1wKE8sLU0uUElfT1ZFUl9UV08sTS5QSV9PVkVSX1RXTyk7bGV0IEU9Xy5oZWlnaHQtcy5za2lydEhlaWdodDtzLmhNaW49TWF0aC5taW4ocy5oTWluLEUpLGN0LmZyb21SYWRpYW5zKHcsTyxFLE5vKSxjJiYoTm8ubG9uZ2l0dWRlKz11KSxjP2Q9PT1wLTE/Tm8ubGF0aXR1ZGUrPWw6ZD09PTAmJihOby5sYXRpdHVkZS09bCk6Tm8ubGF0aXR1ZGUrPXU7bGV0IFQ9cy5lbGxpcHNvaWQuY2FydG9ncmFwaGljVG9DYXJ0ZXNpYW4oTm8pO3QucHVzaChUKSxlLnB1c2goRSksbi5wdXNoKHR0LmNsb25lKG5bZ10pKSxvLmxlbmd0aD4wJiZvLnB1c2gob1tnXSksci5sZW5ndGg+MCYmci5wdXNoKHJbZ10pLHN0Lm11bHRpcGx5QnlQb2ludChzLnRvRU5VLFQsVWEpO2xldCBDPXMubWluaW11bSxOPXMubWF4aW11bTthLm1pbmltdW1CeUNvbXBvbmVudChVYSxDLEMpLGEubWF4aW11bUJ5Q29tcG9uZW50KFVhLE4sTik7bGV0IEk9cy5sYXN0Qm9yZGVyUG9pbnQ7aWYoaChJKSl7bGV0IEQ9SS5pbmRleDtpLnB1c2goRCxiLTEsYixiLGcsRCl9cy5sYXN0Qm9yZGVyUG9pbnQ9bX19dmFyIG9VLFlkLGlnLHJVLE9jLE5vLFVhLHNVLGNVLGFVLHVVLGNnPVooKCk9PntNZigpO3ZlKCk7VWUoKTtGdCgpO0llKCk7SXQoKTtmdCgpO1p0KCk7c3UoKTtXdCgpO1VuKCk7ZGEoKTtUbigpO0pyKCk7Y3UoKTtjcygpO2ljKCk7c28oKTtvVT1VaW50MTZBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxZZD1JbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULGlnPVVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULHJVPUZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxPYz1GbG9hdDY0QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ7Tm89bmV3IGN0LFVhPW5ldyBhLHNVPW5ldyBhLGNVPW5ldyBhLGFVPW5ldyBzdDt1VT1RZShpVSl9KTt2YXIgbFUsJFIsWlI9WigoKT0+e2xVPXtOT05FOjAsTEVSQzoxfSwkUj1PYmplY3QuZnJlZXplKGxVKX0pO3ZhciBfaSxhZyxwVSxkVSxtVSxRUixKUj1aKCgpPT57TWYoKTt2ZSgpO1VlKCk7RnQoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO3N1KCk7V3QoKTtVbigpO2RhKCk7VG4oKTtjdSgpO2NzKCk7aWMoKTtfaT17fTtfaS5ERUZBVUxUX1NUUlVDVFVSRT1PYmplY3QuZnJlZXplKHtoZWlnaHRTY2FsZToxLGhlaWdodE9mZnNldDowLGVsZW1lbnRzUGVySGVpZ2h0OjEsc3RyaWRlOjEsZWxlbWVudE11bHRpcGxpZXI6MjU2LGlzQmlnRW5kaWFuOiExfSk7YWc9bmV3IGEscFU9bmV3IHN0LGRVPW5ldyBhLG1VPW5ldyBhO19pLmNvbXB1dGVWZXJ0aWNlcz1mdW5jdGlvbih0KXtpZighaCh0KXx8IWgodC5oZWlnaHRtYXApKXRocm93IG5ldyBGKCJvcHRpb25zLmhlaWdodG1hcCBpcyByZXF1aXJlZC4iKTtpZighaCh0LndpZHRoKXx8IWgodC5oZWlnaHQpKXRocm93IG5ldyBGKCJvcHRpb25zLndpZHRoIGFuZCBvcHRpb25zLmhlaWdodCBhcmUgcmVxdWlyZWQuIik7aWYoIWgodC5uYXRpdmVSZWN0YW5nbGUpKXRocm93IG5ldyBGKCJvcHRpb25zLm5hdGl2ZVJlY3RhbmdsZSBpcyByZXF1aXJlZC4iKTtpZighaCh0LnNraXJ0SGVpZ2h0KSl0aHJvdyBuZXcgRigib3B0aW9ucy5za2lydEhlaWdodCBpcyByZXF1aXJlZC4iKTtsZXQgZT1NYXRoLmNvcyxuPU1hdGguc2luLG89TWF0aC5zcXJ0LHI9TWF0aC5hdGFuLGk9TWF0aC5leHAscz1NLlBJX09WRVJfVFdPLGY9TS50b1JhZGlhbnMsdT10LmhlaWdodG1hcCxjPXQud2lkdGgsbD10LmhlaWdodCxwPXQuc2tpcnRIZWlnaHQsZD1wPjAsbT14KHQuaXNHZW9ncmFwaGljLCEwKSxfPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KSxnPTEvXy5tYXhpbXVtUmFkaXVzLGI9TnQuY2xvbmUodC5uYXRpdmVSZWN0YW5nbGUpLHc9TnQuY2xvbmUodC5yZWN0YW5nbGUpLE8sRSxULEM7aCh3KT8oTz13Lndlc3QsRT13LnNvdXRoLFQ9dy5lYXN0LEM9dy5ub3J0aCk6bT8oTz1mKGIud2VzdCksRT1mKGIuc291dGgpLFQ9ZihiLmVhc3QpLEM9ZihiLm5vcnRoKSk6KE89Yi53ZXN0KmcsRT1zLTIqcihpKC1iLnNvdXRoKmcpKSxUPWIuZWFzdCpnLEM9cy0yKnIoaSgtYi5ub3J0aCpnKSkpO2xldCBOPXQucmVsYXRpdmVUb0NlbnRlcixJPWgoTik7Tj1JP046YS5aRVJPO2xldCBEPXgodC5pbmNsdWRlV2ViTWVyY2F0b3JULCExKSx2PXgodC5leGFnZ2VyYXRpb24sMSksTD14KHQuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsMCksQT12IT09MSxTPXgodC5zdHJ1Y3R1cmUsX2kuREVGQVVMVF9TVFJVQ1RVUkUpLFA9eChTLmhlaWdodFNjYWxlLF9pLkRFRkFVTFRfU1RSVUNUVVJFLmhlaWdodFNjYWxlKSxCPXgoUy5oZWlnaHRPZmZzZXQsX2kuREVGQVVMVF9TVFJVQ1RVUkUuaGVpZ2h0T2Zmc2V0KSxqPXgoUy5lbGVtZW50c1BlckhlaWdodCxfaS5ERUZBVUxUX1NUUlVDVFVSRS5lbGVtZW50c1BlckhlaWdodCksSD14KFMuc3RyaWRlLF9pLkRFRkFVTFRfU1RSVUNUVVJFLnN0cmlkZSksaz14KFMuZWxlbWVudE11bHRpcGxpZXIsX2kuREVGQVVMVF9TVFJVQ1RVUkUuZWxlbWVudE11bHRpcGxpZXIpLEs9eChTLmlzQmlnRW5kaWFuLF9pLkRFRkFVTFRfU1RSVUNUVVJFLmlzQmlnRW5kaWFuKSxYPU50LmNvbXB1dGVXaWR0aChiKSxSPU50LmNvbXB1dGVIZWlnaHQoYiksb3Q9WC8oYy0xKSxhdD1SLyhsLTEpO218fChYKj1nLFIqPWcpO2xldCBwdD1fLnJhZGlpU3F1YXJlZCx5dD1wdC54LHJ0PXB0LnksUHQ9cHQueixndD02NTUzNixDdD0tNjU1MzYsbXQ9WG8uZWFzdE5vcnRoVXBUb0ZpeGVkRnJhbWUoTixfKSx1dD1zdC5pbnZlcnNlVHJhbnNmb3JtYXRpb24obXQscFUpLHZ0LHp0O0QmJih2dD1uby5nZW9kZXRpY0xhdGl0dWRlVG9NZXJjYXRvckFuZ2xlKEUpLHp0PTEvKG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoQyktdnQpKTtsZXQgbWU9ZFU7bWUueD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbWUueT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbWUuej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IGFlPW1VO2FlLng9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGFlLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGFlLno9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZO2xldCBwZT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksdWU9YypsLFF0PXA+MD9jKjIrbCoyOjAsSnQ9dWUrUXQsTmU9bmV3IEFycmF5KEp0KSxnZT1uZXcgQXJyYXkoSnQpLEVlPW5ldyBBcnJheShKdCksdW49RD9uZXcgQXJyYXkoSnQpOltdLGtlPUE/bmV3IEFycmF5KEp0KTpbXSxiZT0wLGxuPWwscG49MCxFbj1jO2QmJigtLWJlLCsrbG4sLS1wbiwrK0VuKTtsZXQgcmU9MWUtNTtmb3IobGV0IFplPWJlO1plPGxuOysrWmUpe2xldCBjbj1aZTtjbjwwJiYoY249MCksY24+PWwmJihjbj1sLTEpO2xldCBLZT1iLm5vcnRoLWF0KmNuO20/S2U9ZihLZSk6S2U9cy0yKnIoaSgtS2UqZykpO2xldCBobj0oS2UtRSkvKEMtRSk7aG49TS5jbGFtcChobiwwLDEpO2xldCB1bz1aZT09PWJlLHFuPVplPT09bG4tMTtwPjAmJih1bz9LZSs9cmUqUjpxbiYmKEtlLT1yZSpSKSk7bGV0IEtuPWUoS2UpLGxvPW4oS2UpLHplPVB0KmxvLExlO0QmJihMZT0obm8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShLZSktdnQpKnp0KTtmb3IobGV0IERuPXBuO0RuPEVuOysrRG4pe2xldCBXbj1EbjtXbjwwJiYoV249MCksV24+PWMmJihXbj1jLTEpO2xldCB6bz1jbiooYypIKStXbipILHJuO2lmKGo9PT0xKXJuPXVbem9dO2Vsc2V7cm49MDtsZXQgcG87aWYoSylmb3IocG89MDtwbzxqOysrcG8pcm49cm4qayt1W3pvK3BvXTtlbHNlIGZvcihwbz1qLTE7cG8+PTA7LS1wbylybj1ybiprK3Vbem8rcG9dfXJuPXJuKlArQixDdD1NYXRoLm1heChDdCxybiksZ3Q9TWF0aC5taW4oZ3Qscm4pO2xldCBSbj1iLndlc3Qrb3QqV247bT9Sbj1mKFJuKTpSbj1SbipnO2xldCBhcj0oUm4tTykvKFQtTyk7YXI9TS5jbGFtcChhciwwLDEpO2xldCBRbj1jbipjK1duO2lmKHA+MCl7bGV0IHBvPURuPT09cG4sdnI9RG49PT1Fbi0xLE1jPXVvfHxxbnx8cG98fHZyO2lmKCh1b3x8cW4pJiYocG98fHZyKSljb250aW51ZTtNYyYmKHJuLT1wLHBvPyhRbj11ZSsobC1jbi0xKSxSbi09cmUqWCk6cW4/UW49dWUrbCsoYy1Xbi0xKTp2cj8oUW49dWUrbCtjK2NuLFJuKz1yZSpYKTp1byYmKFFuPXVlK2wrYytsK1duKSl9bGV0IGpvPUtuKmUoUm4pLE5yPUtuKm4oUm4pLE5zPXl0KmpvLElzPXJ0Kk5yLElyPTEvbyhOcypqbytJcypOcit6ZSpsbyksJGk9TnMqSXIsdnM9SXMqSXIsYmk9emUqSXIsb289bmV3IGE7b28ueD0kaStqbypybixvby55PXZzK05yKnJuLG9vLno9YmkrbG8qcm4sc3QubXVsdGlwbHlCeVBvaW50KHV0LG9vLGFnKSxhLm1pbmltdW1CeUNvbXBvbmVudChhZyxtZSxtZSksYS5tYXhpbXVtQnlDb21wb25lbnQoYWcsYWUsYWUpLHBlPU1hdGgubWluKHBlLHJuKSxOZVtRbl09b28sRWVbUW5dPW5ldyB0dChhcixobiksZ2VbUW5dPXJuLEQmJih1bltRbl09TGUpLEEmJihrZVtRbl09Xy5nZW9kZXRpY1N1cmZhY2VOb3JtYWwob28pKX19bGV0ICR0PUF0LmZyb21Qb2ludHMoTmUpLEdlO2godykmJihHZT1Tby5mcm9tUmVjdGFuZ2xlKHcsZ3QsQ3QsXykpO2xldCBkbjtJJiYoZG49bmV3IHhzKF8pLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50UG9zc2libHlVbmRlckVsbGlwc29pZChOLE5lLGd0KSk7bGV0IHNuPW5ldyBEaShtZSxhZSxOKSxtbj1uZXcgUHMoTixzbixwZSxDdCxtdCwhMSxELEEsdixMKSxmbz1uZXcgRmxvYXQzMkFycmF5KEp0Km1uLnN0cmlkZSksSG49MDtmb3IobGV0IFplPTA7WmU8SnQ7KytaZSlIbj1tbi5lbmNvZGUoZm8sSG4sTmVbWmVdLEVlW1plXSxnZVtaZV0sdm9pZCAwLHVuW1plXSxrZVtaZV0pO3JldHVybnt2ZXJ0aWNlczpmbyxtYXhpbXVtSGVpZ2h0OkN0LG1pbmltdW1IZWlnaHQ6Z3QsZW5jb2Rpbmc6bW4sYm91bmRpbmdTcGhlcmUzRDokdCxvcmllbnRlZEJvdW5kaW5nQm94OkdlLG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOmRufX07UVI9X2l9KTt2YXIgdDI9WG4oKHlmdCxaZCk9PnsvKiBDb3B5cmlnaHQgMjAxNS0yMDE4IEVzcmkuIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSAiTGljZW5zZSIpOyB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdCBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjAgQHByZXNlcnZlICovKGZ1bmN0aW9uKCl7dmFyIHQ9ZnVuY3Rpb24oKXt2YXIgcj17fTtyLmRlZmF1bHROb0RhdGFWYWx1ZT0tMzQwMjc5OTkzODc5MDE0ODRlMjIsci5kZWNvZGU9ZnVuY3Rpb24obCxwKXtwPXB8fHt9O3ZhciBkPXAuZW5jb2RlZE1hc2tEYXRhfHxwLmVuY29kZWRNYXNrRGF0YT09PW51bGwsbT11KGwscC5pbnB1dE9mZnNldHx8MCxkKSxfPXAubm9EYXRhVmFsdWUhPT1udWxsP3Aubm9EYXRhVmFsdWU6ci5kZWZhdWx0Tm9EYXRhVmFsdWUsZz1pKG0scC5waXhlbFR5cGV8fEZsb2F0MzJBcnJheSxwLmVuY29kZWRNYXNrRGF0YSxfLHAucmV0dXJuTWFzayksYj17d2lkdGg6bS53aWR0aCxoZWlnaHQ6bS5oZWlnaHQscGl4ZWxEYXRhOmcucmVzdWx0UGl4ZWxzLG1pblZhbHVlOmcubWluVmFsdWUsbWF4VmFsdWU6bS5waXhlbHMubWF4VmFsdWUsbm9EYXRhVmFsdWU6X307cmV0dXJuIGcucmVzdWx0TWFzayYmKGIubWFza0RhdGE9Zy5yZXN1bHRNYXNrKSxwLnJldHVybkVuY29kZWRNYXNrJiZtLm1hc2smJihiLmVuY29kZWRNYXNrRGF0YT1tLm1hc2suYml0c2V0P20ubWFzay5iaXRzZXQ6bnVsbCkscC5yZXR1cm5GaWxlSW5mbyYmKGIuZmlsZUluZm89cyhtKSxwLmNvbXB1dGVVc2VkQml0RGVwdGhzJiYoYi5maWxlSW5mby5iaXREZXB0aHM9ZihtKSkpLGJ9O3ZhciBpPWZ1bmN0aW9uKGwscCxkLG0sXyl7dmFyIGc9MCxiPWwucGl4ZWxzLm51bUJsb2Nrc1gsdz1sLnBpeGVscy5udW1CbG9ja3NZLE89TWF0aC5mbG9vcihsLndpZHRoL2IpLEU9TWF0aC5mbG9vcihsLmhlaWdodC93KSxUPTIqbC5tYXhaRXJyb3IsQz1OdW1iZXIuTUFYX1ZBTFVFLE47ZD1kfHwobC5tYXNrP2wubWFzay5iaXRzZXQ6bnVsbCk7dmFyIEksRDtJPW5ldyBwKGwud2lkdGgqbC5oZWlnaHQpLF8mJmQmJihEPW5ldyBVaW50OEFycmF5KGwud2lkdGgqbC5oZWlnaHQpKTtmb3IodmFyIHY9bmV3IEZsb2F0MzJBcnJheShPKkUpLEwsVSxBPTA7QTw9dztBKyspe3ZhciBTPUEhPT13P0U6bC5oZWlnaHQldztpZihTIT09MClmb3IodmFyIFA9MDtQPD1iO1ArKyl7dmFyIEI9UCE9PWI/TzpsLndpZHRoJWI7aWYoQiE9PTApe3ZhciBqPUEqbC53aWR0aCpFK1AqTyxIPWwud2lkdGgtQixrPWwucGl4ZWxzLmJsb2Nrc1tnXSxLLFgsUjtrLmVuY29kaW5nPDI/KGsuZW5jb2Rpbmc9PT0wP0s9ay5yYXdEYXRhOihjKGsuc3R1ZmZlZERhdGEsay5iaXRzUGVyUGl4ZWwsay5udW1WYWxpZFBpeGVscyxrLm9mZnNldCxULHYsbC5waXhlbHMubWF4VmFsdWUpLEs9diksWD0wKTprLmVuY29kaW5nPT09Mj9SPTA6Uj1rLm9mZnNldDt2YXIgb3Q7aWYoZClmb3IoVT0wO1U8UztVKyspe2ZvcihqJjcmJihvdD1kW2o+PjNdLG90PDw9aiY3KSxMPTA7TDxCO0wrKylqJjd8fChvdD1kW2o+PjNdKSxvdCYxMjg/KEQmJihEW2pdPTEpLE49ay5lbmNvZGluZzwyP0tbWCsrXTpSLEM9Qz5OP046QyxJW2orK109Tik6KEQmJihEW2pdPTApLElbaisrXT1tKSxvdDw8PTE7ais9SH1lbHNlIGlmKGsuZW5jb2Rpbmc8Milmb3IoVT0wO1U8UztVKyspe2ZvcihMPTA7TDxCO0wrKylOPUtbWCsrXSxDPUM+Tj9OOkMsSVtqKytdPU47ais9SH1lbHNlIGZvcihDPUM+Uj9SOkMsVT0wO1U8UztVKyspe2ZvcihMPTA7TDxCO0wrKylJW2orK109UjtqKz1IfWlmKGsuZW5jb2Rpbmc9PT0xJiZYIT09ay5udW1WYWxpZFBpeGVscyl0aHJvdyJCbG9jayBhbmQgTWFzayBkbyBub3QgbWF0Y2giO2crK319fXJldHVybntyZXN1bHRQaXhlbHM6SSxyZXN1bHRNYXNrOkQsbWluVmFsdWU6Q319LHM9ZnVuY3Rpb24obCl7cmV0dXJue2ZpbGVJZGVudGlmaWVyU3RyaW5nOmwuZmlsZUlkZW50aWZpZXJTdHJpbmcsZmlsZVZlcnNpb246bC5maWxlVmVyc2lvbixpbWFnZVR5cGU6bC5pbWFnZVR5cGUsaGVpZ2h0OmwuaGVpZ2h0LHdpZHRoOmwud2lkdGgsbWF4WkVycm9yOmwubWF4WkVycm9yLGVvZk9mZnNldDpsLmVvZk9mZnNldCxtYXNrOmwubWFzaz97bnVtQmxvY2tzWDpsLm1hc2subnVtQmxvY2tzWCxudW1CbG9ja3NZOmwubWFzay5udW1CbG9ja3NZLG51bUJ5dGVzOmwubWFzay5udW1CeXRlcyxtYXhWYWx1ZTpsLm1hc2subWF4VmFsdWV9Om51bGwscGl4ZWxzOntudW1CbG9ja3NYOmwucGl4ZWxzLm51bUJsb2Nrc1gsbnVtQmxvY2tzWTpsLnBpeGVscy5udW1CbG9ja3NZLG51bUJ5dGVzOmwucGl4ZWxzLm51bUJ5dGVzLG1heFZhbHVlOmwucGl4ZWxzLm1heFZhbHVlLG5vRGF0YVZhbHVlOmwubm9EYXRhVmFsdWV9fX0sZj1mdW5jdGlvbihsKXtmb3IodmFyIHA9bC5waXhlbHMubnVtQmxvY2tzWCpsLnBpeGVscy5udW1CbG9ja3NZLGQ9e30sbT0wO208cDttKyspe3ZhciBfPWwucGl4ZWxzLmJsb2Nrc1ttXTtfLmVuY29kaW5nPT09MD9kLmZsb2F0MzI9ITA6Xy5lbmNvZGluZz09PTE/ZFtfLmJpdHNQZXJQaXhlbF09ITA6ZFswXT0hMH1yZXR1cm4gT2JqZWN0LmtleXMoZCl9LHU9ZnVuY3Rpb24obCxwLGQpe3ZhciBtPXt9LF89bmV3IFVpbnQ4QXJyYXkobCxwLDEwKTtpZihtLmZpbGVJZGVudGlmaWVyU3RyaW5nPVN0cmluZy5mcm9tQ2hhckNvZGUuYXBwbHkobnVsbCxfKSxtLmZpbGVJZGVudGlmaWVyU3RyaW5nLnRyaW0oKSE9PSJDbnRaSW1hZ2UiKXRocm93IlVuZXhwZWN0ZWQgZmlsZSBpZGVudGlmaWVyIHN0cmluZzogIittLmZpbGVJZGVudGlmaWVyU3RyaW5nO3ArPTEwO3ZhciBnPW5ldyBEYXRhVmlldyhsLHAsMjQpO2lmKG0uZmlsZVZlcnNpb249Zy5nZXRJbnQzMigwLCEwKSxtLmltYWdlVHlwZT1nLmdldEludDMyKDQsITApLG0uaGVpZ2h0PWcuZ2V0VWludDMyKDgsITApLG0ud2lkdGg9Zy5nZXRVaW50MzIoMTIsITApLG0ubWF4WkVycm9yPWcuZ2V0RmxvYXQ2NCgxNiwhMCkscCs9MjQsIWQpaWYoZz1uZXcgRGF0YVZpZXcobCxwLDE2KSxtLm1hc2s9e30sbS5tYXNrLm51bUJsb2Nrc1k9Zy5nZXRVaW50MzIoMCwhMCksbS5tYXNrLm51bUJsb2Nrc1g9Zy5nZXRVaW50MzIoNCwhMCksbS5tYXNrLm51bUJ5dGVzPWcuZ2V0VWludDMyKDgsITApLG0ubWFzay5tYXhWYWx1ZT1nLmdldEZsb2F0MzIoMTIsITApLHArPTE2LG0ubWFzay5udW1CeXRlcz4wKXt2YXIgYj1uZXcgVWludDhBcnJheShNYXRoLmNlaWwobS53aWR0aCptLmhlaWdodC84KSk7Zz1uZXcgRGF0YVZpZXcobCxwLG0ubWFzay5udW1CeXRlcyk7dmFyIHc9Zy5nZXRJbnQxNigwLCEwKSxPPTIsRT0wO2Rve2lmKHc+MClmb3IoO3ctLTspYltFKytdPWcuZ2V0VWludDgoTysrKTtlbHNle3ZhciBUPWcuZ2V0VWludDgoTysrKTtmb3Iodz0tdzt3LS07KWJbRSsrXT1UfXc9Zy5nZXRJbnQxNihPLCEwKSxPKz0yfXdoaWxlKE88bS5tYXNrLm51bUJ5dGVzKTtpZih3IT09LTMyNzY4fHxFPGIubGVuZ3RoKXRocm93IlVuZXhwZWN0ZWQgZW5kIG9mIG1hc2sgUkxFIGVuY29kaW5nIjttLm1hc2suYml0c2V0PWIscCs9bS5tYXNrLm51bUJ5dGVzfWVsc2UgbS5tYXNrLm51bUJ5dGVzfG0ubWFzay5udW1CbG9ja3NZfG0ubWFzay5tYXhWYWx1ZXx8KG0ubWFzay5iaXRzZXQ9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKG0ud2lkdGgqbS5oZWlnaHQvOCkpKTtnPW5ldyBEYXRhVmlldyhsLHAsMTYpLG0ucGl4ZWxzPXt9LG0ucGl4ZWxzLm51bUJsb2Nrc1k9Zy5nZXRVaW50MzIoMCwhMCksbS5waXhlbHMubnVtQmxvY2tzWD1nLmdldFVpbnQzMig0LCEwKSxtLnBpeGVscy5udW1CeXRlcz1nLmdldFVpbnQzMig4LCEwKSxtLnBpeGVscy5tYXhWYWx1ZT1nLmdldEZsb2F0MzIoMTIsITApLHArPTE2O3ZhciBDPW0ucGl4ZWxzLm51bUJsb2Nrc1gsTj1tLnBpeGVscy5udW1CbG9ja3NZLEk9QysobS53aWR0aCVDPjA/MTowKSxEPU4rKG0uaGVpZ2h0JU4+MD8xOjApO20ucGl4ZWxzLmJsb2Nrcz1uZXcgQXJyYXkoSSpEKTtmb3IodmFyIHY9MCxMPTA7TDxEO0wrKylmb3IodmFyIFU9MDtVPEk7VSsrKXt2YXIgQT0wLFM9bC5ieXRlTGVuZ3RoLXA7Zz1uZXcgRGF0YVZpZXcobCxwLE1hdGgubWluKDEwLFMpKTt2YXIgUD17fTttLnBpeGVscy5ibG9ja3NbdisrXT1QO3ZhciBCPWcuZ2V0VWludDgoMCk7aWYoQSsrLFAuZW5jb2Rpbmc9QiY2MyxQLmVuY29kaW5nPjMpdGhyb3ciSW52YWxpZCBibG9jayBlbmNvZGluZyAoIitQLmVuY29kaW5nKyIpIjtpZihQLmVuY29kaW5nPT09Mil7cCsrO2NvbnRpbnVlfWlmKEIhPT0wJiZCIT09Mil7aWYoQj4+PTYsUC5vZmZzZXRUeXBlPUIsQj09PTIpUC5vZmZzZXQ9Zy5nZXRJbnQ4KDEpLEErKztlbHNlIGlmKEI9PT0xKVAub2Zmc2V0PWcuZ2V0SW50MTYoMSwhMCksQSs9MjtlbHNlIGlmKEI9PT0wKVAub2Zmc2V0PWcuZ2V0RmxvYXQzMigxLCEwKSxBKz00O2Vsc2UgdGhyb3ciSW52YWxpZCBibG9jayBvZmZzZXQgdHlwZSI7aWYoUC5lbmNvZGluZz09PTEpaWYoQj1nLmdldFVpbnQ4KEEpLEErKyxQLmJpdHNQZXJQaXhlbD1CJjYzLEI+Pj02LFAubnVtVmFsaWRQaXhlbHNUeXBlPUIsQj09PTIpUC5udW1WYWxpZFBpeGVscz1nLmdldFVpbnQ4KEEpLEErKztlbHNlIGlmKEI9PT0xKVAubnVtVmFsaWRQaXhlbHM9Zy5nZXRVaW50MTYoQSwhMCksQSs9MjtlbHNlIGlmKEI9PT0wKVAubnVtVmFsaWRQaXhlbHM9Zy5nZXRVaW50MzIoQSwhMCksQSs9NDtlbHNlIHRocm93IkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSJ9aWYocCs9QSxQLmVuY29kaW5nIT09Myl7dmFyIGosSDtpZihQLmVuY29kaW5nPT09MCl7dmFyIGs9KG0ucGl4ZWxzLm51bUJ5dGVzLTEpLzQ7aWYoayE9PU1hdGguZmxvb3IoaykpdGhyb3cidW5jb21wcmVzc2VkIGJsb2NrIGhhcyBpbnZhbGlkIGxlbmd0aCI7aj1uZXcgQXJyYXlCdWZmZXIoayo0KSxIPW5ldyBVaW50OEFycmF5KGopLEguc2V0KG5ldyBVaW50OEFycmF5KGwscCxrKjQpKTt2YXIgSz1uZXcgRmxvYXQzMkFycmF5KGopO1AucmF3RGF0YT1LLHArPWsqNH1lbHNlIGlmKFAuZW5jb2Rpbmc9PT0xKXt2YXIgWD1NYXRoLmNlaWwoUC5udW1WYWxpZFBpeGVscypQLmJpdHNQZXJQaXhlbC84KSxSPU1hdGguY2VpbChYLzQpO2o9bmV3IEFycmF5QnVmZmVyKFIqNCksSD1uZXcgVWludDhBcnJheShqKSxILnNldChuZXcgVWludDhBcnJheShsLHAsWCkpLFAuc3R1ZmZlZERhdGE9bmV3IFVpbnQzMkFycmF5KGopLHArPVh9fX1yZXR1cm4gbS5lb2ZPZmZzZXQ9cCxtfSxjPWZ1bmN0aW9uKGwscCxkLG0sXyxnLGIpe3ZhciB3PSgxPDxwKS0xLE89MCxFLFQ9MCxDLE4sST1NYXRoLmNlaWwoKGItbSkvXyksRD1sLmxlbmd0aCo0LU1hdGguY2VpbChwKmQvOCk7Zm9yKGxbbC5sZW5ndGgtMV08PD04KkQsRT0wO0U8ZDtFKyspe2lmKFQ9PT0wJiYoTj1sW08rK10sVD0zMiksVD49cClDPU4+Pj5ULXAmdyxULT1wO2Vsc2V7dmFyIHY9cC1UO0M9KE4mdyk8PHYmdyxOPWxbTysrXSxUPTMyLXYsQys9Tj4+PlR9Z1tFXT1DPEk/bStDKl86Yn1yZXR1cm4gZ307cmV0dXJuIHJ9KCksZT1mdW5jdGlvbigpeyJ1c2Ugc3RyaWN0Ijt2YXIgcj17dW5zdHVmZjpmdW5jdGlvbih1LGMsbCxwLGQsbSxfLGcpe3ZhciBiPSgxPDxsKS0xLHc9MCxPLEU9MCxULEMsTixJLEQ9dS5sZW5ndGgqNC1NYXRoLmNlaWwobCpwLzgpO2lmKHVbdS5sZW5ndGgtMV08PD04KkQsZClmb3IoTz0wO088cDtPKyspRT09PTAmJihDPXVbdysrXSxFPTMyKSxFPj1sPyhUPUM+Pj5FLWwmYixFLT1sKTooTj1sLUUsVD0oQyZiKTw8TiZiLEM9dVt3KytdLEU9MzItTixUKz1DPj4+RSksY1tPXT1kW1RdO2Vsc2UgZm9yKEk9TWF0aC5jZWlsKChnLW0pL18pLE89MDtPPHA7TysrKUU9PT0wJiYoQz11W3crK10sRT0zMiksRT49bD8oVD1DPj4+RS1sJmIsRS09bCk6KE49bC1FLFQ9KEMmYik8PE4mYixDPXVbdysrXSxFPTMyLU4sVCs9Qz4+PkUpLGNbT109VDxJP20rVCpfOmd9LHVuc3R1ZmZMVVQ6ZnVuY3Rpb24odSxjLGwscCxkLG0pe3ZhciBfPSgxPDxjKS0xLGc9MCxiPTAsdz0wLE89MCxFPTAsVCxDPVtdLE49dS5sZW5ndGgqNC1NYXRoLmNlaWwoYypsLzgpO3VbdS5sZW5ndGgtMV08PD04Kk47dmFyIEk9TWF0aC5jZWlsKChtLXApL2QpO2ZvcihiPTA7YjxsO2IrKylPPT09MCYmKFQ9dVtnKytdLE89MzIpLE8+PWM/KEU9VD4+Pk8tYyZfLE8tPWMpOih3PWMtTyxFPShUJl8pPDx3Jl8sVD11W2crK10sTz0zMi13LEUrPVQ+Pj5PKSxDW2JdPUU8ST9wK0UqZDptO3JldHVybiBDLnVuc2hpZnQocCksQ30sdW5zdHVmZjI6ZnVuY3Rpb24odSxjLGwscCxkLG0sXyxnKXt2YXIgYj0oMTw8bCktMSx3PTAsTyxFPTAsVD0wLEMsTixJO2lmKGQpZm9yKE89MDtPPHA7TysrKUU9PT0wJiYoTj11W3crK10sRT0zMixUPTApLEU+PWw/KEM9Tj4+PlQmYixFLT1sLFQrPWwpOihJPWwtRSxDPU4+Pj5UJmIsTj11W3crK10sRT0zMi1JLEN8PShOJigxPDxJKS0xKTw8bC1JLFQ9SSksY1tPXT1kW0NdO2Vsc2V7dmFyIEQ9TWF0aC5jZWlsKChnLW0pL18pO2ZvcihPPTA7TzxwO08rKylFPT09MCYmKE49dVt3KytdLEU9MzIsVD0wKSxFPj1sPyhDPU4+Pj5UJmIsRS09bCxUKz1sKTooST1sLUUsQz1OPj4+VCZiLE49dVt3KytdLEU9MzItSSxDfD0oTiYoMTw8SSktMSk8PGwtSSxUPUkpLGNbT109QzxEP20rQypfOmd9cmV0dXJuIGN9LHVuc3R1ZmZMVVQyOmZ1bmN0aW9uKHUsYyxsLHAsZCxtKXt2YXIgXz0oMTw8YyktMSxnPTAsYj0wLHc9MCxPPTAsRT0wLFQ9MCxDLE49W10sST1NYXRoLmNlaWwoKG0tcCkvZCk7Zm9yKGI9MDtiPGw7YisrKU89PT0wJiYoQz11W2crK10sTz0zMixUPTApLE8+PWM/KEU9Qz4+PlQmXyxPLT1jLFQrPWMpOih3PWMtTyxFPUM+Pj5UJl8sQz11W2crK10sTz0zMi13LEV8PShDJigxPDx3KS0xKTw8Yy13LFQ9dyksTltiXT1FPEk/cCtFKmQ6bTtyZXR1cm4gTi51bnNoaWZ0KHApLE59LG9yaWdpbmFsVW5zdHVmZjpmdW5jdGlvbih1LGMsbCxwKXt2YXIgZD0oMTw8bCktMSxtPTAsXyxnPTAsYix3LE8sRT11Lmxlbmd0aCo0LU1hdGguY2VpbChsKnAvOCk7Zm9yKHVbdS5sZW5ndGgtMV08PD04KkUsXz0wO188cDtfKyspZz09PTAmJih3PXVbbSsrXSxnPTMyKSxnPj1sPyhiPXc+Pj5nLWwmZCxnLT1sKTooTz1sLWcsYj0odyZkKTw8TyZkLHc9dVttKytdLGc9MzItTyxiKz13Pj4+ZyksY1tfXT1iO3JldHVybiBjfSxvcmlnaW5hbFVuc3R1ZmYyOmZ1bmN0aW9uKHUsYyxsLHApe3ZhciBkPSgxPDxsKS0xLG09MCxfLGc9MCxiPTAsdyxPLEU7Zm9yKF89MDtfPHA7XysrKWc9PT0wJiYoTz11W20rK10sZz0zMixiPTApLGc+PWw/KHc9Tz4+PmImZCxnLT1sLGIrPWwpOihFPWwtZyx3PU8+Pj5iJmQsTz11W20rK10sZz0zMi1FLHd8PShPJigxPDxFKS0xKTw8bC1FLGI9RSksY1tfXT13O3JldHVybiBjfX0saT17SFVGRk1BTl9MVVRfQklUU19NQVg6MTIsY29tcHV0ZUNoZWNrc3VtRmxldGNoZXIzMjpmdW5jdGlvbih1KXtmb3IodmFyIGM9NjU1MzUsbD02NTUzNSxwPXUubGVuZ3RoLGQ9TWF0aC5mbG9vcihwLzIpLG09MDtkOyl7dmFyIF89ZD49MzU5PzM1OTpkO2QtPV87ZG8gYys9dVttKytdPDw4LGwrPWMrPXVbbSsrXTt3aGlsZSgtLV8pO2M9KGMmNjU1MzUpKyhjPj4+MTYpLGw9KGwmNjU1MzUpKyhsPj4+MTYpfXJldHVybiBwJjEmJihsKz1jKz11W21dPDw4KSxjPShjJjY1NTM1KSsoYz4+PjE2KSxsPShsJjY1NTM1KSsobD4+PjE2KSwobDw8MTZ8Yyk+Pj4wfSxyZWFkSGVhZGVySW5mbzpmdW5jdGlvbih1LGMpe3ZhciBsPWMucHRyLHA9bmV3IFVpbnQ4QXJyYXkodSxsLDYpLGQ9e307aWYoZC5maWxlSWRlbnRpZmllclN0cmluZz1TdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwscCksZC5maWxlSWRlbnRpZmllclN0cmluZy5sYXN0SW5kZXhPZigiTGVyYzIiLDApIT09MCl0aHJvdyJVbmV4cGVjdGVkIGZpbGUgaWRlbnRpZmllciBzdHJpbmcgKGV4cGVjdCBMZXJjMiApOiAiK2QuZmlsZUlkZW50aWZpZXJTdHJpbmc7bCs9Njt2YXIgbT1uZXcgRGF0YVZpZXcodSxsLDgpLF89bS5nZXRJbnQzMigwLCEwKTtkLmZpbGVWZXJzaW9uPV8sbCs9NCxfPj0zJiYoZC5jaGVja3N1bT1tLmdldFVpbnQzMig0LCEwKSxsKz00KSxtPW5ldyBEYXRhVmlldyh1LGwsMTIpLGQuaGVpZ2h0PW0uZ2V0VWludDMyKDAsITApLGQud2lkdGg9bS5nZXRVaW50MzIoNCwhMCksbCs9OCxfPj00PyhkLm51bURpbXM9bS5nZXRVaW50MzIoOCwhMCksbCs9NCk6ZC5udW1EaW1zPTEsbT1uZXcgRGF0YVZpZXcodSxsLDQwKSxkLm51bVZhbGlkUGl4ZWw9bS5nZXRVaW50MzIoMCwhMCksZC5taWNyb0Jsb2NrU2l6ZT1tLmdldEludDMyKDQsITApLGQuYmxvYlNpemU9bS5nZXRJbnQzMig4LCEwKSxkLmltYWdlVHlwZT1tLmdldEludDMyKDEyLCEwKSxkLm1heFpFcnJvcj1tLmdldEZsb2F0NjQoMTYsITApLGQuek1pbj1tLmdldEZsb2F0NjQoMjQsITApLGQuek1heD1tLmdldEZsb2F0NjQoMzIsITApLGwrPTQwLGMuaGVhZGVySW5mbz1kLGMucHRyPWw7dmFyIGcsYjtpZihfPj0zJiYoYj1fPj00PzUyOjQ4LGc9dGhpcy5jb21wdXRlQ2hlY2tzdW1GbGV0Y2hlcjMyKG5ldyBVaW50OEFycmF5KHUsbC1iLGQuYmxvYlNpemUtMTQpKSxnIT09ZC5jaGVja3N1bSkpdGhyb3ciQ2hlY2tzdW0gZmFpbGVkLiI7cmV0dXJuITB9LGNoZWNrTWluTWF4UmFuZ2VzOmZ1bmN0aW9uKHUsYyl7dmFyIGw9Yy5oZWFkZXJJbmZvLHA9dGhpcy5nZXREYXRhVHlwZUFycmF5KGwuaW1hZ2VUeXBlKSxkPWwubnVtRGltcyp0aGlzLmdldERhdGFUeXBlU2l6ZShsLmltYWdlVHlwZSksbT10aGlzLnJlYWRTdWJBcnJheSh1LGMucHRyLHAsZCksXz10aGlzLnJlYWRTdWJBcnJheSh1LGMucHRyK2QscCxkKTtjLnB0cis9MipkO3ZhciBnLGI9ITA7Zm9yKGc9MDtnPGwubnVtRGltcztnKyspaWYobVtnXSE9PV9bZ10pe2I9ITE7YnJlYWt9cmV0dXJuIGwubWluVmFsdWVzPW0sbC5tYXhWYWx1ZXM9XyxifSxyZWFkU3ViQXJyYXk6ZnVuY3Rpb24odSxjLGwscCl7dmFyIGQ7aWYobD09PVVpbnQ4QXJyYXkpZD1uZXcgVWludDhBcnJheSh1LGMscCk7ZWxzZXt2YXIgbT1uZXcgQXJyYXlCdWZmZXIocCksXz1uZXcgVWludDhBcnJheShtKTtfLnNldChuZXcgVWludDhBcnJheSh1LGMscCkpLGQ9bmV3IGwobSl9cmV0dXJuIGR9LHJlYWRNYXNrOmZ1bmN0aW9uKHUsYyl7dmFyIGw9Yy5wdHIscD1jLmhlYWRlckluZm8sZD1wLndpZHRoKnAuaGVpZ2h0LG09cC5udW1WYWxpZFBpeGVsLF89bmV3IERhdGFWaWV3KHUsbCw0KSxnPXt9O2lmKGcubnVtQnl0ZXM9Xy5nZXRVaW50MzIoMCwhMCksbCs9NCwobT09PTB8fGQ9PT1tKSYmZy5udW1CeXRlcyE9PTApdGhyb3ciaW52YWxpZCBtYXNrIjt2YXIgYix3O2lmKG09PT0wKWI9bmV3IFVpbnQ4QXJyYXkoTWF0aC5jZWlsKGQvOCkpLGcuYml0c2V0PWIsdz1uZXcgVWludDhBcnJheShkKSxjLnBpeGVscy5yZXN1bHRNYXNrPXcsbCs9Zy5udW1CeXRlcztlbHNlIGlmKGcubnVtQnl0ZXM+MCl7Yj1uZXcgVWludDhBcnJheShNYXRoLmNlaWwoZC84KSksXz1uZXcgRGF0YVZpZXcodSxsLGcubnVtQnl0ZXMpO3ZhciBPPV8uZ2V0SW50MTYoMCwhMCksRT0yLFQ9MCxDPTA7ZG97aWYoTz4wKWZvcig7Ty0tOyliW1QrK109Xy5nZXRVaW50OChFKyspO2Vsc2UgZm9yKEM9Xy5nZXRVaW50OChFKyspLE89LU87Ty0tOyliW1QrK109QztPPV8uZ2V0SW50MTYoRSwhMCksRSs9Mn13aGlsZShFPGcubnVtQnl0ZXMpO2lmKE8hPT0tMzI3Njh8fFQ8Yi5sZW5ndGgpdGhyb3ciVW5leHBlY3RlZCBlbmQgb2YgbWFzayBSTEUgZW5jb2RpbmciO3c9bmV3IFVpbnQ4QXJyYXkoZCk7dmFyIE49MCxJPTA7Zm9yKEk9MDtJPGQ7SSsrKUkmNz8oTj1iW0k+PjNdLE48PD1JJjcpOk49YltJPj4zXSxOJjEyOCYmKHdbSV09MSk7Yy5waXhlbHMucmVzdWx0TWFzaz13LGcuYml0c2V0PWIsbCs9Zy5udW1CeXRlc31yZXR1cm4gYy5wdHI9bCxjLm1hc2s9ZywhMH0scmVhZERhdGFPbmVTd2VlcDpmdW5jdGlvbih1LGMsbCl7dmFyIHA9Yy5wdHIsZD1jLmhlYWRlckluZm8sbT1kLm51bURpbXMsXz1kLndpZHRoKmQuaGVpZ2h0LGc9ZC5pbWFnZVR5cGUsYj1kLm51bVZhbGlkUGl4ZWwqaS5nZXREYXRhVHlwZVNpemUoZykqbSx3LE89Yy5waXhlbHMucmVzdWx0TWFzaztpZihsPT09VWludDhBcnJheSl3PW5ldyBVaW50OEFycmF5KHUscCxiKTtlbHNle3ZhciBFPW5ldyBBcnJheUJ1ZmZlcihiKSxUPW5ldyBVaW50OEFycmF5KEUpO1Quc2V0KG5ldyBVaW50OEFycmF5KHUscCxiKSksdz1uZXcgbChFKX1pZih3Lmxlbmd0aD09PV8qbSljLnBpeGVscy5yZXN1bHRQaXhlbHM9dztlbHNle2MucGl4ZWxzLnJlc3VsdFBpeGVscz1uZXcgbChfKm0pO3ZhciBDPTAsTj0wLEk9MCxEPTA7aWYobT4xKWZvcihJPTA7STxtO0krKylmb3IoRD1JKl8sTj0wO048XztOKyspT1tOXSYmKGMucGl4ZWxzLnJlc3VsdFBpeGVsc1tEK05dPXdbQysrXSk7ZWxzZSBmb3IoTj0wO048XztOKyspT1tOXSYmKGMucGl4ZWxzLnJlc3VsdFBpeGVsc1tOXT13W0MrK10pfXJldHVybiBwKz1iLGMucHRyPXAsITB9LHJlYWRIdWZmbWFuVHJlZTpmdW5jdGlvbih1LGMpe3ZhciBsPXRoaXMuSFVGRk1BTl9MVVRfQklUU19NQVgscD1uZXcgRGF0YVZpZXcodSxjLnB0ciwxNik7Yy5wdHIrPTE2O3ZhciBkPXAuZ2V0SW50MzIoMCwhMCk7aWYoZDwyKXRocm93InVuc3VwcG9ydGVkIEh1ZmZtYW4gdmVyc2lvbiI7dmFyIG09cC5nZXRJbnQzMig0LCEwKSxfPXAuZ2V0SW50MzIoOCwhMCksZz1wLmdldEludDMyKDEyLCEwKTtpZihfPj1nKXJldHVybiExO3ZhciBiPW5ldyBVaW50MzJBcnJheShnLV8pO2kuZGVjb2RlQml0cyh1LGMsYik7dmFyIHc9W10sTyxFLFQsQztmb3IoTz1fO088ZztPKyspRT1PLShPPG0/MDptKSx3W0VdPXtmaXJzdDpiW08tX10sc2Vjb25kOm51bGx9O3ZhciBOPXUuYnl0ZUxlbmd0aC1jLnB0cixJPU1hdGguY2VpbChOLzQpLEQ9bmV3IEFycmF5QnVmZmVyKEkqNCksdj1uZXcgVWludDhBcnJheShEKTt2LnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLE4pKTt2YXIgTD1uZXcgVWludDMyQXJyYXkoRCksVT0wLEEsUz0wO2ZvcihBPUxbMF0sTz1fO088ZztPKyspRT1PLShPPG0/MDptKSxDPXdbRV0uZmlyc3QsQz4wJiYod1tFXS5zZWNvbmQ9QTw8VT4+PjMyLUMsMzItVT49Qz8oVSs9QyxVPT09MzImJihVPTAsUysrLEE9TFtTXSkpOihVKz1DLTMyLFMrKyxBPUxbU10sd1tFXS5zZWNvbmR8PUE+Pj4zMi1VKSk7dmFyIFA9MCxCPTAsaj1uZXcgcztmb3IoTz0wO088dy5sZW5ndGg7TysrKXdbT10hPT12b2lkIDAmJihQPU1hdGgubWF4KFAsd1tPXS5maXJzdCkpO1A+PWw/Qj1sOkI9UCxQPj0zMCYmY29uc29sZS5sb2coIldBUm5pbmcsIGxhcmdlIE5VTSBMVVQgQklUUyBJUyAiK1ApO3ZhciBIPVtdLGssSyxYLFIsb3QsYXQ7Zm9yKE89XztPPGc7TysrKWlmKEU9Ty0oTzxtPzA6bSksQz13W0VdLmZpcnN0LEM+MClpZihrPVtDLEVdLEM8PUIpZm9yKEs9d1tFXS5zZWNvbmQ8PEItQyxYPTE8PEItQyxUPTA7VDxYO1QrKylIW0t8VF09aztlbHNlIGZvcihLPXdbRV0uc2Vjb25kLGF0PWosUj1DLTE7Uj49MDtSLS0pb3Q9Sz4+PlImMSxvdD8oYXQucmlnaHR8fChhdC5yaWdodD1uZXcgcyksYXQ9YXQucmlnaHQpOihhdC5sZWZ0fHwoYXQubGVmdD1uZXcgcyksYXQ9YXQubGVmdCksUj09PTAmJiFhdC52YWwmJihhdC52YWw9a1sxXSk7cmV0dXJue2RlY29kZUx1dDpILG51bUJpdHNMVVRRaWNrOkIsbnVtQml0c0xVVDpQLHRyZWU6aixzdHVmZmVkRGF0YTpMLHNyY1B0cjpTLGJpdFBvczpVfX0scmVhZEh1ZmZtYW46ZnVuY3Rpb24odSxjLGwpe3ZhciBwPWMuaGVhZGVySW5mbyxkPXAubnVtRGltcyxtPWMuaGVhZGVySW5mby5oZWlnaHQsXz1jLmhlYWRlckluZm8ud2lkdGgsZz1fKm0sYj10aGlzLnJlYWRIdWZmbWFuVHJlZSh1LGMpLHc9Yi5kZWNvZGVMdXQsTz1iLnRyZWUsRT1iLnN0dWZmZWREYXRhLFQ9Yi5zcmNQdHIsQz1iLmJpdFBvcyxOPWIubnVtQml0c0xVVFFpY2ssST1iLm51bUJpdHNMVVQsRD1jLmhlYWRlckluZm8uaW1hZ2VUeXBlPT09MD8xMjg6MCx2LEwsVSxBPWMucGl4ZWxzLnJlc3VsdE1hc2ssUyxQLEIsaixILGssSyxYPTA7Qz4wJiYoVCsrLEM9MCk7dmFyIFI9RVtUXSxvdD1jLmVuY29kZU1vZGU9PT0xLGF0PW5ldyBsKGcqZCkscHQ9YXQseXQ7Zm9yKHl0PTA7eXQ8cC5udW1EaW1zO3l0Kyspe2lmKGQ+MSYmKHB0PW5ldyBsKGF0LmJ1ZmZlcixnKnl0LGcpLFg9MCksYy5oZWFkZXJJbmZvLm51bVZhbGlkUGl4ZWw9PT1fKm0pZm9yKGs9MCxqPTA7ajxtO2orKylmb3IoSD0wO0g8XztIKyssaysrKXtpZihMPTAsUz1SPDxDPj4+MzItTixQPVMsMzItQzxOJiYoU3w9RVtUKzFdPj4+NjQtQy1OLFA9Uyksd1tQXSlMPXdbUF1bMV0sQys9d1tQXVswXTtlbHNlIGZvcihTPVI8PEM+Pj4zMi1JLFA9UywzMi1DPEkmJihTfD1FW1QrMV0+Pj42NC1DLUksUD1TKSx2PU8sSz0wO0s8STtLKyspaWYoQj1TPj4+SS1LLTEmMSx2PUI/di5yaWdodDp2LmxlZnQsISh2LmxlZnR8fHYucmlnaHQpKXtMPXYudmFsLEM9QytLKzE7YnJlYWt9Qz49MzImJihDLT0zMixUKyssUj1FW1RdKSxVPUwtRCxvdD8oSD4wP1UrPVg6aj4wP1UrPXB0W2stX106VSs9WCxVJj0yNTUscHRba109VSxYPVUpOnB0W2tdPVV9ZWxzZSBmb3Ioaz0wLGo9MDtqPG07aisrKWZvcihIPTA7SDxfO0grKyxrKyspaWYoQVtrXSl7aWYoTD0wLFM9Ujw8Qz4+PjMyLU4sUD1TLDMyLUM8TiYmKFN8PUVbVCsxXT4+PjY0LUMtTixQPVMpLHdbUF0pTD13W1BdWzFdLEMrPXdbUF1bMF07ZWxzZSBmb3IoUz1SPDxDPj4+MzItSSxQPVMsMzItQzxJJiYoU3w9RVtUKzFdPj4+NjQtQy1JLFA9Uyksdj1PLEs9MDtLPEk7SysrKWlmKEI9Uz4+PkktSy0xJjEsdj1CP3YucmlnaHQ6di5sZWZ0LCEodi5sZWZ0fHx2LnJpZ2h0KSl7TD12LnZhbCxDPUMrSysxO2JyZWFrfUM+PTMyJiYoQy09MzIsVCsrLFI9RVtUXSksVT1MLUQsb3Q/KEg+MCYmQVtrLTFdP1UrPVg6aj4wJiZBW2stX10/VSs9cHRbay1fXTpVKz1YLFUmPTI1NSxwdFtrXT1VLFg9VSk6cHRba109VX1jLnB0cj1jLnB0cisoVCsxKSo0KyhDPjA/NDowKX1jLnBpeGVscy5yZXN1bHRQaXhlbHM9YXR9LGRlY29kZUJpdHM6ZnVuY3Rpb24odSxjLGwscCxkKXt7dmFyIG09Yy5oZWFkZXJJbmZvLF89bS5maWxlVmVyc2lvbixnPTAsYj1uZXcgRGF0YVZpZXcodSxjLnB0ciw1KSx3PWIuZ2V0VWludDgoMCk7ZysrO3ZhciBPPXc+PjYsRT1PPT09MD80OjMtTyxUPSh3JjMyKT4wLEM9dyYzMSxOPTA7aWYoRT09PTEpTj1iLmdldFVpbnQ4KGcpLGcrKztlbHNlIGlmKEU9PT0yKU49Yi5nZXRVaW50MTYoZywhMCksZys9MjtlbHNlIGlmKEU9PT00KU49Yi5nZXRVaW50MzIoZywhMCksZys9NDtlbHNlIHRocm93IkludmFsaWQgdmFsaWQgcGl4ZWwgY291bnQgdHlwZSI7dmFyIEk9MiptLm1heFpFcnJvcixELHYsTCxVLEEsUyxQLEIsaixILGs9bS5udW1EaW1zPjE/bS5tYXhWYWx1ZXNbZF06bS56TWF4O2lmKFQpe2ZvcihjLmNvdW50ZXIubHV0KyssQj1iLmdldFVpbnQ4KGcpLGo9QyxnKyssVT1NYXRoLmNlaWwoKEItMSkqQy84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksTD1uZXcgVWludDhBcnJheSh2KSxjLnB0cis9ZyxMLnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxQPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxIPTA7Qi0xPj4+SDspSCsrO1U9TWF0aC5jZWlsKE4qSC84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksTD1uZXcgVWludDhBcnJheSh2KSxMLnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxEPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxfPj0zP1M9ci51bnN0dWZmTFVUMihQLEMsQi0xLHAsSSxrKTpTPXIudW5zdHVmZkxVVChQLEMsQi0xLHAsSSxrKSxfPj0zP3IudW5zdHVmZjIoRCxsLEgsTixTKTpyLnVuc3R1ZmYoRCxsLEgsTixTKX1lbHNlIGMuY291bnRlci5iaXRzdHVmZmVyKyssSD1DLGMucHRyKz1nLEg+MCYmKFU9TWF0aC5jZWlsKE4qSC84KSxBPU1hdGguY2VpbChVLzQpLHY9bmV3IEFycmF5QnVmZmVyKEEqNCksTD1uZXcgVWludDhBcnJheSh2KSxMLnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLFUpKSxEPW5ldyBVaW50MzJBcnJheSh2KSxjLnB0cis9VSxfPj0zP3A9PW51bGw/ci5vcmlnaW5hbFVuc3R1ZmYyKEQsbCxILE4pOnIudW5zdHVmZjIoRCxsLEgsTiwhMSxwLEksayk6cD09bnVsbD9yLm9yaWdpbmFsVW5zdHVmZihELGwsSCxOKTpyLnVuc3R1ZmYoRCxsLEgsTiwhMSxwLEksaykpfX0scmVhZFRpbGVzOmZ1bmN0aW9uKHUsYyxsKXt2YXIgcD1jLmhlYWRlckluZm8sZD1wLndpZHRoLG09cC5oZWlnaHQsXz1wLm1pY3JvQmxvY2tTaXplLGc9cC5pbWFnZVR5cGUsYj1pLmdldERhdGFUeXBlU2l6ZShnKSx3PU1hdGguY2VpbChkL18pLE89TWF0aC5jZWlsKG0vXyk7Yy5waXhlbHMubnVtQmxvY2tzWT1PLGMucGl4ZWxzLm51bUJsb2Nrc1g9dyxjLnBpeGVscy5wdHI9MDt2YXIgRT0wLFQ9MCxDPTAsTj0wLEk9MCxEPTAsdj0wLEw9MCxVPTAsQT0wLFM9MCxQPTAsQj0wLGo9MCxIPTAsaz0wLEssWCxSLG90LGF0LHB0LHl0PW5ldyBsKF8qXykscnQ9bSVffHxfLFB0PWQlX3x8XyxndCxDdCxtdD1wLm51bURpbXMsdXQsdnQ9Yy5waXhlbHMucmVzdWx0TWFzayx6dD1jLnBpeGVscy5yZXN1bHRQaXhlbHM7Zm9yKEM9MDtDPE87QysrKWZvcihJPUMhPT1PLTE/XzpydCxOPTA7Tjx3O04rKylmb3IoRD1OIT09dy0xP186UHQsUz1DKmQqXytOKl8sUD1kLUQsdXQ9MDt1dDxtdDt1dCsrKXtpZihtdD4xJiYoenQ9bmV3IGwoYy5waXhlbHMucmVzdWx0UGl4ZWxzLmJ1ZmZlcixkKm0qdXQqYixkKm0pKSx2PXUuYnl0ZUxlbmd0aC1jLnB0cixLPW5ldyBEYXRhVmlldyh1LGMucHRyLE1hdGgubWluKDEwLHYpKSxYPXt9LGs9MCxMPUsuZ2V0VWludDgoMCksaysrLFU9TD4+NiYyNTUsQT1MPj4yJjE1LEEhPT0oTipfPj4zJjE1KSl0aHJvdyJpbnRlZ3JpdHkgaXNzdWUiO2lmKHB0PUwmMyxwdD4zKXRocm93IGMucHRyKz1rLCJJbnZhbGlkIGJsb2NrIGVuY29kaW5nICgiK3B0KyIpIjtpZihwdD09PTIpe2MuY291bnRlci5jb25zdGFudCsrLGMucHRyKz1rO2NvbnRpbnVlfWVsc2UgaWYocHQ9PT0wKXtpZihjLmNvdW50ZXIudW5jb21wcmVzc2VkKyssYy5wdHIrPWssQj1JKkQqYixqPXUuYnl0ZUxlbmd0aC1jLnB0cixCPUI8aj9COmosUj1uZXcgQXJyYXlCdWZmZXIoQiViPT09MD9COkIrYi1CJWIpLG90PW5ldyBVaW50OEFycmF5KFIpLG90LnNldChuZXcgVWludDhBcnJheSh1LGMucHRyLEIpKSxhdD1uZXcgbChSKSxIPTAsdnQpZm9yKEU9MDtFPEk7RSsrKXtmb3IoVD0wO1Q8RDtUKyspdnRbU10mJih6dFtTXT1hdFtIKytdKSxTKys7Uys9UH1lbHNlIGZvcihFPTA7RTxJO0UrKyl7Zm9yKFQ9MDtUPEQ7VCsrKXp0W1MrK109YXRbSCsrXTtTKz1QfWMucHRyKz1IKmJ9ZWxzZSBpZihndD1pLmdldERhdGFUeXBlVXNlZChnLFUpLEN0PWkuZ2V0T25lUGl4ZWwoWCxrLGd0LEspLGsrPWkuZ2V0RGF0YVR5cGVTaXplKGd0KSxwdD09PTMpaWYoYy5wdHIrPWssYy5jb3VudGVyLmNvbnN0YW50b2Zmc2V0KyssdnQpZm9yKEU9MDtFPEk7RSsrKXtmb3IoVD0wO1Q8RDtUKyspdnRbU10mJih6dFtTXT1DdCksUysrO1MrPVB9ZWxzZSBmb3IoRT0wO0U8STtFKyspe2ZvcihUPTA7VDxEO1QrKyl6dFtTKytdPUN0O1MrPVB9ZWxzZSBpZihjLnB0cis9ayxpLmRlY29kZUJpdHModSxjLHl0LEN0LHV0KSxrPTAsdnQpZm9yKEU9MDtFPEk7RSsrKXtmb3IoVD0wO1Q8RDtUKyspdnRbU10mJih6dFtTXT15dFtrKytdKSxTKys7Uys9UH1lbHNlIGZvcihFPTA7RTxJO0UrKyl7Zm9yKFQ9MDtUPEQ7VCsrKXp0W1MrK109eXRbaysrXTtTKz1QfX19LGZvcm1hdEZpbGVJbmZvOmZ1bmN0aW9uKHUpe3JldHVybntmaWxlSWRlbnRpZmllclN0cmluZzp1LmhlYWRlckluZm8uZmlsZUlkZW50aWZpZXJTdHJpbmcsZmlsZVZlcnNpb246dS5oZWFkZXJJbmZvLmZpbGVWZXJzaW9uLGltYWdlVHlwZTp1LmhlYWRlckluZm8uaW1hZ2VUeXBlLGhlaWdodDp1LmhlYWRlckluZm8uaGVpZ2h0LHdpZHRoOnUuaGVhZGVySW5mby53aWR0aCxudW1WYWxpZFBpeGVsOnUuaGVhZGVySW5mby5udW1WYWxpZFBpeGVsLG1pY3JvQmxvY2tTaXplOnUuaGVhZGVySW5mby5taWNyb0Jsb2NrU2l6ZSxibG9iU2l6ZTp1LmhlYWRlckluZm8uYmxvYlNpemUsbWF4WkVycm9yOnUuaGVhZGVySW5mby5tYXhaRXJyb3IscGl4ZWxUeXBlOmkuZ2V0UGl4ZWxUeXBlKHUuaGVhZGVySW5mby5pbWFnZVR5cGUpLGVvZk9mZnNldDp1LmVvZk9mZnNldCxtYXNrOnUubWFzaz97bnVtQnl0ZXM6dS5tYXNrLm51bUJ5dGVzfTpudWxsLHBpeGVsczp7bnVtQmxvY2tzWDp1LnBpeGVscy5udW1CbG9ja3NYLG51bUJsb2Nrc1k6dS5waXhlbHMubnVtQmxvY2tzWSxtYXhWYWx1ZTp1LmhlYWRlckluZm8uek1heCxtaW5WYWx1ZTp1LmhlYWRlckluZm8uek1pbixub0RhdGFWYWx1ZTp1Lm5vRGF0YVZhbHVlfX19LGNvbnN0cnVjdENvbnN0YW50U3VyZmFjZTpmdW5jdGlvbih1KXt2YXIgYz11LmhlYWRlckluZm8uek1heCxsPXUuaGVhZGVySW5mby5udW1EaW1zLHA9dS5oZWFkZXJJbmZvLmhlaWdodCp1LmhlYWRlckluZm8ud2lkdGgsZD1wKmwsbT0wLF89MCxnPTAsYj11LnBpeGVscy5yZXN1bHRNYXNrO2lmKGIpaWYobD4xKWZvcihtPTA7bTxsO20rKylmb3IoZz1tKnAsXz0wO188cDtfKyspYltfXSYmKHUucGl4ZWxzLnJlc3VsdFBpeGVsc1tnK19dPWMpO2Vsc2UgZm9yKF89MDtfPHA7XysrKWJbX10mJih1LnBpeGVscy5yZXN1bHRQaXhlbHNbX109Yyk7ZWxzZSBpZih1LnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbCl1LnBpeGVscy5yZXN1bHRQaXhlbHMuZmlsbChjKTtlbHNlIGZvcihfPTA7XzxkO18rKyl1LnBpeGVscy5yZXN1bHRQaXhlbHNbX109Y30sZ2V0RGF0YVR5cGVBcnJheTpmdW5jdGlvbih1KXt2YXIgYztzd2l0Y2godSl7Y2FzZSAwOmM9SW50OEFycmF5O2JyZWFrO2Nhc2UgMTpjPVVpbnQ4QXJyYXk7YnJlYWs7Y2FzZSAyOmM9SW50MTZBcnJheTticmVhaztjYXNlIDM6Yz1VaW50MTZBcnJheTticmVhaztjYXNlIDQ6Yz1JbnQzMkFycmF5O2JyZWFrO2Nhc2UgNTpjPVVpbnQzMkFycmF5O2JyZWFrO2Nhc2UgNjpjPUZsb2F0MzJBcnJheTticmVhaztjYXNlIDc6Yz1GbG9hdDY0QXJyYXk7YnJlYWs7ZGVmYXVsdDpjPUZsb2F0MzJBcnJheX1yZXR1cm4gY30sZ2V0UGl4ZWxUeXBlOmZ1bmN0aW9uKHUpe3ZhciBjO3N3aXRjaCh1KXtjYXNlIDA6Yz0iUzgiO2JyZWFrO2Nhc2UgMTpjPSJVOCI7YnJlYWs7Y2FzZSAyOmM9IlMxNiI7YnJlYWs7Y2FzZSAzOmM9IlUxNiI7YnJlYWs7Y2FzZSA0OmM9IlMzMiI7YnJlYWs7Y2FzZSA1OmM9IlUzMiI7YnJlYWs7Y2FzZSA2OmM9IkYzMiI7YnJlYWs7Y2FzZSA3OmM9IkY2NCI7YnJlYWs7ZGVmYXVsdDpjPSJGMzIifXJldHVybiBjfSxpc1ZhbGlkUGl4ZWxWYWx1ZTpmdW5jdGlvbih1LGMpe2lmKGM9PW51bGwpcmV0dXJuITE7dmFyIGw7c3dpdGNoKHUpe2Nhc2UgMDpsPWM+PS0xMjgmJmM8PTEyNzticmVhaztjYXNlIDE6bD1jPj0wJiZjPD0yNTU7YnJlYWs7Y2FzZSAyOmw9Yz49LTMyNzY4JiZjPD0zMjc2NzticmVhaztjYXNlIDM6bD1jPj0wJiZjPD02NTUzNjticmVhaztjYXNlIDQ6bD1jPj0tMjE0NzQ4MzY0OCYmYzw9MjE0NzQ4MzY0NzticmVhaztjYXNlIDU6bD1jPj0wJiZjPD00Mjk0OTY3Mjk2O2JyZWFrO2Nhc2UgNjpsPWM+PS0zNDAyNzk5OTM4NzkwMTQ4NGUyMiYmYzw9MzQwMjc5OTkzODc5MDE0ODRlMjI7YnJlYWs7Y2FzZSA3Omw9Yz49NWUtMzI0JiZjPD0xNzk3NjkzMTM0ODYyMzE1N2UyOTI7YnJlYWs7ZGVmYXVsdDpsPSExfXJldHVybiBsfSxnZXREYXRhVHlwZVNpemU6ZnVuY3Rpb24odSl7dmFyIGM9MDtzd2l0Y2godSl7Y2FzZSAwOmNhc2UgMTpjPTE7YnJlYWs7Y2FzZSAyOmNhc2UgMzpjPTI7YnJlYWs7Y2FzZSA0OmNhc2UgNTpjYXNlIDY6Yz00O2JyZWFrO2Nhc2UgNzpjPTg7YnJlYWs7ZGVmYXVsdDpjPXV9cmV0dXJuIGN9LGdldERhdGFUeXBlVXNlZDpmdW5jdGlvbih1LGMpe3ZhciBsPXU7c3dpdGNoKHUpe2Nhc2UgMjpjYXNlIDQ6bD11LWM7YnJlYWs7Y2FzZSAzOmNhc2UgNTpsPXUtMipjO2JyZWFrO2Nhc2UgNjpjPT09MD9sPXU6Yz09PTE/bD0yOmw9MTticmVhaztjYXNlIDc6Yz09PTA/bD11Omw9dS0yKmMrMTticmVhaztkZWZhdWx0Omw9dTticmVha31yZXR1cm4gbH0sZ2V0T25lUGl4ZWw6ZnVuY3Rpb24odSxjLGwscCl7dmFyIGQ9MDtzd2l0Y2gobCl7Y2FzZSAwOmQ9cC5nZXRJbnQ4KGMpO2JyZWFrO2Nhc2UgMTpkPXAuZ2V0VWludDgoYyk7YnJlYWs7Y2FzZSAyOmQ9cC5nZXRJbnQxNihjLCEwKTticmVhaztjYXNlIDM6ZD1wLmdldFVpbnQxNihjLCEwKTticmVhaztjYXNlIDQ6ZD1wLmdldEludDMyKGMsITApO2JyZWFrO2Nhc2UgNTpkPXAuZ2V0VUludDMyKGMsITApO2JyZWFrO2Nhc2UgNjpkPXAuZ2V0RmxvYXQzMihjLCEwKTticmVhaztjYXNlIDc6ZD1wLmdldEZsb2F0NjQoYywhMCk7YnJlYWs7ZGVmYXVsdDp0aHJvdyJ0aGUgZGVjb2RlciBkb2VzIG5vdCB1bmRlcnN0YW5kIHRoaXMgcGl4ZWwgdHlwZSJ9cmV0dXJuIGR9fSxzPWZ1bmN0aW9uKHUsYyxsKXt0aGlzLnZhbD11LHRoaXMubGVmdD1jLHRoaXMucmlnaHQ9bH0sZj17ZGVjb2RlOmZ1bmN0aW9uKHUsYyl7Yz1jfHx7fTt2YXIgbD1jLm5vRGF0YVZhbHVlLHA9MCxkPXt9O2lmKGQucHRyPWMuaW5wdXRPZmZzZXR8fDAsZC5waXhlbHM9e30sISFpLnJlYWRIZWFkZXJJbmZvKHUsZCkpe3ZhciBtPWQuaGVhZGVySW5mbyxfPW0uZmlsZVZlcnNpb24sZz1pLmdldERhdGFUeXBlQXJyYXkobS5pbWFnZVR5cGUpO2kucmVhZE1hc2sodSxkKSxtLm51bVZhbGlkUGl4ZWwhPT1tLndpZHRoKm0uaGVpZ2h0JiYhZC5waXhlbHMucmVzdWx0TWFzayYmKGQucGl4ZWxzLnJlc3VsdE1hc2s9Yy5tYXNrRGF0YSk7dmFyIGI9bS53aWR0aCptLmhlaWdodDtpZihkLnBpeGVscy5yZXN1bHRQaXhlbHM9bmV3IGcoYiptLm51bURpbXMpLGQuY291bnRlcj17b25lc3dlZXA6MCx1bmNvbXByZXNzZWQ6MCxsdXQ6MCxiaXRzdHVmZmVyOjAsY29uc3RhbnQ6MCxjb25zdGFudG9mZnNldDowfSxtLm51bVZhbGlkUGl4ZWwhPT0wKWlmKG0uek1heD09PW0uek1pbilpLmNvbnN0cnVjdENvbnN0YW50U3VyZmFjZShkKTtlbHNlIGlmKF8+PTQmJmkuY2hlY2tNaW5NYXhSYW5nZXModSxkKSlpLmNvbnN0cnVjdENvbnN0YW50U3VyZmFjZShkKTtlbHNle3ZhciB3PW5ldyBEYXRhVmlldyh1LGQucHRyLDIpLE89dy5nZXRVaW50OCgwKTtpZihkLnB0cisrLE8paS5yZWFkRGF0YU9uZVN3ZWVwKHUsZCxnKTtlbHNlIGlmKF8+MSYmbS5pbWFnZVR5cGU8PTEmJk1hdGguYWJzKG0ubWF4WkVycm9yLS41KTwxZS01KXt2YXIgRT13LmdldFVpbnQ4KDEpO2lmKGQucHRyKyssZC5lbmNvZGVNb2RlPUUsRT4yfHxfPDQmJkU+MSl0aHJvdyJJbnZhbGlkIEh1ZmZtYW4gZmxhZyAiK0U7RT9pLnJlYWRIdWZmbWFuKHUsZCxnKTppLnJlYWRUaWxlcyh1LGQsZyl9ZWxzZSBpLnJlYWRUaWxlcyh1LGQsZyl9ZC5lb2ZPZmZzZXQ9ZC5wdHI7dmFyIFQ7Yy5pbnB1dE9mZnNldD8oVD1kLmhlYWRlckluZm8uYmxvYlNpemUrYy5pbnB1dE9mZnNldC1kLnB0cixNYXRoLmFicyhUKT49MSYmKGQuZW9mT2Zmc2V0PWMuaW5wdXRPZmZzZXQrZC5oZWFkZXJJbmZvLmJsb2JTaXplKSk6KFQ9ZC5oZWFkZXJJbmZvLmJsb2JTaXplLWQucHRyLE1hdGguYWJzKFQpPj0xJiYoZC5lb2ZPZmZzZXQ9ZC5oZWFkZXJJbmZvLmJsb2JTaXplKSk7dmFyIEM9e3dpZHRoOm0ud2lkdGgsaGVpZ2h0Om0uaGVpZ2h0LHBpeGVsRGF0YTpkLnBpeGVscy5yZXN1bHRQaXhlbHMsbWluVmFsdWU6bS56TWluLG1heFZhbHVlOm0uek1heCx2YWxpZFBpeGVsQ291bnQ6bS5udW1WYWxpZFBpeGVsLGRpbUNvdW50Om0ubnVtRGltcyxkaW1TdGF0czp7bWluVmFsdWVzOm0ubWluVmFsdWVzLG1heFZhbHVlczptLm1heFZhbHVlc30sbWFza0RhdGE6ZC5waXhlbHMucmVzdWx0TWFza307aWYoZC5waXhlbHMucmVzdWx0TWFzayYmaS5pc1ZhbGlkUGl4ZWxWYWx1ZShtLmltYWdlVHlwZSxsKSl7dmFyIE49ZC5waXhlbHMucmVzdWx0TWFzaztmb3IocD0wO3A8YjtwKyspTltwXXx8KEMucGl4ZWxEYXRhW3BdPWwpO0Mubm9EYXRhVmFsdWU9bH1yZXR1cm4gZC5ub0RhdGFWYWx1ZT1sLGMucmV0dXJuRmlsZUluZm8mJihDLmZpbGVJbmZvPWkuZm9ybWF0RmlsZUluZm8oZCkpLEN9fSxnZXRCYW5kQ291bnQ6ZnVuY3Rpb24odSl7dmFyIGM9MCxsPTAscD17fTtmb3IocC5wdHI9MCxwLnBpeGVscz17fTtsPHUuYnl0ZUxlbmd0aC01ODspaS5yZWFkSGVhZGVySW5mbyh1LHApLGwrPXAuaGVhZGVySW5mby5ibG9iU2l6ZSxjKysscC5wdHI9bDtyZXR1cm4gY319O3JldHVybiBmfSgpLG49ZnVuY3Rpb24oKXt2YXIgcj1uZXcgQXJyYXlCdWZmZXIoNCksaT1uZXcgVWludDhBcnJheShyKSxzPW5ldyBVaW50MzJBcnJheShyKTtyZXR1cm4gc1swXT0xLGlbMF09PT0xfSgpLG89e2RlY29kZTpmdW5jdGlvbihyLGkpe2lmKCFuKXRocm93IkJpZyBlbmRpYW4gc3lzdGVtIGlzIG5vdCBzdXBwb3J0ZWQuIjtpPWl8fHt9O3ZhciBzPWkuaW5wdXRPZmZzZXR8fDAsZj1uZXcgVWludDhBcnJheShyLHMsMTApLHU9U3RyaW5nLmZyb21DaGFyQ29kZS5hcHBseShudWxsLGYpLGMsbDtpZih1LnRyaW0oKT09PSJDbnRaSW1hZ2UiKWM9dCxsPTE7ZWxzZSBpZih1LnN1YnN0cmluZygwLDUpPT09IkxlcmMyIiljPWUsbD0yO2Vsc2UgdGhyb3ciVW5leHBlY3RlZCBmaWxlIGlkZW50aWZpZXIgc3RyaW5nOiAiK3U7Zm9yKHZhciBwPTAsZD1yLmJ5dGVMZW5ndGgtMTAsbSxfPVtdLGcsYix3PXt3aWR0aDowLGhlaWdodDowLHBpeGVsczpbXSxwaXhlbFR5cGU6aS5waXhlbFR5cGUsbWFzazpudWxsLHN0YXRpc3RpY3M6W119O3M8ZDspe3ZhciBPPWMuZGVjb2RlKHIse2lucHV0T2Zmc2V0OnMsZW5jb2RlZE1hc2tEYXRhOm0sbWFza0RhdGE6YixyZXR1cm5NYXNrOnA9PT0wLHJldHVybkVuY29kZWRNYXNrOnA9PT0wLHJldHVybkZpbGVJbmZvOiEwLHBpeGVsVHlwZTppLnBpeGVsVHlwZXx8bnVsbCxub0RhdGFWYWx1ZTppLm5vRGF0YVZhbHVlfHxudWxsfSk7cz1PLmZpbGVJbmZvLmVvZk9mZnNldCxwPT09MCYmKG09Ty5lbmNvZGVkTWFza0RhdGEsYj1PLm1hc2tEYXRhLHcud2lkdGg9Ty53aWR0aCx3LmhlaWdodD1PLmhlaWdodCx3LmRpbUNvdW50PU8uZGltQ291bnR8fDEsdy5waXhlbFR5cGU9Ty5waXhlbFR5cGV8fE8uZmlsZUluZm8ucGl4ZWxUeXBlLHcubWFzaz1PLm1hc2tEYXRhKSxsPjEmJk8uZmlsZUluZm8ubWFzayYmTy5maWxlSW5mby5tYXNrLm51bUJ5dGVzPjAmJl8ucHVzaChPLm1hc2tEYXRhKSxwKyssdy5waXhlbHMucHVzaChPLnBpeGVsRGF0YSksdy5zdGF0aXN0aWNzLnB1c2goe21pblZhbHVlOk8ubWluVmFsdWUsbWF4VmFsdWU6Ty5tYXhWYWx1ZSxub0RhdGFWYWx1ZTpPLm5vRGF0YVZhbHVlLGRpbVN0YXRzOk8uZGltU3RhdHN9KX12YXIgRSxULEM7aWYobD4xJiZfLmxlbmd0aD4xKXtmb3IoQz13LndpZHRoKncuaGVpZ2h0LHcuYmFuZE1hc2tzPV8sYj1uZXcgVWludDhBcnJheShDKSxiLnNldChfWzBdKSxFPTE7RTxfLmxlbmd0aDtFKyspZm9yKGc9X1tFXSxUPTA7VDxDO1QrKyliW1RdPWJbVF0mZ1tUXTt3Lm1hc2tEYXRhPWJ9cmV0dXJuIHd9fTt0eXBlb2YgZGVmaW5lPT0iZnVuY3Rpb24iJiZkZWZpbmUuYW1kP2RlZmluZShbXSxmdW5jdGlvbigpe3JldHVybiBvfSk6dHlwZW9mIFpkPCJ1IiYmWmQuZXhwb3J0cz9aZC5leHBvcnRzPW86dGhpcy5MZXJjPW99KSgpfSk7dmFyIGZnPXt9O2RlKGZnLHtkZWZhdWx0OigpPT5fVX0pO2Z1bmN0aW9uIGhVKHQsZSl7aWYodC5lbmNvZGluZz09PSRSLkxFUkMpe2xldCByO3RyeXtyPWUyLmRlZmF1bHQuZGVjb2RlKHQuaGVpZ2h0bWFwKX1jYXRjaChzKXt0aHJvdyBuZXcgQWUocyl9aWYoci5zdGF0aXN0aWNzWzBdLm1pblZhbHVlPT09TnVtYmVyLk1BWF9WQUxVRSl0aHJvdyBuZXcgQWUoIkludmFsaWQgdGlsZSBkYXRhIik7dC5oZWlnaHRtYXA9ci5waXhlbHNbMF0sdC53aWR0aD1yLndpZHRoLHQuaGVpZ2h0PXIuaGVpZ2h0fXQuZWxsaXBzb2lkPSQuY2xvbmUodC5lbGxpcHNvaWQpLHQucmVjdGFuZ2xlPU50LmNsb25lKHQucmVjdGFuZ2xlKTtsZXQgbj1RUi5jb21wdXRlVmVydGljZXModCksbz1uLnZlcnRpY2VzO3JldHVybiBlLnB1c2goby5idWZmZXIpLHt2ZXJ0aWNlczpvLmJ1ZmZlcixudW1iZXJPZkF0dHJpYnV0ZXM6bi5lbmNvZGluZy5zdHJpZGUsbWluaW11bUhlaWdodDpuLm1pbmltdW1IZWlnaHQsbWF4aW11bUhlaWdodDpuLm1heGltdW1IZWlnaHQsZ3JpZFdpZHRoOnQud2lkdGgsZ3JpZEhlaWdodDp0LmhlaWdodCxib3VuZGluZ1NwaGVyZTNEOm4uYm91bmRpbmdTcGhlcmUzRCxvcmllbnRlZEJvdW5kaW5nQm94Om4ub3JpZW50ZWRCb3VuZGluZ0JveCxvY2NsdWRlZVBvaW50SW5TY2FsZWRTcGFjZTpuLm9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlLGVuY29kaW5nOm4uZW5jb2Rpbmcsd2VzdEluZGljZXNTb3V0aFRvTm9ydGg6bi53ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aCxzb3V0aEluZGljZXNFYXN0VG9XZXN0Om4uc291dGhJbmRpY2VzRWFzdFRvV2VzdCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDpuLmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6bi5ub3J0aEluZGljZXNXZXN0VG9FYXN0fX12YXIgZTIsX1UsdWc9WigoKT0+e1p0KCk7WlIoKTtKUigpO1RuKCk7SnIoKTtlMj1kcih0MigpLDEpO3NvKCk7X1U9UWUoaFUpfSk7ZnVuY3Rpb24gVm8oKXtGLnRocm93SW5zdGFudGlhdGlvbkVycm9yKCl9ZnVuY3Rpb24gaTIodCxlKXtsZXQgbj1uZXcgQXJyYXkoZSksbz1uZXcgQXJyYXkodCkscj1uZXcgQXJyYXkoZSksaT1uZXcgQXJyYXkodCkscztmb3Iocz0wO3M8dDsrK3MpaVtzXT1zLG9bc109dCplLTEtcztmb3Iocz0wO3M8ZTsrK3MpcltzXT0ocysxKSp0LTEsbltzXT0oZS1zLTEpKnQ7cmV0dXJue3dlc3RJbmRpY2VzU291dGhUb05vcnRoOm4sc291dGhJbmRpY2VzRWFzdFRvV2VzdDpvLGVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoOnIsbm9ydGhJbmRpY2VzV2VzdFRvRWFzdDppfX1mdW5jdGlvbiBzMih0LGUsbixvKXtsZXQgcj0wO2ZvcihsZXQgaT0wO2k8ZS0xOysraSl7Zm9yKGxldCBzPTA7czx0LTE7KytzKXtsZXQgZj1yLHU9Zit0LGM9dSsxLGw9ZisxO25bbysrXT1mLG5bbysrXT11LG5bbysrXT1sLG5bbysrXT1sLG5bbysrXT11LG5bbysrXT1jLCsrcn0rK3J9fWZ1bmN0aW9uIFFkKHQsZSxuLG8pe2xldCByPXRbMF0saT10Lmxlbmd0aDtmb3IobGV0IHM9MTtzPGk7KytzKXtsZXQgZj10W3NdO25bbysrXT1yLG5bbysrXT1mLG5bbysrXT1lLG5bbysrXT1lLG5bbysrXT1mLG5bbysrXT1lKzEscj1mLCsrZX1yZXR1cm4gb312YXIgbjIsbzIscjIsYzIsYTI9WigoKT0+e2Z0KCk7SHQoKTskZSgpO1d0KCk7T2JqZWN0LmRlZmluZVByb3BlcnRpZXMoVm8ucHJvdG90eXBlLHtlcnJvckV2ZW50OntnZXQ6Ri50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0sY3JlZGl0OntnZXQ6Ri50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0sdGlsaW5nU2NoZW1lOntnZXQ6Ri50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0saGFzV2F0ZXJNYXNrOntnZXQ6Ri50aHJvd0luc3RhbnRpYXRpb25FcnJvcn0saGFzVmVydGV4Tm9ybWFsczp7Z2V0OkYudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9LGF2YWlsYWJpbGl0eTp7Z2V0OkYudGhyb3dJbnN0YW50aWF0aW9uRXJyb3J9fSk7bjI9W107Vm8uZ2V0UmVndWxhckdyaWRJbmRpY2VzPWZ1bmN0aW9uKHQsZSl7aWYodCplPj1NLkZPVVJfR0lHQUJZVEVTKXRocm93IG5ldyBGKCJUaGUgdG90YWwgbnVtYmVyIG9mIHZlcnRpY2VzICh3aWR0aCAqIGhlaWdodCkgbXVzdCBiZSBsZXNzIHRoYW4gNCwyOTQsOTY3LDI5Ni4iKTtsZXQgbj1uMlt0XTtoKG4pfHwobjJbdF09bj1bXSk7bGV0IG89bltlXTtyZXR1cm4gaChvKXx8KHQqZTxNLlNJWFRZX0ZPVVJfS0lMT0JZVEVTP289bltlXT1uZXcgVWludDE2QXJyYXkoKHQtMSkqKGUtMSkqNik6bz1uW2VdPW5ldyBVaW50MzJBcnJheSgodC0xKSooZS0xKSo2KSxzMih0LGUsbywwKSksb307bzI9W107Vm8uZ2V0UmVndWxhckdyaWRJbmRpY2VzQW5kRWRnZUluZGljZXM9ZnVuY3Rpb24odCxlKXtpZih0KmU+PU0uRk9VUl9HSUdBQllURVMpdGhyb3cgbmV3IEYoIlRoZSB0b3RhbCBudW1iZXIgb2YgdmVydGljZXMgKHdpZHRoICogaGVpZ2h0KSBtdXN0IGJlIGxlc3MgdGhhbiA0LDI5NCw5NjcsMjk2LiIpO2xldCBuPW8yW3RdO2gobil8fChvMlt0XT1uPVtdKTtsZXQgbz1uW2VdO2lmKCFoKG8pKXtsZXQgcj1Wby5nZXRSZWd1bGFyR3JpZEluZGljZXModCxlKSxpPWkyKHQsZSkscz1pLndlc3RJbmRpY2VzU291dGhUb05vcnRoLGY9aS5zb3V0aEluZGljZXNFYXN0VG9XZXN0LHU9aS5lYXN0SW5kaWNlc05vcnRoVG9Tb3V0aCxjPWkubm9ydGhJbmRpY2VzV2VzdFRvRWFzdDtvPW5bZV09e2luZGljZXM6cix3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpzLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6ZixlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDp1LG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6Y319cmV0dXJuIG99O3IyPVtdO1ZvLmdldFJlZ3VsYXJHcmlkQW5kU2tpcnRJbmRpY2VzQW5kRWRnZUluZGljZXM9ZnVuY3Rpb24odCxlKXtpZih0KmU+PU0uRk9VUl9HSUdBQllURVMpdGhyb3cgbmV3IEYoIlRoZSB0b3RhbCBudW1iZXIgb2YgdmVydGljZXMgKHdpZHRoICogaGVpZ2h0KSBtdXN0IGJlIGxlc3MgdGhhbiA0LDI5NCw5NjcsMjk2LiIpO2xldCBuPXIyW3RdO2gobil8fChyMlt0XT1uPVtdKTtsZXQgbz1uW2VdO2lmKCFoKG8pKXtsZXQgcj10KmUsaT0odC0xKSooZS0xKSo2LHM9dCoyK2UqMixmPU1hdGgubWF4KDAscy00KSo2LHU9citzLGM9aStmLGw9aTIodCxlKSxwPWwud2VzdEluZGljZXNTb3V0aFRvTm9ydGgsZD1sLnNvdXRoSW5kaWNlc0Vhc3RUb1dlc3QsbT1sLmVhc3RJbmRpY2VzTm9ydGhUb1NvdXRoLF89bC5ub3J0aEluZGljZXNXZXN0VG9FYXN0LGc9RHQuY3JlYXRlVHlwZWRBcnJheSh1LGMpO3MyKHQsZSxnLDApLFZvLmFkZFNraXJ0SW5kaWNlcyhwLGQsbSxfLHIsZyxpKSxvPW5bZV09e2luZGljZXM6Zyx3ZXN0SW5kaWNlc1NvdXRoVG9Ob3J0aDpwLHNvdXRoSW5kaWNlc0Vhc3RUb1dlc3Q6ZCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDptLG5vcnRoSW5kaWNlc1dlc3RUb0Vhc3Q6XyxpbmRleENvdW50V2l0aG91dFNraXJ0czppfX1yZXR1cm4gb307Vm8uYWRkU2tpcnRJbmRpY2VzPWZ1bmN0aW9uKHQsZSxuLG8scixpLHMpe2xldCBmPXI7cz1RZCh0LGYsaSxzKSxmKz10Lmxlbmd0aCxzPVFkKGUsZixpLHMpLGYrPWUubGVuZ3RoLHM9UWQobixmLGkscyksZis9bi5sZW5ndGgsUWQobyxmLGkscyl9O1ZvLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5PS4yNTtWby5nZXRFc3RpbWF0ZWRMZXZlbFplcm9HZW9tZXRyaWNFcnJvckZvckFIZWlnaHRtYXA9ZnVuY3Rpb24odCxlLG4pe3JldHVybiB0Lm1heGltdW1SYWRpdXMqMipNYXRoLlBJKlZvLmhlaWdodG1hcFRlcnJhaW5RdWFsaXR5LyhlKm4pfTtWby5wcm90b3R5cGUucmVxdWVzdFRpbGVHZW9tZXRyeT1GLnRocm93SW5zdGFudGlhdGlvbkVycm9yO1ZvLnByb3RvdHlwZS5nZXRMZXZlbE1heGltdW1HZW9tZXRyaWNFcnJvcj1GLnRocm93SW5zdGFudGlhdGlvbkVycm9yO1ZvLnByb3RvdHlwZS5nZXRUaWxlRGF0YUF2YWlsYWJsZT1GLnRocm93SW5zdGFudGlhdGlvbkVycm9yO1ZvLnByb3RvdHlwZS5sb2FkVGlsZURhdGFBdmFpbGFiaWxpdHk9Ri50aHJvd0luc3RhbnRpYXRpb25FcnJvcjtjMj1Wb30pO3ZhciBwZz17fTtkZShwZyx7ZGVmYXVsdDooKT0+YlV9KTtmdW5jdGlvbiBBVSh0LGUpe2xldCBuPXQucXVhbnRpemVkVmVydGljZXMsbz1uLmxlbmd0aC8zLHI9dC5vY3RFbmNvZGVkTm9ybWFscyxpPXQud2VzdEluZGljZXMubGVuZ3RoK3QuZWFzdEluZGljZXMubGVuZ3RoK3Quc291dGhJbmRpY2VzLmxlbmd0aCt0Lm5vcnRoSW5kaWNlcy5sZW5ndGgscz10LmluY2x1ZGVXZWJNZXJjYXRvclQsZj10LmV4YWdnZXJhdGlvbix1PXQuZXhhZ2dlcmF0aW9uUmVsYXRpdmVIZWlnaHQsbD1mIT09MSxwPU50LmNsb25lKHQucmVjdGFuZ2xlKSxkPXAud2VzdCxtPXAuc291dGgsXz1wLmVhc3QsZz1wLm5vcnRoLGI9JC5jbG9uZSh0LmVsbGlwc29pZCksdz10Lm1pbmltdW1IZWlnaHQsTz10Lm1heGltdW1IZWlnaHQsRT10LnJlbGF0aXZlVG9DZW50ZXIsVD1Yby5lYXN0Tm9ydGhVcFRvRml4ZWRGcmFtZShFLGIpLEM9c3QuaW52ZXJzZVRyYW5zZm9ybWF0aW9uKFQsbmV3IHN0KSxOLEk7cyYmKE49bm8uZ2VvZGV0aWNMYXRpdHVkZVRvTWVyY2F0b3JBbmdsZShtKSxJPTEvKG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoZyktTikpO2xldCBEPW4uc3ViYXJyYXkoMCxvKSx2PW4uc3ViYXJyYXkobywyKm8pLEw9bi5zdWJhcnJheShvKjIsMypvKSxVPWgociksQT1uZXcgQXJyYXkobyksUz1uZXcgQXJyYXkobyksUD1uZXcgQXJyYXkobyksQj1zP25ldyBBcnJheShvKTpbXSxqPWw/bmV3IEFycmF5KG8pOltdLEg9eVU7SC54PU51bWJlci5QT1NJVElWRV9JTkZJTklUWSxILnk9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLEguej1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFk7bGV0IGs9Z1U7ay54PU51bWJlci5ORUdBVElWRV9JTkZJTklUWSxrLnk9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLGsuej1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7bGV0IEs9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLFg9TnVtYmVyLk5FR0FUSVZFX0lORklOSVRZLFI9TnVtYmVyLlBPU0lUSVZFX0lORklOSVRZLG90PU51bWJlci5ORUdBVElWRV9JTkZJTklUWTtmb3IobGV0ICR0PTA7JHQ8bzsrKyR0KXtsZXQgR2U9RFskdF0sZG49dlskdF0sc249R2UvbGcsbW49ZG4vbGcsZm89TS5sZXJwKHcsTyxMWyR0XS9sZyk7Wm4ubG9uZ2l0dWRlPU0ubGVycChkLF8sc24pLFpuLmxhdGl0dWRlPU0ubGVycChtLGcsbW4pLFpuLmhlaWdodD1mbyxLPU1hdGgubWluKFpuLmxvbmdpdHVkZSxLKSxYPU1hdGgubWF4KFpuLmxvbmdpdHVkZSxYKSxSPU1hdGgubWluKFpuLmxhdGl0dWRlLFIpLG90PU1hdGgubWF4KFpuLmxhdGl0dWRlLG90KTtsZXQgSG49Yi5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihabik7QVskdF09bmV3IHR0KHNuLG1uKSxTWyR0XT1mbyxQWyR0XT1IbixzJiYoQlskdF09KG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoWm4ubGF0aXR1ZGUpLU4pKkkpLGwmJihqWyR0XT1iLmdlb2RldGljU3VyZmFjZU5vcm1hbChIbikpLHN0Lm11bHRpcGx5QnlQb2ludChDLEhuLGZ1KSxhLm1pbmltdW1CeUNvbXBvbmVudChmdSxILEgpLGEubWF4aW11bUJ5Q29tcG9uZW50KGZ1LGssayl9bGV0IGF0PWVtKHQud2VzdEluZGljZXMsZnVuY3Rpb24oJHQsR2Upe3JldHVybiBBWyR0XS55LUFbR2VdLnl9KSxwdD1lbSh0LmVhc3RJbmRpY2VzLGZ1bmN0aW9uKCR0LEdlKXtyZXR1cm4gQVtHZV0ueS1BWyR0XS55fSkseXQ9ZW0odC5zb3V0aEluZGljZXMsZnVuY3Rpb24oJHQsR2Upe3JldHVybiBBW0dlXS54LUFbJHRdLnh9KSxydD1lbSh0Lm5vcnRoSW5kaWNlcyxmdW5jdGlvbigkdCxHZSl7cmV0dXJuIEFbJHRdLngtQVtHZV0ueH0pLFB0O3c8MCYmKFB0PW5ldyB4cyhiKS5jb21wdXRlSG9yaXpvbkN1bGxpbmdQb2ludFBvc3NpYmx5VW5kZXJFbGxpcHNvaWQoRSxQLHcpKTtsZXQgZ3Q9dztndD1NYXRoLm1pbihndCxKZCh0Lndlc3RJbmRpY2VzLHQud2VzdFNraXJ0SGVpZ2h0LFMsQSxwLGIsQyxILGspKSxndD1NYXRoLm1pbihndCxKZCh0LnNvdXRoSW5kaWNlcyx0LnNvdXRoU2tpcnRIZWlnaHQsUyxBLHAsYixDLEgsaykpLGd0PU1hdGgubWluKGd0LEpkKHQuZWFzdEluZGljZXMsdC5lYXN0U2tpcnRIZWlnaHQsUyxBLHAsYixDLEgsaykpLGd0PU1hdGgubWluKGd0LEpkKHQubm9ydGhJbmRpY2VzLHQubm9ydGhTa2lydEhlaWdodCxTLEEscCxiLEMsSCxrKSk7bGV0IEN0PW5ldyBEaShILGssRSksbXQ9bmV3IFBzKEUsQ3QsZ3QsTyxULFUscyxsLGYsdSksdXQ9bXQuc3RyaWRlLHZ0PW8qdXQraSp1dCx6dD1uZXcgRmxvYXQzMkFycmF5KHZ0KSxtZT0wO2ZvcihsZXQgJHQ9MDskdDxvOysrJHQpe2lmKFUpe2xldCBHZT0kdCoyO1ZhLng9cltHZV0sVmEueT1yW0dlKzFdfW1lPW10LmVuY29kZSh6dCxtZSxQWyR0XSxBWyR0XSxTWyR0XSxWYSxCWyR0XSxqWyR0XSl9bGV0IGFlPU1hdGgubWF4KDAsKGktNCkqMikscGU9dC5pbmRpY2VzLmxlbmd0aCthZSozLHVlPUR0LmNyZWF0ZVR5cGVkQXJyYXkobytpLHBlKTt1ZS5zZXQodC5pbmRpY2VzLDApO2xldCBRdD0xZS00LEp0PShYLUspKlF0LE5lPShvdC1SKSpRdCxnZT0tSnQsRWU9MCx1bj1KdCxrZT0wLGJlPTAsbG49TmUscG49MCxFbj0tTmUscmU9byp1dDtyZXR1cm4gdG0oenQscmUsYXQsbXQsUyxBLHIsYixwLHQud2VzdFNraXJ0SGVpZ2h0LE4sSSxnZSxFZSkscmUrPXQud2VzdEluZGljZXMubGVuZ3RoKnV0LHRtKHp0LHJlLHl0LG10LFMsQSxyLGIscCx0LnNvdXRoU2tpcnRIZWlnaHQsTixJLHBuLEVuKSxyZSs9dC5zb3V0aEluZGljZXMubGVuZ3RoKnV0LHRtKHp0LHJlLHB0LG10LFMsQSxyLGIscCx0LmVhc3RTa2lydEhlaWdodCxOLEksdW4sa2UpLHJlKz10LmVhc3RJbmRpY2VzLmxlbmd0aCp1dCx0bSh6dCxyZSxydCxtdCxTLEEscixiLHAsdC5ub3J0aFNraXJ0SGVpZ2h0LE4sSSxiZSxsbiksYzIuYWRkU2tpcnRJbmRpY2VzKGF0LHl0LHB0LHJ0LG8sdWUsdC5pbmRpY2VzLmxlbmd0aCksZS5wdXNoKHp0LmJ1ZmZlcix1ZS5idWZmZXIpLHt2ZXJ0aWNlczp6dC5idWZmZXIsaW5kaWNlczp1ZS5idWZmZXIsd2VzdEluZGljZXNTb3V0aFRvTm9ydGg6YXQsc291dGhJbmRpY2VzRWFzdFRvV2VzdDp5dCxlYXN0SW5kaWNlc05vcnRoVG9Tb3V0aDpwdCxub3J0aEluZGljZXNXZXN0VG9FYXN0OnJ0LHZlcnRleFN0cmlkZTp1dCxjZW50ZXI6RSxtaW5pbXVtSGVpZ2h0OncsbWF4aW11bUhlaWdodDpPLG9jY2x1ZGVlUG9pbnRJblNjYWxlZFNwYWNlOlB0LGVuY29kaW5nOm10LGluZGV4Q291bnRXaXRob3V0U2tpcnRzOnQuaW5kaWNlcy5sZW5ndGh9fWZ1bmN0aW9uIEpkKHQsZSxuLG8scixpLHMsZix1KXtsZXQgYz1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksbD1yLm5vcnRoLHA9ci5zb3V0aCxkPXIuZWFzdCxtPXIud2VzdDtkPG0mJihkKz1NLlRXT19QSSk7bGV0IF89dC5sZW5ndGg7Zm9yKGxldCBnPTA7ZzxfOysrZyl7bGV0IGI9dFtnXSx3PW5bYl0sTz1vW2JdO1puLmxvbmdpdHVkZT1NLmxlcnAobSxkLE8ueCksWm4ubGF0aXR1ZGU9TS5sZXJwKHAsbCxPLnkpLFpuLmhlaWdodD13LWU7bGV0IEU9aS5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihabixmdSk7c3QubXVsdGlwbHlCeVBvaW50KHMsRSxFKSxhLm1pbmltdW1CeUNvbXBvbmVudChFLGYsZiksYS5tYXhpbXVtQnlDb21wb25lbnQoRSx1LHUpLGM9TWF0aC5taW4oYyxabi5oZWlnaHQpfXJldHVybiBjfWZ1bmN0aW9uIHRtKHQsZSxuLG8scixpLHMsZix1LGMsbCxwLGQsbSl7bGV0IF89aChzKSxnPXUubm9ydGgsYj11LnNvdXRoLHc9dS5lYXN0LE89dS53ZXN0O3c8TyYmKHcrPU0uVFdPX1BJKTtsZXQgRT1uLmxlbmd0aDtmb3IobGV0IFQ9MDtUPEU7KytUKXtsZXQgQz1uW1RdLE49cltDXSxJPWlbQ107Wm4ubG9uZ2l0dWRlPU0ubGVycChPLHcsSS54KStkLFpuLmxhdGl0dWRlPU0ubGVycChiLGcsSS55KSttLFpuLmhlaWdodD1OLWM7bGV0IEQ9Zi5jYXJ0b2dyYXBoaWNUb0NhcnRlc2lhbihabixmdSk7aWYoXyl7bGV0IFU9QyoyO1ZhLng9c1tVXSxWYS55PXNbVSsxXX1sZXQgdjtvLmhhc1dlYk1lcmNhdG9yVCYmKHY9KG5vLmdlb2RldGljTGF0aXR1ZGVUb01lcmNhdG9yQW5nbGUoWm4ubGF0aXR1ZGUpLWwpKnApO2xldCBMO28uaGFzR2VvZGV0aWNTdXJmYWNlTm9ybWFscyYmKEw9Zi5nZW9kZXRpY1N1cmZhY2VOb3JtYWwoRCkpLGU9by5lbmNvZGUodCxlLEQsSSxabi5oZWlnaHQsVmEsdixMKX19ZnVuY3Rpb24gZW0odCxlKXtsZXQgbjtyZXR1cm4gdHlwZW9mIHQuc2xpY2U9PSJmdW5jdGlvbiImJihuPXQuc2xpY2UoKSx0eXBlb2Ygbi5zb3J0IT0iZnVuY3Rpb24iJiYobj12b2lkIDApKSxoKG4pfHwobj1BcnJheS5wcm90b3R5cGUuc2xpY2UuY2FsbCh0KSksbi5zb3J0KGUpLG59dmFyIGxnLGZ1LHlVLGdVLFpuLFZhLGJVLGRnPVooKCk9PntNZigpO1VlKCk7RnQoKTtJZSgpO2Z0KCk7WnQoKTtzdSgpOyRlKCk7V3QoKTtVbigpO1RuKCk7Y3UoKTthMigpO2NzKCk7aWMoKTtzbygpO2xnPTMyNzY3LGZ1PW5ldyBhLHlVPW5ldyBhLGdVPW5ldyBhLFpuPW5ldyBjdCxWYT1uZXcgdHQ7YlU9UWUoQVUpfSk7ZnVuY3Rpb24gd1UodCxlKXtyZXR1cm4gTS5lcXVhbHNFcHNpbG9uKHQubGF0aXR1ZGUsZS5sYXRpdHVkZSxNLkVQU0lMT04xMCkmJk0uZXF1YWxzRXBzaWxvbih0LmxvbmdpdHVkZSxlLmxvbmdpdHVkZSxNLkVQU0lMT04xMCl9ZnVuY3Rpb24gRVUodCxlLG4sbyl7ZT14bihlLGEuZXF1YWxzRXBzaWxvbik7bGV0IHI9ZS5sZW5ndGg7aWYocjwyKXJldHVybjtsZXQgaT1oKG8pLHM9aChuKSxmPW5ldyBBcnJheShyKSx1PW5ldyBBcnJheShyKSxjPW5ldyBBcnJheShyKSxsPWVbMF07ZlswXT1sO2xldCBwPXQuY2FydGVzaWFuVG9DYXJ0b2dyYXBoaWMobCxUVSk7cyYmKHAuaGVpZ2h0PW5bMF0pLHVbMF09cC5oZWlnaHQsaT9jWzBdPW9bMF06Y1swXT0wO2xldCBkPXVbMF0sbT1jWzBdLF89ZD09PW0sZz0xO2ZvcihsZXQgYj0xO2I8cjsrK2Ipe2xldCB3PWVbYl0sTz10LmNhcnRlc2lhblRvQ2FydG9ncmFwaGljKHcsT1UpO3MmJihPLmhlaWdodD1uW2JdKSxfPV8mJk8uaGVpZ2h0PT09MCx3VShwLE8pP3AuaGVpZ2h0PE8uaGVpZ2h0JiYodVtnLTFdPU8uaGVpZ2h0KTooZltnXT13LHVbZ109Ty5oZWlnaHQsaT9jW2ddPW9bYl06Y1tnXT0wLF89XyYmdVtnXT09PWNbZ10sY3QuY2xvbmUoTyxwKSwrK2cpfWlmKCEoX3x8ZzwyKSlyZXR1cm4gZi5sZW5ndGg9Zyx1Lmxlbmd0aD1nLGMubGVuZ3RoPWcse3Bvc2l0aW9uczpmLHRvcEhlaWdodHM6dSxib3R0b21IZWlnaHRzOmN9fXZhciBmMixUVSxPVSxSVSxTVSxDVSxubSxtZz1aKCgpPT57anIoKTtGdCgpO0llKCk7ZnQoKTtXdCgpO2dhKCk7ZjI9e307VFU9bmV3IGN0LE9VPW5ldyBjdDtSVT1uZXcgQXJyYXkoMiksU1U9bmV3IEFycmF5KDIpLENVPXtwb3NpdGlvbnM6dm9pZCAwLGhlaWdodDp2b2lkIDAsZ3JhbnVsYXJpdHk6dm9pZCAwLGVsbGlwc29pZDp2b2lkIDB9O2YyLmNvbXB1dGVQb3NpdGlvbnM9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe2xldCBzPUVVKHQsZSxuLG8pO2lmKCFoKHMpKXJldHVybjtlPXMucG9zaXRpb25zLG49cy50b3BIZWlnaHRzLG89cy5ib3R0b21IZWlnaHRzO2xldCBmPWUubGVuZ3RoLHU9Zi0yLGMsbCxwPU0uY2hvcmRMZW5ndGgocix0Lm1heGltdW1SYWRpdXMpLGQ9Q1U7aWYoZC5taW5EaXN0YW5jZT1wLGQuZWxsaXBzb2lkPXQsaSl7bGV0IG09MCxfO2ZvcihfPTA7XzxmLTE7XysrKW0rPUFuLm51bWJlck9mUG9pbnRzKGVbX10sZVtfKzFdLHApKzE7Yz1uZXcgRmxvYXQ2NEFycmF5KG0qMyksbD1uZXcgRmxvYXQ2NEFycmF5KG0qMyk7bGV0IGc9UlUsYj1TVTtkLnBvc2l0aW9ucz1nLGQuaGVpZ2h0PWI7bGV0IHc9MDtmb3IoXz0wO188Zi0xO18rKyl7Z1swXT1lW19dLGdbMV09ZVtfKzFdLGJbMF09bltfXSxiWzFdPW5bXysxXTtsZXQgTz1Bbi5nZW5lcmF0ZUFyYyhkKTtjLnNldChPLHcpLGJbMF09b1tfXSxiWzFdPW9bXysxXSxsLnNldChBbi5nZW5lcmF0ZUFyYyhkKSx3KSx3Kz1PLmxlbmd0aH19ZWxzZSBkLnBvc2l0aW9ucz1lLGQuaGVpZ2h0PW4sYz1uZXcgRmxvYXQ2NEFycmF5KEFuLmdlbmVyYXRlQXJjKGQpKSxkLmhlaWdodD1vLGw9bmV3IEZsb2F0NjRBcnJheShBbi5nZW5lcmF0ZUFyYyhkKSk7cmV0dXJue2JvdHRvbVBvc2l0aW9uczpsLHRvcFBvc2l0aW9uczpjLG51bUNvcm5lcnM6dX19O25tPWYyfSk7ZnVuY3Rpb24gRWModCl7dD14KHQseC5FTVBUWV9PQkpFQ1QpO2xldCBlPXQucG9zaXRpb25zLG49dC5tYXhpbXVtSGVpZ2h0cyxvPXQubWluaW11bUhlaWdodHM7aWYoIWgoZSkpdGhyb3cgbmV3IEYoIm9wdGlvbnMucG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2lmKGgobikmJm4ubGVuZ3RoIT09ZS5sZW5ndGgpdGhyb3cgbmV3IEYoIm9wdGlvbnMucG9zaXRpb25zIGFuZCBvcHRpb25zLm1heGltdW1IZWlnaHRzIG11c3QgaGF2ZSB0aGUgc2FtZSBsZW5ndGguIik7aWYoaChvKSYmby5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRigib3B0aW9ucy5wb3NpdGlvbnMgYW5kIG9wdGlvbnMubWluaW11bUhlaWdodHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aC4iKTtsZXQgcj14KHQudmVydGV4Rm9ybWF0LGR0LkRFRkFVTFQpLGk9eCh0LmdyYW51bGFyaXR5LE0uUkFESUFOU19QRVJfREVHUkVFKSxzPXgodC5lbGxpcHNvaWQsJC5kZWZhdWx0KTt0aGlzLl9wb3NpdGlvbnM9ZSx0aGlzLl9taW5pbXVtSGVpZ2h0cz1vLHRoaXMuX21heGltdW1IZWlnaHRzPW4sdGhpcy5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKHIpLHRoaXMuX2dyYW51bGFyaXR5PWksdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUocyksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlV2FsbEdlb21ldHJ5IjtsZXQgZj0xK2UubGVuZ3RoKmEucGFja2VkTGVuZ3RoKzI7aChvKSYmKGYrPW8ubGVuZ3RoKSxoKG4pJiYoZis9bi5sZW5ndGgpLHRoaXMucGFja2VkTGVuZ3RoPWYrJC5wYWNrZWRMZW5ndGgrZHQucGFja2VkTGVuZ3RoKzF9dmFyIGhnLG9tLHhVLHUyLFBVLE1VLE5VLGwyLHAyLHV1LF9nLGQyPVooKCk9Pnt2ZSgpO0Z0KCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpOyRlKCk7V3QoKTt0bigpO1JvKCk7bWcoKTtoZz1uZXcgYSxvbT1uZXcgYSx4VT1uZXcgYSx1Mj1uZXcgYSxQVT1uZXcgYSxNVT1uZXcgYSxOVT1uZXcgYTtFYy5wYWNrPWZ1bmN0aW9uKHQsZSxuKXtpZighaCh0KSl0aHJvdyBuZXcgRigidmFsdWUgaXMgcmVxdWlyZWQiKTtpZighaChlKSl0aHJvdyBuZXcgRigiYXJyYXkgaXMgcmVxdWlyZWQiKTtuPXgobiwwKTtsZXQgbyxyPXQuX3Bvc2l0aW9ucyxpPXIubGVuZ3RoO2ZvcihlW24rK109aSxvPTA7bzxpOysrbyxuKz1hLnBhY2tlZExlbmd0aClhLnBhY2socltvXSxlLG4pO2xldCBzPXQuX21pbmltdW1IZWlnaHRzO2lmKGk9aChzKT9zLmxlbmd0aDowLGVbbisrXT1pLGgocykpZm9yKG89MDtvPGk7KytvKWVbbisrXT1zW29dO2xldCBmPXQuX21heGltdW1IZWlnaHRzO2lmKGk9aChmKT9mLmxlbmd0aDowLGVbbisrXT1pLGgoZikpZm9yKG89MDtvPGk7KytvKWVbbisrXT1mW29dO3JldHVybiAkLnBhY2sodC5fZWxsaXBzb2lkLGUsbiksbis9JC5wYWNrZWRMZW5ndGgsZHQucGFjayh0Ll92ZXJ0ZXhGb3JtYXQsZSxuKSxuKz1kdC5wYWNrZWRMZW5ndGgsZVtuXT10Ll9ncmFudWxhcml0eSxlfTtsMj0kLmNsb25lKCQuVU5JVF9TUEhFUkUpLHAyPW5ldyBkdCx1dT17cG9zaXRpb25zOnZvaWQgMCxtaW5pbXVtSGVpZ2h0czp2b2lkIDAsbWF4aW11bUhlaWdodHM6dm9pZCAwLGVsbGlwc29pZDpsMix2ZXJ0ZXhGb3JtYXQ6cDIsZ3JhbnVsYXJpdHk6dm9pZCAwfTtFYy51bnBhY2s9ZnVuY3Rpb24odCxlLG4pe2lmKCFoKHQpKXRocm93IG5ldyBGKCJhcnJheSBpcyByZXF1aXJlZCIpO2U9eChlLDApO2xldCBvLHI9dFtlKytdLGk9bmV3IEFycmF5KHIpO2ZvcihvPTA7bzxyOysrbyxlKz1hLnBhY2tlZExlbmd0aClpW29dPWEudW5wYWNrKHQsZSk7cj10W2UrK107bGV0IHM7aWYocj4wKWZvcihzPW5ldyBBcnJheShyKSxvPTA7bzxyOysrbylzW29dPXRbZSsrXTtyPXRbZSsrXTtsZXQgZjtpZihyPjApZm9yKGY9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKWZbb109dFtlKytdO2xldCB1PSQudW5wYWNrKHQsZSxsMik7ZSs9JC5wYWNrZWRMZW5ndGg7bGV0IGM9ZHQudW5wYWNrKHQsZSxwMik7ZSs9ZHQucGFja2VkTGVuZ3RoO2xldCBsPXRbZV07cmV0dXJuIGgobik/KG4uX3Bvc2l0aW9ucz1pLG4uX21pbmltdW1IZWlnaHRzPXMsbi5fbWF4aW11bUhlaWdodHM9ZixuLl9lbGxpcHNvaWQ9JC5jbG9uZSh1LG4uX2VsbGlwc29pZCksbi5fdmVydGV4Rm9ybWF0PWR0LmNsb25lKGMsbi5fdmVydGV4Rm9ybWF0KSxuLl9ncmFudWxhcml0eT1sLG4pOih1dS5wb3NpdGlvbnM9aSx1dS5taW5pbXVtSGVpZ2h0cz1zLHV1Lm1heGltdW1IZWlnaHRzPWYsdXUuZ3JhbnVsYXJpdHk9bCxuZXcgRWModXUpKX07RWMuZnJvbUNvbnN0YW50SGVpZ2h0cz1mdW5jdGlvbih0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnM7aWYoIWgoZSkpdGhyb3cgbmV3IEYoIm9wdGlvbnMucG9zaXRpb25zIGlzIHJlcXVpcmVkLiIpO2xldCBuLG8scj10Lm1pbmltdW1IZWlnaHQsaT10Lm1heGltdW1IZWlnaHQscz1oKHIpLGY9aChpKTtpZihzfHxmKXtsZXQgYz1lLmxlbmd0aDtuPXM/bmV3IEFycmF5KGMpOnZvaWQgMCxvPWY/bmV3IEFycmF5KGMpOnZvaWQgMDtmb3IobGV0IGw9MDtsPGM7KytsKXMmJihuW2xdPXIpLGYmJihvW2xdPWkpfWxldCB1PXtwb3NpdGlvbnM6ZSxtYXhpbXVtSGVpZ2h0czpvLG1pbmltdW1IZWlnaHRzOm4sZWxsaXBzb2lkOnQuZWxsaXBzb2lkLHZlcnRleEZvcm1hdDp0LnZlcnRleEZvcm1hdH07cmV0dXJuIG5ldyBFYyh1KX07RWMuY3JlYXRlR2VvbWV0cnk9ZnVuY3Rpb24odCl7bGV0IGU9dC5fcG9zaXRpb25zLG49dC5fbWluaW11bUhlaWdodHMsbz10Ll9tYXhpbXVtSGVpZ2h0cyxyPXQuX3ZlcnRleEZvcm1hdCxpPXQuX2dyYW51bGFyaXR5LHM9dC5fZWxsaXBzb2lkLGY9bm0uY29tcHV0ZVBvc2l0aW9ucyhzLGUsbyxuLGksITApO2lmKCFoKGYpKXJldHVybjtsZXQgdT1mLmJvdHRvbVBvc2l0aW9ucyxjPWYudG9wUG9zaXRpb25zLGw9Zi5udW1Db3JuZXJzLHA9Yy5sZW5ndGgsZD1wKjIsbT1yLnBvc2l0aW9uP25ldyBGbG9hdDY0QXJyYXkoZCk6dm9pZCAwLF89ci5ub3JtYWw/bmV3IEZsb2F0MzJBcnJheShkKTp2b2lkIDAsZz1yLnRhbmdlbnQ/bmV3IEZsb2F0MzJBcnJheShkKTp2b2lkIDAsYj1yLmJpdGFuZ2VudD9uZXcgRmxvYXQzMkFycmF5KGQpOnZvaWQgMCx3PXIuc3Q/bmV3IEZsb2F0MzJBcnJheShkLzMqMik6dm9pZCAwLE89MCxFPTAsVD0wLEM9MCxOPTAsST1OVSxEPU1VLHY9UFUsTD0hMDtwLz0zO2xldCBVLEE9MCxTPTEvKHAtbC0xKTtmb3IoVT0wO1U8cDsrK1Upe2xldCBrPVUqMyxLPWEuZnJvbUFycmF5KGMsayxoZyksWD1hLmZyb21BcnJheSh1LGssb20pO2lmKHIucG9zaXRpb24mJihtW08rK109WC54LG1bTysrXT1YLnksbVtPKytdPVgueixtW08rK109Sy54LG1bTysrXT1LLnksbVtPKytdPUsueiksci5zdCYmKHdbTisrXT1BLHdbTisrXT0wLHdbTisrXT1BLHdbTisrXT0xKSxyLm5vcm1hbHx8ci50YW5nZW50fHxyLmJpdGFuZ2VudCl7bGV0IFI9YS5jbG9uZShhLlpFUk8sdTIpLG90PWEuc3VidHJhY3QoSyxzLmdlb2RldGljU3VyZmFjZU5vcm1hbChLLG9tKSxvbSk7aWYoVSsxPHAmJihSPWEuZnJvbUFycmF5KGMsayszLHUyKSksTCl7bGV0IGF0PWEuc3VidHJhY3QoUixLLHhVKSxwdD1hLnN1YnRyYWN0KG90LEssaGcpO0k9YS5ub3JtYWxpemUoYS5jcm9zcyhwdCxhdCxJKSxJKSxMPSExfWEuZXF1YWxzRXBzaWxvbihLLFIsTS5FUFNJTE9OMTApP0w9ITA6KEErPVMsci50YW5nZW50JiYoRD1hLm5vcm1hbGl6ZShhLnN1YnRyYWN0KFIsSyxEKSxEKSksci5iaXRhbmdlbnQmJih2PWEubm9ybWFsaXplKGEuY3Jvc3MoSSxELHYpLHYpKSksci5ub3JtYWwmJihfW0UrK109SS54LF9bRSsrXT1JLnksX1tFKytdPUkueixfW0UrK109SS54LF9bRSsrXT1JLnksX1tFKytdPUkueiksci50YW5nZW50JiYoZ1tDKytdPUQueCxnW0MrK109RC55LGdbQysrXT1ELnosZ1tDKytdPUQueCxnW0MrK109RC55LGdbQysrXT1ELnopLHIuYml0YW5nZW50JiYoYltUKytdPXYueCxiW1QrK109di55LGJbVCsrXT12LnosYltUKytdPXYueCxiW1QrK109di55LGJbVCsrXT12LnopfX1sZXQgUD1uZXcgaWU7ci5wb3NpdGlvbiYmKFAucG9zaXRpb249bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczptfSkpLHIubm9ybWFsJiYoUC5ub3JtYWw9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOl99KSksci50YW5nZW50JiYoUC50YW5nZW50PW5ldyBpdCh7Y29tcG9uZW50RGF0YXR5cGU6bnQuRkxPQVQsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpnfSkpLHIuYml0YW5nZW50JiYoUC5iaXRhbmdlbnQ9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjMsdmFsdWVzOmJ9KSksci5zdCYmKFAuc3Q9bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5GTE9BVCxjb21wb25lbnRzUGVyQXR0cmlidXRlOjIsdmFsdWVzOnd9KSk7bGV0IEI9ZC8zO2QtPTYqKGwrMSk7bGV0IGo9RHQuY3JlYXRlVHlwZWRBcnJheShCLGQpLEg9MDtmb3IoVT0wO1U8Qi0yO1UrPTIpe2xldCBrPVUsSz1VKzIsWD1hLmZyb21BcnJheShtLGsqMyxoZyksUj1hLmZyb21BcnJheShtLEsqMyxvbSk7aWYoYS5lcXVhbHNFcHNpbG9uKFgsUixNLkVQU0lMT04xMCkpY29udGludWU7bGV0IG90PVUrMSxhdD1VKzM7altIKytdPW90LGpbSCsrXT1rLGpbSCsrXT1hdCxqW0grK109YXQsaltIKytdPWssaltIKytdPUt9cmV0dXJuIG5ldyBVdCh7YXR0cmlidXRlczpQLGluZGljZXM6aixwcmltaXRpdmVUeXBlOkJ0LlRSSUFOR0xFUyxib3VuZGluZ1NwaGVyZTpuZXcgQXQuZnJvbVZlcnRpY2VzKG0pfSl9O19nPUVjfSk7dmFyIHlnPXt9O2RlKHlnLHtkZWZhdWx0OigpPT52VX0pO2Z1bmN0aW9uIElVKHQsZSl7cmV0dXJuIGgoZSkmJih0PV9nLnVucGFjayh0LGUpKSx0Ll9lbGxpcHNvaWQ9JC5jbG9uZSh0Ll9lbGxpcHNvaWQpLF9nLmNyZWF0ZUdlb21ldHJ5KHQpfXZhciB2VSxnZz1aKCgpPT57ZnQoKTtadCgpO2QyKCk7dlU9SVV9KTtmdW5jdGlvbiBSYyh0KXt0PXgodCx4LkVNUFRZX09CSkVDVCk7bGV0IGU9dC5wb3NpdGlvbnMsbj10Lm1heGltdW1IZWlnaHRzLG89dC5taW5pbXVtSGVpZ2h0cztpZighaChlKSl0aHJvdyBuZXcgRigib3B0aW9ucy5wb3NpdGlvbnMgaXMgcmVxdWlyZWQuIik7aWYoaChuKSYmbi5sZW5ndGghPT1lLmxlbmd0aCl0aHJvdyBuZXcgRigib3B0aW9ucy5wb3NpdGlvbnMgYW5kIG9wdGlvbnMubWF4aW11bUhlaWdodHMgbXVzdCBoYXZlIHRoZSBzYW1lIGxlbmd0aC4iKTtpZihoKG8pJiZvLmxlbmd0aCE9PWUubGVuZ3RoKXRocm93IG5ldyBGKCJvcHRpb25zLnBvc2l0aW9ucyBhbmQgb3B0aW9ucy5taW5pbXVtSGVpZ2h0cyBtdXN0IGhhdmUgdGhlIHNhbWUgbGVuZ3RoLiIpO2xldCByPXgodC5ncmFudWxhcml0eSxNLlJBRElBTlNfUEVSX0RFR1JFRSksaT14KHQuZWxsaXBzb2lkLCQuZGVmYXVsdCk7dGhpcy5fcG9zaXRpb25zPWUsdGhpcy5fbWluaW11bUhlaWdodHM9byx0aGlzLl9tYXhpbXVtSGVpZ2h0cz1uLHRoaXMuX2dyYW51bGFyaXR5PXIsdGhpcy5fZWxsaXBzb2lkPSQuY2xvbmUoaSksdGhpcy5fd29ya2VyTmFtZT0iY3JlYXRlV2FsbE91dGxpbmVHZW9tZXRyeSI7bGV0IHM9MStlLmxlbmd0aCphLnBhY2tlZExlbmd0aCsyO2gobykmJihzKz1vLmxlbmd0aCksaChuKSYmKHMrPW4ubGVuZ3RoKSx0aGlzLnBhY2tlZExlbmd0aD1zKyQucGFja2VkTGVuZ3RoKzF9dmFyIG0yLGgyLF8yLGx1LEFnLHkyPVooKCk9Pnt2ZSgpO0Z0KCk7RmUoKTtJdCgpO2Z0KCk7SHQoKTtadCgpO1hlKCk7WWUoKTthbigpOyRlKCk7V3QoKTt0bigpO21nKCk7bTI9bmV3IGEsaDI9bmV3IGE7UmMucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoInZhbHVlIGlzIHJlcXVpcmVkIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7bj14KG4sMCk7bGV0IG8scj10Ll9wb3NpdGlvbnMsaT1yLmxlbmd0aDtmb3IoZVtuKytdPWksbz0wO288aTsrK28sbis9YS5wYWNrZWRMZW5ndGgpYS5wYWNrKHJbb10sZSxuKTtsZXQgcz10Ll9taW5pbXVtSGVpZ2h0cztpZihpPWgocyk/cy5sZW5ndGg6MCxlW24rK109aSxoKHMpKWZvcihvPTA7bzxpOysrbyllW24rK109c1tvXTtsZXQgZj10Ll9tYXhpbXVtSGVpZ2h0cztpZihpPWgoZik/Zi5sZW5ndGg6MCxlW24rK109aSxoKGYpKWZvcihvPTA7bzxpOysrbyllW24rK109ZltvXTtyZXR1cm4gJC5wYWNrKHQuX2VsbGlwc29pZCxlLG4pLG4rPSQucGFja2VkTGVuZ3RoLGVbbl09dC5fZ3JhbnVsYXJpdHksZX07XzI9JC5jbG9uZSgkLlVOSVRfU1BIRVJFKSxsdT17cG9zaXRpb25zOnZvaWQgMCxtaW5pbXVtSGVpZ2h0czp2b2lkIDAsbWF4aW11bUhlaWdodHM6dm9pZCAwLGVsbGlwc29pZDpfMixncmFudWxhcml0eTp2b2lkIDB9O1JjLnVucGFjaz1mdW5jdGlvbih0LGUsbil7aWYoIWgodCkpdGhyb3cgbmV3IEYoImFycmF5IGlzIHJlcXVpcmVkIik7ZT14KGUsMCk7bGV0IG8scj10W2UrK10saT1uZXcgQXJyYXkocik7Zm9yKG89MDtvPHI7KytvLGUrPWEucGFja2VkTGVuZ3RoKWlbb109YS51bnBhY2sodCxlKTtyPXRbZSsrXTtsZXQgcztpZihyPjApZm9yKHM9bmV3IEFycmF5KHIpLG89MDtvPHI7KytvKXNbb109dFtlKytdO3I9dFtlKytdO2xldCBmO2lmKHI+MClmb3IoZj1uZXcgQXJyYXkociksbz0wO288cjsrK28pZltvXT10W2UrK107bGV0IHU9JC51bnBhY2sodCxlLF8yKTtlKz0kLnBhY2tlZExlbmd0aDtsZXQgYz10W2VdO3JldHVybiBoKG4pPyhuLl9wb3NpdGlvbnM9aSxuLl9taW5pbXVtSGVpZ2h0cz1zLG4uX21heGltdW1IZWlnaHRzPWYsbi5fZWxsaXBzb2lkPSQuY2xvbmUodSxuLl9lbGxpcHNvaWQpLG4uX2dyYW51bGFyaXR5PWMsbik6KGx1LnBvc2l0aW9ucz1pLGx1Lm1pbmltdW1IZWlnaHRzPXMsbHUubWF4aW11bUhlaWdodHM9ZixsdS5ncmFudWxhcml0eT1jLG5ldyBSYyhsdSkpfTtSYy5mcm9tQ29uc3RhbnRIZWlnaHRzPWZ1bmN0aW9uKHQpe3Q9eCh0LHguRU1QVFlfT0JKRUNUKTtsZXQgZT10LnBvc2l0aW9ucztpZighaChlKSl0aHJvdyBuZXcgRigib3B0aW9ucy5wb3NpdGlvbnMgaXMgcmVxdWlyZWQuIik7bGV0IG4sbyxyPXQubWluaW11bUhlaWdodCxpPXQubWF4aW11bUhlaWdodCxzPWgociksZj1oKGkpO2lmKHN8fGYpe2xldCBjPWUubGVuZ3RoO249cz9uZXcgQXJyYXkoYyk6dm9pZCAwLG89Zj9uZXcgQXJyYXkoYyk6dm9pZCAwO2ZvcihsZXQgbD0wO2w8YzsrK2wpcyYmKG5bbF09ciksZiYmKG9bbF09aSl9bGV0IHU9e3Bvc2l0aW9uczplLG1heGltdW1IZWlnaHRzOm8sbWluaW11bUhlaWdodHM6bixlbGxpcHNvaWQ6dC5lbGxpcHNvaWR9O3JldHVybiBuZXcgUmModSl9O1JjLmNyZWF0ZUdlb21ldHJ5PWZ1bmN0aW9uKHQpe2xldCBlPXQuX3Bvc2l0aW9ucyxuPXQuX21pbmltdW1IZWlnaHRzLG89dC5fbWF4aW11bUhlaWdodHMscj10Ll9ncmFudWxhcml0eSxpPXQuX2VsbGlwc29pZCxzPW5tLmNvbXB1dGVQb3NpdGlvbnMoaSxlLG8sbixyLCExKTtpZighaChzKSlyZXR1cm47bGV0IGY9cy5ib3R0b21Qb3NpdGlvbnMsdT1zLnRvcFBvc2l0aW9ucyxjPXUubGVuZ3RoLGw9YyoyLHA9bmV3IEZsb2F0NjRBcnJheShsKSxkPTA7Yy89MztsZXQgbTtmb3IobT0wO208YzsrK20pe2xldCBPPW0qMyxFPWEuZnJvbUFycmF5KHUsTyxtMiksVD1hLmZyb21BcnJheShmLE8saDIpO3BbZCsrXT1ULngscFtkKytdPVQueSxwW2QrK109VC56LHBbZCsrXT1FLngscFtkKytdPUUueSxwW2QrK109RS56fWxldCBfPW5ldyBpZSh7cG9zaXRpb246bmV3IGl0KHtjb21wb25lbnREYXRhdHlwZTpudC5ET1VCTEUsY29tcG9uZW50c1BlckF0dHJpYnV0ZTozLHZhbHVlczpwfSl9KSxnPWwvMztsPTIqZy00K2c7bGV0IGI9RHQuY3JlYXRlVHlwZWRBcnJheShnLGwpLHc9MDtmb3IobT0wO208Zy0yO20rPTIpe2xldCBPPW0sRT1tKzIsVD1hLmZyb21BcnJheShwLE8qMyxtMiksQz1hLmZyb21BcnJheShwLEUqMyxoMik7aWYoYS5lcXVhbHNFcHNpbG9uKFQsQyxNLkVQU0lMT04xMCkpY29udGludWU7bGV0IE49bSsxLEk9bSszO2JbdysrXT1OLGJbdysrXT1PLGJbdysrXT1OLGJbdysrXT1JLGJbdysrXT1PLGJbdysrXT1FfXJldHVybiBiW3crK109Zy0yLGJbdysrXT1nLTEsbmV3IFV0KHthdHRyaWJ1dGVzOl8saW5kaWNlczpiLHByaW1pdGl2ZVR5cGU6QnQuTElORVMsYm91bmRpbmdTcGhlcmU6bmV3IEF0LmZyb21WZXJ0aWNlcyhwKX0pfTtBZz1SY30pO3ZhciBiZz17fTtkZShiZyx7ZGVmYXVsdDooKT0+RFV9KTtmdW5jdGlvbiBMVSh0LGUpe3JldHVybiBoKGUpJiYodD1BZy51bnBhY2sodCxlKSksdC5fZWxsaXBzb2lkPSQuY2xvbmUodC5fZWxsaXBzb2lkKSxBZy5jcmVhdGVHZW9tZXRyeSh0KX12YXIgRFUsd2c9WigoKT0+e2Z0KCk7WnQoKTt5MigpO0RVPUxVfSk7dmFyIEVnPVhuKChwdSxPZyk9Pnt2YXIgVnQ9VnR8fHt9O1Z0LnNjb3BlPXt9O1Z0LmFycmF5SXRlcmF0b3JJbXBsPWZ1bmN0aW9uKHQpe3ZhciBlPTA7cmV0dXJuIGZ1bmN0aW9uKCl7cmV0dXJuIGU8dC5sZW5ndGg/e2RvbmU6ITEsdmFsdWU6dFtlKytdfTp7ZG9uZTohMH19fTtWdC5hcnJheUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3JldHVybntuZXh0OlZ0LmFycmF5SXRlcmF0b3JJbXBsKHQpfX07VnQubWFrZUl0ZXJhdG9yPWZ1bmN0aW9uKHQpe3ZhciBlPXR5cGVvZiBTeW1ib2w8InUiJiZTeW1ib2wuaXRlcmF0b3ImJnRbU3ltYm9sLml0ZXJhdG9yXTtyZXR1cm4gZT9lLmNhbGwodCk6VnQuYXJyYXlJdGVyYXRvcih0KX07VnQuQVNTVU1FX0VTNT0hMTtWdC5BU1NVTUVfTk9fTkFUSVZFX01BUD0hMTtWdC5BU1NVTUVfTk9fTkFUSVZFX1NFVD0hMTtWdC5TSU1QTEVfRlJPVU5EX1BPTFlGSUxMPSExO1Z0LklTT0xBVEVfUE9MWUZJTExTPSExO1Z0LkZPUkNFX1BPTFlGSUxMX1BST01JU0U9ITE7VnQuRk9SQ0VfUE9MWUZJTExfUFJPTUlTRV9XSEVOX05PX1VOSEFORExFRF9SRUpFQ1RJT049ITE7VnQuZ2V0R2xvYmFsPWZ1bmN0aW9uKHQpe3Q9W3R5cGVvZiBnbG9iYWxUaGlzPT0ib2JqZWN0IiYmZ2xvYmFsVGhpcyx0LHR5cGVvZiB3aW5kb3c9PSJvYmplY3QiJiZ3aW5kb3csdHlwZW9mIHNlbGY9PSJvYmplY3QiJiZzZWxmLHR5cGVvZiBnbG9iYWw9PSJvYmplY3QiJiZnbG9iYWxdO2Zvcih2YXIgZT0wO2U8dC5sZW5ndGg7KytlKXt2YXIgbj10W2VdO2lmKG4mJm4uTWF0aD09TWF0aClyZXR1cm4gbn10aHJvdyBFcnJvcigiQ2Fubm90IGZpbmQgZ2xvYmFsIG9iamVjdCIpfTtWdC5nbG9iYWw9VnQuZ2V0R2xvYmFsKHB1KTtWdC5kZWZpbmVQcm9wZXJ0eT1WdC5BU1NVTUVfRVM1fHx0eXBlb2YgT2JqZWN0LmRlZmluZVByb3BlcnRpZXM9PSJmdW5jdGlvbiI/T2JqZWN0LmRlZmluZVByb3BlcnR5OmZ1bmN0aW9uKHQsZSxuKXtyZXR1cm4gdD09QXJyYXkucHJvdG90eXBlfHx0PT1PYmplY3QucHJvdG90eXBlfHwodFtlXT1uLnZhbHVlKSx0fTtWdC5JU19TWU1CT0xfTkFUSVZFPXR5cGVvZiBTeW1ib2w9PSJmdW5jdGlvbiImJnR5cGVvZiBTeW1ib2woIngiKT09InN5bWJvbCI7VnQuVFJVU1RfRVM2X1BPTFlGSUxMUz0hVnQuSVNPTEFURV9QT0xZRklMTFN8fFZ0LklTX1NZTUJPTF9OQVRJVkU7VnQucG9seWZpbGxzPXt9O1Z0LnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbD17fTtWdC5QT0xZRklMTF9QUkVGSVg9IiRqc2NwJCI7VnQucG9seWZpbGw9ZnVuY3Rpb24odCxlLG4sbyl7ZSYmKFZ0LklTT0xBVEVfUE9MWUZJTExTP1Z0LnBvbHlmaWxsSXNvbGF0ZWQodCxlLG4sbyk6VnQucG9seWZpbGxVbmlzb2xhdGVkKHQsZSxuLG8pKX07VnQucG9seWZpbGxVbmlzb2xhdGVkPWZ1bmN0aW9uKHQsZSxuLG8pe2ZvcihuPVZ0Lmdsb2JhbCx0PXQuc3BsaXQoIi4iKSxvPTA7bzx0Lmxlbmd0aC0xO28rKyl7dmFyIHI9dFtvXTtpZighKHIgaW4gbikpcmV0dXJuO249bltyXX10PXRbdC5sZW5ndGgtMV0sbz1uW3RdLGU9ZShvKSxlIT1vJiZlIT1udWxsJiZWdC5kZWZpbmVQcm9wZXJ0eShuLHQse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSl9O1Z0LnBvbHlmaWxsSXNvbGF0ZWQ9ZnVuY3Rpb24odCxlLG4sbyl7dmFyIHI9dC5zcGxpdCgiLiIpO3Q9ci5sZW5ndGg9PT0xLG89clswXSxvPSF0JiZvIGluIFZ0LnBvbHlmaWxscz9WdC5wb2x5ZmlsbHM6VnQuZ2xvYmFsO2Zvcih2YXIgaT0wO2k8ci5sZW5ndGgtMTtpKyspe3ZhciBzPXJbaV07aWYoIShzIGluIG8pKXJldHVybjtvPW9bc119cj1yW3IubGVuZ3RoLTFdLG49VnQuSVNfU1lNQk9MX05BVElWRSYmbj09PSJlczYiP29bcl06bnVsbCxlPWUobiksZSE9bnVsbCYmKHQ/VnQuZGVmaW5lUHJvcGVydHkoVnQucG9seWZpbGxzLHIse2NvbmZpZ3VyYWJsZTohMCx3cml0YWJsZTohMCx2YWx1ZTplfSk6ZSE9PW4mJihWdC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09PT12b2lkIDAmJihuPTFlOSpNYXRoLnJhbmRvbSgpPj4+MCxWdC5wcm9wZXJ0eVRvUG9seWZpbGxTeW1ib2xbcl09VnQuSVNfU1lNQk9MX05BVElWRT9WdC5nbG9iYWwuU3ltYm9sKHIpOlZ0LlBPTFlGSUxMX1BSRUZJWCtuKyIkIityKSxWdC5kZWZpbmVQcm9wZXJ0eShvLFZ0LnByb3BlcnR5VG9Qb2x5ZmlsbFN5bWJvbFtyXSx7Y29uZmlndXJhYmxlOiEwLHdyaXRhYmxlOiEwLHZhbHVlOmV9KSkpfTtWdC5wb2x5ZmlsbCgiUHJvbWlzZSIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZSgpe3RoaXMuYmF0Y2hfPW51bGx9ZnVuY3Rpb24gbihzKXtyZXR1cm4gcyBpbnN0YW5jZW9mIHI/czpuZXcgcihmdW5jdGlvbihmLHUpe2Yocyl9KX1pZih0JiYoIShWdC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFfHxWdC5GT1JDRV9QT0xZRklMTF9QUk9NSVNFX1dIRU5fTk9fVU5IQU5ETEVEX1JFSkVDVElPTiYmdHlwZW9mIFZ0Lmdsb2JhbC5Qcm9taXNlUmVqZWN0aW9uRXZlbnQ+InUiKXx8IVZ0Lmdsb2JhbC5Qcm9taXNlfHxWdC5nbG9iYWwuUHJvbWlzZS50b1N0cmluZygpLmluZGV4T2YoIltuYXRpdmUgY29kZV0iKT09PS0xKSlyZXR1cm4gdDtlLnByb3RvdHlwZS5hc3luY0V4ZWN1dGU9ZnVuY3Rpb24ocyl7aWYodGhpcy5iYXRjaF89PW51bGwpe3RoaXMuYmF0Y2hfPVtdO3ZhciBmPXRoaXM7dGhpcy5hc3luY0V4ZWN1dGVGdW5jdGlvbihmdW5jdGlvbigpe2YuZXhlY3V0ZUJhdGNoXygpfSl9dGhpcy5iYXRjaF8ucHVzaChzKX07dmFyIG89VnQuZ2xvYmFsLnNldFRpbWVvdXQ7ZS5wcm90b3R5cGUuYXN5bmNFeGVjdXRlRnVuY3Rpb249ZnVuY3Rpb24ocyl7byhzLDApfSxlLnByb3RvdHlwZS5leGVjdXRlQmF0Y2hfPWZ1bmN0aW9uKCl7Zm9yKDt0aGlzLmJhdGNoXyYmdGhpcy5iYXRjaF8ubGVuZ3RoOyl7dmFyIHM9dGhpcy5iYXRjaF87dGhpcy5iYXRjaF89W107Zm9yKHZhciBmPTA7ZjxzLmxlbmd0aDsrK2Ype3ZhciB1PXNbZl07c1tmXT1udWxsO3RyeXt1KCl9Y2F0Y2goYyl7dGhpcy5hc3luY1Rocm93XyhjKX19fXRoaXMuYmF0Y2hfPW51bGx9LGUucHJvdG90eXBlLmFzeW5jVGhyb3dfPWZ1bmN0aW9uKHMpe3RoaXMuYXN5bmNFeGVjdXRlRnVuY3Rpb24oZnVuY3Rpb24oKXt0aHJvdyBzfSl9O3ZhciByPWZ1bmN0aW9uKHMpe3RoaXMuc3RhdGVfPTAsdGhpcy5yZXN1bHRfPXZvaWQgMCx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc189W10sdGhpcy5pc1JlamVjdGlvbkhhbmRsZWRfPSExO3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTt0cnl7cyhmLnJlc29sdmUsZi5yZWplY3QpfWNhdGNoKHUpe2YucmVqZWN0KHUpfX07ci5wcm90b3R5cGUuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF89ZnVuY3Rpb24oKXtmdW5jdGlvbiBzKGMpe3JldHVybiBmdW5jdGlvbihsKXt1fHwodT0hMCxjLmNhbGwoZixsKSl9fXZhciBmPXRoaXMsdT0hMTtyZXR1cm57cmVzb2x2ZTpzKHRoaXMucmVzb2x2ZVRvXykscmVqZWN0OnModGhpcy5yZWplY3RfKX19LHIucHJvdG90eXBlLnJlc29sdmVUb189ZnVuY3Rpb24ocyl7aWYocz09PXRoaXMpdGhpcy5yZWplY3RfKG5ldyBUeXBlRXJyb3IoIkEgUHJvbWlzZSBjYW5ub3QgcmVzb2x2ZSB0byBpdHNlbGYiKSk7ZWxzZSBpZihzIGluc3RhbmNlb2Ygcil0aGlzLnNldHRsZVNhbWVBc1Byb21pc2VfKHMpO2Vsc2V7dDpzd2l0Y2godHlwZW9mIHMpe2Nhc2Uib2JqZWN0Ijp2YXIgZj1zIT1udWxsO2JyZWFrIHQ7Y2FzZSJmdW5jdGlvbiI6Zj0hMDticmVhayB0O2RlZmF1bHQ6Zj0hMX1mP3RoaXMucmVzb2x2ZVRvTm9uUHJvbWlzZU9ial8ocyk6dGhpcy5mdWxmaWxsXyhzKX19LHIucHJvdG90eXBlLnJlc29sdmVUb05vblByb21pc2VPYmpfPWZ1bmN0aW9uKHMpe3ZhciBmPXZvaWQgMDt0cnl7Zj1zLnRoZW59Y2F0Y2godSl7dGhpcy5yZWplY3RfKHUpO3JldHVybn10eXBlb2YgZj09ImZ1bmN0aW9uIj90aGlzLnNldHRsZVNhbWVBc1RoZW5hYmxlXyhmLHMpOnRoaXMuZnVsZmlsbF8ocyl9LHIucHJvdG90eXBlLnJlamVjdF89ZnVuY3Rpb24ocyl7dGhpcy5zZXR0bGVfKDIscyl9LHIucHJvdG90eXBlLmZ1bGZpbGxfPWZ1bmN0aW9uKHMpe3RoaXMuc2V0dGxlXygxLHMpfSxyLnByb3RvdHlwZS5zZXR0bGVfPWZ1bmN0aW9uKHMsZil7aWYodGhpcy5zdGF0ZV8hPTApdGhyb3cgRXJyb3IoIkNhbm5vdCBzZXR0bGUoIitzKyIsICIrZisiKTogUHJvbWlzZSBhbHJlYWR5IHNldHRsZWQgaW4gc3RhdGUiK3RoaXMuc3RhdGVfKTt0aGlzLnN0YXRlXz1zLHRoaXMucmVzdWx0Xz1mLHRoaXMuc3RhdGVfPT09MiYmdGhpcy5zY2hlZHVsZVVuaGFuZGxlZFJlamVjdGlvbkNoZWNrXygpLHRoaXMuZXhlY3V0ZU9uU2V0dGxlZENhbGxiYWNrc18oKX0sci5wcm90b3R5cGUuc2NoZWR1bGVVbmhhbmRsZWRSZWplY3Rpb25DaGVja189ZnVuY3Rpb24oKXt2YXIgcz10aGlzO28oZnVuY3Rpb24oKXtpZihzLm5vdGlmeVVuaGFuZGxlZFJlamVjdGlvbl8oKSl7dmFyIGY9VnQuZ2xvYmFsLmNvbnNvbGU7dHlwZW9mIGY8InUiJiZmLmVycm9yKHMucmVzdWx0Xyl9fSwxKX0sci5wcm90b3R5cGUubm90aWZ5VW5oYW5kbGVkUmVqZWN0aW9uXz1mdW5jdGlvbigpe2lmKHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXylyZXR1cm4hMTt2YXIgcz1WdC5nbG9iYWwuQ3VzdG9tRXZlbnQsZj1WdC5nbG9iYWwuRXZlbnQsdT1WdC5nbG9iYWwuZGlzcGF0Y2hFdmVudDtyZXR1cm4gdHlwZW9mIHU+InUiPyEwOih0eXBlb2Ygcz09ImZ1bmN0aW9uIj9zPW5ldyBzKCJ1bmhhbmRsZWRyZWplY3Rpb24iLHtjYW5jZWxhYmxlOiEwfSk6dHlwZW9mIGY9PSJmdW5jdGlvbiI/cz1uZXcgZigidW5oYW5kbGVkcmVqZWN0aW9uIix7Y2FuY2VsYWJsZTohMH0pOihzPVZ0Lmdsb2JhbC5kb2N1bWVudC5jcmVhdGVFdmVudCgiQ3VzdG9tRXZlbnQiKSxzLmluaXRDdXN0b21FdmVudCgidW5oYW5kbGVkcmVqZWN0aW9uIiwhMSwhMCxzKSkscy5wcm9taXNlPXRoaXMscy5yZWFzb249dGhpcy5yZXN1bHRfLHUocykpfSxyLnByb3RvdHlwZS5leGVjdXRlT25TZXR0bGVkQ2FsbGJhY2tzXz1mdW5jdGlvbigpe2lmKHRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXyE9bnVsbCl7Zm9yKHZhciBzPTA7czx0aGlzLm9uU2V0dGxlZENhbGxiYWNrc18ubGVuZ3RoOysrcylpLmFzeW5jRXhlY3V0ZSh0aGlzLm9uU2V0dGxlZENhbGxiYWNrc19bc10pO3RoaXMub25TZXR0bGVkQ2FsbGJhY2tzXz1udWxsfX07dmFyIGk9bmV3IGU7cmV0dXJuIHIucHJvdG90eXBlLnNldHRsZVNhbWVBc1Byb21pc2VfPWZ1bmN0aW9uKHMpe3ZhciBmPXRoaXMuY3JlYXRlUmVzb2x2ZUFuZFJlamVjdF8oKTtzLmNhbGxXaGVuU2V0dGxlZF8oZi5yZXNvbHZlLGYucmVqZWN0KX0sci5wcm90b3R5cGUuc2V0dGxlU2FtZUFzVGhlbmFibGVfPWZ1bmN0aW9uKHMsZil7dmFyIHU9dGhpcy5jcmVhdGVSZXNvbHZlQW5kUmVqZWN0XygpO3RyeXtzLmNhbGwoZix1LnJlc29sdmUsdS5yZWplY3QpfWNhdGNoKGMpe3UucmVqZWN0KGMpfX0sci5wcm90b3R5cGUudGhlbj1mdW5jdGlvbihzLGYpe2Z1bmN0aW9uIHUoZCxtKXtyZXR1cm4gdHlwZW9mIGQ9PSJmdW5jdGlvbiI/ZnVuY3Rpb24oXyl7dHJ5e2MoZChfKSl9Y2F0Y2goZyl7bChnKX19Om19dmFyIGMsbCxwPW5ldyByKGZ1bmN0aW9uKGQsbSl7Yz1kLGw9bX0pO3JldHVybiB0aGlzLmNhbGxXaGVuU2V0dGxlZF8odShzLGMpLHUoZixsKSkscH0sci5wcm90b3R5cGUuY2F0Y2g9ZnVuY3Rpb24ocyl7cmV0dXJuIHRoaXMudGhlbih2b2lkIDAscyl9LHIucHJvdG90eXBlLmNhbGxXaGVuU2V0dGxlZF89ZnVuY3Rpb24ocyxmKXtmdW5jdGlvbiB1KCl7c3dpdGNoKGMuc3RhdGVfKXtjYXNlIDE6cyhjLnJlc3VsdF8pO2JyZWFrO2Nhc2UgMjpmKGMucmVzdWx0Xyk7YnJlYWs7ZGVmYXVsdDp0aHJvdyBFcnJvcigiVW5leHBlY3RlZCBzdGF0ZTogIitjLnN0YXRlXyl9fXZhciBjPXRoaXM7dGhpcy5vblNldHRsZWRDYWxsYmFja3NfPT1udWxsP2kuYXN5bmNFeGVjdXRlKHUpOnRoaXMub25TZXR0bGVkQ2FsbGJhY2tzXy5wdXNoKHUpLHRoaXMuaXNSZWplY3Rpb25IYW5kbGVkXz0hMH0sci5yZXNvbHZlPW4sci5yZWplY3Q9ZnVuY3Rpb24ocyl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKGYsdSl7dShzKX0pfSxyLnJhY2U9ZnVuY3Rpb24ocyl7cmV0dXJuIG5ldyByKGZ1bmN0aW9uKGYsdSl7Zm9yKHZhciBjPVZ0Lm1ha2VJdGVyYXRvcihzKSxsPWMubmV4dCgpOyFsLmRvbmU7bD1jLm5leHQoKSluKGwudmFsdWUpLmNhbGxXaGVuU2V0dGxlZF8oZix1KX0pfSxyLmFsbD1mdW5jdGlvbihzKXt2YXIgZj1WdC5tYWtlSXRlcmF0b3IocyksdT1mLm5leHQoKTtyZXR1cm4gdS5kb25lP24oW10pOm5ldyByKGZ1bmN0aW9uKGMsbCl7ZnVuY3Rpb24gcChfKXtyZXR1cm4gZnVuY3Rpb24oZyl7ZFtfXT1nLG0tLSxtPT0wJiZjKGQpfX12YXIgZD1bXSxtPTA7ZG8gZC5wdXNoKHZvaWQgMCksbSsrLG4odS52YWx1ZSkuY2FsbFdoZW5TZXR0bGVkXyhwKGQubGVuZ3RoLTEpLGwpLHU9Zi5uZXh0KCk7d2hpbGUoIXUuZG9uZSl9KX0scn0sImVzNiIsImVzMyIpO1Z0Lm93bnM9ZnVuY3Rpb24odCxlKXtyZXR1cm4gT2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSl9O1Z0LmFzc2lnbj1WdC5UUlVTVF9FUzZfUE9MWUZJTExTJiZ0eXBlb2YgT2JqZWN0LmFzc2lnbj09ImZ1bmN0aW9uIj9PYmplY3QuYXNzaWduOmZ1bmN0aW9uKHQsZSl7Zm9yKHZhciBuPTE7bjxhcmd1bWVudHMubGVuZ3RoO24rKyl7dmFyIG89YXJndW1lbnRzW25dO2lmKG8pZm9yKHZhciByIGluIG8pVnQub3ducyhvLHIpJiYodFtyXT1vW3JdKX1yZXR1cm4gdH07VnQucG9seWZpbGwoIk9iamVjdC5hc3NpZ24iLGZ1bmN0aW9uKHQpe3JldHVybiB0fHxWdC5hc3NpZ259LCJlczYiLCJlczMiKTtWdC5jaGVja1N0cmluZ0FyZ3M9ZnVuY3Rpb24odCxlLG4pe2lmKHQ9PW51bGwpdGhyb3cgbmV3IFR5cGVFcnJvcigiVGhlICd0aGlzJyB2YWx1ZSBmb3IgU3RyaW5nLnByb3RvdHlwZS4iK24rIiBtdXN0IG5vdCBiZSBudWxsIG9yIHVuZGVmaW5lZCIpO2lmKGUgaW5zdGFuY2VvZiBSZWdFeHApdGhyb3cgbmV3IFR5cGVFcnJvcigiRmlyc3QgYXJndW1lbnQgdG8gU3RyaW5nLnByb3RvdHlwZS4iK24rIiBtdXN0IG5vdCBiZSBhIHJlZ3VsYXIgZXhwcmVzc2lvbiIpO3JldHVybiB0KyIifTtWdC5wb2x5ZmlsbCgiU3RyaW5nLnByb3RvdHlwZS5zdGFydHNXaXRoIixmdW5jdGlvbih0KXtyZXR1cm4gdHx8ZnVuY3Rpb24oZSxuKXt2YXIgbz1WdC5jaGVja1N0cmluZ0FyZ3ModGhpcyxlLCJzdGFydHNXaXRoIik7ZSs9IiI7dmFyIHI9by5sZW5ndGgsaT1lLmxlbmd0aDtuPU1hdGgubWF4KDAsTWF0aC5taW4obnwwLG8ubGVuZ3RoKSk7Zm9yKHZhciBzPTA7czxpJiZuPHI7KWlmKG9bbisrXSE9ZVtzKytdKXJldHVybiExO3JldHVybiBzPj1pfX0sImVzNiIsImVzMyIpO1Z0LnBvbHlmaWxsKCJBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsZnVuY3Rpb24odCl7ZnVuY3Rpb24gZShuKXtyZXR1cm4gbj1OdW1iZXIobiksbj09PTEvMHx8bj09PS0xLzA/bjpufDB9cmV0dXJuIHR8fGZ1bmN0aW9uKG4sbyxyKXt2YXIgaT10aGlzLmxlbmd0aDtpZihuPWUobiksbz1lKG8pLHI9cj09PXZvaWQgMD9pOmUociksbj0wPm4/TWF0aC5tYXgoaStuLDApOk1hdGgubWluKG4saSksbz0wPm8/TWF0aC5tYXgoaStvLDApOk1hdGgubWluKG8saSkscj0wPnI/TWF0aC5tYXgoaStyLDApOk1hdGgubWluKHIsaSksbjxvKWZvcig7bzxyOylvIGluIHRoaXM/dGhpc1tuKytdPXRoaXNbbysrXTooZGVsZXRlIHRoaXNbbisrXSxvKyspO2Vsc2UgZm9yKHI9TWF0aC5taW4ocixpK28tbiksbis9ci1vO3I+bzspLS1yIGluIHRoaXM/dGhpc1stLW5dPXRoaXNbcl06ZGVsZXRlIHRoaXNbLS1uXTtyZXR1cm4gdGhpc319LCJlczYiLCJlczMiKTtWdC50eXBlZEFycmF5Q29weVdpdGhpbj1mdW5jdGlvbih0KXtyZXR1cm4gdHx8QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW59O1Z0LnBvbHlmaWxsKCJJbnQ4QXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLFZ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtWdC5wb2x5ZmlsbCgiVWludDhBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsVnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO1Z0LnBvbHlmaWxsKCJVaW50OENsYW1wZWRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsVnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO1Z0LnBvbHlmaWxsKCJJbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixWdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7VnQucG9seWZpbGwoIlVpbnQxNkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixWdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7VnQucG9seWZpbGwoIkludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLFZ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtWdC5wb2x5ZmlsbCgiVWludDMyQXJyYXkucHJvdG90eXBlLmNvcHlXaXRoaW4iLFZ0LnR5cGVkQXJyYXlDb3B5V2l0aGluLCJlczYiLCJlczUiKTtWdC5wb2x5ZmlsbCgiRmxvYXQzMkFycmF5LnByb3RvdHlwZS5jb3B5V2l0aGluIixWdC50eXBlZEFycmF5Q29weVdpdGhpbiwiZXM2IiwiZXM1Iik7VnQucG9seWZpbGwoIkZsb2F0NjRBcnJheS5wcm90b3R5cGUuY29weVdpdGhpbiIsVnQudHlwZWRBcnJheUNvcHlXaXRoaW4sImVzNiIsImVzNSIpO3ZhciBUZz1mdW5jdGlvbigpe3ZhciB0PXR5cGVvZiBkb2N1bWVudDwidSImJmRvY3VtZW50LmN1cnJlbnRTY3JpcHQ/ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmM6dm9pZCAwO3JldHVybiB0eXBlb2YgX19maWxlbmFtZTwidSImJih0PXR8fF9fZmlsZW5hbWUpLGZ1bmN0aW9uKGUpe2Z1bmN0aW9uIG4oeil7cmV0dXJuIFIubG9jYXRlRmlsZT9SLmxvY2F0ZUZpbGUoeixtdCk6bXQren1mdW5jdGlvbiBvKHosVyxldCl7dmFyIE10PVcrZXQ7Zm9yKGV0PVc7eltldF0mJiEoZXQ+PU10KTspKytldDtpZigxNjxldC1XJiZ6LmJ1ZmZlciYmZ2UpcmV0dXJuIGdlLmRlY29kZSh6LnN1YmFycmF5KFcsZXQpKTtmb3IoTXQ9IiI7VzxldDspe3ZhciBsZT16W1crK107aWYobGUmMTI4KXt2YXIgd2U9eltXKytdJjYzO2lmKChsZSYyMjQpPT0xOTIpTXQrPVN0cmluZy5mcm9tQ2hhckNvZGUoKGxlJjMxKTw8Nnx3ZSk7ZWxzZXt2YXIgT2k9eltXKytdJjYzO2xlPShsZSYyNDApPT0yMjQ/KGxlJjE1KTw8MTJ8d2U8PDZ8T2k6KGxlJjcpPDwxOHx3ZTw8MTJ8T2k8PDZ8eltXKytdJjYzLDY1NTM2PmxlP010Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGxlKToobGUtPTY1NTM2LE10Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fGxlPj4xMCw1NjMyMHxsZSYxMDIzKSl9fWVsc2UgTXQrPVN0cmluZy5mcm9tQ2hhckNvZGUobGUpfXJldHVybiBNdH1mdW5jdGlvbiByKHosVyl7cmV0dXJuIHo/byh1bix6LFcpOiIifWZ1bmN0aW9uIGkoKXt2YXIgej1KdC5idWZmZXI7Ui5IRUFQOD1FZT1uZXcgSW50OEFycmF5KHopLFIuSEVBUDE2PW5ldyBJbnQxNkFycmF5KHopLFIuSEVBUDMyPWtlPW5ldyBJbnQzMkFycmF5KHopLFIuSEVBUFU4PXVuPW5ldyBVaW50OEFycmF5KHopLFIuSEVBUFUxNj1uZXcgVWludDE2QXJyYXkoeiksUi5IRUFQVTMyPWJlPW5ldyBVaW50MzJBcnJheSh6KSxSLkhFQVBGMzI9bmV3IEZsb2F0MzJBcnJheSh6KSxSLkhFQVBGNjQ9bmV3IEZsb2F0NjRBcnJheSh6KX1mdW5jdGlvbiBzKHope3Rocm93IFIub25BYm9ydCYmUi5vbkFib3J0KHopLHo9IkFib3J0ZWQoIit6KyIpIix1ZSh6KSxOZT0hMCx6PW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoeisiLiBCdWlsZCB3aXRoIC1zQVNTRVJUSU9OUyBmb3IgbW9yZSBpbmZvLiIpLGF0KHopLHp9ZnVuY3Rpb24gZih6KXt0cnl7aWYoej09c24mJlF0KXJldHVybiBuZXcgVWludDhBcnJheShRdCk7aWYobWUpcmV0dXJuIG1lKHopO3Rocm93ImJvdGggYXN5bmMgYW5kIHN5bmMgZmV0Y2hpbmcgb2YgdGhlIHdhc20gZmFpbGVkIn1jYXRjaChXKXtzKFcpfX1mdW5jdGlvbiB1KCl7aWYoIVF0JiYoUHR8fGd0KSl7aWYodHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiYhc24uc3RhcnRzV2l0aCgiZmlsZTovLyIpKXJldHVybiBmZXRjaChzbix7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oeil7aWYoIXoub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIitzbisiJyI7cmV0dXJuIHouYXJyYXlCdWZmZXIoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIGYoc24pfSk7aWYoYWUpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKHosVyl7YWUoc24sZnVuY3Rpb24oZXQpe3oobmV3IFVpbnQ4QXJyYXkoZXQpKX0sVyl9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBmKHNuKX0pfWZ1bmN0aW9uIGMoeil7Zm9yKDswPHoubGVuZ3RoOyl6LnNoaWZ0KCkoUil9ZnVuY3Rpb24gbCh6KXt0aGlzLmV4Y1B0cj16LHRoaXMucHRyPXotMjQsdGhpcy5zZXRfdHlwZT1mdW5jdGlvbihXKXtiZVt0aGlzLnB0cis0Pj4yXT1XfSx0aGlzLmdldF90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIGJlW3RoaXMucHRyKzQ+PjJdfSx0aGlzLnNldF9kZXN0cnVjdG9yPWZ1bmN0aW9uKFcpe2JlW3RoaXMucHRyKzg+PjJdPVd9LHRoaXMuZ2V0X2Rlc3RydWN0b3I9ZnVuY3Rpb24oKXtyZXR1cm4gYmVbdGhpcy5wdHIrOD4+Ml19LHRoaXMuc2V0X3JlZmNvdW50PWZ1bmN0aW9uKFcpe2tlW3RoaXMucHRyPj4yXT1XfSx0aGlzLnNldF9jYXVnaHQ9ZnVuY3Rpb24oVyl7RWVbdGhpcy5wdHIrMTI+PjBdPVc/MTowfSx0aGlzLmdldF9jYXVnaHQ9ZnVuY3Rpb24oKXtyZXR1cm4gRWVbdGhpcy5wdHIrMTI+PjBdIT0wfSx0aGlzLnNldF9yZXRocm93bj1mdW5jdGlvbihXKXtFZVt0aGlzLnB0cisxMz4+MF09Vz8xOjB9LHRoaXMuZ2V0X3JldGhyb3duPWZ1bmN0aW9uKCl7cmV0dXJuIEVlW3RoaXMucHRyKzEzPj4wXSE9MH0sdGhpcy5pbml0PWZ1bmN0aW9uKFcsZXQpe3RoaXMuc2V0X2FkanVzdGVkX3B0cigwKSx0aGlzLnNldF90eXBlKFcpLHRoaXMuc2V0X2Rlc3RydWN0b3IoZXQpLHRoaXMuc2V0X3JlZmNvdW50KDApLHRoaXMuc2V0X2NhdWdodCghMSksdGhpcy5zZXRfcmV0aHJvd24oITEpfSx0aGlzLmFkZF9yZWY9ZnVuY3Rpb24oKXtrZVt0aGlzLnB0cj4+Ml0rPTF9LHRoaXMucmVsZWFzZV9yZWY9ZnVuY3Rpb24oKXt2YXIgVz1rZVt0aGlzLnB0cj4+Ml07cmV0dXJuIGtlW3RoaXMucHRyPj4yXT1XLTEsVz09PTF9LHRoaXMuc2V0X2FkanVzdGVkX3B0cj1mdW5jdGlvbihXKXtiZVt0aGlzLnB0cisxNj4+Ml09V30sdGhpcy5nZXRfYWRqdXN0ZWRfcHRyPWZ1bmN0aW9uKCl7cmV0dXJuIGJlW3RoaXMucHRyKzE2Pj4yXX0sdGhpcy5nZXRfZXhjZXB0aW9uX3B0cj1mdW5jdGlvbigpe2lmKEZsKHRoaXMuZ2V0X3R5cGUoKSkpcmV0dXJuIGJlW3RoaXMuZXhjUHRyPj4yXTt2YXIgVz10aGlzLmdldF9hZGp1c3RlZF9wdHIoKTtyZXR1cm4gVyE9PTA/Vzp0aGlzLmV4Y1B0cn19ZnVuY3Rpb24gcCgpe2Z1bmN0aW9uIHooKXtpZighb2YmJihvZj0hMCxSLmNhbGxlZFJ1bj0hMCwhTmUpKXtpZihyZT0hMCxjKHBuKSxvdChSKSxSLm9uUnVudGltZUluaXRpYWxpemVkJiZSLm9uUnVudGltZUluaXRpYWxpemVkKCksUi5wb3N0UnVuKWZvcih0eXBlb2YgUi5wb3N0UnVuPT0iZnVuY3Rpb24iJiYoUi5wb3N0UnVuPVtSLnBvc3RSdW5dKTtSLnBvc3RSdW4ubGVuZ3RoOylFbi51bnNoaWZ0KFIucG9zdFJ1bi5zaGlmdCgpKTtjKEVuKX19aWYoISgwPCR0KSl7aWYoUi5wcmVSdW4pZm9yKHR5cGVvZiBSLnByZVJ1bj09ImZ1bmN0aW9uIiYmKFIucHJlUnVuPVtSLnByZVJ1bl0pO1IucHJlUnVuLmxlbmd0aDspbG4udW5zaGlmdChSLnByZVJ1bi5zaGlmdCgpKTtjKGxuKSwwPCR0fHwoUi5zZXRTdGF0dXM/KFIuc2V0U3RhdHVzKCJSdW5uaW5nLi4uIiksc2V0VGltZW91dChmdW5jdGlvbigpe3NldFRpbWVvdXQoZnVuY3Rpb24oKXtSLnNldFN0YXR1cygiIil9LDEpLHooKX0sMSkpOnooKSl9fWZ1bmN0aW9uIGQoKXt9ZnVuY3Rpb24gbSh6KXtyZXR1cm4oenx8ZCkuX19jYWNoZV9ffWZ1bmN0aW9uIF8oeixXKXt2YXIgZXQ9bShXKSxNdD1ldFt6XTtyZXR1cm4gTXR8fChNdD1PYmplY3QuY3JlYXRlKChXfHxkKS5wcm90b3R5cGUpLE10LnB0cj16LGV0W3pdPU10KX1mdW5jdGlvbiBnKHope2lmKHR5cGVvZiB6PT0ic3RyaW5nIil7Zm9yKHZhciBXPTAsZXQ9MDtldDx6Lmxlbmd0aDsrK2V0KXt2YXIgTXQ9ei5jaGFyQ29kZUF0KGV0KTsxMjc+PU10P1crKzoyMDQ3Pj1NdD9XKz0yOjU1Mjk2PD1NdCYmNTczNDM+PU10PyhXKz00LCsrZXQpOlcrPTN9aWYoVz1BcnJheShXKzEpLGV0PTAsTXQ9Vy5sZW5ndGgsMDxNdCl7TXQ9ZXQrTXQtMTtmb3IodmFyIGxlPTA7bGU8ei5sZW5ndGg7KytsZSl7dmFyIHdlPXouY2hhckNvZGVBdChsZSk7aWYoNTUyOTY8PXdlJiY1NzM0Mz49d2Upe3ZhciBPaT16LmNoYXJDb2RlQXQoKytsZSk7d2U9NjU1MzYrKCh3ZSYxMDIzKTw8MTApfE9pJjEwMjN9aWYoMTI3Pj13ZSl7aWYoZXQ+PU10KWJyZWFrO1dbZXQrK109d2V9ZWxzZXtpZigyMDQ3Pj13ZSl7aWYoZXQrMT49TXQpYnJlYWs7V1tldCsrXT0xOTJ8d2U+PjZ9ZWxzZXtpZig2NTUzNT49d2Upe2lmKGV0KzI+PU10KWJyZWFrO1dbZXQrK109MjI0fHdlPj4xMn1lbHNle2lmKGV0KzM+PU10KWJyZWFrO1dbZXQrK109MjQwfHdlPj4xOCxXW2V0KytdPTEyOHx3ZT4+MTImNjN9V1tldCsrXT0xMjh8d2U+PjYmNjN9V1tldCsrXT0xMjh8d2UmNjN9fVdbZXRdPTB9cmV0dXJuIHo9Q2UuYWxsb2MoVyxFZSksQ2UuY29weShXLEVlLHopLHp9cmV0dXJuIHp9ZnVuY3Rpb24gYih6KXtpZih0eXBlb2Ygej09Im9iamVjdCIpe3ZhciBXPUNlLmFsbG9jKHosRWUpO3JldHVybiBDZS5jb3B5KHosRWUsVyksV31yZXR1cm4gen1mdW5jdGlvbiB3KCl7dGhyb3ciY2Fubm90IGNvbnN0cnVjdCBhIFZvaWRQdHIsIG5vIGNvbnN0cnVjdG9yIGluIElETCJ9ZnVuY3Rpb24gTygpe3RoaXMucHRyPWNuKCksbShPKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBFKCl7dGhpcy5wdHI9dW8oKSxtKEUpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFQoKXt0aGlzLnB0cj1sbygpLG0oVClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gQygpe3RoaXMucHRyPUxlKCksbShDKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBOKCl7dGhpcy5wdHI9SXMoKSxtKE4pW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEkoKXt0aGlzLnB0cj1vbygpLG0oSSlbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gRCgpe3RoaXMucHRyPU5jKCksbShEKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiB2KCl7dGhpcy5wdHI9b3IoKSxtKHYpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEwoKXt0aGlzLnB0cj12YygpLG0oTClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gVSgpe3Rocm93ImNhbm5vdCBjb25zdHJ1Y3QgYSBTdGF0dXMsIG5vIGNvbnN0cnVjdG9yIGluIElETCJ9ZnVuY3Rpb24gQSgpe3RoaXMucHRyPUV1KCksbShBKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBTKCl7dGhpcy5wdHI9TGMoKSxtKFMpW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFAoKXt0aGlzLnB0cj1XYSgpLG0oUClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gQigpe3RoaXMucHRyPUZjKCksbShCKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBqKCl7dGhpcy5wdHI9SXUoKSxtKGopW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIEgoKXt0aGlzLnB0cj1EdSgpLG0oSClbdGhpcy5wdHJdPXRoaXN9ZnVuY3Rpb24gaygpe3RoaXMucHRyPXRzKCksbShrKVt0aGlzLnB0cl09dGhpc31mdW5jdGlvbiBLKCl7dGhpcy5wdHI9R3UoKSxtKEspW3RoaXMucHRyXT10aGlzfWZ1bmN0aW9uIFgoKXt0aGlzLnB0cj1RYSgpLG0oWClbdGhpcy5wdHJdPXRoaXN9ZT1lPT09dm9pZCAwP3t9OmU7dmFyIFI9dHlwZW9mIGU8InUiP2U6e30sb3QsYXQ7Ui5yZWFkeT1uZXcgUHJvbWlzZShmdW5jdGlvbih6LFcpe290PXosYXQ9V30pO3ZhciBwdD0hMSx5dD0hMTtSLm9uUnVudGltZUluaXRpYWxpemVkPWZ1bmN0aW9uKCl7cHQ9ITAseXQmJnR5cGVvZiBSLm9uTW9kdWxlTG9hZGVkPT0iZnVuY3Rpb24iJiZSLm9uTW9kdWxlTG9hZGVkKFIpfSxSLm9uTW9kdWxlUGFyc2VkPWZ1bmN0aW9uKCl7eXQ9ITAscHQmJnR5cGVvZiBSLm9uTW9kdWxlTG9hZGVkPT0iZnVuY3Rpb24iJiZSLm9uTW9kdWxlTG9hZGVkKFIpfSxSLmlzVmVyc2lvblN1cHBvcnRlZD1mdW5jdGlvbih6KXtyZXR1cm4gdHlwZW9mIHohPSJzdHJpbmciPyExOih6PXouc3BsaXQoIi4iKSwyPnoubGVuZ3RofHwzPHoubGVuZ3RoPyExOnpbMF09PTEmJjA8PXpbMV0mJjU+PXpbMV0/ITA6ISh6WzBdIT0wfHwxMDx6WzFdKSl9O3ZhciBydD1PYmplY3QuYXNzaWduKHt9LFIpLFB0PXR5cGVvZiB3aW5kb3c9PSJvYmplY3QiLGd0PXR5cGVvZiBpbXBvcnRTY3JpcHRzPT0iZnVuY3Rpb24iLEN0PXR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlPT0ic3RyaW5nIixtdD0iIjtpZihDdCl7dmFyIHV0PXByKCJmcyIpLHZ0PXByKCJwYXRoIik7bXQ9Z3Q/dnQuZGlybmFtZShtdCkrIi8iOl9fZGlybmFtZSsiLyI7dmFyIHp0PWZ1bmN0aW9uKHosVyl7cmV0dXJuIHo9ei5zdGFydHNXaXRoKCJmaWxlOi8vIik/bmV3IFVSTCh6KTp2dC5ub3JtYWxpemUoeiksdXQucmVhZEZpbGVTeW5jKHosVz92b2lkIDA6InV0ZjgiKX0sbWU9ZnVuY3Rpb24oeil7cmV0dXJuIHo9enQoeiwhMCksei5idWZmZXJ8fCh6PW5ldyBVaW50OEFycmF5KHopKSx6fSxhZT1mdW5jdGlvbih6LFcsZXQpe3o9ei5zdGFydHNXaXRoKCJmaWxlOi8vIik/bmV3IFVSTCh6KTp2dC5ub3JtYWxpemUoeiksdXQucmVhZEZpbGUoeixmdW5jdGlvbihNdCxsZSl7TXQ/ZXQoTXQpOlcobGUuYnVmZmVyKX0pfTsxPHByb2Nlc3MuYXJndi5sZW5ndGgmJnByb2Nlc3MuYXJndlsxXS5yZXBsYWNlKC9cXC9nLCIvIikscHJvY2Vzcy5hcmd2LnNsaWNlKDIpLFIuaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9fWVsc2UoUHR8fGd0KSYmKGd0P210PXNlbGYubG9jYXRpb24uaHJlZjp0eXBlb2YgZG9jdW1lbnQ8InUiJiZkb2N1bWVudC5jdXJyZW50U2NyaXB0JiYobXQ9ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLHQmJihtdD10KSxtdD1tdC5pbmRleE9mKCJibG9iOiIpIT09MD9tdC5zdWJzdHIoMCxtdC5yZXBsYWNlKC9bPyNdLiovLCIiKS5sYXN0SW5kZXhPZigiLyIpKzEpOiIiLHp0PWZ1bmN0aW9uKHope3ZhciBXPW5ldyBYTUxIdHRwUmVxdWVzdDtyZXR1cm4gVy5vcGVuKCJHRVQiLHosITEpLFcuc2VuZChudWxsKSxXLnJlc3BvbnNlVGV4dH0sZ3QmJihtZT1mdW5jdGlvbih6KXt2YXIgVz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIFcub3BlbigiR0VUIix6LCExKSxXLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLFcuc2VuZChudWxsKSxuZXcgVWludDhBcnJheShXLnJlc3BvbnNlKX0pLGFlPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PW5ldyBYTUxIdHRwUmVxdWVzdDtNdC5vcGVuKCJHRVQiLHosITApLE10LnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLE10Lm9ubG9hZD1mdW5jdGlvbigpe010LnN0YXR1cz09MjAwfHxNdC5zdGF0dXM9PTAmJk10LnJlc3BvbnNlP1coTXQucmVzcG9uc2UpOmV0KCl9LE10Lm9uZXJyb3I9ZXQsTXQuc2VuZChudWxsKX0pO3ZhciBwZT1SLnByaW50fHxjb25zb2xlLmxvZy5iaW5kKGNvbnNvbGUpLHVlPVIucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO09iamVjdC5hc3NpZ24oUixydCkscnQ9bnVsbDt2YXIgUXQ7Ui53YXNtQmluYXJ5JiYoUXQ9Ui53YXNtQmluYXJ5KSx0eXBlb2YgV2ViQXNzZW1ibHkhPSJvYmplY3QiJiZzKCJubyBuYXRpdmUgd2FzbSBzdXBwb3J0IGRldGVjdGVkIik7dmFyIEp0LE5lPSExLGdlPXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwLEVlLHVuLGtlLGJlLGxuPVtdLHBuPVtdLEVuPVtdLHJlPSExLCR0PTAsR2U9bnVsbCxkbj1udWxsLHNuPSJkcmFjb19kZWNvZGVyLndhc20iO3NuLnN0YXJ0c1dpdGgoImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiKXx8KHNuPW4oc24pKTt2YXIgbW49MCxmbz1bbnVsbCxbXSxbXV0sSG49e2I6ZnVuY3Rpb24oeixXLGV0KXt0aHJvdyBuZXcgbCh6KS5pbml0KFcsZXQpLG1uKyssen0sYTpmdW5jdGlvbigpe3MoIiIpfSxnOmZ1bmN0aW9uKHosVyxldCl7dW4uY29weVdpdGhpbih6LFcsVytldCl9LGU6ZnVuY3Rpb24oeil7dmFyIFc9dW4ubGVuZ3RoO2lmKHo+Pj49MCwyMTQ3NDgzNjQ4PHopcmV0dXJuITE7Zm9yKHZhciBldD0xOzQ+PWV0O2V0Kj0yKXt2YXIgTXQ9VyooMSsuMi9ldCk7TXQ9TWF0aC5taW4oTXQseisxMDA2NjMyOTYpO3ZhciBsZT1NYXRoO010PU1hdGgubWF4KHosTXQpLGxlPWxlLm1pbi5jYWxsKGxlLDIxNDc0ODM2NDgsTXQrKDY1NTM2LU10JTY1NTM2KSU2NTUzNik7dDp7TXQ9SnQuYnVmZmVyO3RyeXtKdC5ncm93KGxlLU10LmJ5dGVMZW5ndGgrNjU1MzU+Pj4xNiksaSgpO3ZhciB3ZT0xO2JyZWFrIHR9Y2F0Y2h7fXdlPXZvaWQgMH1pZih3ZSlyZXR1cm4hMH1yZXR1cm4hMX0sZjpmdW5jdGlvbih6KXtyZXR1cm4gNTJ9LGQ6ZnVuY3Rpb24oeixXLGV0LE10LGxlKXtyZXR1cm4gNzB9LGM6ZnVuY3Rpb24oeixXLGV0LE10KXtmb3IodmFyIGxlPTAsd2U9MDt3ZTxldDt3ZSsrKXt2YXIgT2k9YmVbVz4+Ml0sR2M9YmVbVys0Pj4yXTtXKz04O2Zvcih2YXIgVj0wO1Y8R2M7VisrKXt2YXIgRz11bltPaStWXSxZPWZvW3pdO0c9PT0wfHxHPT09MTA/KCh6PT09MT9wZTp1ZSkobyhZLDApKSxZLmxlbmd0aD0wKTpZLnB1c2goRyl9bGUrPUdjfXJldHVybiBiZVtNdD4+Ml09bGUsMH19OyhmdW5jdGlvbigpe2Z1bmN0aW9uIHoobGUsd2Upe1IuYXNtPWxlLmV4cG9ydHMsSnQ9Ui5hc20uaCxpKCkscG4udW5zaGlmdChSLmFzbS5pKSwkdC0tLFIubW9uaXRvclJ1bkRlcGVuZGVuY2llcyYmUi5tb25pdG9yUnVuRGVwZW5kZW5jaWVzKCR0KSwkdD09MCYmKEdlIT09bnVsbCYmKGNsZWFySW50ZXJ2YWwoR2UpLEdlPW51bGwpLGRuJiYobGU9ZG4sZG49bnVsbCxsZSgpKSl9ZnVuY3Rpb24gVyhsZSl7eihsZS5pbnN0YW5jZSl9ZnVuY3Rpb24gZXQobGUpe3JldHVybiB1KCkudGhlbihmdW5jdGlvbih3ZSl7cmV0dXJuIFdlYkFzc2VtYmx5Lmluc3RhbnRpYXRlKHdlLE10KX0pLnRoZW4oZnVuY3Rpb24od2Upe3JldHVybiB3ZX0pLnRoZW4obGUsZnVuY3Rpb24od2Upe3VlKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK3dlKSxzKHdlKX0pfXZhciBNdD17YTpIbn07aWYoJHQrKyxSLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJlIubW9uaXRvclJ1bkRlcGVuZGVuY2llcygkdCksUi5pbnN0YW50aWF0ZVdhc20pdHJ5e3JldHVybiBSLmluc3RhbnRpYXRlV2FzbShNdCx6KX1jYXRjaChsZSl7dWUoIk1vZHVsZS5pbnN0YW50aWF0ZVdhc20gY2FsbGJhY2sgZmFpbGVkIHdpdGggZXJyb3I6ICIrbGUpLGF0KGxlKX1yZXR1cm4gZnVuY3Rpb24oKXtyZXR1cm4gUXR8fHR5cGVvZiBXZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyE9ImZ1bmN0aW9uInx8c24uc3RhcnRzV2l0aCgiZGF0YTphcHBsaWNhdGlvbi9vY3RldC1zdHJlYW07YmFzZTY0LCIpfHxzbi5zdGFydHNXaXRoKCJmaWxlOi8vIil8fEN0fHx0eXBlb2YgZmV0Y2ghPSJmdW5jdGlvbiI/ZXQoVyk6ZmV0Y2goc24se2NyZWRlbnRpYWxzOiJzYW1lLW9yaWdpbiJ9KS50aGVuKGZ1bmN0aW9uKGxlKXtyZXR1cm4gV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmcobGUsTXQpLnRoZW4oVyxmdW5jdGlvbih3ZSl7cmV0dXJuIHVlKCJ3YXNtIHN0cmVhbWluZyBjb21waWxlIGZhaWxlZDogIit3ZSksdWUoImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksZXQoVyl9KX0pfSgpLmNhdGNoKGF0KSx7fX0pKCk7dmFyIFplPVIuX2Vtc2NyaXB0ZW5fYmluZF9Wb2lkUHRyX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oWmU9Ui5fZW1zY3JpcHRlbl9iaW5kX1ZvaWRQdHJfX19kZXN0cm95X19fMD1SLmFzbS5rKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGNuPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyQnVmZmVyX0RlY29kZXJCdWZmZXJfMD1mdW5jdGlvbigpe3JldHVybihjbj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9EZWNvZGVyQnVmZmVyXzA9Ui5hc20ubCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLZT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9Jbml0XzI9ZnVuY3Rpb24oKXtyZXR1cm4oS2U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJCdWZmZXJfSW5pdF8yPVIuYXNtLm0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saG49Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJCdWZmZXJfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihobj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2RlckJ1ZmZlcl9fX2Rlc3Ryb3lfX18wPVIuYXNtLm4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdW89Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfQXR0cmlidXRlVHJhbnNmb3JtRGF0YV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHVvPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfMD1SLmFzbS5vKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHFuPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX3RyYW5zZm9ybV90eXBlXzA9ZnVuY3Rpb24oKXtyZXR1cm4ocW49Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfdHJhbnNmb3JtX3R5cGVfMD1SLmFzbS5wKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEtuPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oS249Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVRyYW5zZm9ybURhdGFfX19kZXN0cm95X19fMD1SLmFzbS5xKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGxvPVIuX2Vtc2NyaXB0ZW5fYmluZF9HZW9tZXRyeUF0dHJpYnV0ZV9HZW9tZXRyeUF0dHJpYnV0ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKGxvPVIuX2Vtc2NyaXB0ZW5fYmluZF9HZW9tZXRyeUF0dHJpYnV0ZV9HZW9tZXRyeUF0dHJpYnV0ZV8wPVIuYXNtLnIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0semU9Ui5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oemU9Ui5fZW1zY3JpcHRlbl9iaW5kX0dlb21ldHJ5QXR0cmlidXRlX19fZGVzdHJveV9fXzA9Ui5hc20ucykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxMZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfUG9pbnRBdHRyaWJ1dGVfMD1mdW5jdGlvbigpe3JldHVybihMZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfUG9pbnRBdHRyaWJ1dGVfMD1SLmFzbS50KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LERuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oRG49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX3NpemVfMD1SLmFzbS51KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFduPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9HZXRBdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhXzA9ZnVuY3Rpb24oKXtyZXR1cm4oV249Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX0dldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGFfMD1SLmFzbS52KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHpvPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9hdHRyaWJ1dGVfdHlwZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHpvPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9hdHRyaWJ1dGVfdHlwZV8wPVIuYXNtLncpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scm49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2RhdGFfdHlwZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHJuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9kYXRhX3R5cGVfMD1SLmFzbS54KS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFJuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9udW1fY29tcG9uZW50c18wPWZ1bmN0aW9uKCl7cmV0dXJuKFJuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV9udW1fY29tcG9uZW50c18wPVIuYXNtLnkpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sYXI9Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX25vcm1hbGl6ZWRfMD1mdW5jdGlvbigpe3JldHVybihhcj1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfbm9ybWFsaXplZF8wPVIuYXNtLnopLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUW49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2J5dGVfc3RyaWRlXzA9ZnVuY3Rpb24oKXtyZXR1cm4oUW49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50QXR0cmlidXRlX2J5dGVfc3RyaWRlXzA9Ui5hc20uQSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxqbz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9vZmZzZXRfMD1mdW5jdGlvbigpe3JldHVybihqbz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfYnl0ZV9vZmZzZXRfMD1SLmFzbS5CKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE5yPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludEF0dHJpYnV0ZV91bmlxdWVfaWRfMD1mdW5jdGlvbigpe3JldHVybihOcj1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfdW5pcXVlX2lkXzA9Ui5hc20uQykuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxOcz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihOcz1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRBdHRyaWJ1dGVfX19kZXN0cm95X19fMD1SLmFzbS5EKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LElzPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtXzA9ZnVuY3Rpb24oKXtyZXR1cm4oSXM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fMD1SLmFzbS5FKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFlpPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fSW5pdEZyb21BdHRyaWJ1dGVfMT1mdW5jdGlvbigpe3JldHVybihZaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX0luaXRGcm9tQXR0cmlidXRlXzE9Ui5hc20uRikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxJcj1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX3F1YW50aXphdGlvbl9iaXRzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oSXI9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9xdWFudGl6YXRpb25fYml0c18wPVIuYXNtLkcpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sJGk9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9taW5fdmFsdWVfMT1mdW5jdGlvbigpe3JldHVybigkaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX21pbl92YWx1ZV8xPVIuYXNtLkgpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdnM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZVF1YW50aXphdGlvblRyYW5zZm9ybV9yYW5nZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKHZzPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fcmFuZ2VfMD1SLmFzbS5JKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGJpPVIuX2Vtc2NyaXB0ZW5fYmluZF9BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm1fX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihiaT1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtX19fZGVzdHJveV9fXzA9Ui5hc20uSikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxvbz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtXzA9ZnVuY3Rpb24oKXtyZXR1cm4ob289Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV8wPVIuYXNtLkspLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scG89Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fSW5pdEZyb21BdHRyaWJ1dGVfMT1mdW5jdGlvbigpe3JldHVybihwbz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9Jbml0RnJvbUF0dHJpYnV0ZV8xPVIuYXNtLkwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdnI9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fcXVhbnRpemF0aW9uX2JpdHNfMD1mdW5jdGlvbigpe3JldHVybih2cj1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9xdWFudGl6YXRpb25fYml0c18wPVIuYXNtLk0pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTWM9Ui5fZW1zY3JpcHRlbl9iaW5kX0F0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1fX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihNYz1SLl9lbXNjcmlwdGVuX2JpbmRfQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybV9fX2Rlc3Ryb3lfX18wPVIuYXNtLk4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTmM9Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfUG9pbnRDbG91ZF8wPWZ1bmN0aW9uKCl7cmV0dXJuKE5jPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX1BvaW50Q2xvdWRfMD1SLmFzbS5PKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZuPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX251bV9hdHRyaWJ1dGVzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oRm49Ui5fZW1zY3JpcHRlbl9iaW5kX1BvaW50Q2xvdWRfbnVtX2F0dHJpYnV0ZXNfMD1SLmFzbS5QKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHdpPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX251bV9wb2ludHNfMD1mdW5jdGlvbigpe3JldHVybih3aT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9udW1fcG9pbnRzXzA9Ui5hc20uUSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEZT1SLl9lbXNjcmlwdGVuX2JpbmRfUG9pbnRDbG91ZF9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKERlPVIuX2Vtc2NyaXB0ZW5fYmluZF9Qb2ludENsb3VkX19fZGVzdHJveV9fXzA9Ui5hc20uUikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxvcj1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9NZXNoXzA9ZnVuY3Rpb24oKXtyZXR1cm4ob3I9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfTWVzaF8wPVIuYXNtLlMpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQXU9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX2ZhY2VzXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQXU9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX2ZhY2VzXzA9Ui5hc20uVCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxidT1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fYXR0cmlidXRlc18wPWZ1bmN0aW9uKCl7cmV0dXJuKGJ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXNoX251bV9hdHRyaWJ1dGVzXzA9Ui5hc20uVSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx3dT1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9udW1fcG9pbnRzXzA9ZnVuY3Rpb24oKXtyZXR1cm4od3U9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfbnVtX3BvaW50c18wPVIuYXNtLlYpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSWM9Ui5fZW1zY3JpcHRlbl9iaW5kX01lc2hfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihJYz1SLl9lbXNjcmlwdGVuX2JpbmRfTWVzaF9fX2Rlc3Ryb3lfX18wPVIuYXNtLlcpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdmM9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhX01ldGFkYXRhXzA9ZnVuY3Rpb24oKXtyZXR1cm4odmM9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhX01ldGFkYXRhXzA9Ui5hc20uWCkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxxYT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihxYT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFfX19kZXN0cm95X19fMD1SLmFzbS5ZKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFR1PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfY29kZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKFR1PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfY29kZV8wPVIuYXNtLlopLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sS2E9Ui5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19va18wPWZ1bmN0aW9uKCl7cmV0dXJuKEthPVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfb2tfMD1SLmFzbS5fKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFppPVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfZXJyb3JfbXNnXzA9ZnVuY3Rpb24oKXtyZXR1cm4oWmk9Ui5fZW1zY3JpcHRlbl9iaW5kX1N0YXR1c19lcnJvcl9tc2dfMD1SLmFzbS4kKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE91PVIuX2Vtc2NyaXB0ZW5fYmluZF9TdGF0dXNfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihPdT1SLl9lbXNjcmlwdGVuX2JpbmRfU3RhdHVzX19fZGVzdHJveV9fXzA9Ui5hc20uYWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0RyYWNvRmxvYXQzMkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oRXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0RyYWNvRmxvYXQzMkFycmF5XzA9Ui5hc20uYmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oUnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X0dldFZhbHVlXzE9Ui5hc20uY2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUWk9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvRmxvYXQzMkFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihRaT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29GbG9hdDMyQXJyYXlfc2l6ZV8wPVIuYXNtLmRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEppPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0Zsb2F0MzJBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKEppPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0Zsb2F0MzJBcnJheV9fX2Rlc3Ryb3lfX18wPVIuYXNtLmVhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9EcmFjb0ludDhBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKExjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9EcmFjb0ludDhBcnJheV8wPVIuYXNtLmZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9HZXRWYWx1ZV8xPVIuYXNtLmdhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEN1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDhBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQ3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50OEFycmF5X3NpemVfMD1SLmFzbS5oYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxMcj1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQ4QXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihMcj1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQ4QXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS5pYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxXYT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X0RyYWNvVUludDhBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKFdhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfRHJhY29VSW50OEFycmF5XzA9Ui5hc20uamEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWGE9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFhhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQ4QXJyYXlfR2V0VmFsdWVfMT1SLmFzbS5rYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEYz1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X3NpemVfMD1mdW5jdGlvbigpe3JldHVybihEYz1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X3NpemVfMD1SLmFzbS5sYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4dT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50OEFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oeHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDhBcnJheV9fX2Rlc3Ryb3lfX18wPVIuYXNtLm1hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfRHJhY29JbnQxNkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4oRmM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9EcmFjb0ludDE2QXJyYXlfMD1SLmFzbS5uYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxQdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oUHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MTZBcnJheV9HZXRWYWx1ZV8xPVIuYXNtLm9hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE11PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKE11PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfc2l6ZV8wPVIuYXNtLnBhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE51PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDE2QXJyYXlfX19kZXN0cm95X19fMD1mdW5jdGlvbigpe3JldHVybihOdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQxNkFycmF5X19fZGVzdHJveV9fXzA9Ui5hc20ucWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfRHJhY29VSW50MTZBcnJheV8wPWZ1bmN0aW9uKCl7cmV0dXJuKEl1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X0RyYWNvVUludDE2QXJyYXlfMD1SLmFzbS5yYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx2dT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9HZXRWYWx1ZV8xPWZ1bmN0aW9uKCl7cmV0dXJuKHZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X0dldFZhbHVlXzE9Ui5hc20uc2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDE2QXJyYXlfc2l6ZV8wPWZ1bmN0aW9uKCl7cmV0dXJuKEx1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X3NpemVfMD1SLmFzbS50YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxZYT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MTZBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFlhPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQxNkFycmF5X19fZGVzdHJveV9fXzA9Ui5hc20udWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sRHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9EcmFjb0ludDMyQXJyYXlfMD1mdW5jdGlvbigpe3JldHVybihEdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X0RyYWNvSW50MzJBcnJheV8wPVIuYXNtLnZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfR2V0VmFsdWVfMT1mdW5jdGlvbigpe3JldHVybihGdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29JbnQzMkFycmF5X0dldFZhbHVlXzE9Ui5hc20ud2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oQnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9zaXplXzA9Ui5hc20ueGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVXU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvSW50MzJBcnJheV9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFV1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb0ludDMyQXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS55YSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx0cz1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9EcmFjb1VJbnQzMkFycmF5XzA9ZnVuY3Rpb24oKXtyZXR1cm4odHM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfRHJhY29VSW50MzJBcnJheV8wPVIuYXNtLnphKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFZ1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X0dldFZhbHVlXzE9ZnVuY3Rpb24oKXtyZXR1cm4oVnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfR2V0VmFsdWVfMT1SLmFzbS5BYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxrdT1SLl9lbXNjcmlwdGVuX2JpbmRfRHJhY29VSW50MzJBcnJheV9zaXplXzA9ZnVuY3Rpb24oKXtyZXR1cm4oa3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfc2l6ZV8wPVIuYXNtLkJhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EcmFjb1VJbnQzMkFycmF5X19fZGVzdHJveV9fXzA9ZnVuY3Rpb24oKXtyZXR1cm4oTHM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RyYWNvVUludDMyQXJyYXlfX19kZXN0cm95X19fMD1SLmFzbS5DYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxHdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX01ldGFkYXRhUXVlcmllcl8wPWZ1bmN0aW9uKCl7cmV0dXJuKEd1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfTWV0YWRhdGFRdWVyaWVyXzA9Ui5hc20uRGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0senU9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9IYXNFbnRyeV8yPWZ1bmN0aW9uKCl7cmV0dXJuKHp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfSGFzRW50cnlfMj1SLmFzbS5FYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxmcj1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldEludEVudHJ5XzI9ZnVuY3Rpb24oKXtyZXR1cm4oZnI9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRJbnRFbnRyeV8yPVIuYXNtLkZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LCRhPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0SW50RW50cnlBcnJheV8zPWZ1bmN0aW9uKCl7cmV0dXJuKCRhPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0SW50RW50cnlBcnJheV8zPVIuYXNtLkdhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RG91YmxlRW50cnlfMj1mdW5jdGlvbigpe3JldHVybihqdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldERvdWJsZUVudHJ5XzI9Ui5hc20uSGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sSHU9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9HZXRTdHJpbmdFbnRyeV8yPWZ1bmN0aW9uKCl7cmV0dXJuKEh1PVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0U3RyaW5nRW50cnlfMj1SLmFzbS5JYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxxdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX051bUVudHJpZXNfMT1mdW5jdGlvbigpe3JldHVybihxdT1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX051bUVudHJpZXNfMT1SLmFzbS5KYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxIbz1SLl9lbXNjcmlwdGVuX2JpbmRfTWV0YWRhdGFRdWVyaWVyX0dldEVudHJ5TmFtZV8yPWZ1bmN0aW9uKCl7cmV0dXJuKEhvPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfR2V0RW50cnlOYW1lXzI9Ui5hc20uS2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWmE9Ui5fZW1zY3JpcHRlbl9iaW5kX01ldGFkYXRhUXVlcmllcl9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKFphPVIuX2Vtc2NyaXB0ZW5fYmluZF9NZXRhZGF0YVF1ZXJpZXJfX19kZXN0cm95X19fMD1SLmFzbS5MYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxRYT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVyXzA9ZnVuY3Rpb24oKXtyZXR1cm4oUWE9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2Rlcl8wPVIuYXNtLk1hKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LERzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUFycmF5VG9Qb2ludENsb3VkXzM9ZnVuY3Rpb24oKXtyZXR1cm4oRHM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfRGVjb2RlQXJyYXlUb1BvaW50Q2xvdWRfMz1SLmFzbS5OYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxLdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVBcnJheVRvTWVzaF8zPWZ1bmN0aW9uKCl7cmV0dXJuKEt1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0RlY29kZUFycmF5VG9NZXNoXzM9Ui5hc20uT2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQmM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRfMj1mdW5jdGlvbigpe3JldHVybihCYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZF8yPVIuYXNtLlBhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFd1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkQnlOYW1lXzI9ZnVuY3Rpb24oKXtyZXR1cm4oV3U9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSWRCeU5hbWVfMj1SLmFzbS5RYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxKYT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJZEJ5TWV0YWRhdGFFbnRyeV8zPWZ1bmN0aW9uKCl7cmV0dXJuKEphPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUlkQnlNZXRhZGF0YUVudHJ5XzM9Ui5hc20uUmEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdGY9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlXzI9ZnVuY3Rpb24oKXtyZXR1cm4odGY9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlXzI9Ui5hc20uU2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sWHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlQnlVbmlxdWVJZF8yPWZ1bmN0aW9uKCl7cmV0dXJuKFh1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUJ5VW5pcXVlSWRfMj1SLmFzbS5UYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxZdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRNZXRhZGF0YV8xPWZ1bmN0aW9uKCl7cmV0dXJuKFl1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldE1ldGFkYXRhXzE9Ui5hc20uVWEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sVWM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlTWV0YWRhdGFfMj1mdW5jdGlvbigpe3JldHVybihVYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVNZXRhZGF0YV8yPVIuYXNtLlZhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEZhY2VGcm9tTWVzaF8zPWZ1bmN0aW9uKCl7cmV0dXJuKEFvPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEZhY2VGcm9tTWVzaF8zPVIuYXNtLldhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFZjPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2hfMj1mdW5jdGlvbigpe3JldHVybihWYz1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZVN0cmlwc0Zyb21NZXNoXzI9Ui5hc20uWGEpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sJHU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVzVUludDE2QXJyYXlfMz1mdW5jdGlvbigpe3JldHVybigkdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRUcmlhbmdsZXNVSW50MTZBcnJheV8zPVIuYXNtLllhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldFRyaWFuZ2xlc1VJbnQzMkFycmF5XzM9ZnVuY3Rpb24oKXtyZXR1cm4oWnU9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0VHJpYW5nbGVzVUludDMyQXJyYXlfMz1SLmFzbS5aYSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxRdT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVGbG9hdF8zPWZ1bmN0aW9uKCl7cmV0dXJuKFF1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUZsb2F0XzM9Ui5hc20uX2EpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdXI9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybih1cj1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVGbG9hdEZvckFsbFBvaW50c18zPVIuYXNtLiRhKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludEZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKEp1PVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludEZvckFsbFBvaW50c18zPVIuYXNtLmFiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHRsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybih0bD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzXzM9Ui5hc20uYmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZWw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihlbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50c18zPVIuYXNtLmNiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LEZzPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDE2Rm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4oRnM9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHNfMz1SLmFzbS5kYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxubD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHNfMz1mdW5jdGlvbigpe3JldHVybihubD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVVSW50MTZGb3JBbGxQb2ludHNfMz1SLmFzbS5lYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxUaT1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50c18zPWZ1bmN0aW9uKCl7cmV0dXJuKFRpPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX0dldEF0dHJpYnV0ZUludDMyRm9yQWxsUG9pbnRzXzM9Ui5hc20uZmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sb2w9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzXzM9ZnVuY3Rpb24oKXtyZXR1cm4ob2w9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlVUludDMyRm9yQWxsUG9pbnRzXzM9Ui5hc20uZ2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scmw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRGF0YUFycmF5Rm9yQWxsUG9pbnRzXzU9ZnVuY3Rpb24oKXtyZXR1cm4ocmw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfR2V0QXR0cmlidXRlRGF0YUFycmF5Rm9yQWxsUG9pbnRzXzU9Ui5hc20uaGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saWw9Ui5fZW1zY3JpcHRlbl9iaW5kX0RlY29kZXJfU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybV8xPWZ1bmN0aW9uKCl7cmV0dXJuKGlsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX1NraXBBdHRyaWJ1dGVUcmFuc2Zvcm1fMT1SLmFzbS5pYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxzbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWRfMT1mdW5jdGlvbigpe3JldHVybihzbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWRfMT1SLmFzbS5qYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxjbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWRfMj1mdW5jdGlvbigpe3JldHVybihjbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWRfMj1SLmFzbS5rYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxhbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb01lc2hfMj1mdW5jdGlvbigpe3JldHVybihhbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9EZWNvZGVCdWZmZXJUb01lc2hfMj1SLmFzbS5sYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxmbD1SLl9lbXNjcmlwdGVuX2JpbmRfRGVjb2Rlcl9fX2Rlc3Ryb3lfX18wPWZ1bmN0aW9uKCl7cmV0dXJuKGZsPVIuX2Vtc2NyaXB0ZW5fYmluZF9EZWNvZGVyX19fZGVzdHJveV9fXzA9Ui5hc20ubWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sdWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX0lOVkFMSURfVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKHVsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9JTlZBTElEX1RSQU5TRk9STT1SLmFzbS5uYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxsbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fQXR0cmlidXRlVHJhbnNmb3JtVHlwZV9BVFRSSUJVVEVfTk9fVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKGxsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9OT19UUkFOU0ZPUk09Ui5hc20ub2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0scGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX1FVQU5USVpBVElPTl9UUkFOU0ZPUk09ZnVuY3Rpb24oKXtyZXR1cm4ocGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX1FVQU5USVpBVElPTl9UUkFOU0ZPUk09Ui5hc20ucGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0F0dHJpYnV0ZVRyYW5zZm9ybVR5cGVfQVRUUklCVVRFX09DVEFIRURST05fVFJBTlNGT1JNPWZ1bmN0aW9uKCl7cmV0dXJuKGRsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19BdHRyaWJ1dGVUcmFuc2Zvcm1UeXBlX0FUVFJJQlVURV9PQ1RBSEVEUk9OX1RSQU5TRk9STT1SLmFzbS5xYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxlcz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9JTlZBTElEPWZ1bmN0aW9uKCl7cmV0dXJuKGVzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0lOVkFMSUQ9Ui5hc20ucmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sbWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfUE9TSVRJT049ZnVuY3Rpb24oKXtyZXR1cm4obWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfUE9TSVRJT049Ui5hc20uc2IpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0saGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfTk9STUFMPWZ1bmN0aW9uKCl7cmV0dXJuKGhsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX05PUk1BTD1SLmFzbS50YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxCcz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9DT0xPUj1mdW5jdGlvbigpe3JldHVybihCcz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9DT0xPUj1SLmFzbS51YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxrYz1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fR2VvbWV0cnlBdHRyaWJ1dGVfVHlwZV9URVhfQ09PUkQ9ZnVuY3Rpb24oKXtyZXR1cm4oa2M9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfVEVYX0NPT1JEPVIuYXNtLnZiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LF9sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19HZW9tZXRyeUF0dHJpYnV0ZV9UeXBlX0dFTkVSSUM9ZnVuY3Rpb24oKXtyZXR1cm4oX2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0dlb21ldHJ5QXR0cmlidXRlX1R5cGVfR0VORVJJQz1SLmFzbS53YikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxlZj1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRW5jb2RlZEdlb21ldHJ5VHlwZV9JTlZBTElEX0dFT01FVFJZX1RZUEU9ZnVuY3Rpb24oKXtyZXR1cm4oZWY9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0VuY29kZWRHZW9tZXRyeVR5cGVfSU5WQUxJRF9HRU9NRVRSWV9UWVBFPVIuYXNtLnhiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHlsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1BPSU5UX0NMT1VEPWZ1bmN0aW9uKCl7cmV0dXJuKHlsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1BPSU5UX0NMT1VEPVIuYXNtLnliKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGdsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19FbmNvZGVkR2VvbWV0cnlUeXBlX1RSSUFOR1VMQVJfTUVTSD1mdW5jdGlvbigpe3JldHVybihnbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRW5jb2RlZEdlb21ldHJ5VHlwZV9UUklBTkdVTEFSX01FU0g9Ui5hc20uemIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sQWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVkFMSUQ9ZnVuY3Rpb24oKXtyZXR1cm4oQWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVkFMSUQ9Ui5hc20uQWIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sYmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDg9ZnVuY3Rpb24oKXtyZXR1cm4oYmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDg9Ui5hc20uQmIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sd2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ4PWZ1bmN0aW9uKCl7cmV0dXJuKHdsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UOD1SLmFzbS5DYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxUbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMTY9ZnVuY3Rpb24oKXtyZXR1cm4oVGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDE2PVIuYXNtLkRiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE9sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UMTY9ZnVuY3Rpb24oKXtyZXR1cm4oT2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQxNj1SLmFzbS5FYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxFbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UMzI9ZnVuY3Rpb24oKXtyZXR1cm4oRWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDMyPVIuYXNtLkZiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LG5mPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UMzI9ZnVuY3Rpb24oKXtyZXR1cm4obmY9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQzMj1SLmFzbS5HYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxSbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfSU5UNjQ9ZnVuY3Rpb24oKXtyZXR1cm4oUmw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX0lOVDY0PVIuYXNtLkhiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFNsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19EYXRhVHlwZV9EVF9VSU5UNjQ9ZnVuY3Rpb24oKXtyZXR1cm4oU2w9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1VJTlQ2ND1SLmFzbS5JYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxDbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQzMj1mdW5jdGlvbigpe3JldHVybihDbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQzMj1SLmFzbS5KYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSx4bD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQ2ND1mdW5jdGlvbigpe3JldHVybih4bD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfRkxPQVQ2ND1SLmFzbS5LYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxQbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfQk9PTD1mdW5jdGlvbigpe3JldHVybihQbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfQk9PTD1SLmFzbS5MYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxNbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fRGF0YVR5cGVfRFRfVFlQRVNfQ09VTlQ9ZnVuY3Rpb24oKXtyZXR1cm4oTWw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX0RhdGFUeXBlX0RUX1RZUEVTX0NPVU5UPVIuYXNtLk1iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LE5sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX09LPWZ1bmN0aW9uKCl7cmV0dXJuKE5sPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX09LPVIuYXNtLk5iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LFVzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0RSQUNPX0VSUk9SPWZ1bmN0aW9uKCl7cmV0dXJuKFVzPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0RSQUNPX0VSUk9SPVIuYXNtLk9iKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LElsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lPX0VSUk9SPWZ1bmN0aW9uKCl7cmV0dXJuKElsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lPX0VSUk9SPVIuYXNtLlBiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LHZsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lOVkFMSURfUEFSQU1FVEVSPWZ1bmN0aW9uKCl7cmV0dXJuKHZsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX0lOVkFMSURfUEFSQU1FVEVSPVIuYXNtLlFiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LExsPVIuX2Vtc2NyaXB0ZW5fZW51bV9kcmFjb19TdGF0dXNDb2RlX1VOU1VQUE9SVEVEX1ZFUlNJT049ZnVuY3Rpb24oKXtyZXR1cm4oTGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfVU5TVVBQT1JURURfVkVSU0lPTj1SLmFzbS5SYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxEbD1SLl9lbXNjcmlwdGVuX2VudW1fZHJhY29fU3RhdHVzQ29kZV9VTktOT1dOX1ZFUlNJT049ZnVuY3Rpb24oKXtyZXR1cm4oRGw9Ui5fZW1zY3JpcHRlbl9lbnVtX2RyYWNvX1N0YXR1c0NvZGVfVU5LTk9XTl9WRVJTSU9OPVIuYXNtLlNiKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O1IuX21hbGxvYz1mdW5jdGlvbigpe3JldHVybihSLl9tYWxsb2M9Ui5hc20uVGIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sUi5fZnJlZT1mdW5jdGlvbigpe3JldHVybihSLl9mcmVlPVIuYXNtLlViKS5hcHBseShudWxsLGFyZ3VtZW50cyl9O3ZhciBGbD1mdW5jdGlvbigpe3JldHVybihGbD1SLmFzbS5WYikuYXBwbHkobnVsbCxhcmd1bWVudHMpfTtSLl9fX3N0YXJ0X2VtX2pzPTE1ODU2LFIuX19fc3RvcF9lbV9qcz0xNTk1NDt2YXIgb2Y7aWYoZG49ZnVuY3Rpb24geigpe29mfHxwKCksb2Z8fChkbj16KX0sUi5wcmVJbml0KWZvcih0eXBlb2YgUi5wcmVJbml0PT0iZnVuY3Rpb24iJiYoUi5wcmVJbml0PVtSLnByZUluaXRdKTswPFIucHJlSW5pdC5sZW5ndGg7KVIucHJlSW5pdC5wb3AoKSgpO3AoKSxkLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxkLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1kLGQucHJvdG90eXBlLl9fY2xhc3NfXz1kLGQuX19jYWNoZV9fPXt9LFIuV3JhcHBlck9iamVjdD1kLFIuZ2V0Q2FjaGU9bSxSLndyYXBQb2ludGVyPV8sUi5jYXN0T2JqZWN0PWZ1bmN0aW9uKHosVyl7cmV0dXJuIF8oei5wdHIsVyl9LFIuTlVMTD1fKDApLFIuZGVzdHJveT1mdW5jdGlvbih6KXtpZighei5fX2Rlc3Ryb3lfXyl0aHJvdyJFcnJvcjogQ2Fubm90IGRlc3Ryb3kgb2JqZWN0LiAoRGlkIHlvdSBjcmVhdGUgaXQgeW91cnNlbGY/KSI7ei5fX2Rlc3Ryb3lfXygpLGRlbGV0ZSBtKHouX19jbGFzc19fKVt6LnB0cl19LFIuY29tcGFyZT1mdW5jdGlvbih6LFcpe3JldHVybiB6LnB0cj09PVcucHRyfSxSLmdldFBvaW50ZXI9ZnVuY3Rpb24oeil7cmV0dXJuIHoucHRyfSxSLmdldENsYXNzPWZ1bmN0aW9uKHope3JldHVybiB6Ll9fY2xhc3NfX307dmFyIENlPXtidWZmZXI6MCxzaXplOjAscG9zOjAsdGVtcHM6W10sbmVlZGVkOjAscHJlcGFyZTpmdW5jdGlvbigpe2lmKENlLm5lZWRlZCl7Zm9yKHZhciB6PTA7ejxDZS50ZW1wcy5sZW5ndGg7eisrKVIuX2ZyZWUoQ2UudGVtcHNbel0pO0NlLnRlbXBzLmxlbmd0aD0wLFIuX2ZyZWUoQ2UuYnVmZmVyKSxDZS5idWZmZXI9MCxDZS5zaXplKz1DZS5uZWVkZWQsQ2UubmVlZGVkPTB9Q2UuYnVmZmVyfHwoQ2Uuc2l6ZSs9MTI4LENlLmJ1ZmZlcj1SLl9tYWxsb2MoQ2Uuc2l6ZSksQ2UuYnVmZmVyfHxzKHZvaWQgMCkpLENlLnBvcz0wfSxhbGxvYzpmdW5jdGlvbih6LFcpe3JldHVybiBDZS5idWZmZXJ8fHModm9pZCAwKSx6PXoubGVuZ3RoKlcuQllURVNfUEVSX0VMRU1FTlQsej16KzcmLTgsQ2UucG9zK3o+PUNlLnNpemU/KDA8enx8cyh2b2lkIDApLENlLm5lZWRlZCs9eixXPVIuX21hbGxvYyh6KSxDZS50ZW1wcy5wdXNoKFcpKTooVz1DZS5idWZmZXIrQ2UucG9zLENlLnBvcys9eiksV30sY29weTpmdW5jdGlvbih6LFcsZXQpe3N3aXRjaChldD4+Pj0wLFcuQllURVNfUEVSX0VMRU1FTlQpe2Nhc2UgMjpldD4+Pj0xO2JyZWFrO2Nhc2UgNDpldD4+Pj0yO2JyZWFrO2Nhc2UgODpldD4+Pj0zfWZvcih2YXIgTXQ9MDtNdDx6Lmxlbmd0aDtNdCsrKVdbZXQrTXRdPXpbTXRdfX07cmV0dXJuIHcucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLHcucHJvdG90eXBlLmNvbnN0cnVjdG9yPXcsdy5wcm90b3R5cGUuX19jbGFzc19fPXcsdy5fX2NhY2hlX189e30sUi5Wb2lkUHRyPXcsdy5wcm90b3R5cGUuX19kZXN0cm95X189dy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtaZSh0aGlzLnB0cil9LE8ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLE8ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU8sTy5wcm90b3R5cGUuX19jbGFzc19fPU8sTy5fX2NhY2hlX189e30sUi5EZWNvZGVyQnVmZmVyPU8sTy5wcm90b3R5cGUuSW5pdD1PLnByb3RvdHlwZS5Jbml0PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO0NlLnByZXBhcmUoKSx0eXBlb2Ygej09Im9iamVjdCImJih6PWIoeikpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLEtlKGV0LHosVyl9LE8ucHJvdG90eXBlLl9fZGVzdHJveV9fPU8ucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7aG4odGhpcy5wdHIpfSxFLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxFLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1FLEUucHJvdG90eXBlLl9fY2xhc3NfXz1FLEUuX19jYWNoZV9fPXt9LFIuQXR0cmlidXRlVHJhbnNmb3JtRGF0YT1FLEUucHJvdG90eXBlLnRyYW5zZm9ybV90eXBlPUUucHJvdG90eXBlLnRyYW5zZm9ybV90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHFuKHRoaXMucHRyKX0sRS5wcm90b3R5cGUuX19kZXN0cm95X189RS5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtLbih0aGlzLnB0cil9LFQucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLFQucHJvdG90eXBlLmNvbnN0cnVjdG9yPVQsVC5wcm90b3R5cGUuX19jbGFzc19fPVQsVC5fX2NhY2hlX189e30sUi5HZW9tZXRyeUF0dHJpYnV0ZT1ULFQucHJvdG90eXBlLl9fZGVzdHJveV9fPVQucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7emUodGhpcy5wdHIpfSxDLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxDLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1DLEMucHJvdG90eXBlLl9fY2xhc3NfXz1DLEMuX19jYWNoZV9fPXt9LFIuUG9pbnRBdHRyaWJ1dGU9QyxDLnByb3RvdHlwZS5zaXplPUMucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4gRG4odGhpcy5wdHIpfSxDLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVUcmFuc2Zvcm1EYXRhPUMucHJvdG90eXBlLkdldEF0dHJpYnV0ZVRyYW5zZm9ybURhdGE9ZnVuY3Rpb24oKXtyZXR1cm4gXyhXbih0aGlzLnB0ciksRSl9LEMucHJvdG90eXBlLmF0dHJpYnV0ZV90eXBlPUMucHJvdG90eXBlLmF0dHJpYnV0ZV90eXBlPWZ1bmN0aW9uKCl7cmV0dXJuIHpvKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuZGF0YV90eXBlPUMucHJvdG90eXBlLmRhdGFfdHlwZT1mdW5jdGlvbigpe3JldHVybiBybih0aGlzLnB0cil9LEMucHJvdG90eXBlLm51bV9jb21wb25lbnRzPUMucHJvdG90eXBlLm51bV9jb21wb25lbnRzPWZ1bmN0aW9uKCl7cmV0dXJuIFJuKHRoaXMucHRyKX0sQy5wcm90b3R5cGUubm9ybWFsaXplZD1DLnByb3RvdHlwZS5ub3JtYWxpemVkPWZ1bmN0aW9uKCl7cmV0dXJuISFhcih0aGlzLnB0cil9LEMucHJvdG90eXBlLmJ5dGVfc3RyaWRlPUMucHJvdG90eXBlLmJ5dGVfc3RyaWRlPWZ1bmN0aW9uKCl7cmV0dXJuIFFuKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuYnl0ZV9vZmZzZXQ9Qy5wcm90b3R5cGUuYnl0ZV9vZmZzZXQ9ZnVuY3Rpb24oKXtyZXR1cm4gam8odGhpcy5wdHIpfSxDLnByb3RvdHlwZS51bmlxdWVfaWQ9Qy5wcm90b3R5cGUudW5pcXVlX2lkPWZ1bmN0aW9uKCl7cmV0dXJuIE5yKHRoaXMucHRyKX0sQy5wcm90b3R5cGUuX19kZXN0cm95X189Qy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtOcyh0aGlzLnB0cil9LE4ucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLE4ucHJvdG90eXBlLmNvbnN0cnVjdG9yPU4sTi5wcm90b3R5cGUuX19jbGFzc19fPU4sTi5fX2NhY2hlX189e30sUi5BdHRyaWJ1dGVRdWFudGl6YXRpb25UcmFuc2Zvcm09TixOLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1OLnByb3RvdHlwZS5Jbml0RnJvbUF0dHJpYnV0ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksISFZaShXLHopfSxOLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1OLnByb3RvdHlwZS5xdWFudGl6YXRpb25fYml0cz1mdW5jdGlvbigpe3JldHVybiBJcih0aGlzLnB0cil9LE4ucHJvdG90eXBlLm1pbl92YWx1ZT1OLnByb3RvdHlwZS5taW5fdmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLCRpKFcseil9LE4ucHJvdG90eXBlLnJhbmdlPU4ucHJvdG90eXBlLnJhbmdlPWZ1bmN0aW9uKCl7cmV0dXJuIHZzKHRoaXMucHRyKX0sTi5wcm90b3R5cGUuX19kZXN0cm95X189Ti5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtiaSh0aGlzLnB0cil9LEkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLEkucHJvdG90eXBlLmNvbnN0cnVjdG9yPUksSS5wcm90b3R5cGUuX19jbGFzc19fPUksSS5fX2NhY2hlX189e30sUi5BdHRyaWJ1dGVPY3RhaGVkcm9uVHJhbnNmb3JtPUksSS5wcm90b3R5cGUuSW5pdEZyb21BdHRyaWJ1dGU9SS5wcm90b3R5cGUuSW5pdEZyb21BdHRyaWJ1dGU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLCEhcG8oVyx6KX0sSS5wcm90b3R5cGUucXVhbnRpemF0aW9uX2JpdHM9SS5wcm90b3R5cGUucXVhbnRpemF0aW9uX2JpdHM9ZnVuY3Rpb24oKXtyZXR1cm4gdnIodGhpcy5wdHIpfSxJLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1JLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe01jKHRoaXMucHRyKX0sRC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksRC5wcm90b3R5cGUuY29uc3RydWN0b3I9RCxELnByb3RvdHlwZS5fX2NsYXNzX189RCxELl9fY2FjaGVfXz17fSxSLlBvaW50Q2xvdWQ9RCxELnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1ELnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBGbih0aGlzLnB0cil9LEQucHJvdG90eXBlLm51bV9wb2ludHM9RC5wcm90b3R5cGUubnVtX3BvaW50cz1mdW5jdGlvbigpe3JldHVybiB3aSh0aGlzLnB0cil9LEQucHJvdG90eXBlLl9fZGVzdHJveV9fPUQucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7RGUodGhpcy5wdHIpfSx2LnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSx2LnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj12LHYucHJvdG90eXBlLl9fY2xhc3NfXz12LHYuX19jYWNoZV9fPXt9LFIuTWVzaD12LHYucHJvdG90eXBlLm51bV9mYWNlcz12LnByb3RvdHlwZS5udW1fZmFjZXM9ZnVuY3Rpb24oKXtyZXR1cm4gQXUodGhpcy5wdHIpfSx2LnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz12LnByb3RvdHlwZS5udW1fYXR0cmlidXRlcz1mdW5jdGlvbigpe3JldHVybiBidSh0aGlzLnB0cil9LHYucHJvdG90eXBlLm51bV9wb2ludHM9di5wcm90b3R5cGUubnVtX3BvaW50cz1mdW5jdGlvbigpe3JldHVybiB3dSh0aGlzLnB0cil9LHYucHJvdG90eXBlLl9fZGVzdHJveV9fPXYucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7SWModGhpcy5wdHIpfSxMLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxMLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1MLEwucHJvdG90eXBlLl9fY2xhc3NfXz1MLEwuX19jYWNoZV9fPXt9LFIuTWV0YWRhdGE9TCxMLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1MLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe3FhKHRoaXMucHRyKX0sVS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksVS5wcm90b3R5cGUuY29uc3RydWN0b3I9VSxVLnByb3RvdHlwZS5fX2NsYXNzX189VSxVLl9fY2FjaGVfXz17fSxSLlN0YXR1cz1VLFUucHJvdG90eXBlLmNvZGU9VS5wcm90b3R5cGUuY29kZT1mdW5jdGlvbigpe3JldHVybiBUdSh0aGlzLnB0cil9LFUucHJvdG90eXBlLm9rPVUucHJvdG90eXBlLm9rPWZ1bmN0aW9uKCl7cmV0dXJuISFLYSh0aGlzLnB0cil9LFUucHJvdG90eXBlLmVycm9yX21zZz1VLnByb3RvdHlwZS5lcnJvcl9tc2c9ZnVuY3Rpb24oKXtyZXR1cm4gcihaaSh0aGlzLnB0cikpfSxVLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1VLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe091KHRoaXMucHRyKX0sQS5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksQS5wcm90b3R5cGUuY29uc3RydWN0b3I9QSxBLnByb3RvdHlwZS5fX2NsYXNzX189QSxBLl9fY2FjaGVfXz17fSxSLkRyYWNvRmxvYXQzMkFycmF5PUEsQS5wcm90b3R5cGUuR2V0VmFsdWU9QS5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFJ1KFcseil9LEEucHJvdG90eXBlLnNpemU9QS5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBRaSh0aGlzLnB0cil9LEEucHJvdG90eXBlLl9fZGVzdHJveV9fPUEucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7SmkodGhpcy5wdHIpfSxTLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxTLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1TLFMucHJvdG90eXBlLl9fY2xhc3NfXz1TLFMuX19jYWNoZV9fPXt9LFIuRHJhY29JbnQ4QXJyYXk9UyxTLnByb3RvdHlwZS5HZXRWYWx1ZT1TLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksU3UoVyx6KX0sUy5wcm90b3R5cGUuc2l6ZT1TLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIEN1KHRoaXMucHRyKX0sUy5wcm90b3R5cGUuX19kZXN0cm95X189Uy5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtMcih0aGlzLnB0cil9LFAucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLFAucHJvdG90eXBlLmNvbnN0cnVjdG9yPVAsUC5wcm90b3R5cGUuX19jbGFzc19fPVAsUC5fX2NhY2hlX189e30sUi5EcmFjb1VJbnQ4QXJyYXk9UCxQLnByb3RvdHlwZS5HZXRWYWx1ZT1QLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksWGEoVyx6KX0sUC5wcm90b3R5cGUuc2l6ZT1QLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIERjKHRoaXMucHRyKX0sUC5wcm90b3R5cGUuX19kZXN0cm95X189UC5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXt4dSh0aGlzLnB0cil9LEIucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLEIucHJvdG90eXBlLmNvbnN0cnVjdG9yPUIsQi5wcm90b3R5cGUuX19jbGFzc19fPUIsQi5fX2NhY2hlX189e30sUi5EcmFjb0ludDE2QXJyYXk9QixCLnByb3RvdHlwZS5HZXRWYWx1ZT1CLnByb3RvdHlwZS5HZXRWYWx1ZT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksUHUoVyx6KX0sQi5wcm90b3R5cGUuc2l6ZT1CLnByb3RvdHlwZS5zaXplPWZ1bmN0aW9uKCl7cmV0dXJuIE11KHRoaXMucHRyKX0sQi5wcm90b3R5cGUuX19kZXN0cm95X189Qi5wcm90b3R5cGUuX19kZXN0cm95X189ZnVuY3Rpb24oKXtOdSh0aGlzLnB0cil9LGoucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoZC5wcm90b3R5cGUpLGoucHJvdG90eXBlLmNvbnN0cnVjdG9yPWosai5wcm90b3R5cGUuX19jbGFzc19fPWosai5fX2NhY2hlX189e30sUi5EcmFjb1VJbnQxNkFycmF5PWosai5wcm90b3R5cGUuR2V0VmFsdWU9ai5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLHZ1KFcseil9LGoucHJvdG90eXBlLnNpemU9ai5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBMdSh0aGlzLnB0cil9LGoucHJvdG90eXBlLl9fZGVzdHJveV9fPWoucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7WWEodGhpcy5wdHIpfSxILnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxILnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1ILEgucHJvdG90eXBlLl9fY2xhc3NfXz1ILEguX19jYWNoZV9fPXt9LFIuRHJhY29JbnQzMkFycmF5PUgsSC5wcm90b3R5cGUuR2V0VmFsdWU9SC5wcm90b3R5cGUuR2V0VmFsdWU9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLEZ1KFcseil9LEgucHJvdG90eXBlLnNpemU9SC5wcm90b3R5cGUuc2l6ZT1mdW5jdGlvbigpe3JldHVybiBCdSh0aGlzLnB0cil9LEgucHJvdG90eXBlLl9fZGVzdHJveV9fPUgucHJvdG90eXBlLl9fZGVzdHJveV9fPWZ1bmN0aW9uKCl7VXUodGhpcy5wdHIpfSxrLnByb3RvdHlwZT1PYmplY3QuY3JlYXRlKGQucHJvdG90eXBlKSxrLnByb3RvdHlwZS5jb25zdHJ1Y3Rvcj1rLGsucHJvdG90eXBlLl9fY2xhc3NfXz1rLGsuX19jYWNoZV9fPXt9LFIuRHJhY29VSW50MzJBcnJheT1rLGsucHJvdG90eXBlLkdldFZhbHVlPWsucHJvdG90eXBlLkdldFZhbHVlPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxWdShXLHopfSxrLnByb3RvdHlwZS5zaXplPWsucHJvdG90eXBlLnNpemU9ZnVuY3Rpb24oKXtyZXR1cm4ga3UodGhpcy5wdHIpfSxrLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1rLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe0xzKHRoaXMucHRyKX0sSy5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksSy5wcm90b3R5cGUuY29uc3RydWN0b3I9SyxLLnByb3RvdHlwZS5fX2NsYXNzX189SyxLLl9fY2FjaGVfXz17fSxSLk1ldGFkYXRhUXVlcmllcj1LLEsucHJvdG90eXBlLkhhc0VudHJ5PUsucHJvdG90eXBlLkhhc0VudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBDZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSwhIXp1KGV0LHosVyl9LEsucHJvdG90eXBlLkdldEludEVudHJ5PUsucHJvdG90eXBlLkdldEludEVudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBDZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSxmcihldCx6LFcpfSxLLnByb3RvdHlwZS5HZXRJbnRFbnRyeUFycmF5PUsucHJvdG90eXBlLkdldEludEVudHJ5QXJyYXk9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7Q2UucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVyksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCRhKE10LHosVyxldCl9LEsucHJvdG90eXBlLkdldERvdWJsZUVudHJ5PUsucHJvdG90eXBlLkdldERvdWJsZUVudHJ5PWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiBDZS5wcmVwYXJlKCkseiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVz1XJiZ0eXBlb2YgVz09Im9iamVjdCI/Vy5wdHI6ZyhXKSxqdShldCx6LFcpfSxLLnByb3RvdHlwZS5HZXRTdHJpbmdFbnRyeT1LLnByb3RvdHlwZS5HZXRTdHJpbmdFbnRyeT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4gQ2UucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVykscihIdShldCx6LFcpKX0sSy5wcm90b3R5cGUuTnVtRW50cmllcz1LLnByb3RvdHlwZS5OdW1FbnRyaWVzPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxxdShXLHopfSxLLnByb3RvdHlwZS5HZXRFbnRyeU5hbWU9Sy5wcm90b3R5cGUuR2V0RW50cnlOYW1lPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxyKEhvKGV0LHosVykpfSxLLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1LLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe1phKHRoaXMucHRyKX0sWC5wcm90b3R5cGU9T2JqZWN0LmNyZWF0ZShkLnByb3RvdHlwZSksWC5wcm90b3R5cGUuY29uc3RydWN0b3I9WCxYLnByb3RvdHlwZS5fX2NsYXNzX189WCxYLl9fY2FjaGVfXz17fSxSLkRlY29kZXI9WCxYLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvUG9pbnRDbG91ZD1YLnByb3RvdHlwZS5EZWNvZGVBcnJheVRvUG9pbnRDbG91ZD1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4gQ2UucHJlcGFyZSgpLHR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9Yih6KSksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLF8oRHMoTXQseixXLGV0KSxVKX0sWC5wcm90b3R5cGUuRGVjb2RlQXJyYXlUb01lc2g9WC5wcm90b3R5cGUuRGVjb2RlQXJyYXlUb01lc2g9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIENlLnByZXBhcmUoKSx0eXBlb2Ygej09Im9iamVjdCImJih6PWIoeikpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSxfKEt1KE10LHosVyxldCksVSl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUlkPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxCYyhldCx6LFcpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TmFtZT1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJZEJ5TmFtZT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4gQ2UucHJlcGFyZSgpLHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFc9VyYmdHlwZW9mIFc9PSJvYmplY3QiP1cucHRyOmcoVyksV3UoZXQseixXKX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWRCeU1ldGFkYXRhRW50cnk9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSWRCeU1ldGFkYXRhRW50cnk9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIENlLnByZXBhcmUoKSx6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXPVcmJnR5cGVvZiBXPT0ib2JqZWN0Ij9XLnB0cjpnKFcpLGV0PWV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiP2V0LnB0cjpnKGV0KSxKYShNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGU9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlPWZ1bmN0aW9uKHosVyl7dmFyIGV0PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxfKHRmKGV0LHosVyksQyl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUJ5VW5pcXVlSWQ9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZD1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhYdShldCx6LFcpLEMpfSxYLnByb3RvdHlwZS5HZXRNZXRhZGF0YT1YLnByb3RvdHlwZS5HZXRNZXRhZGF0YT1mdW5jdGlvbih6KXt2YXIgVz10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksXyhZdShXLHopLEwpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVNZXRhZGF0YT1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVNZXRhZGF0YT1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhVYyhldCx6LFcpLEwpfSxYLnByb3RvdHlwZS5HZXRGYWNlRnJvbU1lc2g9WC5wcm90b3R5cGUuR2V0RmFjZUZyb21NZXNoPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFBbyhNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRUcmlhbmdsZVN0cmlwc0Zyb21NZXNoPVgucHJvdG90eXBlLkdldFRyaWFuZ2xlU3RyaXBzRnJvbU1lc2g9ZnVuY3Rpb24oeixXKXt2YXIgZXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLFZjKGV0LHosVyl9LFgucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQxNkFycmF5PVgucHJvdG90eXBlLkdldFRyaWFuZ2xlc1VJbnQxNkFycmF5PWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISEkdShNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRUcmlhbmdsZXNVSW50MzJBcnJheT1YLnByb3RvdHlwZS5HZXRUcmlhbmdsZXNVSW50MzJBcnJheT1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhWnUoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXQ9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlRmxvYXQ9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIVF1KE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISF1cihNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnRGb3JBbGxQb2ludHM9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFKdShNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIXRsKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQ4Rm9yQWxsUG9pbnRzPWZ1bmN0aW9uKHosVyxldCl7dmFyIE10PXRoaXMucHRyO3JldHVybiB6JiZ0eXBlb2Ygej09Im9iamVjdCImJih6PXoucHRyKSxXJiZ0eXBlb2YgVz09Im9iamVjdCImJihXPVcucHRyKSxldCYmdHlwZW9mIGV0PT0ib2JqZWN0IiYmKGV0PWV0LnB0ciksISFlbChNdCx6LFcsZXQpfSxYLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cz1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhRnMoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzPVgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQxNkZvckFsbFBvaW50cz1mdW5jdGlvbih6LFcsZXQpe3ZhciBNdD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksZXQmJnR5cGVvZiBldD09Im9iamVjdCImJihldD1ldC5wdHIpLCEhbmwoTXQseixXLGV0KX0sWC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHM9WC5wcm90b3R5cGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIVRpKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVVSW50MzJGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0KXt2YXIgTXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSwhIW9sKE10LHosVyxldCl9LFgucHJvdG90eXBlLkdldEF0dHJpYnV0ZURhdGFBcnJheUZvckFsbFBvaW50cz1YLnByb3RvdHlwZS5HZXRBdHRyaWJ1dGVEYXRhQXJyYXlGb3JBbGxQb2ludHM9ZnVuY3Rpb24oeixXLGV0LE10LGxlKXt2YXIgd2U9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLGV0JiZ0eXBlb2YgZXQ9PSJvYmplY3QiJiYoZXQ9ZXQucHRyKSxNdCYmdHlwZW9mIE10PT0ib2JqZWN0IiYmKE10PU10LnB0ciksbGUmJnR5cGVvZiBsZT09Im9iamVjdCImJihsZT1sZS5wdHIpLCEhcmwod2UseixXLGV0LE10LGxlKX0sWC5wcm90b3R5cGUuU2tpcEF0dHJpYnV0ZVRyYW5zZm9ybT1YLnByb3RvdHlwZS5Ta2lwQXR0cmlidXRlVHJhbnNmb3JtPWZ1bmN0aW9uKHope3ZhciBXPXRoaXMucHRyO3omJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLGlsKFcseil9LFgucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZD1YLnByb3RvdHlwZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlX0RlcHJlY2F0ZWQ9ZnVuY3Rpb24oeil7dmFyIFc9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLHNsKFcseil9LFgucHJvdG90eXBlLkRlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZD1YLnByb3RvdHlwZS5EZWNvZGVCdWZmZXJUb1BvaW50Q2xvdWQ9ZnVuY3Rpb24oeixXKXt2YXIgZXQ9dGhpcy5wdHI7cmV0dXJuIHomJnR5cGVvZiB6PT0ib2JqZWN0IiYmKHo9ei5wdHIpLFcmJnR5cGVvZiBXPT0ib2JqZWN0IiYmKFc9Vy5wdHIpLF8oY2woZXQseixXKSxVKX0sWC5wcm90b3R5cGUuRGVjb2RlQnVmZmVyVG9NZXNoPVgucHJvdG90eXBlLkRlY29kZUJ1ZmZlclRvTWVzaD1mdW5jdGlvbih6LFcpe3ZhciBldD10aGlzLnB0cjtyZXR1cm4geiYmdHlwZW9mIHo9PSJvYmplY3QiJiYoej16LnB0ciksVyYmdHlwZW9mIFc9PSJvYmplY3QiJiYoVz1XLnB0ciksXyhhbChldCx6LFcpLFUpfSxYLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1YLnByb3RvdHlwZS5fX2Rlc3Ryb3lfXz1mdW5jdGlvbigpe2ZsKHRoaXMucHRyKX0sZnVuY3Rpb24oKXtmdW5jdGlvbiB6KCl7Ui5BVFRSSUJVVEVfSU5WQUxJRF9UUkFOU0ZPUk09dWwoKSxSLkFUVFJJQlVURV9OT19UUkFOU0ZPUk09bGwoKSxSLkFUVFJJQlVURV9RVUFOVElaQVRJT05fVFJBTlNGT1JNPXBsKCksUi5BVFRSSUJVVEVfT0NUQUhFRFJPTl9UUkFOU0ZPUk09ZGwoKSxSLklOVkFMSUQ9ZXMoKSxSLlBPU0lUSU9OPW1sKCksUi5OT1JNQUw9aGwoKSxSLkNPTE9SPUJzKCksUi5URVhfQ09PUkQ9a2MoKSxSLkdFTkVSSUM9X2woKSxSLklOVkFMSURfR0VPTUVUUllfVFlQRT1lZigpLFIuUE9JTlRfQ0xPVUQ9eWwoKSxSLlRSSUFOR1VMQVJfTUVTSD1nbCgpLFIuRFRfSU5WQUxJRD1BbCgpLFIuRFRfSU5UOD1ibCgpLFIuRFRfVUlOVDg9d2woKSxSLkRUX0lOVDE2PVRsKCksUi5EVF9VSU5UMTY9T2woKSxSLkRUX0lOVDMyPUVsKCksUi5EVF9VSU5UMzI9bmYoKSxSLkRUX0lOVDY0PVJsKCksUi5EVF9VSU5UNjQ9U2woKSxSLkRUX0ZMT0FUMzI9Q2woKSxSLkRUX0ZMT0FUNjQ9eGwoKSxSLkRUX0JPT0w9UGwoKSxSLkRUX1RZUEVTX0NPVU5UPU1sKCksUi5PSz1ObCgpLFIuRFJBQ09fRVJST1I9VXMoKSxSLklPX0VSUk9SPUlsKCksUi5JTlZBTElEX1BBUkFNRVRFUj12bCgpLFIuVU5TVVBQT1JURURfVkVSU0lPTj1MbCgpLFIuVU5LTk9XTl9WRVJTSU9OPURsKCl9cmU/eigpOnBuLnVuc2hpZnQoeil9KCksdHlwZW9mIFIub25Nb2R1bGVQYXJzZWQ9PSJmdW5jdGlvbiImJlIub25Nb2R1bGVQYXJzZWQoKSxSLkRlY29kZXIucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGU9ZnVuY3Rpb24oeil7aWYoei5fX2NsYXNzX18mJnouX19jbGFzc19fPT09Ui5EZWNvZGVyQnVmZmVyKXJldHVybiBSLkRlY29kZXIucHJvdG90eXBlLkdldEVuY29kZWRHZW9tZXRyeVR5cGVfRGVwcmVjYXRlZCh6KTtpZig4PnouYnl0ZUxlbmd0aClyZXR1cm4gUi5JTlZBTElEX0dFT01FVFJZX1RZUEU7c3dpdGNoKHpbN10pe2Nhc2UgMDpyZXR1cm4gUi5QT0lOVF9DTE9VRDtjYXNlIDE6cmV0dXJuIFIuVFJJQU5HVUxBUl9NRVNIO2RlZmF1bHQ6cmV0dXJuIFIuSU5WQUxJRF9HRU9NRVRSWV9UWVBFfX0sZS5yZWFkeX19KCk7dHlwZW9mIHB1PT0ib2JqZWN0IiYmdHlwZW9mIE9nPT0ib2JqZWN0Ij9PZy5leHBvcnRzPVRnOnR5cGVvZiBkZWZpbmU9PSJmdW5jdGlvbiImJmRlZmluZS5hbWQ/ZGVmaW5lKFtdLGZ1bmN0aW9uKCl7cmV0dXJuIFRnfSk6dHlwZW9mIHB1PT0ib2JqZWN0IiYmKHB1LkRyYWNvRGVjb2Rlck1vZHVsZT1UZyl9KTt2YXIgU2c9e307ZGUoU2cse2RlZmF1bHQ6KCk9PkhVfSk7ZnVuY3Rpb24gRlUodCxlKXtsZXQgbj10Lm51bV9wb2ludHMoKSxvPXQubnVtX2ZhY2VzKCkscj1uZXcgTWUuRHJhY29JbnQzMkFycmF5LGk9byozLHM9RHQuY3JlYXRlVHlwZWRBcnJheShuLGkpLGY9MDtmb3IobGV0IHU9MDt1PG87Kyt1KWUuR2V0RmFjZUZyb21NZXNoKHQsdSxyKSxzW2YrMF09ci5HZXRWYWx1ZSgwKSxzW2YrMV09ci5HZXRWYWx1ZSgxKSxzW2YrMl09ci5HZXRWYWx1ZSgyKSxmKz0zO3JldHVybiBNZS5kZXN0cm95KHIpLHt0eXBlZEFycmF5OnMsbnVtYmVyT2ZJbmRpY2VzOml9fWZ1bmN0aW9uIEJVKHQsZSxuLG8scil7bGV0IGkscztvLnF1YW50aXphdGlvbkJpdHM8PTg/KHM9bmV3IE1lLkRyYWNvVUludDhBcnJheSxpPW5ldyBVaW50OEFycmF5KHIpLGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHModCxuLHMpKTpvLnF1YW50aXphdGlvbkJpdHM8PTE2PyhzPW5ldyBNZS5EcmFjb1VJbnQxNkFycmF5LGk9bmV3IFVpbnQxNkFycmF5KHIpLGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzKHQsbixzKSk6KHM9bmV3IE1lLkRyYWNvRmxvYXQzMkFycmF5LGk9bmV3IEZsb2F0MzJBcnJheShyKSxlLkdldEF0dHJpYnV0ZUZsb2F0Rm9yQWxsUG9pbnRzKHQsbixzKSk7Zm9yKGxldCBmPTA7ZjxyOysrZilpW2ZdPXMuR2V0VmFsdWUoZik7cmV0dXJuIE1lLmRlc3Ryb3kocyksaX1mdW5jdGlvbiBVVSh0LGUsbixvKXtsZXQgcixpO3N3aXRjaChuLmRhdGFfdHlwZSgpKXtjYXNlIDE6Y2FzZSAxMTppPW5ldyBNZS5EcmFjb0ludDhBcnJheSxyPW5ldyBJbnQ4QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVJbnQ4Rm9yQWxsUG9pbnRzKHQsbixpKTticmVhaztjYXNlIDI6aT1uZXcgTWUuRHJhY29VSW50OEFycmF5LHI9bmV3IFVpbnQ4QXJyYXkobyksZS5HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50cyh0LG4saSk7YnJlYWs7Y2FzZSAzOmk9bmV3IE1lLkRyYWNvSW50MTZBcnJheSxyPW5ldyBJbnQxNkFycmF5KG8pLGUuR2V0QXR0cmlidXRlSW50MTZGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrO2Nhc2UgNDppPW5ldyBNZS5EcmFjb1VJbnQxNkFycmF5LHI9bmV3IFVpbnQxNkFycmF5KG8pLGUuR2V0QXR0cmlidXRlVUludDE2Rm9yQWxsUG9pbnRzKHQsbixpKTticmVhaztjYXNlIDU6Y2FzZSA3Omk9bmV3IE1lLkRyYWNvSW50MzJBcnJheSxyPW5ldyBJbnQzMkFycmF5KG8pLGUuR2V0QXR0cmlidXRlSW50MzJGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrO2Nhc2UgNjpjYXNlIDg6aT1uZXcgTWUuRHJhY29VSW50MzJBcnJheSxyPW5ldyBVaW50MzJBcnJheShvKSxlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cyh0LG4saSk7YnJlYWs7Y2FzZSA5OmNhc2UgMTA6aT1uZXcgTWUuRHJhY29GbG9hdDMyQXJyYXkscj1uZXcgRmxvYXQzMkFycmF5KG8pLGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHModCxuLGkpO2JyZWFrfWZvcihsZXQgcz0wO3M8bzsrK3MpcltzXT1pLkdldFZhbHVlKHMpO3JldHVybiBNZS5kZXN0cm95KGkpLHJ9ZnVuY3Rpb24gZzIodCxlLG4pe2xldCBvPXQubnVtX3BvaW50cygpLHI9bi5udW1fY29tcG9uZW50cygpLGkscz1uZXcgTWUuQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtO2lmKHMuSW5pdEZyb21BdHRyaWJ1dGUobikpe2xldCBsPW5ldyBBcnJheShyKTtmb3IobGV0IHA9MDtwPHI7KytwKWxbcF09cy5taW5fdmFsdWUocCk7aT17cXVhbnRpemF0aW9uQml0czpzLnF1YW50aXphdGlvbl9iaXRzKCksbWluVmFsdWVzOmwscmFuZ2U6cy5yYW5nZSgpLG9jdEVuY29kZWQ6ITF9fU1lLmRlc3Ryb3kocykscz1uZXcgTWUuQXR0cmlidXRlT2N0YWhlZHJvblRyYW5zZm9ybSxzLkluaXRGcm9tQXR0cmlidXRlKG4pJiYoaT17cXVhbnRpemF0aW9uQml0czpzLnF1YW50aXphdGlvbl9iaXRzKCksb2N0RW5jb2RlZDohMH0pLE1lLmRlc3Ryb3kocyk7bGV0IGY9bypyLHU7aChpKT91PUJVKHQsZSxuLGksZik6dT1VVSh0LGUsbixmKTtsZXQgYz1udC5mcm9tVHlwZWRBcnJheSh1KTtyZXR1cm57YXJyYXk6dSxkYXRhOntjb21wb25lbnRzUGVyQXR0cmlidXRlOnIsY29tcG9uZW50RGF0YXR5cGU6YyxieXRlT2Zmc2V0Om4uYnl0ZV9vZmZzZXQoKSxieXRlU3RyaWRlOm50LmdldFNpemVJbkJ5dGVzKGMpKnIsbm9ybWFsaXplZDpuLm5vcm1hbGl6ZWQoKSxxdWFudGl6YXRpb246aX19fWZ1bmN0aW9uIFZVKHQpe2xldCBlPW5ldyBNZS5EZWNvZGVyO3QuZGVxdWFudGl6ZUluU2hhZGVyJiYoZS5Ta2lwQXR0cmlidXRlVHJhbnNmb3JtKE1lLlBPU0lUSU9OKSxlLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm0oTWUuTk9STUFMKSk7bGV0IG49bmV3IE1lLkRlY29kZXJCdWZmZXI7aWYobi5Jbml0KHQuYnVmZmVyLHQuYnVmZmVyLmxlbmd0aCksZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlKG4pIT09TWUuUE9JTlRfQ0xPVUQpdGhyb3cgbmV3IEFlKCJEcmFjbyBnZW9tZXRyeSB0eXBlIG11c3QgYmUgUE9JTlRfQ0xPVUQuIik7bGV0IHI9bmV3IE1lLlBvaW50Q2xvdWQsaT1lLkRlY29kZUJ1ZmZlclRvUG9pbnRDbG91ZChuLHIpO2lmKCFpLm9rKCl8fHIucHRyPT09MCl0aHJvdyBuZXcgQWUoYEVycm9yIGRlY29kaW5nIGRyYWNvIHBvaW50IGNsb3VkOiAke2kuZXJyb3JfbXNnKCl9YCk7TWUuZGVzdHJveShuKTtsZXQgcz17fSxmPXQucHJvcGVydGllcztmb3IobGV0IHUgaW4gZilpZihmLmhhc093blByb3BlcnR5KHUpKXtsZXQgYztpZih1PT09IlBPU0lUSU9OInx8dT09PSJOT1JNQUwiKXtsZXQgbD1lLkdldEF0dHJpYnV0ZUlkKHIsTWVbdV0pO2M9ZS5HZXRBdHRyaWJ1dGUocixsKX1lbHNle2xldCBsPWZbdV07Yz1lLkdldEF0dHJpYnV0ZUJ5VW5pcXVlSWQocixsKX1zW3VdPWcyKHIsZSxjKX1yZXR1cm4gTWUuZGVzdHJveShyKSxNZS5kZXN0cm95KGUpLHN9ZnVuY3Rpb24ga1UodCl7bGV0IGU9bmV3IE1lLkRlY29kZXIsbj1bIlBPU0lUSU9OIiwiTk9STUFMIiwiQ09MT1IiLCJURVhfQ09PUkQiXTtpZih0LmRlcXVhbnRpemVJblNoYWRlcilmb3IobGV0IHA9MDtwPG4ubGVuZ3RoOysrcCllLlNraXBBdHRyaWJ1dGVUcmFuc2Zvcm0oTWVbbltwXV0pO2xldCBvPXQuYnVmZmVyVmlldyxyPW5ldyBNZS5EZWNvZGVyQnVmZmVyO2lmKHIuSW5pdCh0LmFycmF5LG8uYnl0ZUxlbmd0aCksZS5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlKHIpIT09TWUuVFJJQU5HVUxBUl9NRVNIKXRocm93IG5ldyBBZSgiVW5zdXBwb3J0ZWQgZHJhY28gbWVzaCBnZW9tZXRyeSB0eXBlLiIpO2xldCBzPW5ldyBNZS5NZXNoLGY9ZS5EZWNvZGVCdWZmZXJUb01lc2gocixzKTtpZighZi5vaygpfHxzLnB0cj09PTApdGhyb3cgbmV3IEFlKGBFcnJvciBkZWNvZGluZyBkcmFjbyBtZXNoIGdlb21ldHJ5OiAke2YuZXJyb3JfbXNnKCl9YCk7TWUuZGVzdHJveShyKTtsZXQgdT17fSxjPXQuY29tcHJlc3NlZEF0dHJpYnV0ZXM7Zm9yKGxldCBwIGluIGMpaWYoYy5oYXNPd25Qcm9wZXJ0eShwKSl7bGV0IGQ9Y1twXSxtPWUuR2V0QXR0cmlidXRlQnlVbmlxdWVJZChzLGQpO3VbcF09ZzIocyxlLG0pfWxldCBsPXtpbmRleEFycmF5OkZVKHMsZSksYXR0cmlidXRlRGF0YTp1fTtyZXR1cm4gTWUuZGVzdHJveShzKSxNZS5kZXN0cm95KGUpLGx9YXN5bmMgZnVuY3Rpb24gR1UodCxlKXtyZXR1cm4gaCh0LmJ1ZmZlclZpZXcpP2tVKHQpOlZVKHQpfWFzeW5jIGZ1bmN0aW9uIHpVKHQsZSl7bGV0IG49dC53ZWJBc3NlbWJseUNvbmZpZztyZXR1cm4gaChuKSYmaChuLndhc21CaW5hcnlGaWxlKT9NZT1hd2FpdCgwLFJnLmRlZmF1bHQpKG4pOk1lPWF3YWl0KDAsUmcuZGVmYXVsdCkoKSwhMH1hc3luYyBmdW5jdGlvbiBqVSh0LGUpe2xldCBuPXQud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIGgobik/elUodCxlKTpHVSh0LGUpfXZhciBSZyxNZSxIVSxDZz1aKCgpPT57RmUoKTtmdCgpOyRlKCk7SnIoKTtzbygpO1JnPWRyKEVnKCksMSk7SFU9UWUoalUpfSk7ZnVuY3Rpb24geGcodCxlKXtpZih4Zy5wYXNzVGhyb3VnaERhdGFGb3JUZXN0aW5nKXJldHVybiBlO3kudHlwZU9mLm9iamVjdCgia2V5Iix0KSx5LnR5cGVPZi5vYmplY3QoImRhdGEiLGUpO2xldCBuPXQuYnl0ZUxlbmd0aDtpZihuPT09MHx8biU0IT09MCl0aHJvdyBuZXcgQWUoIlRoZSBsZW5ndGggb2Yga2V5IG11c3QgYmUgZ3JlYXRlciB0aGFuIDAgYW5kIGEgbXVsdGlwbGUgb2YgNC4iKTtsZXQgbz1uZXcgRGF0YVZpZXcoZSkscj1vLmdldFVpbnQzMigwLCEwKTtpZihyPT09cVV8fHI9PT1LVSlyZXR1cm4gZTtsZXQgaT1uZXcgRGF0YVZpZXcodCkscz0wLGY9ZS5ieXRlTGVuZ3RoLHU9Zi1mJTgsYz1uLGwscD04O2Zvcig7czx1Oylmb3IocD0ocCs4KSUyNCxsPXA7czx1JiZsPGM7KW8uc2V0VWludDMyKHMsby5nZXRVaW50MzIocywhMCleaS5nZXRVaW50MzIobCwhMCksITApLG8uc2V0VWludDMyKHMrNCxvLmdldFVpbnQzMihzKzQsITApXmkuZ2V0VWludDMyKGwrNCwhMCksITApLHMrPTgsbCs9MjQ7aWYoczxmKWZvcihsPj1jJiYocD0ocCs4KSUyNCxsPXApO3M8Zjspby5zZXRVaW50OChzLG8uZ2V0VWludDgocyleaS5nZXRVaW50OChsKSkscysrLGwrK312YXIgcVUsS1UsQTIsYjI9WigoKT0+e1h0KCk7SnIoKTtxVT0xOTUzMDI5ODA1LEtVPTI5MTcwMzQxMDA7eGcucGFzc1Rocm91Z2hEYXRhRm9yVGVzdGluZz0hMTtBMj14Z30pO2Z1bmN0aW9uIFdVKHQsZSl7cmV0dXJuKHQmZSkhPT0wfXZhciBrYSx3Mj1aKCgpPT57a2E9V1V9KTtmdW5jdGlvbiB5aSh0LGUsbixvLHIsaSl7dGhpcy5fYml0cz10LHRoaXMuY25vZGVWZXJzaW9uPWUsdGhpcy5pbWFnZXJ5VmVyc2lvbj1uLHRoaXMudGVycmFpblZlcnNpb249byx0aGlzLmltYWdlcnlQcm92aWRlcj1yLHRoaXMudGVycmFpblByb3ZpZGVyPWksdGhpcy5hbmNlc3Rvckhhc1RlcnJhaW49ITEsdGhpcy50ZXJyYWluU3RhdGU9dm9pZCAwfXZhciBYVSxUMixZVSwkVSxaVSxPMixFMj1aKCgpPT57ZnQoKTt3MigpO1hVPVsxLDIsNCw4XSxUMj0xNSxZVT0xNiwkVT02NCxaVT0xMjg7eWkuY2xvbmU9ZnVuY3Rpb24odCxlKXtyZXR1cm4gaChlKT8oZS5fYml0cz10Ll9iaXRzLGUuY25vZGVWZXJzaW9uPXQuY25vZGVWZXJzaW9uLGUuaW1hZ2VyeVZlcnNpb249dC5pbWFnZXJ5VmVyc2lvbixlLnRlcnJhaW5WZXJzaW9uPXQudGVycmFpblZlcnNpb24sZS5pbWFnZXJ5UHJvdmlkZXI9dC5pbWFnZXJ5UHJvdmlkZXIsZS50ZXJyYWluUHJvdmlkZXI9dC50ZXJyYWluUHJvdmlkZXIpOmU9bmV3IHlpKHQuX2JpdHMsdC5jbm9kZVZlcnNpb24sdC5pbWFnZXJ5VmVyc2lvbix0LnRlcnJhaW5WZXJzaW9uLHQuaW1hZ2VyeVByb3ZpZGVyLHQudGVycmFpblByb3ZpZGVyKSxlLmFuY2VzdG9ySGFzVGVycmFpbj10LmFuY2VzdG9ySGFzVGVycmFpbixlLnRlcnJhaW5TdGF0ZT10LnRlcnJhaW5TdGF0ZSxlfTt5aS5wcm90b3R5cGUuc2V0UGFyZW50PWZ1bmN0aW9uKHQpe3RoaXMuYW5jZXN0b3JIYXNUZXJyYWluPXQuYW5jZXN0b3JIYXNUZXJyYWlufHx0aGlzLmhhc1RlcnJhaW4oKX07eWkucHJvdG90eXBlLmhhc1N1YnRyZWU9ZnVuY3Rpb24oKXtyZXR1cm4ga2EodGhpcy5fYml0cyxZVSl9O3lpLnByb3RvdHlwZS5oYXNJbWFnZXJ5PWZ1bmN0aW9uKCl7cmV0dXJuIGthKHRoaXMuX2JpdHMsJFUpfTt5aS5wcm90b3R5cGUuaGFzVGVycmFpbj1mdW5jdGlvbigpe3JldHVybiBrYSh0aGlzLl9iaXRzLFpVKX07eWkucHJvdG90eXBlLmhhc0NoaWxkcmVuPWZ1bmN0aW9uKCl7cmV0dXJuIGthKHRoaXMuX2JpdHMsVDIpfTt5aS5wcm90b3R5cGUuaGFzQ2hpbGQ9ZnVuY3Rpb24odCl7cmV0dXJuIGthKHRoaXMuX2JpdHMsWFVbdF0pfTt5aS5wcm90b3R5cGUuZ2V0Q2hpbGRCaXRtYXNrPWZ1bmN0aW9uKCl7cmV0dXJuIHRoaXMuX2JpdHMmVDJ9O08yPXlpfSk7dmFyIFMyPVhuKChXdXQsUjIpPT57InVzZSBzdHJpY3QiO3ZhciBRVT0odCxlLG4sbyk9PntsZXQgcj10JjY1NTM1fDAsaT10Pj4+MTYmNjU1MzV8MCxzPTA7Zm9yKDtuIT09MDspe3M9bj4yZTM/MmUzOm4sbi09cztkbyByPXIrZVtvKytdfDAsaT1pK3J8MDt3aGlsZSgtLXMpO3IlPTY1NTIxLGklPTY1NTIxfXJldHVybiByfGk8PDE2fDB9O1IyLmV4cG9ydHM9UVV9KTt2YXIgeDI9WG4oKFh1dCxDMik9PnsidXNlIHN0cmljdCI7dmFyIEpVPSgpPT57bGV0IHQsZT1bXTtmb3IodmFyIG49MDtuPDI1NjtuKyspe3Q9bjtmb3IodmFyIG89MDtvPDg7bysrKXQ9dCYxPzM5ODgyOTIzODRedD4+PjE6dD4+PjE7ZVtuXT10fXJldHVybiBlfSx0Nj1uZXcgVWludDMyQXJyYXkoSlUoKSksZTY9KHQsZSxuLG8pPT57bGV0IHI9dDYsaT1vK247dF49LTE7Zm9yKGxldCBzPW87czxpO3MrKyl0PXQ+Pj44XnJbKHReZVtzXSkmMjU1XTtyZXR1cm4gdF4tMX07QzIuZXhwb3J0cz1lNn0pO3ZhciBNMj1YbigoWXV0LFAyKT0+eyJ1c2Ugc3RyaWN0IjtQMi5leHBvcnRzPWZ1bmN0aW9uKGUsbil7bGV0IG8scixpLHMsZix1LGMsbCxwLGQsbSxfLGcsYix3LE8sRSxULEMsTixJLEQsdixMLFU9ZS5zdGF0ZTtvPWUubmV4dF9pbix2PWUuaW5wdXQscj1vKyhlLmF2YWlsX2luLTUpLGk9ZS5uZXh0X291dCxMPWUub3V0cHV0LHM9aS0obi1lLmF2YWlsX291dCksZj1pKyhlLmF2YWlsX291dC0yNTcpLHU9VS5kbWF4LGM9VS53c2l6ZSxsPVUud2hhdmUscD1VLnduZXh0LGQ9VS53aW5kb3csbT1VLmhvbGQsXz1VLmJpdHMsZz1VLmxlbmNvZGUsYj1VLmRpc3Rjb2RlLHc9KDE8PFUubGVuYml0cyktMSxPPSgxPDxVLmRpc3RiaXRzKS0xO3Q6ZG97XzwxNSYmKG0rPXZbbysrXTw8XyxfKz04LG0rPXZbbysrXTw8XyxfKz04KSxFPWdbbSZ3XTtlOmZvcig7Oyl7aWYoVD1FPj4+MjQsbT4+Pj1ULF8tPVQsVD1FPj4+MTYmMjU1LFQ9PT0wKUxbaSsrXT1FJjY1NTM1O2Vsc2UgaWYoVCYxNil7Qz1FJjY1NTM1LFQmPTE1LFQmJihfPFQmJihtKz12W28rK108PF8sXys9OCksQys9bSYoMTw8VCktMSxtPj4+PVQsXy09VCksXzwxNSYmKG0rPXZbbysrXTw8XyxfKz04LG0rPXZbbysrXTw8XyxfKz04KSxFPWJbbSZPXTtuOmZvcig7Oyl7aWYoVD1FPj4+MjQsbT4+Pj1ULF8tPVQsVD1FPj4+MTYmMjU1LFQmMTYpe2lmKE49RSY2NTUzNSxUJj0xNSxfPFQmJihtKz12W28rK108PF8sXys9OCxfPFQmJihtKz12W28rK108PF8sXys9OCkpLE4rPW0mKDE8PFQpLTEsTj51KXtlLm1zZz0iaW52YWxpZCBkaXN0YW5jZSB0b28gZmFyIGJhY2siLFUubW9kZT0xNjIwOTticmVhayB0fWlmKG0+Pj49VCxfLT1ULFQ9aS1zLE4+VCl7aWYoVD1OLVQsVD5sJiZVLnNhbmUpe2UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsVS5tb2RlPTE2MjA5O2JyZWFrIHR9aWYoST0wLEQ9ZCxwPT09MCl7aWYoSSs9Yy1ULFQ8Qyl7Qy09VDtkbyBMW2krK109ZFtJKytdO3doaWxlKC0tVCk7ST1pLU4sRD1MfX1lbHNlIGlmKHA8VCl7aWYoSSs9YytwLVQsVC09cCxUPEMpe0MtPVQ7ZG8gTFtpKytdPWRbSSsrXTt3aGlsZSgtLVQpO2lmKEk9MCxwPEMpe1Q9cCxDLT1UO2RvIExbaSsrXT1kW0krK107d2hpbGUoLS1UKTtJPWktTixEPUx9fX1lbHNlIGlmKEkrPXAtVCxUPEMpe0MtPVQ7ZG8gTFtpKytdPWRbSSsrXTt3aGlsZSgtLVQpO0k9aS1OLEQ9TH1mb3IoO0M+MjspTFtpKytdPURbSSsrXSxMW2krK109RFtJKytdLExbaSsrXT1EW0krK10sQy09MztDJiYoTFtpKytdPURbSSsrXSxDPjEmJihMW2krK109RFtJKytdKSl9ZWxzZXtJPWktTjtkbyBMW2krK109TFtJKytdLExbaSsrXT1MW0krK10sTFtpKytdPUxbSSsrXSxDLT0zO3doaWxlKEM+Mik7QyYmKExbaSsrXT1MW0krK10sQz4xJiYoTFtpKytdPUxbSSsrXSkpfX1lbHNlIGlmKFQmNjQpe2UubXNnPSJpbnZhbGlkIGRpc3RhbmNlIGNvZGUiLFUubW9kZT0xNjIwOTticmVhayB0fWVsc2V7RT1iWyhFJjY1NTM1KSsobSYoMTw8VCktMSldO2NvbnRpbnVlIG59YnJlYWt9fWVsc2UgaWYoVCY2NClpZihUJjMyKXtVLm1vZGU9MTYxOTE7YnJlYWsgdH1lbHNle2UubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLFUubW9kZT0xNjIwOTticmVhayB0fWVsc2V7RT1nWyhFJjY1NTM1KSsobSYoMTw8VCktMSldO2NvbnRpbnVlIGV9YnJlYWt9fXdoaWxlKG88ciYmaTxmKTtDPV8+PjMsby09QyxfLT1DPDwzLG0mPSgxPDxfKS0xLGUubmV4dF9pbj1vLGUubmV4dF9vdXQ9aSxlLmF2YWlsX2luPW88cj81KyhyLW8pOjUtKG8tciksZS5hdmFpbF9vdXQ9aTxmPzI1NysoZi1pKToyNTctKGktZiksVS5ob2xkPW0sVS5iaXRzPV99fSk7dmFyIEkyPVhuKCgkdXQsTjIpPT57InVzZSBzdHJpY3QiO3ZhciBuNj1uZXcgVWludDE2QXJyYXkoWzMsNCw1LDYsNyw4LDksMTAsMTEsMTMsMTUsMTcsMTksMjMsMjcsMzEsMzUsNDMsNTEsNTksNjcsODMsOTksMTE1LDEzMSwxNjMsMTk1LDIyNywyNTgsMCwwXSksbzY9bmV3IFVpbnQ4QXJyYXkoWzE2LDE2LDE2LDE2LDE2LDE2LDE2LDE2LDE3LDE3LDE3LDE3LDE4LDE4LDE4LDE4LDE5LDE5LDE5LDE5LDIwLDIwLDIwLDIwLDIxLDIxLDIxLDIxLDE2LDcyLDc4XSkscjY9bmV3IFVpbnQxNkFycmF5KFsxLDIsMyw0LDUsNyw5LDEzLDE3LDI1LDMzLDQ5LDY1LDk3LDEyOSwxOTMsMjU3LDM4NSw1MTMsNzY5LDEwMjUsMTUzNywyMDQ5LDMwNzMsNDA5Nyw2MTQ1LDgxOTMsMTIyODksMTYzODUsMjQ1NzcsMCwwXSksaTY9bmV3IFVpbnQ4QXJyYXkoWzE2LDE2LDE2LDE2LDE3LDE3LDE4LDE4LDE5LDE5LDIwLDIwLDIxLDIxLDIyLDIyLDIzLDIzLDI0LDI0LDI1LDI1LDI2LDI2LDI3LDI3LDI4LDI4LDI5LDI5LDY0LDY0XSksczY9KHQsZSxuLG8scixpLHMsZik9PntsZXQgdT1mLmJpdHMsYz0wLGw9MCxwPTAsZD0wLG09MCxfPTAsZz0wLGI9MCx3PTAsTz0wLEUsVCxDLE4sSSxEPW51bGwsdixMPW5ldyBVaW50MTZBcnJheSgxNiksVT1uZXcgVWludDE2QXJyYXkoMTYpLEE9bnVsbCxTLFAsQjtmb3IoYz0wO2M8PTE1O2MrKylMW2NdPTA7Zm9yKGw9MDtsPG87bCsrKUxbZVtuK2xdXSsrO2ZvcihtPXUsZD0xNTtkPj0xJiZMW2RdPT09MDtkLS0pO2lmKG0+ZCYmKG09ZCksZD09PTApcmV0dXJuIHJbaSsrXT0xPDwyNHw2NDw8MTZ8MCxyW2krK109MTw8MjR8NjQ8PDE2fDAsZi5iaXRzPTEsMDtmb3IocD0xO3A8ZCYmTFtwXT09PTA7cCsrKTtmb3IobTxwJiYobT1wKSxiPTEsYz0xO2M8PTE1O2MrKylpZihiPDw9MSxiLT1MW2NdLGI8MClyZXR1cm4tMTtpZihiPjAmJih0PT09MHx8ZCE9PTEpKXJldHVybi0xO2ZvcihVWzFdPTAsYz0xO2M8MTU7YysrKVVbYysxXT1VW2NdK0xbY107Zm9yKGw9MDtsPG87bCsrKWVbbitsXSE9PTAmJihzW1VbZVtuK2xdXSsrXT1sKTtpZih0PT09MD8oRD1BPXMsdj0yMCk6dD09PTE/KEQ9bjYsQT1vNix2PTI1Nyk6KEQ9cjYsQT1pNix2PTApLE89MCxsPTAsYz1wLEk9aSxfPW0sZz0wLEM9LTEsdz0xPDxtLE49dy0xLHQ9PT0xJiZ3Pjg1Mnx8dD09PTImJnc+NTkyKXJldHVybiAxO2Zvcig7Oyl7Uz1jLWcsc1tsXSsxPHY/KFA9MCxCPXNbbF0pOnNbbF0+PXY/KFA9QVtzW2xdLXZdLEI9RFtzW2xdLXZdKTooUD05NixCPTApLEU9MTw8Yy1nLFQ9MTw8XyxwPVQ7ZG8gVC09RSxyW0krKE8+PmcpK1RdPVM8PDI0fFA8PDE2fEJ8MDt3aGlsZShUIT09MCk7Zm9yKEU9MTw8Yy0xO08mRTspRT4+PTE7aWYoRSE9PTA/KE8mPUUtMSxPKz1FKTpPPTAsbCsrLC0tTFtjXT09PTApe2lmKGM9PT1kKWJyZWFrO2M9ZVtuK3NbbF1dfWlmKGM+bSYmKE8mTikhPT1DKXtmb3IoZz09PTAmJihnPW0pLEkrPXAsXz1jLWcsYj0xPDxfO18rZzxkJiYoYi09TFtfK2ddLCEoYjw9MCkpOylfKyssYjw8PTE7aWYodys9MTw8Xyx0PT09MSYmdz44NTJ8fHQ9PT0yJiZ3PjU5MilyZXR1cm4gMTtDPU8mTixyW0NdPW08PDI0fF88PDE2fEktaXwwfX1yZXR1cm4gTyE9PTAmJihyW0krT109Yy1nPDwyNHw2NDw8MTZ8MCksZi5iaXRzPW0sMH07TjIuZXhwb3J0cz1zNn0pO3ZhciBybT1YbigoWnV0LHYyKT0+eyJ1c2Ugc3RyaWN0Ijt2Mi5leHBvcnRzPXtaX05PX0ZMVVNIOjAsWl9QQVJUSUFMX0ZMVVNIOjEsWl9TWU5DX0ZMVVNIOjIsWl9GVUxMX0ZMVVNIOjMsWl9GSU5JU0g6NCxaX0JMT0NLOjUsWl9UUkVFUzo2LFpfT0s6MCxaX1NUUkVBTV9FTkQ6MSxaX05FRURfRElDVDoyLFpfRVJSTk86LTEsWl9TVFJFQU1fRVJST1I6LTIsWl9EQVRBX0VSUk9SOi0zLFpfTUVNX0VSUk9SOi00LFpfQlVGX0VSUk9SOi01LFpfTk9fQ09NUFJFU1NJT046MCxaX0JFU1RfU1BFRUQ6MSxaX0JFU1RfQ09NUFJFU1NJT046OSxaX0RFRkFVTFRfQ09NUFJFU1NJT046LTEsWl9GSUxURVJFRDoxLFpfSFVGRk1BTl9PTkxZOjIsWl9STEU6MyxaX0ZJWEVEOjQsWl9ERUZBVUxUX1NUUkFURUdZOjAsWl9CSU5BUlk6MCxaX1RFWFQ6MSxaX1VOS05PV046MixaX0RFRkxBVEVEOjh9fSk7dmFyIG1TPVhuKChRdXQsWXIpPT57InVzZSBzdHJpY3QiO3ZhciBMZz1TMigpLGdpPXgyKCksYzY9TTIoKSxkdT1JMigpLGE2PTAsaVM9MSxzUz0yLHtaX0ZJTklTSDpMMixaX0JMT0NLOmY2LFpfVFJFRVM6aW0sWl9PSzpTYyxaX1NUUkVBTV9FTkQ6dTYsWl9ORUVEX0RJQ1Q6bDYsWl9TVFJFQU1fRVJST1I6TXIsWl9EQVRBX0VSUk9SOmNTLFpfTUVNX0VSUk9SOkRnLFpfQlVGX0VSUk9SOnA2LFpfREVGTEFURUQ6RDJ9PXJtKCksZm09MTYxODAsRjI9MTYxODEsQjI9MTYxODIsVTI9MTYxODMsVjI9MTYxODQsazI9MTYxODUsRzI9MTYxODYsejI9MTYxODcsajI9MTYxODgsSDI9MTYxODksYW09MTYxOTAsS2k9MTYxOTEsUGc9MTYxOTIscTI9MTYxOTMsTWc9MTYxOTQsSzI9MTYxOTUsVzI9MTYxOTYsWDI9MTYxOTcsWTI9MTYxOTgsc209MTYxOTksY209MTYyMDAsJDI9MTYyMDEsWjI9MTYyMDIsUTI9MTYyMDMsSjI9MTYyMDQsdFM9MTYyMDUsTmc9MTYyMDYsZVM9MTYyMDcsblM9MTYyMDgsTW49MTYyMDksRmc9MTYyMTAsYVM9MTYyMTEsZDY9ODUyLG02PTU5MixoNj0xNSxfNj1oNixvUz10PT4odD4+PjI0JjI1NSkrKHQ+Pj44JjY1MjgwKSsoKHQmNjUyODApPDw4KSsoKHQmMjU1KTw8MjQpO2Z1bmN0aW9uIHk2KCl7dGhpcy5zdHJtPW51bGwsdGhpcy5tb2RlPTAsdGhpcy5sYXN0PSExLHRoaXMud3JhcD0wLHRoaXMuaGF2ZWRpY3Q9ITEsdGhpcy5mbGFncz0wLHRoaXMuZG1heD0wLHRoaXMuY2hlY2s9MCx0aGlzLnRvdGFsPTAsdGhpcy5oZWFkPW51bGwsdGhpcy53Yml0cz0wLHRoaXMud3NpemU9MCx0aGlzLndoYXZlPTAsdGhpcy53bmV4dD0wLHRoaXMud2luZG93PW51bGwsdGhpcy5ob2xkPTAsdGhpcy5iaXRzPTAsdGhpcy5sZW5ndGg9MCx0aGlzLm9mZnNldD0wLHRoaXMuZXh0cmE9MCx0aGlzLmxlbmNvZGU9bnVsbCx0aGlzLmRpc3Rjb2RlPW51bGwsdGhpcy5sZW5iaXRzPTAsdGhpcy5kaXN0Yml0cz0wLHRoaXMubmNvZGU9MCx0aGlzLm5sZW49MCx0aGlzLm5kaXN0PTAsdGhpcy5oYXZlPTAsdGhpcy5uZXh0PW51bGwsdGhpcy5sZW5zPW5ldyBVaW50MTZBcnJheSgzMjApLHRoaXMud29yaz1uZXcgVWludDE2QXJyYXkoMjg4KSx0aGlzLmxlbmR5bj1udWxsLHRoaXMuZGlzdGR5bj1udWxsLHRoaXMuc2FuZT0wLHRoaXMuYmFjaz0wLHRoaXMud2FzPTB9dmFyIENjPXQ9PntpZighdClyZXR1cm4gMTtsZXQgZT10LnN0YXRlO3JldHVybiFlfHxlLnN0cm0hPT10fHxlLm1vZGU8Zm18fGUubW9kZT5hUz8xOjB9LGZTPXQ9PntpZihDYyh0KSlyZXR1cm4gTXI7bGV0IGU9dC5zdGF0ZTtyZXR1cm4gdC50b3RhbF9pbj10LnRvdGFsX291dD1lLnRvdGFsPTAsdC5tc2c9IiIsZS53cmFwJiYodC5hZGxlcj1lLndyYXAmMSksZS5tb2RlPWZtLGUubGFzdD0wLGUuaGF2ZWRpY3Q9MCxlLmZsYWdzPS0xLGUuZG1heD0zMjc2OCxlLmhlYWQ9bnVsbCxlLmhvbGQ9MCxlLmJpdHM9MCxlLmxlbmNvZGU9ZS5sZW5keW49bmV3IEludDMyQXJyYXkoZDYpLGUuZGlzdGNvZGU9ZS5kaXN0ZHluPW5ldyBJbnQzMkFycmF5KG02KSxlLnNhbmU9MSxlLmJhY2s9LTEsU2N9LHVTPXQ9PntpZihDYyh0KSlyZXR1cm4gTXI7bGV0IGU9dC5zdGF0ZTtyZXR1cm4gZS53c2l6ZT0wLGUud2hhdmU9MCxlLnduZXh0PTAsZlModCl9LGxTPSh0LGUpPT57bGV0IG47aWYoQ2ModCkpcmV0dXJuIE1yO2xldCBvPXQuc3RhdGU7cmV0dXJuIGU8MD8obj0wLGU9LWUpOihuPShlPj40KSs1LGU8NDgmJihlJj0xNSkpLGUmJihlPDh8fGU+MTUpP01yOihvLndpbmRvdyE9PW51bGwmJm8ud2JpdHMhPT1lJiYoby53aW5kb3c9bnVsbCksby53cmFwPW4sby53Yml0cz1lLHVTKHQpKX0scFM9KHQsZSk9PntpZighdClyZXR1cm4gTXI7bGV0IG49bmV3IHk2O3Quc3RhdGU9bixuLnN0cm09dCxuLndpbmRvdz1udWxsLG4ubW9kZT1mbTtsZXQgbz1sUyh0LGUpO3JldHVybiBvIT09U2MmJih0LnN0YXRlPW51bGwpLG99LGc2PXQ9PnBTKHQsXzYpLHJTPSEwLElnLHZnLEE2PXQ9PntpZihyUyl7SWc9bmV3IEludDMyQXJyYXkoNTEyKSx2Zz1uZXcgSW50MzJBcnJheSgzMik7bGV0IGU9MDtmb3IoO2U8MTQ0Oyl0LmxlbnNbZSsrXT04O2Zvcig7ZTwyNTY7KXQubGVuc1tlKytdPTk7Zm9yKDtlPDI4MDspdC5sZW5zW2UrK109Nztmb3IoO2U8Mjg4Oyl0LmxlbnNbZSsrXT04O2ZvcihkdShpUyx0LmxlbnMsMCwyODgsSWcsMCx0Lndvcmsse2JpdHM6OX0pLGU9MDtlPDMyOyl0LmxlbnNbZSsrXT01O2R1KHNTLHQubGVucywwLDMyLHZnLDAsdC53b3JrLHtiaXRzOjV9KSxyUz0hMX10LmxlbmNvZGU9SWcsdC5sZW5iaXRzPTksdC5kaXN0Y29kZT12Zyx0LmRpc3RiaXRzPTV9LGRTPSh0LGUsbixvKT0+e2xldCByLGk9dC5zdGF0ZTtyZXR1cm4gaS53aW5kb3c9PT1udWxsJiYoaS53c2l6ZT0xPDxpLndiaXRzLGkud25leHQ9MCxpLndoYXZlPTAsaS53aW5kb3c9bmV3IFVpbnQ4QXJyYXkoaS53c2l6ZSkpLG8+PWkud3NpemU/KGkud2luZG93LnNldChlLnN1YmFycmF5KG4taS53c2l6ZSxuKSwwKSxpLnduZXh0PTAsaS53aGF2ZT1pLndzaXplKToocj1pLndzaXplLWkud25leHQscj5vJiYocj1vKSxpLndpbmRvdy5zZXQoZS5zdWJhcnJheShuLW8sbi1vK3IpLGkud25leHQpLG8tPXIsbz8oaS53aW5kb3cuc2V0KGUuc3ViYXJyYXkobi1vLG4pLDApLGkud25leHQ9byxpLndoYXZlPWkud3NpemUpOihpLnduZXh0Kz1yLGkud25leHQ9PT1pLndzaXplJiYoaS53bmV4dD0wKSxpLndoYXZlPGkud3NpemUmJihpLndoYXZlKz1yKSkpLDB9LGI2PSh0LGUpPT57bGV0IG4sbyxyLGkscyxmLHUsYyxsLHAsZCxtLF8sZyxiPTAsdyxPLEUsVCxDLE4sSSxELHY9bmV3IFVpbnQ4QXJyYXkoNCksTCxVLEE9bmV3IFVpbnQ4QXJyYXkoWzE2LDE3LDE4LDAsOCw3LDksNiwxMCw1LDExLDQsMTIsMywxMywyLDE0LDEsMTVdKTtpZihDYyh0KXx8IXQub3V0cHV0fHwhdC5pbnB1dCYmdC5hdmFpbF9pbiE9PTApcmV0dXJuIE1yO249dC5zdGF0ZSxuLm1vZGU9PT1LaSYmKG4ubW9kZT1QZykscz10Lm5leHRfb3V0LHI9dC5vdXRwdXQsdT10LmF2YWlsX291dCxpPXQubmV4dF9pbixvPXQuaW5wdXQsZj10LmF2YWlsX2luLGM9bi5ob2xkLGw9bi5iaXRzLHA9ZixkPXUsRD1TYzt0OmZvcig7Oylzd2l0Y2gobi5tb2RlKXtjYXNlIGZtOmlmKG4ud3JhcD09PTApe24ubW9kZT1QZzticmVha31mb3IoO2w8MTY7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihuLndyYXAmMiYmYz09PTM1NjE1KXtuLndiaXRzPT09MCYmKG4ud2JpdHM9MTUpLG4uY2hlY2s9MCx2WzBdPWMmMjU1LHZbMV09Yz4+PjgmMjU1LG4uY2hlY2s9Z2kobi5jaGVjayx2LDIsMCksYz0wLGw9MCxuLm1vZGU9RjI7YnJlYWt9aWYobi5oZWFkJiYobi5oZWFkLmRvbmU9ITEpLCEobi53cmFwJjEpfHwoKChjJjI1NSk8PDgpKyhjPj44KSklMzEpe3QubXNnPSJpbmNvcnJlY3QgaGVhZGVyIGNoZWNrIixuLm1vZGU9TW47YnJlYWt9aWYoKGMmMTUpIT09RDIpe3QubXNnPSJ1bmtub3duIGNvbXByZXNzaW9uIG1ldGhvZCIsbi5tb2RlPU1uO2JyZWFrfWlmKGM+Pj49NCxsLT00LEk9KGMmMTUpKzgsbi53Yml0cz09PTAmJihuLndiaXRzPUkpLEk+MTV8fEk+bi53Yml0cyl7dC5tc2c9ImludmFsaWQgd2luZG93IHNpemUiLG4ubW9kZT1NbjticmVha31uLmRtYXg9MTw8bi53Yml0cyxuLmZsYWdzPTAsdC5hZGxlcj1uLmNoZWNrPTEsbi5tb2RlPWMmNTEyP0gyOktpLGM9MCxsPTA7YnJlYWs7Y2FzZSBGMjpmb3IoO2w8MTY7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihuLmZsYWdzPWMsKG4uZmxhZ3MmMjU1KSE9PUQyKXt0Lm1zZz0idW5rbm93biBjb21wcmVzc2lvbiBtZXRob2QiLG4ubW9kZT1NbjticmVha31pZihuLmZsYWdzJjU3MzQ0KXt0Lm1zZz0idW5rbm93biBoZWFkZXIgZmxhZ3Mgc2V0IixuLm1vZGU9TW47YnJlYWt9bi5oZWFkJiYobi5oZWFkLnRleHQ9Yz4+OCYxKSxuLmZsYWdzJjUxMiYmbi53cmFwJjQmJih2WzBdPWMmMjU1LHZbMV09Yz4+PjgmMjU1LG4uY2hlY2s9Z2kobi5jaGVjayx2LDIsMCkpLGM9MCxsPTAsbi5tb2RlPUIyO2Nhc2UgQjI6Zm9yKDtsPDMyOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9bi5oZWFkJiYobi5oZWFkLnRpbWU9Yyksbi5mbGFncyY1MTImJm4ud3JhcCY0JiYodlswXT1jJjI1NSx2WzFdPWM+Pj44JjI1NSx2WzJdPWM+Pj4xNiYyNTUsdlszXT1jPj4+MjQmMjU1LG4uY2hlY2s9Z2kobi5jaGVjayx2LDQsMCkpLGM9MCxsPTAsbi5tb2RlPVUyO2Nhc2UgVTI6Zm9yKDtsPDE2Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9bi5oZWFkJiYobi5oZWFkLnhmbGFncz1jJjI1NSxuLmhlYWQub3M9Yz4+OCksbi5mbGFncyY1MTImJm4ud3JhcCY0JiYodlswXT1jJjI1NSx2WzFdPWM+Pj44JjI1NSxuLmNoZWNrPWdpKG4uY2hlY2ssdiwyLDApKSxjPTAsbD0wLG4ubW9kZT1WMjtjYXNlIFYyOmlmKG4uZmxhZ3MmMTAyNCl7Zm9yKDtsPDE2Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9bi5sZW5ndGg9YyxuLmhlYWQmJihuLmhlYWQuZXh0cmFfbGVuPWMpLG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKHZbMF09YyYyNTUsdlsxXT1jPj4+OCYyNTUsbi5jaGVjaz1naShuLmNoZWNrLHYsMiwwKSksYz0wLGw9MH1lbHNlIG4uaGVhZCYmKG4uaGVhZC5leHRyYT1udWxsKTtuLm1vZGU9azI7Y2FzZSBrMjppZihuLmZsYWdzJjEwMjQmJihtPW4ubGVuZ3RoLG0+ZiYmKG09ZiksbSYmKG4uaGVhZCYmKEk9bi5oZWFkLmV4dHJhX2xlbi1uLmxlbmd0aCxuLmhlYWQuZXh0cmF8fChuLmhlYWQuZXh0cmE9bmV3IFVpbnQ4QXJyYXkobi5oZWFkLmV4dHJhX2xlbikpLG4uaGVhZC5leHRyYS5zZXQoby5zdWJhcnJheShpLGkrbSksSSkpLG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKG4uY2hlY2s9Z2kobi5jaGVjayxvLG0saSkpLGYtPW0saSs9bSxuLmxlbmd0aC09bSksbi5sZW5ndGgpKWJyZWFrIHQ7bi5sZW5ndGg9MCxuLm1vZGU9RzI7Y2FzZSBHMjppZihuLmZsYWdzJjIwNDgpe2lmKGY9PT0wKWJyZWFrIHQ7bT0wO2RvIEk9b1tpK20rK10sbi5oZWFkJiZJJiZuLmxlbmd0aDw2NTUzNiYmKG4uaGVhZC5uYW1lKz1TdHJpbmcuZnJvbUNoYXJDb2RlKEkpKTt3aGlsZShJJiZtPGYpO2lmKG4uZmxhZ3MmNTEyJiZuLndyYXAmNCYmKG4uY2hlY2s9Z2kobi5jaGVjayxvLG0saSkpLGYtPW0saSs9bSxJKWJyZWFrIHR9ZWxzZSBuLmhlYWQmJihuLmhlYWQubmFtZT1udWxsKTtuLmxlbmd0aD0wLG4ubW9kZT16MjtjYXNlIHoyOmlmKG4uZmxhZ3MmNDA5Nil7aWYoZj09PTApYnJlYWsgdDttPTA7ZG8gST1vW2krbSsrXSxuLmhlYWQmJkkmJm4ubGVuZ3RoPDY1NTM2JiYobi5oZWFkLmNvbW1lbnQrPVN0cmluZy5mcm9tQ2hhckNvZGUoSSkpO3doaWxlKEkmJm08Zik7aWYobi5mbGFncyY1MTImJm4ud3JhcCY0JiYobi5jaGVjaz1naShuLmNoZWNrLG8sbSxpKSksZi09bSxpKz1tLEkpYnJlYWsgdH1lbHNlIG4uaGVhZCYmKG4uaGVhZC5jb21tZW50PW51bGwpO24ubW9kZT1qMjtjYXNlIGoyOmlmKG4uZmxhZ3MmNTEyKXtmb3IoO2w8MTY7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihuLndyYXAmNCYmYyE9PShuLmNoZWNrJjY1NTM1KSl7dC5tc2c9ImhlYWRlciBjcmMgbWlzbWF0Y2giLG4ubW9kZT1NbjticmVha31jPTAsbD0wfW4uaGVhZCYmKG4uaGVhZC5oY3JjPW4uZmxhZ3M+PjkmMSxuLmhlYWQuZG9uZT0hMCksdC5hZGxlcj1uLmNoZWNrPTAsbi5tb2RlPUtpO2JyZWFrO2Nhc2UgSDI6Zm9yKDtsPDMyOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9dC5hZGxlcj1uLmNoZWNrPW9TKGMpLGM9MCxsPTAsbi5tb2RlPWFtO2Nhc2UgYW06aWYobi5oYXZlZGljdD09PTApcmV0dXJuIHQubmV4dF9vdXQ9cyx0LmF2YWlsX291dD11LHQubmV4dF9pbj1pLHQuYXZhaWxfaW49ZixuLmhvbGQ9YyxuLmJpdHM9bCxsNjt0LmFkbGVyPW4uY2hlY2s9MSxuLm1vZGU9S2k7Y2FzZSBLaTppZihlPT09ZjZ8fGU9PT1pbSlicmVhayB0O2Nhc2UgUGc6aWYobi5sYXN0KXtjPj4+PWwmNyxsLT1sJjcsbi5tb2RlPU5nO2JyZWFrfWZvcig7bDwzOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9c3dpdGNoKG4ubGFzdD1jJjEsYz4+Pj0xLGwtPTEsYyYzKXtjYXNlIDA6bi5tb2RlPXEyO2JyZWFrO2Nhc2UgMTppZihBNihuKSxuLm1vZGU9c20sZT09PWltKXtjPj4+PTIsbC09MjticmVhayB0fWJyZWFrO2Nhc2UgMjpuLm1vZGU9VzI7YnJlYWs7Y2FzZSAzOnQubXNnPSJpbnZhbGlkIGJsb2NrIHR5cGUiLG4ubW9kZT1Nbn1jPj4+PTIsbC09MjticmVhaztjYXNlIHEyOmZvcihjPj4+PWwmNyxsLT1sJjc7bDwzMjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWlmKChjJjY1NTM1KSE9PShjPj4+MTZeNjU1MzUpKXt0Lm1zZz0iaW52YWxpZCBzdG9yZWQgYmxvY2sgbGVuZ3RocyIsbi5tb2RlPU1uO2JyZWFrfWlmKG4ubGVuZ3RoPWMmNjU1MzUsYz0wLGw9MCxuLm1vZGU9TWcsZT09PWltKWJyZWFrIHQ7Y2FzZSBNZzpuLm1vZGU9SzI7Y2FzZSBLMjppZihtPW4ubGVuZ3RoLG0pe2lmKG0+ZiYmKG09ZiksbT51JiYobT11KSxtPT09MClicmVhayB0O3Iuc2V0KG8uc3ViYXJyYXkoaSxpK20pLHMpLGYtPW0saSs9bSx1LT1tLHMrPW0sbi5sZW5ndGgtPW07YnJlYWt9bi5tb2RlPUtpO2JyZWFrO2Nhc2UgVzI6Zm9yKDtsPDE0Oyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYobi5ubGVuPShjJjMxKSsyNTcsYz4+Pj01LGwtPTUsbi5uZGlzdD0oYyYzMSkrMSxjPj4+PTUsbC09NSxuLm5jb2RlPShjJjE1KSs0LGM+Pj49NCxsLT00LG4ubmxlbj4yODZ8fG4ubmRpc3Q+MzApe3QubXNnPSJ0b28gbWFueSBsZW5ndGggb3IgZGlzdGFuY2Ugc3ltYm9scyIsbi5tb2RlPU1uO2JyZWFrfW4uaGF2ZT0wLG4ubW9kZT1YMjtjYXNlIFgyOmZvcig7bi5oYXZlPG4ubmNvZGU7KXtmb3IoO2w8Mzspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fW4ubGVuc1tBW24uaGF2ZSsrXV09YyY3LGM+Pj49MyxsLT0zfWZvcig7bi5oYXZlPDE5OyluLmxlbnNbQVtuLmhhdmUrK11dPTA7aWYobi5sZW5jb2RlPW4ubGVuZHluLG4ubGVuYml0cz03LEw9e2JpdHM6bi5sZW5iaXRzfSxEPWR1KGE2LG4ubGVucywwLDE5LG4ubGVuY29kZSwwLG4ud29yayxMKSxuLmxlbmJpdHM9TC5iaXRzLEQpe3QubXNnPSJpbnZhbGlkIGNvZGUgbGVuZ3RocyBzZXQiLG4ubW9kZT1NbjticmVha31uLmhhdmU9MCxuLm1vZGU9WTI7Y2FzZSBZMjpmb3IoO24uaGF2ZTxuLm5sZW4rbi5uZGlzdDspe2Zvcig7Yj1uLmxlbmNvZGVbYyYoMTw8bi5sZW5iaXRzKS0xXSx3PWI+Pj4yNCxPPWI+Pj4xNiYyNTUsRT1iJjY1NTM1LCEodzw9bCk7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihFPDE2KWM+Pj49dyxsLT13LG4ubGVuc1tuLmhhdmUrK109RTtlbHNle2lmKEU9PT0xNil7Zm9yKFU9dysyO2w8VTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWlmKGM+Pj49dyxsLT13LG4uaGF2ZT09PTApe3QubXNnPSJpbnZhbGlkIGJpdCBsZW5ndGggcmVwZWF0IixuLm1vZGU9TW47YnJlYWt9ST1uLmxlbnNbbi5oYXZlLTFdLG09MysoYyYzKSxjPj4+PTIsbC09Mn1lbHNlIGlmKEU9PT0xNyl7Zm9yKFU9dyszO2w8VTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWM+Pj49dyxsLT13LEk9MCxtPTMrKGMmNyksYz4+Pj0zLGwtPTN9ZWxzZXtmb3IoVT13Kzc7bDxVOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9Yz4+Pj13LGwtPXcsST0wLG09MTErKGMmMTI3KSxjPj4+PTcsbC09N31pZihuLmhhdmUrbT5uLm5sZW4rbi5uZGlzdCl7dC5tc2c9ImludmFsaWQgYml0IGxlbmd0aCByZXBlYXQiLG4ubW9kZT1NbjticmVha31mb3IoO20tLTspbi5sZW5zW24uaGF2ZSsrXT1JfX1pZihuLm1vZGU9PT1NbilicmVhaztpZihuLmxlbnNbMjU2XT09PTApe3QubXNnPSJpbnZhbGlkIGNvZGUgLS0gbWlzc2luZyBlbmQtb2YtYmxvY2siLG4ubW9kZT1NbjticmVha31pZihuLmxlbmJpdHM9OSxMPXtiaXRzOm4ubGVuYml0c30sRD1kdShpUyxuLmxlbnMsMCxuLm5sZW4sbi5sZW5jb2RlLDAsbi53b3JrLEwpLG4ubGVuYml0cz1MLmJpdHMsRCl7dC5tc2c9ImludmFsaWQgbGl0ZXJhbC9sZW5ndGhzIHNldCIsbi5tb2RlPU1uO2JyZWFrfWlmKG4uZGlzdGJpdHM9NixuLmRpc3Rjb2RlPW4uZGlzdGR5bixMPXtiaXRzOm4uZGlzdGJpdHN9LEQ9ZHUoc1Msbi5sZW5zLG4ubmxlbixuLm5kaXN0LG4uZGlzdGNvZGUsMCxuLndvcmssTCksbi5kaXN0Yml0cz1MLmJpdHMsRCl7dC5tc2c9ImludmFsaWQgZGlzdGFuY2VzIHNldCIsbi5tb2RlPU1uO2JyZWFrfWlmKG4ubW9kZT1zbSxlPT09aW0pYnJlYWsgdDtjYXNlIHNtOm4ubW9kZT1jbTtjYXNlIGNtOmlmKGY+PTYmJnU+PTI1OCl7dC5uZXh0X291dD1zLHQuYXZhaWxfb3V0PXUsdC5uZXh0X2luPWksdC5hdmFpbF9pbj1mLG4uaG9sZD1jLG4uYml0cz1sLGM2KHQsZCkscz10Lm5leHRfb3V0LHI9dC5vdXRwdXQsdT10LmF2YWlsX291dCxpPXQubmV4dF9pbixvPXQuaW5wdXQsZj10LmF2YWlsX2luLGM9bi5ob2xkLGw9bi5iaXRzLG4ubW9kZT09PUtpJiYobi5iYWNrPS0xKTticmVha31mb3Iobi5iYWNrPTA7Yj1uLmxlbmNvZGVbYyYoMTw8bi5sZW5iaXRzKS0xXSx3PWI+Pj4yNCxPPWI+Pj4xNiYyNTUsRT1iJjY1NTM1LCEodzw9bCk7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1pZihPJiYhKE8mMjQwKSl7Zm9yKFQ9dyxDPU8sTj1FO2I9bi5sZW5jb2RlW04rKChjJigxPDxUK0MpLTEpPj5UKV0sdz1iPj4+MjQsTz1iPj4+MTYmMjU1LEU9YiY2NTUzNSwhKFQrdzw9bCk7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1jPj4+PVQsbC09VCxuLmJhY2srPVR9aWYoYz4+Pj13LGwtPXcsbi5iYWNrKz13LG4ubGVuZ3RoPUUsTz09PTApe24ubW9kZT10UzticmVha31pZihPJjMyKXtuLmJhY2s9LTEsbi5tb2RlPUtpO2JyZWFrfWlmKE8mNjQpe3QubXNnPSJpbnZhbGlkIGxpdGVyYWwvbGVuZ3RoIGNvZGUiLG4ubW9kZT1NbjticmVha31uLmV4dHJhPU8mMTUsbi5tb2RlPSQyO2Nhc2UgJDI6aWYobi5leHRyYSl7Zm9yKFU9bi5leHRyYTtsPFU7KXtpZihmPT09MClicmVhayB0O2YtLSxjKz1vW2krK108PGwsbCs9OH1uLmxlbmd0aCs9YyYoMTw8bi5leHRyYSktMSxjPj4+PW4uZXh0cmEsbC09bi5leHRyYSxuLmJhY2srPW4uZXh0cmF9bi53YXM9bi5sZW5ndGgsbi5tb2RlPVoyO2Nhc2UgWjI6Zm9yKDtiPW4uZGlzdGNvZGVbYyYoMTw8bi5kaXN0Yml0cyktMV0sdz1iPj4+MjQsTz1iPj4+MTYmMjU1LEU9YiY2NTUzNSwhKHc8PWwpOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9aWYoIShPJjI0MCkpe2ZvcihUPXcsQz1PLE49RTtiPW4uZGlzdGNvZGVbTisoKGMmKDE8PFQrQyktMSk+PlQpXSx3PWI+Pj4yNCxPPWI+Pj4xNiYyNTUsRT1iJjY1NTM1LCEoVCt3PD1sKTspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWM+Pj49VCxsLT1ULG4uYmFjays9VH1pZihjPj4+PXcsbC09dyxuLmJhY2srPXcsTyY2NCl7dC5tc2c9ImludmFsaWQgZGlzdGFuY2UgY29kZSIsbi5tb2RlPU1uO2JyZWFrfW4ub2Zmc2V0PUUsbi5leHRyYT1PJjE1LG4ubW9kZT1RMjtjYXNlIFEyOmlmKG4uZXh0cmEpe2ZvcihVPW4uZXh0cmE7bDxVOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sYys9b1tpKytdPDxsLGwrPTh9bi5vZmZzZXQrPWMmKDE8PG4uZXh0cmEpLTEsYz4+Pj1uLmV4dHJhLGwtPW4uZXh0cmEsbi5iYWNrKz1uLmV4dHJhfWlmKG4ub2Zmc2V0Pm4uZG1heCl7dC5tc2c9ImludmFsaWQgZGlzdGFuY2UgdG9vIGZhciBiYWNrIixuLm1vZGU9TW47YnJlYWt9bi5tb2RlPUoyO2Nhc2UgSjI6aWYodT09PTApYnJlYWsgdDtpZihtPWQtdSxuLm9mZnNldD5tKXtpZihtPW4ub2Zmc2V0LW0sbT5uLndoYXZlJiZuLnNhbmUpe3QubXNnPSJpbnZhbGlkIGRpc3RhbmNlIHRvbyBmYXIgYmFjayIsbi5tb2RlPU1uO2JyZWFrfW0+bi53bmV4dD8obS09bi53bmV4dCxfPW4ud3NpemUtbSk6Xz1uLnduZXh0LW0sbT5uLmxlbmd0aCYmKG09bi5sZW5ndGgpLGc9bi53aW5kb3d9ZWxzZSBnPXIsXz1zLW4ub2Zmc2V0LG09bi5sZW5ndGg7bT51JiYobT11KSx1LT1tLG4ubGVuZ3RoLT1tO2RvIHJbcysrXT1nW18rK107d2hpbGUoLS1tKTtuLmxlbmd0aD09PTAmJihuLm1vZGU9Y20pO2JyZWFrO2Nhc2UgdFM6aWYodT09PTApYnJlYWsgdDtyW3MrK109bi5sZW5ndGgsdS0tLG4ubW9kZT1jbTticmVhaztjYXNlIE5nOmlmKG4ud3JhcCl7Zm9yKDtsPDMyOyl7aWYoZj09PTApYnJlYWsgdDtmLS0sY3w9b1tpKytdPDxsLGwrPTh9aWYoZC09dSx0LnRvdGFsX291dCs9ZCxuLnRvdGFsKz1kLG4ud3JhcCY0JiZkJiYodC5hZGxlcj1uLmNoZWNrPW4uZmxhZ3M/Z2kobi5jaGVjayxyLGQscy1kKTpMZyhuLmNoZWNrLHIsZCxzLWQpKSxkPXUsbi53cmFwJjQmJihuLmZsYWdzP2M6b1MoYykpIT09bi5jaGVjayl7dC5tc2c9ImluY29ycmVjdCBkYXRhIGNoZWNrIixuLm1vZGU9TW47YnJlYWt9Yz0wLGw9MH1uLm1vZGU9ZVM7Y2FzZSBlUzppZihuLndyYXAmJm4uZmxhZ3Mpe2Zvcig7bDwzMjspe2lmKGY9PT0wKWJyZWFrIHQ7Zi0tLGMrPW9baSsrXTw8bCxsKz04fWlmKG4ud3JhcCY0JiZjIT09KG4udG90YWwmNDI5NDk2NzI5NSkpe3QubXNnPSJpbmNvcnJlY3QgbGVuZ3RoIGNoZWNrIixuLm1vZGU9TW47YnJlYWt9Yz0wLGw9MH1uLm1vZGU9blM7Y2FzZSBuUzpEPXU2O2JyZWFrIHQ7Y2FzZSBNbjpEPWNTO2JyZWFrIHQ7Y2FzZSBGZzpyZXR1cm4gRGc7Y2FzZSBhUzpkZWZhdWx0OnJldHVybiBNcn1yZXR1cm4gdC5uZXh0X291dD1zLHQuYXZhaWxfb3V0PXUsdC5uZXh0X2luPWksdC5hdmFpbF9pbj1mLG4uaG9sZD1jLG4uYml0cz1sLChuLndzaXplfHxkIT09dC5hdmFpbF9vdXQmJm4ubW9kZTxNbiYmKG4ubW9kZTxOZ3x8ZSE9PUwyKSkmJmRTKHQsdC5vdXRwdXQsdC5uZXh0X291dCxkLXQuYXZhaWxfb3V0KT8obi5tb2RlPUZnLERnKToocC09dC5hdmFpbF9pbixkLT10LmF2YWlsX291dCx0LnRvdGFsX2luKz1wLHQudG90YWxfb3V0Kz1kLG4udG90YWwrPWQsbi53cmFwJjQmJmQmJih0LmFkbGVyPW4uY2hlY2s9bi5mbGFncz9naShuLmNoZWNrLHIsZCx0Lm5leHRfb3V0LWQpOkxnKG4uY2hlY2sscixkLHQubmV4dF9vdXQtZCkpLHQuZGF0YV90eXBlPW4uYml0cysobi5sYXN0PzY0OjApKyhuLm1vZGU9PT1LaT8xMjg6MCkrKG4ubW9kZT09PXNtfHxuLm1vZGU9PT1NZz8yNTY6MCksKHA9PT0wJiZkPT09MHx8ZT09PUwyKSYmRD09PVNjJiYoRD1wNiksRCl9LHc2PXQ9PntpZihDYyh0KSlyZXR1cm4gTXI7bGV0IGU9dC5zdGF0ZTtyZXR1cm4gZS53aW5kb3cmJihlLndpbmRvdz1udWxsKSx0LnN0YXRlPW51bGwsU2N9LFQ2PSh0LGUpPT57aWYoQ2ModCkpcmV0dXJuIE1yO2xldCBuPXQuc3RhdGU7cmV0dXJuIG4ud3JhcCYyPyhuLmhlYWQ9ZSxlLmRvbmU9ITEsU2MpOk1yfSxPNj0odCxlKT0+e2xldCBuPWUubGVuZ3RoLG8scixpO3JldHVybiBDYyh0KXx8KG89dC5zdGF0ZSxvLndyYXAhPT0wJiZvLm1vZGUhPT1hbSk/TXI6by5tb2RlPT09YW0mJihyPTEscj1MZyhyLGUsbiwwKSxyIT09by5jaGVjayk/Y1M6KGk9ZFModCxlLG4sbiksaT8oby5tb2RlPUZnLERnKTooby5oYXZlZGljdD0xLFNjKSl9O1lyLmV4cG9ydHMuaW5mbGF0ZVJlc2V0PXVTO1lyLmV4cG9ydHMuaW5mbGF0ZVJlc2V0Mj1sUztZci5leHBvcnRzLmluZmxhdGVSZXNldEtlZXA9ZlM7WXIuZXhwb3J0cy5pbmZsYXRlSW5pdD1nNjtZci5leHBvcnRzLmluZmxhdGVJbml0Mj1wUztZci5leHBvcnRzLmluZmxhdGU9YjY7WXIuZXhwb3J0cy5pbmZsYXRlRW5kPXc2O1lyLmV4cG9ydHMuaW5mbGF0ZUdldEhlYWRlcj1UNjtZci5leHBvcnRzLmluZmxhdGVTZXREaWN0aW9uYXJ5PU82O1lyLmV4cG9ydHMuaW5mbGF0ZUluZm89InBha28gaW5mbGF0ZSAoZnJvbSBOb2RlY2EgcHJvamVjdCkifSk7dmFyIGhTPVhuKChKdXQsQmcpPT57InVzZSBzdHJpY3QiO3ZhciBFNj0odCxlKT0+T2JqZWN0LnByb3RvdHlwZS5oYXNPd25Qcm9wZXJ0eS5jYWxsKHQsZSk7QmcuZXhwb3J0cy5hc3NpZ249ZnVuY3Rpb24odCl7bGV0IGU9QXJyYXkucHJvdG90eXBlLnNsaWNlLmNhbGwoYXJndW1lbnRzLDEpO2Zvcig7ZS5sZW5ndGg7KXtsZXQgbj1lLnNoaWZ0KCk7aWYobil7aWYodHlwZW9mIG4hPSJvYmplY3QiKXRocm93IG5ldyBUeXBlRXJyb3IobisibXVzdCBiZSBub24tb2JqZWN0Iik7Zm9yKGxldCBvIGluIG4pRTYobixvKSYmKHRbb109bltvXSl9fXJldHVybiB0fTtCZy5leHBvcnRzLmZsYXR0ZW5DaHVua3M9dD0+e2xldCBlPTA7Zm9yKGxldCBvPTAscj10Lmxlbmd0aDtvPHI7bysrKWUrPXRbb10ubGVuZ3RoO2xldCBuPW5ldyBVaW50OEFycmF5KGUpO2ZvcihsZXQgbz0wLHI9MCxpPXQubGVuZ3RoO288aTtvKyspe2xldCBzPXRbb107bi5zZXQocyxyKSxyKz1zLmxlbmd0aH1yZXR1cm4gbn19KTt2YXIgeVM9WG4oKHRsdCx1bSk9PnsidXNlIHN0cmljdCI7dmFyIF9TPSEwO3RyeXtTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsbmV3IFVpbnQ4QXJyYXkoMSkpfWNhdGNoe19TPSExfXZhciBtdT1uZXcgVWludDhBcnJheSgyNTYpO2ZvcihsZXQgdD0wO3Q8MjU2O3QrKyltdVt0XT10Pj0yNTI/Njp0Pj0yNDg/NTp0Pj0yNDA/NDp0Pj0yMjQ/Mzp0Pj0xOTI/MjoxO211WzI1NF09bXVbMjU0XT0xO3VtLmV4cG9ydHMuc3RyaW5nMmJ1Zj10PT57aWYodHlwZW9mIFRleHRFbmNvZGVyPT0iZnVuY3Rpb24iJiZUZXh0RW5jb2Rlci5wcm90b3R5cGUuZW5jb2RlKXJldHVybiBuZXcgVGV4dEVuY29kZXIoKS5lbmNvZGUodCk7bGV0IGUsbixvLHIsaSxzPXQubGVuZ3RoLGY9MDtmb3Iocj0wO3I8cztyKyspbj10LmNoYXJDb2RlQXQociksKG4mNjQ1MTIpPT09NTUyOTYmJnIrMTxzJiYobz10LmNoYXJDb2RlQXQocisxKSwobyY2NDUxMik9PT01NjMyMCYmKG49NjU1MzYrKG4tNTUyOTY8PDEwKSsoby01NjMyMCkscisrKSksZis9bjwxMjg/MTpuPDIwNDg/MjpuPDY1NTM2PzM6NDtmb3IoZT1uZXcgVWludDhBcnJheShmKSxpPTAscj0wO2k8ZjtyKyspbj10LmNoYXJDb2RlQXQociksKG4mNjQ1MTIpPT09NTUyOTYmJnIrMTxzJiYobz10LmNoYXJDb2RlQXQocisxKSwobyY2NDUxMik9PT01NjMyMCYmKG49NjU1MzYrKG4tNTUyOTY8PDEwKSsoby01NjMyMCkscisrKSksbjwxMjg/ZVtpKytdPW46bjwyMDQ4PyhlW2krK109MTkyfG4+Pj42LGVbaSsrXT0xMjh8biY2Myk6bjw2NTUzNj8oZVtpKytdPTIyNHxuPj4+MTIsZVtpKytdPTEyOHxuPj4+NiY2MyxlW2krK109MTI4fG4mNjMpOihlW2krK109MjQwfG4+Pj4xOCxlW2krK109MTI4fG4+Pj4xMiY2MyxlW2krK109MTI4fG4+Pj42JjYzLGVbaSsrXT0xMjh8biY2Myk7cmV0dXJuIGV9O3ZhciBSNj0odCxlKT0+e2lmKGU8NjU1MzQmJnQuc3ViYXJyYXkmJl9TKXJldHVybiBTdHJpbmcuZnJvbUNoYXJDb2RlLmFwcGx5KG51bGwsdC5sZW5ndGg9PT1lP3Q6dC5zdWJhcnJheSgwLGUpKTtsZXQgbj0iIjtmb3IobGV0IG89MDtvPGU7bysrKW4rPVN0cmluZy5mcm9tQ2hhckNvZGUodFtvXSk7cmV0dXJuIG59O3VtLmV4cG9ydHMuYnVmMnN0cmluZz0odCxlKT0+e2xldCBuPWV8fHQubGVuZ3RoO2lmKHR5cGVvZiBUZXh0RGVjb2Rlcj09ImZ1bmN0aW9uIiYmVGV4dERlY29kZXIucHJvdG90eXBlLmRlY29kZSlyZXR1cm4gbmV3IFRleHREZWNvZGVyKCkuZGVjb2RlKHQuc3ViYXJyYXkoMCxlKSk7bGV0IG8scixpPW5ldyBBcnJheShuKjIpO2ZvcihyPTAsbz0wO288bjspe2xldCBzPXRbbysrXTtpZihzPDEyOCl7aVtyKytdPXM7Y29udGludWV9bGV0IGY9bXVbc107aWYoZj40KXtpW3IrK109NjU1MzMsbys9Zi0xO2NvbnRpbnVlfWZvcihzJj1mPT09Mj8zMTpmPT09Mz8xNTo3O2Y+MSYmbzxuOylzPXM8PDZ8dFtvKytdJjYzLGYtLTtpZihmPjEpe2lbcisrXT02NTUzMztjb250aW51ZX1zPDY1NTM2P2lbcisrXT1zOihzLT02NTUzNixpW3IrK109NTUyOTZ8cz4+MTAmMTAyMyxpW3IrK109NTYzMjB8cyYxMDIzKX1yZXR1cm4gUjYoaSxyKX07dW0uZXhwb3J0cy51dGY4Ym9yZGVyPSh0LGUpPT57ZT1lfHx0Lmxlbmd0aCxlPnQubGVuZ3RoJiYoZT10Lmxlbmd0aCk7bGV0IG49ZS0xO2Zvcig7bj49MCYmKHRbbl0mMTkyKT09PTEyODspbi0tO3JldHVybiBuPDB8fG49PT0wP2U6bittdVt0W25dXT5lP246ZX19KTt2YXIgQVM9WG4oKGVsdCxnUyk9PnsidXNlIHN0cmljdCI7Z1MuZXhwb3J0cz17MjoibmVlZCBkaWN0aW9uYXJ5IiwxOiJzdHJlYW0gZW5kIiwwOiIiLCItMSI6ImZpbGUgZXJyb3IiLCItMiI6InN0cmVhbSBlcnJvciIsIi0zIjoiZGF0YSBlcnJvciIsIi00IjoiaW5zdWZmaWNpZW50IG1lbW9yeSIsIi01IjoiYnVmZmVyIGVycm9yIiwiLTYiOiJpbmNvbXBhdGlibGUgdmVyc2lvbiJ9fSk7dmFyIHdTPVhuKChubHQsYlMpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIFM2KCl7dGhpcy5pbnB1dD1udWxsLHRoaXMubmV4dF9pbj0wLHRoaXMuYXZhaWxfaW49MCx0aGlzLnRvdGFsX2luPTAsdGhpcy5vdXRwdXQ9bnVsbCx0aGlzLm5leHRfb3V0PTAsdGhpcy5hdmFpbF9vdXQ9MCx0aGlzLnRvdGFsX291dD0wLHRoaXMubXNnPSIiLHRoaXMuc3RhdGU9bnVsbCx0aGlzLmRhdGFfdHlwZT0yLHRoaXMuYWRsZXI9MH1iUy5leHBvcnRzPVM2fSk7dmFyIE9TPVhuKChvbHQsVFMpPT57InVzZSBzdHJpY3QiO2Z1bmN0aW9uIEM2KCl7dGhpcy50ZXh0PTAsdGhpcy50aW1lPTAsdGhpcy54ZmxhZ3M9MCx0aGlzLm9zPTAsdGhpcy5leHRyYT1udWxsLHRoaXMuZXh0cmFfbGVuPTAsdGhpcy5uYW1lPSIiLHRoaXMuY29tbWVudD0iIix0aGlzLmhjcmM9MCx0aGlzLmRvbmU9ITF9VFMuZXhwb3J0cz1DNn0pO3ZhciBDUz1Ybigocmx0LEdhKT0+eyJ1c2Ugc3RyaWN0Ijt2YXIgV2k9bVMoKSxSUz1oUygpLGtnPXlTKCksR2c9QVMoKSx4Nj13UygpLFA2PU9TKCksU1M9T2JqZWN0LnByb3RvdHlwZS50b1N0cmluZyx7Wl9OT19GTFVTSDpNNixaX0ZJTklTSDpONixaX09LOmh1LFpfU1RSRUFNX0VORDpVZyxaX05FRURfRElDVDpWZyxaX1NUUkVBTV9FUlJPUjpJNixaX0RBVEFfRVJST1I6RVMsWl9NRU1fRVJST1I6djZ9PXJtKCk7ZnVuY3Rpb24gX3UodCl7dGhpcy5vcHRpb25zPVJTLmFzc2lnbih7Y2h1bmtTaXplOjEwMjQqNjQsd2luZG93Qml0czoxNSx0bzoiIn0sdHx8e30pO2xldCBlPXRoaXMub3B0aW9ucztlLnJhdyYmZS53aW5kb3dCaXRzPj0wJiZlLndpbmRvd0JpdHM8MTYmJihlLndpbmRvd0JpdHM9LWUud2luZG93Qml0cyxlLndpbmRvd0JpdHM9PT0wJiYoZS53aW5kb3dCaXRzPS0xNSkpLGUud2luZG93Qml0cz49MCYmZS53aW5kb3dCaXRzPDE2JiYhKHQmJnQud2luZG93Qml0cykmJihlLndpbmRvd0JpdHMrPTMyKSxlLndpbmRvd0JpdHM+MTUmJmUud2luZG93Qml0czw0OCYmKGUud2luZG93Qml0cyYxNXx8KGUud2luZG93Qml0c3w9MTUpKSx0aGlzLmVycj0wLHRoaXMubXNnPSIiLHRoaXMuZW5kZWQ9ITEsdGhpcy5jaHVua3M9W10sdGhpcy5zdHJtPW5ldyB4Nix0aGlzLnN0cm0uYXZhaWxfb3V0PTA7bGV0IG49V2kuaW5mbGF0ZUluaXQyKHRoaXMuc3RybSxlLndpbmRvd0JpdHMpO2lmKG4hPT1odSl0aHJvdyBuZXcgRXJyb3IoR2dbbl0pO2lmKHRoaXMuaGVhZGVyPW5ldyBQNixXaS5pbmZsYXRlR2V0SGVhZGVyKHRoaXMuc3RybSx0aGlzLmhlYWRlciksZS5kaWN0aW9uYXJ5JiYodHlwZW9mIGUuZGljdGlvbmFyeT09InN0cmluZyI/ZS5kaWN0aW9uYXJ5PWtnLnN0cmluZzJidWYoZS5kaWN0aW9uYXJ5KTpTUy5jYWxsKGUuZGljdGlvbmFyeSk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iJiYoZS5kaWN0aW9uYXJ5PW5ldyBVaW50OEFycmF5KGUuZGljdGlvbmFyeSkpLGUucmF3JiYobj1XaS5pbmZsYXRlU2V0RGljdGlvbmFyeSh0aGlzLnN0cm0sZS5kaWN0aW9uYXJ5KSxuIT09aHUpKSl0aHJvdyBuZXcgRXJyb3IoR2dbbl0pfV91LnByb3RvdHlwZS5wdXNoPWZ1bmN0aW9uKHQsZSl7bGV0IG49dGhpcy5zdHJtLG89dGhpcy5vcHRpb25zLmNodW5rU2l6ZSxyPXRoaXMub3B0aW9ucy5kaWN0aW9uYXJ5LGkscyxmO2lmKHRoaXMuZW5kZWQpcmV0dXJuITE7Zm9yKGU9PT1+fmU/cz1lOnM9ZT09PSEwP042Ok02LFNTLmNhbGwodCk9PT0iW29iamVjdCBBcnJheUJ1ZmZlcl0iP24uaW5wdXQ9bmV3IFVpbnQ4QXJyYXkodCk6bi5pbnB1dD10LG4ubmV4dF9pbj0wLG4uYXZhaWxfaW49bi5pbnB1dC5sZW5ndGg7Oyl7Zm9yKG4uYXZhaWxfb3V0PT09MCYmKG4ub3V0cHV0PW5ldyBVaW50OEFycmF5KG8pLG4ubmV4dF9vdXQ9MCxuLmF2YWlsX291dD1vKSxpPVdpLmluZmxhdGUobixzKSxpPT09VmcmJnImJihpPVdpLmluZmxhdGVTZXREaWN0aW9uYXJ5KG4sciksaT09PWh1P2k9V2kuaW5mbGF0ZShuLHMpOmk9PT1FUyYmKGk9VmcpKTtuLmF2YWlsX2luPjAmJmk9PT1VZyYmbi5zdGF0ZS53cmFwPjAmJnRbbi5uZXh0X2luXSE9PTA7KVdpLmluZmxhdGVSZXNldChuKSxpPVdpLmluZmxhdGUobixzKTtzd2l0Y2goaSl7Y2FzZSBJNjpjYXNlIEVTOmNhc2UgVmc6Y2FzZSB2NjpyZXR1cm4gdGhpcy5vbkVuZChpKSx0aGlzLmVuZGVkPSEwLCExfWlmKGY9bi5hdmFpbF9vdXQsbi5uZXh0X291dCYmKG4uYXZhaWxfb3V0PT09MHx8aT09PVVnKSlpZih0aGlzLm9wdGlvbnMudG89PT0ic3RyaW5nIil7bGV0IHU9a2cudXRmOGJvcmRlcihuLm91dHB1dCxuLm5leHRfb3V0KSxjPW4ubmV4dF9vdXQtdSxsPWtnLmJ1ZjJzdHJpbmcobi5vdXRwdXQsdSk7bi5uZXh0X291dD1jLG4uYXZhaWxfb3V0PW8tYyxjJiZuLm91dHB1dC5zZXQobi5vdXRwdXQuc3ViYXJyYXkodSx1K2MpLDApLHRoaXMub25EYXRhKGwpfWVsc2UgdGhpcy5vbkRhdGEobi5vdXRwdXQubGVuZ3RoPT09bi5uZXh0X291dD9uLm91dHB1dDpuLm91dHB1dC5zdWJhcnJheSgwLG4ubmV4dF9vdXQpKTtpZighKGk9PT1odSYmZj09PTApKXtpZihpPT09VWcpcmV0dXJuIGk9V2kuaW5mbGF0ZUVuZCh0aGlzLnN0cm0pLHRoaXMub25FbmQoaSksdGhpcy5lbmRlZD0hMCwhMDtpZihuLmF2YWlsX2luPT09MClicmVha319cmV0dXJuITB9O191LnByb3RvdHlwZS5vbkRhdGE9ZnVuY3Rpb24odCl7dGhpcy5jaHVua3MucHVzaCh0KX07X3UucHJvdG90eXBlLm9uRW5kPWZ1bmN0aW9uKHQpe3Q9PT1odSYmKHRoaXMub3B0aW9ucy50bz09PSJzdHJpbmciP3RoaXMucmVzdWx0PXRoaXMuY2h1bmtzLmpvaW4oIiIpOnRoaXMucmVzdWx0PVJTLmZsYXR0ZW5DaHVua3ModGhpcy5jaHVua3MpKSx0aGlzLmNodW5rcz1bXSx0aGlzLmVycj10LHRoaXMubXNnPXRoaXMuc3RybS5tc2d9O2Z1bmN0aW9uIHpnKHQsZSl7bGV0IG49bmV3IF91KGUpO2lmKG4ucHVzaCh0KSxuLmVycil0aHJvdyBuLm1zZ3x8R2dbbi5lcnJdO3JldHVybiBuLnJlc3VsdH1mdW5jdGlvbiBMNih0LGUpe3JldHVybiBlPWV8fHt9LGUucmF3PSEwLHpnKHQsZSl9R2EuZXhwb3J0cy5JbmZsYXRlPV91O0dhLmV4cG9ydHMuaW5mbGF0ZT16ZztHYS5leHBvcnRzLmluZmxhdGVSYXc9TDY7R2EuZXhwb3J0cy51bmd6aXA9emc7R2EuZXhwb3J0cy5jb25zdGFudHM9cm0oKX0pO3ZhciBqZz17fTtkZShqZyx7ZGVmYXVsdDooKT0+ajZ9KTtmdW5jdGlvbiBENih0LGUpe2xldCBuPU1zLmZyb21TdHJpbmcodC50eXBlKSxvPXQuYnVmZmVyO0EyKHQua2V5LG8pO2xldCByPXo2KG8pO289ci5idWZmZXI7bGV0IGk9ci5sZW5ndGg7c3dpdGNoKG4pe2Nhc2UgTXMuTUVUQURBVEE6cmV0dXJuIEI2KG8saSx0LnF1YWRLZXkpO2Nhc2UgTXMuVEVSUkFJTjpyZXR1cm4gazYobyxpLGUpO2Nhc2UgTXMuREJST09UOnJldHVybiBlLnB1c2gobykse2J1ZmZlcjpvfX19ZnVuY3Rpb24gQjYodCxlLG4pe2xldCBvPW5ldyBEYXRhVmlldyh0KSxyPTAsaT1vLmdldFVpbnQzMihyLCEwKTtpZihyKz1qYSxpIT09RjYpdGhyb3cgbmV3IEFlKCJJbnZhbGlkIG1hZ2ljIik7bGV0IHM9by5nZXRVaW50MzIociwhMCk7aWYocis9amEscyE9PTEpdGhyb3cgbmV3IEFlKCJJbnZhbGlkIGRhdGEgdHlwZS4gTXVzdCBiZSAxIGZvciBRdWFkVHJlZVBhY2tldCIpO2xldCBmPW8uZ2V0VWludDMyKHIsITApO2lmKHIrPWphLGYhPT0yKXRocm93IG5ldyBBZSgiSW52YWxpZCBRdWFkVHJlZVBhY2tldCB2ZXJzaW9uLiBPbmx5IHZlcnNpb24gMiBpcyBzdXBwb3J0ZWQuIik7bGV0IHU9by5nZXRJbnQzMihyLCEwKTtyKz14YztsZXQgYz1vLmdldEludDMyKHIsITApO2lmKHIrPXhjLGMhPT0zMil0aHJvdyBuZXcgQWUoIkludmFsaWQgaW5zdGFuY2Ugc2l6ZS4iKTtsZXQgbD1vLmdldEludDMyKHIsITApO3IrPXhjO2xldCBwPW8uZ2V0SW50MzIociwhMCk7cis9eGM7bGV0IGQ9by5nZXRJbnQzMihyLCEwKTtpZihyKz14YyxsIT09dSpjK3IpdGhyb3cgbmV3IEFlKCJJbnZhbGlkIGRhdGFCdWZmZXJPZmZzZXQiKTtpZihsK3ArZCE9PWUpdGhyb3cgbmV3IEFlKCJJbnZhbGlkIHBhY2tldCBvZmZzZXRzIik7bGV0IG09W107Zm9yKGxldCBFPTA7RTx1OysrRSl7bGV0IFQ9by5nZXRVaW50OChyKTsrK3IsKytyO2xldCBDPW8uZ2V0VWludDE2KHIsITApO3IrPXphO2xldCBOPW8uZ2V0VWludDE2KHIsITApO3IrPXphO2xldCBJPW8uZ2V0VWludDE2KHIsITApO3IrPXphLHIrPXphLHIrPXphLHIrPXhjLHIrPXhjLHIrPTg7bGV0IEQ9by5nZXRVaW50OChyKyspLHY9by5nZXRVaW50OChyKyspO3IrPXphLG0ucHVzaChuZXcgTzIoVCxDLE4sSSxELHYpKX1sZXQgXz1bXSxnPTA7ZnVuY3Rpb24gYihFLFQsQyl7bGV0IE49ITE7aWYoQz09PTQpe2lmKFQuaGFzU3VidHJlZSgpKXJldHVybjtOPSEwfWZvcihsZXQgST0wO0k8NDsrK0kpe2xldCBEPUUrSS50b1N0cmluZygpO2lmKE4pX1tEXT1udWxsO2Vsc2UgaWYoQzw0KWlmKCFULmhhc0NoaWxkKEkpKV9bRF09bnVsbDtlbHNle2lmKGc9PT11KXtjb25zb2xlLmxvZygiSW5jb3JyZWN0IG51bWJlciBvZiBpbnN0YW5jZXMiKTtyZXR1cm59bGV0IHY9bVtnKytdO19bRF09dixiKEQsdixDKzEpfX19bGV0IHc9MCxPPW1bZysrXTtyZXR1cm4gbj09PSIiPysrdzpfW25dPU8sYihuLE8sdyksX31mdW5jdGlvbiBrNih0LGUsbil7bGV0IG89bmV3IERhdGFWaWV3KHQpLHI9ZnVuY3Rpb24oZil7Zm9yKGxldCB1PTA7dTxWNjsrK3Upe2xldCBjPW8uZ2V0VWludDMyKGYsITApO2lmKGYrPWphLGYrPWMsZj5lKXRocm93IG5ldyBBZSgiTWFsZm9ybWVkIHRlcnJhaW4gcGFja2V0IGZvdW5kLiIpfXJldHVybiBmfSxpPTAscz1bXTtmb3IoO3MubGVuZ3RoPFU2Oyl7bGV0IGY9aTtpPXIoaSk7bGV0IHU9dC5zbGljZShmLGkpO24ucHVzaCh1KSxzLnB1c2godSl9cmV0dXJuIHN9ZnVuY3Rpb24gejYodCl7bGV0IGU9bmV3IERhdGFWaWV3KHQpLG49MCxvPWUuZ2V0VWludDMyKG4sITApO2lmKG4rPWphLG8hPT14UyYmbyE9PUc2KXRocm93IG5ldyBBZSgiSW52YWxpZCBtYWdpYyIpO2xldCByPWUuZ2V0VWludDMyKG4sbz09PXhTKTtuKz1qYTtsZXQgaT1uZXcgVWludDhBcnJheSh0LG4pLHM9UFMuZGVmYXVsdC5pbmZsYXRlKGkpO2lmKHMubGVuZ3RoIT09cil0aHJvdyBuZXcgQWUoIlNpemUgb2YgcGFja2V0IGRvZXNuJ3QgbWF0Y2ggaGVhZGVyIik7cmV0dXJuIHN9dmFyIFBTLHphLHhjLGphLE1zLEY2LFU2LFY2LHhTLEc2LGo2LEhnPVooKCk9PntiMigpO0UyKCk7SnIoKTtQUz1kcihDUygpLDEpO3NvKCk7emE9VWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQseGM9SW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxqYT1VaW50MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCxNcz17TUVUQURBVEE6MCxURVJSQUlOOjEsREJST09UOjJ9O01zLmZyb21TdHJpbmc9ZnVuY3Rpb24odCl7aWYodD09PSJNZXRhZGF0YSIpcmV0dXJuIE1zLk1FVEFEQVRBO2lmKHQ9PT0iVGVycmFpbiIpcmV0dXJuIE1zLlRFUlJBSU47aWYodD09PSJEYlJvb3QiKXJldHVybiBNcy5EQlJPT1R9O0Y2PTMyMzAxO1U2PTUsVjY9NDt4Uz0xOTUzMDI5ODA1LEc2PTI5MTcwMzQxMDA7ajY9UWUoRDYpfSk7ZnVuY3Rpb24gSDYodCl7cmV0dXJuIHkuZGVmaW5lZCgidmFsdWUiLHQpLHQ8PS4wNDA0NT90Ki4wNzczOTkzODA4MDQ5NTM1NzpNYXRoLnBvdygodCsuMDU1KSouOTQ3ODY3Mjk4NTc4MTk5MSwyLjQpfXZhciBsbSxNUz1aKCgpPT57WHQoKTtsbT1INn0pO3ZhciBYZz17fTtkZShYZyx7ZGVmYXVsdDooKT0+Xzh9KTtmdW5jdGlvbiBxNih0LGUsbixvLHIsaSl7bGV0IHM9biooMS10KStvKnQsZj1yKigxLXQpK2kqdDtyZXR1cm4gcyooMS1lKStmKmV9ZnVuY3Rpb24gcG0odCxlLG4sbyl7bGV0IHI9dCtlKm47cmV0dXJuIG9bcl19ZnVuY3Rpb24gSzYodCxlLG4pe2xldCBvPW4ubmF0aXZlRXh0ZW50LHI9KHQtby53ZXN0KS8oby5lYXN0LW8ud2VzdCkqKG4ud2lkdGgtMSksaT0oZS1vLnNvdXRoKS8oby5ub3J0aC1vLnNvdXRoKSoobi5oZWlnaHQtMSkscz1NYXRoLmZsb29yKHIpLGY9TWF0aC5mbG9vcihpKTtyLT1zLGktPWY7bGV0IHU9czxuLndpZHRoP3MrMTpzLGM9ZjxuLmhlaWdodD9mKzE6ZjtmPW4uaGVpZ2h0LTEtZixjPW4uaGVpZ2h0LTEtYztsZXQgbD1wbShzLGYsbi53aWR0aCxuLmJ1ZmZlcikscD1wbSh1LGYsbi53aWR0aCxuLmJ1ZmZlciksZD1wbShzLGMsbi53aWR0aCxuLmJ1ZmZlciksbT1wbSh1LGMsbi53aWR0aCxuLmJ1ZmZlciksXz1xNihyLGksbCxwLGQsbSk7cmV0dXJuIF89XypuLnNjYWxlK24ub2Zmc2V0LF99ZnVuY3Rpb24gTlModCxlLG4pe2ZvcihsZXQgbz0wO288bi5sZW5ndGg7bysrKXtsZXQgcj1uW29dLm5hdGl2ZUV4dGVudCxpPW5ldyBhO2lmKG5bb10ucHJvamVjdGlvblR5cGU9PT0iV2ViTWVyY2F0b3IiKXtsZXQgcz1uW29dLnByb2plY3Rpb24uX2VsbGlwc29pZC5fcmFkaWk7aT1uZXcgbm8obmV3ICQocy54LHMueSxzLnopKS5wcm9qZWN0KG5ldyBjdCh0LGUsMCkpfWVsc2UgaS54PXQsaS55PWU7aWYoaS54PnIud2VzdCYmaS54PHIuZWFzdCYmaS55PnIuc291dGgmJmkueTxyLm5vcnRoKXJldHVybiBLNihpLngsaS55LG5bb10pfXJldHVybiAwfWZ1bmN0aW9uIFc2KHQsZSxuLG8scixpLHMpe2lmKHMpcmV0dXJuO2xldCBmPU5TKHIubG9uZ2l0dWRlLHIubGF0aXR1ZGUsaSk7Zm9yKGxldCB1PTA7dTx0OysrdSl7bGV0IGM9TlMoci5sb25naXR1ZGUrTS50b1JhZGlhbnMobiplW3UqM10pLHIubGF0aXR1ZGUrTS50b1JhZGlhbnMobyplW3UqMysxXSksaSk7ZVt1KjMrMl0rPWMtZn19ZnVuY3Rpb24gWDYodCxlLG4sbyxyLGkscyxmLHUpe2lmKHQ9PT0wfHwhaChlKXx8ZS5sZW5ndGg9PT0wKXJldHVybjtsZXQgYz1uZXcgJChNYXRoLnNxcnQocy54KSxNYXRoLnNxcnQocy55KSxNYXRoLnNxcnQocy56KSk7Zm9yKGxldCBsPTA7bDx0OysrbCl7bGV0IHA9bCozLGQ9cCsxLG09cCsyLF89bmV3IGN0O18ubG9uZ2l0dWRlPW8ubG9uZ2l0dWRlK00udG9SYWRpYW5zKGYqZVtwXSksXy5sYXRpdHVkZT1vLmxhdGl0dWRlK00udG9SYWRpYW5zKHUqZVtkXSksXy5oZWlnaHQ9by5oZWlnaHQrZVttXTtsZXQgZz17fTtjLmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKF8sZyksZy54LT1yLngsZy55LT1yLnksZy56LT1yLno7bGV0IGI9e307aWYoUS5tdWx0aXBseUJ5VmVjdG9yKGksZyxiKSxlW3BdPWIueCxlW2RdPWIueSxlW21dPWIueixoKG4pKXtsZXQgdz1uZXcgYShuW3BdLG5bZF0sblttXSksTz17fTtRLm11bHRpcGx5QnlWZWN0b3IoaSx3LE8pLG5bcF09Ty54LG5bZF09Ty55LG5bbV09Ty56fX19ZnVuY3Rpb24gWTYodCxlLG4pe2ZvcihsZXQgbz0wO288dDsrK28pe2xldCByPW5bbyo0XS82NTUzNSxpPW5bbyo0KzFdLzY1NTM1LHM9KG5bbyo0KzJdLW5bbyo0XSkvNjU1MzUsZj0obltvKjQrM10tbltvKjQrMV0pLzY1NTM1O2VbbyoyXSo9cyxlW28qMl0rPXIsZVtvKjIrMV0qPWYsZVtvKjIrMV0rPWl9fWZ1bmN0aW9uICQ2KHQsZSxuLG8pe2xldCByPW5ldyBVaW50MzJBcnJheSh0KSxpPWgoZSk/Zj0+ZVtmXTpmPT5mLHM9MDtpZihvJiZoKG4pKXtsZXQgZj11PT5uW2kodSkqNCszXTwyNTU7Zm9yKGxldCB1PTA7dTx0O3UrPTMpIWYodSkmJiFmKHUrMSkmJiFmKHUrMikmJihyW3MrK109aSh1KSxyW3MrK109aSh1KzEpLHJbcysrXT1pKHUrMikpO2lmKHM+MCl7bGV0IHU9cztmb3IobGV0IGM9MDtjPHQ7Yys9MykoZihjKXx8ZihjKzEpfHxmKGMrMikpJiYoclt1KytdPWkoYyksclt1KytdPWkoYysxKSxyW3UrK109aShjKzIpKX1lbHNlIGZvcihsZXQgdT0wO3U8dDsrK3Upclt1XT1pKHUpfWVsc2V7cz10O2ZvcihsZXQgZj0wO2Y8dDsrK2YpcltmXT1pKGYpfXJldHVybntpbmRleEFycmF5OnIsdHJhbnNwYXJlbnRWZXJ0ZXhPZmZzZXQ6c319ZnVuY3Rpb24gWjYodCxlLG4pe2xldCBvPWVbbl07aWYoaChvKSlyZXR1cm4gbztsZXQgcj1lW25dPXtwb3NpdGlvbnM6e30saW5kaWNlczp7fSxlZGdlczp7fX0saT14KHRbbl0sdC5kZWZhdWx0KTtyZXR1cm4gci5oYXNPdXRsaW5lPWgoaT8uZWRnZXMpLHJ9ZnVuY3Rpb24gUTYodCxlLG4sbyl7aWYoIWgodFtuXSkpe2xldCByPW4qMyxpPWU7Zm9yKGxldCBzPTA7czwzO3MrKyl7bGV0IGY9b1tyK3NdO2goaVtmXSl8fChpW2ZdPXt9KSxpPWlbZl19aChpLmluZGV4KXx8KGkuaW5kZXg9biksdFtuXT1pLmluZGV4fX1mdW5jdGlvbiBKNih0LGUsbixvLHIsaSl7bGV0IHMsZjtvPHI/KHM9byxmPXIpOihzPXIsZj1vKTtsZXQgdT10W3NdO2godSl8fCh1PXRbc109e30pO2xldCBjPXVbZl07aChjKXx8KGM9dVtmXT17bm9ybWFsc0luZGV4OltdLG91dGxpbmVzOltdfSksYy5ub3JtYWxzSW5kZXgucHVzaChpKSwoYy5vdXRsaW5lcy5sZW5ndGg9PT0wfHxlIT09b3x8biE9PXIpJiZjLm91dGxpbmVzLnB1c2goZSxuKX1mdW5jdGlvbiB0OCh0LGUsbixvKXtsZXQgcj1bXTtmb3IobGV0IGk9MDtpPG4ubGVuZ3RoO2krPTMpe2xldCBzPWgoZSk/ZVtuW2ldXToiZGVmYXVsdCIsZj1aNih0LHIscyk7aWYoIWYuaGFzT3V0bGluZSljb250aW51ZTtsZXQgdT1mLmluZGljZXMsYz1mLnBvc2l0aW9ucztmb3IobGV0IHA9MDtwPDM7cCsrKXtsZXQgZD1uW2krcF07UTYodSxjLGQsbyl9bGV0IGw9Zi5lZGdlcztmb3IobGV0IHA9MDtwPDM7cCsrKXtsZXQgZD1uW2krcF0sbT1uW2krKHArMSklM10sXz11W2RdLGc9dVttXTtKNihsLGQsbSxfLGcsaSl9fXJldHVybiByfWZ1bmN0aW9uIElTKHQsZSxuLG8pe2xldCByPW5bZV0qMyxpPW5bZSsxXSozLHM9bltlKzJdKjM7YS5mcm9tQXJyYXkobyxyLEFpKSxhLmZyb21BcnJheShvLGksZG0pLGEuZnJvbUFycmF5KG8scyxtbSksYS5zdWJ0cmFjdChkbSxBaSxkbSksYS5zdWJ0cmFjdChtbSxBaSxtbSksYS5jcm9zcyhkbSxtbSxBaSk7bGV0IGY9YS5tYWduaXR1ZGUoQWkpO2YhPT0wJiZhLmRpdmlkZUJ5U2NhbGFyKEFpLGYsQWkpO2xldCB1PWUqMyxjPShlKzEpKjMsbD0oZSsyKSozO2EucGFjayhBaSx0LHUpLGEucGFjayhBaSx0LGMpLGEucGFjayhBaSx0LGwpfWZ1bmN0aW9uIGU4KHQsZSxuKXthLmZyb21BcnJheSh0LGUsaG0pLGEuZnJvbUFycmF5KHQsbixxZyk7bGV0IG89YS5kb3QoaG0scWcpLHI9YS5tYWduaXR1ZGUoYS5jcm9zcyhobSxxZyxobSkpO3JldHVybiBNYXRoLmF0YW4yKHIsbyk8LjI1fWZ1bmN0aW9uIG44KHQsZSxuLG8scil7aWYoZS5ub3JtYWxzSW5kZXgubGVuZ3RoPjEpe2xldCBpPW8ubGVuZ3RoPT09ci5sZW5ndGg7Zm9yKGxldCBzPTA7czxlLm5vcm1hbHNJbmRleC5sZW5ndGg7cysrKXtsZXQgZj1lLm5vcm1hbHNJbmRleFtzXTtpZihoKHJbZiozXSl8fElTKHIsZixuLG8pLHMhPT0wKWZvcihsZXQgdT0wO3U8czt1Kyspe2xldCBjPWUubm9ybWFsc0luZGV4W3VdLGw9aT9uW2ZdKjM6ZiozLHA9aT9uW2NdKjM6YyozO2lmKGU4KHIsbCxwKSlyZXR1cm59fX10LnB1c2goLi4uZS5vdXRsaW5lcyl9ZnVuY3Rpb24gbzgodCxlLG4sbyxyKXtsZXQgaT1PYmplY3Qua2V5cyhlKTtmb3IobGV0IHM9MDtzPGkubGVuZ3RoO3MrKyl7bGV0IGY9ZVtpW3NdXSx1PU9iamVjdC5rZXlzKGYpO2ZvcihsZXQgYz0wO2M8dS5sZW5ndGg7YysrKXtsZXQgbD1mW3VbY11dO244KHQsbCxuLG8scil9fX1mdW5jdGlvbiByOCh0LGUsbixvKXtsZXQgcj1bXSxpPU9iamVjdC5rZXlzKHQpO2ZvcihsZXQgcz0wO3M8aS5sZW5ndGg7cysrKXtsZXQgZj10W2lbc11dLmVkZ2VzO284KHIsZixlLG4sbyl9cmV0dXJuIHJ9ZnVuY3Rpb24gaTgodCxlLG4sbyxyKXtpZighaCh0KXx8T2JqZWN0LmtleXModCkubGVuZ3RoPT09MClyZXR1cm47bGV0IGk9dDgodCxlLG4sbyk7KCFoKHIpfHxuLmxlbmd0aCozIT09ci5sZW5ndGgpJiYocj1bXSk7bGV0IHM9cjgoaSxuLG8scik7cmV0dXJuIHMubGVuZ3RoPjA/bmV3IFVpbnQzMkFycmF5KHMpOnZvaWQgMH1mdW5jdGlvbiBzOCh0KXtsZXQgZT1uZXcgRmxvYXQzMkFycmF5KHQubGVuZ3RoKTtmb3IobGV0IG49MDtuPHQubGVuZ3RoO24rPTQpZVtuXT1sbShvZS5ieXRlVG9GbG9hdCh0W25dKSksZVtuKzFdPWxtKG9lLmJ5dGVUb0Zsb2F0KHRbbisxXSkpLGVbbisyXT1sbShvZS5ieXRlVG9GbG9hdCh0W24rMl0pKSxlW24rM109b2UuYnl0ZVRvRmxvYXQodFtuKzNdKTtyZXR1cm4gZX1mdW5jdGlvbiBjOCh0LGUsbixvLHIsaSxzKXtsZXQgZj17bm9ybWFsczp2b2lkIDAscG9zaXRpb25zOnZvaWQgMCx1djBzOnZvaWQgMCxjb2xvcnM6dm9pZCAwLGZlYXR1cmVJbmRleDp2b2lkIDAsdmVydGV4Q291bnQ6dm9pZCAwfTtpZih0PT09MHx8IWgobil8fG4ubGVuZ3RoPT09MHx8aChvKSlyZXR1cm4gZjtpZihoKGUpKXtmLnZlcnRleENvdW50PWUubGVuZ3RoLGYucG9zaXRpb25zPW5ldyBGbG9hdDMyQXJyYXkoZS5sZW5ndGgqMyksZi51djBzPWgocik/bmV3IEZsb2F0MzJBcnJheShlLmxlbmd0aCoyKTp2b2lkIDAsZi5jb2xvcnM9aChpKT9uZXcgVWludDhBcnJheShlLmxlbmd0aCo0KTp2b2lkIDAsZi5mZWF0dXJlSW5kZXg9aChzKT9uZXcgQXJyYXkoZS5sZW5ndGgpOnZvaWQgMDtmb3IobGV0IHU9MDt1PGUubGVuZ3RoO3UrKyl7bGV0IGM9ZVt1XTtmLnBvc2l0aW9uc1t1KjNdPW5bYyozXSxmLnBvc2l0aW9uc1t1KjMrMV09bltjKjMrMV0sZi5wb3NpdGlvbnNbdSozKzJdPW5bYyozKzJdLGgoZi51djBzKSYmKGYudXYwc1t1KjJdPXJbYyoyXSxmLnV2MHNbdSoyKzFdPXJbYyoyKzFdKSxoKGYuY29sb3JzKSYmKGYuY29sb3JzW3UqNF09aVtjKjRdLGYuY29sb3JzW3UqNCsxXT1pW2MqNCsxXSxmLmNvbG9yc1t1KjQrMl09aVtjKjQrMl0sZi5jb2xvcnNbdSo0KzNdPWlbYyo0KzNdKSxoKGYuZmVhdHVyZUluZGV4KSYmKGYuZmVhdHVyZUluZGV4W3VdPXNbY10pfXQ9ZS5sZW5ndGgsbj1mLnBvc2l0aW9uc31lPW5ldyBBcnJheSh0KTtmb3IobGV0IHU9MDt1PHQ7dSsrKWVbdV09dTtmLm5vcm1hbHM9bmV3IEZsb2F0MzJBcnJheShlLmxlbmd0aCozKTtmb3IobGV0IHU9MDt1PGUubGVuZ3RoO3UrPTMpSVMoZi5ub3JtYWxzLHUsZSxuKTtyZXR1cm4gZn1mdW5jdGlvbiBhOCh0LGUsbixvLHIsaSxzLGYpe2lmKHQ9PT0wfHwhaChuKXx8bi5sZW5ndGg9PT0wKXJldHVybntidWZmZXJzOltdLGJ1ZmZlclZpZXdzOltdLGFjY2Vzc29yczpbXSxtZXNoZXM6W10sbm9kZXM6W10sbm9kZXNJblNjZW5lOltdfTtsZXQgdT1bXSxjPVtdLGw9W10scD1bXSxkPVtdLG09W10sXz17fSxnPVtdO2goZSkmJih0PWUubGVuZ3RoKTtsZXR7aW5kZXhBcnJheTpiLHRyYW5zcGFyZW50VmVydGV4T2Zmc2V0Ond9PSQ2KHQsZSxpLGYuc3BsaXRHZW9tZXRyeUJ5Q29sb3JUcmFuc3BhcmVuY3kpLE89bmV3IEJsb2IoW2JdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSksRT1VUkwuY3JlYXRlT2JqZWN0VVJMKE8pLFQ9dCxDPWYuZW5hYmxlRmVhdHVyZXMmJmgocyk/bmV3IEZsb2F0MzJBcnJheShzLmxlbmd0aCk6dm9pZCAwLE49MDtpZihoKEMpKWZvcihsZXQgdXQ9MDt1dDxzLmxlbmd0aDsrK3V0KXtDW3V0XT1zW3V0XTtsZXQgdnQ9c1t1dF0rMTtOPHZ0JiYoTj12dCl9bGV0IEksRD1pOChmLnN5bWJvbG9neURhdGEscyxiLG4sbyk7aWYoaChEKSl7bGV0IHV0PW5ldyBCbG9iKFtEXSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pO0k9VVJMLmNyZWF0ZU9iamVjdFVSTCh1dCl9bGV0IHY9bi5zdWJhcnJheSgwLFQqMyksTD1uZXcgQmxvYihbdl0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KSxVPVVSTC5jcmVhdGVPYmplY3RVUkwoTCksQT1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksUz1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksUD1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksQj1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFksaj1OdW1iZXIuUE9TSVRJVkVfSU5GSU5JVFksSD1OdW1iZXIuTkVHQVRJVkVfSU5GSU5JVFk7Zm9yKGxldCB1dD0wO3V0PHYubGVuZ3RoLzM7dXQrKylBPU1hdGgubWluKEEsdlt1dCozKzBdKSxTPU1hdGgubWF4KFMsdlt1dCozKzBdKSxQPU1hdGgubWluKFAsdlt1dCozKzFdKSxCPU1hdGgubWF4KEIsdlt1dCozKzFdKSxqPU1hdGgubWluKGosdlt1dCozKzJdKSxIPU1hdGgubWF4KEgsdlt1dCozKzJdKTtsZXQgaz1vP28uc3ViYXJyYXkoMCxUKjMpOnZvaWQgMCxLO2lmKGgoaykpe2xldCB1dD1uZXcgQmxvYihba10se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTtLPVVSTC5jcmVhdGVPYmplY3RVUkwodXQpfWxldCBYPXI/ci5zdWJhcnJheSgwLFQqMik6dm9pZCAwLFI7aWYoaChYKSl7bGV0IHV0PW5ldyBCbG9iKFtYXSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pO1I9VVJMLmNyZWF0ZU9iamVjdFVSTCh1dCl9bGV0IG90PWgoaSk/czgoaS5zdWJhcnJheSgwLFQqNCkpOnZvaWQgMCxhdDtpZihoKG90KSl7bGV0IHV0PW5ldyBCbG9iKFtvdF0se3R5cGU6ImFwcGxpY2F0aW9uL2JpbmFyeSJ9KTthdD1VUkwuY3JlYXRlT2JqZWN0VVJMKHV0KX1sZXQgcHQ9aChDKT9DLnN1YmFycmF5KDAsVCk6dm9pZCAwLHl0O2lmKGgocHQpKXtsZXQgdXQ9bmV3IEJsb2IoW3B0XSx7dHlwZToiYXBwbGljYXRpb24vYmluYXJ5In0pO3l0PVVSTC5jcmVhdGVPYmplY3RVUkwodXQpfWxldCBydD1oKEMpP25ldyBGbG9hdDMyQXJyYXkoTik6dm9pZCAwLFB0O2lmKGgocnQpKXtmb3IobGV0IHZ0PTA7dnQ8cnQubGVuZ3RoOysrdnQpcnRbdnRdPXZ0O2xldCB1dD1uZXcgQmxvYihbcnRdLHt0eXBlOiJhcHBsaWNhdGlvbi9iaW5hcnkifSk7UHQ9VVJMLmNyZWF0ZU9iamVjdFVSTCh1dCl9bGV0IGd0PXt9LEN0PXt9O2d0LlBPU0lUSU9OPWwubGVuZ3RoLHUucHVzaCh7dXJpOlUsYnl0ZUxlbmd0aDp2LmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjp1Lmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOnYuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjJ9KSxsLnB1c2goe2J1ZmZlclZpZXc6Yy5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI2LGNvdW50OnYubGVuZ3RoLzMsdHlwZToiVkVDMyIsbWF4OltBLFAsal0sbWluOltTLEIsSF19KSxoKEspJiYoZ3QuTk9STUFMPWwubGVuZ3RoLHUucHVzaCh7dXJpOkssYnl0ZUxlbmd0aDprLmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjp1Lmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOmsuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjJ9KSxsLnB1c2goe2J1ZmZlclZpZXc6Yy5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI2LGNvdW50OmsubGVuZ3RoLzMsdHlwZToiVkVDMyJ9KSksaChSKSYmKGd0LlRFWENPT1JEXzA9bC5sZW5ndGgsdS5wdXNoKHt1cmk6UixieXRlTGVuZ3RoOlguYnl0ZUxlbmd0aH0pLGMucHVzaCh7YnVmZmVyOnUubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6WC5ieXRlTGVuZ3RoLHRhcmdldDozNDk2Mn0pLGwucHVzaCh7YnVmZmVyVmlldzpjLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjYsY291bnQ6WC5sZW5ndGgvMix0eXBlOiJWRUMyIn0pKSxoKGF0KSYmKGd0LkNPTE9SXzA9bC5sZW5ndGgsdS5wdXNoKHt1cmk6YXQsYnl0ZUxlbmd0aDpvdC5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6dS5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpvdC5ieXRlTGVuZ3RoLHRhcmdldDozNDk2Mn0pLGwucHVzaCh7YnVmZmVyVmlldzpjLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjYsY291bnQ6b3QubGVuZ3RoLzQsdHlwZToiVkVDNCJ9KSksaCh5dCkmJihndC5fRkVBVFVSRV9JRF8wPWwubGVuZ3RoLHUucHVzaCh7dXJpOnl0LGJ5dGVMZW5ndGg6cHQuYnl0ZUxlbmd0aH0pLGMucHVzaCh7YnVmZmVyOnUubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6cHQuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjN9KSxsLnB1c2goe2J1ZmZlclZpZXc6Yy5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsY29tcG9uZW50VHlwZTo1MTI2LGNvdW50OnB0Lmxlbmd0aCx0eXBlOiJTQ0FMQVIifSksQ3QuRVhUX21lc2hfZmVhdHVyZXM9e2ZlYXR1cmVJZHM6W3thdHRyaWJ1dGU6MCxwcm9wZXJ0eVRhYmxlOjAsZmVhdHVyZUNvdW50Ok59XX0sZy5wdXNoKCJFWFRfbWVzaF9mZWF0dXJlcyIpKSxoKFB0KSYmKHUucHVzaCh7dXJpOlB0LGJ5dGVMZW5ndGg6cnQuYnl0ZUxlbmd0aH0pLGMucHVzaCh7YnVmZmVyOnUubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGJ5dGVMZW5ndGg6cnQuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjN9KSxfLkVYVF9zdHJ1Y3R1cmFsX21ldGFkYXRhPXtzY2hlbWE6e2lkOiJpM3MtbWV0YWRhdGEtc2NoZW1hLTAwMSIsbmFtZToiSTNTIG1ldGFkYXRhIHNjaGVtYSAwMDEiLGRlc2NyaXB0aW9uOiJUaGUgc2NoZW1hIGZvciBJM1MgbWV0YWRhdGEiLHZlcnNpb246IjEuMCIsY2xhc3Nlczp7ZmVhdHVyZTp7bmFtZToiZmVhdHVyZSIsZGVzY3JpcHRpb246IkZlYXR1cmUgbWV0YWRhdGEiLHByb3BlcnRpZXM6e2luZGV4OntkZXNjcmlwdGlvbjoiVGhlIGZlYXR1cmUgaW5kZXgiLHR5cGU6IlNDQUxBUiIsY29tcG9uZW50VHlwZToiRkxPQVQzMiIscmVxdWlyZWQ6ITB9fX19fSxwcm9wZXJ0eVRhYmxlczpbe25hbWU6ImZlYXR1cmUtaW5kaWNlcy1tYXBwaW5nIixjbGFzczoiZmVhdHVyZSIsY291bnQ6Tixwcm9wZXJ0aWVzOntpbmRleDp7dmFsdWVzOmMubGVuZ3RoLTF9fX1dfSxnLnB1c2goIkVYVF9zdHJ1Y3R1cmFsX21ldGFkYXRhIikpLGgoSSkmJih1LnB1c2goe3VyaTpJLGJ5dGVMZW5ndGg6RC5ieXRlTGVuZ3RofSksYy5wdXNoKHtidWZmZXI6dS5sZW5ndGgtMSxieXRlT2Zmc2V0OjAsYnl0ZUxlbmd0aDpELmJ5dGVMZW5ndGgsdGFyZ2V0OjM0OTYzfSksbC5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDowLGNvbXBvbmVudFR5cGU6NTEyNSxjb3VudDpELmxlbmd0aCx0eXBlOiJTQ0FMQVIifSksQ3QuQ0VTSVVNX3ByaW1pdGl2ZV9vdXRsaW5lPXtpbmRpY2VzOmwubGVuZ3RoLTF9LGcucHVzaCgiQ0VTSVVNX3ByaW1pdGl2ZV9vdXRsaW5lIikpLHUucHVzaCh7dXJpOkUsYnl0ZUxlbmd0aDpiLmJ5dGVMZW5ndGh9KSxjLnB1c2goe2J1ZmZlcjp1Lmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxieXRlTGVuZ3RoOmIuYnl0ZUxlbmd0aCx0YXJnZXQ6MzQ5NjN9KTtsZXQgbXQ9W107cmV0dXJuIHc+MCYmKGwucHVzaCh7YnVmZmVyVmlldzpjLmxlbmd0aC0xLGJ5dGVPZmZzZXQ6MCxjb21wb25lbnRUeXBlOjUxMjUsY291bnQ6dyx0eXBlOiJTQ0FMQVIifSksbXQucHVzaCh7YXR0cmlidXRlczpndCxpbmRpY2VzOmwubGVuZ3RoLTEsbWF0ZXJpYWw6bXQubGVuZ3RoLGV4dGVuc2lvbnM6Q3R9KSksdzx0JiYobC5wdXNoKHtidWZmZXJWaWV3OmMubGVuZ3RoLTEsYnl0ZU9mZnNldDo0KncsY29tcG9uZW50VHlwZTo1MTI1LGNvdW50OnQtdyx0eXBlOiJTQ0FMQVIifSksbXQucHVzaCh7YXR0cmlidXRlczpndCxpbmRpY2VzOmwubGVuZ3RoLTEsbWF0ZXJpYWw6bXQubGVuZ3RoLGV4dGVuc2lvbnM6Q3QsZXh0cmE6e2lzVHJhbnNwYXJlbnQ6ITB9fSkpLHAucHVzaCh7cHJpbWl0aXZlczptdH0pLG0ucHVzaCgwKSxkLnB1c2goe21lc2g6MH0pLHtidWZmZXJzOnUsYnVmZmVyVmlld3M6YyxhY2Nlc3NvcnM6bCxtZXNoZXM6cCxub2RlczpkLG5vZGVzSW5TY2VuZTptLHJvb3RFeHRlbnNpb25zOl8sZXh0ZW5zaW9uc1VzZWQ6Z319ZnVuY3Rpb24gZjgodCxlLG4sbyl7bGV0IHI9bmV3IFVpbnQ4QXJyYXkodCwwLDUpO3JldHVybiByWzBdPT09NjgmJnJbMV09PT04MiYmclsyXT09PTY1JiZyWzNdPT09NjcmJnJbNF09PT03OT91OCh0LG4pOnA4KHQsZSxuLG8pfWZ1bmN0aW9uIHU4KHQpe2xldCBlPVdnLG49bmV3IGUuRGVjb2RlckJ1ZmZlcixvPW5ldyBVaW50OEFycmF5KHQpO24uSW5pdChvLG8ubGVuZ3RoKTtsZXQgcj1uZXcgZS5EZWNvZGVyLGk9ci5HZXRFbmNvZGVkR2VvbWV0cnlUeXBlKG4pLHM9bmV3IGUuTWV0YWRhdGFRdWVyaWVyLGYsdTtpPT09ZS5UUklBTkdVTEFSX01FU0gmJihmPW5ldyBlLk1lc2gsdT1yLkRlY29kZUJ1ZmZlclRvTWVzaChuLGYpKTtsZXQgYz17dmVydGV4Q291bnQ6WzBdLGZlYXR1cmVDb3VudDowfTtpZihoKHUpJiZ1Lm9rKCkmJmYucHRyIT09MCl7bGV0IGw9Zi5udW1fZmFjZXMoKSxwPWYubnVtX2F0dHJpYnV0ZXMoKSxkPWYubnVtX3BvaW50cygpO2MuaW5kaWNlcz1uZXcgVWludDMyQXJyYXkobCozKTtsZXQgbT1jLmluZGljZXM7Yy52ZXJ0ZXhDb3VudFswXT1kLGMuc2NhbGVfeD0xLGMuc2NhbGVfeT0xO2xldCBfPW5ldyBlLkRyYWNvSW50MzJBcnJheSgzKTtmb3IobGV0IGc9MDtnPGw7KytnKXIuR2V0RmFjZUZyb21NZXNoKGYsZyxfKSxtW2cqM109Xy5HZXRWYWx1ZSgwKSxtW2cqMysxXT1fLkdldFZhbHVlKDEpLG1bZyozKzJdPV8uR2V0VmFsdWUoMik7ZS5kZXN0cm95KF8pO2ZvcihsZXQgZz0wO2c8cDsrK2cpe2xldCBiPXIuR2V0QXR0cmlidXRlKGYsZyksdz1sOChlLHIsZixiLGQpLE89Yi5hdHRyaWJ1dGVfdHlwZSgpLEU9InVua25vd24iO089PT1lLlBPU0lUSU9OP0U9InBvc2l0aW9ucyI6Tz09PWUuTk9STUFMP0U9Im5vcm1hbHMiOk89PT1lLkNPTE9SP0U9ImNvbG9ycyI6Tz09PWUuVEVYX0NPT1JEJiYoRT0idXYwcyIpO2xldCBUPXIuR2V0QXR0cmlidXRlTWV0YWRhdGEoZixnKTtpZihULnB0ciE9PTApe2xldCBDPXMuTnVtRW50cmllcyhUKTtmb3IobGV0IE49MDtOPEM7KytOKXtsZXQgST1zLkdldEVudHJ5TmFtZShULE4pO0k9PT0iaTNzLXNjYWxlX3giP2Muc2NhbGVfeD1zLkdldERvdWJsZUVudHJ5KFQsImkzcy1zY2FsZV94Iik6ST09PSJpM3Mtc2NhbGVfeSI/Yy5zY2FsZV95PXMuR2V0RG91YmxlRW50cnkoVCwiaTNzLXNjYWxlX3kiKTpJPT09Imkzcy1hdHRyaWJ1dGUtdHlwZSImJihFPXMuR2V0U3RyaW5nRW50cnkoVCwiaTNzLWF0dHJpYnV0ZS10eXBlIikpfX1oKGNbRV0pJiZjb25zb2xlLmxvZygiQXR0cmlidXRlIGFscmVhZHkgZXhpc3RzIixFKSxjW0VdPXcsRT09PSJmZWF0dXJlLWluZGV4IiYmYy5mZWF0dXJlQ291bnQrK31lLmRlc3Ryb3koZil9cmV0dXJuIGUuZGVzdHJveShzKSxlLmRlc3Ryb3kociksY31mdW5jdGlvbiBsOCh0LGUsbixvLHIpe2xldCBpPW8ubnVtX2NvbXBvbmVudHMoKSpyLHMsdT1bZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDhBcnJheShpKSxlLkdldEF0dHJpYnV0ZUludDhGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IEludDhBcnJheShpKTtmb3IobGV0IHA9MDtwPGk7KytwKWxbcF09cy5HZXRWYWx1ZShwKTtyZXR1cm4gbH0sZnVuY3Rpb24oKXtzPW5ldyB0LkRyYWNvSW50OEFycmF5KGkpLGUuR2V0QXR0cmlidXRlVUludDhGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IFVpbnQ4QXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDE2QXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVJbnQxNkZvckFsbFBvaW50cyhuLG8scyl8fGNvbnNvbGUuZXJyb3IoIkJhZCBzdHJlYW0iKTtsZXQgbD1uZXcgSW50MTZBcnJheShpKTtmb3IobGV0IHA9MDtwPGk7KytwKWxbcF09cy5HZXRWYWx1ZShwKTtyZXR1cm4gbH0sZnVuY3Rpb24oKXtzPW5ldyB0LkRyYWNvSW50MTZBcnJheShpKSxlLkdldEF0dHJpYnV0ZVVJbnQxNkZvckFsbFBvaW50cyhuLG8scyl8fGNvbnNvbGUuZXJyb3IoIkJhZCBzdHJlYW0iKTtsZXQgbD1uZXcgVWludDE2QXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb0ludDMyQXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVJbnQzMkZvckFsbFBvaW50cyhuLG8scyl8fGNvbnNvbGUuZXJyb3IoIkJhZCBzdHJlYW0iKTtsZXQgbD1uZXcgSW50MzJBcnJheShpKTtmb3IobGV0IHA9MDtwPGk7KytwKWxbcF09cy5HZXRWYWx1ZShwKTtyZXR1cm4gbH0sZnVuY3Rpb24oKXtzPW5ldyB0LkRyYWNvSW50MzJBcnJheShpKSxlLkdldEF0dHJpYnV0ZVVJbnQzMkZvckFsbFBvaW50cyhuLG8scyl8fGNvbnNvbGUuZXJyb3IoIkJhZCBzdHJlYW0iKTtsZXQgbD1uZXcgVWludDMyQXJyYXkoaSk7Zm9yKGxldCBwPTA7cDxpOysrcClsW3BdPXMuR2V0VmFsdWUocCk7cmV0dXJuIGx9LGZ1bmN0aW9uKCl7fSxmdW5jdGlvbigpe30sZnVuY3Rpb24oKXtzPW5ldyB0LkRyYWNvRmxvYXQzMkFycmF5KGkpLGUuR2V0QXR0cmlidXRlRmxvYXRGb3JBbGxQb2ludHMobixvLHMpfHxjb25zb2xlLmVycm9yKCJCYWQgc3RyZWFtIik7bGV0IGw9bmV3IEZsb2F0MzJBcnJheShpKTtmb3IobGV0IHA9MDtwPGk7KytwKWxbcF09cy5HZXRWYWx1ZShwKTtyZXR1cm4gbH0sZnVuY3Rpb24oKXt9LGZ1bmN0aW9uKCl7cz1uZXcgdC5EcmFjb1VJbnQ4QXJyYXkoaSksZS5HZXRBdHRyaWJ1dGVVSW50OEZvckFsbFBvaW50cyhuLG8scyl8fGNvbnNvbGUuZXJyb3IoIkJhZCBzdHJlYW0iKTtsZXQgbD1uZXcgVWludDhBcnJheShpKTtmb3IobGV0IHA9MDtwPGk7KytwKWxbcF09cy5HZXRWYWx1ZShwKTtyZXR1cm4gbH1dW28uZGF0YV90eXBlKCldKCk7cmV0dXJuIGgocykmJnQuZGVzdHJveShzKSx1fWZ1bmN0aW9uIHA4KHQsZSxuLG8pe2xldCByPXt2ZXJ0ZXhDb3VudDowfSxpPW5ldyBEYXRhVmlldyh0KTt0cnl7bGV0IHM9MDtpZihyLnZlcnRleENvdW50PWkuZ2V0VWludDMyKHMsMSkscys9NCxyLmZlYXR1cmVDb3VudD1pLmdldFVpbnQzMihzLDEpLHMrPTQsaChuKSlmb3IobGV0IGY9MDtmPG4uYXR0cmlidXRlcy5sZW5ndGg7ZisrKWgoX21bbi5hdHRyaWJ1dGVzW2ZdXSk/cz1fbVtuLmF0dHJpYnV0ZXNbZl1dKHIsdCxzKTpjb25zb2xlLmVycm9yKCJVbmtub3duIGRlY29kZXIgZm9yIixuLmF0dHJpYnV0ZXNbZl0pO2Vsc2V7bGV0IGY9ZS5vcmRlcmluZyx1PWUuZmVhdHVyZUF0dHJpYnV0ZU9yZGVyO2gobykmJmgoby5nZW9tZXRyeURhdGEpJiZoKG8uZ2VvbWV0cnlEYXRhWzBdKSYmaChvLmdlb21ldHJ5RGF0YVswXS5wYXJhbXMpJiYoZj1PYmplY3Qua2V5cyhvLmdlb21ldHJ5RGF0YVswXS5wYXJhbXMudmVydGV4QXR0cmlidXRlcyksdT1PYmplY3Qua2V5cyhvLmdlb21ldHJ5RGF0YVswXS5wYXJhbXMuZmVhdHVyZUF0dHJpYnV0ZXMpKTtmb3IobGV0IGM9MDtjPGYubGVuZ3RoO2MrKyl7bGV0IGw9X21bZltjXV07cz1sKHIsdCxzKX1mb3IobGV0IGM9MDtjPHUubGVuZ3RoO2MrKyl7bGV0IGw9X21bdVtjXV07cz1sKHIsdCxzKX19fWNhdGNoKHMpe2NvbnNvbGUuZXJyb3Iocyl9cmV0dXJuIHIuc2NhbGVfeD0xLHIuc2NhbGVfeT0xLHJ9ZnVuY3Rpb24gZDgodCl7bGV0IGU9ZjgodC5iaW5hcnlEYXRhLHQuc2NoZW1hLHQuYnVmZmVySW5mbyx0LmZlYXR1cmVEYXRhKTtoKHQuZ2VvaWREYXRhTGlzdCkmJnQuZ2VvaWREYXRhTGlzdC5sZW5ndGg+MCYmVzYoZS52ZXJ0ZXhDb3VudCxlLnBvc2l0aW9ucyxlLnNjYWxlX3gsZS5zY2FsZV95LHQuY2FydG9ncmFwaGljQ2VudGVyLHQuZ2VvaWREYXRhTGlzdCwhMSksWDYoZS52ZXJ0ZXhDb3VudCxlLnBvc2l0aW9ucyxlLm5vcm1hbHMsdC5jYXJ0b2dyYXBoaWNDZW50ZXIsdC5jYXJ0ZXNpYW5DZW50ZXIsdC5wYXJlbnRSb3RhdGlvbix0LmVsbGlwc29pZFJhZGlpU3F1YXJlLGUuc2NhbGVfeCxlLnNjYWxlX3kpLGgoZS51djBzKSYmaChlWyJ1di1yZWdpb24iXSkmJlk2KGUudmVydGV4Q291bnQsZS51djBzLGVbInV2LXJlZ2lvbiJdKTtsZXQgbjtpZihoKGVbImZlYXR1cmUtaW5kZXgiXSkpbj1lWyJmZWF0dXJlLWluZGV4Il07ZWxzZSBpZihoKGUuZmFjZVJhbmdlKSl7bj1uZXcgQXJyYXkoZS52ZXJ0ZXhDb3VudCk7Zm9yKGxldCBzPTA7czxlLmZhY2VSYW5nZS5sZW5ndGgtMTtzKz0yKXtsZXQgZj1zLzIsdT1lLmZhY2VSYW5nZVtzXSxjPWUuZmFjZVJhbmdlW3MrMV07Zm9yKGxldCBsPXU7bDw9YztsKyspbltsKjNdPWYsbltsKjMrMV09ZixuW2wqMysyXT1mfX1pZih0LmNhbGN1bGF0ZU5vcm1hbHMpe2xldCBzPWM4KGUudmVydGV4Q291bnQsZS5pbmRpY2VzLGUucG9zaXRpb25zLGUubm9ybWFscyxlLnV2MHMsZS5jb2xvcnMsbik7aChzLm5vcm1hbHMpJiYoZS5ub3JtYWxzPXMubm9ybWFscyxoKHMudmVydGV4Q291bnQpJiYoZS52ZXJ0ZXhDb3VudD1zLnZlcnRleENvdW50LGUuaW5kaWNlcz1zLmluZGljZXMsZS5wb3NpdGlvbnM9cy5wb3NpdGlvbnMsZS51djBzPXMudXYwcyxlLmNvbG9ycz1zLmNvbG9ycyxuPXMuZmVhdHVyZUluZGV4KSl9bGV0IG89YTgoZS52ZXJ0ZXhDb3VudCxlLmluZGljZXMsZS5wb3NpdGlvbnMsZS5ub3JtYWxzLGUudXYwcyxlLmNvbG9ycyxuLHQpLHI9e3Bvc2l0aW9uczplLnBvc2l0aW9ucyxpbmRpY2VzOmUuaW5kaWNlcyxmZWF0dXJlSW5kZXg6bixzb3VyY2VVUkw6dC51cmwsY2FydGVzaWFuQ2VudGVyOnQuY2FydGVzaWFuQ2VudGVyLHBhcmVudFJvdGF0aW9uOnQucGFyZW50Um90YXRpb259O3JldHVybiBvLl9jdXN0b21BdHRyaWJ1dGVzPXIse21lc2hEYXRhOm99fWFzeW5jIGZ1bmN0aW9uIG04KHQsZSl7bGV0IG49dC53ZWJBc3NlbWJseUNvbmZpZztyZXR1cm4gaChuKSYmaChuLndhc21CaW5hcnlGaWxlKT9XZz1hd2FpdCgwLEtnLmRlZmF1bHQpKG4pOldnPWF3YWl0KDAsS2cuZGVmYXVsdCkoKSwhMH1mdW5jdGlvbiBoOCh0LGUpe2xldCBuPXQud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIGgobik/bTgodCxlKTpkOCh0LGUpfXZhciBLZyxXZyxBaSxkbSxtbSxobSxxZyxfbSxfOCxZZz1aKCgpPT57c28oKTtJdCgpO2Z0KCk7aWMoKTtadCgpO0llKCk7RnQoKTtNYSgpO0JuKCk7V3QoKTtLZz1kcihFZygpLDEpO01TKCk7QWk9bmV3IGEsZG09bmV3IGEsbW09bmV3IGE7aG09bmV3IGEscWc9bmV3IGE7X209e3Bvc2l0aW9uOmZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LnZlcnRleENvdW50KjM7cmV0dXJuIHQucG9zaXRpb25zPW5ldyBGbG9hdDMyQXJyYXkoZSxuLG8pLG4rPW8qNCxufSxub3JtYWw6ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQudmVydGV4Q291bnQqMztyZXR1cm4gdC5ub3JtYWxzPW5ldyBGbG9hdDMyQXJyYXkoZSxuLG8pLG4rPW8qNCxufSx1djA6ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQudmVydGV4Q291bnQqMjtyZXR1cm4gdC51djBzPW5ldyBGbG9hdDMyQXJyYXkoZSxuLG8pLG4rPW8qNCxufSxjb2xvcjpmdW5jdGlvbih0LGUsbil7bGV0IG89dC52ZXJ0ZXhDb3VudCo0O3JldHVybiB0LmNvbG9ycz1uZXcgVWludDhBcnJheShlLG4sbyksbis9byxufSxmZWF0dXJlSWQ6ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuZmVhdHVyZUNvdW50O3JldHVybiBuKz1vKjgsbn0saWQ6ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQuZmVhdHVyZUNvdW50O3JldHVybiBuKz1vKjgsbn0sZmFjZVJhbmdlOmZ1bmN0aW9uKHQsZSxuKXtsZXQgbz10LmZlYXR1cmVDb3VudCoyO3JldHVybiB0LmZhY2VSYW5nZT1uZXcgVWludDMyQXJyYXkoZSxuLG8pLG4rPW8qNCxufSx1dlJlZ2lvbjpmdW5jdGlvbih0LGUsbil7bGV0IG89dC52ZXJ0ZXhDb3VudCo0O3JldHVybiB0WyJ1di1yZWdpb24iXT1uZXcgVWludDE2QXJyYXkoZSxuLG8pLG4rPW8qMixufSxyZWdpb246ZnVuY3Rpb24odCxlLG4pe2xldCBvPXQudmVydGV4Q291bnQqNDtyZXR1cm4gdFsidXYtcmVnaW9uIl09bmV3IFVpbnQxNkFycmF5KGUsbixvKSxuKz1vKjIsbn19O184PVFlKGg4KX0pO3ZhciBTZSxuciwkZz1aKCgpPT57JHMoKTtTZT17VU5TSUdORURfQllURTpxdC5VTlNJR05FRF9CWVRFLFVOU0lHTkVEX1NIT1JUOnF0LlVOU0lHTkVEX1NIT1JULFVOU0lHTkVEX0lOVDpxdC5VTlNJR05FRF9JTlQsRkxPQVQ6cXQuRkxPQVQsSEFMRl9GTE9BVDpxdC5IQUxGX0ZMT0FUX09FUyxVTlNJR05FRF9JTlRfMjRfODpxdC5VTlNJR05FRF9JTlRfMjRfOCxVTlNJR05FRF9TSE9SVF80XzRfNF80OnF0LlVOU0lHTkVEX1NIT1JUXzRfNF80XzQsVU5TSUdORURfU0hPUlRfNV81XzVfMTpxdC5VTlNJR05FRF9TSE9SVF81XzVfNV8xLFVOU0lHTkVEX1NIT1JUXzVfNl81OnF0LlVOU0lHTkVEX1NIT1JUXzVfNl81fTtTZS50b1dlYkdMQ29uc3RhbnQ9ZnVuY3Rpb24odCxlKXtzd2l0Y2godCl7Y2FzZSBTZS5VTlNJR05FRF9CWVRFOnJldHVybiBxdC5VTlNJR05FRF9CWVRFO2Nhc2UgU2UuVU5TSUdORURfU0hPUlQ6cmV0dXJuIHF0LlVOU0lHTkVEX1NIT1JUO2Nhc2UgU2UuVU5TSUdORURfSU5UOnJldHVybiBxdC5VTlNJR05FRF9JTlQ7Y2FzZSBTZS5GTE9BVDpyZXR1cm4gcXQuRkxPQVQ7Y2FzZSBTZS5IQUxGX0ZMT0FUOnJldHVybiBlLndlYmdsMj9xdC5IQUxGX0ZMT0FUOnF0LkhBTEZfRkxPQVRfT0VTO2Nhc2UgU2UuVU5TSUdORURfSU5UXzI0Xzg6cmV0dXJuIHF0LlVOU0lHTkVEX0lOVF8yNF84O2Nhc2UgU2UuVU5TSUdORURfU0hPUlRfNF80XzRfNDpyZXR1cm4gcXQuVU5TSUdORURfU0hPUlRfNF80XzRfNDtjYXNlIFNlLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6cmV0dXJuIHF0LlVOU0lHTkVEX1NIT1JUXzVfNV81XzE7Y2FzZSBTZS5VTlNJR05FRF9TSE9SVF81XzZfNTpyZXR1cm4gU2UuVU5TSUdORURfU0hPUlRfNV82XzV9fTtTZS5pc1BhY2tlZD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVNlLlVOU0lHTkVEX0lOVF8yNF84fHx0PT09U2UuVU5TSUdORURfU0hPUlRfNF80XzRfNHx8dD09PVNlLlVOU0lHTkVEX1NIT1JUXzVfNV81XzF8fHQ9PT1TZS5VTlNJR05FRF9TSE9SVF81XzZfNX07U2Uuc2l6ZUluQnl0ZXM9ZnVuY3Rpb24odCl7c3dpdGNoKHQpe2Nhc2UgU2UuVU5TSUdORURfQllURTpyZXR1cm4gMTtjYXNlIFNlLlVOU0lHTkVEX1NIT1JUOmNhc2UgU2UuVU5TSUdORURfU0hPUlRfNF80XzRfNDpjYXNlIFNlLlVOU0lHTkVEX1NIT1JUXzVfNV81XzE6Y2FzZSBTZS5VTlNJR05FRF9TSE9SVF81XzZfNTpjYXNlIFNlLkhBTEZfRkxPQVQ6cmV0dXJuIDI7Y2FzZSBTZS5VTlNJR05FRF9JTlQ6Y2FzZSBTZS5GTE9BVDpjYXNlIFNlLlVOU0lHTkVEX0lOVF8yNF84OnJldHVybiA0fX07U2UudmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TZS5VTlNJR05FRF9CWVRFfHx0PT09U2UuVU5TSUdORURfU0hPUlR8fHQ9PT1TZS5VTlNJR05FRF9JTlR8fHQ9PT1TZS5GTE9BVHx8dD09PVNlLkhBTEZfRkxPQVR8fHQ9PT1TZS5VTlNJR05FRF9JTlRfMjRfOHx8dD09PVNlLlVOU0lHTkVEX1NIT1JUXzRfNF80XzR8fHQ9PT1TZS5VTlNJR05FRF9TSE9SVF81XzVfNV8xfHx0PT09U2UuVU5TSUdORURfU0hPUlRfNV82XzV9O1NlLmdldFR5cGVkQXJyYXlDb25zdHJ1Y3Rvcj1mdW5jdGlvbih0KXtsZXQgZT1TZS5zaXplSW5CeXRlcyh0KTtyZXR1cm4gZT09PVVpbnQ4QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ/VWludDhBcnJheTplPT09VWludDE2QXJyYXkuQllURVNfUEVSX0VMRU1FTlQ/VWludDE2QXJyYXk6ZT09PUZsb2F0MzJBcnJheS5CWVRFU19QRVJfRUxFTUVOVCYmdD09PVNlLkZMT0FUP0Zsb2F0MzJBcnJheTpVaW50MzJBcnJheX07bnI9T2JqZWN0LmZyZWV6ZShTZSl9KTt2YXIgU3QsVm4sdlM9WigoKT0+eyRnKCk7JHMoKTtTdD17REVQVEhfQ09NUE9ORU5UOnF0LkRFUFRIX0NPTVBPTkVOVCxERVBUSF9TVEVOQ0lMOnF0LkRFUFRIX1NURU5DSUwsQUxQSEE6cXQuQUxQSEEsUkVEOnF0LlJFRCxSRzpxdC5SRyxSR0I6cXQuUkdCLFJHQkE6cXQuUkdCQSxMVU1JTkFOQ0U6cXQuTFVNSU5BTkNFLExVTUlOQU5DRV9BTFBIQTpxdC5MVU1JTkFOQ0VfQUxQSEEsUkdCX0RYVDE6cXQuQ09NUFJFU1NFRF9SR0JfUzNUQ19EWFQxX0VYVCxSR0JBX0RYVDE6cXQuQ09NUFJFU1NFRF9SR0JBX1MzVENfRFhUMV9FWFQsUkdCQV9EWFQzOnF0LkNPTVBSRVNTRURfUkdCQV9TM1RDX0RYVDNfRVhULFJHQkFfRFhUNTpxdC5DT01QUkVTU0VEX1JHQkFfUzNUQ19EWFQ1X0VYVCxSR0JfUFZSVENfNEJQUFYxOnF0LkNPTVBSRVNTRURfUkdCX1BWUlRDXzRCUFBWMV9JTUcsUkdCX1BWUlRDXzJCUFBWMTpxdC5DT01QUkVTU0VEX1JHQl9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfUFZSVENfNEJQUFYxOnF0LkNPTVBSRVNTRURfUkdCQV9QVlJUQ180QlBQVjFfSU1HLFJHQkFfUFZSVENfMkJQUFYxOnF0LkNPTVBSRVNTRURfUkdCQV9QVlJUQ18yQlBQVjFfSU1HLFJHQkFfQVNUQzpxdC5DT01QUkVTU0VEX1JHQkFfQVNUQ180eDRfV0VCR0wsUkdCX0VUQzE6cXQuQ09NUFJFU1NFRF9SR0JfRVRDMV9XRUJHTCxSR0I4X0VUQzI6cXQuQ09NUFJFU1NFRF9SR0I4X0VUQzIsUkdCQThfRVRDMl9FQUM6cXQuQ09NUFJFU1NFRF9SR0JBOF9FVEMyX0VBQyxSR0JBX0JDNzpxdC5DT01QUkVTU0VEX1JHQkFfQlBUQ19VTk9STX07U3QuY29tcG9uZW50c0xlbmd0aD1mdW5jdGlvbih0KXtzd2l0Y2godCl7Y2FzZSBTdC5SR0I6cmV0dXJuIDM7Y2FzZSBTdC5SR0JBOnJldHVybiA0O2Nhc2UgU3QuTFVNSU5BTkNFX0FMUEhBOmNhc2UgU3QuUkc6cmV0dXJuIDI7Y2FzZSBTdC5BTFBIQTpjYXNlIFN0LlJFRDpjYXNlIFN0LkxVTUlOQU5DRTpyZXR1cm4gMTtkZWZhdWx0OnJldHVybiAxfX07U3QudmFsaWRhdGU9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5ERVBUSF9DT01QT05FTlR8fHQ9PT1TdC5ERVBUSF9TVEVOQ0lMfHx0PT09U3QuQUxQSEF8fHQ9PT1TdC5SRUR8fHQ9PT1TdC5SR3x8dD09PVN0LlJHQnx8dD09PVN0LlJHQkF8fHQ9PT1TdC5MVU1JTkFOQ0V8fHQ9PT1TdC5MVU1JTkFOQ0VfQUxQSEF8fHQ9PT1TdC5SR0JfRFhUMXx8dD09PVN0LlJHQkFfRFhUMXx8dD09PVN0LlJHQkFfRFhUM3x8dD09PVN0LlJHQkFfRFhUNXx8dD09PVN0LlJHQl9QVlJUQ180QlBQVjF8fHQ9PT1TdC5SR0JfUFZSVENfMkJQUFYxfHx0PT09U3QuUkdCQV9QVlJUQ180QlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzJCUFBWMXx8dD09PVN0LlJHQkFfQVNUQ3x8dD09PVN0LlJHQl9FVEMxfHx0PT09U3QuUkdCOF9FVEMyfHx0PT09U3QuUkdCQThfRVRDMl9FQUN8fHQ9PT1TdC5SR0JBX0JDN307U3QuaXNDb2xvckZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJFRHx8dD09PVN0LkFMUEhBfHx0PT09U3QuUkdCfHx0PT09U3QuUkdCQXx8dD09PVN0LkxVTUlOQU5DRXx8dD09PVN0LkxVTUlOQU5DRV9BTFBIQX07U3QuaXNEZXB0aEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LkRFUFRIX0NPTVBPTkVOVHx8dD09PVN0LkRFUFRIX1NURU5DSUx9O1N0LmlzQ29tcHJlc3NlZEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9EWFQxfHx0PT09U3QuUkdCQV9EWFQxfHx0PT09U3QuUkdCQV9EWFQzfHx0PT09U3QuUkdCQV9EWFQ1fHx0PT09U3QuUkdCX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQl9QVlJUQ18yQlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQkFfUFZSVENfMkJQUFYxfHx0PT09U3QuUkdCQV9BU1RDfHx0PT09U3QuUkdCX0VUQzF8fHQ9PT1TdC5SR0I4X0VUQzJ8fHQ9PT1TdC5SR0JBOF9FVEMyX0VBQ3x8dD09PVN0LlJHQkFfQkM3fTtTdC5pc0RYVEZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9EWFQxfHx0PT09U3QuUkdCQV9EWFQxfHx0PT09U3QuUkdCQV9EWFQzfHx0PT09U3QuUkdCQV9EWFQ1fTtTdC5pc1BWUlRDRm9ybWF0PWZ1bmN0aW9uKHQpe3JldHVybiB0PT09U3QuUkdCX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQl9QVlJUQ18yQlBQVjF8fHQ9PT1TdC5SR0JBX1BWUlRDXzRCUFBWMXx8dD09PVN0LlJHQkFfUFZSVENfMkJQUFYxfTtTdC5pc0FTVENGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0JBX0FTVEN9O1N0LmlzRVRDMUZvcm1hdD1mdW5jdGlvbih0KXtyZXR1cm4gdD09PVN0LlJHQl9FVEMxfTtTdC5pc0VUQzJGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0I4X0VUQzJ8fHQ9PT1TdC5SR0JBOF9FVEMyX0VBQ307U3QuaXNCQzdGb3JtYXQ9ZnVuY3Rpb24odCl7cmV0dXJuIHQ9PT1TdC5SR0JBX0JDN307U3QuY29tcHJlc3NlZFRleHR1cmVTaXplSW5CeXRlcz1mdW5jdGlvbih0LGUsbil7c3dpdGNoKHQpe2Nhc2UgU3QuUkdCX0RYVDE6Y2FzZSBTdC5SR0JBX0RYVDE6Y2FzZSBTdC5SR0JfRVRDMTpjYXNlIFN0LlJHQjhfRVRDMjpyZXR1cm4gTWF0aC5mbG9vcigoZSszKS80KSpNYXRoLmZsb29yKChuKzMpLzQpKjg7Y2FzZSBTdC5SR0JBX0RYVDM6Y2FzZSBTdC5SR0JBX0RYVDU6Y2FzZSBTdC5SR0JBX0FTVEM6Y2FzZSBTdC5SR0JBOF9FVEMyX0VBQzpyZXR1cm4gTWF0aC5mbG9vcigoZSszKS80KSpNYXRoLmZsb29yKChuKzMpLzQpKjE2O2Nhc2UgU3QuUkdCX1BWUlRDXzRCUFBWMTpjYXNlIFN0LlJHQkFfUFZSVENfNEJQUFYxOnJldHVybiBNYXRoLmZsb29yKChNYXRoLm1heChlLDgpKk1hdGgubWF4KG4sOCkqNCs3KS84KTtjYXNlIFN0LlJHQl9QVlJUQ18yQlBQVjE6Y2FzZSBTdC5SR0JBX1BWUlRDXzJCUFBWMTpyZXR1cm4gTWF0aC5mbG9vcigoTWF0aC5tYXgoZSwxNikqTWF0aC5tYXgobiw4KSoyKzcpLzgpO2Nhc2UgU3QuUkdCQV9CQzc6cmV0dXJuIE1hdGguY2VpbChlLzQpKk1hdGguY2VpbChuLzQpKjE2O2RlZmF1bHQ6cmV0dXJuIDB9fTtTdC50ZXh0dXJlU2l6ZUluQnl0ZXM9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9U3QuY29tcG9uZW50c0xlbmd0aCh0KTtyZXR1cm4gbnIuaXNQYWNrZWQoZSkmJihyPTEpLHIqbnIuc2l6ZUluQnl0ZXMoZSkqbipvfTtTdC5hbGlnbm1lbnRJbkJ5dGVzPWZ1bmN0aW9uKHQsZSxuKXtsZXQgbz1TdC50ZXh0dXJlU2l6ZUluQnl0ZXModCxlLG4sMSklNDtyZXR1cm4gbz09PTA/NDpvPT09Mj8yOjF9O1N0LmNyZWF0ZVR5cGVkQXJyYXk9ZnVuY3Rpb24odCxlLG4sbyl7bGV0IHI9bnIuZ2V0VHlwZWRBcnJheUNvbnN0cnVjdG9yKGUpLGk9U3QuY29tcG9uZW50c0xlbmd0aCh0KSpuKm87cmV0dXJuIG5ldyByKGkpfTtTdC5mbGlwWT1mdW5jdGlvbih0LGUsbixvLHIpe2lmKHI9PT0xKXJldHVybiB0O2xldCBpPVN0LmNyZWF0ZVR5cGVkQXJyYXkoZSxuLG8scikscz1TdC5jb21wb25lbnRzTGVuZ3RoKGUpLGY9bypzO2ZvcihsZXQgdT0wO3U8cjsrK3Upe2xldCBjPXUqbypzLGw9KHItdS0xKSpvKnM7Zm9yKGxldCBwPTA7cDxmOysrcClpW2wrcF09dFtjK3BdfXJldHVybiBpfTtTdC50b0ludGVybmFsRm9ybWF0PWZ1bmN0aW9uKHQsZSxuKXtpZighbi53ZWJnbDIpcmV0dXJuIHQ7aWYodD09PVN0LkRFUFRIX1NURU5DSUwpcmV0dXJuIHF0LkRFUFRIMjRfU1RFTkNJTDg7aWYodD09PVN0LkRFUFRIX0NPTVBPTkVOVCl7aWYoZT09PW5yLlVOU0lHTkVEX1NIT1JUKXJldHVybiBxdC5ERVBUSF9DT01QT05FTlQxNjtpZihlPT09bnIuVU5TSUdORURfSU5UKXJldHVybiBxdC5ERVBUSF9DT01QT05FTlQyNH1pZihlPT09bnIuRkxPQVQpc3dpdGNoKHQpe2Nhc2UgU3QuUkdCQTpyZXR1cm4gcXQuUkdCQTMyRjtjYXNlIFN0LlJHQjpyZXR1cm4gcXQuUkdCMzJGO2Nhc2UgU3QuUkc6cmV0dXJuIHF0LlJHMzJGO2Nhc2UgU3QuUkVEOnJldHVybiBxdC5SMzJGfWlmKGU9PT1uci5IQUxGX0ZMT0FUKXN3aXRjaCh0KXtjYXNlIFN0LlJHQkE6cmV0dXJuIHF0LlJHQkExNkY7Y2FzZSBTdC5SR0I6cmV0dXJuIHF0LlJHQjE2RjtjYXNlIFN0LlJHOnJldHVybiBxdC5SRzE2RjtjYXNlIFN0LlJFRDpyZXR1cm4gcXQuUjE2Rn1yZXR1cm4gdH07Vm49T2JqZWN0LmZyZWV6ZShTdCl9KTt2YXIgeTgseXUsTFM9WigoKT0+e3k4PXtWS19GT1JNQVRfVU5ERUZJTkVEOjAsVktfRk9STUFUX1I0RzRfVU5PUk1fUEFDSzg6MSxWS19GT1JNQVRfUjRHNEI0QTRfVU5PUk1fUEFDSzE2OjIsVktfRk9STUFUX0I0RzRSNEE0X1VOT1JNX1BBQ0sxNjozLFZLX0ZPUk1BVF9SNUc2QjVfVU5PUk1fUEFDSzE2OjQsVktfRk9STUFUX0I1RzZSNV9VTk9STV9QQUNLMTY6NSxWS19GT1JNQVRfUjVHNUI1QTFfVU5PUk1fUEFDSzE2OjYsVktfRk9STUFUX0I1RzVSNUExX1VOT1JNX1BBQ0sxNjo3LFZLX0ZPUk1BVF9BMVI1RzVCNV9VTk9STV9QQUNLMTY6OCxWS19GT1JNQVRfUjhfVU5PUk06OSxWS19GT1JNQVRfUjhfU05PUk06MTAsVktfRk9STUFUX1I4X1VTQ0FMRUQ6MTEsVktfRk9STUFUX1I4X1NTQ0FMRUQ6MTIsVktfRk9STUFUX1I4X1VJTlQ6MTMsVktfRk9STUFUX1I4X1NJTlQ6MTQsVktfRk9STUFUX1I4X1NSR0I6MTUsVktfRk9STUFUX1I4RzhfVU5PUk06MTYsVktfRk9STUFUX1I4RzhfU05PUk06MTcsVktfRk9STUFUX1I4RzhfVVNDQUxFRDoxOCxWS19GT1JNQVRfUjhHOF9TU0NBTEVEOjE5LFZLX0ZPUk1BVF9SOEc4X1VJTlQ6MjAsVktfRk9STUFUX1I4RzhfU0lOVDoyMSxWS19GT1JNQVRfUjhHOF9TUkdCOjIyLFZLX0ZPUk1BVF9SOEc4QjhfVU5PUk06MjMsVktfRk9STUFUX1I4RzhCOF9TTk9STToyNCxWS19GT1JNQVRfUjhHOEI4X1VTQ0FMRUQ6MjUsVktfRk9STUFUX1I4RzhCOF9TU0NBTEVEOjI2LFZLX0ZPUk1BVF9SOEc4QjhfVUlOVDoyNyxWS19GT1JNQVRfUjhHOEI4X1NJTlQ6MjgsVktfRk9STUFUX1I4RzhCOF9TUkdCOjI5LFZLX0ZPUk1BVF9COEc4UjhfVU5PUk06MzAsVktfRk9STUFUX0I4RzhSOF9TTk9STTozMSxWS19GT1JNQVRfQjhHOFI4X1VTQ0FMRUQ6MzIsVktfRk9STUFUX0I4RzhSOF9TU0NBTEVEOjMzLFZLX0ZPUk1BVF9COEc4UjhfVUlOVDozNCxWS19GT1JNQVRfQjhHOFI4X1NJTlQ6MzUsVktfRk9STUFUX0I4RzhSOF9TUkdCOjM2LFZLX0ZPUk1BVF9SOEc4QjhBOF9VTk9STTozNyxWS19GT1JNQVRfUjhHOEI4QThfU05PUk06MzgsVktfRk9STUFUX1I4RzhCOEE4X1VTQ0FMRUQ6MzksVktfRk9STUFUX1I4RzhCOEE4X1NTQ0FMRUQ6NDAsVktfRk9STUFUX1I4RzhCOEE4X1VJTlQ6NDEsVktfRk9STUFUX1I4RzhCOEE4X1NJTlQ6NDIsVktfRk9STUFUX1I4RzhCOEE4X1NSR0I6NDMsVktfRk9STUFUX0I4RzhSOEE4X1VOT1JNOjQ0LFZLX0ZPUk1BVF9COEc4UjhBOF9TTk9STTo0NSxWS19GT1JNQVRfQjhHOFI4QThfVVNDQUxFRDo0NixWS19GT1JNQVRfQjhHOFI4QThfU1NDQUxFRDo0NyxWS19GT1JNQVRfQjhHOFI4QThfVUlOVDo0OCxWS19GT1JNQVRfQjhHOFI4QThfU0lOVDo0OSxWS19GT1JNQVRfQjhHOFI4QThfU1JHQjo1MCxWS19GT1JNQVRfQThCOEc4UjhfVU5PUk1fUEFDSzMyOjUxLFZLX0ZPUk1BVF9BOEI4RzhSOF9TTk9STV9QQUNLMzI6NTIsVktfRk9STUFUX0E4QjhHOFI4X1VTQ0FMRURfUEFDSzMyOjUzLFZLX0ZPUk1BVF9BOEI4RzhSOF9TU0NBTEVEX1BBQ0szMjo1NCxWS19GT1JNQVRfQThCOEc4UjhfVUlOVF9QQUNLMzI6NTUsVktfRk9STUFUX0E4QjhHOFI4X1NJTlRfUEFDSzMyOjU2LFZLX0ZPUk1BVF9BOEI4RzhSOF9TUkdCX1BBQ0szMjo1NyxWS19GT1JNQVRfQTJSMTBHMTBCMTBfVU5PUk1fUEFDSzMyOjU4LFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9TTk9STV9QQUNLMzI6NTksVktfRk9STUFUX0EyUjEwRzEwQjEwX1VTQ0FMRURfUEFDSzMyOjYwLFZLX0ZPUk1BVF9BMlIxMEcxMEIxMF9TU0NBTEVEX1BBQ0szMjo2MSxWS19GT1JNQVRfQTJSMTBHMTBCMTBfVUlOVF9QQUNLMzI6NjIsVktfRk9STUFUX0EyUjEwRzEwQjEwX1NJTlRfUEFDSzMyOjYzLFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9VTk9STV9QQUNLMzI6NjQsVktfRk9STUFUX0EyQjEwRzEwUjEwX1NOT1JNX1BBQ0szMjo2NSxWS19GT1JNQVRfQTJCMTBHMTBSMTBfVVNDQUxFRF9QQUNLMzI6NjYsVktfRk9STUFUX0EyQjEwRzEwUjEwX1NTQ0FMRURfUEFDSzMyOjY3LFZLX0ZPUk1BVF9BMkIxMEcxMFIxMF9VSU5UX1BBQ0szMjo2OCxWS19GT1JNQVRfQTJCMTBHMTBSMTBfU0lOVF9QQUNLMzI6NjksVktfRk9STUFUX1IxNl9VTk9STTo3MCxWS19GT1JNQVRfUjE2X1NOT1JNOjcxLFZLX0ZPUk1BVF9SMTZfVVNDQUxFRDo3MixWS19GT1JNQVRfUjE2X1NTQ0FMRUQ6NzMsVktfRk9STUFUX1IxNl9VSU5UOjc0LFZLX0ZPUk1BVF9SMTZfU0lOVDo3NSxWS19GT1JNQVRfUjE2X1NGTE9BVDo3NixWS19GT1JNQVRfUjE2RzE2X1VOT1JNOjc3LFZLX0ZPUk1BVF9SMTZHMTZfU05PUk06NzgsVktfRk9STUFUX1IxNkcxNl9VU0NBTEVEOjc5LFZLX0ZPUk1BVF9SMTZHMTZfU1NDQUxFRDo4MCxWS19GT1JNQVRfUjE2RzE2X1VJTlQ6ODEsVktfRk9STUFUX1IxNkcxNl9TSU5UOjgyLFZLX0ZPUk1BVF9SMTZHMTZfU0ZMT0FUOjgzLFZLX0ZPUk1BVF9SMTZHMTZCMTZfVU5PUk06ODQsVktfRk9STUFUX1IxNkcxNkIxNl9TTk9STTo4NSxWS19GT1JNQVRfUjE2RzE2QjE2X1VTQ0FMRUQ6ODYsVktfRk9STUFUX1IxNkcxNkIxNl9TU0NBTEVEOjg3LFZLX0ZPUk1BVF9SMTZHMTZCMTZfVUlOVDo4OCxWS19GT1JNQVRfUjE2RzE2QjE2X1NJTlQ6ODksVktfRk9STUFUX1IxNkcxNkIxNl9TRkxPQVQ6OTAsVktfRk9STUFUX1IxNkcxNkIxNkExNl9VTk9STTo5MSxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NOT1JNOjkyLFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfVVNDQUxFRDo5MyxWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NTQ0FMRUQ6OTQsVktfRk9STUFUX1IxNkcxNkIxNkExNl9VSU5UOjk1LFZLX0ZPUk1BVF9SMTZHMTZCMTZBMTZfU0lOVDo5NixWS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NGTE9BVDo5NyxWS19GT1JNQVRfUjMyX1VJTlQ6OTgsVktfRk9STUFUX1IzMl9TSU5UOjk5LFZLX0ZPUk1BVF9SMzJfU0ZMT0FUOjEwMCxWS19GT1JNQVRfUjMyRzMyX1VJTlQ6MTAxLFZLX0ZPUk1BVF9SMzJHMzJfU0lOVDoxMDIsVktfRk9STUFUX1IzMkczMl9TRkxPQVQ6MTAzLFZLX0ZPUk1BVF9SMzJHMzJCMzJfVUlOVDoxMDQsVktfRk9STUFUX1IzMkczMkIzMl9TSU5UOjEwNSxWS19GT1JNQVRfUjMyRzMyQjMyX1NGTE9BVDoxMDYsVktfRk9STUFUX1IzMkczMkIzMkEzMl9VSU5UOjEwNyxWS19GT1JNQVRfUjMyRzMyQjMyQTMyX1NJTlQ6MTA4LFZLX0ZPUk1BVF9SMzJHMzJCMzJBMzJfU0ZMT0FUOjEwOSxWS19GT1JNQVRfUjY0X1VJTlQ6MTEwLFZLX0ZPUk1BVF9SNjRfU0lOVDoxMTEsVktfRk9STUFUX1I2NF9TRkxPQVQ6MTEyLFZLX0ZPUk1BVF9SNjRHNjRfVUlOVDoxMTMsVktfRk9STUFUX1I2NEc2NF9TSU5UOjExNCxWS19GT1JNQVRfUjY0RzY0X1NGTE9BVDoxMTUsVktfRk9STUFUX1I2NEc2NEI2NF9VSU5UOjExNixWS19GT1JNQVRfUjY0RzY0QjY0X1NJTlQ6MTE3LFZLX0ZPUk1BVF9SNjRHNjRCNjRfU0ZMT0FUOjExOCxWS19GT1JNQVRfUjY0RzY0QjY0QTY0X1VJTlQ6MTE5LFZLX0ZPUk1BVF9SNjRHNjRCNjRBNjRfU0lOVDoxMjAsVktfRk9STUFUX1I2NEc2NEI2NEE2NF9TRkxPQVQ6MTIxLFZLX0ZPUk1BVF9CMTBHMTFSMTFfVUZMT0FUX1BBQ0szMjoxMjIsVktfRk9STUFUX0U1QjlHOVI5X1VGTE9BVF9QQUNLMzI6MTIzLFZLX0ZPUk1BVF9EMTZfVU5PUk06MTI0LFZLX0ZPUk1BVF9YOF9EMjRfVU5PUk1fUEFDSzMyOjEyNSxWS19GT1JNQVRfRDMyX1NGTE9BVDoxMjYsVktfRk9STUFUX1M4X1VJTlQ6MTI3LFZLX0ZPUk1BVF9EMTZfVU5PUk1fUzhfVUlOVDoxMjgsVktfRk9STUFUX0QyNF9VTk9STV9TOF9VSU5UOjEyOSxWS19GT1JNQVRfRDMyX1NGTE9BVF9TOF9VSU5UOjEzMCxWS19GT1JNQVRfQkMxX1JHQl9VTk9STV9CTE9DSzoxMzEsVktfRk9STUFUX0JDMV9SR0JfU1JHQl9CTE9DSzoxMzIsVktfRk9STUFUX0JDMV9SR0JBX1VOT1JNX0JMT0NLOjEzMyxWS19GT1JNQVRfQkMxX1JHQkFfU1JHQl9CTE9DSzoxMzQsVktfRk9STUFUX0JDMl9VTk9STV9CTE9DSzoxMzUsVktfRk9STUFUX0JDMl9TUkdCX0JMT0NLOjEzNixWS19GT1JNQVRfQkMzX1VOT1JNX0JMT0NLOjEzNyxWS19GT1JNQVRfQkMzX1NSR0JfQkxPQ0s6MTM4LFZLX0ZPUk1BVF9CQzRfVU5PUk1fQkxPQ0s6MTM5LFZLX0ZPUk1BVF9CQzRfU05PUk1fQkxPQ0s6MTQwLFZLX0ZPUk1BVF9CQzVfVU5PUk1fQkxPQ0s6MTQxLFZLX0ZPUk1BVF9CQzVfU05PUk1fQkxPQ0s6MTQyLFZLX0ZPUk1BVF9CQzZIX1VGTE9BVF9CTE9DSzoxNDMsVktfRk9STUFUX0JDNkhfU0ZMT0FUX0JMT0NLOjE0NCxWS19GT1JNQVRfQkM3X1VOT1JNX0JMT0NLOjE0NSxWS19GT1JNQVRfQkM3X1NSR0JfQkxPQ0s6MTQ2LFZLX0ZPUk1BVF9FVEMyX1I4RzhCOF9VTk9STV9CTE9DSzoxNDcsVktfRk9STUFUX0VUQzJfUjhHOEI4X1NSR0JfQkxPQ0s6MTQ4LFZLX0ZPUk1BVF9FVEMyX1I4RzhCOEExX1VOT1JNX0JMT0NLOjE0OSxWS19GT1JNQVRfRVRDMl9SOEc4QjhBMV9TUkdCX0JMT0NLOjE1MCxWS19GT1JNQVRfRVRDMl9SOEc4QjhBOF9VTk9STV9CTE9DSzoxNTEsVktfRk9STUFUX0VUQzJfUjhHOEI4QThfU1JHQl9CTE9DSzoxNTIsVktfRk9STUFUX0VBQ19SMTFfVU5PUk1fQkxPQ0s6MTUzLFZLX0ZPUk1BVF9FQUNfUjExX1NOT1JNX0JMT0NLOjE1NCxWS19GT1JNQVRfRUFDX1IxMUcxMV9VTk9STV9CTE9DSzoxNTUsVktfRk9STUFUX0VBQ19SMTFHMTFfU05PUk1fQkxPQ0s6MTU2LFZLX0ZPUk1BVF9BU1RDXzR4NF9VTk9STV9CTE9DSzoxNTcsVktfRk9STUFUX0FTVENfNHg0X1NSR0JfQkxPQ0s6MTU4LFZLX0ZPUk1BVF9BU1RDXzV4NF9VTk9STV9CTE9DSzoxNTksVktfRk9STUFUX0FTVENfNXg0X1NSR0JfQkxPQ0s6MTYwLFZLX0ZPUk1BVF9BU1RDXzV4NV9VTk9STV9CTE9DSzoxNjEsVktfRk9STUFUX0FTVENfNXg1X1NSR0JfQkxPQ0s6MTYyLFZLX0ZPUk1BVF9BU1RDXzZ4NV9VTk9STV9CTE9DSzoxNjMsVktfRk9STUFUX0FTVENfNng1X1NSR0JfQkxPQ0s6MTY0LFZLX0ZPUk1BVF9BU1RDXzZ4Nl9VTk9STV9CTE9DSzoxNjUsVktfRk9STUFUX0FTVENfNng2X1NSR0JfQkxPQ0s6MTY2LFZLX0ZPUk1BVF9BU1RDXzh4NV9VTk9STV9CTE9DSzoxNjcsVktfRk9STUFUX0FTVENfOHg1X1NSR0JfQkxPQ0s6MTY4LFZLX0ZPUk1BVF9BU1RDXzh4Nl9VTk9STV9CTE9DSzoxNjksVktfRk9STUFUX0FTVENfOHg2X1NSR0JfQkxPQ0s6MTcwLFZLX0ZPUk1BVF9BU1RDXzh4OF9VTk9STV9CTE9DSzoxNzEsVktfRk9STUFUX0FTVENfOHg4X1NSR0JfQkxPQ0s6MTcyLFZLX0ZPUk1BVF9BU1RDXzEweDVfVU5PUk1fQkxPQ0s6MTczLFZLX0ZPUk1BVF9BU1RDXzEweDVfU1JHQl9CTE9DSzoxNzQsVktfRk9STUFUX0FTVENfMTB4Nl9VTk9STV9CTE9DSzoxNzUsVktfRk9STUFUX0FTVENfMTB4Nl9TUkdCX0JMT0NLOjE3NixWS19GT1JNQVRfQVNUQ18xMHg4X1VOT1JNX0JMT0NLOjE3NyxWS19GT1JNQVRfQVNUQ18xMHg4X1NSR0JfQkxPQ0s6MTc4LFZLX0ZPUk1BVF9BU1RDXzEweDEwX1VOT1JNX0JMT0NLOjE3OSxWS19GT1JNQVRfQVNUQ18xMHgxMF9TUkdCX0JMT0NLOjE4MCxWS19GT1JNQVRfQVNUQ18xMngxMF9VTk9STV9CTE9DSzoxODEsVktfRk9STUFUX0FTVENfMTJ4MTBfU1JHQl9CTE9DSzoxODIsVktfRk9STUFUX0FTVENfMTJ4MTJfVU5PUk1fQkxPQ0s6MTgzLFZLX0ZPUk1BVF9BU1RDXzEyeDEyX1NSR0JfQkxPQ0s6MTg0LFZLX0ZPUk1BVF9HOEI4RzhSOF80MjJfVU5PUk06MTAwMDE1NmUzLFZLX0ZPUk1BVF9COEc4UjhHOF80MjJfVU5PUk06MTAwMDE1NjAwMSxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMF9VTk9STToxMDAwMTU2MDAyLFZLX0ZPUk1BVF9HOF9COFI4XzJQTEFORV80MjBfVU5PUk06MTAwMDE1NjAwMyxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMl9VTk9STToxMDAwMTU2MDA0LFZLX0ZPUk1BVF9HOF9COFI4XzJQTEFORV80MjJfVU5PUk06MTAwMDE1NjAwNSxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQ0NF9VTk9STToxMDAwMTU2MDA2LFZLX0ZPUk1BVF9SMTBYNl9VTk9STV9QQUNLMTY6MTAwMDE1NjAwNyxWS19GT1JNQVRfUjEwWDZHMTBYNl9VTk9STV8yUEFDSzE2OjEwMDAxNTYwMDgsVktfRk9STUFUX1IxMFg2RzEwWDZCMTBYNkExMFg2X1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAwOSxWS19GT1JNQVRfRzEwWDZCMTBYNkcxMFg2UjEwWDZfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAxMCxWS19GT1JNQVRfQjEwWDZHMTBYNlIxMFg2RzEwWDZfNDIyX1VOT1JNXzRQQUNLMTY6MTAwMDE1NjAxMSxWS19GT1JNQVRfRzEwWDZfQjEwWDZfUjEwWDZfM1BMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTIsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMTMsVktfRk9STUFUX0cxMFg2X0IxMFg2X1IxMFg2XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDE0LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNlIxMFg2XzJQTEFORV80MjJfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDE1LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDQ0X1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAxNixWS19GT1JNQVRfUjEyWDRfVU5PUk1fUEFDSzE2OjEwMDAxNTYwMTcsVktfRk9STUFUX1IxMlg0RzEyWDRfVU5PUk1fMlBBQ0sxNjoxMDAwMTU2MDE4LFZLX0ZPUk1BVF9SMTJYNEcxMlg0QjEyWDRBMTJYNF9VTk9STV80UEFDSzE2OjEwMDAxNTYwMTksVktfRk9STUFUX0cxMlg0QjEyWDRHMTJYNFIxMlg0XzQyMl9VTk9STV80UEFDSzE2OjEwMDAxNTYwMjAsVktfRk9STUFUX0IxMlg0RzEyWDRSMTJYNEcxMlg0XzQyMl9VTk9STV80UEFDSzE2OjEwMDAxNTYwMjEsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjBfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDIyLFZLX0ZPUk1BVF9HMTJYNF9CMTJYNFIxMlg0XzJQTEFORV80MjBfVU5PUk1fM1BBQ0sxNjoxMDAwMTU2MDIzLFZLX0ZPUk1BVF9HMTJYNF9CMTJYNF9SMTJYNF8zUExBTkVfNDIyX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAyNCxWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIyX1VOT1JNXzNQQUNLMTY6MTAwMDE1NjAyNSxWS19GT1JNQVRfRzEyWDRfQjEyWDRfUjEyWDRfM1BMQU5FXzQ0NF9VTk9STV8zUEFDSzE2OjEwMDAxNTYwMjYsVktfRk9STUFUX0cxNkIxNkcxNlIxNl80MjJfVU5PUk06MTAwMDE1NjAyNyxWS19GT1JNQVRfQjE2RzE2UjE2RzE2XzQyMl9VTk9STToxMDAwMTU2MDI4LFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIwX1VOT1JNOjEwMDAxNTYwMjksVktfRk9STUFUX0cxNl9CMTZSMTZfMlBMQU5FXzQyMF9VTk9STToxMDAwMTU2MDMwLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIyX1VOT1JNOjEwMDAxNTYwMzEsVktfRk9STUFUX0cxNl9CMTZSMTZfMlBMQU5FXzQyMl9VTk9STToxMDAwMTU2MDMyLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDQ0X1VOT1JNOjEwMDAxNTYwMzMsVktfRk9STUFUX1BWUlRDMV8yQlBQX1VOT1JNX0JMT0NLX0lNRzoxMDAwMDU0ZTMsVktfRk9STUFUX1BWUlRDMV80QlBQX1VOT1JNX0JMT0NLX0lNRzoxMDAwMDU0MDAxLFZLX0ZPUk1BVF9QVlJUQzJfMkJQUF9VTk9STV9CTE9DS19JTUc6MTAwMDA1NDAwMixWS19GT1JNQVRfUFZSVEMyXzRCUFBfVU5PUk1fQkxPQ0tfSU1HOjEwMDAwNTQwMDMsVktfRk9STUFUX1BWUlRDMV8yQlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDQsVktfRk9STUFUX1BWUlRDMV80QlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDUsVktfRk9STUFUX1BWUlRDMl8yQlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDYsVktfRk9STUFUX1BWUlRDMl80QlBQX1NSR0JfQkxPQ0tfSU1HOjEwMDAwNTQwMDcsVktfRk9STUFUX0FTVENfNHg0X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NmUzLFZLX0ZPUk1BVF9BU1RDXzV4NF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDEsVktfRk9STUFUX0FTVENfNXg1X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwMixWS19GT1JNQVRfQVNUQ182eDVfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDAzLFZLX0ZPUk1BVF9BU1RDXzZ4Nl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDQsVktfRk9STUFUX0FTVENfOHg1X1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAwNSxWS19GT1JNQVRfQVNUQ184eDZfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDA2LFZLX0ZPUk1BVF9BU1RDXzh4OF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDcsVktfRk9STUFUX0FTVENfMTB4NV9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDgsVktfRk9STUFUX0FTVENfMTB4Nl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMDksVktfRk9STUFUX0FTVENfMTB4OF9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMTAsVktfRk9STUFUX0FTVENfMTB4MTBfU0ZMT0FUX0JMT0NLX0VYVDoxMDAwMDY2MDExLFZLX0ZPUk1BVF9BU1RDXzEyeDEwX1NGTE9BVF9CTE9DS19FWFQ6MTAwMDA2NjAxMixWS19GT1JNQVRfQVNUQ18xMngxMl9TRkxPQVRfQkxPQ0tfRVhUOjEwMDAwNjYwMTMsVktfRk9STUFUX0c4QjhHOFI4XzQyMl9VTk9STV9LSFI6MTAwMDE1NmUzLFZLX0ZPUk1BVF9COEc4UjhHOF80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMDEsVktfRk9STUFUX0c4X0I4X1I4XzNQTEFORV80MjBfVU5PUk1fS0hSOjEwMDAxNTYwMDIsVktfRk9STUFUX0c4X0I4UjhfMlBMQU5FXzQyMF9VTk9STV9LSFI6MTAwMDE1NjAwMyxWS19GT1JNQVRfRzhfQjhfUjhfM1BMQU5FXzQyMl9VTk9STV9LSFI6MTAwMDE1NjAwNCxWS19GT1JNQVRfRzhfQjhSOF8yUExBTkVfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDA1LFZLX0ZPUk1BVF9HOF9COF9SOF8zUExBTkVfNDQ0X1VOT1JNX0tIUjoxMDAwMTU2MDA2LFZLX0ZPUk1BVF9SMTBYNl9VTk9STV9QQUNLMTZfS0hSOjEwMDAxNTYwMDcsVktfRk9STUFUX1IxMFg2RzEwWDZfVU5PUk1fMlBBQ0sxNl9LSFI6MTAwMDE1NjAwOCxWS19GT1JNQVRfUjEwWDZHMTBYNkIxMFg2QTEwWDZfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAwOSxWS19GT1JNQVRfRzEwWDZCMTBYNkcxMFg2UjEwWDZfNDIyX1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMTAsVktfRk9STUFUX0IxMFg2RzEwWDZSMTBYNkcxMFg2XzQyMl9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDExLFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDIwX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTIsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMF9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDEzLFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDIyX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTQsVktfRk9STUFUX0cxMFg2X0IxMFg2UjEwWDZfMlBMQU5FXzQyMl9VTk9STV8zUEFDSzE2X0tIUjoxMDAwMTU2MDE1LFZLX0ZPUk1BVF9HMTBYNl9CMTBYNl9SMTBYNl8zUExBTkVfNDQ0X1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMTYsVktfRk9STUFUX1IxMlg0X1VOT1JNX1BBQ0sxNl9LSFI6MTAwMDE1NjAxNyxWS19GT1JNQVRfUjEyWDRHMTJYNF9VTk9STV8yUEFDSzE2X0tIUjoxMDAwMTU2MDE4LFZLX0ZPUk1BVF9SMTJYNEcxMlg0QjEyWDRBMTJYNF9VTk9STV80UEFDSzE2X0tIUjoxMDAwMTU2MDE5LFZLX0ZPUk1BVF9HMTJYNEIxMlg0RzEyWDRSMTJYNF80MjJfVU5PUk1fNFBBQ0sxNl9LSFI6MTAwMDE1NjAyMCxWS19GT1JNQVRfQjEyWDRHMTJYNFIxMlg0RzEyWDRfNDIyX1VOT1JNXzRQQUNLMTZfS0hSOjEwMDAxNTYwMjEsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjBfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyMixWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIwX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMjMsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80MjJfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyNCxWS19GT1JNQVRfRzEyWDRfQjEyWDRSMTJYNF8yUExBTkVfNDIyX1VOT1JNXzNQQUNLMTZfS0hSOjEwMDAxNTYwMjUsVktfRk9STUFUX0cxMlg0X0IxMlg0X1IxMlg0XzNQTEFORV80NDRfVU5PUk1fM1BBQ0sxNl9LSFI6MTAwMDE1NjAyNixWS19GT1JNQVRfRzE2QjE2RzE2UjE2XzQyMl9VTk9STV9LSFI6MTAwMDE1NjAyNyxWS19GT1JNQVRfQjE2RzE2UjE2RzE2XzQyMl9VTk9STV9LSFI6MTAwMDE1NjAyOCxWS19GT1JNQVRfRzE2X0IxNl9SMTZfM1BMQU5FXzQyMF9VTk9STV9LSFI6MTAwMDE1NjAyOSxWS19GT1JNQVRfRzE2X0IxNlIxNl8yUExBTkVfNDIwX1VOT1JNX0tIUjoxMDAwMTU2MDMwLFZLX0ZPUk1BVF9HMTZfQjE2X1IxNl8zUExBTkVfNDIyX1VOT1JNX0tIUjoxMDAwMTU2MDMxLFZLX0ZPUk1BVF9HMTZfQjE2UjE2XzJQTEFORV80MjJfVU5PUk1fS0hSOjEwMDAxNTYwMzIsVktfRk9STUFUX0cxNl9CMTZfUjE2XzNQTEFORV80NDRfVU5PUk1fS0hSOjEwMDAxNTYwMzN9LHl1PU9iamVjdC5mcmVlemUoeTgpfSk7ZnVuY3Rpb24gRFModCl7cmV0dXJuIG5ldyBUZXh0RGVjb2RlcigpLmRlY29kZSh0KX1mdW5jdGlvbiBGUyh0KXtsZXQgZT1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQsa28ubGVuZ3RoKTtpZihlWzBdIT09a29bMF18fGVbMV0hPT1rb1sxXXx8ZVsyXSE9PWtvWzJdfHxlWzNdIT09a29bM118fGVbNF0hPT1rb1s0XXx8ZVs1XSE9PWtvWzVdfHxlWzZdIT09a29bNl18fGVbN10hPT1rb1s3XXx8ZVs4XSE9PWtvWzhdfHxlWzldIT09a29bOV18fGVbMTBdIT09a29bMTBdfHxlWzExXSE9PWtvWzExXSl0aHJvdyBuZXcgRXJyb3IoIk1pc3NpbmcgS1RYIDIuMCBpZGVudGlmaWVyLiIpO2xldCBuPW5ldyBaZyxvPTE3KlVpbnQzMkFycmF5LkJZVEVTX1BFUl9FTEVNRU5ULHI9bmV3IFBjKHQsa28ubGVuZ3RoLG8sITApO24udmtGb3JtYXQ9ci5fbmV4dFVpbnQzMigpLG4udHlwZVNpemU9ci5fbmV4dFVpbnQzMigpLG4ucGl4ZWxXaWR0aD1yLl9uZXh0VWludDMyKCksbi5waXhlbEhlaWdodD1yLl9uZXh0VWludDMyKCksbi5waXhlbERlcHRoPXIuX25leHRVaW50MzIoKSxuLmxheWVyQ291bnQ9ci5fbmV4dFVpbnQzMigpLG4uZmFjZUNvdW50PXIuX25leHRVaW50MzIoKTtsZXQgaT1yLl9uZXh0VWludDMyKCk7bi5zdXBlcmNvbXByZXNzaW9uU2NoZW1lPXIuX25leHRVaW50MzIoKTtsZXQgcz1yLl9uZXh0VWludDMyKCksZj1yLl9uZXh0VWludDMyKCksdT1yLl9uZXh0VWludDMyKCksYz1yLl9uZXh0VWludDMyKCksbD1yLl9uZXh0VWludDY0KCkscD1yLl9uZXh0VWludDY0KCksZD1pKjMqOCxtPW5ldyBQYyh0LGtvLmxlbmd0aCtvLGQsITApO2ZvcihsZXQgWD0wO1g8aTtYKyspbi5sZXZlbHMucHVzaCh7bGV2ZWxEYXRhOm5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCttLl9uZXh0VWludDY0KCksbS5fbmV4dFVpbnQ2NCgpKSx1bmNvbXByZXNzZWRCeXRlTGVuZ3RoOm0uX25leHRVaW50NjQoKX0pO2xldCBfPW5ldyBQYyh0LHMsZiwhMCksZz17dmVuZG9ySWQ6Xy5fc2tpcCg0KS5fbmV4dFVpbnQxNigpLGRlc2NyaXB0b3JUeXBlOl8uX25leHRVaW50MTYoKSx2ZXJzaW9uTnVtYmVyOl8uX25leHRVaW50MTYoKSxkZXNjcmlwdG9yQmxvY2tTaXplOl8uX25leHRVaW50MTYoKSxjb2xvck1vZGVsOl8uX25leHRVaW50OCgpLGNvbG9yUHJpbWFyaWVzOl8uX25leHRVaW50OCgpLHRyYW5zZmVyRnVuY3Rpb246Xy5fbmV4dFVpbnQ4KCksZmxhZ3M6Xy5fbmV4dFVpbnQ4KCksdGV4ZWxCbG9ja0RpbWVuc2lvbjpbXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCldLGJ5dGVzUGxhbmU6W18uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpLF8uX25leHRVaW50OCgpXSxzYW1wbGVzOltdfSxPPShnLmRlc2NyaXB0b3JCbG9ja1NpemUvNC02KS80O2ZvcihsZXQgWD0wO1g8TztYKyspe2xldCBSPXtiaXRPZmZzZXQ6Xy5fbmV4dFVpbnQxNigpLGJpdExlbmd0aDpfLl9uZXh0VWludDgoKSxjaGFubmVsVHlwZTpfLl9uZXh0VWludDgoKSxzYW1wbGVQb3NpdGlvbjpbXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCksXy5fbmV4dFVpbnQ4KCldLHNhbXBsZUxvd2VyOi0xLzAsc2FtcGxlVXBwZXI6MS8wfTtSLmNoYW5uZWxUeXBlJjY0PyhSLnNhbXBsZUxvd2VyPV8uX25leHRJbnQzMigpLFIuc2FtcGxlVXBwZXI9Xy5fbmV4dEludDMyKCkpOihSLnNhbXBsZUxvd2VyPV8uX25leHRVaW50MzIoKSxSLnNhbXBsZVVwcGVyPV8uX25leHRVaW50MzIoKSksZy5zYW1wbGVzW1hdPVJ9bi5kYXRhRm9ybWF0RGVzY3JpcHRvci5sZW5ndGg9MCxuLmRhdGFGb3JtYXREZXNjcmlwdG9yLnB1c2goZyk7bGV0IEU9bmV3IFBjKHQsdSxjLCEwKTtmb3IoO0UuX29mZnNldDxjOyl7bGV0IFg9RS5fbmV4dFVpbnQzMigpLFI9RS5fc2NhbihYKSxvdD1EUyhSKTtpZihuLmtleVZhbHVlW290XT1FLl9uZXh0VWludDhBcnJheShYLVIuYnl0ZUxlbmd0aC0xKSxvdC5tYXRjaCgvXmt0eC9pKSl7bGV0IHB0PURTKG4ua2V5VmFsdWVbb3RdKTtuLmtleVZhbHVlW290XT1wdC5zdWJzdHJpbmcoMCxwdC5sYXN0SW5kZXhPZigiXDAiKSl9bGV0IGF0PVglND80LVglNDowO0UuX3NraXAoYXQpfWlmKHA8PTApcmV0dXJuIG47bGV0IFQ9bmV3IFBjKHQsbCxwLCEwKSxDPVQuX25leHRVaW50MTYoKSxOPVQuX25leHRVaW50MTYoKSxJPVQuX25leHRVaW50MzIoKSxEPVQuX25leHRVaW50MzIoKSx2PVQuX25leHRVaW50MzIoKSxMPVQuX25leHRVaW50MzIoKSxVPVtdO2ZvcihsZXQgWD0wO1g8aTtYKyspVS5wdXNoKHtpbWFnZUZsYWdzOlQuX25leHRVaW50MzIoKSxyZ2JTbGljZUJ5dGVPZmZzZXQ6VC5fbmV4dFVpbnQzMigpLHJnYlNsaWNlQnl0ZUxlbmd0aDpULl9uZXh0VWludDMyKCksYWxwaGFTbGljZUJ5dGVPZmZzZXQ6VC5fbmV4dFVpbnQzMigpLGFscGhhU2xpY2VCeXRlTGVuZ3RoOlQuX25leHRVaW50MzIoKX0pO2xldCBBPWwrVC5fb2Zmc2V0LFM9QStJLFA9UytELEI9UCt2LGo9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0K0EsSSksSD1uZXcgVWludDhBcnJheSh0LmJ1ZmZlcix0LmJ5dGVPZmZzZXQrUyxEKSxrPW5ldyBVaW50OEFycmF5KHQuYnVmZmVyLHQuYnl0ZU9mZnNldCtQLHYpLEs9bmV3IFVpbnQ4QXJyYXkodC5idWZmZXIsdC5ieXRlT2Zmc2V0K0IsTCk7cmV0dXJuIG4uZ2xvYmFsRGF0YT17ZW5kcG9pbnRDb3VudDpDLHNlbGVjdG9yQ291bnQ6TixpbWFnZURlc2NzOlUsZW5kcG9pbnRzRGF0YTpqLHNlbGVjdG9yc0RhdGE6SCx0YWJsZXNEYXRhOmssZXh0ZW5kZWREYXRhOkt9LG59dmFyIFpnLFBjLHhsdCxrbyxCUz1aKCgpPT57Wmc9Y2xhc3N7Y29uc3RydWN0b3IoKXt0aGlzLnZrRm9ybWF0PTAsdGhpcy50eXBlU2l6ZT0xLHRoaXMucGl4ZWxXaWR0aD0wLHRoaXMucGl4ZWxIZWlnaHQ9MCx0aGlzLnBpeGVsRGVwdGg9MCx0aGlzLmxheWVyQ291bnQ9MCx0aGlzLmZhY2VDb3VudD0xLHRoaXMuc3VwZXJjb21wcmVzc2lvblNjaGVtZT0wLHRoaXMubGV2ZWxzPVtdLHRoaXMuZGF0YUZvcm1hdERlc2NyaXB0b3I9W3t2ZW5kb3JJZDowLGRlc2NyaXB0b3JUeXBlOjAsZGVzY3JpcHRvckJsb2NrU2l6ZTowLHZlcnNpb25OdW1iZXI6Mixjb2xvck1vZGVsOjAsY29sb3JQcmltYXJpZXM6MSx0cmFuc2ZlckZ1bmN0aW9uOjIsZmxhZ3M6MCx0ZXhlbEJsb2NrRGltZW5zaW9uOlswLDAsMCwwXSxieXRlc1BsYW5lOlswLDAsMCwwLDAsMCwwLDBdLHNhbXBsZXM6W119XSx0aGlzLmtleVZhbHVlPXt9LHRoaXMuZ2xvYmFsRGF0YT1udWxsfX0sUGM9Y2xhc3N7Y29uc3RydWN0b3IoZSxuLG8scil7dGhpcy5fZGF0YVZpZXc9dm9pZCAwLHRoaXMuX2xpdHRsZUVuZGlhbj12b2lkIDAsdGhpcy5fb2Zmc2V0PXZvaWQgMCx0aGlzLl9kYXRhVmlldz1uZXcgRGF0YVZpZXcoZS5idWZmZXIsZS5ieXRlT2Zmc2V0K24sbyksdGhpcy5fbGl0dGxlRW5kaWFuPXIsdGhpcy5fb2Zmc2V0PTB9X25leHRVaW50OCgpe2xldCBlPXRoaXMuX2RhdGFWaWV3LmdldFVpbnQ4KHRoaXMuX29mZnNldCk7cmV0dXJuIHRoaXMuX29mZnNldCs9MSxlfV9uZXh0VWludDE2KCl7bGV0IGU9dGhpcy5fZGF0YVZpZXcuZ2V0VWludDE2KHRoaXMuX29mZnNldCx0aGlzLl9saXR0bGVFbmRpYW4pO3JldHVybiB0aGlzLl9vZmZzZXQrPTIsZX1fbmV4dFVpbnQzMigpe2xldCBlPXRoaXMuX2RhdGFWaWV3LmdldFVpbnQzMih0aGlzLl9vZmZzZXQsdGhpcy5fbGl0dGxlRW5kaWFuKTtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz00LGV9X25leHRVaW50NjQoKXtsZXQgZT10aGlzLl9kYXRhVmlldy5nZXRVaW50MzIodGhpcy5fb2Zmc2V0LHRoaXMuX2xpdHRsZUVuZGlhbiksbj10aGlzLl9kYXRhVmlldy5nZXRVaW50MzIodGhpcy5fb2Zmc2V0KzQsdGhpcy5fbGl0dGxlRW5kaWFuKSxvPWUrMioqMzIqbjtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz04LG99X25leHRJbnQzMigpe2xldCBlPXRoaXMuX2RhdGFWaWV3LmdldEludDMyKHRoaXMuX29mZnNldCx0aGlzLl9saXR0bGVFbmRpYW4pO3JldHVybiB0aGlzLl9vZmZzZXQrPTQsZX1fbmV4dFVpbnQ4QXJyYXkoZSl7bGV0IG49bmV3IFVpbnQ4QXJyYXkodGhpcy5fZGF0YVZpZXcuYnVmZmVyLHRoaXMuX2RhdGFWaWV3LmJ5dGVPZmZzZXQrdGhpcy5fb2Zmc2V0LGUpO3JldHVybiB0aGlzLl9vZmZzZXQrPWUsbn1fc2tpcChlKXtyZXR1cm4gdGhpcy5fb2Zmc2V0Kz1lLHRoaXN9X3NjYW4oZSxuPTApe2xldCBvPXRoaXMuX29mZnNldCxyPTA7Zm9yKDt0aGlzLl9kYXRhVmlldy5nZXRVaW50OCh0aGlzLl9vZmZzZXQpIT09biYmcjxlOylyKyssdGhpcy5fb2Zmc2V0Kys7cmV0dXJuIHI8ZSYmdGhpcy5fb2Zmc2V0KyssbmV3IFVpbnQ4QXJyYXkodGhpcy5fZGF0YVZpZXcuYnVmZmVyLHRoaXMuX2RhdGFWaWV3LmJ5dGVPZmZzZXQrbyxyKX19LHhsdD1uZXcgVWludDhBcnJheShbMF0pLGtvPVsxNzEsNzUsODQsODgsMzIsNTAsNDgsMTg3LDEzLDEwLDI2LDEwXX0pO3ZhciBVUz1YbigoeW0sSmcpPT57dmFyIFFnPWZ1bmN0aW9uKCl7dmFyIHQ9dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdD9kb2N1bWVudC5jdXJyZW50U2NyaXB0LnNyYzp2b2lkIDA7cmV0dXJuIHR5cGVvZiBfX2ZpbGVuYW1lPCJ1IiYmKHQ9dHx8X19maWxlbmFtZSksZnVuY3Rpb24oZSl7ZT1lfHx7fTt2YXIgbj10eXBlb2YgZTwidSI/ZTp7fSxvLHI7bi5yZWFkeT1uZXcgUHJvbWlzZShmdW5jdGlvbihWLEcpe289VixyPUd9KTt2YXIgaT17fSxzO2ZvcihzIGluIG4pbi5oYXNPd25Qcm9wZXJ0eShzKSYmKGlbc109bltzXSk7dmFyIGY9W10sdT0iLi90aGlzLnByb2dyYW0iLGM9ZnVuY3Rpb24oVixHKXt0aHJvdyBHfSxsPSExLHA9ITEsZD0hMSxtPSExO2w9dHlwZW9mIHdpbmRvdz09Im9iamVjdCIscD10eXBlb2YgaW1wb3J0U2NyaXB0cz09ImZ1bmN0aW9uIixkPXR5cGVvZiBwcm9jZXNzPT0ib2JqZWN0IiYmdHlwZW9mIHByb2Nlc3MudmVyc2lvbnM9PSJvYmplY3QiJiZ0eXBlb2YgcHJvY2Vzcy52ZXJzaW9ucy5ub2RlPT0ic3RyaW5nIixtPSFsJiYhZCYmIXA7dmFyIF89IiI7ZnVuY3Rpb24gZyhWKXtyZXR1cm4gbi5sb2NhdGVGaWxlP24ubG9jYXRlRmlsZShWLF8pOl8rVn12YXIgYix3LE8sRSxULEM7ZD8ocD9fPXByKCJwYXRoIikuZGlybmFtZShfKSsiLyI6Xz1fX2Rpcm5hbWUrIi8iLGI9ZnVuY3Rpb24oRyxZKXtyZXR1cm4gVHx8KFQ9cHIoImZzIikpLEN8fChDPXByKCJwYXRoIikpLEc9Qy5ub3JtYWxpemUoRyksVC5yZWFkRmlsZVN5bmMoRyxZP251bGw6InV0ZjgiKX0sTz1mdW5jdGlvbihHKXt2YXIgWT1iKEcsITApO3JldHVybiBZLmJ1ZmZlcnx8KFk9bmV3IFVpbnQ4QXJyYXkoWSkpLEIoWS5idWZmZXIpLFl9LHByb2Nlc3MuYXJndi5sZW5ndGg+MSYmKHU9cHJvY2Vzcy5hcmd2WzFdLnJlcGxhY2UoL1xcL2csIi8iKSksZj1wcm9jZXNzLmFyZ3Yuc2xpY2UoMikscHJvY2Vzcy5vbigidW5jYXVnaHRFeGNlcHRpb24iLGZ1bmN0aW9uKFYpe2lmKCEoViBpbnN0YW5jZW9mIE9pKSl0aHJvdyBWfSkscHJvY2Vzcy5vbigidW5oYW5kbGVkUmVqZWN0aW9uIixLZSksYz1mdW5jdGlvbihWKXtwcm9jZXNzLmV4aXQoVil9LG4uaW5zcGVjdD1mdW5jdGlvbigpe3JldHVybiJbRW1zY3JpcHRlbiBNb2R1bGUgb2JqZWN0XSJ9KTptPyh0eXBlb2YgcmVhZDwidSImJihiPWZ1bmN0aW9uKEcpe3JldHVybiByZWFkKEcpfSksTz1mdW5jdGlvbihHKXt2YXIgWTtyZXR1cm4gdHlwZW9mIHJlYWRidWZmZXI9PSJmdW5jdGlvbiI/bmV3IFVpbnQ4QXJyYXkocmVhZGJ1ZmZlcihHKSk6KFk9cmVhZChHLCJiaW5hcnkiKSxCKHR5cGVvZiBZPT0ib2JqZWN0IiksWSl9LHR5cGVvZiBzY3JpcHRBcmdzPCJ1Ij9mPXNjcmlwdEFyZ3M6dHlwZW9mIGFyZ3VtZW50czwidSImJihmPWFyZ3VtZW50cyksdHlwZW9mIHF1aXQ9PSJmdW5jdGlvbiImJihjPWZ1bmN0aW9uKFYpe3F1aXQoVil9KSx0eXBlb2YgcHJpbnQ8InUiJiYodHlwZW9mIGNvbnNvbGU+InUiJiYoY29uc29sZT17fSksY29uc29sZS5sb2c9cHJpbnQsY29uc29sZS53YXJuPWNvbnNvbGUuZXJyb3I9dHlwZW9mIHByaW50RXJyPCJ1Ij9wcmludEVycjpwcmludCkpOihsfHxwKSYmKHA/Xz1zZWxmLmxvY2F0aW9uLmhyZWY6dHlwZW9mIGRvY3VtZW50PCJ1IiYmZG9jdW1lbnQuY3VycmVudFNjcmlwdCYmKF89ZG9jdW1lbnQuY3VycmVudFNjcmlwdC5zcmMpLHQmJihfPXQpLF8uaW5kZXhPZigiYmxvYjoiKSE9PTA/Xz1fLnN1YnN0cigwLF8ubGFzdEluZGV4T2YoIi8iKSsxKTpfPSIiLGI9ZnVuY3Rpb24oVil7dmFyIEc9bmV3IFhNTEh0dHBSZXF1ZXN0O3JldHVybiBHLm9wZW4oIkdFVCIsViwhMSksRy5zZW5kKG51bGwpLEcucmVzcG9uc2VUZXh0fSxwJiYoTz1mdW5jdGlvbihWKXt2YXIgRz1uZXcgWE1MSHR0cFJlcXVlc3Q7cmV0dXJuIEcub3BlbigiR0VUIixWLCExKSxHLnJlc3BvbnNlVHlwZT0iYXJyYXlidWZmZXIiLEcuc2VuZChudWxsKSxuZXcgVWludDhBcnJheShHLnJlc3BvbnNlKX0pLHc9ZnVuY3Rpb24oVixHLFkpe3ZhciBKPW5ldyBYTUxIdHRwUmVxdWVzdDtKLm9wZW4oIkdFVCIsViwhMCksSi5yZXNwb25zZVR5cGU9ImFycmF5YnVmZmVyIixKLm9ubG9hZD1mdW5jdGlvbigpe2lmKEouc3RhdHVzPT0yMDB8fEouc3RhdHVzPT0wJiZKLnJlc3BvbnNlKXtHKEoucmVzcG9uc2UpO3JldHVybn1ZKCl9LEoub25lcnJvcj1ZLEouc2VuZChudWxsKX0sRT1mdW5jdGlvbihWKXtkb2N1bWVudC50aXRsZT1WfSk7dmFyIE49bi5wcmludHx8Y29uc29sZS5sb2cuYmluZChjb25zb2xlKSxJPW4ucHJpbnRFcnJ8fGNvbnNvbGUud2Fybi5iaW5kKGNvbnNvbGUpO2ZvcihzIGluIGkpaS5oYXNPd25Qcm9wZXJ0eShzKSYmKG5bc109aVtzXSk7aT1udWxsLG4uYXJndW1lbnRzJiYoZj1uLmFyZ3VtZW50cyksbi50aGlzUHJvZ3JhbSYmKHU9bi50aGlzUHJvZ3JhbSksbi5xdWl0JiYoYz1uLnF1aXQpO3ZhciBEPTAsdj1mdW5jdGlvbihWKXtEPVZ9LEw7bi53YXNtQmluYXJ5JiYoTD1uLndhc21CaW5hcnkpO3ZhciBVPW4ubm9FeGl0UnVudGltZXx8ITA7dHlwZW9mIFdlYkFzc2VtYmx5IT0ib2JqZWN0IiYmS2UoIm5vIG5hdGl2ZSB3YXNtIHN1cHBvcnQgZGV0ZWN0ZWQiKTt2YXIgQSxTPSExLFA7ZnVuY3Rpb24gQihWLEcpe1Z8fEtlKCJBc3NlcnRpb24gZmFpbGVkOiAiK0cpfXZhciBqPXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGY4Iik6dm9pZCAwO2Z1bmN0aW9uIEgoVixHLFkpe2Zvcih2YXIgSj1HK1ksbHQ9RztWW2x0XSYmIShsdD49Sik7KSsrbHQ7aWYobHQtRz4xNiYmVi5zdWJhcnJheSYmailyZXR1cm4gai5kZWNvZGUoVi5zdWJhcnJheShHLGx0KSk7Zm9yKHZhciBPdD0iIjtHPGx0Oyl7dmFyIFJ0PVZbRysrXTtpZighKFJ0JjEyOCkpe090Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKFJ0KTtjb250aW51ZX12YXIgaHQ9VltHKytdJjYzO2lmKChSdCYyMjQpPT0xOTIpe090Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKChSdCYzMSk8PDZ8aHQpO2NvbnRpbnVlfXZhciBfdD1WW0crK10mNjM7aWYoKFJ0JjI0MCk9PTIyND9SdD0oUnQmMTUpPDwxMnxodDw8NnxfdDpSdD0oUnQmNyk8PDE4fGh0PDwxMnxfdDw8NnxWW0crK10mNjMsUnQ8NjU1MzYpT3QrPVN0cmluZy5mcm9tQ2hhckNvZGUoUnQpO2Vsc2V7dmFyIEt0PVJ0LTY1NTM2O090Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKDU1Mjk2fEt0Pj4xMCw1NjMyMHxLdCYxMDIzKX19cmV0dXJuIE90fWZ1bmN0aW9uIGsoVixHKXtyZXR1cm4gVj9IKHZ0LFYsRyk6IiJ9ZnVuY3Rpb24gSyhWLEcsWSxKKXtpZighKEo+MCkpcmV0dXJuIDA7Zm9yKHZhciBsdD1ZLE90PVkrSi0xLFJ0PTA7UnQ8Vi5sZW5ndGg7KytSdCl7dmFyIGh0PVYuY2hhckNvZGVBdChSdCk7aWYoaHQ+PTU1Mjk2JiZodDw9NTczNDMpe3ZhciBfdD1WLmNoYXJDb2RlQXQoKytSdCk7aHQ9NjU1MzYrKChodCYxMDIzKTw8MTApfF90JjEwMjN9aWYoaHQ8PTEyNyl7aWYoWT49T3QpYnJlYWs7R1tZKytdPWh0fWVsc2UgaWYoaHQ8PTIwNDcpe2lmKFkrMT49T3QpYnJlYWs7R1tZKytdPTE5MnxodD4+NixHW1krK109MTI4fGh0JjYzfWVsc2UgaWYoaHQ8PTY1NTM1KXtpZihZKzI+PU90KWJyZWFrO0dbWSsrXT0yMjR8aHQ+PjEyLEdbWSsrXT0xMjh8aHQ+PjYmNjMsR1tZKytdPTEyOHxodCY2M31lbHNle2lmKFkrMz49T3QpYnJlYWs7R1tZKytdPTI0MHxodD4+MTgsR1tZKytdPTEyOHxodD4+MTImNjMsR1tZKytdPTEyOHxodD4+NiY2MyxHW1krK109MTI4fGh0JjYzfX1yZXR1cm4gR1tZXT0wLFktbHR9ZnVuY3Rpb24gWChWLEcsWSl7cmV0dXJuIEsoVix2dCxHLFkpfWZ1bmN0aW9uIFIoVil7Zm9yKHZhciBHPTAsWT0wO1k8Vi5sZW5ndGg7KytZKXt2YXIgSj1WLmNoYXJDb2RlQXQoWSk7Sj49NTUyOTYmJko8PTU3MzQzJiYoSj02NTUzNisoKEomMTAyMyk8PDEwKXxWLmNoYXJDb2RlQXQoKytZKSYxMDIzKSxKPD0xMjc/KytHOko8PTIwNDc/Rys9MjpKPD02NTUzNT9HKz0zOkcrPTR9cmV0dXJuIEd9dmFyIG90PXR5cGVvZiBUZXh0RGVjb2RlcjwidSI/bmV3IFRleHREZWNvZGVyKCJ1dGYtMTZsZSIpOnZvaWQgMDtmdW5jdGlvbiBhdChWLEcpe2Zvcih2YXIgWT1WLEo9WT4+MSxsdD1KK0cvMjshKEo+PWx0KSYmbWVbSl07KSsrSjtpZihZPUo8PDEsWS1WPjMyJiZvdClyZXR1cm4gb3QuZGVjb2RlKHZ0LnN1YmFycmF5KFYsWSkpO2Zvcih2YXIgT3Q9IiIsUnQ9MDshKFJ0Pj1HLzIpOysrUnQpe3ZhciBodD16dFtWK1J0KjI+PjFdO2lmKGh0PT0wKWJyZWFrO090Kz1TdHJpbmcuZnJvbUNoYXJDb2RlKGh0KX1yZXR1cm4gT3R9ZnVuY3Rpb24gcHQoVixHLFkpe2lmKFk9PT12b2lkIDAmJihZPTIxNDc0ODM2NDcpLFk8MilyZXR1cm4gMDtZLT0yO2Zvcih2YXIgSj1HLGx0PVk8Vi5sZW5ndGgqMj9ZLzI6Vi5sZW5ndGgsT3Q9MDtPdDxsdDsrK090KXt2YXIgUnQ9Vi5jaGFyQ29kZUF0KE90KTt6dFtHPj4xXT1SdCxHKz0yfXJldHVybiB6dFtHPj4xXT0wLEctSn1mdW5jdGlvbiB5dChWKXtyZXR1cm4gVi5sZW5ndGgqMn1mdW5jdGlvbiBydChWLEcpe2Zvcih2YXIgWT0wLEo9IiI7IShZPj1HLzQpOyl7dmFyIGx0PWFlW1YrWSo0Pj4yXTtpZihsdD09MClicmVhaztpZigrK1ksbHQ+PTY1NTM2KXt2YXIgT3Q9bHQtNjU1MzY7Sis9U3RyaW5nLmZyb21DaGFyQ29kZSg1NTI5NnxPdD4+MTAsNTYzMjB8T3QmMTAyMyl9ZWxzZSBKKz1TdHJpbmcuZnJvbUNoYXJDb2RlKGx0KX1yZXR1cm4gSn1mdW5jdGlvbiBQdChWLEcsWSl7aWYoWT09PXZvaWQgMCYmKFk9MjE0NzQ4MzY0NyksWTw0KXJldHVybiAwO2Zvcih2YXIgSj1HLGx0PUorWS00LE90PTA7T3Q8Vi5sZW5ndGg7KytPdCl7dmFyIFJ0PVYuY2hhckNvZGVBdChPdCk7aWYoUnQ+PTU1Mjk2JiZSdDw9NTczNDMpe3ZhciBodD1WLmNoYXJDb2RlQXQoKytPdCk7UnQ9NjU1MzYrKChSdCYxMDIzKTw8MTApfGh0JjEwMjN9aWYoYWVbRz4+Ml09UnQsRys9NCxHKzQ+bHQpYnJlYWt9cmV0dXJuIGFlW0c+PjJdPTAsRy1KfWZ1bmN0aW9uIGd0KFYpe2Zvcih2YXIgRz0wLFk9MDtZPFYubGVuZ3RoOysrWSl7dmFyIEo9Vi5jaGFyQ29kZUF0KFkpO0o+PTU1Mjk2JiZKPD01NzM0MyYmKytZLEcrPTR9cmV0dXJuIEd9ZnVuY3Rpb24gQ3QoVixHKXtyZXR1cm4gViVHPjAmJihWKz1HLVYlRyksVn12YXIgbXQsdXQsdnQsenQsbWUsYWUscGUsdWUsUXQ7ZnVuY3Rpb24gSnQoVil7bXQ9VixuLkhFQVA4PXV0PW5ldyBJbnQ4QXJyYXkoViksbi5IRUFQMTY9enQ9bmV3IEludDE2QXJyYXkoViksbi5IRUFQMzI9YWU9bmV3IEludDMyQXJyYXkoViksbi5IRUFQVTg9dnQ9bmV3IFVpbnQ4QXJyYXkoViksbi5IRUFQVTE2PW1lPW5ldyBVaW50MTZBcnJheShWKSxuLkhFQVBVMzI9cGU9bmV3IFVpbnQzMkFycmF5KFYpLG4uSEVBUEYzMj11ZT1uZXcgRmxvYXQzMkFycmF5KFYpLG4uSEVBUEY2ND1RdD1uZXcgRmxvYXQ2NEFycmF5KFYpfXZhciBOZT1uLklOSVRJQUxfTUVNT1JZfHwxNjc3NzIxNixnZSxFZT1bXSx1bj1bXSxrZT1bXSxiZT1bXSxsbj0hMTtmdW5jdGlvbiBwbigpe2lmKG4ucHJlUnVuKWZvcih0eXBlb2Ygbi5wcmVSdW49PSJmdW5jdGlvbiImJihuLnByZVJ1bj1bbi5wcmVSdW5dKTtuLnByZVJ1bi5sZW5ndGg7KUdlKG4ucHJlUnVuLnNoaWZ0KCkpO3pvKEVlKX1mdW5jdGlvbiBFbigpe2xuPSEwLHpvKHVuKX1mdW5jdGlvbiByZSgpe3pvKGtlKX1mdW5jdGlvbiAkdCgpe2lmKG4ucG9zdFJ1bilmb3IodHlwZW9mIG4ucG9zdFJ1bj09ImZ1bmN0aW9uIiYmKG4ucG9zdFJ1bj1bbi5wb3N0UnVuXSk7bi5wb3N0UnVuLmxlbmd0aDspc24obi5wb3N0UnVuLnNoaWZ0KCkpO3pvKGJlKX1mdW5jdGlvbiBHZShWKXtFZS51bnNoaWZ0KFYpfWZ1bmN0aW9uIGRuKFYpe3VuLnVuc2hpZnQoVil9ZnVuY3Rpb24gc24oVil7YmUudW5zaGlmdChWKX12YXIgbW49MCxmbz1udWxsLEhuPW51bGw7ZnVuY3Rpb24gWmUoVil7bW4rKyxuLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJm4ubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhtbil9ZnVuY3Rpb24gY24oVil7aWYobW4tLSxuLm1vbml0b3JSdW5EZXBlbmRlbmNpZXMmJm4ubW9uaXRvclJ1bkRlcGVuZGVuY2llcyhtbiksbW49PTAmJihmbyE9PW51bGwmJihjbGVhckludGVydmFsKGZvKSxmbz1udWxsKSxIbikpe3ZhciBHPUhuO0huPW51bGwsRygpfX1uLnByZWxvYWRlZEltYWdlcz17fSxuLnByZWxvYWRlZEF1ZGlvcz17fTtmdW5jdGlvbiBLZShWKXtuLm9uQWJvcnQmJm4ub25BYm9ydChWKSxWKz0iIixJKFYpLFM9ITAsUD0xLFY9ImFib3J0KCIrVisiKS4gQnVpbGQgd2l0aCAtcyBBU1NFUlRJT05TPTEgZm9yIG1vcmUgaW5mby4iO3ZhciBHPW5ldyBXZWJBc3NlbWJseS5SdW50aW1lRXJyb3IoVik7dGhyb3cgcihHKSxHfWZ1bmN0aW9uIGhuKFYsRyl7cmV0dXJuIFN0cmluZy5wcm90b3R5cGUuc3RhcnRzV2l0aD9WLnN0YXJ0c1dpdGgoRyk6Vi5pbmRleE9mKEcpPT09MH12YXIgdW89ImRhdGE6YXBwbGljYXRpb24vb2N0ZXQtc3RyZWFtO2Jhc2U2NCwiO2Z1bmN0aW9uIHFuKFYpe3JldHVybiBobihWLHVvKX12YXIgS249ImZpbGU6Ly8iO2Z1bmN0aW9uIGxvKFYpe3JldHVybiBobihWLEtuKX12YXIgemU9ImJhc2lzX3RyYW5zY29kZXIud2FzbSI7cW4oemUpfHwoemU9Zyh6ZSkpO2Z1bmN0aW9uIExlKFYpe3RyeXtpZihWPT16ZSYmTClyZXR1cm4gbmV3IFVpbnQ4QXJyYXkoTCk7aWYoTylyZXR1cm4gTyhWKTt0aHJvdyJib3RoIGFzeW5jIGFuZCBzeW5jIGZldGNoaW5nIG9mIHRoZSB3YXNtIGZhaWxlZCJ9Y2F0Y2goRyl7S2UoRyl9fWZ1bmN0aW9uIERuKCl7aWYoIUwmJihsfHxwKSl7aWYodHlwZW9mIGZldGNoPT0iZnVuY3Rpb24iJiYhbG8oemUpKXJldHVybiBmZXRjaCh6ZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oVil7aWYoIVYub2spdGhyb3ciZmFpbGVkIHRvIGxvYWQgd2FzbSBiaW5hcnkgZmlsZSBhdCAnIit6ZSsiJyI7cmV0dXJuIFYuYXJyYXlCdWZmZXIoKX0pLmNhdGNoKGZ1bmN0aW9uKCl7cmV0dXJuIExlKHplKX0pO2lmKHcpcmV0dXJuIG5ldyBQcm9taXNlKGZ1bmN0aW9uKFYsRyl7dyh6ZSxmdW5jdGlvbihZKXtWKG5ldyBVaW50OEFycmF5KFkpKX0sRyl9KX1yZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCkudGhlbihmdW5jdGlvbigpe3JldHVybiBMZSh6ZSl9KX1mdW5jdGlvbiBXbigpe3ZhciBWPXthOkZsfTtmdW5jdGlvbiBHKFJ0LGh0KXt2YXIgX3Q9UnQuZXhwb3J0cztuLmFzbT1fdCxBPW4uYXNtLkssSnQoQS5idWZmZXIpLGdlPW4uYXNtLk8sZG4obi5hc20uTCksY24oIndhc20taW5zdGFudGlhdGUiKX1aZSgid2FzbS1pbnN0YW50aWF0ZSIpO2Z1bmN0aW9uIFkoUnQpe0coUnQuaW5zdGFuY2UpfWZ1bmN0aW9uIEooUnQpe3JldHVybiBEbigpLnRoZW4oZnVuY3Rpb24oaHQpe3ZhciBfdD1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZShodCxWKTtyZXR1cm4gX3R9KS50aGVuKFJ0LGZ1bmN0aW9uKGh0KXtJKCJmYWlsZWQgdG8gYXN5bmNocm9ub3VzbHkgcHJlcGFyZSB3YXNtOiAiK2h0KSxLZShodCl9KX1mdW5jdGlvbiBsdCgpe3JldHVybiFMJiZ0eXBlb2YgV2ViQXNzZW1ibHkuaW5zdGFudGlhdGVTdHJlYW1pbmc9PSJmdW5jdGlvbiImJiFxbih6ZSkmJiFsbyh6ZSkmJnR5cGVvZiBmZXRjaD09ImZ1bmN0aW9uIj9mZXRjaCh6ZSx7Y3JlZGVudGlhbHM6InNhbWUtb3JpZ2luIn0pLnRoZW4oZnVuY3Rpb24oUnQpe3ZhciBodD1XZWJBc3NlbWJseS5pbnN0YW50aWF0ZVN0cmVhbWluZyhSdCxWKTtyZXR1cm4gaHQudGhlbihZLGZ1bmN0aW9uKF90KXtyZXR1cm4gSSgid2FzbSBzdHJlYW1pbmcgY29tcGlsZSBmYWlsZWQ6ICIrX3QpLEkoImZhbGxpbmcgYmFjayB0byBBcnJheUJ1ZmZlciBpbnN0YW50aWF0aW9uIiksSihZKX0pfSk6SihZKX1pZihuLmluc3RhbnRpYXRlV2FzbSl0cnl7dmFyIE90PW4uaW5zdGFudGlhdGVXYXNtKFYsRyk7cmV0dXJuIE90fWNhdGNoKFJ0KXtyZXR1cm4gSSgiTW9kdWxlLmluc3RhbnRpYXRlV2FzbSBjYWxsYmFjayBmYWlsZWQgd2l0aCBlcnJvcjogIitSdCksITF9cmV0dXJuIGx0KCkuY2F0Y2gocikse319ZnVuY3Rpb24gem8oVil7Zm9yKDtWLmxlbmd0aD4wOyl7dmFyIEc9Vi5zaGlmdCgpO2lmKHR5cGVvZiBHPT0iZnVuY3Rpb24iKXtHKG4pO2NvbnRpbnVlfXZhciBZPUcuZnVuYzt0eXBlb2YgWT09Im51bWJlciI/Ry5hcmc9PT12b2lkIDA/Z2UuZ2V0KFkpKCk6Z2UuZ2V0KFkpKEcuYXJnKTpZKEcuYXJnPT09dm9pZCAwP251bGw6Ry5hcmcpfX12YXIgcm49e307ZnVuY3Rpb24gUm4oVil7Zm9yKDtWLmxlbmd0aDspe3ZhciBHPVYucG9wKCksWT1WLnBvcCgpO1koRyl9fWZ1bmN0aW9uIGFyKFYpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShwZVtWPj4yXSl9dmFyIFFuPXt9LGpvPXt9LE5yPXt9LE5zPTQ4LElzPTU3O2Z1bmN0aW9uIFlpKFYpe2lmKFY9PT12b2lkIDApcmV0dXJuIl91bmtub3duIjtWPVYucmVwbGFjZSgvW15hLXpBLVowLTlfXS9nLCIkIik7dmFyIEc9Vi5jaGFyQ29kZUF0KDApO3JldHVybiBHPj1OcyYmRzw9SXM/Il8iK1Y6Vn1mdW5jdGlvbiBJcihWLEcpe3JldHVybiBWPVlpKFYpLG5ldyBGdW5jdGlvbigiYm9keSIsInJldHVybiBmdW5jdGlvbiAiK1YrYCgpIHsKICAgICJ1c2Ugc3RyaWN0IjsgICAgcmV0dXJuIGJvZHkuYXBwbHkodGhpcywgYXJndW1lbnRzKTsKfTsKYCkoRyl9ZnVuY3Rpb24gJGkoVixHKXt2YXIgWT1JcihHLGZ1bmN0aW9uKEope3RoaXMubmFtZT1HLHRoaXMubWVzc2FnZT1KO3ZhciBsdD1uZXcgRXJyb3IoSikuc3RhY2s7bHQhPT12b2lkIDAmJih0aGlzLnN0YWNrPXRoaXMudG9TdHJpbmcoKStgCmArbHQucmVwbGFjZSgvXkVycm9yKDpbXlxuXSopP1xuLywiIikpfSk7cmV0dXJuIFkucHJvdG90eXBlPU9iamVjdC5jcmVhdGUoVi5wcm90b3R5cGUpLFkucHJvdG90eXBlLmNvbnN0cnVjdG9yPVksWS5wcm90b3R5cGUudG9TdHJpbmc9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5tZXNzYWdlPT09dm9pZCAwP3RoaXMubmFtZTp0aGlzLm5hbWUrIjogIit0aGlzLm1lc3NhZ2V9LFl9dmFyIHZzPXZvaWQgMDtmdW5jdGlvbiBiaShWKXt0aHJvdyBuZXcgdnMoVil9ZnVuY3Rpb24gb28oVixHLFkpe1YuZm9yRWFjaChmdW5jdGlvbihodCl7TnJbaHRdPUd9KTtmdW5jdGlvbiBKKGh0KXt2YXIgX3Q9WShodCk7X3QubGVuZ3RoIT09Vi5sZW5ndGgmJmJpKCJNaXNtYXRjaGVkIHR5cGUgY29udmVydGVyIGNvdW50Iik7Zm9yKHZhciBLdD0wO0t0PFYubGVuZ3RoOysrS3Qpb3IoVltLdF0sX3RbS3RdKX12YXIgbHQ9bmV3IEFycmF5KEcubGVuZ3RoKSxPdD1bXSxSdD0wO0cuZm9yRWFjaChmdW5jdGlvbihodCxfdCl7am8uaGFzT3duUHJvcGVydHkoaHQpP2x0W190XT1qb1todF06KE90LnB1c2goaHQpLFFuLmhhc093blByb3BlcnR5KGh0KXx8KFFuW2h0XT1bXSksUW5baHRdLnB1c2goZnVuY3Rpb24oKXtsdFtfdF09am9baHRdLCsrUnQsUnQ9PT1PdC5sZW5ndGgmJkoobHQpfSkpfSksT3QubGVuZ3RoPT09MCYmSihsdCl9ZnVuY3Rpb24gcG8oVil7dmFyIEc9cm5bVl07ZGVsZXRlIHJuW1ZdO3ZhciBZPUcucmF3Q29uc3RydWN0b3IsSj1HLnJhd0Rlc3RydWN0b3IsbHQ9Ry5maWVsZHMsT3Q9bHQubWFwKGZ1bmN0aW9uKFJ0KXtyZXR1cm4gUnQuZ2V0dGVyUmV0dXJuVHlwZX0pLmNvbmNhdChsdC5tYXAoZnVuY3Rpb24oUnQpe3JldHVybiBSdC5zZXR0ZXJBcmd1bWVudFR5cGV9KSk7b28oW1ZdLE90LGZ1bmN0aW9uKFJ0KXt2YXIgaHQ9e307cmV0dXJuIGx0LmZvckVhY2goZnVuY3Rpb24oX3QsS3Qpe3ZhciB0ZT1fdC5maWVsZE5hbWUsVGU9UnRbS3RdLEplPV90LmdldHRlcixibj1fdC5nZXR0ZXJDb250ZXh0LHJvPVJ0W0t0K2x0Lmxlbmd0aF0sSW89X3Quc2V0dGVyLGxyPV90LnNldHRlckNvbnRleHQ7aHRbdGVdPXtyZWFkOmZ1bmN0aW9uKFpyKXtyZXR1cm4gVGUuZnJvbVdpcmVUeXBlKEplKGJuLFpyKSl9LHdyaXRlOmZ1bmN0aW9uKFpyLHJmKXt2YXIgRWk9W107SW8obHIsWnIscm8udG9XaXJlVHlwZShFaSxyZikpLFJuKEVpKX19fSksW3tuYW1lOkcubmFtZSxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oX3Qpe3ZhciBLdD17fTtmb3IodmFyIHRlIGluIGh0KUt0W3RlXT1odFt0ZV0ucmVhZChfdCk7cmV0dXJuIEooX3QpLEt0fSx0b1dpcmVUeXBlOmZ1bmN0aW9uKF90LEt0KXtmb3IodmFyIHRlIGluIGh0KWlmKCEodGUgaW4gS3QpKXRocm93IG5ldyBUeXBlRXJyb3IoJ01pc3NpbmcgZmllbGQ6ICAiJyt0ZSsnIicpO3ZhciBUZT1ZKCk7Zm9yKHRlIGluIGh0KWh0W3RlXS53cml0ZShUZSxLdFt0ZV0pO3JldHVybiBfdCE9PW51bGwmJl90LnB1c2goSixUZSksVGV9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6YXIsZGVzdHJ1Y3RvckZ1bmN0aW9uOkp9XX0pfWZ1bmN0aW9uIHZyKFYpe3N3aXRjaChWKXtjYXNlIDE6cmV0dXJuIDA7Y2FzZSAyOnJldHVybiAxO2Nhc2UgNDpyZXR1cm4gMjtjYXNlIDg6cmV0dXJuIDM7ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIHR5cGUgc2l6ZTogIitWKX19ZnVuY3Rpb24gTWMoKXtmb3IodmFyIFY9bmV3IEFycmF5KDI1NiksRz0wO0c8MjU2OysrRylWW0ddPVN0cmluZy5mcm9tQ2hhckNvZGUoRyk7TmM9Vn12YXIgTmM9dm9pZCAwO2Z1bmN0aW9uIEZuKFYpe2Zvcih2YXIgRz0iIixZPVY7dnRbWV07KUcrPU5jW3Z0W1krK11dO3JldHVybiBHfXZhciB3aT12b2lkIDA7ZnVuY3Rpb24gRGUoVil7dGhyb3cgbmV3IHdpKFYpfWZ1bmN0aW9uIG9yKFYsRyxZKXtpZihZPVl8fHt9LCEoImFyZ1BhY2tBZHZhbmNlImluIEcpKXRocm93IG5ldyBUeXBlRXJyb3IoInJlZ2lzdGVyVHlwZSByZWdpc3RlcmVkSW5zdGFuY2UgcmVxdWlyZXMgYXJnUGFja0FkdmFuY2UiKTt2YXIgSj1HLm5hbWU7aWYoVnx8RGUoJ3R5cGUgIicrSisnIiBtdXN0IGhhdmUgYSBwb3NpdGl2ZSBpbnRlZ2VyIHR5cGVpZCBwb2ludGVyJyksam8uaGFzT3duUHJvcGVydHkoVikpe2lmKFkuaWdub3JlRHVwbGljYXRlUmVnaXN0cmF0aW9ucylyZXR1cm47RGUoIkNhbm5vdCByZWdpc3RlciB0eXBlICciK0orIicgdHdpY2UiKX1pZihqb1tWXT1HLGRlbGV0ZSBOcltWXSxRbi5oYXNPd25Qcm9wZXJ0eShWKSl7dmFyIGx0PVFuW1ZdO2RlbGV0ZSBRbltWXSxsdC5mb3JFYWNoKGZ1bmN0aW9uKE90KXtPdCgpfSl9fWZ1bmN0aW9uIEF1KFYsRyxZLEosbHQpe3ZhciBPdD12cihZKTtHPUZuKEcpLG9yKFYse25hbWU6Ryxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oUnQpe3JldHVybiEhUnR9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oUnQsaHQpe3JldHVybiBodD9KOmx0fSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmZ1bmN0aW9uKFJ0KXt2YXIgaHQ7aWYoWT09PTEpaHQ9dXQ7ZWxzZSBpZihZPT09MilodD16dDtlbHNlIGlmKFk9PT00KWh0PWFlO2Vsc2UgdGhyb3cgbmV3IFR5cGVFcnJvcigiVW5rbm93biBib29sZWFuIHR5cGUgc2l6ZTogIitHKTtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUoaHRbUnQ+Pk90XSl9LGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSl9ZnVuY3Rpb24gYnUoVil7aWYoISh0aGlzIGluc3RhbmNlb2YgTHIpfHwhKFYgaW5zdGFuY2VvZiBMcikpcmV0dXJuITE7Zm9yKHZhciBHPXRoaXMuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsWT10aGlzLiQkLnB0cixKPVYuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MsbHQ9Vi4kJC5wdHI7Ry5iYXNlQ2xhc3M7KVk9Ry51cGNhc3QoWSksRz1HLmJhc2VDbGFzcztmb3IoO0ouYmFzZUNsYXNzOylsdD1KLnVwY2FzdChsdCksSj1KLmJhc2VDbGFzcztyZXR1cm4gRz09PUomJlk9PT1sdH1mdW5jdGlvbiB3dShWKXtyZXR1cm57Y291bnQ6Vi5jb3VudCxkZWxldGVTY2hlZHVsZWQ6Vi5kZWxldGVTY2hlZHVsZWQscHJlc2VydmVQb2ludGVyT25EZWxldGU6Vi5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSxwdHI6Vi5wdHIscHRyVHlwZTpWLnB0clR5cGUsc21hcnRQdHI6Vi5zbWFydFB0cixzbWFydFB0clR5cGU6Vi5zbWFydFB0clR5cGV9fWZ1bmN0aW9uIEljKFYpe2Z1bmN0aW9uIEcoWSl7cmV0dXJuIFkuJCQucHRyVHlwZS5yZWdpc3RlcmVkQ2xhc3MubmFtZX1EZShHKFYpKyIgaW5zdGFuY2UgYWxyZWFkeSBkZWxldGVkIil9dmFyIHZjPSExO2Z1bmN0aW9uIHFhKFYpe31mdW5jdGlvbiBUdShWKXtWLnNtYXJ0UHRyP1Yuc21hcnRQdHJUeXBlLnJhd0Rlc3RydWN0b3IoVi5zbWFydFB0cik6Vi5wdHJUeXBlLnJlZ2lzdGVyZWRDbGFzcy5yYXdEZXN0cnVjdG9yKFYucHRyKX1mdW5jdGlvbiBLYShWKXtWLmNvdW50LnZhbHVlLT0xO3ZhciBHPVYuY291bnQudmFsdWU9PT0wO0cmJlR1KFYpfWZ1bmN0aW9uIFppKFYpe3JldHVybiB0eXBlb2YgRmluYWxpemF0aW9uR3JvdXA+InUiPyhaaT1mdW5jdGlvbihHKXtyZXR1cm4gR30sVik6KHZjPW5ldyBGaW5hbGl6YXRpb25Hcm91cChmdW5jdGlvbihHKXtmb3IodmFyIFk9Ry5uZXh0KCk7IVkuZG9uZTtZPUcubmV4dCgpKXt2YXIgSj1ZLnZhbHVlO0oucHRyP0thKEopOmNvbnNvbGUud2Fybigib2JqZWN0IGFscmVhZHkgZGVsZXRlZDogIitKLnB0cil9fSksWmk9ZnVuY3Rpb24oRyl7cmV0dXJuIHZjLnJlZ2lzdGVyKEcsRy4kJCxHLiQkKSxHfSxxYT1mdW5jdGlvbihHKXt2Yy51bnJlZ2lzdGVyKEcuJCQpfSxaaShWKSl9ZnVuY3Rpb24gT3UoKXtpZih0aGlzLiQkLnB0cnx8SWModGhpcyksdGhpcy4kJC5wcmVzZXJ2ZVBvaW50ZXJPbkRlbGV0ZSlyZXR1cm4gdGhpcy4kJC5jb3VudC52YWx1ZSs9MSx0aGlzO3ZhciBWPVppKE9iamVjdC5jcmVhdGUoT2JqZWN0LmdldFByb3RvdHlwZU9mKHRoaXMpLHskJDp7dmFsdWU6d3UodGhpcy4kJCl9fSkpO3JldHVybiBWLiQkLmNvdW50LnZhbHVlKz0xLFYuJCQuZGVsZXRlU2NoZWR1bGVkPSExLFZ9ZnVuY3Rpb24gRXUoKXt0aGlzLiQkLnB0cnx8SWModGhpcyksdGhpcy4kJC5kZWxldGVTY2hlZHVsZWQmJiF0aGlzLiQkLnByZXNlcnZlUG9pbnRlck9uRGVsZXRlJiZEZSgiT2JqZWN0IGFscmVhZHkgc2NoZWR1bGVkIGZvciBkZWxldGlvbiIpLHFhKHRoaXMpLEthKHRoaXMuJCQpLHRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGV8fCh0aGlzLiQkLnNtYXJ0UHRyPXZvaWQgMCx0aGlzLiQkLnB0cj12b2lkIDApfWZ1bmN0aW9uIFJ1KCl7cmV0dXJuIXRoaXMuJCQucHRyfXZhciBRaT12b2lkIDAsSmk9W107ZnVuY3Rpb24gTGMoKXtmb3IoO0ppLmxlbmd0aDspe3ZhciBWPUppLnBvcCgpO1YuJCQuZGVsZXRlU2NoZWR1bGVkPSExLFYuZGVsZXRlKCl9fWZ1bmN0aW9uIFN1KCl7cmV0dXJuIHRoaXMuJCQucHRyfHxJYyh0aGlzKSx0aGlzLiQkLmRlbGV0ZVNjaGVkdWxlZCYmIXRoaXMuJCQucHJlc2VydmVQb2ludGVyT25EZWxldGUmJkRlKCJPYmplY3QgYWxyZWFkeSBzY2hlZHVsZWQgZm9yIGRlbGV0aW9uIiksSmkucHVzaCh0aGlzKSxKaS5sZW5ndGg9PT0xJiZRaSYmUWkoTGMpLHRoaXMuJCQuZGVsZXRlU2NoZWR1bGVkPSEwLHRoaXN9ZnVuY3Rpb24gQ3UoKXtMci5wcm90b3R5cGUuaXNBbGlhc09mPWJ1LExyLnByb3RvdHlwZS5jbG9uZT1PdSxMci5wcm90b3R5cGUuZGVsZXRlPUV1LExyLnByb3RvdHlwZS5pc0RlbGV0ZWQ9UnUsTHIucHJvdG90eXBlLmRlbGV0ZUxhdGVyPVN1fWZ1bmN0aW9uIExyKCl7fXZhciBXYT17fTtmdW5jdGlvbiBYYShWLEcsWSl7aWYoVltHXS5vdmVybG9hZFRhYmxlPT09dm9pZCAwKXt2YXIgSj1WW0ddO1ZbR109ZnVuY3Rpb24oKXtyZXR1cm4gVltHXS5vdmVybG9hZFRhYmxlLmhhc093blByb3BlcnR5KGFyZ3VtZW50cy5sZW5ndGgpfHxEZSgiRnVuY3Rpb24gJyIrWSsiJyBjYWxsZWQgd2l0aCBhbiBpbnZhbGlkIG51bWJlciBvZiBhcmd1bWVudHMgKCIrYXJndW1lbnRzLmxlbmd0aCsiKSAtIGV4cGVjdHMgb25lIG9mICgiK1ZbR10ub3ZlcmxvYWRUYWJsZSsiKSEiKSxWW0ddLm92ZXJsb2FkVGFibGVbYXJndW1lbnRzLmxlbmd0aF0uYXBwbHkodGhpcyxhcmd1bWVudHMpfSxWW0ddLm92ZXJsb2FkVGFibGU9W10sVltHXS5vdmVybG9hZFRhYmxlW0ouYXJnQ291bnRdPUp9fWZ1bmN0aW9uIERjKFYsRyxZKXtuLmhhc093blByb3BlcnR5KFYpPygoWT09PXZvaWQgMHx8bltWXS5vdmVybG9hZFRhYmxlIT09dm9pZCAwJiZuW1ZdLm92ZXJsb2FkVGFibGVbWV0hPT12b2lkIDApJiZEZSgiQ2Fubm90IHJlZ2lzdGVyIHB1YmxpYyBuYW1lICciK1YrIicgdHdpY2UiKSxYYShuLFYsViksbi5oYXNPd25Qcm9wZXJ0eShZKSYmRGUoIkNhbm5vdCByZWdpc3RlciBtdWx0aXBsZSBvdmVybG9hZHMgb2YgYSBmdW5jdGlvbiB3aXRoIHRoZSBzYW1lIG51bWJlciBvZiBhcmd1bWVudHMgKCIrWSsiKSEiKSxuW1ZdLm92ZXJsb2FkVGFibGVbWV09Ryk6KG5bVl09RyxZIT09dm9pZCAwJiYobltWXS5udW1Bcmd1bWVudHM9WSkpfWZ1bmN0aW9uIHh1KFYsRyxZLEosbHQsT3QsUnQsaHQpe3RoaXMubmFtZT1WLHRoaXMuY29uc3RydWN0b3I9Ryx0aGlzLmluc3RhbmNlUHJvdG90eXBlPVksdGhpcy5yYXdEZXN0cnVjdG9yPUosdGhpcy5iYXNlQ2xhc3M9bHQsdGhpcy5nZXRBY3R1YWxUeXBlPU90LHRoaXMudXBjYXN0PVJ0LHRoaXMuZG93bmNhc3Q9aHQsdGhpcy5wdXJlVmlydHVhbEZ1bmN0aW9ucz1bXX1mdW5jdGlvbiBGYyhWLEcsWSl7Zm9yKDtHIT09WTspRy51cGNhc3R8fERlKCJFeHBlY3RlZCBudWxsIG9yIGluc3RhbmNlIG9mICIrWS5uYW1lKyIsIGdvdCBhbiBpbnN0YW5jZSBvZiAiK0cubmFtZSksVj1HLnVwY2FzdChWKSxHPUcuYmFzZUNsYXNzO3JldHVybiBWfWZ1bmN0aW9uIFB1KFYsRyl7aWYoRz09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkRlKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSwwO0cuJCR8fERlKCdDYW5ub3QgcGFzcyAiJytUaShHKSsnIiBhcyBhICcrdGhpcy5uYW1lKSxHLiQkLnB0cnx8RGUoIkNhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICIrdGhpcy5uYW1lKTt2YXIgWT1HLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLEo9RmMoRy4kJC5wdHIsWSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIEp9ZnVuY3Rpb24gTXUoVixHKXt2YXIgWTtpZihHPT09bnVsbClyZXR1cm4gdGhpcy5pc1JlZmVyZW5jZSYmRGUoIm51bGwgaXMgbm90IGEgdmFsaWQgIit0aGlzLm5hbWUpLHRoaXMuaXNTbWFydFBvaW50ZXI/KFk9dGhpcy5yYXdDb25zdHJ1Y3RvcigpLFYhPT1udWxsJiZWLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLFkpLFkpOjA7Ry4kJHx8RGUoJ0Nhbm5vdCBwYXNzICInK1RpKEcpKyciIGFzIGEgJyt0aGlzLm5hbWUpLEcuJCQucHRyfHxEZSgiQ2Fubm90IHBhc3MgZGVsZXRlZCBvYmplY3QgYXMgYSBwb2ludGVyIG9mIHR5cGUgIit0aGlzLm5hbWUpLCF0aGlzLmlzQ29uc3QmJkcuJCQucHRyVHlwZS5pc0NvbnN0JiZEZSgiQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAiKyhHLiQkLnNtYXJ0UHRyVHlwZT9HLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOkcuJCQucHRyVHlwZS5uYW1lKSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTt2YXIgSj1HLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzO2lmKFk9RmMoRy4kJC5wdHIsSix0aGlzLnJlZ2lzdGVyZWRDbGFzcyksdGhpcy5pc1NtYXJ0UG9pbnRlcilzd2l0Y2goRy4kJC5zbWFydFB0cj09PXZvaWQgMCYmRGUoIlBhc3NpbmcgcmF3IHBvaW50ZXIgdG8gc21hcnQgcG9pbnRlciBpcyBpbGxlZ2FsIiksdGhpcy5zaGFyaW5nUG9saWN5KXtjYXNlIDA6Ry4kJC5zbWFydFB0clR5cGU9PT10aGlzP1k9Ry4kJC5zbWFydFB0cjpEZSgiQ2Fubm90IGNvbnZlcnQgYXJndW1lbnQgb2YgdHlwZSAiKyhHLiQkLnNtYXJ0UHRyVHlwZT9HLiQkLnNtYXJ0UHRyVHlwZS5uYW1lOkcuJCQucHRyVHlwZS5uYW1lKSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTticmVhaztjYXNlIDE6WT1HLiQkLnNtYXJ0UHRyO2JyZWFrO2Nhc2UgMjppZihHLiQkLnNtYXJ0UHRyVHlwZT09PXRoaXMpWT1HLiQkLnNtYXJ0UHRyO2Vsc2V7dmFyIGx0PUcuY2xvbmUoKTtZPXRoaXMucmF3U2hhcmUoWSx1cihmdW5jdGlvbigpe2x0LmRlbGV0ZSgpfSkpLFYhPT1udWxsJiZWLnB1c2godGhpcy5yYXdEZXN0cnVjdG9yLFkpfWJyZWFrO2RlZmF1bHQ6RGUoIlVuc3VwcG9ydGluZyBzaGFyaW5nIHBvbGljeSIpfXJldHVybiBZfWZ1bmN0aW9uIE51KFYsRyl7aWYoRz09PW51bGwpcmV0dXJuIHRoaXMuaXNSZWZlcmVuY2UmJkRlKCJudWxsIGlzIG5vdCBhIHZhbGlkICIrdGhpcy5uYW1lKSwwO0cuJCR8fERlKCdDYW5ub3QgcGFzcyAiJytUaShHKSsnIiBhcyBhICcrdGhpcy5uYW1lKSxHLiQkLnB0cnx8RGUoIkNhbm5vdCBwYXNzIGRlbGV0ZWQgb2JqZWN0IGFzIGEgcG9pbnRlciBvZiB0eXBlICIrdGhpcy5uYW1lKSxHLiQkLnB0clR5cGUuaXNDb25zdCYmRGUoIkNhbm5vdCBjb252ZXJ0IGFyZ3VtZW50IG9mIHR5cGUgIitHLiQkLnB0clR5cGUubmFtZSsiIHRvIHBhcmFtZXRlciB0eXBlICIrdGhpcy5uYW1lKTt2YXIgWT1HLiQkLnB0clR5cGUucmVnaXN0ZXJlZENsYXNzLEo9RmMoRy4kJC5wdHIsWSx0aGlzLnJlZ2lzdGVyZWRDbGFzcyk7cmV0dXJuIEp9ZnVuY3Rpb24gSXUoVil7cmV0dXJuIHRoaXMucmF3R2V0UG9pbnRlZSYmKFY9dGhpcy5yYXdHZXRQb2ludGVlKFYpKSxWfWZ1bmN0aW9uIHZ1KFYpe3RoaXMucmF3RGVzdHJ1Y3RvciYmdGhpcy5yYXdEZXN0cnVjdG9yKFYpfWZ1bmN0aW9uIEx1KFYpe1YhPT1udWxsJiZWLmRlbGV0ZSgpfWZ1bmN0aW9uIFlhKFYsRyxZKXtpZihHPT09WSlyZXR1cm4gVjtpZihZLmJhc2VDbGFzcz09PXZvaWQgMClyZXR1cm4gbnVsbDt2YXIgSj1ZYShWLEcsWS5iYXNlQ2xhc3MpO3JldHVybiBKPT09bnVsbD9udWxsOlkuZG93bmNhc3QoSil9ZnVuY3Rpb24gRHUoKXtyZXR1cm4gT2JqZWN0LmtleXModHMpLmxlbmd0aH1mdW5jdGlvbiBGdSgpe3ZhciBWPVtdO2Zvcih2YXIgRyBpbiB0cyl0cy5oYXNPd25Qcm9wZXJ0eShHKSYmVi5wdXNoKHRzW0ddKTtyZXR1cm4gVn1mdW5jdGlvbiBCdShWKXtRaT1WLEppLmxlbmd0aCYmUWkmJlFpKExjKX1mdW5jdGlvbiBVdSgpe24uZ2V0SW5oZXJpdGVkSW5zdGFuY2VDb3VudD1EdSxuLmdldExpdmVJbmhlcml0ZWRJbnN0YW5jZXM9RnUsbi5mbHVzaFBlbmRpbmdEZWxldGVzPUxjLG4uc2V0RGVsYXlGdW5jdGlvbj1CdX12YXIgdHM9e307ZnVuY3Rpb24gVnUoVixHKXtmb3IoRz09PXZvaWQgMCYmRGUoInB0ciBzaG91bGQgbm90IGJlIHVuZGVmaW5lZCIpO1YuYmFzZUNsYXNzOylHPVYudXBjYXN0KEcpLFY9Vi5iYXNlQ2xhc3M7cmV0dXJuIEd9ZnVuY3Rpb24ga3UoVixHKXtyZXR1cm4gRz1WdShWLEcpLHRzW0ddfWZ1bmN0aW9uIExzKFYsRyl7KCFHLnB0clR5cGV8fCFHLnB0cikmJmJpKCJtYWtlQ2xhc3NIYW5kbGUgcmVxdWlyZXMgcHRyIGFuZCBwdHJUeXBlIik7dmFyIFk9ISFHLnNtYXJ0UHRyVHlwZSxKPSEhRy5zbWFydFB0cjtyZXR1cm4gWSE9PUomJmJpKCJCb3RoIHNtYXJ0UHRyVHlwZSBhbmQgc21hcnRQdHIgbXVzdCBiZSBzcGVjaWZpZWQiKSxHLmNvdW50PXt2YWx1ZToxfSxaaShPYmplY3QuY3JlYXRlKFYseyQkOnt2YWx1ZTpHfX0pKX1mdW5jdGlvbiBHdShWKXt2YXIgRz10aGlzLmdldFBvaW50ZWUoVik7aWYoIUcpcmV0dXJuIHRoaXMuZGVzdHJ1Y3RvcihWKSxudWxsO3ZhciBZPWt1KHRoaXMucmVnaXN0ZXJlZENsYXNzLEcpO2lmKFkhPT12b2lkIDApe2lmKFkuJCQuY291bnQudmFsdWU9PT0wKXJldHVybiBZLiQkLnB0cj1HLFkuJCQuc21hcnRQdHI9VixZLmNsb25lKCk7dmFyIEo9WS5jbG9uZSgpO3JldHVybiB0aGlzLmRlc3RydWN0b3IoViksSn1mdW5jdGlvbiBsdCgpe3JldHVybiB0aGlzLmlzU21hcnRQb2ludGVyP0xzKHRoaXMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnRoaXMucG9pbnRlZVR5cGUscHRyOkcsc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6Vn0pOkxzKHRoaXMucmVnaXN0ZXJlZENsYXNzLmluc3RhbmNlUHJvdG90eXBlLHtwdHJUeXBlOnRoaXMscHRyOlZ9KX12YXIgT3Q9dGhpcy5yZWdpc3RlcmVkQ2xhc3MuZ2V0QWN0dWFsVHlwZShHKSxSdD1XYVtPdF07aWYoIVJ0KXJldHVybiBsdC5jYWxsKHRoaXMpO3ZhciBodDt0aGlzLmlzQ29uc3Q/aHQ9UnQuY29uc3RQb2ludGVyVHlwZTpodD1SdC5wb2ludGVyVHlwZTt2YXIgX3Q9WWEoRyx0aGlzLnJlZ2lzdGVyZWRDbGFzcyxodC5yZWdpc3RlcmVkQ2xhc3MpO3JldHVybiBfdD09PW51bGw/bHQuY2FsbCh0aGlzKTp0aGlzLmlzU21hcnRQb2ludGVyP0xzKGh0LnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTpodCxwdHI6X3Qsc21hcnRQdHJUeXBlOnRoaXMsc21hcnRQdHI6Vn0pOkxzKGh0LnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSx7cHRyVHlwZTpodCxwdHI6X3R9KX1mdW5jdGlvbiB6dSgpe2ZyLnByb3RvdHlwZS5nZXRQb2ludGVlPUl1LGZyLnByb3RvdHlwZS5kZXN0cnVjdG9yPXZ1LGZyLnByb3RvdHlwZS5hcmdQYWNrQWR2YW5jZT04LGZyLnByb3RvdHlwZS5yZWFkVmFsdWVGcm9tUG9pbnRlcj1hcixmci5wcm90b3R5cGUuZGVsZXRlT2JqZWN0PUx1LGZyLnByb3RvdHlwZS5mcm9tV2lyZVR5cGU9R3V9ZnVuY3Rpb24gZnIoVixHLFksSixsdCxPdCxSdCxodCxfdCxLdCx0ZSl7dGhpcy5uYW1lPVYsdGhpcy5yZWdpc3RlcmVkQ2xhc3M9Ryx0aGlzLmlzUmVmZXJlbmNlPVksdGhpcy5pc0NvbnN0PUosdGhpcy5pc1NtYXJ0UG9pbnRlcj1sdCx0aGlzLnBvaW50ZWVUeXBlPU90LHRoaXMuc2hhcmluZ1BvbGljeT1SdCx0aGlzLnJhd0dldFBvaW50ZWU9aHQsdGhpcy5yYXdDb25zdHJ1Y3Rvcj1fdCx0aGlzLnJhd1NoYXJlPUt0LHRoaXMucmF3RGVzdHJ1Y3Rvcj10ZSwhbHQmJkcuYmFzZUNsYXNzPT09dm9pZCAwP0o/KHRoaXMudG9XaXJlVHlwZT1QdSx0aGlzLmRlc3RydWN0b3JGdW5jdGlvbj1udWxsKToodGhpcy50b1dpcmVUeXBlPU51LHRoaXMuZGVzdHJ1Y3RvckZ1bmN0aW9uPW51bGwpOnRoaXMudG9XaXJlVHlwZT1NdX1mdW5jdGlvbiAkYShWLEcsWSl7bi5oYXNPd25Qcm9wZXJ0eShWKXx8YmkoIlJlcGxhY2luZyBub25leGlzdGFudCBwdWJsaWMgc3ltYm9sIiksbltWXS5vdmVybG9hZFRhYmxlIT09dm9pZCAwJiZZIT09dm9pZCAwP25bVl0ub3ZlcmxvYWRUYWJsZVtZXT1HOihuW1ZdPUcsbltWXS5hcmdDb3VudD1ZKX1mdW5jdGlvbiBqdShWLEcsWSl7dmFyIEo9blsiZHluQ2FsbF8iK1ZdO3JldHVybiBZJiZZLmxlbmd0aD9KLmFwcGx5KG51bGwsW0ddLmNvbmNhdChZKSk6Si5jYWxsKG51bGwsRyl9ZnVuY3Rpb24gSHUoVixHLFkpe3JldHVybiBWLmluZGV4T2YoImoiKSE9LTE/anUoVixHLFkpOmdlLmdldChHKS5hcHBseShudWxsLFkpfWZ1bmN0aW9uIHF1KFYsRyl7dmFyIFk9W107cmV0dXJuIGZ1bmN0aW9uKCl7WS5sZW5ndGg9YXJndW1lbnRzLmxlbmd0aDtmb3IodmFyIEo9MDtKPGFyZ3VtZW50cy5sZW5ndGg7SisrKVlbSl09YXJndW1lbnRzW0pdO3JldHVybiBIdShWLEcsWSl9fWZ1bmN0aW9uIEhvKFYsRyl7Vj1GbihWKTtmdW5jdGlvbiBZKCl7cmV0dXJuIFYuaW5kZXhPZigiaiIpIT0tMT9xdShWLEcpOmdlLmdldChHKX12YXIgSj1ZKCk7cmV0dXJuIHR5cGVvZiBKIT0iZnVuY3Rpb24iJiZEZSgidW5rbm93biBmdW5jdGlvbiBwb2ludGVyIHdpdGggc2lnbmF0dXJlICIrVisiOiAiK0cpLEp9dmFyIFphPXZvaWQgMDtmdW5jdGlvbiBRYShWKXt2YXIgRz1ldChWKSxZPUZuKEcpO3JldHVybiBXKEcpLFl9ZnVuY3Rpb24gRHMoVixHKXt2YXIgWT1bXSxKPXt9O2Z1bmN0aW9uIGx0KE90KXtpZighSltPdF0mJiFqb1tPdF0pe2lmKE5yW090XSl7TnJbT3RdLmZvckVhY2gobHQpO3JldHVybn1ZLnB1c2goT3QpLEpbT3RdPSEwfX10aHJvdyBHLmZvckVhY2gobHQpLG5ldyBaYShWKyI6ICIrWS5tYXAoUWEpLmpvaW4oWyIsICJdKSl9ZnVuY3Rpb24gS3UoVixHLFksSixsdCxPdCxSdCxodCxfdCxLdCx0ZSxUZSxKZSl7dGU9Rm4odGUpLE90PUhvKGx0LE90KSxodCYmKGh0PUhvKFJ0LGh0KSksS3QmJihLdD1IbyhfdCxLdCkpLEplPUhvKFRlLEplKTt2YXIgYm49WWkodGUpO0RjKGJuLGZ1bmN0aW9uKCl7RHMoIkNhbm5vdCBjb25zdHJ1Y3QgIit0ZSsiIGR1ZSB0byB1bmJvdW5kIHR5cGVzIixbSl0pfSksb28oW1YsRyxZXSxKP1tKXTpbXSxmdW5jdGlvbihybyl7cm89cm9bMF07dmFyIElvLGxyO0o/KElvPXJvLnJlZ2lzdGVyZWRDbGFzcyxscj1Jby5pbnN0YW5jZVByb3RvdHlwZSk6bHI9THIucHJvdG90eXBlO3ZhciBacj1JcihibixmdW5jdGlvbigpe2lmKE9iamVjdC5nZXRQcm90b3R5cGVPZih0aGlzKSE9PXJmKXRocm93IG5ldyB3aSgiVXNlICduZXcnIHRvIGNvbnN0cnVjdCAiK3RlKTtpZihFaS5jb25zdHJ1Y3Rvcl9ib2R5PT09dm9pZCAwKXRocm93IG5ldyB3aSh0ZSsiIGhhcyBubyBhY2Nlc3NpYmxlIGNvbnN0cnVjdG9yIik7dmFyIHUxPUVpLmNvbnN0cnVjdG9yX2JvZHlbYXJndW1lbnRzLmxlbmd0aF07aWYodTE9PT12b2lkIDApdGhyb3cgbmV3IHdpKCJUcmllZCB0byBpbnZva2UgY3RvciBvZiAiK3RlKyIgd2l0aCBpbnZhbGlkIG51bWJlciBvZiBwYXJhbWV0ZXJzICgiK2FyZ3VtZW50cy5sZW5ndGgrIikgLSBleHBlY3RlZCAoIitPYmplY3Qua2V5cyhFaS5jb25zdHJ1Y3Rvcl9ib2R5KS50b1N0cmluZygpKyIpIHBhcmFtZXRlcnMgaW5zdGVhZCEiKTtyZXR1cm4gdTEuYXBwbHkodGhpcyxhcmd1bWVudHMpfSkscmY9T2JqZWN0LmNyZWF0ZShscix7Y29uc3RydWN0b3I6e3ZhbHVlOlpyfX0pO1pyLnByb3RvdHlwZT1yZjt2YXIgRWk9bmV3IHh1KHRlLFpyLHJmLEplLElvLE90LGh0LEt0KSxYUz1uZXcgZnIodGUsRWksITAsITEsITEpLGExPW5ldyBmcih0ZSsiKiIsRWksITEsITEsITEpLGYxPW5ldyBmcih0ZSsiIGNvbnN0KiIsRWksITEsITAsITEpO3JldHVybiBXYVtWXT17cG9pbnRlclR5cGU6YTEsY29uc3RQb2ludGVyVHlwZTpmMX0sJGEoYm4sWnIpLFtYUyxhMSxmMV19KX1mdW5jdGlvbiBCYyhWLEcpe2Zvcih2YXIgWT1bXSxKPTA7SjxWO0orKylZLnB1c2goYWVbKEc+PjIpK0pdKTtyZXR1cm4gWX1mdW5jdGlvbiBXdShWLEcsWSxKLGx0LE90KXtCKEc+MCk7dmFyIFJ0PUJjKEcsWSk7bHQ9SG8oSixsdCk7dmFyIGh0PVtPdF0sX3Q9W107b28oW10sW1ZdLGZ1bmN0aW9uKEt0KXtLdD1LdFswXTt2YXIgdGU9ImNvbnN0cnVjdG9yICIrS3QubmFtZTtpZihLdC5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keT09PXZvaWQgMCYmKEt0LnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5PVtdKSxLdC5yZWdpc3RlcmVkQ2xhc3MuY29uc3RydWN0b3JfYm9keVtHLTFdIT09dm9pZCAwKXRocm93IG5ldyB3aSgiQ2Fubm90IHJlZ2lzdGVyIG11bHRpcGxlIGNvbnN0cnVjdG9ycyB3aXRoIGlkZW50aWNhbCBudW1iZXIgb2YgcGFyYW1ldGVycyAoIisoRy0xKSsiKSBmb3IgY2xhc3MgJyIrS3QubmFtZSsiJyEgT3ZlcmxvYWQgcmVzb2x1dGlvbiBpcyBjdXJyZW50bHkgb25seSBwZXJmb3JtZWQgdXNpbmcgdGhlIHBhcmFtZXRlciBjb3VudCwgbm90IGFjdHVhbCB0eXBlIGluZm8hIik7cmV0dXJuIEt0LnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W0ctMV09ZnVuY3Rpb24oKXtEcygiQ2Fubm90IGNvbnN0cnVjdCAiK0t0Lm5hbWUrIiBkdWUgdG8gdW5ib3VuZCB0eXBlcyIsUnQpfSxvbyhbXSxSdCxmdW5jdGlvbihUZSl7cmV0dXJuIEt0LnJlZ2lzdGVyZWRDbGFzcy5jb25zdHJ1Y3Rvcl9ib2R5W0ctMV09ZnVuY3Rpb24oKXthcmd1bWVudHMubGVuZ3RoIT09Ry0xJiZEZSh0ZSsiIGNhbGxlZCB3aXRoICIrYXJndW1lbnRzLmxlbmd0aCsiIGFyZ3VtZW50cywgZXhwZWN0ZWQgIisoRy0xKSksX3QubGVuZ3RoPTAsaHQubGVuZ3RoPUc7Zm9yKHZhciBibj0xO2JuPEc7KytibilodFtibl09VGVbYm5dLnRvV2lyZVR5cGUoX3QsYXJndW1lbnRzW2JuLTFdKTt2YXIgcm89bHQuYXBwbHkobnVsbCxodCk7cmV0dXJuIFJuKF90KSxUZVswXS5mcm9tV2lyZVR5cGUocm8pfSxbXX0pLFtdfSl9ZnVuY3Rpb24gSmEoVixHKXtpZighKFYgaW5zdGFuY2VvZiBGdW5jdGlvbikpdGhyb3cgbmV3IFR5cGVFcnJvcigibmV3XyBjYWxsZWQgd2l0aCBjb25zdHJ1Y3RvciB0eXBlICIrdHlwZW9mIFYrIiB3aGljaCBpcyBub3QgYSBmdW5jdGlvbiIpO3ZhciBZPUlyKFYubmFtZXx8InVua25vd25GdW5jdGlvbk5hbWUiLGZ1bmN0aW9uKCl7fSk7WS5wcm90b3R5cGU9Vi5wcm90b3R5cGU7dmFyIEo9bmV3IFksbHQ9Vi5hcHBseShKLEcpO3JldHVybiBsdCBpbnN0YW5jZW9mIE9iamVjdD9sdDpKfWZ1bmN0aW9uIHRmKFYsRyxZLEosbHQpe3ZhciBPdD1HLmxlbmd0aDtPdDwyJiZEZSgiYXJnVHlwZXMgYXJyYXkgc2l6ZSBtaXNtYXRjaCEgTXVzdCBhdCBsZWFzdCBnZXQgcmV0dXJuIHZhbHVlIGFuZCAndGhpcycgdHlwZXMhIik7Zm9yKHZhciBSdD1HWzFdIT09bnVsbCYmWSE9PW51bGwsaHQ9ITEsX3Q9MTtfdDxHLmxlbmd0aDsrK190KWlmKEdbX3RdIT09bnVsbCYmR1tfdF0uZGVzdHJ1Y3RvckZ1bmN0aW9uPT09dm9pZCAwKXtodD0hMDticmVha31mb3IodmFyIEt0PUdbMF0ubmFtZSE9PSJ2b2lkIix0ZT0iIixUZT0iIixfdD0wO190PE90LTI7KytfdCl0ZSs9KF90IT09MD8iLCAiOiIiKSsiYXJnIitfdCxUZSs9KF90IT09MD8iLCAiOiIiKSsiYXJnIitfdCsiV2lyZWQiO3ZhciBKZT0icmV0dXJuIGZ1bmN0aW9uICIrWWkoVikrIigiK3RlK2ApIHsKaWYgKGFyZ3VtZW50cy5sZW5ndGggIT09IGArKE90LTIpK2ApIHsKdGhyb3dCaW5kaW5nRXJyb3IoJ2Z1bmN0aW9uIGArVisiIGNhbGxlZCB3aXRoICcgKyBhcmd1bWVudHMubGVuZ3RoICsgJyBhcmd1bWVudHMsIGV4cGVjdGVkICIrKE90LTIpK2AgYXJncyEnKTsKfQpgO2h0JiYoSmUrPWB2YXIgZGVzdHJ1Y3RvcnMgPSBbXTsKYCk7dmFyIGJuPWh0PyJkZXN0cnVjdG9ycyI6Im51bGwiLHJvPVsidGhyb3dCaW5kaW5nRXJyb3IiLCJpbnZva2VyIiwiZm4iLCJydW5EZXN0cnVjdG9ycyIsInJldFR5cGUiLCJjbGFzc1BhcmFtIl0sSW89W0RlLEosbHQsUm4sR1swXSxHWzFdXTtSdCYmKEplKz0idmFyIHRoaXNXaXJlZCA9IGNsYXNzUGFyYW0udG9XaXJlVHlwZSgiK2JuK2AsIHRoaXMpOwpgKTtmb3IodmFyIF90PTA7X3Q8T3QtMjsrK190KUplKz0idmFyIGFyZyIrX3QrIldpcmVkID0gYXJnVHlwZSIrX3QrIi50b1dpcmVUeXBlKCIrYm4rIiwgYXJnIitfdCsiKTsgLy8gIitHW190KzJdLm5hbWUrYApgLHJvLnB1c2goImFyZ1R5cGUiK190KSxJby5wdXNoKEdbX3QrMl0pO2lmKFJ0JiYoVGU9InRoaXNXaXJlZCIrKFRlLmxlbmd0aD4wPyIsICI6IiIpK1RlKSxKZSs9KEt0PyJ2YXIgcnYgPSAiOiIiKSsiaW52b2tlcihmbiIrKFRlLmxlbmd0aD4wPyIsICI6IiIpK1RlK2ApOwpgLGh0KUplKz1gcnVuRGVzdHJ1Y3RvcnMoZGVzdHJ1Y3RvcnMpOwpgO2Vsc2UgZm9yKHZhciBfdD1SdD8xOjI7X3Q8Ry5sZW5ndGg7KytfdCl7dmFyIGxyPV90PT09MT8idGhpc1dpcmVkIjoiYXJnIisoX3QtMikrIldpcmVkIjtHW190XS5kZXN0cnVjdG9yRnVuY3Rpb24hPT1udWxsJiYoSmUrPWxyKyJfZHRvcigiK2xyKyIpOyAvLyAiK0dbX3RdLm5hbWUrYApgLHJvLnB1c2gobHIrIl9kdG9yIiksSW8ucHVzaChHW190XS5kZXN0cnVjdG9yRnVuY3Rpb24pKX1LdCYmKEplKz1gdmFyIHJldCA9IHJldFR5cGUuZnJvbVdpcmVUeXBlKHJ2KTsKcmV0dXJuIHJldDsKYCksSmUrPWB9CmAscm8ucHVzaChKZSk7dmFyIFpyPUphKEZ1bmN0aW9uLHJvKS5hcHBseShudWxsLElvKTtyZXR1cm4gWnJ9ZnVuY3Rpb24gWHUoVixHLFksSixsdCxPdCxSdCxodCl7dmFyIF90PUJjKFksSik7Rz1GbihHKSxPdD1IbyhsdCxPdCksb28oW10sW1ZdLGZ1bmN0aW9uKEt0KXtLdD1LdFswXTt2YXIgdGU9S3QubmFtZSsiLiIrRztodCYmS3QucmVnaXN0ZXJlZENsYXNzLnB1cmVWaXJ0dWFsRnVuY3Rpb25zLnB1c2goRyk7ZnVuY3Rpb24gVGUoKXtEcygiQ2Fubm90IGNhbGwgIit0ZSsiIGR1ZSB0byB1bmJvdW5kIHR5cGVzIixfdCl9dmFyIEplPUt0LnJlZ2lzdGVyZWRDbGFzcy5pbnN0YW5jZVByb3RvdHlwZSxibj1KZVtHXTtyZXR1cm4gYm49PT12b2lkIDB8fGJuLm92ZXJsb2FkVGFibGU9PT12b2lkIDAmJmJuLmNsYXNzTmFtZSE9PUt0Lm5hbWUmJmJuLmFyZ0NvdW50PT09WS0yPyhUZS5hcmdDb3VudD1ZLTIsVGUuY2xhc3NOYW1lPUt0Lm5hbWUsSmVbR109VGUpOihYYShKZSxHLHRlKSxKZVtHXS5vdmVybG9hZFRhYmxlW1ktMl09VGUpLG9vKFtdLF90LGZ1bmN0aW9uKHJvKXt2YXIgSW89dGYodGUscm8sS3QsT3QsUnQpO3JldHVybiBKZVtHXS5vdmVybG9hZFRhYmxlPT09dm9pZCAwPyhJby5hcmdDb3VudD1ZLTIsSmVbR109SW8pOkplW0ddLm92ZXJsb2FkVGFibGVbWS0yXT1JbyxbXX0pLFtdfSl9ZnVuY3Rpb24gWXUoVixHLFkpe1Y9Rm4oViksb28oW10sW0ddLGZ1bmN0aW9uKEope3JldHVybiBKPUpbMF0sbltWXT1KLmZyb21XaXJlVHlwZShZKSxbXX0pfXZhciBVYz1bXSxBbz1be30se3ZhbHVlOnZvaWQgMH0se3ZhbHVlOm51bGx9LHt2YWx1ZTohMH0se3ZhbHVlOiExfV07ZnVuY3Rpb24gVmMoVil7Vj40JiYtLUFvW1ZdLnJlZmNvdW50PT09MCYmKEFvW1ZdPXZvaWQgMCxVYy5wdXNoKFYpKX1mdW5jdGlvbiAkdSgpe2Zvcih2YXIgVj0wLEc9NTtHPEFvLmxlbmd0aDsrK0cpQW9bR10hPT12b2lkIDAmJisrVjtyZXR1cm4gVn1mdW5jdGlvbiBadSgpe2Zvcih2YXIgVj01O1Y8QW8ubGVuZ3RoOysrVilpZihBb1tWXSE9PXZvaWQgMClyZXR1cm4gQW9bVl07cmV0dXJuIG51bGx9ZnVuY3Rpb24gUXUoKXtuLmNvdW50X2VtdmFsX2hhbmRsZXM9JHUsbi5nZXRfZmlyc3RfZW12YWw9WnV9ZnVuY3Rpb24gdXIoVil7c3dpdGNoKFYpe2Nhc2Ugdm9pZCAwOnJldHVybiAxO2Nhc2UgbnVsbDpyZXR1cm4gMjtjYXNlITA6cmV0dXJuIDM7Y2FzZSExOnJldHVybiA0O2RlZmF1bHQ6e3ZhciBHPVVjLmxlbmd0aD9VYy5wb3AoKTpBby5sZW5ndGg7cmV0dXJuIEFvW0ddPXtyZWZjb3VudDoxLHZhbHVlOlZ9LEd9fX1mdW5jdGlvbiBKdShWLEcpe0c9Rm4oRyksb3IoVix7bmFtZTpHLGZyb21XaXJlVHlwZTpmdW5jdGlvbihZKXt2YXIgSj1Bb1tZXS52YWx1ZTtyZXR1cm4gVmMoWSksSn0sdG9XaXJlVHlwZTpmdW5jdGlvbihZLEope3JldHVybiB1cihKKX0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjphcixkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfWZ1bmN0aW9uIHRsKFYsRyxZKXtzd2l0Y2goRyl7Y2FzZSAwOnJldHVybiBmdW5jdGlvbihKKXt2YXIgbHQ9WT91dDp2dDtyZXR1cm4gdGhpcy5mcm9tV2lyZVR5cGUobHRbSl0pfTtjYXNlIDE6cmV0dXJuIGZ1bmN0aW9uKEope3ZhciBsdD1ZP3p0Om1lO3JldHVybiB0aGlzLmZyb21XaXJlVHlwZShsdFtKPj4xXSl9O2Nhc2UgMjpyZXR1cm4gZnVuY3Rpb24oSil7dmFyIGx0PVk/YWU6cGU7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKGx0W0o+PjJdKX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGludGVnZXIgdHlwZTogIitWKX19ZnVuY3Rpb24gZWwoVixHLFksSil7dmFyIGx0PXZyKFkpO0c9Rm4oRyk7ZnVuY3Rpb24gT3QoKXt9T3QudmFsdWVzPXt9LG9yKFYse25hbWU6Ryxjb25zdHJ1Y3RvcjpPdCxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oUnQpe3JldHVybiB0aGlzLmNvbnN0cnVjdG9yLnZhbHVlc1tSdF19LHRvV2lyZVR5cGU6ZnVuY3Rpb24oUnQsaHQpe3JldHVybiBodC52YWx1ZX0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjp0bChHLGx0LEopLGRlc3RydWN0b3JGdW5jdGlvbjpudWxsfSksRGMoRyxPdCl9ZnVuY3Rpb24gRnMoVixHKXt2YXIgWT1qb1tWXTtyZXR1cm4gWT09PXZvaWQgMCYmRGUoRysiIGhhcyB1bmtub3duIHR5cGUgIitRYShWKSksWX1mdW5jdGlvbiBubChWLEcsWSl7dmFyIEo9RnMoViwiZW51bSIpO0c9Rm4oRyk7dmFyIGx0PUouY29uc3RydWN0b3IsT3Q9T2JqZWN0LmNyZWF0ZShKLmNvbnN0cnVjdG9yLnByb3RvdHlwZSx7dmFsdWU6e3ZhbHVlOll9LGNvbnN0cnVjdG9yOnt2YWx1ZTpJcihKLm5hbWUrIl8iK0csZnVuY3Rpb24oKXt9KX19KTtsdC52YWx1ZXNbWV09T3QsbHRbR109T3R9ZnVuY3Rpb24gVGkoVil7aWYoVj09PW51bGwpcmV0dXJuIm51bGwiO3ZhciBHPXR5cGVvZiBWO3JldHVybiBHPT09Im9iamVjdCJ8fEc9PT0iYXJyYXkifHxHPT09ImZ1bmN0aW9uIj9WLnRvU3RyaW5nKCk6IiIrVn1mdW5jdGlvbiBvbChWLEcpe3N3aXRjaChHKXtjYXNlIDI6cmV0dXJuIGZ1bmN0aW9uKFkpe3JldHVybiB0aGlzLmZyb21XaXJlVHlwZSh1ZVtZPj4yXSl9O2Nhc2UgMzpyZXR1cm4gZnVuY3Rpb24oWSl7cmV0dXJuIHRoaXMuZnJvbVdpcmVUeXBlKFF0W1k+PjNdKX07ZGVmYXVsdDp0aHJvdyBuZXcgVHlwZUVycm9yKCJVbmtub3duIGZsb2F0IHR5cGU6ICIrVil9fWZ1bmN0aW9uIHJsKFYsRyxZKXt2YXIgSj12cihZKTtHPUZuKEcpLG9yKFYse25hbWU6Ryxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24obHQpe3JldHVybiBsdH0sdG9XaXJlVHlwZTpmdW5jdGlvbihsdCxPdCl7aWYodHlwZW9mIE90IT0ibnVtYmVyIiYmdHlwZW9mIE90IT0iYm9vbGVhbiIpdGhyb3cgbmV3IFR5cGVFcnJvcignQ2Fubm90IGNvbnZlcnQgIicrVGkoT3QpKyciIHRvICcrdGhpcy5uYW1lKTtyZXR1cm4gT3R9LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6b2woRyxKKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfWZ1bmN0aW9uIGlsKFYsRyxZLEosbHQsT3Qpe3ZhciBSdD1CYyhHLFkpO1Y9Rm4oViksbHQ9SG8oSixsdCksRGMoVixmdW5jdGlvbigpe0RzKCJDYW5ub3QgY2FsbCAiK1YrIiBkdWUgdG8gdW5ib3VuZCB0eXBlcyIsUnQpfSxHLTEpLG9vKFtdLFJ0LGZ1bmN0aW9uKGh0KXt2YXIgX3Q9W2h0WzBdLG51bGxdLmNvbmNhdChodC5zbGljZSgxKSk7cmV0dXJuICRhKFYsdGYoVixfdCxudWxsLGx0LE90KSxHLTEpLFtdfSl9ZnVuY3Rpb24gc2woVixHLFkpe3N3aXRjaChHKXtjYXNlIDA6cmV0dXJuIFk/ZnVuY3Rpb24obHQpe3JldHVybiB1dFtsdF19OmZ1bmN0aW9uKGx0KXtyZXR1cm4gdnRbbHRdfTtjYXNlIDE6cmV0dXJuIFk/ZnVuY3Rpb24obHQpe3JldHVybiB6dFtsdD4+MV19OmZ1bmN0aW9uKGx0KXtyZXR1cm4gbWVbbHQ+PjFdfTtjYXNlIDI6cmV0dXJuIFk/ZnVuY3Rpb24obHQpe3JldHVybiBhZVtsdD4+Ml19OmZ1bmN0aW9uKGx0KXtyZXR1cm4gcGVbbHQ+PjJdfTtkZWZhdWx0OnRocm93IG5ldyBUeXBlRXJyb3IoIlVua25vd24gaW50ZWdlciB0eXBlOiAiK1YpfX1mdW5jdGlvbiBjbChWLEcsWSxKLGx0KXtHPUZuKEcpLGx0PT09LTEmJihsdD00Mjk0OTY3Mjk1KTt2YXIgT3Q9dnIoWSksUnQ9ZnVuY3Rpb24oS3Qpe3JldHVybiBLdH07aWYoSj09PTApe3ZhciBodD0zMi04Klk7UnQ9ZnVuY3Rpb24oS3Qpe3JldHVybiBLdDw8aHQ+Pj5odH19dmFyIF90PUcuaW5kZXhPZigidW5zaWduZWQiKSE9LTE7b3IoVix7bmFtZTpHLGZyb21XaXJlVHlwZTpSdCx0b1dpcmVUeXBlOmZ1bmN0aW9uKEt0LHRlKXtpZih0eXBlb2YgdGUhPSJudW1iZXIiJiZ0eXBlb2YgdGUhPSJib29sZWFuIil0aHJvdyBuZXcgVHlwZUVycm9yKCdDYW5ub3QgY29udmVydCAiJytUaSh0ZSkrJyIgdG8gJyt0aGlzLm5hbWUpO2lmKHRlPEp8fHRlPmx0KXRocm93IG5ldyBUeXBlRXJyb3IoJ1Bhc3NpbmcgYSBudW1iZXIgIicrVGkodGUpKyciIGZyb20gSlMgc2lkZSB0byBDL0MrKyBzaWRlIHRvIGFuIGFyZ3VtZW50IG9mIHR5cGUgIicrRysnIiwgd2hpY2ggaXMgb3V0c2lkZSB0aGUgdmFsaWQgcmFuZ2UgWycrSisiLCAiK2x0KyJdISIpO3JldHVybiBfdD90ZT4+PjA6dGV8MH0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjpzbChHLE90LEohPT0wKSxkZXN0cnVjdG9yRnVuY3Rpb246bnVsbH0pfWZ1bmN0aW9uIGFsKFYsRyxZKXt2YXIgSj1bSW50OEFycmF5LFVpbnQ4QXJyYXksSW50MTZBcnJheSxVaW50MTZBcnJheSxJbnQzMkFycmF5LFVpbnQzMkFycmF5LEZsb2F0MzJBcnJheSxGbG9hdDY0QXJyYXldLGx0PUpbR107ZnVuY3Rpb24gT3QoUnQpe1J0PVJ0Pj4yO3ZhciBodD1wZSxfdD1odFtSdF0sS3Q9aHRbUnQrMV07cmV0dXJuIG5ldyBsdChtdCxLdCxfdCl9WT1GbihZKSxvcihWLHtuYW1lOlksZnJvbVdpcmVUeXBlOk90LGFyZ1BhY2tBZHZhbmNlOjgscmVhZFZhbHVlRnJvbVBvaW50ZXI6T3R9LHtpZ25vcmVEdXBsaWNhdGVSZWdpc3RyYXRpb25zOiEwfSl9ZnVuY3Rpb24gZmwoVixHKXtHPUZuKEcpO3ZhciBZPUc9PT0ic3RkOjpzdHJpbmciO29yKFYse25hbWU6Ryxmcm9tV2lyZVR5cGU6ZnVuY3Rpb24oSil7dmFyIGx0PXBlW0o+PjJdLE90O2lmKFkpZm9yKHZhciBSdD1KKzQsaHQ9MDtodDw9bHQ7KytodCl7dmFyIF90PUorNCtodDtpZihodD09bHR8fHZ0W190XT09MCl7dmFyIEt0PV90LVJ0LHRlPWsoUnQsS3QpO090PT09dm9pZCAwP090PXRlOihPdCs9IlwwIixPdCs9dGUpLFJ0PV90KzF9fWVsc2V7Zm9yKHZhciBUZT1uZXcgQXJyYXkobHQpLGh0PTA7aHQ8bHQ7KytodClUZVtodF09U3RyaW5nLmZyb21DaGFyQ29kZSh2dFtKKzQraHRdKTtPdD1UZS5qb2luKCIiKX1yZXR1cm4gVyhKKSxPdH0sdG9XaXJlVHlwZTpmdW5jdGlvbihKLGx0KXtsdCBpbnN0YW5jZW9mIEFycmF5QnVmZmVyJiYobHQ9bmV3IFVpbnQ4QXJyYXkobHQpKTt2YXIgT3QsUnQ9dHlwZW9mIGx0PT0ic3RyaW5nIjtSdHx8bHQgaW5zdGFuY2VvZiBVaW50OEFycmF5fHxsdCBpbnN0YW5jZW9mIFVpbnQ4Q2xhbXBlZEFycmF5fHxsdCBpbnN0YW5jZW9mIEludDhBcnJheXx8RGUoIkNhbm5vdCBwYXNzIG5vbi1zdHJpbmcgdG8gc3RkOjpzdHJpbmciKSxZJiZSdD9PdD1mdW5jdGlvbigpe3JldHVybiBSKGx0KX06T3Q9ZnVuY3Rpb24oKXtyZXR1cm4gbHQubGVuZ3RofTt2YXIgaHQ9T3QoKSxfdD16KDQraHQrMSk7aWYocGVbX3Q+PjJdPWh0LFkmJlJ0KVgobHQsX3QrNCxodCsxKTtlbHNlIGlmKFJ0KWZvcih2YXIgS3Q9MDtLdDxodDsrK0t0KXt2YXIgdGU9bHQuY2hhckNvZGVBdChLdCk7dGU+MjU1JiYoVyhfdCksRGUoIlN0cmluZyBoYXMgVVRGLTE2IGNvZGUgdW5pdHMgdGhhdCBkbyBub3QgZml0IGluIDggYml0cyIpKSx2dFtfdCs0K0t0XT10ZX1lbHNlIGZvcih2YXIgS3Q9MDtLdDxodDsrK0t0KXZ0W190KzQrS3RdPWx0W0t0XTtyZXR1cm4gSiE9PW51bGwmJkoucHVzaChXLF90KSxfdH0sYXJnUGFja0FkdmFuY2U6OCxyZWFkVmFsdWVGcm9tUG9pbnRlcjphcixkZXN0cnVjdG9yRnVuY3Rpb246ZnVuY3Rpb24oSil7VyhKKX19KX1mdW5jdGlvbiB1bChWLEcsWSl7WT1GbihZKTt2YXIgSixsdCxPdCxSdCxodDtHPT09Mj8oSj1hdCxsdD1wdCxSdD15dCxPdD1mdW5jdGlvbigpe3JldHVybiBtZX0saHQ9MSk6Rz09PTQmJihKPXJ0LGx0PVB0LFJ0PWd0LE90PWZ1bmN0aW9uKCl7cmV0dXJuIHBlfSxodD0yKSxvcihWLHtuYW1lOlksZnJvbVdpcmVUeXBlOmZ1bmN0aW9uKF90KXtmb3IodmFyIEt0PXBlW190Pj4yXSx0ZT1PdCgpLFRlLEplPV90KzQsYm49MDtibjw9S3Q7Kytibil7dmFyIHJvPV90KzQrYm4qRztpZihibj09S3R8fHRlW3JvPj5odF09PTApe3ZhciBJbz1yby1KZSxscj1KKEplLElvKTtUZT09PXZvaWQgMD9UZT1scjooVGUrPSJcMCIsVGUrPWxyKSxKZT1ybytHfX1yZXR1cm4gVyhfdCksVGV9LHRvV2lyZVR5cGU6ZnVuY3Rpb24oX3QsS3Qpe3R5cGVvZiBLdCE9InN0cmluZyImJkRlKCJDYW5ub3QgcGFzcyBub24tc3RyaW5nIHRvIEMrKyBzdHJpbmcgdHlwZSAiK1kpO3ZhciB0ZT1SdChLdCksVGU9eig0K3RlK0cpO3JldHVybiBwZVtUZT4+Ml09dGU+Pmh0LGx0KEt0LFRlKzQsdGUrRyksX3QhPT1udWxsJiZfdC5wdXNoKFcsVGUpLFRlfSxhcmdQYWNrQWR2YW5jZTo4LHJlYWRWYWx1ZUZyb21Qb2ludGVyOmFyLGRlc3RydWN0b3JGdW5jdGlvbjpmdW5jdGlvbihfdCl7VyhfdCl9fSl9ZnVuY3Rpb24gbGwoVixHLFksSixsdCxPdCl7cm5bVl09e25hbWU6Rm4oRykscmF3Q29uc3RydWN0b3I6SG8oWSxKKSxyYXdEZXN0cnVjdG9yOkhvKGx0LE90KSxmaWVsZHM6W119fWZ1bmN0aW9uIHBsKFYsRyxZLEosbHQsT3QsUnQsaHQsX3QsS3Qpe3JuW1ZdLmZpZWxkcy5wdXNoKHtmaWVsZE5hbWU6Rm4oRyksZ2V0dGVyUmV0dXJuVHlwZTpZLGdldHRlcjpIbyhKLGx0KSxnZXR0ZXJDb250ZXh0Ok90LHNldHRlckFyZ3VtZW50VHlwZTpSdCxzZXR0ZXI6SG8oaHQsX3QpLHNldHRlckNvbnRleHQ6S3R9KX1mdW5jdGlvbiBkbChWLEcpe0c9Rm4oRyksb3IoVix7aXNWb2lkOiEwLG5hbWU6RyxhcmdQYWNrQWR2YW5jZTowLGZyb21XaXJlVHlwZTpmdW5jdGlvbigpe30sdG9XaXJlVHlwZTpmdW5jdGlvbihZLEope319KX1mdW5jdGlvbiBlcyhWKXtyZXR1cm4gVnx8RGUoIkNhbm5vdCB1c2UgZGVsZXRlZCB2YWwuIGhhbmRsZSA9ICIrViksQW9bVl0udmFsdWV9ZnVuY3Rpb24gbWwoVixHLFkpe1Y9ZXMoViksRz1GcyhHLCJlbXZhbDo6YXMiKTt2YXIgSj1bXSxsdD11cihKKTtyZXR1cm4gYWVbWT4+Ml09bHQsRy50b1dpcmVUeXBlKEosVil9dmFyIGhsPXt9O2Z1bmN0aW9uIEJzKFYpe3ZhciBHPWhsW1ZdO3JldHVybiBHPT09dm9pZCAwP0ZuKFYpOkd9dmFyIGtjPVtdO2Z1bmN0aW9uIF9sKFYsRyxZLEope1Y9a2NbVl0sRz1lcyhHKSxZPUJzKFkpLFYoRyxZLG51bGwsSil9ZnVuY3Rpb24gZWYoKXtyZXR1cm4gdHlwZW9mIGdsb2JhbFRoaXM9PSJvYmplY3QiP2dsb2JhbFRoaXM6ZnVuY3Rpb24oKXtyZXR1cm4gRnVuY3Rpb259KCkoInJldHVybiB0aGlzIikoKX1mdW5jdGlvbiB5bChWKXtyZXR1cm4gVj09PTA/dXIoZWYoKSk6KFY9QnMoViksdXIoZWYoKVtWXSkpfWZ1bmN0aW9uIGdsKFYpe3ZhciBHPWtjLmxlbmd0aDtyZXR1cm4ga2MucHVzaChWKSxHfWZ1bmN0aW9uIEFsKFYsRyl7Zm9yKHZhciBZPW5ldyBBcnJheShWKSxKPTA7SjxWOysrSilZW0pdPUZzKGFlWyhHPj4yKStKXSwicGFyYW1ldGVyICIrSik7cmV0dXJuIFl9ZnVuY3Rpb24gYmwoVixHKXtmb3IodmFyIFk9QWwoVixHKSxKPVlbMF0sbHQ9Si5uYW1lKyJfJCIrWS5zbGljZSgxKS5tYXAoZnVuY3Rpb24oYm4pe3JldHVybiBibi5uYW1lfSkuam9pbigiXyIpKyIkIixPdD1bInJldFR5cGUiXSxSdD1bSl0saHQ9IiIsX3Q9MDtfdDxWLTE7KytfdClodCs9KF90IT09MD8iLCAiOiIiKSsiYXJnIitfdCxPdC5wdXNoKCJhcmdUeXBlIitfdCksUnQucHVzaChZWzErX3RdKTtmb3IodmFyIEt0PVlpKCJtZXRob2RDYWxsZXJfIitsdCksdGU9InJldHVybiBmdW5jdGlvbiAiK0t0K2AoaGFuZGxlLCBuYW1lLCBkZXN0cnVjdG9ycywgYXJncykgewpgLFRlPTAsX3Q9MDtfdDxWLTE7KytfdCl0ZSs9IiAgICB2YXIgYXJnIitfdCsiID0gYXJnVHlwZSIrX3QrIi5yZWFkVmFsdWVGcm9tUG9pbnRlcihhcmdzIisoVGU/IisiK1RlOiIiKStgKTsKYCxUZSs9WVtfdCsxXS5hcmdQYWNrQWR2YW5jZTt0ZSs9IiAgICB2YXIgcnYgPSBoYW5kbGVbbmFtZV0oIitodCtgKTsKYDtmb3IodmFyIF90PTA7X3Q8Vi0xOysrX3QpWVtfdCsxXS5kZWxldGVPYmplY3QmJih0ZSs9IiAgICBhcmdUeXBlIitfdCsiLmRlbGV0ZU9iamVjdChhcmciK190K2ApOwpgKTtKLmlzVm9pZHx8KHRlKz1gICAgIHJldHVybiByZXRUeXBlLnRvV2lyZVR5cGUoZGVzdHJ1Y3RvcnMsIHJ2KTsKYCksdGUrPWB9OwpgLE90LnB1c2godGUpO3ZhciBKZT1KYShGdW5jdGlvbixPdCkuYXBwbHkobnVsbCxSdCk7cmV0dXJuIGdsKEplKX1mdW5jdGlvbiB3bChWKXtyZXR1cm4gVj1CcyhWKSx1cihuW1ZdKX1mdW5jdGlvbiBUbChWLEcpe3JldHVybiBWPWVzKFYpLEc9ZXMoRyksdXIoVltHXSl9ZnVuY3Rpb24gT2woVil7Vj40JiYoQW9bVl0ucmVmY291bnQrPTEpfWZ1bmN0aW9uIEVsKFYpe2Zvcih2YXIgRz0iIixZPTA7WTxWOysrWSlHKz0oWSE9PTA/IiwgIjoiIikrImFyZyIrWTtmb3IodmFyIEo9InJldHVybiBmdW5jdGlvbiBlbXZhbF9hbGxvY2F0b3JfIitWK2AoY29uc3RydWN0b3IsIGFyZ1R5cGVzLCBhcmdzKSB7CmAsWT0wO1k8VjsrK1kpSis9InZhciBhcmdUeXBlIitZKyIgPSByZXF1aXJlUmVnaXN0ZXJlZFR5cGUoTW9kdWxlWydIRUFQMzInXVsoYXJnVHlwZXMgPj4+IDIpICsgIitZKyddLCAicGFyYW1ldGVyICcrWStgIik7CnZhciBhcmdgK1krIiA9IGFyZ1R5cGUiK1krYC5yZWFkVmFsdWVGcm9tUG9pbnRlcihhcmdzKTsKYXJncyArPSBhcmdUeXBlYCtZK2BbJ2FyZ1BhY2tBZHZhbmNlJ107CmA7cmV0dXJuIEorPSJ2YXIgb2JqID0gbmV3IGNvbnN0cnVjdG9yKCIrRytgKTsKcmV0dXJuIF9fZW12YWxfcmVnaXN0ZXIob2JqKTsKfQpgLG5ldyBGdW5jdGlvbigicmVxdWlyZVJlZ2lzdGVyZWRUeXBlIiwiTW9kdWxlIiwiX19lbXZhbF9yZWdpc3RlciIsSikoRnMsbix1cil9dmFyIG5mPXt9O2Z1bmN0aW9uIFJsKFYsRyxZLEope1Y9ZXMoVik7dmFyIGx0PW5mW0ddO3JldHVybiBsdHx8KGx0PUVsKEcpLG5mW0ddPWx0KSxsdChWLFksSil9ZnVuY3Rpb24gU2woVil7cmV0dXJuIHVyKEJzKFYpKX1mdW5jdGlvbiBDbChWKXt2YXIgRz1Bb1tWXS52YWx1ZTtSbihHKSxWYyhWKX1mdW5jdGlvbiB4bCgpe0tlKCl9ZnVuY3Rpb24gUGwoVixHLFkpe3Z0LmNvcHlXaXRoaW4oVixHLEcrWSl9ZnVuY3Rpb24gTWwoVil7dHJ5e3JldHVybiBBLmdyb3coVi1tdC5ieXRlTGVuZ3RoKzY1NTM1Pj4+MTYpLEp0KEEuYnVmZmVyKSwxfWNhdGNoe319ZnVuY3Rpb24gTmwoVil7dmFyIEc9dnQubGVuZ3RoO1Y9Vj4+PjA7dmFyIFk9MjE0NzQ4MzY0ODtpZihWPlkpcmV0dXJuITE7Zm9yKHZhciBKPTE7Sjw9NDtKKj0yKXt2YXIgbHQ9RyooMSsuMi9KKTtsdD1NYXRoLm1pbihsdCxWKzEwMDY2MzI5Nik7dmFyIE90PU1hdGgubWluKFksQ3QoTWF0aC5tYXgoVixsdCksNjU1MzYpKSxSdD1NbChPdCk7aWYoUnQpcmV0dXJuITB9cmV0dXJuITF9dmFyIFVzPXttYXBwaW5nczp7fSxidWZmZXJzOltudWxsLFtdLFtdXSxwcmludENoYXI6ZnVuY3Rpb24oVixHKXt2YXIgWT1Vcy5idWZmZXJzW1ZdO0c9PT0wfHxHPT09MTA/KChWPT09MT9OOkkpKEgoWSwwKSksWS5sZW5ndGg9MCk6WS5wdXNoKEcpfSx2YXJhcmdzOnZvaWQgMCxnZXQ6ZnVuY3Rpb24oKXtVcy52YXJhcmdzKz00O3ZhciBWPWFlW1VzLnZhcmFyZ3MtND4+Ml07cmV0dXJuIFZ9LGdldFN0cjpmdW5jdGlvbihWKXt2YXIgRz1rKFYpO3JldHVybiBHfSxnZXQ2NDpmdW5jdGlvbihWLEcpe3JldHVybiBWfX07ZnVuY3Rpb24gSWwoVil7cmV0dXJuIDB9ZnVuY3Rpb24gdmwoVixHLFksSixsdCl7fWZ1bmN0aW9uIExsKFYsRyxZLEope2Zvcih2YXIgbHQ9MCxPdD0wO090PFk7T3QrKyl7Zm9yKHZhciBSdD1hZVtHK090Kjg+PjJdLGh0PWFlW0crKE90KjgrNCk+PjJdLF90PTA7X3Q8aHQ7X3QrKylVcy5wcmludENoYXIoVix2dFtSdCtfdF0pO2x0Kz1odH1yZXR1cm4gYWVbSj4+Ml09bHQsMH1mdW5jdGlvbiBEbChWKXt2KFZ8MCl9dnM9bi5JbnRlcm5hbEVycm9yPSRpKEVycm9yLCJJbnRlcm5hbEVycm9yIiksTWMoKSx3aT1uLkJpbmRpbmdFcnJvcj0kaShFcnJvciwiQmluZGluZ0Vycm9yIiksQ3UoKSx6dSgpLFV1KCksWmE9bi5VbmJvdW5kVHlwZUVycm9yPSRpKEVycm9yLCJVbmJvdW5kVHlwZUVycm9yIiksUXUoKTt2YXIgRmw9e3Q6cG8sSTpBdSx4Okt1LHc6V3UsZDpYdSxrOll1LEg6SnUsbjplbCxhOm5sLEE6cmwsaTppbCxqOmNsLGg6YWwsQjpmbCx2OnVsLHU6bGwsYzpwbCxKOmRsLG06bWwsczpfbCxiOlZjLHk6eWwscDpibCxyOndsLGU6VGwsZzpPbCxxOlJsLGY6U2wsbDpDbCxvOnhsLEU6UGwsRjpObCxHOklsLEM6dmwsejpMbCxEOkRsfSxvZj1XbigpLENlPW4uX19fd2FzbV9jYWxsX2N0b3JzPWZ1bmN0aW9uKCl7cmV0dXJuKENlPW4uX19fd2FzbV9jYWxsX2N0b3JzPW4uYXNtLkwpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sej1uLl9tYWxsb2M9ZnVuY3Rpb24oKXtyZXR1cm4oej1uLl9tYWxsb2M9bi5hc20uTSkuYXBwbHkobnVsbCxhcmd1bWVudHMpfSxXPW4uX2ZyZWU9ZnVuY3Rpb24oKXtyZXR1cm4oVz1uLl9mcmVlPW4uYXNtLk4pLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sZXQ9bi5fX19nZXRUeXBlTmFtZT1mdW5jdGlvbigpe3JldHVybihldD1uLl9fX2dldFR5cGVOYW1lPW4uYXNtLlApLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sTXQ9bi5fX19lbWJpbmRfcmVnaXN0ZXJfbmF0aXZlX2FuZF9idWlsdGluX3R5cGVzPWZ1bmN0aW9uKCl7cmV0dXJuKE10PW4uX19fZW1iaW5kX3JlZ2lzdGVyX25hdGl2ZV9hbmRfYnVpbHRpbl90eXBlcz1uLmFzbS5RKS5hcHBseShudWxsLGFyZ3VtZW50cyl9LGxlPW4uZHluQ2FsbF9qaWppPWZ1bmN0aW9uKCl7cmV0dXJuKGxlPW4uZHluQ2FsbF9qaWppPW4uYXNtLlIpLmFwcGx5KG51bGwsYXJndW1lbnRzKX0sd2U7ZnVuY3Rpb24gT2koVil7dGhpcy5uYW1lPSJFeGl0U3RhdHVzIix0aGlzLm1lc3NhZ2U9IlByb2dyYW0gdGVybWluYXRlZCB3aXRoIGV4aXQoIitWKyIpIix0aGlzLnN0YXR1cz1WfUhuPWZ1bmN0aW9uIFYoKXt3ZXx8R2MoKSx3ZXx8KEhuPVYpfTtmdW5jdGlvbiBHYyhWKXtpZihWPVZ8fGYsbW4+MHx8KHBuKCksbW4+MCkpcmV0dXJuO2Z1bmN0aW9uIEcoKXt3ZXx8KHdlPSEwLG4uY2FsbGVkUnVuPSEwLCFTJiYoRW4oKSxyZSgpLG8obiksbi5vblJ1bnRpbWVJbml0aWFsaXplZCYmbi5vblJ1bnRpbWVJbml0aWFsaXplZCgpLCR0KCkpKX1uLnNldFN0YXR1cz8obi5zZXRTdGF0dXMoIlJ1bm5pbmcuLi4iKSxzZXRUaW1lb3V0KGZ1bmN0aW9uKCl7c2V0VGltZW91dChmdW5jdGlvbigpe24uc2V0U3RhdHVzKCIiKX0sMSksRygpfSwxKSk6RygpfWlmKG4ucnVuPUdjLG4ucHJlSW5pdClmb3IodHlwZW9mIG4ucHJlSW5pdD09ImZ1bmN0aW9uIiYmKG4ucHJlSW5pdD1bbi5wcmVJbml0XSk7bi5wcmVJbml0Lmxlbmd0aD4wOyluLnByZUluaXQucG9wKCkoKTtyZXR1cm4gR2MoKSxlLnJlYWR5fX0oKTt0eXBlb2YgeW09PSJvYmplY3QiJiZ0eXBlb2YgSmc9PSJvYmplY3QiP0pnLmV4cG9ydHM9UWc6dHlwZW9mIGRlZmluZT09ImZ1bmN0aW9uIiYmZGVmaW5lLmFtZD9kZWZpbmUoW10sZnVuY3Rpb24oKXtyZXR1cm4gUWd9KTp0eXBlb2YgeW09PSJvYmplY3QiJiYoeW0uQkFTSVM9UWcpfSk7dmFyIHQxPXt9O2RlKHQxLHtkZWZhdWx0OigpPT5POH0pO2Z1bmN0aW9uIGc4KHQsZSl7eS50eXBlT2Yub2JqZWN0KCJ0cmFuc2NvZGVyTW9kdWxlIixndSk7bGV0IG49dC5rdHgyQnVmZmVyLG89dC5zdXBwb3J0ZWRUYXJnZXRGb3JtYXRzLHI7dHJ5e3I9RlMobil9Y2F0Y2h7dGhyb3cgbmV3IEFlKCJJbnZhbGlkIEtUWDIgZmlsZS4iKX1pZihyLmxheWVyQ291bnQhPT0wKXRocm93IG5ldyBBZSgiS1RYMiB0ZXh0dXJlIGFycmF5cyBhcmUgbm90IHN1cHBvcnRlZC4iKTtpZihyLnBpeGVsRGVwdGghPT0wKXRocm93IG5ldyBBZSgiS1RYMiAzRCB0ZXh0dXJlcyBhcmUgdW5zdXBwb3J0ZWQuIik7bGV0IGk9ci5kYXRhRm9ybWF0RGVzY3JpcHRvclswXSxzPW5ldyBBcnJheShyLmxldmVsQ291bnQpO3JldHVybiByLnZrRm9ybWF0PT09MCYmKGkuY29sb3JNb2RlbD09PUdTfHxpLmNvbG9yTW9kZWw9PT16Uyk/YjgobixyLG8sZ3UsZSxzKTooZS5wdXNoKG4uYnVmZmVyKSxBOChyLHMpKSxzfWZ1bmN0aW9uIEE4KHQsZSl7bGV0IG49dC52a0Zvcm1hdD09PXl1LlZLX0ZPUk1BVF9SOEc4QjhfU1JHQj9Wbi5SR0I6Vm4uUkdCQSxvO3QudmtGb3JtYXQ9PT15dS5WS19GT1JNQVRfUjhHOEI4QThfVU5PUk0/bz1uci5VTlNJR05FRF9CWVRFOnQudmtGb3JtYXQ9PT15dS5WS19GT1JNQVRfUjE2RzE2QjE2QTE2X1NGTE9BVD9vPW5yLkhBTEZfRkxPQVQ6dC52a0Zvcm1hdD09PXl1LlZLX0ZPUk1BVF9SMzJHMzJCMzJBMzJfU0ZMT0FUJiYobz1uci5GTE9BVCk7Zm9yKGxldCByPTA7cjx0LmxldmVscy5sZW5ndGg7KytyKXtsZXQgaT17fTtlW3JdPWk7bGV0IHM9dC5sZXZlbHNbcl0ubGV2ZWxEYXRhLGY9dC5waXhlbFdpZHRoPj5yLHU9dC5waXhlbEhlaWdodD4+cixjPWYqdSpWbi5jb21wb25lbnRzTGVuZ3RoKG4pO2ZvcihsZXQgbD0wO2w8dC5mYWNlQ291bnQ7KytsKXtsZXQgcD1zLmJ5dGVPZmZzZXQrYyp0LnR5cGVTaXplKmwsZDshaChvKXx8bnIuc2l6ZUluQnl0ZXMobyk9PT0xP2Q9bmV3IFVpbnQ4QXJyYXkocy5idWZmZXIscCxjKTpuci5zaXplSW5CeXRlcyhvKT09PTI/ZD1uZXcgVWludDE2QXJyYXkocy5idWZmZXIscCxjKTpkPW5ldyBGbG9hdDMyQXJyYXkocy5idWZmZXIscCxjKSxpW2tTW2xdXT17aW50ZXJuYWxGb3JtYXQ6bixkYXRhdHlwZTpvLHdpZHRoOmYsaGVpZ2h0OnUsbGV2ZWxCdWZmZXI6ZH19fX1mdW5jdGlvbiBiOCh0LGUsbixvLHIsaSl7bGV0IHM9bmV3IG8uS1RYMkZpbGUodCksZj1zLmdldFdpZHRoKCksdT1zLmdldEhlaWdodCgpLGM9cy5nZXRMZXZlbHMoKSxsPXMuZ2V0SGFzQWxwaGEoKTtpZighKGY+MCl8fCEodT4wKXx8IShjPjApKXRocm93IHMuY2xvc2UoKSxzLmRlbGV0ZSgpLG5ldyBBZSgiSW52YWxpZCBLVFgyIGZpbGUiKTtsZXQgcCxkLG09ZS5kYXRhRm9ybWF0RGVzY3JpcHRvclswXSxfPW8udHJhbnNjb2Rlcl90ZXh0dXJlX2Zvcm1hdDtpZihtLmNvbG9yTW9kZWw9PT1HUylpZihuLmV0YylwPWw/Vm4uUkdCQThfRVRDMl9FQUM6Vm4uUkdCOF9FVEMyLGQ9bD9fLmNURkVUQzJfUkdCQTpfLmNURkVUQzFfUkdCO2Vsc2UgaWYobi5ldGMxJiYhbClwPVZuLlJHQl9FVEMxLGQ9Xy5jVEZFVEMxX1JHQjtlbHNlIGlmKG4uczN0YylwPWw/Vm4uUkdCQV9EWFQ1OlZuLlJHQl9EWFQxLGQ9bD9fLmNURkJDM19SR0JBOl8uY1RGQkMxX1JHQjtlbHNlIGlmKG4ucHZydGMpcD1sP1ZuLlJHQkFfUFZSVENfNEJQUFYxOlZuLlJHQl9QVlJUQ180QlBQVjEsZD1sP18uY1RGUFZSVEMxXzRfUkdCQTpfLmNURlBWUlRDMV80X1JHQjtlbHNlIGlmKG4uYXN0YylwPVZuLlJHQkFfQVNUQyxkPV8uY1RGQVNUQ180eDRfUkdCQTtlbHNlIGlmKG4uYmM3KXA9Vm4uUkdCQV9CQzcsZD1fLmNURkJDN19SR0JBO2Vsc2UgdGhyb3cgbmV3IEFlKCJObyB0cmFuc2NvZGluZyBmb3JtYXQgdGFyZ2V0IGF2YWlsYWJsZSBmb3IgRVRDMVMgY29tcHJlc3NlZCBrdHgyLiIpO2Vsc2UgaWYobS5jb2xvck1vZGVsPT09elMpaWYobi5hc3RjKXA9Vm4uUkdCQV9BU1RDLGQ9Xy5jVEZBU1RDXzR4NF9SR0JBO2Vsc2UgaWYobi5iYzcpcD1Wbi5SR0JBX0JDNyxkPV8uY1RGQkM3X1JHQkE7ZWxzZSBpZihuLnMzdGMpcD1sP1ZuLlJHQkFfRFhUNTpWbi5SR0JfRFhUMSxkPWw/Xy5jVEZCQzNfUkdCQTpfLmNURkJDMV9SR0I7ZWxzZSBpZihuLmV0YylwPWw/Vm4uUkdCQThfRVRDMl9FQUM6Vm4uUkdCOF9FVEMyLGQ9bD9fLmNURkVUQzJfUkdCQTpfLmNURkVUQzFfUkdCO2Vsc2UgaWYobi5ldGMxJiYhbClwPVZuLlJHQl9FVEMxLGQ9Xy5jVEZFVEMxX1JHQjtlbHNlIGlmKG4ucHZydGMpcD1sP1ZuLlJHQkFfUFZSVENfNEJQUFYxOlZuLlJHQl9QVlJUQ180QlBQVjEsZD1sP18uY1RGUFZSVEMxXzRfUkdCQTpfLmNURlBWUlRDMV80X1JHQjtlbHNlIHRocm93IG5ldyBBZSgiTm8gdHJhbnNjb2RpbmcgZm9ybWF0IHRhcmdldCBhdmFpbGFibGUgZm9yIFVBU1RDIGNvbXByZXNzZWQga3R4Mi4iKTtpZighcy5zdGFydFRyYW5zY29kaW5nKCkpdGhyb3cgcy5jbG9zZSgpLHMuZGVsZXRlKCksbmV3IEFlKCJzdGFydFRyYW5zY29kaW5nKCkgZmFpbGVkIik7Zm9yKGxldCBnPTA7ZzxlLmxldmVscy5sZW5ndGg7KytnKXtsZXQgYj17fTtpW2ddPWIsZj1lLnBpeGVsV2lkdGg+PmcsdT1lLnBpeGVsSGVpZ2h0Pj5nO2xldCB3PXMuZ2V0SW1hZ2VUcmFuc2NvZGVkU2l6ZUluQnl0ZXMoZywwLDAsZC52YWx1ZSksTz1uZXcgVWludDhBcnJheSh3KSxFPXMudHJhbnNjb2RlSW1hZ2UoTyxnLDAsMCxkLnZhbHVlLDAsLTEsLTEpO2lmKCFoKEUpKXRocm93IG5ldyBBZSgidHJhbnNjb2RlSW1hZ2UoKSBmYWlsZWQuIik7ci5wdXNoKE8uYnVmZmVyKSxiW2tTWzBdXT17aW50ZXJuYWxGb3JtYXQ6cCx3aWR0aDpmLGhlaWdodDp1LGxldmVsQnVmZmVyOk99fXJldHVybiBzLmNsb3NlKCkscy5kZWxldGUoKSxpfWFzeW5jIGZ1bmN0aW9uIHc4KHQsZSl7bGV0IG49dC53ZWJBc3NlbWJseUNvbmZpZyxvPXgoVlMuZGVmYXVsdCxzZWxmLkJBU0lTKTtyZXR1cm4gaChuLndhc21CaW5hcnlGaWxlKT9ndT1hd2FpdCBvKG4pOmd1PWF3YWl0IG8oKSxndS5pbml0aWFsaXplQmFzaXMoKSwhMH1mdW5jdGlvbiBUOCh0LGUpe2xldCBuPXQud2ViQXNzZW1ibHlDb25maWc7cmV0dXJuIGgobik/dzgodCxlKTpnOCh0LGUpfXZhciBWUyxrUyxHUyx6UyxndSxPOCxlMT1aKCgpPT57SXQoKTtmdCgpO1h0KCk7dlMoKTtKcigpO0xTKCk7JGcoKTtzbygpO0JTKCk7VlM9ZHIoVVMoKSwxKSxrUz1bInBvc2l0aXZlWCIsIm5lZ2F0aXZlWCIsInBvc2l0aXZlWSIsIm5lZ2F0aXZlWSIsInBvc2l0aXZlWiIsIm5lZ2F0aXZlWiJdLEdTPTE2Myx6Uz0xNjY7Tzg9UWUoVDgpfSk7dmFyIGpTPXt9O3ZhciBuMT1aKCgpPT57c2VsZi5vbm1lc3NhZ2U9ZnVuY3Rpb24odCl7bGV0IGU9dC5kYXRhLmFycmF5LG49c2VsZi53ZWJraXRQb3N0TWVzc2FnZXx8c2VsZi5wb3N0TWVzc2FnZTt0cnl7bih7YXJyYXk6ZX0sW2UuYnVmZmVyXSl9Y2F0Y2h7bih7fSl9fX0pO3ZhciBnbSxBbSxIUz1aKCgpPT57VWUoKTtGdCgpO1h0KCk7ZnQoKTtIdCgpO2dtPXt9O2dtLmNsaXBUcmlhbmdsZUF0QXhpc0FsaWduZWRUaHJlc2hvbGQ9ZnVuY3Rpb24odCxlLG4sbyxyLGkpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ0aHJlc2hvbGQgaXMgcmVxdWlyZWQuIik7aWYoIWgoZSkpdGhyb3cgbmV3IEYoImtlZXBBYm92ZSBpcyByZXF1aXJlZC4iKTtpZighaChuKSl0aHJvdyBuZXcgRigidTAgaXMgcmVxdWlyZWQuIik7aWYoIWgobykpdGhyb3cgbmV3IEYoInUxIGlzIHJlcXVpcmVkLiIpO2lmKCFoKHIpKXRocm93IG5ldyBGKCJ1MiBpcyByZXF1aXJlZC4iKTtoKGkpP2kubGVuZ3RoPTA6aT1bXTtsZXQgcyxmLHU7ZT8ocz1uPHQsZj1vPHQsdT1yPHQpOihzPW4+dCxmPW8+dCx1PXI+dCk7bGV0IGM9cytmK3UsbCxwLGQsbSxfLGc7cmV0dXJuIGM9PT0xP3M/KGw9KHQtbikvKG8tbikscD0odC1uKS8oci1uKSxpLnB1c2goMSksaS5wdXNoKDIpLHAhPT0xJiYoaS5wdXNoKC0xKSxpLnB1c2goMCksaS5wdXNoKDIpLGkucHVzaChwKSksbCE9PTEmJihpLnB1c2goLTEpLGkucHVzaCgwKSxpLnB1c2goMSksaS5wdXNoKGwpKSk6Zj8oZD0odC1vKS8oci1vKSxtPSh0LW8pLyhuLW8pLGkucHVzaCgyKSxpLnB1c2goMCksbSE9PTEmJihpLnB1c2goLTEpLGkucHVzaCgxKSxpLnB1c2goMCksaS5wdXNoKG0pKSxkIT09MSYmKGkucHVzaCgtMSksaS5wdXNoKDEpLGkucHVzaCgyKSxpLnB1c2goZCkpKTp1JiYoXz0odC1yKS8obi1yKSxnPSh0LXIpLyhvLXIpLGkucHVzaCgwKSxpLnB1c2goMSksZyE9PTEmJihpLnB1c2goLTEpLGkucHVzaCgyKSxpLnB1c2goMSksaS5wdXNoKGcpKSxfIT09MSYmKGkucHVzaCgtMSksaS5wdXNoKDIpLGkucHVzaCgwKSxpLnB1c2goXykpKTpjPT09Mj8hcyYmbiE9PXQ/KG09KHQtbykvKG4tbyksXz0odC1yKS8obi1yKSxpLnB1c2goMCksaS5wdXNoKC0xKSxpLnB1c2goMSksaS5wdXNoKDApLGkucHVzaChtKSxpLnB1c2goLTEpLGkucHVzaCgyKSxpLnB1c2goMCksaS5wdXNoKF8pKTohZiYmbyE9PXQ/KGc9KHQtcikvKG8tciksbD0odC1uKS8oby1uKSxpLnB1c2goMSksaS5wdXNoKC0xKSxpLnB1c2goMiksaS5wdXNoKDEpLGkucHVzaChnKSxpLnB1c2goLTEpLGkucHVzaCgwKSxpLnB1c2goMSksaS5wdXNoKGwpKTohdSYmciE9PXQmJihwPSh0LW4pLyhyLW4pLGQ9KHQtbykvKHItbyksaS5wdXNoKDIpLGkucHVzaCgtMSksaS5wdXNoKDApLGkucHVzaCgyKSxpLnB1c2gocCksaS5wdXNoKC0xKSxpLnB1c2goMSksaS5wdXNoKDIpLGkucHVzaChkKSk6YyE9PTMmJihpLnB1c2goMCksaS5wdXNoKDEpLGkucHVzaCgyKSksaX07Z20uY29tcHV0ZUJhcnljZW50cmljQ29vcmRpbmF0ZXM9ZnVuY3Rpb24odCxlLG4sbyxyLGkscyxmLHUpe2lmKCFoKHQpKXRocm93IG5ldyBGKCJ4IGlzIHJlcXVpcmVkLiIpO2lmKCFoKGUpKXRocm93IG5ldyBGKCJ5IGlzIHJlcXVpcmVkLiIpO2lmKCFoKG4pKXRocm93IG5ldyBGKCJ4MSBpcyByZXF1aXJlZC4iKTtpZighaChvKSl0aHJvdyBuZXcgRigieTEgaXMgcmVxdWlyZWQuIik7aWYoIWgocikpdGhyb3cgbmV3IEYoIngyIGlzIHJlcXVpcmVkLiIpO2lmKCFoKGkpKXRocm93IG5ldyBGKCJ5MiBpcyByZXF1aXJlZC4iKTtpZighaChzKSl0aHJvdyBuZXcgRigieDMgaXMgcmVxdWlyZWQuIik7aWYoIWgoZikpdGhyb3cgbmV3IEYoInkzIGlzIHJlcXVpcmVkLiIpO2xldCBjPW4tcyxsPXMtcixwPWktZixkPW8tZixtPTEvKHAqYytsKmQpLF89ZS1mLGc9dC1zLGI9KHAqZytsKl8pKm0sdz0oLWQqZytjKl8pKm0sTz0xLWItdztyZXR1cm4gaCh1KT8odS54PWIsdS55PXcsdS56PU8sdSk6bmV3IGEoYix3LE8pfTtnbS5jb21wdXRlTGluZVNlZ21lbnRMaW5lU2VnbWVudEludGVyc2VjdGlvbj1mdW5jdGlvbih0LGUsbixvLHIsaSxzLGYsdSl7eS50eXBlT2YubnVtYmVyKCJ4MDAiLHQpLHkudHlwZU9mLm51bWJlcigieTAwIixlKSx5LnR5cGVPZi5udW1iZXIoIngwMSIsbikseS50eXBlT2YubnVtYmVyKCJ5MDEiLG8pLHkudHlwZU9mLm51bWJlcigieDEwIixyKSx5LnR5cGVPZi5udW1iZXIoInkxMCIsaSkseS50eXBlT2YubnVtYmVyKCJ4MTEiLHMpLHkudHlwZU9mLm51bWJlcigieTExIixmKTtsZXQgYz0ocy1yKSooZS1pKS0oZi1pKSoodC1yKSxsPShuLXQpKihlLWkpLShvLWUpKih0LXIpLHA9KGYtaSkqKG4tdCktKHMtcikqKG8tZSk7aWYocD09PTApcmV0dXJuO2xldCBkPWMvcCxtPWwvcDtpZihkPj0wJiZkPD0xJiZtPj0wJiZtPD0xKXJldHVybiBoKHUpfHwodT1uZXcgdHQpLHUueD10K2QqKG4tdCksdS55PWUrZCooby1lKSx1fTtBbT1nbX0pO3ZhciBvMT17fTtkZShvMSx7ZGVmYXVsdDooKT0+Vjh9KTtmdW5jdGlvbiBGOCh0LGUpe2xldCBuPXQuaXNFYXN0Q2hpbGQsbz10LmlzTm9ydGhDaGlsZCxyPW4/JHI6MCxpPW4/em46JHIscz1vPyRyOjAsZj1vP3puOiRyLHU9UzgsYz1DOCxsPXg4LHA9TTg7dS5sZW5ndGg9MCxjLmxlbmd0aD0wLGwubGVuZ3RoPTAscC5sZW5ndGg9MDtsZXQgZD1QODtkLmxlbmd0aD0wO2xldCBtPXt9LF89dC52ZXJ0aWNlcyxnPXQuaW5kaWNlcztnPWcuc3ViYXJyYXkoMCx0LmluZGV4Q291bnRXaXRob3V0U2tpcnRzKTtsZXQgYj1Qcy5jbG9uZSh0LmVuY29kaW5nKSx3PWIuaGFzVmVydGV4Tm9ybWFscyxPPTAsRT10LnZlcnRleENvdW50V2l0aG91dFNraXJ0cyxUPXQubWluaW11bUhlaWdodCxDPXQubWF4aW11bUhlaWdodCxOPW5ldyBBcnJheShFKSxJPW5ldyBBcnJheShFKSxEPW5ldyBBcnJheShFKSx2PXc/bmV3IEFycmF5KEUqMik6dm9pZCAwLEw9MjAsVSxBLFMsUCxCO2ZvcihBPTAsUz0wO0E8RTsrK0EsUys9Mil7bGV0IGtlPWIuZGVjb2RlVGV4dHVyZUNvb3JkaW5hdGVzKF8sQSxMOCk7aWYoVT1iLmRlY29kZUhlaWdodChfLEEpLFA9TS5jbGFtcChrZS54KnpufDAsMCx6biksQj1NLmNsYW1wKGtlLnkqem58MCwwLHpuKSxEW0FdPU0uY2xhbXAoKFUtVCkvKEMtVCkqem58MCwwLHpuKSxQPEwmJihQPTApLEI8TCYmKEI9MCksem4tUDxMJiYoUD16biksem4tQjxMJiYoQj16biksTltBXT1QLElbQV09Qix3KXtsZXQgYmU9Yi5nZXRPY3RFbmNvZGVkTm9ybWFsKF8sQSxEOCk7dltTXT1iZS54LHZbUysxXT1iZS55fShuJiZQPj0kcnx8IW4mJlA8PSRyKSYmKG8mJkI+PSRyfHwhbyYmQjw9JHIpJiYobVtBXT1PLHUucHVzaChQKSxjLnB1c2goQiksbC5wdXNoKERbQV0pLHcmJihwLnB1c2godltTXSkscC5wdXNoKHZbUysxXSkpLCsrTyl9bGV0IGo9W107ai5wdXNoKG5ldyBqbiksai5wdXNoKG5ldyBqbiksai5wdXNoKG5ldyBqbik7bGV0IEg9W107SC5wdXNoKG5ldyBqbiksSC5wdXNoKG5ldyBqbiksSC5wdXNoKG5ldyBqbik7bGV0IGssSztmb3IoQT0wO0E8Zy5sZW5ndGg7QSs9Myl7bGV0IGtlPWdbQV0sYmU9Z1tBKzFdLGxuPWdbQSsyXSxwbj1OW2tlXSxFbj1OW2JlXSxyZT1OW2xuXTtqWzBdLmluaXRpYWxpemVJbmRleGVkKE4sSSxELHYsa2UpLGpbMV0uaW5pdGlhbGl6ZUluZGV4ZWQoTixJLEQsdixiZSksalsyXS5pbml0aWFsaXplSW5kZXhlZChOLEksRCx2LGxuKTtsZXQgJHQ9QW0uY2xpcFRyaWFuZ2xlQXRBeGlzQWxpZ25lZFRocmVzaG9sZCgkcixuLHBuLEVuLHJlLEU4KTtrPTAsIShrPj0kdC5sZW5ndGgpJiYoaz1IWzBdLmluaXRpYWxpemVGcm9tQ2xpcFJlc3VsdCgkdCxrLGopLCEoaz49JHQubGVuZ3RoKSYmKGs9SFsxXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoJHQsayxqKSwhKGs+PSR0Lmxlbmd0aCkmJihrPUhbMl0uaW5pdGlhbGl6ZUZyb21DbGlwUmVzdWx0KCR0LGssaiksSz1BbS5jbGlwVHJpYW5nbGVBdEF4aXNBbGlnbmVkVGhyZXNob2xkKCRyLG8sSFswXS5nZXRWKCksSFsxXS5nZXRWKCksSFsyXS5nZXRWKCkscVMpLEtTKHUsYyxsLHAsZCxtLEssSCx3KSxrPCR0Lmxlbmd0aCYmKEhbMl0uY2xvbmUoSFsxXSksSFsyXS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQoJHQsayxqKSxLPUFtLmNsaXBUcmlhbmdsZUF0QXhpc0FsaWduZWRUaHJlc2hvbGQoJHIsbyxIWzBdLmdldFYoKSxIWzFdLmdldFYoKSxIWzJdLmdldFYoKSxxUyksS1ModSxjLGwscCxkLG0sSyxILHcpKSkpKX1sZXQgWD1uPy16bjowLFI9bz8tem46MCxvdD1bXSxhdD1bXSxwdD1bXSx5dD1bXSxydD1OdW1iZXIuTUFYX1ZBTFVFLFB0PS1ydCxndD1SODtndC5sZW5ndGg9MDtsZXQgQ3Q9JC5jbG9uZSh0LmVsbGlwc29pZCksbXQ9TnQuY2xvbmUodC5jaGlsZFJlY3RhbmdsZSksdXQ9bXQubm9ydGgsdnQ9bXQuc291dGgsenQ9bXQuZWFzdCxtZT1tdC53ZXN0O2Zvcih6dDxtZSYmKHp0Kz1NLlRXT19QSSksQT0wO0E8dS5sZW5ndGg7KytBKVA9TWF0aC5yb3VuZCh1W0FdKSxQPD1yPyhvdC5wdXNoKEEpLFA9MCk6UD49aT8ocHQucHVzaChBKSxQPXpuKTpQPVAqMitYLHVbQV09UCxCPU1hdGgucm91bmQoY1tBXSksQjw9cz8oYXQucHVzaChBKSxCPTApOkI+PWY/KHl0LnB1c2goQSksQj16bik6Qj1CKjIrUixjW0FdPUIsVT1NLmxlcnAoVCxDLGxbQV0vem4pLFU8cnQmJihydD1VKSxVPlB0JiYoUHQ9VSksbFtBXT1VLGJtLmxvbmdpdHVkZT1NLmxlcnAobWUsenQsUC96biksYm0ubGF0aXR1ZGU9TS5sZXJwKHZ0LHV0LEIvem4pLGJtLmhlaWdodD1VLEN0LmNhcnRvZ3JhcGhpY1RvQ2FydGVzaWFuKGJtLFhpKSxndC5wdXNoKFhpLngpLGd0LnB1c2goWGkueSksZ3QucHVzaChYaS56KTtsZXQgYWU9QXQuZnJvbVZlcnRpY2VzKGd0LGEuWkVSTywzLEk4KSxwZT1Tby5mcm9tUmVjdGFuZ2xlKG10LHJ0LFB0LEN0LHY4KSxRdD1uZXcgeHMoQ3QpLmNvbXB1dGVIb3Jpem9uQ3VsbGluZ1BvaW50RnJvbVZlcnRpY2VzUG9zc2libHlVbmRlckVsbGlwc29pZChhZS5jZW50ZXIsZ3QsMyxhZS5jZW50ZXIscnQsTjgpLEp0PVB0LXJ0LE5lPW5ldyBVaW50MTZBcnJheSh1Lmxlbmd0aCtjLmxlbmd0aCtsLmxlbmd0aCk7Zm9yKEE9MDtBPHUubGVuZ3RoOysrQSlOZVtBXT11W0FdO2xldCBnZT11Lmxlbmd0aDtmb3IoQT0wO0E8Yy5sZW5ndGg7KytBKU5lW2dlK0FdPWNbQV07Zm9yKGdlKz1jLmxlbmd0aCxBPTA7QTxsLmxlbmd0aDsrK0EpTmVbZ2UrQV09em4qKGxbQV0tcnQpL0p0O2xldCBFZT1EdC5jcmVhdGVUeXBlZEFycmF5KHUubGVuZ3RoLGQpLHVuO2lmKHcpe2xldCBrZT1uZXcgVWludDhBcnJheShwKTtlLnB1c2goTmUuYnVmZmVyLEVlLmJ1ZmZlcixrZS5idWZmZXIpLHVuPWtlLmJ1ZmZlcn1lbHNlIGUucHVzaChOZS5idWZmZXIsRWUuYnVmZmVyKTtyZXR1cm57dmVydGljZXM6TmUuYnVmZmVyLGVuY29kZWROb3JtYWxzOnVuLGluZGljZXM6RWUuYnVmZmVyLG1pbmltdW1IZWlnaHQ6cnQsbWF4aW11bUhlaWdodDpQdCx3ZXN0SW5kaWNlczpvdCxzb3V0aEluZGljZXM6YXQsZWFzdEluZGljZXM6cHQsbm9ydGhJbmRpY2VzOnl0LGJvdW5kaW5nU3BoZXJlOmFlLG9yaWVudGVkQm91bmRpbmdCb3g6cGUsaG9yaXpvbk9jY2x1c2lvblBvaW50OlF0fX1mdW5jdGlvbiBqbigpe3RoaXMudmVydGV4QnVmZmVyPXZvaWQgMCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLmZpcnN0PXZvaWQgMCx0aGlzLnNlY29uZD12b2lkIDAsdGhpcy5yYXRpbz12b2lkIDB9ZnVuY3Rpb24gV1ModCxlKXsrK3dtO2xldCBuPUI4W3dtXSxvPVU4W3dtXTtyZXR1cm4gbj1ubi5vY3REZWNvZGUodC5maXJzdC5nZXROb3JtYWxYKCksdC5maXJzdC5nZXROb3JtYWxZKCksbiksbz1ubi5vY3REZWNvZGUodC5zZWNvbmQuZ2V0Tm9ybWFsWCgpLHQuc2Vjb25kLmdldE5vcm1hbFkoKSxvKSxYaT1hLmxlcnAobixvLHQucmF0aW8sWGkpLGEubm9ybWFsaXplKFhpLFhpKSxubi5vY3RFbmNvZGUoWGksZSksLS13bSxlfWZ1bmN0aW9uIEtTKHQsZSxuLG8scixpLHMsZix1KXtpZihzLmxlbmd0aD09PTApcmV0dXJuO2xldCBjPTAsbD0wO2Zvcig7bDxzLmxlbmd0aDspbD1Hb1tjKytdLmluaXRpYWxpemVGcm9tQ2xpcFJlc3VsdChzLGwsZik7Zm9yKGxldCBwPTA7cDxjOysrcCl7bGV0IGQ9R29bcF07aWYoZC5pc0luZGV4ZWQoKSlkLm5ld0luZGV4PWlbZC5pbmRleF0sZC51QnVmZmVyPXQsZC52QnVmZmVyPWUsZC5oZWlnaHRCdWZmZXI9bix1JiYoZC5ub3JtYWxCdWZmZXI9byk7ZWxzZXtsZXQgbT1kLmdldEtleSgpO2lmKGgoaVttXSkpZC5uZXdJbmRleD1pW21dO2Vsc2V7bGV0IF89dC5sZW5ndGg7dC5wdXNoKGQuZ2V0VSgpKSxlLnB1c2goZC5nZXRWKCkpLG4ucHVzaChkLmdldEgoKSksdSYmKG8ucHVzaChkLmdldE5vcm1hbFgoKSksby5wdXNoKGQuZ2V0Tm9ybWFsWSgpKSksZC5uZXdJbmRleD1fLGlbbV09X319fWM9PT0zPyhyLnB1c2goR29bMF0ubmV3SW5kZXgpLHIucHVzaChHb1sxXS5uZXdJbmRleCksci5wdXNoKEdvWzJdLm5ld0luZGV4KSk6Yz09PTQmJihyLnB1c2goR29bMF0ubmV3SW5kZXgpLHIucHVzaChHb1sxXS5uZXdJbmRleCksci5wdXNoKEdvWzJdLm5ld0luZGV4KSxyLnB1c2goR29bMF0ubmV3SW5kZXgpLHIucHVzaChHb1syXS5uZXdJbmRleCksci5wdXNoKEdvWzNdLm5ld0luZGV4KSl9dmFyIHpuLCRyLEU4LHFTLFI4LGJtLFhpLFM4LEM4LHg4LFA4LE04LE44LEk4LHY4LEw4LEQ4LEhhLHdtLEI4LFU4LEdvLFY4LHIxPVooKCk9PnthcygpO3ZlKCk7VWUoKTtGdCgpO0llKCk7ZnQoKTtadCgpO3N1KCk7JGUoKTtIUygpO1d0KCk7ZGEoKTtUbigpO2N1KCk7c28oKTt6bj0zMjc2Nywkcj16bi8yfDAsRTg9W10scVM9W10sUjg9W10sYm09bmV3IGN0LFhpPW5ldyBhLFM4PVtdLEM4PVtdLHg4PVtdLFA4PVtdLE04PVtdLE44PW5ldyBhLEk4PW5ldyBBdCx2OD1uZXcgU28sTDg9bmV3IHR0LEQ4PW5ldyBhO2puLnByb3RvdHlwZS5jbG9uZT1mdW5jdGlvbih0KXtyZXR1cm4gaCh0KXx8KHQ9bmV3IGpuKSx0LnVCdWZmZXI9dGhpcy51QnVmZmVyLHQudkJ1ZmZlcj10aGlzLnZCdWZmZXIsdC5oZWlnaHRCdWZmZXI9dGhpcy5oZWlnaHRCdWZmZXIsdC5ub3JtYWxCdWZmZXI9dGhpcy5ub3JtYWxCdWZmZXIsdC5pbmRleD10aGlzLmluZGV4LHQuZmlyc3Q9dGhpcy5maXJzdCx0LnNlY29uZD10aGlzLnNlY29uZCx0LnJhdGlvPXRoaXMucmF0aW8sdH07am4ucHJvdG90eXBlLmluaXRpYWxpemVJbmRleGVkPWZ1bmN0aW9uKHQsZSxuLG8scil7dGhpcy51QnVmZmVyPXQsdGhpcy52QnVmZmVyPWUsdGhpcy5oZWlnaHRCdWZmZXI9bix0aGlzLm5vcm1hbEJ1ZmZlcj1vLHRoaXMuaW5kZXg9cix0aGlzLmZpcnN0PXZvaWQgMCx0aGlzLnNlY29uZD12b2lkIDAsdGhpcy5yYXRpbz12b2lkIDB9O2puLnByb3RvdHlwZS5pbml0aWFsaXplRnJvbUNsaXBSZXN1bHQ9ZnVuY3Rpb24odCxlLG4pe2xldCBvPWUrMTtyZXR1cm4gdFtlXSE9PS0xP25bdFtlXV0uY2xvbmUodGhpcyk6KHRoaXMudmVydGV4QnVmZmVyPXZvaWQgMCx0aGlzLmluZGV4PXZvaWQgMCx0aGlzLmZpcnN0PW5bdFtvXV0sKytvLHRoaXMuc2Vjb25kPW5bdFtvXV0sKytvLHRoaXMucmF0aW89dFtvXSwrK28pLG99O2puLnByb3RvdHlwZS5nZXRLZXk9ZnVuY3Rpb24oKXtyZXR1cm4gdGhpcy5pc0luZGV4ZWQoKT90aGlzLmluZGV4OkpTT04uc3RyaW5naWZ5KHtmaXJzdDp0aGlzLmZpcnN0LmdldEtleSgpLHNlY29uZDp0aGlzLnNlY29uZC5nZXRLZXkoKSxyYXRpbzp0aGlzLnJhdGlvfSl9O2puLnByb3RvdHlwZS5pc0luZGV4ZWQ9ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLmluZGV4KX07am4ucHJvdG90eXBlLmdldEg9ZnVuY3Rpb24oKXtyZXR1cm4gaCh0aGlzLmluZGV4KT90aGlzLmhlaWdodEJ1ZmZlclt0aGlzLmluZGV4XTpNLmxlcnAodGhpcy5maXJzdC5nZXRIKCksdGhpcy5zZWNvbmQuZ2V0SCgpLHRoaXMucmF0aW8pfTtqbi5wcm90b3R5cGUuZ2V0VT1mdW5jdGlvbigpe3JldHVybiBoKHRoaXMuaW5kZXgpP3RoaXMudUJ1ZmZlclt0aGlzLmluZGV4XTpNLmxlcnAodGhpcy5maXJzdC5nZXRVKCksdGhpcy5zZWNvbmQuZ2V0VSgpLHRoaXMucmF0aW8pfTtqbi5wcm90b3R5cGUuZ2V0Vj1mdW5jdGlvbigpe3JldHVybiBoKHRoaXMuaW5kZXgpP3RoaXMudkJ1ZmZlclt0aGlzLmluZGV4XTpNLmxlcnAodGhpcy5maXJzdC5nZXRWKCksdGhpcy5zZWNvbmQuZ2V0VigpLHRoaXMucmF0aW8pfTtIYT1uZXcgdHQsd209LTEsQjg9W25ldyBhLG5ldyBhXSxVOD1bbmV3IGEsbmV3IGFdO2puLnByb3RvdHlwZS5nZXROb3JtYWxYPWZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5pbmRleCk/dGhpcy5ub3JtYWxCdWZmZXJbdGhpcy5pbmRleCoyXTooSGE9V1ModGhpcyxIYSksSGEueCl9O2puLnByb3RvdHlwZS5nZXROb3JtYWxZPWZ1bmN0aW9uKCl7cmV0dXJuIGgodGhpcy5pbmRleCk/dGhpcy5ub3JtYWxCdWZmZXJbdGhpcy5pbmRleCoyKzFdOihIYT1XUyh0aGlzLEhhKSxIYS55KX07R289W107R28ucHVzaChuZXcgam4pO0dvLnB1c2gobmV3IGpuKTtHby5wdXNoKG5ldyBqbik7R28ucHVzaChuZXcgam4pO1Y4PVFlKEY4KX0pO3ZhciBrOCxpMT1aKCgpPT57azg9bDEoeyIuL2NvbWJpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihpMCgpLHIwKSksIi4vY3JlYXRlQm94R2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZjAoKSxhMCkpLCIuL2NyZWF0ZUJveE91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihwMCgpLGwwKSksIi4vY3JlYXRlQ2lyY2xlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oVDAoKSx3MCkpLCIuL2NyZWF0ZUNpcmNsZU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihTMCgpLFIwKSksIi4vY3JlYXRlQ29wbGFuYXJQb2x5Z29uR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oVTAoKSxCMCkpLCIuL2NyZWF0ZUNvcGxhbmFyUG9seWdvbk91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihHMCgpLGswKSksIi4vY3JlYXRlQ29ycmlkb3JHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihvXygpLG5fKSksIi4vY3JlYXRlQ29ycmlkb3JPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oc18oKSxpXykpLCIuL2NyZWF0ZUN5bGluZGVyR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4ocF8oKSxsXykpLCIuL2NyZWF0ZUN5bGluZGVyT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KF9fKCksaF8pKSwiLi9jcmVhdGVFbGxpcHNlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZ18oKSx5XykpLCIuL2NyZWF0ZUVsbGlwc2VPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oYl8oKSxBXykpLCIuL2NyZWF0ZUVsbGlwc29pZEdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KE9fKCksVF8pKSwiLi9jcmVhdGVFbGxpcHNvaWRPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oU18oKSxSXykpLCIuL2NyZWF0ZUZydXN0dW1HZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihEXygpLExfKSksIi4vY3JlYXRlRnJ1c3R1bU91dGxpbmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihWXygpLFVfKSksIi4vY3JlYXRlR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oYzEoKSxzMSkpLCIuL2NyZWF0ZUdyb3VuZFBvbHlsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oUV8oKSxaXykpLCIuL2NyZWF0ZVBsYW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZXkoKSx0eSkpLCIuL2NyZWF0ZVBsYW5lT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHJ5KCksb3kpKSwiLi9jcmVhdGVQb2x5Z29uR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oYXkoKSxjeSkpLCIuL2NyZWF0ZVBvbHlnb25PdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4obHkoKSx1eSkpLCIuL2NyZWF0ZVBvbHlsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oeXkoKSxfeSkpLCIuL2NyZWF0ZVBvbHlsaW5lVm9sdW1lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oYnkoKSxBeSkpLCIuL2NyZWF0ZVBvbHlsaW5lVm9sdW1lT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KE95KCksVHkpKSwiLi9jcmVhdGVSZWN0YW5nbGVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihJeSgpLE55KSksIi4vY3JlYXRlUmVjdGFuZ2xlT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KER5KCksTHkpKSwiLi9jcmVhdGVTaW1wbGVQb2x5bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KFV5KCksQnkpKSwiLi9jcmVhdGVTcGhlcmVHZW9tZXRyeS5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihHeSgpLGt5KSksIi4vY3JlYXRlU3BoZXJlT3V0bGluZUdlb21ldHJ5LmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KEh5KCksankpKSwiLi9jcmVhdGVUYXNrUHJvY2Vzc29yV29ya2VyLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KHNvKCksbzApKSwiLi9jcmVhdGVWZWN0b3JUaWxlQ2xhbXBlZFBvbHlsaW5lcy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihLeSgpLHF5KSksIi4vY3JlYXRlVmVjdG9yVGlsZUdlb21ldHJpZXMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oWHkoKSxXeSkpLCIuL2NyZWF0ZVZlY3RvclRpbGVQb2ludHMuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oWnkoKSwkeSkpLCIuL2NyZWF0ZVZlY3RvclRpbGVQb2x5Z29ucy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihKeSgpLFF5KSksIi4vY3JlYXRlVmVjdG9yVGlsZVBvbHlsaW5lcy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihuZygpLGVnKSksIi4vY3JlYXRlVmVydGljZXNGcm9tR29vZ2xlRWFydGhFbnRlcnByaXNlQnVmZmVyLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGNnKCksc2cpKSwiLi9jcmVhdGVWZXJ0aWNlc0Zyb21IZWlnaHRtYXAuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4odWcoKSxmZykpLCIuL2NyZWF0ZVZlcnRpY2VzRnJvbVF1YW50aXplZFRlcnJhaW5NZXNoLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KGRnKCkscGcpKSwiLi9jcmVhdGVXYWxsR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oZ2coKSx5ZykpLCIuL2NyZWF0ZVdhbGxPdXRsaW5lR2VvbWV0cnkuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4od2coKSxiZykpLCIuL2RlY29kZURyYWNvLmpzIjooKT0+UHJvbWlzZS5yZXNvbHZlKCkudGhlbigoKT0+KENnKCksU2cpKSwiLi9kZWNvZGVHb29nbGVFYXJ0aEVudGVycHJpc2VQYWNrZXQuanMiOigpPT5Qcm9taXNlLnJlc29sdmUoKS50aGVuKCgpPT4oSGcoKSxqZykpLCIuL2RlY29kZUkzUy5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihZZygpLFhnKSksIi4vdHJhbnNjb2RlS1RYMi5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihlMSgpLHQxKSksIi4vdHJhbnNmZXJUeXBlZEFycmF5VGVzdC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihuMSgpLGpTKSksIi4vdXBzYW1wbGVRdWFudGl6ZWRUZXJyYWluTWVzaC5qcyI6KCk9PlByb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PihyMSgpLG8xKSl9KX0pO3ZhciBzMT17fTtkZShzMSx7ZGVmYXVsdDooKT0+ajh9KTthc3luYyBmdW5jdGlvbiBHOCh0LGUpe2xldCBuPXgoVG1bZV0sVG1bdF0pO3JldHVybiBoKG4pP246aChlKT8odHlwZW9mIGV4cG9ydHM9PSJvYmplY3QiP249cHIoZSk6bj0oYXdhaXQgaW1wb3J0KGUpKS5kZWZhdWx0LFRtW2VdPW4sbik6KHR5cGVvZiBleHBvcnRzPT0ib2JqZWN0Ij9uPXByKGBXb3JrZXJzLyR7dH1gKTpuPShoKGUpP2F3YWl0IGltcG9ydChlKTphd2FpdCBrOChgLi8ke3R9LmpzYCkpLmRlZmF1bHQsVG1bdF09bixuKX1hc3luYyBmdW5jdGlvbiB6OCh0LGUpe2xldCBuPXQuc3ViVGFza3Msbz1uLmxlbmd0aCxyPW5ldyBBcnJheShvKTtmb3IobGV0IGk9MDtpPG87aSsrKXtsZXQgcz1uW2ldLGY9cy5nZW9tZXRyeSx1PXMubW9kdWxlTmFtZSxjPXMubW9kdWxlUGF0aDtpZihoKHUpJiZoKGMpKXRocm93IG5ldyBGKCJNdXN0IG9ubHkgc2V0IG1vZHVsZU5hbWUgb3IgbW9kdWxlUGF0aCIpO2godSl8fGgoYyk/cltpXT1HOCh1LGMpLnRoZW4obD0+bChmLHMub2Zmc2V0KSk6cltpXT1mfXJldHVybiBQcm9taXNlLmFsbChyKS50aGVuKGZ1bmN0aW9uKGkpe3JldHVybiBjYS5wYWNrQ3JlYXRlR2VvbWV0cnlSZXN1bHRzKGksZSl9KX12YXIgVG0sajgsYzE9WigoKT0+e0h0KCk7SXQoKTtmdCgpO24wKCk7c28oKTtpMSgpO1RtPXt9O2o4PVFlKHo4KX0pO3ZhciBVVj17fTtkZShVVix7Y29tYmluZUdlb21ldHJ5OigpPT5IOCxjcmVhdGVCb3hHZW9tZXRyeTooKT0+cTgsY3JlYXRlQm94T3V0bGluZUdlb21ldHJ5OigpPT5LOCxjcmVhdGVDaXJjbGVHZW9tZXRyeTooKT0+VzgsY3JlYXRlQ2lyY2xlT3V0bGluZUdlb21ldHJ5OigpPT5YOCxjcmVhdGVDb3BsYW5hclBvbHlnb25HZW9tZXRyeTooKT0+WTgsY3JlYXRlQ29wbGFuYXJQb2x5Z29uT3V0bGluZUdlb21ldHJ5OigpPT4kOCxjcmVhdGVDb3JyaWRvckdlb21ldHJ5OigpPT5aOCxjcmVhdGVDb3JyaWRvck91dGxpbmVHZW9tZXRyeTooKT0+UTgsY3JlYXRlQ3lsaW5kZXJHZW9tZXRyeTooKT0+SjgsY3JlYXRlQ3lsaW5kZXJPdXRsaW5lR2VvbWV0cnk6KCk9PnRWLGNyZWF0ZUVsbGlwc2VHZW9tZXRyeTooKT0+ZVYsY3JlYXRlRWxsaXBzZU91dGxpbmVHZW9tZXRyeTooKT0+blYsY3JlYXRlRWxsaXBzb2lkR2VvbWV0cnk6KCk9Pm9WLGNyZWF0ZUVsbGlwc29pZE91dGxpbmVHZW9tZXRyeTooKT0+clYsY3JlYXRlRnJ1c3R1bUdlb21ldHJ5OigpPT5pVixjcmVhdGVGcnVzdHVtT3V0bGluZUdlb21ldHJ5OigpPT5zVixjcmVhdGVHZW9tZXRyeTooKT0+Y1YsY3JlYXRlR3JvdW5kUG9seWxpbmVHZW9tZXRyeTooKT0+YVYsY3JlYXRlUGxhbmVHZW9tZXRyeTooKT0+ZlYsY3JlYXRlUGxhbmVPdXRsaW5lR2VvbWV0cnk6KCk9PnVWLGNyZWF0ZVBvbHlnb25HZW9tZXRyeTooKT0+bFYsY3JlYXRlUG9seWdvbk91dGxpbmVHZW9tZXRyeTooKT0+cFYsY3JlYXRlUG9seWxpbmVHZW9tZXRyeTooKT0+ZFYsY3JlYXRlUG9seWxpbmVWb2x1bWVHZW9tZXRyeTooKT0+bVYsY3JlYXRlUG9seWxpbmVWb2x1bWVPdXRsaW5lR2VvbWV0cnk6KCk9PmhWLGNyZWF0ZVJlY3RhbmdsZUdlb21ldHJ5OigpPT5fVixjcmVhdGVSZWN0YW5nbGVPdXRsaW5lR2VvbWV0cnk6KCk9PnlWLGNyZWF0ZVNpbXBsZVBvbHlsaW5lR2VvbWV0cnk6KCk9PmdWLGNyZWF0ZVNwaGVyZUdlb21ldHJ5OigpPT5BVixjcmVhdGVTcGhlcmVPdXRsaW5lR2VvbWV0cnk6KCk9PmJWLGNyZWF0ZVRhc2tQcm9jZXNzb3JXb3JrZXI6KCk9PndWLGNyZWF0ZVZlY3RvclRpbGVDbGFtcGVkUG9seWxpbmVzOigpPT5UVixjcmVhdGVWZWN0b3JUaWxlR2VvbWV0cmllczooKT0+T1YsY3JlYXRlVmVjdG9yVGlsZVBvaW50czooKT0+RVYsY3JlYXRlVmVjdG9yVGlsZVBvbHlnb25zOigpPT5SVixjcmVhdGVWZWN0b3JUaWxlUG9seWxpbmVzOigpPT5TVixjcmVhdGVWZXJ0aWNlc0Zyb21Hb29nbGVFYXJ0aEVudGVycHJpc2VCdWZmZXI6KCk9PkNWLGNyZWF0ZVZlcnRpY2VzRnJvbUhlaWdodG1hcDooKT0+eFYsY3JlYXRlVmVydGljZXNGcm9tUXVhbnRpemVkVGVycmFpbk1lc2g6KCk9PlBWLGNyZWF0ZVdhbGxHZW9tZXRyeTooKT0+TVYsY3JlYXRlV2FsbE91dGxpbmVHZW9tZXRyeTooKT0+TlYsZGVjb2RlRHJhY286KCk9PklWLGRlY29kZUdvb2dsZUVhcnRoRW50ZXJwcmlzZVBhY2tldDooKT0+dlYsZGVjb2RlSTNTOigpPT5MVix0cmFuc2NvZGVLVFgyOigpPT5EVix0cmFuc2ZlclR5cGVkQXJyYXlUZXN0OigpPT5GVix1cHNhbXBsZVF1YW50aXplZFRlcnJhaW5NZXNoOigpPT5CVn0pO3ZhciBIOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmkwKCkpfSxxOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmYwKCkpfSxLOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnAwKCkpfSxXOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlQwKCkpfSxYOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlMwKCkpfSxZOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlUwKCkpfSwkOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PkcwKCkpfSxaOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pm9fKCkpfSxROD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnNfKCkpfSxKOD0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnBfKCkpfSx0Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pl9fKCkpfSxlVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmdfKCkpfSxuVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmJfKCkpfSxvVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pk9fKCkpfSxyVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlNfKCkpfSxpVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PkRfKCkpfSxzVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlZfKCkpfSxjVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmMxKCkpfSxhVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlFfKCkpfSxmVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmV5KCkpfSx1Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnJ5KCkpfSxsVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmF5KCkpfSxwVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pmx5KCkpfSxkVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pnl5KCkpfSxtVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmJ5KCkpfSxoVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pk95KCkpfSxfVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pkl5KCkpfSx5Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PkR5KCkpfSxnVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PlV5KCkpfSxBVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pkd5KCkpfSxiVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pkh5KCkpfSx3Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnNvKCkpfSxUVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pkt5KCkpfSxPVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Plh5KCkpfSxFVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Plp5KCkpfSxSVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pkp5KCkpfSxTVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pm5nKCkpfSxDVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmNnKCkpfSx4Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnVnKCkpfSxQVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmRnKCkpfSxNVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmdnKCkpfSxOVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PndnKCkpfSxJVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PkNnKCkpfSx2Vj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PkhnKCkpfSxMVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PllnKCkpfSxEVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PmUxKCkpfSxGVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9Pm4xKCkpfSxCVj0oKT0+e1Byb21pc2UucmVzb2x2ZSgpLnRoZW4oKCk9PnIxKCkpfTtyZXR1cm4gdEMoVVYpO30pKCk7Cg==")});var B9=bl((k1t,Cq)=>{var U1t=T(S()),lp=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};lp.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};lp.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};lp.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n>>1^t[e&1];for(;n>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};lp.prototype.random_int31=function(){return this.random_int()>>>1};lp.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};lp.prototype.random=function(){return this.random_int()*(1/4294967296)};lp.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};lp.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};Cq.exports=lp});var Kq=bl((PS,vS)=>{var RRt=T(S());/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof PS=="object"&&PS&&!PS.nodeType&&PS,n=typeof vS=="object"&&vS&&!vS.nodeType&&vS,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,d=38,u=700,m=72,p=128,g="-",f=/^xn--/,x=/[^\x20-\x7E]/,_=/[\x2E\u3002\uFF0E\uFF61]/g,C={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},V=s-a,L=Math.floor,Z=String.fromCharCode,G;function I(U){throw new RangeError(C[U])}function v(U,Y){for(var k=U.length,H=[];k--;)H[k]=Y(U[k]);return H}function P(U,Y){var k=U.split("@"),H="";k.length>1&&(H=k[0]+"@",U=k[1]),U=U.replace(_,".");var J=U.split("."),te=v(J,Y).join(".");return H+te}function w(U){for(var Y=[],k=0,H=U.length,J,te;k=55296&&J<=56319&&k65535&&(Y-=65536,k+=Z(Y>>>10&1023|55296),Y=56320|Y&1023),k+=Z(Y),k}).join("")}function b(U){return U-48<10?U-22:U-65<26?U-65:U-97<26?U-97:s}function R(U,Y){return U+22+75*(U<26)-((Y!=0)<<5)}function E(U,Y,k){var H=0;for(U=k?L(U/u):U>>1,U+=L(U/Y);U>V*c>>1;H+=s)U=L(U/V);return L(H+(V+1)*U/(U+d))}function X(U){var Y=[],k=U.length,H,J=0,te=p,z=m,q,ee,fe,_e,le,ye,Te,Xe,Le;for(q=U.lastIndexOf(g),q<0&&(q=0),ee=0;ee=128&&I("not-basic"),Y.push(U.charCodeAt(ee));for(fe=q>0?q+1:0;fe=k&&I("invalid-input"),Te=b(U.charCodeAt(fe++)),(Te>=s||Te>L((r-J)/le))&&I("overflow"),J+=Te*le,Xe=ye<=z?a:ye>=z+c?c:ye-z,!(TeL(r/Le)&&I("overflow"),le*=Le;H=Y.length+1,z=E(J-_e,H,_e==0),L(J/H)>r-te&&I("overflow"),te+=L(J/H),J%=H,Y.splice(J++,0,te)}return F(Y)}function A(U){var Y,k,H,J,te,z,q,ee,fe,_e,le,ye=[],Te,Xe,Le,ke;for(U=w(U),Te=U.length,Y=p,k=0,te=m,z=0;z=Y&&leL((r-k)/Xe)&&I("overflow"),k+=(q-Y)*Xe,Y=q,z=0;zr&&I("overflow"),le==Y){for(ee=k,fe=s;_e=fe<=te?a:fe>=te+c?c:fe-te,!(ee<_e);fe+=s)ke=ee-_e,Le=s-_e,ye.push(Z(R(_e+ke%Le,0))),ee=L(ke/Le);ye.push(Z(R(ee,0))),te=E(k,Xe,H==J),k=0,++H}++k,++Y}return ye.join("")}function N(U){return P(U,function(Y){return f.test(Y)?X(Y.slice(4).toLowerCase()):Y})}function O(U){return P(U,function(Y){return x.test(Y)?"xn--"+A(Y):Y})}if(o={version:"1.3.2",ucs2:{decode:w,encode:F},decode:X,encode:A,toASCII:O,toUnicode:N},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(vS.exports==t)n.exports=o;else for(G in o)o.hasOwnProperty(G)&&(t[G]=o[G]);else e.punycode=o})(PS)});var Qq=bl((Jq,lN)=>{var ZRt=T(S());/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof lN=="object"&&lN.exports?lN.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(Jq,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var d;for(d=0;d1);p++)u.splice(0,1);s[m]=u.join("")}var g=-1,f=0,x=0,_=-1,C=!1;for(m=0;mf&&(g=_,f=x)):s[m]==="0"&&(C=!0,_=m,x=1);x>f&&(g=_,f=x),f>1&&s.splice(g,f,""),a=s.length;var V="";for(s[0]===""&&(V=":"),m=0;m{var GRt=T(S());/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof dN=="object"&&dN.exports?dN.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(jq,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var id=bl(($q,uN)=>{var ERt=T(S());/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof uN=="object"&&uN.exports?uN.exports=t(Kq(),Qq(),qq()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})($q,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(R,E){var X=arguments.length>=1,A=arguments.length>=2;if(!(this instanceof r))return X?A?new r(R,E):new r(R):new r;if(R===void 0){if(X)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?R=location.href+"":R=""}if(R===null&&X)throw new TypeError("null is not a valid argument for URI");return this.href(R),E!==void 0?this.absoluteTo(E):this}function s(R){return/^[0-9]+$/.test(R)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function d(R){return R.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function u(R){return R===void 0?"Undefined":String(Object.prototype.toString.call(R)).slice(8,-1)}function m(R){return u(R)==="Array"}function p(R,E){var X={},A,N;if(u(E)==="RegExp")X=null;else if(m(E))for(A=0,N=E.length;A]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(R){if(!(!R||!R.nodeName)){var E=R.nodeName.toLowerCase();if(!(E==="input"&&R.type!=="image"))return r.domAttributes[E]}};function _(R){return escape(R)}function C(R){return encodeURIComponent(R).replace(/[!'()*]/g,_).replace(/\*/g,"%2A")}r.encode=C,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=C,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(R,E){var X=r.encode(R+"");return E===void 0&&(E=r.escapeQuerySpace),E?X.replace(/%20/g,"+"):X},r.decodeQuery=function(R,E){R+="",E===void 0&&(E=r.escapeQuerySpace);try{return r.decode(E?R.replace(/\+/g,"%20"):R)}catch{return R}};var V={encode:"encode",decode:"decode"},L,Z=function(R,E){return function(X){try{return r[E](X+"").replace(r.characters[R][E].expression,function(A){return r.characters[R][E].map[A]})}catch{return X}}};for(L in V)r[L+"PathSegment"]=Z("pathname",V[L]),r[L+"UrnPathSegment"]=Z("urnpath",V[L]);var G=function(R,E,X){return function(A){var N;X?N=function(k){return r[E](r[X](k))}:N=r[E];for(var O=(A+"").split(R),U=0,Y=O.length;U-1&&(E.fragment=R.substring(X+1)||null,R=R.substring(0,X)),X=R.indexOf("?"),X>-1&&(E.query=R.substring(X+1)||null,R=R.substring(0,X)),R=R.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),R=R.replace(/^[/\\]{2,}/i,"//"),R.substring(0,2)==="//"?(E.protocol=null,R=R.substring(2),R=r.parseAuthority(R,E)):(X=R.indexOf(":"),X>-1&&(E.protocol=R.substring(0,X)||null,E.protocol&&!E.protocol.match(r.protocol_expression)?E.protocol=void 0:R.substring(X+1,X+3).replace(/\\/g,"/")==="//"?(R=R.substring(X+3),R=r.parseAuthority(R,E)):(R=R.substring(X+1),E.urn=!0))),E.path=R,E},r.parseHost=function(R,E){R||(R=""),R=R.replace(/\\/g,"/");var X=R.indexOf("/"),A,N;if(X===-1&&(X=R.length),R.charAt(0)==="[")A=R.indexOf("]"),E.hostname=R.substring(1,A)||null,E.port=R.substring(A+2,X)||null,E.port==="/"&&(E.port=null);else{var O=R.indexOf(":"),U=R.indexOf("/"),Y=R.indexOf(":",O+1);Y!==-1&&(U===-1||Y-1?N:R.length-1),U;return O>-1&&(N===-1||O-1?z=z.slice(0,q)+z.slice(q).replace(O,""):z=z.replace(O,""),!(z.length<=k[0].length)&&!(X.ignore&&X.ignore.test(z))){te=H+z.length;var _e=E(z,H,te,R);if(_e===void 0){A.lastIndex=te;continue}_e=String(_e),R=R.slice(0,H)+_e+R.slice(te),A.lastIndex=H+_e.length}}return A.lastIndex=0,R},r.ensureValidHostname=function(R,E){var X=!!R,A=!!E,N=!1;if(A&&(N=g(r.hostProtocols,E)),N&&!X)throw new TypeError("Hostname cannot be empty, if protocol is "+E);if(R&&R.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(R).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(R){if(R){var E=Number(R);if(!(s(E)&&E>0&&E<65536))throw new TypeError('Port "'+R+'" is not a valid port')}},r.noConflict=function(R){if(R){var E={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(E.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(E.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(E.SecondLevelDomains=i.SecondLevelDomains.noConflict()),E}else i.URI===this&&(i.URI=o);return this},a.build=function(R){return R===!0?this._deferred_build=!0:(R===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function I(R){return function(E,X){return E===void 0?this._parts[R]||"":(this._parts[R]=E||null,this.build(!X),this)}}function v(R,E){return function(X,A){return X===void 0?this._parts[R]||"":(X!==null&&(X=X+"",X.charAt(0)===E&&(X=X.substring(1))),this._parts[R]=X,this.build(!A),this)}}a.protocol=I("protocol"),a.username=I("username"),a.password=I("password"),a.hostname=I("hostname"),a.port=I("port"),a.query=v("query","?"),a.fragment=v("fragment","#"),a.search=function(R,E){var X=this.query(R,E);return typeof X=="string"&&X.length?"?"+X:X},a.hash=function(R,E){var X=this.fragment(R,E);return typeof X=="string"&&X.length?"#"+X:X},a.pathname=function(R,E){if(R===void 0||R===!0){var X=this._parts.path||(this._parts.hostname?"/":"");return R?(this._parts.urn?r.decodeUrnPath:r.decodePath)(X):X}else return this._parts.urn?this._parts.path=R?r.recodeUrnPath(R):"":this._parts.path=R?r.recodePath(R):"/",this.build(!E),this},a.path=a.pathname,a.href=function(R,E){var X;if(R===void 0)return this.toString();this._string="",this._parts=r._parts();var A=R instanceof r,N=typeof R=="object"&&(R.hostname||R.path||R.pathname);if(R.nodeName){var O=r.getDomAttribute(R);R=R[O]||"",N=!1}if(!A&&N&&R.pathname!==void 0&&(R=R.toString()),typeof R=="string"||R instanceof String)this._parts=r.parse(String(R),this._parts);else if(A||N){var U=A?R._parts:R;for(X in U)X!=="query"&&c.call(this._parts,X)&&(this._parts[X]=U[X]);U.query&&this.query(U.query,!1)}else throw new TypeError("invalid input");return this.build(!E),this},a.is=function(R){var E=!1,X=!1,A=!1,N=!1,O=!1,U=!1,Y=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,X=r.ip4_expression.test(this._parts.hostname),A=r.ip6_expression.test(this._parts.hostname),E=X||A,N=!E,O=N&&n&&n.has(this._parts.hostname),U=N&&r.idn_expression.test(this._parts.hostname),Y=N&&r.punycode_expression.test(this._parts.hostname)),R.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return N;case"sld":return O;case"ip":return E;case"ip4":case"ipv4":case"inet4":return X;case"ip6":case"ipv6":case"inet6":return A;case"idn":return U;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return Y}return null};var P=a.protocol,w=a.port,F=a.hostname;a.protocol=function(R,E){if(R&&(R=R.replace(/:(\/\/)?$/,""),!R.match(r.protocol_expression)))throw new TypeError('Protocol "'+R+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return P.call(this,R,E)},a.scheme=a.protocol,a.port=function(R,E){return this._parts.urn?R===void 0?"":this:(R!==void 0&&(R===0&&(R=null),R&&(R+="",R.charAt(0)===":"&&(R=R.substring(1)),r.ensureValidPort(R))),w.call(this,R,E))},a.hostname=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R!==void 0){var X={preventInvalidHostname:this._parts.preventInvalidHostname},A=r.parseHost(R,X);if(A!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');R=X.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(R,this._parts.protocol)}return F.call(this,R,E)},a.origin=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){var X=this.protocol(),A=this.authority();return A?(X?X+"://":"")+this.authority():""}else{var N=r(R);return this.protocol(N.protocol()).authority(N.authority()).build(!E),this}},a.host=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var X=r.parseHost(R,this._parts);if(X!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');return this.build(!E),this},a.authority=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var X=r.parseAuthority(R,this._parts);if(X!=="/")throw new TypeError('Hostname "'+R+'" contains characters other than [A-Z0-9.-]');return this.build(!E),this},a.userinfo=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){var X=r.buildUserinfo(this._parts);return X&&X.substring(0,X.length-1)}else return R[R.length-1]!=="@"&&(R+="@"),r.parseUserinfo(R,this._parts),this.build(!E),this},a.resource=function(R,E){var X;return R===void 0?this.path()+this.search()+this.hash():(X=r.parse(R),this._parts.path=X.path,this._parts.query=X.query,this._parts.fragment=X.fragment,this.build(!E),this)},a.subdomain=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var X=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,X)||""}else{var A=this._parts.hostname.length-this.domain().length,N=this._parts.hostname.substring(0,A),O=new RegExp("^"+d(N));if(R&&R.charAt(R.length-1)!=="."&&(R+="."),R.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return R&&r.ensureValidHostname(R,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(O,R),this.build(!E),this}},a.domain=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R=="boolean"&&(E=R,R=void 0),R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var X=this._parts.hostname.match(/\./g);if(X&&X.length<2)return this._parts.hostname;var A=this._parts.hostname.length-this.tld(E).length-1;return A=this._parts.hostname.lastIndexOf(".",A-1)+1,this._parts.hostname.substring(A)||""}else{if(!R)throw new TypeError("cannot set domain empty");if(R.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(R,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=R;else{var N=new RegExp(d(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(N,R)}return this.build(!E),this}},a.tld=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R=="boolean"&&(E=R,R=void 0),R===void 0){if(!this._parts.hostname||this.is("IP"))return"";var X=this._parts.hostname.lastIndexOf("."),A=this._parts.hostname.substring(X+1);return E!==!0&&n&&n.list[A.toLowerCase()]&&n.get(this._parts.hostname)||A}else{var N;if(R)if(R.match(/[^a-zA-Z0-9-]/))if(n&&n.is(R))N=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,R);else throw new TypeError('TLD "'+R+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");N=new RegExp(d(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(N,R)}else throw new TypeError("cannot set TLD empty");return this.build(!E),this}},a.directory=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0||R===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var X=this._parts.path.length-this.filename().length-1,A=this._parts.path.substring(0,X)||(this._parts.hostname?"/":"");return R?r.decodePath(A):A}else{var N=this._parts.path.length-this.filename().length,O=this._parts.path.substring(0,N),U=new RegExp("^"+d(O));return this.is("relative")||(R||(R="/"),R.charAt(0)!=="/"&&(R="/"+R)),R&&R.charAt(R.length-1)!=="/"&&(R+="/"),R=r.recodePath(R),this._parts.path=this._parts.path.replace(U,R),this.build(!E),this}},a.filename=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(typeof R!="string"){if(!this._parts.path||this._parts.path==="/")return"";var X=this._parts.path.lastIndexOf("/"),A=this._parts.path.substring(X+1);return R?r.decodePathSegment(A):A}else{var N=!1;R.charAt(0)==="/"&&(R=R.substring(1)),R.match(/\.?\//)&&(N=!0);var O=new RegExp(d(this.filename())+"$");return R=r.recodePath(R),this._parts.path=this._parts.path.replace(O,R),N?this.normalizePath(E):this.build(!E),this}},a.suffix=function(R,E){if(this._parts.urn)return R===void 0?"":this;if(R===void 0||R===!0){if(!this._parts.path||this._parts.path==="/")return"";var X=this.filename(),A=X.lastIndexOf("."),N,O;return A===-1?"":(N=X.substring(A+1),O=/^[a-z0-9%]+$/i.test(N)?N:"",R?r.decodePathSegment(O):O)}else{R.charAt(0)==="."&&(R=R.substring(1));var U=this.suffix(),Y;if(U)R?Y=new RegExp(d(U)+"$"):Y=new RegExp(d("."+U)+"$");else{if(!R)return this;this._parts.path+="."+r.recodePath(R)}return Y&&(R=r.recodePath(R),this._parts.path=this._parts.path.replace(Y,R)),this.build(!E),this}},a.segment=function(R,E,X){var A=this._parts.urn?":":"/",N=this.path(),O=N.substring(0,1)==="/",U=N.split(A);if(R!==void 0&&typeof R!="number"&&(X=E,E=R,R=void 0),R!==void 0&&typeof R!="number")throw new Error('Bad segment "'+R+'", must be 0-based integer');if(O&&U.shift(),R<0&&(R=Math.max(U.length+R,0)),E===void 0)return R===void 0?U:U[R];if(R===null||U[R]===void 0)if(m(E)){U=[];for(var Y=0,k=E.length;Y{var Htn=T(S());/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */(function(e,t){typeof sH=="object"&&typeof aH<"u"?aH.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(sH,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:d}=typeof Reflect<"u"&&Reflect;r||(r=function(je){return je}),s||(s=function(je){return je}),c||(c=function(je,et,He){return je.apply(et,He)}),d||(d=function(je,et){return new je(...et)});let u=I(Array.prototype.forEach),m=I(Array.prototype.pop),p=I(Array.prototype.push),g=I(String.prototype.toLowerCase),f=I(String.prototype.toString),x=I(String.prototype.match),_=I(String.prototype.replace),C=I(String.prototype.indexOf),V=I(String.prototype.trim),L=I(Object.prototype.hasOwnProperty),Z=I(RegExp.prototype.test),G=v(TypeError);function I(Ie){return function(je){for(var et=arguments.length,He=new Array(et>1?et-1:0),Dt=1;Dt2&&arguments[2]!==void 0?arguments[2]:g;t&&t(Ie,null);let He=je.length;for(;He--;){let Dt=je[He];if(typeof Dt=="string"){let Ce=et(Dt);Ce!==Dt&&(n(je)||(je[He]=Ce),Dt=Ce)}Ie[Dt]=!0}return Ie}function w(Ie){for(let je=0;je/gm),q=s(/\${[\w\W]*}/gm),ee=s(/^data-[\-\w.\u00B7-\uFFFF]/),fe=s(/^aria-[\-\w]+$/),_e=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),le=s(/^(?:\w+script|data):/i),ye=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Te=s(/^html$/i),Xe=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var Le=Object.freeze({__proto__:null,MUSTACHE_EXPR:te,ERB_EXPR:z,TMPLIT_EXPR:q,DATA_ATTR:ee,ARIA_ATTR:fe,IS_ALLOWED_URI:_e,IS_SCRIPT_OR_DATA:le,ATTR_WHITESPACE:ye,DOCTYPE_NAME:Te,CUSTOM_ELEMENT:Xe});let ke={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},Oe=function(){return typeof window>"u"?null:window},at=function(je,et){if(typeof je!="object"||typeof je.createPolicy!="function")return null;let He=null,Dt="data-tt-policy-suffix";et&&et.hasAttribute(Dt)&&(He=et.getAttribute(Dt));let Ce="dompurify"+(He?"#"+He:"");try{return je.createPolicy(Ce,{createHTML(Ve){return Ve},createScriptURL(Ve){return Ve}})}catch{return console.warn("TrustedTypes policy "+Ce+" could not be created."),null}};function Mt(){let Ie=arguments.length>0&&arguments[0]!==void 0?arguments[0]:Oe(),je=Rn=>Mt(Rn);if(je.version="3.1.7",je.removed=[],!Ie||!Ie.document||Ie.document.nodeType!==ke.document)return je.isSupported=!1,je;let{document:et}=Ie,He=et,Dt=He.currentScript,{DocumentFragment:Ce,HTMLTemplateElement:Ve,Node:ct,Element:Di,NodeFilter:mt,NamedNodeMap:_o=Ie.NamedNodeMap||Ie.MozNamedAttrMap,HTMLFormElement:fr,DOMParser:Zc,trustedTypes:Zr}=Ie,ss=Di.prototype,Ne=b(ss,"cloneNode"),ut=b(ss,"remove"),Je=b(ss,"nextSibling"),$e=b(ss,"childNodes"),pt=b(ss,"parentNode");if(typeof Ve=="function"){let Rn=et.createElement("template");Rn.content&&Rn.content.ownerDocument&&(et=Rn.content.ownerDocument)}let It,yn="",{implementation:po,createNodeIterator:rr,createDocumentFragment:Oa,getElementsByTagName:Ya}=et,{importNode:as}=He,Qn={};je.isSupported=typeof e=="function"&&typeof pt=="function"&&po&&po.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:xs,ERB_EXPR:Gr,TMPLIT_EXPR:hl,DATA_ATTR:To,ARIA_ATTR:Hr,IS_SCRIPT_OR_DATA:rp,ATTR_WHITESPACE:fl,CUSTOM_ELEMENT:sp}=Le,{IS_ALLOWED_URI:Ha}=Le,Er=null,Ta=P({},[...R,...E,...X,...N,...U]),bo=null,T0=P({},[...Y,...k,...H,...J]),di=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Gc=null,nd=null,ru=!0,So=!0,su=!1,TS=!0,By=!1,F3=!0,Oy=!1,A3=!1,M3=!1,SS=!1,F9=!1,A9=!1,eq=!0,tq=!1,XCe="user-content-",N3=!0,AL=!1,CS={},VS=null,nq=P({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),iq=null,oq=P({},["audio","video","img","source","image","track"]),k3=null,rq=P({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),M9="http://www.w3.org/1998/Math/MathML",N9="http://www.w3.org/2000/svg",ap="http://www.w3.org/1999/xhtml",LS=ap,U3=!1,D3=null,WCe=P({},[M9,N9,ap],f),ML=null,PCe=["application/xhtml+xml","text/html"],vCe="text/html",na=null,RS=null,wCe=et.createElement("form"),sq=function(Re){return Re instanceof RegExp||Re instanceof Function},B3=function(){let Re=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(RS&&RS===Re)){if((!Re||typeof Re!="object")&&(Re={}),Re=F(Re),ML=PCe.indexOf(Re.PARSER_MEDIA_TYPE)===-1?vCe:Re.PARSER_MEDIA_TYPE,na=ML==="application/xhtml+xml"?f:g,Er=L(Re,"ALLOWED_TAGS")?P({},Re.ALLOWED_TAGS,na):Ta,bo=L(Re,"ALLOWED_ATTR")?P({},Re.ALLOWED_ATTR,na):T0,D3=L(Re,"ALLOWED_NAMESPACES")?P({},Re.ALLOWED_NAMESPACES,f):WCe,k3=L(Re,"ADD_URI_SAFE_ATTR")?P(F(rq),Re.ADD_URI_SAFE_ATTR,na):rq,iq=L(Re,"ADD_DATA_URI_TAGS")?P(F(oq),Re.ADD_DATA_URI_TAGS,na):oq,VS=L(Re,"FORBID_CONTENTS")?P({},Re.FORBID_CONTENTS,na):nq,Gc=L(Re,"FORBID_TAGS")?P({},Re.FORBID_TAGS,na):{},nd=L(Re,"FORBID_ATTR")?P({},Re.FORBID_ATTR,na):{},CS=L(Re,"USE_PROFILES")?Re.USE_PROFILES:!1,ru=Re.ALLOW_ARIA_ATTR!==!1,So=Re.ALLOW_DATA_ATTR!==!1,su=Re.ALLOW_UNKNOWN_PROTOCOLS||!1,TS=Re.ALLOW_SELF_CLOSE_IN_ATTR!==!1,By=Re.SAFE_FOR_TEMPLATES||!1,F3=Re.SAFE_FOR_XML!==!1,Oy=Re.WHOLE_DOCUMENT||!1,SS=Re.RETURN_DOM||!1,F9=Re.RETURN_DOM_FRAGMENT||!1,A9=Re.RETURN_TRUSTED_TYPE||!1,M3=Re.FORCE_BODY||!1,eq=Re.SANITIZE_DOM!==!1,tq=Re.SANITIZE_NAMED_PROPS||!1,N3=Re.KEEP_CONTENT!==!1,AL=Re.IN_PLACE||!1,Ha=Re.ALLOWED_URI_REGEXP||_e,LS=Re.NAMESPACE||ap,di=Re.CUSTOM_ELEMENT_HANDLING||{},Re.CUSTOM_ELEMENT_HANDLING&&sq(Re.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(di.tagNameCheck=Re.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Re.CUSTOM_ELEMENT_HANDLING&&sq(Re.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(di.attributeNameCheck=Re.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Re.CUSTOM_ELEMENT_HANDLING&&typeof Re.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(di.allowCustomizedBuiltInElements=Re.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),By&&(So=!1),F9&&(SS=!0),CS&&(Er=P({},U),bo=[],CS.html===!0&&(P(Er,R),P(bo,Y)),CS.svg===!0&&(P(Er,E),P(bo,k),P(bo,J)),CS.svgFilters===!0&&(P(Er,X),P(bo,k),P(bo,J)),CS.mathMl===!0&&(P(Er,N),P(bo,H),P(bo,J))),Re.ADD_TAGS&&(Er===Ta&&(Er=F(Er)),P(Er,Re.ADD_TAGS,na)),Re.ADD_ATTR&&(bo===T0&&(bo=F(bo)),P(bo,Re.ADD_ATTR,na)),Re.ADD_URI_SAFE_ATTR&&P(k3,Re.ADD_URI_SAFE_ATTR,na),Re.FORBID_CONTENTS&&(VS===nq&&(VS=F(VS)),P(VS,Re.FORBID_CONTENTS,na)),N3&&(Er["#text"]=!0),Oy&&P(Er,["html","head","body"]),Er.table&&(P(Er,["tbody"]),delete Gc.tbody),Re.TRUSTED_TYPES_POLICY){if(typeof Re.TRUSTED_TYPES_POLICY.createHTML!="function")throw G('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Re.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw G('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');It=Re.TRUSTED_TYPES_POLICY,yn=It.createHTML("")}else It===void 0&&(It=at(Zr,Dt)),It!==null&&typeof yn=="string"&&(yn=It.createHTML(""));r&&r(Re),RS=Re}},aq=P({},["mi","mo","mn","ms","mtext"]),cq=P({},["annotation-xml"]),FCe=P({},["title","style","font","a","script"]),lq=P({},[...E,...X,...A]),dq=P({},[...N,...O]),ACe=function(Re){let wt=pt(Re);(!wt||!wt.tagName)&&(wt={namespaceURI:LS,tagName:"template"});let bn=g(Re.tagName),Yo=g(wt.tagName);return D3[Re.namespaceURI]?Re.namespaceURI===N9?wt.namespaceURI===ap?bn==="svg":wt.namespaceURI===M9?bn==="svg"&&(Yo==="annotation-xml"||aq[Yo]):!!lq[bn]:Re.namespaceURI===M9?wt.namespaceURI===ap?bn==="math":wt.namespaceURI===N9?bn==="math"&&cq[Yo]:!!dq[bn]:Re.namespaceURI===ap?wt.namespaceURI===N9&&!cq[Yo]||wt.namespaceURI===M9&&!aq[Yo]?!1:!dq[bn]&&(FCe[bn]||!lq[bn]):!!(ML==="application/xhtml+xml"&&D3[Re.namespaceURI]):!1},Mh=function(Re){p(je.removed,{element:Re});try{pt(Re).removeChild(Re)}catch{ut(Re)}},k9=function(Re,wt){try{p(je.removed,{attribute:wt.getAttributeNode(Re),from:wt})}catch{p(je.removed,{attribute:null,from:wt})}if(wt.removeAttribute(Re),Re==="is"&&!bo[Re])if(SS||F9)try{Mh(wt)}catch{}else try{wt.setAttribute(Re,"")}catch{}},uq=function(Re){let wt=null,bn=null;if(M3)Re=""+Re;else{let Sa=x(Re,/^[\r\n\t ]+/);bn=Sa&&Sa[0]}ML==="application/xhtml+xml"&&LS===ap&&(Re=''+Re+"");let Yo=It?It.createHTML(Re):Re;if(LS===ap)try{wt=new Zc().parseFromString(Yo,ML)}catch{}if(!wt||!wt.documentElement){wt=po.createDocument(LS,"template",null);try{wt.documentElement.innerHTML=U3?yn:Yo}catch{}}let za=wt.body||wt.documentElement;return Re&&bn&&za.insertBefore(et.createTextNode(bn),za.childNodes[0]||null),LS===ap?Ya.call(wt,Oy?"html":"body")[0]:Oy?wt.documentElement:za},mq=function(Re){return rr.call(Re.ownerDocument||Re,Re,mt.SHOW_ELEMENT|mt.SHOW_COMMENT|mt.SHOW_TEXT|mt.SHOW_PROCESSING_INSTRUCTION|mt.SHOW_CDATA_SECTION,null)},hq=function(Re){return Re instanceof fr&&(typeof Re.nodeName!="string"||typeof Re.textContent!="string"||typeof Re.removeChild!="function"||!(Re.attributes instanceof _o)||typeof Re.removeAttribute!="function"||typeof Re.setAttribute!="function"||typeof Re.namespaceURI!="string"||typeof Re.insertBefore!="function"||typeof Re.hasChildNodes!="function")},fq=function(Re){return typeof ct=="function"&&Re instanceof ct},cp=function(Re,wt,bn){Qn[Re]&&u(Qn[Re],Yo=>{Yo.call(je,wt,bn,RS)})},pq=function(Re){let wt=null;if(cp("beforeSanitizeElements",Re,null),hq(Re))return Mh(Re),!0;let bn=na(Re.nodeName);if(cp("uponSanitizeElement",Re,{tagName:bn,allowedTags:Er}),Re.hasChildNodes()&&!fq(Re.firstElementChild)&&Z(/<[/\w]/g,Re.innerHTML)&&Z(/<[/\w]/g,Re.textContent)||Re.nodeType===ke.progressingInstruction||F3&&Re.nodeType===ke.comment&&Z(/<[/\w]/g,Re.data))return Mh(Re),!0;if(!Er[bn]||Gc[bn]){if(!Gc[bn]&&gq(bn)&&(di.tagNameCheck instanceof RegExp&&Z(di.tagNameCheck,bn)||di.tagNameCheck instanceof Function&&di.tagNameCheck(bn)))return!1;if(N3&&!VS[bn]){let Yo=pt(Re)||Re.parentNode,za=$e(Re)||Re.childNodes;if(za&&Yo){let Sa=za.length;for(let pl=Sa-1;pl>=0;--pl){let Nh=Ne(za[pl],!0);Nh.__removalCount=(Re.__removalCount||0)+1,Yo.insertBefore(Nh,Je(Re))}}}return Mh(Re),!0}return Re instanceof Di&&!ACe(Re)||(bn==="noscript"||bn==="noembed"||bn==="noframes")&&Z(/<\/no(script|embed|frames)/i,Re.innerHTML)?(Mh(Re),!0):(By&&Re.nodeType===ke.text&&(wt=Re.textContent,u([xs,Gr,hl],Yo=>{wt=_(wt,Yo," ")}),Re.textContent!==wt&&(p(je.removed,{element:Re.cloneNode()}),Re.textContent=wt)),cp("afterSanitizeElements",Re,null),!1)},bq=function(Re,wt,bn){if(eq&&(wt==="id"||wt==="name")&&(bn in et||bn in wCe))return!1;if(!(So&&!nd[wt]&&Z(To,wt))){if(!(ru&&Z(Hr,wt))){if(!bo[wt]||nd[wt]){if(!(gq(Re)&&(di.tagNameCheck instanceof RegExp&&Z(di.tagNameCheck,Re)||di.tagNameCheck instanceof Function&&di.tagNameCheck(Re))&&(di.attributeNameCheck instanceof RegExp&&Z(di.attributeNameCheck,wt)||di.attributeNameCheck instanceof Function&&di.attributeNameCheck(wt))||wt==="is"&&di.allowCustomizedBuiltInElements&&(di.tagNameCheck instanceof RegExp&&Z(di.tagNameCheck,bn)||di.tagNameCheck instanceof Function&&di.tagNameCheck(bn))))return!1}else if(!k3[wt]){if(!Z(Ha,_(bn,fl,""))){if(!((wt==="src"||wt==="xlink:href"||wt==="href")&&Re!=="script"&&C(bn,"data:")===0&&iq[Re])){if(!(su&&!Z(rp,_(bn,fl,"")))){if(bn)return!1}}}}}}return!0},gq=function(Re){return Re!=="annotation-xml"&&x(Re,sp)},yq=function(Re){cp("beforeSanitizeAttributes",Re,null);let{attributes:wt}=Re;if(!wt)return;let bn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:bo},Yo=wt.length;for(;Yo--;){let za=wt[Yo],{name:Sa,namespaceURI:pl,value:Nh}=za,NL=na(Sa),Ec=Sa==="value"?Nh:V(Nh);if(bn.attrName=NL,bn.attrValue=Ec,bn.keepAttr=!0,bn.forceKeepAttr=void 0,cp("uponSanitizeAttribute",Re,bn),Ec=bn.attrValue,bn.forceKeepAttr||(k9(Sa,Re),!bn.keepAttr))continue;if(!TS&&Z(/\/>/i,Ec)){k9(Sa,Re);continue}By&&u([xs,Gr,hl],_q=>{Ec=_(Ec,_q," ")});let xq=na(Re.nodeName);if(bq(xq,NL,Ec)){if(tq&&(NL==="id"||NL==="name")&&(k9(Sa,Re),Ec=XCe+Ec),F3&&Z(/((--!?|])>)|<\/(style|title)/i,Ec)){k9(Sa,Re);continue}if(It&&typeof Zr=="object"&&typeof Zr.getAttributeType=="function"&&!pl)switch(Zr.getAttributeType(xq,NL)){case"TrustedHTML":{Ec=It.createHTML(Ec);break}case"TrustedScriptURL":{Ec=It.createScriptURL(Ec);break}}try{pl?Re.setAttributeNS(pl,Sa,Ec):Re.setAttribute(Sa,Ec),hq(Re)?Mh(Re):m(je.removed)}catch{}}}cp("afterSanitizeAttributes",Re,null)},MCe=function Rn(Re){let wt=null,bn=mq(Re);for(cp("beforeSanitizeShadowDOM",Re,null);wt=bn.nextNode();)cp("uponSanitizeShadowNode",wt,null),!pq(wt)&&(wt.content instanceof Ce&&Rn(wt.content),yq(wt));cp("afterSanitizeShadowDOM",Re,null)};return je.sanitize=function(Rn){let Re=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},wt=null,bn=null,Yo=null,za=null;if(U3=!Rn,U3&&(Rn=""),typeof Rn!="string"&&!fq(Rn))if(typeof Rn.toString=="function"){if(Rn=Rn.toString(),typeof Rn!="string")throw G("dirty is not a string, aborting")}else throw G("toString is not a function");if(!je.isSupported)return Rn;if(A3||B3(Re),je.removed=[],typeof Rn=="string"&&(AL=!1),AL){if(Rn.nodeName){let Nh=na(Rn.nodeName);if(!Er[Nh]||Gc[Nh])throw G("root node is forbidden and cannot be sanitized in-place")}}else if(Rn instanceof ct)wt=uq(""),bn=wt.ownerDocument.importNode(Rn,!0),bn.nodeType===ke.element&&bn.nodeName==="BODY"||bn.nodeName==="HTML"?wt=bn:wt.appendChild(bn);else{if(!SS&&!By&&!Oy&&Rn.indexOf("<")===-1)return It&&A9?It.createHTML(Rn):Rn;if(wt=uq(Rn),!wt)return SS?null:A9?yn:""}wt&&M3&&Mh(wt.firstChild);let Sa=mq(AL?Rn:wt);for(;Yo=Sa.nextNode();)pq(Yo)||(Yo.content instanceof Ce&&MCe(Yo.content),yq(Yo));if(AL)return Rn;if(SS){if(F9)for(za=Oa.call(wt.ownerDocument);wt.firstChild;)za.appendChild(wt.firstChild);else za=wt;return(bo.shadowroot||bo.shadowrootmode)&&(za=as.call(He,za,!0)),za}let pl=Oy?wt.outerHTML:wt.innerHTML;return Oy&&Er["!doctype"]&&wt.ownerDocument&&wt.ownerDocument.doctype&&wt.ownerDocument.doctype.name&&Z(Te,wt.ownerDocument.doctype.name)&&(pl=" +`+pl),By&&u([xs,Gr,hl],Nh=>{pl=_(pl,Nh," ")}),It&&A9?It.createHTML(pl):pl},je.setConfig=function(){let Rn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};B3(Rn),A3=!0},je.clearConfig=function(){RS=null,A3=!1},je.isValidAttribute=function(Rn,Re,wt){RS||B3({});let bn=na(Rn),Yo=na(Re);return bq(bn,Yo,wt)},je.addHook=function(Rn,Re){typeof Re=="function"&&(Qn[Rn]=Qn[Rn]||[],p(Qn[Rn],Re))},je.removeHook=function(Rn){if(Qn[Rn])return m(Qn[Rn])},je.removeHooks=function(Rn){Qn[Rn]&&(Qn[Rn]=[])},je.removeAllHooks=function(){Qn={}},je}var Lt=Mt();return Lt})});var Oce=bl((fFn,Bce)=>{"use strict";var pFn=T(S());Bce.exports=fze;var C2=1e20;function fze(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,d,u,m,p,g,f,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?u=t.stride:u=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,m=p.getContext("2d"),r=p.width,s=p.height,g=m.getImageData(0,0,r,s),c=g.data,u=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,m=e,r=p.width,s=p.height,g=m.getImageData(0,0,r,s),c=g.data,u=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,u=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(d=c,c=Array(r*s),f=0,x=Math.floor(d.length/u);f{var wFn=T(S());function Lze(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,d=9,u=10,m=11,p=12,g=13,f=14,x=15,_=16,C=17,V=0,L=1,Z=2,G=3,I=4;function v(b,R){return 55296<=b.charCodeAt(R)&&b.charCodeAt(R)<=56319&&56320<=b.charCodeAt(R+1)&&b.charCodeAt(R+1)<=57343}function P(b,R){R===void 0&&(R=0);var E=b.charCodeAt(R);if(55296<=E&&E<=56319&&R=1){var X=b.charCodeAt(R-1),A=E;return 55296<=X&&X<=56319?(X-55296)*1024+(A-56320)+65536:A}return E}function w(b,R,E){var X=[b].concat(R).concat([E]),A=X[X.length-2],N=E,O=X.lastIndexOf(f);if(O>1&&X.slice(1,O).every(function(k){return k==i})&&[i,g,C].indexOf(b)==-1)return Z;var U=X.lastIndexOf(o);if(U>0&&X.slice(1,U).every(function(k){return k==o})&&[p,o].indexOf(A)==-1)return X.filter(function(k){return k==o}).length%2==1?G:I;if(A==e&&N==t)return V;if(A==n||A==e||A==t)return N==f&&R.every(function(k){return k==i})?Z:L;if(N==n||N==e||N==t)return L;if(A==s&&(N==s||N==a||N==d||N==u))return V;if((A==d||A==a)&&(N==a||N==c))return V;if((A==u||A==c)&&N==c)return V;if(N==i||N==x)return V;if(N==r)return V;if(A==p)return V;var Y=X.indexOf(i)!=-1?X.lastIndexOf(i)-1:X.length-2;return[g,C].indexOf(X[Y])!=-1&&X.slice(Y+1,-1).every(function(k){return k==i})&&N==f||A==x&&[_,C].indexOf(N)!=-1?V:R.indexOf(o)!=-1?Z:A==o&&N==o?V:L}this.nextBreak=function(b,R){if(R===void 0&&(R=0),R<0)return 0;if(R>=b.length-1)return b.length;for(var E=F(P(b,R)),X=[],A=R+1;A{var Ksi=T(S());(function(e,t){typeof ZJ=="object"&&typeof GJ<"u"?GJ.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(ZJ,function(){"use strict";function e(_,C,V,L,Z){(function G(I,v,P,w,F){for(;w>P;){if(w-P>600){var b=w-P+1,R=v-P+1,E=Math.log(b),X=.5*Math.exp(2*E/3),A=.5*Math.sqrt(E*X*(b-X)/b)*(R-b/2<0?-1:1),N=Math.max(P,Math.floor(v-R*X/b+A)),O=Math.min(w,Math.floor(v+(b-R)*X/b+A));G(I,v,N,O,F)}var U=I[v],Y=P,k=w;for(t(I,P,v),F(I[w],U)>0&&t(I,P,w);Y0;)k--}F(I[P],U)===0?t(I,P,k):t(I,++k,w),k<=v&&(P=k+1),v<=k&&(w=k-1)}})(_,C,V||0,L||_.length-1,Z||n)}function t(_,C,V){var L=_[C];_[C]=_[V],_[V]=L}function n(_,C){return _C?1:0}var i=function(_){_===void 0&&(_=9),this._maxEntries=Math.max(4,_),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(_,C,V){if(!V)return C.indexOf(_);for(var L=0;L=_.minX&&C.maxY>=_.minY}function f(_){return{children:_,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function x(_,C,V,L,Z){for(var G=[C,V];G.length;)if(!((V=G.pop())-(C=G.pop())<=L)){var I=C+Math.ceil((V-C)/L/2)*L;e(_,I,C,V,Z),G.push(C,I,I,V)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(_){var C=this.data,V=[];if(!g(_,C))return V;for(var L=this.toBBox,Z=[];C;){for(var G=0;G=0&&Z[C].children.length>this._maxEntries;)this._split(Z,C),C--;this._adjustParentBBoxes(L,Z,C)},i.prototype._split=function(_,C){var V=_[C],L=V.children.length,Z=this._minEntries;this._chooseSplitAxis(V,Z,L);var G=this._chooseSplitIndex(V,Z,L),I=f(V.children.splice(G,V.children.length-G));I.height=V.height,I.leaf=V.leaf,r(V,this.toBBox),r(I,this.toBBox),C?_[C-1].children.push(I):this._splitRoot(V,I)},i.prototype._splitRoot=function(_,C){this.data=f([_,C]),this.data.height=_.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(_,C,V){for(var L,Z,G,I,v,P,w,F=1/0,b=1/0,R=C;R<=V-C;R++){var E=s(_,0,R,this.toBBox),X=s(_,R,V,this.toBBox),A=(Z=E,G=X,I=void 0,v=void 0,P=void 0,w=void 0,I=Math.max(Z.minX,G.minX),v=Math.max(Z.minY,G.minY),P=Math.min(Z.maxX,G.maxX),w=Math.min(Z.maxY,G.maxY),Math.max(0,P-I)*Math.max(0,w-v)),N=u(E)+u(X);A=C;F--){var b=_.children[F];a(I,_.leaf?Z(b):b),v+=m(I)}return v},i.prototype._adjustParentBBoxes=function(_,C,V){for(var L=V;L>=0;L--)a(C[L],_)},i.prototype._condense=function(_){for(var C=_.length-1,V=void 0;C>=0;C--)_[C].children.length===0?C>0?(V=_[C-1].children).splice(V.indexOf(_[C]),1):this.clear():r(_[C],this.toBBox)},i})});var o7=bl((exports,module)=>{var a4i=T(S());/*! + * protobuf.js v7.4.0 (c) 2016, daniel wirtz + * compiled thu, 22 aug 2024 20:30:39 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,d=!0;c1&&d.charAt(u)==="=";)++m;return Math.ceil(d.length*3)/4-m};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(d,u,m){for(var p=null,g=[],f=0,x=0,_;u>2],_=(C&3)<<4,x=1;break;case 1:g[f++]=o[_|C>>4],_=(C&15)<<2,x=2;break;case 2:g[f++]=o[_|C>>6],g[f++]=o[C&63],x=0;break}f>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),f=0)}return x&&(g[f++]=o[_],g[f++]=61,x===1&&(g[f++]=61)),p?(f&&p.push(String.fromCharCode.apply(String,g.slice(0,f))),p.join("")):String.fromCharCode.apply(String,g.slice(0,f))};var a="invalid encoding";i.decode=function(d,u,m){for(var p=m,g=0,f,x=0;x1)break;if((_=r[_])===undefined)throw Error(a);switch(g){case 0:f=_,g=1;break;case 1:u[m++]=f<<2|(_&48)>>4,f=_,g=2;break;case 2:u[m++]=(f&15)<<4|(_&60)>>2,f=_,g=3;break;case 3:u[m++]=(f&3)<<6|_,g=0;break}}if(g===1)throw Error(a);return m-p},i.test=function(d){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(d)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c0?0:2147483648,g,f);else if(isNaN(p))m(2143289344,g,f);else if(p>34028234663852886e22)m((x<<31|2139095040)>>>0,g,f);else if(p<11754943508222875e-54)m((x<<31|Math.round(p/1401298464324817e-60))>>>0,g,f);else{var _=Math.floor(Math.log(p)/Math.LN2),C=Math.round(p*Math.pow(2,-_)*8388608)&8388607;m((x<<31|_+127<<23|C)>>>0,g,f)}}c.writeFloatLE=d.bind(null,o),c.writeFloatBE=d.bind(null,r);function u(m,p,g){var f=m(p,g),x=(f>>31)*2+1,_=f>>>23&255,C=f&8388607;return _===255?C?NaN:x*(1/0):_===0?x*1401298464324817e-60*C:x*Math.pow(2,_-150)*(C+8388608)}c.readFloatLE=u.bind(null,s),c.readFloatBE=u.bind(null,a)}(),typeof Float64Array<"u"?function(){var d=new Float64Array([-0]),u=new Uint8Array(d.buffer),m=u[7]===128;function p(_,C,V){d[0]=_,C[V]=u[0],C[V+1]=u[1],C[V+2]=u[2],C[V+3]=u[3],C[V+4]=u[4],C[V+5]=u[5],C[V+6]=u[6],C[V+7]=u[7]}function g(_,C,V){d[0]=_,C[V]=u[7],C[V+1]=u[6],C[V+2]=u[5],C[V+3]=u[4],C[V+4]=u[3],C[V+5]=u[2],C[V+6]=u[1],C[V+7]=u[0]}c.writeDoubleLE=m?p:g,c.writeDoubleBE=m?g:p;function f(_,C){return u[0]=_[C],u[1]=_[C+1],u[2]=_[C+2],u[3]=_[C+3],u[4]=_[C+4],u[5]=_[C+5],u[6]=_[C+6],u[7]=_[C+7],d[0]}function x(_,C){return u[7]=_[C],u[6]=_[C+1],u[5]=_[C+2],u[4]=_[C+3],u[3]=_[C+4],u[2]=_[C+5],u[1]=_[C+6],u[0]=_[C+7],d[0]}c.readDoubleLE=m?f:x,c.readDoubleBE=m?x:f}():function(){function d(m,p,g,f,x,_){var C=f<0?1:0;if(C&&(f=-f),f===0)m(0,x,_+p),m(1/f>0?0:2147483648,x,_+g);else if(isNaN(f))m(0,x,_+p),m(2146959360,x,_+g);else if(f>17976931348623157e292)m(0,x,_+p),m((C<<31|2146435072)>>>0,x,_+g);else{var V;if(f<22250738585072014e-324)V=f/5e-324,m(V>>>0,x,_+p),m((C<<31|V/4294967296)>>>0,x,_+g);else{var L=Math.floor(Math.log(f)/Math.LN2);L===1024&&(L=1023),V=f*Math.pow(2,-L),m(V*4503599627370496>>>0,x,_+p),m((C<<31|L+1023<<20|V*1048576&1048575)>>>0,x,_+g)}}}c.writeDoubleLE=d.bind(null,o,0,4),c.writeDoubleBE=d.bind(null,r,4,0);function u(m,p,g,f,x){var _=m(f,x+p),C=m(f,x+g),V=(C>>31)*2+1,L=C>>>20&2047,Z=4294967296*(C&1048575)+_;return L===2047?Z?NaN:V*(1/0):L===0?V*5e-324*Z:V*Math.pow(2,L-1075)*(Z+4503599627370496)}c.readDoubleLE=u.bind(null,s,0,4),c.readDoubleBE=u.bind(null,a,4,0)}(),c}function o(c,d,u){d[u]=c&255,d[u+1]=c>>>8&255,d[u+2]=c>>>16&255,d[u+3]=c>>>24}function r(c,d,u){d[u]=c>>>24,d[u+1]=c>>>16&255,d[u+2]=c>>>8&255,d[u+3]=c&255}function s(c,d){return(c[d]|c[d+1]<<8|c[d+2]<<16|c[d+3]<<24)>>>0}function a(c,d){return(c[d]<<24|c[d+1]<<16|c[d+2]<<8|c[d+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,d=null,u=a;return function(p){if(p<1||p>c)return o(p);u+p>a&&(d=o(a),u=0);var g=r.call(d,u,u+=p);return u&7&&(u=(u|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c191&&p<224?u[m++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,u[m++]=55296+(p>>10),u[m++]=56320+(p&1023)):u[m++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,m>8191&&((d||(d=[])).push(String.fromCharCode.apply(String,u)),m=0);return d?(m&&d.push(String.fromCharCode.apply(String,u.slice(0,m))),d.join("")):String.fromCharCode.apply(String,u.slice(0,m))},i.write=function(r,s,a){for(var c=a,d,u,m=0;m>6|192,s[a++]=d&63|128):(d&64512)===55296&&((u=r.charCodeAt(m+1))&64512)===56320?(d=65536+((d&1023)<<10)+(u&1023),++m,s[a++]=d>>18|240,s[a++]=d>>12&63|128,s[a++]=d>>6&63|128,s[a++]=d&63|128):(s[a++]=d>>12|224,s[a++]=d>>6&63|128,s[a++]=d&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(f,x){return RangeError("index out of range: "+f.pos+" + "+(x||1)+" > "+f.len)}function c(f){this.buf=f,this.pos=0,this.len=f.length}var d=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},u=function(){return i.Buffer?function(_){return(c.create=function(V){return i.Buffer.isBuffer(V)?new o(V):d(V)})(_)}:d};c.create=u(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function m(){var f=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(f.lo=(f.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f;if(f.lo=(f.lo|(this.buf[this.pos]&127)<<28)>>>0,f.hi=(f.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return f;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(f.lo=(f.lo|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}return f.lo=(f.lo|(this.buf[this.pos++]&127)<>>0,f}if(this.len-this.pos>4){for(;x<5;++x)if(f.hi=(f.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(f.hi=(f.hi|(this.buf[this.pos]&127)<>>0,this.buf[this.pos++]<128)return f}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(f,x){return(f[x-4]|f[x-3]<<8|f[x-2]<<16|f[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),_=this.pos,C=this.pos+x;if(C>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(_,C);if(_===C){var V=i.Buffer;return V?V.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,_,C)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(f){switch(f){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(f=this.uint32()&7)!==4;)this.skipType(f);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+f+" at offset "+this.pos)}return this},c._configure=function(f){o=f,c.create=u(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return m.call(this)[x](!1)},uint64:function(){return m.call(this)[x](!0)},sint64:function(){return m.call(this).zzDecode()[x](!1)},fixed64:function(){return g.call(this)[x](!0)},sfixed64:function(){return g.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,d,u){if(!d)throw TypeError("request must be specified");var m=this;if(!u)return i.asPromise(r,m,s,a,c,d);if(!m.rpcImpl)return setTimeout(function(){u(Error("already ended"))},0),undefined;try{return m.rpcImpl(s,a[m.requestDelimited?"encodeDelimited":"encode"](d).finish(),function(g,f){if(g)return m.emit("error",g,s),u(g);if(f===null)return m.end(!0),undefined;if(!(f instanceof c))try{f=c[m.responseDelimited?"decodeDelimited":"decode"](f)}catch(x){return m.emit("error",x,s),u(x)}return m.emit("data",f,s),u(null,f)})}catch(p){return m.emit("error",p,s),setTimeout(function(){u(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,d){this.lo=c>>>0,this.hi=d>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(d){if(d===0)return r;var u=d<0;u&&(d=-d);var m=d>>>0,p=(d-m)/4294967296>>>0;return u&&(p=~p>>>0,m=~m>>>0,++m>4294967295&&(m=0,++p>4294967295&&(p=0))),new o(m,p)},o.from=function(d){if(typeof d=="number")return o.fromNumber(d);if(i.isString(d))if(i.Long)d=i.Long.fromString(d);else return o.fromNumber(parseInt(d,10));return d.low||d.high?new o(d.low>>>0,d.high>>>0):r},o.prototype.toNumber=function(d){if(!d&&this.hi>>>31){var u=~this.lo+1>>>0,m=~this.hi>>>0;return u||(m=m+1>>>0),-(u+m*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(d){return i.Long?new i.Long(this.lo|0,this.hi|0,!!d):{low:this.lo|0,high:this.hi|0,unsigned:!!d}};var a=String.prototype.charCodeAt;o.fromHash=function(d){return d===s?r:new o((a.call(d,0)|a.call(d,1)<<8|a.call(d,2)<<16|a.call(d,3)<<24)>>>0,(a.call(d,4)|a.call(d,5)<<8|a.call(d,6)<<16|a.call(d,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var d=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^d)>>>0,this.lo=(this.lo<<1^d)>>>0,this},o.prototype.zzDecode=function(){var d=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^d)>>>0,this.hi=(this.hi>>>1^d)>>>0,this},o.prototype.length=function(){var d=this.lo,u=(this.lo>>>28|this.hi<<4)>>>0,m=this.hi>>>24;return m===0?u===0?d<16384?d<128?1:2:d<2097152?3:4:u<16384?u<128?5:6:u<2097152?7:8:m<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var d=a[c];return d!=null&&a.hasOwnProperty(c)?typeof d!="object"||(Array.isArray(d)?d.length:Object.keys(d).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var d=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(d.lo,d.hi,c):d.toNumber(!!c)};function o(s,a,c){for(var d=Object.keys(a),u=0;u-1;--m)if(c[u[m]]===1&&this[u[m]]!==undefined&&this[u[m]]!==null)return u[m]}},i.oneOfSetter=function(a){return function(c){for(var d=0;d127;)Z[G++]=L&127|128,L>>>=7;Z[G]=L}function x(L,Z){this.len=L,this.next=undefined,this.val=Z}x.prototype=Object.create(c.prototype),x.prototype.fn=f,m.prototype.uint32=function(Z){return this.len+=(this.tail=this.tail.next=new x((Z=Z>>>0)<128?1:Z<16384?2:Z<2097152?3:Z<268435456?4:5,Z)).len,this},m.prototype.int32=function(Z){return Z<0?this._push(_,10,r.fromNumber(Z)):this.uint32(Z)},m.prototype.sint32=function(Z){return this.uint32((Z<<1^Z>>31)>>>0)};function _(L,Z,G){for(;L.hi;)Z[G++]=L.lo&127|128,L.lo=(L.lo>>>7|L.hi<<25)>>>0,L.hi>>>=7;for(;L.lo>127;)Z[G++]=L.lo&127|128,L.lo=L.lo>>>7;Z[G++]=L.lo}m.prototype.uint64=function(Z){var G=r.from(Z);return this._push(_,G.length(),G)},m.prototype.int64=m.prototype.uint64,m.prototype.sint64=function(Z){var G=r.from(Z).zzEncode();return this._push(_,G.length(),G)},m.prototype.bool=function(Z){return this._push(g,1,Z?1:0)};function C(L,Z,G){Z[G]=L&255,Z[G+1]=L>>>8&255,Z[G+2]=L>>>16&255,Z[G+3]=L>>>24}m.prototype.fixed32=function(Z){return this._push(C,4,Z>>>0)},m.prototype.sfixed32=m.prototype.fixed32,m.prototype.fixed64=function(Z){var G=r.from(Z);return this._push(C,4,G.lo)._push(C,4,G.hi)},m.prototype.sfixed64=m.prototype.fixed64,m.prototype.float=function(Z){return this._push(i.float.writeFloatLE,4,Z)},m.prototype.double=function(Z){return this._push(i.float.writeDoubleLE,8,Z)};var V=i.Array.prototype.set?function(Z,G,I){G.set(Z,I)}:function(Z,G,I){for(var v=0;v>>0;if(!G)return this._push(g,1,0);if(i.isString(Z)){var I=m.alloc(G=s.length(Z));s.decode(Z,I,0),Z=I}return this.uint32(G)._push(V,G,Z)},m.prototype.string=function(Z){var G=a.length(Z);return G?this.uint32(G)._push(a.write,G,Z):this._push(g,1,0)},m.prototype.fork=function(){return this.states=new u(this),this.head=this.tail=new c(d,0,0),this.len=0,this},m.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(d,0,0),this.len=0),this},m.prototype.ldelim=function(){var Z=this.head,G=this.tail,I=this.len;return this.reset().uint32(I),I&&(this.tail.next=Z.next,this.tail=G,this.len+=I),this},m.prototype.finish=function(){for(var Z=this.head.next,G=this.constructor.alloc(this.len),I=0;Z;)Z.fn(Z.val,G,I),I+=Z.len,Z=Z.next;return G},m._configure=function(L){o=L,m.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,d,u){d.set(c,u)}:function(c,d,u){if(c.copy)c.copy(d,u,0,c.length);else for(var m=0;m>>0;return this.uint32(d),d&&this._push(r.writeBytesBuffer,d,c),this};function s(a,c,d){a.length<40?o.utf8.write(a,c,d):c.utf8Write?c.utf8Write(a,d):c.write(a,d)}r.prototype.string=function(c){var d=o.Buffer.byteLength(c);return this.uint32(d),d&&this._push(s,d,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var XSe=bl((tto,s3)=>{var nto=T(S());/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(u,m){m=m||{};var p=m.encodedMaskData||m.encodedMaskData===null,g=c(u,m.inputOffset||0,p),f=m.noDataValue!==null?m.noDataValue:o.defaultNoDataValue,x=r(g,m.pixelType||Float32Array,m.encodedMaskData,f,m.returnMask),_={width:g.width,height:g.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:g.pixels.maxValue,noDataValue:f};return x.resultMask&&(_.maskData=x.resultMask),m.returnEncodedMask&&g.mask&&(_.encodedMaskData=g.mask.bitset?g.mask.bitset:null),m.returnFileInfo&&(_.fileInfo=s(g),m.computeUsedBitDepths&&(_.fileInfo.bitDepths=a(g))),_};var r=function(u,m,p,g,f){var x=0,_=u.pixels.numBlocksX,C=u.pixels.numBlocksY,V=Math.floor(u.width/_),L=Math.floor(u.height/C),Z=2*u.maxZError,G=Number.MAX_VALUE,I;p=p||(u.mask?u.mask.bitset:null);var v,P;v=new m(u.width*u.height),f&&p&&(P=new Uint8Array(u.width*u.height));for(var w=new Float32Array(V*L),F,b,R=0;R<=C;R++){var E=R!==C?L:u.height%C;if(E!==0)for(var X=0;X<=_;X++){var A=X!==_?V:u.width%_;if(A!==0){var N=R*u.width*L+X*V,O=u.width-A,U=u.pixels.blocks[x],Y,k,H;U.encoding<2?(U.encoding===0?Y=U.rawData:(d(U.stuffedData,U.bitsPerPixel,U.numValidPixels,U.offset,Z,w,u.pixels.maxValue),Y=w),k=0):U.encoding===2?H=0:H=U.offset;var J;if(p)for(b=0;b>3],J<<=N&7),F=0;F>3]),J&128?(P&&(P[N]=1),I=U.encoding<2?Y[k++]:H,G=G>I?I:G,v[N++]=I):(P&&(P[N]=0),v[N++]=g),J<<=1;N+=O}else if(U.encoding<2)for(b=0;bI?I:G,v[N++]=I;N+=O}else for(G=G>H?H:G,b=0;b0){var _=new Uint8Array(Math.ceil(g.width*g.height/8));x=new DataView(u,m,g.mask.numBytes);var C=x.getInt16(0,!0),V=2,L=0;do{if(C>0)for(;C--;)_[L++]=x.getUint8(V++);else{var Z=x.getUint8(V++);for(C=-C;C--;)_[L++]=Z}C=x.getInt16(V,!0),V+=2}while(V0?1:0),P=I+(g.height%I>0?1:0);g.pixels.blocks=new Array(v*P);for(var w=0,F=0;F3)throw"Invalid block encoding ("+X.encoding+")";if(X.encoding===2){m++;continue}if(A!==0&&A!==2){if(A>>=6,X.offsetType=A,A===2)X.offset=x.getInt8(1),R++;else if(A===1)X.offset=x.getInt16(1,!0),R+=2;else if(A===0)X.offset=x.getFloat32(1,!0),R+=4;else throw"Invalid block offset type";if(X.encoding===1)if(A=x.getUint8(R),R++,X.bitsPerPixel=A&63,A>>=6,X.numValidPixelsType=A,A===2)X.numValidPixels=x.getUint8(R),R++;else if(A===1)X.numValidPixels=x.getUint16(R,!0),R+=2;else if(A===0)X.numValidPixels=x.getUint32(R,!0),R+=4;else throw"Invalid valid pixel count type"}if(m+=R,X.encoding!==3){var N,O;if(X.encoding===0){var U=(g.pixels.numBytes-1)/4;if(U!==Math.floor(U))throw"uncompressed block has invalid length";N=new ArrayBuffer(U*4),O=new Uint8Array(N),O.set(new Uint8Array(u,m,U*4));var Y=new Float32Array(N);X.rawData=Y,m+=U*4}else if(X.encoding===1){var k=Math.ceil(X.numValidPixels*X.bitsPerPixel/8),H=Math.ceil(k/4);N=new ArrayBuffer(H*4),O=new Uint8Array(N),O.set(new Uint8Array(u,m,k)),X.stuffedData=new Uint32Array(N),m+=k}}}return g.eofOffset=m,g},d=function(u,m,p,g,f,x,_){var C=(1<=m)G=I>>>Z-m&C,Z-=m;else{var w=m-Z;G=(I&C)<>>Z}x[L]=G=u?(Z=G>>>L-u&_,L-=u):(I=u-L,Z=(G&_)<>>L),d[V]=p[Z];else for(v=Math.ceil((x-g)/f),V=0;V=u?(Z=G>>>L-u&_,L-=u):(I=u-L,Z=(G&_)<>>L),d[V]=Z=d?(L=Z>>>V-d&f,V-=d):(C=d-V,L=(Z&f)<>>V),G[_]=L=u?(G=I>>>Z&_,L-=u,Z+=u):(v=u-L,G=I>>>Z&_,I=c[C++],L=32-v,G|=(I&(1<=u?(G=I>>>Z&_,L-=u,Z+=u):(v=u-L,G=I>>>Z&_,I=c[C++],L=32-v,G|=(I&(1<=d?(L=G>>>Z&f,V-=d,Z+=d):(C=d-V,L=G>>>Z&f,G=c[x++],V=32-C,L|=(G&(1<=u?(_=C>>>x-u&p,x-=u):(V=u-x,_=(C&p)<>>x),d[f]=_;return d},originalUnstuff2:function(c,d,u,m){var p=(1<=u?(C=V>>>_&p,x-=u,_+=u):(L=u-x,C=V>>>_&p,V=c[g++],x=32-L,C|=(V&(1<=359?359:p;p-=f;do d+=c[g++]<<8,u+=d+=c[g++];while(--f);d=(d&65535)+(d>>>16),u=(u&65535)+(u>>>16)}return m&1&&(u+=d+=c[g]<<8),d=(d&65535)+(d>>>16),u=(u&65535)+(u>>>16),(u<<16|d)>>>0},readHeaderInfo:function(c,d){var u=d.ptr,m=new Uint8Array(c,u,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,m),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;u+=6;var g=new DataView(c,u,8),f=g.getInt32(0,!0);p.fileVersion=f,u+=4,f>=3&&(p.checksum=g.getUint32(4,!0),u+=4),g=new DataView(c,u,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),u+=8,f>=4?(p.numDims=g.getUint32(8,!0),u+=4):p.numDims=1,g=new DataView(c,u,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),u+=40,d.headerInfo=p,d.ptr=u;var x,_;if(f>=3&&(_=f>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,u-_,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,d){var u=d.headerInfo,m=this.getDataTypeArray(u.imageType),p=u.numDims*this.getDataTypeSize(u.imageType),g=this.readSubArray(c,d.ptr,m,p),f=this.readSubArray(c,d.ptr+p,m,p);d.ptr+=2*p;var x,_=!0;for(x=0;x0){_=new Uint8Array(Math.ceil(p/8)),f=new DataView(c,u,x.numBytes);var V=f.getInt16(0,!0),L=2,Z=0,G=0;do{if(V>0)for(;V--;)_[Z++]=f.getUint8(L++);else for(G=f.getUint8(L++),V=-V;V--;)_[Z++]=G;V=f.getInt16(L,!0),L+=2}while(L>3],I<<=v&7):I=_[v>>3],I&128&&(C[v]=1);d.pixels.resultMask=C,x.bitset=_,u+=x.numBytes}return d.ptr=u,d.mask=x,!0},readDataOneSweep:function(c,d,u){var m=d.ptr,p=d.headerInfo,g=p.numDims,f=p.width*p.height,x=p.imageType,_=p.numValidPixel*r.getDataTypeSize(x)*g,C,V=d.pixels.resultMask;if(u===Uint8Array)C=new Uint8Array(c,m,_);else{var L=new ArrayBuffer(_),Z=new Uint8Array(L);Z.set(new Uint8Array(c,m,_)),C=new u(L)}if(C.length===f*g)d.pixels.resultPixels=C;else{d.pixels.resultPixels=new u(f*g);var G=0,I=0,v=0,P=0;if(g>1)for(v=0;v=x)return!1;var _=new Uint32Array(x-f);r.decodeBits(c,d,_);var C=[],V,L,Z,G;for(V=f;V0&&(C[L].second=R<>>32-G,32-b>=G?(b+=G,b===32&&(b=0,E++,R=F[E])):(b+=G-32,E++,R=F[E],C[L].second|=R>>>32-b));var X=0,A=0,N=new s;for(V=0;V=u?A=u:A=X,X>=30&&console.log("WARning, large NUM LUT BITS IS "+X);var O=[],U,Y,k,H,J,te;for(V=f;V0)if(U=[G,L],G<=A)for(Y=C[L].second<=0;H--)J=Y>>>H&1,J?(te.right||(te.right=new s),te=te.right):(te.left||(te.left=new s),te=te.left),H===0&&!te.val&&(te.val=U[1]);return{decodeLut:O,numBitsLUTQick:A,numBitsLUT:X,tree:N,stuffedData:F,srcPtr:E,bitPos:b}},readHuffman:function(c,d,u){var m=d.headerInfo,p=m.numDims,g=d.headerInfo.height,f=d.headerInfo.width,x=f*g,_=this.readHuffmanTree(c,d),C=_.decodeLut,V=_.tree,L=_.stuffedData,Z=_.srcPtr,G=_.bitPos,I=_.numBitsLUTQick,v=_.numBitsLUT,P=d.headerInfo.imageType===0?128:0,w,F,b,R=d.pixels.resultMask,E,X,A,N,O,U,Y,k=0;G>0&&(Z++,G=0);var H=L[Z],J=d.encodeMode===1,te=new u(x*p),z=te,q;for(q=0;q1&&(z=new u(te.buffer,x*q,x),k=0),d.headerInfo.numValidPixel===f*g)for(U=0,N=0;N>>32-I,X=E,32-G>>64-G-I,X=E),C[X])F=C[X][1],G+=C[X][0];else for(E=H<>>32-v,X=E,32-G>>64-G-v,X=E),w=V,Y=0;Y>>v-Y-1&1,w=A?w.right:w.left,!(w.left||w.right)){F=w.val,G=G+Y+1;break}G>=32&&(G-=32,Z++,H=L[Z]),b=F-P,J?(O>0?b+=k:N>0?b+=z[U-f]:b+=k,b&=255,z[U]=b,k=b):z[U]=b}else for(U=0,N=0;N>>32-I,X=E,32-G>>64-G-I,X=E),C[X])F=C[X][1],G+=C[X][0];else for(E=H<>>32-v,X=E,32-G>>64-G-v,X=E),w=V,Y=0;Y>>v-Y-1&1,w=A?w.right:w.left,!(w.left||w.right)){F=w.val,G=G+Y+1;break}G>=32&&(G-=32,Z++,H=L[Z]),b=F-P,J?(O>0&&R[U-1]?b+=k:N>0&&R[U-f]?b+=z[U-f]:b+=k,b&=255,z[U]=b,k=b):z[U]=b}d.ptr=d.ptr+(Z+1)*4+(G>0?4:0)}d.pixels.resultPixels=te},decodeBits:function(c,d,u,m,p){{var g=d.headerInfo,f=g.fileVersion,x=0,_=new DataView(c,d.ptr,5),C=_.getUint8(0);x++;var V=C>>6,L=V===0?4:3-V,Z=(C&32)>0,G=C&31,I=0;if(L===1)I=_.getUint8(x),x++;else if(L===2)I=_.getUint16(x,!0),x+=2;else if(L===4)I=_.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var v=2*g.maxZError,P,w,F,b,R,E,X,A,N,O,U=g.numDims>1?g.maxValues[p]:g.zMax;if(Z){for(d.counter.lut++,A=_.getUint8(x),N=G,x++,b=Math.ceil((A-1)*G/8),R=Math.ceil(b/4),w=new ArrayBuffer(R*4),F=new Uint8Array(w),d.ptr+=x,F.set(new Uint8Array(c,d.ptr,b)),X=new Uint32Array(w),d.ptr+=b,O=0;A-1>>>O;)O++;b=Math.ceil(I*O/8),R=Math.ceil(b/4),w=new ArrayBuffer(R*4),F=new Uint8Array(w),F.set(new Uint8Array(c,d.ptr,b)),P=new Uint32Array(w),d.ptr+=b,f>=3?E=o.unstuffLUT2(X,G,A-1,m,v,U):E=o.unstuffLUT(X,G,A-1,m,v,U),f>=3?o.unstuff2(P,u,O,I,E):o.unstuff(P,u,O,I,E)}else d.counter.bitstuffer++,O=G,d.ptr+=x,O>0&&(b=Math.ceil(I*O/8),R=Math.ceil(b/4),w=new ArrayBuffer(R*4),F=new Uint8Array(w),F.set(new Uint8Array(c,d.ptr,b)),P=new Uint32Array(w),d.ptr+=b,f>=3?m==null?o.originalUnstuff2(P,u,O,I):o.unstuff2(P,u,O,I,!1,m,v,U):m==null?o.originalUnstuff(P,u,O,I):o.unstuff(P,u,O,I,!1,m,v,U))}},readTiles:function(c,d,u){var m=d.headerInfo,p=m.width,g=m.height,f=m.microBlockSize,x=m.imageType,_=r.getDataTypeSize(x),C=Math.ceil(p/f),V=Math.ceil(g/f);d.pixels.numBlocksY=V,d.pixels.numBlocksX=C,d.pixels.ptr=0;var L=0,Z=0,G=0,I=0,v=0,P=0,w=0,F=0,b=0,R=0,E=0,X=0,A=0,N=0,O=0,U=0,Y,k,H,J,te,z,q=new u(f*f),ee=g%f||f,fe=p%f||f,_e,le,ye=m.numDims,Te,Xe=d.pixels.resultMask,Le=d.pixels.resultPixels;for(G=0;G1&&(Le=new u(d.pixels.resultPixels.buffer,p*g*Te*_,p*g)),w=c.byteLength-d.ptr,Y=new DataView(c,d.ptr,Math.min(10,w)),k={},U=0,F=Y.getUint8(0),U++,b=F>>6&255,R=F>>2&15,R!==(I*f>>3&15))throw"integrity issue";if(z=F&3,z>3)throw d.ptr+=U,"Invalid block encoding ("+z+")";if(z===2){d.counter.constant++,d.ptr+=U;continue}else if(z===0){if(d.counter.uncompressed++,d.ptr+=U,A=v*P*_,N=c.byteLength-d.ptr,A=A1)for(g=0;g=-128&&d<=127;break;case 1:u=d>=0&&d<=255;break;case 2:u=d>=-32768&&d<=32767;break;case 3:u=d>=0&&d<=65536;break;case 4:u=d>=-2147483648&&d<=2147483647;break;case 5:u=d>=0&&d<=4294967296;break;case 6:u=d>=-34027999387901484e22&&d<=34027999387901484e22;break;case 7:u=d>=5e-324&&d<=17976931348623157e292;break;default:u=!1}return u},getDataTypeSize:function(c){var d=0;switch(c){case 0:case 1:d=1;break;case 2:case 3:d=2;break;case 4:case 5:case 6:d=4;break;case 7:d=8;break;default:d=c}return d},getDataTypeUsed:function(c,d){var u=c;switch(c){case 2:case 4:u=c-d;break;case 3:case 5:u=c-2*d;break;case 6:d===0?u=c:d===1?u=2:u=1;break;case 7:d===0?u=c:u=c-2*d+1;break;default:u=c;break}return u},getOnePixel:function(c,d,u,m){var p=0;switch(u){case 0:p=m.getInt8(d);break;case 1:p=m.getUint8(d);break;case 2:p=m.getInt16(d,!0);break;case 3:p=m.getUint16(d,!0);break;case 4:p=m.getInt32(d,!0);break;case 5:p=m.getUInt32(d,!0);break;case 6:p=m.getFloat32(d,!0);break;case 7:p=m.getFloat64(d,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,d,u){this.val=c,this.left=d,this.right=u},a={decode:function(c,d){d=d||{};var u=d.noDataValue,m=0,p={};if(p.ptr=d.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,f=g.fileVersion,x=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=d.maskData);var _=g.width*g.height;if(p.pixels.resultPixels=new x(_*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(f>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var C=new DataView(c,p.ptr,2),V=C.getUint8(0);if(p.ptr++,V)r.readDataOneSweep(c,p,x);else if(f>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var L=C.getUint8(1);if(p.ptr++,p.encodeMode=L,L>2||f<4&&L>1)throw"Invalid Huffman flag "+L;L?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var Z;d.inputOffset?(Z=p.headerInfo.blobSize+d.inputOffset-p.ptr,Math.abs(Z)>=1&&(p.eofOffset=d.inputOffset+p.headerInfo.blobSize)):(Z=p.headerInfo.blobSize-p.ptr,Math.abs(Z)>=1&&(p.eofOffset=p.headerInfo.blobSize));var G={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,u)){var I=p.pixels.resultMask;for(m=0;m<_;m++)I[m]||(G.pixelData[m]=u);G.noDataValue=u}return p.noDataValue=u,d.returnFileInfo&&(G.fileInfo=r.formatFileInfo(p)),G}},getBandCount:function(c){var d=0,u=0,m={};for(m.ptr=0,m.pixels={};u1&&V.fileInfo.mask&&V.fileInfo.mask.numBytes>0&&f.push(V.maskData),m++,C.pixels.push(V.pixelData),C.statistics.push({minValue:V.minValue,maxValue:V.maxValue,noDataValue:V.noDataValue,dimStats:V.dimStats})}var L,Z,G;if(u>1&&f.length>1){for(G=C.width*C.height,C.bandMasks=f,_=new Uint8Array(G),_.set(f[0]),L=1;L{var CGo=T(S());xCe.exports={webm:"data:video/webm;base64,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",mp4:"data:video/mp4;base64,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"}});var SCe=bl((VGo,TCe)=>{var LGo=T(S()),{webm:t1t,mp4:n1t}=_Ce(),B6=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,O6=()=>"wakeLock"in navigator,Y6=class{constructor(){if(this.enabled=!1,O6()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else B6()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",t1t),this._addSourceToVideo(this.noSleepVideo,"mp4",n1t),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return O6()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):B6()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){O6()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):B6()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};TCe.exports=Y6});var L1t={};OCe(L1t,{AlphaMode:()=>af,AlphaPipelineStage:()=>dW,AnchorPointDirect:()=>fX,AnchorPointIndirect:()=>pX,Animation:()=>QM,AnimationViewModel:()=>jM,Appearance:()=>eo,ApproximateTerrainHeights:()=>li,ArcGISTiledElevationTerrainProvider:()=>D8,ArcGisBaseMapType:()=>Ch,ArcGisMapServerImageryProvider:()=>$b,ArcGisMapService:()=>Od,ArcType:()=>nn,ArticulationStageType:()=>dc,AssociativeArray:()=>Zt,Atmosphere:()=>u_,AtmospherePipelineStage:()=>OX,AttributeCompression:()=>wn,AttributeType:()=>sn,AutoExposure:()=>jF,AutomaticUniforms:()=>dp,Axis:()=>Xo,AxisAlignedBoundingBox:()=>M0,B3dmLoader:()=>GX,B3dmParser:()=>LX,BaseLayerPicker:()=>$M,BaseLayerPickerViewModel:()=>qM,BatchTable:()=>_x,BatchTableHierarchy:()=>Bx,BatchTexture:()=>Bc,BatchTexturePipelineStage:()=>uW,Billboard:()=>so,BillboardCollection:()=>Sd,BillboardGraphics:()=>tc,BillboardVisualizer:()=>sE,BingMapsGeocoderService:()=>O8,BingMapsImageryProvider:()=>gw,BingMapsStyle:()=>IV,BlendEquation:()=>Ga,BlendFunction:()=>Co,BlendOption:()=>Lo,BlendingState:()=>un,BoundingRectangle:()=>Ke,BoundingSphere:()=>ce,BoundingSphereState:()=>ft,BoundingVolumeSemantics:()=>s_,BoxEmitter:()=>W7,BoxGeometry:()=>Ra,BoxGeometryUpdater:()=>gI,BoxGraphics:()=>Gx,BoxOutlineGeometry:()=>Lm,BrdfLutGenerator:()=>Qw,Buffer:()=>xt,BufferLoader:()=>Jx,BufferUsage:()=>Me,CPUStylingPipelineStage:()=>pW,CallbackPositionProperty:()=>yI,CallbackProperty:()=>Xm,Camera:()=>io,CameraEventAggregator:()=>oA,CameraEventType:()=>Pi,CameraFlightPath:()=>qw,Cartesian2:()=>D,Cartesian3:()=>h,Cartesian4:()=>se,Cartographic:()=>he,CartographicGeocoderService:()=>H8,CatmullRomSpline:()=>z8,Cesium3DContentGroup:()=>Dx,Cesium3DTile:()=>ku,Cesium3DTileBatchTable:()=>Ap,Cesium3DTileColorBlendMode:()=>Gl,Cesium3DTileContent:()=>P7,Cesium3DTileContentFactory:()=>L_,Cesium3DTileContentState:()=>Do,Cesium3DTileContentType:()=>Vs,Cesium3DTileFeature:()=>Ns,Cesium3DTileFeatureTable:()=>Om,Cesium3DTileOptimizationHint:()=>vu,Cesium3DTileOptimizations:()=>q2,Cesium3DTilePass:()=>wo,Cesium3DTilePassState:()=>rm,Cesium3DTilePointFeature:()=>ub,Cesium3DTileRefine:()=>No,Cesium3DTileStyle:()=>dS,Cesium3DTileStyleEngine:()=>oP,Cesium3DTilesInspector:()=>r9,Cesium3DTilesInspectorViewModel:()=>o9,Cesium3DTilesVoxelProvider:()=>v7,Cesium3DTileset:()=>ua,Cesium3DTilesetBaseTraversal:()=>dP,Cesium3DTilesetCache:()=>tP,Cesium3DTilesetGraphics:()=>wx,Cesium3DTilesetHeatmap:()=>nP,Cesium3DTilesetMetadata:()=>w_,Cesium3DTilesetMostDetailedTraversal:()=>aP,Cesium3DTilesetSkipTraversal:()=>hP,Cesium3DTilesetStatistics:()=>Lb,Cesium3DTilesetTraversal:()=>Ys,Cesium3DTilesetVisualizer:()=>fP,CesiumInspector:()=>c9,CesiumInspectorViewModel:()=>a9,CesiumTerrainProvider:()=>oS,CesiumWidget:()=>nM,Check:()=>go,CheckerboardMaterialProperty:()=>b1,CircleEmitter:()=>SM,CircleGeometry:()=>$8,CircleOutlineGeometry:()=>e7,ClassificationModelDrawCommand:()=>a2,ClassificationPipelineStage:()=>mW,ClassificationPrimitive:()=>nC,ClassificationType:()=>kn,ClearCommand:()=>ei,ClippingPlane:()=>a_,ClippingPlaneCollection:()=>hs,ClippingPolygon:()=>XC,ClippingPolygonCollection:()=>km,Clock:()=>oh,ClockRange:()=>Br,ClockStep:()=>mo,ClockViewModel:()=>HM,CloudCollection:()=>k7,CloudType:()=>RL,Color:()=>B,ColorBlendMode:()=>lc,ColorGeometryInstanceAttribute:()=>Kt,ColorMaterialProperty:()=>Yt,Command:()=>E6,ComponentDatatype:()=>Q,Composite3DTileContent:()=>SI,CompositeEntityCollection:()=>LK,CompositeMaterialProperty:()=>y1,CompositePositionProperty:()=>ma,CompositeProperty:()=>pc,CompressedTextureBuffer:()=>aR,ComputeCommand:()=>Xc,ComputeEngine:()=>sR,ConditionsExpression:()=>yM,ConeEmitter:()=>D7,ConstantPositionProperty:()=>Nc,ConstantProperty:()=>Jn,ConstantSpline:()=>WX,ContentMetadata:()=>B2,Context:()=>$G,ContextLimits:()=>Bt,CoplanarPolygonGeometry:()=>qP,CoplanarPolygonGeometryLibrary:()=>xb,CoplanarPolygonOutlineGeometry:()=>Nu,CornerType:()=>Ei,CorrelationGroup:()=>bX,CorridorGeometry:()=>U_,CorridorGeometryLibrary:()=>ki,CorridorGeometryUpdater:()=>CP,CorridorGraphics:()=>Ix,CorridorOutlineGeometry:()=>SP,Credit:()=>Et,CreditDisplay:()=>nF,CubeMap:()=>yr,CubeMapFace:()=>gR,CubicRealPolynomial:()=>sx,CullFace:()=>yi,CullingVolume:()=>ms,CumulusCloud:()=>nu,CustomDataSource:()=>EP,CustomHeightmapTerrainProvider:()=>t7,CustomShader:()=>QT,CustomShaderMode:()=>cb,CustomShaderPipelineStage:()=>SW,CustomShaderTranslucencyMode:()=>Tg,CylinderGeometry:()=>IP,CylinderGeometryLibrary:()=>D_,CylinderGeometryUpdater:()=>WP,CylinderGraphics:()=>Xx,CylinderOutlineGeometry:()=>XP,CzmlDataSource:()=>DP,DataSource:()=>Dr,DataSourceClock:()=>rh,DataSourceCollection:()=>BP,DataSourceDisplay:()=>Zv,DebugAppearance:()=>B7,DebugCameraPrimitive:()=>Of,DebugInspector:()=>mA,DebugModelMatrixPrimitive:()=>VM,DefaultProxy:()=>n7,DepthFunction:()=>nc,DepthPlane:()=>dF,DequantizationPipelineStage:()=>VW,DerivedCommand:()=>Yf,DeveloperError:()=>pe,DeviceOrientationCameraController:()=>uF,DirectionalLight:()=>O7,DiscardEmptyTileImagePolicy:()=>XV,DiscardMissingTileImagePolicy:()=>pw,DistanceDisplayCondition:()=>At,DistanceDisplayConditionGeometryInstanceAttribute:()=>Nn,DoubleEndedPriorityQueue:()=>KT,DoublyLinkedList:()=>eP,DracoLoader:()=>Op,DrawCommand:()=>tt,DynamicAtmosphereLightingType:()=>Jp,DynamicEnvironmentMapManager:()=>jp,DynamicGeometryBatch:()=>Q_,DynamicGeometryUpdater:()=>ni,EarthOrientationParameters:()=>jL,EarthOrientationParametersSample:()=>C0,EasingFunction:()=>Yr,EllipseGeometry:()=>$c,EllipseGeometryLibrary:()=>Ul,EllipseGeometryUpdater:()=>YP,EllipseGraphics:()=>Wx,EllipseOutlineGeometry:()=>Pd,Ellipsoid:()=>ne,EllipsoidGeodesic:()=>Rp,EllipsoidGeometry:()=>zs,EllipsoidGeometryUpdater:()=>zP,EllipsoidGraphics:()=>Px,EllipsoidOutlineGeometry:()=>Vd,EllipsoidPrimitive:()=>Ow,EllipsoidRhumbLine:()=>Ea,EllipsoidSurfaceAppearance:()=>Y7,EllipsoidTangentPlane:()=>Kr,EllipsoidTerrainProvider:()=>kf,EllipsoidalOccluder:()=>Xb,Empty3DTileContent:()=>i1,EncodedCartesian3:()=>On,Entity:()=>jo,EntityCluster:()=>Zd,EntityCollection:()=>Hs,EntityView:()=>Ev,Event:()=>be,EventHelper:()=>lr,Expression:()=>Tu,ExpressionNodeType:()=>gt,ExtrapolationType:()=>Ed,FeatureDetection:()=>zt,FeatureIdPipelineStage:()=>_g,Fog:()=>mF,ForEach:()=>Pe,FrameRateMonitor:()=>ZM,FrameState:()=>hF,Framebuffer:()=>Wr,FramebufferManager:()=>fi,FrustumCommands:()=>yF,FrustumGeometry:()=>ZT,FrustumOutlineGeometry:()=>rF,Fullscreen:()=>pr,FullscreenButton:()=>d9,FullscreenButtonViewModel:()=>l9,GeoJsonDataSource:()=>Wv,GeoJsonLoader:()=>EX,GeocodeType:()=>Py,Geocoder:()=>m9,GeocoderService:()=>TL,GeocoderViewModel:()=>u9,GeographicProjection:()=>Ri,GeographicTilingScheme:()=>Yi,Geometry:()=>ht,Geometry3DTileContent:()=>VI,GeometryAttribute:()=>Ze,GeometryAttributes:()=>mn,GeometryFactory:()=>i7,GeometryInstance:()=>Gt,GeometryInstanceAttribute:()=>ic,GeometryOffsetAttribute:()=>cn,GeometryPipeline:()=>Fn,GeometryPipelineStage:()=>GW,GeometryType:()=>du,GeometryUpdater:()=>ii,GeometryUpdaterSet:()=>aT,GeometryVisualizer:()=>pv,GetFeatureInfoFormat:()=>CT,Globe:()=>kw,GlobeDepth:()=>xF,GlobeSurfaceShaderSet:()=>fw,GlobeSurfaceTile:()=>nm,GlobeSurfaceTileProvider:()=>Iw,GlobeTranslucency:()=>Xw,GlobeTranslucencyFramebuffer:()=>_F,GlobeTranslucencyState:()=>fF,GltfBufferViewLoader:()=>pC,GltfDracoLoader:()=>bC,GltfGpmLoader:()=>yX,GltfGpmLocal:()=>PC,GltfImageLoader:()=>gC,GltfIndexBufferLoader:()=>yC,GltfJsonLoader:()=>_C,GltfLoader:()=>eb,GltfLoaderUtil:()=>Wl,GltfMeshPrimitiveGpmLoader:()=>SX,GltfStructuralMetadataLoader:()=>mX,GltfTextureLoader:()=>TC,GltfVertexBufferLoader:()=>SC,GoogleEarthEnterpriseImageryProvider:()=>z7,GoogleEarthEnterpriseMapsProvider:()=>_w,GoogleEarthEnterpriseMetadata:()=>g0,GoogleEarthEnterpriseTerrainData:()=>SL,GoogleEarthEnterpriseTerrainProvider:()=>u7,GoogleEarthEnterpriseTileInformation:()=>dM,GoogleMaps:()=>sS,GpxDataSource:()=>Fv,GregorianDate:()=>mp,GridImageryProvider:()=>K7,GridMaterialProperty:()=>G1,GroundGeometryUpdater:()=>Yn,GroundPolylineGeometry:()=>Vx,GroundPolylinePrimitive:()=>Rm,GroundPrimitive:()=>Ac,GroupMetadata:()=>h1,HeadingPitchRange:()=>Qu,HeadingPitchRoll:()=>Ca,Heap:()=>zL,HeightReference:()=>Qe,HeightmapEncoding:()=>$u,HeightmapTerrainData:()=>Ma,HeightmapTessellator:()=>LV,HermitePolynomialApproximation:()=>PP,HermiteSpline:()=>gg,HilbertOrder:()=>uC,HomeButton:()=>f9,HomeButtonViewModel:()=>h9,HorizontalOrigin:()=>gi,I3SBuildingSceneLayerExplorer:()=>M6,I3SBuildingSceneLayerExplorerViewModel:()=>p9,I3SDataProvider:()=>Fh,I3SDecoder:()=>GM,I3SFeature:()=>EM,I3SField:()=>IM,I3SGeometry:()=>ZL,I3SLayer:()=>pS,I3SNode:()=>GL,I3SStatistics:()=>PM,I3SSublayer:()=>wM,I3SSymbology:()=>WM,I3dmLoader:()=>XX,I3dmParser:()=>IX,Iau2000Orientation:()=>Dw,Iau2006XysData:()=>qL,Iau2006XysSample:()=>nx,IauOrientationAxes:()=>Bw,IauOrientationParameters:()=>Uw,ImageBasedLighting:()=>Ux,ImageBasedLightingPipelineStage:()=>HX,ImageMaterialProperty:()=>D0,Imagery:()=>AV,ImageryLayer:()=>ka,ImageryLayerCollection:()=>Ww,ImageryLayerFeatureInfo:()=>Sh,ImageryProvider:()=>ol,ImageryState:()=>ai,Implicit3DTileContent:()=>LC,ImplicitAvailabilityBitstream:()=>hC,ImplicitMetadataView:()=>fC,ImplicitSubdivisionScheme:()=>jr,ImplicitSubtree:()=>o_,ImplicitSubtreeCache:()=>_M,ImplicitSubtreeMetadata:()=>LI,ImplicitTileCoordinates:()=>M_,ImplicitTileset:()=>A_,IndexDatatype:()=>Ae,InfoBox:()=>g9,InfoBoxViewModel:()=>b9,InspectorShared:()=>Ba,InstanceAttributeSemantic:()=>$r,InstancingPipelineStage:()=>sW,InterpolationAlgorithm:()=>m7,InterpolationType:()=>Dm,Intersect:()=>Jt,IntersectionTests:()=>qn,Intersections2D:()=>p0,Interval:()=>La,InvertClassification:()=>QV,Ion:()=>Pm,IonGeocoderService:()=>hM,IonImageryProvider:()=>e0,IonResource:()=>fd,IonWorldImageryStyle:()=>t0,Iso8601:()=>Be,JobScheduler:()=>pF,JobType:()=>Wa,JsonMetadataTable:()=>qp,JulianDate:()=>j,KTX2Transcoder:()=>cR,KeyboardEventModifier:()=>ea,KeyframeNode:()=>ji,KmlCamera:()=>Av,KmlDataSource:()=>lw,KmlLookAt:()=>nw,KmlTour:()=>iw,KmlTourFlyTo:()=>rw,KmlTourWait:()=>sw,Label:()=>Zg,LabelCollection:()=>ff,LabelGraphics:()=>Gm,LabelStyle:()=>Uo,LabelVisualizer:()=>bv,LagrangePolynomialApproximation:()=>vP,LeapSecond:()=>Bi,Light:()=>q7,LightingModel:()=>df,LightingPipelineStage:()=>IW,LinearApproximation:()=>O_,LinearSpline:()=>bg,ManagedArray:()=>Dc,MapMode2D:()=>Ql,MapProjection:()=>p7,MapboxImageryProvider:()=>Tw,MapboxStyleImageryProvider:()=>$7,Material:()=>Oi,MaterialAppearance:()=>oo,MaterialPipelineStage:()=>WW,MaterialProperty:()=>Qo,Math:()=>W,Matrix2:()=>wi,Matrix3:()=>$,Matrix4:()=>M,Megatexture:()=>iL,MeshPrimitiveGpmLocal:()=>TX,MetadataClass:()=>Am,MetadataClassProperty:()=>j0,MetadataComponentType:()=>Ht,MetadataEntity:()=>Mn,MetadataEnum:()=>YI,MetadataEnumValue:()=>OI,MetadataPicking:()=>bF,MetadataPickingPipelineStage:()=>_d,MetadataPipelineStage:()=>Lu,MetadataSchema:()=>yd,MetadataSchemaLoader:()=>CC,MetadataSemantic:()=>r_,MetadataTable:()=>Il,MetadataTableProperty:()=>ZI,MetadataType:()=>Rt,MipmapHint:()=>Qh,Model:()=>zm,Model3DTileContent:()=>uf,ModelAlphaOptions:()=>QW,ModelAnimation:()=>FX,ModelAnimationChannel:()=>wX,ModelAnimationCollection:()=>AX,ModelAnimationLoop:()=>vl,ModelAnimationState:()=>Ym,ModelArticulation:()=>KX,ModelArticulationStage:()=>zX,ModelClippingPlanesPipelineStage:()=>jX,ModelClippingPolygonsPipelineStage:()=>eW,ModelColorPipelineStage:()=>xg,ModelComponents:()=>Tn,ModelDrawCommand:()=>c2,ModelDrawCommands:()=>u2,ModelFeature:()=>MX,ModelFeatureTable:()=>kX,ModelGraphics:()=>Xp,ModelLightingOptions:()=>o2,ModelMatrixUpdateStage:()=>aW,ModelNode:()=>tW,ModelRenderResources:()=>jW,ModelRuntimeNode:()=>lW,ModelRuntimePrimitive:()=>KW,ModelSceneGraph:()=>m2,ModelSilhouettePipelineStage:()=>e2,ModelSkin:()=>JW,ModelSplitterPipelineStage:()=>n2,ModelStatistics:()=>h2,ModelType:()=>ar,ModelUtility:()=>qt,ModelVisualizer:()=>gv,Moon:()=>Hw,MorphTargetsPipelineStage:()=>vW,MorphWeightSpline:()=>b7,MortonOrder:()=>Pg,Multiple3DTileContent:()=>H2,MultisampleFramebuffer:()=>eE,NavigationHelpButton:()=>x9,NavigationHelpButtonViewModel:()=>y9,NearFarScalar:()=>Ut,NeverTileDiscardPolicy:()=>t6,NodeRenderResources:()=>i2,NodeStatisticsPipelineStage:()=>cW,NodeTransformationProperty:()=>vx,OIT:()=>SF,Occluder:()=>zw,OffsetGeometryInstanceAttribute:()=>Qi,OpenCageGeocoderService:()=>y7,OpenStreetMapImageryProvider:()=>x0,OrderedGroundPrimitiveCollection:()=>OP,OrientedBoundingBox:()=>En,OrthographicFrustum:()=>an,OrthographicOffCenterFrustum:()=>Pr,Packable:()=>x7,PackableForInterpolation:()=>_7,Particle:()=>XL,ParticleBurst:()=>i6,ParticleEmitter:()=>o6,ParticleSystem:()=>r6,Pass:()=>Ge,PassState:()=>ec,PathGraphics:()=>Wp,PathVisualizer:()=>xv,PeliasGeocoderService:()=>mM,PerInstanceColorAppearance:()=>dn,PerformanceDisplay:()=>r0,PerformanceWatchdog:()=>T9,PerformanceWatchdogViewModel:()=>_9,PerspectiveFrustum:()=>Li,PerspectiveOffCenterFrustum:()=>sl,PickDepth:()=>gF,PickDepthFramebuffer:()=>VF,PickFramebuffer:()=>RF,PickedMetadataInfo:()=>MA,Picking:()=>XF,PickingPipelineStage:()=>wW,PinBuilder:()=>Yb,PixelDatatype:()=>qe,PixelFormat:()=>ot,Plane:()=>ln,PlaneGeometry:()=>KP,PlaneGeometryUpdater:()=>QP,PlaneGraphics:()=>dI,PlaneOutlineGeometry:()=>JP,PntsLoader:()=>p2,PntsParser:()=>x_,PointCloud:()=>eM,PointCloudEyeDomeLighting:()=>tb,PointCloudShading:()=>lf,PointCloudStylingPipelineStage:()=>AW,PointGraphics:()=>Fx,PointPrimitive:()=>Rs,PointPrimitiveCollection:()=>C1,PointVisualizer:()=>Tv,PolygonGeometry:()=>Kp,PolygonGeometryLibrary:()=>Dn,PolygonGeometryUpdater:()=>ev,PolygonGraphics:()=>Em,PolygonHierarchy:()=>Ia,PolygonOutlineGeometry:()=>$P,PolygonPipeline:()=>si,Polyline:()=>Xu,PolylineArrowMaterialProperty:()=>I1,PolylineCollection:()=>Jm,PolylineColorAppearance:()=>Jr,PolylineDashMaterialProperty:()=>W1,PolylineGeometry:()=>Ob,PolylineGeometryUpdater:()=>Vv,PolylineGlowMaterialProperty:()=>v1,PolylineGraphics:()=>oc,PolylineMaterialAppearance:()=>sa,PolylineOutlineMaterialProperty:()=>Ug,PolylinePipeline:()=>Gi,PolylineVisualizer:()=>Rv,PolylineVolumeGeometry:()=>iv,PolylineVolumeGeometryLibrary:()=>eh,PolylineVolumeGeometryUpdater:()=>av,PolylineVolumeGraphics:()=>Ax,PolylineVolumeOutlineGeometry:()=>sv,PositionProperty:()=>Zm,PositionPropertyArray:()=>wb,PostProcessStage:()=>lo,PostProcessStageCollection:()=>eA,PostProcessStageComposite:()=>cl,PostProcessStageLibrary:()=>Kd,PostProcessStageSampleMode:()=>zd,PostProcessStageTextureCache:()=>NT,PpeMetadata:()=>_X,PpeSource:()=>L6,PpeTexture:()=>xX,Primitive:()=>In,PrimitiveCollection:()=>kl,PrimitiveLoadPlan:()=>f_,PrimitiveOutlineGenerator:()=>h_,PrimitiveOutlinePipelineStage:()=>kW,PrimitivePipeline:()=>Tx,PrimitiveRenderResources:()=>r2,PrimitiveState:()=>Tr,PrimitiveStatisticsPipelineStage:()=>UW,PrimitiveType:()=>Fe,ProjectionPicker:()=>C9,ProjectionPickerViewModel:()=>S9,Property:()=>K,PropertyArray:()=>F1,PropertyAttribute:()=>m_,PropertyAttributeProperty:()=>cX,PropertyBag:()=>Rl,PropertyTable:()=>Yc,PropertyTexture:()=>$p,PropertyTextureProperty:()=>aX,ProviderViewModel:()=>rs,Proxy:()=>T7,QuadraticRealPolynomial:()=>Wc,QuadtreeOccluders:()=>Pw,QuadtreePrimitive:()=>Nw,QuadtreeTile:()=>vw,QuadtreeTileLoadState:()=>js,QuadtreeTileProvider:()=>s6,QuantizedMeshTerrainData:()=>iS,QuarticRealPolynomial:()=>uR,Quaternion:()=>we,QuaternionSpline:()=>vX,Queue:()=>lg,Ray:()=>pn,Rectangle:()=>ae,RectangleCollisionChecker:()=>lT,RectangleGeometry:()=>tT,RectangleGeometryLibrary:()=>Ls,RectangleGeometryUpdater:()=>cv,RectangleGraphics:()=>Im,RectangleOutlineGeometry:()=>G_,ReferenceFrame:()=>Ai,ReferenceProperty:()=>Fb,RenderState:()=>Ue,Renderbuffer:()=>cd,RenderbufferFormat:()=>vc,Request:()=>Ho,RequestErrorEvent:()=>Dh,RequestScheduler:()=>ja,RequestState:()=>jn,RequestType:()=>cs,Resource:()=>Ee,ResourceCache:()=>Ci,ResourceCacheKey:()=>Pl,ResourceCacheStatistics:()=>KI,ResourceLoader:()=>Hi,ResourceLoaderState:()=>yt,Rotation:()=>Ou,RuntimeError:()=>de,S2Cell:()=>kp,SDFSettings:()=>Bs,SampledPositionProperty:()=>fa,SampledProperty:()=>Xd,Sampler:()=>en,ScaledPositionProperty:()=>Lf,Scene:()=>NA,SceneFramebuffer:()=>WT,SceneMode:()=>oe,SceneMode2DPipelineStage:()=>DW,SceneModePicker:()=>L9,SceneModePickerViewModel:()=>V9,SceneTransforms:()=>Mi,SceneTransitioner:()=>iA,ScreenSpaceCameraController:()=>aA,ScreenSpaceEventHandler:()=>Qd,ScreenSpaceEventType:()=>Sn,SelectedFeatureIdPipelineStage:()=>Sg,SelectionIndicator:()=>G9,SelectionIndicatorViewModel:()=>Z9,SensorVolumePortionToDisplay:()=>k1,ShaderBuilder:()=>px,ShaderCache:()=>KG,ShaderDestination:()=>ge,ShaderFunction:()=>iE,ShaderProgram:()=>tn,ShaderSource:()=>De,ShaderStruct:()=>nE,ShadowMap:()=>c0,ShadowMapShader:()=>Kf,ShadowMode:()=>_n,ShadowVolumeAppearance:()=>ud,ShowGeometryInstanceAttribute:()=>xn,Simon1994PlanetaryPositions:()=>v0,SimplePolylineGeometry:()=>S7,SingleTileImageryProvider:()=>Sw,SkinningPipelineStage:()=>OW,SkyAtmosphere:()=>DA,SkyBox:()=>YA,SpatialNode:()=>PA,Spdcf:()=>gX,SpecularEnvironmentCubeMap:()=>Wm,SphereEmitter:()=>c6,SphereGeometry:()=>C7,SphereOutlineGeometry:()=>Tb,Spherical:()=>wP,Spline:()=>to,SplitDirection:()=>vr,Splitter:()=>uL,StaticGeometryColorBatch:()=>zu,StaticGeometryPerMaterialBatch:()=>Ku,StaticGroundGeometryColorBatch:()=>oV,StaticGroundGeometryPerMaterialBatch:()=>fv,StaticGroundPolylinePerMaterialBatch:()=>Lv,StaticOutlineGeometryBatch:()=>aV,StencilConstants:()=>Ot,StencilFunction:()=>Un,StencilOperation:()=>bt,SteppedSpline:()=>PX,Stereographic:()=>cc,StorageType:()=>mg,StripeMaterialProperty:()=>M1,StripeOrientation:()=>ah,StructuralMetadata:()=>Us,StyleCommandsNeeded:()=>Hm,StyleExpression:()=>l6,Sun:()=>jA,SunLight:()=>Tp,SunPostProcess:()=>dA,SupportedImageFormats:()=>hX,SvgPathBindingHandler:()=>OM,TaskProcessor:()=>bi,Terrain:()=>MM,TerrainData:()=>Th,TerrainEncoding:()=>_c,TerrainFillMesh:()=>UV,TerrainMesh:()=>tm,TerrainOffsetProperty:()=>Mx,TerrainProvider:()=>ts,TerrainQuantization:()=>Qs,TerrainState:()=>co,Texture:()=>Pt,TextureAtlas:()=>Rg,TextureCache:()=>JG,TextureMagnificationFilter:()=>hi,TextureManager:()=>wA,TextureMinificationFilter:()=>$t,TextureUniform:()=>C6,TextureWrap:()=>Cn,TileAvailability:()=>Xh,TileBoundingRegion:()=>Mu,TileBoundingS2Cell:()=>Q2,TileBoundingSphere:()=>Sb,TileBoundingVolume:()=>d6,TileCoordinatesImageryProvider:()=>kM,TileDiscardPolicy:()=>m6,TileEdge:()=>gn,TileImagery:()=>MV,TileMapServiceImageryProvider:()=>gy,TileMetadata:()=>O2,TileOrientedBoundingBox:()=>Ld,TileProviderError:()=>Zo,TileReplacementQueue:()=>ww,TileSelectionResult:()=>Kn,TileState:()=>h6,Tileset3DTileContent:()=>y2,TilesetMetadata:()=>j2,TilesetPipelineStage:()=>UX,TilingScheme:()=>V7,TimeConstants:()=>zn,TimeDynamicImagery:()=>VT,TimeDynamicPointCloud:()=>hL,TimeInterval:()=>Vn,TimeIntervalCollection:()=>Ur,TimeIntervalCollectionPositionProperty:()=>Ab,TimeIntervalCollectionProperty:()=>Mb,TimeStandard:()=>Hn,Timeline:()=>X9,TimelineHighlightRange:()=>E9,TimelineTrack:()=>I9,Tipsify:()=>mR,ToggleButtonViewModel:()=>Ny,Tonemapper:()=>d0,Transforms:()=>Ft,TranslationRotationScale:()=>B0,TranslucentTileClassification:()=>GF,TridiagonalSystemSolver:()=>kC,TrustedServers:()=>AS,TweenCollection:()=>BT,UniformState:()=>qG,UniformType:()=>rL,UrlTemplateImageryProvider:()=>Na,VERSION:()=>V1t,VRButton:()=>P9,VRButtonViewModel:()=>W9,VRTheWorldTerrainProvider:()=>L7,VaryingType:()=>V6,Vector3DTileBatch:()=>nf,Vector3DTileClampedPolylines:()=>k2,Vector3DTileContent:()=>D2,Vector3DTileGeometry:()=>Np,Vector3DTilePoints:()=>P2,Vector3DTilePolygons:()=>v2,Vector3DTilePolylines:()=>V_,Vector3DTilePrimitive:()=>Hx,VelocityOrientationProperty:()=>AP,VelocityVectorProperty:()=>K_,VertexArray:()=>ti,VertexArrayFacade:()=>Sp,VertexAttributeSemantic:()=>Vt,VertexFormat:()=>We,VerticalExaggeration:()=>_r,VerticalExaggerationPipelineStage:()=>HW,VerticalOrigin:()=>Pn,VideoSynchronizer:()=>R7,View:()=>wT,Viewer:()=>z6,ViewportQuad:()=>f6,Visibility:()=>mr,Visualizer:()=>R4,VoxelBoxShape:()=>qf,VoxelCell:()=>hA,VoxelContent:()=>TM,VoxelCylinderShape:()=>$f,VoxelEllipsoidShape:()=>zT,VoxelInspector:()=>w9,VoxelInspectorViewModel:()=>v9,VoxelPrimitive:()=>Gy,VoxelProvider:()=>b6,VoxelRenderResources:()=>GA,VoxelShape:()=>g6,VoxelShapeType:()=>vi,VoxelTraversal:()=>oL,VulkanConstants:()=>Z7,WallGeometry:()=>dv,WallGeometryLibrary:()=>nT,WallGeometryUpdater:()=>hv,WallGraphics:()=>Pp,WallOutlineGeometry:()=>mv,WebGLConstants:()=>ie,WebMapServiceImageryProvider:()=>Vw,WebMapTileServiceImageryProvider:()=>Rw,WebMercatorProjection:()=>Zi,WebMercatorTilingScheme:()=>ns,WindingOrder:()=>ds,WireframeIndexGenerator:()=>KC,WireframePipelineStage:()=>zW,_shadersAcesTonemappingStage:()=>WF,_shadersAdditiveBlend:()=>cA,_shadersAdjustTranslucentFS:()=>jV,_shadersAllMaterialAppearanceFS:()=>lE,_shadersAllMaterialAppearanceVS:()=>dE,_shadersAmbientOcclusionGenerate:()=>PF,_shadersAmbientOcclusionModulate:()=>vF,_shadersAspectRampMaterial:()=>pE,_shadersAtmosphereCommon:()=>Um,_shadersAtmosphereStageFS:()=>DX,_shadersAtmosphereStageVS:()=>BX,_shadersBasicMaterialAppearanceFS:()=>uE,_shadersBasicMaterialAppearanceVS:()=>mE,_shadersBillboardCollectionFS:()=>x2,_shadersBillboardCollectionVS:()=>_2,_shadersBlackAndWhite:()=>wF,_shadersBloomComposite:()=>FF,_shadersBrdfLutGeneratorFS:()=>Kw,_shadersBrightPass:()=>lA,_shadersBrightness:()=>AF,_shadersBumpMapMaterial:()=>bE,_shadersCPUStylingStageFS:()=>fW,_shadersCPUStylingStageVS:()=>hW,_shadersCheckerboardMaterial:()=>gE,_shadersCloudCollectionFS:()=>iM,_shadersCloudCollectionVS:()=>oM,_shadersCloudNoiseFS:()=>rM,_shadersCloudNoiseVS:()=>sM,_shadersCompareAndPackTranslucentDepth:()=>ZF,_shadersCompositeOITFS:()=>TF,_shadersCompositeTranslucentClassification:()=>vT,_shadersComputeIrradianceFS:()=>eX,_shadersComputeRadianceMapFS:()=>tX,_shadersContrastBias:()=>MF,_shadersConvolveSpecularMapFS:()=>nX,_shadersConvolveSpecularMapVS:()=>iX,_shadersCustomShaderStageFS:()=>gW,_shadersCustomShaderStageVS:()=>bW,_shadersCzmBuiltins:()=>mx,_shadersDepthOfField:()=>NF,_shadersDepthPlaneFS:()=>sF,_shadersDepthPlaneVS:()=>aF,_shadersDepthView:()=>kF,_shadersDepthViewPacked:()=>S6,_shadersDotMaterial:()=>yE,_shadersEdgeDetection:()=>UF,_shadersElevationBandMaterial:()=>xE,_shadersElevationContourMaterial:()=>_E,_shadersElevationRampMaterial:()=>TE,_shadersEllipsoidFS:()=>BV,_shadersEllipsoidSurfaceAppearanceFS:()=>LM,_shadersEllipsoidSurfaceAppearanceVS:()=>RM,_shadersEllipsoidVS:()=>OV,_shadersFXAA:()=>OF,_shadersFXAA3_11:()=>QF,_shadersFadeMaterial:()=>SE,_shadersFeatureIdStageFS:()=>yW,_shadersFeatureIdStageVS:()=>xW,_shadersFilmicTonemapping:()=>DF,_shadersGaussianBlur1D:()=>Ly,_shadersGeometryStageFS:()=>LW,_shadersGeometryStageVS:()=>RW,_shadersGlobeFS:()=>mw,_shadersGlobeVS:()=>hw,_shadersGridMaterial:()=>CE,_shadersGroundAtmosphere:()=>ZV,_shadersHSBToRGB:()=>uZ,_shadersHSLToRGB:()=>mZ,_shadersImageBasedLightingStageFS:()=>YX,_shadersInstancingStageCommon:()=>nW,_shadersInstancingStageVS:()=>iW,_shadersIntersectBox:()=>_A,_shadersIntersectClippingPlanes:()=>xA,_shadersIntersectCylinder:()=>TA,_shadersIntersectDepth:()=>yA,_shadersIntersectEllipsoid:()=>SA,_shadersIntersectLongitude:()=>nL,_shadersIntersection:()=>HT,_shadersIntersectionUtils:()=>gA,_shadersLegacyInstancingStageVS:()=>oW,_shadersLensFlare:()=>YF,_shadersLightingStageFS:()=>EW,_shadersMaterialStageFS:()=>XW,_shadersMegatexture:()=>ZA,_shadersMetadataStageFS:()=>_W,_shadersMetadataStageVS:()=>TW,_shadersModelClippingPlanesStageFS:()=>QX,_shadersModelClippingPolygonsStageFS:()=>$X,_shadersModelClippingPolygonsStageVS:()=>qX,_shadersModelColorStageFS:()=>JX,_shadersModelFS:()=>d2,_shadersModelSilhouetteStageFS:()=>qW,_shadersModelSilhouetteStageVS:()=>$W,_shadersModelSplitterStageFS:()=>t2,_shadersModelVS:()=>l2,_shadersModifiedReinhardTonemapping:()=>HF,_shadersMorphTargetsStageVS:()=>PW,_shadersNightVision:()=>zF,_shadersNormalMapMaterial:()=>VE,_shadersOctree:()=>RA,_shadersPassThrough:()=>jl,_shadersPassThroughDepth:()=>Sy,_shadersPbrNeutralTonemapping:()=>BF,_shadersPerInstanceColorAppearanceFS:()=>wE,_shadersPerInstanceColorAppearanceVS:()=>FE,_shadersPerInstanceFlatColorAppearanceFS:()=>xx,_shadersPerInstanceFlatColorAppearanceVS:()=>AE,_shadersPointCloudEyeDomeLighting:()=>CX,_shadersPointCloudStylingStageVS:()=>FW,_shadersPointPrimitiveCollectionFS:()=>kg,_shadersPointPrimitiveCollectionVS:()=>VP,_shadersPolygonSignedDistanceFS:()=>qI,_shadersPolylineArrowMaterial:()=>LE,_shadersPolylineColorAppearanceVS:()=>jE,_shadersPolylineCommon:()=>md,_shadersPolylineDashMaterial:()=>RE,_shadersPolylineFS:()=>Rx,_shadersPolylineGlowMaterial:()=>ZE,_shadersPolylineMaterialAppearanceVS:()=>qE,_shadersPolylineOutlineMaterial:()=>GE,_shadersPolylineShadowVolumeFS:()=>zE,_shadersPolylineShadowVolumeMorphFS:()=>KE,_shadersPolylineShadowVolumeMorphVS:()=>JE,_shadersPolylineShadowVolumeVS:()=>QE,_shadersPolylineVS:()=>Z2,_shadersPrimitiveOutlineStageFS:()=>NW,_shadersPrimitiveOutlineStageVS:()=>MW,_shadersRGBToHSB:()=>hZ,_shadersRGBToHSL:()=>fZ,_shadersRGBToXYZ:()=>pZ,_shadersReinhardTonemapping:()=>KF,_shadersReprojectWebMercatorFS:()=>Zw,_shadersReprojectWebMercatorVS:()=>Gw,_shadersRimLightingMaterial:()=>EE,_shadersSelectedFeatureIdStageCommon:()=>zC,_shadersShadowVolumeAppearanceFS:()=>eC,_shadersShadowVolumeAppearanceVS:()=>kE,_shadersShadowVolumeFS:()=>N0,_shadersSilhouette:()=>JF,_shadersSkinningStageVS:()=>BW,_shadersSkyAtmosphereCommon:()=>aL,_shadersSkyAtmosphereFS:()=>kA,_shadersSkyAtmosphereVS:()=>UA,_shadersSkyBoxFS:()=>BA,_shadersSkyBoxVS:()=>OA,_shadersSlopeRampMaterial:()=>IE,_shadersStripeMaterial:()=>XE,_shadersSunFS:()=>HA,_shadersSunTextureFS:()=>zA,_shadersSunVS:()=>KA,_shadersTexturedMaterialAppearanceFS:()=>hE,_shadersTexturedMaterialAppearanceVS:()=>fE,_shadersVector3DTileClampedPolylinesFS:()=>M2,_shadersVector3DTileClampedPolylinesVS:()=>A2,_shadersVector3DTilePolylinesVS:()=>w2,_shadersVectorTileVS:()=>dC,_shadersVerticalExaggerationStageVS:()=>YW,_shadersViewportQuadFS:()=>aM,_shadersViewportQuadVS:()=>ix,_shadersVoxelFS:()=>pA,_shadersVoxelUtils:()=>fA,_shadersVoxelVS:()=>bA,_shadersWater:()=>PE,_shadersWaterMaskMaterial:()=>WE,_shadersXYZToRGB:()=>bZ,_shadersacesTonemapping:()=>gZ,_shadersalphaWeight:()=>yZ,_shadersantialias:()=>xZ,_shadersapplyHSBShift:()=>_Z,_shadersapproximateSphericalCoordinates:()=>TZ,_shadersapproximateTanh:()=>SZ,_shadersbackFacing:()=>CZ,_shadersbranchFreeTernary:()=>VZ,_shaderscascadeColor:()=>LZ,_shaderscascadeDistance:()=>RZ,_shaderscascadeMatrix:()=>ZZ,_shaderscascadeWeights:()=>GZ,_shadersclipPolygons:()=>EZ,_shaderscolumbusViewMorph:()=>IZ,_shaderscomputeAtmosphereColor:()=>XZ,_shaderscomputeGroundAtmosphereScattering:()=>WZ,_shaderscomputePosition:()=>PZ,_shaderscomputeScattering:()=>vZ,_shadersconvertUvToBox:()=>CA,_shadersconvertUvToCylinder:()=>VA,_shadersconvertUvToEllipsoid:()=>LA,_shaderscosineAndSine:()=>wZ,_shadersdecompressTextureCoordinates:()=>FZ,_shadersdegreesPerRadian:()=>xR,_shadersdepthClamp:()=>AZ,_shadersdepthRange:()=>_R,_shadersdepthRangeStruct:()=>iZ,_shaderseastNorthUpToEyeCoordinates:()=>MZ,_shadersellipsoidContainsPoint:()=>NZ,_shadersellipsoidTextureCoordinates:()=>kZ,_shadersepsilon1:()=>TR,_shadersepsilon2:()=>SR,_shadersepsilon3:()=>CR,_shadersepsilon4:()=>VR,_shadersepsilon5:()=>LR,_shadersepsilon6:()=>RR,_shadersepsilon7:()=>ZR,_shadersequalsEpsilon:()=>UZ,_shaderseyeOffset:()=>DZ,_shaderseyeToWindowCoordinates:()=>BZ,_shadersfastApproximateAtan:()=>OZ,_shadersfog:()=>YZ,_shadersgammaCorrect:()=>HZ,_shadersgeodeticSurfaceNormal:()=>zZ,_shadersgetDefaultMaterial:()=>KZ,_shadersgetDynamicAtmosphereLightDirection:()=>JZ,_shadersgetLambertDiffuse:()=>QZ,_shadersgetSpecular:()=>jZ,_shadersgetWaterNoise:()=>qZ,_shadershue:()=>$Z,_shadersinfinity:()=>GR,_shadersinverseGamma:()=>eG,_shadersisEmpty:()=>tG,_shadersisFull:()=>nG,_shaderslatitudeToWebMercatorFraction:()=>iG,_shaderslineDistance:()=>oG,_shaderslinearToSrgb:()=>rG,_shadersluminance:()=>sG,_shadersmaterial:()=>oZ,_shadersmaterialInput:()=>rZ,_shadersmaximumComponent:()=>aG,_shadersmetersPerPixel:()=>cG,_shadersmodelMaterial:()=>sZ,_shadersmodelToWindowCoordinates:()=>lG,_shadersmodelVertexOutput:()=>aZ,_shadersmultiplyWithColorBalance:()=>dG,_shadersnearFarScalar:()=>uG,_shadersoctDecode:()=>mG,_shadersoneOverPi:()=>ER,_shadersoneOverTwoPi:()=>IR,_shaderspackDepth:()=>hG,_shaderspassCesium3DTile:()=>XR,_shaderspassCesium3DTileClassification:()=>WR,_shaderspassCesium3DTileClassificationIgnoreShow:()=>PR,_shaderspassClassification:()=>vR,_shaderspassCompute:()=>wR,_shaderspassEnvironment:()=>FR,_shaderspassGlobe:()=>AR,_shaderspassOpaque:()=>MR,_shaderspassOverlay:()=>NR,_shaderspassTerrainClassification:()=>kR,_shaderspassTranslucent:()=>UR,_shaderspassVoxels:()=>DR,_shaderspbrLighting:()=>fG,_shaderspbrNeutralTonemapping:()=>pG,_shadersphong:()=>bG,_shaderspi:()=>BR,_shaderspiOverFour:()=>OR,_shaderspiOverSix:()=>YR,_shaderspiOverThree:()=>HR,_shaderspiOverTwo:()=>zR,_shadersplaneDistance:()=>gG,_shaderspointAlongRay:()=>yG,_shadersradiansPerDegree:()=>KR,_shadersray:()=>cZ,_shadersrayEllipsoidIntersectionInterval:()=>xG,_shadersraySegment:()=>lZ,_shadersraySphereIntersectionInterval:()=>_G,_shadersreadDepth:()=>TG,_shadersreadNonPerspective:()=>SG,_shadersreverseLogDepth:()=>CG,_shadersround:()=>VG,_shaderssaturation:()=>LG,_shaderssceneMode2D:()=>JR,_shaderssceneMode3D:()=>QR,_shaderssceneModeColumbusView:()=>jR,_shaderssceneModeMorphing:()=>qR,_shadersshadowDepthCompare:()=>RG,_shadersshadowParameters:()=>dZ,_shadersshadowVisibility:()=>ZG,_shaderssignNotZero:()=>GG,_shaderssolarRadius:()=>$R,_shaderssphericalHarmonics:()=>EG,_shaderssrgbToLinear:()=>IG,_shaderstangentToEyeSpaceMatrix:()=>XG,_shaderstextureCube:()=>WG,_shadersthreePiOver2:()=>eZ,_shaderstransformPlane:()=>PG,_shaderstranslateRelativeToEye:()=>vG,_shaderstranslucentPhong:()=>wG,_shaderstranspose:()=>FG,_shaderstwoPi:()=>tZ,_shadersunpackClippingExtents:()=>AG,_shadersunpackDepth:()=>MG,_shadersunpackFloat:()=>NG,_shadersunpackUint:()=>kG,_shadersvalueTransform:()=>UG,_shadersvertexLogDepth:()=>DG,_shaderswebMercatorMaxLatitude:()=>nZ,_shaderswindowToEyeCoordinates:()=>BG,_shaderswriteDepthClamp:()=>OG,_shaderswriteLogDepth:()=>YG,_shaderswriteNonPerspective:()=>HG,addBuffer:()=>FI,addDefaults:()=>GI,addExtensionsRequired:()=>PI,addExtensionsUsed:()=>Su,addPipelineExtras:()=>tg,addToArray:()=>Ss,appendForwardSlash:()=>BL,arrayRemoveDuplicates:()=>xo,barycentricCoordinates:()=>rx,binarySearch:()=>Eo,buildModuleUrl:()=>rn,buildVoxelDrawCommands:()=>IA,clone:()=>Ye,combine:()=>Tt,computeFlyToLocationForRectangle:()=>_T,createBillboardPointCallback:()=>__,createCommand:()=>Ln,createDefaultImageryProviderViewModels:()=>e9,createDefaultTerrainProviderViewModels:()=>t9,createElevationBandMaterial:()=>y6,createGooglePhotorealistic3DTileset:()=>x6,createGuid:()=>Bn,createMaterialPropertyDescriptor:()=>Io,createOsmBuildingsAsync:()=>_6,createPropertyDescriptor:()=>ue,createRawPropertyDescriptor:()=>Ll,createTangentSpaceDebugPrimitive:()=>T6,createTaskProcessorWorker:()=>R6,createUniform:()=>iR,createUniformArray:()=>oR,createWorldBathymetryAsync:()=>pM,createWorldImageryAsync:()=>n0,createWorldTerrainAsync:()=>cS,decodeGoogleEarthEnterpriseData:()=>bM,decodeVectorPolylinePositions:()=>U2,defaultValue:()=>y,defer:()=>yl,defined:()=>l,demodernizeShader:()=>zG,deprecationWarning:()=>ls,destroyObject:()=>me,exportKml:()=>X4,findAccessorMinMax:()=>e_,findContentMetadata:()=>R_,findGroupMetadata:()=>Z_,findTileMetadata:()=>Y2,forEachTextureInMaterial:()=>xC,formatError:()=>Mf,freezeRenderState:()=>PO,getAbsoluteUri:()=>kh,getAccessorByteStride:()=>Xl,getBaseUri:()=>OL,getBinaryAccessor:()=>pd,getClipAndStyleCode:()=>qA,getClippingFunction:()=>qb,getComponentReader:()=>Hp,getElement:()=>Xn,getExtensionFromUri:()=>Ky,getFilenameFromUri:()=>Pb,getImageFromTypedArray:()=>vA,getImagePixels:()=>bm,getJsonFromTypedArray:()=>Wo,getMagic:()=>vm,getMetadataClassProperty:()=>AA,getStringFromTypedArray:()=>Zl,getTimestamp:()=>_i,hasExtension:()=>oi,heightReferenceOnEntityPropertyChanged:()=>vp,isBitSet:()=>Lc,isBlobUri:()=>Jy,isCrossOriginUrl:()=>L0,isDataUri:()=>hp,isLeapYear:()=>pm,knockout:()=>Se,knockout_3_5_1:()=>gS,knockout_es5:()=>BM,loadAndExecuteScript:()=>Qy,loadCubeMap:()=>oE,loadImageFromTypedArray:()=>jx,loadKTX2:()=>_l,mergeSort:()=>o0,moveTechniqueRenderStates:()=>WI,moveTechniquesToExtension:()=>vI,numberOfComponentsForType:()=>gd,objectToQuery:()=>jy,oneTimeWarning:()=>St,parseBatchTable:()=>ob,parseFeatureMetadataLegacy:()=>uX,parseGlb:()=>II,parseResponseHeaders:()=>YL,parseStructuralMetadata:()=>dX,pickModel:()=>qC,pointInsideTriangle:()=>E7,preprocess3DTileContent:()=>gf,processVoxelProperties:()=>EA,queryToObject:()=>od,readAccessorPacked:()=>AI,removeExtension:()=>t_,removeExtensionsRequired:()=>EI,removeExtensionsUsed:()=>$x,removePipelineExtras:()=>XI,removeUnusedElements:()=>wI,resizeImageToNextPowerOfTwo:()=>og,sampleTerrain:()=>uw,sampleTerrainMostDetailed:()=>xT,scaleToGeodeticSurface:()=>zy,srgbToLinear:()=>lS,subdivideArray:()=>UE,subscribeAndEvaluate:()=>xa,updateAccessorComponentTypes:()=>MI,updateVersion:()=>NI,usesExtension:()=>sr,viewerCesium3DTilesInspectorMixin:()=>K6,viewerCesiumInspectorMixin:()=>J6,viewerDragDropMixin:()=>j6,viewerPerformanceWatchdogMixin:()=>q6,viewerVoxelInspectorMixin:()=>$6,webGLConstantToGlslType:()=>I7,wrapFunction:()=>gM,writeTextToCanvas:()=>S_});var NIo=T(S(),1);var hoo=T(S(),1);var LVt=T(S(),1);var J1t=T(S(),1);var A1t=T(S(),1);var I1t=T(S(),1);function HCe(e){return e!=null}var l=HCe;var P1t=T(S(),1);function Yy(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(Yy.prototype=Object.create(Error.prototype),Yy.prototype.constructor=Yy);Yy.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};Yy.throwInstantiationError=function(){throw new Yy("This function defines an interface and should not be called directly.")};var pe=Yy;var _s={};_s.typeOf={};function zCe(e){return`${e} is required, actual value was undefined`}function ZS(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}_s.defined=function(e,t){if(!l(t))throw new pe(zCe(e))};_s.typeOf.func=function(e,t){if(typeof t!="function")throw new pe(ZS(typeof t,"function",e))};_s.typeOf.string=function(e,t){if(typeof t!="string")throw new pe(ZS(typeof t,"string",e))};_s.typeOf.number=function(e,t){if(typeof t!="number")throw new pe(ZS(typeof t,"number",e))};_s.typeOf.number.lessThan=function(e,t,n){if(_s.typeOf.number(e,t),t>=n)throw new pe(`Expected ${e} to be less than ${n}, actual value was ${t}`)};_s.typeOf.number.lessThanOrEquals=function(e,t,n){if(_s.typeOf.number(e,t),t>n)throw new pe(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};_s.typeOf.number.greaterThan=function(e,t,n){if(_s.typeOf.number(e,t),t<=n)throw new pe(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};_s.typeOf.number.greaterThanOrEquals=function(e,t,n){if(_s.typeOf.number(e,t),t0?1:-1});dt.signNotZero=function(e){return e<0?-1:1};dt.toSNorm=function(e,t){return t=y(t,255),Math.round((dt.clamp(e,-1,1)*.5+.5)*t)};dt.fromSNorm=function(e,t){return t=y(t,255),dt.clamp(e,0,t)/t*2-1};dt.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:dt.clamp((e-t)/n,0,1)};dt.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});dt.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});dt.lerp=function(e,t,n){return(1-n)*e+n*t};dt.PI=Math.PI;dt.ONE_OVER_PI=1/Math.PI;dt.PI_OVER_TWO=Math.PI/2;dt.PI_OVER_THREE=Math.PI/3;dt.PI_OVER_FOUR=Math.PI/4;dt.PI_OVER_SIX=Math.PI/6;dt.THREE_PI_OVER_TWO=3*Math.PI/2;dt.TWO_PI=2*Math.PI;dt.ONE_OVER_TWO_PI=1/(2*Math.PI);dt.RADIANS_PER_DEGREE=Math.PI/180;dt.DEGREES_PER_RADIAN=180/Math.PI;dt.RADIANS_PER_ARCSECOND=dt.RADIANS_PER_DEGREE/3600;dt.toRadians=function(e){return e*dt.RADIANS_PER_DEGREE};dt.toDegrees=function(e){return e*dt.DEGREES_PER_RADIAN};dt.convertLongitudeRange=function(e){let t=dt.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};dt.clampToLatitudeRange=function(e){return dt.clamp(e,-1*dt.PI_OVER_TWO,dt.PI_OVER_TWO)};dt.negativePiToPi=function(e){return e>=-dt.PI&&e<=dt.PI?e:dt.zeroToTwoPi(e+dt.PI)-dt.PI};dt.zeroToTwoPi=function(e){if(e>=0&&e<=dt.TWO_PI)return e;let t=dt.mod(e,dt.TWO_PI);return Math.abs(t)dt.EPSILON14?dt.TWO_PI:t};dt.mod=function(e,t){return dt.sign(e)===dt.sign(t)&&Math.abs(e)n};dt.greaterThanOrEquals=function(e,t,n){return e-t>-n};var O9=[1];dt.factorial=function(e){let t=O9.length;if(e>=t){let n=O9[t-1];for(let i=t;i<=e;i++){let o=n*i;O9.push(o),n=o}}return O9[e]};dt.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};dt.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};dt.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};dt.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};dt.clamp=function(e,t,n){return en?n:e};var Vq=new O3.default;dt.setRandomNumberSeed=function(e){Vq=new O3.default(e)};dt.nextRandomNumber=function(){return Vq.random()};dt.randomBetween=function(e,t){return dt.nextRandomNumber()*(t-e)+e};dt.acosClamped=function(e){return Math.acos(dt.clamp(e,-1,1))};dt.asinClamped=function(e){return Math.asin(dt.clamp(e,-1,1))};dt.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};dt.logBase=function(e,t){return Math.log(e)/Math.log(t)};dt.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});dt.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});dt.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};dt.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};dt.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=dt.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?dt.PI_OVER_TWO-i:i,i=e<0?dt.PI-i:i,i=t<0?-i:i,i};var W=dt;function nt(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}nt.fromSpherical=function(e,t){l(t)||(t=new nt);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};nt.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new nt(e,t,n)};nt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new nt(e.x,e.y,e.z)};nt.fromCartesian4=nt.clone;nt.packedLength=3;nt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};nt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new nt),n.x=e[t++],n.y=e[t++],n.z=e[t],n};nt.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oi&&(o=d,i=u)}let r=1,s=0,a=K3[o],c=J3[o];if(Math.abs(e[rt.getElementIndex(c,a)])>n){let d=e[rt.getElementIndex(c,c)],u=e[rt.getElementIndex(a,a)],m=e[rt.getElementIndex(c,a)],p=(d-u)/2/m,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=rt.clone(rt.IDENTITY,t),t[rt.getElementIndex(a,a)]=t[rt.getElementIndex(c,c)]=r,t[rt.getElementIndex(c,a)]=s,t[rt.getElementIndex(a,c)]=-s,t}var K9=new rt,Eq=new rt;rt.computeEigenDecomposition=function(e,t){let n=W.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=rt.clone(rt.IDENTITY,t.unitary),a=t.diagonal=rt.clone(e,t.diagonal),c=n*n1e(a);for(;rc;)o1e(a,K9),rt.transpose(K9,Eq),rt.multiply(a,K9,a),rt.multiply(Eq,a,a),rt.multiply(s,K9,s),++o>2&&(++r,o=0);return t};rt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};rt.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],d=e[8];return t*(r*d-c*s)+o*(c*i-n*d)+a*(n*s-r*i)};rt.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],d=e[7],u=e[8],m=rt.determinant(e);t[0]=s*u-d*a,t[1]=d*o-i*u,t[2]=i*a-s*o,t[3]=c*a-r*u,t[4]=n*u-c*o,t[5]=r*o-n*a,t[6]=r*d-c*s,t[7]=c*i-n*d,t[8]=n*s-r*i;let p=1/m;return rt.multiplyByScalar(t,p,t)};var r1e=new rt;rt.inverseTranspose=function(e,t){return rt.inverse(rt.transpose(e,r1e),t)};rt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};rt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};rt.IDENTITY=Object.freeze(new rt(1,0,0,0,1,0,0,0,1));rt.ZERO=Object.freeze(new rt(0,0,0,0,0,0,0,0,0));rt.COLUMN0ROW0=0;rt.COLUMN0ROW1=1;rt.COLUMN0ROW2=2;rt.COLUMN1ROW0=3;rt.COLUMN1ROW1=4;rt.COLUMN1ROW2=5;rt.COLUMN2ROW0=6;rt.COLUMN2ROW1=7;rt.COLUMN2ROW2=8;Object.defineProperties(rt.prototype,{length:{get:function(){return rt.packedLength}}});rt.prototype.clone=function(e){return rt.clone(this,e)};rt.prototype.equals=function(e){return rt.equals(this,e)};rt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};rt.prototype.equalsEpsilon=function(e,t){return rt.equalsEpsilon(this,e,t)};rt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var $=rt;var lVt=T(S(),1);function kL(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(kL.prototype=Object.create(Error.prototype),kL.prototype.constructor=kL);kL.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var de=kL;function it(e,t,n,i,o,r,s,a,c,d,u,m,p,g,f,x){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(d,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(u,0),this[11]=y(f,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(m,0),this[15]=y(x,0)}it.packedLength=16;it.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};it.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new it),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};it.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};vs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=W.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};vs.fromTypedArray=function(e){if(e instanceof Uint8Array)return vs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return vs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return vs.UNSIGNED_INT};var Ae=Object.freeze(vs);var MVt=T(S(),1);var J9={STREAM_DRAW:ie.STREAM_DRAW,STATIC_DRAW:ie.STATIC_DRAW,DYNAMIC_DRAW:ie.DYNAMIC_DRAW,validate:function(e){return e===J9.STREAM_DRAW||e===J9.STATIC_DRAW||e===J9.DYNAMIC_DRAW}},Me=Object.freeze(J9);function cu(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Bn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}cu.createVertexBuffer=function(e){return new cu({context:e.context,bufferTarget:ie.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};cu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ae.getSizeInBytes(n),o=new cu({context:t,bufferTarget:ie.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(cu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});cu.prototype._getBuffer=function(){return this._buffer};cu.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};cu.prototype.copyFromBuffer=function(e,t,n,i){let o=ie.COPY_READ_BUFFER,r=ie.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};cu.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=ie.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};cu.prototype.isDestroyed=function(){return!1};cu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),me(this)};var xt=cu;var dLt=T(S(),1);var sLt=T(S(),1);var eLt=T(S(),1);var JVt=T(S(),1);var S0,Ir={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},gl={};Object.defineProperties(gl,{element:{get:function(){if(gl.supportsFullscreen())return document[Ir.fullscreenElement]}},changeEventName:{get:function(){if(gl.supportsFullscreen())return Ir.fullscreenchange}},errorEventName:{get:function(){if(gl.supportsFullscreen())return Ir.fullscreenerror}},enabled:{get:function(){if(gl.supportsFullscreen())return document[Ir.fullscreenEnabled]}},fullscreen:{get:function(){if(gl.supportsFullscreen())return gl.element!==null}}});gl.supportsFullscreen=function(){if(l(S0))return S0;S0=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Ir.requestFullscreen="requestFullscreen",Ir.exitFullscreen="exitFullscreen",Ir.fullscreenEnabled="fullscreenEnabled",Ir.fullscreenElement="fullscreenElement",Ir.fullscreenchange="fullscreenchange",Ir.fullscreenerror="fullscreenerror",S0=!0,S0;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i{let t=new Image;t.onload=function(){Ic._result=t.width>0&&t.height>0,e(Ic._result)},t.onerror=function(){Ic._result=!1,e(Ic._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Ic._promise};Object.defineProperties(Ic,{initialized:{get:function(){return l(Ic._result)}}});var XS=[];typeof ArrayBuffer<"u"&&(XS.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&XS.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&XS.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&XS.push(BigInt64Array),typeof BigUint64Array<"u"&&XS.push(BigUint64Array));var lu={isChrome:nO,chromeVersion:T1e,isSafari:Pq,safariVersion:S1e,isWebkit:vq,webkitVersion:C1e,isInternetExplorer:wq,internetExplorerVersion:V1e,isEdge:nN,edgeVersion:L1e,isFirefox:iN,firefoxVersion:G1e,isWindows:R1e,isIPadOrIOS:Z1e,hardwareConcurrency:y(Ja.hardwareConcurrency,3),supportsPointerEvents:E1e,supportsImageRenderingPixelated:Mq,supportsWebP:Ic,imageRenderingValue:I1e,typedArrayTypes:XS};lu.supportsBasis=function(e){return lu.supportsWebAssembly()&&e.context.supportsBasis};lu.supportsFullscreen=function(){return pr.supportsFullscreen()};lu.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};lu.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};lu.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};lu.supportsBigInt=function(){return typeof BigInt<"u"};lu.supportsWebWorkers=function(){return typeof Worker<"u"};lu.supportsWebAssembly=function(){return typeof WebAssembly<"u"};lu.supportsWebgl2=function(e){return e.context.webgl2};lu.supportsEsmWebWorkers=function(){return!iN()||parseInt(iO)>=114};var zt=lu;function oO(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function re(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}re.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new re(e.x,e.y,e.z,e.w)};re.fromBytes=function(e,t,n,i,o){return e=re.byteToFloat(y(e,255)),t=re.byteToFloat(y(t,255)),n=re.byteToFloat(y(n,255)),i=re.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new re(e,t,n,i)};re.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new re(e.red,e.green,e.blue,t)};var rO,sO,up;zt.supportsTypedArrays()&&(rO=new ArrayBuffer(4),sO=new Uint32Array(rO),up=new Uint8Array(rO));re.fromRgba=function(e,t){return sO[0]=e,re.fromBytes(up[0],up[1],up[2],up[3],t)};re.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let d=2*n-c;r=oO(d,c,e+1/3),s=oO(d,c,e),a=oO(d,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new re(r,s,a,i)};re.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+W.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+W.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+W.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+W.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new re(n,i,o,r)};var X1e=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,W1e=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,P1e=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,v1e=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;re.fromCssColorString=function(e,t){l(t)||(t=new re),e=e.trim();let n=re[e.toUpperCase()];if(l(n))return re.clone(n,t),t;let i=X1e.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=W1e.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=P1e.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=v1e.exec(e),i!==null?re.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};re.packedLength=4;re.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};re.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new re),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};re.byteToFloat=function(e){return e/255};re.floatToByte=function(e){return e===1?255:e*256|0};re.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new re(e.red,e.green,e.blue,e.alpha)};re.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};re.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};re.prototype.clone=function(e){return re.clone(this,e)};re.prototype.equals=function(e){return re.equals(this,e)};re.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};re.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};re.prototype.toCssColorString=function(){let e=re.floatToByte(this.red),t=re.floatToByte(this.green),n=re.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};re.prototype.toCssHexString=function(){let e=re.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=re.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=re.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=re.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};re.prototype.toBytes=function(e){let t=re.floatToByte(this.red),n=re.floatToByte(this.green),i=re.floatToByte(this.blue),o=re.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};re.prototype.toRgba=function(){return up[0]=re.floatToByte(this.red),up[1]=re.floatToByte(this.green),up[2]=re.floatToByte(this.blue),up[3]=re.floatToByte(this.alpha),sO[0]};re.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};re.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};re.prototype.withAlpha=function(e,t){return re.fromAlpha(this,e,t)};re.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};re.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};re.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};re.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};re.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};re.lerp=function(e,t,n,i){return i.red=W.lerp(e.red,t.red,n),i.green=W.lerp(e.green,t.green,n),i.blue=W.lerp(e.blue,t.blue,n),i.alpha=W.lerp(e.alpha,t.alpha,n),i};re.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};re.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};re.ALICEBLUE=Object.freeze(re.fromCssColorString("#F0F8FF"));re.ANTIQUEWHITE=Object.freeze(re.fromCssColorString("#FAEBD7"));re.AQUA=Object.freeze(re.fromCssColorString("#00FFFF"));re.AQUAMARINE=Object.freeze(re.fromCssColorString("#7FFFD4"));re.AZURE=Object.freeze(re.fromCssColorString("#F0FFFF"));re.BEIGE=Object.freeze(re.fromCssColorString("#F5F5DC"));re.BISQUE=Object.freeze(re.fromCssColorString("#FFE4C4"));re.BLACK=Object.freeze(re.fromCssColorString("#000000"));re.BLANCHEDALMOND=Object.freeze(re.fromCssColorString("#FFEBCD"));re.BLUE=Object.freeze(re.fromCssColorString("#0000FF"));re.BLUEVIOLET=Object.freeze(re.fromCssColorString("#8A2BE2"));re.BROWN=Object.freeze(re.fromCssColorString("#A52A2A"));re.BURLYWOOD=Object.freeze(re.fromCssColorString("#DEB887"));re.CADETBLUE=Object.freeze(re.fromCssColorString("#5F9EA0"));re.CHARTREUSE=Object.freeze(re.fromCssColorString("#7FFF00"));re.CHOCOLATE=Object.freeze(re.fromCssColorString("#D2691E"));re.CORAL=Object.freeze(re.fromCssColorString("#FF7F50"));re.CORNFLOWERBLUE=Object.freeze(re.fromCssColorString("#6495ED"));re.CORNSILK=Object.freeze(re.fromCssColorString("#FFF8DC"));re.CRIMSON=Object.freeze(re.fromCssColorString("#DC143C"));re.CYAN=Object.freeze(re.fromCssColorString("#00FFFF"));re.DARKBLUE=Object.freeze(re.fromCssColorString("#00008B"));re.DARKCYAN=Object.freeze(re.fromCssColorString("#008B8B"));re.DARKGOLDENROD=Object.freeze(re.fromCssColorString("#B8860B"));re.DARKGRAY=Object.freeze(re.fromCssColorString("#A9A9A9"));re.DARKGREEN=Object.freeze(re.fromCssColorString("#006400"));re.DARKGREY=re.DARKGRAY;re.DARKKHAKI=Object.freeze(re.fromCssColorString("#BDB76B"));re.DARKMAGENTA=Object.freeze(re.fromCssColorString("#8B008B"));re.DARKOLIVEGREEN=Object.freeze(re.fromCssColorString("#556B2F"));re.DARKORANGE=Object.freeze(re.fromCssColorString("#FF8C00"));re.DARKORCHID=Object.freeze(re.fromCssColorString("#9932CC"));re.DARKRED=Object.freeze(re.fromCssColorString("#8B0000"));re.DARKSALMON=Object.freeze(re.fromCssColorString("#E9967A"));re.DARKSEAGREEN=Object.freeze(re.fromCssColorString("#8FBC8F"));re.DARKSLATEBLUE=Object.freeze(re.fromCssColorString("#483D8B"));re.DARKSLATEGRAY=Object.freeze(re.fromCssColorString("#2F4F4F"));re.DARKSLATEGREY=re.DARKSLATEGRAY;re.DARKTURQUOISE=Object.freeze(re.fromCssColorString("#00CED1"));re.DARKVIOLET=Object.freeze(re.fromCssColorString("#9400D3"));re.DEEPPINK=Object.freeze(re.fromCssColorString("#FF1493"));re.DEEPSKYBLUE=Object.freeze(re.fromCssColorString("#00BFFF"));re.DIMGRAY=Object.freeze(re.fromCssColorString("#696969"));re.DIMGREY=re.DIMGRAY;re.DODGERBLUE=Object.freeze(re.fromCssColorString("#1E90FF"));re.FIREBRICK=Object.freeze(re.fromCssColorString("#B22222"));re.FLORALWHITE=Object.freeze(re.fromCssColorString("#FFFAF0"));re.FORESTGREEN=Object.freeze(re.fromCssColorString("#228B22"));re.FUCHSIA=Object.freeze(re.fromCssColorString("#FF00FF"));re.GAINSBORO=Object.freeze(re.fromCssColorString("#DCDCDC"));re.GHOSTWHITE=Object.freeze(re.fromCssColorString("#F8F8FF"));re.GOLD=Object.freeze(re.fromCssColorString("#FFD700"));re.GOLDENROD=Object.freeze(re.fromCssColorString("#DAA520"));re.GRAY=Object.freeze(re.fromCssColorString("#808080"));re.GREEN=Object.freeze(re.fromCssColorString("#008000"));re.GREENYELLOW=Object.freeze(re.fromCssColorString("#ADFF2F"));re.GREY=re.GRAY;re.HONEYDEW=Object.freeze(re.fromCssColorString("#F0FFF0"));re.HOTPINK=Object.freeze(re.fromCssColorString("#FF69B4"));re.INDIANRED=Object.freeze(re.fromCssColorString("#CD5C5C"));re.INDIGO=Object.freeze(re.fromCssColorString("#4B0082"));re.IVORY=Object.freeze(re.fromCssColorString("#FFFFF0"));re.KHAKI=Object.freeze(re.fromCssColorString("#F0E68C"));re.LAVENDER=Object.freeze(re.fromCssColorString("#E6E6FA"));re.LAVENDAR_BLUSH=Object.freeze(re.fromCssColorString("#FFF0F5"));re.LAWNGREEN=Object.freeze(re.fromCssColorString("#7CFC00"));re.LEMONCHIFFON=Object.freeze(re.fromCssColorString("#FFFACD"));re.LIGHTBLUE=Object.freeze(re.fromCssColorString("#ADD8E6"));re.LIGHTCORAL=Object.freeze(re.fromCssColorString("#F08080"));re.LIGHTCYAN=Object.freeze(re.fromCssColorString("#E0FFFF"));re.LIGHTGOLDENRODYELLOW=Object.freeze(re.fromCssColorString("#FAFAD2"));re.LIGHTGRAY=Object.freeze(re.fromCssColorString("#D3D3D3"));re.LIGHTGREEN=Object.freeze(re.fromCssColorString("#90EE90"));re.LIGHTGREY=re.LIGHTGRAY;re.LIGHTPINK=Object.freeze(re.fromCssColorString("#FFB6C1"));re.LIGHTSEAGREEN=Object.freeze(re.fromCssColorString("#20B2AA"));re.LIGHTSKYBLUE=Object.freeze(re.fromCssColorString("#87CEFA"));re.LIGHTSLATEGRAY=Object.freeze(re.fromCssColorString("#778899"));re.LIGHTSLATEGREY=re.LIGHTSLATEGRAY;re.LIGHTSTEELBLUE=Object.freeze(re.fromCssColorString("#B0C4DE"));re.LIGHTYELLOW=Object.freeze(re.fromCssColorString("#FFFFE0"));re.LIME=Object.freeze(re.fromCssColorString("#00FF00"));re.LIMEGREEN=Object.freeze(re.fromCssColorString("#32CD32"));re.LINEN=Object.freeze(re.fromCssColorString("#FAF0E6"));re.MAGENTA=Object.freeze(re.fromCssColorString("#FF00FF"));re.MAROON=Object.freeze(re.fromCssColorString("#800000"));re.MEDIUMAQUAMARINE=Object.freeze(re.fromCssColorString("#66CDAA"));re.MEDIUMBLUE=Object.freeze(re.fromCssColorString("#0000CD"));re.MEDIUMORCHID=Object.freeze(re.fromCssColorString("#BA55D3"));re.MEDIUMPURPLE=Object.freeze(re.fromCssColorString("#9370DB"));re.MEDIUMSEAGREEN=Object.freeze(re.fromCssColorString("#3CB371"));re.MEDIUMSLATEBLUE=Object.freeze(re.fromCssColorString("#7B68EE"));re.MEDIUMSPRINGGREEN=Object.freeze(re.fromCssColorString("#00FA9A"));re.MEDIUMTURQUOISE=Object.freeze(re.fromCssColorString("#48D1CC"));re.MEDIUMVIOLETRED=Object.freeze(re.fromCssColorString("#C71585"));re.MIDNIGHTBLUE=Object.freeze(re.fromCssColorString("#191970"));re.MINTCREAM=Object.freeze(re.fromCssColorString("#F5FFFA"));re.MISTYROSE=Object.freeze(re.fromCssColorString("#FFE4E1"));re.MOCCASIN=Object.freeze(re.fromCssColorString("#FFE4B5"));re.NAVAJOWHITE=Object.freeze(re.fromCssColorString("#FFDEAD"));re.NAVY=Object.freeze(re.fromCssColorString("#000080"));re.OLDLACE=Object.freeze(re.fromCssColorString("#FDF5E6"));re.OLIVE=Object.freeze(re.fromCssColorString("#808000"));re.OLIVEDRAB=Object.freeze(re.fromCssColorString("#6B8E23"));re.ORANGE=Object.freeze(re.fromCssColorString("#FFA500"));re.ORANGERED=Object.freeze(re.fromCssColorString("#FF4500"));re.ORCHID=Object.freeze(re.fromCssColorString("#DA70D6"));re.PALEGOLDENROD=Object.freeze(re.fromCssColorString("#EEE8AA"));re.PALEGREEN=Object.freeze(re.fromCssColorString("#98FB98"));re.PALETURQUOISE=Object.freeze(re.fromCssColorString("#AFEEEE"));re.PALEVIOLETRED=Object.freeze(re.fromCssColorString("#DB7093"));re.PAPAYAWHIP=Object.freeze(re.fromCssColorString("#FFEFD5"));re.PEACHPUFF=Object.freeze(re.fromCssColorString("#FFDAB9"));re.PERU=Object.freeze(re.fromCssColorString("#CD853F"));re.PINK=Object.freeze(re.fromCssColorString("#FFC0CB"));re.PLUM=Object.freeze(re.fromCssColorString("#DDA0DD"));re.POWDERBLUE=Object.freeze(re.fromCssColorString("#B0E0E6"));re.PURPLE=Object.freeze(re.fromCssColorString("#800080"));re.RED=Object.freeze(re.fromCssColorString("#FF0000"));re.ROSYBROWN=Object.freeze(re.fromCssColorString("#BC8F8F"));re.ROYALBLUE=Object.freeze(re.fromCssColorString("#4169E1"));re.SADDLEBROWN=Object.freeze(re.fromCssColorString("#8B4513"));re.SALMON=Object.freeze(re.fromCssColorString("#FA8072"));re.SANDYBROWN=Object.freeze(re.fromCssColorString("#F4A460"));re.SEAGREEN=Object.freeze(re.fromCssColorString("#2E8B57"));re.SEASHELL=Object.freeze(re.fromCssColorString("#FFF5EE"));re.SIENNA=Object.freeze(re.fromCssColorString("#A0522D"));re.SILVER=Object.freeze(re.fromCssColorString("#C0C0C0"));re.SKYBLUE=Object.freeze(re.fromCssColorString("#87CEEB"));re.SLATEBLUE=Object.freeze(re.fromCssColorString("#6A5ACD"));re.SLATEGRAY=Object.freeze(re.fromCssColorString("#708090"));re.SLATEGREY=re.SLATEGRAY;re.SNOW=Object.freeze(re.fromCssColorString("#FFFAFA"));re.SPRINGGREEN=Object.freeze(re.fromCssColorString("#00FF7F"));re.STEELBLUE=Object.freeze(re.fromCssColorString("#4682B4"));re.TAN=Object.freeze(re.fromCssColorString("#D2B48C"));re.TEAL=Object.freeze(re.fromCssColorString("#008080"));re.THISTLE=Object.freeze(re.fromCssColorString("#D8BFD8"));re.TOMATO=Object.freeze(re.fromCssColorString("#FF6347"));re.TURQUOISE=Object.freeze(re.fromCssColorString("#40E0D0"));re.VIOLET=Object.freeze(re.fromCssColorString("#EE82EE"));re.WHEAT=Object.freeze(re.fromCssColorString("#F5DEB3"));re.WHITE=Object.freeze(re.fromCssColorString("#FFFFFF"));re.WHITESMOKE=Object.freeze(re.fromCssColorString("#F5F5F5"));re.YELLOW=Object.freeze(re.fromCssColorString("#FFFF00"));re.YELLOWGREEN=Object.freeze(re.fromCssColorString("#9ACD32"));re.TRANSPARENT=Object.freeze(new re(0,0,0,0));var B=re;function oN(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}oN.ALL=Object.freeze(new oN({color:new B(0,0,0,0),depth:1,stencil:0}));oN.prototype.execute=function(e,t){e.clear(this,t)};var ei=oN;var bLt=T(S(),1);var mLt=T(S(),1),w1e={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},Ge=Object.freeze(w1e);function Nq(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=Ge.COMPUTE,this.owner=e.owner}Nq.prototype.execute=function(e){e.execute(this)};var Xc=Nq;var FXt=T(S(),1);var nIt=T(S(),1);var TLt=T(S(),1);function kt(e,t){this.x=y(e,0),this.y=y(t,0)}kt.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new kt(e,t)};kt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new kt(e.x,e.y)};kt.fromCartesian3=kt.clone;kt.fromCartesian4=kt.clone;kt.packedLength=2;kt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};kt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new kt),n.x=e[t++],n.y=e[t],n};kt.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;oW.EPSILON12);return l(o)?(o.x=r*w,o.y=s*F,o.z=a*b,o):new h(r*w,s*F,a*b)}var zy=N1e;function Fo(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Fo.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Fo(e,t,n)};Fo.fromDegrees=function(e,t,n,i){return e=W.toRadians(e),t=W.toRadians(t),Fo.fromRadians(e,t,n,i)};var k1e=new h,U1e=new h,D1e=new h;Fo._ellipsoidOneOverRadii=new h(1/6378137,1/6378137,1/6356752314245179e-9);Fo._ellipsoidOneOverRadiiSquared=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9));Fo._ellipsoidCenterToleranceSquared=W.EPSILON1;Fo.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:Fo._ellipsoidOneOverRadii,o=l(t)?t.oneOverRadiiSquared:Fo._ellipsoidOneOverRadiiSquared,r=l(t)?t._centerToleranceSquared:Fo._ellipsoidCenterToleranceSquared,s=zy(e,i,o,r,U1e);if(!l(s))return;let a=h.multiplyComponents(s,o,k1e);a=h.normalize(a,a);let c=h.subtract(e,s,D1e),d=Math.atan2(a.y,a.x),u=Math.asin(a.z),m=W.sign(h.dot(c,e))*h.magnitude(c);return l(n)?(n.longitude=d,n.latitude=u,n.height=m,n):new Fo(d,u,m)};Fo.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Fo.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Fo(e.longitude,e.latitude,e.height)};Fo.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Fo.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Fo.ZERO=Object.freeze(new Fo(0,0,0));Fo.prototype.clone=function(e){return Fo.clone(this,e)};Fo.prototype.equals=function(e){return Fo.equals(this,e)};Fo.prototype.equalsEpsilon=function(e,t){return Fo.equalsEpsilon(this,e,t)};Fo.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var he=Fo;var DLt=T(S(),1);function Oq(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=W.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function pi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,Oq(this,e,t,n)}Object.defineProperties(pi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});pi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new pi(n.x,n.y,n.z)};pi.fromCartesian3=function(e,t){return l(t)||(t=new pi),l(e)&&Oq(t,e.x,e.y,e.z),t};pi.WGS84=Object.freeze(new pi(6378137,6378137,6356752314245179e-9));pi.UNIT_SPHERE=Object.freeze(new pi(1,1,1));pi.MOON=Object.freeze(new pi(W.LUNAR_RADIUS,W.LUNAR_RADIUS,W.LUNAR_RADIUS));pi._default=pi.WGS84;Object.defineProperties(pi,{default:{get:function(){return pi._default},set:function(e){pi._default=e,h._ellipsoidRadiiSquared=e.radiiSquared,he._ellipsoidOneOverRadii=e.oneOverRadii,he._ellipsoidOneOverRadiiSquared=e.oneOverRadiiSquared,he._ellipsoidCenterToleranceSquared=e._centerToleranceSquared}}});pi.prototype.clone=function(e){return pi.clone(this,e)};pi.packedLength=h.packedLength;pi.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};pi.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return pi.fromCartesian3(i,n)};pi.prototype.geocentricSurfaceNormal=h.normalize;pi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};pi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,W.EPSILON14))return l(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var B1e=new h,O1e=new h;pi.prototype.cartographicToCartesian=function(e,t){let n=B1e,i=O1e;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),l(t)||(t=new h),h.add(i,n,t)};pi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i=this._radii.z-t))return n};var K1e=new h;pi.prototype.getLocalCurvature=function(e,t){l(t)||(t=new D);let n=this.getSurfaceNormalIntersectionWithZAxis(e,0,K1e),i=h.distance(e,n),o=this.minimumRadius*i/this.maximumRadius**2,r=i*o**2;return D.fromElements(1/i,1/r,t)};var J1e=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],Q1e=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function Bq(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*J1e[s];r+=Q1e[s]*(n(i+a)+n(i-a))}return r*=o,r}pi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n0){o=r-1;continue}return r}return~(o+1)}var Eo=q1e;var tRt=T(S(),1);function $1e(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var C0=$1e;var LRt=T(S(),1);var lRt=T(S(),1);var iRt=T(S(),1);function eVe(e){return e%4===0&&e%100!==0||e%400===0}var pm=eVe;var Yq=[31,28,31,30,31,30,31,31,30,31,30,31];function tVe(e,t,n,i,o,r,s,a){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,0),o=y(o,0),r=y(r,0),s=y(s,0),a=y(a,!1),this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function x(){go.typeOf.number.greaterThanOrEquals("Year",e,1),go.typeOf.number.lessThanOrEquals("Year",e,9999),go.typeOf.number.greaterThanOrEquals("Month",t,1),go.typeOf.number.lessThanOrEquals("Month",t,12),go.typeOf.number.greaterThanOrEquals("Day",n,1),go.typeOf.number.lessThanOrEquals("Day",n,31),go.typeOf.number.greaterThanOrEquals("Hour",i,0),go.typeOf.number.lessThanOrEquals("Hour",i,23),go.typeOf.number.greaterThanOrEquals("Minute",o,0),go.typeOf.number.lessThanOrEquals("Minute",o,59),go.typeOf.bool("IsLeapSecond",a),go.typeOf.number.greaterThanOrEquals("Second",r,0),go.typeOf.number.lessThanOrEquals("Second",r,a?60:59),go.typeOf.number.greaterThanOrEquals("Millisecond",s,0),go.typeOf.number.lessThan("Millisecond",s,1e3)}function _(){let C=t===2&&pm(e)?Yq[t-1]+1:Yq[t-1];if(n>C)throw new pe("Month and Day represents invalid date")}}var mp=tVe;var uRt=T(S(),1);function nVe(e,t){this.julianDate=e,this.offset=t}var Bi=nVe;var hRt=T(S(),1),iVe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},zn=Object.freeze(iVe);var pRt=T(S(),1),oVe={UTC:0,TAI:1},Hn=Object.freeze(oVe);var zq=new mp,aO=[31,28,31,30,31,30,31,31,30,31,30,31],cO=29;function lO(e,t){return vt.compare(e.julianDate,t.julianDate)}var WS=new Bi;function cN(e){WS.julianDate=e;let t=vt.leapSeconds,n=Eo(t,WS,lO);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&vt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),vt.addSeconds(e,i,e)}function Hq(e,t){WS.julianDate=e;let n=vt.leapSeconds,i=Eo(n,WS,lO);if(i<0&&(i=~i),i===0)return vt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return vt.addSeconds(e,-n[i-1].offset,t);let o=vt.secondsDifference(n[i].julianDate,e);if(o===0)return vt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return vt.addSeconds(e,-n[--i].offset,t)}function V0(e,t,n){let i=t/zn.SECONDS_PER_DAY|0;return e+=i,t-=zn.SECONDS_PER_DAY*i,t<0&&(e--,t+=zn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function dO(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,d=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let u=r+(i*zn.SECONDS_PER_HOUR+o*zn.SECONDS_PER_MINUTE+s*zn.SECONDS_PER_MILLISECOND);return u>=43200&&(d-=1),[d,u]}var rVe=/^(\d{4})$/,sVe=/^(\d{4})-(\d{2})$/,aVe=/^(\d{4})-?(\d{3})$/,cVe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,lVe=/^(\d{4})-?(\d{2})-?(\d{2})$/,uO=/([Z+\-])?(\d{2})?:?(\d{2})?$/,dVe=/^(\d{2})(\.\d+)?/.source+uO.source,uVe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+uO.source,mVe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+uO.source;function vt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Hn.UTC);let i=e|0;t=t+(e-i)*zn.SECONDS_PER_DAY,V0(i,t,this),n===Hn.UTC&&cN(this)}vt.fromGregorianDate=function(e,t){let n=dO(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(V0(n[0],n[1],t),cN(t),t):new vt(n[0],n[1],Hn.UTC)};vt.fromDate=function(e,t){let n=dO(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(V0(n[0],n[1],t),cN(t),t):new vt(n[0],n[1],Hn.UTC)};vt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,d=0,u=n[0],m=n[1],p,g;if(n=u.match(lVe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=u.match(sVe),n!==null)i=+n[1],o=+n[2];else if(n=u.match(rVe),n!==null)i=+n[1];else{let C;if(n=u.match(aVe),n!==null)i=+n[1],C=+n[2],g=pm(i);else if(n=u.match(cVe),n!==null){i=+n[1];let V=+n[2],L=+n[3]||0,Z=new Date(Date.UTC(i,0,4));C=V*7+L-Z.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(C),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=pm(i);let f;if(l(m)){n=m.match(mVe),n!==null?(s=+n[1],a=+n[2],c=+n[3],d=+(n[4]||0)*1e3,f=5):(n=m.match(uVe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,f=4):(n=m.match(dVe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,f=3)));let C=n[f],V=+n[f+1],L=+(n[f+2]||0);switch(C){case"+":s=s-V,a=a-L;break;case"-":s=s+V,a=a+L;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?cO:aO[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?cO:aO[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?cO:aO[o-1],r+=p;let _=dO(i,o,r,s,a,c,d);return l(t)?(V0(_[0],_[1],t),cN(t)):t=new vt(_[0],_[1],Hn.UTC),x&&vt.addSeconds(t,1,t),t};vt.now=function(e){return vt.fromDate(new Date,e)};var aN=new vt(0,0,Hn.TAI);vt.toGregorianDate=function(e,t){let n=!1,i=Hq(e,aN);l(i)||(vt.addSeconds(e,-1,aN),i=Hq(aN,aN),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let d=80*s/2447|0,u=s-(2447*d/80|0)|0;s=d/11|0;let m=d+2-12*s|0,p=100*(a-49)+c+s|0,g=r/zn.SECONDS_PER_HOUR|0,f=r-g*zn.SECONDS_PER_HOUR,x=f/zn.SECONDS_PER_MINUTE|0;f=f-x*zn.SECONDS_PER_MINUTE;let _=f|0,C=(f-_)/zn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(_+=1),l(t)?(t.year=p,t.month=m,t.day=u,t.hour=g,t.minute=x,t.second=_,t.millisecond=C,t.isLeapSecond=n,t):new mp(p,m,u,g,x,_,C,n)};vt.toDate=function(e){let t=vt.toGregorianDate(e,zq),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};vt.toIso8601=function(e,t){let n=vt.toGregorianDate(e,zq),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,d=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&d===0&&(i=9999,o=12,r=31,s=24);let u;return!l(t)&&d!==0?(u=(d*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${u}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(u=(d*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${u}Z`)};vt.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new vt(e.dayNumber,e.secondsOfDay,Hn.TAI)};vt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};vt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};vt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(vt.secondsDifference(e,t))<=n};vt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/zn.SECONDS_PER_DAY};vt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*zn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};vt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/zn.SECONDS_PER_DAY;return n+i};vt.computeTaiMinusUtc=function(e){WS.julianDate=e;let t=vt.leapSeconds,n=Eo(t,WS,lO);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};vt.addSeconds=function(e,t,n){return V0(e.dayNumber,e.secondsOfDay+t,n)};vt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*zn.SECONDS_PER_MINUTE;return V0(e.dayNumber,i,n)};vt.addHours=function(e,t,n){let i=e.secondsOfDay+t*zn.SECONDS_PER_HOUR;return V0(e.dayNumber,i,n)};vt.addDays=function(e,t,n){let i=e.dayNumber+t;return V0(i,e.secondsOfDay,n)};vt.lessThan=function(e,t){return vt.compare(e,t)<0};vt.lessThanOrEquals=function(e,t){return vt.compare(e,t)<=0};vt.greaterThan=function(e,t){return vt.compare(e,t)>0};vt.greaterThanOrEquals=function(e,t){return vt.compare(e,t)>=0};vt.prototype.clone=function(e){return vt.clone(this,e)};vt.prototype.equals=function(e){return vt.equals(this,e)};vt.prototype.equalsEpsilon=function(e,t){return vt.equalsEpsilon(this,e,t)};vt.prototype.toString=function(){return vt.toIso8601(this)};vt.leapSeconds=[new Bi(new vt(2441317,43210,Hn.TAI),10),new Bi(new vt(2441499,43211,Hn.TAI),11),new Bi(new vt(2441683,43212,Hn.TAI),12),new Bi(new vt(2442048,43213,Hn.TAI),13),new Bi(new vt(2442413,43214,Hn.TAI),14),new Bi(new vt(2442778,43215,Hn.TAI),15),new Bi(new vt(2443144,43216,Hn.TAI),16),new Bi(new vt(2443509,43217,Hn.TAI),17),new Bi(new vt(2443874,43218,Hn.TAI),18),new Bi(new vt(2444239,43219,Hn.TAI),19),new Bi(new vt(2444786,43220,Hn.TAI),20),new Bi(new vt(2445151,43221,Hn.TAI),21),new Bi(new vt(2445516,43222,Hn.TAI),22),new Bi(new vt(2446247,43223,Hn.TAI),23),new Bi(new vt(2447161,43224,Hn.TAI),24),new Bi(new vt(2447892,43225,Hn.TAI),25),new Bi(new vt(2448257,43226,Hn.TAI),26),new Bi(new vt(2448804,43227,Hn.TAI),27),new Bi(new vt(2449169,43228,Hn.TAI),28),new Bi(new vt(2449534,43229,Hn.TAI),29),new Bi(new vt(2450083,43230,Hn.TAI),30),new Bi(new vt(2450630,43231,Hn.TAI),31),new Bi(new vt(2451179,43232,Hn.TAI),32),new Bi(new vt(2453736,43233,Hn.TAI),33),new Bi(new vt(2454832,43234,Hn.TAI),34),new Bi(new vt(2456109,43235,Hn.TAI),35),new Bi(new vt(2457204,43236,Hn.TAI),36),new Bi(new vt(2457754,43237,Hn.TAI),37)];var j=vt;var xGt=T(S(),1),m$=T(id(),1);var XRt=T(S(),1);function hVe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var BL=hVe;var vRt=T(S(),1);function e$(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=e$(o,t)),n[i]=o}return n}var Ye=e$;var MRt=T(S(),1);function t$(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=t$(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var Tt=t$;var kRt=T(S(),1);function fVe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var yl=fVe;var ORt=T(S(),1),n$=T(id(),1);function mO(e,t){let n;return typeof document<"u"&&(n=document),mO._implementation(e,t,n)}mO._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new n$.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var kh=mO;var HRt=T(S(),1),i$=T(id(),1);function pVe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new i$.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var OL=pVe;var KRt=T(S(),1),o$=T(id(),1);function bVe(e){let t=new o$.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var Ky=bVe;var jRt=T(S(),1);var r$={};function gVe(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=r$[t];l(i)||(i={},r$[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var bm=gVe;var $Rt=T(S(),1);var yVe=/^blob:/i;function xVe(e){return yVe.test(e)}var Jy=xVe;var nZt=T(S(),1);var Uh;function _Ve(e){l(Uh)||(Uh=document.createElement("a")),Uh.href=window.location.href;let t=Uh.host,n=Uh.protocol;return Uh.href=e,Uh.href=Uh.href,n!==Uh.protocol||t!==Uh.host}var L0=_Ve;var oZt=T(S(),1);var TVe=/^data:/i;function SVe(e){return TVe.test(e)}var hp=SVe;var sZt=T(S(),1);function CVe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var Qy=CVe;var cZt=T(S(),1);function VVe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var YL=GVe;function s$(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=YL(this.responseHeaders))}s$.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Dh=s$;var OZt=T(S(),1),hN=T(id(),1);var IZt=T(S(),1);function HL(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(HL.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});HL.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};HL.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r0){for(o.sort(EVe),e=0;e=0;--t)this.heapify(t)};qy.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(oi&&(r=t[i],this._length=i),r};qy.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return hO(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var zL=qy;function IVe(e,t){return e.priority-t.priority}var qi={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},wS=20,Qa=new zL({comparator:IVe});Qa.maximumLength=wS;Qa.reserve(wS);var Bh=[],fp={},XVe=typeof document<"u"?new hN.default(document.location.href):new hN.default,fN=new be;function zo(){}zo.maximumRequests=50;zo.maximumRequestsPerServer=18;zo.requestsByServer={};zo.throttleRequests=!0;zo.debugShowStatistics=!1;zo.requestCompletedEvent=fN;Object.defineProperties(zo,{statistics:{get:function(){return qi}},priorityHeapLength:{get:function(){return wS},set:function(e){if(ee;){let t=Qa.pop();$y(t)}wS=e,Qa.maximumLength=e,Qa.reserve(e)}}});function a$(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}zo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(zo.requestsByServer[e],zo.maximumRequestsPerServer);return fp[e]+t<=n};zo.heapHasOpenSlots=function(e){return Qa.length+e<=wS};function c$(e){return e.state===jn.UNISSUED&&(e.state=jn.ISSUED,e.deferred=yl()),e.deferred.promise}function WVe(e){return function(t){if(e.state===jn.CANCELLED)return;let n=e.deferred;--qi.numberOfActiveRequests,--fp[e.serverKey],fN.raiseEvent(),e.state=jn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function PVe(e){return function(t){e.state!==jn.CANCELLED&&(++qi.numberOfFailedRequests,--qi.numberOfActiveRequests,--fp[e.serverKey],fN.raiseEvent(t),e.state=jn.FAILED,e.deferred.reject(t))}}function l$(e){let t=c$(e);return e.state=jn.ACTIVE,Bh.push(e),++qi.numberOfActiveRequests,++qi.numberOfActiveRequestsEver,++fp[e.serverKey],e.requestFunction().then(WVe(e)).catch(PVe(e)),t}function $y(e){let t=e.state===jn.ACTIVE;if(e.state=jn.CANCELLED,++qi.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--qi.numberOfActiveRequests,--fp[e.serverKey],++qi.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}zo.update=function(){let e,t,n=0,i=Bh.length;for(e=0;e0&&(Bh[e-n]=t)}Bh.length-=n;let o=Qa.internalArray,r=Qa.length;for(e=0;e0;){if(t=Qa.pop(),t.cancelled){$y(t);continue}if(t.throttleByServer&&!zo.serverHasOpenSlots(t.serverKey)){$y(t);continue}l$(t),++a}vVe()};zo.getServerKey=function(e){let t=new hN.default(e);t.scheme()===""&&(t=t.absoluteTo(XVe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=fp[n];return l(i)||(fp[n]=0),n};zo.request=function(e){if(hp(e.url)||Jy(e.url))return fN.raiseEvent(),e.state=jn.RECEIVED,e.requestFunction();if(++qi.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=zo.getServerKey(e.url)),zo.throttleRequests&&e.throttleByServer&&!zo.serverHasOpenSlots(e.serverKey))return;if(!zo.throttleRequests||!e.throttle)return l$(e);if(Bh.length>=zo.maximumRequests)return;a$(e);let t=Qa.insert(e);if(l(t)){if(t===e)return;$y(t)}return c$(e)};function vVe(){zo.debugShowStatistics&&(qi.numberOfActiveRequests===0&&qi.lastNumberOfActiveRequests>0&&(qi.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${qi.numberOfAttemptedRequests}`),qi.numberOfAttemptedRequests=0),qi.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${qi.numberOfCancelledRequests}`),qi.numberOfCancelledRequests=0),qi.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${qi.numberOfCancelledActiveRequests}`),qi.numberOfCancelledActiveRequests=0),qi.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${qi.numberOfFailedRequests}`),qi.numberOfFailedRequests=0)),qi.lastNumberOfActiveRequests=qi.numberOfActiveRequests)}zo.clearForSpecs=function(){for(;Qa.length>0;){let t=Qa.pop();$y(t)}let e=Bh.length;for(let t=0;t0}},credits:{get:function(){return this._credits}}});Wt.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Wt.prototype.parseUrl=function(e,t,n,i){let o=new m$.default(e),r=FVe(o.query());this._queryParameters=t?bN(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(kh(i))),this._url=o.toString()};function FVe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:od(e)}function bN(e,t,n){if(!n)return Tt(e,t);let i=Ye(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}Wt.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${AVe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function AVe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${jy(e)}`}Wt.prototype.setQueryParameters=function(e,t){t?this._queryParameters=bN(this._queryParameters,e,!1):this._queryParameters=bN(e,this._queryParameters,!1)};Wt.prototype.appendQueryParameters=function(e){this._queryParameters=bN(e,this._queryParameters,!0)};Wt.prototype.setTemplateValues=function(e,t){t?this._templateValues=Tt(this._templateValues,e):this._templateValues=Tt(e,this._templateValues)};Wt.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=Tt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=Tt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=Tt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Wt.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Wt.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Ye(this._queryParameters),e._templateValues=Ye(this._templateValues),e.headers=Ye(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Wt({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:l(this.credits)?this.credits.slice():void 0})};Wt.prototype.getBaseUri=function(e){return OL(this.getUrlComponent(e),e)};Wt.prototype.appendForwardSlash=function(){this._url=BL(this._url)};Wt.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Wt.fetchArrayBuffer=function(e){return new Wt(e).fetchArrayBuffer()};Wt.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Wt.fetchBlob=function(e){return new Wt(e).fetchBlob()};Wt.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(pO(this.request),!h$||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return fO({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,d;return Wt.supportsImageBitmapOptions().then(function(u){return s=u,a=s&&t,r}).then(function(u){if(!l(u))return;if(d=u,a)return Wt.createImageBitmapFromBlob(u,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let m=window.URL.createObjectURL(u);return c=new Wt({url:m}),fO({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(u){if(l(u))return u.blob=d,a||window.URL.revokeObjectURL(c.url),u}).catch(function(u){return l(c)&&window.URL.revokeObjectURL(c.url),u.blob=d,Promise.reject(u)})};function fO(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=yl();return Wt._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=ja.request(r);if(l(s))return s.catch(function(a){return r.state!==jn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=jn.UNISSUED,r.deferred=void 0,fO({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}Wt.fetchImage=function(e){return new Wt(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Wt.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Wt.fetchText=function(e){return new Wt(e).fetchText()};Wt.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};Wt.fetchJson=function(e){return new Wt(e).fetchJson()};Wt.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Wt.fetchXML=function(e){return new Wt(e).fetchXML()};Wt.prototype.fetchJsonp=function(e){e=y(e,"callback"),pO(this.request);let t;do t=`loadJsonp${W.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return f$(this,e,t)};function f$(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=yl();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Wt._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=ja.request(o);if(l(s))return s.catch(function(a){return o.state!==jn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=jn.UNISSUED,o.deferred=void 0,f$(e,t,n)):Promise.reject(a)})})}Wt.fetchJsonp=function(e){return new Wt(e).fetchJsonp(e.callbackParameterName)};Wt.prototype._makeRequest=function(e){let t=this;pO(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=Tt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,d=e.data,u=yl(),m=Wt._Implementations.loadWithXhr(i,r,c,d,s,u,a);return l(m)&&l(m.abort)&&(n.cancelFunction=function(){m.abort()}),u.promise};let o=ja.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==jn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=jn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function pO(e){if(e.state===jn.ISSUED||e.state===jn.ACTIVE)throw new de("The Resource is already being fetched.");e.state=jn.UNISSUED,e.deferred=void 0}var MVe=/^data:(.*?)(;base64)?,(.*)$/;function pN(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function u$(e,t){let n=pN(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r{if(!a.ok){let c={};a.headers.forEach((d,u)=>{c[u]=d}),r.reject(new Dh(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new Dh)})}var UVe=typeof XMLHttpRequest>"u";Wt._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=MVe.exec(e);if(a!==null){r.resolve(NVe(a,t));return}if(UVe){kVe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(AS.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let u in o)o.hasOwnProperty(u)&&c.setRequestHeader(u,o[u]);l(t)&&(c.responseType=t);let d=!1;return typeof e=="string"&&(d=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(d&&c.status===0)){r.reject(new Dh(c.status,c.response,c.getAllResponseHeaders()));return}let u=c.response,m=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),f={};g.forEach(function(x){let _=x.split(": "),C=_.shift();f[C]=_.join(": ")}),r.resolve(f);return}if(c.status===204)r.resolve(void 0);else if(l(u)&&(!l(t)||m===t))r.resolve(u);else if(t==="json"&&typeof u=="string")try{r.resolve(JSON.parse(u))}catch(p){r.reject(p)}else(m===""||m==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(m===""||m==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new de("Invalid XMLHttpRequest response type."))},c.onerror=function(u){r.reject(new Dh)},c.send(i),c};Wt._Implementations.loadAndExecuteScript=function(e,t,n){return Qy(e,t).catch(function(i){n.reject(i)})};Wt._DefaultImplementations={};Wt._DefaultImplementations.createImage=Wt._Implementations.createImage;Wt._DefaultImplementations.loadWithXhr=Wt._Implementations.loadWithXhr;Wt._DefaultImplementations.loadAndExecuteScript=Wt._Implementations.loadAndExecuteScript;Wt.DEFAULT=Object.freeze(new Wt({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var Ee=Wt;function QL(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?p$(this,e.data):p$(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}QL.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=Ee.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new de(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new QL({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};QL.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new C0(0,0,0,0,0),t}});QL.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new C0(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],d=j.lessThanOrEquals(a,e),u=!l(c),m=u||j.greaterThanOrEquals(c,e);if(d&&m)return o=i,!u&&c.equals(e)&&++o,r=o+1,g$(this,n,this._samples,e,o,r,t),t}let s=Eo(n,e,j.compare,this._dateColumn);return s>=0?(st.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],d=t[r];if(c.equals(d)||i.equals(c))return b$(e,n,o,a,s),s;if(i.equals(d))return b$(e,n,r,a,s),s;let u=j.secondsDifference(i,c)/j.secondsDifference(d,c),m=o*a,p=r*a,g=n[m+e._ut1MinusUtcSecondsColumn],f=n[p+e._ut1MinusUtcSecondsColumn],x=f-g;if(x>.5||x<-.5){let _=n[m+e._taiMinusUtcSecondsColumn],C=n[p+e._taiMinusUtcSecondsColumn];_!==C&&(d.equals(i)?g=f:f-=C-_)}return s.xPoleWander=JL(u,n[m+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=JL(u,n[m+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=JL(u,n[m+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=JL(u,n[m+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=JL(u,g,f),s}var jL=QL;var FGt=T(S(),1);function qa(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}qa.fromQuaternion=function(e,t){l(t)||(t=new qa);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-W.asinClamped(n),t};qa.fromDegrees=function(e,t,n,i){return l(i)||(i=new qa),i.heading=e*W.RADIANS_PER_DEGREE,i.pitch=t*W.RADIANS_PER_DEGREE,i.roll=n*W.RADIANS_PER_DEGREE,i};qa.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new qa(e.heading,e.pitch,e.roll)};qa.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};qa.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&W.equalsEpsilon(e.heading,t.heading,n,i)&&W.equalsEpsilon(e.pitch,t.pitch,n,i)&&W.equalsEpsilon(e.roll,t.roll,n,i)};qa.prototype.clone=function(e){return qa.clone(this,e)};qa.prototype.equals=function(e){return qa.equals(this,e)};qa.prototype.equalsEpsilon=function(e,t,n){return qa.equalsEpsilon(this,e,t,n)};qa.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Ca=qa;var $Gt=T(S(),1);var UGt=T(S(),1);var y$={};var x$=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function BVe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t"u"?e:(l(gN)||(gN=document.createElement("a")),gN.href=e,gN.href)}var ex;function T$(){if(l(ex))return ex;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l(y$?.url)?e=kh(".",y$.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(D9.toUrl)?e=kh("..",tx("Core/buildModuleUrl.js")):e=BVe(),ex=new Ee({url:_$(e)}),ex.appendForwardSlash(),ex}function OVe(e){return _$(D9.toUrl(`../${e}`))}function S$(e){return T$().getDerivedResource({url:e}).url}var yN;function tx(e){return l(yN)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(D9.toUrl)?yN=OVe:yN=S$),yN(e)}tx._cesiumScriptRegex=x$;tx._buildModuleUrlFromBaseUrl=S$;tx._clearBaseResource=function(){ex=void 0};tx.setBaseUrl=function(e){ex=Ee.DEFAULT.getDerivedResource({url:e})};tx.getCesiumBaseUrl=T$;var rn=tx;var OGt=T(S(),1);function YVe(e,t,n){this.x=e,this.y=t,this.s=n}var nx=YVe;function yO(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=Ee.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new j(this._sampleZeroJulianEphemerisDate,0,Hn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var HVe=new j(0,0,Hn.TAI);function bO(e,t,n){let i=HVe;return i.dayNumber=t,i.secondsOfDay=n,j.daysDifference(i,e._sampleZeroDateTT)}yO.prototype.preload=function(e,t,n,i){let o=bO(this,e,t),r=bO(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,d=a/this._samplesPerXysFile|0,u=[];for(let m=c;m<=d;++m)u.push(gO(this,m));return Promise.all(u)};yO.prototype.computeXysRadians=function(e,t,n){let i=bO(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,d=this._samples;if(l(d[s*3])||(gO(this,s/this._samplesPerXysFile|0),c=!0),l(d[a*3])||(gO(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new nx(0,0,0);let u=i-s*this._stepSizeDays,m=this._work,p=this._denominators,g=this._coef,f=this._xTable,x,_;for(x=0;x<=r;++x)m[x]=u-f[x];for(x=0;x<=r;++x){for(g[x]=1,_=0;_<=r;++_)_!==x&&(g[x]*=m[_]);g[x]*=p[x];let C=(s+x)*3;n.x+=g[x]*d[C++],n.y+=g[x]*d[C++],n.s+=g[x]*d[C]}return n};function gO(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new Ee({url:rn(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let d=0,u=a.length;d0)n=Math.sqrt(u+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let m=zVe,p=0;c>a&&(p=1),d>a&&d>c&&(p=2);let g=m[p],f=m[g];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(g,g)]-e[$.getElementIndex(f,f)]+1);let x=KVe;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(f,g)]-e[$.getElementIndex(g,f)])*n,x[g]=(e[$.getElementIndex(g,p)]+e[$.getElementIndex(p,g)])*n,x[f]=(e[$.getElementIndex(f,p)]+e[$.getElementIndex(p,f)])*n,i=-x[0],o=-x[1],r=-x[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new st(i,o,r,s)};var C$=new st,V$=new st,xO=new st,L$=new st;st.fromHeadingPitchRoll=function(e,t){return L$=st.fromAxisAngle(h.UNIT_X,e.roll,C$),xO=st.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=st.multiply(xO,L$,xO),V$=st.fromAxisAngle(h.UNIT_Z,-e.heading,C$),st.multiply(V$,t,t)};var xN=new h,_O=new h,gm=new st,R$=new st,_N=new st;st.packedLength=4;st.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};st.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new st),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};st.packedInterpolationLength=3;st.convertPackedArrayForInterpolation=function(e,t,n,i){st.unpack(e,n*4,_N),st.conjugate(_N,_N);for(let o=0,r=n-t+1;o=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,d=a*a;for(let g=7;g>=0;--g)pp[g]=(TN[g]*c-SN[g])*s,bp[g]=(TN[g]*d-SN[g])*s;let u=r*n*(1+pp[0]*(1+pp[1]*(1+pp[2]*(1+pp[3]*(1+pp[4]*(1+pp[5]*(1+pp[6]*(1+pp[7])))))))),m=a*(1+bp[0]*(1+bp[1]*(1+bp[2]*(1+bp[3]*(1+bp[4]*(1+bp[5]*(1+bp[6]*(1+bp[7])))))))),p=st.multiplyByScalar(e,m,jVe);return st.multiplyByScalar(t,u,i),st.add(p,i,i)};st.fastSquad=function(e,t,n,i,o,r){let s=st.fastSlerp(e,t,o,eR),a=st.fastSlerp(n,i,o,NS);return st.fastSlerp(s,a,2*o*(1-o),r)};st.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};st.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};st.ZERO=Object.freeze(new st(0,0,0,0));st.IDENTITY=Object.freeze(new st(0,0,0,1));st.prototype.clone=function(e){return st.clone(this,e)};st.prototype.equals=function(e){return st.equals(this,e)};st.prototype.equalsEpsilon=function(e,t){return st.equalsEpsilon(this,e,t)};st.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var we=st;var ui={},VO={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},kS={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},LO={},xl={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},R0=new h,Z0=new h,G0=new h;ui.localFrameToFixedFrameGenerator=function(e,t){if(!VO.hasOwnProperty(e)||!VO[e].hasOwnProperty(t))throw new pe("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=VO[e][t],i,o=e+t;return l(LO[o])?i=LO[o]:(i=function(r,s,a){if(l(a)||(a=new M),h.equalsEpsilon(r,h.ZERO,W.EPSILON14))h.unpack(kS[e],0,R0),h.unpack(kS[t],0,Z0),h.unpack(kS[n],0,G0);else if(W.equalsEpsilon(r.x,0,W.EPSILON14)&&W.equalsEpsilon(r.y,0,W.EPSILON14)){let c=W.sign(r.z);h.unpack(kS[e],0,R0),e!=="east"&&e!=="west"&&h.multiplyByScalar(R0,c,R0),h.unpack(kS[t],0,Z0),t!=="east"&&t!=="west"&&h.multiplyByScalar(Z0,c,Z0),h.unpack(kS[n],0,G0),n!=="east"&&n!=="west"&&h.multiplyByScalar(G0,c,G0)}else{s=y(s,ne.default),s.geodeticSurfaceNormal(r,xl.up);let c=xl.up,d=xl.east;d.x=-r.y,d.y=r.x,d.z=0,h.normalize(d,xl.east),h.cross(c,d,xl.north),h.multiplyByScalar(xl.up,-1,xl.down),h.multiplyByScalar(xl.east,-1,xl.west),h.multiplyByScalar(xl.north,-1,xl.south),R0=xl[e],Z0=xl[t],G0=xl[n]}return a[0]=R0.x,a[1]=R0.y,a[2]=R0.z,a[3]=0,a[4]=Z0.x,a[5]=Z0.y,a[6]=Z0.z,a[7]=0,a[8]=G0.x,a[9]=G0.y,a[10]=G0.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},LO[o]=i),i};ui.eastNorthUpToFixedFrame=ui.localFrameToFixedFrameGenerator("east","north");ui.northEastDownToFixedFrame=ui.localFrameToFixedFrameGenerator("north","east");ui.northUpEastToFixedFrame=ui.localFrameToFixedFrameGenerator("north","up");ui.northWestUpToFixedFrame=ui.localFrameToFixedFrameGenerator("north","west");var qVe=new we,$Ve=new h(1,1,1),eLe=new M;ui.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,ui.eastNorthUpToFixedFrame);let r=we.fromHeadingPitchRoll(t,qVe),s=M.fromTranslationQuaternionRotationScale(h.ZERO,r,$Ve,eLe);return o=i(e,n,o),M.multiply(o,s,o)};var tLe=new M,nLe=new $;ui.headingPitchRollQuaternion=function(e,t,n,i,o){let r=ui.headingPitchRollToFixedFrame(e,t,n,i,tLe),s=M.getMatrix3(r,nLe);return we.fromRotationMatrix(s,o)};var iLe=new h(1,1,1),oLe=new h,E$=new M,rLe=new M,sLe=new $,aLe=new we;ui.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ne.default),n=y(n,ui.eastNorthUpToFixedFrame),l(i)||(i=new Ca);let o=M.getTranslation(e,oLe);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=M.inverseTransformation(n(o,t,E$),E$),s=M.setScale(e,iLe,rLe);s=M.setTranslation(s,h.ZERO,s),r=M.multiply(r,s,r);let a=we.fromRotationMatrix(M.getMatrix3(r,sLe),aLe);return a=we.normalize(a,a),Ca.fromQuaternion(a,i)};var cLe=6*3600+41*60+50.54841,lLe=8640184812866e-6,dLe=.093104,uLe=-62e-7,mLe=11772758384668e-32,hLe=72921158553e-15,fLe=W.TWO_PI/86400,CN=new j;ui.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=ui.computeIcrfToFixedMatrix(e,t);return l(n)||(n=ui.computeTemeToPseudoFixedMatrix(e,t)),n};ui.computeTemeToPseudoFixedMatrix=function(e,t){CN=j.addSeconds(e,-j.computeTaiMinusUtc(e),CN);let n=CN.dayNumber,i=CN.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/zn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/zn.DAYS_PER_JULIAN_CENTURY;let a=(cLe+o*(lLe+o*(dLe+o*uLe)))*fLe%W.TWO_PI,c=hLe+mLe*(n-24515455e-1),d=(i+zn.SECONDS_PER_DAY*.5)%zn.SECONDS_PER_DAY,u=a+c*d,m=Math.cos(u),p=Math.sin(u);return l(t)?(t[0]=m,t[1]=-p,t[2]=0,t[3]=p,t[4]=m,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(m,p,0,-p,m,0,0,0,1)};ui.iau2006XysData=new qL;ui.earthOrientationParameters=jL.NONE;var GO=32.184,pLe=2451545;ui.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+GO,i=e.stop.dayNumber,o=e.stop.secondsOfDay+GO;return ui.iau2006XysData.preload(t,n,i,o)};ui.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var bLe=32.184,gLe=2451545,VN=new Ca,yLe=new $,xLe=new j;ui.computeMoonFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=j.addSeconds(e,bLe,xLe),i=j.totalDays(n)-gLe,o=W.toRadians(12.112)-W.toRadians(.052992)*i,r=W.toRadians(24.224)-W.toRadians(.105984)*i,s=W.toRadians(227.645)+W.toRadians(13.012)*i,a=W.toRadians(261.105)+W.toRadians(13.340716)*i,c=W.toRadians(358)+W.toRadians(.9856)*i;return VN.pitch=W.toRadians(180)-W.toRadians(3.878)*Math.sin(o)-W.toRadians(.12)*Math.sin(r)+W.toRadians(.07)*Math.sin(s)-W.toRadians(.017)*Math.sin(a),VN.roll=W.toRadians(66.53-90)+W.toRadians(1.543)*Math.cos(o)+W.toRadians(.24)*Math.cos(r)-W.toRadians(.028)*Math.cos(s)+W.toRadians(.007)*Math.cos(a),VN.heading=W.toRadians(244.375-90)+W.toRadians(13.17635831)*i+W.toRadians(3.558)*Math.sin(o)+W.toRadians(.121)*Math.sin(r)-W.toRadians(.064)*Math.sin(s)+W.toRadians(.016)*Math.sin(a)+W.toRadians(.025)*Math.sin(c),$.fromHeadingPitchRoll(VN,yLe)};ui.computeIcrfToMoonFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeMoonFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var _Le=new nx(0,0,0),TLe=new C0(0,0,0,0,0,0),RO=new $,ZO=new $;ui.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=ui.earthOrientationParameters.compute(e,TLe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+GO,r=ui.iau2006XysData.computeXysRadians(i,o,_Le);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),d=RO;d[0]=1-c*s*s,d[3]=-c*s*a,d[6]=s,d[1]=-c*s*a,d[4]=1-c*a*a,d[7]=a,d[2]=-s,d[5]=-a,d[8]=1-c*(s*s+a*a);let u=$.fromRotationZ(-r.s,ZO),m=$.multiply(d,u,RO),p=e.dayNumber,g=e.secondsOfDay-j.computeTaiMinusUtc(e)+n.ut1MinusUtc,f=p-2451545,x=g/zn.SECONDS_PER_DAY,_=.779057273264+x+.00273781191135448*(f+x);_=_%1*W.TWO_PI;let C=$.fromRotationZ(_,ZO),V=$.multiply(m,C,RO),L=Math.cos(n.xPoleWander),Z=Math.cos(n.yPoleWander),G=Math.sin(n.xPoleWander),I=Math.sin(n.yPoleWander),v=i-pLe+o/zn.SECONDS_PER_DAY;v/=36525;let P=-47e-6*v*W.RADIANS_PER_DEGREE/3600,w=Math.cos(P),F=Math.sin(P),b=ZO;return b[0]=L*w,b[1]=L*F,b[2]=G,b[3]=-Z*F+I*G*w,b[4]=Z*w+I*G*F,b[5]=-I*L,b[6]=-I*F-Z*G*w,b[7]=I*w-Z*G*F,b[8]=Z*L,$.multiply(V,b,t)};var SLe=new se;ui.pointToWindowCoordinates=function(e,t,n,i){return i=ui.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};ui.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new D);let o=SLe;return M.multiplyByVector(e,se.fromElements(n.x,n.y,n.z,1,o),o),se.multiplyByScalar(o,1/o.w,o),M.multiplyByVector(t,o,o),D.fromCartesian4(o,i)};var CLe=new h,VLe=new h,LLe=new h;ui.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ne.default).geodeticSurfaceNormal(e,CLe),r=h.cross(t,o,VLe);h.equalsEpsilon(r,h.ZERO,W.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,LLe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var I$=new M(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),X$=new he,EO=new h,RLe=new h,ZLe=new $,IO=new M,W$=new M;ui.basisTo2D=function(e,t,n){let i=M.getTranslation(t,RLe),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,EO);else{let u=o.cartesianToCartographic(i,X$);r=e.project(u,EO),h.fromElements(r.z,r.x,r.y,r)}let s=ui.eastNorthUpToFixedFrame(i,o,IO),a=M.inverseTransformation(s,W$),c=M.getMatrix3(t,ZLe),d=M.multiplyByMatrix3(a,c,n);return M.multiply(I$,d,n),M.setTranslation(n,r,n),n};ui.ellipsoidTo2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=ui.eastNorthUpToFixedFrame(t,i,IO),r=M.inverseTransformation(o,W$),s=i.cartesianToCartographic(t,X$),a=e.project(s,EO);h.fromElements(a.z,a.x,a.y,a);let c=M.fromTranslation(a,IO);return M.multiply(I$,r,n),M.multiply(c,n,n),n};var Ft=ui;var wEt=T(S(),1);var WEt=T(S(),1);var P$={};function tR(e,t){l(P$[e])||(P$[e]=!0,console.warn(y(t,e)))}tR.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";tR.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";tR.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";tR.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var St=tR;function GLe(e,t){St(e,t)}var ls=GLe;function Zn(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(Zn.prototype,{width:{get:function(){return Zn.computeWidth(this)}},height:{get:function(){return Zn.computeHeight(this)}}});Zn.packedLength=4;Zn.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};Zn.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Zn),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};Zn.computeWidth=function(e){let t=e.east,n=e.west;return t=0?u.longitude:u.longitude+W.TWO_PI;o=Math.min(o,m),r=Math.max(r,m)}return i-n>r-o&&(n=o,i=r,i>W.PI&&(i=i-W.TWO_PI),n>W.PI&&(n=n-W.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new Zn(n,s,i,a)};Zn.fromCartesianArray=function(e,t,n){t=y(t,ne.default);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let d=0,u=e.length;d=0?m.longitude:m.longitude+W.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>W.PI&&(o=o-W.TWO_PI),i>W.PI&&(i=i-W.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new Zn(i,a,o,c)};var ELe=new h,ILe=new h,XLe=new h,WLe=new h,PLe=new h,XO=new Array(5);for(let e=0;e0?i+=W.TWO_PI:r0&&(r+=W.TWO_PI),i=u))return l(n)?(n.west=a,n.south=d,n.east=c,n.north=u,n):new Zn(a,d,c,u)};Zn.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new Zn(i,o,r,s)};Zn.union=function(e,t,n){l(n)||(n=new Zn);let i=e.east,o=e.west,r=t.east,s=t.west;i0?i+=W.TWO_PI:r0&&(r+=W.TWO_PI),io||W.equalsEpsilon(n,o,W.EPSILON14))&&(n=e.south&&i<=e.north};var vLe=new he;Zn.subsample=function(e,t,n,i){t=y(t,ne.default),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,d=vLe;d.height=n,d.longitude=c,d.latitude=r,i[o]=t.cartographicToCartesian(d,i[o]),o++,d.longitude=a,i[o]=t.cartographicToCartesian(d,i[o]),o++,d.latitude=s,i[o]=t.cartographicToCartesian(d,i[o]),o++,d.longitude=c,i[o]=t.cartographicToCartesian(d,i[o]),o++,r<0?d.latitude=r:s>0?d.latitude=s:d.latitude=0;for(let u=1;u<8;++u)d.longitude=-Math.PI+u*W.PI_OVER_TWO,Zn.contains(e,d)&&(i[o]=t.cartographicToCartesian(d,i[o]),o++);return d.latitude===0&&(d.longitude=c,i[o]=t.cartographicToCartesian(d,i[o]),o++,d.longitude=a,i[o]=t.cartographicToCartesian(d,i[o]),o++),i.length=o,i};Zn.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new Zn),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=W.TWO_PI+e.east-e.west;r.west=W.negativePiToPi(e.west+t*a),r.east=W.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};Zn.MAX_VALUE=Object.freeze(new Zn(-Math.PI,-W.PI_OVER_TWO,Math.PI,W.PI_OVER_TWO));var ae=Zn;function Xr(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Xr.packedLength=4;Xr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};Xr.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Xr),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Xr.fromPoints=function(e,t){if(l(t)||(t=new Xr),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;an.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};Xr.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.widthr+t.height?Jt.OUTSIDE:Jt.INTERSECTING};Xr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Xr.prototype.clone=function(e){return Xr.clone(this,e)};Xr.prototype.intersect=function(e){return Xr.intersect(this,e)};Xr.prototype.equals=function(e){return Xr.equals(this,e)};var Ke=Xr;var rIt=T(S(),1);var Va={POINTS:ie.POINTS,LINES:ie.LINES,LINE_LOOP:ie.LINE_LOOP,LINE_STRIP:ie.LINE_STRIP,TRIANGLES:ie.TRIANGLES,TRIANGLE_STRIP:ie.TRIANGLE_STRIP,TRIANGLE_FAN:ie.TRIANGLE_FAN};Va.isLines=function(e){return e===Va.LINES||e===Va.LINE_LOOP||e===Va.LINE_STRIP};Va.isTriangles=function(e){return e===Va.TRIANGLES||e===Va.TRIANGLE_STRIP||e===Va.TRIANGLE_FAN};Va.validate=function(e){return e===Va.POINTS||e===Va.LINES||e===Va.LINE_LOOP||e===Va.LINE_STRIP||e===Va.TRIANGLES||e===Va.TRIANGLE_STRIP||e===Va.TRIANGLE_FAN};var Fe=Object.freeze(Va);var aIt=T(S(),1),ix=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var mIt=T(S(),1);var br={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function nR(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Fe.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._pickMetadataAllowed=e.pickMetadataAllowed===!0,this._pickedMetadataInfo=void 0,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function $a(e,t){return(e._flags&t)===t}function E0(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(nR.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return $a(this,br.CULL)},set:function(e){$a(this,br.CULL)!==e&&(E0(this,br.CULL,e),this.dirty=!0)}},occlude:{get:function(){return $a(this,br.OCCLUDE)},set:function(e){$a(this,br.OCCLUDE)!==e&&(E0(this,br.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return $a(this,br.CAST_SHADOWS)},set:function(e){$a(this,br.CAST_SHADOWS)!==e&&(E0(this,br.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return $a(this,br.RECEIVE_SHADOWS)},set:function(e){$a(this,br.RECEIVE_SHADOWS)!==e&&(E0(this,br.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return $a(this,br.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){$a(this,br.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(E0(this,br.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return $a(this,br.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){$a(this,br.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(E0(this,br.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickMetadataAllowed:{get:function(){return this._pickMetadataAllowed}},pickedMetadataInfo:{get:function(){return this._pickedMetadataInfo},set:function(e){this._pickedMetadataInfo!==e&&(this._pickedMetadataInfo=e,this.dirty=!0)}},pickOnly:{get:function(){return $a(this,br.PICK_ONLY)},set:function(e){$a(this,br.PICK_ONLY)!==e&&(E0(this,br.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return $a(this,br.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){$a(this,br.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(E0(this,br.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});nR.shallowClone=function(e,t){if(l(e))return l(t)||(t=new nR),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._pickMetadataAllowed=e._pickMetadataAllowed,t._pickedMetadataInfo=e._pickedMetadataInfo,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};nR.prototype.execute=function(e,t){e.draw(this,t)};var tt=nR;var ZIt=T(S(),1);var xIt=T(S(),1);var pIt=T(S(),1);var mi={UNSIGNED_BYTE:ie.UNSIGNED_BYTE,UNSIGNED_SHORT:ie.UNSIGNED_SHORT,UNSIGNED_INT:ie.UNSIGNED_INT,FLOAT:ie.FLOAT,HALF_FLOAT:ie.HALF_FLOAT_OES,UNSIGNED_INT_24_8:ie.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:ie.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:ie.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:ie.UNSIGNED_SHORT_5_6_5};mi.toWebGLConstant=function(e,t){switch(e){case mi.UNSIGNED_BYTE:return ie.UNSIGNED_BYTE;case mi.UNSIGNED_SHORT:return ie.UNSIGNED_SHORT;case mi.UNSIGNED_INT:return ie.UNSIGNED_INT;case mi.FLOAT:return ie.FLOAT;case mi.HALF_FLOAT:return t.webgl2?ie.HALF_FLOAT:ie.HALF_FLOAT_OES;case mi.UNSIGNED_INT_24_8:return ie.UNSIGNED_INT_24_8;case mi.UNSIGNED_SHORT_4_4_4_4:return ie.UNSIGNED_SHORT_4_4_4_4;case mi.UNSIGNED_SHORT_5_5_5_1:return ie.UNSIGNED_SHORT_5_5_5_1;case mi.UNSIGNED_SHORT_5_6_5:return mi.UNSIGNED_SHORT_5_6_5}};mi.isPacked=function(e){return e===mi.UNSIGNED_INT_24_8||e===mi.UNSIGNED_SHORT_4_4_4_4||e===mi.UNSIGNED_SHORT_5_5_5_1||e===mi.UNSIGNED_SHORT_5_6_5};mi.sizeInBytes=function(e){switch(e){case mi.UNSIGNED_BYTE:return 1;case mi.UNSIGNED_SHORT:case mi.UNSIGNED_SHORT_4_4_4_4:case mi.UNSIGNED_SHORT_5_5_5_1:case mi.UNSIGNED_SHORT_5_6_5:case mi.HALF_FLOAT:return 2;case mi.UNSIGNED_INT:case mi.FLOAT:case mi.UNSIGNED_INT_24_8:return 4}};mi.validate=function(e){return e===mi.UNSIGNED_BYTE||e===mi.UNSIGNED_SHORT||e===mi.UNSIGNED_INT||e===mi.FLOAT||e===mi.HALF_FLOAT||e===mi.UNSIGNED_INT_24_8||e===mi.UNSIGNED_SHORT_4_4_4_4||e===mi.UNSIGNED_SHORT_5_5_5_1||e===mi.UNSIGNED_SHORT_5_6_5};mi.getTypedArrayConstructor=function(e){let t=mi.sizeInBytes(e);return t===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:t===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:t===Float32Array.BYTES_PER_ELEMENT&&e===mi.FLOAT?Float32Array:Uint32Array};var qe=Object.freeze(mi);var lt={DEPTH_COMPONENT:ie.DEPTH_COMPONENT,DEPTH_STENCIL:ie.DEPTH_STENCIL,ALPHA:ie.ALPHA,RED:ie.RED,RG:ie.RG,RGB:ie.RGB,RGBA:ie.RGBA,LUMINANCE:ie.LUMINANCE,LUMINANCE_ALPHA:ie.LUMINANCE_ALPHA,RGB_DXT1:ie.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:ie.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:ie.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:ie.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:ie.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:ie.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:ie.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:ie.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:ie.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:ie.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:ie.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:ie.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:ie.COMPRESSED_RGBA_BPTC_UNORM};lt.componentsLength=function(e){switch(e){case lt.RGB:return 3;case lt.RGBA:return 4;case lt.LUMINANCE_ALPHA:case lt.RG:return 2;case lt.ALPHA:case lt.RED:case lt.LUMINANCE:return 1;default:return 1}};lt.validate=function(e){return e===lt.DEPTH_COMPONENT||e===lt.DEPTH_STENCIL||e===lt.ALPHA||e===lt.RED||e===lt.RG||e===lt.RGB||e===lt.RGBA||e===lt.LUMINANCE||e===lt.LUMINANCE_ALPHA||e===lt.RGB_DXT1||e===lt.RGBA_DXT1||e===lt.RGBA_DXT3||e===lt.RGBA_DXT5||e===lt.RGB_PVRTC_4BPPV1||e===lt.RGB_PVRTC_2BPPV1||e===lt.RGBA_PVRTC_4BPPV1||e===lt.RGBA_PVRTC_2BPPV1||e===lt.RGBA_ASTC||e===lt.RGB_ETC1||e===lt.RGB8_ETC2||e===lt.RGBA8_ETC2_EAC||e===lt.RGBA_BC7};lt.isColorFormat=function(e){return e===lt.RED||e===lt.ALPHA||e===lt.RGB||e===lt.RGBA||e===lt.LUMINANCE||e===lt.LUMINANCE_ALPHA};lt.isDepthFormat=function(e){return e===lt.DEPTH_COMPONENT||e===lt.DEPTH_STENCIL};lt.isCompressedFormat=function(e){return e===lt.RGB_DXT1||e===lt.RGBA_DXT1||e===lt.RGBA_DXT3||e===lt.RGBA_DXT5||e===lt.RGB_PVRTC_4BPPV1||e===lt.RGB_PVRTC_2BPPV1||e===lt.RGBA_PVRTC_4BPPV1||e===lt.RGBA_PVRTC_2BPPV1||e===lt.RGBA_ASTC||e===lt.RGB_ETC1||e===lt.RGB8_ETC2||e===lt.RGBA8_ETC2_EAC||e===lt.RGBA_BC7};lt.isDXTFormat=function(e){return e===lt.RGB_DXT1||e===lt.RGBA_DXT1||e===lt.RGBA_DXT3||e===lt.RGBA_DXT5};lt.isPVRTCFormat=function(e){return e===lt.RGB_PVRTC_4BPPV1||e===lt.RGB_PVRTC_2BPPV1||e===lt.RGBA_PVRTC_4BPPV1||e===lt.RGBA_PVRTC_2BPPV1};lt.isASTCFormat=function(e){return e===lt.RGBA_ASTC};lt.isETC1Format=function(e){return e===lt.RGB_ETC1};lt.isETC2Format=function(e){return e===lt.RGB8_ETC2||e===lt.RGBA8_ETC2_EAC};lt.isBC7Format=function(e){return e===lt.RGBA_BC7};lt.compressedTextureSizeInBytes=function(e,t,n){switch(e){case lt.RGB_DXT1:case lt.RGBA_DXT1:case lt.RGB_ETC1:case lt.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case lt.RGBA_DXT3:case lt.RGBA_DXT5:case lt.RGBA_ASTC:case lt.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case lt.RGB_PVRTC_4BPPV1:case lt.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case lt.RGB_PVRTC_2BPPV1:case lt.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case lt.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};lt.textureSizeInBytes=function(e,t,n,i){let o=lt.componentsLength(e);return qe.isPacked(t)&&(o=1),o*qe.sizeInBytes(t)*n*i};lt.alignmentInBytes=function(e,t,n){let i=lt.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};lt.createTypedArray=function(e,t,n,i){let o=qe.getTypedArrayConstructor(t),r=lt.componentsLength(e)*n*i;return new o(r)};lt.flipY=function(e,t,n,i,o){if(o===1)return e;let r=lt.createTypedArray(t,n,i,o),s=lt.componentsLength(t),a=i*s;for(let c=0;c0&&console.log(`${zh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${zh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${zh}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let d,u=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${zh}Shader program link log: ${c}`),m(o,"vertex"),m(r,"fragment"),d=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${zh}Vertex shader compile log: ${c}`),console.error(`${zh} Vertex shader source: +${n}`),d=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${zh}Fragment shader compile log: ${c}`),console.error(`${zh} Fragment shader source: +${i}`),d=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new de(d);function m(p,g){if(!l(u))return;let f=u.getTranslatedShaderSource(p);if(f===""){console.error(`${zh}${g} shader translation failed.`);return}console.error(`${zh}Translated ${g} shaderSource: +${f}`)}}function $Le(e,t,n){let i={};for(let o=0;o=0){if(u=n[d.slice(0,f)],!l(u))continue;m=u._locations,m.length<=1&&(p=u.value,g=e.getUniformLocation(t,d),g!==null&&(m.push(g),p.push(e.getUniform(t,g))))}else{m=[];for(let x=0;x{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),oa._canTransferArrayBuffer=s}})}return oa._canTransferArrayBuffer}var MO=new be;function AO(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function NO(e){let t=new Cee.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(L0(e))s=e;else if(!n){let a=rn(`${oa._workerModulePrefix}/${i}.js`);L0(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=AO(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=` + importScripts("${AO(CESIUM_WORKERS)}"); + CesiumWorkers["${i}"](); + `;return r=AO(a),new Worker(r,o)}if(r=e,n||(r=rn(`${oa._workerModulePrefix+i}.js`)),!zt.supportsEsmWebWorkers())throw new de("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function xRe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!zt.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new de(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=rn(t.fallbackModulePath),n}n.wasmBinaryFile=rn(t.wasmBinaryFile);let i=await Ee.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function oa(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var _Re=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new de(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new pe(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),MO.raiseEvent(s),i(s)}else MO.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},TRe=[];async function SRe(e,t,n){let i=await Promise.resolve(Vee());l(n)?i||(n.length=0):n=TRe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",_Re(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:rn.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function CRe(e,t,n){++e._activeTasks;try{let i=await SRe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}oa.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=NO(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return CRe(this,e,t)};oa.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=NO(this._workerPath),i=await xRe(this,e),o=await Promise.resolve(Vee()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,d)=>{n.onmessage=function({data:u}){l(u)?c(u.result):d(new de("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};oa.prototype.isDestroyed=function(){return!1};oa.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),me(this)};oa.taskCompletedEvent=MO;oa._defaultWorkerModulePrefix="Workers/";oa._workerModulePrefix=oa._defaultWorkerModulePrefix;oa._canTransferArrayBuffer=void 0;var bi=oa;function yp(){}yp._transcodeTaskProcessor=new bi("transcodeKTX2",Number.POSITIVE_INFINITY);yp._readyPromise=void 0;function VRe(){let e=yp._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return yp._transcodeTaskProcessor;throw new de("KTX2 transcoder could not be initialized.")});yp._readyPromise=e}yp.transcode=function(e,t){return l(yp._readyPromise)||VRe(),yp._readyPromise.then(function(n){let i=e;e instanceof ArrayBuffer&&(i=new Uint8Array(e));let o={supportedTargetFormats:t,ktx2Buffer:i};return n.scheduleTask(o,[i.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]);for(let r=0;rs.x&&h.clone(n,s),wa.y&&h.clone(n,a),Fc.z&&h.clone(n,c)}let m=h.magnitudeSquared(h.subtract(s,i,ra)),p=h.magnitudeSquared(h.subtract(a,o,ra)),g=h.magnitudeSquared(h.subtract(c,r,ra)),f=i,x=s,_=m;p>_&&(_=p,f=o,x=a),g>_&&(_=g,f=r,x=c);let C=JO;C.x=(f.x+x.x)*.5,C.y=(f.y+x.y)*.5,C.z=(f.z+x.z)*.5;let V=h.magnitudeSquared(h.subtract(x,C,ra)),L=Math.sqrt(V),Z=QO;Z.x=i.x,Z.y=o.y,Z.z=r.z;let G=jO;G.x=s.x,G.y=a.y,G.z=c.z;let I=h.midpoint(Z,G,qO),v=0;for(u=0;uv&&(v=P);let w=h.magnitudeSquared(h.subtract(n,C,ra));if(w>V){let F=Math.sqrt(w);L=(L+F)*.5,V=L*L;let b=F-L;C.x=(L*C.x+b*n.x)/F,C.y=(L*C.y+b*n.y)/F,C.z=(L*C.z+b*n.z)/F}}return Lc.x&&h.clone(o,c),bd.y&&h.clone(o,d),Ru.z&&h.clone(o,u)}let g=h.magnitudeSquared(h.subtract(c,r,ra)),f=h.magnitudeSquared(h.subtract(d,s,ra)),x=h.magnitudeSquared(h.subtract(u,a,ra)),_=r,C=c,V=g;f>V&&(V=f,_=s,C=d),x>V&&(V=x,_=a,C=u);let L=JO;L.x=(_.x+C.x)*.5,L.y=(_.y+C.y)*.5,L.z=(_.z+C.z)*.5;let Z=h.magnitudeSquared(h.subtract(C,L,ra)),G=Math.sqrt(Z),I=QO;I.x=r.x,I.y=s.y,I.z=a.z;let v=jO;v.x=c.x,v.y=d.y,v.z=u.z;let P=h.midpoint(I,v,qO),w=0;for(p=0;pw&&(w=F);let b=h.magnitudeSquared(h.subtract(o,L,ra));if(b>Z){let R=Math.sqrt(b);G=(G+R)*.5,Z=G*G;let E=R-G;L.x=(G*L.x+E*o.x)/R,L.y=(G*L.y+E*o.y)/R,L.z=(G*L.z+E*o.z)/R}}return Ga.x&&h.clone(i,a),Fc.y&&h.clone(i,c),bd.z&&h.clone(i,d)}let p=h.magnitudeSquared(h.subtract(a,o,ra)),g=h.magnitudeSquared(h.subtract(c,r,ra)),f=h.magnitudeSquared(h.subtract(d,s,ra)),x=o,_=a,C=p;g>C&&(C=g,x=r,_=c),f>C&&(C=f,x=s,_=d);let V=JO;V.x=(x.x+_.x)*.5,V.y=(x.y+_.y)*.5,V.z=(x.z+_.z)*.5;let L=h.magnitudeSquared(h.subtract(_,V,ra)),Z=Math.sqrt(L),G=QO;G.x=o.x,G.y=r.y,G.z=s.z;let I=jO;I.x=a.x,I.y=c.y,I.z=d.z;let v=h.midpoint(G,I,qO),P=0;for(m=0;mP&&(P=w);let F=h.magnitudeSquared(h.subtract(i,V,ra));if(F>L){let b=Math.sqrt(F);Z=(Z+b)*.5,L=Z*Z;let R=b-Z;V.x=(Z*V.x+R*i.x)/b,V.y=(Z*V.y+R*i.y)/b,V.z=(Z*V.z+R*i.z)/b}}return Z=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let d=(o+c+s)*.5,u=h.multiplyByScalar(a,(-o+d)/c,ARe);return h.add(u,i,u),h.clone(u,n.center),n.radius=d,n};var MRe=new h;fn.expand=function(e,t,n){n=fn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,MRe));return i>n.radius&&(n.radius=i),n};fn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?Jt.OUTSIDE:r>1^-(e&1)}yo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a>11,u=c>>5&o,m=c&i,p=3*a;t[p]=d*r,t[p+1]=u*s,t[p+2]=m*r}return t};var wn=yo;var N2t=T(S(),1);var Mee=new h,Nee=new h,kee=new h;function JRe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,d,u,m,p;if(l(t.z)){if(h.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,Mee),s=h.subtract(i,t,Nee),a=h.subtract(e,t,kee),c=h.dot(r,r),d=h.dot(r,s),u=h.dot(r,a),m=h.dot(s,s),p=h.dot(s,a)}else{if(D.equalsEpsilon(e,t,W.EPSILON14))return h.clone(h.UNIT_X,o);if(D.equalsEpsilon(e,n,W.EPSILON14))return h.clone(h.UNIT_Y,o);if(D.equalsEpsilon(e,i,W.EPSILON14))return h.clone(h.UNIT_Z,o);r=D.subtract(n,t,Mee),s=D.subtract(i,t,Nee),a=D.subtract(e,t,kee),c=D.dot(r,r),d=D.dot(r,s),u=D.dot(r,a),m=D.dot(s,s),p=D.dot(s,a)}o.y=m*u-d*p,o.z=c*p-d*u;let g=c*m-d*d;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var rx=JRe;var B2t=T(S(),1);function Kh(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}Kh.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var xp={high:0,low:0};Kh.fromCartesian=function(e,t){l(t)||(t=new Kh);let n=t.high,i=t.low;return Kh.encode(e.x,xp),n.x=xp.high,i.x=xp.low,Kh.encode(e.y,xp),n.y=xp.high,i.y=xp.low,Kh.encode(e.z,xp),n.z=xp.high,i.z=xp.low,t};var nY=new Kh;Kh.writeElements=function(e,t,n){Kh.fromCartesian(e,nY);let i=nY.high,o=nY.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var On=Kh;var gPt=T(S(),1);var H2t=T(S(),1);var iY={};iY.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function Uee(e,t,n){let i=e+t;return W.sign(e)!==W.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))d&&d/c0?[a/e,n/a]:[n/a,a/e]};var Wc=iY;var ePt=T(S(),1);var J2t=T(S(),1);var rY={};rY.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function oY(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,d=r*a,u=r*r,m=s*s,p=o*s-u,g=o*a-r*s,f=r*a-m,x=4*p*f-g*g,_,C;if(x<0){let H,J,te;u*d>=c*m?(H=o,J=p,te=-2*r*p+o*g):(H=a,J=f,te=-a*g+2*s*f);let q=-(te<0?-1:1)*Math.abs(H)*Math.sqrt(-x);C=-te+q;let ee=C/2,fe=ee<0?-Math.pow(-ee,1/3):Math.pow(ee,1/3),_e=C===q?-fe:-J/fe;return _=J<=0?fe+_e:-te/(fe*fe+_e*_e+J),u*d>=c*m?[(_-r)/o]:[-a/(_+s)]}let V=p,L=-2*r*p+o*g,Z=f,G=-a*g+2*s*f,I=Math.sqrt(x),v=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*I,-L)/3);_=2*Math.sqrt(-V);let w=Math.cos(P);C=_*w;let F=_*(-w/2-v*Math.sin(P)),b=C+F>2*r?C-r:F-r,R=o,E=b/R;P=Math.abs(Math.atan2(a*I,-G)/3),_=2*Math.sqrt(-Z),w=Math.cos(P),C=_*w,F=_*(-w/2-v*Math.sin(P));let X=-a,A=C+F<2*s?C+s:F+s,N=X/A,O=R*A,U=-b*A-R*X,Y=b*X,k=(s*U-r*Y)/(-r*U+s*O);return E<=k?E<=N?k<=N?[E,k,N]:[E,N,k]:[N,E,k]:E<=N?[k,E,N]:k<=N?[k,N,E]:[N,k,E]}rY.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Wc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Wc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return oY(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):oY(e,t,0,i);if(i===0)return o=Wc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return oY(e,t,n,i)};var sx=rY;var sY={};sY.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,d=n*n,u=d*n,m=i*i,p=m*i,g=o*o,f=g*o;return a*d*m-4*c*p-4*e*u*m+18*e*t*n*p-27*r*m*m+256*s*f+o*(18*c*n*i-4*a*u+16*e*d*d-80*e*t*d*i-6*e*a*m+144*r*n*m)+g*(144*e*a*n-27*a*a-128*r*d-192*r*t*i)};function xm(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=sx.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let d=-e/4,u=c[c.length-1];if(Math.abs(u)=0&&g>=0){let x=Math.sqrt(p),_=Math.sqrt(g);return[d-_,d-x,d+x,d+_]}else{if(p>=0&&g<0)return f=Math.sqrt(p),[d-f,d+f];if(p<0&&g>=0)return f=Math.sqrt(g),[d-f,d+f]}}return[]}else if(u>0){let m=Math.sqrt(u),p=(r+u-s/m)/2,g=(r+u+s/m)/2,f=Wc.computeRealRoots(1,m,p),x=Wc.computeRealRoots(1,-m,g);return f.length!==0?(f[0]+=d,f[1]+=d,x.length!==0?(x[0]+=d,x[1]+=d,f[1]<=x[0]?[f[0],f[1],x[0],x[1]]:x[1]<=f[0]?[x[0],x[1],f[0],f[1]]:f[0]>=x[0]&&f[1]<=x[1]?[x[0],f[0],f[1],x[1]]:x[0]>=f[0]&&x[1]<=f[1]?[f[0],x[0],x[1],f[1]]:f[0]>x[0]&&f[0]0){let m=u[0],p=t-m,g=p*p,f=e/2,x=p/2,_=g-4*i,C=g+4*Math.abs(i),V=s-4*m,L=s+4*Math.abs(m),Z,G;if(m<0||_*L=b[0]&&F[1]<=b[1]?[b[0],F[0],F[1],b[1]]:b[0]>=F[0]&&b[1]<=F[1]?[F[0],b[0],b[1],F[1]]:F[0]>b[0]&&F[0]u)||(p=h.cross(m,a,Bee),f=h.dot(s,p),f<0||g+f>u))return;x=h.dot(c,p)/u}else{if(Math.abs(u)1||(p=h.cross(m,a,Bee),f=h.dot(s,p)*_,f<0||g+f>1))return;x=h.dot(c,p)*_}return x};Ao.rayTriangle=function(e,t,n,i,o,r){let s=Ao.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var qRe=new pn;Ao.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=qRe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=Ao.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function $Re(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,d=(-t-a)*s;return cs))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var nZe=new h,iZe=new h;Ao.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,nZe),o=h.multiplyComponents(n,e.direction,iZe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,d,u,m;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),d=c*a,pd){u=s*s-d,m=-s+Math.sqrt(u);let f=m/c,x=a/m;return f0?g.push(new h(i,o*w,o*-R)):R!==0?(g.push(new h(i,o*w,o*-R)),g.push(new h(i,o*w,o*R)),++P):g.push(new h(i,o*w,o*R))}return g};var aY=new h,Oee=new h,Yee=new h,XN=new h,oZe=new h,rZe=new $,sZe=new $,aZe=new $,cZe=new $,lZe=new $,Hee=new $,zee=new $,Kee=new h,dZe=new h,uZe=new he;Ao.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let I=t.geodeticSurfaceNormal(n,aY);if(h.dot(i,I)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,aY),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,XN),c=h.normalize(h.cross(a,s,Oee),Oee),d=h.normalize(h.cross(s,c,Yee),Yee),u=rZe;u[0]=s.x,u[1]=s.y,u[2]=s.z,u[3]=c.x,u[4]=c.y,u[5]=c.z,u[6]=d.x,u[7]=d.y,u[8]=d.z;let m=$.transpose(u,sZe),p=$.fromScale(t.radii,aZe),g=$.fromScale(t.oneOverRadii,cZe),f=lZe;f[0]=0,f[1]=-i.z,f[2]=i.y,f[3]=i.z,f[4]=0,f[5]=-i.x,f[6]=-i.y,f[7]=i.x,f[8]=0;let x=$.multiply($.multiply(m,g,Hee),f,Hee),_=$.multiply($.multiply(x,p,zee),u,zee),C=$.multiplyByVector(x,n,oZe),V=Ao.quadraticVectorExpression(_,h.negate(C,aY),0,0,1),L,Z,G=V.length;if(G>0){let I=h.clone(h.ZERO,dZe),v=Number.NEGATIVE_INFINITY;for(let w=0;wv&&(v=b,I=h.clone(L,I))}let P=t.cartesianToCartographic(I,uZe);return v=W.clamp(v,0,1),Z=h.magnitude(h.subtract(I,n,XN))*Math.sqrt(1-v*v),Z=o?-Z:Z,P.height=Z,t.cartographicToCartesian(P,new h)}};var mZe=new h;Ao.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,mZe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};Ao.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,d=0;d+=s?1:0,d+=a?1:0,d+=c?1:0;let u,m;if((d===1||d===2)&&(u=new h,m=new h),d===1){if(s)return Ao.lineSegmentPlane(e,t,i,u),Ao.lineSegmentPlane(e,n,i,m),{positions:[e,t,n,u,m],indices:[0,3,4,1,2,4,1,4,3]};if(a)return Ao.lineSegmentPlane(t,n,i,u),Ao.lineSegmentPlane(t,e,i,m),{positions:[e,t,n,u,m],indices:[1,3,4,2,0,4,2,4,3]};if(c)return Ao.lineSegmentPlane(n,e,i,u),Ao.lineSegmentPlane(n,t,i,m),{positions:[e,t,n,u,m],indices:[2,3,4,0,1,4,0,4,3]}}else if(d===2)if(s)if(a){if(!c)return Ao.lineSegmentPlane(e,n,i,u),Ao.lineSegmentPlane(t,n,i,m),{positions:[e,t,n,u,m],indices:[0,1,4,0,4,3,2,3,4]}}else return Ao.lineSegmentPlane(n,t,i,u),Ao.lineSegmentPlane(e,t,i,m),{positions:[e,t,n,u,m],indices:[2,0,4,2,4,3,1,3,4]};else return Ao.lineSegmentPlane(t,e,i,u),Ao.lineSegmentPlane(n,e,i,m),{positions:[e,t,n,u,m],indices:[1,2,4,1,4,3,0,3,4]}};var qn=Ao;var CPt=T(S(),1);function ws(e,t){this.normal=h.clone(e),this.distance=t}ws.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new ws(t,i)};var hZe=new h;ws.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,hZe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new ws(n,i)};ws.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var fZe=new h;ws.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=ws.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,fZe);return h.subtract(t,o,n)};var pZe=new M,bZe=new se,gZe=new h;ws.transform=function(e,t,n){let i=e.normal,o=e.distance,r=M.inverseTranspose(t,pZe),s=se.fromElements(i.x,i.y,i.z,o,bZe);s=M.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,gZe);return s=se.divideByScalar(s,h.magnitude(a),s),ws.fromCartesian4(s,n)};ws.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new ws(e.normal,e.distance)};ws.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};ws.ORIGIN_XY_PLANE=Object.freeze(new ws(h.UNIT_Z,0));ws.ORIGIN_YZ_PLANE=Object.freeze(new ws(h.UNIT_X,0));ws.ORIGIN_ZX_PLANE=Object.freeze(new ws(h.UNIT_Y,0));var ln=ws;var ZPt=T(S(),1);var cY={};cY.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;an&&(n=c),++a,c=t[a]}let r=[];for(let a=0;ai&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};cY.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(b,R,E,X){for(;R.length>=1;){let A=R[R.length-1];if(R.splice(R.length-1,1),b[A].numLiveTriangles>0)return A}for(;o0)return++o,o-1;++o}return-1}function s(b,R,E,X,A,N,O){let U=-1,Y,k=-1,H=0;for(;Hk||k===-1)&&(k=Y,U=J)),++H}return U===-1?r(X,N,b,O):U}let a=t.length,c=0,d=0,u=t[d],m=a;if(l(n))c=n+1;else{for(;dc&&(c=u),++d,u=t[d];if(c===-1)return 0;++c}let p=[],g;for(g=0;gi&&(L.timeStamp=_,++_),++d}x=s(t,i,C,p,_,V,c)}return I};var mR=cY;var Pc={};function MN(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function yZe(e){let t=e.length,n=t/3*6,i=Ae.createTypedArray(t,n),o=0;for(let r=0;r=3){let n=(t-2)*6,i=Ae.createTypedArray(t,n);MN(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r0){let t=e.length-1,n=(t-1)*6,i=Ae.createTypedArray(t,n),o=e[0],r=0;for(let s=1;so&&(o=n[r]);e.indices=mR.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function jee(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new Ze({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function TZe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r=W.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=jee(e.attributes),a=e.indices,c=a.length,d;e.primitiveType===Fe.TRIANGLES?d=3:e.primitiveType===Fe.LINES?d=2:e.primitiveType===Fe.POINTS&&(d=1);for(let u=0;u=W.SIXTY_FOUR_KILOBYTES&&(t.push(new ht({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=jee(e.attributes))}o.length!==0&&t.push(new ht({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var qee=new h,SZe=new he;Pc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new Ri;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),d=0;for(let u=0;u_&&(_=V)}return new ht({attributes:u,indices:f,primitiveType:d,boundingSphere:l(x)?new ce(x,_):void 0})}Pc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r0&&o.push(mY(t,"geometry")),n.length>0&&(o.push(mY(n,"westHemisphereGeometry")),o.push(mY(n,"eastHemisphereGeometry"))),o};var uu=new h,hR=new h,DS=new h,BS=new h;Pc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),d;for(d=0;d0){for(u=0;u3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;oo?i>r?s=W.sign(e.y):s=W.sign(n.y):o>r?s=W.sign(t.y):s=W.sign(n.y);let a=s<0;I0(e,a),I0(t,a),I0(n,a)}var nte=new h;function mu(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,nte),e.y/(e.y-t.y),nte),n),h.clone(n,i),I0(n,!0),I0(i,!1)}var cx=new h,lx=new h,dx=new h,ux=new h,hY={positions:new Array(7),indices:new Array(3*3)};function wZe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;vZe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=hY.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(mu(e,t,cx,dx),mu(e,n,lx,ux),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(mu(t,n,cx,dx),mu(t,e,lx,ux),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(mu(n,e,cx,dx),mu(n,t,lx,ux),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(mu(n,e,cx,dx),mu(n,t,lx,ux),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(mu(t,n,cx,dx),mu(t,e,lx,ux),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(mu(e,t,cx,dx),mu(e,n,lx,ux),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=hY.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=cx,c[4]=lx,c[5]=dx,c[6]=ux,c.length=7),hY}function ite(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=Q.createTypedArray(r.componentDatatype,r.values)}let i=ht.computeNumberOfVertices(e);return e.indices=Ae.createTypedArray(i,e.indices),t&&(e.boundingSphere=ce.fromVertices(n.position.values)),e}function YS(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new Ze({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new ht({attributes:n,indices:[],primitiveType:e.primitiveType})}function gY(e,t,n){let i=l(e.geometry.boundingSphere);t=ite(t,i),n=ite(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function yY(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,d,u,m,p){let g=e.fromArray(d,r*t,n),f=e.fromArray(d,s*t,i),x=e.fromArray(d,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(f,c.y,f),e.multiplyByScalar(x,c.z,x);let _=e.add(g,f,g);e.add(_,x,_),p&&e.normalize(_,_),e.pack(_,u,m*t)}}var FZe=yY(se,4),AN=yY(h,3),lte=yY(D,2),AZe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,d=o[n]*i.z;r[s]=a+c+d>W.EPSILON6?1:0},pR=new h,fY=new h,pY=new h,MZe=new h;function wN(e,t,n,i,o,r,s,a,c,d,u,m,p,g,f,x){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(d)&&g===0)return;let _=h.fromArray(o,e*3,pR),C=h.fromArray(o,t*3,fY),V=h.fromArray(o,n*3,pY),L=rx(i,_,C,V,MZe);if(l(L)){if(l(r)&&AN(e,t,n,L,r,m.normal.values,x,!0),l(d)){let Z=h.fromArray(d,e*3,pR),G=h.fromArray(d,t*3,fY),I=h.fromArray(d,n*3,pY);h.multiplyByScalar(Z,L.x,Z),h.multiplyByScalar(G,L.y,G),h.multiplyByScalar(I,L.z,I);let v;!h.equals(Z,h.ZERO)||!h.equals(G,h.ZERO)||!h.equals(I,h.ZERO)?(v=h.add(Z,G,Z),h.add(v,I,v),h.normalize(v,v)):(v=pR,v.x=0,v.y=0,v.z=0),h.pack(v,m.extrudeDirection.values,x*3)}if(l(u)&&AZe(e,t,n,L,u,m.applyOffset.values,x),l(s)&&AN(e,t,n,L,s,m.tangent.values,x,!0),l(a)&&AN(e,t,n,L,a,m.bitangent.values,x,!0),l(c)&<e(e,t,n,L,c,m.st.values,x),g>0)for(let Z=0;Z3){let X=E.positions,A=E.indices,N=A.length;for(let O=0;O0)continue;let c=h.unpack(i,s,mte);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let d=h.unpack(o,s,bY);(a.y<0&&d.y>0||a.y>0&&d.y<0)&&(s+30||ce.intersectPlane(n,ln.ORIGIN_ZX_PLANE)!==Jt.INTERSECTING))return e;if(t.geometryType!==du.NONE)switch(t.geometryType){case du.POLYLINES:KZe(e);break;case du.TRIANGLES:ote(e);break;case du.LINES:rte(e);break}else PZe(t),t.primitiveType===Fe.TRIANGLES?ote(e):t.primitiveType===Fe.LINES&&rte(e);return e};var Fn=Pc;var rvt=T(S(),1);function bR(e,t,n,i,o,r,s,a,c,d,u){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=d,this._initialized=u}Object.defineProperties(bR.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});bR.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,{width:r,height:s}=i,a=this._context._gl,c=this._textureTarget,d=this._targetFace;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture);let u=i.arrayBufferView,m=this._size,p=this._pixelFormat,g=this._internalFormat,f=this._pixelDatatype,x=this._preMultiplyAlpha,_=this._flipY,C=4;l(u)&&(C=ot.alignmentInBytes(p,f,r)),a.pixelStorei(a.UNPACK_ALIGNMENT,C),o?a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE):a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.BROWSER_DEFAULT_WEBGL);let V=!1;if(!this._initialized){let L;t===0&&n===0&&r===m&&s===m?(l(u)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),_&&(u=ot.flipY(u,p,f,m,m)),L=u):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,_),L=i),V=!0):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),L=ot.createTypedArray(p,f,m,m)),a.texImage2D(d,0,g,m,m,0,p,qe.toWebGLConstant(f,this._context),L),this._initialized=!0}V||(l(u)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),_&&(u=ot.flipY(u,p,f,r,s)),a.texSubImage2D(d,0,t,n,r,s,p,qe.toWebGLConstant(f,this._context),u)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,_),a.texSubImage2D(d,0,t,n,p,qe.toWebGLConstant(f,this._context),i))),a.bindTexture(c,null)};bR.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};bR.prototype.copyMipmapFromFramebuffer=function(e,t,n,i,o){e=y(e,0),t=y(t,0),n=y(n,this._size),i=y(i,this._size),o=y(o,0);let r=this._context._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture),r.copyTexImage2D(this._targetFace,o,this._internalFormat,e,t,n,i,0),r.bindTexture(s,null),this._initialized=!0};var gR=bR;var cvt=T(S(),1);var NN={DONT_CARE:ie.DONT_CARE,FASTEST:ie.FASTEST,NICEST:ie.NICEST,validate:function(e){return e===NN.DONT_CARE||e===NN.FASTEST||e===NN.NICEST}},Qh=Object.freeze(NN);var Vvt=T(S(),1);var uvt=T(S(),1);var kN={NEAREST:ie.NEAREST,LINEAR:ie.LINEAR};kN.validate=function(e){return e===kN.NEAREST||e===kN.LINEAR};var hi=Object.freeze(kN);var fvt=T(S(),1);var X0={NEAREST:ie.NEAREST,LINEAR:ie.LINEAR,NEAREST_MIPMAP_NEAREST:ie.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:ie.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:ie.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:ie.LINEAR_MIPMAP_LINEAR};X0.validate=function(e){return e===X0.NEAREST||e===X0.LINEAR||e===X0.NEAREST_MIPMAP_NEAREST||e===X0.LINEAR_MIPMAP_NEAREST||e===X0.NEAREST_MIPMAP_LINEAR||e===X0.LINEAR_MIPMAP_LINEAR};var $t=Object.freeze(X0);var gvt=T(S(),1);var UN={CLAMP_TO_EDGE:ie.CLAMP_TO_EDGE,REPEAT:ie.REPEAT,MIRRORED_REPEAT:ie.MIRRORED_REPEAT,validate:function(e){return e===UN.CLAMP_TO_EDGE||e===UN.REPEAT||e===UN.MIRRORED_REPEAT}},Cn=Object.freeze(UN);function yR(e){e=y(e,y.EMPTY_OBJECT);let{wrapS:t=Cn.CLAMP_TO_EDGE,wrapT:n=Cn.CLAMP_TO_EDGE,minificationFilter:i=$t.LINEAR,magnificationFilter:o=hi.LINEAR,maximumAnisotropy:r=1}=e;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(yR.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});yR.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};yR.NEAREST=Object.freeze(new yR({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST}));var en=yR;var Avt=T(S(),1);function JZe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,Q.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let d=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(d,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(d),this.instanceDivisor>0&&(i.glVertexAttribDivisor(d,this.instanceDivisor),i._vertexAttribDivisors[d]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function fte(e,t,n){for(let i=0;i0&&(c=!0),l(s[r].value)&&(d=!0);let m;t.vertexArrayObject&&(m=t.glCreateVertexArray(),t.glBindVertexArray(m),fte(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=d,this._context=t,this._gl=n,this._vao=m,this._attributes=s,this._indexBuffer=o}function hte(e){return e.values.length/e.componentsPerAttribute}function QZe(e){return Q.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function jZe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===Q.DOUBLE&&(e[n].componentDatatype=Q.FLOAT,e[n].values=Q.createTypedArray(Q.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=hte(e[o[0]]),t=1;t0){let d=Q.getSizeInBytes(e[o[0]].componentDatatype),u=a%d;u!==0&&(a+=d-u);let m=r*a,p=new ArrayBuffer(m),g={};for(t=0;t=W.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=xt.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ae.UNSIGNED_INT}):p=xt.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ae.UNSIGNED_SHORT})),new _p({context:t,attributes:u,indexBuffer:p})};Object.defineProperties(_p.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});_p.prototype.getAttribute=function(e){return this._attributes[e]};function qZe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=Bt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function $Ze(e,t){let n=e._attributes,i=n.length;for(let o=0;o1/pi. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var Gwt=T(S(),1),IR=`/** + * A built-in GLSL floating-point constant for 1/2pi. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var Iwt=T(S(),1),XR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var Wwt=T(S(),1),WR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var vwt=T(S(),1),PR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var Fwt=T(S(),1),vR=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var Mwt=T(S(),1),wR=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var kwt=T(S(),1),FR=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var Dwt=T(S(),1),AR=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var Owt=T(S(),1),MR=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var Hwt=T(S(),1),NR=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var Kwt=T(S(),1),kR=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var Qwt=T(S(),1),UR=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var qwt=T(S(),1),DR=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var eFt=T(S(),1),BR=`/** + * A built-in GLSL floating-point constant for Math.PI. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var nFt=T(S(),1),OR=`/** + * A built-in GLSL floating-point constant for pi/4. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var oFt=T(S(),1),YR=`/** + * A built-in GLSL floating-point constant for pi/6. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var sFt=T(S(),1),HR=`/** + * A built-in GLSL floating-point constant for pi/3. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var cFt=T(S(),1),zR=`/** + * A built-in GLSL floating-point constant for pi/2. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var dFt=T(S(),1),KR=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var mFt=T(S(),1),JR=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var fFt=T(S(),1),QR=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var bFt=T(S(),1),jR=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var yFt=T(S(),1),qR=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var _Ft=T(S(),1),$R=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var SFt=T(S(),1),eZ=`/** + * A built-in GLSL floating-point constant for 3pi/2. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var VFt=T(S(),1),tZ=`/** + * A built-in GLSL floating-point constant for 2pi. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var RFt=T(S(),1),nZ=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var GFt=T(S(),1),iZ=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var IFt=T(S(),1),oZ=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var WFt=T(S(),1),rZ=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. +* @property {float} waterMask The value of the water mask. 0 is land, 1 is water. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; + float waterMask; +}; +`;var vFt=T(S(),1),sZ=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + *

      + * All color values (diffuse, specular, emissive) are in linear color space. + *

      + * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec4} baseColor The base color of the material. + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec4 baseColor; + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +#ifdef USE_SPECULAR + float specularWeight; +#endif +#ifdef USE_ANISOTROPY + vec3 anisotropicT; + vec3 anisotropicB; + float anisotropyStrength; +#endif +#ifdef USE_CLEARCOAT + float clearcoatFactor; + float clearcoatRoughness; + vec3 clearcoatNormal; + // Add clearcoatF0 when KHR_materials_ior is implemented +#endif +}; +`;var FFt=T(S(),1),aZ=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var MFt=T(S(),1),cZ=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var kFt=T(S(),1),lZ=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var DFt=T(S(),1),dZ=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var OFt=T(S(),1),uZ=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var HFt=T(S(),1),mZ=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var KFt=T(S(),1),hZ=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var QFt=T(S(),1),fZ=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var qFt=T(S(),1),pZ=`/** + * Converts an RGB color to CIE Yxy. + *

      The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

      + * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var eAt=T(S(),1),bZ=`/** + * Converts a CIE Yxy color to RGB. + *

      The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + *

      + * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var nAt=T(S(),1),gZ=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var oAt=T(S(),1),yZ=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var sAt=T(S(),1),xZ=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either color1 or color2. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var cAt=T(S(),1),_Z=`/** + * Apply a HSB color shift to an RGB color. + * + * @param {vec3} rgb The color in RGB space. + * @param {vec3} hsbShift The amount to shift each component. The xyz components correspond to hue, saturation, and brightness. Shifting the hue by +/- 1.0 corresponds to shifting the hue by a full cycle. Saturation and brightness are clamped between 0 and 1 after the adjustment + * @param {bool} ignoreBlackPixels If true, black pixels will be unchanged. This is necessary in some shaders such as atmosphere-related effects. + * + * @return {vec3} The RGB color after shifting in HSB space and clamping saturation and brightness to a valid range. + */ +vec3 czm_applyHSBShift(vec3 rgb, vec3 hsbShift, bool ignoreBlackPixels) { + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + + // Perform hsb shift + // Hue cycles around so no clamp is needed. + hsb.x += hsbShift.x; // hue + hsb.y = clamp(hsb.y + hsbShift.y, 0.0, 1.0); // saturation + + // brightness + // + // Some shaders such as atmosphere-related effects need to leave black + // pixels unchanged + if (ignoreBlackPixels) { + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + hsbShift.z : 0.0; + } else { + hsb.z = hsb.z + hsbShift.z; + } + hsb.z = clamp(hsb.z, 0.0, 1.0); + + // Convert shifted hsb back to rgb + return czm_HSBToRGB(hsb); +} +`;var dAt=T(S(),1),TZ=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var mAt=T(S(),1),SZ=`/** + * Compute a rational approximation to tanh(x) + * + * @param {float} x A real number input + * @returns {float} An approximation for tanh(x) +*/ +float czm_approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} +`;var fAt=T(S(),1),CZ=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} true if the fragment is back facing; otherwise, false. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var bAt=T(S(),1),VZ=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var yAt=T(S(),1),LZ=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var _At=T(S(),1),RZ=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var SAt=T(S(),1),ZZ=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var VAt=T(S(),1),GZ=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var RAt=T(S(),1),EZ=`float getSignedDistance(vec2 uv, highp sampler2D clippingDistance) { + float signedDistance = texture(clippingDistance, uv).r; + return (signedDistance - 0.5) * 2.0; +} + +void czm_clipPolygons(highp sampler2D clippingDistance, int extentsLength, vec2 clippingPosition, int regionIndex) { + // Position is completely outside of polygons bounds + vec2 rectUv = clippingPosition; + if (regionIndex < 0 || rectUv.x <= 0.0 || rectUv.y <= 0.0 || rectUv.x >= 1.0 || rectUv.y >= 1.0) { + #ifdef CLIPPING_INVERSE + discard; + #endif + return; + } + + vec2 clippingDistanceTextureDimensions = vec2(textureSize(clippingDistance, 0)); + vec2 sampleOffset = max(1.0 / clippingDistanceTextureDimensions, vec2(0.005)); + float dimension = float(extentsLength); + if (extentsLength > 2) { + dimension = ceil(log2(float(extentsLength))); + } + + vec2 textureOffset = vec2(mod(float(regionIndex), dimension), floor(float(regionIndex) / dimension)) / dimension; + vec2 uv = textureOffset + rectUv / dimension; + + float signedDistance = getSignedDistance(uv, clippingDistance); + + #ifdef CLIPPING_INVERSE + if (signedDistance > 0.0) { + discard; + } + #else + if (signedDistance < 0.0) { + discard; + } + #endif +} +`;var GAt=T(S(),1),IZ=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var IAt=T(S(),1),XZ=`/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {vec3} positionWC Position of the fragment in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {czm_ray} primaryRay Ray from the origin to sky fragment to in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + czm_ray primaryRay, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + vec3 direction = normalize(primaryRay.direction); + + float cosAngle = dot(direction, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +`;var WAt=T(S(),1),WZ=`/** + * Compute atmosphere scattering for the ground atmosphere and fog. This method + * uses automatic uniforms so it is always synced with the scene settings. + * + * @name czm_computeGroundAtmosphereScattering + * @glslfunction + * + * @param {vec3} positionWC The position of the fragment in world coordinates. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeGroundAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + czm_computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var vAt=T(S(),1),PZ=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + *

      + * This uses standard position attributes, position3DHigh, + * position3DLow, position2DHigh, and position2DLow, + * and should be used when writing a vertex shader for an {@link Appearance}. + *

      + * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var FAt=T(S(),1),vZ=`/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. This function uses automatic uniforms + * so the atmosphere settings are always synced with the current scene. + * + * @name czm_computeScattering + * @glslfunction + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. + const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. + const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = czm_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x)))); +} +`;var MAt=T(S(),1),wZ=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var kAt=T(S(),1),FZ=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var DAt=T(S(),1),AZ=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var OAt=T(S(),1),MZ=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + *

      + * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at positionMC, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var HAt=T(S(),1),NZ=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var KAt=T(S(),1),kZ=`/** + * Approximate uv coordinates based on the ellipsoid normal. + * + * @name czm_ellipsoidTextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidTextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var QAt=T(S(),1),UZ=`/** + * Compares left and right componentwise. Returns true + * if they are within epsilon and false otherwise. The inputs + * left and right can be floats, vec2s, + * vec3s, or vec4s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} true if the components are within epsilon and false otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var qAt=T(S(),1),DZ=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var eMt=T(S(),1),BZ=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

      + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var nMt=T(S(),1),OZ=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var oMt=T(S(),1),YZ=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var sMt=T(S(),1),HZ=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var cMt=T(S(),1),zZ=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var dMt=T(S(),1),KZ=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var mMt=T(S(),1),JZ=`/** + * Select which direction vector to use for dynamic atmosphere lighting based on an enum value + * + * @name czm_getDynamicAtmosphereLightDirection + * @glslfunction + * @see DynamicAtmosphereLightingType.js + * + * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off. + * @param {float} lightEnum The enum value for selecting between light sources. + * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC + */ +vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) { + const float NONE = 0.0; + const float SCENE_LIGHT = 1.0; + const float SUNLIGHT = 2.0; + + vec3 lightDirection = + positionWC * float(lightEnum == NONE) + + czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) + + czm_sunDirectionWC * float(lightEnum == SUNLIGHT); + return normalize(lightDirection); +} +`;var fMt=T(S(),1),QZ=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var bMt=T(S(),1),jZ=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var yMt=T(S(),1),qZ=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var _Mt=T(S(),1),$Z=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var SMt=T(S(),1),eG=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var VMt=T(S(),1),tG=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var RMt=T(S(),1),nG=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} true if the time interval is empty; otherwise, false. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var GMt=T(S(),1),iG=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var IMt=T(S(),1),oG=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var WMt=T(S(),1),rG=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var vMt=T(S(),1),sG=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var FMt=T(S(),1),aG=`/** + * Find the maximum component of a vector. + * + * @name czm_maximumComponent + * @glslFunction + * + * @param {vec2|vec3|vec4} v The input vector. + * @returns {float} The value of the largest component. + */ +float czm_maximumComponent(vec2 v) +{ + return max(v.x, v.y); +} +float czm_maximumComponent(vec3 v) +{ + return max(max(v.x, v.y), v.z); +} +float czm_maximumComponent(vec4 v) +{ + return max(max(max(v.x, v.y), v.z), v.w); +} +`;var MMt=T(S(),1),cG=`/** + * Computes the size of a pixel in meters at a distance from the eye. + *

      + * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + *

      + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + *

      + * Use this version when scaling by pixel ratio. + *

      + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var kMt=T(S(),1),lG=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of near = 0 and far = 1. + *

      + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + *

      + * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var DMt=T(S(),1),dG=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var OMt=T(S(),1),uG=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var HMt=T(S(),1),mG=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var KMt=T(S(),1),hG=`/** + * Packs a depth value into a vec4 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec4} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var QMt=T(S(),1),fG=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + float versine = 1.0 - VdotH; + // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269 + float versineSquared = versine * versine; + return f0 + (f90 - f0) * versineSquared * versineSquared * versine; +} + +#ifdef USE_ANISOTROPY +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates + * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates + */ +float smithVisibilityGGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection) +{ + vec3 roughnessScale = vec3(tangentialRoughness, bitangentRoughness, 1.0); + float GGXV = lightDirection.z * length(roughnessScale * viewDirection); + float GGXL = viewDirection.z * length(roughnessScale * lightDirection); + float v = 0.5 / (GGXV + GGXL); + return clamp(v, 0.0, 1.0); +} + +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates + */ +float GGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 halfwayDirection) +{ + float roughnessSquared = bitangentRoughness * tangentialRoughness; + vec3 f = halfwayDirection * vec3(bitangentRoughness, tangentialRoughness, roughnessSquared); + float w2 = roughnessSquared / dot(f, f); + return roughnessSquared * w2 * w2 / czm_pi; +} +#endif + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; + if (GGX > 0.0) + { + return 0.5 / GGX; + } + return 0.0; +} + +/** + * Estimate the fraction of the microfacets in a surface that are aligned with + * the halfway vector, which is aligned halfway between the directions from + * the fragment to the camera and from the fragment to the light source. + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector. + * @return {float} The fraction of microfacets aligned to the halfway vector. + */ +float GGX(float alphaRoughness, float NdotH) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float f = (NdotH * alphaRoughnessSquared - NdotH) * NdotH + 1.0; + return alphaRoughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the strength of the specular reflection due to direct lighting. + * + * @param {vec3} normal The surface normal. + * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source. + * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera. + * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera. + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @return {float} The strength of the specular reflection. + */ +float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float alphaRoughness) +{ + float NdotL = clamp(dot(normal, lightDirection), 0.0, 1.0); + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0); + float D = GGX(alphaRoughness, NdotH); + return G * D; +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + *

      + * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@MaterialStageFS} + *

      + * + * @name czm_pbrLighting + * @glslFunction + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color + */ +vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material) +{ + vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); + float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); + float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0); + + vec3 f0 = material.specular; + float reflectance = czm_maximumComponent(f0); + // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0. + // In this case, at grazing angle, all incident energy is reflected. + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + #if defined(USE_SPECULAR) + F *= material.specularWeight; + #endif + + float alphaRoughness = material.roughness * material.roughness; + #ifdef USE_ANISOTROPY + mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC); + vec3 lightDirection = lightDirectionEC * tbn; + vec3 viewDirection = viewDirectionEC * tbn; + vec3 halfwayDirection = halfwayDirectionEC * tbn; + float anisotropyStrength = material.anisotropyStrength; + float tangentialRoughness = mix(alphaRoughness, 1.0, anisotropyStrength * anisotropyStrength); + float bitangentRoughness = clamp(alphaRoughness, 0.001, 1.0); + float G = smithVisibilityGGX_anisotropic(bitangentRoughness, tangentialRoughness, lightDirection, viewDirection); + float D = GGX_anisotropic(bitangentRoughness, tangentialRoughness, halfwayDirection); + vec3 specularContribution = F * G * D; + #else + float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alphaRoughness); + vec3 specularContribution = F * specularStrength; + #endif + + vec3 diffuseColor = material.diffuse; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL; +} +`;var qMt=T(S(),1),pG=`// KhronosGroup https://github.com/KhronosGroup/ToneMapping/tree/main/PBR_Neutral + +// Input color is non-negative and resides in the Linear Rec. 709 color space. +// Output color is also Linear Rec. 709, but in the [0, 1] range. + +vec3 czm_pbrNeutralTonemapping(vec3 color) { + const float startCompression = 0.8 - 0.04; + const float desaturation = 0.15; + + float x = min(color.r, min(color.g, color.b)); + float offset = czm_branchFreeTernary(x < 0.08, x - 6.25 * x * x, 0.04); + color -= offset; + + float peak = max(color.r, max(color.g, color.b)); + if (peak < startCompression) return color; + + const float d = 1.0 - startCompression; + float newPeak = 1.0 - d * d / (peak + d - startCompression); + color *= newPeak / peak; + + float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0); + return mix(color, newPeak * vec3(1.0, 1.0, 1.0), g); +} +`;var e9t=T(S(),1),bG=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var n9t=T(S(),1),gG=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var o9t=T(S(),1),yG=`/** + * Computes the point along a ray at the given time. time can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var s9t=T(S(),1),xG=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var c9t=T(S(),1),_G=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var d9t=T(S(),1),TG=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var m9t=T(S(),1),SG=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var f9t=T(S(),1),CG=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var b9t=T(S(),1),VG=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var y9t=T(S(),1),LG=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var _9t=T(S(),1),RG=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var S9t=T(S(),1),ZG=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var V9t=T(S(),1),GG=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function sign except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var R9t=T(S(),1),EG=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + *

      + * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + *

      + * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + vec3 L = + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); + + return max(L, vec3(0.0)); +} +`;var G9t=T(S(),1),IG=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var I9t=T(S(),1),XG=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var W9t=T(S(),1),WG=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +} + +/** + * A wrapper around the textureLod (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support in fragment shaders. + * + * @name czm_textureCubeLod + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + * @param {float} lod The mipmap level from which to sample. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p, float lod) { +#if __VERSION__ == 300 + return textureLod(sampler, p, lod); +#elif defined(GL_EXT_shader_texture_lod) + return textureCubeLodEXT(sampler, p, lod); +#endif +}`;var v9t=T(S(),1),PG=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var F9t=T(S(),1),vG=`/** + * Translates a position (or any vec3) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate high and low bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + *

      + * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + *

      + * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + // This check handles the case when NaN values have gotten into \`highDifference\`. + // Such a thing could happen on devices running iOS. + if (length(highDifference) == 0.0) { + highDifference = vec3(0); + } + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var M9t=T(S(),1),wG=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var k9t=T(S(),1),FG=`/** + * Returns the transpose of the matrix. The input matrix can be + * a mat2, mat3, or mat4. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var D9t=T(S(),1),AG=`vec2 getLookupUv(vec2 dimensions, int i) { + int pixY = i / int(dimensions.x); + int pixX = i - (pixY * int(dimensions.x)); + float pixelWidth = 1.0 / dimensions.x; + float pixelHeight = 1.0 / dimensions.y; + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) { + vec2 textureDimensions = vec2(textureSize(extentsTexture, 0)); + return texture(extentsTexture, getLookupUv(textureDimensions, index)); +}`;var O9t=T(S(),1),MG=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ +float czm_unpackDepth(vec4 packedDepth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); +} +`;var H9t=T(S(),1),NG=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var K9t=T(S(),1),kG=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + *

      + * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + *

      + * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var Q9t=T(S(),1),UG=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var q9t=T(S(),1),DG=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + *

      + * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + *

      + * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var eNt=T(S(),1),BG=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of czm_viewportTransformation. The transformation from + * normalized device coordinates to clip coordinates is done using fragmentCoordinate.w, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = exp2(log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var nNt=T(S(),1),OG=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var oNt=T(S(),1),YG=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

      + * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when + * ray-casting geometry using a full screen quad. + *

      + * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + *

      + * Use this when the vertex shader calls {@link czm_vertexLogDepth}. + *

      + * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var sNt=T(S(),1),HG=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var mx={czm_degreesPerRadian:xR,czm_depthRange:_R,czm_epsilon1:TR,czm_epsilon2:SR,czm_epsilon3:CR,czm_epsilon4:VR,czm_epsilon5:LR,czm_epsilon6:RR,czm_epsilon7:ZR,czm_infinity:GR,czm_oneOverPi:ER,czm_oneOverTwoPi:IR,czm_passCesium3DTile:XR,czm_passCesium3DTileClassification:WR,czm_passCesium3DTileClassificationIgnoreShow:PR,czm_passClassification:vR,czm_passCompute:wR,czm_passEnvironment:FR,czm_passGlobe:AR,czm_passOpaque:MR,czm_passOverlay:NR,czm_passTerrainClassification:kR,czm_passTranslucent:UR,czm_passVoxels:DR,czm_pi:BR,czm_piOverFour:OR,czm_piOverSix:YR,czm_piOverThree:HR,czm_piOverTwo:zR,czm_radiansPerDegree:KR,czm_sceneMode2D:JR,czm_sceneMode3D:QR,czm_sceneModeColumbusView:jR,czm_sceneModeMorphing:qR,czm_solarRadius:$R,czm_threePiOver2:eZ,czm_twoPi:tZ,czm_webMercatorMaxLatitude:nZ,czm_depthRangeStruct:iZ,czm_material:oZ,czm_materialInput:rZ,czm_modelMaterial:sZ,czm_modelVertexOutput:aZ,czm_ray:cZ,czm_raySegment:lZ,czm_shadowParameters:dZ,czm_HSBToRGB:uZ,czm_HSLToRGB:mZ,czm_RGBToHSB:hZ,czm_RGBToHSL:fZ,czm_RGBToXYZ:pZ,czm_XYZToRGB:bZ,czm_acesTonemapping:gZ,czm_alphaWeight:yZ,czm_antialias:xZ,czm_applyHSBShift:_Z,czm_approximateSphericalCoordinates:TZ,czm_approximateTanh:SZ,czm_backFacing:CZ,czm_branchFreeTernary:VZ,czm_cascadeColor:LZ,czm_cascadeDistance:RZ,czm_cascadeMatrix:ZZ,czm_cascadeWeights:GZ,czm_clipPolygons:EZ,czm_columbusViewMorph:IZ,czm_computeAtmosphereColor:XZ,czm_computeGroundAtmosphereScattering:WZ,czm_computePosition:PZ,czm_computeScattering:vZ,czm_cosineAndSine:wZ,czm_decompressTextureCoordinates:FZ,czm_depthClamp:AZ,czm_eastNorthUpToEyeCoordinates:MZ,czm_ellipsoidContainsPoint:NZ,czm_ellipsoidTextureCoordinates:kZ,czm_equalsEpsilon:UZ,czm_eyeOffset:DZ,czm_eyeToWindowCoordinates:BZ,czm_fastApproximateAtan:OZ,czm_fog:YZ,czm_gammaCorrect:HZ,czm_geodeticSurfaceNormal:zZ,czm_getDefaultMaterial:KZ,czm_getDynamicAtmosphereLightDirection:JZ,czm_getLambertDiffuse:QZ,czm_getSpecular:jZ,czm_getWaterNoise:qZ,czm_hue:$Z,czm_inverseGamma:eG,czm_isEmpty:tG,czm_isFull:nG,czm_latitudeToWebMercatorFraction:iG,czm_lineDistance:oG,czm_linearToSrgb:rG,czm_luminance:sG,czm_maximumComponent:aG,czm_metersPerPixel:cG,czm_modelToWindowCoordinates:lG,czm_multiplyWithColorBalance:dG,czm_nearFarScalar:uG,czm_octDecode:mG,czm_packDepth:hG,czm_pbrLighting:fG,czm_pbrNeutralTonemapping:pG,czm_phong:bG,czm_planeDistance:gG,czm_pointAlongRay:yG,czm_rayEllipsoidIntersectionInterval:xG,czm_raySphereIntersectionInterval:_G,czm_readDepth:TG,czm_readNonPerspective:SG,czm_reverseLogDepth:CG,czm_round:VG,czm_saturation:LG,czm_shadowDepthCompare:RG,czm_shadowVisibility:ZG,czm_signNotZero:GG,czm_sphericalHarmonics:EG,czm_srgbToLinear:IG,czm_tangentToEyeSpaceMatrix:XG,czm_textureCube:WG,czm_transformPlane:PG,czm_translateRelativeToEye:vG,czm_translucentPhong:wG,czm_transpose:FG,czm_unpackClippingExtents:AG,czm_unpackDepth:MG,czm_unpackFloat:NG,czm_unpackUint:kG,czm_valueTransform:UG,czm_vertexLogDepth:DG,czm_windowToEyeCoordinates:BG,czm_writeDepthClamp:OG,czm_writeLogDepth:YG,czm_writeNonPerspective:HG};var Mkt=T(S(),1);function nGe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(in)\s+(vec\d|mat\d|float)/g,` +varying $2`),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_EXT_shader_texture_lod +#extension GL_EXT_shader_texture_lod : enable +#endif +${n}`,n=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var zG=nGe;function bte(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function xte(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Sm.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Sm.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new De({sources:[r]})),typeof s=="string"&&(s=new De({sources:[s]}));let c=this._context,d=r.createCombinedVertexShader(c),u=s.createCombinedFragmentShader(c),m=new tn({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:d,fragmentShaderSource:s,fragmentShaderText:u,attributeLocations:a}),p={cache:this,shaderProgram:m,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),m._cachedShader=p,this._shaders[o]=p,m};function _Y(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;oLGe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*W.TWO_PI,o}function ZGe(e,t){let n=Math.floor(e/W.TWO_PI);e-=n*W.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=W.zeroToTwoPi(r),e<0&&(r-=W.TWO_PI),r+=n*W.TWO_PI,r}function GGe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),d=Math.sin(n);return l(i)?(i[0]=c*o-d*r*s,i[1]=d*o+c*r*s,i[2]=r*a,i[3]=-c*r-d*o*s,i[4]=-d*r+c*o*s,i[5]=o*a,i[6]=d*a,i[7]=-c*a,i[8]=s):i=new $(c*o-d*r*s,-c*r-d*o*s,d*a,d*o+c*r*s,-d*r+c*o*s,-c*a,r*a,o*a,s),i}var EGe=1.0000010178*Za,IGe=100.46645683*fu,XGe=129597742283429e-5*sd,Rte=16002,Zte=21863,Gte=32004,Ete=10931,Ite=14529,Xte=16368,Wte=15318,Pte=32794,WGe=64*1e-7*Za,PGe=-152*1e-7*Za,vGe=62*1e-7*Za,wGe=-8*1e-7*Za,FGe=32*1e-7*Za,AGe=-41*1e-7*Za,MGe=19*1e-7*Za,NGe=-11*1e-7*Za,kGe=-150*1e-7*Za,UGe=-46*1e-7*Za,DGe=68*1e-7*Za,BGe=54*1e-7*Za,OGe=14*1e-7*Za,YGe=24*1e-7*Za,HGe=-28*1e-7*Za,zGe=22*1e-7*Za,vte=10,wte=16002,Fte=21863,Ate=10931,Mte=1473,Nte=32004,kte=4387,Ute=73,KGe=-325*1e-7,JGe=-322*1e-7,QGe=-79*1e-7,jGe=232*1e-7,qGe=-52*1e-7,$Ge=97*1e-7,eEe=55*1e-7,tEe=-41*1e-7,nEe=-105*1e-7,iEe=-137*1e-7,oEe=258*1e-7,rEe=35*1e-7,sEe=-116*1e-7,aEe=-88*1e-7,cEe=-112*1e-7,lEe=-80*1e-7,HS=new j(0,0,Hn.TAI);function dEe(e,t){Bte(e,HS);let i=(HS.dayNumber-BN.dayNumber+(HS.secondsOfDay-BN.secondsOfDay)/zn.SECONDS_PER_DAY)/(zn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=EGe+WGe*Math.cos(Rte*o)+kGe*Math.sin(Rte*o)+PGe*Math.cos(Zte*o)+UGe*Math.sin(Zte*o)+vGe*Math.cos(Gte*o)+DGe*Math.sin(Gte*o)+wGe*Math.cos(Ete*o)+BGe*Math.sin(Ete*o)+FGe*Math.cos(Ite*o)+OGe*Math.sin(Ite*o)+AGe*Math.cos(Xte*o)+YGe*Math.sin(Xte*o)+MGe*Math.cos(Wte*o)+HGe*Math.sin(Wte*o)+NGe*Math.cos(Pte*o)+zGe*Math.sin(Pte*o),s=IGe+XGe*i+KGe*Math.cos(vte*o)+nEe*Math.sin(vte*o)+JGe*Math.cos(wte*o)+iEe*Math.sin(wte*o)+QGe*Math.cos(Fte*o)+oEe*Math.sin(Fte*o)+jGe*Math.cos(Ate*o)+rEe*Math.sin(Ate*o)+qGe*Math.cos(Mte*o)+sEe*Math.sin(Mte*o)+$Ge*Math.cos(Nte*o)+aEe*Math.sin(Nte*o)+eEe*Math.cos(kte*o)+cEe*Math.sin(kte*o)+tEe*Math.cos(Ute*o)+lEe*Math.sin(Ute*o),a=.0167086342-.0004203654*i,c=102.93734808*fu+11612.3529*sd*i,d=469.97289*sd*i,u=174.87317577*fu-8679.27034*sd*i;return Ote(r,a,d,c,u,s,t)}function Yte(e,t){Bte(e,HS);let i=(HS.dayNumber-BN.dayNumber+(HS.secondsOfDay-BN.secondsOfDay)/zn.SECONDS_PER_DAY)/zn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,d=5.15668983*fu,u=-8e-5*i+.02966*o-42e-6*r-13e-8*s,m=83.35324312*fu,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*fu,f=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*fu,_=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,C=297.85019547*fu+sd*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),V=93.27209062*fu+sd*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),L=134.96340251*fu+sd*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),Z=357.52910918*fu+sd*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),G=310.17137918*fu-sd*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),I=2*C,v=4*C,P=6*C,w=2*L,F=3*L,b=4*L,R=2*V;a+=3400.4*Math.cos(I)-635.6*Math.cos(I-L)-235.6*Math.cos(L)+218.1*Math.cos(I-Z)+181*Math.cos(I+L),c+=.014216*Math.cos(I-L)+.008551*Math.cos(I-w)-.001383*Math.cos(L)+.001356*Math.cos(I+L)-.001147*Math.cos(v-F)-914e-6*Math.cos(v-w)+869e-6*Math.cos(I-Z-L)-627e-6*Math.cos(I)-394e-6*Math.cos(v-b)+282e-6*Math.cos(I-Z-w)-279e-6*Math.cos(C-L)-236e-6*Math.cos(w)+231e-6*Math.cos(v)+229e-6*Math.cos(P-b)-201e-6*Math.cos(w-R),u+=486.26*Math.cos(I-R)-40.13*Math.cos(I)+37.51*Math.cos(R)+25.73*Math.cos(w-R)+19.97*Math.cos(I-Z-R),p+=-55609*Math.sin(I-L)-34711*Math.sin(I-w)-9792*Math.sin(L)+9385*Math.sin(v-F)+7505*Math.sin(v-w)+5318*Math.sin(I+L)+3484*Math.sin(v-b)-3417*Math.sin(I-Z-L)-2530*Math.sin(P-b)-2376*Math.sin(I)-2075*Math.sin(I-F)-1883*Math.sin(w)-1736*Math.sin(P-5*L)+1626*Math.sin(Z)-1370*Math.sin(P-F),f+=-5392*Math.sin(I-R)-540*Math.sin(Z)-441*Math.sin(I)+423*Math.sin(R)-288*Math.sin(w-R),_+=-3332.9*Math.sin(I)+1197.4*Math.sin(I-L)-662.5*Math.sin(Z)+396.3*Math.sin(L)-218*Math.sin(I-Z);let E=2*G,X=3*G;u+=46.997*Math.cos(G)*i-.614*Math.cos(I-R+G)*i+.614*Math.cos(I-R-G)*i-.0297*Math.cos(E)*o-.0335*Math.cos(G)*o+.0012*Math.cos(I-R+E)*o-16e-5*Math.cos(G)*r+4e-5*Math.cos(X)*r+4e-5*Math.cos(E)*r;let A=2.116*Math.sin(G)*i-.111*Math.sin(I-R-G)*i-.0015*Math.sin(G)*o;p+=A,_+=A,f+=-520.77*Math.sin(G)*i+13.66*Math.sin(I-R+G)*i+1.12*Math.sin(I-G)*i-1.06*Math.sin(R-G)*i+.66*Math.sin(E)*o+.371*Math.sin(G)*o-.035*Math.sin(I-R+E)*o-.015*Math.sin(I-R+G)*o+.0014*Math.sin(G)*r-.0011*Math.sin(X)*r-9e-4*Math.sin(E)*r,a*=TGe;let N=d+u*sd,O=m+p*sd,U=x+_*sd,Y=g+f*sd;return Ote(a,c,N,O,Y,U,t)}var Dte=.012300034,uEe=Dte/(Dte+1)*-1;function mEe(e,t){return t=Yte(e,t),h.multiplyByScalar(t,uEe,t)}var Hte=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),jG=new h;SY.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=j.now()),l(t)||(t=new h),jG=dEe(e,jG),t=h.negate(jG,t),mEe(e,jG),h.subtract(t,jG,t),$.multiplyByVector(Hte,t,t),t};SY.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=j.now()),t=Yte(e,t),$.multiplyByVector(Hte,t,t),t};var v0=SY;var KUt=T(S(),1),ON={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};ON.getMorphTime=function(e){return e===ON.SCENE3D?1:e===ON.MORPHING?void 0:0};var oe=Object.freeze(ON);var qUt=T(S(),1);function hEe(e){e=y(e,y.EMPTY_OBJECT),this.color=B.clone(y(e.color,B.WHITE)),this.intensity=y(e.intensity,2)}var Tp=hEe;function zS(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new Ke,this._viewportCartesian4=new se,this._viewportDirty=!1,this._viewportOrthographicMatrix=M.clone(M.IDENTITY),this._viewportTransformation=M.clone(M.IDENTITY),this._model=M.clone(M.IDENTITY),this._view=M.clone(M.IDENTITY),this._inverseView=M.clone(M.IDENTITY),this._projection=M.clone(M.IDENTITY),this._infiniteProjection=M.clone(M.IDENTITY),this._entireFrustum=new D,this._currentFrustum=new D,this._frustumPlanes=new se,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(M.IDENTITY),this._view3DDirty=!0,this._view3D=new M,this._inverseView3DDirty=!0,this._inverseView3D=new M,this._inverseModelDirty=!0,this._inverseModel=new M,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new M,this._modelViewDirty=!0,this._modelView=new M,this._modelView3DDirty=!0,this._modelView3D=new M,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new M,this._inverseModelViewDirty=!0,this._inverseModelView=new M,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new M,this._viewProjectionDirty=!0,this._viewProjection=new M,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new M,this._modelViewProjectionDirty=!0,this._modelViewProjection=new M,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new M,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new M,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new M,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new On,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new D,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new D,this._modelToEnu=new M,this._enuToModel=new M,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new B,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogVisualDensityScalar=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(zS.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!Ke.equals(e,this._viewport)){Ke.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return Kte(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return Kte(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){M.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,M.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,M.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return VY(this),this._view3D}},viewRotation:{get:function(){return VY(this),this._viewRotation}},viewRotation3D:{get:function(){return VY(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return jte(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return jte(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return VEe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return LEe(this),this._modelView}},modelView3D:{get:function(){return REe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return WEe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return ZEe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return GEe(this),this._inverseModelView3D}},viewProjection:{get:function(){return EEe(this),this._viewProjection}},inverseViewProjection:{get:function(){return IEe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return XEe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return PEe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return vEe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return wEe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return FEe(this),this._normal}},normal3D:{get:function(){return AEe(this),this._normal3D}},inverseNormal:{get:function(){return MEe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return NEe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return Qte(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return Qte(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogVisualDensityScalar:{get:function(){return this._fogVisualDensityScalar}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,ne.default)}}});function fEe(e,t){M.clone(t,e._view),M.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function pEe(e,t){M.clone(t,e._inverseView),M.getMatrix3(t,e._inverseViewRotation)}function bEe(e,t){M.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function gEe(e,t){M.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var zte=new h,yEe=new M;function xEe(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,zte)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,zte)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=Ft.eastNorthUpToFixedFrame(i,n,yEe);e._enuToModel=M.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=M.inverseTransformation(e._enuToModel,e._modelToEnu),W.equalsEpsilon(n._radii.x,n._radii.y,W.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var CY=new $,_Ee=new he;function TEe(e,t){Ft.computeIcrfToCentralBodyFixedMatrix(t.time,CY);let n=v0.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(CY,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=v0.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(CY,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,_Ee);i.project(r,e._sunPositionColumbusView)}zS.prototype.updateCamera=function(e){fEe(this,e.viewMatrix),pEe(this,e.inverseViewMatrix),xEe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==oe.SCENE2D&&e.frustum instanceof an};zS.prototype.updateFrustum=function(e){bEe(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&gEe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=W.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};zS.prototype.updatePass=function(e){this._pass=e};var SEe=[],CEe=new Tp;zS.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===oe.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),TEe(this,e);let n=y(e.light,CEe);n instanceof Tp?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,SEe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,this._fogDensity=e.fog.density,this._fogVisualDensityScalar=e.fog.visualDensityScalar,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Ft.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let d=t.frustum.fov,u=this._viewport,m;l(d)?u.height>u.width?m=Math.tan(.5*d)*2/u.height:m=Math.tan(.5*d)*2/u.width:m=1/Math.max(u.width,u.height),this._geometricToleranceOverMeter=m*e.maximumScreenSpaceError,B.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function Kte(e){if(e._viewportDirty){let t=e._viewport;M.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),M.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function VEe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==oe.SCENE2D&&e._mode!==oe.MORPHING&&!e._orthographicIn3D?M.inverse(e._projection,e._inverseProjection):M.clone(M.ZERO,e._inverseProjection))}function LEe(e){e._modelViewDirty&&(e._modelViewDirty=!1,M.multiplyTransformation(e._view,e._model,e._modelView))}function REe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,M.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function ZEe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,M.inverse(e.modelView,e._inverseModelView))}function GEe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,M.inverse(e.modelView3D,e._inverseModelView3D))}function EEe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,M.multiply(e._projection,e._view,e._viewProjection))}function IEe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,M.inverse(e.viewProjection,e._inverseViewProjection))}function XEe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,M.multiply(e._projection,e.modelView,e._modelViewProjection))}function WEe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function PEe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,M.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function vEe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,M.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function wEe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,M.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function FEe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;M.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function AEe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;M.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function MEe(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;M.getMatrix3(e.modelView,t),$.transpose(t,t)}}function NEe(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;M.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var Jte=new h;function Qte(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,M.multiplyByPoint(e.inverseModel,e._cameraPosition,Jte),On.fromCartesian(Jte,e._encodedCameraPositionMC))}var kEe=new h,UEe=new h,DEe=new h,BEe=new h,OEe=new he,YEe=new h,HEe=new M;function zEe(e,t,n,i,o,r,s,a){let c=kEe;c.x=e.y,c.y=e.z,c.z=e.x;let d=UEe;d.x=n.y,d.y=n.z,d.z=n.x;let u=DEe;u.x=i.y,u.y=i.z,u.z=i.x;let m=BEe;m.x=t.y,m.y=t.z,m.z=t.x,r===oe.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,OEe);p.longitude=W.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=W.clamp(p.latitude,-W.PI_OVER_TWO,W.PI_OVER_TWO);let g=s.ellipsoid,f=g.cartographicToCartesian(p,YEe),x=Ft.eastNorthUpToFixedFrame(f,g,HEe);return M.multiplyByPointAsVector(x,d,d),M.multiplyByPointAsVector(x,u,u),M.multiplyByPointAsVector(x,m,m),l(a)||(a=new M),a[0]=d.x,a[1]=u.x,a[2]=-m.x,a[3]=0,a[4]=d.y,a[5]=u.y,a[6]=-m.y,a[7]=0,a[8]=d.z,a[9]=u.z,a[10]=-m.z,a[11]=0,a[12]=-h.dot(d,f),a[13]=-h.dot(u,f),a[14]=h.dot(m,f),a[15]=1,a}function VY(e){e._view3DDirty&&(e._mode===oe.SCENE3D?M.clone(e._view,e._view3D):zEe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),M.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function jte(e){e._inverseView3DDirty&&(M.inverseTransformation(e.view3D,e._inverseView3D),M.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var qG=zS;function ad(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=l(n)?n(e,o):KEe(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Bn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new KG(this),this._textureCache=new JG;let d=s;this._stencilBits=d.getParameter(d.STENCIL_BITS),Bt._maximumCombinedTextureImageUnits=d.getParameter(d.MAX_COMBINED_TEXTURE_IMAGE_UNITS),Bt._maximumCubeMapSize=d.getParameter(d.MAX_CUBE_MAP_TEXTURE_SIZE),Bt._maximumFragmentUniformVectors=d.getParameter(d.MAX_FRAGMENT_UNIFORM_VECTORS),Bt._maximumTextureImageUnits=d.getParameter(d.MAX_TEXTURE_IMAGE_UNITS),Bt._maximumRenderbufferSize=d.getParameter(d.MAX_RENDERBUFFER_SIZE),Bt._maximumTextureSize=d.getParameter(d.MAX_TEXTURE_SIZE),Bt._maximumVaryingVectors=d.getParameter(d.MAX_VARYING_VECTORS),Bt._maximumVertexAttributes=d.getParameter(d.MAX_VERTEX_ATTRIBS),Bt._maximumVertexTextureImageUnits=d.getParameter(d.MAX_VERTEX_TEXTURE_IMAGE_UNITS),Bt._maximumVertexUniformVectors=d.getParameter(d.MAX_VERTEX_UNIFORM_VECTORS),Bt._maximumSamples=this._webgl2?d.getParameter(d.MAX_SAMPLES):0;let u=d.getParameter(d.ALIASED_LINE_WIDTH_RANGE);Bt._minimumAliasedLineWidth=u[0],Bt._maximumAliasedLineWidth=u[1];let m=d.getParameter(d.ALIASED_POINT_SIZE_RANGE);Bt._minimumAliasedPointSize=m[0],Bt._maximumAliasedPointSize=m[1];let p=d.getParameter(d.MAX_VIEWPORT_DIMS);Bt._maximumViewportWidth=p[0],Bt._maximumViewportHeight=p[1];let g=d.getShaderPrecisionFormat(d.FRAGMENT_SHADER,d.HIGH_FLOAT);Bt._highpFloatSupported=g.precision!==0;let f=d.getShaderPrecisionFormat(d.FRAGMENT_SHADER,d.HIGH_INT);Bt._highpIntSupported=f.rangeMax!==0,this._antialias=d.getContextAttributes().antialias,this._standardDerivatives=!!xr(d,["OES_standard_derivatives"]),this._blendMinmax=!!xr(d,["EXT_blend_minmax"]),this._elementIndexUint=!!xr(d,["OES_element_index_uint"]),this._depthTexture=!!xr(d,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!xr(d,["EXT_frag_depth"]),this._debugShaders=xr(d,["WEBGL_debug_shaders"]),this._textureFloat=!!xr(d,["OES_texture_float"]),this._textureHalfFloat=!!xr(d,["OES_texture_half_float"]),this._textureFloatLinear=!!xr(d,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!xr(d,["OES_texture_half_float_linear"]),this._supportsTextureLod=!!xr(d,["EXT_shader_texture_lod"]),this._colorBufferFloat=!!xr(d,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!xr(d,["EXT_float_blend"]),this._colorBufferHalfFloat=!!xr(d,["EXT_color_buffer_half_float"]),this._s3tc=!!xr(d,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!xr(d,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!xr(d,["WEBGL_compressed_texture_astc"]),this._etc=!!xr(d,["WEBG_compressed_texture_etc"]),this._etc1=!!xr(d,["WEBGL_compressed_texture_etc1"]),this._bc7=!!xr(d,["EXT_texture_compression_bptc"]),_l.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?xr(d,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,Bt._maximumTextureFilterAnisotropy=l(x)?d.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let _,C,V,L,Z,G,I,v,P,w;if(c){let E=this;_=function(){return E._gl.createVertexArray()},C=function(X){E._gl.bindVertexArray(X)},V=function(X){E._gl.deleteVertexArray(X)},L=function(X,A,N,O,U){d.drawElementsInstanced(X,A,N,O,U)},Z=function(X,A,N,O){d.drawArraysInstanced(X,A,N,O)},G=function(X,A){d.vertexAttribDivisor(X,A)},I=function(X){d.drawBuffers(X)}}else v=xr(d,["OES_vertex_array_object"]),l(v)&&(_=function(){return v.createVertexArrayOES()},C=function(E){v.bindVertexArrayOES(E)},V=function(E){v.deleteVertexArrayOES(E)}),P=xr(d,["ANGLE_instanced_arrays"]),l(P)&&(L=function(E,X,A,N,O){P.drawElementsInstancedANGLE(E,X,A,N,O)},Z=function(E,X,A,N){P.drawArraysInstancedANGLE(E,X,A,N)},G=function(E,X){P.vertexAttribDivisorANGLE(E,X)}),w=xr(d,["WEBGL_draw_buffers"]),l(w)&&(I=function(E){w.drawBuffersWEBGL(E)});this.glCreateVertexArray=_,this.glBindVertexArray=C,this.glDeleteVertexArray=V,this.glDrawElementsInstanced=L,this.glDrawArraysInstanced=Z,this.glVertexAttribDivisor=G,this.glDrawBuffers=I,this._vertexArrayObject=!!v,this._instancedArrays=!!P,this._drawBuffers=!!w,Bt._maximumDrawBuffers=this.drawBuffers?d.getParameter(ie.MAX_DRAW_BUFFERS):1,Bt._maximumColorAttachments=this.drawBuffers?d.getParameter(ie.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new B(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let F=new qG,b=new ec(this),R=Ue.fromCache();this._defaultPassState=b,this._defaultRenderState=R,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=F,this._currentRenderState=R,this._currentPassState=b,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let E=0;E"u")throw new de("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new de("The browser supports WebGL, but initialization failed.");return r}function JEe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function QEe(e,t,n,i){let o=`${JEe(e,i)}: ${t.name}(`;for(let r=0;r=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},supportsTextureLod:{get:function(){return this._webgl2||this._supportsTextureLod}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=$Ee(this._originalGLContext,e?jEe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Pt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Pt({context:this,pixelFormat:ot.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Pt({context:this,pixelFormat:ot.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new yr({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return eIe}}});function qte(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ue.partialApply(e._gl,o,t,r,n,i)}var LY;typeof WebGLRenderingContext<"u"&&(LY=[ie.BACK]);function RY(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=LY;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var tIe=new ei;ad.prototype.clear=function(e,t){e=y(e,tIe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(B.equals(this._clearColor,o)||(B.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);qte(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);RY(this,c),n.clear(i)};function nIe(e,t,n,i,o){RY(e,t),qte(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function iIe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,M.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let d=r.indexBuffer;l(d)?(s=s*d.bytesPerIndex,l(a)?a=Math.min(a,d.numberOfIndices):a=d.numberOfIndices,c===0?e._gl.drawElements(o,a,d.indexDatatype,s):e.glDrawElementsInstanced(o,a,d.indexDatatype,s,c)):(l(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}ad.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),nIe(this,o,t,n,r),iIe(this,e,n,i)};ad.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=LY;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i0&&(a=s.getColorTexture(0).pixelDatatype);let c=ot.createTypedArray(ot.RGBA,a,o,r);return RY(this,s),t.readPixels(n,i,o,r,ot.RGBA,qe.toWebGLConstant(a,this),c),c};var $te={position:0,textureCoordinates:1};ad.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new ht({attributes:{position:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Fe.TRIANGLES});e=ti.fromGeometry({context:this,geometry:t,attributeLocations:$te,bufferUsage:Me.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};ad.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new tt({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Fe.TRIANGLES,renderState:t.renderState,shaderProgram:tn.fromCache({context:this,vertexShaderSource:ix,fragmentShaderSource:e,attributeLocations:$te}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};ad.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function ZY(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(ZY.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});ZY.prototype.destroy=function(){delete this._pickObjects[this.key]};ad.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new de("Out of unique Pick IDs.");return this._pickObjects[t]=e,new ZY(this._pickObjects,t,B.fromRgba(t))};ad.prototype.isDestroyed=function(){return!1};ad.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),me(this)};ad._deprecationWarning=ls;var $G=ad;var LBt=T(S(),1);var iBt=T(S(),1);function KS(e){e=y(e,y.EMPTY_OBJECT);let{context:t,width:n,height:i,colorRenderbuffers:o,colorTextures:r,depthStencilRenderbuffer:s,depthStencilTexture:a,destroyAttachments:c}=e;if(this._width=n,this._height=i,l(o)!==l(r))throw new pe("Both color renderbuffer and texture attachments must be provided.");if(l(s)!==l(a))throw new pe("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Wr({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:c}),this._colorFramebuffer=new Wr({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:c})}KS.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};KS.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};KS.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};KS.prototype.isDestroyed=function(){return!1};KS.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),me(this)};var eE=KS;var hBt=T(S(),1);var sBt=T(S(),1);var Sl={RGBA4:ie.RGBA4,RGBA8:ie.RGBA8,RGBA16F:ie.RGBA16F,RGBA32F:ie.RGBA32F,RGB5_A1:ie.RGB5_A1,RGB565:ie.RGB565,DEPTH_COMPONENT16:ie.DEPTH_COMPONENT16,STENCIL_INDEX8:ie.STENCIL_INDEX8,DEPTH_STENCIL:ie.DEPTH_STENCIL,DEPTH24_STENCIL8:ie.DEPTH24_STENCIL8,validate:function(e){return e===Sl.RGBA4||e===Sl.RGBA8||e===Sl.RGBA16F||e===Sl.RGBA32F||e===Sl.RGB5_A1||e===Sl.RGB565||e===Sl.DEPTH_COMPONENT16||e===Sl.STENCIL_INDEX8||e===Sl.DEPTH_STENCIL||e===Sl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===ie.FLOAT?Sl.RGBA32F:e===ie.HALF_FLOAT_OES?Sl.RGBA16F:Sl.RGBA8}},vc=Object.freeze(Sl);function tE(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=Bt.maximumRenderbufferSize,o=y(e.format,vc.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(tE.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});tE.prototype._getRenderbuffer=function(){return this._renderbuffer};tE.prototype.isDestroyed=function(){return!1};tE.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),me(this)};var cd=tE;function Ts(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(Ts.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});Ts.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};Ts.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,qe.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,ot.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s1){let a=vc.getColorFormat(o);this._colorRenderbuffers[s]=new cd({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Pt({context:e,width:t,height:n,pixelFormat:ot.DEPTH_STENCIL,pixelDatatype:qe.UNSIGNED_INT_24_8,sampler:en.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new cd({context:e,width:t,height:n,format:vc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new cd({context:e,width:t,height:n,format:vc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Pt({context:e,width:t,height:n,pixelFormat:ot.DEPTH_COMPONENT,pixelDatatype:qe.UNSIGNED_INT,sampler:en.NEAREST}):this._depthRenderbuffer=new cd({context:e,width:t,height:n,format:vc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new eE({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Wr({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};Ts.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};Ts.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};Ts.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};Ts.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};Ts.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};Ts.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};Ts.prototype.getDepthTexture=function(){return this._depthTexture};Ts.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};Ts.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};Ts.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};Ts.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};Ts.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};Ts.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};Ts.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};Ts.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};Ts.prototype.destroy=function(){if(this._color){let e=this._colorTextures,t=this._colorRenderbuffers;for(let n=0;n0?Q.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};As._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}As.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t0&&(this._hash={},e.length=0)};var Zt=bx;var C3t=T(S(),1);function ld(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(ld.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});ld.packedLength=2;ld.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};ld.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ld),n.near=e[t++],n.far=e[t],n};ld.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};ld.clone=function(e,t){if(l(e))return l(t)||(t=new ld),t.near=e.near,t.far=e.far,t};ld.prototype.clone=function(e){return ld.clone(this,e)};ld.prototype.equals=function(e){return ld.equals(this,e)};var At=ld;var Z3t=T(S(),1);function pu(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}pu.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new pu(e.near,e.nearValue,e.far,e.farValue)};pu.packedLength=4;pu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};pu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new pu),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};pu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};pu.prototype.clone=function(e){return pu.clone(this,e)};pu.prototype.equals=function(e){return pu.equals(this,e)};var Ut=pu;var E3t=T(S(),1),gx={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6},Qe=Object.freeze(gx);function bu(e){return e===gx.CLAMP_TO_GROUND||e===gx.CLAMP_TO_3D_TILE||e===gx.CLAMP_TO_TERRAIN}function JS(e){return e===gx.RELATIVE_TO_GROUND||e===gx.RELATIVE_TO_3D_TILE||e===gx.RELATIVE_TO_TERRAIN}var X3t=T(S(),1),fIe={CENTER:0,LEFT:1,RIGHT:-1},gi=Object.freeze(fIe);var P3t=T(S(),1),pIe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Pn=Object.freeze(pIe);var w3t=T(S(),1),bIe={DONE:0,PENDING:1,FAILED:2},ft=Object.freeze(bIe);var k3t=T(S(),1);function Vm(){pe.throwInstantiationError()}Object.defineProperties(Vm.prototype,{isConstant:{get:pe.throwInstantiationError},definitionChanged:{get:pe.throwInstantiationError}});Vm.prototype.getValue=pe.throwInstantiationError;Vm.prototype.equals=pe.throwInstantiationError;Vm.equals=function(e,t){return e===t||l(e)&&e.equals(t)};Vm.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new ene(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new ene(r)):(XY(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],XY(s.get(r.id),r,a),s.remove(r.id)};function XY(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var sE=F0;var Atn=T(S(),1);var gOt=T(S(),1);var MIe=new h;function qh(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}qh.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new qh({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};qh.fromAxisAlignedBoundingBox=function(e){return new qh({minimum:e.minimum,maximum:e.maximum})};qh.packedLength=2*h.packedLength+1;qh.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var nne=new h,ine=new h,tne={minimum:nne,maximum:ine,offsetAttribute:void 0};qh.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,nne),o=h.unpack(e,t+h.packedLength,ine),r=e[t+h.packedLength*2];return l(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(tne.offsetAttribute=r===-1?void 0:r,new qh(tne))};qh.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new mn,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=h.subtract(n,t,MIe),a=h.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,d=e._offsetAttribute===cn.NONE?0:1,u=new Uint8Array(c/3).fill(d);i.applyOffset=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:1,values:u})}return new ht({attributes:i,indices:o,primitiveType:Fe.LINES,boundingSphere:new ce(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var Lm=qh;var COt=T(S(),1);function QS(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([B.floatToByte(e),B.floatToByte(t),B.floatToByte(n),B.floatToByte(i)])}Object.defineProperties(QS.prototype,{componentDatatype:{get:function(){return Q.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});QS.fromColor=function(e){return new QS(e.red,e.green,e.blue,e.alpha)};QS.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};QS.equals=function(e,t){return e===t||l(e)&&l(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var Kt=QS;var GOt=T(S(),1);function aE(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(aE.prototype,{componentDatatype:{get:function(){return Q.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});aE.fromDistanceDisplayCondition=function(e){return new aE(e.near,e.far)};aE.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var Nn=aE;var WOt=T(S(),1);function NIe(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var Gt=NIe;var DOt=T(S(),1);var MOt=T(S(),1);function Jo(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?j.clone(e.start):new j,this.stop=l(e.stop)?j.clone(e.stop):new j,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Jo.prototype,{isEmpty:{get:function(){let e=j.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var jS={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Jo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new pe("options.iso8601 is an invalid ISO 8601 interval.");let i=j.fromIso8601(n[0]),o=j.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(jS.start=i,jS.stop=o,jS.isStartIncluded=r,jS.isStopIncluded=s,jS.data=a,new Jo(jS))};Jo.toIso8601=function(e,t){return`${j.toIso8601(e.start,t)}/${j.toIso8601(e.stop,t)}`};Jo.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Jo(e)};Jo.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&j.equals(e.start,t.start)&&j.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Jo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&j.equalsEpsilon(e.start,t.start,n)&&j.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Jo.intersect=function(e,t,n,i){if(!l(t))return Jo.clone(Jo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=j.greaterThanOrEquals(s,o)&&j.greaterThanOrEquals(r,s),d=!c&&j.lessThanOrEquals(s,o)&&j.lessThanOrEquals(o,a);if(!c&&!d)return Jo.clone(Jo.EMPTY,n);let u=e.isStartIncluded,m=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,f=j.lessThan(r,a);return l(n)||(n=new Jo),n.start=c?s:o,n.isStartIncluded=u&&p||!j.equals(s,o)&&(c&&p||d&&u),n.stop=f?r:a,n.isStopIncluded=f?m:m&&g||!j.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Jo.contains=function(e,t){if(e.isEmpty)return!1;let n=j.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=j.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Jo.prototype.clone=function(e){return Jo.clone(this,e)};Jo.prototype.equals=function(e,t){return Jo.equals(this,e,t)};Jo.prototype.equalsEpsilon=function(e,t,n){return Jo.equalsEpsilon(this,e,t,n)};Jo.prototype.toString=function(){return Jo.toIso8601(this)};Jo.EMPTY=Object.freeze(new Jo({start:new j,stop:new j,isStartIncluded:!1,isStopIncluded:!1}));var Vn=Jo;var one=Object.freeze(j.fromIso8601("0000-01-01T00:00:00Z")),rne=Object.freeze(j.fromIso8601("9999-12-31T24:00:00Z")),kIe=Object.freeze(new Vn({start:one,stop:rne})),UIe={MINIMUM_VALUE:one,MAXIMUM_VALUE:rne,MAXIMUM_INTERVAL:kIe},Be=UIe;var zOt=T(S(),1);function cE(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(cE.prototype,{componentDatatype:{get:function(){return Q.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});cE.fromCartesian3=function(e){return new cE(e.x,e.y,e.z)};cE.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Qi=cE;var qOt=T(S(),1);function YN(e){e=y(e,!0),this.value=YN.toValue(e)}Object.defineProperties(YN.prototype,{componentDatatype:{get:function(){return Q.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});YN.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var xn=YN;var hzt=T(S(),1);var eYt=T(S(),1),lE=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec3 v_tangentEC; +in vec3 v_bitangentEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = tangentToEyeMatrix; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var nYt=T(S(),1),dE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec3 tangent; +in vec3 bitangent; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec3 v_tangentEC; +out vec3 v_bitangentEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_tangentEC = czm_normal * tangent; // tangent in eye coordinates + v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var oYt=T(S(),1),uE=`in vec3 v_positionEC; +in vec3 v_normalEC; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var sYt=T(S(),1),mE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var cYt=T(S(),1),hE=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var dYt=T(S(),1),fE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var XYt=T(S(),1);var _Yt=T(S(),1);var hYt=T(S(),1);var DIe={ADD:ie.FUNC_ADD,SUBTRACT:ie.FUNC_SUBTRACT,REVERSE_SUBTRACT:ie.FUNC_REVERSE_SUBTRACT,MIN:ie.MIN,MAX:ie.MAX},Ga=Object.freeze(DIe);var bYt=T(S(),1);var BIe={ZERO:ie.ZERO,ONE:ie.ONE,SOURCE_COLOR:ie.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:ie.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:ie.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:ie.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:ie.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:ie.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:ie.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:ie.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:ie.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:ie.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:ie.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:ie.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:ie.SRC_ALPHA_SATURATE},Co=Object.freeze(BIe);var OIe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE,functionDestinationAlpha:Co.ONE})},un=Object.freeze(OIe);var CYt=T(S(),1);var YIe={FRONT:ie.FRONT,BACK:ie.BACK,FRONT_AND_BACK:ie.FRONT_AND_BACK},yi=Object.freeze(YIe);function qS(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(qS.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});qS.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` +`)};qS.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};qS.prototype.getRenderState=function(){let e=this.isTranslucent(),t=Ye(this.renderState,!1);return e?(t.depthMask=!1,t.blending=un.ALPHA_BLEND):t.depthMask=!0,t};qS.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=un.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:yi.BACK}),l(n)&&(i=Tt(n,i,!0)),i};var eo=qS;var ezt=T(S(),1);var PYt=T(S(),1),pE=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var wYt=T(S(),1),bE=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + vec2 centerPixel = fract(repeat * st); + float centerBump = texture(image, centerPixel).channel; + + float imageWidth = float(imageDimensions.x); + vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); + float rightBump = texture(image, rightPixel).channel; + + float imageHeight = float(imageDimensions.y); + vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); + float topBump = texture(image, leftPixel).channel; + + vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + material.diffuse = vec3(0.01); + + return material; +} +`;var AYt=T(S(),1),gE=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 + + // Find the distance from the closest separator (region between two colors) + float scaledWidth = fract(repeat.s * st.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(repeat.t * st.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + float value = min(scaledWidth, scaledHeight); + + vec4 currentColor = mix(lightColor, darkColor, b); + vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); + + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var NYt=T(S(),1),yE=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 + + vec4 color = mix(lightColor, darkColor, b); + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var UYt=T(S(),1),xE=`uniform sampler2D heights; +uniform sampler2D colors; + +// This material expects heights to be sorted from lowest to highest. + +float getHeight(int idx, float invTexSize) +{ + vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); +#ifdef OES_texture_float + return texture(heights, uv).x; +#else + return czm_unpackFloat(texture(heights, uv)); +#endif +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float height = materialInput.height; + float invTexSize = 1.0 / float(heightsDimensions.x); + + float minHeight = getHeight(0, invTexSize); + float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); + + // early-out when outside the height range + if (height < minHeight || height > maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var BYt=T(S(),1),_E=`uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var YYt=T(S(),1),TE=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var zYt=T(S(),1),SE=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var JYt=T(S(),1),CE=`uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var jYt=T(S(),1),VE=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var $Yt=T(S(),1),LE=`uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var tHt=T(S(),1),RE=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var iHt=T(S(),1),ZE=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var rHt=T(S(),1),GE=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var aHt=T(S(),1),EE=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var lHt=T(S(),1),IE=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var uHt=T(S(),1),XE=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var hHt=T(S(),1),WE=`uniform vec4 waterColor; +uniform vec4 landColor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 outColor = mix(landColor, waterColor, materialInput.waterMask); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var pHt=T(S(),1),PE=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function ze(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,$t.LINEAR),this._magnificationFilter=y(e.magnificationFilter,hi.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,HIe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(ze._uniformList[this.type])||(ze._uniformList[this.type]=Object.keys(this._uniforms))}ze._uniformList={};ze.fromType=function(e,t){let n=new ze({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};ze.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i-1)return!0;return!1}function qIe(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&jIe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var ane={mat2:wi,mat3:$,mat4:M},$Ie=/\.ktx2$/i;function eXe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===ze.DefaultImageId;t=r;let c=n._textures[e],d,u;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new en({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Pt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Pt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,d=`${e}Dimensions`,o.hasOwnProperty(d)&&(u=o[d],u.x=r._width,u.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,d=`${e}Dimensions`,o.hasOwnProperty(d)&&(u=o[d],u.x=c._width,u.y=c._height)),a)return;let m=r instanceof Ee;if(!l(n._texturePaths[e])||m&&r.url!==n._texturePaths[e].url||!m&&r!==n._texturePaths[e]){if(typeof r=="string"||m){let p=m?r:Ee.createIfNeeded(r),g;$Ie.test(p.url)?g=_l(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(f){n._loadedImages.push({id:e,image:f})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function tXe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof yr){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===ze.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[Ee.createIfNeeded(i.positiveX).fetchImage(),Ee.createIfNeeded(i.negativeX).fetchImage(),Ee.createIfNeeded(i.positiveY).fetchImage(),Ee.createIfNeeded(i.negativeY).fetchImage(),Ee.createIfNeeded(i.positiveZ).fetchImage(),Ee.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function nXe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&cne(e,n)}function cne(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=iXe(o),s;if(r==="channels")s=vE(e,t,o,!1);else{if(r==="sampler2D"){let d=`${t}Dimensions`;rXe(e,d)>0&&(i[d]={type:"ivec3",x:1,y:1},cne(e,d))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let d=`uniform ${r} ${t};`;e.shaderSource=d+e.shaderSource}let c=`${t}_${e._count++}`;if(s=vE(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(eXe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(tXe(t));else if(r.indexOf("mat")!==-1){let d=new ane[r];e._uniforms[c]=function(){return ane[r].fromColumnMajorArray(e.uniforms[t],d)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function iXe(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof Ee||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===ze.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function oXe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new ze({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=Tt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;vE(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=vE(e,i,a)}}function vE(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,d,u){return d||u?c:(o+=1,n)}),o}function rXe(e,t,n){return vE(e,t,t,n)}ze._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};ze.DefaultImageId="czm_defaultImage";ze.DefaultCubeMapId="czm_defaultCubeMap";ze.ColorType="Color";ze._materialCache.addMaterial(ze.ColorType,{fabric:{type:ze.ColorType,uniforms:{color:new B(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});ze.ImageType="Image";ze._materialCache.addMaterial(ze.ImageType,{fabric:{type:ze.ImageType,uniforms:{image:ze.DefaultImageId,repeat:new D(1,1),color:new B(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});ze.DiffuseMapType="DiffuseMap";ze._materialCache.addMaterial(ze.DiffuseMapType,{fabric:{type:ze.DiffuseMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",repeat:new D(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});ze.AlphaMapType="AlphaMap";ze._materialCache.addMaterial(ze.AlphaMapType,{fabric:{type:ze.AlphaMapType,uniforms:{image:ze.DefaultImageId,channel:"a",repeat:new D(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});ze.SpecularMapType="SpecularMap";ze._materialCache.addMaterial(ze.SpecularMapType,{fabric:{type:ze.SpecularMapType,uniforms:{image:ze.DefaultImageId,channel:"r",repeat:new D(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});ze.EmissionMapType="EmissionMap";ze._materialCache.addMaterial(ze.EmissionMapType,{fabric:{type:ze.EmissionMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",repeat:new D(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});ze.BumpMapType="BumpMap";ze._materialCache.addMaterial(ze.BumpMapType,{fabric:{type:ze.BumpMapType,uniforms:{image:ze.DefaultImageId,channel:"r",strength:.8,repeat:new D(1,1)},source:bE},translucent:!1});ze.NormalMapType="NormalMap";ze._materialCache.addMaterial(ze.NormalMapType,{fabric:{type:ze.NormalMapType,uniforms:{image:ze.DefaultImageId,channels:"rgb",strength:.8,repeat:new D(1,1)},source:VE},translucent:!1});ze.GridType="Grid";ze._materialCache.addMaterial(ze.GridType,{fabric:{type:ze.GridType,uniforms:{color:new B(0,1,0,1),cellAlpha:.1,lineCount:new D(8,8),lineThickness:new D(1,1),lineOffset:new D(0,0)},source:CE},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});ze.StripeType="Stripe";ze._materialCache.addMaterial(ze.StripeType,{fabric:{type:ze.StripeType,uniforms:{horizontal:!0,evenColor:new B(1,1,1,.5),oddColor:new B(0,0,1,.5),offset:0,repeat:5},source:XE},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});ze.CheckerboardType="Checkerboard";ze._materialCache.addMaterial(ze.CheckerboardType,{fabric:{type:ze.CheckerboardType,uniforms:{lightColor:new B(1,1,1,.5),darkColor:new B(0,0,0,.5),repeat:new D(5,5)},source:gE},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});ze.DotType="Dot";ze._materialCache.addMaterial(ze.DotType,{fabric:{type:ze.DotType,uniforms:{lightColor:new B(1,1,0,.75),darkColor:new B(0,1,1,.75),repeat:new D(5,5)},source:yE},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});ze.WaterType="Water";ze._materialCache.addMaterial(ze.WaterType,{fabric:{type:ze.WaterType,uniforms:{baseWaterColor:new B(.2,.3,.6,1),blendColor:new B(0,1,.699,1),specularMap:ze.DefaultImageId,normalMap:ze.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:PE},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});ze.RimLightingType="RimLighting";ze._materialCache.addMaterial(ze.RimLightingType,{fabric:{type:ze.RimLightingType,uniforms:{color:new B(1,0,0,.7),rimColor:new B(1,1,1,.4),width:.3},source:EE},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});ze.FadeType="Fade";ze._materialCache.addMaterial(ze.FadeType,{fabric:{type:ze.FadeType,uniforms:{fadeInColor:new B(1,0,0,1),fadeOutColor:new B(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new D(.5,.5)},source:SE},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});ze.PolylineArrowType="PolylineArrow";ze._materialCache.addMaterial(ze.PolylineArrowType,{fabric:{type:ze.PolylineArrowType,uniforms:{color:new B(1,1,1,1)},source:LE},translucent:!0});ze.PolylineDashType="PolylineDash";ze._materialCache.addMaterial(ze.PolylineDashType,{fabric:{type:ze.PolylineDashType,uniforms:{color:new B(1,0,1,1),gapColor:new B(0,0,0,0),dashLength:16,dashPattern:255},source:RE},translucent:!0});ze.PolylineGlowType="PolylineGlow";ze._materialCache.addMaterial(ze.PolylineGlowType,{fabric:{type:ze.PolylineGlowType,uniforms:{color:new B(0,.5,1,1),glowPower:.25,taperPower:1},source:ZE},translucent:!0});ze.PolylineOutlineType="PolylineOutline";ze._materialCache.addMaterial(ze.PolylineOutlineType,{fabric:{type:ze.PolylineOutlineType,uniforms:{color:new B(1,1,1,1),outlineColor:new B(1,0,0,1),outlineWidth:1},source:GE},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});ze.ElevationContourType="ElevationContour";ze._materialCache.addMaterial(ze.ElevationContourType,{fabric:{type:ze.ElevationContourType,uniforms:{spacing:100,color:new B(1,0,0,1),width:1},source:_E},translucent:!1});ze.ElevationRampType="ElevationRamp";ze._materialCache.addMaterial(ze.ElevationRampType,{fabric:{type:ze.ElevationRampType,uniforms:{image:ze.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:TE},translucent:!1});ze.SlopeRampMaterialType="SlopeRamp";ze._materialCache.addMaterial(ze.SlopeRampMaterialType,{fabric:{type:ze.SlopeRampMaterialType,uniforms:{image:ze.DefaultImageId},source:IE},translucent:!1});ze.AspectRampMaterialType="AspectRamp";ze._materialCache.addMaterial(ze.AspectRampMaterialType,{fabric:{type:ze.AspectRampMaterialType,uniforms:{image:ze.DefaultImageId},source:pE},translucent:!1});ze.ElevationBandType="ElevationBand";ze._materialCache.addMaterial(ze.ElevationBandType,{fabric:{type:ze.ElevationBandType,uniforms:{heights:ze.DefaultImageId,colors:ze.DefaultImageId},source:xE},translucent:!0});ze.WaterMaskType="WaterMask";ze._materialCache.addMaterial(ze.WaterMaskType,{fabric:{type:ze.WaterMaskType,source:WE,uniforms:{waterColor:new B(1,1,1,1),landColor:new B(0,0,0,0)}},translucent:!1});var Oi=ze;function yx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,yx.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:Oi.fromType(Oi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(yx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});yx.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;yx.prototype.isTranslucent=eo.prototype.isTranslucent;yx.prototype.getRenderState=eo.prototype.getRenderState;yx.MaterialSupport={BASIC:Object.freeze({vertexFormat:We.POSITION_AND_NORMAL,vertexShaderSource:mE,fragmentShaderSource:uE}),TEXTURED:Object.freeze({vertexFormat:We.POSITION_NORMAL_AND_ST,vertexShaderSource:fE,fragmentShaderSource:hE}),ALL:Object.freeze({vertexFormat:We.ALL,vertexShaderSource:dE,fragmentShaderSource:lE})};var oo=yx;var Izt=T(S(),1);var pzt=T(S(),1),wE=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var gzt=T(S(),1),FE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var xzt=T(S(),1),xx=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var Tzt=T(S(),1),AE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function Cp(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?AE:FE,r=i?xx:wE,s=i?Cp.FLAT_VERTEX_FORMAT:Cp.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Cp.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Cp.VERTEX_FORMAT=We.POSITION_AND_NORMAL;Cp.FLAT_VERTEX_FORMAT=We.POSITION_ONLY;Cp.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;Cp.prototype.isTranslucent=eo.prototype.isTranslucent;Cp.prototype.getRenderState=eo.prototype.getRenderState;var dn=Cp;var Mzt=T(S(),1);function $S(e){this._definitionChanged=new be,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties($S.prototype,{isConstant:{get:function(){return K.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:ue("color")});$S.prototype.getType=function(e){return"Color"};var sXe=new j;$S.prototype.getValue=function(e,t){return l(e)||(e=j.now(sXe)),l(t)||(t={}),t.color=K.getValueOrClonedDefault(this._color,e,B.WHITE,t.color),t};$S.prototype.equals=function(e){return this===e||e instanceof $S&&K.equals(this._color,e._color)};var Yt=$S;var Cjt=T(S(),1);var njt=T(S(),1);var sKt=T(S(),1);var zzt=T(S(),1);function A0(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ne.default),this._rectangle=y(e.rectangle,ae.MAX_VALUE),this._projection=new Ri(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(A0.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});A0.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(d=o-1);let u=(i.north-e.latitude)/a|0;return u>=r&&(u=r-1),l(n)?(n.x=d,n.y=u,n):new D(d,u)};var Yi=A0;var lne=new h,dne=new h,une=new he,PY=new h,aXe=new h,mne=new ce,cXe=new Yi,ME=[new he,new he,new he,new he],NE=new D,zr={};zr.initialize=function(){let e=zr._initPromise;return l(e)||(e=Ee.fetchJson(rn("Assets/approximateTerrainHeights.json")).then(function(t){zr._terrainHeights=t}),zr._initPromise=e),e};zr.getMinimumMaximumHeights=function(e,t){t=y(t,ne.default);let n=hne(e),i=zr._defaultMinTerrainHeight,o=zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=zr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(ae.northeast(e,une),lne),t.cartographicToCartesian(ae.southwest(e,une),dne),h.midpoint(dne,lne,PY);let a=t.scaleToGeodeticSurface(PY,aXe);if(l(a)){let c=h.distance(PY,a);i=Math.min(i,-c)}else i=zr._defaultMinTerrainHeight}return i=Math.max(zr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};zr.getBoundingSphere=function(e,t){t=y(t,ne.default);let n=hne(e),i=zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=zr._terrainHeights[r];l(s)&&(i=s[1])}let o=ce.fromRectangle3D(e,t,0);return ce.fromRectangle3D(e,t,i,mne),ce.union(o,mne,o)};function hne(e){he.fromRadians(e.east,e.north,0,ME[0]),he.fromRadians(e.west,e.north,0,ME[1]),he.fromRadians(e.east,e.south,0,ME[2]),he.fromRadians(e.west,e.south,0,ME[3]);let t=0,n=0,i=0,o=0,r=zr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let d=ME[c];if(cXe.positionToTileXY(d,s,NE),c===0)i=NE.x,o=NE.y;else if(i!==NE.x||o!==NE.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}zr._terrainHeightsMaxLevel=6;zr._defaultMaxTerrainHeight=9e3;zr._defaultMinTerrainHeight=-1e5;zr._terrainHeights=void 0;zr._initPromise=void 0;Object.defineProperties(zr,{initialized:{get:function(){return l(zr._terrainHeights)}}});var li=zr;var BKt=T(S(),1);var RKt=T(S(),1);var mKt=T(S(),1);function Fc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Fc.fromCorners=function(e,t,n){return l(n)||(n=new Fc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Fc.fromPoints=function(e,t){if(l(t)||(t=new Fc),!l(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let m=1;m0?Jt.INSIDE:r+o<0?Jt.OUTSIDE:Jt.INTERSECTING};Fc.prototype.clone=function(e){return Fc.clone(this,e)};Fc.prototype.intersectPlane=function(e){return Fc.intersectPlane(this,e)};Fc.prototype.equals=function(e){return Fc.equals(this,e)};var M0=Fc;var vY=new se;function $h(e,t){t=y(t,ne.default),e=t.scaleToGeodeticSurface(e);let n=Ft.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(M.getColumn(n,0,vY)),this._yAxis=h.fromCartesian4(M.getColumn(n,1,vY));let i=h.fromCartesian4(M.getColumn(n,2,vY));this._plane=ln.fromPointNormal(e,i)}Object.defineProperties($h.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var lXe=new M0;$h.fromPoints=function(e,t){let n=M0.fromPoints(e,lXe);return new $h(n.center,t)};var fne=new pn,zN=new h;$h.prototype.projectPointOntoPlane=function(e,t){let n=fne;n.origin=e,h.normalize(e,n.direction);let i=qn.rayPlane(n,this._plane,zN);if(l(i)||(h.negate(n.direction,n.direction),i=qn.rayPlane(n,this._plane,zN)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new D(r,s)}};$h.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o0?0:v.latitude,R=he.fromRadians(F,e.north,n,TXe),E=he.fromRadians(e.west,e.north,n,SXe),X=he.fromRadians(e.west,b,n,CXe),A=he.fromRadians(e.west,e.south,n,VXe),N=he.fromRadians(F,e.south,n,LXe),O=i.cartographicToCartesian(R,RXe),U=i.cartographicToCartesian(E,gne),Y=i.cartographicToCartesian(X,ZXe),k=i.cartographicToCartesian(A,yne),H=i.cartographicToCartesian(N,GXe),J=w.projectPointToNearestOnPlane(O,EXe),te=w.projectPointToNearestOnPlane(U,IXe),z=w.projectPointToNearestOnPlane(Y,XXe),q=w.projectPointToNearestOnPlane(k,WXe),ee=w.projectPointToNearestOnPlane(H,PXe);return r=Math.min(te.x,z.x,q.x),s=-r,c=Math.max(te.y,J.y),a=Math.min(q.y,ee.y),E.height=A.height=t,U=i.cartographicToCartesian(E,gne),k=i.cartographicToCartesian(A,yne),d=Math.min(ln.getPointDistance(m,U),ln.getPointDistance(m,k)),u=n,pne(w.origin,w.xAxis,w.yAxis,w.zAxis,r,s,a,c,d,u,o)}let p=e.south>0,g=e.north<0,f=p?e.south:g?e.north:0,x=ae.center(e,bne).longitude,_=h.fromRadians(x,f,n,i,vXe);_.z=0;let V=Math.abs(_.x)=c?Jt.INSIDE:Jt.INTERSECTING};var Tne=new h,Sne=new h,Cne=new h,BXe=new h,xne=new h,OXe=new h;Fi.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,_ne),i=e.halfAxes,o=$.getColumn(i,0,Tne),r=$.getColumn(i,1,Sne),s=$.getColumn(i,2,Cne),a=h.magnitude(o),c=h.magnitude(r),d=h.magnitude(s),u=!0,m=!0,p=!0;a>0?h.divideByScalar(o,a,o):u=!1,c>0?h.divideByScalar(r,c,r):m=!1,d>0?h.divideByScalar(s,d,s):p=!1;let g=!u+!m+!p,f,x,_;if(g===1){let Z=o;f=r,x=s,m?p||(Z=s,x=o):(Z=r,f=o),_=h.cross(f,x,xne),Z===o?o=_:Z===r?r=_:Z===s&&(s=_)}else if(g===2){f=o,m?f=r:p&&(f=s);let Z=h.UNIT_Y;Z.equalsEpsilon(f,W.EPSILON3)&&(Z=h.UNIT_X),x=h.cross(f,Z,BXe),h.normalize(x,x),_=h.cross(f,x,xne),h.normalize(_,_),f===o?(r=x,s=_):f===r?(s=x,o=_):f===s&&(o=x,r=_)}else g===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let C=OXe;C.x=h.dot(n,o),C.y=h.dot(n,r),C.z=h.dot(n,s);let V=0,L;return C.x<-a?(L=C.x+a,V+=L*L):C.x>a&&(L=C.x-a,V+=L*L),C.y<-c?(L=C.y+c,V+=L*L):C.y>c&&(L=C.y-c,V+=L*L),C.z<-d?(L=C.z+d,V+=L*L):C.z>d&&(L=C.z-d,V+=L*L),V};var YXe=new h,HXe=new h;Fi.computePlaneDistances=function(e,t,n,i){l(i)||(i=new La);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,Tne),d=$.getColumn(a,1,Sne),u=$.getColumn(a,2,Cne),m=h.add(c,d,YXe);h.add(m,u,m),h.add(m,s,m);let p=h.subtract(m,t,HXe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,m),h.add(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,m),h.subtract(m,d,m),h.add(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,m),h.subtract(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,m),h.add(m,d,m),h.add(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,m),h.add(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,m),h.subtract(m,d,m),h.add(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,m),h.subtract(m,d,m),h.subtract(m,u,m),h.subtract(m,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var zXe=new h,KXe=new h,JXe=new h;Fi.computeCorners=function(e,t){l(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,zXe),r=$.getColumn(i,1,KXe),s=$.getColumn(i,2,JXe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var QXe=new $;Fi.computeTransformation=function(e,t){l(t)||(t=new M);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,QXe);return M.fromRotationTranslation(i,n,t)};var jXe=new ce;Fi.isOccluded=function(e,t){let n=ce.fromOrientedBoundingBox(e,jXe);return!t.isBoundingSphereVisible(n)};Fi.prototype.intersectPlane=function(e){return Fi.intersectPlane(this,e)};Fi.prototype.distanceSquaredTo=function(e){return Fi.distanceSquaredTo(this,e)};Fi.prototype.computePlaneDistances=function(e,t,n){return Fi.computePlaneDistances(this,e,t,n)};Fi.prototype.computeCorners=function(e){return Fi.computeCorners(this,e)};Fi.prototype.computeTransformation=function(e){return Fi.computeTransformation(this,e)};Fi.prototype.isOccluded=function(e){return Fi.isOccluded(this,e)};Fi.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};Fi.prototype.clone=function(e){return Fi.clone(this,e)};Fi.prototype.equals=function(e){return Fi.equals(this,e)};var En=Fi;var KKt=T(S(),1);var KN={};KN.getHeight=function(e,t,n){return(e-n)*t+n};var qXe=new he;KN.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,qXe);if(!l(r))return h.clone(e,o);let s=KN.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var _r=KN;var M4t=T(S(),1);var QKt=T(S(),1),kE=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var qKt=T(S(),1),N0=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var eJt=T(S(),1),Vne={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};Vne.NUMBER_OF_CLASSIFICATION_TYPES=3;var kn=Object.freeze(Vne);var iJt=T(S(),1);var $Xe={NEVER:ie.NEVER,LESS:ie.LESS,EQUAL:ie.EQUAL,LESS_OR_EQUAL:ie.LEQUAL,GREATER:ie.GREATER,NOT_EQUAL:ie.NOTEQUAL,GREATER_OR_EQUAL:ie.GEQUAL,ALWAYS:ie.ALWAYS},nc=Object.freeze($Xe);var vQt=T(S(),1);var rJt=T(S(),1);function eWe(e,t){let n=[],i=e.length,o=0;for(;oCl.MaximumLatitude?e=Cl.MaximumLatitude:e<-Cl.MaximumLatitude&&(e=-Cl.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};Cl.MaximumLatitude=Cl.mercatorAngleToGeodeticLatitude(Math.PI);Cl.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=Cl.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};Cl.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=Cl.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new he(i,o,r)};var Zi=Cl;function fWe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r=0){let d=i[a];o=d.offset+d.count,s=d.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let d=0;dr&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function gWe(e,t){let n=[];return FY(e,"geometry",t,n),FY(e,"westHemisphereGeometry",t,n),FY(e,"eastHemisphereGeometry",t,n),n}var Lp={};Lp.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=bWe(e),t.length>0&&(n=Fn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=gWe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),d=new Array(o);for(let u=0;u0&&(n.set(c.indices,s),s+=f)}return t.push(n.buffer),{stringTable:i,packedData:n}};Lp.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s0){let G=_.length/C;for(Z=Ae.createTypedArray(G,x),i=0;i= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function Xne(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",d=`in ${a} ${c};`,u="",m="";if(i){u+=`vec2 st; +`;let f=s>1?`${c}.x`:c;m+=` st = czm_decompressTextureCoordinates(${f}); +`}n&&o&&r?(u+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,m+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(u+=`vec3 normal; +`,m+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(u+=`vec3 tangent; +`,m+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(u+=`vec3 bitangent; +`,m+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=De.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${m} czm_non_compressed_main(); +}`;return[d,u,p,g].join(` +`)}function WWe(e){let t=De.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function PWe(e){let t=De.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function Wne(e,t){let n=e.vertexAttributes}function vWe(e,t){return function(){return e[t]}}var AY=Math.max(zt.hardwareConcurrency-1,1),JN,wWe=new bi("combineGeometry");function FWe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Tr.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],d=[];for(o=0;o0){let x=new Float64Array(m);for(f=[x.buffer],r=0;r0?(e._recomputeBoundingSpheres=!0,e._state=Tr.COMBINED):OE(e,t,Tr.FAILED,void 0)}).catch(function(m){OE(e,t,Tr.FAILED,m)})}}function AWe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a0?(e._recomputeBoundingSpheres=!0,e._state=Tr.COMBINED):OE(e,t,Tr.FAILED,void 0)}function MWe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i0||ce.intersectPlane(x,ln.ORIGIN_ZX_PLANE)!==Jt.INTERSECTING?c.push(x):(d.push(x),u.push(x))}let m=c[0],p=u[0],g=d[0];for(i=1;i0){if(Bt.maximumVertexTextureImageUnits===0)throw new de("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==Tr.COMPLETE&&this._state!==Tr.COMBINED&&(this.asynchronous?FWe(this,e):AWe(this,e)),this._state===Tr.COMBINED&&(NWe(this,e),vne(this,e),UWe(this,e)),!this.show||this._state!==Tr.COMPLETE)return;this._batchTableOffsetsUpdated||vne(this,e),this._recomputeBoundingSpheres&&MWe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let d=n.closed&&c;o&&y(this._createRenderStatesFunction,DWe)(this,t,n,d),r&&y(this._createShaderProgramFunction,BWe)(this,e,n),(o||r)&&y(this._createCommandsFunction,OWe)(this,n,i,c,d,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,YWe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,d)};var HWe=new ce,zWe=new ce;function Dne(e,t,n){if(n===cn.TOP){let i=ce.clone(e,HWe),o=ce.clone(e,zWe);o.center=h.add(o.center,t,o.center),e=ce.union(i,o,e)}else n===cn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function KWe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=Q.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function JWe(e,t,n,i,o){return function(r){let s=Mne(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var QWe=new h;function jWe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&Dne(i,h.fromArray(r.get(),0,QWe),e._offsetInstanceExtend[n]),l(o)&&(i=ce.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function qWe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}Sr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let d=0;d 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function gu(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new NY;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new NY;if(o.requiresTextureCoordinates=e,n instanceof dn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}gu.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof dn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof dn||(o=t.material.shaderSource),new De({defines:i,sources:[o,eC]})};gu.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new De({defines:n,sources:[eC],pickColorQualifier:"in"})};gu.prototype.createVertexShader=function(e,t,n,i){return Qne(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};gu.prototype.createPickVertexShader=function(e,t,n,i){return Qne(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var Bne=new h,One=new he,Yne={high:0,low:0};function Qne(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let d=One;d.longitude=W.PI,d.latitude=0,d.height=0;let u=s.project(d,Bne),m=On.encode(u.x,Yne);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`;let p=One;p.longitude=-W.PI,p.latitude=0,p.height=0;let g=s.project(p,Bne);m=On.encode(g.x,Yne),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${m.high.toFixed(`${m.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${m.low.toFixed(`${m.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof dn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new De({defines:c,sources:[o]})}function NY(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(NY.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function Hne(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/D.distance(t,e)}var e2e=[new D,new D,new D,new D];function jne(e,t){let n=e2e,i=D.unpack(t,0,n[0]),o=D.unpack(t,2,n[1]),r=D.unpack(t,4,n[2]);e.uMaxVmax=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/Hne(i,o,r),a=1/Hne(i,r,o);e.uvMinAndExtents=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var qne=new he,$ne=new h,t2e=new h,n2e=new h,QN={high:0,low:0};function eie(e,t,n){let i=qne;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,$ne);i.latitude=e.north;let r=t.project(i,t2e);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,n2e),a=[0,0,0,0],c=[0,0,0,0],d=On.encode(o.x,QN);a[0]=d.high,c[0]=d.low,d=On.encode(o.y,QN),a[1]=d.high,c[1]=d.low,d=On.encode(r.y,QN),a[2]=d.high,c[2]=d.low,d=On.encode(s.x,QN),a[3]=d.high,c[3]=d.low,n.planes2D_HIGH=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var i2e=new M,o2e=new M,zne=new h,r2e=new he,s2e=[new he,new he,new he,new he,new he,new he,new he,new he];function a2e(e,t,n,i,o,r){let s=ae.center(e,r2e);s.height=n;let a=he.toCartesian(s,t,zne),c=Ft.eastNorthUpToFixedFrame(a,t,i2e),d=M.inverse(c,o2e),u=e.west,m=e.east,p=e.north,g=e.south,f=s2e;f[0].latitude=g,f[0].longitude=u,f[1].latitude=p,f[1].longitude=u,f[2].latitude=p,f[2].longitude=m,f[3].latitude=g,f[3].longitude=m;let x=(u+m)*.5,_=(p+g)*.5;f[4].latitude=g,f[4].longitude=x,f[5].latitude=p,f[5].longitude=x,f[6].latitude=_,f[6].longitude=u,f[7].latitude=_,f[7].longitude=m;let C=Number.POSITIVE_INFINITY,V=Number.NEGATIVE_INFINITY,L=Number.POSITIVE_INFINITY,Z=Number.NEGATIVE_INFINITY;for(let P=0;P<8;P++){f[P].height=n;let w=he.toCartesian(f[P],t,zne);M.multiplyByPoint(d,w,w),w.z=0,C=Math.min(C,w.x),V=Math.max(V,w.x),L=Math.min(L,w.y),Z=Math.max(Z,w.y)}let G=i;G.x=C,G.y=L,G.z=0,M.multiplyByPoint(c,G,G);let I=o;I.x=V,I.y=L,I.z=0,M.multiplyByPoint(c,I,I),h.subtract(I,G,o);let v=r;v.x=C,v.y=Z,v.z=0,M.multiplyByPoint(c,v,v),h.subtract(v,G,r)}var c2e=new h,l2e=new h,d2e=new On;gu.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=$ne,s=c2e,a=l2e;a2e(e,n,y(o,0),r,s,a);let c={};jne(c,t);let d=On.fromCartesian(r,d2e);return c.southWest_HIGH=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(d.high,[0,0,0])}),c.southWest_LOW=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(d.low,[0,0,0])}),c.eastward=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),eie(e,i,c),c};var u2e=new h;function Kne(e,t,n,i){let o=qne;o.latitude=e,o.longitude=t,o.height=0;let r=he.toCartesian(o,n,u2e),s=Math.sqrt(r.x*r.x+r.y*r.y),a=W.fastApproximateAtan2(s,r.z),c=W.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var Jne=new D;gu.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=Kne(e.south,e.west,n,Jne),r=o.x,s=o.y,a=Kne(e.north,e.east,n,Jne),c=a.x,d=a.y,u=0;s>d&&(u=W.PI-s,s=-W.PI,d+=u),r-=W.EPSILON5,s-=W.EPSILON5,c+=W.EPSILON5,d+=W.EPSILON5;let m=1/(d-s),p=1/(c-r),g={sphericalExtents:new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,m]}),longitudeRotation:new ic({componentDatatype:Q.FLOAT,componentsPerAttribute:1,normalize:!1,value:[u]})};return jne(g,t),eie(e,i,g),g};gu.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};gu.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function m2e(e){return Math.max(e.width,e.height)>gu.MAX_WIDTH_FOR_PLANAR_EXTENTS}gu.shouldUseSphericalCoordinates=function(e){return m2e(e)};gu.MAX_WIDTH_FOR_PLANAR_EXTENTS=W.toRadians(1);var ud=gu;var m4t=T(S(),1);var r4t=T(S(),1);var h2e={NEVER:ie.NEVER,LESS:ie.LESS,EQUAL:ie.EQUAL,LESS_OR_EQUAL:ie.LEQUAL,GREATER:ie.GREATER,NOT_EQUAL:ie.NOTEQUAL,GREATER_OR_EQUAL:ie.GEQUAL,ALWAYS:ie.ALWAYS},Un=Object.freeze(h2e);var c4t=T(S(),1);var f2e={ZERO:ie.ZERO,KEEP:ie.KEEP,REPLACE:ie.REPLACE,INCREMENT:ie.INCR,DECREMENT:ie.DECR,INVERT:ie.INVERT,INCREMENT_WRAP:ie.INCR_WRAP,DECREMENT_WRAP:ie.DECR_WRAP},bt=Object.freeze(f2e);var jN={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};jN.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Un.ALWAYS,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.REPLACE},backFunction:Un.ALWAYS,backOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.REPLACE},reference:jN.CESIUM_3D_TILE_MASK,mask:jN.CESIUM_3D_TILE_MASK}};var Ot=Object.freeze(jN);function Sx(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(Sx.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});Sx.isSupported=function(e){return e.context.stencilBuffer};function tC(e,t){let n=t?Un.EQUAL:Un.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:bt.KEEP,zFail:bt.DECREMENT_WRAP,zPass:bt.KEEP},backFunction:n,backOperation:{fail:bt.KEEP,zFail:bt.INCREMENT_WRAP,zPass:bt.KEEP},reference:Ot.CESIUM_3D_TILE_MASK,mask:Ot.CESIUM_3D_TILE_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:nc.LESS_OR_EQUAL},depthMask:!1}}function UY(e){return{stencilTest:{enabled:e,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},reference:0,mask:Ot.CLASSIFICATION_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var p2e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},reference:0,mask:Ot.CLASSIFICATION_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function b2e(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ue.fromCache(tC(o,!1)),e._rsStencilDepthPass3DTiles=Ue.fromCache(tC(o,!0)),e._rsColorPass=Ue.fromCache(UY(o,!1)),e._rsPickPass=Ue.fromCache(p2e)}function g2e(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=De.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function y2e(e,t){let n=t.context,i=e._primitive,o=kE;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=In._appendDistanceDisplayConditionToShader(i,o),o=In._modifyShaderPosition(e,o,t.scene3DOnly),o=In._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=g2e(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new De({defines:[a],sources:[o]}),d=new De({sources:[N0]}),u=e._primitive._attributeLocations,m=new ud(s,r,e.appearance);if(e._spStencil=tn.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u}),e._primitive.allowPicking){let f=De.createPickVertexShaderSource(o);f=In._appendShowToShader(i,f),f=In._updatePickColorAttribute(f);let x=m.createPickFragmentShader(!1),_=m.createPickVertexShader([a],f,!1,t.mapProjection);if(e._spPick=tn.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:_,fragmentShaderSource:x,attributeLocations:u}),s){let C=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(C)){let V=m.createPickFragmentShader(!0),L=m.createPickVertexShader([a],f,!0,t.mapProjection);C=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:L,fragmentShaderSource:V,attributeLocations:u})}e._spPick2D=C}}else e._spPick=tn.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u});o=In._appendShowToShader(i,o),c=new De({defines:[a],sources:[o]}),e._sp=tn.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:u});let p=m.createFragmentShader(!1),g=m.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=tn.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:u}),s){let f=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(f)){let x=m.createFragmentShader(!0),_=m.createVertexShader([a],o,!0,t.mapProjection);f=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:_,fragmentShaderSource:x,attributeLocations:u})}e._spColor2D=f}}function x2e(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),d=e._needs2DShader;for(o=0;o0&&(c=o[0].attributes,p=ud.hasAttributesForSphericalExtents(c),g=ud.hasAttributesForTextureCoordinatePlanes(c),m=c.color),s=0;s{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Sx.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Sx.prototype.isDestroyed=function(){return!1};Sx.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,me(this)};var nC=Sx;var C2e={u_globeMinimumAltitude:function(){return 55e3}};function Vl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Vl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Vl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Vl.prototype.isDestroyed=function(){return!1};Vl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),me(this)};Vl._supportsMaterials=function(e){return e.depthTexture};Vl.supportsMaterials=function(e){return Vl._supportsMaterials(e.frameState.context)};var Ac=Vl;var ljt=T(S(),1);function iC(){pe.throwInstantiationError()}Object.defineProperties(iC.prototype,{isConstant:{get:pe.throwInstantiationError},definitionChanged:{get:pe.throwInstantiationError}});iC.prototype.getType=pe.throwInstantiationError;iC.prototype.getValue=pe.throwInstantiationError;iC.prototype.equals=pe.throwInstantiationError;var W2e=new j;iC.getValue=function(e,t,n){let i;return l(e)||(e=j.now(W2e)),l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=Oi.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==Oi.ColorType)&&(n=Oi.fromType(Oi.ColorType)),B.clone(B.WHITE,n.uniforms.color),n)};var Qo=iC;function Cx(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}Cx.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!K.getValueOrDefault(t.show,n,!0)};Cx.prototype._setOptions=pe.throwInstantiationError;Cx.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let d=t.fillMaterialProperty,u=d instanceof Yt,m,p=t._getIsClosed(c);if(u)m=new dn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=Qo.getValue(e,d,this._material);this._material=g,m=new oo({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=dn.VERTEX_FORMAT,this._primitive=o.add(new Ac({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:m,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),K.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=m.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);u&&(m.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new In({geometryInstances:g,appearance:m,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let d=this._geometryUpdater.createOutlineGeometryInstance(e),u=K.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new In({geometryInstances:d,appearance:new dn({flat:!0,translucent:d.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(u)}}),asynchronous:!1,shadows:a}))}};Cx.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ce.clone(o.boundingSphere,e),ft.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(ce.clone(o.boundingSphere,e),ft.DONE):l(n)&&!n.ready||l(i)&&!i.ready?ft.PENDING:ft.FAILED};Cx.prototype.isDestroyed=function(){return!1};Cx.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),me(this)};var ni=Cx;var Hen=T(S(),1);var Een=T(S(),1);var E7t=T(S(),1);var g8t=T(S(),1);var Ljt=T(S(),1),P2e={NONE:0,GEODESIC:1,RHUMB:2},nn=Object.freeze(P2e);var Ijt=T(S(),1);var sie=W.EPSILON10;function v2e(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,d,u=0,m=-1;for(s=1;sW.EPSILON12);let R=F*(t*t-n*n)/(n*n),E=1+R*(4096+R*(R*(320-175*R)-768))/16384,X=R*(256+R*(R*(74-47*R)-128))/1024,A=b*b,N=X*w*(b+X*(P*(2*A-1)-X*b*(4*w*w-3)*(4*A-3)/6)/4),O=n*E*(v-N),U=Math.atan2(g*I,_-V*G),Y=Math.atan2(m*I,_*G-V);e._distance=O,e._startHeading=U,e._endHeading=Y,e._uSquared=R}var M2e=new h,OY=new h;function cie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,OY),M2e),r=h.normalize(i.cartographicToCartesian(n,OY),OY);A2e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=he.clone(t,e._start),e._end=he.clone(n,e._end),e._start.height=0,e._end.height=0,w2e(e)}function YE(e,t,n){let i=y(n,ne.default);this._ellipsoid=i,this._start=new he,this._end=new he,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&cie(this,e,t,i)}Object.defineProperties(YE.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});YE.prototype.setEndPoints=function(e,t){cie(this,e,t,this._ellipsoid)};YE.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};YE.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),d=Math.sin(6*i),u=Math.sin(8*i),m=i*i,p=i*m,g=n.u8Over256,f=n.u2Over4,x=n.u6Over64,_=n.u4Over16,C=2*p*g*o/3+i*(1-f+7*_/4-15*x/4+579*g/64-(_-15*x/4+187*g/16)*o-(5*x/4-115*g/16)*r-29*g*s/16)+(f/2-_+71*x/32-85*g/16)*a+(5*_/16-5*x/4+383*g/96)*c-m*((x-11*g/2)*a+5*g*c/2)+(29*x/96-29*g/16)*d+539*g*u/1536,V=Math.asin(Math.sin(C)*n.cosineAlpha),L=Math.atan(n.a/n.b*Math.tan(V));C=C-n.sigma;let Z=Math.cos(2*n.sigma+C),G=Math.sin(C),I=Math.cos(C),v=n.cosineU*I,P=n.sineU*G,F=Math.atan2(G*n.sineHeading,v-P*n.cosineHeading)-aie(n.f,n.sineAlpha,n.cosineSquaredAlpha,C,G,I,Z);return l(t)?(t.longitude=this._start.longitude+F,t.latitude=L,t.height=0,t):new he(this._start.longitude+F,L,0)};var Rp=YE;var Hjt=T(S(),1);function HY(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,d=n,u=Math.sin(2*d),m=Math.sin(4*d),p=Math.sin(6*d),g=Math.sin(8*d),f=Math.sin(10*d),x=Math.sin(12*d);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*d-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*u+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*m-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*f+1001*c/8388608*x)}function N2e(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,d=c*c,u=d*c,m=u*c,p=m*c,g=p*c,f=Math.sin(2*i),x=Math.cos(2*i),_=Math.sin(4*i),C=Math.cos(4*i),V=Math.sin(6*i),L=Math.cos(6*i),Z=Math.sin(8*i),G=Math.cos(8*i),I=Math.sin(10*i),v=Math.cos(10*i),P=Math.sin(12*i);return i+i*c/4+7*i*d/64+15*i*u/256+579*i*m/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*d/16+45*i*u/256-i*(32*o-561)*m/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*x+(21*i*u/256+483*i*m/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*C+(151*i*m/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*L+(1097*i*p/65536+42783*i*g/1048576)*G+8011*i*g/1048576*v+(3*c/8+3*d/16+213*u/2048-3*o*u/64+255*m/4096-33*o*m/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*f+(21*d/256+21*u/256+533*m/8192-21*o*m/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*_+(151*u/6144+151*m/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*V+(1097*m/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*Z+(8011*p/2621440+8011*g/1048576)*I+293393*g/251658240*P}function oC(e,t){if(e===0)return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(W.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function k2e(e,t,n,i,o){let r=oC(e._ellipticity,n),s=oC(e._ellipticity,o);return Math.atan2(W.negativePiToPi(i-t),s-r)}function U2e(e,t,n,i,o,r,s){let a=e._heading,c=r-i,d=0;if(W.equalsEpsilon(Math.abs(a),W.PI_OVER_TWO,W.EPSILON8))if(t===n)d=t*Math.cos(o)*W.negativePiToPi(c);else{let u=Math.sin(o);d=t*Math.cos(o)*W.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*u*u)}else{let u=HY(e._ellipticity,t,o);d=(HY(e._ellipticity,t,s)-u)/Math.cos(a)}return Math.abs(d)}var D2e=new h,YY=new h;function lie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,YY),D2e),r=h.normalize(i.cartographicToCartesian(n,YY),YY),s=i.maximumRadius,a=i.minimumRadius,c=s*s,d=a*a;e._ellipticitySquared=(c-d)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=he.clone(t,e._start),e._start.height=0,e._end=he.clone(n,e._end),e._end.height=0,e._heading=k2e(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=U2e(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function die(e,t,n,i,o,r){if(n===0)return he.clone(e,r);let s=o*o,a,c,d;if(Math.abs(W.PI_OVER_TWO-Math.abs(t))>W.EPSILON8){let u=HY(o,i,e.latitude),m=n*Math.cos(t),p=u+m;if(c=N2e(p,o,i),Math.abs(t)0?a=W.negativePiToPi(e.longitude+d):a=W.negativePiToPi(e.longitude-d)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new he(a,c,0)}function Zp(e,t,n){let i=y(n,ne.default);this._ellipsoid=i,this._start=new he,this._end=new he,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&lie(this,e,t,i)}Object.defineProperties(Zp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});Zp.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ne.default),s=r.maximumRadius,a=r.minimumRadius,c=s*s,d=a*a,u=Math.sqrt((c-d)/c);t=W.negativePiToPi(t);let m=die(e,t,n,r.maximumRadius,u);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new Zp(e,m,r):(o.setEndPoints(e,m),o)};Zp.prototype.setEndPoints=function(e,t){lie(this,e,t,this._ellipsoid)};Zp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};Zp.prototype.interpolateUsingSurfaceDistance=function(e,t){return die(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};Zp.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=W.negativePiToPi(e),W.equalsEpsilon(Math.abs(e),Math.PI,W.EPSILON14)&&(e=W.sign(r.longitude)*Math.PI),l(t)||(t=new he),Math.abs(W.PI_OVER_TWO-o)<=W.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(W.equalsEpsilon(Math.abs(W.PI_OVER_TWO-o),W.PI_OVER_TWO,W.EPSILON8))return W.equalsEpsilon(e,r.longitude,W.EPSILON12)?void 0:(t.longitude=e,t.latitude=W.PI_OVER_TWO*W.sign(W.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(W.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),d=(1+a)/(1-a),u=r.latitude,m;do{m=u;let p=n*Math.sin(m),g=(1+p)/(1-p);u=2*Math.atan(c*Math.pow(g/d,n/2))-W.PI_OVER_TWO}while(!W.equalsEpsilon(u,m,W.EPSILON12));return t.longitude=e,t.latitude=u,t.height=0,t};Zp.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(W.equalsEpsilon(Math.abs(i),W.PI_OVER_TWO,W.EPSILON8))return;let r=oC(n,o.latitude),s=oC(n,e),a=Math.tan(i)*(s-r),c=W.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new he(c,e,0)};var Ea=Zp;var eH=[Ri,Zi],B2e=eH.length,Iie=Math.cos(W.toRadians(30)),uie=Math.cos(W.toRadians(150)),Xie=0,Wie=1e3;function U0(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,nn.GEODESIC),this._ellipsoid=ne.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(U0.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ne.packedLength+1+1}}});U0.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;iIie||rW.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,xie),d=c.cartesianToCartographic(s,yie)),d.height=0;let u=e.project(d,o);return o=h.subtract(u,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var lPe=new h,_ie=new h;function Tie(e,t,n,i,o,r){let s=h.subtract(t,e,lPe);h.normalize(s,s);let a=n-Xie,c=h.multiplyByScalar(s,a,_ie);h.add(e,c,o);let d=i-Wie;c=h.multiplyByScalar(s,d,_ie),h.add(t,c,r)}var dPe=new h;function t5(e,t){let n=ln.getPointDistance(n5,e),i=ln.getPointDistance(n5,t),o=dPe;W.equalsEpsilon(n,0,W.EPSILON2)?(o=Gp(t,e,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(e,o,e)):W.equalsEpsilon(i,0,W.EPSILON2)&&(o=Gp(e,t,o),h.multiplyByScalar(o,W.EPSILON2,o),h.add(t,o,t))}function uPe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(W.equalsEpsilon(n,W.PI,W.EPSILON11)){let o=W.sign(t.longitude);return e.longitude=o*(n-W.EPSILON11),1}else if(W.equalsEpsilon(i,W.PI,W.EPSILON11)){let o=W.sign(e.longitude);return t.longitude=o*(i-W.EPSILON11),2}return 0}var vie=new he,wie=new he,Sie=new h,QY=new h,Cie=new h,Vie=new h,mPe=new h,Lie=new h,hPe=[vie,wie],fPe=new ae,pPe=new h,bPe=new h,gPe=new h,yPe=new h,xPe=new h,_Pe=new h,jY=new h,qY=new h,TPe=new h,SPe=new h,CPe=new h,Rie=new h,VPe=new h,LPe=new h,RPe=new On,ZPe=new On,Zie=new h,GPe=new h,Gie=new h,EPe=[new ce,new ce],Fie=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Eie=Fie.length;function IPe(e,t,n,i,o,r,s){let a,c,d=t._ellipsoid,u=n.length/3-1,m=u*8,p=m*4,g=u*36,f=m>65535?new Uint32Array(g):new Uint16Array(g),x=new Float64Array(m*3),_=new Float32Array(p),C=new Float32Array(p),V=new Float32Array(p),L=new Float32Array(p),Z=new Float32Array(p),G,I,v,P;s&&(G=new Float32Array(p),I=new Float32Array(p),v=new Float32Array(p),P=new Float32Array(m*2));let w=r.length/2,F=0,b=vie;b.height=0;let R=wie;R.height=0;let E=Sie,X=QY;if(s)for(c=0,a=1;aIie?(Lt=HE(t,b,Oe,at,jY),Ie=HE(t,R,q,Mt,qY)):Qn===1?(Ie=HE(t,R,q,Mt,qY),Lt.x=0,Lt.y=W.sign(b.longitude-Math.abs(R.longitude)),Lt.z=0):(Lt=HE(t,b,Oe,at,jY),Ie.x=0,Ie.y=W.sign(b.longitude-R.longitude),Ie.z=0)}let je=h.distance(ke,z),et=On.fromCartesian(Le,RPe),He=h.subtract(te,Le,TPe),Dt=h.normalize(He,Rie),Ce=h.subtract(ke,Le,SPe);Ce=h.normalize(Ce,Ce);let Ve=h.cross(Dt,Ce,Rie);Ve=h.normalize(Ve,Ve);let ct=h.cross(Ce,Oe,VPe);ct=h.normalize(ct,ct);let Di=h.subtract(z,te,CPe);Di=h.normalize(Di,Di);let mt=h.cross(q,Di,LPe);mt=h.normalize(mt,mt);let _o=je/N,fr=ee/N,Zc=0,Zr,ss,Ne,ut=0,Je=0;if(s){Zc=h.distance(at,Mt),Zr=On.fromCartesian(at,ZPe),ss=h.subtract(Mt,at,Zie),Ne=h.normalize(ss,GPe);let Qn=Ne.x;Ne.x=Ne.y,Ne.y=-Qn,ut=Zc/F,Je=fe/F}for(O=0;O<8;O++){let Qn=H+O*4,xs=Y+O*2,Gr=Qn+3,hl=O<4?1:-1,To=O===2||O===3||O===6||O===7?1:-1;h.pack(et.high,_,Qn),_[Gr]=He.x,h.pack(et.low,C,Qn),C[Gr]=He.y,h.pack(ct,V,Qn),V[Gr]=He.z,h.pack(mt,L,Qn),L[Gr]=_o*hl,h.pack(Ve,Z,Qn);let Hr=fr*To;Hr===0&&To<0&&(Hr=9),Z[Gr]=Hr,s&&(G[Qn]=Zr.high.x,G[Qn+1]=Zr.high.y,G[Qn+2]=Zr.low.x,G[Qn+3]=Zr.low.y,v[Qn]=-Lt.y,v[Qn+1]=Lt.x,v[Qn+2]=Ie.y,v[Qn+3]=-Ie.x,I[Qn]=ss.x,I[Qn+1]=ss.y,I[Qn+2]=Ne.x,I[Qn+3]=Ne.y,P[xs]=ut*hl,Hr=Je*To,Hr===0&&To<0&&(Hr=9),P[xs+1]=Hr)}let $e=gPe,pt=yPe,It=pPe,yn=bPe,po=ae.fromCartographicArray(hPe,fPe),rr=li.getMinimumMaximumHeights(po,d),Oa=rr.minimumTerrainHeight,Ya=rr.maximumTerrainHeight;_e+=Math.abs(Oa),_e+=Math.abs(Ya),Tie(Le,ke,Oa,Ya,$e,It),Tie(te,z,Oa,Ya,pt,yn);let as=h.multiplyByScalar(Ve,W.EPSILON5,Gie);h.add($e,as,$e),h.add(pt,as,pt),h.add(It,as,It),h.add(yn,as,yn),t5($e,pt),t5(It,yn),h.pack($e,x,k),h.pack(pt,x,k+3),h.pack(yn,x,k+6),h.pack(It,x,k+9),as=h.multiplyByScalar(Ve,-2*W.EPSILON5,Gie),h.add($e,as,$e),h.add(pt,as,pt),h.add(It,as,It),h.add(yn,as,yn),t5($e,pt),t5(It,yn),h.pack($e,x,k+12),h.pack(pt,x,k+15),h.pack(yn,x,k+18),h.pack(It,x,k+21),U+=2,c+=3,Y+=16,k+=24,H+=32,ee+=je,fe+=Zc}c=0;let le=0;for(a=0;a halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var T8t=T(S(),1),KE=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var C8t=T(S(),1),JE=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var L8t=T(S(),1),QE=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var M8t=T(S(),1);var Z8t=T(S(),1),jE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var E8t=T(S(),1),md=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var tH=`${md} +${jE}`,XPe=xx;zt.isInternetExplorer()||(tH=`#define CLIP_POLYLINE +${tH}`);function Lx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Lx.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,tH),this._fragmentShaderSource=y(e.fragmentShaderSource,XPe),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Lx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Lx.VERTEX_FORMAT=We.POSITION_ONLY;Lx.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;Lx.prototype.isTranslucent=eo.prototype.isTranslucent;Lx.prototype.getRenderState=eo.prototype.getRenderState;var Jr=Lx;var $8t=T(S(),1);var k8t=T(S(),1),qE=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var D8t=T(S(),1),Rx=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var nH=`${md} +${qE}`,WPe=Rx;zt.isInternetExplorer()||(nH=`#define CLIP_POLYLINE +${nH}`);function Zx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Zx.VERTEX_FORMAT;this.material=l(e.material)?e.material:Oi.fromType(Oi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,nH),this._fragmentShaderSource=y(e.fragmentShaderSource,WPe),this._renderState=eo.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Zx.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Zx.VERTEX_FORMAT=We.POSITION_AND_ST;Zx.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;Zx.prototype.isTranslucent=eo.prototype.isTranslucent;Zx.prototype.getRenderState=eo.prototype.getRenderState;var sa=Zx;function Ep(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new sa),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=Aie(!1),this._renderState3DTiles=Aie(!0),this._renderStateMorph=Ue.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Ep.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Ep.initializeTerrainHeights=function(){return li.initialize()};function PPe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(QE);s=In._appendShowToShader(o,s),s=In._appendDistanceDisplayConditionToShader(o,s),s=In._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(JE);a=In._appendShowToShader(o,a),a=In._appendDistanceDisplayConditionToShader(o,a),a=In._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(zE),d=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],u="",m="";l(n.material)?(m=l(n.material)?n.material.shaderSource:"",m.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&d.push("ANGLE_VARYING"),m.search(/in\s+float\s+v_width;/g)!==-1&&d.push("WIDTH_VARYING")):u="PER_INSTANCE_COLOR",d.push(u);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",u]:[u],g=new De({defines:d,sources:[s]}),f=new De({defines:p,sources:[m,c]});e._sp=tn.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:f,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(x)){let C=new De({defines:d.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:C,fragmentShaderSource:f,attributeLocations:r})}e._sp2D=x;let _=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(_)){let C=new De({defines:d.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(KE);let V=new De({defines:p,sources:[m,c]});_=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:C,fragmentShaderSource:V,attributeLocations:r})}e._spMorph=_}function Aie(e){return Ue.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},backFunction:Un.EQUAL,backOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},reference:Ot.CESIUM_3D_TILE_MASK,mask:Ot.CESIUM_3D_TILE_MASK}})}function vPe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let d=t instanceof Jr?{}:n._uniforms,u=s._batchTable.getUniformMapCallback()(d);for(let m=0;m{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Ep.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Ep.isSupported=function(e){return e.frameState.context.depthTexture};Ep.prototype.isDestroyed=function(){return!1};Ep.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,me(this)};var Rm=Ep;var $7t=T(S(),1);var H7t=T(S(),1);var N7t=T(S(),1);var FPe=new D(1,1),APe=!1,MPe=B.WHITE;function rC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new be,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(rC.prototype,{isConstant:{get:function(){return K.isConstant(this._image)&&K.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:ue("image"),repeat:ue("repeat"),color:ue("color"),transparent:ue("transparent")});rC.prototype.getType=function(e){return"Image"};var NPe=new j;rC.prototype.getValue=function(e,t){return l(e)||(e=j.now(NPe)),l(t)||(t={}),t.image=K.getValueOrUndefined(this._image,e),t.repeat=K.getValueOrClonedDefault(this._repeat,e,FPe,t.repeat),t.color=K.getValueOrClonedDefault(this._color,e,MPe,t.color),K.getValueOrDefault(this._transparent,e,APe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};rC.prototype.equals=function(e){return this===e||e instanceof rC&&K.equals(this._image,e._image)&&K.equals(this._repeat,e._repeat)&&K.equals(this._color,e._color)&&K.equals(this._transparent,e._transparent)};var D0=rC;function kPe(e){if(e instanceof B)return new Yt(e);if(typeof e=="string"||e instanceof Ee||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new D0;return t.image=e,t}}function UPe(e,t){return ue(e,t,kPe)}var Io=UPe;function $E(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties($E.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),dimensions:ue("dimensions"),heightReference:ue("heightReference"),fill:ue("fill"),material:Io("material"),outline:ue("outline"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),shadows:ue("shadows"),distanceDisplayCondition:ue("distanceDisplayCondition")});$E.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new $E(this)};$E.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Gx=$E;var y6t=T(S(),1);var t6t=T(S(),1),DPe={FIXED:0,INERTIAL:1},Ai=Object.freeze(DPe);var l6t=T(S(),1);function sC(){pe.throwInstantiationError()}Object.defineProperties(sC.prototype,{isConstant:{get:pe.throwInstantiationError},definitionChanged:{get:pe.throwInstantiationError},referenceFrame:{get:pe.throwInstantiationError}});sC.prototype.getValue=pe.throwInstantiationError;sC.prototype.getValueInReferenceFrame=pe.throwInstantiationError;sC.prototype.equals=pe.throwInstantiationError;var Nie=new $;sC.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=Ft.computeIcrfToCentralBodyFixedMatrix(e,Nie);if(n===Ai.INERTIAL)return $.multiplyByVector(r,t,o);if(n===Ai.FIXED)return $.multiplyByVector($.transpose(r,Nie),t,o)};var Zm=sC;function Ex(e,t){this._definitionChanged=new be,this._value=h.clone(e),this._referenceFrame=y(t,Ai.FIXED)}Object.defineProperties(Ex.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===Ai.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var BPe=new j;Ex.prototype.getValue=function(e,t){return l(e)||(e=j.now(BPe)),this.getValueInReferenceFrame(e,Ai.FIXED,t)};Ex.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};Ex.prototype.getValueInReferenceFrame=function(e,t,n){return Zm.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};Ex.prototype.equals=function(e){return this===e||e instanceof Ex&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Nc=Ex;var L6t=T(S(),1);function eI(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(eI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),positions:ue("positions"),width:ue("width"),height:ue("height"),heightReference:ue("heightReference"),extrudedHeight:ue("extrudedHeight"),extrudedHeightReference:ue("extrudedHeightReference"),cornerType:ue("cornerType"),granularity:ue("granularity"),fill:ue("fill"),material:Io("material"),outline:ue("outline"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),shadows:ue("shadows"),distanceDisplayCondition:ue("distanceDisplayCondition"),classificationType:ue("classificationType"),zIndex:ue("zIndex")});eI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new eI(this)};eI.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Ix=eI;var G6t=T(S(),1);function OPe(e){return e}function YPe(e,t){return ue(e,t,OPe)}var Ll=YPe;var w6t=T(S(),1);function tI(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(tI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),length:ue("length"),topRadius:ue("topRadius"),bottomRadius:ue("bottomRadius"),heightReference:ue("heightReference"),fill:ue("fill"),material:Io("material"),outline:ue("outline"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),numberOfVerticalLines:ue("numberOfVerticalLines"),slices:ue("slices"),shadows:ue("shadows"),distanceDisplayCondition:ue("distanceDisplayCondition")});tI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new tI(this)};tI.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Xx=tI;var D6t=T(S(),1);function nI(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(nI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),semiMajorAxis:ue("semiMajorAxis"),semiMinorAxis:ue("semiMinorAxis"),height:ue("height"),heightReference:ue("heightReference"),extrudedHeight:ue("extrudedHeight"),extrudedHeightReference:ue("extrudedHeightReference"),rotation:ue("rotation"),stRotation:ue("stRotation"),granularity:ue("granularity"),fill:ue("fill"),material:Io("material"),outline:ue("outline"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),numberOfVerticalLines:ue("numberOfVerticalLines"),shadows:ue("shadows"),distanceDisplayCondition:ue("distanceDisplayCondition"),classificationType:ue("classificationType"),zIndex:ue("zIndex")});nI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new nI(this)};nI.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Wx=nI;var J6t=T(S(),1);function iI(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(iI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),radii:ue("radii"),innerRadii:ue("innerRadii"),minimumClock:ue("minimumClock"),maximumClock:ue("maximumClock"),minimumCone:ue("minimumCone"),maximumCone:ue("maximumCone"),heightReference:ue("heightReference"),fill:ue("fill"),material:Io("material"),outline:ue("outline"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),stackPartitions:ue("stackPartitions"),slicePartitions:ue("slicePartitions"),subdivisions:ue("subdivisions"),shadows:ue("shadows"),distanceDisplayCondition:ue("distanceDisplayCondition")});iI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new iI(this)};iI.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Px=iI;var tqt=T(S(),1);function oI(e){this._definitionChanged=new be,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(oI.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:ue("show"),text:ue("text"),font:ue("font"),style:ue("style"),scale:ue("scale"),showBackground:ue("showBackground"),backgroundColor:ue("backgroundColor"),backgroundPadding:ue("backgroundPadding"),pixelOffset:ue("pixelOffset"),eyeOffset:ue("eyeOffset"),horizontalOrigin:ue("horizontalOrigin"),verticalOrigin:ue("verticalOrigin"),heightReference:ue("heightReference"),fillColor:ue("fillColor"),outlineColor:ue("outlineColor"),outlineWidth:ue("outlineWidth"),translucencyByDistance:ue("translucencyByDistance"),pixelOffsetScaleByDistance:ue("pixelOffsetScaleByDistance"),scaleByDistance:ue("scaleByDistance"),distanceDisplayCondition:ue("distanceDisplayCondition"),disableDepthTestDistance:ue("disableDepthTestDistance")});oI.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new oI(this)};oI.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var Gm=oI;var Pqt=T(S(),1);var bqt=T(S(),1);var aqt=T(S(),1);var HPe=new h(1,1,1),zPe=h.ZERO,KPe=we.IDENTITY;function kie(e,t,n){this.translation=h.clone(y(e,zPe)),this.rotation=we.clone(y(t,KPe)),this.scale=h.clone(y(n,HPe))}kie.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&we.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var B0=kie;var iH=new B0;function rI(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new be,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(rI.prototype,{isConstant:{get:function(){return K.isConstant(this._translation)&&K.isConstant(this._rotation)&&K.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:ue("translation"),rotation:ue("rotation"),scale:ue("scale")});var JPe=new j;rI.prototype.getValue=function(e,t){return l(e)||(e=j.now(JPe)),l(t)||(t=new B0),t.translation=K.getValueOrClonedDefault(this._translation,e,iH.translation,t.translation),t.rotation=K.getValueOrClonedDefault(this._rotation,e,iH.rotation,t.rotation),t.scale=K.getValueOrClonedDefault(this._scale,e,iH.scale,t.scale),t};rI.prototype.equals=function(e){return this===e||e instanceof rI&&K.equals(this._translation,e._translation)&&K.equals(this._rotation,e._rotation)&&K.equals(this._scale,e._scale)};var vx=rI;var Lqt=T(S(),1);function Ip(e,t){this._propertyNames=[],this._definitionChanged=new be,l(e)&&this.merge(e,t)}Object.defineProperties(Ip.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t{this._terrainHeight=s.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(i,r,this._heightReference)};var pve=new j;cC.prototype.getValue=function(e,t){l(e)||(e=j.now(pve));let n=K.getValueOrDefault(this._heightReference,e,Qe.NONE),i=K.getValueOrDefault(this._extrudedHeightReference,e,Qe.NONE);if(n===Qe.NONE&&!JS(i))return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,Yie);if(!l(r)||h.equals(r,h.ZERO)||!l(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,W.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};cC.prototype.isDestroyed=function(){return!1};cC.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),me(this)};var Mx=cC;function bve(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Xm(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Mx(this._scene,s,r)}}var vp=bve;var Hie=h.ZERO,zie=new h,gve=new h,Kie=new B;function yve(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function hd(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new yve(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(hd.prototype=Object.create(ii.prototype),hd.prototype.constructor=hd);Object.defineProperties(hd.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});hd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new xn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Nn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Yt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Kie)),l(a)||(a=B.WHITE),s.color=Kt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Qi.fromCartesian3(K.getValueOrDefault(this._terrainOffsetProperty,e,Hie,zie))),new Gt({id:t,geometry:Ra.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:s})};hd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=K.getValueOrDefault(this._outlineColorProperty,e,B.BLACK,Kie),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new xn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Kt.fromColor(i),distanceDisplayCondition:Nn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(K.getValueOrDefault(this._terrainOffsetProperty,e,Hie,zie))),new Gt({id:t,geometry:Lm.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:r})};hd.prototype._computeCenter=function(e,t){return K.getValueOrUndefined(this._entity.position,e,t)};hd.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};hd.prototype._isDynamic=function(e,t){return!e.position.isConstant||!K.isConstant(e.orientation)||!t.dimensions.isConstant||!K.isConstant(t.outlineWidth)};hd.prototype._setStaticOptions=function(e,t){let n=K.getValueOrDefault(t.heightReference,Be.MINIMUM_VALUE,Qe.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Yt?dn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(Be.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==Qe.NONE?cn.ALL:void 0};hd.prototype._onEntityPropertyChanged=vp;hd.DynamicGeometryUpdater=lC;function lC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(lC.prototype=Object.create(ni.prototype),lC.prototype.constructor=lC);lC.prototype._isHidden=function(e,t,n){let i=K.getValueOrUndefined(e.position,n,gve),o=this._options.dimensions;return!l(i)||!l(o)||ni.prototype._isHidden.call(this,e,t,n)};lC.prototype._setOptions=function(e,t,n){let i=K.getValueOrDefault(t.heightReference,n,Qe.NONE),o=this._options;o.dimensions=K.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==Qe.NONE?cn.ALL:void 0};var gI=hd;var Ytn=T(S(),1);function Nx(e,t,n){this._callback=void 0,this._isConstant=void 0,this._referenceFrame=y(n,Ai.FIXED),this._definitionChanged=new be,this.setCallback(e,t)}Object.defineProperties(Nx.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var xve=new j;Nx.prototype.getValue=function(e,t){return l(e)||(e=j.now(xve)),this.getValueInReferenceFrame(e,Ai.FIXED,t)};Nx.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};Nx.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._callback(e,n);return Zm.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Nx.prototype.equals=function(e){return this===e||e instanceof Nx&&this._callback===e._callback&&this._isConstant===e._isConstant&&this._referenceFrame===e._referenceFrame};var yI=Nx;var dYn=T(S(),1);var $On=T(S(),1);var Qtn=T(S(),1),Qie=T(Jie(),1);var _ve=0,cH={};function ef(e,t){let n,i=e;l(cH[i])?n=cH[i]:(n=_ve++,cH[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(ef.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!l(this._element)){let e=Qie.default.sanitize(this._html),t=document.createElement("div");t.className="cesium-credit-wrapper",t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i{u[m]=void 0});for(let m=r;m0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},specularEnvironmentCubeMap:{get:function(){return this._specularEnvironmentCubeMap}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready||this._useDefaultSpecularMaps}}});function Tve(e,t){if(Wm.isSupported(t)){if(e._specularEnvironmentCubeMap=e._specularEnvironmentCubeMap&&e._specularEnvironmentCubeMap.destroy(),l(e._specularEnvironmentMaps)){let n=new Wm(e._specularEnvironmentMaps);e._specularEnvironmentCubeMap=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}xI.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;D.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=D.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentCubeMapDirty&&(Tve(this,t),this._specularEnvironmentCubeMapDirty=!1),l(this._specularEnvironmentCubeMap)&&(this._specularEnvironmentCubeMap.update(e),this._specularEnvironmentCubeMap.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};xI.prototype.isDestroyed=function(){return!1};xI.prototype.destroy=function(){return this._specularEnvironmentCubeMap=this._specularEnvironmentCubeMap&&this._specularEnvironmentCubeMap.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),me(this)};var Ux=xI;var Znn=T(S(),1),uH=T(id(),1);var xnn=T(S(),1);var dH,jie="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiZjBmMDE4Ny05M2JlLTRlMzgtYjIxYi05YmJjM2QwMzJkYWMiLCJpZCI6MjU5LCJpYXQiOjE3MzA0NjY3MDl9.t-7gCGPUe-oGCyCoeXPtYmlMVdgqUQD9mn-Da23yUoI",i5={};i5.defaultAccessToken=jie;i5.defaultServer=new Ee({url:"https://api.cesium.com/"});i5.getDefaultTokenCredit=function(e){if(e===jie){if(!l(dH)){let t=` This application is using Cesium's default ion access token. Please assign Cesium.Ion.defaultAccessToken with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at
      https://cesium.com.`;dH=new Et(t,!0)}return dH}};var Pm=i5;function Uc(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:Sve};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new de("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");Ee.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new uH.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(Uc.prototype=Object.create(Ee.prototype),Uc.prototype.constructor=Uc);Uc.fromAssetId=function(e,t){let n=Uc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Uc(i,n)})};Object.defineProperties(Uc.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Uc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Uc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(Et.getIonCredit),i=Pm.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(Et.clone(i)),n};Uc.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new Uc(t._ionEndpoint,t._ionEndpointResource)),e=Ee.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Uc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return Ee.prototype.fetchImage.call(this,e)};Uc.prototype._makeRequest=function(e){return this._isExternal||new uH.default(this.url).authority()!==this._ionEndpointDomain?Ee.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),Ee.prototype._makeRequest.call(this,e))};Uc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Pm.defaultServer),i=y(t.accessToken,Pm.defaultAccessToken);n=Ee.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function Sve(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var fd=Uc;var Inn=T(S(),1);function tf(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(tf.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(et.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});tf.prototype.get=function(e){return this._array[e]};tf.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};tf.prototype.peek=function(){return this._array[this._length-1]};tf.prototype.push=function(e){let t=this.length++;this._array[t]=e};tf.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};tf.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};tf.prototype.resize=function(e){this.length=e};tf.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Dc=tf;var vnn=T(S(),1);var wp={X:0,Y:1,Z:2};wp.Y_UP_TO_Z_UP=M.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));wp.Z_UP_TO_Y_UP=M.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));wp.X_UP_TO_Z_UP=M.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));wp.Z_UP_TO_X_UP=M.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));wp.X_UP_TO_Y_UP=M.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));wp.Y_UP_TO_X_UP=M.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));wp.fromName=function(e){return wp[e]};var Xo=Object.freeze(wp);var fBn=T(S(),1);var Ann=T(S(),1);function qie(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(qie.prototype,{metadata:{get:function(){return this._metadata}}});var Dx=qie;var UNn=T(S(),1);var $nn=T(S(),1);var Ynn=T(S(),1);var Unn=T(S(),1);function O0(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),O0.decode(e)}O0.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};O0.decodeWithFromCharCode=function(e){let t="",n=Cve(e),i=n.length;for(let o=0;o>10)+55296,(r&1023)+56320))}return t};function _I(e,t,n){return t<=e&&e<=n}function Cve(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c0){let o=Math.min(t,Bt.maximumTextureSize),r=Math.ceil(t/Bt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,d=c*.5;n=new D(o,r),i=new se(s,a,c,d)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(rc.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});rc.DEFAULT_COLOR_VALUE=B.WHITE;rc.DEFAULT_SHOW_VALUE=!0;function $ie(e){let t=e._textureDimensions;return t.x*t.y*4}function eoe(e){if(!l(e._batchValues)){let t=$ie(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function toe(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}rc.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=toe(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=eoe(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};rc.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n0){let i=e._pickIds,o=$ie(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c0;){if(t=u.pop(),c[t]===d)continue;c[t]=d;let m=n(e,t);if(l(m))return m;let p=o[t],g=s[t];for(let f=0;f0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${Jve(i)}${s}`}};function ioe(e,t){return e=De.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function Qve(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let d=o;d0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};uo.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=De.replaceMain(e,"tile_main"),Bt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function jve(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Gl.HIGHLIGHT)return 0;if(n===Gl.REPLACE)return 1;if(n===Gl.MIX)return W.clamp(i,W.EPSILON4,1)}uo.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return Tt(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return jve(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};uo.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Y0={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};uo.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=qve(this);for(let d=t;d>>Ot.SKIP_LOD_BIT_SHIFT}function swe(e){let t=Ye(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=Ot.setCesium3DTileBit(),t.stencilMask=Ot.CESIUM_3D_TILE_MASK,Ue.fromCache(t)}function awe(e){let t=Ye(e,!0);return t.stencilTest=Ot.setCesium3DTileBit(),t.stencilMask=Ot.CESIUM_3D_TILE_MASK,Ue.fromCache(t)}uo.prototype.update=function(e,t){this._batchTexture.update(e,t)};uo.prototype.isDestroyed=function(){return!1};uo.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),me(this)};var Ap=uo;var Trn=T(S(),1);var don=T(S(),1);function cwe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var nf=cwe;var crn=T(S(),1);var mon=T(S(),1),dC=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;var bon=T(S(),1);function _u(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(_u.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new B),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});_u.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};_u.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};_u.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};_u.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let d=e.tileset.metadata;if(l(d)){if(d.hasPropertyBySemantic(n))return d.getPropertyBySemantic(n);if(d.hasProperty(n))return d.getProperty(n)}};_u.prototype.getPropertyInherited=function(e){return _u.getPropertyInherited(this._content,this._batchId,e)};_u.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};_u.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};_u.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};_u.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ns=_u;var Won=T(S(),1);var xon=T(S(),1),fH=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},pH=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},El=class e{static get version(){return"1.3.9"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.lengthr.right_a&&m.right_a?i>m.prec:i<=m.prec;for(;o.length>2&&u(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+d),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});El.max_unop_len=El.getMaxKeyLen(El.unary_ops);El.max_binop_len=El.getMaxKeyLen(El.binary_ops);var H0=e=>new El(e).parse(),dwe=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(El).filter(e=>!dwe.includes(e)&&H0[e]===void 0).forEach(e=>{H0[e]=El[e]});H0.Jsep=El;var uwe="ConditionalExpression",mwe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:uwe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};H0.plugins.register(mwe);var Ton=T(S(),1),hwe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},gt=Object.freeze(hwe);function wm(e,t){this._expression=e,e=Rwe(e,t),e=Gwe(Zwe(e)),H0.addBinaryOp("=~",0),H0.addBinaryOp("!~",0);let n;try{n=H0(e)}catch(i){throw new de(i)}this._runtimeAst=Si(this,n)}Object.defineProperties(wm.prototype,{expression:{get:function(){return this._expression}}});var vn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new D],cartesian3Array:[new h],cartesian4Array:[new se],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new D),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new se),this.cartesian4Array[this.cartesian4Index++]}};wm.prototype.evaluate=function(e,t){vn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof B&&n instanceof se?B.fromCartesian4(n,t):n instanceof D||n instanceof h||n instanceof se?n.clone(t):n};wm.prototype.evaluateColor=function(e,t){vn.reset();let n=this._runtimeAst.evaluate(e);return B.fromCartesian4(n,t)};wm.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};wm.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};wm.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var fwe=["!","-","+"],soe=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],s5=/\${(.*?)}/g,pwe=/\\/g,bwe="@#%",gwe=/@#%/g,a5=new B,c5={abs:ks(Math.abs),sqrt:ks(Math.sqrt),cos:ks(Math.cos),sin:ks(Math.sin),tan:ks(Math.tan),acos:ks(Math.acos),asin:ks(Math.asin),atan:ks(Math.atan),radians:ks(W.toRadians),degrees:ks(W.toDegrees),sign:ks(W.sign),floor:ks(Math.floor),ceil:ks(Math.ceil),round:ks(Math.round),exp:ks(Math.exp),exp2:ks(xwe),log:ks(Math.log),log2:ks(_we),fract:ks(ywe),length:Twe,normalize:Swe},l5={atan2:o5(Math.atan2,!1),pow:o5(Math.pow,!1),min:o5(Math.min,!0),max:o5(Math.max,!0),distance:Cwe,dot:Vwe,cross:Lwe},yH={clamp:aoe(W.clamp,!0),mix:aoe(W.lerp,!0)};function ywe(e){return e-Math.floor(e)}function xwe(e){return Math.pow(2,e)}function _we(e){return W.log2(e)}function ks(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof D)return D.fromElements(e(n.x),e(n.y),vn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),vn.getCartesian3());if(n instanceof se)return se.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),vn.getCartesian4());throw new de(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function o5(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof D)return D.fromElements(e(i.x,o),e(i.y,o),vn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),vn.getCartesian3());if(i instanceof se)return se.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),vn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof D&&o instanceof D)return D.fromElements(e(i.x,o.x),e(i.y,o.y),vn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),vn.getCartesian3());if(i instanceof se&&o instanceof se)return se.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),vn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function aoe(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof D&&o instanceof D)return D.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),vn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),vn.getCartesian3());if(i instanceof se&&o instanceof se)return se.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),vn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof D&&o instanceof D&&r instanceof D)return D.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),vn.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),vn.getCartesian3());if(i instanceof se&&o instanceof se&&r instanceof se)return se.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),vn.getCartesian4());throw new de(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function Twe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof D)return D.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof se)return se.magnitude(t);throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function Swe(e,t){if(typeof t=="number")return 1;if(t instanceof D)return D.normalize(t,vn.getCartesian2());if(t instanceof h)return h.normalize(t,vn.getCartesian3());if(t instanceof se)return se.normalize(t,vn.getCartesian4());throw new de(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function Cwe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof D&&n instanceof D)return D.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof se&&n instanceof se)return se.distance(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function Vwe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof D&&n instanceof D)return D.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof se&&n instanceof se)return se.dot(t,n);throw new de(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function Lwe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,vn.getCartesian3());throw new de(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function Ct(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,Mwe(this)}function Rwe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function Zwe(e){return e.replace(pwe,bwe)}function gH(e){return e.replace(gwe,"\\")}function Gwe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o=0&&r=0?new Ct(gt.VARIABLE_IN_STRING,e.value):new Ct(gt.LITERAL_STRING,gH(e.value))}function Iwe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new de(`${o} is not a function.`);return i===0?o==="test"?new Ct(gt.LITERAL_BOOLEAN,!1):new Ct(gt.LITERAL_NULL,null):(s=Si(e,c),a=Si(e,n[0]),new Ct(gt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=Si(e,c),new Ct(gt.FUNCTION_CALL,o,r);throw new de(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new Ct(gt.LITERAL_COLOR,o);if(r=Si(e,n[0]),l(n[1])){let c=Si(e,n[1]);return new Ct(gt.LITERAL_COLOR,o,[r,c])}return new Ct(gt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new de(`${o} requires three arguments.`);return r=[Si(e,n[0]),Si(e,n[1]),Si(e,n[2])],new Ct(gt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new de(`${o} requires four arguments.`);return r=[Si(e,n[0]),Si(e,n[1]),Si(e,n[2]),Si(e,n[3])],new Ct(gt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c1)throw new de(`${o} requires exactly one argument.`);return r=Si(e,n[0]),new Ct(gt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new de(`${o} does not take any argument.`);return new Ct(gt.UNARY,o)}else if(l(c5[o])){if(i!==1)throw new de(`${o} requires exactly one argument.`);return r=Si(e,n[0]),new Ct(gt.UNARY,o,r)}else if(l(l5[o])){if(i!==2)throw new de(`${o} requires exactly two arguments.`);return s=Si(e,n[0]),a=Si(e,n[1]),new Ct(gt.BINARY,o,s,a)}else if(l(yH[o])){if(i!==3)throw new de(`${o} requires exactly three arguments.`);s=Si(e,n[0]),a=Si(e,n[1]);let c=Si(e,n[2]);return new Ct(gt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new Ct(gt.LITERAL_BOOLEAN,!1):(r=Si(e,n[0]),new Ct(gt.UNARY,o,r));if(o==="Number")return i===0?new Ct(gt.LITERAL_NUMBER,0):(r=Si(e,n[0]),new Ct(gt.UNARY,o,r));if(o==="String")return i===0?new Ct(gt.LITERAL_STRING,""):(r=Si(e,n[0]),new Ct(gt.UNARY,o,r));if(o==="regExp")return Xwe(e,t)}}throw new de(`Unexpected function call "${o}".`)}function Xwe(e,t){let n=t.arguments;if(n.length===0)return new Ct(gt.LITERAL_REGEX,new RegExp);let i=Si(e,n[0]),o;if(n.length>1){let r=Si(e,n[1]);if(bH(i)&&bH(r)){try{o=new RegExp(gH(String(i._value)),r._value)}catch(s){throw new de(s)}return new Ct(gt.LITERAL_REGEX,o)}return new Ct(gt.REGEX,i,r)}if(bH(i)){try{o=new RegExp(gH(String(i._value)))}catch(r){throw new de(r)}return new Ct(gt.LITERAL_REGEX,o)}return new Ct(gt.REGEX,i)}function Wwe(e){if(Fwe(e.name)){let t=Awe(e.name);return t.substr(0,8)==="tiles3d_"?new Ct(gt.BUILTIN_VARIABLE,t):new Ct(gt.VARIABLE,t)}else{if(e.name==="NaN")return new Ct(gt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new Ct(gt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new Ct(gt.LITERAL_UNDEFINED,void 0)}throw new de(`${e.name} is not defined.`)}function Pwe(e){let t=e.property.name;if(t==="PI")return new Ct(gt.LITERAL_NUMBER,Math.PI);if(t==="E")return new Ct(gt.LITERAL_NUMBER,Math.E)}function vwe(e){if(e.property.name==="POSITIVE_INFINITY")return new Ct(gt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function wwe(e,t){if(t.object.name==="Math")return Pwe(t);if(t.object.name==="Number")return vwe(t);let n,i=Si(e,t.object);return t.computed?(n=Si(e,t.property),new Ct(gt.MEMBER,"brackets",i,n)):(n=new Ct(gt.LITERAL_STRING,t.property.name),new Ct(gt.MEMBER,"dot",i,n))}function bH(e){return e._type>=gt.LITERAL_NULL}function Fwe(e){return e.substr(0,4)==="czm_"}function Awe(e){return e.substr(4)}function Si(e,t){let n,i,o,r;if(t.type==="Literal")n=Ewe(t);else if(t.type==="CallExpression")n=Iwe(e,t);else if(t.type==="Identifier")n=Wwe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Si(e,t.argument);if(fwe.indexOf(i)>-1)n=new Ct(gt.UNARY,i,s);else throw new de(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=Si(e,t.left),r=Si(e,t.right),soe.indexOf(i)>-1)n=new Ct(gt.BINARY,i,o,r);else throw new de(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=Si(e,t.left),r=Si(e,t.right),soe.indexOf(i)>-1&&(n=new Ct(gt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=Si(e,t.test);o=Si(e,t.consequent),r=Si(e,t.alternate),n=new Ct(gt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=wwe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(l5[e._value])&&(e.evaluate=Uwe(e._value)):e._type===gt.TERNARY?e.evaluate=Dwe(e._value):e._type===gt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===gt.ARRAY?e.evaluate=e._evaluateArray:e._type===gt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===gt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===gt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===gt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===gt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===gt.REGEX?e.evaluate=e._evaluateRegExp:e._type===gt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=Nwe):e.evaluate=e._evaluateLiteral}function Nwe(e){return l(e)?e.content.tileset.timeSinceLoad:0}function kwe(e){let t=c5[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function Uwe(e){let t=l5[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function Dwe(e){let t=yH[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function d5(e,t){if(l(e))return e.getPropertyInherited(t)}Ct.prototype._evaluateLiteral=function(){return this._value};Ct.prototype._evaluateLiteralColor=function(e){let t=a5,n=this._left;if(this._value==="color")l(n)?n.length>1?(B.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):B.fromCssColorString(n[0].evaluate(e),t):B.fromBytes(255,255,255,255,t);else if(this._value==="rgb")B.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;B.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?B.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&B.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return se.fromColor(t,vn.getCartesian4())};Ct.prototype._evaluateLiteralVector=function(e){let t=vn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a1)throw new de(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new de(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return D.fromArray(t,0,vn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,vn.getCartesian3());if(n==="vec4")return se.fromArray(t,0,vn.getCartesian4())};Ct.prototype._evaluateLiteralString=function(){return this._value};Ct.prototype._evaluateVariableString=function(e){let t=this._value,n=s5.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=d5(e,o);l(r)||(r=""),t=t.replace(i,r),n=s5.exec(t)}return t};Ct.prototype._evaluateVariable=function(e){return d5(e,this._value)};function Ox(e){return e._value==="feature"}Ct.prototype._evaluateMemberDot=function(e){if(Ox(this._left))return d5(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof D||t instanceof h||t instanceof se){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};Ct.prototype._evaluateMemberBrackets=function(e){if(Ox(this._left))return d5(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof D||t instanceof h||t instanceof se){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};Ct.prototype._evaluateArray=function(e){let t=[];for(let n=0;n" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};Ct.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new de(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};Ct.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};Ct.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new de(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new de(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};Ct.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.add(t,n,vn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,vn.getCartesian3());if(n instanceof se&&t instanceof se)return se.add(t,n,vn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new de(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.subtract(t,n,vn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,vn.getCartesian3());if(n instanceof se&&t instanceof se)return se.subtract(t,n,vn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new de(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.multiplyComponents(t,n,vn.getCartesian2());if(n instanceof D&&typeof t=="number")return D.multiplyByScalar(n,t,vn.getCartesian2());if(t instanceof D&&typeof n=="number")return D.multiplyByScalar(t,n,vn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,vn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,vn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,vn.getCartesian3());if(n instanceof se&&t instanceof se)return se.multiplyComponents(t,n,vn.getCartesian4());if(n instanceof se&&typeof t=="number")return se.multiplyByScalar(n,t,vn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.multiplyByScalar(t,n,vn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new de(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.divideComponents(t,n,vn.getCartesian2());if(t instanceof D&&typeof n=="number")return D.divideByScalar(t,n,vn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,vn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,vn.getCartesian3());if(n instanceof se&&t instanceof se)return se.divideComponents(t,n,vn.getCartesian4());if(t instanceof se&&typeof n=="number")return se.divideByScalar(t,n,vn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new de(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof D&&t instanceof D)return D.fromElements(t.x%n.x,t.y%n.y,vn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,vn.getCartesian3());if(n instanceof se&&t instanceof se)return se.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,vn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new de(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof D&&t instanceof D||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?t.equals(n):t===n};Ct.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof D&&t instanceof D||n instanceof h&&t instanceof h||n instanceof se&&t instanceof se?!t.equals(n):t!==n};Ct.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new de(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};Ct.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};Ct.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};Ct.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};Ct.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};Ct.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};Ct.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};Ct.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};Ct.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};Ct.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new de(o)}return i};Ct.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};Ct.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new de(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new de(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};Ct.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new de(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};Ct.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof D||t instanceof h||t instanceof se)return String(t);throw new de(`Unexpected function call "${this._value}".`)};function coe(e){let t=e._left,n=t.length;for(let a=0;a1){let p=d[0],g=d[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${d[0]}, 1.0)`}else{if(c==="rgb")return i=loe(this),l(i)?r5(i):`vec4(${d[0]} / 255.0, ${d[1]} / 255.0, ${d[2]} / 255.0, 1.0)`;if(c==="rgba")return d[3]!=="1.0"&&(t.translucent=!0),i=loe(this),l(i)?r5(i):`vec4(${d[0]} / 255.0, ${d[1]} / 255.0, ${d[2]} / 255.0, ${d[3]})`;if(c==="hsl")return i=coe(this),l(i)?r5(i):`vec4(czm_HSLToRGB(vec3(${d[0]}, ${d[1]}, ${d[2]})), 1.0)`;if(c==="hsla")return i=coe(this),l(i)?(i.alpha!==1&&(t.translucent=!0),r5(i)):(d[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${d[0]}, ${d[1]}, ${d[2]})), ${d[3]})`)}break;case gt.LITERAL_VECTOR:u=o.length,m=`${c}(`;for(let p=0;p0;){let u=t.pop();if(B.equals(u.color,a.color))d=xH(n,s,d,i,o,u.batchIds,r),a.batchIds=a.batchIds.concat(u.batchIds),a.count=d-a.offset;else{let m=d;d=xH(n,s,d,i,o,u.batchIds,r),u.offset=m,u.count=d-m,c.push(u),a=u}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function _H(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let d=0;d0;){let m=t.pop();if(B.equals(m.color,r.color))d=_H(a,c,d,n,i,m.batchIds,o),r.batchIds=r.batchIds.concat(m.batchIds),r.count=d-r.offset;else{let p=d;d=_H(a,c,d,n,i,m.batchIds,o),m.offset=p,m.count=d-p,s.push(m),r=m}}let u=e._va;e._va=e._vaSwap,e._vaSwap=u,e._batchedIndices=s}function $we(e,t){return t.color.toRgba()-e.color.toRgba()}function eFe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s=x&&s{e.isDestroyed()||(e._error=f)}):void 0}}function bFe(e){l(e._primitive)||(e._primitive=new Hx({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}bd.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};bd.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};bd.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};bd.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};bd.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=pFe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};bd.prototype.isDestroyed=function(){return!1};bd.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),me(this)};var Np=bd;function of(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,xFe(this,i,o)}Object.defineProperties(of.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function gFe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function yFe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),d=y(e.ELLIPSOIDS_LENGTH,0),u=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let f=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,f,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let f=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,f,c)}if(d>0&&l(e.ELLIPSOID_BATCH_IDS)){let f=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,f,d)}if(u>0&&l(e.SPHERE_BATCH_IDS)){let f=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,f,u)}let m=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||d>0&&!l(o)||u>0&&!l(r);if(m&&p)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let f=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s0)for(i=new Uint16Array(c),s=0;s0)for(o=new Uint16Array(d),s=0;s0)for(r=new Uint16Array(u),s=0;s0&&(g=Wo(i,n,d),n+=d,u>0&&(f=new Uint8Array(t,n,u),f=new Uint8Array(f)));let x=y(m.BOXES_LENGTH,0),_=y(m.CYLINDERS_LENGTH,0),C=y(m.ELLIPSOIDS_LENGTH,0),V=y(m.SPHERES_LENGTH,0),L=x+_+C+V,Z=new Ap(e,L,g,f,gFe(e));if(e._batchTable=Z,L===0)return;let G=e.tile.computedTransform,I;l(m.RTC_CENTER)&&(I=h.unpack(m.RTC_CENTER),M.multiplyByPoint(G,I,I));let v=yFe(m,p);if(x>0||_>0||C>0||V>0){let P,w,F,b;if(x>0){let R=p.byteOffset+m.BOXES.byteOffset;P=new Float32Array(p.buffer,R,Np.packedBoxLength*x)}if(_>0){let R=p.byteOffset+m.CYLINDERS.byteOffset;w=new Float32Array(p.buffer,R,Np.packedCylinderLength*_)}if(C>0){let R=p.byteOffset+m.ELLIPSOIDS.byteOffset;F=new Float32Array(p.buffer,R,Np.packedEllipsoidLength*C)}if(V>0){let R=p.byteOffset+m.SPHERES.byteOffset;b=new Float32Array(p.buffer,R,Np.packedSphereLength*V)}return e._geometries=new Np({boxes:P,boxBatchIds:v.boxes,cylinders:w,cylinderBatchIds:v.cylinders,ellipsoids:F,ellipsoidBatchIds:v.ellipsoids,spheres:b,sphereBatchIds:v.spheres,center:I,modelMatrix:G,batchTable:Z,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function poe(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}of.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};of.prototype.getFeature=function(e){return poe(this),this._features[e]};of.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};of.prototype.applyStyle=function(e){poe(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};of.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};of.prototype.pick=function(e,t,n){};of.prototype.isDestroyed=function(){return!1};of.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),me(this)};var VI=of;var bfn=T(S(),1);var vrn=T(S(),1);var TH={};TH.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),boe(i,o,r,s);return c};TH.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s>>0,SH=2*Kx+1,K0=4,xoe=[],_oe=[],SFe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],J0=1,mC=2,u5=[J0,0,0,J0|mC];function Qr(e){if(!zt.supportsBigInt())throw new de("S2 required BigInt support");this._cellId=e,this._level=Qr.getLevel(e)}Qr.fromToken=function(e){return new Qr(Qr.getIdFromToken(e))};Qr.isValidId=function(e){return!(e<=0||e>>BigInt(SH)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Qr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Qr.isValidId(Qr.getIdFromToken(e)):!1};Qr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Qr.getTokenFromId=function(e){let t=Math.floor(WFe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Qr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Kx-(t>>1)};Qr.prototype.getChild=function(e){let t=Coe(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Qr(n)};Qr.prototype.getParent=function(){let e=Coe(this._cellId)<>1&1;return Soe(i[0],o[0][r^n&1],o[1][r])}function LFe(e,t){let n=Toe(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,d=(o<<1)+c,u=(r<<1)+c;return[i,d,u]}function Toe(e){xoe.length===0&&EFe();let t=Number(e>>BigInt(SH)),n=t&J0,i=(1<=0;s--){let c=(1<<2*(s===7?Kx-7*K0:K0))-1;n+=Number(e>>BigInt(s*2*K0+1)&BigInt(c))<<2,n=_oe[n];let d=s*K0;o+=n>>K0+2<>2&i)<=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function goe(e){return 1/TFe*e}function ZFe(e,t){let n=[[],[]],i=GFe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=m5(yoe(r)),n[o][1]=m5(yoe(s))}return n}function GFe(e){return 1<>>0}function yoe(e){return 1/_Fe*e}function Q0(e,t,n,i,o,r){if(e===K0){let s=(t<>1),n+(s[0]&1),i,o,r^u5[0]),Q0(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^u5[1]),Q0(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^u5[2]),Q0(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^u5[3])}}function EFe(){Q0(0,0,0,0,0,0),Q0(0,0,0,J0,0,J0),Q0(0,0,0,mC,0,mC),Q0(0,0,0,J0|mC,0,J0|mC)}function Coe(e){return e&~e+BigInt(1)}function IFe(e){return BigInt(1)<>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(CH.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});CH.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var hC=CH;var $rn=T(S(),1);function Up(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(Up.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Up.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Up.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Up.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Up.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Up.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Up.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Up.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var fC=Up;var tsn=T(S(),1);var h5={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};h5.getBranchingFactor=function(e){switch(e){case h5.OCTREE:return 8;case h5.QUADTREE:return 4}};var jr=Object.freeze(h5);var usn=T(S(),1);var ssn=T(S(),1);function aa(){}Object.defineProperties(aa.prototype,{class:{get:function(){pe.throwInstantiationError()}}});aa.prototype.hasProperty=function(e){pe.throwInstantiationError()};aa.prototype.hasPropertyBySemantic=function(e){pe.throwInstantiationError()};aa.prototype.getPropertyIds=function(e){pe.throwInstantiationError()};aa.prototype.getProperty=function(e){pe.throwInstantiationError()};aa.prototype.setProperty=function(e,t){pe.throwInstantiationError()};aa.prototype.getPropertyBySemantic=function(e){pe.throwInstantiationError()};aa.prototype.setPropertyBySemantic=function(e,t){pe.throwInstantiationError()};aa.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};aa.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};aa.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};aa.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Ye(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};aa.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};aa.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return aa.getProperty(o.id,t,n)};aa.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?aa.setProperty(r.id,t,n,i):!1};var Mn=aa;function Dp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Dp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Dp.prototype.hasProperty=function(e){return Mn.hasProperty(e,this._properties,this._class)};Dp.prototype.hasPropertyBySemantic=function(e){return Mn.hasPropertyBySemantic(e,this._properties,this._class)};Dp.prototype.getPropertyIds=function(e){return Mn.getPropertyIds(this._properties,this._class,e)};Dp.prototype.getProperty=function(e){return Mn.getProperty(e,this._properties,this._class)};Dp.prototype.setProperty=function(e,t){return Mn.setProperty(e,t,this._properties,this._class)};Dp.prototype.getPropertyBySemantic=function(e){return Mn.getPropertyBySemantic(e,this._properties,this._class)};Dp.prototype.setPropertyBySemantic=function(e,t){return Mn.setPropertyBySemantic(e,t,this._properties,this._class)};var LI=Dp;var nan=T(S(),1);var Jsn=T(S(),1);var bsn=T(S(),1);var Nt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Nt.getMinimum=function(e){switch(e){case Nt.INT8:return-128;case Nt.UINT8:return 0;case Nt.INT16:return-32768;case Nt.UINT16:return 0;case Nt.INT32:return-2147483648;case Nt.UINT32:return 0;case Nt.INT64:return zt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Nt.UINT64:return zt.supportsBigInt()?BigInt(0):0;case Nt.FLOAT32:return-34028234663852886e22;case Nt.FLOAT64:return-Number.MAX_VALUE}};Nt.getMaximum=function(e){switch(e){case Nt.INT8:return 127;case Nt.UINT8:return 255;case Nt.INT16:return 32767;case Nt.UINT16:return 65535;case Nt.INT32:return 2147483647;case Nt.UINT32:return 4294967295;case Nt.INT64:return zt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Nt.UINT64:return zt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Nt.FLOAT32:return 34028234663852886e22;case Nt.FLOAT64:return Number.MAX_VALUE}};Nt.isIntegerType=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.INT64:case Nt.UINT64:return!0;default:return!1}};Nt.isUnsignedIntegerType=function(e){switch(e){case Nt.UINT8:case Nt.UINT16:case Nt.UINT32:case Nt.UINT64:return!0;default:return!1}};Nt.isVectorCompatible=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.FLOAT32:case Nt.FLOAT64:return!0;default:return!1}};Nt.normalize=function(e,t){return Math.max(Number(e)/Number(Nt.getMaximum(t)),-1)};Nt.unnormalize=function(e,t){let n=Nt.getMaximum(t),i=Nt.isUnsignedIntegerType(t)?0:-n;return e=W.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Nt.INT64||t===Nt.UINT64)&&zt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};Xa.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!Zoe(e,t))return e};function Zoe(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};Xa.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Rt.getMathType(this._type),i=this._isArray,o=Rt.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};Xa.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?AFe(this,e):Goe(this,e)};function AFe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i1?Voe(e,t,n):void 0}if(eHt.getMaximum(t))return Voe(e,t,n)}function Roe(e,t){return`value ${e} of type ${t} must be finite`}function VH(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function KFe(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function QFe(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<96?_-97:_>64?_-39:_+4}for(var C=0,x=0;x=3),c(n.exports.meshopt_spatialSortRemap,g,g.length/f,f*4)},encodeVertexBuffer:function(g,f,x){r(x>0&&x<=256),r(x%4==0);var _=n.exports.meshopt_encodeVertexBufferBound(f,x);return d(n.exports.meshopt_encodeVertexBuffer,_,g,f,x)},encodeIndexBuffer:function(g,f,x){r(x==2||x==4),r(f%3==0);var _=m(g,x),C=n.exports.meshopt_encodeIndexBufferBound(f,u(_)+1);return d(n.exports.meshopt_encodeIndexBuffer,C,_,f,4)},encodeIndexSequence:function(g,f,x){r(x==2||x==4);var _=m(g,x),C=n.exports.meshopt_encodeIndexSequenceBound(f,u(_)+1);return d(n.exports.meshopt_encodeIndexSequence,C,_,f,4)},encodeGltfBuffer:function(g,f,x,_){var C={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(C[_]),C[_](g,f,x)},encodeFilterOct:function(g,f,x,_){return r(x==4||x==8),r(_>=1&&_<=16),p(n.exports.meshopt_encodeFilterOct,g,f,x,_,16)},encodeFilterQuat:function(g,f,x,_){return r(x==8),r(_>=4&&_<=16),p(n.exports.meshopt_encodeFilterQuat,g,f,x,_,16)},encodeFilterExp:function(g,f,x,_,C){r(x>0&&x%4==0),r(_>=1&&_<=24);var V={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return p(n.exports.meshopt_encodeFilterExp,g,f,x,_,x,C?V[C]:1)}}}();var Tan=T(S()),Poe=function(){var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?a(t):a(e),r,s=WebAssembly.instantiate(o,{}).then(function(C){r=C.instance,r.exports.__wasm_call_ctors()});function a(C){for(var V=new Uint8Array(C.length),L=0;L96?Z-97:Z>64?Z-39:Z+4}for(var G=0,L=0;L0?x(C,V,L,u[Z],d[G]):s.then(function(){var I=new Uint8Array(C*V);return c(r,r.exports[u[Z]],I,C,V,L,r.exports[d[G]]),I})}}}();var Van=T(S()),San=function(){var e="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(f){n=f.instance,n.exports.__wasm_call_ctors()});function o(f){for(var x=new Uint8Array(f.length),_=0;_96?C-97:C>64?C-39:C+4}for(var V=0,_=0;_=3),r(C>=0&&C<=f.length),r(C%3==0),r(V>=0);for(var Z=0,G=0;G<(L?L.length:0);++G)r(L[G]in g),r(this.useExperimentalFeatures||L[G]!="Prune"),Z|=g[L[G]];var I=f.BYTES_PER_ELEMENT==4?f:new Uint32Array(f),v=d(n.exports.meshopt_simplify,I,f.length,x,x.length/_,_*4,C,V,Z);return v[0]=f instanceof Uint32Array?v[0]:new f.constructor(v[0]),v},simplifyWithAttributes:function(f,x,_,C,V,L,Z,G,I,v){r(this.useExperimentalFeatures),r(f instanceof Uint32Array||f instanceof Int32Array||f instanceof Uint16Array||f instanceof Int16Array),r(f.length%3==0),r(x instanceof Float32Array),r(x.length%_==0),r(_>=3),r(C instanceof Float32Array),r(C.length%V==0),r(V>=0),r(Z==null||Z instanceof Uint8Array),r(Z==null||Z.length==x.length/_),r(G>=0&&G<=f.length),r(G%3==0),r(I>=0),r(Array.isArray(L)),r(V>=L.length),r(L.length<=32);for(var P=0;P=0);for(var w=0,P=0;P<(v?v.length:0);++P)r(v[P]in g),w|=g[v[P]];var F=f.BYTES_PER_ELEMENT==4?f:new Uint32Array(f),b=u(n.exports.meshopt_simplifyWithAttributes,F,f.length,x,x.length/_,_*4,C,V*4,new Float32Array(L),Z?new Uint8Array(Z):null,G,I,w);return b[0]=f instanceof Uint32Array?b[0]:new f.constructor(b[0]),b},getScale:function(f,x){return r(f instanceof Float32Array),r(f.length%x==0),r(x>=3),m(n.exports.meshopt_simplifyScale,f,f.length/x,x*4)},simplifyPoints:function(f,x,_,C,V,L){return r(this.useExperimentalFeatures),r(f instanceof Float32Array),r(f.length%x==0),r(x>=3),r(_>=0&&_<=f.length/x),C?(r(C instanceof Float32Array),r(C.length%V==0),r(V>=3),r(f.length/x==C.length/V),p(n.exports.meshopt_simplifyPoints,f,f.length/x,x*4,C,V*4,L,_)):p(n.exports.meshopt_simplifyPoints,f,f.length/x,x*4,void 0,0,0,_)}}}();var Zan=T(S()),Lan=function(){var e="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(f){n=f.instance,n.exports.__wasm_call_ctors()});function o(f){for(var x=new Uint8Array(f.length),_=0;_96?C-97:C>64?C-39:C+4}for(var V=0,_=0;_=3),r(C<=255||C>0),r(V<=512),r(V%4==0),L=L||0;var Z=f.BYTES_PER_ELEMENT==4?f:new Uint32Array(f);return u(Z,x,x.length/_,_*4,C,V,L)},computeClusterBounds:function(f,x,_){r(f.length%3==0),r(f.length/3<=512),r(x instanceof Float32Array),r(x.length%_==0),r(_>=3);var C=f.BYTES_PER_ELEMENT==4?f:new Uint32Array(f);return g(C,x,x.length/_,_*4)},computeMeshletBounds:function(f,x,_){return r(f.meshletCount!=0),r(x instanceof Float32Array),r(x.length%_==0),r(_>=3),p(f,x,x.length/_,_*4)},extractMeshlet:function(f,x){return r(x>=0&&x{wr._error=t}),wr._decoderTaskProcessor=e}return wr._decoderTaskProcessor};wr.decodePointCloud=function(e){let t=wr._getDecoderTaskProcessor();if(l(wr._error))throw wr._error;if(wr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};wr.decodeBufferView=function(e){let t=wr._getDecoderTaskProcessor();if(l(wr._error))throw wr._error;if(wr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Op=wr;function $0(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=yt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&($0.prototype=Object.create(Hi.prototype),$0.prototype.constructor=$0);Object.defineProperties($0.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function lAe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=yt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;voe(e,n)}}$0.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=yt.LOADING,this._promise=lAe(this),this._promise)};function voe(e,t){throw e.unload(),e._state=yt.FAILED,e.getError("Failed to load Draco",t)}async function dAe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=yt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}$0.prototype.process=function(e){if(this._state===yt.READY)return!0;if(this._state!==yt.PROCESSING||(l(this._dracoError)&&voe(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=Op.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=dAe(this,c)};$0.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var bC=$0;var fcn=T(S(),1);var rcn=T(S(),1);function uAe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return Ee.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(Ee.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new Ee({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var jx=uAe;function Yp(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,d=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=d,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=yt.UNLOADED,this._promise=void 0}l(Object.create)&&(Yp.prototype=Object.create(Hi.prototype),Yp.prototype.constructor=Yp);Object.defineProperties(Yp.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});Yp.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=mAe(this),this._promise):(this._promise=hAe(this),this._promise)};function woe(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function mAe(e){e._state=yt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await pAe(i);if(e.isDestroyed())return;let r=woe(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=yt.READY,e}catch(n){return e.isDestroyed()?void 0:Foe(e,n,"Failed to load embedded image")}}async function hAe(e){e._state=yt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await gAe(i);if(e.isDestroyed())return;let r=woe(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=yt.READY,e}catch(o){return e.isDestroyed()?void 0:Foe(e,o,`Failed to load image: ${n}`)}}function Foe(e,t,n){return e.unload(),e._state=yt.FAILED,Promise.reject(e.getError(n,t))}function fAe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new de("Image format is not recognized")}async function pAe(e){let t=fAe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return _l(n)}return Yp._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var bAe=/(^data:image\/ktx2)|(\.ktx2$)/i;function gAe(e){let t=e.getUrlComponent(!1,!0);return bAe.test(t)?_l(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}Yp.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};Yp._loadImageFromTypedArray=jx;var gC=Yp;var Gcn=T(S(),1);var bcn=T(S(),1),yAe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},Wa=Object.freeze(yAe);function eg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),u=y(e.loadTypedArray,!1),m=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=m,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=d,this._loadTypedArray=u,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=yt.UNLOADED,this._promise=void 0}l(Object.create)&&(eg.prototype=Object.create(Hi.prototype),eg.prototype.constructor=eg);Object.defineProperties(eg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var xAe=new ZH;eg.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=_Ae(this),this._promise):(this._promise=TAe(this),this._promise)};async function _Ae(e){e._state=yt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=yt.LOADED,e)}catch(n){if(e.isDestroyed())return;RH(e,n)}}async function TAe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=yt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=SAe(e,a),e._state=yt.PROCESSING,e}catch(s){if(e.isDestroyed())return;RH(e,s)}}function SAe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ae.getSizeInBytes(s),c=t.buffer,d=t.byteOffset+o.byteOffset;if(d%a!==0){let m=r*a,p=new Uint8Array(c,d,m);c=new Uint8Array(p).buffer,d=0,ls("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let u;return s===Ae.UNSIGNED_BYTE?u=new Uint8Array(c,d,r):s===Ae.UNSIGNED_SHORT?u=new Uint16Array(c,d,r):s===Ae.UNSIGNED_INT&&(u=new Uint32Array(c,d,r)),u}function RH(e,t){throw e.unload(),e._state=yt.FAILED,e.getError("Failed to load index buffer",t)}function ZH(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}ZH.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};ZH.prototype.execute=function(){this.buffer=Aoe(this.typedArray,this.indexDatatype,this.context)};function Aoe(e,t,n){let i=xt.createIndexBuffer({typedArray:e,context:n,usage:Me.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}eg.prototype.process=function(e){if(this._state===yt.READY)return!0;if(this._state!==yt.LOADED&&this._state!==yt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=Q.fromTypedArray(t),this._indexDatatype=n)}catch(o){RH(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=xAe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,Wa.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=Aoe(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=yt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};eg.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var yC=eg;var Nun=T(S(),1);var $cn=T(S(),1);var Xcn=T(S(),1);function CAe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var Ss=CAe;var Mcn=T(S(),1);var vcn=T(S(),1);function VAe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var sr=VAe;function Qt(){}Qt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};Qt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i0)return i.byteStride}return Q.getSizeInBytes(t.componentType)*gd(t.type)}var Xl=RAe;function ZAe(e){Pe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,ie.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=Ss(e.materials,o)}})}),Pe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=Xl(e,i),r.target=ie.ARRAY_BUFFER}}),Pe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=ie.ELEMENT_ARRAY_BUFFER}}),Pe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,d=l(o.values)?o.values:{};o.values=d,d.ambient=l(d.ambient)?d.ambient:[0,0,0,1],d.emission=l(d.emission)?d.emission:[0,0,0,1],d.transparency=y(d.transparency,1),c!=="CONSTANT"&&(d.diffuse=l(d.diffuse)?d.diffuse:[0,0,0,1],c!=="LAMBERT"&&(d.specular=l(d.specular)?d.specular:[0,0,0,1],d.shininess=y(d.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Pe.materialValue(n,function(c){l(c.index)&&qx(c)}),qx(n.emissiveTexture),qx(n.normalTexture),qx(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),qx(s.baseColorTexture),qx(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),qx(a.specularGlossinessTexture))}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=GAe(e);return Pe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Pe.sampler(e,function(n){n.wrapS=y(n.wrapS,ie.REPEAT),n.wrapT=y(n.wrapT,ie.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function GAe(e){let t={};return Pe.animation(e,function(n){Pe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function qx(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var GI=ZAe;var iln=T(S(),1);function EAe(e){return Pe.shader(e,function(t){p5(t)}),Pe.buffer(e,function(t){p5(t)}),Pe.image(e,function(t){p5(t)}),p5(e),e}function p5(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var tg=EAe;var xln=T(S(),1);var dln=T(S(),1);var sln=T(S(),1);function IAe(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var EI=IAe;function XAe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),EI(e,t),n.length===0&&delete e.extensionsUsed}}var $x=XAe;var WAe=4;function PAe(e){if(vm(e)!=="glTF")throw new de("File is not valid binary glTF");let n=Moe(e,0,5),i=n[1];if(i!==1&&i!==2)throw new de("Binary glTF version is not 1 or 2");return i===1?vAe(e,n):wAe(e,n)}function Moe(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r0){let m=y(u.binary_glTF,u.KHR_binary_glTF);l(m)&&(m.extras._pipeline.source=d,delete m.uri)}return $x(c,"KHR_binary_glTF"),c}function wAe(e,t){let n=t[2],i=12,o,r;for(;i0){let a=s[0];a.extras._pipeline.source=r}}return o}var II=PAe;var Cln=T(S(),1);function FAe(e){return Pe.shader(e,function(t){b5(t)}),Pe.buffer(e,function(t){b5(t)}),Pe.image(e,function(t){b5(t)}),b5(e),e}function b5(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var XI=FAe;var oun=T(S(),1);var Zln=T(S(),1);function AAe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),Ss(n,t,!0)}var Su=AAe;var Aln=T(S(),1);var Iln=T(S(),1);function MAe(e){switch(e){case Q.BYTE:return function(t,n,i,o,r){for(let s=0;s-1:!1}var DAe=[ie.ZERO,ie.ONE,ie.SRC_COLOR,ie.ONE_MINUS_SRC_COLOR,ie.SRC_ALPHA,ie.ONE_MINUS_SRC_ALPHA,ie.DST_ALPHA,ie.ONE_MINUS_DST_ALPHA,ie.DST_COLOR,ie.ONE_MINUS_DST_COLOR];function BAe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(DAe.indexOf(e[n])===-1)return t;return e}function OAe(e){let t={},n={},i=e.techniques;return l(i)&&(Pe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(Noe(s,ie.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,kAe),blendFactors:BAe(c.blendFuncSeparate,UAe)})}Noe(s,ie.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),Su(e,"KHR_blend")),Pe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Pe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var WI=OAe;var ndn=T(S(),1);var Jln=T(S(),1);function YAe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),Ss(n,t,!0),Su(e,t)}var PI=YAe;function HAe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Pe.technique(e,function(a,c){let d={name:a.name,program:void 0,attributes:{},uniforms:{}},u;if(Pe.techniqueAttribute(a,function(m,p){u=a.parameters[m],d.attributes[p]={semantic:u.semantic}}),Pe.techniqueUniform(a,function(m,p){u=a.parameters[m],d.uniforms[p]={count:u.count,node:u.node,type:u.type,semantic:u.semantic,value:u.value},l(n[c])||(n[c]={}),n[c][m]=p}),l(o[a.program]))d.program=o[a.program];else{let m=e.programs[a.program],p={name:m.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[m.fragmentShader];p.fragmentShader=Ss(r.shaders,g,!0);let f=e.shaders[m.vertexShader];p.vertexShader=Ss(r.shaders,f,!0),d.program=Ss(r.programs,p),o[a.program]=d.program}i[c]=Ss(r.techniques,d)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Su(e,"KHR_techniques_webgl"),PI(e,"KHR_techniques_webgl"))}return Pe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Pe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let d=n[r.technique][c];l(d)&&(s.values[d]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var vI=HAe;var fdn=T(S(),1);var adn=T(S(),1);function zAe(e,t){go.typeOf.object("material",e),go.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let c=r.diffuseTexture,d=t(c.index,c);if(l(d))return d}if(l(r.specularGlossinessTexture)){let c=r.specularGlossinessTexture,d=t(c.index,c);if(l(d))return d}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:c,specularColorTexture:d}=s;if(l(c)){let u=t(c.index,c);if(l(u))return u}if(l(d)){let u=t(d.index,d);if(l(u))return u}}let a=i.KHR_materials_common;if(l(a)&&l(a.values)){let{diffuse:c,ambient:d,emission:u,specular:m}=a.values;if(l(c)&&l(c.index)){let p=t(c.index,c);if(l(p))return p}if(l(d)&&l(d.index)){let p=t(d.index,d);if(l(p))return p}if(l(u)&&l(u.index)){let p=t(u.index,u);if(l(p))return p}if(l(m)&&l(m.index)){let p=t(m.index,m);if(l(p))return p}}}let o=Pe.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var xC=zAe;var koe=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function KAe(e,t){return t=y(t,koe),koe.forEach(function(n){t.indexOf(n)>-1&&QAe(e,n)}),e}var JAe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function QAe(e,t){let n=JAe[t],i=e[n];if(l(i)){let o=0,r=sf[t](e),s=i.length;for(let a=0;at&&o.attributes[c]--}),Pe.meshPrimitiveTarget(o,function(a){Pe.meshPrimitiveTargetAttribute(a,function(c,d){c>t&&a[d]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Pe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Pe.animation(e,function(i){Pe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};rf.buffer=function(e,t){e.buffers.splice(t,1),Pe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};rf.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Pe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),sr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),sr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let d=a[c];l(d.bufferView)&&d.bufferView>t&&d.bufferView--,l(d.arrayOffsetBufferView)&&d.arrayOffsetBufferView>t&&d.arrayOffsetBufferView--,l(d.stringOffsetBufferView)&&d.stringOffsetBufferView>t&&d.stringOffsetBufferView--}}}}if(sr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;st&&u.values--,l(u.arrayOffsets)&&u.arrayOffsets>t&&u.arrayOffsets--,l(u.stringOffsets)&&u.stringOffsets>t&&u.stringOffsets--}}}}};rf.image=function(e,t){e.images.splice(t,1),Pe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};rf.mesh=function(e,t){e.meshes.splice(t,1),Pe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};rf.node=function(e,t){e.nodes.splice(t,1),Pe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Pe.animation(e,function(i){Pe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Pe.technique(e,function(i){Pe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Pe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Pe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};rf.material=function(e,t){e.materials.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};rf.sampler=function(e,t){e.samplers.splice(t,1),Pe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};rf.texture=function(e,t){if(e.textures.splice(t,1),Pe.material(e,function(i){xC(i,function(o,r){r.index>t&&--r.index})}),sr(e,"EXT_feature_metadata")){Pe.mesh(e,function(r){Pe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let d=a.EXT_feature_metadata.featureIdTextures;if(l(d)){let u=d.length;for(let m=0;mt&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c].texture;u.index>t&&--u.index}}}}if(sr(e,"EXT_mesh_features")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let d=0;dt&&--u.texture.index}}}})}),sr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;st&&--u.index}}}}};function sf(){}sf.accessor=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Pe.meshPrimitiveTarget(i,function(r){Pe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Pe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),sr(e,"EXT_mesh_gpu_instancing")&&Pe.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),sr(e,"CESIUM_primitive_outline")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};sf.buffer=function(e){let t={};return Pe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};sf.bufferView=function(e){let t={};if(Pe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),sr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),sr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(sr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r0&&(t[n.mesh]=!0)}}),t};function Uoe(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Uoe(e,o,n)}).length===0}sf.node=function(e){let t={};return Pe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Pe.skinJoint(n,function(i){t[i]=!0})}),Pe.animation(e,function(n){Pe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Pe.technique(e,function(n){Pe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Pe.node(e,function(n,i){Uoe(e,i,t)||(t[i]=!0)}),t};sf.material=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};sf.texture=function(e){let t={};if(Pe.material(e,function(n){xC(n,function(i){t[i]=!0})}),sr(e,"EXT_feature_metadata")){Pe.mesh(e,function(o){Pe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let d=c.length;for(let u=0;u0)for(s.mesh=n.meshes[c[0]],t=1;t0&&l(s.skin)){let u=e.skins[s.skin];u.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Pe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],d=a.length;for(t=0;t=0&&(a=r.substring(0,s),c=r.substring(s));let d,u=xMe[a];l(u)?(d=u+c,t[r]=d):l(yMe[a])||(d=`_${r}`,t[r]=d)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Pe.technique(e,function(n){Pe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function TMe(e){Pe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function IH(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:Xl(e,t)}function SMe(e){Pe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Pe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=IH(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function CMe(e){let t,n,i,o=e.bufferViews,r={};Pe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Pe.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let d=0,u=0,m=c.length;for(t=0;t=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Pe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Yoe(n)&&Hoe(e,i))}}),delete e.nodes[t]}function LMe(e){return Pe.node(e,function(t,n){Yoe(t)&&Hoe(e,n)}),e}function RMe(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=e_(e,i);i.min=o.min,i.max=o.max}})})}function ZMe(e){Pe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=e_(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function GMe(e){e.asset=y(e.asset,{}),e.asset.version="2.0",Ooe(e),cMe(e),LMe(e),lMe(e),dMe(e),mMe(e),fMe(e),SMe(e),CMe(e),VMe(e),RMe(e),ZMe(e),pMe(e),bMe(e),gMe(e),_Me(e),MI(e),TMe(e),WI(e),vI(e),uMe(e)}var EMe=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],IMe=["u_diffuse","u_diffuse_mat"];function XH(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function WH(e){return l(e.index)}function PH(e){return Array.isArray(e)&&e.length===4}function zoe(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function XMe(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,EMe),i=y(t.baseColorFactorNames,IMe);Pe.material(e,function(o){Pe.materialValue(o,function(r,s){n.indexOf(s)!==-1&&WH(r)?(XH(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&PH(r)&&(XH(o),o.pbrMetallicRoughness.baseColorFactor=zoe(r))})}),t_(e,"KHR_techniques_webgl"),t_(e,"KHR_blend")}function EH(e,t){l(t)&&(PH(t)?e.pbrMetallicRoughness.baseColorFactor=zoe(t):WH(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function Boe(e,t){l(t)&&(PH(t)?e.emissiveFactor=t.slice(0,3):WH(t)&&(e.emissiveTexture=t))}function WMe(e){Pe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(!l(n))return;let i=y(n.values,{}),o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,d=n.transparent;XH(t),n.technique==="CONSTANT"?(Su(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},EH(t,s),EH(t,o)):(EH(t,r),Boe(t,o),Boe(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(d)&&(t.alphaMode=d?"BLEND":"OPAQUE")}),t_(e,"KHR_materials_common")}var NI=nMe;var _un=T(S(),1);var aun=T(S(),1);var ri={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function PMe(e){switch(e){case ri.POSITION:return"positionMC";case ri.NORMAL:return"normalMC";case ri.TANGENT:return"tangentMC";case ri.TEXCOORD:return"texCoord";case ri.COLOR:return"color";case ri.JOINTS:return"joints";case ri.WEIGHTS:return"weights";case ri.FEATURE_ID:return"featureId"}}ri.hasSetIndex=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return!1;case ri.TEXCOORD:case ri.COLOR:case ri.JOINTS:case ri.WEIGHTS:case ri.FEATURE_ID:return!0}};ri.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ri.POSITION;case"NORMAL":return ri.NORMAL;case"TANGENT":return ri.TANGENT;case"TEXCOORD":return ri.TEXCOORD;case"COLOR":return ri.COLOR;case"JOINTS":return ri.JOINTS;case"WEIGHTS":return ri.WEIGHTS;case"_FEATURE_ID":return ri.FEATURE_ID}};ri.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ri.POSITION;case"RGBA":case"RGB":case"RGB565":return ri.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ri.NORMAL;case"BATCH_ID":return ri.FEATURE_ID}};ri.getGlslType=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return"vec3";case ri.TEXCOORD:return"vec2";case ri.COLOR:return"vec4";case ri.JOINTS:return"ivec4";case ri.WEIGHTS:return"vec4";case ri.FEATURE_ID:return"int"}};ri.getVariableName=function(e,t){let n=PMe(e);return l(t)&&(n+=`_${t}`),n};var Vt=Object.freeze(ri);function sc(){}sc.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new de(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};sc.getNodeTransform=function(e){return l(e.matrix)?e.matrix:M.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:we.IDENTITY,l(e.scale)?e.scale:h.ONE)};sc.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r>t};ca.fromSubtreeJson=async function(e,t,n,i,o){let r=new ca(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=C9e(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let V=a.tileMetadata;c=a.propertyTables[V]}let d=[];if(l(a.contentMetadata)){let V=a.contentMetadata.length;for(let L=0;L0;u=u||m;for(let p=0;p>BigInt(61)),d=c%2===0?uC.encode2D(i,o,r):uC.encode2D(i,r,o),u=kp.fromFacePositionLevel(c,BigInt(d),i),m,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;m=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else m=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:kp.getTokenFromId(u._cellId),minimumHeight:m,maximumHeight:p}}}}var Y9e=new h,H9e=new h,UH=new h,z9e=new $;function are(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,H9e),s=$.unpack(e,3,z9e),a=Math.pow(2,-t),c=-1+(2*n+1)*a,d=-1+(2*i+1)*a,u=0,m=h.fromElements(a,a,1,Y9e);l(o)&&(u=-1+(2*o+1)*a,m.z=a);let p=h.fromElements(c,d,u,UH);p=$.multiplyByVector(s,p,UH),p=h.add(p,r,UH);let g=$.clone(s);g=$.multiplyByScale(g,m,g);let f=new Array(12);return h.pack(p,f),$.pack(g,f,3),f}var K9e=new ae;function cre(e,t,n,i,o){if(t===0)return e.slice();let r=ae.unpack(e,0,K9e),s=e[4],a=e[5],c=Math.pow(2,-t),d=c*r.width,u=W.negativePiToPi(r.west+n*d),m=W.negativePiToPi(u+d),p=c*r.height,g=W.negativePiToPi(r.south+i*p),f=W.negativePiToPi(g+p),x=s,_=a;if(l(o)){let C=c*(a-s);x+=o*C,_=x+C}return[u,g,m,f,x,_]}function J9e(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=rre(i,o,n,!1,t),s=ore(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},d=lre(e,i.baseResource,c,t);return d.implicitTileset=i,d.implicitCoordinates=o,d}function lre(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Oc.prototype.hasProperty=function(e,t){return!1};Oc.prototype.getFeature=function(e){};Oc.prototype.applyDebugSettings=function(e,t){};Oc.prototype.applyStyle=function(e){};Oc.prototype.update=function(e,t){};Oc.prototype.pick=function(e,t,n){};Oc.prototype.isDestroyed=function(){return!1};Oc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),me(this)};Oc._deriveBoundingBox=are;Oc._deriveBoundingRegion=cre;Oc._deriveBoundingVolumeS2=sre;var LC=Oc;var Vvn=T(S(),1);var yfn=T(S(),1),Q9e={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},vl=Object.freeze(Q9e);var fvn=T(S(),1);var Dfn=T(S(),1);var Sfn=T(S(),1);function RC(e,t){this._distance=t,this._normal=new dre(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(RC.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});RC.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new RC(e.normal,e.distance),t};RC.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new RC(e.normal,e.distance)};function dre(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(dre.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var a_=RC;function ac(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this.edgeColor=B.clone(y(e.edgeColor,B.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new be,this.planeRemoved=new be,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?pre:bre,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o0&&(r=Jt.OUTSIDE);for(let s=0;s80*n){a=1/0,c=1/0;let u=-1/0,m=-1/0;for(let p=n;pu&&(u=g),f>m&&(m=f)}d=Math.max(u-a,m-c),d=d!==0?32767/d:0}return JI(r,s,n,a,c,d,0),s}function _re(e,t,n,i,o){let r;if(o===bNe(e,t,n,i)>0)for(let s=t;s=t;s-=i)r=xre(s/i|0,e[s],e[s+1],r);return r&&Z5(r,r.next)&&(jI(r),r=r.next),r}function c_(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(Z5(n,n.next)||Fr(n.prev,n,n.next)===0)){if(jI(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function JI(e,t,n,i,o,r,s){if(!e)return;!s&&r&&dNe(e,i,o,r);let a=e;for(;e.prev!==e.next;){let c=e.prev,d=e.next;if(r?nNe(e,i,o,r):tNe(e)){t.push(c.i,e.i,d.i),jI(e),e=d.next,a=d.next;continue}if(e=d,e===a){s?s===1?(e=iNe(c_(e),t),JI(e,t,n,i,o,r,2)):s===2&&oNe(e,t,n,i,o,r):JI(c_(e),t,n,i,o,r,1);break}}}function tNe(e){let t=e.prev,n=e,i=e.next;if(Fr(t,n,i)>=0)return!1;let o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,d=i.y,u=or?o>s?o:s:r>s?r:s,g=a>c?a>d?a:d:c>d?c:d,f=i.next;for(;f!==t;){if(f.x>=u&&f.x<=p&&f.y>=m&&f.y<=g&&ZC(o,a,r,c,s,d,f.x,f.y)&&Fr(f.prev,f,f.next)>=0)return!1;f=f.next}return!0}function nNe(e,t,n,i){let o=e.prev,r=e,s=e.next;if(Fr(o,r,s)>=0)return!1;let a=o.x,c=r.x,d=s.x,u=o.y,m=r.y,p=s.y,g=ac?a>d?a:d:c>d?c:d,_=u>m?u>p?u:p:m>p?m:p,C=BH(g,f,t,n,i),V=BH(x,_,t,n,i),L=e.prevZ,Z=e.nextZ;for(;L&&L.z>=C&&Z&&Z.z<=V;){if(L.x>=g&&L.x<=x&&L.y>=f&&L.y<=_&&L!==o&&L!==s&&ZC(a,u,c,m,d,p,L.x,L.y)&&Fr(L.prev,L,L.next)>=0||(L=L.prevZ,Z.x>=g&&Z.x<=x&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&ZC(a,u,c,m,d,p,Z.x,Z.y)&&Fr(Z.prev,Z,Z.next)>=0))return!1;Z=Z.nextZ}for(;L&&L.z>=C;){if(L.x>=g&&L.x<=x&&L.y>=f&&L.y<=_&&L!==o&&L!==s&&ZC(a,u,c,m,d,p,L.x,L.y)&&Fr(L.prev,L,L.next)>=0)return!1;L=L.prevZ}for(;Z&&Z.z<=V;){if(Z.x>=g&&Z.x<=x&&Z.y>=f&&Z.y<=_&&Z!==o&&Z!==s&&ZC(a,u,c,m,d,p,Z.x,Z.y)&&Fr(Z.prev,Z,Z.next)>=0)return!1;Z=Z.nextZ}return!0}function iNe(e,t){let n=e;do{let i=n.prev,o=n.next.next;!Z5(i,o)&&Tre(i,n,n.next,o)&&QI(i,o)&&QI(o,i)&&(t.push(i.i,n.i,o.i),jI(n),jI(n.next),n=e=o),n=n.next}while(n!==e);return c_(n)}function oNe(e,t,n,i,o,r){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&hNe(s,a)){let c=Sre(s,a);s=c_(s,s.next),c=c_(c,c.next),JI(s,t,n,i,o,r,0),JI(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function rNe(e,t,n,i){let o=[];for(let r=0,s=t.length;r=n.next.y&&n.next.y!==n.y){let m=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(m<=i&&m>r&&(r=m,s=n.x=n.x&&n.x>=c&&i!==n.x&&ZC(os.x||n.x===s.x&&lNe(s,n)))&&(s=n,u=m)}n=n.next}while(n!==a);return s}function lNe(e,t){return Fr(e.prev,e,t.prev)<0&&Fr(t.next,e,e.next)<0}function dNe(e,t,n,i){let o=e;do o.z===0&&(o.z=BH(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,uNe(o)}function uNe(e){let t,n=1;do{let i=e,o;e=null;let r=null;for(t=0;i;){t++;let s=i,a=0;for(let d=0;d0||c>0&&s;)a!==0&&(c===0||!s||i.z<=s.z)?(o=i,i=i.nextZ,a--):(o=s,s=s.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;i=s}r.nextZ=null,n*=2}while(t>1);return e}function BH(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function mNe(e){let t=e,n=e;do(t.x=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function hNe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!fNe(e,t)&&(QI(e,t)&&QI(t,e)&&pNe(e,t)&&(Fr(e.prev,e,t.prev)||Fr(e,t.prev,t))||Z5(e,t)&&Fr(e.prev,e,e.next)>0&&Fr(t.prev,t,t.next)>0)}function Fr(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function Z5(e,t){return e.x===t.x&&e.y===t.y}function Tre(e,t,n,i){let o=R5(Fr(e,t,n)),r=R5(Fr(e,t,i)),s=R5(Fr(n,i,e)),a=R5(Fr(n,i,t));return!!(o!==r&&s!==a||o===0&&L5(e,n,t)||r===0&&L5(e,i,t)||s===0&&L5(n,e,i)||a===0&&L5(n,t,i))}function L5(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function R5(e){return e>0?1:e<0?-1:0}function fNe(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&Tre(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function QI(e,t){return Fr(e.prev,e,e.next)<0?Fr(e,t,e.next)>=0&&Fr(e,e.prev,t)>=0:Fr(e,t,e.prev)<0||Fr(e,e.next,t)<0}function pNe(e,t){let n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function Sre(e,t){let n=OH(e.i,e.x,e.y),i=OH(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function xre(e,t,n,i){let o=OH(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function jI(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function OH(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function bNe(e,t,n,i){let o=0;for(let r=t,s=n-i;r0?ds.COUNTER_CLOCKWISE:ds.CLOCKWISE};ag.triangulate=function(e,t){let n=D.packArray(e);return YH(n,t,2)};var Rre=new h,Zre=new h,Gre=new h,Cre=new h,Vre=new h,Lre=new h,zp=new h,Ere=new D,Ire=new D,Xre=new D,GC=new D;ag.computeSubdivision=function(e,t,n,i,o){o=y(o,W.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,d=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let L=s.pop(),Z=s.pop(),G=s.pop(),I=h.fromArray(d,G*3,Rre),v=h.fromArray(d,Z*3,Zre),P=h.fromArray(d,L*3,Gre),w,F,b;r&&(w=D.fromArray(u,G*2,Ere),F=D.fromArray(u,Z*2,Ire),b=D.fromArray(u,L*2,Xre));let R=h.multiplyByScalar(h.normalize(I,Cre),x,Cre),E=h.multiplyByScalar(h.normalize(v,Vre),x,Vre),X=h.multiplyByScalar(h.normalize(P,Lre),x,Lre),A=h.magnitudeSquared(h.subtract(R,E,zp)),N=h.magnitudeSquared(h.subtract(E,X,zp)),O=h.magnitudeSquared(h.subtract(X,R,zp)),U=Math.max(A,N,O),Y,k,H;U>C?A===U?(Y=`${Math.min(G,Z)} ${Math.max(G,Z)}`,a=f[Y],l(a)||(k=h.add(I,v,zp),h.multiplyByScalar(k,.5,k),d.push(k.x,k.y,k.z),a=d.length/3-1,f[Y]=a,r&&(H=D.add(w,F,GC),D.multiplyByScalar(H,.5,H),u.push(H.x,H.y))),s.push(G,a,L),s.push(a,Z,L)):N===U?(Y=`${Math.min(Z,L)} ${Math.max(Z,L)}`,a=f[Y],l(a)||(k=h.add(v,P,zp),h.multiplyByScalar(k,.5,k),d.push(k.x,k.y,k.z),a=d.length/3-1,f[Y]=a,r&&(H=D.add(F,b,GC),D.multiplyByScalar(H,.5,H),u.push(H.x,H.y))),s.push(Z,a,G),s.push(a,L,G)):O===U&&(Y=`${Math.min(L,G)} ${Math.max(L,G)}`,a=f[Y],l(a)||(k=h.add(P,I,zp),h.multiplyByScalar(k,.5,k),d.push(k.x,k.y,k.z),a=d.length/3-1,f[Y]=a,r&&(H=D.add(b,w,GC),D.multiplyByScalar(H,.5,H),u.push(H.x,H.y))),s.push(L,a,Z),s.push(a,G,Z)):(g.push(G),g.push(Z),g.push(L))}let V={attributes:{position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:d})},indices:g,primitiveType:Fe.TRIANGLES};return r&&(V.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:u})),new ht(V)};var xNe=new he,_Ne=new he,TNe=new he,HH=new he;ag.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,W.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,d=new Array(c*3),u=new Array(c*2),m=0,p=0;for(a=0;a0;){let G=s.pop(),I=s.pop(),v=s.pop(),P=h.fromArray(d,v*3,Rre),w=h.fromArray(d,I*3,Zre),F=h.fromArray(d,G*3,Gre),b,R,E;r&&(b=D.fromArray(u,v*2,Ere),R=D.fromArray(u,I*2,Ire),E=D.fromArray(u,G*2,Xre));let X=e.cartesianToCartographic(P,xNe),A=e.cartesianToCartographic(w,_Ne),N=e.cartesianToCartographic(F,TNe);C.setEndPoints(X,A);let O=C.surfaceDistance;V.setEndPoints(A,N);let U=V.surfaceDistance;L.setEndPoints(N,X);let Y=L.surfaceDistance,k=Math.max(O,U,Y),H,J,te,z,q;k>_?O===k?(H=`${Math.min(v,I)} ${Math.max(v,I)}`,a=f[H],l(a)||(J=C.interpolateUsingFraction(.5,HH),te=(X.height+A.height)*.5,z=h.fromRadians(J.longitude,J.latitude,te,e,zp),d.push(z.x,z.y,z.z),a=d.length/3-1,f[H]=a,r&&(q=D.add(b,R,GC),D.multiplyByScalar(q,.5,q),u.push(q.x,q.y))),s.push(v,a,G),s.push(a,I,G)):U===k?(H=`${Math.min(I,G)} ${Math.max(I,G)}`,a=f[H],l(a)||(J=V.interpolateUsingFraction(.5,HH),te=(A.height+N.height)*.5,z=h.fromRadians(J.longitude,J.latitude,te,e,zp),d.push(z.x,z.y,z.z),a=d.length/3-1,f[H]=a,r&&(q=D.add(R,E,GC),D.multiplyByScalar(q,.5,q),u.push(q.x,q.y))),s.push(I,a,v),s.push(a,G,v)):Y===k&&(H=`${Math.min(G,v)} ${Math.max(G,v)}`,a=f[H],l(a)||(J=L.interpolateUsingFraction(.5,HH),te=(N.height+X.height)*.5,z=h.fromRadians(J.longitude,J.latitude,te,e,zp),d.push(z.x,z.y,z.z),a=d.length/3-1,f[H]=a,r&&(q=D.add(E,b,GC),D.multiplyByScalar(q,.5,q),u.push(q.x,q.y))),s.push(G,a,I),s.push(a,v,I)):(g.push(v),g.push(I),g.push(G))}let Z={attributes:{position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:d})},indices:g,primitiveType:Fe.TRIANGLES};return r&&(Z.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:u})),new ht(Z)};ag.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ne.default);let o=gNe,r=yNe;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;a10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};cg.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};cg.prototype.contains=function(e){return this._array.indexOf(e)!==-1};cg.prototype.clear=function(){this._array.length=this._offset=this._length=0};cg.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var lg=cg;var qo={};qo.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let d=0;d0?new Array(o):void 0;for(let a=0;aW.PI){let c=s;s=a,a=c}if(!(r.longitudea))return n.cartographicToCartesian(r)}function XNe(e,t,n,i){if(i===nn.RHUMB)return INe(e,t,n);let o=qn.lineSegmentPlane(e,t,ln.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var WNe=new he;function PNe(e,t,n){let i=[],o,r,s,a,c,d=0;for(;dt.cartesianToCartographic(m,WNe).longitude;if(s===0)i.push({position:d,type:s,visited:!1,next:a,theta:u(o)});else if(a!==0){if(c=XNe(o,r,t,n),++d,!l(c))continue;e.splice(d,0,c),i.push({position:d,type:s,visited:!1,next:a,theta:u(c)})}++d}return i}function wre(e,t,n,i,o,r,s){let a=[],c=r,d=m=>p=>p.position===m,u=[];do{let m=n[c];a.push(m);let p=i.findIndex(d(c)),g=i[p];if(!l(g)){++c;continue}let{visited:f,type:x,next:_}=g;if(g.visited=!0,x===0){if(_===0){let Z=i[p-(s?1:-1)];if(Z?.position===c+1)Z.visited=!0;else{++c;continue}}if(!f&&s&&_>0||r===c&&!s&&_<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}f||u.push(c);let V=p+(s?1:-1),L=i[V];if(!l(L)){++c;continue}c=L.position}while(c=0&&c!==r&&a.lengthd.theta-u.theta);let c=s[0].z>=0;o=wre(i,o,s,a,1,0,c)}return i};qo.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new lg;c.enqueue(e);let d=l(r);for(;c.length!==0;){let u=c.dequeue(),m=u.positions,p=u.holes,g,f;if(i)for(f=m.length,g=0;g1){for(let v of I)c.enqueue(new Ia(v,p));continue}}let V=m.slice(),L=l(p)?p.length:0,Z=[],G;for(g=0;gMath.PI&&(e-=W.TWO_PI),e}}});var EC=new he,kNe=new h;Ar.prototype.getLatitude=function(e){l(e)||(e=ne.default),EC.latitude=this.conformalLatitude,EC.longitude=this.longitude,EC.height=0;let t=this.ellipsoid.cartographicToCartesian(EC,kNe);return e.cartesianToCartographic(t,EC),EC.latitude};var UNe=new pn,DNe=new h,BNe=new h;Ar.fromCartesian=function(e,t){let n=W.signNotZero(e.z),i=Ar.NORTH_POLE_TANGENT_PLANE,o=Ar.SOUTH_POLE;n<0&&(i=Ar.SOUTH_POLE_TANGENT_PLANE,o=Ar.NORTH_POLE);let r=UNe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,DNe),h.normalize(r.direction,r.direction);let s=qn.rayPlane(r,i.plane,BNe),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),d=n*h.dot(i.yAxis,a);return l(t)?(t.position=new D(c,d),t.tangentPlane=i,t):new Ar(new D(c,d),i)};Ar.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i=0?s:s+W.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),d=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==nn.RHUMB){let p=D.subtract(t.position,e.position,a5e),g=D.dot(t.position,p)/D.dot(p,p);if(g>0&&g<1){let f=D.add(t.position,D.multiplyByScalar(p,-g,p),c5e),x=cc.clone(t,l5e);x.position=f;let _=x.getLatitude(n);r.south=Math.min(r.south,_),r.north=Math.max(r.north,_),Math.abs(c)>Math.abs(_)&&(d=_)}}let u=t.x*e.y-e.x*t.y,m=Math.sign(u);m!==0&&(m*=D.angleBetween(t.position,e.position)),d>=0&&(o.northAngle+=m),d<=0&&(o.southAngle+=m)}var Ure=new cc,d5e=new cc,Cu={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Vu.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new ae),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,Cu.northAngle=0,Cu.southAngle=0,Cu.westOverIdl=Number.POSITIVE_INFINITY,Cu.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=cc.fromCartesian(e[0],d5e);for(let s=1;sCu.eastOverIdl-Cu.westOverIdl&&(i.west=Cu.westOverIdl,i.east=Cu.eastOverIdl,i.east>W.PI&&(i.east=i.east-W.TWO_PI),i.west>W.PI&&(i.west=i.west-W.TWO_PI)),W.equalsEpsilon(Math.abs(Cu.northAngle),W.TWO_PI,W.EPSILON10)&&(i.north=W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),W.equalsEpsilon(Math.abs(Cu.southAngle),W.TWO_PI,W.EPSILON10)&&(i.south=-W.PI_OVER_TWO,i.east=W.PI,i.west=-W.PI),i};var u5e=new cc;function m5e(e,t,n){return e.height>=W.PI||e.width>=W.PI?cc.fromCartesian(t[0],u5e).tangentPlane:Kr.fromPoints(t,n)}var Dre=new he;function h5e(e,t,n){return(i,o)=>{if(e.height>=W.PI||e.width>=W.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s=W.PI||e.width>=W.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Dre);return l(r)||(r=new D),r.x=s.longitude/W.PI,r.y=s.latitude/W.PI_OVER_TWO,r}return cc.fromCartesian(o,r)};let i=Kr.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function p5e(e,t,n,i){return(o,r)=>!i&&(e.height>=W.PI_OVER_TWO||e.width>=2*W.PI_OVER_THREE)?Dn.splitPolygonsOnEquator(o,t,n,r):o}function b5e(e,t,n,i){if(t.height>=W.PI||t.width>=W.PI)return Ke.fromRectangle(t,void 0,Are);let o=e,r=Kr.fromPoints(o,n);return Dn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,Are)}Vu.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,d=e._arcType,u=e._textureCoordinates,m=l(u),p=r.positions;if(p.length<3)return;let g=e.rectangle,f=Dn.polygonsFromHierarchy(r,m,h5e(g,p,n),!s,n,p5e(g,n,d,s)),x=f.hierarchy,_=f.polygons,C=function(X){return X},V=m?Dn.polygonsFromHierarchy(u,!0,C,!1,n).polygons:void 0;if(x.length===0)return;let L=x[0].outerRing,Z=b5e(L,g,n,o),G=[],I=e._height,v=e._extrudedHeight,P=e._perPositionHeightExtrude||!W.equalsEpsilon(I,v,0,W.EPSILON2),w={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:m5e(g,L,n).plane.normal,projectTo2d:f5e(g,L,n),boundingRectangle:Z,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:d},F;if(P)for(w.extrude=!0,w.top=a,w.bottom=c,w.shadowVolume=e._shadowVolume,w.offsetAttribute=e._offsetAttribute,F=0;F<_.length;F++){let X=i5e(n,_[F],m?V[F]:void 0,i,x[F],s,a,c,t,d),A;a&&c?(A=X.topAndBottom,w.geometry=Dn.scaleToGeodeticHeightExtruded(A.geometry,I,v,n,s)):a?(A=X.topAndBottom,A.geometry.attributes.position.values=si.scaleToGeodeticHeight(A.geometry.attributes.position.values,I,n,!s),w.geometry=A.geometry):c&&(A=X.topAndBottom,A.geometry.attributes.position.values=si.scaleToGeodeticHeight(A.geometry.attributes.position.values,v,n,!0),w.geometry=A.geometry),(a||c)&&(w.wall=!1,A.geometry=zH(w),G.push(A));let N=X.walls;w.wall=!0;for(let O=0;O 2) { + dimension = ceil(log2(float(u_extentsLength))); + } + int regionIndex = getPolygonIndex(dimension, v_textureCoordinates); + + for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) { + ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex); + int positionsLength = positionsLengthAndExtents.x; + int polygonExtentsIndex = positionsLengthAndExtents.y; + lastPolygonIndex += 1; + + // Only compute signed distance for the relevant part of the atlas + if (polygonExtentsIndex == regionIndex) { + float clipAmount = czm_infinity; + vec4 extents = getExtents(polygonExtentsIndex); + vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension; + vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); + float s = 1.0; + + // Check each edge for absolute distance + for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) { + vec2 a = getPolygonPosition(lastPolygonIndex + i); + vec2 b = getPolygonPosition(lastPolygonIndex + j); + + vec2 ab = b - a; + vec2 pa = p - a; + float t = dot(pa, ab) / dot(ab, ab); + t = clamp(t, 0.0, 1.0); + + vec2 pq = pa - t * ab; + float d = length(pq); + + // Inside / outside computation to determine sign + bvec3 cond = bvec3(p.y >= a.y, + p.y < b.y, + ab.x * pa.y > ab.y * pa.x); + if (all(cond) || all(not(cond))) s = -s; + if (abs(d) < abs(clipAmount)) { + clipAmount = d; + } + } + + // Normalize the range to [0,1] + vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5; + // In the case where we've iterated through multiple polygons, take the minimum + out_FragColor = min(out_FragColor, result); + } + + lastPolygonIndex += positionsLength; + } +}`;function qr(e){e=y(e,y.EMPTY_OBJECT),this._polygons=[],this._totalPositions=0,this.enabled=y(e.enabled,!0),this.inverse=y(e.inverse,!1),this.polygonAdded=new be,this.polygonRemoved=new be,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;iXC.equals(t,e))};qr.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>XC.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};var x5e=new ae;function _5e(e){let t=[],n=[],i=e.length;for(let r=0;rae.union(e[_].computeSphericalExtents(x5e),x,x),a),t[p]=void 0,n[p]=void 0,c=Math.max(a.height*2.5,.001),d=Math.max(a.width*2.5,.001),u=ae.clone(a,u),u.south-=c,u.west-=d,u.north+=c,u.east+=d,u.south=Math.max(u.south,-Math.PI),u.west=Math.max(u.west,-Math.PI),u.north=Math.min(u.north,Math.PI),u.east=Math.min(u.east,Math.PI),p=-1}}t.push(u),n.push(m)}let o=new Map;return n.filter(l).forEach((r,s)=>r.forEach(a=>o.set(a,s))),{extentsList:t.filter(l),extentsIndexByPolygon:o}}qr.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;ns+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s{e._signedDistanceComputeCommand=void 0}})}var Ore=new ae,C5e=new ae;qr.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=Jt.OUTSIDE;this.inverse&&(o=Jt.INSIDE);for(let r=0;r= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var u0n=T(S(),1),eX=`uniform samplerCube u_radianceMap; + +in vec2 v_textureCoordinates; + + +const float twoSqrtPi = 2.0 * sqrt(czm_pi); + +// Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf +float computeShBasis(int index, vec3 s) { + if (index == 0) { // l = 0, m = 0 + return 1.0 / twoSqrtPi; + } + + if (index == 1) { // l = 1, m = -1 + return -sqrt(3.0) * s.y / twoSqrtPi; + } + + if (index == 2) { // l = 1, m = 0 + return sqrt(3.0) * s.z / twoSqrtPi; + } + + if (index == 3) { // l = 1, m = 1 + return -sqrt(3.0) * s.x / twoSqrtPi; + } + + if (index == 4) { // l = 2, m = -2 + return sqrt(15.0) * s.y * s.x / twoSqrtPi; + } + + if (index == 5) { // l = 2, m = -1 + return -sqrt(15.0) * s.y * s.z / twoSqrtPi; + } + + if (index == 6) { // l = 2, m = 0 + return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi; + } + + if (index == 7) { // l = 2, m = 1 + return -sqrt(15.0) * s.x * s.z / twoSqrtPi; + } + + if (index == 8) { // l = 2, m = 2 + return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi; + } + + return 0.0; +} + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +// Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics +const int samples = 256; +const float solidAngle = 1.0 / float(samples); + +void main() { + // Get the current coefficient based on the uv + vec2 uv = v_textureCoordinates.xy * 3.0; + int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x)); + + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + float phi = czm_twoPi * xi.x; + float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi))); + + // Generate the spherical harmonics basis from the direction + float Ylm = computeShBasis(coefficientIndex, direction); + + vec3 lookupDirection = -direction.xyz; + lookupDirection.z = -lookupDirection.z; + + vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0); + + // Use the relevant function for this coefficient + out_FragColor += Ylm * color * solidAngle * sinTheta; + } + +} +`;var h0n=T(S(),1),tX=`precision highp float; + +in vec2 v_textureCoordinates; + +uniform vec3 u_faceDirection; // Current cubemap face +uniform vec3 u_positionWC; +uniform mat4 u_enuToFixedFrame; +uniform vec4 u_brightnessSaturationGammaIntensity; +uniform vec4 u_groundColor; // alpha component represent albedo + +vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv * 2.0 - 1.0; + + if (faceDir.x != 0.0) { + return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0); + } else if (faceDir.y != 0.0) { + return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0); + } else { + return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); + } +} + +void main() { + float height = length(u_positionWC); + float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y; + float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0); + + // Scale the position to ensure the sky color is present, even when underground. + vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius); + + float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x; + float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius; + + vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz; + vec3 normalizedDirection = normalize(direction); + + czm_ray ray = czm_ray(positionWC, normalizedDirection); + czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius); + if (!czm_isEmpty(intersection)) { + intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii); + } + + bool onEllipsoid = intersection.start >= 0.0; + float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius); + + // Compute sky color for each position on a sphere at radius centered around the provided position's origin + vec3 skyPositionWC = positionWC + normalizedDirection * rayLength; + + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum)); + vec3 mieColor; + vec3 rayleighColor; + float opacity; + czm_computeScattering( + ray, + rayLength, + lightDirectionWC, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity); + +#ifdef ATMOSPHERE_COLOR_CORRECT + const bool ignoreBlackPixels = true; + atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels); +#endif + + vec3 lookupDirection = -normalizedDirection; + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + lookupDirection.x = -lookupDirection.x; + lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection); + lookupDirection.x = -lookupDirection.x; + + // Values outside the atmopshere are rendered as black, when they should be treated as transparent + float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0); + skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent + + // Blend starmap with atmopshere scattering + float intensity = u_brightnessSaturationGammaIntensity.w; + vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection); + vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a); + vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0); + + // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height + vec3 up = normalize(positionWC); + float occlusion = max(dot(lightDirectionWC, up), 0.05); + vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0); + vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0)); + + vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor); + + float brightness = u_brightnessSaturationGammaIntensity.x; + float saturation = u_brightnessSaturationGammaIntensity.y; + float gamma = u_brightnessSaturationGammaIntensity.z; + +#ifdef ENVIRONMENT_COLOR_CORRECT + color.rgb = mix(vec3(0.0), color.rgb, brightness); + color.rgb = czm_saturation(color.rgb, saturation); +#endif + color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0. + color.rgb = czm_gammaCorrect(color.rgb); + + out_FragColor = color; +} +`;var p0n=T(S(),1),nX=`precision highp float; + +in vec3 v_textureCoordinates; + +uniform float u_roughness; +uniform samplerCube u_radianceTexture; +uniform vec3 u_faceDirection; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = czm_twoPi * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +// Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses +const int samples = 128; + +void main() { + vec3 normal = u_faceDirection; + vec3 V = normalize(v_textureCoordinates); + float roughness = u_roughness; + + vec4 color = vec4(0.0); + float weight = 0.0; + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + vec3 H = importanceSampleGGX(xi, roughness, V); + vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector + + float NdotL = max(dot(V, L), 0.0); + if (NdotL > 0.0) { + color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL; + weight += NdotL; + } + } + out_FragColor = color / weight; +} +`;var g0n=T(S(),1),iX=`in vec3 position; +out vec3 v_textureCoordinates; + +uniform vec3 u_faceDirection; + +vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv; + + if (faceDir.x != 0.0) { + return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x); + } else if (faceDir.y != 0.0) { + return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y); + } else { + return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); + } +} + +void main() +{ + v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection); + v_textureCoordinates.y = -v_textureCoordinates.y; + v_textureCoordinates.z = -v_textureCoordinates.z; + gl_Position = vec4(position, 1.0); +} +`;function Qp(e){this._position=void 0,this._radianceMapDirty=!1,this._radianceCommandsDirty=!1,this._convolutionsCommandsDirty=!1,this._irradianceCommandDirty=!1,this._irradianceTextureDirty=!1,this._sphericalHarmonicCoefficientsDirty=!1,this._shouldRegenerateShaders=!1,e=y(e,y.EMPTY_OBJECT);let t=y(e.mipmapLevels,10);this._mipmapLevels=t,this._radianceMapComputeCommands=new Array(6),this._convolutionComputeCommands=new Array((t-1)*6),this._irradianceComputeCommand=void 0,this._radianceMapFS=void 0,this._irradianceMapFS=void 0,this._convolveSP=void 0,this._va=void 0,this._radianceMapTextures=new Array(6),this._specularMapTextures=new Array((t-1)*6),this._radianceCubeMap=void 0,this._irradianceMapTexture=void 0,this._sphericalHarmonicCoefficients=new Array(9),this._lastTime=new j;let n=Math.pow(2,t-1);this._textureDimensions=new D(n,n),this._radiiAndDynamicAtmosphereColor=new h,this._sceneEnvironmentMap=void 0,this._backgroundColor=void 0,this._owner=void 0,this.enabled=y(e.enabled,!0),this.shouldUpdate=!0,this.maximumSecondsDifference=y(e.maximumSecondsDifference,60*60),this.maximumPositionEpsilon=y(e.maximumPositionEpsilon,1e3),this.atmosphereScatteringIntensity=y(e.atmosphereScatteringIntensity,2),this.gamma=y(e.gamma,1),this.brightness=y(e.brightness,1),this.saturation=y(e.saturation,1),this.groundColor=y(e.groundColor,Qp.AVERAGE_EARTH_GROUND_COLOR),this.groundAlbedo=y(e.groundAlbedo,.31)}Object.defineProperties(Qp.prototype,{owner:{get:function(){return this._owner}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},position:{get:function(){return this._position},set:function(e){h.equalsEpsilon(e,this._position,0,this.maximumPositionEpsilon)||(this._position=h.clone(e,this._position),this.reset())}},radianceCubeMap:{get:function(){return this._radianceCubeMap}},maximumMipmapLevel:{get:function(){return this._mipmapLevels}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}}});Qp.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};Qp.prototype.reset=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;ts,u_enuToFixedFrame:()=>c,u_faceDirection:()=>yr.getDirection(m,Hre),u_positionWC:()=>r,u_brightnessSaturationGammaIntensity:()=>d,u_groundColor:()=>e.groundColor.withAlpha(e.groundAlbedo,E5e)},persists:!0,owner:e,postExecute:()=>{let x=e._radianceMapComputeCommands;if(!l(x[g]))return;x[g]=void 0;let _=new Wr({context:n,colorTextures:[e._radianceMapTextures[g]],destroyAttachments:!1});_._bind(),e._radianceCubeMap[m].copyFromFramebuffer(),_._unBind(),_.destroy(),x.some(l)||(e._convolutionsCommandsDirty=!0,e._shouldRegenerateShaders=!0)}});t.commandList.push(f),e._radianceMapComputeCommands[u]=f,u++}e._radianceCommandsDirty=!1}}function X5e(e,t){let n=e._radianceCubeMap;n.generateMipmap();let i=e._mipmapLevels,o=e._textureDimensions,r=o.x/2,s=o.y/2,a=t.context,c=0,d=(m,p,g,f)=>()=>{let x=e._convolutionComputeCommands;l(x[m])&&(x[m]=void 0,n.copyFace(t,p,g,f),c++,c===e._specularMapTextures.length&&(e._irradianceCommandDirty=!0,n.sampler=new en({minificationFilter:$t.LINEAR_MIPMAP_LINEAR}),e._shouldRegenerateShaders=!0))},u=0;for(let m=1;mm/(i-1),u_radianceTexture:()=>n,u_faceDirection:()=>yr.getDirection(p,Hre)},postExecute:d(u,g,p,m)});e._convolutionComputeCommands[u]=_,t.commandList.push(_),++u}r/=2,s/=2}}var zre=new D(3,3);function W5e(e,t){let n=t.context,i=zre,o=e._irradianceMapTexture;l(o)||(o=new Pt({context:n,width:i.x,height:i.y,pixelDatatype:qe.FLOAT,pixelFormat:ot.RGBA}),e._irradianceMapTexture=o);let r=e._irradianceMapFS;l(r)||(r=new De({sources:[eX]}),e._irradianceMapFS=r);let s=new Xc({fragmentShaderSource:r,outputTexture:o,uniformMap:{u_radianceMap:()=>e._radianceCubeMap},postExecute:()=>{l(e._irradianceComputeCommand)&&(e._irradianceTextureDirty=!1,e._irradianceComputeCommand=void 0,e._sphericalHarmonicCoefficientsDirty=!0)}});e._irradianceComputeCommand=s,t.commandList.push(s),e._irradianceTextureDirty=!0}function P5e(e,t){let n=t.context,i=new Wr({context:n,colorTextures:[e._irradianceMapTexture],destroyAttachments:!1}),o=zre,r=n.readPixels({x:0,y:0,width:o.x,height:o.y,framebuffer:i});for(let s=0;s<9;++s)e._sphericalHarmonicCoefficients[s]=h.unpack(r,s*4),h.multiplyByScalar(e._sphericalHarmonicCoefficients[s],e.atmosphereScatteringIntensity,e._sphericalHarmonicCoefficients[s]);i.destroy(),e._shouldRegenerateShaders=!0}Qp.prototype.update=function(e){let t=e.mode;if(!this.enabled||!this.shouldUpdate||!l(this._position)||t===oe.MORPHING){this._shouldRegenerateShaders=!1;return}let n=e.atmosphere.dynamicLighting;if((R5e(this,e)||n===Jp.SUNLIGHT&&!j.equalsEpsilon(e.time,this._lastTime,this.maximumSecondsDifference))&&(this.reset(),this._lastTime=j.clone(e.time,this._lastTime)),this._radianceMapDirty&&(I5e(this,e),this._radianceMapDirty=!1),this._convolutionsCommandsDirty&&(X5e(this,e),this._convolutionsCommandsDirty=!1),this._irradianceCommandDirty&&(W5e(this,e),this._irradianceCommandDirty=!1),this._irradianceTextureDirty){this._shouldRegenerateShaders=!1;return}if(this._sphericalHarmonicCoefficientsDirty){P5e(this,e),this._sphericalHarmonicCoefficientsDirty=!1;return}this._shouldRegenerateShaders=!1};Qp.prototype.isDestroyed=function(){return!1};Qp.prototype.destroy=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t4?(St(`Property texture property ${e.id} is an array of length ${e.arrayLength}, but may have at most a length of 4`),!1):t!==Rt.SCALAR?(St(`Property texture property ${e.id} is an array of type ${t}, but only SCALAR is supported`),!1):n!==Ht.UINT8?(St(`Property texture property ${e.id} is an array with component type ${n}, but only UINT8 is supported`),!1):!0:Rt.isVectorType(t)||t===Rt.SCALAR?n!==Ht.UINT8?(St(`Property texture property ${e.id} has component type ${n}, but only UINT8 is supported`),!1):!0:(St(`Property texture property ${e.id} has an unsupported type`),!1)};var F5e=[void 0,"float","vec2","vec3","vec4"],A5e=[void 0,"int","ivec2","ivec3","ivec4"];sX.prototype.getGlslType=function(){let e=this._classProperty,t=Rt.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?F5e[t]:A5e[t]};sX.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function M5e(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var aX=sX;function QH(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new aX({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(QH.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});QH.prototype.getProperty=function(e){return this._properties[e]};var $p=QH;var Wgn=T(S(),1);var Zgn=T(S(),1);function Jre(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||l(i)||l(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Jre.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var cX=Jre;function jH(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new cX({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(jH.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});jH.prototype.getProperty=function(e){return this._properties[e]};var m_=jH;var Fgn=T(S(),1);function lX(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(lX.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!l(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n=r;)C=o[C-r];o.push(C),s[x]=_}_>nke&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):_>ike&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=_,t[a]=_):x===d?(d=_,t[a+1]=_):(u=_,t[a+2]=_),x=jre(i,c,d,u,p,g,f)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function jre(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,d=0,u=qH(e,t,a,c,d);if(u===0)return t;let m=0,p=o?1:0,g=r?1:0,f=qH(e,n,m,p,g);if(f===0)return n;let x=s?1:0,_=0,C=r?1:0,V=qH(e,i,x,_,C);if(V===0)return i;let L=u&f&V,Z,G,I;if(L&1)Z=0,G=1,I=2;else if(L&2)Z=0,I=1,G=2;else if(L&4)G=0,Z=1,I=2;else if(L&8)G=0,I=1,Z=2;else if(L&16)I=0,Z=1,G=2;else if(L&32)I=0,G=1,Z=2;else{let F=$H(u),b=$H(f),R=$H(V);return F>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}W5.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a1;)i>>=1,r.push(qre(i));let s=new Pt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:ot.LUMINANCE,sampler:new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR_MIPMAP_LINEAR,magnificationFilter:hi.LINEAR})});return t.outlineTexture=s,s};function qre(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function $re(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=Po.FAILED;let o=this._processError;this._processError=void 0,v5(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Po.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Po.FAILED,v5(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Po.FAILED,v5(this,o)}return this._incrementallyLoadTextures?n:n&&i};function Bke(e,t,n,i,o,r,s){let a=e.gltfJson,d=a.accessors[t].bufferView;return Ci.getVertexBufferLoader({gltf:a,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,bufferViewId:d,draco:i,attributeSemantic:n,accessorId:t,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function Oke(e,t,n,i,o,r){return Ci.getIndexBufferLoader({gltf:e.gltfJson,accessorId:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:r,draco:n,asynchronous:e._asynchronous,loadBuffer:i,loadTypedArray:o})}function Yke(e,t){let n=Ci.getBufferViewLoader({gltf:e.gltfJson,bufferViewId:t,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(n),n}function hse(e,t,n){let i=t.byteOffset,o=Xl(e,t),r=t.count,s=gd(t.type),a=t.componentType,c=Q.getSizeInBytes(a),d=c*s,u=r*s;if(o===d)return n=new Uint8Array(n),Q.createArrayBufferView(a,n.buffer,n.byteOffset+i,u);let m=Q.createTypedArray(a,u),p=new DataView(n.buffer),g=new Array(s),f=Hp(t.componentType);i=n.byteOffset+i;for(let x=0;x{l(i)&&l(i.attributes)&&l(i.attributes[u])?iUe(x,_,o,r):oUe(a,c,x,_,o,r)},x}function bse(e,t,n,i,o,r,s){let a=n.modelSemantic,c=a===Vt.POSITION,d=a===Vt.FEATURE_ID,u=c&&!o&&e._loadAttributesFor2D&&!s.scene3DOnly,m=c&&e._enablePick&&!s.context.webgl2,p=e._loadForClassification&&d,g=e._loadAttributesAsTypedArray,f=!g,x=g||u||m||p,V=pse(e,t,n,i,r?!1:f,r?!0:x,s),L=new f_.AttributeLoadPlan(V);return L.loadBuffer=f,L.loadTypedArray=x,L}function rUe(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=nz(e,$r,i),d=c.modelSemantic,u=d===$r.TRANSLATION||d===$r.ROTATION||d===$r.SCALE,m=d===$r.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&u||!o.context.instancedArrays,g=e._enablePick&&!o.context.webgl2,f=!p,x=e._loadAttributesFor2D&&!o.scene3DOnly;return pse(e,t,c,void 0,f,p||m&&(!a||x||g),o)}function sUe(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView;if(!l(n)&&!l(a))return;let c=new yke;c.count=s.count;let d=e._loadAttributesAsTypedArray,u=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,m=e._loadForClassification&&i,g=!d,f=d||u||m,C=Oke(e,t,n,o?!1:g,o?!0:f,r),V=e._geometryLoaders.length;e._geometryLoaders.push(C);let L=C.load();e._loaderPromises.push(L),e._geometryCallbacks[V]=()=>{c.indexDatatype=C.indexDatatype,c.buffer=C.buffer,c.typedArray=C.typedArray};let Z=new f_.IndicesLoadPlan(c);return Z.loadBuffer=g,Z.loadTypedArray=f,Z}function Hc(e,t,n,i){let o=e.gltfJson,r=Wl.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=Ci.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=Wl.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let d=s.load().catch(u=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw u;e._textureState=Po.FAILED,e._textureErrors.push(u)}});return e._texturesPromises.push(d),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function aUe(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new wke;return l(i)&&(c.diffuseTexture=Hc(e,i,n)),l(o)&&(c.specularGlossinessTexture=Hc(e,o,n)),c.diffuseFactor=xd(se,r),c.specularFactor=xd(h,s),c.glossinessFactor=a,c}function cUe(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new vke;return l(i)&&(c.baseColorTexture=Hc(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Hc(e,o,n)),c.baseColorFactor=xd(se,r),c.metallicFactor=s,c.roughnessFactor=a,c}function lUe(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new Fke;return l(o)&&(a.specularTexture=Hc(e,o,n)),l(s)&&(a.specularColorTexture=Hc(e,s,n)),a.specularFactor=i,a.specularColorFactor=xd(h,r),a}function dUe(e,t,n){let{anisotropyStrength:i=ez.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=ez.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new ez;return l(r)&&(s.anisotropyTexture=Hc(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function uUe(e,t,n){let{clearcoatFactor:i=tz.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=tz.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new tz;return l(o)&&(c.clearcoatTexture=Hc(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Hc(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Hc(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function mUe(e,t,n){let i=new Ake,o=y(t.extensions,y.EMPTY_OBJECT),r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,d=t.pbrMetallicRoughness;return i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=aUe(e,r,n):(l(d)&&(i.metallicRoughness=cUe(e,d,n)),l(s)&&!i.unlit&&(i.specular=lUe(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=dUe(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=uUe(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Hc(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Hc(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Hc(e,t.occlusionTexture,n)),i.emissiveFactor=xd(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided,i}function gse(e,t){let n=new dse;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function yse(e,t,n,i){let o=new dse,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=fse(r.attribute),o.positionalLabel=i,o}function xse(e,t){let n=new mse;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function _se(e,t,n,i){let o=new mse,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function hUe(e,t,n,i){let o=new use;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Hc(e,r,n,en.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function fUe(e,t,n,i,o,r){let s=new use,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Hc(e,c,i,en.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function pUe(e,t,n,i,o){let r=new xke,s=void 0,a=!1;for(let c in t){if(!t.hasOwnProperty(c))continue;let d=t[c],u=nz(e,Vt,c),m=bse(e,d,u,s,a,n,o);r.attributes.push(m.attribute),i.attributePlans.push(m)}return r}function bUe(e,t,n,i){let o=new _ke,r=new f_(o);e._primitiveLoadPlans.push(r);let s=t.material;l(s)&&(o.material=mUe(e,e.gltfJson.materials[s],i));let a=y(t.extensions,y.EMPTY_OBJECT),c=!1,d=a.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(d)&&(c=!0,r.needsOutlines=!0,r.outlineIndices=gUe(e,d,r));let u=e._loadForClassification,m=a.KHR_draco_mesh_compression,p=!1,g=t.attributes;if(l(g))for(let G in g){if(!g.hasOwnProperty(G))continue;let I=g[G],v=nz(e,Vt,G),P=v.modelSemantic;if(u&&!nUe(P))continue;P===Vt.FEATURE_ID&&(p=!0);let w=bse(e,I,v,m,n,c,i);r.attributePlans.push(w),o.attributes.push(w.attribute)}let f=t.targets;if(l(f)&&!u)for(let G=0;Gn[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=w5(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(M.IDENTITY);return i}function GUe(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=ZUe(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r=s.clientWidth)d=!0;else{if(L.x>s.clientWidth*.5){a.width=L.x,c.frustum.right=p.x-C,mc=VX(r,n,c,mc),Pa.clipToGLWindowCoordinates(a,mc,oz),a.x+=L.x,c.position.x=-c.position.x;let Z=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-Z,mc=VX(r,n,c,mc),Pa.clipToGLWindowCoordinates(a,mc,rz)}else{a.x+=L.x,a.width-=L.x,c.frustum.left=-p.x-C,mc=VX(r,n,c,mc),Pa.clipToGLWindowCoordinates(a,mc,oz),a.x=a.x-a.width,c.position.x=-c.position.x;let Z=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-Z,mc=VX(r,n,c,mc),Pa.clipToGLWindowCoordinates(a,mc,rz)}h.clone(g,c.position),c.frustum=f.clone(),i=D.clone(oz,i),(i.x<0||i.x>s.clientWidth)&&(i.x=rz.x)}}if(o.mode!==oe.SCENE2D||d){if(mc=VX(r,n,c,mc),mc.z<0&&!(c.frustum instanceof an)&&!(c.frustum instanceof Pr))return;i=Pa.clipToGLWindowCoordinates(a,mc,i)}return i.y=s.clientHeight-i.y,i};Pa.worldToDrawingBufferCoordinates=function(e,t,n){if(n=Pa.worldToWindowCoordinates(e,t,n),!!l(n))return Pa.transformWindowToDrawingBuffer(e,n,n)};var nb=new h,iDe=new he;Pa.computeActualEllipsoidPosition=function(e,t,n){let i=e.mode;if(i===oe.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,iDe);if(!l(r))return;if(o.project(r,nb),i===oe.COLUMBUS_VIEW)return h.fromElements(nb.z,nb.x,nb.y,n);if(i===oe.SCENE2D)return h.fromElements(0,nb.x,nb.y,n);let s=e.morphTime;return h.fromElements(W.lerp(nb.z,t.x,s),W.lerp(nb.x,t.y,s),W.lerp(nb.y,t.z,s),n)};var Rse=new h,Zse=new h,Gse=new M;Pa.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,Rse),M.computeViewportTransformation(e,0,1,Gse),M.multiplyByPoint(Gse,Rse,Zse),D.fromCartesian3(Zse,n)};Pa.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return D.fromElements(t.x*o,t.y*r,n)};var oDe=new se,Ese=new se;Pa.drawingBufferToWorldCoordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,f=Math.pow(2,g)-1;n=c*(1-a/(f+a))/(c-a)}let d=e.view.passState.viewport,u=se.clone(se.UNIT_W,oDe);u.x=(t.x-d.x)/d.width*2-1,u.y=(t.y-d.y)/d.height*2-1,u.z=n*2-1,u.w=1;let m,p=e.camera.frustum;if(l(p.fovy)){m=M.multiplyByVector(r.inverseViewProjection,u,Ese);let g=1/m.w;h.multiplyByScalar(m,g,m)}else{let g=p.offCenterFrustum;l(g)&&(p=g),m=Ese,m.x=(u.x*(p.right-p.left)+p.left+p.right)*.5,m.y=(u.y*(p.top-p.bottom)+p.bottom+p.top)*.5,m.z=(u.z*(a-c)-a-c)*.5,m.w=1,m=M.multiplyByVector(r.inverseView,m,m)}return h.fromCartesian4(m,i)};var Mi=Pa;var wTn=T(S(),1);var H_n=T(S(),1);var FC={};FC._deprecationWarning=ls;var ib=Uint32Array.BYTES_PER_ELEMENT;FC.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=ib;let r=o.getUint32(t,!0);if(r!==1)throw new de(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=ib;let s=o.getUint32(t,!0);t+=ib;let a=o.getUint32(t,!0);t+=ib;let c=o.getUint32(t,!0);t+=ib;let d=o.getUint32(t,!0);t+=ib;let u=o.getUint32(t,!0);t+=ib;let m;d>=570425344?(t-=ib*2,m=a,d=c,u=0,a=0,c=0,FC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):u>=570425344&&(t-=ib,m=d,d=a,u=c,a=0,c=0,FC._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(m,0)}:(p=Wo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let f,x;d>0&&(f=Wo(i,t,d),t+=d,u>0&&(x=new Uint8Array(e,t,u),x=new Uint8Array(x),t+=u));let _=n+s-t;if(_===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,_):(FC._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+_))),{batchLength:m,featureTableJson:p,featureTableBinary:g,batchTableJson:f,batchTableBinary:x,gltf:C}};var LX=FC;var j_n=T(S(),1);function RX(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function Ise(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=Q.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function rDe(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=Q.createTypedArray(n,i),o[t]=r),r}RX.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,Q.UNSIGNED_INT),n=y(n,1),Ise(this,e,t,n,1,i.byteOffset)):i};RX.prototype.hasProperty=function(e){return l(this.json[e])};RX.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=Q.fromName(i.componentType)),Ise(this,e,t,n,this.featuresLength,i.byteOffset)):rDe(this,e,t,i)};RX.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a0&&(f=Wo(i,t,d),t+=d,u>0&&(x=new Uint8Array(e,t,u),x=new Uint8Array(x),t+=u));let _=n+s-t;if(_===0)throw new de("glTF byte length must be greater than 0.");let C;return t%4===0?C=new Uint8Array(e,t,_):(A5._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),C=new Uint8Array(i.subarray(t,t+_))),{gltfFormat:m,featureTableJson:p,featureTableBinary:g,batchTableJson:f,batchTableBinary:x,gltf:C}};var IX=A5;var rb={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},M5=Tn.Attribute,RDe=Tn.FeatureIdAttribute,Fse=Tn.Instances;function sb(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Xo.Y),d=y(e.forwardAxis,Xo.X),u=y(e.loadAttributesAsTypedArray,!1),m=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.enablePick,!1);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=d,this._loadAttributesAsTypedArray=u,this._loadIndicesForWireframe=m,this._loadPrimitiveOutline=p,this._enablePick=g,this._state=rb.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=M.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(sb.prototype=Object.create(Hi.prototype),sb.prototype.constructor=sb);Object.defineProperties(sb.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});sb.prototype.load=function(){if(l(this._promise))return this._promise;let e=IX.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Om(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new de("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);l(c)&&(this._transform=M.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let d={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let m=Zl(e.gltf);m=m.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:m});d.gltfResource=p,d.baseResource=p}else d.gltfResource=this._i3dmResource,d.typedArray=e.gltf;let u=new eb(d);return this._gltfLoader=u,this._state=rb.LOADING,this._promise=u.load().then(()=>{if(!this.isDestroyed())return this._state=rb.PROCESSING,this}).catch(m=>{if(!this.isDestroyed())throw ZDe(this,m)}),this._promise};function ZDe(e,t){return e.unload(),e._state=rb.FAILED,e.getError("Failed to load i3dm",t)}sb.prototype.process=function(e){if(this._state===rb.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===rb.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=M.multiplyTransformation(this._transform,i.transform,i.transform),IDe(this,i,e),GDe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=rb.READY,!0};function GDe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=ob({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new Yc({name:Am.BATCH_TABLE_CLASS_NAME,count:i});o=new Us({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var N5=new h,cz=new Array(4),EDe=new M;function IDe(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",Q.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,d=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),u=WDe(o,r),m;c&&(m=new Float32Array(4*r));let p;d&&(p=new Float32Array(3*r));let g=new Float32Array(r),f=h.unpackArray(u),x=new h,_=new h,C=new h,V=new h,L=new $,Z=new we,G=new Array(4),I=new h,v=new Array(3),P=new M;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let U=ce.fromPoints(f);for(i=0;i0&&(U.instances=O?XDe(w):w,O=!0)}}function XDe(e){let t=new Fse;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o=n[t]){if(t+1=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o=n[o]&&e=0&&!(e>=n[o]&&en&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};AC.prototype.clampTime=function(e){let t=this.times;return W.clamp(e,t[0],t[t.length-1])};var to=AC;function MC(e){this._value=e,this._valueType=to.getPointType(e)}Object.defineProperties(MC.prototype,{value:{get:function(){return this._value}}});MC.prototype.findTimeInterval=function(e){};MC.prototype.wrapTime=function(e){return 0};MC.prototype.clampTime=function(e){return 0};MC.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var WX=MC;var bCn=T(S(),1);var iCn=T(S(),1);function NC(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=to.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(NC.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});NC.prototype.findTimeInterval=to.prototype.findTimeInterval;NC.prototype.wrapTime=to.prototype.wrapTime;NC.prototype.clampTime=to.prototype.clampTime;NC.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var bg=NC;var sCn=T(S(),1);var Ase={};Ase.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var kC=Ase;var Mse=[],Nse=[],kse=[],Use=[];function ADe(e,t,n){let i=Mse,o=kse,r=Nse,s=Use;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new h),h.clone(t,c),a=1;a0&&e.afterRender.push(a._raiseStartEvent)),a.loop===vl.REPEAT)g=g-Math.floor(g);else if(a.loop===vl.MIRRORED_REPEAT){let C=Math.floor(g),V=g-C;g=C%2===1?1-V:V}a.reverse&&(g=1-g);let _=g*d*a.multiplier;_=W.clamp(_,a.localStartTime,a.localStopTime),a.animate(_),a.update.numberOfListeners>0&&(a._updateEventTime=_,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=Ym.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&k5.push(a))}}n=k5.length;for(let s=0;sW.EPSILON3}};var OX=Ose;var j1n=T(S(),1);var B1n=T(S(),1),YX=`#ifdef DIFFUSE_IBL +vec3 sampleDiffuseEnvironment(vec3 cubeDir) +{ + #ifdef CUSTOM_SPHERICAL_HARMONICS + return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif +} +#endif + +#ifdef SPECULAR_IBL +vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness) +{ + #ifdef CUSTOM_SPECULAR_IBL + float lod = roughness * model_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb; + #else + float lod = roughness * czm_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb; + #endif +} +vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness) +{ + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness); + + return specularSample * (F * brdfLut.x + brdfLut.y); +} +#endif + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +/** + * Compute the light contributions from environment maps and spherical harmonic coefficients. + * See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation + * of the single- and multi-scattering terms. + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color. + */ +vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) { + vec3 f0 = material.specular; + float roughness = material.roughness; + float specularWeight = 1.0; + #ifdef USE_SPECULAR + specularWeight = material.specularWeight; + #endif + float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0); + + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y); + + #ifdef DIFFUSE_IBL + vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC); + vec3 irradiance = sampleDiffuseEnvironment(normalMC); + + vec3 averageFresnel = f0 + (1.0 - f0) / 21.0; + float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y); + vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems); + vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse; + vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x; + #else + vec3 diffuseContribution = vec3(0.0); + #endif + + #ifdef USE_ANISOTROPY + // Bend normal to account for anisotropic distortion of specular reflection + vec3 anisotropyDirection = material.anisotropicB; + vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC); + vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection); + float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness); + float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor; + vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4)); + vec3 reflectEC = reflect(-viewDirectionEC, bentNormal); + #else + vec3 reflectEC = reflect(-viewDirectionEC, normalEC); + #endif + + #ifdef SPECULAR_IBL + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC); + vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness); + vec3 specularContribution = radiance * FssEss * model_iblFactor.y; + #else + vec3 specularContribution = vec3(0.0); + #endif + + return diffuseContribution + specularContribution; +} +#endif +`;var Yse={name:"ImageBasedLightingPipelineStage"},QDe=new D;Yse.process=function(e,t,n){let i=t.imageBasedLighting,o=t.environmentMapManager,r=e.shaderBuilder,s;l(i.specularEnvironmentMaps)||(s=o.radianceCubeMap);let a=i.sphericalHarmonicCoefficients??o.sphericalHarmonicCoefficients;r.addDefine("USE_IBL_LIGHTING",void 0,ge.FRAGMENT),r.addUniform("vec2","model_iblFactor",ge.FRAGMENT),Wm.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",ge.FRAGMENT),l(s)&&r.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,ge.BOTH),l(a)&&l(a[0])?(r.addDefine("DIFFUSE_IBL",void 0,ge.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,ge.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",ge.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,ge.FRAGMENT),l(i.specularEnvironmentCubeMap)&&i.specularEnvironmentCubeMap.ready||l(s)?(r.addDefine("SPECULAR_IBL",void 0,ge.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,ge.FRAGMENT),r.addUniform("samplerCube","model_specularEnvironmentMaps",ge.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",ge.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,ge.FRAGMENT)),r.addFragmentLines(YX);let c={model_iblFactor:function(){return D.multiplyByScalar(i.imageBasedLightingFactor,o?.intensity||1,QDe)},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_sphericalHarmonicCoefficients:function(){return a},model_specularEnvironmentMaps:function(){return i.specularEnvironmentCubeMap.texture},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentCubeMap.maximumMipmapLevel}};l(s)&&(c.model_specularEnvironmentMaps=function(){return s},c.model_specularEnvironmentMapsMaximumLOD=function(){return o.maximumMipmapLevel}),e.uniformMap=Tt(c,e.uniformMap)};var HX=Yse;var uVn=T(S(),1);var rVn=T(S(),1);var jDe=W.EPSILON16;function hz(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(hz.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=W.clamp(e,this.minimumValue,this.maximumValue),W.equalsEpsilon(this._currentValue,e,jDe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var qDe=new h,mz=new $;hz.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=qDe,o;switch(t){case dc.XROTATE:o=$.fromRotationX(W.toRadians(n),mz),e=M.multiplyByMatrix3(e,o,e);break;case dc.YROTATE:o=$.fromRotationY(W.toRadians(n),mz),e=M.multiplyByMatrix3(e,o,e);break;case dc.ZROTATE:o=$.fromRotationZ(W.toRadians(n),mz),e=M.multiplyByMatrix3(e,o,e);break;case dc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=M.multiplyByTranslation(e,i,e);break;case dc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=M.multiplyByTranslation(e,i,e);break;case dc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=M.multiplyByTranslation(e,i,e);break;case dc.XSCALE:i.x=n,i.y=1,i.z=1,e=M.multiplyByScale(e,i,e);break;case dc.YSCALE:i.x=1,i.y=n,i.z=1,e=M.multiplyByScale(e,i,e);break;case dc.ZSCALE:i.x=1,i.y=1,i.z=n,e=M.multiplyByScale(e,i,e);break;case dc.UNIFORMSCALE:e=M.multiplyByUniformScale(e,n,e);break;default:break}return e};var zX=hz;function U5(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,$De(this)}Object.defineProperties(U5.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function $De(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var Hse={name:"ModelClippingPlanesPipelineStage"},nBe=new D;Hse.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,ge.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,ge.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,ge.FRAGMENT),hs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,ge.FRAGMENT);let s=hs.getTextureResolution(i,o,nBe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,ge.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,ge.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",ge.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",ge.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",ge.FRAGMENT),r.addFragmentLines(QX);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=B.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=Tt(a,e.uniformMap)};var jX=Hse;var kVn=T(S(),1);var WVn=T(S(),1),qX=`void modelClippingPolygonsStage(ProcessedAttributes attributes) +{ + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_regionIndex = -1; + v_clippingPosition = vec2(czm_infinity); + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + } + + float threshold = 0.01; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } +} +`;var vVn=T(S(),1),$X=`void modelClippingPolygonsStage() +{ + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +} +`;var zse={name:"ModelClippingPolygonsPipelineStage"};zse.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,ge.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,ge.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,ge.BOTH),o.addUniform("sampler2D","model_clippingDistance",ge.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",ge.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(qX),o.addFragmentLines($X);let r={model_clippingDistance:function(){return i.clippingTexture},model_clippingExtents:function(){return i.extentsTexture}};e.uniformMap=Tt(r,e.uniformMap)};var eW=zse;var BVn=T(S(),1);function Kse(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Kse.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var tW=Kse;var FLn=T(S(),1);var gLn=T(S(),1);var YVn=T(S(),1),nW=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var zVn=T(S(),1),iW=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var JVn=T(S(),1),oW=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var D5=new M,iBe=new M,oBe=new M,Qse={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:tae,_transformsToTypedArray:pz};Qse.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(nW);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,d=n.mode!==oe.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,u=s._enablePick&&!n.context.webgl2,m=[];xBe(e,n,i,m,d,u),SBe(e,n,i,m);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,ge.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",ge.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",ge.VERTEX),p.u_instance_modifiedModelView=function(){let g=M.multiplyTransformation(s.modelMatrix,a.components.transform,D5);return d?M.multiplyTransformation(n.context.uniformState.view3D,g,D5):(n.mode!==oe.SCENE3D&&(g=Ft.basisTo2D(n.mapProjection,g,D5)),M.multiplyTransformation(n.context.uniformState.view,g,D5))},p.u_instance_nodeTransform=function(){return M.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,iBe)},r.addVertexLines(oW)):r.addVertexLines(iW),d){r.addDefine("USE_2D_INSTANCING",void 0,ge.VERTEX),r.addUniform("mat4","u_modelView2D",ge.VERTEX);let g=n.context,f=M.fromTranslation(c.instancingReferencePoint2D,new M);p.u_modelView2D=function(){return M.multiplyTransformation(g.uniformState.view,f,oBe)}}e.uniformMap=Tt(p,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,m)};var rW=new M,rBe=new h;function sBe(e,t,n,i,o){let r=M.multiplyTransformation(t,e,rW);return r=M.multiplyTransformation(r,n,rW),o=Ft.basisTo2D(i.mapProjection,r,o),o}function aBe(e,t,n,i,o){let r=M.fromTranslation(e,rW),s=M.multiplyTransformation(t,r,rW);s=M.multiplyTransformation(s,n,rW);let a=M.getTranslation(s,rBe);return o=Mi.computeActualEllipsoidPosition(i,a,o),o}function jse(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=M.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=M.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=M.clone(o.computedModelMatrix,t),t=M.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=M.clone(M.IDENTITY,n))}var qse=new M,$se=new M,cBe=new M,lBe=new h;function dBe(e,t,n,i){let o=qse,r=$se;jse(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let d=0;d=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:sn.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var sW=Qse;var SLn=T(S(),1);var gz={};gz.name="ModelMatrixUpdateStage";gz.update=function(e,t,n){let i=n.mode!==oe.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;nae(e,t,o,e.transformToRoot),e._transformDirty=!1}};function CBe(e,t,n){e.modelMatrix=M.multiplyTransformation(t,n,e.modelMatrix),e.cullFace=qt.getCullFace(e.modelMatrix,e.primitiveType)}function nae(e,t,n,i){let o;i=M.multiplyTransformation(i,e.transform,new M),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=Tt(o,e.uniformMap)};var uW=aae;var eRn=T(S(),1);var cae={name:"ClassificationPipelineStage"};cae.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,ge.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||LBe(t,o)};function LBe(e,t){let n=qt.getAttributeBySemantic(e,Vt.POSITION);if(!l(n))throw new de("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=qt.getAttributeBySemantic(e,Vt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let d=[],u=[0],m=r?i[0]:0,p=c[m],g=0;for(let x=1;xwBe(i,t,n)):[]}function wBe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=qt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),d=new Array(c.length);for(let u=0;uABe(n,t)):[]}function ABe(e,t){let{sanitizeGlslIdentifier:n}=qt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;au),n.addStructField(Vi.STRUCT_ID_METADATA_FS,r,o);let g=`attributes.texCoord_${a}`,f=g;if(l(m)&&!$.equals(m,$.IDENTITY)){let L=`${p}Transform`;n.addUniform("mat3",L,ge.FRAGMENT),i[L]=function(){return m},f=`vec2(${L} * vec3(${g}, 1.0))`}let x=`texture(${p}, ${f}).${c}`,_=s.unpackInShader(x),C=bae({valueExpression:_,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:ge.FRAGMENT,property:s}),V=`metadata.${o} = ${C};`;n.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,[V])}function hae(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=pae(Vi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Vi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),ge.includesVertexShader(r)&&(e.addStructField(Vi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function fae(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Rt.ENUM)return;let s=Vi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=pae(s,n,a,r),d=`${r}MetadataStatistics`;e.addStructField(Vi.STRUCT_ID_METADATA_STATISTICS_FS,d,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),ge.includesVertexShader(t.shaderDestination)&&(e.addStructField(Vi.STRUCT_ID_METADATA_STATISTICS_VS,d,i),e.addFunctionLines(Vi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function pae(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function bae(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:d}=e;s.addUniform(c,o,d),s.addUniform(c,r,d);let{offset:u,scale:m}=n;return a[o]=()=>u,a[r]=()=>m,`czm_valueTransform(${o}, ${r}, ${t})`}var Lu=Vi;var qRn=T(S(),1),HBe={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},Tg=Object.freeze(HBe);var la={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:St};la.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===Tg.TRANSLUCENT?r.pass=Ge.TRANSLUCENT:c===Tg.OPAQUE&&(r.pass=void 0);let d=e3e(s,t);if(!d.customShaderEnabled)return;if(o3e(i,s,d),d.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,ge.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,ge.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,ge.FRAGMENT);let p=cb.getDefineName(s.mode);i.addDefine(p,void 0,ge.FRAGMENT)}let u=s.uniforms;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];i.addUniform(g.type,p)}let m=s.varyings;for(let p in m)if(m.hasOwnProperty(p)){let g=m[p];i.addVarying(g,p)}e.uniformMap=Tt(e.uniformMap,s.uniformMap)};function zBe(e){let t={};for(let n=0;n1?(g=e.attributeIndex,e.attributeIndex+=m):p&&!a?g=0:g=e.attributeIndex++,u3e(e,u,g,m,r,s)}_3e(i,t.attributes),t.primitiveType===Fe.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(RW),i.addFragmentLines(LW)};function u3e(e,t,n,i,o,r){let s=e.shaderBuilder,a=qt.getAttributeInfo(t),c=o&&!r;i>1?f3e(e,t,n,i):h3e(e,t,n,c),b3e(s,a,c),p3e(s,a),l(t.semantic)&&m3e(s,t),g3e(s,a,o),y3e(s,a,c),x3e(s,a)}function m3e(e,t){let{semantic:n,setIndex:i}=t;switch(n){case Vt.NORMAL:e.addDefine("HAS_NORMALS");break;case Vt.TANGENT:e.addDefine("HAS_TANGENTS");break;case Vt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Vt.TEXCOORD:case Vt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function h3e(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===Vt.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let d=r===Vt.POSITION,u=d?0:n,m=sn.getNumberOfComponents(a),p={index:u,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:m,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!d||!i)return;let g=e.runtimePrimitive.positionBuffer2D,f={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:m,componentDatatype:Q.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(f)}function f3e(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,d=sn.getNumberOfComponents(s)/i,u=Q.getSizeInBytes(a),m=d*u,p=t.byteStride;for(let g=0;g0,d=!l(a)&&c;if(l(r)&&!d){let x=Y3e(a),_=H3e(r,x);z3e(i,_);let V=K3e(_).indexOf("normalMC")>=0,L=qt.getAttributeBySemantic(t,Vt.NORMAL);if(V&&!L)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,ge.VERTEX),_.styleTranslucent&&(e.alphaOptions.pass=Ge.TRANSLUCENT)}let u=o.pointCloudShading;u.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,ge.VERTEX),u.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,ge.VERTEX);let m,p,g;ar.is3DTiles(o.type)&&(p=!0,m=o.content,g=m.tile.refine===No.ADD),i.addUniform("vec4","model_pointCloudParameters",ge.VERTEX),i.addVertexLines(FW);let f=e.uniformMap;f.model_pointCloudParameters=function(){let x=U3e,_=1;p&&(_=g?5:m.tileset.memoryAdjustedScreenSpaceError),x.x=y(u.maximumAttenuation,_),x.x*=n.pixelRatio;let C=D3e(e,t,u,m);x.y=C*u.geometricErrorScale;let V=n.context,L=n.camera.frustum,Z;return n.mode===oe.SCENE2D||L instanceof an?Z=Number.POSITIVE_INFINITY:Z=V.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=Z,p&&(x.w=m.tileset.timeSinceLoad),x}};var Iae=new h;function D3e(e,t,n,i){if(l(i)){let u=i.tile.geometricError;if(u>0)return u}if(l(n.baseResolution))return n.baseResolution;let o=qt.getAttributeBySemantic(t,Vt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,Iae);a=M.multiplyByPointAsVector(s,a,Iae);let c=a.x*a.y*a.z;return W.cbrt(c/r)}var B3e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},O3e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function Y3e(e){let t=Ye(O3e);if(!l(e))return t;for(let n=0;n0,p=l(i.skin),g=l(r),x=!(g&&l(r.fragmentShaderText))||r.mode!==cb.REPLACE_MATERIAL,_=qt.hasQuantizedAttributes(n.attributes),C=o.debugWireframe&&Fe.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),V=o.pointCloudShading,L=l(V)&&V.attenuation,Z=l(V)&&V.backFaceCulling,G=n.primitiveType===Fe.POINTS&&(l(s)||L||Z),I=o._enableShowOutline&&l(n.outlineCoordinates),v=bOe(o,i,n),P=l(o.classificationType);d&&t.push(DW),t.push(GW),C&&t.push(zW),P&&t.push(mW),m&&t.push(vW),p&&t.push(OW),G&&t.push(AW),_&&t.push(VW),x&&t.push(WW),t.push(_g),t.push(Lu),t.push(_d),v.hasPropertyTable&&(t.push(Sg),t.push(uW),t.push(pW)),u&&t.push(HW),g&&t.push(SW),t.push(IW),o.allowPicking&&t.push(wW),I&&t.push(kW),t.push(dW),t.push(UW)};function bOe(e,t,n){let i;return l(t.instances)&&(i=qt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=qt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var KW=Oae;var nXn=T(S(),1);function Vz(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],gOe(this)}Object.defineProperties(Vz.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function gOe(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var O5={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};O5.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,ge.FRAGMENT),i.addFragmentLines(t2);let o={};i.addUniform("float",O5.SPLIT_DIRECTION_UNIFORM_NAME,ge.FRAGMENT),o[O5.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=Tt(o,e.uniformMap)};var n2=O5;var XXn=T(S(),1);function _Oe(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var i2=_Oe;var BXn=T(S(),1);var wXn=T(S(),1);function TOe(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,df.UNLIT)}var o2=TOe;function SOe(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ye(e.uniformMap),this.alphaOptions=Ye(e.alphaOptions),this.renderStateOptions=Ye(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:qt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=qt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=ce.fromCornerPoints(this.positionMin,this.positionMax,new ce),this.lightingOptions=new o2,this.pickId=void 0}var r2=SOe;var OWn=T(S(),1);var iWn=T(S(),1);function Rz(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==kn.CESIUM_3D_TILE,this._classifies3DTiles=o!==kn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],ROe(this)}function COe(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:bt.KEEP,zFail:bt.DECREMENT_WRAP,zPass:bt.KEEP},backFunction:e,backOperation:{fail:bt.KEEP,zFail:bt.INCREMENT_WRAP,zPass:bt.KEEP},reference:Ot.CESIUM_3D_TILE_MASK,mask:Ot.CESIUM_3D_TILE_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:nc.LESS_OR_EQUAL},depthMask:!1}}var VOe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},reference:0,mask:Ot.CLASSIFICATION_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},LOe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:bt.ZERO,zFail:bt.ZERO,zPass:bt.ZERO},reference:0,mask:Ot.CLASSIFICATION_MASK},stencilMask:Ot.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},Kae=[];function ROe(e){let t=e._command,n=Kae;if(e._useDebugWireframe){t.pass=Ge.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=s2(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;as||o<-s&&r>-s}function JC(e,t){if(!l(t))return;let n=lb.clone(t),i=tt.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function vOe(e){JC(e,e._originalCommand),JC(e,e._translucentCommand),JC(e,e._skipLodBackfaceCommand),JC(e,e._skipLodStencilCommand),JC(e,e._silhouetteModelCommand),JC(e,e._silhouetteColorCommand)}function wOe(e){let t=tt.shallowClone(e);t.pass=Ge.TRANSLUCENT;let n=Ye(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=Ue.fromCache(n),t}function FOe(e,t){let n=t._silhouetteId%255,i=tt.shallowClone(e),o=Ye(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:ie.ALWAYS,backFunction:ie.ALWAYS,reference:n,mask:-1,frontOperation:{fail:ie.KEEP,zFail:ie.KEEP,zPass:ie.REPLACE},backOperation:{fail:ie.KEEP,zFail:ie.KEEP,zPass:ie.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ue.fromCache(o),i}function AOe(e,t){let n=t._silhouetteId%255,i=tt.shallowClone(e),o=Ye(e.renderState,!0);o.cull.enabled=!1,(e.pass===Ge.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=Ge.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:ie.NOTEQUAL,backFunction:ie.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:ie.KEEP,zFail:ie.KEEP,zPass:ie.KEEP},backOperation:{fail:ie.KEEP,zFail:ie.KEEP,zPass:ie.KEEP}};let s=Ye(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ue.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function MOe(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=NOe(o);if(r!==s){let a=kOe(r),c=Ye(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ue.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function NOe(e){return(e.renderState.stencilTest.reference&Ot.SKIP_LOD_MASK)>>>Ot.SKIP_LOD_BIT_SHIFT}function kOe(e){return Ot.CESIUM_3D_TILE_MASK|e<0&&(m=Wo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Om(d,u),f=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=f,!l(f))throw new de("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);l(x)&&(x=h.unpack(x));let _=aYe(g,m);if(_.rtcCenter=x,_.pointsLength=f,!_.hasPositions){let C=cYe(g);_.positions=C,_.hasPositions=_.hasPositions||l(C)}if(!_.hasPositions)throw new de("Either POSITION or POSITION_QUANTIZED must be defined.");if(!_.hasNormals){let C=dYe(g);_.normals=C,_.hasNormals=_.hasNormals||l(C)}if(!_.hasColors){let C=lYe(g);_.colors=C,_.hasColors=_.hasColors||l(C),_.hasConstantColor=l(_.constantColor),_.isTranslucent=l(C)&&C.isTranslucent}if(!_.hasBatchIds){let C=uYe(g);_.batchIds=C,_.hasBatchIds=_.hasBatchIds||l(C)}if(_.hasBatchIds){let C=g.getGlobalProperty("BATCH_LENGTH");if(!l(C))throw new de("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");_.batchLength=C}return l(p)&&(p=new Uint8Array(p),_.batchTableJson=m,_.batchTableBinary=p),_};function aYe(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,d,u,m,p;if(l(s)){o=s.properties;let f=s.byteOffset,x=s.byteLength;if(!l(o)||!l(f)||!l(x))throw new de("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(f,f+x),c=l(o.POSITION),d=l(o.RGB)||l(o.RGBA),u=l(o.NORMAL),m=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:Tt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:d,isTranslucent:p,hasNormals:u,hasBatchIds:m}}function cYe(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",Q.FLOAT,3),{name:Vt.POSITION,semantic:Vt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:Q.FLOAT,type:sn.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",Q.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",Q.FLOAT,3);if(!l(i))throw new de("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",Q.FLOAT,3);if(!l(r))throw new de("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Vt.POSITION,semantic:Vt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:Q.FLOAT,type:sn.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:Q.UNSIGNED_SHORT,quantizedType:sn.VEC3}}}function lYe(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",Q.UNSIGNED_BYTE,4),{name:Vt.COLOR,semantic:Vt.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.UNSIGNED_BYTE,type:sn.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",Q.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Vt.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.UNSIGNED_BYTE,type:sn.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",Q.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Vt.COLOR,setIndex:0,typedArray:n,componentDatatype:Q.FLOAT,type:sn.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",Q.UNSIGNED_BYTE,4),o=i[3],r=B.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:Vt.COLOR,semantic:Vt.COLOR,setIndex:0,constantColor:r,componentDatatype:Q.FLOAT,type:sn.VEC4,isQuantized:!1,isTranslucent:s}}}function dYe(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",Q.FLOAT,3),{name:Vt.NORMAL,semantic:Vt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:Q.FLOAT,type:sn.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",Q.UNSIGNED_BYTE,2),{name:Vt.NORMAL,semantic:Vt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:sn.VEC2,quantizedComponentDatatype:Q.UNSIGNED_BYTE,componentDatatype:Q.FLOAT,type:sn.VEC3}}function uYe(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",Q.UNSIGNED_SHORT,1);return{name:Vt.FEATURE_ID,semantic:Vt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:Q.fromTypedArray(n),type:sn.SCALAR}}}var x_=tce;var mYe=Tn.Components,hYe=Tn.Scene,fYe=Tn.Node,pYe=Tn.Primitive,bYe=Tn.Attribute,nce=Tn.Quantization,gYe=Tn.FeatureIdAttribute,yYe=Tn.Material,xYe=Tn.MetallicRoughness;function Cg(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=yt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=M.IDENTITY}l(Object.create)&&(Cg.prototype=Object.create(Hi.prototype),Cg.prototype.constructor=Cg);Object.defineProperties(Cg.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Cg.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=x_.parse(this._arrayBuffer,this._byteOffset),this._state=yt.PROCESSING,this._promise=Promise.resolve(this)};Cg.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===yt.READY)return!0;if(this._state===yt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=_Ye(this,e.context)}return!1};function _Ye(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=Op.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&TYe(e,i,r),WYe(e,t),e._state=yt.READY,e}).catch(function(r){e.unload(),e._state=yt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function TYe(e,t,n){e._state=yt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:Vt.POSITION,typedArray:n.POSITION.array,componentDatatype:Q.FLOAT,type:sn.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,d=h.fromElements(c,c,c),u=h.unpack(a.minValues),m=(1<0&&PYe(e,a,m,t),l(n.rtcCenter)&&(u.transform=M.multiplyByTranslation(u.transform,n.rtcCenter,u.transform));let p=n.positions;l(p)&&p.isQuantized&&(u.transform=M.multiplyByTranslation(u.transform,p.quantizedVolumeOffset,u.transform)),e._components=u,e._parsedContent=void 0,e._arrayBuffer=void 0}function PYe(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s=0&&(a=ye)}}}}if(a!==Number.MAX_VALUE){if(s=pn.getPoint(t,a,s),n.mode!==oe.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let u=n.mapProjection,m=u.ellipsoid,p=u.unproject(s,kYe);m.cartographicToCartesian(p,s)}return s}}function Zz(e,t,n,i,o,r,s,a,c,d){let u=n+t*i;if(d.x=e[u],d.y=e[u+1],d.z=e[u+2],l(o))if(o.octEncoded){if(d=wn.octDecodeInRange(d,o.normalizationRange,d),o.octEncodedZXY){let m=d.x;d.x=d.z,d.z=d.y,d.y=m}}else d=h.multiplyComponents(d,o.quantizedVolumeStepSize,d),d=h.add(d,o.quantizedVolumeOffset,d);return d=M.multiplyByPoint(r,d,d),s!==1&&_r.getPosition(d,c,s,a,d),d}function ro(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,ar.GLTF),this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._modelMatrix=M.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new AX(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=B.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,lc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,B.RED);this._silhouetteColor=B.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,Ge.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new ce,this._initialRadius=void 0,this._heightReference=y(e.heightReference,Qe.NONE),this._heightDirty=this._heightReference!==Qe.NONE,this._removeUpdateHeightCallback=void 0,this._enableVerticalExaggeration=y(e.enableVerticalExaggeration,!0),this._hasVerticalExaggeration=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new lf(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?hs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=M.clone(M.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?km.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new Ux,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._environmentMapManager=void 0;let c=new jp(e.environmentMapOptions);jp.setOwner(c,this,"_environmentMapManager"),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,_n.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===ar.GLTF&&St("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let d=e.credit;typeof d=="string"&&(d=new Et(d)),this._credits=[],this._credit=d,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,vr.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,B.BLACK),this._classificationType=e.classificationType,this._statistics=new h2,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new be,this._readyEvent=new be,this._texturesReadyEvent=new be,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function Gz(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function DYe(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return ace(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===ar.GLTF&&St("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(hs.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(km.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},enableVerticalExaggeration:{get:function(){return this._enableVerticalExaggeration},set:function(e){e!==this._enableVerticalExaggeration&&this.resetDrawCommands(),this._enableVerticalExaggeration=e}},hasVerticalExaggeration:{get:function(){return this._hasVerticalExaggeration}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},environmentMapManager:{get:function(){return this._environmentMapManager},set:function(e){e!==this.environmentMapManager&&(jp.setOwner(e,this,"_environmentMapManager"),this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});ro.prototype.getNode=function(e){return this._nodesByName[e]};ro.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};ro.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};ro.prototype.getExtension=function(e){return this._loader.components.extensions[e]};ro.prototype.makeStyleDirty=function(){this._styleDirty=!0};ro.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var OYe=new M,YYe=new $,HYe=new M;ro.prototype.update=function(e){let t=!1;try{t=zYe(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")Gz(this,n);else{let i=qt.getError("model",this._resource,n);Gz(this,i)}}if(KYe(this,e),JYe(this,e),QYe(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=qt.getError("model",this._resource,new de("Failed to load model."));Gz(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&DYe(this,i);let o=new m2({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===oe.MORPHING)){if(jYe(this),qYe(this),$Ye(this,e),eHe(this),tHe(this,e),nHe(this,e),iHe(this,e),oHe(this,e),rHe(this,e),sHe(this,e),aHe(this,e),this._defaultTexture=e.context.defaultTexture,cHe(this,e),lHe(this,e),dHe(this),uHe(this,e),pHe(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),hHe(this),bHe(this,e),gHe(this),yHe(this,e)}};function zYe(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function KYe(e,t){l(e._customShader)&&e._customShader.update(t)}function JYe(e,t){let n=e._environmentMapManager,i=t.passes.pick||t.passes.pickVoxel;e._ready&&n.owner===e&&!i&&(n.position=e._boundingSphere.center,n.shouldUpdate=!l(e._imageBasedLighting.sphericalHarmonicCoefficients)||!l(e._imageBasedLighting.specularEnvironmentMaps),n.update(t),n.shouldRegenerateShaders&&e.resetDrawCommands())}function QYe(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function jYe(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=BYe(t,e),e._styleDirty=!0,e.resetDrawCommands())}function qYe(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function $Ye(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r=i&&r<=o}function SHe(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r0&&e.alpha<1};ro.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function cce(e){return e.context.stencilBuffer}ro.prototype.hasSilhouette=function(e){return cce(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};ro.prototype.hasSkipLevelOfDetail=function(e){if(!ar.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};ro.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};ro.prototype.pick=function(e,t,n,i,o){return qC(this,e,t,n,i,o)};ro.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};ro.prototype.isDestroyed=function(){return!1};ro.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let r=t.length;for(let s=0;s0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),sce(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function b2(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,enableVerticalExaggeration:n.enableVerticalExaggeration,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var zm=ro;function fs(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(fs.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});fs.prototype.getExtension=function(e){return this._model.getExtension(e)};fs.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};fs.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};fs.prototype.applyDebugSettings=function(e,t){t=e?t:B.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};fs.prototype.applyStyle=function(e){this._model.style=e};fs.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0);let r=e.environmentMapManager;n.environmentMapManager!==o&&(n._environmentMapManager=r),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0);let s=e.clippingPolygons;l(s)&&i.clippingPolygonsDirty&&(n._clippingPolygons=s.enabled&&i._isClippedByPolygon?s:void 0),l(s)&&l(n._clippingPolygons)&&n._clippingPolygons!==s&&(n._clippingPolygons=s,n._clippingPolygonsState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:vl.REPEAT}),this._ready=!0)};fs.prototype.isDestroyed=function(){return!1};fs.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),me(this)};fs.fromGltf=async function(e,t,n,i){let o=new fs(e,t,n),s=g2(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await zm.fromGltfAsync(s);return o._model=c,o};fs.fromB3dm=async function(e,t,n,i,o){let r=new fs(e,t,n),a=g2(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let d=await zm.fromB3dm(a);return r._model=d,r};fs.fromI3dm=async function(e,t,n,i,o){let r=new fs(e,t,n),a=g2(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await zm.fromI3dm(a);return r._model=c,r};fs.fromPnts=async function(e,t,n,i,o){let r=new fs(e,t,n),a=g2(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await zm.fromPnts(a);return r._model=c,r};fs.fromGeoJson=async function(e,t,n,i){let o=new fs(e,t,n),s=g2(e,t,o,{geoJson:i,resource:n}),a=await zm.fromGeoJson(s);return o._model=a,o};fs.prototype.pick=function(e,t,n){if(!l(this._model)||!this._ready)return;let i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight;return this._model.pick(e,t,i,o,ne.WGS84,n)};function g2(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:Ge.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return Tt(i,o)}var uf=fs;var Zvn=T(S(),1);function Ru(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Ru.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Ru.fromJson=function(e,t,n,i){let o=new Ru(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Ru.prototype.hasProperty=function(e,t){return!1};Ru.prototype.getFeature=function(e){};Ru.prototype.applyDebugSettings=function(e,t){};Ru.prototype.applyStyle=function(e){};Ru.prototype.update=function(e,t){};Ru.prototype.pick=function(e,t,n){};Ru.prototype.isDestroyed=function(){return!1};Ru.prototype.destroy=function(){return me(this)};var y2=Ru;var WNn=T(S(),1);var XMn=T(S(),1);var qwn=T(S(),1);var Evn=T(S(),1),x2=`uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; +in float v_splitDirection; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var Xvn=T(S(),1),_2=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +in float splitDirection; // splitDirection +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +out float v_splitDirection; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + v_splitDirection = splitDirection; +} +`;var $vn=T(S(),1);function xi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Ut.clone(n)),l(i)&&(i=Ut.clone(i)),l(o)&&(o=Ut.clone(o)),l(r)&&(r=At.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=D.clone(y(e.pixelOffset,D.ZERO)),this._translate=new D(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,Qe.NONE),this._verticalOrigin=y(e.verticalOrigin,Pn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,gi.CENTER),this._scale=y(e.scale,1),this._color=B.clone(y(e.color,B.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=Bn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=oe.SCENE3D,this._clusterShow=!0,this._outlineColor=B.clone(y(e.outlineColor,B.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping(),this._splitDirection=y(e.splitDirection,vr.NONE)}var lce=xi.SHOW_INDEX=0,Q5=xi.POSITION_INDEX=1,hce=xi.PIXEL_OFFSET_INDEX=2,VHe=xi.EYE_OFFSET_INDEX=3,LHe=xi.HORIZONTAL_ORIGIN_INDEX=4,RHe=xi.VERTICAL_ORIGIN_INDEX=5,ZHe=xi.SCALE_INDEX=6,j5=xi.IMAGE_INDEX_INDEX=7,dce=xi.COLOR_INDEX=8,GHe=xi.ROTATION_INDEX=9,EHe=xi.ALIGNED_AXIS_INDEX=10,IHe=xi.SCALE_BY_DISTANCE_INDEX=11,XHe=xi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,WHe=xi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,PHe=xi.DISTANCE_DISPLAY_CONDITION=14,vHe=xi.DISABLE_DEPTH_DISTANCE=15;xi.TEXTURE_COORDINATE_BOUNDS=16;var uce=xi.SDF_INDEX=17,wHe=xi.SPLIT_DIRECTION_INDEX=18;xi.NUMBER_OF_PROPERTIES=19;function vo(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(xi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,vo(this,lce))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),vo(this,Q5))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),vo(this,Q5))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;D.equals(t,e)||(D.clone(e,t),vo(this,hce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Ut.equals(t,e)||(this._scaleByDistance=Ut.clone(e,t),vo(this,IHe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Ut.equals(t,e)||(this._translucencyByDistance=Ut.clone(e,t),vo(this,XHe))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Ut.equals(t,e)||(this._pixelOffsetScaleByDistance=Ut.clone(e,t),vo(this,WHe))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),vo(this,VHe))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,vo(this,LHe))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,vo(this,RHe))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,vo(this,ZHe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),vo(this,dce))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,vo(this,GHe))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),vo(this,EHe))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,vo(this,j5))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,vo(this,j5))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,vo(this,dce))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){At.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=At.clone(e,this._distanceDisplayCondition),vo(this,PHe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,vo(this,vHe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof Ee?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(Bn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,vo(this,j5))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),vo(this,Q5)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,vo(this,lce))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;B.equals(t,e)||(B.clone(e,t),vo(this,uce))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,vo(this,uce))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,vo(this,wHe))}}});xi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};xi.prototype._updateClamping=function(){xi._updateClamping(this._billboardCollection,this)};var q5=new he;xi._updateClamping=function(e,t){let n=e._scene;if(!l(n))return;let i=y(n.ellipsoid,ne.default),o=n.frameState.mode,r=o!==t._mode;if(t._mode=o,(t._heightReference===Qe.NONE||r)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Qe.NONE||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let s=i.cartesianToCartographic(t._position);if(!l(s)){t._actualClampedPosition=void 0;return}function a(d){let u=i.cartographicToCartesian(d,t._clampedPosition);JS(t._heightReference)&&(t._mode===oe.SCENE3D?(d.height+=s.height,i.cartographicToCartesian(d,u)):u.x+=s.height),t._clampedPosition=u}t._removeCallbackFunc=n.updateHeight(s,a,t._heightReference),he.clone(s,q5);let c=n.getHeight(s,t._heightReference);l(c)&&(q5.height=c),a(q5)};xi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!Ke.equals(r._imageSubRegion,i))return;let d=e.textureCoordinates[c];r._imageWidth=e.texture.width*d.width,r._imageHeight=e.texture.height*d.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,vo(r,j5);let u=r._billboardCollection._scene;l(u)&&u.frameState.afterRender.push(()=>!0)}if(l(n)&&(o=e.addImage(t,n)),l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!l(o))return;let a=e.getImageIndex(t);if(l(a)&&!l(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};xi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&Ke.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=Ke.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};xi.prototype._setTranslate=function(e){let t=this._translate;D.equals(t,e)||(D.clone(e,t),vo(this,hce))};xi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};xi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),vo(this,Q5)};var mce=new se;xi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===oe.SCENE3D?t:(M.multiplyByPoint(i,t,mce),Mi.computeActualEllipsoidPosition(n,mce))};var fce=new h;xi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=M.multiplyByPoint(e,t,fce),a=Mi.worldWithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return D.add(a,i,a),a};var J5=new D(0,0);xi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new D),D.clone(this._pixelOffset,J5),D.add(J5,this._translate,J5);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==oe.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,q5);o=a.cartographicToCartesian(c,fce),i=M.IDENTITY}return xi._computeScreenSpacePosition(i,o,this._eyeOffset,J5,e,t)};xi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===gi.RIGHT?s-=i:e.horizontalOrigin===gi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Pn.BOTTOM||e.verticalOrigin===Pn.BASELINE?a-=o:e.verticalOrigin===Pn.CENTER&&(a-=o*.5),l(n)||(n=new Ke),n.x=s,n.y=a,n.width=i,n.height=o,n};xi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&Ke.equals(this._imageSubRegion,e._imageSubRegion)&&B.equals(this._color,e._color)&&D.equals(this._pixelOffset,e._pixelOffset)&&D.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Ut.equals(this._scaleByDistance,e._scaleByDistance)&&Ut.equals(this._translucencyByDistance,e._translucencyByDistance)&&Ut.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&At.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};xi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var so=xi;var twn=T(S(),1),FHe={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Lo=Object.freeze(FHe);var iwn=T(S(),1),AHe={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Bs=Object.freeze(AHe);var bwn=T(S(),1);function db(e,t,n,i,o){this.bottomLeft=y(e,D.ZERO),this.topRight=y(t,D.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var MHe=new D(16,16);function Lg(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,MHe);this._context=e.context,this._pixelFormat=y(e.pixelFormat,ot.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Bn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Lg.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Pt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function NHe(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),d=o*(a+t.height+r),u=s/c,m=a/d,p=new db(new D(s+r,r),new D(c,a)),g=new db(new D,new D(c,a),e._root,p),f=new db(new D(r,a+r),new D(c,d)),x=new db(new D,new D(c,d),g,f);for(let V=0;Vs){t.childNode1=new db(new D(t.bottomLeft.x,t.bottomLeft.y),new D(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a0)&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let C=0,V=0,L=o._imageIndex;if(L!==-1){let G=n[L];C=G.height,V=G.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*C));let Z=e._textureAtlas.texture.width;g=Math.round(y(o.width,Z*V))}let f=Math.floor(W.clamp(g,0,vz)),x=Math.floor(W.clamp(p,0,vz)),_=f*vz+x;e._instanced?(r=o._index,s(r,a,c,u,_)):(r=o._index*4,s(r+0,a,c,u,_),s(r+1,a,c,u,_),s(r+2,a,c,u,_),s(r+3,a,c,u,_))}function Mce(e,t,n,i,o){if(bu(o.heightReference)){let f=e._scene,x=t.context,_=t.globeTranslucencyState.translucent,C=l(f.globe)&&f.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!_&&C}let r,s=i[ao.textureCoordinateBoundsOrLabelTranslate];if(Bt.maximumVertexTextureImageUnits>0){let f=0,x=0;l(o._labelTranslate)&&(f=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,f,x,0,0)):(r=o._index*4,s(r+0,f,x,0,0),s(r+1,f,x,0,0),s(r+2,f,x,0,0),s(r+3,f,x,0,0));return}let a=0,c=0,d=0,u=0,m=o._imageIndex;if(m!==-1){let f=n[m];a=f.x,c=f.y,d=f.width,u=f.height}let p=a+d,g=c+u;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function oze(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[ao.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function Nce(e,t,n,i,o){if(!e._sdf)return;let r,s=i[ao.sdf],a=o.outlineColor,c=o.outlineWidth,d=B.floatToByte(a.red),u=B.floatToByte(a.green),m=B.floatToByte(a.blue),p=d*$C+u*mf+m,g=c/Bs.RADIUS,f=B.floatToByte(a.alpha)*$C+B.floatToByte(g)*mf;e._instanced?(r=o._index,s(r,p,f)):(r=o._index*4,s(r+0,p+Ece,f),s(r+1,p+Ice,f),s(r+2,p+Xce,f),s(r+3,p+Wce,f))}function kce(e,t,n,i,o){let r=i[ao.splitDirection],s=0,a=o.splitDirection;l(a)&&(s=a);let c;e._instanced?(c=o._index,r(c,s)):(c=o._index*4,r(c+0,s),r(c+1,s),r(c+2,s),r(c+3,s))}function rze(e,t,n,i,o){Zce(e,t,n,i,o),Pce(e,t,n,i,o),vce(e,t,n,i,o),Fz(e,t,n,i,o),Az(e,t,n,i,o),wce(e,t,n,i,o),Fce(e,t,n,i,o),Ace(e,t,n,i,o),Mce(e,t,n,i,o),oze(e,t,n,i,o),Nce(e,t,n,i,o),kce(e,t,n,i,o)}function wz(e,t,n,i,o,r){let s;i.mode===oe.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=$He(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),m=this._vaf.writers;for(let P=0;P0){let P=lze;P.length=0,(c[S2]||c[OHe]||c[BHe])&&P.push(Zce),(c[T2]||c[gce]||c[UHe]||c[DHe]||c[kHe])&&(P.push(Pce),this._instanced&&P.push(Az)),(c[T2]||c[YHe]||c[Tce])&&(P.push(vce),P.push(Fz)),(c[T2]||c[xce])&&P.push(Fz),c[yce]&&P.push(Az),c[_ce]&&P.push(wce),c[Sce]&&P.push(Fce),(c[Cce]||c[HHe]||c[T2]||c[S2])&&P.push(Ace),(c[T2]||c[S2])&&P.push(Mce),c[Vce]&&P.push(Nce),c[Lce]&&P.push(kce);let w=P.length;if(m=this._vaf.writers,a/n>.1){for(let F=0;Fn*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ce.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let f,x=M.IDENTITY;e.mode===oe.SCENE3D?(x=this.modelMatrix,f=ce.clone(this._baseVolumeWC,this._boundingVolume)):f=ce.clone(this._baseVolume2D,this._boundingVolume),aze(this,e,f);let _=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,_){this._blendOption===Lo.OPAQUE||this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ue.fromCache({depthTest:{enabled:!0,func:ie.LESS},depthMask:!0}):this._rsOpaque=void 0;let P=this._blendOption===Lo.TRANSLUCENT;this._blendOption===Lo.TRANSLUCENT||this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ue.fromCache({depthTest:{enabled:!0,func:P?ie.LEQUAL:ie.LESS},depthMask:P,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let C,V,L,Z,G,I=Bt.maximumVertexTextureImageUnits>0;if(_||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){C=_2,V=x2,G=[],l(this._batchTable)&&(G.push("VECTOR_TILE"),C=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(C),V=this._batchTable.getFragmentShaderCallback(!1,void 0)(V)),L=new De({defines:G,sources:[C]}),this._instanced&&L.defines.push("INSTANCED"),this._shaderRotation&&L.defines.push("ROTATION"),this._shaderAlignedAxis&&L.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&L.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&L.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&L.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&L.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&L.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(I?L.defines.push("VERTEX_DEPTH_CHECK"):L.defines.push("FRAGMENT_DEPTH_CHECK"));let P=1-Bs.CUTOFF;this._sdf&&L.defines.push("SDF");let w=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT&&(Z=new De({defines:["OPAQUE",w],sources:[V]}),this._shaderClampToGround&&(I?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${P}`)),this._sp=tn.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:ao}),Z=new De({defines:["TRANSLUCENT",w],sources:[V]}),this._shaderClampToGround&&(I?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${P}`)),this._spTranslucent=tn.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:ao})),this._blendOption===Lo.OPAQUE&&(Z=new De({defines:[w],sources:[V]}),this._shaderClampToGround&&(I?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${P}`)),this._sp=tn.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:ao})),this._blendOption===Lo.TRANSLUCENT&&(Z=new De({defines:[w],sources:[V]}),this._shaderClampToGround&&(I?Z.defines.push("VERTEX_DEPTH_CHECK"):Z.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(Z.defines.push("SDF"),Z.defines.push(`SDF_EDGE ${P}`)),this._spTranslucent=tn.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:L,fragmentShaderSource:Z,attributeLocations:ao})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let v=e.commandList;if(p.render||p.pick){let P=this._colorCommands,w=this._blendOption===Lo.OPAQUE,F=this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT,b=this._vaf.va,R=b.length,E=this._uniforms,X;l(this._batchTable)?(E=this._batchTable.getUniformMapCallback()(E),X=this._batchTable.getPickId()):X="v_pickColor",P.length=R;let A=F?R*2:R;for(let N=0;N0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,uze);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=B.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&e1(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});da.defaultColor=B.WHITE;da.defaultPointOutlineColor=B.BLACK;da.defaultPointOutlineWidth=0;da.defaultPointSize=8;function e1(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,da.defaultColor),i=y(e._pointOutlineColor,da.defaultPointOutlineColor),o=y(e._pointOutlineWidth,da.defaultPointOutlineWidth),r=y(e._pointSize,da.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,d=e._billboardSize;if(B.equals(n,s)&&B.equals(i,a)&&o===c&&r===d)return;e._billboardColor=B.clone(n,e._billboardColor),e._billboardOutlineColor=B.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let u=n.alpha,m=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([m,r,p,o]);t.setImage(g,__(u,m,p,o,r))}da.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};da.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};da.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};da.prototype.getPropertyInherited=function(e){return Ns.getPropertyInherited(this._content,this._batchId,e)};da.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};da.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};da.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};da.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var ub=da;var eAn=T(S(),1);var hFn=T(S(),1);function mze(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),d=100,u=r.width+d|0,m=3*a,p=m/2;c.width=u,c.height=m;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,d/2,p)),o&&(g.fillStyle="black",g.fillText(t,d/2,p));let f=g.getImageData(0,0,u,m).data,x=f.length,_=u*4,C,V,L,Z;for(C=0;C=0;--C)if(f[C]!==255){Z=C/_|0;break}let G=-1;for(C=0;C]/,o=[],r="",s=ps.LTR,a="",c=e.length;for(let d=0;d";case">":return"<"}}var Sze="\u05D0-\u05EA",Cze="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",zce=new RegExp(`[${Sze}${Cze}]`);function Vze(e){let t=e.split(` +`),n="";for(let i=0;id+1?s[d+1].Type===ps.RTL?(c=m+c,a=0):(c=R2(c,a,u.Word),a+=u.Word.length):c=R2(c,0,m)):u.Type===ps.RTL?c=R2(c,a,m):u.Type===ps.LTR?(c+=u.Word,a=c.length):(u.Type===ps.WEAK||u.Type===ps.BRACKETS)&&(d>0&&s[d-1].Type===ps.RTL?s.length>d+1?s[d+1].Type===ps.RTL?c=R2(c,a,m):(c+=u.Word,a=c.length):c+=u.Word:(c+=u.Word,a=c.length))}n+=c,i0,m=t._backgroundBillboard,p=e._backgroundBillboardCollection;u?(l(m)||(m=p.add({collection:e,image:$ce,imageSubRegion:Eze}),t._backgroundBillboard=m),m.color=t._backgroundColor,m.show=t._show,m.position=t._position,m.eyeOffset=t._eyeOffset,m.pixelOffset=t._pixelOffset,m.horizontalOrigin=gi.LEFT,m.verticalOrigin=t._verticalOrigin,m.heightReference=t._heightReference,m.scale=t.totalScale,m.pickPrimitive=t,m.id=t._id,m.translucencyByDistance=t._translucencyByDistance,m.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,m.scaleByDistance=t._scaleByDistance,m.distanceDisplayCondition=t._distanceDisplayCondition,m.disableDepthTestDistance=t._disableDepthTestDistance,m.clusterShow=t.clusterShow):l(m)&&(p.remove(m),t._backgroundBillboard=m=void 0);let g=e._glyphTextureCache;for(d=0;d0&&L.height>0){let Z=(0,jce.default)(L,{cutoff:Bs.CUTOFF,radius:Bs.RADIUS}),G=L.getContext("2d"),I=L.width,v=L.height,P=G.getImageData(0,0,I,v);for(let w=0;w0?V=L.pop():(V=e._billboardCollection.add({collection:e}),V._labelDimensions=new D,V._labelTranslate=new D),a.billboard=V),V.show=t._show,V.position=t._position,V.eyeOffset=t._eyeOffset,V.pixelOffset=t._pixelOffset,V.horizontalOrigin=gi.LEFT,V.verticalOrigin=t._verticalOrigin,V.heightReference=t._heightReference,V.scale=t.totalScale,V.pickPrimitive=t,V.id=t._id,V.image=_,V.translucencyByDistance=t._translucencyByDistance,V.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,V.scaleByDistance=t._scaleByDistance,V.distanceDisplayCondition=t._distanceDisplayCondition,V.disableDepthTestDistance=t._disableDepthTestDistance,V._batchIndex=t._batchIndex,V.outlineColor=t.outlineColor,t.style===Uo.FILL_AND_OUTLINE?(V.color=t._fillColor,V.outlineWidth=t.outlineWidth):t.style===Uo.FILL?(V.color=t._fillColor,V.outlineWidth=0):t.style===Uo.OUTLINE&&(V.color=B.TRANSPARENT,V.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Qce(e,t,n){return t===gi.CENTER?-e/2:t===gi.RIGHT?-(e+n.x):n.x}var cr=new D,wze=new D;function Fze(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,d=0,u=1,m,p=t.length,g=e._backgroundBillboard,f=D.clone(l(g)?e._backgroundPadding:D.ZERO,wze);for(f.x/=e._relativeSize,f.y/=e._relativeSize,m=0;m0&&(C===gi.CENTER?G=-s/2-f.x:C===gi.RIGHT?G=-(s+f.x*2):G=0,cr.x=G*_,V===Pn.TOP?cr.y=x-d-c:V===Pn.CENTER?cr.y=(x-d)/2-c:V===Pn.BASELINE?cr.y=-f.y-c:cr.y=0,cr.y=cr.y*_,g.width=P,g.height=w,g._setTranslate(cr),g._labelTranslate=D.clone(cr,g._labelTranslate)),bu(e.heightReference))for(m=0;m0?Lo.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};hf.prototype.isDestroyed=function(){return!1};hf.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),me(this)};var ff=hf;var mMn=T(S(),1);var nAn=T(S(),1),Z2=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var ZAn=T(S(),1);var pAn=T(S(),1);var Kc={};Kc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};Kc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var Aze=new he;Kc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o0){t=y(t,M.IDENTITY);let o=M.inverseTransformation(t,Mze),r=M.multiplyByPoint(o,h.ZERO,Nze),s=h.normalize(M.multiplyByPointAsVector(o,h.UNIT_Y,tle),tle),a=ln.fromPointNormal(r,s,kze),c=h.normalize(M.multiplyByPointAsVector(o,h.UNIT_X,nle),nle),d=ln.fromPointNormal(r,c,Uze),u=1;n.push(h.clone(e[0]));let m=n[0],p=e.length;for(let g=1;g2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=M.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Gi.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(sle),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=ce.fromPoints(this._actualPositions),this._boundingVolumeWC=ce.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new ce}var rle=Cd.POSITION_INDEX=0,Kze=Cd.SHOW_INDEX=1,Jze=Cd.WIDTH_INDEX=2,Qze=Cd.MATERIAL_INDEX=3,E2=Cd.POSITION_SIZE_INDEX=4,jze=Cd.DISTANCE_DISPLAY_CONDITION=5,sle=Cd.NUMBER_OF_PROPERTIES=6;function hb(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(Cd.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,hb(this,Kze))}},positions:{get:function(){return this._positions},set:function(e){let t=xo(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&hb(this,E2),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=ce.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=ce.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),hb(this,rle),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,hb(this,Qze))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,hb(this,Jze))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,hb(this,E2)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){At.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=At.clone(e,this._distanceDisplayCondition),hb(this,jze))}}});Cd.prototype.update=function(){let e=M.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[rle]>0||this._propertiesChanged[E2]>0;if((!M.equals(e,this._modelMatrix)||i)&&(this._segments=Gi.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=ce.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=M.clone(e,this._modelMatrix),this._segments.positions.length!==t)hb(this,E2);else{let o=n.length;for(let r=0;r2){if(o[Hz]||o[ale]){let f=e.mode===oe.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=On.fromCartesian(f.center,ple),_=se.fromElements(x.low.x,x.low.y,x.low.z,f.radius,ble);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,_)}if(o[tKe]){let f=gle;f.x=0,f.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;l(x)&&(f.x=x.near,f.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,f)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c0){let Y=w.isTranslucent();a>=s?(b=new tt({owner:e}),n.push(b)):b=n[a],++a,R=Tt(p(w._uniforms),e._uniformMap),b.boundingVolume=ce.clone(I2,b.boundingVolume),b.modelMatrix=i,b.shaderProgram=G,b.vertexArray=x.va,b.renderState=Y?e._translucentRS:e._opaqueRS,b.pass=Y?Ge.TRANSLUCENT:Ge.OPAQUE,b.debugShowBoundingVolume=u,b.pickId="v_pickColor",b.uniformMap=R,b.count=F,b.offset=Z,Z+=F,F=0,c=!0,r.push(b)}w=X._material,w.update(o),P=A}let N=X._locatorBuckets,O=N.length;for(let Y=0;Y0&&(a>=s?(b=new tt({owner:e}),n.push(b)):b=n[a],++a,R=Tt(p(w._uniforms),e._uniformMap),b.boundingVolume=ce.clone(I2,b.boundingVolume),b.modelMatrix=i,b.shaderProgram=G,b.vertexArray=x.va,b.renderState=w.isTranslucent()?e._translucentRS:e._opaqueRS,b.pass=w.isTranslucent()?Ge.TRANSLUCENT:Ge.OPAQUE,b.debugShowBoundingVolume=u,b.pickId="v_pickColor",b.uniformMap=R,b.count=F,b.offset=Z,c=!0,r.push(b)),P=void 0}}n.length=a}Km.prototype.isDestroyed=function(){return!1};Km.prototype.destroy=function(){return yle(this),Kz(this),xle(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),me(this)};function oKe(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[Hz]?(i.bufferUsage!==Me.STREAM_DRAW&&(t=!0,i.bufferUsage=Me.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Me.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Me.STATIC_DRAW):i.frameCount--),t}var lle=[0,0,0];function dle(e,t,n){e._createVertexArray=!1,Kz(e),yle(e),aKe(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,d=[[]],u=0,m=e._polylineBuckets,p,g;for(p in m)m.hasOwnProperty(p)&&(g=m[p],g.updateShader(t,r,s),u+=g.lengthOfPositions);if(u>0){let f=e._mode,x=new Float32Array(6*u*3),_=new Float32Array(u*4),C,V=0,L=0,Z=0;for(p in m)if(m.hasOwnProperty(p)){g=m[p],g.write(x,_,V,L,Z,r,t,n),f===oe.MORPHING&&(l(C)||(C=new Float32Array(6*u*3)),g.writeForMorph(C,V));let R=g.lengthOfPositions;V+=6*R*3,L+=R*4,Z+=R*4,c=g.updateIndices(i,a,d,c)}let G=e._positionBufferUsage.bufferUsage,I=Me.STATIC_DRAW;e._positionBuffer=xt.createVertexBuffer({context:t,typedArray:x,usage:G});let v;l(C)&&(v=xt.createVertexBuffer({context:t,typedArray:C,usage:G})),e._texCoordExpandAndBatchIndexBuffer=xt.createVertexBuffer({context:t,typedArray:_,usage:I});let P=3*Float32Array.BYTES_PER_ELEMENT,w=4*Float32Array.BYTES_PER_ELEMENT,F=0,b=i.length;for(let R=0;R0){let E=new Uint16Array(o),X=xt.createIndexBuffer({context:t,typedArray:E,usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT});F+=a[R];let A=6*(R*(P*W.SIXTY_FOUR_KILOBYTES)-F*P),N=P+A,O=P+N,U=P+O,Y=P+U,k=P+Y,H=R*(w*W.SIXTY_FOUR_KILOBYTES)-F*w,J=[{index:Al.position3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:A,strideInBytes:6*P},{index:Al.position3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:N,strideInBytes:6*P},{index:Al.position2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:A,strideInBytes:6*P},{index:Al.position2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:N,strideInBytes:6*P},{index:Al.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:O,strideInBytes:6*P},{index:Al.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:U,strideInBytes:6*P},{index:Al.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:O,strideInBytes:6*P},{index:Al.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:U,strideInBytes:6*P},{index:Al.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:Y,strideInBytes:6*P},{index:Al.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:k,strideInBytes:6*P},{index:Al.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:Y,strideInBytes:6*P},{index:Al.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:Q.FLOAT,offsetInBytes:k,strideInBytes:6*P},{index:Al.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:Q.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:H}],te,z,q,ee;f===oe.SCENE3D?(z=e._positionBuffer,te="vertexBuffer",q=lle,ee="value"):f===oe.SCENE2D||f===oe.COLUMBUS_VIEW?(z=lle,te="value",q=e._positionBuffer,ee="vertexBuffer"):(z=v,te="vertexBuffer",q=e._positionBuffer,ee="vertexBuffer"),J[0][te]=z,J[1][te]=z,J[2][ee]=q,J[3][ee]=q,J[4][te]=z,J[5][te]=z,J[6][ee]=q,J[7][ee]=q,J[8][te]=z,J[9][te]=z,J[10][ee]=q,J[11][ee]=q;let fe=new ti({context:t,attributes:J,indexBuffer:X});e._vertexArrays.push({va:fe,buckets:d[R]})}}}function rKe(e,t){return t instanceof Pt?t.id:t}var ik=[];function sKe(e){let t=Oi._uniformList[e.type],n=t.length;ik.length=2*n;let i=0;for(let o=0;o1){a.update();let c=a.material,d=i[c.type];l(d)||(d=i[c.type]=new pf(c,t,n)),d.addPolyline(a)}}}function cKe(e,t){let n=t.mode;(e._mode!==n||!M.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=M.clone(e.modelMatrix),e._createVertexArray=!0)}function zz(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s0,_=g._index,C=this.getSegments(g,a),V=C.positions,L=C.lengths,Z=V.length,G=g.getPickId(s).color,I=0,v=0,P;for(let O=0;O0||Cs.x>0&&Wu.x<0)&&h.clone(Cs,Wu),(Cs.x<0&&Pu.x>0||Cs.x>0&&Pu.x<0)&&h.clone(Cs,Pu));let H=Y?2:0,J=k?2:4;for(let te=H;te2&&(r.setBatchedAttribute(_,2,E),r.setBatchedAttribute(_,3,X),r.setBatchedAttribute(_,4,A))}};var uKe=new h,mKe=new h,hKe=new h,ule=new h;pf.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r0&&(c=a[a.length-1]+1);let d=this.polylines,u=d.length;for(let m=0;m0)g[0]=x;else continue}else g=p._segments.lengths;let f=g.length;if(f>0){let x=0;for(let _=0;_W.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new Yz(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>W.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new Yz(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};pf.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o0){e._boundingVolume2D=ce.fromPoints(o,e._boundingVolume2D);let d=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(d.z,d.x,d.y)}return t1.positions=o,t1.lengths=e._segments.lengths,t1};var hle;pf.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*W.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=hle,c=6*s*3;!l(a)||a.lengthc&&(a=new Float32Array(a.buffer,0,c));let d=this.getSegments(t,i),u=d.positions,m=d.lengths,p=0,g=0,f=0,x;s=u.length;for(let _=0;_0||Cs.x>0&&Wu.x<0)&&h.clone(Cs,Wu),(Cs.x<0&&Pu.x>0||Cs.x>0&&Pu.x<0)&&h.clone(Cs,Pu));let Z=V?2:0,G=L?2:4;for(let I=Z;I{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,d=e._labelCollection,u=e._polylineCollection;n=e._positions;let m=e._batchIds,p=n.length/3;for(let g=0;g{e.isDestroyed()||(e._error=a)})}Eg.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let f=new Float64Array(g.packedBuffer),x=f[0];EKe(e,f),e._indices=Ae.getSizeInBytes(x)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),PKe(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function PKe(e){l(e._primitive)||(e._primitive=new Hx({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}fb.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};fb.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};fb.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};fb.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};fb.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=WKe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};fb.prototype.isDestroyed=function(){return!1};fb.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),me(this)};var v2=fb;var _9n=T(S(),1);var KMn=T(S(),1),w2=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function Qm(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ne.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=B.clone(B.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Qm.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function vKe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ae.packedLength+ne.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ae.pack(t,a,c),c+=ae.packedLength,ne.pack(o,a,c),c+=ne.packedLength,h.pack(r,a,c),a}var wKe=new bi("createVectorTilePolylines",5),n1={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function FKe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=vKe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},d=wKe.scheduleTask(c,a);if(l(d))return d.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._currentPositions=new Float32Array(u.currentPositions),e._previousPositions=new Float32Array(u.previousPositions),e._nextPositions=new Float32Array(u.nextPositions),e._expandAndWidth=new Float32Array(u.expandAndWidth),e._vertexBatchIds=new Uint16Array(u.batchIds);let m=u.indexDatatype;e._indices=m===Ae.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),AKe(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function AKe(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let d=xt.createVertexBuffer({context:t,typedArray:i,usage:Me.STATIC_DRAW}),u=xt.createVertexBuffer({context:t,typedArray:n,usage:Me.STATIC_DRAW}),m=xt.createVertexBuffer({context:t,typedArray:o,usage:Me.STATIC_DRAW}),p=xt.createVertexBuffer({context:t,typedArray:r,usage:Me.STATIC_DRAW}),g=xt.createVertexBuffer({context:t,typedArray:s,usage:Me.STATIC_DRAW}),f=xt.createIndexBuffer({context:t,typedArray:a,usage:Me.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ae.UNSIGNED_SHORT:Ae.UNSIGNED_INT}),x=[{index:n1.previousPosition,vertexBuffer:d,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:n1.currentPosition,vertexBuffer:u,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:n1.nextPosition,vertexBuffer:m,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:n1.expandAndWidth,vertexBuffer:p,componentDatatype:Q.FLOAT,componentsPerAttribute:2},{index:n1.a_batchId,vertexBuffer:g,componentDatatype:Q.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:x,indexBuffer:f}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var F2=new M,Tle=new h;function MKe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return M.clone(n,F2),M.multiplyByPoint(F2,e._center,Tle),M.setTranslation(F2,Tle,F2),F2},u_highlightColor:function(){return e._highlightColor}})}function NKe(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ue.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var kKe=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function UKe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(w2),o=n.getFragmentShaderCallback(!1,void 0,!1)(kKe),r=new De({defines:["VECTOR_TILE",zt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[md,i]}),s=new De({defines:["VECTOR_TILE"],sources:[o]});e._sp=tn.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:n1})}function DKe(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new tt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:Ge.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}Qm.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,d=0;for(r=0;r + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var V9n=T(S(),1),M2=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function pb(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ne.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new D(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=En.fromRectangle(e.rectangle,li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=B.clone(B.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(pb.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function zKe(e,t,n){let i=li.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;En.fromRectangle(c,o,r,n,a)}function KKe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+ae.packedLength+ne.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,ae.pack(t,a,c),c+=ae.packedLength,ne.pack(o,a,c),c+=ne.packedLength,h.pack(r,a,c),a}var JKe=new bi("createVectorTileClampedPolylines"),Ig={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function QKe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=KKe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},d=JKe.scheduleTask(c,a);if(l(d))return d.then(function(u){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(u.decodedPositions),e._decodedPositionOffsets=new Uint32Array(u.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(u.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(u.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(u.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(u.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(u.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(u.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(u.vertexBatchIds);let m=u.indexDatatype;e._indices=m===Ae.UNSIGNED_SHORT?new Uint16Array(u.indices):new Uint32Array(u.indices),jKe(e,t),e._ready=!0}).catch(u=>{e.isDestroyed()||(e._error=u)})}function jKe(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,d=e._indices,u=n.byteLength+i.byteLength;u+=o.byteLength+r.byteLength,u+=s.byteLength+a.byteLength,u+=c.byteLength+d.byteLength,e._trianglesLength=d.length/3,e._geometryByteLength=u;let m=xt.createVertexBuffer({context:t,typedArray:n,usage:Me.STATIC_DRAW}),p=xt.createVertexBuffer({context:t,typedArray:i,usage:Me.STATIC_DRAW}),g=xt.createVertexBuffer({context:t,typedArray:o,usage:Me.STATIC_DRAW}),f=xt.createVertexBuffer({context:t,typedArray:r,usage:Me.STATIC_DRAW}),x=xt.createVertexBuffer({context:t,typedArray:s,usage:Me.STATIC_DRAW}),_=xt.createVertexBuffer({context:t,typedArray:a,usage:Me.STATIC_DRAW}),C=xt.createVertexBuffer({context:t,typedArray:c,usage:Me.STATIC_DRAW}),V=xt.createIndexBuffer({context:t,typedArray:d,usage:Me.STATIC_DRAW,indexDatatype:d.BYTES_PER_ELEMENT===2?Ae.UNSIGNED_SHORT:Ae.UNSIGNED_INT}),L=[{index:Ig.startEllipsoidNormal,vertexBuffer:m,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:Ig.endEllipsoidNormal,vertexBuffer:p,componentDatatype:Q.FLOAT,componentsPerAttribute:3},{index:Ig.startPositionAndHeight,vertexBuffer:g,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:Ig.endPositionAndHeight,vertexBuffer:f,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:Ig.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:Ig.endFaceNormalAndHalfWidth,vertexBuffer:_,componentDatatype:Q.FLOAT,componentsPerAttribute:4},{index:Ig.a_batchId,vertexBuffer:C,componentDatatype:Q.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:L,indexBuffer:V}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var N2=new M,Sle=new h;function qKe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return M.clone(n,N2),M.multiplyByPoint(N2,e._center,Sle),M.setTranslation(N2,Sle,N2),N2},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function Cle(e){return Ue.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},backFunction:Un.EQUAL,backOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},reference:Ot.CESIUM_3D_TILE_MASK,mask:Ot.CESIUM_3D_TILE_MASK}})}function $Ke(e){l(e._rs)||(e._rs=Cle(!1),e._rs3DTiles=Cle(!0))}function eJe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(A2),o=n.getFragmentShaderCallback(!1,void 0,!0)(M2),r=new De({defines:["VECTOR_TILE",zt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[md,i]}),s=new De({defines:["VECTOR_TILE"],sources:[o]});e._sp=tn.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Ig})}function tJe(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new tt({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:Ge.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=tt.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=Ge.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===kn.TERRAIN||i===kn.BOTH)&&t.commandList.push(n),(i===kn.CESIUM_3D_TILE||i===kn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}pb.prototype.getPositions=function(e){return V_.getPolylinePositions(this,e)};pb.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o{e.isDestroyed()||(e._error=t)})}pb.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=sJe(this).then(QKe(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}qKe(this,t),eJe(this,t),$Ke(this);let n=e.passes;(n.render||n.pick)&&tJe(this,e)};pb.prototype.isDestroyed=function(){return!1};pb.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),me(this)};var k2=pb;var mNn=T(S(),1);var Qz=32767,aJe=new he,cJe=new h;function lJe(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);wn.zigZagDeltaDecode(s,a,c);let d=new Float64Array(e.length);for(let u=0;u0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let d=l(n)||l(i)||l(o),u=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(d&&u)throw new de("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r0)for(i=new Uint16Array(a),r=0;r0)for(o=new Uint16Array(c),r=0;r0&&(C=Wo(i,n,d),n+=d,u>0&&(V=new Uint8Array(t,n,u),V=new Uint8Array(V),n+=u));let L=y(x.POLYGONS_LENGTH,0),Z=y(x.POLYLINES_LENGTH,0),G=y(x.POINTS_LENGTH,0),I=L+Z+G,v=new Ap(e,I,C,V,dJe(e));if(e._batchTable=v,I===0)return;let P=new Om(x,_),w=P.getGlobalProperty("REGION");if(!l(w))throw new de("Feature table global property: REGION must be defined");let F=ae.unpack(w),b=w[4],R=w[5],E=e._tile.computedTransform,X=P.getGlobalProperty("RTC_CENTER",Q.FLOAT,3);l(X)?(X=h.unpack(X),M.multiplyByPoint(E,X,X)):(X=ae.center(F),X.height=W.lerp(b,R,.5),X=ne.WGS84.cartographicToCartesian(X));let A=uJe(x,_);if(n+=(4-n%4)%4,L>0){P.featuresLength=L;let N=y(P.getPropertyArray("POLYGON_COUNTS",Q.UNSIGNED_INT,1),P.getPropertyArray("POLYGON_COUNT",Q.UNSIGNED_INT,1));if(!l(N))throw new de("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let O=y(P.getPropertyArray("POLYGON_INDEX_COUNTS",Q.UNSIGNED_INT,1),P.getPropertyArray("POLYGON_INDEX_COUNT",Q.UNSIGNED_INT,1));if(!l(O))throw new de("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=N.reduce(function(z,q){return z+q*2},0),Y=O.reduce(function(z,q){return z+q},0),k=new Uint32Array(t,n,Y);n+=m;let H=new Uint16Array(t,n,U);n+=p;let J,te;l(x.POLYGON_MINIMUM_HEIGHTS)&&l(x.POLYGON_MAXIMUM_HEIGHTS)&&(J=P.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",Q.FLOAT,1),te=P.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",Q.FLOAT,1)),e._polygons=new v2({positions:H,counts:N,indexCounts:O,indices:k,minimumHeight:b,maximumHeight:R,polygonMinimumHeights:J,polygonMaximumHeights:te,center:X,rectangle:F,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:v,batchIds:A.polygons,modelMatrix:E})}if(Z>0){P.featuresLength=Z;let N=y(P.getPropertyArray("POLYLINE_COUNTS",Q.UNSIGNED_INT,1),P.getPropertyArray("POLYLINE_COUNT",Q.UNSIGNED_INT,1));if(!l(N))throw new de("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let O=P.getPropertyArray("POLYLINE_WIDTHS",Q.UNSIGNED_SHORT,1);if(!l(O)){O=new Uint16Array(Z);for(let te=0;te0){let N=new Uint16Array(t,n,G*3);n+=f,e._points=new P2({positions:N,batchIds:A.points,minimumHeight:b,maximumHeight:R,rectangle:F,batchTable:v})}}function jz(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}qm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};qm.prototype.getFeature=function(e){return l(this._features)||jz(this),this._features[e]};qm.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};qm.prototype.applyStyle=function(e){l(this._features)||jz(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};qm.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||jz(this),this._batchTable.update(e,t),this._ready=!0)};qm.prototype.pick=function(e,t,n){};qm.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};qm.prototype.isDestroyed=function(){return!1};qm.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),me(this)};function pJe(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c=0?i[r]:void 0}var Z_=yJe;var V5n=T(S(),1);var g5n=T(S(),1);function yb(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(yb.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});yb.prototype.hasProperty=function(e){return Mn.hasProperty(e,this._properties,this._class)};yb.prototype.hasPropertyBySemantic=function(e){return Mn.hasPropertyBySemantic(e,this._properties,this._class)};yb.prototype.getPropertyIds=function(e){return Mn.getPropertyIds(this._properties,this._class,e)};yb.prototype.getProperty=function(e){return Mn.getProperty(e,this._properties,this._class)};yb.prototype.setProperty=function(e,t){return Mn.setProperty(e,t,this._properties,this._class)};yb.prototype.getPropertyBySemantic=function(e){return Mn.getPropertyBySemantic(e,this._properties,this._class)};yb.prototype.setPropertyBySemantic=function(e,t){return Mn.setPropertyBySemantic(e,t,this._properties,this._class)};var O2=yb;function $z(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){$z._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new O2({tile:n,class:o})}}$z._oneTimeWarning=St;var Y2=$z;var z5n=T(S(),1);var X5n=T(S(),1);function xJe(e){let t=new Uint8Array(e),n=vm(t);if(n==="glTF"&&(n="glb"),Vs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=_Je(t);if(l(i.root))return{contentType:Vs.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:Vs.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:Vs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:Vs.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:Vs.VOXEL_JSON,jsonPayload:i};throw new de("Invalid tile content.")}function _Je(e){let t;try{t=Wo(e)}catch{throw new de("Invalid tile content.")}return t}var gf=xJe;function wu(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;sVJe(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function VJe(e,t,n){if(l(t))try{let i=gf(t);if(i.contentType===Vs.EXTERNAL_TILESET)throw new de("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===Vs.GEOMETRY||i.contentType===Vs.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=L_[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let d=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let m=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=m.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=R_(o,d));let u=Z_(o,d);return l(u)&&(a.group=new Dx({metadata:u})),a}catch(i){Rle(e,n,i)}}function Rle(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}wu.prototype.cancelRequests=function(){for(let e=0;ea?g=W.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,_=Math.ceil(f/t)+1,C=g/(x-1),V=f/(_-1),L=ae.northwest(e,r),Z=ae.center(e,ZJe);(n!==0||i!==0)&&(Z.longitude=0;f--)Ls.computePosition(t,n,!1,g,f,x),m[p++]=x.x,m[p++]=x.y,m[p++]=x.z;for(f=0,g=i-2;g>0;g--)Ls.computePosition(t,n,!1,g,f,x),m[p++]=x.x,m[p++]=x.y,m[p++]=x.z;let _=m.length/3*2,C=Ae.createTypedArray(m.length/3,_),V=0;for(let Z=0;Z0){Au.longitude=(t.west+t.east)*.5,Au.latitude=d;let x=n.cartographicToCartesian(Au,s1.origin);h.clone(c,s1.direction);let _=ln.fromPointNormal(e.southwestCornerCartesian,e.westNormal,wle);qn.rayPlane(s1,_,e.southwestCornerCartesian),u=n.geodeticSurfaceNormal(x,sk)}else u=n.geodeticSurfaceNormalCartographic(ae.southeast(t),sk);let m=h.cross(u,a,vle);h.normalize(m,e.southNormal);let p=t.north,g;if(p<0){Au.longitude=(t.west+t.east)*.5,Au.latitude=p;let x=n.cartographicToCartesian(Au,s1.origin);h.negate(c,s1.direction);let _=ln.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,wle);qn.rayPlane(s1,_,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,sk)}else g=n.geodeticSurfaceNormalCartographic(ae.northwest(t),sk);let f=h.cross(a,g,vle);h.normalize(f,e.northNormal)}var NJe=new h,kJe=new h,UJe=new h(0,-1,0),DJe=new h(0,0,-1),Fle=new h;function BJe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!ae.contains(e.rectangle,o)){let d=e.southwestCornerCartesian,u=e.northeastCornerCartesian,m=e.westNormal,p=e.southNormal,g=e.eastNormal,f=e.northNormal;t.mode!==oe.SCENE3D&&(d=t.mapProjection.project(ae.southwest(e.rectangle),NJe),d.z=d.y,d.y=d.x,d.x=0,u=t.mapProjection.project(ae.northeast(e.rectangle),kJe),u.z=u.y,u.y=u.x,u.x=0,m=UJe,g=h.UNIT_Y,p=DJe,f=h.UNIT_Z);let x=h.subtract(i,d,Fle),_=h.dot(x,m),C=h.dot(x,p),V=h.subtract(i,u,Fle),L=h.dot(V,g),Z=h.dot(V,f);_>0?r+=_*_:L>0&&(r+=L*L),C>0?r+=C*C:Z>0&&(r+=Z*Z)}let s,a,c;if(t.mode===oe.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let d=s-c;r+=d*d}else if(s0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):ln.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,ln.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=uK(ln.projectPointOntoPlane(c,t,dK),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=Ble(t,p[0],p[1]),h.distance(a,t)}let u=Number.MAX_VALUE,m;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=uK(ln.projectPointOntoPlane(c,t,dK),i[r],c,this._edgeNormals[n[r]]),m=h.distanceSquared(a,t),m3)return a=uK(ln.projectPointOntoPlane(this._boundingPlanes[1],t,dK),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let d=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+d)%4]):h.distance(t,this._vertices[4+(n[1]-2+d)%4])};var sQe=new h,aQe=new h;function Ble(e,t,n){let i=h.subtract(n,t,sQe),o=h.subtract(e,t,aQe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var cQe=new ln(h.UNIT_X,0);function uK(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c0&&(f=!0,m+=d),s1||oi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?M.unpack(n.transform):M.clone(M.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=M.multiply(a,this.transform,new M),d=l(i)?i._initialTransform:M.IDENTITY;this._initialTransform=M.multiply(d,this.transform,new M),this.computedTransform=c,this.metadata=Y2(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let u;l(s)&&l(s.boundingVolume)&&(u=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=u,this._contentBoundingVolume2D=void 0;let m;l(n.viewerRequestVolume)&&(m=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=m,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,$o._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&$o._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?No.REPLACE:No.ADD):l(i)?p=i.refine:p=No.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,f=!1,x,_,C;if(t=Ee.createIfNeeded(t),r)x=Do.UNLOADED,_=t.clone();else if(l(s)){let G=s.uri;l(s.url)&&($o._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),G=s.url),G===""?($o._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new i1(e,this),f=!0,x=Do.READY):(x=Do.UNLOADED,_=t.getDerivedResource({url:G}),C=ja.getServerKey(_.getUrlComponent()))}else g=new i1(e,this),f=!0,x=Do.READY;this._content=g,this._contentResource=_,this._contentState=x,this._expiredContent=void 0,this._serverKey=C,this.hasEmptyContent=f,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let V=n.expire,L,Z;l(V)&&(L=V.duration,l(V.date)&&(Z=j.fromIso8601(V.date))),this.expireDuration=L,this.expireDate=Z,this.lastStyleTime=0,this._optimChildrenWithinParent=vu.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=B.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new j,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}$o._deprecationWarning=ls;Object.defineProperties($o.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new B),B.clone(this._color)},set:function(e){this._color=B.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Do.READY}},contentUnloaded:{get:function(){return this._contentState===Do.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Do.EXPIRED}},contentFailed:{get:function(){return this._contentState===Do.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var Wg=new h;function pQe(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,Wg),c=h.add(s.positionWC,a,Wg),d=h.subtract(c,r,Wg);if(h.magnitude(d)>o){let Z=h.normalize(d,Wg),G=h.multiplyByScalar(Z,o,Wg),I=h.add(r,G,Wg),v=h.subtract(I,s.positionWC,Wg),P=h.normalize(v,Wg);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,P))}else e._foveatedFactor=0;let p=e.refine===No.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===wo.PRELOAD_FLIGHT||n._pass===wo.PRELOAD)return!1;let f=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*f;if(e._foveatedFactor<=x)return!1;let _=f-x,C=W.clamp((e._foveatedFactor-x)/_,0,1),V=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,C),L=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-V<=L}var Qle=new j;$o.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,d=a.frustum,u=c.drawingBufferWidth,m=c.drawingBufferHeight*o,p;if(e.mode===oe.SCENE2D||d instanceof an){let g=d.offCenterFrustum;l(g)&&(d=g);let f=Math.max(d.top-d.bottom,d.right-d.left)/Math.max(u,m);p=s/f}else{let g=Math.max(this._distanceToCamera,W.EPSILON7),f=d.sseDenominator;if(p=s*m/(g*f),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,_=i.dynamicScreenSpaceErrorFactor,C=W.fog(g,x)*_;p-=C}}return p/=e.pixelRatio,p};function bQe(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function gQe(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}$o.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:ms.MASK_INDETERMINATE;this.updateTransform(i,e),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ms.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=gQe(n,this),this._priorityProgressiveResolution=bQe(n,this),this.priorityDeferred=pQe(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};$o.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=j.now(Qle);j.lessThan(this.expireDate,e)&&(this._contentState=Do.EXPIRED,this._expiredContent=this._content)}};function yQe(e){if(!l(e.expireDuration))return;let t=j.now(Qle);j.addSeconds(t,e.expireDuration,t),l(e.expireDate)?j.lessThan(e.expireDate,t)&&j.clone(t,e.expireDate):e.expireDate=j.clone(t)}function xQe(e){return function(){return e._priority}}$o.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?_Qe(this):SQe(this)};function _Qe(e){let t=e._content,n=e._tileset;if(!l(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new H2(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=Do.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=Do.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=Do.FAILED,o})}async function TQe(e,t,n,i,o){let r=e._contentState;e._contentState=Do.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===jn.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Do.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===jn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await CQe(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Do.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Do.FAILED,a}}function SQe(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Ho({throttle:!0,throttleByServer:!0,type:cs.TILES3D,priorityFunction:xQe(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return TQe(e,o,i,n,r)}async function CQe(e,t){let n=gf(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===Vs.GEOMETRY||n.contentType===Vs.VECTOR,(n.contentType===Vs.IMPLICIT_SUBTREE||n.contentType===Vs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===Vs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=L_[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,d=e.implicitCoordinates;o.metadata=c.getContentMetadataView(d,0)}else e.hasImplicitContent||(o.metadata=R_(i,s));let a=Z_(i,s);return l(a)&&(o.group=new Dx({metadata:a})),o}$o.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};$o.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Do.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var jle=new ce;function fK(e,t){if(t.mode!==oe.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=ce.projectTo2D(n,t.mapProjection,jle);e._boundingVolume2D=new Sb(i.center,i.radius)}return t.mode!==oe.SCENE3D?e._boundingVolume2D:e._boundingVolume}function VQe(e,t){if(t.mode!==oe.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=ce.projectTo2D(n,t.mapProjection,jle);e._contentBoundingVolume2D=new Sb(i.center,i.radius)}return t.mode!==oe.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}$o.prototype.visibility=function(e,t){let n=e.cullingVolume,i=fK(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==Jt.INSIDE,a===Jt.OUTSIDE)return ms.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==Jt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};$o.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return Jt.INSIDE;if(this._visibilityPlaneMask===ms.MASK_INSIDE)return Jt.INSIDE;let t=e.cullingVolume,n=VQe(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==Jt.INSIDE,s===Jt.OUTSIDE)return Jt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==Jt.OUTSIDE,s===Jt.INSIDE)return Jt.OUTSIDE}return t.computeVisibility(n)};$o.prototype.distanceToTile=function(e){return fK(this,e).distanceToCamera(e)};var LQe=new h;$o.prototype.distanceToTileCenter=function(e){let n=fK(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,LQe);return h.dot(e.camera.directionWC,i)};$o.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var qle=new $,$le=new h,RQe=new $,pK=new h,ede=new ae,tde=new En,hK=new M;function ZQe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],pK),o=$.fromArray(e,3,RQe);i=M.multiplyByPoint(t,i,i);let r=M.getMatrix3(t,qle);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new Ld(i,o)}function GQe(e,t,n,i){let o=ae.unpack(e,0,ede),r=e[4],s=e[5],a=En.fromRectangle(o,r,s,ne.WGS84,tde),c=a.center,d=a.halfAxes;t=M.multiplyTransformation(t,M.inverseTransformation(n,hK),hK),c=M.multiplyByPoint(t,c,c);let u=M.getMatrix3(t,qle);return d=$.multiply(u,d,d),l(i)&&i instanceof Ld?(i.update(c,d),i):new Ld(c,d)}function EQe(e,t,n,i){if(!M.equalsEpsilon(t,n,W.EPSILON8))return GQe(e,t,n,i);let o=ae.unpack(e,0,ede);return l(i)?(i.rectangle=ae.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(ne.WGS84),i):new Mu({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function IQe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],pK),o=e[3];i=M.multiplyByPoint(t,i,i);let r=M.getScale(t,$le),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new Sb(i,o)}$o.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=s_.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new de("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new Q2(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=ZQe(r,t,n);return this._verticalExaggeration!==1&&zle(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=EQe(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof Ld?zle(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=_r.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=_r.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(ne.WGS84))),c}if(l(a)){let c=IQe(a,t,n);if(this._verticalExaggeration!==1){let d=_r.getPosition(c.center,ne.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,pK),u=c.radius*this._verticalExaggeration;c.update(d,u)}return c}throw new de("boundingVolume must contain a sphere, region, or box")};var XQe=h.unpackArray(new Array(8*3).fill(0));function zle(e,t,n){let i=e.boundingVolume.computeCorners(XQe).map(r=>_r.getPosition(r,ne.WGS84,t,n,r)),o=En.fromPoints(i,tde);e.update(o.center,o.halfAxes)}$o.prototype.updateTransform=function(e,t){e=y(e,M.IDENTITY);let n=M.multiplyTransformation(e,this.transform,hK),i=!M.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&M.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};$o.prototype.updateGeometricErrorScale=function(){let e=M.getScale(this.computedTransform,$le),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function WQe(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=B.WHITE:c=B.DARKGRAY:c=B.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let d=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");d.color=Kt.toValue(c,d.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(B.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(B.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=B.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function PQe(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=Do.FAILED,o}}function vQe(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function wQe(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}$o.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;vQe(this,e),wQe(this,e),WQe(this,e,t,n),PQe(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;se.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};F_.prototype.trim=function(){this._trimTiles=!0};var tP=F_;var JBn=T(S(),1);function uk(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function gK(e,t){let n;return t==="_loadTimestamp"?n=j.toDate(e).getTime():n=e,n}uk.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=gK(e,n),this._referenceMaximum[n]=gK(t,n)};function MQe(e,t){let n=e.tilePropertyName;if(l(n)){let i=gK(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var bK=[new B(.1,.1,.1,1),new B(.153,.278,.878,1),new B(.827,.231,.49,1),new B(.827,.188,.22,1),new B(1,.592,.259,1),new B(1,.843,0,1)];uk.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=MQe(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+W.EPSILON7,c=W.clamp(i-o,0,s)/s,d=bK.length-1,u=c*d,m=Math.floor(u),p=Math.ceil(u),g=u-m,f=bK[m],x=bK[p],_=B.clone(B.WHITE);_.red=W.lerp(f.red,x.red,g),_.green=W.lerp(f.green,x.green,g),_.blue=W.lerp(f.blue,x.blue,g),e._debugColor=_};uk.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var nP=uk;var qBn=T(S(),1);function f1(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}f1.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function mk(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,d=t.texturesByteLength,u=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-d:d,e.batchTableByteLength+=n?-u:u):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let m=o.length;for(let p=0;p>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function xK(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}rP.encode2D=function(e,t){return(rde(e)|rde(t)<<1)>>>0};rP.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=sde(e),t[1]=sde(e>>1),t};rP.encode3D=function(e,t,n){return yK(e)|yK(t)<<1|yK(n)<<2};rP.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=xK(e),t[1]=xK(e>>1),t[2]=xK(e>>2),t};var Pg=rP;function Bo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===jr.OCTREE&&(this.z=e.z)}Object.defineProperties(Bo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===jr.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===jr.OCTREE?Pg.encode3D(this.x,this.y,this.z):Pg.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===jr.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Bo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===jr.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Bo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===jr.OCTREE?this.z===e.z:!0)};Bo.prototype.isImplicitTilesetRoot=function(){return this.level===0};Bo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Bo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Bo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===jr.OCTREE&&(e.z=this.z),e};var ade=[0,0,0];Bo.fromMortonIndex=function(e,t,n,i){let o;return e===jr.OCTREE?(o=Pg.decode3D(i,ade),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=Pg.decode2D(i,ade),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Bo.fromTileIndex=function(e,t,n){let i,o,r;return e===jr.OCTREE?(i=Math.floor(W.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(W.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Bo.fromMortonIndex(e,t,i,r)};var M_=Bo;var I3n=T(S(),1);var V3n=T(S(),1);function Rb(){}Rb.selectTiles=function(e,t){pe.throwInstantiationError()};Rb.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};Rb.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};Rb.selectTile=function(e,t){if(e.contentVisibility(t)===Jt.OUTSIDE)return;e._wasSelectedLastFrame=!0;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];cde(r,t),e._visible=r._visible;return}if(BQe(e,t)){e._visible=!1;return}let i=e.refine===No.REPLACE,o=e._optimChildrenWithinParent===vu.USE_OPTIMIZATION;if(i&&o&&n&&!OQe(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function BQe(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==No.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function OQe(e,t){let n=!1,i=e.children;for(let o=0;o0;){sP.stackMaximumLength=Math.max(sP.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===No.ADD,d=a.refine===No.REPLACE,u=HQe(a);u&&zQe(a,s,t),(c||d&&!u)&&(KQe(e,a),o(a,t),JQe(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return sP.stack.trim(sP.stackMaximumLength),n};function HQe(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function zQe(e,t,n){let{children:i}=e;for(let o=0;o0;){cP.stackMaximumLength=Math.max(cP.stackMaximumLength,a.length);let c=a.pop(),d=c.parent,u=!l(d)||d._refines;c._refines=i(c)?QQe(c,a,t)&&u:!1;let m=!c._refines&&u;c.hasRenderableContent?c.refine===No.ADD?(_K(c,t),o(c,t)):c.refine===No.REPLACE&&(o(c,t),m&&_K(c,t)):(n._emptyTiles.push(c),o(c,t),m&&_K(c,t)),r(c,t),s(c,t)}}function qQe(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Ys,s=!0,a=lP.stack;for(a.push(e);a.length>0;){lP.stackMaximumLength=Math.max(lP.stackMaximumLength,a.length);let c=a.pop(),d=c.children,u=d.length,m=!c.hasRenderableContent&&n(c);if(!m&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),m)for(let p=0;p0;){mP.stackMaximumLength=Math.max(mP.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;cn._depth+e.skipLevels)}function i4e(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Ys;for(let d=0;dt:e._screenSpaceError>t:!0}function r4e(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=Ys,c=uP.stack;for(c.push(e);c.length>0;){uP.stackMaximumLength=Math.max(uP.stackMaximumLength,c.length);let d=c.pop();t4e(d,t);let u=d.parent,m=!l(u)||u._refines;d._refines=o(d)?i4e(d,c,t)&&m:!1;let p=!d._refines&&m;d.hasRenderableContent?d.refine===No.ADD?(hk(d,t),r(d,t)):d.refine===No.REPLACE&&(o4e(d,i)?(r(d,t),p&&hk(d,t)):p?(hk(d,t),r(d,t)):n4e(n,d)&&r(d,t)):(n._emptyTiles.push(d),r(d,t),p&&hk(d,t)),s(d,t),a(d,t)}}function s4e(e,t){let{selectTile:n,canTraverse:i}=Ys,{stack:o,ancestorStack:r}=Zb,s;for(o.push(e);o.length>0||r.length>0;){if(Zb.stackMaximumLength=Math.max(Zb.stackMaximumLength,o.length),Zb.ancestorStackMaximumLength=Math.max(Zb.ancestorStackMaximumLength,r.length),r.length>0){let d=r.peek();if(d._stackLength===o.length){r.pop(),d!==s&&(d._finalResolution=!1),n(d,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===No.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let d=a.children;for(let u=0;uli._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Ft.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=M.clone(s._initialClippingPlanesOriginMatrix),s};er.loadJson=function(e){return Ee.createIfNeeded(e).fetchJson()};er.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};er.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new de("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new de("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&er.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=mde(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===No.ADD;let d=c._header.children;if(l(d))for(let u=0;u_.minimumRadius){let L=he.fromCartesian(V,_,c4e);n=h.normalize(a.positionWC,hde),i=a.directionWC,o=a.positionCartographic.height,r=0,s=L.height*2}else{let L=M.multiplyByPoint(x,a.positionWC,u4e);if(n=h.UNIT_Z,i=M.multiplyByPointAsVector(x,a.directionWC,m4e),i=h.normalize(i,i),o=L.z,d instanceof Ld){let Z=$.getColumn(C.halfAxes,2,h4e),G=h.magnitude(Z);r=V.z-G,s=V.z+G}else if(d instanceof Sb){let Z=C.radius;r=V.z-Z,s=V.z+Z}}}let u=e.dynamicScreenSpaceErrorHeightFalloff,m=r+(s-r)*u,p=s,g=W.clamp((o-m)/(p-m),0,1),f=1-Math.abs(h.dot(i,n));f=f*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*f}function p4e(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{bde(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?E4e(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function pde(e,t){return e._priority-t._priority}er.prototype.postPassesUpdate=function(e){l(this._root)&&(b4e(this,e),X4e(this,e),this._cache.unloadTiles(this,yde),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};er.prototype.prePassesUpdate=function(e){if(!l(this._root))return;C4e(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=j.clone(e.time)),this._timeSinceLoad=Math.max(j.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&f4e(this,e),e.newFrame&&this._cache.reset()};function b4e(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o=1;if(r._contentState!==Do.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function g4e(e){let t=e._requestedTiles;t.sort(pde);for(let n=0;n0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`),console.log(e.stack))}function y4e(e){let t=e._processingQueue,n=0;for(let i=0;i0&&(t[i-n]=o)}t.length-=n}var x4e=new he,_4e=new he,T4e=new h;function S4e(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=he.clone(r.positionCartographic,x4e),c=he.fromCartesian(o.center,s,_4e);l(c)&&(a.height=c.height);let d=he.toCartesian(a,s,T4e);h.distance(d,o.center)<=o.radius&&n.afterRender.push(()=>{l(r.callback)&&r.callback(a),r.invoked=!1})}}function C4e(e,t){y4e(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;cs){a=!0;break}let d=n[c];try{d.process(e,t),d.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(d))}catch(u){--r.numberOfTilesProcessing,bde(u,e,d)}}e.totalMemoryUsageInBytes0&&V4e(e)}function V4e(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${fde(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${fde(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ei({stencil:0,pass:Ge.CESIUM_3D_TILE,renderState:Ue.fromCache({stencilMask:Ot.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:d}=e,u=n.isRender,m=i.length;for(let f=0;f=0;--_)i[m+x+_]=i[m+_];for(let _=0;_0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new ff),Z4e(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var gde=[];function E4e(e,t){let n=t,i=gde;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r{t.push(Et.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;oi.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}er.prototype.getTraversal=function(e){let{pass:t}=e;return t===wo.MOST_DETAILED_PRELOAD||t===wo.MOST_DETAILED_PICK?aP:this.isSkippingLevelOfDetail?hP:dP};er.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};er.prototype.updateForPass=function(e,t){let n=t.pass;if(n===wo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===wo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===wo.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=wo.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),d=c.length;if(e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r),s.isRender){let p=this._environmentMapManager;l(this._root)&&(p.position=this.boundingSphere.center),p.update(e)}let u=this._clippingPolygons;l(u)&&u.enabled&&u.queueCommands(e);let m=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=v4e(this,e,m,s)),a&&(c.length=d),e.commandList=i,e.camera=o,e.cullingVolume=r};er.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};er.prototype.isDestroyed=function(){return!1};er.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=gde;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a{let u=ce.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),m=ce.distanceSquaredTo(d.contentBoundingVolume.boundingSphere,e.origin);return u-m});let a;for(let c=0;c-1;i--)CK(this,e[i],t,n);return me(this)};vg.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return ft.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(ce.clone(i.boundingSphere,t),ft.DONE):ft.FAILED:ft.PENDING};vg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(CK(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],CK(this,r,a,c),s.remove(r.id)};function CK(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function U4e(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await ua.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var fP=vg;var _Yn=T(S(),1);var D4e=B.WHITE,B4e=B.BLACK,O4e=new D(2,2);function p1(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new be,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(p1.prototype,{isConstant:{get:function(){return K.isConstant(this._evenColor)&&K.isConstant(this._oddColor)&&K.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:ue("evenColor"),oddColor:ue("oddColor"),repeat:ue("repeat")});p1.prototype.getType=function(e){return"Checkerboard"};var Y4e=new j;p1.prototype.getValue=function(e,t){return l(e)||(e=j.now(Y4e)),l(t)||(t={}),t.lightColor=K.getValueOrClonedDefault(this._evenColor,e,D4e,t.lightColor),t.darkColor=K.getValueOrClonedDefault(this._oddColor,e,B4e,t.darkColor),t.repeat=K.getValueOrDefault(this._repeat,e,O4e),t};p1.prototype.equals=function(e){return this===e||e instanceof p1&&K.equals(this._evenColor,e._evenColor)&&K.equals(this._oddColor,e._oddColor)&&K.equals(this._repeat,e._repeat)};var b1=p1;var MYn=T(S(),1);var XYn=T(S(),1);var _de={id:void 0};function pP(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function hc(e){this._owner=e,this._entities=new Zt,this._addedEntities=new Zt,this._removedEntities=new Zt,this._changedEntities=new Zt,this._suspendCount=0,this._collectionChanged=new be,this._id=Bn(),this._show=!0,this._firing=!1,this._refire=!1}hc.prototype.suspendEvents=function(){this._suspendCount++};hc.prototype.resumeEvents=function(){this._suspendCount--,pP(this)};Object.defineProperties(hc.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t-1;c--)s=a[c],Sde(e,p,g,s);for(r=n-1;r>=0;r--)for(d=t[r],d.collectionChanged.addEventListener(Nr.prototype._onCollectionChanged,e),a=d.values,g=d.id,c=a.length-1;c>-1;c--){s=a[c],Tde(e,p,g,s);let x=m.getById(s.id);l(x)||(x=u.getById(s.id),l(x)?VK(x):(pk.id=s.id,x=new jo(pk)),m.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),u.suspendEvents(),u.removeAll();let f=m.values;for(r=0;r=0;a--)c=i[a].getById(x),l(c)&&(l(d)||(d=r.getById(x),VK(d)),d.merge(c));l(d)||r.removeById(x),d=void 0}let g=t.length;for(s=0;s=0;a--)c=i[a].getById(x),l(c)&&(l(d)||(d=r.getById(x),l(d)?VK(d):(pk.id=x,d=new jo(pk),r.add(d))),d.merge(c));d=void 0}r.resumeEvents()};Nr.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),d=c[t],u=!l(d),m=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let f=g[t];if(l(f)){if(m)if(m=!1,l(f.merge)&&l(f.clone))d=f.clone(d);else{d=f;break}d.merge(f)}}}u&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=d};var LK=Nr;var mHn=T(S(),1);var rHn=T(S(),1);var kYn=T(S(),1);function RK(){this._removalFunctions=[]}RK.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};RK.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};kr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};kr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};kr.prototype.contains=function(e){return this.indexOf(e)>=0};var ZK=new Vn;kr.prototype.indexOf=function(e){let t=this._intervals;ZK.start=e,ZK.stop=e;let n=Eo(t,ZK,EK);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-10&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i0&&(o=j.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(j.greaterThan(e.stop,n[i-1].stop)?e=new Vn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Vn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=j.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Vn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Vn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Vn({start:e.start,stop:j.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:j.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Vn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};kr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Eo(t,e,EK);n<0&&(n=~n);let i=!1;for(n>0&&(j.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(j.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Vn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Vn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),bP[2]=pm(d)?29:28;a>bP[c]||c>=13;)a>bP[c]&&(a-=bP[c],++c),c>=13&&(--c,d+=Math.floor(c/12),c=c%12,++c),bP[2]=pm(d)?29:28;return fc.millisecond=i,fc.second=o,fc.minute=r,fc.hour=s,fc.day=a,fc.month=c,fc.year=d,j.fromGregorianDate(fc,n)}var H4e=new j,z4e=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function Vde(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(z4e);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),j.toGregorianDate(j.fromIso8601(e,H4e),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var gP=new mp;kr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=j.fromIso8601(n[0]),o=j.fromIso8601(n[1]),r=[];if(!Vde(n[2],gP))r.push(i,o);else{let s=j.clone(i);for(r.push(s);j.compare(s,o)<0;)s=GK(s,gP),j.compare(o,s)<=0&&j.clone(o,s),r.push(s)}return kr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};kr.fromIso8601DateArray=function(e,t){return kr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return j.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};kr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let d=0;d=0?-a:a}var dje=new h(-1,0,0),k_=new M,uje=new M,WK=new $,mje=$.IDENTITY.clone(),hje=new h,fje=new se,Lde=new h;function Gb(e,t,n,i,o,r,s,a){let c=hje,d=fje;k_=Ft.eastNorthUpToFixedFrame(e,o,k_),c=M.multiplyByPointAsVector(k_,dje,c),c=h.normalize(c,c);let u=lje(c,t,e,o);WK=$.fromRotationZ(u,WK),Lde.z=r,k_=M.multiplyTransformation(k_,M.fromRotationTranslation(WK,Lde,uje),k_);let m=mje;m[0]=s;for(let p=0;p0){let x=d?2:1;for(let _=0;_=0};var gje=new h,yje=new h;yP.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=cje(e,r),a=i._granularity,c=i._cornerType,d=o?bje(t,n):Rde(t,n),u=o?Rde(t,n):void 0,m=n.height/2,p=n.width/2,g=e.length,f=[],x=o?[]:void 0,_=$4e,C=eje,V=tje,L=nje,Z=ije,G=oje,I=rje,v=sje,P=aje,w=e[0],F=e[1];L=r.geodeticSurfaceNormal(w,L),_=h.subtract(F,w,_),_=h.normalize(_,_),v=h.cross(L,_,v),v=h.normalize(v,v);let b=s[0],R=s[1];o&&(x=Gb(w,v,u,x,r,b+m,1,1)),P=h.clone(w,P),w=F,C=h.negate(_,C);let E,X;for(let O=1;OXe;p--)Te=W.PI_OVER_TWO-p*ye,ee[le++]=1-fe*(1+Math.cos(Te)),ee[le++]=.5*(1+Math.sin(Te));for(p=Xe;p>0;p--)Te=W.PI_OVER_TWO-ye*p,ee[le++]=1-_e*(1+Math.cos(Te)),ee[le++]=.5*(1+Math.sin(Te));for(p=u-_;p>0;p--)ee[le++]=p*_e,ee[le++]=1;for(p=1;p0;p--)ee[le++]=(p-1)*_e,ee[le++]=1}c.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:ee})}return t.normal&&(c.normal=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:I.normals})),t.tangent&&(c.tangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:I.tangents})),t.bitangent&&(c.bitangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:I.bitangents})),{attributes:c,indices:U}}function Xje(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,d;if(t.normal||t.bitangent||t.tangent){let u=t.normal?new Float32Array(s*6):void 0,m=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=Ude,f=Dde,x=Tk,_=Sk,C=Ije,V=Bde,L=c;for(d=0;d-t?(o=Mje,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),MK(e,o,i)};xf.prototype.computeHorizonCullingPoint=function(e,t,n){return sue(this._ellipsoid,e,t,n)};var oue=ne.clone(ne.UNIT_SPHERE);xf.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=rue(this._ellipsoid,n,oue);return sue(o,e,t,i)};xf.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return aue(this._ellipsoid,e,t,n,i,o)};xf.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=rue(this._ellipsoid,o,oue);return aue(s,e,t,n,i,r)};var Nje=[];xf.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=ae.subsample(e,t,0,Nje),o=ce.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var kje=new h;function rue(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,kje);e=ne.fromCartesian3(i,n)}return e}function sue(e,t,n,i){l(i)||(i=new h);let o=due(e,t),r=0;for(let s=0,a=n.length;s0:s>o&&s*s/h.magnitudeSquared(r)>o)}var Uje=new h,Dje=new h;function cue(e,t,n){let i=e.transformPositionToScaledSpace(t,Uje),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,Dje);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),d=1/r,u=Math.sqrt(o-1)*d;return 1/(a*d-c*u)}function lue(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var AK=new h;function due(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,AK),h.normalize(AK,AK))}var Xb=xf;var BKn=T(S(),1);function Vr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Ut.clone(n)),l(i)&&(i=Ut.clone(i)),l(o)&&(o=At.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=B.clone(y(e.color,B.WHITE)),this._outlineColor=B.clone(y(e.outlineColor,B.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1,this._splitDirection=y(e.splitDirection,vr.NONE)}var uue=Vr.SHOW_INDEX=0,fue=Vr.POSITION_INDEX=1,Bje=Vr.COLOR_INDEX=2,Oje=Vr.OUTLINE_COLOR_INDEX=3,Yje=Vr.OUTLINE_WIDTH_INDEX=4,Hje=Vr.PIXEL_SIZE_INDEX=5,zje=Vr.SCALE_BY_DISTANCE_INDEX=6,Kje=Vr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,Jje=Vr.DISTANCE_DISPLAY_CONDITION_INDEX=8,Qje=Vr.DISABLE_DEPTH_DISTANCE_INDEX=9,jje=Vr.SPLIT_DIRECTION_INDEX=10;Vr.NUMBER_OF_PROPERTIES=11;function Rd(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(Vr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Rd(this,uue))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Rd(this,fue))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Ut.equals(t,e)||(this._scaleByDistance=Ut.clone(e,t),Rd(this,zje))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Ut.equals(t,e)||(this._translucencyByDistance=Ut.clone(e,t),Rd(this,Kje))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Rd(this,Hje))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),Rd(this,Bje))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;B.equals(t,e)||(B.clone(e,t),Rd(this,Oje))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Rd(this,Yje))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){At.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=At.clone(e,this._distanceDisplayCondition),Rd(this,Jje))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Rd(this,Qje))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Rd(this,uue))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,Rd(this,jje))}}});Vr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};Vr.prototype._getActualPosition=function(){return this._actualPosition};Vr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Rd(this,fue)};var mue=new se;Vr._computeActualPosition=function(e,t,n){return t.mode===oe.SCENE3D?e:(M.multiplyByPoint(n,e,mue),Mi.computeActualEllipsoidPosition(t,mue))};var hue=new se;Vr._computeScreenSpacePosition=function(e,t,n,i){let o=M.multiplyByVector(e,se.fromElements(t.x,t.y,t.z,1,hue),hue);return Mi.worldToWindowCoordinates(n,o,i)};Vr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new D);let i=n.modelMatrix,o=Vr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};Vr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new Ke),n.x=r,n.y=s,n.width=a,n.height=c,n};Vr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&B.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&B.equals(this._outlineColor,e._outlineColor)&&Ut.equals(this._scaleByDistance,e._scaleByDistance)&&Ut.equals(this._translucencyByDistance,e._translucencyByDistance)&&At.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};Vr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Rs=Vr;var _Jn=T(S(),1);var YKn=T(S(),1),kg=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; +in float v_splitDirection; + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var zKn=T(S(),1),VP=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 distanceDisplayConditionAndDisableDepthAndSplitDirection; // near, far, disableDepthTestDistance, splitDirection + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; +out float v_splitDirection; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.x; + float farSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepthAndSplitDirection.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; + v_splitDirection = distanceDisplayConditionAndDisableDepthAndSplitDirection.w; +} +`;var qje=Rs.SHOW_INDEX,UK=Rs.POSITION_INDEX,pue=Rs.COLOR_INDEX,$je=Rs.OUTLINE_COLOR_INDEX,e8e=Rs.OUTLINE_WIDTH_INDEX,t8e=Rs.PIXEL_SIZE_INDEX,bue=Rs.SCALE_BY_DISTANCE_INDEX,gue=Rs.TRANSLUCENCY_BY_DISTANCE_INDEX,yue=Rs.DISTANCE_DISPLAY_CONDITION_INDEX,n8e=Rs.DISABLE_DEPTH_DISTANCE_INDEX,i8e=Rs.SPLIT_DIRECTION_INDEX,DK=Rs.NUMBER_OF_PROPERTIES,bc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepthAndSplitDirection:5};function Bu(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(DK),this._maxPixelSize=1,this._baseVolume=new ce,this._baseVolumeWC=new ce,this._baseVolume2D=new ce,this._boundingVolume=new ce,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._modelMatrix=M.clone(M.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Lo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=oe.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW,Me.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Bu.prototype,{length:{get:function(){return BK(this),this._pointPrimitives.length}}});function xue(e){let t=e.length;for(let n=0;n0&&(e._shaderDisableDepthDistance=!0,d===Number.POSITIVE_INFINITY&&(d=-1));let u=0,m=i.splitDirection;l(m)&&(u=m),r(o,s,a,d,u)}function r8e(e,t,n,i){_ue(e,t,n,i),Tue(e,t,n,i),Sue(e,t,n,i),Cue(e,t,n,i),Vue(e,t,n,i)}function kK(e,t,n,i,o,r){let s;i.mode===oe.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c0){this._vaf=o8e(c,n,this._buffersUsage),a=this._vaf.writers;for(let G=0;G0){let G=c8e;G.length=0,(r[UK]||r[e8e]||r[t8e])&&G.push(_ue),(r[pue]||r[$je])&&G.push(Tue),(r[qje]||r[gue])&&G.push(Sue),r[bue]&&G.push(Cue),(r[yue]||r[n8e]||r[i8e])&&G.push(Vue);let I=G.length;if(a=this._vaf.writers,o/n>.1){for(let v=0;vn*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,ce.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,p=M.IDENTITY;e.mode===oe.SCENE3D?(p=this.modelMatrix,m=ce.clone(this._baseVolumeWC,this._boundingVolume)):m=ce.clone(this._baseVolume2D,this._boundingVolume),a8e(this,e,m);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===Lo.OPAQUE||this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ue.fromCache({depthTest:{enabled:!0,func:ie.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Lo.TRANSLUCENT||this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ue.fromCache({depthTest:{enabled:!0,func:ie.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let f,x;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(f=new De({sources:[VP]}),this._shaderScaleByDistance&&f.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&f.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&f.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&f.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT&&(x=new De({defines:["OPAQUE"],sources:[kg]}),this._sp=tn.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:bc}),x=new De({defines:["TRANSLUCENT"],sources:[kg]}),this._spTranslucent=tn.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:bc})),this._blendOption===Lo.OPAQUE&&(x=new De({sources:[kg]}),this._sp=tn.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:bc})),this._blendOption===Lo.TRANSLUCENT&&(x=new De({sources:[kg]}),this._spTranslucent=tn.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:f,fragmentShaderSource:x,attributeLocations:bc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let _,C,V,L,Z=e.commandList;if(d.render||u){let G=this._colorCommands,I=this._blendOption===Lo.OPAQUE,v=this._blendOption===Lo.OPAQUE_AND_TRANSLUCENT;_=this._vaf.va,C=_.length,G.length=C;let P=v?C*2:C;for(L=0;L>4;if(o!==OK)throw new Error(`Got v${o} data when expected v${OK}.`);let r=Lue[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=Lue.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,RP,t),this.coords=new this.ArrayType(this.data,RP+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(RP+s+a+c),this.ids=new this.IndexArrayType(this.data,RP,t),this.coords=new this.ArrayType(this.data,RP+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(OK<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return HK(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],d=[];for(;c.length;){let u=c.pop()||0,m=c.pop()||0,p=c.pop()||0;if(m-p<=a){for(let _=p;_<=m;_++){let C=s[2*_],V=s[2*_+1];C>=t&&C<=i&&V>=n&&V<=o&&d.push(r[_])}continue}let g=p+m>>1,f=s[2*g],x=s[2*g+1];f>=t&&f<=i&&x>=n&&x<=o&&d.push(r[g]),(u===0?t<=f:n<=x)&&(c.push(p),c.push(g-1),c.push(1-u)),(u===0?i>=f:o>=x)&&(c.push(g+1),c.push(m),c.push(1-u))}return d}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],d=i*i;for(;a.length;){let u=a.pop()||0,m=a.pop()||0,p=a.pop()||0;if(m-p<=s){for(let _=p;_<=m;_++)Rue(r[2*_],r[2*_+1],t,n)<=d&&c.push(o[_]);continue}let g=p+m>>1,f=r[2*g],x=r[2*g+1];Rue(f,x,t,n)<=d&&c.push(o[g]),(u===0?t-i<=f:n-i<=x)&&(a.push(p),a.push(g-1),a.push(1-u)),(u===0?t+i>=f:n+i>=x)&&(a.push(g+1),a.push(m),a.push(1-u))}return c}};function HK(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;Zue(e,t,s,i,o,r),HK(e,t,n,i,s-1,1-r),HK(e,t,n,s+1,o,1-r)}function Zue(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let d=o-i+1,u=n-i+1,m=Math.log(d),p=.5*Math.exp(2*m/3),g=.5*Math.sqrt(m*p*(d-p)/d)*(u-d/2<0?-1:1),f=Math.max(i,Math.floor(n-u*p/d+g)),x=Math.min(o,Math.floor(n+(d-u)*p/d+g));Zue(e,t,n,f,x,r)}let s=t[2*n+r],a=i,c=o;for(ZP(e,t,i,n),t[2*o+r]>s&&ZP(e,t,i,o);as;)c--}t[2*i+r]===s?ZP(e,t,i,c):(c++,ZP(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function ZP(e,t,n,i){YK(e,n,i),YK(t,2*n,2*i),YK(t,2*n+1,2*i+1)}function YK(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function Rue(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function ih(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new be,this.show=y(e.show,!0)}function Gue(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var l8e=new Ke;function Eue(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=Zg.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=so.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Rs.getScreenSpaceBoundingBox(e,t,o)),Gue(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&Xue(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Zg.getScreenSpaceBoundingBox(s,t,l8e);Gue(a,n),o=Ke.union(o,a,o)}return o}function d8e(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&Xue(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function Iue(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function Xue(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function zK(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s0){let A=new GP(V.length,64,Uint32Array);for(let N=0;N=u)for(Iue(N.position,R,b,e),p.push(N),Z=0;Z=u){let k=h.multiplyByScalar(Y,1/R,Y);for(Iue(k,R,b,e),p.push({position:k,width:U.width,height:U.height,minimumWidth:I.width,minimumHeight:I.height}),Z=0;Z0?(a=d.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let u=this;return Promise.resolve().then(function(){u._clusterDirty=!0}),c}}function QK(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}ih.prototype.getLabel=JK("_labelCollection",ff,"_unusedLabelIndices","labelIndex");ih.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,QK(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};ih.prototype.getBillboard=JK("_billboardCollection",Sd,"_unusedBillboardIndices","billboardIndex");ih.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,QK(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};ih.prototype.getPoint=JK("_pointCollection",C1,"_unusedPointIndices","pointIndex");ih.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,QK(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function KK(e){if(!l(e))return;let t=e.length;for(let n=0;n0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,p8e(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};ih.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var Zd=ih;function jK(e){this._name=e,this._clock=void 0,this._changed=new be,this._error=new be,this._isLoading=!1,this._loading=new be,this._entityCollection=new Hs(this),this._entityCluster=new Zd}Object.defineProperties(jK.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Dr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});jK.prototype.update=function(e){return!0};var EP=jK;var JQn=T(S(),1);var mQn=T(S(),1);var JJn=T(S(),1);var Wue={};Wue.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,d=new Float64Array(c*3),u,m=0,p=0,g=o?a*3:0,f=o?(a+i)*3:i*3;for(u=0;u0){let x=Math.min(r,o);d=Math.round(o/x),c+=x}let u=Ae.createTypedArray(s,c*2),m=0,p;for(p=0;p0)for(p=0;p0){for(c=0;c=t;i--)e[i]=e[a--]}for(i=0;i=0||l(m)&&j.compare(u,m)>=0));){for(sJ[p++]=u,r=r+1,s=0;s0&&(aJ.length=g,Nue(n,d,aJ),sJ.length=p,Nue(t,c,sJ))}else{for(s=0;so)return;if(this._backwardExtrapolationType===Ed.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let Z=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===Ed.NONE||o!==0&&j.secondsDifference(e,Z)>o)return;if(this._forwardExtrapolationType===Ed.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,d=this._yTable,u=this._interpolationAlgorithm,m=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let Z=Math.min(u.getRequiredDataPoints(this._interpolationDegree,p),i);Z!==this._numberOfPoints&&(this._numberOfPoints=Z,c.length=Z,d.length=Z*m)}let g=this._numberOfPoints-1;if(g<1)return;let f=0,x=i-1;if(x-f+1>=g+1){let Z=a-(g/2|0)-1;Zx&&(G=x,Z=G-g,Z0){n=new Array(t);for(let i=0;ic&&e!==Object}let f=typeof e.unpack=="function"&&e!==Ou;if(!g&&!p){m?t[n]=new Jn(f?e.unpack(d,0):d):t[n]=Hue(e,s,i);return}let x=t[n],_,C=i.epoch;if(l(C)&&(_=j.fromIso8601(C)),g&&!p){x instanceof Xd||(t[n]=x=new Xd(e)),x.addSamplesPackedArray(d,_),Ek(i,x);return}let V;if(!g&&p){a=a.clone(),m?a.data=f?e.unpack(d,0):d:a.data=Hue(e,s,i),l(x)||(t[n]=x=m?new Mb:new pc),m&&x instanceof Mb?x.intervals.addInterval(a):x instanceof pc?(m&&(a.data=new Jn(a.data)),x.intervals.addInterval(a)):(t[n]=x=que(x),m&&(a.data=new Jn(a.data)),x.intervals.addInterval(a));return}l(x)||(t[n]=x=new pc),x instanceof pc||(t[n]=x=que(x));let L=x.intervals;V=L.findInterval(a),(!l(V)||!(V.data instanceof Xd))&&(V=a.clone(),V.data=new Xd(e),L.addInterval(V)),V.data.addSamplesPackedArray(d,_),Ek(i,V.data)}function dme(e,t){if(e instanceof Xd){e.removeSamples(t);return}else if(e instanceof Mb){e.intervals.removeInterval(t);return}else if(e instanceof pc){let n=e.intervals;for(let i=0;ic),!f&&!p){m?e[t]=new Nc(h.unpack(d),g):e[t]=MP(r,n.reference);return}let x=e[t],_,C=n.epoch;if(l(C)&&(_=j.fromIso8601(C)),f&&!p){(!(x instanceof fa)||l(g)&&x.referenceFrame!==g)&&(e[t]=x=new fa(g,a)),x.addSamplesPackedArray(d,_),Ek(n,x);return}let V;if(!f&&p){s=s.clone(),m?s.data=h.unpack(d):s.data=MP(r,n.reference),l(x)||(m?x=new Ab(g):x=new ma(g),e[t]=x),m&&x instanceof Ab&&l(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof ma?(m&&(s.data=new Nc(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=$ue(x),m&&(s.data=new Nc(s.data,g)),x.intervals.addInterval(s));return}l(x)?x instanceof ma||(e[t]=x=$ue(x)):e[t]=x=new ma(g);let L=x.intervals;V=L.findInterval(s),(!l(V)||!(V.data instanceof fa)||l(g)&&V.data.referenceFrame!==g)&&(V=s.clone(),V.data=new fa(g,a),L.addInterval(V)),V.data.addSamplesPackedArray(d,_),Ek(n,V.data)}function ume(e,t){if(e instanceof fa){e.removeSamples(t);return}else if(e instanceof Ab){e.intervals.removeInterval(t);return}else if(e instanceof ma){let n=e.intervals;for(let i=0;i. version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function B7e(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=dr(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new Wx),xe(Boolean,s,"show",o.show,r,i,n),xe(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),xe(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),xe(Number,s,"height",o.height,r,i,n),xe(Qe,s,"heightReference",o.heightReference,r,i,n),xe(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),xe(Qe,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),xe(Ou,s,"rotation",o.rotation,r,i,n),xe(Ou,s,"stRotation",o.stRotation,r,i,n),xe(Number,s,"granularity",o.granularity,r,i,n),xe(Boolean,s,"fill",o.fill,r,i,n),Wd(s,"material",o.material,r,i,n),xe(Boolean,s,"outline",o.outline,r,i,n),xe(B,s,"outlineColor",o.outlineColor,r,i,n),xe(Number,s,"outlineWidth",o.outlineWidth,r,i,n),xe(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),xe(_n,s,"shadows",o.shadows,r,i,n),xe(At,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),xe(kn,s,"classificationType",o.classificationType,r,i,n),xe(Number,s,"zIndex",o.zIndex,r,i,n)}function O7e(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=dr(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new Px),xe(Boolean,s,"show",o.show,r,i,n),xe(h,s,"radii",o.radii,r,i,n),xe(h,s,"innerRadii",o.innerRadii,r,i,n),xe(Number,s,"minimumClock",o.minimumClock,r,i,n),xe(Number,s,"maximumClock",o.maximumClock,r,i,n),xe(Number,s,"minimumCone",o.minimumCone,r,i,n),xe(Number,s,"maximumCone",o.maximumCone,r,i,n),xe(Qe,s,"heightReference",o.heightReference,r,i,n),xe(Boolean,s,"fill",o.fill,r,i,n),Wd(s,"material",o.material,r,i,n),xe(Boolean,s,"outline",o.outline,r,i,n),xe(B,s,"outlineColor",o.outlineColor,r,i,n),xe(Number,s,"outlineWidth",o.outlineWidth,r,i,n),xe(Number,s,"stackPartitions",o.stackPartitions,r,i,n),xe(Number,s,"slicePartitions",o.slicePartitions,r,i,n),xe(Number,s,"subdivisions",o.subdivisions,r,i,n),xe(_n,s,"shadows",o.shadows,r,i,n),xe(At,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function Y7e(e,t,n,i){let o=t.label;if(!l(o))return;let r=dr(o.interval),s=e.label;l(s)||(e.label=s=new Gm),xe(Boolean,s,"show",o.show,r,i,n),xe(String,s,"text",o.text,r,i,n),xe(String,s,"font",o.font,r,i,n),xe(Uo,s,"style",o.style,r,i,n),xe(Number,s,"scale",o.scale,r,i,n),xe(Boolean,s,"showBackground",o.showBackground,r,i,n),xe(B,s,"backgroundColor",o.backgroundColor,r,i,n),xe(D,s,"backgroundPadding",o.backgroundPadding,r,i,n),xe(D,s,"pixelOffset",o.pixelOffset,r,i,n),xe(h,s,"eyeOffset",o.eyeOffset,r,i,n),xe(gi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),xe(Pn,s,"verticalOrigin",o.verticalOrigin,r,i,n),xe(Qe,s,"heightReference",o.heightReference,r,i,n),xe(B,s,"fillColor",o.fillColor,r,i,n),xe(B,s,"outlineColor",o.outlineColor,r,i,n),xe(Number,s,"outlineWidth",o.outlineWidth,r,i,n),xe(Ut,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),xe(Ut,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),xe(Ut,s,"scaleByDistance",o.scaleByDistance,r,i,n),xe(At,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),xe(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function H7e(e,t,n,i){let o=t.model;if(!l(o))return;let r=dr(o.interval),s=e.model;l(s)||(e.model=s=new Xp),xe(Boolean,s,"show",o.show,r,i,n),xe(kP.default,s,"uri",o.gltf,r,i,n),xe(Number,s,"scale",o.scale,r,i,n),xe(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),xe(Number,s,"maximumScale",o.maximumScale,r,i,n),xe(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),xe(Boolean,s,"runAnimations",o.runAnimations,r,i,n),xe(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),xe(_n,s,"shadows",o.shadows,r,i,n),xe(Qe,s,"heightReference",o.heightReference,r,i,n),xe(B,s,"silhouetteColor",o.silhouetteColor,r,i,n),xe(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),xe(B,s,"color",o.color,r,i,n),xe(lc,s,"colorBlendMode",o.colorBlendMode,r,i,n),xe(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),xe(At,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,d=o.nodeTransformations;if(l(d))if(Array.isArray(d))for(a=0,c=d.length;a-1;c--)n[c](s,e,t,i)}lJ=void 0}function n6e(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(Be.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=j.secondsDifference(s,r),c=Math.round(a/120);return t=new rh,t.startTime=j.clone(r),t.stopTime=j.clone(s),t.clockRange=Br.LOOP_STOP,t.multiplier=c,t.currentTime=j.clone(r),t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new rh,t.startTime=Be.MINIMUM_VALUE.clone(),t.stopTime=Be.MAXIMUM_VALUE.clone(),t.currentTime=Be.MINIMUM_VALUE.clone(),t.clockRange=Br.LOOP_STOP,t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=dr(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=j.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Br[n.range],Br.LOOP_STOP)),l(n.step)&&(t.clockStep=y(mo[n.step],mo.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function hme(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new Et(s)),e._credit=s,typeof t=="string"||t instanceof Ee){t=Ee.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let d=c.length;for(let u=0;u1;--b){if(C=W.PI_OVER_TWO-(b-1)*_,G=D1(-C,r,f,g,c,u,d,m,p,G),I=D1(C+Math.PI,r,f,g,c,u,d,m,p,I),t){for(L[Z++]=G.x,L[Z++]=G.y,L[Z++]=G.z,E=2*(b-1)+2,R=1;R1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;aW.PI&&(m.north=m.north>0?W.PI_OVER_TWO-W.EPSILON7:m.north,m.south=m.south<0?W.EPSILON7-W.PI_OVER_TWO:m.south,m.east=W.PI,m.west=-W.PI),m}function Sf(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ne.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,W.RADIANS_PER_DEGREE),s=y(e.vertexFormat,We.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ne.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=We.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}Sf.packedLength=h.packedLength+ne.packedLength+We.packedLength+9;Sf.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ne.pack(e._ellipsoid,t,n),n+=ne.packedLength,We.pack(e._vertexFormat,t,n),n+=We.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Wme=new h,Pme=new ne,vme=new We,Tf={center:Wme,ellipsoid:Pme,vertexFormat:vme,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Sf.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Wme);t+=h.packedLength;let o=ne.unpack(e,t,Pme);t+=ne.packedLength;let r=We.unpack(e,t,vme);t+=We.packedLength;let s=e[t++],a=e[t++],c=e[t++],d=e[t++],u=e[t++],m=e[t++],p=e[t++],g=e[t++]===1,f=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ne.clone(o,n._ellipsoid),n._vertexFormat=We.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=d,n._height=u,n._granularity=m,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=f===-1?void 0:f,n):(Tf.height=u,Tf.extrudedHeight=p,Tf.granularity=m,Tf.stRotation=d,Tf.rotation=c,Tf.semiMajorAxis=s,Tf.semiMinorAxis=a,Tf.shadowVolume=g,Tf.offsetAttribute=f===-1?void 0:f,new Sf(Tf))};Sf.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ne.default),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,W.RADIANS_PER_DEGREE),a=y(e.rotation,0);return Xme(n,o,r,a,s,i,t)};Sf.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!W.equalsEpsilon(t,n,0,W.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=m6e(o);else if(r=l6e(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===cn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ht({attributes:r.attributes,indices:r.indices,primitiveType:Fe.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};Sf.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Sf({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:We.POSITION_ONLY,shadowVolume:!0})};function h6e(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=Ul.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c0){let f=Math.min(d,c);g=Math.round(c/f);let x=Math.min(g*d,c);for(p=0;p0&&(Z=!0,C+=c-1),s0&&u!==x-1&&m!==0&&m!==_-1&&(F[J]=!0),J++;p=0;let te,z;for(u=1;u=Ie&&u1||G>1))for(let R=0;R0;u-=d)Te=u*3,H=j1(H,ee,Te,p,_),ee+=6,o.st&&(z=q1(z,fe,u*2,G),fe+=4),n&&(_e+=3,J[_e++]=I[Te],J[_e++]=I[Te+1],J[_e++]=I[Te+2]),q&&(te[le++]=1,le+=1);if(E){let Ie=ye;for(Te=Ie*3,u=0;u<2;u++)H=j1(H,ee,Te,p,_),ee+=6,o.st&&(z=q1(z,fe,Ie*2,G),fe+=4),n&&(_e+=3,J[_e++]=I[Te],J[_e++]=I[Te+1],J[_e++]=I[Te+2]),q&&(te[le++]=1,le+=1)}else for(u=d-1;u>=0;u--)Te=u*3,H=j1(H,ee,Te,p,_),ee+=6,o.st&&(z=q1(z,fe,u*2,G),fe+=4),n&&(_e+=3,J[_e++]=I[Te],J[_e++]=I[Te+1],J[_e++]=I[Te+2]),q&&(te[le++]=1,le+=1);let Xe=bqe(H,o,a);o.st&&(Xe.attributes.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:z})),n&&(Xe.attributes.extrudeDirection=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:J})),P&&(Xe.attributes.applyOffset=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:1,values:te}));let Le=Ae.createTypedArray(k,O*6),ke,Oe,at,Mt;g=H.length/3;let Lt=0;for(u=0;u0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i0)for(s=new Array(o),i=0;i0)for(a=new Array(o),i=0;i{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(sT.prototype._onEntityPropertyChanged,this)}sT.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new In({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Yt)&&(this.depthFailMaterial=Qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}tV.prototype.remove=function(e){Whe(this._solidItems,e)||Whe(this._translucentItems,e)};function Phe(e,t,n){let i=!1,o=t.length;for(let r=0;r0)for(r=0;r=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let d=0;d0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Qo.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new In({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Qo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Yt)&&(this.depthFailMaterial=Qo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};nV.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Ac({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};iV.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Qo.getValue(e,this.materialProperty,this.material),n=new Ac({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Qo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};rV.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new In({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new dn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r0)for(m=!0,t=0;t0)for(m=!0,t=0;t-1;a--)c=s[a],d=c.id,u=this._updaterSets.get(d),u.entity===c?u.forEach(function(x){m._removeUpdater(x),m._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],d=c.id,u=this._updaterSets.get(d),u.forEach(this._removeUpdater.bind(this)),u.destroy(),this._updaterSets.remove(d),this._subscriptions.get(d)(),this._subscriptions.remove(d);for(a=n.length-1;a>-1;a--)c=n[a],d=c.id,u=new aT(c,this._scene),this._updaterSets.set(d,u),u.forEach(function(x){m._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(d,u.geometryChanged.addEventListener(Dl._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,f=g.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var pv=Dl;var Sci=T(S(),1);var m$e=1,h$e="30px sans-serif",f$e=Uo.FILL,p$e=B.WHITE,b$e=B.BLACK,g$e=1,y$e=!1,x$e=new B(.165,.165,.165,.8),_$e=new D(7,5),T$e=D.ZERO,S$e=h.ZERO,C$e=Qe.NONE,V$e=gi.CENTER,L$e=Pn.CENTER,R$e=new h,Z$e=new B,G$e=new B,E$e=new B,I$e=new D,X$e=new h,W$e=new D,P$e=new Ut,v$e=new Ut,w$e=new Ut,F$e=new At;function Mhe(e){this.entity=e,this.label=void 0,this.index=void 0}function Kg(e,t){t.collectionChanged.addEventListener(Kg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Zt,this._onCollectionChanged(t,t.values,[],[])}Kg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new Mhe(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Mhe(r)):(EJ(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],EJ(s.get(r.id),r,a),s.remove(r.id)};function EJ(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var bv=Kg;var Bci=T(S(),1);var A$e=1,M$e=!0,N$e=0,k$e=!0,U$e=!0,D$e=_n.ENABLED,B$e=Qe.NONE,O$e=B.RED,Y$e=0,H$e=B.WHITE,z$e=lc.HIGHLIGHT,K$e=.5,J$e=new D(1,1),Q$e=new M,j$e=new M,Nhe=new B,khe=new Array(4),q$e=new h;function Jg(e,t){t.collectionChanged.addEventListener(Jg.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Zt,this._onCollectionChanged(t,t.values,[],[])}async function $$e(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await zm.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}Jg.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o-1;i--)IJ(this,e[i],t,n);return me(this)};var zk=new h,eet=new he;Jg.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return ft.FAILED;if(n.loadFailed)return ft.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return ft.PENDING;if(!i.ready||!n.modelUpdated)return ft.PENDING;let o=this._scene,r=y(o.ellipsoid,ne.default);if(i.heightReference!==Qe.NONE){let a=i.modelMatrix;zk.x=a[12],zk.y=a[13],zk.z=a[14];let c=r.cartesianToCartographic(zk,eet),d=o.getHeight(c,i.heightReference);return l(d)&&(bu(i.heightReference)?c.height=d:c.height+=d),ce.clone(i.boundingSphere,t),t.center=r.cartographicToCartesian(c),ft.DONE}return ce.clone(i.boundingSphere,t),ft.DONE};Jg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(tet(r,a),s.set(r.id,r)):(IJ(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],IJ(this,r,a,c),s.remove(r.id)};function IJ(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function tet(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var gv=Jg;var _li=T(S(),1);var jci=T(S(),1);function Qg(e){this._definitionChanged=new be,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(Qg.prototype,{isConstant:{get:function(){return K.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:Ai.FIXED}}});var net=new j;Qg.prototype.getValue=function(e,t){return l(e)||(e=j.now(net)),this.getValueInReferenceFrame(e,Ai.FIXED,t)};Qg.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};Qg.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?ne.default.scaleToGeodeticSurface(n,n):void 0};Qg.prototype.equals=function(e){return this===e||e instanceof Qg&&this._value===e._value};Qg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Lf=Qg;var iet=60,oet=1,Dhe=new Vn,XJ=new Vn,WJ=new Vn;function Uhe(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function ret(e,t,n,i,o,r,s,a,c){let d=a,u;u=e.getValueInReferenceFrame(t,r,c[d]),l(u)&&(c[d++]=u);let m=!l(o)||j.lessThanOrEquals(o,t)||j.greaterThanOrEquals(o,n),p=0,g=i.length,f=i[p],x=n,_=!1,C,V,L;for(;p0&&!_){let Z=i[p+1],G=j.secondsDifference(Z,f);_=G>s,_&&(C=Math.ceil(G/s),V=0,L=G/Math.max(C,2),C=Math.max(C-1,1))}if(_&&V0){let g=m.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let u=K.getValueOrDefault(i._resolution,e,iet);c.show=!0,c.positions=Ohe(o,r,s,e,this._referenceFrame,u,c.positions.slice()),c.material=Qo.getValue(e,i._material,c.material),c.width=K.getValueOrDefault(i._width,e,oet),c.distanceDisplayCondition=K.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};yv.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};yv.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),me(this)};function jg(e,t){t.collectionChanged.addEventListener(jg.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Zt,this._onCollectionChanged(t,t.values,[],[])}jg.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new Uhe(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Uhe(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};jg._subSample=Ohe;var xv=jg;var vli=T(S(),1);var Yhe=B.WHITE,Hhe=B.BLACK,zhe=0,Khe=1,Jhe=0,Qhe=vr.NONE,jhe=new B,het=new h,qhe=new B,$he=new Ut,efe=new Ut,tfe=new At;function nfe(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function qg(e,t){t.collectionChanged.addEventListener(qg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Zt,this._onCollectionChanged(t,t.values,[],[])}qg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i0?(d.scale=1,g=g||C!==r.outlineWidth||V!==r.pixelSize||!B.equals(x,r.color)||!B.equals(_,r.outlineColor)):(d.scale=V/50,V=50,g=g||C!==r.outlineWidth||!B.equals(x,r.color)||!B.equals(_,r.outlineColor)),g){r.color=B.clone(x,r.color),r.outlineColor=B.clone(_,r.outlineColor),r.pixelSize=V,r.outlineWidth=C;let L=x.alpha,Z=x.toCssColorString(),G=_.toCssColorString(),I=JSON.stringify([Z,V,G,C]);d.setImage(I,__(L,Z,G,C,V))}f&&d._updateClamping()}}return!0};qg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return ft.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return ft.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ft.DONE};qg.prototype.isDestroyed=function(){return!1};qg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(qg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new nfe(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new nfe(r)):(_v(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],_v(s.get(r.id),r,a),s.remove(r.id)};function _v(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var Tv=qg;var mui=T(S(),1);var Xdi=T(S(),1);var edi=T(S(),1);var afe=[];function fet(e,t,n,i,o){let r=afe;r.length=o;let s,a=n.red,c=n.green,d=n.blue,u=n.alpha,m=i.red,p=i.green,g=i.blue,f=i.alpha;if(B.equals(n,i)){for(s=0;s0?new Array(o):void 0;for(i=0;i0){let A=0,N=m[0];i=i.filter(function(O,U){let Y=!1;return o?Y=U===N||U===0&&N===1:Y=U+1===N,Y?(A++,N=m[A],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===nn.GEODESIC||r===nn.RHUMB){let A,N;r===nn.GEODESIC?(A=W.chordLength(s,a.maximumRadius),N=Gi.numberOfPoints):(A=s,N=Gi.numberOfPointsRhumbLine);let O=Gi.extractHeights(p,a);if(l(i)){let U=1;for(c=0;c0)return ce.fromPoints(t.positions,e),ft.DONE}return ft.FAILED};Cv.prototype.isDestroyed=function(){return!1};Cv.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=Kk[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete Kk[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),me(this)};var Vv=hh;var Kdi=T(S(),1);var Vet=new B,Let=new At,Ret=new At;function fh(e,t,n,i,o){let r;n instanceof Yt?r=Jr:r=sa,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Zt,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Zt,this.material=void 0,this.updatersWithAttributes=new Zt,this.attributes=new Zt,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(fh.prototype.onMaterialChanged,this),this.subscriptions=new Zt,this.showsUpdated=new Zt,this.zIndex=i,this._asynchronous=o}fh.prototype.onMaterialChanged=function(){this.invalidated=!0};fh.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Yt&&t instanceof Yt?!0:l(t)&&t.equals(n)};fh.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!K.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};fh.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};fh.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new Rm({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===sa&&(this.material=Qo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===sa&&(this.material=Qo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};lV.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c-1;a--)c=s[a],d=c.id,u=this._updaters.get(d),u.entity===c?(mfe(this,u),hfe(this,e,u)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],d=c.id,u=this._updaters.get(d),mfe(this,u),u.destroy(),this._updaters.remove(d),this._subscriptions.get(d)(),this._subscriptions.remove(d);for(a=n.length-1;a>-1;a--)c=n[a],d=c.id,u=new Vv(c,this._scene),this._updaters.set(d,u),hfe(this,e,u),this._subscriptions.set(d,u.geometryChanged.addEventListener(Rf._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let m=!0,p=this._batches,g=p.length;for(a=0;a-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var Rv=Rf;function Bl(e){Ac.initializeTerrainHeights(),Rm.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new lr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,Bl.defaultVisualizersCallback);let i=!1,o=new kl,r=new kl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let d=0,u=n.length;dnew o(e,i))]};Object.defineProperties(Bl.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Bl.prototype.isDestroyed=function(){return!1};Bl.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;tPet*s.maximumRadius?(m=gfe,h.normalize(c,m),h.negate(m,m),g=h.clone(h.UNIT_Z,vJ),p=h.cross(g,m,Jk),h.magnitude(p)>W.EPSILON7&&(h.normalize(m,m),h.normalize(p,p),g=h.cross(m,p,vJ),h.normalize(g,g),d=!0)):h.equalsEpsilon(c,V,W.EPSILON7)||(g=gfe,h.normalize(I,g),h.normalize(v,v),p=h.cross(g,v,vJ),u&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,W.EPSILON7)||(m=h.cross(p,g,Jk),$.multiplyByVector(G,m,m),$.multiplyByVector(G,p,p),$.multiplyByVector(G,g,g),h.normalize(m,m),h.normalize(p,p),h.normalize(g,g),d=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let f,x,_;i&&(f=h.clone(t.position,wJ),x=h.clone(t.direction,yfe),_=h.clone(t.up,xfe));let C=Wet;d?(C[0]=m.x,C[1]=m.y,C[2]=m.z,C[3]=0,C[4]=p.x,C[5]=p.y,C[6]=p.z,C[7]=0,C[8]=g.x,C[9]=g.y,C[10]=g.z,C[11]=0,C[12]=c.x,C[13]=c.y,C[14]=c.z,C[15]=0):Ft.eastNorthUpToFixedFrame(c,s,C),t._setTransform(C),i&&(h.clone(f,t.position),h.clone(x,t.direction),h.clone(_,t.up),h.cross(x,_,t.right))}if(n){let d=a===oe.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,d)}}function Gv(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ne.default),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(Gv,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});Gv.defaultOffset3D=new h(-14e3,3500,3500);var Qk=new Qu,wet=new h;Gv.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===oe.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,d=n.camera,u=a||c,m=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){Qk.pitch=-W.PI_OVER_FOUR,Qk.range=0;let f=s.getValue(e,wet);if(l(f)){let x=2-1/Math.max(1,h.magnitude(f)/i.maximumRadius);Qk.pitch*=x}d.viewBoundingSphere(t,Qk),this.boundingSphere=t,u=!1,m=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&h.clone(Gv._defaultOffset3D,this._offset3D)}else!c&&this._mode!==oe.SCENE2D&&h.clone(d.position,this._offset3D);this._lastEntity=r,this._mode=o,vet(this,d,u,m,s,e,i)};var Ev=Gv;var Ehi=T(S(),1);var omi=T(S(),1);function Xv(){this._cache={}}Xv.prototype.fromColor=function(e,t){return jk(void 0,void 0,e,t,this._cache)};Xv.prototype.fromUrl=function(e,t,n){return jk(e,void 0,t,n,this._cache)};Xv.prototype.fromMakiIconId=function(e,t,n){return jk(rn(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};Xv.prototype.fromText=function(e,t,n){return jk(void 0,e,t,n,this._cache)};var Fet=new B;function Aet(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Fet).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function _fe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width${i}${Lfe(o)}`:n+=`${i}${o}`)}return n.length>0&&(n=`${n}
      `),n}function Oet(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function Yet(e,t){return new Xm(Oet(Lfe,e,t),!0)}function eU(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=Bn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let d=Number.MAX_VALUE;for(let u in r)if(r.hasOwnProperty(u)&&r[u]){let m=u.toLowerCase();if(d>1&&m==="title"){d=1,s=u;break}else d>2&&m==="name"?(d=2,s=u):d>3&&/title/i.test(u)?(d=3,s=u):d>4&&/name/i.test(u)&&(d=4,s=u)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new Jn(c):n(r,s))}return o}function zJ(e,t){let n=new Array(e.length);for(let i=0;i2?d.perPositionHeight=new Jn(!0):o.clampToGround||(d.height=0);let p=eU(t,e._entityCollection,o.describe);p.polygon=d}function Afe(e,t,n,i,o){Ffe(e,t,i,n.coordinates,o)}function Mfe(e,t,n,i,o){let r=n.coordinates;for(let s=0;st&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function Oo(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function ey(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function ty(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var qhi=T(S());var Nhi=T(S());var Fhi=T(S()),ny=/[A-Za-z]/,Ks=/[\d]/;var Ad=/\s/,tU=/['"]/,Ofe=/[\x00-\x1F\x7F]/,Yfe=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,Jet=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,Qet=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,jet=Yfe+Jet+Qet,Hfe=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,vhi=new RegExp("[".concat(Yfe+Hfe,"]")),KJ=jet+Hfe,ph=new RegExp("[".concat(KJ,"]"));var nU=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(Ad):[],o=t.split(Ad),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(Ad):[],o=t.split(Ad),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),""].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();var Uhi=T(S());function zfe(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(V){var L={},Z=V,G=Z.match(/^([a-z]+):\/\//i);return G&&(L.scheme=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^(.*?)(?=(\?|#|\/|$))/i),G&&(L.host=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^\/(.*?)(?=(\?|#|$))/i),G&&(L.path=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^\?(.*?)(?=(#|$))/i),G&&(L.query=G[1],Z=Z.substr(G[0].length)),G=Z.match(/^#(.*?)$/i),G&&(L.fragment=G[1]),L},s=function(V){var L="";return V.scheme&&V.host&&(L+=V.scheme+"://"),V.host&&(L+=V.host),V.path&&(L+="/"+V.path),V.query&&(L+="?"+V.query),V.fragment&&(L+="#"+V.fragment),L},a=function(V,L){var Z=L/2,G=Math.ceil(Z),I=-1*Math.floor(Z),v="";return I<0&&(v=V.substr(I)),V.substr(0,G)+n+v};if(e.length<=t)return e;var c=t-o,d=r(e);if(d.query){var u=d.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);u&&(d.query=d.query.substr(0,u[1].length),e=s(d))}if(e.length<=t||(d.host&&(d.host=d.host.replace(/^www\./,""),e=s(d)),e.length<=t))return e;var m="";if(d.host&&(m+=d.host),m.length>=c)return d.host.length==t?(d.host.substr(0,t-o)+n).substr(0,c+i):a(m,c).substr(0,c+i);var p="";if(d.path&&(p+="/"+d.path),d.query&&(p+="?"+d.query),p)if((m+p).length>=c){if((m+p).length==t)return(m+p).substr(0,t);var g=c-m.length;return(m+a(p,g)).substr(0,c+i)}else m+=p;if(d.fragment){var f="#"+d.fragment;if((m+f).length>=c){if((m+f).length==t)return(m+f).substr(0,t);var x=c-m.length;return(m+a(f,x)).substr(0,c+i)}else m+=f}if(d.scheme&&d.host){var _=d.scheme+"://";if((m+_).length0&&(C=m.substr(-1*Math.floor(c/2))),(m.substr(0,Math.ceil(c/2))+n+C).substr(0,c+i)}var Bhi=T(S());function Kfe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}var Hhi=T(S());function Jfe(e,t,n){return Bfe(e,t,n)}var Qfe=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new nU({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length=0;g--){var f=u[g];switch(f.state){case 11:I(f,p);break;case 12:v(f,p);break;case 0:C(f,p);break;case 1:V(f,p);break;case 2:L(f,p);break;case 3:Z(f,p);break;case 4:G(f,p);break;case 5:P(f,p);break;case 6:w(f,p);break;case 7:F(f,p);break;case 13:b(f,p);break;case 14:R(f,p);break;case 8:E(f,p);break;case 9:X(f,p);break;case 10:A(f,p);break;case 15:N(f,p);break;case 16:O(f,p);break;case 17:U(f,p);break;case 18:Y(f,p);break;case 19:k(f,p);break;case 20:H(f,p);break;case 21:J(f,p);break;case 22:te(f,p);break;case 23:z(f,p);break;case 24:q(f,p);break;case 25:ee(f,p);break;case 26:fe(f,p);break;case 27:_e(f,p);break;case 28:le(f,p);break;case 29:ye(f,p);break;case 30:Te(f,p);break;case 31:Xe(f,p);break;case 32:ke(f,p);break;case 33:Oe(f,p);break;case 34:at(f,p);break;case 35:Mt(f,p);break;case 36:Lt(f,p);break;case 37:Le(f,p);break;case 38:Ie(f,p);break;case 39:je(f,p);break;case 40:et(f,p);break;case 41:He(f,p);break;default:ty(f.state)}}}for(var x=u.length-1;x>=0;x--)u.forEach(function(Ce){return Dt(Ce)});return c;function _(Ce){if(Ce==="#")u.push(Rtt(m,28));else if(Ce==="@")u.push(Ztt(m,30));else if(Ce==="/")u.push(oQ(m,11));else if(Ce==="+")u.push(rQ(m,37));else if(Ce==="(")u.push(rQ(m,32));else{if(Ks.test(Ce)&&(u.push(rQ(m,38)),u.push(Vtt(m,13))),spe(Ce)){var Ve=Ce.toLowerCase()==="m"?15:22;u.push(Ltt(m,Ve))}iU(Ce)&&u.push(iQ(m,0)),ph.test(Ce)&&u.push(oQ(m,5))}}function C(Ce,Ve){Ve===":"?Ce.state=2:Ve==="-"?Ce.state=1:jJ(Ve)||Oo(u,Ce)}function V(Ce,Ve){Ve==="-"||(Ve==="/"?(Oo(u,Ce),u.push(oQ(m,11))):jJ(Ve)?Ce.state=0:Oo(u,Ce))}function L(Ce,Ve){Ve==="/"?Ce.state=3:Ve==="."?Oo(u,Ce):Hb(Ve)?(Ce.state=5,iU(Ve)&&u.push(iQ(m,0))):Oo(u,Ce)}function Z(Ce,Ve){Ve==="/"?Ce.state=4:qJ(Ve)?(Ce.state=10,Ce.acceptStateReached=!0):Dt(Ce)}function G(Ce,Ve){Ve==="/"?Ce.state=10:Hb(Ve)?(Ce.state=5,Ce.acceptStateReached=!0):Oo(u,Ce)}function I(Ce,Ve){Ve==="/"?Ce.state=12:Oo(u,Ce)}function v(Ce,Ve){Hb(Ve)?Ce.state=5:Oo(u,Ce)}function P(Ce,Ve){Ve==="."?Ce.state=7:Ve==="-"?Ce.state=6:Ve===":"?Ce.state=8:rU(Ve)?Ce.state=10:oU(Ve)||Dt(Ce)}function w(Ce,Ve){Ve==="-"||(Ve==="."?Dt(Ce):Hb(Ve)?Ce.state=5:Dt(Ce))}function F(Ce,Ve){Ve==="."?Dt(Ce):Hb(Ve)?(Ce.state=5,Ce.acceptStateReached=!0):Dt(Ce)}function b(Ce,Ve){Ve==="."?Ce.state=14:Ve===":"?Ce.state=8:Ks.test(Ve)||(rU(Ve)?Ce.state=10:ph.test(Ve)?Oo(u,Ce):Dt(Ce))}function R(Ce,Ve){Ks.test(Ve)?(Ce.octetsEncountered++,Ce.octetsEncountered===4&&(Ce.acceptStateReached=!0),Ce.state=13):Dt(Ce)}function E(Ce,Ve){Ks.test(Ve)?Ce.state=9:Dt(Ce)}function X(Ce,Ve){Ks.test(Ve)||(rU(Ve)?Ce.state=10:Dt(Ce))}function A(Ce,Ve){qJ(Ve)||Dt(Ce)}function N(Ce,Ve){Ve.toLowerCase()==="a"?Ce.state=16:te(Ce,Ve)}function O(Ce,Ve){Ve.toLowerCase()==="i"?Ce.state=17:te(Ce,Ve)}function U(Ce,Ve){Ve.toLowerCase()==="l"?Ce.state=18:te(Ce,Ve)}function Y(Ce,Ve){Ve.toLowerCase()==="t"?Ce.state=19:te(Ce,Ve)}function k(Ce,Ve){Ve.toLowerCase()==="o"?Ce.state=20:te(Ce,Ve)}function H(Ce,Ve){Ve.toLowerCase()===":"?Ce.state=21:te(Ce,Ve)}function J(Ce,Ve){sU(Ve)?Ce.state=22:Oo(u,Ce)}function te(Ce,Ve){Ve==="."?Ce.state=23:Ve==="@"?Ce.state=24:sU(Ve)?Ce.state=22:Oo(u,Ce)}function z(Ce,Ve){Ve==="."?Oo(u,Ce):Ve==="@"?Oo(u,Ce):sU(Ve)?Ce.state=22:Oo(u,Ce)}function q(Ce,Ve){Hb(Ve)?Ce.state=25:Oo(u,Ce)}function ee(Ce,Ve){Ve==="."?Ce.state=27:Ve==="-"?Ce.state=26:oU(Ve)||Dt(Ce)}function fe(Ce,Ve){Ve==="-"||Ve==="."?Dt(Ce):oU(Ve)?Ce.state=25:Dt(Ce)}function _e(Ce,Ve){Ve==="."||Ve==="-"?Dt(Ce):Hb(Ve)?(Ce.state=25,Ce.acceptStateReached=!0):Dt(Ce)}function le(Ce,Ve){eQ(Ve)?(Ce.state=29,Ce.acceptStateReached=!0):Oo(u,Ce)}function ye(Ce,Ve){eQ(Ve)||Dt(Ce)}function Te(Ce,Ve){tQ(Ve)?(Ce.state=31,Ce.acceptStateReached=!0):Oo(u,Ce)}function Xe(Ce,Ve){tQ(Ve)||(ph.test(Ve)?Oo(u,Ce):Dt(Ce))}function Le(Ce,Ve){Ks.test(Ve)?Ce.state=38:(Oo(u,Ce),_(Ve))}function ke(Ce,Ve){Ks.test(Ve)?Ce.state=33:Oo(u,Ce),_(Ve)}function Oe(Ce,Ve){Ks.test(Ve)?Ce.state=34:Oo(u,Ce)}function at(Ce,Ve){Ks.test(Ve)?Ce.state=35:Oo(u,Ce)}function Mt(Ce,Ve){Ve===")"?Ce.state=36:Oo(u,Ce)}function Lt(Ce,Ve){Ks.test(Ve)?Ce.state=38:nQ(Ve)?Ce.state=39:Oo(u,Ce)}function Ie(Ce,Ve){Ce.acceptStateReached=!0,aU(Ve)?Ce.state=40:Ve==="#"?Ce.state=41:Ks.test(Ve)||(Ve==="("?Ce.state=32:nQ(Ve)?Ce.state=39:(Dt(Ce),iU(Ve)&&u.push(iQ(m,0))))}function je(Ce,Ve){Ks.test(Ve)?Ce.state=38:Ve==="("?Ce.state=32:(Dt(Ce),_(Ve))}function et(Ce,Ve){aU(Ve)||(Ve==="#"?Ce.state=41:Ks.test(Ve)?Ce.state=38:Dt(Ce))}function He(Ce,Ve){aU(Ve)?Ce.state=40:Ks.test(Ve)?Oo(u,Ce):Dt(Ce)}function Dt(Ce){if(Oo(u,Ce),!!Ce.acceptStateReached){var Ve=Ce.startIdx,ct=e.slice(Ce.startIdx,m);if(ct=Ctt(ct),Ce.type==="url"){var Di=e.charAt(Ce.startIdx-1);if(Di==="@")return;var mt=Ce.matchType;if(mt==="scheme"){var _o=QJ.exec(ct);if(_o&&(Ve=Ve+_o.index,ct=ct.slice(_o.index)),!tpe(ct))return}else if(mt==="tld"){if(!npe(ct))return}else if(mt==="ipV4"){if(!ipe(ct))return}else ty(mt);c.push(new ope({tagBuilder:n,matchedText:ct,offset:Ve,urlMatchType:mt,url:ct,protocolRelativeMatch:ct.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(Ce.type==="email")ape(ct)&&c.push(new cpe({tagBuilder:n,matchedText:ct,offset:Ve,email:ct.replace(rpe,"")}));else if(Ce.type==="hashtag")lpe(ct)&&c.push(new upe({tagBuilder:n,matchedText:ct,offset:Ve,serviceName:s,hashtag:ct.slice(1)}));else if(Ce.type==="mention")mpe(ct,a)&&c.push(new fpe({tagBuilder:n,matchedText:ct,offset:Ve,serviceName:a,mention:ct.slice(1)}));else if(Ce.type==="phone"){if(ct=ct.replace(/ +$/g,""),ppe(ct)){var fr=ct.replace(/[^0-9,;#]/g,"");c.push(new bpe({tagBuilder:n,matchedText:ct,offset:Ve,number:fr,plusSign:ct.charAt(0)==="+"}))}}else ty(Ce)}}}var Stt=/[\(\{\[]/,gpe=/[\)\}\]]/,ype={")":"(","}":"{","]":"["};function Ctt(e){for(var t={"(":0,"{":0,"[":0},n=0;n=0;)if(r=e.charAt(o),gpe.test(r)){var s=ype[r];if(t[s]<0)t[s]++,o--;else break}else if(epe.test(r))o--;else break;return e.slice(0,o+1)}function iQ(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function oQ(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function Vtt(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function Ltt(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function Rtt(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function Ztt(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function rQ(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}var spi=T(S());function _pe(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new Ef,c=0,d=e.length,u=0,m=0,p=a;c"?(p=new Ef(Js(Js({},p),{name:te()})),H()):!ny.test(q)&&!Ks.test(q)&&q!==":"&&Y()}function C(q){q===">"?Y():ny.test(q)?u=3:Y()}function V(q){Ad.test(q)||(q==="/"?u=12:q===">"?H():q==="<"?k():q==="="||tU.test(q)||Ofe.test(q)?Y():u=5)}function L(q){Ad.test(q)?u=6:q==="/"?u=12:q==="="?u=7:q===">"?H():q==="<"?k():tU.test(q)&&Y()}function Z(q){Ad.test(q)||(q==="/"?u=12:q==="="?u=7:q===">"?H():q==="<"?k():tU.test(q)?Y():u=5)}function G(q){Ad.test(q)||(q==='"'?u=8:q==="'"?u=9:/[>=`]/.test(q)?Y():q==="<"?k():u=10)}function I(q){q==='"'&&(u=11)}function v(q){q==="'"&&(u=11)}function P(q){Ad.test(q)?u=4:q===">"?H():q==="<"&&k()}function w(q){Ad.test(q)?u=4:q==="/"?u=12:q===">"?H():q==="<"?k():(u=4,z())}function F(q){q===">"?(p=new Ef(Js(Js({},p),{isClosing:!0})),H()):u=4}function b(q){e.substr(c,2)==="--"?(c+=2,p=new Ef(Js(Js({},p),{type:"comment"})),u=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new Ef(Js(Js({},p),{type:"doctype"})),u=20):Y()}function R(q){q==="-"?u=15:q===">"?Y():u=16}function E(q){q==="-"?u=18:q===">"?Y():u=16}function X(q){q==="-"&&(u=17)}function A(q){q==="-"?u=18:u=16}function N(q){q===">"?H():q==="!"?u=19:q==="-"||(u=16)}function O(q){q==="-"?u=17:q===">"?H():u=16}function U(q){q===">"?H():q==="<"&&k()}function Y(){u=0,p=a}function k(){u=1,p=new Ef({idx:c})}function H(){var q=e.slice(m,p.idx);q&&o(q,m),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),Y(),m=c+1}function J(){var q=e.slice(m,c);o(q,m),m=c+1}function te(){var q=p.idx+(p.isClosing?2:1);return e.slice(q,c).toLowerCase()}function z(){c--}}var Ef=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}();var Gtt=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=Ett(t.urls),this.email=Fd(t.email)?t.email:this.email,this.phone=Fd(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=Fd(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=Itt(t.stripPrefix),this.stripTrailingSlash=Fd(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=Fd(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&hpe.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&dpe.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=Xtt(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return _pe(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,d=s.split(c),u=a;d.forEach(function(m,p){if(p%2===0){var g=n.parseText(m,u);r.push.apply(r,g)}u+=m.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,d){return c.getOffset()-d.getOffset()});for(var n=0;nr?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function sQ(e,t){let n=wv(e,"id");return n=l(n)?n:Bn(),t.getOrCreateEntity(n)}function aQ(e){let t=Rpe(e,"lon"),n=Rpe(e,"lat"),i=Pv(e,"ele",Ro.gpx);return h.fromDegrees(t,n,i)}function Rpe(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function wv(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function iy(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r${m.text}: ${m.value}

      `)}if(!l(i)||i==="")return;i=Wtt.link(i),vv.innerHTML=i;let s=vv.querySelectorAll("a");for(n=0;n',d+=`${vv.innerHTML}`,vv.innerHTML="",d}function Ppe(e,t,n,i){let o=aQ(t),r=sQ(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",B.RED,lU);r.billboard=Xpe(s);let a=Ol(t,"name",Ro.gpx);r.name=a,r.label=wtt(),r.label.text=a,r.description=lQ(t,r),i.clampToGround&&(r.billboard.heightReference=Qe.CLAMP_TO_GROUND,r.label.heightReference=Qe.CLAMP_TO_GROUND)}function Ftt(e,t,n,i){let o=sQ(t,n);o.description=lQ(t,o);let r=cQ(t,"rtept",Ro.gpx),s=new Array(r.length);for(let a=0;a0?(a=a.concat(c.times),u.addSamples(a,s),d=d&&!0):d=!1;if(d){let m=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",B.RED,lU);o.billboard=Xpe(m),o.position=u,i.clampToGround&&(o.billboard.heightReference=Qe.CLAMP_TO_GROUND),o.availability=new Ur,o.availability.addInterval(new Vn({start:a[0],stop:a[a.length-1]}))}o.polyline=Wpe(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function Mtt(e){let t={positions:[],times:[]},n=cQ(e,"trkpt",Ro.gpx),i;for(let o=0;onew Array(t).fill(n,0,t)))}function gU(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?gU(n):n),[])}var wpe=[0,1,2,3].concat(...bU([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function ur(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,d=e.stat_desc.max_length,u,m,p,g,f,x,_=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,u=o.heap_max+1;u<573;u++)m=o.heap[u],g=r[r[m*2+1]*2+1]+1,g>d&&(g=d,_++),r[m*2+1]=g,!(m>e.max_code)&&(o.bl_count[g]++,f=0,m>=c&&(f=a[m-c]),x=r[m*2],o.opt_len+=x*(g+f),s&&(o.static_len+=x*(s[m*2+1]+f)));if(_!==0){do{for(g=d-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[d]--,_-=2}while(_>0);for(g=d;g!==0;g--)for(m=o.bl_count[g];m!==0;)p=o.heap[--u],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),m--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,d,u,m;for(d=1;d<=15;d++)a[d]=c=c+s[d-1]<<1;for(u=0;u<=r;u++)m=o[u*2+1],m!==0&&(o[u*2]=n(a[m]++,m))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,d,u=-1,m;for(o.heap_len=0,o.heap_max=573,c=0;c=1;c--)o.pqdownheap(r,c);m=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),d=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=d,r[m*2]=r[c*2]+r[d*2],o.depth[m]=Math.max(o.depth[c],o.depth[d])+1,r[c*2+1]=r[d*2+1]=m,o.heap[1]=m++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}ur._length_code=[0,1,2,3,4,5,6,7].concat(...bU([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));ur.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];ur.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];ur.d_code=function(e){return e<256?wpe[e]:wpe[256+(e>>>7)]};ur.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];ur.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];ur.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];ur.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function wa(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var Ktt=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],Jtt=bU([[144,8],[112,9],[24,7],[8,8]]);wa.static_ltree=gU(Ktt.map((e,t)=>[e,Jtt[t]]));var Qtt=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],jtt=bU([[30,5]]);wa.static_dtree=gU(Qtt.map((e,t)=>[e,jtt[t]]));wa.static_l_desc=new wa(wa.static_ltree,ur.extra_lbits,257,286,15);wa.static_d_desc=new wa(wa.static_dtree,ur.extra_dbits,0,30,15);wa.static_bl_desc=new wa(null,ur.extra_blbits,0,19,7);var qtt=9,$tt=8;function If(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var Ape=0,fU=1,uT=2,bh=[new If(0,0,0,0,Ape),new If(4,4,8,4,fU),new If(4,5,16,8,fU),new If(4,6,32,32,fU),new If(4,4,16,16,uT),new If(8,16,32,32,uT),new If(8,16,128,128,uT),new If(8,32,128,256,uT),new If(32,128,258,1024,uT),new If(32,258,258,4096,uT)],dU=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],ju=0,uU=1,Mv=2,mU=3,ent=32,dQ=42,hU=113,Nv=666,uQ=8,tnt=0,mQ=1,nnt=2,Lr=3,pU=258,Md=pU+Lr+1;function Fpe(e,t,n,i){let o=e[t*2],r=e[n*2];return o=3&&O[ur.bl_order[Ne]*2+1]===0;Ne--);return e.opt_len+=3*(Ne+1)+5+5+4,Ne}function Xe(Ne){e.pending_buf[e.pending++]=Ne}function Le(Ne){Xe(Ne&255),Xe(Ne>>>8&255)}function ke(Ne){Xe(Ne>>8&255),Xe(Ne&255&255)}function Oe(Ne,ut){let Je,$e=ut;ee>16-$e?(Je=Ne,q|=Je<>>16-ee,ee+=$e-16):(q|=Ne<=8&&(Xe(q&255),q>>>=8,ee-=8)}function je(){Oe(mQ<<1,3),at(256,wa.static_ltree),Ie(),1+z+10-ee<9&&(Oe(mQ<<1,3),at(256,wa.static_ltree),Ie()),z=7}function et(Ne,ut){let Je,$e,pt;if(e.dist_buf[J]=Ne,e.lc_buf[J]=ut&255,J++,Ne===0?A[ut*2]++:(te++,Ne--,A[(ur._length_code[ut]+256+1)*2]++,N[ur.d_code(Ne)*2]++),!(J&8191)&&b>2){for(Je=J*8,$e=G-C,pt=0;pt<30;pt++)Je+=N[pt*2]*(5+ur.extra_dbits[pt]);if(Je>>>=3,te8?Le(q):ee>0&&Xe(q&255),q=0,ee=0}function Ce(Ne,ut,Je){Dt(),z=8,Je&&(Le(ut),Le(~ut)),e.pending_buf.set(c.subarray(Ne,Ne+ut),e.pending),e.pending+=ut}function Ve(Ne,ut,Je){Oe((tnt<<1)+(Je?1:0),3),Ce(Ne,ut,!0)}function ct(Ne,ut,Je){let $e,pt,It=0;b>0?(U.build_tree(e),Y.build_tree(e),It=Te(),$e=e.opt_len+3+7>>>3,pt=e.static_len+3+7>>>3,pt<=$e&&($e=pt)):$e=pt=ut+5,ut+4<=$e&&Ne!=-1?Ve(Ne,ut,Je):pt==$e?(Oe((mQ<<1)+(Je?1:0),3),He(wa.static_ltree,wa.static_dtree)):(Oe((nnt<<1)+(Je?1:0),3),Lt(U.max_code+1,Y.max_code+1,It+1),He(A,N)),_e(),Je&&Dt()}function Di(Ne){ct(C>=0?C:-1,G-C,Ne),C=G,t.flush_pending()}function mt(){let Ne,ut,Je,$e;do{if($e=d-v-G,$e===0&&G===0&&v===0)$e=r;else if($e==-1)$e--;else if(G>=r+r-Md){c.set(c.subarray(r,r+r),0),I-=r,G-=r,C-=r,Ne=g,Je=Ne;do ut=m[--Je]&65535,m[Je]=ut>=r?ut-r:0;while(--Ne!==0);Ne=r,Je=Ne;do ut=u[--Je]&65535,u[Je]=ut>=r?ut-r:0;while(--Ne!==0);$e+=r}if(t.avail_in===0)return;Ne=t.read_buf(c,G+v,$e),v+=Ne,v>=Lr&&(p=c[G]&255,p=(p<<_^c[G+1]&255)&x)}while(vi-5&&(ut=i-5);;){if(v<=1){if(mt(),v===0&&Ne==0)return ju;if(v===0)break}if(G+=v,v=0,Je=C+ut,(G===0||G>=Je)&&(v=G-Je,G=Je,Di(!1),t.avail_out===0)||G-C>=r-Md&&(Di(!1),t.avail_out===0))return ju}return Di(Ne==4),t.avail_out===0?Ne==4?Mv:ju:Ne==4?mU:uU}function fr(Ne){let ut=w,Je=G,$e,pt,It=P,yn=G>r-Md?G-(r-Md):0,po=X,rr=a,Oa=G+pU,Ya=c[Je+It-1],as=c[Je+It];P>=E&&(ut>>=2),po>v&&(po=v);do if($e=Ne,!(c[$e+It]!=as||c[$e+It-1]!=Ya||c[$e]!=c[Je]||c[++$e]!=c[Je+1])){Je+=2,$e++;do;while(c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&c[++Je]==c[++$e]&&JeIt){if(I=Ne,It=pt,pt>=po)break;Ya=c[Je+It-1],as=c[Je+It]}}while((Ne=u[Ne&rr]&65535)>yn&&--ut!==0);return It<=v?It:v}function Zc(Ne){let ut=0,Je;for(;;){if(v=Lr&&(p=(p<<_^c[G+(Lr-1)]&255)&x,ut=m[p]&65535,u[G&a]=m[p],m[p]=G),ut!==0&&(G-ut&65535)<=r-Md&&R!=2&&(V=fr(ut)),V>=Lr)if(Je=et(G-I,V-Lr),v-=V,V<=F&&v>=Lr){V--;do G++,p=(p<<_^c[G+(Lr-1)]&255)&x,ut=m[p]&65535,u[G&a]=m[p],m[p]=G;while(--V!==0);G++}else G+=V,V=0,p=c[G]&255,p=(p<<_^c[G+1]&255)&x;else Je=et(0,c[G]&255),v--,G++;if(Je&&(Di(!1),t.avail_out===0))return ju}return Di(Ne==4),t.avail_out===0?Ne==4?Mv:ju:Ne==4?mU:uU}function Zr(Ne){let ut=0,Je,$e;for(;;){if(v=Lr&&(p=(p<<_^c[G+(Lr-1)]&255)&x,ut=m[p]&65535,u[G&a]=m[p],m[p]=G),P=V,L=I,V=Lr-1,ut!==0&&P4096)&&(V=Lr-1)),P>=Lr&&V<=P){$e=G+v-Lr,Je=et(G-1-L,P-Lr),v-=P-1,P-=2;do++G<=$e&&(p=(p<<_^c[G+(Lr-1)]&255)&x,ut=m[p]&65535,u[G&a]=m[p],m[p]=G);while(--P!==0);if(Z=0,V=Lr-1,G++,Je&&(Di(!1),t.avail_out===0))return ju}else if(Z!==0){if(Je=et(0,c[G-1]&255),Je&&Di(!1),G++,v--,t.avail_out===0)return ju}else Z=1,G++,v--}return Z!==0&&(Je=et(0,c[G-1]&255),Z=0),Di(Ne==4),t.avail_out===0?Ne==4?Mv:ju:Ne==4?mU:uU}function ss(Ne){return Ne.total_in=Ne.total_out=0,Ne.msg=null,e.pending=0,e.pending_out=0,n=hU,o=0,le(),fe(),0}e.deflateInit=function(Ne,ut,Je,$e,pt,It){return $e||($e=uQ),pt||(pt=$tt),It||(It=0),Ne.msg=null,ut==-1&&(ut=6),pt<1||pt>qtt||$e!=uQ||Je<9||Je>15||ut<0||ut>9||It<0||It>2?-2:(Ne.dstate=e,s=Je,r=1<9||Je<0||Je>2?-2:(bh[b].func!=bh[ut].func&&Ne.total_in!==0&&($e=Ne.deflate(1)),b!=ut&&(b=ut,F=bh[b].max_lazy,E=bh[b].good_length,X=bh[b].nice_length,w=bh[b].max_chain),R=Je,$e)},e.deflateSetDictionary=function(Ne,ut,Je){let $e=Je,pt,It=0;if(!ut||n!=dQ)return-2;if($er-Md&&($e=r-Md,It=Je-$e),c.set(ut.subarray(It,It+$e),0),G=$e,C=$e,p=c[0]&255,p=(p<<_^c[1]&255)&x,pt=0;pt<=$e-Lr;pt++)p=(p<<_^c[pt+(Lr-1)]&255)&x,u[pt&a]=m[p],m[p]=pt;return 0},e.deflate=function(Ne,ut){let Je,$e,pt,It,yn;if(ut>4||ut<0)return-2;if(!Ne.next_out||!Ne.next_in&&Ne.avail_in!==0||n==Nv&&ut!=4)return Ne.msg=dU[4],-2;if(Ne.avail_out===0)return Ne.msg=dU[7],-5;if(t=Ne,It=o,o=ut,n==dQ&&($e=uQ+(s-8<<4)<<8,pt=(b-1&255)>>1,pt>3&&(pt=3),$e|=pt<<6,G!==0&&($e|=ent),$e+=31-$e%31,n=hU,ke($e)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&ut<=It&&ut!=4)return t.msg=dU[7],-5;if(n==Nv&&t.avail_in!==0)return Ne.msg=dU[7],-5;if(t.avail_in!==0||v!==0||ut!=0&&n!=Nv){switch(yn=-1,bh[b].func){case Ape:yn=_o(ut);break;case fU:yn=Zc(ut);break;case uT:yn=Zr(ut);break;default:}if((yn==Mv||yn==mU)&&(n=Nv),yn==ju||yn==Mv)return t.avail_out===0&&(o=-1),0;if(yn==uU){if(ut==1)je();else if(Ve(0,0,!1),ut==3)for(Je=0;Jen&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function Npe(e){let t=this,n=new Mpe,i=ont(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let d,u,m=0,p=0,g=0,f=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,d=n.deflate(o),d!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?f.push(new Uint8Array(r)):f.push(r.subarray(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=m&&(c(n.next_in_index),m=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return f.length>1?(u=new Uint8Array(g),f.forEach(function(x){u.set(x,p),p+=x.length})):u=f[0]?new Uint8Array(f[0]):new Uint8Array,u}},t.flush=function(){let a,c,d=0,u=0,m=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&m.push(r.slice(0,n.next_out_index)),u+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(u),m.forEach(function(p){c.set(p,d),d+=p.length}),c}}function ont(e){return e+5*(Math.floor(e/16383)+1)}var Vbi=T(S(),1);var Nd=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],rbe=1440,rnt=0,snt=4,ant=9,cnt=5,lnt=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],dnt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],unt=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],mnt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],hnt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],fnt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],oy=15;function bQ(){let e=this,t,n,i,o,r,s;function a(d,u,m,p,g,f,x,_,C,V,L){let Z,G,I,v,P,w,F,b,R,E,X,A,N,O,U;E=0,P=m;do i[d[u+E]]++,E++,P--;while(P!==0);if(i[0]==m)return x[0]=-1,_[0]=0,0;for(b=_[0],w=1;w<=oy&&i[w]===0;w++);for(F=w,bP&&(b=P),_[0]=b,O=1<A+b;){if(v++,A+=b,U=I-A,U=U>b?b:U,(G=1<<(w=F-A))>Z+1&&(G-=Z+1,N=F,wrbe)return-3;r[v]=X=V[0],V[0]+=U,v!==0?(s[v]=P,o[0]=w,o[1]=b,w=P>>>A-b,o[2]=X-r[v-1]-w,C.set(o,(r[v-1]+w)*3)):x[0]=X}for(o[1]=F-A,E>=m?o[0]=192:L[E]>>A;w>>=1)P^=w;for(P^=w,R=(1<257?(V==-3?C.msg="oversubscribed distance tree":V==-5?(C.msg="incomplete distance tree",V=-3):V!=-4&&(C.msg="empty distance tree with lengths",V=-3),V):0)}}bQ.inflate_trees_fixed=function(e,t,n,i){return e[0]=ant,t[0]=cnt,n[0]=lnt,i[0]=dnt,0};var yU=0,kpe=1,Upe=2,Dpe=3,Bpe=4,Ope=5,Ype=6,hQ=7,Hpe=8,xU=9;function pnt(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,d=0,u=0,m,p=0,g,f=0;function x(_,C,V,L,Z,G,I,v){let P,w,F,b,R,E,X,A,N,O,U,Y,k,H,J,te;X=v.next_in_index,A=v.avail_in,R=I.bitb,E=I.bitk,N=I.write,O=N>=w[te+1],E-=w[te+1],I.win[N++]=w[te+2],O--;continue}do{if(R>>=w[te+1],E-=w[te+1],b&16){for(b&=15,k=w[te+2]+(R&Nd[b]),R>>=b,E-=b;E<15;)A--,R|=(v.read_byte(X++)&255)<>=w[te+1],E-=w[te+1],b&16){for(b&=15;E>=b,E-=b,O-=k,N>=H)J=N-H,N-J>0&&2>N-J?(I.win[N++]=I.win[J++],I.win[N++]=I.win[J++],k-=2):(I.win.set(I.win.subarray(J,J+2),N),N+=2,J+=2,k-=2);else{J=N-H;do J+=I.end;while(J<0);if(b=I.end-J,k>b){if(k-=b,N-J>0&&b>N-J)do I.win[N++]=I.win[J++];while(--b!==0);else I.win.set(I.win.subarray(J,J+b),N),N+=b,J+=b,b=0;J=0}}if(N-J>0&&k>N-J)do I.win[N++]=I.win[J++];while(--k!==0);else I.win.set(I.win.subarray(J,J+k),N),N+=k,J+=k,k=0;break}else if(!(b&64))P+=w[te+2],P+=R&Nd[b],te=(F+P)*3,b=w[te];else return v.msg="invalid distance code",k=v.avail_in-A,k=E>>3>3:k,A+=k,X-=k,E-=k<<3,I.bitb=R,I.bitk=E,v.avail_in=A,v.total_in+=X-v.next_in_index,v.next_in_index=X,I.write=N,-3;while(!0);break}if(b&64)return b&32?(k=v.avail_in-A,k=E>>3>3:k,A+=k,X-=k,E-=k<<3,I.bitb=R,I.bitk=E,v.avail_in=A,v.total_in+=X-v.next_in_index,v.next_in_index=X,I.write=N,1):(v.msg="invalid literal/length code",k=v.avail_in-A,k=E>>3>3:k,A+=k,X-=k,E-=k<<3,I.bitb=R,I.bitk=E,v.avail_in=A,v.total_in+=X-v.next_in_index,v.next_in_index=X,I.write=N,-3);if(P+=w[te+2],P+=R&Nd[b],te=(F+P)*3,(b=w[te])===0){R>>=w[te+1],E-=w[te+1],I.win[N++]=w[te+2],O--;break}}while(!0)}while(O>=258&&A>=10);return k=v.avail_in-A,k=E>>3>3:k,A+=k,X-=k,E-=k<<3,I.bitb=R,I.bitk=E,v.avail_in=A,v.total_in+=X-v.next_in_index,v.next_in_index=X,I.write=N,0}e.init=function(_,C,V,L,Z,G){t=yU,d=_,u=C,m=V,p=L,g=Z,f=G,i=null},e.proc=function(_,C,V){let L,Z,G,I=0,v=0,P=0,w,F,b,R;for(P=C.next_in_index,w=C.avail_in,I=_.bitb,v=_.bitk,F=_.write,b=F<_.read?_.read-F-1:_.end-F;;)switch(t){case yU:if(b>=258&&w>=10&&(_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,V=x(d,u,m,p,g,f,_,C),P=C.next_in_index,w=C.avail_in,I=_.bitb,v=_.bitk,F=_.write,b=F<_.read?_.read-F-1:_.end-F,V!=0)){t=V==1?hQ:xU;break}r=d,i=m,o=p,t=kpe;case kpe:for(L=r;v>>=i[Z+1],v-=i[Z+1],G=i[Z],G===0){s=i[Z+2],t=Ype;break}if(G&16){a=G&15,n=i[Z+2],t=Upe;break}if(!(G&64)){r=G,o=Z/3+i[Z+2];break}if(G&32){t=hQ;break}return t=xU,C.msg="invalid literal/length code",V=-3,_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);case Upe:for(L=a;v>=L,v-=L,r=u,i=g,o=f,t=Dpe;case Dpe:for(L=r;v>=i[Z+1],v-=i[Z+1],G=i[Z],G&16){a=G&15,c=i[Z+2],t=Bpe;break}if(!(G&64)){r=G,o=Z/3+i[Z+2];break}return t=xU,C.msg="invalid distance code",V=-3,_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);case Bpe:for(L=a;v>=L,v-=L,t=Ope;case Ope:for(R=F-c;R<0;)R+=_.end;for(;n!==0;){if(b===0&&(F==_.end&&_.read!==0&&(F=0,b=F<_.read?_.read-F-1:_.end-F),b===0&&(_.write=F,V=_.inflate_flush(C,V),F=_.write,b=F<_.read?_.read-F-1:_.end-F,F==_.end&&_.read!==0&&(F=0,b=F<_.read?_.read-F-1:_.end-F),b===0)))return _.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);_.win[F++]=_.win[R++],b--,R==_.end&&(R=0),n--}t=yU;break;case Ype:if(b===0&&(F==_.end&&_.read!==0&&(F=0,b=F<_.read?_.read-F-1:_.end-F),b===0&&(_.write=F,V=_.inflate_flush(C,V),F=_.write,b=F<_.read?_.read-F-1:_.end-F,F==_.end&&_.read!==0&&(F=0,b=F<_.read?_.read-F-1:_.end-F),b===0)))return _.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);V=0,_.win[F++]=s,b--,t=yU;break;case hQ:if(v>7&&(v-=8,w++,P--),_.write=F,V=_.inflate_flush(C,V),F=_.write,b=F<_.read?_.read-F-1:_.end-F,_.read!=_.write)return _.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);t=Hpe;case Hpe:return V=1,_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);case xU:return V=-3,_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V);default:return V=-2,_.bitb=I,_.bitk=v,C.avail_in=w,C.total_in+=P-C.next_in_index,C.next_in_index=P,_.write=F,_.inflate_flush(C,V)}},e.free=function(){}}var zpe=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],hV=0,fQ=1,Kpe=2,Jpe=3,Qpe=4,jpe=5,_U=6,TU=7,qpe=8,mT=9;function bnt(e,t){let n=this,i=hV,o=0,r=0,s=0,a,c=[0],d=[0],u=new pnt,m=0,p=new Int32Array(rbe*3),g=0,f=new bQ;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,_){_&&(_[0]=g),i==_U&&u.free(x),i=hV,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,_){let C,V,L;return V=x.next_out_index,L=n.read,C=(L<=n.write?n.write:n.end)-L,C>x.avail_out&&(C=x.avail_out),C!==0&&_==-5&&(_=0),x.avail_out-=C,x.total_out+=C,x.next_out.set(n.win.subarray(L,L+C),V),V+=C,L+=C,L==n.end&&(L=0,n.write==n.end&&(n.write=0),C=n.write-L,C>x.avail_out&&(C=x.avail_out),C!==0&&_==-5&&(_=0),x.avail_out-=C,x.total_out+=C,x.next_out.set(n.win.subarray(L,L+C),V),V+=C,L+=C),x.next_out_index=V,n.read=L,_},n.proc=function(x,_){let C,V,L,Z,G,I,v,P;for(Z=x.next_in_index,G=x.avail_in,V=n.bitb,L=n.bitk,I=n.write,v=I>>1){case 0:V>>>=3,L-=3,C=L&7,V>>>=C,L-=C,i=fQ;break;case 1:w=[],F=[],b=[[]],R=[[]],bQ.inflate_trees_fixed(w,F,b,R),u.init(w[0],F[0],b[0],0,R[0],0),V>>>=3,L-=3,i=_U;break;case 2:V>>>=3,L-=3,i=Jpe;break;case 3:return V>>>=3,L-=3,i=mT,x.msg="invalid block type",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_)}break;case fQ:for(;L<32;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<>>16&65535)!=(V&65535))return i=mT,x.msg="invalid stored block lengths",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);o=V&65535,V=L=0,i=o!==0?Kpe:m!==0?TU:hV;break;case Kpe:if(G===0||v===0&&(I==n.end&&n.read!==0&&(I=0,v=IG&&(C=G),C>v&&(C=v),n.win.set(x.read_buf(Z,C),I),Z+=C,G-=C,I+=C,v-=C,(o-=C)!==0)break;i=m!==0?TU:hV;break;case Jpe:for(;L<14;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<29||(C>>5&31)>29)return i=mT,x.msg="too many length or distance symbols",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);if(C=258+(C&31)+(C>>5&31),!a||a.length>>=14,L-=14,s=0,i=Qpe;case Qpe:for(;s<4+(r>>>10);){for(;L<3;){if(G!==0)_=0;else return n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);G--,V|=(x.read_byte(Z++)&255)<>>=3,L-=3}for(;s<19;)a[zpe[s++]]=0;if(c[0]=7,C=f.inflate_trees_bits(a,c,d,p,x),C!=0)return _=C,_==-3&&(a=null,i=mT),n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);s=0,i=jpe;case jpe:for(;C=r,!(s>=258+(C&31)+(C>>5&31));){let O,U;for(C=c[0];L>>=C,L-=C,a[s++]=U;else{for(P=U==18?7:U-14,O=U==18?11:3;L>>=C,L-=C,O+=V&Nd[P],V>>>=P,L-=P,P=s,C=r,P+O>258+(C&31)+(C>>5&31)||U==16&&P<1)return a=null,i=mT,x.msg="invalid bit length repeat",_=-3,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);U=U==16?a[P-1]:0;do a[P++]=U;while(--O!==0);s=P}}if(d[0]=-1,E=[],X=[],A=[],N=[],E[0]=9,X[0]=6,C=r,C=f.inflate_trees_dynamic(257+(C&31),1+(C>>5&31),a,E,X,A,N,p,x),C!=0)return C==-3&&(a=null,i=mT),_=C,n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,n.inflate_flush(x,_);u.init(E[0],X[0],p,A[0],p,N[0]),i=_U;case _U:if(n.bitb=V,n.bitk=L,x.avail_in=G,x.total_in+=Z-x.next_in_index,x.next_in_index=Z,n.write=I,(_=u.proc(n,x,_))!=1)return n.inflate_flush(x,_);if(_=0,u.free(x),Z=x.next_in_index,G=x.avail_in,V=n.bitb,L=n.bitk,I=n.write,v=I15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new bnt(n,1<>4)+8>s.wbits){s.mode=ry,n.msg="invalid win size",s.marker=5;break}s.mode=$pe;case $pe:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=ry,n.msg="incorrect header check",s.marker=5;break}if(!(r&gnt)){s.mode=kv;break}s.mode=ebe;case ebe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=tbe;case tbe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=nbe;case nbe:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=ibe;case ibe:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=pQ,2);case pQ:return s.mode=ry,n.msg="need dictionary",s.marker=0,-2;case kv:if(o=s.blocks.proc(n,o),o==-3){s.mode=ry,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=obe;case obe:return n.avail_in=0,1;case ry:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=pQ)return-2;let a=n.istate;return s>=1<0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return d.length>1?(m=new Uint8Array(f),d.forEach(function(x){m.set(x,g),g+=x.length})):m=d[0]?new Uint8Array(d[0]):new Uint8Array,m}},t.flush=function(){n.inflateEnd()}}var Pbi=T(S(),1);var Rbi=T(S(),1);var fV="/",gQ=new Date(2107,11,31),yQ=new Date(1980,0,1),Ii=void 0,kd="undefined",zb="function";var Gbi=T(S(),1);var Uv=class{constructor(t){return class extends TransformStream{constructor(n,i){let o=new t(i);super({transform(r,s){s.enqueue(o.append(r))},flush(r){let s=o.flush();s&&r.enqueue(s)}})}}}};var Snt=64,cbe=2;try{typeof navigator!=kd&&navigator.hardwareConcurrency&&(cbe=navigator.hardwareConcurrency)}catch{}var Cnt={chunkSize:512*1024,maxWorkers:cbe,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Ii,CompressionStreamNative:typeof CompressionStream!=kd&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=kd&&DecompressionStream},ay=Object.assign({},Cnt);function Dv(){return ay}function SU(e){return Math.max(e.chunkSize,Snt)}function pV(e){let{baseURL:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,Deflate:a,Inflate:c,CompressionStream:d,DecompressionStream:u,workerScripts:m}=e;if(sy("baseURL",t),sy("chunkSize",n),sy("maxWorkers",i),sy("terminateWorkerTimeout",o),sy("useCompressionStream",r),sy("useWebWorkers",s),a&&(ay.CompressionStream=new Uv(a)),c&&(ay.DecompressionStream=new Uv(c)),sy("CompressionStream",d),sy("DecompressionStream",u),m!==Ii){let{deflate:p,inflate:g}=m;if((p||g)&&(ay.workerScripts||(ay.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");ay.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");ay.workerScripts.inflate=g}}}function sy(e,t){t!==Ii&&(ay[e]=t)}var wbi=T(S(),1);var Z0i=T(S(),1);var y0i=T(S(),1);var p0i=T(S(),1);var kbi=T(S(),1);var Abi=T(S(),1),lbe=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;lbe[e]=t}var Kb=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i>>8^lbe[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var Bv=class extends TransformStream{constructor(){let t,n=new Kb;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};var r0i=T(S(),1);var Bbi=T(S(),1);function bV(e){if(typeof TextEncoder==kd){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n0&&t&&(e[n-1]=el.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=el.getPartial(o);return i.push(el.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},Ov={bytes:{fromBits(e){let n=el.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=el.concat(t,[el.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let d=0;d<16;d++)i[d]=e[d];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let d=0;d<=79;d++){d>=16&&(i[d]=t._S(1,i[d-3]^i[d-8]^i[d-14]^i[d-16]));let u=t._S(5,o)+t._f(d,r,s,a)+c+i[d]+t._key[Math.floor(d/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=u}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var xQ={};xQ.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let d=s[r-1];(r%o===0||o===8&&r%o===4)&&(d=n[d>>>24]<<24^n[d>>16&255]<<16^n[d>>8&255]<<8^n[d&255],r%o===0&&(d=d<<8^d>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^d}for(let d=0;r;d++,r--){let u=s[d&3?r:r-4];r<=4||d<4?a[d]=u:a[d]=i[0][n[u>>>24]]^i[1][n[u>>16&255]]^i[2][n[u>>8&255]]^i[3][n[u&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,d;for(let u=0;u<256;u++)r[(o[u]=u<<1^(u>>7)*283)^u]=u;for(let u=s=0;!n[u];u^=a||1,s=r[s]||1){let m=s^s<<1^s<<2^s<<3^s<<4;m=m>>8^m&255^99,n[u]=m,i[m]=u,d=o[c=o[a=o[u]]];let p=d*16843009^c*65537^a*257^u*16843008,g=o[m]*257^m*16843008;for(let f=0;f<4;f++)e[f][u]=g=g<<24^g>>>8,t[f][m]=p=p<<24^p>>>8}for(let u=0;u<5;u++)e[u]=e[u].slice(0),t[u]=t[u].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],d=r[3],u=r[4],m=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],f=e[t?1:3]^n[3],x=4,_,C,V;for(let L=0;L>>24]^a[p>>16&255]^c[g>>8&255]^d[f&255]^n[x],C=s[p>>>24]^a[g>>16&255]^c[f>>8&255]^d[m&255]^n[x+1],V=s[g>>>24]^a[f>>16&255]^c[m>>8&255]^d[p&255]^n[x+2],f=s[f>>>24]^a[m>>16&255]^c[p>>8&255]^d[g&255]^n[x+3],x+=4,m=_,p=C,g=V;for(let L=0;L<4;L++)o[t?3&-L:L]=u[m>>>24]<<24^u[p>>16&255]<<16^u[g>>8&255]<<8^u[f&255]^n[x++],_=m,m=p,p=g,g=f,f=_;return o}};var ube={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=el.bitLength(t);for(let r=0;r>5)+1<<2,r,s,a,c,d,u=new ArrayBuffer(o),m=new DataView(u),p=0,g=el;for(t=Ov.bytes.toBits(t),d=1;p<(o||1);d++){for(r=s=e.encrypt(g.concat(t,[d])),a=1;ao&&(e=new n().update(e).finalize());for(let r=0;rthis.resolveReady=s),password:ybe(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:d,strength:u,resolveReady:m,ready:p}=c;d?(await vnt(c,u,d,qu(s,0,Hv[u]+2)),s=qu(s,Hv[u]+2),r?a.error(new Error(Jb)):m()):await p;let g=new Uint8Array(s.length-dy-(s.length-dy)%gV);a.enqueue(bbe(c,s,g,0,dy,!0))},async flush(s){let{signed:a,ctr:c,hmac:d,pending:u,ready:m}=this;if(d&&c){await m;let p=qu(u,0,u.length-dy),g=qu(u,u.length-dy),f=new Uint8Array;if(p.length){let x=Kv(Xf,p);d.update(x);let _=c.update(x);f=zv(Xf,_)}if(a){let x=qu(zv(Xf,d.digest()),0,dy);for(let _=0;_this.resolveReady=r),password:ybe(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:d,resolveReady:u,ready:m}=a,p=new Uint8Array;c?(p=await wnt(a,d,c),u()):await m;let g=new Uint8Array(p.length+r.length-r.length%gV);g.set(p,0),s.enqueue(bbe(a,r,g,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:d}=this;if(a&&s){await d;let u=new Uint8Array;if(c.length){let m=s.update(Kv(Xf,c));a.update(m),u=zv(Xf,m)}o.signature=zv(Xf,a.digest()).slice(0,dy),r.enqueue(SQ(u,o.signature))}}}),o=this}};function bbe(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,d=t.length-o;c.length&&(t=SQ(c,t),n=Mnt(n,d-d%gV));let u;for(u=0;u<=d-gV;u+=gV){let m=Kv(Xf,qu(t,u,u+gV));r&&a.update(m);let p=s.update(m);r||a.update(p),n.set(zv(Xf,p),u+i)}return e.pending=qu(t,u),n}async function vnt(e,t,n,i){let o=await gbe(e,t,n,qu(i,0,Hv[t])),r=qu(i,Hv[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(ly)}async function wnt(e,t,n){let i=CU(new Uint8Array(Hv[t])),o=await gbe(e,t,n,i);return SQ(i,o)}async function gbe(e,t,n,i){e.password=null;let o=await Fnt(Lnt,n,Gnt,!1,Ent),r=await Ant(Object.assign({salt:i},TQ),o,8*(Yv[t]*2+2)),s=new Uint8Array(r),a=Kv(Xf,qu(s,0,Yv[t])),c=Kv(Xf,qu(s,Yv[t],Yv[t]*2)),d=qu(s,Yv[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:d},ctr:new Wnt(new Xnt(a),Array.from(Int)),hmac:new Pnt(c)}),d}async function Fnt(e,t,n,i,o){if(mbe)try{return await Jv.importKey(e,t,n,i,o)}catch{return mbe=!1,cy.importKey(t)}else return cy.importKey(t)}async function Ant(e,t,n){if(hbe)try{return await Jv.deriveBits(e,t,n)}catch{return hbe=!1,cy.pbkdf2(t,e.salt,TQ.iterations,n)}else return cy.pbkdf2(t,e.salt,TQ.iterations,n)}function ybe(e,t){return t===Ii?bV(e):t}function SQ(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Mnt(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function qu(e,t,n){return e.subarray(t,n)}function zv(e,t){return e.fromBits(t)}function Kv(e,t){return e.toBits(t)}var l0i=T(S(),1);var yV=12,ZU=class extends TransformStream{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),Sbe(this,t)},transform(o,r){let s=this;if(s.password){let a=xbe(s,o.subarray(0,yV));if(s.password=null,a[yV-1]!=s.passwordVerification)throw new Error(ly);o=o.subarray(yV)}i?r.error(new Error(Jb)):r.enqueue(xbe(s,o))}})}},GU=class extends TransformStream{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),Sbe(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=CU(new Uint8Array(yV));c[yV-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(_be(r,c),0),a=yV}else s=new Uint8Array(i.length),a=0;s.set(_be(r,i),a),o.enqueue(s)}})}};function xbe(e,t){let n=new Uint8Array(t.length);for(let i=0;i>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function Cbe(e){let t=e.keys[2]|2;return Vbe(Math.imul(t,t^1)>>>8)}function Vbe(e){return e&255}function Tbe(e){return e&4294967295}var Lbe="deflate-raw",EU=class extends TransformStream{constructor(t,{chunkSize:n,CompressionStream:i,CompressionStreamNative:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:d,level:u}=t,m=this,p,g,f=Rbe(super.readable);(!s||c)&&d&&(p=new Bv,f=Wf(f,p)),r&&(f=Gbe(f,a,{level:u,chunkSize:n},o,i)),s&&(c?f=Wf(f,new GU(t)):(g=new LU(t),f=Wf(f,g))),Zbe(m,f,()=>{let x;s&&!c&&(x=g.signature),(!s||c)&&d&&(x=new DataView(p.value.buffer).getUint32(0)),m.signature=x})}},IU=class extends TransformStream{constructor(t,{chunkSize:n,DecompressionStream:i,DecompressionStreamNative:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:d,useCompressionStream:u}=t,m,p,g=Rbe(super.readable);s&&(r?g=Wf(g,new ZU(t)):(p=new VU(t),g=Wf(g,p))),d&&(g=Gbe(g,u,{chunkSize:n},o,i)),(!s||r)&&a&&(m=new Bv,g=Wf(g,m)),Zbe(this,g,()=>{if((!s||r)&&a){let f=new DataView(m.value.buffer);if(c!=f.getUint32(0,!1))throw new Error(hT)}})}};function Rbe(e){return Wf(e,new TransformStream({transform(t,n){t&&t.length&&n.enqueue(t)}}))}function Zbe(e,t,n){t=Wf(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function Gbe(e,t,n,i,o){try{let r=t&&i?i:o;e=Wf(e,new r(Lbe,n))}catch{if(t)try{e=Wf(e,new o(Lbe,n))}catch{return e}else return e}return e}function Wf(e,t){return e.pipeThrough(t)}var Ebe="message",Ibe="start",Xbe="pull",VQ="data",Wbe="ack",LQ="close",PU="deflate",vU="inflate";var XU=class extends TransformStream{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(PU)?r=EU:o.startsWith(vU)&&(r=IU);let s=0,a=0,c=new r(t,n),d=super.readable,u=new TransformStream({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){Object.assign(i,{inputSize:a})}}),m=new TransformStream({transform(p,g){p&&p.length&&(s+=p.length,g.enqueue(p))},flush(){let{signature:p}=c;Object.assign(i,{signature:p,outputSize:s,inputSize:a})}});Object.defineProperty(i,"readable",{get(){return d.pipeThrough(u).pipeThrough(c).pipeThrough(m)}})}},WU=class extends TransformStream{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var S0i=T(S(),1);var wbe=typeof Worker!=kd;var xV=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,scripts:d},u){let{signal:m}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new WU(r.chunkSize)).pipeThrough(new ZQ(n,s),{signal:m}),writable:i,options:Object.assign({},o),scripts:d,transferStreams:c,terminate(){return new Promise(p=>{let{worker:g,busy:f}=t;g?(f?t.resolveTerminated=p:(g.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,u(t)}}),(a&&wbe?Nnt:Fbe)(t,r)}},ZQ=class extends TransformStream{constructor(t,{onstart:n,onprogress:i,size:o,onend:r}){let s=0;super({async start(){n&&await RQ(n,o)},async transform(a,c){s+=a.length,i&&await RQ(i,s,o),c.enqueue(a)},async flush(){t.size=s,r&&await RQ(r,s)}})}};async function RQ(e,...t){try{await e(...t)}catch{}}function Fbe(e,t){return{run:()=>knt(e,t)}}function Nnt(e,t){let{baseURL:n,chunkSize:i}=t;if(!e.interface){let o;try{o=Bnt(e.scripts[0],n,e)}catch{return wbe=!1,Fbe(e,t)}Object.assign(e,{worker:o,interface:{run:()=>Unt(e,{chunkSize:i})}})}return e.interface}async function knt({options:e,readable:t,writable:n,onTaskFinished:i},o){try{let r=new XU(e,o);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}finally{i()}}async function Unt(e,t){let n,i,o=new Promise((p,g)=>{n=p,i=g});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s,scripts:a}=e,{writable:c,closed:d}=Dnt(e.writable),u=wU({type:Ibe,scripts:a.slice(1),options:s,config:t,readable:r,writable:c},e);u||Object.assign(e,{reader:r.getReader(),writer:c.getWriter()});let m=await o;return u||await c.getWriter().close(),await d,m}function Dnt(e){let t,n=new Promise(o=>t=o);return{writable:new WritableStream({async write(o){let r=e.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){t()},abort(o){return e.getWriter().abort(o)}}),closed:n}}var Pbe=!0,vbe=!0;function Bnt(e,t,n){let i={type:"module"},o,r;typeof e==zb&&(e=e());try{o=new URL(e,t)}catch{o=e}if(Pbe)try{r=new Worker(o)}catch{Pbe=!1,r=new Worker(o,i)}else r=new Worker(o,i);return r.addEventListener(Ebe,s=>Ont(s,n)),r}function wU(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(r.byteLength!C.busy);if(_)return Mbe(_),new xV(_,e,t,x);if(fT.lengthGQ.push({resolve:C,stream:e,workerOptions:t}))}function x(_){if(GQ.length){let[{resolve:C,stream:V,workerOptions:L}]=GQ.splice(0,1);C(new xV(_,V,L,x))}else _.worker?(Mbe(_),Ynt(_,t)):fT=fT.filter(C=>C!=_)}}function Ynt(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{fT=fT.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function Mbe(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var X0i=T(S(),1);var Hnt="Writer iterator completed too soon",znt="text/plain";var Knt="Content-Type";var Jnt=64*1024,XQ="writable",_V=class{constructor(){this.size=0}init(){this.initialized=!0}},AU=class extends _V{get readable(){let t=this,{chunkSize:n=Jnt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this;o.enqueue(await Fa(t,r+c,Math.min(n,s-c),a)),c+n>s?o.close():this.chunkOffset+=n}});return i}},EQ=class extends _V{constructor(){super();let t=this,n=new WritableStream({write(i){return t.writeUint8Array(i)}});Object.defineProperty(t,XQ,{get(){return n}})}writeUint8Array(){}};var MU=class extends EQ{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i2?n.data+=btoa(o):n.pending=o}getData(){return this.data+btoa(this.pending)}},Qb=class extends AU{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||on&&(s=s.slice(t,o)),new Uint8Array(s)}},Qv=class extends _V{constructor(t){super();let n=this,i=new TransformStream,o=[];t&&o.push([Knt,t]),Object.defineProperty(n,XQ,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},NU=class extends Qb{constructor(t){super(new Blob([t],{type:znt}))}},kU=class extends Qv{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var IQ=class extends AU{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;c>=r[a].size;)c-=r[a].size,a++;let d=r[a],u=d.size;if(c+n<=u)s=await Fa(d,c,n);else{let m=u-c;s=new Uint8Array(n),s.set(await Fa(d,c,m)),s.set(await o.readUint8Array(t+m,n-m,i),m)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},UU=class extends _V{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(u){let{availableSize:m}=i;if(s)u.length>=m?(await c(u.slice(0,m)),await d(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(u.slice(m))):await c(u);else{let{value:p,done:g}=await t.next();if(g&&!p)throw new Error(Hnt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await vf(o),r=p.writable,s=r.getWriter(),await this.write(u)}},async close(){await s.ready,await d()}});Object.defineProperty(i,XQ,{get(){return a}});async function c(u){let m=u.length;m&&(await s.ready,await s.write(u),o.size+=m,i.size+=m,i.availableSize-=m)}async function d(){r.size=o.size,await s.close()}}};async function vf(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function DU(e){return Array.isArray(e)&&(e=new IQ(e)),e instanceof ReadableStream&&(e={readable:e}),e}function BU(e){e.writable===Ii&&typeof e.next==zb&&(e=new UU(e)),e instanceof WritableStream&&(e={writable:e});let{writable:t}=e;return t.size===Ii&&(t.size=0),e instanceof UU||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Fa(e,t,n,i){return e.readUint8Array(t,n,i)}var z0i=T(S(),1);var F0i=T(S(),1);var P0i=T(S(),1),Nbe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),Qnt=Nbe.length==256;function kbe(e){if(Qnt){let t="";for(let n=0;nthis[n]=t[n])}};var HQ="File format is not recognized",tit="End of central directory not found",nit="End of Zip64 central directory locator not found",iit="Central directory header not found",oit="Local file header not found",rit="Zip64 extra field not found",sit="File contains encrypted entry",ait="Encryption method not supported",Bbe="Compression method not supported",Obe="Split zip file",Ybe="utf-8",Hbe="cp437",cit=[[FQ,4294967295],[AQ,4294967295],[MQ,4294967295],[OU,65535]],lit={[65535]:{getValue:gs,bytes:4},[4294967295]:{getValue:zU,bytes:8}},eD=class{constructor(t,n={}){Object.assign(this,{reader:DU(t),options:n,config:Dv()})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await vf(i),(i.size===Ii||!i.readUint8Array)&&(i=new Qb(await new Response(i.readable).blob()),await vf(i)),i.size<22)throw new Error(HQ);i.chunkSize=SU(o);let r=await fit(i,101010256,i.size,22,65535*16);if(!r){let F=await Fa(i,0,4),b=ga(F);throw gs(b)==134695760?new Error(Obe):new Error(tit)}let s=ga(r),a=gs(s,12),c=gs(s,16),d=r.offset,u=ba(s,20),m=d+22+u,p=ba(s,4),g=i.lastDiskNumber||0,f=ba(s,6),x=ba(s,8),_=0,C=0;if(c==4294967295||a==4294967295||x==65535||f==65535){let F=await Fa(i,r.offset-20,20),b=ga(F);if(gs(b,0)==117853008){c=zU(b,8);let R=await Fa(i,c,56,-1),E=ga(R),X=r.offset-20-56;if(gs(E,0)!=101075792&&c!=X){let A=c;c=X,_=c-A,R=await Fa(i,c,56,-1),E=ga(R)}if(gs(E,0)!=101075792)throw new Error(nit);p==65535&&(p=gs(E,16)),f==65535&&(f=gs(E,20)),x==65535&&(x=zU(E,32)),a==4294967295&&(a=zU(E,40)),c-=a}}if(c>=i.size&&(_=i.size-c-a-22,c=i.size-a-22),g!=p)throw new Error(Obe);if(c<0)throw new Error(HQ);let V=0,L=await Fa(i,c,a,f),Z=ga(L);if(a){let F=r.offset-a;if(gs(Z,V)!=33639248&&c!=F){let b=c;c=F,_+=c-b,L=await Fa(i,c,a,f),Z=ga(L)}}let G=r.offset-c-(i.lastDiskOffset||0);if(a!=G&&G>=0&&(a=G,L=await Fa(i,c,a,f),Z=ga(L)),c<0||c>=i.size)throw new Error(HQ);let I=tl(n,t,"filenameEncoding"),v=tl(n,t,"commentEncoding");for(let F=0;Fb.getData(Le,Te,ke),V=k;let{onprogress:Xe}=t;if(Xe)try{await Xe(F+1,x,new uy(b))}catch{}yield Te}let P=tl(n,t,"extractPrependedData"),w=tl(n,t,"extractAppendedData");return P&&(n.prependedData=C>0?await Fa(i,0,C):new Uint8Array),n.comment=u?await Fa(i,d+22,u):new Uint8Array,w&&(n.appendedData=m>>8&255:p>>>24&255),signature:p,compressed:d!=0&&!G,encrypted:o.encrypted&&!G,useWebWorkers:tl(o,i,"useWebWorkers"),useCompressionStream:tl(o,i,"useCompressionStream"),transferStreams:tl(o,i,"transferStreams"),checkPasswordOnly:R},config:u,streamOptions:{signal:b,size:w,onstart:X,onprogress:A,onend:N}},U=0;try{({outputSize:U}=await FU({readable:F,writable:E},O))}catch(Y){if(!R||Y.message!=Jb)throw Y}finally{let Y=tl(o,i,"preventClose");E.size+=U,!Y&&!E.locked&&await E.getWriter().close()}return R?Ii:t.getData?t.getData():E}};function Kbe(e,t,n){let i=e.rawBitFlag=ba(t,n+2),o=(i&1)==1,r=gs(t,n+6);Object.assign(e,{encrypted:o,version:ba(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:pit(r),filenameLength:ba(t,n+22),extraFieldLength:ba(t,n+24)})}async function Jbe(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=ga(new Uint8Array(r)),c=0;try{for(;ct[o]==r);for(let o=0,r=0;o=5&&(r.push(TV),s.push(YU));let a=1;r.forEach((c,d)=>{if(e.data.length>=a+4){let u=gs(i,a);t[c]=e[c]=new Date(u*1e3);let m=s[d];e[m]=u}a+=4})}async function fit(e,t,n,i,o){let r=new Uint8Array(4),s=ga(r);bit(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(d){let u=n-d,m=await Fa(e,u,d);for(let p=m.length-i;p>=0;p--)if(m[p]==r[0]&&m[p+1]==r[1]&&m[p+2]==r[2]&&m[p+3]==r[3])return{offset:u+p,buffer:m.slice(p,p+i).buffer}}}function tl(e,t,n){return t[n]===Ii?e.options[n]:t[n]}function pit(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function zQ(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function SV(e,t){return e.getUint8(t)}function ba(e,t){return e.getUint16(t,!0)}function gs(e,t){return e.getUint32(t,!0)}function zU(e,t){return Number(e.getBigUint64(t,!0))}function bit(e,t,n){e.setUint32(t,n,!0)}function ga(e){return new DataView(e.buffer)}var tgi=T(S(),1);var _it="File already exists",Tit="Zip file comment exceeds 64KB",Sit="File entry comment exceeds 64KB",Cit="File entry name exceeds 64KB",qbe="Version exceeds 65535",Vit="The strength must equal 1, 2, or 3",Lit="Extra field type exceeds 65535",Rit="Extra field data exceeds 64KB",c4="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Zit="Undefined uncompressed size",$be=new Uint8Array([7,0,2,0,65,69,3,0,0]),s4=0,e0e=[],iD=class{constructor(t,n={}){t=BU(t);let i=t.availableSize!==Ii&&t.availableSize>0&&t.availableSize!==1/0&&t.maxSize!==Ii&&t.maxSize>0&&t.maxSize!==1/0;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:Dv(),files:new Map,filenames:new Set,offset:n.offset===Ii?t.writable.size:n.offset,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;s4e0e.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(_it);return o.filenames.add(t),a=Git(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=e0e.shift();c?c():s4--}}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await Ait(this,t,n),ho(i,n,"preventClose")||await s.getWriter().close(),r.getData?r.getData():s}};async function Git(e,t,n,i){t=t.trim(),i.directory&&!t.endsWith(fV)?t+=fV:i.directory=t.endsWith(fV);let o=ho(e,i,"encodeText",bV),r=o(t);if(r===Ii&&(r=bV(t)),Ki(r)>65535)throw new Error(Cit);let s=i.comment||"",a=o(s);if(a===Ii&&(a=bV(s)),Ki(a)>65535)throw new Error(Sit);let c=ho(e,i,BQ,20);if(c>65535)throw new Error(qbe);let d=ho(e,i,OQ,20);if(d>65535)throw new Error(qbe);let u=ho(e,i,TV,new Date),m=ho(e,i,qv),p=ho(e,i,$v),g=ho(e,i,UQ,!0),f=ho(e,i,NQ,0),x=ho(e,i,kQ,0),_=ho(e,i,"passThrough"),C,V;_||(C=ho(e,i,"password"),V=ho(e,i,"rawPassword"));let L=ho(e,i,"encryptionStrength",3),Z=ho(e,i,YQ),G=ho(e,i,"extendedTimestamp",!0),I=ho(e,i,"keepOrder",!0),v=ho(e,i,"level"),P=ho(e,i,"useWebWorkers"),w=ho(e,i,"bufferedWrite"),F=ho(e,i,"dataDescriptorSignature",!1),b=ho(e,i,"signal"),R=ho(e,i,"useUnicodeFileNames",!0),E=ho(e,i,"useCompressionStream"),X=ho(e,i,"compressionMethod"),A=ho(e,i,"dataDescriptor",!0),N=ho(e,i,HU);if(!Z&&(C!==Ii||V!==Ii)&&!(L>=1&&L<=3))throw new Error(Vit);let O=new Uint8Array,{extraField:U}=i;if(U){let Mt=0,Lt=0;U.forEach(Ie=>Mt+=4+Ki(Ie)),O=new Uint8Array(Mt),U.forEach((Ie,je)=>{if(je>65535)throw new Error(Lit);if(Ki(Ie)>65535)throw new Error(Rit);Gs(O,new Uint16Array([je]),Lt),Gs(O,new Uint16Array([Ki(Ie)]),Lt+2),Gs(O,Ie,Lt+4),Lt+=4+Ki(Ie)})}let Y=0,k=0,H=0;if(_&&({uncompressedSize:H}=i,H===Ii))throw new Error(Zit);let J=N===!0;n&&(n=DU(n),await vf(n),_?Y=t0e(H):n.size===Ii?(A=!0,(N||N===Ii)&&(N=!0,H=Y=4294967296)):(H=n.size,Y=t0e(H)));let{diskOffset:te,diskNumber:z,maxSize:q}=e.writer,ee=J||H>4294967295,fe=J||Y>4294967295,_e=J||e.offset+e.pendingEntriesSize-te>4294967295,ye=ho(e,i,"supportZip64SplitFile",!0)&&J||z+Math.ceil(e.pendingEntriesSize/q)>65535;if(_e||ee||fe||ye){if(N===!1||!I)throw new Error(c4);N=!0}N=N||!1;let Te=ho(e,i,DQ),{signature:Xe}=i;i=Object.assign({},i,{rawFilename:r,rawComment:a,version:c,versionMadeBy:d,lastModDate:u,lastAccessDate:m,creationDate:p,rawExtraField:O,zip64:N,zip64UncompressedSize:ee,zip64CompressedSize:fe,zip64Offset:_e,zip64DiskNumberStart:ye,password:C,rawPassword:V,level:!E&&e.config.CompressionStream===Ii&&e.config.CompressionStreamNative===Ii?0:v,useWebWorkers:P,encryptionStrength:L,extendedTimestamp:G,zipCrypto:Z,bufferedWrite:w,keepOrder:I,useUnicodeFileNames:R,dataDescriptor:A,dataDescriptorSignature:F,signal:b,msDosCompatible:g,internalFileAttribute:f,externalFileAttribute:x,useCompressionStream:E,passThrough:_,encrypted:!!(C&&Ki(C)||V&&Ki(V))||_&&Te,signature:Xe,compressionMethod:X});let Le=Xit(i),ke=Pit(i),Oe=Ki(Le.localHeaderArray,ke.dataDescriptorArray);k=Oe+Y,e.options.usdz&&(k+=k+64),e.pendingEntriesSize+=k;let at;try{at=await Eit(e,t,n,{headerInfo:Le,dataDescriptorInfo:ke,metadataSize:Oe},i)}finally{e.pendingEntriesSize-=k}return Object.assign(at,{name:t,comment:s,extraField:U}),new uy(at)}async function Eit(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:d}=o,{headerInfo:u}=i,{usdz:m}=e.options,p=Array.from(r.values()).pop(),g={},f,x,_,C,V,L,Z;r.set(t,g);try{let P;a&&(P=p&&p.lock,G()),(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&a||!c)&&!m?(L=new TransformStream,Z=new Response(L.readable).blob(),L.writable.size=0,f=!0,e.bufferedWrites++,await vf(s)):(L=s,await I()),await vf(L);let{writable:w}=s,{diskOffset:F}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let R=new Uint8Array(4),E=Aa(R);zi(E,0,134695760),await wf(w,R),e.offset+=4}m&&Wit(i,e.offset-F),f||(await P,await v(w));let{diskNumber:b}=s;if(V=!0,g.diskNumberStart=b,g=await Iit(n,L,g,i,e.config,o),V=!1,r.set(t,g),g.filename=t,f){await L.writable.getWriter().close();let R=await Z;await P,await I(),C=!0,c||(R=await wit(g,R,w,o)),await v(w),g.diskNumberStart=s.diskNumber,F=s.diskOffset,await R.stream().pipeTo(w,{preventClose:!0,preventAbort:!0,signal:d}),w.size+=R.size,C=!1}if(g.offset=e.offset-F,g.zip64)Fit(g,o);else if(g.offset>4294967295)throw new Error(c4);return e.offset+=g.size,g}catch(P){if(f&&C||!f&&V){if(e.hasCorruptedEntries=!0,P)try{P.corruptedEntry=!0}catch{}f?e.offset+=L.writable.size:e.offset=L.writable.size}throw r.delete(t),P}finally{f&&e.bufferedWrites--,_&&_(),x&&x()}function G(){g.lock=new Promise(P=>_=P)}async function I(){e.writerLocked=!0;let{lockWriter:P}=e;e.lockWriter=new Promise(w=>x=()=>{e.writerLocked=!1,w()}),await P}async function v(P){Ki(u.localHeaderArray)>s.availableSize&&(s.availableSize=0,await wf(P,new Uint8Array))}}async function Iit(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:d}=o,{localHeaderArray:u,headerArray:m,lastModDate:p,rawLastModDate:g,encrypted:f,compressed:x,version:_,compressionMethod:C,rawExtraFieldExtendedTimestamp:V,extraFieldExtendedTimestampFlag:L,rawExtraFieldNTFS:Z,rawExtraFieldAES:G}=a,{dataDescriptorArray:I}=c,{rawFilename:v,lastAccessDate:P,creationDate:w,password:F,rawPassword:b,level:R,zip64:E,zip64UncompressedSize:X,zip64CompressedSize:A,zip64Offset:N,zip64DiskNumberStart:O,zipCrypto:U,dataDescriptor:Y,directory:k,versionMadeBy:H,rawComment:J,rawExtraField:te,useWebWorkers:z,onstart:q,onprogress:ee,onend:fe,signal:_e,encryptionStrength:le,extendedTimestamp:ye,msDosCompatible:Te,internalFileAttribute:Xe,externalFileAttribute:Le,useCompressionStream:ke,passThrough:Oe}=s,at={lock:i,versionMadeBy:H,zip64:E,directory:!!k,filenameUTF8:!0,rawFilename:v,commentUTF8:!0,rawComment:J,rawExtraFieldExtendedTimestamp:V,rawExtraFieldNTFS:Z,rawExtraFieldAES:G,rawExtraField:te,extendedTimestamp:ye,msDosCompatible:Te,internalFileAttribute:Xe,externalFileAttribute:Le,diskNumberStart:n},{signature:Mt,uncompressedSize:Lt}=s,Ie=0;Oe||(Lt=0);let{writable:je}=t;if(e){e.chunkSize=SU(r),await wf(je,u);let He=e.readable,Dt=He.size=e.size,Ce={options:{codecType:PU,level:R,rawPassword:b,password:F,encryptionStrength:le,zipCrypto:f&&U,passwordVerification:f&&U&&g>>8&255,signed:!Oe,compressed:x&&!Oe,encrypted:f&&!Oe,useWebWorkers:z,useCompressionStream:ke,transferStreams:!1},config:r,streamOptions:{signal:_e,size:Dt,onstart:q,onprogress:ee,onend:fe}},Ve=await FU({readable:He,writable:je},Ce);Ie=Ve.outputSize,Oe||(Lt=Ve.inputSize,Mt=Ve.signature),je.size+=Lt}else await wf(je,u);let et;if(E){let He=4;X&&(He+=8),A&&(He+=8),N&&(He+=8),O&&(He+=4),et=new Uint8Array(He)}else et=new Uint8Array;return vit({signature:Mt,rawExtraFieldZip64:et,compressedSize:Ie,uncompressedSize:Lt,headerInfo:a,dataDescriptorInfo:c},s),Y&&await wf(je,I),Object.assign(at,{uncompressedSize:Lt,compressedSize:Ie,lastModDate:p,rawLastModDate:g,creationDate:w,lastAccessDate:P,encrypted:f,zipCrypto:U,size:d+Ie,compressionMethod:C,version:_,headerArray:m,signature:Mt,rawExtraFieldZip64:et,extraFieldExtendedTimestampFlag:L,zip64UncompressedSize:X,zip64CompressedSize:A,zip64Offset:N,zip64DiskNumberStart:O}),at}function Xit(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,level:r,zip64:s,zipCrypto:a,useUnicodeFileNames:c,dataDescriptor:d,directory:u,rawExtraField:m,encryptionStrength:p,extendedTimestamp:g,encrypted:f}=e,x=r!==0&&!u,{version:_,compressionMethod:C}=e,V;if(f&&!a){V=new Uint8Array(Ki($be)+2);let N=Aa(V);no(N,0,39169),Gs(V,$be,2),oD(N,8,p)}else V=new Uint8Array;let L,Z,G;if(g){Z=new Uint8Array(9+(i?4:0)+(o?4:0));let N=Aa(Z);no(N,0,21589),no(N,2,Ki(Z)-4),G=1+(i?2:0)+(o?4:0),oD(N,4,G);let O=5;zi(N,O,Math.floor(n.getTime()/1e3)),O+=4,i&&(zi(N,O,Math.floor(i.getTime()/1e3)),O+=4),o&&zi(N,O,Math.floor(o.getTime()/1e3));try{L=new Uint8Array(36);let U=Aa(L),Y=a4(n);no(U,0,10),no(U,2,32),no(U,8,1),no(U,10,24),Yl(U,12,Y),Yl(U,20,a4(i)||Y),Yl(U,28,a4(o)||Y)}catch{L=new Uint8Array}}else L=Z=new Uint8Array;let I=0;c&&(I=I|2048),d&&(I=I|8),C===Ii&&(C=x?8:0),C==8&&(r>=1&&r<3&&(I=I|6),r>=3&&r<5&&(I=I|1),r===9&&(I=I|2)),s&&(_=_>45?_:45),f&&(I=I|1,a||(_=_>51?_:51,V[9]=C,C=99));let v=new Uint8Array(26),P=Aa(v);no(P,0,_),no(P,2,I),no(P,4,C);let w=new Uint32Array(1),F=Aa(w),b;ngQ?b=gQ:b=n,no(F,0,(b.getHours()<<6|b.getMinutes())<<5|b.getSeconds()/2),no(F,2,(b.getFullYear()-1980<<4|b.getMonth()+1)<<5|b.getDate());let R=w[0];zi(P,6,R),no(P,22,Ki(t));let E=Ki(V,Z,L,m);no(P,24,E);let X=new Uint8Array(30+Ki(t)+E),A=Aa(X);return zi(A,0,67324752),Gs(X,v,4),Gs(X,t,30),Gs(X,V,30+Ki(t)),Gs(X,Z,30+Ki(t,V)),Gs(X,L,30+Ki(t,V,Z)),Gs(X,m,30+Ki(t,V,Z,L)),{localHeaderArray:X,headerArray:v,headerView:P,lastModDate:n,rawLastModDate:R,encrypted:f,compressed:x,version:_,compressionMethod:C,extraFieldExtendedTimestampFlag:G,rawExtraFieldExtendedTimestamp:Z,rawExtraFieldNTFS:L,rawExtraFieldAES:V,extraFieldLength:E}}function Wit(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=Aa(i),s=64-(t+Ki(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=Aa(a);no(c,0,6534),no(c,2,s-2);let d=i;n.localHeaderArray=i=new Uint8Array(Ki(d)+s),Gs(i,d),Gs(i,a,Ki(d)),r=Aa(i),no(r,28,o+s),e.metadataSize+=s}function Pit(e){let{zip64:t,dataDescriptor:n,dataDescriptorSignature:i}=e,o=new Uint8Array,r,s=0;return n&&(o=new Uint8Array(t?i?24:20:i?16:12),r=Aa(o),i&&(s=4,zi(r,0,134695760))),{dataDescriptorArray:o,dataDescriptorView:r,dataDescriptorOffset:s}}function vit(e,t){let{signature:n,rawExtraFieldZip64:i,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a}=e,{headerView:c,encrypted:d}=s,{dataDescriptorView:u,dataDescriptorOffset:m}=a,{zip64:p,zip64UncompressedSize:g,zip64CompressedSize:f,zipCrypto:x,dataDescriptor:_}=t;if((!d||x)&&n!==Ii&&(zi(c,10,n),_&&zi(u,m,n)),p){let C=Aa(i);no(C,0,1),no(C,2,Ki(i)-4);let V=4;g&&(zi(c,18,4294967295),Yl(C,V,BigInt(r)),V+=8),f&&(zi(c,14,4294967295),Yl(C,V,BigInt(o))),_&&(Yl(u,m+4,BigInt(o)),Yl(u,m+12,BigInt(r)))}else zi(c,14,o),zi(c,18,r),_&&(zi(u,m+4,o),zi(u,m+8,r))}async function wit(e,t,n,{zipCrypto:i}){let o;o=await t.slice(0,26).arrayBuffer(),o.byteLength!=26&&(o=o.slice(0,26));let r=new DataView(o);return(!e.encrypted||i)&&zi(r,14,e.signature),e.zip64?(zi(r,18,4294967295),zi(r,22,4294967295)):(zi(r,18,e.compressedSize),zi(r,22,e.uncompressedSize)),await wf(n,new Uint8Array(o)),t.slice(o.byteLength)}function Fit(e,t){let{rawExtraFieldZip64:n,offset:i,diskNumberStart:o}=e,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:a,zip64DiskNumberStart:c}=t,d=Aa(n),u=4;r&&(u+=8),s&&(u+=8),a&&(Yl(d,u,BigInt(i)),u+=8),c&&zi(d,u,o)}async function Ait(e,t,n){let{files:i,writer:o}=e,{diskOffset:r,writable:s}=o,{diskNumber:a}=o,c=0,d=0,u=e.offset-r,m=i.size;for(let[,G]of i){let{rawFilename:I,rawExtraFieldZip64:v,rawExtraFieldAES:P,rawComment:w,rawExtraFieldNTFS:F,rawExtraField:b,extendedTimestamp:R,extraFieldExtendedTimestampFlag:E,lastModDate:X}=G,A;if(R){A=new Uint8Array(9);let N=Aa(A);no(N,0,21589),no(N,2,5),oD(N,4,E),zi(N,5,Math.floor(X.getTime()/1e3))}else A=new Uint8Array;G.rawExtraFieldCDExtendedTimestamp=A,d+=46+Ki(I,w,v,P,F,A,b)}let p=new Uint8Array(d),g=Aa(p);await vf(o);let f=0;for(let[G,I]of Array.from(i.values()).entries()){let{offset:v,rawFilename:P,rawExtraFieldZip64:w,rawExtraFieldAES:F,rawExtraFieldCDExtendedTimestamp:b,rawExtraFieldNTFS:R,rawExtraField:E,rawComment:X,versionMadeBy:A,headerArray:N,directory:O,zip64:U,zip64UncompressedSize:Y,zip64CompressedSize:k,zip64DiskNumberStart:H,zip64Offset:J,msDosCompatible:te,internalFileAttribute:z,externalFileAttribute:q,diskNumberStart:ee,uncompressedSize:fe,compressedSize:_e}=I,le=Ki(w,F,b,R,E);zi(g,c,33639248),no(g,c+4,A);let ye=Aa(N);Y||zi(ye,18,fe),k||zi(ye,14,_e),Gs(p,N,c+6),no(g,c+30,le),no(g,c+32,Ki(X)),no(g,c+34,U&&H?65535:ee),no(g,c+36,z),q?zi(g,c+38,q):O&&te&&oD(g,c+38,16),zi(g,c+42,U&&J?4294967295:v),Gs(p,P,c+46),Gs(p,w,c+46+Ki(P)),Gs(p,F,c+46+Ki(P,w)),Gs(p,b,c+46+Ki(P,w,F)),Gs(p,R,c+46+Ki(P,w,F,b)),Gs(p,E,c+46+Ki(P,w,F,b,R)),Gs(p,X,c+46+Ki(P)+le);let Te=46+Ki(P,X)+le;if(c-f>o.availableSize&&(o.availableSize=0,await wf(s,p.slice(f,c)),f=c),c+=Te,n.onprogress)try{await n.onprogress(G+1,i.size,new uy(I))}catch{}}await wf(s,f?p.slice(f):p);let x=o.diskNumber,{availableSize:_}=o;_<22&&x++;let C=ho(e,n,HU);if(u>4294967295||d>4294967295||m>65535||x>65535){if(C===!1)throw new Error(c4);C=!0}let V=new Uint8Array(C?98:22),L=Aa(V);c=0,C&&(zi(L,0,101075792),Yl(L,4,BigInt(44)),no(L,12,45),no(L,14,45),zi(L,16,x),zi(L,20,a),Yl(L,24,BigInt(m)),Yl(L,32,BigInt(m)),Yl(L,40,BigInt(d)),Yl(L,48,BigInt(u)),zi(L,56,117853008),Yl(L,64,BigInt(u)+BigInt(d)),zi(L,72,x+1),ho(e,n,"supportZip64SplitFile",!0)&&(x=65535,a=65535),m=65535,u=4294967295,d=4294967295,c+=76),zi(L,c,101010256),no(L,c+4,x),no(L,c+6,a),no(L,c+8,m),no(L,c+10,m),zi(L,c+12,d),zi(L,c+16,u);let Z=Ki(t);if(Z)if(Z<=65535)no(L,c+20,Z);else throw new Error(Tit);await wf(s,V),Z&&await wf(s,t)}async function wf(e,t){let n=e.getWriter();try{await n.ready,e.size+=Ki(t),await n.write(t)}finally{n.releaseLock()}}function a4(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function ho(e,t,n,i){let o=t[n]===Ii?e.options[n]:t[n];return o===Ii?i:o}function t0e(e){return e+5*(Math.floor(e/16383)+1)}function oD(e,t,n){e.setUint8(t,n)}function no(e,t,n){e.setUint16(t,n,!0)}function zi(e,t,n){e.setUint32(t,n,!0)}function Yl(e,t,n){e.setBigUint64(t,n,!0)}function Gs(e,t,n){e.set(t,n)}function Aa(e){return new DataView(e.buffer)}function Ki(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}pV({Deflate:Npe,Inflate:abe});var fgi=T(S(),1);function Mit(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var Xn=Mit;var bgi=T(S(),1);function Nit(e,t){this.position=e,this.headingPitchRange=t}var nw=Nit;var _gi=T(S(),1);function rD(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new be,this.tourEnd=new be,this.entryStart=new be,this.entryEnd=new be,this._activeEntries=[]}rD.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};rD.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;o0e.call(this,e,t,function(i){n.playlistIndex=0,i||i0e(n._activeEntries),n.tourEnd.raiseEvent(i)})};rD.prototype.stop=function(){i0e(this._activeEntries)};function i0e(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function o0e(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=kit.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function kit(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,o0e.call(this,e,t,n)}}var iw=rD;var Agi=T(S(),1);var Xgi=T(S(),1);var Ggi=T(S(),1),Xi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Xi.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Xi.Bounce.In(e*2)*.5:Xi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),ow=function(){return performance.now()},Uit=function(){function e(){for(var t=[],n=0;n0;){this._tweensAddedDuringUpdate={};for(var o=0;o1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=CV.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=CV.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},r0e=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),l4=new Uit,s0e=function(){function e(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Xi.Linear.None,this._interpolationFunction=CV.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=r0e.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof n=="object"?(this._group=n,n.add(this)):n===!0&&(this._group=l4,l4.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=ow()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),d=c?"array":typeof a,u=!c&&Array.isArray(i[s]);if(!(d==="undefined"||d==="function")){if(u){var m=i[s];if(m.length===0)continue;for(var p=[a],g=0,f=m.length;g"u"||r)&&(n[s]=a),c||(n[s]*=1),u?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(t){return t===void 0&&(t=ow()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},e.prototype.resume=function(t){return t===void 0&&(t=ow()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;tc)return 1;var x=Math.trunc(s/a),_=s-x*a,C=Math.min(_/i._duration,1);return C===0&&s===i._duration?1:C},u=d(),m=this._easingFunction(u);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,m),this._onUpdateCallback&&this._onUpdateCallback(this._object,u),this._duration===0||s>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((s-this._duration)/a)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(r in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[r]=="string"&&(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=a*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var g=0,f=this._chainedTweens.length;gthis._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function Yit(e){let t=e.slice(0,Math.min(4,e.size)),n=yl(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function Hit(e){let t=yl(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function g0e(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("",t),i,o,r;for(;t!==-1&&t0?(Hl.maximumRed=r,Hl.red=void 0):(Hl.maximumRed=void 0,Hl.red=0),o>0?(Hl.maximumGreen=o,Hl.green=void 0):(Hl.maximumGreen=void 0,Hl.green=0),i>0?(Hl.maximumBlue=i,Hl.blue=void 0):(Hl.maximumBlue=void 0,Hl.blue=0),Hl.alpha=n,B.fromRandom(Hl)):new B(r,o,i,n)}function pT(e,t,n){let i=Wn(e,t,n);if(l(i))return p4(i,Wn(e,"colorMode",n)==="random")}function Kit(e){let t=Wi(e,"TimeStamp",ve.kmlgx),n=Wn(t,"when",ve.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=j.fromIso8601(n),o=new Ur;return o.addInterval(new Vn({start:i,stop:Be.MAXIMUM_VALUE})),o}function Jit(e){let t=Wi(e,"TimeSpan",ve.kmlgx);if(!l(t))return;let n,i=Wi(t,"begin",ve.kmlgx),o=l(i)?j.fromIso8601(i.textContent):void 0,r=Wi(t,"end",ve.kmlgx),s=l(r)?j.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(j.lessThan(s,o)){let a=o;o=s,s=a}n=new Ur,n.addInterval(new Vn({start:o,stop:s}))}else l(o)?(n=new Ur,n.addInterval(new Vn({start:o,stop:Be.MAXIMUM_VALUE}))):l(s)&&(n=new Ur,n.addInterval(new Vn({start:Be.MINIMUM_VALUE,stop:s})));return n}function _0e(){let e=new tc;return e.width=my,e.height=my,e.scaleByDistance=new Ut(a0e,c0e,l0e,d0e),e.pixelOffsetScaleByDistance=new Ut(a0e,c0e,l0e,d0e),e}function _4(){let e=new Em;return e.outline=!0,e.outlineColor=B.WHITE,e}function T0e(){let e=new Gm;return e.translucencyByDistance=new Ut(3e6,1,5e6,0),e.pixelOffset=new D(17,0),e.horizontalOrigin=gi.LEFT,e.font="16px sans-serif",e.style=Uo.FILL_AND_OUTLINE,e}function T4(e,t,n,i,o){let r=Wn(e,"href",ve.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y($n(e,"x",ve.gx),0),d=y($n(e,"y",ve.gx),0);c=Math.min(c/32,7),d=7-Math.min(d/32,7);let u=8*d+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${u}.png`}let s=x4(r,n,i);if(o){let a=Wn(e,"refreshMode",ve.kml),c=Wn(e,"viewRefreshMode",ve.kml);a==="onInterval"||a==="onExpire"?St(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&St(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let d=y(Wn(e,"viewBoundScale",ve.kml),1),u=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",m=y(Wn(e,"viewFormat",ve.kml),u),p=Wn(e,"httpQuery",ve.kml);l(m)&&s.setQueryParameters(od(lD(m))),l(p)&&s.setQueryParameters(od(lD(p)));let g=t._ellipsoid;return C4(s,t.camera,t.canvas,d,t._lastCameraView.bbox,g),s}return s}function Qit(e,t,n,i,o){let r=$n(t,"scale",ve.kml),s=$n(t,"heading",ve.kml),a=pT(t,"color",ve.kml),c=Wi(t,"Icon",ve.kml),d=T4(c,e,i,o,!1);l(c)&&!l(d)&&(d=!1);let u=$n(c,"x",ve.gx),m=$n(c,"y",ve.gx),p=$n(c,"w",ve.gx),g=$n(c,"h",ve.gx),f=Wi(t,"hotSpot",ve.kml),x=hy(f,"x"),_=hy(f,"y"),C=Es(f,"xunits"),V=Es(f,"yunits"),L=n.billboard;l(L)||(L=_0e(),n.billboard=L),L.image=d,L.scale=r,L.color=a,(l(u)||l(m)||l(p)||l(g))&&(L.imageSubRegion=new Ke(u,m,p,g)),l(s)&&s!==0&&(L.rotation=W.toRadians(-s),L.alignedAxis=h.UNIT_Z),r=y(r,1);let Z,G;l(x)&&(C==="pixels"?Z=-x*r:C==="insetPixels"?Z=(x-my)*r:C==="fraction"&&(Z=-x*my*r),Z+=my*.5*r),l(_)&&(V==="pixels"?G=_*r:V==="insetPixels"?G=(-_+my)*r:V==="fraction"&&(G=_*my*r),G-=my*.5*r),(l(Z)||l(G))&&(L.pixelOffset=new D(Z,G))}function cD(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r:clampToSeaFloor is currently not supported, using :clampToGround."),Qe.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(St("kml-gx:altitudeMode-relativeToSeaFloor","KML - :relativeToSeaFloor is currently not supported, using :relativeToGround."),Qe.RELATIVE_TO_GROUND):(l(e)?St("kml-altitudeMode-unknown",`KML - Unknown :${e}, using :CLAMP_TO_GROUND.`):St("kml-gx:altitudeMode-unknown",`KML - Unknown :${t}, using :CLAMP_TO_GROUND.`),Qe.CLAMP_TO_GROUND)}function $it(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&St("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new Lf(e))}function eot(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&St("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r0&&St("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,d.length),f=[],x=[];for(let C=0;C0&&i.availability.addInterval(new Vn({start:x[0],stop:x[x.length-1]})),m&&u&&S4(t,i,o),!0}function p0e(e,t,n,i,o,r,s,a,c){let d=e[0],u=e[e.length-1],m=new fa;m.addSamples(e,t),n.intervals.addInterval(new Vn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c,data:$it(m,s,a)})),i.addInterval(new Vn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Vn({start:d,stop:u,isStartIncluded:c,isStopIncluded:c,data:r}))}function oot(e,t,n,i,o){let r=yh(n,"interpolate",ve.gx),s=gh(n,"Track",ve.gx),a,c,d,u=!1,m=new Mb,p=new Ur,g=new ma,f=e._ellipsoid;for(let x=0,_=s.length;x<_;x++){let C=s[x],V=gh(C,"when",ve.kml),L=gh(C,"coord",ve.gx),Z=Wn(C,"altitudeMode",ve.kml),G=Wn(C,"altitudeMode",ve.gx),I=cw(Z,G),v=yh(C,"extrude",ve.kml),P=Math.min(L.length,V.length),w=[];a=[];for(let F=0;F0)){for(f='',r=0;r`;f+="
      ${y(x.displayName,s)}${y(x.value,"")}
      "}if(!l(f))return;f=Bit.link(f),fo.innerHTML=f;let _=fo.querySelectorAll("a");for(r=0;r<_.length;r++)_[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Ud(fo,"a","href",i),Ud(fo,"link","href",i),Ud(fo,"area","href",i),Ud(fo,"img","src",i),Ud(fo,"iframe","src",i),Ud(fo,"video","src",i),Ud(fo,"audio","src",i),Ud(fo,"source","src",i),Ud(fo,"track","src",i),Ud(fo,"input","src",i),Ud(fo,"embed","src",i),Ud(fo,"script","src",i),Ud(fo,"video","poster",i)),Dd(fo,"a","href",o),Dd(fo,"link","href",o),Dd(fo,"area","href",o),Dd(fo,"img","src",o),Dd(fo,"iframe","src",o),Dd(fo,"video","src",o),Dd(fo,"audio","src",o),Dd(fo,"source","src",o),Dd(fo,"track","src",o),Dd(fo,"input","src",o),Dd(fo,"embed","src",o),Dd(fo,"script","src",o),Dd(fo,"video","poster",o);let C='
      ',C+=`${fo.innerHTML}
      `,fo.innerHTML="",t.description=C}function mD(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=x0e(t,i,n.context),c=a.kml,d=jit(e,t,n.styleCollection,r,s),u=Wn(t,"name",ve.kml);a.name=u,a.parent=o;let m=Jit(t);l(m)||(m=Kit(t)),a.availability=m,L4(a);function p(L){return L?L.show&&p(L.parent):!0}let g=yh(t,"visibility",ve.kml);a.show=p(o)&&y(g,!0);let f=Wi(t,"author",ve.atom),x=c.author;x.name=Wn(f,"name",ve.atom),x.uri=Wn(f,"uri",ve.atom),x.email=Wn(f,"email",ve.atom);let _=Wi(t,"link",ve.atom),C=c.link;C.href=Es(_,"href"),C.hreflang=Es(_,"hreflang"),C.rel=Es(_,"rel"),C.type=Es(_,"type"),C.title=Es(_,"title"),C.length=Es(_,"length"),c.address=Wn(t,"address",ve.kml),c.phoneNumber=Wn(t,"phoneNumber",ve.kml),c.snippet=Wn(t,"Snippet",ve.kml),aot(t,a),cot(t,a,d,s,r);let V=e._ellipsoid;return G0e(t,a,V),Z0e(t,a,V),l(Wi(t,"Region",ve.kml))&&St("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:d}}function R0e(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function lot(e,t,n,i){let o=mD(e,t,n),r=Ye(n);r.parentEntity=o.entity,R0e(e,t,r,i)}function dot(e,t,n,i){let o=mD(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let d=0,u=c.length;dW.PI_OVER_TWO?W.PI_OVER_TWO:d}function a(d){return d>W.PI?d-W.TWO_PI:d<-W.PI?d+W.TWO_PI:d}let c=jy(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==oe.MORPHING){let d,u;if(o=y(o,got),l(n)&&(h4.x=n.clientWidth*.5,h4.y=n.clientHeight*.5,d=t.pickEllipsoid(h4,r,yot)),l(d)?u=r.cartesianToCartographic(d,VV):(u=ae.center(o,VV),d=r.cartographicToCartesian(u)),l(i)&&!W.equalsEpsilon(i,1,W.EPSILON9)){let C=o.width*i*.5,V=o.height*i*.5;o=new ae(a(u.longitude-C),s(u.latitude-V),a(u.longitude+C),s(u.latitude+V))}c=c.replace("[bboxWest]",W.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",W.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",W.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",W.toDegrees(o.north).toString());let m=W.toDegrees(u.longitude).toString(),p=W.toDegrees(u.latitude).toString();c=c.replace("[lookatLon]",m),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",W.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",W.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,d)),c=c.replace("[lookatTerrainLon]",m),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",u.height.toString()),r.cartesianToCartographic(t.positionWC,VV),c=c.replace("[cameraLon]",W.toDegrees(VV.longitude).toString()),c=c.replace("[cameraLat]",W.toDegrees(VV.latitude).toString()),c=c.replace("[cameraAlt]",W.toDegrees(VV.height).toString());let g=t.frustum,f=g.aspectRatio,x="",_="";if(l(f)){let C=W.toDegrees(g.fov);f>1?(x=C,_=C/f):(_=C,x=C*f)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",_.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(od(c))}function xot(e,t,n,i){let r=mD(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Wi(t,"Link",ve.kml);if(l(c)||(c=Wi(t,"Url",ve.kml)),l(c)){let d=Wn(c,"href",ve.kml),u,m;if(l(d)){let p=d;if(d=x4(d,s,n.uriResolver),/^data:/.test(d.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=d.clone(),u=Wn(c,"viewRefreshMode",ve.kml),u==="onRegion"){St("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}m=y(Wn(c,"viewBoundScale",ve.kml),1);let _=u==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=y(Wn(c,"viewFormat",ve.kml),_),V=Wn(c,"httpQuery",ve.kml);l(C)&&d.setQueryParameters(od(lD(C))),l(V)&&d.setQueryParameters(od(lD(V)));let L=e._ellipsoid;C4(d,e.camera,e.canvas,m,e._lastCameraView.bbox,L)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},f=new Hs,x=V4(e,f,d,g).then(function(_){let C=e._entityCollection,V=f.values;C.suspendEvents();for(let G=0;G0||L==="onExpire"||u==="onStop"){let G=Wi(_,"NetworkLinkControl",ve.kml),I=l(G),v=j.now(),P={id:Bn(),href:d,cookie:{},lastUpdated:v,updating:!1,entity:r,viewBoundScale:m,needsUpdate:!1,cameraUpdateTime:v},w=0;if(I&&(P.cookie=od(y(Wn(G,"cookie",ve.kml),"")),w=y($n(G,"minRefreshPeriod",ve.kml),0)),L==="onInterval")I&&(Z=Math.max(w,Z)),P.refreshMode=fy.INTERVAL,P.time=Z;else if(L==="onExpire"){let F;if(I&&(F=Wn(G,"expires",ve.kml)),l(F))try{let b=j.fromIso8601(F),R=j.secondsDifference(b,v);R>0&&R0;)this._screenOverlays.pop().remove()};function L4(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function Sot(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Wi(r,"NetworkLinkControl",ve.kml),c=l(a),d=0;if(c){if(l(Wi(a,"Update",ve.kml))){St("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=od(y(Wn(a,"cookie",ve.kml),"")),d=y($n(a,"minRefreshPeriod",ve.kml),0)}let u=j.now(),m=t.refreshMode;if(m===fy.INTERVAL)l(a)&&(t.time=Math.max(d,t.time));else if(m===fy.EXPIRE){let v;if(l(a)&&(v=Wn(a,"expires",ve.kml)),l(v))try{let P=j.fromIso8601(v),w=j.secondsDifference(P,u);w>0&&wu.time&&(p=!0):u.refreshMode===fy.EXPIRE?j.greaterThan(n,u.time)&&(p=!0):u.refreshMode===fy.STOP&&(r&&(u.needsUpdate=!0,u.cameraUpdateTime=n),u.needsUpdate&&j.secondsDifference(n,u.cameraUpdateTime)>=u.time&&(p=!0)),p){o(m),u.updating=!0;let g=new Hs,f=u.href.clone();f.setQueryParameters(u.cookie);let x=y(i._ellipsoid,ne.default);C4(f,i.camera,i.canvas,u.viewBoundScale,s.bbox,x),V4(i,g,f,{context:m.id}).then(Sot(i,u,g,c,f)).catch(function(_){let C=`NetworkLink ${u.href} refresh failed: ${_}`;console.log(C),i._error.raiseEvent(i,C)}),d=!0}}c.set(u.id,u)}}),d&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function Cot(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}Bd._DeferredLoading=Af;Bd._getTimestamp=_i;var lw=Bd;var ixi=T(S(),1);function dw(){pe.throwInstantiationError()}dw.prototype.update=pe.throwInstantiationError;dw.prototype.getBoundingSphere=pe.throwInstantiationError;dw.prototype.isDestroyed=pe.throwInstantiationError;dw.prototype.destroy=pe.throwInstantiationError;var R4=dw;var Pxi=T(S(),1);var Z4=32,Vot="http://www.opengis.net/kml/2.2",_h="http://www.google.com/kml/ext/2.2",Lot="http://www.w3.org/2000/xmlns/";function hD(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var Rot=/^data:image\/([^,;]+)/;hD.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof Ee){if(e=Ee.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(Rot);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function Zot(e,t){return function(n){e._files[t]=n}}hD.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new de("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(Zot(this,r))}return o};Object.defineProperties(hD.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function fD(e){this._time=e}fD.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};fD.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return gT(n)};fD.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function G4(){this._ids={},this._styles={},this._count=0}G4.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};G4.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function W0e(){this._ids={}}W0e.prototype.get=function(e){if(!l(e))return this.get(Bn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function E4(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=E4._createState(e),o=t.values.filter(function(d){return!l(d.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(Lot,"xmlns:gx",_h);let a=r.createElement("Document");s.appendChild(a),v0e(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let u=new XMLSerializer().serializeToString(i.kmlDoc);return n?Got(u,c.files):{kml:u,externalFiles:c.files}})}function Got(e,t){let n=rn("ThirdParty/Workers/z-worker-pako.js");pV({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new Qv,o=new iD(i);return o.add("doc.kml",new NU(e)).then(function(){let r=Object.keys(t);return P0e(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function P0e(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new Qb(n[o])).then(function(){return P0e(e,t,n,i+1)})}E4._createState=function(e){let t=e.entities,n=new G4,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===Be.MINIMUM_VALUE?r.stop===Be.MAXIMUM_VALUE?r=new Vn:j.addSeconds(r.stop,-10*s,r.start):r.stop===Be.MAXIMUM_VALUE&&j.addSeconds(r.start,10*s,r.stop);let a=new hD(e.modelCallback);return{kmlDoc:document.implementation.createDocument(Vot,"kml"),ellipsoid:y(e.ellipsoid,ne.default),idManager:new W0e,styleCache:n,externalFileHandler:a,time:o,valueGetter:new fD(o),sampleDuration:s,defaultAvailability:new Ur([r])}};function v0e(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,d,u;for(let m=0;m0){let C=i.createElement("Placemark");C.setAttribute("id",s.get(p.id));let V=p.name,L=p.label;if(l(L)){let G=i.createElement("LabelStyle"),I=r.get(L.text);V=l(I)&&I.length>0?I:V;let v=r.getColor(L.fillColor);l(v)&&(G.appendChild(hn(i,"color",v)),G.appendChild(hn(i,"colorMode","normal")));let P=r.get(L.scale);l(P)&&G.appendChild(hn(i,"scale",P)),u.push(G)}C.appendChild(hn(i,"name",V)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C);let Z=u.length;if(Z>0){let G=i.createElement("Style");for(let I=0;I1){let G=i.createElement("MultiGeometry");for(let I=0;I0){let C=i.createElement("Folder");C.setAttribute("id",s.get(p.id)),C.appendChild(hn(i,"name",p.name)),C.appendChild(hn(i,"visibility",p.show)),C.appendChild(hn(i,"description",p.description)),t.appendChild(C),v0e(e,C,_)}}}var zl=new h,nl=new he,xh=new j;function Eot(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){w0e(e,t,a,n,i);return}s.get(c,void 0,zl);let d=hn(o,"coordinates",bT(zl,r)),u=o.createElement("Point"),m=o.createElement("altitudeMode");m.appendChild(yT(e,a.heightReference)),u.appendChild(m),u.appendChild(d),n.push(u);let p=a instanceof tc?A0e(e,a):F0e(e,a);i.push(p)}function w0e(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,d=t.position,u=!0;d instanceof ma?(c=d.intervals,u=!1):c=y(t.availability,e.defaultAvailability);let m=n instanceof Xp,p,g,f,x=[];for(p=0;p1){let C=r.createElementNS(_h,"MultiTrack");for(p=0;p0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],d=[ae.northeast,ae.southeast,ae.southwest,ae.northwest];for(let g=0;g<4;++g)d[g](a,nl),c.push(`${W.toDegrees(nl.longitude)},${W.toDegrees(nl.latitude)},${r}`);let u=hn(i,"coordinates",c.join(" ")),m=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(u),m.appendChild(p),[m]}function I0e(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let u=0;u0&&(r=n);let a=[],c=t.hierarchy,d=o.get(c),u=Array.isArray(d)?d:d.positions,m=i.createElement("outerBoundaryIs");m.appendChild(I0e(e,u,r,s)),a.push(m);let p=d.holes;if(l(p)){let g=p.length;for(let f=0;f0&&c.appendChild(hn(r,"extrude",!0));let u=a?Xot(e,t,d):Wot(e,t,d),m=u.length;for(let _=0;_=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var X4=E4;var IKi=T(S(),1);var Fxi=T(S(),1);function wot(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` +${o}`),t}var Mf=wot;var Qxi=T(S(),1);var Oxi=T(S(),1);var Nxi=T(S(),1);async function Fot(e,t,n,i){return l(i)||(i=!1),Not(e,t,n,i)}function Aot(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(k0e(i)):r=o.then(k0e(i)).catch(kot(i)),e.shift(),t.push(r),!0}function Mot(e){return new Promise(function(t){setTimeout(t,e)})}function W4(e,t,n){return e.length?Aot(e,t,n)?W4(e,t,n):Mot(100).then(()=>W4(e,t,n)):Promise.resolve()}function Not(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r0&&await U0e(e,a,n),t}var xT=U0e;async function v4(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===oe.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===oe.SCENE2D)return r;let c=[ae.center(e),ae.southeast(e),ae.southwest(e),ae.northeast(e),ae.northwest(e)],d=await v4._sampleTerrainMostDetailed(n,c),u=!1,m=d.reduce(function(g,f){return l(f.height)?(u=!0,Math.max(f.height,g)):g},-Number.MAX_VALUE),p=r;return u&&(p.height+=m),p}v4._sampleTerrainMostDetailed=xT;var _T=v4;var jGi=T(S(),1);var hTi=T(S(),1);var oTi=T(S(),1);var qxi=T(S(),1),Uot={NONE:0,LERC:1},$u=Object.freeze(Uot);var E_i=T(S(),1);var m_i=T(S(),1);var e_i=T(S(),1),Dot={NONE:0,BITS12:1},Qs=Object.freeze(Dot);var TT=new h,Bot=new h,em=new D,pD=new M,Oot=new M,Yot=Math.pow(2,12);function xc(e,t,n,i,o,r,s,a,c,d){let u=Qs.NONE,m,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,f=t.maximum,x=h.subtract(f,g,Bot),_=i-n;Math.max(h.maximumComponent(x),_)0,g=y(e.isGeographic,!0),f=y(e.ellipsoid,ne.default),x=1/f.maximumRadius,_=ae.clone(e.nativeRectangle),C=ae.clone(e.rectangle),V,L,Z,G;l(C)?(V=C.west,L=C.south,Z=C.east,G=C.north):g?(V=a(_.west),L=a(_.south),Z=a(_.east),G=a(_.north)):(V=_.west*x,L=s-2*o(r(-_.south*x)),Z=_.east*x,G=s-2*o(r(-_.north*x)));let I=e.relativeToCenter,v=l(I);I=v?I:h.ZERO;let P=y(e.includeWebMercatorT,!1),w=y(e.exaggeration,1),F=y(e.exaggerationRelativeHeight,0),R=w!==1,E=y(e.structure,Nf.DEFAULT_STRUCTURE),X=y(E.heightScale,Nf.DEFAULT_STRUCTURE.heightScale),A=y(E.heightOffset,Nf.DEFAULT_STRUCTURE.heightOffset),N=y(E.elementsPerHeight,Nf.DEFAULT_STRUCTURE.elementsPerHeight),O=y(E.stride,Nf.DEFAULT_STRUCTURE.stride),U=y(E.elementMultiplier,Nf.DEFAULT_STRUCTURE.elementMultiplier),Y=y(E.isBigEndian,Nf.DEFAULT_STRUCTURE.isBigEndian),k=ae.computeWidth(_),H=ae.computeHeight(_),J=k/(d-1),te=H/(u-1);g||(k*=x,H*=x);let z=f.radiiSquared,q=z.x,ee=z.y,fe=z.z,_e=65536,le=-65536,ye=Ft.eastNorthUpToFixedFrame(I,f),Te=M.inverseTransformation(ye,zot),Xe,Le;P&&(Xe=Zi.geodeticLatitudeToMercatorAngle(L),Le=1/(Zi.geodeticLatitudeToMercatorAngle(G)-Xe));let ke=Kot;ke.x=Number.POSITIVE_INFINITY,ke.y=Number.POSITIVE_INFINITY,ke.z=Number.POSITIVE_INFINITY;let Oe=Jot;Oe.x=Number.NEGATIVE_INFINITY,Oe.y=Number.NEGATIVE_INFINITY,Oe.z=Number.NEGATIVE_INFINITY;let at=Number.POSITIVE_INFINITY,Mt=d*u,Lt=m>0?d*2+u*2:0,Ie=Mt+Lt,je=new Array(Ie),et=new Array(Ie),He=new Array(Ie),Dt=P?new Array(Ie):[],Ce=R?new Array(Ie):[],Ve=0,ct=u,Di=0,mt=d;p&&(--Ve,++ct,--Di,++mt);let _o=1e-5;for(let $e=Ve;$e=u&&(pt=u-1);let It=_.north-te*pt;g?It=a(It):It=s-2*o(r(-It*x));let yn=(It-L)/(G-L);yn=W.clamp(yn,0,1);let po=$e===Ve,rr=$e===ct-1;m>0&&(po?It+=_o*H:rr&&(It-=_o*H));let Oa=t(It),Ya=n(It),as=fe*Ya,Qn;P&&(Qn=(Zi.geodeticLatitudeToMercatorAngle(It)-Xe)*Le);for(let xs=Di;xs=d&&(Gr=d-1);let hl=pt*(d*O)+Gr*O,To;if(N===1)To=c[hl];else{To=0;let So;if(Y)for(So=0;So=0;--So)To=To*U+c[hl+So]}To=To*X+A,le=Math.max(le,To),_e=Math.min(_e,To);let Hr=_.west+J*Gr;g?Hr=a(Hr):Hr=Hr*x;let rp=(Hr-V)/(Z-V);rp=W.clamp(rp,0,1);let fl=pt*d+Gr;if(m>0){let So=xs===Di,su=xs===mt-1,TS=po||rr||So||su;if((po||rr)&&(So||su))continue;TS&&(To-=m,So?(fl=Mt+(u-pt-1),Hr-=_o*k):rr?fl=Mt+u+(d-Gr-1):su?(fl=Mt+u+d+pt,Hr+=_o*k):po&&(fl=Mt+u+d+u+Gr))}let sp=Oa*t(Hr),Ha=Oa*n(Hr),Er=q*sp,Ta=ee*Ha,T0=1/i(Er*sp+Ta*Ha+as*Ya),di=Er*T0,Gc=Ta*T0,nd=as*T0,ru=new h;ru.x=di+sp*To,ru.y=Gc+Ha*To,ru.z=nd+Ya*To,M.multiplyByPoint(Te,ru,w4),h.minimumByComponent(w4,ke,ke),h.maximumByComponent(w4,Oe,Oe),at=Math.min(at,To),je[fl]=ru,He[fl]=new D(rp,yn),et[fl]=To,P&&(Dt[fl]=Qn),R&&(Ce[fl]=f.geodeticSurfaceNormal(ru))}}let fr=ce.fromPoints(je),Zc;l(C)&&(Zc=En.fromRectangle(C,_e,le,f));let Zr;v&&(Zr=new Xb(f).computeHorizonCullingPointPossiblyUnderEllipsoid(I,je,_e));let ss=new M0(ke,Oe,I),Ne=new _c(I,ss,at,le,ye,!1,P,R,w,F),ut=new Float32Array(Ie*Ne.stride),Je=0;for(let $e=0;$e0?L=ts.getRegularGridAndSkirtIndicesAndEdgeIndices(V.gridWidth,V.gridHeight):L=ts.getRegularGridIndicesAndEdgeIndices(V.gridWidth,V.gridHeight);let Z=V.gridWidth*V.gridHeight;return C._mesh=new tm(m,new Float32Array(V.vertices),L.indices,L.indexCountWithoutSkirts,Z,V.minimumHeight,V.maximumHeight,ce.clone(V.boundingSphere3D),h.clone(V.occludeePointInScaledSpace),V.numberOfAttributes,En.clone(V.orientedBoundingBox),_c.clone(V.encoding),L.westIndicesSouthToNorth,L.southIndicesEastToWest,L.eastIndicesNorthToSouth,L.northIndicesWestToEast),C._buffer=void 0,C._mesh})};jb.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),d=t.tileXYToRectangle(n,i,o),u=a.cartographicToCartesian(ae.center(d)),m=this._structure,g=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<0?x=ts.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=ts.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let _=f.gridWidth*f.gridHeight;return this._mesh=new tm(u,f.vertices,x.indices,x.indexCountWithoutSkirts,_,f.minimumHeight,f.maximumHeight,f.boundingSphere3D,f.occludeePointInScaledSpace,f.encoding.stride,f.orientedBoundingBox,f.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};jb.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,d=r.isBigEndian,u=r.heightOffset,m=r.heightScale,p=l(this._mesh),g=this._encoding===$u.LERC;if(!p&&g)return;let x;if(p){let _=this._mesh.vertices,C=this._mesh.encoding;x=J0e(_,C,u,m,e,i,o,t,n)}else x=$ot(this._buffer,a,c,s,d,e,i,o,t,n),x=x*m+u;return x};jb.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,d=this._height,u=this._structure,m=u.stride,p=new this._bufferType(c*d*m),g=a.vertices,f=a.encoding,x=e.tileXYToRectangle(t,n,i),_=e.tileXYToRectangle(o,r,s),C=u.heightOffset,V=u.heightScale,L=u.elementsPerHeight,Z=u.elementMultiplier,G=u.isBigEndian,I=Math.pow(Z,L-1);for(let v=0;vu.highestEncodedHeight?u.highestEncodedHeight:b,ert(p,L,Z,I,m,G,v*c+w,b)}}return Promise.resolve(new jb({buffer:p,width:c,height:d,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};jb.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<=s&&(g=s-1,p=s-2);let f=m|0,x=f+1;x>=a&&(x=a-1,f=a-2);let _=u-p,C=m-f;f=a-1-f,x=a-1-x;let V=xD(e,t,n,i,o,f*s+p),L=xD(e,t,n,i,o,f*s+g),Z=xD(e,t,n,i,o,x*s+p),G=xD(e,t,n,i,o,x*s+g);return Q0e(_,C,V,L,Z,G)}function J0e(e,t,n,i,o,r,s,a,c){let d=(a-o.west)*(r-1)/(o.east-o.west),u=(c-o.south)*(s-1)/(o.north-o.south),m=d|0,p=m+1;p>=r&&(p=r-1,m=r-2);let g=u|0,f=g+1;f>=s&&(f=s-1,g=s-2);let x=d-m,_=u-g;g=s-1-g,f=s-1-f;let C=(t.decodeHeight(e,g*r+m)-n)/i,V=(t.decodeHeight(e,g*r+p)-n)/i,L=(t.decodeHeight(e,f*r+m)-n)/i,Z=(t.decodeHeight(e,f*r+p)-n)/i;return Q0e(x,_,C,V,L,Z)}function Q0e(e,t,n,i,o,r){return t=0;--a)s=s*n+e[r+a];return s}function ert(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var Ma=jb;function RV(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ne.default)})),this._levelZeroMaximumGeometricError=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new be}Object.defineProperties(RV.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});RV.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new Ma({buffer:new Uint8Array(16*16),width:16,height:16}))};RV.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1< 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingDistance; +in vec2 v_clippingPosition; +flat in int v_regionIndex; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = czm_maximumComponent(colorDiff); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + #ifdef SHOW_REFLECTIVE_OCEAN + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } + #endif +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + #ifdef HAS_WATER_MASK + materialInput.waterMask = mask; + #endif + + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels); + #endif + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a); + + #else + // Apply ground atmosphere. This happens when the camera is far away from the earth. + + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var gTi=T(S(),1),hw=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_verticalExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingExtents; +out vec2 v_clippingPosition; +flat out int v_regionIndex; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) || defined(APPLY_MATERIAL) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_verticalExaggerationAndRelativeHeight.x; + float relativeHeight = u_verticalExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_clippingPosition = vec2(czm_infinity); + v_regionIndex = -1; + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + float threshold = 0.01; + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } + } +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var xTi=T(S(),1),ZV=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var XTi=T(S(),1);var CTi=T(S(),1);var trt=new D;function nrt(e,t){let n=e.unionClippingRegions,i=e.length,o=hs.useFloatTexture(t),r=hs.getTextureResolution(e,t,trt),s=r.x,a=r.y,c=o?rrt(s,a):srt(s,a);return c+=` +`,c+=n?irt(i):ort(i),c}function irt(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function ort(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function rrt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function srt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var qb=nrt;function art(e,t,n,i,o,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o,this.clippingPolygonShaderState=r}function F4(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function crt(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case oe.SCENE3D:o=t;break;case oe.SCENE2D:case oe.COLUMBUS_VIEW:o=n;break;case oe.MORPHING:o=i;break}return o}function lrt(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex); + }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + }`}function drt(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return czm_unpackClippingExtents(extentsTexture, index); + }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return vec4(); + }`}function urt(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}F4.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,d=e.applyAlpha,u=e.applyDayNightAlpha,m=e.applySplit,p=e.hasWaterMask,g=e.showReflectiveOcean,f=e.showOceanWaves,x=e.enableLighting,_=e.dynamicAtmosphereLighting,C=e.dynamicAtmosphereLightingFromSun,V=e.showGroundAtmosphere,L=e.perFragmentGroundAtmosphere,Z=e.hasVertexNormals,G=e.useWebMercatorProjection,I=e.enableFog,v=e.enableClippingPlanes,P=e.clippingPlanes,w=e.enableClippingPolygons,F=e.clippingPolygons,b=e.clippedByBoundaries,R=e.hasImageryLayerCutout,E=e.colorCorrect,X=e.highlightFillTile,A=e.colorToAlpha,N=e.hasGeodeticSurfaceNormals,O=e.hasExaggeration,U=e.showUndergroundColor,Y=e.translucent,k=0,H="",te=n.renderedMesh.encoding;te.quantization===Qs.BITS12&&(k=1,H="QUANTIZATION_BITS12");let q=0,ee="";b&&(q=1,ee="TILE_LIMIT_RECTANGLE");let fe=0,_e="";R&&(fe=1,_e="APPLY_IMAGERY_CUTOUT");let le=t.mode,ye=le|o<<2|r<<3|s<<4|a<<5|c<<6|d<<7|p<<8|g<<9|f<<10|x<<11|_<<12|C<<13|V<<14|L<<15|Z<<16|G<<17|I<<18|k<<19|m<<20|v<<21|w<<22|q<<23|fe<<24|E<<25|X<<26|A<<27|N<<28|O<<29|U<<30|Y<<31|u<<32,Te=0;l(P)&&P.length>0&&(Te=v?P.clippingPlanesState:0);let Xe=0;l(F)&&F.length>0&&(Xe=w?F.clippingPolygonsState:0);let Le=n.surfaceShader;if(l(Le)&&Le.numberOfDayTextures===i&&Le.flags===ye&&Le.material===this.material&&Le.clippingShaderState===Te&&Le.clippingPolygonShaderState===Xe)return Le.shaderProgram;let ke=this._shadersByTexturesFlags[i];if(l(ke)||(ke=this._shadersByTexturesFlags[i]=[]),Le=ke[ye],!l(Le)||Le.material!==this.material||Le.clippingShaderState!==Te||Le.clippingPolygonShaderState!==Xe){let Oe=this.baseVertexShaderSource.clone(),at=this.baseFragmentShaderSource.clone();Te!==0&&at.sources.unshift(qb(P,t.context)),Xe!==0&&(at.sources.unshift(lrt(t.context)),Oe.sources.unshift(drt(t.context))),Oe.defines.push(H),at.defines.push(`TEXTURE_UNITS ${i}`,ee,_e),o&&at.defines.push("APPLY_BRIGHTNESS"),r&&at.defines.push("APPLY_CONTRAST"),s&&at.defines.push("APPLY_HUE"),a&&at.defines.push("APPLY_SATURATION"),c&&at.defines.push("APPLY_GAMMA"),d&&at.defines.push("APPLY_ALPHA"),u&&at.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&at.defines.push("HAS_WATER_MASK"),g&&(at.defines.push("SHOW_REFLECTIVE_OCEAN"),Oe.defines.push("SHOW_REFLECTIVE_OCEAN")),f&&at.defines.push("SHOW_OCEAN_WAVES"),A&&at.defines.push("APPLY_COLOR_TO_ALPHA"),U&&(Oe.defines.push("UNDERGROUND_COLOR"),at.defines.push("UNDERGROUND_COLOR")),Y&&(Oe.defines.push("TRANSLUCENT"),at.defines.push("TRANSLUCENT")),x&&(Z?(Oe.defines.push("ENABLE_VERTEX_LIGHTING"),at.defines.push("ENABLE_VERTEX_LIGHTING")):(Oe.defines.push("ENABLE_DAYNIGHT_SHADING"),at.defines.push("ENABLE_DAYNIGHT_SHADING"))),_&&(Oe.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),at.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),C&&(Oe.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),at.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),V&&(Oe.defines.push("GROUND_ATMOSPHERE"),at.defines.push("GROUND_ATMOSPHERE"),L&&(Oe.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),at.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),Oe.defines.push("INCLUDE_WEB_MERCATOR_Y"),at.defines.push("INCLUDE_WEB_MERCATOR_Y"),I&&(Oe.defines.push("FOG"),at.defines.push("FOG")),m&&at.defines.push("APPLY_SPLIT"),v&&at.defines.push("ENABLE_CLIPPING_PLANES"),w&&(at.defines.push("ENABLE_CLIPPING_POLYGONS"),Oe.defines.push("ENABLE_CLIPPING_POLYGONS"),F.inverse&&at.defines.push("CLIPPING_INVERSE"),at.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${F.extentsCount}`),Oe.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${F.extentsCount}`)),E&&at.defines.push("COLOR_CORRECT"),X&&at.defines.push("HIGHLIGHT_FILL_TILE"),N&&Oe.defines.push("GEODETIC_SURFACE_NORMALS"),O&&Oe.defines.push("EXAGGERATION");let Mt=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;R&&(Mt+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let Ie=0;Ie0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Mf(i)}`),c};_D.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var Zo=_D;var kTi=T(S(),1),hrt={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ai=Object.freeze(hrt);var DTi=T(S(),1),frt={START:0,LOADING:1,DONE:2,FAILED:3},js=Object.freeze(frt);var OTi=T(S(),1),prt={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},co=Object.freeze(prt);function tr(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=co.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new ce,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(tr.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===co.RECEIVING||e===co.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o=0&&(u=V)}return u!==Number.MAX_VALUE?pn.getPoint(e,u,o):void 0};tr.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=co.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t=co.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)Grt(t.context,s);else{let d=s._findAncestorTileWithTerrainData(e);l(d)&&l(d.data.waterMaskTexture)&&(s.waterMaskTexture=d.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,d,s.waterMaskTranslationAndScale))}}function Srt(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=js.FAILED;return}let c=a.data.terrainData,d=a.x,u=a.y,m=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,d,u,m,o,r,s);l(p)&&(e.terrainState=co.RECEIVING,Promise.resolve(p).then(function(g){l(g)&&(e.terrainData=g,e.terrainState=co.RECEIVED)}).catch(function(){e.terrainState=co.FAILED}))}function Crt(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=co.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=co.RECEIVED,e.request=void 0}function s(c){if(e.request.state===jn.CANCELLED){e.terrainData=void 0,e.terrainState=co.UNLOADED,e.request=void 0;return}e.terrainState=co.FAILED,e.request=void 0;let d=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Zo.reportError(t._requestError,t,t.errorEvent,d,n,i,o),t._requestError.retry&&a()}function a(){let c=new Ho({throttle:!1,throttleByServer:!0,type:cs.TERRAIN});e.request=c;let d=t.requestTileGeometry(n,i,o,c);l(d)?(e.terrainState=co.RECEIVING,Promise.resolve(d).then(function(u){r(u)}).catch(function(u){s(u)})):(e.terrainState=co.UNLOADED,e.request=void 0)}a()}var Vrt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function Lrt(e,t,n,i,o,r){let s=n.tilingScheme,a=Vrt;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let d=e.terrainData.createMesh(a);l(d)&&(e.terrainState=co.TRANSFORMING,Promise.resolve(d).then(function(u){e.mesh=u,e.terrainState=co.TRANSFORMED}).catch(function(){e.terrainState=co.FAILED}))}tr._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=xt.createVertexBuffer({context:e,typedArray:n,usage:Me.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=xt.createIndexBuffer({context:e,typedArray:a,usage:Me.STATIC_DRAW,indexDatatype:Ae.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ti({context:e,attributes:o,indexBuffer:s})};tr._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function Rrt(e,t,n,i,o,r,s){e.vertexArray=tr._createVertexArrayForMesh(t,e.mesh),e.terrainState=co.READY,e.fill=e.fill&&e.fill.destroy(s)}function Zrt(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Pt.create({context:e,pixelFormat:ot.LUMINANCE,pixelDatatype:qe.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:hi.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function Grt(e,t){let n=t.terrainData.waterMask,i=Zrt(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Pt.create({context:e,pixelFormat:ot.LUMINANCE,pixelDatatype:qe.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,se.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}tr.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};tr.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var nm=tr;var qLi=T(S(),1);var $Vi=T(S(),1);var HVi=T(S(),1);var gCi=T(S(),1);var ZSi=T(S(),1);function by(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ne.default),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Zi(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new D(-i,-i),this._rectangleNortheastInMeters=new D(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new ae(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(by.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});by.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<=o&&(f=o-1);let x=g/d|0;return x>=r&&(x=r-1),l(n)?(n.x=f,n.y=x,n):new D(f,x)};var ns=by;var WSi=T(S(),1);var M4,q0e="AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmQpcUfxe1Yndhf82d5oKkQJ4_7VPaBQGYSISOMaRew7Sy-eTX1JQ4XwaC8v5aCvV72O6LCPs5Ss1pXXH-0uEw6bSRhTeQYHOmikutC2OMyZt6lu0VfT7FA-jVMO_UsunWNTf2cycP2O4IeDN_UV9G-VNmUu2jRvCHioi8o72ua4238s2219cYLEmcoGRJGVJTA.AT1_PjLvyih0",GV={};GV.defaultAccessToken=q0e;GV.defaultWorldImageryServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});GV.defaultWorldHillshadeServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});GV.defaultWorldOceanServer=new Ee({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});GV.getDefaultTokenCredit=function(e){if(e===q0e){if(!l(M4)){let t=' This application is using a default ArcGIS access token. Please assign Cesium.ArcGisMapService.defaultAccessToken with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at https://developers.arcgis.com/.';M4=new Et(t,!0)}return M4}};var Od=GV;var MSi=T(S(),1);function N4(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=Ee.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=bm(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,d=e.pixelsToCheck;for(let u=0,m=d.length;a&&u0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}N4.prototype.isReady=function(){return this._isReady};N4.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=bm(e),o=e.width;for(let r=0,s=t.length;r1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};k4.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=``:i+=``)}return i+="
      ${o}${t(r)}
      ${o}${r}
      ",i}this.description=t(e)};var Sh=k4;var zSi=T(S(),1);function EV(){pe.throwInstantiationError()}Object.defineProperties(EV.prototype,{rectangle:{get:pe.throwInstantiationError},tileWidth:{get:pe.throwInstantiationError},tileHeight:{get:pe.throwInstantiationError},maximumLevel:{get:pe.throwInstantiationError},minimumLevel:{get:pe.throwInstantiationError},tilingScheme:{get:pe.throwInstantiationError},tileDiscardPolicy:{get:pe.throwInstantiationError},errorEvent:{get:pe.throwInstantiationError},credit:{get:pe.throwInstantiationError},proxy:{get:pe.throwInstantiationError},hasAlphaChannel:{get:pe.throwInstantiationError}});EV.prototype.getTileCredits=function(e,t,n){pe.throwInstantiationError()};EV.prototype.requestImage=function(e,t,n,i){pe.throwInstantiationError()};EV.prototype.pickFeatures=function(e,t,n,i,o){pe.throwInstantiationError()};var Ert=/\.ktx2$/i;EV.loadImage=function(e,t){let n=Ee.createIfNeeded(t);return Ert.test(n.url)?_l(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var ol=EV;var JSi=T(S(),1),Irt={SATELLITE:1,OCEANS:2,HILLSHADE:3},Ch=Object.freeze(Irt);function $0e(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Yi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new Et(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}$0e.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new pw({missingImageUrl:ege(e,0,0,this.maximumLevel).url,pixelsToCheck:[new D(0,0),new D(200,20),new D(20,200),new D(80,110),new D(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function Xrt(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new ns({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Yi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new de(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Zi,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new ae(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=ae.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new de(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new Et(e.copyrightText)]:t.credit=new Et(e.copyrightText))}function Wrt(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new de(n)}async function Prt(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();Xrt(i,t)}catch(i){Wrt(e,i)}}function Uf(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Yi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new Et(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new be}Uf.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case Ch.SATELLITE:{n=y(t.token,Od.defaultAccessToken),i=Ee.createIfNeeded(Od.defaultWorldImageryServer),i.appendForwardSlash();let r=Od.getDefaultTokenCredit(n);l(r)&&(o=Et.clone(r))}break;case Ch.OCEANS:{n=y(t.token,Od.defaultAccessToken),i=Ee.createIfNeeded(Od.defaultWorldOceanServer),i.appendForwardSlash();let r=Od.getDefaultTokenCredit(n);l(r)&&(o=Et.clone(r))}break;case Ch.HILLSHADE:{n=y(t.token,Od.defaultAccessToken),i=Ee.createIfNeeded(Od.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Od.getDefaultTokenCredit(n);l(r)&&(o=Et.clone(r))}break;default:}return Uf.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function ege(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof Ri?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(Uf.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});Uf.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=Ee.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new Uf(t);i._resource=n;let o=new $0e(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Prt(n,o),o.build(i),i};Uf.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Uf.prototype.requestImage=function(e,t,n,i){return ol.loadImage(this,ege(this,e,t,n,i))};Uf.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof Ri)s=W.toDegrees(i),a=W.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new he(i,o,0));s=p.x,a=p.y,c="3857"}let d="visible";l(this._layers)&&(d+=`:${this._layers}`);let u={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:d};return this._resource.getDerivedResource({url:"identify",queryParameters:u}).fetchJson().then(function(p){let g=[],f=p.results;if(!l(f))return g;for(let x=0;xo.coverageAreas?.some(r=>l(r.bbox)))),t.attributionList=i}function Frt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),Zo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new de(i)}async function Art(e,t,n){let i=e.url,o=Is._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),Is._metadataCache[i]=o);try{let r=await o;return wrt(r,t)}catch(r){Frt(e,r,n)}}function Is(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,IV.AERIAL),this._mapLayer=e.mapLayer,this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new XV),this._proxy=e.proxy,this._credit=new Et(``),this._tilingScheme=new ns({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new be}Object.defineProperties(Is.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return l(this.mapLayer)}}});Is.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,IV.AERIAL),o=Ee.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new Is(t);a._resource=o;let c=new tge(t);return await Art(s,c),c.build(a),a};var Mrt=new ae;Is.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,Mrt);return Urt(this._attributionList,n,i)};Is.prototype.requestImage=function(e,t,n,i){let o=ol.loadImage(this,Nrt(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?XV.EMPTY_IMAGE:Promise.reject(r)})};Is.prototype.pickFeatures=function(e,t,n,i,o){};Is.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<=0;--o){let r=1<=m.zoomMin&&t<=m.zoomMax){let p=ae.intersection(n,m.bbox,krt);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}Is._metadataCache={};var gw=Is;var p1i=T(S(),1);var e1i=T(S(),1);var nge=/{[^}]+}/g,ige={x:Yrt,y:zrt,z:Qrt,s:jrt,reverseX:Hrt,reverseY:Krt,reverseZ:Jrt,westDegrees:qrt,southDegrees:$rt,eastDegrees:est,northDegrees:tst,westProjected:nst,southProjected:ist,eastProjected:ost,northProjected:rst,width:sst,height:ast},Drt=Tt(ige,{i:cst,j:lst,reverseI:dst,reverseJ:ust,longitudeDegrees:hst,latitudeDegrees:fst,longitudeProjected:pst,latitudeProjected:bst,format:yst});function yw(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new be;let t=Ee.createIfNeeded(e.url),n=Ee.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new ns({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=ae.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new Et(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=Tt(ige,r),a=Tt(Drt,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(yw.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});yw.prototype.getTileCredits=function(e,t,n){};yw.prototype.requestImage=function(e,t,n,i){return ol.loadImage(this,Brt(this,e,t,n,i))};yw.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(d,u){return d.callback(u)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let d=s._getFeatureInfoFormats[r],u=Ort(s,e,t,n,i,o,d.format);return++r,d.type==="json"?u.fetchJson().then(d.callback).catch(c):d.type==="xml"?u.fetchXML().then(d.callback).catch(c):d.type==="text"||d.type==="html"?u.fetchText().then(d.callback).catch(c):u.fetch({responseType:d.format}).then(a.bind(void 0,d)).catch(c)}return c()};var SD=!1,Yd=new ae,CD=!1,xw=new ae;function Brt(e,t,n,i,o){SD=!1,CD=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},d=s.match(nge);return l(d)&&d.forEach(function(u){let m=u.substring(1,u.length-1);l(a[m])&&(c[m]=a[m](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var U4=!1,PV=new D,D4=!1;function Ort(e,t,n,i,o,r,s){SD=!1,CD=!1,U4=!1,D4=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),d=e._pickFeaturesTags,u={},m=c.match(nge);return l(m)&&m.forEach(function(p){let g=p.substring(1,p.length-1);l(d[g])&&(u[g]=d[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:u})}function vV(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function Yrt(e,t,n,i){return vV(e,"{x}",t)}function Hrt(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return vV(e,"{reverseX}",o)}function zrt(e,t,n,i){return vV(e,"{y}",n)}function Krt(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return vV(e,"{reverseY}",o)}function Jrt(e,t,n,i){let o=e.maximumLevel,r=l(o)&&it.rectangle.east&&(e.east=t.rectangle.east),e.southt.rectangle.north&&(e.north=t.rectangle.north),e}function rge(e,t,n){let i=e.positionToTileXY(ae.southwest(t),n),o=e.positionToTileXY(ae.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}im._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,d,u,m,p=[],g=e.childNodes[0].childNodes;for(let P=0;P`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new be}Object.defineProperties(Kl.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});Kl.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=Ee.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new sge(n);s.channel=t,await Tst(r,s);let a=new Kl(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Kl.prototype.getTileCredits=function(e,t,n){};Kl.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return ol.loadImage(this,o)};Kl.prototype.pickFeatures=function(e,t,n,i,o){};Kl._logoUrl=void 0;Object.defineProperties(Kl,{logoUrl:{get:function(){return l(Kl._logoUrl)||(Kl._logoUrl=rn("Assets/Images/google_earth_credit.png")),Kl._logoUrl},set:function(e){Kl._logoUrl=e}}});var _w=Kl;var F1i=T(S(),1);var Sst=/\/$/,age=new Et('© Mapbox © OpenStreetMap Improve this map');function wV(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=Ee.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();Sst.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new Et(s))):s=age,this._resource=i,this._imageryProvider=new Na({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(wV.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});wV.prototype.getTileCredits=function(e,t,n){};wV.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};wV.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};wV._defaultCredit=age;var Tw=wV;var K1i=T(S(),1);function ST(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,ae.MAX_VALUE),n=new Yi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new be;let i=e.credit;typeof i=="string"&&(i=new Et(i)),this._credit=i;let o=Ee.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(ST.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function Cst(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=Zo.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return O4(e,n,r);throw l(n)&&(n._hasError=!0),new de(o)}async function O4(e,t,n){try{return await ol.loadImage(null,e)}catch(i){return Cst(e,i,t,n)}}ST.fromUrl=async function(e,t){let n=Ee.createIfNeeded(e),i=await O4(n);t=y(t,y.EMPTY_OBJECT);let o=new ST({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};ST.prototype.getTileCredits=function(e,t,n){};ST.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await O4(this._resource,this);return this._image=o,Zo.reportSuccess(this._errorEvent),o}return this._image};ST.prototype.pickFeatures=function(e,t,n,i,o){};var Sw=ST;var yVi=T(S(),1);var eVi=T(S(),1);function Vst(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=Lst:e==="xml"?n=Est:(e==="html"||e==="text")&&(n=cge)),this.callback=n}function Lst(e){let t=[],n=e.features;for(let i=0;i0)for(let r=0;r\s*<\/body>/im,Fst=//im,Ast=/([\s\S]*)<\/title>/im;function cge(e){if(wst.test(e)||Fst.test(e))return;let t,n=Ast.exec(e);n&&n.length>1&&(t=n[1]);let i=new Sh;return i.name=t,i.description=e,i.data=e,[i]}var CT=Vst;var aVi=T(S(),1);function Cw(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(Cw.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});Cw.prototype.getFromCache=function(e,t,n,i){let o=lge(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};Cw.prototype.checkApproachingInterval=function(e,t,n,i){let o=lge(e,t,n),r=this._tilesRequestedForInterval,s=dge(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!uge(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};Cw.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=dge(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=uge(this,c,r),a||s.push(c)}}};function lge(e,t,n){return`${e}-${t}-${n}`}function Mst(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function dge(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=j.secondsDifference(c.stop,i),++a):(s=j.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function uge(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=Mst(s),c=new Ho({throttle:!1,throttleByServer:!0,type:cs.IMAGERY,priorityFunction:t.priorityFunction}),d=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(d)?(r[s]={promise:d,request:c},!0):!1}var VT=Cw;var Nst=[3034,3035,3042,3043,3044],kst=[4471,4559];function Vh(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new pe("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=Ee.createIfNeeded(e.url),n=Ee.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Vh.DefaultParameters,!0),n.setQueryParameters(Vh.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(mge(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(mge(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new VT({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,d,u){return hge(i,s,a,c,d,u)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Zi?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!kst.includes(a)||Nst.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Zi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Na({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Yi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Vh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function hge(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Ust(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Vh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Vh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Vh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=hge(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Vh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return Ust(this,e,t,n,i,o,s)};Vh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Vh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Vh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new CT("json","application/json")),Object.freeze(new CT("xml","text/xml")),Object.freeze(new CT("text","text/html"))]);function mge(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var Vw=Vh;var IVi=T(S(),1);var Dst=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function Lw(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=Ee.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(Dst),this._useKvp=!0;else{let m={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(m),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new ns({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new VT({clock:e.clock,times:e.times,requestImageFunction:function(m,p,g,f,x){return fge(s,m,p,g,f,x)},reloadFunction:function(){l(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(ae.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(ae.northeast(this._rectangle),this._minimumLevel),d=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new be;let u=e.credit;this._credit=typeof u=="string"?new Et(u):u,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function fge(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,d=e._dimensions,u=l(r)?r.data:void 0,m,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},m=e._resource.getDerivedResource({request:o}),m.setTemplateValues(p),l(d)&&m.setTemplateValues(d),l(u)&&m.setTemplateValues(u);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(d)&&(g=Tt(g,d)),l(u)&&(g=Tt(g,u)),p={s:c[(t+n+i)%c.length]},m=e._resource.getDerivedResource({queryParameters:g,request:o}),m.setTemplateValues(p)}return ol.loadImage(e,m)}Object.defineProperties(Lw.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}}});Lw.prototype.getTileCredits=function(e,t,n){};Lw.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=fge(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Lw.prototype.pickFeatures=function(e,t,n,i,o){};var Rw=Lw;var Bst={ARCGIS_MAPSERVER:$b.fromUrl,BING:async(e,t)=>gw.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,_w.fromUrl(e,n,t)},MAPBOX:(e,t)=>new Tw({url:e,...t}),SINGLE_TILE:Sw.fromUrl,TMS:gy.fromUrl,URL_TEMPLATE:(e,t)=>new Na({url:e,...t}),WMS:(e,t)=>new Vw({url:e,...t}),WMTS:(e,t)=>new Rw({url:e,...t})};function Df(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new be}Object.defineProperties(Df.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});Df.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=fd._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=Df._endpointCache[i];l(o)||(o=n.fetchJson(),Df._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new de(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await gy.fromUrl(new fd(r,n));else{let d=Bst[a];if(!l(d))throw new de(`Unrecognized Cesium ion imagery type: ${a}`);let u={...r.options},m=u.url;delete u.url,s=await d(m,u)}let c=new Df(t);return s.errorEvent.addEventListener(function(d){d.provider=c,c._errorEvent.raiseEvent(d)}),c._tileCredits=fd.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};Df.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};Df.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Df.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Df._endpointCache={};var e0=Df;var KVi=T(S(),1),Ost={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},t0=Object.freeze(Ost);function Yst(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,t0.AERIAL);return e0.fromAssetId(t)}var n0=Yst;var tLi=T(S(),1),Zw=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var iLi=T(S(),1),Gw=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;var cLi=T(S(),1);function FV(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ai.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}FV.createPlaceholder=function(e){let t=new FV(e,0,0,0);return t.addReference(),t.state=ai.PLACEHOLDER,t};FV.prototype.addReference=function(){++this.referenceCount};FV.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),me(this),0):this.referenceCount};FV.prototype.processStateMachine=function(e,t,n){this.state===ai.UNLOADED&&!n&&(this.state=ai.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ai.RECEIVED&&(this.state=ai.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ai.READY&&t&&!this.texture;(this.state===ai.TEXTURE_LOADED||i)&&(this.state=ai.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var AV=FV;var mLi=T(S(),1);function z4(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}z4.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};z4.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ai.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==ai.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ai.FAILED&&r.state!==ai.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ai.FAILED||i.state===ai.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var MV=z4;function Ti(e,t){this._imageryProvider=e,this._readyEvent=new be,this._errorEvent=new be,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,Ti.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,Ti.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,Ti.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,Ti.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,Ti.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,Ti.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,Ti.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,Ti.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,ae.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new MV(AV.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,Ti.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(Ti.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});Ti.DEFAULT_BRIGHTNESS=1;Ti.DEFAULT_CONTRAST=1;Ti.DEFAULT_HUE=0;Ti.DEFAULT_SATURATION=1;Ti.DEFAULT_GAMMA=1;Ti.DEFAULT_SPLIT=vr.NONE;Ti.DEFAULT_MINIFICATION_FILTER=$t.LINEAR;Ti.DEFAULT_MAGNIFICATION_FILTER=hi.LINEAR;Ti.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;Ti.fromProviderAsync=function(e,t){let n=new Ti(void 0,t);return Qst(n,Promise.resolve(e)),n};Ti.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),Ti.fromProviderAsync(n0({style:e.style}),e)};Ti.prototype.isBaseLayer=function(){return this._isBaseLayer};Ti.prototype.isDestroyed=function(){return!1};Ti.prototype.destroy=function(){return me(this)};var gge=new ae,pge=new ae,K4=new ae,yge=new ae;Ti.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return ae.intersection(e.rectangle,t)};Ti.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Zi&&e.rectangle.north<Zi.MaximumLatitude&&e.rectangle.south>-Zi.MaximumLatitude,s=ae.intersection(o.rectangle,this._rectangle,gge),a=ae.intersection(e.rectangle,s,pge);if(!l(a)){if(!this.isBaseLayer())return!1;let E=s,X=e.rectangle;a=pge,X.south>=E.north?a.north=a.south=E.north:X.north<=E.south?a.north=a.south=E.south:(a.south=Math.max(X.south,E.south),a.north=Math.min(X.north,E.north)),X.west>=E.east?a.west=a.east=E.east:X.east<=E.west?a.west=a.east=E.west:(a.west=Math.max(X.west,E.west),a.east=Math.min(X.east,E.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let u=1*t.getLevelMaximumGeometricError(e.level),m=Kst(this,u,c);m=Math.max(0,m);let p=o.maximumLevel;if(m>p&&(m=p),l(o.minimumLevel)){let E=o.minimumLevel;m<E&&(m=E)}let g=o.tilingScheme,f=g.positionToTileXY(ae.northwest(a),m),x=g.positionToTileXY(ae.southeast(a),m),_=e.rectangle.width/512,C=e.rectangle.height/512,V=g.tileXYToRectangle(f.x,f.y,m);Math.abs(V.south-e.rectangle.north)<C&&f.y<x.y&&++f.y,Math.abs(V.east-e.rectangle.west)<_&&f.x<x.x&&++f.x;let L=g.tileXYToRectangle(x.x,x.y,m);Math.abs(L.north-e.rectangle.south)<C&&x.y>f.y&&--x.y,Math.abs(L.west-e.rectangle.east)<_&&x.x>f.x&&--x.x;let Z=ae.clone(e.rectangle,yge),G=g.tileXYToRectangle(f.x,f.y,m),I=ae.intersection(G,s,K4),v;r?(g.rectangleToNativeRectangle(Z,Z),g.rectangleToNativeRectangle(G,G),g.rectangleToNativeRectangle(I,I),g.rectangleToNativeRectangle(s,s),v=g.tileXYToNativeRectangle.bind(g),_=Z.width/512,C=Z.height/512):v=g.tileXYToRectangle.bind(g);let P,w=0,F=1,b;!this.isBaseLayer()&&Math.abs(I.west-Z.west)>=_&&(w=Math.min(1,(I.west-Z.west)/Z.width)),!this.isBaseLayer()&&Math.abs(I.north-Z.north)>=C&&(F=Math.max(0,(I.north-Z.south)/Z.height));let R=F;for(let E=f.x;E<=x.x;E++)if(P=w,G=v(E,f.y,m),I=ae.simpleIntersection(G,s,K4),!!l(I)){w=Math.min(1,(I.east-Z.west)/Z.width),E===x.x&&(this.isBaseLayer()||Math.abs(I.east-Z.east)<_)&&(w=1),F=R;for(let X=f.y;X<=x.y;X++){if(b=F,G=v(E,X,m),I=ae.simpleIntersection(G,s,K4),!l(I))continue;F=Math.max(0,(I.south-Z.south)/Z.height),X===x.y&&(this.isBaseLayer()||Math.abs(I.south-Z.south)<C)&&(F=0);let A=new se(P,F,w,b),N=this.getImageryFromCache(E,X,m);i.imagery.splice(n,0,new MV(N,A,r)),++n}}return!0};Ti.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,gge),i=c.rectangleToNativeRectangle(i,yge)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new se(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};Ti.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ai.RECEIVED,e.request=void 0,Zo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===jn.CANCELLED){e.state=ai.UNLOADED,e.request=void 0;return}e.state=ai.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Zo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Ho({throttle:!1,throttleByServer:!0,type:cs.IMAGERY});e.request=s,e.state=ai.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ai.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};Ti.prototype._createTextureWebGL=function(e,t){let n=new en({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Pt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Pt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?ot.RGBA:ot.RGB,sampler:n})};Ti.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ai.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ai.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Zi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ai.TEXTURE_LOADED};function bge(e,t,n){return`${e}:${t}:${n}`}Ti.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===$t.LINEAR&&i===hi.LINEAR&&!ot.isCompressedFormat(t.pixelFormat)&&W.isPowerOfTwo(t.width)&&W.isPowerOfTwo(t.height)){n=$t.LINEAR_MIPMAP_LINEAR;let r=Bt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=bge(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let d=c[a];l(d)||(d=c[a]=new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(Qh.NICEST),t.sampler=d}else{let r=bge(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};Ti.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof Ri)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Xc({persists:!0,owner:this,preExecute:function(c){zst(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ai.READY,t.releaseReference()},canceled:function(){t.state=ai.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ai.READY};Ti.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};Ti.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};Ti.prototype.getImageryFromCache=function(e,t,n,i){let o=xge(e,t,n),r=this._imageryCache[o];return l(r)||(r=new AV(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};Ti.prototype.removeImageryFromCache=function(e){let t=xge(e.x,e.y,e.level);delete this._imageryCache[t]};function xge(e,t,n){return JSON.stringify([e,t,n])}var GD={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new D,texture:void 0},Hst=zt.supportsTypedArrays()?new Float32Array(2*64):void 0;function zst(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let _=new Float32Array(2*64*2),C=0;for(let I=0;I<64;++I){let v=I/63;_[C++]=0,_[C++]=v,_[C++]=1,_[C++]=v}let V={position:0,webMercatorT:1},L=ts.getRegularGridIndices(2,64),Z=xt.createIndexBuffer({context:t,typedArray:L,usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT});o.vertexArray=new ti({context:t,attributes:[{index:V.position,vertexBuffer:xt.createVertexBuffer({context:t,typedArray:_,usage:Me.STATIC_DRAW}),componentsPerAttribute:2},{index:V.webMercatorT,vertexBuffer:xt.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Me.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:Z});let G=new De({sources:[Gw]});o.shaderProgram=tn.fromCache({context:t,vertexShaderSource:G,fragmentShaderSource:Zw,attributeLocations:V}),o.sampler=new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:hi.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;GD.textureDimensions.x=r,GD.textureDimensions.y=s,GD.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let u=1/(.5*Math.log((1+a)/(1-a))-c),m=new Pt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});W.isPowerOfTwo(r)&&W.isPowerOfTwo(s)&&m.generateMipmap(Qh.NICEST);let p=i.south,g=i.north,f=Hst,x=0;for(let _=0;_<64;++_){let C=_/63,V=W.lerp(p,g,C);a=Math.sin(V);let Z=(.5*Math.log((1+a)/(1-a))-c)*u;f[x++]=Z,f[x++]=Z}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(f),e.shaderProgram=o.shaderProgram,e.outputTexture=m,e.uniformMap=GD,e.vertexArray=o.vertexArray}function Kst(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof Ri?1:Math.cos(n),a=o.rectangle,d=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,u=Math.log(d)/Math.log(2);return Math.round(u)|0}function Jst(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function Qst(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){Jst(e._errorEvent,i)}}var ka=Ti;var VRi=T(S(),1);var eRi=T(S(),1),jst={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},gn=jst;var nRi=T(S(),1),_ge={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=_ge.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Kn=_ge;function kV(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new se}kV.prototype.update=function(e,t,n){this.changedThisFrame&&(Zge(e,t,this.tile,n),this.changedThisFrame=!1)};kV.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};kV.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):nm._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var qst=new lg;kV.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=qst;a.clear();for(let d=0;d<t.length;++d){let u=t[d];l(u.data.vertexArray)&&a.enqueue(t[d])}let c=a.dequeue();for(;c!==void 0;){let d=c.findTileToWest(r),u=c.findTileToSouth(r),m=c.findTileToEast(r),p=c.findTileToNorth(r);Xs(e,n,c,d,s,gn.EAST,!1,a,i),Xs(e,n,c,u,s,gn.NORTH,!1,a,i),Xs(e,n,c,m,s,gn.WEST,!1,a,i),Xs(e,n,c,p,s,gn.SOUTH,!1,a,i);let g=d.findTileToNorth(r),f=d.findTileToSouth(r),x=m.findTileToNorth(r),_=m.findTileToSouth(r);Xs(e,n,c,g,s,gn.SOUTHEAST,!1,a,i),Xs(e,n,c,x,s,gn.SOUTHWEST,!1,a,i),Xs(e,n,c,f,s,gn.NORTHEAST,!1,a,i),Xs(e,n,c,_,s,gn.NORTHWEST,!1,a,i),c=a.dequeue()}};function Xs(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let d=i;for(;d&&(d._lastSelectionResultFrame!==o||Kn.wasKicked(d._lastSelectionResult)||Kn.originalResult(d._lastSelectionResult)===Kn.CULLED);){if(s)return;let u=d.parent;if(r>=gn.NORTHWEST&&u!==void 0)switch(r){case gn.NORTHWEST:d=d===u.northwestChild?u:void 0;break;case gn.NORTHEAST:d=d===u.northeastChild?u:void 0;break;case gn.SOUTHWEST:d=d===u.southwestChild?u:void 0;break;case gn.SOUTHEAST:d=d===u.southeastChild?u:void 0;break}else d=u}if(d!==void 0){if(d._lastSelectionResult===Kn.RENDERED){if(l(d.data.vertexArray))return;$st(e,t,n,d,r,o,a,c);return}if(Kn.originalResult(i._lastSelectionResult)!==Kn.CULLED)switch(r){case gn.WEST:Xs(e,t,n,i.northwestChild,o,r,!0,a,c),Xs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case gn.EAST:Xs(e,t,n,i.southeastChild,o,r,!0,a,c),Xs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case gn.SOUTH:Xs(e,t,n,i.southwestChild,o,r,!0,a,c),Xs(e,t,n,i.southeastChild,o,r,!0,a,c);break;case gn.NORTH:Xs(e,t,n,i.northeastChild,o,r,!0,a,c),Xs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case gn.NORTHWEST:Xs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case gn.NORTHEAST:Xs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case gn.SOUTHWEST:Xs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case gn.SOUTHEAST:Xs(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new pe("Invalid edge")}}}function $st(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new kV(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),eat(e,t,n,i,o,a)}function eat(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(Zge(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let d,u;switch(o){case gn.WEST:d=s.westMeshes,u=s.westTiles;break;case gn.SOUTH:d=s.southMeshes,u=s.southTiles;break;case gn.EAST:d=s.eastMeshes,u=s.eastTiles;break;case gn.NORTH:d=s.northMeshes,u=s.northTiles;break;case gn.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case gn.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case gn.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case gn.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||d[0]!==a||d.length!==1,d[0]=a,u[0]=n,d.length=1,u.length=1;return}let m,p,g,f,x=n.rectangle,_,C=i.rectangle;switch(o){case gn.WEST:for(_=(C.north-C.south)*W.EPSILON5,m=0;m<u.length&&(g=u[m],f=g.rectangle,!W.greaterThan(x.north,f.south,_));++m);for(p=m;p<u.length&&(g=u[p],f=g.rectangle,!W.greaterThanOrEquals(x.south,f.north,_));++p);break;case gn.SOUTH:for(_=(C.east-C.west)*W.EPSILON5,m=0;m<u.length&&(g=u[m],f=g.rectangle,!W.lessThan(x.west,f.east,_));++m);for(p=m;p<u.length&&(g=u[p],f=g.rectangle,!W.lessThanOrEquals(x.east,f.west,_));++p);break;case gn.EAST:for(_=(C.north-C.south)*W.EPSILON5,m=0;m<u.length&&(g=u[m],f=g.rectangle,!W.lessThan(x.south,f.north,_));++m);for(p=m;p<u.length&&(g=u[p],f=g.rectangle,!W.lessThanOrEquals(x.north,f.south,_));++p);break;case gn.NORTH:for(_=(C.east-C.west)*W.EPSILON5,m=0;m<u.length&&(g=u[m],f=g.rectangle,!W.greaterThan(x.east,f.west,_));++m);for(p=m;p<u.length&&(g=u[p],f=g.rectangle,!W.greaterThanOrEquals(x.west,f.east,_));++p);break}p-m===1?(s.changedThisFrame=s.changedThisFrame||d[m]!==a,d[m]=a,u[m]=n):(s.changedThisFrame=!0,d.splice(m,p-m,a),u.splice(m,p-m,n))}var LT=new he,tat=new he,NV=new h,q4=new h,J4=new D,Q4=new D,Hd=new D;function wD(){this.height=0,this.encodedNormal=new D}function ED(e,t,n,i,o,r,s,a,c){if(l(o))return o;let d;if(l(r)&&l(s))d=(r.height+s.height)*.5;else if(l(r))d=r.height;else if(l(s))d=s.height;else if(l(a))d=a.height;else{let m=e.tile.data.tileBoundingRegion,p=0,g=0;l(m)&&(p=m.minimumHeight,g=m.maximumHeight),d=(p+g)*.5}return Gge(e,t,n,i,d,c),c}var nat={minimumHeight:0,maximumHeight:0},iat=new h,Tge=new wD,Sge=new wD,Cge=new wD,Vge=new wD,oat=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,rat={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function Zge(e,t,n,i){nm.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,d=a!==1,u=n.tilingScheme.ellipsoid,m=XD(r,u,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,Cge),p=XD(r,u,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,Tge),g=XD(r,u,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,Sge),f=XD(r,u,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,Vge);m=ED(r,u,0,1,m,p,f,g,Cge),p=ED(r,u,0,0,p,m,g,f,Tge),g=ED(r,u,1,1,g,p,f,m,Sge),f=ED(r,u,1,1,f,g,m,p,Vge);let x=p.height,_=g.height,C=m.height,V=f.height,L=Math.min(x,_,C,V),Z=Math.max(x,_,C,V),G=(L+Z)*.5,I,v,P=e.getLevelMaximumGeometricError(n.level),w=u.maximumRadius-P,F=Math.acos(w/u.maximumRadius)*4;if(F*=1.5,s.width>F&&Z-L<=P){let E=new Ma({width:9,height:9,buffer:oat,structure:{heightOffset:Z}}),X=rat;X.tilingScheme=n.tilingScheme,X.x=n.x,X.y=n.y,X.level=n.level,X.exaggeration=a,X.exaggerationRelativeHeight=c,r.mesh=E._createMeshSync(X)}else{let E=d,X=ae.center(s,tat);X.height=G;let A=u.cartographicToCartesian(X,iat),N=new _c(A,void 0,void 0,void 0,void 0,!0,!0,E,a,c),O=5,U;for(U=r.westMeshes,I=0,v=U.length;I<v;++I)O+=U[I].eastIndicesNorthToSouth.length;for(U=r.southMeshes,I=0,v=U.length;I<v;++I)O+=U[I].northIndicesWestToEast.length;for(U=r.eastMeshes,I=0,v=U.length;I<v;++I)O+=U[I].westIndicesSouthToNorth.length;for(U=r.northMeshes,I=0,v=U.length;I<v;++I)O+=U[I].southIndicesEastToWest.length;let Y=nat;Y.minimumHeight=L,Y.maximumHeight=Z;let k=N.stride,H=new Float32Array(O*k),J=0,te=J;J=ID(u,s,N,H,J,0,1,m.height,m.encodedNormal,1,Y),J=PD(r,u,N,H,J,r.westTiles,r.westMeshes,gn.EAST,Y);let z=J;J=ID(u,s,N,H,J,0,0,p.height,p.encodedNormal,0,Y),J=PD(r,u,N,H,J,r.southTiles,r.southMeshes,gn.NORTH,Y);let q=J;J=ID(u,s,N,H,J,1,0,g.height,g.encodedNormal,0,Y),J=PD(r,u,N,H,J,r.eastTiles,r.eastMeshes,gn.WEST,Y);let ee=J;J=ID(u,s,N,H,J,1,1,f.height,f.encodedNormal,1,Y),J=PD(r,u,N,H,J,r.northTiles,r.northMeshes,gn.SOUTH,Y),L=Y.minimumHeight,Z=Y.maximumHeight;let fe=En.fromRectangle(s,L,Z,n.tilingScheme.ellipsoid),_e=Zi.geodeticLatitudeToMercatorAngle(s.south),le=1/(Zi.geodeticLatitudeToMercatorAngle(s.north)-_e),ye=(Zi.geodeticLatitudeToMercatorAngle(X.latitude)-_e)*le,Te=u.geodeticSurfaceNormalCartographic(LT,q4),Xe=wn.octEncode(Te,J4),Le=J;N.encode(H,J*k,fe.center,D.fromElements(.5,.5,Hd),G,Xe,ye,Te),++J;let ke=J,Oe=ke<256?1:2,at=(ke-1)*3,Mt=at*Oe,Lt=(H.length-ke*k)*Float32Array.BYTES_PER_ELEMENT,Ie;if(Lt>=Mt){let Ve=ke*k*Float32Array.BYTES_PER_ELEMENT;Ie=ke<256?new Uint8Array(H.buffer,Ve,at):new Uint16Array(H.buffer,Ve,at)}else Ie=ke<256?new Uint8Array(at):new Uint16Array(at);H=new Float32Array(H.buffer,0,ke*k);let je=0;for(I=0;I<ke-2;++I)Ie[je++]=Le,Ie[je++]=I,Ie[je++]=I+1;Ie[je++]=Le,Ie[je++]=I,Ie[je++]=0;let et=[];for(I=z;I>=te;--I)et.push(I);let He=[];for(I=q;I>=z;--I)He.push(I);let Dt=[];for(I=ee;I>=q;--I)Dt.push(I);let Ce=[];for(Ce.push(0),I=Le-1;I>=ee;--I)Ce.push(I);r.mesh=new tm(N.center,H,Ie,at,ke,L,Z,ce.fromOrientedBoundingBox(fe),mat(e,fe.center,s,L,Z),N.stride,fe,N,et,He,Dt,Ce)}let b=t.context;r._destroyVertexArray(i),r.vertexArray=nm._createVertexArrayForMesh(b,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let R=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let E=o._findAncestorTileWithTerrainData(n);l(E)&&l(E.data.waterMaskTexture)&&(r.waterMaskTexture=E.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,E,r.waterMaskTranslationAndScale))}l(R)&&(--R.referenceCount,R.referenceCount===0&&R.destroy())}function ID(e,t,n,i,o,r,s,a,c,d,u){let m=LT;m.longitude=W.lerp(t.west,t.east,r),m.latitude=W.lerp(t.south,t.north,s),m.height=a;let p=e.cartographicToCartesian(m,NV),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,q4));let f=Q4;return f.x=r,f.y=s,n.encode(i,o*n.stride,p,f,a,c,d,g),u.minimumHeight=Math.min(u.minimumHeight,a),u.maximumHeight=Math.max(u.maximumHeight,a),o+1}var vD=new ae;function Ew(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=ae.clone(e.rectangle,vD),o.west-=W.TWO_PI,o.east-=W.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=ae.clone(e.rectangle,vD),o.west+=W.TWO_PI,o.east+=W.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,d=o.north-o.south,u=(r.south-o.south)/d,m=(r.north-o.south)/d,p=(n.x-a)/(c-a),g=(n.y-u)/(m-u);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var sat=new D;function j4(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var aat=new D,cat=new h;function lat(e,t,n,i,o,r,s,a,c,d){let u=i.encoding,m=i.vertices,p=Ew(t,n,u.decodeTextureCoordinates(m,o,Hd),Hd),g=Ew(t,n,u.decodeTextureCoordinates(m,r,Q4),Q4),f;c?f=(s-p.x)/(g.x-p.x):f=(a-p.y)/(g.y-p.y);let x=u.decodeHeight(m,o),_=u.decodeHeight(m,r),C=n.rectangle;LT.longitude=W.lerp(C.west,C.east,s),LT.latitude=W.lerp(C.south,C.north,a),d.height=LT.height=W.lerp(x,_,f);let V;if(u.hasVertexNormals){let L=u.getOctEncodedNormal(m,o,sat),Z=u.getOctEncodedNormal(m,r,aat),G=wn.octDecode(L.x,L.y,NV),I=wn.octDecode(Z.x,Z.y,cat);V=h.lerp(G,I,f,NV),h.normalize(V,V),wn.octEncode(V,d.encodedNormal)}else V=e.geodeticSurfaceNormalCartographic(LT,NV),wn.octEncode(V,d.encodedNormal)}function Gge(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(LT,NV);wn.octEncode(s,r.encodedNormal)}function XD(e,t,n,i,o,r,s,a,c,d,u){if(Rge(e,t,a,s,!1,n,i,u)||Rge(e,t,d,c,!0,n,i,u))return u;let p;if($4(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],j4(r,p,n,i,u),u;let g;if(n===0?i===0?g=WD(e.westMeshes,e.westTiles,gn.EAST,e.southMeshes,e.southTiles,gn.NORTH,n,i):g=WD(e.northMeshes,e.northTiles,gn.SOUTH,e.westMeshes,e.westTiles,gn.EAST,n,i):i===0?g=WD(e.southMeshes,e.southTiles,gn.NORTH,e.eastMeshes,e.eastTiles,gn.WEST,n,i):g=WD(e.eastMeshes,e.eastTiles,gn.WEST,e.northMeshes,e.northTiles,gn.SOUTH,n,i),l(g))return Gge(e,t,n,i,g,u),u}function WD(e,t,n,i,o,r,s,a){let c=Lge(e,t,!1,n,s,a),d=Lge(i,o,!0,r,s,a);return l(c)&&l(d)?(c+d)*.5:l(c)?c:d}function PD(e,t,n,i,o,r,s,a,c){for(let d=0;d<r.length;++d)o=dat(e,t,n,i,o,r[d],s[d],a,c);return o}function dat(e,t,n,i,o,r,s,a,c){let d=r.rectangle;a===gn.EAST&&e.tile.x===0?(d=ae.clone(r.rectangle,vD),d.west-=W.TWO_PI,d.east-=W.TWO_PI):a===gn.WEST&&r.x===0&&(d=ae.clone(r.rectangle,vD),d.west+=W.TWO_PI,d.east+=W.TWO_PI);let u=e.tile.rectangle,m,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Hd),m=Hd.x,p=Hd.y);let g,f;switch(a){case gn.WEST:g=s.westIndicesSouthToNorth,f=!1;break;case gn.NORTH:g=s.northIndicesWestToEast,f=!0;break;case gn.EAST:g=s.eastIndicesNorthToSouth,f=!1;break;case gn.SOUTH:g=s.southIndicesEastToWest,f=!0;break}let x=r,_=e.tile,C=s.encoding,V=s.vertices,L=n.stride,Z,G;C.hasWebMercatorT&&(Z=Zi.geodeticLatitudeToMercatorAngle(u.south),G=1/(Zi.geodeticLatitudeToMercatorAngle(u.north)-Z));for(let I=0;I<g.length;++I){let v=g[I],P=C.decodeTextureCoordinates(V,v,Hd);Ew(x,_,P,P);let w=P.x,F=P.y,b=f?w:F;if(b<0||b>1||Math.abs(w-m)<W.EPSILON5&&Math.abs(F-p)<W.EPSILON5)continue;let R=Math.abs(w)<W.EPSILON5||Math.abs(w-1)<W.EPSILON5,E=Math.abs(F)<W.EPSILON5||Math.abs(F-1)<W.EPSILON5;if(R&&E)continue;let X=C.decodePosition(V,v,NV),A=C.decodeHeight(V,v),N;C.hasVertexNormals?N=C.getOctEncodedNormal(V,v,J4):(N=J4,N.x=0,N.y=0);let O=F;if(C.hasWebMercatorT){let Y=W.lerp(u.south,u.north,F);O=(Zi.geodeticLatitudeToMercatorAngle(Y)-Z)*G}let U;n.hasGeodeticSurfaceNormals&&(U=t.geodeticSurfaceNormal(X,q4)),n.encode(i,o*L,X,P,A,N,O,U),c.minimumHeight=Math.min(c.minimumHeight,A),c.maximumHeight=Math.max(c.maximumHeight,A),++o}return o}function Lge(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let d=s;d!==a;d+=c){let u=e[d],m=t[d];if(!$4(m,u))continue;let p;switch(i){case gn.WEST:p=u.westIndicesSouthToNorth;break;case gn.SOUTH:p=u.southIndicesEastToWest;break;case gn.EAST:p=u.eastIndicesNorthToSouth;break;case gn.NORTH:p=u.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return u.encoding.decodeHeight(u.vertices,g)}}function $4(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function Rge(e,t,n,i,o,r,s,a){let c,d,u,m,p,g=i[o?0:n.length-1],f=n[o?0:n.length-1];if($4(g,f)&&(r===0?s===0?(c=o?f.northIndicesWestToEast:f.eastIndicesNorthToSouth,d=o,u=o):(c=o?f.eastIndicesNorthToSouth:f.southIndicesEastToWest,d=!o,u=!1):s===0?(c=o?f.westIndicesSouthToNorth:f.northIndicesWestToEast,d=!o,u=!0):(c=o?f.southIndicesEastToWest:f.westIndicesSouthToNorth,d=o,u=!o),c.length>0)){m=o?0:c.length-1,p=c[m],f.encoding.decodeTextureCoordinates(f.vertices,p,Hd);let x=Ew(g,e.tile,Hd,Hd);if(x.x===r&&x.y===s)return j4(f,p,r,s,a),!0;if(m=Eo(c,d?r:s,function(_,C){f.encoding.decodeTextureCoordinates(f.vertices,_,Hd);let V=Ew(g,e.tile,Hd,Hd);return u?d?V.x-r:V.y-s:d?r-V.x:s-V.y}),m<0){if(m=~m,m>0&&m<c.length)return lat(t,g,e.tile,f,c[m-1],c[m],r,s,d,a),!0}else return j4(f,c[m],r,s,a),!0}return!1}var uat=[new h,new h,new h,new h];function mat(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=uat;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var UV=kV;function nr(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.showWaterEffect=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=_n.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new be,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(nr.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(nr.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(nr.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(nr.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new be,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new B(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=ae.clone(ae.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0}Object.defineProperties(nr.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=se.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(l(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){hs.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){km.setOwner(e,this,"_clippingPolygons")}}});function hat(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}nr.prototype.update=function(e){this._imageryLayers._update()};function fat(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}nr.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(hat)})),fat(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)nm._freeVertexArray(t[i]);t.length=0};nr.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let o=0,r=t.length;o<r;++o){let s=t[o];l(s)&&(s.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e);let i=this._clippingPolygons;l(i)&&i.enabled&&(i.update(e),i.queueCommands(e)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};nr.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=Ue.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:nc.LESS}}),this._blendRenderState=Ue.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:nc.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=Ye(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ue.fromCache(s),s=Ye(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ue.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&UV.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.verticalExaggeration,i=e.verticalExaggerationRelativeHeight,o=this._oldVerticalExaggeration!==n||this._oldVerticalExaggerationRelativeHeight!==i;this._oldVerticalExaggeration=n,this._oldVerticalExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let d=0,u=c.length;d<u;++d){let m=c[d],p=m.data.tileBoundingRegion;Mat(this,m,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function Pge(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}nr.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)Pge(t[n],e)};nr.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};nr.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};nr.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Kn.CULLED_BUT_NEEDED,o=n.terrainState),nm.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==mr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,nm.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var pat=new ce,vge=new ae,bat=new ae,gat=new he;function AD(e,t){if(t.west<t.east)return t;let n=ae.clone(t,bat);return ae.center(e,gat).longitude>0?n.east=W.PI:n.west=-W.PI,n}function wge(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!ae.equals(e.cartographicLimitRectangle,ae.MAX_VALUE))}nr.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=wge(this,t);if(t.fog.enabled&&!o&&W.fog(i,t.fog.density)>=1)return mr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return mr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let d=AD(e.rectangle,this.cartographicLimitRectangle),u=ae.simpleIntersection(d,e.rectangle,vge);if(!l(u))return mr.NONE;if(ae.equals(u,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==oe.SCENE3D&&(c=pat,ce.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===oe.MORPHING&&l(r.renderedMesh)&&(c=ce.union(s.boundingSphere,c,c))),!l(c))return mr.PARTIAL;let m=this._clippingPlanes;if(l(m)&&m.enabled){let _=m.computeIntersectionWithBoundingVolume(c);if(e.isClipped=_!==Jt.INSIDE,_===Jt.OUTSIDE)return mr.NONE}let p=this._clippingPolygons;if(l(p)&&p.enabled){let _=p.computeIntersectionWithBoundingVolume(s);e.isClipped=_!==Jt.OUTSIDE}let g,f=a.computeVisibility(c);if(f===Jt.OUTSIDE?g=mr.NONE:f===Jt.INTERSECTING?g=mr.PARTIAL:f===Jt.INSIDE&&(g=mr.FULL),g===mr.NONE)return g;let x=t.mode===oe.SCENE3D&&t.camera.frustum instanceof an;if(t.mode===oe.SCENE3D&&!x&&l(n)&&!o){let _=r.occludeePointInScaledSpace;return!l(_)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(_,s.minimumHeight)?g:mr.NONE}return g};nr.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var yat=[],xat=[];nr.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=yat;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===co.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let m=s[a],p=m.loadingImagery,g=!l(p)||p.state===ai.FAILED||p.state===ai.INVALID,f=(m.loadingImagery||m.readyImagery).imageryLayer._layerIndex;i[f]=g&&i[f]}let d=this.quadtree._lastSelectionFrameNumber,u=xat;for(u.length=0,u.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);u.length>0;){let m=u.pop(),p=m._lastSelectionResultFrame===d?m._lastSelectionResult:Kn.NONE;if(p===Kn.RENDERED){let g=m.data;if(!l(g))continue;if(!o&&m.data.terrainState===co.READY)return!1;let f=m.data.imagery;for(a=0,c=f.length;a<c;++a){let x=f[a],_=x.loadingImagery,C=!l(_)||_.state===ai.FAILED||_.state===ai.INVALID,V=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(C&&!i[V])return!1}}else p===Kn.REFINED&&u.push(m.southwestChild,m.southeastChild,m.northwestChild,m.northeastChild)}return!0};var _at=new h;nr.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,_at),a=h.magnitude(s);return a<W.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var Ege=new M,FD=new M,Tat=new se,Sat=new se,Cat=new se,Vat=new h,Ige=new h,Lat=new h,Rat=new h;nr.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let d=i[a];l(d.readyImagery)&&d.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Zat=[new h,new h,new h,new h];function Xge(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Zat;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}nr.prototype.computeDistanceToTile=function(e,t){Gat(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,d=Math.abs(c-r),u=Math.abs(c-s);d>u?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function Gat(e,t,n){let i=e.data;i===void 0&&(i=e.data=new nm);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new Mu({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,d=e,u=i.mesh,m=i.terrainData;if(u!==void 0&&u.minimumHeight!==void 0&&u.maximumHeight!==void 0)r.minimumHeight=u.minimumHeight,r.maximumHeight=u.maximumHeight,c=!0;else if(m!==void 0&&m._minimumHeight!==void 0&&m._maximumHeight!==void 0)r.minimumHeight=m._minimumHeight,r.maximumHeight=m._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let f=g.mesh,x=g.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0){r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}d=p}if(d!==void 0){let p=n.verticalExaggeration,g=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=_r.getHeight(r.minimumHeight,p,g),r.maximumHeight=_r.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=En.clone(u.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=ce.clone(u.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(u.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=Xge(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=Xge(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=d,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}nr.prototype.isDestroyed=function(){return!1};nr.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),me(this)};function Eat(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,d;for(d=0;d<c;++d)if(o=a[d],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=d;break}if(s!==-1){let u=s+e;if(o=a[u],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,u);for(d=s;d<u;++d)a[d].freeResources();a.splice(s,e)}return!0}}nr.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,d=c.length,u=-1,m=0;for(a=0;a<d;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)u===-1&&(u=a),++m;else if(u!==-1)break}if(u===-1)return;let p=u+m;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=Eat(m,e,n),s.state=js.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=js.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Kn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};nr.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],d=c.loadingImagery;if(l(d)||(d=c.readyImagery),d.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};nr.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};nr.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var Iat=new M,Xat=new M;function Wge(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=M.multiplyByPoint(i,this.properties.rtc,Ige);return M.setTranslation(i,o,Ege),Ege},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=M.multiplyByPoint(i,this.properties.rtc,Ige);return M.setTranslation(i,r,FD),M.multiply(o,FD,FD),FD},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?M.multiply(e.context.uniformState.view,i.modelMatrix,Iat):M.IDENTITY;return M.inverseTranspose(o,Xat)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new se(0,0,.5,1),fillHighlightColor:new B(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new D(65e5,9e6),nightFadeDistance:new D(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new M,tileRectangle:new se,verticalExaggerationAndRelativeHeight:new D(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new D,southMercatorYAndOneOverHeight:new D,waterMask:void 0,waterMaskTranslationAndScale:new se,minMaxHeight:new D,scaleAndBias:new M,clippingPlanesEdgeColor:B.clone(B.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new se,frontFaceAlphaByDistance:new se,backFaceAlphaByDistance:new se,localizedTranslucencyRectangle:new se,undergroundColor:B.clone(B.TRANSPARENT),undergroundColorAlphaByDistance:new se,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?Tt(n,t.materialUniformMap):n}function Wat(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Pat(e,r,o),i.wireframeVertexArray.mesh=o}}function Pat(e,t,n){let o={indices:n.indices,primitiveType:Fe.TRIANGLES};Fn.toWireframe(o);let r=o.indices,s=xt.createIndexBuffer({context:e,typedArray:r,usage:Me.STATIC_DRAW,indexDatatype:Ae.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ti({context:e,attributes:t._attributes,indexBuffer:s})}var Fge,Age,MD;(function(){let e=new Gt({geometry:Lm.fromDimensions({dimensions:new h(2,2,2)})}),t=new Gt({geometry:new Tb({radius:1})}),n=new M,i,o;function r(s){return new In({geometryInstances:s,appearance:new dn({translucent:!1,flat:!0}),asynchronous:!1})}Fge=function(s,a){return s===i||(MD(),i=s,n=M.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Kt.fromColor(a),o=r(e)),o},Age=function(s,a){return s===i||(MD(),i=s,n=M.fromTranslation(s.center,n),n=M.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Kt.fromColor(a),o=r(t)),o},MD=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var vat=new se(0,0,0,0),wat={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Fat=B.TRANSPARENT,Aat=new Ut;function Mat(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new UV(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Ve=r.credits;for(let ct=0,Di=Ve.length;ct<Di;++ct)o.addCreditToNextFrame(Ve[ct])}let s=Bt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let d=n.cameraUnderground,u=n.globeTranslucencyState,m=u.translucent,p=u.frontFaceAlphaByDistance,g=u.backFaceAlphaByDistance,f=u.rectangle,x=y(e.undergroundColor,Fat),_=y(e.undergroundColorAlphaByDistance,Aat),C=wge(e,n)&&n.mode===oe.SCENE3D&&x.alpha>0&&(_.nearValue>0||_.farValue>0),V=e.lambertDiffuseMultiplier,L=e.vertexShadowDarkness,Z=e.hasWaterMask&&l(a),G=Z&&e.showWaterEffect,I=e.oceanNormalMap,v=G&&l(I),P=e.terrainProvider,w=l(P)&&e.terrainProvider.hasVertexNormals,F=n.fog.enabled&&n.fog.renderable&&!d,b=e.showGroundAtmosphere&&n.mode===oe.SCENE3D,R=_n.castShadows(e.shadows)&&!m,E=_n.receiveShadows(e.shadows)&&!m,X=e.hueShift,A=e.saturationShift,N=e.brightnessShift,O=!(W.equalsEpsilon(X,0,W.EPSILON7)&&W.equalsEpsilon(A,0,W.EPSILON7)&&W.equalsEpsilon(N,0,W.EPSILON7)),U=!1;if(b){let Ve=h.magnitude(n.camera.positionWC),ct=e.nightFadeOutDistance;U=Ve>ct}Z&&--s,v&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=u.numberOfTextureUniforms;let Y=i.renderedMesh,k=Y.center,H=Y.encoding,J=i.tileBoundingRegion,te=n.verticalExaggeration,z=n.verticalExaggerationRelativeHeight,q=te!==1,ee=H.hasGeodeticSurfaceNormals,fe=Tat,_e=0,le=0,ye=0,Te=0,Xe=!1;if(n.mode!==oe.SCENE3D){let Ve=n.mapProjection,ct=Ve.project(ae.southwest(t.rectangle),Lat),Di=Ve.project(ae.northeast(t.rectangle),Rat);if(fe.x=ct.x,fe.y=ct.y,fe.z=Di.x,fe.w=Di.y,n.mode!==oe.MORPHING&&(k=Vat,k.x=0,k.y=(fe.z+fe.x)*.5,k.z=(fe.w+fe.y)*.5,fe.x-=k.y,fe.y-=k.z,fe.z-=k.y,fe.w-=k.z),n.mode===oe.SCENE2D&&H.quantization===Qs.BITS12){let mt=1/(Math.pow(2,12)-1)*.5,_o=(fe.z-fe.x)*mt,fr=(fe.w-fe.y)*mt;fe.x-=_o,fe.y-=fr,fe.z+=_o,fe.w+=fr}Ve instanceof Zi&&(_e=t.rectangle.south,le=t.rectangle.north,ye=Zi.geodeticLatitudeToMercatorAngle(_e),Te=1/(Zi.geodeticLatitudeToMercatorAngle(le)-ye),Xe=!0)}let Le=wat;Le.frameState=n,Le.surfaceTile=i,Le.hasWaterMask=Z,Le.showReflectiveOcean=G,Le.showOceanWaves=v,Le.enableLighting=e.enableLighting,Le.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Le.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Le.showGroundAtmosphere=b,Le.atmosphereLightIntensity=e.atmosphereLightIntensity,Le.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Le.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Le.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Le.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Le.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Le.perFragmentGroundAtmosphere=U,Le.hasVertexNormals=w,Le.useWebMercatorProjection=Xe,Le.clippedByBoundaries=i.clippedByBoundaries,Le.hasGeodeticSurfaceNormals=ee,Le.hasExaggeration=q;let ke=i.imagery,Oe=0,at=ke.length,Mt=e.showSkirts&&!d&&!m,Lt=e.backFaceCulling&&!d&&!m,Ie=Lt?e._renderState:e._disableCullingRenderState,je=Lt?e._blendRenderState:e._disableCullingBlendRenderState,et=Ie,He=e._firstPassInitialColor,Dt=n.context;if(l(e._debug.boundingSphereTile)||MD(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Ve=e._drawCommands.length;for(let ct=0;ct<Ve;++ct)e._uniformMaps[ct]=Wge(n,e)}do{let Ve=0,ct,Di;if(e._drawCommands.length<=e._usedDrawCommands?(ct=new tt,ct.owner=t,ct.cull=!1,ct.boundingVolume=new ce,ct.orientedBoundingBox=void 0,Di=Wge(n,e),e._drawCommands.push(ct),e._uniformMaps.push(Di)):(ct=e._drawCommands[e._usedDrawCommands],Di=e._uniformMaps[e._usedDrawCommands]),ct.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Ta=J.boundingVolume,bo=J.boundingSphere;l(Ta)?Fge(Ta,B.RED).update(n):l(bo)&&Age(bo,B.RED).update(n)}let mt=Di.properties;se.clone(He,mt.initialColor),mt.oceanNormalMap=I,mt.lightingFadeDistance.x=e.lightingFadeOutDistance,mt.lightingFadeDistance.y=e.lightingFadeInDistance,mt.nightFadeDistance.x=e.nightFadeOutDistance,mt.nightFadeDistance.y=e.nightFadeInDistance,mt.atmosphereLightIntensity=e.atmosphereLightIntensity,mt.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,mt.atmosphereMieCoefficient=e.atmosphereMieCoefficient,mt.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,mt.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,mt.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,mt.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let _o=d?g:p,fr=d?p:g;l(_o)&&(se.fromElements(_o.near,_o.nearValue,_o.far,_o.farValue,mt.frontFaceAlphaByDistance),se.fromElements(fr.near,fr.nearValue,fr.far,fr.farValue,mt.backFaceAlphaByDistance)),se.fromElements(_.near,_.nearValue,_.far,_.farValue,mt.undergroundColorAlphaByDistance),B.clone(x,mt.undergroundColor),mt.lambertDiffuseMultiplier=V,mt.vertexShadowDarkness=L;let Zc=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Zc&&B.clone(e.fillHighlightColor,mt.fillHighlightColor),mt.verticalExaggerationAndRelativeHeight.x=te,mt.verticalExaggerationAndRelativeHeight.y=z,mt.center3D=Y.center,h.clone(k,mt.rtc),se.clone(fe,mt.tileRectangle),mt.southAndNorthLatitude.x=_e,mt.southAndNorthLatitude.y=le,mt.southMercatorYAndOneOverHeight.x=ye,mt.southMercatorYAndOneOverHeight.y=Te;let Zr=Sat,ss=AD(t.rectangle,e.cartographicLimitRectangle),Ne=Cat,ut=AD(t.rectangle,f);h.fromElements(X,A,N,mt.hsbShift);let Je=t.rectangle,$e=1/Je.width,pt=1/Je.height;Zr.x=(ss.west-Je.west)*$e,Zr.y=(ss.south-Je.south)*pt,Zr.z=(ss.east-Je.west)*$e,Zr.w=(ss.north-Je.south)*pt,se.clone(Zr,mt.localizedCartographicLimitRectangle),Ne.x=(ut.west-Je.west)*$e,Ne.y=(ut.south-Je.south)*pt,Ne.z=(ut.east-Je.west)*$e,Ne.w=(ut.north-Je.south)*pt,se.clone(Ne,mt.localizedTranslucencyRectangle);let It=F&&W.fog(t._distance,n.fog.density)>W.EPSILON3;O=O&&(It||b);let yn=!1,po=!1,rr=!1,Oa=!1,Ya=!1,as=!1,Qn=!1,xs=!1,Gr=!1,hl=!1;for(;Ve<s&&Oe<at;){let Ta=ke[Oe],bo=Ta.readyImagery;if(++Oe,!l(bo)||bo.imageryLayer.alpha===0)continue;let T0=Ta.useWebMercatorT?bo.textureWebMercator:bo.texture,di=bo.imageryLayer;l(Ta.textureTranslationAndScale)||(Ta.textureTranslationAndScale=di._calculateTextureTranslationAndScale(t,Ta)),mt.dayTextures[Ve]=T0,mt.dayTextureTranslationAndScale[Ve]=Ta.textureTranslationAndScale,mt.dayTextureTexCoordsRectangle[Ve]=Ta.textureCoordinateRectangle,mt.dayTextureUseWebMercatorT[Ve]=Ta.useWebMercatorT,mt.dayTextureAlpha[Ve]=di.alpha,as=as||mt.dayTextureAlpha[Ve]!==1,mt.dayTextureNightAlpha[Ve]=di.nightAlpha,Qn=Qn||mt.dayTextureNightAlpha[Ve]!==1,mt.dayTextureDayAlpha[Ve]=di.dayAlpha,Qn=Qn||mt.dayTextureDayAlpha[Ve]!==1,mt.dayTextureBrightness[Ve]=di.brightness,yn=yn||mt.dayTextureBrightness[Ve]!==ka.DEFAULT_BRIGHTNESS,mt.dayTextureContrast[Ve]=di.contrast,po=po||mt.dayTextureContrast[Ve]!==ka.DEFAULT_CONTRAST,mt.dayTextureHue[Ve]=di.hue,rr=rr||mt.dayTextureHue[Ve]!==ka.DEFAULT_HUE,mt.dayTextureSaturation[Ve]=di.saturation,Oa=Oa||mt.dayTextureSaturation[Ve]!==ka.DEFAULT_SATURATION,mt.dayTextureOneOverGamma[Ve]=1/di.gamma,Ya=Ya||mt.dayTextureOneOverGamma[Ve]!==1/ka.DEFAULT_GAMMA,mt.dayTextureSplit[Ve]=di.splitDirection,xs=xs||mt.dayTextureSplit[Ve]!==0;let Gc=mt.dayTextureCutoutRectangles[Ve];if(l(Gc)||(Gc=mt.dayTextureCutoutRectangles[Ve]=new se),se.clone(se.ZERO,Gc),l(di.cutoutRectangle)){let So=AD(Je,di.cutoutRectangle),su=ae.simpleIntersection(So,Je,vge);Gr=l(su)||Gr,Gc.x=(So.west-Je.west)*$e,Gc.y=(So.south-Je.south)*pt,Gc.z=(So.east-Je.west)*$e,Gc.w=(So.north-Je.south)*pt}let nd=mt.colorsToAlpha[Ve];l(nd)||(nd=mt.colorsToAlpha[Ve]=new se);let ru=l(di.colorToAlpha)&&di.colorToAlphaThreshold>0;if(hl=hl||ru,ru){let So=di.colorToAlpha;nd.x=So.red,nd.y=So.green,nd.z=So.blue,nd.w=di.colorToAlphaThreshold}else nd.w=-1;if(l(bo.credits)){let So=bo.credits;for(let su=0,TS=So.length;su<TS;++su)o.addCreditToNextFrame(So[su])}++Ve}mt.dayTextures.length=Ve,mt.waterMask=a,se.clone(c,mt.waterMaskTranslationAndScale),mt.minMaxHeight.x=H.minimumHeight,mt.minMaxHeight.y=H.maximumHeight,M.clone(H.matrix,mt.scaleAndBias);let To=e._clippingPlanes,Hr=l(To)&&To.enabled&&t.isClipped;Hr&&(mt.clippingPlanesEdgeColor=B.clone(To.edgeColor,mt.clippingPlanesEdgeColor),mt.clippingPlanesEdgeWidth=To.edgeWidth);let rp=e._clippingPolygons,fl=l(rp)&&rp.enabled&&t.isClipped;Le.numberOfDayTextures=Ve,Le.applyBrightness=yn,Le.applyContrast=po,Le.applyHue=rr,Le.applySaturation=Oa,Le.applyGamma=Ya,Le.applyAlpha=as,Le.applyDayNightAlpha=Qn,Le.applySplit=xs,Le.enableFog=It,Le.enableClippingPlanes=Hr,Le.clippingPlanes=To,Le.enableClippingPolygons=fl,Le.clippingPolygons=rp,Le.hasImageryLayerCutout=Gr,Le.colorCorrect=O,Le.highlightFillTile=Zc,Le.colorToAlpha=hl,Le.showUndergroundColor=C,Le.translucent=m;let sp=i.renderedMesh.indices.length;Mt||(sp=i.renderedMesh.indexCountWithoutSkirts),ct.shaderProgram=e._surfaceShaderSet.getShaderProgram(Le),ct.castShadows=R,ct.receiveShadows=E,ct.renderState=et,ct.primitiveType=Fe.TRIANGLES,ct.vertexArray=i.vertexArray||i.fill.vertexArray,ct.count=sp,ct.uniformMap=Di,ct.pass=Ge.GLOBE,e._debug.wireframe&&(Wat(Dt,e,t),l(i.wireframeVertexArray)&&(ct.vertexArray=i.wireframeVertexArray,ct.primitiveType=Fe.LINES,ct.count=sp*2));let Ha=ct.boundingVolume,Er=ct.orientedBoundingBox;n.mode!==oe.SCENE3D?(ce.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,J.minimumHeight,J.maximumHeight,Ha),h.fromElements(Ha.center.z,Ha.center.x,Ha.center.y,Ha.center),n.mode===oe.MORPHING&&(Ha=ce.union(J.boundingSphere,Ha,Ha))):(ct.boundingVolume=ce.clone(J.boundingSphere,Ha),ct.orientedBoundingBox=En.clone(J.boundingVolume,Er)),ct.dirty=!0,m&&u.updateDerivedCommands(ct,n),Pge(ct,n),et=je,He=vat}while(Oe<at)}var Iw=nr;var IZi=T(S(),1);function Mge(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=ae.clone(ae.MAX_VALUE)}Object.defineProperties(Mge.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Ut.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Ut.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=ae.clone(ae.MAX_VALUE)),ae.clone(e,this._rectangle)}}});var Xw=Mge;var NZi=T(S(),1);function Ws(){this._layers=[],this.layerAdded=new be,this.layerRemoved=new be,this.layerMoved=new be,this.layerShownOrHidden=new be}Object.defineProperties(Ws.prototype,{length:{get:function(){return this._layers.length}}});Ws.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};Ws.prototype.addImageryProvider=function(e,t){let n=new ka(e);return this.add(n,t),n};Ws.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};Ws.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};Ws.prototype.contains=function(e){return this.indexOf(e)!==-1};Ws.prototype.indexOf=function(e){return this._layers.indexOf(e)};Ws.prototype.get=function(e){return this._layers[e]};function ND(e,t){return e.indexOf(t)}function Nge(e,t,n){let i=e._layers;if(t=W.clamp(t,0,i.length-1),n=W.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}Ws.prototype.raise=function(e){let t=ND(this._layers,e);Nge(this,t,t+1)};Ws.prototype.lower=function(e){let t=ND(this._layers,e);Nge(this,t,t-1)};Ws.prototype.raiseToTop=function(e){let t=ND(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};Ws.prototype.lowerToBottom=function(e){let t=ND(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var Nat=new ae;function kge(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];ae.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],d=c.readyImagery;if(!l(d)||!d.imageryLayer.ready)continue;let u=d.imageryLayer.imageryProvider;if(n&&!l(u.pickFeatures)||!ae.contains(d.rectangle,t))continue;let m=Nat,p=1/1024;m.west=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),m.east=W.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),m.south=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),m.north=W.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),ae.contains(m,t)&&i(d)}}Ws.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[];if(kge(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};Ws.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(kge(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let d=s[c],u=r[c];if(l(d)&&d.length>0)for(let m=0;m<d.length;++m){let p=d[m];p.imageryLayer=u,l(p.position)||(p.position=i),a.push(p)}}return a})};Ws.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};Ws.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};Ws.prototype.isDestroyed=function(){return!1};Ws.prototype.destroy=function(){return this.removeAll(!0),me(this)};Ws.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var Ww=Ws;var xGi=T(S(),1);var BZi=T(S(),1);function Uge(e){this._ellipsoid=new Xb(e.ellipsoid,h.ZERO)}Object.defineProperties(Uge.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var Pw=Uge;var JZi=T(S(),1);function rl(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Kn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=js.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}rl.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new rl({tilingScheme:e,x:s,y:r,level:0});return i};rl.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],ae.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],ae.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(rl.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new rl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new rl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new rl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new rl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<js.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});rl.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};rl.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};rl.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};rl.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};rl.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};rl.prototype.freeResources=function(){this.state=js.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),kD(this._southwestChild),this._southwestChild=void 0,kD(this._southeastChild),this._southeastChild=void 0,kD(this._northwestChild),this._northwestChild=void 0,kD(this._northeastChild),this._northeastChild=void 0};function kD(e){l(e)&&e.freeResources()}var vw=rl;var qZi=T(S(),1);function UD(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}UD.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};UD.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),Dge(this,t)),t=i}};function Dge(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}UD.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&Dge(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var ww=UD;function om(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new ww,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new Pw({ellipsoid:n}),this._tileLoadProgressEvent=new be,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(om.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});om.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function kat(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Oge(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}om.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==js.START&&e(t),t=t.replacementNext};om.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};om.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};om.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function Oge(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}om.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(kat(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Oge(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};om.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Oat(this,e),ect(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function Uat(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=be.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}om.prototype.endFrame=function(e){!e.passes.render||e.mode===oe.MORPHING||(Qat(this,e),$at(this,e),Uat(this,e))};om.prototype.isDestroyed=function(){return!1};om.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var Aw,Bge=new he;function Dat(e,t){let n=ae.center(e.rectangle,Bge),i=n.longitude-Aw.longitude,o=n.latitude-Aw.latitude;n=ae.center(t.rectangle,Bge);let r=n.longitude-Aw.longitude,s=n.latitude-Aw.latitude;return i*i+o*o-(r*r+s*s)}var Bat=new h,Fw=[];function Oat(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles)){let x=r.tilingScheme;if(l(x)){let _=r.tilingScheme;e._levelZeroTiles=vw.createLevelZeroTiles(_);let C=e._levelZeroTiles.length;if(Fw.length<C)for(Fw=new Array(C),o=0;o<C;++o)Fw[o]===void 0&&(Fw[o]=new Mw)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;Aw=t.camera.positionCartographic,a.sort(Dat);let d=e._addHeightCallbacks,u=e._removeHeightCallbacks,m=t.frameNumber,p;if(d.length>0||u.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(m,d,u);d.length=0,u.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let f=M.getTranslation(g.transform,Bat);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(f,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?Ua(e,s,r,t,c,!1,Fw[o]):(i0(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=m}function i0(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function Mw(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Yge(){this.southwest=new Mw,this.southeast=new Mw,this.northwest=new Mw,this.northeast=new Mw}Yge.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var nj=new Array(31);for(let e=0;e<nj.length;++e)nj[e]=new Yge;function Yat(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Kat(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,d=n.northwestChild,u=n.northeastChild,m=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===m?n._lastSelectionResult:Kn.NONE,g=e.tileProvider;if(s||i){let f=Kn.originalResult(p)===Kn.RENDERED,x=Kn.originalResult(p)===Kn.CULLED||p===Kn.NONE,_=n.state===js.DONE,C=f||x||_;if(C||l(g.canRenderWithoutLosingDetail)&&(C=g.canRenderWithoutLosingDetail(n)),C){s&&i0(e,e._tileLoadQueueMedium,n,t),DD(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&i0(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&d.upsampledFromParent&&u.upsampledFromParent){DD(e,n),i0(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(d),e._tileReplacementQueue.markTileRendered(u),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.REFINED;let x=e._tilesToRender.length,_=e._tileLoadQueueLow.length,C=e._tileLoadQueueMedium.length,V=e._tileLoadQueueHigh.length,L=e._tileToUpdateHeights.length;if(Hat(e,a,c,d,u,t,i,o),x!==e._tilesToRender.length){let Z=o.allAreRenderable,G=o.anyWereRenderedLastFrame,I=o.notYetRenderableCount,v=!1;if(!Z&&!G){let P=e._tilesToRender;for(let F=x;F<P.length;++F){let b=P[F];for(;b!==void 0&&b._lastSelectionResult!==Kn.KICKED&&b!==n;)b._lastSelectionResult=Kn.kick(b._lastSelectionResult),b=b.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=L,DD(e,n),n._lastSelectionResult=Kn.RENDERED;let w=p===Kn.RENDERED;!w&&I>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=_,e._tileLoadQueueMedium.length=C,e._tileLoadQueueHigh.length=V,i0(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,v=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=w,w||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!v&&i0(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Kn.RENDERED,DD(e,n),i0(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Kn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Hat(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,d=e._tileProvider,u=e._occluders,m=nj[t.level],p=m.southwest,g=m.southeast,f=m.northwest,x=m.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Ua(e,t,d,r,u,s,p),Ua(e,n,d,r,u,s,g),Ua(e,i,d,r,u,s,f),Ua(e,o,d,r,u,s,x)):(Ua(e,i,d,r,u,s,f),Ua(e,t,d,r,u,s,p),Ua(e,o,d,r,u,s,x),Ua(e,n,d,r,u,s,g)):c.latitude<t.rectangle.north?(Ua(e,n,d,r,u,s,g),Ua(e,t,d,r,u,s,p),Ua(e,o,d,r,u,s,x),Ua(e,i,d,r,u,s,f)):(Ua(e,o,d,r,u,s,x),Ua(e,i,d,r,u,s,f),Ua(e,n,d,r,u,s,g),Ua(e,t,d,r,u,s,p)),m.combine(a)}function zat(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&ae.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&ae.contains(n,e._cameraReferenceFrameOriginCartographic)}function Ua(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==mr.NONE)return Yat(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,zat(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&i0(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Kn.NONE;c!==Kn.CULLED_BUT_NEEDED&&c!==Kn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Kn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(i0(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Kn.CULLED):t._lastSelectionResult=Kn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Kat(e,t,n){if(t.mode===oe.SCENE2D||t.camera.frustum instanceof an||t.camera.frustum instanceof Pr)return Jat(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=W.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function Jat(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,d=e._tileProvider.getLevelMaximumGeometricError(n.level),u=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),m=d/u;return t.fog.enabled&&t.mode!==oe.SCENE2D&&(m-=W.fog(n._distance,t.fog.density)*t.fog.sse),m/=t.pixelRatio,m}function DD(e,t){e._tilesToRender.push(t)}function Qat(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=_i()+e._loadQueueTimeSlice,s=e._tileProvider,a=ej(e,t,s,r,n,!1);a=ej(e,t,s,r,i,a),ej(e,t,s,r,o,a)}function jat(e,t){return e._loadPriority-t._loadPriority}function ej(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(jat);for(let s=0,a=o.length;s<a&&(_i()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var DV=new pn,tj=new he,yy=new h,qat=[];function $at(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=qat;n.length=0;let i=e._tileToUpdateHeights,o=_i(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,d=e.tileProvider.tilingScheme.ellipsoid,u;for(;i.length>0;){let m=i[0];if(!l(m.data)||!l(m.data.mesh)){let x=m._lastSelectionResultFrame===e._lastSelectionFrameNumber?m._lastSelectionResult:Kn.NONE;(x===Kn.RENDERED||x===Kn.CULLED_BUT_NEEDED)&&n.push(m),i.shift(),e._lastTileIndex=0;continue}let p=m.customData,g=p.length,f=!1;for(u=e._lastTileIndex;u<g;++u){let x=p[u],_=m.data.terrainData,C=l(_)&&_.wasCreatedByUpsampling();if(m.level>x.level&&!C){if(l(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,d)),a===oe.SCENE3D){let L=d.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,DV.direction),Z=d.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,DV.origin);if(!l(Z)){let G=0;l(m.data.tileBoundingRegion)&&(G=m.data.tileBoundingRegion.minimumHeight);let I=Math.min(G,-11500),v=h.multiplyByScalar(L,Math.abs(I)+1,yy);h.subtract(x.positionOnEllipsoidSurface,v,DV.origin)}}else he.clone(x.positionCartographic,tj),tj.height=-11500,c.project(tj,yy),h.fromElements(yy.z,yy.x,yy.y,yy),h.clone(yy,DV.origin),h.clone(h.UNIT_X,DV.direction);let V=m.data.pick(DV,a,c,!1,yy);l(V)&&(l(x.callback)&&x.callback(V),x.level=m.level)}if(_i()>=s){f=!0;break}}if(f){e._lastTileIndex=u;break}else e._lastTileIndex=0,i.shift()}for(u=0;u<n.length;u++)i.push(n[u])}function ect(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var Nw=om;function Lh(e){e=y(e,ne.default);let t=new kf({ellipsoid:e}),n=new Ww;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new fw,this._material=void 0,this._surface=new Nw({tileProvider:new Iw({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new be,this._undergroundColor=B.clone(B.BLACK),this._undergroundColorAlphaByDistance=new Ut(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new Xw,oj(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new Ee({url:rn("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=ne.WGS84.equals(e),this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=W.PI_OVER_TWO*e.minimumRadius,this.lightingFadeInDistance=W.PI*e.minimumRadius,this.nightFadeOutDistance=W.PI_OVER_TWO*e.minimumRadius,this.nightFadeInDistance=5*W.PI_OVER_TWO*e.minimumRadius,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=_n.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Lh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=ae.clone(ae.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&oj(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,oj(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=B.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Ut.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function oj(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[Um,ZV];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(mw),e._surfaceShaderSet.baseVertexShaderSource=new De({sources:[Um,ZV,hw],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new De({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function tct(e){return function(t,n){let i=ce.distanceSquaredTo(t.pickBoundingSphere,e),o=ce.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var nct=[],ict={start:0,stop:0};Lh.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=nct;s.length=0;let a=this._surface._tilesToRender,c=a.length,d,u;for(u=0;u<c;++u){d=a[u];let p=d.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==oe.SCENE3D)p.pickBoundingSphere=g=ce.fromRectangleWithHeights2D(d.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))ce.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let f=qn.raySphere(e,g,ict);l(f)&&s.push(p)}s.sort(tct(e.origin));let m;for(c=s.length,u=0;u<c&&(m=s[u].pick(e,t.mode,t.mapProjection,n,i),!l(m));++u);return m};var oct=new he;Lh.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==oe.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,oct);n=this._ellipsoid.cartographicToCartesian(i,n)}return n};var rct=new h,Hge=new h,sct=new he,act=new pn;function ij(e,t){return l(e)&&ae.contains(e.rectangle,t)?e:void 0}Lh.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!ae.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=ij(n._southwestChild,e)||ij(n._southeastChild,e)||ij(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,rct),d=act,u=a.geodeticSurfaceNormal(c,d.direction),m=a.getSurfaceNormalIntersectionWithZAxis(c,11500,d.origin);if(!l(m)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let f=Math.min(y(g,0),-11500),x=h.multiplyByScalar(u,Math.abs(f)+1,Hge);h.subtract(c,x,d.origin)}let p=n.data.pick(d,void 0,s,!1,Hge);if(l(p))return a.cartesianToCartographic(p,sct).height};Lh.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Lh.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let d=this;a.fetchImage().then(function(u){c===d._oceanNormalMapResource.url&&(d._oceanNormalMap=d._oceanNormalMap&&d._oceanNormalMap.destroy(),d._oceanNormalMap=new Pt({context:e.context,source:u}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===oe.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.showWaterEffect=this.showWaterEffect,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Lh.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Lh.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Lh.prototype.isDestroyed=function(){return!1};Lh.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),me(this)};var kw=Lh;var oIi=T(S(),1);var pEi=T(S(),1);var sEi=T(S(),1);var $Gi=T(S(),1);function cct(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var Uw=cct;var sye={},lct=32.184,dct=2451545,zge=-.0529921,Kge=-.1059842,Jge=13.0120009,Qge=13.3407154,jge=.9856003,qge=26.4057084,$ge=13.064993,eye=.3287146,tye=1.7484877,nye=-.1589763,iye=.0036096,oye=.1643573,rye=12.9590088,rj=new j;sye.ComputeMoon=function(e,t){l(e)||(e=j.now()),rj=j.addSeconds(e,lct,rj);let n=j.totalDays(rj)-dct,i=n/zn.DAYS_PER_JULIAN_CENTURY,o=(125.045+zge*n)*W.RADIANS_PER_DEGREE,r=(250.089+Kge*n)*W.RADIANS_PER_DEGREE,s=(260.008+Jge*n)*W.RADIANS_PER_DEGREE,a=(176.625+Qge*n)*W.RADIANS_PER_DEGREE,c=(357.529+jge*n)*W.RADIANS_PER_DEGREE,d=(311.589+qge*n)*W.RADIANS_PER_DEGREE,u=(134.963+$ge*n)*W.RADIANS_PER_DEGREE,m=(276.617+eye*n)*W.RADIANS_PER_DEGREE,p=(34.226+tye*n)*W.RADIANS_PER_DEGREE,g=(15.134+nye*n)*W.RADIANS_PER_DEGREE,f=(119.743+iye*n)*W.RADIANS_PER_DEGREE,x=(239.961+oye*n)*W.RADIANS_PER_DEGREE,_=(25.053+rye*n)*W.RADIANS_PER_DEGREE,C=Math.sin(o),V=Math.sin(r),L=Math.sin(s),Z=Math.sin(a),G=Math.sin(c),I=Math.sin(d),v=Math.sin(u),P=Math.sin(m),w=Math.sin(p),F=Math.sin(g),b=Math.sin(f),R=Math.sin(x),E=Math.sin(_),X=Math.cos(o),A=Math.cos(r),N=Math.cos(s),O=Math.cos(a),U=Math.cos(c),Y=Math.cos(d),k=Math.cos(u),H=Math.cos(m),J=Math.cos(p),te=Math.cos(g),z=Math.cos(f),q=Math.cos(x),ee=Math.cos(_),fe=(269.9949+.0031*i-3.8787*C-.1204*V+.07*L-.0172*Z+.0072*I-.0052*F+.0043*E)*W.RADIANS_PER_DEGREE,_e=(66.5392+.013*i+1.5419*X+.0239*A-.0278*N+.0068*O-.0029*Y+9e-4*k+8e-4*te-9e-4*ee)*W.RADIANS_PER_DEGREE,le=(38.3213+13.17635815*n-14e-13*n*n+3.561*C+.1208*V-.0642*L+.0158*Z+.0252*G-.0066*I-.0047*v-.0046*P+.0028*w+.0052*F+.004*b+.0019*R-.0044*E)*W.RADIANS_PER_DEGREE,ye=(13.17635815-14e-13*(2*n)+3.561*X*zge+.1208*A*Kge-.0642*N*Jge+.0158*O*Qge+.0252*U*jge-.0066*Y*qge-.0047*k*$ge-.0046*H*eye+.0028*J*tye+.0052*te*nye+.004*z*iye+.0019*q*oye-.0044*ee*rye)/86400*W.RADIANS_PER_DEGREE;return l(t)||(t=new Uw),t.rightAscension=fe,t.declination=_e,t.rotation=le,t.rotationRate=ye,t};var Dw=sye;function aye(e){(!l(e)||typeof e!="function")&&(e=Dw.ComputeMoon),this._computeFunction=e}var uct=new h,mct=new h,hct=new h;function fct(e,t,n){let i=uct;i.x=Math.cos(e+W.PI_OVER_TWO),i.y=Math.sin(e+W.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=hct;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,mct);return l(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var pct=new $,bct=new we;aye.prototype.evaluate=function(e,t){l(e)||(e=j.now());let n=this._computeFunction(e),i=fct(n.rightAscension,n.declination,t),o=W.zeroToTwoPi(n.rotation),r=we.fromAxisAngle(h.UNIT_Z,o,bct),s=$.fromQuaternion(we.conjugate(r,r),pct);return $.multiply(s,i,i)};var Bw=aye;var BEi=T(S(),1);var gEi=T(S(),1),BV=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates + + vec2 st = czm_ellipsoidTextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var xEi=T(S(),1),OV=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var sj={position:0};function BD(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new ce,this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._modelMatrix=new M,this._computedModelMatrix=new M,this.show=y(e.show,!0),this.material=y(e.material,Oi.fromType(Oi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new tt({owner:y(e._owner,this)}),this._pickCommand=new tt({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function gct(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Ra.createGeometry(Ra.fromDimensions({dimensions:new h(2,2,2),vertexFormat:We.POSITION_ONLY}));return t=ti.fromGeometry({context:e,geometry:n,attributeLocations:sj,bufferUsage:Me.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}BD.prototype.update=function(e){if(!this.show||e.mode!==oe.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=Ue.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),l(this._va)||(this._va=gct(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!M.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(M.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),M.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),ce.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,d=this._useLogDepth!==c;this._useLogDepth=c;let u=this._colorCommand,m,p;(s||a||i||d)&&(m=new De({sources:[OV]}),p=new De({sources:[this.material.shaderSource,BV]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=tn.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:sj}),u.vertexArray=this._va,u.renderState=this._rs,u.shaderProgram=this._sp,u.uniformMap=Tt(this._uniforms,this.material._uniforms),u.executeInClosestFrustum=n);let g=e.commandList,f=e.passes;if(f.render&&(u.boundingVolume=this._boundingSphere,u.debugShowBoundingVolume=this.debugShowBoundingVolume,u.modelMatrix=this._computedModelMatrix,u.pass=n?Ge.TRANSLUCENT:Ge.OPAQUE,g.push(u)),f.pick){let x=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||d)&&(m=new De({sources:[OV]}),p=new De({sources:[this.material.shaderSource,BV],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(m.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=tn.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:m,fragmentShaderSource:p,attributeLocations:sj}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=Tt(Tt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?Ge.TRANSLUCENT:Ge.OPAQUE,g.push(x)}};BD.prototype.isDestroyed=function(){return!1};BD.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),me(this)};var Ow=BD;function Yw(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=rn("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ne.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new Ow({radii:this.ellipsoid.radii,material:Oi.fromType(Oi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new Bw}Object.defineProperties(Yw.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var OD=new $,yct=new $,xct=new h,YD=[];Yw.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(Ft.computeIcrfToFixedMatrix(n,OD))||Ft.computeTemeToPseudoFixedMatrix(n,OD);let i=this._axes.evaluate(n,yct);$.transpose(i,i),$.multiply(OD,i,i);let o=v0.computeMoonPositionInEarthInertialFrame(n,xct);$.multiplyByVector(OD,o,o),M.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=YD,YD.length=0,t.update(e),e.commandList=r,YD.length===1?YD[0]:void 0};Yw.prototype.isDestroyed=function(){return!1};Yw.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),me(this)};var Hw=Yw;var nYi=T(S(),1);var sIi=T(S(),1);var aj=[],cj=[];function _ct(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=aj,d=cj,u,m;for(u=0;u<s;++u)c[u]=e[i+u];for(m=0;m<a;++m)d[m]=e[o+m+1];u=0,m=0;for(let p=i;p<=r;++p){let g=c[u],f=d[m];u<s&&(m>=a||t(g,f,n)<=0)?(e[p]=g,++u):m<a&&(e[p]=f,++m)}}function lj(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);lj(e,t,n,i,r),lj(e,t,n,r+1,o),_ct(e,t,n,i,r,o)}function Tct(e,t,n){let i=e.length,o=Math.ceil(i*.5);aj.length=o,cj.length=o,lj(e,t,n,0,i-1),aj.length=0,cj.length=0}var o0=Tct;var bIi=T(S(),1);function Tc(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var HD=new h;Object.defineProperties(Tc.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,HD),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,HD);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,HD),HD)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});Tc.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new Tc(e,t)};var lye=new h;Tc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,lye),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var Sct=new h;Tc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,Sct),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,lye),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Cct=new h;Tc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return mr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Cct),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?mr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?mr.FULL:mr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?mr.PARTIAL:mr.FULL))}}return mr.NONE};var zD=new h;Tc.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,zD),zD),c=-h.dot(a,o),d=Tc._anyRotationVector(o,a,c),u=Tc._horizonToPlaneNormalDotProduct(e,a,c,d,n[0]);if(!u)return;let m;for(let g=1;g<s;++g){if(m=Tc._horizonToPlaneNormalDotProduct(e,a,c,d,n[g]),!m)return;m<u&&(u=m)}if(u<.0017453283658983088)return;let p=r/u;return h.add(o,h.multiplyByScalar(a,p,zD),zD)};var Vct=[];Tc.computeOccludeePointFromRectangle=function(e,t){t=y(t,ne.default);let n=ae.subsample(e,t,0,Vct),i=ce.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return Tc.computeOccludeePoint(new ce(o,t.minimumRadius),i.center,n)};var Lct=new h;Tc._anyRotationVector=function(e,t,n){let i=h.abs(t,Lct),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var Rct=new h;Tc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,Rct);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>W.EPSILON13)return h.normalize(s,new h)}return o};var dj=new h,Zct=new h,KD=new h,cye=new h;Tc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,dj),s=h.clone(e.center,Zct),a=e.radius,c=h.subtract(s,r,KD),d=h.magnitudeSquared(c),u=a*a;if(d<u)return!1;let m=d-u,p=Math.sqrt(m),f=1/Math.sqrt(d),_=p*f*p;c=h.normalize(c,c);let C=h.add(r,h.multiplyByScalar(c,_,cye),cye),V=Math.sqrt(m-_*_),L=this._rotationVector(s,t,n,r,i),Z=h.fromElements(L.x*L.x*c.x+(L.x*L.y-L.z)*c.y+(L.x*L.z+L.y)*c.z,(L.x*L.y+L.z)*c.x+L.y*L.y*c.y+(L.y*L.z-L.x)*c.z,(L.x*L.z-L.y)*c.x+(L.y*L.z+L.x)*c.y+L.z*L.z*c.z,dj);Z=h.normalize(Z,Z);let G=h.multiplyByScalar(Z,V,dj);L=h.normalize(h.subtract(h.add(C,G,KD),s,KD),KD);let I=h.dot(t,L);L=h.normalize(h.subtract(h.subtract(C,G,L),s,L),L);let v=h.dot(t,L);return I<v?I:v};var zw=Tc;var XIi=T(S(),1);var LIi=T(S(),1);function Bf(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ms,this._perspectiveMatrix=new M,this._infinitePerspective=new M}function uj(e){let{top:t,bottom:n,right:i,left:o,near:r,far:s}=e;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=M.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=M.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Bf.prototype,{projectionMatrix:{get:function(){return uj(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return uj(this),this._infinitePerspective}}});var Gct=new h,Ect=new h,Ict=new h,Xct=new h;Bf.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,d=this.far,u=h.cross(t,n,Gct),m=Ect;h.multiplyByScalar(t,c,m),h.add(e,m,m);let p=Ict;h.multiplyByScalar(t,d,p),h.add(e,p,p);let g=Xct;h.multiplyByScalar(u,a,g),h.add(m,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let f=i[0];return l(f)||(f=i[0]=new se),f.x=g.x,f.y=g.y,f.z=g.z,f.w=-h.dot(g,e),h.multiplyByScalar(u,s,g),h.add(m,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),f=i[1],l(f)||(f=i[1]=new se),f.x=g.x,f.y=g.y,f.z=g.z,f.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(m,g,g),h.subtract(g,e,g),h.cross(u,g,g),h.normalize(g,g),f=i[2],l(f)||(f=i[2]=new se),f.x=g.x,f.y=g.y,f.z=g.z,f.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(m,g,g),h.subtract(g,e,g),h.cross(g,u,g),h.normalize(g,g),f=i[3],l(f)||(f=i[3]=new se),f.x=g.x,f.y=g.y,f.z=g.z,f.w=-h.dot(g,e),f=i[4],l(f)||(f=i[4]=new se),f.x=t.x,f.y=t.y,f.z=t.z,f.w=-h.dot(t,m),h.negate(t,g),f=i[5],l(f)||(f=i[5]=new se),f.x=g.x,f.y=g.y,f.z=g.z,f.w=-h.dot(g,p),this._cullingVolume};Bf.prototype.getPixelDimensions=function(e,t,n,i,o){uj(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};Bf.prototype.clone=function(e){return l(e)||(e=new Bf),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Bf.prototype.equals=function(e){return l(e)&&e instanceof Bf&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Bf.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof Bf&&W.equalsEpsilon(this.right,e.right,t,n)&&W.equalsEpsilon(this.left,e.left,t,n)&&W.equalsEpsilon(this.top,e.top,t,n)&&W.equalsEpsilon(this.bottom,e.bottom,t,n)&&W.equalsEpsilon(this.near,e.near,t,n)&&W.equalsEpsilon(this.far,e.far,t,n)};var sl=Bf;function Jl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new sl,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}Jl.packedLength=6;Jl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Jl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Jl),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function Rh(e){if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(Jl.prototype,{projectionMatrix:{get:function(){return Rh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Rh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Rh(this),this._fovy}},sseDenominator:{get:function(){return Rh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Rh(this),this._offCenterFrustum}}});Jl.prototype.computeCullingVolume=function(e,t,n){return Rh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Jl.prototype.getPixelDimensions=function(e,t,n,i,o){return Rh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Jl.prototype.clone=function(e){return l(e)||(e=new Jl),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Jl.prototype.equals=function(e){return!l(e)||!(e instanceof Jl)?!1:(Rh(this),Rh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Jl.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Jl)?!1:(Rh(this),Rh(e),W.equalsEpsilon(this.fov,e.fov,t,n)&&W.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Li=Jl;var YIi=T(S(),1);var PIi=T(S(),1),Kw=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; // 2.0 if NdotL = NdotV = 1.0 + if (GGX > 0.0) + { + return 0.5 / GGX; // 1/4 if NdotL = NdotV = 1.0 + } + return 0.0; +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + float alphaRoughness = roughness * roughness; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, alphaRoughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float G_Vis = 4.0 * G * VdotH * NdotL / NdotH; + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function Jw(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(Jw.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Wct(e,t,n){let i=t.createViewportQuadCommand(Kw,{framebuffer:n,renderState:Ue.fromCache({viewport:new Ke(0,0,256,256)})});e._drawCommand=i}Jw.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Pt({context:t,width:256,height:256,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,sampler:en.NEAREST});this._colorTexture=n;let i=new Wr({context:t,colorTextures:[n],destroyAttachments:!1});Wct(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};Jw.prototype.isDestroyed=function(){return!1};Jw.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),me(this)};var Qw=Jw;var wXi=T(S(),1);var iXi=T(S(),1);var hye={};function Pct(e,t,n){let i,o,r;if(e instanceof Li){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof sl)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var vct=new h,dye=new h;function fye(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(d){let u=n(d);if(d<=.5){let p=(u-o)/a;return W.lerp(e,-W.PI_OVER_TWO,p)}let m=(u-r)/c;return W.lerp(-W.PI_OVER_TWO,t,1-m)}}return function(o){return W.lerp(e,t,o)}}function hj(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,d=e.up,u=e.right,m=e.frustum,p=h.subtract(a,c,vct),g=h.magnitude(h.multiplyByScalar(d,h.dot(p,d),dye)),f=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),dye));r=Math.min(Pct(m,g,f)*.2,1e9)}if(s<r){let d=-Math.pow((r-n)*1e6,.125),u=Math.pow((r-i)*1e6,1/8);return function(m){let p=m*(u-d)+d;return-Math.pow(p,8)/1e6+r}}return function(a){return W.lerp(n,i,a)}}function jw(e,t){return W.equalsEpsilon(e,W.TWO_PI,W.EPSILON11)&&(e=0),t>e+Math.PI?e+=W.TWO_PI:t<e-Math.PI&&(e-=W.TWO_PI),e}var pye=new h;function wct(e,t,n,i,o,r,s,a){let c=e.camera,d=h.clone(c.position,pye),u=c.pitch,m=jw(c.heading,i),p=jw(c.roll,r),g=hj(c,n,d.z,n.z,s),f=fye(u,o,g,a);function x(_){let C=_.time/t;c.setView({orientation:{heading:W.lerp(m,i,C),pitch:f(C),roll:W.lerp(p,r,C)}}),D.lerp(d,n,C,c.position),c.position.z=g(C)}return x}function Fct(e,t){e.longitude<t.longitude?e.longitude+=W.TWO_PI:t.longitude+=W.TWO_PI}function Act(e,t){let n=e.longitude-t.longitude;n<-W.PI?e.longitude+=W.TWO_PI:n>W.PI&&(t.longitude+=W.TWO_PI)}var Mct=new he,Nct=new he;function kct(e,t,n,i,o,r,s,a,c,d){let u=e.camera,p=e.mapProjection.ellipsoid,g=he.clone(u.positionCartographic,Mct),f=u.pitch,x=jw(u.heading,i),_=jw(u.roll,r),C=p.cartesianToCartographic(n,Nct);g.longitude=W.zeroToTwoPi(g.longitude),C.longitude=W.zeroToTwoPi(C.longitude);let V=!1;if(l(a)){let I=W.zeroToTwoPi(a),v=Math.min(g.longitude,C.longitude),P=Math.max(g.longitude,C.longitude),w=I>=v&&I<=P;if(l(c)){let F=Math.abs(g.longitude-C.longitude),b=W.TWO_PI-F;(w?F:b)<(w?b:F)*c&&!w&&(V=!0)}else w||(V=!0)}V?Fct(g,C):Act(g,C);let L=hj(u,n,g.height,C.height,s),Z=fye(f,o,L,d);function G(){let I=g.longitude,v=C.longitude,P=g.latitude,w=C.latitude;return function(b){let R=b.time/t,E=h.fromRadians(W.lerp(I,v,R),W.lerp(P,w,R),L(R),p);u.setView({destination:E,orientation:{heading:W.lerp(x,i,R),pitch:Z(R),roll:W.lerp(_,r,R)}})}}return G()}function Uct(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,pye),d=jw(a.heading,i),u=a.frustum.right-a.frustum.left,m=hj(a,n,u,n.z,s);function p(g){let f=g.time/t;a.setView({orientation:{heading:W.lerp(d,i,f)}}),D.lerp(c,n,f,a.position);let x=m(f),_=a.frustum,C=_.top/_.right,V=(x-(_.right-_.left))*.5;_.right+=V,_.left-=V,_.top=C*_.right,_.bottom=-_.top}return p}var uye=new he,Dct=new h;function mj(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function mye(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}hye.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===oe.MORPHING)return mj();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,d=t.flyOverLongitudeWeight,u=t.pitchAdjustHeight,m=t.easingFunction;o&&i!==oe.SCENE3D&&(s.cartesianToCartographic(n,uye),n=r.project(uye,Dct));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let f=t.duration;l(f)||(f=Math.ceil(h.distance(p.position,n)/1e6)+2,f=Math.min(f,3));let x=y(t.heading,0),_=y(t.pitch,-W.PI_OVER_TWO),C=y(t.roll,0),V=e.screenSpaceCameraController;V.enableInputs=!1;let L=mye(V,t.complete),Z=mye(V,t.cancel),G=p.frustum,I=e.mode===oe.SCENE2D;if(I=I&&D.equalsEpsilon(p.position,n,W.EPSILON6),I=I&&W.equalsEpsilon(Math.max(G.right-G.left,G.top-G.bottom),n.z,W.EPSILON6),I=I||e.mode!==oe.SCENE2D&&h.equalsEpsilon(n,p.position,W.EPSILON10),I=I&&W.equalsEpsilon(W.negativePiToPi(x),W.negativePiToPi(p.heading),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(_),W.negativePiToPi(p.pitch),W.EPSILON10)&&W.equalsEpsilon(W.negativePiToPi(C),W.negativePiToPi(p.roll),W.EPSILON10),I)return mj(L,Z);let v=new Array(4);if(v[oe.SCENE2D]=Uct,v[oe.SCENE3D]=kct,v[oe.COLUMBUS_VIEW]=wct,f<=0)return mj(function(){v[i](e,1,n,x,_,C,a,c,d,u)({time:1}),typeof L=="function"&&L()},Z);let P=v[i](e,f,n,x,_,C,a,c,d,u);if(!l(m)){let w=p.positionCartographic.height,F=i===oe.SCENE3D?s.cartesianToCartographic(n).height:n.z;w>F&&w>11500?m=Yr.CUBIC_OUT:m=Yr.QUINTIC_IN_OUT}return{duration:f,easingFunction:m,startObject:{time:0},stopObject:{time:f},update:P,complete:L,cancel:Z}};var qw=hye;var rXi=T(S(),1),Bct={ROTATE:0,INFINITE_SCROLL:1},Ql=Object.freeze(Bct);function on(e){this._scene=e,this._transform=M.clone(M.IDENTITY),this._invTransform=M.clone(M.IDENTITY),this._actualTransform=M.clone(M.IDENTITY),this._actualInvTransform=M.clone(M.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new he,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new Li,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new be,this._moveEnd=new be,this._changed=new be,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new M,this._invViewMatrix=new M,Cye(this),this._mode=oe.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new he(Math.PI,W.PI_OVER_TWO)),this._max2Dfrustum=void 0,wye(this,on.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*on.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}on.TRANSFORM_2D=new M(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);on.TRANSFORM_2D_INVERSE=M.inverseTransformation(on.TRANSFORM_2D,new M);on.DEFAULT_VIEW_RECTANGLE=ae.fromDegrees(-95,-20,-70,90);on.DEFAULT_VIEW_FACTOR=.5;on.DEFAULT_OFFSET=new Qu(0,-W.PI_OVER_FOUR,0);function Cye(e){M.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),M.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),M.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function Oct(e){if(!l(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=_i()):e.timeSinceMoved=Math.max(_i()-e._lastMovedTimestamp,0)/1e3}}on.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==oe.SCENE2D};on.prototype._updateCameraChanged=function(){let e=this;if(Oct(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%W.TWO_PI;i=i>W.PI?W.TWO_PI-i:i;let o=i/Math.PI;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%W.TWO_PI;s=s>W.PI?W.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===oe.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,g=e._changedPosition,f=e.frustum,x=e._changedFrustum,_=p.x+f.left,C=p.x+f.right,V=g.x+x.left,L=g.x+x.right,Z=p.y+f.bottom,G=p.y+f.top,I=g.y+x.bottom,v=g.y+x.top,P=Math.max(_,V),w=Math.min(C,L),F=Math.max(Z,I),b=Math.min(G,v),R;if(P>=w||F>=G)R=1;else{let E=x;_<V&&C>L&&Z<I&&G>v&&(E=f),R=1-(w-P)*(b-F)/((E.right-E.left)*(E.top-E.bottom))}R>t&&(e._changed.raiseEvent(R),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=W.acosClamped(h.dot(e.directionWC,e._changedDirection)),d;l(e.frustum.fovy)?d=c/(e.frustum.fovy*.5):d=c;let m=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(d>t||m>t)&&(e._changed.raiseEvent(Math.max(d,m)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function Yct(e){Ft.basisTo2D(e._projection,e._transform,e._actualTransform)}var Hct=new he,zct=new h,JD=new h,Kct=new se,Jct=new se,Qct=new se,jct=new se,qct=new se;function $ct(e){let t=e._projection,n=t.ellipsoid,i=M.getColumn(e._transform,3,Kct),o=n.cartesianToCartographic(i,Hct),r=t.project(o,zct),s=Jct;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=se.clone(se.UNIT_X,qct),c=se.add(M.getColumn(e._transform,0,JD),i,JD);n.cartesianToCartographic(c,o),t.project(o,r);let d=Qct;d.x=r.z,d.y=r.x,d.z=r.y,d.w=0,h.subtract(d,s,d),d.x=0;let u=jct;if(h.magnitudeSquared(d)>W.EPSILON10)h.cross(a,d,u);else{let m=se.add(M.getColumn(e._transform,1,JD),i,JD);n.cartesianToCartographic(m,o),t.project(o,r),u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0,h.magnitudeSquared(u)<W.EPSILON10&&(se.clone(se.UNIT_Y,d),se.clone(se.UNIT_Z,u))}h.cross(u,a,d),h.normalize(d,d),h.cross(a,d,u),h.normalize(u,u),M.setColumn(e._actualTransform,0,d,e._actualTransform),M.setColumn(e._actualTransform,1,u,e._actualTransform),M.setColumn(e._actualTransform,2,a,e._actualTransform),M.setColumn(e._actualTransform,3,s,e._actualTransform)}var fj=new h;function Cc(e){let t=e._mode,n=!1,i=0;t===oe.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,d=!h.equals(c,e.up);d&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let u=e._right,m=!h.equals(u,e.right);m&&(h.normalize(e.right,e.right),u=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(M.inverseTransformation(e._transform,e._invTransform),e._mode===oe.COLUMBUS_VIEW||e._mode===oe.SCENE2D?M.equals(M.IDENTITY,e._transform)?M.clone(on.TRANSFORM_2D,e._actualTransform):e._mode===oe.COLUMBUS_VIEW?Yct(e):$ct(e):M.clone(e._transform,e._actualTransform),M.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=M.multiplyByPoint(g,o,e._positionWC),t===oe.SCENE3D||t===oe.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let f=fj;f.x=e._positionWC.y,f.y=e._positionWC.z,f.z=e._positionWC.x,t===oe.SCENE2D&&(f.z=i),e._projection.unproject(f,e._positionCartographic)}if(a||d||m){let f=h.dot(s,h.cross(c,u,fj));if(Math.abs(1-f)>W.EPSILON2){let x=1/h.magnitudeSquared(c),_=h.dot(c,s)*x,C=h.multiplyByScalar(s,_,fj);c=h.normalize(h.subtract(c,C,e._up),e._up),h.clone(c,e.up),u=h.cross(s,c,e._right),h.clone(u,e.right)}}(a||p)&&(e._directionWC=M.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(d||p)&&(e._upWC=M.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(m||p)&&(e._rightWC=M.multiplyByPointAsVector(g,u,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||d||m||p)&&Cye(e)}function Vye(e,t){let n;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)?n=Math.atan2(t.y,t.x)-W.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-W.PI_OVER_TWO,W.TWO_PI-W.zeroToTwoPi(n)}function Lye(e){return W.PI_OVER_TWO-W.acosClamped(e.z)}function Rye(e,t,n){let i=0;return W.equalsEpsilon(Math.abs(e.z),1,W.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=W.zeroToTwoPi(i+W.TWO_PI)),i}var qD=new M,$D=new M;Object.defineProperties(on.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return Cc(this),this._invTransform}},viewMatrix:{get:function(){return Cc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return Cc(this),this._invViewMatrix}},positionCartographic:{get:function(){return Cc(this),this._positionCartographic}},positionWC:{get:function(){return Cc(this),this._positionWC}},directionWC:{get:function(){return Cc(this),this._directionWC}},upWC:{get:function(){return Cc(this),this._upWC}},rightWC:{get:function(){return Cc(this),this._rightWC}},heading:{get:function(){if(this._mode!==oe.MORPHING){let e=this._projection.ellipsoid,t=M.clone(this._transform,qD),n=Ft.eastNorthUpToFixedFrame(this.positionWC,e,$D);this._setTransform(n);let i=Vye(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==oe.MORPHING){let e=this._projection.ellipsoid,t=M.clone(this._transform,qD),n=Ft.eastNorthUpToFixedFrame(this.positionWC,e,$D);this._setTransform(n);let i=Lye(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==oe.MORPHING){let e=this._projection.ellipsoid,t=M.clone(this._transform,qD),n=Ft.eastNorthUpToFixedFrame(this.positionWC,e,$D);this._setTransform(n);let i=Rye(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});on.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==oe.MORPHING,t=this._mode===oe.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===oe.SCENE2D&&Iye(this,this.position)};var elt=new h,tlt=new h,nlt=new h;on.prototype._setTransform=function(e){let t=h.clone(this.positionWC,elt),n=h.clone(this.upWC,tlt),i=h.clone(this.directionWC,nlt);M.clone(e,this._transform),this._transformChanged=!0,Cc(this);let o=this._actualInvTransform;M.multiplyByPoint(o,t,this.position),M.multiplyByPointAsVector(o,i,this.direction),M.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),Cc(this)};var ilt=new D,olt=new pn,rlt=new h,slt=new h;function Zye(e){if(!M.equals(M.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=ilt;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,olt);o=n.pickWorldCoordinates(a,t,!0,rlt)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,slt));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}on.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof an&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=Zye(this)))};var eB=new h,xj=new M,alt=new M,_j=new we,Tj=new $,Gye=new he;function clt(e,t,n){let i=M.clone(e.transform,xj),o=Ft.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,alt);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-W.PI_OVER_TWO;let r=we.fromHeadingPitchRoll(n,_j),s=$.fromQuaternion(r,Tj);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function llt(e,t,n,i){let o=M.clone(e.transform,xj);if(e._setTransform(M.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,Gye);t=a.project(c,eB)}h.clone(t,e.position)}n.heading=n.heading-W.PI_OVER_TWO;let r=we.fromHeadingPitchRoll(n,_j),s=$.fromQuaternion(r,Tj);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function dlt(e,t,n,i){let o=M.clone(e.transform,xj);if(e._setTransform(M.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,d=c.ellipsoid.cartesianToCartographic(t,Gye);t=c.project(d,eB)}D.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===Ql.ROTATE){n.heading=n.heading-W.PI_OVER_TWO,n.pitch=-W.PI_OVER_TWO,n.roll=0;let r=we.fromHeadingPitchRoll(n,_j),s=$.fromQuaternion(r,Tj);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var ult=new h,mlt=new h,hlt=new h;function Eye(e,t,n,i){let o=h.clone(n.direction,ult),r=h.clone(n.up,mlt);if(e._scene.mode===oe.SCENE3D){let a=e._projection.ellipsoid,c=Ft.eastNorthUpToFixedFrame(t,a,qD),d=M.inverseTransformation(c,$D);M.multiplyByPointAsVector(d,o,o),M.multiplyByPointAsVector(d,r,r)}let s=h.cross(o,r,hlt);return i.heading=Vye(o,r),i.pitch=Lye(o),i.roll=Rye(o,r,s),i}var yj={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},YV=new Ca;on.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===oe.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,eB));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,eB),i=!1),l(t.direction)&&(t=Eye(this,o,t,yj.orientation)),YV.heading=y(t.heading,0),YV.pitch=y(t.pitch,-W.PI_OVER_TWO),YV.roll=y(t.roll,0),n===oe.SCENE3D?clt(this,o,YV):n===oe.SCENE2D?dlt(this,o,YV,i):llt(this,o,YV,i)};var flt=new h;on.prototype.flyHome=function(e){let t=this._mode;if(t===oe.MORPHING&&this._scene.completeMorph(),t===oe.SCENE2D)this.flyTo({destination:on.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:M.IDENTITY});else if(t===oe.SCENE3D){let n=this.getRectangleCameraCoordinates(on.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*on.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:M.IDENTITY})}else if(t===oe.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,flt).z),roll:0},endTransform:M.IDENTITY,convert:!1})}};on.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new se),Cc(this),M.multiplyByVector(this._actualInvTransform,e,t)};on.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),Cc(this),M.multiplyByPoint(this._actualInvTransform,e,t)};on.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),Cc(this),M.multiplyByPointAsVector(this._actualInvTransform,e,t)};on.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new se),Cc(this),M.multiplyByVector(this._actualTransform,e,t)};on.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),Cc(this),M.multiplyByPoint(this._actualTransform,e,t)};on.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),Cc(this),M.multiplyByPointAsVector(this._actualTransform,e,t)};function Iye(e,t){let n=e._scene.mapMode2D===Ql.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var bye=new h;on.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,bye),h.add(n,bye,n),this._mode===oe.SCENE2D&&Iye(this,n),this._adjustOrthographicFrustum(!0)};on.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===oe.SCENE2D?tB(this,e):this.move(this.direction,e)};on.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===oe.SCENE2D?tB(this,-e):this.move(this.direction,-e)};on.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};on.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};on.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};on.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};on.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==oe.SCENE2D&&this.look(this.up,-e)};on.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==oe.SCENE2D&&this.look(this.up,e)};on.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==oe.SCENE2D&&this.look(this.right,-e)};on.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==oe.SCENE2D&&this.look(this.right,e)};var plt=new we,blt=new $;on.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=we.fromAxisAngle(e,-n,plt),o=$.fromQuaternion(i,blt),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};on.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};on.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var glt=new we,ylt=new $;on.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=we.fromAxisAngle(e,-n,glt),o=$.fromQuaternion(i,ylt);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};on.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),Xye(this,e)};on.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),Xye(this,-e)};var xlt=new h,_lt=new h,Tlt=new h,gye=new h;function Xye(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,W.EPSILON2)){let i=h.normalize(n,xlt),o=h.equalsEpsilon(i,e.constrainedAxis,W.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,gye),W.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,_lt),a=h.dot(i,s),c=W.acosClamped(a);t>0&&t>c&&(t=c-W.EPSILON4),a=h.dot(i,h.negate(s,gye)),c=W.acosClamped(a),t<0&&-t>c&&(t=-c+W.EPSILON4);let d=h.cross(s,i,Tlt);e.rotate(d,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}on.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),Wye(this,-e)};on.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),Wye(this,e)};function Wye(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function tB(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===Ql.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===Ql.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function Pye(e,t){e.move(e.direction,t)}on.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===oe.SCENE2D?tB(this,e):Pye(this,e)};on.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===oe.SCENE2D?tB(this,-e):Pye(this,-e)};on.prototype.getMagnitude=function(){if(this._mode===oe.SCENE3D)return h.magnitude(this.position);if(this._mode===oe.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===oe.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var Slt=new M;on.prototype.lookAt=function(e,t){let n=this._scene,i=y(n.ellipsoid,ne.default),o=Ft.eastNorthUpToFixedFrame(e,i,Slt);this.lookAtTransform(o,t)};var Clt=new h,Vlt=new we,Llt=new we,Rlt=new $;function vye(e,t,n){t=W.clamp(t,-W.PI_OVER_TWO,W.PI_OVER_TWO),e=W.zeroToTwoPi(e)-W.PI_OVER_TWO;let i=we.fromAxisAngle(h.UNIT_Y,-t,Vlt),o=we.fromAxisAngle(h.UNIT_Z,-e,Llt),r=we.multiply(o,i,o),s=$.fromQuaternion(r,Rlt),a=h.clone(h.UNIT_X,Clt);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}on.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=vye(t.heading,t.pitch,t.range):n=t,this._mode===oe.SCENE2D){D.clone(D.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<W.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(M.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<W.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var $w=new he,Zlt=new he,Glt=new h,Elt=new h,Ilt=new h,Xlt=new h,Wlt=new h,Plt=new h,vlt=new h,pj=new h,wlt={direction:new h,right:new h,up:new h},yye;function Sc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function wye(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:wlt,{north:s,south:a,west:c}=t,{east:d}=t;c>d&&(d+=W.TWO_PI);let u=(c+d)*.5,m;if(a<-W.PI_OVER_TWO+W.RADIANS_PER_DEGREE&&s>W.PI_OVER_TWO-W.RADIANS_PER_DEGREE)m=0;else{let w=$w;w.longitude=u,w.latitude=s,w.height=0;let F=Zlt;F.longitude=u,F.latitude=a,F.height=0;let b=yye;(!l(b)||b.ellipsoid!==o)&&(yye=b=new Rp(void 0,void 0,o)),b.setEndPoints(w,F),m=b.interpolateUsingFraction(.5,$w).latitude}let p=$w;p.longitude=u,p.latitude=m,p.height=0;let g=o.cartographicToCartesian(p,vlt),f=$w;f.longitude=d,f.latitude=s;let x=o.cartographicToCartesian(f,Glt);f.longitude=c;let _=o.cartographicToCartesian(f,Ilt);f.longitude=u;let C=o.cartographicToCartesian(f,Wlt);f.latitude=a;let V=o.cartographicToCartesian(f,Plt);f.longitude=d;let L=o.cartographicToCartesian(f,Xlt);f.longitude=c;let Z=o.cartographicToCartesian(f,Elt);h.subtract(_,g,_),h.subtract(L,g,L),h.subtract(x,g,x),h.subtract(Z,g,Z),h.subtract(C,g,C),h.subtract(V,g,V);let G=o.geodeticSurfaceNormal(g,r.direction);h.negate(G,G);let I=h.cross(G,h.UNIT_Z,r.right);h.normalize(I,I);let v=h.cross(I,G,r.up),P;if(e.frustum instanceof an){let w=Math.max(h.distance(x,_),h.distance(L,Z)),F=Math.max(h.distance(x,L),h.distance(_,Z)),b,R,E=e.frustum._offCenterFrustum,X=E.right/E.top,A=F*X;w>A?(b=w,R=b/X):(R=F,b=A),P=Math.max(b,R)}else{let w=Math.tan(e.frustum.fovy*.5),F=e.frustum.aspectRatio*w;if(P=Math.max(Sc(G,v,_,w),Sc(G,v,L,w),Sc(G,v,x,w),Sc(G,v,Z,w),Sc(G,v,C,w),Sc(G,v,V,w),Sc(G,I,_,F),Sc(G,I,L,F),Sc(G,I,x,F),Sc(G,I,Z,F),Sc(G,I,C,F),Sc(G,I,V,F)),a<0&&s>0){let b=$w;b.longitude=c,b.latitude=0,b.height=0;let R=o.cartographicToCartesian(b,pj);h.subtract(R,g,R),P=Math.max(P,Sc(G,v,R,w),Sc(G,I,R,F)),b.longitude=d,R=o.cartographicToCartesian(b,pj),h.subtract(R,g,R),P=Math.max(P,Sc(G,v,R,w),Sc(G,I,R,F))}}return h.add(g,h.multiplyByScalar(G,-P,pj),n)}var Flt=new he,Alt=new h,Mlt=new h;function Nlt(e,t,n){let i=e._projection;t.west>t.east&&(t=ae.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Flt;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Alt);M.multiplyByPoint(o,a,a),M.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,Mlt);if(M.multiplyByPoint(o,c,c),M.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let d=Math.tan(e.frustum.fovy*.5),u=e.frustum.aspectRatio*d;n.z=Math.max((a.x-c.x)/u,(a.y-c.y)/d)*.5}else{let d=a.x-c.x,u=a.y-c.y;n.z=Math.max(d,u)}return n}var klt=new he,Ult=new h,Dlt=new h;function Blt(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===Ql.INFINITE_SCROLL?o+=W.TWO_PI:(t=ae.MAX_VALUE,o=t.east));let r=klt;r.longitude=o,r.latitude=t.north;let s=i.project(r,Ult);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,Dlt),c=Math.abs(s.x-a.x)*.5,d=Math.abs(s.y-a.y)*.5,u,m,p=e.frustum.right/e.frustum.top,g=d*p;return c>g?(u=c,m=u/p):(m=d,u=g),d=Math.max(2*u,2*m),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=d,n=i.project(r,n),n}on.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===oe.SCENE3D)return wye(this,e,t);if(n===oe.COLUMBUS_VIEW)return Nlt(this,e,t);if(n===oe.SCENE2D)return Blt(this,e,t)};var Olt=new pn;function Ylt(e,t,n,i){n=y(n,ne.default);let o=e.getPickRay(t,Olt),r=qn.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return pn.getPoint(o,s,i)}var Hlt=new pn;function zlt(e,t,n,i){let r=e.getPickRay(t,Hlt).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Klt=new pn;function Jlt(e,t,n,i){let o=e.getPickRay(t,Klt),r=-o.origin.x/o.direction.x;pn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-W.PI_OVER_TWO||s.latitude>W.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}on.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=y(t,ne.default),this._mode===oe.SCENE3D)n=Ylt(this,e,t,n);else if(this._mode===oe.SCENE2D)n=zlt(this,e,this._projection,n);else if(this._mode===oe.COLUMBUS_VIEW)n=Jlt(this,e,this._projection,n);else return;return n}};var Qlt=new h,jlt=new h,qlt=new h;function $lt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,d=2/o*t.x-1,u=2/r*(r-t.y)-1,m=e.positionWC;h.clone(m,n.origin);let p=h.multiplyByScalar(e.directionWC,c,Qlt);h.add(m,p,p);let g=h.multiplyByScalar(e.rightWC,d*c*a,jlt),f=h.multiplyByScalar(e.upWC,u*c*s,qlt),x=h.add(p,g,n.direction);return h.add(x,f,x),h.subtract(x,m,x),h.normalize(x,x),n}var QD=new h;function edt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let d=2/r*(r-t.y)-1;d*=(s.top-s.bottom)*.5;let u=n.origin;return h.clone(e.position,u),h.multiplyByScalar(e.right,c,QD),h.add(QD,u,u),h.multiplyByScalar(e.up,d,QD),h.add(QD,u,u),h.clone(e.directionWC,n.direction),(e._mode===oe.COLUMBUS_VIEW||e._mode===oe.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}on.prototype.getPickRay=function(e,t){l(t)||(t=new pn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?$lt(this,e,t):edt(this,e,t)};var tdt=new h,ndt=new h;on.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,tdt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),ndt);return Math.max(0,h.magnitude(n)-e.radius)};var idt=new D;on.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,idt);return Math.max(o.x,o.y)};function odt(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let d=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(d,e.position)}return{easingFunction:Yr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var rdt=new h,xye=new h,sdt=new h,adt=new h;function cdt(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,rdt),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,xye),xye);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,sdt);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,d=h.magnitude(h.subtract(n,s,adt)),u=c*d,m=a*d,p=e._maxCoord.x,g=e._maxCoord.y,f=Math.max(u-p,p),x=Math.max(m-g,g);if(n.z<-f||n.z>f||n.y<-x||n.y>x){let _=s.y<-f||s.y>f,C=s.z<-x||s.z>x;if(_||C)return odt(e,n,s,f,x,t)}}on.prototype.createCorrectPositionTween=function(e){if(this._mode===oe.COLUMBUS_VIEW)return cdt(this,e)};var ldt=new h,qs={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};on.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};on.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=qs.destination,e.orientation.heading=qs.heading,e.orientation.pitch=qs.pitch,e.orientation.roll=qs.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};on.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===oe.MORPHING)return;this.cancelFlight();let i=t instanceof ae;i&&(t=this.getRectangleCameraCoordinates(t,ldt));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=Eye(this,t,o,yj.orientation)),l(e.duration)&&e.duration<=0){let u=yj;u.destination=e.destination,u.orientation.heading=o.heading,u.orientation.pitch=o.pitch,u.orientation.roll=o.roll,u.convert=e.convert,u.endTransform=e.endTransform,this.setView(u),typeof e.complete=="function"&&e.complete();return}let r=this,s;qs.destination=t,qs.heading=o.heading,qs.pitch=o.pitch,qs.roll=o.roll,qs.duration=e.duration,qs.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},qs.cancel=e.cancel,qs.endTransform=e.endTransform,qs.convert=i?!1:e.convert,qs.maximumHeight=e.maximumHeight,qs.pitchAdjustHeight=e.pitchAdjustHeight,qs.flyOverLongitude=e.flyOverLongitude,qs.flyOverLongitudeWeight=e.flyOverLongitudeWeight,qs.easingFunction=e.easingFunction;let a=this._scene,c=qw.createTween(a,qs);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let d=this._scene.preloadFlightCamera;this._mode!==oe.SCENE2D&&(l(d)||(d=on.clone(this)),d.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=d.frustum.computeCullingVolume(d.positionWC,d.directionWC,d.upWC))};function ddt(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function udt(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var mdt=100;function Fye(e,t,n){n=Qu.clone(l(n)?n:on.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=mdt:e.frustum instanceof an||e._mode===oe.SCENE2D?n.range=udt(e,s):n.range=ddt(e,s),n.range=W.clamp(n.range,i,o)}return n}on.prototype.viewBoundingSphere=function(e,t){t=Fye(this,e,t),this.lookAt(e.center,t)};var hdt=new M,fdt=new h,pdt=new h,bdt=new h,gdt=new h,ydt=new se,xdt=new we,_dt=new $;on.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===oe.SCENE2D||this._mode===oe.COLUMBUS_VIEW;this._setTransform(M.IDENTITY);let i=Fye(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,fdt):o=vye(i.heading,i.pitch,i.range);let r=this._scene,s=y(r.ellipsoid,ne.default),a=Ft.eastNorthUpToFixedFrame(e.center,s,hdt);M.multiplyByPoint(a,o,o);let c,d;if(!n){if(c=h.subtract(e.center,o,pdt),h.normalize(c,c),d=M.multiplyByPointAsVector(a,h.UNIT_Z,bdt),1-Math.abs(h.dot(c,d))<W.EPSILON6){let m=we.fromAxisAngle(c,i.heading,xdt),p=$.fromQuaternion(m,_dt);h.fromCartesian4(M.getColumn(a,1,ydt),d),$.multiplyByVector(p,d,d)}let u=h.cross(c,d,gdt);h.cross(u,c,d),h.normalize(d,d)}this.flyTo({destination:o,orientation:{direction:c,up:d},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var _ye=new h,Tye=new h,bj=new h,Sye=new h,eF=[new h,new h,new h,new h];function Tdt(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,_ye),r=h.magnitude(o),s=h.normalize(o,Tye),a,c;h.equalsEpsilon(s,h.UNIT_Z,W.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,bj),bj),c=h.normalize(h.cross(s,a,Sye),Sye));let d=Math.sqrt(h.magnitudeSquared(o)-1),u=h.multiplyByScalar(s,1/r,_ye),m=d/r,p=h.multiplyByScalar(a,m,Tye),g=h.multiplyByScalar(c,m,bj),f=h.add(u,g,eF[0]);h.subtract(f,p,f),h.multiplyComponents(n,f,f);let x=h.subtract(u,g,eF[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let _=h.subtract(u,g,eF[2]);h.add(_,p,_),h.multiplyComponents(n,_,_);let C=h.add(u,g,eF[3]);return h.add(C,p,C),h.multiplyComponents(n,C,C),eF}var gj=new D,Sdt=new h,xy=[new he,new he,new he,new he];function jD(e,t,n,i,o,r){gj.x=e,gj.y=t;let s=i.pickEllipsoid(gj,o,Sdt);return l(s)?(xy[n]=o.cartesianToCartographic(s,xy[n]),1):(xy[n]=o.cartesianToCartographic(r[n],xy[n]),0)}on.prototype.computeViewRectangle=function(e,t){e=y(e,ne.default);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new ce(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Jt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,d=Tdt(this,e);if(c+=jD(0,0,0,this,e,d),c+=jD(0,a,1,this,e,d),c+=jD(s,a,2,this,e,d),c+=jD(s,0,3,this,e,d),c<2)return ae.MAX_VALUE;t=ae.fromCartographicArray(xy,t);let u=0,m=xy[3].longitude;for(let p=0;p<4;++p){let g=xy[p].longitude,f=Math.abs(g-m);f>W.PI?u+=W.TWO_PI-f:u+=f,m=g}return W.equalsEpsilon(Math.abs(u),W.TWO_PI,W.EPSILON9)&&(t.west=-W.PI,t.east=W.PI,xy[0].latitude>=0?t.north=W.PI_OVER_TWO:t.south=-W.PI_OVER_TWO),t};on.prototype.switchToPerspectiveFrustum=function(){if(this._mode===oe.SCENE2D||this.frustum instanceof Li)return;let e=this._scene;this.frustum=new Li,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=W.toRadians(60)};on.prototype.switchToOrthographicFrustum=function(){if(this._mode===oe.SCENE2D||this.frustum instanceof an)return;let e=Zye(this),t=this._scene;this.frustum=new an,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};on.clone=function(e,t){return l(t)||(t=new on(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),M.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var io=on;var AXi=T(S(),1);function Cdt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var rm=Cdt;var YXi=T(S(),1);var Uye=T(id(),1),Aye=576,Vdt=100,tF="#ffffff",nB="#48b";function Dye(e,t){this.credit=e,this.count=y(t,1)}function Ldt(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(Et.equals(o,t))return!0}return!1}function Rdt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;Et.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Bye="cesium-credit-delimiter";function Mye(e){let t=document.createElement("span");return t.textContent=e,t.className=Bye,t}function Nye(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function kye(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let d=r-1;if(o.length<=d)e.appendChild(Mye(n));else{let u=o[d];u.className!==Bye&&e.replaceChild(Mye(n),u)}}let c=a.element;if(o.length<=r)e.appendChild(Nye(c,i));else{let d=o[r];d._creditId!==a._id&&e.replaceChild(Nye(c,i),d)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Zdt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<Aye?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=Aye&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Gdt(e){let t=` +.cesium-credit-lightbox-overlay { + display: none; + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(80, 80, 80, 0.8); +} + +.cesium-credit-lightbox { + background-color: #303336; + color: ${tF}; + position: relative; + min-height: ${Vdt}px; + margin: auto; +} +.cesium-credit-lightbox > ul > li a, +.cesium-credit-lightbox > ul > li a:visited, +.cesium-credit-wrapper a, +.cesium-credit-wrapper a:visited { + color: ${tF}; +} +.cesium-credit-lightbox > ul > li a:hover { + color: ${nB}; +} +.cesium-credit-lightbox.cesium-credit-lightbox-expanded { + border: 1px solid #444; + border-radius: 5px; + max-width: 370px; +} +.cesium-credit-lightbox.cesium-credit-lightbox-mobile { + height: 100%; + width: 100%; +} +.cesium-credit-lightbox-title { + padding: 20px 20px 0 20px; +} +.cesium-credit-lightbox-close { + font-size: 18pt; + cursor: pointer; + position: absolute; + top: 0; + right: 6px; + color: ${tF}; +} +.cesium-credit-lightbox-close:hover { + color: ${nB}; +} +.cesium-credit-lightbox > ul { + margin: 0; + padding: 12px 20px 12px 40px; + font-size: 13px; +} +.cesium-credit-lightbox > ul > li { + padding-bottom: 6px; +} +.cesium-credit-lightbox > ul > li * { + padding: 0; + margin: 0; +} + +.cesium-credit-expand-link { + padding-left: 5px; + cursor: pointer; + text-decoration: underline; + color: ${tF}; +} +.cesium-credit-expand-link:hover { + color: ${nB}; +} + +.cesium-credit-text { + color: ${tF}; +} + +.cesium-credit-delimiter { + padding: 0 5px; +} + +.cesium-credit-textContainer *, +.cesium-credit-logoContainer * { + display: inline; +} + +.cesium-credit-textContainer a:hover { + color: ${nB} +} + +.cesium-credit-textContainer .cesium-credit-wrapper:first-of-type { + padding-left: 5px; +} +`;function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function hr(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(f){r.contains(f.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let d=document.createElement("ul");r.appendChild(d);let u=document.createElement("div");u.className="cesium-credit-logoContainer",u.style.display="inline",e.appendChild(u);let m=document.createElement("div");m.className="cesium-credit-textContainer",m.style.display="inline",e.appendChild(m);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),Gdt(e);let g=Et.clone(hr.cesiumCredit);this._delimiter=y(t,"\u2022"),this._screenContainer=m,this._cesiumCreditContainer=u,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=d,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Zt,lightboxCredits:new Zt},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Oye(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new Dye(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}hr.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=Et.clone(Yye())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Oye(this,t,e)};hr.prototype.addStaticCredit=function(e){let t=this._staticCredits;Ldt(t,e)||t.push(e)};hr.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};hr.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};hr.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};hr.prototype.update=function(){this._expanded&&Zdt(this)};hr.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&Et.equals(hr.cesiumCredit,this._cesiumCredit)||Oye(this,s,r,Number.MAX_VALUE)}Et.equals(hr.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=Et.clone(hr.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};hr.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;kye(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",kye(this._creditList,t,void 0,"li"),Rdt(this)};hr.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),me(this)};hr.prototype.isDestroyed=function(){return!1};hr._cesiumCredit=void 0;hr._cesiumCreditInitialized=!1;var iB;function Yye(){if(!l(iB)){let e=rn("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Uye.default(e).path()),iB=new Et(`<a href="https://cesium.com/" target="_blank"><img src="${e}" style="vertical-align: -7px" title="Cesium ion"/></a>`,!0)}return hr._cesiumCreditInitialized||(hr._cesiumCredit=iB,hr._cesiumCreditInitialized=!0),iB}Object.defineProperties(hr,{cesiumCredit:{get:function(){return Yye(),hr._cesiumCredit},set:function(e){hr._cesiumCredit=e,hr._cesiumCreditInitialized=!0}}});hr.CreditDisplayElement=Dye;var nF=hr;var BWi=T(S(),1);var lWi=T(S(),1);var oB=0,Edt=1;function RT(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,We.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof Li?(s=oB,a=Li.packedLength):t instanceof an&&(s=Edt,a=an.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=we.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+we.packedLength+We.packedLength}RT.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===oB?(Li.pack(o,t,n),n+=Li.packedLength):(an.pack(o,t,n),n+=an.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,we.pack(e._orientation,t,n),n+=we.packedLength,We.pack(e._vertexFormat,t,n),n+=We.packedLength,t[n]=e._drawNearPlane?1:0,t};var Idt=new Li,Xdt=new an,Wdt=new we,Pdt=new h,vdt=new We;RT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===oB?(o=Li.unpack(e,t,Idt),t+=Li.packedLength):(o=an.unpack(e,t,Xdt),t+=an.packedLength);let r=h.unpack(e,t,Pdt);t+=h.packedLength;let s=we.unpack(e,t,Wdt);t+=we.packedLength;let a=We.unpack(e,t,vdt);t+=We.packedLength;let c=e[t]===1;if(!l(n))return new RT({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let d=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(d),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=we.clone(s,n._orientation),n._vertexFormat=We.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function HV(e,t,n,i,o,r,s,a){let c=e/3*2;for(let d=0;d<4;++d)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var wdt=new $,Fdt=new M,Sj=new M,Hye=new h,zye=new h,Kye=new h,Adt=new h,Mdt=new h,Ndt=new h,_y=new Array(3),iF=new Array(4);iF[0]=new se(-1,-1,1,1);iF[1]=new se(1,-1,1,1);iF[2]=new se(1,1,1,1);iF[3]=new se(-1,1,1,1);var Jye=new Array(4);for(let e=0;e<4;++e)Jye[e]=new se;RT._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,wdt),d=y(r,Hye),u=y(s,zye),m=y(a,Kye);d=$.getColumn(c,0,d),u=$.getColumn(c,1,u),m=$.getColumn(c,2,m),h.normalize(d,d),h.normalize(u,u),h.normalize(m,m),h.negate(d,d);let p=M.computeView(e,m,u,d,Fdt),g,f,x=i.projectionMatrix;if(n===oB){let _=M.multiply(x,p,Sj);f=M.inverse(_,Sj)}else g=M.inverseTransformation(p,Sj);l(f)?(_y[0]=i.near,_y[1]=i.far):(_y[0]=0,_y[1]=i.near,_y[2]=i.far);for(let _=0;_<2;++_)for(let C=0;C<4;++C){let V=se.clone(iF[C],Jye[C]);if(l(f)){V=M.multiplyByVector(f,V,V);let L=1/V.w;h.multiplyByScalar(V,L,V),h.subtract(V,e,V),h.normalize(V,V);let Z=h.dot(m,V);h.multiplyByScalar(V,_y[_]/Z,V),h.add(V,e,V)}else{let L=i.offCenterFrustum;l(L)&&(i=L);let Z=_y[_],G=_y[_+1];V.x=(V.x*(i.right-i.left)+i.left+i.right)*.5,V.y=(V.y*(i.top-i.bottom)+i.bottom+i.top)*.5,V.z=(V.z*(Z-G)-Z-G)*.5,V.w=1,M.multiplyByVector(g,V,V)}o[12*_+C*3]=V.x,o[12*_+C*3+1]=V.y,o[12*_+C*3+2]=V.z}};RT.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);RT._computeNearFarPlanes(i,o,t,n,c);let d=3*4*2;c[d]=c[3*4],c[d+1]=c[3*4+1],c[d+2]=c[3*4+2],c[d+3]=c[0],c[d+4]=c[1],c[d+5]=c[2],c[d+6]=c[3*3],c[d+7]=c[3*3+1],c[d+8]=c[3*3+2],c[d+9]=c[3*7],c[d+10]=c[3*7+1],c[d+11]=c[3*7+2],d+=3*4,c[d]=c[3*5],c[d+1]=c[3*5+1],c[d+2]=c[3*5+2],c[d+3]=c[3],c[d+4]=c[4],c[d+5]=c[5],c[d+6]=c[0],c[d+7]=c[1],c[d+8]=c[2],c[d+9]=c[3*4],c[d+10]=c[3*4+1],c[d+11]=c[3*4+2],d+=3*4,c[d]=c[3],c[d+1]=c[4],c[d+2]=c[5],c[d+3]=c[3*5],c[d+4]=c[3*5+1],c[d+5]=c[3*5+2],c[d+6]=c[3*6],c[d+7]=c[3*6+1],c[d+8]=c[3*6+2],c[d+9]=c[3*2],c[d+10]=c[3*2+1],c[d+11]=c[3*2+2],d+=3*4,c[d]=c[3*2],c[d+1]=c[3*2+1],c[d+2]=c[3*2+2],c[d+3]=c[3*6],c[d+4]=c[3*6+1],c[d+5]=c[3*6+2],c[d+6]=c[3*7],c[d+7]=c[3*7+1],c[d+8]=c[3*7+2],c[d+9]=c[3*3],c[d+10]=c[3*3+1],c[d+11]=c[3*3+2],r||(c=c.subarray(3*4));let u=new mn({position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,f=l(s.bitangent)?new Float32Array(3*4*a):void 0,x=l(s.st)?new Float32Array(2*4*a):void 0,_=Hye,C=zye,V=Kye,L=h.negate(_,Adt),Z=h.negate(C,Mdt),G=h.negate(V,Ndt);d=0,r&&(HV(d,p,g,f,x,G,_,C),d+=3*4),HV(d,p,g,f,x,V,L,C),d+=3*4,HV(d,p,g,f,x,L,G,C),d+=3*4,HV(d,p,g,f,x,Z,G,L),d+=3*4,HV(d,p,g,f,x,_,V,C),d+=3*4,HV(d,p,g,f,x,C,V,L),l(p)&&(u.normal=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(u.tangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:g})),l(f)&&(u.bitangent=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:f})),l(x)&&(u.st=new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:2,values:x}))}let m=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,f=p*4;m[g]=f,m[g+1]=f+1,m[g+2]=f+2,m[g+3]=f,m[g+4]=f+2,m[g+5]=f+3}return new ht({attributes:u,indices:m,primitiveType:Fe.TRIANGLES,boundingSphere:ce.fromVertices(c)})};var ZT=RT;var VWi=T(S(),1);var Cj=0,kdt=1;function oF(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof Li?(r=Cj,s=Li.packedLength):t instanceof an&&(r=kdt,s=an.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=we.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+we.packedLength}oF.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===Cj?(Li.pack(o,t,n),n+=Li.packedLength):(an.pack(o,t,n),n+=an.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,we.pack(e._orientation,t,n),n+=we.packedLength,t[n]=e._drawNearPlane?1:0,t};var Udt=new Li,Ddt=new an,Bdt=new we,Odt=new h;oF.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===Cj?(o=Li.unpack(e,t,Udt),t+=Li.packedLength):(o=an.unpack(e,t,Ddt),t+=an.packedLength);let r=h.unpack(e,t,Odt);t+=h.packedLength;let s=we.unpack(e,t,Bdt);t+=we.packedLength;let a=e[t]===1;if(!l(n))return new oF({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=we.clone(s,n._orientation),n._drawNearPlane=a,n};oF.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);ZT._computeNearFarPlanes(i,o,t,n,s);let a=new mn({position:new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:s})}),c,d,u=r?2:1,m=new Uint16Array(8*(u+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,d=p*4,m[c]=d,m[c+1]=d+1,m[c+2]=d+1,m[c+3]=d+2,m[c+4]=d+2,m[c+5]=d+3,m[c+6]=d+3,m[c+7]=d;for(p=0;p<2;++p)c=(u+p)*8,d=p*4,m[c]=d,m[c+1]=d+4,m[c+2]=d+1,m[c+3]=d+5,m[c+4]=d+2,m[c+5]=d+6,m[c+6]=d+3,m[c+7]=d+7;return new ht({attributes:a,indices:m,primitiveType:Fe.LINES,boundingSphere:ce.fromVertices(s)})};var rF=oF;function rB(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,B.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var Ydt=new h,Hdt=new $,zdt=new we,Kdt=new Li,Jdt=new sl,Qdt=new an,jdt=new Pr,qdt=new B,$dt=[1,1e5];rB.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof Li?a=Kdt:s instanceof sl?a=Jdt:s instanceof an?a=Qdt:a=jdt,a=s.clone(a);let c,d=this._frustumSplits;!l(d)||d.length<=1?(d=$dt,d[0]=this._camera.frustum.near,d[1]=this._camera.frustum.far,c=1):c=d.length-1;let u=r.positionWC,m=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,Ydt);let f=Hdt;$.setColumn(f,0,g,f),$.setColumn(f,1,p,f),$.setColumn(f,2,m,f);let x=we.fromRotationMatrix(f,zdt);for(t.length=n.length=c,i=0;i<c;++i)a.near=d[i],a.far=d[i+1],t[i]=new In({geometryInstances:new Gt({geometry:new ZT({origin:u,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Kt.fromColor(B.fromAlpha(this._color,.1,qdt))},id:this.id,pickPrimitive:this}),appearance:new dn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new In({geometryInstances:new Gt({geometry:new rF({origin:u,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Kt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new dn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};rB.prototype.isDestroyed=function(){return!1};rB.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return me(this)};var Of=rB;var b2i=T(S(),1);var YWi=T(S(),1),sF=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var zWi=T(S(),1),aF=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_modelViewProjection * position; + + czm_vertexLogDepth(); +} +`;function lF(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var cF=zt.supportsTypedArrays()?new Float32Array(12):[],Qye=new h,jye=new h,Vj=new h,qye=new h,sB=new h;function eut(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof an)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let m=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,m,Qye),g=h.normalize(p,jye),f=h.normalize(h.cross(h.UNIT_Z,p,Vj),Vj),x=h.normalize(h.cross(g,f,qye),qye),_=h.magnitude(p),C=Math.sqrt(_*_-1);o=h.multiplyByScalar(g,1/_,Qye);let V=C/_;r=h.multiplyByScalar(f,V,jye),s=h.multiplyByScalar(x,V,Vj)}let a=h.add(o,s,sB);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,cF,0);let c=h.subtract(o,s,sB);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,cF,3);let d=h.add(o,s,sB);h.add(d,r,d),h.multiplyComponents(n,d,d),h.pack(d,cF,6);let u=h.subtract(o,s,sB);return h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,cF,9),cF}lF.prototype.update=function(e){if(this._mode=e.mode,e.mode!==oe.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ne(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Ue.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new tt({renderState:this._rs,boundingVolume:new ce(h.ZERO,i.maximumRadius),pass:Ge.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new De({sources:[aF]}),a=new De({sources:[sF]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=tn.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=eut(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new ht({attributes:{position:new Ze({componentDatatype:Q.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Fe.TRIANGLES});this._va=ti.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Me.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};lF.prototype.execute=function(e,t){this._mode===oe.SCENE3D&&this._command.execute(e,t)};lF.prototype.isDestroyed=function(){return!1};lF.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var dF=lF;var V2i=T(S(),1);function KV(){}var tut=/\bgl_FragDepth\b/,nut=/\bdiscard\b/;function iut(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(l(n))return n;let i=t.fragmentShaderSource,o=!1,r=i.sources;for(let a=0;a<r.length;++a)if(tut.test(r[a])||nut.test(r[a])){o=!0;break}let s=i.defines.indexOf("LOG_DEPTH")>=0;if(!o&&!s){let a=`void main() +{ + out_FragColor = vec4(1.0); +} +`;i=new De({sources:[a]})}else if(!o&&s){let a=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`;i=new De({defines:["LOG_DEPTH"],sources:[a]})}return e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}function out(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ue.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1};let r=Ue.fromCache(o);return n[t.id]=r,r}KV.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.depthOnlyCommand?.shaderProgram,r=i.depthOnlyCommand?.renderState;return i.depthOnlyCommand=tt.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=iut(n,t.shaderProgram),i.depthOnlyCommand.renderState=out(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var rut=/\s+czm_writeLogDepth\(/,sut=/\s+czm_vertexLogDepth\(/;function aut(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(l(i))return i;let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a=!1,c=r.sources;for(let u=0;u<c.length;++u)if(sut.test(c[u])){a=!0;break}if(!a){for(let m=0;m<c.length;++m)c[m]=De.replaceMain(c[m],"czm_log_depth_main");c.push(` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`)}c=s.sources,a=!1;for(let u=0;u<c.length;++u)rut.test(c[u])&&(a=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(a=!0);let d="";if(!a){for(let u=0;u<c.length;u++)c[u]=De.replaceMain(c[u],"czm_log_depth_main");d=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}return c.push(d),e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}KV.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=tt.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=aut(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function cut(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(l(i))return i;let o=t._attributeLocations,{sources:r,defines:s}=t.fragmentShaderSource,c=r.some(g=>g.includes("out_FragData"))?"out_FragData_0":"out_FragColor",d=`void main () +{ + czm_non_pick_main(); + if (${c}.a == 0.0) { + discard; + } + ${c} = ${n}; +} `,u=r.length,m=new Array(u+1);for(let g=0;g<u;++g)m[g]=De.replaceMain(r[g],"czm_non_pick_main");m[u]=d;let p=new De({sources:m,defines:s});return e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:p,attributeLocations:o})}function $ye(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ue.getState(t);o.blending.enabled=!1,o.depthMask=!0;let r=Ue.fromCache(o);return n[t.id]=r,r}KV.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.pickCommand?.shaderProgram,r=i.pickCommand?.renderState;return i.pickCommand=tt.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=cut(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=$ye(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function zV(e,t,n){let i=e.length;for(let o=0;o<i;o++)e[o].trimStart().split(/\s+/)[0]===t&&(e[o]=`${t} ${n}`)}function exe(e){return e.isArray?e.arrayLength:Rt.getComponentCount(e.type)}function lut(e){let t=exe(e);return e.normalized?t===1?"float":`vec${t}`:t===1?"int":`ivec${t}`}function dut(e,t,n){let i=n.schemaId,o=n.className,r=n.propertyName,s=`pickMetadata-${i}-${o}-${r}`,a=e.shaderCache.getDerivedShaderProgram(t,s);if(l(a))return a;let c=n.classProperty,d=lut(c),u=["0.0","0.0","0.0","0.0"],m=exe(c);if(m===1)u[0]="float(value)";else{let x=["x","y","z","w"];for(let _=0;_<m;_++){let V=`value.${x[_]}`;u[_]=`float(${V})`}}if(!c.normalized)for(let x=0;x<m;x++)u[x]+=" / 255.0";let p=t.fragmentShaderSource.defines.slice();p.push(_d.METADATA_PICKING_ENABLED),zV(p,_d.METADATA_PICKING_VALUE_TYPE,d),zV(p,_d.METADATA_PICKING_VALUE_STRING,`metadata.${r}`),zV(p,_d.METADATA_PICKING_VALUE_COMPONENT_X,u[0]),zV(p,_d.METADATA_PICKING_VALUE_COMPONENT_Y,u[1]),zV(p,_d.METADATA_PICKING_VALUE_COMPONENT_Z,u[2]),zV(p,_d.METADATA_PICKING_VALUE_COMPONENT_W,u[3]);let g=new De({sources:t.fragmentShaderSource.sources,defines:p});return e.shaderCache.createDerivedShaderProgram(t,s,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:g,attributeLocations:t._attributeLocations})}KV.createPickMetadataDerivedCommand=function(e,t,n,i){return l(i)||(i={}),i.pickMetadataCommand=tt.shallowClone(t,i.pickMetadataCommand),i.pickMetadataCommand.shaderProgram=dut(n,t.shaderProgram,t.pickedMetadataInfo),i.pickMetadataCommand.renderState=$ye(e,t.renderState),i.shaderProgramId=t.shaderProgram.id,i};function uut(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(l(n))return n;let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();return o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}KV.createHdrCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=tt.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=uut(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var Yf=KV;var X2i=T(S(),1);function aB(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=W.toRadians(o),t._beta=W.toRadians(i.beta),t._gamma=W.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var mut=new we,txe=new we,hut=new $;function fut(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=we.fromAxisAngle(o,n,txe),c=we.fromAxisAngle(r,i,mut),d=we.multiply(c,a,c),u=we.fromAxisAngle(s,t,txe);we.multiply(u,d,d);let m=$.fromQuaternion(d,hut);$.multiplyByVector(m,r,r),$.multiplyByVector(m,s,s),$.multiplyByVector(m,o,o)}aB.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;fut(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};aB.prototype.isDestroyed=function(){return!1};aB.prototype.destroy=function(){return this._removeListener(),me(this)};var uF=aB;var A2i=T(S(),1);function Lj(){this.enabled=!0,this.renderable=!0,this.density=6e-4,this.heightScalar=.001,this._heightFalloff=.59,this.maxHeight=8e5,this.visualDensityScalar=.15,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}Object.defineProperties(Lj.prototype,{heightFalloff:{get:function(){return this._heightFalloff},set:function(e){this._heightFalloff=e}}});var put=new h;Lj.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>this.maxHeight||e.mode!==oe.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=this.density*this.heightScalar*Math.pow(Math.max(o/this.maxHeight,W.EPSILON4),-Math.max(this._heightFalloff,0)),s=h.normalize(n.positionWC,put),a=Math.abs(h.dot(n.directionWC,s));r*=1-a,e.fog.density=r,e.fog.visualDensityScalar=this.visualDensityScalar,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var mF=Lj;var k2i=T(S(),1);function but(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=oe.SCENE3D,this.morphTime=oe.getMorphTime(oe.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,visualDensityScalar:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0,this.pickingMetadata=!1,this.pickedMetadataInfo=void 0}var hF=but;var ePi=T(S(),1);var ya={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},GT=ya.DERIVED_COMMANDS_MAXIMUM_LENGTH,uxe=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function ET(){this._frontFaceAlphaByDistance=new Ut(0,1,0,1),this._backFaceAlphaByDistance=new Ut(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=ae.clone(ae.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(GT),this._derivedBlendCommandTypes=new Array(GT),this._derivedPickCommandTypes=new Array(GT),this._derivedCommandTypesToUpdate=new Array(GT),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(ET.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});ET.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=nxe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=nxe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=ixe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=ixe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=_ut(this,e,t),this._sunVisibleThroughGlobe=gut(this,e),this._environmentVisible=yut(this,e),this._useDepthPlane=xut(this,e),this._numberOfTextureUniforms=Tut(this),this._rectangle=ae.clone(t.translucency.rectangle,this._rectangle),Sut(this,e)};function nxe(e,t,n,i){return e?l(n)?(Ut.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function ixe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function gut(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function yut(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function xut(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function _ut(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==oe.SCENE2D&&t.context.depthTexture}function Tut(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function Sut(e,t){e._derivedCommandsLength=Rj(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=Rj(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=Rj(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<GT;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Aut())}function Rj(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,d=e._requiresManualDepthTest,u=i?ya.PICK_FRONT_FACE:d?ya.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:ya.TRANSLUCENT_FRONT_FACE,m=i?ya.PICK_BACK_FACE:d?ya.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:ya.TRANSLUCENT_BACK_FACE;return t.mode===oe.SCENE2D?(o[r++]=ya.DEPTH_ONLY_FRONT_FACE,o[r++]=u,r):(a?(n||(o[r++]=ya.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=u,o[r++]=m):(o[r++]=m,o[r++]=u)):c?(n||(o[r++]=ya.DEPTH_ONLY_BACK_FACE),o[r++]=ya.OPAQUE_FRONT_FACE,o[r++]=m):(n||(o[r++]=ya.DEPTH_ONLY_FRONT_FACE),o[r++]=ya.OPAQUE_BACK_FACE,o[r++]=u),r)}function sm(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function oxe(e,t){return e.indexOf(t)>-1}function Cut(e,t){sm(e.defines,"TRANSLUCENT"),sm(t.defines,"TRANSLUCENT")}function Vut(e,t){sm(e.defines,"GROUND_ATMOSPHERE"),sm(t.defines,"GROUND_ATMOSPHERE"),sm(e.defines,"FOG"),sm(t.defines,"FOG"),sm(e.defines,"TRANSLUCENT"),sm(t.defines,"TRANSLUCENT")}function Zj(e,t){if(oxe(t.defines,"TILE_LIMIT_RECTANGLE")||oxe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function Gj(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=De.replaceMain(n[r],"czm_globe_translucency_main");n.push(` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`)}function mxe(e,t){Gj(e,t),sm(e.defines,"GROUND_ATMOSPHERE"),sm(t.defines,"GROUND_ATMOSPHERE"),sm(e.defines,"FOG"),sm(t.defines,"FOG")}function Lut(e,t){Gj(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Rut(e,t){mxe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function rxe(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function Zut(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),d=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],d.defines=l(d.defines)?d.defines.slice(0):[],o(c,d),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:a})}return s}function Gut(e){e.cull.face=yi.BACK,e.cull.enabled=!0}function Eut(e){e.cull.face=yi.FRONT,e.cull.enabled=!0}function Iut(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Xut(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Wut(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function sxe(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function axe(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Put(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function vut(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function wut(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Ue.getState(e);i(s),r=Ue.fromCache(s),o[e.id]=r}return r}function JV(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Fut(e,t,n,i,o){return l(o)?!i&&l(n)?n:Tt(t,o(e),!1):t}function Zh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Aut(){return[new Zh({pass:Ge.GLOBE,pickOnly:!1,getShaderProgramFunction:Cut,getRenderStateFunction:Gut,getUniformMapFunction:void 0}),new Zh({pass:Ge.GLOBE,pickOnly:!1,getShaderProgramFunction:Vut,getRenderStateFunction:Eut,getUniformMapFunction:void 0}),new Zh({pass:Ge.GLOBE,pickOnly:!1,getShaderProgramFunction:Zj,getRenderStateFunction:Iut,getUniformMapFunction:void 0}),new Zh({pass:Ge.GLOBE,pickOnly:!1,getShaderProgramFunction:Zj,getRenderStateFunction:Xut,getUniformMapFunction:void 0}),new Zh({pass:Ge.GLOBE,pickOnly:!1,getShaderProgramFunction:Zj,getRenderStateFunction:Wut,getUniformMapFunction:void 0}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Gj,getRenderStateFunction:sxe,getUniformMapFunction:JV}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:mxe,getRenderStateFunction:axe,getUniformMapFunction:JV}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Lut,getRenderStateFunction:sxe,getUniformMapFunction:JV}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Rut,getRenderStateFunction:axe,getUniformMapFunction:JV}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:rxe,getRenderStateFunction:Put,getUniformMapFunction:JV}),new Zh({pass:Ge.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:rxe,getRenderStateFunction:vut,getUniformMapFunction:JV})]}var cxe=new Array(GT),lxe=new Array(GT);ET.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)lxe[o]=this._derivedCommandPacks[n[o]],cxe[o]=uxe[n[o]];Mut(this,e,i,n,cxe,lxe,t)}};function Mut(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let d=s.frameNumber,u=y(a.uniformMapDirtyFrame,0),m=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,f=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=d),f&&(a.shaderProgramDirtyFrame=d),x&&(a.renderStateDirtyFrame=d),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let _=0;_<n;++_){let C=r[_],V=i[_],L=o[_],Z=a[L],G,I,v;l(Z)?(G=Z.uniformMap,I=Z.shaderProgram,v=Z.renderState):(G=void 0,I=void 0,v=void 0),Z=tt.shallowClone(t,Z),a[L]=Z;let P=y(Z.derivedCommands.uniformMapDirtyFrame,0),w=y(Z.derivedCommands.shaderProgramDirtyFrame,0),F=y(Z.derivedCommands.renderStateDirtyFrame,0),b=g||P<u,R=f||w<m,E=x||F<p;b&&(Z.derivedCommands.uniformMapDirtyFrame=d),R&&(Z.derivedCommands.shaderProgramDirtyFrame=d),E&&(Z.derivedCommands.renderStateDirtyFrame=d),Z.derivedCommands.type=V,Z.pass=C.pass,Z.pickOnly=C.pickOnly,Z.uniformMap=Fut(e,t.uniformMap,G,b,C.getUniformMapFunction),Z.shaderProgram=Zut(s.context,t.shaderProgram,I,R,C.getShaderProgramFunction,L),Z.renderState=wut(t.renderState,v,E,C.getRenderStateFunction,C.renderStateCache)}}}ET.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=uxe[o[a]];n.commandList.push(s[c])}};function hxe(e,t,n,i,o,r){for(let s=0;s<t;++s){let a=e[s],c=a.derivedCommands.type;(!l(r)||r.indexOf(c)>-1)&&n(a,i,o)}}function dxe(e,t,n,i,o){for(let r=0;r<t;++r)n(e[r],i,o)}var Nut=[ya.OPAQUE_FRONT_FACE,ya.OPAQUE_BACK_FACE],kut=[ya.DEPTH_ONLY_FRONT_FACE,ya.DEPTH_ONLY_BACK_FACE,ya.DEPTH_ONLY_FRONT_AND_BACK_FACE];ET.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[Ge.GLOBE],a=e.indices[Ge.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),hxe(s,a,t,i,o,Nut))};ET.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let{context:r}=i,{uniformState:s}=r,a=e.commands[Ge.GLOBE],c=e.indices[Ge.GLOBE],d=e.commands[Ge.TERRAIN_CLASSIFICATION],u=e.indices[Ge.TERRAIN_CLASSIFICATION];if(c===0||u===0)return;let m=this._frontFaceTranslucent,p=this._backFaceTranslucent;if((!m||!p)&&dxe(d,u,t,i,o),!m&&!p)return;this._globeTranslucencyFramebuffer=n;let g=s.globeDepthTexture,f=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,hxe(a,c,t,i,o,kut),r.depthTexture){let x=n.packDepth(r,o);s.globeDepthTexture=x}dxe(d,u,t,i,o),s.globeDepthTexture=g,o.framebuffer=f};var fF=ET;var TPi=T(S(),1);var nPi=T(S(),1),jl=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function Hf(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new fi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new fi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ei({color:new B(0,0,0,0),owner:this}),this._clearCommand=new ei({color:new B(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(Hf.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Hf.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var Uut={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},backFunction:Un.NEVER,reference:0,mask:Ot.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},Dut={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},backFunction:Un.NEVER,reference:0,mask:Ot.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},But={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ot.setCesium3DTileBit(),stencilMask:Ot.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},Out=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,Yut=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;Hf.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Pt({context:e,width:s,height:a,pixelFormat:ot.DEPTH_STENCIL,pixelDatatype:qe.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new cd({context:e,width:s,height:a,format:vc.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let d,u;l(this._previousFramebuffer)?(d=n.getDepthStencilTexture(),u=n.getDepthStencilRenderbuffer()):(d=this._depthStencilTexture,u=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(d),l(u)&&this._fbo.setDepthStencilRenderbuffer(u),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(d),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Ue.fromCache(Uut),this._rsClassified=Ue.fromCache(Dut),this._rsDefault=Ue.fromCache(But)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let d=l(this._previousFramebuffer)?Yut:Out,u=new De({defines:["UNCLASSIFIED"],sources:[d]}),m=new De({sources:[d]});this._unclassifiedCommand=e.createViewportQuadCommand(u,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(m,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(jl,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Hf.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Hf.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Hf.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};Hf.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Hf.prototype.isDestroyed=function(){return!1};Hf.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),me(this)};var QV=Hf;var RPi=T(S(),1);function cB(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(cB.prototype,{total:{get:function(){return this._total}}});function Ty(e){let t=new Array(Wa.NUMBER_OF_JOB_TYPES);t[Wa.TEXTURE]=new cB(l(e)?e[Wa.TEXTURE]:10),t[Wa.PROGRAM]=new cB(l(e)?e[Wa.PROGRAM]:10),t[Wa.BUFFER]=new cB(l(e)?e[Wa.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}Ty.getTimestamp=_i;Object.defineProperties(Ty.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Ty.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Ty.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};Ty.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,d;for(d=0;d<c&&(r=n[d],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++d);if(d===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=Ty.getTimestamp();e.execute();let a=Ty.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var pF=Ty;var WPi=T(S(),1);function lB(e){e=y(e,y.EMPTY_OBJECT);let t=Xn(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=_i(),this._lastMsSampleTime=_i(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(lB.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});lB.prototype.update=function(e){let t=_i(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};lB.prototype.destroy=function(){return me(this)};var r0=lB;var kAi=T(S(),1);var OPi=T(S(),1);var al={};al.decodeRawMetadataValue=function(e,t,n){switch(e){case Ht.INT8:return t.getInt8(n);case Ht.UINT8:return t.getUint8(n);case Ht.INT16:return t.getInt16(n);case Ht.UINT16:return t.getUint16(n);case Ht.INT32:return t.getInt32(n);case Ht.UINT32:return t.getUint32(n);case Ht.INT64:return t.getBigInt64(n);case Ht.UINT64:return t.getBigUint64(n);case Ht.FLOAT32:return t.getFloat32(n);case Ht.FLOAT64:return t.getFloat64(n)}throw new de(`Invalid component type: ${e}`)};al.decodeRawMetadataValueComponent=function(e,t,n){let i=e.componentType,o=al.decodeRawMetadataValue(i,t,n);return e.normalized?Ht.normalize(o,i):o};al.decodeRawMetadataValueElement=function(e,t,n){let i=e.componentType,o=Ht.getSizeInBytes(i),r=e.type,s=Rt.getComponentCount(r),a=o*s;if(s>1){let u=Array(s);for(let m=0;m<s;m++){let p=n*a+m*o,g=al.decodeRawMetadataValueComponent(e,t,p);u[m]=g}return u}let c=n*a;return al.decodeRawMetadataValueComponent(e,t,c)};al.decodeRawMetadataValues=function(e,t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=al.decodeRawMetadataValueElement(e,n,s);r[s]=a}return r}return al.decodeRawMetadataValueElement(e,n,0)};al.convertToObjectType=function(e,t){if(!l(t)||e===Rt.SCALAR||e===Rt.STRING||e===Rt.BOOLEAN||e===Rt.ENUM)return t;let n=t.map(i=>Number(i));switch(e){case Rt.VEC2:return D.unpack(n,0,new D);case Rt.VEC3:return h.unpack(n,0,new h);case Rt.VEC4:return se.unpack(n,0,new h);case Rt.MAT2:return wi.unpack(n,0,new wi);case Rt.MAT3:return $.unpack(n,0,new $);case Rt.MAT4:return M.unpack(n,0,new M)}return t};al.decodeMetadataValues=function(e,t){let n=al.decodeRawMetadataValues(e,t);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=n[s],c=al.convertToObjectType(e.type,a);r[s]=c}return r}return al.convertToObjectType(e.type,n)};var bF=Object.freeze(al);var jPi=T(S(),1);function IT(){this._framebuffer=new fi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(IT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Hut(e,t,n){let{width:i,height:o}=n;e._framebuffer.update(t,i,o)}function zut(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates); + float globeDepth = czm_unpackDepth(globeDepthPacked); + float depth = texture(colorTexture, v_textureCoordinates).r; + out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0, + czm_packDepth(depth), globeDepthPacked); +} +`,{renderState:Ue.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}IT.prototype.update=function(e,t){Hut(this,e,t),zut(this,e,t)};var Kut=new se,Jut=new se(1,1/255,1/65025,1/16581375);IT.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=se.unpack(i,0,Kut);return se.divideByScalar(o,255,o),se.dot(o,Jut)};IT.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};IT.prototype.isDestroyed=function(){return!1};IT.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),me(this)};var gF=IT;var hAi=T(S(),1);var tvi=T(S(),1);function Qut(e,t){this.near=y(e,0),this.far=y(t,0);let n=Ge.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var yF=Qut;var xvi=T(S(),1);var ivi=T(S(),1),Sy=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function zf(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new fi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new fi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new fi,this._tempCopyDepthFramebuffer=new fi,this._updateDepthFramebuffer=new fi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(zf.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function fxe(e,t,n,i,o){let r=e._viewport;r.width=n,r.height=i;let s=!Ke.equals(r,o.viewport),a=s!==e._useScissorTest;e._useScissorTest=s,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),a=!0),(!l(e._rs)||!Ke.equals(r,e._rs.viewport)||a)&&(e._rs=Ue.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ue.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ue.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:bt.KEEP,zFail:bt.KEEP,zPass:bt.KEEP},backFunction:Un.NEVER,reference:Ot.CESIUM_3D_TILE_MASK,mask:Ot.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(Sy,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(jl,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(Sy,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(jl,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ei({color:new B(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}zf.prototype.update=function(e,t,n,i,o,r){let{width:s,height:a}=n,c=o?e.halfFloatingPointTexture?qe.HALF_FLOAT:qe.FLOAT:qe.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),fxe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._clearGlobeDepth=r};zf.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};zf.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};zf.prototype.executeUpdateDepth=function(e,t,n){let i=l(n)?n:t.framebuffer.depthStencilTexture;if(!this._clearGlobeDepth&&i===this.colorFramebufferManager.getDepthStencilTexture()){l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t);return}if(!l(this._updateDepthCommand))return;let o=this._updateDepthFramebuffer;if(!l(o.framebuffer)||o.getDepthStencilTexture()!==i||o.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture(),{width:s,height:a}=r;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,s,a),o.setColorTexture(r,0),o.setDepthStencilTexture(i),o.update(e,s,a),fxe(this,e,s,a,t)}this._tempCopyDepthTexture=i,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)};zf.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};zf.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(B.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};zf.prototype.isDestroyed=function(){return!1};zf.prototype.destroy=function(){return this._pickColorFramebuffer.destroy(),this._outputFramebuffer.destroy(),this._copyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.destroy(),this._updateDepthFramebuffer.destroy(),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),me(this)};var xF=zf;var Ivi=T(S(),1);function XT(){this._framebuffer=new fi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new fi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new Ke,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(XT.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function jut(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function qut(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?qe.HALF_FLOAT:qe.FLOAT:qe.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function $ut(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!Ke.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,Ke.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=Ke.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!Ke.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ue.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(Sy,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ei({color:new B(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}XT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;qut(this,n,o,r,e),$ut(this,n,o,r,i),this._useHdr=e};XT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};XT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};XT.prototype.isDestroyed=function(){return!1};XT.prototype.destroy=function(){return jut(this),me(this)};var _F=XT;var $vi=T(S(),1);var Wvi=T(S(),1),jV=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var vvi=T(S(),1),TF=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function s0(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new fi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new fi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new fi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new fi({createColorAttachments:!1}),this._opaqueClearCommand=new ei({color:new B(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ei({color:new B(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ei({color:new B(0,0,0,0),owner:this}),this._alphaClearCommand=new ei({color:new B(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new Ke,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function pxe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function Ej(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function bxe(e){pxe(e),Ej(e)}function emt(e,t,n,i){pxe(e),e._accumulationTexture=new Pt({context:t,width:n,height:i,pixelFormat:ot.RGBA,pixelDatatype:qe.FLOAT}),e._revealageTexture=new Pt({context:t,pixelFormat:ot.RGBA,pixelDatatype:qe.FLOAT,width:n,height:i,flipY:!1})}function tmt(e,t){Ej(e);let n=ie.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(Ej(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,d=e._adjustAlphaFBO.status===n;(!s||!a||!c||!d)&&(bxe(e),e._translucentMultipassSupport=!1,i=!1)}return i}s0.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,d=this._numSamples!==o;if((c||d)&&(this._numSamples=o,emt(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||d)&&!tmt(this,e))return;this._useHDR=i;let u=this,m,p;l(this._compositeCommand)||(m=new De({sources:[TF]}),this._translucentMRTSupport&&m.defines.push("MRT"),p={u_opaque:function(){return u._opaqueTexture},u_accumulation:function(){return u._accumulationTexture},u_revealage:function(){return u._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(m=new De({defines:["MRT"],sources:[jV]}),p={u_bgColor:function(){return u._translucentMRTClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(m=new De({sources:[jV]}),p={u_bgColor:function(){return u._translucentMultipassClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}),p={u_bgColor:function(){return u._alphaClearCommand.color},u_depthTexture:function(){return u._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(m,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!Ke.equals(this._viewport,t.viewport),f=g!==this._useScissorTest;this._useScissorTest=g,Ke.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=Ke.clone(t.viewport,this._scissorRectangle),f=!0),(!l(this._rs)||!Ke.equals(this._viewport,this._rs.viewport)||f)&&(this._rs=Ue.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var nmt={enabled:!0,color:new B(0,0,0,0),equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA},imt={enabled:!0,color:new B(0,0,0,0),equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationAlpha:Co.ONE},omt={enabled:!0,color:new B(0,0,0,0),equationRgb:Ga.ADD,equationAlpha:Ga.ADD,functionSourceRgb:Co.ZERO,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA};function Ij(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Ue.getState(i);r.depthMask=!1,r.blending=t,o=Ue.fromCache(r),n[i.id]=o}return o}function rmt(e,t,n){return Ij(t,nmt,e._translucentRenderStateCache,n)}function smt(e,t,n){return Ij(t,imt,e._translucentRenderStateCache,n)}function amt(e,t,n){return Ij(t,omt,e._alphaRenderStateCache,n)}var cmt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,lmt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,dmt=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function Xj(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(u){return De.replaceMain(u,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],d="";for(let u=0;u<c.length;u++){let m=c[u];d=`layout (location = ${m[1]}) out vec4 ${m[0]}; +${d}`}return a.sources.push(d),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function umt(e,t){return Xj(e,t,"translucentMRT",cmt)}function mmt(e,t){return Xj(e,t,"translucentMultipass",lmt)}function hmt(e,t){return Xj(e,t,"alphaMultipass",dmt)}s0.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=tt.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=umt(t,e.shaderProgram),n.translucentCommand.renderState=rmt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=tt.shallowClone(e,n.translucentCommand),n.alphaCommand=tt.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=mmt(t,e.shaderProgram),n.translucentCommand.renderState=smt(this,t,e.renderState),n.alphaCommand.shaderProgram=hmt(t,e.shaderProgram),n.alphaCommand.renderState=amt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function fmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:d}=a,u=t._hdr,m=i.framebuffer,p=d.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let f=0;f<o.length;++f){let x=o[f];x=c?x.derivedCommands.logDepth.command:x,x=u?x.derivedCommands.hdr.command:x;let _=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(_,t,i,g)}if(l(r)){let f=r.unclassifiedCommand,x=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=e._alphaFBO.framebuffer;for(let f=0;f<o.length;++f){let x=o[f];x=c?x.derivedCommands.logDepth.command:x,x=u?x.derivedCommands.hdr.command:x;let _=p&&x.receiveShadows?x.derivedCommands.oit.shadows.alphaCommand:x.derivedCommands.oit.alphaCommand;n(_,t,i,g)}if(l(r)){let f=r.unclassifiedCommand,x=p&&f.receiveShadows?f.derivedCommands.oit.shadows.alphaCommand:f.derivedCommands.oit.alphaCommand;n(x,t,i,g)}i.framebuffer=m}function pmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:d}=a,u=t._hdr,m=i.framebuffer,p=d.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let f=0;f<o.length;++f){let x=o[f];x=c?x.derivedCommands.logDepth.command:x,x=u?x.derivedCommands.hdr.command:x;let _=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(_,t,i,g)}if(l(r)){let f=r.unclassifiedCommand,x=p&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=m}s0.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){pmt(this,e,t,n,i,o);return}fmt(this,e,t,n,i,o)};s0.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};s0.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,B.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};s0.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};s0.prototype.isDestroyed=function(){return!1};s0.prototype.destroy=function(){return bxe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),me(this)};var SF=s0;var rwi=T(S(),1);function CF(){this._framebuffer=new fi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(CF.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function bmt(e){e._framebuffer.destroy()}function gmt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new ec(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new Ke},o.viewport=new Ke,e._passState=o}CF.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&gmt(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};CF.prototype.isDestroyed=function(){return!1};CF.prototype.destroy=function(){return bmt(this),me(this)};var VF=CF;var fwi=T(S(),1);function qV(e){let t=new ec(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new Ke},t.viewport=new Ke,this._context=e,this._fb=new fi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}qV.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return Ke.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var LF=new B;qV.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),d=0,u=0,m=0,p=-1;for(let g=0;g<s;++g){if(-a<=d&&d<=a&&-c<=u&&u<=c){let f=4*((c-u)*t+d+a);LF.red=B.byteToFloat(o[f]),LF.green=B.byteToFloat(o[f+1]),LF.blue=B.byteToFloat(o[f+2]),LF.alpha=B.byteToFloat(o[f+3]);let x=i.getObjectByPickColor(LF);if(l(x))return x}if(d===u||d<0&&-d===u||d>0&&d===1-u){let f=m;m=-p,p=f}d+=m,u+=p}};qV.prototype.readCenterPixel=function(e){let t=y(e.width,1),n=y(e.height,1),o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};qV.prototype.isDestroyed=function(){return!1};qV.prototype.destroy=function(){return this._fb.destroy(),me(this)};var RF=qV;var Twi=T(S(),1);function a0(){this._numSamples=1,this._colorFramebuffer=new fi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new fi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new B(0,0,0,0),this._clearCommand=new ei({color:new B(0,0,0,0),depth:1,owner:this})}function ymt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(a0.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});a0.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?qe.HALF_FLOAT:qe.FLOAT:qe.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};a0.prototype.clear=function(e,t,n){B.clone(n,this._clearCommand.color),B.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};a0.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};a0.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};a0.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};a0.prototype.isDestroyed=function(){return!1};a0.prototype.destroy=function(){return ymt(this),me(this)};var WT=a0;var yFi=T(S(),1);var Lwi=T(S(),1);function PT(){}PT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};PT.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=De.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let d=0;d<a;++d)o[d]=De.replaceMain(o[d],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`)}return new De({defines:i,sources:o})};PT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=De.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let u=0;u<c;++u)r[u]=De.replaceMain(r[u],"czm_shadow_cast_main");let d="";return t&&(a||(d+=`in vec3 v_positionEC; +`),d+=`uniform vec4 shadowMap_lightPositionEC; +`),i?d+=`void main() +{ +`:d+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?d+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?d+=` out_FragColor = vec4(1.0); +`:d+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,d+=`} +`,r.push(d),new De({defines:o,sources:r})};PT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,d=e.debugCascadeColors,u=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${d}${u}${t}${n}${i}`};PT.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new De({defines:i,sources:o})};PT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=De.findNormalVarying(e),s=!i&&l(r)||i&&o,a=De.findPositionVarying(e),c=l(a),d=t._usesDepthTexture,u=t._polygonOffsetSupported,m=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,f=t.debugCascadeColors,x=t.softShadows,_=m?t._pointBias:i?t._terrainBias:t._primitiveBias,C=e.defines.slice(0),V=e.sources.slice(0),L=V.length;for(let I=0;I<L;++I)V[I]=De.replaceMain(V[I],"czm_shadow_receive_main");m?C.push("USE_CUBE_MAP_SHADOW"):d&&C.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!m&&C.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?C.push("ENABLE_VERTEX_LIGHTING"):C.push("ENABLE_DAYNIGHT_SHADING")),n&&_.normalShading&&s&&(C.push("USE_NORMAL_SHADING"),_.normalShadingSmooth>0&&C.push("USE_NORMAL_SHADING_SMOOTH"));let Z="";m?Z+=`uniform samplerCube shadowMap_textureCube; +`:Z+=`uniform sampler2D shadowMap_texture; +`;let G;return c?G=` return vec4(${a}, 1.0); +`:G=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,Z+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${G}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${_.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,Z+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,Z+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?Z+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:u||(Z+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),m?Z+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?Z+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?Z+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${f?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:Z+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,Z+=` out_FragColor.rgb *= visibility; +} +`,V.push(Z),new De({defines:C,sources:V})};var Kf=PT;function Jf(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(zt.isInternetExplorer()||zt.isEdge()||(zt.isChrome()||zt.isFirefox())&&zt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new M,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new se,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new dB,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new ce,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new D,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Pr:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new se,new se],this._cascadeMatrices=[new M,new M,new M,new M],this._cascadeDistances=new se;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new xmt(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,Pj(this),this._clearCommand=new ei({depth:1,color:new B}),this._clearPassState=new ec(t),this._size=y(e.size,2048),this.size=this._size}Jf.MAXIMUM_DISTANCE=2e4;function xmt(e){this.camera=new dB,this.passState=new ec(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function Wj(e,t){return Ue.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function Pj(e){let t=!e._usesDepthTexture;e._primitiveRenderState=Wj(t,e._primitiveBias),e._terrainRenderState=Wj(t,e._terrainBias),e._pointRenderState=Wj(t,e._pointBias)}Jf.prototype.debugCreateRenderStates=function(){Pj(this)};Object.defineProperties(Jf.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){Lmt(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function vj(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function _mt(e,t){let n=new cd({context:t,width:e._textureSize.x,height:e._textureSize.y,format:vc.DEPTH_COMPONENT16}),i=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,sampler:en.NEAREST}),o=new Wr({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Tmt(e,t){let n=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ot.DEPTH_STENCIL,pixelDatatype:qe.UNSIGNED_INT_24_8,sampler:en.NEAREST}),i=new Wr({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function Smt(e,t){let n=new cd({context:t,width:e._textureSize.x,height:e._textureSize.y,format:vc.DEPTH_COMPONENT16}),i=new yr({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,sampler:en.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Wr({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function xxe(e,t){e._isPointLight?Smt(e,t):e._usesDepthTexture?Tmt(e,t):_mt(e,t)}function Cmt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==ie.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,Pj(e),vj(e),xxe(e,t))}function Vmt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(vj(e),xxe(e,t),Cmt(e,t),_xe(e,t))}function _xe(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function Lmt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=Bt.maximumCubeMapSize>=t?t:Bt.maximumCubeMapSize,o.x=t,o.y=t;let r=new Ke(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=Bt.maximumTextureSize>=t?t:Bt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new Ke(0,0,t,t)):i===4&&(t=Bt.maximumTextureSize>=t*2?t:Bt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new Ke(0,0,t,t),n[1].passState.viewport=new Ke(t,0,t,t),n[2].passState.viewport=new Ke(0,t,t,t),n[3].passState.viewport=new Ke(t,t,t,t));e._clearPassState.viewport=new Ke(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,d=a.y/o.y,u=a.width/o.x,m=a.height/o.y;s.textureOffsets=new M(u,0,0,c,0,m,0,d,0,0,1,0,0,0,0,1)}}var Rmt=new Ke;function Zmt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=Ge.OVERLAY,i}function Gmt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Rmt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Zmt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!Ke.equals(a.renderState.viewport,s))&&(a.renderState=Ue.fromCache({viewport:Ke.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var Qf=new Array(8);Qf[0]=new se(-1,-1,-1,1);Qf[1]=new se(1,-1,-1,1);Qf[2]=new se(1,1,-1,1);Qf[3]=new se(-1,1,-1,1);Qf[4]=new se(-1,-1,1,1);Qf[5]=new se(1,-1,1,1);Qf[6]=new se(1,1,1,1);Qf[7]=new se(-1,1,1,1);var Cy=new M,wj=new Array(8);for(let e=0;e<8;++e)wj[e]=new se;function Emt(e,t){let n=new Gt({geometry:new Lm({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:Kt.fromColor(t)}}),i=new Gt({geometry:new Tb({radius:.5}),attributes:{color:Kt.fromColor(t)}});return new In({geometryInstances:[n,i],appearance:new dn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var Imt=[B.RED,B.GREEN,B.BLUE,B.MAGENTA],Xmt=new h;function Wmt(e,t){Gmt(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Of({camera:e._sceneCamera,color:B.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Of({camera:e._shadowMapCamera,color:B.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Of({camera:e._passes[i].camera,color:Imt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=we.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,Xmt),a=M.fromTranslationQuaternionRotationScale(i,o,s,Cy);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Emt(a,B.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Of({camera:e._shadowMapCamera,color:B.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function dB(){this.viewMatrix=new M,this.inverseViewMatrix=new M,this.frustum=void 0,this.positionCartographic=new he,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new M}dB.prototype.clone=function(e){M.clone(e.viewMatrix,this.viewMatrix),M.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),he.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var Pmt=new M(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);dB.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return M.multiply(t,e,this.viewProjectionMatrix),M.multiply(Pmt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var vmt=new Array(5),wmt=new Li,Fmt=new Array(4),Txe=new h,Sxe=new h;function Amt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,d=r/o,u=.9,m=!1;t.shadowState.closestObjectSize<200&&(m=!0,u=.9);let p=Fmt,g=vmt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let F=(a+1)/s,b=o*Math.pow(d,F),R=o+c*F,E=W.lerp(R,b,u);g[a+1]=E,p[a]=E-g[a]}if(m){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let F=g[0];for(a=0;a<s-1;++a)F+=p[a],g[a+1]=F}se.unpack(g,0,e._cascadeSplits[0]),se.unpack(g,1,e._cascadeSplits[1]),se.unpack(p,0,e._cascadeDistances);let f=n.frustum,x=f.left,_=f.right,C=f.bottom,V=f.top,L=f.near,Z=f.far,G=n.positionWC,I=n.directionWC,v=n.upWC,P=i.frustum.clone(wmt),w=n.getViewProjection();for(a=0;a<s;++a){P.near=g[a],P.far=g[a+1];let F=M.multiply(P.projectionMatrix,i.viewMatrix,Cy),b=M.inverse(F,Cy),R=M.multiply(w,b,Cy),E=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Txe),X=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Sxe);for(let Y=0;Y<8;++Y){let k=se.clone(Qf[Y],wj[Y]);M.multiplyByVector(R,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,E,E),h.maximumByComponent(k,X,X)}E.x=Math.max(E.x,0),E.y=Math.max(E.y,0),E.z=0,X.x=Math.min(X.x,1),X.y=Math.min(X.y,1),X.z=Math.min(X.z,1);let A=e._passes[a],N=A.camera;N.clone(n);let O=N.frustum;O.left=x+E.x*(_-x),O.right=x+X.x*(_-x),O.bottom=C+E.y*(V-C),O.top=C+X.y*(V-C),O.near=L+E.z*(Z-L),O.far=L+X.z*(Z-L),A.cullingVolume=N.frustum.computeCullingVolume(G,I,v);let U=e._cascadeMatrices[a];M.multiply(N.getViewProjection(),i.inverseViewMatrix,U),M.multiply(A.textureOffsets,U,U)}}var Mmt=new M,Nmt=new h,kmt=new h,gxe=new h;function Umt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=M.multiply(i.frustum.projectionMatrix,i.viewMatrix,Cy),r=M.inverse(o,Cy),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,W.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,Nmt);a=h.cross(c,s,kmt),h.normalize(a,a),h.normalize(c,c);let d=h.fromElements(0,0,0,gxe),u=M.computeView(d,s,a,c,Mmt),m=M.multiply(u,r,Cy),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Txe),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Sxe);for(let Z=0;Z<8;++Z){let G=se.clone(Qf[Z],wj[Z]);M.multiplyByVector(m,G,G),h.divideByScalar(G,G.w,G),h.minimumByComponent(G,p,p),h.maximumByComponent(G,g,g)}g.z+=1e3,p.z-=10;let f=gxe;f.x=-(.5*(p.x+g.x)),f.y=-(.5*(p.y+g.y)),f.z=-g.z;let x=M.fromTranslation(f,Cy);u=M.multiply(x,u,u);let _=.5*(g.x-p.x),C=.5*(g.y-p.y),V=g.z-p.z,L=n.frustum;L.left=-_,L.right=_,L.bottom=-C,L.top=C,L.near=.01,L.far=V,M.clone(u,n.viewMatrix),M.inverse(u,n.inverseViewMatrix),M.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var Dmt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],Bmt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],Omt=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function Ymt(e,t){let n=new Li;n.fov=W.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=Dmt[i],o.upWC=Bmt[i],o.rightWC=Omt[i],M.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),M.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Hmt=new h,zmt=new h,Cxe=new ce,yxe=Cxe.center;function Kmt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=Cxe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Hmt),s=h.negate(i.directionWC,zmt),a=h.dot(r,s);if(e.fadingEnabled){let c=W.clamp(a/.1,0,1);e._darkness=W.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===Jt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ce.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,yxe),yxe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Jt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),ce.clone(o,e._boundingSphere)}}function Jmt(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;M.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),M.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=io.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Kmt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}Jf.prototype.update=function(e){if(Jmt(this,e),this._needsUpdate)if(Vmt(this,e.context),this._isPointLight&&Ymt(this,e),this._cascadesEnabled&&(Umt(this,e),this._numberOfCascades>1&&Amt(this,e)),this._isPointLight)this._shadowMapCullingVolume=ms.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;M.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Wmt(this,e)};Jf.prototype.updatePass=function(e,t){_xe(this,e,t)};var Qmt=new D;function Vxe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=Qmt;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,se.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return se.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new se,combinedUniforms2:new se};return Tt(t,o,!1)}function jmt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=tt.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let d=n.shaderProgram,u=n.pass===Ge.GLOBE,m=n.pass!==Ge.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,f=Kf.getShadowCastShaderKeyword(p,u,g,m);if(s=i.shaderCache.getDerivedShaderProgram(d,f),!l(s)){let _=d.vertexShaderSource,C=d.fragmentShaderSource,V=Kf.createShadowCastVertexShader(_,p,u),L=Kf.createShadowCastFragmentShader(C,p,g,m);s=i.shaderCache.createDerivedShaderProgram(d,f,{vertexShaderSource:V,fragmentShaderSource:L,attributeLocations:d._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:u&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ye(a,!1),a.cull=Ye(a.cull,!1),a.cull.enabled=!1,a=Ue.fromCache(a)),c=Vxe(e,n.uniformMap,u)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}Jf.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,d=t.pass===Ge.GLOBE,u=!1;if(d&&(u=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let m,p;l(o.receiveCommand)&&(m=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=tt.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,f=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(m)||f||n||g){let x=Kf.getShadowReceiveShaderKeyword(e[0],t.castShadows,d,u);if(m=i.shaderCache.getDerivedShaderProgram(s,x),!l(m)){let _=Kf.createShadowReceiveVertexShader(a,d,u),C=Kf.createShadowReceiveFragmentShader(c,e[0],t.castShadows,d,u);m=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:_,fragmentShaderSource:C,attributeLocations:s._attributeLocations})}p=Vxe(e[0],t.uniformMap,d)}o.receiveCommand.shaderProgram=m,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};Jf.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=jmt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};Jf.prototype.isDestroyed=function(){return!1};Jf.prototype.destroy=function(){vj(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return me(this)};var c0=Jf;var BFi=T(S(),1);var _Fi=T(S(),1),ZF=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var SFi=T(S(),1),vT=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var qmt=!1;function Vy(e){this._drawClassificationFBO=new fi({createDepthAttachments:!1}),this._accumulationFBO=new fi({createDepthAttachments:!1}),this._packFBO=new fi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ei({color:new B(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ei({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new Ke,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(Vy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function Lxe(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function Rxe(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function $mt(e,t,n,i){Lxe(e),e._translucentDepthStencilTexture=new Pt({context:t,width:n,height:i,pixelFormat:ot.DEPTH_STENCIL,pixelDatatype:qe.UNSIGNED_INT_24_8,sampler:en.NEAREST})}function eht(e,t,n,i){Rxe(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function tht(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&($mt(e,t,o,r),eht(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new De({sources:[ZF]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new De({sources:[vT]}),a={colorTexture:function(){return e._textureToComposite}},qmt&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let u=e._compositeCommand,m=u.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(m,"pick",{vertexShaderSource:m.vertexShaderSource,fragmentShaderSource:new De({sources:s.sources,defines:["PICK"]}),attributeLocations:m._attributeLocations}),g=tt.shallowClone(u);g.shaderProgram=p,u.derivedCommands.pick=g}l(e._copyCommand)||(s=new De({sources:[vT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new De({sources:[vT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!Ke.equals(e._viewport,n.viewport),d=c!==e._useScissorTest;e._useScissorTest=c,Ke.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=Ke.clone(n.viewport,e._scissorRectangle),d=!0),(!l(e._rsDepth)||!Ke.equals(e._viewport,e._rsDepth.viewport)||d)&&(e._rsDepth=Ue.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!Ke.equals(e._viewport,e._rsAccumulate.viewport)||d)&&(e._rsAccumulate=Ue.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,reference:Ot.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!Ke.equals(e._viewport,e._rsComp.viewport)||d)&&(e._rsComp=Ue.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Vy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=e.frameState.useLogDepth,s=e.context,a=n.framebuffer;for(let c=0;c<i.length;++c){let d=i[c];if(d=r?d.derivedCommands.logDepth.command:d,d.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}}if(this._hasTranslucentDepth){tht(this,s,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(s,n);for(let c=0;c<i.length;++c){let d=i[c];if(d=r?d.derivedCommands.logDepth.command:d,!d.depthForTranslucentClassification)continue;let u=d.derivedCommands.depth.depthOnlyCommand;t(u,e,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(s,n)),n.framebuffer=a}};Vy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(Ge.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[Ge.CESIUM_3D_TILE_CLASSIFICATION],d=i.indices[Ge.CESIUM_3D_TILE_CLASSIFICATION];for(let u=0;u<d;++u)t(c[u],e,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};Vy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),nht(this,e,t)};function nht(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}Vy.prototype.isSupported=function(){return this._supported};Vy.prototype.isDestroyed=function(){return!1};Vy.prototype.destroy=function(){return Lxe(this),Rxe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),me(this)};var GF=Vy;function iht(){this.command=void 0,this.near=void 0,this.far=void 0}function uB(e,t,n){let i=e.context,o;i.depthTexture&&(o=new xF);let r;e._useOIT&&i.depthTexture&&(r=new SF(i));let s=new ec(i);s.viewport=Ke.clone(n),this.camera=t,this._cameraClone=io.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new RF(i),this.pickDepthFramebuffer=new VF,this.sceneFramebuffer=new WT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new _F,this.oit=r,this.translucentTileClassification=new GF(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var Fj=new h,Aj=new h;function oht(e,t,n){let i=Math.max(h.maximumComponent(h.abs(e.position,Fj)),h.maximumComponent(h.abs(t.position,Aj))),o=1/Math.max(1,i);return h.multiplyByScalar(e.position,o,Fj),h.multiplyByScalar(t.position,o,Aj),h.equalsEpsilon(Fj,Aj,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&M.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}uB.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return oht(t,n,W.EPSILON15)?(this._cameraStartFired&&_i()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=_i(),io.clone(t,n),!0)};function rht(e,t,n,i){let{frameState:o}=t,{camera:r,useLogDepth:s}=o,a=s?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,c=t.mode===oe.SCENE2D,d=t.nearToFarDistance2D;i*=1+W.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let u;c?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),u=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):u=Math.ceil(Math.log(i/n)/Math.log(a));let{frustumCommandsList:m}=e;m.length=u;for(let p=0;p<u;++p){let g,f;c?(g=Math.min(i-d,n+p*d),f=Math.min(i,g+d)):(g=Math.max(n,Math.pow(a,p)*n),f=Math.min(i,a*g));let x=m[p];l(x)?(x.near=g,x.far=f):x=m[p]=new yF(g,f)}}function sht(e,t,n){let{command:i,near:o,far:r}=n;t.debugShowFrustums&&(i.debugOverlappingFrustums=0);let{frustumCommandsList:s}=e;for(let a=0;a<s.length;++a){let c=s[a];if(o>c.far)continue;if(r<c.near)break;let d=i.pass,u=c.indices[d]++;if(c.commands[d][u]=i,t.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<a),i.executeInClosestFrustum)break}if(t.debugShowFrustums){let{debugFrustumStatistics:a}=e,{debugOverlappingFrustums:c}=i,d=a.commandsInFrustums;d[c]=l(d[c])?d[c]+1:1,++a.totalCommands}t.updateDerivedCommands(i)}var Zxe=new ms,aht=new La;uB.prototype.createPotentiallyVisibleSet=function(e){let{frameState:t}=e,{camera:n,commandList:i,shadowState:o}=t,{positionWC:r,directionWC:s,frustum:a}=n,c=e._computeCommandList,d=e._overlayCommandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let u=this.frustumCommandsList;for(let w=0;w<u.length;++w)for(let F=0;F<Ge.NUMBER_OF_PASSES;++F)u[w].indices[F]=0;c.length=0,d.length=0;let m=this._commandExtents,p=m.length,g=0,f=+Number.MAX_VALUE,x=-Number.MAX_VALUE,{shadowsEnabled:_}=o,C=+Number.MAX_VALUE,V=-Number.MAX_VALUE,L=Number.MAX_VALUE,Z=t.mode===oe.SCENE3D?t.occluder:void 0,{cullingVolume:G}=t,I=Zxe.planes;for(let w=0;w<5;++w)I[w]=G.planes[w];G=Zxe;for(let w=0;w<i.length;++w){let F=i[w],{pass:b,boundingVolume:R}=F;if(b===Ge.COMPUTE)c.push(F);else if(b===Ge.OVERLAY)d.push(F);else{let E,X;if(l(R)){if(!e.isVisible(G,F,Z))continue;let N=R.computePlaneDistances(r,s,aht);if(E=N.start,X=N.stop,f=Math.min(f,E),x=Math.max(x,X),_&&F.receiveShadows&&E<c0.MAXIMUM_DISTANCE&&!(b===Ge.GLOBE&&E<-100&&X>100)){let O=X-E;b!==Ge.GLOBE&&E<100&&(L=Math.min(L,O)),C=Math.min(C,E),V=Math.max(V,X)}}else F instanceof ei?(E=a.near,X=a.far):(E=a.near,X=a.far,f=Math.min(f,E),x=Math.max(x,X));let A=m[g];l(A)||(A=m[g]=new iht),A.command=F,A.near=E,A.far=X,g++}}_&&(C=Math.min(Math.max(C,a.near),a.far),V=Math.max(Math.min(V,a.far),C),o.nearPlane=C,o.farPlane=V,o.closestObjectSize=L),rht(this,e,f,x);for(let w=0;w<g;w++)sht(this,e,m[w]);if(g<p)for(let w=g;w<p;w++){let F=m[w];if(!l(F.command))break;F.command=void 0}let v=u.length,{frustumSplits:P}=t;P.length=v+1;for(let w=0;w<v;++w)P[w]=u[w].near,w===v-1&&(P[w+1]=u[w].far)};uB.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e=this.pickDepths;for(let t=0;t<e.length;++t)e[t].destroy()};var wT=uB;var Exe=.1,cht=new rm({pass:wo.MOST_DETAILED_PRELOAD}),lht=new rm({pass:wo.MOST_DETAILED_PICK}),EF=new rm({pass:wo.PICK});function $s(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new Ke(0,0,1,1),n=new io(e);n.frustum=new an({width:Exe,aspectRatio:1,near:.1}),this._pickOffscreenView=new wT(e,n,t)}$s.prototype.update=function(){this._pickPositionCacheDirty=!0};$s.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new gF,n[t]=i),i};var dht=new Pr,uht=new h,mB=new h,mht=new D,hht=new M;function fht(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let d=2*(o.height-t.y-o.y)/o.height-1;d*=(s.top-s.bottom)*.5;let u=M.clone(r.transform,hht);r._setTransform(M.IDENTITY);let m=h.clone(r.position,uht);h.multiplyByScalar(r.right,c,mB),h.add(mB,m,m),h.multiplyByScalar(r.up,d,mB),h.add(mB,m,m),r._setTransform(u),e.mode===oe.SCENE2D&&h.fromElements(m.z,m.x,m.y,m);let p=s.getPixelDimensions(o.width,o.height,1,1,mht),g=dht;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(m,r.directionWC,r.upWC)}var pht=new sl,bht=new D;function ght(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),d=s.aspectRatio*c,u=2*(t.x-o.x)/o.width-1,m=2*(o.height-t.y-o.y)/o.height-1,p=u*a*d,g=m*a*c,f=s.getPixelDimensions(o.width,o.height,1,1,bht),x=f.x*n*.5,_=f.y*i*.5,C=pht;return C.top=g+_,C.bottom=g-_,C.right=p+x,C.left=p-x,C.near=a,C.far=s.far,C.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function hB(e,t,n,i,o){let r=e.camera.frustum;return r instanceof an||r instanceof Pr?fht(e,t,n,i,o):ght(e,t,n,i,o)}var fB=new Ke(0,0,3,3),pB=new D,IF=new B(0,0,0,0);function Mj(e,t,n,i,o){return o.width=y(n,3),o.height=y(i,o.width),o.x=t.x-(o.width-1)*.5,o.y=e-t.y-(o.height-1)*.5,o}$s.prototype.pick=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let d=s.passState;d.viewport=Ke.clone(a,d.viewport);let u=Mi.transformWindowToDrawingBuffer(e,t,pB),m=Mj(o.drawingBufferHeight,u,n,i,fB);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=hB(e,u,m.width,m.height,a),r.invertClassification=!1,r.passes.pick=!0,r.tilesetPassState=EF,o.uniformState.update(r),e.updateEnvironment(),d=c.begin(m,a),e.updateAndExecuteCommands(d,IF),e.resolveFramebuffers(d);let p=c.end(m);return o.endFrame(),p};$s.prototype.pickVoxelCoordinate=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let d=s.passState;d.viewport=Ke.clone(a,d.viewport);let u=Mi.transformWindowToDrawingBuffer(e,t,pB),m=Mj(o.drawingBufferHeight,u,n,i,fB);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=hB(e,u,m.width,m.height,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=EF,o.uniformState.update(r),e.updateEnvironment(),d=c.begin(m,a),e.updateAndExecuteCommands(d,IF),e.resolveFramebuffers(d);let p=c.readCenterPixel(m);return o.endFrame(),p};$s.prototype.pickMetadata=function(e,t,n){let{context:i,frameState:o,defaultView:r}=e,{viewport:s,pickFramebuffer:a}=r;e.view=r,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=r.passState;c.viewport=Ke.clone(s,c.viewport);let d=Mi.transformWindowToDrawingBuffer(e,t,pB),u=Mj(i.drawingBufferHeight,d,1,1,fB);e.jobScheduler.disableThisFrame(),e.updateFrameState(),o.cullingVolume=hB(e,d,u.width,u.height,s),o.invertClassification=!1,o.passes.pick=!0,o.tilesetPassState=EF,o.pickingMetadata=!0,o.pickedMetadataInfo=n,i.uniformState.update(o),e.updateEnvironment(),c=a.begin(u,s),e.updateAndExecuteCommands(c,IF);let m=e._environmentState.useOIT;e._environmentState.useOIT=!1,e.resolveFramebuffers(c),e._environmentState.useOIT=m;let p=a.readCenterPixel(u);return i.endFrame(),o.pickingMetadata=!1,bF.decodeMetadataValues(n.classProperty,p)};function yht(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=Ke.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=hB(e,t,1,1,s),o.tilesetPassState=EF,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,IF),e.resolveFramebuffers(c),i.endFrame()}var xht=new Li,_ht=new sl,Tht=new an,Sht=new Pr;$s.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let d=Mi.transformWindowToDrawingBuffer(e,t,pB);e.pickTranslucentDepth?yht(e,d):(e.updateFrameState(),c.update(r),e.updateEnvironment()),d.y=e.drawingBufferHeight-d.y;let u;l(s.frustum.fov)?u=s.frustum.clone(xht):l(s.frustum.infiniteProjectionMatrix)?u=s.frustum.clone(_ht):l(s.frustum.width)?u=s.frustum.clone(Tht):u=s.frustum.clone(Sht);let{frustumCommandsList:m}=a,p=m.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(o,d.x,d.y);if(l(x)&&x>0&&x<1){let _=m[g],C;return e.mode===oe.SCENE2D?(C=s.position.z,s.position.z=C-_.near+1,u.far=Math.max(1,_.far-_.near),u.near=1,c.update(r),c.updateFrustum(u)):(u.near=_.near*(g!==0?e.opaqueFrustumNearOffset:1),u.far=_.far,c.updateFrustum(u)),n=Mi.drawingBufferToWorldCoordinates(e,d,x,n),e.mode===oe.SCENE2D&&(s.position.z=C,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var Cht=new he;$s.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==oe.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,Cht);o.cartographicToCartesian(r,n)}return n};function Ixe(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let d=c.object,u=c.position,m=c.exclude;if(l(u)&&!l(d)){o.push(c);break}if(!l(d)||!l(d.primitive)||!m&&(o.push(c),0>=--e))break;let p=d.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(d.id)&&(i=p.getGeometryInstanceAttributes(d.id),l(i)&&l(i.show)&&(g=!0,i.show=xn.toValue(!1,i.show),s.push(i))),d instanceof Ns&&(g=!0,d.show=!1,a.push(d)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=xn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}$s.prototype.drillPick=function(e,t,n,i,o){let r=this;return Ixe(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var Gxe=new h,Vht=new h;function Lht(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function Xxe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,Gxe),s=h.cross(o,r,Gxe),a=h.cross(o,s,Vht);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,Exe),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Rht(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=Xxe(e,o,r,a),d=cht;d.camera=a,d.cullingVolume=c;let u=!0,m=s.length;for(let p=0;p<m;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,d),u=u&&d.ready)}return u&&n._completePick(),u}$s.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Rht(this,e,t[n])&&t.splice(n--,1)};function Wxe(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof kl&&Wxe(o,t,n))}}function bB(e,t,n,i,o,r){let s=[];if(Wxe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new Lht(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Zht(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Ght(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,d=a.uniformState,u=e._pickOffscreenView;t.view=u,Xxe(e,n,o,u.camera);let m=Ke.clone(u.viewport,fB),p=u.pickFramebuffer.begin(m,u.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=lht:c.tilesetPassState=EF,d.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(p,IF),t.resolveFramebuffers(p);let g,f=u.pickFramebuffer.end(m);if(t.context.depthTexture){let{frustumCommandsList:x}=u,_=x.length;for(let C=0;C<_;++C){let L=e.getPickDepth(t,C).getDepth(a,0,0);if(l(L)&&L>0&&L<1){let Z=x[C],G=Z.near*(C!==0?t.opaqueFrustumNearOffset:1),I=Z.far,v=G+L*(I-G);g=pn.getPoint(n,v);break}}}if(t.view=t.defaultView,a.endFrame(),l(f)||l(g))return{object:f,position:g,exclude:!l(g)&&r||Zht(f,i)}}function Pxe(e,t,n,i,o,r,s,a){return Ixe(i,function(){return Ght(e,t,n,o,r,s,a)})}function $V(e,t,n,i,o,r,s){let a=Pxe(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function vxe(e,t,n,i,o,r,s,a){return Pxe(e,t,n,i,o,r,s,a)}function gB(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}$s.prototype.pickFromRay=function(e,t,n,i){return $V(this,e,t,n,i,!1,!1)};$s.prototype.drillPickFromRay=function(e,t,n,i,o){return vxe(this,e,t,n,i,o,!1,!1)};$s.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=pn.clone(t),n=l(n)?n.slice():n,gB(e,bB(o,e,t,n,i,function(){return $V(o,e,t,n,i,!1,!0)}))};$s.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=pn.clone(t),i=l(i)?i.slice():i,gB(e,bB(r,e,t,i,o,function(){return vxe(r,e,t,n,i,o,!1,!0)}))};var Eht=new h,Iht=new h,Xht=new pn,wxe=new he;function Nj(e,t){let n=e.ellipsoid,i=li._defaultMaxTerrainHeight,o=n.geodeticSurfaceNormalCartographic(t,Iht),r=he.toCartesian(t,n,Eht),s=Xht;s.origin=r,s.direction=o;let a=new pn;return pn.getPoint(s,i,a.origin),h.negate(o,a.direction),a}function Fxe(e,t){let n=e.ellipsoid,i=he.fromCartesian(t,n,wxe);return Nj(e,i)}function Axe(e,t){let n=e.ellipsoid;return he.fromCartesian(t,n,wxe).height}function Wht(e,t,n,i,o){let r=Nj(t,n);return bB(e,t,r,i,o,function(){let s=$V(e,t,r,i,o,!0,!0);if(l(s))return Axe(t,s.position)})}function Pht(e,t,n,i,o,r){let s=Fxe(t,n);return bB(e,t,s,i,o,function(){let a=$V(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}$s.prototype.sampleHeight=function(e,t,n,i){let o=Nj(e,t),r=$V(this,e,o,n,i,!0,!1);if(l(r))return Axe(e,r.position)};$s.prototype.clampToHeight=function(e,t,n,i,o){let r=Fxe(e,t),s=$V(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};$s.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Wht(this,e,t[s],n,i);return gB(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};$s.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Pht(this,e,t[s],n,i,t[s]);return gB(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};$s.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var XF=$s;var hNi=T(S(),1);var U9i=T(S(),1);var DAi=T(S(),1),WF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var OAi=T(S(),1),PF=`precision highp float; + +uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +vec3 pixelToEye(vec2 screenCoordinate) +{ + vec2 uv = screenCoordinate / czm_viewport.zw; + float depth = czm_readDepth(depthTexture, uv); + vec2 xy = 2.0 * uv - vec2(1.0); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + return posEC.xyz / posEC.w; +} + +// Reconstruct surface normal in eye coordinates, avoiding edges +vec3 getNormalXEdge(vec3 positionEC) +{ + // Find the 3D surface positions at adjacent screen pixels + vec2 centerCoord = gl_FragCoord.xy; + vec3 positionLeft = pixelToEye(centerCoord + vec2(-1.0, 0.0)); + vec3 positionRight = pixelToEye(centerCoord + vec2(1.0, 0.0)); + vec3 positionUp = pixelToEye(centerCoord + vec2(0.0, 1.0)); + vec3 positionDown = pixelToEye(centerCoord + vec2(0.0, -1.0)); + + // Compute potential tangent vectors + vec3 dx0 = positionEC - positionLeft; + vec3 dx1 = positionRight - positionEC; + vec3 dy0 = positionEC - positionDown; + vec3 dy1 = positionUp - positionEC; + + // The shorter tangent is more likely to be on the same surface + vec3 dx = length(dx0) < length(dx1) ? dx0 : dx1; + vec3 dy = length(dy0) < length(dy1) ? dy0 : dy1; + + return normalize(cross(dx, dy)); +} + +void main(void) +{ + vec3 positionEC = pixelToEye(gl_FragCoord.xy); + + if (positionEC.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec3 normalEC = getNormalXEdge(positionEC); + + float ao = 0.0; + + const int ANGLE_STEPS = 4; + float angleStepScale = 1.0 / float(ANGLE_STEPS); + float angleStep = angleStepScale * czm_twoPi; + float cosStep = cos(angleStep); + float sinStep = sin(angleStep); + mat2 rotateStep = mat2(cosStep, sinStep, -sinStep, cosStep); + + // Initial sampling direction (different for each pixel) + const float randomTextureSize = 255.0; + vec2 randomTexCoord = fract(gl_FragCoord.xy / randomTextureSize); + float randomVal = texture(randomTexture, randomTexCoord).x; + vec2 sampleDirection = vec2(cos(angleStep * randomVal), sin(angleStep * randomVal)); + + // Loop over sampling directions + for (int i = 0; i < ANGLE_STEPS; i++) + { + sampleDirection = rotateStep * sampleDirection; + + float localAO = 0.0; + vec2 radialStep = stepSize * sampleDirection; + + for (int j = 0; j < 6; j++) + { + // Step along sampling direction, away from output pixel + vec2 newCoords = floor(gl_FragCoord.xy + float(j + 1) * radialStep) + vec2(0.5); + + // Exit if we stepped off the screen + if (clamp(newCoords, vec2(0.0), czm_viewport.zw) != newCoords) + { + break; + } + + vec3 stepPositionEC = pixelToEye(newCoords); + vec3 stepVector = stepPositionEC - positionEC; + float stepLength = length(stepVector); + + if (stepLength > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalEC, normalize(stepVector)), 0.0, 1.0); + if (dotVal < bias) + { + dotVal = 0.0; + } + + float weight = stepLength / lengthCap; + weight = 1.0 - weight * weight; + localAO = max(localAO, dotVal * weight); + } + ao += localAO; + } + + ao *= angleStepScale; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var HAi=T(S(),1),vF=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var KAi=T(S(),1),wF=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var QAi=T(S(),1),FF=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var qAi=T(S(),1),AF=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var eMi=T(S(),1),MF=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var nMi=T(S(),1),NF=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var oMi=T(S(),1),kF=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var sMi=T(S(),1),UF=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var cMi=T(S(),1),DF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var dMi=T(S(),1),BF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_pbrNeutralTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var mMi=T(S(),1),OF=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var fMi=T(S(),1),Ly=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var bMi=T(S(),1),YF=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var yMi=T(S(),1),HF=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var _Mi=T(S(),1),zF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var SMi=T(S(),1),KF=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var VMi=T(S(),1),JF=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;var RMi=T(S(),1);/** * @license * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. * @@ -392,144 +12332,3696 @@ EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -/** + */var QF=`/** * @license - * Copyright (c) 2000-2005, Sean O'Neil (s_p_oneil@hotmail.com) - * All rights reserved. + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. * * Redistribution and use in source and binary forms, with or without * modification, are permitted provided that the following conditions * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. * - * * Redistributions of source code must retain the above copyright notice, - * this list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * * Neither the name of the project nor the names of its contributors may be - * used to endorse or promote products derived from this software without - * specific prior written permission. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" - * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE - * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE - * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL - * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR - * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER - * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, - * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - * - * Modifications made by Analytical Graphics, Inc. - */ - -/*! - * Knockout JavaScript library v3.5.0 - * (c) The Knockout.js team - http://knockoutjs.com/ - * License: MIT (http://www.opensource.org/licenses/mit-license.php) - */ - -/** - * @license - * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 - * Copyright (c) Steve Sanderson - * MIT license - */ - -/*! NoSleep.js v0.7.0 - git.io/vfn01 - Rich Tibbett - MIT license */ - -!function(){var requirejs,require,define;!function(e){function t(e,t){return v.call(e,t)}function i(e,t){var i,r,n,o,a,s,l,u,c,d,h,p,f=t&&t.split("/"),m=_.map,g=m&&m["*"]||{};if(e){for(e=e.split("/"),a=e.length-1,_.nodeIdCompat&&C.test(e[a])&&(e[a]=e[a].replace(C,"")),"."===e[0].charAt(0)&&f&&(p=f.slice(0,f.length-1),e=p.concat(e)),c=0;c<e.length;c++)if("."===(h=e[c]))e.splice(c,1),c-=1;else if(".."===h){if(0===c||1===c&&".."===e[2]||".."===e[c-1])continue;c>0&&(e.splice(c-1,2),c-=2)}e=e.join("/")}if((f||g)&&m){for(i=e.split("/"),c=i.length;c>0;c-=1){if(r=i.slice(0,c).join("/"),f)for(d=f.length;d>0;d-=1)if((n=m[f.slice(0,d).join("/")])&&(n=n[r])){o=n,s=c;break}if(o)break;!l&&g&&g[r]&&(l=g[r],u=c)}!o&&l&&(o=l,s=u),o&&(i.splice(0,s,o),e=i.join("/"))}return e}function r(t,i){return function(){var r=y.call(arguments,0);return"string"!=typeof r[0]&&1===r.length&&r.push(null),d.apply(e,r.concat([t,i]))}}function n(e){return function(t){return i(t,e)}}function o(e){return function(t){f[e]=t}}function a(i){if(t(m,i)){var r=m[i];delete m[i],g[i]=!0,c.apply(e,r)}if(!t(f,i)&&!t(g,i))throw new Error("No "+i);return f[i]}function s(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function l(e){return e?s(e):[]}function u(e){return function(){return _&&_.config&&_.config[e]||{}}}var c,d,h,p,f={},m={},_={},g={},v=Object.prototype.hasOwnProperty,y=[].slice,C=/\.js$/;h=function(e,t){var r,o=s(e),l=o[0],u=t[1];return e=o[1],l&&(l=i(l,u),r=a(l)),l?e=r&&r.normalize?r.normalize(e,n(u)):i(e,u):(e=i(e,u),o=s(e),l=o[0],e=o[1],l&&(r=a(l))),{f:l?l+"!"+e:e,n:e,pr:l,p:r}},p={require:function(e){return r(e)},exports:function(e){var t=f[e];return void 0!==t?t:f[e]={}},module:function(e){return{id:e,uri:"",exports:f[e],config:u(e)}}},c=function(i,n,s,u){var c,d,_,v,y,C,b,S=[],T=typeof s;if(u=u||i,C=l(u),"undefined"===T||"function"===T){for(n=!n.length&&s.length?["require","exports","module"]:n,y=0;y<n.length;y+=1)if(v=h(n[y],C),"require"===(d=v.f))S[y]=p.require(i);else if("exports"===d)S[y]=p.exports(i),b=!0;else if("module"===d)c=S[y]=p.module(i);else if(t(f,d)||t(m,d)||t(g,d))S[y]=a(d);else{if(!v.p)throw new Error(i+" missing "+d);v.p.load(v.n,r(u,!0),o(d),{}),S[y]=f[d]}_=s?s.apply(f[i],S):void 0,i&&(c&&c.exports!==e&&c.exports!==f[i]?f[i]=c.exports:_===e&&b||(f[i]=_))}else i&&(f[i]=s)},requirejs=require=d=function(t,i,r,n,o){if("string"==typeof t)return p[t]?p[t](i):a(h(t,l(i)).f);if(!t.splice){if(_=t,_.deps&&d(_.deps,_.callback),!i)return;i.splice?(t=i,i=r,r=null):t=e}return i=i||function(){},"function"==typeof r&&(r=n,n=o),n?c(e,t,i,r):setTimeout(function(){c(e,t,i,r)},4),d},d.config=function(e){return d(e)},requirejs._defined=f,define=function(e,i,r){if("string"!=typeof e)throw new Error("See almond README: incorrect module build, no module name");i.splice||(r=i,i=[]),t(f,e)||t(m,e)||(m[e]=[e,i,r])},define.amd={jQuery:!0}}(),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var i=r.exec(t);this.scheme=i[1],this.authority=i[2],this.path=i[3],this.query=i[4],this.fragment=i[5]}}function t(e){var t=unescape(e);return o.test(t)?t:e.toUpperCase()}function i(e,t,i,r){return(t||"")+i.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(a,i).replace(n,t)),this.path&&(this.path=this.path.replace(n,t)),this.query&&(this.query=this.query.replace(n,t)),this.fragment&&(this.fragment=this.fragment.replace(n,t))};var n=/%[0-9a-z]{2}/gi,o=/[a-zA-Z0-9\-\._~]/,a=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var i=new e;return this.scheme?(i.scheme=this.scheme,i.authority=this.authority,i.path=this.path,i.query=this.query):(i.scheme=t.scheme,this.authority?(i.authority=this.authority,i.path=this.path,i.query=this.query):(i.authority=t.authority,""==this.path?(i.path=t.path,i.query=this.query||t.query):("/"==this.path.charAt(0)?(i.path=this.path,i.removeDotSegments()):(t.authority&&""==t.path?i.path="/"+this.path:i.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,i.removeDotSegments()),i.query=this.query))),i.fragment=this.fragment,i},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),i=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?i.pop():"."!=e&&i.push(e);"."!=e&&".."!=e||i.push(""),r&&i.unshift(""),this.path=i.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,i,r){"use strict";function n(e,t){var i;return"undefined"!=typeof document&&(i=document),n._implementation(e,t,i)}return n._implementation=function(r,n,o){if(!i(n)){if(void 0===o)return r;n=t(o.baseURI,o.location.href)}var a=new e(n);return new e(r).resolve(a).toString()},n}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,i,r,n){return t(e).then(i,r,n)}function t(e){var t,i;return e instanceof r?t=e:s(e)?(i=a(),e.then(function(e){i.resolve(e)},function(e){i.reject(e)},function(e){i.progress(e)}),t=i.promise):t=n(e),t}function i(t){return e(t,o)}function r(e){this.then=e}function n(e){return new r(function(i){try{return t(i?i(e):e)}catch(e){return o(e)}})}function o(e){return new r(function(i,r){try{return r?t(r(e)):o(e)}catch(e){return o(e)}})}function a(){function e(e,t,i){return h(e,t,i)}function i(e){return f(e)}function n(e){return f(o(e))}function s(e){return p(e)}var l,u,c,d,h,p,f;return u=new r(e),l={then:e,resolve:i,reject:n,progress:s,promise:u,resolver:{resolve:i,reject:n,progress:s}},c=[],d=[],h=function(e,t,i){var r,n;return r=a(),n="function"==typeof i?function(e){try{r.progress(i(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},c.push(function(i){i.then(e,t).then(r.resolve,r.reject,n)}),d.push(n),r.promise},p=function(e){return m(d,e),e},f=function(e){return e=t(e),h=e.then,f=t,p=g,m(c,e),d=c=b,e},l}function s(e){return e&&"function"==typeof e.then}function l(t,i,r,n,o){return _(2,arguments),e(t,function(t){function s(e){m(e)}function l(e){f(e)}var u,c,d,h,p,f,m,_,v,y;if(v=t.length>>>0,u=Math.max(0,Math.min(i,v)),d=[],c=v-u+1,h=[],p=a(),u)for(_=p.progress,m=function(e){h.push(e),--c||(f=m=g,p.reject(h))},f=function(e){d.push(e),--u||(f=m=g,p.resolve(d))},y=0;y<v;++y)y in t&&e(t[y],l,s,_);else p.resolve(d);return p.then(r,n,o)})}function u(e,t,i,r){function n(e){return t?t(e[0]):e[0]}return l(e,1,n,i,r)}function c(e,t,i,r){return _(1,arguments),h(e,v).then(t,i,r)}function d(){return h(arguments,v)}function h(t,i){return e(t,function(t){var r,n,o,s,l,u;if(o=n=t.length>>>0,r=[],u=a(),o)for(s=function(t,n){e(t,i).then(function(e){r[n]=e,--o||u.resolve(r)},u.reject)},l=0;l<n;l++)l in t?s(t[l],l):--o;else u.resolve(r);return u.promise})}function p(t,i){var r=C.call(arguments,1);return e(t,function(t){var n;return n=t.length,r[0]=function(t,r,o){return e(t,function(t){return e(r,function(e){return i(t,e,o,n)})})},y.apply(t,r)})}function f(t,i,r){var n=arguments.length>2;return e(t,function(e){return e=n?r:e,i.resolve(e),e},function(e){return i.reject(e),o(e)},i.progress)}function m(e,t){for(var i,r=0;i=e[r++];)i(t)}function _(e,t){for(var i,r=t.length;r>e;)if(null!=(i=t[--r])&&"function"!=typeof i)throw new Error("arg "+r+" must be a function")}function g(){}function v(e){return e}var y,C,b;return e.defer=a,e.resolve=t,e.reject=i,e.join=d,e.all=c,e.map=h,e.reduce=p,e.any=u,e.some=l,e.chain=f,e.isPromise=s,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(b,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return c(t,function(t){return e.apply(b,t)})})}},C=[].slice,y=[].reduce||function(e){var t,i,r,n,o;if(o=0,t=Object(this),n=t.length>>>0,i=arguments,i.length<=1)for(;;){if(o in t){r=t[o++];break}if(++o>=n)throw new TypeError}else r=i[1];for(;o<n;++o)o in t&&(r=e(r,t[o],o,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function i(e){return e+" is required, actual value was undefined"}function r(e,t,i){return"Expected "+i+" to be typeof "+t+", actual typeof was "+e}var n={};return n.typeOf={},n.defined=function(r,n){if(!e(n))throw new t(i(r))},n.typeOf.func=function(e,i){if("function"!=typeof i)throw new t(r(typeof i,"function",e))},n.typeOf.string=function(e,i){if("string"!=typeof i)throw new t(r(typeof i,"string",e))},n.typeOf.number=function(e,i){if("number"!=typeof i)throw new t(r(typeof i,"number",e))},n.typeOf.number.lessThan=function(e,i,r){if(n.typeOf.number(e,i),i>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+i)},n.typeOf.number.lessThanOrEquals=function(e,i,r){if(n.typeOf.number(e,i),i>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+i)},n.typeOf.number.greaterThan=function(e,i,r){if(n.typeOf.number(e,i),i<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+i)},n.typeOf.number.greaterThanOrEquals=function(e,i,r){if(n.typeOf.number(e,i),i<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+i)},n.typeOf.object=function(e,i){if("object"!=typeof i)throw new t(r(typeof i,"object",e))},n.typeOf.bool=function(e,i){if("boolean"!=typeof i)throw new t(r(typeof i,"boolean",e))},n.typeOf.number.equals=function(e,i,r,o){if(n.typeOf.number(e,r),n.typeOf.number(i,o),r!==o)throw new t(e+" must be equal to "+i+", the actual values are "+r+" and "+o)},n}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(i,r){if(null===i||"object"!=typeof i)return i;r=e(r,!1);var n=new i.constructor;for(var o in i)if(i.hasOwnProperty(o)){var a=i[o];r&&(a=t(a,r)),n[o]=a}return n}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function i(r,n,o){o=e(o,!1);var a,s,l,u={},c=t(r),d=t(n);if(c)for(a in r)r.hasOwnProperty(a)&&(s=r[a],d&&o&&"object"==typeof s&&n.hasOwnProperty(a)?(l=n[a],u[a]="object"==typeof l?i(s,l,o):s):u[a]=s);if(d)for(a in n)n.hasOwnProperty(a)&&!u.hasOwnProperty(a)&&(l=n[a],u[a]=l);return u}return i}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),i=Object.defineProperties;return t&&e(i)||(i=function(e){return e}),i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(i,r){var n="",o=i.lastIndexOf("/");return-1!==o&&(n=i.substring(0,o+1)),r?(i=new e(i),t(i.query)&&(n+="?"+i.query),t(i.fragment)&&(n+="#"+i.fragment),n):n}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(t){var i=new e(t);i.normalize();var r=i.path,n=r.lastIndexOf("/");return-1!==n&&(r=r.substr(n+1)),n=r.lastIndexOf("."),r=-1===n?"":r.substr(n+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return i.test(e)}var i=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(i)||(i=document.createElement("a")),i.href=window.location.href;var r=i.host,n=i.protocol;return i.href=t,i.href=i.href,n!==i.protocol||r!==i.host}var i;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return i.test(e)}var i=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var i=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var n=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,n.removeChild(r),i.resolve()},r.onerror=function(e){i.reject(e)},n.appendChild(r),i.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,i){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var n=e[r],o=encodeURIComponent(r)+"=";if(i(n))for(var a=0,s=n.length;a<s;++a)t+=o+encodeURIComponent(n[a])+"&";else t+=o+encodeURIComponent(n)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,i){"use strict";function r(t){var r={};if(""===t)return r;for(var n=t.replace(/\+/g,"%20").split(/[&;]/),o=0,a=n.length;o<a;++o){var s=n[o].split("="),l=decodeURIComponent(s[0]),u=s[1];u=e(u)?decodeURIComponent(u):"";var c=r[l];"string"==typeof c?r[l]=[c,u]:i(c)?c.push(u):r[l]=u}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,i,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT);var n=e(t.throttleByServer,!1),o=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=o,this.throttleByServer=n,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=i.UNISSUED,this.deferred=void 0,this.cancelled=!1}return n.prototype.cancel=function(){this.cancelled=!0},n.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new n(this)},n}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var i=e.split("\r\n"),r=0;r<i.length;++r){var n=i[r],o=n.indexOf(": ");if(o>0){var a=n.substring(0,o),s=n.substring(o+2);t[a]=s}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function i(e,i,r){this.statusCode=e,this.response=i,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return i.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},i}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,i){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function n(e,t){return t-e}return i(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var i=this;return function(){i.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var i=this._listeners,r=this._scopes,n=-1,o=0;o<i.length;o++)if(i[o]===e&&r[o]===t){n=o;break}return-1!==n&&(this._insideRaiseEvent?(this._toRemove.push(n),i[n]=void 0,r[n]=void 0):(i.splice(n,1),r.splice(n,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,i=this._listeners,r=this._scopes,o=i.length;for(e=0;e<o;e++){var a=i[e];t(a)&&i[e].apply(r[e],arguments)}var s=this._toRemove;if((o=s.length)>0){for(s.sort(n),e=0;e<o;e++){var l=s[e];i.splice(l,1),r.splice(l,1)}s.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,i,r){"use strict";function n(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function o(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}return r(n.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),n.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},n.prototype.heapify=function(e){e=t(e,0);for(var i=this._length,r=this._comparator,n=this._array,a=-1,s=!0;s;){var l=2*(e+1),u=l-1;a=u<i&&r(n[u],n[e])<0?u:e,l<i&&r(n[l],n[a])<0&&(a=l),a!==e?(o(n,a,e),e=a):s=!1}},n.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},n.prototype.insert=function(e){var t=this._array,r=this._comparator,n=this._maximumLength,a=this._length++;for(a<t.length?t[a]=e:t.push(e);0!==a;){var s=Math.floor((a-1)/2);if(!(r(t[a],t[s])<0))break;o(t,a,s),a=s}var l;return i(n)&&this._length>n&&(l=t[n],this._length=n),l},n.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var i=this._array,r=i[e];return o(i,e,--this._length),this.heapify(e),r}},n}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t){return e.priority-t.priority}function h(){}function p(e){n(e.priorityFunction)&&(e.priority=e.priorityFunction())}function f(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return A[e]<t}function m(e){return e.state===c.UNISSUED&&(e.state=c.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==c.CANCELLED&&(--b.numberOfActiveRequests,--A[e.serverKey],x.raiseEvent(),e.state=c.RECEIVED,e.deferred.resolve(t))}}function g(e){return function(t){e.state!==c.CANCELLED&&(++b.numberOfFailedRequests,--b.numberOfActiveRequests,--A[e.serverKey],x.raiseEvent(t),e.state=c.FAILED,e.deferred.reject(t))}}function v(e){var t=m(e);return e.state=c.ACTIVE,E.push(e),++b.numberOfActiveRequests,++b.numberOfActiveRequestsEver,++A[e.serverKey],e.requestFunction().then(_(e)).otherwise(g(e)),t}function y(e){var t=e.state===c.ACTIVE;e.state=c.CANCELLED,++b.numberOfCancelledRequests,e.deferred.reject(),t&&(--b.numberOfActiveRequests,--A[e.serverKey],++b.numberOfCancelledActiveRequests),n(e.cancelFunction)&&e.cancelFunction()}function C(){h.debugShowStatistics&&(0===b.numberOfActiveRequests&&b.lastNumberOfActiveRequests>0&&(b.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+b.numberOfAttemptedRequests),b.numberOfAttemptedRequests=0),b.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+b.numberOfCancelledRequests),b.numberOfCancelledRequests=0),b.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+b.numberOfCancelledActiveRequests),b.numberOfCancelledActiveRequests=0),b.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+b.numberOfFailedRequests),b.numberOfFailedRequests=0)),b.lastNumberOfActiveRequests=b.numberOfActiveRequests)}var b={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,T=new s({comparator:d});T.maximumLength=S,T.reserve(S);var E=[],A={},w="undefined"!=typeof document?new e(document.location.href):new e,x=new a;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=x,o(h,{statistics:{get:function(){return b}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;T.length>e;){var t=T.pop();y(t)}S=e,T.maximumLength=e,T.reserve(e)}}}),h.update=function(){var e,t,i=0,r=E.length;for(e=0;e<r;++e)t=E[e],t.cancelled&&y(t),t.state===c.ACTIVE?i>0&&(E[e-i]=t):++i;E.length-=i;var n=T.internalArray,o=T.length;for(e=0;e<o;++e)p(n[e]);T.resort();for(var a=Math.max(h.maximumRequests-E.length,0),s=0;s<a&&T.length>0;)t=T.pop(),t.cancelled?y(t):!t.throttleByServer||f(t.serverKey)?(v(t),++s):y(t);C()},h.getServerKey=function(t){var i=new e(t).resolve(w);i.normalize();var r=i.authority;/:/.test(r)||(r=r+":"+("https"===i.scheme?"443":"80"));var o=A[r];return n(o)||(A[r]=0),r},h.request=function(e){if(u(e.url)||l(e.url))return x.raiseEvent(),e.state=c.RECEIVED,e.requestFunction();if(++b.numberOfAttemptedRequests,n(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||f(e.serverKey)){if(!h.throttleRequests||!e.throttle)return v(e);if(!(E.length>=h.maximumRequests)){p(e);var t=T.insert(e);if(n(t)){if(t===e)return;y(t)}return m(e)}}},h.clearForSpecs=function(){for(;T.length>0;){y(T.pop())}for(var e=E.length,t=0;t<e;++t)y(E[t]);E.length=0,A={},b.numberOfAttemptedRequests=0,b.numberOfActiveRequests=0,b.numberOfCancelledRequests=0,b.numberOfCancelledActiveRequests=0,b.numberOfFailedRequests=0,b.numberOfActiveRequestsEver=0,b.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return A[e]},h.requestHeap=T,h}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(i){var r=new e(i);r.normalize();var n=r.getAuthority();if(t(n)){if(-1!==n.indexOf("@")){n=n.split("@")[1]}if(-1===n.indexOf(":")){var o=r.getScheme();if(t(o)||(o=window.location.protocol,o=o.substring(0,o.length-1)),"http"===o)n+=":80";else{if("https"!==o)return;n+=":443"}}return n}}var n={},o={};return n.add=function(e,i){var r=e.toLowerCase()+":"+i;t(o[r])||(o[r]=!0)},n.remove=function(e,i){var r=e.toLowerCase()+":"+i;t(o[r])&&delete o[r]},n.contains=function(e){var i=r(e);return!(!t(i)||!t(o[i]))},n.clear=function(){o={}},n}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A){"use strict";function w(e,t,i,r){var n=e.query;if(!s(n)||0===n.length)return{};var o;if(-1===n.indexOf("=")){var a={};a[n]=void 0,o=a}else o=y(n);t._queryParameters=i?I(o,t._queryParameters,r):o,e.query=void 0}function x(e,t){var i=t._queryParameters,r=Object.keys(i);1!==r.length||s(i[r[0]])?e.query=v(i):e.query=r[0]}function P(e,t){return s(e)?s(e.clone)?e.clone():n(e):t}function D(e){if(e.state===T.ISSUED||e.state===T.ACTIVE)throw new E("The Resource is already being fetched.");e.state=T.UNISSUED,e.deferred=void 0}function I(e,t,i){if(!i)return o(e,t);var r=n(e,!0);for(var a in t)if(t.hasOwnProperty(a)){var l=r[a],u=t[a];s(l)?(Array.isArray(l)||(l=r[a]=[l]),r[a]=l.concat(u)):r[a]=Array.isArray(u)?u.slice():u}return r}function M(t){t=a(t,a.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=P(t.templateValues,{}),this._queryParameters=P(t.queryParameters,{}),this.headers=P(t.headers,{}),this.request=a(t.request,new C),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=a(t.retryAttempts,0),this._retryCount=0;var i=new e(t.url);w(i,this,!0,!0),i.fragment=void 0,this._url=i.toString()}function R(e){var i=e.resource,r=e.flipY,n=e.preferImageBitmap,o=i.request;o.url=i.url,o.requestFunction=function(){var e=i.url,o=!1;i.isDataUri||i.isBlobUri||(o=i.isCrossOriginUrl);var a=t.defer();return M._Implementations.createImage(e,o,a,r,n),a.promise};var a=S.request(o);if(s(a))return a.otherwise(function(e){return o.state!==T.FAILED?t.reject(e):i.retryOnError(e).then(function(a){return a?(o.state=T.UNISSUED,o.deferred=void 0,R({resource:i,flipY:r,preferImageBitmap:n})):t.reject(e)})})}function O(e,i,r){var n={};n[i]=r,e.setQueryParameters(n);var o=e.request;o.url=e.url,o.requestFunction=function(){var i=t.defer();return window[r]=function(e){i.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},M._Implementations.loadAndExecuteScript(e.url,r,i),i.promise};var a=S.request(o);if(s(a))return a.otherwise(function(n){return o.state!==T.FAILED?t.reject(n):e.retryOnError(n).then(function(a){return a?(o.state=T.UNISSUED,o.deferred=void 0,O(e,i,r)):t.reject(n)})})}function L(e,t){var i=decodeURIComponent(t);return e?atob(i):i}function N(e,t){for(var i=L(e,t),r=new ArrayBuffer(i.length),n=new Uint8Array(r),o=0;o<i.length;o++)n[o]=i.charCodeAt(o);return r}function F(e,t){t=a(t,"");var i=e[1],r=!!e[2],n=e[3];switch(t){case"":case"text":return L(r,n);case"arraybuffer":return N(r,n);case"blob":var o=N(r,n);return new Blob([o],{type:i});case"document":return(new DOMParser).parseFromString(L(r,n),i);case"json":return JSON.parse(L(r,n))}}function B(e,t,i){var r=new Image;r.onload=function(){i.resolve(r)},r.onerror=function(e){i.reject(e)},t&&(A.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function z(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function k(e,t,i,r,n,o,a){var s=global.require,l=s("url").parse(e),u=s("https:"===l.protocol?"https":"http"),c=s("zlib"),d={protocol:l.protocol,hostname:l.hostname,port:l.port,path:l.path,query:l.query,method:i,headers:n};u.request(d).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void o.reject(new b(e.statusCode,e,e.headers));var i=[];e.on("data",function(e){i.push(e)}),e.on("end",function(){var r=Buffer.concat(i);"gzip"===e.headers["content-encoding"]?c.gunzip(r,function(e,i){e?o.reject(new E("Error decompressing response.")):o.resolve(z(i,t))}):o.resolve(z(r,t))})}).on("error",function(e){o.reject(new b)}).end()}var V=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();M.createIfNeeded=function(e){return e instanceof M?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new M({url:e})};var U;M.supportsImageBitmapOptions=function(){if(s(U))return U;if("function"!=typeof createImageBitmap)return U=t.resolve(!1);return U=M.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},l(M,{isBlobSupported:{get:function(){return V}}}),l(M.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var i=new e(t);w(i,this,!1),i.fragment=void 0,this._url=i.toString()}},extension:{get:function(){return p(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return f(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),M.prototype.getUrlComponent=function(t,i){if(this.isDataUri)return this._url;var r=new e(this._url);t&&x(r,this);var n=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),o=this._templateValues;return n=n.replace(/{(.*?)}/g,function(e,t){var i=o[t];return s(i)?encodeURIComponent(i):e}),i&&s(this.proxy)&&(n=this.proxy.getURL(n)),n},M.prototype.setQueryParameters=function(e,t){this._queryParameters=t?I(this._queryParameters,e,!1):I(e,this._queryParameters,!1)},M.prototype.appendQueryParameters=function(e){this._queryParameters=I(e,this._queryParameters,!0)},M.prototype.setTemplateValues=function(e,t){this._templateValues=t?o(this._templateValues,e):o(e,this._templateValues)},M.prototype.getDerivedResource=function(t){var i=this.clone();if(i._retryCount=0,s(t.url)){var r=new e(t.url);w(r,i,!0,a(t.preserveQueryParameters,!1)),r.fragment=void 0,i._url=r.resolve(new e(d(this._url))).toString()}return s(t.queryParameters)&&(i._queryParameters=o(t.queryParameters,i._queryParameters)),s(t.templateValues)&&(i._templateValues=o(t.templateValues,i.templateValues)),s(t.headers)&&(i.headers=o(t.headers,i.headers)),s(t.proxy)&&(i.proxy=t.proxy),s(t.request)&&(i.request=t.request),s(t.retryCallback)&&(i.retryCallback=t.retryCallback),s(t.retryAttempts)&&(i.retryAttempts=t.retryAttempts),i},M.prototype.retryOnError=function(e){var i=this.retryCallback;if("function"!=typeof i||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(i(this,e)).then(function(e){return++r._retryCount,e})},M.prototype.clone=function(e){return s(e)||(e=new M({url:this._url})),e._url=this._url,e._queryParameters=n(this._queryParameters),e._templateValues=n(this._templateValues),e.headers=n(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},M.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},M.prototype.appendForwardSlash=function(){this._url=i(this._url)},M.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})}, -M.fetchArrayBuffer=function(e){return new M(e).fetchArrayBuffer()},M.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},M.fetchBlob=function(e){return new M(e).fetchBlob()},M.prototype.fetchImage=function(e){e=a(e,a.EMPTY_OBJECT);var i=a(e.preferImageBitmap,!1),r=a(e.preferBlob,!1),n=a(e.flipY,!1);if(D(this.request),!V||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return R({resource:this,flipY:n,preferImageBitmap:i});var o=this.fetchBlob();if(s(o)){var l,u,c,d;return M.supportsImageBitmapOptions().then(function(e){return l=e,u=l&&i,o}).then(function(e){if(s(e)){if(d=e,u)return M.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return c=new M({url:t}),R({resource:c,flipY:n,preferImageBitmap:!1})}}).then(function(e){if(s(e))return e.blob=d,u?e:(window.URL.revokeObjectURL(c.url),e)}).otherwise(function(e){return s(c)&&window.URL.revokeObjectURL(c.url),e.blob=d,t.reject(e)})}},M.fetchImage=function(e){return new M(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},M.prototype.fetchText=function(){return this.fetch({responseType:"text"})},M.fetchText=function(e){return new M(e).fetchText()},M.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(s(e))return e.then(function(e){if(s(e))return JSON.parse(e)})},M.fetchJson=function(e){return new M(e).fetchJson()},M.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},M.fetchXML=function(e){return new M(e).fetchXML()},M.prototype.fetchJsonp=function(e){e=a(e,"callback"),D(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(s(window[t]));return O(this,e,t)},M.fetchJsonp=function(e){return new M(e).fetchJsonp(e.callbackParameterName)},M.prototype._makeRequest=function(e){var i=this;D(i.request);var r=i.request;r.url=i.url,r.requestFunction=function(){var n=e.responseType,a=o(e.headers,i.headers),l=e.overrideMimeType,u=e.method,c=e.data,d=t.defer(),h=M._Implementations.loadWithXhr(i.url,n,u,c,a,d,l);return s(h)&&s(h.abort)&&(r.cancelFunction=function(){h.abort()}),d.promise};var n=S.request(r);if(s(n))return n.then(function(e){return e}).otherwise(function(n){return r.state!==T.FAILED?t.reject(n):i.retryOnError(n).then(function(o){return o?(r.state=T.UNISSUED,r.deferred=void 0,i.fetch(e)):t.reject(n)})})};var G=/^data:(.*?)(;base64)?,(.*)$/;M.prototype.fetch=function(e){return e=P(e,{}),e.method="GET",this._makeRequest(e)},M.fetch=function(e){return new M(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M.prototype.delete=function(e){return e=P(e,{}),e.method="DELETE",this._makeRequest(e)},M.delete=function(e){return new M(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},M.prototype.head=function(e){return e=P(e,{}),e.method="HEAD",this._makeRequest(e)},M.head=function(e){return new M(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M.prototype.options=function(e){return e=P(e,{}),e.method="OPTIONS",this._makeRequest(e)},M.options=function(e){return new M(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M.prototype.post=function(e,t){return r.defined("data",e),t=P(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},M.post=function(e){return new M(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M.prototype.put=function(e,t){return r.defined("data",e),t=P(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},M.put=function(e){return new M(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M.prototype.patch=function(e,t){return r.defined("data",e),t=P(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},M.patch=function(e){return new M(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},M._Implementations={},M._Implementations.createImage=function(e,t,i,r,n){M.supportsImageBitmapOptions().then(function(r){return r&&n?M.fetchBlob({url:e}):void B(e,t,i)}).then(function(e){if(s(e))return M.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){s(e)&&i.resolve(e)}).otherwise(i.reject)},M.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var H="undefined"==typeof XMLHttpRequest;return M._Implementations.loadWithXhr=function(e,t,i,r,n,o,a){var l=G.exec(e);if(null!==l)return void o.resolve(F(l,t));if(H)return void k(e,t,i,r,n,o,a);var u=new XMLHttpRequest;if(A.contains(e)&&(u.withCredentials=!0),u.open(i,e,!0),s(a)&&s(u.overrideMimeType)&&u.overrideMimeType(a),s(n))for(var c in n)n.hasOwnProperty(c)&&u.setRequestHeader(c,n[c]);s(t)&&(u.responseType=t);var d=!1;return"string"==typeof e&&(d=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),u.onload=function(){if((u.status<200||u.status>=300)&&(!d||0!==u.status))return void o.reject(new b(u.status,u.response,u.getAllResponseHeaders()));var e=u.response,r=u.responseType;if("HEAD"===i||"OPTIONS"===i){var n=u.getAllResponseHeaders(),a=n.trim().split(/[\r\n]+/),l={};return a.forEach(function(e){var t=e.split(": "),i=t.shift();l[i]=t.join(": ")}),void o.resolve(l)}if(204===u.status)o.resolve();else if(!s(e)||s(t)&&r!==t)if("json"===t&&"string"==typeof e)try{o.resolve(JSON.parse(e))}catch(e){o.reject(e)}else(""===r||"document"===r)&&s(u.responseXML)&&u.responseXML.hasChildNodes()?o.resolve(u.responseXML):""!==r&&"text"!==r||!s(u.responseText)?o.reject(new E("Invalid XMLHttpRequest response type.")):o.resolve(u.responseText);else o.resolve(e)},u.onerror=function(e){o.reject(new b)},u.send(r),u},M._Implementations.loadAndExecuteScript=function(e,t,i){return g(e,t).otherwise(i.reject)},M._DefaultImplementations={},M._DefaultImplementations.createImage=M._Implementations.createImage,M._DefaultImplementations.loadWithXhr=M._Implementations.loadWithXhr,M._DefaultImplementations.loadAndExecuteScript=M._Implementations.loadAndExecuteScript,M.DEFAULT=c(new M({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),M}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,i,r,n){"use strict";function o(){for(var e=document.getElementsByTagName("script"),t=0,i=e.length;t<i;++t){var r=e[t].getAttribute("src"),n=f.exec(r);if(null!==n)return n[1]}}function a(t){return"undefined"==typeof document?t:(e(d)||(d=document.createElement("a")),d.href=t,d.href=d.href,d.href)}function s(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(n.toUrl)?i("..",c("Core/buildModuleUrl.js")):o(),h=new r({url:a(t)}),h.appendForwardSlash(),h}function l(e){return a(n.toUrl("../"+e))}function u(e){return s().getDerivedResource({url:e}).url}function c(t){return e(p)||(p=e(define.amd)&&!define.amd.toUrlUndefined&&e(n.toUrl)?l:u),p(t)}var d,h,p,f=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return c._cesiumScriptRegex=f,c._buildModuleUrlFromBaseUrl=u,c._clearBaseResource=function(){h=void 0},c.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},c.getCesiumBaseUrl=s,c}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var i;for(this.mti==this.N+1&&this.init_genrand(5489),i=0;i<this.N-this.M;i++)e=this.mt[i]&this.UPPER_MASK|this.mt[i+1]&this.LOWER_MASK,this.mt[i]=this.mt[i+this.M]^e>>>1^t[1&e];for(;i<this.N-1;i++)e=this.mt[i]&this.UPPER_MASK|this.mt[i+1]&this.LOWER_MASK,this.mt[i]=this.mt[i+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,i,r,n){"use strict";var o={};o.EPSILON1=.1,o.EPSILON2=.01,o.EPSILON3=.001,o.EPSILON4=1e-4,o.EPSILON5=1e-5,o.EPSILON6=1e-6,o.EPSILON7=1e-7,o.EPSILON8=1e-8,o.EPSILON9=1e-9,o.EPSILON10=1e-10,o.EPSILON11=1e-11,o.EPSILON12=1e-12,o.EPSILON13=1e-13,o.EPSILON14=1e-14,o.EPSILON15=1e-15,o.EPSILON16=1e-16,o.EPSILON17=1e-17,o.EPSILON18=1e-18,o.EPSILON19=1e-19,o.EPSILON20=1e-20,o.EPSILON21=1e-21,o.GRAVITATIONALPARAMETER=3986004418e5,o.SOLAR_RADIUS=6955e5,o.LUNAR_RADIUS=1737400,o.SIXTY_FOUR_KILOBYTES=65536,o.sign=i(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),o.signNotZero=function(e){return e<0?-1:1},o.toSNorm=function(e,t){return t=i(t,255),Math.round((.5*o.clamp(e,-1,1)+.5)*t)},o.fromSNorm=function(e,t){return t=i(t,255),o.clamp(e,0,t)/t*2-1},o.normalize=function(e,t,i){return i=Math.max(i-t,0),0===i?0:o.clamp((e-t)/i,0,1)},o.sinh=i(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),o.cosh=i(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),o.lerp=function(e,t,i){return(1-i)*e+i*t},o.PI=Math.PI,o.ONE_OVER_PI=1/Math.PI,o.PI_OVER_TWO=Math.PI/2,o.PI_OVER_THREE=Math.PI/3,o.PI_OVER_FOUR=Math.PI/4,o.PI_OVER_SIX=Math.PI/6,o.THREE_PI_OVER_TWO=3*Math.PI/2,o.TWO_PI=2*Math.PI,o.ONE_OVER_TWO_PI=1/(2*Math.PI),o.RADIANS_PER_DEGREE=Math.PI/180,o.DEGREES_PER_RADIAN=180/Math.PI,o.RADIANS_PER_ARCSECOND=o.RADIANS_PER_DEGREE/3600,o.toRadians=function(e){return e*o.RADIANS_PER_DEGREE},o.toDegrees=function(e){return e*o.DEGREES_PER_RADIAN},o.convertLongitudeRange=function(e){var t=o.TWO_PI,i=e-Math.floor(e/t)*t;return i<-Math.PI?i+t:i>=Math.PI?i-t:i},o.clampToLatitudeRange=function(e){return o.clamp(e,-1*o.PI_OVER_TWO,o.PI_OVER_TWO)},o.negativePiToPi=function(e){return o.zeroToTwoPi(e+o.PI)-o.PI},o.zeroToTwoPi=function(e){var t=o.mod(e,o.TWO_PI);return Math.abs(t)<o.EPSILON14&&Math.abs(e)>o.EPSILON14?o.TWO_PI:t},o.mod=function(e,t){return(e%t+t)%t},o.equalsEpsilon=function(e,t,r,n){n=i(n,r);var o=Math.abs(e-t);return o<=n||o<=r*Math.max(Math.abs(e),Math.abs(t))},o.lessThan=function(e,t,i){return e-t<-i},o.lessThanOrEquals=function(e,t,i){return e-t<i},o.greaterThan=function(e,t,i){return e-t>i},o.greaterThanOrEquals=function(e,t,i){return e-t>-i};var a=[1];o.factorial=function(e){var t=a.length;if(e>=t)for(var i=a[t-1],r=t;r<=e;r++)a.push(i*r);return a[e]},o.incrementWrap=function(e,t,r){return r=i(r,0),++e,e>t&&(e=r),e},o.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},o.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},o.clamp=function(e,t,i){return e<t?t:e>i?i:e};var s=new e;return o.setRandomNumberSeed=function(t){s=new e(t)},o.nextRandomNumber=function(){return s.random()},o.randomBetween=function(e,t){return o.nextRandomNumber()*(t-e)+e},o.acosClamped=function(e){return Math.acos(o.clamp(e,-1,1))},o.asinClamped=function(e){return Math.asin(o.clamp(e,-1,1))},o.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},o.logBase=function(e,t){return Math.log(e)/Math.log(t)},o.cbrt=i(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),o.log2=i(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),o.fog=function(e,t){var i=e*t;return 1-Math.exp(-i*i)},o.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},o.fastApproximateAtan2=function(e,t){var i,r,n=Math.abs(e);i=Math.abs(t),r=Math.max(n,i),i=Math.min(n,i);var a=i/r;return n=o.fastApproximateAtan(a),n=Math.abs(t)>Math.abs(e)?o.PI_OVER_TWO-n:n,n=e<0?o.PI-n:n,n=t<0?-n:n},o}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,i,r,n,o){"use strict";function a(e,i,r){this.x=t(e,0),this.y=t(i,0),this.z=t(r,0)}a.fromSpherical=function(e,r){i(r)||(r=new a);var n=e.clock,o=e.cone,s=t(e.magnitude,1),l=s*Math.sin(o);return r.x=l*Math.cos(n),r.y=l*Math.sin(n),r.z=s*Math.cos(o),r},a.fromElements=function(e,t,r,n){return i(n)?(n.x=e,n.y=t,n.z=r,n):new a(e,t,r)},a.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new a(e.x,e.y,e.z)},a.fromCartesian4=a.clone,a.packedLength=3,a.pack=function(e,i,r){return r=t(r,0),i[r++]=e.x,i[r++]=e.y,i[r]=e.z,i},a.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new a),n.x=e[r++],n.y=e[r++],n.z=e[r],n},a.packArray=function(e,t){var r=e.length;i(t)?t.length=3*r:t=new Array(3*r);for(var n=0;n<r;++n)a.pack(e[n],t,3*n);return t},a.unpackArray=function(e,t){var r=e.length;i(t)?t.length=r/3:t=new Array(r/3);for(var n=0;n<r;n+=3){var o=n/3;t[o]=a.unpack(e,n,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},a.minimumByComponent=function(e,t,i){return i.x=Math.min(e.x,t.x),i.y=Math.min(e.y,t.y),i.z=Math.min(e.z,t.z),i},a.maximumByComponent=function(e,t,i){return i.x=Math.max(e.x,t.x),i.y=Math.max(e.y,t.y),i.z=Math.max(e.z,t.z),i},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var i=a.magnitude(e);return t.x=e.x/i,t.y=e.y/i,t.z=e.z/i,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},a.multiplyComponents=function(e,t,i){return i.x=e.x*t.x,i.y=e.y*t.y,i.z=e.z*t.z,i},a.divideComponents=function(e,t,i){return i.x=e.x/t.x,i.y=e.y/t.y,i.z=e.z/t.z,i},a.add=function(e,t,i){return i.x=e.x+t.x,i.y=e.y+t.y,i.z=e.z+t.z,i},a.subtract=function(e,t,i){return i.x=e.x-t.x,i.y=e.y-t.y,i.z=e.z-t.z,i},a.multiplyByScalar=function(e,t,i){return i.x=e.x*t,i.y=e.y*t,i.z=e.z*t,i},a.divideByScalar=function(e,t,i){return i.x=e.x/t,i.y=e.y/t,i.z=e.z/t,i},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var l=new a;a.lerp=function(e,t,i,r){return a.multiplyByScalar(t,i,l),r=a.multiplyByScalar(e,1-i,r),a.add(l,r,r)};var u=new a,c=new a;a.angleBetween=function(e,t){a.normalize(e,u),a.normalize(t,c);var i=a.dot(u,c),r=a.magnitude(a.cross(u,c,u));return Math.atan2(r,i)};var d=new a;a.mostOrthogonalAxis=function(e,t){var i=a.normalize(e,d);return a.abs(i,i),t=i.x<=i.y?i.x<=i.z?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Z,t):i.y<=i.z?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_Z,t)},a.projectVector=function(e,t,i){var r=a.dot(e,t)/a.dot(t,t);return a.multiplyByScalar(t,r,i)},a.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},a.equalsArray=function(e,t,i){return e.x===t[i]&&e.y===t[i+1]&&e.z===t[i+2]},a.equalsEpsilon=function(e,t,r,n){return e===t||i(e)&&i(t)&&o.equalsEpsilon(e.x,t.x,r,n)&&o.equalsEpsilon(e.y,t.y,r,n)&&o.equalsEpsilon(e.z,t.z,r,n)},a.cross=function(e,t,i){var r=e.x,n=e.y,o=e.z,a=t.x,s=t.y,l=t.z,u=n*l-o*s,c=o*a-r*l,d=r*s-n*a;return i.x=u,i.y=c,i.z=d,i},a.midpoint=function(e,t,i){return i.x=.5*(e.x+t.x),i.y=.5*(e.y+t.y),i.z=.5*(e.z+t.z),i},a.fromDegrees=function(e,t,i,r,n){return e=o.toRadians(e),t=o.toRadians(t),a.fromRadians(e,t,i,r,n)};var h=new a,p=new a,f=new a(40680631590769,40680631590769,40408299984661.445);return a.fromRadians=function(e,r,n,o,s){n=t(n,0);var l=i(o)?o.radiiSquared:f,u=Math.cos(r);h.x=u*Math.cos(e),h.y=u*Math.sin(e),h.z=Math.sin(r),h=a.normalize(h,h),a.multiplyComponents(l,h,p);var c=Math.sqrt(a.dot(h,p));return p=a.divideByScalar(p,c,p),h=a.multiplyByScalar(h,n,h),i(s)||(s=new a),a.add(p,h,s)},a.fromDegreesArray=function(e,t,r){var n=e.length;i(r)?r.length=n/2:r=new Array(n/2);for(var o=0;o<n;o+=2){var s=e[o],l=e[o+1],u=o/2;r[u]=a.fromDegrees(s,l,0,t,r[u])}return r},a.fromRadiansArray=function(e,t,r){var n=e.length;i(r)?r.length=n/2:r=new Array(n/2);for(var o=0;o<n;o+=2){var s=e[o],l=e[o+1],u=o/2;r[u]=a.fromRadians(s,l,0,t,r[u])}return r},a.fromDegreesArrayHeights=function(e,t,r){var n=e.length;i(r)?r.length=n/3:r=new Array(n/3);for(var o=0;o<n;o+=3){var s=e[o],l=e[o+1],u=e[o+2],c=o/3;r[c]=a.fromDegrees(s,l,u,t,r[c])}return r},a.fromRadiansArrayHeights=function(e,t,r){var n=e.length;i(r)?r.length=n/3:r=new Array(n/3);for(var o=0;o<n;o+=3){var s=e[o],l=e[o+1],u=e[o+2],c=o/3;r[c]=a.fromRadians(s,l,u,t,r[c])}return r},a.ZERO=n(new a(0,0,0)),a.UNIT_X=n(new a(1,0,0)),a.UNIT_Y=n(new a(0,1,0)),a.UNIT_Z=n(new a(0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,i){return a.equalsEpsilon(this,e,t,i)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},a}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,i,r){"use strict";function n(i,n,s,l,u){var c=i.x,d=i.y,h=i.z,p=n.x,f=n.y,m=n.z,_=c*c*p*p,g=d*d*f*f,v=h*h*m*m,y=_+g+v,C=Math.sqrt(1/y),b=e.multiplyByScalar(i,C,o);if(y<l)return isFinite(C)?e.clone(b,u):void 0;var S=s.x,T=s.y,E=s.z,A=a;A.x=b.x*S*2,A.y=b.y*T*2,A.z=b.z*E*2;var w,x,P,D,I,M,R,O,L,N,F,B=(1-C)*e.magnitude(i)/(.5*e.magnitude(A)),z=0;do{B-=z,P=1/(1+B*S),D=1/(1+B*T),I=1/(1+B*E),M=P*P,R=D*D,O=I*I,L=M*P,N=R*D,F=O*I,w=_*M+g*R+v*O-1,x=_*L*S+g*N*T+v*F*E;z=w/(-2*x)}while(Math.abs(w)>r.EPSILON12);return t(u)?(u.x=c*P,u.y=d*D,u.z=h*I,u):new e(c*P,d*D,h*I)}var o=new e,a=new e;return n}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,i,r,n,o,a){"use strict";function s(e,t,r){this.longitude=i(e,0),this.latitude=i(t,0),this.height=i(r,0)}s.fromRadians=function(e,t,n,o){return n=i(n,0),r(o)?(o.longitude=e,o.latitude=t,o.height=n,o):new s(e,t,n)},s.fromDegrees=function(e,t,i,r){return e=o.toRadians(e),t=o.toRadians(t),s.fromRadians(e,t,i,r)};var l=new e,u=new e,c=new e,d=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),p=o.EPSILON1;return s.fromCartesian=function(t,i,n){var f=r(i)?i.oneOverRadii:d,m=r(i)?i.oneOverRadiiSquared:h,_=r(i)?i._centerToleranceSquared:p,g=a(t,f,m,_,u);if(r(g)){var v=e.multiplyComponents(g,m,l);v=e.normalize(v,v);var y=e.subtract(t,g,c),C=Math.atan2(v.y,v.x),b=Math.asin(v.z),S=o.sign(e.dot(y,t))*e.magnitude(y);return r(n)?(n.longitude=C,n.latitude=b,n.height=S,n):new s(C,b,S)}},s.toCartesian=function(t,i,r){return e.fromRadians(t.longitude,t.latitude,t.height,i,r)},s.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new s(e.longitude,e.latitude,e.height)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},s.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=i&&Math.abs(e.latitude-t.latitude)<=i&&Math.abs(e.height-t.height)<=i},s.ZERO=n(new s(0,0,0)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},s}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t,i,n,o){i=r(i,0),n=r(n,0),o=r(o,0),t._radii=new e(i,n,o),t._radiiSquared=new e(i*i,n*n,o*o),t._radiiToTheFourth=new e(i*i*i*i,n*n*n*n,o*o*o*o),t._oneOverRadii=new e(0===i?0:1/i,0===n?0:1/n,0===o?0:1/o),t._oneOverRadiiSquared=new e(0===i?0:1/(i*i),0===n?0:1/(n*n),0===o?0:1/(o*o)),t._minimumRadius=Math.min(i,n,o),t._maximumRadius=Math.max(i,n,o),t._centerToleranceSquared=l.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function d(e,t,i){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,c(this,e,t,i)}o(d.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),d.clone=function(t,i){if(n(t)){var r=t._radii;return n(i)?(e.clone(r,i._radii),e.clone(t._radiiSquared,i._radiiSquared),e.clone(t._radiiToTheFourth,i._radiiToTheFourth),e.clone(t._oneOverRadii,i._oneOverRadii),e.clone(t._oneOverRadiiSquared,i._oneOverRadiiSquared),i._minimumRadius=t._minimumRadius,i._maximumRadius=t._maximumRadius,i._centerToleranceSquared=t._centerToleranceSquared,i):new d(r.x,r.y,r.z)}},d.fromCartesian3=function(e,t){return n(t)||(t=new d),n(e)?(c(t,e.x,e.y,e.z),t):t},d.WGS84=s(new d(6378137,6378137,6356752.314245179)),d.UNIT_SPHERE=s(new d(1,1,1)),d.MOON=s(new d(l.LUNAR_RADIUS,l.LUNAR_RADIUS,l.LUNAR_RADIUS)),d.prototype.clone=function(e){return d.clone(this,e)},d.packedLength=e.packedLength,d.pack=function(t,i,n){return n=r(n,0),e.pack(t._radii,i,n),i},d.unpack=function(t,i,n){i=r(i,0);var o=e.unpack(t,i);return d.fromCartesian3(o,n)},d.prototype.geocentricSurfaceNormal=e.normalize,d.prototype.geodeticSurfaceNormalCartographic=function(t,i){var r=t.longitude,o=t.latitude,a=Math.cos(o),s=a*Math.cos(r),l=a*Math.sin(r),u=Math.sin(o);return n(i)||(i=new e),i.x=s,i.y=l,i.z=u,e.normalize(i,i)},d.prototype.geodeticSurfaceNormal=function(t,i){return n(i)||(i=new e),i=e.multiplyComponents(t,this._oneOverRadiiSquared,i),e.normalize(i,i)};var h=new e,p=new e;d.prototype.cartographicToCartesian=function(t,i){var r=h,o=p;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,o);var a=Math.sqrt(e.dot(r,o));return e.divideByScalar(o,a,o),e.multiplyByScalar(r,t.height,r),n(i)||(i=new e),e.add(o,r,i)},d.prototype.cartographicArrayToCartesianArray=function(e,t){var i=e.length;n(t)?t.length=i:t=new Array(i);for(var r=0;r<i;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var f=new e,m=new e,_=new e;return d.prototype.cartesianToCartographic=function(i,r){var o=this.scaleToGeodeticSurface(i,m);if(n(o)){var a=this.geodeticSurfaceNormal(o,f),s=e.subtract(i,o,_),u=Math.atan2(a.y,a.x),c=Math.asin(a.z),d=l.sign(e.dot(s,i))*e.magnitude(s);return n(r)?(r.longitude=u,r.latitude=c,r.height=d,r):new t(u,c,d)}},d.prototype.cartesianArrayToCartographicArray=function(e,t){var i=e.length;n(t)?t.length=i:t=new Array(i);for(var r=0;r<i;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},d.prototype.scaleToGeodeticSurface=function(e,t){return u(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},d.prototype.scaleToGeocentricSurface=function(t,i){n(i)||(i=new e);var r=t.x,o=t.y,a=t.z,s=this._oneOverRadiiSquared,l=1/Math.sqrt(r*r*s.x+o*o*s.y+a*a*s.z);return e.multiplyByScalar(t,l,i)},d.prototype.transformPositionToScaledSpace=function(t,i){return n(i)||(i=new e),e.multiplyComponents(t,this._oneOverRadii,i)},d.prototype.transformPositionFromScaledSpace=function(t,i){return n(i)||(i=new e),e.multiplyComponents(t,this._radii,i)},d.prototype.equals=function(t){return this===t||n(t)&&e.equals(this._radii,t._radii)},d.prototype.toString=function(){return this._radii.toString()},d.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,i,o){i=r(i,0);var a=this._squaredXOverSquaredZ;if(n(o)||(o=new e),o.x=0,o.y=0,o.z=t.z*(1-a),!(Math.abs(o.z)>=this._radii.z-i))return o},d}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,i,r,n,o,a){"use strict";function s(e){this._ellipsoid=i(e,a.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return n(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.prototype.project=function(t,i){var n=this._semimajorAxis,o=t.longitude*n,a=t.latitude*n,s=t.height;return r(i)?(i.x=o,i.y=a,i.z=s,i):new e(o,a,s)},s.prototype.unproject=function(e,i){var n=this._oneOverSemimajorAxis,o=e.x*n,a=e.y*n,s=e.z;return r(i)?(i.longitude=o,i.latitude=a,i.height=s,i):new t(o,a,s)},s}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,i){this.start=e(t,0),this.stop=e(i,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,r,n,o,a,s,l,u){this[0]=i(e,0),this[1]=i(n,0),this[2]=i(s,0),this[3]=i(t,0),this[4]=i(o,0),this[5]=i(l,0),this[6]=i(r,0),this[7]=i(a,0),this[8]=i(u,0)}function u(e){for(var t=0,i=0;i<9;++i){var r=e[i];t+=r*r}return Math.sqrt(t)}function c(e){for(var t=0,i=0;i<3;++i){var r=e[l.getElementIndex(m[i],f[i])];t+=2*r*r}return Math.sqrt(t)}function d(e,t){for(var i=s.EPSILON15,r=0,n=1,o=0;o<3;++o){var a=Math.abs(e[l.getElementIndex(m[o],f[o])]);a>r&&(n=o,r=a)}var u=1,c=0,d=f[n],h=m[n];if(Math.abs(e[l.getElementIndex(h,d)])>i){var p,_=e[l.getElementIndex(h,h)],g=e[l.getElementIndex(d,d)],v=e[l.getElementIndex(h,d)],y=(_-g)/2/v;p=y<0?-1/(-y+Math.sqrt(1+y*y)):1/(y+Math.sqrt(1+y*y)),u=1/Math.sqrt(1+p*p),c=p*u}return t=l.clone(l.IDENTITY,t),t[l.getElementIndex(d,d)]=t[l.getElementIndex(h,h)]=u,t[l.getElementIndex(h,d)]=c,t[l.getElementIndex(d,h)]=-c,t}l.packedLength=9,l.pack=function(e,t,r){return r=i(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},l.unpack=function(e,t,n){return t=i(t,0),r(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n},l.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new l(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},l.fromArray=function(e,t,n){return t=i(t,0),r(n)||(n=new l),n[0]=e[t],n[1]=e[t+1],n[2]=e[t+2],n[3]=e[t+3],n[4]=e[t+4],n[5]=e[t+5],n[6]=e[t+6],n[7]=e[t+7],n[8]=e[t+8],n},l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},l.fromQuaternion=function(e,t){var i=e.x*e.x,n=e.x*e.y,o=e.x*e.z,a=e.x*e.w,s=e.y*e.y,u=e.y*e.z,c=e.y*e.w,d=e.z*e.z,h=e.z*e.w,p=e.w*e.w,f=i-s-d+p,m=2*(n-h),_=2*(o+c),g=2*(n+h),v=-i+s-d+p,y=2*(u-a),C=2*(o-c),b=2*(u+a),S=-i-s+d+p;return r(t)?(t[0]=f,t[1]=g,t[2]=C,t[3]=m,t[4]=v,t[5]=b,t[6]=_,t[7]=y,t[8]=S,t):new l(f,m,_,g,v,y,C,b,S)},l.fromHeadingPitchRoll=function(e,t){var i=Math.cos(-e.pitch),n=Math.cos(-e.heading),o=Math.cos(e.roll),a=Math.sin(-e.pitch),s=Math.sin(-e.heading),u=Math.sin(e.roll),c=i*n,d=-o*s+u*a*n,h=u*s+o*a*n,p=i*s,f=o*n+u*a*s,m=-u*n+o*a*s,_=-a,g=u*i,v=o*i;return r(t)?(t[0]=c,t[1]=p,t[2]=_,t[3]=d,t[4]=f,t[5]=g,t[6]=h,t[7]=m,t[8]=v,t):new l(c,d,h,p,f,m,_,g,v)},l.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new l(e.x,0,0,0,e.y,0,0,0,e.z)},l.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new l(e,0,0,0,e,0,0,0,e)},l.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new l(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},l.fromRotationX=function(e,t){var i=Math.cos(e),n=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=i,t[5]=n,t[6]=0,t[7]=-n,t[8]=i,t):new l(1,0,0,0,i,-n,0,n,i)},l.fromRotationY=function(e,t){var i=Math.cos(e),n=Math.sin(e);return r(t)?(t[0]=i,t[1]=0,t[2]=-n,t[3]=0,t[4]=1,t[5]=0,t[6]=n,t[7]=0,t[8]=i,t):new l(i,0,n,0,1,0,-n,0,i)},l.fromRotationZ=function(e,t){var i=Math.cos(e),n=Math.sin(e);return r(t)?(t[0]=i,t[1]=n,t[2]=0,t[3]=-n,t[4]=i,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new l(i,-n,0,n,i,0,0,0,1)},l.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},l.getElementIndex=function(e,t){return 3*e+t},l.getColumn=function(e,t,i){var r=3*t,n=e[r],o=e[r+1],a=e[r+2];return i.x=n,i.y=o,i.z=a,i},l.setColumn=function(e,t,i,r){r=l.clone(e,r);var n=3*t;return r[n]=i.x,r[n+1]=i.y,r[n+2]=i.z,r},l.getRow=function(e,t,i){var r=e[t],n=e[t+3],o=e[t+6];return i.x=r,i.y=n,i.z=o,i},l.setRow=function(e,t,i,r){return r=l.clone(e,r),r[t]=i.x,r[t+3]=i.y,r[t+6]=i.z,r};var h=new e;l.getScale=function(t,i){return i.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),i.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),i.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),i};var p=new e;l.getMaximumScale=function(t){return l.getScale(t,p),e.maximumComponent(p)},l.multiply=function(e,t,i){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],n=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],o=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],a=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],s=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],l=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],u=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],c=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return i[0]=r,i[1]=n,i[2]=o,i[3]=a,i[4]=s,i[5]=l,i[6]=u,i[7]=c,i[8]=d,i},l.add=function(e,t,i){return i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i[4]=e[4]+t[4],i[5]=e[5]+t[5],i[6]=e[6]+t[6],i[7]=e[7]+t[7],i[8]=e[8]+t[8],i},l.subtract=function(e,t,i){return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i[4]=e[4]-t[4],i[5]=e[5]-t[5],i[6]=e[6]-t[6],i[7]=e[7]-t[7],i[8]=e[8]-t[8],i},l.multiplyByVector=function(e,t,i){var r=t.x,n=t.y,o=t.z,a=e[0]*r+e[3]*n+e[6]*o,s=e[1]*r+e[4]*n+e[7]*o,l=e[2]*r+e[5]*n+e[8]*o;return i.x=a,i.y=s,i.z=l,i},l.multiplyByScalar=function(e,t,i){return i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i[4]=e[4]*t,i[5]=e[5]*t,i[6]=e[6]*t,i[7]=e[7]*t,i[8]=e[8]*t,i},l.multiplyByScale=function(e,t,i){return i[0]=e[0]*t.x,i[1]=e[1]*t.x,i[2]=e[2]*t.x,i[3]=e[3]*t.y,i[4]=e[4]*t.y,i[5]=e[5]*t.y,i[6]=e[6]*t.z,i[7]=e[7]*t.z,i[8]=e[8]*t.z,i},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},l.transpose=function(e,t){var i=e[0],r=e[3],n=e[6],o=e[1],a=e[4],s=e[7],l=e[2],u=e[5],c=e[8];return t[0]=i,t[1]=r,t[2]=n,t[3]=o,t[4]=a,t[5]=s,t[6]=l,t[7]=u,t[8]=c,t};var f=[1,0,0],m=[2,2,1],_=new l,g=new l;return l.computeEigenDecomposition=function(e,t){var i=s.EPSILON20,n=0,o=0;r(t)||(t={});for(var a=t.unitary=l.clone(l.IDENTITY,t.unitary),h=t.diagonal=l.clone(e,t.diagonal),p=i*u(h);o<10&&c(h)>p;)d(h,_),l.transpose(_,g),l.multiply(h,_,h),l.multiply(g,h,h),l.multiply(a,_,a),++n>2&&(++o,n=0);return t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]), -t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},l.determinant=function(e){var t=e[0],i=e[3],r=e[6],n=e[1],o=e[4],a=e[7],s=e[2],l=e[5],u=e[8];return t*(o*u-l*a)+n*(l*r-i*u)+s*(i*a-o*r)},l.inverse=function(e,t){var i=e[0],r=e[1],n=e[2],o=e[3],a=e[4],s=e[5],u=e[6],c=e[7],d=e[8],h=l.determinant(e);t[0]=a*d-c*s,t[1]=c*n-r*d,t[2]=r*s-a*n,t[3]=u*s-o*d,t[4]=i*d-u*n,t[5]=o*n-i*s,t[6]=o*c-u*a,t[7]=u*r-i*c,t[8]=i*a-o*r;var p=1/h;return l.multiplyByScalar(t,p,t)},l.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},l.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=i&&Math.abs(e[1]-t[1])<=i&&Math.abs(e[2]-t[2])<=i&&Math.abs(e[3]-t[3])<=i&&Math.abs(e[4]-t[4])<=i&&Math.abs(e[5]-t[5])<=i&&Math.abs(e[6]-t[6])<=i&&Math.abs(e[7]-t[7])<=i&&Math.abs(e[8]-t[8])<=i},l.IDENTITY=a(new l(1,0,0,0,1,0,0,0,1)),l.ZERO=a(new l(0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN1ROW0=3,l.COLUMN1ROW1=4,l.COLUMN1ROW2=5,l.COLUMN2ROW0=6,l.COLUMN2ROW1=7,l.COLUMN2ROW2=8,n(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,i){return e[0]===t[i]&&e[1]===t[i+1]&&e[2]===t[i+2]&&e[3]===t[i+3]&&e[4]===t[i+4]&&e[5]===t[i+5]&&e[6]===t[i+6]&&e[7]===t[i+7]&&e[8]===t[i+8]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},l}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,i,r,n,o){"use strict";function a(e,i,r,n){this.x=t(e,0),this.y=t(i,0),this.z=t(r,0),this.w=t(n,0)}a.fromElements=function(e,t,r,n,o){return i(o)?(o.x=e,o.y=t,o.z=r,o.w=n,o):new a(e,t,r,n)},a.fromColor=function(e,t){return i(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new a(e.red,e.green,e.blue,e.alpha)},a.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new a(e.x,e.y,e.z,e.w)},a.packedLength=4,a.pack=function(e,i,r){return r=t(r,0),i[r++]=e.x,i[r++]=e.y,i[r++]=e.z,i[r]=e.w,i},a.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new a),n.x=e[r++],n.y=e[r++],n.z=e[r++],n.w=e[r],n},a.packArray=function(e,t){var r=e.length;i(t)?t.length=4*r:t=new Array(4*r);for(var n=0;n<r;++n)a.pack(e[n],t,4*n);return t},a.unpackArray=function(e,t){var r=e.length;i(t)?t.length=r/4:t=new Array(r/4);for(var n=0;n<r;n+=4){var o=n/4;t[o]=a.unpack(e,n,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},a.minimumByComponent=function(e,t,i){return i.x=Math.min(e.x,t.x),i.y=Math.min(e.y,t.y),i.z=Math.min(e.z,t.z),i.w=Math.min(e.w,t.w),i},a.maximumByComponent=function(e,t,i){return i.x=Math.max(e.x,t.x),i.y=Math.max(e.y,t.y),i.z=Math.max(e.z,t.z),i.w=Math.max(e.w,t.w),i},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var i=a.magnitude(e);return t.x=e.x/i,t.y=e.y/i,t.z=e.z/i,t.w=e.w/i,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},a.multiplyComponents=function(e,t,i){return i.x=e.x*t.x,i.y=e.y*t.y,i.z=e.z*t.z,i.w=e.w*t.w,i},a.divideComponents=function(e,t,i){return i.x=e.x/t.x,i.y=e.y/t.y,i.z=e.z/t.z,i.w=e.w/t.w,i},a.add=function(e,t,i){return i.x=e.x+t.x,i.y=e.y+t.y,i.z=e.z+t.z,i.w=e.w+t.w,i},a.subtract=function(e,t,i){return i.x=e.x-t.x,i.y=e.y-t.y,i.z=e.z-t.z,i.w=e.w-t.w,i},a.multiplyByScalar=function(e,t,i){return i.x=e.x*t,i.y=e.y*t,i.z=e.z*t,i.w=e.w*t,i},a.divideByScalar=function(e,t,i){return i.x=e.x/t,i.y=e.y/t,i.z=e.z/t,i.w=e.w/t,i},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var l=new a;a.lerp=function(e,t,i,r){return a.multiplyByScalar(t,i,l),r=a.multiplyByScalar(e,1-i,r),a.add(l,r,r)};var u=new a;a.mostOrthogonalAxis=function(e,t){var i=a.normalize(e,u);return a.abs(i,i),t=i.x<=i.y?i.x<=i.z?i.x<=i.w?a.clone(a.UNIT_X,t):a.clone(a.UNIT_W,t):i.z<=i.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t):i.y<=i.z?i.y<=i.w?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_W,t):i.z<=i.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t)},a.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},a.equalsArray=function(e,t,i){return e.x===t[i]&&e.y===t[i+1]&&e.z===t[i+2]&&e.w===t[i+3]},a.equalsEpsilon=function(e,t,r,n){return e===t||i(e)&&i(t)&&o.equalsEpsilon(e.x,t.x,r,n)&&o.equalsEpsilon(e.y,t.y,r,n)&&o.equalsEpsilon(e.z,t.z,r,n)&&o.equalsEpsilon(e.w,t.w,r,n)},a.ZERO=n(new a(0,0,0,0)),a.UNIT_X=n(new a(1,0,0,0)),a.UNIT_Y=n(new a(0,1,0,0)),a.UNIT_Z=n(new a(0,0,1,0)),a.UNIT_W=n(new a(0,0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,i){return a.equalsEpsilon(this,e,t,i)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var c=new Float32Array(1);return a.packFloat=function(e,t){if(i(t)||(t=new a),c[0]=e,0===(e=c[0]))return a.clone(a.ZERO,t);var r,n=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(o.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var s=256*e;return t.x=Math.floor(s),s=256*(s-t.x),t.y=Math.floor(s),s=256*(s-t.y),t.z=Math.floor(s),t.w=2*(r+38)+n,t},a.unpackFloat=function(e){var t=e.w/2,i=Math.floor(t),r=2*(t-i);if(i-=38,r=2*r-1,r=-r,i>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var n=r*e.x*(1/256);return n+=r*e.y*(1/65536),(n+=r*e.z*(1/16777216))*Math.pow(10,i)},a}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,t,i,n,o,a,s,l,u,c,d,h,p,f,m,_){this[0]=r(e,0),this[1]=r(o,0),this[2]=r(u,0),this[3]=r(p,0),this[4]=r(t,0),this[5]=r(a,0),this[6]=r(c,0),this[7]=r(f,0),this[8]=r(i,0),this[9]=r(s,0),this[10]=r(d,0),this[11]=r(m,0),this[12]=r(n,0),this[13]=r(l,0),this[14]=r(h,0),this[15]=r(_,0)}c.packedLength=16,c.pack=function(e,t,i){return i=r(i,0),t[i++]=e[0],t[i++]=e[1],t[i++]=e[2],t[i++]=e[3],t[i++]=e[4],t[i++]=e[5],t[i++]=e[6],t[i++]=e[7],t[i++]=e[8],t[i++]=e[9],t[i++]=e[10],t[i++]=e[11],t[i++]=e[12],t[i++]=e[13],t[i++]=e[14],t[i]=e[15],t},c.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new c),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i[9]=e[t++],i[10]=e[t++],i[11]=e[t++],i[12]=e[t++],i[13]=e[t++],i[14]=e[t++],i[15]=e[t],i},c.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new c(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},c.fromArray=c.unpack,c.fromColumnMajorArray=function(e,t){return c.clone(e,t)},c.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new c(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},c.fromRotationTranslation=function(t,i,o){return i=r(i,e.ZERO),n(o)?(o[0]=t[0],o[1]=t[1],o[2]=t[2],o[3]=0,o[4]=t[3],o[5]=t[4],o[6]=t[5],o[7]=0,o[8]=t[6],o[9]=t[7],o[10]=t[8],o[11]=0,o[12]=i.x,o[13]=i.y,o[14]=i.z,o[15]=1,o):new c(t[0],t[3],t[6],i.x,t[1],t[4],t[7],i.y,t[2],t[5],t[8],i.z,0,0,0,1)},c.fromTranslationQuaternionRotationScale=function(e,t,i,r){n(r)||(r=new c);var o=i.x,a=i.y,s=i.z,l=t.x*t.x,u=t.x*t.y,d=t.x*t.z,h=t.x*t.w,p=t.y*t.y,f=t.y*t.z,m=t.y*t.w,_=t.z*t.z,g=t.z*t.w,v=t.w*t.w,y=l-p-_+v,C=2*(u-g),b=2*(d+m),S=2*(u+g),T=-l+p-_+v,E=2*(f-h),A=2*(d-m),w=2*(f+h),x=-l-p+_+v;return r[0]=y*o,r[1]=S*o,r[2]=A*o,r[3]=0,r[4]=C*a,r[5]=T*a,r[6]=w*a,r[7]=0,r[8]=b*s,r[9]=E*s,r[10]=x*s,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},c.fromTranslationRotationScale=function(e,t){return c.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},c.fromTranslation=function(e,t){return c.fromRotationTranslation(l.IDENTITY,e,t)},c.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new c(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},c.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new c(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var d=new e,h=new e,p=new e;c.fromCamera=function(t,i){var r=t.position,o=t.direction,a=t.up;e.normalize(o,d),e.normalize(e.cross(d,a,h),h),e.normalize(e.cross(h,d,p),p);var s=h.x,l=h.y,u=h.z,f=d.x,m=d.y,_=d.z,g=p.x,v=p.y,y=p.z,C=r.x,b=r.y,S=r.z,T=s*-C+l*-b+u*-S,E=g*-C+v*-b+y*-S,A=f*C+m*b+_*S;return n(i)?(i[0]=s,i[1]=g,i[2]=-f,i[3]=0,i[4]=l,i[5]=v,i[6]=-m,i[7]=0,i[8]=u,i[9]=y,i[10]=-_,i[11]=0,i[12]=T,i[13]=E,i[14]=A,i[15]=1,i):new c(s,l,u,T,g,v,y,E,-f,-m,-_,A,0,0,0,1)},c.computePerspectiveFieldOfView=function(e,t,i,r,n){var o=Math.tan(.5*e),a=1/o,s=a/t,l=(r+i)/(i-r),u=2*r*i/(i-r);return n[0]=s,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=a,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=l,n[11]=-1,n[12]=0,n[13]=0,n[14]=u,n[15]=0,n},c.computeOrthographicOffCenter=function(e,t,i,r,n,o,a){var s=1/(t-e),l=1/(r-i),u=1/(o-n),c=-(t+e)*s,d=-(r+i)*l,h=-(o+n)*u;return s*=2,l*=2,u*=-2,a[0]=s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=l,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=u,a[11]=0,a[12]=c,a[13]=d,a[14]=h,a[15]=1,a},c.computePerspectiveOffCenter=function(e,t,i,r,n,o,a){var s=2*n/(t-e),l=2*n/(r-i),u=(t+e)/(t-e),c=(r+i)/(r-i),d=-(o+n)/(o-n),h=-2*o*n/(o-n);return a[0]=s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=l,a[6]=0,a[7]=0,a[8]=u,a[9]=c,a[10]=d,a[11]=-1,a[12]=0,a[13]=0,a[14]=h,a[15]=0,a},c.computeInfinitePerspectiveOffCenter=function(e,t,i,r,n,o){var a=2*n/(t-e),s=2*n/(r-i),l=(t+e)/(t-e),u=(r+i)/(r-i),c=-2*n;return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=l,o[9]=u,o[10]=-1,o[11]=-1,o[12]=0,o[13]=0,o[14]=c,o[15]=0,o},c.computeViewportTransformation=function(e,t,i,n){e=r(e,r.EMPTY_OBJECT);var o=r(e.x,0),a=r(e.y,0),s=r(e.width,0),l=r(e.height,0);t=r(t,0),i=r(i,1);var u=.5*s,c=.5*l,d=.5*(i-t),h=u,p=c,f=d,m=o+u,_=a+c,g=t+d;return n[0]=h,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=p,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=f,n[11]=0,n[12]=m,n[13]=_,n[14]=g,n[15]=1,n},c.computeView=function(t,i,r,n,o){return o[0]=n.x,o[1]=r.x,o[2]=-i.x,o[3]=0,o[4]=n.y,o[5]=r.y,o[6]=-i.y,o[7]=0,o[8]=n.z,o[9]=r.z,o[10]=-i.z,o[11]=0,o[12]=-e.dot(n,t),o[13]=-e.dot(r,t),o[14]=e.dot(i,t),o[15]=1,o},c.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},c.getElementIndex=function(e,t){return 4*e+t},c.getColumn=function(e,t,i){var r=4*t,n=e[r],o=e[r+1],a=e[r+2],s=e[r+3];return i.x=n,i.y=o,i.z=a,i.w=s,i},c.setColumn=function(e,t,i,r){r=c.clone(e,r);var n=4*t;return r[n]=i.x,r[n+1]=i.y,r[n+2]=i.z,r[n+3]=i.w,r},c.setTranslation=function(e,t,i){return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=t.x,i[13]=t.y,i[14]=t.z,i[15]=e[15],i};var f=new e;c.setScale=function(t,i,r){var n=c.getScale(t,f),o=e.divideComponents(i,n,f);return c.multiplyByScale(t,o,r)},c.getRow=function(e,t,i){var r=e[t],n=e[t+4],o=e[t+8],a=e[t+12];return i.x=r,i.y=n,i.z=o,i.w=a,i},c.setRow=function(e,t,i,r){return r=c.clone(e,r),r[t]=i.x,r[t+4]=i.y,r[t+8]=i.z,r[t+12]=i.w,r};var m=new e;c.getScale=function(t,i){return i.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),i.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),i.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),i};var _=new e;c.getMaximumScale=function(t){return c.getScale(t,_),e.maximumComponent(_)},c.multiply=function(e,t,i){var r=e[0],n=e[1],o=e[2],a=e[3],s=e[4],l=e[5],u=e[6],c=e[7],d=e[8],h=e[9],p=e[10],f=e[11],m=e[12],_=e[13],g=e[14],v=e[15],y=t[0],C=t[1],b=t[2],S=t[3],T=t[4],E=t[5],A=t[6],w=t[7],x=t[8],P=t[9],D=t[10],I=t[11],M=t[12],R=t[13],O=t[14],L=t[15],N=r*y+s*C+d*b+m*S,F=n*y+l*C+h*b+_*S,B=o*y+u*C+p*b+g*S,z=a*y+c*C+f*b+v*S,k=r*T+s*E+d*A+m*w,V=n*T+l*E+h*A+_*w,U=o*T+u*E+p*A+g*w,G=a*T+c*E+f*A+v*w,H=r*x+s*P+d*D+m*I,W=n*x+l*P+h*D+_*I,q=o*x+u*P+p*D+g*I,Y=a*x+c*P+f*D+v*I,j=r*M+s*R+d*O+m*L,X=n*M+l*R+h*O+_*L,Q=o*M+u*R+p*O+g*L,K=a*M+c*R+f*O+v*L;return i[0]=N,i[1]=F,i[2]=B,i[3]=z,i[4]=k,i[5]=V,i[6]=U,i[7]=G,i[8]=H,i[9]=W,i[10]=q,i[11]=Y,i[12]=j,i[13]=X,i[14]=Q,i[15]=K,i},c.add=function(e,t,i){return i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i[4]=e[4]+t[4],i[5]=e[5]+t[5],i[6]=e[6]+t[6],i[7]=e[7]+t[7],i[8]=e[8]+t[8],i[9]=e[9]+t[9],i[10]=e[10]+t[10],i[11]=e[11]+t[11],i[12]=e[12]+t[12],i[13]=e[13]+t[13],i[14]=e[14]+t[14],i[15]=e[15]+t[15],i},c.subtract=function(e,t,i){return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i[4]=e[4]-t[4],i[5]=e[5]-t[5],i[6]=e[6]-t[6],i[7]=e[7]-t[7],i[8]=e[8]-t[8],i[9]=e[9]-t[9],i[10]=e[10]-t[10],i[11]=e[11]-t[11],i[12]=e[12]-t[12],i[13]=e[13]-t[13],i[14]=e[14]-t[14],i[15]=e[15]-t[15],i},c.multiplyTransformation=function(e,t,i){var r=e[0],n=e[1],o=e[2],a=e[4],s=e[5],l=e[6],u=e[8],c=e[9],d=e[10],h=e[12],p=e[13],f=e[14],m=t[0],_=t[1],g=t[2],v=t[4],y=t[5],C=t[6],b=t[8],S=t[9],T=t[10],E=t[12],A=t[13],w=t[14],x=r*m+a*_+u*g,P=n*m+s*_+c*g,D=o*m+l*_+d*g,I=r*v+a*y+u*C,M=n*v+s*y+c*C,R=o*v+l*y+d*C,O=r*b+a*S+u*T,L=n*b+s*S+c*T,N=o*b+l*S+d*T,F=r*E+a*A+u*w+h,B=n*E+s*A+c*w+p,z=o*E+l*A+d*w+f;return i[0]=x,i[1]=P,i[2]=D,i[3]=0,i[4]=I,i[5]=M,i[6]=R,i[7]=0,i[8]=O,i[9]=L,i[10]=N,i[11]=0,i[12]=F,i[13]=B,i[14]=z,i[15]=1,i},c.multiplyByMatrix3=function(e,t,i){var r=e[0],n=e[1],o=e[2],a=e[4],s=e[5],l=e[6],u=e[8],c=e[9],d=e[10],h=t[0],p=t[1],f=t[2],m=t[3],_=t[4],g=t[5],v=t[6],y=t[7],C=t[8],b=r*h+a*p+u*f,S=n*h+s*p+c*f,T=o*h+l*p+d*f,E=r*m+a*_+u*g,A=n*m+s*_+c*g,w=o*m+l*_+d*g,x=r*v+a*y+u*C,P=n*v+s*y+c*C,D=o*v+l*y+d*C;return i[0]=b,i[1]=S,i[2]=T,i[3]=0,i[4]=E,i[5]=A,i[6]=w,i[7]=0,i[8]=x,i[9]=P,i[10]=D,i[11]=0,i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=e[15],i},c.multiplyByTranslation=function(e,t,i){var r=t.x,n=t.y,o=t.z,a=r*e[0]+n*e[4]+o*e[8]+e[12],s=r*e[1]+n*e[5]+o*e[9]+e[13],l=r*e[2]+n*e[6]+o*e[10]+e[14];return i[0]=e[0],i[1]=e[1],i[2]=e[2],i[3]=e[3],i[4]=e[4],i[5]=e[5],i[6]=e[6],i[7]=e[7],i[8]=e[8],i[9]=e[9],i[10]=e[10],i[11]=e[11],i[12]=a,i[13]=s,i[14]=l,i[15]=e[15],i};var g=new e;c.multiplyByUniformScale=function(e,t,i){return g.x=t,g.y=t,g.z=t,c.multiplyByScale(e,g,i)},c.multiplyByScale=function(e,t,i){var r=t.x,n=t.y,o=t.z;return 1===r&&1===n&&1===o?c.clone(e,i):(i[0]=r*e[0],i[1]=r*e[1],i[2]=r*e[2],i[3]=0,i[4]=n*e[4],i[5]=n*e[5],i[6]=n*e[6],i[7]=0,i[8]=o*e[8],i[9]=o*e[9],i[10]=o*e[10],i[11]=0,i[12]=e[12],i[13]=e[13],i[14]=e[14],i[15]=1,i)},c.multiplyByVector=function(e,t,i){var r=t.x,n=t.y,o=t.z,a=t.w,s=e[0]*r+e[4]*n+e[8]*o+e[12]*a,l=e[1]*r+e[5]*n+e[9]*o+e[13]*a,u=e[2]*r+e[6]*n+e[10]*o+e[14]*a,c=e[3]*r+e[7]*n+e[11]*o+e[15]*a;return i.x=s,i.y=l,i.z=u,i.w=c,i},c.multiplyByPointAsVector=function(e,t,i){var r=t.x,n=t.y,o=t.z,a=e[0]*r+e[4]*n+e[8]*o,s=e[1]*r+e[5]*n+e[9]*o,l=e[2]*r+e[6]*n+e[10]*o;return i.x=a,i.y=s,i.z=l,i},c.multiplyByPoint=function(e,t,i){var r=t.x,n=t.y,o=t.z,a=e[0]*r+e[4]*n+e[8]*o+e[12],s=e[1]*r+e[5]*n+e[9]*o+e[13],l=e[2]*r+e[6]*n+e[10]*o+e[14];return i.x=a,i.y=s,i.z=l,i},c.multiplyByScalar=function(e,t,i){return i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i[4]=e[4]*t,i[5]=e[5]*t,i[6]=e[6]*t,i[7]=e[7]*t,i[8]=e[8]*t,i[9]=e[9]*t,i[10]=e[10]*t,i[11]=e[11]*t,i[12]=e[12]*t,i[13]=e[13]*t,i[14]=e[14]*t,i[15]=e[15]*t,i},c.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},c.transpose=function(e,t){var i=e[1],r=e[2],n=e[3],o=e[6],a=e[7],s=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=i,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=o,t[10]=e[10],t[11]=e[14],t[12]=n,t[13]=a,t[14]=s,t[15]=e[15],t},c.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},c.equals=function(e,t){return e===t||n(e)&&n(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},c.equalsEpsilon=function(e,t,i){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=i&&Math.abs(e[1]-t[1])<=i&&Math.abs(e[2]-t[2])<=i&&Math.abs(e[3]-t[3])<=i&&Math.abs(e[4]-t[4])<=i&&Math.abs(e[5]-t[5])<=i&&Math.abs(e[6]-t[6])<=i&&Math.abs(e[7]-t[7])<=i&&Math.abs(e[8]-t[8])<=i&&Math.abs(e[9]-t[9])<=i&&Math.abs(e[10]-t[10])<=i&&Math.abs(e[11]-t[11])<=i&&Math.abs(e[12]-t[12])<=i&&Math.abs(e[13]-t[13])<=i&&Math.abs(e[14]-t[14])<=i&&Math.abs(e[15]-t[15])<=i},c.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},c.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var v=new l,y=new l,C=new t,b=new t(0,0,0,1);return c.inverse=function(e,i){var r=e[0],n=e[4],o=e[8],a=e[12],d=e[1],h=e[5],p=e[9],f=e[13],m=e[2],_=e[6],g=e[10],S=e[14],T=e[3],E=e[7],A=e[11],w=e[15],x=g*w,P=S*A,D=_*w,I=S*E,M=_*A,R=g*E,O=m*w,L=S*T,N=m*A,F=g*T,B=m*E,z=_*T,k=x*h+I*p+M*f-(P*h+D*p+R*f),V=P*d+O*p+F*f-(x*d+L*p+N*f),U=D*d+L*h+B*f-(I*d+O*h+z*f),G=R*d+N*h+z*p-(M*d+F*h+B*p),H=P*n+D*o+R*a-(x*n+I*o+M*a),W=x*r+L*o+N*a-(P*r+O*o+F*a),q=I*r+O*n+z*a-(D*r+L*n+B*a),Y=M*r+F*n+B*o-(R*r+N*n+z*o);x=o*f,P=a*p,D=n*f,I=a*h,M=n*p,R=o*h,O=r*f,L=a*d,N=r*p,F=o*d,B=r*h,z=n*d;var j=x*E+I*A+M*w-(P*E+D*A+R*w),X=P*T+O*A+F*w-(x*T+L*A+N*w),Q=D*T+L*E+B*w-(I*T+O*E+z*w),K=R*T+N*E+z*A-(M*T+F*E+B*A),Z=D*g+R*S+P*_-(M*S+x*_+I*g),J=N*S+x*m+L*g-(O*g+F*S+P*m),$=O*_+z*S+I*m-(B*S+D*m+L*_),ee=B*g+M*m+F*_-(N*_+z*g+R*m),te=r*k+n*V+o*U+a*G;if(Math.abs(te)<s.EPSILON21){if(l.equalsEpsilon(c.getRotation(e,v),y,s.EPSILON7)&&t.equals(c.getRow(e,3,C),b))return i[0]=0,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=0,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=0,i[11]=0,i[12]=-e[12],i[13]=-e[13],i[14]=-e[14],i[15]=1,i;throw new u("matrix is not invertible because its determinate is zero.")}return te=1/te,i[0]=k*te,i[1]=V*te,i[2]=U*te,i[3]=G*te,i[4]=H*te,i[5]=W*te,i[6]=q*te,i[7]=Y*te,i[8]=j*te,i[9]=X*te,i[10]=Q*te,i[11]=K*te,i[12]=Z*te,i[13]=J*te,i[14]=$*te,i[15]=ee*te,i},c.inverseTransformation=function(e,t){var i=e[0],r=e[1],n=e[2],o=e[4],a=e[5],s=e[6],l=e[8],u=e[9],c=e[10],d=e[12],h=e[13],p=e[14],f=-i*d-r*h-n*p,m=-o*d-a*h-s*p,_=-l*d-u*h-c*p;return t[0]=i,t[1]=o,t[2]=l,t[3]=0,t[4]=r,t[5]=a,t[6]=u,t[7]=0,t[8]=n,t[9]=s,t[10]=c,t[11]=0,t[12]=f,t[13]=m,t[14]=_,t[15]=1,t},c.IDENTITY=a(new c(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),c.ZERO=a(new c(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),c.COLUMN0ROW0=0,c.COLUMN0ROW1=1,c.COLUMN0ROW2=2,c.COLUMN0ROW3=3,c.COLUMN1ROW0=4,c.COLUMN1ROW1=5,c.COLUMN1ROW2=6,c.COLUMN1ROW3=7,c.COLUMN2ROW0=8,c.COLUMN2ROW1=9,c.COLUMN2ROW2=10,c.COLUMN2ROW3=11,c.COLUMN3ROW0=12,c.COLUMN3ROW1=13,c.COLUMN3ROW2=14,c.COLUMN3ROW3=15,o(c.prototype,{length:{get:function(){return c.packedLength}}}),c.prototype.clone=function(e){return c.clone(this,e)},c.prototype.equals=function(e){return c.equals(this,e)},c.equalsArray=function(e,t,i){return e[0]===t[i]&&e[1]===t[i+1]&&e[2]===t[i+2]&&e[3]===t[i+3]&&e[4]===t[i+4]&&e[5]===t[i+5]&&e[6]===t[i+6]&&e[7]===t[i+7]&&e[8]===t[i+8]&&e[9]===t[i+9]&&e[10]===t[i+10]&&e[11]===t[i+11]&&e[12]===t[i+12]&&e[13]===t[i+13]&&e[14]===t[i+14]&&e[15]===t[i+15]},c.prototype.equalsEpsilon=function(e,t){return c.equalsEpsilon(this,e,t)},c.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},c}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,r,n){this.west=i(e,0),this.south=i(t,0),this.east=i(r,0),this.north=i(n,0)}n(l.prototype,{width:{get:function(){return l.computeWidth(this)}},height:{get:function(){return l.computeHeight(this)}}}),l.packedLength=4,l.pack=function(e,t,r){return r=i(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},l.unpack=function(e,t,n){return t=i(t,0),r(n)||(n=new l),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n},l.computeWidth=function(e){var t=e.east,i=e.west;return t<i&&(t+=s.TWO_PI),t-i},l.computeHeight=function(e){return e.north-e.south},l.fromDegrees=function(e,t,n,o,a){return e=s.toRadians(i(e,0)),t=s.toRadians(i(t,0)),n=s.toRadians(i(n,0)),o=s.toRadians(i(o,0)),r(a)?(a.west=e,a.south=t,a.east=n,a.north=o,a):new l(e,t,n,o)},l.fromRadians=function(e,t,n,o,a){return r(a)?(a.west=i(e,0),a.south=i(t,0),a.east=i(n,0),a.north=i(o,0),a):new l(e,t,n,o)},l.fromCartographicArray=function(e,t){for(var i=Number.MAX_VALUE,n=-Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,u=Number.MAX_VALUE,c=-Number.MAX_VALUE,d=0,h=e.length;d<h;d++){var p=e[d];i=Math.min(i,p.longitude),n=Math.max(n,p.longitude),u=Math.min(u,p.latitude),c=Math.max(c,p.latitude);var f=p.longitude>=0?p.longitude:p.longitude+s.TWO_PI;o=Math.min(o,f),a=Math.max(a,f)}return n-i>a-o&&(i=o,n=a,n>s.PI&&(n-=s.TWO_PI),i>s.PI&&(i-=s.TWO_PI)),r(t)?(t.west=i,t.south=u,t.east=n,t.north=c,t):new l(i,u,n,c)},l.fromCartesianArray=function(e,t,n){t=i(t,o.WGS84);for(var a=Number.MAX_VALUE,u=-Number.MAX_VALUE,c=Number.MAX_VALUE,d=-Number.MAX_VALUE,h=Number.MAX_VALUE,p=-Number.MAX_VALUE,f=0,m=e.length;f<m;f++){var _=t.cartesianToCartographic(e[f]);a=Math.min(a,_.longitude),u=Math.max(u,_.longitude),h=Math.min(h,_.latitude),p=Math.max(p,_.latitude);var g=_.longitude>=0?_.longitude:_.longitude+s.TWO_PI;c=Math.min(c,g),d=Math.max(d,g)}return u-a>d-c&&(a=c,u=d,u>s.PI&&(u-=s.TWO_PI),a>s.PI&&(a-=s.TWO_PI)),r(n)?(n.west=a,n.south=h,n.east=u,n.north=p,n):new l(a,h,u,p)},l.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new l(e.west,e.south,e.east,e.north)},l.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=i&&Math.abs(e.south-t.south)<=i&&Math.abs(e.east-t.east)<=i&&Math.abs(e.north-t.north)<=i},l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.validate=function(e){},l.southwest=function(t,i){return r(i)?(i.longitude=t.west,i.latitude=t.south,i.height=0,i):new e(t.west,t.south)},l.northwest=function(t,i){return r(i)?(i.longitude=t.west,i.latitude=t.north,i.height=0,i):new e(t.west,t.north)},l.northeast=function(t,i){return r(i)?(i.longitude=t.east,i.latitude=t.north,i.height=0,i):new e(t.east,t.north)},l.southeast=function(t,i){return r(i)?(i.longitude=t.east,i.latitude=t.south,i.height=0,i):new e(t.east,t.south)},l.center=function(t,i){var n=t.east,o=t.west;n<o&&(n+=s.TWO_PI);var a=s.negativePiToPi(.5*(o+n)),l=.5*(t.south+t.north);return r(i)?(i.longitude=a,i.latitude=l,i.height=0,i):new e(a,l)},l.intersection=function(e,t,i){var n=e.east,o=e.west,a=t.east,u=t.west;n<o&&a>0?n+=s.TWO_PI:a<u&&n>0&&(a+=s.TWO_PI),n<o&&u<0?u+=s.TWO_PI:a<u&&o<0&&(o+=s.TWO_PI);var c=s.negativePiToPi(Math.max(o,u)),d=s.negativePiToPi(Math.min(n,a));if(!((e.west<e.east||t.west<t.east)&&d<=c)){var h=Math.max(e.south,t.south),p=Math.min(e.north,t.north);if(!(h>=p))return r(i)?(i.west=c,i.south=h,i.east=d,i.north=p,i):new l(c,h,d,p)}},l.simpleIntersection=function(e,t,i){var n=Math.max(e.west,t.west),o=Math.max(e.south,t.south),a=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||n>=a))return r(i)?(i.west=n,i.south=o,i.east=a,i.north=s,i):new l(n,o,a,s)},l.union=function(e,t,i){r(i)||(i=new l);var n=e.east,o=e.west,a=t.east,u=t.west;n<o&&a>0?n+=s.TWO_PI:a<u&&n>0&&(a+=s.TWO_PI),n<o&&u<0?u+=s.TWO_PI:a<u&&o<0&&(o+=s.TWO_PI);var c=s.convertLongitudeRange(Math.min(o,u)),d=s.convertLongitudeRange(Math.max(n,a));return i.west=c,i.south=Math.min(e.south,t.south),i.east=d,i.north=Math.max(e.north,t.north),i},l.expand=function(e,t,i){return r(i)||(i=new l),i.west=Math.min(e.west,t.longitude),i.south=Math.min(e.south,t.latitude),i.east=Math.max(e.east,t.longitude),i.north=Math.max(e.north,t.latitude),i},l.contains=function(e,t){var i=t.longitude,r=t.latitude,n=e.west,o=e.east;return o<n&&(o+=s.TWO_PI,i<0&&(i+=s.TWO_PI)),(i>n||s.equalsEpsilon(i,n,s.EPSILON14))&&(i<o||s.equalsEpsilon(i,o,s.EPSILON14))&&r>=e.south&&r<=e.north};var u=new e;return l.subsample=function(e,t,n,a){t=i(t,o.WGS84),n=i(n,0),r(a)||(a=[]);var c=0,d=e.north,h=e.south,p=e.east,f=e.west,m=u;m.height=n,m.longitude=f,m.latitude=d,a[c]=t.cartographicToCartesian(m,a[c]),c++,m.longitude=p,a[c]=t.cartographicToCartesian(m,a[c]),c++,m.latitude=h,a[c]=t.cartographicToCartesian(m,a[c]),c++,m.longitude=f,a[c]=t.cartographicToCartesian(m,a[c]),c++,m.latitude=d<0?d:h>0?h:0;for(var _=1;_<8;++_)m.longitude=-Math.PI+_*s.PI_OVER_TWO,l.contains(e,m)&&(a[c]=t.cartographicToCartesian(m,a[c]),c++);return 0===m.latitude&&(m.longitude=f,a[c]=t.cartographicToCartesian(m,a[c]),c++,m.longitude=p,a[c]=t.cartographicToCartesian(m,a[c]),c++),a.length=c,a},l.MAX_VALUE=a(new l(-Math.PI,-s.PI_OVER_TWO,Math.PI,s.PI_OVER_TWO)),l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(t,i){this.center=e.clone(r(t,e.ZERO)),this.radius=r(i,0)}var f=new e,m=new e,_=new e,g=new e,v=new e,y=new e,C=new e,b=new e,S=new e,T=new e,E=new e,A=new e,w=4/3*u.PI;p.fromPoints=function(t,i){if(n(i)||(i=new p),!n(t)||0===t.length)return i.center=e.clone(e.ZERO,i.center),i.radius=0,i;var r,o=e.clone(t[0],C),a=e.clone(o,f),s=e.clone(o,m),l=e.clone(o,_),u=e.clone(o,g),c=e.clone(o,v),d=e.clone(o,y),h=t.length;for(r=1;r<h;r++){e.clone(t[r],o);var w=o.x,x=o.y,P=o.z;w<a.x&&e.clone(o,a),w>u.x&&e.clone(o,u),x<s.y&&e.clone(o,s),x>c.y&&e.clone(o,c),P<l.z&&e.clone(o,l),P>d.z&&e.clone(o,d)}var D=e.magnitudeSquared(e.subtract(u,a,b)),I=e.magnitudeSquared(e.subtract(c,s,b)),M=e.magnitudeSquared(e.subtract(d,l,b)),R=a,O=u,L=D;I>L&&(L=I,R=s,O=c),M>L&&(L=M,R=l,O=d);var N=S;N.x=.5*(R.x+O.x),N.y=.5*(R.y+O.y),N.z=.5*(R.z+O.z);var F=e.magnitudeSquared(e.subtract(O,N,b)),B=Math.sqrt(F),z=T;z.x=a.x,z.y=s.y,z.z=l.z;var k=E;k.x=u.x,k.y=c.y,k.z=d.z;var V=e.midpoint(z,k,A),U=0;for(r=0;r<h;r++){e.clone(t[r],o);var G=e.magnitude(e.subtract(o,V,b));G>U&&(U=G);var H=e.magnitudeSquared(e.subtract(o,N,b));if(H>F){var W=Math.sqrt(H);B=.5*(B+W),F=B*B;var q=W-B;N.x=(B*N.x+q*o.x)/W,N.y=(B*N.y+q*o.y)/W,N.z=(B*N.z+q*o.z)/W}}return B<U?(e.clone(N,i.center),i.radius=B):(e.clone(V,i.center),i.radius=U),i};var x=new a,P=new e,D=new e,I=new t,M=new t;p.fromRectangle2D=function(e,t,i){return p.fromRectangleWithHeights2D(e,t,0,0,i)},p.fromRectangleWithHeights2D=function(t,i,o,a,s){if(n(s)||(s=new p),!n(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;i=r(i,x),h.southwest(t,I),I.height=o,h.northeast(t,M),M.height=a;var l=i.project(I,P),u=i.project(M,D),c=u.x-l.x,d=u.y-l.y,f=u.z-l.z;s.radius=.5*Math.sqrt(c*c+d*d+f*f);var m=s.center;return m.x=l.x+.5*c,m.y=l.y+.5*d,m.z=l.z+.5*f,s};var R=[];p.fromRectangle3D=function(t,i,a,s){if(i=r(i,o.WGS84),a=r(a,0),n(s)||(s=new p),!n(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;var l=h.subsample(t,i,a,R);return p.fromPoints(l,s)},p.fromVertices=function(t,i,o,a){if(n(a)||(a=new p),!n(t)||0===t.length)return a.center=e.clone(e.ZERO,a.center),a.radius=0,a;i=r(i,e.ZERO),o=r(o,3);var s=C;s.x=t[0]+i.x,s.y=t[1]+i.y,s.z=t[2]+i.z;var l,u=e.clone(s,f),c=e.clone(s,m),d=e.clone(s,_),h=e.clone(s,g),w=e.clone(s,v),x=e.clone(s,y),P=t.length;for(l=0;l<P;l+=o){var D=t[l]+i.x,I=t[l+1]+i.y,M=t[l+2]+i.z;s.x=D,s.y=I,s.z=M,D<u.x&&e.clone(s,u),D>h.x&&e.clone(s,h),I<c.y&&e.clone(s,c),I>w.y&&e.clone(s,w),M<d.z&&e.clone(s,d),M>x.z&&e.clone(s,x)}var R=e.magnitudeSquared(e.subtract(h,u,b)),O=e.magnitudeSquared(e.subtract(w,c,b)),L=e.magnitudeSquared(e.subtract(x,d,b)),N=u,F=h,B=R;O>B&&(B=O,N=c,F=w),L>B&&(B=L,N=d,F=x);var z=S;z.x=.5*(N.x+F.x),z.y=.5*(N.y+F.y),z.z=.5*(N.z+F.z);var k=e.magnitudeSquared(e.subtract(F,z,b)),V=Math.sqrt(k),U=T;U.x=u.x,U.y=c.y,U.z=d.z;var G=E;G.x=h.x,G.y=w.y,G.z=x.z;var H=e.midpoint(U,G,A),W=0;for(l=0;l<P;l+=o){s.x=t[l]+i.x,s.y=t[l+1]+i.y,s.z=t[l+2]+i.z;var q=e.magnitude(e.subtract(s,H,b));q>W&&(W=q);var Y=e.magnitudeSquared(e.subtract(s,z,b));if(Y>k){var j=Math.sqrt(Y);V=.5*(V+j),k=V*V;var X=j-V;z.x=(V*z.x+X*s.x)/j,z.y=(V*z.y+X*s.y)/j,z.z=(V*z.z+X*s.z)/j}}return V<W?(e.clone(z,a.center),a.radius=V):(e.clone(H,a.center),a.radius=W),a},p.fromEncodedCartesianVertices=function(t,i,r){if(n(r)||(r=new p),!n(t)||!n(i)||t.length!==i.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var o=C;o.x=t[0]+i[0],o.y=t[1]+i[1],o.z=t[2]+i[2];var a,s=e.clone(o,f),l=e.clone(o,m),u=e.clone(o,_),c=e.clone(o,g),d=e.clone(o,v),h=e.clone(o,y),w=t.length;for(a=0;a<w;a+=3){var x=t[a]+i[a],P=t[a+1]+i[a+1],D=t[a+2]+i[a+2];o.x=x,o.y=P,o.z=D,x<s.x&&e.clone(o,s),x>c.x&&e.clone(o,c),P<l.y&&e.clone(o,l),P>d.y&&e.clone(o,d),D<u.z&&e.clone(o,u),D>h.z&&e.clone(o,h)}var I=e.magnitudeSquared(e.subtract(c,s,b)),M=e.magnitudeSquared(e.subtract(d,l,b)),R=e.magnitudeSquared(e.subtract(h,u,b)),O=s,L=c,N=I;M>N&&(N=M,O=l,L=d),R>N&&(N=R,O=u,L=h);var F=S;F.x=.5*(O.x+L.x),F.y=.5*(O.y+L.y),F.z=.5*(O.z+L.z);var B=e.magnitudeSquared(e.subtract(L,F,b)),z=Math.sqrt(B),k=T;k.x=s.x,k.y=l.y,k.z=u.z;var V=E;V.x=c.x,V.y=d.y,V.z=h.z;var U=e.midpoint(k,V,A),G=0;for(a=0;a<w;a+=3){o.x=t[a]+i[a],o.y=t[a+1]+i[a+1],o.z=t[a+2]+i[a+2];var H=e.magnitude(e.subtract(o,U,b));H>G&&(G=H);var W=e.magnitudeSquared(e.subtract(o,F,b));if(W>B){var q=Math.sqrt(W);z=.5*(z+q),B=z*z;var Y=q-z;F.x=(z*F.x+Y*o.x)/q,F.y=(z*F.y+Y*o.y)/q,F.z=(z*F.z+Y*o.z)/q}}return z<G?(e.clone(F,r.center),r.radius=z):(e.clone(U,r.center),r.radius=G),r},p.fromCornerPoints=function(t,i,r){n(r)||(r=new p);var o=e.midpoint(t,i,r.center);return r.radius=e.distance(o,i),r},p.fromEllipsoid=function(t,i){return n(i)||(i=new p),e.clone(e.ZERO,i.center),i.radius=t.maximumRadius,i};var O=new e;p.fromBoundingSpheres=function(t,i){if(n(i)||(i=new p),!n(t)||0===t.length)return i.center=e.clone(e.ZERO,i.center),i.radius=0,i;var r=t.length;if(1===r)return p.clone(t[0],i);if(2===r)return p.union(t[0],t[1],i);var o,a=[];for(o=0;o<r;o++)a.push(t[o].center);i=p.fromPoints(a,i);var s=i.center,l=i.radius;for(o=0;o<r;o++){var u=t[o];l=Math.max(l,e.distance(s,u.center,O)+u.radius)}return i.radius=l,i};var L=new e,N=new e,F=new e;p.fromOrientedBoundingBox=function(t,i){n(i)||(i=new p) -;var r=t.halfAxes,o=c.getColumn(r,0,L),a=c.getColumn(r,1,N),s=c.getColumn(r,2,F);return e.add(o,a,o),e.add(o,s,o),i.center=e.clone(t.center,i.center),i.radius=e.magnitude(o),i},p.clone=function(t,i){if(n(t))return n(i)?(i.center=e.clone(t.center,i.center),i.radius=t.radius,i):new p(t.center,t.radius)},p.packedLength=4,p.pack=function(e,t,i){i=r(i,0);var n=e.center;return t[i++]=n.x,t[i++]=n.y,t[i++]=n.z,t[i]=e.radius,t},p.unpack=function(e,t,i){t=r(t,0),n(i)||(i=new p);var o=i.center;return o.x=e[t++],o.y=e[t++],o.z=e[t++],i.radius=e[t],i};var B=new e,z=new e;p.union=function(t,i,r){n(r)||(r=new p);var o=t.center,a=t.radius,s=i.center,l=i.radius,u=e.subtract(s,o,B),c=e.magnitude(u);if(a>=c+l)return t.clone(r),r;if(l>=c+a)return i.clone(r),r;var d=.5*(a+c+l),h=e.multiplyByScalar(u,(-a+d)/c,z);return e.add(h,o,h),e.clone(h,r.center),r.radius=d,r};var k=new e;p.expand=function(t,i,r){r=p.clone(t,r);var n=e.magnitude(e.subtract(i,r.center,k));return n>r.radius&&(r.radius=n),r},p.intersectPlane=function(t,i){var r=t.center,n=t.radius,o=i.normal,a=e.dot(o,r)+i.distance;return a<-n?s.OUTSIDE:a<n?s.INTERSECTING:s.INSIDE},p.transform=function(e,t,i){return n(i)||(i=new p),i.center=d.multiplyByPoint(t,e.center,i.center),i.radius=d.getMaximumScale(t)*e.radius,i};var V=new e;p.distanceSquaredTo=function(t,i){var r=e.subtract(t.center,i,V);return e.magnitudeSquared(r)-t.radius*t.radius},p.transformWithoutScale=function(e,t,i){return n(i)||(i=new p),i.center=d.multiplyByPoint(t,e.center,i.center),i.radius=e.radius,i};var U=new e;p.computePlaneDistances=function(t,i,r,o){n(o)||(o=new l);var a=e.subtract(t.center,i,U),s=e.dot(r,a);return o.start=s-t.radius,o.stop=s+t.radius,o};for(var G=new e,H=new e,W=new e,q=new e,Y=new e,j=new t,X=new Array(8),Q=0;Q<8;++Q)X[Q]=new e;var K=new a;return p.projectTo2D=function(t,i,n){i=r(i,K);var o=i.ellipsoid,a=t.center,s=t.radius,l=o.geodeticSurfaceNormal(a,G),u=e.cross(e.UNIT_Z,l,H);e.normalize(u,u);var c=e.cross(l,u,W);e.normalize(c,c),e.multiplyByScalar(l,s,l),e.multiplyByScalar(c,s,c),e.multiplyByScalar(u,s,u);var d=e.negate(c,Y),h=e.negate(u,q),f=X,m=f[0];e.add(l,c,m),e.add(m,u,m),m=f[1],e.add(l,c,m),e.add(m,h,m),m=f[2],e.add(l,d,m),e.add(m,h,m),m=f[3],e.add(l,d,m),e.add(m,u,m),e.negate(l,l),m=f[4],e.add(l,c,m),e.add(m,u,m),m=f[5],e.add(l,c,m),e.add(m,h,m),m=f[6],e.add(l,d,m),e.add(m,h,m),m=f[7],e.add(l,d,m),e.add(m,u,m);for(var _=f.length,g=0;g<_;++g){var v=f[g];e.add(a,v,v);var y=o.cartesianToCartographic(v,j);i.project(y,v)}n=p.fromPoints(f,n),a=n.center;var C=a.x,b=a.y,S=a.z;return a.x=S,a.y=C,a.z=b,n},p.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},p.equals=function(t,i){return t===i||n(t)&&n(i)&&e.equals(t.center,i.center)&&t.radius===i.radius},p.prototype.intersectPlane=function(e){return p.intersectPlane(this,e)},p.prototype.distanceSquaredTo=function(e){return p.distanceSquaredTo(this,e)},p.prototype.computePlaneDistances=function(e,t,i){return p.computePlaneDistances(this,e,t,i)},p.prototype.isOccluded=function(e){return p.isOccluded(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.volume=function(){var e=this.radius;return w*e*e*e},p}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,i,r,n,o){"use strict";function a(e,i){this.x=t(e,0),this.y=t(i,0)}a.fromElements=function(e,t,r){return i(r)?(r.x=e,r.y=t,r):new a(e,t)},a.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t):new a(e.x,e.y)},a.fromCartesian3=a.clone,a.fromCartesian4=a.clone,a.packedLength=2,a.pack=function(e,i,r){return r=t(r,0),i[r++]=e.x,i[r]=e.y,i},a.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new a),n.x=e[r++],n.y=e[r],n},a.packArray=function(e,t){var r=e.length;i(t)?t.length=2*r:t=new Array(2*r);for(var n=0;n<r;++n)a.pack(e[n],t,2*n);return t},a.unpackArray=function(e,t){var r=e.length;i(t)?t.length=r/2:t=new Array(r/2);for(var n=0;n<r;n+=2){var o=n/2;t[o]=a.unpack(e,n,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y)},a.minimumComponent=function(e){return Math.min(e.x,e.y)},a.minimumByComponent=function(e,t,i){return i.x=Math.min(e.x,t.x),i.y=Math.min(e.y,t.y),i},a.maximumByComponent=function(e,t,i){return i.x=Math.max(e.x,t.x),i.y=Math.max(e.y,t.y),i},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var i=a.magnitude(e);return t.x=e.x/i,t.y=e.y/i,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y},a.multiplyComponents=function(e,t,i){return i.x=e.x*t.x,i.y=e.y*t.y,i},a.divideComponents=function(e,t,i){return i.x=e.x/t.x,i.y=e.y/t.y,i},a.add=function(e,t,i){return i.x=e.x+t.x,i.y=e.y+t.y,i},a.subtract=function(e,t,i){return i.x=e.x-t.x,i.y=e.y-t.y,i},a.multiplyByScalar=function(e,t,i){return i.x=e.x*t,i.y=e.y*t,i},a.divideByScalar=function(e,t,i){return i.x=e.x/t,i.y=e.y/t,i},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var l=new a;a.lerp=function(e,t,i,r){return a.multiplyByScalar(t,i,l),r=a.multiplyByScalar(e,1-i,r),a.add(l,r,r)};var u=new a,c=new a;a.angleBetween=function(e,t){return a.normalize(e,u),a.normalize(t,c),o.acosClamped(a.dot(u,c))};var d=new a;return a.mostOrthogonalAxis=function(e,t){var i=a.normalize(e,d);return a.abs(i,i),t=i.x<=i.y?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Y,t)},a.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y},a.equalsArray=function(e,t,i){return e.x===t[i]&&e.y===t[i+1]},a.equalsEpsilon=function(e,t,r,n){return e===t||i(e)&&i(t)&&o.equalsEpsilon(e.x,t.x,r,n)&&o.equalsEpsilon(e.y,t.y,r,n)},a.ZERO=n(new a(0,0)),a.UNIT_X=n(new a(1,0)),a.UNIT_Y=n(new a(0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,i){return a.equalsEpsilon(this,e,t,i)},a.prototype.toString=function(){return"("+this.x+", "+this.y+")"},a}),define("Core/GeographicTilingScheme",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./GeographicProjection","./Math","./Rectangle"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){e=i(e,{}),this._ellipsoid=i(e.ellipsoid,o.WGS84),this._rectangle=i(e.rectangle,l.MAX_VALUE),this._projection=new a(this._ellipsoid),this._numberOfLevelZeroTilesX=i(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=i(e.numberOfLevelZeroTilesY,1)}return n(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}}),u.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e},u.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e},u.prototype.rectangleToNativeRectangle=function(e,t){var i=s.toDegrees(e.west),n=s.toDegrees(e.south),o=s.toDegrees(e.east),a=s.toDegrees(e.north);return r(t)?(t.west=i,t.south=n,t.east=o,t.north=a,t):new l(i,n,o,a)},u.prototype.tileXYToNativeRectangle=function(e,t,i,r){var n=this.tileXYToRectangle(e,t,i,r);return n.west=s.toDegrees(n.west),n.south=s.toDegrees(n.south),n.east=s.toDegrees(n.east),n.north=s.toDegrees(n.north),n},u.prototype.tileXYToRectangle=function(e,t,i,n){var o=this._rectangle,a=this.getNumberOfXTilesAtLevel(i),s=this.getNumberOfYTilesAtLevel(i),u=o.width/a,c=e*u+o.west,d=(e+1)*u+o.west,h=o.height/s,p=o.north-t*h,f=o.north-(t+1)*h;return r(n)||(n=new l(c,f,d,p)),n.west=c,n.south=f,n.east=d,n.north=p,n},u.prototype.positionToTileXY=function(t,i,n){var o=this._rectangle;if(l.contains(o,t)){var a=this.getNumberOfXTilesAtLevel(i),u=this.getNumberOfYTilesAtLevel(i),c=o.width/a,d=o.height/u,h=t.longitude;o.east<o.west&&(h+=s.TWO_PI);var p=(h-o.west)/c|0;p>=a&&(p=a-1);var f=(o.north-t.latitude)/d|0;return f>=u&&(f=u-1),r(n)?(n.x=p,n.y=f,n):new e(p,f)}},u}),define("Core/ApproximateTerrainHeights",["./buildModuleUrl","./defaultValue","./defined","./defineProperties","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./DeveloperError","./Ellipsoid","./GeographicTilingScheme","./Rectangle","./Resource"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){s.fromRadians(e.east,e.north,0,S[0]),s.fromRadians(e.west,e.north,0,S[1]),s.fromRadians(e.east,e.south,0,S[2]),s.fromRadians(e.west,e.south,0,S[3]);var t,i=0,r=0,n=0,o=0,a=E._terrainHeightsMaxLevel;for(t=0;t<=a;++t){for(var l=!1,u=0;u<4;++u){var c=S[u];if(b.positionToTileXY(c,t,T),0===u)n=T.x,o=T.y;else if(n!==T.x||o!==T.y){l=!0;break}}if(l)break;i=n,r=o}if(0!==t)return{x:i,y:r,level:t>a?a:t-1}}var m=new a,_=new a,g=new s,v=new a,y=new a,C=new n,b=new d,S=[new s,new s,new s,new s],T=new o,E={};return E.initialize=function(){var t=E._initPromise;return i(t)?t:(t=p.fetchJson(e("Assets/approximateTerrainHeights.json")).then(function(e){E._terrainHeights=e}),E._initPromise=t,t)},E.getMinimumMaximumHeights=function(e,r){r=t(r,c.WGS84);var n=f(e),o=E._defaultMinTerrainHeight,s=E._defaultMaxTerrainHeight;if(i(n)){var l=n.level+"-"+n.x+"-"+n.y,u=E._terrainHeights[l];i(u)&&(o=u[0],s=u[1]),r.cartographicToCartesian(h.northeast(e,g),m),r.cartographicToCartesian(h.southwest(e,g),_),a.midpoint(_,m,v);var d=r.scaleToGeodeticSurface(v,y);if(i(d)){var p=a.distance(v,d);o=Math.min(o,-p)}else o=E._defaultMinTerrainHeight}return o=Math.max(E._defaultMinTerrainHeight,o),{minimumTerrainHeight:o,maximumTerrainHeight:s}},E.getBoundingSphere=function(e,r){r=t(r,c.WGS84);var o=f(e),a=E._defaultMaxTerrainHeight;if(i(o)){var s=o.level+"-"+o.x+"-"+o.y,l=E._terrainHeights[s];i(l)&&(a=l[1])}var u=n.fromRectangle3D(e,r,0);return n.fromRectangle3D(e,r,a,C),n.union(u,C,u)},E._terrainHeightsMaxLevel=6,E._defaultMaxTerrainHeight=9e3,E._defaultMinTerrainHeight=-1e5,E._terrainHeights=void 0,E._initPromise=void 0,r(E,{initialized:{get:function(){return i(E._terrainHeights)}}}),E}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,i){"use strict";function r(e,i,r,n){if("function"==typeof e.fill)return e.fill(i,r,n);for(var o=e.length>>>0,a=t(r,0),s=a<0?Math.max(o+a,0):Math.min(a,o),l=t(n,o),u=l<0?Math.max(o+l,0):Math.min(l,o);s<u;)e[s]=i,s++;return e}return r}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,i,r){"use strict";function n(e,r,n){if(i(e)){n=t(n,!1);var a=e.length;if(a<2)return e;var s,l,u;for(s=1;s<a&&(l=e[s-1],u=e[s],!r(l,u,o));++s);if(s===a)return n&&r(e[0],e[e.length-1],o)?e.slice(1):e;for(var c=e.slice(0,s);s<a;++s)u=e[s],r(l,u,o)||(c.push(u),l=u);return n&&c.length>1&&r(c[0],c[c.length-1],o)&&c.shift(),c}}var o=r.EPSILON10;return n}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var i,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},n={};return t(n,{element:{get:function(){if(n.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(n.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(n.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(n.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(n.supportsFullscreen())return null!==n.element}}}),n.supportsFullscreen=function(){if(e(i))return i;i=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",i=!0;for(var n,o=["webkit","moz","o","ms","khtml"],a=0,s=o.length;a<s;++a){var l=o[a];n=l+"RequestFullscreen","function"==typeof t[n]?(r.requestFullscreen=n,i=!0):(n=l+"RequestFullScreen","function"==typeof t[n]&&(r.requestFullscreen=n,i=!0)),n=l+"ExitFullscreen","function"==typeof document[n]?r.exitFullscreen=n:(n=l+"CancelFullScreen","function"==typeof document[n]&&(r.exitFullscreen=n)),n=l+"FullscreenEnabled",void 0!==document[n]?r.fullscreenEnabled=n:(n=l+"FullScreenEnabled",void 0!==document[n]&&(r.fullscreenEnabled=n)),n=l+"FullscreenElement",void 0!==document[n]?r.fullscreenElement=n:(n=l+"FullScreenElement",void 0!==document[n]&&(r.fullscreenElement=n)),n=l+"fullscreenchange",void 0!==document["on"+n]&&("ms"===l&&(n="MSFullscreenChange"),r.fullscreenchange=n),n=l+"fullscreenerror",void 0!==document["on"+n]&&("ms"===l&&(n="MSFullscreenError"),r.fullscreenerror=n)}return i},n.requestFullscreen=function(e,t){n.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},n.exitFullscreen=function(){n.supportsFullscreen()&&document[r.exitFullscreen]()},n}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,i,r,n,o){"use strict";function a(e){for(var t=e.split("."),i=0,r=t.length;i<r;++i)t[i]=parseInt(t[i],10);return t}function s(){if(!t(A)&&(A=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(E.userAgent);null!==e&&(A=!0,w=a(e[1]))}return A}function l(){return s()&&w}function u(){if(!t(x)&&(x=!1,!s()&&!m()&&/ Safari\/[\.0-9]+/.test(E.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(E.userAgent);null!==e&&(x=!0,P=a(e[1]))}return x}function c(){return u()&&P}function d(){if(!t(D)){D=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(E.userAgent);null!==e&&(D=!0,I=a(e[1]),I.isNightly=!!e[2])}return D}function h(){return d()&&I}function p(){if(!t(M)){M=!1;var e;"Microsoft Internet Explorer"===E.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(E.userAgent))&&(M=!0,R=a(e[1])):"Netscape"===E.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(E.userAgent))&&(M=!0,R=a(e[1]))}return M}function f(){return p()&&R}function m(){if(!t(O)){O=!1;var e=/ Edge\/([\.0-9]+)/.exec(E.userAgent);null!==e&&(O=!0,L=a(e[1]))}return O}function _(){return m()&&L}function g(){if(!t(N)){N=!1;var e=/Firefox\/([\.0-9]+)/.exec(E.userAgent);null!==e&&(N=!0,F=a(e[1]))}return N}function v(){return t(B)||(B=/Windows/i.test(E.appVersion)),B}function y(){return g()&&F}function C(){return t(z)||(z=!g()&&"undefined"!=typeof PointerEvent&&(!t(E.pointerEnabled)||E.pointerEnabled)),z}function b(){if(!t(V)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var i=e.style.imageRendering;V=t(i)&&""!==i,V&&(k=i)}return V}function S(){return b()?k:void 0}function T(){return T._result}var E;E="undefined"!=typeof navigator?navigator:{};var A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V;T._promise=void 0,T._result=void 0,T.initialize=function(){if(t(T._promise))return T._promise;var e=o.defer();if(T._promise=e.promise,m())return T._result=!1,e.resolve(T._result),e.promise;var i=new Image;return i.onload=function(){T._result=i.width>0&&i.height>0,e.resolve(T._result)},i.onerror=function(){T._result=!1,e.resolve(T._result)},i.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},i(T,{initialized:{get:function(){return t(T._result)}}});var U=[];"undefined"!=typeof ArrayBuffer&&(U.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&U.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&U.push(CanvasPixelArray));var G={isChrome:s,chromeVersion:l,isSafari:u,safariVersion:c,isWebkit:d,webkitVersion:h,isInternetExplorer:p,internetExplorerVersion:f,isEdge:m,edgeVersion:_,isFirefox:g,firefoxVersion:y,isWindows:v,hardwareConcurrency:e(E.hardwareConcurrency,3),supportsPointerEvents:C,supportsImageRenderingPixelated:b,supportsWebP:T,imageRenderingValue:S,typedArrayTypes:U};return G.supportsFullscreen=function(){return n.supportsFullscreen()},G.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},G.supportsWebWorkers=function(){return"undefined"!=typeof Worker},G.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!G.isEdge()},G}),define("Core/arraySlice",["./Check","./defined","./FeatureDetection"],function(e,t,i){"use strict";function r(e,t,r){if("function"==typeof e.slice)return e.slice(t,r);for(var n=Array.prototype.slice.call(e,t,r),o=i.typedArrayTypes,a=o.length,s=0;s<a;++s)if(e instanceof o[s]){n=new o[s](n);break}return n}return r}),define("Core/AssociativeArray",["./defined","./defineProperties","./DeveloperError"],function(e,t,i){"use strict";function r(){this._array=[],this._hash={}}return t(r.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}}),r.prototype.contains=function(t){return e(this._hash[t])},r.prototype.set=function(e,t){t!==this._hash[e]&&(this.remove(e),this._hash[e]=t,this._array.push(t))},r.prototype.get=function(e){return this._hash[e]},r.prototype.remove=function(t){var i=this._hash[t],r=e(i);if(r){var n=this._array;n.splice(n.indexOf(i),1),delete this._hash[t]}return r},r.prototype.removeAll=function(){var e=this._array;e.length>0&&(this._hash={},e.length=0)},r}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,i,r,n,o){"use strict";function a(e){return c[0]=e,c[0]}function s(e){return e>>1^-(1&e)}var l={};l.octEncodeInRange=function(e,t,i){if(i.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),i.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=i.x,n=i.y;i.x=(1-Math.abs(n))*o.signNotZero(r),i.y=(1-Math.abs(r))*o.signNotZero(n)}return i.x=o.toSNorm(i.x,t),i.y=o.toSNorm(i.y,t),i},l.octEncode=function(e,t){return l.octEncodeInRange(e,255,t)};var u=new e,c=new Uint8Array(1);l.octEncodeToCartesian4=function(e,t){return l.octEncodeInRange(e,65535,u),t.x=a(u.x*(1/256)),t.y=a(u.x),t.z=a(u.y*(1/256)),t.w=a(u.y),t},l.octDecodeInRange=function(e,i,r,n){if(n.x=o.fromSNorm(e,r),n.y=o.fromSNorm(i,r),n.z=1-(Math.abs(n.x)+Math.abs(n.y)),n.z<0){var a=n.x;n.x=(1-Math.abs(n.y))*o.signNotZero(a),n.y=(1-Math.abs(a))*o.signNotZero(n.y)}return t.normalize(n,n)},l.octDecode=function(e,t,i){return l.octDecodeInRange(e,t,255,i)},l.octDecodeFromCartesian4=function(e,t){var i=e.x,r=e.y,n=e.z,o=e.w,a=256*i+r,s=256*n+o;return l.octDecodeInRange(a,s,65535,t)},l.octPackFloat=function(e){return 256*e.x+e.y};var d=new e;return l.octEncodeFloat=function(e){return l.octEncode(e,d),l.octPackFloat(d)},l.octDecodeFloat=function(e,t){var i=e/256,r=Math.floor(i),n=256*(i-r);return l.octDecode(r,n,t)},l.octPack=function(e,t,i,r){var n=l.octEncodeFloat(e),o=l.octEncodeFloat(t),a=l.octEncode(i,d);return r.x=65536*a.x+n,r.y=65536*a.y+o,r},l.octUnpack=function(e,t,i,r){var n=e.x/65536,o=Math.floor(n),a=65536*(n-o);n=e.y/65536;var s=Math.floor(n),u=65536*(n-s);l.octDecodeFloat(a,t),l.octDecodeFloat(u,i),l.octDecode(o,s,r)},l.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},l.decompressTextureCoordinates=function(e,t){var i=e/4096,r=Math.floor(i);return t.x=r/4095,t.y=(e-4096*r)/4095,t},l.zigZagDeltaDecode=function(e,t,i){for(var n=e.length,o=0,a=0,l=0,u=0;u<n;++u)o+=s(e[u]),a+=s(t[u]),e[u]=o,t[u]=a,r(i)&&(l+=s(i[u]),i[u]=l)},l}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,i,r,n){"use strict";function o(t,n,o){this.minimum=e.clone(i(t,e.ZERO)),this.maximum=e.clone(i(n,e.ZERO)),o=r(o)?e.clone(o):e.midpoint(this.minimum,this.maximum,new e),this.center=o}o.fromPoints=function(t,i){if(r(i)||(i=new o),!r(t)||0===t.length)return i.minimum=e.clone(e.ZERO,i.minimum),i.maximum=e.clone(e.ZERO,i.maximum),i.center=e.clone(e.ZERO,i.center),i;for(var n=t[0].x,a=t[0].y,s=t[0].z,l=t[0].x,u=t[0].y,c=t[0].z,d=t.length,h=1;h<d;h++){var p=t[h],f=p.x,m=p.y,_=p.z;n=Math.min(f,n),l=Math.max(f,l),a=Math.min(m,a),u=Math.max(m,u),s=Math.min(_,s),c=Math.max(_,c)}var g=i.minimum;g.x=n,g.y=a,g.z=s;var v=i.maximum;return v.x=l,v.y=u,v.z=c,i.center=e.midpoint(g,v,i.center),i},o.clone=function(t,i){if(r(t))return r(i)?(i.minimum=e.clone(t.minimum,i.minimum),i.maximum=e.clone(t.maximum,i.maximum),i.center=e.clone(t.center,i.center),i):new o(t.minimum,t.maximum,t.center)},o.equals=function(t,i){return t===i||r(t)&&r(i)&&e.equals(t.center,i.center)&&e.equals(t.minimum,i.minimum)&&e.equals(t.maximum,i.maximum)};var a=new e;return o.intersectPlane=function(t,i){a=e.subtract(t.maximum,t.minimum,a);var r=e.multiplyByScalar(a,.5,a),o=i.normal,s=r.x*Math.abs(o.x)+r.y*Math.abs(o.y)+r.z*Math.abs(o.z),l=e.dot(t.center,o)+i.distance;return l-s>0?n.INSIDE:l+s<0?n.OUTSIDE:n.INTERSECTING},o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.intersectPlane=function(e){return o.intersectPlane(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,i,r,n){"use strict";function o(i,o,u,c,d){r(d)||(d=new t);var h,p,f,m,_,g,v,y;if(r(o.z)){if(t.equalsEpsilon(i,o,n.EPSILON14))return t.clone(t.UNIT_X,d);if(t.equalsEpsilon(i,u,n.EPSILON14))return t.clone(t.UNIT_Y,d);if(t.equalsEpsilon(i,c,n.EPSILON14))return t.clone(t.UNIT_Z,d);h=t.subtract(u,o,a),p=t.subtract(c,o,s),f=t.subtract(i,o,l),m=t.dot(h,h),_=t.dot(h,p),g=t.dot(h,f),v=t.dot(p,p),y=t.dot(p,f)}else{if(e.equalsEpsilon(i,o,n.EPSILON14))return t.clone(t.UNIT_X,d);if(e.equalsEpsilon(i,u,n.EPSILON14))return t.clone(t.UNIT_Y,d);if(e.equalsEpsilon(i,c,n.EPSILON14))return t.clone(t.UNIT_Z,d);h=e.subtract(u,o,a),p=e.subtract(c,o,s),f=e.subtract(i,o,l),m=e.dot(h,h),_=e.dot(h,p),g=e.dot(h,f),v=e.dot(p,p),y=e.dot(p,f)}var C=m*v-_*_,b=1/C;return d.y=(v*g-_*y)*b,d.z=(m*y-_*g)*b,d.x=1-d.y-d.z,d}var a=new t,s=new t,l=new t;return o}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,i){for(var r,n,o=0,a=e.length-1;o<=a;)if(r=~~((o+a)/2),(n=i(e[r],t))<0)o=r+1;else{if(!(n>0))return r;a=r-1}return~(a+1)}return t}),define("Core/BingMapsApi",["./defined"],function(e){"use strict";var t={};return t.defaultKey=void 0,t.getKey=function(i){return e(i)?i:t.defaultKey},t}),define("Core/BingMapsGeocoderService",["./BingMapsApi","./Check","./defaultValue","./defined","./defineProperties","./Rectangle","./Resource"],function(e,t,i,r,n,o,a){"use strict";function s(t){t=i(t,i.EMPTY_OBJECT);var r=t.key;this._key=e.getKey(r),this._resource=new a({url:l,queryParameters:{key:this._key}})}var l="https://dev.virtualearth.net/REST/v1/Locations";return n(s.prototype,{url:{get:function(){return l}},key:{get:function(){return this._key}}}),s.prototype.geocode=function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(e){return 0===e.resourceSets.length?[]:e.resourceSets[0].resources.map(function(e){var t=e.bbox,i=t[0],r=t[1],n=t[2],a=t[3];return{displayName:e.name,destination:o.fromDegrees(r,i,a,n)}})})},s}),define("Core/BoundingRectangle",["./Cartesian2","./Cartographic","./Check","./defaultValue","./defined","./GeographicProjection","./Intersect","./Rectangle"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,i,n){this.x=r(e,0),this.y=r(t,0),this.width=r(i,0),this.height=r(n,0)}l.packedLength=4,l.pack=function(e,t,i){return i=r(i,0),t[i++]=e.x,t[i++]=e.y,t[i++]=e.width,t[i]=e.height,t},l.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new l),i.x=e[t++],i.y=e[t++],i.width=e[t++],i.height=e[t],i},l.fromPoints=function(e,t){if(n(t)||(t=new l),!n(e)||0===e.length)return t.x=0,t.y=0,t.width=0,t.height=0,t;for(var i=e.length,r=e[0].x,o=e[0].y,a=e[0].x,s=e[0].y,u=1;u<i;u++){var c=e[u],d=c.x,h=c.y;r=Math.min(d,r),a=Math.max(d,a),o=Math.min(h,o),s=Math.max(h,s)}return t.x=r,t.y=o,t.width=a-r,t.height=s-o,t};var u=new o,c=new t,d=new t;return l.fromRectangle=function(t,i,o){if(n(o)||(o=new l),!n(t))return o.x=0,o.y=0,o.width=0,o.height=0,o;i=r(i,u);var a=i.project(s.southwest(t,c)),h=i.project(s.northeast(t,d));return e.subtract(h,a,h),o.x=a.x,o.y=a.y,o.width=h.x,o.height=h.y,o},l.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new l(e.x,e.y,e.width,e.height)},l.union=function(e,t,i){n(i)||(i=new l);var r=Math.min(e.x,t.x),o=Math.min(e.y,t.y),a=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return i.x=r,i.y=o,i.width=a-r,i.height=s-o,i},l.expand=function(e,t,i){i=l.clone(e,i);var r=t.x-i.x,n=t.y-i.y;return r>i.width?i.width=r:r<0&&(i.width-=r,i.x=t.x),n>i.height?i.height=n:n<0&&(i.height-=n,i.y=t.y),i},l.intersect=function(e,t){var i=e.x,r=e.y,n=t.x,o=t.y;return i>n+t.width||i+e.width<n||r+e.height<o||r>o+t.height?a.OUTSIDE:a.INTERSECTING},l.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.intersect=function(e){return l.intersect(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130, -READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,i,r,n,o){"use strict";if(!r.supportsTypedArrays())return{};var a={BYTE:o.BYTE,UNSIGNED_BYTE:o.UNSIGNED_BYTE,SHORT:o.SHORT,UNSIGNED_SHORT:o.UNSIGNED_SHORT,INT:o.INT,UNSIGNED_INT:o.UNSIGNED_INT,FLOAT:o.FLOAT,DOUBLE:o.DOUBLE};return a.getSizeInBytes=function(e){switch(e){case a.BYTE:return Int8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.SHORT:return Int16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.INT:return Int32Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case a.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case a.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},a.fromTypedArray=function(e){return e instanceof Int8Array?a.BYTE:e instanceof Uint8Array?a.UNSIGNED_BYTE:e instanceof Int16Array?a.SHORT:e instanceof Uint16Array?a.UNSIGNED_SHORT:e instanceof Int32Array?a.INT:e instanceof Uint32Array?a.UNSIGNED_INT:e instanceof Float32Array?a.FLOAT:e instanceof Float64Array?a.DOUBLE:void 0},a.validate=function(e){return t(e)&&(e===a.BYTE||e===a.UNSIGNED_BYTE||e===a.SHORT||e===a.UNSIGNED_SHORT||e===a.INT||e===a.UNSIGNED_INT||e===a.FLOAT||e===a.DOUBLE)},a.createTypedArray=function(e,t){switch(e){case a.BYTE:return new Int8Array(t);case a.UNSIGNED_BYTE:return new Uint8Array(t);case a.SHORT:return new Int16Array(t);case a.UNSIGNED_SHORT:return new Uint16Array(t);case a.INT:return new Int32Array(t);case a.UNSIGNED_INT:return new Uint32Array(t);case a.FLOAT:return new Float32Array(t);case a.DOUBLE:return new Float64Array(t)}},a.createArrayBufferView=function(t,i,r,n){switch(r=e(r,0),n=e(n,(i.byteLength-r)/a.getSizeInBytes(t)),t){case a.BYTE:return new Int8Array(i,r,n);case a.UNSIGNED_BYTE:return new Uint8Array(i,r,n);case a.SHORT:return new Int16Array(i,r,n);case a.UNSIGNED_SHORT:return new Uint16Array(i,r,n);case a.INT:return new Int32Array(i,r,n);case a.UNSIGNED_INT:return new Uint32Array(i,r,n);case a.FLOAT:return new Float32Array(i,r,n);case a.DOUBLE:return new Float64Array(i,r,n)}},a.fromName=function(e){switch(e){case"BYTE":return a.BYTE;case"UNSIGNED_BYTE":return a.UNSIGNED_BYTE;case"SHORT":return a.SHORT;case"UNSIGNED_SHORT":return a.UNSIGNED_SHORT;case"INT":return a.INT;case"UNSIGNED_INT":return a.UNSIGNED_INT;case"FLOAT":return a.FLOAT;case"DOUBLE":return a.DOUBLE}},n(a)}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,i,r,n,o){"use strict";function a(e,t,r,n){this[0]=i(e,0),this[1]=i(r,0),this[2]=i(t,0),this[3]=i(n,0)}a.packedLength=4,a.pack=function(e,t,r){return r=i(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},a.unpack=function(e,t,n){return t=i(t,0),r(n)||(n=new a),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n},a.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new a(e[0],e[2],e[1],e[3])},a.fromArray=function(e,t,n){return t=i(t,0),r(n)||(n=new a),n[0]=e[t],n[1]=e[t+1],n[2]=e[t+2],n[3]=e[t+3],n},a.fromColumnMajorArray=function(e,t){return a.clone(e,t)},a.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new a(e[0],e[1],e[2],e[3])},a.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new a(e.x,0,0,e.y)},a.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new a(e,0,0,e)},a.fromRotation=function(e,t){var i=Math.cos(e),n=Math.sin(e);return r(t)?(t[0]=i,t[1]=n,t[2]=-n,t[3]=i,t):new a(i,-n,n,i)},a.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},a.getElementIndex=function(e,t){return 2*e+t},a.getColumn=function(e,t,i){var r=2*t,n=e[r],o=e[r+1];return i.x=n,i.y=o,i},a.setColumn=function(e,t,i,r){r=a.clone(e,r);var n=2*t;return r[n]=i.x,r[n+1]=i.y,r},a.getRow=function(e,t,i){var r=e[t],n=e[t+2];return i.x=r,i.y=n,i},a.setRow=function(e,t,i,r){return r=a.clone(e,r),r[t]=i.x,r[t+2]=i.y,r};var s=new e;a.getScale=function(t,i){return i.x=e.magnitude(e.fromElements(t[0],t[1],s)),i.y=e.magnitude(e.fromElements(t[2],t[3],s)),i};var l=new e;return a.getMaximumScale=function(t){return a.getScale(t,l),e.maximumComponent(l)},a.multiply=function(e,t,i){var r=e[0]*t[0]+e[2]*t[1],n=e[0]*t[2]+e[2]*t[3],o=e[1]*t[0]+e[3]*t[1],a=e[1]*t[2]+e[3]*t[3];return i[0]=r,i[1]=o,i[2]=n,i[3]=a,i},a.add=function(e,t,i){return i[0]=e[0]+t[0],i[1]=e[1]+t[1],i[2]=e[2]+t[2],i[3]=e[3]+t[3],i},a.subtract=function(e,t,i){return i[0]=e[0]-t[0],i[1]=e[1]-t[1],i[2]=e[2]-t[2],i[3]=e[3]-t[3],i},a.multiplyByVector=function(e,t,i){var r=e[0]*t.x+e[2]*t.y,n=e[1]*t.x+e[3]*t.y;return i.x=r,i.y=n,i},a.multiplyByScalar=function(e,t,i){return i[0]=e[0]*t,i[1]=e[1]*t,i[2]=e[2]*t,i[3]=e[3]*t,i},a.multiplyByScale=function(e,t,i){return i[0]=e[0]*t.x,i[1]=e[1]*t.x,i[2]=e[2]*t.y,i[3]=e[3]*t.y,i},a.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},a.transpose=function(e,t){var i=e[0],r=e[2],n=e[1],o=e[3];return t[0]=i,t[1]=r,t[2]=n,t[3]=o,t},a.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},a.equalsArray=function(e,t,i){return e[0]===t[i]&&e[1]===t[i+1]&&e[2]===t[i+2]&&e[3]===t[i+3]},a.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=i&&Math.abs(e[1]-t[1])<=i&&Math.abs(e[2]-t[2])<=i&&Math.abs(e[3]-t[3])<=i},a.IDENTITY=o(new a(1,0,0,1)),a.ZERO=o(new a(0,0,0,0)),a.COLUMN0ROW0=0,a.COLUMN0ROW1=1,a.COLUMN1ROW0=2,a.COLUMN1ROW1=3,n(a.prototype,{length:{get:function(){return a.packedLength}}}),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t){return a.equalsEpsilon(this,e,t)},a.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},a}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var i={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===i.POINTS||e===i.LINES||e===i.LINE_LOOP||e===i.LINE_STRIP||e===i.TRIANGLES||e===i.TRIANGLE_STRIP||e===i.TRIANGLE_FAN}};return e(i)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,r,n){this.x=i(e,0),this.y=i(t,0),this.z=i(r,0),this.w=i(n,0)}var u=new e;l.fromAxisAngle=function(t,i,n){var o=i/2,a=Math.sin(o);u=e.normalize(t,u);var s=u.x*a,c=u.y*a,d=u.z*a,h=Math.cos(o);return r(n)?(n.x=s,n.y=c,n.z=d,n.w=h,n):new l(s,c,d,h)};var c=[1,2,0],d=new Array(3);l.fromRotationMatrix=function(e,t){var i,n,o,a,u,h=e[s.COLUMN0ROW0],p=e[s.COLUMN1ROW1],f=e[s.COLUMN2ROW2],m=h+p+f;if(m>0)i=Math.sqrt(m+1),u=.5*i,i=.5/i,n=(e[s.COLUMN1ROW2]-e[s.COLUMN2ROW1])*i,o=(e[s.COLUMN2ROW0]-e[s.COLUMN0ROW2])*i,a=(e[s.COLUMN0ROW1]-e[s.COLUMN1ROW0])*i;else{var _=c,g=0;p>h&&(g=1),f>h&&f>p&&(g=2);var v=_[g],y=_[v];i=Math.sqrt(e[s.getElementIndex(g,g)]-e[s.getElementIndex(v,v)]-e[s.getElementIndex(y,y)]+1);var C=d;C[g]=.5*i,i=.5/i,u=(e[s.getElementIndex(y,v)]-e[s.getElementIndex(v,y)])*i,C[v]=(e[s.getElementIndex(v,g)]+e[s.getElementIndex(g,v)])*i,C[y]=(e[s.getElementIndex(y,g)]+e[s.getElementIndex(g,y)])*i,n=-C[0],o=-C[1],a=-C[2]}return r(t)?(t.x=n,t.y=o,t.z=a,t.w=u,t):new l(n,o,a,u)};var h=new l,p=new l,f=new l,m=new l;l.fromHeadingPitchRoll=function(t,i){return m=l.fromAxisAngle(e.UNIT_X,t.roll,h),f=l.fromAxisAngle(e.UNIT_Y,-t.pitch,i),i=l.multiply(f,m,f),p=l.fromAxisAngle(e.UNIT_Z,-t.heading,h),l.multiply(p,i,i)};var _=new e,g=new e,v=new l,y=new l,C=new l;l.packedLength=4,l.pack=function(e,t,r){return r=i(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},l.unpack=function(e,t,n){return t=i(t,0),r(n)||(n=new l),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n},l.packedInterpolationLength=3,l.convertPackedArrayForInterpolation=function(e,t,i,r){l.unpack(e,4*i,C),l.conjugate(C,C);for(var n=0,o=i-t+1;n<o;n++){var a=3*n;l.unpack(e,4*(t+n),v),l.multiply(v,C,v),v.w<0&&l.negate(v,v),l.computeAxis(v,_);var s=l.computeAngle(v);r[a]=_.x*s,r[a+1]=_.y*s,r[a+2]=_.z*s}},l.unpackInterpolationResult=function(t,i,n,o,a){r(a)||(a=new l),e.fromArray(t,0,g);var s=e.magnitude(g);return l.unpack(i,4*o,y),0===s?l.clone(l.IDENTITY,v):l.fromAxisAngle(g,s,v),l.multiply(v,y,a)},l.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new l(e.x,e.y,e.z,e.w)},l.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},l.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},l.magnitude=function(e){return Math.sqrt(l.magnitudeSquared(e))},l.normalize=function(e,t){var i=1/l.magnitude(e),r=e.x*i,n=e.y*i,o=e.z*i,a=e.w*i;return t.x=r,t.y=n,t.z=o,t.w=a,t},l.inverse=function(e,t){var i=l.magnitudeSquared(e);return t=l.conjugate(e,t),l.multiplyByScalar(t,1/i,t)},l.add=function(e,t,i){return i.x=e.x+t.x,i.y=e.y+t.y,i.z=e.z+t.z,i.w=e.w+t.w,i},l.subtract=function(e,t,i){return i.x=e.x-t.x,i.y=e.y-t.y,i.z=e.z-t.z,i.w=e.w-t.w,i},l.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},l.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},l.multiply=function(e,t,i){var r=e.x,n=e.y,o=e.z,a=e.w,s=t.x,l=t.y,u=t.z,c=t.w,d=a*s+r*c+n*u-o*l,h=a*l-r*u+n*c+o*s,p=a*u+r*l-n*s+o*c,f=a*c-r*s-n*l-o*u;return i.x=d,i.y=h,i.z=p,i.w=f,i},l.multiplyByScalar=function(e,t,i){return i.x=e.x*t,i.y=e.y*t,i.z=e.z*t,i.w=e.w*t,i},l.divideByScalar=function(e,t,i){return i.x=e.x/t,i.y=e.y/t,i.z=e.z/t,i.w=e.w/t,i},l.computeAxis=function(e,t){var i=e.w;if(Math.abs(i-1)<a.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-i*i);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},l.computeAngle=function(e){return Math.abs(e.w-1)<a.EPSILON6?0:2*Math.acos(e.w)};var b=new l;l.lerp=function(e,t,i,r){return b=l.multiplyByScalar(t,i,b),r=l.multiplyByScalar(e,1-i,r),l.add(b,r,r)};var S=new l,T=new l,E=new l;l.slerp=function(e,t,i,r){var n=l.dot(e,t),o=t;if(n<0&&(n=-n,o=S=l.negate(t,S)),1-n<a.EPSILON6)return l.lerp(e,o,i,r);var s=Math.acos(n);return T=l.multiplyByScalar(e,Math.sin((1-i)*s),T),E=l.multiplyByScalar(o,Math.sin(i*s),E),r=l.add(T,E,r),l.multiplyByScalar(r,1/Math.sin(s),r)},l.log=function(t,i){var r=a.acosClamped(t.w),n=0;return 0!==r&&(n=r/Math.sin(r)),e.multiplyByScalar(t,n,i)},l.exp=function(t,i){var r=e.magnitude(t),n=0;return 0!==r&&(n=Math.sin(r)/r),i.x=t.x*n,i.y=t.y*n,i.z=t.z*n,i.w=Math.cos(r),i};var A=new e,w=new e,x=new l,P=new l;l.computeInnerQuadrangle=function(t,i,r,n){var o=l.conjugate(i,x);l.multiply(o,r,P);var a=l.log(P,A);l.multiply(o,t,P);var s=l.log(P,w);return e.add(a,s,a),e.multiplyByScalar(a,.25,a),e.negate(a,a),l.exp(a,x),l.multiply(i,x,n)},l.squad=function(e,t,i,r,n,o){var a=l.slerp(e,t,n,x),s=l.slerp(i,r,n,P);return l.slerp(a,s,2*n*(1-n),o)};for(var D=new l,I=1.9011074535173003,M=n.supportsTypedArrays()?new Float32Array(8):[],R=n.supportsTypedArrays()?new Float32Array(8):[],O=n.supportsTypedArrays()?new Float32Array(8):[],L=n.supportsTypedArrays()?new Float32Array(8):[],N=0;N<7;++N){var F=N+1,B=2*F+1;M[N]=1/(F*B),R[N]=F/B}return M[7]=I/136,R[7]=8*I/17,l.fastSlerp=function(e,t,i,r){var n,o=l.dot(e,t);o>=0?n=1:(n=-1,o=-o);for(var a=o-1,s=1-i,u=i*i,c=s*s,d=7;d>=0;--d)O[d]=(M[d]*u-R[d])*a,L[d]=(M[d]*c-R[d])*a;var h=n*i*(1+O[0]*(1+O[1]*(1+O[2]*(1+O[3]*(1+O[4]*(1+O[5]*(1+O[6]*(1+O[7])))))))),p=s*(1+L[0]*(1+L[1]*(1+L[2]*(1+L[3]*(1+L[4]*(1+L[5]*(1+L[6]*(1+L[7])))))))),f=l.multiplyByScalar(e,p,D);return l.multiplyByScalar(t,h,r),l.add(f,r,r)},l.fastSquad=function(e,t,i,r,n,o){var a=l.fastSlerp(e,t,n,x),s=l.fastSlerp(i,r,n,P);return l.fastSlerp(a,s,2*n*(1-n),o)},l.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},l.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=i&&Math.abs(e.y-t.y)<=i&&Math.abs(e.z-t.z)<=i&&Math.abs(e.w-t.w)<=i},l.ZERO=o(new l(0,0,0,0)),l.IDENTITY=o(new l(0,0,0,1)),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},l}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,i,r,n){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=i,this.yPoleOffset=r,this.ut1MinusUtc=n}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,i=0,r=t[i++],n=function(e,t,i,r){i||(i=" ");var n=e.length>=t?"":Array(1+t-e.length>>>0).join(i);return r?e+n:n+e},o=function(e,t,i,r,o,a){var s=r-e.length;return s>0&&(e=i||!o?n(e,r,a,i):e.slice(0,t.length)+n("",s,"0",!0)+e.slice(t.length)),e},a=function(e,t,i,r,a,s,l){var u=e>>>0;return i=i&&u&&{2:"0b",8:"0",16:"0x"}[t]||"",e=i+n(u.toString(t),s||0,"0",!1),o(e,i,r,a,l)},s=function(e,t,i,r,n,a){return null!=r&&(e=e.slice(0,r)),o(e,"",t,i,n,a)},l=function(e,r,l,u,c,d,h){var p,f,m,_,g;if("%%"==e)return"%";for(var v=!1,y="",C=!1,b=!1,S=" ",T=l.length,E=0;l&&E<T;E++)switch(l.charAt(E)){case" ":y=" ";break;case"+":y="+";break;case"-":v=!0;break;case"'":S=l.charAt(E+1);break;case"0":C=!0;break;case"#":b=!0}if(u=u?"*"==u?+t[i++]:"*"==u.charAt(0)?+t[u.slice(1,-1)]:+u:0,u<0&&(u=-u,v=!0),!isFinite(u))throw new Error("sprintf: (minimum-)width must be finite");switch(d=d?"*"==d?+t[i++]:"*"==d.charAt(0)?+t[d.slice(1,-1)]:+d:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,g=r?t[r.slice(0,-1)]:t[i++],h){case"s":return s(String(g),v,u,d,C,S);case"c":return s(String.fromCharCode(+g),v,u,d,C);case"b":return a(g,2,b,v,u,d,C);case"o":return a(g,8,b,v,u,d,C);case"x":return a(g,16,b,v,u,d,C);case"X":return a(g,16,b,v,u,d,C).toUpperCase();case"u":return a(g,10,b,v,u,d,C);case"i":case"d":return p=+g||0,p=Math.round(p-p%1),f=p<0?"-":y,g=f+n(String(Math.abs(p)),d,"0",!1),o(g,f,v,u,C);case"e":case"E":case"f":case"F":case"g":case"G":return p=+g,f=p<0?"-":y,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],g=f+Math.abs(p)[m](d),o(g,f,v,u,C)[_]();default:return e}};return r.replace(e,l)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,i,r,n,o,a,s){this.year=e,this.month=t,this.day=i,this.hour=r,this.minute=n,this.second=o,this.millisecond=a,this.isLeapSecond=s}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,t){return m.compare(e.julianDate,t.julianDate)}function d(e){v.julianDate=e;var i=m.leapSeconds,r=t(i,v,c);r<0&&(r=~r),r>=i.length&&(r=i.length-1);var n=i[r].offset;if(r>0){m.secondsDifference(i[r].julianDate,e)>n&&(r--,n=i[r].offset)}m.addSeconds(e,n,e)}function h(e,i){v.julianDate=e;var r=m.leapSeconds,n=t(r,v,c);if(n<0&&(n=~n),0===n)return m.addSeconds(e,-r[0].offset,i);if(n>=r.length)return m.addSeconds(e,-r[n-1].offset,i);var o=m.secondsDifference(r[n].julianDate,e);return 0===o?m.addSeconds(e,-r[n].offset,i):o<=1?void 0:m.addSeconds(e,-r[--n].offset,i)}function p(e,t,i){var r=t/l.SECONDS_PER_DAY|0;return e+=r,t-=l.SECONDS_PER_DAY*r,t<0&&(e--,t+=l.SECONDS_PER_DAY),i.dayNumber=e,i.secondsOfDay=t,i}function f(e,t,i,r,n,o,a){var s=(t-14)/12|0,u=e+4800+s,c=(1461*u/4|0)+(367*(t-2-12*s)/12|0)-(3*((u+100)/100|0)/4|0)+i-32075;(r-=12)<0&&(r+=24);var d=o+(r*l.SECONDS_PER_HOUR+n*l.SECONDS_PER_MINUTE+a*l.SECONDS_PER_MILLISECOND);return d>=43200&&(c-=1),[c,d]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=i(e,0),t=i(t,0),r=i(r,u.UTC);var n=0|e;t+=(e-n)*l.SECONDS_PER_DAY,p(n,t,this),r===u.UTC&&d(this)}var _=new o,g=[31,28,31,30,31,30,31,31,30,31,30,31],v=new s,y=/^(\d{4})$/,C=/^(\d{4})-(\d{2})$/,b=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,T=/^(\d{4})-?(\d{2})-?(\d{2})$/,E=/([Z+\-])?(\d{2})?:?(\d{2})?$/,A=/^(\d{2})(\.\d+)?/.source+E.source,w=/^(\d{2}):?(\d{2})(\.\d+)?/.source+E.source,x=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+E.source;m.fromGregorianDate=function(e,t){var i=f(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(p(i[0],i[1],t),d(t),t):new m(i[0],i[1],u.UTC)},m.fromDate=function(e,t){var i=f(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(p(i[0],i[1],t),d(t),t):new m(i[0],i[1],u.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var i,n,o,s=e.split("T"),l=1,c=1,h=0,_=0,v=0,E=0,P=s[0],D=s[1];if(null!==(s=P.match(T)))i=+s[1],l=+s[2],c=+s[3];else if(null!==(s=P.match(C)))i=+s[1],l=+s[2];else if(null!==(s=P.match(y)))i=+s[1];else{var I;if(null!==(s=P.match(b)))i=+s[1],I=+s[2],o=a(i);else if(null!==(s=P.match(S))){i=+s[1];var M=+s[2],R=+s[3]||0,O=new Date(Date.UTC(i,0,4));I=7*M+R-O.getUTCDay()-3}n=new Date(Date.UTC(i,0,1)),n.setUTCDate(I),l=n.getUTCMonth()+1,c=n.getUTCDate()}o=a(i);var L;if(r(D)){s=D.match(x),null!==s?(h=+s[1],_=+s[2],v=+s[3],E=1e3*+(s[4]||0),L=5):(s=D.match(w),null!==s?(h=+s[1],_=+s[2],v=60*+(s[3]||0),L=4):null!==(s=D.match(A))&&(h=+s[1],_=60*+(s[2]||0),L=3));var N=s[L],F=+s[L+1],B=+(s[L+2]||0);switch(N){case"+":h-=F,_-=B;break;case"-":h+=F,_+=B;break;case"Z":break;default:_+=new Date(Date.UTC(i,l-1,c,h,_)).getTimezoneOffset()}}var z=60===v;for(z&&v--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,c++;for(n=o&&2===l?29:g[l-1];c>n;)c-=n,l++,l>12&&(l-=12,i++),n=o&&2===l?29:g[l-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,c--;for(;c<1;)l--,l<1&&(l+=12,i--),n=o&&2===l?29:g[l-1],c+=n;var k=f(i,l,c,h,_,v,E);return r(t)?(p(k[0],k[1],t),d(t)):t=new m(k[0],k[1],u.UTC),z&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var P=new m(0,0,u.TAI);return m.toGregorianDate=function(e,t){var i=!1,n=h(e,P);r(n)||(m.addSeconds(e,-1,P),n=h(P,P),i=!0);var a=n.dayNumber,s=n.secondsOfDay;s>=43200&&(a+=1);var u=a+68569|0,c=4*u/146097|0;u=u-((146097*c+3)/4|0)|0;var d=4e3*(u+1)/1461001|0;u=u-(1461*d/4|0)+31|0;var p=80*u/2447|0,f=u-(2447*p/80|0)|0;u=p/11|0;var _=p+2-12*u|0,g=100*(c-49)+d+u|0,v=s/l.SECONDS_PER_HOUR|0,y=s-v*l.SECONDS_PER_HOUR,C=y/l.SECONDS_PER_MINUTE|0;y-=C*l.SECONDS_PER_MINUTE;var b=0|y,S=(y-b)/l.SECONDS_PER_MILLISECOND;return v+=12,v>23&&(v-=24),i&&(b+=1),r(t)?(t.year=g,t.month=_,t.day=f,t.hour=v,t.minute=C,t.second=b,t.millisecond=S,t.isLeapSecond=i,t):new o(g,_,f,v,C,b,S,i)},m.toDate=function(e){var t=m.toGregorianDate(e,_),i=t.second;return t.isLeapSecond&&(i-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,i,t.millisecond))},m.toIso8601=function(t,i){var n=m.toGregorianDate(t,_),o=n.year,a=n.month,s=n.day,l=n.hour,u=n.minute,c=n.second,d=n.millisecond;1e4===o&&1===a&&1===s&&0===l&&0===u&&0===c&&0===d&&(o=9999,a=12,s=31,l=24);var h;return r(i)||0===d?r(i)&&0!==i?(h=(.01*d).toFixed(i).replace(".","").slice(0,i),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",o,a,s,l,u,c,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",o,a,s,l,u,c):(h=(.01*d).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",o,a,s,l,u,c,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,u.TAI)},m.compare=function(e,t){var i=e.dayNumber-t.dayNumber;return 0!==i?i:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,i){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=i},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/l.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*l.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/l.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){v.julianDate=e;var i=m.leapSeconds,r=t(i,v,c);return r<0&&(r=~r,--r<0&&(r=0)),i[r].offset},m.addSeconds=function(e,t,i){return p(e.dayNumber,e.secondsOfDay+t,i)},m.addMinutes=function(e,t,i){var r=e.secondsOfDay+t*l.SECONDS_PER_MINUTE;return p(e.dayNumber,r,i)},m.addHours=function(e,t,i){var r=e.secondsOfDay+t*l.SECONDS_PER_HOUR;return p(e.dayNumber,r,i)},m.addDays=function(e,t,i){return p(e.dayNumber+t,e.secondsOfDay,i)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new s(new m(2441317,43210,u.TAI),10),new s(new m(2441499,43211,u.TAI),11),new s(new m(2441683,43212,u.TAI),12),new s(new m(2442048,43213,u.TAI),13),new s(new m(2442413,43214,u.TAI),14),new s(new m(2442778,43215,u.TAI),15),new s(new m(2443144,43216,u.TAI),16),new s(new m(2443509,43217,u.TAI),17),new s(new m(2443874,43218,u.TAI),18),new s(new m(2444239,43219,u.TAI),19),new s(new m(2444786,43220,u.TAI),20),new s(new m(2445151,43221,u.TAI),21),new s(new m(2445516,43222,u.TAI),22),new s(new m(2446247,43223,u.TAI),23),new s(new m(2447161,43224,u.TAI),24),new s(new m(2447892,43225,u.TAI),25),new s(new m(2448257,43226,u.TAI),26),new s(new m(2448804,43227,u.TAI),27),new s(new m(2449169,43228,u.TAI),28),new s(new m(2449534,43229,u.TAI),29),new s(new m(2450083,43230,u.TAI),30),new s(new m(2450630,43231,u.TAI),31),new s(new m(2451179,43232,u.TAI),32),new s(new m(2453736,43233,u.TAI),33),new s(new m(2454832,43234,u.TAI),34),new s(new m(2456109,43235,u.TAI),35),new s(new m(2457204,43236,u.TAI),36),new s(new m(2457754,43237,u.TAI),37)],m}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(t){if(t=i(t,i.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=i(t.addNewLeapSeconds,!0),r(t.data))f(this,t.data);else if(r(t.url)){var n=l.createIfNeeded(t.url),o=this;this._downloadPromise=e(n.fetchJson(),function(e){f(o,e)},function(){o._dataError="An error occurred while retrieving the EOP data from the URL "+n.url+"."})}else f(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function p(e,t){return a.compare(e.julianDate,t)}function f(e,i){if(!r(i.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(i.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var n=i.columnNames.indexOf("modifiedJulianDateUtc"),o=i.columnNames.indexOf("xPoleWanderRadians"),l=i.columnNames.indexOf("yPoleWanderRadians"),u=i.columnNames.indexOf("ut1MinusUtcSeconds"),h=i.columnNames.indexOf("xCelestialPoleOffsetRadians"),f=i.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=i.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||o<0||l<0||u<0||h<0||f<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=i.samples,g=e._dates=[];e._dateColumn=n, -e._xPoleWanderRadiansColumn=o,e._yPoleWanderRadiansColumn=l,e._ut1MinusUtcSecondsColumn=u,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=f,e._taiMinusUtcSecondsColumn=m,e._columnCount=i.columnNames.length,e._lastIndex=void 0;for(var v,y=e._addNewLeapSeconds,C=0,b=_.length;C<b;C+=e._columnCount){var S=_[C+n],T=_[C+m],E=S+c.MODIFIED_JULIAN_DATE_DIFFERENCE,A=new a(E,T,d.TAI);if(g.push(A),y){if(T!==v&&r(v)){var w=a.leapSeconds,x=t(w,A,p);if(x<0){var P=new s(A,T);w.splice(~x,0,P)}}v=T}}}function m(e,t,i,r,n){var o=i*r;n.xPoleWander=t[o+e._xPoleWanderRadiansColumn],n.yPoleWander=t[o+e._yPoleWanderRadiansColumn],n.xPoleOffset=t[o+e._xCelestialPoleOffsetRadiansColumn],n.yPoleOffset=t[o+e._yCelestialPoleOffsetRadiansColumn],n.ut1MinusUtc=t[o+e._ut1MinusUtcSecondsColumn]}function _(e,t,i){return t+e*(i-t)}function g(e,t,i,r,n,o,s){var l=e._columnCount;if(o>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;var u=t[n],c=t[o];if(u.equals(c)||r.equals(u))return m(e,i,n,l,s),s;if(r.equals(c))return m(e,i,o,l,s),s;var d=a.secondsDifference(r,u)/a.secondsDifference(c,u),h=n*l,p=o*l,f=i[h+e._ut1MinusUtcSecondsColumn],g=i[p+e._ut1MinusUtcSecondsColumn],v=g-f;if(v>.5||v<-.5){var y=i[h+e._taiMinusUtcSecondsColumn],C=i[p+e._taiMinusUtcSecondsColumn];y!==C&&(c.equals(r)?f=g:g-=C-y)}return s.xPoleWander=_(d,i[h+e._xPoleWanderRadiansColumn],i[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=_(d,i[h+e._yPoleWanderRadiansColumn],i[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=_(d,i[h+e._xCelestialPoleOffsetRadiansColumn],i[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=_(d,i[h+e._yCelestialPoleOffsetRadiansColumn],i[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=_(d,f,g),s}return h.NONE=o({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new n(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,i){if(r(this._samples)){if(r(i)||(i=new n(0,0,0,0,0)),0===this._samples.length)return i.xPoleWander=0,i.yPoleWander=0,i.xPoleOffset=0,i.yPoleOffset=0,i.ut1MinusUtc=0,i;var o=this._dates,s=this._lastIndex,l=0,c=0;if(r(s)){var d=o[s],h=o[s+1],p=a.lessThanOrEquals(d,e),f=!r(h),m=f||a.greaterThanOrEquals(h,e);if(p&&m)return l=s,!f&&h.equals(e)&&++l,c=l+1,g(this,o,this._samples,e,l,c,i),i}var _=t(o,e,a.compare,this._dateColumn);return _>=0?(_<o.length-1&&o[_+1].equals(e)&&++_,l=_,c=_):(c=~_,(l=c-1)<0&&(l=0)),this._lastIndex=l,g(this,o,this._samples,e,l,c,i),i}if(r(this._dataError))throw new u(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,i,r){"use strict";function n(t,i,r){this.heading=e(t,0),this.pitch=e(i,0),this.roll=e(r,0)}return n.fromQuaternion=function(e,i){t(i)||(i=new n);var o=2*(e.w*e.y-e.z*e.x),a=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),l=1-2*(e.y*e.y+e.z*e.z),u=2*(e.w*e.z+e.x*e.y);return i.heading=-Math.atan2(u,l),i.roll=Math.atan2(s,a),i.pitch=-r.asinClamped(o),i},n.fromDegrees=function(e,i,o,a){return t(a)||(a=new n),a.heading=e*r.RADIANS_PER_DEGREE,a.pitch=i*r.RADIANS_PER_DEGREE,a.roll=o*r.RADIANS_PER_DEGREE,a},n.clone=function(e,i){if(t(e))return t(i)?(i.heading=e.heading,i.pitch=e.pitch,i.roll=e.roll,i):new n(e.heading,e.pitch,e.roll)},n.equals=function(e,i){return e===i||t(e)&&t(i)&&e.heading===i.heading&&e.pitch===i.pitch&&e.roll===i.roll},n.equalsEpsilon=function(e,i,n,o){return e===i||t(e)&&t(i)&&r.equalsEpsilon(e.heading,i.heading,n,o)&&r.equalsEpsilon(e.pitch,i.pitch,n,o)&&r.equalsEpsilon(e.roll,i.roll,n,o)},n.prototype.clone=function(e){return n.clone(this,e)},n.prototype.equals=function(e){return n.equals(this,e)},n.prototype.equalsEpsilon=function(e,t,i){return n.equalsEpsilon(this,e,t,i)},n.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},n}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,i){this.x=e,this.y=t,this.s=i}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=i(e,i.EMPTY_OBJECT),this._xysFileUrlTemplate=a.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=i(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=i(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new o(this._sampleZeroJulianEphemerisDate,0,s.TAI),this._stepSizeDays=i(e.stepSizeDays,1),this._samplesPerXysFile=i(e.samplesPerXysFile,1e3),this._totalSamples=i(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),n=this._xTable=new Array(t+1),l=Math.pow(this._stepSizeDays,t),u=0;u<=t;++u){r[u]=l,n[u]=u*this._stepSizeDays;for(var c=0;c<=t;++c)c!==u&&(r[u]*=u-c);r[u]=1/r[u]}this._work=new Array(t+1),this._coef=new Array(t+1)}function u(e,t,i){var r=d;return r.dayNumber=t,r.secondsOfDay=i,o.daysDifference(r,e._sampleZeroDateTT)}function c(i,n){if(i._chunkDownloadsInProgress[n])return i._chunkDownloadsInProgress[n];var o=e.defer();i._chunkDownloadsInProgress[n]=o;var s,l=i._xysFileUrlTemplate;return s=r(l)?l.getDerivedResource({templateValues:{0:n}}):new a({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+n+".json")}),e(s.fetchJson(),function(e){i._chunkDownloadsInProgress[n]=!1;for(var t=i._samples,r=e.samples,a=n*i._samplesPerXysFile*3,s=0,l=r.length;s<l;++s)t[a+s]=r[s];o.resolve()}),o.promise}var d=new o(0,0,s.TAI);return l.prototype.preload=function(t,i,r,n){var o=u(this,t,i),a=u(this,r,n),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);var l=a/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;l>=this._totalSamples&&(l=this._totalSamples-1);for(var d=s/this._samplesPerXysFile|0,h=l/this._samplesPerXysFile|0,p=[],f=d;f<=h;++f)p.push(c(this,f));return e.all(p)},l.prototype.computeXysRadians=function(e,t,i){var o=u(this,e,t);if(!(o<0)){var a=o/this._stepSizeDays|0;if(!(a>=this._totalSamples)){var s=this._interpolationOrder,l=a-(s/2|0);l<0&&(l=0);var d=l+s;d>=this._totalSamples&&(d=this._totalSamples-1,(l=d-s)<0&&(l=0));var h=!1,p=this._samples;if(r(p[3*l])||(c(this,l/this._samplesPerXysFile|0),h=!0),r(p[3*d])||(c(this,d/this._samplesPerXysFile|0),h=!0),!h){r(i)?(i.x=0,i.y=0,i.s=0):i=new n(0,0,0);var f,m,_=o-l*this._stepSizeDays,g=this._work,v=this._denominators,y=this._coef,C=this._xTable;for(f=0;f<=s;++f)g[f]=_-C[f];for(f=0;f<=s;++f){for(y[f]=1,m=0;m<=s;++m)m!==f&&(y[f]*=g[m]);y[f]*=v[f];var b=3*(l+f);i.x+=y[f]*p[b++],i.y+=y[f]*p[b++],i.s+=y[f]*p[b]}return i}}}},l}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";var b={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},T={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},E={},A={east:new i,north:new i,up:new i,west:new i,south:new i,down:new i},w=new i,x=new i,P=new i;b.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new l("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,n=S[e][t],o=e+t;return s(E[o])?r=E[o]:(r=function(r,o,l){if(s(l)||(l=new v),_.equalsEpsilon(r.x,0,_.EPSILON14)&&_.equalsEpsilon(r.y,0,_.EPSILON14)){var u=_.sign(r.z);i.unpack(T[e],0,w),"east"!==e&&"west"!==e&&i.multiplyByScalar(w,u,w),i.unpack(T[t],0,x),"east"!==t&&"west"!==t&&i.multiplyByScalar(x,u,x),i.unpack(T[n],0,P),"east"!==n&&"west"!==n&&i.multiplyByScalar(P,u,P)}else{o=a(o,d.WGS84),o.geodeticSurfaceNormal(r,A.up);var c=A.up,h=A.east;h.x=-r.y,h.y=r.x,h.z=0,i.normalize(h,A.east),i.cross(c,h,A.north),i.multiplyByScalar(A.up,-1,A.down),i.multiplyByScalar(A.east,-1,A.west),i.multiplyByScalar(A.north,-1,A.south),w=A[e],x=A[t],P=A[n]}return l[0]=w.x,l[1]=w.y,l[2]=w.z,l[3]=0,l[4]=x.x,l[5]=x.y,l[6]=x.z,l[7]=0,l[8]=P.x,l[9]=P.y,l[10]=P.z,l[11]=0,l[12]=r.x,l[13]=r.y,l[14]=r.z,l[15]=1,l},E[o]=r),r},b.eastNorthUpToFixedFrame=b.localFrameToFixedFrameGenerator("east","north"),b.northEastDownToFixedFrame=b.localFrameToFixedFrameGenerator("north","east"),b.northUpEastToFixedFrame=b.localFrameToFixedFrameGenerator("north","up"),b.northWestUpToFixedFrame=b.localFrameToFixedFrameGenerator("north","west");var D=new y,I=new i(1,1,1),M=new v;b.headingPitchRollToFixedFrame=function(e,t,r,n,o){n=a(n,b.eastNorthUpToFixedFrame);var s=y.fromHeadingPitchRoll(t,D),l=v.fromTranslationQuaternionRotationScale(i.ZERO,s,I,M);return o=n(e,r,o),v.multiply(o,l,o)};var R=new v,O=new g;b.headingPitchRollQuaternion=function(e,t,i,r,n){var o=b.headingPitchRollToFixedFrame(e,t,i,r,R),a=v.getRotation(o,O);return y.fromRotationMatrix(a,n)};var L=new i(1,1,1),N=new i,F=new v,B=new v,z=new g,k=new y;b.fixedFrameToHeadingPitchRoll=function(e,t,r,n){t=a(t,d.WGS84),r=a(r,b.eastNorthUpToFixedFrame),s(n)||(n=new h);var o=v.getTranslation(e,N);if(i.equals(o,i.ZERO))return n.heading=0,n.pitch=0,n.roll=0,n;var l=v.inverseTransformation(r(o,t,F),F),u=v.setScale(e,L,B);u=v.setTranslation(u,i.ZERO,u),l=v.multiply(l,u,l);var c=y.fromRotationMatrix(v.getRotation(l,z),k);return c=y.normalize(c,c),h.fromQuaternion(c,n)};var V=_.TWO_PI/86400,U=new m;b.computeTemeToPseudoFixedMatrix=function(e,t){U=m.addSeconds(e,-m.computeTaiMinusUtc(e),U);var i,r=U.dayNumber,n=U.secondsOfDay,o=r-2451545;i=n>=43200?(o+.5)/C.DAYS_PER_JULIAN_CENTURY:(o-.5)/C.DAYS_PER_JULIAN_CENTURY;var a=24110.54841+i*(8640184.812866+i*(.093104+-62e-7*i)),l=a*V%_.TWO_PI,u=72921158553e-15+1.1772758384668e-19*(r-2451545.5),c=(n+.5*C.SECONDS_PER_DAY)%C.SECONDS_PER_DAY,d=l+u*c,h=Math.cos(d),p=Math.sin(d);return s(t)?(t[0]=h,t[1]=-p,t[2]=0,t[3]=p,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new g(h,p,0,-p,h,0,0,0,1)},b.iau2006XysData=new p,b.earthOrientationParameters=u.NONE;b.preloadIcrfFixed=function(t){var i=t.start.dayNumber,r=t.start.secondsOfDay+32.184,n=t.stop.dayNumber,o=t.stop.secondsOfDay+32.184,a=b.iau2006XysData.preload(i,r,n,o),s=b.earthOrientationParameters.getPromiseToLoad();return e.all([a,s])},b.computeIcrfToFixedMatrix=function(e,t){s(t)||(t=new g);var i=b.computeFixedToIcrfMatrix(e,t);if(s(i))return g.transpose(i,t)};var G=new f(0,0,0),H=new c(0,0,0,0,0,0),W=new g,q=new g;b.computeFixedToIcrfMatrix=function(e,t){s(t)||(t=new g);var i=b.earthOrientationParameters.compute(e,H);if(s(i)){var r=e.dayNumber,n=e.secondsOfDay+32.184,o=b.iau2006XysData.computeXysRadians(r,n,G);if(s(o)){var a=o.x+i.xPoleOffset,l=o.y+i.yPoleOffset,u=1/(1+Math.sqrt(1-a*a-l*l)),c=W;c[0]=1-u*a*a,c[3]=-u*a*l,c[6]=a,c[1]=-u*a*l,c[4]=1-u*l*l,c[7]=l,c[2]=-a,c[5]=-l,c[8]=1-u*(a*a+l*l);var d=g.fromRotationZ(-o.s,q),h=g.multiply(c,d,W),p=e.dayNumber,f=e.secondsOfDay-m.computeTaiMinusUtc(e)+i.ut1MinusUtc,v=p-2451545,y=f/C.SECONDS_PER_DAY,S=.779057273264+y+.00273781191135448*(v+y);S=S%1*_.TWO_PI;var T=g.fromRotationZ(S,q),E=g.multiply(h,T,W),A=Math.cos(i.xPoleWander),w=Math.cos(i.yPoleWander),x=Math.sin(i.xPoleWander),P=Math.sin(i.yPoleWander),D=r-2451545+n/C.SECONDS_PER_DAY;D/=36525;var I=-47e-6*D*_.RADIANS_PER_DEGREE/3600,M=Math.cos(I),R=Math.sin(I),O=q;return O[0]=A*M,O[1]=A*R,O[2]=x,O[3]=-w*R+P*x*M,O[4]=w*M+P*x*R,O[5]=-P*A,O[6]=-P*R-w*x*M,O[7]=P*M-w*x*R,O[8]=w*A,g.multiply(E,O,t)}}};var Y=new r;b.pointToWindowCoordinates=function(e,t,i,r){return r=b.pointToGLWindowCoordinates(e,t,i,r),r.y=2*t[5]-r.y,r},b.pointToGLWindowCoordinates=function(e,i,n,o){s(o)||(o=new t);var a=Y;return v.multiplyByVector(e,r.fromElements(n.x,n.y,n.z,1,a),a),r.multiplyByScalar(a,1/a.w,a),v.multiplyByVector(i,a,a),t.fromCartesian4(a,o)};var j=new i,X=new i,Q=new i;b.rotationMatrixFromPositionVelocity=function(e,t,r,n){var o=a(r,d.WGS84).geodeticSurfaceNormal(e,j),l=i.cross(t,o,X);i.equalsEpsilon(l,i.ZERO,_.EPSILON6)&&(l=i.clone(i.UNIT_X,l));var u=i.cross(l,t,Q);return i.normalize(u,u),i.cross(t,u,l),i.negate(l,l),i.normalize(l,l),s(n)||(n=new g),n[0]=t.x,n[1]=t.y,n[2]=t.z,n[3]=l.x,n[4]=l.y,n[5]=l.z,n[6]=u.x,n[7]=u.y,n[8]=u.z,n};var K=new v(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),Z=new n,J=new i,$=new i,ee=new g,te=new v,ie=new v;return b.basisTo2D=function(e,t,r){var n=v.getTranslation(t,$),o=e.ellipsoid,a=o.cartesianToCartographic(n,Z),s=e.project(a,J);i.fromElements(s.z,s.x,s.y,s);var l=b.eastNorthUpToFixedFrame(n,o,te),u=v.inverseTransformation(l,ie),c=v.getRotation(t,ee),d=v.multiplyByMatrix3(u,c,r);return v.multiply(K,d,r),v.setTranslation(r,s,r),r},b.wgs84To2DModelMatrix=function(e,t,r){var n=e.ellipsoid,o=b.eastNorthUpToFixedFrame(t,n,te),a=v.inverseTransformation(o,ie),s=n.cartesianToCartographic(t,Z),l=e.project(s,J);i.fromElements(l.z,l.x,l.y,l);var u=v.fromTranslation(l,te);return v.multiply(K,a,r),v.multiply(u,r,r),r},b}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){e=n(e,n.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=n(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=n(e.geometryType,l.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var i in e.attributes)if(e.attributes.hasOwnProperty(i)&&o(e.attributes[i])&&o(e.attributes[i].values)){var r=e.attributes[i],n=r.values.length/r.componentsPerAttribute;t=n}return t};var g=new i,v=new t,y=new d,C=[new i,new i,new i],b=[new e,new e,new e],S=[new e,new e,new e],T=new t,E=new p,A=new d,w=new u;return _._textureCoordinateRotationPoints=function(r,n,o,a){var s,l=f.center(a,g),h=i.toCartesian(l,o,v),_=m.eastNorthUpToFixedFrame(h,o,y),x=d.inverse(_,y),P=b,D=C;D[0].longitude=a.west,D[0].latitude=a.south,D[1].longitude=a.west,D[1].latitude=a.north,D[2].longitude=a.east,D[2].latitude=a.south;var I=T;for(s=0;s<3;s++)i.toCartesian(D[s],o,I),I=d.multiplyByPointAsVector(x,I,I),P[s].x=I.x,P[s].y=I.y;var M=p.fromAxisAngle(t.UNIT_Z,-n,E),R=c.fromQuaternion(M,A),O=r.length,L=Number.POSITIVE_INFINITY,N=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(s=0;s<O;s++)I=d.multiplyByPointAsVector(x,r[s],I),I=c.multiplyByVector(R,I,I),L=Math.min(L,I.x),N=Math.min(N,I.y),F=Math.max(F,I.x),B=Math.max(B,I.y);var z=u.fromRotation(n,w),k=S;k[0].x=L,k[0].y=N,k[1].x=L,k[1].y=B,k[2].x=F,k[2].y=N;var V=P[0],U=P[2].x-V.x,G=P[1].y-V.y;for(s=0;s<3;s++){var H=k[s];u.multiplyByVector(z,H,H),H.x=(H.x-V.x)/U,H.y=(H.y-V.y)/G}var W=k[0],q=k[1],Y=k[2],j=new Array(6);return e.pack(W,j),e.pack(q,j,2),e.pack(Y,j,4),j},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,i,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return n.POSITION_ONLY=r(new n({position:!0})),n.POSITION_AND_NORMAL=r(new n({position:!0,normal:!0})),n.POSITION_NORMAL_AND_ST=r(new n({position:!0,normal:!0,st:!0})),n.POSITION_AND_ST=r(new n({position:!0,st:!0})),n.POSITION_AND_COLOR=r(new n({position:!0,color:!0})),n.ALL=r(new n({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),n.DEFAULT=n.POSITION_NORMAL_AND_ST,n.packedLength=6,n.pack=function(t,i,r){return r=e(r,0),i[r++]=t.position?1:0,i[r++]=t.normal?1:0,i[r++]=t.st?1:0,i[r++]=t.tangent?1:0,i[r++]=t.bitangent?1:0,i[r]=t.color?1:0,i},n.unpack=function(i,r,o){return r=e(r,0),t(o)||(o=new n),o.position=1===i[r++],o.normal=1===i[r++],o.st=1===i[r++],o.tangent=1===i[r++],o.bitangent=1===i[r++],o.color=1===i[r],o},n.clone=function(e,i){if(t(e))return t(i)||(i=new n),i.position=e.position,i.normal=e.normal,i.st=e.st,i.tangent=e.tangent,i.bitangent=e.bitangent,i.color=e.color,i},n}),define("Core/BoxGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./PrimitiveType","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){e=o(e,o.EMPTY_OBJECT);var t=e.minimum,r=e.maximum,n=o(e.vertexFormat,p.DEFAULT);this._minimum=i.clone(t),this._maximum=i.clone(r),this._vertexFormat=n,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}var m=new i;f.fromDimensions=function(e){e=o(e,o.EMPTY_OBJECT);var t=e.dimensions,r=i.multiplyByScalar(t,.5,new i);return new f({minimum:i.negate(r,new i),maximum:r,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})},f.fromAxisAlignedBoundingBox=function(e){return new f({minimum:e.minimum,maximum:e.maximum})},f.packedLength=2*i.packedLength+p.packedLength+1,f.pack=function(e,t,r){return r=o(r,0),i.pack(e._minimum,t,r),i.pack(e._maximum,t,r+i.packedLength),p.pack(e._vertexFormat,t,r+2*i.packedLength),t[r+2*i.packedLength+p.packedLength]=o(e._offsetAttribute,-1),t};var _=new i,g=new i,v=new p,y={minimum:_,maximum:g,vertexFormat:v,offsetAttribute:void 0};f.unpack=function(e,t,r){t=o(t,0);var n=i.unpack(e,t,_),s=i.unpack(e,t+i.packedLength,g),l=p.unpack(e,t+2*i.packedLength,v),u=e[t+2*i.packedLength+p.packedLength];return a(r)?(r._minimum=i.clone(n,r._minimum),r._maximum=i.clone(s,r._maximum),r._vertexFormat=p.clone(l,r._vertexFormat),r._offsetAttribute=-1===u?void 0:u,r):(y.offsetAttribute=-1===u?void 0:u,new f(y))},f.createGeometry=function(r){var o=r._minimum,s=r._maximum,p=r._vertexFormat;if(!i.equals(o,s)){var f,_,g=new c;if(p.position&&(p.st||p.normal||p.tangent||p.bitangent)){if(p.position&&(_=new Float64Array(72),_[0]=o.x,_[1]=o.y,_[2]=s.z,_[3]=s.x,_[4]=o.y,_[5]=s.z,_[6]=s.x,_[7]=s.y,_[8]=s.z,_[9]=o.x,_[10]=s.y,_[11]=s.z,_[12]=o.x,_[13]=o.y,_[14]=o.z,_[15]=s.x,_[16]=o.y,_[17]=o.z,_[18]=s.x,_[19]=s.y,_[20]=o.z,_[21]=o.x,_[22]=s.y,_[23]=o.z,_[24]=s.x,_[25]=o.y,_[26]=o.z,_[27]=s.x,_[28]=s.y,_[29]=o.z,_[30]=s.x,_[31]=s.y,_[32]=s.z,_[33]=s.x,_[34]=o.y,_[35]=s.z,_[36]=o.x,_[37]=o.y,_[38]=o.z,_[39]=o.x,_[40]=s.y,_[41]=o.z,_[42]=o.x,_[43]=s.y,_[44]=s.z,_[45]=o.x,_[46]=o.y,_[47]=s.z,_[48]=o.x,_[49]=s.y,_[50]=o.z,_[51]=s.x,_[52]=s.y,_[53]=o.z,_[54]=s.x,_[55]=s.y,_[56]=s.z,_[57]=o.x,_[58]=s.y,_[59]=s.z,_[60]=o.x,_[61]=o.y,_[62]=o.z,_[63]=s.x,_[64]=o.y,_[65]=o.z,_[66]=s.x,_[67]=o.y,_[68]=s.z,_[69]=o.x,_[70]=o.y,_[71]=s.z,g.position=new u({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:_})),p.normal){var v=new Float32Array(72);v[0]=0,v[1]=0,v[2]=1,v[3]=0,v[4]=0,v[5]=1,v[6]=0,v[7]=0,v[8]=1,v[9]=0,v[10]=0,v[11]=1,v[12]=0,v[13]=0,v[14]=-1,v[15]=0,v[16]=0,v[17]=-1,v[18]=0,v[19]=0,v[20]=-1,v[21]=0,v[22]=0,v[23]=-1,v[24]=1,v[25]=0,v[26]=0,v[27]=1,v[28]=0,v[29]=0,v[30]=1,v[31]=0,v[32]=0,v[33]=1,v[34]=0,v[35]=0,v[36]=-1,v[37]=0,v[38]=0,v[39]=-1,v[40]=0,v[41]=0,v[42]=-1,v[43]=0,v[44]=0,v[45]=-1,v[46]=0,v[47]=0,v[48]=0,v[49]=1,v[50]=0,v[51]=0,v[52]=1,v[53]=0,v[54]=0,v[55]=1,v[56]=0,v[57]=0,v[58]=1,v[59]=0,v[60]=0,v[61]=-1,v[62]=0,v[63]=0,v[64]=-1,v[65]=0,v[66]=0,v[67]=-1,v[68]=0,v[69]=0,v[70]=-1,v[71]=0,g.normal=new u({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:v})}if(p.st){var y=new Float32Array(48);y[0]=0,y[1]=0,y[2]=1,y[3]=0,y[4]=1,y[5]=1,y[6]=0,y[7]=1,y[8]=1,y[9]=0,y[10]=0,y[11]=0,y[12]=0,y[13]=1,y[14]=1,y[15]=1,y[16]=0,y[17]=0,y[18]=1,y[19]=0,y[20]=1,y[21]=1,y[22]=0,y[23]=1,y[24]=1,y[25]=0,y[26]=0,y[27]=0,y[28]=0,y[29]=1,y[30]=1,y[31]=1,y[32]=1,y[33]=0,y[34]=0,y[35]=0,y[36]=0,y[37]=1,y[38]=1,y[39]=1,y[40]=0,y[41]=0,y[42]=1,y[43]=0,y[44]=1,y[45]=1,y[46]=0,y[47]=1,g.st=new u({componentDatatype:n.FLOAT,componentsPerAttribute:2,values:y})}if(p.tangent){var C=new Float32Array(72);C[0]=1,C[1]=0,C[2]=0,C[3]=1,C[4]=0,C[5]=0,C[6]=1,C[7]=0,C[8]=0,C[9]=1,C[10]=0,C[11]=0,C[12]=-1,C[13]=0,C[14]=0,C[15]=-1,C[16]=0,C[17]=0,C[18]=-1,C[19]=0,C[20]=0,C[21]=-1,C[22]=0,C[23]=0,C[24]=0,C[25]=1,C[26]=0,C[27]=0,C[28]=1,C[29]=0,C[30]=0,C[31]=1,C[32]=0,C[33]=0,C[34]=1,C[35]=0,C[36]=0,C[37]=-1,C[38]=0,C[39]=0,C[40]=-1,C[41]=0,C[42]=0,C[43]=-1,C[44]=0,C[45]=0,C[46]=-1,C[47]=0,C[48]=-1,C[49]=0,C[50]=0,C[51]=-1,C[52]=0,C[53]=0,C[54]=-1,C[55]=0,C[56]=0,C[57]=-1,C[58]=0,C[59]=0,C[60]=1,C[61]=0,C[62]=0,C[63]=1,C[64]=0,C[65]=0,C[66]=1,C[67]=0,C[68]=0,C[69]=1,C[70]=0,C[71]=0,g.tangent=new u({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:C})}if(p.bitangent){var b=new Float32Array(72);b[0]=0,b[1]=1,b[2]=0,b[3]=0,b[4]=1,b[5]=0,b[6]=0,b[7]=1,b[8]=0,b[9]=0,b[10]=1,b[11]=0,b[12]=0,b[13]=1,b[14]=0,b[15]=0,b[16]=1,b[17]=0,b[18]=0,b[19]=1,b[20]=0,b[21]=0,b[22]=1,b[23]=0,b[24]=0,b[25]=0,b[26]=1,b[27]=0,b[28]=0,b[29]=1,b[30]=0,b[31]=0,b[32]=1,b[33]=0,b[34]=0,b[35]=1,b[36]=0,b[37]=0,b[38]=1,b[39]=0,b[40]=0,b[41]=1,b[42]=0,b[43]=0,b[44]=1,b[45]=0,b[46]=0,b[47]=1,b[48]=0,b[49]=0,b[50]=1,b[51]=0,b[52]=0,b[53]=1,b[54]=0,b[55]=0,b[56]=1,b[57]=0,b[58]=0,b[59]=1,b[60]=0,b[61]=0,b[62]=1,b[63]=0,b[64]=0,b[65]=1,b[66]=0,b[67]=0,b[68]=1,b[69]=0,b[70]=0,b[71]=1,g.bitangent=new u({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:b})}f=new Uint16Array(36),f[0]=0,f[1]=1,f[2]=2,f[3]=0,f[4]=2,f[5]=3,f[6]=6,f[7]=5,f[8]=4,f[9]=7,f[10]=6,f[11]=4,f[12]=8,f[13]=9,f[14]=10,f[15]=8,f[16]=10,f[17]=11,f[18]=14,f[19]=13,f[20]=12,f[21]=15,f[22]=14,f[23]=12,f[24]=18,f[25]=17,f[26]=16,f[27]=19,f[28]=18,f[29]=16,f[30]=20,f[31]=21,f[32]=22,f[33]=20,f[34]=22,f[35]=23}else _=new Float64Array(24),_[0]=o.x,_[1]=o.y,_[2]=o.z,_[3]=s.x,_[4]=o.y,_[5]=o.z,_[6]=s.x,_[7]=s.y,_[8]=o.z,_[9]=o.x,_[10]=s.y,_[11]=o.z,_[12]=o.x,_[13]=o.y,_[14]=s.z,_[15]=s.x,_[16]=o.y,_[17]=s.z,_[18]=s.x,_[19]=s.y,_[20]=s.z,_[21]=o.x,_[22]=s.y,_[23]=s.z,g.position=new u({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:_}),f=new Uint16Array(36),f[0]=4,f[1]=5,f[2]=6,f[3]=4,f[4]=6,f[5]=7,f[6]=1,f[7]=0,f[8]=3,f[9]=1,f[10]=3,f[11]=2,f[12]=1,f[13]=6,f[14]=5,f[15]=1,f[16]=2,f[17]=6,f[18]=2,f[19]=3,f[20]=7,f[21]=2,f[22]=7,f[23]=6,f[24]=3,f[25]=0,f[26]=4,f[27]=3,f[28]=4,f[29]=7,f[30]=0,f[31]=1,f[32]=5,f[33]=0,f[34]=5,f[35]=4;var S=i.subtract(s,o,m),T=.5*i.magnitude(S);if(a(r._offsetAttribute)){var E=_.length,A=new Uint8Array(E/3),w=r._offsetAttribute===d.NONE?0:1;e(A,w),g.applyOffset=new u({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}return new l({attributes:g,indices:f,primitiveType:h.TRIANGLES,boundingSphere:new t(i.ZERO,T),offsetAttribute:r._offsetAttribute})}};var C;return f.getUnitBox=function(){return a(C)||(C=f.createGeometry(f.fromDimensions({dimensions:new i(1,1,1),vertexFormat:p.POSITION_ONLY}))),C},f}),define("Core/BoxOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e){e=o(e,o.EMPTY_OBJECT);var t=e.minimum,r=e.maximum;this._min=i.clone(t),this._max=i.clone(r),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}var f=new i;p.fromDimensions=function(e){e=o(e,o.EMPTY_OBJECT);var t=e.dimensions,r=i.multiplyByScalar(t,.5,new i);return new p({minimum:i.negate(r,new i),maximum:r,offsetAttribute:e.offsetAttribute})},p.fromAxisAlignedBoundingBox=function(e){return new p({minimum:e.minimum,maximum:e.maximum})},p.packedLength=2*i.packedLength+1,p.pack=function(e,t,r){return r=o(r,0),i.pack(e._min,t,r),i.pack(e._max,t,r+i.packedLength),t[r+2*i.packedLength]=o(e._offsetAttribute,-1),t};var m=new i,_=new i,g={minimum:m,maximum:_,offsetAttribute:void 0};return p.unpack=function(e,t,r){t=o(t,0);var n=i.unpack(e,t,m),s=i.unpack(e,t+i.packedLength,_),l=e[t+2*i.packedLength];return a(r)?(r._min=i.clone(n,r._min),r._max=i.clone(s,r._max),r._offsetAttribute=-1===l?void 0:l,r):(g.offsetAttribute=-1===l?void 0:l,new p(g))},p.createGeometry=function(r){var o=r._min,s=r._max;if(!i.equals(o,s)){var p=new c,m=new Uint16Array(24),_=new Float64Array(24);_[0]=o.x,_[1]=o.y,_[2]=o.z,_[3]=s.x,_[4]=o.y,_[5]=o.z,_[6]=s.x,_[7]=s.y,_[8]=o.z,_[9]=o.x,_[10]=s.y,_[11]=o.z,_[12]=o.x,_[13]=o.y,_[14]=s.z,_[15]=s.x,_[16]=o.y,_[17]=s.z,_[18]=s.x,_[19]=s.y,_[20]=s.z,_[21]=o.x,_[22]=s.y,_[23]=s.z,p.position=new u({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:_}),m[0]=4,m[1]=5,m[2]=5,m[3]=6,m[4]=6,m[5]=7,m[6]=7,m[7]=4,m[8]=0,m[9]=1,m[10]=1,m[11]=2,m[12]=2,m[13]=3,m[14]=3,m[15]=0,m[16]=0,m[17]=4,m[18]=1,m[19]=5,m[20]=2,m[21]=6,m[22]=3,m[23]=7;var g=i.subtract(s,o,f),v=.5*i.magnitude(g);if(a(r._offsetAttribute)){var y=_.length,C=new Uint8Array(y/3),b=r._offsetAttribute===d.NONE?0:1;e(C,b),p.applyOffset=new u({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}return new l({attributes:p,indices:m,primitiveType:h.LINES,boundingSphere:new t(i.ZERO,v),offsetAttribute:r._offsetAttribute})}},p}),define("Core/cancelAnimationFrame",["./defined"],function(e){"use strict";function t(e){i(e)}if("undefined"!=typeof window){var i=window.cancelAnimationFrame;return function(){if(!e(i))for(var t=["webkit","moz","ms","o"],r=0,n=t.length;r<n&&!e(i);)i=window[t[r]+"CancelAnimationFrame"],e(i)||(i=window[t[r]+"CancelRequestAnimationFrame"]),++r;e(i)||(i=clearTimeout)}(),t}}),define("Core/CartographicGeocoderService",["../ThirdParty/when","./Cartesian3","./Check"],function(e,t,i){"use strict";function r(){}return r.prototype.geocode=function(i){var r=i.match(/[^\s,\n]+/g);if(2===r.length||3===r.length){var n=+r[0],o=+r[1],a=3===r.length?+r[2]:300;if(isNaN(n)&&isNaN(o))for(var s=/^(\d+.?\d*)([nsew])/i,l=0;l<r.length;++l){var u=r[l].match(s);s.test(r[l])&&3===u.length&&(/^[ns]/i.test(u[2])?o=/^[n]/i.test(u[2])?+u[1]:-u[1]:/^[ew]/i.test(u[2])&&(n=/^[e]/i.test(u[2])?+u[1]:-u[1]))}if(!isNaN(n)&&!isNaN(o)&&!isNaN(a)){var c={displayName:i,destination:t.fromDegrees(n,o,a)};return e.resolve([c])}}return e.resolve([])},r}),define("Core/Spline",["./Check","./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,i,r,n){"use strict";function o(){this.times=void 0,this.points=void 0,r.throwInstantiationError()}return o.prototype.evaluate=r.throwInstantiationError,o.prototype.findTimeInterval=function(e,i){var r=this.times,n=r.length;if(i=t(i,0),e>=r[i]){if(i+1<n&&e<r[i+1])return i;if(i+2<n&&e<r[i+2])return i+1}else if(i-1>=0&&e>=r[i-1])return i-1;var o;if(e>r[i])for(o=i;o<n-1&&!(e>=r[o]&&e<r[o+1]);++o);else for(o=i-1;o>=0&&!(e>=r[o]&&e<r[o+1]);--o);return o===n-1&&(o=n-2),o},o.prototype.wrapTime=function(e){var t,i=this.times,r=i[i.length-1],n=i[0],o=r-n;return e<n&&(t=Math.floor((n-e)/o)+1,e+=t*o),e>r&&(t=Math.floor((e-r)/o)+1,e-=t*o),e},o.prototype.clampTime=function(e){var t=this.times;return n.clamp(e,t[0],t[t.length-1])},o}),define("Core/LinearSpline",["./Cartesian3","./defaultValue","./defined","./defineProperties","./DeveloperError","./Spline"],function(e,t,i,r,n,o){"use strict";function a(e){e=t(e,t.EMPTY_OBJECT);var i=e.points,r=e.times;this._times=r,this._points=i,this._lastTimeIndex=0}return r(a.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}}),a.prototype.findTimeInterval=o.prototype.findTimeInterval,a.prototype.wrapTime=o.prototype.wrapTime,a.prototype.clampTime=o.prototype.clampTime,a.prototype.evaluate=function(t,r){var n=this.points,o=this.times,a=this._lastTimeIndex=this.findTimeInterval(t,this._lastTimeIndex),s=(t-o[a])/(o[a+1]-o[a]);return i(r)||(r=new e),e.lerp(n[a],n[a+1],s,r)},a}),define("Core/TridiagonalSystemSolver",["./Cartesian3","./defined","./DeveloperError"],function(e,t,i){"use strict";var r={};return r.solve=function(t,i,r,n){var o,a=new Array(r.length),s=new Array(n.length),l=new Array(n.length);for(o=0;o<s.length;o++)s[o]=new e,l[o]=new e;a[0]=r[0]/i[0],s[0]=e.multiplyByScalar(n[0],1/i[0],s[0]);var u;for(o=1;o<a.length;++o)u=1/(i[o]-a[o-1]*t[o-1]),a[o]=r[o]*u,s[o]=e.subtract(n[o],e.multiplyByScalar(s[o-1],t[o-1],s[o]),s[o]),s[o]=e.multiplyByScalar(s[o],u,s[o]);for(u=1/(i[o]-a[o-1]*t[o-1]),s[o]=e.subtract(n[o],e.multiplyByScalar(s[o-1],t[o-1],s[o]),s[o]),s[o]=e.multiplyByScalar(s[o],u,s[o]),l[l.length-1]=s[s.length-1],o=l.length-2;o>=0;--o)l[o]=e.subtract(s[o],e.multiplyByScalar(l[o+1],a[o],l[o]),l[o]);return l},r}),define("Core/HermiteSpline",["./Cartesian3","./Cartesian4","./defaultValue","./defined","./defineProperties","./DeveloperError","./LinearSpline","./Matrix4","./Spline","./TridiagonalSystemSolver"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t,i,n){var o=p,a=m,s=f,l=_;o.length=a.length=t.length-1,s.length=l.length=t.length;var c;o[0]=s[0]=1,a[0]=0;var d=l[0];for(r(d)||(d=l[0]=new e),e.clone(i,d),c=1;c<o.length-1;++c)o[c]=a[c]=1,s[c]=4,d=l[c],r(d)||(d=l[c]=new e),e.subtract(t[c+1],t[c-1],d),e.multiplyByScalar(d,3,d);return o[c]=0,a[c]=1,s[c]=4,d=l[c],r(d)||(d=l[c]=new e),e.subtract(t[c+1],t[c-1],d),e.multiplyByScalar(d,3,d),s[c+1]=1,d=l[c+1],r(d)||(d=l[c+1]=new e),e.clone(n,d),u.solve(o,s,a,l)}function d(t){var i=p,n=m,o=f,a=_;i.length=n.length=t.length-1,o.length=a.length=t.length;var s;i[0]=n[0]=1,o[0]=2;var l=a[0];for(r(l)||(l=a[0]=new e),e.subtract(t[1],t[0],l),e.multiplyByScalar(l,3,l),s=1;s<i.length;++s)i[s]=n[s]=1,o[s]=4,l=a[s],r(l)||(l=a[s]=new e),e.subtract(t[s+1],t[s-1],l),e.multiplyByScalar(l,3,l);return o[s]=2,l=a[s],r(l)||(l=a[s]=new e),e.subtract(t[s],t[s-1],l),e.multiplyByScalar(l,3,l),u.solve(i,o,n,a)}function h(e){e=i(e,i.EMPTY_OBJECT);var t=e.points,r=e.times,n=e.inTangents,o=e.outTangents;this._times=r,this._points=t,this._inTangents=n,this._outTangents=o,this._lastTimeIndex=0}var p=[],f=[],m=[],_=[];n(h.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}}),h.createC1=function(e){e=i(e,i.EMPTY_OBJECT);var t=e.times,r=e.points,n=e.tangents,o=n.slice(0,n.length-1);return new h({times:t,points:r,inTangents:n.slice(1,n.length),outTangents:o})},h.createNaturalCubic=function(e){e=i(e,i.EMPTY_OBJECT);var t=e.times,r=e.points;if(r.length<3)return new a({points:r,times:t});var n=d(r),o=n.slice(0,n.length-1);return new h({times:t,points:r,inTangents:n.slice(1,n.length),outTangents:o})},h.createClampedCubic=function(e){e=i(e,i.EMPTY_OBJECT);var t=e.times,r=e.points,n=e.firstTangent,o=e.lastTangent;if(r.length<3)return new a({points:r,times:t});var s=c(r,n,o),l=s.slice(0,s.length-1);return new h({times:t,points:r,inTangents:s.slice(1,s.length),outTangents:l})},h.hermiteCoefficientMatrix=new s(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0),h.prototype.findTimeInterval=l.prototype.findTimeInterval -;var g=new t,v=new e;return h.prototype.wrapTime=l.prototype.wrapTime,h.prototype.clampTime=l.prototype.clampTime,h.prototype.evaluate=function(t,i){r(i)||(i=new e);var n=this.points,o=this.times,a=this.inTangents,l=this.outTangents,u=this._lastTimeIndex=this.findTimeInterval(t,this._lastTimeIndex),c=(t-o[u])/(o[u+1]-o[u]),d=g;d.z=c,d.y=c*c,d.x=d.y*c,d.w=1;var p=s.multiplyByVector(h.hermiteCoefficientMatrix,d,d);return i=e.multiplyByScalar(n[u],p.x,i),e.multiplyByScalar(n[u+1],p.y,v),e.add(i,v,i),e.multiplyByScalar(l[u],p.z,v),e.add(i,v,i),e.multiplyByScalar(a[u],p.w,v),e.add(i,v,i)},h}),define("Core/CatmullRomSpline",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./HermiteSpline","./Matrix4","./Spline"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t){var i=t.points,r=t.times;if(i.length<3){var o=r[0],l=1/(r[1]-o),u=i[0],f=i[1];return function(t,i){n(i)||(i=new e);var r=(t-o)*l;return e.lerp(u,f,r,i)}}return function(o,l){n(l)||(l=new e);var u=t._lastTimeIndex=t.findTimeInterval(o,t._lastTimeIndex),f=(o-r[u])/(r[u+1]-r[u]),m=d;m.z=f,m.y=f*f,m.x=m.y*f,m.w=1;var _,g,v,y,C;return 0===u?(_=i[0],g=i[1],v=t.firstTangent,y=e.subtract(i[2],_,h),e.multiplyByScalar(y,.5,y),C=s.multiplyByVector(a.hermiteCoefficientMatrix,m,m)):u===i.length-2?(_=i[u],g=i[u+1],y=t.lastTangent,v=e.subtract(g,i[u-1],h),e.multiplyByScalar(v,.5,v),C=s.multiplyByVector(a.hermiteCoefficientMatrix,m,m)):(_=i[u-1],g=i[u],v=i[u+1],y=i[u+2],C=s.multiplyByVector(c.catmullRomCoefficientMatrix,m,m)),l=e.multiplyByScalar(_,C.x,l),e.multiplyByScalar(g,C.y,p),e.add(l,p,l),e.multiplyByScalar(v,C.z,p),e.add(l,p,l),e.multiplyByScalar(y,C.w,p),e.add(l,p,l)}}function c(t){t=r(t,r.EMPTY_OBJECT);var i=t.points,o=t.times,a=t.firstTangent,s=t.lastTangent;if(i.length>2&&(n(a)||(a=f,e.multiplyByScalar(i[1],2,a),e.subtract(a,i[2],a),e.subtract(a,i[0],a),e.multiplyByScalar(a,.5,a)),!n(s))){var l=i.length-1;s=m,e.multiplyByScalar(i[l-1],2,s),e.subtract(i[l],s,s),e.add(s,i[l-2],s),e.multiplyByScalar(s,.5,s)}this._times=o,this._points=i,this._firstTangent=e.clone(a),this._lastTangent=e.clone(s),this._evaluateFunction=u(this),this._lastTimeIndex=0}var d=new t,h=new e,p=new e,f=new e,m=new e;return o(c.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}}),c.catmullRomCoefficientMatrix=new s(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0),c.prototype.findTimeInterval=l.prototype.findTimeInterval,c.prototype.wrapTime=l.prototype.wrapTime,c.prototype.clampTime=l.prototype.clampTime,c.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)},c}),function(e,t){"function"==typeof define&&define.amd?define("ThirdParty/purify",t):e.DOMPurify=t()}(this,function(){"use strict";function e(e,t){for(var i=t.length;i--;)"string"==typeof t[i]&&(t[i]=t[i].toLowerCase()),e[t[i]]=!0;return e}function t(e){var t={},i=void 0;for(i in e)Object.prototype.hasOwnProperty.call(e,i)&&(t[i]=e[i]);return t}function i(e){if(Array.isArray(e)){for(var t=0,i=Array(e.length);t<e.length;t++)i[t]=e[t];return i}return Array.from(e)}function r(){var S=arguments.length>0&&void 0!==arguments[0]?arguments[0]:b(),T=function(e){return r(e)};if(T.version="1.0.8",T.removed=[],!S||!S.document||9!==S.document.nodeType)return T.isSupported=!1,T;var E=S.document,A=!1,w=!1,x=S.document,P=S.DocumentFragment,D=S.HTMLTemplateElement,I=S.Node,M=S.NodeFilter,R=S.NamedNodeMap,O=void 0===R?S.NamedNodeMap||S.MozNamedAttrMap:R,L=S.Text,N=S.Comment,F=S.DOMParser;if("function"==typeof D){var B=x.createElement("template");B.content&&B.content.ownerDocument&&(x=B.content.ownerDocument)}var z=x,k=z.implementation,V=z.createNodeIterator,U=z.getElementsByTagName,G=z.createDocumentFragment,H=E.importNode,W={};T.isSupported=k&&void 0!==k.createHTMLDocument&&9!==x.documentMode;var q=p,Y=f,j=m,X=_,Q=v,K=y,Z=g,J=null,$=e({},[].concat(i(n),i(o),i(a),i(s),i(l))),ee=null,te=e({},[].concat(i(u),i(c),i(d),i(h))),ie=null,re=null,ne=!0,oe=!0,ae=!1,se=!1,le=!1,ue=!1,ce=!1,de=!1,he=!1,pe=!1,fe=!1,me=!0,_e=!0,ge=!1,ve={},ye=e({},["audio","head","math","script","style","template","svg","video"]),Ce=e({},["audio","video","img","source","image"]),be=e({},["alt","class","for","id","label","name","pattern","placeholder","summary","title","value","style","xmlns"]),Se=null,Te=x.createElement("form"),Ee=function(r){"object"!==(void 0===r?"undefined":C(r))&&(r={}),J="ALLOWED_TAGS"in r?e({},r.ALLOWED_TAGS):$,ee="ALLOWED_ATTR"in r?e({},r.ALLOWED_ATTR):te,ie="FORBID_TAGS"in r?e({},r.FORBID_TAGS):{},re="FORBID_ATTR"in r?e({},r.FORBID_ATTR):{},ve="USE_PROFILES"in r&&r.USE_PROFILES,ne=!1!==r.ALLOW_ARIA_ATTR,oe=!1!==r.ALLOW_DATA_ATTR,ae=r.ALLOW_UNKNOWN_PROTOCOLS||!1,se=r.SAFE_FOR_JQUERY||!1,le=r.SAFE_FOR_TEMPLATES||!1,ue=r.WHOLE_DOCUMENT||!1,he=r.RETURN_DOM||!1,pe=r.RETURN_DOM_FRAGMENT||!1,fe=r.RETURN_DOM_IMPORT||!1,de=r.FORCE_BODY||!1,me=!1!==r.SANITIZE_DOM,_e=!1!==r.KEEP_CONTENT,ge=r.IN_PLACE||!1,Z=r.ALLOWED_URI_REGEXP||Z,le&&(oe=!1),pe&&(he=!0),ve&&(J=e({},[].concat(i(l))),ee=[],!0===ve.html&&(e(J,n),e(ee,u)),!0===ve.svg&&(e(J,o),e(ee,c),e(ee,h)),!0===ve.svgFilters&&(e(J,a),e(ee,c),e(ee,h)),!0===ve.mathMl&&(e(J,s),e(ee,d),e(ee,h))),r.ADD_TAGS&&(J===$&&(J=t(J)),e(J,r.ADD_TAGS)),r.ADD_ATTR&&(ee===te&&(ee=t(ee)),e(ee,r.ADD_ATTR)),r.ADD_URI_SAFE_ATTR&&e(be,r.ADD_URI_SAFE_ATTR),_e&&(J["#text"]=!0),ue&&e(J,["html","head","body"]),J.table&&e(J,["tbody"]),Object&&"freeze"in Object&&Object.freeze(r),Se=r},Ae=function(e){T.removed.push({element:e});try{e.parentNode.removeChild(e)}catch(t){e.outerHTML=""}},we=function(e,t){try{T.removed.push({attribute:t.getAttributeNode(e),from:t})}catch(e){T.removed.push({attribute:null,from:t})}t.removeAttribute(e)},xe=function(t){var i=void 0,r=void 0;if(de)t="<remove></remove>"+t;else{var n=t.match(/^[\s]+/);r=n&&n[0],r&&(t=t.slice(r.length))}if(A)try{i=(new F).parseFromString(t,"text/html")}catch(e){}if(w&&e(ie,["title"]),!i||!i.documentElement){i=k.createHTMLDocument("");var o=i,a=o.body;a.parentNode.removeChild(a.parentNode.firstElementChild),a.outerHTML=t}return r&&i.body.insertBefore(x.createTextNode(r),i.body.childNodes[0]||null),U.call(i,ue?"html":"body")[0]};T.isSupported&&(function(){try{xe('<svg><p><style><img src="</style><img src=x onerror=alert(1)//">').querySelector("svg img")&&(A=!0)}catch(e){}}(),function(){try{xe("<x/><title></title><img>").querySelector("title").textContent.match(/<\/title/)&&(w=!0)}catch(e){}}());var Pe=function(e){return V.call(e.ownerDocument||e,e,M.SHOW_ELEMENT|M.SHOW_COMMENT|M.SHOW_TEXT,function(){return M.FILTER_ACCEPT},!1)},De=function(e){return!(e instanceof L||e instanceof N)&&!("string"==typeof e.nodeName&&"string"==typeof e.textContent&&"function"==typeof e.removeChild&&e.attributes instanceof O&&"function"==typeof e.removeAttribute&&"function"==typeof e.setAttribute)},Ie=function(e){return"object"===(void 0===I?"undefined":C(I))?e instanceof I:e&&"object"===(void 0===e?"undefined":C(e))&&"number"==typeof e.nodeType&&"string"==typeof e.nodeName},Me=function(e,t,i){W[e]&&W[e].forEach(function(e){e.call(T,t,i,Se)})},Re=function(e){var t=void 0;if(Me("beforeSanitizeElements",e,null),De(e))return Ae(e),!0;var i=e.nodeName.toLowerCase();if(Me("uponSanitizeElement",e,{tagName:i,allowedTags:J}),!J[i]||ie[i]){if(_e&&!ye[i]&&"function"==typeof e.insertAdjacentHTML)try{e.insertAdjacentHTML("AfterEnd",e.innerHTML)}catch(e){}return Ae(e),!0}return!se||e.firstElementChild||e.content&&e.content.firstElementChild||!/</g.test(e.textContent)||(T.removed.push({element:e.cloneNode()}),e.innerHTML?e.innerHTML=e.innerHTML.replace(/</g,"<"):e.innerHTML=e.textContent.replace(/</g,"<")),le&&3===e.nodeType&&(t=e.textContent,t=t.replace(q," "),t=t.replace(Y," "),e.textContent!==t&&(T.removed.push({element:e.cloneNode()}),e.textContent=t)),Me("afterSanitizeElements",e,null),!1},Oe=function(e,t,i){if(me&&("id"===t||"name"===t)&&(i in x||i in Te))return!1;if(le&&(i=i.replace(q," "),i=i.replace(Y," ")),oe&&j.test(t));else if(ne&&X.test(t));else{if(!ee[t]||re[t])return!1;if(be[t]);else if(Z.test(i.replace(K,"")));else if("src"!==t&&"xlink:href"!==t||"script"===e||0!==i.indexOf("data:")||!Ce[e]){if(ae&&!Q.test(i.replace(K,"")));else if(i)return!1}else;}return!0},Le=function(e){var t=void 0,i=void 0,r=void 0,n=void 0,o=void 0;Me("beforeSanitizeAttributes",e,null);var a=e.attributes;if(a){var s={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ee};for(o=a.length;o--;){t=a[o];var l=t,u=l.name,c=l.namespaceURI;if(i=t.value.trim(),r=u.toLowerCase(),s.attrName=r,s.attrValue=i,s.keepAttr=!0,Me("uponSanitizeAttribute",e,s),i=s.attrValue,"name"===r&&"IMG"===e.nodeName&&a.id)n=a.id,a=Array.prototype.slice.apply(a),we("id",e),we(u,e),a.indexOf(n)>o&&e.setAttribute("id",n.value);else{if("INPUT"===e.nodeName&&"type"===r&&"file"===i&&(ee[r]||!re[r]))continue;"id"===u&&e.setAttribute(u,""),we(u,e)}if(s.keepAttr){var d=e.nodeName.toLowerCase();if(Oe(d,r,i))try{c?e.setAttributeNS(c,u,i):e.setAttribute(u,i),T.removed.pop()}catch(e){}}}Me("afterSanitizeAttributes",e,null)}},Ne=function e(t){var i=void 0,r=Pe(t);for(Me("beforeSanitizeShadowDOM",t,null);i=r.nextNode();)Me("uponSanitizeShadowNode",i,null),Re(i)||(i.content instanceof P&&e(i.content),Le(i));Me("afterSanitizeShadowDOM",t,null)};return T.sanitize=function(e,t){var i=void 0,r=void 0,n=void 0,o=void 0,a=void 0;if(e||(e="\x3c!--\x3e"),"string"!=typeof e&&!Ie(e)){if("function"!=typeof e.toString)throw new TypeError("toString is not a function");if("string"!=typeof(e=e.toString()))throw new TypeError("dirty is not a string, aborting")}if(!T.isSupported){if("object"===C(S.toStaticHTML)||"function"==typeof S.toStaticHTML){if("string"==typeof e)return S.toStaticHTML(e);if(Ie(e))return S.toStaticHTML(e.outerHTML)}return e}if(ce||Ee(t),T.removed=[],ge);else if(e instanceof I)i=xe("\x3c!--\x3e"),r=i.ownerDocument.importNode(e,!0),1===r.nodeType&&"BODY"===r.nodeName?i=r:i.appendChild(r);else{if(!he&&!ue&&-1===e.indexOf("<"))return e;if(!(i=xe(e)))return he?null:""}i&&de&&Ae(i.firstChild);for(var s=Pe(ge?e:i);n=s.nextNode();)3===n.nodeType&&n===o||Re(n)||(n.content instanceof P&&Ne(n.content),Le(n),o=n);if(ge)return e;if(he){if(pe)for(a=G.call(i.ownerDocument);i.firstChild;)a.appendChild(i.firstChild);else a=i;return fe&&(a=H.call(E,a,!0)),a}return ue?i.outerHTML:i.innerHTML},T.setConfig=function(e){Ee(e),ce=!0},T.clearConfig=function(){Se=null,ce=!1},T.isValidAttribute=function(e,t,i){Se||Ee({});var r=e.toLowerCase(),n=t.toLowerCase();return Oe(r,n,i)},T.addHook=function(e,t){"function"==typeof t&&(W[e]=W[e]||[],W[e].push(t))},T.removeHook=function(e){W[e]&&W[e].pop()},T.removeHooks=function(e){W[e]&&(W[e]=[])},T.removeAllHooks=function(){W={}},T}var n=["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"],o=["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","audio","canvas","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","video","view","vkern"],a=["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"],s=["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmuliscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mpspace","msqrt","mystyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover"],l=["#text"],u=["accept","action","align","alt","autocomplete","background","bgcolor","border","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","coords","crossorigin","datetime","default","dir","disabled","download","enctype","face","for","headers","height","hidden","high","href","hreflang","id","integrity","ismap","label","lang","list","loop","low","max","maxlength","media","method","min","multiple","name","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","type","usemap","valign","value","width","xmlns"],c=["accent-height","accumulate","additivive","alignment-baseline","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","fill","fill-opacity","fill-rule","filter","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","specularconstant","specularexponent","spreadmethod","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","tabindex","targetx","targety","transform","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"],d=["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"],h=["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"],p=/\{\{[\s\S]*|[\s\S]*\}\}/gm,f=/<%[\s\S]*|[\s\S]*%>/gm,m=/^data-[\-\w.\u00B7-\uFFFF]/,_=/^aria-[\-\w]+$/,g=/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i,v=/^(?:\w+script|data):/i,y=/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205f\u3000]/g,C="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(e){return typeof e}:function(e){return e&&"function"==typeof Symbol&&e.constructor===Symbol&&e!==Symbol.prototype?"symbol":typeof e},b=function(){return"undefined"==typeof window?null:window};return r()}),define("Core/Credit",["../ThirdParty/purify","./defaultValue","./defined","./defineProperties","./Check"],function(e,t,i,r,n){"use strict";function o(e,r){var n,o=e;i(s[o])?n=s[o]:(n=a++,s[o]=n),r=t(r,!1),this._id=n,this._html=e,this._showOnScreen=r,this._element=void 0}var a=0,s={};return r(o.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen}},element:{get:function(){if(!i(this._element)){var t=e.sanitize(this._html),r=document.createElement("div");r._creditId=this._id,r.style.display="inline",r.innerHTML=t;for(var n=r.querySelectorAll("a"),o=0;o<n.length;o++)n[o].setAttribute("target","_blank");this._element=r}return this._element}}}),o.equals=function(e,t){return e===t||i(e)&&i(t)&&e._id===t._id},o.prototype.equals=function(e){return o.equals(this,e)},o.getIonCredit=function(e){var t=i(e.collapsible)&&!e.collapsible,r=new o(e.html,t);return r._isIon=-1!==r.html.indexOf("ion-credit.png"),r},o.clone=function(e){if(i(e))return new o(e.html,e.showOnScreen)},o}),define("Core/getStringFromTypedArray",["./defaultValue","./defined","./DeveloperError","./RuntimeError"],function(e,t,i,r){"use strict";function n(t,i,r){return i=e(i,0),r=e(r,t.byteLength-i),t=t.subarray(i,i+r),n.decode(t)}function o(e,t,i){return t<=e&&e<=i}function a(e){for(var t=0,i=0,n=0,a=128,s=191,l=[],u=e.length,c=0;c<u;++c){var d=e[c];if(0===n){if(o(d,0,127)){l.push(d);continue}if(o(d,194,223)){n=1,t=31&d;continue}if(o(d,224,239)){224===d&&(a=160),237===d&&(s=159),n=2,t=15&d;continue}if(o(d,240,244)){240===d&&(a=144),244===d&&(s=143),n=3,t=7&d;continue}throw new r("String decoding failed.")}o(d,a,s)?(a=128,s=191,t=t<<6|63&d,++i===n&&(l.push(t),t=n=i=0)):(t=n=i=0,a=128,s=191,--c)}return l}return n.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)},n.decodeWithFromCharCode=function(e){for(var t="",i=a(e),r=i.length,n=0;n<r;++n){var o=i[n];o<=65535?t+=String.fromCharCode(o):(o-=65536,t+=String.fromCharCode(55296+(o>>10),56320+(1023&o)))}return t},"undefined"!=typeof TextDecoder?n.decode=n.decodeWithTextDecoder:n.decode=n.decodeWithFromCharCode,n}),define("Core/EllipsoidalOccluder",["./BoundingSphere","./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./Rectangle"],function(e,t,i,r,n,o,a){"use strict";function s(e,i){this._ellipsoid=e,this._cameraPosition=new t,this._cameraPositionInScaledSpace=new t,this._distanceToLimbInScaledSpaceSquared=0,n(i)&&(this.cameraPosition=i)}function l(e,i,r){var n=e.transformPositionToScaledSpace(i,f),o=t.magnitudeSquared(n),a=Math.sqrt(o),s=t.divideByScalar(n,a,m);o=Math.max(1,o),a=Math.max(1,a);var l=t.dot(s,r),u=t.magnitude(t.cross(s,r,s)),c=1/a;return 1/(l*c-u*(Math.sqrt(o-1)*c))}function u(e,i,r){if(!(i<=0||i===1/0||i!==i))return t.multiplyByScalar(e,i,r)}function c(e,i){return t.equals(i,t.ZERO)?i:(e.transformPositionToScaledSpace(i,_),t.normalize(_,_))}o(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){var i=this._ellipsoid,r=i.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),n=t.magnitudeSquared(r)-1;t.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=r,this._distanceToLimbInScaledSpaceSquared=n}}});var d=new t;s.prototype.isPointVisible=function(e){var t=this._ellipsoid,i=t.transformPositionToScaledSpace(e,d);return this.isScaledSpacePointVisible(i)},s.prototype.isScaledSpacePointVisible=function(e){var i=this._cameraPositionInScaledSpace,r=this._distanceToLimbInScaledSpaceSquared,n=t.subtract(e,i,d),o=-t.dot(n,i);return!(r<0?o>0:o>r&&o*o/t.magnitudeSquared(n)>r)},s.prototype.computeHorizonCullingPoint=function(e,i,r){n(r)||(r=new t);for(var o=this._ellipsoid,a=c(o,e),s=0,d=0,h=i.length;d<h;++d){var p=i[d],f=l(o,p,a);s=Math.max(s,f)}return u(a,s,r)};var h=new t;s.prototype.computeHorizonCullingPointFromVertices=function(e,i,o,a,s){n(s)||(s=new t),a=r(a,t.ZERO);for(var d=this._ellipsoid,p=c(d,e),f=0,m=0,_=i.length;m<_;m+=o){h.x=i[m]+a.x,h.y=i[m+1]+a.y,h.z=i[m+2]+a.z;var g=l(d,h,p);f=Math.max(f,g)}return u(p,f,s)};var p=[];s.prototype.computeHorizonCullingPointFromRectangle=function(i,r,n){var o=a.subsample(i,r,0,p),s=e.fromPoints(o);if(!(t.magnitude(s.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(s.center,o,n)};var f=new t,m=new t,_=new t;return s}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function i(e,i,r){var n=e+i;return t.sign(e)!==t.sign(i)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(i)))<r?0:n}var r={};return r.computeDiscriminant=function(e,t,i){return t*t-4*e*i},r.computeRealRoots=function(e,r,n){var o;if(0===e)return 0===r?[]:[-n/r];if(0===r){if(0===n)return[0,0];var a=Math.abs(n),s=Math.abs(e);if(a<s&&a/s<t.EPSILON14)return[0,0];if(a>s&&s/a<t.EPSILON14)return[];if((o=-n/e)<0)return[];var l=Math.sqrt(o);return[-l,l]}if(0===n)return o=-r/e,o<0?[o,0]:[0,o];var u=r*r,c=4*e*n,d=i(u,-c,t.EPSILON14);if(d<0)return[];var h=-.5*i(r,t.sign(r)*Math.sqrt(d),t.EPSILON14);return r>0?[h/e,n/h]:[n/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function i(e,t,i,r){var n,o,a=e,s=t/3,l=i/3,u=r,c=a*l,d=s*u,h=s*s,p=l*l,f=a*l-h,m=a*u-s*l,_=s*u-p,g=4*f*_-m*m;if(g<0){var v,y,C;h*d>=c*p?(v=a,y=f,C=-2*s*f+a*m):(v=u,y=_,C=-u*m+2*l*_);var b=C<0?-1:1,S=-b*Math.abs(v)*Math.sqrt(-g);o=-C+S;var T=o/2,E=T<0?-Math.pow(-T,1/3):Math.pow(T,1/3),A=o===S?-E:-y/E;return n=y<=0?E+A:-C/(E*E+A*A+y),h*d>=c*p?[(n-s)/a]:[-u/(n+l)]}var w=f,x=-2*s*f+a*m,P=_,D=-u*m+2*l*_,I=Math.sqrt(g),M=Math.sqrt(3)/2,R=Math.abs(Math.atan2(a*I,-x)/3);n=2*Math.sqrt(-w);var O=Math.cos(R);o=n*O;var L=n*(-O/2-M*Math.sin(R)),N=o+L>2*s?o-s:L-s,F=a,B=N/F;R=Math.abs(Math.atan2(u*I,-D)/3),n=2*Math.sqrt(-P),O=Math.cos(R),o=n*O,L=n*(-O/2-M*Math.sin(R));var z=-u,k=o+L<2*l?o+l:L+l,V=z/k,U=F*k,G=-N*k-F*z,H=N*z,W=(l*G-s*H)/(-s*G+l*U);return B<=W?B<=V?W<=V?[B,W,V]:[B,V,W]:[V,B,W]:B<=V?[W,B,V]:W<=V?[W,V,B]:[V,W,B]}var r={};return r.computeDiscriminant=function(e,t,i,r){var n=e*e,o=t*t,a=i*i;return 18*e*t*i*r+o*a-27*n*(r*r)-4*(e*a*i+o*t*r)},r.computeRealRoots=function(e,r,n,o){var a,s;if(0===e)return t.computeRealRoots(r,n,o);if(0===r){if(0===n){if(0===o)return[0,0,0];s=-o/e;var l=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3);return[l,l,l]}return 0===o?(a=t.computeRealRoots(e,0,n),0===a.Length?[0]:[a[0],0,a[1]]):i(e,0,n,o)}return 0===n?0===o?(s=-r/e,s<0?[s,0,0]:[0,0,s]):i(e,r,0,o):0===o?(a=t.computeRealRoots(e,r,n),0===a.length?[0]:a[1]<=0?[a[0],a[1],0]:a[0]>=0?[0,a[0],a[1]]:[a[0],0,a[1]]):i(e,r,n,o)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,i,r){"use strict";function n(t,n,o,a){var s=t*t,l=n-3*s/8,u=o-n*t/2+s*t/8,c=a-o*t/4+n*s/16-3*s*s/256,d=e.computeRealRoots(1,2*l,l*l-4*c,-u*u);if(d.length>0){var h=-t/4,p=d[d.length-1];if(Math.abs(p)<i.EPSILON14){var f=r.computeRealRoots(1,l,c);if(2===f.length){var m,_=f[0],g=f[1];if(_>=0&&g>=0){var v=Math.sqrt(_),y=Math.sqrt(g);return[h-y,h-v,h+v,h+y]}if(_>=0&&g<0)return m=Math.sqrt(_),[h-m,h+m];if(_<0&&g>=0)return m=Math.sqrt(g),[h-m,h+m]}return[]}if(p>0){var C=Math.sqrt(p),b=(l+p-u/C)/2,S=(l+p+u/C)/2,T=r.computeRealRoots(1,C,b),E=r.computeRealRoots(1,-C,S);return 0!==T.length?(T[0]+=h,T[1]+=h,0!==E.length?(E[0]+=h,E[1]+=h,T[1]<=E[0]?[T[0],T[1],E[0],E[1]]:E[1]<=T[0]?[E[0],E[1],T[0],T[1]]:T[0]>=E[0]&&T[1]<=E[1]?[E[0],T[0],T[1],E[1]]:E[0]>=T[0]&&E[1]<=T[1]?[T[0],E[0],E[1],T[1]]:T[0]>E[0]&&T[0]<E[1]?[E[0],T[0],E[1],T[1]]:[T[0],E[0],T[1],E[1]]):T):0!==E.length?(E[0]+=h,E[1]+=h,E):[]}}return[]}function o(t,n,o,a){var s=o*o,l=n*n,u=t*t,c=-2*n,d=o*t+l-4*a,h=u*a-o*n*t+s,p=e.computeRealRoots(1,c,d,h);if(p.length>0){var f,m,_=p[0],g=n-_,v=g*g,y=t/2,C=g/2,b=v-4*a,S=v+4*Math.abs(a),T=u-4*_,E=u+4*Math.abs(_);if(_<0||b*E<T*S){var A=Math.sqrt(T);f=A/2,m=0===A?0:(t*C-o)/A}else{var w=Math.sqrt(b);f=0===w?0:(t*C-o)/w,m=w/2}var x,P;0===y&&0===f?(x=0,P=0):i.sign(y)===i.sign(f)?(x=y+f,P=_/x):(P=y-f,x=_/P);var D,I;0===C&&0===m?(D=0,I=0):i.sign(C)===i.sign(m)?(D=C+m,I=a/D):(I=C-m,D=a/I);var M=r.computeRealRoots(1,x,D),R=r.computeRealRoots(1,P,I);if(0!==M.length)return 0!==R.length?M[1]<=R[0]?[M[0],M[1],R[0],R[1]]:R[1]<=M[0]?[R[0],R[1],M[0],M[1]]:M[0]>=R[0]&&M[1]<=R[1]?[R[0],M[0],M[1],R[1]]:R[0]>=M[0]&&R[1]<=M[1]?[M[0],R[0],R[1],M[1]]:M[0]>R[0]&&M[0]<R[1]?[R[0],M[0],R[1],M[1]]:[M[0],R[0],M[1],R[1]]:M;if(0!==R.length)return R}return[]}var a={};return a.computeDiscriminant=function(e,t,i,r,n){var o=e*e,a=o*e,s=t*t,l=s*t,u=i*i,c=u*i,d=r*r,h=d*r,p=n*n;return s*u*d-4*l*h-4*e*c*d+18*e*t*i*h-27*o*d*d+256*a*(p*n)+n*(18*l*i*r-4*s*c+16*e*u*u-80*e*t*u*r-6*e*s*d+144*o*i*d)+p*(144*e*s*i-27*s*s-128*o*u-192*o*t*r)},a.computeRealRoots=function(t,r,a,s,l){if(Math.abs(t)<i.EPSILON15)return e.computeRealRoots(r,a,s,l);var u=r/t,c=a/t,d=s/t,h=l/t,p=u<0?1:0;switch(p+=c<0?p+1:p,p+=d<0?p+1:p,p+=h<0?p+1:p){case 0:return n(u,c,d,h);case 1:case 2:return o(u,c,d,h);case 3:case 4:return n(u,c,d,h);case 5:return o(u,c,d,h);case 6:case 7:return n(u,c,d,h);case 8:return o(u,c,d,h);case 9:case 10:return n(u,c,d,h);case 11:return o(u,c,d,h);case 12:case 13:case 14:case 15:return n(u,c,d,h);default:return}},a}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,i,r){"use strict";function n(t,r){r=e.clone(i(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(i(t,e.ZERO)),this.direction=r}return n.clone=function(t,i){if(r(t))return r(i)?(i.origin=e.clone(t.origin),i.direction=e.clone(t.direction),i):new n(t.origin,t.direction)},n.getPoint=function(t,i,n){return r(n)||(n=new e),n=e.multiplyByScalar(t.direction,i,n),e.add(t.origin,n,n)},n}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t,i,r){var n=t*t-4*e*i;if(!(n<0)){if(n>0){var o=1/(2*e),a=Math.sqrt(n),s=(-t+a)*o,l=(-t-a)*o;return s<l?(r.root0=s,r.root1=l):(r.root0=l,r.root1=s),r}var u=-t/(2*e);if(0!==u)return r.root0=r.root1=u,r}}function h(t,i,n){r(n)||(n=new o);var a=t.origin,s=t.direction,l=i.center,u=i.radius*i.radius,c=e.subtract(a,l,v),h=e.dot(s,s),p=2*e.dot(s,c),f=e.magnitudeSquared(c)-u,m=d(h,p,f,S);if(r(m))return n.start=m.root0,n.stop=m.root1,n}function p(e,t,i){var r=e+t;return a.sign(e)!==a.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<i?0:r}function f(t,i,r,n,o){var c,d=n*n,h=o*o,f=(t[s.COLUMN1ROW1]-t[s.COLUMN2ROW2])*h,m=o*(n*p(t[s.COLUMN1ROW0],t[s.COLUMN0ROW1],a.EPSILON15)+i.y),_=t[s.COLUMN0ROW0]*d+t[s.COLUMN2ROW2]*h+n*i.x+r,g=h*p(t[s.COLUMN2ROW1],t[s.COLUMN1ROW2],a.EPSILON15),v=o*(n*p(t[s.COLUMN2ROW0],t[s.COLUMN0ROW2])+i.z),y=[];if(0===v&&0===g){if(c=l.computeRealRoots(f,m,_),0===c.length)return y;var C=c[0],b=Math.sqrt(Math.max(1-C*C,0));if(y.push(new e(n,o*C,o*-b)),y.push(new e(n,o*C,o*b)),2===c.length){var S=c[1],T=Math.sqrt(Math.max(1-S*S,0));y.push(new e(n,o*S,o*-T)),y.push(new e(n,o*S,o*T))}return y}var E=v*v,A=g*g,w=f*f,x=v*g,P=w+A,D=2*(m*f+x),I=2*_*f+m*m-A+E,M=2*(_*m-x),R=_*_-E;if(0===P&&0===D&&0===I&&0===M)return y;c=u.computeRealRoots(P,D,I,M,R);var O=c.length;if(0===O)return y;for(var L=0;L<O;++L){var N,F=c[L],B=F*F,z=Math.max(1-B,0),k=Math.sqrt(z);N=a.sign(f)===a.sign(_)?p(f*B+_,m*F,a.EPSILON12):a.sign(_)===a.sign(m*F)?p(f*B,m*F+_,a.EPSILON12):p(f*B+m*F,_,a.EPSILON12);var V=p(g*F,v,a.EPSILON15),U=N*V;U<0?y.push(new e(n,o*F,o*k)):U>0?y.push(new e(n,o*F,o*-k)):0!==k?(y.push(new e(n,o*F,o*-k)),y.push(new e(n,o*F,o*k)),++L):y.push(new e(n,o*F,o*k))}return y}var m={};m.rayPlane=function(t,i,n){r(n)||(n=new e);var o=t.origin,s=t.direction,l=i.normal,u=e.dot(l,s);if(!(Math.abs(u)<a.EPSILON15)){var c=(-i.distance-e.dot(l,o))/u;if(!(c<0))return n=e.multiplyByScalar(s,c,n),e.add(o,n,n)}};var _=new e,g=new e,v=new e,y=new e,C=new e;m.rayTriangleParametric=function(t,r,n,o,s){s=i(s,!1);var l,u,c,d,h,p=t.origin,f=t.direction,m=e.subtract(n,r,_),b=e.subtract(o,r,g),S=e.cross(f,b,v),T=e.dot(m,S);if(s){if(T<a.EPSILON6)return;if(l=e.subtract(p,r,y),(c=e.dot(l,S))<0||c>T)return;if(u=e.cross(l,m,C),(d=e.dot(f,u))<0||c+d>T)return;h=e.dot(b,u)/T}else{if(Math.abs(T)<a.EPSILON6)return;var E=1/T;if(l=e.subtract(p,r,y),(c=e.dot(l,S)*E)<0||c>1)return;if(u=e.cross(l,m,C),(d=e.dot(f,u)*E)<0||c+d>1)return;h=e.dot(b,u)*E}return h},m.rayTriangle=function(t,i,n,o,a,s){var l=m.rayTriangleParametric(t,i,n,o,a);if(r(l)&&!(l<0))return r(s)||(s=new e),e.multiplyByScalar(t.direction,l,s),e.add(t.origin,s,s)};var b=new c;m.lineSegmentTriangle=function(t,i,n,o,a,s,l){var u=b;e.clone(t,u.origin),e.subtract(i,t,u.direction),e.normalize(u.direction,u.direction);var c=m.rayTriangleParametric(u,n,o,a,s);if(!(!r(c)||c<0||c>e.distance(t,i)))return r(l)||(l=new e),e.multiplyByScalar(u.direction,c,l),e.add(u.origin,l,l)};var S={root0:0,root1:0};m.raySphere=function(e,t,i){if(i=h(e,t,i),r(i)&&!(i.stop<0))return i.start=Math.max(i.start,0),i};var T=new c;m.lineSegmentSphere=function(t,i,n,o){var a=T;e.clone(t,a.origin);var s=e.subtract(i,t,a.direction),l=e.magnitude(s);if(e.normalize(s,s),o=h(a,n,o),!(!r(o)||o.stop<0||o.start>l))return o.start=Math.max(o.start,0),o.stop=Math.min(o.stop,l),o};var E=new e,A=new e;m.rayEllipsoid=function(t,i){var r,n,a,s,l,u=i.oneOverRadii,c=e.multiplyComponents(u,t.origin,E),d=e.multiplyComponents(u,t.direction,A),h=e.magnitudeSquared(c),p=e.dot(c,d);if(h>1){if(p>=0)return;var f=p*p;if(r=h-1,n=e.magnitudeSquared(d),a=n*r,f<a)return;if(f>a){s=p*p-a,l=-p+Math.sqrt(s);var m=l/n,_=r/l;return m<_?new o(m,_):{start:_,stop:m}}var g=Math.sqrt(r/n);return new o(g,g)}return h<1?(r=h-1,n=e.magnitudeSquared(d),a=n*r,s=p*p-a,l=-p+Math.sqrt(s),new o(0,l/n)):p<0?(n=e.magnitudeSquared(d),new o(0,-p/n)):void 0};var w=new e,x=new e,P=new e,D=new e,I=new e,M=new s,R=new s,O=new s,L=new s,N=new s,F=new s,B=new s,z=new e,k=new e,V=new t;m.grazingAltitudeLocation=function(t,i){var n=t.origin,o=t.direction;if(!e.equals(n,e.ZERO)){var l=i.geodeticSurfaceNormal(n,w);if(e.dot(o,l)>=0)return n}var u=r(this.rayEllipsoid(t,i)),c=i.transformPositionToScaledSpace(o,w),d=e.normalize(c,c),h=e.mostOrthogonalAxis(c,D),p=e.normalize(e.cross(h,d,x),x),m=e.normalize(e.cross(d,p,P),P),_=M;_[0]=d.x,_[1]=d.y,_[2]=d.z,_[3]=p.x,_[4]=p.y,_[5]=p.z,_[6]=m.x,_[7]=m.y,_[8]=m.z;var g=s.transpose(_,R),v=s.fromScale(i.radii,O),y=s.fromScale(i.oneOverRadii,L),C=N;C[0]=0,C[1]=-o.z,C[2]=o.y,C[3]=o.z,C[4]=0,C[5]=-o.x,C[6]=-o.y,C[7]=o.x,C[8]=0;var b,S,T=s.multiply(s.multiply(g,y,F),C,F),E=s.multiply(s.multiply(T,v,B),_,B),A=s.multiplyByVector(T,n,I),U=f(E,e.negate(A,w),0,0,1),G=U.length;if(G>0){for(var H=e.clone(e.ZERO,k),W=Number.NEGATIVE_INFINITY,q=0;q<G;++q){b=s.multiplyByVector(v,s.multiplyByVector(_,U[q],z),z);var Y=e.normalize(e.subtract(b,n,D),D),j=e.dot(Y,o);j>W&&(W=j,H=e.clone(b,H))}var X=i.cartesianToCartographic(H,V);return W=a.clamp(W,0,1),S=e.magnitude(e.subtract(H,n,D))*Math.sqrt(1-W*W),S=u?-S:S,X.height=S,i.cartographicToCartesian(X,new e)}};var U=new e;return m.lineSegmentPlane=function(t,i,n,o){r(o)||(o=new e) -;var s=e.subtract(i,t,U),l=n.normal,u=e.dot(l,s);if(!(Math.abs(u)<a.EPSILON6)){var c=e.dot(l,t),d=-(n.distance+c)/u;if(!(d<0||d>1))return e.multiplyByScalar(s,d,o),e.add(t,o,o),o}},m.trianglePlaneIntersection=function(t,i,r,n){var o=n.normal,a=n.distance,s=e.dot(o,t)+a<0,l=e.dot(o,i)+a<0,u=e.dot(o,r)+a<0,c=0;c+=s?1:0,c+=l?1:0,c+=u?1:0;var d,h;if(1!==c&&2!==c||(d=new e,h=new e),1===c){if(s)return m.lineSegmentPlane(t,i,n,d),m.lineSegmentPlane(t,r,n,h),{positions:[t,i,r,d,h],indices:[0,3,4,1,2,4,1,4,3]};if(l)return m.lineSegmentPlane(i,r,n,d),m.lineSegmentPlane(i,t,n,h),{positions:[t,i,r,d,h],indices:[1,3,4,2,0,4,2,4,3]};if(u)return m.lineSegmentPlane(r,t,n,d),m.lineSegmentPlane(r,i,n,h),{positions:[t,i,r,d,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===c){if(!s)return m.lineSegmentPlane(i,t,n,d),m.lineSegmentPlane(r,t,n,h),{positions:[t,i,r,d,h],indices:[1,2,4,1,4,3,0,3,4]};if(!l)return m.lineSegmentPlane(r,i,n,d),m.lineSegmentPlane(t,i,n,h),{positions:[t,i,r,d,h],indices:[2,0,4,2,4,3,1,3,4]};if(!u)return m.lineSegmentPlane(t,r,n,d),m.lineSegmentPlane(i,r,n,h),{positions:[t,i,r,d,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,i,r,n,o,a){"use strict";function s(t,i){this.normal=e.clone(t),this.distance=i}s.fromPointNormal=function(t,r,n){var o=-e.dot(r,t);return i(n)?(e.clone(r,n.normal),n.distance=o,n):new s(r,o)};var l=new e;s.fromCartesian4=function(t,r){var n=e.fromCartesian4(t,l),o=t.w;return i(r)?(e.clone(n,r.normal),r.distance=o,r):new s(n,o)},s.getPointDistance=function(t,i){return e.dot(t.normal,i)+t.distance};var u=new e;s.projectPointOntoPlane=function(t,r,n){i(n)||(n=new e);var o=s.getPointDistance(t,r),a=e.multiplyByScalar(t.normal,o,u);return e.subtract(r,a,n)};var c=new e;return s.transform=function(t,i,r){return a.multiplyByPointAsVector(i,t.normal,l),e.normalize(l,l),e.multiplyByScalar(t.normal,-t.distance,c),a.multiplyByPoint(i,c,c),s.fromPointNormal(c,l,r)},s.clone=function(t,r){return i(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new s(t.normal,t.distance)},s.equals=function(t,i){return t.distance===i.distance&&e.equals(t.normal,i.normal)},s.ORIGIN_XY_PLANE=n(new s(e.UNIT_Z,0)),s.ORIGIN_YZ_PLANE=n(new s(e.UNIT_X,0)),s.ORIGIN_ZX_PLANE=n(new s(e.UNIT_Y,0)),s}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e,t){t=o(t,u.WGS84),e=t.scaleToGeodeticSurface(e);var r=f.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=i.fromCartesian4(d.getColumn(r,0,_)),this._yAxis=i.fromCartesian4(d.getColumn(r,1,_));var n=i.fromCartesian4(d.getColumn(r,2,_));this._plane=h.fromPointNormal(e,n)}var _=new r;s(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var g=new e;m.fromPoints=function(t,i){return new m(e.fromPoints(t,g).center,i)};var v=new p,y=new i;m.prototype.projectPointOntoPlane=function(e,r){var n=v;n.origin=e,i.normalize(e,n.direction);var o=c.rayPlane(n,this._plane,y);if(a(o)||(i.negate(n.direction,n.direction),o=c.rayPlane(n,this._plane,y)),a(o)){var s=i.subtract(o,this._origin,o),l=i.dot(this._xAxis,s),u=i.dot(this._yAxis,s);return a(r)?(r.x=l,r.y=u,r):new t(l,u)}},m.prototype.projectPointsOntoPlane=function(e,t){a(t)||(t=[]);for(var i=0,r=e.length,n=0;n<r;n++){var o=this.projectPointOntoPlane(e[n],t[i]);a(o)&&(t[i]=o,i++)}return t.length=i,t},m.prototype.projectPointToNearestOnPlane=function(e,r){a(r)||(r=new t);var n=v;n.origin=e,i.clone(this._plane.normal,n.direction);var o=c.rayPlane(n,this._plane,y);a(o)||(i.negate(n.direction,n.direction),o=c.rayPlane(n,this._plane,y));var s=i.subtract(o,this._origin,o),l=i.dot(this._xAxis,s),u=i.dot(this._yAxis,s);return r.x=l,r.y=u,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){a(t)||(t=[]);var i=e.length;t.length=i;for(var r=0;r<i;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var C=new i;return m.prototype.projectPointOntoEllipsoid=function(e,t){a(t)||(t=new i);var r=this._ellipsoid,n=this._origin,o=this._xAxis,s=this._yAxis,l=C;return i.multiplyByScalar(o,e.x,l),t=i.add(n,l,t),i.multiplyByScalar(s,e.y,l),i.add(t,l,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var i=e.length;a(t)?t.length=i:t=new Array(i);for(var r=0;r<i;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e,t){this.center=i.clone(o(e,i.ZERO)),this.halfAxes=p.clone(o(t,p.ZERO))}function g(e,t,r,n,o,s,l,u){a(u)||(u=new _);var c=u.halfAxes;p.setColumn(c,0,e.xAxis,c),p.setColumn(c,1,e.yAxis,c),p.setColumn(c,2,e.zAxis,c);var d=w;d.x=(t+r)/2,d.y=(n+o)/2,d.z=(s+l)/2;var h=x;h.x=(r-t)/2,h.y=(o-n)/2,h.z=(l-s)/2;var f=u.center;return d=p.multiplyByVector(c,d,d),i.add(e.origin,d,f),p.multiplyByScale(c,h,c),u}_.packedLength=i.packedLength+p.packedLength,_.pack=function(e,t,r){return r=o(r,0),i.pack(e.center,t,r),p.pack(e.halfAxes,t,r+i.packedLength),t},_.unpack=function(e,t,r){return t=o(t,0),a(r)||(r=new _),i.unpack(e,t,r.center),p.unpack(e,t+i.packedLength,r.halfAxes),r};var v=new i,y=new i,C=new i,b=new i,S=new i,T=new i,E=new p,A={unitary:new p,diagonal:new p};_.fromPoints=function(e,t){if(a(t)||(t=new _),!a(e)||0===e.length)return t.halfAxes=p.ZERO,t.center=i.ZERO,t;var r,n=e.length,o=i.clone(e[0],v);for(r=1;r<n;r++)i.add(o,e[r],o);var s=1/n;i.multiplyByScalar(o,s,o);var l,u=0,c=0,d=0,h=0,f=0,m=0;for(r=0;r<n;r++)l=i.subtract(e[r],o,y),u+=l.x*l.x,c+=l.x*l.y,d+=l.x*l.z,h+=l.y*l.y,f+=l.y*l.z,m+=l.z*l.z;u*=s,c*=s,d*=s,h*=s,f*=s,m*=s;var g=E;g[0]=u,g[1]=c,g[2]=d,g[3]=c,g[4]=h,g[5]=f,g[6]=d,g[7]=f,g[8]=m;var w=p.computeEigenDecomposition(g,A),x=p.clone(w.unitary,t.halfAxes),P=p.getColumn(x,0,b),D=p.getColumn(x,1,S),I=p.getColumn(x,2,T),M=-Number.MAX_VALUE,R=-Number.MAX_VALUE,O=-Number.MAX_VALUE,L=Number.MAX_VALUE,N=Number.MAX_VALUE,F=Number.MAX_VALUE;for(r=0;r<n;r++)l=e[r],M=Math.max(i.dot(P,l),M),R=Math.max(i.dot(D,l),R),O=Math.max(i.dot(I,l),O),L=Math.min(i.dot(P,l),L),N=Math.min(i.dot(D,l),N),F=Math.min(i.dot(I,l),F);P=i.multiplyByScalar(P,.5*(L+M),P),D=i.multiplyByScalar(D,.5*(N+R),D),I=i.multiplyByScalar(I,.5*(F+O),I);var B=i.add(P,D,t.center);i.add(B,I,B);var z=C;return z.x=M-L,z.y=R-N,z.z=O-F,i.multiplyByScalar(z,.5,z),p.multiplyByScale(t.halfAxes,z,t.halfAxes),t};var w=new i,x=new i,P=new r,D=new i,I=[new r,new r,new r,new r,new r,new r,new r,new r],M=[new i,new i,new i,new i,new i,new i,new i,new i],R=[new t,new t,new t,new t,new t,new t,new t,new t];_.fromRectangle=function(e,t,i,r,n){t=o(t,0),i=o(i,0),r=o(r,l.WGS84);var a=m.center(e,P),s=r.cartographicToCartesian(a,D),c=new u(s,r),d=c.plane,h=I[0],p=I[1],_=I[2],v=I[3],y=I[4],C=I[5],b=I[6],S=I[7],T=a.longitude,E=e.south<0&&e.north>0?0:a.latitude;b.latitude=C.latitude=y.latitude=e.south,S.latitude=v.latitude=E,h.latitude=p.latitude=_.latitude=e.north,b.longitude=S.longitude=h.longitude=e.west,C.longitude=p.longitude=T,y.longitude=v.longitude=_.longitude=e.east,_.height=p.height=h.height=S.height=b.height=C.height=y.height=v.height=i,r.cartographicArrayToCartesianArray(I,M),c.projectPointsToNearestOnPlane(M,R);var A=Math.min(R[6].x,R[7].x,R[0].x),w=Math.max(R[2].x,R[3].x,R[4].x),x=Math.min(R[4].y,R[5].y,R[6].y),O=Math.max(R[0].y,R[1].y,R[2].y);return _.height=h.height=y.height=b.height=t,r.cartographicArrayToCartesianArray(I,M),g(c,A,w,x,O,Math.min(f.getPointDistance(d,M[0]),f.getPointDistance(d,M[2]),f.getPointDistance(d,M[4]),f.getPointDistance(d,M[6])),i,n)},_.clone=function(e,t){if(a(e))return a(t)?(i.clone(e.center,t.center),p.clone(e.halfAxes,t.halfAxes),t):new _(e.center,e.halfAxes)},_.intersectPlane=function(e,t){var r=e.center,n=t.normal,o=e.halfAxes,a=n.x,s=n.y,l=n.z,u=Math.abs(a*o[p.COLUMN0ROW0]+s*o[p.COLUMN0ROW1]+l*o[p.COLUMN0ROW2])+Math.abs(a*o[p.COLUMN1ROW0]+s*o[p.COLUMN1ROW1]+l*o[p.COLUMN1ROW2])+Math.abs(a*o[p.COLUMN2ROW0]+s*o[p.COLUMN2ROW1]+l*o[p.COLUMN2ROW2]),d=i.dot(n,r)+t.distance;return d<=-u?c.OUTSIDE:d>=u?c.INSIDE:c.INTERSECTING};var O=new i,L=new i,N=new i,F=new i;_.distanceSquaredTo=function(e,t){var r=i.subtract(t,e.center,w),n=e.halfAxes,o=p.getColumn(n,0,O),a=p.getColumn(n,1,L),s=p.getColumn(n,2,N),l=i.magnitude(o),u=i.magnitude(a),c=i.magnitude(s);i.normalize(o,o),i.normalize(a,a),i.normalize(s,s);var d=F;d.x=i.dot(r,o),d.y=i.dot(r,a),d.z=i.dot(r,s);var h,f=0;return d.x<-l?(h=d.x+l,f+=h*h):d.x>l&&(h=d.x-l,f+=h*h),d.y<-u?(h=d.y+u,f+=h*h):d.y>u&&(h=d.y-u,f+=h*h),d.z<-c?(h=d.z+c,f+=h*h):d.z>c&&(h=d.z-c,f+=h*h),f};var B=new i,z=new i;_.computePlaneDistances=function(e,t,r,n){a(n)||(n=new d);var o=Number.POSITIVE_INFINITY,s=Number.NEGATIVE_INFINITY,l=e.center,u=e.halfAxes,c=p.getColumn(u,0,O),h=p.getColumn(u,1,L),f=p.getColumn(u,2,N),m=i.add(c,h,B);i.add(m,f,m),i.add(m,l,m);var _=i.subtract(m,t,z),g=i.dot(r,_);return o=Math.min(g,o),s=Math.max(g,s),i.add(l,c,m),i.add(m,h,m),i.subtract(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.add(l,c,m),i.subtract(m,h,m),i.add(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.add(l,c,m),i.subtract(m,h,m),i.subtract(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.subtract(l,c,m),i.add(m,h,m),i.add(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.subtract(l,c,m),i.add(m,h,m),i.subtract(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.subtract(l,c,m),i.subtract(m,h,m),i.add(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),i.subtract(l,c,m),i.subtract(m,h,m),i.subtract(m,f,m),i.subtract(m,t,_),g=i.dot(r,_),o=Math.min(g,o),s=Math.max(g,s),n.start=o,n.stop=s,n};var k=new e;return _.isOccluded=function(t,i){var r=e.fromOrientedBoundingBox(t,k);return!i.isBoundingSphereVisible(r)},_.prototype.intersectPlane=function(e){return _.intersectPlane(this,e)},_.prototype.distanceSquaredTo=function(e){return _.distanceSquaredTo(this,e)},_.prototype.computePlaneDistances=function(e,t,i){return _.computePlaneDistances(this,e,t,i)},_.prototype.isOccluded=function(e){return _.isOccluded(this,e)},_.equals=function(e,t){return e===t||a(e)&&a(t)&&i.equals(e.center,t.center)&&p.equals(e.halfAxes,t.halfAxes)},_.prototype.clone=function(e){return _.clone(this,e)},_.prototype.equals=function(e){return _.equals(this,e)},_}),define("Core/TerrainQuantization",["./freezeObject"],function(e){"use strict";return e({NONE:0,BITS12:1})}),define("Core/TerrainEncoding",["./AttributeCompression","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./Math","./Matrix4","./TerrainQuantization"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e,t,r,a,u,h){var _,g,v,y=l.NONE;if(o(e)&&o(t)&&o(r)&&o(a)){var C=e.minimum,b=e.maximum,S=i.subtract(b,C,d),T=r-t;y=Math.max(i.maximumComponent(S),T)<m-1?l.BITS12:l.NONE,_=e.center,g=s.inverseTransformation(a,new s);var E=i.negate(C,c);s.multiply(s.fromTranslation(E,p),g,g);var A=c;A.x=1/S.x,A.y=1/S.y,A.z=1/S.z,s.multiply(s.fromScale(A,p),g,g),v=s.clone(a),s.setTranslation(v,i.ZERO,v),a=s.clone(a,new s);var w=s.fromTranslation(C,p),x=s.fromScale(S,f),P=s.multiply(w,x,p);s.multiply(a,P,a),s.multiply(v,P,v)}this.quantization=y,this.minimumHeight=t,this.maximumHeight=r,this.center=_,this.toScaledENU=g,this.fromScaledENU=a,this.matrix=v,this.hasVertexNormals=u,this.hasWebMercatorT=n(h,!1)}var c=new i,d=new i,h=new t,p=new s,f=new s,m=Math.pow(2,12);u.prototype.encode=function(r,n,o,u,d,p,f){var m=u.x,_=u.y;if(this.quantization===l.BITS12){o=s.multiplyByPoint(this.toScaledENU,o,c),o.x=a.clamp(o.x,0,1),o.y=a.clamp(o.y,0,1),o.z=a.clamp(o.z,0,1);var g=this.maximumHeight-this.minimumHeight,v=a.clamp((d-this.minimumHeight)/g,0,1);t.fromElements(o.x,o.y,h);var y=e.compressTextureCoordinates(h);t.fromElements(o.z,v,h);var C=e.compressTextureCoordinates(h);t.fromElements(m,_,h);var b=e.compressTextureCoordinates(h);if(r[n++]=y,r[n++]=C,r[n++]=b,this.hasWebMercatorT){t.fromElements(f,0,h);var S=e.compressTextureCoordinates(h);r[n++]=S}}else i.subtract(o,this.center,c),r[n++]=c.x,r[n++]=c.y,r[n++]=c.z,r[n++]=d,r[n++]=m,r[n++]=_,this.hasWebMercatorT&&(r[n++]=f);return this.hasVertexNormals&&(r[n++]=e.octPackFloat(p)),n},u.prototype.decodePosition=function(t,r,n){if(o(n)||(n=new i),r*=this.getStride(),this.quantization===l.BITS12){var a=e.decompressTextureCoordinates(t[r],h);n.x=a.x,n.y=a.y;var u=e.decompressTextureCoordinates(t[r+1],h);return n.z=u.x,s.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=t[r],n.y=t[r+1],n.z=t[r+2],i.add(n,this.center,n)},u.prototype.decodeTextureCoordinates=function(i,r,n){return o(n)||(n=new t),r*=this.getStride(),this.quantization===l.BITS12?e.decompressTextureCoordinates(i[r+2],n):t.fromElements(i[r+4],i[r+5],n)},u.prototype.decodeHeight=function(t,i){if(i*=this.getStride(),this.quantization===l.BITS12){return e.decompressTextureCoordinates(t[i+1],h).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[i+3]},u.prototype.decodeWebMercatorT=function(t,i){return i*=this.getStride(),this.quantization===l.BITS12?e.decompressTextureCoordinates(t[i+3],h).x:t[i+6]},u.prototype.getOctEncodedNormal=function(e,i,r){i=(i+1)*this.getStride()-1;var n=e[i]/256,o=Math.floor(n),a=256*(n-o);return t.fromElements(o,a,r)},u.prototype.getStride=function(){var e;switch(this.quantization){case l.BITS12:e=3;break;default:e=6}return this.hasWebMercatorT&&++e,this.hasVertexNormals&&++e,e};var _={position3DAndHeight:0,textureCoordAndEncodedNormals:1},g={compressed0:0,compressed1:1};return u.prototype.getAttributes=function(e){var t,i=r.FLOAT,n=r.getSizeInBytes(i);if(this.quantization===l.NONE){var o=2;return this.hasWebMercatorT&&++o,this.hasVertexNormals&&++o,t=(4+o)*n,[{index:_.position3DAndHeight,vertexBuffer:e,componentDatatype:i,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:t},{index:_.textureCoordAndEncodedNormals,vertexBuffer:e,componentDatatype:i,componentsPerAttribute:o,offsetInBytes:4*n,strideInBytes:t}]}var a=3,s=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++a,this.hasWebMercatorT&&this.hasVertexNormals?(++s,t=(a+s)*n,[{index:g.compressed0,vertexBuffer:e,componentDatatype:i,componentsPerAttribute:a,offsetInBytes:0,strideInBytes:t},{index:g.compressed1,vertexBuffer:e,componentDatatype:i,componentsPerAttribute:s,offsetInBytes:a*n,strideInBytes:t}]):[{index:g.compressed0,vertexBuffer:e,componentDatatype:i,componentsPerAttribute:a}]},u.prototype.getAttributeLocations=function(){return this.quantization===l.NONE?_:g},u.clone=function(e,t){return o(t)||(t=new u),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=i.clone(e.center),t.toScaledENU=s.clone(e.toScaledENU),t.fromScaledENU=s.clone(e.fromScaledENU),t.matrix=s.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t},u}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){this._ellipsoid=i(e,a.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return n(l.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),l.mercatorAngleToGeodeticLatitude=function(e){return s.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},l.geodeticLatitudeToMercatorAngle=function(e){e>l.MaximumLatitude?e=l.MaximumLatitude:e<-l.MaximumLatitude&&(e=-l.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},l.MaximumLatitude=l.mercatorAngleToGeodeticLatitude(Math.PI),l.prototype.project=function(t,i){var n=this._semimajorAxis,o=t.longitude*n,a=l.geodeticLatitudeToMercatorAngle(t.latitude)*n,s=t.height;return r(i)?(i.x=o,i.y=a,i.z=s,i):new e(o,a,s)},l.prototype.unproject=function(e,i){var n=this._oneOverSemimajorAxis,o=e.x*n,a=l.mercatorAngleToGeodeticLatitude(e.y*n),s=e.z;return r(i)?(i.longitude=o,i.latitude=a,i.height=s,i):new t(o,a,s)},l}),define("Core/HeightmapTessellator",["./AxisAlignedBoundingBox","./BoundingSphere","./Cartesian2","./Cartesian3","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidalOccluder","./freezeObject","./Math","./Matrix4","./OrientedBoundingBox","./Rectangle","./TerrainEncoding","./Transforms","./WebMercatorProjection"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";var g={};g.DEFAULT_STRUCTURE=u({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var v=new r,y=new d,C=new r,b=new r;return g.computeVertices=function(a){var u,S,T,E,A=Math.cos,w=Math.sin,x=Math.sqrt,P=Math.atan,D=Math.exp,I=c.PI_OVER_TWO,M=c.toRadians,R=a.heightmap,O=a.width,L=a.height,N=a.skirtHeight,F=n(a.isGeographic,!0),B=n(a.ellipsoid,s.WGS84),z=1/B.maximumRadius,k=a.nativeRectangle,V=a.rectangle;o(V)?(u=V.west,S=V.south,T=V.east,E=V.north):F?(u=M(k.west),S=M(k.south),T=M(k.east),E=M(k.north)):(u=k.west*z,S=I-2*P(D(-k.south*z)),T=k.east*z,E=I-2*P(D(-k.north*z)));var U=a.relativeToCenter,G=o(U);U=G?U:r.ZERO;var H=n(a.exaggeration,1),W=n(a.includeWebMercatorT,!1),q=n(a.structure,g.DEFAULT_STRUCTURE),Y=n(q.heightScale,g.DEFAULT_STRUCTURE.heightScale),j=n(q.heightOffset,g.DEFAULT_STRUCTURE.heightOffset),X=n(q.elementsPerHeight,g.DEFAULT_STRUCTURE.elementsPerHeight),Q=n(q.stride,g.DEFAULT_STRUCTURE.stride),K=n(q.elementMultiplier,g.DEFAULT_STRUCTURE.elementMultiplier),Z=n(q.isBigEndian,g.DEFAULT_STRUCTURE.isBigEndian),J=p.computeWidth(k),$=p.computeHeight(k),ee=J/(O-1),te=$/(L-1);F||(J*=z,$*=z);var ie,re,ne=B.radiiSquared,oe=ne.x,ae=ne.y,se=ne.z,le=65536,ue=-65536,ce=m.eastNorthUpToFixedFrame(U,B),de=d.inverseTransformation(ce,y);W&&(ie=_.geodeticLatitudeToMercatorAngle(S),re=1/(_.geodeticLatitudeToMercatorAngle(E)-ie));var he=C;he.x=Number.POSITIVE_INFINITY,he.y=Number.POSITIVE_INFINITY,he.z=Number.POSITIVE_INFINITY;var pe=b;pe.x=Number.NEGATIVE_INFINITY,pe.y=Number.NEGATIVE_INFINITY,pe.z=Number.NEGATIVE_INFINITY;var fe=Number.POSITIVE_INFINITY,me=O+(N>0?2:0),_e=L+(N>0?2:0),ge=me*_e,ve=new Array(ge),ye=new Array(ge),Ce=new Array(ge),be=W?new Array(ge):[],Se=0,Te=L,Ee=0,Ae=O;N>0&&(--Se,++Te,--Ee,++Ae);for(var we=0,xe=Se;xe<Te;++xe){var Pe=xe;Pe<0&&(Pe=0),Pe>=L&&(Pe=L-1);var De=k.north-te*Pe;De=F?M(De):I-2*P(D(-De*z));var Ie=A(De),Me=w(De),Re=se*Me,Oe=(De-S)/(E-S);Oe=c.clamp(Oe,0,1);var Le;W&&(Le=(_.geodeticLatitudeToMercatorAngle(De)-ie)*re);for(var Ne=Ee;Ne<Ae;++Ne){var Fe=Ne;Fe<0&&(Fe=0),Fe>=O&&(Fe=O-1);var Be=k.west+ee*Fe;F?Be=M(Be):Be*=z;var ze,ke=Pe*(O*Q)+Fe*Q;if(1===X)ze=R[ke];else{ze=0;var Ve;if(Z)for(Ve=0;Ve<X;++Ve)ze=ze*K+R[ke+Ve];else for(Ve=X-1;Ve>=0;--Ve)ze=ze*K+R[ke+Ve]}ze=(ze*Y+j)*H;var Ue=(Be-u)/(T-u);if(Ue=c.clamp(Ue,0,1),Ce[we]=new i(Ue,Oe),ue=Math.max(ue,ze),le=Math.min(le,ze),Ne!==Fe||xe!==Pe){Ne<0?Be-=1e-5*J:Be+=1e-5*J,xe<0?De+=1e-5*$:De-=1e-5*$,Ie=A(De),Me=w(De),Re=se*Me,ze-=N}var Ge=Ie*A(Be),He=Ie*w(Be),We=oe*Ge,qe=ae*He,Ye=x(We*Ge+qe*He+Re*Me),je=1/Ye,Xe=We*je,Qe=qe*je,Ke=Re*je,Ze=new r;Ze.x=Xe+Ge*ze,Ze.y=Qe+He*ze,Ze.z=Ke+Me*ze,ve[we]=Ze,ye[we]=ze,W&&(be[we]=Le),we++,d.multiplyByPoint(de,Ze,v),r.minimumByComponent(v,he,he),r.maximumByComponent(v,pe,pe),fe=Math.min(fe,ze)}}var Je,$e=t.fromPoints(ve);o(V)&&V.width<c.PI_OVER_TWO+c.EPSILON5&&(Je=h.fromRectangle(V,le,ue,B));var et;if(G){et=new l(B).computeHorizonCullingPoint(U,ve)}for(var tt=new e(he,pe,U),it=new f(tt,fe,ue,ce,!1,W),rt=new Float32Array(ge*it.getStride()),nt=0,ot=0;ot<ge;++ot)nt=it.encode(rt,nt,ve[ot],Ce[ot],ye[ot],void 0,be[ot]);var at,st,lt,ut;if(N>0){ut=[],st=[];for(var ct=0;ct<O;++ct)ut.push(me+1+ct),st.push(me*(_e-1)-2-ct);at=[],lt=[];for(var dt=0;dt<L;++dt)lt.push((dt+1)*me+O),at.push((L-dt)*me+1)}else{ut=[],st=[];for(var ht=0;ht<O;++ht)ut.push(ht),st.push(O*L-1-ht);at=[],lt=[];for(var pt=0;pt<L;++pt)lt.push((pt+1)*O-1),at.push((L-pt-1)*O)}return{vertices:rt,maximumHeight:ue,minimumHeight:le,encoding:it,boundingSphere3D:$e,orientedBoundingBox:Je,occludeePointInScaledSpace:et,westIndicesSouthToNorth:at,southIndicesEastToWest:st,eastIndicesNorthToSouth:lt,northIndicesWestToEast:ut}},g}),define("Core/destroyObject",["./defaultValue","./DeveloperError"],function(e,t){"use strict";function i(){return!0}function r(t,r){function n(){}r=e(r,"This object was destroyed, i.e., destroy() was called.");for(var o in t)"function"==typeof t[o]&&(t[o]=n);t.isDestroyed=i}return r}),define("Core/TaskProcessor",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./destroyObject","./DeveloperError","./Event","./FeatureDetection","./getAbsoluteUri","./isCrossOriginUrl","./Resource","./RuntimeError","require"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(){if(!r(y._canTransferArrayBuffer)){var t=new Worker(m("Workers/transferTypedArrayTest.js"));t.postMessage=i(t.webkitPostMessage,t.postMessage);var n=new Int8Array([99]);try{t.postMessage({array:n},[n.buffer])}catch(e){return y._canTransferArrayBuffer=!1,y._canTransferArrayBuffer}var o=e.defer();t.onmessage=function(e){var i=e.data.array,n=r(i)&&99===i[0];o.resolve(n),t.terminate(),y._canTransferArrayBuffer=n},y._canTransferArrayBuffer=o.promise}return y._canTransferArrayBuffer}function f(e,t){--e._activeTasks;var i=t.id;if(r(i)){var n=e._deferreds,a=n[i];if(r(t.error)){var s=t.error;"RuntimeError"===s.name?(s=new d(t.error.message),s.stack=t.error.stack):"DeveloperError"===s.name&&(s=new o(t.error.message),s.stack=t.error.stack),b.raiseEvent(s),a.reject(s)}else b.raiseEvent(),a.resolve(t.result);delete n[i]}}function m(e){var i=t(e);if(u(i)){var r,n='importScripts("'+i+'");';try{r=new Blob([n],{type:"application/javascript"})}catch(e){var o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,a=new o;a.append(n),r=a.getBlob("application/javascript")}i=(window.URL||window.webkitURL).createObjectURL(r)}return i}function _(){return r(C)||(C=m("Workers/cesiumWorkerBootstrapper.js")),C}function g(e){var n=new Worker(_());n.postMessage=i(n.webkitPostMessage,n.postMessage);var o={loaderConfig:{},workerModule:y._workerModulePrefix+e._workerName};return r(y._loaderConfig)?o.loaderConfig=y._loaderConfig:(r(define.amd)&&!define.amd.toUrlUndefined&&r(h.toUrl)||(o.loaderConfig.paths={Workers:t("Workers")}),o.loaderConfig.baseUrl=t.getCesiumBaseUrl().url),n.postMessage(o),n.onmessage=function(t){f(e,t.data)},n}function v(i,n){var o={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!s.supportsWebAssembly()){if(!r(n.fallbackModulePath))throw new d("This browser does not support Web Assembly, and no backup module was provided for "+i._workerName);return o.modulePath=t(n.fallbackModulePath),e.resolve(o)}return o.modulePath=t(n.modulePath),o.wasmBinaryFile=t(n.wasmBinaryFile),c.fetchArrayBuffer({url:o.wasmBinaryFile}).then(function(e){return o.wasmBinary=e,o})}function y(e,t){this._workerName=e,this._maximumActiveTasks=i(t,5),this._activeTasks=0,this._deferreds={},this._nextID=0}var C,b=new a,S=[];return y.prototype.scheduleTask=function(t,i){if(r(this._worker)||(this._worker=g(this)),!(this._activeTasks>=this._maximumActiveTasks)){++this._activeTasks;var n=this;return e(p(),function(o){r(i)?o||(i.length=0):i=S;var a=n._nextID++,s=e.defer();return n._deferreds[a]=s,n._worker.postMessage({id:a,parameters:t,canTransferArrayBuffer:o},i),s.promise})}},y.prototype.initWebAssemblyModule=function(t){r(this._worker)||(this._worker=g(this));var i=e.defer(),n=this,o=this._worker;return v(this,t).then(function(t){return e(p(),function(e){var a,s=t.wasmBinary;r(s)&&e&&(a=[s]),o.onmessage=function(e){o.onmessage=function(e){f(n,e.data)},i.resolve(e.data)},o.postMessage({webAssemblyConfig:t},a)})}),i},y.prototype.isDestroyed=function(){return!1},y.prototype.destroy=function(){return r(this._worker)&&this._worker.terminate(),n(this)},y.taskCompletedEvent=b,y._defaultWorkerModulePrefix="Workers/",y._workerModulePrefix=y._defaultWorkerModulePrefix,y._loaderConfig=void 0,y._canTransferArrayBuffer=void 0,y}),define("Core/TerrainMesh",["./Cartesian3","./defaultValue"],function(e,t){"use strict";function i(e,i,r,n,o,a,s,l,u,c,d,h,p,f,m){this.center=e,this.vertices=i,this.stride=t(l,6),this.indices=r,this.minimumHeight=n,this.maximumHeight=o,this.boundingSphere3D=a,this.occludeePointInScaledSpace=s,this.orientedBoundingBox=u,this.encoding=c,this.exaggeration=d,this.westIndicesSouthToNorth=h,this.southIndicesEastToWest=p,this.eastIndicesNorthToSouth=f,this.northIndicesWestToEast=m}return i}),define("Core/TerrainProvider",["./defined","./defineProperties","./DeveloperError","./Math"],function(e,t,i,r){"use strict";function n(){i.throwInstantiationError()}t(n.prototype,{errorEvent:{get:i.throwInstantiationError},credit:{get:i.throwInstantiationError},tilingScheme:{get:i.throwInstantiationError},ready:{get:i.throwInstantiationError},readyPromise:{get:i.throwInstantiationError},hasWaterMask:{get:i.throwInstantiationError},hasVertexNormals:{get:i.throwInstantiationError},availability:{get:i.throwInstantiationError}});var o=[];return n.getRegularGridIndices=function(t,i){var r=o[t];e(r)||(o[t]=r=[]);var n=r[i];if(!e(n)){n=r[i]=new Uint16Array((t-1)*(i-1)*6);for(var a=0,s=0,l=0;l<i-1;++l){for(var u=0;u<t-1;++u){var c=a,d=c+t,h=d+1,p=c+1;n[s++]=c,n[s++]=d,n[s++]=p,n[s++]=p,n[s++]=d,n[s++]=h,++a}++a}}return n},n.heightmapTerrainQuality=.25,n.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,i){return 2*e.maximumRadius*Math.PI*n.heightmapTerrainQuality/(t*i)},n.prototype.requestTileGeometry=i.throwInstantiationError,n.prototype.getLevelMaximumGeometricError=i.throwInstantiationError,n.prototype.getTileDataAvailable=i.throwInstantiationError,n.prototype.loadTileDataAvailability=i.throwInstantiationError,n}),define("Core/HeightmapTerrainData",["../ThirdParty/when","./BoundingSphere","./Cartesian3","./defaultValue","./defined","./defineProperties","./DeveloperError","./GeographicProjection","./HeightmapTessellator","./OrientedBoundingBox","./Math","./Rectangle","./TaskProcessor","./TerrainEncoding","./TerrainMesh","./TerrainProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=r(e.childTileMask,15);var t=l.DEFAULT_STRUCTURE,i=e.structure;n(i)?i!==t&&(i.heightScale=r(i.heightScale,t.heightScale),i.heightOffset=r(i.heightOffset,t.heightOffset),i.elementsPerHeight=r(i.elementsPerHeight,t.elementsPerHeight),i.stride=r(i.stride,t.stride),i.elementMultiplier=r(i.elementMultiplier,t.elementMultiplier),i.isBigEndian=r(i.isBigEndian,t.isBigEndian)):i=t,this._structure=i,this._createdByUpsampling=r(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0}function g(e,t,i,r,n,o,a,s,l,u){var c=(l-o.west)*(a-1)/(o.east-o.west),d=(u-o.south)*(s-1)/(o.north-o.south),h=0|c,p=h+1;p>=a&&(p=a-1,h=a-2);var f=0|d,m=f+1;m>=s&&(m=s-1,f=s-2);var _=c-h,g=d-f;return f=s-1-f,m=s-1-m,y(_,g,C(e,t,i,r,n,f*a+h),C(e,t,i,r,n,f*a+p),C(e,t,i,r,n,m*a+h),C(e,t,i,r,n,m*a+p))}function v(e,t,i,r,n,o,a,s,l,u,c){var d=(l-o.west)*(a-1)/(o.east-o.west),h=(u-o.south)*(s-1)/(o.north-o.south);n>0&&(d+=1,h+=1,a+=2,s+=2);var p=n>0?a-1:a,f=0|d,m=f+1;m>=p&&(m=a-1,f=a-2);var _=n>0?s-1:s,g=0|h,v=g+1;v>=_&&(v=s-1,g=s-2);var C=d-f,b=h-g;return g=s-1-g,v=s-1-v,y(C,b,(t.decodeHeight(e,g*a+f)/c-i)/r,(t.decodeHeight(e,g*a+m)/c-i)/r,(t.decodeHeight(e,v*a+f)/c-i)/r,(t.decodeHeight(e,v*a+m)/c-i)/r)}function y(e,t,i,r,n,o){return t<e?i+e*(r-i)+t*(o-r):i+e*(o-n)+t*(n-i)}function C(e,t,i,r,n,o){o*=r;var a,s=0;if(n)for(a=0;a<t;++a)s=s*i+e[o+a];else for(a=t-1;a>=0;--a)s=s*i+e[o+a];return s}function b(e,t,i,r,n,o,a,s){a*=n;var l;if(o)for(l=0;l<t-1;++l)e[a+l]=s/r|0,s-=e[a+l]*r,r/=i;else for(l=t-1;l>0;--l)e[a+l]=s/r|0,s-=e[a+l]*r,r/=i;e[a+l]=s}o(_.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var S=new h("createVerticesFromHeightmap");return _.prototype.createMesh=function(o,a,l,c,h){var _=o.ellipsoid,g=o.tileXYToNativeRectangle(a,l,c),v=o.tileXYToRectangle(a,l,c);h=r(h,1);var y=_.cartographicToCartesian(d.center(v)),C=this._structure,b=m.getEstimatedLevelZeroGeometricErrorForAHeightmap(_,this._width,o.getNumberOfXTilesAtLevel(0)),T=b/(1<<c);this._skirtHeight=Math.min(4*T,1e3);var E=S.scheduleTask({heightmap:this._buffer,structure:C,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:g,rectangle:v,relativeToCenter:y,ellipsoid:_,skirtHeight:this._skirtHeight,isGeographic:o.projection instanceof s,exaggeration:h});if(n(E)){var A=this;return e(E,function(e){return A._mesh=new f(y,new Float32Array(e.vertices),m.getRegularGridIndices(e.gridWidth,e.gridHeight),e.minimumHeight,e.maximumHeight,t.clone(e.boundingSphere3D),i.clone(e.occludeePointInScaledSpace),e.numberOfAttributes,u.clone(e.orientedBoundingBox),p.clone(e.encoding),h,e.westIndicesSouthToNorth,e.southIndicesEastToWest,e.eastIndicesNorthToSouth,e.northIndicesWestToEast),A._buffer=void 0,A._mesh})}},_.prototype._createMeshSync=function(e,t,i,n,o){var a=e.ellipsoid,u=e.tileXYToNativeRectangle(t,i,n),c=e.tileXYToRectangle(t,i,n);o=r(o,1);var h=a.cartographicToCartesian(d.center(c)),p=this._structure,_=m.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,e.getNumberOfXTilesAtLevel(0)),g=_/(1<<n);this._skirtHeight=Math.min(4*g,1e3);var v=l.computeVertices({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:c,relativeToCenter:h,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:e.projection instanceof s,exaggeration:o});this._buffer=void 0;var y=this._width,C=this._height;return this._skirtHeight>0&&(y+=2,C+=2),new f(h,v.vertices,m.getRegularGridIndices(y,C),v.minimumHeight,v.maximumHeight,v.boundingSphere3D,v.occludeePointInScaledSpace,v.encoding.getStride(),v.orientedBoundingBox,v.encoding,o,v.westIndicesSouthToNorth,v.southIndicesEastToWest,v.eastIndicesNorthToSouth,v.northIndicesWestToEast)},_.prototype.interpolateHeight=function(e,t,i){var r,o=this._width,a=this._height,s=this._structure,l=s.stride,u=s.elementsPerHeight,c=s.elementMultiplier,d=s.isBigEndian,h=s.heightOffset,p=s.heightScale;if(n(this._mesh)){r=v(this._mesh.vertices,this._mesh.encoding,h,p,this._skirtHeight,e,o,a,t,i,this._mesh.exaggeration)}else r=g(this._buffer,u,c,l,d,e,o,a,t,i),r=r*p+h;return r},_.prototype.upsample=function(e,t,i,r,o,a,s){var l=this._mesh;if(n(l)){for(var u=this._width,d=this._height,h=this._structure,p=this._skirtHeight,f=h.stride,m=new this._bufferType(u*d*f),g=l.vertices,y=l.encoding,C=e.tileXYToRectangle(t,i,r),S=e.tileXYToRectangle(o,a,s),T=h.heightOffset,E=h.heightScale,A=l.exaggeration,w=h.elementsPerHeight,x=h.elementMultiplier,P=h.isBigEndian,D=Math.pow(x,w-1),I=0;I<d;++I)for(var M=c.lerp(S.north,S.south,I/(d-1)),R=0;R<u;++R){var O=c.lerp(S.west,S.east,R/(u-1)),L=v(g,y,T,E,p,C,u,d,O,M,A);L=L<h.lowestEncodedHeight?h.lowestEncodedHeight:L,L=L>h.highestEncodedHeight?h.highestEncodedHeight:L,b(m,w,x,D,f,P,I*u+R,L)}return new _({buffer:m,width:u,height:d,childTileMask:0,structure:this._structure,createdByUpsampling:!0})}},_.prototype.isChildAvailable=function(e,t,i,r){var n=2;return i!==2*e&&++n,r!==2*t&&(n-=2), -0!=(this._childTileMask&1<<n)},_.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling},_}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,i,r,n){"use strict";var o={UNSIGNED_BYTE:n.UNSIGNED_BYTE,UNSIGNED_SHORT:n.UNSIGNED_SHORT,UNSIGNED_INT:n.UNSIGNED_INT};return o.getSizeInBytes=function(e){switch(e){case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},o.fromSizeInBytes=function(e){switch(e){case 2:return o.UNSIGNED_SHORT;case 4:return o.UNSIGNED_INT;case 1:return o.UNSIGNED_BYTE}},o.validate=function(t){return e(t)&&(t===o.UNSIGNED_BYTE||t===o.UNSIGNED_SHORT||t===o.UNSIGNED_INT)},o.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},o.createTypedArrayFromArrayBuffer=function(e,t,i,n){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,i,n):new Uint16Array(t,i,n)},i(o)}),define("Core/Intersections2D",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError"],function(e,t,i,r,n){"use strict";var o={};return o.clipTriangleAtAxisAlignedThreshold=function(e,t,i,n,o,a){r(a)?a.length=0:a=[];var s,l,u;t?(s=i<e,l=n<e,u=o<e):(s=i>e,l=n>e,u=o>e);var c,d,h,p,f,m,_=s+l+u;return 1===_?s?(c=(e-i)/(n-i),d=(e-i)/(o-i),a.push(1),a.push(2),1!==d&&(a.push(-1),a.push(0),a.push(2),a.push(d)),1!==c&&(a.push(-1),a.push(0),a.push(1),a.push(c))):l?(h=(e-n)/(o-n),p=(e-n)/(i-n),a.push(2),a.push(0),1!==p&&(a.push(-1),a.push(1),a.push(0),a.push(p)),1!==h&&(a.push(-1),a.push(1),a.push(2),a.push(h))):u&&(f=(e-o)/(i-o),m=(e-o)/(n-o),a.push(0),a.push(1),1!==m&&(a.push(-1),a.push(2),a.push(1),a.push(m)),1!==f&&(a.push(-1),a.push(2),a.push(0),a.push(f))):2===_?s||i===e?l||n===e?u||o===e||(d=(e-i)/(o-i),h=(e-n)/(o-n),a.push(2),a.push(-1),a.push(0),a.push(2),a.push(d),a.push(-1),a.push(1),a.push(2),a.push(h)):(m=(e-o)/(n-o),c=(e-i)/(n-i),a.push(1),a.push(-1),a.push(2),a.push(1),a.push(m),a.push(-1),a.push(0),a.push(1),a.push(c)):(p=(e-n)/(i-n),f=(e-o)/(i-o),a.push(0),a.push(-1),a.push(1),a.push(0),a.push(p),a.push(-1),a.push(2),a.push(0),a.push(f)):3!==_&&(a.push(0),a.push(1),a.push(2)),a},o.computeBarycentricCoordinates=function(e,i,n,o,a,s,l,u,c){var d=n-l,h=l-a,p=s-u,f=o-u,m=1/(p*d+h*f),_=i-u,g=e-l,v=(p*g+h*_)*m,y=(-f*g+d*_)*m,C=1-v-y;return r(c)?(c.x=v,c.y=y,c.z=C,c):new t(v,y,C)},o.computeLineSegmentLineSegmentIntersection=function(t,i,n,o,a,s,l,u,c){var d=(l-a)*(i-s)-(u-s)*(t-a),h=(n-t)*(i-s)-(o-i)*(t-a),p=(u-s)*(n-t)-(l-a)*(o-i);if(0!==p){var f=d/p,m=h/p;return f>=0&&f<=1&&m>=0&&m<=1?(r(c)||(c=new e),c.x=t+f*(n-t),c.y=i+f*(o-i),c):void 0}},o}),define("Core/QuantizedMeshTerrainData",["../ThirdParty/when","./BoundingSphere","./Cartesian2","./Cartesian3","./defaultValue","./defined","./defineProperties","./DeveloperError","./IndexDatatype","./Intersections2D","./Math","./OrientedBoundingBox","./TaskProcessor","./TerrainEncoding","./TerrainMesh"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){function t(e,t){return a[e]-a[t]}function i(e,t){return o[e]-o[t]}this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;var r=this._quantizedVertices.length/3,o=this._uValues=this._quantizedVertices.subarray(0,r),a=this._vValues=this._quantizedVertices.subarray(r,2*r);this._heightValues=this._quantizedVertices.subarray(2*r,3*r),this._westIndices=_(e.westIndices,t,r),this._southIndices=_(e.southIndices,i,r),this._eastIndices=_(e.eastIndices,t,r),this._northIndices=_(e.northIndices,i,r),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=n(e.childTileMask,15),this._createdByUpsampling=n(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}function _(e,t,i){C.length=e.length;for(var r=!1,n=0,o=e.length;n<o;++n)C[n]=e[n],r=r||n>0&&t(e[n-1],e[n])>0;return r?(C.sort(t),l.createTypedArray(i,C)):e}function g(e,t,i,r,n,o,a,s){var l=Math.min(i,n,a),u=Math.max(i,n,a),c=Math.min(r,o,s),d=Math.max(r,o,s);return e>=l&&e<=u&&t>=c&&t<=d}function v(e,t,i){for(var r=e._mesh,n=r.vertices,o=r.encoding,a=r.indices,s=0,l=a.length;s<l;s+=3){var c=a[s],d=a[s+1],h=a[s+2],p=o.decodeTextureCoordinates(n,c,A),f=o.decodeTextureCoordinates(n,d,w),m=o.decodeTextureCoordinates(n,h,x);if(g(t,i,p.x,p.y,f.x,f.y,m.x,m.y)){var _=u.computeBarycentricCoordinates(t,i,p.x,p.y,f.x,f.y,m.x,m.y,E);if(_.x>=-1e-15&&_.y>=-1e-15&&_.z>=-1e-15){var v=o.decodeHeight(n,c),y=o.decodeHeight(n,d),C=o.decodeHeight(n,h);return _.x*v+_.y*y+_.z*C}}}}function y(e,t,i){for(var r=e._uValues,n=e._vValues,o=e._heightValues,a=e._indices,s=0,l=a.length;s<l;s+=3){var d=a[s],h=a[s+1],p=a[s+2],f=r[d],m=r[h],_=r[p],v=n[d],y=n[h],C=n[p];if(g(t,i,f,v,m,y,_,C)){var b=u.computeBarycentricCoordinates(t,i,f,v,m,y,_,C,E);if(b.x>=-1e-15&&b.y>=-1e-15&&b.z>=-1e-15){var S=b.x*o[d]+b.y*o[h]+b.z*o[p];return c.lerp(e._minimumHeight,e._maximumHeight,S/T)}}}}a(m.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return o(this._mesh)}}});var C=[],b=new h("createVerticesFromQuantizedTerrainMesh");m.prototype.createMesh=function(i,a,s,u,c){var h=i.ellipsoid,m=i.tileXYToRectangle(a,s,u);c=n(c,1);var _=b.scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:m,relativeToCenter:this._boundingSphere.center,ellipsoid:h,exaggeration:c});if(o(_)){var g=this;return e(_,function(e){var i=g._quantizedVertices.length/3;i+=g._westIndices.length+g._southIndices.length+g._eastIndices.length+g._northIndices.length;var o=l.createTypedArray(i,e.indices),a=new Float32Array(e.vertices),s=e.center,u=e.minimumHeight,h=e.maximumHeight,m=n(t.clone(e.boundingSphere),g._boundingSphere),_=n(d.clone(e.orientedBoundingBox),g._orientedBoundingBox),v=r.clone(g._horizonOcclusionPoint),y=e.vertexStride,C=p.clone(e.encoding);return g._skirtIndex=e.skirtIndex,g._vertexCountWithoutSkirts=g._quantizedVertices.length/3,g._mesh=new f(s,a,o,u,h,m,v,y,_,C,c,e.westIndicesSouthToNorth,e.southIndicesEastToWest,e.eastIndicesNorthToSouth,e.northIndicesWestToEast),g._quantizedVertices=void 0,g._encodedNormals=void 0,g._indices=void 0,g._uValues=void 0,g._vValues=void 0,g._heightValues=void 0,g._westIndices=void 0,g._southIndices=void 0,g._eastIndices=void 0,g._northIndices=void 0,g._mesh})}};var S=new h("upsampleQuantizedTerrainMesh");m.prototype.upsample=function(i,n,a,s,u,c,h){var p=this._mesh;if(o(this._mesh)){var f=2*n!==u,_=2*a===c,g=i.ellipsoid,v=i.tileXYToRectangle(u,c,h),y=S.scheduleTask({vertices:p.vertices,vertexCountWithoutSkirts:this._vertexCountWithoutSkirts,indices:p.indices,skirtIndex:this._skirtIndex,encoding:p.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:f,isNorthChild:_,childRectangle:v,ellipsoid:g,exaggeration:p.exaggeration});if(o(y)){var C=Math.min(this._westSkirtHeight,this._eastSkirtHeight);C=Math.min(C,this._southSkirtHeight),C=Math.min(C,this._northSkirtHeight);var b=f?.5*C:this._westSkirtHeight,T=_?.5*C:this._southSkirtHeight,E=f?this._eastSkirtHeight:.5*C,A=_?this._northSkirtHeight:.5*C,w=this._credits;return e(y).then(function(e){var i,n=new Uint16Array(e.vertices),a=l.createTypedArray(n.length/3,e.indices);return o(e.encodedNormals)&&(i=new Uint8Array(e.encodedNormals)),new m({quantizedVertices:n,indices:a,encodedNormals:i,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere:t.clone(e.boundingSphere),orientedBoundingBox:d.clone(e.orientedBoundingBox),horizonOcclusionPoint:r.clone(e.horizonOcclusionPoint),westIndices:e.westIndices,southIndices:e.southIndices,eastIndices:e.eastIndices,northIndices:e.northIndices,westSkirtHeight:b,southSkirtHeight:T,eastSkirtHeight:E,northSkirtHeight:A,childTileMask:0,credits:w,createdByUpsampling:!0})})}}};var T=32767,E=new r;m.prototype.interpolateHeight=function(e,t,i){var r=c.clamp((t-e.west)/e.width,0,1);r*=T;var n=c.clamp((i-e.south)/e.height,0,1);return n*=T,o(this._mesh)?v(this,r,n):y(this,r,n)};var A=new i,w=new i,x=new i;return m.prototype.isChildAvailable=function(e,t,i,r){var n=2;return i!==2*e&&++n,r!==2*t&&(n-=2),0!=(this._childTileMask&1<<n)},m.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling},m}),define("Core/TileAvailability",["./binarySearch","./Cartographic","./defined","./defineProperties","./DeveloperError","./Rectangle"],function(e,t,i,r,n,o){"use strict";function a(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}function s(e,t,i,r){for(var n=r.length,o=0;o<n;++o){var a=r[o];if(a.x===t&&a.y===i&&a.level===e)return!0}return!1}function l(e,t,i,r,n){this.tilingScheme=e,this.parent=t,this.level=i,this.x=r,this.y=n,this.extent=e.tileXYToRectangle(r,n,i),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}function u(e,t,i,r,n){this.level=e,this.west=t,this.south=i,this.east=r,this.north=n}function c(e,t){var i=Math.max(e.west,t.west),r=Math.max(e.south,t.south),n=Math.min(e.east,t.east);return r<Math.min(e.north,t.north)&&i<n}function d(t,i,r){for(;i.level<t;)if(p(i.nw.extent,r))i=i.nw;else if(p(i.ne.extent,r))i=i.ne;else if(p(i.sw.extent,r))i=i.sw;else{if(!p(i.se.extent,r))break;i=i.se}if(0===i.rectangles.length||i.rectangles[i.rectangles.length-1].level<=r.level)i.rectangles.push(r);else{var n=e(i.rectangles,r.level,h);n<=0&&(n=~n),i.rectangles.splice(n,0,r)}}function h(e,t){return e.level-t}function p(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function f(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function m(e,t,i){for(var r=0,n=!1;!n;){var o=t._nw&&f(t._nw.extent,i),a=t._ne&&f(t._ne.extent,i),s=t._sw&&f(t._sw.extent,i),l=t._se&&f(t._se.extent,i);if(o+a+s+l>1){o&&(r=Math.max(r,m(t,t._nw,i))),a&&(r=Math.max(r,m(t,t._ne,i))),s&&(r=Math.max(r,m(t,t._sw,i))),l&&(r=Math.max(r,m(t,t._se,i)));break}o?t=t._nw:a?t=t._ne:s?t=t._sw:l?t=t._se:n=!0}for(;t!==e;){for(var u=t.rectangles,c=u.length-1;c>=0&&u[c].level>r;--c){var d=u[c];f(d,i)&&(r=d.level)}t=t.parent}return r}function _(e,t,i){if(t){var r,n=!1;for(r=0;r<i.length;++r)n=n||c(t.extent,i[r]);if(n){var o=t.rectangles;for(r=0;r<o.length;++r){var a=o[r];e[a.level]||(e[a.level]=i),e[a.level]=g(e[a.level],a)}_(e,t._nw,i),_(e,t._ne,i),_(e,t._sw,i),_(e,t._se,i)}}}function g(e,t){for(var i=[],r=0;r<e.length;++r){var n=e[r];c(n,t)?(n.west<t.west&&i.push(new o(n.west,n.south,t.west,n.north)),n.east>t.east&&i.push(new o(t.east,n.south,n.east,n.north)),n.south<t.south&&i.push(new o(Math.max(t.west,n.west),n.south,Math.min(t.east,n.east),t.south)),n.north>t.north&&i.push(new o(Math.max(t.west,n.west),t.north,Math.min(t.east,n.east),n.north))):i.push(n)}return i}var v=new o;a.prototype.addAvailableTileRange=function(e,t,i,r,n){var o=this._tilingScheme,a=this._rootNodes;if(0===e)for(var h=i;h<=n;++h)for(var p=t;p<=r;++p)s(e,p,h,a)||a.push(new l(o,void 0,0,p,h));o.tileXYToRectangle(t,i,e,v);var f=v.west,m=v.north;o.tileXYToRectangle(r,n,e,v);for(var _=v.east,g=v.south,y=new u(e,f,g,_,m),C=0;C<a.length;++C){var b=a[C];c(b.extent,y)&&d(this._maximumLevel,b,y)}},a.prototype.computeMaximumLevelAtPosition=function(e){for(var t,r=0;r<this._rootNodes.length;++r){var n=this._rootNodes[r];if(f(n.extent,e)){t=n;break}}return i(t)?m(void 0,t,e):-1};var y=[],C=[],b=new o,S=new o;a.prototype.computeBestAvailableLevelOverRectangle=function(e){var t=y;t.length=0,e.east<e.west?(t.push(o.fromRadians(-Math.PI,e.south,e.east,e.north,b)),t.push(o.fromRadians(e.west,e.south,Math.PI,e.north,S))):t.push(e);var r=C;r.length=0;var n;for(n=0;n<this._rootNodes.length;++n)_(r,this._rootNodes[n],t);for(n=r.length-1;n>=0;--n)if(i(r[n])&&0===r[n].length)return n;return 0};var T=new t;return a.prototype.isTileAvailable=function(e,t,i){var r=this._tilingScheme.tileXYToRectangle(t,i,e,v);return o.center(r,T),this.computeMaximumLevelAtPosition(T)>=e},a.prototype.computeChildMaskForTile=function(e,t,i){var r=e+1;if(r>=this._maximumLevel)return 0;var n=0;return n|=this.isTileAvailable(r,2*t,2*i+1)?1:0,n|=this.isTileAvailable(r,2*t+1,2*i+1)?2:0,n|=this.isTileAvailable(r,2*t,2*i)?4:0,n|=this.isTileAvailable(r,2*t+1,2*i)?8:0},r(l.prototype,{nw:{get:function(){return this._nw||(this._nw=new l(this.tilingScheme,this,this.level+1,2*this.x,2*this.y)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new l(this.tilingScheme,this,this.level+1,2*this.x+1,2*this.y)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new l(this.tilingScheme,this,this.level+1,2*this.x,2*this.y+1)),this._sw}},se:{get:function(){return this._se||(this._se=new l(this.tilingScheme,this,this.level+1,2*this.x+1,2*this.y+1)),this._se}}}),a}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var i,r=t.name,n=t.message;i=e(r)&&e(n)?r+": "+n:t.toString();var o=t.stack;return e(o)&&(i+="\n"+o),i}return t}),define("Core/TileProviderError",["./defaultValue","./defined","./formatError"],function(e,t,i){"use strict";function r(t,i,r,n,o,a,s){this.provider=t,this.message=i,this.x=r,this.y=n,this.level=o,this.timesRetried=e(a,0),this.retry=!1,this.error=s}return r.handleError=function(e,n,o,a,s,l,u,c,d){var h=e;return t(e)?(h.provider=n,h.message=a,h.x=s,h.y=l,h.level=u,h.retry=!1,h.error=d,++h.timesRetried):h=new r(n,a,s,l,u,0,d),o.numberOfListeners>0?o.raiseEvent(h):console.log('An error occurred in "'+n.constructor.name+'": '+i(a)),h.retry&&t(c)&&c(),h},r.handleSuccess=function(e){t(e)&&(e.timesRetried=-1)},r}),define("Core/CesiumTerrainProvider",["../ThirdParty/Uri","../ThirdParty/when","./AttributeCompression","./BoundingSphere","./Cartesian2","./Cartesian3","./Credit","./defaultValue","./defined","./defineProperties","./DeveloperError","./Event","./GeographicTilingScheme","./getStringFromTypedArray","./HeightmapTerrainData","./IndexDatatype","./Math","./OrientedBoundingBox","./QuantizedMeshTerrainData","./Request","./RequestType","./Resource","./RuntimeError","./TerrainProvider","./TileAvailability","./TileProviderError"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A){"use strict";function w(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.availabilityPromiseCache={}}function x(e){function i(e){var n;if(!e.format)return n="The tile format is not specified in the layer.json file.",void(_=A.handleError(_,g,g._errorEvent,n,void 0,void 0,void 0,u));if(!e.tiles||0===e.tiles.length)return n="The layer.json file does not specify any tile URL templates.",void(_=A.handleError(_,g,g._errorEvent,n,void 0,void 0,void 0,u));var o=!1,a=!1,s=!1,c=!0,d=!1;if("heightmap-1.0"===e.format)d=!0,l(g._heightmapStructure)||(g._heightmapStructure={heightScale:.2,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:65535}),a=!0,g._requestWaterMask=!0;else if(0!==e.format.indexOf("quantized-mesh-1."))return n='The tile format "'+e.format+'" is invalid or not supported.',void(_=A.handleError(_,g,g._errorEvent,n,void 0,void 0,void 0,u));var h=e.tiles,p=e.maxzoom;S=Math.max(S,p);var b;l(e.extensions)&&-1!==e.extensions.indexOf("octvertexnormals")?o=!0:l(e.extensions)&&-1!==e.extensions.indexOf("vertexnormals")&&(o=!0,c=!1),l(e.extensions)&&-1!==e.extensions.indexOf("watermask")&&(a=!0),l(e.extensions)&&-1!==e.extensions.indexOf("metadata")&&(s=!0);var T,x=e.metadataAvailability,P=e.available;if(l(P)&&!l(x)){T=new E(g._tilingScheme,P.length);for(var D=0;D<P.length;++D){var I=P[D],M=g._tilingScheme.getNumberOfYTilesAtLevel(D);l(C[D])||(C[D]=[]);for(var R=0;R<I.length;++R){var O=I[R],L=M-O.endY-1,N=M-O.startY-1;C[D].push([O.startX,L,O.endX,N]),T.addAvailableTileRange(D,O.startX,L,O.endX,N)}}}else l(x)&&(b=new E(g._tilingScheme,p),T=new E(g._tilingScheme,p),C[0]=[[0,0,1,0]],T.addAvailableTileRange(0,0,0,1,0));g._hasWaterMask=g._hasWaterMask||a,g._hasVertexNormals=g._hasVertexNormals||o,g._hasMetadata=g._hasMetadata||s,l(e.attribution)&&(y.length>0&&(y+=" "),y+=e.attribution),v.push(new w({resource:f,version:e.version,isHeightmap:d,tileUrlTemplates:h,availability:T,hasVertexNormals:o,hasWaterMask:a,hasMetadata:s,availabilityLevels:x,availabilityTilesLoaded:b,littleEndianExtensionSize:c}));var F=e.parentUrl;if(l(F)){if(!l(T))return console.log("A layer.json can't have a parentUrl if it does't have an available array."),t.resolve();f=f.getDerivedResource({url:F}),f.appendForwardSlash(),m=f.getDerivedResource({url:"layer.json"});var B=m.fetchJson();return t(B,i,r)}return t.resolve()}function r(e){var t="An error occurred while accessing "+m.url+".";_=A.handleError(_,g,g._errorEvent,t,void 0,void 0,void 0,u)}function n(e){i(e).then(function(){if(!l(_)){var e=C.length;if(e>0)for(var t=g._availability=new E(g._tilingScheme,S),i=0;i<e;++i)for(var r=C[i],n=0;n<r.length;++n){var o=r[n];t.addAvailableTileRange(i,o[0],o[1],o[2],o[3])}if(y.length>0){var s=new a(y);l(g._tileCredits)?g._tileCredits.push(s):g._tileCredits=[s]}g._ready=!0,g._readyPromise.resolve(!0)}})}function o(e){if(l(e)&&404===e.statusCode)return void n({tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]});r(e)}function u(){t(m.fetchJson()).then(n).otherwise(o)}this._tilingScheme=new h({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid}),this._heightmapWidth=65,this._levelZeroMaximumGeometricError=T.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,this._heightmapWidth,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._requestVertexNormals=s(e.requestVertexNormals,!1),this._requestWaterMask=s(e.requestWaterMask,!1),this._requestMetadata=s(e.requestMetadata,!0),this._errorEvent=new d;var c=e.credit;"string"==typeof c&&(c=new a(c)),this._credit=c,this._availability=void 0;var p=t.defer();this._ready=!1,this._readyPromise=p,this._tileCredits=void 0;var f,m,_,g=this,v=this._layers=[],y="",C=[],S=0;t(e.url).then(function(e){var t=b.createIfNeeded(e);t.appendForwardSlash(),f=t,m=f.getDerivedResource({url:"layer.json"}),g._tileCredits=t.credits,u()}).otherwise(function(e){p.reject(e)})}function P(e){return l(e)&&0!==e.length?{Accept:"application/vnd.quantized-mesh;extensions="+e.join("-")+",application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}}function D(e,t,i,r,n,o){var a=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new f({buffer:a,childTileMask:new Uint8Array(t,a.byteLength,1)[0],waterMask:new Uint8Array(t,a.byteLength+1,t.byteLength-a.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function I(e,t,n,a,s,u,c){var d=c.littleEndianExtensionSize,h=0,f=3*Float64Array.BYTES_PER_ELEMENT,y=4*Float64Array.BYTES_PER_ELEMENT,C=3*Uint16Array.BYTES_PER_ELEMENT,b=Uint16Array.BYTES_PER_ELEMENT,S=3*b,T=new DataView(t),E=new o(T.getFloat64(h,!0),T.getFloat64(h+8,!0),T.getFloat64(h+16,!0));h+=f;var A=T.getFloat32(h,!0);h+=Float32Array.BYTES_PER_ELEMENT;var w=T.getFloat32(h,!0);h+=Float32Array.BYTES_PER_ELEMENT;var x=new r(new o(T.getFloat64(h,!0),T.getFloat64(h+8,!0),T.getFloat64(h+16,!0)),T.getFloat64(h+f,!0));h+=y;var P=new o(T.getFloat64(h,!0),T.getFloat64(h+8,!0),T.getFloat64(h+16,!0));h+=f;var D=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var I=new Uint16Array(t,h,3*D);h+=D*C,D>65536&&(b=Uint32Array.BYTES_PER_ELEMENT,S=3*b);var M=I.subarray(0,D),R=I.subarray(D,2*D),O=I.subarray(2*D,3*D);i.zigZagDeltaDecode(M,R,O),h%b!=0&&(h+=b-h%b);var N=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var F=m.createTypedArrayFromArrayBuffer(D,t,h,3*N);h+=N*S;for(var B=0,z=F.length,k=0;k<z;++k){var V=F[k];F[k]=B-V,0===V&&++B}var U=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var G=m.createTypedArrayFromArrayBuffer(D,t,h,U);h+=U*b;var H=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var W=m.createTypedArrayFromArrayBuffer(D,t,h,H);h+=H*b;var q=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var Y=m.createTypedArrayFromArrayBuffer(D,t,h,q);h+=q*b;var j=T.getUint32(h,!0);h+=Uint32Array.BYTES_PER_ELEMENT;var X=m.createTypedArrayFromArrayBuffer(D,t,h,j);h+=j*b;for(var Q,K;h<T.byteLength;){var Z=T.getUint8(h,!0);h+=Uint8Array.BYTES_PER_ELEMENT;var J=T.getUint32(h,d);if(h+=Uint32Array.BYTES_PER_ELEMENT,Z===L.OCT_VERTEX_NORMALS&&e._requestVertexNormals)Q=new Uint8Array(t,h,2*D);else if(Z===L.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,h,J);else if(Z===L.METADATA&&e._requestMetadata){var $=T.getUint32(h,!0);if($>0){var ee=p(new Uint8Array(t),h+Uint32Array.BYTES_PER_ELEMENT,$),te=JSON.parse(ee),ie=te.available;if(l(ie))for(var re=0;re<ie.length;++re)for(var ne=n+re+1,oe=ie[re],ae=e._tilingScheme.getNumberOfYTilesAtLevel(ne),se=0;se<oe.length;++se){var le=oe[se],ue=ae-le.endY-1,ce=ae-le.startY-1;e.availability.addAvailableTileRange(ne,le.startX,ue,le.endX,ce),c.availability.addAvailableTileRange(ne,le.startX,ue,le.endX,ce)}}c.availabilityTilesLoaded.addAvailableTileRange(n,a,s,a,s)}h+=J}var de,he=5*e.getLevelMaximumGeometricError(n),pe=e._tilingScheme.tileXYToRectangle(a,s,n);return pe.width<_.PI_OVER_TWO+_.EPSILON5&&(de=g.fromRectangle(pe,A,w,e._tilingScheme.ellipsoid)),new v({center:E,minimumHeight:A,maximumHeight:w,boundingSphere:x,orientedBoundingBox:de,horizonOcclusionPoint:P,quantizedVertices:I,encodedNormals:Q,indices:F,westIndices:G,southIndices:W,eastIndices:Y,northIndices:X,westSkirtHeight:he,southSkirtHeight:he,eastSkirtHeight:he,northSkirtHeight:he,childTileMask:e.availability.computeChildMaskForTile(n,a,s),waterMask:K,credits:e._tileCredits})}function M(e,i,r,n,o,a){if(!l(o))return t.reject(new S("Terrain tile doesn't exist"));var s=o.tileUrlTemplates;if(0!==s.length){var u=e._tilingScheme.getNumberOfYTilesAtLevel(n),c=u-r-1,d=[];e._requestVertexNormals&&o.hasVertexNormals&&d.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&d.push("watermask"),e._requestMetadata&&o.hasMetadata&&d.push("metadata");var h,p,f=s[(i+c+n)%s.length],m=o.resource;l(m._ionEndpoint)&&!l(m._ionEndpoint.externalType)?(0!==d.length&&(p={extensions:d.join("-")}),h=P(void 0)):h=P(d);var _=m.getDerivedResource({url:f,templateValues:{version:o.version,z:n,x:i,y:c},queryParameters:p,headers:h,request:a}).fetchArrayBuffer();if(l(_))return _.then(function(t){return l(e._heightmapStructure)?D(e,t,n,i,r,c):I(e,t,n,i,r,c,o)})}}function R(e,t,i,r){if(0!==r){var n=e.availabilityLevels,o=r%n==0?r-n:(r/n|0)*n,a=1<<r-o;return{level:o,x:t/a|0,y:i/a|0}}}function O(e,t,i,r,n,o){if(!l(n.availabilityLevels))return{result:!1};for(var a,s=function(){delete n.availabilityPromiseCache[a]},u=n.availabilityTilesLoaded,c=n.availability,d=R(n,t,i,r);l(d);){if(c.isTileAvailable(d.level,d.x,d.y)&&!u.isTileAvailable(d.level,d.x,d.y)){var h;if(!o&&(a=d.level+"-"+d.x+"-"+d.y,h=n.availabilityPromiseCache[a],!l(h))){var p=new y({throttle:!0,throttleByServer:!0,type:C.TERRAIN});h=M(e,d.x,d.y,d.level,n,p),l(h)&&(n.availabilityPromiseCache[a]=h,h.then(s))}return{result:!0,promise:h}}d=R(n,d.x,d.y,d.level)}return{result:!1}}var L={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};return x.prototype.requestTileGeometry=function(e,t,i,r){var n,o=this._layers,a=o.length;if(1===a)n=o[0];else for(var s=0;s<a;++s){var u=o[s];if(!l(u.availability)||u.availability.isTileAvailable(i,e,t)){n=u;break}}return M(this,e,t,i,n,r)},u(x.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}}),x.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)},x.prototype.getTileDataAvailable=function(e,t,i){if(l(this._availability)){if(i>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(i,e,t))return!0;if(!this._hasMetadata)return!1;for(var r=this._layers,n=r.length,o=0;o<n;++o){if(O(this,e,t,i,r[o],0===o).result)return}return!1}},x.prototype.loadTileDataAvailability=function(e,t,i){if(!(!l(this._availability)||i>this._availability._maximumLevel||this._availability.isTileAvailable(i,e,t))&&this._hasMetadata)for(var r=this._layers,n=r.length,o=0;o<n;++o){var a=O(this,e,t,i,r[o],0===o);if(l(a.promise))return a.promise}},x._getAvailabilityTile=R,x}),define("Core/EllipseGeometryLibrary",["./Cartesian3","./Math","./Matrix3","./Quaternion"],function(e,t,i,r){"use strict";function n(t,n,o,c,d,h,p,f,m,_){var g=t+n;e.multiplyByScalar(c,Math.cos(g),a),e.multiplyByScalar(o,Math.sin(g),s),e.add(a,s,a);var v=Math.cos(t);v*=v;var y=Math.sin(t);y*=y;var C=h/Math.sqrt(p*v+d*y),b=C/f;return r.fromAxisAngle(a,b,l),i.fromQuaternion(l,u),i.multiplyByVector(u,m,_),e.normalize(_,_),e.multiplyByScalar(_,f,_),_}var o={},a=new e,s=new e,l=new r,u=new i,c=new e,d=new e,h=new e,p=new e;o.raisePositionsToHeight=function(t,i,r){for(var n=i.ellipsoid,o=i.height,a=i.extrudedHeight,s=r?t.length/3*2:t.length/3,l=new Float64Array(3*s),u=t.length,f=r?u:0,m=0;m<u;m+=3){var _=m+1,g=m+2,v=e.fromArray(t,m,c);n.scaleToGeodeticSurface(v,v);var y=e.clone(v,d),C=n.geodeticSurfaceNormal(v,p),b=e.multiplyByScalar(C,o,h);e.add(v,b,v),r&&(e.multiplyByScalar(C,a,b),e.add(y,b,y),l[m+f]=y.x,l[_+f]=y.y,l[g+f]=y.z),l[m]=v.x,l[_]=v.y,l[g]=v.z}return l};var f=new e,m=new e,_=new e;return o.computeEllipsePositions=function(i,r,o){var a=i.semiMinorAxis,s=i.semiMajorAxis,l=i.rotation,u=i.center,p=8*i.granularity,g=a*a,v=s*s,y=s*a,C=e.magnitude(u),b=e.normalize(u,f),S=e.cross(e.UNIT_Z,u,m);S=e.normalize(S,S);var T=e.cross(b,S,_),E=1+Math.ceil(t.PI_OVER_TWO/p),A=t.PI_OVER_TWO/(E-1),w=t.PI_OVER_TWO-E*A;w<0&&(E-=Math.ceil(Math.abs(w)/A));var x,P,D,I,M,R=E*(E+2)*2,O=r?new Array(3*R):void 0,L=0,N=c,F=d,B=4*E*3,z=B-1,k=0,V=o?new Array(B):void 0;for(w=t.PI_OVER_TWO,N=n(w,l,T,S,g,y,v,C,b,N),r&&(O[L++]=N.x,O[L++]=N.y,O[L++]=N.z),o&&(V[z--]=N.z,V[z--]=N.y,V[z--]=N.x),w=t.PI_OVER_TWO-A,x=1;x<E+1;++x){if(N=n(w,l,T,S,g,y,v,C,b,N),F=n(Math.PI-w,l,T,S,g,y,v,C,b,F),r){for(O[L++]=N.x,O[L++]=N.y,O[L++]=N.z,D=2*x+2,P=1;P<D-1;++P)I=P/(D-1),M=e.lerp(N,F,I,h),O[L++]=M.x,O[L++]=M.y,O[L++]=M.z;O[L++]=F.x,O[L++]=F.y,O[L++]=F.z}o&&(V[z--]=N.z,V[z--]=N.y,V[z--]=N.x,V[k++]=F.x,V[k++]=F.y,V[k++]=F.z),w=t.PI_OVER_TWO-(x+1)*A}for(x=E;x>1;--x){if(w=t.PI_OVER_TWO-(x-1)*A,N=n(-w,l,T,S,g,y,v,C,b,N),F=n(w+Math.PI,l,T,S,g,y,v,C,b,F),r){for(O[L++]=N.x,O[L++]=N.y,O[L++]=N.z,D=2*(x-1)+2,P=1;P<D-1;++P)I=P/(D-1),M=e.lerp(N,F,I,h),O[L++]=M.x,O[L++]=M.y,O[L++]=M.z;O[L++]=F.x,O[L++]=F.y,O[L++]=F.z}o&&(V[z--]=N.z,V[z--]=N.y,V[z--]=N.x,V[k++]=F.x,V[k++]=F.y,V[k++]=F.z)}w=t.PI_OVER_TWO,N=n(-w,l,T,S,g,y,v,C,b,N);var U={};return r&&(O[L++]=N.x,O[L++]=N.y,O[L++]=N.z,U.positions=O,U.numPts=E),o&&(V[z--]=N.z,V[z--]=N.y,V[z--]=N.x,U.outerPositions=V),U},o}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,i,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=r.clone(e(t.modelMatrix,r.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return n}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,i){"use strict";function r(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}r.encode=function(e,t){i(t)||(t={high:0,low:0});var r;return e>=0?(r=65536*Math.floor(e/65536),t.high=r,t.low=e-r):(r=65536*Math.floor(-e/65536),t.high=-r,t.low=e+r),t};var n={high:0,low:0};r.fromCartesian=function(e,t){i(t)||(t=new r);var o=t.high,a=t.low;return r.encode(e.x,n),o.x=n.high,a.x=n.low,r.encode(e.y,n),o.y=n.high,a.y=n.low,r.encode(e.z,n),o.z=n.high,a.z=n.low,t};var o=new r;return r.writeElements=function(e,t,i){r.fromCartesian(e,o);var n=o.high,a=o.low;t[i]=n.x,t[i+1]=n.y,t[i+2]=n.z,t[i+3]=a.x,t[i+4]=a.y,t[i+5]=a.z},r}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,i){"use strict";var r={};return r.calculateACMR=function(i){i=e(i,e.EMPTY_OBJECT);var r=i.indices,n=i.maximumIndex,o=e(i.cacheSize,24),a=r.length;if(!t(n)){n=0;for(var s=0,l=r[s];s<a;)l>n&&(n=l),++s,l=r[s]}for(var u=[],c=0;c<n+1;c++)u[c]=0;for(var d=o+1,h=0;h<a;++h)d-u[r[h]]>o&&(u[r[h]]=d,++d);return(d-o+1)/(a/3)},r.tipsify=function(i){function r(e,t,i,r){for(;t.length>=1;){var o=t[t.length-1];if(t.splice(t.length-1,1),e[o].numLiveTriangles>0)return o}for(;n<r;){if(e[n].numLiveTriangles>0)return++n-1;++n}return-1}i=e(i,e.EMPTY_OBJECT);var n,o=i.indices,a=i.maximumIndex,s=e(i.cacheSize,24),l=o.length,u=0,c=0,d=o[c],h=l;if(t(a))u=a+1;else{for(;c<h;)d>u&&(u=d),++c,d=o[c];if(-1===u)return 0;++u}var p,f=[];for(p=0;p<u;p++)f[p]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};c=0;for(var m=0;c<h;)f[o[c]].vertexTriangles.push(m),++f[o[c]].numLiveTriangles,f[o[c+1]].vertexTriangles.push(m),++f[o[c+1]].numLiveTriangles,f[o[c+2]].vertexTriangles.push(m),++f[o[c+2]].numLiveTriangles,++m,c+=3;var _=0,g=s+1;n=1;var v,y,C=[],b=[],S=0,T=[],E=l/3,A=[];for(p=0;p<E;p++)A[p]=!1;for(var w,x;-1!==_;){C=[],y=f[_],x=y.vertexTriangles.length;for(var P=0;P<x;++P)if(m=y.vertexTriangles[P],!A[m]){A[m]=!0,c=m+m+m;for(var D=0;D<3;++D)w=o[c],C.push(w),b.push(w),T[S]=w,++S,v=f[w],--v.numLiveTriangles,g-v.timeStamp>s&&(v.timeStamp=g,++g),++c}_=function(e,t,i,n,o,a,s){for(var l,u=-1,c=-1,d=0;d<i.length;){var h=i[d];n[h].numLiveTriangles&&(l=0,o-n[h].timeStamp+2*n[h].numLiveTriangles<=t&&(l=o-n[h].timeStamp),(l>c||-1===c)&&(c=l,u=h)),++d}return-1===u?r(n,a,e,s):u}(o,s,C,f,g,b,u)}return T},r}), -define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E){"use strict";function A(e,t,i,r,n){e[t++]=i,e[t++]=r,e[t++]=r,e[t++]=n,e[t++]=n,e[t]=i}function w(e){for(var t=e.length,i=t/3*6,r=_.createTypedArray(t,i),n=0,o=0;o<t;o+=3,n+=6)A(r,n,e[o],e[o+1],e[o+2]);return r}function x(e){var t=e.length;if(t>=3){var i=6*(t-2),r=_.createTypedArray(t,i);A(r,0,e[0],e[1],e[2]);for(var n=6,o=3;o<t;++o,n+=6)A(r,n,e[o-1],e[o],e[o-2]);return r}return new Uint16Array}function P(e){if(e.length>0){for(var t=e.length-1,i=6*(t-1),r=_.createTypedArray(t,i),n=e[0],o=0,a=1;a<t;++a,o+=6)A(r,o,n,e[a],e[a+1]);return r}return new Uint16Array}function D(e){var t={};for(var i in e)if(e.hasOwnProperty(i)&&u(e[i])&&u(e[i].values)){var r=e[i];t[i]=new f({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]})}return t}function I(e,t,i){for(var r in t)if(t.hasOwnProperty(r)&&u(t[r])&&u(t[r].values))for(var n=t[r],o=0;o<n.componentsPerAttribute;++o)e[r].values.push(n.values[i*n.componentsPerAttribute+o])}function M(e,t){if(u(t))for(var i=t.values,r=i.length,o=0;o<r;o+=3)n.unpack(i,o,le),b.multiplyByPoint(e,le,le),n.pack(le,i,o)}function R(e,t){if(u(t))for(var i=t.values,r=i.length,o=0;o<r;o+=3)n.unpack(i,o,le),C.multiplyByVector(e,le,le),le=n.normalize(le,le),n.pack(le,i,o)}function O(e,t){var i,r=e.length,n={},o=e[0][t].attributes;for(i in o)if(o.hasOwnProperty(i)&&u(o[i])&&u(o[i].values)){for(var a=o[i],l=a.values.length,c=!0,d=1;d<r;++d){var h=e[d][t].attributes[i];if(!u(h)||a.componentDatatype!==h.componentDatatype||a.componentsPerAttribute!==h.componentsPerAttribute||a.normalize!==h.normalize){c=!1;break}l+=h.values.length}c&&(n[i]=new f({componentDatatype:a.componentDatatype,componentsPerAttribute:a.componentsPerAttribute,normalize:a.normalize,values:s.createTypedArray(a.componentDatatype,l)}))}return n}function L(e,t){var r,o,a,s,l,c,d,h=e.length,f=(e[0].modelMatrix,u(e[0][t].indices)),m=e[0][t].primitiveType,g=O(e,t);for(r in g)if(g.hasOwnProperty(r))for(l=g[r].values,s=0,o=0;o<h;++o)for(c=e[o][t].attributes[r].values,d=c.length,a=0;a<d;++a)l[s++]=c[a];var v;if(f){var y=0;for(o=0;o<h;++o)y+=e[o][t].indices.length;var C=p.computeNumberOfVertices(new p({attributes:g,primitiveType:T.POINTS})),b=_.createTypedArray(C,y),S=0,E=0;for(o=0;o<h;++o){var A=e[o][t].indices,w=A.length;for(s=0;s<w;++s)b[S++]=E+A[s];E+=p.computeNumberOfVertices(e[o][t])}v=b}var x,P=new n,D=0;for(o=0;o<h;++o){if(x=e[o][t].boundingSphere,!u(x)){P=void 0;break}n.add(x.center,P,P)}if(u(P))for(n.divideByScalar(P,h,P),o=0;o<h;++o){x=e[o][t].boundingSphere;var I=n.magnitude(n.subtract(x.center,P,de))+x.radius;I>D&&(D=I)}return new p({attributes:g,indices:v,primitiveType:m,boundingSphere:u(P)?new i(P,D):void 0})}function N(e){if(u(e.indices))return e;for(var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,t),r=0;r<t;++r)i[r]=r;return e.indices=i,e}function F(e){var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,3*(t-2));i[0]=1,i[1]=0,i[2]=2;for(var r=3,n=3;n<t;++n)i[r++]=n-1,i[r++]=0,i[r++]=n;return e.indices=i,e.primitiveType=T.TRIANGLES,e}function B(e){var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,3*(t-2));i[0]=0,i[1]=1,i[2]=2,t>3&&(i[3]=0,i[4]=2,i[5]=3);for(var r=6,n=3;n<t-1;n+=2)i[r++]=n,i[r++]=n-1,i[r++]=n+1,n+2<t&&(i[r++]=n,i[r++]=n+1,i[r++]=n+2);return e.indices=i,e.primitiveType=T.TRIANGLES,e}function z(e){if(u(e.indices))return e;for(var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,t),r=0;r<t;++r)i[r]=r;return e.indices=i,e}function k(e){var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,2*(t-1));i[0]=0,i[1]=1;for(var r=2,n=2;n<t;++n)i[r++]=n-1,i[r++]=n;return e.indices=i,e.primitiveType=T.LINES,e}function V(e){var t=p.computeNumberOfVertices(e),i=_.createTypedArray(t,2*t);i[0]=0,i[1]=1;for(var r=2,n=2;n<t;++n)i[r++]=n-1,i[r++]=n;return i[r++]=t-1,i[r]=0,e.indices=i,e.primitiveType=T.LINES,e}function U(e){switch(e.primitiveType){case T.TRIANGLE_FAN:return F(e);case T.TRIANGLE_STRIP:return B(e);case T.TRIANGLES:return N(e);case T.LINE_STRIP:return k(e);case T.LINE_LOOP:return V(e);case T.LINES:return z(e)}return e}function G(e,t){Math.abs(e.y)<y.EPSILON6&&(e.y=t?-y.EPSILON6:y.EPSILON6)}function H(e,t,i){if(0!==e.y&&0!==t.y&&0!==i.y)return G(e,e.y<0),G(t,t.y<0),void G(i,i.y<0);var r,n=Math.abs(e.y),o=Math.abs(t.y),a=Math.abs(i.y);r=n>o?n>a?y.sign(e.y):y.sign(i.y):o>a?y.sign(t.y):y.sign(i.y);var s=r<0;G(e,s),G(t,s),G(i,s)}function W(e,t,i,r){n.add(e,n.multiplyByScalar(n.subtract(t,e,Ee),e.y/(e.y-t.y),Ee),i),n.clone(i,r),G(i,!0),G(r,!1)}function q(e,t,i){if(!(e.x>=0||t.x>=0||i.x>=0)){H(e,t,i);var r=e.y<0,n=t.y<0,o=i.y<0,a=0;a+=r?1:0,a+=n?1:0,a+=o?1:0;var s=De.indices;1===a?(s[1]=3,s[2]=4,s[5]=6,s[7]=6,s[8]=5,r?(W(e,t,Ae,xe),W(e,i,we,Pe),s[0]=0,s[3]=1,s[4]=2,s[6]=1):n?(W(t,i,Ae,xe),W(t,e,we,Pe),s[0]=1,s[3]=2,s[4]=0,s[6]=2):o&&(W(i,e,Ae,xe),W(i,t,we,Pe),s[0]=2,s[3]=0,s[4]=1,s[6]=0)):2===a&&(s[2]=4,s[4]=4,s[5]=3,s[7]=5,s[8]=6,r?n?o||(W(i,e,Ae,xe),W(i,t,we,Pe),s[0]=0,s[1]=1,s[3]=0,s[6]=2):(W(t,i,Ae,xe),W(t,e,we,Pe),s[0]=2,s[1]=0,s[3]=2,s[6]=1):(W(e,t,Ae,xe),W(e,i,we,Pe),s[0]=1,s[1]=2,s[3]=1,s[6]=0));var l=De.positions;return l[0]=e,l[1]=t,l[2]=i,l.length=3,1!==a&&2!==a||(l[3]=Ae,l[4]=we,l[5]=xe,l[6]=Pe,l.length=7),De}}function Y(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var n in r)if(r.hasOwnProperty(n)&&u(r[n])&&u(r[n].values)){var o=r[n];o.values=s.createTypedArray(o.componentDatatype,o.values)}var a=p.computeNumberOfVertices(e);return e.indices=_.createTypedArray(a,e.indices),t&&(e.boundingSphere=i.fromVertices(r.position.values)),e}}function j(e){var t=e.attributes,i={};for(var r in t)if(t.hasOwnProperty(r)&&u(t[r])&&u(t[r].values)){var n=t[r];i[r]=new f({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return new p({attributes:i,indices:[],primitiveType:e.primitiveType})}function X(e,t,i){var r=u(e.geometry.boundingSphere);t=Y(t,r),i=Y(i,r),u(i)&&!u(t)?e.geometry=i:!u(i)&&u(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=i,e.geometry=void 0)}function Q(e,t){var i=new e,r=new e,n=new e;return function(o,a,s,l,u,c,d,h){var p=e.fromArray(u,o*t,i),f=e.fromArray(u,a*t,r),m=e.fromArray(u,s*t,n);e.multiplyByScalar(p,l.x,p),e.multiplyByScalar(f,l.y,f),e.multiplyByScalar(m,l.z,m);var _=e.add(p,f,p);e.add(_,m,_),h&&e.normalize(_,_),e.pack(_,c,d*t)}}function K(e,i,r,o,a,s,l,c,d,h,p,f,m,_,g,v){if(u(s)||u(l)||u(c)||u(d)||u(h)||0!==_){var y=n.fromArray(a,3*e,Le),C=n.fromArray(a,3*i,Ne),b=n.fromArray(a,3*r,Fe),S=t(o,y,C,b,Be);if(u(s)&&Me(e,i,r,S,s,f.normal.values,v,!0),u(h)){var T=n.fromArray(h,3*e,Le),E=n.fromArray(h,3*i,Ne),A=n.fromArray(h,3*r,Fe);n.multiplyByScalar(T,S.x,T),n.multiplyByScalar(E,S.y,E),n.multiplyByScalar(A,S.z,A);var w;n.equals(T,n.ZERO)&&n.equals(E,n.ZERO)&&n.equals(A,n.ZERO)?(w=Le,w.x=0,w.y=0,w.z=0):(w=n.add(T,E,T),n.add(w,A,w),n.normalize(w,w)),n.pack(w,f.extrudeDirection.values,3*v)}if(u(p)&&Oe(e,i,r,S,p,f.applyOffset.values,v),u(l)&&Me(e,i,r,S,l,f.tangent.values,v,!0),u(c)&&Me(e,i,r,S,c,f.bitangent.values,v,!0),u(d)&&Re(e,i,r,S,d,f.st.values,v),_>0)for(var x=0;x<_;x++){var P=m[x];Z(e,i,r,S,v,g[P],f[P])}}}function Z(e,t,i,r,n,o,a){var s=o.componentsPerAttribute,l=o.values,u=a.values;switch(s){case 4:Ie(e,t,i,r,l,u,n,!1);break;case 3:Me(e,t,i,r,l,u,n,!1);break;case 2:Re(e,t,i,r,l,u,n,!1);break;default:u[n]=l[e]*r.x+l[t]*r.y+l[i]*r.z}}function J(e,t,i,r,n,o){var a=e.position.values.length/3;if(-1!==n){var s=r[n],l=i[s];return-1===l?(i[s]=a,e.position.values.push(o.x,o.y,o.z),t.push(a),a):(t.push(l),l)}return e.position.values.push(o.x,o.y,o.z),t.push(a),a}function $(e){var t=e.geometry,i=t.attributes,r=i.position.values,o=u(i.normal)?i.normal.values:void 0,a=u(i.bitangent)?i.bitangent.values:void 0,s=u(i.tangent)?i.tangent.values:void 0,l=u(i.st)?i.st.values:void 0,c=u(i.extrudeDirection)?i.extrudeDirection.values:void 0,d=u(i.applyOffset)?i.applyOffset.values:void 0,h=t.indices,p=[];for(var f in i)i.hasOwnProperty(f)&&!ze[f]&&u(i[f])&&p.push(f);var m,_,g,v,y,C=p.length,b=j(t),S=j(t),T=[];T.length=r.length/3;var E=[];for(E.length=r.length/3,y=0;y<T.length;++y)T[y]=-1,E[y]=-1;var A=h.length;for(y=0;y<A;y+=3){var w=h[y],x=h[y+1],P=h[y+2],D=n.fromArray(r,3*w),I=n.fromArray(r,3*x),M=n.fromArray(r,3*P),R=q(D,I,M);if(u(R)&&R.positions.length>3)for(var O=R.positions,L=R.indices,N=L.length,F=0;F<N;++F){var B=L[F],z=O[B];z.y<0?(m=S.attributes,_=S.indices,g=T):(m=b.attributes,_=b.indices,g=E),v=J(m,_,g,h,B<3?y+B:-1,z),K(w,x,P,z,r,o,s,a,l,c,d,m,p,C,i,v)}else u(R)&&(D=R.positions[0],I=R.positions[1],M=R.positions[2]),D.y<0?(m=S.attributes,_=S.indices,g=T):(m=b.attributes,_=b.indices,g=E),v=J(m,_,g,h,y,D),K(w,x,P,D,r,o,s,a,l,c,d,m,p,C,i,v),v=J(m,_,g,h,y+1,I),K(w,x,P,I,r,o,s,a,l,c,d,m,p,C,i,v),v=J(m,_,g,h,y+2,M),K(w,x,P,M,r,o,s,a,l,c,d,m,p,C,i,v)}X(e,S,b)}function ee(e,t,i,r,o,a,s){if(u(s)){var l=n.fromArray(r,3*e,Le);n.equalsEpsilon(l,i,y.EPSILON10)?a.applyOffset.values[o]=s[e]:a.applyOffset.values[o]=s[t]}}function te(e){var t,i=e.geometry,r=i.attributes,o=r.position.values,a=u(r.applyOffset)?r.applyOffset.values:void 0,s=i.indices,l=j(i),c=j(i),d=s.length,h=[];h.length=o.length/3;var p=[];for(p.length=o.length/3,t=0;t<h.length;++t)h[t]=-1,p[t]=-1;for(t=0;t<d;t+=2){var f,m=s[t],_=s[t+1],g=n.fromArray(o,3*m,Le),C=n.fromArray(o,3*_,Ne);Math.abs(g.y)<y.EPSILON6&&(g.y<0?g.y=-y.EPSILON6:g.y=y.EPSILON6),Math.abs(C.y)<y.EPSILON6&&(C.y<0?C.y=-y.EPSILON6:C.y=y.EPSILON6);var b=l.attributes,S=l.indices,T=p,E=c.attributes,A=c.indices,w=h,x=v.lineSegmentPlane(g,C,ke,Fe);if(u(x)){var P=n.multiplyByScalar(n.UNIT_Y,5*y.EPSILON9,Ve);g.y<0&&(n.negate(P,P),b=c.attributes,S=c.indices,T=h,E=l.attributes,A=l.indices,w=p);var D=n.add(x,P,Ue);f=J(b,S,T,s,t,g),ee(m,_,g,o,f,b,a),f=J(b,S,T,s,-1,D),ee(m,_,D,o,f,b,a),n.negate(P,P),n.add(x,P,D),f=J(E,A,w,s,-1,D),ee(m,_,D,o,f,E,a),f=J(E,A,w,s,t+1,C),ee(m,_,C,o,f,E,a)}else{var I,M,R;g.y<0?(I=c.attributes,M=c.indices,R=h):(I=l.attributes,M=l.indices,R=p),f=J(I,M,R,s,t,g),ee(m,_,g,o,f,I,a),f=J(I,M,R,s,t+1,C),ee(m,_,C,o,f,I,a)}}X(e,c,l)}function ie(e){for(var t=e.attributes,i=t.position.values,r=t.prevPosition.values,o=t.nextPosition.values,a=i.length,s=0;s<a;s+=3){var l=n.unpack(i,s,We);if(!(l.x>0)){var u=n.unpack(r,s,qe);(l.y<0&&u.y>0||l.y>0&&u.y<0)&&(s-3>0?(r[s]=i[s-3],r[s+1]=i[s-2],r[s+2]=i[s-1]):n.pack(l,r,s));var c=n.unpack(o,s,Ye);(l.y<0&&c.y>0||l.y>0&&c.y<0)&&(s+3<a?(o[s]=i[s+3],o[s+1]=i[s+4],o[s+2]=i[s+5]):n.pack(l,o,s))}}}function re(e){var t,i,a,s=e.geometry,l=s.attributes,c=l.position.values,d=l.prevPosition.values,h=l.nextPosition.values,p=l.expandAndWidth.values,f=u(l.st)?l.st.values:void 0,m=u(l.color)?l.color.values:void 0,_=j(s),g=j(s),C=!1,b=c.length/3;for(t=0;t<b;t+=4){var S=t,T=t+2,E=n.fromArray(c,3*S,We),A=n.fromArray(c,3*T,qe);if(Math.abs(E.y)<Je)for(E.y=Je*(A.y<0?-1:1),c[3*t+1]=E.y,c[3*(t+1)+1]=E.y,i=3*S;i<3*S+12;i+=3)d[i]=c[3*t],d[i+1]=c[3*t+1],d[i+2]=c[3*t+2];if(Math.abs(A.y)<Je)for(A.y=Je*(E.y<0?-1:1),c[3*(t+2)+1]=A.y,c[3*(t+3)+1]=A.y,i=3*S;i<3*S+12;i+=3)h[i]=c[3*(t+2)],h[i+1]=c[3*(t+2)+1],h[i+2]=c[3*(t+2)+2];var w=_.attributes,x=_.indices,P=g.attributes,D=g.indices,I=v.lineSegmentPlane(E,A,ke,je);if(u(I)){C=!0;var M=n.multiplyByScalar(n.UNIT_Y,Ze,Xe);E.y<0&&(n.negate(M,M),w=g.attributes,x=g.indices,P=_.attributes,D=_.indices);var R=n.add(I,M,Qe);w.position.values.push(E.x,E.y,E.z,E.x,E.y,E.z),w.position.values.push(R.x,R.y,R.z),w.position.values.push(R.x,R.y,R.z),w.prevPosition.values.push(d[3*S],d[3*S+1],d[3*S+2]),w.prevPosition.values.push(d[3*S+3],d[3*S+4],d[3*S+5]),w.prevPosition.values.push(E.x,E.y,E.z,E.x,E.y,E.z),w.nextPosition.values.push(R.x,R.y,R.z),w.nextPosition.values.push(R.x,R.y,R.z),w.nextPosition.values.push(R.x,R.y,R.z),w.nextPosition.values.push(R.x,R.y,R.z),n.negate(M,M),n.add(I,M,R),P.position.values.push(R.x,R.y,R.z),P.position.values.push(R.x,R.y,R.z),P.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),P.prevPosition.values.push(R.x,R.y,R.z),P.prevPosition.values.push(R.x,R.y,R.z),P.prevPosition.values.push(R.x,R.y,R.z),P.prevPosition.values.push(R.x,R.y,R.z),P.nextPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),P.nextPosition.values.push(h[3*T],h[3*T+1],h[3*T+2]),P.nextPosition.values.push(h[3*T+3],h[3*T+4],h[3*T+5]);var O=r.fromArray(p,2*S,Ge),L=Math.abs(O.y);w.expandAndWidth.values.push(-1,L,1,L),w.expandAndWidth.values.push(-1,-L,1,-L),P.expandAndWidth.values.push(-1,L,1,L),P.expandAndWidth.values.push(-1,-L,1,-L);var N=n.magnitudeSquared(n.subtract(I,E,Ye));if(N/=n.magnitudeSquared(n.subtract(A,E,Ye)),u(m)){var F=o.fromArray(m,4*S,Ke),B=o.fromArray(m,4*T,Ke),z=y.lerp(F.x,B.x,N),k=y.lerp(F.y,B.y,N),V=y.lerp(F.z,B.z,N),U=y.lerp(F.w,B.w,N);for(i=4*S;i<4*S+8;++i)w.color.values.push(m[i]);for(w.color.values.push(z,k,V,U),w.color.values.push(z,k,V,U),P.color.values.push(z,k,V,U),P.color.values.push(z,k,V,U),i=4*T;i<4*T+8;++i)P.color.values.push(m[i])}if(u(f)){var G=r.fromArray(f,2*S,Ge),H=r.fromArray(f,2*(t+3),He),W=y.lerp(G.x,H.x,N);for(i=2*S;i<2*S+4;++i)w.st.values.push(f[i]);for(w.st.values.push(W,G.y),w.st.values.push(W,H.y),P.st.values.push(W,G.y),P.st.values.push(W,H.y),i=2*T;i<2*T+4;++i)P.st.values.push(f[i])}a=w.position.values.length/3-4,x.push(a,a+2,a+1),x.push(a+1,a+2,a+3),a=P.position.values.length/3-4,D.push(a,a+2,a+1),D.push(a+1,a+2,a+3)}else{var q,Y;for(E.y<0?(q=g.attributes,Y=g.indices):(q=_.attributes,Y=_.indices),q.position.values.push(E.x,E.y,E.z),q.position.values.push(E.x,E.y,E.z),q.position.values.push(A.x,A.y,A.z),q.position.values.push(A.x,A.y,A.z),i=3*t;i<3*t+12;++i)q.prevPosition.values.push(d[i]),q.nextPosition.values.push(h[i]);for(i=2*t;i<2*t+8;++i)q.expandAndWidth.values.push(p[i]),u(f)&&q.st.values.push(f[i]);if(u(m))for(i=4*t;i<4*t+16;++i)q.color.values.push(m[i]);a=q.position.values.length/3-4,Y.push(a,a+2,a+1),Y.push(a+1,a+2,a+3)}}C&&(ie(g),ie(_)),X(e,g,_)}var ne={};ne.toWireframe=function(e){var t=e.indices;if(u(t)){switch(e.primitiveType){case T.TRIANGLES:e.indices=w(t);break;case T.TRIANGLE_STRIP:e.indices=x(t);break;case T.TRIANGLE_FAN:e.indices=P(t)}e.primitiveType=T.LINES}return e},ne.createLineSegmentsForVectors=function(e,t,r){t=l(t,"normal"),r=l(r,1e4);for(var n=e.attributes.position.values,o=e.attributes[t].values,a=n.length,c=new Float64Array(2*a),d=0,h=0;h<a;h+=3)c[d++]=n[h],c[d++]=n[h+1],c[d++]=n[h+2],c[d++]=n[h]+o[h]*r,c[d++]=n[h+1]+o[h+1]*r,c[d++]=n[h+2]+o[h+2]*r;var m,_=e.boundingSphere;return u(_)&&(m=new i(_.center,_.radius+r)),new p({attributes:{position:new f({componentDatatype:s.DOUBLE,componentsPerAttribute:3,values:c})},primitiveType:T.LINES,boundingSphere:m})},ne.createAttributeLocations=function(e){var t,i=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],r=e.attributes,n={},o=0,a=i.length;for(t=0;t<a;++t){var s=i[t];u(r[s])&&(n[s]=o++)}for(var l in r)r.hasOwnProperty(l)&&!u(n[l])&&(n[l]=o++);return n},ne.reorderForPreVertexCache=function(e){var t=p.computeNumberOfVertices(e),i=e.indices;if(u(i)){for(var r=new Int32Array(t),n=0;n<t;n++)r[n]=-1;for(var o,a=i,l=a.length,c=_.createTypedArray(t,l),d=0,h=0,f=0;d<l;)o=r[a[d]],-1!==o?c[h]=o:(o=a[d],r[o]=f,c[h]=f,++f),++d,++h;e.indices=c;var m=e.attributes;for(var g in m)if(m.hasOwnProperty(g)&&u(m[g])&&u(m[g].values)){for(var v=m[g],y=v.values,C=0,b=v.componentsPerAttribute,S=s.createTypedArray(v.componentDatatype,f*b);C<t;){var T=r[C];if(-1!==T)for(var E=0;E<b;E++)S[b*T+E]=y[b*C+E];++C}v.values=S}}return e},ne.reorderForPostVertexCache=function(e,t){var i=e.indices;if(e.primitiveType===T.TRIANGLES&&u(i)){for(var r=i.length,n=0,o=0;o<r;o++)i[o]>n&&(n=i[o]);e.indices=E.tipsify({indices:i,maximumIndex:n,cacheSize:t})}return e},ne.fitToUnsignedShortIndices=function(e){var t=[],i=p.computeNumberOfVertices(e);if(u(e.indices)&&i>=y.SIXTY_FOUR_KILOBYTES){var r,n=[],o=[],a=0,s=D(e.attributes),l=e.indices,c=l.length;e.primitiveType===T.TRIANGLES?r=3:e.primitiveType===T.LINES?r=2:e.primitiveType===T.POINTS&&(r=1);for(var d=0;d<c;d+=r){for(var h=0;h<r;++h){var f=l[d+h],m=n[f];u(m)||(m=a++,n[f]=m,I(s,e.attributes,f)),o.push(m)}a+r>=y.SIXTY_FOUR_KILOBYTES&&(t.push(new p({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),n=[],o=[],a=0,s=D(e.attributes))}0!==o.length&&t.push(new p({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var oe=new n,ae=new a;ne.projectTo2D=function(e,t,i,r,o){var a=e.attributes[t];o=u(o)?o:new h;for(var l=o.ellipsoid,c=a.values,d=new Float64Array(c.length),p=0,m=0;m<c.length;m+=3){var _=n.fromArray(c,m,oe),g=l.cartesianToCartographic(_,ae),v=o.project(g,oe);d[p++]=v.x,d[p++]=v.y,d[p++]=v.z}return e.attributes[i]=a,e.attributes[r]=new f({componentDatatype:s.DOUBLE,componentsPerAttribute:3,values:d}),delete e.attributes[t],e};var se={high:0,low:0};ne.encodeAttribute=function(e,t,i,r){for(var n=e.attributes[t],o=n.values,a=o.length,l=new Float32Array(a),u=new Float32Array(a),c=0;c<a;++c)d.encode(o[c],se),l[c]=se.high,u[c]=se.low;var h=n.componentsPerAttribute;return e.attributes[i]=new f({componentDatatype:s.FLOAT,componentsPerAttribute:h,values:l}),e.attributes[r]=new f({componentDatatype:s.FLOAT,componentsPerAttribute:h,values:u}),delete e.attributes[t],e};var le=new n,ue=new b,ce=new C;ne.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(b.equals(t,b.IDENTITY))return e;var r=e.geometry.attributes;M(t,r.position),M(t,r.prevPosition),M(t,r.nextPosition),(u(r.normal)||u(r.tangent)||u(r.bitangent))&&(b.inverse(t,ue),b.transpose(ue,ue),b.getRotation(ue,ce),R(ce,r.normal),R(ce,r.tangent),R(ce,r.bitangent));var n=e.geometry.boundingSphere;return u(n)&&(e.geometry.boundingSphere=i.transform(n,t,n)),e.modelMatrix=b.clone(b.IDENTITY),e};var de=new n;ne.combineInstances=function(e){for(var t=[],i=[],r=e.length,n=0;n<r;++n){var o=e[n];u(o.geometry)?t.push(o):u(o.westHemisphereGeometry)&&u(o.eastHemisphereGeometry)&&i.push(o)}var a=[];return t.length>0&&a.push(L(t,"geometry")),i.length>0&&(a.push(L(i,"westHemisphereGeometry")),a.push(L(i,"eastHemisphereGeometry"))),a};var he=new n,pe=new n,fe=new n,me=new n;ne.computeNormal=function(e){var t,i=e.indices,r=e.attributes,o=r.position.values,a=r.position.values.length/3,l=i.length,u=new Array(a),c=new Array(l/3),d=new Array(l);for(t=0;t<a;t++)u[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<l;t+=3){var p=i[t],m=i[t+1],_=i[t+2],g=3*p,v=3*m,C=3*_;pe.x=o[g],pe.y=o[g+1],pe.z=o[g+2],fe.x=o[v],fe.y=o[v+1],fe.z=o[v+2],me.x=o[C],me.y=o[C+1],me.z=o[C+2],u[p].count++,u[m].count++,u[_].count++,n.subtract(fe,pe,fe),n.subtract(me,pe,me),c[h]=n.cross(fe,me,new n),h++}var b=0;for(t=0;t<a;t++)u[t].indexOffset+=b,b+=u[t].count;h=0;var S;for(t=0;t<l;t+=3){S=u[i[t]];var T=S.indexOffset+S.currentCount;d[T]=h,S.currentCount++,S=u[i[t+1]],T=S.indexOffset+S.currentCount,d[T]=h,S.currentCount++,S=u[i[t+2]],T=S.indexOffset+S.currentCount,d[T]=h,S.currentCount++,h++}var E=new Float32Array(3*a);for(t=0;t<a;t++){var A=3*t;if(S=u[t],n.clone(n.ZERO,he),S.count>0){for(h=0;h<S.count;h++)n.add(he,c[d[S.indexOffset+h]],he);n.equalsEpsilon(n.ZERO,he,y.EPSILON10)&&n.clone(c[d[S.indexOffset]],he)}n.equalsEpsilon(n.ZERO,he,y.EPSILON10)&&(he.z=1),n.normalize(he,he),E[A]=he.x,E[A+1]=he.y,E[A+2]=he.z}return e.attributes.normal=new f({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:E}),e};var _e=new n,ge=new n,ve=new n;ne.computeTangentAndBitangent=function(e){var t,i=(e.attributes,e.indices),r=e.attributes.position.values,o=e.attributes.normal.values,a=e.attributes.st.values,l=e.attributes.position.values.length/3,u=i.length,c=new Array(3*l);for(t=0;t<c.length;t++)c[t]=0;var d,h,p;for(t=0;t<u;t+=3){var m=i[t],_=i[t+1],g=i[t+2];d=3*m,h=3*_,p=3*g;var v=2*m,y=2*_,C=2*g,b=r[d],S=r[d+1],T=r[d+2],E=a[v],A=a[v+1],w=a[y+1]-A,x=a[C+1]-A,P=1/((a[y]-E)*x-(a[C]-E)*w),D=(x*(r[h]-b)-w*(r[p]-b))*P,I=(x*(r[h+1]-S)-w*(r[p+1]-S))*P,M=(x*(r[h+2]-T)-w*(r[p+2]-T))*P;c[d]+=D,c[d+1]+=I,c[d+2]+=M,c[h]+=D,c[h+1]+=I,c[h+2]+=M,c[p]+=D,c[p+1]+=I,c[p+2]+=M}var R=new Float32Array(3*l),O=new Float32Array(3*l);for(t=0;t<l;t++){d=3*t,h=d+1,p=d+2;var L=n.fromArray(o,d,_e),N=n.fromArray(c,d,ve),F=n.dot(L,N);n.multiplyByScalar(L,F,ge),n.normalize(n.subtract(N,ge,N),N),R[d]=N.x,R[h]=N.y,R[p]=N.z,n.normalize(n.cross(L,N,N),N),O[d]=N.x,O[h]=N.y,O[p]=N.z}return e.attributes.tangent=new f({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:R}),e.attributes.bitangent=new f({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:O}),e};var ye=new r,Ce=new n,be=new n,Se=new n,Te=new r;ne.compressVertices=function(t){var i,o,a=t.attributes.extrudeDirection;if(u(a)){var l=a.values;o=l.length/3;var c=new Float32Array(2*o),d=0;for(i=0;i<o;++i)n.fromArray(l,3*i,Ce),n.equals(Ce,n.ZERO)?d+=2:(Te=e.octEncodeInRange(Ce,65535,Te),c[d++]=Te.x,c[d++]=Te.y);return t.attributes.compressedAttributes=new f({componentDatatype:s.FLOAT,componentsPerAttribute:2,values:c}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,p=t.attributes.st,m=u(h),_=u(p);if(!m&&!_)return t;var g,v,y,C,b=t.attributes.tangent,S=t.attributes.bitangent,T=u(b),E=u(S);m&&(g=h.values),_&&(v=p.values),T&&(y=b.values),E&&(C=S.values),o=(m?g.length:v.length)/(m?3:2);var A=o,w=_&&m?2:1;w+=T||E?1:0,A*=w;var x=new Float32Array(A),P=0;for(i=0;i<o;++i){_&&(r.fromArray(v,2*i,ye),x[P++]=e.compressTextureCoordinates(ye));var D=3*i;m&&u(y)&&u(C)?(n.fromArray(g,D,Ce),n.fromArray(y,D,be),n.fromArray(C,D,Se),e.octPack(Ce,be,Se,ye),x[P++]=ye.x,x[P++]=ye.y):(m&&(n.fromArray(g,D,Ce),x[P++]=e.octEncodeFloat(Ce)),T&&(n.fromArray(y,D,Ce),x[P++]=e.octEncodeFloat(Ce)),E&&(n.fromArray(C,D,Ce),x[P++]=e.octEncodeFloat(Ce)))}return t.attributes.compressedAttributes=new f({componentDatatype:s.FLOAT,componentsPerAttribute:w,values:x}),m&&delete t.attributes.normal,_&&delete t.attributes.st,E&&delete t.attributes.bitangent,T&&delete t.attributes.tangent,t};var Ee=new n,Ae=new n,we=new n,xe=new n,Pe=new n,De={positions:new Array(7),indices:new Array(9)},Ie=Q(o,4),Me=Q(n,3),Re=Q(r,2),Oe=function(e,t,i,r,n,o,a){var s=n[e]*r.x,l=n[t]*r.y,u=n[i]*r.z;o[a]=s+l+u>y.EPSILON6?1:0},Le=new n,Ne=new n,Fe=new n,Be=new n,ze={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ke=S.fromPointNormal(n.ZERO,n.UNIT_Y),Ve=new n,Ue=new n,Ge=new r,He=new r,We=new n,qe=new n,Ye=new n,je=new n,Xe=new n,Qe=new n,Ke=new o,Ze=5*y.EPSILON9,Je=y.EPSILON6;return ne.splitLongitude=function(e){var t=e.geometry,r=t.boundingSphere;if(u(r)){if(r.center.x-r.radius>0||i.intersectPlane(r,S.ORIGIN_ZX_PLANE)!==g.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:re(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else U(t),t.primitiveType===T.TRIANGLES?$(e):t.primitiveType===T.LINES&&te(e);return e},ne}),define("Core/EllipseGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PrimitiveType","./Quaternion","./Rectangle","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(t,n,o){var s=n.vertexFormat,u=n.center,c=n.semiMajorAxis,h=n.semiMinorAxis,f=n.ellipsoid,g=n.stRotation,y=o?t.length/3*2:t.length/3,C=n.shadowVolume,b=s.st?new Float32Array(2*y):void 0,T=s.normal?new Float32Array(3*y):void 0,A=s.tangent?new Float32Array(3*y):void 0,w=s.bitangent?new Float32Array(3*y):void 0,x=C?new Float32Array(3*y):void 0,P=0,D=W,I=q,M=Y,R=new p(f),O=R.project(f.cartesianToCartographic(u,j),X),L=f.scaleToGeodeticSurface(u,F);f.geodeticSurfaceNormal(L,L);var N=U,k=G;if(0!==g){var Z=E.fromAxisAngle(L,g,H);N=S.fromQuaternion(Z,N),Z=E.fromAxisAngle(L,-g,H),k=S.fromQuaternion(Z,k)}else N=S.clone(S.IDENTITY,N),k=S.clone(S.IDENTITY,k);for(var J=i.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Q),$=i.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=o?ee:0,ie=te/3*2,re=0;re<ee;re+=3){var ne=re+1,oe=re+2,ae=r.fromArray(t,re,F);if(s.st){var se=S.multiplyByVector(N,ae,B),le=R.project(f.cartesianToCartographic(se,j),z);r.subtract(le,O,le),V.x=(le.x+c)/(2*c),V.y=(le.y+h)/(2*h),J.x=Math.min(V.x,J.x),J.y=Math.min(V.y,J.y),$.x=Math.max(V.x,$.x),$.y=Math.max(V.y,$.y),o&&(b[P+ie]=V.x,b[P+1+ie]=V.y),b[P++]=V.x,b[P++]=V.y}(s.normal||s.tangent||s.bitangent||C)&&(D=f.geodeticSurfaceNormal(ae,D),C&&(x[re+te]=-D.x,x[ne+te]=-D.y,x[oe+te]=-D.z),(s.normal||s.tangent||s.bitangent)&&((s.tangent||s.bitangent)&&(I=r.normalize(r.cross(r.UNIT_Z,D,I),I),S.multiplyByVector(k,I,I)),s.normal&&(T[re]=D.x,T[ne]=D.y,T[oe]=D.z,o&&(T[re+te]=-D.x,T[ne+te]=-D.y,T[oe+te]=-D.z)),s.tangent&&(A[re]=I.x,A[ne]=I.y,A[oe]=I.z,o&&(A[re+te]=-I.x,A[ne+te]=-I.y,A[oe+te]=-I.z)),s.bitangent&&(M=r.normalize(r.cross(D,I,M),M),w[re]=M.x,w[ne]=M.y,w[oe]=M.z,o&&(w[re+te]=M.x,w[ne+te]=M.y,w[oe+te]=M.z))))}if(s.st){ee=b.length;for(var ue=0;ue<ee;ue+=2)b[ue]=(b[ue]-J.x)/($.x-J.x),b[ue+1]=(b[ue+1]-J.y)/($.y-J.y)}var ce=new _;if(s.position){var de=d.raisePositionsToHeight(t,n,o);ce.position=new m({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:de})}if(s.st&&(ce.st=new m({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:b})),s.normal&&(ce.normal=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:T})),s.tangent&&(ce.tangent=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:A})),s.bitangent&&(ce.bitangent=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:w})),C&&(ce.extrudeDirection=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:x})),o&&l(n.offsetAttribute)){var he=new Uint8Array(y);if(n.offsetAttribute===v.TOP)he=e(he,1,0,y/2);else{var pe=n.offsetAttribute===v.NONE?0:1;he=e(he,pe)}ce.applyOffset=new m({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:he})}return ce}function P(e){var t,i,r,n,o,a=new Array(e*(e+1)*12-6),s=0;for(t=0,r=1,n=0;n<3;n++)a[s++]=r++,a[s++]=t,a[s++]=r;for(n=2;n<e+1;++n){for(r=n*(n+1)-1,t=(n-1)*n-1,a[s++]=r++,a[s++]=t,a[s++]=r,i=2*n,o=0;o<i-1;++o)a[s++]=r,a[s++]=t++,a[s++]=t,a[s++]=r++,a[s++]=t,a[s++]=r;a[s++]=r++,a[s++]=t,a[s++]=r}for(i=2*e,++r,++t,n=0;n<i-1;++n)a[s++]=r,a[s++]=t++,a[s++]=t,a[s++]=r++,a[s++]=t,a[s++]=r;for(a[s++]=r,a[s++]=t++,a[s++]=t,a[s++]=r++,a[s++]=t++,a[s++]=t,++t,n=e-1;n>1;--n){for(a[s++]=t++,a[s++]=t,a[s++]=r,i=2*n,o=0;o<i-1;++o)a[s++]=r,a[s++]=t++,a[s++]=t,a[s++]=r++,a[s++]=t,a[s++]=r;a[s++]=t++,a[s++]=t++,a[s++]=r++}for(n=0;n<3;n++)a[s++]=t++,a[s++]=t,a[s++]=r;return a}function D(e){var i=e.center;Z=r.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(i,Z),e.height,Z),Z=r.add(i,Z,Z);var n=new t(Z,e.semiMajorAxis),o=d.computeEllipsePositions(e,!0,!1),a=o.positions,s=o.numPts,l=x(a,e,!1),u=P(s);return u=C.createTypedArray(a.length/3,u),{boundingSphere:n,attributes:l,indices:u}}function I(t,n){var o=n.vertexFormat,s=n.center,u=n.semiMajorAxis,c=n.semiMinorAxis,d=n.ellipsoid,h=n.height,f=n.extrudedHeight,g=n.stRotation,y=t.length/3*2,C=new Float64Array(3*y),b=o.st?new Float32Array(2*y):void 0,T=o.normal?new Float32Array(3*y):void 0,A=o.tangent?new Float32Array(3*y):void 0,w=o.bitangent?new Float32Array(3*y):void 0,x=n.shadowVolume,P=x?new Float32Array(3*y):void 0,D=0,I=W,M=q,R=Y,O=new p(d),L=O.project(d.cartesianToCartographic(s,j),X),N=d.scaleToGeodeticSurface(s,F);d.geodeticSurfaceNormal(N,N);for(var G=E.fromAxisAngle(N,g,H),Z=S.fromQuaternion(G,U),J=i.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Q),$=i.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=ee/3*2,ie=0;ie<ee;ie+=3){var re,ne=ie+1,oe=ie+2,ae=r.fromArray(t,ie,F);if(o.st){var se=S.multiplyByVector(Z,ae,B),le=O.project(d.cartesianToCartographic(se,j),z);r.subtract(le,L,le),V.x=(le.x+u)/(2*u),V.y=(le.y+c)/(2*c),J.x=Math.min(V.x,J.x),J.y=Math.min(V.y,J.y),$.x=Math.max(V.x,$.x),$.y=Math.max(V.y,$.y),b[D+te]=V.x,b[D+1+te]=V.y,b[D++]=V.x,b[D++]=V.y}ae=d.scaleToGeodeticSurface(ae,ae),re=r.clone(ae,B),I=d.geodeticSurfaceNormal(ae,I),x&&(P[ie+ee]=-I.x,P[ne+ee]=-I.y,P[oe+ee]=-I.z);var ue=r.multiplyByScalar(I,h,k);if(ae=r.add(ae,ue,ae),ue=r.multiplyByScalar(I,f,ue),re=r.add(re,ue,re),o.position&&(C[ie+ee]=re.x,C[ne+ee]=re.y,C[oe+ee]=re.z,C[ie]=ae.x,C[ne]=ae.y,C[oe]=ae.z),o.normal||o.tangent||o.bitangent){R=r.clone(I,R);var ce=r.fromArray(t,(ie+3)%ee,k);r.subtract(ce,ae,ce);var de=r.subtract(re,ae,z);I=r.normalize(r.cross(de,ce,I),I),o.normal&&(T[ie]=I.x,T[ne]=I.y,T[oe]=I.z,T[ie+ee]=I.x,T[ne+ee]=I.y,T[oe+ee]=I.z),o.tangent&&(M=r.normalize(r.cross(R,I,M),M),A[ie]=M.x,A[ne]=M.y,A[oe]=M.z,A[ie+ee]=M.x,A[ie+1+ee]=M.y,A[ie+2+ee]=M.z),o.bitangent&&(w[ie]=R.x,w[ne]=R.y,w[oe]=R.z,w[ie+ee]=R.x,w[ne+ee]=R.y,w[oe+ee]=R.z)}}if(o.st){ee=b.length;for(var he=0;he<ee;he+=2)b[he]=(b[he]-J.x)/($.x-J.x),b[he+1]=(b[he+1]-J.y)/($.y-J.y)}var pe=new _;if(o.position&&(pe.position=new m({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:C})),o.st&&(pe.st=new m({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:b})),o.normal&&(pe.normal=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:T})),o.tangent&&(pe.tangent=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:A})),o.bitangent&&(pe.bitangent=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:w})),x&&(pe.extrudeDirection=new m({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:P})),l(n.offsetAttribute)){var fe=new Uint8Array(y);if(n.offsetAttribute===v.TOP)fe=e(fe,1,0,y/2);else{var me=n.offsetAttribute===v.NONE?0:1;fe=e(fe,me)}pe.applyOffset=new m({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:fe})}return pe}function M(e){for(var t=e.length/3,i=C.createTypedArray(t,6*t),r=0,n=0;n<t;n++){var o=n,a=n+t,s=(o+1)%t,l=s+t;i[r++]=o,i[r++]=a,i[r++]=s,i[r++]=s,i[r++]=a,i[r++]=l}return i}function R(e){var i=e.center,n=e.ellipsoid,o=e.semiMajorAxis,a=r.multiplyByScalar(n.geodeticSurfaceNormal(i,F),e.height,F);J.center=r.add(i,a,J.center),J.radius=o,a=r.multiplyByScalar(n.geodeticSurfaceNormal(i,a),e.extrudedHeight,a),$.center=r.add(i,a,$.center),$.radius=o;var s=d.computeEllipsePositions(e,!0,!0),l=s.positions,u=s.numPts,c=s.outerPositions,h=t.union(J,$),p=x(l,e,!0),m=P(u),_=m.length;m.length=2*_;for(var v=l.length/3,b=0;b<_;b+=3)m[b+_]=m[b+2]+v,m[b+1+_]=m[b+1]+v,m[b+2+_]=m[b]+v;var S=C.createTypedArray(2*v/3,m),E=new f({attributes:p,indices:S,primitiveType:T.TRIANGLES}),A=I(c,e);m=M(c);var w=C.createTypedArray(2*c.length/3,m),D=new f({attributes:A,indices:w,primitiveType:T.TRIANGLES}),R=y.combineInstances([new g({geometry:E}),new g({geometry:D})]);return{boundingSphere:h,attributes:R[0].attributes,indices:R[0].indices}}function O(e,t,i,n,o,a,s){for(var l=d.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:i,rotation:n,granularity:o},!1,!0),u=l.outerPositions,c=u.length/3,h=new Array(c),p=0;p<c;++p)h[p]=r.fromArray(u,3*p);var f=A.fromCartesianArray(h,a,s);return f.width>b.PI&&(f.north=f.north>0?b.PI_OVER_TWO-b.EPSILON7:f.north,f.south=f.south<0?b.EPSILON7-b.PI_OVER_TWO:f.south,f.east=b.PI,f.west=-b.PI),f}function L(e){e=s(e,s.EMPTY_OBJECT) -;var t=e.center,i=s(e.ellipsoid,h.WGS84),n=e.semiMajorAxis,o=e.semiMinorAxis,a=s(e.granularity,b.RADIANS_PER_DEGREE),l=s(e.vertexFormat,w.DEFAULT),u=s(e.height,0),c=s(e.extrudedHeight,u);this._center=r.clone(t),this._semiMajorAxis=n,this._semiMinorAxis=o,this._ellipsoid=h.clone(i),this._rotation=s(e.rotation,0),this._stRotation=s(e.stRotation,0),this._height=Math.max(c,u),this._granularity=a,this._vertexFormat=w.clone(l),this._extrudedHeight=Math.min(c,u),this._shadowVolume=s(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}function N(e){var t=-e._stRotation;if(0===t)return[0,0,0,1,1,0];for(var i=d.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0),n=i.outerPositions,o=n.length/3,a=new Array(o),s=0;s<o;++s)a[s]=r.fromArray(n,3*s);var l=e._ellipsoid,u=e.rectangle;return f._textureCoordinateRotationPoints(a,t,l,u)}var F=new r,B=new r,z=new r,k=new r,V=new i,U=new S,G=new S,H=new E,W=new r,q=new r,Y=new r,j=new n,X=new r,Q=new i,K=new i,Z=new r,J=new t,$=new t;L.packedLength=r.packedLength+h.packedLength+w.packedLength+9,L.pack=function(e,t,i){return i=s(i,0),r.pack(e._center,t,i),i+=r.packedLength,h.pack(e._ellipsoid,t,i),i+=h.packedLength,w.pack(e._vertexFormat,t,i),i+=w.packedLength,t[i++]=e._semiMajorAxis,t[i++]=e._semiMinorAxis,t[i++]=e._rotation,t[i++]=e._stRotation,t[i++]=e._height,t[i++]=e._granularity,t[i++]=e._extrudedHeight,t[i++]=e._shadowVolume?1:0,t[i]=s(e._offsetAttribute,-1),t};var ee=new r,te=new h,ie=new w,re={center:ee,ellipsoid:te,vertexFormat:ie,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};return L.unpack=function(e,t,i){t=s(t,0);var n=r.unpack(e,t,ee);t+=r.packedLength;var o=h.unpack(e,t,te);t+=h.packedLength;var a=w.unpack(e,t,ie);t+=w.packedLength;var u=e[t++],c=e[t++],d=e[t++],p=e[t++],f=e[t++],m=e[t++],_=e[t++],g=1===e[t++],v=e[t];return l(i)?(i._center=r.clone(n,i._center),i._ellipsoid=h.clone(o,i._ellipsoid),i._vertexFormat=w.clone(a,i._vertexFormat),i._semiMajorAxis=u,i._semiMinorAxis=c,i._rotation=d,i._stRotation=p,i._height=f,i._granularity=m,i._extrudedHeight=_,i._shadowVolume=g,i._offsetAttribute=-1===v?void 0:v,i):(re.height=f,re.extrudedHeight=_,re.granularity=m,re.stRotation=p,re.rotation=d,re.semiMajorAxis=u,re.semiMinorAxis=c,re.shadowVolume=g,re.offsetAttribute=-1===v?void 0:v,new L(re))},L.computeRectangle=function(e,t){e=s(e,s.EMPTY_OBJECT);var i=e.center,r=s(e.ellipsoid,h.WGS84),n=e.semiMajorAxis,o=e.semiMinorAxis,a=s(e.granularity,b.RADIANS_PER_DEGREE);return O(i,n,o,s(e.rotation,0),a,r,t)},L.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var i=t._height,r=t._extrudedHeight,n=!b.equalsEpsilon(i,r,0,b.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var o,s={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:i,granularity:t._granularity,vertexFormat:t._vertexFormat,stRotation:t._stRotation};if(n)s.extrudedHeight=r,s.shadowVolume=t._shadowVolume,s.offsetAttribute=t._offsetAttribute,o=R(s);else if(o=D(s),l(t._offsetAttribute)){var u=o.attributes.position.values.length,c=new Uint8Array(u/3),d=t._offsetAttribute===v.NONE?0:1;e(c,d),o.attributes.applyOffset=new m({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new f({attributes:o.attributes,indices:o.indices,primitiveType:T.TRIANGLES,boundingSphere:o.boundingSphere,offsetAttribute:t._offsetAttribute})}},L.createShadowVolume=function(e,t,i){var r=e._granularity,n=e._ellipsoid,o=t(r,n),a=i(r,n);return new L({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:n,rotation:e._rotation,stRotation:e._stRotation,granularity:r,extrudedHeight:o,height:a,vertexFormat:w.POSITION_ONLY,shadowVolume:!0})},u(L.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=O(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=N(this)),this._textureCoordinateRotationPoints}}}),L}),define("Core/CircleGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./EllipseGeometry","./Ellipsoid","./VertexFormat"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=i(e,i.EMPTY_OBJECT);var t=e.radius,r={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new o(r),this._workerName="createCircleGeometry"}l.packedLength=o.packedLength,l.pack=function(e,t,i){return o.pack(e._ellipseGeometry,t,i)};var u=new o({center:new e,semiMajorAxis:1,semiMinorAxis:1}),c={center:new e,radius:void 0,ellipsoid:a.clone(a.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new s,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};return l.unpack=function(t,i,n){var d=o.unpack(t,i,u);return c.center=e.clone(d._center,c.center),c.ellipsoid=a.clone(d._ellipsoid,c.ellipsoid),c.height=d._height,c.extrudedHeight=d._extrudedHeight,c.granularity=d._granularity,c.vertexFormat=s.clone(d._vertexFormat,c.vertexFormat),c.stRotation=d._stRotation,c.shadowVolume=d._shadowVolume,r(n)?(c.semiMajorAxis=d._semiMajorAxis,c.semiMinorAxis=d._semiMinorAxis,n._ellipseGeometry=new o(c),n):(c.radius=d._semiMajorAxis,new l(c))},l.createGeometry=function(e){return o.createGeometry(e._ellipseGeometry)},l.createShadowVolume=function(e,t,i){var r=e._ellipseGeometry._granularity,n=e._ellipseGeometry._ellipsoid,o=t(r,n),a=i(r,n);return new l({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:n,stRotation:e._ellipseGeometry._stRotation,granularity:r,extrudedHeight:o,height:a,vertexFormat:s.POSITION_ONLY,shadowVolume:!0})},n(l.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}}),l}),define("Core/EllipseOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){var n=e.center;C=i.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(n,C),e.height,C),C=i.add(n,C,C);for(var o=new t(C,e.semiMajorAxis),a=s.computeEllipsePositions(e,!1,!0).outerPositions,l=new d({position:new c({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:s.raisePositionsToHeight(a,e,!1)})}),u=a.length/3,h=p.createTypedArray(u,2*u),f=0,m=0;m<u;++m)h[f++]=m,h[f++]=(m+1)%u;return{boundingSphere:o,attributes:l,indices:h}}function g(a){var l=a.center,u=a.ellipsoid,m=a.semiMajorAxis,_=i.multiplyByScalar(u.geodeticSurfaceNormal(l,y),a.height,y);b.center=i.add(l,_,b.center),b.radius=m,_=i.multiplyByScalar(u.geodeticSurfaceNormal(l,_),a.extrudedHeight,_),S.center=i.add(l,_,S.center),S.radius=m;var g=s.computeEllipsePositions(a,!1,!0).outerPositions,v=new d({position:new c({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:s.raisePositionsToHeight(g,a,!0)})});g=v.position.values;var C=t.union(b,S),T=g.length/3;if(o(a.offsetAttribute)){var E=new Uint8Array(T);if(a.offsetAttribute===h.TOP)E=e(E,1,0,T/2);else{var A=a.offsetAttribute===h.NONE?0:1;E=e(E,A)}v.applyOffset=new c({componentDatatype:r.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}var w=n(a.numberOfVerticalLines,16);w=f.clamp(w,0,T/2);var x=p.createTypedArray(T,2*T+2*w);T/=2;var P,D=0;for(P=0;P<T;++P)x[D++]=P,x[D++]=(P+1)%T,x[D++]=P+T,x[D++]=(P+1)%T+T;var I;if(w>0){var M=Math.min(w,T);I=Math.round(T/M);var R=Math.min(I*w,T);for(P=0;P<R;P+=I)x[D++]=P,x[D++]=P+T}return{boundingSphere:C,attributes:v,indices:x}}function v(e){e=n(e,n.EMPTY_OBJECT);var t=e.center,r=n(e.ellipsoid,l.WGS84),o=e.semiMajorAxis,a=e.semiMinorAxis,s=n(e.granularity,f.RADIANS_PER_DEGREE),u=n(e.height,0),c=n(e.extrudedHeight,u);this._center=i.clone(t),this._semiMajorAxis=o,this._semiMinorAxis=a,this._ellipsoid=l.clone(r),this._rotation=n(e.rotation,0),this._height=Math.max(c,u),this._granularity=s,this._extrudedHeight=Math.min(c,u),this._numberOfVerticalLines=Math.max(n(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}var y=new i,C=new i,b=new t,S=new t;v.packedLength=i.packedLength+l.packedLength+8,v.pack=function(e,t,r){return r=n(r,0),i.pack(e._center,t,r),r+=i.packedLength,l.pack(e._ellipsoid,t,r),r+=l.packedLength,t[r++]=e._semiMajorAxis,t[r++]=e._semiMinorAxis,t[r++]=e._rotation,t[r++]=e._height,t[r++]=e._granularity,t[r++]=e._extrudedHeight,t[r++]=e._numberOfVerticalLines,t[r]=n(e._offsetAttribute,-1),t};var T=new i,E=new l,A={center:T,ellipsoid:E,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return v.unpack=function(e,t,r){t=n(t,0);var a=i.unpack(e,t,T);t+=i.packedLength;var s=l.unpack(e,t,E);t+=l.packedLength;var u=e[t++],c=e[t++],d=e[t++],h=e[t++],p=e[t++],f=e[t++],m=e[t++],_=e[t];return o(r)?(r._center=i.clone(a,r._center),r._ellipsoid=l.clone(s,r._ellipsoid),r._semiMajorAxis=u,r._semiMinorAxis=c,r._rotation=d,r._height=h,r._granularity=p,r._extrudedHeight=f,r._numberOfVerticalLines=m,r._offsetAttribute=-1===_?void 0:_,r):(A.height=h,A.extrudedHeight=f,A.granularity=p,A.rotation=d,A.semiMajorAxis=u,A.semiMinorAxis=c,A.numberOfVerticalLines=m,A.offsetAttribute=-1===_?void 0:_,new v(A))},v.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var i=t._height,n=t._extrudedHeight,a=!f.equalsEpsilon(i,n,0,f.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var s,l={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:i,granularity:t._granularity,numberOfVerticalLines:t._numberOfVerticalLines};if(a)l.extrudedHeight=n,l.offsetAttribute=t._offsetAttribute,s=g(l);else if(s=_(l),o(t._offsetAttribute)){var d=s.attributes.position.values.length,p=new Uint8Array(d/3),v=t._offsetAttribute===h.NONE?0:1;e(p,v),s.attributes.applyOffset=new c({componentDatatype:r.UNSIGNED_BYTE,componentsPerAttribute:1,values:p})}return new u({attributes:s.attributes,indices:s.indices,primitiveType:m.LINES,boundingSphere:s.boundingSphere,offsetAttribute:t._offsetAttribute})}},v}),define("Core/CircleOutlineGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipseOutlineGeometry","./Ellipsoid"],function(e,t,i,r,n,o){"use strict";function a(e){e=i(e,i.EMPTY_OBJECT);var t=e.radius,r={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new n(r),this._workerName="createCircleOutlineGeometry"}a.packedLength=n.packedLength,a.pack=function(e,t,i){return n.pack(e._ellipseGeometry,t,i)};var s=new n({center:new e,semiMajorAxis:1,semiMinorAxis:1}),l={center:new e,radius:void 0,ellipsoid:o.clone(o.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};return a.unpack=function(t,i,u){var c=n.unpack(t,i,s);return l.center=e.clone(c._center,l.center),l.ellipsoid=o.clone(c._ellipsoid,l.ellipsoid),l.height=c._height,l.extrudedHeight=c._extrudedHeight,l.granularity=c._granularity,l.numberOfVerticalLines=c._numberOfVerticalLines,r(u)?(l.semiMajorAxis=c._semiMajorAxis,l.semiMinorAxis=c._semiMinorAxis,u._ellipseGeometry=new n(l),u):(l.radius=c._semiMajorAxis,new a(l))},a.createGeometry=function(e){return n.createGeometry(e._ellipseGeometry)},a}),define("Core/ClockRange",["./freezeObject"],function(e){"use strict";return e({UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2})}),define("Core/ClockStep",["./freezeObject"],function(e){"use strict";return e({TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2})}),define("Core/getTimestamp",[],function(){"use strict";return"undefined"!=typeof performance&&"function"==typeof performance.now&&isFinite(performance.now())?function(){return performance.now()}:function(){return Date.now()}}),define("Core/Clock",["./ClockRange","./ClockStep","./defaultValue","./defined","./defineProperties","./DeveloperError","./Event","./getTimestamp","./JulianDate"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(n){n=i(n,i.EMPTY_OBJECT);var o=n.currentTime,u=n.startTime,c=n.stopTime;o=r(o)?l.clone(o):r(u)?l.clone(u):r(c)?l.addDays(c,-1,new l):l.now(),u=r(u)?l.clone(u):l.clone(o),c=r(c)?l.clone(c):l.addDays(u,1,new l),this.startTime=u,this.stopTime=c,this.clockRange=i(n.clockRange,e.UNBOUNDED),this.canAnimate=i(n.canAnimate,!0),this.onTick=new a,this.onStop=new a,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=s(),this.currentTime=o,this.multiplier=i(n.multiplier,1),this.shouldAnimate=i(n.shouldAnimate,!1),this.clockStep=i(n.clockStep,t.SYSTEM_CLOCK_MULTIPLIER)}return n(u.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){l.equals(this._currentTime,e)||(this._clockStep===t.SYSTEM_CLOCK&&(this._clockStep=t.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===t.SYSTEM_CLOCK&&(this._clockStep=t.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===t.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=l.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===t.SYSTEM_CLOCK&&(this._clockStep=t.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}}),u.prototype.tick=function(){var i=s(),r=l.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){var n=this._clockStep;if(n===t.SYSTEM_CLOCK)r=l.now(r);else{var o=this._multiplier;if(n===t.TICK_DEPENDENT)r=l.addSeconds(r,o,r);else{var a=i-this._lastSystemTime;r=l.addSeconds(r,o*(a/1e3),r)}var u=this.clockRange,c=this.startTime,d=this.stopTime;if(u===e.CLAMPED)l.lessThan(r,c)?r=l.clone(c,r):l.greaterThan(r,d)&&(r=l.clone(d,r),this.onStop.raiseEvent(this));else if(u===e.LOOP_STOP)for(l.lessThan(r,c)&&(r=l.clone(c,r));l.greaterThan(r,d);)r=l.addSeconds(c,l.secondsDifference(r,d),r),this.onStop.raiseEvent(this)}}return this._currentTime=r,this._lastSystemTime=i,this.onTick.raiseEvent(this),r},u}),define("Core/Color",["./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math"],function(e,t,i,r,n,o){"use strict";function a(e,t,i){return i<0&&(i+=1),i>1&&(i-=1),6*i<1?e+6*(t-e)*i:2*i<1?t:3*i<2?e+(t-e)*(2/3-i)*6:e}function s(e,i,r,n){this.red=t(e,1),this.green=t(i,1),this.blue=t(r,1),this.alpha=t(n,1)}s.fromCartesian4=function(e,t){return i(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new s(e.x,e.y,e.z,e.w)},s.fromBytes=function(e,r,n,o,a){return e=s.byteToFloat(t(e,255)),r=s.byteToFloat(t(r,255)),n=s.byteToFloat(t(n,255)),o=s.byteToFloat(t(o,255)),i(a)?(a.red=e,a.green=r,a.blue=n,a.alpha=o,a):new s(e,r,n,o)},s.fromAlpha=function(e,t,r){return i(r)?(r.red=e.red,r.green=e.green,r.blue=e.blue,r.alpha=t,r):new s(e.red,e.green,e.blue,t)};var l,u,c;r.supportsTypedArrays()&&(l=new ArrayBuffer(4),u=new Uint32Array(l),c=new Uint8Array(l)),s.fromRgba=function(e,t){return u[0]=e,s.fromBytes(c[0],c[1],c[2],c[3],t)},s.fromHsl=function(e,r,n,o,l){e=t(e,0)%1,r=t(r,0),n=t(n,0),o=t(o,1);var u=n,c=n,d=n;if(0!==r){var h;h=n<.5?n*(1+r):n+r-n*r;var p=2*n-h;u=a(p,h,e+1/3),c=a(p,h,e),d=a(p,h,e-1/3)}return i(l)?(l.red=u,l.green=c,l.blue=d,l.alpha=o,l):new s(u,c,d,o)},s.fromRandom=function(e,r){e=t(e,t.EMPTY_OBJECT);var n=e.red;if(!i(n)){var a=t(e.minimumRed,0),l=t(e.maximumRed,1);n=a+o.nextRandomNumber()*(l-a)}var u=e.green;if(!i(u)){var c=t(e.minimumGreen,0),d=t(e.maximumGreen,1);u=c+o.nextRandomNumber()*(d-c)}var h=e.blue;if(!i(h)){var p=t(e.minimumBlue,0),f=t(e.maximumBlue,1);h=p+o.nextRandomNumber()*(f-p)}var m=e.alpha;if(!i(m)){var _=t(e.minimumAlpha,0),g=t(e.maximumAlpha,1);m=_+o.nextRandomNumber()*(g-_)}return i(r)?(r.red=n,r.green=u,r.blue=h,r.alpha=m,r):new s(n,u,h,m)};var d=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,h=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,p=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,f=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;return s.fromCssColorString=function(e,r){i(r)||(r=new s);var n=s[e.toUpperCase()];if(i(n))return s.clone(n,r),r;var o=d.exec(e);return null!==o?(r.red=parseInt(o[1],16)/15,r.green=parseInt(o[2],16)/15,r.blue=parseInt(o[3],16)/15,r.alpha=1,r):null!==(o=h.exec(e))?(r.red=parseInt(o[1],16)/255,r.green=parseInt(o[2],16)/255,r.blue=parseInt(o[3],16)/255,r.alpha=1,r):null!==(o=p.exec(e))?(r.red=parseFloat(o[1])/("%"===o[1].substr(-1)?100:255),r.green=parseFloat(o[2])/("%"===o[2].substr(-1)?100:255),r.blue=parseFloat(o[3])/("%"===o[3].substr(-1)?100:255),r.alpha=parseFloat(t(o[4],"1.0")),r):null!==(o=f.exec(e))?s.fromHsl(parseFloat(o[1])/360,parseFloat(o[2])/100,parseFloat(o[3])/100,parseFloat(t(o[4],"1.0")),r):r=void 0},s.packedLength=4,s.pack=function(e,i,r){return r=t(r,0),i[r++]=e.red,i[r++]=e.green,i[r++]=e.blue,i[r]=e.alpha,i},s.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new s),n.red=e[r++],n.green=e[r++],n.blue=e[r++],n.alpha=e[r],n},s.byteToFloat=function(e){return e/255},s.floatToByte=function(e){return 1===e?255:256*e|0},s.clone=function(e,t){if(i(e))return i(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new s(e.red,e.green,e.blue,e.alpha)},s.equals=function(e,t){return e===t||i(e)&&i(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},s.equalsArray=function(e,t,i){return e.red===t[i]&&e.green===t[i+1]&&e.blue===t[i+2]&&e.alpha===t[i+3]},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return this===e||i(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},s.prototype.toString=function(){return"("+this.red+", "+this.green+", "+this.blue+", "+this.alpha+")"},s.prototype.toCssColorString=function(){var e=s.floatToByte(this.red),t=s.floatToByte(this.green),i=s.floatToByte(this.blue);return 1===this.alpha?"rgb("+e+","+t+","+i+")":"rgba("+e+","+t+","+i+","+this.alpha+")"},s.prototype.toBytes=function(e){var t=s.floatToByte(this.red),r=s.floatToByte(this.green),n=s.floatToByte(this.blue),o=s.floatToByte(this.alpha);return i(e)?(e[0]=t,e[1]=r,e[2]=n,e[3]=o,e):[t,r,n,o]},s.prototype.toRgba=function(){return c[0]=s.floatToByte(this.red),c[1]=s.floatToByte(this.green),c[2]=s.floatToByte(this.blue),c[3]=s.floatToByte(this.alpha),u[0]},s.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t},s.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t},s.prototype.withAlpha=function(e,t){return s.fromAlpha(this,e,t)},s.add=function(e,t,i){return i.red=e.red+t.red,i.green=e.green+t.green,i.blue=e.blue+t.blue,i.alpha=e.alpha+t.alpha,i},s.subtract=function(e,t,i){return i.red=e.red-t.red,i.green=e.green-t.green,i.blue=e.blue-t.blue,i.alpha=e.alpha-t.alpha,i},s.multiply=function(e,t,i){return i.red=e.red*t.red,i.green=e.green*t.green,i.blue=e.blue*t.blue,i.alpha=e.alpha*t.alpha,i},s.divide=function(e,t,i){return i.red=e.red/t.red,i.green=e.green/t.green,i.blue=e.blue/t.blue,i.alpha=e.alpha/t.alpha,i},s.mod=function(e,t,i){return i.red=e.red%t.red,i.green=e.green%t.green,i.blue=e.blue%t.blue,i.alpha=e.alpha%t.alpha,i},s.multiplyByScalar=function(e,t,i){return i.red=e.red*t,i.green=e.green*t,i.blue=e.blue*t,i.alpha=e.alpha*t,i},s.divideByScalar=function(e,t,i){return i.red=e.red/t,i.green=e.green/t,i.blue=e.blue/t,i.alpha=e.alpha/t,i},s.ALICEBLUE=n(s.fromCssColorString("#F0F8FF")),s.ANTIQUEWHITE=n(s.fromCssColorString("#FAEBD7")),s.AQUA=n(s.fromCssColorString("#00FFFF")),s.AQUAMARINE=n(s.fromCssColorString("#7FFFD4")),s.AZURE=n(s.fromCssColorString("#F0FFFF")),s.BEIGE=n(s.fromCssColorString("#F5F5DC")),s.BISQUE=n(s.fromCssColorString("#FFE4C4")),s.BLACK=n(s.fromCssColorString("#000000")),s.BLANCHEDALMOND=n(s.fromCssColorString("#FFEBCD")),s.BLUE=n(s.fromCssColorString("#0000FF")),s.BLUEVIOLET=n(s.fromCssColorString("#8A2BE2")),s.BROWN=n(s.fromCssColorString("#A52A2A")),s.BURLYWOOD=n(s.fromCssColorString("#DEB887")),s.CADETBLUE=n(s.fromCssColorString("#5F9EA0")),s.CHARTREUSE=n(s.fromCssColorString("#7FFF00")),s.CHOCOLATE=n(s.fromCssColorString("#D2691E")),s.CORAL=n(s.fromCssColorString("#FF7F50")),s.CORNFLOWERBLUE=n(s.fromCssColorString("#6495ED")),s.CORNSILK=n(s.fromCssColorString("#FFF8DC")),s.CRIMSON=n(s.fromCssColorString("#DC143C")),s.CYAN=n(s.fromCssColorString("#00FFFF")),s.DARKBLUE=n(s.fromCssColorString("#00008B")),s.DARKCYAN=n(s.fromCssColorString("#008B8B")),s.DARKGOLDENROD=n(s.fromCssColorString("#B8860B")),s.DARKGRAY=n(s.fromCssColorString("#A9A9A9")),s.DARKGREEN=n(s.fromCssColorString("#006400")),s.DARKGREY=s.DARKGRAY,s.DARKKHAKI=n(s.fromCssColorString("#BDB76B")),s.DARKMAGENTA=n(s.fromCssColorString("#8B008B")),s.DARKOLIVEGREEN=n(s.fromCssColorString("#556B2F")),s.DARKORANGE=n(s.fromCssColorString("#FF8C00")),s.DARKORCHID=n(s.fromCssColorString("#9932CC")),s.DARKRED=n(s.fromCssColorString("#8B0000")),s.DARKSALMON=n(s.fromCssColorString("#E9967A")),s.DARKSEAGREEN=n(s.fromCssColorString("#8FBC8F")),s.DARKSLATEBLUE=n(s.fromCssColorString("#483D8B")),s.DARKSLATEGRAY=n(s.fromCssColorString("#2F4F4F")),s.DARKSLATEGREY=s.DARKSLATEGRAY,s.DARKTURQUOISE=n(s.fromCssColorString("#00CED1")),s.DARKVIOLET=n(s.fromCssColorString("#9400D3")),s.DEEPPINK=n(s.fromCssColorString("#FF1493")),s.DEEPSKYBLUE=n(s.fromCssColorString("#00BFFF")),s.DIMGRAY=n(s.fromCssColorString("#696969")),s.DIMGREY=s.DIMGRAY,s.DODGERBLUE=n(s.fromCssColorString("#1E90FF")),s.FIREBRICK=n(s.fromCssColorString("#B22222")),s.FLORALWHITE=n(s.fromCssColorString("#FFFAF0")),s.FORESTGREEN=n(s.fromCssColorString("#228B22")),s.FUCHSIA=n(s.fromCssColorString("#FF00FF")),s.GAINSBORO=n(s.fromCssColorString("#DCDCDC")),s.GHOSTWHITE=n(s.fromCssColorString("#F8F8FF")),s.GOLD=n(s.fromCssColorString("#FFD700")),s.GOLDENROD=n(s.fromCssColorString("#DAA520")),s.GRAY=n(s.fromCssColorString("#808080")),s.GREEN=n(s.fromCssColorString("#008000")),s.GREENYELLOW=n(s.fromCssColorString("#ADFF2F")),s.GREY=s.GRAY,s.HONEYDEW=n(s.fromCssColorString("#F0FFF0")),s.HOTPINK=n(s.fromCssColorString("#FF69B4")),s.INDIANRED=n(s.fromCssColorString("#CD5C5C")),s.INDIGO=n(s.fromCssColorString("#4B0082")),s.IVORY=n(s.fromCssColorString("#FFFFF0")),s.KHAKI=n(s.fromCssColorString("#F0E68C")),s.LAVENDER=n(s.fromCssColorString("#E6E6FA")),s.LAVENDAR_BLUSH=n(s.fromCssColorString("#FFF0F5")),s.LAWNGREEN=n(s.fromCssColorString("#7CFC00")),s.LEMONCHIFFON=n(s.fromCssColorString("#FFFACD")),s.LIGHTBLUE=n(s.fromCssColorString("#ADD8E6")),s.LIGHTCORAL=n(s.fromCssColorString("#F08080")),s.LIGHTCYAN=n(s.fromCssColorString("#E0FFFF")),s.LIGHTGOLDENRODYELLOW=n(s.fromCssColorString("#FAFAD2")),s.LIGHTGRAY=n(s.fromCssColorString("#D3D3D3")),s.LIGHTGREEN=n(s.fromCssColorString("#90EE90")),s.LIGHTGREY=s.LIGHTGRAY,s.LIGHTPINK=n(s.fromCssColorString("#FFB6C1")),s.LIGHTSEAGREEN=n(s.fromCssColorString("#20B2AA")),s.LIGHTSKYBLUE=n(s.fromCssColorString("#87CEFA")),s.LIGHTSLATEGRAY=n(s.fromCssColorString("#778899")),s.LIGHTSLATEGREY=s.LIGHTSLATEGRAY,s.LIGHTSTEELBLUE=n(s.fromCssColorString("#B0C4DE")),s.LIGHTYELLOW=n(s.fromCssColorString("#FFFFE0")),s.LIME=n(s.fromCssColorString("#00FF00")),s.LIMEGREEN=n(s.fromCssColorString("#32CD32")),s.LINEN=n(s.fromCssColorString("#FAF0E6")),s.MAGENTA=n(s.fromCssColorString("#FF00FF")),s.MAROON=n(s.fromCssColorString("#800000")),s.MEDIUMAQUAMARINE=n(s.fromCssColorString("#66CDAA")),s.MEDIUMBLUE=n(s.fromCssColorString("#0000CD")),s.MEDIUMORCHID=n(s.fromCssColorString("#BA55D3")),s.MEDIUMPURPLE=n(s.fromCssColorString("#9370DB")),s.MEDIUMSEAGREEN=n(s.fromCssColorString("#3CB371")),s.MEDIUMSLATEBLUE=n(s.fromCssColorString("#7B68EE")),s.MEDIUMSPRINGGREEN=n(s.fromCssColorString("#00FA9A")),s.MEDIUMTURQUOISE=n(s.fromCssColorString("#48D1CC")),s.MEDIUMVIOLETRED=n(s.fromCssColorString("#C71585")),s.MIDNIGHTBLUE=n(s.fromCssColorString("#191970")),s.MINTCREAM=n(s.fromCssColorString("#F5FFFA")),s.MISTYROSE=n(s.fromCssColorString("#FFE4E1")),s.MOCCASIN=n(s.fromCssColorString("#FFE4B5")),s.NAVAJOWHITE=n(s.fromCssColorString("#FFDEAD")),s.NAVY=n(s.fromCssColorString("#000080")),s.OLDLACE=n(s.fromCssColorString("#FDF5E6")),s.OLIVE=n(s.fromCssColorString("#808000")),s.OLIVEDRAB=n(s.fromCssColorString("#6B8E23")),s.ORANGE=n(s.fromCssColorString("#FFA500")),s.ORANGERED=n(s.fromCssColorString("#FF4500")),s.ORCHID=n(s.fromCssColorString("#DA70D6")),s.PALEGOLDENROD=n(s.fromCssColorString("#EEE8AA")),s.PALEGREEN=n(s.fromCssColorString("#98FB98")),s.PALETURQUOISE=n(s.fromCssColorString("#AFEEEE")),s.PALEVIOLETRED=n(s.fromCssColorString("#DB7093")),s.PAPAYAWHIP=n(s.fromCssColorString("#FFEFD5")),s.PEACHPUFF=n(s.fromCssColorString("#FFDAB9")),s.PERU=n(s.fromCssColorString("#CD853F")),s.PINK=n(s.fromCssColorString("#FFC0CB")),s.PLUM=n(s.fromCssColorString("#DDA0DD")),s.POWDERBLUE=n(s.fromCssColorString("#B0E0E6")),s.PURPLE=n(s.fromCssColorString("#800080")),s.RED=n(s.fromCssColorString("#FF0000")),s.ROSYBROWN=n(s.fromCssColorString("#BC8F8F")),s.ROYALBLUE=n(s.fromCssColorString("#4169E1")),s.SADDLEBROWN=n(s.fromCssColorString("#8B4513")),s.SALMON=n(s.fromCssColorString("#FA8072")),s.SANDYBROWN=n(s.fromCssColorString("#F4A460")),s.SEAGREEN=n(s.fromCssColorString("#2E8B57")),s.SEASHELL=n(s.fromCssColorString("#FFF5EE")),s.SIENNA=n(s.fromCssColorString("#A0522D")),s.SILVER=n(s.fromCssColorString("#C0C0C0")),s.SKYBLUE=n(s.fromCssColorString("#87CEEB")),s.SLATEBLUE=n(s.fromCssColorString("#6A5ACD")),s.SLATEGRAY=n(s.fromCssColorString("#708090")),s.SLATEGREY=s.SLATEGRAY,s.SNOW=n(s.fromCssColorString("#FFFAFA")),s.SPRINGGREEN=n(s.fromCssColorString("#00FF7F")),s.STEELBLUE=n(s.fromCssColorString("#4682B4")),s.TAN=n(s.fromCssColorString("#D2B48C")),s.TEAL=n(s.fromCssColorString("#008080")),s.THISTLE=n(s.fromCssColorString("#D8BFD8")),s.TOMATO=n(s.fromCssColorString("#FF6347")),s.TURQUOISE=n(s.fromCssColorString("#40E0D0")),s.VIOLET=n(s.fromCssColorString("#EE82EE")),s.WHEAT=n(s.fromCssColorString("#F5DEB3")),s.WHITE=n(s.fromCssColorString("#FFFFFF")),s.WHITESMOKE=n(s.fromCssColorString("#F5F5F5")),s.YELLOW=n(s.fromCssColorString("#FFFF00")),s.YELLOWGREEN=n(s.fromCssColorString("#9ACD32")),s.TRANSPARENT=n(new s(0,0,0,0)),s}),define("Core/ColorGeometryInstanceAttribute",["./Color","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError"],function(e,t,i,r,n,o){"use strict";function a(t,r,n,o){t=i(t,1),r=i(r,1),n=i(n,1),o=i(o,1),this.value=new Uint8Array([e.floatToByte(t),e.floatToByte(r),e.floatToByte(n),e.floatToByte(o)])}return n(a.prototype,{componentDatatype:{get:function(){return t.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}}),a.fromColor=function(e){return new a(e.red,e.green,e.blue,e.alpha)},a.toValue=function(e,t){return r(t)?e.toBytes(t):new Uint8Array(e.toBytes())},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]},a}),define("Core/CompressedTextureBuffer",["./defined","./defineProperties"],function(e,t){"use strict";function i(e,t,i,r){this._format=e,this._width=t,this._height=i,this._buffer=r}return t(i.prototype,{internalFormat:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}}),i.clone=function(t){if(e(t))return new i(t._format,t._width,t._height,t._buffer)},i.prototype.clone=function(){return i.clone(this)},i}),define("Core/CoplanarPolygonGeometryLibrary",["./defined","./Cartesian2","./Cartesian3","./Check","./IntersectionTests","./Math","./Matrix3","./OrientedBoundingBox"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,r,n,o,a){var s=i.subtract(e,r,c),l=i.dot(n,s),u=i.dot(o,s);return t.fromElements(l,u,a)}var u={},c=new i,d=new i,h=new i,p=new i,f=new s;return u.validOutline=function(e){var t=s.fromPoints(e,f),r=t.halfAxes,n=a.getColumn(r,0,d),o=a.getColumn(r,1,h),l=a.getColumn(r,2,p),u=i.magnitude(n),c=i.magnitude(o),m=i.magnitude(l);return!(0===u&&(0===c||0===m)||0===c&&0===m)},u.computeProjectTo2DArguments=function(e,t,r,n){var o=s.fromPoints(e,f),l=o.halfAxes,u=a.getColumn(l,0,d),c=a.getColumn(l,1,h),m=a.getColumn(l,2,p),_=i.magnitude(u),g=i.magnitude(c),v=i.magnitude(m),y=Math.min(_,g,v);if(0===_&&(0===g||0===v)||0===g&&0===v)return!1;var C,b;return y!==g&&y!==v||(C=u),y===_?C=c:y===v&&(b=c),y!==_&&y!==g||(b=m),i.normalize(C,r),i.normalize(b,n),i.clone(o.center,t),!0},u.createProjectPointsTo2DFunction=function(e,t,i){return function(r){for(var n=new Array(r.length),o=0;o<r.length;o++)n[o]=l(r[o],e,t,i);return n}},u.createProjectPointTo2DFunction=function(e,t,i){return function(r,n){return l(r,e,t,i,n)}},u}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e,t,i){if(0===e)return t*i;var r=e*e,n=r*r,o=n*r,a=o*r,s=a*r,l=s*r,u=i;return t*((1-r/4-3*n/64-5*o/256-175*a/16384-441*s/65536-4851*l/1048576)*u-(3*r/8+3*n/32+45*o/1024+105*a/4096+2205*s/131072+6237*l/524288)*Math.sin(2*u)+(15*n/256+45*o/1024+525*a/16384+1575*s/65536+155925*l/8388608)*Math.sin(4*u)-(35*o/3072+175*a/12288+3675*s/262144+13475*l/1048576)*Math.sin(6*u)+(315*a/131072+2205*s/524288+43659*l/8388608)*Math.sin(8*u)-(693*s/1310720+6237*l/5242880)*Math.sin(10*u)+1001*l/8388608*Math.sin(12*u))}function c(e,t,i){var r=e/i;if(0===t)return r;var n=r*r,o=n*r,a=o*r,s=t,l=s*s,u=l*l,c=u*l,d=c*l,h=d*l,p=h*l,f=Math.sin(2*r),m=Math.cos(2*r),_=Math.sin(4*r),g=Math.cos(4*r),v=Math.sin(6*r),y=Math.cos(6*r),C=Math.sin(8*r),b=Math.cos(8*r),S=Math.sin(10*r);return r+r*l/4+7*r*u/64+15*r*c/256+579*r*d/16384+1515*r*h/65536+16837*r*p/1048576+(3*r*u/16+45*r*c/256-r*(32*n-561)*d/4096-r*(232*n-1677)*h/16384+r*(399985-90560*n+512*a)*p/5242880)*m+(21*r*c/256+483*r*d/4096-r*(224*n-1969)*h/16384-r*(33152*n-112599)*p/1048576)*g+(151*r*d/4096+4681*r*h/65536+1479*r*p/16384-453*o*p/32768)*y+(1097*r*h/65536+42783*r*p/1048576)*b+8011*r*p/1048576*Math.cos(10*r)+(3*l/8+3*u/16+213*c/2048-3*n*c/64+255*d/4096-33*n*d/512+20861*h/524288-33*n*h/512+a*h/1024+28273*p/1048576-471*n*p/8192+9*a*p/4096)*f+(21*u/256+21*c/256+533*d/8192-21*n*d/512+197*h/4096-315*n*h/4096+584039*p/16777216-12517*n*p/131072+7*a*p/2048)*_+(151*c/6144+151*d/4096+5019*h/131072-453*n*h/16384+26965*p/786432-8607*n*p/131072)*v+(1097*d/131072+1097*h/65536+225797*p/10485760-1097*n*p/65536)*C+(8011*h/2621440+8011*p/1048576)*S+293393*p/251658240*Math.sin(12*r)}function d(e,t){ -if(0===e)return Math.log(Math.tan(.5*(l.PI_OVER_TWO+t)));var i=e*Math.sin(t);return Math.log(Math.tan(.5*(l.PI_OVER_TWO+t)))-e/2*Math.log((1+i)/(1-i))}function h(e,t,i,r,n){var o=d(e._ellipticity,i),a=d(e._ellipticity,n);return Math.atan2(l.negativePiToPi(r-t),a-o)}function p(e,t,i,r,n,o,a){var s=e._heading,c=o-r,d=0;if(l.equalsEpsilon(Math.abs(s),l.PI_OVER_TWO,l.EPSILON8))if(t===i)d=t*Math.cos(n)*l.negativePiToPi(c);else{var h=Math.sin(n);d=t*Math.cos(n)*l.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var p=u(e._ellipticity,t,n);d=(u(e._ellipticity,t,a)-p)/Math.cos(s)}return Math.abs(d)}function f(i,r,n,o){var a=(e.normalize(o.cartographicToCartesian(r,v),g),e.normalize(o.cartographicToCartesian(n,v),v),o.maximumRadius),s=o.minimumRadius,l=a*a,u=s*s;i._ellipticitySquared=(l-u)/l,i._ellipticity=Math.sqrt(i._ellipticitySquared),i._start=t.clone(r,i._start),i._start.height=0,i._end=t.clone(n,i._end),i._end.height=0,i._heading=h(i,r.longitude,r.latitude,n.longitude,n.latitude),i._distance=p(i,o.maximumRadius,o.minimumRadius,r.longitude,r.latitude,n.longitude,n.latitude)}function m(e,i,r,o,a,s){var h,p,f,m=a*a;if(Math.abs(l.PI_OVER_TWO-Math.abs(i))>l.EPSILON8){p=c(u(a,o,e.latitude)+r*Math.cos(i),a,o);var _=d(a,e.latitude),g=d(a,p);f=Math.tan(i)*(g-_),h=l.negativePiToPi(e.longitude+f)}else{p=e.latitude;var v;if(0===a)v=o*Math.cos(e.latitude);else{var y=Math.sin(e.latitude);v=o*Math.cos(e.latitude)/Math.sqrt(1-m*y*y)}f=r/v,h=i>0?l.negativePiToPi(e.longitude+f):l.negativePiToPi(e.longitude-f)}return n(s)?(s.longitude=h,s.latitude=p,s.height=0,s):new t(h,p,0)}function _(e,i,o){var a=r(o,s.WGS84);this._ellipsoid=a,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,n(e)&&n(i)&&f(this,e,i,a)}var g=new e,v=new e;return o(_.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),_.fromStartHeadingDistance=function(e,t,i,o,a){var u=r(o,s.WGS84),c=u.maximumRadius,d=u.minimumRadius,h=c*c,p=d*d,f=Math.sqrt((h-p)/h);t=l.negativePiToPi(t);var g=m(e,t,i,u.maximumRadius,f);return!n(a)||n(o)&&!o.equals(a.ellipsoid)?new _(e,g,u):(a.setEndPoints(e,g),a)},_.prototype.setEndPoints=function(e,t){f(this,e,t,this._ellipsoid)},_.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},_.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},_.prototype.findIntersectionWithLongitude=function(e,i){var r=this._ellipticity,o=this._heading,a=Math.abs(o),s=this._start;if(e=l.negativePiToPi(e),l.equalsEpsilon(Math.abs(e),Math.PI,l.EPSILON14)&&(e=l.sign(s.longitude)*Math.PI),n(i)||(i=new t),Math.abs(l.PI_OVER_TWO-a)<=l.EPSILON8)return i.longitude=e,i.latitude=s.latitude,i.height=0,i;if(l.equalsEpsilon(Math.abs(l.PI_OVER_TWO-a),l.PI_OVER_TWO,l.EPSILON8)){if(l.equalsEpsilon(e,s.longitude,l.EPSILON12))return;return i.longitude=e,i.latitude=l.PI_OVER_TWO*l.sign(l.PI_OVER_TWO-o),i.height=0,i}var u,c=s.latitude,d=r*Math.sin(c),h=Math.tan(.5*(l.PI_OVER_TWO+c))*Math.exp((e-s.longitude)/Math.tan(o)),p=(1+d)/(1-d),f=s.latitude;do{u=f;var m=r*Math.sin(u),_=(1+m)/(1-m);f=2*Math.atan(h*Math.pow(_/p,r/2))-l.PI_OVER_TWO}while(!l.equalsEpsilon(f,u,l.EPSILON12));return i.longitude=e,i.latitude=f,i.height=0,i},_.prototype.findIntersectionWithLatitude=function(e,i){var r=this._ellipticity,o=this._heading,a=this._start;if(!l.equalsEpsilon(Math.abs(o),l.PI_OVER_TWO,l.EPSILON8)){var s=d(r,a.latitude),u=d(r,e),c=Math.tan(o)*(u-s),h=l.negativePiToPi(a.longitude+c);return n(i)?(i.longitude=h,i.latitude=e,i.height=0,i):new t(h,e,0)}},_}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,i,n){n=n||2;var o=i&&i.length,a=o?i[0]*n:e.length,s=t(e,0,a,n,!0),u=[];if(!s)return u;var c,d,h,p,f,m,_;if(o&&(s=l(e,i,s,n)),e.length>80*n){c=h=e[0],d=p=e[1];for(var g=n;g<a;g+=n)f=e[g],m=e[g+1],f<c&&(c=f),m<d&&(d=m),f>h&&(h=f),m>p&&(p=m);_=Math.max(h-c,p-d)}return r(s,u,n,c,d,_),u}function t(e,t,i,r,n){var o,a;if(n===P(e,t,i,r)>0)for(o=t;o<i;o+=r)a=A(o,e[o],e[o+1],a);else for(o=i-r;o>=t;o-=r)a=A(o,e[o],e[o+1],a);return a&&y(a,a.next)&&(w(a),a=a.next),a}function i(e,t){if(!e)return e;t||(t=e);var i,r=e;do{if(i=!1,r.steiner||!y(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(w(r),(r=t=r.prev)===r.next)return null;i=!0}}while(i||r!==t);return t}function r(e,t,l,u,c,d,p){if(e){!p&&d&&h(e,u,c,d);for(var f,m,_=e;e.prev!==e.next;)if(f=e.prev,m=e.next,d?o(e,u,c,d):n(e))t.push(f.i/l),t.push(e.i/l),t.push(m.i/l),w(e),e=m.next,_=m.next;else if((e=m)===_){p?1===p?(e=a(e,t,l),r(e,t,l,u,c,d,2)):2===p&&s(e,t,l,u,c,d):r(i(e),t,l,u,c,d,1);break}}}function n(e){var t=e.prev,i=e,r=e.next;if(v(t,i,r)>=0)return!1;for(var n=e.next.next;n!==e.prev;){if(_(t.x,t.y,i.x,i.y,r.x,r.y,n.x,n.y)&&v(n.prev,n,n.next)>=0)return!1;n=n.next}return!0}function o(e,t,i,r){var n=e.prev,o=e,a=e.next;if(v(n,o,a)>=0)return!1;for(var s=n.x<o.x?n.x<a.x?n.x:a.x:o.x<a.x?o.x:a.x,l=n.y<o.y?n.y<a.y?n.y:a.y:o.y<a.y?o.y:a.y,u=n.x>o.x?n.x>a.x?n.x:a.x:o.x>a.x?o.x:a.x,c=n.y>o.y?n.y>a.y?n.y:a.y:o.y>a.y?o.y:a.y,d=f(s,l,t,i,r),h=f(u,c,t,i,r),p=e.nextZ;p&&p.z<=h;){if(p!==e.prev&&p!==e.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.nextZ}for(p=e.prevZ;p&&p.z>=d;){if(p!==e.prev&&p!==e.next&&_(n.x,n.y,o.x,o.y,a.x,a.y,p.x,p.y)&&v(p.prev,p,p.next)>=0)return!1;p=p.prevZ}return!0}function a(e,t,i){var r=e;do{var n=r.prev,o=r.next.next;!y(n,o)&&C(n,r,r.next,o)&&S(n,o)&&S(o,n)&&(t.push(n.i/i),t.push(r.i/i),t.push(o.i/i),w(r),w(r.next),r=e=o),r=r.next}while(r!==e);return r}function s(e,t,n,o,a,s){var l=e;do{for(var u=l.next.next;u!==l.prev;){if(l.i!==u.i&&g(l,u)){var c=E(l,u);return l=i(l,l.next),c=i(c,c.next),r(l,t,n,o,a,s),void r(c,t,n,o,a,s)}u=u.next}l=l.next}while(l!==e)}function l(e,r,n,o){var a,s,l,d,h,p=[];for(a=0,s=r.length;a<s;a++)l=r[a]*o,d=a<s-1?r[a+1]*o:e.length,h=t(e,l,d,o,!1),h===h.next&&(h.steiner=!0),p.push(m(h));for(p.sort(u),a=0;a<p.length;a++)c(p[a],n),n=i(n,n.next);return n}function u(e,t){return e.x-t.x}function c(e,t){if(t=d(e,t)){var r=E(t,e);i(r,r.next)}}function d(e,t){var i,r=t,n=e.x,o=e.y,a=-1/0;do{if(o<=r.y&&o>=r.next.y){var s=r.x+(o-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(s<=n&&s>a){if(a=s,s===n){if(o===r.y)return r;if(o===r.next.y)return r.next}i=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!i)return null;if(n===a)return i.prev;var l,u=i,c=i.x,d=i.y,h=1/0;for(r=i.next;r!==u;)n>=r.x&&r.x>=c&&_(o<d?n:a,o,c,d,o<d?a:n,o,r.x,r.y)&&((l=Math.abs(o-r.y)/(n-r.x))<h||l===h&&r.x>i.x)&&S(r,e)&&(i=r,h=l),r=r.next;return i}function h(e,t,i,r){var n=e;do{null===n.z&&(n.z=f(n.x,n.y,t,i,r)),n.prevZ=n.prev,n.nextZ=n.next,n=n.next}while(n!==e);n.prevZ.nextZ=null,n.prevZ=null,p(n)}function p(e){var t,i,r,n,o,a,s,l,u=1;do{for(i=e,e=null,o=null,a=0;i;){for(a++,r=i,s=0,t=0;t<u&&(s++,r=r.nextZ);t++);for(l=u;s>0||l>0&&r;)0===s?(n=r,r=r.nextZ,l--):0!==l&&r?i.z<=r.z?(n=i,i=i.nextZ,s--):(n=r,r=r.nextZ,l--):(n=i,i=i.nextZ,s--),o?o.nextZ=n:e=n,n.prevZ=o,o=n;i=r}o.nextZ=null,u*=2}while(a>1);return e}function f(e,t,i,r,n){return e=32767*(e-i)/n,t=32767*(t-r)/n,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,i=e;do{t.x<i.x&&(i=t),t=t.next}while(t!==e);return i}function _(e,t,i,r,n,o,a,s){return(n-a)*(t-s)-(e-a)*(o-s)>=0&&(e-a)*(r-s)-(i-a)*(t-s)>=0&&(i-a)*(o-s)-(n-a)*(r-s)>=0}function g(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!b(e,t)&&S(e,t)&&S(t,e)&&T(e,t)}function v(e,t,i){return(t.y-e.y)*(i.x-t.x)-(t.x-e.x)*(i.y-t.y)}function y(e,t){return e.x===t.x&&e.y===t.y}function C(e,t,i,r){return!!(y(e,t)&&y(i,r)||y(e,r)&&y(i,t))||v(e,t,i)>0!=v(e,t,r)>0&&v(i,r,e)>0!=v(i,r,t)>0}function b(e,t){var i=e;do{if(i.i!==e.i&&i.next.i!==e.i&&i.i!==t.i&&i.next.i!==t.i&&C(i,i.next,e,t))return!0;i=i.next}while(i!==e);return!1}function S(e,t){return v(e.prev,e,e.next)<0?v(e,t,e.next)>=0&&v(e,e.prev,t)>=0:v(e,t,e.prev)<0||v(e,e.next,t)<0}function T(e,t){var i=e,r=!1,n=(e.x+t.x)/2,o=(e.y+t.y)/2;do{i.y>o!=i.next.y>o&&n<(i.next.x-i.x)*(o-i.y)/(i.next.y-i.y)+i.x&&(r=!r),i=i.next}while(i!==e);return r}function E(e,t){var i=new x(e.i,e.x,e.y),r=new x(t.i,t.x,t.y),n=e.next,o=t.prev;return e.next=t,t.prev=e,i.next=n,n.prev=i,r.next=i,i.prev=r,o.next=r,r.prev=o,r}function A(e,t,i,r){var n=new x(e,t,i);return r?(n.next=r.next,n.prev=r,r.next.prev=n,r.next=n):(n.prev=n,n.next=n),n}function w(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function x(e,t,i){this.i=e,this.x=t,this.y=i,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function P(e,t,i,r){for(var n=0,o=t,a=i-r;o<i;o+=r)n+=(e[a]-e[o])*(e[o+1]+e[a+1]),a=o;return n}return e.deviation=function(e,t,i,r){var n=t&&t.length,o=n?t[0]*i:e.length,a=Math.abs(P(e,0,o,i));if(n)for(var s=0,l=t.length;s<l;s++){var u=t[s]*i,c=s<l-1?t[s+1]*i:e.length;a-=Math.abs(P(e,u,c,i))}var d=0;for(s=0;s<r.length;s+=3){var h=r[s]*i,p=r[s+1]*i,f=r[s+2]*i;d+=Math.abs((e[h]-e[f])*(e[p+1]-e[h+1])-(e[h]-e[p])*(e[f+1]-e[h+1]))}return 0===a&&0===d?0:Math.abs((d-a)/a)},e.flatten=function(e){for(var t=e[0][0].length,i={vertices:[],holes:[],dimensions:t},r=0,n=0;n<e.length;n++){for(var o=0;o<e[n].length;o++)for(var a=0;a<t;a++)i.vertices.push(e[n][o][a]);n>0&&(r+=e[n-1].length,i.holes.push(r))}return i},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var i={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===i.CLOCKWISE||e===i.COUNTER_CLOCKWISE}};return e(i)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";var m=new i,_=new i,g={};g.computeArea2D=function(e){for(var t=e.length,i=0,r=t-1,n=0;n<t;r=n++){var o=e[r],a=e[n];i+=o.x*a.y-a.x*o.y}return.5*i},g.computeWindingOrder2D=function(e){return g.computeArea2D(e)>0?f.COUNTER_CLOCKWISE:f.CLOCKWISE},g.triangulate=function(i,r){var n=t.packArray(i);return e(n,r,2)};var v=new i,y=new i,C=new i,b=new i,S=new i,T=new i,E=new i;g.computeSubdivision=function(e,t,r,n){n=a(n,h.RADIANS_PER_DEGREE);var l,u=r.slice(0),f=t.length,m=new Array(3*f),_=0;for(l=0;l<f;l++){var g=t[l];m[_++]=g.x,m[_++]=g.y,m[_++]=g.z}for(var A=[],w={},x=e.maximumRadius,P=h.chordLength(n,x),D=P*P;u.length>0;){var I,M,R=u.pop(),O=u.pop(),L=u.pop(),N=i.fromArray(m,3*L,v),F=i.fromArray(m,3*O,y),B=i.fromArray(m,3*R,C),z=i.multiplyByScalar(i.normalize(N,b),x,b),k=i.multiplyByScalar(i.normalize(F,S),x,S),V=i.multiplyByScalar(i.normalize(B,T),x,T),U=i.magnitudeSquared(i.subtract(z,k,E)),G=i.magnitudeSquared(i.subtract(k,V,E)),H=i.magnitudeSquared(i.subtract(V,z,E)),W=Math.max(U,G,H);W>D?U===W?(I=Math.min(L,O)+" "+Math.max(L,O),l=w[I],s(l)||(M=i.add(N,F,E),i.multiplyByScalar(M,.5,M),m.push(M.x,M.y,M.z),l=m.length/3-1,w[I]=l),u.push(L,l,R),u.push(l,O,R)):G===W?(I=Math.min(O,R)+" "+Math.max(O,R),l=w[I],s(l)||(M=i.add(F,B,E),i.multiplyByScalar(M,.5,M),m.push(M.x,M.y,M.z),l=m.length/3-1,w[I]=l),u.push(O,l,L),u.push(l,R,L)):H===W&&(I=Math.min(R,L)+" "+Math.max(R,L),l=w[I],s(l)||(M=i.add(B,N,E),i.multiplyByScalar(M,.5,M),m.push(M.x,M.y,M.z),l=m.length/3-1,w[I]=l),u.push(R,l,O),u.push(l,L,O)):(A.push(L),A.push(O),A.push(R))}return new c({attributes:{position:new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:m})},indices:A,primitiveType:p.TRIANGLES})};var A=new r,w=new r,x=new r,P=new r;return g.computeRhumbLineSubdivision=function(e,t,r,n){n=a(n,h.RADIANS_PER_DEGREE);var l,f=r.slice(0),m=t.length,_=new Array(3*m),g=0;for(l=0;l<m;l++){var b=t[l];_[g++]=b.x,_[g++]=b.y,_[g++]=b.z}for(var S=[],T={},D=e.maximumRadius,I=h.chordLength(n,D),M=new u(void 0,void 0,e),R=new u(void 0,void 0,e),O=new u(void 0,void 0,e);f.length>0;){var L=f.pop(),N=f.pop(),F=f.pop(),B=i.fromArray(_,3*F,v),z=i.fromArray(_,3*N,y),k=i.fromArray(_,3*L,C),V=e.cartesianToCartographic(B,A),U=e.cartesianToCartographic(z,w),G=e.cartesianToCartographic(k,x);M.setEndPoints(V,U);var H=M.surfaceDistance;R.setEndPoints(U,G);var W=R.surfaceDistance;O.setEndPoints(G,V);var q,Y,j,X,Q=O.surfaceDistance,K=Math.max(H,W,Q);K>I?H===K?(q=Math.min(F,N)+" "+Math.max(F,N),l=T[q],s(l)||(Y=M.interpolateUsingFraction(.5,P),j=.5*(V.height+U.height),X=i.fromRadians(Y.longitude,Y.latitude,j,e,E),_.push(X.x,X.y,X.z),l=_.length/3-1,T[q]=l),f.push(F,l,L),f.push(l,N,L)):W===K?(q=Math.min(N,L)+" "+Math.max(N,L),l=T[q],s(l)||(Y=R.interpolateUsingFraction(.5,P),j=.5*(U.height+G.height),X=i.fromRadians(Y.longitude,Y.latitude,j,e,E),_.push(X.x,X.y,X.z),l=_.length/3-1,T[q]=l),f.push(N,l,F),f.push(l,L,F)):Q===K&&(q=Math.min(L,F)+" "+Math.max(L,F),l=T[q],s(l)||(Y=O.interpolateUsingFraction(.5,P),j=.5*(G.height+V.height),X=i.fromRadians(Y.longitude,Y.latitude,j,e,E),_.push(X.x,X.y,X.z),l=_.length/3-1,T[q]=l),f.push(L,l,N),f.push(l,F,N)):(S.push(F),S.push(N),S.push(L))}return new c({attributes:{position:new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:_})},indices:S,primitiveType:p.TRIANGLES})},g.scaleToGeodeticHeight=function(e,t,r,n){r=a(r,l.WGS84);var o=m,u=_;if(t=a(t,0),n=a(n,!0),s(e))for(var c=e.length,d=0;d<c;d+=3)i.fromArray(e,d,u),n&&(u=r.scaleToGeodeticSurface(u,u)),0!==t&&(o=r.geodeticSurfaceNormal(u,o),i.multiplyByScalar(o,t,o),i.add(u,o,u)),e[d]=u.x,e[d+1]=u.y,e[d+2]=u.z;return e},g}),define("Core/Queue",["./defineProperties"],function(e){"use strict";function t(){this._array=[],this._offset=0,this._length=0}return e(t.prototype,{length:{get:function(){return this._length}}}),t.prototype.enqueue=function(e){this._array.push(e),this._length++},t.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,i=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,i}},t.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},t.prototype.contains=function(e){return-1!==this._array.indexOf(e)},t.prototype.clear=function(){this._array.length=this._offset=this._length=0},t.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)},t}),define("Core/PolygonGeometryLibrary",["./ArcType","./arrayRemoveDuplicates","./Cartesian2","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Queue","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e,t,i,n){return r.subtract(t,e,A),r.multiplyByScalar(A,i/n,A),r.add(e,A,A),[A.x,A.y,A.z]}var E={};E.computeHierarchyPackedLength=function(e){for(var t=0,i=[e];i.length>0;){var n=i.pop();if(s(n)){t+=2;var o=n.positions,a=n.holes;if(s(o)&&(t+=o.length*r.packedLength),s(a))for(var l=a.length,u=0;u<l;++u)i.push(a[u])}}return t},E.packPolygonHierarchy=function(e,t,i){for(var n=[e];n.length>0;){var o=n.pop();if(s(o)){var a=o.positions,l=o.holes;if(t[i++]=s(a)?a.length:0,t[i++]=s(l)?l.length:0,s(a))for(var u=a.length,c=0;c<u;++c,i+=3)r.pack(a[c],t,i);if(s(l))for(var d=l.length,h=0;h<d;++h)n.push(l[h])}}return i},E.unpackPolygonHierarchy=function(e,t){for(var i=e[t++],n=e[t++],o=new Array(i),a=n>0?new Array(n):void 0,s=0;s<i;++s,t+=r.packedLength)o[s]=r.unpack(e,t);for(var l=0;l<n;++l)a[l]=E.unpackPolygonHierarchy(e,t),t=a[l].startingIndex,delete a[l].startingIndex;return{positions:o,holes:a,startingIndex:t}};var A=new r;E.subdivideLineCount=function(e,t,i){var n=r.distance(e,t),o=n/i,a=Math.max(0,Math.ceil(_.log2(o)));return Math.pow(2,a)};var w=new n,x=new n,P=new n,D=new r;E.subdivideRhumbLineCount=function(e,t,i,r){var n=e.cartesianToCartographic(t,w),o=e.cartesianToCartographic(i,x),a=new c(n,o,e),s=a.surfaceDistance/r,l=Math.max(0,Math.ceil(_.log2(s)));return Math.pow(2,l)},E.subdivideLine=function(e,t,i,n){var o=E.subdivideLineCount(e,t,i),a=r.distance(e,t),l=a/o;s(n)||(n=[]);var u=n;u.length=3*o;for(var c=0,d=0;d<o;d++){var h=T(e,t,d*l,a);u[c++]=h[0],u[c++]=h[1],u[c++]=h[2]}return u},E.subdivideRhumbLine=function(e,t,i,r,n){var o=e.cartesianToCartographic(t,w),a=e.cartesianToCartographic(i,x),l=new c(o,a,e),u=l.surfaceDistance/r,d=Math.max(0,Math.ceil(_.log2(u))),h=Math.pow(2,d),p=l.surfaceDistance/h;s(n)||(n=[]);var f=n;f.length=3*h;for(var m=0,g=0;g<h;g++){var v=l.interpolateUsingSurfaceDistance(g*p,P),y=e.cartographicToCartesian(v,D);f[m++]=y.x,f[m++]=y.y,f[m++]=y.z}return f};var I=new r,M=new r,R=new r,O=new r;E.scaleToGeodeticHeightExtruded=function(e,t,i,n,o){n=a(n,u.WGS84);var l=I,c=M,d=R,h=O;if(s(e)&&s(e.attributes)&&s(e.attributes.position))for(var p=e.attributes.position.values,f=p.length/2,m=0;m<f;m+=3)r.fromArray(p,m,d),n.geodeticSurfaceNormal(d,l),h=n.scaleToGeodeticSurface(d,h),c=r.multiplyByScalar(l,i,c),c=r.add(h,c,c),p[m+f]=c.x,p[m+1+f]=c.y,p[m+2+f]=c.z,o&&(h=r.clone(d,h)),c=r.multiplyByScalar(l,t,c),c=r.add(h,c,c),p[m]=c.x,p[m+1]=c.y,p[m+2]=c.z;return e},E.polygonOutlinesFromHierarchy=function(e,i,n){var o=[],a=new b;a.enqueue(e);for(var l,u,c;0!==a.length;){var d=a.dequeue(),h=d.positions;if(i)for(c=h.length,l=0;l<c;l++)n.scaleToGeodeticSurface(h[l],h[l]);if(h=t(h,r.equalsEpsilon,!0),!(h.length<3)){var p=d.holes?d.holes.length:0;for(l=0;l<p;l++){var f=d.holes[l],m=f.positions;if(i)for(c=m.length,u=0;u<c;++u)n.scaleToGeodeticSurface(m[u],m[u]);if(m=t(m,r.equalsEpsilon,!0),!(m.length<3)){o.push(m);var _=0;for(s(f.holes)&&(_=f.holes.length),u=0;u<_;u++)a.enqueue(f.holes[u])}}o.push(h)}}return o},E.polygonsFromHierarchy=function(e,i,n,o){var a=[],l=[],u=new b;for(u.enqueue(e);0!==u.length;){var c,d,h=u.dequeue(),p=h.positions,f=h.holes;if(n)for(d=p.length,c=0;c<d;c++)o.scaleToGeodeticSurface(p[c],p[c]);if(p=t(p,r.equalsEpsilon,!0),!(p.length<3)){var m=i(p);if(s(m)){var _=[],g=v.computeWindingOrder2D(m);g===S.CLOCKWISE&&(m.reverse(),p=p.slice().reverse());var y,C=p.slice(),T=s(f)?f.length:0,E=[];for(c=0;c<T;c++){var A=f[c],w=A.positions;if(n)for(d=w.length,y=0;y<d;++y)o.scaleToGeodeticSurface(w[y],w[y]);if(w=t(w,r.equalsEpsilon,!0),!(w.length<3)){var x=i(w);if(s(x)){g=v.computeWindingOrder2D(x),g===S.CLOCKWISE&&(x.reverse(),w=w.slice().reverse()),E.push(w),_.push(C.length),C=C.concat(w),m=m.concat(x);var P=0;for(s(A.holes)&&(P=A.holes.length),y=0;y<P;y++)u.enqueue(A.holes[y])}}}a.push({outerRing:p,holes:E}),l.push({positions:C,positions2D:m,holes:_})}}}return{hierarchy:a,polygons:l}};var L=new i,N=new r,F=new C,B=new g;E.computeBoundingRectangle=function(e,t,i,n,o){for(var a=C.fromAxisAngle(e,n,F),l=g.fromQuaternion(a,B),u=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,d=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,p=i.length,f=0;f<p;++f){var m=r.clone(i[f],N);g.multiplyByVector(l,m,m);var _=t(m,L);s(_)&&(u=Math.min(u,_.x),c=Math.max(c,_.x),d=Math.min(d,_.y),h=Math.max(h,_.y))}return o.x=u,o.y=d,o.width=c-u,o.height=h-d,o},E.createGeometryFromPositions=function(t,i,r,n,a,s){var l=v.triangulate(i.positions2D,i.holes);l.length<3&&(l=[0,1,2]);var u=i.positions;if(n){for(var c=u.length,p=new Array(3*c),m=0,_=0;_<c;_++){var g=u[_];p[m++]=g.x,p[m++]=g.y,p[m++]=g.z}var C=new d({attributes:{position:new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:p})},indices:l,primitiveType:y.TRIANGLES});return a.normal?f.computeNormal(C):C}return s===e.GEODESIC?v.computeSubdivision(t,u,l,r):s===e.RHUMB?v.computeRhumbLineSubdivision(t,u,l,r):void 0};var z=[],k=new r,V=new r;return E.computeWallGeometry=function(t,i,n,a,s){var l,u,c,f,g,v=t.length,C=0;if(a)for(u=3*v*2,l=new Array(2*u),c=0;c<v;c++)f=t[c],g=t[(c+1)%v],l[C]=l[C+u]=f.x,++C,l[C]=l[C+u]=f.y,++C,l[C]=l[C+u]=f.z,++C,l[C]=l[C+u]=g.x,++C,l[C]=l[C+u]=g.y,++C,l[C]=l[C+u]=g.z,++C;else{var b=_.chordLength(n,i.maximumRadius),S=0;if(s===e.GEODESIC)for(c=0;c<v;c++)S+=E.subdivideLineCount(t[c],t[(c+1)%v],b);else if(s===e.RHUMB)for(c=0;c<v;c++)S+=E.subdivideRhumbLineCount(i,t[c],t[(c+1)%v],b);for(u=3*(S+v),l=new Array(2*u),c=0;c<v;c++){f=t[c],g=t[(c+1)%v];var T;s===e.GEODESIC?T=E.subdivideLine(f,g,b,z):s===e.RHUMB&&(T=E.subdivideRhumbLine(i,f,g,b,z));for(var A=T.length,w=0;w<A;++w,++C)l[C]=T[w],l[C+u]=T[w];l[C]=g.x,l[C+u]=g.x,++C,l[C]=g.y,l[C+u]=g.y,++C,l[C]=g.z,l[C+u]=g.z,++C}}v=l.length;var x=m.createTypedArray(v/3,v-6*t.length),P=0;for(v/=6,c=0;c<v;c++){var D=c,I=D+1,M=D+v,R=M+1;f=r.fromArray(l,3*D,k),g=r.fromArray(l,3*I,V),r.equalsEpsilon(f,g,_.EPSILON14,_.EPSILON6)||(x[P++]=D,x[P++]=M,x[P++]=I,x[P++]=I,x[P++]=M,x[P++]=R)}return new d({attributes:new p({position:new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:l})}),indices:x,primitiveType:y.TRIANGLES})},E}),define("Core/CoplanarPolygonGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./Check","./ComponentDatatype","./CoplanarPolygonGeometryLibrary","./defaultValue","./defined","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType","./Quaternion","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T){"use strict";function E(e,t,i,o,s,l,u,c){var f=e.positions,m=C.triangulate(e.positions2D,e.holes);m.length<3&&(m=[0,1,2]);var y=_.createTypedArray(f.length,m.length);y.set(m);var T=B;if(0!==o){var E=S.fromAxisAngle(l,o,F);if(T=v.fromQuaternion(E,T),t.tangent||t.bitangent){E=S.fromAxisAngle(l,-o,F);var A=v.fromQuaternion(E,z);u=n.normalize(v.multiplyByVector(A,u,u),u),t.bitangent&&(c=n.normalize(n.cross(l,u,c),c))}}else T=v.clone(v.IDENTITY,T);var x=D;t.st&&(x.x=i.x,x.y=i.y);for(var I=f.length,M=3*I,R=new Float64Array(M),O=t.normal?new Float32Array(M):void 0,L=t.tangent?new Float32Array(M):void 0,N=t.bitangent?new Float32Array(M):void 0,k=t.st?new Float32Array(2*I):void 0,V=0,U=0,G=0,H=0,W=0,q=0;q<I;q++){var Y=f[q];if(R[V++]=Y.x,R[V++]=Y.y,R[V++]=Y.z,t.st){var j=v.multiplyByVector(T,Y,w),X=s(j,P);r.subtract(X,x,X);var Q=g.clamp(X.x/i.width,0,1),K=g.clamp(X.y/i.height,0,1);k[W++]=Q,k[W++]=K}t.normal&&(O[U++]=l.x,O[U++]=l.y,O[U++]=l.z),t.tangent&&(L[H++]=u.x,L[H++]=u.y,L[H++]=u.z),t.bitangent&&(N[G++]=c.x,N[G++]=c.y,N[G++]=c.z)}var Z=new p;return t.position&&(Z.position=new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:R})),t.normal&&(Z.normal=new h({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:O})),t.tangent&&(Z.tangent=new h({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:L})),t.bitangent&&(Z.bitangent=new h({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:N})),t.st&&(Z.st=new h({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:k})),new d({attributes:Z,indices:y,primitiveType:b.TRIANGLES})}function A(e){e=l(e,l.EMPTY_OBJECT);var t=e.polygonHierarchy,i=l(e.vertexFormat,T.DEFAULT);this._vertexFormat=T.clone(i),this._polygonHierarchy=t,this._stRotation=l(e.stRotation,0),this._ellipsoid=c.clone(l(e.ellipsoid,c.WGS84)),this._workerName="createCoplanarPolygonGeometry",this.packedLength=y.computeHierarchyPackedLength(t)+T.packedLength+c.packedLength+2}var w=new n,x=new t,P=new r,D=new r,I=new n,M=new n,R=new n,O=new n,L=new n,N=new n,F=new S,B=new v,z=new v,k=new n;A.fromPositions=function(e){return e=l(e,l.EMPTY_OBJECT),new A({polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid})},A.pack=function(e,t,i){return i=l(i,0),i=y.packPolygonHierarchy(e._polygonHierarchy,t,i),c.pack(e._ellipsoid,t,i),i+=c.packedLength,T.pack(e._vertexFormat,t,i),i+=T.packedLength,t[i++]=e._stRotation,t[i]=e.packedLength,t};var V=c.clone(c.UNIT_SPHERE),U=new T,G={polygonHierarchy:{}};return A.unpack=function(e,t,i){t=l(t,0);var r=y.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var n=c.unpack(e,t,V);t+=c.packedLength;var o=T.unpack(e,t,U);t+=T.packedLength;var a=e[t++],s=e[t];return u(i)||(i=new A(G)),i._polygonHierarchy=r,i._ellipsoid=c.clone(n,i._ellipsoid),i._vertexFormat=T.clone(o,i._vertexFormat),i._stRotation=a,i.packedLength=s,i},A.createGeometry=function(t){var r=t._vertexFormat,o=t._polygonHierarchy,a=t._stRotation,l=o.positions;if(l=e(l,n.equalsEpsilon,!0),!(l.length<3)){var u=I,c=M,h=R,p=L,v=N;if(s.computeProjectTo2DArguments(l,O,p,v)){if(u=n.cross(p,v,u),u=n.normalize(u,u),!n.equalsEpsilon(O,n.ZERO,g.EPSILON6)){var C=t._ellipsoid.geodeticSurfaceNormal(O,k);n.dot(u,C)<0&&(u=n.negate(u,u),p=n.negate(p,p))}var b=s.createProjectPointsTo2DFunction(O,p,v),S=s.createProjectPointTo2DFunction(O,p,v);r.tangent&&(c=n.clone(p,c)),r.bitangent&&(h=n.clone(v,h));var T=y.polygonsFromHierarchy(o,b,!1),A=T.hierarchy,w=T.polygons;if(0!==A.length){l=A[0].outerRing;for(var P=i.fromPoints(l),D=y.computeBoundingRectangle(u,S,l,a,x),F=[],B=0;B<w.length;B++){var z=new f({geometry:E(w[B],r,D,a,S,u,c,h)});F.push(z)}var V=m.combineInstances(F)[0];V.attributes.position.values=new Float64Array(V.attributes.position.values),V.indices=_.createTypedArray(V.attributes.position.values.length/3,V.indices);var U=V.attributes;return r.position||delete U.position,new d({attributes:U,indices:V.indices,primitiveType:V.primitiveType,boundingSphere:P})}}}},A}),define("Core/CoplanarPolygonOutlineGeometry",["./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./CoplanarPolygonGeometryLibrary","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryPipeline","./IndexDatatype","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){for(var t=e.length,i=new Float64Array(3*t),r=p.createTypedArray(t,2*t),o=0,a=0,s=0;s<t;s++){var d=e[s];i[o++]=d.x,i[o++]=d.y,i[o++]=d.z,r[a++]=s,r[a++]=(s+1)%t}var h=new c({position:new u({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:i})});return new l({attributes:h,indices:r,primitiveType:_.LINES})}function v(e){e=a(e,a.EMPTY_OBJECT);var t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=f.computeHierarchyPackedLength(t)+1}v.fromPositions=function(e){return e=a(e,a.EMPTY_OBJECT),new v({polygonHierarchy:{positions:e.positions}})},v.pack=function(e,t,i){return i=a(i,0),i=f.packPolygonHierarchy(e._polygonHierarchy,t,i),t[i]=e.packedLength,t};var y={polygonHierarchy:{}};return v.unpack=function(e,t,i){t=a(t,0);var r=f.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var n=e[t];return s(i)||(i=new v(y)),i._polygonHierarchy=r,i.packedLength=n,i},v.createGeometry=function(r){var n=r._polygonHierarchy,a=n.positions;if(a=e(a,i.equalsEpsilon,!0),!(a.length<3)){if(o.validOutline(a)){var s=f.polygonOutlinesFromHierarchy(n,!1);if(0!==s.length){for(var u=[],c=0;c<s.length;c++){var p=new d({geometry:g(s[c])});u.push(p)}var m=h.combineInstances(u)[0],_=t.fromPoints(n.positions);return new l({attributes:m.attributes,indices:m.indices,primitiveType:m.primitiveType,boundingSphere:_})}}}},v}),define("Core/CornerType",["./freezeObject"],function(e){"use strict";return e({ROUNDED:0,MITERED:1,BEVELED:2})}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){var t=e._uSquared,i=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,n=(i-r)/i,o=Math.cos(e._startHeading),a=Math.sin(e._startHeading),s=(1-n)*Math.tan(e._start.latitude),l=1/Math.sqrt(1+s*s),u=l*s,c=Math.atan2(s,o),d=l*a,h=d*d,p=1-h,f=Math.sqrt(p),m=t/4,_=m*m,g=_*m,v=_*_,y=1+m-3*_/4+5*g/4-175*v/64,C=1-m+15*_/8-35*g/8,b=1-3*m+35*_/4,S=1-5*m,T=y*c-C*Math.sin(2*c)*m/2-b*Math.sin(4*c)*_/16-S*Math.sin(6*c)*g/48-5*Math.sin(8*c)*v/512,E=e._constants;E.a=i,E.b=r,E.f=n,E.cosineHeading=o,E.sineHeading=a,E.tanU=s,E.cosineU=l,E.sineU=u,E.sigma=c,E.sineAlpha=d,E.sineSquaredAlpha=h,E.cosineSquaredAlpha=p,E.cosineAlpha=f,E.u2Over4=m,E.u4Over16=_,E.u6Over64=g,E.u8Over256=v,E.a0=y,E.a1=C,E.a2=b,E.a3=S,E.distanceRatio=T}function u(e,t){return e*t*(4+e*(4-3*t))/16}function c(e,t,i,r,n,o,a){var s=u(e,i);return(1-s)*e*t*(r+s*n*(a+s*o*(2*a*a-1)))}function d(e,t,i,r,n,o,a){var l,u,d,h,p,f=(t-i)/t,m=o-r,_=Math.atan((1-f)*Math.tan(n)),g=Math.atan((1-f)*Math.tan(a)),v=Math.cos(_),y=Math.sin(_),C=Math.cos(g),b=Math.sin(g),S=v*C,T=v*b,E=y*b,A=y*C,w=m,x=s.TWO_PI,P=Math.cos(w),D=Math.sin(w);do{P=Math.cos(w),D=Math.sin(w);var I=T-A*P;d=Math.sqrt(C*C*D*D+I*I),u=E+S*P,l=Math.atan2(d,u);var M;0===d?(M=0,h=1):(M=S*D/d,h=1-M*M),x=w,p=u-2*E/h,isNaN(p)&&(p=0),w=m+c(f,M,h,l,d,u,p)}while(Math.abs(w-x)>s.EPSILON12);var R=h*(t*t-i*i)/(i*i),O=1+R*(4096+R*(R*(320-175*R)-768))/16384,L=R*(256+R*(R*(74-47*R)-128))/1024,N=p*p,F=L*d*(p+L*(u*(2*N-1)-L*p*(4*d*d-3)*(4*N-3)/6)/4),B=i*O*(l-F),z=Math.atan2(C*D,T-A*P),k=Math.atan2(v*D,T*P-A);e._distance=B,e._startHeading=z,e._endHeading=k,e._uSquared=R}function h(i,r,n,o){e.normalize(o.cartographicToCartesian(r,m),f),e.normalize(o.cartographicToCartesian(n,m),m);d(i,o.maximumRadius,o.minimumRadius,r.longitude,r.latitude,n.longitude,n.latitude),i._start=t.clone(r,i._start),i._end=t.clone(n,i._end),i._start.height=0,i._end.height=0,l(i)}function p(e,i,o){var s=r(o,a.WGS84);this._ellipsoid=s,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,n(e)&&n(i)&&h(this,e,i,s)}var f=new e,m=new e;return o(p.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),p.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},p.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},p.prototype.interpolateUsingSurfaceDistance=function(e,i){var r=this._constants,o=r.distanceRatio+e/r.b,a=Math.cos(2*o),s=Math.cos(4*o),l=Math.cos(6*o),u=Math.sin(2*o),d=Math.sin(4*o),h=Math.sin(6*o),p=Math.sin(8*o),f=o*o,m=o*f,_=r.u8Over256,g=r.u2Over4,v=r.u6Over64,y=r.u4Over16,C=2*m*_*a/3+o*(1-g+7*y/4-15*v/4+579*_/64-(y-15*v/4+187*_/16)*a-(5*v/4-115*_/16)*s-29*_*l/16)+(g/2-y+71*v/32-85*_/16)*u+(5*y/16-5*v/4+383*_/96)*d-f*((v-11*_/2)*u+5*_*d/2)+(29*v/96-29*_/16)*h+539*_*p/1536,b=Math.asin(Math.sin(C)*r.cosineAlpha),S=Math.atan(r.a/r.b*Math.tan(b));C-=r.sigma;var T=Math.cos(2*r.sigma+C),E=Math.sin(C),A=Math.cos(C),w=r.cosineU*A,x=r.sineU*E,P=Math.atan2(E*r.sineHeading,w-x*r.cosineHeading),D=P-c(r.f,r.sineAlpha,r.cosineSquaredAlpha,C,E,A,T);return n(i)?(i.longitude=this._start.longitude+D,i.latitude=S,i.height=0,i):new t(this._start.longitude+D,S,0)},p}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e,t,i){var r=w;r.length=e;var n;if(t===i){for(n=0;n<e;n++)r[n]=t;return r}var o=i-t,a=o/e;for(n=0;n<e;n++){var s=t+n*a;r[n]=s}return r}function f(t,i,r,n,o,a,s,l){ -var u=n.scaleToGeodeticSurface(t,I),c=n.scaleToGeodeticSurface(i,M),d=_.numberOfPoints(t,i,r),h=n.cartesianToCartographic(u,x),f=n.cartesianToCartographic(c,P),m=p(d,o,a);R.setEndPoints(h,f);var g=R.surfaceDistance/d,v=l;h.height=o;var y=n.cartographicToCartesian(h,D);e.pack(y,s,v),v+=3;for(var C=1;C<d;C++){var b=R.interpolateUsingSurfaceDistance(C*g,P);b.height=m[C],y=n.cartographicToCartesian(b,D),e.pack(y,s,v),v+=3}return v}function m(t,i,r,n,o,a,l,u){var c=n.scaleToGeodeticSurface(t,I),d=n.scaleToGeodeticSurface(i,M),h=n.cartesianToCartographic(c,x),f=n.cartesianToCartographic(d,P),m=_.numberOfPointsRhumbLine(h,f,r),g=p(m,o,a);O.ellipsoid.equals(n)||(O=new s(void 0,void 0,n)),O.setEndPoints(h,f);var v=O.surfaceDistance/m,y=u;h.height=o;var C=n.cartographicToCartesian(h,D);e.pack(C,l,y),y+=3;for(var b=1;b<m;b++){var S=O.interpolateUsingSurfaceDistance(b*v,P);S.height=g[b],C=n.cartographicToCartesian(S,D),e.pack(C,l,y),y+=3}return y}var _={};_.numberOfPoints=function(t,i,r){var n=e.distance(t,i);return Math.ceil(n/r)},_.numberOfPointsRhumbLine=function(e,t,i){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(i*i)))};var g=new t;_.extractHeights=function(e,t){for(var i=e.length,r=new Array(i),n=0;n<i;n++){var o=e[n];r[n]=t.cartesianToCartographic(o,g).height}return r};var v=new d,y=new e,C=new e,b=new h(e.UNIT_X,0),S=new e,T=new h(e.UNIT_X,0),E=new e,A=new e,w=[],x=new t,P=new t,D=new e,I=new e,M=new e,R=new a,O=new s;_.wrapLongitude=function(t,n){var o=[],a=[];if(r(t)&&t.length>0){n=i(n,d.IDENTITY);var s=d.inverseTransformation(n,v),u=d.multiplyByPoint(s,e.ZERO,y),c=e.normalize(d.multiplyByPointAsVector(s,e.UNIT_Y,C),C),p=h.fromPointNormal(u,c,b),f=e.normalize(d.multiplyByPointAsVector(s,e.UNIT_X,S),S),m=h.fromPointNormal(u,f,T),_=1;o.push(e.clone(t[0]));for(var g=o[0],w=t.length,x=1;x<w;++x){var P=t[x];if(h.getPointDistance(m,g)<0||h.getPointDistance(m,P)<0){var D=l.lineSegmentPlane(g,P,p,E);if(r(D)){var I=e.multiplyByScalar(c,5e-9,A);h.getPointDistance(p,g)<0&&e.negate(I,I),o.push(e.add(D,I,new e)),a.push(_+1),e.negate(I,I),o.push(e.add(D,I,new e)),_=1}}o.push(e.clone(t[x])),_++,g=P}a.push(_)}return{positions:o,lengths:a}},_.generateArc=function(t){r(t)||(t={});var n=t.positions,a=n.length,s=i(t.ellipsoid,o.WGS84),l=i(t.height,0),d=u(l);if(a<1)return[];if(1===a){var h=s.scaleToGeodeticSurface(n[0],I);if(0!==(l=d?l[0]:l)){var p=s.geodeticSurfaceNormal(h,D);e.multiplyByScalar(p,l,p),e.add(h,p,h)}return[h.x,h.y,h.z]}var m=t.minDistance;if(!r(m)){var g=i(t.granularity,c.RADIANS_PER_DEGREE);m=c.chordLength(g,s.maximumRadius)}var v,y=0;for(v=0;v<a-1;v++)y+=_.numberOfPoints(n[v],n[v+1],m);var C=3*(y+1),b=new Array(C),S=0;for(v=0;v<a-1;v++){S=f(n[v],n[v+1],m,s,d?l[v]:l,d?l[v+1]:l,b,S)}w.length=0;var T=n[a-1],E=s.cartesianToCartographic(T,x);E.height=d?l[a-1]:l;var A=s.cartographicToCartesian(E,D);return e.pack(A,b,C-3),b};var L=new t,N=new t;return _.generateRhumbArc=function(n){r(n)||(n={});var a=n.positions,s=a.length,l=i(n.ellipsoid,o.WGS84),d=i(n.height,0),h=u(d);if(s<1)return[];if(1===s){var p=l.scaleToGeodeticSurface(a[0],I);if(0!==(d=h?d[0]:d)){var f=l.geodeticSurfaceNormal(p,D);e.multiplyByScalar(f,d,f),e.add(p,f,p)}return[p.x,p.y,p.z]}var g,v,y=i(n.granularity,c.RADIANS_PER_DEGREE),C=0,b=l.cartesianToCartographic(a[0],L);for(g=0;g<s-1;g++)v=l.cartesianToCartographic(a[g+1],N),C+=_.numberOfPointsRhumbLine(b,v,y),b=t.clone(v,L);var S=3*(C+1),T=new Array(S),E=0;for(g=0;g<s-1;g++){E=m(a[g],a[g+1],y,l,h?d[g]:d,h?d[g+1]:d,T,E)}w.length=0;var A=a[s-1],P=l.cartesianToCartographic(A,x);P.height=h?d[s-1]:d;var M=l.cartographicToCartesian(P,D);return e.pack(M,T,S-3),T},_.generateCartesianArc=function(t){for(var i=_.generateArc(t),r=i.length/3,n=new Array(r),o=0;o<r;o++)n[o]=e.unpack(i,3*o);return n},_.generateCartesianRhumbArc=function(t){for(var i=_.generateRhumbArc(t),r=i.length/3,n=new Array(r),o=0;o<r;o++)n[o]=e.unpack(i,3*o);return n},_}),define("Core/PolylineVolumeGeometryLibrary",["./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./CornerType","./EllipsoidTangentPlane","./Math","./Matrix3","./Matrix4","./PolylinePipeline","./Quaternion","./Transforms"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(e,t){for(var i=new Array(e.length),r=0;r<e.length;r++){var n=e[r];O=t.cartesianToCartographic(n,O),i[r]=O.height,e[r]=t.scaleToGeodeticSurface(n,n)}return i}function p(e,i,r,n){var o,a=e[0],s=e[1],l=t.angleBetween(a,s),u=Math.ceil(l/n),c=new Array(u);if(i===r){for(o=0;o<u;o++)c[o]=i;return c.push(r),c}var d=r-i,h=d/u;for(o=1;o<u;o++){var p=i+o*h;c[o]=p}return c[0]=i,c.push(r),c}function f(i,r,n,a){var s=new o(n,a),l=s.projectPointOntoPlane(t.add(n,i,L),L),u=s.projectPointOntoPlane(t.add(n,r,N),N),c=e.angleBetween(l,u);return u.x*l.y-u.y*l.x>=0?-c:c}function m(e,i,r,n,o,a,u,c){var h=U,p=G;B=d.eastNorthUpToFixedFrame(e,o,B),h=l.multiplyByPointAsVector(B,F,h),h=t.normalize(h,h);var m=f(h,i,e,o);k=s.fromRotationZ(m,k),H.z=a,B=l.multiplyTransformation(B,l.fromRotationTranslation(k,H,z),B);var _=V;_[0]=u;for(var g=0;g<c;g++)for(var v=0;v<r.length;v+=3)p=t.fromArray(r,v,p),p=s.multiplyByVector(_,p,p),p=l.multiplyByPoint(B,p,p),n.push(p.x,p.y,p.z);return n}function _(e,i,r,n,o,a,s){for(var l=0;l<e.length;l+=3){n=m(t.fromArray(e,l,W),i,r,n,o,a[l/3],s,1)}return n}function g(e,t){var i=e.length,r=new Array(6*i),n=0,o=t.x+t.width/2,a=t.y+t.height/2,s=e[0];r[n++]=s.x-o,r[n++]=0,r[n++]=s.y-a;for(var l=1;l<i;l++){s=e[l];var u=s.x-o,c=s.y-a;r[n++]=u,r[n++]=0,r[n++]=c,r[n++]=u,r[n++]=0,r[n++]=c}return s=e[0],r[n++]=s.x-o,r[n++]=0,r[n++]=s.y-a,r}function v(e,t){for(var i=e.length,r=new Array(3*i),n=0,o=t.x+t.width/2,a=t.y+t.height/2,s=0;s<i;s++)r[n++]=e[s].x-o,r[n++]=0,r[n++]=e[s].y-a;return r}function y(e,i,r,o,l,u,d,h,p,f){var _,g=t.angleBetween(t.subtract(i,e,I),t.subtract(r,e,M)),v=o===n.BEVELED?0:Math.ceil(g/a.toRadians(5));_=l?s.fromQuaternion(c.fromAxisAngle(t.negate(e,I),g/(v+1),q),j):s.fromQuaternion(c.fromAxisAngle(e,g/(v+1),q),j);var y,C;if(i=t.clone(i,Y),v>0)for(var b=f?2:1,S=0;S<v;S++)i=s.multiplyByVector(_,i,i),y=t.subtract(i,e,I),y=t.normalize(y,y),l||(y=t.negate(y,y)),C=u.scaleToGeodeticSurface(i,M),d=m(C,y,h,d,u,p,1,b);else y=t.subtract(i,e,I),y=t.normalize(y,y),l||(y=t.negate(y,y)),C=u.scaleToGeodeticSurface(i,M),d=m(C,y,h,d,u,p,1,1),r=t.clone(r,Y),y=t.subtract(r,e,I),y=t.normalize(y,y),l||(y=t.negate(y,y)),C=u.scaleToGeodeticSurface(r,M),d=m(C,y,h,d,u,p,1,1);return d}var C=[new t,new t],b=new t,S=new t,T=new t,E=new t,A=new t,w=new t,x=new t,P=new t,D=new t,I=new t,M=new t,R={},O=new r,L=new t,N=new t,F=new t(-1,0,0),B=new l,z=new l,k=new s,V=s.IDENTITY.clone(),U=new t,G=new i,H=new t,W=new t,q=new c,Y=new t,j=new s;R.removeDuplicatesFromShape=function(t){for(var i=t.length,r=[],n=i-1,o=0;o<i;n=o++){var a=t[n],s=t[o];e.equals(a,s)||r.push(s)}return r},R.angleIsGreaterThanPi=function(e,i,r,n){var a=new o(r,n),s=a.projectPointOntoPlane(t.add(r,e,L),L),l=a.projectPointOntoPlane(t.add(r,i,N),N);return l.x*s.y-l.y*s.x>=0};var X=new t,Q=new t;return R.computePositions=function(e,i,r,o,s){var l=o._ellipsoid,c=h(e,l),d=o._granularity,f=o._cornerType,M=s?g(i,r):v(i,r),O=s?v(i,r):void 0,L=r.height/2,N=r.width/2,F=e.length,B=[],z=s?[]:void 0,k=b,V=S,U=T,G=E,H=A,W=w,q=x,Y=P,j=D,K=e[0],Z=e[1];G=l.geodeticSurfaceNormal(K,G),k=t.subtract(Z,K,k),k=t.normalize(k,k),Y=t.cross(G,k,Y),Y=t.normalize(Y,Y);var J=c[0],$=c[1];s&&(z=m(K,Y,O,z,l,J+L,1,1)),j=t.clone(K,j),K=Z,V=t.negate(k,V);for(var ee,te,ie=1;ie<F-1;ie++){var re=s?2:1;Z=e[ie+1],k=t.subtract(Z,K,k),k=t.normalize(k,k),U=t.add(k,V,U),U=t.normalize(U,U),G=l.geodeticSurfaceNormal(K,G);var ne=t.multiplyByScalar(G,t.dot(k,G),X);t.subtract(k,ne,ne),t.normalize(ne,ne);var oe=t.multiplyByScalar(G,t.dot(V,G),Q);t.subtract(V,oe,oe),t.normalize(oe,oe);if(!a.equalsEpsilon(Math.abs(t.dot(ne,oe)),1,a.EPSILON7)){U=t.cross(U,G,U),U=t.cross(G,U,U),U=t.normalize(U,U);var ae=1/Math.max(.25,t.magnitude(t.cross(U,V,I))),se=R.angleIsGreaterThanPi(k,V,K,l);se?(H=t.add(K,t.multiplyByScalar(U,ae*N,U),H),W=t.add(H,t.multiplyByScalar(Y,N,W),W),C[0]=t.clone(j,C[0]),C[1]=t.clone(W,C[1]),ee=p(C,J+L,$+L,d),te=u.generateArc({positions:C,granularity:d,ellipsoid:l}),B=_(te,Y,M,B,l,ee,1),Y=t.cross(G,k,Y),Y=t.normalize(Y,Y),q=t.add(H,t.multiplyByScalar(Y,N,q),q),f===n.ROUNDED||f===n.BEVELED?y(H,W,q,f,se,l,B,M,$+L,s):(U=t.negate(U,U),B=m(K,U,M,B,l,$+L,ae,re)),j=t.clone(q,j)):(H=t.add(K,t.multiplyByScalar(U,ae*N,U),H),W=t.add(H,t.multiplyByScalar(Y,-N,W),W),C[0]=t.clone(j,C[0]),C[1]=t.clone(W,C[1]),ee=p(C,J+L,$+L,d),te=u.generateArc({positions:C,granularity:d,ellipsoid:l}),B=_(te,Y,M,B,l,ee,1),Y=t.cross(G,k,Y),Y=t.normalize(Y,Y),q=t.add(H,t.multiplyByScalar(Y,-N,q),q),f===n.ROUNDED||f===n.BEVELED?y(H,W,q,f,se,l,B,M,$+L,s):B=m(K,U,M,B,l,$+L,ae,re),j=t.clone(q,j)),V=t.negate(k,V)}else B=m(j,Y,M,B,l,J+L,1,1),j=K;J=$,$=c[ie+1],K=Z}C[0]=t.clone(j,C[0]),C[1]=t.clone(K,C[1]),ee=p(C,J+L,$+L,d),te=u.generateArc({positions:C,granularity:d,ellipsoid:l}),B=_(te,Y,M,B,l,ee,1),s&&(z=m(K,Y,O,z,l,$+L,1,1)),F=B.length;var le=s?F+z.length:F,ue=new Float64Array(le);return ue.set(B),s&&ue.set(z,F),ue},R}),define("Core/CorridorGeometryLibrary",["./Cartesian3","./CornerType","./defined","./Math","./Matrix3","./PolylinePipeline","./PolylineVolumeGeometryLibrary","./Quaternion"],function(e,t,i,r,n,o,a,s){"use strict";function l(i,o,a,l,u){var c=e.angleBetween(e.subtract(o,i,p),e.subtract(a,i,f)),d=l===t.BEVELED?1:Math.ceil(c/r.toRadians(5))+1,h=3*d,m=new Array(h);m[h-3]=a.x,m[h-2]=a.y,m[h-1]=a.z;var _;_=u?n.fromQuaternion(s.fromAxisAngle(e.negate(i,p),c/d,P),D):n.fromQuaternion(s.fromAxisAngle(i,c/d,P),D);var g=0;o=e.clone(o,p);for(var v=0;v<d;v++)o=n.multiplyByVector(_,o,o),m[g++]=o.x,m[g++]=o.y,m[g++]=o.z;return m}function u(i){var r=v,n=y,o=C,a=i[1];n=e.fromArray(i[1],a.length-3,n),o=e.fromArray(i[0],0,o),r=e.midpoint(n,o,r);var s=l(r,n,o,t.ROUNDED,!1),u=i.length-1,c=i[u-1];return a=i[u],n=e.fromArray(c,c.length-3,n),o=e.fromArray(a,0,o),r=e.midpoint(n,o,r),[s,l(r,n,o,t.ROUNDED,!1)]}function c(t,i,r,n){var o=p;return n?o=e.add(t,i,o):(i=e.negate(i,i),o=e.add(t,i,o)),[o.x,o.y,o.z,r.x,r.y,r.z]}function d(t,i,r,n){for(var o=new Array(t.length),a=new Array(t.length),s=e.multiplyByScalar(i,r,p),l=e.negate(s,f),u=0,c=t.length-1,d=0;d<t.length;d+=3){var h=e.fromArray(t,d,m),g=e.add(h,l,_);o[u++]=g.x,o[u++]=g.y,o[u++]=g.z;var v=e.add(h,s,_);a[c--]=v.z,a[c--]=v.y,a[c--]=v.x}return n.push(o,a),n}var h={},p=new e,f=new e,m=new e,_=new e,g=[new e,new e],v=new e,y=new e,C=new e,b=new e,S=new e,T=new e,E=new e,A=new e,w=new e,x=new e,P=new s,D=new n;h.addAttribute=function(e,t,r,n){var o=t.x,a=t.y,s=t.z;i(r)&&(e[r]=o,e[r+1]=a,e[r+2]=s),i(n)&&(e[n]=s,e[n-1]=a,e[n-2]=o)};var I=new e,M=new e;return h.computePositions=function(i){var n=i.granularity,s=i.positions,h=i.ellipsoid,f=i.width/2,m=i.cornerType,_=i.saveAttributes,P=v,D=y,R=C,O=b,L=S,N=T,F=E,B=A,z=w,k=x,V=[],U=_?[]:void 0,G=_?[]:void 0,H=s[0],W=s[1];D=e.normalize(e.subtract(W,H,D),D),P=h.geodeticSurfaceNormal(H,P),O=e.normalize(e.cross(P,D,O),O),_&&(U.push(O.x,O.y,O.z),G.push(P.x,P.y,P.z)),F=e.clone(H,F),H=W,R=e.negate(D,R);var q,Y,j=[],X=s.length;for(Y=1;Y<X-1;Y++){P=h.geodeticSurfaceNormal(H,P),W=s[Y+1],D=e.normalize(e.subtract(W,H,D),D),L=e.normalize(e.add(D,R,L),L);var Q=e.multiplyByScalar(P,e.dot(D,P),I);e.subtract(D,Q,Q),e.normalize(Q,Q);var K=e.multiplyByScalar(P,e.dot(R,P),M);e.subtract(R,K,K),e.normalize(K,K);if(!r.equalsEpsilon(Math.abs(e.dot(Q,K)),1,r.EPSILON7)){L=e.cross(L,P,L),L=e.cross(P,L,L),L=e.normalize(L,L);var Z=f/Math.max(.25,e.magnitude(e.cross(L,R,p))),J=a.angleIsGreaterThanPi(D,R,H,h);L=e.multiplyByScalar(L,Z,L),J?(B=e.add(H,L,B),k=e.add(B,e.multiplyByScalar(O,f,k),k),z=e.add(B,e.multiplyByScalar(O,2*f,z),z),g[0]=e.clone(F,g[0]),g[1]=e.clone(k,g[1]),q=o.generateArc({positions:g,granularity:n,ellipsoid:h}),V=d(q,O,f,V),_&&(U.push(O.x,O.y,O.z),G.push(P.x,P.y,P.z)),N=e.clone(z,N),O=e.normalize(e.cross(P,D,O),O),z=e.add(B,e.multiplyByScalar(O,2*f,z),z),F=e.add(B,e.multiplyByScalar(O,f,F),F),m===t.ROUNDED||m===t.BEVELED?j.push({leftPositions:l(B,N,z,m,J)}):j.push({leftPositions:c(H,e.negate(L,L),z,J)})):(z=e.add(H,L,z),k=e.add(z,e.negate(e.multiplyByScalar(O,f,k),k),k),B=e.add(z,e.negate(e.multiplyByScalar(O,2*f,B),B),B),g[0]=e.clone(F,g[0]),g[1]=e.clone(k,g[1]),q=o.generateArc({positions:g,granularity:n,ellipsoid:h}),V=d(q,O,f,V),_&&(U.push(O.x,O.y,O.z),G.push(P.x,P.y,P.z)),N=e.clone(B,N),O=e.normalize(e.cross(P,D,O),O),B=e.add(z,e.negate(e.multiplyByScalar(O,2*f,B),B),B),F=e.add(z,e.negate(e.multiplyByScalar(O,f,F),F),F),m===t.ROUNDED||m===t.BEVELED?j.push({rightPositions:l(z,N,B,m,J)}):j.push({rightPositions:c(H,L,B,J)})),R=e.negate(D,R)}H=W}P=h.geodeticSurfaceNormal(H,P),g[0]=e.clone(F,g[0]),g[1]=e.clone(H,g[1]),q=o.generateArc({positions:g,granularity:n,ellipsoid:h}),V=d(q,O,f,V),_&&(U.push(O.x,O.y,O.z),G.push(P.x,P.y,P.z));var $;return m===t.ROUNDED&&($=u(V)),{positions:V,corners:j,lefts:U,normals:G,endPositions:$}},h}),define("Core/CorridorGeometry",["./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./CornerType","./CorridorGeometryLibrary","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType","./Rectangle","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e,t){for(var i=0;i<e.length;i++)e[i]=t.scaleToGeodeticSurface(e[i],e[i]);return e}function E(e,t,i,n,o,a){var s=e.normals,u=e.tangents,c=e.bitangents,d=r.normalize(r.cross(i,t,z),z);a.normal&&l.addAttribute(s,t,n,o),a.tangent&&l.addAttribute(u,d,n,o),a.bitangent&&l.addAttribute(c,i,n,o)}function A(e,t,i){var n,o,s,u=e.positions,d=e.corners,h=e.endPositions,p=e.lefts,_=e.normals,y=new m,C=0,b=0,S=0;for(o=0;o<u.length;o+=2)s=u[o].length-3,C+=s,S+=2*s,b+=u[o+1].length-3;for(C+=3,b+=3,o=0;o<d.length;o++){n=d[o];var T=d[o].leftPositions;c(T)?(s=T.length,C+=s,S+=s):(s=d[o].rightPositions.length,b+=s,S+=s)}var A,w=c(h);w&&(A=h[0].length-3,C+=A,b+=A,A/=3,S+=6*A);var x,P,D,I,M,F,V=C+b,U=new Float64Array(V),G=t.normal?new Float32Array(V):void 0,H=t.tangent?new Float32Array(V):void 0,W=t.bitangent?new Float32Array(V):void 0,q={normals:G,tangents:H,bitangents:W},Y=0,j=V-1,X=R,Q=O,K=A/2,Z=g.createTypedArray(V/3,S),J=0;if(w){F=L,M=N;var $=h[0];for(X=r.fromArray(_,0,X),Q=r.fromArray(p,0,Q),o=0;o<K;o++)F=r.fromArray($,3*(K-1-o),F),M=r.fromArray($,3*(K+o),M),l.addAttribute(U,M,Y),l.addAttribute(U,F,void 0,j),E(q,X,Q,Y,j,t),P=Y/3,I=P+1,x=(j-2)/3,D=x-1,Z[J++]=x,Z[J++]=P,Z[J++]=D,Z[J++]=D,Z[J++]=P,Z[J++]=I,Y+=3,j-=3}var ee=0,te=0,ie=u[ee++],re=u[ee++];U.set(ie,Y),U.set(re,j-re.length+1),Q=r.fromArray(p,te,Q);var ne,oe;for(s=re.length-3,o=0;o<s;o+=3)ne=i.geodeticSurfaceNormal(r.fromArray(ie,o,z),z),oe=i.geodeticSurfaceNormal(r.fromArray(re,s-o,k),k),X=r.normalize(r.add(ne,oe,X),X),E(q,X,Q,Y,j,t),P=Y/3,I=P+1,x=(j-2)/3,D=x-1,Z[J++]=x,Z[J++]=P,Z[J++]=D,Z[J++]=D,Z[J++]=P,Z[J++]=I,Y+=3,j-=3;for(ne=i.geodeticSurfaceNormal(r.fromArray(ie,s,z),z),oe=i.geodeticSurfaceNormal(r.fromArray(re,s,k),k),X=r.normalize(r.add(ne,oe,X),X),te+=3,o=0;o<d.length;o++){var ae;n=d[o];var se,le,ue=n.leftPositions,ce=n.rightPositions,de=B,he=L,pe=N;if(X=r.fromArray(_,te,X),c(ue)){for(E(q,X,Q,void 0,j,t),j-=3,se=I,le=D,ae=0;ae<ue.length/3;ae++)de=r.fromArray(ue,3*ae,de),Z[J++]=se,Z[J++]=le-ae-1,Z[J++]=le-ae,l.addAttribute(U,de,void 0,j),he=r.fromArray(U,3*(le-ae-1),he),pe=r.fromArray(U,3*se,pe),Q=r.normalize(r.subtract(he,pe,Q),Q),E(q,X,Q,void 0,j,t),j-=3;de=r.fromArray(U,3*se,de),he=r.subtract(r.fromArray(U,3*le,he),de,he),pe=r.subtract(r.fromArray(U,3*(le-ae),pe),de,pe),Q=r.normalize(r.add(he,pe,Q),Q),E(q,X,Q,Y,void 0,t),Y+=3}else{for(E(q,X,Q,Y,void 0,t),Y+=3,se=D,le=I,ae=0;ae<ce.length/3;ae++)de=r.fromArray(ce,3*ae,de),Z[J++]=se,Z[J++]=le+ae,Z[J++]=le+ae+1,l.addAttribute(U,de,Y),he=r.fromArray(U,3*se,he),pe=r.fromArray(U,3*(le+ae),pe),Q=r.normalize(r.subtract(he,pe,Q),Q),E(q,X,Q,Y,void 0,t),Y+=3;de=r.fromArray(U,3*se,de),he=r.subtract(r.fromArray(U,3*(le+ae),he),de,he),pe=r.subtract(r.fromArray(U,3*le,pe),de,pe),Q=r.normalize(r.negate(r.add(pe,he,Q),Q),Q),E(q,X,Q,void 0,j,t),j-=3}for(ie=u[ee++],re=u[ee++],ie.splice(0,3),re.splice(re.length-3,3),U.set(ie,Y),U.set(re,j-re.length+1),s=re.length-3,te+=3,Q=r.fromArray(p,te,Q),ae=0;ae<re.length;ae+=3)ne=i.geodeticSurfaceNormal(r.fromArray(ie,ae,z),z),oe=i.geodeticSurfaceNormal(r.fromArray(re,s-ae,k),k),X=r.normalize(r.add(ne,oe,X),X),E(q,X,Q,Y,j,t),I=Y/3,P=I-1,D=(j-2)/3,x=D+1,Z[J++]=x,Z[J++]=P,Z[J++]=D,Z[J++]=D,Z[J++]=P,Z[J++]=I,Y+=3,j-=3;Y-=3,j+=3}if(X=r.fromArray(_,_.length-3,X),E(q,X,Q,Y,j,t),w){Y+=3,j-=3,F=L,M=N;var fe=h[1];for(o=0;o<K;o++)F=r.fromArray(fe,3*(A-o-1),F),M=r.fromArray(fe,3*o,M),l.addAttribute(U,F,void 0,j),l.addAttribute(U,M,Y),E(q,X,Q,Y,j,t),I=Y/3,P=I-1,D=(j-2)/3,x=D+1,Z[J++]=x,Z[J++]=P,Z[J++]=D,Z[J++]=D,Z[J++]=P,Z[J++]=I,Y+=3,j-=3}if(y.position=new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:U}),t.st){var me,_e,ge=new Float32Array(V/3*2),ve=0;if(w){C/=3,b/=3;var ye=Math.PI/(A+1);_e=1/(C-A+1),me=1/(b-A+1);var Ce,be=A/2;for(o=be+1;o<A+1;o++)Ce=v.PI_OVER_TWO+ye*o,ge[ve++]=me*(1+Math.cos(Ce)),ge[ve++]=.5*(1+Math.sin(Ce));for(o=1;o<b-A+1;o++)ge[ve++]=o*me,ge[ve++]=0;for(o=A;o>be;o--)Ce=v.PI_OVER_TWO-o*ye,ge[ve++]=1-me*(1+Math.cos(Ce)),ge[ve++]=.5*(1+Math.sin(Ce));for(o=be;o>0;o--)Ce=v.PI_OVER_TWO-ye*o,ge[ve++]=1-_e*(1+Math.cos(Ce)),ge[ve++]=.5*(1+Math.sin(Ce));for(o=C-A;o>0;o--)ge[ve++]=o*_e,ge[ve++]=1;for(o=1;o<be+1;o++)Ce=v.PI_OVER_TWO+ye*o,ge[ve++]=_e*(1+Math.cos(Ce)),ge[ve++]=.5*(1+Math.sin(Ce))}else{for(C/=3,b/=3,_e=1/(C-1),me=1/(b-1),o=0;o<b;o++)ge[ve++]=o*me,ge[ve++]=0;for(o=C;o>0;o--)ge[ve++]=(o-1)*_e,ge[ve++]=1}y.st=new f({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:ge})}return t.normal&&(y.normal=new f({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:q.normals})),t.tangent&&(y.tangent=new f({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:q.tangents})),t.bitangent&&(y.bitangent=new f({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:q.bitangents})),{attributes:y,indices:Z}}function w(e,t){if(!(t.normal||t.tangent||t.bitangent||t.st))return e;var i,n,o=e.position.values;(t.normal||t.bitangent)&&(i=e.normal.values,n=e.bitangent.values);var a,s=e.position.values.length/18,u=3*s,c=2*s,d=2*u;if(t.normal||t.bitangent||t.tangent){var h=t.normal?new Float32Array(6*u):void 0,p=t.tangent?new Float32Array(6*u):void 0,f=t.bitangent?new Float32Array(6*u):void 0,m=R,_=O,g=L,v=N,y=F,C=B,b=d;for(a=0;a<u;a+=3){var S=b+d;m=r.fromArray(o,a,m),_=r.fromArray(o,a+u,_),g=r.fromArray(o,(a+3)%u,g),_=r.subtract(_,m,_),g=r.subtract(g,m,g),v=r.normalize(r.cross(_,g,v),v),t.normal&&(l.addAttribute(h,v,S),l.addAttribute(h,v,S+3),l.addAttribute(h,v,b),l.addAttribute(h,v,b+3)),(t.tangent||t.bitangent)&&(C=r.fromArray(i,a,C),t.bitangent&&(l.addAttribute(f,C,S),l.addAttribute(f,C,S+3),l.addAttribute(f,C,b),l.addAttribute(f,C,b+3)),t.tangent&&(y=r.normalize(r.cross(C,v,y),y),l.addAttribute(p,y,S),l.addAttribute(p,y,S+3),l.addAttribute(p,y,b),l.addAttribute(p,y,b+3))),b+=6}if(t.normal){for(h.set(i),a=0;a<u;a+=3)h[a+u]=-i[a],h[a+u+1]=-i[a+1],h[a+u+2]=-i[a+2];e.normal.values=h}else e.normal=void 0;if(t.bitangent?(f.set(n),f.set(n,u),e.bitangent.values=f):e.bitangent=void 0,t.tangent){var T=e.tangent.values;p.set(T),p.set(T,u),e.tangent.values=p}}if(t.st){var E=e.st.values,A=new Float32Array(6*c);A.set(E),A.set(E,c);for(var w=2*c,x=0;x<2;x++){for(A[w++]=E[0],A[w++]=E[1],a=2;a<c;a+=2){var P=E[a],D=E[a+1];A[w++]=P,A[w++]=D,A[w++]=P,A[w++]=D}A[w++]=E[0],A[w++]=E[1]}e.st.values=A}return e}function x(e,t,i){i[t++]=e[0],i[t++]=e[1],i[t++]=e[2];for(var r=3;r<e.length;r+=3){var n=e[r],o=e[r+1],a=e[r+2];i[t++]=n,i[t++]=o,i[t++]=a,i[t++]=n,i[t++]=o,i[t++]=a}return i[t++]=e[0],i[t++]=e[1],i[t++]=e[2],i}function P(t,i){var r=new S({position:i.position,normal:i.normal||i.bitangent||t.shadowVolume,tangent:i.tangent,bitangent:i.normal||i.bitangent,st:i.st}),n=t.ellipsoid,o=l.computePositions(t),s=A(o,r,n),u=t.height,d=t.extrudedHeight,h=s.attributes,p=s.indices,m=h.position.values,v=m.length,C=new Float64Array(6*v),b=new Float64Array(v);b.set(m);var T=new Float64Array(4*v);m=y.scaleToGeodeticHeight(m,u,n),T=x(m,0,T),b=y.scaleToGeodeticHeight(b,d,n),T=x(b,2*v,T),C.set(m),C.set(b,v),C.set(T,2*v),h.position.values=C,h=w(h,i);var E,P=v/3;if(t.shadowVolume){var D=h.normal.values;v=D.length;var I=new Float32Array(6*v);for(E=0;E<v;E++)D[E]=-D[E];I.set(D,v),I=x(D,4*v,I),h.extrudeDirection=new f({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:I}),i.normal||(h.normal=void 0)}if(c(t.offsetAttribute)){var M=new Uint8Array(6*P);if(t.offsetAttribute===_.TOP)M=e(M,1,0,P),M=e(M,1,2*P,4*P);else{var R=t.offsetAttribute===_.NONE?0:1;M=e(M,R)}h.applyOffset=new f({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}var O=p.length,L=P+P,N=g.createTypedArray(C.length/3,2*O+3*L);N.set(p);var F=O;for(E=0;E<O;E+=3){var B=p[E],z=p[E+1],k=p[E+2];N[F++]=k+P,N[F++]=z+P,N[F++]=B+P}var V,U,G,H;for(E=0;E<L;E+=2)V=E+L,U=V+L,G=V+1,H=U+1,N[F++]=V,N[F++]=U,N[F++]=G,N[F++]=G,N[F++]=U,N[F++]=H;return{attributes:h,indices:N}}function D(e,t,i,n,o,a){var s=r.subtract(t,e,V);r.normalize(s,s);var l=i.geodeticSurfaceNormal(e,U),u=r.cross(s,l,V);r.multiplyByScalar(u,n,u);var c=o.latitude,d=o.longitude,h=a.latitude,p=a.longitude;r.add(e,u,U),i.cartesianToCartographic(U,G);var f=G.latitude,m=G.longitude;c=Math.min(c,f),d=Math.min(d,m),h=Math.max(h,f),p=Math.max(p,m),r.subtract(e,u,U),i.cartesianToCartographic(U,G),f=G.latitude,m=G.longitude,c=Math.min(c,f),d=Math.min(d,m),h=Math.max(h,f),p=Math.max(p,m),o.latitude=c,o.longitude=d,a.latitude=h,a.longitude=p}function I(e,i,n,o,a){e=T(e,i);var l=t(e,r.equalsEpsilon),u=l.length;if(u<2||n<=0)return new b;var d=.5*n;q.latitude=Number.POSITIVE_INFINITY,q.longitude=Number.POSITIVE_INFINITY,Y.latitude=Number.NEGATIVE_INFINITY,Y.longitude=Number.NEGATIVE_INFINITY;var h,p;if(o===s.ROUNDED){var f=l[0];r.subtract(f,l[1],H),r.normalize(H,H),r.multiplyByScalar(H,d,H),r.add(f,H,W),i.cartesianToCartographic(W,G),h=G.latitude,p=G.longitude,q.latitude=Math.min(q.latitude,h),q.longitude=Math.min(q.longitude,p),Y.latitude=Math.max(Y.latitude,h),Y.longitude=Math.max(Y.longitude,p)}for(var m=0;m<u-1;++m)D(l[m],l[m+1],i,d,q,Y);var _=l[u-1];r.subtract(_,l[u-2],H),r.normalize(H,H),r.multiplyByScalar(H,d,H),r.add(_,H,W),D(_,W,i,d,q,Y),o===s.ROUNDED&&(i.cartesianToCartographic(W,G),h=G.latitude,p=G.longitude,q.latitude=Math.min(q.latitude,h),q.longitude=Math.min(q.longitude,p),Y.latitude=Math.max(Y.latitude,h),Y.longitude=Math.max(Y.longitude,p));var g=c(a)?a:new b;return g.north=Y.latitude,g.south=q.latitude,g.east=Y.longitude,g.west=q.longitude,g}function M(e){e=u(e,u.EMPTY_OBJECT);var t=e.positions,i=e.width,n=u(e.height,0),o=u(e.extrudedHeight,n);this._positions=t,this._ellipsoid=h.clone(u(e.ellipsoid,h.WGS84)),this._vertexFormat=S.clone(u(e.vertexFormat,S.DEFAULT)),this._width=i,this._height=Math.max(n,o),this._extrudedHeight=Math.min(n,o),this._cornerType=u(e.cornerType,s.ROUNDED),this._granularity=u(e.granularity,v.RADIANS_PER_DEGREE),this._shadowVolume=u(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*r.packedLength+h.packedLength+S.packedLength+7}var R=new r,O=new r,L=new r,N=new r,F=new r,B=new r,z=new r,k=new r,V=new r,U=new r,G=new n,H=new r,W=new r,q=new n,Y=new n;M.pack=function(e,t,i){i=u(i,0);var n=e._positions,o=n.length;t[i++]=o;for(var a=0;a<o;++a,i+=r.packedLength)r.pack(n[a],t,i);return h.pack(e._ellipsoid,t,i),i+=h.packedLength,S.pack(e._vertexFormat,t,i),i+=S.packedLength,t[i++]=e._width,t[i++]=e._height,t[i++]=e._extrudedHeight,t[i++]=e._cornerType,t[i++]=e._granularity,t[i++]=e._shadowVolume?1:0,t[i]=u(e._offsetAttribute,-1),t};var j=h.clone(h.UNIT_SPHERE),X=new S,Q={positions:void 0,ellipsoid:j,vertexFormat:X,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};return M.unpack=function(e,t,i){t=u(t,0);for(var n=e[t++],o=new Array(n),a=0;a<n;++a,t+=r.packedLength)o[a]=r.unpack(e,t);var s=h.unpack(e,t,j);t+=h.packedLength;var l=S.unpack(e,t,X);t+=S.packedLength;var d=e[t++],p=e[t++],f=e[t++],m=e[t++],_=e[t++],g=1===e[t++],v=e[t];return c(i)?(i._positions=o,i._ellipsoid=h.clone(s,i._ellipsoid),i._vertexFormat=S.clone(l,i._vertexFormat),i._width=d,i._height=p,i._extrudedHeight=f,i._cornerType=m,i._granularity=_,i._shadowVolume=g,i._offsetAttribute=-1===v?void 0:v,i):(Q.positions=o,Q.width=d,Q.height=p,Q.extrudedHeight=f,Q.cornerType=m,Q.granularity=_,Q.shadowVolume=g,Q.offsetAttribute=-1===v?void 0:v,new M(Q))},M.computeRectangle=function(e,t){e=u(e,u.EMPTY_OBJECT);var i=e.positions,r=e.width;return I(i,u(e.ellipsoid,h.WGS84),r,u(e.cornerType,s.ROUNDED),t)},M.createGeometry=function(n){var o=n._positions,s=n._width,u=n._ellipsoid;o=T(o,u);var d=t(o,r.equalsEpsilon);if(!(d.length<2||s<=0)){var h,m=n._height,g=n._extrudedHeight,b=!v.equalsEpsilon(m,g,0,v.EPSILON2),S=n._vertexFormat,E={ellipsoid:u,positions:d,width:s,cornerType:n._cornerType,granularity:n._granularity,saveAttributes:!0};if(b)E.height=m,E.extrudedHeight=g,E.shadowVolume=n._shadowVolume,E.offsetAttribute=n._offsetAttribute,h=P(E,S);else{if(h=A(l.computePositions(E),S,u),h.attributes.position.values=y.scaleToGeodeticHeight(h.attributes.position.values,m,u),c(n._offsetAttribute)){var w=n._offsetAttribute===_.NONE?0:1,x=h.attributes.position.values.length,D=new Uint8Array(x/3);e(D,w),h.attributes.applyOffset=new f({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:D})}}var I=h.attributes,M=i.fromVertices(I.position.values,void 0,3);return S.position||(h.attributes.position.values=void 0),new p({attributes:I,indices:h.indices,primitiveType:C.TRIANGLES,boundingSphere:M,offsetAttribute:n._offsetAttribute})}},M.createShadowVolume=function(e,t,i){var r=e._granularity,n=e._ellipsoid,o=t(r,n),a=i(r,n);return new M({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:n,granularity:r,extrudedHeight:o,height:a,vertexFormat:S.POSITION_ONLY,shadowVolume:!0})},d(M.prototype,{rectangle:{get:function(){return c(this._rectangle)||(this._rectangle=I(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}}),M}),define("Core/CorridorOutlineGeometry",["./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./CornerType","./CorridorGeometryLibrary","./defaultValue","./defined","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(e,t){for(var i=0;i<e.length;i++)e[i]=t.scaleToGeodeticSurface(e[i],e[i]);return e}function C(e,t){var i,n,l,c=[],d=e.positions,f=e.corners,_=e.endPositions,g=new p,v=0,y=0,C=0;for(n=0;n<d.length;n+=2)l=d[n].length-3,v+=l,C+=l/3*4,y+=d[n+1].length-3;for(v+=3,y+=3,n=0;n<f.length;n++){i=f[n];var b=f[n].leftPositions;u(b)?(l=b.length,v+=l,C+=l/3*2):(l=f[n].rightPositions.length,y+=l,C+=l/3*2)}var S,w=u(_);w&&(S=_[0].length-3,v+=S,y+=S,S/=3,C+=4*S);var x,P,D,I,M,R,O=v+y,L=new Float64Array(O),N=0,F=O-1,B=S/2,z=m.createTypedArray(O/3,C+4),k=0;if(z[k++]=N/3,z[k++]=(F-2)/3,w){c.push(N/3),R=T,M=E;var V=_[0];for(n=0;n<B;n++)R=r.fromArray(V,3*(B-1-n),R),M=r.fromArray(V,3*(B+n),M),s.addAttribute(L,M,N),s.addAttribute(L,R,void 0,F),P=N/3,I=P+1,x=(F-2)/3,D=x-1,z[k++]=x,z[k++]=D,z[k++]=P,z[k++]=I,N+=3,F-=3}var U=0,G=d[U++],H=d[U++];for(L.set(G,N),L.set(H,F-H.length+1),l=H.length-3,c.push(N/3,(F-2)/3),n=0;n<l;n+=3)P=N/3,I=P+1,x=(F-2)/3,D=x-1,z[k++]=x,z[k++]=D,z[k++]=P,z[k++]=I,N+=3,F-=3;for(n=0;n<f.length;n++){var W;i=f[n];var q,Y=i.leftPositions,j=i.rightPositions,X=A;if(u(Y)){for(F-=3,q=D,c.push(I),W=0;W<Y.length/3;W++)X=r.fromArray(Y,3*W,X),z[k++]=q-W-1,z[k++]=q-W,s.addAttribute(L,X,void 0,F),F-=3;c.push(q-Math.floor(Y.length/6)),t===a.BEVELED&&c.push((F-2)/3+1),N+=3}else{for(N+=3,q=I,c.push(D),W=0;W<j.length/3;W++)X=r.fromArray(j,3*W,X),z[k++]=q+W,z[k++]=q+W+1,s.addAttribute(L,X,N),N+=3;c.push(q+Math.floor(j.length/6)),t===a.BEVELED&&c.push(N/3-1),F-=3}for(G=d[U++],H=d[U++],G.splice(0,3),H.splice(H.length-3,3),L.set(G,N),L.set(H,F-H.length+1),l=H.length-3,W=0;W<H.length;W+=3)I=N/3,P=I-1,D=(F-2)/3,x=D+1,z[k++]=x,z[k++]=D,z[k++]=P,z[k++]=I,N+=3,F-=3;N-=3,F+=3,c.push(N/3,(F-2)/3)}if(w){N+=3,F-=3,R=T,M=E;var Q=_[1];for(n=0;n<B;n++)R=r.fromArray(Q,3*(S-n-1),R),M=r.fromArray(Q,3*n,M),s.addAttribute(L,R,void 0,F),s.addAttribute(L,M,N),I=N/3,P=I-1,D=(F-2)/3,x=D+1,z[k++]=x,z[k++]=D,z[k++]=P,z[k++]=I,N+=3,F-=3;c.push(N/3)}else c.push(N/3,(F-2)/3);return z[k++]=N/3,z[k++]=(F-2)/3,g.position=new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:L}),{attributes:g,indices:z,wallIndices:c}}function b(t){var i=t.ellipsoid,r=s.computePositions(t),n=C(r,t.cornerType),a=n.wallIndices,l=t.height,c=t.extrudedHeight,d=n.attributes,p=n.indices,_=d.position.values,v=_.length,y=new Float64Array(v);y.set(_);var b=new Float64Array(2*v);if(_=g.scaleToGeodeticHeight(_,l,i),y=g.scaleToGeodeticHeight(y,c,i),b.set(_),b.set(y,v),d.position.values=b,v/=3,u(t.offsetAttribute)){var S=new Uint8Array(2*v);if(t.offsetAttribute===f.TOP)S=e(S,1,0,v);else{var T=t.offsetAttribute===f.NONE?0:1;S=e(S,T)}d.applyOffset=new h({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:S})}var E,A=p.length,w=m.createTypedArray(b.length/3,2*(A+a.length));w.set(p);var x=A;for(E=0;E<A;E+=2){var P=p[E],D=p[E+1];w[x++]=P+v,w[x++]=D+v}var I,M;for(E=0;E<a.length;E++)I=a[E],M=I+v,w[x++]=I,w[x++]=M;return{attributes:d,indices:w}}function S(e){e=l(e,l.EMPTY_OBJECT);var t=e.positions,i=e.width,n=l(e.height,0),o=l(e.extrudedHeight,n);this._positions=t,this._ellipsoid=c.clone(l(e.ellipsoid,c.WGS84)),this._width=i,this._height=Math.max(n,o),this._extrudedHeight=Math.min(n,o),this._cornerType=l(e.cornerType,a.ROUNDED),this._granularity=l(e.granularity,_.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*r.packedLength+c.packedLength+6}var T=new r,E=new r,A=new r;S.pack=function(e,t,i){i=l(i,0);var n=e._positions,o=n.length;t[i++]=o;for(var a=0;a<o;++a,i+=r.packedLength)r.pack(n[a],t,i);return c.pack(e._ellipsoid,t,i),i+=c.packedLength,t[i++]=e._width,t[i++]=e._height,t[i++]=e._extrudedHeight,t[i++]=e._cornerType,t[i++]=e._granularity,t[i]=l(e._offsetAttribute,-1),t};var w=c.clone(c.UNIT_SPHERE),x={positions:void 0,ellipsoid:w,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};return S.unpack=function(e,t,i){t=l(t,0);for(var n=e[t++],o=new Array(n),a=0;a<n;++a,t+=r.packedLength)o[a]=r.unpack(e,t);var s=c.unpack(e,t,w);t+=c.packedLength;var d=e[t++],h=e[t++],p=e[t++],f=e[t++],m=e[t++],_=e[t];return u(i)?(i._positions=o,i._ellipsoid=c.clone(s,i._ellipsoid),i._width=d,i._height=h,i._extrudedHeight=p,i._cornerType=f,i._granularity=m,i._offsetAttribute=-1===_?void 0:_,i):(x.positions=o,x.width=d,x.height=h,x.extrudedHeight=p,x.cornerType=f,x.granularity=m,x.offsetAttribute=-1===_?void 0:_,new S(x))},S.createGeometry=function(n){var a=n._positions,l=n._width,c=n._ellipsoid;a=y(a,c);var p=t(a,r.equalsEpsilon);if(!(p.length<2||l<=0)){var m,S=n._height,T=n._extrudedHeight,E=!_.equalsEpsilon(S,T,0,_.EPSILON2),A={ellipsoid:c,positions:p,width:l,cornerType:n._cornerType,granularity:n._granularity,saveAttributes:!1};if(E)A.height=S,A.extrudedHeight=T,A.offsetAttribute=n._offsetAttribute,m=b(A);else{if(m=C(s.computePositions(A),A.cornerType), -m.attributes.position.values=g.scaleToGeodeticHeight(m.attributes.position.values,S,c),u(n._offsetAttribute)){var w=m.attributes.position.values.length,x=new Uint8Array(w/3),P=n._offsetAttribute===f.NONE?0:1;e(x,P),m.attributes.applyOffset=new h({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}var D=m.attributes,I=i.fromVertices(D.position.values,void 0,3);return new d({attributes:D,indices:m.indices,primitiveType:v.LINES,boundingSphere:I,offsetAttribute:n._offsetAttribute})}},S}),define("Core/createGuid",[],function(){"use strict";function e(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){var t=16*Math.random()|0;return("x"===e?t:3&t|8).toString(16)})}return e}),define("Core/Ion",["./Credit","./defined","./Resource"],function(e,t,i){"use strict";var r,n="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiI4ZDIzYmM0NC1kM2VmLTRjYzQtOTY2NS03MzU4YTdiMGIzNDkiLCJpZCI6MjU5LCJzY29wZXMiOlsiYXNyIiwiZ2MiXSwiaWF0IjoxNTU5NTc1NTY1fQ.kvuWBRJKCmJ8keZS1hPE7uBpCK4jS53e1GaDZ8qIXJQ",o={};return o.defaultAccessToken=n,o.defaultServer=new i({url:"https://api.cesium.com/"}),o.getDefaultTokenCredit=function(i){if(i===n){if(!t(r)){r=new e('<b> This application is using Cesium\'s default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>',!0)}return r}},o}),define("Core/IonResource",["../ThirdParty/Uri","../ThirdParty/when","./Check","./Credit","./defaultValue","./defined","./defineProperties","./Ion","./Resource","./RuntimeError"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t,i){var r,n=t.externalType,a=o(n);if(a){if("3DTILES"!==n&&"STK_TERRAIN_SERVER"!==n)throw new u("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");r={url:t.options.url}}else r={url:t.url,retryAttempts:1,retryCallback:d};l.call(this,r),this._ionEndpoint=t,this._ionEndpointDomain=a?void 0:new e(t.url).authority,this._ionEndpointResource=i,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=a}function d(e,i){var r=n(e._ionRoot,e),a=r._ionEndpointResource;return o(i)&&(401===i.statusCode||i.target instanceof Image)?(o(r._pendingPromise)||(r._pendingPromise=a.fetchJson().then(function(e){return r._ionEndpoint=e,e}).always(function(e){return r._pendingPromise=void 0,e})),r._pendingPromise.then(function(t){return e._ionEndpoint=t,!0})):t.resolve(!1)}return o(Object.create)&&(c.prototype=Object.create(l.prototype),c.prototype.constructor=c),c.fromAssetId=function(e,t){var i=c._createEndpointResource(e,t);return i.fetchJson().then(function(e){return new c(e,i)})},a(c.prototype,{credits:{get:function(){return o(this._ionRoot)?this._ionRoot.credits:o(this._credits)?this._credits:(this._credits=c.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}}),c.getCreditsFromEndpoint=function(e,t){var i=e.attributions.map(r.getIonCredit),n=s.getDefaultTokenCredit(t.queryParameters.access_token);return o(n)&&i.push(r.clone(n)),i},c.prototype.clone=function(e){var t=n(this._ionRoot,this);return o(e)||(e=new c(t._ionEndpoint,t._ionEndpointResource)),e=l.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e},c.prototype.fetchImage=function(e){if(!this._isExternal){var t=e;e={preferBlob:!0},o(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return l.prototype.fetchImage.call(this,e)},c.prototype._makeRequest=function(t){if(this._isExternal||new e(this.url).authority!==this._ionEndpointDomain)return l.prototype._makeRequest.call(this,t);var i="*/*;access_token="+this._ionEndpoint.accessToken,r=i,n=this.headers;return o(n)&&o(n.Accept)&&(r=n.Accept+","+i),o(t.headers)?o(t.headers.Accept)?t.headers.Accept=t.headers.Accept+","+i:t.headers.Accept=r:t.headers={Accept:r},l.prototype._makeRequest.call(this,t)},c._createEndpointResource=function(e,t){t=n(t,n.EMPTY_OBJECT);var i=n(t.server,s.defaultServer),r=n(t.accessToken,s.defaultAccessToken);i=l.createIfNeeded(i);var a={url:"v1/assets/"+e+"/endpoint"};return o(r)&&(a.queryParameters={access_token:r}),i.getDerivedResource(a)},c}),define("Core/createWorldTerrain",["./CesiumTerrainProvider","./defaultValue","./IonResource"],function(e,t,i){"use strict";function r(r){return r=t(r,t.EMPTY_OBJECT),new e({url:i.fromAssetId(1),requestVertexNormals:t(r.requestVertexNormals,!1),requestWaterMask:t(r.requestWaterMask,!1)})}return r}),define("Core/CullingVolume",["./Cartesian3","./Cartesian4","./defaultValue","./defined","./DeveloperError","./Intersect","./Plane"],function(e,t,i,r,n,o,a){"use strict";function s(e){this.planes=i(e,[])}var l=[new e,new e,new e];e.clone(e.UNIT_X,l[0]),e.clone(e.UNIT_Y,l[1]),e.clone(e.UNIT_Z,l[2]);var u=new e,c=new e,d=new a(new e(1,0,0),0);return s.fromBoundingSphere=function(i,n){r(n)||(n=new s);var o=l.length,a=n.planes;a.length=2*o;for(var d=i.center,h=i.radius,p=0,f=0;f<o;++f){var m=l[f],_=a[p],g=a[p+1];r(_)||(_=a[p]=new t),r(g)||(g=a[p+1]=new t),e.multiplyByScalar(m,-h,u),e.add(d,u,u),_.x=m.x,_.y=m.y,_.z=m.z,_.w=-e.dot(m,u),e.multiplyByScalar(m,h,u),e.add(d,u,u),g.x=-m.x,g.y=-m.y,g.z=-m.z,g.w=-e.dot(e.negate(m,c),u),p+=2}return n},s.prototype.computeVisibility=function(e){for(var t=this.planes,i=!1,r=0,n=t.length;r<n;++r){var s=e.intersectPlane(a.fromCartesian4(t[r],d));if(s===o.OUTSIDE)return o.OUTSIDE;s===o.INTERSECTING&&(i=!0)}return i?o.INTERSECTING:o.INSIDE},s.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===s.MASK_OUTSIDE||t===s.MASK_INSIDE)return t;for(var i=s.MASK_INSIDE,r=this.planes,n=0,l=r.length;n<l;++n){var u=n<31?1<<n:0;if(!(n<31&&0==(t&u))){var c=e.intersectPlane(a.fromCartesian4(r[n],d));if(c===o.OUTSIDE)return s.MASK_OUTSIDE;c===o.INTERSECTING&&(i|=u)}}return i},s.MASK_OUTSIDE=4294967295,s.MASK_INSIDE=0,s.MASK_INDETERMINATE=2147483647,s}),define("Core/CylinderGeometryLibrary",["./Math"],function(e){"use strict";var t={};return t.computePositions=function(t,i,r,n,o){var a,s=.5*t,l=-s,u=n+n,c=o?2*u:u,d=new Float64Array(3*c),h=0,p=0,f=o?3*u:0,m=o?3*(u+n):3*n;for(a=0;a<n;a++){var _=a/n*e.TWO_PI,g=Math.cos(_),v=Math.sin(_),y=g*r,C=v*r,b=g*i,S=v*i;d[p+f]=y,d[p+f+1]=C,d[p+f+2]=l,d[p+m]=b,d[p+m+1]=S,d[p+m+2]=s,p+=3,o&&(d[h++]=y,d[h++]=C,d[h++]=l,d[h++]=b,d[h++]=S,d[h++]=s)}return d},t}),define("Core/CylinderGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CylinderGeometryLibrary","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){e=a(e,a.EMPTY_OBJECT);var t=e.length,i=e.topRadius,r=e.bottomRadius,n=a(e.vertexFormat,_.DEFAULT),o=a(e.slices,128);this._length=t,this._topRadius=i,this._bottomRadius=r,this._vertexFormat=_.clone(n),this._slices=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}var v=new i,y=new r,C=new r,b=new r,S=new r;g.packedLength=_.packedLength+5,g.pack=function(e,t,i){return i=a(i,0),_.pack(e._vertexFormat,t,i),i+=_.packedLength,t[i++]=e._length,t[i++]=e._topRadius,t[i++]=e._bottomRadius,t[i++]=e._slices,t[i]=a(e._offsetAttribute,-1),t};var T=new _,E={vertexFormat:T,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};g.unpack=function(e,t,i){t=a(t,0);var r=_.unpack(e,t,T);t+=_.packedLength;var n=e[t++],o=e[t++],l=e[t++],u=e[t++],c=e[t];return s(i)?(i._vertexFormat=_.clone(r,i._vertexFormat),i._length=n,i._topRadius=o,i._bottomRadius=l,i._slices=u,i._offsetAttribute=-1===c?void 0:c,i):(E.length=n,E.topRadius=o,E.bottomRadius=l,E.slices=u,E.offsetAttribute=-1===c?void 0:c,new g(E))},g.createGeometry=function(a){var l=a._length,_=a._topRadius,g=a._bottomRadius,T=a._vertexFormat,E=a._slices;if(!(l<=0||_<0||g<0||0===_&&0===g)){var A,w=E+E,x=E+w,P=w+w,D=o.computePositions(l,_,g,E,!0),I=T.st?new Float32Array(2*P):void 0,M=T.normal?new Float32Array(3*P):void 0,R=T.tangent?new Float32Array(3*P):void 0,O=T.bitangent?new Float32Array(3*P):void 0,L=T.normal||T.tangent||T.bitangent;if(L){var N=T.tangent||T.bitangent,F=0,B=0,z=0,k=Math.atan2(g-_,l),V=y;V.z=Math.sin(k);var U=Math.cos(k),G=b,H=C;for(A=0;A<E;A++){var W=A/E*f.TWO_PI,q=U*Math.cos(W),Y=U*Math.sin(W);L&&(V.x=q,V.y=Y,N&&(G=r.normalize(r.cross(r.UNIT_Z,V,G),G)),T.normal&&(M[F++]=V.x,M[F++]=V.y,M[F++]=V.z,M[F++]=V.x,M[F++]=V.y,M[F++]=V.z),T.tangent&&(R[B++]=G.x,R[B++]=G.y,R[B++]=G.z,R[B++]=G.x,R[B++]=G.y,R[B++]=G.z),T.bitangent&&(H=r.normalize(r.cross(V,G,H),H),O[z++]=H.x,O[z++]=H.y,O[z++]=H.z,O[z++]=H.x,O[z++]=H.y,O[z++]=H.z))}for(A=0;A<E;A++)T.normal&&(M[F++]=0,M[F++]=0,M[F++]=-1),T.tangent&&(R[B++]=1,R[B++]=0,R[B++]=0),T.bitangent&&(O[z++]=0,O[z++]=-1,O[z++]=0);for(A=0;A<E;A++)T.normal&&(M[F++]=0,M[F++]=0,M[F++]=1),T.tangent&&(R[B++]=1,R[B++]=0,R[B++]=0),T.bitangent&&(O[z++]=0,O[z++]=1,O[z++]=0)}var j=12*E-12,X=p.createTypedArray(P,j),Q=0,K=0;for(A=0;A<E-1;A++)X[Q++]=K,X[Q++]=K+2,X[Q++]=K+3,X[Q++]=K,X[Q++]=K+3,X[Q++]=K+1,K+=2;for(X[Q++]=w-2,X[Q++]=0,X[Q++]=1,X[Q++]=w-2,X[Q++]=1,X[Q++]=w-1,A=1;A<E-1;A++)X[Q++]=w+A+1,X[Q++]=w+A,X[Q++]=w;for(A=1;A<E-1;A++)X[Q++]=x,X[Q++]=x+A,X[Q++]=x+A+1;var Z=0;if(T.st){var J=Math.max(_,g);for(A=0;A<P;A++){var $=r.fromArray(D,3*A,S);I[Z++]=($.x+J)/(2*J),I[Z++]=($.y+J)/(2*J)}}var ee=new d;T.position&&(ee.position=new c({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:D})),T.normal&&(ee.normal=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:M})),T.tangent&&(ee.tangent=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:R})),T.bitangent&&(ee.bitangent=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:O})),T.st&&(ee.st=new c({componentDatatype:n.FLOAT,componentsPerAttribute:2,values:I})),v.x=.5*l,v.y=Math.max(g,_);var te=new t(r.ZERO,i.magnitude(v));if(s(a._offsetAttribute)){l=D.length;var ie=new Uint8Array(l/3),re=a._offsetAttribute===h.NONE?0:1;e(ie,re),ee.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:ie})}return new u({attributes:ee,indices:X,primitiveType:m.TRIANGLES,boundingSphere:te,offsetAttribute:a._offsetAttribute})}};var A;return g.getUnitCylinder=function(){return s(A)||(A=g.createGeometry(new g({topRadius:1,bottomRadius:1,length:1,vertexFormat:_.POSITION_ONLY}))),A},g}),define("Core/CylinderOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Check","./ComponentDatatype","./CylinderGeometryLibrary","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){e=s(e,s.EMPTY_OBJECT);var t=e.length,i=e.topRadius,r=e.bottomRadius,n=s(e.slices,128),o=Math.max(s(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=i,this._bottomRadius=r,this._slices=n,this._numberOfVerticalLines=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}var g=new i;_.packedLength=6,_.pack=function(e,t,i){return i=s(i,0),t[i++]=e._length,t[i++]=e._topRadius,t[i++]=e._bottomRadius,t[i++]=e._slices,t[i++]=e._numberOfVerticalLines,t[i]=s(e._offsetAttribute,-1),t};var v={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return _.unpack=function(e,t,i){t=s(t,0);var r=e[t++],n=e[t++],o=e[t++],a=e[t++],u=e[t++],c=e[t];return l(i)?(i._length=r,i._topRadius=n,i._bottomRadius=o,i._slices=a,i._numberOfVerticalLines=u,i._offsetAttribute=-1===c?void 0:c,i):(v.length=r,v.topRadius=n,v.bottomRadius=o,v.slices=a,v.numberOfVerticalLines=u,v.offsetAttribute=-1===c?void 0:c,new _(v))},_.createGeometry=function(n){var s=n._length,u=n._topRadius,_=n._bottomRadius,v=n._slices,y=n._numberOfVerticalLines;if(!(s<=0||u<0||_<0||0===u&&0===_)){var C,b=2*v,S=a.computePositions(s,u,_,v,!1),T=2*v;if(y>0){var E=Math.min(y,v);C=Math.round(v/E),T+=E}var A,w=f.createTypedArray(b,2*T),x=0;for(A=0;A<v-1;A++)w[x++]=A,w[x++]=A+1,w[x++]=A+v,w[x++]=A+1+v;if(w[x++]=v-1,w[x++]=0,w[x++]=v+v-1,w[x++]=v,y>0)for(A=0;A<v;A+=C)w[x++]=A,w[x++]=A+v;var P=new h;P.position=new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:S}),g.x=.5*s,g.y=Math.max(_,u);var D=new t(r.ZERO,i.magnitude(g));if(l(n._offsetAttribute)){s=S.length;var I=new Uint8Array(s/3),M=n._offsetAttribute===p.NONE?0:1;e(I,M),P.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new c({attributes:P,indices:w,primitiveType:m.LINES,boundingSphere:D,offsetAttribute:n._offsetAttribute})}},_}),define("Core/decodeGoogleEarthEnterpriseData",["./Check","./RuntimeError"],function(e,t){"use strict";function i(e,o){if(i.passThroughDataForTesting)return o;var a=e.byteLength;if(0===a||a%4!=0)throw new t("The length of key must be greater than 0 and a multiple of 4.");var s=new DataView(o),l=s.getUint32(0,!0);if(l===r||l===n)return o;for(var u,c=new DataView(e),d=0,h=o.byteLength,p=h-h%8,f=a,m=8;d<p;)for(m=(m+8)%24,u=m;d<p&&u<f;)s.setUint32(d,s.getUint32(d,!0)^c.getUint32(u,!0),!0),s.setUint32(d+4,s.getUint32(d+4,!0)^c.getUint32(u+4,!0),!0),d+=8,u+=24;if(d<h)for(u>=f&&(m=(m+8)%24,u=m);d<h;)s.setUint8(d,s.getUint8(d)^c.getUint8(u)),d++,u++}var r=1953029805,n=2917034100;return i.passThroughDataForTesting=!1,i}),define("Core/DefaultProxy",[],function(){"use strict";function e(e){this.proxy=e}return e.prototype.getURL=function(e){var t=-1===this.proxy.indexOf("?")?"?":"";return this.proxy+t+encodeURIComponent(e)},e}),define("Core/oneTimeWarning",["./defaultValue","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(i,r){t(n[i])||(n[i]=!0,console.warn(e(r,i)))}var n={};return r.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.",r.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored",r.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored",r.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored",r}),define("Core/deprecationWarning",["./defined","./DeveloperError","./oneTimeWarning"],function(e,t,i){"use strict";function r(e,t){i(e,t)}return r}),define("Core/DistanceDisplayCondition",["./defaultValue","./defined","./defineProperties","./DeveloperError"],function(e,t,i,r){"use strict";function n(t,i){t=e(t,0),this._near=t,i=e(i,Number.MAX_VALUE),this._far=i}return i(n.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}}),n.packedLength=2,n.pack=function(t,i,r){return r=e(r,0),i[r++]=t.near,i[r]=t.far,i},n.unpack=function(i,r,o){return r=e(r,0),t(o)||(o=new n),o.near=i[r++],o.far=i[r],o},n.equals=function(e,i){return e===i||t(e)&&t(i)&&e.near===i.near&&e.far===i.far},n.clone=function(e,i){if(t(e))return t(i)||(i=new n),i.near=e.near,i.far=e.far,i},n.prototype.clone=function(e){return n.clone(this,e)},n.prototype.equals=function(e){return n.equals(this,e)},n}),define("Core/DistanceDisplayConditionGeometryInstanceAttribute",["./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError"],function(e,t,i,r,n){"use strict";function o(e,i){e=t(e,0),i=t(i,Number.MAX_VALUE),this.value=new Float32Array([e,i])}return r(o.prototype,{componentDatatype:{get:function(){return e.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}}),o.fromDistanceDisplayCondition=function(e){return new o(e.near,e.far)},o.toValue=function(e,t){return i(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])},o}),define("Core/DoublyLinkedList",["./defined","./defineProperties"],function(e,t){"use strict";function i(){this.head=void 0,this.tail=void 0,this._length=0}function r(e,t,i){this.item=e,this.previous=t,this.next=i}function n(t,i){e(i.previous)&&e(i.next)?(i.previous.next=i.next,i.next.previous=i.previous):e(i.previous)?(i.previous.next=void 0,t.tail=i.previous):e(i.next)?(i.next.previous=void 0,t.head=i.next):(t.head=void 0,t.tail=void 0),i.next=void 0,i.previous=void 0}return t(i.prototype,{length:{get:function(){return this._length}}}),i.prototype.add=function(t){var i=new r(t,this.tail,void 0);return e(this.tail)?(this.tail.next=i,this.tail=i):(this.head=i,this.tail=i),++this._length,i},i.prototype.remove=function(t){e(t)&&(n(this,t),--this._length)},i.prototype.splice=function(e,t){if(e!==t){n(this,t);var i=e.next;e.next=t,this.tail===e?this.tail=t:i.previous=t,t.next=i,t.previous=e}},i}),define("ThirdParty/Tween",[],function(){void 0===Date.now&&(Date.now=function(){return(new Date).valueOf()});var e=e||function(){var e=[];return{REVISION:"13",getAll:function(){return e},removeAll:function(){e=[]},add:function(t){e.push(t)},remove:function(t){var i=e.indexOf(t);-1!==i&&e.splice(i,1)},update:function(t){if(0===e.length)return!1;var i=0;for(t=void 0!==t?t:"undefined"!=typeof window&&void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now();i<e.length;)e[i].update(t)?i++:e.splice(i,1);return!0}}}();return e.Tween=function(t){var i=t,r={},n={},o={},a=1e3,s=0,l=!1,u=!1,c=!1,d=0,h=null,p=e.Easing.Linear.None,f=e.Interpolation.Linear,m=[],_=null,g=!1,v=null,y=null,C=null;for(var b in t)r[b]=parseFloat(t[b],10);this.to=function(e,t){return void 0!==t&&(a=t),n=e,this},this.start=function(t){e.add(this),u=!0,g=!1,h=void 0!==t?t:"undefined"!=typeof window&&void 0!==window.performance&&void 0!==window.performance.now?window.performance.now():Date.now(),h+=d;for(var a in n){if(n[a]instanceof Array){if(0===n[a].length)continue;n[a]=[i[a]].concat(n[a])}r[a]=i[a],r[a]instanceof Array==!1&&(r[a]*=1),o[a]=r[a]||0}return this},this.stop=function(){return u?(e.remove(this),u=!1,null!==C&&C.call(i),this.stopChainedTweens(),this):this},this.stopChainedTweens=function(){for(var e=0,t=m.length;e<t;e++)m[e].stop()},this.delay=function(e){return d=e,this},this.repeat=function(e){return s=e,this},this.yoyo=function(e){return l=e,this},this.easing=function(e){return p=e,this},this.interpolation=function(e){return f=e,this},this.chain=function(){return m=arguments,this},this.onStart=function(e){return _=e,this},this.onUpdate=function(e){return v=e,this},this.onComplete=function(e){return y=e,this},this.onStop=function(e){return C=e,this},this.update=function(e){var t;if(e<h)return!0;!1===g&&(null!==_&&_.call(i),g=!0);var u=(e-h)/a;u=u>1?1:u;var C=p(u);for(t in n){var b=r[t]||0,S=n[t];S instanceof Array?i[t]=f(S,C):("string"==typeof S&&(S=b+parseFloat(S,10)),"number"==typeof S&&(i[t]=b+(S-b)*C))}if(null!==v&&v.call(i,C),1==u){if(s>0){isFinite(s)&&s--;for(t in o){if("string"==typeof n[t]&&(o[t]=o[t]+parseFloat(n[t],10)),l){var T=o[t];o[t]=n[t],n[t]=T}r[t]=o[t]}return l&&(c=!c),h=e+d,!0}null!==y&&y.call(i);for(var E=0,A=m.length;E<A;E++)m[E].start(e);return!1}return!0}},e.Easing={Linear:{None:function(e){return e}},Quadratic:{In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}},Cubic:{In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}},Quartic:{In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}},Quintic:{In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}},Sinusoidal:{In:function(e){return 1-Math.cos(e*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return.5*(1-Math.cos(Math.PI*e))}},Exponential:{In:function(e){return 0===e?0:Math.pow(1024,e-1)},Out:function(e){return 1===e?1:1-Math.pow(2,-10*e)},InOut:function(e){return 0===e?0:1===e?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(2-Math.pow(2,-10*(e-1)))}},Circular:{In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}},Elastic:{In:function(e){var t,i=.1;return 0===e?0:1===e?1:(!i||i<1?(i=1,t=.1):t=.4*Math.asin(1/i)/(2*Math.PI),-i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4))},Out:function(e){var t,i=.1;return 0===e?0:1===e?1:(!i||i<1?(i=1,t=.1):t=.4*Math.asin(1/i)/(2*Math.PI),i*Math.pow(2,-10*e)*Math.sin((e-t)*(2*Math.PI)/.4)+1)},InOut:function(e){var t,i=.1;return 0===e?0:1===e?1:(!i||i<1?(i=1,t=.1):t=.4*Math.asin(1/i)/(2*Math.PI),(e*=2)<1?i*Math.pow(2,10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4)*-.5:i*Math.pow(2,-10*(e-=1))*Math.sin((e-t)*(2*Math.PI)/.4)*.5+1)}},Back:{In:function(e){var t=1.70158;return e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?e*e*((t+1)*e-t)*.5:.5*((e-=2)*e*((t+1)*e+t)+2)}},Bounce:{In:function(t){return 1-e.Easing.Bounce.Out(1-t)},Out:function(e){return e<1/2.75?7.5625*e*e:e<2/2.75?7.5625*(e-=1.5/2.75)*e+.75:e<2.5/2.75?7.5625*(e-=2.25/2.75)*e+.9375:7.5625*(e-=2.625/2.75)*e+.984375},InOut:function(t){return t<.5?.5*e.Easing.Bounce.In(2*t):.5*e.Easing.Bounce.Out(2*t-1)+.5}}},e.Interpolation={Linear:function(t,i){var r=t.length-1,n=r*i,o=Math.floor(n),a=e.Interpolation.Utils.Linear;return i<0?a(t[0],t[1],n):i>1?a(t[r],t[r-1],r-n):a(t[o],t[o+1>r?r:o+1],n-o)},Bezier:function(t,i){var r,n=0,o=t.length-1,a=Math.pow,s=e.Interpolation.Utils.Bernstein;for(r=0;r<=o;r++)n+=a(1-i,o-r)*a(i,r)*t[r]*s(o,r);return n},CatmullRom:function(t,i){var r=t.length-1,n=r*i,o=Math.floor(n),a=e.Interpolation.Utils.CatmullRom;return t[0]===t[r]?(i<0&&(o=Math.floor(n=r*(1+i))),a(t[(o-1+r)%r],t[o],t[(o+1)%r],t[(o+2)%r],n-o)):i<0?t[0]-(a(t[0],t[0],t[1],t[1],-n)-t[0]):i>1?t[r]-(a(t[r],t[r],t[r-1],t[r-1],n-r)-t[r]):a(t[o?o-1:0],t[o],t[r<o+1?r:o+1],t[r<o+2?r:o+2],n-o)},Utils:{Linear:function(e,t,i){return(t-e)*i+e},Bernstein:function(t,i){var r=e.Interpolation.Utils.Factorial;return r(t)/r(i)/r(t-i)},Factorial:function(){var e=[1];return function(t){var i,r=1;if(e[t])return e[t];for(i=t;i>1;i--)r*=i;return e[t]=r}}(),CatmullRom:function(e,t,i,r,n){var o=.5*(i-e),a=.5*(r-t),s=n*n;return(2*t-2*i+o+a)*(n*s)+(-3*t+3*i-2*o-a)*s+o*n+t}}},e}),define("Core/EasingFunction",["../ThirdParty/Tween","./freezeObject"],function(e,t){"use strict";return t({LINEAR_NONE:e.Easing.Linear.None,QUADRACTIC_IN:e.Easing.Quadratic.In,QUADRACTIC_OUT:e.Easing.Quadratic.Out,QUADRACTIC_IN_OUT:e.Easing.Quadratic.InOut,CUBIC_IN:e.Easing.Cubic.In,CUBIC_OUT:e.Easing.Cubic.Out,CUBIC_IN_OUT:e.Easing.Cubic.InOut,QUARTIC_IN:e.Easing.Quartic.In,QUARTIC_OUT:e.Easing.Quartic.Out,QUARTIC_IN_OUT:e.Easing.Quartic.InOut,QUINTIC_IN:e.Easing.Quintic.In,QUINTIC_OUT:e.Easing.Quintic.Out,QUINTIC_IN_OUT:e.Easing.Quintic.InOut,SINUSOIDAL_IN:e.Easing.Sinusoidal.In,SINUSOIDAL_OUT:e.Easing.Sinusoidal.Out,SINUSOIDAL_IN_OUT:e.Easing.Sinusoidal.InOut,EXPONENTIAL_IN:e.Easing.Exponential.In,EXPONENTIAL_OUT:e.Easing.Exponential.Out,EXPONENTIAL_IN_OUT:e.Easing.Exponential.InOut,CIRCULAR_IN:e.Easing.Circular.In,CIRCULAR_OUT:e.Easing.Circular.Out,CIRCULAR_IN_OUT:e.Easing.Circular.InOut,ELASTIC_IN:e.Easing.Elastic.In,ELASTIC_OUT:e.Easing.Elastic.Out,ELASTIC_IN_OUT:e.Easing.Elastic.InOut,BACK_IN:e.Easing.Back.In,BACK_OUT:e.Easing.Back.Out,BACK_IN_OUT:e.Easing.Back.InOut,BOUNCE_IN:e.Easing.Bounce.In,BOUNCE_OUT:e.Easing.Bounce.Out,BOUNCE_IN_OUT:e.Easing.Bounce.InOut})}),define("Core/EllipsoidGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){e=o(e,o.EMPTY_OBJECT);var t=o(e.radii,T),i=Math.round(o(e.stackPartitions,64)),n=Math.round(o(e.slicePartitions,64)),a=o(e.vertexFormat,_.DEFAULT);this._radii=r.clone(t),this._stackPartitions=i,this._slicePartitions=n,this._vertexFormat=_.clone(a),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}var v=new r,y=new r,C=new r,b=new r,S=new r,T=new r(1,1,1),E=Math.cos,A=Math.sin;g.packedLength=r.packedLength+_.packedLength+3,g.pack=function(e,t,i){return i=o(i,0),r.pack(e._radii,t,i),i+=r.packedLength,_.pack(e._vertexFormat,t,i),i+=_.packedLength,t[i++]=e._stackPartitions,t[i++]=e._slicePartitions,t[i]=o(e._offsetAttribute,-1),t};var w=new r,x=new _,P={radii:w,vertexFormat:x,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};g.unpack=function(e,t,i){t=o(t,0);var n=r.unpack(e,t,w);t+=r.packedLength;var s=_.unpack(e,t,x);t+=_.packedLength;var l=e[t++],u=e[t++],c=e[t];return a(i)?(i._radii=r.clone(n,i._radii),i._vertexFormat=_.clone(s,i._vertexFormat),i._stackPartitions=l,i._slicePartitions=u,i._offsetAttribute=-1===c?void 0:c,i):(P.stackPartitions=l,P.slicePartitions=u,P.offsetAttribute=-1===c?void 0:c,new g(P))},g.createGeometry=function(o){var s=o._radii;if(!(s.x<=0||s.y<=0||s.z<=0)){var _,g,T=l.fromCartesian3(s),w=o._vertexFormat,x=o._slicePartitions+1,P=o._stackPartitions+1,D=P*x,I=new Float64Array(3*D),M=6*(x-1)*(P-2),R=p.createTypedArray(D,M),O=w.normal?new Float32Array(3*D):void 0,L=w.tangent?new Float32Array(3*D):void 0,N=w.bitangent?new Float32Array(3*D):void 0,F=w.st?new Float32Array(2*D):void 0,B=new Array(x),z=new Array(x),k=0;for(_=0;_<x;_++){var V=f.TWO_PI*_/(x-1);B[_]=E(V),z[_]=A(V),I[k++]=0,I[k++]=0,I[k++]=s.z}for(_=1;_<P-1;_++){var U=Math.PI*_/(P-1),G=A(U),H=s.x*G,W=s.y*G,q=s.z*E(U);for(g=0;g<x;g++)I[k++]=B[g]*H,I[k++]=z[g]*W,I[k++]=q}for(_=0;_<x;_++)I[k++]=0,I[k++]=0,I[k++]=-s.z;var Y=new d;w.position&&(Y.position=new c({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:I}));var j=0,X=0,Q=0,K=0;if(w.st||w.normal||w.tangent||w.bitangent){for(_=0;_<D;_++){var Z=r.fromArray(I,3*_,v),J=T.geodeticSurfaceNormal(Z,y);if(w.st){var $=i.negate(J,S);i.magnitude($)<f.EPSILON6&&(k=3*(_+x*Math.floor(.5*P)),k>I.length&&(k=3*(_-x*Math.floor(.5*P))),r.fromArray(I,k,$),T.geodeticSurfaceNormal($,$),i.negate($,$)),F[j++]=Math.atan2($.y,$.x)/f.TWO_PI+.5,F[j++]=Math.asin(J.z)/Math.PI+.5}if(w.normal&&(O[X++]=J.x,O[X++]=J.y,O[X++]=J.z),w.tangent||w.bitangent){var ee=C;if(_<x||_>D-x-1?(r.cross(r.UNIT_X,J,ee),r.normalize(ee,ee)):(r.cross(r.UNIT_Z,J,ee),r.normalize(ee,ee)),w.tangent&&(L[Q++]=ee.x,L[Q++]=ee.y,L[Q++]=ee.z),w.bitangent){var te=r.cross(J,ee,b);r.normalize(te,te),N[K++]=te.x,N[K++]=te.y,N[K++]=te.z}}}w.st&&(Y.st=new c({componentDatatype:n.FLOAT,componentsPerAttribute:2,values:F})),w.normal&&(Y.normal=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:O})),w.tangent&&(Y.tangent=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:L})),w.bitangent&&(Y.bitangent=new c({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:N}))}if(a(o._offsetAttribute)){var ie=I.length,re=new Uint8Array(ie/3),ne=o._offsetAttribute===h.NONE?0:1;e(re,ne),Y.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:re})}for(k=0,g=0;g<x-1;g++)R[k++]=x+g,R[k++]=x+g+1,R[k++]=g+1;var oe,ae;for(_=1;_<P-2;_++)for(oe=_*x,ae=(_+1)*x,g=0;g<x-1;g++)R[k++]=ae+g,R[k++]=ae+g+1,R[k++]=oe+g+1,R[k++]=ae+g,R[k++]=oe+g+1,R[k++]=oe+g;for(_=P-2,oe=_*x,ae=(_+1)*x,g=0;g<x-1;g++)R[k++]=ae+g,R[k++]=oe+g+1,R[k++]=oe+g;return new u({attributes:Y,indices:R,primitiveType:m.TRIANGLES,boundingSphere:t.fromEllipsoid(T),offsetAttribute:o._offsetAttribute})}};var D;return g.getUnitEllipsoid=function(){return a(D)||(D=g.createGeometry(new g({radii:new r(1,1,1),vertexFormat:_.POSITION_ONLY}))),D},g}),define("Core/EllipsoidOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){e=n(e,n.EMPTY_OBJECT);var t=n(e.radii,_),r=Math.round(n(e.stackPartitions,10)),o=Math.round(n(e.slicePartitions,8)),a=Math.round(n(e.subdivisions,128));this._radii=i.clone(t),this._stackPartitions=r,this._slicePartitions=o,this._subdivisions=a,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}var _=new i(1,1,1),g=Math.cos,v=Math.sin;m.packedLength=i.packedLength+4,m.pack=function(e,t,r){return r=n(r,0),i.pack(e._radii,t,r),r+=i.packedLength,t[r++]=e._stackPartitions,t[r++]=e._slicePartitions,t[r++]=e._subdivisions,t[r]=n(e._offsetAttribute,-1),t};var y=new i,C={radii:y,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};return m.unpack=function(e,t,r){t=n(t,0);var a=i.unpack(e,t,y);t+=i.packedLength;var s=e[t++],l=e[t++],u=e[t++],c=e[t];return o(r)?(r._radii=i.clone(a,r._radii),r._stackPartitions=s,r._slicePartitions=l,r._subdivisions=u,r._offsetAttribute=-1===c?void 0:c,r):(C.stackPartitions=s,C.slicePartitions=l,C.subdivisions=u,C.offsetAttribute=-1===c?void 0:c,new m(C))},m.createGeometry=function(i){var n=i._radii;if(!(n.x<=0||n.y<=0||n.z<=0)){var a,m,_,y,C,b,S=s.fromCartesian3(n),T=i._stackPartitions,E=i._slicePartitions,A=i._subdivisions,w=A*(T+E-1),x=w-E+2,P=new Float64Array(3*x),D=h.createTypedArray(x,2*w),I=0,M=new Array(A),R=new Array(A);for(a=0;a<A;a++)_=p.TWO_PI*a/A,M[a]=g(_),R[a]=v(_);for(a=1;a<T;a++)for(y=Math.PI*a/T,C=g(y),b=v(y),m=0;m<A;m++)P[I++]=n.x*M[m]*b,P[I++]=n.y*R[m]*b,P[I++]=n.z*C;for(M.length=E,R.length=E,a=0;a<E;a++)_=p.TWO_PI*a/E,M[a]=g(_),R[a]=v(_);for(P[I++]=0,P[I++]=0,P[I++]=n.z,a=1;a<A;a++)for(y=Math.PI*a/A,C=g(y),b=v(y),m=0;m<E;m++)P[I++]=n.x*M[m]*b,P[I++]=n.y*R[m]*b,P[I++]=n.z*C;for(P[I++]=0,P[I++]=0,P[I++]=-n.z,I=0,a=0;a<T-1;++a){var O=a*A;for(m=0;m<A-1;++m)D[I++]=O+m,D[I++]=O+m+1;D[I++]=O+A-1,D[I++]=O}var L=A*(T-1);for(m=1;m<E+1;++m)D[I++]=L,D[I++]=L+m;for(a=0;a<A-2;++a){var N=a*E+1+L,F=(a+1)*E+1+L;for(m=0;m<E-1;++m)D[I++]=F+m,D[I++]=N+m;D[I++]=F+E-1,D[I++]=N+E-1}var B=P.length/3-1;for(m=B-1;m>B-E-1;--m)D[I++]=B,D[I++]=m;var z=new c({position:new u({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:P})});if(o(i._offsetAttribute)){var k=P.length,V=new Uint8Array(k/3),U=i._offsetAttribute===d.NONE?0:1;e(V,U),z.applyOffset=new u({componentDatatype:r.UNSIGNED_BYTE,componentsPerAttribute:1,values:V})}return new l({attributes:z,indices:D,primitiveType:f.LINES,boundingSphere:t.fromEllipsoid(S),offsetAttribute:i._offsetAttribute})}},m}),define("Core/EllipsoidTerrainProvider",["../ThirdParty/when","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Event","./GeographicTilingScheme","./HeightmapTerrainData","./TerrainProvider"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(r){r=t(r,{}),this._tilingScheme=r.tilingScheme,i(this._tilingScheme)||(this._tilingScheme=new a({ellipsoid:t(r.ellipsoid,n.WGS84)})),this._levelZeroMaximumGeometricError=l.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new o,this._readyPromise=e.resolve(!0)}return r(u.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return!0}},readyPromise:{get:function(){return this._readyPromise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}}}), -u.prototype.requestTileGeometry=function(t,i,r,n){return e.resolve(new s({buffer:new Uint8Array(256),width:16,height:16}))},u.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)},u.prototype.getTileDataAvailable=function(e,t,i){},u.prototype.loadTileDataAvailability=function(e,t,i){},u}),define("Core/EventHelper",["./defined","./DeveloperError"],function(e,t){"use strict";function i(){this._removalFunctions=[]}return i.prototype.add=function(e,t,i){var r=e.addEventListener(t,i);this._removalFunctions.push(r);var n=this;return function(){r();var e=n._removalFunctions;e.splice(e.indexOf(r),1)}},i.prototype.removeAll=function(){for(var e=this._removalFunctions,t=0,i=e.length;t<i;++t)e[t]();e.length=0},i}),define("Core/ExtrapolationType",["./freezeObject"],function(e){"use strict";return e({NONE:0,HOLD:1,EXTRAPOLATE:2})}),define("Core/OrthographicOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){e=r(e,r.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=r(e.near,1),this._near=this.near,this.far=r(e.far,5e8),this._far=this.far,this._cullingVolume=new i,this._orthographicMatrix=new l}function c(e){e.top===e._top&&e.bottom===e._bottom&&e.left===e._left&&e.right===e._right&&e.near===e._near&&e.far===e._far||(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=l.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}o(u.prototype,{projectionMatrix:{get:function(){return c(this),this._orthographicMatrix}}});var d=new e,h=new e,p=new e,f=new e;return u.prototype.computeCullingVolume=function(i,r,o){var a=this._cullingVolume.planes,s=this.top,l=this.bottom,u=this.right,c=this.left,m=this.near,_=this.far,g=e.cross(r,o,d);e.normalize(g,g);var v=h;e.multiplyByScalar(r,m,v),e.add(i,v,v);var y=p;e.multiplyByScalar(g,c,y),e.add(v,y,y);var C=a[0];return n(C)||(C=a[0]=new t),C.x=g.x,C.y=g.y,C.z=g.z,C.w=-e.dot(g,y),e.multiplyByScalar(g,u,y),e.add(v,y,y),C=a[1],n(C)||(C=a[1]=new t),C.x=-g.x,C.y=-g.y,C.z=-g.z,C.w=-e.dot(e.negate(g,f),y),e.multiplyByScalar(o,l,y),e.add(v,y,y),C=a[2],n(C)||(C=a[2]=new t),C.x=o.x,C.y=o.y,C.z=o.z,C.w=-e.dot(o,y),e.multiplyByScalar(o,s,y),e.add(v,y,y),C=a[3],n(C)||(C=a[3]=new t),C.x=-o.x,C.y=-o.y,C.z=-o.z,C.w=-e.dot(e.negate(o,f),y),C=a[4],n(C)||(C=a[4]=new t),C.x=r.x,C.y=r.y,C.z=r.z,C.w=-e.dot(r,v),e.multiplyByScalar(r,_,y),e.add(i,y,y),C=a[5],n(C)||(C=a[5]=new t),C.x=-r.x,C.y=-r.y,C.z=-r.z,C.w=-e.dot(e.negate(r,f),y),this._cullingVolume},u.prototype.getPixelDimensions=function(e,t,i,r){c(this);var n=this.right-this.left,o=this.top-this.bottom,a=n/e,s=o/t;return r.x=a,r.y=s,r},u.prototype.clone=function(e){return n(e)||(e=new u),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},u.prototype.equals=function(e){return n(e)&&e instanceof u&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},u.prototype.equalsEpsilon=function(e,t,i){return e===this||n(e)&&e instanceof u&&s.equalsEpsilon(this.right,e.right,t,i)&&s.equalsEpsilon(this.left,e.left,t,i)&&s.equalsEpsilon(this.top,e.top,t,i)&&s.equalsEpsilon(this.bottom,e.bottom,t,i)&&s.equalsEpsilon(this.near,e.near,t,i)&&s.equalsEpsilon(this.far,e.far,t,i)},u}),define("Core/OrthographicFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./OrthographicOffCenterFrustum"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new a,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far}function l(e){var t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;var i=1/e.aspectRatio;t.right=.5*e.width,t.left=-t.right,t.top=i*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}return s.packedLength=4,s.pack=function(e,i,r){return r=t(r,0),i[r++]=e.width,i[r++]=e.aspectRatio,i[r++]=e.near,i[r]=e.far,i},s.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new s),n.width=e[r++],n.aspectRatio=e[r++],n.near=e[r++],n.far=e[r],n},r(s.prototype,{projectionMatrix:{get:function(){return l(this),this._offCenterFrustum.projectionMatrix}}}),s.prototype.computeCullingVolume=function(e,t,i){return l(this),this._offCenterFrustum.computeCullingVolume(e,t,i)},s.prototype.getPixelDimensions=function(e,t,i,r){return l(this),this._offCenterFrustum.getPixelDimensions(e,t,i,r)},s.prototype.clone=function(e){return i(e)||(e=new s),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},s.prototype.equals=function(e){return!!(i(e)&&e instanceof s)&&(l(this),l(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},s.prototype.equalsEpsilon=function(e,t,r){return!!(i(e)&&e instanceof s)&&(l(this),l(e),o.equalsEpsilon(this.width,e.width,t,r)&&o.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,r)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,r))},s}),define("Core/PerspectiveOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){e=r(e,r.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=r(e.near,1),this._near=this.near,this.far=r(e.far,5e8),this._far=this.far,this._cullingVolume=new i,this._perspectiveMatrix=new l,this._infinitePerspective=new l}function c(e){var t=e.top,i=e.bottom,r=e.right,n=e.left,o=e.near,a=e.far;t===e._top&&i===e._bottom&&n===e._left&&r===e._right&&o===e._near&&a===e._far||(e._left=n,e._right=r,e._top=t,e._bottom=i,e._near=o,e._far=a,e._perspectiveMatrix=l.computePerspectiveOffCenter(n,r,i,t,o,a,e._perspectiveMatrix),e._infinitePerspective=l.computeInfinitePerspectiveOffCenter(n,r,i,t,o,e._infinitePerspective))}o(u.prototype,{projectionMatrix:{get:function(){return c(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return c(this),this._infinitePerspective}}});var d=new e,h=new e,p=new e,f=new e;return u.prototype.computeCullingVolume=function(i,r,o){var a=this._cullingVolume.planes,s=this.top,l=this.bottom,u=this.right,c=this.left,m=this.near,_=this.far,g=e.cross(r,o,d),v=h;e.multiplyByScalar(r,m,v),e.add(i,v,v);var y=p;e.multiplyByScalar(r,_,y),e.add(i,y,y);var C=f;e.multiplyByScalar(g,c,C),e.add(v,C,C),e.subtract(C,i,C),e.normalize(C,C),e.cross(C,o,C),e.normalize(C,C);var b=a[0];return n(b)||(b=a[0]=new t),b.x=C.x,b.y=C.y,b.z=C.z,b.w=-e.dot(C,i),e.multiplyByScalar(g,u,C),e.add(v,C,C),e.subtract(C,i,C),e.cross(o,C,C),e.normalize(C,C),b=a[1],n(b)||(b=a[1]=new t),b.x=C.x,b.y=C.y,b.z=C.z,b.w=-e.dot(C,i),e.multiplyByScalar(o,l,C),e.add(v,C,C),e.subtract(C,i,C),e.cross(g,C,C),e.normalize(C,C),b=a[2],n(b)||(b=a[2]=new t),b.x=C.x,b.y=C.y,b.z=C.z,b.w=-e.dot(C,i),e.multiplyByScalar(o,s,C),e.add(v,C,C),e.subtract(C,i,C),e.cross(C,g,C),e.normalize(C,C),b=a[3],n(b)||(b=a[3]=new t),b.x=C.x,b.y=C.y,b.z=C.z,b.w=-e.dot(C,i),b=a[4],n(b)||(b=a[4]=new t),b.x=r.x,b.y=r.y,b.z=r.z,b.w=-e.dot(r,v),e.negate(r,C),b=a[5],n(b)||(b=a[5]=new t),b.x=C.x,b.y=C.y,b.z=C.z,b.w=-e.dot(C,y),this._cullingVolume},u.prototype.getPixelDimensions=function(e,t,i,r){c(this);var n=1/this.near,o=this.top*n,a=2*i*o/t;o=this.right*n;var s=2*i*o/e;return r.x=s,r.y=a,r},u.prototype.clone=function(e){return n(e)||(e=new u),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},u.prototype.equals=function(e){return n(e)&&e instanceof u&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},u.prototype.equalsEpsilon=function(e,t,i){return e===this||n(e)&&e instanceof u&&s.equalsEpsilon(this.right,e.right,t,i)&&s.equalsEpsilon(this.left,e.left,t,i)&&s.equalsEpsilon(this.top,e.top,t,i)&&s.equalsEpsilon(this.bottom,e.bottom,t,i)&&s.equalsEpsilon(this.near,e.near,t,i)&&s.equalsEpsilon(this.far,e.far,t,i)},u}),define("Core/PerspectiveFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./PerspectiveOffCenterFrustum"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new a,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far,this.xOffset=t(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=t(e.yOffset,0),this._yOffset=this.yOffset}function l(e){var t=e._offCenterFrustum;e.fov===e._fov&&e.aspectRatio===e._aspectRatio&&e.near===e._near&&e.far===e._far&&e.xOffset===e._xOffset&&e.yOffset===e._yOffset||(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:2*Math.atan(Math.tan(.5*e.fov)/e.aspectRatio),e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}return s.packedLength=6,s.pack=function(e,i,r){return r=t(r,0),i[r++]=e.fov,i[r++]=e.aspectRatio,i[r++]=e.near,i[r++]=e.far,i[r++]=e.xOffset,i[r]=e.yOffset,i},s.unpack=function(e,r,n){return r=t(r,0),i(n)||(n=new s),n.fov=e[r++],n.aspectRatio=e[r++],n.near=e[r++],n.far=e[r++],n.xOffset=e[r++],n.yOffset=e[r],n},r(s.prototype,{projectionMatrix:{get:function(){return l(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return l(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return l(this),this._fovy}},sseDenominator:{get:function(){return l(this),this._sseDenominator}}}),s.prototype.computeCullingVolume=function(e,t,i){return l(this),this._offCenterFrustum.computeCullingVolume(e,t,i)},s.prototype.getPixelDimensions=function(e,t,i,r){return l(this),this._offCenterFrustum.getPixelDimensions(e,t,i,r)},s.prototype.clone=function(e){return i(e)||(e=new s),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},s.prototype.equals=function(e){return!!(i(e)&&e instanceof s)&&(l(this),l(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},s.prototype.equalsEpsilon=function(e,t,r){return!!(i(e)&&e instanceof s)&&(l(this),l(e),o.equalsEpsilon(this.fov,e.fov,t,r)&&o.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,r)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,r))},s}),define("Core/FrustumGeometry",["./BoundingSphere","./Cartesian3","./Cartesian4","./Check","./ComponentDatatype","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./Matrix3","./Matrix4","./OrthographicFrustum","./PerspectiveFrustum","./PrimitiveType","./Quaternion","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){var i,r,n=e.frustum,a=e.orientation,s=e.origin,l=o(e.vertexFormat,_.DEFAULT),u=o(e._drawNearPlane,!0);n instanceof p?(i=y,r=p.packedLength):n instanceof h&&(i=C,r=h.packedLength),this._frustumType=i,this._frustum=n.clone(),this._origin=t.clone(s),this._orientation=m.clone(a),this._drawNearPlane=u,this._vertexFormat=l,this._workerName="createFrustumGeometry",this.packedLength=2+r+t.packedLength+m.packedLength+_.packedLength}function v(e,t,i,r,n,o,s,l){for(var u=e/3*2,c=0;c<4;++c)a(t)&&(t[e]=o.x,t[e+1]=o.y,t[e+2]=o.z),a(i)&&(i[e]=s.x,i[e+1]=s.y,i[e+2]=s.z),a(r)&&(r[e]=l.x,r[e+1]=l.y,r[e+2]=l.z),e+=3;n[u]=0,n[u+1]=0,n[u+2]=1,n[u+3]=0,n[u+4]=1,n[u+5]=1,n[u+6]=0,n[u+7]=1}var y=0,C=1;g.pack=function(e,i,r){r=o(r,0);var n=e._frustumType,a=e._frustum;return i[r++]=n,n===y?(p.pack(a,i,r),r+=p.packedLength):(h.pack(a,i,r),r+=h.packedLength),t.pack(e._origin,i,r),r+=t.packedLength,m.pack(e._orientation,i,r),r+=m.packedLength,_.pack(e._vertexFormat,i,r),r+=_.packedLength,i[r]=e._drawNearPlane?1:0,i};var b=new p,S=new h,T=new m,E=new t,A=new _;g.unpack=function(e,i,r){i=o(i,0);var n,s=e[i++];s===y?(n=p.unpack(e,i,b),i+=p.packedLength):(n=h.unpack(e,i,S),i+=h.packedLength);var l=t.unpack(e,i,E);i+=t.packedLength;var u=m.unpack(e,i,T);i+=m.packedLength;var c=_.unpack(e,i,A);i+=_.packedLength;var d=1===e[i];if(!a(r))return new g({frustum:n,origin:l,orientation:u,vertexFormat:c,_drawNearPlane:d});var f=s===r._frustumType?r._frustum:void 0;return r._frustum=n.clone(f),r._frustumType=s,r._origin=t.clone(l,r._origin),r._orientation=m.clone(u,r._orientation),r._vertexFormat=_.clone(c,r._vertexFormat),r._drawNearPlane=d,r};var w=new c,x=new d,P=new d,D=new t,I=new t,M=new t,R=new t,O=new t,L=new t,N=new Array(3),F=new Array(4);F[0]=new i(-1,-1,1,1),F[1]=new i(1,-1,1,1),F[2]=new i(1,1,1,1),F[3]=new i(-1,1,1,1);for(var B=new Array(4),z=0;z<4;++z)B[z]=new i;return g._computeNearFarPlanes=function(e,r,n,s,l,u,h,p){var f=c.fromQuaternion(r,w),m=o(u,D),_=o(h,I),g=o(p,M);m=c.getColumn(f,0,m),_=c.getColumn(f,1,_),g=c.getColumn(f,2,g),t.normalize(m,m),t.normalize(_,_),t.normalize(g,g),t.negate(m,m);var v,C,b=d.computeView(e,g,_,m,x);if(n===y){var S=s.projectionMatrix,T=d.multiply(S,b,P);C=d.inverse(T,P)}else v=d.inverseTransformation(b,P);a(C)?(N[0]=s.near,N[1]=s.far):(N[0]=0,N[1]=s.near,N[2]=s.far);for(var E=0;E<2;++E)for(var A=0;A<4;++A){var R=i.clone(F[A],B[A]);if(a(C)){R=d.multiplyByVector(C,R,R);var O=1/R.w;t.multiplyByScalar(R,O,R),t.subtract(R,e,R),t.normalize(R,R);var L=t.dot(g,R);t.multiplyByScalar(R,N[E]/L,R),t.add(R,e,R)}else{a(s._offCenterFrustum)&&(s=s._offCenterFrustum);var z=N[E],k=N[E+1];R.x=.5*(R.x*(s.right-s.left)+s.left+s.right),R.y=.5*(R.y*(s.top-s.bottom)+s.bottom+s.top),R.z=.5*(R.z*(z-k)-z-k),R.w=1,d.multiplyByVector(v,R,R)}l[12*E+3*A]=R.x,l[12*E+3*A+1]=R.y,l[12*E+3*A+2]=R.z}},g.createGeometry=function(i){var r=i._frustumType,o=i._frustum,c=i._origin,d=i._orientation,h=i._drawNearPlane,p=i._vertexFormat,m=h?6:5,_=new Float64Array(72);g._computeNearFarPlanes(c,d,r,o,_);var y=24;_[y]=_[12],_[y+1]=_[13],_[y+2]=_[14],_[y+3]=_[0],_[y+4]=_[1],_[y+5]=_[2],_[y+6]=_[9],_[y+7]=_[10],_[y+8]=_[11],_[y+9]=_[21],_[y+10]=_[22],_[y+11]=_[23],y+=12,_[y]=_[15],_[y+1]=_[16],_[y+2]=_[17],_[y+3]=_[3],_[y+4]=_[4],_[y+5]=_[5],_[y+6]=_[0],_[y+7]=_[1],_[y+8]=_[2],_[y+9]=_[12],_[y+10]=_[13],_[y+11]=_[14],y+=12,_[y]=_[3],_[y+1]=_[4],_[y+2]=_[5],_[y+3]=_[15],_[y+4]=_[16],_[y+5]=_[17],_[y+6]=_[18],_[y+7]=_[19],_[y+8]=_[20],_[y+9]=_[6],_[y+10]=_[7],_[y+11]=_[8],y+=12,_[y]=_[6],_[y+1]=_[7],_[y+2]=_[8],_[y+3]=_[18],_[y+4]=_[19],_[y+5]=_[20],_[y+6]=_[21],_[y+7]=_[22],_[y+8]=_[23],_[y+9]=_[9],_[y+10]=_[10],_[y+11]=_[11],h||(_=_.subarray(12));var C=new u({position:new l({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:_})});if(a(p.normal)||a(p.tangent)||a(p.bitangent)||a(p.st)){var b=a(p.normal)?new Float32Array(12*m):void 0,S=a(p.tangent)?new Float32Array(12*m):void 0,T=a(p.bitangent)?new Float32Array(12*m):void 0,E=a(p.st)?new Float32Array(8*m):void 0,A=D,w=I,x=M,P=t.negate(A,R),N=t.negate(w,O),F=t.negate(x,L);y=0,h&&(v(y,b,S,T,E,F,A,w),y+=12),v(y,b,S,T,E,x,P,w),y+=12,v(y,b,S,T,E,P,F,w),y+=12,v(y,b,S,T,E,N,F,P),y+=12,v(y,b,S,T,E,A,x,w),y+=12,v(y,b,S,T,E,w,x,P),a(b)&&(C.normal=new l({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:b})),a(S)&&(C.tangent=new l({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:S})),a(T)&&(C.bitangent=new l({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:T})),a(E)&&(C.st=new l({componentDatatype:n.FLOAT,componentsPerAttribute:2,values:E}))}for(var B=new Uint16Array(6*m),z=0;z<m;++z){var k=6*z,V=4*z;B[k]=V,B[k+1]=V+1,B[k+2]=V+2,B[k+3]=V,B[k+4]=V+2,B[k+5]=V+3}return new s({attributes:C,indices:B,primitiveType:f.TRIANGLES,boundingSphere:e.fromVertices(_)})},g}),define("Core/FrustumOutlineGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./FrustumGeometry","./Geometry","./GeometryAttribute","./GeometryAttributes","./OrthographicFrustum","./PerspectiveFrustum","./PrimitiveType","./Quaternion"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){var i,r,o=e.frustum,a=e.orientation,s=e.origin,l=n(e._drawNearPlane,!0);o instanceof d?(i=m,r=d.packedLength):o instanceof c&&(i=_,r=c.packedLength),this._frustumType=i,this._frustum=o.clone(),this._origin=t.clone(s),this._orientation=p.clone(a),this._drawNearPlane=l,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+r+t.packedLength+p.packedLength}var m=0,_=1;f.pack=function(e,i,r){r=n(r,0);var o=e._frustumType,a=e._frustum;return i[r++]=o,o===m?(d.pack(a,i,r),r+=d.packedLength):(c.pack(a,i,r),r+=c.packedLength),t.pack(e._origin,i,r),r+=t.packedLength,p.pack(e._orientation,i,r),r+=p.packedLength,i[r]=e._drawNearPlane?1:0,i};var g=new d,v=new c,y=new p,C=new t;return f.unpack=function(e,i,r){i=n(i,0);var a,s=e[i++];s===m?(a=d.unpack(e,i,g),i+=d.packedLength):(a=c.unpack(e,i,v),i+=c.packedLength);var l=t.unpack(e,i,C);i+=t.packedLength;var u=p.unpack(e,i,y);i+=p.packedLength;var h=1===e[i];if(!o(r))return new f({frustum:a,origin:l,orientation:u,_drawNearPlane:h});var _=s===r._frustumType?r._frustum:void 0;return r._frustum=a.clone(_),r._frustumType=s,r._origin=t.clone(l,r._origin),r._orientation=p.clone(u,r._orientation),r._drawNearPlane=h,r},f.createGeometry=function(t){var i=t._frustumType,n=t._frustum,o=t._origin,c=t._orientation,d=t._drawNearPlane,p=new Float64Array(24);a._computeNearFarPlanes(o,c,i,n,p);for(var f,m,_=new u({position:new l({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:p})}),g=d?2:1,v=new Uint16Array(8*(g+1)),y=d?0:1;y<2;++y)f=d?8*y:0,m=4*y,v[f]=m,v[f+1]=m+1,v[f+2]=m+1,v[f+3]=m+2,v[f+4]=m+2,v[f+5]=m+3,v[f+6]=m+3,v[f+7]=m;for(y=0;y<2;++y)f=8*(g+y),m=4*y,v[f]=m,v[f+1]=m+4,v[f+2]=m+1,v[f+3]=m+5,v[f+4]=m+2,v[f+5]=m+6,v[f+6]=m+3,v[f+7]=m+7;return new s({attributes:_,indices:v,primitiveType:h.LINES,boundingSphere:e.fromVertices(p)})},f}),define("Core/GeocoderService",["./DeveloperError"],function(e){"use strict";function t(){}return t.prototype.geocode=e.throwInstantiationError,t}),define("Core/GeocodeType",["../Core/freezeObject"],function(e){"use strict";return e({SEARCH:0,AUTOCOMPLETE:1})}),define("Core/GeometryInstanceAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.value=t.value}return r}),define("Core/getFilenameFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(t){var i=new e(t);i.normalize();var r=i.path,n=r.lastIndexOf("/");return-1!==n&&(r=r.substr(n+1)),r}return r}),define("Core/getImagePixels",["./defined"],function(e){"use strict";function t(t,r,n){e(r)||(r=t.width),e(n)||(n=t.height);var o=i[r];e(o)||(o={},i[r]=o);var a=o[n];if(!e(a)){var s=document.createElement("canvas");s.width=r,s.height=n,a=s.getContext("2d"),a.globalCompositeOperation="copy",o[n]=a}return a.drawImage(t,0,0,r,n),a.getImageData(0,0,r,n).data}var i={};return t}),define("Core/getMagic",["./defaultValue","./getStringFromTypedArray"],function(e,t){"use strict";function i(i,r){return r=e(r,0),t(i,r,Math.min(4,i.length))}return i}),function(global,undefined){"use strict";!function(e,t,i){function r(i){var n=t[i];return n||e[i][0].call(n=t[i]={exports:{}},r,n,n.exports),n.exports}var n=global.protobuf=r(i[0]);"function"==typeof define&&define.amd&&define("ThirdParty/protobuf-minimal",[],function(){return n.configure(),n}),"object"==typeof module&&module&&module.exports&&(module.exports=n)}({1:[function(e,t,i){function r(e,t){for(var i=[],r=2;r<arguments.length;)i.push(arguments[r++]);var n=!0;return new Promise(function(r,o){i.push(function(e){if(n)if(n=!1,e)o(e);else{for(var t=[],i=1;i<arguments.length;)t.push(arguments[i++]);r.apply(null,t)}});try{e.apply(t||this,i)}catch(e){n&&(n=!1,o(e))}})}t.exports=r},{}],2:[function(e,t,i){var r=i;r.length=function(e){var t=e.length;if(!t)return 0;for(var i=0;--t%4>1&&"="===e.charAt(t);)++i;return Math.ceil(3*e.length)/4-i};for(var n=new Array(64),o=new Array(123),a=0;a<64;)o[n[a]=a<26?a+65:a<52?a+71:a<62?a-4:a-59|43]=a++;r.encode=function(e,t,i){for(var r,o=[],a=0,s=0;t<i;){var l=e[t++];switch(s){case 0:o[a++]=n[l>>2],r=(3&l)<<4,s=1;break;case 1:o[a++]=n[r|l>>4],r=(15&l)<<2,s=2;break;case 2:o[a++]=n[r|l>>6],o[a++]=n[63&l],s=0}}return s&&(o[a++]=n[r],o[a]=61,1===s&&(o[a+1]=61)),String.fromCharCode.apply(String,o)};r.decode=function(e,t,i){for(var r,n=i,a=0,s=0;s<e.length;){var l=e.charCodeAt(s++);if(61===l&&a>1)break;if((l=o[l])===undefined)throw Error("invalid encoding");switch(a){case 0:r=l,a=1;break;case 1:t[i++]=r<<2|(48&l)>>4,r=l,a=2;break;case 2:t[i++]=(15&r)<<4|(60&l)>>2,r=l,a=3;break;case 3:t[i++]=(3&r)<<6|l,a=0}}if(1===a)throw Error("invalid encoding");return i-n},r.test=function(e){return/^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{2}==|[A-Za-z0-9+\/]{3}=)?$/.test(e)}},{}],3:[function(e,t,i){function r(){this._listeners={}}t.exports=r,r.prototype.on=function(e,t,i){return(this._listeners[e]||(this._listeners[e]=[])).push({fn:t,ctx:i||this}),this},r.prototype.off=function(e,t){if(e===undefined)this._listeners={};else if(t===undefined)this._listeners[e]=[];else for(var i=this._listeners[e],r=0;r<i.length;)i[r].fn===t?i.splice(r,1):++r;return this},r.prototype.emit=function(e){var t=this._listeners[e];if(t){for(var i=[],r=1;r<arguments.length;)i.push(arguments[r++]);for(r=0;r<t.length;)t[r].fn.apply(t[r++].ctx,i)}return this}},{}],4:[function(require,module,exports){function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}module.exports=inquire},{}],5:[function(e,t,i){function r(e,t,i){var r=i||8192,n=r>>>1,o=null,a=r;return function(i){if(i<1||i>n)return e(i);a+i>r&&(o=e(r),a=0);var s=t.call(o,a,a+=i);return 7&a&&(a=1+(7|a)),s}}t.exports=r},{}],6:[function(e,t,i){var r=i;r.length=function(e){for(var t=0,i=0,r=0;r<e.length;++r)i=e.charCodeAt(r),i<128?t+=1:i<2048?t+=2:55296==(64512&i)&&56320==(64512&e.charCodeAt(r+1))?(++r,t+=4):t+=3;return t},r.read=function(e,t,i){if(i-t<1)return"";for(var r,n=null,o=[],a=0;t<i;)r=e[t++],r<128?o[a++]=r:r>191&&r<224?o[a++]=(31&r)<<6|63&e[t++]:r>239&&r<365?(r=((7&r)<<18|(63&e[t++])<<12|(63&e[t++])<<6|63&e[t++])-65536,o[a++]=55296+(r>>10),o[a++]=56320+(1023&r)):o[a++]=(15&r)<<12|(63&e[t++])<<6|63&e[t++],a>8191&&((n||(n=[])).push(String.fromCharCode.apply(String,o)),a=0);return n?(a&&n.push(String.fromCharCode.apply(String,o.slice(0,a))),n.join("")):String.fromCharCode.apply(String,o.slice(0,a))},r.write=function(e,t,i){for(var r,n,o=i,a=0;a<e.length;++a)r=e.charCodeAt(a),r<128?t[i++]=r:r<2048?(t[i++]=r>>6|192,t[i++]=63&r|128):55296==(64512&r)&&56320==(64512&(n=e.charCodeAt(a+1)))?(r=65536+((1023&r)<<10)+(1023&n),++a,t[i++]=r>>18|240,t[i++]=r>>12&63|128,t[i++]=r>>6&63|128,t[i++]=63&r|128):(t[i++]=r>>12|224,t[i++]=r>>6&63|128,t[i++]=63&r|128);return i-o}},{}],7:[function(e,t,i){function r(){n.Reader._configure(n.BufferReader),n.util._configure()}var n=i;n.build="minimal",n.roots={},n.Writer=e(14),n.BufferWriter=e(15),n.Reader=e(8),n.BufferReader=e(9),n.util=e(13),n.rpc=e(10),n.configure=r,n.Writer._configure(n.BufferWriter),r()},{10:10,13:13,14:14,15:15,8:8,9:9}],8:[function(e,t,i){function r(e,t){return RangeError("index out of range: "+e.pos+" + "+(t||1)+" > "+e.len)}function n(e){this.buf=e,this.pos=0,this.len=e.length}function o(){var e=new c(0,0),t=0;if(!(this.len-this.pos>4)){for(;t<3;++t){if(this.pos>=this.len)throw r(this);if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e}return e.lo=(e.lo|(127&this.buf[this.pos++])<<7*t)>>>0,e}for(;t<4;++t)if(e.lo=(e.lo|(127&this.buf[this.pos])<<7*t)>>>0,this.buf[this.pos++]<128)return e;if(e.lo=(e.lo|(127&this.buf[this.pos])<<28)>>>0,e.hi=(e.hi|(127&this.buf[this.pos])>>4)>>>0,this.buf[this.pos++]<128)return e;if(t=0,this.len-this.pos>4){for(;t<5;++t)if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}else for(;t<5;++t){if(this.pos>=this.len)throw r(this);if(e.hi=(e.hi|(127&this.buf[this.pos])<<7*t+3)>>>0,this.buf[this.pos++]<128)return e}throw Error("invalid varint encoding")}function a(e,t){return(e[t-4]|e[t-3]<<8|e[t-2]<<16|e[t-1]<<24)>>>0}function s(){if(this.pos+8>this.len)throw r(this,8);return new c(a(this.buf,this.pos+=4),a(this.buf,this.pos+=4))}t.exports=n;var l,u=e(13),c=u.LongBits,d=u.utf8,h="undefined"!=typeof Uint8Array?function(e){if(e instanceof Uint8Array||Array.isArray(e))return new n(e);throw Error("illegal buffer")}:function(e){if(Array.isArray(e))return new n(e);throw Error("illegal buffer")};n.create=u.Buffer?function(e){return(n.create=function(e){return u.Buffer.isBuffer(e)?new l(e):h(e)})(e)}:h,n.prototype._slice=u.Array.prototype.subarray||u.Array.prototype.slice,n.prototype.uint32=function(){var e=4294967295;return function(){if(e=(127&this.buf[this.pos])>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<7)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<14)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(127&this.buf[this.pos])<<21)>>>0,this.buf[this.pos++]<128)return e;if(e=(e|(15&this.buf[this.pos])<<28)>>>0,this.buf[this.pos++]<128)return e;if((this.pos+=5)>this.len)throw this.pos=this.len,r(this,10);return e}}(),n.prototype.int32=function(){return 0|this.uint32()},n.prototype.sint32=function(){var e=this.uint32();return e>>>1^-(1&e)|0},n.prototype.bool=function(){return 0!==this.uint32()},n.prototype.fixed32=function(){if(this.pos+4>this.len)throw r(this,4);return a(this.buf,this.pos+=4)},n.prototype.sfixed32=function(){if(this.pos+4>this.len)throw r(this,4);return 0|a(this.buf,this.pos+=4)};var p="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(i,r){return t[0]=i[r],t[1]=i[r+1],t[2]=i[r+2],t[3]=i[r+3],e[0]}:function(i,r){return t[0]=i[r+3],t[1]=i[r+2],t[2]=i[r+1],t[3]=i[r],e[0]}}():function(e,t){var i=a(e,t+4),r=2*(i>>31)+1,n=i>>>23&255,o=8388607&i;return 255===n?o?NaN:r*(1/0):0===n?1.401298464324817e-45*r*o:r*Math.pow(2,n-150)*(o+8388608)};n.prototype.float=function(){if(this.pos+4>this.len)throw r(this,4);var e=p(this.buf,this.pos);return this.pos+=4,e};var f="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(i,r){return t[0]=i[r],t[1]=i[r+1],t[2]=i[r+2],t[3]=i[r+3],t[4]=i[r+4],t[5]=i[r+5],t[6]=i[r+6],t[7]=i[r+7],e[0]}:function(i,r){return t[0]=i[r+7],t[1]=i[r+6],t[2]=i[r+5],t[3]=i[r+4],t[4]=i[r+3],t[5]=i[r+2],t[6]=i[r+1],t[7]=i[r],e[0]}}():function(e,t){var i=a(e,t+4),r=a(e,t+8),n=2*(r>>31)+1,o=r>>>20&2047,s=4294967296*(1048575&r)+i;return 2047===o?s?NaN:n*(1/0):0===o?5e-324*n*s:n*Math.pow(2,o-1075)*(s+4503599627370496)};n.prototype.double=function(){if(this.pos+8>this.len)throw r(this,4);var e=f(this.buf,this.pos);return this.pos+=8,e},n.prototype.bytes=function(){var e=this.uint32(),t=this.pos,i=this.pos+e;if(i>this.len)throw r(this,e);return this.pos+=e,t===i?new this.buf.constructor(0):this._slice.call(this.buf,t,i)},n.prototype.string=function(){var e=this.bytes();return d.read(e,0,e.length)},n.prototype.skip=function(e){if("number"==typeof e){if(this.pos+e>this.len)throw r(this,e);this.pos+=e}else do{if(this.pos>=this.len)throw r(this)}while(128&this.buf[this.pos++]);return this},n.prototype.skipType=function(e){switch(e){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;;){if(4==(e=7&this.uint32()))break;this.skipType(e)}break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+e+" at offset "+this.pos)}return this},n._configure=function(e){l=e;var t=u.Long?"toLong":"toNumber";u.merge(n.prototype,{int64:function(){return o.call(this)[t](!1)},uint64:function(){return o.call(this)[t](!0)},sint64:function(){return o.call(this).zzDecode()[t](!1)},fixed64:function(){return s.call(this)[t](!0)},sfixed64:function(){return s.call(this)[t](!1)}})}},{13:13}],9:[function(e,t,i){function r(e){n.call(this,e)}t.exports=r;var n=e(8);(r.prototype=Object.create(n.prototype)).constructor=r;var o=e(13);o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice),r.prototype.string=function(){var e=this.uint32();return this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+e,this.len))}},{13:13,8:8}],10:[function(e,t,i){i.Service=e(11)},{11:11}],11:[function(e,t,i){function r(e,t,i){if("function"!=typeof e)throw TypeError("rpcImpl must be a function");n.EventEmitter.call(this),this.rpcImpl=e,this.requestDelimited=Boolean(t),this.responseDelimited=Boolean(i)}t.exports=r;var n=e(13);(r.prototype=Object.create(n.EventEmitter.prototype)).constructor=r,r.prototype.rpcCall=function e(t,i,r,o,a){if(!o)throw TypeError("request must be specified");var s=this;if(!a)return n.asPromise(e,s,t,i,r,o);if(!s.rpcImpl)return setTimeout(function(){a(Error("already ended"))},0),undefined;try{return s.rpcImpl(t,i[s.requestDelimited?"encodeDelimited":"encode"](o).finish(),function(e,i){if(e)return s.emit("error",e,t),a(e);if(null===i)return s.end(!0),undefined;if(!(i instanceof r))try{i=r[s.responseDelimited?"decodeDelimited":"decode"](i)}catch(e){return s.emit("error",e,t),a(e)}return s.emit("data",i,t),a(null,i)})}catch(e){return s.emit("error",e,t),setTimeout(function(){a(e)},0),undefined}},r.prototype.end=function(e){return this.rpcImpl&&(e||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{13:13}],12:[function(e,t,i){function r(e,t){this.lo=e>>>0,this.hi=t>>>0}t.exports=r;var n=e(13),o=r.zero=new r(0,0);o.toNumber=function(){return 0},o.zzEncode=o.zzDecode=function(){return this},o.length=function(){return 1};var a=r.zeroHash="\0\0\0\0\0\0\0\0";r.fromNumber=function(e){if(0===e)return o;var t=e<0;t&&(e=-e);var i=e>>>0,n=(e-i)/4294967296>>>0;return t&&(n=~n>>>0,i=~i>>>0,++i>4294967295&&(i=0,++n>4294967295&&(n=0))),new r(i,n)},r.from=function(e){if("number"==typeof e)return r.fromNumber(e);if(n.isString(e)){if(!n.Long)return r.fromNumber(parseInt(e,10));e=n.Long.fromString(e)}return e.low||e.high?new r(e.low>>>0,e.high>>>0):o},r.prototype.toNumber=function(e){if(!e&&this.hi>>>31){var t=1+~this.lo>>>0,i=~this.hi>>>0;return t||(i=i+1>>>0),-(t+4294967296*i)}return this.lo+4294967296*this.hi},r.prototype.toLong=function(e){return n.Long?new n.Long(0|this.lo,0|this.hi,Boolean(e)):{low:0|this.lo,high:0|this.hi,unsigned:Boolean(e)}};var s=String.prototype.charCodeAt;r.fromHash=function(e){return e===a?o:new r((s.call(e,0)|s.call(e,1)<<8|s.call(e,2)<<16|s.call(e,3)<<24)>>>0,(s.call(e,4)|s.call(e,5)<<8|s.call(e,6)<<16|s.call(e,7)<<24)>>>0)},r.prototype.toHash=function(){ -return String.fromCharCode(255&this.lo,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,255&this.hi,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},r.prototype.zzEncode=function(){var e=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^e)>>>0,this.lo=(this.lo<<1^e)>>>0,this},r.prototype.zzDecode=function(){var e=-(1&this.lo);return this.lo=((this.lo>>>1|this.hi<<31)^e)>>>0,this.hi=(this.hi>>>1^e)>>>0,this},r.prototype.length=function(){var e=this.lo,t=(this.lo>>>28|this.hi<<4)>>>0,i=this.hi>>>24;return 0===i?0===t?e<16384?e<128?1:2:e<2097152?3:4:t<16384?t<128?5:6:t<2097152?7:8:i<128?9:10}},{13:13}],13:[function(e,t,i){function r(e,t,i){for(var r=Object.keys(t),n=0;n<r.length;++n)e[r[n]]!==undefined&&i||(e[r[n]]=t[r[n]]);return e}function n(e){function t(e,i){if(!(this instanceof t))return new t(e,i);Object.defineProperty(this,"message",{get:function(){return e}}),Error.captureStackTrace?Error.captureStackTrace(this,t):Object.defineProperty(this,"stack",{value:(new Error).stack||""}),i&&r(this,i)}return(t.prototype=Object.create(Error.prototype)).constructor=t,Object.defineProperty(t.prototype,"name",{get:function(){return e}}),t.prototype.toString=function(){return this.name+": "+this.message},t}var o=i;o.asPromise=e(1),o.base64=e(2),o.EventEmitter=e(3),o.inquire=e(4),o.utf8=e(6),o.pool=e(5),o.LongBits=e(12),o.emptyArray=Object.freeze?Object.freeze([]):[],o.emptyObject=Object.freeze?Object.freeze({}):{},o.isNode=Boolean(global.process&&global.process.versions&&global.process.versions.node),o.isInteger=Number.isInteger||function(e){return"number"==typeof e&&isFinite(e)&&Math.floor(e)===e},o.isString=function(e){return"string"==typeof e||e instanceof String},o.isObject=function(e){return e&&"object"==typeof e},o.Buffer=function(){try{var e=o.inquire("buffer").Buffer;return e.prototype.utf8Write?e:null}catch(e){return null}}(),o._Buffer_from=null,o._Buffer_allocUnsafe=null,o.newBuffer=function(e){return"number"==typeof e?o.Buffer?o._Buffer_allocUnsafe(e):new o.Array(e):o.Buffer?o._Buffer_from(e):"undefined"==typeof Uint8Array?e:new Uint8Array(e)},o.Array="undefined"!=typeof Uint8Array?Uint8Array:Array,o.Long=global.dcodeIO&&global.dcodeIO.Long||o.inquire("long"),o.key2Re=/^true|false|0|1$/,o.key32Re=/^-?(?:0|[1-9][0-9]*)$/,o.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,o.longToHash=function(e){return e?o.LongBits.from(e).toHash():o.LongBits.zeroHash},o.longFromHash=function(e,t){var i=o.LongBits.fromHash(e);return o.Long?o.Long.fromBits(i.lo,i.hi,t):i.toNumber(Boolean(t))},o.merge=r,o.lcFirst=function(e){return e.charAt(0).toLowerCase()+e.substring(1)},o.newError=n,o.ProtocolError=n("ProtocolError"),o.oneOfGetter=function(e){for(var t={},i=0;i<e.length;++i)t[e[i]]=1;return function(){for(var e=Object.keys(this),i=e.length-1;i>-1;--i)if(1===t[e[i]]&&this[e[i]]!==undefined&&null!==this[e[i]])return e[i]}},o.oneOfSetter=function(e){return function(t){for(var i=0;i<e.length;++i)e[i]!==t&&delete this[e[i]]}},o.lazyResolve=function(e,t){for(var i=0;i<t.length;++i)for(var r=Object.keys(t[i]),n=0;n<r.length;++n){for(var o=t[i][r[n]].split("."),a=e;o.length;)a=a[o.shift()];t[i][r[n]]=a}},o.toJSONOptions={longs:String,enums:String,bytes:String},o._configure=function(){var e=o.Buffer;if(!e)return void(o._Buffer_from=o._Buffer_allocUnsafe=null);o._Buffer_from=e.from!==Uint8Array.from&&e.from||function(t,i){return new e(t,i)},o._Buffer_allocUnsafe=e.allocUnsafe||function(t){return new e(t)}}},{1:1,12:12,2:2,3:3,4:4,5:5,6:6}],14:[function(e,t,i){function r(e,t,i){this.fn=e,this.len=t,this.next=undefined,this.val=i}function n(){}function o(e){this.head=e.head,this.tail=e.tail,this.len=e.len,this.next=e.states}function a(){this.len=0,this.head=new r(n,0,0),this.tail=this.head,this.states=null}function s(e,t,i){t[i]=255&e}function l(e,t,i){for(;e>127;)t[i++]=127&e|128,e>>>=7;t[i]=e}function u(e,t){this.len=e,this.next=undefined,this.val=t}function c(e,t,i){for(;e.hi;)t[i++]=127&e.lo|128,e.lo=(e.lo>>>7|e.hi<<25)>>>0,e.hi>>>=7;for(;e.lo>127;)t[i++]=127&e.lo|128,e.lo=e.lo>>>7;t[i++]=e.lo}function d(e,t,i){t[i++]=255&e,t[i++]=e>>>8&255,t[i++]=e>>>16&255,t[i]=e>>>24}t.exports=a;var h,p=e(13),f=p.LongBits,m=p.base64,_=p.utf8;a.create=p.Buffer?function(){return(a.create=function(){return new h})()}:function(){return new a},a.alloc=function(e){return new p.Array(e)},p.Array!==Array&&(a.alloc=p.pool(a.alloc,p.Array.prototype.subarray)),a.prototype.push=function(e,t,i){return this.tail=this.tail.next=new r(e,t,i),this.len+=t,this},u.prototype=Object.create(r.prototype),u.prototype.fn=l,a.prototype.uint32=function(e){return this.len+=(this.tail=this.tail.next=new u((e>>>=0)<128?1:e<16384?2:e<2097152?3:e<268435456?4:5,e)).len,this},a.prototype.int32=function(e){return e<0?this.push(c,10,f.fromNumber(e)):this.uint32(e)},a.prototype.sint32=function(e){return this.uint32((e<<1^e>>31)>>>0)},a.prototype.uint64=function(e){var t=f.from(e);return this.push(c,t.length(),t)},a.prototype.int64=a.prototype.uint64,a.prototype.sint64=function(e){var t=f.from(e).zzEncode();return this.push(c,t.length(),t)},a.prototype.bool=function(e){return this.push(s,1,e?1:0)},a.prototype.fixed32=function(e){return this.push(d,4,e>>>0)},a.prototype.sfixed32=a.prototype.fixed32,a.prototype.fixed64=function(e){var t=f.from(e);return this.push(d,4,t.lo).push(d,4,t.hi)},a.prototype.sfixed64=a.prototype.fixed64;var g="undefined"!=typeof Float32Array?function(){var e=new Float32Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[3]?function(i,r,n){e[0]=i,r[n++]=t[0],r[n++]=t[1],r[n++]=t[2],r[n]=t[3]}:function(i,r,n){e[0]=i,r[n++]=t[3],r[n++]=t[2],r[n++]=t[1],r[n]=t[0]}}():function(e,t,i){var r=e<0?1:0;if(r&&(e=-e),0===e)d(1/e>0?0:2147483648,t,i);else if(isNaN(e))d(2147483647,t,i);else if(e>3.4028234663852886e38)d((r<<31|2139095040)>>>0,t,i);else if(e<1.1754943508222875e-38)d((r<<31|Math.round(e/1.401298464324817e-45))>>>0,t,i);else{var n=Math.floor(Math.log(e)/Math.LN2),o=8388607&Math.round(e*Math.pow(2,-n)*8388608);d((r<<31|n+127<<23|o)>>>0,t,i)}};a.prototype.float=function(e){return this.push(g,4,e)};var v="undefined"!=typeof Float64Array?function(){var e=new Float64Array(1),t=new Uint8Array(e.buffer);return e[0]=-0,t[7]?function(i,r,n){e[0]=i,r[n++]=t[0],r[n++]=t[1],r[n++]=t[2],r[n++]=t[3],r[n++]=t[4],r[n++]=t[5],r[n++]=t[6],r[n]=t[7]}:function(i,r,n){e[0]=i,r[n++]=t[7],r[n++]=t[6],r[n++]=t[5],r[n++]=t[4],r[n++]=t[3],r[n++]=t[2],r[n++]=t[1],r[n]=t[0]}}():function(e,t,i){var r=e<0?1:0;if(r&&(e=-e),0===e)d(0,t,i),d(1/e>0?0:2147483648,t,i+4);else if(isNaN(e))d(4294967295,t,i),d(2147483647,t,i+4);else if(e>1.7976931348623157e308)d(0,t,i),d((r<<31|2146435072)>>>0,t,i+4);else{var n;if(e<2.2250738585072014e-308)n=e/5e-324,d(n>>>0,t,i),d((r<<31|n/4294967296)>>>0,t,i+4);else{var o=Math.floor(Math.log(e)/Math.LN2);1024===o&&(o=1023),n=e*Math.pow(2,-o),d(4503599627370496*n>>>0,t,i),d((r<<31|o+1023<<20|1048576*n&1048575)>>>0,t,i+4)}}};a.prototype.double=function(e){return this.push(v,8,e)};var y=p.Array.prototype.set?function(e,t,i){t.set(e,i)}:function(e,t,i){for(var r=0;r<e.length;++r)t[i+r]=e[r]};a.prototype.bytes=function(e){var t=e.length>>>0;if(!t)return this.push(s,1,0);if(p.isString(e)){var i=a.alloc(t=m.length(e));m.decode(e,i,0),e=i}return this.uint32(t).push(y,t,e)},a.prototype.string=function(e){var t=_.length(e);return t?this.uint32(t).push(_.write,t,e):this.push(s,1,0)},a.prototype.fork=function(){return this.states=new o(this),this.head=this.tail=new r(n,0,0),this.len=0,this},a.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new r(n,0,0),this.len=0),this},a.prototype.ldelim=function(){var e=this.head,t=this.tail,i=this.len;return this.reset().uint32(i),i&&(this.tail.next=e.next,this.tail=t,this.len+=i),this},a.prototype.finish=function(){for(var e=this.head.next,t=this.constructor.alloc(this.len),i=0;e;)e.fn(e.val,t,i),i+=e.len,e=e.next;return t},a._configure=function(e){h=e}},{13:13}],15:[function(e,t,i){function r(){o.call(this)}function n(e,t,i){e.length<40?a.utf8.write(e,t,i):t.utf8Write(e,i)}t.exports=r;var o=e(14);(r.prototype=Object.create(o.prototype)).constructor=r;var a=e(13),s=a.Buffer;r.alloc=function(e){return(r.alloc=a._Buffer_allocUnsafe)(e)};var l=s&&s.prototype instanceof Uint8Array&&"set"===s.prototype.set.name?function(e,t,i){t.set(e,i)}:function(e,t,i){if(e.copy)e.copy(t,i,0,e.length);else for(var r=0;r<e.length;)t[i++]=e[r++]};r.prototype.bytes=function(e){a.isString(e)&&(e=a._Buffer_from(e,"base64"));var t=e.length>>>0;return this.uint32(t),t&&this.push(l,t,e),this},r.prototype.string=function(e){var t=s.byteLength(e);return this.uint32(t),t&&this.push(n,t,e),this}},{13:13,14:14}]},{},[7])}("object"==typeof window&&window||"object"==typeof self&&self||this),define("Core/isBitSet",[],function(){"use strict";function e(e,t){return 0!=(e&t)}return e}),define("Core/GoogleEarthEnterpriseTileInformation",["./defined","./isBitSet"],function(e,t){"use strict";function i(e,t,i,r,n,o){this._bits=e,this.cnodeVersion=t,this.imageryVersion=i,this.terrainVersion=r,this.imageryProvider=n,this.terrainProvider=o,this.ancestorHasTerrain=!1,this.terrainState=void 0}var r=[1,2,4,8];return i.clone=function(t,r){return e(r)?(r._bits=t._bits,r.cnodeVersion=t.cnodeVersion,r.imageryVersion=t.imageryVersion,r.terrainVersion=t.terrainVersion,r.imageryProvider=t.imageryProvider,r.terrainProvider=t.terrainProvider):r=new i(t._bits,t.cnodeVersion,t.imageryVersion,t.terrainVersion,t.imageryProvider,t.terrainProvider),r.ancestorHasTerrain=t.ancestorHasTerrain,r.terrainState=t.terrainState,r},i.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()},i.prototype.hasSubtree=function(){return t(this._bits,16)},i.prototype.hasImagery=function(){return t(this._bits,64)},i.prototype.hasTerrain=function(){return t(this._bits,128)},i.prototype.hasChildren=function(){return t(this._bits,15)},i.prototype.hasChild=function(e){return t(this._bits,r[e])},i.prototype.getChildBitmask=function(){return 15&this._bits},i}),define("Core/GoogleEarthEnterpriseMetadata",["../ThirdParty/protobuf-minimal","../ThirdParty/when","./buildModuleUrl","./Check","./Credit","./defaultValue","./defined","./defineProperties","./GoogleEarthEnterpriseTileInformation","./isBitSet","./loadAndExecuteScript","./Math","./Request","./Resource","./RuntimeError","./TaskProcessor"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){var i=e;"string"==typeof i||i instanceof p||(i=e.url);var r=p.createIfNeeded(i);r.appendForwardSlash(),this._resource=r,this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=d.EPSILON12,this.providers={},this.key=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={};var n=this;this._readyPromise=y(this).then(function(){return n.getQuadTreePacket("",n._quadPacketVersion)}).then(function(){return!0}).otherwise(function(e){var i="An error occurred while accessing "+v(n,"",1).url+".";return t.reject(new f(i))})}function g(e,i,r){var n=e._tileInfo,o=i,s=n[o];if(a(s)&&(!s.hasSubtree()||s.hasChildren()))return s;for(;void 0===s&&o.length>1;)o=o.substring(0,o.length-1),s=n[o];var l,u=e._subtreePromises,c=u[o];return a(c)?c.then(function(){return l=new h({throttle:r.throttle,throttleByServer:r.throttleByServer,type:r.type,priorityFunction:r.priorityFunction}),g(e,i,l)}):a(s)&&s.hasSubtree()?(c=e.getQuadTreePacket(o,s.cnodeVersion,r),a(c)?(u[o]=c,c.then(function(){return l=new h({throttle:r.throttle,throttleByServer:r.throttleByServer,type:r.type,priorityFunction:r.priorityFunction}),g(e,i,l)}).always(function(){delete u[o]})):void 0):t.reject(new f("Couldn't load metadata for tile "+i))}function v(e,t,i,r){return e._resource.getDerivedResource({url:"flatfile?q2-0"+t+"-q."+i.toString(),request:r})}function y(t){var r=t._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!a(T)){var s=i("ThirdParty/google-earth-dbroot-parser.js"),l=window.cesiumGoogleEarthDbRootParser;T=c(s).then(function(){S=window.cesiumGoogleEarthDbRootParser(e),a(l)?window.cesiumGoogleEarthDbRootParser=l:delete window.cesiumGoogleEarthDbRootParser})}return T.then(function(){return r.fetchArrayBuffer()}).then(function(e){var i=S.EncryptedDbRootProto.decode(new Uint8Array(e)),r=i.encryptionData,n=r.byteOffset,o=n+r.byteLength,a=t.key=r.buffer.slice(n,o);r=i.dbrootData,n=r.byteOffset,o=n+r.byteLength;var s=r.buffer.slice(n,o);return b.scheduleTask({buffer:s,type:"DbRoot",key:a},[s])}).then(function(e){var i=S.DbRootProto.decode(new Uint8Array(e.buffer));if(t.imageryPresent=o(i.imageryPresent,t.imageryPresent),t.protoImagery=i.protoImagery,t.terrainPresent=o(i.terrainPresent,t.terrainPresent),a(i.endSnippet)&&a(i.endSnippet.model)){var r=i.endSnippet.model;t.negativeAltitudeExponentBias=o(r.negativeAltitudeExponentBias,t.negativeAltitudeExponentBias),t.negativeAltitudeThreshold=o(r.compressedNegativeAltitudeThreshold,t.negativeAltitudeThreshold)}a(i.databaseVersion)&&(t._quadPacketVersion=o(i.databaseVersion.quadtreeVersion,t._quadPacketVersion));for(var s=t.providers,l=o(i.providerInfo,[]),u=l.length,c=0;c<u;++c){var d=l[c],h=d.copyrightString;a(h)&&(s[d.providerId]=new n(h.value))}}).otherwise(function(){console.log("Failed to retrieve "+r.url+". Using defaults."),t.key=C})}var C=function(e){for(var t=e.length,i=new ArrayBuffer(t),r=new Uint8Array(i),n=0;n<t;++n)r[n]=e.charCodeAt(n);return i}('Eô½\vyâjE"’,ÍqøIFgQ\0B%Æèa,f)\bÆ4Üjb%y\nwmiÖðœk“¡½NuàA[ß@V\fÙ»r›|3SîOlÔq°{ÀEVZ­wUe\v3’*¬l5Å0sø3>mF8J´Ýð.ÝuڌDt"úa"\f3"So¯9D\vŒ9Ù9L¹¿«\\ŒP_Ÿ"uxéq‘h;Áěð<VqH‚\'UfYNe˜u£aF}a?A\0Ÿ×´4M·F°Õ¸Š\'{‹Ü+»Mg0ÈÑö\\Pú[/F›n5/\'C.ë\n\f^¥se4ål.jC\'c#U©?q{gC}:¯ÍâTUœýKÆâŸ/(íË\\Æ-fˆ§;/*"N°k.Ý\r•}}GºC²²+>Mª>}æÎI‰Ææx\fa1-¤O¥~q ˆì\r1èN\v\0nPh}=\b\r•¦n£h—$[kó#ó¶s³\r\v@ÀŸØQ]ú".jßI\0¹ wUÆïj¿{GLƒîÜÜF…©­S+S4ÿ”Yä8è1ƒN¹XFkË-#†’p\x005ˆ"Ï1²&/çÃu-6,rt°#G·ÓÑ&…7râ\0ŒDÏÚ3-Þ`†i#i*|ÍKQ\r•T9w.)ê¦P¢joP™\\>TûïP[\vE‰m(w7ێJfJo™ åpâ¹q~\fmI-zþrÇòY0»]såÉ êxì ðŠB|G`°½&·q¶ÇŸÑ3‚=Ó«îc™È+S D\\qÆÌD2O<ÊÀ)=RÓaX©}e´ÜÏ\rô=ñ\b©BÚ#\tØ¿^PIøMÀËGLO÷{+ØÅ1’;µoÜl\r’ˆўÛ?âéÚ_ԄâFaZÞUϤ\0¾ýÎgñJi—æ HØ]~®q N®ÀV©‘<‚rçvì)IÖ]-ƒãÛ6©;f—‡jÕ¶=P^R¹KÇsWxÉô.Y•“oÐKW>\'\'Ç`Û;íšSD>?’mw¢\në?R¨ÆU^1I7…ôÅ&-©¿‹\'TÚÃj å*x°Öprª‹h½ˆ÷_H±~ÀXL?fù>áeÀp§Ï8i¯ðVldIœ\'­xtO‡ÞV9\0Úw\vË-‰û5Oõ\bQ`Á\nZGM&30xÚÀœFGâ[y`In7gS\n>éìF9²ñ4\rƄSuná\fYÙÞ)…{II¥wy¾IV.6ç\v:»Ob{ÒM1•/½8{¨O!áìFpv•})"xˆ\nÝ\\ÚÞQÏðüYRe|3ßóHÚ»*uÛ`²Ôüíì5¨ÿ(1-È܈F|Š["');s(_.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}},readyPromise:{get:function(){return this._readyPromise}}}),_.tileXYToQuadKey=function(e,t,i){for(var r="",n=i;n>=0;--n){var o=1<<n,a=0;u(t,o)?u(e,o)&&(a|=1):(a|=2,u(e,o)||(a|=1)),r+=a}return r},_.quadKeyToTileXY=function(e){for(var t=0,i=0,r=e.length-1,n=r;n>=0;--n){var o=1<<n,a=+e[r-n];u(a,2)?u(a,1)||(t|=o):(i|=o,u(a,1)&&(t|=o))}return{x:t,y:i,level:r}},_.prototype.isValid=function(e){var t=this.getTileInformationFromQuadKey(e);if(a(t))return null!==t;for(var i,r=!0,n=e;n.length>1;){if(i=n.substring(n.length-1),n=n.substring(0,n.length-1),t=this.getTileInformationFromQuadKey(n),a(t)){t.hasSubtree()||t.hasChild(parseInt(i))||(r=!1);break}if(null===t){r=!1;break}}return r};var b=new m("decodeGoogleEarthEnterprisePacket",Number.POSITIVE_INFINITY);_.prototype.getQuadTreePacket=function(e,t,i){t=o(t,1),e=o(e,"");var r=v(this,e,t,i),n=r.fetchArrayBuffer();if(a(n)){var s=this._tileInfo,u=this.key;return n.then(function(t){return b.scheduleTask({buffer:t,quadKey:e,type:"Metadata",key:u},[t]).then(function(t){var i,r=-1;if(""!==e){r=e.length+1;var n=t[e];i=s[e],i._bits|=n._bits,delete t[e]}var o=Object.keys(t);o.sort(function(e,t){return e.length-t.length});for(var a=o.length,u=0;u<a;++u){var c=o[u];if(null!==t[c]){var d=l.clone(t[c]),h=c.length;if(h===r)d.setParent(i);else if(h>1){var p=s[c.substring(0,c.length-1)];d.setParent(p)}s[c]=d}else s[c]=null}})})}},_.prototype.populateSubtree=function(e,t,i,r){return g(this,_.tileXYToQuadKey(e,t,i),r)},_.prototype.getTileInformation=function(e,t,i){var r=_.tileXYToQuadKey(e,t,i);return this._tileInfo[r]},_.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};var S,T;return _}),define("Core/GoogleEarthEnterpriseTerrainData",["./BoundingSphere","./Cartesian2","./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./IndexDatatype","./Intersections2D","./Math","./OrientedBoundingBox","./QuantizedMeshTerrainData","./Rectangle","./TaskProcessor","./TerrainEncoding","./TerrainMesh"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){e=n(e,n.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;var t=n(e.childTileMask,15),i=3&t;i|=4&t?8:0,i|=8&t?4:0,this._childTileMask=i,this._createdByUpsampling=n(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0,this._vertexCountWithoutSkirts=void 0,this._skirtIndex=void 0}function v(e,t,i){for(var r=e._mesh,n=r.vertices,o=r.encoding,a=r.indices,s=0,l=a.length;s<l;s+=3){var c=a[s],d=a[s+1],h=a[s+2],p=o.decodeTextureCoordinates(n,c,E),f=o.decodeTextureCoordinates(n,d,A),m=o.decodeTextureCoordinates(n,h,w),_=u.computeBarycentricCoordinates(t,i,p.x,p.y,f.x,f.y,m.x,m.y,x);if(_.x>=-1e-15&&_.y>=-1e-15&&_.z>=-1e-15){var g=o.decodeHeight(n,c),v=o.decodeHeight(n,d),y=o.decodeHeight(n,h);return _.x*g+_.y*v+_.z*y}}}function y(e,t,i,r){var n=e._buffer,o=0,a=0,s=0;i>.5?(t>.5?(o=2,a=.5):o=3,s=.5):t>.5&&(o=1,a=.5);for(var l=new DataView(n),d=0,h=0;h<o;++h)d+=l.getUint32(d,!0),d+=D;d+=D,d+=2*R;var p=c.toRadians(180*l.getFloat64(d,!0));d+=R;var f=c.toRadians(180*l.getFloat64(d,!0));d+=R;var m=r.width/p/2,_=r.height/f/2,g=l.getInt32(d,!0);d+=I;var v=3*l.getInt32(d,!0);d+=I,d+=I;var y,C=new Array(g),b=new Array(g),S=new Array(g);for(y=0;y<g;++y)C[y]=a+l.getUint8(d++)*m,b[y]=s+l.getUint8(d++)*_,S[y]=6371010*l.getFloat32(d,!0),d+=M;var T=new Array(v);for(y=0;y<v;++y)T[y]=l.getUint16(d,!0),d+=P;for(y=0;y<v;y+=3){var E=T[y],A=T[y+1],w=T[y+2],O=C[E],L=C[A],N=C[w],F=b[E],B=b[A],z=b[w],k=u.computeBarycentricCoordinates(t,i,O,F,L,B,N,z,x);if(k.x>=-1e-15&&k.y>=-1e-15&&k.z>=-1e-15)return k.x*S[E]+k.y*S[A]+k.z*S[w]}}a(g.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var C=new f("createVerticesFromGoogleEarthEnterpriseBuffer"),b=new p,S=new p;g.prototype.createMesh=function(t,r,a,s,l){var u=t.ellipsoid;t.tileXYToNativeRectangle(r,a,s,b),t.tileXYToRectangle(r,a,s,S),l=n(l,1);var c=u.cartographicToCartesian(p.center(S)),h=40075.16/(1<<s);this._skirtHeight=Math.min(8*h,1e3);var f=C.scheduleTask({buffer:this._buffer,nativeRectangle:b,rectangle:S,relativeToCenter:c,ellipsoid:u,skirtHeight:this._skirtHeight,exaggeration:l,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(o(f)){var g=this;return f.then(function(t){return g._mesh=new _(c,new Float32Array(t.vertices),new Uint16Array(t.indices),t.minimumHeight,t.maximumHeight,e.clone(t.boundingSphere3D),i.clone(t.occludeePointInScaledSpace),t.numberOfAttributes,d.clone(t.orientedBoundingBox),m.clone(t.encoding),l,t.westIndicesSouthToNorth,t.southIndicesEastToWest,t.eastIndicesNorthToSouth,t.northIndicesWestToEast),g._vertexCountWithoutSkirts=t.vertexCountWithoutSkirts,g._skirtIndex=t.skirtIndex,g._minimumHeight=t.minimumHeight,g._maximumHeight=t.maximumHeight,g._buffer=void 0,g._mesh})}},g.prototype.interpolateHeight=function(e,t,i){var r=c.clamp((t-e.west)/e.width,0,1),n=c.clamp((i-e.south)/e.height,0,1);return o(this._mesh)?v(this,r,n):y(this,r,n,e)};var T=new f("upsampleQuantizedTerrainMesh");g.prototype.upsample=function(t,r,n,a,s,u,c){var p=this._mesh;if(o(this._mesh)){var f=2*r!==s,m=2*n===u,_=t.ellipsoid,g=t.tileXYToRectangle(s,u,c),v=T.scheduleTask({vertices:p.vertices,vertexCountWithoutSkirts:this._vertexCountWithoutSkirts,indices:p.indices,skirtIndex:this._skirtIndex,encoding:p.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:f,isNorthChild:m,childRectangle:g,ellipsoid:_,exaggeration:p.exaggeration});if(o(v)){var y=this;return v.then(function(t){var r=new Uint16Array(t.vertices),n=l.createTypedArray(r.length/3,t.indices),o=y._skirtHeight;return new h({quantizedVertices:r,indices:n,minimumHeight:t.minimumHeight,maximumHeight:t.maximumHeight,boundingSphere:e.clone(t.boundingSphere),orientedBoundingBox:d.clone(t.orientedBoundingBox),horizonOcclusionPoint:i.clone(t.horizonOcclusionPoint),westIndices:t.westIndices,southIndices:t.southIndices,eastIndices:t.eastIndices,northIndices:t.northIndices,westSkirtHeight:o,southSkirtHeight:o,eastSkirtHeight:o,northSkirtHeight:o,childTileMask:0,createdByUpsampling:!0,credits:y._credits})})}}},g.prototype.isChildAvailable=function(e,t,i,r){var n=2;return i!==2*e&&++n,r!==2*t&&(n-=2),0!=(this._childTileMask&1<<n)},g.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var E=new t,A=new t,w=new t,x=new i,P=Uint16Array.BYTES_PER_ELEMENT,D=Uint32Array.BYTES_PER_ELEMENT,I=Int32Array.BYTES_PER_ELEMENT,M=Float32Array.BYTES_PER_ELEMENT,R=Float64Array.BYTES_PER_ELEMENT;return g}),define("Core/GoogleEarthEnterpriseTerrainProvider",["../ThirdParty/when","./Credit","./defaultValue","./defined","./defineProperties","./DeveloperError","./Event","./GeographicTilingScheme","./GoogleEarthEnterpriseMetadata","./GoogleEarthEnterpriseTerrainData","./HeightmapTerrainData","./JulianDate","./Math","./Rectangle","./Request","./RequestState","./RequestType","./Resource","./RuntimeError","./TaskProcessor","./TileProviderError"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(){this._terrainCache={},this._lastTidy=d.now()}function S(n){n=i(n,{});var o;if(r(n.metadata))o=n.metadata;else{var u=g.createIfNeeded(n.url);o=new l(u)}this._metadata=o,this._tilingScheme=new s({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new p(-h.PI,-h.PI,h.PI,h.PI),ellipsoid:n.ellipsoid});var c=n.credit;"string"==typeof c&&(c=new t(c)),this._credit=c,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new b,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new a,this._ready=!1;var d,f=this;this._readyPromise=o.readyPromise.then(function(t){if(!o.terrainPresent){var i=new v("The server "+o.url+" doesn't have terrain");return d=C.handleError(d,f,f._errorEvent,i.message,void 0,void 0,void 0,i),e.reject(i)}return C.handleSuccess(d),f._ready=t,t}).otherwise(function(t){return d=C.handleError(d,f,f._errorEvent,t.message,void 0,void 0,void 0,t),e.reject(t)})}function T(e,t,i){var n=t.getChildBitmask();if(t.terrainState===A.PARENT){n=0;for(var o=0;o<4;++o){var a=i.getTileInformationFromQuadKey(e+o.toString());r(a)&&a.hasTerrain()&&(n|=1<<o)}}return n}function E(e,t,i,n){return i=r(i)&&i>0?i:1,e._metadata.resource.getDerivedResource({url:"flatfile?f1c-0"+t+"-t."+i.toString(),request:n})}var A={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},w=new d;b.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:d.now()}},b.prototype.get=function(e){var t=this._terrainCache,i=t[e];if(r(i))return delete this._terrainCache[e],i.buffer},b.prototype.tidy=function(){if(d.now(w),d.secondsDifference(w,this._lastTidy)>10){for(var e=this._terrainCache,t=Object.keys(e),i=t.length,r=0;r<i;++r){var n=t[r],o=e[n];d.secondsDifference(w,o.timestamp)>10&&delete e[n]}d.clone(w,this._lastTidy)}},n(S.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});var x=new y("decodeGoogleEarthEnterprisePacket",Number.POSITIVE_INFINITY);return S.prototype.requestTileGeometry=function(t,i,n,o){var a=l.tileXYToQuadKey(t,i,n),s=this._terrainCache,d=this._metadata,h=d.getTileInformationFromQuadKey(a);if(!r(h))return e.reject(new v("Terrain tile doesn't exist"));var p=h.terrainState;r(p)||(p=h.terrainState=A.UNKNOWN);var f=s.get(a);if(r(f)){var _=d.providers[h.terrainProvider];return e.resolve(new u({buffer:f,childTileMask:T(a,h,d),credits:r(_)?[_]:void 0,negativeAltitudeExponentBias:d.negativeAltitudeExponentBias,negativeElevationThreshold:d.negativeAltitudeThreshold}))}if(s.tidy(),!h.ancestorHasTerrain)return e.resolve(new c({buffer:new Uint8Array(256),width:16,height:16}));if(p===A.NONE)return e.reject(new v("Terrain tile doesn't exist"));var g,y=a,C=-1;switch(p){case A.SELF:C=h.terrainVersion;break;case A.PARENT:y=y.substring(0,y.length-1),g=d.getTileInformationFromQuadKey(y),C=g.terrainVersion;break;case A.UNKNOWN:h.hasTerrain()?C=h.terrainVersion:(y=y.substring(0,y.length-1),g=d.getTileInformationFromQuadKey(y),r(g)&&g.hasTerrain()&&(C=g.terrainVersion))}if(C<0)return e.reject(new v("Terrain tile doesn't exist"));var b,S,w=this._terrainPromises,P=this._terrainRequests;if(r(w[y]))b=w[y],S=P[y];else{S=o;var D=E(this,y,C,S).fetchArrayBuffer();if(!r(D))return;b=D.then(function(t){return r(t)?x.scheduleTask({buffer:t,type:"Terrain",key:d.key},[t]).then(function(e){var t=d.getTileInformationFromQuadKey(y);t.terrainState=A.SELF,s.add(y,e[0]);for(var i=t.terrainProvider,n=e.length-1,o=0;o<n;++o){var a=y+o.toString(),l=d.getTileInformationFromQuadKey(a);r(l)&&(s.add(a,e[o+1]),l.terrainState=A.PARENT,0===l.terrainProvider&&(l.terrainProvider=i))}}):e.reject(new v("Failed to load terrain."))}),w[y]=b,P[y]=S,b=b.always(function(){delete w[y],delete P[y]})}return b.then(function(){var t=s.get(a);if(r(t)){var i=d.providers[h.terrainProvider];return new u({buffer:t,childTileMask:T(a,h,d),credits:r(i)?[i]:void 0,negativeAltitudeExponentBias:d.negativeAltitudeExponentBias,negativeElevationThreshold:d.negativeAltitudeThreshold})}return e.reject(new v("Failed to load terrain."))}).otherwise(function(t){return S.state===m.CANCELLED?(o.state=S.state,e.reject(t)):(h.terrainState=A.NONE,e.reject(t))})},S.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)},S.prototype.getTileDataAvailable=function(e,t,i){var n=this._metadata,o=l.tileXYToQuadKey(e,t,i),a=n.getTileInformation(e,t,i);if(null===a)return!1;if(r(a)){if(!a.ancestorHasTerrain)return!0;var s=a.terrainState;if(s===A.NONE)return!1;if(!(r(s)&&s!==A.UNKNOWN||(a.terrainState=A.UNKNOWN,a.hasTerrain()))){o=o.substring(0,o.length-1);var u=n.getTileInformationFromQuadKey(o);if(!r(u)||!u.hasTerrain())return!1}return!0}if(n.isValid(o)){var c=new f({throttle:!0,throttleByServer:!0,type:_.TERRAIN});n.populateSubtree(e,t,i,c)}return!1},S.prototype.loadTileDataAvailability=function(e,t,i){},S}),define("Core/GroundPolylineGeometry",["./ApproximateTerrainHeights","./ArcType","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./DeveloperError","./Math","./defaultValue","./defined","./defineProperties","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./IntersectionTests","./Matrix3","./Plane","./Quaternion","./Rectangle","./WebMercatorProjection"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A){"use strict";function w(e){e=c(e,c.EMPTY_OBJECT);var i=e.positions;this.width=c(e.width,1),this._positions=i,this.granularity=c(e.granularity,9999),this.loop=c(e.loop,!1),this.arcType=c(e.arcType,t.GEODESIC),this._ellipsoid=p.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}function x(e,t,i,r,o){var a=D(r,e,0,q),s=D(r,e,i,Y),l=D(r,t,0,j),u=I(s,a,Y),c=I(l,a,j);return n.cross(c,u,o),n.normalize(o,o)}function P(e,i,r,o,a,s,l,u,c,d,h){if(0!==a){var p;s===t.GEODESIC?p=new f(e,i,l):s===t.RHUMB&&(p=new m(e,i,l));var _=p.surfaceDistance;if(!(_<a))for(var g=x(e,i,o,l,Z),v=Math.ceil(_/a),y=_/v,C=y,b=v-1,S=u.length,T=0;T<b;T++){var E=p.interpolateUsingSurfaceDistance(C,X),A=D(l,E,r,Q),w=D(l,E,o,K);n.pack(g,u,S),n.pack(A,c,S),n.pack(w,d,S),h.push(E.latitude),h.push(E.longitude),S+=3,C+=y}}}function D(e,t,i,r){return o.clone(t,J),J.height=i,o.toCartesian(J,e,r)}function I(e,t,i){return n.subtract(e,t,i),n.normalize(i,i),i}function M(e,t,i,r,o){var a=I(i,t,ne),s=I(e,t,$),l=I(r,t,ee),c=n.cross(a,s,ie);c=n.normalize(c,c);var d=S.fromPointNormal(t,c,re),h=S.getPointDistance(d,r);if(u.equalsEpsilon(h,0,u.EPSILON7))return n.clone(c,o),o;o=n.add(l,s,o),o=n.normalize(o,o);var p=n.cross(a,o,te);return n.normalize(p,p),n.cross(p,a,o),n.normalize(o,o),n.dot(l,p)<oe&&(o=n.negate(o,o)),o}function R(e,t,i,r){var o=I(i,t,_e),a=n.dot(o,e);if(a>U||a<G){var s=I(r,i,ne),l=a<G?u.PI_OVER_TWO:-u.PI_OVER_TWO,c=T.fromAxisAngle(s,l,ve),d=b.fromQuaternion(c,ge);return b.multiplyByVector(d,e,e),!0}return!1}function O(e,t,i,r,a){var s=o.toCartesian(t,e._ellipsoid,Ce),l=n.add(s,i,be),c=!1,d=e._ellipsoid,h=d.cartesianToCartographic(l,ye);Math.abs(t.longitude-h.longitude)>u.PI_OVER_TWO&&(c=!0,l=n.subtract(s,i,be),h=d.cartesianToCartographic(l,ye)),h.height=0;var p=e.project(h,a);return a=n.subtract(p,r,a),a.z=0,a=n.normalize(a,a),c&&n.negate(a,a),a}function L(e,t,i,r,o,a){var s=n.subtract(t,e,Se);n.normalize(s,s);var l=i-H,u=n.multiplyByScalar(s,l,Te);n.add(e,u,o);var c=r-W;u=n.multiplyByScalar(s,c,Te),n.add(t,u,a)}function N(e,t){var i=S.getPointDistance(ae,e),r=S.getPointDistance(ae,t),o=Ee;u.equalsEpsilon(i,0,u.EPSILON2)?(o=I(t,e,o),n.multiplyByScalar(o,u.EPSILON2,o),n.add(e,o,e)):u.equalsEpsilon(r,0,u.EPSILON2)&&(o=I(e,t,o),n.multiplyByScalar(o,u.EPSILON2,o),n.add(t,o,t))}function F(e,t){var i=Math.abs(e.longitude),r=Math.abs(t.longitude);if(u.equalsEpsilon(i,u.PI,u.EPSILON11)){var n=u.sign(t.longitude);return e.longitude=n*(i-u.EPSILON11),1}if(u.equalsEpsilon(r,u.PI,u.EPSILON11)){var o=u.sign(e.longitude);return t.longitude=o*(r-u.EPSILON11),2}return 0}function B(t,i,o,a,l,c,d){var h,p,f,m,g,C,b=i._ellipsoid,S=o.length/3-1,T=8*S,A=4*T,w=36*S,x=T>65535?new Uint32Array(w):new Uint16Array(w),P=new Float64Array(3*T),D=new Float32Array(A),M=new Float32Array(A),B=new Float32Array(A),k=new Float32Array(A),V=new Float32Array(A);d&&(f=new Float32Array(A),m=new Float32Array(A),g=new Float32Array(A),C=new Float32Array(2*T));var G=c.length/2,H=0,W=Ae;W.height=0;var q=we;q.height=0;var Y=xe,j=Pe;if(d)for(p=0,h=1;h<G;h++)W.latitude=c[p],W.longitude=c[p+1],q.latitude=c[p+2],q.longitude=c[p+3],Y=i.project(W,Y),j=i.project(q,j),H+=n.distance(Y,j),p+=2;var X=a.length/3;j=n.unpack(a,0,j);var Q=0;for(p=3,h=1;h<X;h++)Y=n.clone(j,Y),j=n.unpack(a,p,j),Q+=n.distance(Y,j),p+=3;var K;p=3;var Z=0,J=0,$=0,ee=0,te=!1,ie=n.unpack(o,0,Ie),re=n.unpack(a,0,Pe),ne=n.unpack(l,0,Re);if(t){R(ne,n.unpack(o,o.length-6,De),ie,re)&&(ne=n.negate(ne,ne))}var oe=0,ae=0,se=0;for(h=0;h<S;h++){var le=n.clone(ie,De),ue=n.clone(re,xe),ce=n.clone(ne,Me);te&&(ce=n.negate(ce,ce)),ie=n.unpack(o,p,Ie),re=n.unpack(a,p,Pe),ne=n.unpack(l,p,Re),te=R(ne,le,ie,re),W.latitude=c[Z],W.longitude=c[Z+1],q.latitude=c[Z+2],q.longitude=c[Z+3];var de,he,pe,fe;if(d){var me=F(W,q);de=i.project(W,ke),he=i.project(q,Ve);var _e=I(he,de,Ze);_e.y=Math.abs(_e.y),pe=Ue,fe=Ge,0===me||n.dot(_e,n.UNIT_Y)>U?(pe=O(i,W,ce,de,Ue),fe=O(i,q,ne,he,Ge)):1===me?(fe=O(i,q,ne,he,Ge),pe.x=0,pe.y=u.sign(W.longitude-Math.abs(q.longitude)),pe.z=0):(pe=O(i,W,ce,de,Ue),fe.x=0, -fe.y=u.sign(W.longitude-q.longitude),fe.z=0)}var ge=n.distance(ue,re),ve=_.fromCartesian(le,Qe),ye=n.subtract(ie,le,He),Ce=n.normalize(ye,Ye),be=n.subtract(ue,le,We);be=n.normalize(be,be);var Se=n.cross(Ce,be,Ye);Se=n.normalize(Se,Se);var Te=n.cross(be,ce,je);Te=n.normalize(Te,Te);var Ee=n.subtract(re,ie,qe);Ee=n.normalize(Ee,Ee);var rt=n.cross(ne,Ee,Xe);rt=n.normalize(rt,rt);var nt,ot,at,st=ge/Q,lt=oe/Q,ut=0,ct=0,dt=0;if(d){ut=n.distance(de,he),nt=_.fromCartesian(de,Ke),ot=n.subtract(he,de,Ze),at=n.normalize(ot,Je);var ht=at.x;at.x=at.y,at.y=-ht,ct=ut/H,dt=ae/H}for(K=0;K<8;K++){var pt=ee+4*K,ft=J+2*K,mt=pt+3,_t=K<4?1:-1,gt=2===K||3===K||6===K||7===K?1:-1;n.pack(ve.high,D,pt),D[mt]=ye.x,n.pack(ve.low,M,pt),M[mt]=ye.y,n.pack(Te,B,pt),B[mt]=ye.z,n.pack(rt,k,pt),k[mt]=st*_t,n.pack(Se,V,pt);var vt=lt*gt;0===vt&><0&&(vt=Number.POSITIVE_INFINITY),V[mt]=vt,d&&(f[pt]=nt.high.x,f[pt+1]=nt.high.y,f[pt+2]=nt.low.x,f[pt+3]=nt.low.y,g[pt]=-pe.y,g[pt+1]=pe.x,g[pt+2]=fe.y,g[pt+3]=-fe.x,m[pt]=ot.x,m[pt+1]=ot.y,m[pt+2]=at.x,m[pt+3]=at.y,C[ft]=ct*_t,vt=dt*gt,0===vt&><0&&(vt=Number.POSITIVE_INFINITY),C[ft+1]=vt)}var yt=Be,Ct=ze,bt=Ne,St=Fe,Tt=E.fromCartographicArray(Oe,Le),Et=e.getMinimumMaximumHeights(Tt,b),At=Et.minimumTerrainHeight,wt=Et.maximumTerrainHeight;se+=At,se+=wt,L(le,ue,At,wt,yt,bt),L(ie,re,At,wt,Ct,St);var xt=n.multiplyByScalar(Se,u.EPSILON5,$e);n.add(yt,xt,yt),n.add(Ct,xt,Ct),n.add(bt,xt,bt),n.add(St,xt,St),N(yt,Ct),N(bt,St),n.pack(yt,P,$),n.pack(Ct,P,$+3),n.pack(St,P,$+6),n.pack(bt,P,$+9),xt=n.multiplyByScalar(Se,-2*u.EPSILON5,$e),n.add(yt,xt,yt),n.add(Ct,xt,Ct),n.add(bt,xt,bt),n.add(St,xt,St),N(yt,Ct),N(bt,St),n.pack(yt,P,$+12),n.pack(Ct,P,$+15),n.pack(St,P,$+18),n.pack(bt,P,$+21),Z+=2,p+=3,J+=16,$+=24,ee+=32,oe+=ge,ae+=ut}p=0;var Pt=0;for(h=0;h<S;h++){for(K=0;K<it;K++)x[p+K]=tt[K]+Pt;Pt+=8,p+=it}var Dt=et;r.fromVertices(o,n.ZERO,3,Dt[0]),r.fromVertices(a,n.ZERO,3,Dt[1]);var It=r.fromBoundingSpheres(Dt);It.radius+=se/(2*S);var Mt={position:new y({componentDatatype:s.DOUBLE,componentsPerAttribute:3,normalize:!1,values:P}),startHiAndForwardOffsetX:z(D),startLoAndForwardOffsetY:z(M),startNormalAndForwardOffsetZ:z(B),endNormalAndTextureCoordinateNormalizationX:z(k),rightNormalAndTextureCoordinateNormalizationY:z(V)};return d&&(Mt.startHiLo2D=z(f),Mt.offsetAndRight2D=z(m),Mt.startEndNormals2D=z(g),Mt.texcoordNormalization2D=new y({componentDatatype:s.FLOAT,componentsPerAttribute:2,normalize:!1,values:C})),new v({attributes:Mt,indices:x,boundingSphere:It})}function z(e){return new y({componentDatatype:s.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}var k=[g,A],V=k.length,U=Math.cos(u.toRadians(30)),G=Math.cos(u.toRadians(150)),H=0,W=1e3;h(w.prototype,{packedLength:{get:function(){return 1+3*this._positions.length+1+1+1+p.packedLength+1+1}}}),w.setProjectionAndEllipsoid=function(e,t){for(var i=0,r=0;r<V;r++)if(t instanceof k[r]){i=r;break}e._projectionIndex=i,e._ellipsoid=t.ellipsoid};var q=new n,Y=new n,j=new n,X=new o,Q=new n,K=new n,Z=new n,J=new o;w.pack=function(e,t,i){var r=c(i,0),o=e._positions,a=o.length;t[r++]=a;for(var s=0;s<a;++s){var l=o[s];n.pack(l,t,r),r+=3}return t[r++]=e.granularity,t[r++]=e.loop?1:0,t[r++]=e.arcType,p.pack(e._ellipsoid,t,r),r+=p.packedLength,t[r++]=e._projectionIndex,t[r++]=e._scene3DOnly?1:0,t},w.unpack=function(e,t,i){for(var r=c(t,0),o=e[r++],a=new Array(o),s=0;s<o;s++)a[s]=n.unpack(e,r),r+=3;var l=e[r++],u=1===e[r++],h=e[r++],f=p.unpack(e,r);r+=p.packedLength;var m=e[r++],_=1===e[r++];return d(i)||(i=new w({positions:a})),i._positions=a,i.granularity=l,i.loop=u,i.arcType=h,i._ellipsoid=f,i._projectionIndex=m,i._scene3DOnly=_,i};var $=new n,ee=new n,te=new n,ie=new n,re=new S(n.UNIT_X,0),ne=new n,oe=0,ae=S.fromPointNormal(n.ZERO,n.UNIT_Y),se=new n,le=new n,ue=new n,ce=new n,de=new n,he=new n,pe=new o,fe=new o,me=new o;w.createGeometry=function(e){var r,a,s=!e._scene3DOnly,l=e.loop,c=e._ellipsoid,h=e.granularity,p=e.arcType,f=new k[e._projectionIndex](c),_=H,g=W,v=e._positions,y=v.length;2===y&&(l=!1);var b,S,T,E,A,w,I,R=new m(void 0,void 0,c),O=[v[0]];for(a=0;a<y-1;a++)b=v[a],S=v[a+1],A=C.lineSegmentPlane(b,S,ae,he),!d(A)||n.equalsEpsilon(A,b,u.EPSILON7)||n.equalsEpsilon(A,S,u.EPSILON7)||(e.arcType===t.GEODESIC?O.push(n.clone(A)):e.arcType===t.RHUMB&&(I=c.cartesianToCartographic(A,pe).longitude,T=c.cartesianToCartographic(b,pe),E=c.cartesianToCartographic(S,fe),R.setEndPoints(T,E),w=R.findIntersectionWithLongitude(I,me),A=c.cartographicToCartesian(w,he),!d(A)||n.equalsEpsilon(A,b,u.EPSILON7)||n.equalsEpsilon(A,S,u.EPSILON7)||O.push(n.clone(A)))),O.push(S);l&&(b=v[y-1],S=v[0],A=C.lineSegmentPlane(b,S,ae,he),!d(A)||n.equalsEpsilon(A,b,u.EPSILON7)||n.equalsEpsilon(A,S,u.EPSILON7)||(e.arcType===t.GEODESIC?O.push(n.clone(A)):e.arcType===t.RHUMB&&(I=c.cartesianToCartographic(A,pe).longitude,T=c.cartesianToCartographic(b,pe),E=c.cartesianToCartographic(S,fe),R.setEndPoints(T,E),w=R.findIntersectionWithLongitude(I,me),A=c.cartographicToCartesian(w,he),!d(A)||n.equalsEpsilon(A,b,u.EPSILON7)||n.equalsEpsilon(A,S,u.EPSILON7)||O.push(n.clone(A)))));var L=O.length,N=new Array(L);for(a=0;a<L;a++){var F=o.fromCartesian(O[a],c);F.height=0,N[a]=F}if(N=i(N,o.equalsEpsilon),!((L=N.length)<2)){var z=[],V=[],U=[],G=[],q=se,Y=le,j=ue,X=ce,Q=de,K=N[0],Z=N[1],J=N[L-1];for(q=D(c,J,_,q),X=D(c,Z,_,X),Y=D(c,K,_,Y),j=D(c,K,g,j),Q=l?M(q,Y,j,X,Q):x(K,Z,g,c,Q),n.pack(Q,V,0),n.pack(Y,U,0),n.pack(j,G,0),z.push(K.latitude),z.push(K.longitude),P(K,Z,_,g,h,p,c,V,U,G,z),a=1;a<L-1;++a){q=n.clone(Y,q),Y=n.clone(X,Y);var $=N[a];D(c,$,g,j),D(c,N[a+1],_,X),M(q,Y,j,X,Q),r=V.length,n.pack(Q,V,r),n.pack(Y,U,r),n.pack(j,G,r),z.push($.latitude),z.push($.longitude),P(N[a],N[a+1],_,g,h,p,c,V,U,G,z)}var ee=N[L-1],te=N[L-2];if(Y=D(c,ee,_,Y),j=D(c,ee,g,j),l){var ie=N[0];q=D(c,te,_,q),X=D(c,ie,_,X),Q=M(q,Y,j,X,Q)}else Q=x(te,ee,g,c,Q);if(r=V.length,n.pack(Q,V,r),n.pack(Y,U,r),n.pack(j,G,r),z.push(ee.latitude),z.push(ee.longitude),l){for(P(ee,K,_,g,h,p,c,V,U,G,z),r=V.length,a=0;a<3;++a)V[r+a]=V[a],U[r+a]=U[a],G[r+a]=G[a];z.push(K.latitude),z.push(K.longitude)}return B(l,f,U,G,V,z,s)}};var _e=new n,ge=new b,ve=new T,ye=new o,Ce=new n,be=new n,Se=new n,Te=new n,Ee=new n,Ae=new o,we=new o,xe=new n,Pe=new n,De=new n,Ie=new n,Me=new n,Re=new n,Oe=[Ae,we],Le=new E,Ne=new n,Fe=new n,Be=new n,ze=new n,ke=new n,Ve=new n,Ue=new n,Ge=new n,He=new n,We=new n,qe=new n,Ye=new n,je=new n,Xe=new n,Qe=new _,Ke=new _,Ze=new n,Je=new n,$e=new n,et=[new r,new r],tt=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],it=tt.length;return w._projectNormal=O,w}),define("Core/HeadingPitchRange",["./defaultValue","./defined"],function(e,t){"use strict";function i(t,i,r){this.heading=e(t,0),this.pitch=e(i,0),this.range=e(r,0)}return i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.heading=e.heading,r.pitch=e.pitch,r.range=e.range,r},i});define("Core/HermitePolynomialApproximation",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,i,r){"use strict";function n(e,t,i,r,o,a){var s,l,u,c=0;if(r>0){for(l=0;l<o;l++){for(s=!1,u=0;u<a.length&&!s;u++)l===a[u]&&(s=!0);s||(a.push(l),c+=n(e,t,i,r-1,o,a),a.splice(a.length-1,1))}return c}for(c=1,l=0;l<o;l++){for(s=!1,u=0;u<a.length&&!s;u++)l===a[u]&&(s=!0);s||(c*=e-i[t[l]])}return c}function o(e,t,i,n,o,a){for(var s,l,u=-1,c=t.length,d=c*(c+1)/2,h=0;h<o;h++){var p=Math.floor(h*d);for(s=0;s<c;s++)l=t[s]*o*(a+1)+h,e[p+s]=n[l];for(var f=1;f<c;f++){var m=0,_=Math.floor(f*(1-f)/2)+c*f,g=!1;for(s=0;s<c-f;s++){var v,y,C=i[t[s]],b=i[t[s+f]];if(b-C<=0)l=t[s]*o*(a+1)+o*f+h,v=n[l],y=v/r.factorial(f),e[p+_+m]=y,m++;else{var S=Math.floor((f-1)*(2-f)/2)+c*(f-1);v=e[p+S+s+1]-e[p+S+s],y=v/(b-C),e[p+_+m]=y,m++}g=g||0!==v}g&&(u=Math.max(u,f))}}return u}var a=r.factorial,s={type:"Hermite"};s.getRequiredDataPoints=function(t,i){return i=e(i,0),Math.max(Math.floor((t+1)/(i+1)),2)},s.interpolateOrderZero=function(e,i,r,o,s){t(s)||(s=new Array(o));var l,u,c,d,h,p,f=i.length,m=new Array(o);for(l=0;l<o;l++){s[l]=0;var _=new Array(f);for(m[l]=_,u=0;u<f;u++)_[u]=[]}var g=f,v=new Array(g);for(l=0;l<g;l++)v[l]=l;var y=f-1;for(d=0;d<o;d++){for(u=0;u<g;u++)p=v[u]*o+d,m[d][0].push(r[p]);for(l=1;l<g;l++){var C=!1;for(u=0;u<g-l;u++){var b,S=i[v[u]],T=i[v[u+l]];T-S<=0?(p=v[u]*o+o*l+d,b=r[p],m[d][l].push(b/a(l))):(b=m[d][l-1][u+1]-m[d][l-1][u],m[d][l].push(b/(T-S))),C=C||0!==b}C||(y=l-1)}}for(c=0,h=0;c<=h;c++)for(l=c;l<=y;l++){var E=n(e,v,i,c,l,[]);for(d=0;d<o;d++){var A=m[d][l][0];s[d+c*o]+=A*E}}return s};var l=[];return s.interpolate=function(e,i,r,a,s,u,c){var d=a*(u+1);t(c)||(c=new Array(d));for(var h=0;h<d;h++)c[h]=0;var p,f=i.length,m=new Array(f*(s+1));for(p=0;p<f;p++)for(var _=0;_<s+1;_++)m[p*(s+1)+_]=p;for(var g=m.length,v=l,y=o(v,m,i,r,a,s),C=[],b=g*(g+1)/2,S=Math.min(y,u),T=0;T<=S;T++)for(p=T;p<=y;p++){C.length=0;for(var E=n(e,m,i,T,p,C),A=Math.floor(p*(1-p)/2)+g*p,w=0;w<a;w++){var x=Math.floor(w*b),P=v[x+A];c[w+T*a]+=P*E}}return c},s}),define("Core/IauOrientationParameters",[],function(){"use strict";function e(e,t,i,r){this.rightAscension=e,this.declination=t,this.rotation=i,this.rotationRate=r}return e}),define("Core/Iau2000Orientation",["./defined","./IauOrientationParameters","./JulianDate","./Math","./TimeConstants"],function(e,t,i,r,n){"use strict";var o={},a=-.0529921,s=-.1059842,l=13.0120009,u=13.3407154,c=26.4057084,d=13.064993,h=1.7484877,p=new i;return o.ComputeMoon=function(o,f){e(o)||(o=i.now()),p=i.addSeconds(o,32.184,p);var m=i.totalDays(p)-2451545,_=m/n.DAYS_PER_JULIAN_CENTURY,g=(125.045+a*m)*r.RADIANS_PER_DEGREE,v=(250.089+s*m)*r.RADIANS_PER_DEGREE,y=(260.008+l*m)*r.RADIANS_PER_DEGREE,C=(176.625+u*m)*r.RADIANS_PER_DEGREE,b=(357.529+.9856003*m)*r.RADIANS_PER_DEGREE,S=(311.589+c*m)*r.RADIANS_PER_DEGREE,T=(134.963+d*m)*r.RADIANS_PER_DEGREE,E=(276.617+.3287146*m)*r.RADIANS_PER_DEGREE,A=(34.226+h*m)*r.RADIANS_PER_DEGREE,w=(15.134+-.1589763*m)*r.RADIANS_PER_DEGREE,x=(119.743+.0036096*m)*r.RADIANS_PER_DEGREE,P=(239.961+.1643573*m)*r.RADIANS_PER_DEGREE,D=(25.053+12.9590088*m)*r.RADIANS_PER_DEGREE,I=Math.sin(g),M=Math.sin(v),R=Math.sin(y),O=Math.sin(C),L=Math.sin(b),N=Math.sin(S),F=Math.sin(T),B=Math.sin(E),z=Math.sin(A),k=Math.sin(w),V=Math.sin(x),U=Math.sin(P),G=Math.sin(D),H=Math.cos(g),W=Math.cos(v),q=Math.cos(y),Y=Math.cos(C),j=Math.cos(b),X=Math.cos(S),Q=Math.cos(T),K=Math.cos(E),Z=Math.cos(A),J=Math.cos(w),$=Math.cos(x),ee=Math.cos(P),te=Math.cos(D),ie=(269.9949+.0031*_-3.8787*I-.1204*M+.07*R-.0172*O+.0072*N-.0052*k+.0043*G)*r.RADIANS_PER_DEGREE,re=(66.5392+.013*_+1.5419*H+.0239*W-.0278*q+.0068*Y-.0029*X+9e-4*Q+8e-4*J-9e-4*te)*r.RADIANS_PER_DEGREE,ne=(38.3213+13.17635815*m-1.4e-12*m*m+3.561*I+.1208*M-.0642*R+.0158*O+.0252*L-.0066*N-.0047*F-.0046*B+.0028*z+.0052*k+.004*V+.0019*U-.0044*G)*r.RADIANS_PER_DEGREE,oe=(13.17635815-2*m*1.4e-12+3.561*H*a+.1208*W*s-.0642*q*l+.0158*Y*u+.0252*j*.9856003-.0066*X*c-.0047*Q*d-.0046*K*.3287146+.0028*Z*h+.0052*J*-.1589763+.004*$*.0036096+.0019*ee*.1643573-.0044*te*12.9590088)/86400*r.RADIANS_PER_DEGREE;return e(f)||(f=new t),f.rightAscension=ie,f.declination=re,f.rotation=ne,f.rotationRate=oe,f},o}),define("Core/IauOrientationAxes",["./Cartesian3","./defined","./Iau2000Orientation","./JulianDate","./Math","./Matrix3","./Quaternion"],function(e,t,i,r,n,o,a){"use strict";function s(e){t(e)&&"function"==typeof e||(e=i.ComputeMoon),this._computeFunction=e}function l(i,r,a){var s=u;s.x=Math.cos(i+n.PI_OVER_TWO),s.y=Math.sin(i+n.PI_OVER_TWO),s.z=0;var l=Math.cos(r),h=d;h.x=l*Math.cos(i),h.y=l*Math.sin(i),h.z=Math.sin(r);var p=e.cross(h,s,c);return t(a)||(a=new o),a[0]=s.x,a[1]=p.x,a[2]=h.x,a[3]=s.y,a[4]=p.y,a[5]=h.y,a[6]=s.z,a[7]=p.z,a[8]=h.z,a}var u=new e,c=new e,d=new e,h=new o,p=new a;return s.prototype.evaluate=function(i,s){t(i)||(i=r.now());var u=this._computeFunction(i),c=l(u.rightAscension,u.declination,s),d=n.zeroToTwoPi(u.rotation),f=a.fromAxisAngle(e.UNIT_Z,d,p),m=o.fromQuaternion(a.conjugate(f,f),h);return o.multiply(m,c,c)},s}),define("Core/InterpolationAlgorithm",["./DeveloperError"],function(e){"use strict";var t={};return t.type=void 0,t.getRequiredDataPoints=e.throwInstantiationError,t.interpolateOrderZero=e.throwInstantiationError,t.interpolate=e.throwInstantiationError,t}),define("Core/PeliasGeocoderService",["./Cartesian3","./Check","./defined","./defineProperties","./GeocodeType","./Rectangle","./Resource"],function(e,t,i,r,n,o,a){"use strict";function s(e){this._url=a.createIfNeeded(e),this._url.appendForwardSlash()}return r(s.prototype,{url:{get:function(){return this._url}}}),s.prototype.geocode=function(t,r){return this._url.getDerivedResource({url:r===n.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:t}}).fetchJson().then(function(t){return t.features.map(function(t){var r,n=t.bbox;if(i(n))r=o.fromDegrees(n[0],n[1],n[2],n[3]);else{var a=t.geometry.coordinates[0],s=t.geometry.coordinates[1];r=e.fromDegrees(a,s)}return{displayName:t.properties.label,destination:r}})})},s}),define("Core/IonGeocoderService",["./Check","./Credit","./defaultValue","./defined","./defineProperties","./Ion","./PeliasGeocoderService","./Rectangle","./Resource"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){e=i(e,i.EMPTY_OBJECT);var n=i(e.accessToken,o.defaultAccessToken),s=l.createIfNeeded(i(e.server,o.defaultServer));s.appendForwardSlash();var u=o.getDefaultTokenCredit(n);r(u)&&e.scene.frameState.creditDisplay.addDefaultCredit(t.clone(u));var c=s.getDerivedResource({url:"v1/geocode"});r(n)&&c.appendQueryParameters({access_token:n}),this._accessToken=n,this._server=s,this._pelias=new a(c)}return u.prototype.geocode=function(e,t){return this._pelias.geocode(e,t)},u}),define("Core/TimeInterval",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./JulianDate"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this.start=i(e.start)?a.clone(e.start):new a,this.stop=i(e.stop)?a.clone(e.stop):new a,this.data=e.data,this.isStartIncluded=t(e.isStartIncluded,!0),this.isStopIncluded=t(e.isStopIncluded,!0)}r(s.prototype,{isEmpty:{get:function(){var e=a.compare(this.stop,this.start);return e<0||0===e&&(!this.isStartIncluded||!this.isStopIncluded)}}});var l={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};return s.fromIso8601=function(e,r){var o=e.iso8601.split("/");if(2!==o.length)throw new n("options.iso8601 is an invalid ISO 8601 interval.");var u=a.fromIso8601(o[0]),c=a.fromIso8601(o[1]),d=t(e.isStartIncluded,!0),h=t(e.isStopIncluded,!0),p=e.data;return i(r)?(r.start=u,r.stop=c,r.isStartIncluded=d,r.isStopIncluded=h,r.data=p,r):(l.start=u,l.stop=c,l.isStartIncluded=d,l.isStopIncluded=h,l.data=p,new s(l))},s.toIso8601=function(e,t){return a.toIso8601(e.start,t)+"/"+a.toIso8601(e.stop,t)},s.clone=function(e,t){if(i(e))return i(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new s(e)},s.equals=function(e,t,r){return e===t||i(e)&&i(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&a.equals(e.start,t.start)&&a.equals(e.stop,t.stop)&&(e.data===t.data||i(r)&&r(e.data,t.data)))},s.equalsEpsilon=function(e,t,r,n){return e===t||i(e)&&i(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&a.equalsEpsilon(e.start,t.start,r)&&a.equalsEpsilon(e.stop,t.stop,r)&&(e.data===t.data||i(n)&&n(e.data,t.data)))},s.intersect=function(e,t,r,n){if(!i(t))return s.clone(s.EMPTY,r);var o=e.start,l=e.stop,u=t.start,c=t.stop,d=a.greaterThanOrEquals(u,o)&&a.greaterThanOrEquals(l,u),h=!d&&a.lessThanOrEquals(u,o)&&a.lessThanOrEquals(o,c);if(!d&&!h)return s.clone(s.EMPTY,r);var p=e.isStartIncluded,f=e.isStopIncluded,m=t.isStartIncluded,_=t.isStopIncluded,g=a.lessThan(l,c);return r.start=d?u:o,r.isStartIncluded=p&&m||!a.equals(u,o)&&(d&&m||h&&p),r.stop=g?l:c,r.isStopIncluded=g?f:f&&_||!a.equals(c,l)&&_,r.data=i(n)?n(e.data,t.data):e.data,r},s.contains=function(e,t){if(e.isEmpty)return!1;var i=a.compare(e.start,t);if(0===i)return e.isStartIncluded;var r=a.compare(t,e.stop);return 0===r?e.isStopIncluded:i<0&&r<0},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e,t){return s.equals(this,e,t)},s.prototype.equalsEpsilon=function(e,t,i){return s.equalsEpsilon(this,e,t,i)},s.prototype.toString=function(){return s.toIso8601(this)},s.EMPTY=o(new s({start:new a,stop:new a,isStartIncluded:!1,isStopIncluded:!1})),s}),define("Core/Iso8601",["./freezeObject","./JulianDate","./TimeInterval"],function(e,t,i){"use strict";var r=e(t.fromIso8601("0000-01-01T00:00:00Z")),n=e(t.fromIso8601("9999-12-31T24:00:00Z"));return{MINIMUM_VALUE:r,MAXIMUM_VALUE:n,MAXIMUM_INTERVAL:e(new i({start:r,stop:n}))}}),define("Core/KeyboardEventModifier",["./freezeObject"],function(e){"use strict";return e({SHIFT:0,CTRL:1,ALT:2})}),define("Core/LagrangePolynomialApproximation",["./defined"],function(e){"use strict";var t={type:"Lagrange"};return t.getRequiredDataPoints=function(e){return Math.max(e+1,2)},t.interpolateOrderZero=function(t,i,r,n,o){e(o)||(o=new Array(n));var a,s,l=i.length;for(a=0;a<n;a++)o[a]=0;for(a=0;a<l;a++){var u=1;for(s=0;s<l;s++)if(s!==a){var c=i[a]-i[s];u*=(t-i[s])/c}for(s=0;s<n;s++)o[s]+=u*r[a*n+s]}return o},t}),define("Core/LinearApproximation",["./defined","./DeveloperError"],function(e,t){"use strict";var i={type:"Linear"};return i.getRequiredDataPoints=function(e){return 2},i.interpolateOrderZero=function(t,i,r,n,o){e(o)||(o=new Array(n));var a,s,l,u=i[0],c=i[1];for(a=0;a<n;a++)s=r[a],l=r[a+n],o[a]=((l-s)*t+c*s-u*l)/(c-u);return o},i}),define("Core/loadCRN",["../ThirdParty/when","./CompressedTextureBuffer","./defined","./DeveloperError","./Resource","./TaskProcessor"],function(e,t,i,r,n,o){"use strict";function a(r){var o;if(r instanceof ArrayBuffer||ArrayBuffer.isView(r))o=e.resolve(r);else{o=n.createIfNeeded(r).fetchArrayBuffer()}if(i(o))return o.then(function(e){if(i(e)){var t=[];return e instanceof ArrayBuffer?t.push(e):0===e.byteOffset&&e.byteLength===e.buffer.byteLength?t.push(e.buffer):(e=e.slice(0,e.length),t.push(e.buffer)),s.scheduleTask(e,t)}}).then(function(e){return t.clone(e)})}var s=new o("transcodeCRNToDXT",Number.POSITIVE_INFINITY);return a}),define("Core/loadImageFromTypedArray",["../ThirdParty/when","./Check","./defined","./defaultValue","./FeatureDetection","./Resource"],function(e,t,i,r,n,o){"use strict";function a(t){var n,a=t.uint8Array,s=t.format,l=t.request,u=r(t.flipY,!1),c=new Blob([a],{type:s});return o.supportsImageBitmapOptions().then(function(t){return t?e(o.createImageBitmapFromBlob(c,{flipY:u,premultiplyAlpha:!1})):(n=window.URL.createObjectURL(c),new o({url:n,request:l}).fetchImage({flipY:u}))}).then(function(e){return i(n)&&window.URL.revokeObjectURL(n),e}).otherwise(function(t){return i(n)&&window.URL.revokeObjectURL(n),e.reject(t)})}return a}),define("Renderer/PixelDatatype",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={UNSIGNED_BYTE:t.UNSIGNED_BYTE,UNSIGNED_SHORT:t.UNSIGNED_SHORT,UNSIGNED_INT:t.UNSIGNED_INT,FLOAT:t.FLOAT,HALF_FLOAT:t.HALF_FLOAT_OES,UNSIGNED_INT_24_8:t.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:t.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:t.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:t.UNSIGNED_SHORT_5_6_5,isPacked:function(e){return e===i.UNSIGNED_INT_24_8||e===i.UNSIGNED_SHORT_4_4_4_4||e===i.UNSIGNED_SHORT_5_5_5_1||e===i.UNSIGNED_SHORT_5_6_5},sizeInBytes:function(e){switch(e){case i.UNSIGNED_BYTE:return 1;case i.UNSIGNED_SHORT:case i.UNSIGNED_SHORT_4_4_4_4:case i.UNSIGNED_SHORT_5_5_5_1:case i.UNSIGNED_SHORT_5_6_5:case i.HALF_FLOAT:return 2;case i.UNSIGNED_INT:case i.FLOAT:case i.UNSIGNED_INT_24_8:return 4}},validate:function(e){return e===i.UNSIGNED_BYTE||e===i.UNSIGNED_SHORT||e===i.UNSIGNED_INT||e===i.FLOAT||e===i.HALF_FLOAT||e===i.UNSIGNED_INT_24_8||e===i.UNSIGNED_SHORT_4_4_4_4||e===i.UNSIGNED_SHORT_5_5_5_1||e===i.UNSIGNED_SHORT_5_6_5}};return e(i)}),define("Core/PixelFormat",["../Renderer/PixelDatatype","./freezeObject","./WebGLConstants"],function(e,t,i){"use strict";var r={DEPTH_COMPONENT:i.DEPTH_COMPONENT,DEPTH_STENCIL:i.DEPTH_STENCIL,ALPHA:i.ALPHA,RGB:i.RGB,RGBA:i.RGBA,LUMINANCE:i.LUMINANCE,LUMINANCE_ALPHA:i.LUMINANCE_ALPHA,RGB_DXT1:i.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:i.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:i.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:i.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:i.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:i.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:i.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:i.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGB_ETC1:i.COMPRESSED_RGB_ETC1_WEBGL,componentsLength:function(e){switch(e){case r.RGB:return 3;case r.RGBA:return 4;case r.LUMINANCE_ALPHA:return 2;case r.ALPHA:case r.LUMINANCE:default:return 1}},validate:function(e){return e===r.DEPTH_COMPONENT||e===r.DEPTH_STENCIL||e===r.ALPHA||e===r.RGB||e===r.RGBA||e===r.LUMINANCE||e===r.LUMINANCE_ALPHA||e===r.RGB_DXT1||e===r.RGBA_DXT1||e===r.RGBA_DXT3||e===r.RGBA_DXT5||e===r.RGB_PVRTC_4BPPV1||e===r.RGB_PVRTC_2BPPV1||e===r.RGBA_PVRTC_4BPPV1||e===r.RGBA_PVRTC_2BPPV1||e===r.RGB_ETC1},isColorFormat:function(e){return e===r.ALPHA||e===r.RGB||e===r.RGBA||e===r.LUMINANCE||e===r.LUMINANCE_ALPHA},isDepthFormat:function(e){return e===r.DEPTH_COMPONENT||e===r.DEPTH_STENCIL},isCompressedFormat:function(e){return e===r.RGB_DXT1||e===r.RGBA_DXT1||e===r.RGBA_DXT3||e===r.RGBA_DXT5||e===r.RGB_PVRTC_4BPPV1||e===r.RGB_PVRTC_2BPPV1||e===r.RGBA_PVRTC_4BPPV1||e===r.RGBA_PVRTC_2BPPV1||e===r.RGB_ETC1},isDXTFormat:function(e){return e===r.RGB_DXT1||e===r.RGBA_DXT1||e===r.RGBA_DXT3||e===r.RGBA_DXT5},isPVRTCFormat:function(e){return e===r.RGB_PVRTC_4BPPV1||e===r.RGB_PVRTC_2BPPV1||e===r.RGBA_PVRTC_4BPPV1||e===r.RGBA_PVRTC_2BPPV1},isETC1Format:function(e){return e===r.RGB_ETC1},compressedTextureSizeInBytes:function(e,t,i){switch(e){case r.RGB_DXT1:case r.RGBA_DXT1:case r.RGB_ETC1:return Math.floor((t+3)/4)*Math.floor((i+3)/4)*8;case r.RGBA_DXT3:case r.RGBA_DXT5:return Math.floor((t+3)/4)*Math.floor((i+3)/4)*16;case r.RGB_PVRTC_4BPPV1:case r.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(i,8)*4+7)/8);case r.RGB_PVRTC_2BPPV1:case r.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(i,8)*2+7)/8);default:return 0}},textureSizeInBytes:function(t,i,n,o){var a=r.componentsLength(t);return e.isPacked(i)&&(a=1),a*e.sizeInBytes(i)*n*o},alignmentInBytes:function(e,t,i){var n=r.textureSizeInBytes(e,t,i,1)%4;return 0===n?4:2===n?2:1},createTypedArray:function(t,i,n,o){var a=e.sizeInBytes(i);return new(a===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:a===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:a===Float32Array.BYTES_PER_ELEMENT&&i===e.FLOAT?Float32Array:Uint32Array)(r.componentsLength(t)*n*o)},flipY:function(e,t,i,n,o){if(1===o)return e;for(var a=r.createTypedArray(t,i,n,o),s=r.componentsLength(t),l=n*s,u=0;u<o;++u)for(var c=u*o*s,d=(o-u-1)*o*s,h=0;h<l;++h)a[d+h]=e[c+h];return a}};return t(r)}),define("Core/loadKTX",["../ThirdParty/when","./Check","./CompressedTextureBuffer","./defined","./PixelFormat","./Resource","./RuntimeError","./WebGLConstants"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){var i;if(t instanceof ArrayBuffer||ArrayBuffer.isView(t))i=e.resolve(t);else{i=o.createIfNeeded(t).fetchArrayBuffer()}if(r(i))return i.then(function(e){if(r(e))return u(e)})}function u(e){var t,o=new Uint8Array(e),l=!0;for(t=0;t<c.length;++t)if(c[t]!==o[t]){l=!1;break}if(!l)throw new a("Invalid KTX file.");var u,f;r(e.buffer)?(u=new DataView(e.buffer),f=e.byteOffset):(u=new DataView(e),f=0),f+=12;var m=u.getUint32(f,!0);if(f+=p,m!==d)throw new a("File is the wrong endianness.");var _=u.getUint32(f,!0);f+=p;var g=u.getUint32(f,!0);f+=p;var v=u.getUint32(f,!0);f+=p;var y=u.getUint32(f,!0);f+=p;var C=u.getUint32(f,!0);f+=p;var b=u.getUint32(f,!0);f+=p;var S=u.getUint32(f,!0);f+=p;var T=u.getUint32(f,!0);f+=p;var E=u.getUint32(f,!0);f+=p;var A=u.getUint32(f,!0);f+=p;var w=u.getUint32(f,!0);f+=p;var x=u.getUint32(f,!0);f+=p,f+=x;var P=u.getUint32(f,!0);f+=p;var D;if(D=r(e.buffer)?new Uint8Array(e.buffer,f,P):new Uint8Array(e,f,P),y===s.RGB8?y=n.RGB:y===s.RGBA8&&(y=n.RGBA),!n.validate(y))throw new a("glInternalFormat is not a valid format.");if(n.isCompressedFormat(y)){if(0!==_)throw new a("glType must be zero when the texture is compressed.");if(1!==g)throw new a("The type size for compressed textures must be 1.");if(0!==v)throw new a("glFormat must be zero when the texture is compressed.")}else{if(_!==s.UNSIGNED_BYTE)throw new a("Only unsigned byte buffers are supported.");if(C!==v)throw new a("The base internal format must be the same as the format for uncompressed textures.")}if(0!==T)throw new a("3D textures are unsupported.");if(0!==E)throw new a("Texture arrays are unsupported.");var I=D.byteOffset,M=new Array(w);for(t=0;t<w;++t){for(var R=M[t]={},O=0;O<A;++O){var L=b>>t,N=S>>t,F=n.isCompressedFormat(y)?n.compressedTextureSizeInBytes(y,L,N):n.textureSizeInBytes(y,_,L,N),B=new Uint8Array(D.buffer,I,F);R[h[O]]=new i(y,L,N,B),I+=F}I+=3-(I+3)%4+4}var z=M;if(1===A)for(t=0;t<w;++t)z[t]=z[t][h[0]];return 1===w&&(z=z[0]),z}var c=[171,75,84,88,32,49,49,187,13,10,26,10],d=67305985,h=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"],p=4;return l}),define("Core/ManagedArray",["./Check","./defaultValue","./defineProperties"],function(e,t,i){"use strict";function r(e){e=t(e,0),this._array=new Array(e),this._length=e}return i(r.prototype,{length:{get:function(){return this._length},set:function(e){this._length=e,e>this._array.length&&(this._array.length=e)}},values:{get:function(){return this._array}}}),r.prototype.get=function(e){return this._array[e]},r.prototype.set=function(e,t){e>=this.length&&(this.length=e+1),this._array[e]=t},r.prototype.peek=function(){return this._array[this._length-1]},r.prototype.push=function(e){var t=this.length++;this._array[t]=e},r.prototype.pop=function(){return this._array[--this.length]},r.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)},r.prototype.resize=function(e){this.length=e},r.prototype.trim=function(e){e=t(e,this.length),this._array.length=e},r}),define("Core/MapboxApi",["./Credit","./defined"],function(e,t){"use strict";var i={};i.defaultAccessToken=void 0;var r,n=!1,o="<b>This application is using Cesium's default Mapbox access token. Please create a new access token for the application as soon as possible and prior to deployment by visiting <a href=https://www.mapbox.com/account/apps/>https://www.mapbox.com/account/apps/</a>, and provide your token to Cesium by setting the Cesium.MapboxApi.defaultAccessToken property before constructing the CesiumWidget or any other object that uses the Mapbox API.</b>";return i.getAccessToken=function(e){return t(e)?e:t(i.defaultAccessToken)?i.defaultAccessToken:(n||(console.log(o),n=!0),"pk.eyJ1IjoiYW5hbHl0aWNhbGdyYXBoaWNzIiwiYSI6ImNpd204Zm4wejAwNzYyeW5uNjYyZmFwdWEifQ.7i-VIZZWX8pd1bTfxIVj9g")},i.getErrorCredit=function(n){if(!t(n)&&!t(i.defaultAccessToken))return t(r)||(r=new e(o,!0)),r},i}),define("Core/MapProjection",["./defineProperties","./DeveloperError"],function(e,t){"use strict";function i(){t.throwInstantiationError()}return e(i.prototype,{ellipsoid:{get:t.throwInstantiationError}}),i.prototype.project=t.throwInstantiationError,i.prototype.unproject=t.throwInstantiationError,i}),define("Core/mergeSort",["./defined","./DeveloperError"],function(e,t){"use strict";function i(e,t,i,r,n,s){var l,u,c=n-r+1,d=s-n,h=o,p=a;for(l=0;l<c;++l)h[l]=e[r+l];for(u=0;u<d;++u)p[u]=e[n+u+1];l=0,u=0;for(var f=r;f<=s;++f){var m=h[l],_=p[u];l<c&&(u>=d||t(m,_,i)<=0)?(e[f]=m,++l):u<d&&(e[f]=_,++u)}}function r(e,t,n,o,a){if(!(o>=a)){var s=Math.floor(.5*(o+a));r(e,t,n,o,s),r(e,t,n,s+1,a),i(e,t,n,o,s,a)}}function n(e,t,i){var n=e.length,s=Math.ceil(.5*n);o.length=s,a.length=s,r(e,t,i,0,n-1),o.length=0,a.length=0}var o=[],a=[];return n}),define("Core/NearFarScalar",["./defaultValue","./defined","./DeveloperError"],function(e,t,i){"use strict";function r(t,i,r,n){this.near=e(t,0),this.nearValue=e(i,0),this.far=e(r,1),this.farValue=e(n,0)}return r.clone=function(e,i){if(t(e))return t(i)?(i.near=e.near,i.nearValue=e.nearValue,i.far=e.far,i.farValue=e.farValue,i):new r(e.near,e.nearValue,e.far,e.farValue)},r.packedLength=4,r.pack=function(t,i,r){return r=e(r,0),i[r++]=t.near,i[r++]=t.nearValue,i[r++]=t.far,i[r]=t.farValue,i},r.unpack=function(i,n,o){return n=e(n,0),t(o)||(o=new r),o.near=i[n++],o.nearValue=i[n++],o.far=i[n++],o.farValue=i[n],o},r.equals=function(e,i){return e===i||t(e)&&t(i)&&e.near===i.near&&e.nearValue===i.nearValue&&e.far===i.far&&e.farValue===i.farValue},r.prototype.clone=function(e){return r.clone(this,e)},r.prototype.equals=function(e){return r.equals(this,e)},r}),define("Core/Visibility",["./freezeObject"],function(e){"use strict";return e({NONE:-1,PARTIAL:0,FULL:1})}),define("Core/Occluder",["./BoundingSphere","./Cartesian3","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math","./Rectangle","./Visibility"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,i){this._occluderPosition=t.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=i}var d=new t;n(c.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=t.clone(e,this._cameraPosition);var i,r,n,o=t.subtract(this._occluderPosition,e,d),a=t.magnitudeSquared(o),s=this._occluderRadius*this._occluderRadius;if(a>s){i=Math.sqrt(a-s),a=1/Math.sqrt(a),r=t.multiplyByScalar(o,a,d);var l=i*i*a;n=t.add(e,t.multiplyByScalar(r,l,d),d)}else i=Number.MAX_VALUE;this._horizonDistance=i,this._horizonPlaneNormal=r,this._horizonPlanePosition=n,this._cameraPosition=e}}}),c.fromBoundingSphere=function(e,i,n){return r(n)?(t.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=i,n):new c(e,i)};var h=new t;c.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){var i=t.subtract(e,this._occluderPosition,h),r=this._occluderRadius;if((r=t.magnitudeSquared(i)-r*r)>0)return r=Math.sqrt(r)+this._horizonDistance,i=t.subtract(e,this._cameraPosition,i),r*r>t.magnitudeSquared(i)}return!1};var p=new t;c.prototype.isBoundingSphereVisible=function(e){var i=t.clone(e.center,p),r=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){var n=t.subtract(i,this._occluderPosition,h),o=this._occluderRadius-r;if(o=t.magnitudeSquared(n)-o*o,r<this._occluderRadius)return o>0&&(o=Math.sqrt(o)+this._horizonDistance,n=t.subtract(i,this._cameraPosition,n),o*o+r*r>t.magnitudeSquared(n));if(o>0){n=t.subtract(i,this._cameraPosition,n);var a=t.magnitudeSquared(n),s=this._occluderRadius*this._occluderRadius,l=r*r;return(this._horizonDistance*this._horizonDistance+s)*l>a*s||(o=Math.sqrt(o)+this._horizonDistance)*o+l>a}return!0}return!1};var f=new t;c.prototype.computeVisibility=function(e){var i=t.clone(e.center),r=e.radius;if(r>this._occluderRadius)return u.FULL;if(this._horizonDistance!==Number.MAX_VALUE){var n=t.subtract(i,this._occluderPosition,f),o=this._occluderRadius-r,a=t.magnitudeSquared(n);if((o=a-o*o)>0){o=Math.sqrt(o)+this._horizonDistance,n=t.subtract(i,this._cameraPosition,n);var s=t.magnitudeSquared(n);return o*o+r*r<s?u.NONE:(o=this._occluderRadius+r,(o=a-o*o)>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+r*r?u.FULL:u.PARTIAL):(n=t.subtract(i,this._horizonPlanePosition,n),t.dot(n,this._horizonPlaneNormal)>-r?u.PARTIAL:u.FULL))}}return u.NONE};var m=new t;c.computeOccludeePoint=function(e,i,r){var n=t.clone(i),o=t.clone(e.center),a=e.radius,s=r.length,l=t.normalize(t.subtract(n,o,m),m),u=-t.dot(l,o),d=c._anyRotationVector(o,l,u),h=c._horizonToPlaneNormalDotProduct(e,l,u,d,r[0]);if(h){for(var p,f=1;f<s;++f){if(!(p=c._horizonToPlaneNormalDotProduct(e,l,u,d,r[f])))return;p<h&&(h=p)} -if(!(h<.0017453283658983088)){var _=a/h;return t.add(o,t.multiplyByScalar(l,_,m),m)}}};var _=[];c.computeOccludeePointFromRectangle=function(r,n){n=i(n,a.WGS84);var o=l.subsample(r,n,0,_),s=e.fromPoints(o),u=t.ZERO;if(!t.equals(u,s.center))return c.computeOccludeePoint(new e(u,n.minimumRadius),s.center,o)};var g=new t;c._anyRotationVector=function(e,i,r){var n=t.abs(i,g),o=n.x>n.y?0:1;(0===o&&n.z>n.x||1===o&&n.z>n.y)&&(o=2);var a,s=new t;0===o?(n.x=e.x,n.y=e.y+1,n.z=e.z+1,a=t.UNIT_X):1===o?(n.x=e.x+1,n.y=e.y,n.z=e.z+1,a=t.UNIT_Y):(n.x=e.x+1,n.y=e.y+1,n.z=e.z,a=t.UNIT_Z);var l=(t.dot(i,n)+r)/-t.dot(i,a);return t.normalize(t.subtract(t.add(n,t.multiplyByScalar(a,l,s),n),e,n),n)};var v=new t;c._rotationVector=function(e,i,r,n,o){var a=t.subtract(n,e,v);if(a=t.normalize(a,a),t.dot(i,a)<.9999999847691291){var l=t.cross(i,a,a);if(t.magnitude(l)>s.EPSILON13)return t.normalize(l,new t)}return o};var y=new t,C=new t,b=new t,S=new t;return c._horizonToPlaneNormalDotProduct=function(e,i,r,n,o){var a=t.clone(o,y),s=t.clone(e.center,C),l=e.radius,u=t.subtract(s,a,b),c=t.magnitudeSquared(u),d=l*l;if(c<d)return!1;var h=c-d,p=Math.sqrt(h),f=Math.sqrt(c),m=1/f,_=p*m,g=_*p;u=t.normalize(u,u);var v=t.add(a,t.multiplyByScalar(u,g,S),S),T=Math.sqrt(h-g*g),E=this._rotationVector(s,i,r,a,n),A=t.fromElements(E.x*E.x*u.x+(E.x*E.y-E.z)*u.y+(E.x*E.z+E.y)*u.z,(E.x*E.y+E.z)*u.x+E.y*E.y*u.y+(E.y*E.z-E.x)*u.z,(E.x*E.z-E.y)*u.x+(E.y*E.z+E.x)*u.y+E.z*E.z*u.z,y);A=t.normalize(A,A);var w=t.multiplyByScalar(A,T,y);E=t.normalize(t.subtract(t.add(v,w,b),s,b),b);var x=t.dot(i,E);E=t.normalize(t.subtract(t.subtract(v,w,E),s,E),E);var P=t.dot(i,E);return x<P?x:P},c}),define("Core/OffsetGeometryInstanceAttribute",["./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties"],function(e,t,i,r,n){"use strict";function o(e,t,r){e=i(e,0),t=i(t,0),r=i(r,0),this.value=new Float32Array([e,t,r])}return n(o.prototype,{componentDatatype:{get:function(){return t.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}}),o.fromCartesian3=function(e){return new o(e.x,e.y,e.z)},o.toValue=function(e,t){return r(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t},o}),define("Core/OpenCageGeocoderService",["./Cartesian3","./Check","./combine","./defaultValue","./defined","./defineProperties","./GeocodeType","./Rectangle","./Resource"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e,t,i){e=l.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=r(i,{})}return o(u.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}}}),u.prototype.geocode=function(t){return this._url.getDerivedResource({url:"json",queryParameters:i(this._params,{q:t})}).fetchJson().then(function(t){return t.results.map(function(t){var i,r=t.bounds;if(n(r))i=s.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{var o=t.geometry.lat,a=t.geometry.lng;i=e.fromDegrees(o,a)}return{displayName:t.formatted,destination:i}})})},u}),define("Core/Packable",["./DeveloperError"],function(e){"use strict";return{packedLength:void 0,pack:e.throwInstantiationError,unpack:e.throwInstantiationError}}),define("Core/PackableForInterpolation",["./DeveloperError"],function(e){"use strict";return{packedInterpolationLength:void 0,convertPackedArrayForInterpolation:e.throwInstantiationError,unpackInterpolationResult:e.throwInstantiationError}}),define("ThirdParty/measureText",[],function(){var e=function(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)};return function(t,i,r,n){var o=t.measureText(i),a=e(t.canvas,"font-family"),s=e(t.canvas,"font-size").replace("px",""),l=e(t.canvas,"font-style"),u=e(t.canvas,"font-weight"),c=!/\S/.test(i);o.fontsize=s;var d=document.createElement("div");d.style.position="absolute",d.style.opacity=0,d.style.font=l+" "+u+" "+s+"px "+a,d.innerHTML=i+"<br/>"+i,document.body.appendChild(d),o.leading=1.2*s;var h=e(d,"height");if(h=h.replace("px",""),h>=2*s&&(o.leading=h/2|0),document.body.removeChild(d),c)o.ascent=0,o.descent=0,o.bounds={minx:0,maxx:o.width,miny:0,maxy:0},o.height=0;else{var p=document.createElement("canvas");p.width=o.width+100,p.height=3*s,p.style.opacity=1,p.style.fontFamily=a,p.style.fontSize=s,p.style.fontStyle=l,p.style.fontWeight=u;var f=p.getContext("2d");f.font=l+" "+u+" "+s+"px "+a;var m=p.width,_=p.height,g=_/2;f.fillStyle="white",f.fillRect(-1,-1,m+2,_+2),r&&(f.strokeStyle="black",f.lineWidth=t.lineWidth,f.strokeText(i,50,g)),n&&(f.fillStyle="black",f.fillText(i,50,g));for(var v=f.getImageData(0,0,m,_).data,y=0,C=4*m,b=v.length;++y<b&&255===v[y];);var S=y/C|0;for(y=b-1;--y>0&&255===v[y];);var T=y/C|0;for(y=0;y<b&&255===v[y];)(y+=C)>=b&&(y=y-b+4);var E=y%C/4|0,A=1;for(y=b-3;y>=0&&255===v[y];)(y-=C)<0&&(y=b-3-4*A++);var w=y%C/4+1|0;o.ascent=g-S,o.descent=T-g,o.bounds={minx:E-50,maxx:w-50,miny:0,maxy:T-S},o.height=T-S+1}return o}}),define("Core/writeTextToCanvas",["../ThirdParty/measureText","./Color","./defaultValue","./defined","./DeveloperError"],function(e,t,i,r,n){"use strict";function o(n,o){if(""!==n){o=i(o,i.EMPTY_OBJECT);var s=i(o.font,"10px sans-serif"),l=i(o.stroke,!1),u=i(o.fill,!0),c=i(o.strokeWidth,1),d=i(o.backgroundColor,t.TRANSPARENT),h=i(o.padding,0),p=2*h,f=document.createElement("canvas");f.width=1,f.height=1,f.style.font=s;var m=f.getContext("2d");r(a)||(r(m.imageSmoothingEnabled)?a="imageSmoothingEnabled":r(m.mozImageSmoothingEnabled)?a="mozImageSmoothingEnabled":r(m.webkitImageSmoothingEnabled)?a="webkitImageSmoothingEnabled":r(m.msImageSmoothingEnabled)&&(a="msImageSmoothingEnabled")),m.font=s,m.lineJoin="round",m.lineWidth=c,m[a]=!1,m.textBaseline=i(o.textBaseline,"bottom"),f.style.visibility="hidden",document.body.appendChild(f);var _=e(m,n,l,u);f.dimensions=_,document.body.removeChild(f),f.style.visibility="";var g=-_.bounds.minx,v=Math.ceil(_.width)+g+p,y=_.height+p,C=y-_.ascent+p,b=y-C+p;if(f.width=v,f.height=y,m.font=s,m.lineJoin="round",m.lineWidth=c,m[a]=!1,d!==t.TRANSPARENT&&(m.fillStyle=d.toCssColorString(),m.fillRect(0,0,f.width,f.height)),l){var S=i(o.strokeColor,t.BLACK);m.strokeStyle=S.toCssColorString(),m.strokeText(n,g+h,b)}if(u){var T=i(o.fillColor,t.WHITE);m.fillStyle=T.toCssColorString(),m.fillText(n,g+h,b)}return f}}var a;return o}),define("Core/PinBuilder",["./buildModuleUrl","./Color","./defined","./DeveloperError","./Resource","./writeTextToCanvas"],function(e,t,i,r,n,o){"use strict";function a(){this._cache={}}function s(e,t,i){e.save(),e.scale(i/24,i/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,c).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function l(e,i,r){var n=r/2.5,o=n,a=n;i.width>i.height?a=n*(i.height/i.width):i.width<i.height&&(o=n*(i.width/i.height));var s=Math.round((r-o)/2),l=Math.round(7/24*r-a/2);e.globalCompositeOperation="destination-out",e.drawImage(i,s-1,l,o,a),e.drawImage(i,s,l-1,o,a),e.drawImage(i,s+1,l,o,a),e.drawImage(i,s,l+1,o,a),e.globalCompositeOperation="destination-over",e.fillStyle=t.BLACK.toCssColorString(),e.fillRect(s-1,l-1,o+2,a+2),e.globalCompositeOperation="destination-out",e.drawImage(i,s,l,o,a),e.globalCompositeOperation="destination-over",e.fillStyle=t.WHITE.toCssColorString(),e.fillRect(s-1,l-2,o+2,a+2)}function u(e,t,r,a,u){d[0]=e,d[1]=t,d[2]=r,d[3]=a;var c=JSON.stringify(d),h=u[c];if(i(h))return h;var p=document.createElement("canvas");p.width=a,p.height=a;var f=p.getContext("2d");if(s(f,r,a),i(e)){var m=n.createIfNeeded(e),_=m.fetchImage().then(function(e){return l(f,e,a),u[c]=p,p});return u[c]=_,_}if(i(t)){var g=o(t,{font:"bold "+a+"px sans-serif"});l(f,g,a)}return u[c]=p,p}a.prototype.fromColor=function(e,t){return u(void 0,void 0,e,t,this._cache)},a.prototype.fromUrl=function(e,t,i){return u(e,void 0,t,i,this._cache)},a.prototype.fromMakiIconId=function(t,i,r){return u(e("Assets/Textures/maki/"+encodeURIComponent(t)+".png"),void 0,i,r,this._cache)},a.prototype.fromText=function(e,t,i){return u(void 0,e,t,i,this._cache)};var c=new t,d=new Array(4);return a}),define("Core/PlaneGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./PrimitiveType","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e){e=n(e,n.EMPTY_OBJECT);var t=n(e.vertexFormat,c.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}d.packedLength=c.packedLength,d.pack=function(e,t,i){return i=n(i,0),c.pack(e._vertexFormat,t,i),t};var h=new c,p={vertexFormat:h};d.unpack=function(e,t,i){t=n(t,0);var r=c.unpack(e,t,h);return o(i)?(i._vertexFormat=c.clone(r,i._vertexFormat),i):new d(p)};var f=new t(-.5,-.5,0),m=new t(.5,.5,0);return d.createGeometry=function(i){var n,o,c=i._vertexFormat,d=new l;if(c.position){if(o=new Float64Array(12),o[0]=f.x,o[1]=f.y,o[2]=0,o[3]=m.x,o[4]=f.y,o[5]=0,o[6]=m.x,o[7]=m.y,o[8]=0,o[9]=f.x,o[10]=m.y,o[11]=0,d.position=new s({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:o}),c.normal){var h=new Float32Array(12);h[0]=0,h[1]=0,h[2]=1,h[3]=0,h[4]=0,h[5]=1,h[6]=0,h[7]=0,h[8]=1,h[9]=0,h[10]=0,h[11]=1,d.normal=new s({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:h})}if(c.st){var p=new Float32Array(8);p[0]=0,p[1]=0,p[2]=1,p[3]=0,p[4]=1,p[5]=1,p[6]=0,p[7]=1,d.st=new s({componentDatatype:r.FLOAT,componentsPerAttribute:2,values:p})}if(c.tangent){var _=new Float32Array(12);_[0]=1,_[1]=0,_[2]=0,_[3]=1,_[4]=0,_[5]=0,_[6]=1,_[7]=0,_[8]=0,_[9]=1,_[10]=0,_[11]=0,d.tangent=new s({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:_})}if(c.bitangent){var g=new Float32Array(12);g[0]=0,g[1]=1,g[2]=0,g[3]=0,g[4]=1,g[5]=0,g[6]=0,g[7]=1,g[8]=0,g[9]=0,g[10]=1,g[11]=0,d.bitangent=new s({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:g})}n=new Uint16Array(6),n[0]=0,n[1]=1,n[2]=2,n[3]=0,n[4]=2,n[5]=3}return new a({attributes:d,indices:n,primitiveType:u.TRIANGLES,boundingSphere:new e(t.ZERO,Math.sqrt(2))})},d}),define("Core/PlaneOutlineGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(){this._workerName="createPlaneOutlineGeometry"}u.packedLength=0,u.pack=function(e,t){return t},u.unpack=function(e,t,i){return n(i)?i:new u};var c=new t(-.5,-.5,0),d=new t(.5,.5,0);return u.createGeometry=function(){var i=new s,n=new Uint16Array(8),u=new Float64Array(12);return u[0]=c.x,u[1]=c.y,u[2]=c.z,u[3]=d.x,u[4]=c.y,u[5]=c.z,u[6]=d.x,u[7]=d.y,u[8]=c.z,u[9]=c.x,u[10]=d.y,u[11]=c.z,i.position=new a({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:u}),n[0]=0,n[1]=1,n[2]=1,n[3]=2,n[4]=2,n[5]=3,n[6]=3,n[7]=0,new o({attributes:i,indices:n,primitiveType:l.LINES,boundingSphere:new e(t.ZERO,Math.sqrt(2))})},u}),define("Core/pointInsideTriangle",["./barycentricCoordinates","./Cartesian3"],function(e,t){"use strict";function i(t,i,n,o){return e(t,i,n,o,r),r.x>0&&r.y>0&&r.z>0}var r=new t;return i}),define("Core/PolygonGeometry",["./ArcType","./arrayFill","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./EllipsoidTangentPlane","./Geometry","./GeometryAttribute","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix2","./Matrix3","./PolygonGeometryLibrary","./PolygonPipeline","./Quaternion","./Rectangle","./VertexFormat","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M){"use strict";function R(e,t,i,r){var n=r.cartesianToCartographic(e,k),o=n.height,a=r.cartesianToCartographic(t,V);a.height=o,r.cartographicToCartesian(a,t);var s=r.cartesianToCartographic(i,V);s.height=o-100,r.cartographicToCartesian(s,i)}function O(e){var i=e.vertexFormat,r=e.geometry,a=e.shadowVolume,s=r.attributes.position.values,u=s.length,d=e.wall,h=e.top||d,p=e.bottom||d;if(i.st||i.normal||i.tangent||i.bitangent||a){var f=e.boundingRectangle,m=e.tangentPlane,_=e.ellipsoid,g=e.stRotation,y=e.perPositionHeight,b=Z;b.x=f.x,b.y=f.y;var S,E=i.st?new Float32Array(u/3*2):void 0;i.normal&&(S=y&&h&&!d?r.attributes.normal.values:new Float32Array(u));var w=i.tangent?new Float32Array(u):void 0,x=i.bitangent?new Float32Array(u):void 0,D=a?new Float32Array(u):void 0,I=0,M=0,O=H,L=W,N=q,F=!0,B=te,z=ie;if(0!==g){var k=P.fromAxisAngle(m._plane.normal,g,ee);B=A.fromQuaternion(k,B),k=P.fromAxisAngle(m._plane.normal,-g,ee),z=A.fromQuaternion(k,z)}else B=A.clone(A.IDENTITY,B),z=A.clone(A.IDENTITY,z);var V=0,U=0;h&&p&&(V=u/2,U=u/3,u/=2);for(var re=0;re<u;re+=3){var ne=o.fromArray(s,re,$);if(i.st){var oe=A.multiplyByVector(B,ne,G);oe=_.scaleToGeodeticSurface(oe,oe);var ae=m.projectPointOntoPlane(oe,J);n.subtract(ae,b,ae);var se=T.clamp(ae.x/f.width,0,1),le=T.clamp(ae.y/f.height,0,1);p&&(E[I+U]=se,E[I+1+U]=le),h&&(E[I]=se,E[I+1]=le),I+=2}if(i.normal||i.tangent||i.bitangent||a){var ue=M+1,ce=M+2;if(d){if(re+3<u){var de=o.fromArray(s,re+3,Y);if(F){var he=o.fromArray(s,re+u,j);y&&R(ne,de,he,_),o.subtract(de,ne,de),o.subtract(he,ne,he),O=o.normalize(o.cross(he,de,O),O),F=!1}o.equalsEpsilon(de,ne,T.EPSILON10)&&(F=!0)}(i.tangent||i.bitangent)&&(N=_.geodeticSurfaceNormal(ne,N),i.tangent&&(L=o.normalize(o.cross(N,O,L),L)))}else O=_.geodeticSurfaceNormal(ne,O),(i.tangent||i.bitangent)&&(y&&(X=o.fromArray(S,M,X),Q=o.cross(o.UNIT_Z,X,Q),Q=o.normalize(A.multiplyByVector(z,Q,Q),Q),i.bitangent&&(K=o.normalize(o.cross(X,Q,K),K))),L=o.cross(o.UNIT_Z,O,L),L=o.normalize(A.multiplyByVector(z,L,L),L),i.bitangent&&(N=o.normalize(o.cross(O,L,N),N)));i.normal&&(e.wall?(S[M+V]=O.x,S[ue+V]=O.y,S[ce+V]=O.z):p&&(S[M+V]=-O.x,S[ue+V]=-O.y,S[ce+V]=-O.z),(h&&!y||d)&&(S[M]=O.x,S[ue]=O.y,S[ce]=O.z)),a&&(d&&(O=_.geodeticSurfaceNormal(ne,O)),D[M+V]=-O.x,D[ue+V]=-O.y,D[ce+V]=-O.z),i.tangent&&(e.wall?(w[M+V]=L.x,w[ue+V]=L.y,w[ce+V]=L.z):p&&(w[M+V]=-L.x,w[ue+V]=-L.y,w[ce+V]=-L.z),h&&(y?(w[M]=Q.x,w[ue]=Q.y,w[ce]=Q.z):(w[M]=L.x,w[ue]=L.y,w[ce]=L.z))),i.bitangent&&(p&&(x[M+V]=N.x,x[ue+V]=N.y,x[ce+V]=N.z),h&&(y?(x[M]=K.x,x[ue]=K.y,x[ce]=K.z):(x[M]=N.x,x[ue]=N.y,x[ce]=N.z))),M+=3}}i.st&&(r.attributes.st=new v({componentDatatype:l.FLOAT,componentsPerAttribute:2,values:E})),i.normal&&(r.attributes.normal=new v({componentDatatype:l.FLOAT,componentsPerAttribute:3,values:S})),i.tangent&&(r.attributes.tangent=new v({componentDatatype:l.FLOAT,componentsPerAttribute:3,values:w})),i.bitangent&&(r.attributes.bitangent=new v({componentDatatype:l.FLOAT,componentsPerAttribute:3,values:x})),a&&(r.attributes.extrudeDirection=new v({componentDatatype:l.FLOAT,componentsPerAttribute:3,values:D}))}if(e.extrude&&c(e.offsetAttribute)){var pe=s.length/3,fe=new Uint8Array(pe);if(e.offsetAttribute===C.TOP)h&&p||d?fe=t(fe,1,0,pe/2):h&&(fe=t(fe,1));else{var me=e.offsetAttribute===C.NONE?0:1;fe=t(fe,me)}r.attributes.applyOffset=new v({componentDatatype:l.UNSIGNED_BYTE,componentsPerAttribute:1,values:fe})}return r}function L(t,i,r,n,o){if(o=u(o,new D),!c(t)||t.length<3)return o.west=0,o.north=0,o.south=0,o.east=0,o;if(r===e.RHUMB)return D.fromCartesianArray(t,i,o);ae.ellipsoid.equals(i)||(ae=new f(void 0,void 0,i)),o.west=Number.POSITIVE_INFINITY,o.east=Number.NEGATIVE_INFINITY,o.south=Number.POSITIVE_INFINITY,o.north=Number.NEGATIVE_INFINITY,oe.westOverIDL=Number.POSITIVE_INFINITY,oe.eastOverIDL=Number.NEGATIVE_INFINITY;for(var a,s=1/T.chordLength(n,i.maximumRadius),l=t.length,d=i.cartesianToCartographic(t[0],ne),h=re,p=1;p<l;p++)a=h,h=d,d=i.cartesianToCartographic(t[p],a),ae.setEndPoints(h,d),N(ae,s,o,oe);return a=h,h=d,d=i.cartesianToCartographic(t[0],a),ae.setEndPoints(h,d),N(ae,s,o,oe),o.east-o.west>oe.eastOverIDL-oe.westOverIDL&&(o.west=oe.westOverIDL,o.east=oe.eastOverIDL,o.east>T.PI&&(o.east=o.east-T.TWO_PI),o.west>T.PI&&(o.west=o.west-T.TWO_PI)),o}function N(e,t,i,r){for(var n=e.surfaceDistance,o=Math.ceil(n*t),a=o>0?n/(o-1):Number.POSITIVE_INFINITY,s=0,l=0;l<o;l++){var u=e.interpolateUsingSurfaceDistance(s,se);s+=a;var c=u.longitude,d=u.latitude;i.west=Math.min(i.west,c),i.east=Math.max(i.east,c),i.south=Math.min(i.south,d),i.north=Math.max(i.north,d);var h=c>=0?c:c+T.TWO_PI;r.westOverIDL=Math.min(r.westOverIDL,h),r.eastOverIDL=Math.max(r.eastOverIDL,h)}}function F(e,t,i,r,n,o,a,s,l){var u,c={walls:[]};if(o||a){var d,h,p=w.createGeometryFromPositions(e,t,i,n,s,l),f=p.attributes.position.values,m=p.indices;if(o&&a){var g=f.concat(f);d=g.length/3,h=S.createTypedArray(d,2*m.length),h.set(m);var v=m.length,C=d/2;for(u=0;u<v;u+=3){var b=h[u]+C,T=h[u+1]+C,E=h[u+2]+C;h[u+v]=E,h[u+1+v]=T,h[u+2+v]=b}if(p.attributes.position.values=g,n&&s.normal){var A=p.attributes.normal.values;p.attributes.normal.values=new Float32Array(g.length),p.attributes.normal.values.set(A)}p.indices=h}else if(a){for(d=f.length/3,h=S.createTypedArray(d,m.length),u=0;u<m.length;u+=3)h[u]=m[u+2],h[u+1]=m[u+1],h[u+2]=m[u];p.indices=h}c.topAndBottom=new y({geometry:p})}var P=r.outerRing,D=_.fromPoints(P,e),I=D.projectPointsOntoPlane(P,le),R=x.computeWindingOrder2D(I);R===M.CLOCKWISE&&(P=P.slice().reverse());var O=w.computeWallGeometry(P,e,i,n,l);c.walls.push(new y({geometry:O}));var L=r.holes;for(u=0;u<L.length;u++){var N=L[u];D=_.fromPoints(N,e),I=D.projectPointsOntoPlane(N,le),R=x.computeWindingOrder2D(I),R===M.COUNTER_CLOCKWISE&&(N=N.slice().reverse()),O=w.computeWallGeometry(N,e,i,n,l),c.walls.push(new y({geometry:O}))}return c}function B(t){var i=t.polygonHierarchy,r=u(t.vertexFormat,I.DEFAULT),n=u(t.ellipsoid,p.WGS84),o=u(t.granularity,T.RADIANS_PER_DEGREE),a=u(t.stRotation,0),s=u(t.perPositionHeight,!1),l=s&&c(t.extrudedHeight),d=u(t.height,0),h=u(t.extrudedHeight,d);if(!l){var f=Math.max(d,h);h=Math.min(d,h),d=f}this._vertexFormat=I.clone(r),this._ellipsoid=p.clone(n),this._granularity=o,this._stRotation=a,this._height=d,this._extrudedHeight=h,this._closeTop=u(t.closeTop,!0),this._closeBottom=u(t.closeBottom,!0),this._polygonHierarchy=i,this._perPositionHeight=s,this._perPositionHeightExtrude=l,this._shadowVolume=u(t.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=t.offsetAttribute,this._arcType=u(t.arcType,e.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this.packedLength=w.computeHierarchyPackedLength(i)+p.packedLength+I.packedLength+12}function z(e){var t=-e._stRotation;if(0===t)return[0,0,0,1,1,0];var i=e._ellipsoid,r=e._polygonHierarchy.positions,n=e.rectangle;return g._textureCoordinateRotationPoints(r,t,i,n)}var k=new a,V=new a,U=new i,G=new o,H=new o,W=new o,q=new o,Y=new o,j=new o,X=new o,Q=new o,K=new o,Z=new n,J=new n,$=new o,ee=new P,te=new A,ie=new A,re=new a,ne=new a,oe={westOverIDL:0,eastOverIDL:0},ae=new f,se=new a,le=[];B.fromPositions=function(e){return e=u(e,u.EMPTY_OBJECT),new B({polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType})},B.pack=function(e,t,i){return i=u(i,0),i=w.packPolygonHierarchy(e._polygonHierarchy,t,i),p.pack(e._ellipsoid,t,i),i+=p.packedLength,I.pack(e._vertexFormat,t,i),i+=I.packedLength,t[i++]=e._height,t[i++]=e._extrudedHeight,t[i++]=e._granularity,t[i++]=e._stRotation,t[i++]=e._perPositionHeightExtrude?1:0,t[i++]=e._perPositionHeight?1:0,t[i++]=e._closeTop?1:0,t[i++]=e._closeBottom?1:0,t[i++]=e._shadowVolume?1:0,t[i++]=u(e._offsetAttribute,-1),t[i++]=e._arcType,t[i]=e.packedLength,t};var ue=p.clone(p.UNIT_SPHERE),ce=new I,de={polygonHierarchy:{}};return B.unpack=function(e,t,i){t=u(t,0);var r=w.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var n=p.unpack(e,t,ue);t+=p.packedLength;var o=I.unpack(e,t,ce);t+=I.packedLength;var a=e[t++],s=e[t++],l=e[t++],d=e[t++],h=1===e[t++],f=1===e[t++],m=1===e[t++],_=1===e[t++],g=1===e[t++],v=e[t++],y=e[t++],C=e[t];return c(i)||(i=new B(de)),i._polygonHierarchy=r,i._ellipsoid=p.clone(n,i._ellipsoid),i._vertexFormat=I.clone(o,i._vertexFormat),i._height=a,i._extrudedHeight=s,i._granularity=l,i._stRotation=d,i._perPositionHeightExtrude=h,i._perPositionHeight=f,i._closeTop=m,i._closeBottom=_,i._shadowVolume=g,i._offsetAttribute=-1===v?void 0:v,i._arcType=y,i.packedLength=C,i},B.computeRectangle=function(t,i){var r=u(t.granularity,T.RADIANS_PER_DEGREE),n=u(t.arcType,e.GEODESIC),o=t.polygonHierarchy,a=u(t.ellipsoid,p.WGS84);return L(o.positions,a,n,r,i)},B.createGeometry=function(e){var i=e._vertexFormat,n=e._ellipsoid,o=e._granularity,a=e._stRotation,s=e._polygonHierarchy,u=e._perPositionHeight,d=e._closeTop,h=e._closeBottom,p=e._arcType,f=s.positions;if(!(f.length<3)){var m=_.fromPoints(f,n),E=w.polygonsFromHierarchy(s,m.projectPointsOntoPlane.bind(m),!u,n),A=E.hierarchy,P=E.polygons;if(0!==A.length){f=A[0].outerRing;var D,I=w.computeBoundingRectangle(m.plane.normal,m.projectPointOntoPlane.bind(m),f,a,U),M=[],R=e._height,L=e._extrudedHeight,N=e._perPositionHeightExtrude||!T.equalsEpsilon(R,L,0,T.EPSILON2),B={perPositionHeight:u,vertexFormat:i,geometry:void 0,tangentPlane:m,boundingRectangle:I,ellipsoid:n,stRotation:a,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:p};if(N)for(B.extrude=!0,B.top=d,B.bottom=h,B.shadowVolume=e._shadowVolume,B.offsetAttribute=e._offsetAttribute,D=0;D<P.length;D++){var z,k=F(n,P[D],o,A[D],u,d,h,i,p);d&&h?(z=k.topAndBottom,B.geometry=w.scaleToGeodeticHeightExtruded(z.geometry,R,L,n,u)):d?(z=k.topAndBottom,z.geometry.attributes.position.values=x.scaleToGeodeticHeight(z.geometry.attributes.position.values,R,n,!u),B.geometry=z.geometry):h&&(z=k.topAndBottom,z.geometry.attributes.position.values=x.scaleToGeodeticHeight(z.geometry.attributes.position.values,L,n,!0),B.geometry=z.geometry),(d||h)&&(B.wall=!1,z.geometry=O(B),M.push(z));var V=k.walls;B.wall=!0;for(var G=0;G<V.length;G++){var H=V[G];B.geometry=w.scaleToGeodeticHeightExtruded(H.geometry,R,L,n,u),H.geometry=O(B),M.push(H)}}else for(D=0;D<P.length;D++){var W=new y({geometry:w.createGeometryFromPositions(n,P[D],o,u,i,p)});if(W.geometry.attributes.position.values=x.scaleToGeodeticHeight(W.geometry.attributes.position.values,R,n,!u),B.geometry=W.geometry,W.geometry=O(B),c(e._offsetAttribute)){var q=W.geometry.attributes.position.values.length,Y=new Uint8Array(q/3),j=e._offsetAttribute===C.NONE?0:1;t(Y,j),W.geometry.attributes.applyOffset=new v({componentDatatype:l.UNSIGNED_BYTE,componentsPerAttribute:1,values:Y})}M.push(W)}var X=b.combineInstances(M)[0];X.attributes.position.values=new Float64Array(X.attributes.position.values),X.indices=S.createTypedArray(X.attributes.position.values.length/3,X.indices);var Q=X.attributes,K=r.fromVertices(Q.position.values);return i.position||delete Q.position,new g({attributes:Q,indices:X.indices,primitiveType:X.primitiveType,boundingSphere:K,offsetAttribute:e._offsetAttribute})}}},B.createShadowVolume=function(e,t,i){var r=e._granularity,n=e._ellipsoid,o=t(r,n),a=i(r,n);return new B({polygonHierarchy:e._polygonHierarchy,ellipsoid:n,stRotation:e._stRotation,granularity:r,perPositionHeight:!1,extrudedHeight:o,height:a,vertexFormat:I.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})},d(B.prototype,{rectangle:{get:function(){if(!c(this._rectangle)){var e=this._polygonHierarchy.positions;this._rectangle=L(e,this._ellipsoid,this._arcType,this._granularity)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return c(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=z(this)),this._textureCoordinateRotationPoints}}}),B}),define("Core/PolygonHierarchy",["./defined"],function(e){"use strict";function t(t,i){this.positions=e(t)?t:[],this.holes=e(i)?i:[]}return t}),define("Core/PolygonOutlineGeometry",["./ArcType","./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType","./Queue","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E){"use strict";function A(t,i,r,n,o){var s=d.fromPoints(i,t),l=s.projectPointsOntoPlane(i,P);b.computeWindingOrder2D(l)===E.CLOCKWISE&&(l.reverse(),i=i.slice().reverse());var u,c,_=i.length,g=0;if(n)for(u=new Float64Array(2*_*3),c=0;c<_;c++){var y=i[c],T=i[(c+1)%_];u[g++]=y.x,u[g++]=y.y,u[g++]=y.z,u[g++]=T.x,u[g++]=T.y,u[g++]=T.z}else{var A=0;if(o===e.GEODESIC)for(c=0;c<_;c++)A+=C.subdivideLineCount(i[c],i[(c+1)%_],r);else if(o===e.RHUMB)for(c=0;c<_;c++)A+=C.subdivideRhumbLineCount(t,i[c],i[(c+1)%_],r);for(u=new Float64Array(3*A),c=0;c<_;c++){var w;o===e.GEODESIC?w=C.subdivideLine(i[c],i[(c+1)%_],r,D):o===e.RHUMB&&(w=C.subdivideRhumbLine(t,i[c],i[(c+1)%_],r,D));for(var x=w.length,I=0;I<x;++I)u[g++]=w[I]}}_=u.length/3;var M=2*_,R=v.createTypedArray(_,M);for(g=0,c=0;c<_-1;c++)R[g++]=c,R[g++]=c+1;return R[g++]=_-1,R[g++]=0,new m({geometry:new h({attributes:new f({position:new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:u})}),indices:R,primitiveType:S.LINES})})}function w(t,i,r,n,o){var s=d.fromPoints(i,t),l=s.projectPointsOntoPlane(i,P);b.computeWindingOrder2D(l)===E.CLOCKWISE&&(l.reverse(),i=i.slice().reverse());var u,c,_=i.length,g=new Array(_),y=0;if(n)for(u=new Float64Array(2*_*3*2),c=0;c<_;++c){g[c]=y/3;var T=i[c],A=i[(c+1)%_];u[y++]=T.x,u[y++]=T.y,u[y++]=T.z,u[y++]=A.x,u[y++]=A.y,u[y++]=A.z}else{var w=0;if(o===e.GEODESIC)for(c=0;c<_;c++)w+=C.subdivideLineCount(i[c],i[(c+1)%_],r);else if(o===e.RHUMB)for(c=0;c<_;c++)w+=C.subdivideRhumbLineCount(t,i[c],i[(c+1)%_],r);for(u=new Float64Array(3*w*2),c=0;c<_;++c){g[c]=y/3;var x;o===e.GEODESIC?x=C.subdivideLine(i[c],i[(c+1)%_],r,D):o===e.RHUMB&&(x=C.subdivideRhumbLine(t,i[c],i[(c+1)%_],r,D));for(var I=x.length,M=0;M<I;++M)u[y++]=x[M]}}_=u.length/6;var R=g.length,O=2*(2*_+R),L=v.createTypedArray(_+R,O);for(y=0,c=0;c<_;++c)L[y++]=c,L[y++]=(c+1)%_,L[y++]=c+_,L[y++]=(c+1)%_+_;for(c=0;c<R;c++){var N=g[c];L[y++]=N,L[y++]=N+_}return new m({geometry:new h({attributes:new f({position:new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:u})}),indices:L,primitiveType:S.LINES})})}function x(t){var i=t.polygonHierarchy,r=s(t.ellipsoid,c.WGS84),n=s(t.granularity,y.RADIANS_PER_DEGREE),o=s(t.perPositionHeight,!1),a=o&&l(t.extrudedHeight),u=s(t.arcType,e.GEODESIC),d=s(t.height,0),h=s(t.extrudedHeight,d);if(!a){var p=Math.max(d,h);h=Math.min(d,h),d=p}this._ellipsoid=c.clone(r),this._granularity=n,this._height=d,this._extrudedHeight=h,this._arcType=u,this._polygonHierarchy=i,this._perPositionHeight=o,this._perPositionHeightExtrude=a,this._offsetAttribute=t.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=C.computeHierarchyPackedLength(i)+c.packedLength+8}var P=[],D=[];x.pack=function(e,t,i){return i=s(i,0),i=C.packPolygonHierarchy(e._polygonHierarchy,t,i),c.pack(e._ellipsoid,t,i),i+=c.packedLength,t[i++]=e._height,t[i++]=e._extrudedHeight,t[i++]=e._granularity,t[i++]=e._perPositionHeightExtrude?1:0,t[i++]=e._perPositionHeight?1:0,t[i++]=e._arcType,t[i++]=s(e._offsetAttribute,-1),t[i]=e.packedLength,t};var I=c.clone(c.UNIT_SPHERE),M={polygonHierarchy:{}};return x.unpack=function(e,t,i){t=s(t,0);var r=C.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var n=c.unpack(e,t,I);t+=c.packedLength;var o=e[t++],a=e[t++],u=e[t++],d=1===e[t++],h=1===e[t++],p=e[t++],f=e[t++],m=e[t];return l(i)||(i=new x(M)),i._polygonHierarchy=r,i._ellipsoid=c.clone(n,i._ellipsoid),i._height=o,i._extrudedHeight=a,i._granularity=u,i._perPositionHeight=h,i._perPositionHeightExtrude=d,i._arcType=p,i._offsetAttribute=-1===f?void 0:f,i.packedLength=m,i},x.fromPositions=function(e){return e=s(e,s.EMPTY_OBJECT),new x({polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute})},x.createGeometry=function(e){var i=e._ellipsoid,n=e._granularity,o=e._polygonHierarchy,s=e._perPositionHeight,u=e._arcType,c=C.polygonOutlinesFromHierarchy(o,!s,i);if(0!==c.length){var d,f,m,v=[],S=y.chordLength(n,i.maximumRadius),T=e._height,E=e._extrudedHeight,x=e._perPositionHeightExtrude||!y.equalsEpsilon(T,E,0,y.EPSILON2);if(x)for(m=0;m<c.length;m++){if(d=w(i,c[m],S,s,u),d.geometry=C.scaleToGeodeticHeightExtruded(d.geometry,T,E,i,s),l(e._offsetAttribute)){var P=d.geometry.attributes.position.values.length/3,D=new Uint8Array(P);e._offsetAttribute===_.TOP?D=t(D,1,0,P/2):(f=e._offsetAttribute===_.NONE?0:1,D=t(D,f)),d.geometry.attributes.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:D})}v.push(d)}else for(m=0;m<c.length;m++){if(d=A(i,c[m],S,s,u),d.geometry.attributes.position.values=b.scaleToGeodeticHeight(d.geometry.attributes.position.values,T,i,!s),l(e._offsetAttribute)){var I=d.geometry.attributes.position.values.length,M=new Uint8Array(I/3);f=e._offsetAttribute===_.NONE?0:1,t(M,f),d.geometry.attributes.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}v.push(d)}var R=g.combineInstances(v)[0],O=r.fromVertices(R.attributes.position.values);return new h({attributes:R.attributes,indices:R.indices,primitiveType:R.primitiveType,boundingSphere:O,offsetAttribute:e._offsetAttribute})}},x}),define("Core/PolylineGeometry",["./ArcType","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Color","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryType","./IndexDatatype","./Math","./PolylinePipeline","./PrimitiveType","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(e,t,i,r,o){var a=b;a.length=o;var s,l=i.red,u=i.green,c=i.blue,d=i.alpha,h=r.red,p=r.green,f=r.blue,m=r.alpha;if(n.equals(i,r)){for(s=0;s<o;s++)a[s]=n.clone(i);return a}var _=(h-l)/o,g=(p-u)/o,v=(f-c)/o,y=(m-d)/o;for(s=0;s<o;s++)a[s]=new n(l+s*_,u+s*g,c+s*v,d+s*y);return a}function C(t){t=a(t,a.EMPTY_OBJECT);var i=t.positions,o=t.colors,l=a(t.width,1),c=a(t.colorsPerVertex,!1);this._positions=i,this._colors=o,this._width=l,this._colorsPerVertex=c,this._vertexFormat=v.clone(a(t.vertexFormat,v.DEFAULT)),this._arcType=a(t.arcType,e.GEODESIC),this._granularity=a(t.granularity,m.RADIANS_PER_DEGREE),this._ellipsoid=u.clone(a(t.ellipsoid,u.WGS84)),this._workerName="createPolylineGeometry";var d=1+i.length*r.packedLength;d+=s(o)?1+o.length*n.packedLength:1,this.packedLength=d+u.packedLength+v.packedLength+4}var b=[];C.pack=function(e,t,i){i=a(i,0);var o,l=e._positions,c=l.length;for(t[i++]=c,o=0;o<c;++o,i+=r.packedLength)r.pack(l[o],t,i);var d=e._colors;for(c=s(d)?d.length:0,t[i++]=c,o=0;o<c;++o,i+=n.packedLength)n.pack(d[o],t,i);return u.pack(e._ellipsoid,t,i),i+=u.packedLength,v.pack(e._vertexFormat,t,i),i+=v.packedLength,t[i++]=e._width,t[i++]=e._colorsPerVertex?1:0,t[i++]=e._arcType,t[i]=e._granularity,t};var S=u.clone(u.UNIT_SPHERE),T=new v,E={positions:void 0,colors:void 0,ellipsoid:S,vertexFormat:T,width:void 0,colorsPerVertex:void 0,arcType:void 0, -granularity:void 0};C.unpack=function(e,t,i){t=a(t,0);var o,l=e[t++],c=new Array(l);for(o=0;o<l;++o,t+=r.packedLength)c[o]=r.unpack(e,t);l=e[t++];var d=l>0?new Array(l):void 0;for(o=0;o<l;++o,t+=n.packedLength)d[o]=n.unpack(e,t);var h=u.unpack(e,t,S);t+=u.packedLength;var p=v.unpack(e,t,T);t+=v.packedLength;var f=e[t++],m=1===e[t++],_=e[t++],g=e[t];return s(i)?(i._positions=c,i._colors=d,i._ellipsoid=u.clone(h,i._ellipsoid),i._vertexFormat=v.clone(p,i._vertexFormat),i._width=f,i._colorsPerVertex=m,i._arcType=_,i._granularity=g,i):(E.positions=c,E.colors=d,E.width=f,E.colorsPerVertex=m,E.arcType=_,E.granularity=g,new C(E))};var A=new r,w=new r,x=new r,P=new r;return C.createGeometry=function(a){var l,u,v,C=a._width,S=a._vertexFormat,T=a._colors,E=a._colorsPerVertex,D=a._arcType,I=a._granularity,M=a._ellipsoid,R=t(a._positions,r.equalsEpsilon),O=R.length;if(!(O<2||C<=0)){if(D===e.GEODESIC||D===e.RHUMB){var L,N;D===e.GEODESIC?(L=m.chordLength(I,M.maximumRadius),N=_.numberOfPoints):(L=I,N=_.numberOfPointsRhumbLine);var F=_.extractHeights(R,M);if(s(T)){var B=1;for(l=0;l<O-1;++l)B+=N(R[l],R[l+1],L);var z=new Array(B),k=0;for(l=0;l<O-1;++l){var V=R[l],U=R[l+1],G=T[l],H=N(V,U,L);if(E&&l<B){var W=T[l+1],q=y(V,U,G,W,H),Y=q.length;for(u=0;u<Y;++u)z[k++]=q[u]}else for(u=0;u<H;++u)z[k++]=n.clone(G)}z[k]=n.clone(T[T.length-1]),T=z,b.length=0}R=D===e.GEODESIC?_.generateCartesianArc({positions:R,minDistance:L,ellipsoid:M,height:F}):_.generateCartesianRhumbArc({positions:R,granularity:L,ellipsoid:M,height:F})}O=R.length;var j,X=4*O-4,Q=new Float64Array(3*X),K=new Float64Array(3*X),Z=new Float64Array(3*X),J=new Float32Array(2*X),$=S.st?new Float32Array(2*X):void 0,ee=s(T)?new Uint8Array(4*X):void 0,te=0,ie=0,re=0,ne=0;for(u=0;u<O;++u){0===u?(j=A,r.subtract(R[0],R[1],j),r.add(R[0],j,j)):j=R[u-1],r.clone(j,x),r.clone(R[u],w),u===O-1?(j=A,r.subtract(R[O-1],R[O-2],j),r.add(R[O-1],j,j)):j=R[u+1],r.clone(j,P);var oe,ae;s(ee)&&(oe=0===u||E?T[u]:T[u-1],u!==O-1&&(ae=T[u]));var se=0===u?2:0,le=u===O-1?2:4;for(v=se;v<le;++v){r.pack(w,Q,te),r.pack(x,K,te),r.pack(P,Z,te),te+=3;var ue=v-2<0?-1:1;if(J[ie++]=v%2*2-1,J[ie++]=ue*C,S.st&&($[re++]=u/(O-1),$[re++]=Math.max(J[ie-2],0)),s(ee)){var ce=v<2?oe:ae;ee[ne++]=n.floatToByte(ce.red),ee[ne++]=n.floatToByte(ce.green),ee[ne++]=n.floatToByte(ce.blue),ee[ne++]=n.floatToByte(ce.alpha)}}}var de=new h;de.position=new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:Q}),de.prevPosition=new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:K}),de.nextPosition=new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:Z}),de.expandAndWidth=new d({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:J}),S.st&&(de.st=new d({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:$})),s(ee)&&(de.color=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:4,values:ee,normalize:!0}));var he=f.createTypedArray(X,6*O-6),pe=0,fe=0,me=O-1;for(u=0;u<me;++u)he[fe++]=pe,he[fe++]=pe+2,he[fe++]=pe+1,he[fe++]=pe+1,he[fe++]=pe+2,he[fe++]=pe+3,pe+=4;return new c({attributes:de,indices:he,primitiveType:g.TRIANGLES,boundingSphere:i.fromPoints(R),geometryType:p.POLYLINES})}},C}),define("Core/PolylineVolumeGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CornerType","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./oneTimeWarning","./PolygonPipeline","./PolylineVolumeGeometryLibrary","./PrimitiveType","./VertexFormat","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e,t,r,n){var a=new p;n.position&&(a.position=new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:e}));var s,l,u,c,_,y,b=t.length,S=e.length/3,T=(S-2*b)/(2*b),E=v.triangulate(t),A=(T-1)*b*6+2*E.length,w=m.createTypedArray(S,A),x=2*b,P=0;for(s=0;s<T-1;s++){for(l=0;l<b-1;l++)u=2*l+s*b*2,y=u+x,c=u+1,_=c+x,w[P++]=c,w[P++]=u,w[P++]=_,w[P++]=_,w[P++]=u,w[P++]=y;u=2*b-2+s*b*2,c=u+1,_=c+x,y=u+x,w[P++]=c,w[P++]=u,w[P++]=_,w[P++]=_,w[P++]=u,w[P++]=y}if(n.st||n.tangent||n.bitangent){var D,I,M=new Float32Array(2*S),R=1/(T-1),O=1/r.height,L=r.height/2,N=0;for(s=0;s<T;s++){for(D=s*R,I=O*(t[0].y+L),M[N++]=D,M[N++]=I,l=1;l<b;l++)I=O*(t[l].y+L),M[N++]=D,M[N++]=I,M[N++]=D,M[N++]=I;I=O*(t[0].y+L),M[N++]=D,M[N++]=I}for(l=0;l<b;l++)D=0,I=O*(t[l].y+L),M[N++]=D,M[N++]=I;for(l=0;l<b;l++)D=(T-1)*R,I=O*(t[l].y+L),M[N++]=D,M[N++]=I;a.st=new h({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:new Float32Array(M)})}var F=S-2*b;for(s=0;s<E.length;s+=3){var B=E[s]+F,z=E[s+1]+F,k=E[s+2]+F;w[P++]=B,w[P++]=z,w[P++]=k,w[P++]=k+b,w[P++]=z+b,w[P++]=B+b}var V=new d({attributes:a,indices:w,boundingSphere:i.fromVertices(e),primitiveType:C.TRIANGLES});if(n.normal&&(V=f.computeNormal(V)),n.tangent||n.bitangent){try{V=f.computeTangentAndBitangent(V)}catch(e){g("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}n.tangent||(V.attributes.tangent=void 0),n.bitangent||(V.attributes.bitangent=void 0),n.st||(V.attributes.st=void 0)}return V}function E(e){e=s(e,s.EMPTY_OBJECT);var t=e.polylinePositions,i=e.shapePositions;this._positions=t,this._shape=i,this._ellipsoid=c.clone(s(e.ellipsoid,c.WGS84)),this._cornerType=s(e.cornerType,a.ROUNDED),this._vertexFormat=b.clone(s(e.vertexFormat,b.DEFAULT)),this._granularity=s(e.granularity,_.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";var o=1+t.length*n.packedLength;o+=1+i.length*r.packedLength,this.packedLength=o+c.packedLength+b.packedLength+2}E.pack=function(e,t,i){i=s(i,0);var o,a=e._positions,l=a.length;for(t[i++]=l,o=0;o<l;++o,i+=n.packedLength)n.pack(a[o],t,i);var u=e._shape;for(l=u.length,t[i++]=l,o=0;o<l;++o,i+=r.packedLength)r.pack(u[o],t,i);return c.pack(e._ellipsoid,t,i),i+=c.packedLength,b.pack(e._vertexFormat,t,i),i+=b.packedLength,t[i++]=e._cornerType,t[i]=e._granularity,t};var A=c.clone(c.UNIT_SPHERE),w=new b,x={polylinePositions:void 0,shapePositions:void 0,ellipsoid:A,vertexFormat:w,cornerType:void 0,granularity:void 0};E.unpack=function(e,t,i){t=s(t,0);var o,a=e[t++],u=new Array(a);for(o=0;o<a;++o,t+=n.packedLength)u[o]=n.unpack(e,t);a=e[t++];var d=new Array(a);for(o=0;o<a;++o,t+=r.packedLength)d[o]=r.unpack(e,t);var h=c.unpack(e,t,A);t+=c.packedLength;var p=b.unpack(e,t,w);t+=b.packedLength;var f=e[t++],m=e[t];return l(i)?(i._positions=u,i._shape=d,i._ellipsoid=c.clone(h,i._ellipsoid),i._vertexFormat=b.clone(p,i._vertexFormat),i._cornerType=f,i._granularity=m,i):(x.polylinePositions=u,x.shapePositions=d,x.cornerType=f,x.granularity=m,new E(x))};var P=new t;return E.createGeometry=function(i){var r=i._positions,o=e(r,n.equalsEpsilon),a=i._shape;if(a=y.removeDuplicatesFromShape(a),!(o.length<2||a.length<3)){v.computeWindingOrder2D(a)===S.CLOCKWISE&&a.reverse();var s=t.fromPoints(a,P);return T(y.computePositions(o,a,s,i,!0),a,s,i._vertexFormat)}},E}),define("Core/PolylineVolumeOutlineGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CornerType","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PolygonPipeline","./PolylineVolumeGeometryLibrary","./PrimitiveType","./WindingOrder"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e,t){var r=new p;r.position=new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:e});var n,a,s=t.length,l=r.position.values.length/3,u=e.length/3,c=u/s,m=f.createTypedArray(l,2*s*(c+1)),_=0;n=0;var g=n*s;for(a=0;a<s-1;a++)m[_++]=a+g,m[_++]=a+g+1;for(m[_++]=s-1+g,m[_++]=g,n=c-1,g=n*s,a=0;a<s-1;a++)m[_++]=a+g,m[_++]=a+g+1;for(m[_++]=s-1+g,m[_++]=g,n=0;n<c-1;n++){var y=s*n,C=y+s;for(a=0;a<s;a++)m[_++]=a+y,m[_++]=a+C}return new d({attributes:r,indices:f.createTypedArray(l,m),boundingSphere:i.fromVertices(e),primitiveType:v.LINES})}function b(e){e=s(e,s.EMPTY_OBJECT);var t=e.polylinePositions,i=e.shapePositions;this._positions=t,this._shape=i,this._ellipsoid=c.clone(s(e.ellipsoid,c.WGS84)),this._cornerType=s(e.cornerType,a.ROUNDED),this._granularity=s(e.granularity,m.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";var o=1+t.length*n.packedLength;o+=1+i.length*r.packedLength,this.packedLength=o+c.packedLength+2}b.pack=function(e,t,i){i=s(i,0);var o,a=e._positions,l=a.length;for(t[i++]=l,o=0;o<l;++o,i+=n.packedLength)n.pack(a[o],t,i);var u=e._shape;for(l=u.length,t[i++]=l,o=0;o<l;++o,i+=r.packedLength)r.pack(u[o],t,i);return c.pack(e._ellipsoid,t,i),i+=c.packedLength,t[i++]=e._cornerType,t[i]=e._granularity,t};var S=c.clone(c.UNIT_SPHERE),T={polylinePositions:void 0,shapePositions:void 0,ellipsoid:S,height:void 0,cornerType:void 0,granularity:void 0};b.unpack=function(e,t,i){t=s(t,0);var o,a=e[t++],u=new Array(a);for(o=0;o<a;++o,t+=n.packedLength)u[o]=n.unpack(e,t);a=e[t++];var d=new Array(a);for(o=0;o<a;++o,t+=r.packedLength)d[o]=r.unpack(e,t);var h=c.unpack(e,t,S);t+=c.packedLength;var p=e[t++],f=e[t];return l(i)?(i._positions=u,i._shape=d,i._ellipsoid=c.clone(h,i._ellipsoid),i._cornerType=p,i._granularity=f,i):(T.polylinePositions=u,T.shapePositions=d,T.cornerType=p,T.granularity=f,new b(T))};var E=new t;return b.createGeometry=function(i){var r=i._positions,o=e(r,n.equalsEpsilon),a=i._shape;if(a=g.removeDuplicatesFromShape(a),!(o.length<2||a.length<3)){_.computeWindingOrder2D(a)===y.CLOCKWISE&&a.reverse();var s=t.fromPoints(a,E);return C(g.computePositions(o,a,s,i,!1),a)}},b}),define("Core/QuaternionSpline",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Quaternion","./Spline"],function(e,t,i,r,n,o){"use strict";function a(e){var i=e.points,r=e.times;return function(o,a){t(a)||(a=new n);var s=e._lastTimeIndex=e.findTimeInterval(o,e._lastTimeIndex),l=(o-r[s])/(r[s+1]-r[s]),u=i[s],c=i[s+1];return n.fastSlerp(u,c,l,a)}}function s(t){t=e(t,e.EMPTY_OBJECT);var i=t.points,r=t.times;this._times=r,this._points=i,this._evaluateFunction=a(this),this._lastTimeIndex=0}return i(s.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}}),s.prototype.findTimeInterval=o.prototype.findTimeInterval,s.prototype.wrapTime=o.prototype.wrapTime,s.prototype.clampTime=o.prototype.clampTime,s.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)},s}),define("ThirdParty/quickselect",[],function(){"use strict";function e(e,i,n,o,a){t(e,i,n||0,o||e.length-1,a||r)}function t(e,r,n,o,a){for(;o>n;){if(o-n>600){var s=o-n+1,l=r-n+1,u=Math.log(s),c=.5*Math.exp(2*u/3),d=.5*Math.sqrt(u*c*(s-c)/s)*(l-s/2<0?-1:1);t(e,r,Math.max(n,Math.floor(r-l*c/s+d)),Math.min(o,Math.floor(r+(s-l)*c/s+d)),a)}var h=e[r],p=n,f=o;for(i(e,n,r),a(e[o],h)>0&&i(e,n,o);p<f;){for(i(e,p,f),p++,f--;a(e[p],h)<0;)p++;for(;a(e[f],h)>0;)f--}0===a(e[n],h)?i(e,n,f):(f++,i(e,f,o)),f<=r&&(n=f+1),r<=f&&(o=f-1)}}function i(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function r(e,t){return e<t?-1:e>t?1:0}return e}),define("ThirdParty/rbush",["./quickselect"],function(e){"use strict";function t(e,i){if(!(this instanceof t))return new t(e,i);this._maxEntries=Math.max(4,e||9),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),i&&this._initFormat(i),this.clear()}function i(e,t,i){if(!i)return t.indexOf(e);for(var r=0;r<t.length;r++)if(i(e,t[r]))return r;return-1}function r(e,t){n(e,0,e.children.length,t,e)}function n(e,t,i,r,n){n||(n=f(null)),n.minX=1/0,n.minY=1/0,n.maxX=-1/0,n.maxY=-1/0;for(var a,s=t;s<i;s++)a=e.children[s],o(n,e.leaf?r(a):a);return n}function o(e,t){return e.minX=Math.min(e.minX,t.minX),e.minY=Math.min(e.minY,t.minY),e.maxX=Math.max(e.maxX,t.maxX),e.maxY=Math.max(e.maxY,t.maxY),e}function a(e,t){return e.minX-t.minX}function s(e,t){return e.minY-t.minY}function l(e){return(e.maxX-e.minX)*(e.maxY-e.minY)}function u(e){return e.maxX-e.minX+(e.maxY-e.minY)}function c(e,t){return(Math.max(t.maxX,e.maxX)-Math.min(t.minX,e.minX))*(Math.max(t.maxY,e.maxY)-Math.min(t.minY,e.minY))}function d(e,t){var i=Math.max(e.minX,t.minX),r=Math.max(e.minY,t.minY),n=Math.min(e.maxX,t.maxX),o=Math.min(e.maxY,t.maxY);return Math.max(0,n-i)*Math.max(0,o-r)}function h(e,t){return e.minX<=t.minX&&e.minY<=t.minY&&t.maxX<=e.maxX&&t.maxY<=e.maxY}function p(e,t){return t.minX<=e.maxX&&t.minY<=e.maxY&&t.maxX>=e.minX&&t.maxY>=e.minY}function f(e){return{children:e,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function m(t,i,r,n,o){for(var a,s=[i,r];s.length;)r=s.pop(),i=s.pop(),r-i<=n||(a=i+Math.ceil((r-i)/n/2)*n,e(t,a,i,r,o),s.push(i,a,a,r))}return t.prototype={all:function(){return this._all(this.data,[])},search:function(e){var t=this.data,i=[],r=this.toBBox;if(!p(e,t))return i;for(var n,o,a,s,l=[];t;){for(n=0,o=t.children.length;n<o;n++)a=t.children[n],s=t.leaf?r(a):a,p(e,s)&&(t.leaf?i.push(a):h(e,s)?this._all(a,i):l.push(a));t=l.pop()}return i},collides:function(e){var t=this.data,i=this.toBBox;if(!p(e,t))return!1;for(var r,n,o,a,s=[];t;){for(r=0,n=t.children.length;r<n;r++)if(o=t.children[r],a=t.leaf?i(o):o,p(e,a)){if(t.leaf||h(e,a))return!0;s.push(o)}t=s.pop()}return!1},load:function(e){if(!e||!e.length)return this;if(e.length<this._minEntries){for(var t=0,i=e.length;t<i;t++)this.insert(e[t]);return this}var r=this._build(e.slice(),0,e.length-1,0);if(this.data.children.length)if(this.data.height===r.height)this._splitRoot(this.data,r);else{if(this.data.height<r.height){var n=this.data;this.data=r,r=n}this._insert(r,this.data.height-r.height-1,!0)}else this.data=r;return this},insert:function(e){return e&&this._insert(e,this.data.height-1),this},clear:function(){return this.data=f([]),this},remove:function(e,t){if(!e)return this;for(var r,n,o,a,s=this.data,l=this.toBBox(e),u=[],c=[];s||u.length;){if(s||(s=u.pop(),n=u[u.length-1],r=c.pop(),a=!0),s.leaf&&-1!==(o=i(e,s.children,t)))return s.children.splice(o,1),u.push(s),this._condense(u),this;a||s.leaf||!h(s,l)?n?(r++,s=n.children[r],a=!1):s=null:(u.push(s),c.push(r),r=0,n=s,s=s.children[0])}return this},toBBox:function(e){return e},compareMinX:a,compareMinY:s,toJSON:function(){return this.data},fromJSON:function(e){return this.data=e,this},_all:function(e,t){for(var i=[];e;)e.leaf?t.push.apply(t,e.children):i.push.apply(i,e.children),e=i.pop();return t},_build:function(e,t,i,n){var o,a=i-t+1,s=this._maxEntries;if(a<=s)return o=f(e.slice(t,i+1)),r(o,this.toBBox),o;n||(n=Math.ceil(Math.log(a)/Math.log(s)),s=Math.ceil(a/Math.pow(s,n-1))),o=f([]),o.leaf=!1,o.height=n;var l,u,c,d,h=Math.ceil(a/s),p=h*Math.ceil(Math.sqrt(s));for(m(e,t,i,p,this.compareMinX),l=t;l<=i;l+=p)for(c=Math.min(l+p-1,i),m(e,l,c,h,this.compareMinY),u=l;u<=c;u+=h)d=Math.min(u+h-1,c),o.children.push(this._build(e,u,d,n-1));return r(o,this.toBBox),o},_chooseSubtree:function(e,t,i,r){for(var n,o,a,s,u,d,h,p;;){if(r.push(t),t.leaf||r.length-1===i)break;for(h=p=1/0,n=0,o=t.children.length;n<o;n++)a=t.children[n],u=l(a),d=c(e,a)-u,d<p?(p=d,h=u<h?u:h,s=a):d===p&&u<h&&(h=u,s=a);t=s||t.children[0]}return t},_insert:function(e,t,i){var r=this.toBBox,n=i?e:r(e),a=[],s=this._chooseSubtree(n,this.data,t,a);for(s.children.push(e),o(s,n);t>=0&&a[t].children.length>this._maxEntries;)this._split(a,t),t--;this._adjustParentBBoxes(n,a,t)},_split:function(e,t){var i=e[t],n=i.children.length,o=this._minEntries;this._chooseSplitAxis(i,o,n);var a=this._chooseSplitIndex(i,o,n),s=f(i.children.splice(a,i.children.length-a));s.height=i.height,s.leaf=i.leaf,r(i,this.toBBox),r(s,this.toBBox),t?e[t-1].children.push(s):this._splitRoot(i,s)},_splitRoot:function(e,t){this.data=f([e,t]),this.data.height=e.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},_chooseSplitIndex:function(e,t,i){var r,o,a,s,u,c,h,p;for(c=h=1/0,r=t;r<=i-t;r++)o=n(e,0,r,this.toBBox),a=n(e,r,i,this.toBBox),s=d(o,a),u=l(o)+l(a),s<c?(c=s,p=r,h=u<h?u:h):s===c&&u<h&&(h=u,p=r);return p},_chooseSplitAxis:function(e,t,i){var r=e.leaf?this.compareMinX:a,n=e.leaf?this.compareMinY:s;this._allDistMargin(e,t,i,r)<this._allDistMargin(e,t,i,n)&&e.children.sort(r)},_allDistMargin:function(e,t,i,r){e.children.sort(r);var a,s,l=this.toBBox,c=n(e,0,t,l),d=n(e,i-t,i,l),h=u(c)+u(d);for(a=t;a<i-t;a++)s=e.children[a],o(c,e.leaf?l(s):s),h+=u(c);for(a=i-t-1;a>=t;a--)s=e.children[a],o(d,e.leaf?l(s):s),h+=u(d);return h},_adjustParentBBoxes:function(e,t,i){for(var r=i;r>=0;r--)o(t[r],e)},_condense:function(e){for(var t,i=e.length-1;i>=0;i--)0===e[i].children.length?i>0?(t=e[i-1].children,t.splice(t.indexOf(e[i]),1)):this.clear():r(e[i],this.toBBox)},_initFormat:function(e){var t=["return a"," - b",";"];this.compareMinX=new Function("a","b",t.join(e[0])),this.compareMinY=new Function("a","b",t.join(e[1])),this.toBBox=new Function("a","return {minX: a"+e[0]+", minY: a"+e[1]+", maxX: a"+e[2]+", maxY: a"+e[3]+"};")}},t}),define("Core/RectangleCollisionChecker",["../ThirdParty/rbush","./Check"],function(e,t){"use strict";function i(){this._tree=e()}function r(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}function n(e,t){return e.id===t.id}r.fromRectangleAndId=function(e,t,i){return i.minX=t.west,i.minY=t.south,i.maxX=t.east,i.maxY=t.north,i.id=e,i},i.prototype.insert=function(e,t){var i=r.fromRectangleAndId(e,t,new r);this._tree.insert(i)};var o=new r;i.prototype.remove=function(e,t){var i=r.fromRectangleAndId(e,t,o);this._tree.remove(i,n)};var a=new r;return i.prototype.collides=function(e){var t=r.fromRectangleAndId("",e,a);return this._tree.collides(t)},i}),define("Core/RectangleGeometryLibrary",["./Cartesian3","./Cartographic","./defined","./DeveloperError","./GeographicProjection","./Math","./Matrix2","./Rectangle"],function(e,t,i,r,n,o,a,s){"use strict";function l(t,i,r,n,o,s,l){var u=Math.cos(i),c=n*u,d=r*u,h=Math.sin(i),m=n*h,v=r*h;f=g.project(t,f),f=e.subtract(f,_,f);var y=a.fromRotation(i,p);f=a.multiplyByVector(y,f,f),f=e.add(f,_,f),t=g.unproject(f,t),s-=1,l-=1;var C=t.latitude,b=C+s*v,S=C-c*l,T=C-c*l+s*v,E=Math.max(C,b,S,T),A=Math.min(C,b,S,T),w=t.longitude,x=w+s*d,P=w+l*m,D=w+l*m+s*d;return{north:E,south:A,east:Math.max(w,x,P,D),west:Math.min(w,x,P,D),granYCos:c,granYSin:m,granXCos:d,granXSin:v,nwCorner:t}}var u=Math.cos,c=Math.sin,d=Math.sqrt,h={};h.computePosition=function(e,t,r,n,o,a,s){var l=t.radiiSquared,h=e.nwCorner,p=e.boundingRectangle,f=h.latitude-e.granYCos*n+o*e.granXSin,m=u(f),_=c(f),g=l.z*_,v=h.longitude+n*e.granYSin+o*e.granXCos,y=m*u(v),C=m*c(v),b=l.x*y,S=l.y*C,T=d(b*y+S*C+g*_);if(a.x=b/T,a.y=S/T,a.z=g/T,r){var E=e.stNwCorner;i(E)?(f=E.latitude-e.stGranYCos*n+o*e.stGranXSin,v=E.longitude+n*e.stGranYSin+o*e.stGranXCos,s.x=(v-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(v-p.west)*e.lonScalar,s.y=(f-p.south)*e.latScalar)}};var p=new a,f=new e,m=new t,_=new e,g=new n;return h.computeOptions=function(e,t,i,r,n,a,u){var c=e.east,d=e.west,h=e.north,p=e.south,f=!1,v=!1;h===o.PI_OVER_TWO&&(f=!0),p===-o.PI_OVER_TWO&&(v=!0);var y,C,b,S,T,E=h-p;T=d>c?o.TWO_PI-d+c:c-d,y=Math.ceil(T/t)+1,C=Math.ceil(E/t)+1,b=T/(y-1),S=E/(C-1);var A=s.northwest(e,a),w=s.center(e,m);0===i&&0===r||(w.longitude<A.longitude&&(w.longitude+=o.TWO_PI),_=g.project(w,_));var x=S,P=b,D=s.clone(e,n),I={granYCos:x,granYSin:0,granXCos:P,granXSin:0,nwCorner:A,boundingRectangle:D,width:y,height:C,northCap:f,southCap:v};if(0!==i){var M=l(A,i,b,S,w,y,C);h=M.north,p=M.south,c=M.east,d=M.west,I.granYCos=M.granYCos,I.granYSin=M.granYSin,I.granXCos=M.granXCos,I.granXSin=M.granXSin,D.north=h,D.south=p,D.east=c,D.west=d}if(0!==r){i-=r;var R=s.northwest(D,u),O=l(R,i,b,S,w,y,C);I.stGranYCos=O.granYCos,I.stGranXCos=O.granXCos,I.stGranYSin=O.granYSin,I.stGranXSin=O.granXSin,I.stNwCorner=R,I.stWest=O.west,I.stSouth=O.south}return I},h}),define("Core/RectangleGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix2","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Rectangle","./RectangleGeometryLibrary","./VertexFormat"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x){"use strict";function P(e,t){var i=new h({attributes:new f,primitiveType:T.TRIANGLES});return i.attributes.position=new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(i.attributes.normal=new p({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(i.attributes.tangent=new p({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(i.attributes.bitangent=new p({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:t.bitangents})),i}function D(e,t,i,n){var o=e.length,a=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,l=t.bitangent?new Float32Array(o):void 0,u=0,c=U,d=V,h=k;if(t.normal||t.tangent||t.bitangent)for(var p=0;p<o;p+=3){var f=r.fromArray(e,p,z),m=u+1,_=u+2;h=i.geodeticSurfaceNormal(f,h),(t.tangent||t.bitangent)&&(r.cross(r.UNIT_Z,h,d),b.multiplyByVector(n,d,d),r.normalize(d,d),t.bitangent&&r.normalize(r.cross(h,d,c),c)),t.normal&&(a[u]=h.x,a[m]=h.y,a[_]=h.z),t.tangent&&(s[u]=d.x,s[m]=d.y,s[_]=d.z),t.bitangent&&(l[u]=c.x,l[m]=c.y,l[_]=c.z),u+=3}return P(t,{positions:e,normals:a,tangents:s,bitangents:l})}function I(e,t,i){var n=e.length,o=t.normal?new Float32Array(n):void 0,a=t.tangent?new Float32Array(n):void 0,s=t.bitangent?new Float32Array(n):void 0,l=0,u=0,c=0,d=!0,h=U,p=V,f=k;if(t.normal||t.tangent||t.bitangent)for(var m=0;m<n;m+=6){var _=r.fromArray(e,m,z),g=r.fromArray(e,(m+6)%n,Y);if(d){var v=r.fromArray(e,(m+3)%n,j);r.subtract(g,_,g),r.subtract(v,_,v),f=r.normalize(r.cross(v,g,f),f),d=!1}r.equalsEpsilon(g,_,y.EPSILON10)&&(d=!0),(t.tangent||t.bitangent)&&(h=i.geodeticSurfaceNormal(_,h),t.tangent&&(p=r.normalize(r.cross(h,f,p),p))),t.normal&&(o[l++]=f.x,o[l++]=f.y,o[l++]=f.z,o[l++]=f.x,o[l++]=f.y,o[l++]=f.z),t.tangent&&(a[u++]=p.x,a[u++]=p.y,a[u++]=p.z,a[u++]=p.x,a[u++]=p.y,a[u++]=p.z),t.bitangent&&(s[c++]=h.x,s[c++]=h.y,s[c++]=h.z,s[c++]=h.x,s[c++]=h.y,s[c++]=h.z)}return P(t,{positions:e,normals:o,tangents:a,bitangents:s})}function M(e,t){var i=e._vertexFormat,r=e._ellipsoid,n=t.height,o=t.width,s=t.northCap,l=t.southCap,u=0,c=n,d=n,h=0;s&&(u=1,d-=1,h+=1),l&&(c-=1,d-=1,h+=1),h+=o*d;for(var f=i.position?new Float64Array(3*h):void 0,m=i.st?new Float32Array(2*h):void 0,_=0,g=0,y=z,C=H,b=Number.MAX_VALUE,S=Number.MAX_VALUE,T=-Number.MAX_VALUE,E=-Number.MAX_VALUE,A=u;A<c;++A)for(var x=0;x<o;++x)w.computePosition(t,r,i.st,A,x,y,C),f[_++]=y.x,f[_++]=y.y,f[_++]=y.z,i.st&&(m[g++]=C.x,m[g++]=C.y,b=Math.min(b,C.x),S=Math.min(S,C.y),T=Math.max(T,C.x),E=Math.max(E,C.y));if(s&&(w.computePosition(t,r,i.st,0,0,y,C),f[_++]=y.x,f[_++]=y.y,f[_++]=y.z,i.st&&(m[g++]=C.x,m[g++]=C.y,b=C.x,S=C.y,T=C.x,E=C.y)),l&&(w.computePosition(t,r,i.st,n-1,0,y,C),f[_++]=y.x,f[_++]=y.y,f[_]=y.z,i.st&&(m[g++]=C.x,m[g]=C.y,b=Math.min(b,C.x),S=Math.min(S,C.y),T=Math.max(T,C.x),E=Math.max(E,C.y))),i.st&&(b<0||S<0||T>1||E>1))for(var P=0;P<m.length;P+=2)m[P]=(m[P]-b)/(T-b),m[P+1]=(m[P+1]-S)/(E-S);var I=D(f,i,r,t.tangentRotationMatrix),M=6*(o-1)*(d-1);s&&(M+=3*(o-1)),l&&(M+=3*(o-1));var R,O=v.createTypedArray(h,M),L=0,N=0;for(R=0;R<d-1;++R){for(var F=0;F<o-1;++F){var B=L,k=B+o,V=k+1,U=B+1;O[N++]=B,O[N++]=k,O[N++]=U,O[N++]=U,O[N++]=k,O[N++]=V,++L}++L}if(s||l){var G=h-1,W=h-1;s&&l&&(G=h-2);var q,Y;if(L=0,s)for(R=0;R<o-1;R++)q=L,Y=q+1,O[N++]=G,O[N++]=q,O[N++]=Y,++L;if(l)for(L=(d-1)*o,R=0;R<o-1;R++)q=L,Y=q+1,O[N++]=q,O[N++]=W,O[N++]=Y,++L}return I.indices=O,i.st&&(I.attributes.st=new p({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:m})),I}function R(e,t,i,r,n){return e[t++]=r[i],e[t++]=r[i+1],e[t++]=r[i+2],e[t++]=n[i],e[t++]=n[i+1],e[t]=n[i+2],e}function O(e,t,i,r){return e[t++]=r[i],e[t++]=r[i+1],e[t++]=r[i],e[t]=r[i+1],e}function L(t,i){var n,o=t._shadowVolume,s=t._offsetAttribute,u=t._vertexFormat,c=t._extrudedHeight,d=t._surfaceHeight,h=t._ellipsoid,f=i.height,C=i.width;if(o){var b=x.clone(u,X);b.normal=!0,t._vertexFormat=b}var T=M(t,i);o&&(t._vertexFormat=u);var E=S.scaleToGeodeticHeight(T.attributes.position.values,d,h,!1);E=new Float64Array(E);var A=E.length,w=2*A,P=new Float64Array(w);P.set(E);var D=S.scaleToGeodeticHeight(T.attributes.position.values,c,h);P.set(D,A),T.attributes.position.values=P;var L,N,F=u.normal?new Float32Array(w):void 0,B=u.tangent?new Float32Array(w):void 0,z=u.bitangent?new Float32Array(w):void 0,k=u.st?new Float32Array(w/3*2):void 0;if(u.normal){for(N=T.attributes.normal.values,F.set(N),n=0;n<A;n++)N[n]=-N[n];F.set(N,A),T.attributes.normal.values=F}if(o){N=T.attributes.normal.values,u.normal||(T.attributes.normal=void 0);var V=new Float32Array(w);for(n=0;n<A;n++)N[n]=-N[n];V.set(N,A),T.attributes.extrudeDirection=new p({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:V})}var U,G=l(s);if(G){var H=A/3*2,W=new Uint8Array(H);s===_.TOP?W=e(W,1,0,H/2):(U=s===_.NONE?0:1,W=e(W,U)),T.attributes.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:W})}if(u.tangent){var q=T.attributes.tangent.values;for(B.set(q),n=0;n<A;n++)q[n]=-q[n];B.set(q,A),T.attributes.tangent.values=B}if(u.bitangent){var Q=T.attributes.bitangent.values;z.set(Q),z.set(Q,A),T.attributes.bitangent.values=z}u.st&&(L=T.attributes.st.values,k.set(L),k.set(L,A/3*2),T.attributes.st.values=k);var K=T.indices,Z=K.length,J=A/3,$=v.createTypedArray(w/3,2*Z);for($.set(K),n=0;n<Z;n+=3)$[n+Z]=K[n+2]+J,$[n+1+Z]=K[n+1]+J,$[n+2+Z]=K[n]+J;T.indices=$;var ee=i.northCap,te=i.southCap,ie=f,re=2,ne=0,oe=4,ae=4;ee&&(re-=1,ie-=1,ne+=1,oe-=2,ae-=1),te&&(re-=1,ie-=1,ne+=1,oe-=2,ae-=1),ne+=re*C+2*ie-oe;var se=2*(ne+ae),le=new Float64Array(3*se),ue=o?new Float32Array(3*se):void 0,ce=G?new Uint8Array(se):void 0,de=u.st?new Float32Array(2*se):void 0,he=s===_.TOP;G&&!he&&(U=s===_.ALL?1:0,ce=e(ce,U));var pe,fe=0,me=0,_e=0,ge=0,ve=C*ie;for(n=0;n<ve;n+=C)pe=3*n,le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*n,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1);if(te){var ye=ee?ve+1:ve;for(pe=3*ye,n=0;n<2;n++)le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*ye,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1)}else for(n=ve-C;n<ve;n++)pe=3*n,le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*n,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1);for(n=ve-1;n>0;n-=C)pe=3*n,le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*n,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1);if(ee){var Ce=ve;for(pe=3*Ce,n=0;n<2;n++)le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*Ce,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1)}else for(n=C-1;n>=0;n--)pe=3*n,le=R(le,fe,pe,E,D),fe+=6,u.st&&(de=O(de,me,2*n,L),me+=4),o&&(_e+=3,ue[_e++]=N[pe],ue[_e++]=N[pe+1],ue[_e++]=N[pe+2]),he&&(ce[ge++]=1,ge+=1);var be=I(le,u,h);u.st&&(be.attributes.st=new p({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:de})),o&&(be.attributes.extrudeDirection=new p({componentDatatype:a.FLOAT,componentsPerAttribute:3,values:ue})),G&&(be.attributes.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:ce}));var Se,Te,Ee,Ae,we=v.createTypedArray(se,6*ne);A=le.length/3;var xe=0;for(n=0;n<A-1;n+=2){Se=n,Ae=(Se+2)%A;var Pe=r.fromArray(le,3*Se,Y),De=r.fromArray(le,3*Ae,j);r.equalsEpsilon(Pe,De,y.EPSILON10)||(Te=(Se+1)%A,Ee=(Te+2)%A,we[xe++]=Se,we[xe++]=Te,we[xe++]=Ae,we[xe++]=Ae,we[xe++]=Te,we[xe++]=Ee)}return be.indices=we,be=g.combineInstances([new m({geometry:T}),new m({geometry:be})]),be[0]}function N(e,t,i,r,n){if(0===i)return A.clone(e,n);var o=w.computeOptions(e,t,i,0,G,K),a=o.height,s=o.width,l=Q;return w.computePosition(o,r,!1,0,0,l[0]),w.computePosition(o,r,!1,0,s-1,l[1]),w.computePosition(o,r,!1,a-1,0,l[2]),w.computePosition(o,r,!1,a-1,s-1,l[3]),A.fromCartesianArray(l,r,n)}function F(e){e=s(e,s.EMPTY_OBJECT);var t=e.rectangle,i=s(e.height,0),r=s(e.extrudedHeight,i);this._rectangle=A.clone(t),this._granularity=s(e.granularity,y.RADIANS_PER_DEGREE),this._ellipsoid=d.clone(s(e.ellipsoid,d.WGS84)),this._surfaceHeight=Math.max(i,r),this._rotation=s(e.rotation,0),this._stRotation=s(e.stRotation,0),this._vertexFormat=x.clone(s(e.vertexFormat,x.DEFAULT)),this._extrudedHeight=Math.min(i,r),this._shadowVolume=s(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}function B(e){if(0===e._stRotation)return[0,0,0,1,1,0];var t=A.clone(e._rectangle,ne),r=e._granularity,n=e._ellipsoid,o=e._rotation-e._stRotation,a=N(t,r,o,n,ne),s=oe;s[0].x=a.west,s[0].y=a.south,s[1].x=a.west,s[1].y=a.north,s[2].x=a.east,s[2].y=a.south;for(var l=e.rectangle,u=C.fromRotation(e._stRotation,ae),c=A.center(l,se),d=0;d<3;++d){var h=s[d];h.x-=c.longitude,h.y-=c.latitude,C.multiplyByVector(u,h,h),h.x+=c.longitude,h.y+=c.latitude,h.x=(h.x-l.west)/l.width,h.y=(h.y-l.south)/l.height}var p=s[0],f=s[1],m=s[2],_=new Array(6);return i.pack(p,_),i.pack(f,_,2),i.pack(m,_,4),_}var z=new r,k=new r,V=new r,U=new r,G=new A,H=new i,W=new t,q=new t,Y=new r,j=new r,X=new x,Q=[new r,new r,new r,new r],K=new n,Z=new n;F.packedLength=A.packedLength+d.packedLength+x.packedLength+7,F.pack=function(e,t,i){return i=s(i,0),A.pack(e._rectangle,t,i),i+=A.packedLength,d.pack(e._ellipsoid,t,i),i+=d.packedLength,x.pack(e._vertexFormat,t,i),i+=x.packedLength,t[i++]=e._granularity,t[i++]=e._surfaceHeight,t[i++]=e._rotation,t[i++]=e._stRotation,t[i++]=e._extrudedHeight,t[i++]=e._shadowVolume?1:0,t[i]=s(e._offsetAttribute,-1),t};var J=new A,$=d.clone(d.UNIT_SPHERE),ee={rectangle:J,ellipsoid:$,vertexFormat:X,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};F.unpack=function(e,t,i){t=s(t,0);var r=A.unpack(e,t,J);t+=A.packedLength;var n=d.unpack(e,t,$);t+=d.packedLength;var o=x.unpack(e,t,X);t+=x.packedLength;var a=e[t++],u=e[t++],c=e[t++],h=e[t++],p=e[t++],f=1===e[t++],m=e[t];return l(i)?(i._rectangle=A.clone(r,i._rectangle),i._ellipsoid=d.clone(n,i._ellipsoid),i._vertexFormat=x.clone(o,i._vertexFormat),i._granularity=a,i._surfaceHeight=u,i._rotation=c,i._stRotation=h,i._extrudedHeight=p,i._shadowVolume=f,i._offsetAttribute=-1===m?void 0:m,i):(ee.granularity=a,ee.height=u,ee.rotation=c,ee.stRotation=h,ee.extrudedHeight=p,ee.shadowVolume=f,ee.offsetAttribute=-1===m?void 0:m,new F(ee))},F.computeRectangle=function(e,t){e=s(e,s.EMPTY_OBJECT);var i=e.rectangle,r=s(e.granularity,y.RADIANS_PER_DEGREE),n=s(e.ellipsoid,d.WGS84);return N(i,r,s(e.rotation,0),n,t)};var te=new b,ie=new E,re=new n;F.createGeometry=function(i){if(!y.equalsEpsilon(i._rectangle.north,i._rectangle.south,y.EPSILON10)&&!y.equalsEpsilon(i._rectangle.east,i._rectangle.west,y.EPSILON10)){var r=i._rectangle,n=i._ellipsoid,o=i._rotation,s=i._stRotation,u=i._vertexFormat,c=w.computeOptions(r,i._granularity,o,s,G,K,Z),d=te;if(0!==s||0!==o){var f=A.center(r,re),m=n.geodeticSurfaceNormalCartographic(f,Y);E.fromAxisAngle(m,-s,ie),b.fromQuaternion(ie,d)}else b.clone(b.IDENTITY,d);var g=i._surfaceHeight,v=i._extrudedHeight,C=!y.equalsEpsilon(g,v,0,y.EPSILON2);c.lonScalar=1/i._rectangle.width,c.latScalar=1/i._rectangle.height,c.tangentRotationMatrix=d;var T,x;if(r=i._rectangle,C){T=L(i,c);var P=t.fromRectangle3D(r,n,g,q),D=t.fromRectangle3D(r,n,v,W);x=t.union(P,D)}else{if(T=M(i,c),T.attributes.position.values=S.scaleToGeodeticHeight(T.attributes.position.values,g,n,!1),l(i._offsetAttribute)){var I=T.attributes.position.values.length,R=new Uint8Array(I/3),O=i._offsetAttribute===_.NONE?0:1;e(R,O),T.attributes.applyOffset=new p({ -componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}x=t.fromRectangle3D(r,n,g)}return u.position||delete T.attributes.position,new h({attributes:T.attributes,indices:T.indices,primitiveType:T.primitiveType,boundingSphere:x,offsetAttribute:i._offsetAttribute})}},F.createShadowVolume=function(e,t,i){var r=e._granularity,n=e._ellipsoid,o=t(r,n),a=i(r,n);return new F({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:n,stRotation:e._stRotation,granularity:r,extrudedHeight:a,height:o,vertexFormat:x.POSITION_ONLY,shadowVolume:!0})};var ne=new A,oe=[new i,new i,new i],ae=new C,se=new n;return u(F.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=N(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=B(this)),this._textureCoordinateRotationPoints}}}),F}),define("Core/RectangleOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType","./Rectangle","./RectangleGeometryLibrary"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(e,t){var i=e._ellipsoid,r=t.height,o=t.width,a=t.northCap,s=t.southCap,l=r,h=2,f=0,m=4;a&&(h-=1,l-=1,f+=1,m-=2),s&&(h-=1,l-=1,f+=1,m-=2),f+=h*o+2*l-m;var g,y=new Float64Array(3*f),C=0,b=0,S=E;if(a)v.computePosition(t,i,!1,b,0,S),y[C++]=S.x,y[C++]=S.y,y[C++]=S.z;else for(g=0;g<o;g++)v.computePosition(t,i,!1,b,g,S),y[C++]=S.x,y[C++]=S.y,y[C++]=S.z;for(g=o-1,b=1;b<r;b++)v.computePosition(t,i,!1,b,g,S),y[C++]=S.x,y[C++]=S.y,y[C++]=S.z;if(b=r-1,!s)for(g=o-2;g>=0;g--)v.computePosition(t,i,!1,b,g,S),y[C++]=S.x,y[C++]=S.y,y[C++]=S.z;for(g=0,b=r-2;b>0;b--)v.computePosition(t,i,!1,b,g,S),y[C++]=S.x,y[C++]=S.y,y[C++]=S.z;for(var T=y.length/3*2,A=p.createTypedArray(y.length/3,T),w=0,x=0;x<y.length/3-1;x++)A[w++]=x,A[w++]=x+1;A[w++]=y.length/3-1,A[w++]=0;var P=new u({attributes:new d,primitiveType:_.LINES});return P.attributes.position=new c({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:y}),P.indices=A,P}function C(e,t){var i=e._surfaceHeight,r=e._extrudedHeight,n=e._ellipsoid,o=r,a=i,s=y(e,t),l=t.height,u=t.width,c=m.scaleToGeodeticHeight(s.attributes.position.values,a,n,!1),d=c.length,h=new Float64Array(2*d);h.set(c);var f=m.scaleToGeodeticHeight(s.attributes.position.values,o,n);h.set(f,d),s.attributes.position.values=h;var _=t.northCap,g=t.southCap,v=4;_&&(v-=1),g&&(v-=1);var C=2*(h.length/3+v),b=p.createTypedArray(h.length/3,C);d=h.length/6;for(var S=0,T=0;T<d-1;T++)b[S++]=T,b[S++]=T+1,b[S++]=T+d,b[S++]=T+d+1;b[S++]=d-1,b[S++]=0,b[S++]=d+d-1,b[S++]=d,b[S++]=0,b[S++]=d;var E;if(_)E=l-1;else{var A=u-1;b[S++]=A,b[S++]=A+d,E=u+l-2}if(b[S++]=E,b[S++]=E+d,!g){var w=u+E-1;b[S++]=w,b[S]=w+d}return s.indices=b,s}function b(e){e=o(e,o.EMPTY_OBJECT);var t=e.rectangle,i=o(e.granularity,f.RADIANS_PER_DEGREE),r=o(e.ellipsoid,l.WGS84),n=o(e.rotation,0),a=o(e.height,0),s=o(e.extrudedHeight,a);this._rectangle=g.clone(t),this._granularity=i,this._ellipsoid=r,this._surfaceHeight=Math.max(a,s),this._rotation=n,this._extrudedHeight=Math.min(a,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}var S=new t,T=new t,E=new i,A=new g;b.packedLength=g.packedLength+l.packedLength+5,b.pack=function(e,t,i){return i=o(i,0),g.pack(e._rectangle,t,i),i+=g.packedLength,l.pack(e._ellipsoid,t,i),i+=l.packedLength,t[i++]=e._granularity,t[i++]=e._surfaceHeight,t[i++]=e._rotation,t[i++]=e._extrudedHeight,t[i]=o(e._offsetAttribute,-1),t};var w=new g,x=l.clone(l.UNIT_SPHERE),P={rectangle:w,ellipsoid:x,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};b.unpack=function(e,t,i){t=o(t,0);var r=g.unpack(e,t,w);t+=g.packedLength;var n=l.unpack(e,t,x);t+=l.packedLength;var s=e[t++],u=e[t++],c=e[t++],d=e[t++],h=e[t];return a(i)?(i._rectangle=g.clone(r,i._rectangle),i._ellipsoid=l.clone(n,i._ellipsoid),i._surfaceHeight=u,i._rotation=c,i._extrudedHeight=d,i._offsetAttribute=-1===h?void 0:h,i):(P.granularity=s,P.height=u,P.rotation=c,P.extrudedHeight=d,P.offsetAttribute=-1===h?void 0:h,new b(P))};var D=new r;return b.createGeometry=function(i){var r,o,s=i._rectangle,l=i._ellipsoid,d=v.computeOptions(s,i._granularity,i._rotation,0,A,D);if(!f.equalsEpsilon(s.north,s.south,f.EPSILON10)&&!f.equalsEpsilon(s.east,s.west,f.EPSILON10)){var p,g=i._surfaceHeight,b=i._extrudedHeight,E=!f.equalsEpsilon(g,b,0,f.EPSILON2);if(E){if(r=C(i,d),a(i._offsetAttribute)){var w=r.attributes.position.values.length/3,x=new Uint8Array(w);i._offsetAttribute===h.TOP?x=e(x,1,0,w/2):(p=i._offsetAttribute===h.NONE?0:1,x=e(x,p)),r.attributes.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}var P=t.fromRectangle3D(s,l,g,T),I=t.fromRectangle3D(s,l,b,S);o=t.union(P,I)}else{if(r=y(i,d),r.attributes.position.values=m.scaleToGeodeticHeight(r.attributes.position.values,g,l,!1),a(i._offsetAttribute)){var M=r.attributes.position.values.length,R=new Uint8Array(M/3);p=i._offsetAttribute===h.NONE?0:1,e(R,p),r.attributes.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}o=t.fromRectangle3D(s,l,g)}return new u({attributes:r.attributes,indices:r.indices,primitiveType:_.LINES,boundingSphere:o,offsetAttribute:i._offsetAttribute})}},b}),define("Core/ReferenceFrame",["./freezeObject"],function(e){"use strict";return e({FIXED:0,INERTIAL:1})}),define("Core/requestAnimationFrame",["./defined","./getTimestamp"],function(e,t){"use strict";function i(e){return r(e)}if("undefined"!=typeof window){var r=window.requestAnimationFrame;return function(){if(!e(r))for(var i=["webkit","moz","ms","o"],n=0,o=i.length;n<o&&!e(r);)r=window[i[n]+"RequestAnimationFrame"],++n;if(!e(r)){var a=0;r=function(e){var i=t(),r=Math.max(1e3/60-(i-a),0);return a=i+r,setTimeout(function(){e(a)},r)}}}(),i}}),define("Core/sampleTerrain",["../ThirdParty/when","./Check"],function(e,t){"use strict";function i(e,t,i){return e.readyPromise.then(function(){return r(e,t,i)})}function r(t,i,r){var a,s=t.tilingScheme,l=[],u={};for(a=0;a<r.length;++a){var c=s.positionToTileXY(r[a],i),d=c.toString();if(!u.hasOwnProperty(d)){var h={x:c.x,y:c.y,level:i,tilingScheme:s,terrainProvider:t,positions:[]};u[d]=h,l.push(h)}u[d].positions.push(r[a])}var p=[];for(a=0;a<l.length;++a){var f=l[a],m=f.terrainProvider.requestTileGeometry(f.x,f.y,f.level),_=m.then(n(f)).otherwise(o(f));p.push(_)}return e.all(p,function(){return r})}function n(e){var t=e.positions,i=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(e){for(var r=0;r<t.length;++r){var n=t[r];n.height=e.interpolateHeight(i,n.longitude,n.latitude)}}}function o(e){var t=e.positions;return function(){for(var e=0;e<t.length;++e){t[e].height=void 0}}}return i}),define("Core/sampleTerrainMostDetailed",["../ThirdParty/when","./Cartesian2","./defined","./DeveloperError","./sampleTerrain"],function(e,t,i,r,n){"use strict";function o(t,r){return t.readyPromise.then(function(){for(var s=[],l=[],u=t.availability,c=[],d=0;d<r.length;++d){var h=r[d],p=u.computeMaximumLevelAtPosition(h);if(l[d]=p,0===p){t.tilingScheme.positionToTileXY(h,1,a);var f=t.loadTileDataAvailability(a.x,a.y,1);i(f)&&c.push(f)}var m=s[p];i(m)||(s[p]=m=[]),m.push(h)}return e.all(c).then(function(){return e.all(s.map(function(e,r){if(i(e))return n(t,r,e)}))}).then(function(){for(var e=[],i=0;i<r.length;++i){var n=r[i];u.computeMaximumLevelAtPosition(n)!==l[i]&&e.push(n)}if(e.length>0)return o(t,e)}).then(function(){return r})})}var a=new t;return o}),define("Core/ScreenSpaceEventType",["./freezeObject"],function(e){"use strict";return e({LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19})}),define("Core/ScreenSpaceEventHandler",["./AssociativeArray","./Cartesian2","./defaultValue","./defined","./destroyObject","./DeveloperError","./FeatureDetection","./getTimestamp","./KeyboardEventModifier","./ScreenSpaceEventType"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,t,i){var r=e._element;if(r===document)return i.x=t.clientX,i.y=t.clientY,i;var n=r.getBoundingClientRect();return i.x=t.clientX-n.left,i.y=t.clientY-n.top,i}function d(e,t){var i=e;return r(t)&&(i+="+"+t),i}function h(e){return e.shiftKey?l.SHIFT:e.ctrlKey?l.CTRL:e.altKey?l.ALT:void 0}function p(e,t,i,r){function n(t){r(e,t)}i.addEventListener(t,n,!1),e._removalFunctions.push(function(){i.removeEventListener(t,n,!1)})}function f(e){var t=e._element,i=r(t.disableRootEvents)?t:document;a.supportsPointerEvents()?(p(e,"pointerdown",t,I),p(e,"pointerup",t,M),p(e,"pointermove",t,R),p(e,"pointercancel",t,M)):(p(e,"mousedown",t,y),p(e,"mouseup",i,b),p(e,"mousemove",i,S),p(e,"touchstart",t,A),p(e,"touchend",i,w),p(e,"touchmove",i,P),p(e,"touchcancel",i,w)),p(e,"dblclick",t,T);var n;n="onwheel"in t?"wheel":void 0!==document.onmousewheel?"mousewheel":"DOMMouseScroll",p(e,n,t,E)}function m(e){for(var t=e._removalFunctions,i=0;i<t.length;++i)t[i]()}function _(e){e._lastSeenTouchEvent=s()}function g(e){return s()-e._lastSeenTouchEvent>O.mouseEmulationIgnoreMilliseconds}function v(e,t,i){var r=e.x-t.x,n=e.y-t.y;return Math.sqrt(r*r+n*n)<i}function y(e,i){if(g(e)){var n=i.button;e._buttonDown[n]=!0;var o;if(n===L.LEFT)o=u.LEFT_DOWN;else if(n===L.MIDDLE)o=u.MIDDLE_DOWN;else{if(n!==L.RIGHT)return;o=u.RIGHT_DOWN}var a=c(e,i,e._primaryPosition);t.clone(a,e._primaryStartPosition),t.clone(a,e._primaryPreviousPosition);var s=h(i),l=e.getInputAction(o,s);r(l)&&(t.clone(a,N.position),l(N),i.preventDefault())}}function C(e,i,n,o){var a=h(o),s=e.getInputAction(i,a),l=e.getInputAction(n,a);if(r(s)||r(l)){var u=c(e,o,e._primaryPosition);if(r(s)&&(t.clone(u,F.position),s(F)),r(l)){v(e._primaryStartPosition,u,e._clickPixelTolerance)&&(t.clone(u,B.position),l(B))}}}function b(e,t){if(g(e)){var i=t.button;i!==L.LEFT&&i!==L.MIDDLE&&i!==L.RIGHT||(e._buttonDown[L.LEFT]&&(C(e,u.LEFT_UP,u.LEFT_CLICK,t),e._buttonDown[L.LEFT]=!1),e._buttonDown[L.MIDDLE]&&(C(e,u.MIDDLE_UP,u.MIDDLE_CLICK,t),e._buttonDown[L.MIDDLE]=!1),e._buttonDown[L.RIGHT]&&(C(e,u.RIGHT_UP,u.RIGHT_CLICK,t),e._buttonDown[L.RIGHT]=!1))}}function S(e,i){if(g(e)){var n=h(i),o=c(e,i,e._primaryPosition),a=e._primaryPreviousPosition,s=e.getInputAction(u.MOUSE_MOVE,n);r(s)&&(t.clone(a,z.startPosition),t.clone(o,z.endPosition),s(z)),t.clone(o,a),(e._buttonDown[L.LEFT]||e._buttonDown[L.MIDDLE]||e._buttonDown[L.RIGHT])&&i.preventDefault()}}function T(e,t){var i,n=t.button;if(n===L.LEFT){i=u.LEFT_DOUBLE_CLICK;var o=h(t),a=e.getInputAction(i,o);r(a)&&(c(e,t,k.position),a(k))}}function E(e,t){var i;if(r(t.deltaY)){var n=t.deltaMode;i=n===t.DOM_DELTA_PIXEL?-t.deltaY:n===t.DOM_DELTA_LINE?40*-t.deltaY:120*-t.deltaY}else i=t.detail>0?-120*t.detail:t.wheelDelta;if(r(i)){var o=h(t),a=e.getInputAction(u.WHEEL,o);r(a)&&(a(i),t.preventDefault())}}function A(e,i){_(e);var r,n,o,a=i.changedTouches,s=a.length,l=e._positions;for(r=0;r<s;++r)n=a[r],o=n.identifier,l.set(o,c(e,n,new t));x(e,i);var u=e._previousPositions;for(r=0;r<s;++r)n=a[r],o=n.identifier,u.set(o,t.clone(l.get(o)))}function w(e,t){_(e);var i,r,n,o=t.changedTouches,a=o.length,s=e._positions;for(i=0;i<a;++i)r=o[i],n=r.identifier,s.remove(n);x(e,t);var l=e._previousPositions;for(i=0;i<a;++i)r=o[i],n=r.identifier,l.remove(n)}function x(e,i){var n,o,a=h(i),s=e._positions,l=s.length,c=e._isPinching;if(1!==l&&e._buttonDown[L.LEFT]){if(e._buttonDown[L.LEFT]=!1,r(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),n=e.getInputAction(u.LEFT_UP,a),r(n)&&(t.clone(e._primaryPosition,G.position),n(G)),0===l&&!e._isTouchHolding&&(o=e.getInputAction(u.LEFT_CLICK,a),r(o))){v(e._primaryStartPosition,e._previousPositions.values[0],e._clickPixelTolerance)&&(t.clone(e._primaryPosition,H.position),o(H))}e._isTouchHolding=!1}if(0===l&&c&&(e._isPinching=!1,n=e.getInputAction(u.PINCH_END,a),r(n)&&n()),1===l&&!c){var d=s.values[0];t.clone(d,e._primaryPosition),t.clone(d,e._primaryStartPosition),t.clone(d,e._primaryPreviousPosition),e._buttonDown[L.LEFT]=!0,n=e.getInputAction(u.LEFT_DOWN,a),r(n)&&(t.clone(d,V.position),n(V)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,o=e.getInputAction(u.RIGHT_CLICK,a),r(o))){v(e._primaryStartPosition,e._previousPositions.values[0],e._holdPixelTolerance)&&(t.clone(e._primaryPosition,W.position),o(W))}},O.touchHoldDelayMilliseconds),i.preventDefault()}2!==l||c||(e._isPinching=!0,n=e.getInputAction(u.PINCH_START,a),r(n)&&(t.clone(s.values[0],U.position1),t.clone(s.values[1],U.position2),n(U),i.preventDefault()))}function P(e,i){_(e);var n,o,a,s=i.changedTouches,l=s.length,u=e._positions;for(n=0;n<l;++n){o=s[n],a=o.identifier;var d=u.get(a);r(d)&&c(e,o,d)}D(e,i);var h=e._previousPositions;for(n=0;n<l;++n)o=s[n],a=o.identifier,t.clone(u.get(a),h.get(a))}function D(e,i){var n,o=h(i),a=e._positions,s=e._previousPositions,l=a.length;if(1===l&&e._buttonDown[L.LEFT]){var c=a.values[0];t.clone(c,e._primaryPosition);var d=e._primaryPreviousPosition;n=e.getInputAction(u.MOUSE_MOVE,o),r(n)&&(t.clone(d,q.startPosition),t.clone(c,q.endPosition),n(q)),t.clone(c,d),i.preventDefault()}else if(2===l&&e._isPinching&&(n=e.getInputAction(u.PINCH_MOVE,o),r(n))){var p=a.values[0],f=a.values[1],m=s.values[0],_=s.values[1],g=f.x-p.x,v=f.y-p.y,y=.25*Math.sqrt(g*g+v*v),C=_.x-m.x,b=_.y-m.y,S=.25*Math.sqrt(C*C+b*b),T=.125*(f.y+p.y),E=.125*(_.y+m.y),A=Math.atan2(v,g),w=Math.atan2(b,C);t.fromElements(0,S,Y.distance.startPosition),t.fromElements(0,y,Y.distance.endPosition),t.fromElements(w,E,Y.angleAndHeight.startPosition),t.fromElements(A,T,Y.angleAndHeight.endPosition),n(Y)}}function I(e,i){if(i.target.setPointerCapture(i.pointerId),"touch"===i.pointerType){var r=e._positions,n=i.pointerId;r.set(n,c(e,i,new t)),x(e,i);e._previousPositions.set(n,t.clone(r.get(n)))}else y(e,i)}function M(e,t){if("touch"===t.pointerType){var i=e._positions,r=t.pointerId;i.remove(r),x(e,t);e._previousPositions.remove(r)}else b(e,t)}function R(e,i){if("touch"===i.pointerType){var n=e._positions,o=i.pointerId,a=n.get(o);if(!r(a))return;c(e,i,a),D(e,i);var s=e._previousPositions;t.clone(n.get(o),s.get(o))}else S(e,i)}function O(r){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-O.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new t,this._primaryPosition=new t,this._primaryPreviousPosition=new t,this._positions=new e,this._previousPositions=new e,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=i(r,document),f(this)}var L={LEFT:0,MIDDLE:1,RIGHT:2},N={position:new t},F={position:new t},B={position:new t},z={startPosition:new t,endPosition:new t},k={position:new t},V={position:new t},U={position1:new t,position2:new t},G={position:new t},H={position:new t},W={position:new t},q={startPosition:new t,endPosition:new t},Y={distance:{startPosition:new t,endPosition:new t},angleAndHeight:{startPosition:new t,endPosition:new t}};return O.prototype.setInputAction=function(e,t,i){var r=d(t,i);this._inputEvents[r]=e},O.prototype.getInputAction=function(e,t){var i=d(e,t);return this._inputEvents[i]},O.prototype.removeInputAction=function(e,t){var i=d(e,t);delete this._inputEvents[i]},O.prototype.isDestroyed=function(){return!1},O.prototype.destroy=function(){return m(this),n(this)},O.mouseEmulationIgnoreMilliseconds=800,O.touchHoldDelayMilliseconds=1500,O}),define("Core/ShowGeometryInstanceAttribute",["./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError"],function(e,t,i,r,n){"use strict";function o(e){e=t(e,!0),this.value=o.toValue(e)}return r(o.prototype,{componentDatatype:{get:function(){return e.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}}),o.toValue=function(e,t){return i(t)?(t[0]=e,t):new Uint8Array([e])},o}),define("Core/Simon1994PlanetaryPositions",["./Cartesian3","./defined","./DeveloperError","./JulianDate","./Math","./Matrix3","./TimeConstants","./TimeStandard"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){var t=6.239996+.0172019696544*e;return.001657*Math.sin(t+.01671*Math.sin(t))}function u(e,t){t=r.addSeconds(e,C,t);var i=r.totalDays(t)-b;return t=r.addSeconds(t,l(i),t)}function c(i,r,a,s,l,u,c){a<0&&(a=-a,l+=n.PI);var p=i*(1-r),f=s-l,_=l,g=h(u-s,r);d(r,0);m(f,a,_,w);var v=p*(1+r),y=Math.cos(g),C=Math.sin(g),b=1+r*y,S=v/b;return t(c)?(c.x=S*y,c.y=S*C,c.z=0):c=new e(S*y,S*C,0),o.multiplyByVector(w,c,c)}function d(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function h(e,t){return f(p(e,t),t)}function p(e,t){var i=Math.floor(e/n.TWO_PI);e-=i*n.TWO_PI;var r,o=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),a=Number.MAX_VALUE;for(r=0;r<x&&Math.abs(a-o)>P;++r){a=o;o=a-(a-t*Math.sin(a)-e)/(1-t*Math.cos(a))}return a=o+i*n.TWO_PI}function f(e,t){var i=Math.floor(e/n.TWO_PI);e-=i*n.TWO_PI;var r=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),a=Math.atan2(o,r);return a=n.zeroToTwoPi(a),e<0&&(a-=n.TWO_PI),a+=i*n.TWO_PI}function m(e,i,r,n){var a=Math.cos(e),s=Math.sin(e),l=Math.cos(i),u=Math.sin(i),c=Math.cos(r),d=Math.sin(r);return t(n)?(n[0]=c*a-d*s*l,n[1]=d*a+c*s*l,n[2]=s*u,n[3]=-c*s-d*a*l,n[4]=-d*s+c*a*l,n[5]=a*u,n[6]=d*u,n[7]=-c*u,n[8]=l):n=new o(c*a-d*s*l,-c*s-d*a*l,d*u,d*a+c*s*l,-d*s+c*a*l,-c*u,s*u,a*u,l),n}function _(e,t){u(e,we);var i=we.dayNumber-S.dayNumber+(we.secondsOfDay-S.secondsOfDay)/a.SECONDS_PER_DAY,r=i/(10*a.DAYS_PER_JULIAN_CENTURY),n=.3595362*r,o=D+V*Math.cos(R*n)+X*Math.sin(R*n)+U*Math.cos(O*n)+Q*Math.sin(O*n)+G*Math.cos(L*n)+K*Math.sin(L*n)+H*Math.cos(N*n)+Z*Math.sin(N*n)+W*Math.cos(F*n)+J*Math.sin(F*n)+q*Math.cos(B*n)+$*Math.sin(B*n)+Y*Math.cos(z*n)+ee*Math.sin(z*n)+j*Math.cos(k*n)+te*Math.sin(k*n),s=I+M*r+ce*Math.cos(ie*n)+ve*Math.sin(ie*n)+de*Math.cos(re*n)+ye*Math.sin(re*n)+he*Math.cos(ne*n)+Ce*Math.sin(ne*n)+pe*Math.cos(oe*n)+be*Math.sin(oe*n)+fe*Math.cos(ae*n)+Se*Math.sin(ae*n)+me*Math.cos(se*n)+Te*Math.sin(se*n)+_e*Math.cos(le*n)+Ee*Math.sin(le*n)+ge*Math.cos(ue*n)+Ae*Math.sin(ue*n);return c(o,.0167086342-.0004203654*r,469.97289*A*r,102.93734808*E+11612.3529*A*r,174.87317577*E-8679.27034*A*r,s,t)}function g(e,t){u(e,we);var i=we.dayNumber-S.dayNumber+(we.secondsOfDay-S.secondsOfDay)/a.SECONDS_PER_DAY,r=i/a.DAYS_PER_JULIAN_CENTURY,n=r*r,o=n*r,s=o*r,l=383397.7725+.004*r,d=.055545526-1.6e-8*r,h=5.15668983*E,p=-8e-5*r+.02966*n-42e-6*o-1.3e-7*s,f=83.35324312*E,m=14643420.2669*r-38.2702*n-.045047*o+21301e-8*s,_=125.04455501*E,g=-6967919.3631*r+6.3602*n+.007625*o-3586e-8*s,v=218.31664563*E,y=1732559343.4847*r-6.391*n+.006588*o-3169e-8*s,C=297.85019547*E+A*(1602961601.209*r-6.3706*n+.006593*o-3169e-8*s),b=93.27209062*E+A*(1739527262.8478*r-12.7512*n-.001037*o+417e-8*s),w=134.96340251*E+A*(1717915923.2178*r+31.8792*n+.051635*o-2447e-7*s),x=357.52910918*E+A*(129596581.0481*r-.5532*n+136e-6*o-1149e-8*s),P=310.17137918*E-A*(6967051.436*r+6.2068*n+.007618*o-3219e-8*s),D=2*C,I=4*C,M=6*C,R=2*w,O=3*w,L=4*w,N=2*b;l+=3400.4*Math.cos(D)-635.6*Math.cos(D-w)-235.6*Math.cos(w)+218.1*Math.cos(D-x)+181*Math.cos(D+w),d+=.014216*Math.cos(D-w)+.008551*Math.cos(D-R)-.001383*Math.cos(w)+.001356*Math.cos(D+w)-.001147*Math.cos(I-O)-914e-6*Math.cos(I-R)+869e-6*Math.cos(D-x-w)-627e-6*Math.cos(D)-394e-6*Math.cos(I-L)+282e-6*Math.cos(D-x-R)-279e-6*Math.cos(C-w)-236e-6*Math.cos(R)+231e-6*Math.cos(I)+229e-6*Math.cos(M-L)-201e-6*Math.cos(R-N),p+=486.26*Math.cos(D-N)-40.13*Math.cos(D)+37.51*Math.cos(N)+25.73*Math.cos(R-N)+19.97*Math.cos(D-x-N),m+=-55609*Math.sin(D-w)-34711*Math.sin(D-R)-9792*Math.sin(w)+9385*Math.sin(I-O)+7505*Math.sin(I-R)+5318*Math.sin(D+w)+3484*Math.sin(I-L)-3417*Math.sin(D-x-w)-2530*Math.sin(M-L)-2376*Math.sin(D)-2075*Math.sin(D-O)-1883*Math.sin(R)-1736*Math.sin(M-5*w)+1626*Math.sin(x)-1370*Math.sin(M-O),g+=-5392*Math.sin(D-N)-540*Math.sin(x)-441*Math.sin(D)+423*Math.sin(N)-288*Math.sin(R-N),y+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-w)-662.5*Math.sin(x)+396.3*Math.sin(w)-218*Math.sin(D-x);var F=2*P,B=3*P;p+=46.997*Math.cos(P)*r-.614*Math.cos(D-N+P)*r+.614*Math.cos(D-N-P)*r-.0297*Math.cos(F)*n-.0335*Math.cos(P)*n+.0012*Math.cos(D-N+F)*n-16e-5*Math.cos(P)*o+4e-5*Math.cos(B)*o+4e-5*Math.cos(F)*o;var z=2.116*Math.sin(P)*r-.111*Math.sin(D-N-P)*r-.0015*Math.sin(P)*n;return m+=z,y+=z,g+=-520.77*Math.sin(P)*r+13.66*Math.sin(D-N+P)*r+1.12*Math.sin(D-P)*r-1.06*Math.sin(N-P)*r+.66*Math.sin(F)*n+.371*Math.sin(P)*n-.035*Math.sin(D-N+F)*n-.015*Math.sin(D-N+P)*n+.0014*Math.sin(P)*o-.0011*Math.sin(B)*o-9e-4*Math.sin(F)*o,l*=T,c(l,d,h+p*A,f+m*A,_+g*A,v+y*A,t)}function v(t,i){return i=g(t,i),e.multiplyByScalar(i,xe,i)}var y={},C=32.184,b=2451545,S=new r(2451545,0,s.TAI),T=1e3,E=n.RADIANS_PER_DEGREE,A=n.RADIANS_PER_ARCSECOND,w=new o,x=50,P=n.EPSILON8,D=149598022260.7121,I=100.46645683*E,M=1295977422.83429*A,R=16002,O=21863,L=32004,N=10931,F=14529,B=16368,z=15318,k=32794,V=64e-7*14959787e4,U=-2273887.624,G=927506.794,H=14959787e4*-8e-7,W=32e-7*14959787e4,q=-613351.267,Y=284235.953,j=-164557.657,X=-2243968.05,Q=-688150.202,K=1017265.516,Z=807828.498,J=14e-7*14959787e4,$=359034.888,ee=14959787e4*-28e-7,te=329115.314,ie=10,re=16002,ne=21863,oe=10931,ae=1473,se=32004,le=4387,ue=73,ce=-325e-7,de=-322e-7,he=1e-7*-79,pe=232*1e-7,fe=1e-7*-52,me=97e-7,_e=55e-7,ge=-41e-7,ve=-105e-7,ye=-137e-7,Ce=258e-7,be=35e-7,Se=1e-7*-116,Te=-88e-7,Ee=-112e-7,Ae=-8e-6,we=new r(0,0,s.TAI),xe=-.01215058143522694,Pe=new o(1.0000000000000002,5.619723173785822e-16,4.690511510146299e-19,-5.154129427414611e-16,.9174820620691819,-.39777715593191376,-2.23970096136568e-16,.39777715593191376,.9174820620691819),De=new e;return y.computeSunPositionInEarthInertialFrame=function(i,n){return t(i)||(i=r.now()),t(n)||(n=new e),De=_(i,De),n=e.negate(De,n),v(i,De),e.subtract(n,De,n),o.multiplyByVector(Pe,n,n),n},y.computeMoonPositionInEarthInertialFrame=function(e,i){return t(e)||(e=r.now()),i=g(e,i),o.multiplyByVector(Pe,i,i),i},y}),define("Core/SimplePolylineGeometry",["./ArcType","./BoundingSphere","./Cartesian3","./Color","./ComponentDatatype","./defaultValue","./defined","./deprecationWarning","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PolylinePipeline","./PrimitiveType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e,t,i,n,o,a,s){var l,u=m.numberOfPoints(e,t,o),c=i.red,d=i.green,h=i.blue,p=i.alpha,f=n.red,_=n.green,g=n.blue,v=n.alpha;if(r.equals(i,n)){for(l=0;l<u;l++)a[s++]=r.floatToByte(c),a[s++]=r.floatToByte(d),a[s++]=r.floatToByte(h),a[s++]=r.floatToByte(p);return s}var y=(f-c)/u,C=(_-d)/u,b=(g-h)/u,S=(v-p)/u,T=s;for(l=0;l<u;l++)a[T++]=r.floatToByte(c+l*y),a[T++]=r.floatToByte(d+l*C),a[T++]=r.floatToByte(h+l*b),a[T++]=r.floatToByte(p+l*S);return T}function v(t){t=o(t,o.EMPTY_OBJECT);var n=t.positions,s=t.colors,l=o(t.colorsPerVertex,!1);this._positions=n,this._colors=s,this._colorsPerVertex=l,this._arcType=o(t.arcType,e.GEODESIC),this._granularity=o(t.granularity,f.RADIANS_PER_DEGREE),this._ellipsoid=o(t.ellipsoid,u.WGS84),this._workerName="createSimplePolylineGeometry";var c=1+n.length*i.packedLength;c+=a(s)?1+s.length*r.packedLength:1,this.packedLength=c+u.packedLength+3}v.pack=function(e,t,n){n=o(n,0);var s,l=e._positions,c=l.length;for(t[n++]=c,s=0;s<c;++s,n+=i.packedLength)i.pack(l[s],t,n);var d=e._colors;for(c=a(d)?d.length:0,t[n++]=c,s=0;s<c;++s,n+=r.packedLength)r.pack(d[s],t,n);return u.pack(e._ellipsoid,t,n),n+=u.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t},v.unpack=function(e,t,n){t=o(t,0);var s,l=e[t++],c=new Array(l);for(s=0;s<l;++s,t+=i.packedLength)c[s]=i.unpack(e,t);l=e[t++];var d=l>0?new Array(l):void 0;for(s=0;s<l;++s,t+=r.packedLength)d[s]=r.unpack(e,t);var h=u.unpack(e,t);t+=u.packedLength;var p=1===e[t++],f=e[t++],m=e[t];return a(n)?(n._positions=c,n._colors=d,n._ellipsoid=h,n._colorsPerVertex=p,n._arcType=f,n._granularity=m,n):new v({positions:c,colors:d,ellipsoid:h,colorsPerVertex:p,arcType:f,granularity:m})};var y=new Array(2),C=new Array(2),b={positions:y,height:C,ellipsoid:void 0,minDistance:void 0,granularity:void 0};return v.createGeometry=function(o){var s,l,u,v,S,T=o._positions,E=o._colors,A=o._colorsPerVertex,w=o._arcType,x=o._granularity,P=o._ellipsoid,D=f.chordLength(x,P.maximumRadius),I=a(E)&&!A,M=T.length,R=0;if(w===e.GEODESIC||w===e.RHUMB){var O,L,N;w===e.GEODESIC?(O=f.chordLength(x,P.maximumRadius),L=m.numberOfPoints,N=m.generateArc):(O=x,L=m.numberOfPointsRhumbLine,N=m.generateRhumbArc);var F=m.extractHeights(T,P),B=b;if(w===e.GEODESIC?B.minDistance=D:B.granularity=x,B.ellipsoid=P,I){var z=0;for(s=0;s<M-1;s++)z+=L(T[s],T[s+1],O)+1;l=new Float64Array(3*z),v=new Uint8Array(4*z),B.positions=y,B.height=C;var k=0;for(s=0;s<M-1;++s){y[0]=T[s],y[1]=T[s+1],C[0]=F[s],C[1]=F[s+1];var V=N(B);if(a(E)){var U=V.length/3;S=E[s];for(var G=0;G<U;++G)v[k++]=r.floatToByte(S.red),v[k++]=r.floatToByte(S.green),v[k++]=r.floatToByte(S.blue),v[k++]=r.floatToByte(S.alpha)}l.set(V,R),R+=V.length}}else if(B.positions=T,B.height=F,l=new Float64Array(N(B)),a(E)){for(v=new Uint8Array(l.length/3*4),s=0;s<M-1;++s){var H=T[s],W=T[s+1],q=E[s],Y=E[s+1];R=g(H,W,q,Y,D,v,R)}var j=E[M-1];v[R++]=r.floatToByte(j.red),v[R++]=r.floatToByte(j.green),v[R++]=r.floatToByte(j.blue),v[R++]=r.floatToByte(j.alpha)}}else{u=I?2*M-2:M,l=new Float64Array(3*u),v=a(E)?new Uint8Array(4*u):void 0;var X=0,Q=0;for(s=0;s<M;++s){var K=T[s];if(I&&s>0&&(i.pack(K,l,X),X+=3,S=E[s-1],v[Q++]=r.floatToByte(S.red),v[Q++]=r.floatToByte(S.green),v[Q++]=r.floatToByte(S.blue),v[Q++]=r.floatToByte(S.alpha)),I&&s===M-1)break;i.pack(K,l,X),X+=3,a(E)&&(S=E[s],v[Q++]=r.floatToByte(S.red),v[Q++]=r.floatToByte(S.green),v[Q++]=r.floatToByte(S.blue),v[Q++]=r.floatToByte(S.alpha))}}var Z=new h;Z.position=new d({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:l}),a(E)&&(Z.color=new d({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:4,values:v,normalize:!0})),u=l.length/3;var J=2*(u-1),$=p.createTypedArray(u,J),ee=0;for(s=0;s<u-1;++s)$[ee++]=s,$[ee++]=s+1;return new c({attributes:Z,indices:$,primitiveType:_.LINES,boundingSphere:t.fromPoints(T)})},v}),define("Core/SphereGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipsoidGeometry","./VertexFormat"],function(e,t,i,r,n,o){"use strict";function a(t){var r=i(t.radius,1),o=new e(r,r,r),a={radii:o,stackPartitions:t.stackPartitions,slicePartitions:t.slicePartitions,vertexFormat:t.vertexFormat};this._ellipsoidGeometry=new n(a),this._workerName="createSphereGeometry"}a.packedLength=n.packedLength,a.pack=function(e,t,i){return n.pack(e._ellipsoidGeometry,t,i)};var s=new n,l={radius:void 0,radii:new e,vertexFormat:new o,stackPartitions:void 0,slicePartitions:void 0};return a.unpack=function(t,i,u){var c=n.unpack(t,i,s);return l.vertexFormat=o.clone(c._vertexFormat,l.vertexFormat),l.stackPartitions=c._stackPartitions,l.slicePartitions=c._slicePartitions,r(u)?(e.clone(c._radii,l.radii),u._ellipsoidGeometry=new n(l),u):(l.radius=c._radii.x,new a(l))},a.createGeometry=function(e){return n.createGeometry(e._ellipsoidGeometry)},a}),define("Core/SphereOutlineGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipsoidOutlineGeometry"],function(e,t,i,r,n){"use strict";function o(t){var r=i(t.radius,1),o=new e(r,r,r),a={radii:o,stackPartitions:t.stackPartitions,slicePartitions:t.slicePartitions,subdivisions:t.subdivisions};this._ellipsoidGeometry=new n(a),this._workerName="createSphereOutlineGeometry"}o.packedLength=n.packedLength,o.pack=function(e,t,i){return n.pack(e._ellipsoidGeometry,t,i)};var a=new n,s={radius:void 0,radii:new e,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};return o.unpack=function(t,i,l){var u=n.unpack(t,i,a);return s.stackPartitions=u._stackPartitions,s.slicePartitions=u._slicePartitions,s.subdivisions=u._subdivisions,r(l)?(e.clone(u._radii,s.radii),l._ellipsoidGeometry=new n(s),l):(s.radius=u._radii.x,new o(s))},o.createGeometry=function(e){return n.createGeometry(e._ellipsoidGeometry)},o}),define("Core/Spherical",["./Check","./defaultValue","./defined"],function(e,t,i){"use strict";function r(e,i,r){this.clock=t(e,0),this.cone=t(i,0),this.magnitude=t(r,1)}return r.fromCartesian3=function(e,t){var n=e.x,o=e.y,a=e.z,s=n*n+o*o;return i(t)||(t=new r),t.clock=Math.atan2(o,n),t.cone=Math.atan2(Math.sqrt(s),a),t.magnitude=Math.sqrt(s+a*a),t},r.clone=function(e,t){if(i(e))return i(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new r(e.clock,e.cone,e.magnitude)},r.normalize=function(e,t){return i(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new r(e.clock,e.cone,1)},r.equals=function(e,t){return e===t||i(e)&&i(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude},r.equalsEpsilon=function(e,r,n){return n=t(n,0),e===r||i(e)&&i(r)&&Math.abs(e.clock-r.clock)<=n&&Math.abs(e.cone-r.cone)<=n&&Math.abs(e.magnitude-r.magnitude)<=n},r.prototype.equals=function(e){return r.equals(this,e)},r.prototype.clone=function(e){return r.clone(this,e)},r.prototype.equalsEpsilon=function(e,t){return r.equalsEpsilon(this,e,t)},r.prototype.toString=function(){return"("+this.clock+", "+this.cone+", "+this.magnitude+")"},r}),define("Core/subdivideArray",["./defined","./DeveloperError"],function(e,t){"use strict";function i(e,t){for(var i=[],r=e.length,n=0;n<r;){var o=Math.ceil((r-n)/t--);i.push(e.slice(n,n+o)),n+=o}return i}return i}),define("Core/TerrainData",["./defineProperties","./DeveloperError"],function(e,t){"use strict";function i(){t.throwInstantiationError()}return e(i.prototype,{credits:{get:t.throwInstantiationError},waterMask:{get:t.throwInstantiationError}}),i.prototype.interpolateHeight=t.throwInstantiationError,i.prototype.isChildAvailable=t.throwInstantiationError,i.prototype.createMesh=t.throwInstantiationError,i.prototype.upsample=t.throwInstantiationError,i.prototype.wasCreatedByUpsampling=t.throwInstantiationError,i}),define("Core/TileEdge",[],function(){"use strict";return{WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7}}),define("Core/TilingScheme",["./defineProperties","./DeveloperError"],function(e,t){"use strict";function i(e){}return e(i.prototype,{ellipsoid:{get:t.throwInstantiationError},rectangle:{get:t.throwInstantiationError},projection:{get:t.throwInstantiationError}}),i.prototype.getNumberOfXTilesAtLevel=t.throwInstantiationError,i.prototype.getNumberOfYTilesAtLevel=t.throwInstantiationError,i.prototype.rectangleToNativeRectangle=t.throwInstantiationError,i.prototype.tileXYToNativeRectangle=t.throwInstantiationError,i.prototype.tileXYToRectangle=t.throwInstantiationError,i.prototype.positionToTileXY=t.throwInstantiationError,i}),define("Core/TimeIntervalCollection",["./binarySearch","./defaultValue","./defined","./defineProperties","./DeveloperError","./Event","./GregorianDate","./isLeapYear","./Iso8601","./JulianDate","./TimeInterval"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t){return u.compare(e.start,t.start)}function h(e){if(this._intervals=[],this._changedEvent=new o,i(e))for(var t=e.length,r=0;r<t;r++)this.addInterval(e[r])}function p(e,t,r){i(r)||(r=new u),u.toGregorianDate(e,_);var n=_.millisecond+t.millisecond,o=_.second+t.second,a=_.minute+t.minute,l=_.hour+t.hour,c=_.day+t.day,d=_.month+t.month,h=_.year+t.year;for(n>=1e3&&(o+=Math.floor(n/1e3),n%=1e3),o>=60&&(a+=Math.floor(o/60),o%=60),a>=60&&(l+=Math.floor(a/60),a%=60),l>=24&&(c+=Math.floor(l/24),l%=24),g[2]=s(h)?29:28;c>g[d]||d>=13;)c>g[d]&&(c-=g[d],++d),d>=13&&(--d, -h+=Math.floor(d/12),d%=12,++d),g[2]=s(h)?29:28;return _.millisecond=n,_.second=o,_.minute=a,_.hour=l,_.day=c,_.month=d,_.year=h,u.fromGregorianDate(_,r)}function f(e,t){if(!i(e)||0===e.length)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,"P"===e[0]){var r=e.match(y);if(!i(r))return!1;if(i(r[1])&&(t.year=Number(r[1].replace(",","."))),i(r[2])&&(t.month=Number(r[2].replace(",","."))),i(r[3])&&(t.day=7*Number(r[3].replace(",","."))),i(r[4])&&(t.day+=Number(r[4].replace(",","."))),i(r[5])&&(t.hour=Number(r[5].replace(",","."))),i(r[6])&&(t.minute=Number(r[6].replace(",","."))),i(r[7])){var n=Number(r[7].replace(",","."));t.second=Math.floor(n),t.millisecond=n%1*1e3}}else"Z"!==e[e.length-1]&&(e+="Z"),u.toGregorianDate(u.fromIso8601(e,v),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}r(h.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){var e=this._intervals;return 0===e.length?void 0:e[0].start}},isStartIncluded:{get:function(){var e=this._intervals;return 0!==e.length&&e[0].isStartIncluded}},stop:{get:function(){var e=this._intervals,t=e.length;return 0===t?void 0:e[t-1].stop}},isStopIncluded:{get:function(){var e=this._intervals,t=e.length;return 0!==t&&e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return 0===this._intervals.length}}}),h.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof h))return!1;var i=this._intervals,r=e._intervals,n=i.length;if(n!==r.length)return!1;for(var o=0;o<n;o++)if(!c.equals(i[o],r[o],t))return!1;return!0},h.prototype.get=function(e){return this._intervals[e]},h.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))},h.prototype.findIntervalContainingDate=function(e){var t=this.indexOf(e);return t>=0?this._intervals[t]:void 0},h.prototype.findDataForIntervalContainingDate=function(e){var t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0},h.prototype.contains=function(e){return this.indexOf(e)>=0};var m=new c;h.prototype.indexOf=function(t){var i=this._intervals;m.start=t,m.stop=t;var r=e(i,m,d);return r>=0?i[r].isStartIncluded?r:r>0&&i[r-1].stop.equals(t)&&i[r-1].isStopIncluded?r-1:~r:(r=~r,r>0&&r-1<i.length&&c.contains(i[r-1],t)?r-1:~r)},h.prototype.findInterval=function(e){e=t(e,t.EMPTY_OBJECT);for(var r=e.start,n=e.stop,o=e.isStartIncluded,a=e.isStopIncluded,s=this._intervals,l=0,u=s.length;l<u;l++){var c=s[l];if((!i(r)||c.start.equals(r))&&(!i(n)||c.stop.equals(n))&&(!i(o)||c.isStartIncluded===o)&&(!i(a)||c.isStopIncluded===a))return s[l]}},h.prototype.addInterval=function(t,r){if(!t.isEmpty){var n=this._intervals;if(0===n.length||u.greaterThan(t.start,n[n.length-1].stop))return n.push(t),void this._changedEvent.raiseEvent(this);var o=e(n,t,d);o<0?o=~o:o>0&&t.isStartIncluded&&n[o-1].isStartIncluded&&n[o-1].start.equals(t.start)?--o:o<n.length&&!t.isStartIncluded&&n[o].isStartIncluded&&n[o].start.equals(t.start)&&++o;var a;for(o>0&&((a=u.compare(n[o-1].stop,t.start))>0||0===a&&(n[o-1].isStopIncluded||t.isStartIncluded))&&((i(r)?r(n[o-1].data,t.data):n[o-1].data===t.data)?(t=new c(u.greaterThan(t.stop,n[o-1].stop)?{start:n[o-1].start,stop:t.stop,isStartIncluded:n[o-1].isStartIncluded,isStopIncluded:t.isStopIncluded,data:t.data}:{start:n[o-1].start,stop:n[o-1].stop,isStartIncluded:n[o-1].isStartIncluded,isStopIncluded:n[o-1].isStopIncluded||t.stop.equals(n[o-1].stop)&&t.isStopIncluded,data:t.data}),n.splice(o-1,1),--o):(a=u.compare(n[o-1].stop,t.stop),(a>0||0===a&&n[o-1].isStopIncluded&&!t.isStopIncluded)&&n.splice(o,0,new c({start:t.stop,stop:n[o-1].stop,isStartIncluded:!t.isStopIncluded,isStopIncluded:n[o-1].isStopIncluded,data:n[o-1].data})),n[o-1]=new c({start:n[o-1].start,stop:t.start,isStartIncluded:n[o-1].isStartIncluded,isStopIncluded:!t.isStartIncluded,data:n[o-1].data})));o<n.length&&((a=u.compare(t.stop,n[o].start))>0||0===a&&(t.isStopIncluded||n[o].isStartIncluded));)if(i(r)?r(n[o].data,t.data):n[o].data===t.data)t=new c({start:t.start,stop:u.greaterThan(n[o].stop,t.stop)?n[o].stop:t.stop,isStartIncluded:t.isStartIncluded,isStopIncluded:u.greaterThan(n[o].stop,t.stop)?n[o].isStopIncluded:t.isStopIncluded,data:t.data}),n.splice(o,1);else{if(n[o]=new c({start:t.stop,stop:n[o].stop,isStartIncluded:!t.isStopIncluded,isStopIncluded:n[o].isStopIncluded,data:n[o].data}),!n[o].isEmpty)break;n.splice(o,1)}n.splice(o,0,t),this._changedEvent.raiseEvent(this)}},h.prototype.removeInterval=function(t){if(t.isEmpty)return!1;var i=this._intervals,r=e(i,t,d);r<0&&(r=~r);var n=!1;for(r>0&&(u.greaterThan(i[r-1].stop,t.start)||i[r-1].stop.equals(t.start)&&i[r-1].isStopIncluded&&t.isStartIncluded)&&(n=!0,(u.greaterThan(i[r-1].stop,t.stop)||i[r-1].isStopIncluded&&!t.isStopIncluded&&i[r-1].stop.equals(t.stop))&&i.splice(r,0,new c({start:t.stop,stop:i[r-1].stop,isStartIncluded:!t.isStopIncluded,isStopIncluded:i[r-1].isStopIncluded,data:i[r-1].data})),i[r-1]=new c({start:i[r-1].start,stop:t.start,isStartIncluded:i[r-1].isStartIncluded,isStopIncluded:!t.isStartIncluded,data:i[r-1].data})),r<i.length&&!t.isStartIncluded&&i[r].isStartIncluded&&t.start.equals(i[r].start)&&(n=!0,i.splice(r,0,new c({start:i[r].start,stop:i[r].start,isStartIncluded:!0,isStopIncluded:!0,data:i[r].data})),++r);r<i.length&&u.greaterThan(t.stop,i[r].stop);)n=!0,i.splice(r,1);return r<i.length&&t.stop.equals(i[r].stop)&&(n=!0,!t.isStopIncluded&&i[r].isStopIncluded?r+1<i.length&&i[r+1].start.equals(t.stop)&&i[r].data===i[r+1].data?(i.splice(r,1),i[r]=new c({start:i[r].start,stop:i[r].stop,isStartIncluded:!0,isStopIncluded:i[r].isStopIncluded,data:i[r].data})):i[r]=new c({start:t.stop,stop:t.stop,isStartIncluded:!0,isStopIncluded:!0,data:i[r].data}):i.splice(r,1)),r<i.length&&(u.greaterThan(t.stop,i[r].start)||t.stop.equals(i[r].start)&&t.isStopIncluded&&i[r].isStartIncluded)&&(n=!0,i[r]=new c({start:t.stop,stop:i[r].stop,isStartIncluded:!t.isStopIncluded,isStopIncluded:i[r].isStopIncluded,data:i[r].data})),n&&this._changedEvent.raiseEvent(this),n},h.prototype.intersect=function(e,t,r){for(var n=new h,o=0,a=0,s=this._intervals,l=e._intervals;o<s.length&&a<l.length;){var d=s[o],p=l[a];if(u.lessThan(d.stop,p.start))++o;else if(u.lessThan(p.stop,d.start))++a;else{if(i(r)||i(t)&&t(d.data,p.data)||!i(t)&&p.data===d.data){var f=c.intersect(d,p,new c,r);f.isEmpty||n.addInterval(f,t)}u.lessThan(d.stop,p.stop)||d.stop.equals(p.stop)&&!d.isStopIncluded&&p.isStopIncluded?++o:++a}}return n},h.fromJulianDateArray=function(e,r){i(r)||(r=new h);var n,o=e.julianDates,a=o.length,s=e.dataCallback,u=t(e.isStartIncluded,!0),d=t(e.isStopIncluded,!0),p=t(e.leadingInterval,!1),f=t(e.trailingInterval,!1),m=0;p&&(++m,n=new c({start:l.MINIMUM_VALUE,stop:o[0],isStartIncluded:!0,isStopIncluded:!u}),n.data=i(s)?s(n,r.length):r.length,r.addInterval(n));for(var _=0;_<a-1;++_){var g=o[_],v=o[_+1];n=new c({start:g,stop:v,isStartIncluded:r.length!==m||u,isStopIncluded:_===a-2&&d}),n.data=i(s)?s(n,r.length):r.length,r.addInterval(n),g=v}return f&&(n=new c({start:o[a-1],stop:l.MAXIMUM_VALUE,isStartIncluded:!d,isStopIncluded:!0}),n.data=i(s)?s(n,r.length):r.length,r.addInterval(n)),r};var _=new a,g=[0,31,28,31,30,31,30,31,31,30,31,30,31],v=new u,y=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/,C=new a;return h.fromIso8601=function(e,t){var i=e.iso8601.split("/"),r=u.fromIso8601(i[0]),n=u.fromIso8601(i[1]),o=[];if(f(i[2],C)){var a=u.clone(r);for(o.push(a);u.compare(a,n)<0;){a=p(a,C);u.compare(n,a)<=0&&u.clone(n,a),o.push(a)}}else o.push(r,n);return h.fromJulianDateArray({julianDates:o,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)},h.fromIso8601DateArray=function(e,t){return h.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(e){return u.fromIso8601(e)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)},h.fromIso8601DurationArray=function(e,r){for(var n,o,a=e.epoch,s=e.iso8601Durations,l=t(e.relativeToPrevious,!1),u=[],c=s.length,d=0;d<c;++d)(f(s[d],C)||0===d)&&(n=l&&i(o)?p(o,C):p(a,C),u.push(n),o=n);return h.fromJulianDateArray({julianDates:u,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},r)},h}),define("Core/TranslationRotationScale",["./Cartesian3","./defaultValue","./defined","./Quaternion"],function(e,t,i,r){"use strict";var n=new e(1,1,1),o=e.ZERO,a=r.IDENTITY,s=function(i,s,l){this.translation=e.clone(t(i,o)),this.rotation=r.clone(t(s,a)),this.scale=e.clone(t(l,n))};return s.prototype.equals=function(t){return this===t||i(t)&&e.equals(this.translation,t.translation)&&r.equals(this.rotation,t.rotation)&&e.equals(this.scale,t.scale)},s}),define("Core/VideoSynchronizer",["./defaultValue","./defined","./defineProperties","./destroyObject","./Iso8601","./JulianDate"],function(e,t,i,r,n,o){"use strict";function a(t){t=e(t,e.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=t.clock,this.element=t.element,this.epoch=e(t.epoch,n.MINIMUM_VALUE),this.tolerance=e(t.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}function s(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}return i(a.prototype,{clock:{get:function(){return this._clock},set:function(e){var i=this._clock;i!==e&&(t(i)&&(this._clockSubscription(),this._clockSubscription=void 0),t(e)&&(this._clockSubscription=e.onTick.addEventListener(a.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){var i=this._element;i!==e&&(t(i)&&i.removeEventListener("seeked",this._seekFunction,!1),t(e)&&(this._seeking=!1,this._seekFunction=s(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}}),a.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,r(this)},a.prototype.isDestroyed=function(){return!1},a.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate!==e.multiplier){var t=this._element;try{t.playbackRate=e.multiplier}catch(e){t.playbackRate=0}this._lastPlaybackRate=e.multiplier}},a.prototype._onTick=function(i){var r=this._element;if(t(r)&&!(r.readyState<2)){var a=r.paused,s=i.shouldAnimate;if(s===a&&(s?r.play():r.pause()),this._seeking||this._firstTickAfterSeek)return void(this._firstTickAfterSeek=!1);this._trySetPlaybackRate(i);var l,u=i.currentTime,c=e(this.epoch,n.MINIMUM_VALUE),d=o.secondsDifference(u,c),h=r.duration,p=r.currentTime;r.loop?(d%=h,d<0&&(d=h-d),l=d):l=d>h?h:d<0?0:d;var f=s?e(this.tolerance,1):.001;Math.abs(l-p)>f&&(this._seeking=!0,r.currentTime=l)}},a}),define("Core/VRTheWorldTerrainProvider",["../ThirdParty/when","./Credit","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Event","./GeographicTilingScheme","./getImagePixels","./HeightmapTerrainData","./Math","./Rectangle","./Resource","./TerrainProvider","./TileProviderError"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e,t){this.rectangle=e,this.maxLevel=t}function g(r){function n(e){var t=e.getElementsByTagName("SRS")[0].textContent;if("EPSG:4326"!==t)return void o("SRS "+t+" is not supported.");y._tilingScheme=new l({ellipsoid:C});var i=e.getElementsByTagName("TileFormat")[0];y._heightmapWidth=parseInt(i.getAttribute("width"),10),y._heightmapHeight=parseInt(i.getAttribute("height"),10),y._levelZeroMaximumGeometricError=f.getEstimatedLevelZeroGeometricErrorForAHeightmap(C,Math.min(y._heightmapWidth,y._heightmapHeight),y._tilingScheme.getNumberOfXTilesAtLevel(0));for(var r=e.getElementsByTagName("DataExtent"),n=0;n<r.length;++n){var a=r[n],s=d.toRadians(parseFloat(a.getAttribute("minx"))),u=d.toRadians(parseFloat(a.getAttribute("miny"))),c=d.toRadians(parseFloat(a.getAttribute("maxx"))),p=d.toRadians(parseFloat(a.getAttribute("maxy"))),m=parseInt(a.getAttribute("maxlevel"),10);y._rectangles.push(new _(new h(s,u,c,p),m))}y._ready=!0,y._readyPromise.resolve(!0)}function o(e){var t=i(e,"An error occurred while accessing "+y._resource.url+".");v=m.handleError(v,y,y._errorEvent,t,void 0,void 0,void 0,u)}function u(){e(y._resource.fetchXML(),n,o)}r=i(r,i.EMPTY_OBJECT);var c=p.createIfNeeded(r.url);this._resource=c,this._errorEvent=new s,this._ready=!1,this._readyPromise=e.defer(),this._terrainDataStructure={heightScale:.001,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:16777215};var g=r.credit;"string"==typeof g&&(g=new t(g)),this._credit=g,this._tilingScheme=void 0,this._rectangles=[];var v,y=this,C=i(r.ellipsoid,a.WGS84);u()}function v(e,t,i,n){for(var o=e._tilingScheme,a=e._rectangles,s=o.tileXYToRectangle(t,i,n),l=0,u=0;u<a.length&&15!==l;++u){var c=a[u];if(!(c.maxLevel<=n)){var d=c.rectangle,p=h.intersection(d,s,C);r(p)&&(y(o,d,2*t,2*i,n+1)&&(l|=4),y(o,d,2*t+1,2*i,n+1)&&(l|=8),y(o,d,2*t,2*i+1,n+1)&&(l|=1),y(o,d,2*t+1,2*i+1,n+1)&&(l|=2))}}return l}function y(e,t,i,n,o){var a=e.tileXYToRectangle(i,n,o);return r(h.intersection(a,t,C))}n(g.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}}}),g.prototype.requestTileGeometry=function(t,i,n,o){var a=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:n+"/"+t+"/"+(a-i-1)+".tif",queryParameters:{cesium:!0},request:o}),l=s.fetchImage({preferImageBitmap:!0});if(r(l)){var d=this;return e(l).then(function(e){return new c({buffer:u(e),width:d._heightmapWidth,height:d._heightmapHeight,childTileMask:v(d,t,i,n),structure:d._terrainDataStructure})})}},g.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var C=new h;return g.prototype.getTileDataAvailable=function(e,t,i){},g.prototype.loadTileDataAvailability=function(e,t,i){},g}),define("Core/WallGeometryLibrary",["./Cartographic","./defined","./EllipsoidTangentPlane","./Math","./PolygonPipeline","./PolylinePipeline","./WindingOrder"],function(e,t,i,r,n,o,a){"use strict";function s(e,t){return r.equalsEpsilon(e.latitude,t.latitude,r.EPSILON14)&&r.equalsEpsilon(e.longitude,t.longitude,r.EPSILON14)}function l(i,r,n,o){var a=r.length;if(!(a<2)){var l=t(o),u=t(n),h=!0,p=new Array(a),f=new Array(a),m=new Array(a),_=r[0];p[0]=_;var g=i.cartesianToCartographic(_,c);u&&(g.height=n[0]),h=h&&g.height<=0,f[0]=g.height,m[0]=l?o[0]:0;for(var v=1,y=1;y<a;++y){var C=r[y],b=i.cartesianToCartographic(C,d);u&&(b.height=n[y]),h=h&&b.height<=0,s(g,b)?g.height<b.height&&(f[v-1]=b.height):(p[v]=C,f[v]=b.height,m[v]=l?o[y]:0,e.clone(b,g),++v)}if(!(h||v<2))return p.length=v,f.length=v,m.length=v,{positions:p,topHeights:f,bottomHeights:m}}}var u={},c=new e,d=new e,h=new Array(2),p=new Array(2),f={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};return u.computePositions=function(e,s,u,c,d,m){var _=l(e,s,u,c);if(t(_)){if(s=_.positions,u=_.topHeights,c=_.bottomHeights,s.length>=3){var g=i.fromPoints(s,e),v=g.projectPointsOntoPlane(s);n.computeWindingOrder2D(v)===a.CLOCKWISE&&(s.reverse(),u.reverse(),c.reverse())}var y,C,b=s.length,S=b-2,T=r.chordLength(d,e.maximumRadius),E=f;if(E.minDistance=T,E.ellipsoid=e,m){var A,w=0;for(A=0;A<b-1;A++)w+=o.numberOfPoints(s[A],s[A+1],T)+1;y=new Float64Array(3*w),C=new Float64Array(3*w);var x=h,P=p;E.positions=x,E.height=P;var D=0;for(A=0;A<b-1;A++){x[0]=s[A],x[1]=s[A+1],P[0]=u[A],P[1]=u[A+1];var I=o.generateArc(E);y.set(I,D),P[0]=c[A],P[1]=c[A+1],C.set(o.generateArc(E),D),D+=I.length}}else E.positions=s,E.height=u,y=new Float64Array(o.generateArc(E)),E.height=c,C=new Float64Array(o.generateArc(E));return{bottomPositions:C,topPositions:y,numCorners:S}}},u}),define("Core/WallGeometry",["./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat","./WallGeometryLibrary"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){e=r(e,r.EMPTY_OBJECT);var i=e.positions,o=e.maximumHeights,s=e.minimumHeights,l=r(e.vertexFormat,p.DEFAULT),u=r(e.granularity,d.RADIANS_PER_DEGREE),c=r(e.ellipsoid,a.WGS84);this._positions=i,this._minimumHeights=s,this._maximumHeights=o,this._vertexFormat=p.clone(l),this._granularity=u,this._ellipsoid=a.clone(c),this._workerName="createWallGeometry";var h=1+i.length*t.packedLength+2;n(s)&&(h+=s.length),n(o)&&(h+=o.length),this.packedLength=h+a.packedLength+p.packedLength+1}var _=new t,g=new t,v=new t,y=new t,C=new t,b=new t,S=new t,T=new t;m.pack=function(e,i,o){o=r(o,0);var s,l=e._positions,u=l.length;for(i[o++]=u,s=0;s<u;++s,o+=t.packedLength)t.pack(l[s],i,o);var c=e._minimumHeights;if(u=n(c)?c.length:0,i[o++]=u,n(c))for(s=0;s<u;++s)i[o++]=c[s];var d=e._maximumHeights;if(u=n(d)?d.length:0,i[o++]=u,n(d))for(s=0;s<u;++s)i[o++]=d[s];return a.pack(e._ellipsoid,i,o),o+=a.packedLength,p.pack(e._vertexFormat,i,o),o+=p.packedLength,i[o]=e._granularity,i};var E=a.clone(a.UNIT_SPHERE),A=new p,w={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:E,vertexFormat:A,granularity:void 0};return m.unpack=function(e,i,o){i=r(i,0);var s,l=e[i++],u=new Array(l);for(s=0;s<l;++s,i+=t.packedLength)u[s]=t.unpack(e,i);l=e[i++];var c;if(l>0)for(c=new Array(l),s=0;s<l;++s)c[s]=e[i++];l=e[i++];var d;if(l>0)for(d=new Array(l),s=0;s<l;++s)d[s]=e[i++];var h=a.unpack(e,i,E);i+=a.packedLength;var f=p.unpack(e,i,A);i+=p.packedLength;var _=e[i];return n(o)?(o._positions=u,o._minimumHeights=c,o._maximumHeights=d,o._ellipsoid=a.clone(h,o._ellipsoid),o._vertexFormat=p.clone(f,o._vertexFormat),o._granularity=_,o):(w.positions=u,w.minimumHeights=c,w.maximumHeights=d,w.granularity=_,new m(w))},m.fromConstantHeights=function(e){e=r(e,r.EMPTY_OBJECT);var t,i,o=e.positions,a=e.minimumHeight,s=e.maximumHeight,l=n(a),u=n(s);if(l||u){var c=o.length;t=l?new Array(c):void 0,i=u?new Array(c):void 0;for(var d=0;d<c;++d)l&&(t[d]=a),u&&(i[d]=s)}return new m({positions:o,maximumHeights:i,minimumHeights:t,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat})},m.createGeometry=function(r){var o=r._positions,a=r._minimumHeights,p=r._maximumHeights,m=r._vertexFormat,E=r._granularity,A=r._ellipsoid,w=f.computePositions(A,o,p,a,E,!0);if(n(w)){var x=w.bottomPositions,P=w.topPositions,D=w.numCorners,I=P.length,M=2*I,R=m.position?new Float64Array(M):void 0,O=m.normal?new Float32Array(M):void 0,L=m.tangent?new Float32Array(M):void 0,N=m.bitangent?new Float32Array(M):void 0,F=m.st?new Float32Array(M/3*2):void 0,B=0,z=0,k=0,V=0,U=0,G=T,H=S,W=b,q=!0;I/=3;var Y,j=0,X=1/(I-o.length+1);for(Y=0;Y<I;++Y){var Q=3*Y,K=t.fromArray(P,Q,_),Z=t.fromArray(x,Q,g);if(m.position&&(R[B++]=Z.x,R[B++]=Z.y,R[B++]=Z.z,R[B++]=K.x,R[B++]=K.y,R[B++]=K.z),m.st&&(F[U++]=j,F[U++]=0,F[U++]=j,F[U++]=1),m.normal||m.tangent||m.bitangent){var J,$=t.clone(t.ZERO,C),ee=A.scaleToGeodeticSurface(t.fromArray(P,Q,g),g);if(Y+1<I&&(J=A.scaleToGeodeticSurface(t.fromArray(P,Q+3,v),v),$=t.fromArray(P,Q+3,C)),q){var te=t.subtract($,K,y),ie=t.subtract(ee,K,_);G=t.normalize(t.cross(ie,te,G),G),q=!1}t.equalsEpsilon(J,ee,d.EPSILON10)?q=!0:(j+=X,m.tangent&&(H=t.normalize(t.subtract(J,ee,H),H)),m.bitangent&&(W=t.normalize(t.cross(G,H,W),W))),m.normal&&(O[z++]=G.x,O[z++]=G.y,O[z++]=G.z,O[z++]=G.x,O[z++]=G.y,O[z++]=G.z),m.tangent&&(L[V++]=H.x,L[V++]=H.y,L[V++]=H.z,L[V++]=H.x,L[V++]=H.y,L[V++]=H.z),m.bitangent&&(N[k++]=W.x,N[k++]=W.y,N[k++]=W.z,N[k++]=W.x,N[k++]=W.y,N[k++]=W.z)}}var re=new u;m.position&&(re.position=new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:R})),m.normal&&(re.normal=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:O})),m.tangent&&(re.tangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:L})),m.bitangent&&(re.bitangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:N})),m.st&&(re.st=new l({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:F}));var ne=M/3;M-=6*(D+1);var oe=c.createTypedArray(ne,M),ae=0;for(Y=0;Y<ne-2;Y+=2){var se=Y,le=Y+2,ue=t.fromArray(R,3*se,_),ce=t.fromArray(R,3*le,g);if(!t.equalsEpsilon(ue,ce,d.EPSILON10)){var de=Y+1,he=Y+3;oe[ae++]=de,oe[ae++]=se,oe[ae++]=he,oe[ae++]=he,oe[ae++]=se,oe[ae++]=le}}return new s({attributes:re,indices:oe,primitiveType:h.TRIANGLES,boundingSphere:new e.fromVertices(R)})}},m}),define("Core/WallOutlineGeometry",["./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PrimitiveType","./WallGeometryLibrary"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){e=r(e,r.EMPTY_OBJECT);var i=e.positions,o=e.maximumHeights,s=e.minimumHeights,l=r(e.granularity,d.RADIANS_PER_DEGREE),u=r(e.ellipsoid,a.WGS84);this._positions=i,this._minimumHeights=s,this._maximumHeights=o,this._granularity=l,this._ellipsoid=a.clone(u),this._workerName="createWallOutlineGeometry";var c=1+i.length*t.packedLength+2;n(s)&&(c+=s.length),n(o)&&(c+=o.length),this.packedLength=c+a.packedLength+1}var m=new t,_=new t;f.pack=function(e,i,o){o=r(o,0);var s,l=e._positions,u=l.length;for(i[o++]=u,s=0;s<u;++s,o+=t.packedLength)t.pack(l[s],i,o);var c=e._minimumHeights;if(u=n(c)?c.length:0,i[o++]=u,n(c))for(s=0;s<u;++s)i[o++]=c[s];var d=e._maximumHeights;if(u=n(d)?d.length:0,i[o++]=u,n(d))for(s=0;s<u;++s)i[o++]=d[s];return a.pack(e._ellipsoid,i,o),o+=a.packedLength,i[o]=e._granularity,i};var g=a.clone(a.UNIT_SPHERE),v={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:g,granularity:void 0};return f.unpack=function(e,i,o){i=r(i,0);var s,l=e[i++],u=new Array(l);for(s=0;s<l;++s,i+=t.packedLength)u[s]=t.unpack(e,i);l=e[i++];var c;if(l>0)for(c=new Array(l),s=0;s<l;++s)c[s]=e[i++];l=e[i++];var d;if(l>0)for(d=new Array(l),s=0;s<l;++s)d[s]=e[i++];var h=a.unpack(e,i,g);i+=a.packedLength;var p=e[i];return n(o)?(o._positions=u,o._minimumHeights=c,o._maximumHeights=d,o._ellipsoid=a.clone(h,o._ellipsoid),o._granularity=p,o):(v.positions=u,v.minimumHeights=c,v.maximumHeights=d,v.granularity=p,new f(v))},f.fromConstantHeights=function(e){e=r(e,r.EMPTY_OBJECT);var t,i,o=e.positions,a=e.minimumHeight,s=e.maximumHeight,l=n(a),u=n(s);if(l||u){var c=o.length;t=l?new Array(c):void 0,i=u?new Array(c):void 0;for(var d=0;d<c;++d)l&&(t[d]=a),u&&(i[d]=s)}return new f({positions:o,maximumHeights:i,minimumHeights:t,ellipsoid:e.ellipsoid})},f.createGeometry=function(r){var o=r._positions,a=r._minimumHeights,f=r._maximumHeights,g=r._granularity,v=r._ellipsoid,y=p.computePositions(v,o,f,a,g,!1);if(n(y)){var C=y.bottomPositions,b=y.topPositions,S=b.length,T=2*S,E=new Float64Array(T),A=0;S/=3;var w;for(w=0;w<S;++w){var x=3*w,P=t.fromArray(b,x,m),D=t.fromArray(C,x,_);E[A++]=D.x,E[A++]=D.y,E[A++]=D.z,E[A++]=P.x,E[A++]=P.y,E[A++]=P.z}var I=new u({position:new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:E})}),M=T/3;T=2*M-4+M;var R=c.createTypedArray(M,T),O=0;for(w=0;w<M-2;w+=2){var L=w,N=w+2,F=t.fromArray(E,3*L,m),B=t.fromArray(E,3*N,_);if(!t.equalsEpsilon(F,B,d.EPSILON10)){var z=w+1,k=w+3;R[O++]=z,R[O++]=L,R[O++]=z,R[O++]=k,R[O++]=L,R[O++]=N}}return R[O++]=M-2,R[O++]=M-1,new s({attributes:I,indices:R,primitiveType:h.LINES,boundingSphere:new e.fromVertices(E)})}},f}),define("Core/webGLConstantToGlslType",["./WebGLConstants"],function(e){"use strict";function t(t){switch(t){case e.FLOAT:return"float";case e.FLOAT_VEC2:return"vec2";case e.FLOAT_VEC3:return"vec3";case e.FLOAT_VEC4:return"vec4";case e.FLOAT_MAT2:return"mat2";case e.FLOAT_MAT3:return"mat3";case e.FLOAT_MAT4:return"mat4";case e.SAMPLER_2D:return"sampler2D";case e.BOOL:return"bool"}}return t}),define("Core/WebMercatorTilingScheme",["./Cartesian2","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Rectangle","./WebMercatorProjection"],function(e,t,i,r,n,o,a){"use strict";function s(r){if(r=t(r,{}),this._ellipsoid=t(r.ellipsoid,n.WGS84),this._numberOfLevelZeroTilesX=t(r.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=t(r.numberOfLevelZeroTilesY,1),this._projection=new a(this._ellipsoid),i(r.rectangleSouthwestInMeters)&&i(r.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=r.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=r.rectangleNortheastInMeters;else{var s=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new e(-s,-s),this._rectangleNortheastInMeters=new e(s,s)}var l=this._projection.unproject(this._rectangleSouthwestInMeters),u=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new o(l.longitude,l.latitude,u.longitude,u.latitude)}return r(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}}),s.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e},s.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e},s.prototype.rectangleToNativeRectangle=function(e,t){var r=this._projection,n=r.project(o.southwest(e)),a=r.project(o.northeast(e));return i(t)?(t.west=n.x,t.south=n.y,t.east=a.x,t.north=a.y,t):new o(n.x,n.y,a.x,a.y)},s.prototype.tileXYToNativeRectangle=function(e,t,r,n){var a=this.getNumberOfXTilesAtLevel(r),s=this.getNumberOfYTilesAtLevel(r),l=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/a,u=this._rectangleSouthwestInMeters.x+e*l,c=this._rectangleSouthwestInMeters.x+(e+1)*l,d=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/s,h=this._rectangleNortheastInMeters.y-t*d,p=this._rectangleNortheastInMeters.y-(t+1)*d;return i(n)?(n.west=u,n.south=p,n.east=c,n.north=h,n):new o(u,p,c,h)},s.prototype.tileXYToRectangle=function(t,i,r,n){var o=this.tileXYToNativeRectangle(t,i,r,n),a=this._projection,s=a.unproject(new e(o.west,o.south)),l=a.unproject(new e(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=l.longitude,o.north=l.latitude,o},s.prototype.positionToTileXY=function(t,r,n){var a=this._rectangle;if(o.contains(a,t)){var s=this.getNumberOfXTilesAtLevel(r),l=this.getNumberOfYTilesAtLevel(r),u=this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x,c=u/s,d=this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y,h=d/l,p=this._projection,f=p.project(t),m=f.x-this._rectangleSouthwestInMeters.x,_=this._rectangleNortheastInMeters.y-f.y,g=m/c|0;g>=s&&(g=s-1);var v=_/h|0;return v>=l&&(v=l-1),i(n)?(n.x=g,n.y=v,n):new e(g,v)}},s}),define("Core/WeightSpline",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Spline"],function(e,t,i,r,n,o){"use strict";function a(e){e=t(e,t.EMPTY_OBJECT);var i=e.weights,r=e.times;this._times=r,this._weights=i,this._count=i.length/r.length,this._lastTimeIndex=0}return r(a.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}}),a.prototype.findTimeInterval=o.prototype.findTimeInterval,a.prototype.wrapTime=o.prototype.wrapTime,a.prototype.clampTime=o.prototype.clampTime,a.prototype.evaluate=function(e,t){var r=this.weights,n=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),a=(e-n[o])/(n[o+1]-n[o]);i(t)||(t=new Array(this._count));for(var s=0;s<this._count;s++){var l=o*this._count+s;t[s]=r[l]*(1-a)+r[l+this._count]*a}return t},a}),define("Core/wrapFunction",["./DeveloperError"],function(e){"use strict";function t(e,t,i){return function(){i.apply(e,arguments),t.apply(e,arguments)}}return t}),define("DataSources/ConstantProperty",["../Core/defined","../Core/defineProperties","../Core/Event"],function(e,t,i){"use strict";function r(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new i,this.setValue(e)}return t(r.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}}),r.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value},r.prototype.setValue=function(t){var i=this._value;if(i!==t){var r=e(t),n=r&&"function"==typeof t.clone,o=r&&"function"==typeof t.equals;(!o||!t.equals(i))&&(this._hasClone=n,this._hasEquals=o,this._value=n?t.clone(this._value):t,this._definitionChanged.raiseEvent(this))}},r.prototype.equals=function(e){return this===e||e instanceof r&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))},r.prototype.valueOf=function(){return this._value},r.prototype.toString=function(){return String(this._value)},r}),define("DataSources/createPropertyDescriptor",["../Core/defaultValue","../Core/defined","./ConstantProperty"],function(e,t,i){"use strict";function r(e,i,r,n,o){return{configurable:n,get:function(){return this[i]},set:function(n){var a=this[i],s=this[r];t(s)&&(s(),this[r]=void 0),!(void 0!==n)||t(n)&&t(n.getValue)||!t(o)||(n=o(n)),a!==n&&(this[i]=n,this._definitionChanged.raiseEvent(this,e,n,a)),t(n)&&t(n.definitionChanged)&&(this[r]=n.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,n,n)},this))}}}function n(e){return new i(e)}function o(t,i,o){return r(t,"_"+t.toString(),"_"+t.toString()+"Subscription",e(i,!1),e(o,n))}return o}),define("DataSources/BillboardGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createPropertyDescriptor"],function(e,t,i,r,n,o){"use strict";function a(t){this._image=void 0,this._imageSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(a.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},image:o("image"),imageSubRegion:o("imageSubRegion"),scale:o("scale"),rotation:o("rotation"),alignedAxis:o("alignedAxis"),horizontalOrigin:o("horizontalOrigin"),verticalOrigin:o("verticalOrigin"),color:o("color"),eyeOffset:o("eyeOffset"),heightReference:o("heightReference"),pixelOffset:o("pixelOffset"),show:o("show"),width:o("width"),height:o("height"),scaleByDistance:o("scaleByDistance"), -translucencyByDistance:o("translucencyByDistance"),pixelOffsetScaleByDistance:o("pixelOffsetScaleByDistance"),sizeInMeters:o("sizeInMeters"),distanceDisplayCondition:o("distanceDisplayCondition"),disableDepthTestDistance:o("disableDepthTestDistance")}),a.prototype.clone=function(e){return t(e)?(e.color=this._color,e.eyeOffset=this._eyeOffset,e.heightReference=this._heightReference,e.horizontalOrigin=this._horizontalOrigin,e.image=this._image,e.imageSubRegion=this._imageSubRegion,e.pixelOffset=this._pixelOffset,e.scale=this._scale,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.show=this._show,e.verticalOrigin=this._verticalOrigin,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.sizeInMeters=this._sizeInMeters,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e):new a(this)},a.prototype.merge=function(t){this.color=e(this._color,t.color),this.eyeOffset=e(this._eyeOffset,t.eyeOffset),this.heightReference=e(this._heightReference,t.heightReference),this.horizontalOrigin=e(this._horizontalOrigin,t.horizontalOrigin),this.image=e(this._image,t.image),this.imageSubRegion=e(this._imageSubRegion,t.imageSubRegion),this.pixelOffset=e(this._pixelOffset,t.pixelOffset),this.scale=e(this._scale,t.scale),this.rotation=e(this._rotation,t.rotation),this.alignedAxis=e(this._alignedAxis,t.alignedAxis),this.show=e(this._show,t.show),this.verticalOrigin=e(this._verticalOrigin,t.verticalOrigin),this.width=e(this._width,t.width),this.height=e(this._height,t.height),this.scaleByDistance=e(this._scaleByDistance,t.scaleByDistance),this.translucencyByDistance=e(this._translucencyByDistance,t.translucencyByDistance),this.pixelOffsetScaleByDistance=e(this._pixelOffsetScaleByDistance,t.pixelOffsetScaleByDistance),this.sizeInMeters=e(this._sizeInMeters,t.sizeInMeters),this.distanceDisplayCondition=e(this._distanceDisplayCondition,t.distanceDisplayCondition),this.disableDepthTestDistance=e(this._disableDepthTestDistance,t.disableDepthTestDistance)},a}),define("Scene/HeightReference",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2})}),define("Scene/HorizontalOrigin",["../Core/freezeObject"],function(e){"use strict";return e({CENTER:0,LEFT:1,RIGHT:-1})}),define("Scene/VerticalOrigin",["../Core/freezeObject"],function(e){"use strict";return e({CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1})}),define("DataSources/BoundingSphereState",["../Core/freezeObject"],function(e){"use strict";return e({DONE:0,PENDING:1,FAILED:2})}),define("DataSources/Property",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError"],function(e,t,i,r){"use strict";function n(){r.throwInstantiationError()}return i(n.prototype,{isConstant:{get:r.throwInstantiationError},definitionChanged:{get:r.throwInstantiationError}}),n.prototype.getValue=r.throwInstantiationError,n.prototype.equals=r.throwInstantiationError,n.equals=function(e,i){return e===i||t(e)&&e.equals(i)},n.arrayEquals=function(e,i){if(e===i)return!0;if(!t(e)||!t(i)||e.length!==i.length)return!1;for(var r=e.length,o=0;o<r;o++)if(!n.equals(e[o],i[o]))return!1;return!0},n.isConstant=function(e){return!t(e)||e.isConstant},n.getValueOrUndefined=function(e,i,r){return t(e)?e.getValue(i,r):void 0},n.getValueOrDefault=function(i,r,n,o){return t(i)?e(i.getValue(r,o),n):n},n.getValueOrClonedDefault=function(e,i,r,n){var o;return t(e)&&(o=e.getValue(i,n)),t(o)||(o=r.clone(o)),o},n}),define("DataSources/BillboardVisualizer",["../Core/AssociativeArray","../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Color","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/NearFarScalar","../Scene/HeightReference","../Scene/HorizontalOrigin","../Scene/VerticalOrigin","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function _(t,i){i.collectionChanged.addEventListener(_.prototype._onCollectionChanged,this),this._cluster=t,this._entityCollection=i,this._items=new e,this._onCollectionChanged(i,i.values,[],[])}function g(e,t,i){o(e)&&(e.billboard=void 0,i.removeBillboard(t))}var v=n.WHITE,y=r.ZERO,C=c.NONE,b=i.ZERO,S=r.ZERO,T=d.CENTER,E=h.CENTER,A=new r,w=new n,x=new r,P=new i,D=new u,I=new u,M=new u,R=new t,O=new l;return _.prototype.update=function(e){for(var t=this._items.values,i=this._cluster,r=0,n=t.length;r<n;r++){var a,s,l=t[r],u=l.entity,c=u._billboard,d=l.billboard,h=u.isShowing&&u.isAvailable(e)&&f.getValueOrDefault(c._show,e,!0);if(h&&(s=f.getValueOrUndefined(u._position,e,A),a=f.getValueOrUndefined(c._image,e),h=o(s)&&o(a)),h){f.isConstant(u._position)||(i._clusterDirty=!0),o(d)||(d=i.getBillboard(u),d.id=u,d.image=void 0,l.billboard=d),d.show=h,o(d.image)&&l.textureValue===a||(d.image=a,l.textureValue=a),d.position=s,d.color=f.getValueOrDefault(c._color,e,v,w),d.eyeOffset=f.getValueOrDefault(c._eyeOffset,e,y,x),d.heightReference=f.getValueOrDefault(c._heightReference,e,C),d.pixelOffset=f.getValueOrDefault(c._pixelOffset,e,b,P),d.scale=f.getValueOrDefault(c._scale,e,1),d.rotation=f.getValueOrDefault(c._rotation,e,0),d.alignedAxis=f.getValueOrDefault(c._alignedAxis,e,S),d.horizontalOrigin=f.getValueOrDefault(c._horizontalOrigin,e,T),d.verticalOrigin=f.getValueOrDefault(c._verticalOrigin,e,E),d.width=f.getValueOrUndefined(c._width,e),d.height=f.getValueOrUndefined(c._height,e),d.scaleByDistance=f.getValueOrUndefined(c._scaleByDistance,e,D),d.translucencyByDistance=f.getValueOrUndefined(c._translucencyByDistance,e,I),d.pixelOffsetScaleByDistance=f.getValueOrUndefined(c._pixelOffsetScaleByDistance,e,M),d.sizeInMeters=f.getValueOrDefault(c._sizeInMeters,e,!1),d.distanceDisplayCondition=f.getValueOrUndefined(c._distanceDisplayCondition,e,O),d.disableDepthTestDistance=f.getValueOrUndefined(c._disableDepthTestDistance,e);var p=f.getValueOrUndefined(c._imageSubRegion,e,R);o(p)&&d.setImageSubRegion(d._imageId,p)}else g(l,u,i)}return!0},_.prototype.getBoundingSphere=function(e,t){var i=this._items.get(e.id);if(!o(i)||!o(i.billboard))return p.FAILED;var n=i.billboard;if(n.heightReference===c.NONE)t.center=r.clone(n.position,t.center);else{if(!o(n._clampedPosition))return p.PENDING;t.center=r.clone(n._clampedPosition,t.center)}return t.radius=0,p.DONE},_.prototype.isDestroyed=function(){return!1},_.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(_.prototype._onCollectionChanged,this);for(var e=this._entityCollection.values,t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return a(this)},_.prototype._onCollectionChanged=function(e,t,i,r){var n,a,s=this._items,l=this._cluster;for(n=t.length-1;n>-1;n--)a=t[n],o(a._billboard)&&o(a._position)&&s.set(a.id,new m(a));for(n=r.length-1;n>-1;n--)a=r[n],o(a._billboard)&&o(a._position)?s.contains(a.id)||s.set(a.id,new m(a)):(g(s.get(a.id),a,l),s.remove(a.id));for(n=i.length-1;n>-1;n--)a=i[n],g(s.get(a.id),a,l),s.remove(a.id)},_}),define("Shaders/Appearances/AllMaterialAppearanceFS",[],function(){"use strict";return"varying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec3 v_tangentEC;\nvarying vec3 v_bitangentEC;\nvarying vec2 v_st;\nvoid main()\n{\nvec3 positionToEyeEC = -v_positionEC;\nmat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC);\nvec3 normalEC = normalize(v_normalEC);\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nczm_materialInput materialInput;\nmaterialInput.normalEC = normalEC;\nmaterialInput.tangentToEyeMatrix = tangentToEyeMatrix;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nmaterialInput.st = v_st;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\n#endif\n}\n"}),define("Shaders/Appearances/AllMaterialAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 normal;\nattribute vec3 tangent;\nattribute vec3 bitangent;\nattribute vec2 st;\nattribute float batchId;\nvarying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec3 v_tangentEC;\nvarying vec3 v_bitangentEC;\nvarying vec2 v_st;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_positionEC = (czm_modelViewRelativeToEye * p).xyz;\nv_normalEC = czm_normal * normal;\nv_tangentEC = czm_normal * tangent;\nv_bitangentEC = czm_normal * bitangent;\nv_st = st;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Shaders/Appearances/BasicMaterialAppearanceFS",[],function(){"use strict";return"varying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvoid main()\n{\nvec3 positionToEyeEC = -v_positionEC;\nvec3 normalEC = normalize(v_normalEC);\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nczm_materialInput materialInput;\nmaterialInput.normalEC = normalEC;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\n#endif\n}\n"}),define("Shaders/Appearances/BasicMaterialAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 normal;\nattribute float batchId;\nvarying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_positionEC = (czm_modelViewRelativeToEye * p).xyz;\nv_normalEC = czm_normal * normal;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Shaders/Appearances/TexturedMaterialAppearanceFS",[],function(){"use strict";return"varying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec2 v_st;\nvoid main()\n{\nvec3 positionToEyeEC = -v_positionEC;\nvec3 normalEC = normalize(v_normalEC);\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nczm_materialInput materialInput;\nmaterialInput.normalEC = normalEC;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nmaterialInput.st = v_st;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\n#endif\n}\n"}),define("Shaders/Appearances/TexturedMaterialAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 normal;\nattribute vec2 st;\nattribute float batchId;\nvarying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec2 v_st;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_positionEC = (czm_modelViewRelativeToEye * p).xyz;\nv_normalEC = czm_normal * normal;\nv_st = st;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Scene/BlendEquation",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({ADD:t.FUNC_ADD,SUBTRACT:t.FUNC_SUBTRACT,REVERSE_SUBTRACT:t.FUNC_REVERSE_SUBTRACT,MIN:t.MIN,MAX:t.MAX})}),define("Scene/BlendFunction",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({ZERO:t.ZERO,ONE:t.ONE,SOURCE_COLOR:t.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:t.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:t.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:t.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:t.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:t.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:t.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:t.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:t.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:t.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:t.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:t.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:t.SRC_ALPHA_SATURATE})}),define("Scene/BlendingState",["../Core/freezeObject","./BlendEquation","./BlendFunction"],function(e,t,i){"use strict";return e({DISABLED:e({enabled:!1}),ALPHA_BLEND:e({enabled:!0,equationRgb:t.ADD,equationAlpha:t.ADD,functionSourceRgb:i.SOURCE_ALPHA,functionSourceAlpha:i.SOURCE_ALPHA,functionDestinationRgb:i.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:i.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:e({enabled:!0,equationRgb:t.ADD,equationAlpha:t.ADD,functionSourceRgb:i.ONE,functionSourceAlpha:i.ONE,functionDestinationRgb:i.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:i.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:e({enabled:!0,equationRgb:t.ADD,equationAlpha:t.ADD,functionSourceRgb:i.SOURCE_ALPHA,functionSourceAlpha:i.SOURCE_ALPHA,functionDestinationRgb:i.ONE,functionDestinationAlpha:i.ONE})})}),define("Scene/CullFace",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({FRONT:t.FRONT,BACK:t.BACK,FRONT_AND_BACK:t.FRONT_AND_BACK})}),define("Scene/Appearance",["../Core/clone","../Core/combine","../Core/defaultValue","../Core/defined","../Core/defineProperties","./BlendingState","./CullFace"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=i(e,i.EMPTY_OBJECT),this.material=e.material,this.translucent=i(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=i(e.closed,!1)}return n(s.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}}),s.prototype.getFragmentShaderSource=function(){var e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),r(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join("\n")},s.prototype.isTranslucent=function(){return r(this.material)&&this.material.isTranslucent()||!r(this.material)&&this.translucent},s.prototype.getRenderState=function(){var t=this.isTranslucent(),i=e(this.renderState,!1);return t?(i.depthMask=!1,i.blending=o.ALPHA_BLEND):i.depthMask=!0,i},s.getDefaultRenderState=function(e,i,n){var s={depthTest:{enabled:!0}};return e&&(s.depthMask=!1,s.blending=o.ALPHA_BLEND),i&&(s.cull={enabled:!0,face:a.BACK}),r(n)&&(s=t(n,s,!0)),s},s}),define("Renderer/ContextLimits",["../Core/defineProperties"],function(e){"use strict";var t={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_highpFloatSupported:!1,_highpIntSupported:!1};return e(t,{maximumCombinedTextureImageUnits:{get:function(){return t._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return t._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return t._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return t._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return t._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return t._maximumTextureSize}},maximumVaryingVectors:{get:function(){return t._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return t._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return t._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return t._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return t._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return t._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return t._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return t._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return t._maximumViewportWidth}},maximumViewportHeight:{get:function(){return t._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return t._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return t._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return t._maximumColorAttachments}},highpFloatSupported:{get:function(){return t._highpFloatSupported}},highpIntSupported:{get:function(){return t._highpIntSupported}}}),t}),define("Renderer/CubeMapFace",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/PixelFormat","./PixelDatatype"],function(e,t,i,r,n,o,a){"use strict";function s(e,t,i,r,n,o,a,s,l,u){this._gl=e,this._texture=t,this._textureTarget=i,this._targetFace=r,this._pixelFormat=n,this._pixelDatatype=o,this._size=a,this._preMultiplyAlpha=s,this._flipY=l,this._initialized=u}return r(s.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}}),s.prototype.copyFrom=function(e,r,n){r=t(r,0),n=t(n,0);var a=this._gl,s=this._textureTarget,l=this._targetFace;a.activeTexture(a.TEXTURE0),a.bindTexture(s,this._texture);var u=e.width,c=e.height,d=e.arrayBufferView,h=this._size,p=this._pixelFormat,f=this._pixelDatatype,m=this._preMultiplyAlpha,_=this._flipY,g=4;i(d)&&(g=o.alignmentInBytes(p,f,u)),a.pixelStorei(a.UNPACK_ALIGNMENT,g);var v=!1;if(!this._initialized){if(0===r&&0===n&&u===h&&c===h)i(d)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),_&&(d=o.flipY(d,p,f,h,h)),a.texImage2D(l,0,p,h,h,0,p,f,d)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,_),a.texImage2D(l,0,p,p,f,e)),v=!0;else{a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1);var y=o.createTypedArray(p,f,h,h);a.texImage2D(l,0,p,h,h,0,p,f,y)}this._initialized=!0}v||(i(d)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),_&&(d=o.flipY(d,p,f,u,c)),a.texSubImage2D(l,0,r,n,u,c,p,f,d)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,_),a.texSubImage2D(l,0,r,n,p,f,e))),a.bindTexture(s,null)},s.prototype.copyFromFramebuffer=function(e,i,r,n,o,a){e=t(e,0),i=t(i,0),r=t(r,0),n=t(n,0),o=t(o,this._size),a=t(a,this._size);var s=this._gl,l=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(l,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,i,r,n,o,a),s.bindTexture(l,null),this._initialized=!0},s}),define("Renderer/MipmapHint",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={DONT_CARE:t.DONT_CARE,FASTEST:t.FASTEST,NICEST:t.NICEST,validate:function(e){return e===i.DONT_CARE||e===i.FASTEST||e===i.NICEST}};return e(i)}),define("Renderer/TextureMagnificationFilter",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={NEAREST:t.NEAREST,LINEAR:t.LINEAR,validate:function(e){return e===i.NEAREST||e===i.LINEAR}};return e(i)}),define("Renderer/TextureMinificationFilter",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={NEAREST:t.NEAREST,LINEAR:t.LINEAR,NEAREST_MIPMAP_NEAREST:t.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:t.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:t.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:t.LINEAR_MIPMAP_LINEAR,validate:function(e){return e===i.NEAREST||e===i.LINEAR||e===i.NEAREST_MIPMAP_NEAREST||e===i.LINEAR_MIPMAP_NEAREST||e===i.NEAREST_MIPMAP_LINEAR||e===i.LINEAR_MIPMAP_LINEAR}};return e(i)}),define("Renderer/TextureWrap",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={CLAMP_TO_EDGE:t.CLAMP_TO_EDGE,REPEAT:t.REPEAT,MIRRORED_REPEAT:t.MIRRORED_REPEAT,validate:function(e){return e===i.CLAMP_TO_EDGE||e===i.REPEAT||e===i.MIRRORED_REPEAT}};return e(i)}),define("Renderer/Sampler",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","./TextureMagnificationFilter","./TextureMinificationFilter","./TextureWrap"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=t(e,t.EMPTY_OBJECT);var r=t(e.wrapS,s.CLAMP_TO_EDGE),n=t(e.wrapT,s.CLAMP_TO_EDGE),l=t(e.minificationFilter,a.LINEAR),u=t(e.magnificationFilter,o.LINEAR),c=i(e.maximumAnisotropy)?e.maximumAnisotropy:1;this._wrapS=r,this._wrapT=n,this._minificationFilter=l,this._magnificationFilter=u,this._maximumAnisotropy=c}return r(l.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}}),l.equals=function(e,t){return e===t||i(e)&&i(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy},l}),define("Renderer/CubeMap",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Math","../Core/PixelFormat","./ContextLimits","./CubeMapFace","./MipmapHint","./PixelDatatype","./Sampler","./TextureMagnificationFilter","./TextureMinificationFilter"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){function r(e,t,r,o){var a=t.arrayBufferView;i(a)||(a=t.bufferView);var l=4;i(a)&&(l=s.alignmentInBytes(p,f,n)),v.pixelStorei(v.UNPACK_ALIGNMENT,l),i(a)?(v.pixelStorei(v.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),v.pixelStorei(v.UNPACK_FLIP_Y_WEBGL,!1),o&&(a=s.flipY(a,p,f,c,c)),v.texImage2D(e,0,p,c,c,0,p,f,a)):(v.pixelStorei(v.UNPACK_PREMULTIPLY_ALPHA_WEBGL,r),v.pixelStorei(v.UNPACK_FLIP_Y_WEBGL,o),v.texImage2D(e,0,p,p,f,t))}e=t(e,t.EMPTY_OBJECT);var n,o=e.context,a=e.source;if(i(a)){var l=[a.positiveX,a.negativeX,a.positiveY,a.negativeY,a.positiveZ,a.negativeZ];n=l[0].width,l[0].height}else n=e.width,e.height;var c=n,p=t(e.pixelFormat,s.RGBA),f=t(e.pixelDatatype,d.UNSIGNED_BYTE),m=6*s.textureSizeInBytes(p,f,c,c),_=e.preMultiplyAlpha||p===s.RGB||p===s.LUMINANCE,g=t(e.flipY,!0),v=o._gl,y=v.TEXTURE_CUBE_MAP,C=v.createTexture();v.activeTexture(v.TEXTURE0),v.bindTexture(y,C),i(a)?(r(v.TEXTURE_CUBE_MAP_POSITIVE_X,a.positiveX,_,g),r(v.TEXTURE_CUBE_MAP_NEGATIVE_X,a.negativeX,_,g),r(v.TEXTURE_CUBE_MAP_POSITIVE_Y,a.positiveY,_,g),r(v.TEXTURE_CUBE_MAP_NEGATIVE_Y,a.negativeY,_,g),r(v.TEXTURE_CUBE_MAP_POSITIVE_Z,a.positiveZ,_,g),r(v.TEXTURE_CUBE_MAP_NEGATIVE_Z,a.negativeZ,_,g)):(v.texImage2D(v.TEXTURE_CUBE_MAP_POSITIVE_X,0,p,c,c,0,p,f,null),v.texImage2D(v.TEXTURE_CUBE_MAP_NEGATIVE_X,0,p,c,c,0,p,f,null),v.texImage2D(v.TEXTURE_CUBE_MAP_POSITIVE_Y,0,p,c,c,0,p,f,null),v.texImage2D(v.TEXTURE_CUBE_MAP_NEGATIVE_Y,0,p,c,c,0,p,f,null),v.texImage2D(v.TEXTURE_CUBE_MAP_POSITIVE_Z,0,p,c,c,0,p,f,null),v.texImage2D(v.TEXTURE_CUBE_MAP_NEGATIVE_Z,0,p,c,c,0,p,f,null)),v.bindTexture(y,null),this._context=o,this._textureFilterAnisotropic=o._textureFilterAnisotropic,this._textureTarget=y,this._texture=C,this._pixelFormat=p,this._pixelDatatype=f,this._size=c,this._hasMipmap=!1,this._sizeInBytes=m,this._preMultiplyAlpha=_,this._flipY=g,this._sampler=void 0;var b=i(a);this._positiveX=new u(v,C,y,v.TEXTURE_CUBE_MAP_POSITIVE_X,p,f,c,_,g,b),this._negativeX=new u(v,C,y,v.TEXTURE_CUBE_MAP_NEGATIVE_X,p,f,c,_,g,b),this._positiveY=new u(v,C,y,v.TEXTURE_CUBE_MAP_POSITIVE_Y,p,f,c,_,g,b),this._negativeY=new u(v,C,y,v.TEXTURE_CUBE_MAP_NEGATIVE_Y,p,f,c,_,g,b),this._positiveZ=new u(v,C,y,v.TEXTURE_CUBE_MAP_POSITIVE_Z,p,f,c,_,g,b),this._negativeZ=new u(v,C,y,v.TEXTURE_CUBE_MAP_NEGATIVE_Z,p,f,c,_,g,b),this.sampler=i(e.sampler)?e.sampler:new h}return r(m.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){var t=e.minificationFilter,r=e.magnificationFilter,n=t===f.NEAREST_MIPMAP_NEAREST||t===f.NEAREST_MIPMAP_LINEAR||t===f.LINEAR_MIPMAP_NEAREST||t===f.LINEAR_MIPMAP_LINEAR,o=this._context,a=this._pixelDatatype;(a===d.FLOAT&&!o.textureFloatLinear||a===d.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=n?f.NEAREST_MIPMAP_NEAREST:f.NEAREST,r=p.NEAREST);var s=o._gl,l=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(l,this._texture),s.texParameteri(l,s.TEXTURE_MIN_FILTER,t),s.texParameteri(l,s.TEXTURE_MAG_FILTER,r),s.texParameteri(l,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(l,s.TEXTURE_WRAP_T,e.wrapT),i(this._textureFilterAnisotropic)&&s.texParameteri(l,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(l,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(4*this._sizeInBytes/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}}),m.prototype.generateMipmap=function(e){e=t(e,c.DONT_CARE),this._hasMipmap=!0;var i=this._context._gl,r=this._textureTarget;i.hint(i.GENERATE_MIPMAP_HINT,e),i.activeTexture(i.TEXTURE0),i.bindTexture(r,this._texture),i.generateMipmap(r),i.bindTexture(r,null)},m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=n(this._positiveX),this._negativeX=n(this._negativeX),this._positiveY=n(this._positiveY),this._negativeY=n(this._negativeY),this._positiveZ=n(this._positiveZ),this._negativeZ=n(this._negativeZ),n(this)},m}),define("Renderer/Texture",["../Core/Cartesian2","../Core/Check","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Math","../Core/PixelFormat","../Core/WebGLConstants","./ContextLimits","./MipmapHint","./PixelDatatype","./Sampler","./TextureMagnificationFilter","./TextureMinificationFilter"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(t){t=r(t,r.EMPTY_OBJECT);var o=t.context,a=t.width,s=t.height,l=t.source;n(l)&&(n(a)||(a=r(l.videoWidth,l.width)),n(s)||(s=r(l.videoHeight,l.height)));var d=r(t.pixelFormat,u.RGBA),h=r(t.pixelDatatype,p.UNSIGNED_BYTE),m=d,_=u.isCompressedFormat(m);if(o.webgl2)if(d===u.DEPTH_STENCIL?m=c.DEPTH24_STENCIL8:d===u.DEPTH_COMPONENT&&(h===p.UNSIGNED_SHORT?m=c.DEPTH_COMPONENT16:h===p.UNSIGNED_INT&&(m=c.DEPTH_COMPONENT24)),h===p.FLOAT)switch(d){case u.RGBA:m=c.RGBA32F;break;case u.RGB:m=c.RGB32F;break;case u.RG:m=c.RG32F;break;case u.R:m=c.R32F}else if(h===p.HALF_FLOAT)switch(d){case u.RGBA:m=c.RGBA16F;break;case u.RGB:m=c.RGB16F;break;case u.RG:m=c.RG16F;break;case u.R:m=c.R16F}var g=t.preMultiplyAlpha||d===u.RGB||d===u.LUMINANCE,v=r(t.flipY,!0),y=!0,C=o._gl,b=C.TEXTURE_2D,S=C.createTexture();C.activeTexture(C.TEXTURE0),C.bindTexture(b,S);var T=4;if(n(l)&&n(l.arrayBufferView)&&!_&&(T=u.alignmentInBytes(d,h,a)),C.pixelStorei(C.UNPACK_ALIGNMENT,T),n(l))if(n(l.arrayBufferView)){C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1);var E=l.arrayBufferView;_?C.compressedTexImage2D(b,0,m,a,s,0,E):(v&&(E=u.flipY(E,d,h,a,s)),C.texImage2D(b,0,m,a,s,0,d,h,E))}else n(l.framebuffer)?(C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,!1),l.framebuffer!==o.defaultFramebuffer&&l.framebuffer._bind(),C.copyTexImage2D(b,0,m,l.xOffset,l.yOffset,a,s,0),l.framebuffer!==o.defaultFramebuffer&&l.framebuffer._unBind()):(C.pixelStorei(C.UNPACK_PREMULTIPLY_ALPHA_WEBGL,g),C.pixelStorei(C.UNPACK_FLIP_Y_WEBGL,v),C.texImage2D(b,0,m,d,h,l));else C.texImage2D(b,0,m,a,s,0,d,h,null),y=!1;C.bindTexture(b,null);var A;A=_?u.compressedTextureSizeInBytes(d,a,s):u.textureSizeInBytes(d,h,a,s),this._id=i(),this._context=o,this._textureFilterAnisotropic=o._textureFilterAnisotropic,this._textureTarget=b,this._texture=S,this._pixelFormat=d,this._pixelDatatype=h,this._width=a,this._height=s,this._dimensions=new e(a,s),this._hasMipmap=!1,this._sizeInBytes=A,this._preMultiplyAlpha=g,this._flipY=v,this._initialized=y,this._sampler=void 0,this.sampler=n(t.sampler)?t.sampler:new f}return g.create=function(e){return new g(e)},g.fromFramebuffer=function(e){e=r(e,r.EMPTY_OBJECT);var t=e.context,i=t._gl,o=r(e.pixelFormat,u.RGB),a=r(e.framebufferXOffset,0),s=r(e.framebufferYOffset,0),l=r(e.width,i.drawingBufferWidth),c=r(e.height,i.drawingBufferHeight),d=e.framebuffer;return new g({context:t,width:l,height:c,pixelFormat:o,source:{framebuffer:n(d)?d:t.defaultFramebuffer,xOffset:a,yOffset:s,width:l,height:c}})},o(g.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){var t=e.minificationFilter,i=e.magnificationFilter,r=t===_.NEAREST_MIPMAP_NEAREST||t===_.NEAREST_MIPMAP_LINEAR||t===_.LINEAR_MIPMAP_NEAREST||t===_.LINEAR_MIPMAP_LINEAR,o=this._context,a=this._pixelDatatype;(a===p.FLOAT&&!o.textureFloatLinear||a===p.HALF_FLOAT&&!o.textureHalfFloatLinear)&&(t=r?_.NEAREST_MIPMAP_NEAREST:_.NEAREST,i=m.NEAREST);var s=o._gl,l=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(l,this._texture),s.texParameteri(l,s.TEXTURE_MIN_FILTER,t),s.texParameteri(l,s.TEXTURE_MAG_FILTER,i),s.texParameteri(l,s.TEXTURE_WRAP_S,e.wrapS),s.texParameteri(l,s.TEXTURE_WRAP_T,e.wrapT),n(this._textureFilterAnisotropic)&&s.texParameteri(l,this._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,e.maximumAnisotropy),s.bindTexture(l,null),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(4*this._sizeInBytes/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}}),g.prototype.copyFrom=function(e,t,i){t=r(t,0),i=r(i,0);var o=this._context._gl,a=this._textureTarget;o.activeTexture(o.TEXTURE0),o.bindTexture(a,this._texture);var s=e.width,l=e.height,c=e.arrayBufferView,d=this._width,h=this._height,p=this._pixelFormat,f=this._pixelDatatype,m=this._preMultiplyAlpha,_=this._flipY,g=4;n(c)&&(g=u.alignmentInBytes(p,f,s)),o.pixelStorei(o.UNPACK_ALIGNMENT,g);var v=!1;if(!this._initialized){if(0===t&&0===i&&s===d&&l===h)n(c)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),_&&(c=u.flipY(c,p,f,d,h)),o.texImage2D(a,0,p,d,h,0,p,f,c)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,_),o.texImage2D(a,0,p,p,f,e)),v=!0;else{o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1);var y=u.createTypedArray(p,f,d,h);o.texImage2D(a,0,p,d,h,0,p,f,y)}this._initialized=!0}v||(n(c)?(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,!1),_&&(c=u.flipY(c,p,f,s,l)),o.texSubImage2D(a,0,t,i,s,l,p,f,c)):(o.pixelStorei(o.UNPACK_PREMULTIPLY_ALPHA_WEBGL,m), -o.pixelStorei(o.UNPACK_FLIP_Y_WEBGL,_),o.texSubImage2D(a,0,t,i,p,f,e))),o.bindTexture(a,null)},g.prototype.copyFromFramebuffer=function(e,t,i,n,o,a){e=r(e,0),t=r(t,0),i=r(i,0),n=r(n,0),o=r(o,this._width),a=r(a,this._height);var s=this._context._gl,l=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(l,this._texture),s.copyTexSubImage2D(l,0,e,t,i,n,o,a),s.bindTexture(l,null),this._initialized=!0},g.prototype.generateMipmap=function(e){e=r(e,h.DONT_CARE),this._hasMipmap=!0;var t=this._context._gl,i=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(i,this._texture),t.generateMipmap(i),t.bindTexture(i,null)},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),a(this)},g}),define("Shaders/Materials/AspectRampMaterial",[],function(){"use strict";return"uniform sampler2D image;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec4 rampColor = texture2D(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5));\nrampColor = czm_gammaCorrect(rampColor);\nmaterial.diffuse = rampColor.rgb;\nmaterial.alpha = rampColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/BumpMapMaterial",[],function(){"use strict";return"uniform sampler2D image;\nuniform float strength;\nuniform vec2 repeat;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nvec2 centerPixel = fract(repeat * st);\nfloat centerBump = texture2D(image, centerPixel).channel;\nfloat imageWidth = float(imageDimensions.x);\nvec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0)));\nfloat rightBump = texture2D(image, rightPixel).channel;\nfloat imageHeight = float(imageDimensions.y);\nvec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight)));\nfloat topBump = texture2D(image, leftPixel).channel;\nvec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0)));\nvec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\nmaterial.normal = normalEC;\nmaterial.diffuse = vec3(0.01);\nreturn material;\n}\n"}),define("Shaders/Materials/CheckerboardMaterial",[],function(){"use strict";return"uniform vec4 lightColor;\nuniform vec4 darkColor;\nuniform vec2 repeat;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nfloat b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0);\nfloat scaledWidth = fract(repeat.s * st.s);\nscaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));\nfloat scaledHeight = fract(repeat.t * st.t);\nscaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));\nfloat value = min(scaledWidth, scaledHeight);\nvec4 currentColor = mix(lightColor, darkColor, b);\nvec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03);\ncolor = czm_gammaCorrect(color);\nmaterial.diffuse = color.rgb;\nmaterial.alpha = color.a;\nreturn material;\n}\n"}),define("Shaders/Materials/DotMaterial",[],function(){"use strict";return"uniform vec4 lightColor;\nuniform vec4 darkColor;\nuniform vec2 repeat;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5));\nvec4 color = mix(lightColor, darkColor, b);\ncolor = czm_gammaCorrect(color);\nmaterial.diffuse = color.rgb;\nmaterial.alpha = color.a;\nreturn material;\n}\n"}),define("Shaders/Materials/ElevationContourMaterial",[],function(){"use strict";return"#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\nuniform vec4 color;\nuniform float spacing;\nuniform float width;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat distanceToContour = mod(materialInput.height, spacing);\n#ifdef GL_OES_standard_derivatives\nfloat dxc = abs(dFdx(materialInput.height));\nfloat dyc = abs(dFdy(materialInput.height));\nfloat dF = max(dxc, dyc) * width;\nfloat alpha = (distanceToContour < dF) ? 1.0 : 0.0;\n#else\nfloat alpha = (distanceToContour < (czm_resolutionScale * width)) ? 1.0 : 0.0;\n#endif\nvec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha));\nmaterial.diffuse = outColor.rgb;\nmaterial.alpha = outColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/ElevationRampMaterial",[],function(){"use strict";return"uniform sampler2D image;\nuniform float minimumHeight;\nuniform float maximumHeight;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0);\nvec4 rampColor = texture2D(image, vec2(scaledHeight, 0.5));\nrampColor = czm_gammaCorrect(rampColor);\nmaterial.diffuse = rampColor.rgb;\nmaterial.alpha = rampColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/FadeMaterial",[],function(){"use strict";return"uniform vec4 fadeInColor;\nuniform vec4 fadeOutColor;\nuniform float maximumDistance;\nuniform bool repeat;\nuniform vec2 fadeDirection;\nuniform vec2 time;\nfloat getTime(float t, float coord)\n{\nfloat scalar = 1.0 / maximumDistance;\nfloat q = distance(t, coord) * scalar;\nif (repeat)\n{\nfloat r = distance(t, coord + 1.0) * scalar;\nfloat s = distance(t, coord - 1.0) * scalar;\nq = min(min(r, s), q);\n}\nreturn clamp(q, 0.0, 1.0);\n}\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nfloat s = getTime(time.x, st.s) * fadeDirection.s;\nfloat t = getTime(time.y, st.t) * fadeDirection.t;\nfloat u = length(vec2(s, t));\nvec4 color = mix(fadeInColor, fadeOutColor, u);\ncolor = czm_gammaCorrect(color);\nmaterial.emission = color.rgb;\nmaterial.alpha = color.a;\nreturn material;\n}\n"}),define("Shaders/Materials/GridMaterial",[],function(){"use strict";return"#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\nuniform vec4 color;\nuniform float cellAlpha;\nuniform vec2 lineCount;\nuniform vec2 lineThickness;\nuniform vec2 lineOffset;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nfloat scaledWidth = fract(lineCount.s * st.s - lineOffset.s);\nscaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5));\nfloat scaledHeight = fract(lineCount.t * st.t - lineOffset.t);\nscaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5));\nfloat value;\n#ifdef GL_OES_standard_derivatives\nconst float fuzz = 1.2;\nvec2 thickness = (lineThickness * czm_resolutionScale) - 1.0;\nvec2 dx = abs(dFdx(st));\nvec2 dy = abs(dFdy(st));\nvec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount;\nvalue = min(\nsmoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth),\nsmoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight));\n#else\nconst float fuzz = 0.05;\nvec2 range = 0.5 - (lineThickness * 0.05);\nvalue = min(\n1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth),\n1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight));\n#endif\nfloat dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)));\nfloat sRim = smoothstep(0.8, 1.0, dRim);\nvalue *= (1.0 - sRim);\nvec4 halfColor;\nhalfColor.rgb = color.rgb * 0.5;\nhalfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value));\nhalfColor = czm_gammaCorrect(halfColor);\nmaterial.diffuse = halfColor.rgb;\nmaterial.emission = halfColor.rgb;\nmaterial.alpha = halfColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/NormalMapMaterial",[],function(){"use strict";return"uniform sampler2D image;\nuniform float strength;\nuniform vec2 repeat;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec4 textureValue = texture2D(image, fract(repeat * materialInput.st));\nvec3 normalTangentSpace = textureValue.channels;\nnormalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0;\nnormalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0);\nnormalTangentSpace = normalize(normalTangentSpace);\nvec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace;\nmaterial.normal = normalEC;\nreturn material;\n}\n"}),define("Shaders/Materials/PolylineArrowMaterial",[],function(){"use strict";return"#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\nuniform vec4 color;\nvarying float v_width;\nfloat getPointOnLine(vec2 p0, vec2 p1, float x)\n{\nfloat slope = (p0.y - p1.y) / (p0.x - p1.x);\nreturn slope * (x - p0.x) + p0.y;\n}\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\n#ifdef GL_OES_standard_derivatives\nfloat base = 1.0 - abs(fwidth(st.s)) * 10.0;\n#else\nfloat base = 0.99;\n#endif\nvec2 center = vec2(1.0, 0.5);\nfloat ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s);\nfloat ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s);\nfloat halfWidth = 0.15;\nfloat s = step(0.5 - halfWidth, st.t);\ns *= 1.0 - step(0.5 + halfWidth, st.t);\ns *= 1.0 - step(base, st.s);\nfloat t = step(base, materialInput.st.s);\nt *= 1.0 - step(ptOnUpperLine, st.t);\nt *= step(ptOnLowerLine, st.t);\nfloat dist;\nif (st.s < base)\n{\nfloat d1 = abs(st.t - (0.5 - halfWidth));\nfloat d2 = abs(st.t - (0.5 + halfWidth));\ndist = min(d1, d2);\n}\nelse\n{\nfloat d1 = czm_infinity;\nif (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth)\n{\nd1 = abs(st.s - base);\n}\nfloat d2 = abs(st.t - ptOnUpperLine);\nfloat d3 = abs(st.t - ptOnLowerLine);\ndist = min(min(d1, d2), d3);\n}\nvec4 outsideColor = vec4(0.0);\nvec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0));\nvec4 outColor = czm_antialias(outsideColor, color, currentColor, dist);\noutColor = czm_gammaCorrect(outColor);\nmaterial.diffuse = outColor.rgb;\nmaterial.alpha = outColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/PolylineDashMaterial",[],function(){"use strict";return"uniform vec4 color;\nuniform vec4 gapColor;\nuniform float dashLength;\nuniform float dashPattern;\nvarying float v_polylineAngle;\nconst float maskLength = 16.0;\nmat2 rotate(float rad) {\nfloat c = cos(rad);\nfloat s = sin(rad);\nreturn mat2(\nc, s,\n-s, c\n);\n}\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy;\nfloat dashPosition = fract(pos.x / dashLength);\nfloat maskIndex = floor(dashPosition * maskLength);\nfloat maskTest = floor(dashPattern / pow(2.0, maskIndex));\nvec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color;\nif (fragColor.a < 0.005) {\ndiscard;\n}\nfragColor = czm_gammaCorrect(fragColor);\nmaterial.emission = fragColor.rgb;\nmaterial.alpha = fragColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/PolylineGlowMaterial",[],function(){"use strict";return"uniform vec4 color;\nuniform float glowPower;\nuniform float taperPower;\nvarying float v_width;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nfloat glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5);\nif (taperPower <= 0.99999) {\nglow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5));\n}\nvec4 fragColor;\nfragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb);\nfragColor.a = clamp(0.0, 1.0, glow) * color.a;\nfragColor = czm_gammaCorrect(fragColor);\nmaterial.emission = fragColor.rgb;\nmaterial.alpha = fragColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/PolylineOutlineMaterial",[],function(){"use strict";return"uniform vec4 color;\nuniform vec4 outlineColor;\nuniform float outlineWidth;\nvarying float v_width;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec2 st = materialInput.st;\nfloat halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width;\nfloat b = step(0.5 - halfInteriorWidth, st.t);\nb *= 1.0 - step(0.5 + halfInteriorWidth, st.t);\nfloat d1 = abs(st.t - (0.5 - halfInteriorWidth));\nfloat d2 = abs(st.t - (0.5 + halfInteriorWidth));\nfloat dist = min(d1, d2);\nvec4 currentColor = mix(outlineColor, color, b);\nvec4 outColor = czm_antialias(outlineColor, color, currentColor, dist);\noutColor = czm_gammaCorrect(outColor);\nmaterial.diffuse = outColor.rgb;\nmaterial.alpha = outColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/RimLightingMaterial",[],function(){"use strict";return"uniform vec4 color;\nuniform vec4 rimColor;\nuniform float width;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC));\nfloat s = smoothstep(1.0 - width, 1.0, d);\nvec4 outColor = czm_gammaCorrect(color);\nvec4 outRimColor = czm_gammaCorrect(rimColor);\nmaterial.diffuse = outColor.rgb;\nmaterial.emission = outRimColor.rgb * s;\nmaterial.alpha = mix(outColor.a, outRimColor.a, s);\nreturn material;\n}\n"}),define("Shaders/Materials/SlopeRampMaterial",[],function(){"use strict";return"uniform sampler2D image;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nvec4 rampColor = texture2D(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5));\nrampColor = czm_gammaCorrect(rampColor);\nmaterial.diffuse = rampColor.rgb;\nmaterial.alpha = rampColor.a;\nreturn material;\n}\n"}),define("Shaders/Materials/StripeMaterial",[],function(){"use strict";return"uniform vec4 evenColor;\nuniform vec4 oddColor;\nuniform float offset;\nuniform float repeat;\nuniform bool horizontal;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal));\nfloat value = fract((coord - offset) * (repeat * 0.5));\nfloat dist = min(value, min(abs(value - 0.5), 1.0 - value));\nvec4 currentColor = mix(evenColor, oddColor, step(0.5, value));\nvec4 color = czm_antialias(evenColor, oddColor, currentColor, dist);\ncolor = czm_gammaCorrect(color);\nmaterial.diffuse = color.rgb;\nmaterial.alpha = color.a;\nreturn material;\n}\n"}),define("Shaders/Materials/Water",[],function(){"use strict";return"uniform sampler2D specularMap;\nuniform sampler2D normalMap;\nuniform vec4 baseWaterColor;\nuniform vec4 blendColor;\nuniform float frequency;\nuniform float animationSpeed;\nuniform float amplitude;\nuniform float specularIntensity;\nuniform float fadeFactor;\nczm_material czm_getMaterial(czm_materialInput materialInput)\n{\nczm_material material = czm_getDefaultMaterial(materialInput);\nfloat time = czm_frameNumber * animationSpeed;\nfloat fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor);\nfloat specularMapValue = texture2D(specularMap, materialInput.st).r;\nvec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0);\nvec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude));\nnormalTangentSpace.xy /= fade;\nnormalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue);\nnormalTangentSpace = normalize(normalTangentSpace);\nfloat tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0);\nmaterial.alpha = specularMapValue;\nmaterial.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue);\nmaterial.diffuse += (0.1 * tsPerturbationRatio);\nmaterial.diffuse = material.diffuse;\nmaterial.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace);\nmaterial.specular = specularIntensity;\nmaterial.shininess = 10.0;\nreturn material;\n}\n"}),define("Scene/Material",["../Core/Cartesian2","../Core/clone","../Core/Color","../Core/combine","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/isArray","../Core/loadCRN","../Core/loadKTX","../Core/Matrix2","../Core/Matrix3","../Core/Matrix4","../Core/Resource","../Renderer/CubeMap","../Renderer/Texture","../Shaders/Materials/AspectRampMaterial","../Shaders/Materials/BumpMapMaterial","../Shaders/Materials/CheckerboardMaterial","../Shaders/Materials/DotMaterial","../Shaders/Materials/ElevationContourMaterial","../Shaders/Materials/ElevationRampMaterial","../Shaders/Materials/FadeMaterial","../Shaders/Materials/GridMaterial","../Shaders/Materials/NormalMapMaterial","../Shaders/Materials/PolylineArrowMaterial","../Shaders/Materials/PolylineDashMaterial","../Shaders/Materials/PolylineGlowMaterial","../Shaders/Materials/PolylineOutlineMaterial","../Shaders/Materials/RimLightingMaterial","../Shaders/Materials/SlopeRampMaterial","../Shaders/Materials/StripeMaterial","../Shaders/Materials/Water","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F){"use strict";function B(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,z(e,this),s(this,{type:{value:this.type,writable:!1}}),a(B._uniformList[this.type])||(B._uniformList[this.type]=Object.keys(this._uniforms))}function z(e,i){e=o(e,o.EMPTY_OBJECT),i._strict=o(e.strict,!1),i._count=o(e.count,0),i._template=t(o(e.fabric,o.EMPTY_OBJECT)),i._template.uniforms=t(o(i._template.uniforms,o.EMPTY_OBJECT)),i._template.materials=t(o(i._template.materials,o.EMPTY_OBJECT)),i.type=a(i._template.type)?i._template.type:n(),i.shaderSource="",i.materials={},i.uniforms={},i._uniforms={},i._translucentFunctions=[];var s,l=B._materialCache.getMaterial(i.type);if(a(l)){var u=t(l.fabric,!0);i._template=r(i._template,u,!0),s=l.translucent}G(i),a(l)||B._materialCache.addMaterial(i.type,i),H(i),Y(i),Q(i);var c=0===i._translucentFunctions.length||void 0;if(s=o(s,c),s=o(e.translucent,s),a(s))if("function"==typeof s){var d=function(){return s(i)};i._translucentFunctions.push(d)}else i._translucentFunctions.push(s)}function k(e,t,i,r){if(a(e))for(var n in e)if(e.hasOwnProperty(n)){var o=-1!==t.indexOf(n);(r&&!o||!r&&o)&&i(n,t)}}function V(e,t){}function U(e,t){}function G(e){var t=e._template,i=t.uniforms,r=t.materials,n=t.components;k(t,J,V,!0),k(n,$,V,!0);var o=[];for(var a in r)r.hasOwnProperty(a)&&o.push(a);k(i,o,U,!1)}function H(e){var t=e._template.components,i=e._template.source;if(a(i))e.shaderSource+=i+"\n";else{if(e.shaderSource+="czm_material czm_getMaterial(czm_materialInput materialInput)\n{\n",e.shaderSource+="czm_material material = czm_getDefaultMaterial(materialInput);\n",a(t))for(var r in t)t.hasOwnProperty(r)&&(e.shaderSource+="diffuse"===r||"emission"===r?"material."+r+" = czm_gammaCorrect("+t[r]+"); \n":"alpha"===r?"material.alpha = czm_gammaCorrect(vec4(vec3(0.0), "+t.alpha+")).a; \n":"material."+r+" = "+t[r]+";\n");e.shaderSource+="return material;\n}\n"}}function W(e){var t;return function(i,r){var n=i.uniforms,o=n[e],s=t!==o;t=o;var l,u,c=i._textures[e];if(o instanceof HTMLVideoElement)if(o.readyState>=2){if(s&&a(c)&&(c!==r.defaultTexture&&c.destroy(),c=void 0),!a(c)||c===r.defaultTexture)return c=new v({context:r,source:o}),void(i._textures[e]=c);c.copyFrom(o)}else a(c)||(i._textures[e]=r.defaultTexture);else{if(o instanceof v&&o!==c){i._texturePaths[e]=void 0;var p=i._textures[e];return p!==i._defaultTexture&&p.destroy(),i._textures[e]=o,l=e+"Dimensions",void(n.hasOwnProperty(l)&&(u=n[l],u.x=o._width,u.y=o._height))}if(a(c)||(i._texturePaths[e]=void 0,a(i._defaultTexture)||(i._defaultTexture=r.defaultTexture),c=i._textures[e]=i._defaultTexture,l=e+"Dimensions",n.hasOwnProperty(l)&&(u=n[l],u.x=c._width,u.y=c._height)),o!==B.DefaultImageId){var f=o instanceof _;if(!a(i._texturePaths[e])||f&&o.url!==i._texturePaths[e].url||!f&&o!==i._texturePaths[e]){if("string"==typeof o||f){var m,g=f?o:_.createIfNeeded(o);m=te.test(o)?h(g):ie.test(o)?d(g):g.fetchImage(),F(m,function(t){i._loadedImages.push({id:e,image:t})})}else(o instanceof HTMLCanvasElement||o instanceof HTMLImageElement)&&i._loadedImages.push({id:e,image:o});i._texturePaths[e]=o}}}}}function q(e){return function(t,i){var r=t.uniforms[e];if(r instanceof g){var n=t._textures[e];return n!==t._defaultTexture&&n.destroy(),t._texturePaths[e]=void 0,void(t._textures[e]=r)}if(a(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=i.defaultCubeMap),r!==B.DefaultCubeMapId){var o=r.positiveX+r.negativeX+r.positiveY+r.negativeY+r.positiveZ+r.negativeZ;if(o!==t._texturePaths[e]){var s=[_.createIfNeeded(r.positiveX).fetchImage(),_.createIfNeeded(r.negativeX).fetchImage(),_.createIfNeeded(r.positiveY).fetchImage(),_.createIfNeeded(r.negativeY).fetchImage(),_.createIfNeeded(r.positiveZ).fetchImage(),_.createIfNeeded(r.negativeZ).fetchImage()];F.all(s).then(function(i){t._loadedCubeMaps.push({id:e,images:i})}),t._texturePaths[e]=o}}}}function Y(e){var t=e._template.uniforms;for(var i in t)t.hasOwnProperty(i)&&j(e,i)}function j(e,t){var i=(e._strict,e._template.uniforms),r=i[t],n=X(r);if("channels"===n)K(e,t,r,!1);else{if("sampler2D"===n){var o=t+"Dimensions";Z(e,o)>0&&(i[o]={type:"ivec3",x:1,y:1},j(e,o))}if(!new RegExp("uniform\\s+"+n+"\\s+"+t+"\\s*;").test(e.shaderSource)){var a="uniform "+n+" "+t+";";e.shaderSource=a+e.shaderSource}var s=t+"_"+e._count++;if(K(e,t,s),e.uniforms[t]=r,"sampler2D"===n)e._uniforms[s]=function(){return e._textures[t]},e._updateFunctions.push(W(t));else if("samplerCube"===n)e._uniforms[s]=function(){return e._textures[t]},e._updateFunctions.push(q(t));else if(-1!==n.indexOf("mat")){var l=new ee[n];e._uniforms[s]=function(){return ee[n].fromColumnMajorArray(e.uniforms[t],l)}}else e._uniforms[s]=function(){return e.uniforms[t]}}}function X(e){var t=e.type;if(!a(t)){var i=typeof e;if("number"===i)t="float";else if("boolean"===i)t="bool";else if("string"===i||e instanceof _||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)t=/^([rgba]){1,4}$/i.test(e)?"channels":e===B.DefaultCubeMapId?"samplerCube":"sampler2D";else if("object"===i)if(c(e))4!==e.length&&9!==e.length&&16!==e.length||(t="mat"+Math.sqrt(e.length));else{var r=0;for(var n in e)e.hasOwnProperty(n)&&(r+=1);r>=2&&r<=4?t="vec"+r:6===r&&(t="samplerCube")}}return t}function Q(e){var t=e._strict,i=e._template.materials;for(var n in i)if(i.hasOwnProperty(n)){var o=new B({strict:t,fabric:i[n],count:e._count});e._count=o._count,e._uniforms=r(e._uniforms,o._uniforms,!0),e.materials[n]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);var a="czm_getMaterial_"+e._count++;K(o,"czm_getMaterial",a),e.shaderSource=o.shaderSource+e.shaderSource;var s=a+"(materialInput)";K(e,n,s)}}function K(e,t,i,r){r=o(r,!0);var n=0,a="([\\w"+(r?".":"")+"])?",s=new RegExp(a+t+"([\\w])?","g");return e.shaderSource=e.shaderSource.replace(s,function(e,t,r){return t||r?e:(n+=1,i)}),n}function Z(e,t,i){return K(e,t,t,i)}B._uniformList={},B.fromType=function(e,t){var i=new B({fabric:{type:e}});if(a(t))for(var r in t)t.hasOwnProperty(r)&&(i.uniforms[r]=t[r]);return i},B.prototype.isTranslucent=function(){if(a(this.translucent))return"function"==typeof this.translucent?this.translucent():this.translucent;for(var e=!0,t=this._translucentFunctions,i=t.length,r=0;r<i;++r){var n=t[r];if(!(e="function"==typeof n?e&&n():e&&n))break}return e},B.prototype.update=function(e){var t,i,r=this._loadedImages,n=r.length;for(t=0;t<n;++t){var o=r[t];i=o.id;var s,l=o.image;s=new v(a(l.internalFormat)?{context:e,pixelFormat:l.internalFormat,width:l.width,height:l.height,source:{arrayBufferView:l.bufferView}}:{context:e,source:l}),this._textures[i]=s;var u=i+"Dimensions";if(this.uniforms.hasOwnProperty(u)){var c=this.uniforms[u];c.x=s._width,c.y=s._height}}r.length=0;var d=this._loadedCubeMaps;for(n=d.length,t=0;t<n;++t){var h=d[t];i=h.id;var p=h.images,f=new g({context:e,source:{positiveX:p[0],negativeX:p[1],positiveY:p[2],negativeY:p[3],positiveZ:p[4],negativeZ:p[5]}});this._textures[i]=f}d.length=0;var m=this._updateFunctions;for(n=m.length,t=0;t<n;++t)m[t](this,e);var _=this.materials;for(var y in _)_.hasOwnProperty(y)&&_[y].update(e)},B.prototype.isDestroyed=function(){return!1},B.prototype.destroy=function(){var e=this._textures;for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];i!==this._defaultTexture&&i.destroy()}var r=this.materials;for(var n in r)r.hasOwnProperty(n)&&r[n].destroy();return l(this)};var J=["type","materials","uniforms","components","source"],$=["diffuse","specular","shininess","normal","emission","alpha"],ee={mat2:p,mat3:f,mat4:m},te=/\.ktx$/i,ie=/\.crn$/i;return B._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}},B.DefaultImageId="czm_defaultImage",B.DefaultCubeMapId="czm_defaultCubeMap",B.ColorType="Color",B._materialCache.addMaterial(B.ColorType,{fabric:{type:B.ColorType,uniforms:{color:new i(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}}),B.ImageType="Image",B._materialCache.addMaterial(B.ImageType,{fabric:{type:B.ImageType,uniforms:{image:B.DefaultImageId,repeat:new e(1,1),color:new i(1,1,1,1)},components:{diffuse:"texture2D(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture2D(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}}),B.DiffuseMapType="DiffuseMap",B._materialCache.addMaterial(B.DiffuseMapType,{fabric:{type:B.DiffuseMapType,uniforms:{image:B.DefaultImageId,channels:"rgb",repeat:new e(1,1)},components:{diffuse:"texture2D(image, fract(repeat * materialInput.st)).channels"}},translucent:!1}),B.AlphaMapType="AlphaMap",B._materialCache.addMaterial(B.AlphaMapType,{fabric:{type:B.AlphaMapType,uniforms:{image:B.DefaultImageId,channel:"a",repeat:new e(1,1)},components:{alpha:"texture2D(image, fract(repeat * materialInput.st)).channel"}},translucent:!0}),B.SpecularMapType="SpecularMap",B._materialCache.addMaterial(B.SpecularMapType,{fabric:{type:B.SpecularMapType,uniforms:{image:B.DefaultImageId,channel:"r",repeat:new e(1,1)},components:{specular:"texture2D(image, fract(repeat * materialInput.st)).channel"}},translucent:!1}),B.EmissionMapType="EmissionMap",B._materialCache.addMaterial(B.EmissionMapType,{fabric:{type:B.EmissionMapType,uniforms:{image:B.DefaultImageId,channels:"rgb",repeat:new e(1,1)},components:{emission:"texture2D(image, fract(repeat * materialInput.st)).channels"}},translucent:!1}),B.BumpMapType="BumpMap",B._materialCache.addMaterial(B.BumpMapType,{fabric:{type:B.BumpMapType,uniforms:{image:B.DefaultImageId,channel:"r",strength:.8,repeat:new e(1,1)},source:C},translucent:!1}),B.NormalMapType="NormalMap",B._materialCache.addMaterial(B.NormalMapType,{fabric:{type:B.NormalMapType,uniforms:{image:B.DefaultImageId,channels:"rgb",strength:.8,repeat:new e(1,1)},source:x},translucent:!1}),B.GridType="Grid",B._materialCache.addMaterial(B.GridType,{fabric:{type:B.GridType,uniforms:{color:new i(0,1,0,1),cellAlpha:.1,lineCount:new e(8,8),lineThickness:new e(1,1),lineOffset:new e(0,0)},source:w},translucent:function(e){var t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}}),B.StripeType="Stripe",B._materialCache.addMaterial(B.StripeType,{fabric:{type:B.StripeType,uniforms:{horizontal:!0,evenColor:new i(1,1,1,.5),oddColor:new i(0,0,1,.5),offset:0,repeat:5},source:L},translucent:function(e){var t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}}),B.CheckerboardType="Checkerboard",B._materialCache.addMaterial(B.CheckerboardType,{fabric:{type:B.CheckerboardType,uniforms:{lightColor:new i(1,1,1,.5),darkColor:new i(0,0,0,.5),repeat:new e(5,5)},source:b},translucent:function(e){var t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}}),B.DotType="Dot",B._materialCache.addMaterial(B.DotType,{fabric:{type:B.DotType,uniforms:{lightColor:new i(1,1,0,.75),darkColor:new i(0,1,1,.75),repeat:new e(5,5)},source:S},translucent:function(e){var t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}}),B.WaterType="Water",B._materialCache.addMaterial(B.WaterType,{fabric:{type:B.WaterType,uniforms:{baseWaterColor:new i(.2,.3,.6,1),blendColor:new i(0,1,.699,1),specularMap:B.DefaultImageId,normalMap:B.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:N},translucent:function(e){var t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}}),B.RimLightingType="RimLighting",B._materialCache.addMaterial(B.RimLightingType,{fabric:{type:B.RimLightingType,uniforms:{color:new i(1,0,0,.7),rimColor:new i(1,1,1,.4),width:.3},source:R},translucent:function(e){var t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}}),B.FadeType="Fade",B._materialCache.addMaterial(B.FadeType,{fabric:{type:B.FadeType,uniforms:{fadeInColor:new i(1,0,0,1),fadeOutColor:new i(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new e(.5,.5)},source:A},translucent:function(e){var t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}}),B.PolylineArrowType="PolylineArrow",B._materialCache.addMaterial(B.PolylineArrowType,{fabric:{type:B.PolylineArrowType,uniforms:{color:new i(1,1,1,1)},source:P},translucent:!0}),B.PolylineDashType="PolylineDash",B._materialCache.addMaterial(B.PolylineDashType,{fabric:{type:B.PolylineDashType,uniforms:{color:new i(1,0,1,1),gapColor:new i(0,0,0,0),dashLength:16,dashPattern:255},source:D},translucent:!0}),B.PolylineGlowType="PolylineGlow",B._materialCache.addMaterial(B.PolylineGlowType,{fabric:{type:B.PolylineGlowType,uniforms:{color:new i(0,.5,1,1),glowPower:.25,taperPower:1},source:I},translucent:!0}),B.PolylineOutlineType="PolylineOutline",B._materialCache.addMaterial(B.PolylineOutlineType,{fabric:{type:B.PolylineOutlineType,uniforms:{color:new i(1,1,1,1),outlineColor:new i(1,0,0,1),outlineWidth:1},source:M},translucent:function(e){var t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}}),B.ElevationContourType="ElevationContour",B._materialCache.addMaterial(B.ElevationContourType,{fabric:{type:B.ElevationContourType,uniforms:{spacing:100,color:new i(1,0,0,1),width:1},source:T},translucent:!1}),B.ElevationRampType="ElevationRamp",B._materialCache.addMaterial(B.ElevationRampType,{fabric:{type:B.ElevationRampType,uniforms:{image:B.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:E},translucent:!1}),B.SlopeRampMaterialType="SlopeRamp",B._materialCache.addMaterial(B.SlopeRampMaterialType,{fabric:{type:B.SlopeRampMaterialType,uniforms:{image:B.DefaultImageId},source:O},translucent:!1}),B.AspectRampMaterialType="AspectRamp",B._materialCache.addMaterial(B.AspectRampMaterialType,{fabric:{type:B.AspectRampMaterialType,uniforms:{image:B.DefaultImageId},source:y},translucent:!1}),B}), -define("Scene/MaterialAppearance",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/freezeObject","../Core/VertexFormat","../Shaders/Appearances/AllMaterialAppearanceFS","../Shaders/Appearances/AllMaterialAppearanceVS","../Shaders/Appearances/BasicMaterialAppearanceFS","../Shaders/Appearances/BasicMaterialAppearanceVS","../Shaders/Appearances/TexturedMaterialAppearanceFS","../Shaders/Appearances/TexturedMaterialAppearanceVS","./Appearance","./Material"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(i){i=e(i,e.EMPTY_OBJECT);var r=e(i.translucent,!0),n=e(i.closed,!1),o=e(i.materialSupport,p.MaterialSupport.TEXTURED);this.material=t(i.material)?i.material:h.fromType(h.ColorType),this.translucent=r,this._vertexShaderSource=e(i.vertexShaderSource,o.vertexShaderSource),this._fragmentShaderSource=e(i.fragmentShaderSource,o.fragmentShaderSource),this._renderState=d.getDefaultRenderState(r,n,i.renderState),this._closed=n,this._materialSupport=o,this._vertexFormat=o.vertexFormat,this._flat=e(i.flat,!1),this._faceForward=e(i.faceForward,!n)}return i(p.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}}),p.prototype.getFragmentShaderSource=d.prototype.getFragmentShaderSource,p.prototype.isTranslucent=d.prototype.isTranslucent,p.prototype.getRenderState=d.prototype.getRenderState,p.MaterialSupport={BASIC:r({vertexFormat:n.POSITION_AND_NORMAL,vertexShaderSource:l,fragmentShaderSource:s}),TEXTURED:r({vertexFormat:n.POSITION_NORMAL_AND_ST,vertexShaderSource:c,fragmentShaderSource:u}),ALL:r({vertexFormat:n.ALL,vertexShaderSource:a,fragmentShaderSource:o})},p}),define("Shaders/Appearances/PerInstanceColorAppearanceFS",[],function(){"use strict";return"varying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec4 v_color;\nvoid main()\n{\nvec3 positionToEyeEC = -v_positionEC;\nvec3 normalEC = normalize(v_normalEC);\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nvec4 color = czm_gammaCorrect(v_color);\nczm_materialInput materialInput;\nmaterialInput.normalEC = normalEC;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nczm_material material = czm_getDefaultMaterial(materialInput);\nmaterial.diffuse = color.rgb;\nmaterial.alpha = color.a;\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\n}\n"}),define("Shaders/Appearances/PerInstanceColorAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 normal;\nattribute vec4 color;\nattribute float batchId;\nvarying vec3 v_positionEC;\nvarying vec3 v_normalEC;\nvarying vec4 v_color;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_positionEC = (czm_modelViewRelativeToEye * p).xyz;\nv_normalEC = czm_normal * normal;\nv_color = color;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Shaders/Appearances/PerInstanceFlatColorAppearanceFS",[],function(){"use strict";return"varying vec4 v_color;\nvoid main()\n{\ngl_FragColor = v_color;\n}\n"}),define("Shaders/Appearances/PerInstanceFlatColorAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec4 color;\nattribute float batchId;\nvarying vec4 v_color;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_color = color;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Scene/PerInstanceColorAppearance",["../Core/defaultValue","../Core/defineProperties","../Core/VertexFormat","../Shaders/Appearances/PerInstanceColorAppearanceFS","../Shaders/Appearances/PerInstanceColorAppearanceVS","../Shaders/Appearances/PerInstanceFlatColorAppearanceFS","../Shaders/Appearances/PerInstanceFlatColorAppearanceVS","./Appearance"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.translucent,!0),u=e(t.closed,!1),c=e(t.flat,!1),d=c?a:n,h=c?o:r,p=c?l.FLAT_VERTEX_FORMAT:l.VERTEX_FORMAT;this.material=void 0,this.translucent=i,this._vertexShaderSource=e(t.vertexShaderSource,d),this._fragmentShaderSource=e(t.fragmentShaderSource,h),this._renderState=s.getDefaultRenderState(i,u,t.renderState),this._closed=u,this._vertexFormat=p,this._flat=c,this._faceForward=e(t.faceForward,!u)}return t(l.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}}),l.VERTEX_FORMAT=i.POSITION_AND_NORMAL,l.FLAT_VERTEX_FORMAT=i.POSITION_ONLY,l.prototype.getFragmentShaderSource=s.prototype.getFragmentShaderSource,l.prototype.isTranslucent=s.prototype.isTranslucent,l.prototype.getRenderState=s.prototype.getRenderState,l}),define("DataSources/CallbackProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event"],function(e,t,i,r){"use strict";function n(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new r,this.setCallback(e,t)}return t(n.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}}),n.prototype.getValue=function(e,t){return this._callback(e,t)},n.prototype.setCallback=function(e,t){var i=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,i&&this._definitionChanged.raiseEvent(this)},n.prototype.equals=function(e){return this===e||e instanceof n&&this._callback===e._callback&&this._isConstant===e._isConstant},n}),define("Scene/ClassificationType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2,NUMBER_OF_CLASSIFICATION_TYPES:3})}),define("Scene/ShadowMode",["../Core/freezeObject"],function(e){"use strict";var t={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3,NUMBER_OF_SHADOW_MODES:4};return t.castShadows=function(e){return e===t.ENABLED||e===t.CAST_ONLY},t.receiveShadows=function(e){return e===t.ENABLED||e===t.RECEIVE_ONLY},t.fromCastReceive=function(e,i){return e&&i?t.ENABLED:e?t.CAST_ONLY:i?t.RECEIVE_ONLY:t.DISABLED},e(t)}),define("DataSources/ColorMaterialProperty",["../Core/Color","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o){"use strict";function a(e){this._definitionChanged=new r,this._color=void 0,this._colorSubscription=void 0,this.color=e}return i(a.prototype,{isConstant:{get:function(){return o.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:n("color")}),a.prototype.getType=function(e){return"Color"},a.prototype.getValue=function(i,r){return t(r)||(r={}),r.color=o.getValueOrClonedDefault(this._color,i,e.WHITE,r.color),r},a.prototype.equals=function(e){return this===e||e instanceof a&&o.equals(this._color,e._color)},a}),define("Renderer/DrawCommand",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/PrimitiveType"],function(e,t,i,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this._boundingVolume=t.boundingVolume,this._orientedBoundingBox=t.orientedBoundingBox,this._cull=e(t.cull,!0),this._occlude=e(t.occlude,!0),this._modelMatrix=t.modelMatrix,this._primitiveType=e(t.primitiveType,r.TRIANGLES),this._vertexArray=t.vertexArray,this._count=t.count,this._offset=e(t.offset,0),this._instanceCount=e(t.instanceCount,0),this._shaderProgram=t.shaderProgram,this._uniformMap=t.uniformMap,this._renderState=t.renderState,this._framebuffer=t.framebuffer,this._pass=t.pass,this._executeInClosestFrustum=e(t.executeInClosestFrustum,!1),this._owner=t.owner,this._debugShowBoundingVolume=e(t.debugShowBoundingVolume,!1),this._debugOverlappingFrustums=0,this._castShadows=e(t.castShadows,!1),this._receiveShadows=e(t.receiveShadows,!1),this._pickId=t.pickId,this._pickOnly=e(t.pickOnly,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}return i(n.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return this._cull},set:function(e){this._cull!==e&&(this._cull=e,this.dirty=!0)}},occlude:{get:function(){return this._occlude},set:function(e){this._occlude!==e&&(this._occlude=e,this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return this._castShadows},set:function(e){this._castShadows!==e&&(this._castShadows=e,this.dirty=!0)}},receiveShadows:{get:function(){return this._receiveShadows},set:function(e){this._receiveShadows!==e&&(this._receiveShadows=e,this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return this._executeInClosestFrustum},set:function(e){this._executeInClosestFrustum!==e&&(this._executeInClosestFrustum=e,this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickOnly:{get:function(){return this._pickOnly},set:function(e){this._pickOnly!==e&&(this._pickOnly=e,this.dirty=!0)}}}),n.shallowClone=function(e,i){if(t(e))return t(i)||(i=new n),i._boundingVolume=e._boundingVolume,i._orientedBoundingBox=e._orientedBoundingBox,i._cull=e._cull,i._occlude=e._occlude,i._modelMatrix=e._modelMatrix,i._primitiveType=e._primitiveType,i._vertexArray=e._vertexArray,i._count=e._count,i._offset=e._offset,i._instanceCount=e._instanceCount,i._shaderProgram=e._shaderProgram,i._uniformMap=e._uniformMap,i._renderState=e._renderState,i._framebuffer=e._framebuffer,i._pass=e._pass,i._executeInClosestFrustum=e._executeInClosestFrustum,i._owner=e._owner,i._debugShowBoundingVolume=e._debugShowBoundingVolume,i._debugOverlappingFrustums=e._debugOverlappingFrustums,i._castShadows=e._castShadows,i._receiveShadows=e._receiveShadows,i._pickId=e._pickId,i._pickOnly=e._pickOnly,i.dirty=!0,i.lastDirtyTime=0,i},n.prototype.execute=function(e,t){e.draw(this,t)},n}),define("Renderer/Pass",["../Core/freezeObject"],function(e){"use strict";return e({ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,OVERLAY:9,NUMBER_OF_PASSES:10})}),define("Renderer/freezeRenderState",["../Core/freezeObject"],function(e){"use strict";function t(i){if("object"!=typeof i||null===i)return i;for(var r,n=Object.keys(i),o=0;o<n.length;o++)r=n[o],i.hasOwnProperty(r)&&"_applyFunctions"!==r&&(i[r]=t(i[r]));return e(i)}return t}),define("Renderer/RenderState",["../Core/BoundingRectangle","../Core/Color","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/WebGLConstants","../Core/WindingOrder","./ContextLimits","./freezeRenderState"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(n){var s=i(n,{}),l=i(s.cull,{}),u=i(s.polygonOffset,{}),c=i(s.scissorTest,{}),d=i(c.rectangle,{}),h=i(s.depthRange,{}),p=i(s.depthTest,{}),f=i(s.colorMask,{}),m=i(s.blending,{}),_=i(m.color,{}),g=i(s.stencilTest,{}),v=i(g.frontOperation,{}),y=i(g.backOperation,{}),C=i(s.sampleCoverage,{}),b=s.viewport;this.frontFace=i(s.frontFace,a.COUNTER_CLOCKWISE),this.cull={enabled:i(l.enabled,!1),face:i(l.face,o.BACK)},this.lineWidth=i(s.lineWidth,1),this.polygonOffset={enabled:i(u.enabled,!1),factor:i(u.factor,0),units:i(u.units,0)},this.scissorTest={enabled:i(c.enabled,!1),rectangle:e.clone(d)},this.depthRange={near:i(h.near,0),far:i(h.far,1)},this.depthTest={enabled:i(p.enabled,!1),func:i(p.func,o.LESS)},this.colorMask={red:i(f.red,!0),green:i(f.green,!0),blue:i(f.blue,!0),alpha:i(f.alpha,!0)},this.depthMask=i(s.depthMask,!0),this.stencilMask=i(s.stencilMask,-1),this.blending={enabled:i(m.enabled,!1),color:new t(i(_.red,0),i(_.green,0),i(_.blue,0),i(_.alpha,0)),equationRgb:i(m.equationRgb,o.FUNC_ADD),equationAlpha:i(m.equationAlpha,o.FUNC_ADD),functionSourceRgb:i(m.functionSourceRgb,o.ONE),functionSourceAlpha:i(m.functionSourceAlpha,o.ONE),functionDestinationRgb:i(m.functionDestinationRgb,o.ZERO),functionDestinationAlpha:i(m.functionDestinationAlpha,o.ZERO)},this.stencilTest={enabled:i(g.enabled,!1),frontFunction:i(g.frontFunction,o.ALWAYS),backFunction:i(g.backFunction,o.ALWAYS),reference:i(g.reference,0),mask:i(g.mask,-1),frontOperation:{fail:i(v.fail,o.KEEP),zFail:i(v.zFail,o.KEEP),zPass:i(v.zPass,o.KEEP)},backOperation:{fail:i(y.fail,o.KEEP),zFail:i(y.zFail,o.KEEP),zPass:i(y.zPass,o.KEEP)}},this.sampleCoverage={enabled:i(C.enabled,!1),value:i(C.value,1),invert:i(C.invert,!1)},this.viewport=r(b)?new e(b.x,b.y,b.width,b.height):void 0,this.id=0,this._applyFunctions=[]}function c(e,t,i){i?e.enable(t):e.disable(t)}function d(e,t){e.frontFace(t.frontFace)}function h(e,t){var i=t.cull,r=i.enabled;c(e,e.CULL_FACE,r),r&&e.cullFace(i.face)}function p(e,t){e.lineWidth(t.lineWidth)}function f(e,t){var i=t.polygonOffset,r=i.enabled;c(e,e.POLYGON_OFFSET_FILL,r),r&&e.polygonOffset(i.factor,i.units)}function m(e,t,i){var n=t.scissorTest,o=r(i.scissorTest)?i.scissorTest.enabled:n.enabled;if(c(e,e.SCISSOR_TEST,o),o){var a=r(i.scissorTest)?i.scissorTest.rectangle:n.rectangle;e.scissor(a.x,a.y,a.width,a.height)}}function _(e,t){var i=t.depthRange;e.depthRange(i.near,i.far)}function g(e,t){var i=t.depthTest,r=i.enabled;c(e,e.DEPTH_TEST,r),r&&e.depthFunc(i.func)}function v(e,t){var i=t.colorMask;e.colorMask(i.red,i.green,i.blue,i.alpha)}function y(e,t){e.depthMask(t.depthMask)}function C(e,t){e.stencilMask(t.stencilMask)}function b(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function S(e,t,i){var n=t.blending,o=r(i.blendingEnabled)?i.blendingEnabled:n.enabled;c(e,e.BLEND,o),o&&(b(e,n.color),e.blendEquationSeparate(n.equationRgb,n.equationAlpha),e.blendFuncSeparate(n.functionSourceRgb,n.functionDestinationRgb,n.functionSourceAlpha,n.functionDestinationAlpha))}function T(e,t){var i=t.stencilTest,r=i.enabled;if(c(e,e.STENCIL_TEST,r),r){var n=i.frontFunction,o=i.backFunction,a=i.reference,s=i.mask;e.stencilFunc(n,a,s),e.stencilFuncSeparate(e.BACK,o,a,s),e.stencilFuncSeparate(e.FRONT,n,a,s);var l=i.frontOperation,u=l.fail,d=l.zFail,h=l.zPass;e.stencilOpSeparate(e.FRONT,u,d,h);var p=i.backOperation,f=p.fail,m=p.zFail,_=p.zPass;e.stencilOpSeparate(e.BACK,f,m,_)}}function E(e,t){var i=t.sampleCoverage,r=i.enabled;c(e,e.SAMPLE_COVERAGE,r),r&&e.sampleCoverage(i.value,i.invert)}function A(e,t,n){var o=i(t.viewport,n.viewport);r(o)||(o=D,o.width=n.context.drawingBufferWidth,o.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=o,e.viewport(o.x,o.y,o.width,o.height)}function w(e,t){var i=[];return e.frontFace!==t.frontFace&&i.push(d),e.cull.enabled===t.cull.enabled&&e.cull.face===t.cull.face||i.push(h),e.lineWidth!==t.lineWidth&&i.push(p),e.polygonOffset.enabled===t.polygonOffset.enabled&&e.polygonOffset.factor===t.polygonOffset.factor&&e.polygonOffset.units===t.polygonOffset.units||i.push(f),e.depthRange.near===t.depthRange.near&&e.depthRange.far===t.depthRange.far||i.push(_),e.depthTest.enabled===t.depthTest.enabled&&e.depthTest.func===t.depthTest.func||i.push(g),e.colorMask.red===t.colorMask.red&&e.colorMask.green===t.colorMask.green&&e.colorMask.blue===t.colorMask.blue&&e.colorMask.alpha===t.colorMask.alpha||i.push(v),e.depthMask!==t.depthMask&&i.push(y),e.stencilMask!==t.stencilMask&&i.push(C),e.stencilTest.enabled===t.stencilTest.enabled&&e.stencilTest.frontFunction===t.stencilTest.frontFunction&&e.stencilTest.backFunction===t.stencilTest.backFunction&&e.stencilTest.reference===t.stencilTest.reference&&e.stencilTest.mask===t.stencilTest.mask&&e.stencilTest.frontOperation.fail===t.stencilTest.frontOperation.fail&&e.stencilTest.frontOperation.zFail===t.stencilTest.frontOperation.zFail&&e.stencilTest.backOperation.fail===t.stencilTest.backOperation.fail&&e.stencilTest.backOperation.zFail===t.stencilTest.backOperation.zFail&&e.stencilTest.backOperation.zPass===t.stencilTest.backOperation.zPass||i.push(T),e.sampleCoverage.enabled===t.sampleCoverage.enabled&&e.sampleCoverage.value===t.sampleCoverage.value&&e.sampleCoverage.invert===t.sampleCoverage.invert||i.push(E),i}var x=0,P={};u.fromCache=function(e){var t=JSON.stringify(e),i=P[t];if(r(i))return++i.referenceCount,i.state;var n=new u(e),o=JSON.stringify(n);return i=P[o],r(i)||(n.id=x++,i={referenceCount:0,state:n},P[o]=i),++i.referenceCount,P[t]={referenceCount:1,state:i.state},i.state},u.removeFromCache=function(e){var t=new u(e),i=JSON.stringify(t),n=P[i],o=JSON.stringify(e),a=P[o];r(a)&&0===--a.referenceCount&&(delete P[o],r(n)&&--n.referenceCount),r(n)&&0===n.referenceCount&&delete P[i]},u.getCache=function(){return P},u.clearCache=function(){P={}};var D=new e;return u.apply=function(e,t,i){d(e,t),h(e,t),p(e,t),f(e,t),_(e,t),g(e,t),v(e,t),y(e,t),C(e,t),T(e,t),E(e,t),m(e,t,i),S(e,t,i),A(e,t,i)},u.partialApply=function(e,t,i,n,o,a){if(t!==i){var s=i._applyFunctions[t.id];r(s)||(s=w(t,i),i._applyFunctions[t.id]=s);for(var l=s.length,u=0;u<l;++u)s[u](e,i)}((r(n.scissorTest)?n.scissorTest:t.scissorTest)!==(r(o.scissorTest)?o.scissorTest:i.scissorTest)||a)&&m(e,i,o);var c=r(n.blendingEnabled)?n.blendingEnabled:t.blending.enabled,d=r(o.blendingEnabled)?o.blendingEnabled:i.blending.enabled;(c!==d||d&&t.blending!==i.blending)&&S(e,i,o),t===i&&n===o&&n.context===o.context||A(e,i,o)},u.getState=function(i){return{frontFace:i.frontFace,cull:{enabled:i.cull.enabled,face:i.cull.face},lineWidth:i.lineWidth,polygonOffset:{enabled:i.polygonOffset.enabled,factor:i.polygonOffset.factor,units:i.polygonOffset.units},scissorTest:{enabled:i.scissorTest.enabled,rectangle:e.clone(i.scissorTest.rectangle)},depthRange:{near:i.depthRange.near,far:i.depthRange.far},depthTest:{enabled:i.depthTest.enabled,func:i.depthTest.func},colorMask:{red:i.colorMask.red,green:i.colorMask.green,blue:i.colorMask.blue,alpha:i.colorMask.alpha},depthMask:i.depthMask,stencilMask:i.stencilMask,blending:{enabled:i.blending.enabled,color:t.clone(i.blending.color),equationRgb:i.blending.equationRgb,equationAlpha:i.blending.equationAlpha,functionSourceRgb:i.blending.functionSourceRgb,functionSourceAlpha:i.blending.functionSourceAlpha,functionDestinationRgb:i.blending.functionDestinationRgb,functionDestinationAlpha:i.blending.functionDestinationAlpha},stencilTest:{enabled:i.stencilTest.enabled,frontFunction:i.stencilTest.frontFunction,backFunction:i.stencilTest.backFunction,reference:i.stencilTest.reference,mask:i.stencilTest.mask,frontOperation:{fail:i.stencilTest.frontOperation.fail,zFail:i.stencilTest.frontOperation.zFail,zPass:i.stencilTest.frontOperation.zPass},backOperation:{fail:i.stencilTest.backOperation.fail,zFail:i.stencilTest.backOperation.zFail,zPass:i.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:i.sampleCoverage.enabled,value:i.sampleCoverage.value,invert:i.sampleCoverage.invert},viewport:r(i.viewport)?e.clone(i.viewport):void 0}},u}),define("Renderer/AutomaticUniforms",["../Core/Cartesian3","../Core/Math","../Core/Matrix4","../Core/WebGLConstants"],function(e,t,i,r){"use strict";function n(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var o=new e;if("undefined"==typeof WebGLRenderingContext)return{};var a={};return a[r.FLOAT]="float",a[r.FLOAT_VEC2]="vec2",a[r.FLOAT_VEC3]="vec3",a[r.FLOAT_VEC4]="vec4",a[r.INT]="int",a[r.INT_VEC2]="ivec2",a[r.INT_VEC3]="ivec3",a[r.INT_VEC4]="ivec4",a[r.BOOL]="bool",a[r.BOOL_VEC2]="bvec2",a[r.BOOL_VEC3]="bvec3",a[r.BOOL_VEC4]="bvec4",a[r.FLOAT_MAT2]="mat2",a[r.FLOAT_MAT3]="mat3",a[r.FLOAT_MAT4]="mat4",a[r.SAMPLER_2D]="sampler2D",a[r.SAMPLER_CUBE]="samplerCube",n.prototype.getDeclaration=function(e){var t="uniform "+a[this._datatype]+" "+e,i=this._size;return t+=1===i?";":"["+i.toString()+"];"},{czm_viewport:new n({size:1,datatype:r.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new n({size:1,datatype:r.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new n({size:1,datatype:r.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight2D:new n({size:1,datatype:r.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_entireFrustum:new n({size:1,datatype:r.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new n({size:1,datatype:r.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new n({size:1,datatype:r.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_log2FarDistance:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.log2FarDistance}}),czm_log2FarPlusOne:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.log2FarPlusOne}}),czm_log2NearDistance:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.log2NearDistance}}),czm_sunPositionWC:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_encodedCameraPositionMCHigh:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return i.getTranslation(e.inverseView,o)}}),czm_frameNumber:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new n({size:1,datatype:r.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new n({size:1,datatype:r.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new n({size:1,datatype:r.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new n({size:1,datatype:r.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapSize:new n({size:1,datatype:r.FLOAT_VEC2,getValue:function(e){return e.specularEnvironmentMapsDimensions}}),czm_specularEnvironmentMapsMaximumLOD:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new n({size:9,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new n({size:1,datatype:r.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_resolutionScale:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.resolutionScale}}),czm_fogDensity:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.fogDensity}}),czm_imagerySplitPosition:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.imagerySplitPosition}}),czm_geometricToleranceOverMeter:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new n({size:1,datatype:r.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new n({size:1,datatype:r.FLOAT,getValue:function(e){return e.gamma}}),czm_sunColor:new n({size:1,datatype:r.FLOAT_VEC3,getValue:function(e){return e.sunColor}})}}),define("Renderer/createUniform",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Color","../Core/defined","../Core/DeveloperError","../Core/FeatureDetection","../Core/Matrix2","../Core/Matrix3","../Core/Matrix4","../Core/RuntimeError"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t,i,r){switch(t.type){case e.FLOAT:return new h(e,t,i,r);case e.FLOAT_VEC2:return new p(e,t,i,r);case e.FLOAT_VEC3:return new f(e,t,i,r);case e.FLOAT_VEC4:return new m(e,t,i,r);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new _(e,t,i,r);case e.INT:case e.BOOL:return new g(e,t,i,r);case e.INT_VEC2:case e.BOOL_VEC2:return new v(e,t,i,r);case e.INT_VEC3:case e.BOOL_VEC3:return new y(e,t,i,r);case e.INT_VEC4:case e.BOOL_VEC4:return new C(e,t,i,r);case e.FLOAT_MAT2:return new b(e,t,i,r);case e.FLOAT_MAT3:return new S(e,t,i,r);case e.FLOAT_MAT4:return new T(e,t,i,r);default:throw new c("Unrecognized uniform type: "+t.type+' for uniform "'+i+'".')}}function h(e,t,i,r){this.name=i,this.value=void 0,this._value=0,this._gl=e,this._location=r}function p(t,i,r,n){this.name=r,this.value=void 0,this._value=new e,this._gl=t,this._location=n}function f(e,t,i,r){this.name=i,this.value=void 0,this._value=void 0,this._gl=e,this._location=r}function m(e,t,i,r){this.name=i,this.value=void 0,this._value=void 0,this._gl=e,this._location=r}function _(e,t,i,r){this.name=i,this.value=void 0,this._gl=e,this._location=r,this.textureUnitIndex=void 0}function g(e,t,i,r){this.name=i,this.value=void 0,this._value=0,this._gl=e,this._location=r}function v(t,i,r,n){this.name=r,this.value=void 0,this._value=new e,this._gl=t,this._location=n}function y(e,i,r,n){this.name=r,this.value=void 0,this._value=new t,this._gl=e,this._location=n}function C(e,t,r,n){this.name=r,this.value=void 0,this._value=new i,this._gl=e,this._location=n}function b(e,t,i,r){this.name=i,this.value=void 0,this._value=new s,this._gl=e,this._location=r}function S(e,t,i,r){this.name=i,this.value=void 0,this._value=new l,this._gl=e,this._location=r}function T(e,t,i,r){this.name=i,this.value=void 0,this._value=new u,this._gl=e,this._location=r}if(!a.supportsTypedArrays())return{};h.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))},p.prototype.set=function(){var t=this.value;e.equals(t,this._value)||(e.clone(t,this._value),this._gl.uniform2f(this._location,t.x,t.y))},f.prototype.set=function(){var e=this.value;n(e.red)?r.equals(e,this._value)||(this._value=r.clone(e,this._value), -this._gl.uniform3f(this._location,e.red,e.green,e.blue)):n(e.x)&&(t.equals(e,this._value)||(this._value=t.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))},m.prototype.set=function(){var e=this.value;n(e.red)?r.equals(e,this._value)||(this._value=r.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):n(e.x)&&(i.equals(e,this._value)||(this._value=i.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))},_.prototype.set=function(){var e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);var t=this.value;e.bindTexture(t._target,t._texture)},_.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1},g.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))},v.prototype.set=function(){var t=this.value;e.equals(t,this._value)||(e.clone(t,this._value),this._gl.uniform2i(this._location,t.x,t.y))},y.prototype.set=function(){var e=this.value;t.equals(e,this._value)||(t.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))},C.prototype.set=function(){var e=this.value;i.equals(e,this._value)||(i.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var E=new Float32Array(4);b.prototype.set=function(){if(!s.equalsArray(this.value,this._value,0)){s.clone(this.value,this._value);var e=s.toArray(this.value,E);this._gl.uniformMatrix2fv(this._location,!1,e)}};var A=new Float32Array(9);S.prototype.set=function(){if(!l.equalsArray(this.value,this._value,0)){l.clone(this.value,this._value);var e=l.toArray(this.value,A);this._gl.uniformMatrix3fv(this._location,!1,e)}};var w=new Float32Array(16);return T.prototype.set=function(){if(!u.equalsArray(this.value,this._value,0)){u.clone(this.value,this._value);var e=u.toArray(this.value,w);this._gl.uniformMatrix4fv(this._location,!1,e)}},d}),define("Renderer/createUniformArray",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Color","../Core/defined","../Core/DeveloperError","../Core/Matrix2","../Core/Matrix3","../Core/Matrix4","../Core/RuntimeError"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,t,i,r){switch(t.type){case e.FLOAT:return new d(e,t,i,r);case e.FLOAT_VEC2:return new h(e,t,i,r);case e.FLOAT_VEC3:return new p(e,t,i,r);case e.FLOAT_VEC4:return new f(e,t,i,r);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new m(e,t,i,r);case e.INT:case e.BOOL:return new _(e,t,i,r);case e.INT_VEC2:case e.BOOL_VEC2:return new g(e,t,i,r);case e.INT_VEC3:case e.BOOL_VEC3:return new v(e,t,i,r);case e.INT_VEC4:case e.BOOL_VEC4:return new y(e,t,i,r);case e.FLOAT_MAT2:return new C(e,t,i,r);case e.FLOAT_MAT3:return new b(e,t,i,r);case e.FLOAT_MAT4:return new S(e,t,i,r);default:throw new u("Unrecognized uniform type: "+t.type+' for uniform "'+i+'".')}}function d(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(n),this._gl=e,this._location=r[0]}function h(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(2*n),this._gl=e,this._location=r[0]}function p(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(3*n),this._gl=e,this._location=r[0]}function f(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(4*n),this._gl=e,this._location=r[0]}function m(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(n),this._gl=e,this._locations=r,this.textureUnitIndex=void 0}function _(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Int32Array(n),this._gl=e,this._location=r[0]}function g(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Int32Array(2*n),this._gl=e,this._location=r[0]}function v(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Int32Array(3*n),this._gl=e,this._location=r[0]}function y(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Int32Array(4*n),this._gl=e,this._location=r[0]}function C(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(4*n),this._gl=e,this._location=r[0]}function b(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(9*n),this._gl=e,this._location=r[0]}function S(e,t,i,r){var n=r.length;this.name=i,this.value=new Array(n),this._value=new Float32Array(16*n),this._gl=e,this._location=r[0]}return d.prototype.set=function(){for(var e=this.value,t=e.length,i=this._value,r=!1,n=0;n<t;++n){var o=e[n];o!==i[n]&&(i[n]=o,r=!0)}r&&this._gl.uniform1fv(this._location,i)},h.prototype.set=function(){for(var t=this.value,i=t.length,r=this._value,n=!1,o=0,a=0;a<i;++a){var s=t[a];e.equalsArray(s,r,o)||(e.pack(s,r,o),n=!0),o+=2}n&&this._gl.uniform2fv(this._location,r)},p.prototype.set=function(){for(var e=this.value,i=e.length,r=this._value,o=!1,a=0,s=0;s<i;++s){var l=e[s];n(l.red)?l.red===r[a]&&l.green===r[a+1]&&l.blue===r[a+2]||(r[a]=l.red,r[a+1]=l.green,r[a+2]=l.blue,o=!0):n(l.x)&&(t.equalsArray(l,r,a)||(t.pack(l,r,a),o=!0)),a+=3}o&&this._gl.uniform3fv(this._location,r)},f.prototype.set=function(){for(var e=this.value,t=e.length,o=this._value,a=!1,s=0,l=0;l<t;++l){var u=e[l];n(u.red)?r.equalsArray(u,o,s)||(r.pack(u,o,s),a=!0):n(u.x)&&(i.equalsArray(u,o,s)||(i.pack(u,o,s),a=!0)),s+=4}a&&this._gl.uniform4fv(this._location,o)},m.prototype.set=function(){for(var e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,i=this.value,r=i.length,n=0;n<r;++n){var o=i[n];e.activeTexture(t+n),e.bindTexture(o._target,o._texture)}},m.prototype._setSampler=function(e){this.textureUnitIndex=e;for(var t=this._locations,i=t.length,r=0;r<i;++r){var n=e+r;this._gl.uniform1i(t[r],n)}return e+i},_.prototype.set=function(){for(var e=this.value,t=e.length,i=this._value,r=!1,n=0;n<t;++n){var o=e[n];o!==i[n]&&(i[n]=o,r=!0)}r&&this._gl.uniform1iv(this._location,i)},g.prototype.set=function(){for(var t=this.value,i=t.length,r=this._value,n=!1,o=0,a=0;a<i;++a){var s=t[a];e.equalsArray(s,r,o)||(e.pack(s,r,o),n=!0),o+=2}n&&this._gl.uniform2iv(this._location,r)},v.prototype.set=function(){for(var e=this.value,i=e.length,r=this._value,n=!1,o=0,a=0;a<i;++a){var s=e[a];t.equalsArray(s,r,o)||(t.pack(s,r,o),n=!0),o+=3}n&&this._gl.uniform3iv(this._location,r)},y.prototype.set=function(){for(var e=this.value,t=e.length,r=this._value,n=!1,o=0,a=0;a<t;++a){var s=e[a];i.equalsArray(s,r,o)||(i.pack(s,r,o),n=!0),o+=4}n&&this._gl.uniform4iv(this._location,r)},C.prototype.set=function(){for(var e=this.value,t=e.length,i=this._value,r=!1,n=0,o=0;o<t;++o){var s=e[o];a.equalsArray(s,i,n)||(a.pack(s,i,n),r=!0),n+=4}r&&this._gl.uniformMatrix2fv(this._location,!1,i)},b.prototype.set=function(){for(var e=this.value,t=e.length,i=this._value,r=!1,n=0,o=0;o<t;++o){var a=e[o];s.equalsArray(a,i,n)||(s.pack(a,i,n),r=!0),n+=9}r&&this._gl.uniformMatrix3fv(this._location,!1,i)},S.prototype.set=function(){for(var e=this.value,t=e.length,i=this._value,r=!1,n=0,o=0;o<t;++o){var a=e[o];l.equalsArray(a,i,n)||(l.pack(a,i,n),r=!0),n+=16}r&&this._gl.uniformMatrix4fv(this._location,!1,i)},c}),define("Renderer/ShaderProgram",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/RuntimeError","./AutomaticUniforms","./ContextLimits","./createUniform","./createUniformArray"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e){var t=p(e.vertexShaderText,e.fragmentShaderText);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=t.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=t.fragmentShaderText,this.id=C++}function h(e){var t=[],r=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(i(r))for(var n=r.length,o=0;o<n;o++){var a=r[o].trim(),s=a.slice(a.lastIndexOf(" ")+1);t.push(s)}return t}function p(e,t){var i={};if(!l.highpFloatSupported||!l.highpIntSupported){var r,n,o,a,s=h(e),u=h(t),c=s.length,d=u.length;for(r=0;r<c;r++)for(n=0;n<d;n++)if(s[r]===u[n]){o=s[r],a="czm_mediump_"+o;var p=new RegExp(o+"\\b","g");t=t.replace(p,a),i[a]=o}}return{fragmentShaderText:t,duplicateUniformNames:i}}function f(e,t){var r=t._vertexShaderText,n=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,r),e.compileShader(o);var s=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(s,n),e.compileShader(s);var l=e.createProgram();e.attachShader(l,o),e.attachShader(l,s),e.deleteShader(o),e.deleteShader(s);var u=t._attributeLocations;if(i(u))for(var c in u)u.hasOwnProperty(c)&&e.bindAttribLocation(l,u[c],c);e.linkProgram(l);var d;if(!e.getProgramParameter(l,e.LINK_STATUS)){var h=t._debugShaders;if(!e.getShaderParameter(s,e.COMPILE_STATUS)){if(d=e.getShaderInfoLog(s),console.error(b+"Fragment shader compile log: "+d),i(h)){var p=h.getTranslatedShaderSource(s);""!==p?console.error(b+"Translated fragment shader source:\n"+p):console.error(b+"Fragment shader translation failed.")}throw e.deleteProgram(l),new a("Fragment shader failed to compile. Compile log: "+d)}if(!e.getShaderParameter(o,e.COMPILE_STATUS)){if(d=e.getShaderInfoLog(o),console.error(b+"Vertex shader compile log: "+d),i(h)){var f=h.getTranslatedShaderSource(o);""!==f?console.error(b+"Translated vertex shader source:\n"+f):console.error(b+"Vertex shader translation failed.")}throw e.deleteProgram(l),new a("Vertex shader failed to compile. Compile log: "+d)}throw d=e.getProgramInfoLog(l),console.error(b+"Shader program link log: "+d),i(h)&&(console.error(b+"Translated vertex shader source:\n"+h.getTranslatedShaderSource(o)),console.error(b+"Translated fragment shader source:\n"+h.getTranslatedShaderSource(s))),e.deleteProgram(l),new a("Program failed to link. Link log: "+d)}var m=t._logShaderCompilation;return m&&(d=e.getShaderInfoLog(o),i(d)&&d.length>0&&console.log(b+"Vertex shader compile log: "+d)),m&&(d=e.getShaderInfoLog(s),i(d)&&d.length>0&&console.log(b+"Fragment shader compile log: "+d)),m&&(d=e.getProgramInfoLog(l),i(d)&&d.length>0&&console.log(b+"Shader program link log: "+d)),l}function m(e,t,i){for(var r={},n=0;n<i;++n){var o=e.getActiveAttrib(t,n),a=e.getAttribLocation(t,o.name);r[o.name]={name:o.name,type:o.type,index:a}}return r}function _(e,t){for(var r={},n=[],o=[],a=e.getProgramParameter(t,e.ACTIVE_UNIFORMS),s=0;s<a;++s){var l=e.getActiveUniform(t,s),d=-1!==l.name.indexOf("[0]",l.name.length-"[0]".length)?l.name.slice(0,l.name.length-3):l.name;if(0!==d.indexOf("gl_"))if(l.name.indexOf("[")<0){var h=e.getUniformLocation(t,d);if(null!==h){var p=u(e,l,d,h);r[d]=p,n.push(p),p._setSampler&&o.push(p)}}else{var f,m,_,g,v=d.indexOf("[");if(v>=0){if(f=r[d.slice(0,v)],!i(f))continue;m=f._locations,m.length<=1&&(_=f.value,null!==(g=e.getUniformLocation(t,d))&&(m.push(g),_.push(e.getUniform(t,g))))}else{m=[];for(var y=0;y<l.size;++y)null!==(g=e.getUniformLocation(t,d+"["+y+"]"))&&m.push(g);f=c(e,l,d,m),r[d]=f,n.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:r,uniforms:n,samplerUniforms:o}}function g(e,t){var r=[],n=[];for(var o in t)if(t.hasOwnProperty(o)){var a=t[o],l=o,u=e._duplicateUniformNames[l];i(u)&&(a.name=u,l=u);var c=s[l];i(c)?r.push({uniform:a,automaticUniform:c}):n.push(a)}return{automaticUniforms:r,manualUniforms:n}}function v(e,t,i){e.useProgram(t);for(var r=0,n=i.length,o=0;o<n;++o)r=i[o]._setSampler(r);return e.useProgram(null),r}function y(e){if(!i(e._program)){var t=e._gl,r=f(t,e,e._debugShaders),n=t.getProgramParameter(r,t.ACTIVE_ATTRIBUTES),o=_(t,r),a=g(e,o.uniformsByName);e._program=r,e._numberOfVertexAttributes=n,e._vertexAttributes=m(t,r,n),e._uniformsByName=o.uniformsByName,e._uniforms=o.uniforms,e._automaticUniforms=a.automaticUniforms,e._manualUniforms=a.manualUniforms,e.maximumTextureUnitIndex=v(t,r,o.samplerUniforms)}}var C=0;d.fromCache=function(e){return e=t(e,t.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)},d.replaceCache=function(e){return e=t(e,t.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)},r(d.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return y(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return y(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return y(this),this._uniformsByName}}});var b="[Cesium WebGL] ";return d.prototype._bind=function(){y(this),this._gl.useProgram(this._program)},d.prototype._setUniforms=function(e,t,r){var n,o;if(i(e)){var a=this._manualUniforms;for(n=a.length,o=0;o<n;++o){var s=a[o];s.value=e[s.name]()}}var l=this._automaticUniforms;for(n=l.length,o=0;o<n;++o){var u=l[o];u.uniform.value=u.automaticUniform.getValue(t)}var c=this._uniforms;for(n=c.length,o=0;o<n;++o)c[o].set();if(r){var d=this._gl,h=this._program;d.validateProgram(h)}},d.prototype.isDestroyed=function(){return!1},d.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)},d.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),n(this)},d}),define("Renderer/modernizeShader",["../Core/defined","../Core/DeveloperError"],function(e,t){"use strict";function i(e,i){var n=/#define OUTPUT_DECLARATION/,c=e.split("\n");if(/#version 300 es/g.test(e))return e;var d,h,p=-1;for(d=0;d<c.length;++d)if(h=c[d],n.test(h)){p=d;break}if(-1===p)throw new t("Could not find a #define OUTPUT_DECLARATION!");var f=[];for(d=0;d<10;d++){var m="gl_FragData\\["+d+"\\]",_="czm_out"+d;new RegExp(m,"g").test(e)&&(s(_,f),r(m,_,c),c.splice(p,0,"layout(location = "+d+") out vec4 "+_+";"),p+=1)}o("gl_FragColor",c)&&(s("czm_fragColor",f),r("gl_FragColor","czm_fragColor",c),c.splice(p,0,"layout(location = 0) out vec4 czm_fragColor;"),p+=1);var g=l(f,c),v={};for(d=0;d<c.length;d++){h=c[d];for(var y in g)if(g.hasOwnProperty(y)){var C=new RegExp("(layout)[^]+(out)[^]+("+y+")[^]+","g");C.test(h)&&(v[h]=y)}}for(var b in v)if(v.hasOwnProperty(b)){var S,T=v[b],E=c.indexOf(b),A=g[T],w=A.length;for(S=0;S<w;S++)c.splice(E,0,A[S]);for(E+=w+1,S=w-1;S>=0;S--)c.splice(E,0,"#endif //"+A[S])}var x=!1;for(d=0;d<c.length;d++)/#version/.test(c[d])&&(c[d]="#version 300 es",x=!0);return x||c.splice(0,0,"#version 300 es"),u("EXT_draw_buffers",c),u("EXT_frag_depth",c),r("texture2D","texture",c),r("texture3D","texture",c),r("textureCube","texture",c),r("gl_FragDepthEXT","gl_FragDepth",c),i?r("varying","in",c):(r("attribute","in",c),r("varying","out",c)),a(c)}function r(e,t,i){for(var r="(^|[^\\w])("+e+")($|[^\\w])",n=new RegExp(r,"g"),o=i.length,a=0;a<o;++a){var s=i[a];i[a]=s.replace(n,"$1"+t+"$3")}}function n(e,t,i){for(var r=i.length,n=0;n<r;++n){var o=i[n];i[n]=o.replace(e,t)}}function o(e,t){for(var i="(^|[^\\w])("+e+")($|[^\\w])",r=new RegExp(i,"g"),n=t.length,o=0;o<n;++o){var a=t[o];if(r.test(a))return!0}return!1}function a(e){for(var t="",i=e.length,r=0;r<i;++r)t+=e[r]+"\n";return t}function s(e,t){-1===t.indexOf(e)&&t.push(e)}function l(t,i){for(var r={},n=t.length,o=[],a=0;a<i.length;++a){var s=i[a],l=/(#ifdef|#if)/g.test(s),u=/#else/g.test(s),c=/#endif/g.test(s);if(l)o.push(s);else if(u){var d=o[o.length-1],h=d.replace("ifdef","ifndef");/if/g.test(h)&&(h=h.replace(/(#if\s+)(\S*)([^]*)/,"$1!($2)$3")),o.pop(),o.push(h)}else if(c)o.pop();else if(!/layout/g.test(s))for(var p=0;p<n;++p){var f=t[p];-1!==s.indexOf(f)&&(e(r[f])?r[f]=r[f].filter(function(e){return o.indexOf(e)>=0}):r[f]=o.slice())}}return r}function u(e,t){var i="#extension\\s+GL_"+e+"\\s+:\\s+[a-zA-Z0-9]+\\s*$";n(new RegExp(i,"g"),"",t)}return i}),define("Shaders/Builtin/Constants/degreesPerRadian",[],function(){"use strict";return"const float czm_degreesPerRadian = 57.29577951308232;\n"}),define("Shaders/Builtin/Constants/depthRange",[],function(){"use strict";return"const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0);\n"}),define("Shaders/Builtin/Constants/epsilon1",[],function(){"use strict";return"const float czm_epsilon1 = 0.1;\n"}),define("Shaders/Builtin/Constants/epsilon2",[],function(){"use strict";return"const float czm_epsilon2 = 0.01;\n"}),define("Shaders/Builtin/Constants/epsilon3",[],function(){"use strict";return"const float czm_epsilon3 = 0.001;\n"}),define("Shaders/Builtin/Constants/epsilon4",[],function(){"use strict";return"const float czm_epsilon4 = 0.0001;\n"}),define("Shaders/Builtin/Constants/epsilon5",[],function(){"use strict";return"const float czm_epsilon5 = 0.00001;\n"}),define("Shaders/Builtin/Constants/epsilon6",[],function(){"use strict";return"const float czm_epsilon6 = 0.000001;\n"}),define("Shaders/Builtin/Constants/epsilon7",[],function(){"use strict";return"const float czm_epsilon7 = 0.0000001;\n"}),define("Shaders/Builtin/Constants/infinity",[],function(){"use strict";return"const float czm_infinity = 5906376272000.0;\n"}),define("Shaders/Builtin/Constants/oneOverPi",[],function(){"use strict";return"const float czm_oneOverPi = 0.3183098861837907;\n"}),define("Shaders/Builtin/Constants/oneOverTwoPi",[],function(){"use strict";return"const float czm_oneOverTwoPi = 0.15915494309189535;\n"}),define("Shaders/Builtin/Constants/passCesium3DTile",[],function(){"use strict";return"const float czm_passCesium3DTile = 4.0;\n"}),define("Shaders/Builtin/Constants/passCesium3DTileClassification",[],function(){"use strict";return"const float czm_passCesium3DTileClassification = 5.0;\n"}),define("Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow",[],function(){"use strict";return"const float czm_passCesium3DTileClassificationIgnoreShow = 6.0;\n"}),define("Shaders/Builtin/Constants/passClassification",[],function(){"use strict";return"const float czm_passClassification = 7.0;\n"}),define("Shaders/Builtin/Constants/passCompute",[],function(){"use strict";return"const float czm_passCompute = 1.0;\n"}),define("Shaders/Builtin/Constants/passEnvironment",[],function(){"use strict";return"const float czm_passEnvironment = 0.0;\n"}),define("Shaders/Builtin/Constants/passGlobe",[],function(){"use strict";return"const float czm_passGlobe = 2.0;\n"}),define("Shaders/Builtin/Constants/passOpaque",[],function(){"use strict";return"const float czm_passOpaque = 7.0;\n"}),define("Shaders/Builtin/Constants/passOverlay",[],function(){"use strict";return"const float czm_passOverlay = 9.0;\n"}),define("Shaders/Builtin/Constants/passTerrainClassification",[],function(){"use strict";return"const float czm_passTerrainClassification = 3.0;\n"}),define("Shaders/Builtin/Constants/passTranslucent",[],function(){"use strict";return"const float czm_passTranslucent = 8.0;\n"}),define("Shaders/Builtin/Constants/pi",[],function(){"use strict";return"const float czm_pi = 3.141592653589793;\n"}),define("Shaders/Builtin/Constants/piOverFour",[],function(){"use strict";return"const float czm_piOverFour = 0.7853981633974483;\n"}),define("Shaders/Builtin/Constants/piOverSix",[],function(){"use strict";return"const float czm_piOverSix = 0.5235987755982988;\n"}),define("Shaders/Builtin/Constants/piOverThree",[],function(){"use strict";return"const float czm_piOverThree = 1.0471975511965976;\n"}),define("Shaders/Builtin/Constants/piOverTwo",[],function(){"use strict";return"const float czm_piOverTwo = 1.5707963267948966;\n"}),define("Shaders/Builtin/Constants/radiansPerDegree",[],function(){"use strict";return"const float czm_radiansPerDegree = 0.017453292519943295;\n"}),define("Shaders/Builtin/Constants/sceneMode2D",[],function(){"use strict";return"const float czm_sceneMode2D = 2.0;\n"}),define("Shaders/Builtin/Constants/sceneMode3D",[],function(){"use strict";return"const float czm_sceneMode3D = 3.0;\n"}),define("Shaders/Builtin/Constants/sceneModeColumbusView",[],function(){"use strict";return"const float czm_sceneModeColumbusView = 1.0;\n"}),define("Shaders/Builtin/Constants/sceneModeMorphing",[],function(){"use strict";return"const float czm_sceneModeMorphing = 0.0;\n"}),define("Shaders/Builtin/Constants/solarRadius",[],function(){"use strict";return"const float czm_solarRadius = 695500000.0;\n"}),define("Shaders/Builtin/Constants/threePiOver2",[],function(){"use strict";return"const float czm_threePiOver2 = 4.71238898038469;\n"}),define("Shaders/Builtin/Constants/twoPi",[],function(){"use strict";return"const float czm_twoPi = 6.283185307179586;\n"}),define("Shaders/Builtin/Constants/webMercatorMaxLatitude",[],function(){"use strict";return"const float czm_webMercatorMaxLatitude = 1.4844222297453324;\n"}),define("Shaders/Builtin/Structs/depthRangeStruct",[],function(){"use strict";return"struct czm_depthRangeStruct\n{\nfloat near;\nfloat far;\n};\n"}),define("Shaders/Builtin/Structs/ellipsoid",[],function(){"use strict";return"struct czm_ellipsoid\n{\nvec3 center;\nvec3 radii;\nvec3 inverseRadii;\nvec3 inverseRadiiSquared;\n};\n"}),define("Shaders/Builtin/Structs/material",[],function(){"use strict";return"struct czm_material\n{\nvec3 diffuse;\nfloat specular;\nfloat shininess;\nvec3 normal;\nvec3 emission;\nfloat alpha;\n};\n"}),define("Shaders/Builtin/Structs/materialInput",[],function(){"use strict";return"struct czm_materialInput\n{\nfloat s;\nvec2 st;\nvec3 str;\nvec3 normalEC;\nmat3 tangentToEyeMatrix;\nvec3 positionToEyeEC;\nfloat height;\nfloat slope;\nfloat aspect;\n};\n"}),define("Shaders/Builtin/Structs/ray",[],function(){"use strict";return"struct czm_ray\n{\nvec3 origin;\nvec3 direction;\n};\n"}),define("Shaders/Builtin/Structs/raySegment",[],function(){"use strict";return"struct czm_raySegment\n{\nfloat start;\nfloat stop;\n};\nconst czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity);\nconst czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity);\n"}),define("Shaders/Builtin/Structs/shadowParameters",[],function(){"use strict";return"struct czm_shadowParameters\n{\n#ifdef USE_CUBE_MAP_SHADOW\nvec3 texCoords;\n#else\nvec2 texCoords;\n#endif\nfloat depthBias;\nfloat depth;\nfloat nDotL;\nvec2 texelStepSize;\nfloat normalShadingSmooth;\nfloat darkness;\n};\n"}),define("Shaders/Builtin/Functions/alphaWeight",[],function(){"use strict";return"float czm_alphaWeight(float a)\n{\nfloat z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];\nreturn pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0))));\n}\n"}),define("Shaders/Builtin/Functions/antialias",[],function(){"use strict";return"vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor)\n{\nfloat val1 = clamp(dist / fuzzFactor, 0.0, 1.0);\nfloat val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0);\nval1 = val1 * (1.0 - val2);\nval1 = val1 * val1 * (3.0 - (2.0 * val1));\nval1 = pow(val1, 0.5);\nvec4 midColor = (color1 + color2) * 0.5;\nreturn mix(midColor, currentColor, val1);\n}\nvec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist)\n{\nreturn czm_antialias(color1, color2, currentColor, dist, 0.1);\n}\n"}),define("Shaders/Builtin/Functions/approximateSphericalCoordinates",[],function(){"use strict";return"vec2 czm_approximateSphericalCoordinates(vec3 normal) {\nfloat latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z);\nfloat longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y);\nreturn vec2(latitudeApproximation, longitudeApproximation);\n}\n"}),define("Shaders/Builtin/Functions/branchFreeTernary",[],function(){"use strict";return"float czm_branchFreeTernary(bool comparison, float a, float b) {\nfloat useA = float(comparison);\nreturn a * useA + b * (1.0 - useA);\n}\nvec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) {\nfloat useA = float(comparison);\nreturn a * useA + b * (1.0 - useA);\n}\nvec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) {\nfloat useA = float(comparison);\nreturn a * useA + b * (1.0 - useA);\n}\nvec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) {\nfloat useA = float(comparison);\nreturn a * useA + b * (1.0 - useA);\n}\n"}),define("Shaders/Builtin/Functions/cascadeColor",[],function(){"use strict";return"vec4 czm_cascadeColor(vec4 weights)\n{\nreturn vec4(1.0, 0.0, 0.0, 1.0) * weights.x +\nvec4(0.0, 1.0, 0.0, 1.0) * weights.y +\nvec4(0.0, 0.0, 1.0, 1.0) * weights.z +\nvec4(1.0, 0.0, 1.0, 1.0) * weights.w;\n}\n"}),define("Shaders/Builtin/Functions/cascadeDistance",[],function(){"use strict";return"uniform vec4 shadowMap_cascadeDistances;\nfloat czm_cascadeDistance(vec4 weights)\n{\nreturn dot(shadowMap_cascadeDistances, weights);\n}\n"}),define("Shaders/Builtin/Functions/cascadeMatrix",[],function(){"use strict";return"uniform mat4 shadowMap_cascadeMatrices[4];\nmat4 czm_cascadeMatrix(vec4 weights)\n{\nreturn shadowMap_cascadeMatrices[0] * weights.x +\nshadowMap_cascadeMatrices[1] * weights.y +\nshadowMap_cascadeMatrices[2] * weights.z +\nshadowMap_cascadeMatrices[3] * weights.w;\n}\n"}),define("Shaders/Builtin/Functions/cascadeWeights",[],function(){"use strict";return"uniform vec4 shadowMap_cascadeSplits[2];\nvec4 czm_cascadeWeights(float depthEye)\n{\nvec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye));\nvec4 far = step(depthEye, shadowMap_cascadeSplits[1]);\nreturn near * far;\n}\n"}),define("Shaders/Builtin/Functions/columbusViewMorph",[],function(){"use strict";return"vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time)\n{\nvec3 p = mix(position2D.xyz, position3D.xyz, time);\nreturn vec4(p, 1.0);\n}\n"}),define("Shaders/Builtin/Functions/computePosition",[],function(){"use strict";return"vec4 czm_computePosition();\n"}),define("Shaders/Builtin/Functions/cosineAndSine",[],function(){"use strict";return"vec2 cordic(float angle)\n{\nvec2 vector = vec2(6.0725293500888267e-1, 0.0);\nfloat sense = (angle < 0.0) ? -1.0 : 1.0;\nmat2 rotation = mat2(1.0, sense, -sense, 1.0);\nvector = rotation * vector;\nangle -= sense * 7.8539816339744828e-1;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfloat factor = sense * 5.0e-1;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 4.6364760900080609e-1;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 2.5e-1;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 2.4497866312686414e-1;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.25e-1;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.2435499454676144e-1;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 6.25e-2;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 6.2418809995957350e-2;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 3.125e-2;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 3.1239833430268277e-2;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.5625e-2;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.5623728620476831e-2;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 7.8125e-3;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 7.8123410601011111e-3;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 3.90625e-3;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 3.9062301319669718e-3;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.953125e-3;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.9531225164788188e-3;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 9.765625e-4;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 9.7656218955931946e-4;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 4.8828125e-4;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 4.8828121119489829e-4;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 2.44140625e-4;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 2.4414062014936177e-4;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.220703125e-4;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.2207031189367021e-4;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 6.103515625e-5;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 6.1035156174208773e-5;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 3.0517578125e-5;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 3.0517578115526096e-5;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.52587890625e-5;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.5258789061315762e-5;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 7.62939453125e-6;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 7.6293945311019700e-6;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 3.814697265625e-6;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 3.8146972656064961e-6;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.9073486328125e-6;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 1.9073486328101870e-6;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 9.5367431640625e-7;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 9.5367431640596084e-7;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 4.76837158203125e-7;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 4.7683715820308884e-7;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 2.384185791015625e-7;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nangle -= sense * 2.3841857910155797e-7;\nsense = (angle < 0.0) ? -1.0 : 1.0;\nfactor = sense * 1.1920928955078125e-7;\nrotation[0][1] = factor;\nrotation[1][0] = -factor;\nvector = rotation * vector;\nreturn vector;\n}\nvec2 czm_cosineAndSine(float angle)\n{\nif (angle < -czm_piOverTwo || angle > czm_piOverTwo)\n{\nif (angle < 0.0)\n{\nreturn -cordic(angle + czm_pi);\n}\nelse\n{\nreturn -cordic(angle - czm_pi);\n}\n}\nelse\n{\nreturn cordic(angle);\n}\n}\n"}),define("Shaders/Builtin/Functions/decompressTextureCoordinates",[],function(){"use strict";return"vec2 czm_decompressTextureCoordinates(float encoded)\n{\nfloat temp = encoded / 4096.0;\nfloat xZeroTo4095 = floor(temp);\nfloat stx = xZeroTo4095 / 4095.0;\nfloat sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0;\nreturn vec2(stx, sty);\n}\n"}),define("Shaders/Builtin/Functions/depthClampFarPlane",[],function(){"use strict";return"#ifndef LOG_DEPTH\nvarying float v_WindowZ;\n#endif\nvec4 czm_depthClampFarPlane(vec4 coords)\n{\n#ifndef LOG_DEPTH\nv_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w;\ncoords.z = min(coords.z, coords.w);\n#endif\nreturn coords;\n}\n"}),define("Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates",[],function(){"use strict" -;return"mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC)\n{\nvec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0));\nvec3 tangentEC = normalize(czm_normal3D * tangentMC);\nvec3 bitangentEC = normalize(cross(normalEC, tangentEC));\nreturn mat3(\ntangentEC.x, tangentEC.y, tangentEC.z,\nbitangentEC.x, bitangentEC.y, bitangentEC.z,\nnormalEC.x, normalEC.y, normalEC.z);\n}\n"}),define("Shaders/Builtin/Functions/ellipsoidContainsPoint",[],function(){"use strict";return"bool czm_ellipsoidContainsPoint(czm_ellipsoid ellipsoid, vec3 point)\n{\nvec3 scaled = ellipsoid.inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz;\nreturn (dot(scaled, scaled) <= 1.0);\n}\n"}),define("Shaders/Builtin/Functions/ellipsoidNew",[],function(){"use strict";return"czm_ellipsoid czm_ellipsoidNew(vec3 center, vec3 radii)\n{\nvec3 inverseRadii = vec3(1.0 / radii.x, 1.0 / radii.y, 1.0 / radii.z);\nvec3 inverseRadiiSquared = inverseRadii * inverseRadii;\nczm_ellipsoid temp = czm_ellipsoid(center, radii, inverseRadii, inverseRadiiSquared);\nreturn temp;\n}\n"});define("Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates",[],function(){"use strict";return"vec2 czm_ellipsoidWgs84TextureCoordinates(vec3 normal)\n{\nreturn vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5);\n}\n"}),define("Shaders/Builtin/Functions/equalsEpsilon",[],function(){"use strict";return"bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) {\nreturn all(lessThanEqual(abs(left - right), vec4(epsilon)));\n}\nbool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) {\nreturn all(lessThanEqual(abs(left - right), vec3(epsilon)));\n}\nbool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) {\nreturn all(lessThanEqual(abs(left - right), vec2(epsilon)));\n}\nbool czm_equalsEpsilon(float left, float right, float epsilon) {\nreturn (abs(left - right) <= epsilon);\n}\n"}),define("Shaders/Builtin/Functions/eyeOffset",[],function(){"use strict";return"vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset)\n{\nvec4 p = positionEC;\nvec4 zEyeOffset = normalize(p) * eyeOffset.z;\np.xy += eyeOffset.xy + zEyeOffset.xy;\np.z += zEyeOffset.z;\nreturn p;\n}\n"}),define("Shaders/Builtin/Functions/eyeToWindowCoordinates",[],function(){"use strict";return"vec4 czm_eyeToWindowCoordinates(vec4 positionEC)\n{\nvec4 q = czm_projection * positionEC;\nq.xyz /= q.w;\nq.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz;\nreturn q;\n}\n"}),define("Shaders/Builtin/Functions/fastApproximateAtan",[],function(){"use strict";return"float czm_fastApproximateAtan(float x) {\nreturn x * (-0.1784 * x - 0.0663 * x * x + 1.0301);\n}\nfloat czm_fastApproximateAtan(float x, float y) {\nfloat t = abs(x);\nfloat opposite = abs(y);\nfloat adjacent = max(t, opposite);\nopposite = min(t, opposite);\nt = czm_fastApproximateAtan(opposite / adjacent);\nt = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t);\nt = czm_branchFreeTernary(x < 0.0, czm_pi - t, t);\nt = czm_branchFreeTernary(y < 0.0, -t, t);\nreturn t;\n}\n"}),define("Shaders/Builtin/Functions/fog",[],function(){"use strict";return"vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor)\n{\nfloat scalar = distanceToCamera * czm_fogDensity;\nfloat fog = 1.0 - exp(-(scalar * scalar));\nreturn mix(color, fogColor, fog);\n}\nvec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant)\n{\nfloat scalar = distanceToCamera * czm_fogDensity;\nfloat fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant))));\nreturn mix(color, fogColor, fog);\n}\n"}),define("Shaders/Builtin/Functions/gammaCorrect",[],function(){"use strict";return"vec3 czm_gammaCorrect(vec3 color) {\n#ifdef HDR\ncolor = pow(color, vec3(czm_gamma));\n#endif\nreturn color;\n}\nvec4 czm_gammaCorrect(vec4 color) {\n#ifdef HDR\ncolor.rgb = pow(color.rgb, vec3(czm_gamma));\n#endif\nreturn color;\n}\n"}),define("Shaders/Builtin/Functions/geodeticSurfaceNormal",[],function(){"use strict";return"vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared)\n{\nreturn normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared);\n}\n"}),define("Shaders/Builtin/Functions/getDefaultMaterial",[],function(){"use strict";return"czm_material czm_getDefaultMaterial(czm_materialInput materialInput)\n{\nczm_material material;\nmaterial.diffuse = vec3(0.0);\nmaterial.specular = 0.0;\nmaterial.shininess = 1.0;\nmaterial.normal = materialInput.normalEC;\nmaterial.emission = vec3(0.0);\nmaterial.alpha = 1.0;\nreturn material;\n}\n"}),define("Shaders/Builtin/Functions/getLambertDiffuse",[],function(){"use strict";return"float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC)\n{\nreturn max(dot(lightDirectionEC, normalEC), 0.0);\n}\n"}),define("Shaders/Builtin/Functions/getSpecular",[],function(){"use strict";return"float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess)\n{\nvec3 toReflectedLight = reflect(-lightDirectionEC, normalEC);\nfloat specular = max(dot(toReflectedLight, toEyeEC), 0.0);\nreturn pow(specular, max(shininess, czm_epsilon2));\n}\n"}),define("Shaders/Builtin/Functions/getWaterNoise",[],function(){"use strict";return"vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians)\n{\nfloat cosAngle = cos(angleInRadians);\nfloat sinAngle = sin(angleInRadians);\nvec2 s0 = vec2(1.0/17.0, 0.0);\nvec2 s1 = vec2(-1.0/29.0, 0.0);\nvec2 s2 = vec2(1.0/101.0, 1.0/59.0);\nvec2 s3 = vec2(-1.0/109.0, -1.0/57.0);\ns0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y));\ns1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y));\ns2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y));\ns3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y));\nvec2 uv0 = (uv/103.0) + (time * s0);\nvec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23);\nvec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51);\nvec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71);\nuv0 = fract(uv0);\nuv1 = fract(uv1);\nuv2 = fract(uv2);\nuv3 = fract(uv3);\nvec4 noise = (texture2D(normalMap, uv0)) +\n(texture2D(normalMap, uv1)) +\n(texture2D(normalMap, uv2)) +\n(texture2D(normalMap, uv3));\nreturn ((noise / 4.0) - 0.5) * 2.0;\n}\n"}),define("Shaders/Builtin/Functions/getWgs84EllipsoidEC",[],function(){"use strict";return"czm_ellipsoid czm_getWgs84EllipsoidEC()\n{\nvec3 radii = vec3(6378137.0, 6378137.0, 6356752.314245);\nvec3 inverseRadii = vec3(1.0 / radii.x, 1.0 / radii.y, 1.0 / radii.z);\nvec3 inverseRadiiSquared = inverseRadii * inverseRadii;\nczm_ellipsoid temp = czm_ellipsoid(czm_view[3].xyz, radii, inverseRadii, inverseRadiiSquared);\nreturn temp;\n}\n"}),define("Shaders/Builtin/Functions/HSBToRGB",[],function(){"use strict";return"const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0);\nvec3 czm_HSBToRGB(vec3 hsb)\n{\nvec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www);\nreturn hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y);\n}\n"}),define("Shaders/Builtin/Functions/HSLToRGB",[],function(){"use strict";return"vec3 hueToRGB(float hue)\n{\nfloat r = abs(hue * 6.0 - 3.0) - 1.0;\nfloat g = 2.0 - abs(hue * 6.0 - 2.0);\nfloat b = 2.0 - abs(hue * 6.0 - 4.0);\nreturn clamp(vec3(r, g, b), 0.0, 1.0);\n}\nvec3 czm_HSLToRGB(vec3 hsl)\n{\nvec3 rgb = hueToRGB(hsl.x);\nfloat c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y;\nreturn (rgb - 0.5) * c + hsl.z;\n}\n"}),define("Shaders/Builtin/Functions/hue",[],function(){"use strict";return"vec3 czm_hue(vec3 rgb, float adjustment)\n{\nconst mat3 toYIQ = mat3(0.299, 0.587, 0.114,\n0.595716, -0.274453, -0.321263,\n0.211456, -0.522591, 0.311135);\nconst mat3 toRGB = mat3(1.0, 0.9563, 0.6210,\n1.0, -0.2721, -0.6474,\n1.0, -1.107, 1.7046);\nvec3 yiq = toYIQ * rgb;\nfloat hue = atan(yiq.z, yiq.y) + adjustment;\nfloat chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y);\nvec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue));\nreturn toRGB * color;\n}\n"}),define("Shaders/Builtin/Functions/inverseGamma",[],function(){"use strict";return"vec3 czm_inverseGamma(vec3 color) {\nreturn pow(color, vec3(1.0 / czm_gamma));\n}\n"}),define("Shaders/Builtin/Functions/isEmpty",[],function(){"use strict";return"bool czm_isEmpty(czm_raySegment interval)\n{\nreturn (interval.stop < 0.0);\n}\n"}),define("Shaders/Builtin/Functions/isFull",[],function(){"use strict";return"bool czm_isFull(czm_raySegment interval)\n{\nreturn (interval.start == 0.0 && interval.stop == czm_infinity);\n}\n"}),define("Shaders/Builtin/Functions/latitudeToWebMercatorFraction",[],function(){"use strict";return"float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight)\n{\nfloat sinLatitude = sin(latitude);\nfloat mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude));\nreturn (mercatorY - southMercatorY) * oneOverMercatorHeight;\n}\n"}),define("Shaders/Builtin/Functions/lineDistance",[],function(){"use strict";return"float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) {\nreturn abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1);\n}\n"}),define("Shaders/Builtin/Functions/luminance",[],function(){"use strict";return"float czm_luminance(vec3 rgb)\n{\nconst vec3 W = vec3(0.2125, 0.7154, 0.0721);\nreturn dot(rgb, W);\n}\n"}),define("Shaders/Builtin/Functions/metersPerPixel",[],function(){"use strict";return"float czm_metersPerPixel(vec4 positionEC)\n{\nfloat width = czm_viewport.z;\nfloat height = czm_viewport.w;\nfloat pixelWidth;\nfloat pixelHeight;\nfloat top = czm_frustumPlanes.x;\nfloat bottom = czm_frustumPlanes.y;\nfloat left = czm_frustumPlanes.z;\nfloat right = czm_frustumPlanes.w;\nif (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0)\n{\nfloat frustumWidth = right - left;\nfloat frustumHeight = top - bottom;\npixelWidth = frustumWidth / width;\npixelHeight = frustumHeight / height;\n}\nelse\n{\nfloat distanceToPixel = -positionEC.z;\nfloat inverseNear = 1.0 / czm_currentFrustum.x;\nfloat tanTheta = top * inverseNear;\npixelHeight = 2.0 * distanceToPixel * tanTheta / height;\ntanTheta = right * inverseNear;\npixelWidth = 2.0 * distanceToPixel * tanTheta / width;\n}\nreturn max(pixelWidth, pixelHeight);\n}\n"}),define("Shaders/Builtin/Functions/modelToWindowCoordinates",[],function(){"use strict";return"vec4 czm_modelToWindowCoordinates(vec4 position)\n{\nvec4 q = czm_modelViewProjection * position;\nq.xyz /= q.w;\nq.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz;\nreturn q;\n}\n"}),define("Shaders/Builtin/Functions/multiplyWithColorBalance",[],function(){"use strict";return"vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right)\n{\nconst vec3 W = vec3(0.2125, 0.7154, 0.0721);\nvec3 target = left * right;\nfloat leftLuminance = dot(left, W);\nfloat rightLuminance = dot(right, W);\nfloat targetLuminance = dot(target, W);\nreturn ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target;\n}\n"}),define("Shaders/Builtin/Functions/nearFarScalar",[],function(){"use strict";return"float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq)\n{\nfloat valueAtMin = nearFarScalar.y;\nfloat valueAtMax = nearFarScalar.w;\nfloat nearDistanceSq = nearFarScalar.x * nearFarScalar.x;\nfloat farDistanceSq = nearFarScalar.z * nearFarScalar.z;\nfloat t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq);\nt = pow(clamp(t, 0.0, 1.0), 0.2);\nreturn mix(valueAtMin, valueAtMax, t);\n}\n"}),define("Shaders/Builtin/Functions/octDecode",[],function(){"use strict";return"vec3 czm_octDecode(vec2 encoded, float range)\n{\nif (encoded.x == 0.0 && encoded.y == 0.0) {\nreturn vec3(0.0, 0.0, 0.0);\n}\nencoded = encoded / range * 2.0 - 1.0;\nvec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y));\nif (v.z < 0.0)\n{\nv.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy);\n}\nreturn normalize(v);\n}\nvec3 czm_octDecode(vec2 encoded)\n{\nreturn czm_octDecode(encoded, 255.0);\n}\nvec3 czm_octDecode(float encoded)\n{\nfloat temp = encoded / 256.0;\nfloat x = floor(temp);\nfloat y = (temp - x) * 256.0;\nreturn czm_octDecode(vec2(x, y));\n}\nvoid czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3)\n{\nfloat temp = encoded.x / 65536.0;\nfloat x = floor(temp);\nfloat encodedFloat1 = (temp - x) * 65536.0;\ntemp = encoded.y / 65536.0;\nfloat y = floor(temp);\nfloat encodedFloat2 = (temp - y) * 65536.0;\nvector1 = czm_octDecode(encodedFloat1);\nvector2 = czm_octDecode(encodedFloat2);\nvector3 = czm_octDecode(vec2(x, y));\n}\n"}),define("Shaders/Builtin/Functions/packDepth",[],function(){"use strict";return"vec4 czm_packDepth(float depth)\n{\nvec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth;\nenc = fract(enc);\nenc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0);\nreturn enc;\n}\n"}),define("Shaders/Builtin/Functions/phong",[],function(){"use strict";return"float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material)\n{\nreturn czm_getLambertDiffuse(lightDirectionEC, material.normal);\n}\nfloat czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material)\n{\nreturn czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess);\n}\nvec4 czm_phong(vec3 toEye, czm_material material)\n{\nfloat diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material);\nif (czm_sceneMode == czm_sceneMode3D) {\ndiffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material);\n}\nfloat specular = czm_private_getSpecularOfMaterial(czm_sunDirectionEC, toEye, material) + czm_private_getSpecularOfMaterial(czm_moonDirectionEC, toEye, material);\nvec3 materialDiffuse = material.diffuse * 0.5;\nvec3 ambient = materialDiffuse;\nvec3 color = ambient + material.emission;\ncolor += materialDiffuse * diffuse;\ncolor += material.specular * specular;\n#ifdef HDR\nfloat sunDiffuse = czm_private_getLambertDiffuseOfMaterial(czm_sunDirectionEC, material);\ncolor += materialDiffuse * sunDiffuse * czm_sunColor;\n#endif\nreturn vec4(color, material.alpha);\n}\nvec4 czm_private_phong(vec3 toEye, czm_material material)\n{\nfloat diffuse = czm_private_getLambertDiffuseOfMaterial(czm_sunDirectionEC, material);\nfloat specular = czm_private_getSpecularOfMaterial(czm_sunDirectionEC, toEye, material);\nvec3 ambient = vec3(0.0);\nvec3 color = ambient + material.emission;\ncolor += material.diffuse * diffuse;\ncolor += material.specular * specular;\nreturn vec4(color, material.alpha);\n}\n"}),define("Shaders/Builtin/Functions/planeDistance",[],function(){"use strict";return"float czm_planeDistance(vec4 plane, vec3 point) {\nreturn (dot(plane.xyz, point) + plane.w);\n}\nfloat czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) {\nreturn (dot(planeNormal, point) + planeDistance);\n}\n"}),define("Shaders/Builtin/Functions/pointAlongRay",[],function(){"use strict";return"vec3 czm_pointAlongRay(czm_ray ray, float time)\n{\nreturn ray.origin + (time * ray.direction);\n}\n"}),define("Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval",[],function(){"use strict";return"czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, czm_ellipsoid ellipsoid)\n{\nvec3 q = ellipsoid.inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz;\nvec3 w = ellipsoid.inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz;\nq = q - ellipsoid.inverseRadii * (czm_inverseModelView * vec4(ellipsoid.center, 1.0)).xyz;\nfloat q2 = dot(q, q);\nfloat qw = dot(q, w);\nif (q2 > 1.0)\n{\nif (qw >= 0.0)\n{\nreturn czm_emptyRaySegment;\n}\nelse\n{\nfloat qw2 = qw * qw;\nfloat difference = q2 - 1.0;\nfloat w2 = dot(w, w);\nfloat product = w2 * difference;\nif (qw2 < product)\n{\nreturn czm_emptyRaySegment;\n}\nelse if (qw2 > product)\n{\nfloat discriminant = qw * qw - product;\nfloat temp = -qw + sqrt(discriminant);\nfloat root0 = temp / w2;\nfloat root1 = difference / temp;\nif (root0 < root1)\n{\nczm_raySegment i = czm_raySegment(root0, root1);\nreturn i;\n}\nelse\n{\nczm_raySegment i = czm_raySegment(root1, root0);\nreturn i;\n}\n}\nelse\n{\nfloat root = sqrt(difference / w2);\nczm_raySegment i = czm_raySegment(root, root);\nreturn i;\n}\n}\n}\nelse if (q2 < 1.0)\n{\nfloat difference = q2 - 1.0;\nfloat w2 = dot(w, w);\nfloat product = w2 * difference;\nfloat discriminant = qw * qw - product;\nfloat temp = -qw + sqrt(discriminant);\nczm_raySegment i = czm_raySegment(0.0, temp / w2);\nreturn i;\n}\nelse\n{\nif (qw < 0.0)\n{\nfloat w2 = dot(w, w);\nczm_raySegment i = czm_raySegment(0.0, -qw / w2);\nreturn i;\n}\nelse\n{\nreturn czm_emptyRaySegment;\n}\n}\n}\n"}),define("Shaders/Builtin/Functions/readDepth",[],function(){"use strict";return"float czm_readDepth(sampler2D depthTexture, vec2 texCoords)\n{\nreturn czm_reverseLogDepth(texture2D(depthTexture, texCoords).r);\n}\n"}),define("Shaders/Builtin/Functions/reverseLogDepth",[],function(){"use strict";return"float czm_reverseLogDepth(float logZ)\n{\n#ifdef LOG_DEPTH\nfloat near = czm_currentFrustum.x;\nfloat far = czm_currentFrustum.y;\nlogZ = pow(2.0, logZ * czm_log2FarPlusOne) - 1.0;\nlogZ = far * (1.0 - near / logZ) / (far - near);\n#endif\nreturn logZ;\n}\n"}),define("Shaders/Builtin/Functions/RGBToHSB",[],function(){"use strict";return"const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0);\nvec3 czm_RGBToHSB(vec3 rgb)\n{\nvec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g));\nvec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r));\nfloat d = q.x - min(q.w, q.y);\nreturn vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x);\n}\n"}),define("Shaders/Builtin/Functions/RGBToHSL",[],function(){"use strict";return"vec3 RGBtoHCV(vec3 rgb)\n{\nvec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0);\nvec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx);\nfloat c = q.x - min(q.w, q.y);\nfloat h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z);\nreturn vec3(h, c, q.x);\n}\nvec3 czm_RGBToHSL(vec3 rgb)\n{\nvec3 hcv = RGBtoHCV(rgb);\nfloat l = hcv.z - hcv.y * 0.5;\nfloat s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7);\nreturn vec3(hcv.x, s, l);\n}\n"}),define("Shaders/Builtin/Functions/RGBToXYZ",[],function(){"use strict";return"vec3 czm_RGBToXYZ(vec3 rgb)\n{\nconst mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193,\n0.3576, 0.7152, 0.1192,\n0.1805, 0.0722, 0.9505);\nvec3 xyz = RGB2XYZ * rgb;\nvec3 Yxy;\nYxy.r = xyz.g;\nfloat temp = dot(vec3(1.0), xyz);\nYxy.gb = xyz.rg / temp;\nreturn Yxy;\n}\n"}),define("Shaders/Builtin/Functions/sampleOctahedralProjection",[],function(){"use strict";return"vec3 czm_sampleOctahedralProjectionWithFiltering(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod)\n{\ndirection /= dot(vec3(1.0), abs(direction));\nvec2 rev = abs(direction.zx) - vec2(1.0);\nvec2 neg = vec2(direction.x < 0.0 ? rev.x : -rev.x,\ndirection.z < 0.0 ? rev.y : -rev.y);\nvec2 uv = direction.y < 0.0 ? neg : direction.xz;\nvec2 coord = 0.5 * uv + vec2(0.5);\nvec2 pixel = 1.0 / textureSize;\nif (lod > 0.0)\n{\nfloat scale = 1.0 / pow(2.0, lod);\nfloat offset = ((textureSize.y + 1.0) / textureSize.x);\ncoord.x *= offset;\ncoord *= scale;\ncoord.x += offset + pixel.x;\ncoord.y += (1.0 - (1.0 / pow(2.0, lod - 1.0))) + pixel.y * (lod - 1.0) * 2.0;\n}\nelse\n{\ncoord.x *= (textureSize.y / textureSize.x);\n}\n#ifndef OES_texture_float_linear\nvec3 color1 = texture2D(projectedMap, coord + vec2(0.0, pixel.y)).rgb;\nvec3 color2 = texture2D(projectedMap, coord + vec2(pixel.x, 0.0)).rgb;\nvec3 color3 = texture2D(projectedMap, coord + pixel).rgb;\nvec3 color4 = texture2D(projectedMap, coord).rgb;\nvec2 texturePosition = coord * textureSize;\nfloat fu = fract(texturePosition.x);\nfloat fv = fract(texturePosition.y);\nvec3 average1 = mix(color4, color2, fu);\nvec3 average2 = mix(color1, color3, fu);\nvec3 color = mix(average1, average2, fv);\n#else\nvec3 color = texture2D(projectedMap, coord).rgb;\n#endif\nreturn color;\n}\nvec3 czm_sampleOctahedralProjection(sampler2D projectedMap, vec2 textureSize, vec3 direction, float lod, float maxLod) {\nfloat currentLod = floor(lod + 0.5);\nfloat nextLod = min(currentLod + 1.0, maxLod);\nvec3 colorCurrentLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, currentLod);\nvec3 colorNextLod = czm_sampleOctahedralProjectionWithFiltering(projectedMap, textureSize, direction, nextLod);\nreturn mix(colorNextLod, colorCurrentLod, nextLod - lod);\n}\n"}),define("Shaders/Builtin/Functions/saturation",[],function(){"use strict";return"vec3 czm_saturation(vec3 rgb, float adjustment)\n{\nconst vec3 W = vec3(0.2125, 0.7154, 0.0721);\nvec3 intensity = vec3(dot(rgb, W));\nreturn mix(intensity, rgb, adjustment);\n}\n"}),define("Shaders/Builtin/Functions/shadowDepthCompare",[],function(){"use strict";return"float czm_sampleShadowMap(samplerCube shadowMap, vec3 d)\n{\nreturn czm_unpackDepth(textureCube(shadowMap, d));\n}\nfloat czm_sampleShadowMap(sampler2D shadowMap, vec2 uv)\n{\n#ifdef USE_SHADOW_DEPTH_TEXTURE\nreturn texture2D(shadowMap, uv).r;\n#else\nreturn czm_unpackDepth(texture2D(shadowMap, uv));\n#endif\n}\nfloat czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth)\n{\nreturn step(depth, czm_sampleShadowMap(shadowMap, uv));\n}\nfloat czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth)\n{\nreturn step(depth, czm_sampleShadowMap(shadowMap, uv));\n}\n"}),define("Shaders/Builtin/Functions/shadowVisibility",[],function(){"use strict";return"float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness)\n{\n#ifdef USE_NORMAL_SHADING\n#ifdef USE_NORMAL_SHADING_SMOOTH\nfloat strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0);\n#else\nfloat strength = step(0.0, nDotL);\n#endif\nvisibility *= strength;\n#endif\nvisibility = max(visibility, darkness);\nreturn visibility;\n}\n#ifdef USE_CUBE_MAP_SHADOW\nfloat czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters)\n{\nfloat depthBias = shadowParameters.depthBias;\nfloat depth = shadowParameters.depth;\nfloat nDotL = shadowParameters.nDotL;\nfloat normalShadingSmooth = shadowParameters.normalShadingSmooth;\nfloat darkness = shadowParameters.darkness;\nvec3 uvw = shadowParameters.texCoords;\ndepth -= depthBias;\nfloat visibility = czm_shadowDepthCompare(shadowMap, uvw, depth);\nreturn czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);\n}\n#else\nfloat czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters)\n{\nfloat depthBias = shadowParameters.depthBias;\nfloat depth = shadowParameters.depth;\nfloat nDotL = shadowParameters.nDotL;\nfloat normalShadingSmooth = shadowParameters.normalShadingSmooth;\nfloat darkness = shadowParameters.darkness;\nvec2 uv = shadowParameters.texCoords;\ndepth -= depthBias;\n#ifdef USE_SOFT_SHADOWS\nvec2 texelStepSize = shadowParameters.texelStepSize;\nfloat radius = 1.0;\nfloat dx0 = -texelStepSize.x * radius;\nfloat dy0 = -texelStepSize.y * radius;\nfloat dx1 = texelStepSize.x * radius;\nfloat dy1 = texelStepSize.y * radius;\nfloat visibility = (\nczm_shadowDepthCompare(shadowMap, uv, depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) +\nczm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth)\n) * (1.0 / 9.0);\n#else\nfloat visibility = czm_shadowDepthCompare(shadowMap, uv, depth);\n#endif\nreturn czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness);\n}\n#endif\n"}),define("Shaders/Builtin/Functions/signNotZero",[],function(){"use strict";return"float czm_signNotZero(float value)\n{\nreturn value >= 0.0 ? 1.0 : -1.0;\n}\nvec2 czm_signNotZero(vec2 value)\n{\nreturn vec2(czm_signNotZero(value.x), czm_signNotZero(value.y));\n}\nvec3 czm_signNotZero(vec3 value)\n{\nreturn vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z));\n}\nvec4 czm_signNotZero(vec4 value)\n{\nreturn vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w));\n}\n"}),define("Shaders/Builtin/Functions/sphericalHarmonics",[],function(){"use strict";return"vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9])\n{\nconst float c1 = 0.429043;\nconst float c2 = 0.511664;\nconst float c3 = 0.743125;\nconst float c4 = 0.886227;\nconst float c5 = 0.247708;\nvec3 L00 = coefficients[0];\nvec3 L1_1 = coefficients[1];\nvec3 L10 = coefficients[2];\nvec3 L11 = coefficients[3];\nvec3 L2_2 = coefficients[4];\nvec3 L2_1 = coefficients[5];\nvec3 L20 = coefficients[6];\nvec3 L21 = coefficients[7];\nvec3 L22 = coefficients[8];\nfloat x = normal.x;\nfloat y = normal.y;\nfloat z = normal.z;\nreturn c1 * L22 * (x * x - y * y) + c3 * L20 * z * z + c4 * L00 - c5 * L20 +\n2.0 * c1 * (L2_2 * x * y + L21 * x * z + L2_1 * y * z) +\n2.0 * c2 * (L11 * x + L1_1 * y + L10 * z);\n}\n"}),define("Shaders/Builtin/Functions/tangentToEyeSpaceMatrix",[],function(){"use strict";return"mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC)\n{\nvec3 normal = normalize(normalEC);\nvec3 tangent = normalize(tangentEC);\nvec3 bitangent = normalize(bitangentEC);\nreturn mat3(tangent.x , tangent.y , tangent.z,\nbitangent.x, bitangent.y, bitangent.z,\nnormal.x , normal.y , normal.z);\n}\n"}),define("Shaders/Builtin/Functions/transformPlane",[],function(){"use strict";return"vec4 czm_transformPlane(vec4 clippingPlane, mat4 transform) {\nvec3 transformedDirection = normalize((transform * vec4(clippingPlane.xyz, 0.0)).xyz);\nvec3 transformedPosition = (transform * vec4(clippingPlane.xyz * -clippingPlane.w, 1.0)).xyz;\nvec4 transformedPlane;\ntransformedPlane.xyz = transformedDirection;\ntransformedPlane.w = -dot(transformedDirection, transformedPosition);\nreturn transformedPlane;\n}\n"}),define("Shaders/Builtin/Functions/translateRelativeToEye",[],function(){"use strict";return"vec4 czm_translateRelativeToEye(vec3 high, vec3 low)\n{\nvec3 highDifference = high - czm_encodedCameraPositionMCHigh;\nvec3 lowDifference = low - czm_encodedCameraPositionMCLow;\nreturn vec4(highDifference + lowDifference, 1.0);\n}\n"}),define("Shaders/Builtin/Functions/translucentPhong",[],function(){"use strict";return"vec4 czm_translucentPhong(vec3 toEye, czm_material material)\n{\nfloat diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal);\nif (czm_sceneMode == czm_sceneMode3D) {\ndiffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal);\n}\ndiffuse = clamp(diffuse, 0.0, 1.0);\nfloat specular = czm_getSpecular(czm_sunDirectionEC, toEye, material.normal, material.shininess);\nspecular += czm_getSpecular(czm_moonDirectionEC, toEye, material.normal, material.shininess);\nvec3 materialDiffuse = material.diffuse * 0.5;\nvec3 ambient = materialDiffuse;\nvec3 color = ambient + material.emission;\ncolor += materialDiffuse * diffuse;\ncolor += material.specular * specular;\nreturn vec4(color, material.alpha);\n}\n"}),define("Shaders/Builtin/Functions/transpose",[],function(){"use strict";return"mat2 czm_transpose(mat2 matrix)\n{\nreturn mat2(\nmatrix[0][0], matrix[1][0],\nmatrix[0][1], matrix[1][1]);\n}\nmat3 czm_transpose(mat3 matrix)\n{\nreturn mat3(\nmatrix[0][0], matrix[1][0], matrix[2][0],\nmatrix[0][1], matrix[1][1], matrix[2][1],\nmatrix[0][2], matrix[1][2], matrix[2][2]);\n}\nmat4 czm_transpose(mat4 matrix)\n{\nreturn mat4(\nmatrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0],\nmatrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1],\nmatrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2],\nmatrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]);\n}\n"}),define("Shaders/Builtin/Functions/unpackDepth",[],function(){"use strict";return"float czm_unpackDepth(vec4 packedDepth)\n{\nreturn dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0));\n}\n"}),define("Shaders/Builtin/Functions/unpackFloat",[],function(){"use strict";return"#define SHIFT_RIGHT_8 0.00390625 //1.0 / 256.0\n#define SHIFT_RIGHT_16 0.00001525878 //1.0 / 65536.0\n#define SHIFT_RIGHT_24 5.960464477539063e-8//1.0 / 16777216.0\n#define BIAS 38.0\nfloat czm_unpackFloat(vec4 packedFloat)\n{\npackedFloat *= 255.0;\nfloat temp = packedFloat.w / 2.0;\nfloat exponent = floor(temp);\nfloat sign = (temp - exponent) * 2.0;\nexponent = exponent - float(BIAS);\nsign = sign * 2.0 - 1.0;\nsign = -sign;\nfloat unpacked = sign * packedFloat.x * float(SHIFT_RIGHT_8);\nunpacked += sign * packedFloat.y * float(SHIFT_RIGHT_16);\nunpacked += sign * packedFloat.z * float(SHIFT_RIGHT_24);\nreturn unpacked * pow(10.0, exponent);\n}\n"}),define("Shaders/Builtin/Functions/vertexLogDepth",[],function(){"use strict";return"#ifdef LOG_DEPTH\nvarying float v_logZ;\n#ifdef SHADOW_MAP\nvarying vec3 v_logPositionEC;\n#endif\n#endif\nvoid czm_updatePositionDepth() {\n#if defined(LOG_DEPTH) && !defined(DISABLE_GL_POSITION_LOG_DEPTH)\nvec3 logPositionEC = (czm_inverseProjection * gl_Position).xyz;\n#ifdef SHADOW_MAP\nv_logPositionEC = logPositionEC;\n#endif\n#ifdef ENABLE_GL_POSITION_LOG_DEPTH_AT_HEIGHT\nif (length(logPositionEC) < 2.0e6)\n{\nreturn;\n}\n#endif\ngl_Position.z = log2(max(1e-6, 1.0 + gl_Position.w)) * czm_log2FarDistance - 1.0;\ngl_Position.z *= gl_Position.w;\n#endif\n}\nvoid czm_vertexLogDepth()\n{\n#ifdef LOG_DEPTH\nv_logZ = 1.0 + gl_Position.w;\nczm_updatePositionDepth();\n#endif\n}\nvoid czm_vertexLogDepth(vec4 clipCoords)\n{\n#ifdef LOG_DEPTH\nv_logZ = 1.0 + clipCoords.w;\nczm_updatePositionDepth();\n#endif\n}\n"}),define("Shaders/Builtin/Functions/windowToEyeCoordinates",[],function(){"use strict";return"vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate)\n{\nfloat x = 2.0 * (fragmentCoordinate.x - czm_viewport.x) / czm_viewport.z - 1.0;\nfloat y = 2.0 * (fragmentCoordinate.y - czm_viewport.y) / czm_viewport.w - 1.0;\nfloat z = (fragmentCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2];\nvec4 q = vec4(x, y, z, 1.0);\nq /= fragmentCoordinate.w;\nif (!(czm_inverseProjection == mat4(0.0)))\n{\nq = czm_inverseProjection * q;\n}\nelse\n{\nfloat top = czm_frustumPlanes.x;\nfloat bottom = czm_frustumPlanes.y;\nfloat left = czm_frustumPlanes.z;\nfloat right = czm_frustumPlanes.w;\nfloat near = czm_currentFrustum.x;\nfloat far = czm_currentFrustum.y;\nq.x = (q.x * (right - left) + left + right) * 0.5;\nq.y = (q.y * (top - bottom) + bottom + top) * 0.5;\nq.z = (q.z * (near - far) - near - far) * 0.5;\nq.w = 1.0;\n}\nreturn q;\n}\nvec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth)\n{\n#ifdef LOG_DEPTH\nfloat near = czm_currentFrustum.x;\nfloat far = czm_currentFrustum.y;\nfloat unscaledDepth = pow(2.0, depthOrLogDepth * czm_log2FarPlusOne) - 1.0;\nvec4 windowCoord = vec4(fragmentCoordinateXY, far * (1.0 - near / unscaledDepth) / (far - near), 1.0);\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(windowCoord);\neyeCoordinate.w = 1.0 / unscaledDepth;\n#else\nvec4 windowCoord = vec4(fragmentCoordinateXY, depthOrLogDepth, 1.0);\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(windowCoord);\n#endif\nreturn eyeCoordinate;\n}\n"}),define("Shaders/Builtin/Functions/writeDepthClampedToFarPlane",[],function(){"use strict" -;return"#ifndef LOG_DEPTH\nvarying float v_WindowZ;\n#endif\nvoid czm_writeDepthClampedToFarPlane()\n{\n#if defined(GL_EXT_frag_depth) && !defined(LOG_DEPTH)\ngl_FragDepthEXT = min(v_WindowZ * gl_FragCoord.w, 1.0);\n#endif\n}\n"}),define("Shaders/Builtin/Functions/writeLogDepth",[],function(){"use strict";return"#ifdef LOG_DEPTH\nvarying float v_logZ;\n#endif\nvoid czm_writeLogDepth(float logZ)\n{\n#if defined(GL_EXT_frag_depth) && defined(LOG_DEPTH) && !defined(DISABLE_LOG_DEPTH_FRAGMENT_WRITE)\nfloat halfLogFarDistance = czm_log2FarDistance * 0.5;\nfloat depth = log2(logZ);\nif (depth < czm_log2NearDistance) {\ndiscard;\n}\ngl_FragDepthEXT = depth * halfLogFarDistance;\n#endif\n}\nvoid czm_writeLogDepth() {\n#ifdef LOG_DEPTH\nczm_writeLogDepth(v_logZ);\n#endif\n}\n"}),define("Shaders/Builtin/Functions/XYZToRGB",[],function(){"use strict";return"vec3 czm_XYZToRGB(vec3 Yxy)\n{\nconst mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556,\n-1.5371, 1.8760, -0.2040,\n-0.4985, 0.0416, 1.0572);\nvec3 xyz;\nxyz.r = Yxy.r * Yxy.g / Yxy.b;\nxyz.g = Yxy.r;\nxyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b;\nreturn XYZ2RGB * xyz;\n}\n"}),define("Shaders/Builtin/CzmBuiltins",["./Constants/degreesPerRadian","./Constants/depthRange","./Constants/epsilon1","./Constants/epsilon2","./Constants/epsilon3","./Constants/epsilon4","./Constants/epsilon5","./Constants/epsilon6","./Constants/epsilon7","./Constants/infinity","./Constants/oneOverPi","./Constants/oneOverTwoPi","./Constants/passCesium3DTile","./Constants/passCesium3DTileClassification","./Constants/passCesium3DTileClassificationIgnoreShow","./Constants/passClassification","./Constants/passCompute","./Constants/passEnvironment","./Constants/passGlobe","./Constants/passOpaque","./Constants/passOverlay","./Constants/passTerrainClassification","./Constants/passTranslucent","./Constants/pi","./Constants/piOverFour","./Constants/piOverSix","./Constants/piOverThree","./Constants/piOverTwo","./Constants/radiansPerDegree","./Constants/sceneMode2D","./Constants/sceneMode3D","./Constants/sceneModeColumbusView","./Constants/sceneModeMorphing","./Constants/solarRadius","./Constants/threePiOver2","./Constants/twoPi","./Constants/webMercatorMaxLatitude","./Structs/depthRangeStruct","./Structs/ellipsoid","./Structs/material","./Structs/materialInput","./Structs/ray","./Structs/raySegment","./Structs/shadowParameters","./Functions/alphaWeight","./Functions/antialias","./Functions/approximateSphericalCoordinates","./Functions/branchFreeTernary","./Functions/cascadeColor","./Functions/cascadeDistance","./Functions/cascadeMatrix","./Functions/cascadeWeights","./Functions/columbusViewMorph","./Functions/computePosition","./Functions/cosineAndSine","./Functions/decompressTextureCoordinates","./Functions/depthClampFarPlane","./Functions/eastNorthUpToEyeCoordinates","./Functions/ellipsoidContainsPoint","./Functions/ellipsoidNew","./Functions/ellipsoidWgs84TextureCoordinates","./Functions/equalsEpsilon","./Functions/eyeOffset","./Functions/eyeToWindowCoordinates","./Functions/fastApproximateAtan","./Functions/fog","./Functions/gammaCorrect","./Functions/geodeticSurfaceNormal","./Functions/getDefaultMaterial","./Functions/getLambertDiffuse","./Functions/getSpecular","./Functions/getWaterNoise","./Functions/getWgs84EllipsoidEC","./Functions/HSBToRGB","./Functions/HSLToRGB","./Functions/hue","./Functions/inverseGamma","./Functions/isEmpty","./Functions/isFull","./Functions/latitudeToWebMercatorFraction","./Functions/lineDistance","./Functions/luminance","./Functions/metersPerPixel","./Functions/modelToWindowCoordinates","./Functions/multiplyWithColorBalance","./Functions/nearFarScalar","./Functions/octDecode","./Functions/packDepth","./Functions/phong","./Functions/planeDistance","./Functions/pointAlongRay","./Functions/rayEllipsoidIntersectionInterval","./Functions/readDepth","./Functions/reverseLogDepth","./Functions/RGBToHSB","./Functions/RGBToHSL","./Functions/RGBToXYZ","./Functions/sampleOctahedralProjection","./Functions/saturation","./Functions/shadowDepthCompare","./Functions/shadowVisibility","./Functions/signNotZero","./Functions/sphericalHarmonics","./Functions/tangentToEyeSpaceMatrix","./Functions/transformPlane","./Functions/translateRelativeToEye","./Functions/translucentPhong","./Functions/transpose","./Functions/unpackDepth","./Functions/unpackFloat","./Functions/vertexLogDepth","./Functions/windowToEyeCoordinates","./Functions/writeDepthClampedToFarPlane","./Functions/writeLogDepth","./Functions/XYZToRGB"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce,de,he,pe,fe,me,_e,ge,ve,ye,Ce,be,Se,Te,Ee,Ae,we,xe,Pe,De,Ie,Me,Re,Oe,Le,Ne,Fe,Be,ze,ke,Ve,Ue,Ge,He,We,qe,Ye,je,Xe,Qe,Ke,Ze,Je,$e,et,tt,it,rt,nt,ot,at){"use strict";return{czm_degreesPerRadian:e,czm_depthRange:t,czm_epsilon1:i,czm_epsilon2:r,czm_epsilon3:n,czm_epsilon4:o,czm_epsilon5:a,czm_epsilon6:s,czm_epsilon7:l,czm_infinity:u,czm_oneOverPi:c,czm_oneOverTwoPi:d,czm_passCesium3DTile:h,czm_passCesium3DTileClassification:p,czm_passCesium3DTileClassificationIgnoreShow:f,czm_passClassification:m,czm_passCompute:_,czm_passEnvironment:g,czm_passGlobe:v,czm_passOpaque:y,czm_passOverlay:C,czm_passTerrainClassification:b,czm_passTranslucent:S,czm_pi:T,czm_piOverFour:E,czm_piOverSix:A,czm_piOverThree:w,czm_piOverTwo:x,czm_radiansPerDegree:P,czm_sceneMode2D:D,czm_sceneMode3D:I,czm_sceneModeColumbusView:M,czm_sceneModeMorphing:R,czm_solarRadius:O,czm_threePiOver2:L,czm_twoPi:N,czm_webMercatorMaxLatitude:F,czm_depthRangeStruct:B,czm_ellipsoid:z,czm_material:k,czm_materialInput:V,czm_ray:U,czm_raySegment:G,czm_shadowParameters:H,czm_alphaWeight:W,czm_antialias:q,czm_approximateSphericalCoordinates:Y,czm_branchFreeTernary:j,czm_cascadeColor:X,czm_cascadeDistance:Q,czm_cascadeMatrix:K,czm_cascadeWeights:Z,czm_columbusViewMorph:J,czm_computePosition:$,czm_cosineAndSine:ee,czm_decompressTextureCoordinates:te,czm_depthClampFarPlane:ie,czm_eastNorthUpToEyeCoordinates:re,czm_ellipsoidContainsPoint:ne,czm_ellipsoidNew:oe,czm_ellipsoidWgs84TextureCoordinates:ae,czm_equalsEpsilon:se,czm_eyeOffset:le,czm_eyeToWindowCoordinates:ue,czm_fastApproximateAtan:ce,czm_fog:de,czm_gammaCorrect:he,czm_geodeticSurfaceNormal:pe,czm_getDefaultMaterial:fe,czm_getLambertDiffuse:me,czm_getSpecular:_e,czm_getWaterNoise:ge,czm_getWgs84EllipsoidEC:ve,czm_HSBToRGB:ye,czm_HSLToRGB:Ce,czm_hue:be,czm_inverseGamma:Se,czm_isEmpty:Te,czm_isFull:Ee,czm_latitudeToWebMercatorFraction:Ae,czm_lineDistance:we,czm_luminance:xe,czm_metersPerPixel:Pe,czm_modelToWindowCoordinates:De,czm_multiplyWithColorBalance:Ie,czm_nearFarScalar:Me,czm_octDecode:Re,czm_packDepth:Oe,czm_phong:Le,czm_planeDistance:Ne,czm_pointAlongRay:Fe,czm_rayEllipsoidIntersectionInterval:Be,czm_readDepth:ze,czm_reverseLogDepth:ke,czm_RGBToHSB:Ve,czm_RGBToHSL:Ue,czm_RGBToXYZ:Ge,czm_sampleOctahedralProjection:He,czm_saturation:We,czm_shadowDepthCompare:qe,czm_shadowVisibility:Ye,czm_signNotZero:je,czm_sphericalHarmonics:Xe,czm_tangentToEyeSpaceMatrix:Qe,czm_transformPlane:Ke,czm_translateRelativeToEye:Ze,czm_translucentPhong:Je,czm_transpose:$e,czm_unpackDepth:et,czm_unpackFloat:tt,czm_vertexLogDepth:it,czm_windowToEyeCoordinates:rt,czm_writeDepthClampedToFarPlane:nt,czm_writeLogDepth:ot,czm_XYZToRGB:at}}),define("Renderer/ShaderSource",["../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Renderer/modernizeShader","../Shaders/Builtin/CzmBuiltins","./AutomaticUniforms"],function(e,t,i,r,n,o){"use strict";function a(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(e){for(var t=e.match(/\n/gm).length,i="",r=0;r<t;++r)i+="\n";return i})}function s(e,i,r){for(var n,o=0;o<r.length;++o)r[o].name===e&&(n=r[o]);return t(n)||(i=a(i),n={name:e,glslSource:i,dependsOn:[],requiredBy:[],evaluated:!1},r.push(n)),n}function l(e,i){if(!e.evaluated){e.evaluated=!0;var r=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);t(r)&&null!==r&&(r=r.filter(function(e,t){return r.indexOf(e)===t}),r.forEach(function(t){if(t!==e.name&&h._czmBuiltinsAndUniforms.hasOwnProperty(t)){var r=s(t,h._czmBuiltinsAndUniforms[t],i);e.dependsOn.push(r),r.requiredBy.push(e),l(r,i)}}))}}function u(e){for(var t=[],i=[];e.length>0;){var r=e.pop();i.push(r),0===r.requiredBy.length&&t.push(r)}for(;t.length>0;){var n=t.shift();e.push(n);for(var o=0;o<n.dependsOn.length;++o){var a=n.dependsOn[o],s=a.requiredBy.indexOf(n);a.requiredBy.splice(s,1),0===a.requiredBy.length&&t.push(a)}}for(var l=[],u=0;u<i.length;++u)0!==i[u].requiredBy.length&&l.push(i[u])}function c(e){var t=[],i=s("main",e,t);l(i,t),u(t);for(var r="",n=t.length-1;n>=0;--n)r=r+t[n].glslSource+"\n";return r.replace(i.glslSource,"")}function d(e,i,n){var o,s,l="",u=e.sources;if(t(u))for(o=0,s=u.length;o<s;++o)l+="\n#line 0\n"+u[o];l=a(l);var d;l=l.replace(/#version\s+(.*?)\n/gm,function(e,t){return d=t,"\n"});var p=[];l=l.replace(/#extension.*\n/gm,function(e){return p.push(e),"\n"}),l=l.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");var f=e.pickColorQualifier;t(f)&&(l=h.createPickFragmentShaderSource(l,f));var m="";t(d)&&(m="#version "+d+"\n");var _=p.length;for(o=0;o<_;o++)m+=p[o];i&&(m+="#ifdef GL_FRAGMENT_PRECISION_HIGH\n precision highp float;\n#else\n precision mediump float;\n#endif\n\n");var g=e.defines;if(t(g))for(o=0,s=g.length;o<s;++o){var v=g[o];0!==v.length&&(m+="#define "+v+"\n")}return n.webgl2&&(m+="#define OUTPUT_DECLARATION\n\n"),n.textureFloatLinear&&(m+="#define OES_texture_float_linear\n\n"),e.includeBuiltIns&&(m+=c(l)),m+="\n#line 0\n",m+=l,n.webgl2&&(m=r(m,i,!0)),m}function h(i){i=e(i,e.EMPTY_OBJECT);var r=i.pickColorQualifier;this.defines=t(i.defines)?i.defines.slice(0):[],this.sources=t(i.sources)?i.sources.slice(0):[],this.pickColorQualifier=r,this.includeBuiltIns=e(i.includeBuiltIns,!0)}h.prototype.clone=function(){return new h({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})},h.replaceMain=function(e,t){return t="void "+t+"()",e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)},h.prototype.createCombinedVertexShader=function(e){return d(this,!1,e)},h.prototype.createCombinedFragmentShader=function(e){return d(this,!0,e)},h._czmBuiltinsAndUniforms={};for(var p in n)n.hasOwnProperty(p)&&(h._czmBuiltinsAndUniforms[p]=n[p]);for(var f in o)if(o.hasOwnProperty(f)){var m=o[f];"function"==typeof m.getDeclaration&&(h._czmBuiltinsAndUniforms[f]=m.getDeclaration(f))}h.createPickVertexShaderSource=function(e){return h.replaceMain(e,"czm_old_main")+"\nattribute vec4 pickColor; \nvarying vec4 czm_pickColor; \nvoid main() \n{ \n czm_old_main(); \n czm_pickColor = pickColor; \n}"},h.createPickFragmentShaderSource=function(e,t){return h.replaceMain(e,"czm_old_main")+"\n"+t+" vec4 czm_pickColor; \nvoid main() \n{ \n czm_old_main(); \n if (gl_FragColor.a == 0.0) { \n discard; \n } \n gl_FragColor = czm_pickColor; \n}"},h.findVarying=function(e,t){for(var i=e.sources,r=t.length,n=0;n<r;++n)for(var o=t[n],a=i.length,s=0;s<a;++s)if(-1!==i[s].indexOf(o))return o};var _=["v_normalEC","v_normal"];h.findNormalVarying=function(e){return h.findVarying(e,_)};var g=["v_positionEC"];return h.findPositionVarying=function(e){return h.findVarying(e,g)},h}),define("Shaders/ShadowVolumeFS",[],function(){"use strict";return"#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\n#ifdef VECTOR_TILE\nuniform vec4 u_highlightColor;\n#endif\nvoid main(void)\n{\n#ifdef VECTOR_TILE\ngl_FragColor = czm_gammaCorrect(u_highlightColor);\n#else\ngl_FragColor = vec4(1.0);\n#endif\nczm_writeDepthClampedToFarPlane();\n}\n"}),define("Shaders/ShadowVolumeAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute float batchId;\n#ifdef EXTRUDED_GEOMETRY\nattribute vec3 extrudeDirection;\nuniform float u_globeMinimumAltitude;\n#endif // EXTRUDED_GEOMETRY\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#endif // PER_INSTANCE_COLOR\n#ifdef TEXTURE_COORDINATES\n#ifdef SPHERICAL\nvarying vec4 v_sphericalExtents;\n#else // SPHERICAL\nvarying vec2 v_inversePlaneExtents;\nvarying vec4 v_westPlane;\nvarying vec4 v_southPlane;\n#endif // SPHERICAL\nvarying vec3 v_uvMinAndSphericalLongitudeRotation;\nvarying vec3 v_uMaxAndInverseDistance;\nvarying vec3 v_vMaxAndInverseDistance;\n#endif // TEXTURE_COORDINATES\nvoid main()\n{\nvec4 position = czm_computePosition();\n#ifdef EXTRUDED_GEOMETRY\nfloat delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz));\ndelta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0;\nposition = position + vec4(extrudeDirection * delta, 0.0);\n#endif\n#ifdef TEXTURE_COORDINATES\n#ifdef SPHERICAL\nv_sphericalExtents = czm_batchTable_sphericalExtents(batchId);\nv_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId);\n#else // SPHERICAL\n#ifdef COLUMBUS_VIEW_2D\nvec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId);\nvec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId);\nvec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w));\nbool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0;\nplanes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w);\nplanes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w);\nidlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0;\nidlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x));\nplanes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x);\nplanes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x);\nvec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz;\nvec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz;\nvec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz;\n#else // COLUMBUS_VIEW_2D\nvec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz;\nvec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner;\nvec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner;\n#endif // COLUMBUS_VIEW_2D\nvec3 eastWard = southEastCorner - southWestCorner;\nfloat eastExtent = length(eastWard);\neastWard /= eastExtent;\nvec3 northWard = northWestCorner - southWestCorner;\nfloat northExtent = length(northWard);\nnorthWard /= northExtent;\nv_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner));\nv_southPlane = vec4(northWard, -dot(northWard, southWestCorner));\nv_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent);\n#endif // SPHERICAL\nvec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId);\nvec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId);\nv_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z);\nv_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w);\nv_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy;\n#endif // TEXTURE_COORDINATES\n#ifdef PER_INSTANCE_COLOR\nv_color = czm_batchTable_color(batchId);\n#endif\ngl_Position = czm_depthClampFarPlane(czm_modelViewProjectionRelativeToEye * position);\n}\n"}),define("Scene/DepthFunction",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({NEVER:t.NEVER,LESS:t.LESS,EQUAL:t.EQUAL,LESS_OR_EQUAL:t.LEQUAL,GREATER:t.GREATER,NOT_EQUAL:t.NOTEQUAL,GREATER_OR_EQUAL:t.GEQUAL,ALWAYS:t.ALWAYS})}),define("Renderer/BufferUsage",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={STREAM_DRAW:t.STREAM_DRAW,STATIC_DRAW:t.STATIC_DRAW,DYNAMIC_DRAW:t.DYNAMIC_DRAW,validate:function(e){return e===i.STREAM_DRAW||e===i.STATIC_DRAW||e===i.DYNAMIC_DRAW}};return e(i)}),define("Renderer/Buffer",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/IndexDatatype","../Core/WebGLConstants","./BufferUsage"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){e=t(e,t.EMPTY_OBJECT);var r=e.context._gl,n=e.bufferTarget,o=e.typedArray,a=e.sizeInBytes,s=e.usage,l=i(o);l&&(a=o.byteLength);var u=r.createBuffer();r.bindBuffer(n,u),r.bufferData(n,l?o:a,s),r.bindBuffer(n,null),this._gl=r,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=a,this._usage=s,this._buffer=u,this.vertexArrayDestroyable=!0}return u.createVertexBuffer=function(e){return new u({context:e.context,bufferTarget:s.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})},u.createIndexBuffer=function(e){var t=e.context,i=e.indexDatatype,n=a.getSizeInBytes(i),o=new u({context:t,bufferTarget:s.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),l=o.sizeInBytes/n;return r(o,{indexDatatype:{get:function(){return i}},bytesPerIndex:{get:function(){return n}},numberOfIndices:{get:function(){return l}}}),o},r(u.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}}),u.prototype._getBuffer=function(){return this._buffer},u.prototype.copyFromArrayView=function(e,i){i=t(i,0);var r=this._gl,n=this._bufferTarget;r.bindBuffer(n,this._buffer),r.bufferSubData(n,i,e),r.bindBuffer(n,null)},u.prototype.copyFromBuffer=function(e,t,i,r){var n=s.COPY_READ_BUFFER,o=s.COPY_WRITE_BUFFER,a=this._gl;a.bindBuffer(o,this._buffer),a.bindBuffer(n,e._buffer),a.copyBufferSubData(n,o,t,i,r),a.bindBuffer(o,null),a.bindBuffer(n,null)},u.prototype.getBufferData=function(e,i,r,n){i=t(i,0),r=t(r,0);var o=this._gl,a=s.COPY_READ_BUFFER;o.bindBuffer(a,this._buffer),o.getBufferSubData(a,i,e,r,n),o.bindBuffer(a,null)},u.prototype.isDestroyed=function(){return!1},u.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),n(this)},u}),define("Renderer/VertexArray",["../Core/Check","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Geometry","../Core/IndexDatatype","../Core/Math","../Core/RuntimeError","./Buffer","./BufferUsage","./ContextLimits"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e,n,o,a){var s=r(n.vertexBuffer),l=r(n.value),u=n.value?n.value.length:n.componentsPerAttribute,c={index:i(n.index,o),enabled:i(n.enabled,!0),vertexBuffer:n.vertexBuffer,value:l?n.value.slice(0):void 0,componentsPerAttribute:u,componentDatatype:i(n.componentDatatype,t.FLOAT),normalize:i(n.normalize,!1),offsetInBytes:i(n.offsetInBytes,0),strideInBytes:i(n.strideInBytes,0),instanceDivisor:i(n.instanceDivisor,0)};if(s)c.vertexAttrib=function(e){var t=this.index;e.bindBuffer(e.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),e.vertexAttribPointer(t,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),e.enableVertexAttribArray(t),this.instanceDivisor>0&&(a.glVertexAttribDivisor(t,this.instanceDivisor),a._vertexAttribDivisors[t]=this.instanceDivisor,a._previousDrawInstanced=!0)},c.disableVertexAttribArray=function(e){e.disableVertexAttribArray(this.index),this.instanceDivisor>0&&a.glVertexAttribDivisor(o,0)};else{switch(c.componentsPerAttribute){case 1:c.vertexAttrib=function(e){e.vertexAttrib1fv(this.index,this.value)};break;case 2:c.vertexAttrib=function(e){e.vertexAttrib2fv(this.index,this.value)};break;case 3:c.vertexAttrib=function(e){e.vertexAttrib3fv(this.index,this.value)};break;case 4:c.vertexAttrib=function(e){e.vertexAttrib4fv(this.index,this.value)}}c.disableVertexAttribArray=function(e){}}e.push(c)}function m(e,t,i){for(var n=0;n<t.length;++n){var o=t[n];o.enabled&&o.vertexAttrib(e)}r(i)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,i._getBuffer())}function _(e){e=i(e,i.EMPTY_OBJECT);var n,o=e.context,a=o._gl,s=e.attributes,l=e.indexBuffer,u=[],c=1,d=!1,h=!1,p=s.length;for(n=0;n<p;++n)f(u,s[n],n,o);for(p=u.length,n=0;n<p;++n){var _=u[n];if(r(_.vertexBuffer)&&0===_.instanceDivisor){var g=_.strideInBytes||_.componentsPerAttribute*t.getSizeInBytes(_.componentDatatype);c=_.vertexBuffer.sizeInBytes/g;break}}for(n=0;n<p;++n)u[n].instanceDivisor>0&&(d=!0),r(u[n].value)&&(h=!0);var v;o.vertexArrayObject&&(v=o.glCreateVertexArray(),o.glBindVertexArray(v),m(a,u,l),o.glBindVertexArray(null)),this._numberOfVertices=c,this._hasInstancedAttributes=d,this._hasConstantAttributes=h,this._context=o,this._gl=a,this._vao=v,this._attributes=u,this._indexBuffer=l}function g(e){return e.values.length/e.componentsPerAttribute}function v(e){return t.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function y(e){var i,n,o,a=[];for(n in e)e.hasOwnProperty(n)&&r(e[n])&&r(e[n].values)&&(a.push(n),e[n].componentDatatype===t.DOUBLE&&(e[n].componentDatatype=t.FLOAT,e[n].values=t.createTypedArray(t.FLOAT,e[n].values)));var s,l=a.length;if(l>0)for(s=g(e[a[0]]),i=1;i<l;++i){var u=g(e[a[i]]);if(u!==s)throw new c("Each attribute list must have the same number of vertices. Attribute "+a[i]+" has a different number of vertices ("+u.toString()+") than attribute "+a[0]+" ("+s.toString()+").")}a.sort(function(i,r){return t.getSizeInBytes(e[r].componentDatatype)-t.getSizeInBytes(e[i].componentDatatype)});var d=0,h={};for(i=0;i<l;++i)n=a[i],o=e[n],h[n]=d,d+=v(o);if(d>0){var p=t.getSizeInBytes(e[a[0]].componentDatatype),f=d%p;0!==f&&(d+=p-f);var m=s*d,_=new ArrayBuffer(m),y={};for(i=0;i<l;++i){n=a[i];var C=t.getSizeInBytes(e[n].componentDatatype);y[n]={pointer:t.createTypedArray(e[n].componentDatatype,_),index:h[n]/C,strideInComponentType:d/C}}for(i=0;i<s;++i)for(var b=0;b<l;++b){n=a[b],o=e[n];for(var S=o.values,T=y[n],E=T.pointer,A=o.componentsPerAttribute,w=0;w<A;++w)E[T.index+w]=S[i*A+w];T.index+=T.strideInComponentType}return{buffer:_,offsetsInBytes:h,vertexSizeInBytes:d}}}function C(e){var t=e._context,i=e._hasInstancedAttributes;if(i||t._previousDrawInstanced){t._previousDrawInstanced=i;var r,n=t._vertexAttribDivisors,o=e._attributes,a=p.maximumVertexAttributes;if(i){var s=o.length;for(r=0;r<s;++r){var l=o[r];if(l.enabled){var u=l.instanceDivisor,c=l.index;u!==n[c]&&(t.glVertexAttribDivisor(c,u),n[c]=u)}}}else for(r=0;r<a;++r)n[r]>0&&(t.glVertexAttribDivisor(r,0),n[r]=0)}}function b(e,t){for(var i=e._attributes,n=i.length,o=0;o<n;++o){var a=i[o];a.enabled&&r(a.value)&&a.vertexAttrib(t)}}return _.fromGeometry=function(e){e=i(e,i.EMPTY_OBJECT);var n,o,a,c=e.context,p=i(e.geometry,i.EMPTY_OBJECT),f=i(e.bufferUsage,h.DYNAMIC_DRAW),m=i(e.attributeLocations,i.EMPTY_OBJECT),g=i(e.interleave,!1),v=e.vertexArrayAttributes,C=r(v)?v:[],b=p.attributes;if(g){var S=y(b);if(r(S)){a=d.createVertexBuffer({context:c,typedArray:S.buffer,usage:f});var T=S.offsetsInBytes,E=S.vertexSizeInBytes;for(n in b)b.hasOwnProperty(n)&&r(b[n])&&(o=b[n],r(o.values)?C.push({index:m[n],vertexBuffer:a,componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,offsetInBytes:T[n],strideInBytes:E}):C.push({index:m[n],value:o.value,componentDatatype:o.componentDatatype,normalize:o.normalize}))}}else for(n in b)if(b.hasOwnProperty(n)&&r(b[n])){o=b[n];var A=o.componentDatatype;A===t.DOUBLE&&(A=t.FLOAT),a=void 0,r(o.values)&&(a=d.createVertexBuffer({context:c,typedArray:t.createTypedArray(A,o.values),usage:f})),C.push({index:m[n],vertexBuffer:a,value:o.value,componentDatatype:A,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize})}var w,x=p.indices;return r(x)&&(w=s.computeNumberOfVertices(p)>=u.SIXTY_FOUR_KILOBYTES&&c.elementIndexUint?d.createIndexBuffer({context:c,typedArray:new Uint32Array(x),usage:f,indexDatatype:l.UNSIGNED_INT}):d.createIndexBuffer({context:c,typedArray:new Uint16Array(x),usage:f,indexDatatype:l.UNSIGNED_SHORT})),new _({context:c,attributes:C,indexBuffer:w})},n(_.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}}),_.prototype.getAttribute=function(e){return this._attributes[e]},_.prototype._bind=function(){r(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&C(this),this._hasConstantAttributes&&b(this,this._gl)):m(this._gl,this._attributes,this._indexBuffer)},_.prototype._unBind=function(){if(r(this._vao))this._context.glBindVertexArray(null);else{for(var e=this._attributes,t=this._gl,i=0;i<e.length;++i){var n=e[i];n.enabled&&n.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}},_.prototype.isDestroyed=function(){return!1},_.prototype.destroy=function(){for(var e=this._attributes,t=0;t<e.length;++t){var i=e[t].vertexBuffer;r(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}var n=this._indexBuffer;return r(n)&&!n.isDestroyed()&&n.vertexArrayDestroyable&&n.destroy(),r(this._vao)&&this._context.glDeleteVertexArray(this._vao),o(this)},_}),define("Scene/BatchTable",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/combine","../Core/ComponentDatatype","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/Math","../Core/PixelFormat","../Renderer/ContextLimits","../Renderer/PixelDatatype","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(t,r,n){if(this._attributes=r,this._numberOfInstances=n,0!==r.length){var o=y(r),a=t.floatingPointTexture,s=o===p.FLOAT&&!a,l=b(r,s),u=S(l,r,s),c=Math.floor(h.maximumTextureSize/u),d=Math.min(n,c),f=u*d,m=Math.ceil(n/d),_=1/f,g=.5*_,v=1/m,C=.5*v;this._textureDimensions=new e(f,m),this._textureStep=new i(_,g,v,C),this._pixelDatatype=s?p.UNSIGNED_BYTE:o,this._packFloats=s,this._offsets=l,this._stride=u,this._texture=void 0;var T=4*f*m;this._batchValues=o!==p.FLOAT||s?new Uint8Array(T):new Float32Array(T),this._batchValuesDirty=!1}}function y(e){for(var t=!1,i=e.length,r=0;r<i;++r)if(e[r].componentDatatype!==n.UNSIGNED_BYTE){t=!0;break}return t?p.FLOAT:p.UNSIGNED_BYTE}function C(r,n){var o=r[n].componentsPerAttribute;return 2===o?e:3===o?t:4===o?i:Number}function b(e,t){for(var i=new Array(e.length),r=0,o=e.length,a=0;a<o;++a){var s=e[a],l=s.componentDatatype;i[a]=r,l!==n.UNSIGNED_BYTE&&t?r+=4:++r}return i}function S(e,t,i){var r=e.length,o=e[r-1];return t[r-1].componentDatatype!==n.UNSIGNED_BYTE&&i?o+4:o+1}function T(e,t,r){var n=i.unpack(e,t,M),o=i.unpackFloat(n);n=i.unpack(e,t+4,M);var a=i.unpackFloat(n);n=i.unpack(e,t+8,M);var s=i.unpackFloat(n);n=i.unpack(e,t+12,M);var l=i.unpackFloat(n);return i.fromElements(o,a,s,l,r)}function E(e,t,r){var n=i.packFloat(e.x,M);i.pack(n,t,r),n=i.packFloat(e.y,n),i.pack(n,t,r+4),n=i.packFloat(e.z,n),i.pack(n,t,r+8),n=i.packFloat(e.w,n),i.pack(n,t,r+12)}function A(e,t){var i=e._textureDimensions;e._texture=new m({context:t,pixelFormat:d.RGBA,pixelDatatype:e._pixelDatatype,width:i.x,height:i.y,sampler:new f({minificationFilter:g.NEAREST,magnificationFilter:_.NEAREST}),flipY:!1})}function w(e){var t=e._textureDimensions;e._texture.copyFrom({width:t.x,height:t.y,arrayBufferView:e._batchValues})}function x(e){var t=e._stride;return 1===e._textureDimensions.y?"uniform vec4 batchTextureStep; \nvec2 computeSt(float batchId) \n{ \n float stepX = batchTextureStep.x; \n float centerX = batchTextureStep.y; \n float numberOfAttributes = float("+t+"); \n return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); \n} \n":"uniform vec4 batchTextureStep; \nuniform vec2 batchTextureDimensions; \nvec2 computeSt(float batchId) \n{ \n float stepX = batchTextureStep.x; \n float centerX = batchTextureStep.y; \n float stepY = batchTextureStep.z; \n float centerY = batchTextureStep.w; \n float numberOfAttributes = float("+t+"); \n float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); \n float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); \n return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); \n} \n"}function P(e){return 1===e?"float":"vec"+e}function D(e){return 1===e?".x":2===e?".xy":3===e?".xyz":""}function I(e,t){var i=e._attributes,r=i[t],o=r.componentsPerAttribute,a=r.functionName,s=P(o),l=D(o),u=e._offsets[t],c=s+" "+a+"(float batchId) \n{ \n vec2 st = computeSt(batchId); \n st.x += batchTextureStep.x * float("+u+"); \n";return e._packFloats&&r.componentDatatype!==p.UNSIGNED_BYTE?c+="vec4 textureValue; \ntextureValue.x = czm_unpackFloat(texture2D(batchTexture, st)); \ntextureValue.y = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x, 0.0))); \ntextureValue.z = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); \ntextureValue.w = czm_unpackFloat(texture2D(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); \n":c+=" vec4 textureValue = texture2D(batchTexture, st); \n",c+=" "+s+" value = textureValue"+l+"; \n",e._pixelDatatype!==p.UNSIGNED_BYTE||r.componentDatatype!==n.UNSIGNED_BYTE||r.normalize?e._pixelDatatype===p.FLOAT&&r.componentDatatype===n.UNSIGNED_BYTE&&r.normalize&&(c+="value /= 255.0; \n"):c+="value *= 255.0; \n",c+=" return value; \n} \n"}a(v.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});var M=new i;if(u.supportsTypedArrays()){var R=new i;v.prototype.getBatchedAttribute=function(e,t,r){var n,a=this._attributes,s=this._offsets[t],l=this._stride,u=4*l*e+4*s;n=this._packFloats&&a[t].componentDatatype!==p.UNSIGNED_BYTE?T(this._batchValues,u,R):i.unpack(this._batchValues,u,R);var c=C(a,t);return o(c.fromCartesian4)?c.fromCartesian4(n,r):o(c.clone)?c.clone(n,r):n.x};var O=[void 0,void 0,new e,new t,new i],L=new i;return v.prototype.setBatchedAttribute=function(e,t,r){var n=this._attributes,a=O[n[t].componentsPerAttribute],s=this.getBatchedAttribute(e,t,a),l=C(this._attributes,t);if(!(o(l.equals)?l.equals(s,r):s===r)){var u=L;u.x=o(r.x)?r.x:r,u.y=o(r.y)?r.y:0,u.z=o(r.z)?r.z:0,u.w=o(r.w)?r.w:0;var c=this._offsets[t],d=this._stride,h=4*d*e+4*c;this._packFloats&&n[t].componentDatatype!==p.UNSIGNED_BYTE?E(u,this._batchValues,h):i.pack(u,this._batchValues,h),this._batchValuesDirty=!0}},v.prototype.update=function(e){o(this._texture)&&!this._batchValuesDirty||0===this._attributes.length||(this._batchValuesDirty=!1,o(this._texture)||A(this,e.context),w(this))},v.prototype.getUniformMapCallback=function(){var e=this;return function(t){return 0===e._attributes.length?t:r(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}},v.prototype.getVertexShaderCallback=function(){var e=this._attributes;if(0===e.length)return function(e){return e};var t="uniform sampler2D batchTexture; \n";t+=x(this)+"\n";for(var i=e.length,r=0;r<i;++r)t+=I(this,r);return function(e){var i=e.indexOf("void main"),r=e.substring(0,i),n=e.substring(i);return r+"\n"+t+"\n"+n}},v.prototype.isDestroyed=function(){return!1},v.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),s(this)},v}}), -define("Scene/PrimitivePipeline",["../Core/BoundingSphere","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/GeographicProjection","../Core/Geometry","../Core/GeometryAttribute","../Core/GeometryAttributes","../Core/GeometryPipeline","../Core/IndexDatatype","../Core/Matrix4","../Core/OffsetGeometryInstanceAttribute","../Core/WebMercatorProjection"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e,t,i){var n,o=!i,a=e.length;if(!o&&a>1){var s=e[0].modelMatrix;for(n=1;n<a;++n)if(!p.equals(s,e[n].modelMatrix)){o=!0;break}}if(o)for(n=0;n<a;++n)r(e[n].geometry)&&d.transformToWorldCoordinates(e[n]);else p.multiplyTransformation(t,e[0].modelMatrix,t)}function g(e,i){var r=e.attributes,n=r.position,o=n.values.length/n.componentsPerAttribute;r.batchId=new u({componentDatatype:t.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});for(var a=r.batchId.values,s=0;s<o;++s)a[s]=i}function v(e){for(var t=e.length,i=0;i<t;++i){var n=e[i];r(n.geometry)?g(n.geometry,i):r(n.westHemisphereGeometry)&&r(n.eastHemisphereGeometry)&&(g(n.westHemisphereGeometry,i),g(n.eastHemisphereGeometry,i))}}function y(i){var n,o,a=i.instances,s=i.projection,l=i.elementIndexUintSupported,u=i.scene3DOnly,c=i.vertexCacheOptimize,h=i.compressVertices,p=i.modelMatrix,f=a.length;for(n=0;n<f;++n)if(r(a[n].geometry)){a[n].geometry.primitiveType;break}if(_(a,p,u),!u)for(n=0;n<f;++n)r(a[n].geometry)&&d.splitLongitude(a[n]);if(v(a),c)for(n=0;n<f;++n){var m=a[n];r(m.geometry)?(d.reorderForPostVertexCache(m.geometry),d.reorderForPreVertexCache(m.geometry)):r(m.westHemisphereGeometry)&&r(m.eastHemisphereGeometry)&&(d.reorderForPostVertexCache(m.westHemisphereGeometry),d.reorderForPreVertexCache(m.westHemisphereGeometry),d.reorderForPostVertexCache(m.eastHemisphereGeometry),d.reorderForPreVertexCache(m.eastHemisphereGeometry))}var g=d.combineInstances(a);for(f=g.length,n=0;n<f;++n){o=g[n];var y,C=o.attributes;if(u)for(y in C)C.hasOwnProperty(y)&&C[y].componentDatatype===t.DOUBLE&&d.encodeAttribute(o,y,y+"3DHigh",y+"3DLow");else for(y in C)if(C.hasOwnProperty(y)&&C[y].componentDatatype===t.DOUBLE){var b=y+"3D",S=y+"2D";d.projectTo2D(o,y,b,S,s),r(o.boundingSphere)&&"position"===y&&(o.boundingSphereCV=e.fromVertices(o.attributes.position2D.values)),d.encodeAttribute(o,b,b+"High",b+"Low"),d.encodeAttribute(o,S,S+"High",S+"Low")}h&&d.compressVertices(o)}if(!l){var T=[];for(f=g.length,n=0;n<f;++n)o=g[n],T=T.concat(d.fitToUnsignedShortIndices(o));g=T}return g}function C(e,t,i,n){var o,a,s,l=n.length-1;if(l>=0){var u=n[l];o=u.offset+u.count,s=u.index,a=i[s].indices.length}else o=0,s=0,a=i[s].indices.length;for(var c=e.length,d=0;d<c;++d){var h=e[d],p=h[t];if(r(p)){var f=p.indices.length;o+f>a&&(o=0,a=i[++s].indices.length),n.push({index:s,offset:o,count:f}),o+=f}}}function b(e,t){var i=[];return C(e,"geometry",t,i),C(e,"westHemisphereGeometry",t,i),C(e,"eastHemisphereGeometry",t,i),i}function S(e,t){var i=e.attributes;for(var n in i)if(i.hasOwnProperty(n)){var o=i[n];r(o)&&r(o.values)&&t.push(o.values.buffer)}r(e.indices)&&t.push(e.indices.buffer)}function T(e,t){for(var i=e.length,r=0;r<i;++r)S(e[r],t)}function E(t){for(var i=1,n=t.length,o=0;o<n;o++){var a=t[o];if(++i,r(a)){var s=a.attributes;i+=7+2*e.packedLength+(r(a.indices)?a.indices.length:0);for(var l in s)if(s.hasOwnProperty(l)&&r(s[l])){var u=s[l];i+=5+u.values.length}}}return i}function A(e,t){var i=e.length,n=new Float64Array(1+19*i),o=0;n[o++]=i;for(var a=0;a<i;a++){var s=e[a];if(p.pack(s.modelMatrix,n,o),o+=p.packedLength,r(s.attributes)&&r(s.attributes.offset)){var l=s.attributes.offset.value;n[o]=l[0],n[o+1]=l[1],n[o+2]=l[2]}o+=3}return t.push(n.buffer),n}function w(e){for(var t=e,i=new Array(t[0]),n=0,o=1;o<t.length;){var a,s=p.unpack(t,o);o+=p.packedLength,r(t[o])&&(a={offset:new f(t[o],t[o+1],t[o+2])}),o+=3,i[n++]={modelMatrix:s,attributes:a}}return i}function x(t){var i=t.length,n=1+(e.packedLength+1)*i,o=new Float32Array(n),a=0;o[a++]=i;for(var s=0;s<i;++s){var l=t[s];r(l)?(o[a++]=1,e.pack(t[s],o,a)):o[a++]=0,a+=e.packedLength}return o}function P(t){for(var i=new Array(t[0]),r=0,n=1;n<t.length;)1===t[n++]&&(i[r]=e.unpack(t,n)),++r,n+=e.packedLength;return i}if(!a.supportsTypedArrays())return{};var D={};return D.combineGeometry=function(t){var i,n,o,a,s=t.instances,l=s.length,u=!1;l>0&&(i=y(t),i.length>0&&(n=d.createAttributeLocations(i[0]),t.createPickOffsets&&(o=b(s,i))),r(s[0].attributes)&&r(s[0].attributes.offset)&&(a=new Array(l),u=!0));for(var c=new Array(l),h=new Array(l),p=0;p<l;++p){var f=s[p],m=f.geometry;r(m)&&(c[p]=m.boundingSphere,h[p]=m.boundingSphereCV,u&&(a[p]=f.geometry.offsetAttribute));var _=f.eastHemisphereGeometry,g=f.westHemisphereGeometry;r(_)&&r(g)&&(r(_.boundingSphere)&&r(g.boundingSphere)&&(c[p]=e.union(_.boundingSphere,g.boundingSphere)),r(_.boundingSphereCV)&&r(g.boundingSphereCV)&&(h[p]=e.union(_.boundingSphereCV,g.boundingSphereCV)))}return{geometries:i,modelMatrix:t.modelMatrix,attributeLocations:n,pickOffsets:o,offsetInstanceExtend:a,boundingSpheres:c,boundingSpheresCV:h}},D.packCreateGeometryResults=function(t,n){var o=new Float64Array(E(t)),a=[],s={},l=t.length,u=0;o[u++]=l;for(var c=0;c<l;c++){var d=t[c],h=r(d);if(o[u++]=h?1:0,h){o[u++]=d.primitiveType,o[u++]=d.geometryType,o[u++]=i(d.offsetAttribute,-1);var p=r(d.boundingSphere)?1:0;o[u++]=p,p&&e.pack(d.boundingSphere,o,u),u+=e.packedLength;var f=r(d.boundingSphereCV)?1:0;o[u++]=f,f&&e.pack(d.boundingSphereCV,o,u),u+=e.packedLength;var m=d.attributes,_=[];for(var g in m)m.hasOwnProperty(g)&&r(m[g])&&(_.push(g),r(s[g])||(s[g]=a.length,a.push(g)));o[u++]=_.length;for(var v=0;v<_.length;v++){var y=_[v],C=m[y];o[u++]=s[y],o[u++]=C.componentDatatype,o[u++]=C.componentsPerAttribute,o[u++]=C.normalize?1:0,o[u++]=C.values.length,o.set(C.values,u),u+=C.values.length}var b=r(d.indices)?d.indices.length:0;o[u++]=b,b>0&&(o.set(d.indices,u),u+=b)}}return n.push(o.buffer),{stringTable:a,packedData:o}},D.unpackCreateGeometryResults=function(i){for(var r,n=i.stringTable,o=i.packedData,a=new Array(o[0]),s=0,d=1;d<o.length;){if(1===o[d++]){var p=o[d++],f=o[d++],m=o[d++];-1===m&&(m=void 0);var _,g;1===o[d++]&&(_=e.unpack(o,d)),d+=e.packedLength;1===o[d++]&&(g=e.unpack(o,d)),d+=e.packedLength;var v,y,C,b=new c,S=o[d++];for(r=0;r<S;r++){var T=n[o[d++]],E=o[d++];C=o[d++];var A=0!==o[d++];v=o[d++],y=t.createTypedArray(E,v);for(var w=0;w<v;w++)y[w]=o[d++];b[T]=new u({componentDatatype:E,componentsPerAttribute:C,normalize:A,values:y})}var x;if((v=o[d++])>0){var P=y.length/C;for(x=h.createTypedArray(P,v),r=0;r<v;r++)x[r]=o[d++]}a[s++]=new l({primitiveType:p,geometryType:f,boundingSphere:_,boundingSphereCV:g,indices:x,attributes:b,offsetAttribute:m})}else a[s++]=void 0}return a},D.packCombineGeometryParameters=function(e,t){for(var i=e.createGeometryResults,r=i.length,n=0;n<r;n++)t.push(i[n].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:A(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}},D.unpackCombineGeometryParameters=function(e){for(var t=w(e.packedInstances),i=e.createGeometryResults,r=i.length,n=0,a=0;a<r;a++)for(var l=D.unpackCreateGeometryResults(i[a]),u=l.length,c=0;c<u;c++){var d=l[c],h=t[n];h.geometry=d,++n}var f=o.clone(e.ellipsoid);return{instances:t,ellipsoid:f,projection:e.isGeographic?new s(f):new m(f),elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:p.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}},D.packCombineGeometryResults=function(e,t){r(e.geometries)&&T(e.geometries,t);var i=x(e.boundingSpheres),n=x(e.boundingSpheresCV);return t.push(i.buffer,n.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:i,boundingSpheresCV:n}},D.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:P(e.boundingSpheres),boundingSpheresCV:P(e.boundingSpheresCV)}},D}),define("Scene/PrimitiveState",["../Core/freezeObject"],function(e){"use strict";return e({READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6})}),define("Scene/SceneMode",["../Core/freezeObject"],function(e){"use strict";var t={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};return t.getMorphTime=function(e){if(e===t.SCENE3D)return 1;if(e!==t.MORPHING)return 0},e(t)}),define("Scene/Primitive",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/clone","../Core/Color","../Core/combine","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/EncodedCartesian3","../Core/FeatureDetection","../Core/Geometry","../Core/GeometryAttribute","../Core/GeometryAttributes","../Core/GeometryOffsetAttribute","../Core/Intersect","../Core/isArray","../Core/Matrix4","../Core/Plane","../Core/RuntimeError","../Core/subdivideArray","../Core/TaskProcessor","../Renderer/BufferUsage","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../ThirdParty/when","./BatchTable","./CullFace","./DepthFunction","./PrimitivePipeline","./PrimitiveState","./SceneMode","./ShadowMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G){"use strict";function H(e){e=u(e,u.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=S.clone(u(e.modelMatrix,S.IDENTITY)),this._modelMatrix=new S,this.show=u(e.show,!0),this._vertexCacheOptimize=u(e.vertexCacheOptimize,!1),this._interleave=u(e.interleave,!1),this._releaseGeometryInstances=u(e.releaseGeometryInstances,!0),this._allowPicking=u(e.allowPicking,!0),this._asynchronous=u(e.asynchronous,!0),this._compressVertices=u(e.compressVertices,!0),this.cull=u(e.cull,!0),this.debugShowBoundingVolume=u(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=u(e.shadows,G.DISABLED),this._translucent=void 0,this._state=V.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=[],this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._readOnlyInstanceAttributes=e._readOnlyInstanceAttributes,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1,this._readyPromise=N.defer(),this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}function W(e){var t,i=e.length,r=[],n=e[0].attributes;for(t in n)if(n.hasOwnProperty(t)&&c(n[t])){for(var o=n[t],a=!0,s=1;s<i;++s){var l=e[s].attributes[t];if(!c(l)||o.componentDatatype!==l.componentDatatype||o.componentsPerAttribute!==l.componentsPerAttribute||o.normalize!==l.normalize){a=!1;break}}a&&r.push(t)}return r}function q(e){var n=e.length;return 1===n?e[0]:2===n?t.unpack(e,0,Ce):3===n?i.unpack(e,0,be):4===n?r.unpack(e,0,Se):void 0}function Y(e,t){var i=e.geometryInstances,r=b(i)?i:[i],n=r.length;if(0!==n){var o,s,d,h,p=W(r),f=p.length,m=[],_={},g={},v=r[0],y=v.attributes;for(s=0;s<f;++s)d=p[s],h=y[d],_[d]=s,m.push({functionName:"czm_batchTable_"+d,componentDatatype:h.componentDatatype,componentsPerAttribute:h.componentsPerAttribute,normalize:h.normalize});-1!==p.indexOf("distanceDisplayCondition")&&(m.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:l.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:l.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:l.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:l.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:l.FLOAT,componentsPerAttribute:1}),g.center3DHigh=m.length-5,g.center3DLow=m.length-4,g.center2DHigh=m.length-3,g.center2DLow=m.length-2,g.radius=m.length-1),-1!==p.indexOf("offset")&&(m.push({functionName:"czm_batchTable_offset2D",componentDatatype:l.FLOAT,componentsPerAttribute:3}),o=m.length-1),m.push({functionName:"czm_batchTable_pickColor",componentDatatype:l.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});var C=m.length,S=new F(t,m,n);for(s=0;s<n;++s){var T=r[s];y=T.attributes;for(var E=0;E<f;++E){d=p[E],h=y[d];var A=q(h.value),w=_[d];S.setBatchedAttribute(s,w,A)}var x={primitive:u(T.pickPrimitive,e)};c(T.id)&&(x.id=T.id);var P=t.createPickId(x);e._pickIds.push(P);var D=P.color,I=Se;I.x=a.floatToByte(D.red),I.y=a.floatToByte(D.green),I.z=a.floatToByte(D.blue),I.w=a.floatToByte(D.alpha),S.setBatchedAttribute(s,C-1,I)}e._batchTable=S,e._batchTableAttributeIndices=_,e._batchTableBoundingSphereAttributeIndices=g,e._batchTableOffsetAttribute2DIndex=o}}function j(e){var t;return t=b(e.values)?e.values.slice(0):new e.values.constructor(e.values),new g({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function X(t){var i=t.attributes,r=new v;for(var n in i)i.hasOwnProperty(n)&&c(i[n])&&(r[n]=j(i[n]));var o;if(c(t.indices)){var a=t.indices;o=b(a)?a.slice(0):new a.constructor(a)}return new _({attributes:r,indices:o,primitiveType:t.primitiveType,boundingSphere:e.clone(t.boundingSphere)})}function Q(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:S.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}function K(e){return O.replaceMain(e,"czm_non_pick_main")+"\nvarying vec4 v_pickColor; \nvoid main() \n{ \n czm_non_pick_main(); \n v_pickColor = czm_batchTable_pickColor(batchId); \n}"}function Z(e){return"varying vec4 v_pickColor;\n"+e}function J(e,t){if(!e.compressVertices)return t;var i=-1!==t.search(/attribute\s+vec3\s+normal;/g),r=-1!==t.search(/attribute\s+vec2\s+st;/g);if(!i&&!r)return t;var n=-1!==t.search(/attribute\s+vec3\s+tangent;/g),o=-1!==t.search(/attribute\s+vec3\s+bitangent;/g),a=r&&i?2:1;a+=n||o?1:0;var s=a>1?"vec"+a:"float",l="compressedAttributes",u="attribute "+s+" "+l+";",c="",d="";if(r){c+="vec2 st;\n";d+=" st = czm_decompressTextureCoordinates("+(a>1?l+".x":l)+");\n"}i&&n&&o?(c+="vec3 normal;\nvec3 tangent;\nvec3 bitangent;\n",d+=" czm_octDecode("+l+"."+(r?"yz":"xy")+", normal, tangent, bitangent);\n"):(i&&(c+="vec3 normal;\n",d+=" normal = czm_octDecode("+l+(a>1?"."+(r?"y":"x"):"")+");\n"),n&&(c+="vec3 tangent;\n",d+=" tangent = czm_octDecode("+l+"."+(r&&i?"z":"y")+");\n"),o&&(c+="vec3 bitangent;\n",d+=" bitangent = czm_octDecode("+l+"."+(r&&i?"z":"y")+");\n"));var h=t;return h=h.replace(/attribute\s+vec3\s+normal;/g,""),h=h.replace(/attribute\s+vec2\s+st;/g,""),h=h.replace(/attribute\s+vec3\s+tangent;/g,""),h=h.replace(/attribute\s+vec3\s+bitangent;/g,""),h=O.replaceMain(h,"czm_non_compressed_main"),[u,c,h,"void main() \n{ \n"+d+" czm_non_compressed_main(); \n}"].join("\n")}function $(e){var t=O.replaceMain(e,"czm_non_depth_clamp_main");return t+="varying float v_WindowZ;\nvoid main() {\n czm_non_depth_clamp_main();\n vec4 position = gl_Position;\n v_WindowZ = (0.5 * (position.z / position.w) + 0.5) * position.w;\n position.z = min(position.z, position.w);\n gl_Position = position;\n}\n"}function ee(e){var t=O.replaceMain(e,"czm_non_depth_clamp_main");return t+="varying float v_WindowZ;\nvoid main() {\n czm_non_depth_clamp_main();\n#if defined(GL_EXT_frag_depth) && !defined(LOG_DEPTH)\n gl_FragDepthEXT = min(v_WindowZ * gl_FragCoord.w, 1.0);\n#endif\n}\n",t="#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\n"+t}function te(e,t){e.vertexAttributes}function ie(e,t){return function(){return e[t]}}function re(e,t){var i,r,n,o,a=e._instanceIds;if(e._state===V.READY){i=b(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];var s=e._numberOfInstances=i.length,l=[],d=[];for(n=0;n<s;++n)r=i[n].geometry,a.push(i[n].id),d.push({moduleName:r._workerName,geometry:r});if(!c(Ee))for(Ee=new Array(Ae),n=0;n<Ae;n++)Ee[n]=new w("createGeometry",Number.POSITIVE_INFINITY);var h;for(d=A(d,Ae),n=0;n<d.length;n++){var p=0,f=d[n],m=f.length;for(o=0;o<m;++o)h=f[o],r=h.geometry,c(r.constructor.pack)&&(h.offset=p,p+=u(r.constructor.packedLength,r.packedLength));var _;if(p>0){var g=new Float64Array(p);for(_=[g.buffer],o=0;o<m;++o)h=f[o],r=h.geometry,c(r.constructor.pack)&&(r.constructor.pack(r,g,h.offset),h.geometry=g)}l.push(Ee[n].scheduleTask({subTasks:d[n]},_))}e._state=V.CREATING,N.all(l,function(t){e._createGeometryResults=t,e._state=V.CREATED}).otherwise(function(i){ye(e,t,V.FAILED,i)})}else if(e._state===V.CREATED){var v=[];i=b(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];var y=t.scene3DOnly,C=t.mapProjection,T=we.scheduleTask(k.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:i,ellipsoid:C.ellipsoid,projection:C,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:y,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},v),v);e._createGeometryResults=void 0,e._state=V.COMBINING,N(T,function(i){var r=k.unpackCombineGeometryResults(i);e._geometries=r.geometries,e._attributeLocations=r.attributeLocations,e.modelMatrix=S.clone(r.modelMatrix,e.modelMatrix),e._pickOffsets=r.pickOffsets,e._offsetInstanceExtend=r.offsetInstanceExtend,e._instanceBoundingSpheres=r.boundingSpheres,e._instanceBoundingSpheresCV=r.boundingSpheresCV,c(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=V.COMBINED):ye(e,t,V.FAILED,void 0)}).otherwise(function(i){ye(e,t,V.FAILED,i)})}}function ne(e,t){var i,r,n=b(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],o=e._numberOfInstances=n.length,a=new Array(o),s=e._instanceIds,l=0;for(r=0;r<o;r++){i=n[r];var u,d=i.geometry;u=c(d.attributes)&&c(d.primitiveType)?X(d):d.constructor.createGeometry(d),a[l++]=Q(i,u),s.push(i.id)}a.length=l;var h=t.scene3DOnly,p=t.mapProjection,f=k.combineGeometry({instances:a,ellipsoid:p.ellipsoid,projection:p,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:h,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=f.geometries,e._attributeLocations=f.attributeLocations,e.modelMatrix=S.clone(f.modelMatrix,e.modelMatrix),e._pickOffsets=f.pickOffsets,e._offsetInstanceExtend=f.offsetInstanceExtend,e._instanceBoundingSpheres=f.boundingSpheres,e._instanceBoundingSpheresCV=f.boundingSpheresCV,c(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=V.COMBINED):ye(e,t,V.FAILED,void 0)}function oe(t,r){var n=t._batchTableAttributeIndices.offset;if(!t._recomputeBoundingSpheres||!c(n))return void(t._recomputeBoundingSpheres=!1);var o,a=t._offsetInstanceExtend,s=t._instanceBoundingSpheres,l=s.length,u=t._tempBoundingSpheres;if(!c(u)){for(u=new Array(l),o=0;o<l;o++)u[o]=new e;t._tempBoundingSpheres=u}for(o=0;o<l;++o){var d=u[o],h=t._batchTable.getBatchedAttribute(o,n,new i);d=s[o].clone(d),fe(d,h,a[o])}var p=[],f=[],m=[];for(o=0;o<l;++o){var _=u[o];_.center.x-_.radius>0||e.intersectPlane(_,T.ORIGIN_ZX_PLANE)!==C.INTERSECTING?p.push(_):(f.push(_),m.push(_))}var g=p[0],v=m[0],y=f[0];for(o=1;o<p.length;o++)g=e.union(g,p[o]);for(o=1;o<m.length;o++)v=e.union(v,m[o]);for(o=1;o<f.length;o++)y=e.union(y,f[o]);var b=[];for(c(g)&&b.push(g),c(v)&&b.push(v),c(y)&&b.push(y),o=0;o<b.length;o++){var S=b[o].clone(t._boundingSpheres[o]);t._boundingSpheres[o]=S,t._boundingSphereCV[o]=e.projectTo2D(S,r.mapProjection,t._boundingSphereCV[o])}H._updateBoundingVolumes(t,r,t.modelMatrix,!0),t._recomputeBoundingSpheres=!1}function ae(t,i){if(c(t._batchTableAttributeIndices.distanceDisplayCondition)&&!t._batchTableBoundingSpheresUpdated){for(var r=t._batchTableBoundingSphereAttributeIndices,n=r.center3DHigh,o=r.center3DLow,a=r.center2DHigh,s=r.center2DLow,l=r.radius,u=i.mapProjection,d=u.ellipsoid,h=t._batchTable,p=t._instanceBoundingSpheres,m=p.length,_=0;_<m;++_){var g=p[_];if(c(g)){var v=t.modelMatrix;c(v)&&(g=e.transform(g,v,Ie));var y=g.center,C=g.radius,b=f.fromCartesian(y,xe);if(h.setBatchedAttribute(_,n,b.high),h.setBatchedAttribute(_,o,b.low),!i.scene3DOnly){var S=d.cartesianToCartographic(y,Pe),T=u.project(S,De);b=f.fromCartesian(T,xe),h.setBatchedAttribute(_,a,b.high),h.setBatchedAttribute(_,s,b.low)}h.setBatchedAttribute(_,l,C)}}t._batchTableBoundingSpheresUpdated=!0}}function se(t,r){if(c(t._batchTableAttributeIndices.offset)&&!t._batchTableOffsetsUpdated&&!r.scene3DOnly){for(var n=t._batchTableOffsetAttribute2DIndex,o=r.mapProjection,a=o.ellipsoid,s=t._batchTable,l=t._instanceBoundingSpheres,u=l.length,d=0;d<u;++d){var h=l[d];if(c(h)){var p=s.getBatchedAttribute(d,t._batchTableAttributeIndices.offset);if(i.equals(p,i.ZERO))s.setBatchedAttribute(d,n,i.ZERO);else{var f=t.modelMatrix;c(f)&&(h=e.transform(h,f,Ie));var m=h.center;m=a.scaleToGeodeticSurface(m,Re);var _=a.cartesianToCartographic(m,Pe),g=o.project(_,De),v=i.add(p,m,Me);_=a.cartesianToCartographic(v,_);var y=o.project(_,Me),C=i.subtract(y,g,Me),b=C.x;C.x=C.z,C.z=C.y,C.y=b,s.setBatchedAttribute(d,n,C)}}}t._batchTableOffsetsUpdated=!0}}function le(t,i){for(var r=t._attributeLocations,n=t._geometries,o=i.scene3DOnly,a=i.context,s=[],l=n.length,u=0;u<l;++u){var d=n[u];if(s.push(L.fromGeometry({context:a,geometry:d,attributeLocations:r,bufferUsage:x.STATIC_DRAW,interleave:t._interleave})),c(t._createBoundingVolumeFunction))t._createBoundingVolumeFunction(i,d);else if(t._boundingSpheres.push(e.clone(d.boundingSphere)),t._boundingSphereWC.push(new e),!o){var h=d.boundingSphereCV.center,p=h.x,f=h.y,m=h.z;h.x=m,h.y=p,h.z=f,t._boundingSphereCV.push(e.clone(d.boundingSphereCV)),t._boundingSphere2D.push(new e),t._boundingSphereMorph.push(new e)}}t._va=s,t._primitiveType=n[0].primitiveType,t.releaseGeometryInstances&&(t.geometryInstances=void 0),t._geometries=void 0,ye(t,i,V.COMPLETE,void 0)}function ue(e,t,i,r){var n,a=i.getRenderState();r?(n=o(a,!1),n.cull={enabled:!0,face:B.BACK},e._frontFaceRS=M.fromCache(n),n.cull.face=B.FRONT,e._backFaceRS=M.fromCache(n)):(e._frontFaceRS=M.fromCache(a),e._backFaceRS=e._frontFaceRS),n=o(a,!1),c(e._depthFailAppearance)&&(n.depthTest.enabled=!1),c(e._depthFailAppearance)&&(a=e._depthFailAppearance.getRenderState(),n=o(a,!1),n.depthTest.func=z.GREATER,r?(n.cull={enabled:!0,face:B.BACK},e._frontFaceDepthFailRS=M.fromCache(n),n.cull.face=B.FRONT,e._backFaceDepthFailRS=M.fromCache(n)):(e._frontFaceDepthFailRS=M.fromCache(n),e._backFaceDepthFailRS=e._frontFaceRS))}function ce(e,t,i){var r=t.context,n=e._attributeLocations,o=e._batchTable.getVertexShaderCallback()(i.vertexShaderSource);o=H._appendOffsetToShader(e,o),o=H._appendShowToShader(e,o),o=H._appendDistanceDisplayConditionToShader(e,o,t.scene3DOnly),o=K(o),o=H._updateColorAttribute(e,o,!1),o=J(e,o),o=H._modifyShaderPosition(e,o,t.scene3DOnly);var a=i.getFragmentShaderSource();a=Z(a),e._sp=R.replaceCache({context:r,shaderProgram:e._sp,vertexShaderSource:o,fragmentShaderSource:a,attributeLocations:n}),te(e._sp,n),c(e._depthFailAppearance)&&(o=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),o=H._appendShowToShader(e,o),o=H._appendDistanceDisplayConditionToShader(e,o,t.scene3DOnly),o=K(o),o=H._updateColorAttribute(e,o,!0),o=J(e,o),o=H._modifyShaderPosition(e,o,t.scene3DOnly),o=$(o),a=e._depthFailAppearance.getFragmentShaderSource(),a=Z(a),a=ee(a),e._spDepthFail=R.replaceCache({context:r,shaderProgram:e._spDepthFail,vertexShaderSource:o,fragmentShaderSource:a,attributeLocations:n}),te(e._spDepthFail,n))}function de(e,t,i,r){var n=c(i)?i._uniforms:void 0,o={},a=t.uniforms;if(c(a))for(var l in a)a.hasOwnProperty(l)&&(o[l]=ie(a,l));var u=s(o,n);return u=e._batchTable.getUniformMapCallback()(u),c(e.rtcCenter)&&(u.u_modifiedModelView=function(){var t=r.context.uniformState.view;return S.multiply(t,e._modelMatrix,Oe),S.multiplyByPoint(Oe,e.rtcCenter,Le),S.setTranslation(Oe,Le,Oe),Oe}),u}function he(e,t,i,r,n,o,a,s){var l,u=de(e,t,i,s);c(e._depthFailAppearance)&&(l=de(e,e._depthFailAppearance,e._depthFailAppearance.material,s));var d=r?I.TRANSLUCENT:I.OPAQUE,h=n?2:1;h*=c(e._depthFailAppearance)?2:1,o.length=e._va.length*h;for(var p=o.length,f=0,m=0;m<p;++m){var _;n&&(_=o[m],c(_)||(_=o[m]=new D({owner:e,primitiveType:e._primitiveType})),_.vertexArray=e._va[f],_.renderState=e._backFaceRS,_.shaderProgram=e._sp,_.uniformMap=u,_.pass=d,++m),_=o[m],c(_)||(_=o[m]=new D({owner:e,primitiveType:e._primitiveType})),_.vertexArray=e._va[f],_.renderState=e._frontFaceRS,_.shaderProgram=e._sp,_.uniformMap=u,_.pass=d,c(e._depthFailAppearance)&&(n&&(++m,_=o[m],c(_)||(_=o[m]=new D({owner:e,primitiveType:e._primitiveType})),_.vertexArray=e._va[f],_.renderState=e._backFaceDepthFailRS,_.shaderProgram=e._spDepthFail,_.uniformMap=l,_.pass=d),++m,_=o[m],c(_)||(_=o[m]=new D({owner:e,primitiveType:e._primitiveType})),_.vertexArray=e._va[f],_.renderState=e._frontFaceDepthFailRS,_.shaderProgram=e._spDepthFail,_.uniformMap=l,_.pass=d),++f}}function pe(e,t,i,r,n,o,a,s){H._updateBoundingVolumes(e,t,n);var l;t.mode===U.SCENE3D?l=e._boundingSphereWC:t.mode===U.COLUMBUS_VIEW?l=e._boundingSphereCV:t.mode===U.SCENE2D&&c(e._boundingSphere2D)?l=e._boundingSphere2D:c(e._boundingSphereMorph)&&(l=e._boundingSphereMorph);var u=t.commandList,d=t.passes;if(d.render||d.pick){var h=e.allowPicking,p=G.castShadows(e.shadows),f=G.receiveShadows(e.shadows),m=i.length,_=s?2:1;_*=c(e._depthFailAppearance)?2:1;for(var g=0;g<m;++g){var v=Math.floor(g/_),y=i[g];y.modelMatrix=n,y.boundingVolume=l[v],y.cull=o,y.debugShowBoundingVolume=a,y.castShadows=p,y.receiveShadows=f,y.pickId=h?"v_pickColor":void 0,u.push(y)}}}function fe(t,r,n){if(n===y.TOP){var o=e.clone(t,Ne),a=e.clone(t,Fe);a.center=i.add(a.center,r,a.center),t=e.union(o,a,t)}else n===y.ALL&&(t.center=i.add(t.center,r,t.center));return t}function me(e,t,i){return function(){var r=e.getBatchedAttribute(t,i),n=e.attributes[i],o=n.componentsPerAttribute,a=l.createTypedArray(n.componentDatatype,o);return c(r.constructor.pack)?r.constructor.pack(r,a,0):a[0]=r,a}}function _e(e,t,i,r,n){return function(o){var a=q(o);e.setBatchedAttribute(t,i,a),"offset"===n&&(r._recomputeBoundingSpheres=!0,r._batchTableOffsetsUpdated=!1)}}function ge(t,r,n){r.boundingSphere={get:function(){var o=t._instanceBoundingSpheres[n];if(c(o)){o=o.clone();var a=t.modelMatrix,s=r.offset;c(s)&&fe(o,i.fromArray(s.get(),0,Be),t._offsetInstanceExtend[n]),c(a)&&(o=e.transform(o,a))}return o}},r.boundingSphereCV={get:function(){return t._instanceBoundingSpheresCV[n]}}}function ve(e,t,i){t.pickId={get:function(){return e._pickIds[i]}}}function ye(e,t,i,r){e._error=r,e._state=i,t.afterRender.push(function(){e._ready=e._state===V.COMPLETE||e._state===V.FAILED,c(r)?e._readyPromise.reject(r):e._readyPromise.resolve(e)})}d(H.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}}});var Ce=new t,be=new i,Se=new r,Te=/attribute\s+vec(?:3|4)\s+(.*)3DHigh;/g;H._modifyShaderPosition=function(e,t,i){for(var r,n="",o="",a="";null!==(r=Te.exec(t));){var s=r[1],l="vec4 czm_compute"+s[0].toUpperCase()+s.substr(1)+"()";"vec4 czm_computePosition()"!==l&&(n+=l+";\n"),c(e.rtcCenter)?(t=t.replace(/attribute\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/attribute\s+vec(?:3|4)\s+position3DLow;/g,""),n+="uniform mat4 u_modifiedModelView;\n",o+="attribute vec4 position;\n",a+=l+"\n{\n return u_modifiedModelView * position;\n}\n\n",t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):i?a+=l+"\n{\n return czm_translateRelativeToEye("+s+"3DHigh, "+s+"3DLow);\n}\n\n":(o+="attribute vec3 "+s+"2DHigh;\nattribute vec3 "+s+"2DLow;\n",a+=l+"\n{\n vec4 p;\n if (czm_morphTime == 1.0)\n {\n p = czm_translateRelativeToEye("+s+"3DHigh, "+s+"3DLow);\n }\n else if (czm_morphTime == 0.0)\n {\n p = czm_translateRelativeToEye("+s+"2DHigh.zxy, "+s+"2DLow.zxy);\n }\n else\n {\n p = czm_columbusViewMorph(\n czm_translateRelativeToEye("+s+"2DHigh.zxy, "+s+"2DLow.zxy),\n czm_translateRelativeToEye("+s+"3DHigh, "+s+"3DLow),\n czm_morphTime);\n }\n return p;\n}\n\n")}return[n,o,t,a].join("\n")},H._appendShowToShader=function(e,t){if(!c(e._batchTableAttributeIndices.show))return t;return O.replaceMain(t,"czm_non_show_main")+"\nvoid main() \n{ \n czm_non_show_main(); \n gl_Position *= czm_batchTable_show(batchId); \n}"},H._updateColorAttribute=function(e,t,i){if(!c(e._batchTableAttributeIndices.color)&&!c(e._batchTableAttributeIndices.depthFailColor))return t;if(-1===t.search(/attribute\s+vec4\s+color;/g))return t;var r=t;return r=r.replace(/attribute\s+vec4\s+color;/g,""),r=i?r.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):r.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2")},H._updatePickColorAttribute=function(e){var t=e.replace(/attribute\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2")},H._appendOffsetToShader=function(e,t){if(!c(e._batchTableAttributeIndices.offset))return t;var i="attribute float batchId;\n";i+="attribute float applyOffset;";var r=t.replace(/attribute\s+float\s+batchId;/g,i),n="vec4 $1 = czm_computePosition();\n";return n+=" if (czm_sceneMode == czm_sceneMode3D)\n",n+=" {\n",n+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",n+=" }\n",n+=" else\n",n+=" {\n", -n+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",n+=" }\n",r=r.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,n)},H._appendDistanceDisplayConditionToShader=function(e,t,i){if(!c(e._batchTableAttributeIndices.distanceDisplayCondition))return t;var r=O.replaceMain(t,"czm_non_distanceDisplayCondition_main"),n="void main() \n{ \n czm_non_distanceDisplayCondition_main(); \n vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId);\n vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId);\n vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId);\n float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId);\n";return n+=i?" vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);\n":" vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId);\n vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId);\n vec4 centerRTE;\n if (czm_morphTime == 1.0)\n {\n centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow);\n }\n else if (czm_morphTime == 0.0)\n {\n centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy);\n }\n else\n {\n centerRTE = czm_columbusViewMorph(\n czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy),\n czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow),\n czm_morphTime);\n }\n",n+=" float radiusSq = boundingSphereRadius * boundingSphereRadius; \n float distanceSq; \n if (czm_sceneMode == czm_sceneMode2D) \n { \n distanceSq = czm_eyeHeight2D.y - radiusSq; \n } \n else \n { \n distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; \n } \n distanceSq = max(distanceSq, 0.0); \n float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; \n float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; \n float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; \n gl_Position *= show; \n}",r+"\n"+n};var Ee,Ae=Math.max(m.hardwareConcurrency-1,1),we=new w("combineGeometry",Number.POSITIVE_INFINITY),xe=new f,Pe=new n,De=new i,Ie=new e,Me=new i,Re=new i,Oe=new S,Le=new i;H._updateBoundingVolumes=function(t,i,r,n){var o,a,s;if(n||!S.equals(r,t._modelMatrix))for(S.clone(r,t._modelMatrix),a=t._boundingSpheres.length,o=0;o<a;++o)s=t._boundingSpheres[o],c(s)&&(t._boundingSphereWC[o]=e.transform(s,r,t._boundingSphereWC[o]),i.scene3DOnly||(t._boundingSphere2D[o]=e.clone(t._boundingSphereCV[o],t._boundingSphere2D[o]),t._boundingSphere2D[o].center.x=0,t._boundingSphereMorph[o]=e.union(t._boundingSphereWC[o],t._boundingSphereCV[o])));var l=t.appearance.pixelSize;if(c(l))for(a=t._boundingSpheres.length,o=0;o<a;++o){s=t._boundingSpheres[o];var u=t._boundingSphereWC[o],d=i.camera.getPixelSize(s,i.context.drawingBufferWidth,i.context.drawingBufferHeight),h=d*l;u.radius=s.radius+h}},H.prototype.update=function(e){if(!(!c(this.geometryInstances)&&0===this._va.length||c(this.geometryInstances)&&b(this.geometryInstances)&&0===this.geometryInstances.length||!c(this.appearance)||e.mode!==U.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)){if(c(this._error))throw this._error;if(this._state!==V.FAILED){var t=e.context;if(c(this._batchTable)||Y(this,t),this._batchTable.attributes.length>0){if(0===P.maximumVertexTextureImageUnits)throw new E("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==V.COMPLETE&&this._state!==V.COMBINED&&(this.asynchronous?re(this,e):ne(this,e)),this._state===V.COMBINED&&(ae(this,e),se(this,e),le(this,e)),this.show&&this._state===V.COMPLETE){this._batchTableOffsetsUpdated||se(this,e),this._recomputeBoundingSpheres&&oe(this,e);var i=this.appearance,r=i.material,n=!1,o=!1;this._appearance!==i?(this._appearance=i,this._material=r,n=!0,o=!0):this._material!==r&&(this._material=r,o=!0);var a=this.depthFailAppearance,s=c(a)?a.material:void 0;this._depthFailAppearance!==a?(this._depthFailAppearance=a,this._depthFailMaterial=s,n=!0,o=!0):this._depthFailMaterial!==s&&(this._depthFailMaterial=s,o=!0);var l=this._appearance.isTranslucent();this._translucent!==l&&(this._translucent=l,n=!0),c(this._material)&&this._material.update(t);var d=i.closed&&l;if(n){u(this._createRenderStatesFunction,ue)(this,t,i,d)}if(o){u(this._createShaderProgramFunction,ce)(this,e,i)}if(n||o){u(this._createCommandsFunction,he)(this,i,r,l,d,this._colorCommands,this._pickCommands,e)}u(this._updateAndQueueCommandsFunction,pe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,d)}}}};var Ne=new e,Fe=new e,Be=new i;return H.prototype.getGeometryInstanceAttributes=function(e){for(var t=-1,i=this._lastPerInstanceAttributeIndex,r=this._instanceIds,n=r.length,o=0;o<n;++o){var a=(i+o)%n;if(e===r[a]){t=a;break}}if(-1!==t){var s=this._perInstanceAttributeCache[t];if(c(s))return s;var l=this._batchTable,u=this._batchTableAttributeIndices;s={};var h={};for(var p in u)if(u.hasOwnProperty(p)){var f=u[p];h[p]={get:me(l,t,f)};var m=!0,_=this._readOnlyInstanceAttributes;if(m&&c(_)){n=_.length;for(var g=0;g<n;++g)if(p===_[g]){m=!1;break}}m&&(h[p].set=_e(l,t,f,this,p))}return ge(this,h,t),ve(this,h,t),d(s,h),this._lastPerInstanceAttributeIndex=t,this._perInstanceAttributeCache[t]=s,s}},H.prototype.isDestroyed=function(){return!1},H.prototype.destroy=function(){var e,t;this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy();var i=this._va;for(e=i.length,t=0;t<e;++t)i[t].destroy();this._va=void 0;var r=this._pickIds;for(e=r.length,t=0;t<e;++t)r[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,h(this)},H}),define("Shaders/ShadowVolumeAppearanceFS",[],function(){"use strict";return"#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\n#ifdef TEXTURE_COORDINATES\n#ifdef SPHERICAL\nvarying vec4 v_sphericalExtents;\n#else // SPHERICAL\nvarying vec2 v_inversePlaneExtents;\nvarying vec4 v_westPlane;\nvarying vec4 v_southPlane;\n#endif // SPHERICAL\nvarying vec3 v_uvMinAndSphericalLongitudeRotation;\nvarying vec3 v_uMaxAndInverseDistance;\nvarying vec3 v_vMaxAndInverseDistance;\n#endif // TEXTURE_COORDINATES\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#endif\n#ifdef NORMAL_EC\nvec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) {\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth);\nreturn eyeCoordinate.xyz / eyeCoordinate.w;\n}\nvec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) {\nvec2 glFragCoordXY = gl_FragCoord.xy;\nfloat upOrRightLogDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw));\nfloat downOrLeftLogDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw));\nbvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw);\nfloat useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y);\nfloat useDownOrLeft = float(useUpOrRight == 0.0);\nvec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth);\nvec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth);\nreturn (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft;\n}\n#endif // NORMAL_EC\nvoid main(void)\n{\n#ifdef REQUIRES_EC\nfloat logDepthOrDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw));\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);\n#endif\n#ifdef REQUIRES_WC\nvec4 worldCoordinate4 = czm_inverseView * eyeCoordinate;\nvec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w;\n#endif\n#ifdef TEXTURE_COORDINATES\nvec2 uv;\n#ifdef SPHERICAL\nvec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate);\nsphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z;\nsphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi);\nuv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w;\nuv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z;\n#else // SPHERICAL\nuv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x;\nuv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y;\n#endif // SPHERICAL\n#endif // TEXTURE_COORDINATES\n#ifdef PICK\n#ifdef CULL_FRAGMENTS\nif (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0) {\ngl_FragColor.a = 1.0;\nczm_writeDepthClampedToFarPlane();\n}\n#else // CULL_FRAGMENTS\ngl_FragColor.a = 1.0;\n#endif // CULL_FRAGMENTS\n#else // PICK\n#ifdef CULL_FRAGMENTS\nif (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y) {\ndiscard;\n}\n#endif\n#ifdef NORMAL_EC\nvec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0));\nvec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0));\nvec3 normalEC = normalize(cross(leftRight, downUp));\n#endif\n#ifdef PER_INSTANCE_COLOR\nvec4 color = czm_gammaCorrect(v_color);\n#ifdef FLAT\ngl_FragColor = color;\n#else // FLAT\nczm_materialInput materialInput;\nmaterialInput.normalEC = normalEC;\nmaterialInput.positionToEyeEC = -eyeCoordinate.xyz;\nczm_material material = czm_getDefaultMaterial(materialInput);\nmaterial.diffuse = color.rgb;\nmaterial.alpha = color.a;\ngl_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material);\n#endif // FLAT\n#else // PER_INSTANCE_COLOR\nczm_materialInput materialInput;\n#ifdef USES_NORMAL_EC\nmaterialInput.normalEC = normalEC;\n#endif\n#ifdef USES_POSITION_TO_EYE_EC\nmaterialInput.positionToEyeEC = -eyeCoordinate.xyz;\n#endif\n#ifdef USES_TANGENT_TO_EYE\nmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC);\n#endif\n#ifdef USES_ST\nmaterialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z;\nmaterialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z;\n#endif\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else // FLAT\ngl_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material);\n#endif // FLAT\n#endif // PER_INSTANCE_COLOR\nczm_writeDepthClampedToFarPlane();\n#endif // PICK\n}\n"}),define("Scene/ShadowVolumeAppearance",["../Core/Cartographic","../Core/Cartesian2","../Core/Cartesian3","../Core/Math","../Core/Check","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/EncodedCartesian3","../Core/GeometryInstanceAttribute","../Core/Matrix4","../Core/Rectangle","../Core/Transforms","../Renderer/ShaderSource","../Scene/PerInstanceColorAppearance","../Shaders/ShadowVolumeAppearanceFS"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e,t,i){var r=new y;r.requiresTextureCoordinates=e,r.requiresEC=!i.flat;var n=new y;if(n.requiresTextureCoordinates=e,i instanceof m)r.requiresNormalEC=!i.flat;else{var o=i.material.shaderSource+"\n"+i.fragmentShaderSource;r.normalEC=-1!==o.indexOf("materialInput.normalEC")||-1!==o.indexOf("czm_getDefaultMaterial"),r.positionToEyeEC=-1!==o.indexOf("materialInput.positionToEyeEC"),r.tangentToEyeMatrix=-1!==o.indexOf("materialInput.tangentToEyeMatrix"),r.st=-1!==o.indexOf("materialInput.st")}this._colorShaderDependencies=r,this._pickShaderDependencies=n,this._appearance=i,this._extentsCulling=e,this._planarExtents=t}function v(e,t,i,n,o,a,l){var c=n.slice();if(""===w.eastMostYhighDefine){var d=P;d.longitude=r.PI,d.latitude=0,d.height=0;var h=l.project(d,x),p=u.encode(h.x,D);w.eastMostYhighDefine="EAST_MOST_X_HIGH "+p.high.toFixed((p.high+"").length+1),w.eastMostYlowDefine="EAST_MOST_X_LOW "+p.low.toFixed((p.low+"").length+1);var _=P;_.longitude=-r.PI,_.latitude=0,_.height=0;var g=l.project(_,x);p=u.encode(g.x,D),w.westMostYhighDefine="WEST_MOST_X_HIGH "+p.high.toFixed((p.high+"").length+1),w.westMostYlowDefine="WEST_MOST_X_LOW "+p.low.toFixed((p.low+"").length+1)}return i&&(c.push(w.eastMostYhighDefine),c.push(w.eastMostYlowDefine),c.push(w.westMostYhighDefine),c.push(w.westMostYlowDefine)),s(a)&&a instanceof m&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||i||c.push("SPHERICAL"),i&&c.push("COLUMBUS_VIEW_2D")),new f({defines:c,sources:[o]})}function y(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}function C(e,i,r){return Math.abs((i.y-e.y)*r.x-(i.x-e.x)*r.y+i.x*e.y-i.y*e.x)/t.distance(i,e)}function b(e,i){var r=I,n=t.unpack(i,0,r[0]),a=t.unpack(i,2,r[1]),s=t.unpack(i,4,r[2]);e.uMaxVmax=new c({componentDatatype:o.FLOAT,componentsPerAttribute:4,normalize:!1,value:[a.x,a.y,s.x,s.y]});var l=1/C(n,a,s),u=1/C(n,s,a);e.uvMinAndExtents=new c({componentDatatype:o.FLOAT,componentsPerAttribute:4,normalize:!1,value:[n.x,n.y,l,u]})}function S(e,t,i){var r=M;r.height=0,r.longitude=e.west,r.latitude=e.south;var n=t.project(r,R);r.latitude=e.north;var a=t.project(r,O);r.longitude=e.east,r.latitude=e.south;var s=t.project(r,L),l=[0,0,0,0],d=[0,0,0,0],h=u.encode(n.x,N);l[0]=h.high,d[0]=h.low,h=u.encode(n.y,N),l[1]=h.high,d[1]=h.low,h=u.encode(a.y,N),l[2]=h.high,d[2]=h.low,h=u.encode(s.x,N),l[3]=h.high,d[3]=h.low,i.planes2D_HIGH=new c({componentDatatype:o.FLOAT,componentsPerAttribute:4,normalize:!1,value:l}),i.planes2D_LOW=new c({componentDatatype:o.FLOAT,componentsPerAttribute:4,normalize:!1,value:d})}function T(t,r,n,o,a,s){var l=h.center(t,k);l.height=n;var u=e.toCartesian(l,r,z),c=p.eastNorthUpToFixedFrame(u,r,F),f=d.inverse(c,B),m=t.west,_=t.east,g=t.north,v=t.south,y=V;y[0].latitude=v,y[0].longitude=m,y[1].latitude=g,y[1].longitude=m,y[2].latitude=g,y[2].longitude=_,y[3].latitude=v,y[3].longitude=_;var C=.5*(m+_),b=.5*(g+v);y[4].latitude=v,y[4].longitude=C,y[5].latitude=g,y[5].longitude=C,y[6].latitude=b,y[6].longitude=m,y[7].latitude=b,y[7].longitude=_;for(var S=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,E=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,w=0;w<8;w++){y[w].height=n;var x=e.toCartesian(y[w],r,z);d.multiplyByPoint(f,x,x),x.z=0,S=Math.min(S,x.x),T=Math.max(T,x.x),E=Math.min(E,x.y),A=Math.max(A,x.y)}var P=o;P.x=S,P.y=E,P.z=0,d.multiplyByPoint(c,P,P);var D=a;D.x=T,D.y=E,D.z=0,d.multiplyByPoint(c,D,D),i.subtract(D,P,a);var I=s;I.x=S,I.y=A,I.z=0,d.multiplyByPoint(c,I,I),i.subtract(I,P,s)}function E(t,i,n,o){var a=M;a.latitude=t,a.longitude=i,a.height=0;var s=e.toCartesian(a,n,W),l=Math.sqrt(s.x*s.x+s.y*s.y),u=r.fastApproximateAtan2(l,s.z),c=r.fastApproximateAtan2(s.x,s.y);return o.x=u,o.y=c,o}function A(e){return Math.max(e.width,e.height)>g.MAX_WIDTH_FOR_PLANAR_EXTENTS}var w={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};g.prototype.createFragmentShader=function(e){var t=this._appearance,i=this._colorShaderDependencies,r=[];e||this._planarExtents||r.push("SPHERICAL"),i.requiresEC&&r.push("REQUIRES_EC"),i.requiresWC&&r.push("REQUIRES_WC"),i.requiresTextureCoordinates&&r.push("TEXTURE_COORDINATES"),this._extentsCulling&&r.push("CULL_FRAGMENTS"),i.requiresNormalEC&&r.push("NORMAL_EC"),t instanceof m&&r.push("PER_INSTANCE_COLOR"),i.normalEC&&r.push("USES_NORMAL_EC"),i.positionToEyeEC&&r.push("USES_POSITION_TO_EYE_EC"),i.tangentToEyeMatrix&&r.push("USES_TANGENT_TO_EYE"),i.st&&r.push("USES_ST"),t.flat&&r.push("FLAT");var n="";return t instanceof m||(n=t.material.shaderSource),new f({defines:r,sources:[n,_]})},g.prototype.createPickFragmentShader=function(e){var t=this._pickShaderDependencies,i=["PICK"];return e||this._planarExtents||i.push("SPHERICAL"),t.requiresEC&&i.push("REQUIRES_EC"),t.requiresWC&&i.push("REQUIRES_WC"),t.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),new f({defines:i,sources:[_],pickColorQualifier:"varying"})},g.prototype.createVertexShader=function(e,t,i,r){return v(this._colorShaderDependencies,this._planarExtents,i,e,t,this._appearance,r)},g.prototype.createPickVertexShader=function(e,t,i,r){return v(this._pickShaderDependencies,this._planarExtents,i,e,t,void 0,r)};var x=new i,P=new e,D={high:0,low:0};l(y.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});var I=[new t,new t,new t,new t],M=new e,R=new i,O=new i,L=new i,N={high:0,low:0},F=new d,B=new d,z=new i,k=new e,V=[new e,new e,new e,new e,new e,new e,new e,new e],U=new i,G=new i,H=new u;g.getPlanarTextureCoordinateAttributes=function(e,t,r,n,s){var l=R,d=U,h=G;T(e,r,a(s,0),l,d,h);var p={};b(p,t);var f=u.fromCartesian(l,H);return p.southWest_HIGH=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,normalize:!1,value:i.pack(f.high,[0,0,0])}),p.southWest_LOW=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,normalize:!1,value:i.pack(f.low,[0,0,0])}),p.eastward=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,normalize:!1,value:i.pack(d,[0,0,0])}),p.northward=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,normalize:!1,value:i.pack(h,[0,0,0])}),S(e,n,p),p};var W=new i,q=new t;return g.getSphericalExtentGeometryInstanceAttributes=function(e,t,i,n){var a=E(e.south,e.west,i,q),s=a.x,l=a.y,u=E(e.north,e.east,i,q),d=u.x,h=u.y,p=0;l>h&&(p=r.PI-l,l=-r.PI,h+=p),s-=r.EPSILON5,l-=r.EPSILON5,d+=r.EPSILON5,h+=r.EPSILON5;var f=1/(h-l),m=1/(d-s),_={sphericalExtents:new c({componentDatatype:o.FLOAT,componentsPerAttribute:4,normalize:!1,value:[s,l,m,f]}),longitudeRotation:new c({componentDatatype:o.FLOAT,componentsPerAttribute:1,normalize:!1,value:[p]})};return b(_,t),S(e,n,_),_},g.hasAttributesForTextureCoordinatePlanes=function(e){return s(e.southWest_HIGH)&&s(e.southWest_LOW)&&s(e.northward)&&s(e.eastward)&&s(e.planes2D_HIGH)&&s(e.planes2D_LOW)&&s(e.uMaxVmax)&&s(e.uvMinAndExtents)},g.hasAttributesForSphericalExtents=function(e){return s(e.sphericalExtents)&&s(e.longitudeRotation)&&s(e.planes2D_HIGH)&&s(e.planes2D_LOW)&&s(e.uMaxVmax)&&s(e.uvMinAndExtents)},g.shouldUseSphericalCoordinates=function(e){return A(e)},g.MAX_WIDTH_FOR_PLANAR_EXTENTS=r.toRadians(1),g}),define("Scene/StencilFunction",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({NEVER:t.NEVER,LESS:t.LESS,EQUAL:t.EQUAL,LESS_OR_EQUAL:t.LEQUAL,GREATER:t.GREATER,NOT_EQUAL:t.NOTEQUAL,GREATER_OR_EQUAL:t.GEQUAL,ALWAYS:t.ALWAYS})}),define("Scene/StencilOperation",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";return e({ZERO:t.ZERO,KEEP:t.KEEP,REPLACE:t.REPLACE,INCREMENT:t.INCR,DECREMENT:t.DECR,INVERT:t.INVERT,INCREMENT_WRAP:t.INCR_WRAP,DECREMENT_WRAP:t.DECR_WRAP})}),define("Scene/StencilConstants",["../Core/freezeObject","./StencilFunction","./StencilOperation"],function(e,t,i){"use strict";var r={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};return r.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:t.ALWAYS,frontOperation:{fail:i.KEEP,zFail:i.KEEP,zPass:i.REPLACE},backFunction:t.ALWAYS,backOperation:{fail:i.KEEP,zFail:i.KEEP,zPass:i.REPLACE},reference:r.CESIUM_3D_TILE_MASK,mask:r.CESIUM_3D_TILE_MASK}},e(r)}),define("Scene/ClassificationPrimitive",["../Core/ColorGeometryInstanceAttribute","../Core/combine","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/GeometryInstance","../Core/isArray","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Shaders/ShadowVolumeFS","../Shaders/ShadowVolumeAppearanceVS","../ThirdParty/when","./BlendingState","./ClassificationType","./DepthFunction","./PerInstanceColorAppearance","./Primitive","./SceneMode","./ShadowVolumeAppearance","./StencilConstants","./StencilFunction","./StencilOperation"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(e){e=i(e,i.EMPTY_OBJECT);var t=e.geometryInstances;this.geometryInstances=t,this.show=i(e.show,!0),this.classificationType=i(e.classificationType,v.BOTH),this.debugShowBoundingVolume=i(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=i(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=i(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilPreloadPass=void 0,this._rsStencilPreloadPass3DTiles=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._readyPromise=_.defer(),this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance;var n;r(t)&&l(t)&&t.length>1&&(n=U),this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:i(e.vertexCacheOptimize,!1),interleave:i(e.interleave,!1),releaseGeometryInstances:i(e.releaseGeometryInstances,!0),allowPicking:i(e.allowPicking,!0),asynchronous:i(e.asynchronous,!0),compressVertices:i(e.compressVertices,!0),_readOnlyInstanceAttributes:n,_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}function P(e,t){var i=t?A.EQUAL:A.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:i,frontOperation:{fail:w.KEEP,zFail:w.DECREMENT_WRAP,zPass:w.DECREMENT_WRAP},backFunction:i,backOperation:{fail:w.KEEP,zFail:w.INCREMENT_WRAP,zPass:w.INCREMENT_WRAP},reference:E.CESIUM_3D_TILE_MASK,mask:E.CESIUM_3D_TILE_MASK},stencilMask:E.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1}}function D(e,t){var i=t?A.EQUAL:A.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:i,frontOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.INCREMENT_WRAP},backFunction:i,backOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.DECREMENT_WRAP},reference:E.CESIUM_3D_TILE_MASK,mask:E.CESIUM_3D_TILE_MASK},stencilMask:E.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:y.LESS_OR_EQUAL},depthMask:!1}}function I(e){return{stencilTest:{enabled:e,frontFunction:A.NOT_EQUAL,frontOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.DECREMENT_WRAP},backFunction:A.NOT_EQUAL,backOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.DECREMENT_WRAP},reference:0,mask:E.CLASSIFICATION_MASK},stencilMask:E.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:g.ALPHA_BLEND}}function M(e,t,i,n){if(!r(e._rsStencilPreloadPass)){var o=!e.debugShowShadowVolume;e._rsStencilPreloadPass=d.fromCache(P(o,!1)),e._rsStencilPreloadPass3DTiles=d.fromCache(P(o,!0)),e._rsStencilDepthPass=d.fromCache(D(o,!1)),e._rsStencilDepthPass3DTiles=d.fromCache(D(o,!0)),e._rsColorPass=d.fromCache(I(o,!1)),e._rsPickPass=d.fromCache(G)}}function R(e,t){if(!e.compressVertices)return t;if(-1!==t.search(/attribute\s+vec3\s+extrudeDirection;/g)){var i=t;i=i.replace(/attribute\s+vec3\s+extrudeDirection;/g,""),i=p.replaceMain(i,"czm_non_compressed_main");return["attribute vec2 compressedAttributes;","vec3 extrudeDirection;\n",i,"void main() \n{ \n extrudeDirection = czm_octDecode(compressedAttributes, 65535.0);\n czm_non_compressed_main(); \n}"].join("\n")}}function O(e,t){var i=t.context,n=e._primitive,o=m;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=b._appendDistanceDisplayConditionToShader(n,o),o=b._modifyShaderPosition(e,o,t.scene3DOnly),o=b._updateColorAttribute(n,o);var a=e._hasPlanarExtentsAttributes,s=a||e._hasSphericalExtentsAttribute;e._extruded&&(o=R(n,o));var l=e._extruded?"EXTRUDED_GEOMETRY":"",u="ENABLE_GL_POSITION_LOG_DEPTH_AT_HEIGHT",c=new p({defines:[l,u],sources:[o]}),d=new p({sources:[f]}),_=e._primitive._attributeLocations,g=new T(s,a,e.appearance);if(e._spStencil=h.replaceCache({context:i,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:_}),e._primitive.allowPicking){var v=p.createPickVertexShaderSource(o);v=b._appendShowToShader(n,v),v=b._updatePickColorAttribute(v);var y=g.createPickFragmentShader(!1),C=g.createPickVertexShader([l,u],v,!1,t.mapProjection);if(e._spPick=h.replaceCache({context:i,shaderProgram:e._spPick,vertexShaderSource:C,fragmentShaderSource:y,attributeLocations:_}),s){var S=i.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!r(S)){var E=g.createPickFragmentShader(!0),A=g.createPickVertexShader([l,u],v,!0,t.mapProjection);S=i.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:_})}e._spPick2D=S}}else e._spPick=h.fromCache({context:i,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:_});o=b._appendShowToShader(n,o),c=new p({defines:[l,u],sources:[o]}),e._sp=h.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:d,attributeLocations:_});var w=g.createFragmentShader(!1),x=g.createVertexShader([l,u],o,!1,t.mapProjection);if(e._spColor=h.replaceCache({context:i,shaderProgram:e._spColor,vertexShaderSource:x,fragmentShaderSource:w,attributeLocations:_}),s){var P=i.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!r(P)){var D=g.createFragmentShader(!0),I=g.createVertexShader([l,u],o,!0,t.mapProjection);P=i.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:I,fragmentShaderSource:D,attributeLocations:_})}e._spColor2D=P}}function L(e,i){var n=e._primitive,o=3*n._va.length;i.length=o;var a,s,l,d=0,h=n._batchTable.getUniformMapCallback()(e._uniformMap),p=e._needs2DShader;for(a=0;a<o;a+=3){var f=n._va[d++];s=i[a],r(s)||(s=i[a]=new u({owner:e,primitiveType:n._primitiveType})),s.vertexArray=f,s.renderState=e._rsStencilPreloadPass,s.shaderProgram=e._sp,s.uniformMap=h,s.pass=c.TERRAIN_CLASSIFICATION,l=u.shallowClone(s,s.derivedCommands.tileset),l.renderState=e._rsStencilPreloadPass3DTiles,l.pass=c.CESIUM_3D_TILE_CLASSIFICATION,s.derivedCommands.tileset=l,s=i[a+1],r(s)||(s=i[a+1]=new u({owner:e,primitiveType:n._primitiveType})),s.vertexArray=f,s.renderState=e._rsStencilDepthPass,s.shaderProgram=e._sp,s.uniformMap=h,s.pass=c.TERRAIN_CLASSIFICATION,l=u.shallowClone(s,s.derivedCommands.tileset),l.renderState=e._rsStencilDepthPass3DTiles,l.pass=c.CESIUM_3D_TILE_CLASSIFICATION,s.derivedCommands.tileset=l,s=i[a+2],r(s)||(s=i[a+2]=new u({owner:e,primitiveType:n._primitiveType})),s.vertexArray=f,s.renderState=e._rsColorPass,s.shaderProgram=e._spColor,s.pass=c.TERRAIN_CLASSIFICATION;var m=e.appearance,_=m.material;if(r(_)&&(h=t(h,_._uniforms)),s.uniformMap=h,l=u.shallowClone(s,s.derivedCommands.tileset),l.pass=c.CESIUM_3D_TILE_CLASSIFICATION,s.derivedCommands.tileset=l,p){var g=u.shallowClone(s,s.derivedCommands.appearance2D);g.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=g,g=u.shallowClone(l,l.derivedCommands.appearance2D),g.shaderProgram=e._spColor2D,l.derivedCommands.appearance2D=g}}var v=e._commandsIgnoreShow,y=e._spStencil,C=0;o=v.length=o/3*2;for(var b=0;b<o;b+=2){var S=v[b]=u.shallowClone(i[C],v[b]);S.shaderProgram=y,S.pass=c.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,S=v[b+1]=u.shallowClone(i[C+1],v[b+1]),S.shaderProgram=y,S.pass=c.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,C+=3}}function N(e,t){var i,n,o=e._usePickOffsets,a=e._primitive,s=3*a._va.length,l=0;o&&(i=a._pickOffsets,s=3*i.length),t.length=s;var d,h,p,f=0,m=a._batchTable.getUniformMapCallback()(e._uniformMap),_=e._needs2DShader;for(d=0;d<s;d+=3){var g=a._va[f++];if(o&&(n=i[l++],g=a._va[n.index]),h=t[d],r(h)||(h=t[d]=new u({owner:e,primitiveType:a._primitiveType,pickOnly:!0})),h.vertexArray=g,h.renderState=e._rsStencilPreloadPass,h.shaderProgram=e._sp,h.uniformMap=m,h.pass=c.TERRAIN_CLASSIFICATION,o&&(h.offset=n.offset,h.count=n.count),p=u.shallowClone(h,h.derivedCommands.tileset),p.renderState=e._rsStencilPreloadPass3DTiles,p.pass=c.CESIUM_3D_TILE_CLASSIFICATION,h.derivedCommands.tileset=p,h=t[d+1],r(h)||(h=t[d+1]=new u({owner:e,primitiveType:a._primitiveType,pickOnly:!0})),h.vertexArray=g,h.renderState=e._rsStencilDepthPass,h.shaderProgram=e._sp,h.uniformMap=m,h.pass=c.TERRAIN_CLASSIFICATION,o&&(h.offset=n.offset,h.count=n.count),p=u.shallowClone(h,h.derivedCommands.tileset),p.renderState=e._rsStencilDepthPass3DTiles,p.pass=c.CESIUM_3D_TILE_CLASSIFICATION,h.derivedCommands.tileset=p,h=t[d+2],r(h)||(h=t[d+2]=new u({owner:e,primitiveType:a._primitiveType,pickOnly:!0})),h.vertexArray=g,h.renderState=e._rsPickPass,h.shaderProgram=e._spPick,h.uniformMap=m,h.pass=c.TERRAIN_CLASSIFICATION,o&&(h.offset=n.offset,h.count=n.count),p=u.shallowClone(h,h.derivedCommands.tileset),p.pass=c.CESIUM_3D_TILE_CLASSIFICATION,h.derivedCommands.tileset=p,_){var v=u.shallowClone(h,h.derivedCommands.pick2D);v.shaderProgram=e._spPick2D,h.derivedCommands.pick2D=v,v=u.shallowClone(p,p.derivedCommands.pick2D),v.shaderProgram=e._spPick2D,p.derivedCommands.pick2D=v}}}function F(e,t,i,r,n,o,a){L(e,o),N(e,a)}function B(e,t){return Math.floor(e%t/3)}function z(e,t,i,r,n,o){e.modelMatrix=i,e.boundingVolume=n,e.cull=r,e.debugShowBoundingVolume=o,t.commandList.push(e)}function k(e,t,i,r,n){e.modelMatrix=i,e.boundingVolume=n,e.cull=r,t.commandList.push(e)}function V(e,t,i,n,o,a,s,l){var u=e._primitive;b._updateBoundingVolumes(u,t,o);var c;t.mode===S.SCENE3D?c=u._boundingSphereWC:t.mode===S.COLUMBUS_VIEW?c=u._boundingSphereCV:t.mode===S.SCENE2D&&r(u._boundingSphere2D)?c=u._boundingSphere2D:r(u._boundingSphereMorph)&&(c=u._boundingSphereMorph);var d,h,p,f=e.classificationType,m=f!==v.CESIUM_3D_TILE,_=f!==v.TERRAIN,g=t.passes;if(g.render){var y=i.length;for(d=0;d<y;++d)h=c[B(d,y)],m&&(p=i[d],z(p,t,o,a,h,s)), -_&&(p=i[d].derivedCommands.tileset,z(p,t,o,a,h,s));if(t.invertClassification){var C=e._commandsIgnoreShow,T=C.length;for(d=0;d<T;++d)h=c[Math.floor(d/2)],p=C[d],z(p,t,o,a,h,s)}}if(g.pick){var E=n.length,A=u._pickOffsets;for(d=0;d<E;++d){h=c[A[B(d,E)].index],m&&(p=n[d],k(p,t,o,a,h)),_&&(p=n[d].derivedCommands.tileset,k(p,t,o,a,h))}}}var U=["color"];n(x.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}}),x.isSupported=function(e){return e.context.stencilBuffer};var G={stencilTest:{enabled:!0,frontFunction:A.NOT_EQUAL,frontOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.DECREMENT_WRAP},backFunction:A.NOT_EQUAL,backOperation:{fail:w.KEEP,zFail:w.KEEP,zPass:w.DECREMENT_WRAP},reference:0,mask:E.CLASSIFICATION_MASK},stencilMask:E.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};return x.prototype.update=function(t){if(r(this._primitive)||r(this.geometryInstances)){var n=this.appearance;r(n)&&r(n.material)&&n.material.update(t.context);var o=this,u=this._primitiveOptions;if(!r(this._primitive)){var c,h,p,f,m=l(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],_=m.length,g=!1,v=!0,y=!1,S=!1;for(_>0&&(p=m[0].attributes,y=T.hasAttributesForSphericalExtents(p),S=T.hasAttributesForTextureCoordinatePlanes(p),f=p.color),c=0;c<_;c++){h=m[c];var E=h.attributes.color;r(E)&&(g=!0),v=v&&r(E)&&e.equals(f,E)}if(!v&&!y&&!S)throw new a("All GeometryInstances must have the same color attribute except via GroundPrimitives");g&&!r(n)&&(n=new C({flat:!0}),this.appearance=n),this._usePickOffsets=!y&&!S,this._hasSphericalExtentsAttribute=y,this._hasPlanarExtentsAttributes=S,this._hasPerColorAttribute=g;var A=new Array(_);for(c=0;c<_;++c)h=m[c],A[c]=new s({geometry:h.geometry,attributes:h.attributes,modelMatrix:h.modelMatrix,id:h.id,pickPrimitive:i(this._pickPrimitive,o)});u.appearance=n,u.geometryInstances=A,r(this._createBoundingVolumeFunction)&&(u._createBoundingVolumeFunction=function(e,t){o._createBoundingVolumeFunction(e,t)}),u._createRenderStatesFunction=function(e,t,i,r){M(o,t)},u._createShaderProgramFunction=function(e,t,i){O(o,t)},u._createCommandsFunction=function(e,t,i,r,n,a,s){F(o,void 0,void 0,!0,!1,a,s)},r(this._updateAndQueueCommandsFunction)?u._updateAndQueueCommandsFunction=function(e,t,i,r,n,a,s,l){o._updateAndQueueCommandsFunction(e,t,i,r,n,a,s,l)}:u._updateAndQueueCommandsFunction=function(e,t,i,r,n,a,s,l){V(o,t,i,r,n,a,s,l)},this._primitive=new b(u),this._primitive.readyPromise.then(function(e){o._ready=!0,o.releaseGeometryInstances&&(o.geometryInstances=void 0);var t=e._error;r(t)?o._readyPromise.reject(t):o._readyPromise.resolve(o)})}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilPreloadPass=d.fromCache(P(!1,!1)),this._rsStencilPreloadPass3DTiles=d.fromCache(P(!1,!0)),this._rsStencilDepthPass=d.fromCache(D(!1,!1)),this._rsStencilDepthPass3DTiles=d.fromCache(D(!1,!0)),this._rsColorPass=d.fromCache(I(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilPreloadPass=d.fromCache(P(!0,!1)),this._rsStencilPreloadPass3DTiles=d.fromCache(P(!0,!0)),this._rsStencilDepthPass=d.fromCache(D(!0,!1)),this._rsStencilDepthPass3DTiles=d.fromCache(D(!0,!0)),this._rsColorPass=d.fromCache(I(!0))),this._primitive.appearance!==n&&(this._primitive.appearance=n),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(t)}},x.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,o(this)},x}),define("Scene/GroundPrimitive",["../Core/ApproximateTerrainHeights","../Core/BoundingSphere","../Core/buildModuleUrl","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/GeographicTilingScheme","../Core/GeometryInstance","../Core/isArray","../Core/Math","../Core/OrientedBoundingBox","../Core/Rectangle","../Core/RectangleGeometry","../Core/Resource","../Renderer/DrawCommand","../Renderer/Pass","../ThirdParty/when","./ClassificationPrimitive","./ClassificationType","./PerInstanceColorAppearance","./SceneMode","./ShadowVolumeAppearance"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P){"use strict";function D(t){t=l(t,l.EMPTY_OBJECT);var i=t.appearance,r=t.geometryInstances;if(!u(i)&&u(r))for(var n=m(r)?r:[r],o=n.length,a=0;a<o;a++){var s=n[a].attributes;if(u(s)&&u(s.color)){i=new w({flat:!0});break}}this.appearance=i,this.geometryInstances=t.geometryInstances,this.show=l(t.show,!0),this.classificationType=l(t.classificationType,A.BOTH),this.debugShowBoundingVolume=l(t.debugShowBoundingVolume,!1),this.debugShowShadowVolume=l(t.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1,this._readyPromise=T.defer(),this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=e._defaultMaxTerrainHeight,this._minTerrainHeight=e._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;var c=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:l(t.vertexCacheOptimize,!1),interleave:l(t.interleave,!1),releaseGeometryInstances:l(t.releaseGeometryInstances,!0),allowPicking:l(t.allowPicking,!0),asynchronous:l(t.asynchronous,!0),compressVertices:l(t.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:c,_extruded:!0,_uniformMap:k}}function I(e){return function(t,i){var r=i.maximumRadius,n=r/Math.cos(.5*t)-r;return e._maxHeight+n}}function M(e){return function(t,i){return e._minHeight}}function R(e,t){var i=e.mapProjection.ellipsoid;{if(u(t.attributes)&&u(t.attributes.position3DHigh)){for(var r=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,a=r.length,s=Number.POSITIVE_INFINITY,l=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,d=Number.NEGATIVE_INFINITY,h=0;h<a;h+=3){var p=n.unpack(r,h,V),f=n.unpack(o,h,U),m=n.add(p,f,G),_=i.cartesianToCartographic(m,H),g=_.latitude,v=_.longitude;s=Math.min(s,g),l=Math.min(l,v),c=Math.max(c,g),d=Math.max(d,v)}var y=W;return y.north=c,y.south=s,y.east=d,y.west=l,y}if(u(t.rectangle))return t.rectangle}}function O(t,i,r){var n=e.getMinimumMaximumHeights(i,r);t._minTerrainHeight=n.minimumTerrainHeight,t._maxTerrainHeight=n.maximumTerrainHeight}function L(e,i,r){var o=i.mapProjection.ellipsoid,a=R(i,r);if(a.width<_.PI){var s=g.fromRectangle(a,e._maxHeight,e._minHeight,o);e._boundingVolumes.push(s)}else{var l=r.attributes.position3DHigh.values,u=r.attributes.position3DLow.values;e._boundingVolumes.push(t.fromEncodedCartesianVertices(l,u))}if(!i.scene3DOnly){var c=i.mapProjection,d=t.fromRectangleWithHeights2D(a,c,e._maxHeight,e._minHeight);n.fromElements(d.center.z,d.center.x,d.center.y,d.center),e._boundingVolumes2D.push(d)}}function N(e,t){return Math.floor(e%t/3)}function F(e,t,i,r,n,o,a){var s=e._primitive;i.mode!==x.SCENE3D&&t.shaderProgram===s._spColor&&s._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=r,t.boundingVolume=o,t.cull=n,t.debugShowBoundingVolume=a,i.commandList.push(t)}function B(e,t,i,r,n,o){var a=e._primitive;i.mode!==x.SCENE3D&&t.shaderProgram===a._spPick&&a._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=r,t.boundingVolume=o,t.cull=n,i.commandList.push(t)}function z(e,t,i,r,n,o,a,s){var l;l=t.mode===x.SCENE3D?e._boundingVolumes:e._boundingVolumes2D;var u,c,d,h=e.classificationType,p=h!==A.CESIUM_3D_TILE,f=h!==A.TERRAIN,m=t.passes,_=e._primitive;if(m.render){var g=i.length;for(u=0;u<g;++u)c=l[N(u,g)],p&&(d=i[u],F(e,d,t,n,o,c,a)),f&&(d=i[u].derivedCommands.tileset,F(e,d,t,n,o,c,a));if(t.invertClassification){var v=_._commandsIgnoreShow,y=v.length;for(u=0;u<y;++u)c=l[Math.floor(u/2)],d=v[u],F(e,d,t,n,o,c,a)}}if(m.pick){var C,b=r.length;for(e._useFragmentCulling||(C=_._primitive._pickOffsets),u=0;u<b;++u){if(c=l[N(u,b)],!e._useFragmentCulling){c=l[C[N(u,b)].index]}p&&(d=r[u],B(e,d,t,n,o,c)),f&&(d=r[u].derivedCommands.tileset,B(e,d,t,n,o,c))}}}var k={u_globeMinimumAltitude:function(){return 55e3}};c(D.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}}}),D.isSupported=E.isSupported;var V=new n,U=new n,G=new n,H=new o,W=new v;return D.initializeTerrainHeights=function(){return e.initialize()},D.prototype.update=function(t){if(u(this._primitive)||u(this.geometryInstances)){if(!e.initialized)return void D.initializeTerrainHeights();var i=this,r=this._classificationPrimitiveOptions;if(!u(this._primitive)){var n,o,a,s,l,c=t.mapProjection.ellipsoid,d=m(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],h=d.length,p=new Array(h);for(s=0;s<h;++s){n=d[s],o=n.geometry;var _=R(t,o);u(l)?u(_)&&v.union(l,_,l):l=v.clone(_);var g=n.id;if(u(g)&&u(_)){var y=e.getBoundingSphere(_,c);this._boundingSpheresKeys.push(g),this._boundingSpheres.push(y)}a=o.constructor,!u(a)||u(a.createShadowVolume)}O(this,l,c);var C=t.terrainExaggeration;this._minHeight=this._minTerrainHeight*C,this._maxHeight=this._maxTerrainHeight*C;var b=D._supportsMaterials(t.context);if(this._useFragmentCulling=b,b){var S,T=!0;for(s=0;s<h;++s)if(n=d[s],o=n.geometry,l=R(t,o),P.shouldUseSphericalCoordinates(l)){T=!1;break}for(s=0;s<h;++s){n=d[s],o=n.geometry,a=o.constructor;var A=R(t,o),w=o.textureCoordinateRotationPoints;S=T?P.getPlanarTextureCoordinateAttributes(A,w,c,t.mapProjection,this._maxHeight):P.getSphericalExtentGeometryInstanceAttributes(A,w,c,t.mapProjection);var x=n.attributes;for(var N in x)x.hasOwnProperty(N)&&(S[N]=x[N]);p[s]=new f({geometry:a.createShadowVolume(o,M(this),I(this)),attributes:S,id:n.id})}}else for(s=0;s<h;++s)n=d[s],o=n.geometry,a=o.constructor,p[s]=new f({geometry:a.createShadowVolume(o,M(this),I(this)),attributes:n.attributes,id:n.id});r.geometryInstances=p,r.appearance=this.appearance,r._createBoundingVolumeFunction=function(e,t){L(i,e,t)},r._updateAndQueueCommandsFunction=function(e,t,r,n,o,a,s,l){z(i,t,r,n,o,a,s,l)},this._primitive=new E(r),this._primitive.readyPromise.then(function(e){i._ready=!0,i.releaseGeometryInstances&&(i.geometryInstances=void 0);var t=e._error;u(t)?i._readyPromise.reject(t):i._readyPromise.resolve(i)})}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(t)}},D.prototype.getBoundingSphere=function(e){var t=this._boundingSpheresKeys.indexOf(e);if(-1!==t)return this._boundingSpheres[t]},D.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)},D.prototype.isDestroyed=function(){return!1},D.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),d(this)},D._supportsMaterials=function(e){return e.depthTexture},D.supportsMaterials=function(e){return D._supportsMaterials(e.frameState.context)},D}),define("Shaders/PolylineShadowVolumeVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\n#ifndef COLUMBUS_VIEW_2D\nattribute vec4 startHiAndForwardOffsetX;\nattribute vec4 startLoAndForwardOffsetY;\nattribute vec4 startNormalAndForwardOffsetZ;\nattribute vec4 endNormalAndTextureCoordinateNormalizationX;\nattribute vec4 rightNormalAndTextureCoordinateNormalizationY;\n#else\nattribute vec4 startHiLo2D;\nattribute vec4 offsetAndRight2D;\nattribute vec4 startEndNormals2D;\nattribute vec2 texcoordNormalization2D;\n#endif\nattribute float batchId;\nvarying vec4 v_startPlaneNormalEcAndHalfWidth;\nvarying vec4 v_endPlaneNormalEcAndBatchId;\nvarying vec4 v_rightPlaneEC;\nvarying vec4 v_endEcAndStartEcX;\nvarying vec4 v_texcoordNormalizationAndStartEcYZ;\n#ifdef WIDTH_VARYING\nvarying float v_width;\n#endif\n#ifdef ANGLE_VARYING\nvarying float v_polylineAngle;\n#endif\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#endif\nvoid main()\n{\n#ifdef COLUMBUS_VIEW_2D\nvec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz;\nvec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy);\nvec3 ecEnd = forwardDirectionEC + ecStart;\nforwardDirectionEC = normalize(forwardDirectionEC);\nv_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);\nv_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);\nvec4 startPlaneEC;\nstartPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);\nstartPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);\nvec4 endPlaneEC;\nendPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);\nendPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);\nv_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x);\nv_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y;\n#else // COLUMBUS_VIEW_2D\nvec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz;\nvec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w);\nvec3 ecEnd = ecStart + offset;\nvec3 forwardDirectionEC = normalize(offset);\nvec4 startPlaneEC;\nstartPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;\nstartPlaneEC.w = -dot(startPlaneEC.xyz, ecStart);\nvec4 endPlaneEC;\nendPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;\nendPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd);\nv_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;\nv_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart);\nv_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w);\nv_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w;\n#endif // COLUMBUS_VIEW_2D\nv_endEcAndStartEcX.xyz = ecEnd;\nv_endEcAndStartEcX.w = ecStart.x;\nv_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz;\n#ifdef PER_INSTANCE_COLOR\nv_color = czm_batchTable_color(batchId);\n#endif // PER_INSTANCE_COLOR\nvec4 positionRelativeToEye = czm_computePosition();\nvec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye;\nfloat absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz));\nfloat absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz));\nvec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz);\nvec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection));\nvec3 normalEC = normalize(cross(planeDirection, upOrDown));\nupOrDown = cross(forwardDirectionEC, normalEC);\nupOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown;\nupOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown;\nupOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown;\npositionEC.xyz += upOrDown;\nv_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y));\nfloat width = czm_batchTable_width(batchId);\n#ifdef WIDTH_VARYING\nv_width = width;\n#endif\nv_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz;\nv_startPlaneNormalEcAndHalfWidth.w = width * 0.5;\nv_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz;\nv_endPlaneNormalEcAndBatchId.w = batchId;\nwidth = width * max(0.0, czm_metersPerPixel(positionEC));\nwidth = width / dot(normalEC, v_rightPlaneEC.xyz);\n#ifdef COLUMBUS_VIEW_2D\nnormalEC *= sign(texcoordNormalization2D.x);\n#else\nnormalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);\n#endif\npositionEC.xyz += width * normalEC;\ngl_Position = czm_depthClampFarPlane(czm_projection * positionEC);\n#ifdef ANGLE_VARYING\nvec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y));\napproxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);\nv_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);\n#endif\n}\n"}),define("Shaders/PolylineShadowVolumeFS",[],function(){"use strict";return"#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\nvarying vec4 v_startPlaneNormalEcAndHalfWidth;\nvarying vec4 v_endPlaneNormalEcAndBatchId;\nvarying vec4 v_rightPlaneEC;\nvarying vec4 v_endEcAndStartEcX;\nvarying vec4 v_texcoordNormalizationAndStartEcYZ;\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#endif\nvoid main(void)\n{\nfloat logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture2D(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)));\nvec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw);\nif (logDepthOrDepth == 0.0) {\n#ifdef DEBUG_SHOW_VOLUME\ngl_FragColor = vec4(1.0, 0.0, 0.0, 0.5);\nreturn;\n#else // DEBUG_SHOW_VOLUME\ndiscard;\n#endif // DEBUG_SHOW_VOLUME\n}\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);\neyeCoordinate /= eyeCoordinate.w;\nfloat halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate);\nfloat widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz);\nfloat distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz);\nfloat distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz);\nif (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) {\n#ifdef DEBUG_SHOW_VOLUME\ngl_FragColor = vec4(1.0, 0.0, 0.0, 0.5);\nreturn;\n#else // DEBUG_SHOW_VOLUME\ndiscard;\n#endif // DEBUG_SHOW_VOLUME\n}\nvec3 alignedPlaneNormal;\nalignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz);\nalignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));\ndistanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz);\nalignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz);\nalignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz));\ndistanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz);\n#ifdef PER_INSTANCE_COLOR\ngl_FragColor = v_color;\n#else // PER_INSTANCE_COLOR\nfloat s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0);\ns = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y;\nfloat t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth);\nczm_materialInput materialInput;\nmaterialInput.s = s;\nmaterialInput.st = vec2(s, t);\nmaterialInput.str = vec3(s, t, 0.0);\nczm_material material = czm_getMaterial(materialInput);\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#endif // PER_INSTANCE_COLOR\nczm_writeDepthClampedToFarPlane();\n}\n"}),define("Shaders/PolylineShadowVolumeMorphVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec4 startHiAndForwardOffsetX;\nattribute vec4 startLoAndForwardOffsetY;\nattribute vec4 startNormalAndForwardOffsetZ;\nattribute vec4 endNormalAndTextureCoordinateNormalizationX;\nattribute vec4 rightNormalAndTextureCoordinateNormalizationY;\nattribute vec4 startHiLo2D;\nattribute vec4 offsetAndRight2D;\nattribute vec4 startEndNormals2D;\nattribute vec2 texcoordNormalization2D;\nattribute float batchId;\nvarying vec3 v_forwardDirectionEC;\nvarying vec3 v_texcoordNormalizationAndHalfWidth;\nvarying float v_batchId;\n#ifdef WIDTH_VARYING\nvarying float v_width;\n#endif\n#ifdef ANGLE_VARYING\nvarying float v_polylineAngle;\n#endif\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#else\nvarying vec2 v_alignedPlaneDistances;\nvarying float v_texcoordT;\n#endif\nvoid main()\n{\nv_batchId = batchId;\nvec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw));\nvec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz);\nvec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);\nvec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;\nvec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;\nvec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;\nvec4 startPlane2D;\nvec4 startPlane3D;\nstartPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy);\nstartPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz;\nstartPlane2D.w = -dot(startPlane2D.xyz, posEc2D);\nstartPlane3D.w = -dot(startPlane3D.xyz, posEc3D);\nvec4 rightPlane2D;\nvec4 rightPlane3D;\nrightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw);\nrightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz;\nrightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D);\nrightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D);\nposRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0);\nposRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0);\nposRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime);\nposEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz;\nposEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz;\nvec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz;\nvec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w));\nvec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy));\nvec4 endPlane2D;\nvec4 endPlane3D;\nendPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw);\nendPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz;\nendPlane2D.w = -dot(endPlane2D.xyz, posEc2D);\nendPlane3D.w = -dot(endPlane3D.xyz, posEc3D);\nv_forwardDirectionEC = normalize(endEC - startEC);\nvec2 cleanTexcoordNormalization2D;\ncleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x);\ncleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y));\nvec2 cleanTexcoordNormalization3D;\ncleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w);\ncleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w;\ncleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y));\nv_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime);\n#ifdef PER_INSTANCE_COLOR\nv_color = czm_batchTable_color(batchId);\n#else // PER_INSTANCE_COLOR\nv_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC);\nv_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC);\n#endif // PER_INSTANCE_COLOR\n#ifdef WIDTH_VARYING\nfloat width = czm_batchTable_width(batchId);\nfloat halfWidth = width * 0.5;\nv_width = width;\nv_texcoordNormalizationAndHalfWidth.z = halfWidth;\n#else\nfloat halfWidth = 0.5 * czm_batchTable_width(batchId);\nv_texcoordNormalizationAndHalfWidth.z = halfWidth;\n#endif\nvec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow);\nfloat absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz));\nfloat absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz));\nvec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz);\nvec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection));\nvec3 normalEC = normalize(cross(planeDirection, upOrDown));\nvec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D));\ngeodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0);\ngeodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;\npositionEc3D.xyz += geodeticSurfaceNormal;\nnormalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w);\npositionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC;\nvec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);\nabsStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz));\nabsEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz));\nplaneDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz);\nupOrDown = normalize(cross(rightPlane2D.xyz, planeDirection));\nnormalEC = normalize(cross(planeDirection, upOrDown));\ngeodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D));\ngeodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0);\ngeodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT;\npositionEc2D.xyz += geodeticSurfaceNormal;\nnormalEC *= sign(texcoordNormalization2D.x);\n#ifndef PER_INSTANCE_COLOR\nv_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0);\n#endif\npositionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC;\ngl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime);\n#ifdef ANGLE_VARYING\nvec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y));\napproxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y);\nv_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y);\n#endif\n}\n"}),define("Shaders/PolylineShadowVolumeMorphFS",[],function(){"use strict";return"varying vec3 v_forwardDirectionEC;\nvarying vec3 v_texcoordNormalizationAndHalfWidth;\nvarying float v_batchId;\n#ifdef PER_INSTANCE_COLOR\nvarying vec4 v_color;\n#else\nvarying vec2 v_alignedPlaneDistances;\nvarying float v_texcoordT;\n#endif\nfloat rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) {\nreturn (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction);\n}\nvoid main(void)\n{\nvec4 eyeCoordinate = gl_FragCoord;\neyeCoordinate /= eyeCoordinate.w;\n#ifdef PER_INSTANCE_COLOR\ngl_FragColor = v_color;\n#else // PER_INSTANCE_COLOR\nfloat distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x);\nfloat distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y);\ndistanceFromStart = max(0.0, distanceFromStart);\ndistanceFromEnd = max(0.0, distanceFromEnd);\nfloat s = distanceFromStart / (distanceFromStart + distanceFromEnd);\ns = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y;\nczm_materialInput materialInput;\nmaterialInput.s = s;\nmaterialInput.st = vec2(s, v_texcoordT);\nmaterialInput.str = vec3(s, v_texcoordT, 0.0);\nczm_material material = czm_getMaterial(materialInput);\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#endif // PER_INSTANCE_COLOR\n}\n"}),define("Shaders/Appearances/PolylineColorAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 prevPosition3DHigh;\nattribute vec3 prevPosition3DLow;\nattribute vec3 nextPosition3DHigh;\nattribute vec3 nextPosition3DLow;\nattribute vec2 expandAndWidth;\nattribute vec4 color;\nattribute float batchId;\nvarying vec4 v_color;\nvoid main()\n{\nfloat expandDir = expandAndWidth.x;\nfloat width = abs(expandAndWidth.y) + 0.5;\nbool usePrev = expandAndWidth.y < 0.0;\nvec4 p = czm_computePosition();\nvec4 prev = czm_computePrevPosition();\nvec4 next = czm_computeNextPosition();\nv_color = color;\nfloat angle;\nvec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle);\ngl_Position = czm_viewportOrthographic * positionWC;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(czm_modelViewProjectionRelativeToEye * p);\n#endif\n}\n"}),define("Shaders/PolylineCommon",[],function(){"use strict" -;return"void clipLineSegmentToNearPlane(\nvec3 p0,\nvec3 p1,\nout vec4 positionWC,\nout bool clipped,\nout bool culledByNearPlane)\n{\nculledByNearPlane = false;\nclipped = false;\nvec3 p1ToP0 = p1 - p0;\nfloat magnitude = length(p1ToP0);\nvec3 direction = normalize(p1ToP0);\nfloat endPoint0Distance = -(czm_currentFrustum.x + p0.z);\nfloat denominator = -direction.z;\nif (endPoint0Distance < 0.0 && abs(denominator) < czm_epsilon7)\n{\nculledByNearPlane = true;\n}\nelse if (endPoint0Distance < 0.0 && abs(denominator) > czm_epsilon7)\n{\nfloat t = (czm_currentFrustum.x + p0.z) / denominator;\nif (t < 0.0 || t > magnitude)\n{\nculledByNearPlane = true;\n}\nelse\n{\np0 = p0 + t * direction;\nclipped = true;\n}\n}\npositionWC = czm_eyeToWindowCoordinates(vec4(p0, 1.0));\n}\nvec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle)\n{\nvec4 endPointWC, p0, p1;\nbool culledByNearPlane, clipped;\n#ifdef POLYLINE_DASH\nvec4 positionWindow = czm_eyeToWindowCoordinates(positionEC);\nvec4 previousWindow = czm_eyeToWindowCoordinates(prevEC);\nvec4 nextWindow = czm_eyeToWindowCoordinates(nextEC);\nvec2 lineDir;\nif (usePrevious) {\nlineDir = normalize(positionWindow.xy - previousWindow.xy);\n}\nelse {\nlineDir = normalize(nextWindow.xy - positionWindow.xy);\n}\nangle = atan(lineDir.x, lineDir.y) - 1.570796327;\nangle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour;\n#endif\nclipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, p0, clipped, culledByNearPlane);\nclipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, p1, clipped, culledByNearPlane);\nclipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, endPointWC, clipped, culledByNearPlane);\nif (culledByNearPlane)\n{\nreturn vec4(0.0, 0.0, 0.0, 1.0);\n}\nvec2 prevWC = normalize(p0.xy - endPointWC.xy);\nvec2 nextWC = normalize(p1.xy - endPointWC.xy);\nfloat expandWidth = width * 0.5;\nvec2 direction;\n#ifdef CLIP_POLYLINE\nif (clipped)\n{\nif (prevEC.z - positionEC.z < 0.0)\n{\ndirection = vec2(prevWC.y, -prevWC.x);\n}\nelse\n{\ndirection = vec2(-prevWC.y, prevWC.x);\n}\n}\nelse\n#endif\nif (czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) || czm_equalsEpsilon(prevWC, -nextWC, czm_epsilon1))\n{\ndirection = vec2(-nextWC.y, nextWC.x);\n}\nelse if (czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1))\n{\ndirection = vec2(prevWC.y, -prevWC.x);\n}\nelse\n{\nvec2 normal = vec2(-nextWC.y, nextWC.x);\ndirection = normalize((nextWC + prevWC) * 0.5);\nif (dot(direction, normal) < 0.0)\n{\ndirection = -direction;\n}\nfloat sinAngle = abs(direction.x * nextWC.y - direction.y * nextWC.x);\nexpandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0);\n}\nvec2 offset = direction * expandDirection * expandWidth * czm_resolutionScale;\nreturn vec4(endPointWC.xy + offset, -endPointWC.z, 1.0);\n}\nvec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle)\n{\nvec4 positionEC = czm_modelViewRelativeToEye * position;\nvec4 prevEC = czm_modelViewRelativeToEye * previous;\nvec4 nextEC = czm_modelViewRelativeToEye * next;\nreturn getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle);\n}\n"}),define("Scene/PolylineColorAppearance",["../Core/defaultValue","../Core/defineProperties","../Core/FeatureDetection","../Core/VertexFormat","../Shaders/Appearances/PerInstanceFlatColorAppearanceFS","../Shaders/Appearances/PolylineColorAppearanceVS","../Shaders/PolylineCommon","./Appearance"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.translucent,!0),r=l.VERTEX_FORMAT;this.material=void 0,this.translucent=i,this._vertexShaderSource=e(t.vertexShaderSource,u),this._fragmentShaderSource=e(t.fragmentShaderSource,c),this._renderState=s.getDefaultRenderState(i,!1,t.renderState),this._closed=!1,this._vertexFormat=r}var u=a+"\n"+o,c=n;return i.isInternetExplorer()||(u="#define CLIP_POLYLINE \n"+u),t(l.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}}),l.VERTEX_FORMAT=r.POSITION_ONLY,l.prototype.getFragmentShaderSource=s.prototype.getFragmentShaderSource,l.prototype.isTranslucent=s.prototype.isTranslucent,l.prototype.getRenderState=s.prototype.getRenderState,l}),define("Shaders/Appearances/PolylineMaterialAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 prevPosition3DHigh;\nattribute vec3 prevPosition3DLow;\nattribute vec3 nextPosition3DHigh;\nattribute vec3 nextPosition3DLow;\nattribute vec2 expandAndWidth;\nattribute vec2 st;\nattribute float batchId;\nvarying float v_width;\nvarying vec2 v_st;\nvarying float v_polylineAngle;\nvoid main()\n{\nfloat expandDir = expandAndWidth.x;\nfloat width = abs(expandAndWidth.y) + 0.5;\nbool usePrev = expandAndWidth.y < 0.0;\nvec4 p = czm_computePosition();\nvec4 prev = czm_computePrevPosition();\nvec4 next = czm_computeNextPosition();\nv_width = width;\nv_st = st;\nvec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, v_polylineAngle);\ngl_Position = czm_viewportOrthographic * positionWC;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(czm_modelViewProjectionRelativeToEye * p);\n#endif\n}\n"}),define("Shaders/PolylineFS",[],function(){"use strict";return"#ifdef VECTOR_TILE\nuniform vec4 u_highlightColor;\n#endif\nvarying vec2 v_st;\nvoid main()\n{\nczm_materialInput materialInput;\nmaterialInput.s = v_st.s;\nmaterialInput.st = v_st;\nmaterialInput.str = vec3(v_st, 0.0);\nczm_material material = czm_getMaterial(materialInput);\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#ifdef VECTOR_TILE\ngl_FragColor *= u_highlightColor;\n#endif\nczm_writeLogDepth();\n}\n"}),define("Scene/PolylineMaterialAppearance",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/FeatureDetection","../Core/VertexFormat","../Shaders/Appearances/PolylineMaterialAppearanceVS","../Shaders/PolylineCommon","../Shaders/PolylineFS","./Appearance","./Material"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(i){i=e(i,e.EMPTY_OBJECT);var r=e(i.translucent,!0),n=c.VERTEX_FORMAT;this.material=t(i.material)?i.material:u.fromType(u.ColorType),this.translucent=r,this._vertexShaderSource=e(i.vertexShaderSource,d),this._fragmentShaderSource=e(i.fragmentShaderSource,h),this._renderState=l.getDefaultRenderState(r,!1,i.renderState),this._closed=!1,this._vertexFormat=n}var d=a+"\n"+o,h=s;return r.isInternetExplorer()||(d="#define CLIP_POLYLINE \n"+d),i(c.prototype,{vertexShaderSource:{get:function(){var e=this._vertexShaderSource;return-1!==this.material.shaderSource.search(/varying\s+float\s+v_polylineAngle;/g)&&(e="#define POLYLINE_DASH\n"+e),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}}),c.VERTEX_FORMAT=n.POSITION_AND_ST,c.prototype.getFragmentShaderSource=l.prototype.getFragmentShaderSource,c.prototype.isTranslucent=l.prototype.isTranslucent,c.prototype.getRenderState=l.prototype.getRenderState,c}),define("Scene/GroundPolylinePrimitive",["../Core/ApproximateTerrainHeights","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/GeometryInstance","../Core/GeometryInstanceAttribute","../Core/GroundPolylineGeometry","../Core/isArray","../Shaders/PolylineShadowVolumeVS","../Shaders/PolylineShadowVolumeFS","../Shaders/PolylineShadowVolumeMorphVS","../Shaders/PolylineShadowVolumeMorphFS","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../ThirdParty/when","./BlendingState","./ClassificationType","./CullFace","./PolylineColorAppearance","./PolylineMaterialAppearance","./Primitive","./SceneMode","./StencilConstants","./StencilFunction","./StencilOperation"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I){"use strict";function M(e){e=i(e,i.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;var t=e.appearance;r(t)||(t=new A),this.appearance=t,this.show=i(e.show,!0),this.classificationType=i(e.classificationType,S.BOTH),this.debugShowBoundingVolume=i(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=i(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:i(e.interleave,!1),releaseGeometryInstances:i(e.releaseGeometryInstances,!0),allowPicking:i(e.allowPicking,!0),asynchronous:i(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._readyPromise=C.defer(),this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=O(!1),this._renderState3DTiles=O(!0),this._renderStateMorph=g.fromCache({cull:{enabled:!0,face:T.FRONT},depthTest:{enabled:!0},blending:b.ALPHA_BLEND,depthMask:!1})}function R(t,i,n){var o=i.context,a=t._primitive,s=a._attributeLocations,l=a._batchTable.getVertexShaderCallback()(d);l=w._appendShowToShader(a,l),l=w._appendDistanceDisplayConditionToShader(a,l),l=w._modifyShaderPosition(t,l,i.scene3DOnly);var u=a._batchTable.getVertexShaderCallback()(p);u=w._appendShowToShader(a,u),u=w._appendDistanceDisplayConditionToShader(a,u),u=w._modifyShaderPosition(t,u,i.scene3DOnly);var c=a._batchTable.getVertexShaderCallback()(h),m=["ENABLE_GL_POSITION_LOG_DEPTH_AT_HEIGHT","GLOBE_MINIMUM_ALTITUDE "+i.mapProjection.ellipsoid.minimumRadius.toFixed(1)],_="",g="";r(n.material)?(g=r(n.material)?n.material.shaderSource:"",-1!==g.search(/varying\s+float\s+v_polylineAngle;/g)&&m.push("ANGLE_VARYING"),-1!==g.search(/varying\s+float\s+v_width;/g)&&m.push("WIDTH_VARYING")):_="PER_INSTANCE_COLOR",m.push(_);var C=t.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",_]:[_],b=new y({defines:m,sources:[l]}),S=new y({defines:C,sources:[g,c]});t._sp=v.replaceCache({context:o,shaderProgram:a._sp,vertexShaderSource:b,fragmentShaderSource:S,attributeLocations:s});var T=o.shaderCache.getDerivedShaderProgram(t._sp,"2dColor");if(!r(T)){var E=new y({defines:m.concat(["COLUMBUS_VIEW_2D"]),sources:[l]});T=o.shaderCache.createDerivedShaderProgram(t._sp,"2dColor",{context:o,shaderProgram:t._sp2D,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:s})}t._sp2D=T;var A=o.shaderCache.getDerivedShaderProgram(t._sp,"MorphColor");if(!r(A)){var x=new y({defines:m.concat(["MAX_TERRAIN_HEIGHT "+e._defaultMaxTerrainHeight.toFixed(1)]),sources:[u]});c=a._batchTable.getVertexShaderCallback()(f);var P=new y({defines:C,sources:[g,c]});A=o.shaderCache.createDerivedShaderProgram(t._sp,"MorphColor",{context:o,shaderProgram:t._spMorph,vertexShaderSource:x,fragmentShaderSource:P,attributeLocations:s})}t._spMorph=A}function O(e){return g.fromCache({cull:{enabled:!0},blending:b.ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:D.EQUAL,frontOperation:{fail:I.KEEP,zFail:I.KEEP,zPass:I.KEEP},backFunction:D.EQUAL,backOperation:{fail:I.KEEP,zFail:I.KEEP,zPass:I.KEEP},reference:P.CESIUM_3D_TILE_MASK,mask:P.CESIUM_3D_TILE_MASK}})}function L(e,t,i,n,o,a){var s=e._primitive,l=s._va.length;o.length=l,a.length=l;for(var u=t instanceof E,c=u?{}:i._uniforms,d=s._batchTable.getUniformMapCallback()(c),h=0;h<l;h++){var p=s._va[h],f=o[h];r(f)||(f=o[h]=new m({owner:e,primitiveType:s._primitiveType})),f.vertexArray=p,f.renderState=e._renderState,f.shaderProgram=e._sp,f.uniformMap=d,f.pass=_.TERRAIN_CLASSIFICATION,f.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";var g=m.shallowClone(f,f.derivedCommands.tileset);g.renderState=e._renderState3DTiles,g.pass=_.CESIUM_3D_TILE_CLASSIFICATION,f.derivedCommands.tileset=g;var v=m.shallowClone(f,f.derivedCommands.color2D);v.shaderProgram=e._sp2D,f.derivedCommands.color2D=v;var y=m.shallowClone(g,g.derivedCommands.color2D);y.shaderProgram=e._sp2D,g.derivedCommands.color2D=y;var C=m.shallowClone(f,f.derivedCommands.colorMorph);C.renderState=e._renderStateMorph,C.shaderProgram=e._spMorph,C.pickId="czm_batchTable_pickColor(v_batchId)",f.derivedCommands.colorMorph=C}}function N(e,t,i,r,n,o,a){i.mode===x.MORPHING?t=t.derivedCommands.colorMorph:i.mode!==x.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=r,t.boundingVolume=o,t.cull=n,t.debugShowBoundingVolume=a,i.commandList.push(t)}function F(e,t,i,n,o,a,s){var l=e._primitive;w._updateBoundingVolumes(l,t,o);var u;t.mode===x.SCENE3D?u=l._boundingSphereWC:t.mode===x.COLUMBUS_VIEW?u=l._boundingSphereCV:t.mode===x.SCENE2D&&r(l._boundingSphere2D)?u=l._boundingSphere2D:r(l._boundingSphereMorph)&&(u=l._boundingSphereMorph);var c,d=t.mode===x.MORPHING,h=e.classificationType,p=h!==S.CESIUM_3D_TILE,f=h!==S.TERRAIN&&!d,m=t.passes;if(m.render||m.pick&&l.allowPicking)for(var _=i.length,g=0;g<_;++g){var v=u[g];p&&(c=i[g],N(e,c,t,o,a,v,s)),f&&(c=i[g].derivedCommands.tileset,N(e,c,t,o,a,v,s))}}return n(M.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}}),M.initializeTerrainHeights=function(){return e.initialize()},M.prototype.update=function(i){if(r(this._primitive)||r(this.geometryInstances)){if(!e.initialized)return void M.initializeTerrainHeights();var n,o=this,d=this._primitiveOptions;if(!r(this._primitive)){var h,p=c(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],f=p.length,m=new Array(f);for(n=0;n<f;++n)if(h=p[n].attributes,!r(h)||!r(h.color)){this._hasPerInstanceColors=!1;break}for(n=0;n<f;++n){var _=p[n];h={};var g=_.attributes;for(var v in g)g.hasOwnProperty(v)&&(h[v]=g[v]);r(h.width)||(h.width=new l({componentDatatype:t.UNSIGNED_BYTE,componentsPerAttribute:1,value:[_.geometry.width]})),_.geometry._scene3DOnly=i.scene3DOnly,u.setProjectionAndEllipsoid(_.geometry,i.mapProjection),m[n]=new s({geometry:_.geometry,attributes:h,id:_.id,pickPrimitive:o})}d.geometryInstances=m,d.appearance=this.appearance,d._createShaderProgramFunction=function(e,t,i){R(o,t,i)},d._createCommandsFunction=function(e,t,i,r,n,a,s){L(o,t,i,r,a,s)},d._updateAndQueueCommandsFunction=function(e,t,i,r,n,a,s,l){F(o,t,i,r,n,a,s)},this._primitive=new w(d),this._primitive.readyPromise.then(function(e){o._ready=!0,o.releaseGeometryInstances&&(o.geometryInstances=void 0);var t=e._error;r(t)?o._readyPromise.reject(t):o._readyPromise.resolve(o)})}if(this.appearance instanceof E&&!this._hasPerInstanceColors)throw new a("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(i)}},M.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)},M.isSupported=function(e){return e.frameState.context.depthTexture},M.prototype.isDestroyed=function(){return!1},M.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,o(this)},M}),define("DataSources/ImageMaterialProperty",["../Core/Cartesian2","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=i(e,i.EMPTY_OBJECT),this._definitionChanged=new o,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}var u=new e(1,1),c=t.WHITE;return n(l.prototype,{isConstant:{get:function(){return s.isConstant(this._image)&&s.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:a("image"),repeat:a("repeat"),color:a("color"),transparent:a("transparent")}),l.prototype.getType=function(e){return"Image"},l.prototype.getValue=function(e,t){return r(t)||(t={}),t.image=s.getValueOrUndefined(this._image,e),t.repeat=s.getValueOrClonedDefault(this._repeat,e,u,t.repeat),t.color=s.getValueOrClonedDefault(this._color,e,c,t.color),s.getValueOrDefault(this._transparent,e,!1)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t},l.prototype.equals=function(e){return this===e||e instanceof l&&s.equals(this._image,e._image)&&s.equals(this._color,e._color)&&s.equals(this._transparent,e._transparent)&&s.equals(this._repeat,e._repeat)},l}),define("DataSources/createMaterialPropertyDescriptor",["../Core/Color","../Core/DeveloperError","../Core/Resource","./ColorMaterialProperty","./createPropertyDescriptor","./ImageMaterialProperty"],function(e,t,i,r,n,o){"use strict";function a(t){if(t instanceof e)return new r(t);if("string"==typeof t||t instanceof i||t instanceof HTMLCanvasElement||t instanceof HTMLVideoElement){var n=new o;return n.image=t,n}}function s(e,t){return n(e,t,a)}return s}),define("DataSources/BoxGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._heightReference=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},heightReference:a("heightReference"),show:a("show"),dimensions:a("dimensions"),material:o("material"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.heightReference=this.heightReference,e.dimensions=this.dimensions,e.show=this.show,e.material=this.material,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.heightReference=e(this.heightReference,t.heightReference),this.dimensions=e(this.dimensions,t.dimensions),this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/PositionProperty",["../Core/Cartesian3","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Matrix3","../Core/ReferenceFrame","../Core/Transforms"],function(e,t,i,r,n,o,a){"use strict";function s(){r.throwInstantiationError()}i(s.prototype,{isConstant:{get:r.throwInstantiationError},definitionChanged:{get:r.throwInstantiationError},referenceFrame:{get:r.throwInstantiationError}}),s.prototype.getValue=r.throwInstantiationError,s.prototype.getValueInReferenceFrame=r.throwInstantiationError,s.prototype.equals=r.throwInstantiationError;var l=new n;return s.convertToReferenceFrame=function(i,r,s,u,c){if(!t(r))return r;if(t(c)||(c=new e),s===u)return e.clone(r,c);var d=a.computeIcrfToFixedMatrix(i,l);return t(d)||(d=a.computeTemeToPseudoFixedMatrix(i,l)),s===o.INERTIAL?n.multiplyByVector(d,r,c):s===o.FIXED?n.multiplyByVector(n.transpose(d,l),r,c):void 0},s}),define("DataSources/ConstantPositionProperty",["../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/ReferenceFrame","./PositionProperty"],function(e,t,i,r,n,o,a,s){"use strict";function l(i,r){this._definitionChanged=new o,this._value=e.clone(i),this._referenceFrame=t(r,a.FIXED)}return r(l.prototype,{isConstant:{get:function(){return!i(this._value)||this._referenceFrame===a.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}}),l.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,a.FIXED,t)},l.prototype.setValue=function(t,r){var n=!1;e.equals(this._value,t)||(n=!0,this._value=e.clone(t)),i(r)&&this._referenceFrame!==r&&(n=!0,this._referenceFrame=r),n&&this._definitionChanged.raiseEvent(this)},l.prototype.getValueInReferenceFrame=function(e,t,i){return s.convertToReferenceFrame(e,this._value,this._referenceFrame,t,i)},l.prototype.equals=function(t){return this===t||t instanceof l&&e.equals(this._value,t._value)&&this._referenceFrame===t._referenceFrame},l}),define("DataSources/CorridorGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),material:o("material"),positions:a("positions"),height:a("height"),heightReference:a("heightReference"),extrudedHeight:a("extrudedHeight"),extrudedHeightReference:a("extrudedHeightReference"),granularity:a("granularity"),width:a("width"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),cornerType:a("cornerType"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition"),classificationType:a("classificationType"),zIndex:a("zIndex")}),s.prototype.clone=function(e){return t(e)?(e.show=this.show,e.material=this.material,e.positions=this.positions,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.granularity=this.granularity,e.width=this.width,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.cornerType=this.cornerType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new s(this)},s.prototype.merge=function(t){this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.positions=e(this.positions,t.positions),this.height=e(this.height,t.height),this.heightReference=e(this.heightReference,t.heightReference),this.extrudedHeight=e(this.extrudedHeight,t.extrudedHeight),this.extrudedHeightReference=e(this.extrudedHeightReference,t.extrudedHeightReference),this.granularity=e(this.granularity,t.granularity),this.width=e(this.width,t.width),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.cornerType=e(this.cornerType,t.cornerType),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.classificationType=e(this.classificationType,t.classificationType),this.zIndex=e(this.zIndex,t.zIndex)},s}),define("DataSources/createRawPropertyDescriptor",["./createPropertyDescriptor"],function(e){"use strict";function t(e){return e}function i(i,r){return e(i,r,t)}return i}),define("DataSources/CylinderGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._heightReference=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},heightReference:a("heightReference"),length:a("length"),topRadius:a("topRadius"),bottomRadius:a("bottomRadius"),numberOfVerticalLines:a("numberOfVerticalLines"),slices:a("slices"),show:a("show"),material:o("material"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.heightReference=this.heightReference,e.bottomRadius=this.bottomRadius,e.length=this.length,e.topRadius=this.topRadius,e.show=this.show,e.material=this.material,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.heightReference=e(this.heightReference,t.heightReference),this.bottomRadius=e(this.bottomRadius,t.bottomRadius),this.length=e(this.length,t.length),this.topRadius=e(this.topRadius,t.topRadius),this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.numberOfVerticalLines=e(this.numberOfVerticalLines,t.numberOfVerticalLines),this.slices=e(this.slices,t.slices),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/EllipseGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},semiMajorAxis:a("semiMajorAxis"),semiMinorAxis:a("semiMinorAxis"),rotation:a("rotation"),show:a("show"),material:o("material"),height:a("height"),heightReference:a("heightReference"),extrudedHeight:a("extrudedHeight"),extrudedHeightReference:a("extrudedHeightReference"),granularity:a("granularity"),stRotation:a("stRotation"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),numberOfVerticalLines:a("numberOfVerticalLines"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition"),classificationType:a("classificationType"),zIndex:a("zIndex")}),s.prototype.clone=function(e){return t(e)?(e.rotation=this.rotation,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.show=this.show,e.material=this.material,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.granularity=this.granularity,e.stRotation=this.stRotation,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new s(this)},s.prototype.merge=function(t){this.rotation=e(this.rotation,t.rotation),this.semiMajorAxis=e(this.semiMajorAxis,t.semiMajorAxis), -this.semiMinorAxis=e(this.semiMinorAxis,t.semiMinorAxis),this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.height=e(this.height,t.height),this.heightReference=e(this.heightReference,t.heightReference),this.extrudedHeight=e(this.extrudedHeight,t.extrudedHeight),this.extrudedHeightReference=e(this.extrudedHeightReference,t.extrudedHeightReference),this.granularity=e(this.granularity,t.granularity),this.stRotation=e(this.stRotation,t.stRotation),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.numberOfVerticalLines=e(this.numberOfVerticalLines,t.numberOfVerticalLines),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.classificationType=e(this.classificationType,t.classificationType),this.zIndex=e(this.zIndex,t.zIndex)},s}),define("DataSources/EllipsoidGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._heightReference=void 0,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},heightReference:a("heightReference"),show:a("show"),radii:a("radii"),material:o("material"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),stackPartitions:a("stackPartitions"),slicePartitions:a("slicePartitions"),subdivisions:a("subdivisions"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.heightReference=this.heightReference,e.show=this.show,e.radii=this.radii,e.material=this.material,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.heightReference=e(this.heightReference,t.heightReference),this.show=e(this.show,t.show),this.radii=e(this.radii,t.radii),this.material=e(this.material,t.material),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.stackPartitions=e(this.stackPartitions,t.stackPartitions),this.slicePartitions=e(this.slicePartitions,t.slicePartitions),this.subdivisions=e(this.subdivisions,t.subdivisions),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/LabelGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createPropertyDescriptor"],function(e,t,i,r,n,o){"use strict";function a(t){this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(a.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},text:o("text"),font:o("font"),style:o("style"),fillColor:o("fillColor"),outlineColor:o("outlineColor"),outlineWidth:o("outlineWidth"),horizontalOrigin:o("horizontalOrigin"),verticalOrigin:o("verticalOrigin"),eyeOffset:o("eyeOffset"),heightReference:o("heightReference"),pixelOffset:o("pixelOffset"),scale:o("scale"),show:o("show"),showBackground:o("showBackground"),backgroundColor:o("backgroundColor"),backgroundPadding:o("backgroundPadding"),translucencyByDistance:o("translucencyByDistance"),pixelOffsetScaleByDistance:o("pixelOffsetScaleByDistance"),scaleByDistance:o("scaleByDistance"),distanceDisplayCondition:o("distanceDisplayCondition"),disableDepthTestDistance:o("disableDepthTestDistance")}),a.prototype.clone=function(e){return t(e)?(e.text=this.text,e.font=this.font,e.show=this.show,e.style=this.style,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.scale=this.scale,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.eyeOffset=this.eyeOffset,e.heightReference=this.heightReference,e.pixelOffset=this.pixelOffset,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new a(this)},a.prototype.merge=function(t){this.text=e(this.text,t.text),this.font=e(this.font,t.font),this.show=e(this.show,t.show),this.style=e(this.style,t.style),this.fillColor=e(this.fillColor,t.fillColor),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.showBackground=e(this.showBackground,t.showBackground),this.backgroundColor=e(this.backgroundColor,t.backgroundColor),this.backgroundPadding=e(this.backgroundPadding,t.backgroundPadding),this.scale=e(this.scale,t.scale),this.horizontalOrigin=e(this.horizontalOrigin,t.horizontalOrigin),this.verticalOrigin=e(this.verticalOrigin,t.verticalOrigin),this.eyeOffset=e(this.eyeOffset,t.eyeOffset),this.heightReference=e(this.heightReference,t.heightReference),this.pixelOffset=e(this.pixelOffset,t.pixelOffset),this.translucencyByDistance=e(this.translucencyByDistance,t.translucencyByDistance),this.pixelOffsetScaleByDistance=e(this.pixelOffsetScaleByDistance,t.pixelOffsetScaleByDistance),this.scaleByDistance=e(this.scaleByDistance,t.scaleByDistance),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.disableDepthTestDistance=e(this.disableDepthTestDistance,t.disableDepthTestDistance)},a}),define("DataSources/NodeTransformationProperty",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","../Core/TranslationRotationScale","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a){"use strict";var s=new n,l=function(t){t=e(t,e.EMPTY_OBJECT),this._definitionChanged=new r,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=t.translation,this.rotation=t.rotation,this.scale=t.scale};return i(l.prototype,{isConstant:{get:function(){return a.isConstant(this._translation)&&a.isConstant(this._rotation)&&a.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:o("translation"),rotation:o("rotation"),scale:o("scale")}),l.prototype.getValue=function(e,i){return t(i)||(i=new n),i.translation=a.getValueOrClonedDefault(this._translation,e,s.translation,i.translation),i.rotation=a.getValueOrClonedDefault(this._rotation,e,s.rotation,i.rotation),i.scale=a.getValueOrClonedDefault(this._scale,e,s.scale,i.scale),i},l.prototype.equals=function(e){return this===e||e instanceof l&&a.equals(this._translation,e._translation)&&a.equals(this._rotation,e._rotation)&&a.equals(this._scale,e._scale)},l}),define("DataSources/PropertyBag",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./ConstantProperty","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){return new o(e)}function u(e,t){var i=e._propertyNames,r=t._propertyNames,n=i.length;if(n!==r.length)return!1;for(var o=0;o<n;++o){var a=i[o];if(-1===r.indexOf(a))return!1;if(!s.equals(e[a],t[a]))return!1}return!0}var c=function(e,i){this._propertyNames=[],this._definitionChanged=new n,t(e)&&this.merge(e,i)};return i(c.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){for(var e=this._propertyNames,t=0,i=e.length;t<i;t++)if(!s.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}}),c.prototype.hasProperty=function(e){return-1!==this._propertyNames.indexOf(e)},c.prototype.addProperty=function(i,r,n){this._propertyNames.push(i),Object.defineProperty(this,i,a(i,!0,e(n,l))),t(r)&&(this[i]=r),this._definitionChanged.raiseEvent(this)},c.prototype.removeProperty=function(e){var t=this._propertyNames,i=t.indexOf(e);this._propertyNames.splice(i,1),delete this[e],this._definitionChanged.raiseEvent(this)},c.prototype.getValue=function(e,i){t(i)||(i={});for(var r=this._propertyNames,n=0,o=r.length;n<o;n++){var a=r[n];i[a]=s.getValueOrUndefined(this[a],e,i[a])}return i},c.prototype.merge=function(e,i){for(var r=this._propertyNames,n=t(e._propertyNames)?e._propertyNames:Object.keys(e),o=0,a=n.length;o<a;o++){var s=n[o],l=this[s],u=e[s];void 0===l&&-1===r.indexOf(s)&&this.addProperty(s,void 0,i),void 0!==u&&(void 0!==l?t(l)&&t(l.merge)&&l.merge(u):t(u)&&t(u.merge)&&t(u.clone)?this[s]=u.clone():this[s]=u)}},c.prototype.equals=function(e){return this===e||e instanceof c&&u(this,e)},c}),define("DataSources/ModelGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createPropertyDescriptor","./NodeTransformationProperty","./PropertyBag"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){return new a(e)}function u(e){return new s(e,l)}function c(t){this._show=void 0,this._showSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._runAnimations=void 0,this._clampAnimations=void 0,this._runAnimationsSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(c.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:o("show"),scale:o("scale"),minimumPixelSize:o("minimumPixelSize"),maximumScale:o("maximumScale"),incrementallyLoadTextures:o("incrementallyLoadTextures"),shadows:o("shadows"),uri:o("uri"),runAnimations:o("runAnimations"),clampAnimations:o("clampAnimations"),nodeTransformations:o("nodeTransformations",void 0,u),heightReference:o("heightReference"),distanceDisplayCondition:o("distanceDisplayCondition"),silhouetteColor:o("silhouetteColor"),silhouetteSize:o("silhouetteSize"),color:o("color"),colorBlendMode:o("colorBlendMode"),colorBlendAmount:o("colorBlendAmount"),clippingPlanes:o("clippingPlanes"),imageBasedLightingFactor:o("imageBasedLightingFactor"),lightColor:o("lightColor")}),c.prototype.clone=function(e){return t(e)?(e.show=this.show,e.scale=this.scale,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.shadows=this.shadows,e.uri=this.uri,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.nodeTransformations=this.nodeTransformations,e.heightReference=this._heightReference,e.distanceDisplayCondition=this.distanceDisplayCondition,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.clippingPlanes=this.clippingPlanes,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e):new c(this)},c.prototype.merge=function(i){this.show=e(this.show,i.show),this.scale=e(this.scale,i.scale),this.minimumPixelSize=e(this.minimumPixelSize,i.minimumPixelSize),this.maximumScale=e(this.maximumScale,i.maximumScale),this.incrementallyLoadTextures=e(this.incrementallyLoadTextures,i.incrementallyLoadTextures),this.shadows=e(this.shadows,i.shadows),this.uri=e(this.uri,i.uri),this.runAnimations=e(this.runAnimations,i.runAnimations),this.clampAnimations=e(this.clampAnimations,i.clampAnimations),this.heightReference=e(this.heightReference,i.heightReference),this.distanceDisplayCondition=e(this.distanceDisplayCondition,i.distanceDisplayCondition),this.silhouetteColor=e(this.silhouetteColor,i.silhouetteColor),this.silhouetteSize=e(this.silhouetteSize,i.silhouetteSize),this.color=e(this.color,i.color),this.colorBlendMode=e(this.colorBlendMode,i.colorBlendMode),this.colorBlendAmount=e(this.colorBlendAmount,i.colorBlendAmount),this.clippingPlanes=e(this.clippingPlanes,i.clippingPlanes),this.imageBasedLightingFactor=e(this.imageBasedLightingFactor,i.imageBasedLightingFactor),this.lightColor=e(this.lightColor,i.lightColor);var r=i.nodeTransformations;if(t(r)){var n=this.nodeTransformations;t(n)?n.merge(r):this.nodeTransformations=new s(r,l)}},c}),define("DataSources/PathGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._material=void 0,this._materialSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),material:o("material"),width:a("width"),resolution:a("resolution"),leadTime:a("leadTime"),trailTime:a("trailTime"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.material=this.material,e.width=this.width,e.resolution=this.resolution,e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.material=e(this.material,t.material),this.width=e(this.width,t.width),this.resolution=e(this.resolution,t.resolution),this.show=e(this.show,t.show),this.leadTime=e(this.leadTime,t.leadTime),this.trailTime=e(this.trailTime,t.trailTime),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/PlaneGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),plane:a("plane"),dimensions:a("dimensions"),material:o("material"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.plane=this.plane,e.dimensions=this.dimensions,e.show=this.show,e.material=this.material,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.plane=e(this.plane,t.plane),this.dimensions=e(this.dimensions,t.dimensions),this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/PointGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createPropertyDescriptor"],function(e,t,i,r,n,o){"use strict";function a(t){this._color=void 0,this._colorSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._show=void 0,this._showSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(a.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},color:o("color"),pixelSize:o("pixelSize"),outlineColor:o("outlineColor"),outlineWidth:o("outlineWidth"),show:o("show"),scaleByDistance:o("scaleByDistance"),translucencyByDistance:o("translucencyByDistance"),heightReference:o("heightReference"),distanceDisplayCondition:o("distanceDisplayCondition"),disableDepthTestDistance:o("disableDepthTestDistance")}),a.prototype.clone=function(e){return t(e)?(e.color=this.color,e.pixelSize=this.pixelSize,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.show=this.show,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.heightReference=this.heightReference,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new a(this)},a.prototype.merge=function(t){this.color=e(this.color,t.color),this.pixelSize=e(this.pixelSize,t.pixelSize),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.show=e(this.show,t.show),this.scaleByDistance=e(this.scaleByDistance,t.scaleByDistance),this.translucencyByDistance=e(this._translucencyByDistance,t.translucencyByDistance),this.heightReference=e(this.heightReference,t.heightReference),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.disableDepthTestDistance=e(this.disableDepthTestDistance,t.disableDepthTestDistance)},a}),define("DataSources/PolygonGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),material:o("material"),hierarchy:a("hierarchy"),height:a("height"),heightReference:a("heightReference"),extrudedHeight:a("extrudedHeight"),extrudedHeightReference:a("extrudedHeightReference"),granularity:a("granularity"),stRotation:a("stRotation"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),perPositionHeight:a("perPositionHeight"),closeTop:a("closeTop"),closeBottom:a("closeBottom"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition"),classificationType:a("classificationType"),arcType:a("arcType"),zIndex:a("zIndex")}),s.prototype.clone=function(e){return t(e)?(e.show=this.show,e.material=this.material,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.granularity=this.granularity,e.stRotation=this.stRotation,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.arcType=this.arcType,e.zIndex=this.zIndex,e):new s(this)},s.prototype.merge=function(t){this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.hierarchy=e(this.hierarchy,t.hierarchy),this.height=e(this.height,t.height),this.heightReference=e(this.heightReference,t.heightReference),this.extrudedHeight=e(this.extrudedHeight,t.extrudedHeight),this.extrudedHeightReference=e(this.extrudedHeightReference,t.extrudedHeightReference),this.granularity=e(this.granularity,t.granularity),this.stRotation=e(this.stRotation,t.stRotation),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.perPositionHeight=e(this.perPositionHeight,t.perPositionHeight),this.closeTop=e(this.closeTop,t.closeTop),this.closeBottom=e(this.closeBottom,t.closeBottom),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.classificationType=e(this.classificationType,t.classificationType),this.arcType=e(this.arcType,t.arcType),this.zIndex=e(this.zIndex,t.zIndex)},s}),define("DataSources/PolylineGraphics",["../Core/ArcType","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._widthSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._definitionChanged=new o,this.merge(t(e,t.EMPTY_OBJECT))}return r(l.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:s("show"),material:a("material"),depthFailMaterial:a("depthFailMaterial"),positions:s("positions"),width:s("width"),arcType:s("arcType"),clampToGround:s("clampToGround"),granularity:s("granularity"),shadows:s("shadows"),distanceDisplayCondition:s("distanceDisplayCondition"),classificationType:s("classificationType"),zIndex:s("zIndex")}),l.prototype.clone=function(e){return i(e)?(e.show=this.show,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.positions=this.positions,e.width=this.width,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.granularity=this.granularity,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new l(this)},l.prototype.merge=function(e){this.show=t(this.show,e.show),this.material=t(this.material,e.material),this.depthFailMaterial=t(this.depthFailMaterial,e.depthFailMaterial),this.positions=t(this.positions,e.positions),this.width=t(this.width,e.width),this.arcType=t(this.arcType,e.arcType),this.clampToGround=t(this.clampToGround,e.clampToGround),this.granularity=t(this.granularity,e.granularity),this.shadows=t(this.shadows,e.shadows),this.distanceDisplayCondition=t(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=t(this.classificationType,e.classificationType),this.zIndex=t(this.zIndex,e.zIndex)},l}),define("DataSources/PolylineVolumeGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),material:o("material"),positions:a("positions"),shape:a("shape"),granularity:a("granularity"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),cornerType:a("cornerType"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.show=this.show,e.material=this.material,e.positions=this.positions,e.shape=this.shape,e.granularity=this.granularity,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.cornerType=this.cornerType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.positions=e(this.positions,t.positions),this.shape=e(this.shape,t.shape),this.granularity=e(this.granularity,t.granularity),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.cornerType=e(this.cornerType,t.cornerType),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/RectangleGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0, -this._extrudedHeightReferenceSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),coordinates:a("coordinates"),material:o("material"),height:a("height"),heightReference:a("heightReference"),extrudedHeight:a("extrudedHeight"),extrudedHeightReference:a("extrudedHeightReference"),granularity:a("granularity"),stRotation:a("stRotation"),rotation:a("rotation"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition"),classificationType:a("classificationType"),zIndex:a("zIndex")}),s.prototype.clone=function(e){return t(e)?(e.show=this.show,e.coordinates=this.coordinates,e.material=this.material,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.granularity=this.granularity,e.stRotation=this.stRotation,e.rotation=this.rotation,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new s(this)},s.prototype.merge=function(t){this.show=e(this.show,t.show),this.coordinates=e(this.coordinates,t.coordinates),this.material=e(this.material,t.material),this.height=e(this.height,t.height),this.heightReference=e(this.heightReference,t.heightReference),this.extrudedHeight=e(this.extrudedHeight,t.extrudedHeight),this.extrudedHeightReference=e(this.extrudedHeightReference,t.extrudedHeightReference),this.granularity=e(this.granularity,t.granularity),this.stRotation=e(this.stRotation,t.stRotation),this.rotation=e(this.rotation,t.rotation),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition),this.classificationType=e(this.classificationType,t.classificationType),this.zIndex=e(this.zIndex,t.zIndex)},s}),define("DataSources/WallGraphics",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./createMaterialPropertyDescriptor","./createPropertyDescriptor"],function(e,t,i,r,n,o,a){"use strict";function s(t){this._show=void 0,this._showSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._definitionChanged=new n,this.merge(e(t,e.EMPTY_OBJECT))}return i(s.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:a("show"),material:o("material"),positions:a("positions"),minimumHeights:a("minimumHeights"),maximumHeights:a("maximumHeights"),granularity:a("granularity"),fill:a("fill"),outline:a("outline"),outlineColor:a("outlineColor"),outlineWidth:a("outlineWidth"),shadows:a("shadows"),distanceDisplayCondition:a("distanceDisplayCondition")}),s.prototype.clone=function(e){return t(e)?(e.show=this.show,e.material=this.material,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new s(this)},s.prototype.merge=function(t){this.show=e(this.show,t.show),this.material=e(this.material,t.material),this.positions=e(this.positions,t.positions),this.minimumHeights=e(this.minimumHeights,t.minimumHeights),this.maximumHeights=e(this.maximumHeights,t.maximumHeights),this.granularity=e(this.granularity,t.granularity),this.fill=e(this.fill,t.fill),this.outline=e(this.outline,t.outline),this.outlineColor=e(this.outlineColor,t.outlineColor),this.outlineWidth=e(this.outlineWidth,t.outlineWidth),this.shadows=e(this.shadows,t.shadows),this.distanceDisplayCondition=e(this.distanceDisplayCondition,t.distanceDisplayCondition)},s}),define("DataSources/Entity",["../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/Quaternion","../Core/Transforms","../Scene/HeightReference","../Scene/GroundPrimitive","../Scene/GroundPolylinePrimitive","./BillboardGraphics","./BoxGraphics","./ConstantPositionProperty","./CorridorGraphics","./createPropertyDescriptor","./createRawPropertyDescriptor","./CylinderGraphics","./EllipseGraphics","./EllipsoidGraphics","./LabelGraphics","./ModelGraphics","./PathGraphics","./PlaneGraphics","./PointGraphics","./PolygonGraphics","./PolylineGraphics","./PolylineVolumeGraphics","./Property","./PropertyBag","./RectangleGraphics","./WallGraphics"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B){"use strict";function z(e){return new y(e)}function k(e,t){return b(e,void 0,function(e){return e instanceof t?e:new t(e)})}function V(e){e=n(e,n.EMPTY_OBJECT);var t=e.id;o(t)||(t=r()),this._availability=void 0,this._id=t,this._definitionChanged=new l,this._name=e.name,this._show=n(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall"],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function U(e,t,i){for(var r=t.length,n=0;n<r;n++){var o=t[n],a=o._show;(!i&&a)!==(i&&a)&&U(o,o._children,i)}e._definitionChanged.raiseEvent(e,"isShowing",i,!i)}var G=new t;a(V.prototype,{availability:S("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:S("name"),show:{get:function(){return this._show},set:function(e){if(e!==this._show){var t=this.isShowing;this._show=e;var i=this.isShowing;t!==i&&U(this,this._children,i),this._definitionChanged.raiseEvent(this,"show",e,!e)}}},isShowing:{get:function(){return this._show&&(!o(this.entityCollection)||this.entityCollection.show)&&(!o(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){var t=this._parent;if(t!==e){var i=this.isShowing;if(o(t)){var r=t._children.indexOf(this);t._children.splice(r,1)}this._parent=e,o(e)&&e._children.push(this);var n=this.isShowing;i!==n&&U(this,this._children,n),this._definitionChanged.raiseEvent(this,"parent",e,t)}}},propertyNames:{get:function(){return this._propertyNames}},billboard:k("billboard",g),box:k("box",v),corridor:k("corridor",C),cylinder:k("cylinder",T),description:b("description"),ellipse:k("ellipse",E),ellipsoid:k("ellipsoid",A),label:k("label",w),model:k("model",x),orientation:b("orientation"),path:k("path",P),plane:k("plane",D),point:k("point",I),polygon:k("polygon",M),polyline:k("polyline",R),polylineVolume:k("polylineVolume",O),properties:k("properties",N),position:function(e){return b(e,void 0,z)}("position"),rectangle:k("rectangle",F),viewFrom:b("viewFrom"),wall:k("wall",B)}),V.prototype.isAvailable=function(e){var t=this._availability;return!o(t)||t.contains(e)},V.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,S(e,!0))},V.prototype.removeProperty=function(e){var t=this._propertyNames,i=t.indexOf(e);this._propertyNames.splice(i,1),delete this[e]},V.prototype.merge=function(e){this.name=n(this.name,e.name),this.availability=n(this.availability,e.availability);for(var t=this._propertyNames,i=o(e._propertyNames)?e._propertyNames:Object.keys(e),r=i.length,a=0;a<r;a++){var s=i[a];if("parent"!==s){var l=this[s],u=e[s];o(l)||-1!==t.indexOf(s)||this.addProperty(s),o(u)&&(o(l)?o(l.merge)&&l.merge(u):o(u.merge)&&o(u.clone)?this[s]=u.clone():this[s]=u)}}};var H=new c,W=new e,q=new h;return V.prototype.computeModelMatrix=function(e,t){var i=L.getValueOrUndefined(this._position,e,W);if(o(i)){var r=L.getValueOrUndefined(this._orientation,e,q);return t=o(r)?d.fromRotationTranslation(c.fromQuaternion(r,H),i,t):p.eastNorthUpToFixedFrame(i,void 0,t)}},V.prototype.computeModelMatrixForHeightReference=function(t,i,r,n,a){var s=L.getValueOrDefault(i,t,f.NONE),l=L.getValueOrUndefined(this._position,t,W);if(s===f.NONE||!o(l)||e.equalsEpsilon(l,e.ZERO,u.EPSILON8))return this.computeModelMatrix(t,a);var h=n.cartesianToCartographic(l,G);s===f.CLAMP_TO_GROUND?h.height=r:h.height+=r,l=n.cartographicToCartesian(h,l);var m=L.getValueOrUndefined(this._orientation,t,q);return a=o(m)?d.fromRotationTranslation(c.fromQuaternion(m,H),l,a):p.eastNorthUpToFixedFrame(l,void 0,a)},V.supportsMaterialsforEntitiesOnTerrain=function(e){return m.supportsMaterials(e)},V.supportsPolylinesOnTerrain=function(e){return _.isSupported(e)},V}),define("DataSources/GeometryUpdater",["../Core/Check","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/Event","../Core/Iso8601","../Core/oneTimeWarning","../Scene/ClassificationType","../Scene/ShadowMode","./ColorMaterialProperty","./ConstantProperty","./Entity","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){var t=e.entity,i=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new l,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=i,this._id=i+"-"+t.id,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=m.supportsMaterialsforEntitiesOnTerrain(e.scene)}var v=new p(t.WHITE),y=new f(!0),C=new f(!0),b=new f(!1),S=new f(t.BLACK),T=new f(h.DISABLED),E=new f(new s),A=new f(d.BOTH);return n(g.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!r(this._entity.availability)&&_.isConstant(this._showProperty)&&_.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!r(this._entity.availability)&&_.isConstant(this._showProperty)&&_.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}}),g.prototype.isOutlineVisible=function(e){var t=this._entity,r=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return i(r,!1)},g.prototype.isFilled=function(e){var t=this._entity,r=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return i(r,!1)},g.prototype.createFillGeometryInstance=a.throwInstantiationError,g.prototype.createOutlineGeometryInstance=a.throwInstantiationError,g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){o(this)},g.prototype._isHidden=function(e,t){var i=t.show;return r(i)&&i.isConstant&&!i.getValue(u.MINIMUM_VALUE)},g.prototype._isOnTerrain=function(e,t){return!1},g.prototype._getIsClosed=function(e){return!0},g.prototype._isDynamic=a.throwInstantiationError,g.prototype._setStaticOptions=a.throwInstantiationError,g.prototype._onEntityPropertyChanged=function(e,t,n,o){if(-1!==this._observedPropertyNames.indexOf(t)){var a=this._entity[this._geometryPropertyName];if(!r(a))return void((this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this)));var s=a.fill,l=!r(s)||!s.isConstant||s.getValue(u.MINIMUM_VALUE),d=a.outline,h=r(d);if(h&&d.isConstant&&(h=d.getValue(u.MINIMUM_VALUE)),!l&&!h)return void((this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this)));var f=a.show;if(this._isHidden(e,a))return void((this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this)));this._materialProperty=i(a.material,v),this._fillProperty=i(s,C),this._showProperty=i(f,y),this._showOutlineProperty=i(a.outline,b),this._outlineColorProperty=h?i(a.outlineColor,S):void 0,this._shadowsProperty=i(a.shadows,T),this._distanceDisplayConditionProperty=i(a.distanceDisplayCondition,E),this._classificationTypeProperty=i(a.classificationType,A),this._fillEnabled=l;var m=this._isOnTerrain(e,a)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof p);if(h&&m&&(c(c.geometryOutlines),h=!1),this._onTerrain=m,this._outlineEnabled=h,this._isDynamic(e,a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,a),this._isClosed=this._getIsClosed(this._options);var _=a.outlineWidth;this._outlineWidth=r(_)?_.getValue(u.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}}},g.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)},g}),define("DataSources/TerrainOffsetProperty",["../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Event","../Core/Iso8601","../Core/Math","../Scene/HeightReference","../Scene/SceneMode","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(i,n,o,l){this._scene=i,this._heightReference=o,this._extrudedHeightReference=l,this._positionProperty=n,this._position=new e,this._cartographicPosition=new t,this._normal=new e,this._definitionChanged=new a,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;var u=this;if(r(i.globe)&&(this._removeEventListener=i.terrainProviderChanged.addEventListener(function(){u._updateClamping()}),this._removeModeListener=i.morphComplete.addEventListener(function(){u._updateClamping()})),n.isConstant){var c=n.getValue(s.MINIMUM_VALUE,p);if(!r(c)||e.equals(c,e.ZERO)||!r(i.globe))return;this._position=e.clone(c,this._position),this._updateClamping(),this._normal=i.globe.ellipsoid.geodeticSurfaceNormal(c,this._normal)}}var p=new e,f=new t;return n(h.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}}),h.prototype._updateClamping=function(){function t(e){if(i.mode===c.SCENE3D){var t=a.cartesianToCartographic(e,f);l._terrainHeight=t.height}else l._terrainHeight=e.x;l.definitionChanged.raiseEvent()}r(this._removeCallbackFunc)&&this._removeCallbackFunc();var i=this._scene,n=i.globe,o=this._position;if(!r(n)||e.equals(o,e.ZERO))return void(this._terrainHeight=0);var a=n.ellipsoid,s=n._surface,l=this,u=a.cartesianToCartographic(o,this._cartographicPosition),d=n.getHeight(u);r(d)?this._terrainHeight=d:this._terrainHeight=0,this._removeCallbackFunc=s.updateHeight(u,t)},h.prototype.getValue=function(t,i){var n=d.getValueOrDefault(this._heightReference,t,u.NONE),o=d.getValueOrDefault(this._extrudedHeightReference,t,u.NONE);if(n===u.NONE&&o!==u.RELATIVE_TO_GROUND)return this._position=e.clone(e.ZERO,this._position),e.clone(e.ZERO,i);if(this._positionProperty.isConstant)return e.multiplyByScalar(this._normal,this._terrainHeight,i);var a=this._scene,s=this._positionProperty.getValue(t,p);if(!r(s)||e.equals(s,e.ZERO)||!r(a.globe))return e.clone(e.ZERO,i);if(e.equalsEpsilon(this._position,s,l.EPSILON10))return e.multiplyByScalar(this._normal,this._terrainHeight,i);this._position=e.clone(s,this._position),this._updateClamping();var c=a.globe.ellipsoid.geodeticSurfaceNormal(s,this._normal);return e.multiplyByScalar(c,this._terrainHeight,i)},h.prototype.isDestroyed=function(){return!1},h.prototype.destroy=function(){return r(this._removeEventListener)&&this._removeEventListener(),r(this._removeModeListener)&&this._removeModeListener(),r(this._removeCallbackFunc)&&this._removeCallbackFunc(),o(this)},h}),define("DataSources/heightReferenceOnEntityPropertyChanged",["../Core/defaultValue","../Core/defined","./CallbackProperty","./GeometryUpdater","./TerrainOffsetProperty"],function(e,t,i,r,n){"use strict";function o(e,o,a,s){if(r.prototype._onEntityPropertyChanged.call(this,e,o,a,s),-1!==this._observedPropertyNames.indexOf(o)){var l=this._entity[this._geometryPropertyName];if(t(l)){t(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);var u=l.heightReference;if(t(u)){var c=new i(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new n(this._scene,c,u)}}}}return o}),define("DataSources/MaterialProperty",["../Core/Color","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Scene/Material"],function(e,t,i,r,n){"use strict";function o(){r.throwInstantiationError()}return i(o.prototype,{isConstant:{get:r.throwInstantiationError},definitionChanged:{get:r.throwInstantiationError}}),o.prototype.getType=r.throwInstantiationError,o.prototype.getValue=r.throwInstantiationError,o.prototype.equals=r.throwInstantiationError,o.getValue=function(i,r,o){var a;return t(r)&&(a=r.getType(i),t(a))?(t(o)&&o.type===a||(o=n.fromType(a)),r.getValue(i,o.uniforms),o):(t(o)&&o.type===n.ColorType||(o=n.fromType(n.ColorType)),e.clone(e.WHITE,o.uniforms.color),o)},o}),define("DataSources/DynamicGeometryUpdater",["../Core/BoundingSphere","../Core/Check","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Scene/GroundPrimitive","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","../Scene/Primitive","./BoundingSphereState","./ColorMaterialProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e,t,i){this._primitives=t,this._orderedGroundPrimitives=i,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}return p.prototype._isHidden=function(e,t,i){return!e.isShowing||!e.isAvailable(i)||!h.getValueOrDefault(t.show,i,!0)},p.prototype._setOptions=n.throwInstantiationError,p.prototype.update=function(e){var t=this._geometryUpdater,r=t._onTerrain,n=this._primitives,u=this._orderedGroundPrimitives;r?u.remove(this._primitive):(n.removeAndDestroy(this._primitive),n.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;var p=this._entity,f=p[this._geometryUpdater._geometryPropertyName];if(this._setOptions(p,f,e),!this._isHidden(p,f,e)){var m=this._geometryUpdater.shadowsProperty.getValue(e),_=this._options;if(!i(f.fill)||f.fill.getValue(e)){var g,v=t.fillMaterialProperty,y=v instanceof c,C=t._getIsClosed(_);if(y)g=new s({closed:C,flat:r&&!t._supportsMaterialsforEntitiesOnTerrain});else{var b=d.getValue(e,v,this._material);this._material=b,g=new a({material:b,translucent:b.isTranslucent(),closed:C})}if(r)_.vertexFormat=s.VERTEX_FORMAT,this._primitive=u.add(new o({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:g,asynchronous:!1,shadows:m,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),h.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{_.vertexFormat=g.vertexFormat;var S=this._geometryUpdater.createFillGeometryInstance(e);y&&(g.translucent=255!==S.attributes.color.value[3]),this._primitive=n.add(new l({geometryInstances:S,appearance:g,asynchronous:!1,shadows:m}))}}if(!r&&i(f.outline)&&f.outline.getValue(e)){var T=this._geometryUpdater.createOutlineGeometryInstance(e),E=h.getValueOrDefault(f.outlineWidth,e,1);this._outlinePrimitive=n.add(new l({geometryInstances:T,appearance:new s({flat:!0,translucent:255!==T.attributes.color.value[3],renderState:{lineWidth:t._scene.clampLineWidth(E)}}),asynchronous:!1,shadows:m}))}}},p.prototype.getBoundingSphere=function(t){var r,n=this._entity,o=this._primitive,a=this._outlinePrimitive;return i(o)&&o.show&&o.ready&&(r=o.getGeometryInstanceAttributes(n),i(r)&&i(r.boundingSphere))?(e.clone(r.boundingSphere,t),u.DONE):i(a)&&a.show&&a.ready&&(r=a.getGeometryInstanceAttributes(n),i(r)&&i(r.boundingSphere))?(e.clone(r.boundingSphere,t),u.DONE):i(o)&&!o.ready||i(a)&&!a.ready?u.PENDING:u.FAILED},p.prototype.isDestroyed=function(){return!1},p.prototype.destroy=function(){var e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),r(this)},p}),define("DataSources/BoxGeometryUpdater",["../Core/BoxGeometry","../Core/BoxOutlineGeometry","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./heightReferenceOnEntityPropertyChanged","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function E(e,t){b.call(this,{entity:e,scene:t,geometryOptions:new T(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}function A(e,t,i){C.call(this,e,t,i)}var w=i.ZERO,x=new i,P=new i,D=new n;return a(Object.create)&&(E.prototype=Object.create(b.prototype),E.prototype.constructor=E),s(E.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}}),E.prototype.createFillGeometryInstance=function(t){var i=this._entity,r=i.isAvailable(t),s=new f(r&&i.isShowing&&this._showProperty.getValue(t)&&this._fillProperty.getValue(t)),l=this._distanceDisplayConditionProperty.getValue(t),d=u.fromDistanceDisplayCondition(l),h={show:s,distanceDisplayCondition:d,color:void 0,offset:void 0};if(this._materialProperty instanceof y){var m;a(this._materialProperty.color)&&(this._materialProperty.color.isConstant||r)&&(m=this._materialProperty.color.getValue(t,D)),a(m)||(m=n.WHITE),h.color=o.fromColor(m)}return a(this._options.offsetAttribute)&&(h.offset=p.fromCartesian3(S.getValueOrDefault(this._terrainOffsetProperty,t,w,x))),new c({id:i,geometry:e.fromDimensions(this._options),modelMatrix:i.computeModelMatrixForHeightReference(t,i.box.heightReference,.5*this._options.dimensions.z,this._scene.mapProjection.ellipsoid),attributes:h})},E.prototype.createOutlineGeometryInstance=function(e){var i=this._entity,r=i.isAvailable(e),s=S.getValueOrDefault(this._outlineColorProperty,e,n.BLACK,D),l=this._distanceDisplayConditionProperty.getValue(e),d={show:new f(r&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:o.fromColor(s),distanceDisplayCondition:u.fromDistanceDisplayCondition(l),offset:void 0};return a(this._options.offsetAttribute)&&(d.offset=p.fromCartesian3(S.getValueOrDefault(this._terrainOffsetProperty,e,w,x))),new c({id:i,geometry:t.fromDimensions(this._options),modelMatrix:i.computeModelMatrixForHeightReference(e,i.box.heightReference,.5*this._options.dimensions.z,this._scene.mapProjection.ellipsoid),attributes:d})},E.prototype._computeCenter=function(e,t){return S.getValueOrUndefined(this._entity.position,e,t)},E.prototype._isHidden=function(e,t){return!a(t.dimensions)||!a(e.position)||b.prototype._isHidden.call(this,e,t)},E.prototype._isDynamic=function(e,t){return!(e.position.isConstant&&S.isConstant(e.orientation)&&t.dimensions.isConstant&&S.isConstant(t.outlineWidth))},E.prototype._setStaticOptions=function(e,t){var i=S.getValueOrDefault(t.heightReference,h.MINIMUM_VALUE,m.NONE),r=this._options;r.vertexFormat=this._materialProperty instanceof y?g.VERTEX_FORMAT:_.MaterialSupport.TEXTURED.vertexFormat,r.dimensions=t.dimensions.getValue(h.MINIMUM_VALUE,r.dimensions),r.offsetAttribute=i!==m.NONE?d.ALL:void 0},E.prototype._onEntityPropertyChanged=v,E.DynamicGeometryUpdater=A,a(Object.create)&&(A.prototype=Object.create(C.prototype),A.prototype.constructor=A),A.prototype._isHidden=function(e,t,i){var r=S.getValueOrUndefined(e.position,i,P),n=this._options.dimensions;return!a(r)||!a(n)||C.prototype._isHidden.call(this,e,t,i)},A.prototype._setOptions=function(e,t,i){var r=S.getValueOrDefault(t.heightReference,i,m.NONE),n=this._options;n.dimensions=S.getValueOrUndefined(t.dimensions,i,n.dimensions),n.offsetAttribute=r!==m.NONE?d.ALL:void 0},E}),define("DataSources/CheckerboardMaterialProperty",["../Core/Cartesian2","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=i(e,i.EMPTY_OBJECT),this._definitionChanged=new o,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}var u=t.WHITE,c=t.BLACK,d=new e(2,2);return n(l.prototype,{isConstant:{get:function(){return s.isConstant(this._evenColor)&&s.isConstant(this._oddColor)&&s.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:a("evenColor"),oddColor:a("oddColor"),repeat:a("repeat")}),l.prototype.getType=function(e){return"Checkerboard"},l.prototype.getValue=function(e,t){return r(t)||(t={}),t.lightColor=s.getValueOrClonedDefault(this._evenColor,e,u,t.lightColor),t.darkColor=s.getValueOrClonedDefault(this._oddColor,e,c,t.darkColor),t.repeat=s.getValueOrDefault(this._repeat,e,d),t},l.prototype.equals=function(e){return this===e||e instanceof l&&s.equals(this._evenColor,e._evenColor)&&s.equals(this._oddColor,e._oddColor)&&s.equals(this._repeat,e._repeat)},l}),define("DataSources/EntityCollection",["../Core/AssociativeArray","../Core/createGuid","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/Iso8601","../Core/JulianDate","../Core/RuntimeError","../Core/TimeInterval","./Entity"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e){if(e._firing)return void(e._refire=!0);if(0===e._suspendCount){var t=e._addedEntities,i=e._removedEntities,r=e._changedEntities;if(0!==r.length||0!==t.length||0!==i.length){e._firing=!0;do{e._refire=!1;var n=t.values.slice(0),o=i.values.slice(0),a=r.values.slice(0);t.removeAll(),i.removeAll(),r.removeAll(),e._collectionChanged.raiseEvent(e,n,o,a)}while(e._refire);e._firing=!1}}}function h(i){this._owner=i,this._entities=new e,this._addedEntities=new e,this._removedEntities=new e,this._changedEntities=new e,this._suspendCount=0,this._collectionChanged=new o,this._id=t(),this._show=!0,this._firing=!1,this._refire=!1}var p={id:void 0};return h.prototype.suspendEvents=function(){this._suspendCount++},h.prototype.resumeEvents=function(){this._suspendCount--,d(this)},h.collectionChangedEventCallback=void 0,r(h.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e!==this._show){this.suspendEvents();var t,i=[],r=this._entities.values,n=r.length;for(t=0;t<n;t++)i.push(r[t].isShowing);for(this._show=e,t=0;t<n;t++){var o=i[t],a=r[t];o!==a.isShowing&&a.definitionChanged.raiseEvent(a,"isShowing",a.isShowing,o)}this.resumeEvents()}}},owner:{get:function(){return this._owner}}}),h.prototype.computeAvailability=function(){for(var e=a.MAXIMUM_VALUE,t=a.MINIMUM_VALUE,r=this._entities.values,n=0,o=r.length;n<o;n++){var l=r[n],c=l.availability;if(i(c)){var d=c.start,h=c.stop;s.lessThan(d,e)&&!d.equals(a.MINIMUM_VALUE)&&(e=d),s.greaterThan(h,t)&&!h.equals(a.MAXIMUM_VALUE)&&(t=h)}}return a.MAXIMUM_VALUE.equals(e)&&(e=a.MINIMUM_VALUE),a.MINIMUM_VALUE.equals(t)&&(t=a.MAXIMUM_VALUE),new u({start:e,stop:t})},h.prototype.add=function(e){e instanceof c||(e=new c(e));var t=e.id,i=this._entities;if(i.contains(t))throw new l("An entity with id "+t+" already exists in this collection.");return e.entityCollection=this, -i.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(h.prototype._onEntityDefinitionChanged,this),d(this),e},h.prototype.remove=function(e){return!!i(e)&&this.removeById(e.id)},h.prototype.contains=function(e){return this._entities.get(e.id)===e},h.prototype.removeById=function(e){if(!i(e))return!1;var t=this._entities,r=t.get(e);return!!this._entities.remove(e)&&(this._addedEntities.remove(e)||(this._removedEntities.set(e,r),this._changedEntities.remove(e)),this._entities.remove(e),r.definitionChanged.removeEventListener(h.prototype._onEntityDefinitionChanged,this),d(this),!0)},h.prototype.removeAll=function(){for(var e=this._entities,t=e.length,r=e.values,n=this._addedEntities,o=this._removedEntities,a=0;a<t;a++){var s=r[a],l=s.id,u=n.get(l);i(u)||(s.definitionChanged.removeEventListener(h.prototype._onEntityDefinitionChanged,this),o.set(l,s))}e.removeAll(),n.removeAll(),this._changedEntities.removeAll(),d(this)},h.prototype.getById=function(e){return this._entities.get(e)},h.prototype.getOrCreateEntity=function(e){var t=this._entities.get(e);return i(t)||(p.id=e,t=new c(p),this.add(t)),t},h.prototype._onEntityDefinitionChanged=function(e){var t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),d(this)},h}),define("DataSources/CompositeEntityCollection",["../Core/createGuid","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Math","./Entity","./EntityCollection"],function(e,t,i,r,n,o,a){"use strict";function s(e){for(var t=e.propertyNames,i=t.length,r=0;r<i;r++)e[t[r]]=void 0;e._name=void 0,e._availability=void 0}function l(e,t,i,r){m[0]=i,m[1]=r.id,t[JSON.stringify(m)]=r.definitionChanged.addEventListener(d.prototype._onDefinitionChanged,e)}function u(e,t,i,r){m[0]=i,m[1]=r.id;var n=JSON.stringify(m);t[n](),t[n]=void 0}function c(e){if(e._shouldRecomposite=!0,0===e._suspendCount){var i,r,n,c,h,p,m=e._collections,_=m.length,g=e._collectionsCopy,v=g.length,y=e._composite,C=new a(e),b=e._eventHash;for(i=0;i<v;i++)for(h=g[i],h.collectionChanged.removeEventListener(d.prototype._onCollectionChanged,e),n=h.values,p=h.id,c=n.length-1;c>-1;c--)r=n[c],u(e,b,p,r);for(i=_-1;i>=0;i--)for(h=m[i],h.collectionChanged.addEventListener(d.prototype._onCollectionChanged,e),n=h.values,p=h.id,c=n.length-1;c>-1;c--){r=n[c],l(e,b,p,r);var S=C.getById(r.id);t(S)||(S=y.getById(r.id),t(S)?s(S):(f.id=r.id,S=new o(f)),C.add(S)),S.merge(r)}e._collectionsCopy=m.slice(0),y.suspendEvents(),y.removeAll();var T=C.values;for(i=0;i<T.length;i++)y.add(T[i]);y.resumeEvents()}}function d(i,r){this._owner=r,this._composite=new a(this),this._suspendCount=0,this._collections=t(i)?i.slice():[],this._collectionsCopy=[],this._id=e(),this._eventHash={},c(this),this._shouldRecomposite=!1}function h(e,t){return e.indexOf(t)}function p(e,t,i){var r=e._collections;if(t=n.clamp(t,0,r.length-1),i=n.clamp(i,0,r.length-1),t!==i){var o=r[t];r[t]=r[i],r[i]=o,c(e)}}var f={id:void 0},m=new Array(2);return i(d.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}}),d.prototype.addCollection=function(e,i){t(i)?this._collections.splice(i,0,e):(i=this._collections.length,this._collections.push(e)),c(this)},d.prototype.removeCollection=function(e){var t=this._collections.indexOf(e);return-1!==t&&(this._collections.splice(t,1),c(this),!0)},d.prototype.removeAllCollections=function(){this._collections.length=0,c(this)},d.prototype.containsCollection=function(e){return-1!==this._collections.indexOf(e)},d.prototype.contains=function(e){return this._composite.contains(e)},d.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)},d.prototype.getCollection=function(e){return this._collections[e]},d.prototype.getCollectionsLength=function(){return this._collections.length},d.prototype.raiseCollection=function(e){var t=h(this._collections,e);p(this,t,t+1)},d.prototype.lowerCollection=function(e){var t=h(this._collections,e);p(this,t,t-1)},d.prototype.raiseCollectionToTop=function(e){var t=h(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),c(this))},d.prototype.lowerCollectionToBottom=function(e){var t=h(this._collections,e);0!==t&&(this._collections.splice(t,1),this._collections.splice(0,0,e),c(this))},d.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()},d.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&0===this._suspendCount&&(c(this),this._shouldRecomposite=!1),this._composite.resumeEvents()},d.prototype.computeAvailability=function(){return this._composite.computeAvailability()},d.prototype.getById=function(e){return this._composite.getById(e)},d.prototype._onCollectionChanged=function(e,i,r){var n=this._collectionsCopy,a=n.length,c=this._composite;c.suspendEvents();var d,h,p,m,_=r.length,g=this._eventHash,v=e.id;for(d=0;d<_;d++){var y=r[d];u(this,g,v,y);var C=y.id;for(h=a-1;h>=0;h--)p=n[h].getById(C),t(p)&&(t(m)||(m=c.getById(C),s(m)),m.merge(p));t(m)||c.removeById(C),m=void 0}var b=i.length;for(d=0;d<b;d++){var S=i[d];l(this,g,v,S);var T=S.id;for(h=a-1;h>=0;h--)p=n[h].getById(T),t(p)&&(t(m)||(m=c.getById(T),t(m)?s(m):(f.id=T,m=new o(f),c.add(m))),m.merge(p));m=void 0}c.resumeEvents()},d.prototype._onDefinitionChanged=function(e,i,r,n){for(var o=this._collections,a=this._composite,s=o.length,l=e.id,u=a.getById(l),c=u[i],d=!t(c),h=!0,p=s-1;p>=0;p--){var f=o[p].getById(e.id);if(t(f)){var m=f[i];if(t(m)){if(h){if(h=!1,!t(m.merge)||!t(m.clone)){c=m;break}c=m.clone(c)}c.merge(m)}}}d&&-1===u.propertyNames.indexOf(i)&&u.addProperty(i),u[i]=c},d}),define("DataSources/CompositeProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/EventHelper","../Core/TimeIntervalCollection","./Property"],function(e,t,i,r,n,o,a){"use strict";function s(t,i,r,n){function o(){r.raiseEvent(t)}var a=[];i.removeAll();for(var s=n.length,l=0;l<s;l++){var u=n.get(l);e(u.data)&&-1===a.indexOf(u.data)&&i.add(u.data.definitionChanged,o)}}function l(){this._eventHelper=new n,this._definitionChanged=new r,this._intervals=new o,this._intervals.changedEvent.addEventListener(l.prototype._intervalsChanged,this)}return t(l.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}}),l.prototype.getValue=function(t,i){var r=this._intervals.findDataForIntervalContainingDate(t);if(e(r))return r.getValue(t,i)},l.prototype.equals=function(e){return this===e||e instanceof l&&this._intervals.equals(e._intervals,a.equals)},l.prototype._intervalsChanged=function(){s(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)},l}),define("DataSources/CompositeMaterialProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./CompositeProperty","./Property"],function(e,t,i,r,n,o){"use strict";function a(){this._definitionChanged=new r,this._composite=new n,this._composite.definitionChanged.addEventListener(a.prototype._raiseDefinitionChanged,this)}return t(a.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}}),a.prototype.getType=function(t){var i=this._composite._intervals.findDataForIntervalContainingDate(t);if(e(i))return i.getType(t)},a.prototype.getValue=function(t,i){var r=this._composite._intervals.findDataForIntervalContainingDate(t);if(e(r))return r.getValue(t,i)},a.prototype.equals=function(e){return this===e||e instanceof a&&this._composite.equals(e._composite,o.equals)},a.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)},a}),define("DataSources/CompositePositionProperty",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/ReferenceFrame","./CompositeProperty","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){this._referenceFrame=e(t,o.FIXED),this._definitionChanged=new n,this._composite=new a,this._composite.definitionChanged.addEventListener(l.prototype._raiseDefinitionChanged,this)}return i(l.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}}),l.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,o.FIXED,t)},l.prototype.getValueInReferenceFrame=function(e,i,r){var n=this._composite._intervals.findDataForIntervalContainingDate(e);if(t(n))return n.getValueInReferenceFrame(e,i,r)},l.prototype.equals=function(e){return this===e||e instanceof l&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,s.equals)},l.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)},l}),define("DataSources/GroundGeometryUpdater",["../Core/ApproximateTerrainHeights","../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/oneTimeWarning","../Scene/GroundPrimitive","../Scene/HeightReference","./CallbackProperty","./ConstantProperty","./GeometryUpdater","./Property","./TerrainOffsetProperty"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){f.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}var v=new p(0);return n(Object.create)&&(g.prototype=Object.create(f.prototype),g.prototype.constructor=g),o(g.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}}),g.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!n(t.height)&&!n(t.extrudedHeight)&&c.isSupported(this._scene)},g.prototype._getIsClosed=function(e){var t=e.height,i=e.extrudedHeight;return 0===t||n(i)&&i!==t},g.prototype._computeCenter=a.throwInstantiationError,g.prototype._onEntityPropertyChanged=function(e,t,i,o){if(f.prototype._onEntityPropertyChanged.call(this,e,t,i,o),-1!==this._observedPropertyNames.indexOf(t)){var a=this._entity[this._geometryPropertyName];if(n(a)){n(a.zIndex)&&(n(a.height)||n(a.extrudedHeight))&&u(u.geometryZIndex),this._zIndex=r(a.zIndex,v),n(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);var s=a.heightReference,l=a.extrudedHeightReference;if(n(s)||n(l)){var c=new h(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new _(this._scene,c,s,l)}}}},g.prototype.destroy=function(){n(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),f.prototype.destroy.call(this)},g.getGeometryHeight=function(e,t){return n(e)?t!==d.CLAMP_TO_GROUND?e:0:void(t!==d.NONE&&u(u.geometryHeightReference))},g.getGeometryExtrudedHeight=function(e,t){return n(e)?t!==d.CLAMP_TO_GROUND?e:g.CLAMP_TO_GROUND:void(t!==d.NONE&&u(u.geometryExtrudedHeightReference))},g.CLAMP_TO_GROUND="clamp",g.computeGeometryOffsetAttribute=function(e,t,i,r){n(e)&&n(t)||(t=d.NONE),n(i)&&n(r)||(r=d.NONE);var o=0;return t!==d.NONE&&o++,r===d.RELATIVE_TO_GROUND&&o++,2===o?s.ALL:1===o?s.TOP:void 0},g}),define("DataSources/CorridorGeometryUpdater",["../Core/ApproximateTerrainHeights","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/CorridorGeometry","../Core/CorridorOutlineGeometry","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/Rectangle","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPrimitive","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./GroundGeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E){"use strict";function A(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function w(e,t){T.call(this,{entity:e,scene:t,geometryOptions:new A(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}function x(e,t,i){b.call(this,e,t,i)}var P=new r,D=t.ZERO,I=new t,M=new f;return s(Object.create)&&(w.prototype=Object.create(T.prototype),w.prototype.constructor=w),w.prototype.createFillGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),a={show:new m(i&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:u.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof C){var l;s(this._materialProperty.color)&&(this._materialProperty.color.isConstant||i)&&(l=this._materialProperty.color.getValue(e,P)),s(l)||(l=r.WHITE),a.color=n.fromColor(l)}return s(this._options.offsetAttribute)&&(a.offset=p.fromCartesian3(E.getValueOrDefault(this._terrainOffsetProperty,e,D,I))),new c({id:t,geometry:new o(this._options),attributes:a})},w.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),o=E.getValueOrDefault(this._outlineColorProperty,e,r.BLACK,P),l={show:new m(i&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:n.fromColor(o),distanceDisplayCondition:u.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return s(this._options.offsetAttribute)&&(l.offset=p.fromCartesian3(E.getValueOrDefault(this._terrainOffsetProperty,e,D,I))),new c({id:t,geometry:new a(this._options),attributes:l})},w.prototype._computeCenter=function(e,i){var r=E.getValueOrUndefined(this._entity.corridor.positions,e);if(s(r)&&0!==r.length)return t.clone(r[Math.floor(r.length/2)],i)},w.prototype._isHidden=function(e,t){return!s(t.positions)||!s(t.width)||S.prototype._isHidden.call(this,e,t)},w.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!E.isConstant(t.height)||!E.isConstant(t.extrudedHeight)||!E.isConstant(t.granularity)||!E.isConstant(t.width)||!E.isConstant(t.outlineWidth)||!E.isConstant(t.cornerType)||!E.isConstant(t.zIndex)||this._onTerrain&&!E.isConstant(this._materialProperty)},w.prototype._setStaticOptions=function(t,i){var r=E.getValueOrUndefined(i.height,h.MINIMUM_VALUE),n=E.getValueOrDefault(i.heightReference,h.MINIMUM_VALUE,g.NONE),a=E.getValueOrUndefined(i.extrudedHeight,h.MINIMUM_VALUE),l=E.getValueOrDefault(i.extrudedHeightReference,h.MINIMUM_VALUE,g.NONE);s(a)&&!s(r)&&(r=0);var u=this._options;u.vertexFormat=this._materialProperty instanceof C?y.VERTEX_FORMAT:v.MaterialSupport.TEXTURED.vertexFormat,u.positions=i.positions.getValue(h.MINIMUM_VALUE,u.positions),u.width=i.width.getValue(h.MINIMUM_VALUE),u.granularity=E.getValueOrUndefined(i.granularity,h.MINIMUM_VALUE),u.cornerType=E.getValueOrUndefined(i.cornerType,h.MINIMUM_VALUE),u.offsetAttribute=T.computeGeometryOffsetAttribute(r,n,a,l),u.height=T.getGeometryHeight(r,n),a=T.getGeometryExtrudedHeight(a,l),a===T.CLAMP_TO_GROUND&&(a=e.getMinimumMaximumHeights(o.computeRectangle(u,M)).minimumTerrainHeight),u.extrudedHeight=a},w.DynamicGeometryUpdater=x,s(Object.create)&&(x.prototype=Object.create(b.prototype),x.prototype.constructor=x),x.prototype._isHidden=function(e,t,i){var r=this._options;return!s(r.positions)||!s(r.width)||b.prototype._isHidden.call(this,e,t,i)},x.prototype._setOptions=function(t,i,r){var n=this._options,a=E.getValueOrUndefined(i.height,r),l=E.getValueOrDefault(i.heightReference,r,g.NONE),u=E.getValueOrUndefined(i.extrudedHeight,r),c=E.getValueOrDefault(i.extrudedHeightReference,r,g.NONE);s(u)&&!s(a)&&(a=0),n.positions=E.getValueOrUndefined(i.positions,r),n.width=E.getValueOrUndefined(i.width,r),n.granularity=E.getValueOrUndefined(i.granularity,r),n.cornerType=E.getValueOrUndefined(i.cornerType,r),n.offsetAttribute=T.computeGeometryOffsetAttribute(a,l,u,c),n.height=T.getGeometryHeight(a,l),u=T.getGeometryExtrudedHeight(u,c),u===T.CLAMP_TO_GROUND&&(u=e.getMinimumMaximumHeights(o.computeRectangle(n,M)).minimumTerrainHeight),n.extrudedHeight=u},w}),define("DataSources/DataSource",["../Core/defineProperties","../Core/DeveloperError"],function(e,t){"use strict";function i(){t.throwInstantiationError()}return e(i.prototype,{name:{get:t.throwInstantiationError},clock:{get:t.throwInstantiationError},entities:{get:t.throwInstantiationError},isLoading:{get:t.throwInstantiationError},changedEvent:{get:t.throwInstantiationError},errorEvent:{get:t.throwInstantiationError},loadingEvent:{get:t.throwInstantiationError},show:{get:t.throwInstantiationError},clustering:{get:t.throwInstantiationError}}),i.prototype.update=t.throwInstantiationError,i.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))},i}),define("Scene/SceneTransforms",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/defined","../Core/DeveloperError","../Core/Math","../Core/Matrix4","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/Transforms","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e,t,n,o){var a=n.viewMatrix,s=l.multiplyByVector(a,r.fromElements(e.x,e.y,e.z,1,C),C),u=i.multiplyComponents(t,i.normalize(s,b),b);return s.x+=t.x+u.x,s.y+=t.y+u.y,s.z+=u.z,l.multiplyByVector(n.frustum.projectionMatrix,s,o)}var f={},m=new r(0,0,0,1),_=new r,g=new e,v=new t,y=new t;f.wgs84ToWindowCoordinates=function(e,t,r){return f.wgs84WithEyeOffsetToWindowCoordinates(e,t,i.ZERO,r)};var C=new r,b=new i,S=new n(Math.PI,s.PI_OVER_TWO),T=new i,E=new i;f.wgs84WithEyeOffsetToWindowCoordinates=function(e,r,n,a){var C=e.frameState,b=f.computeActualWgs84Position(C,r,m);if(o(b)){var A=e.canvas,w=g;w.x=0,w.y=0,w.width=A.clientWidth,w.height=A.clientHeight;var x=e.camera,P=!1;if(C.mode===h.SCENE2D){var D=e.mapProjection,I=S,M=D.project(I,T),R=i.clone(x.position,E),O=x.frustum.clone(),L=l.computeViewportTransformation(w,0,1,new l),N=x.frustum.projectionMatrix,F=x.positionWC.y,B=i.fromElements(s.sign(F)*M.x-F,0,-x.positionWC.x),z=d.pointToGLWindowCoordinates(N,L,B);if(0===F||z.x<=0||z.x>=A.clientWidth)P=!0;else{if(z.x>.5*A.clientWidth){w.width=z.x,x.frustum.right=M.x-F,_=p(b,n,x,_),f.clipToGLWindowCoordinates(w,_,v),w.x+=z.x,x.position.x=-x.position.x;var k=x.frustum.right;x.frustum.right=-x.frustum.left,x.frustum.left=-k,_=p(b,n,x,_),f.clipToGLWindowCoordinates(w,_,y)}else{w.x+=z.x,w.width-=z.x,x.frustum.left=-M.x-F,_=p(b,n,x,_),f.clipToGLWindowCoordinates(w,_,v),w.x=w.x-w.width,x.position.x=-x.position.x;var V=x.frustum.left;x.frustum.left=-x.frustum.right,x.frustum.right=-V,_=p(b,n,x,_),f.clipToGLWindowCoordinates(w,_,y)}i.clone(R,x.position),x.frustum=O.clone(),a=t.clone(v,a),(a.x<0||a.x>A.clientWidth)&&(a.x=y.x)}}if(C.mode!==h.SCENE2D||P){if(_=p(b,n,x,_),_.z<0&&!(x.frustum instanceof u)&&!(x.frustum instanceof c))return;a=f.clipToGLWindowCoordinates(w,_,a)}return a.y=A.clientHeight-a.y,a}},f.wgs84ToDrawingBufferCoordinates=function(e,t,i){if(i=f.wgs84ToWindowCoordinates(e,t,i),o(i))return f.transformWindowToDrawingBuffer(e,i,i)};var A=new i,w=new n;f.computeActualWgs84Position=function(e,t,r){var n=e.mode;if(n===h.SCENE3D)return i.clone(t,r);var a=e.mapProjection,l=a.ellipsoid.cartesianToCartographic(t,w);if(o(l)){if(a.project(l,A),n===h.COLUMBUS_VIEW)return i.fromElements(A.z,A.x,A.y,r);if(n===h.SCENE2D)return i.fromElements(0,A.x,A.y,r);var u=e.morphTime;return i.fromElements(s.lerp(A.z,t.x,u),s.lerp(A.x,t.y,u),s.lerp(A.y,t.z,u),r)}};var x=new i,P=new i,D=new l;f.clipToGLWindowCoordinates=function(e,r,n){return i.divideByScalar(r,r.w,x),l.computeViewportTransformation(e,0,1,D),l.multiplyByPoint(D,x,P),t.fromCartesian3(P,n)},f.transformWindowToDrawingBuffer=function(e,i,r){var n=e.canvas,o=e.drawingBufferWidth/n.clientWidth,a=e.drawingBufferHeight/n.clientHeight;return t.fromElements(i.x*o,i.y*a,r)};var I=new r,M=new r;return f.drawingBufferToWgs84Coordinates=function(e,t,n,a){var u=e.context,c=u.uniformState,d=c.currentFrustum,h=d.x,p=d.y;e.frameState.useLogDepth&&(n=Math.pow(2,n*s.log2(p+1))-1,n=p*(1-h/n)/(p-h));var f=e._view.passState.viewport,m=r.clone(r.UNIT_W,I);m.x=(t.x-f.x)/f.width*2-1,m.y=(t.y-f.y)/f.height*2-1,m.z=2*n-1,m.w=1;var _,g=e.camera.frustum;if(o(g.fovy)){_=l.multiplyByVector(c.inverseViewProjection,m,M);var v=1/_.w;i.multiplyByScalar(_,v,_)}else o(g._offCenterFrustum)&&(g=g._offCenterFrustum),_=M,_.x=.5*(m.x*(g.right-g.left)+g.left+g.right),_.y=.5*(m.y*(g.top-g.bottom)+g.bottom+g.top),_.z=.5*(m.z*(h-p)-h-p),_.w=1,_=l.multiplyByVector(c.inverseView,_,_);return i.fromCartesian4(_,a)},f}),define("Scene/Billboard",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/Color","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/Matrix4","../Core/NearFarScalar","../Core/Resource","./HeightReference","./HorizontalOrigin","./SceneMode","./SceneTransforms","./VerticalOrigin"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e,r){e=s(e,s.EMPTY_OBJECT);var n=e.translucencyByDistance,u=e.pixelOffsetScaleByDistance,c=e.scaleByDistance,h=e.distanceDisplayCondition;l(n)&&(n=p.clone(n)),l(u)&&(u=p.clone(u)),l(c)&&(c=p.clone(c)),l(h)&&(h=d.clone(h)),this._show=s(e.show,!0),this._position=i.clone(s(e.position,i.ZERO)),this._actualPosition=i.clone(this._position),this._pixelOffset=t.clone(s(e.pixelOffset,t.ZERO)),this._translate=new t(0,0),this._eyeOffset=i.clone(s(e.eyeOffset,i.ZERO)),this._heightReference=s(e.heightReference,m.NONE),this._verticalOrigin=s(e.verticalOrigin,y.CENTER),this._horizontalOrigin=s(e.horizontalOrigin,_.CENTER),this._scale=s(e.scale,1),this._color=o.clone(s(e.color,o.WHITE)),this._rotation=s(e.rotation,0),this._alignedAxis=i.clone(s(e.alignedAxis,i.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=c,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=u,this._sizeInMeters=s(e.sizeInMeters,!1),this._distanceDisplayCondition=h,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=s(e.collection,r),this._pickId=void 0,this._pickPrimitive=s(e._pickPrimitive,this),this._billboardCollection=r,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;var f=e.image,v=e.imageId;l(f)&&(l(v)||(v="string"==typeof f?f:l(f.src)?f.src:a()),this._imageId=v,this._image=f),l(e.imageSubRegion)&&(this._imageId=v,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=g.SCENE3D,this._clusterShow=!0,this._updateClamping()}function b(e,t){var i=e._billboardCollection;l(i)&&(i._updateBillboard(e,t),e._dirty=!0)}var S=C.SHOW_INDEX=0,T=C.POSITION_INDEX=1,E=C.PIXEL_OFFSET_INDEX=2,A=C.EYE_OFFSET_INDEX=3,w=C.HORIZONTAL_ORIGIN_INDEX=4,x=C.VERTICAL_ORIGIN_INDEX=5,P=C.SCALE_INDEX=6,D=C.IMAGE_INDEX_INDEX=7,I=C.COLOR_INDEX=8,M=C.ROTATION_INDEX=9,R=C.ALIGNED_AXIS_INDEX=10,O=C.SCALE_BY_DISTANCE_INDEX=11,L=C.TRANSLUCENCY_BY_DISTANCE_INDEX=12,N=C.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,F=C.DISTANCE_DISPLAY_CONDITION=14,B=C.DISABLE_DEPTH_DISTANCE=15;C.TEXTURE_COORDINATE_BOUNDS=16,C.NUMBER_OF_PROPERTIES=17,u(C.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,b(this,S))}},position:{get:function(){return this._position},set:function(e){var t=this._position;i.equals(t,e)||(i.clone(e,t),i.clone(e,this._actualPosition),this._updateClamping(),b(this,T))}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightReference=e,this._updateClamping(),b(this,T))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){var i=this._pixelOffset;t.equals(i,e)||(t.clone(e,i),b(this,E))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){var t=this._scaleByDistance;p.equals(t,e)||(this._scaleByDistance=p.clone(e,t),b(this,O))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){var t=this._translucencyByDistance;p.equals(t,e)||(this._translucencyByDistance=p.clone(e,t),b(this,L))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){var t=this._pixelOffsetScaleByDistance;p.equals(t,e)||(this._pixelOffsetScaleByDistance=p.clone(e,t),b(this,N))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){var t=this._eyeOffset;i.equals(t,e)||(i.clone(e,t),b(this,A))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,b(this,w))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,b(this,x))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,b(this,P))}},color:{get:function(){return this._color},set:function(e){var t=this._color;o.equals(t,e)||(o.clone(e,t),b(this,I))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,b(this,M))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){var t=this._alignedAxis;i.equals(t,e)||(i.clone(e,t),b(this,R))}},width:{get:function(){return s(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,b(this,D))}},height:{get:function(){return s(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,b(this,D))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,b(this,I))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){d.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=d.clone(e,this._distanceDisplayCondition),b(this,F))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,b(this,B))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?"string"==typeof e?this.setImage(e,e):e instanceof f?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(a(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,b(this,D))}},ready:{get:function(){return-1!==this._imageIndex}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=i.clone(e,this._actualClampedPosition),b(this,T)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,b(this,S))}}}),C.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId},C.prototype._updateClamping=function(){C._updateClamping(this._billboardCollection,this)};var z=new n,k=new i;C._updateClamping=function(e,t){function r(e){if(t._heightReference===m.RELATIVE_TO_GROUND)if(t._mode===g.SCENE3D){var r=s.cartesianToCartographic(e,z);r.height+=h.height,s.cartographicToCartesian(r,e)}else e.x+=h.height;t._clampedPosition=i.clone(e,t._clampedPosition)}var o=e._scene;if(l(o)&&l(o.globe)){var a=o.globe,s=a.ellipsoid,u=a._surface,c=o.frameState.mode,d=c!==t._mode;if(t._mode=c,(t._heightReference===m.NONE||d)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference!==m.NONE&&l(t._position)){var h=s.cartesianToCartographic(t._position);if(!l(h))return void(t._actualClampedPosition=void 0);l(t._removeCallbackFunc)&&t._removeCallbackFunc(),t._removeCallbackFunc=u.updateHeight(h,r),n.clone(h,z);var p=a.getHeight(h);l(p)&&(z.height=p),s.cartographicToCartesian(z,k),r(k)}}},C.prototype._loadImage=function(){var t,i=this._billboardCollection._textureAtlas,r=this._imageId,n=this._image,o=this._imageSubRegion;if(l(n)&&(t=i.addImage(r,n)),l(o)&&(t=i.addSubRegion(r,o)),this._imageIndexPromise=t,l(t)){var a=this;t.then(function(t){if(a._imageId===r&&a._image===n&&e.equals(a._imageSubRegion,o)){var s=i.textureCoordinates[t];a._imageWidth=i.texture.width*s.width,a._imageHeight=i.texture.height*s.height,a._imageIndex=t,a._ready=!0,a._image=void 0,a._imageIndexPromise=void 0,b(a,D)}}).otherwise(function(e){console.error("Error loading image for billboard: "+e),a._imageIndexPromise=void 0})}},C.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())},C.prototype.setImageSubRegion=function(t,i){this._imageId===t&&e.equals(this._imageSubRegion,i)||(this._imageIndex=-1,this._imageId=t,this._imageSubRegion=e.clone(i),l(this._billboardCollection._textureAtlas)&&this._loadImage())},C.prototype._setTranslate=function(e){var i=this._translate;t.equals(i,e)||(t.clone(e,i),b(this,E))},C.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition},C.prototype._setActualPosition=function(e){l(this._clampedPosition)||i.clone(e,this._actualPosition),b(this,T)};var V=new r;C._computeActualPosition=function(e,t,i,r){return l(e._clampedPosition)?(i.mode!==e._mode&&e._updateClamping(),e._clampedPosition):i.mode===g.SCENE3D?t:(h.multiplyByPoint(r,t,V),v.computeActualWgs84Position(i,V))};var U=new i;C._computeScreenSpacePosition=function(e,i,r,n,o,a){var s=h.multiplyByPoint(e,i,U),u=v.wgs84WithEyeOffsetToWindowCoordinates(o,s,r,a);if(l(u))return t.add(u,n,u),u};var G=new t(0,0);return C.prototype.computeScreenSpacePosition=function(e,i){var r=this._billboardCollection;l(i)||(i=new t),t.clone(this._pixelOffset,G),t.add(G,this._translate,G);var n=r.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==g.SCENE3D)){var a=e.mapProjection,s=a.ellipsoid,u=a.unproject(o,z);o=s.cartographicToCartesian(u,U),n=h.IDENTITY}return C._computeScreenSpacePosition(n,o,this._eyeOffset,G,e,i)},C.getScreenSpaceBoundingBox=function(t,i,r){var n=t.width,o=t.height,a=t.scale;n*=a,o*=a;var s=i.x;t.horizontalOrigin===_.RIGHT?s-=n:t.horizontalOrigin===_.CENTER&&(s-=.5*n);var u=i.y;return t.verticalOrigin===y.BOTTOM||t.verticalOrigin===y.BASELINE?u-=o:t.verticalOrigin===y.CENTER&&(u-=.5*o),l(r)||(r=new e), -r.x=s,r.y=u,r.width=n,r.height=o,r},C.prototype.equals=function(r){return this===r||l(r)&&this._id===r._id&&i.equals(this._position,r._position)&&this._imageId===r._imageId&&this._show===r._show&&this._scale===r._scale&&this._verticalOrigin===r._verticalOrigin&&this._horizontalOrigin===r._horizontalOrigin&&this._heightReference===r._heightReference&&e.equals(this._imageSubRegion,r._imageSubRegion)&&o.equals(this._color,r._color)&&t.equals(this._pixelOffset,r._pixelOffset)&&t.equals(this._translate,r._translate)&&i.equals(this._eyeOffset,r._eyeOffset)&&p.equals(this._scaleByDistance,r._scaleByDistance)&&p.equals(this._translucencyByDistance,r._translucencyByDistance)&&p.equals(this._pixelOffsetScaleByDistance,r._pixelOffsetScaleByDistance)&&d.equals(this._distanceDisplayCondition,r._distanceDisplayCondition)&&this._disableDepthTestDistance===r._disableDepthTestDistance},C.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0},C}),define("Renderer/VertexArrayFacade",["../Core/Check","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/Math","./Buffer","./BufferUsage","./VertexArray"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,n,o,a){function s(e,i){return t.getSizeInBytes(i.componentDatatype)-t.getSizeInBytes(e.componentDatatype)}var l=c._verifyAttributes(n);o=i(o,0);for(var u,d,h=[],p={},f=l.length,m=0;m<f;++m){var _=l[m];_.vertexBuffer?h.push(_):(d=_.usage,u=p[d],r(u)||(u=p[d]=[]),u.push(_))}this._allBuffers=[];for(d in p)if(p.hasOwnProperty(d)){u=p[d],u.sort(s);var g=c._vertexSizeInBytes(u),v=u[0].usage,y={vertexSizeInBytes:g,vertexBuffer:void 0,usage:v,needsCommit:!1,arrayBuffer:void 0,arrayViews:c._createArrayViews(u,g)};this._allBuffers.push(y)}this._size=0,this._instanced=i(a,!1),this._precreated=h,this._context=e,this.writers=void 0,this.va=void 0,this.resize(o)}function d(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;var i=t.vertexBuffer,n=e._size*t.vertexSizeInBytes,o=r(i);if(!o||i.sizeInBytes<n)return o&&i.destroy(),t.vertexBuffer=s.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}function h(e,t,i){if(e.needsCommit&&e.vertexSizeInBytes>0){var r=e.vertexSizeInBytes*t,n=e.vertexSizeInBytes*i;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,r,n),r)}}function p(e){var t=e.va;if(r(t)){for(var i=t.length,n=0;n<i;++n)t[n].va.destroy();e.va=void 0}}c._verifyAttributes=function(e){for(var r=[],n=0;n<e.length;++n){var o=e[n],a={index:i(o.index,n),enabled:i(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:i(o.componentDatatype,t.FLOAT),normalize:i(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:i(o.usage,l.STATIC_DRAW)};r.push(a)}for(var s=new Array(r.length),u=0;u<r.length;++u){s[r[u].index]=!0}return r},c._vertexSizeInBytes=function(e){for(var i=0,r=e.length,n=0;n<r;++n){var o=e[n];i+=o.componentsPerAttribute*t.getSizeInBytes(o.componentDatatype)}var a=r>0?t.getSizeInBytes(e[0].componentDatatype):0,s=a>0?i%a:0;return i+=0===s?0:a-s},c._createArrayViews=function(e,i){for(var r=[],n=0,o=e.length,a=0;a<o;++a){var s=e[a],l=s.componentDatatype;r.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:l,normalize:s.normalize,offsetInBytes:n,vertexSizeInComponentType:i/t.getSizeInBytes(l),view:void 0}),n+=s.componentsPerAttribute*t.getSizeInBytes(l)}return r},c.prototype.resize=function(e){this._size=e;var t=this._allBuffers;this.writers=[];for(var i=0,r=t.length;i<r;++i){var n=t[i];c._resize(n,this._size),c._appendWriters(this.writers,n)}p(this)},c._resize=function(e,i){if(e.vertexSizeInBytes>0){var n=new ArrayBuffer(i*e.vertexSizeInBytes);if(r(e.arrayBuffer))for(var o=new Uint8Array(n),a=new Uint8Array(e.arrayBuffer),s=a.length,l=0;l<s;++l)o[l]=a[l];for(var u=e.arrayViews,c=u.length,d=0;d<c;++d){var h=u[d];h.view=t.createArrayBufferView(h.componentDatatype,n,h.offsetInBytes)}e.arrayBuffer=n}};var f=[function(e,t,i){return function(r,n){t[r*i]=n,e.needsCommit=!0}},function(e,t,i){return function(r,n,o){var a=r*i;t[a]=n,t[a+1]=o,e.needsCommit=!0}},function(e,t,i){return function(r,n,o,a){var s=r*i;t[s]=n,t[s+1]=o,t[s+2]=a,e.needsCommit=!0}},function(e,t,i){return function(r,n,o,a,s){var l=r*i;t[l]=n,t[l+1]=o,t[l+2]=a,t[l+3]=s,e.needsCommit=!0}}];return c._appendWriters=function(e,t){for(var i=t.arrayViews,r=i.length,n=0;n<r;++n){var o=i[n];e[o.index]=f[o.componentsPerAttribute-1](t,o.view,o.vertexSizeInComponentType)}},c.prototype.commit=function(e){var t,i,n,o=!1,s=this._allBuffers;for(i=0,n=s.length;i<n;++i)t=s[i],o=d(this,t)||o;if(o||!r(this.va)){p(this);for(var l=this.va=[],h=r(e)?Math.ceil(this._size/(a.SIXTY_FOUR_KILOBYTES-1)):1,f=0;f<h;++f){var m=[];for(i=0,n=s.length;i<n;++i){t=s[i];var _=f*(t.vertexSizeInBytes*(a.SIXTY_FOUR_KILOBYTES-1));c._appendAttributes(m,t,_,this._instanced)}m=m.concat(this._precreated),l.push({va:new u({context:this._context,attributes:m,indexBuffer:e}),indicesCount:1.5*(f!==h-1?a.SIXTY_FOUR_KILOBYTES-1:this._size%(a.SIXTY_FOUR_KILOBYTES-1))})}}},c._appendAttributes=function(e,t,i,r){for(var n=t.arrayViews,o=n.length,a=0;a<o;++a){var s=n[a];e.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:s.componentDatatype,normalize:s.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:i+s.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:r?1:0})}},c.prototype.subCommit=function(e,t){for(var i=this._allBuffers,r=0,n=i.length;r<n;++r)h(i[r],e,t)},c.prototype.endSubCommits=function(){for(var e=this._allBuffers,t=0,i=e.length;t<i;++t)e[t].needsCommit=!1},c.prototype.isDestroyed=function(){return!1},c.prototype.destroy=function(){for(var e=this._allBuffers,t=0,i=e.length;t<i;++t){var r=e[t];r.vertexBuffer=r.vertexBuffer&&r.vertexBuffer.destroy()}return p(this),n(this)},c}),define("Shaders/BillboardCollectionFS",[],function(){"use strict";return"uniform sampler2D u_atlas;\n#ifdef VECTOR_TILE\nuniform vec4 u_highlightColor;\n#endif\nvarying vec2 v_textureCoordinates;\nvarying vec4 v_pickColor;\nvarying vec4 v_color;\n#ifdef FRAGMENT_DEPTH_CHECK\nvarying vec4 v_textureCoordinateBounds;\nvarying vec4 v_originTextureCoordinateAndTranslate;\nvarying vec4 v_compressed;\nvarying mat2 v_rotationMatrix;\nconst float SHIFT_LEFT12 = 4096.0;\nconst float SHIFT_LEFT1 = 2.0;\nconst float SHIFT_RIGHT12 = 1.0 / 4096.0;\nconst float SHIFT_RIGHT1 = 1.0 / 2.0;\nfloat getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize)\n{\nvec2 lookupVector = imageSize * (depthLookupST - adjustedST);\nlookupVector = v_rotationMatrix * lookupVector;\nvec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y));\nvec2 translation = v_originTextureCoordinateAndTranslate.zw;\nif (applyTranslate)\n{\ntranslation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0));\n}\nvec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw;\nfloat logDepthOrDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, st));\nif (logDepthOrDepth == 0.0)\n{\nreturn 0.0;\n}\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth);\nreturn eyeCoordinate.z / eyeCoordinate.w;\n}\n#endif\nvoid main()\n{\nvec4 color = texture2D(u_atlas, v_textureCoordinates);\ncolor = czm_gammaCorrect(color);\ncolor *= czm_gammaCorrect(v_color);\n#if !defined(OPAQUE) && !defined(TRANSLUCENT)\nif (color.a < 0.005)\n{\ndiscard;\n}\n#else\n#ifdef OPAQUE\nif (color.a < 0.995)\n{\ndiscard;\n}\n#else\nif (color.a >= 0.995)\n{\ndiscard;\n}\n#endif\n#endif\n#ifdef VECTOR_TILE\ncolor *= u_highlightColor;\n#endif\ngl_FragColor = color;\nczm_writeLogDepth();\n#ifdef FRAGMENT_DEPTH_CHECK\nfloat temp = v_compressed.y;\ntemp = temp * SHIFT_RIGHT1;\nfloat temp2 = (temp - floor(temp)) * SHIFT_LEFT1;\nbool enableDepthTest = temp2 != 0.0;\nbool applyTranslate = floor(temp) != 0.0;\nif (enableDepthTest) {\ntemp = v_compressed.z;\ntemp = temp * SHIFT_RIGHT12;\nvec2 dimensions;\ndimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;\ndimensions.x = floor(temp);\ntemp = v_compressed.w;\ntemp = temp * SHIFT_RIGHT12;\nvec2 imageSize;\nimageSize.y = (temp - floor(temp)) * SHIFT_LEFT12;\nimageSize.x = floor(temp);\nvec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy;\nadjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y);\nfloat epsilonEyeDepth = v_compressed.x + czm_epsilon1;\nfloat globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize);\nif (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth)\n{\nfloat globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize);\nif (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth)\n{\nfloat globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize);\nif (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth)\n{\ndiscard;\n}\n}\n}\n}\n#endif\n}\n"}),define("Shaders/BillboardCollectionVS",[],function(){"use strict";return"#ifdef INSTANCED\nattribute vec2 direction;\n#endif\nattribute vec4 positionHighAndScale;\nattribute vec4 positionLowAndRotation;\nattribute vec4 compressedAttribute0;\nattribute vec4 compressedAttribute1;\nattribute vec4 compressedAttribute2;\nattribute vec4 eyeOffset;\nattribute vec4 scaleByDistance;\nattribute vec4 pixelOffsetScaleByDistance;\nattribute vec4 compressedAttribute3;\n#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)\nattribute vec4 textureCoordinateBoundsOrLabelTranslate;\n#endif\n#ifdef VECTOR_TILE\nattribute float a_batchId;\n#endif\nvarying vec2 v_textureCoordinates;\n#ifdef FRAGMENT_DEPTH_CHECK\nvarying vec4 v_textureCoordinateBounds;\nvarying vec4 v_originTextureCoordinateAndTranslate;\nvarying vec4 v_compressed;\nvarying mat2 v_rotationMatrix;\n#endif\nvarying vec4 v_pickColor;\nvarying vec4 v_color;\nconst float UPPER_BOUND = 32768.0;\nconst float SHIFT_LEFT16 = 65536.0;\nconst float SHIFT_LEFT12 = 4096.0;\nconst float SHIFT_LEFT8 = 256.0;\nconst float SHIFT_LEFT7 = 128.0;\nconst float SHIFT_LEFT5 = 32.0;\nconst float SHIFT_LEFT3 = 8.0;\nconst float SHIFT_LEFT2 = 4.0;\nconst float SHIFT_LEFT1 = 2.0;\nconst float SHIFT_RIGHT12 = 1.0 / 4096.0;\nconst float SHIFT_RIGHT8 = 1.0 / 256.0;\nconst float SHIFT_RIGHT7 = 1.0 / 128.0;\nconst float SHIFT_RIGHT5 = 1.0 / 32.0;\nconst float SHIFT_RIGHT3 = 1.0 / 8.0;\nconst float SHIFT_RIGHT2 = 1.0 / 4.0;\nconst float SHIFT_RIGHT1 = 1.0 / 2.0;\nvec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp)\n{\nvec2 halfSize = imageSize * scale * czm_resolutionScale * 0.5;\nhalfSize *= ((direction * 2.0) - 1.0);\nvec2 originTranslate = origin * abs(halfSize);\n#if defined(ROTATION) || defined(ALIGNED_AXIS)\nif (validAlignedAxis || rotation != 0.0)\n{\nfloat angle = rotation;\nif (validAlignedAxis)\n{\nvec4 projectedAlignedAxis = czm_modelViewProjection * vec4(alignedAxis, 0.0);\nangle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) /\n(projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y));\n}\nfloat cosTheta = cos(angle);\nfloat sinTheta = sin(angle);\nrotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta);\nhalfSize = rotationMatrix * halfSize;\n}\nelse\n{\nrotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);\n}\n#endif\nif (sizeInMeters)\n{\npositionEC.xy += halfSize;\n}\nmpp = czm_metersPerPixel(positionEC);\nif (!sizeInMeters)\n{\noriginTranslate *= mpp;\n}\npositionEC.xy += originTranslate;\nif (!sizeInMeters)\n{\npositionEC.xy += halfSize * mpp;\n}\npositionEC.xy += translate * mpp;\npositionEC.xy += (pixelOffset * czm_resolutionScale) * mpp;\nreturn positionEC;\n}\n#ifdef VERTEX_DEPTH_CHECK\nfloat getGlobeDepth(vec4 positionEC)\n{\nvec4 posWC = czm_eyeToWindowCoordinates(positionEC);\nfloat globeDepth = czm_unpackDepth(texture2D(czm_globeDepthTexture, posWC.xy / czm_viewport.zw));\nif (globeDepth == 0.0)\n{\nreturn 0.0;\n}\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth);\nreturn eyeCoordinate.z / eyeCoordinate.w;\n}\n#endif\nvoid main()\n{\nvec3 positionHigh = positionHighAndScale.xyz;\nvec3 positionLow = positionLowAndRotation.xyz;\nfloat scale = positionHighAndScale.w;\n#if defined(ROTATION) || defined(ALIGNED_AXIS)\nfloat rotation = positionLowAndRotation.w;\n#else\nfloat rotation = 0.0;\n#endif\nfloat compressed = compressedAttribute0.x;\nvec2 pixelOffset;\npixelOffset.x = floor(compressed * SHIFT_RIGHT7);\ncompressed -= pixelOffset.x * SHIFT_LEFT7;\npixelOffset.x -= UPPER_BOUND;\nvec2 origin;\norigin.x = floor(compressed * SHIFT_RIGHT5);\ncompressed -= origin.x * SHIFT_LEFT5;\norigin.y = floor(compressed * SHIFT_RIGHT3);\ncompressed -= origin.y * SHIFT_LEFT3;\n#ifdef FRAGMENT_DEPTH_CHECK\nvec2 depthOrigin = origin.xy;\n#endif\norigin -= vec2(1.0);\nfloat show = floor(compressed * SHIFT_RIGHT2);\ncompressed -= show * SHIFT_LEFT2;\n#ifdef INSTANCED\nvec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w);\nvec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w);\nvec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange;\n#else\nvec2 direction;\ndirection.x = floor(compressed * SHIFT_RIGHT1);\ndirection.y = compressed - direction.x * SHIFT_LEFT1;\nvec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w);\n#endif\nfloat temp = compressedAttribute0.y * SHIFT_RIGHT8;\npixelOffset.y = -(floor(temp) - UPPER_BOUND);\nvec2 translate;\ntranslate.y = (temp - floor(temp)) * SHIFT_LEFT16;\ntemp = compressedAttribute0.z * SHIFT_RIGHT8;\ntranslate.x = floor(temp) - UPPER_BOUND;\ntranslate.y += (temp - floor(temp)) * SHIFT_LEFT8;\ntranslate.y -= UPPER_BOUND;\ntemp = compressedAttribute1.x * SHIFT_RIGHT8;\nfloat temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2);\nvec2 imageSize = vec2(floor(temp), temp2);\n#ifdef FRAGMENT_DEPTH_CHECK\nfloat labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2));\nfloat applyTranslate = 0.0;\nif (labelHorizontalOrigin != 0.0)\n{\napplyTranslate = 1.0;\nlabelHorizontalOrigin -= 2.0;\ndepthOrigin.x = labelHorizontalOrigin + 1.0;\n}\ndepthOrigin = vec2(1.0) - (depthOrigin * 0.5);\n#endif\n#ifdef EYE_DISTANCE_TRANSLUCENCY\nvec4 translucencyByDistance;\ntranslucencyByDistance.x = compressedAttribute1.z;\ntranslucencyByDistance.z = compressedAttribute1.w;\ntranslucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;\ntemp = compressedAttribute1.y * SHIFT_RIGHT8;\ntranslucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;\n#endif\n#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK)\ntemp = compressedAttribute3.w;\ntemp = temp * SHIFT_RIGHT12;\nvec2 dimensions;\ndimensions.y = (temp - floor(temp)) * SHIFT_LEFT12;\ndimensions.x = floor(temp);\n#endif\n#ifdef ALIGNED_AXIS\nvec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8));\ntemp = compressedAttribute2.z * SHIFT_RIGHT5;\nbool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0;\n#else\nvec3 alignedAxis = vec3(0.0);\nbool validAlignedAxis = false;\n#endif\nvec4 pickColor;\nvec4 color;\ntemp = compressedAttribute2.y;\ntemp = temp * SHIFT_RIGHT8;\npickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\ntemp = floor(temp) * SHIFT_RIGHT8;\npickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\npickColor.r = floor(temp);\ntemp = compressedAttribute2.x;\ntemp = temp * SHIFT_RIGHT8;\ncolor.b = (temp - floor(temp)) * SHIFT_LEFT8;\ntemp = floor(temp) * SHIFT_RIGHT8;\ncolor.g = (temp - floor(temp)) * SHIFT_LEFT8;\ncolor.r = floor(temp);\ntemp = compressedAttribute2.z * SHIFT_RIGHT8;\nbool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0;\ntemp = floor(temp) * SHIFT_RIGHT8;\npickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\npickColor /= 255.0;\ncolor.a = floor(temp);\ncolor /= 255.0;\nvec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\nvec4 positionEC = czm_modelViewRelativeToEye * p;\n#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK)\nfloat eyeDepth = positionEC.z;\n#endif\npositionEC = czm_eyeOffset(positionEC, eyeOffset.xyz);\npositionEC.xyz *= show;\n#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)\nfloat lengthSq;\nif (czm_sceneMode == czm_sceneMode2D)\n{\nlengthSq = czm_eyeHeight2D.y;\n}\nelse\n{\nlengthSq = dot(positionEC.xyz, positionEC.xyz);\n}\n#endif\n#ifdef EYE_DISTANCE_SCALING\nfloat distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq);\nscale *= distanceScale;\ntranslate *= distanceScale;\nif (scale == 0.0)\n{\npositionEC.xyz = vec3(0.0);\n}\n#endif\nfloat translucency = 1.0;\n#ifdef EYE_DISTANCE_TRANSLUCENCY\ntranslucency = czm_nearFarScalar(translucencyByDistance, lengthSq);\nif (translucency == 0.0)\n{\npositionEC.xyz = vec3(0.0);\n}\n#endif\n#ifdef EYE_DISTANCE_PIXEL_OFFSET\nfloat pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq);\npixelOffset *= pixelOffsetScale;\n#endif\n#ifdef DISTANCE_DISPLAY_CONDITION\nfloat nearSq = compressedAttribute3.x;\nfloat farSq = compressedAttribute3.y;\nif (lengthSq < nearSq || lengthSq > farSq)\n{\npositionEC.xyz = vec3(0.0);\n}\n#endif\nmat2 rotationMatrix;\nfloat mpp;\n#ifdef DISABLE_DEPTH_DISTANCE\nfloat disableDepthTestDistance = compressedAttribute3.z;\n#endif\n#ifdef VERTEX_DEPTH_CHECK\nif (lengthSq < disableDepthTestDistance) {\nfloat depthsilon = 10.0;\nvec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy;\nvec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);\nfloat globeDepth1 = getGlobeDepth(pEC1);\nif (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1)\n{\nvec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);\nfloat globeDepth2 = getGlobeDepth(pEC2);\nif (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2)\n{\nvec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);\nfloat globeDepth3 = getGlobeDepth(pEC3);\nif (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3)\n{\npositionEC.xyz = vec3(0.0);\n}\n}\n}\n}\n#endif\npositionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp);\ngl_Position = czm_projection * positionEC;\nv_textureCoordinates = textureCoordinates;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth();\n#endif\n#ifdef DISABLE_DEPTH_DISTANCE\nif (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)\n{\ndisableDepthTestDistance = czm_minimumDisableDepthTestDistance;\n}\nif (disableDepthTestDistance != 0.0)\n{\nfloat zclip = gl_Position.z / gl_Position.w;\nbool clipped = (zclip < -1.0 || zclip > 1.0);\nif (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))\n{\ngl_Position.z = -gl_Position.w;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(vec4(czm_currentFrustum.x));\n#endif\n}\n}\n#endif\n#ifdef FRAGMENT_DEPTH_CHECK\nif (sizeInMeters) {\ntranslate /= mpp;\ndimensions /= mpp;\nimageSize /= mpp;\n}\n#if defined(ROTATION) || defined(ALIGNED_AXIS)\nv_rotationMatrix = rotationMatrix;\n#else\nv_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0);\n#endif\nfloat enableDepthCheck = 0.0;\nif (lengthSq < disableDepthTestDistance)\n{\nenableDepthCheck = 1.0;\n}\nfloat dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12));\nfloat dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12));\nfloat iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12));\nfloat ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12));\nv_compressed.x = eyeDepth;\nv_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck;\nv_compressed.z = dw * SHIFT_LEFT12 + dh;\nv_compressed.w = iw * SHIFT_LEFT12 + ih;\nv_originTextureCoordinateAndTranslate.xy = depthOrigin;\nv_originTextureCoordinateAndTranslate.zw = translate;\nv_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate;\n#endif\nv_pickColor = pickColor;\nv_color = color;\nv_color.a *= translucency;\n}\n"}),define("Scene/BlendOption",["../Core/freezeObject"],function(e){"use strict";return e({OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2})}),define("Renderer/Framebuffer",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/PixelFormat","./ContextLimits","./PixelDatatype"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e,t,i){var r=e._gl;r.framebufferTexture2D(r.FRAMEBUFFER,t,i._target,i._texture,0)}function c(e,t,i){var r=e._gl;r.framebufferRenderbuffer(r.FRAMEBUFFER,t,r.RENDERBUFFER,i._getRenderbuffer())}function d(e){e=t(e,t.EMPTY_OBJECT);var r=e.context,n=r._gl;s.maximumColorAttachments;this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=t(e.destroyAttachments,!0);i(e.depthTexture)||i(e.depthRenderbuffer),i(e.depthStencilTexture)||i(e.depthStencilRenderbuffer);this._bind();var o,a,l,d,h;if(i(e.colorTextures)){var p=e.colorTextures;for(d=this._colorTextures.length=this._activeColorAttachments.length=p.length,l=0;l<d;++l)o=p[l],h=this._gl.COLOR_ATTACHMENT0+l,u(this,h,o),this._activeColorAttachments[l]=h,this._colorTextures[l]=o}if(i(e.colorRenderbuffers)){var f=e.colorRenderbuffers;for(d=this._colorRenderbuffers.length=this._activeColorAttachments.length=f.length,l=0;l<d;++l)a=f[l],h=this._gl.COLOR_ATTACHMENT0+l,c(this,h,a),this._activeColorAttachments[l]=h,this._colorRenderbuffers[l]=a}i(e.depthTexture)&&(o=e.depthTexture,u(this,this._gl.DEPTH_ATTACHMENT,o),this._depthTexture=o),i(e.depthRenderbuffer)&&(a=e.depthRenderbuffer,c(this,this._gl.DEPTH_ATTACHMENT,a),this._depthRenderbuffer=a),i(e.stencilRenderbuffer)&&(a=e.stencilRenderbuffer,c(this,this._gl.STENCIL_ATTACHMENT,a),this._stencilRenderbuffer=a),i(e.depthStencilTexture)&&(o=e.depthStencilTexture,u(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilTexture=o),i(e.depthStencilRenderbuffer)&&(a=e.depthStencilRenderbuffer,c(this,this._gl.DEPTH_STENCIL_ATTACHMENT,a),this._depthStencilRenderbuffer=a),this._unBind()}return r(d.prototype,{status:{get:function(){this._bind();var e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}}),d.prototype._bind=function(){var e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)},d.prototype._unBind=function(){var e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)},d.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments},d.prototype.getColorTexture=function(e){return this._colorTextures[e]},d.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]},d.prototype.isDestroyed=function(){return!1},d.prototype.destroy=function(){if(this.destroyAttachments){for(var e=0,t=this._colorTextures,r=t.length;e<r;++e){var o=t[e];i(o)&&o.destroy()}var a=this._colorRenderbuffers;for(r=a.length,e=0;e<r;++e){var s=a[e];i(s)&&s.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),n(this)},d}),define("Scene/TextureAtlas",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/PixelFormat","../Core/Resource","../Core/RuntimeError","../Renderer/Framebuffer","../Renderer/Texture","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e,i,n,o,a){this.bottomLeft=r(e,t.ZERO),this.topRight=r(i,t.ZERO),this.childNode1=n,this.childNode2=o,this.imageIndex=a}function m(e){e=r(e,r.EMPTY_OBJECT);var t=r(e.borderWidthInPixels,1),n=r(e.initialSize,y);this._context=e.context,this._pixelFormat=r(e.pixelFormat,l.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=i(),this._idHash={},this._initialSize=n,this._root=void 0}function _(e,i){var r=e._context,o=e.numberOfImages,a=e._borderWidthInPixels;if(o>0){for(var s=e._texture.width,l=e._texture.height,u=2*(s+i.width+a),c=2*(l+i.height+a),p=s/u,m=l/c,_=new f(new t(s+a,a),new t(u,l)),g=new f(new t,new t(u,l),e._root,_),v=new f(new t(a,l+a),new t(u,c)),y=new f(new t,new t(u,c),g,v),C=0;C<e._textureCoordinates.length;C++){var b=e._textureCoordinates[C];n(b)&&(b.x*=p,b.y*=m,b.width*=p,b.height*=m)}var S=new h({context:e._context,width:u,height:c,pixelFormat:e._pixelFormat}),T=new d({context:r,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),S.copyFromFramebuffer(0,0,0,0,u,c),T._unBind(),T.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=S,e._root=y}else{var E=2*(i.width+2*a),A=2*(i.height+2*a);E<e._initialSize.x&&(E=e._initialSize.x),A<e._initialSize.y&&(A=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new h({context:e._context,width:E,height:A,pixelFormat:e._pixelFormat}),e._root=new f(new t(a,a),new t(E,A))}}function g(e,i,r){if(n(i)){if(!n(i.childNode1)&&!n(i.childNode2)){if(n(i.imageIndex))return;var o=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,s=o-r.width,l=a-r.height;if(s<0||l<0)return;if(0===s&&0===l)return i;if(s>l){i.childNode1=new f(new t(i.bottomLeft.x,i.bottomLeft.y),new t(i.bottomLeft.x+r.width,i.topRight.y));var u=i.bottomLeft.x+r.width+e._borderWidthInPixels;u<i.topRight.x&&(i.childNode2=new f(new t(u,i.bottomLeft.y),new t(i.topRight.x,i.topRight.y)))}else{i.childNode1=new f(new t(i.bottomLeft.x,i.bottomLeft.y),new t(i.topRight.x,i.bottomLeft.y+r.height));var c=i.bottomLeft.y+r.height+e._borderWidthInPixels;c<i.topRight.y&&(i.childNode2=new f(new t(i.bottomLeft.x,c),new t(i.topRight.x,i.topRight.y)))}return g(e,i.childNode1,r)}return g(e,i.childNode1,r)||g(e,i.childNode2,r)}}function v(t,r,o){var a=g(t,t._root,r);if(n(a)){a.imageIndex=o;var s=t._texture.width,l=t._texture.height,u=a.topRight.x-a.bottomLeft.x,c=a.topRight.y-a.bottomLeft.y,d=a.bottomLeft.x/s,h=a.bottomLeft.y/l,p=u/s,f=c/l;t._textureCoordinates[o]=new e(d,h,p,f),t._texture.copyFrom(r,a.bottomLeft.x,a.bottomLeft.y)}else _(t,r),v(t,r,o);t._guid=i()}var y=new t(16,16);return o(m.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return n(this._texture)||(this._texture=new h({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}}),m.prototype.addImage=function(e,t){var i=this._idHash[e];if(n(i))return i;if("function"==typeof t)t=t(e);else if("string"==typeof t||t instanceof u){var r=u.createIfNeeded(t);t=r.fetchImage()}var o=this;return i=p(t,function(e){if(o.isDestroyed())return-1;var t=o.numberOfImages;return v(o,e,t),t}),this._idHash[e]=i,i},m.prototype.addSubRegion=function(t,r){var o=this._idHash[t];if(!n(o))throw new c('image with id "'+t+'" not found in the atlas.');var a=this;return p(o,function(t){if(-1===t)return-1;var n=a._texture.width,o=a._texture.height,s=a.numberOfImages,l=a._textureCoordinates[t],u=l.x+r.x/n,c=l.y+r.y/o,d=r.width/n,h=r.height/o;return a._textureCoordinates.push(new e(u,c,d,h)),a._guid=i(),s})},m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),a(this)},m}),define("Scene/BillboardCollection",["../Core/AttributeCompression","../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/EncodedCartesian3","../Core/IndexDatatype","../Core/Math","../Core/Matrix4","../Core/WebGLConstants","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArrayFacade","../Shaders/BillboardCollectionFS","../Shaders/BillboardCollectionVS","./Billboard","./BlendingState","./BlendOption","./HeightReference","./HorizontalOrigin","./SceneMode","./TextureAtlas","./VerticalOrigin"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L){"use strict";function N(e){e=a(e,a.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(Ce),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0, -this._baseVolume=new t,this._baseVolumeWC=new t,this._baseVolume2D=new t,this._boundingVolume=new t,this._boundingVolumeDirty=!1,this._colorCommands=[],this.modelMatrix=f.clone(a(e.modelMatrix,f.IDENTITY)),this._modelMatrix=f.clone(f.IDENTITY),this.debugShowBoundingVolume=a(e.debugShowBoundingVolume,!1),this.blendOption=a(e.blendOption,D.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=R.SCENE3D,this._buffersUsage=[g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW,g.STATIC_DRAW],this._highlightColor=n.clone(n.WHITE);var i=this;this._uniforms={u_atlas:function(){return i._textureAtlas.texture},u_highlightColor:function(){return i._highlightColor}};var r=this._scene;s(r)&&s(r.terrainProviderChanged)&&(this._removeCallbackFunc=r.terrainProviderChanged.addEventListener(function(){for(var e=this._billboards,t=e.length,i=0;i<t;++i)e[i]._updateClamping()},this))}function F(e){for(var t=e.length,i=0;i<t;++i)e[i]&&e[i]._destroy()}function B(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;for(var t=[],i=e._billboards,r=i.length,n=0,o=0;n<r;++n){var a=i[n];a&&(a._index=o++,t.push(a))}e._billboards=t}}function z(e){var t=e.cache.billboardCollection_indexBufferBatched;if(s(t))return t;for(var i=new Uint16Array(98298),r=0,n=0;r<98298;r+=6,n+=4)i[r]=n,i[r+1]=n+1,i[r+2]=n+2,i[r+3]=n+0,i[r+4]=n+2,i[r+5]=n+3;return t=_.createIndexBuffer({context:e,typedArray:i,usage:g.STATIC_DRAW,indexDatatype:h.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=t,t}function k(e){var t=e.cache.billboardCollection_indexBufferInstanced;return s(t)?t:(t=_.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:g.STATIC_DRAW,indexDatatype:h.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t,t)}function V(e){var t=e.cache.billboardCollection_vertexBufferInstanced;return s(t)?t:(t=_.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:g.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t,t)}function U(e,t,i,r,n){var a=[{index:ie.positionHighAndScale,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[ne]},{index:ie.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[ne]},{index:ie.compressedAttribute0,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[oe]},{index:ie.compressedAttribute1,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[me]},{index:ie.compressedAttribute2,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[de]},{index:ie.eyeOffset,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[ae]},{index:ie.scaleByDistance,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[fe]},{index:ie.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[_e]},{index:ie.compressedAttribute3,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[ge]},{index:ie.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:o.FLOAT,usage:i[ye]}];return r&&a.push({index:ie.direction,componentsPerAttribute:2,componentDatatype:o.FLOAT,vertexBuffer:V(e)}),s(n)&&a.push({index:ie.a_batchId,componentsPerAttribute:1,componentDatatyps:o.FLOAT,bufferUsage:g.STATIC_DRAW}),new E(e,a,r?t:4*t,r)}function G(e,i,r,n,o){var a,s=n[ie.positionHighAndScale],l=n[ie.positionLowAndRotation],u=o._getActualPosition();e._mode===R.SCENE3D&&(t.expand(e._baseVolume,u,e._baseVolume),e._boundingVolumeDirty=!0),d.fromCartesian(u,Ee);var c=o.scale,h=o.rotation;0!==h&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,c);var p=Ee.high,f=Ee.low;e._instanced?(a=o._index,s(a,p.x,p.y,p.z,c),l(a,f.x,f.y,f.z,h)):(a=4*o._index,s(a+0,p.x,p.y,p.z,c),s(a+1,p.x,p.y,p.z,c),s(a+2,p.x,p.y,p.z,c),s(a+3,p.x,p.y,p.z,c),l(a+0,f.x,f.y,f.z,h),l(a+1,f.x,f.y,f.z,h),l(a+2,f.x,f.y,f.z,h),l(a+3,f.x,f.y,f.z,h))}function H(t,i,r,n,o){var a,s=n[ie.compressedAttribute0],l=o.pixelOffset,u=l.x,c=l.y,d=o._translate,h=d.x,f=d.y;t._maxPixelOffset=Math.max(t._maxPixelOffset,Math.abs(u+h),Math.abs(-c+f));var m=o.horizontalOrigin,_=o._verticalOrigin,g=o.show&&o.clusterShow;0===o.color.alpha&&(g=!1),_===L.BASELINE&&(_=L.BOTTOM),t._allHorizontalCenter=t._allHorizontalCenter&&m===M.CENTER,t._allVerticalCenter=t._allVerticalCenter&&_===L.CENTER;var v=0,y=0,C=0,b=0,S=o._imageIndex;if(-1!==S){var T=r[S];v=T.x,y=T.y,C=T.width,b=T.height}var E=v+C,A=y+b,w=Math.floor(p.clamp(u,-we,we)+we)*Ie;w+=(m+1)*Me,w+=(_+1)*Re,w+=(g?1:0)*Oe;var x=Math.floor(p.clamp(c,-we,we)+we)*De,P=Math.floor(p.clamp(h,-we,we)+we)*De,D=(p.clamp(f,-we,we)+we)*Le,I=Math.floor(D),R=Math.floor((D-I)*De);x+=I,P+=R,Ae.x=v,Ae.y=y;var O=e.compressTextureCoordinates(Ae);Ae.x=E;var N=e.compressTextureCoordinates(Ae);Ae.y=A;var F=e.compressTextureCoordinates(Ae);Ae.x=v;var B=e.compressTextureCoordinates(Ae);t._instanced?(a=o._index,s(a,w,x,P,O)):(a=4*o._index,s(a+0,w+Ne,x,P,O),s(a+1,w+Fe,x,P,N),s(a+2,w+Be,x,P,F),s(a+3,w+ze,x,P,B))}function W(t,i,n,o,l){var u,c=o[ie.compressedAttribute1],d=l.alignedAxis;r.equals(d,r.ZERO)||(t._shaderAlignedAxis=!0);var h=0,f=1,m=1,_=1,g=l.translucencyByDistance;s(g)&&(h=g.near,f=g.nearValue,m=g.far,_=g.farValue,1===f&&1===_||(t._shaderTranslucencyByDistance=!0));var v=0,y=l._imageIndex;if(-1!==y){v=n[y].width}var C=t._textureAtlas.texture.width,b=Math.round(a(l.width,C*v));t._maxSize=Math.max(t._maxSize,b);var S=p.clamp(b,0,xe),T=0;Math.abs(r.magnitudeSquared(d)-1)<p.EPSILON6&&(T=e.octEncodeFloat(d)),f=p.clamp(f,0,1),f=1===f?255:255*f|0,S=S*De+f,_=p.clamp(_,0,1),_=1===_?255:255*_|0,T=T*De+_,t._instanced?(u=l._index,c(u,S,T,h,m)):(u=4*l._index,c(u+0,S,T,h,m),c(u+1,S,T,h,m),c(u+2,S,T,h,m),c(u+3,S,T,h,m))}function q(e,t,i,o,l){var u,c=o[ie.compressedAttribute2],d=l.color,h=s(e._batchTable)?n.WHITE:l.getPickId(t).color,f=l.sizeInMeters?1:0,m=Math.abs(r.magnitudeSquared(l.alignedAxis)-1)<p.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&1===f;var _=0,g=l._imageIndex;if(-1!==g){_=i[g].height}var v=e._textureAtlas.texture.dimensions,y=Math.round(a(l.height,v.y*_));e._maxSize=Math.max(e._maxSize,y);var C=a(l._labelHorizontalOrigin,-2);C+=2;var b=y*Oe+C,S=n.floatToByte(d.red),T=n.floatToByte(d.green),E=n.floatToByte(d.blue),A=S*xe+T*De+E;S=n.floatToByte(h.red),T=n.floatToByte(h.green),E=n.floatToByte(h.blue);var w=S*xe+T*De+E,x=n.floatToByte(d.alpha)*xe+n.floatToByte(h.alpha)*De;x+=2*f+m,e._instanced?(u=l._index,c(u,A,w,x,b)):(u=4*l._index,c(u+0,A,w,x,b),c(u+1,A,w,x,b),c(u+2,A,w,x,b),c(u+3,A,w,x,b))}function Y(t,i,r,n,o){var a,s=n[ie.eyeOffset],l=o.eyeOffset,u=l.z;if(o._heightReference!==I.NONE&&(u*=1.005),t._maxEyeOffset=Math.max(t._maxEyeOffset,Math.abs(l.x),Math.abs(l.y),Math.abs(u)),t._instanced){var c=0,d=0,h=o._imageIndex;if(-1!==h){var p=r[h];c=p.width,d=p.height}Ae.x=c,Ae.y=d;var f=e.compressTextureCoordinates(Ae);a=o._index,s(a,l.x,l.y,u,f)}else a=4*o._index,s(a+0,l.x,l.y,u,0),s(a+1,l.x,l.y,u,0),s(a+2,l.x,l.y,u,0),s(a+3,l.x,l.y,u,0)}function j(e,t,i,r,n){var o,a=r[ie.scaleByDistance],l=0,u=1,c=1,d=1,h=n.scaleByDistance;s(h)&&(l=h.near,u=h.nearValue,c=h.far,d=h.farValue,1===u&&1===d||(e._shaderScaleByDistance=!0)),e._instanced?(o=n._index,a(o,l,u,c,d)):(o=4*n._index,a(o+0,l,u,c,d),a(o+1,l,u,c,d),a(o+2,l,u,c,d),a(o+3,l,u,c,d))}function X(e,t,i,r,n){var o,a=r[ie.pixelOffsetScaleByDistance],l=0,u=1,c=1,d=1,h=n.pixelOffsetScaleByDistance;s(h)&&(l=h.near,u=h.nearValue,c=h.far,d=h.farValue,1===u&&1===d||(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(o=n._index,a(o,l,u,c,d)):(o=4*n._index,a(o+0,l,u,c,d),a(o+1,l,u,c,d),a(o+2,l,u,c,d),a(o+3,l,u,c,d))}function Q(e,t,i,r,n){var o,l=r[ie.compressedAttribute3],u=0,c=Number.MAX_VALUE,d=n.distanceDisplayCondition;s(d)&&(u=d.near,c=d.far,u*=u,c*=c,e._shaderDistanceDisplayCondition=!0);var h=n.disableDepthTestDistance,f=n.heightReference===I.CLAMP_TO_GROUND&&e._scene.context.depthTexture;s(h)||(h=f?5e3:0),h*=h,(f||h>0)&&(e._shaderDisableDepthDistance=!0,h===Number.POSITIVE_INFINITY&&(h=-1));var m,_;if(s(n._labelDimensions))_=n._labelDimensions.x,m=n._labelDimensions.y;else{var g=0,v=0,y=n._imageIndex;if(-1!==y){var C=i[y];g=C.height,v=C.width}m=Math.round(a(n.height,e._textureAtlas.texture.dimensions.y*g));var b=e._textureAtlas.texture.width;_=Math.round(a(n.width,b*v))}var S=Math.floor(p.clamp(_,0,Pe)),T=Math.floor(p.clamp(m,0,Pe)),E=S*Pe+T;e._instanced?(o=n._index,l(o,u,c,h,E)):(o=4*n._index,l(o+0,u,c,h,E),l(o+1,u,c,h,E),l(o+2,u,c,h,E),l(o+3,u,c,h,E))}function K(e,t,i,r,n){n.heightReference===I.CLAMP_TO_GROUND&&(e._shaderClampToGround=e._scene.context.depthTexture);var o,a=r[ie.textureCoordinateBoundsOrLabelTranslate];if(v.maximumVertexTextureImageUnits>0){var l=0,u=0;return s(n._labelTranslate)&&(l=n._labelTranslate.x,u=n._labelTranslate.y),void(e._instanced?(o=n._index,a(o,l,u,0,0)):(o=4*n._index,a(o+0,l,u,0,0),a(o+1,l,u,0,0),a(o+2,l,u,0,0),a(o+3,l,u,0,0)))}var c=0,d=0,h=0,p=0,f=n._imageIndex;if(-1!==f){var m=i[f];c=m.x,d=m.y,h=m.width,p=m.height}var _=c+h,g=d+p;e._instanced?(o=n._index,a(o,c,d,_,g)):(o=4*n._index,a(o+0,c,d,_,g),a(o+1,c,d,_,g),a(o+2,c,d,_,g),a(o+3,c,d,_,g))}function Z(e,t,i,r,n){if(s(e._batchTable)){var o,a=r[ie.a_batchId],l=n._batchIndex;e._instanced?(o=n._index,a(o,l)):(o=4*n._index,a(o+0,l),a(o+1,l),a(o+2,l),a(o+3,l))}}function J(e,t,i,r,n){G(e,t,i,r,n),H(e,t,i,r,n),W(e,t,i,r,n),q(e,t,i,r,n),Y(e,t,i,r,n),j(e,t,i,r,n),X(e,t,i,r,n),Q(e,t,i,r,n),K(e,t,i,r,n),Z(e,t,i,r,n)}function $(e,i,r,n,o,a){var l;n.mode===R.SCENE3D?(l=e._baseVolume,e._boundingVolumeDirty=!0):l=e._baseVolume2D;for(var u=[],c=0;c<r;++c){var d=i[c],h=d.position,p=x._computeActualPosition(d,h,n,o);s(p)&&(d._setActualPosition(p),a?u.push(p):t.expand(l,p,l))}a&&t.fromPoints(u,l)}function ee(e,t){var i=t.mode,r=e._billboards,n=e._billboardsToUpdate,o=e._modelMatrix;e._createVertexArray||e._mode!==i||i!==R.SCENE3D&&!f.equals(o,e.modelMatrix)?(e._mode=i,f.clone(e.modelMatrix,o),e._createVertexArray=!0,i!==R.SCENE3D&&i!==R.SCENE2D&&i!==R.COLUMBUS_VIEW||$(e,r,r.length,t,o,!0)):i===R.MORPHING?$(e,r,r.length,t,o,!0):i!==R.SCENE2D&&i!==R.COLUMBUS_VIEW||$(e,n,e._billboardsToUpdateIndex,t,o,!1)}function te(e,t,i){var r=1;e._allSizedInMeters&&0===e._maxPixelOffset||(r=t.camera.getPixelSize(i,t.context.drawingBufferWidth,t.context.drawingBufferHeight));var n=r*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(n*=.5);var o=r*e._maxPixelOffset+e._maxEyeOffset;i.radius+=n+o}var ie,re=x.SHOW_INDEX,ne=x.POSITION_INDEX,oe=x.PIXEL_OFFSET_INDEX,ae=x.EYE_OFFSET_INDEX,se=x.HORIZONTAL_ORIGIN_INDEX,le=x.VERTICAL_ORIGIN_INDEX,ue=x.SCALE_INDEX,ce=x.IMAGE_INDEX_INDEX,de=x.COLOR_INDEX,he=x.ROTATION_INDEX,pe=x.ALIGNED_AXIS_INDEX,fe=x.SCALE_BY_DISTANCE_INDEX,me=x.TRANSLUCENCY_BY_DISTANCE_INDEX,_e=x.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,ge=x.DISTANCE_DISPLAY_CONDITION,ve=x.DISABLE_DEPTH_DISTANCE,ye=x.TEXTURE_COORDINATE_BOUNDS,Ce=x.NUMBER_OF_PROPERTIES,be={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10},Se={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11};l(N.prototype,{length:{get:function(){return B(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}}),N.prototype.add=function(e){var t=new x(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t},N.prototype.remove=function(e){return!!this.contains(e)&&(this._billboards[e._index]=null,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0)},N.prototype.removeAll=function(){F(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0},N.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]},N.prototype.contains=function(e){return s(e)&&e._billboardCollection===this},N.prototype.get=function(e){return B(this),this._billboards[e]};var Te;N.prototype.computeNewBuffersUsage=function(){for(var e=this._buffersUsage,t=!1,i=this._propertiesChanged,r=0;r<Ce;++r){var n=0===i[r]?g.STATIC_DRAW:g.STREAM_DRAW;t=t||e[r]!==n,e[r]=n}return t};var Ee=new d,Ae=new i,we=32768,xe=65536,Pe=4096,De=256,Ie=128,Me=32,Re=8,Oe=4,Le=1/256,Ne=0,Fe=2,Be=3,ze=1,ke=[];return N.prototype.update=function(e){B(this);var i=this._billboards,r=i.length,n=e.context;this._instanced=n.instancedArrays,ie=this._instanced?Se:be,Te=this._instanced?k:z;var o=this._textureAtlas;if(!s(o)){o=this._textureAtlas=new O({context:n});for(var a=0;a<r;++a)i[a]._loadImage()}var l=o.textureCoordinates;if(0!==l.length){ee(this,e),i=this._billboards,r=i.length;var u=this._billboardsToUpdate,c=this._billboardsToUpdateIndex,d=this._propertiesChanged,h=o.guid,p=this._createVertexArray||this._textureAtlasGUID!==h;this._textureAtlasGUID=h;var _,g=e.passes,E=g.pick;if(p||!E&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(var x=0;x<Ce;++x)d[x]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),r>0){this._vaf=U(n,r,this._buffersUsage,this._instanced,this._batchTable),_=this._vaf.writers;for(var I=0;I<r;++I){var M=this._billboards[I];M._dirty=!1,J(this,n,l,_,M)}this._vaf.commit(Te(n))}this._billboardsToUpdateIndex=0}else if(c>0){var L=ke;L.length=0,(d[ne]||d[he]||d[ue])&&L.push(G),(d[ce]||d[oe]||d[se]||d[le]||d[re])&&(L.push(H),this._instanced&&L.push(Y)),(d[ce]||d[pe]||d[me])&&(L.push(W),L.push(q)),(d[ce]||d[de])&&L.push(q),d[ae]&&L.push(Y),d[fe]&&L.push(j),d[_e]&&L.push(X),(d[ge]||d[ve]||d[ce]||d[ne])&&L.push(Q),(d[ce]||d[ne])&&L.push(K);var N=L.length;if(_=this._vaf.writers,c/r>.1){for(var F=0;F<c;++F){var V=u[F];V._dirty=!1;for(var Z=0;Z<N;++Z)L[Z](this,n,l,_,V)}this._vaf.commit(Te(n))}else{for(var $=0;$<c;++$){var ye=u[$];ye._dirty=!1;for(var Ee=0;Ee<N;++Ee)L[Ee](this,n,l,_,ye);this._instanced?this._vaf.subCommit(ye._index,1):this._vaf.subCommit(4*ye._index,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(c>1.5*r&&(u.length=r),s(this._vaf)&&s(this._vaf.va)){this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,t.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));var Ae,we=f.IDENTITY;e.mode===R.SCENE3D?(we=this.modelMatrix,Ae=t.clone(this._baseVolumeWC,this._boundingVolume)):Ae=t.clone(this._baseVolume2D,this._boundingVolume),te(this,e,Ae);var xe=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,xe){this._blendOption===D.OPAQUE||this._blendOption===D.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=b.fromCache({depthTest:{enabled:!0,func:m.LESS},depthMask:!0}):this._rsOpaque=void 0;var Pe=this._blendOption===D.TRANSLUCENT;this._blendOption===D.TRANSLUCENT||this._blendOption===D.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=b.fromCache({depthTest:{enabled:!0,func:Pe?m.LEQUAL:m.LESS},depthMask:Pe,blending:P.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||0!==e.minimumDisableDepthTestDistance;var De,Ie,Me,Re,Oe,Le=v.maximumVertexTextureImageUnits>0;if(xe||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround){De=w,Ie=A,Oe=[],s(this._batchTable)&&(Oe.push("VECTOR_TILE"),De=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(De),Ie=this._batchTable.getFragmentShaderCallback(!1,void 0)(Ie)),Me=new T({defines:Oe,sources:[De]}),this._instanced&&Me.defines.push("INSTANCED"),this._shaderRotation&&Me.defines.push("ROTATION"),this._shaderAlignedAxis&&Me.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&Me.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&Me.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&Me.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&Me.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&Me.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(Le?Me.defines.push("VERTEX_DEPTH_CHECK"):Me.defines.push("FRAGMENT_DEPTH_CHECK"));var Ne=s(this._batchTable)?"VECTOR_TILE":"";this._blendOption===D.OPAQUE_AND_TRANSLUCENT&&(Re=new T({defines:["OPAQUE",Ne],sources:[Ie]}),this._shaderClampToGround&&(Le?Re.defines.push("VERTEX_DEPTH_CHECK"):Re.defines.push("FRAGMENT_DEPTH_CHECK")),this._sp=S.replaceCache({context:n,shaderProgram:this._sp,vertexShaderSource:Me,fragmentShaderSource:Re,attributeLocations:ie}),Re=new T({defines:["TRANSLUCENT",Ne],sources:[Ie]}),this._shaderClampToGround&&(Le?Re.defines.push("VERTEX_DEPTH_CHECK"):Re.defines.push("FRAGMENT_DEPTH_CHECK")),this._spTranslucent=S.replaceCache({context:n,shaderProgram:this._spTranslucent,vertexShaderSource:Me,fragmentShaderSource:Re,attributeLocations:ie})),this._blendOption===D.OPAQUE&&(Re=new T({defines:[Ne],sources:[Ie]}),this._shaderClampToGround&&(Le?Re.defines.push("VERTEX_DEPTH_CHECK"):Re.defines.push("FRAGMENT_DEPTH_CHECK")),this._sp=S.replaceCache({context:n,shaderProgram:this._sp,vertexShaderSource:Me,fragmentShaderSource:Re,attributeLocations:ie})),this._blendOption===D.TRANSLUCENT&&(Re=new T({defines:[Ne],sources:[Ie]}),this._shaderClampToGround&&(Le?Re.defines.push("VERTEX_DEPTH_CHECK"):Re.defines.push("FRAGMENT_DEPTH_CHECK")),this._spTranslucent=S.replaceCache({context:n,shaderProgram:this._spTranslucent,vertexShaderSource:Me,fragmentShaderSource:Re,attributeLocations:ie})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround}var Fe=e.commandList;if(g.render||g.pick){var Be,ze=this._colorCommands,Ve=this._blendOption===D.OPAQUE,Ue=this._blendOption===D.OPAQUE_AND_TRANSLUCENT,Ge=this._vaf.va,He=Ge.length,We=this._uniforms;s(this._batchTable)?(We=this._batchTable.getUniformMapCallback()(We),Be=this._batchTable.getPickId()):Be="v_pickColor",ze.length=He;for(var qe=Ue?2*He:He,Ye=0;Ye<qe;++Ye){var je=ze[Ye];s(je)||(je=ze[Ye]=new y);var Xe=Ve||Ue&&Ye%2==0;je.pass=Xe||!Ue?C.OPAQUE:C.TRANSLUCENT,je.owner=this;var Qe=Ue?Math.floor(Ye/2):Ye;je.boundingVolume=Ae,je.modelMatrix=we,je.count=Ge[Qe].indicesCount,je.shaderProgram=Xe?this._sp:this._spTranslucent,je.uniformMap=We,je.vertexArray=Ge[Qe].va,je.renderState=Xe?this._rsOpaque:this._rsTranslucent,je.debugShowBoundingVolume=this.debugShowBoundingVolume,je.pickId=Be,this._instanced&&(je.count=6,je.instanceCount=r),Fe.push(je)}}}}},N.prototype.isDestroyed=function(){return!1},N.prototype.destroy=function(){return s(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),F(this._billboards),u(this)},N}),define("Scene/LabelStyle",["../Core/freezeObject"],function(e){"use strict";return e({FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2})}),define("Scene/Label",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/freezeObject","../Core/NearFarScalar","./Billboard","./HeightReference","./HorizontalOrigin","./LabelStyle","./VerticalOrigin"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){e._rebindAllGlyphs||e._repositionAllGlyphs||e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function g(e){e._rebindAllGlyphs||e._repositionAllGlyphs||e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function v(e,a){e=n(e,n.EMPTY_OBJECT);var s=e.translucencyByDistance,u=e.pixelOffsetScaleByDistance,d=e.scaleByDistance,_=e.distanceDisplayCondition;o(s)&&(s=c.clone(s)),o(u)&&(u=c.clone(u)),o(d)&&(d=c.clone(d)),o(_)&&(_=l.clone(_)),this._renderedText=void 0,this._text=void 0,this._show=n(e.show,!0),this._font=n(e.font,"30px sans-serif"),this._fillColor=r.clone(n(e.fillColor,r.WHITE)),this._outlineColor=r.clone(n(e.outlineColor,r.BLACK)),this._outlineWidth=n(e.outlineWidth,1),this._showBackground=n(e.showBackground,!1),this._backgroundColor=n(e.backgroundColor,new r(.165,.165,.165,.8)),this._backgroundPadding=n(e.backgroundPadding,new t(7,5)),this._style=n(e.style,f.FILL),this._verticalOrigin=n(e.verticalOrigin,m.BASELINE),this._horizontalOrigin=n(e.horizontalOrigin,p.LEFT),this._pixelOffset=t.clone(n(e.pixelOffset,t.ZERO)),this._eyeOffset=i.clone(n(e.eyeOffset,i.ZERO)),this._position=i.clone(n(e.position,i.ZERO)),this._scale=n(e.scale,1),this._id=e.id,this._translucencyByDistance=s,this._pixelOffsetScaleByDistance=u,this._scaleByDistance=d,this._heightReference=n(e.heightReference,h.NONE),this._distanceDisplayCondition=_,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=a,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=n(e.text,""),this._updateClamping()}function y(e,t){for(var i=/[a-zA-Z0-9]/,r=/[()[\]{}<>]/,n=[],o="",a=E.LTR,s="",l=e.length,u=0;u<l;++u){var c=e.charAt(u);s=t.test(c)?E.RTL:i.test(c)?E.LTR:r.test(c)?E.BRACKETS:E.WEAK,0===u&&(a=s),a===s&&s!==E.BRACKETS?o+=c:(""!==o&&n.push({Type:a,Word:o}),a=s,o=c)}return n.push({Type:s,Word:o}),n}function C(e){return e.split("").reverse().join("")}function b(e,t,i){return e.slice(0,t)+i+e.slice(t)}function S(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}function T(e){for(var t=e.split("\n"),i="",r=0;r<t.length;r++){for(var n=t[r],o=A.test(n.charAt(0)),a=y(n,A),s=0,l="",u=0;u<a.length;++u){var c=a[u],d=c.Type===E.BRACKETS?S(c.Word):C(c.Word);o?c.Type===E.RTL?(l=d+l,s=0):c.Type===E.LTR?(l=b(l,s,c.Word),s+=c.Word.length):c.Type!==E.WEAK&&c.Type!==E.BRACKETS||(c.Type===E.WEAK&&a[u-1].Type===E.BRACKETS?l=d+l:a[u-1].Type===E.RTL?(l=d+l,s=0):a.length>u+1?a[u+1].Type===E.RTL?(l=d+l,s=0):(l=b(l,s,c.Word),s+=c.Word.length):l=b(l,0,d)):c.Type===E.RTL?l=b(l,s,d):c.Type===E.LTR?(l+=c.Word,s=l.length):c.Type!==E.WEAK&&c.Type!==E.BRACKETS||(u>0&&a[u-1].Type===E.RTL?a.length>u+1?a[u+1].Type===E.RTL?l=b(l,s,d):(l+=c.Word,s=l.length):l+=c.Word:(l+=c.Word,s=l.length))}i+=l,r<t.length-1&&(i+="\n")}return i}var E=u({LTR:0,RTL:1,WEAK:2,BRACKETS:3});a(v.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i].billboard;o(n)&&(n.show=e)}var a=this._backgroundBillboard;o(a)&&(a.show=e)}}},position:{get:function(){return this._position},set:function(e){var t=this._position;if(!i.equals(t,e)){i.clone(e,t);for(var r=this._glyphs,n=0,a=r.length;n<a;n++){var s=r[n].billboard;o(s)&&(s.position=e)}var l=this._backgroundBillboard;o(l)&&(l.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i].billboard;o(n)&&(n.heightReference=e)}var a=this._backgroundBillboard;o(a)&&(a.heightReference=e),g(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){this._text!==e&&(this._text=e,this._renderedText=v.enableRightToLeftDetection?T(e):e,_(this))}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,_(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){var t=this._fillColor;r.equals(t,e)||(r.clone(e,t),_(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){var t=this._outlineColor;r.equals(t,e)||(r.clone(e,t),_(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,_(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,_(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){var t=this._backgroundColor;if(!r.equals(t,e)){r.clone(e,t);var i=this._backgroundBillboard;o(i)&&(i.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){var i=this._backgroundPadding;t.equals(i,e)||(t.clone(e,i),g(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,_(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){var i=this._pixelOffset;if(!t.equals(i,e)){t.clone(e,i);for(var r=this._glyphs,n=0,a=r.length;n<a;n++){var s=r[n];o(s.billboard)&&(s.billboard.pixelOffset=e)}var l=this._backgroundBillboard;o(l)&&(l.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){var t=this._translucencyByDistance;if(!c.equals(t,e)){this._translucencyByDistance=c.clone(e,t);for(var i=this._glyphs,r=0,n=i.length;r<n;r++){var a=i[r];o(a.billboard)&&(a.billboard.translucencyByDistance=e)}var s=this._backgroundBillboard;o(s)&&(s.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){var t=this._pixelOffsetScaleByDistance;if(!c.equals(t,e)){this._pixelOffsetScaleByDistance=c.clone(e,t);for(var i=this._glyphs,r=0,n=i.length;r<n;r++){var a=i[r];o(a.billboard)&&(a.billboard.pixelOffsetScaleByDistance=e)}var s=this._backgroundBillboard;o(s)&&(s.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){var t=this._scaleByDistance;if(!c.equals(t,e)){this._scaleByDistance=c.clone(e,t);for(var i=this._glyphs,r=0,n=i.length;r<n;r++){var a=i[r];o(a.billboard)&&(a.billboard.scaleByDistance=e)}var s=this._backgroundBillboard;o(s)&&(s.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){var t=this._eyeOffset;if(!i.equals(t,e)){i.clone(e,t);for(var r=this._glyphs,n=0,a=r.length;n<a;n++){var s=r[n];o(s.billboard)&&(s.billboard.eyeOffset=e)}var l=this._backgroundBillboard;o(l)&&(l.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,g(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.verticalOrigin=e)}var a=this._backgroundBillboard;o(a)&&(a.verticalOrigin=e),g(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.scale=e)}var a=this._backgroundBillboard;o(a)&&(a.scale=e),g(this)}}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!l.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=l.clone(e,this._distanceDisplayCondition);for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.distanceDisplayCondition=e)}var a=this._backgroundBillboard;o(a)&&(a.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.disableDepthTestDistance=e)}var a=this._backgroundBillboard;o(a)&&(a.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.id=e)}var a=this._backgroundBillboard;o(a)&&(a.id=e)}}},pickId:{get:function(){if(0!==this._glyphs.length&&o(this._glyphs[0].billboard))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=i.clone(e,this._actualClampedPosition);for(var t=this._glyphs,r=0,n=t.length;r<n;r++){var a=t[r];o(a.billboard)&&(a.billboard._clampedPosition=e)}var s=this._backgroundBillboard;o(s)&&(s._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;for(var t=this._glyphs,i=0,r=t.length;i<r;i++){var n=t[i];o(n.billboard)&&(n.billboard.clusterShow=e)}var a=this._backgroundBillboard;o(a)&&(a.clusterShow=e)}}}}),v.prototype._updateClamping=function(){d._updateClamping(this._labelCollection,this)},v.prototype.computeScreenSpacePosition=function(e,i){o(i)||(i=new t);var r=this._labelCollection,n=r.modelMatrix,a=o(this._actualClampedPosition)?this._actualClampedPosition:this._position;return d._computeScreenSpacePosition(n,a,this._eyeOffset,this._pixelOffset,e,i)},v.getScreenSpaceBoundingBox=function(t,i,r){var n=0,a=0,s=0,l=0,u=t.scale,c=t._labelCollection._resolutionScale,d=t._backgroundBillboard;if(o(d))n=i.x+d._translate.x/c,a=i.y-d._translate.y/c,s=d.width*u,l=d.height*u,t.verticalOrigin===m.BOTTOM||t.verticalOrigin===m.BASELINE?a-=l:t.verticalOrigin===m.CENTER&&(a-=.5*l);else{n=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY;for(var h=0,p=0,f=t._glyphs,_=f.length,g=0;g<_;++g){var v=f[g],y=v.billboard;if(o(y)){var C=i.x+y._translate.x/c,b=i.y-y._translate.y/c,S=y.width*u,T=y.height*u;t.verticalOrigin===m.BOTTOM||t.verticalOrigin===m.BASELINE?b-=T:t.verticalOrigin===m.CENTER&&(b-=.5*T),n=Math.min(n,C),a=Math.min(a,b),h=Math.max(h,C+S),p=Math.max(p,b+T)}}s=h-n,l=p-a}return o(r)||(r=new e),r.x=n,r.y=a,r.width=s,r.height=l,r},v.prototype.equals=function(e){ -return this===e||o(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&i.equals(this._position,e._position)&&r.equals(this._fillColor,e._fillColor)&&r.equals(this._outlineColor,e._outlineColor)&&r.equals(this._backgroundColor,e._backgroundColor)&&t.equals(this._backgroundPadding,e._backgroundPadding)&&t.equals(this._pixelOffset,e._pixelOffset)&&i.equals(this._eyeOffset,e._eyeOffset)&&c.equals(this._translucencyByDistance,e._translucencyByDistance)&&c.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&c.equals(this._scaleByDistance,e._scaleByDistance)&&l.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id},v.prototype.isDestroyed=function(){return!1},v.enableRightToLeftDetection=!1;var A=new RegExp("[א-ת؀-ۿݐ-ݿࢠ-ࣿ]");return v}),define("Scene/LabelCollection",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Matrix4","../Core/writeTextToCanvas","./BillboardCollection","./BlendOption","./HeightReference","./HorizontalOrigin","./Label","./LabelStyle","./TextureAtlas","./VerticalOrigin"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function y(e,t,i){this.labelCollection=e,this.index=t,this.dimensions=i}function C(e,t){var i=document.createElement("canvas");i.width=M.x,i.height=M.y;var r=i.getContext("2d");r.fillStyle="#fff",r.fillRect(0,0,i.width,i.height),e.addImage(I,i).then(function(e){t._whitePixelIndex=e})}function b(e,t,i,r,n,o,a){return O.font=t,O.fillColor=i,O.strokeColor=r,O.strokeWidth=n,a===g.CENTER?O.textBaseline="middle":a===g.TOP?O.textBaseline="top":O.textBaseline="bottom",O.fill=o===m.FILL||o===m.FILL_AND_OUTLINE,O.stroke=o===m.OUTLINE||o===m.FILL_AND_OUTLINE,u(e,O)}function S(e,t){t.textureInfo=void 0,t.dimensions=void 0;var i=t.billboard;n(i)&&(i.show=!1,i.image=void 0,n(i._removeCallbackFunc)&&(i._removeCallbackFunc(),i._removeCallbackFunc=void 0),e._spareBillboards.push(i),t.billboard=void 0)}function T(e,t,i,r){e.addImage(t,i).then(function(e){r.index=e})}function E(e,i){var r,o,a,s=i._renderedText,l=s.length,u=i._glyphs,c=u.length;if(l<c)for(o=l;o<c;++o)S(e,u[o]);u.length=l;var d=i._showBackground&&s.split("\n").join("").length>0,h=i._backgroundBillboard,f=e._backgroundBillboardCollection;d?(n(h)||(h=f.add({collection:e,image:I,imageSubRegion:R}),i._backgroundBillboard=h),h.color=i._backgroundColor,h.show=i._show,h.position=i._position,h.eyeOffset=i._eyeOffset,h.pixelOffset=i._pixelOffset,h.horizontalOrigin=p.LEFT,h.verticalOrigin=i._verticalOrigin,h.heightReference=i._heightReference,h.scale=i._scale,h.pickPrimitive=i,h.id=i._id,h.translucencyByDistance=i._translucencyByDistance,h.pixelOffsetScaleByDistance=i._pixelOffsetScaleByDistance,h.scaleByDistance=i._scaleByDistance,h.distanceDisplayCondition=i._distanceDisplayCondition,h.disableDepthTestDistance=i._disableDepthTestDistance):n(h)&&(f.remove(h),i._backgroundBillboard=h=void 0);var m=e._glyphTextureCache;for(a=0;a<l;++a){var _=s.charAt(a),g=i._font,C=i._fillColor,E=i._outlineColor,A=i._outlineWidth,w=i._style,x=i._verticalOrigin,P=JSON.stringify([_,g,C.toRgba(),E.toRgba(),A,+w,+x]),D=m[P];if(!n(D)){var M=b(_,g,C,E,A,w,x);D=new y(e,-1,M.dimensions),m[P]=D,M.width>0&&M.height>0&&T(e._textureAtlas,P,M,D)}if(r=u[a],n(r)?-1===D.index?S(e,r):n(r.textureInfo)&&(r.textureInfo=void 0):(r=new v,u[a]=r),r.textureInfo=D,r.dimensions=D.dimensions,-1!==D.index){var O=r.billboard,L=e._spareBillboards;n(O)||(L.length>0?O=L.pop():(O=e._billboardCollection.add({collection:e}),O._labelDimensions=new t,O._labelTranslate=new t),r.billboard=O),O.show=i._show,O.position=i._position,O.eyeOffset=i._eyeOffset,O.pixelOffset=i._pixelOffset,O.horizontalOrigin=p.LEFT,O.verticalOrigin=i._verticalOrigin,O.heightReference=i._heightReference,O.scale=i._scale,O.pickPrimitive=i,O.id=i._id,O.image=P,O.translucencyByDistance=i._translucencyByDistance,O.pixelOffsetScaleByDistance=i._pixelOffsetScaleByDistance,O.scaleByDistance=i._scaleByDistance,O.distanceDisplayCondition=i._distanceDisplayCondition,O.disableDepthTestDistance=i._disableDepthTestDistance,O._batchIndex=i._batchIndex}}i._repositionAllGlyphs=!0}function A(e,t,i){return t===p.CENTER?-e/2:t===p.RIGHT?-(e+i.x):i.x}function w(e,i){var r,o,a,s=e._glyphs,l=e._renderedText,u=0,c=0,d=[],f=Number.NEGATIVE_INFINITY,m=0,_=1,v=s.length,y=e._backgroundBillboard,C=t.clone(n(y)?e._backgroundPadding:t.ZERO,N);for(a=0;a<v;++a)"\n"===l.charAt(a)?(d.push(u),++_,u=0):(r=s[a],o=r.dimensions,m=Math.max(m,o.height-o.descent),f=Math.max(f,o.descent),u+=o.width-o.bounds.minx,a<v-1&&(u+=s[a+1].dimensions.bounds.minx),c=Math.max(c,u));d.push(u);var b=m+f,S=e._scale,T=e._horizontalOrigin,E=e._verticalOrigin,w=0,x=d[w],P=A(x,T,C),I=D*b,M=I*(_-1),R=c,O=b+M;n(y)&&(R+=2*C.x,O+=2*C.y,y._labelHorizontalOrigin=T),L.x=P*S*i,L.y=0;var F=0;for(a=0;a<v;++a)if("\n"===l.charAt(a))++w,F+=I,x=d[w],P=A(x,T,C),L.x=P*S*i;else if(r=s[a],o=r.dimensions,E===g.TOP?L.y=o.height-m-C.y:E===g.CENTER?L.y=(M+o.height-m)/2:E===g.BASELINE?L.y=M:L.y=M+f+C.y,L.y=(L.y-o.descent-F)*S*i,n(r.billboard)&&(r.billboard._setTranslate(L),r.billboard._labelDimensions.x=R,r.billboard._labelDimensions.y=O,r.billboard._labelHorizontalOrigin=T),a<v-1){var B=s[a+1];L.x+=(o.width-o.bounds.minx+B.dimensions.bounds.minx)*S*i}if(n(y)&&l.split("\n").join("").length>0&&(P=T===p.CENTER?-c/2-C.x:T===p.RIGHT?-(c+2*C.x):0,L.x=P*S*i,E===g.TOP?L.y=b-m-f:E===g.CENTER?L.y=(b-m)/2-f:E===g.BASELINE?L.y=-C.y-f:L.y=0,L.y=L.y*S*i,y.width=R,y.height=O,y._setTranslate(L),y._labelTranslate=t.clone(L,y._labelTranslate)),e.heightReference===h.CLAMP_TO_GROUND)for(a=0;a<v;++a){r=s[a];var z=r.billboard;n(z)&&(z._labelTranslate=t.clone(L,z._labelTranslate))}}function x(e,t){for(var i=t._glyphs,r=0,o=i.length;r<o;++r)S(e,i[r]);n(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,n(t._removeCallbackFunc)&&t._removeCallbackFunc(),a(t)}function P(e){e=r(e,r.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._whitePixelIndex=void 0,this._backgroundBillboardCollection=new c({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new c({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._resolutionScale=void 0,this._highlightColor=i.clone(i.WHITE),this.modelMatrix=l.clone(r(e.modelMatrix,l.IDENTITY)),this.debugShowBoundingVolume=r(e.debugShowBoundingVolume,!1),this.blendOption=r(e.blendOption,d.OPAQUE_AND_TRANSLUCENT)}var D=1.2,I="ID_WHITE_PIXEL",M=new t(4,4),R=new e(1,1,1,1),O={},L=new t,N=new t;return o(P.prototype,{length:{get:function(){return this._labels.length}}}),P.prototype.add=function(e){var t=new f(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t},P.prototype.remove=function(e){if(n(e)&&e._labelCollection===this){var t=this._labels.indexOf(e);if(-1!==t)return this._labels.splice(t,1),x(this,e),!0}return!1},P.prototype.removeAll=function(){for(var e=this._labels,t=0,i=e.length;t<i;++t)x(this,e[t]);e.length=0},P.prototype.contains=function(e){return n(e)&&e._labelCollection===this},P.prototype.get=function(e){return this._labels[e]},P.prototype.update=function(e){var t=this._billboardCollection,i=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,i.modelMatrix=this.modelMatrix,i.debugShowBoundingVolume=this.debugShowBoundingVolume;var r=e.context;n(this._textureAtlas)||(this._textureAtlas=new _({context:r}),t.textureAtlas=this._textureAtlas),n(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new _({context:r,initialSize:M}),i.textureAtlas=this._backgroundTextureAtlas,C(this._backgroundTextureAtlas,this));var o=r.uniformState,a=o.resolutionScale,s=this._resolutionScale!==a;this._resolutionScale=a;var l;l=s?this._labels:this._labelsToUpdate;for(var u=l.length,c=0;c<u;++c){var h=l[c];if(!h.isDestroyed()){var p=h._glyphs.length;h._rebindAllGlyphs&&(E(this,h),h._rebindAllGlyphs=!1),(s||h._repositionAllGlyphs)&&(w(h,a),h._repositionAllGlyphs=!1);var f=h._glyphs.length-p;this._totalGlyphCount+=f}}var m=i.length>0?d.TRANSLUCENT:this.blendOption;t.blendOption=m,i.blendOption=m,t._highlightColor=this._highlightColor,i._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,i.update(e),t.update(e)},P.prototype.isDestroyed=function(){return!1},P.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),a(this)},P}),define("Scene/PointPrimitive",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/Matrix4","../Core/NearFarScalar","./SceneMode","./SceneTransforms"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e,t){e=o(e,o.EMPTY_OBJECT);var r=e.translucencyByDistance,s=e.scaleByDistance,l=e.distanceDisplayCondition;a(r)&&(r=d.clone(r)),a(s)&&(s=d.clone(s)),a(l)&&(l=u.clone(l)),this._show=o(e.show,!0),this._position=i.clone(o(e.position,i.ZERO)),this._actualPosition=i.clone(this._position),this._color=n.clone(o(e.color,n.WHITE)),this._outlineColor=n.clone(o(e.outlineColor,n.TRANSPARENT)),this._outlineWidth=o(e.outlineWidth,0),this._pixelSize=o(e.pixelSize,10),this._scaleByDistance=s,this._translucencyByDistance=r,this._distanceDisplayCondition=l,this._disableDepthTestDistance=o(e.disableDepthTestDistance,0),this._id=e.id,this._collection=o(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1}function m(e,t){var i=e._pointPrimitiveCollection;a(i)&&(i._updatePointPrimitive(e,t),e._dirty=!0)}var _=f.SHOW_INDEX=0,g=f.POSITION_INDEX=1,v=f.COLOR_INDEX=2,y=f.OUTLINE_COLOR_INDEX=3,C=f.OUTLINE_WIDTH_INDEX=4,b=f.PIXEL_SIZE_INDEX=5,S=f.SCALE_BY_DISTANCE_INDEX=6,T=f.TRANSLUCENCY_BY_DISTANCE_INDEX=7,E=f.DISTANCE_DISPLAY_CONDITION_INDEX=8,A=f.DISABLE_DEPTH_DISTANCE_INDEX=9;f.NUMBER_OF_PROPERTIES=10,s(f.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,m(this,_))}},position:{get:function(){return this._position},set:function(e){var t=this._position;i.equals(t,e)||(i.clone(e,t),i.clone(e,this._actualPosition),m(this,g))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){var t=this._scaleByDistance;d.equals(t,e)||(this._scaleByDistance=d.clone(e,t),m(this,S))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){var t=this._translucencyByDistance;d.equals(t,e)||(this._translucencyByDistance=d.clone(e,t),m(this,T))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,m(this,b))}},color:{get:function(){return this._color},set:function(e){var t=this._color;n.equals(t,e)||(n.clone(e,t),m(this,v))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){var t=this._outlineColor;n.equals(t,e)||(n.clone(e,t),m(this,y))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,m(this,C))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){u.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=u.clone(e,this._distanceDisplayCondition),m(this,E))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,m(this,A))}},id:{get:function(){return this._id},set:function(e){this._id=e,a(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,m(this,_))}}}),f.prototype.getPickId=function(e){return a(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId},f.prototype._getActualPosition=function(){return this._actualPosition},f.prototype._setActualPosition=function(e){i.clone(e,this._actualPosition),m(this,g)};var w=new r;f._computeActualPosition=function(e,t,i){return t.mode===h.SCENE3D?e:(c.multiplyByPoint(i,e,w),p.computeActualWgs84Position(t,w))};var x=new r;return f._computeScreenSpacePosition=function(e,t,i,n){var o=c.multiplyByVector(e,r.fromElements(t.x,t.y,t.z,1,x),x);return p.wgs84ToWindowCoordinates(i,o,n)},f.prototype.computeScreenSpacePosition=function(e,i){var r=this._pointPrimitiveCollection;a(i)||(i=new t);var n=r.modelMatrix,o=f._computeScreenSpacePosition(n,this._actualPosition,e,i);if(a(o))return o.y=e.canvas.clientHeight-o.y,o},f.getScreenSpaceBoundingBox=function(t,i,r){var n=t.pixelSize,o=.5*n,s=i.x-o,l=i.y-o,u=n,c=n;return a(r)||(r=new e),r.x=s,r.y=l,r.width=u,r.height=c,r},f.prototype.equals=function(e){return this===e||a(e)&&this._id===e._id&&i.equals(this._position,e._position)&&n.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&n.equals(this._outlineColor,e._outlineColor)&&d.equals(this._scaleByDistance,e._scaleByDistance)&&d.equals(this._translucencyByDistance,e._translucencyByDistance)&&u.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance},f.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0},f}),define("Shaders/PointPrimitiveCollectionFS",[],function(){"use strict";return"varying vec4 v_color;\nvarying vec4 v_outlineColor;\nvarying float v_innerPercent;\nvarying float v_pixelDistance;\nvarying vec4 v_pickColor;\nvoid main()\n{\nfloat distanceToCenter = length(gl_PointCoord - vec2(0.5));\nfloat maxDistance = max(0.0, 0.5 - v_pixelDistance);\nfloat wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter);\nfloat innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter);\nvec4 color = mix(v_outlineColor, v_color, innerAlpha);\ncolor.a *= wholeAlpha;\n#if !defined(OPAQUE) && !defined(TRANSLUCENT)\nif (color.a < 0.005)\n{\ndiscard;\n}\n#else\n#ifdef OPAQUE\nif (color.a < 0.995)\n{\ndiscard;\n}\n#else\nif (color.a >= 0.995)\n{\ndiscard;\n}\n#endif\n#endif\ngl_FragColor = czm_gammaCorrect(color);\nczm_writeLogDepth();\n}\n"}),define("Shaders/PointPrimitiveCollectionVS",[],function(){"use strict";return"uniform float u_maxTotalPointSize;\nattribute vec4 positionHighAndSize;\nattribute vec4 positionLowAndOutline;\nattribute vec4 compressedAttribute0;\nattribute vec4 compressedAttribute1;\nattribute vec4 scaleByDistance;\nattribute vec3 distanceDisplayConditionAndDisableDepth;\nvarying vec4 v_color;\nvarying vec4 v_outlineColor;\nvarying float v_innerPercent;\nvarying float v_pixelDistance;\nvarying vec4 v_pickColor;\nconst float SHIFT_LEFT8 = 256.0;\nconst float SHIFT_RIGHT8 = 1.0 / 256.0;\nvoid main()\n{\nvec3 positionHigh = positionHighAndSize.xyz;\nvec3 positionLow = positionLowAndOutline.xyz;\nfloat outlineWidthBothSides = 2.0 * positionLowAndOutline.w;\nfloat totalSize = positionHighAndSize.w + outlineWidthBothSides;\nfloat outlinePercent = outlineWidthBothSides / totalSize;\ntotalSize *= czm_resolutionScale;\ntotalSize += 3.0;\nfloat temp = compressedAttribute1.x * SHIFT_RIGHT8;\nfloat show = floor(temp);\n#ifdef EYE_DISTANCE_TRANSLUCENCY\nvec4 translucencyByDistance;\ntranslucencyByDistance.x = compressedAttribute1.z;\ntranslucencyByDistance.z = compressedAttribute1.w;\ntranslucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;\ntemp = compressedAttribute1.y * SHIFT_RIGHT8;\ntranslucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0;\n#endif\nvec4 color;\nvec4 outlineColor;\nvec4 pickColor;\ntemp = compressedAttribute0.z * SHIFT_RIGHT8;\npickColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\ntemp = floor(temp) * SHIFT_RIGHT8;\npickColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\npickColor.r = floor(temp);\ntemp = compressedAttribute0.x * SHIFT_RIGHT8;\ncolor.b = (temp - floor(temp)) * SHIFT_LEFT8;\ntemp = floor(temp) * SHIFT_RIGHT8;\ncolor.g = (temp - floor(temp)) * SHIFT_LEFT8;\ncolor.r = floor(temp);\ntemp = compressedAttribute0.y * SHIFT_RIGHT8;\noutlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8;\ntemp = floor(temp) * SHIFT_RIGHT8;\noutlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8;\noutlineColor.r = floor(temp);\ntemp = compressedAttribute0.w * SHIFT_RIGHT8;\npickColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\npickColor = pickColor / 255.0;\ntemp = floor(temp) * SHIFT_RIGHT8;\noutlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8;\noutlineColor /= 255.0;\ncolor.a = floor(temp);\ncolor /= 255.0;\nvec4 p = czm_translateRelativeToEye(positionHigh, positionLow);\nvec4 positionEC = czm_modelViewRelativeToEye * p;\npositionEC.xyz *= show;\n#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE)\nfloat lengthSq;\nif (czm_sceneMode == czm_sceneMode2D)\n{\nlengthSq = czm_eyeHeight2D.y;\n}\nelse\n{\nlengthSq = dot(positionEC.xyz, positionEC.xyz);\n}\n#endif\n#ifdef EYE_DISTANCE_SCALING\ntotalSize *= czm_nearFarScalar(scaleByDistance, lengthSq);\n#endif\ntotalSize = min(totalSize, u_maxTotalPointSize);\nif (totalSize < 1.0)\n{\npositionEC.xyz = vec3(0.0);\ntotalSize = 1.0;\n}\nfloat translucency = 1.0;\n#ifdef EYE_DISTANCE_TRANSLUCENCY\ntranslucency = czm_nearFarScalar(translucencyByDistance, lengthSq);\nif (translucency < 0.004)\n{\npositionEC.xyz = vec3(0.0);\n}\n#endif\n#ifdef DISTANCE_DISPLAY_CONDITION\nfloat nearSq = distanceDisplayConditionAndDisableDepth.x;\nfloat farSq = distanceDisplayConditionAndDisableDepth.y;\nif (lengthSq < nearSq || lengthSq > farSq) {\npositionEC.xyz = vec3(0.0);\n}\n#endif\ngl_Position = czm_projection * positionEC;\nczm_vertexLogDepth();\n#ifdef DISABLE_DEPTH_DISTANCE\nfloat disableDepthTestDistance = distanceDisplayConditionAndDisableDepth.z;\nif (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0)\n{\ndisableDepthTestDistance = czm_minimumDisableDepthTestDistance;\n}\nif (disableDepthTestDistance != 0.0)\n{\nfloat zclip = gl_Position.z / gl_Position.w;\nbool clipped = (zclip < -1.0 || zclip > 1.0);\nif (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance)))\n{\ngl_Position.z = -gl_Position.w;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(vec4(czm_currentFrustum.x));\n#endif\n}\n}\n#endif\nv_color = color;\nv_color.a *= translucency;\nv_outlineColor = outlineColor;\nv_outlineColor.a *= translucency;\nv_innerPercent = 1.0 - outlinePercent;\nv_pixelDistance = 2.0 / totalSize;\ngl_PointSize = totalSize;\nv_pickColor = pickColor;\n}\n"}),define("Scene/PointPrimitiveCollection",["../Core/BoundingSphere","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/EncodedCartesian3","../Core/Math","../Core/Matrix4","../Core/PrimitiveType","../Core/WebGLConstants","../Renderer/BufferUsage","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArrayFacade","../Shaders/PointPrimitiveCollectionFS","../Shaders/PointPrimitiveCollectionVS","./BlendingState","./BlendOption","./PointPrimitive","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(t){t=r(t,r.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(K),this._maxPixelSize=1,this._baseVolume=new e,this._baseVolumeWC=new e,this._baseVolume2D=new e,this._boundingVolume=new e,this._boundingVolumeDirty=!1,this._colorCommands=[],this.modelMatrix=c.clone(r(t.modelMatrix,c.IDENTITY)),this._modelMatrix=c.clone(c.IDENTITY),this.debugShowBoundingVolume=r(t.debugShowBoundingVolume,!1),this.blendOption=r(t.blendOption,E.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=w.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW,p.STATIC_DRAW];var i=this;this._uniforms={u_maxTotalPointSize:function(){return i._maxTotalPointSize}}}function P(e){for(var t=e.length,i=0;i<t;++i)e[i]&&e[i]._destroy()}function D(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;for(var t=[],i=e._pointPrimitives,r=i.length,n=0,o=0;n<r;++n){var a=i[n];a&&(a._index=o++,t.push(a))}e._pointPrimitives=t}}function I(e,t,r){return new C(e,[{index:Z.positionHighAndSize,componentsPerAttribute:4,componentDatatype:i.FLOAT,usage:r[U]},{index:Z.positionLowAndShow,componentsPerAttribute:4,componentDatatype:i.FLOAT,usage:r[U]},{index:Z.compressedAttribute0,componentsPerAttribute:4,componentDatatype:i.FLOAT,usage:r[G]},{index:Z.compressedAttribute1,componentsPerAttribute:4,componentDatatype:i.FLOAT,usage:r[j]},{index:Z.scaleByDistance,componentsPerAttribute:4,componentDatatype:i.FLOAT,usage:r[Y]},{index:Z.distanceDisplayConditionAndDisableDepth,componentsPerAttribute:3,componentDatatype:i.FLOAT,usage:r[X]}],t)}function M(t,i,r,n){var o=n._index,a=n._getActualPosition();t._mode===w.SCENE3D&&(e.expand(t._baseVolume,a,t._baseVolume),t._boundingVolumeDirty=!0),l.fromCartesian(a,J);var s=n.pixelSize,u=n.outlineWidth;t._maxPixelSize=Math.max(t._maxPixelSize,s+u);var c=r[Z.positionHighAndSize],d=J.high;c(o,d.x,d.y,d.z,s);var h=r[Z.positionLowAndOutline],p=J.low;h(o,p.x,p.y,p.z,u)}function R(e,i,r,n){var o=n._index,a=n.color,s=n.getPickId(i).color,l=n.outlineColor,u=t.floatToByte(a.red),c=t.floatToByte(a.green),d=t.floatToByte(a.blue),h=u*$+c*ee+d;u=t.floatToByte(l.red),c=t.floatToByte(l.green),d=t.floatToByte(l.blue);var p=u*$+c*ee+d;u=t.floatToByte(s.red),c=t.floatToByte(s.green),d=t.floatToByte(s.blue);var f=u*$+c*ee+d,m=t.floatToByte(a.alpha)*$+t.floatToByte(l.alpha)*ee+t.floatToByte(s.alpha);(0,r[Z.compressedAttribute0])(o,h,p,f,m)}function O(e,t,i,r){var o=r._index,a=0,s=1,l=1,c=1,d=r.translucencyByDistance;n(d)&&(a=d.near,s=d.nearValue,l=d.far,c=d.farValue,1===s&&1===c||(e._shaderTranslucencyByDistance=!0));var h=r.show&&r.clusterShow;0===r.color.alpha&&0===r.outlineColor.alpha&&(h=!1),s=u.clamp(s,0,1),s=1===s?255:255*s|0;var p=(h?1:0)*ee+s;c=u.clamp(c,0,1),c=1===c?255:255*c|0;var f=c;(0,i[Z.compressedAttribute1])(o,p,f,a,l)}function L(e,t,i,r){var o=r._index,a=i[Z.scaleByDistance],s=0,l=1,u=1,c=1,d=r.scaleByDistance;n(d)&&(s=d.near,l=d.nearValue,u=d.far,c=d.farValue,1===l&&1===c||(e._shaderScaleByDistance=!0)),a(o,s,l,u,c)}function N(e,t,i,r){var o=r._index,a=i[Z.distanceDisplayConditionAndDisableDepth],s=0,l=Number.MAX_VALUE,u=r.distanceDisplayCondition;n(u)&&(s=u.near,l=u.far,s*=s,l*=l,e._shaderDistanceDisplayCondition=!0);var c=r.disableDepthTestDistance;c*=c,c>0&&(e._shaderDisableDepthDistance=!0,c===Number.POSITIVE_INFINITY&&(c=-1)),a(o,s,l,c)}function F(e,t,i,r){M(e,t,i,r),R(e,t,i,r),O(e,t,i,r),L(e,t,i,r),N(e,t,i,r)}function B(t,i,r,o,a,s){var l;o.mode===w.SCENE3D?(l=t._baseVolume,t._boundingVolumeDirty=!0):l=t._baseVolume2D;for(var u=[],c=0;c<r;++c){var d=i[c],h=d.position,p=A._computeActualPosition(h,o,a);n(p)&&(d._setActualPosition(p),s?u.push(p):e.expand(l,p,l))}s&&e.fromPoints(u,l)}function z(e,t){var i=t.mode,r=e._pointPrimitives,n=e._pointPrimitivesToUpdate,o=e._modelMatrix;e._createVertexArray||e._mode!==i||i!==w.SCENE3D&&!c.equals(o,e.modelMatrix)?(e._mode=i,c.clone(e.modelMatrix,o),e._createVertexArray=!0,i!==w.SCENE3D&&i!==w.SCENE2D&&i!==w.COLUMBUS_VIEW||B(e,r,r.length,t,o,!0)):i===w.MORPHING?B(e,r,r.length,t,o,!0):i!==w.SCENE2D&&i!==w.COLUMBUS_VIEW||B(e,n,e._pointPrimitivesToUpdateIndex,t,o,!1)}function k(e,t,i){var r=t.camera.getPixelSize(i,t.context.drawingBufferWidth,t.context.drawingBufferHeight),n=r*e._maxPixelSize;i.radius+=n}var V=A.SHOW_INDEX,U=A.POSITION_INDEX,G=A.COLOR_INDEX,H=A.OUTLINE_COLOR_INDEX,W=A.OUTLINE_WIDTH_INDEX,q=A.PIXEL_SIZE_INDEX,Y=A.SCALE_BY_DISTANCE_INDEX,j=A.TRANSLUCENCY_BY_DISTANCE_INDEX,X=A.DISTANCE_DISPLAY_CONDITION_INDEX,Q=A.DISABLE_DEPTH_DISTANCE_INDEX,K=A.NUMBER_OF_PROPERTIES,Z={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepth:5};o(x.prototype,{length:{get:function(){return D(this),this._pointPrimitives.length}}}),x.prototype.add=function(e){var t=new A(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t},x.prototype.remove=function(e){return!!this.contains(e)&&(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0)},x.prototype.removeAll=function(){P(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0},x.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]},x.prototype.contains=function(e){return n(e)&&e._pointPrimitiveCollection===this},x.prototype.get=function(e){return D(this),this._pointPrimitives[e]},x.prototype.computeNewBuffersUsage=function(){for(var e=this._buffersUsage,t=!1,i=this._propertiesChanged,r=0;r<K;++r){var n=0===i[r]?p.STATIC_DRAW:p.STREAM_DRAW;t=t||e[r]!==n,e[r]=n}return t};var J=new l,$=65536,ee=256,te=[];return x.prototype.update=function(t){D(this),this._maxTotalPointSize=f.maximumAliasedPointSize,z(this,t);var i,r=this._pointPrimitives,o=r.length,a=this._pointPrimitivesToUpdate,s=this._pointPrimitivesToUpdateIndex,l=this._propertiesChanged,u=this._createVertexArray,p=t.context,C=t.passes,A=C.pick;if(u||!A&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(var x=0;x<K;++x)l[x]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),o>0){this._vaf=I(p,o,this._buffersUsage),i=this._vaf.writers;for(var P=0;P<o;++P){var B=this._pointPrimitives[P];B._dirty=!1,F(this,p,i,B)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(s>0){var J=te;J.length=0,(l[U]||l[W]||l[q])&&J.push(M),(l[G]||l[H])&&J.push(R),(l[V]||l[j])&&J.push(O),l[Y]&&J.push(L),(l[X]||l[Q])&&J.push(N);var $=J.length;if(i=this._vaf.writers,s/o>.1){for(var ee=0;ee<s;++ee){var ie=a[ee];ie._dirty=!1;for(var re=0;re<$;++re)J[re](this,p,i,ie)}this._vaf.commit()}else{for(var ne=0;ne<s;++ne){var oe=a[ne];oe._dirty=!1;for(var ae=0;ae<$;++ae)J[ae](this,p,i,oe);this._vaf.subCommit(oe._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(s>1.5*o&&(a.length=o),n(this._vaf)&&n(this._vaf.va)){this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,e.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));var se,le=c.IDENTITY;t.mode===w.SCENE3D?(le=this.modelMatrix,se=e.clone(this._baseVolumeWC,this._boundingVolume)):se=e.clone(this._baseVolume2D,this._boundingVolume),k(this,t,se);var ue=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,ue&&(this._blendOption===E.OPAQUE||this._blendOption===E.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=g.fromCache({depthTest:{enabled:!0,func:h.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===E.TRANSLUCENT||this._blendOption===E.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=g.fromCache({depthTest:{enabled:!0,func:h.LEQUAL},depthMask:!1,blending:T.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||0!==t.minimumDisableDepthTestDistance;var ce,de;(ue||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(ce=new y({sources:[S]}),this._shaderScaleByDistance&&ce.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&ce.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&ce.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&ce.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===E.OPAQUE_AND_TRANSLUCENT&&(de=new y({defines:["OPAQUE"],sources:[b]}),this._sp=v.replaceCache({context:p,shaderProgram:this._sp,vertexShaderSource:ce,fragmentShaderSource:de,attributeLocations:Z}),de=new y({defines:["TRANSLUCENT"],sources:[b]}),this._spTranslucent=v.replaceCache({context:p,shaderProgram:this._spTranslucent,vertexShaderSource:ce,fragmentShaderSource:de,attributeLocations:Z})),this._blendOption===E.OPAQUE&&(de=new y({sources:[b]}),this._sp=v.replaceCache({context:p,shaderProgram:this._sp,vertexShaderSource:ce,fragmentShaderSource:de,attributeLocations:Z})),this._blendOption===E.TRANSLUCENT&&(de=new y({sources:[b]}),this._spTranslucent=v.replaceCache({context:p,shaderProgram:this._spTranslucent,vertexShaderSource:ce,fragmentShaderSource:de,attributeLocations:Z})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);var he,pe,fe,me,_e=t.commandList;if(C.render||A){var ge=this._colorCommands,ve=this._blendOption===E.OPAQUE,ye=this._blendOption===E.OPAQUE_AND_TRANSLUCENT;he=this._vaf.va,pe=he.length,ge.length=pe;var Ce=ye?2*pe:pe;for(me=0;me<Ce;++me){var be=ve||ye&&me%2==0;fe=ge[me],n(fe)||(fe=ge[me]=new m),fe.primitiveType=d.POINTS,fe.pass=be||!ye?_.OPAQUE:_.TRANSLUCENT,fe.owner=this;var Se=ye?Math.floor(me/2):me;fe.boundingVolume=se,fe.modelMatrix=le,fe.shaderProgram=be?this._sp:this._spTranslucent,fe.uniformMap=this._uniforms,fe.vertexArray=he[Se].va,fe.renderState=be?this._rsOpaque:this._rsTranslucent,fe.debugShowBoundingVolume=this.debugShowBoundingVolume,fe.pickId="v_pickColor",_e.push(fe)}}}},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(), -P(this._pointPrimitives),a(this)},x}),define("ThirdParty/kdbush",[],function(){"use strict";function e(e,i,r,n,o){return new t(e,i,r,n,o)}function t(e,t,n,a,s){t=t||i,n=n||r,s=s||Array,this.nodeSize=a||64,this.points=e,this.ids=new s(e.length),this.coords=new s(2*e.length);for(var l=0;l<e.length;l++)this.ids[l]=l,this.coords[2*l]=t(e[l]),this.coords[2*l+1]=n(e[l]);o(this.ids,this.coords,this.nodeSize,0,this.ids.length-1,0)}function i(e){return e[0]}function r(e){return e[1]}function n(e,t,i,r,n,o,a){for(var s,l,u=[0,e.length-1,0],c=[];u.length;){var d=u.pop(),h=u.pop(),p=u.pop();if(h-p<=a)for(var f=p;f<=h;f++)s=t[2*f],l=t[2*f+1],s>=i&&s<=n&&l>=r&&l<=o&&c.push(e[f]);else{var m=Math.floor((p+h)/2);s=t[2*m],l=t[2*m+1],s>=i&&s<=n&&l>=r&&l<=o&&c.push(e[m]);var _=(d+1)%2;(0===d?i<=s:r<=l)&&(u.push(p),u.push(m-1),u.push(_)),(0===d?n>=s:o>=l)&&(u.push(m+1),u.push(h),u.push(_))}}return c}function o(e,t,i,r,n,s){if(!(n-r<=i)){var l=Math.floor((r+n)/2);a(e,t,l,r,n,s%2),o(e,t,i,r,l-1,s+1),o(e,t,i,l+1,n,s+1)}}function a(e,t,i,r,n,o){for(;n>r;){if(n-r>600){var l=n-r+1,u=i-r+1,c=Math.log(l),d=.5*Math.exp(2*c/3),h=.5*Math.sqrt(c*d*(l-d)/l)*(u-l/2<0?-1:1);a(e,t,i,Math.max(r,Math.floor(i-u*d/l+h)),Math.min(n,Math.floor(i+(l-u)*d/l+h)),o)}var p=t[2*i+o],f=r,m=n;for(s(e,t,r,i),t[2*n+o]>p&&s(e,t,r,n);f<m;){for(s(e,t,f,m),f++,m--;t[2*f+o]<p;)f++;for(;t[2*m+o]>p;)m--}t[2*r+o]===p?s(e,t,r,m):(m++,s(e,t,m,n)),m<=i&&(r=m+1),i<=m&&(n=m-1)}}function s(e,t,i,r){l(e,i,r),l(t,2*i,2*r),l(t,2*i+1,2*r+1)}function l(e,t,i){var r=e[t];e[t]=e[i],e[i]=r}function u(e,t,i,r,n,o){for(var a=[0,e.length-1,0],s=[],l=n*n;a.length;){var u=a.pop(),d=a.pop(),h=a.pop();if(d-h<=o)for(var p=h;p<=d;p++)c(t[2*p],t[2*p+1],i,r)<=l&&s.push(e[p]);else{var f=Math.floor((h+d)/2),m=t[2*f],_=t[2*f+1];c(m,_,i,r)<=l&&s.push(e[f]);var g=(u+1)%2;(0===u?i-n<=m:r-n<=_)&&(a.push(h),a.push(f-1),a.push(g)),(0===u?i+n>=m:r+n>=_)&&(a.push(f+1),a.push(d),a.push(g))}}return s}function c(e,t,i,r){var n=e-i,o=t-r;return n*n+o*o}return t.prototype={range:function(e,t,i,r){return n(this.ids,this.coords,e,t,i,r,this.nodeSize)},within:function(e,t,i){return u(this.ids,this.coords,e,t,i,this.nodeSize)}},e}),define("DataSources/EntityCluster",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/EllipsoidalOccluder","../Core/Event","../Core/Matrix4","../Scene/Billboard","../Scene/BillboardCollection","../Scene/Label","../Scene/LabelCollection","../Scene/PointPrimitive","../Scene/PointPrimitiveCollection","../Scene/SceneMode","../ThirdParty/kdbush"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){e=r(e,r.EMPTY_OBJECT),this._enabled=r(e.enabled,!1),this._pixelRange=r(e.pixelRange,80),this._minimumClusterSize=r(e.minimumClusterSize,2),this._clusterBillboards=r(e.clusterBillboards,!0),this._clusterLabels=r(e.clusterLabels,!0),this._clusterPoints=r(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new s}function v(e){return e.coord.x}function y(e){return e.coord.y}function C(e,t){e.x-=t,e.y-=t,e.width+=2*t,e.height+=2*t}function b(t,i,r,o,a){if(n(t._labelCollection)&&o._clusterLabels?a=d.getScreenSpaceBoundingBox(t,i,a):n(t._billboardCollection)&&o._clusterBillboards?a=u.getScreenSpaceBoundingBox(t,i,a):n(t._pointPrimitiveCollection)&&o._clusterPoints&&(a=p.getScreenSpaceBoundingBox(t,i,a)),C(a,r),o._clusterLabels&&!n(t._labelCollection)&&n(t.id)&&E(o,t.id)&&n(t.id._label)){var s=o._collectionIndicesByEntity[t.id],l=o._labelCollection.get(s),c=d.getScreenSpaceBoundingBox(l,i,M);C(c,r),a=e.union(a,c,a)}return a}function S(e,t){if(e.clusterShow=!0,!n(e._labelCollection)&&n(e.id)&&E(t,e.id)&&n(e.id._label)){var i=t._collectionIndicesByEntity[e.id];t._labelCollection.get(i).clusterShow=!0}}function T(e,t,i,r){var n={billboard:r._clusterBillboardCollection.add(),label:r._clusterLabelCollection.add(),point:r._clusterPointCollection.add()};n.billboard.show=!1,n.point.show=!1,n.label.show=!0,n.label.text=t.toLocaleString(),n.label.id=i,n.billboard.position=n.label.position=n.point.position=e,r._clusterEvent.raiseEvent(i,n)}function E(e,t){return n(e)&&n(e._collectionIndicesByEntity[t])&&n(e._collectionIndicesByEntity[t].labelIndex)}function A(e,t,i,r,o){if(n(e))for(var a=e.length,s=0;s<a;++s){var l=e.get(s);if(l.clusterShow=!1,l.show&&(o._scene.mode!==m.SCENE3D||r.isPointVisible(l.position))){var u=o._clusterLabels&&n(l._labelCollection),c=o._clusterBillboards&&n(l.id._billboard),d=o._clusterPoints&&n(l.id._point);if(!u||!d&&!c){var h=l.computeScreenSpacePosition(i);n(h)&&t.push({index:s,collection:e,clustered:!1,coord:h})}}}}function w(r){return function(o){if(!(n(o)&&o<.05)&&r.enabled){var s=r._scene,d=r._labelCollection,p=r._billboardCollection,m=r._pointCollection;if((n(d)||n(p)||n(m))&&(r._clusterBillboards||r._clusterLabels||r._clusterPoints)){var g=r._clusterLabelCollection,C=r._clusterBillboardCollection,E=r._clusterPointCollection;n(g)?g.removeAll():g=r._clusterLabelCollection=new h({scene:s}),n(C)?C.removeAll():C=r._clusterBillboardCollection=new c({scene:s}),n(E)?E.removeAll():E=r._clusterPointCollection=new f;var w=r._pixelRange,x=r._minimumClusterSize,P=r._previousClusters,D=[],I=r._previousHeight,M=s.camera.positionCartographic.height,N=s.mapProjection.ellipsoid,F=s.camera.positionWC,B=new a(N,F),z=[];r._clusterLabels&&A(d,z,s,B,r),r._clusterBillboards&&A(p,z,s,B,r),r._clusterPoints&&A(m,z,s,B,r);var k,V,U,G,H,W,q,Y,j,X,Q,K,Z=_(z,v,y,64,Int32Array);if(M<I)for(U=P.length,k=0;k<U;++k){var J=P[k];if(B.isPointVisible(J.position)){var $=u._computeScreenSpacePosition(l.IDENTITY,J.position,i.ZERO,t.ZERO,s);if(n($)){var ee=1-M/I,te=J.width=J.width*ee,ie=J.height=J.height*ee;te=Math.max(te,J.minimumWidth),ie=Math.max(ie,J.minimumHeight);var re=$.x-.5*te,ne=$.y-.5*ie,oe=$.x+te,ae=$.y+ie;for(H=Z.range(re,ne,oe,ae),W=H.length,X=0,j=[],V=0;V<W;++V)q=H[V],Y=z[q],Y.clustered||(++X,Q=Y.collection,K=Y.index,j.push(Q.get(K).id));if(X>=x)for(T(J.position,X,j,r),D.push(J),V=0;V<W;++V)z[H[V]].clustered=!0}}}for(U=z.length,k=0;k<U;++k){var se=z[k];if(!se.clustered){se.clustered=!0,Q=se.collection,K=se.index;var le=Q.get(K);G=b(le,se.coord,w,r,R);var ue=e.clone(G,O);H=Z.range(G.x,G.y,G.x+G.width,G.y+G.height),W=H.length;var ce=i.clone(le.position);for(X=1,j=[le.id],V=0;V<W;++V)if(q=H[V],Y=z[q],!Y.clustered){var de=Y.collection.get(Y.index),he=b(de,Y.coord,w,r,L);i.add(de.position,ce,ce),e.union(ue,he,ue),++X,j.push(de.id)}if(X>=x){var pe=i.multiplyByScalar(ce,1/X,ce);for(T(pe,X,j,r),D.push({position:pe,width:ue.width,height:ue.height,minimumWidth:G.width,minimumHeight:G.height}),V=0;V<W;++V)z[H[V]].clustered=!0}else S(le,r)}}0===g.length&&(g.destroy(),r._clusterLabelCollection=void 0),0===C.length&&(C.destroy(),r._clusterBillboardCollection=void 0),0===E.length&&(E.destroy(),r._clusterPointCollection=void 0),r._previousClusters=D,r._previousHeight=M}}}}function x(e,t,i,r){return function(o){var a=this[e];n(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});var s=this._collectionIndicesByEntity[o.id];if(n(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),n(a)&&n(s[r]))return a.get(s[r]);n(a)||(a=this[e]=new t({scene:this._scene}));var l,u,c=this[i];return c.length>0?(l=c.pop(),u=a.get(l)):(u=a.add(),l=a.length-1),s[r]=l,this._clusterDirty=!0,u}}function P(e,t){var i=e._collectionIndicesByEntity[t];n(i.billboardIndex)||n(i.labelIndex)||n(i.pointIndex)||delete e._collectionIndicesByEntity[t]}function D(e){if(n(e))for(var t=e.length,i=0;i<t;++i)e.get(i).clusterShow=!0}function I(e){e.enabled||(n(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),n(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),n(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,D(e._labelCollection),D(e._billboardCollection),D(e._pointCollection))}var M=new e,R=new e,O=new e,L=new e;return g.prototype._initialize=function(e){this._scene=e;var t=w(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)},o(g.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}}),g.prototype.getLabel=x("_labelCollection",h,"_unusedLabelIndices","labelIndex"),g.prototype.removeLabel=function(e){var t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(n(this._labelCollection)&&n(t)&&n(t.labelIndex)){var i=t.labelIndex;t.labelIndex=void 0,P(this,e.id);var r=this._labelCollection.get(i);r.show=!1,r.text="",r.id=void 0,this._unusedLabelIndices.push(i),this._clusterDirty=!0}},g.prototype.getBillboard=x("_billboardCollection",c,"_unusedBillboardIndices","billboardIndex"),g.prototype.removeBillboard=function(e){var t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(n(this._billboardCollection)&&n(t)&&n(t.billboardIndex)){var i=t.billboardIndex;t.billboardIndex=void 0,P(this,e.id);var r=this._billboardCollection.get(i);r.id=void 0,r.show=!1,r.image=void 0,this._unusedBillboardIndices.push(i),this._clusterDirty=!0}},g.prototype.getPoint=x("_pointCollection",f,"_unusedPointIndices","pointIndex"),g.prototype.removePoint=function(e){var t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(n(this._pointCollection)&&n(t)&&n(t.pointIndex)){var i=t.pointIndex;t.pointIndex=void 0,P(this,e.id);var r=this._pointCollection.get(i);r.show=!1,r.id=void 0,this._unusedPointIndices.push(i),this._clusterDirty=!0}},g.prototype.update=function(e){var t;n(this._labelCollection)&&this._labelCollection.length>0&&0===this._labelCollection.get(0)._glyphs.length&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),n(this._billboardCollection)&&this._billboardCollection.length>0&&!n(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,I(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),n(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),n(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),n(this._clusterPointCollection)&&this._clusterPointCollection.update(e),n(this._labelCollection)&&this._labelCollection.update(e),n(this._billboardCollection)&&this._billboardCollection.update(e),n(this._pointCollection)&&this._pointCollection.update(e)},g.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),n(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1},g}),define("DataSources/CustomDataSource",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","./DataSource","./EntityCluster","./EntityCollection"],function(e,t,i,r,n,o,a){"use strict";function s(e){this._name=e,this._clock=void 0,this._changed=new r,this._error=new r,this._isLoading=!1,this._loading=new r,this._entityCollection=new a(this),this._entityCluster=new o}return t(s.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){n.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}}),s}),define("DataSources/CylinderGeometryUpdater",["../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/CylinderGeometry","../Core/CylinderOutlineGeometry","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./heightReferenceOnEntityPropertyChanged","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function E(e,t){b.call(this,{entity:e,scene:t,geometryOptions:new T(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}function A(e,t,i){C.call(this,e,t,i)}var w=e.ZERO,x=new e,P=new e,D=new i;return a(Object.create)&&(E.prototype=Object.create(b.prototype),E.prototype.constructor=E),s(E.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}}),E.prototype.createFillGeometryInstance=function(e){var t=this._entity,o=t.isAvailable(e),s=new f(o&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),l=this._distanceDisplayConditionProperty.getValue(e),d=u.fromDistanceDisplayCondition(l),h={show:s,distanceDisplayCondition:d,color:void 0,offset:void 0};if(this._materialProperty instanceof y){var m;a(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(m=this._materialProperty.color.getValue(e,D)),a(m)||(m=i.WHITE),h.color=r.fromColor(m)}return a(this._options.offsetAttribute)&&(h.offset=p.fromCartesian3(S.getValueOrDefault(this._terrainOffsetProperty,e,w,x))),new c({id:t,geometry:new n(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,.5*this._options.length,this._scene.mapProjection.ellipsoid),attributes:h})},E.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,n=t.isAvailable(e),s=S.getValueOrDefault(this._outlineColorProperty,e,i.BLACK,D),l=this._distanceDisplayConditionProperty.getValue(e),d={show:new f(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:r.fromColor(s),distanceDisplayCondition:u.fromDistanceDisplayCondition(l),offset:void 0};return a(this._options.offsetAttribute)&&(d.offset=p.fromCartesian3(S.getValueOrDefault(this._terrainOffsetProperty,e,w,x))),new c({id:t,geometry:new o(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,.5*this._options.length,this._scene.mapProjection.ellipsoid),attributes:d})},E.prototype._computeCenter=function(e,t){return S.getValueOrUndefined(this._entity.position,e,t)},E.prototype._isHidden=function(e,t){return!a(e.position)||!a(t.length)||!a(t.topRadius)||!a(t.bottomRadius)||b.prototype._isHidden.call(this,e,t)},E.prototype._isDynamic=function(e,t){return!(e.position.isConstant&&S.isConstant(e.orientation)&&t.length.isConstant&&t.topRadius.isConstant&&t.bottomRadius.isConstant&&S.isConstant(t.slices)&&S.isConstant(t.outlineWidth)&&S.isConstant(t.numberOfVerticalLines))},E.prototype._setStaticOptions=function(e,t){var i=S.getValueOrDefault(t.heightReference,h.MINIMUM_VALUE,m.NONE),r=this._options;r.vertexFormat=this._materialProperty instanceof y?g.VERTEX_FORMAT:_.MaterialSupport.TEXTURED.vertexFormat,r.length=t.length.getValue(h.MINIMUM_VALUE),r.topRadius=t.topRadius.getValue(h.MINIMUM_VALUE),r.bottomRadius=t.bottomRadius.getValue(h.MINIMUM_VALUE),r.slices=S.getValueOrUndefined(t.slices,h.MINIMUM_VALUE),r.numberOfVerticalLines=S.getValueOrUndefined(t.numberOfVerticalLines,h.MINIMUM_VALUE),r.offsetAttribute=i!==m.NONE?d.ALL:void 0},E.prototype._onEntityPropertyChanged=v,E.DynamicGeometryUpdater=A,a(Object.create)&&(A.prototype=Object.create(C.prototype),A.prototype.constructor=A),A.prototype._isHidden=function(e,t,i){var r=this._options,n=S.getValueOrUndefined(e.position,i,P);return!a(n)||!a(r.length)||!a(r.topRadius)||!a(r.bottomRadius)||C.prototype._isHidden.call(this,e,t,i)},A.prototype._setOptions=function(e,t,i){var r=S.getValueOrDefault(t.heightReference,i,m.NONE),n=this._options;n.length=S.getValueOrUndefined(t.length,i),n.topRadius=S.getValueOrUndefined(t.topRadius,i),n.bottomRadius=S.getValueOrUndefined(t.bottomRadius,i),n.slices=S.getValueOrUndefined(t.slices,i),n.numberOfVerticalLines=S.getValueOrUndefined(t.numberOfVerticalLines,i),n.offsetAttribute=r!==m.NONE?d.ALL:void 0},E}),define("Scene/ColorBlendMode",["../Core/freezeObject","../Core/Math"],function(e,t){"use strict";var i={HIGHLIGHT:0,REPLACE:1,MIX:2};return i.getColorBlend=function(e,r){return e===i.HIGHLIGHT?0:e===i.REPLACE?1:e===i.MIX?t.clamp(r,t.EPSILON4,1):void 0},e(i)}),define("DataSources/DataSourceClock",["../Core/Clock","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/JulianDate","./createRawPropertyDescriptor"],function(e,t,i,r,n,o,a,s){"use strict";function l(){this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0,this._definitionChanged=new o}return r(l.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:s("startTime"),stopTime:s("stopTime"),currentTime:s("currentTime"),clockRange:s("clockRange"),clockStep:s("clockStep"),multiplier:s("multiplier")}),l.prototype.clone=function(e){return i(e)||(e=new l),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e},l.prototype.equals=function(e){return this===e||i(e)&&a.equals(this.startTime,e.startTime)&&a.equals(this.stopTime,e.stopTime)&&a.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier},l.prototype.merge=function(e){this.startTime=t(this.startTime,e.startTime),this.stopTime=t(this.stopTime,e.stopTime),this.currentTime=t(this.currentTime,e.currentTime),this.clockRange=t(this.clockRange,e.clockRange),this.clockStep=t(this.clockStep,e.clockStep),this.multiplier=t(this.multiplier,e.multiplier)},l.prototype.getValue=function(r){return i(r)||(r=new e),r.startTime=t(this.startTime,r.startTime),r.stopTime=t(this.stopTime,r.stopTime),r.currentTime=t(this.currentTime,r.currentTime),r.clockRange=t(this.clockRange,r.clockRange),r.multiplier=t(this.multiplier,r.multiplier),r.clockStep=t(this.clockStep,r.clockStep),r},l}),define("DataSources/GridMaterialProperty",["../Core/Cartesian2","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=i(e,i.EMPTY_OBJECT),this._definitionChanged=new o,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}var u=t.WHITE,c=new e(8,8),d=new e(0,0),h=new e(1,1);return n(l.prototype,{isConstant:{get:function(){return s.isConstant(this._color)&&s.isConstant(this._cellAlpha)&&s.isConstant(this._lineCount)&&s.isConstant(this._lineThickness)&&s.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:a("color"),cellAlpha:a("cellAlpha"),lineCount:a("lineCount"),lineThickness:a("lineThickness"),lineOffset:a("lineOffset")}),l.prototype.getType=function(e){return"Grid"},l.prototype.getValue=function(e,t){return r(t)||(t={}),t.color=s.getValueOrClonedDefault(this._color,e,u,t.color),t.cellAlpha=s.getValueOrDefault(this._cellAlpha,e,.1),t.lineCount=s.getValueOrClonedDefault(this._lineCount,e,c,t.lineCount),t.lineThickness=s.getValueOrClonedDefault(this._lineThickness,e,h,t.lineThickness),t.lineOffset=s.getValueOrClonedDefault(this._lineOffset,e,d,t.lineOffset),t},l.prototype.equals=function(e){return this===e||e instanceof l&&s.equals(this._color,e._color)&&s.equals(this._cellAlpha,e._cellAlpha)&&s.equals(this._lineCount,e._lineCount)&&s.equals(this._lineThickness,e._lineThickness)&&s.equals(this._lineOffset,e._lineOffset)},l}),define("DataSources/PolylineArrowMaterialProperty",["../Core/Color","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o){"use strict";function a(e){this._definitionChanged=new r,this._color=void 0,this._colorSubscription=void 0,this.color=e}return i(a.prototype,{isConstant:{get:function(){return o.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:n("color")}),a.prototype.getType=function(e){return"PolylineArrow"},a.prototype.getValue=function(i,r){return t(r)||(r={}),r.color=o.getValueOrClonedDefault(this._color,i,e.WHITE,r.color),r},a.prototype.equals=function(e){return this===e||e instanceof a&&o.equals(this._color,e._color)},a}),define("DataSources/PolylineDashMaterialProperty",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._definitionChanged=new n,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}var l=e.WHITE,u=e.TRANSPARENT;return r(s.prototype,{isConstant:{get:function(){return a.isConstant(this._color)&&a.isConstant(this._gapColor)&&a.isConstant(this._dashLength)&&a.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:o("color"),gapColor:o("gapColor"),dashLength:o("dashLength"),dashPattern:o("dashPattern")}),s.prototype.getType=function(e){return"PolylineDash"},s.prototype.getValue=function(e,t){return i(t)||(t={}),t.color=a.getValueOrClonedDefault(this._color,e,l,t.color),t.gapColor=a.getValueOrClonedDefault(this._gapColor,e,u,t.gapColor),t.dashLength=a.getValueOrDefault(this._dashLength,e,16,t.dashLength),t.dashPattern=a.getValueOrDefault(this._dashPattern,e,255,t.dashPattern),t},s.prototype.equals=function(e){return this===e||e instanceof s&&a.equals(this._color,e._color)&&a.equals(this._gapColor,e._gapColor)&&a.equals(this._dashLength,e._dashLength)&&a.equals(this._dashPattern,e._dashPattern)},s}),define("DataSources/PolylineGlowMaterialProperty",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._definitionChanged=new n,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}var l=e.WHITE;return r(s.prototype,{isConstant:{get:function(){return a.isConstant(this._color)&&a.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:o("color"),glowPower:o("glowPower"),taperPower:o("taperPower")}),s.prototype.getType=function(e){return"PolylineGlow"},s.prototype.getValue=function(e,t){return i(t)||(t={}),t.color=a.getValueOrClonedDefault(this._color,e,l,t.color),t.glowPower=a.getValueOrDefault(this._glowPower,e,.25,t.glowPower),t.taperPower=a.getValueOrDefault(this._taperPower,e,1,t.taperPower),t},s.prototype.equals=function(e){return this===e||e instanceof s&&a.equals(this._color,e._color)&&a.equals(this._glowPower,e._glowPower)&&a.equals(this._taperPower,e._taperPower)},s}),define("DataSources/PolylineOutlineMaterialProperty",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._definitionChanged=new n,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}var l=e.WHITE,u=e.BLACK;return r(s.prototype,{isConstant:{get:function(){return a.isConstant(this._color)&&a.isConstant(this._outlineColor)&&a.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:o("color"),outlineColor:o("outlineColor"),outlineWidth:o("outlineWidth")}),s.prototype.getType=function(e){return"PolylineOutline"},s.prototype.getValue=function(e,t){return i(t)||(t={}),t.color=a.getValueOrClonedDefault(this._color,e,l,t.color),t.outlineColor=a.getValueOrClonedDefault(this._outlineColor,e,u,t.outlineColor),t.outlineWidth=a.getValueOrDefault(this._outlineWidth,e,1),t},s.prototype.equals=function(e){return this===e||e instanceof s&&a.equals(this._color,e._color)&&a.equals(this._outlineColor,e._outlineColor)&&a.equals(this._outlineWidth,e._outlineWidth)},s}),define("DataSources/PositionPropertyArray",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/EventHelper","../Core/ReferenceFrame","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(t,i){this._value=void 0,this._definitionChanged=new n,this._eventHelper=new o,this._referenceFrame=e(i,a.FIXED),this.setValue(t)}return i(l.prototype,{isConstant:{get:function(){var e=this._value;if(!t(e))return!0;for(var i=e.length,r=0;r<i;r++)if(!s.isConstant(e[r]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}}),l.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,a.FIXED,t)},l.prototype.getValueInReferenceFrame=function(e,i,r){var n=this._value;if(t(n)){var o=n.length;t(r)||(r=new Array(o));for(var a=0,s=0;a<o;){var l=n[a],u=l.getValueInReferenceFrame(e,i,r[a]);t(u)&&(r[s]=u,s++),a++}return r.length=s,r}},l.prototype.setValue=function(e){var i=this._eventHelper;if(i.removeAll(),t(e)){this._value=e.slice();for(var r=e.length,n=0;n<r;n++){var o=e[n];t(o)&&i.add(o.definitionChanged,l.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)},l.prototype.equals=function(e){return this===e||e instanceof l&&this._referenceFrame===e._referenceFrame&&s.arrayEquals(this._value,e._value)},l.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)},l}),define("DataSources/PropertyArray",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/EventHelper","./Property"],function(e,t,i,r,n,o){"use strict";function a(e){this._value=void 0,this._definitionChanged=new r,this._eventHelper=new n,this.setValue(e)}return t(a.prototype,{isConstant:{get:function(){var t=this._value;if(!e(t))return!0;for(var i=t.length,r=0;r<i;r++)if(!o.isConstant(t[r]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}}),a.prototype.getValue=function(t,i){var r=this._value;if(e(r)){var n=r.length;e(i)||(i=new Array(n));for(var o=0,a=0;o<n;){var s=this._value[o],l=s.getValue(t,i[o]);e(l)&&(i[a]=l,a++),o++}return i.length=a,i}},a.prototype.setValue=function(t){var i=this._eventHelper;if(i.removeAll(),e(t)){this._value=t.slice();for(var r=t.length,n=0;n<r;n++){var o=t[n];e(o)&&i.add(o.definitionChanged,a.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)},a.prototype.equals=function(e){return this===e||e instanceof a&&o.arrayEquals(this._value,e._value)},a.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)},a}),define("DataSources/ReferenceProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/RuntimeError","./Property"],function(e,t,i,r,n,o){"use strict";function a(t){var i=!0;if(t._resolveEntity){var r=t._targetCollection.getById(t._targetId);if(e(r)?(r.definitionChanged.addEventListener(l.prototype._onTargetEntityDefinitionChanged,t),t._targetEntity=r,t._resolveEntity=!1):(r=t._targetEntity,i=!1),!e(r))throw new n('target entity "'+t._targetId+'" could not be resolved.')}return i}function s(t){var i=t._targetProperty;if(t._resolveProperty){var r=a(t),o=t._targetPropertyNames;i=t._targetEntity;for(var s=o.length,l=0;l<s&&e(i);l++)i=i[o[l]];if(e(i))t._targetProperty=i,t._resolveProperty=!r;else if(!e(t._targetProperty))throw new n('targetProperty "'+t._targetId+"."+o.join(".")+'" could not be resolved.')}return i}function l(e,t,i){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=i,this._targetProperty=void 0,this._targetEntity=void 0, -this._definitionChanged=new r,this._resolveEntity=!0,this._resolveProperty=!0,e.collectionChanged.addEventListener(l.prototype._onCollectionChanged,this)}return t(l.prototype,{isConstant:{get:function(){return o.isConstant(s(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return s(this).referenceFrame}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return s(this)}}}),l.fromString=function(e,t){for(var i,r=[],n=!0,o=!1,a="",s=0;s<t.length;++s){var u=t.charAt(s);o?(a+=u,o=!1):"\\"===u?o=!0:n&&"#"===u?(i=a,n=!1,a=""):n||"."!==u?a+=u:(r.push(a),a="")}return r.push(a),new l(e,i,r)},l.prototype.getValue=function(e,t){return s(this).getValue(e,t)},l.prototype.getValueInReferenceFrame=function(e,t,i){return s(this).getValueInReferenceFrame(e,t,i)},l.prototype.getType=function(e){return s(this).getType(e)},l.prototype.equals=function(e){if(this===e)return!0;var t=this._targetPropertyNames,i=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==i.length)return!1;for(var r=this._targetPropertyNames.length,n=0;n<r;n++)if(t[n]!==i[n])return!1;return!0},l.prototype._onTargetEntityDefinitionChanged=function(e,t,i,r){this._targetPropertyNames[0]===t&&(this._resolveProperty=!0,this._definitionChanged.raiseEvent(this))},l.prototype._onCollectionChanged=function(t,i,r){var n=this._targetEntity;e(n)&&(-1!==r.indexOf(n)?(n.definitionChanged.removeEventListener(l.prototype._onTargetEntityDefinitionChanged,this),this._resolveEntity=!0,this._resolveProperty=!0):this._resolveEntity&&(s(this),this._resolveEntity||this._definitionChanged.raiseEvent(this)))},l}),define("DataSources/Rotation",["../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/Math"],function(e,t,i,r){"use strict";return{packedLength:1,pack:function(t,i,r){return r=e(r,0),i[r]=t,i},unpack:function(t,i,r){return i=e(i,0),t[i]},convertPackedArrayForInterpolation:function(t,i,n,o){i=e(i,0),n=e(n,t.length);for(var a,s=0,l=n-i+1;s<l;s++){var u=t[i+s];0===s||Math.abs(a-u)<Math.PI?o[s]=u:o[s]=u-r.TWO_PI,a=u}},unpackInterpolationResult:function(e,t,i,n,o){return o=e[0],o<0?o+r.TWO_PI:o}}}),define("DataSources/SampledProperty",["../Core/binarySearch","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/ExtrapolationType","../Core/JulianDate","../Core/LinearApproximation"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,t,i){var r,n=e.length,o=i.length,a=n+o;if(e.length=a,n!==t){var s=n-1;for(r=a-1;r>=t;r--)e[r]=e[s--]}for(r=0;r<o;r++)e[t++]=i[r]}function d(e,t){return e instanceof l?e:"string"==typeof e?l.fromIso8601(e):l.addSeconds(t,e,new l)}function h(t,i,n,o,a){for(var s,u,h,p,f,m,v=0;v<o.length;){f=d(o[v],t),h=e(i,f,l.compare);var y=0,C=0;if(h<0){for(h=~h,p=h*a,u=void 0,m=i[h];v<o.length&&(f=d(o[v],t),!(r(u)&&l.compare(u,f)>=0||r(m)&&l.compare(f,m)>=0));){for(_[y++]=f,v+=1,s=0;s<a;s++)g[C++]=o[v],v+=1;u=f}y>0&&(g.length=C,c(n,p,g),_.length=y,c(i,h,_))}else{for(s=0;s<a;s++)v++,n[h*a+s]=o[v];v++}}}function p(e,t){var n=e;n===Number&&(n=m);var o,l=n.packedLength,c=i(n.packedInterpolationLength,l),d=0;if(r(t)){var h=t.length;o=new Array(h);for(var p=0;p<h;p++){var f=t[p];f===Number&&(f=m);var _=f.packedLength;l+=_,c+=i(f.packedInterpolationLength,_),o[p]=f}d=h}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=u,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=l,this._packedInterpolationLength=c,this._updateTableLength=!0,this._interpolationResult=new Array(c),this._definitionChanged=new a,this._derivativeTypes=t,this._innerDerivativeTypes=o,this._inputOrder=d,this._forwardExtrapolationType=s.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=s.NONE,this._backwardExtrapolationDuration=0}function f(e,t,i){var r=e._packedLength;e._times.splice(t,i),e._values.splice(t*r,i*r),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}var m={packedLength:1,pack:function(e,t,r){r=i(r,0),t[r]=e},unpack:function(e,t,r){return t=i(t,0),e[t]}},_=[],g=[];return n(p.prototype,{isConstant:{get:function(){return 0===this._values.length}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}}),p.prototype.getValue=function(t,i){var n=this._times,o=n.length;if(0!==o){var a,u=this._innerType,c=this._values,d=e(n,t,l.compare);if(d<0){if(0===(d=~d)){var h=n[d];if(a=this._backwardExtrapolationDuration,this._backwardExtrapolationType===s.NONE||0!==a&&l.secondsDifference(h,t)>a)return;if(this._backwardExtrapolationType===s.HOLD)return u.unpack(c,0,i)}if(d>=o){d=o-1;var p=n[d];if(a=this._forwardExtrapolationDuration,this._forwardExtrapolationType===s.NONE||0!==a&&l.secondsDifference(t,p)>a)return;if(this._forwardExtrapolationType===s.HOLD)return d=o-1,u.unpack(c,d*u.packedLength,i)}var f=this._xTable,m=this._yTable,_=this._interpolationAlgorithm,g=this._packedInterpolationLength,v=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;var y=Math.min(_.getRequiredDataPoints(this._interpolationDegree,v),o);y!==this._numberOfPoints&&(this._numberOfPoints=y,f.length=y,m.length=y*g)}var C=this._numberOfPoints-1;if(C<1)return;var b=0,S=o-1;if(S-b+1>=C+1){var T=d-(C/2|0)-1;T<b&&(T=b);var E=T+C;E>S&&(E=S,(T=E-C)<b&&(T=b)),b=T,S=E}for(var A=S-b+1,w=0;w<A;++w)f[w]=l.secondsDifference(n[b+w],n[S]);if(r(u.convertPackedArrayForInterpolation))u.convertPackedArrayForInterpolation(c,b,S,m);else for(var x=0,P=this._packedLength,D=b*P,I=(S+1)*P;D<I;)m[x]=c[D],D++,x++;var M,R=l.secondsDifference(t,n[S]);if(0!==v&&r(_.interpolate)){var O=Math.floor(g/(v+1));M=_.interpolate(R,f,m,O,v,v,this._interpolationResult)}else M=_.interpolateOrderZero(R,f,m,g,this._interpolationResult);return r(u.unpackInterpolationResult)?u.unpackInterpolationResult(M,c,b,S,i):u.unpack(M,0,i)}return u.unpack(c,d*this._packedLength,i)}},p.prototype.setInterpolationOptions=function(e){if(r(e)){var t=!1,i=e.interpolationAlgorithm,n=e.interpolationDegree;r(i)&&this._interpolationAlgorithm!==i&&(this._interpolationAlgorithm=i,t=!0),r(n)&&this._interpolationDegree!==n&&(this._interpolationDegree=n,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))}},p.prototype.addSample=function(e,t,i){var n=this._innerDerivativeTypes,o=r(n),a=this._innerType,s=[];if(s.push(e),a.pack(t,s,s.length),o)for(var l=n.length,u=0;u<l;u++)n[u].pack(i[u],s,s.length);h(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)},p.prototype.addSamples=function(e,t,i){for(var n=this._innerDerivativeTypes,o=r(n),a=this._innerType,s=e.length,l=[],u=0;u<s;u++)if(l.push(e[u]),a.pack(t[u],l,l.length),o)for(var c=i[u],d=n.length,p=0;p<d;p++)n[p].pack(c[p],l,l.length);h(void 0,this._times,this._values,l,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)},p.prototype.addSamplesPackedArray=function(e,t){h(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)},p.prototype.removeSample=function(t){var i=e(this._times,t,l.compare);return!(i<0)&&(f(this,i,1),!0)},p.prototype.removeSamples=function(t){var i=this._times,r=e(i,t.start,l.compare);r<0?r=~r:t.isStartIncluded||++r;var n=e(i,t.stop,l.compare);n<0?n=~n:t.isStopIncluded&&++n,f(this,r,n-r)},p.prototype.equals=function(e){if(this===e)return!0;if(!r(e))return!1;if(this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;var t=this._derivativeTypes,i=r(t),n=e._derivativeTypes;if(i!==r(n))return!1;var o,a;if(i){if((a=t.length)!==n.length)return!1;for(o=0;o<a;o++)if(t[o]!==n[o])return!1}var s=this._times,u=e._times;if((a=s.length)!==u.length)return!1;for(o=0;o<a;o++)if(!l.equals(s[o],u[o]))return!1;var c=this._values,d=e._values;for(o=0;o<a;o++)if(c[o]!==d[o])return!1;return!0},p._mergeNewSamples=h,p}),define("DataSources/SampledPositionProperty",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/ReferenceFrame","./PositionProperty","./Property","./SampledProperty"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(t,r){r=i(r,0);var n;if(r>0){n=new Array(r);for(var o=0;o<r;o++)n[o]=e}this._numberOfDerivatives=r,this._property=new c(e,n),this._definitionChanged=new a,this._referenceFrame=i(t,s.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}return n(d.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}}),d.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,s.FIXED,t)},d.prototype.getValueInReferenceFrame=function(e,t,i){if(i=this._property.getValue(e,i),r(i))return l.convertToReferenceFrame(e,i,this._referenceFrame,t,i)},d.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)},d.prototype.addSample=function(e,t,i){this._numberOfDerivatives;this._property.addSample(e,t,i)},d.prototype.addSamples=function(e,t,i){this._property.addSamples(e,t,i)},d.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)},d.prototype.removeSample=function(e){this._property.removeSample(e)},d.prototype.removeSamples=function(e){this._property.removeSamples(e)},d.prototype.equals=function(e){return this===e||e instanceof d&&u.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame},d}),define("DataSources/StripeOrientation",["../Core/freezeObject"],function(e){"use strict";return e({HORIZONTAL:0,VERTICAL:1})}),define("DataSources/StripeMaterialProperty",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","./createPropertyDescriptor","./Property","./StripeOrientation"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=t(e,t.EMPTY_OBJECT),this._definitionChanged=new n,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}var u=s.HORIZONTAL,c=e.WHITE,d=e.BLACK;return r(l.prototype,{isConstant:{get:function(){return a.isConstant(this._orientation)&&a.isConstant(this._evenColor)&&a.isConstant(this._oddColor)&&a.isConstant(this._offset)&&a.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:o("orientation"),evenColor:o("evenColor"),oddColor:o("oddColor"),offset:o("offset"),repeat:o("repeat")}),l.prototype.getType=function(e){return"Stripe"},l.prototype.getValue=function(e,t){return i(t)||(t={}),t.horizontal=a.getValueOrDefault(this._orientation,e,u)===s.HORIZONTAL,t.evenColor=a.getValueOrClonedDefault(this._evenColor,e,c,t.evenColor),t.oddColor=a.getValueOrClonedDefault(this._oddColor,e,d,t.oddColor),t.offset=a.getValueOrDefault(this._offset,e,0),t.repeat=a.getValueOrDefault(this._repeat,e,1),t},l.prototype.equals=function(e){return this===e||e instanceof l&&a.equals(this._orientation,e._orientation)&&a.equals(this._evenColor,e._evenColor)&&a.equals(this._oddColor,e._oddColor)&&a.equals(this._offset,e._offset)&&a.equals(this._repeat,e._repeat)},l}),define("DataSources/TimeIntervalCollectionPositionProperty",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/ReferenceFrame","../Core/TimeIntervalCollection","./PositionProperty","./Property"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t){this._definitionChanged=new n,this._intervals=new a,this._intervals.changedEvent.addEventListener(u.prototype._intervalsChanged,this),this._referenceFrame=e(t,o.FIXED)}return i(u.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}}),u.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,o.FIXED,t)},u.prototype.getValueInReferenceFrame=function(e,i,r){var n=this._intervals.findDataForIntervalContainingDate(e);if(t(n))return s.convertToReferenceFrame(e,n,this._referenceFrame,i,r)},u.prototype.equals=function(e){return this===e||e instanceof u&&this._intervals.equals(e._intervals,l.equals)&&this._referenceFrame===e._referenceFrame},u.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)},u}),define("DataSources/TimeIntervalCollectionProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/TimeIntervalCollection","./Property"],function(e,t,i,r,n,o){"use strict";function a(){this._definitionChanged=new r,this._intervals=new n,this._intervals.changedEvent.addEventListener(a.prototype._intervalsChanged,this)}return t(a.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}}),a.prototype.getValue=function(t,i){var r=this._intervals.findDataForIntervalContainingDate(t);return e(r)&&"function"==typeof r.clone?r.clone(i):r},a.prototype.equals=function(e){return this===e||e instanceof a&&this._intervals.equals(e._intervals,o.equals)},a.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)},a}),define("DataSources/VelocityVectorProperty",["../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/JulianDate","./Property"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,i){this._position=void 0,this._subscription=void 0,this._definitionChanged=new o,this._normalize=t(i,!0),this.position=e}r(l.prototype,{isConstant:{get:function(){return s.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){var t=this._position;t!==e&&(i(t)&&this._subscription(),this._position=e,i(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var u=new e,c=new e,d=new a;return l.prototype.getValue=function(e,t){return this._getValue(e,t)},l.prototype._getValue=function(t,r,n){i(r)||(r=new e);var o=this._position;if(s.isConstant(o))return this._normalize?void 0:e.clone(e.ZERO,r);var l=o.getValue(t,u),h=o.getValue(a.addSeconds(t,1/60,d),c);if(i(l)&&(i(h)||(h=l,l=o.getValue(a.addSeconds(t,-1/60,d),c),i(l)))){if(e.equals(l,h))return this._normalize?void 0:e.clone(e.ZERO,r);i(n)&&l.clone(n);var p=e.subtract(h,l,r);return this._normalize?e.normalize(p,r):e.divideByScalar(p,1/60,r)}},l.prototype.equals=function(e){return this===e||e instanceof l&&s.equals(this._position,e._position)},l}),define("DataSources/VelocityOrientationProperty",["../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Ellipsoid","../Core/Event","../Core/Matrix3","../Core/Quaternion","../Core/Transforms","./Property","./VelocityVectorProperty"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,i){this._velocityVectorProperty=new c(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new o,this.ellipsoid=t(i,n.WGS84);var r=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){r._definitionChanged.raiseEvent(r)})}r(d.prototype,{isConstant:{get:function(){return u.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var h=new e,p=new e,f=new a;return d.prototype.getValue=function(e,t){var r=this._velocityVectorProperty._getValue(e,p,h);if(i(r))return l.rotationMatrixFromPositionVelocity(h,r,this._ellipsoid,f),s.fromRotationMatrix(f,t)},d.prototype.equals=function(e){return this===e||e instanceof d&&u.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))},d}),define("DataSources/CzmlDataSource",["../Core/ArcType","../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/ClockRange","../Core/ClockStep","../Core/Color","../Core/CornerType","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/Ellipsoid","../Core/Event","../Core/ExtrapolationType","../Core/getFilenameFromUri","../Core/HermitePolynomialApproximation","../Core/isArray","../Core/Iso8601","../Core/JulianDate","../Core/LagrangePolynomialApproximation","../Core/LinearApproximation","../Core/Math","../Core/NearFarScalar","../Core/Quaternion","../Core/Rectangle","../Core/ReferenceFrame","../Core/Resource","../Core/RuntimeError","../Core/Spherical","../Core/TimeInterval","../Core/TimeIntervalCollection","../Scene/ColorBlendMode","../Scene/HeightReference","../Scene/HorizontalOrigin","../Scene/LabelStyle","../Scene/ShadowMode","../Scene/VerticalOrigin","../ThirdParty/Uri","../ThirdParty/when","./BillboardGraphics","./BoxGraphics","./CallbackProperty","./CheckerboardMaterialProperty","./ColorMaterialProperty","./CompositeMaterialProperty","./CompositePositionProperty","./CompositeProperty","./ConstantPositionProperty","./ConstantProperty","./CorridorGraphics","./CylinderGraphics","./DataSource","./DataSourceClock","./EllipseGraphics","./EllipsoidGraphics","./EntityCluster","./EntityCollection","./GridMaterialProperty","./ImageMaterialProperty","./LabelGraphics","./ModelGraphics","./NodeTransformationProperty","./PathGraphics","./PointGraphics","./PolygonGraphics","./PolylineArrowMaterialProperty","./PolylineDashMaterialProperty","./PolylineGlowMaterialProperty","./PolylineGraphics","./PolylineOutlineMaterialProperty","./PositionPropertyArray","./PropertyArray","./PropertyBag","./RectangleGraphics","./ReferenceProperty","./Rotation","./SampledPositionProperty","./SampledProperty","./StripeMaterialProperty","./StripeOrientation","./TimeIntervalCollectionPositionProperty","./TimeIntervalCollectionProperty","./VelocityOrientationProperty","./VelocityVectorProperty","./WallGraphics"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce,de,he,pe,fe,me,_e,ge,ve,ye,Ce,be,Se,Te,Ee,Ae,we,xe,Pe,De,Ie,Me,Re,Oe,Le){"use strict";function Ne(){}function Fe(e,t){return"#"===t[0]&&(t=Ht+t),Ee.fromString(e,t)}function Be(e,t,i){if(d(i.reference))return Fe(t,i.reference);if(d(i.velocityReference)){var n=Fe(t,i.velocityReference);switch(e){case r:case Ne:return new Oe(n,e===Ne);case x:return new Re(n)}}throw new M(JSON.stringify(i)+" is not valid CZML.")}function ze(e,t){return new q(function(i,r){return t(e.getValue(i,r))},e.isConstant)}function ke(e){var t=e.rgbaf;if(d(t))return t;var i=e.rgba;if(d(i)){var r=i.length;if(r===s.packedLength)return[s.byteToFloat(i[0]),s.byteToFloat(i[1]),s.byteToFloat(i[2]),s.byteToFloat(i[3])];t=new Array(r);for(var n=0;n<r;n+=5)t[n]=i[n],t[n+1]=s.byteToFloat(i[n+1]),t[n+2]=s.byteToFloat(i[n+2]),t[n+3]=s.byteToFloat(i[n+3]),t[n+4]=s.byteToFloat(i[n+4]);return t}}function Ve(e,t){var i=c(e.uri,e);return d(t)?t.getDerivedResource({url:i}):I.createIfNeeded(i)}function Ue(e){var t=e.wsen;if(d(t))return t;var i=e.wsenDegrees;if(d(i)){var r=i.length;if(r===P.packedLength)return[A.toRadians(i[0]),A.toRadians(i[1]),A.toRadians(i[2]),A.toRadians(i[3])];t=new Array(r);for(var n=0;n<r;n+=5)t[n]=i[n],t[n+1]=A.toRadians(i[n+1]),t[n+2]=A.toRadians(i[n+2]),t[n+3]=A.toRadians(i[n+3]),t[n+4]=A.toRadians(i[n+4]);return t}}function Ge(e){var t=e.length;if(qt.magnitude=1,2===t)return qt.clock=e[0],qt.cone=e[1],r.fromSpherical(qt,Wt),[Wt.x,Wt.y,Wt.z];for(var i=new Array(t/3*4),n=0,o=0;n<t;n+=3,o+=4)i[o]=e[n],qt.clock=e[n+1],qt.cone=e[n+2],r.fromSpherical(qt,Wt),i[o+1]=Wt.x,i[o+2]=Wt.y,i[o+3]=Wt.z;return i}function He(e){var t=e.length;if(3===t)return qt.clock=e[0],qt.cone=e[1],qt.magnitude=e[2],r.fromSpherical(qt,Wt),[Wt.x,Wt.y,Wt.z];for(var i=new Array(t),n=0;n<t;n+=4)i[n]=e[n],qt.clock=e[n+1],qt.cone=e[n+2],qt.magnitude=e[n+3],r.fromSpherical(qt,Wt),i[n+1]=Wt.x,i[n+2]=Wt.y,i[n+3]=Wt.z;return i}function We(e){var t=e.length;if(3===t)return Yt.longitude=e[0],Yt.latitude=e[1],Yt.height=e[2],m.WGS84.cartographicToCartesian(Yt,Wt),[Wt.x,Wt.y,Wt.z];for(var i=new Array(t),r=0;r<t;r+=4)i[r]=e[r],Yt.longitude=e[r+1],Yt.latitude=e[r+2],Yt.height=e[r+3],m.WGS84.cartographicToCartesian(Yt,Wt),i[r+1]=Wt.x,i[r+2]=Wt.y,i[r+3]=Wt.z;return i}function qe(e){var t=e.length;if(3===t)return Yt.longitude=A.toRadians(e[0]),Yt.latitude=A.toRadians(e[1]),Yt.height=e[2],m.WGS84.cartographicToCartesian(Yt,Wt),[Wt.x,Wt.y,Wt.z];for(var i=new Array(t),r=0;r<t;r+=4)i[r]=e[r],Yt.longitude=A.toRadians(e[r+1]),Yt.latitude=A.toRadians(e[r+2]),Yt.height=e[r+3],m.WGS84.cartographicToCartesian(Yt,Wt),i[r+1]=Wt.x,i[r+2]=Wt.y,i[r+3]=Wt.z;return i}function Ye(e){var t=e.cartesian;if(d(t))return t;var i=e.cartesianVelocity;if(d(i))return i;var r=e.unitCartesian;if(d(r))return r;var n=e.unitSpherical;if(d(n))return Ge(n);var o=e.spherical;if(d(o))return He(o);var a=e.cartographicRadians;if(d(a))return We(a);var s=e.cartographicDegrees;if(d(s))return qe(s);throw new M(JSON.stringify(e)+" is not a valid CZML interval.")}function je(e,t){r.unpack(e,t,Wt),r.normalize(Wt,Wt),r.pack(Wt,e,t)}function Xe(e){var t=Ye(e);if(3===t.length)return je(t,0),t;for(var i=1;i<t.length;i+=4)je(t,i);return t}function Qe(e,t){x.unpack(e,t,Xt),x.normalize(Xt,Xt),x.pack(Xt,e,t)}function Ke(e){var t=e.unitQuaternion;if(d(t)){if(4===t.length)return Qe(t,0),t;for(var i=1;i<t.length;i+=5)Qe(t,i)}return t}function Ze(n){return"boolean"==typeof n?Boolean:"number"==typeof n?Number:"string"==typeof n?String:n.hasOwnProperty("array")?Array:n.hasOwnProperty("boolean")?Boolean:n.hasOwnProperty("boundingRectangle")?t:n.hasOwnProperty("cartesian2")?i:n.hasOwnProperty("cartesian")||n.hasOwnProperty("spherical")||n.hasOwnProperty("cartographicRadians")||n.hasOwnProperty("cartographicDegrees")?r:n.hasOwnProperty("unitCartesian")||n.hasOwnProperty("unitSpherical")?Ne:n.hasOwnProperty("rgba")||n.hasOwnProperty("rgbaf")?s:n.hasOwnProperty("arcType")?e:n.hasOwnProperty("colorBlendMode")?N:n.hasOwnProperty("cornerType")?l:n.hasOwnProperty("heightReference")?F:n.hasOwnProperty("horizontalOrigin")?B:n.hasOwnProperty("date")?S:n.hasOwnProperty("labelStyle")?z:n.hasOwnProperty("number")?Number:n.hasOwnProperty("nearFarScalar")?w:n.hasOwnProperty("distanceDisplayCondition")?f:n.hasOwnProperty("object")||n.hasOwnProperty("value")?Object:n.hasOwnProperty("unitQuaternion")?x:n.hasOwnProperty("shadowMode")?k:n.hasOwnProperty("string")?String:n.hasOwnProperty("stripeOrientation")?De:n.hasOwnProperty("wsen")||n.hasOwnProperty("wsenDegrees")?P:n.hasOwnProperty("uri")?U:n.hasOwnProperty("verticalOrigin")?V:Object}function Je(n,o,a){switch(n){case e:return e[c(o.arcType,o)];case Array:return o.array;case Boolean:return c(o.boolean,o);case t:return o.boundingRectangle;case i:return o.cartesian2;case r:return Ye(o);case Ne:return Xe(o);case s:return ke(o);case N:return N[c(o.colorBlendMode,o)];case l:return l[c(o.cornerType,o)];case F:return F[c(o.heightReference,o)];case B:return B[c(o.horizontalOrigin,o)];case Image:return Ve(o,a);case S:return S.fromIso8601(c(o.date,o));case z:return z[c(o.labelStyle,o)];case Number:return c(o.number,o);case w:return o.nearFarScalar;case f:return o.distanceDisplayCondition;case Object:return c(c(o.object,o.value),o);case x:return Ke(o);case Ae:return c(o.number,o);case k:return k[c(c(o.shadowMode,o.shadows),o)];case String:return c(o.string,o);case De:return De[c(o.stripeOrientation,o)];case P:return Ue(o);case U:return Ve(o,a);case V:return V[c(o.verticalOrigin,o)];default:throw new M(n)}}function $e(e,t){var i=e.interpolationAlgorithm;(d(i)||d(e.interpolationDegree))&&t.setInterpolationOptions({interpolationAlgorithm:Qt[i],interpolationDegree:e.interpolationDegree});var r=e.forwardExtrapolationType;d(r)&&(t.forwardExtrapolationType=g[r]);var n=e.forwardExtrapolationDuration;d(n)&&(t.forwardExtrapolationDuration=n);var o=e.backwardExtrapolationType;d(o)&&(t.backwardExtrapolationType=g[o]);var a=e.backwardExtrapolationDuration;d(a)&&(t.backwardExtrapolationDuration=a)}function et(e,t,i,r,n,o,a){var s,l=r.interval;d(l)?(Kt.iso8601=l,s=O.fromIso8601(Kt),d(n)&&(s=O.intersect(s,n,jt))):d(n)&&(s=n);var u,h,p,f=!d(r.reference)&&!d(r.velocityReference),m=d(s)&&!s.equals(b.MAXIMUM_INTERVAL);if(!0===r.delete)return m?tt(t[i],s):void(t[i]=void 0);var _=!1;f&&(h=Je(e,r,o),u=c(e.packedLength,1),p=c(h.length,1),_=!d(r.array)&&"string"!=typeof h&&p>u&&e!==Object);var g="function"==typeof e.unpack&&e!==Ae;if(!_&&!m)return void(t[i]=f?new J(g?e.unpack(h,0):h):Be(e,a,r));var v,y=t[i],C=r.epoch;if(d(C)&&(v=S.fromIso8601(C)),_&&!m)return y instanceof xe||(y=new xe(e),t[i]=y),y.addSamplesPackedArray(h,v),void $e(r,y);var T;if(!_&&m)return s=s.clone(),s.data=f?g?e.unpack(h,0):h:Be(e,a,r),d(y)||(y=f?new Me:new K,t[i]=y),void(f&&y instanceof Me?y.intervals.addInterval(s):y instanceof K?(f&&(s.data=new J(s.data)),y.intervals.addInterval(s)):(T=b.MAXIMUM_INTERVAL.clone(),T.data=y,y=new K,t[i]=y,y.intervals.addInterval(T),f&&(s.data=new J(s.data)),y.intervals.addInterval(s)));d(y)||(y=new K,t[i]=y),y instanceof K||(T=b.MAXIMUM_INTERVAL.clone(),T.data=y,y=new K,t[i]=y,y.intervals.addInterval(T));var E=y.intervals;T=E.findInterval(s),d(T)&&T.data instanceof xe||(T=s.clone(),T.data=new xe(e),E.addInterval(T)),T.data.addSamplesPackedArray(h,v),$e(r,T.data)}function tt(e,t){if(e instanceof xe)return void e.removeSamples(t);if(e instanceof Me)return void e.intervals.removeInterval(t);if(e instanceof K){for(var i=e.intervals,r=0;r<i.length;++r){var n=O.intersect(i.get(r),t,jt);n.isEmpty||tt(n.data,t)}return void i.removeInterval(t)}}function it(e,t,i,r,n,o,a){if(d(r))if(C(r))for(var s=0,l=r.length;s<l;s++)et(e,t,i,r[s],n,o,a);else et(e,t,i,r,n,o,a)}function rt(e,t,i,n,o,a){var s,l=i.interval;d(l)?(Kt.iso8601=l,s=O.fromIso8601(Kt),d(n)&&(s=O.intersect(s,n,jt))):d(n)&&(s=n);var u,h,p=d(i.cartesianVelocity)?1:0,f=r.packedLength*(p+1),m=!d(i.reference),_=d(s)&&!s.equals(b.MAXIMUM_INTERVAL);if(!0===i.delete)return _?nt(e[t],s):void(e[t]=void 0);var g,v=!1;if(m&&(d(i.referenceFrame)&&(g=D[i.referenceFrame]),g=c(g,D.FIXED),u=Ye(i),h=c(u.length,1),v=h>f),!v&&!_)return void(e[t]=m?new Z(r.unpack(u),g):Fe(a,i.reference));var y,C=e[t],T=i.epoch;if(d(T)&&(y=S.fromIso8601(T)),v&&!_)return C instanceof we&&(!d(g)||C.referenceFrame===g)||(C=new we(g,p),e[t]=C),C.addSamplesPackedArray(u,y),void $e(i,C);var E;if(!v&&_)return s=s.clone(),s.data=m?r.unpack(u):Fe(a,i.reference),d(C)||(C=m?new Ie(g):new Q(g),e[t]=C),void(m&&C instanceof Ie&&d(g)&&C.referenceFrame===g?C.intervals.addInterval(s):C instanceof Q?(m&&(s.data=new Z(s.data,g)),C.intervals.addInterval(s)):(E=b.MAXIMUM_INTERVAL.clone(),E.data=C,C=new Q(C.referenceFrame),e[t]=C,C.intervals.addInterval(E),m&&(s.data=new Z(s.data,g)),C.intervals.addInterval(s)));d(C)?C instanceof Q||(E=b.MAXIMUM_INTERVAL.clone(),E.data=C,C=new Q(C.referenceFrame),e[t]=C,C.intervals.addInterval(E)):(C=new Q(g),e[t]=C);var A=C.intervals;E=A.findInterval(s),d(E)&&E.data instanceof we&&(!d(g)||E.data.referenceFrame===g)||(E=s.clone(),E.data=new we(g,p),A.addInterval(E)),E.data.addSamplesPackedArray(u,y),$e(i,E.data)}function nt(e,t){if(e instanceof we)return void e.removeSamples(t);if(e instanceof Ie)return void e.intervals.removeInterval(t);if(e instanceof Q){for(var i=e.intervals,r=0;r<i.length;++r){var n=O.intersect(i.get(r),t,jt);n.isEmpty||nt(n.data,t)}return void i.removeInterval(t)}}function ot(e,t,i,r,n,o){if(d(i))if(C(i))for(var a=0,s=i.length;a<s;a++)rt(e,t,i[a],r,n,o);else rt(e,t,i,r,n,o)}function at(e,t,r,n,o,a){var l,u=r.interval;d(u)?(Kt.iso8601=u,l=O.fromIso8601(Kt),d(n)&&(l=O.intersect(l,n,jt))):d(n)&&(l=n);var c,h,p=e[t];if(d(l)){p instanceof X||(p=new X,e[t]=p);var f=p.intervals;h=f.findInterval({start:l.start,stop:l.stop}),d(h)?c=h.data:(h=l.clone(),f.addInterval(h))}else c=p;var m;d(r.solidColor)?(c instanceof j||(c=new j),m=r.solidColor,it(s,c,"color",m.color,void 0,void 0,a)):d(r.grid)?(c instanceof se||(c=new se),m=r.grid,it(s,c,"color",m.color,void 0,o,a),it(Number,c,"cellAlpha",m.cellAlpha,void 0,o,a),it(i,c,"lineCount",m.lineCount,void 0,o,a),it(i,c,"lineThickness",m.lineThickness,void 0,o,a),it(i,c,"lineOffset",m.lineOffset,void 0,o,a)):d(r.image)?(c instanceof le||(c=new le),m=r.image,it(Image,c,"image",m.image,void 0,o,a),it(i,c,"repeat",m.repeat,void 0,o,a),it(s,c,"color",m.color,void 0,o,a),it(Boolean,c,"transparent",m.transparent,void 0,o,a)):d(r.stripe)?(c instanceof Pe||(c=new Pe),m=r.stripe,it(De,c,"orientation",m.orientation,void 0,o,a),it(s,c,"evenColor",m.evenColor,void 0,o,a), -it(s,c,"oddColor",m.oddColor,void 0,o,a),it(Number,c,"offset",m.offset,void 0,o,a),it(Number,c,"repeat",m.repeat,void 0,o,a)):d(r.polylineOutline)?(c instanceof ye||(c=new ye),m=r.polylineOutline,it(s,c,"color",m.color,void 0,o,a),it(s,c,"outlineColor",m.outlineColor,void 0,o,a),it(Number,c,"outlineWidth",m.outlineWidth,void 0,o,a)):d(r.polylineGlow)?(c instanceof ge||(c=new ge),m=r.polylineGlow,it(s,c,"color",m.color,void 0,o,a),it(Number,c,"glowPower",m.glowPower,void 0,o,a),it(Number,c,"taperPower",m.taperPower,void 0,o,a)):d(r.polylineArrow)?(c instanceof me||(c=new me),m=r.polylineArrow,it(s,c,"color",m.color,void 0,void 0,a)):d(r.polylineDash)?(c instanceof _e||(c=new _e),m=r.polylineDash,it(s,c,"color",m.color,void 0,void 0,a),it(s,c,"gapColor",m.gapColor,void 0,void 0,a),it(Number,c,"dashLength",m.dashLength,void 0,o,a),it(Number,c,"dashPattern",m.dashPattern,void 0,o,a)):d(r.checkerboard)&&(c instanceof Y||(c=new Y),m=r.checkerboard,it(s,c,"evenColor",m.evenColor,void 0,o,a),it(s,c,"oddColor",m.oddColor,void 0,o,a),it(i,c,"repeat",m.repeat,void 0,o,a)),d(h)?h.data=c:e[t]=c}function st(e,t,i,r,n,o){if(d(i))if(C(i))for(var a=0,s=i.length;a<s;a++)at(e,t,i[a],r,n,o);else at(e,t,i,r,n,o)}function lt(e,t,i,r){e.name=c(t.name,e.name)}function ut(e,t,i,r){var n=t.description;d(n)&&it(String,e,"description",n,void 0,r,i)}function ct(e,t,i,r){var n=t.position;d(n)&&ot(e,"position",n,void 0,r,i)}function dt(e,t,i,n){var o=t.viewFrom;d(o)&&it(r,e,"viewFrom",o,void 0,n,i)}function ht(e,t,i,r){var n=t.orientation;d(n)&&it(x,e,"orientation",n,void 0,r,i)}function pt(e,t,i,r){var n=t.properties;if(d(n)){d(e.properties)||(e.properties=new Se);for(var o in n)if(n.hasOwnProperty(o)){e.properties.hasProperty(o)||e.properties.addProperty(o);var a=n[o];if(C(a))for(var s=0,l=a.length;s<l;s++)et(Ze(a[s]),e.properties,o,a[s],void 0,r,i);else et(Ze(a),e.properties,o,a,void 0,r,i)}}}function ft(e,t,i,r){var n=i.references;if(d(n)){var o=n.map(function(e){return Fe(r,e)}),a=i.interval;if(d(a)){if(a=O.fromIso8601(a),!(e[t]instanceof Q)){a.data=new be(o);var s=new K;s.intervals.addInterval(a),e[t]=s}}else e[t]=new be(o)}else it(Array,e,t,i,void 0,void 0,r)}function mt(e,t,i,r){if(d(i))if(C(i))for(var n=0,o=i.length;n<o;++n)ft(e,t,i[n],r);else ft(e,t,i,r)}function _t(e,t,i,n){if(d(i.references)){var o=i.references.map(function(e){return Fe(n,e)}),a=i.interval;if(d(a)){if(a=O.fromIso8601(a),!(e[t]instanceof Q)){a.data=new Ce(o);var s=new Q;s.intervals.addInterval(a),e[t]=s}}else e[t]=new Ce(o)}else d(i.cartesian)?i.array=r.unpackArray(i.cartesian):d(i.cartographicRadians)?i.array=r.fromRadiansArrayHeights(i.cartographicRadians):d(i.cartographicDegrees)&&(i.array=r.fromDegreesArrayHeights(i.cartographicDegrees)),d(i.array)&&it(Array,e,t,i,void 0,void 0,n)}function gt(e,t,i,r){if(d(i))if(C(i))for(var n=0,o=i.length;n<o;n++)_t(e,t,i[n],r);else _t(e,t,i,r)}function vt(e,t,i,r){var n,o=t.availability;if(d(o)){var a;if(C(o))for(var s=o.length,l=0;l<s;l++)d(a)||(a=new L),Kt.iso8601=o[l],n=O.fromIso8601(Kt),a.addInterval(n);else Kt.iso8601=o,n=O.fromIso8601(Kt),a=new L,a.addInterval(n);e.availability=a}}function yt(e,t,i,r,n){d(t)&&it(Ne,e,"alignedAxis",t,i,r,n)}function Ct(e,n,o,a){var l=n.billboard;if(d(l)){var u,c=l.interval;d(c)&&(Kt.iso8601=c,u=O.fromIso8601(Kt));var h=e.billboard;d(h)||(e.billboard=h=new H),it(Boolean,h,"show",l.show,u,a,o),it(Image,h,"image",l.image,u,a,o),it(Number,h,"scale",l.scale,u,a,o),it(i,h,"pixelOffset",l.pixelOffset,u,a,o),it(r,h,"eyeOffset",l.eyeOffset,u,a,o),it(B,h,"horizontalOrigin",l.horizontalOrigin,u,a,o),it(V,h,"verticalOrigin",l.verticalOrigin,u,a,o),it(F,h,"heightReference",l.heightReference,u,a,o),it(s,h,"color",l.color,u,a,o),it(Ae,h,"rotation",l.rotation,u,a,o),yt(h,l.alignedAxis,u,a,o),it(Boolean,h,"sizeInMeters",l.sizeInMeters,u,a,o),it(Number,h,"width",l.width,u,a,o),it(Number,h,"height",l.height,u,a,o),it(w,h,"scaleByDistance",l.scaleByDistance,u,a,o),it(w,h,"translucencyByDistance",l.translucencyByDistance,u,a,o),it(w,h,"pixelOffsetScaleByDistance",l.pixelOffsetScaleByDistance,u,a,o),it(t,h,"imageSubRegion",l.imageSubRegion,u,a,o),it(f,h,"distanceDisplayCondition",l.distanceDisplayCondition,u,a,o),it(Number,h,"disableDepthTestDistance",l.disableDepthTestDistance,u,a,o)}}function bt(e,t,i,n){var o=t.box;if(d(o)){var a,l=o.interval;d(l)&&(Kt.iso8601=l,a=O.fromIso8601(Kt));var u=e.box;d(u)||(e.box=u=new W),it(Boolean,u,"show",o.show,a,n,i),it(r,u,"dimensions",o.dimensions,a,n,i),it(Boolean,u,"fill",o.fill,a,n,i),st(u,"material",o.material,a,n,i),it(Boolean,u,"outline",o.outline,a,n,i),it(s,u,"outlineColor",o.outlineColor,a,n,i),it(Number,u,"outlineWidth",o.outlineWidth,a,n,i),it(k,u,"shadows",o.shadows,a,n,i),it(f,u,"distanceDisplayCondition",o.distanceDisplayCondition,a,n,i)}}function St(e,t,i,r){var n=t.corridor;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var u=e.corridor;d(u)||(e.corridor=u=new $),it(Boolean,u,"show",n.show,o,r,i),gt(u,"positions",n.positions,i),it(Number,u,"width",n.width,o,r,i),it(Number,u,"height",n.height,o,r,i),it(Number,u,"extrudedHeight",n.extrudedHeight,o,r,i),it(F,u,"heightReference",n.heightReference,o,r,i),it(F,u,"extrudedHeightReference",n.extrudedHeightReference,o,r,i),it(l,u,"cornerType",n.cornerType,o,r,i),it(Number,u,"granularity",n.granularity,o,r,i),it(Boolean,u,"fill",n.fill,o,r,i),st(u,"material",n.material,o,r,i),it(Boolean,u,"outline",n.outline,o,r,i),it(s,u,"outlineColor",n.outlineColor,o,r,i),it(Number,u,"outlineWidth",n.outlineWidth,o,r,i),it(k,u,"shadows",n.shadows,o,r,i),it(f,u,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i),it(Number,u,"zIndex",n.zIndex,o,r,i)}}function Tt(e,t,i,r){var n=t.cylinder;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.cylinder;d(l)||(e.cylinder=l=new ee),it(Boolean,l,"show",n.show,o,r,i),it(Number,l,"length",n.length,o,r,i),it(Number,l,"topRadius",n.topRadius,o,r,i),it(Number,l,"bottomRadius",n.bottomRadius,o,r,i),it(Boolean,l,"fill",n.fill,o,r,i),st(l,"material",n.material,o,r,i),it(Boolean,l,"outline",n.outline,o,r,i),it(s,l,"outlineColor",n.outlineColor,o,r,i),it(Number,l,"outlineWidth",n.outlineWidth,o,r,i),it(Number,l,"numberOfVerticalLines",n.numberOfVerticalLines,o,r,i),it(Number,l,"slices",n.slices,o,r,i),it(k,l,"shadows",n.shadows,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i)}}function Et(e,t){var i=e.version;if(d(i)&&"string"==typeof i){var r=i.split(".");if(2===r.length){if("1"!==r[0])throw new M("Cesium only supports CZML version 1.");t._version=i}}if(!d(t._version))throw new M("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");var n=t._documentPacket;d(e.name)&&(n.name=e.name);var o=e.clock;if(d(o)){var a=n.clock;d(a)?(a.interval=c(o.interval,a.interval),a.currentTime=c(o.currentTime,a.currentTime),a.range=c(o.range,a.range),a.step=c(o.step,a.step),a.multiplier=c(o.multiplier,a.multiplier)):n.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function At(e,t,i,r){var n=t.ellipse;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.ellipse;d(l)||(e.ellipse=l=new re),it(Boolean,l,"show",n.show,o,r,i),it(Number,l,"semiMajorAxis",n.semiMajorAxis,o,r,i),it(Number,l,"semiMinorAxis",n.semiMinorAxis,o,r,i),it(Number,l,"height",n.height,o,r,i),it(Number,l,"extrudedHeight",n.extrudedHeight,o,r,i),it(F,l,"heightReference",n.heightReference,o,r,i),it(F,l,"extrudedHeightReference",n.extrudedHeightReference,o,r,i),it(Ae,l,"rotation",n.rotation,o,r,i),it(Ae,l,"stRotation",n.stRotation,o,r,i),it(Number,l,"granularity",n.granularity,o,r,i),it(Boolean,l,"fill",n.fill,o,r,i),st(l,"material",n.material,o,r,i),it(Boolean,l,"outline",n.outline,o,r,i),it(s,l,"outlineColor",n.outlineColor,o,r,i),it(Number,l,"outlineWidth",n.outlineWidth,o,r,i),it(Number,l,"numberOfVerticalLines",n.numberOfVerticalLines,o,r,i),it(k,l,"shadows",n.shadows,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i),it(Number,l,"zIndex",n.zIndex,o,r,i)}}function wt(e,t,i,n){var o=t.ellipsoid;if(d(o)){var a,l=o.interval;d(l)&&(Kt.iso8601=l,a=O.fromIso8601(Kt));var u=e.ellipsoid;d(u)||(e.ellipsoid=u=new ne),it(Boolean,u,"show",o.show,a,n,i),it(r,u,"radii",o.radii,a,n,i),it(Boolean,u,"fill",o.fill,a,n,i),st(u,"material",o.material,a,n,i),it(Boolean,u,"outline",o.outline,a,n,i),it(s,u,"outlineColor",o.outlineColor,a,n,i),it(Number,u,"outlineWidth",o.outlineWidth,a,n,i),it(Number,u,"stackPartitions",o.stackPartitions,a,n,i),it(Number,u,"slicePartitions",o.slicePartitions,a,n,i),it(Number,u,"subdivisions",o.subdivisions,a,n,i),it(k,u,"shadows",o.shadows,a,n,i),it(f,u,"distanceDisplayCondition",o.distanceDisplayCondition,a,n,i)}}function xt(e,t,n,o){var a=t.label;if(d(a)){var l,u=a.interval;d(u)&&(Kt.iso8601=u,l=O.fromIso8601(Kt));var c=e.label;d(c)||(e.label=c=new ue),it(Boolean,c,"show",a.show,l,o,n),it(String,c,"text",a.text,l,o,n),it(String,c,"font",a.font,l,o,n),it(z,c,"style",a.style,l,o,n),it(Number,c,"scale",a.scale,l,o,n),it(Boolean,c,"showBackground",a.showBackground,l,o,n),it(s,c,"backgroundColor",a.backgroundColor,l,o,n),it(i,c,"backgroundPadding",a.backgroundPadding,l,o,n),it(i,c,"pixelOffset",a.pixelOffset,l,o,n),it(r,c,"eyeOffset",a.eyeOffset,l,o,n),it(B,c,"horizontalOrigin",a.horizontalOrigin,l,o,n),it(V,c,"verticalOrigin",a.verticalOrigin,l,o,n),it(F,c,"heightReference",a.heightReference,l,o,n),it(s,c,"fillColor",a.fillColor,l,o,n),it(s,c,"outlineColor",a.outlineColor,l,o,n),it(Number,c,"outlineWidth",a.outlineWidth,l,o,n),it(w,c,"translucencyByDistance",a.translucencyByDistance,l,o,n),it(w,c,"pixelOffsetScaleByDistance",a.pixelOffsetScaleByDistance,l,o,n),it(w,c,"scaleByDistance",a.scaleByDistance,l,o,n),it(f,c,"distanceDisplayCondition",a.distanceDisplayCondition,l,o,n),it(Number,c,"disableDepthTestDistance",a.disableDepthTestDistance,l,o,n)}}function Pt(e,t,i,r){var n=t.model;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.model;d(l)||(e.model=l=new ce),it(Boolean,l,"show",n.show,o,r,i),it(U,l,"uri",n.gltf,o,r,i),it(Number,l,"scale",n.scale,o,r,i),it(Number,l,"minimumPixelSize",n.minimumPixelSize,o,r,i),it(Number,l,"maximumScale",n.maximumScale,o,r,i),it(Boolean,l,"incrementallyLoadTextures",n.incrementallyLoadTextures,o,r,i),it(Boolean,l,"runAnimations",n.runAnimations,o,r,i),it(Boolean,l,"clampAnimations",n.clampAnimations,o,r,i),it(k,l,"shadows",n.shadows,o,r,i),it(F,l,"heightReference",n.heightReference,o,r,i),it(s,l,"silhouetteColor",n.silhouetteColor,o,r,i),it(Number,l,"silhouetteSize",n.silhouetteSize,o,r,i),it(s,l,"color",n.color,o,r,i),it(N,l,"colorBlendMode",n.colorBlendMode,o,r,i),it(Number,l,"colorBlendAmount",n.colorBlendAmount,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i);var u=n.nodeTransformations;if(d(u))if(C(u))for(var c=0,h=u.length;c<h;c++)Dt(l,u[c],o,r,i);else Dt(l,u,o,r,i)}}function Dt(e,t,i,n,o){var a,s=t.interval;d(s)?(Kt.iso8601=s,a=O.fromIso8601(Kt),d(i)&&(a=O.intersect(a,i,jt))):d(i)&&(a=i);for(var l=e.nodeTransformations,u=Object.keys(t),c=0,h=u.length;c<h;++c){var p=u[c];if("interval"!==p){var f=t[p];if(d(f)){d(l)||(e.nodeTransformations=l=new Se),l.hasProperty(p)||l.addProperty(p);var m=l[p];d(m)||(l[p]=m=new de),it(r,m,"translation",f.translation,a,n,o),it(x,m,"rotation",f.rotation,a,n,o),it(r,m,"scale",f.scale,a,n,o)}}}}function It(e,t,i,r){var n=t.path;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var s=e.path;d(s)||(e.path=s=new he),it(Boolean,s,"show",n.show,o,r,i),it(Number,s,"width",n.width,o,r,i),it(Number,s,"resolution",n.resolution,o,r,i),it(Number,s,"leadTime",n.leadTime,o,r,i),it(Number,s,"trailTime",n.trailTime,o,r,i),st(s,"material",n.material,o,r,i),it(f,s,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i)}}function Mt(e,t,i,r){var n=t.point;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.point;d(l)||(e.point=l=new pe),it(Boolean,l,"show",n.show,o,r,i),it(Number,l,"pixelSize",n.pixelSize,o,r,i),it(F,l,"heightReference",n.heightReference,o,r,i),it(s,l,"color",n.color,o,r,i),it(s,l,"outlineColor",n.outlineColor,o,r,i),it(Number,l,"outlineWidth",n.outlineWidth,o,r,i),it(w,l,"scaleByDistance",n.scaleByDistance,o,r,i),it(w,l,"translucencyByDistance",n.translucencyByDistance,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i),it(Number,l,"disableDepthTestDistance",n.disableDepthTestDistance,o,r,i)}}function Rt(t,i,r,n){var o=i.polygon;if(d(o)){var a,l=o.interval;d(l)&&(Kt.iso8601=l,a=O.fromIso8601(Kt));var u=t.polygon;d(u)||(t.polygon=u=new fe),it(Boolean,u,"show",o.show,a,n,r),gt(u,"hierarchy",o.positions,r),it(Number,u,"height",o.height,a,n,r),it(Number,u,"extrudedHeight",o.extrudedHeight,a,n,r),it(F,u,"heightReference",o.heightReference,a,n,r),it(F,u,"extrudedHeightReference",o.extrudedHeightReference,a,n,r),it(Ae,u,"stRotation",o.stRotation,a,n,r),it(Number,u,"granularity",o.granularity,a,n,r),it(Boolean,u,"fill",o.fill,a,n,r),st(u,"material",o.material,a,n,r),it(Boolean,u,"outline",o.outline,a,n,r),it(s,u,"outlineColor",o.outlineColor,a,n,r),it(Number,u,"outlineWidth",o.outlineWidth,a,n,r),it(Boolean,u,"perPositionHeight",o.perPositionHeight,a,n,r),it(Boolean,u,"closeTop",o.closeTop,a,n,r),it(Boolean,u,"closeBottom",o.closeBottom,a,n,r),it(e,u,"arcType",o.arcType,a,n,r),it(k,u,"shadows",o.shadows,a,n,r),it(f,u,"distanceDisplayCondition",o.distanceDisplayCondition,a,n,r),it(Number,u,"zIndex",o.zIndex,a,n,r)}}function Ot(t){return t?e.GEODESIC:e.NONE}function Lt(t,i,r,n){var o=i.polyline;if(d(o)){var a,s=o.interval;d(s)&&(Kt.iso8601=s,a=O.fromIso8601(Kt));var l=t.polyline;if(d(l)||(t.polyline=l=new ve),it(Boolean,l,"show",o.show,a,n,r),gt(l,"positions",o.positions,r),it(Number,l,"width",o.width,a,n,r),it(Number,l,"granularity",o.granularity,a,n,r),st(l,"material",o.material,a,n,r),st(l,"depthFailMaterial",o.depthFailMaterial,a,n,r),it(e,l,"arcType",o.arcType,a,n,r),it(Boolean,l,"clampToGround",o.clampToGround,a,n,r),it(k,l,"shadows",o.shadows,a,n,r),it(f,l,"distanceDisplayCondition",o.distanceDisplayCondition,a,n,r),it(Number,l,"zIndex",o.zIndex,a,n,r),d(o.followSurface)&&!d(o.arcType)){var u={};it(Boolean,u,"followSurface",o.followSurface,a,n,r),l.arcType=ze(u.followSurface,Ot)}}}function Nt(e,t,i,r){var n=t.rectangle;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.rectangle;d(l)||(e.rectangle=l=new Te),it(Boolean,l,"show",n.show,o,r,i),it(P,l,"coordinates",n.coordinates,o,r,i),it(Number,l,"height",n.height,o,r,i),it(Number,l,"extrudedHeight",n.extrudedHeight,o,r,i),it(F,l,"heightReference",n.heightReference,o,r,i),it(F,l,"extrudedHeightReference",n.extrudedHeightReference,o,r,i),it(Ae,l,"rotation",n.rotation,o,r,i),it(Ae,l,"stRotation",n.stRotation,o,r,i),it(Number,l,"granularity",n.granularity,o,r,i),it(Boolean,l,"fill",n.fill,o,r,i),st(l,"material",n.material,o,r,i),it(Boolean,l,"outline",n.outline,o,r,i),it(s,l,"outlineColor",n.outlineColor,o,r,i),it(Number,l,"outlineWidth",n.outlineWidth,o,r,i),it(k,l,"shadows",n.shadows,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i),it(Number,l,"zIndex",n.zIndex,o,r,i)}}function Ft(e,t,i,r){var n=t.wall;if(d(n)){var o,a=n.interval;d(a)&&(Kt.iso8601=a,o=O.fromIso8601(Kt));var l=e.wall;d(l)||(e.wall=l=new Le),it(Boolean,l,"show",n.show,o,r,i),gt(l,"positions",n.positions,i),mt(l,"minimumHeights",n.minimumHeights,i),mt(l,"maximumHeights",n.maximumHeights,i),it(Number,l,"granularity",n.granularity,o,r,i),it(Boolean,l,"fill",n.fill,o,r,i),st(l,"material",n.material,o,r,i),it(Boolean,l,"outline",n.outline,o,r,i),it(s,l,"outlineColor",n.outlineColor,o,r,i),it(Number,l,"outlineWidth",n.outlineWidth,o,r,i),it(k,l,"shadows",n.shadows,o,r,i),it(f,l,"distanceDisplayCondition",n.distanceDisplayCondition,o,r,i)}}function Bt(e,t,i,r,n){var o=e.id;if(d(o)||(o=u()),Ht=o,!d(n._version)&&"document"!==o)throw new M("The first CZML packet is required to be the document object.");if(!0===e.delete)t.removeById(o);else if("document"===o)Et(e,n);else{var a=t.getOrCreateEntity(o),s=e.parent;d(s)&&(a.parent=t.getOrCreateEntity(s));for(var l=i.length-1;l>-1;l--)i[l](a,e,t,r)}Ht=void 0}function zt(e){var t,i=e._documentPacket.clock;if(!d(i)){if(!d(e._clock)){var r=e._entityCollection.computeAvailability();if(!r.start.equals(b.MINIMUM_VALUE)){var n=r.start,s=r.stop,l=S.secondsDifference(s,n),u=Math.round(l/120);return t=new ie,t.startTime=S.clone(n),t.stopTime=S.clone(s),t.clockRange=o.LOOP_STOP,t.multiplier=u,t.currentTime=S.clone(n),t.clockStep=a.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}if(d(e._clock)?t=e._clock.clone():(t=new ie,t.startTime=b.MINIMUM_VALUE.clone(),t.stopTime=b.MAXIMUM_VALUE.clone(),t.currentTime=b.MINIMUM_VALUE.clone(),t.clockRange=o.LOOP_STOP,t.clockStep=a.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1),d(i.interval)){Kt.iso8601=i.interval;var h=O.fromIso8601(Kt);t.startTime=h.start,t.stopTime=h.stop}return d(i.currentTime)&&(t.currentTime=S.fromIso8601(i.currentTime)),d(i.range)&&(t.clockRange=c(o[i.range],o.LOOP_STOP)),d(i.step)&&(t.clockStep=c(a[i.step],a.SYSTEM_CLOCK_MULTIPLIER)),d(i.multiplier)&&(t.multiplier=i.multiplier),!t.equals(e._clock)&&(e._clock=t.clone(e._clock),!0)}function kt(e,t,i,r){i=c(i,c.EMPTY_OBJECT);var n=t,o=i.sourceUri;return("string"==typeof t||t instanceof I)&&(t=I.createIfNeeded(t),n=t.fetchJson(),o=c(o,t.clone())),o=I.createIfNeeded(o),te.setLoading(e,!0),G(n,function(t){return Vt(e,t,o,r)}).otherwise(function(t){return te.setLoading(e,!1),e._error.raiseEvent(e,t),console.log(t),G.reject(t)})}function Vt(e,t,i,r){te.setLoading(e,!0);var n=e._entityCollection;r&&(e._version=void 0,e._documentPacket=new Ut,n.removeAll()),Gt._processCzml(t,n,i,void 0,e);var o=zt(e),a=e._documentPacket;return d(a.name)&&e._name!==a.name?(e._name=a.name,o=!0):!d(e._name)&&d(i)&&(e._name=v(i.getUrlComponent()),o=!0),te.setLoading(e,!1),o&&e._changed.raiseEvent(e),e}function Ut(){this.name=void 0,this.clock=void 0}function Gt(e){this._name=e,this._changed=new _,this._error=new _,this._isLoading=!1,this._loading=new _,this._clock=void 0,this._documentPacket=new Ut,this._version=void 0,this._entityCollection=new ae(this),this._entityCluster=new oe}Ne.packedLength=r.packedLength,Ne.unpack=r.unpack,Ne.pack=r.pack;var Ht,Wt=new r,qt=new R,Yt=new n,jt=new O,Xt=new x,Qt={HERMITE:y,LAGRANGE:T,LINEAR:E},Kt={iso8601:void 0};return Gt.load=function(e,t){return(new Gt).load(e,t)},h(Gt.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}}),Gt.updaters=[Ct,bt,St,Tt,At,wt,xt,Pt,lt,ut,It,Mt,Rt,Lt,pt,Nt,ct,dt,Ft,ht,vt],Gt.prototype.process=function(e,t){return kt(this,e,t,!1)},Gt.prototype.load=function(e,t){return kt(this,e,t,!0)},Gt.processPacketData=it,Gt.processPositionPacketData=ot,Gt.processMaterialPacketData=st,Gt._processCzml=function(e,t,i,r,n){if(r=d(r)?r:Gt.updaters,C(e))for(var o=0,a=e.length;o<a;o++)Bt(e[o],t,r,i,n);else Bt(e,t,r,i,n)},Gt}),define("DataSources/DataSourceCollection",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Event","../Core/Math","../ThirdParty/when"],function(e,t,i,r,n,o,a,s){"use strict";function l(){this._dataSources=[],this._dataSourceAdded=new o,this._dataSourceRemoved=new o,this._dataSourceMoved=new o}function u(e,t){return e.indexOf(t)}function c(e,t,i){var r=e._dataSources,n=r.length-1;if(t=a.clamp(t,0,n),i=a.clamp(i,0,n),t!==i){var o=r[t];r[t]=r[i],r[i]=o,e.dataSourceMoved.raiseEvent(o,i,t)}}return i(l.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}}),l.prototype.add=function(e){var t=this,i=this._dataSources;return s(e,function(e){return i===t._dataSources&&(t._dataSources.push(e),t._dataSourceAdded.raiseEvent(t,e)),e})},l.prototype.remove=function(t,i){i=e(i,!1);var r=this._dataSources.indexOf(t);return-1!==r&&(this._dataSources.splice(r,1),this._dataSourceRemoved.raiseEvent(this,t),i&&"function"==typeof t.destroy&&t.destroy(),!0)},l.prototype.removeAll=function(t){t=e(t,!1);for(var i=this._dataSources,r=0,n=i.length;r<n;++r){var o=i[r];this._dataSourceRemoved.raiseEvent(this,o),t&&"function"==typeof o.destroy&&o.destroy()}this._dataSources=[]},l.prototype.contains=function(e){return-1!==this.indexOf(e)},l.prototype.indexOf=function(e){return this._dataSources.indexOf(e)},l.prototype.get=function(e){return this._dataSources[e]},l.prototype.raise=function(e){var t=u(this._dataSources,e);c(this,t,t+1)},l.prototype.lower=function(e){var t=u(this._dataSources,e);c(this,t,t-1)},l.prototype.raiseToTop=function(e){var t=u(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))},l.prototype.lowerToBottom=function(e){var t=u(this._dataSources,e);0!==t&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))},l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return this.removeAll(!0),r(this)},l}),define("Scene/PrimitiveCollection",["../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError"],function(e,t,i,r,n,o){"use strict";function a(i){i=t(i,t.EMPTY_OBJECT),this._primitives=[],this._guid=e(),this._zIndex=void 0,this.show=t(i.show,!0),this.destroyPrimitives=t(i.destroyPrimitives,!0)}function s(e,t){return e._primitives.indexOf(t)}return r(a.prototype,{length:{get:function(){return this._primitives.length}}}),a.prototype.add=function(e){var t=e._external=e._external||{};return(t._composites=t._composites||{})[this._guid]={collection:this},this._primitives.push(e),e},a.prototype.remove=function(e){if(this.contains(e)){var t=this._primitives.indexOf(e);if(-1!==t)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),!0}return!1},a.prototype.removeAndDestroy=function(e){var t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t},a.prototype.removeAll=function(){for(var e=this._primitives,t=e.length,i=0;i<t;++i)delete e[i]._external._composites[this._guid],this.destroyPrimitives&&e[i].destroy();this._primitives=[]},a.prototype.contains=function(e){return!!(i(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])},a.prototype.raise=function(e){if(i(e)){var t=s(this,e),r=this._primitives;if(t!==r.length-1){var n=r[t];r[t]=r[t+1],r[t+1]=n}}},a.prototype.raiseToTop=function(e){if(i(e)){var t=s(this,e),r=this._primitives;t!==r.length-1&&(r.splice(t,1),r.push(e))}},a.prototype.lower=function(e){if(i(e)){var t=s(this,e),r=this._primitives;if(0!==t){var n=r[t];r[t]=r[t-1],r[t-1]=n}}},a.prototype.lowerToBottom=function(e){if(i(e)){var t=s(this,e),r=this._primitives;0!==t&&(r.splice(t,1),r.unshift(e))}},a.prototype.get=function(e){return this._primitives[e]},a.prototype.update=function(e){if(this.show)for(var t=this._primitives,i=0;i<t.length;++i)t[i].update(e)},a.prototype.prePassesUpdate=function(e){for(var t=this._primitives,r=0;r<t.length;++r){var n=t[r];i(n.prePassesUpdate)&&n.prePassesUpdate(e)}},a.prototype.updateForPass=function(e,t){for(var r=this._primitives,n=0;n<r.length;++n){var o=r[n];i(o.updateForPass)&&o.updateForPass(e,t)}},a.prototype.postPassesUpdate=function(e){for(var t=this._primitives,r=0;r<t.length;++r){var n=t[r];i(n.postPassesUpdate)&&n.postPassesUpdate(e)}},a.prototype.isDestroyed=function(){return!1},a.prototype.destroy=function(){return this.removeAll(),n(this)},a}),define("Scene/OrderedGroundPrimitiveCollection",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Check","../Core/DeveloperError","./PrimitiveCollection"],function(e,t,i,r,n,o,a){"use strict";function s(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}return i(s.prototype,{length:{get:function(){return this._length}}}),s.prototype.add=function(i,r){r=e(r,0);var n=this._collections[r];if(!t(n)){n=new a({destroyPrimitives:!1}),n._zIndex=r,this._collections[r]=n;for(var o=this._collectionsArray,s=0;s<o.length&&o[s]._zIndex<r;)s++;o.splice(s,0,n)}return n.add(i),this._length++,i._zIndex=r,i},s.prototype.set=function(e,t){return t===e._zIndex?e:(this.remove(e,!0),this.add(e,t),e)},s.prototype.remove=function(e,t){if(this.contains(e)){var i,r=e._zIndex,n=this._collections[r];return i=t?n.remove(e):n.removeAndDestroy(e),i&&this._length--,0===n.length&&(this._collectionsArray.splice(this._collectionsArray.indexOf(n),1),this._collections[r]=void 0,n.destroy()),i}return!1},s.prototype.removeAll=function(){for(var e=this._collectionsArray,t=0;t<e.length;t++){var i=e[t];i.destroyPrimitives=!0,i.destroy()}this._collections={},this._collectionsArray=[],this._length=0},s.prototype.contains=function(e){if(!t(e))return!1;var i=this._collections[e._zIndex];return t(i)&&i.contains(e)},s.prototype.update=function(e){if(this.show)for(var t=this._collectionsArray,i=0;i<t.length;i++)t[i].update(e)},s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return this.removeAll(),r(this)},s}),define("DataSources/DynamicGeometryBatch",["../Core/AssociativeArray","../Core/defined","./BoundingSphereState"],function(e,t,i){"use strict";function r(t,i){this._primitives=t,this._orderedGroundPrimitives=i,this._dynamicUpdaters=new e}return r.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))},r.prototype.remove=function(e){var i=e.id,r=this._dynamicUpdaters.get(i);t(r)&&(this._dynamicUpdaters.remove(i),r.destroy())},r.prototype.update=function(e){for(var t=this._dynamicUpdaters.values,i=0,r=t.length;i<r;i++)t[i].update(e);return!0},r.prototype.removeAllPrimitives=function(){for(var e=this._dynamicUpdaters.values,t=0,i=e.length;t<i;t++)e[t].destroy();this._dynamicUpdaters.removeAll()},r.prototype.getBoundingSphere=function(e,r){return e=this._dynamicUpdaters.get(e.id),t(e)&&t(e.getBoundingSphere)?e.getBoundingSphere(r):i.FAILED},r}),define("DataSources/EllipseGeometryUpdater",["../Core/ApproximateTerrainHeights","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/EllipseGeometry","../Core/EllipseOutlineGeometry","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/Rectangle","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPrimitive","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./GroundGeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E){"use strict";function A(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function w(e,t){T.call(this,{entity:e,scene:t,geometryOptions:new A(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}function x(e,t,i){b.call(this,e,t,i)}var P=new r,D=t.ZERO,I=new t,M=new f;return o(Object.create)&&(w.prototype=Object.create(T.prototype),w.prototype.constructor=w),w.prototype.createFillGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),a={show:new m(i&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:s.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof C){var u;o(this._materialProperty.color)&&(this._materialProperty.color.isConstant||i)&&(u=this._materialProperty.color.getValue(e,P)),o(u)||(u=r.WHITE),a.color=n.fromColor(u)}return o(this._options.offsetAttribute)&&(a.offset=p.fromCartesian3(E.getValueOrDefault(this._terrainOffsetProperty,e,D,I))),new c({id:t,geometry:new l(this._options),attributes:a})},w.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),a=E.getValueOrDefault(this._outlineColorProperty,e,r.BLACK,P),l=this._distanceDisplayConditionProperty.getValue(e),d={show:new m(i&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:n.fromColor(a),distanceDisplayCondition:s.fromDistanceDisplayCondition(l),offset:void 0};return o(this._options.offsetAttribute)&&(d.offset=p.fromCartesian3(E.getValueOrDefault(this._terrainOffsetProperty,e,D,I))),new c({id:t,geometry:new u(this._options),attributes:d})},w.prototype._computeCenter=function(e,t){return E.getValueOrUndefined(this._entity.position,e,t)},w.prototype._isHidden=function(e,t){var i=e.position;return!o(i)||!o(t.semiMajorAxis)||!o(t.semiMinorAxis)||S.prototype._isHidden.call(this,e,t)},w.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!E.isConstant(t.rotation)||!E.isConstant(t.height)||!E.isConstant(t.extrudedHeight)||!E.isConstant(t.granularity)||!E.isConstant(t.stRotation)||!E.isConstant(t.outlineWidth)||!E.isConstant(t.numberOfVerticalLines)||!E.isConstant(t.zIndex)||this._onTerrain&&!E.isConstant(this._materialProperty)},w.prototype._setStaticOptions=function(t,i){var r=E.getValueOrUndefined(i.height,h.MINIMUM_VALUE),n=E.getValueOrDefault(i.heightReference,h.MINIMUM_VALUE,g.NONE),a=E.getValueOrUndefined(i.extrudedHeight,h.MINIMUM_VALUE),s=E.getValueOrDefault(i.extrudedHeightReference,h.MINIMUM_VALUE,g.NONE);o(a)&&!o(r)&&(r=0);var u=this._options;u.vertexFormat=this._materialProperty instanceof C?y.VERTEX_FORMAT:v.MaterialSupport.TEXTURED.vertexFormat,u.center=t.position.getValue(h.MINIMUM_VALUE,u.center),u.semiMajorAxis=i.semiMajorAxis.getValue(h.MINIMUM_VALUE,u.semiMajorAxis),u.semiMinorAxis=i.semiMinorAxis.getValue(h.MINIMUM_VALUE,u.semiMinorAxis),u.rotation=E.getValueOrUndefined(i.rotation,h.MINIMUM_VALUE),u.granularity=E.getValueOrUndefined(i.granularity,h.MINIMUM_VALUE),u.stRotation=E.getValueOrUndefined(i.stRotation,h.MINIMUM_VALUE),u.numberOfVerticalLines=E.getValueOrUndefined(i.numberOfVerticalLines,h.MINIMUM_VALUE),u.offsetAttribute=T.computeGeometryOffsetAttribute(r,n,a,s),u.height=T.getGeometryHeight(r,n),a=T.getGeometryExtrudedHeight(a,s),a===T.CLAMP_TO_GROUND&&(a=e.getMinimumMaximumHeights(l.computeRectangle(u,M)).minimumTerrainHeight),u.extrudedHeight=a},w.DynamicGeometryUpdater=x,o(Object.create)&&(x.prototype=Object.create(b.prototype),x.prototype.constructor=x),x.prototype._isHidden=function(e,t,i){var r=this._options;return!o(r.center)||!o(r.semiMajorAxis)||!o(r.semiMinorAxis)||b.prototype._isHidden.call(this,e,t,i)},x.prototype._setOptions=function(t,i,r){ -var n=this._options,a=E.getValueOrUndefined(i.height,r),s=E.getValueOrDefault(i.heightReference,r,g.NONE),u=E.getValueOrUndefined(i.extrudedHeight,r),c=E.getValueOrDefault(i.extrudedHeightReference,r,g.NONE);o(u)&&!o(a)&&(a=0),n.center=E.getValueOrUndefined(t.position,r,n.center),n.semiMajorAxis=E.getValueOrUndefined(i.semiMajorAxis,r),n.semiMinorAxis=E.getValueOrUndefined(i.semiMinorAxis,r),n.rotation=E.getValueOrUndefined(i.rotation,r),n.granularity=E.getValueOrUndefined(i.granularity,r),n.stRotation=E.getValueOrUndefined(i.stRotation,r),n.numberOfVerticalLines=E.getValueOrUndefined(i.numberOfVerticalLines,r),n.offsetAttribute=T.computeGeometryOffsetAttribute(a,s,u,c),n.height=T.getGeometryHeight(a,s),u=T.getGeometryExtrudedHeight(u,c),u===T.CLAMP_TO_GROUND&&(u=e.getMinimumMaximumHeights(l.computeRectangle(n,M)).minimumTerrainHeight),n.extrudedHeight=u},w}),define("DataSources/EllipsoidGeometryUpdater",["../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/EllipsoidGeometry","../Core/EllipsoidOutlineGeometry","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/Matrix4","../Core/ShowGeometryInstanceAttribute","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","../Scene/Primitive","../Scene/SceneMode","./heightReferenceOnEntityPropertyChanged","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x){"use strict";function P(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function D(e,t){A.call(this,{entity:e,scene:t,geometryOptions:new P(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}function I(t,i,r){E.call(this,t,i,r),this._scene=t._scene,this._modelMatrix=new m,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new e,this._material={}}var M=new T(i.WHITE),R=e.ZERO,O=new e,L=new e,N=new i,F=new e(1,1,1);return o(Object.create)&&(D.prototype=Object.create(A.prototype),D.prototype.constructor=D),a(D.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}}),D.prototype.createFillGeometryInstance=function(e,t,n){var a,s=this._entity,c=s.isAvailable(e),h=new _(c&&s.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),p=this._distanceDisplayConditionProperty.getValue(e),m=l.fromDistanceDisplayCondition(p),g={show:h,distanceDisplayCondition:m,color:void 0,offset:void 0};if(this._materialProperty instanceof T){var v;o(this._materialProperty.color)&&(this._materialProperty.color.isConstant||c)&&(v=this._materialProperty.color.getValue(e,N)),o(v)||(v=i.WHITE),a=r.fromColor(v),g.color=a}return o(this._options.offsetAttribute)&&(g.offset=f.fromCartesian3(x.getValueOrDefault(this._terrainOffsetProperty,e,R,O))),new d({id:s,geometry:new u(this._options),modelMatrix:t?void 0:s.computeModelMatrixForHeightReference(e,s.ellipsoid.heightReference,.5*this._options.radii.z,this._scene.mapProjection.ellipsoid,n),attributes:g})},D.prototype.createOutlineGeometryInstance=function(e,t,n){var a=this._entity,s=a.isAvailable(e),u=x.getValueOrDefault(this._outlineColorProperty,e,i.BLACK,N),h=this._distanceDisplayConditionProperty.getValue(e),p={show:new _(s&&a.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:r.fromColor(u),distanceDisplayCondition:l.fromDistanceDisplayCondition(h),offset:void 0};return o(this._options.offsetAttribute)&&(p.offset=f.fromCartesian3(x.getValueOrDefault(this._terrainOffsetProperty,e,R,O))),new d({id:a,geometry:new c(this._options),modelMatrix:t?void 0:a.computeModelMatrixForHeightReference(e,a.ellipsoid.heightReference,.5*this._options.radii.z,this._scene.mapProjection.ellipsoid,n),attributes:p})},D.prototype._computeCenter=function(e,t){return x.getValueOrUndefined(this._entity.position,e,t)},D.prototype._isHidden=function(e,t){return!o(e.position)||!o(t.radii)||A.prototype._isHidden.call(this,e,t)},D.prototype._isDynamic=function(e,t){return!(e.position.isConstant&&x.isConstant(e.orientation)&&t.radii.isConstant&&x.isConstant(t.stackPartitions)&&x.isConstant(t.slicePartitions)&&x.isConstant(t.outlineWidth)&&x.isConstant(t.subdivisions))},D.prototype._setStaticOptions=function(e,t){var i=x.getValueOrDefault(t.heightReference,p.MINIMUM_VALUE,g.NONE),r=this._options;r.vertexFormat=this._materialProperty instanceof T?y.VERTEX_FORMAT:v.MaterialSupport.TEXTURED.vertexFormat,r.radii=t.radii.getValue(p.MINIMUM_VALUE,r.radii),r.stackPartitions=x.getValueOrUndefined(t.stackPartitions,p.MINIMUM_VALUE),r.slicePartitions=x.getValueOrUndefined(t.slicePartitions,p.MINIMUM_VALUE),r.subdivisions=x.getValueOrUndefined(t.subdivisions,p.MINIMUM_VALUE),r.offsetAttribute=i!==g.NONE?h.ALL:void 0},D.prototype._onEntityPropertyChanged=S,D.DynamicGeometryUpdater=I,o(Object.create)&&(I.prototype=Object.create(E.prototype),I.prototype.constructor=I),I.prototype.update=function(t){var a=this._entity,u=a.ellipsoid;if(!a.isShowing||!a.isAvailable(t)||!x.getValueOrDefault(u.show,t,!0))return o(this._primitive)&&(this._primitive.show=!1),void(o(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1));var c=x.getValueOrUndefined(u.radii,t,L),d=o(c)?a.computeModelMatrixForHeightReference(t,u.heightReference,.5*c.z,this._scene.mapProjection.ellipsoid,this._modelMatrix):void 0;if(!o(d)||!o(c))return o(this._primitive)&&(this._primitive.show=!1),void(o(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1));var p=x.getValueOrDefault(u.fill,t,!0),S=x.getValueOrDefault(u.outline,t,!1),T=x.getValueOrClonedDefault(u.outlineColor,t,i.BLACK,N),E=w.getValue(t,n(u.material,M),this._material),A=x.getValueOrUndefined(u.stackPartitions,t),P=x.getValueOrUndefined(u.slicePartitions,t),D=x.getValueOrUndefined(u.subdivisions,t),I=x.getValueOrDefault(u.outlineWidth,t,1),B=x.getValueOrDefault(u.heightReference,t,g.NONE),z=B!==g.NONE?h.ALL:void 0,k=this._scene.mode,V=k===b.SCENE3D&&B===g.NONE,U=this._options,G=this._geometryUpdater.shadowsProperty.getValue(t),H=this._geometryUpdater.distanceDisplayConditionProperty,W=H.getValue(t),q=x.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,t,R,O);if(V&&this._lastSceneMode===k&&o(this._primitive)&&U.stackPartitions===A&&U.slicePartitions===P&&U.subdivisions===D&&this._lastOutlineWidth===I&&U.offsetAttribute===z){if(this._primitive.ready){var Y=this._primitive,j=this._outlinePrimitive;Y.show=!0,j.show=!0,Y.appearance.material=E;var X=this._attributes;o(X)||(X=Y.getGeometryInstanceAttributes(a),this._attributes=X),p!==this._lastShow&&(X.show=_.toValue(p,X.show),this._lastShow=p);var Q=this._outlineAttributes;o(Q)||(Q=j.getGeometryInstanceAttributes(a),this._outlineAttributes=Q),S!==this._lastOutlineShow&&(Q.show=_.toValue(S,Q.show),this._lastOutlineShow=S),i.equals(T,this._lastOutlineColor)||(Q.color=r.toValue(T,Q.color),i.clone(T,this._lastOutlineColor)),s.equals(W,this._lastDistanceDisplayCondition)||(X.distanceDisplayCondition=l.toValue(W,X.distanceDisplayCondition),Q.distanceDisplayCondition=l.toValue(W,Q.distanceDisplayCondition),s.clone(W,this._lastDistanceDisplayCondition)),e.equals(q,this._lastOffset)||(X.offset=f.toValue(q,X.offset),Q.offset=f.toValue(q,X.offset),e.clone(q,this._lastOffset))}}else{var K=this._primitives;K.removeAndDestroy(this._primitive),K.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=k,this._lastOutlineWidth=I,U.stackPartitions=A,U.slicePartitions=P,U.subdivisions=D,U.offsetAttribute=z,U.radii=V?F:c;var Z=new v({material:E,translucent:E.isTranslucent(),closed:!0});U.vertexFormat=Z.vertexFormat;var J=this._geometryUpdater.createFillGeometryInstance(t,V,this._modelMatrix);this._primitive=K.add(new C({geometryInstances:J,appearance:Z,asynchronous:!1,shadows:G}));var $=this._geometryUpdater.createOutlineGeometryInstance(t,V,this._modelMatrix);this._outlinePrimitive=K.add(new C({geometryInstances:$,appearance:new y({flat:!0,translucent:255!==$.attributes.color.value[3],renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(I)}}),asynchronous:!1,shadows:G})),this._lastShow=p,this._lastOutlineShow=S,this._lastOutlineColor=i.clone(T,this._lastOutlineColor),this._lastDistanceDisplayCondition=W,this._lastOffset=e.clone(q,this._lastOffset)}V&&(c.x=Math.max(c.x,.001),c.y=Math.max(c.y,.001),c.z=Math.max(c.z,.001),d=m.multiplyByScale(d,c,d),this._primitive.modelMatrix=d,this._outlinePrimitive.modelMatrix=d)},D}),define("DataSources/PlaneGeometryUpdater",["../Core/Cartesian2","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/Iso8601","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/PlaneGeometry","../Core/PlaneOutlineGeometry","../Core/Quaternion","../Core/ShowGeometryInstanceAttribute","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function E(e,t){b.call(this,{entity:e,scene:t,geometryOptions:new T(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}function A(e,t,i){C.call(this,e,t,i)}function w(i,r,n,o,a){var s=i.normal,l=i.distance,u=t.multiplyByScalar(s,-l,M);u=h.multiplyByPoint(n,u,u);var p=h.multiplyByPointAsVector(n,s,R);t.normalize(p,p);var f=o.geodeticSurfaceNormal(u,I);c.equalsEpsilon(Math.abs(t.dot(f,p)),1,c.EPSILON8)&&(f=t.clone(t.UNIT_Z,f));var _=t.cross(f,p,D);f=t.cross(p,_,f),t.normalize(_,_),t.normalize(f,f);var g=N;d.setColumn(g,0,_,g),d.setColumn(g,1,f,g),d.setColumn(g,2,p,g);var v=m.fromRotationMatrix(g,L),y=e.clone(r,O);return y.z=1,h.fromTranslationQuaternionRotationScale(u,v,y,a)}var x=new t,P=new r;o(Object.create)&&(E.prototype=Object.create(b.prototype),E.prototype.constructor=E),E.prototype.createFillGeometryInstance=function(e){var t,i,a=this._entity,u=a.isAvailable(e),c=new _(u&&a.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),d=this._distanceDisplayConditionProperty.getValue(e),h=s.fromDistanceDisplayCondition(d);if(this._materialProperty instanceof y){var f;o(this._materialProperty.color)&&(this._materialProperty.color.isConstant||u)&&(f=this._materialProperty.color.getValue(e,P)),o(f)||(f=r.WHITE),i=n.fromColor(f),t={show:c,distanceDisplayCondition:h,color:i}}else t={show:c,distanceDisplayCondition:h};var m=a.plane,g=this._options,v=a.computeModelMatrix(e),C=S.getValueOrDefault(m.plane,e,g.plane),b=S.getValueOrUndefined(m.dimensions,e,g.dimensions);return g.plane=C,g.dimensions=b,v=w(C,b,v,this._scene.mapProjection.ellipsoid,v),new l({id:a,geometry:new p(this._options),modelMatrix:v,attributes:t})},E.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),o=S.getValueOrDefault(this._outlineColorProperty,e,r.BLACK,P),a=this._distanceDisplayConditionProperty.getValue(e),u=t.plane,c=this._options,d=t.computeModelMatrix(e),h=S.getValueOrDefault(u.plane,e,c.plane),p=S.getValueOrUndefined(u.dimensions,e,c.dimensions);return c.plane=h,c.dimensions=p,d=w(h,p,d,this._scene.mapProjection.ellipsoid,d),new l({id:t,geometry:new f,modelMatrix:d,attributes:{show:new _(i&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:n.fromColor(o),distanceDisplayCondition:s.fromDistanceDisplayCondition(a)}})},E.prototype._isHidden=function(e,t){return!o(t.plane)||!o(t.dimensions)||!o(e.position)||b.prototype._isHidden.call(this,e,t)},E.prototype._getIsClosed=function(e){return!1},E.prototype._isDynamic=function(e,t){return!(e.position.isConstant&&S.isConstant(e.orientation)&&t.plane.isConstant&&t.dimensions.isConstant&&S.isConstant(t.outlineWidth))},E.prototype._setStaticOptions=function(e,t){var i=this._materialProperty instanceof y,r=this._options;r.vertexFormat=i?v.VERTEX_FORMAT:g.MaterialSupport.TEXTURED.vertexFormat,r.plane=t.plane.getValue(u.MINIMUM_VALUE,r.plane),r.dimensions=t.dimensions.getValue(u.MINIMUM_VALUE,r.dimensions)},E.DynamicGeometryUpdater=A,o(Object.create)&&(A.prototype=Object.create(C.prototype),A.prototype.constructor=A),A.prototype._isHidden=function(e,t,i){var r=this._options,n=S.getValueOrUndefined(e.position,i,x);return!o(n)||!o(r.plane)||!o(r.dimensions)||C.prototype._isHidden.call(this,e,t,i)},A.prototype._setOptions=function(e,t,i){var r=this._options;r.plane=S.getValueOrDefault(t.plane,i,r.plane),r.dimensions=S.getValueOrUndefined(t.dimensions,i,r.dimensions)};var D=new t,I=new t,M=new t,R=new t,O=new t,L=new m,N=new d;return E.createPrimitiveMatrix=w,E}),define("DataSources/PolygonGeometryUpdater",["../Core/ApproximateTerrainHeights","../Core/ArcType","../Core/Cartesian2","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/CoplanarPolygonGeometry","../Core/CoplanarPolygonOutlineGeometry","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/EllipsoidTangentPlane","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/isArray","../Core/Iso8601","../Core/oneTimeWarning","../Core/OffsetGeometryInstanceAttribute","../Core/PolygonGeometry","../Core/PolygonHierarchy","../Core/PolygonOutlineGeometry","../Core/Rectangle","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPrimitive","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./GroundGeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R){"use strict";function O(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0}function L(e,t){M.call(this,{entity:e,scene:t,geometryOptions:new O(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}function N(e,t,i){D.call(this,e,t,i)}var F=new o,B=r.ZERO,z=new r,k=new S,V=[],U=new i;return u(Object.create)&&(L.prototype=Object.create(M.prototype),L.prototype.constructor=L),L.prototype.createFillGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),r=this._options,n={show:new T(i&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:d.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof P){var l;u(this._materialProperty.color)&&(this._materialProperty.color.isConstant||i)&&(l=this._materialProperty.color.getValue(e,F)),u(l)||(l=o.WHITE),n.color=a.fromColor(l)}u(r.offsetAttribute)&&(n.offset=v.fromCartesian3(R.getValueOrDefault(this._terrainOffsetProperty,e,B,z)));var c;return c=r.perPositionHeight&&!u(r.extrudedHeight)?new s(r):new y(r),new p({id:t,geometry:c,attributes:n})},L.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),r=this._options,n=R.getValueOrDefault(this._outlineColorProperty,e,o.BLACK,F),s=this._distanceDisplayConditionProperty.getValue(e),c={show:new T(i&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:a.fromColor(n),distanceDisplayCondition:d.fromDistanceDisplayCondition(s),offset:void 0};u(r.offsetAttribute)&&(c.offset=v.fromCartesian3(R.getValueOrDefault(this._terrainOffsetProperty,e,B,z)));var h;return h=r.perPositionHeight&&!u(r.extrudedHeight)?new l(r):new b(r),new p({id:t,geometry:h,attributes:c})},L.prototype._computeCenter=function(e,t){var r=R.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(u(r)&&!m(r)&&(r=r.positions),0!==r.length){for(var n=this._scene.mapProjection.ellipsoid,o=h.fromPoints(r,n),a=o.projectPointsOntoPlane(r,V),s=a.length,l=0,c=s-1,d=new i,p=0;p<s;c=p++){var f=a[p],_=a[c],g=f.x*_.y-_.x*f.y,v=i.add(f,_,U);v=i.multiplyByScalar(v,g,v),d=i.add(d,v,d),l+=g}var y=1/(3*l);return d=i.multiplyByScalar(d,y,d),o.projectPointOntoEllipsoid(d,t)}},L.prototype._isHidden=function(e,t){return!u(t.hierarchy)||I.prototype._isHidden.call(this,e,t)},L.prototype._isOnTerrain=function(e,t){var i=M.prototype._isOnTerrain.call(this,e,t),r=t.perPositionHeight,n=u(r)&&(!r.isConstant||r.getValue(_.MINIMUM_VALUE));return i&&!n},L.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!R.isConstant(t.height)||!R.isConstant(t.extrudedHeight)||!R.isConstant(t.granularity)||!R.isConstant(t.stRotation)||!R.isConstant(t.outlineWidth)||!R.isConstant(t.perPositionHeight)||!R.isConstant(t.closeTop)||!R.isConstant(t.closeBottom)||!R.isConstant(t.zIndex)||!R.isConstant(t.arcType)||this._onTerrain&&!R.isConstant(this._materialProperty)},L.prototype._setStaticOptions=function(i,r){var n=this._materialProperty instanceof P,o=this._options;o.vertexFormat=n?x.VERTEX_FORMAT:w.MaterialSupport.TEXTURED.vertexFormat;var a=r.hierarchy.getValue(_.MINIMUM_VALUE);m(a)&&(a=new C(a));var s=R.getValueOrUndefined(r.height,_.MINIMUM_VALUE),l=R.getValueOrDefault(r.heightReference,_.MINIMUM_VALUE,A.NONE),c=R.getValueOrUndefined(r.extrudedHeight,_.MINIMUM_VALUE),d=R.getValueOrDefault(r.extrudedHeightReference,_.MINIMUM_VALUE,A.NONE),h=R.getValueOrDefault(r.perPositionHeight,_.MINIMUM_VALUE,!1);s=M.getGeometryHeight(s,l);var p;h?(u(s)&&(s=void 0,g("Entity polygons cannot have both height and perPositionHeight. height will be ignored")),l!==A.NONE&&h&&(s=void 0,g("heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored"))):(u(c)&&!u(s)&&(s=0),p=M.computeGeometryOffsetAttribute(s,l,c,d)),o.polygonHierarchy=a,o.granularity=R.getValueOrUndefined(r.granularity,_.MINIMUM_VALUE),o.stRotation=R.getValueOrUndefined(r.stRotation,_.MINIMUM_VALUE),o.perPositionHeight=h,o.closeTop=R.getValueOrDefault(r.closeTop,_.MINIMUM_VALUE,!0),o.closeBottom=R.getValueOrDefault(r.closeBottom,_.MINIMUM_VALUE,!0),o.offsetAttribute=p,o.height=s,o.arcType=R.getValueOrDefault(r.arcType,_.MINIMUM_VALUE,t.GEODESIC),c=M.getGeometryExtrudedHeight(c,d),c===M.CLAMP_TO_GROUND&&(c=e.getMinimumMaximumHeights(y.computeRectangle(o,k)).minimumTerrainHeight),o.extrudedHeight=c},L.prototype._getIsClosed=function(e){var t=e.height,i=e.extrudedHeight,r=u(i)&&i!==t;return!e.perPositionHeight&&(!r&&0===t||r&&e.closeTop&&e.closeBottom)},L.DynamicGeometryUpdater=N,u(Object.create)&&(N.prototype=Object.create(D.prototype),N.prototype.constructor=N),N.prototype._isHidden=function(e,t,i){return!u(this._options.polygonHierarchy)||D.prototype._isHidden.call(this,e,t,i)},N.prototype._setOptions=function(i,r,n){var o=this._options,a=R.getValueOrUndefined(r.hierarchy,n);m(a)?o.polygonHierarchy=new C(a):o.polygonHierarchy=a;var s=R.getValueOrUndefined(r.height,n),l=R.getValueOrDefault(r.heightReference,n,A.NONE),c=R.getValueOrDefault(r.extrudedHeightReference,n,A.NONE),d=R.getValueOrUndefined(r.extrudedHeight,n),h=R.getValueOrUndefined(r.perPositionHeight,n);s=M.getGeometryHeight(s,c);var p;h?(u(s)&&(s=void 0,g("Entity polygons cannot have both height and perPositionHeight. height will be ignored")),l!==A.NONE&&h&&(s=void 0,g("heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored"))):(u(d)&&!u(s)&&(s=0),p=M.computeGeometryOffsetAttribute(s,l,d,c)),o.granularity=R.getValueOrUndefined(r.granularity,n),o.stRotation=R.getValueOrUndefined(r.stRotation,n),o.perPositionHeight=R.getValueOrUndefined(r.perPositionHeight,n),o.closeTop=R.getValueOrDefault(r.closeTop,n,!0),o.closeBottom=R.getValueOrDefault(r.closeBottom,n,!0),o.offsetAttribute=p,o.height=s,o.arcType=R.getValueOrDefault(r.arcType,n,t.GEODESIC),d=M.getGeometryExtrudedHeight(d,c),d===M.CLAMP_TO_GROUND&&(d=e.getMinimumMaximumHeights(y.computeRectangle(o,k)).minimumTerrainHeight),o.extrudedHeight=d},L}),define("DataSources/PolylineVolumeGeometryUpdater",["../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/Iso8601","../Core/PolylineVolumeGeometry","../Core/PolylineVolumeOutlineGeometry","../Core/ShowGeometryInstanceAttribute","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function v(e,t){m.call(this,{entity:e,scene:t,geometryOptions:new g(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}function y(e,t,i){f.call(this,e,t,i)}var C=new t;return r(Object.create)&&(v.prototype=Object.create(m.prototype),v.prototype.constructor=v),v.prototype.createFillGeometryInstance=function(e){var n,s,u=this._entity,d=u.isAvailable(e),h=new c(d&&u.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),f=this._distanceDisplayConditionProperty.getValue(e),m=o.fromDistanceDisplayCondition(f);if(this._materialProperty instanceof p){var _;r(this._materialProperty.color)&&(this._materialProperty.color.isConstant||d)&&(_=this._materialProperty.color.getValue(e,C)),r(_)||(_=t.WHITE),s=i.fromColor(_),n={show:h,distanceDisplayCondition:m,color:s}}else n={show:h,distanceDisplayCondition:m};return new a({id:u,geometry:new l(this._options),attributes:n})},v.prototype.createOutlineGeometryInstance=function(e){var r=this._entity,n=r.isAvailable(e),s=_.getValueOrDefault(this._outlineColorProperty,e,t.BLACK,C),l=this._distanceDisplayConditionProperty.getValue(e);return new a({id:r,geometry:new u(this._options),attributes:{show:new c(n&&r.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:i.fromColor(s),distanceDisplayCondition:o.fromDistanceDisplayCondition(l)}})},v.prototype._isHidden=function(e,t){return!r(t.positions)||!r(t.shape)||m.prototype._isHidden.call(this,e,t)},v.prototype._isDynamic=function(e,t){return!(t.positions.isConstant&&t.shape.isConstant&&_.isConstant(t.granularity)&&_.isConstant(t.outlineWidth)&&_.isConstant(t.cornerType))},v.prototype._setStaticOptions=function(e,t){var i=t.granularity,n=t.cornerType,o=this._options,a=this._materialProperty instanceof p;o.vertexFormat=a?h.VERTEX_FORMAT:d.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(s.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(s.MINIMUM_VALUE,o.shape),o.granularity=r(i)?i.getValue(s.MINIMUM_VALUE):void 0,o.cornerType=r(n)?n.getValue(s.MINIMUM_VALUE):void 0},v.DynamicGeometryUpdater=y,r(Object.create)&&(y.prototype=Object.create(f.prototype),y.prototype.constructor=y),y.prototype._isHidden=function(e,t,i){var n=this._options;return!r(n.polylinePositions)||!r(n.shapePositions)||f.prototype._isHidden.call(this,e,t,i)},y.prototype._setOptions=function(e,t,i){var r=this._options;r.polylinePositions=_.getValueOrUndefined(t.positions,i,r.polylinePositions),r.shapePositions=_.getValueOrUndefined(t.shape,i),r.granularity=_.getValueOrUndefined(t.granularity,i),r.cornerType=_.getValueOrUndefined(t.cornerType,i)},v}),define("DataSources/RectangleGeometryUpdater",["../Core/ApproximateTerrainHeights","../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/Ellipsoid","../Core/GeometryInstance","../Core/GeometryOffsetAttribute","../Core/Iso8601","../Core/OffsetGeometryInstanceAttribute","../Core/Rectangle","../Core/RectangleGeometry","../Core/RectangleOutlineGeometry","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPrimitive","../Scene/HeightReference","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./GroundGeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function P(e,t){A.call(this,{entity:e,scene:t,geometryOptions:new x(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}function D(e,t,i){T.call(this,e,t,i)}var I=new n,M=t.ZERO,R=new t,O=new f,L=new f,N=new i;return a(Object.create)&&(P.prototype=Object.create(A.prototype),P.prototype.constructor=P),P.prototype.createFillGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),r={show:new g(i&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:l.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof S){var s;a(this._materialProperty.color)&&(this._materialProperty.color.isConstant||i)&&(s=this._materialProperty.color.getValue(e,I)),a(s)||(s=n.WHITE),r.color=o.fromColor(s)}return a(this._options.offsetAttribute)&&(r.offset=p.fromCartesian3(w.getValueOrDefault(this._terrainOffsetProperty,e,M,R))),new c({id:t,geometry:new m(this._options),attributes:r})},P.prototype.createOutlineGeometryInstance=function(e){var t=this._entity,i=t.isAvailable(e),r=w.getValueOrDefault(this._outlineColorProperty,e,n.BLACK,I),s=this._distanceDisplayConditionProperty.getValue(e),u={show:new g(i&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:o.fromColor(r),distanceDisplayCondition:l.fromDistanceDisplayCondition(s),offset:void 0};return a(this._options.offsetAttribute)&&(u.offset=p.fromCartesian3(w.getValueOrDefault(this._terrainOffsetProperty,e,M,R))),new c({id:t,geometry:new _(this._options),attributes:u})},P.prototype._computeCenter=function(e,t){var r=w.getValueOrUndefined(this._entity.rectangle.coordinates,e,L);if(a(r)){var n=f.center(r,N);return i.toCartesian(n,u.WGS84,t)}},P.prototype._isHidden=function(e,t){return!a(t.coordinates)||E.prototype._isHidden.call(this,e,t)},P.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!w.isConstant(t.height)||!w.isConstant(t.extrudedHeight)||!w.isConstant(t.granularity)||!w.isConstant(t.stRotation)||!w.isConstant(t.rotation)||!w.isConstant(t.outlineWidth)||!w.isConstant(t.zIndex)||this._onTerrain&&!w.isConstant(this._materialProperty)},P.prototype._setStaticOptions=function(t,i){var r=this._materialProperty instanceof S,n=w.getValueOrUndefined(i.height,h.MINIMUM_VALUE),o=w.getValueOrDefault(i.heightReference,h.MINIMUM_VALUE,y.NONE),s=w.getValueOrUndefined(i.extrudedHeight,h.MINIMUM_VALUE),l=w.getValueOrDefault(i.extrudedHeightReference,h.MINIMUM_VALUE,y.NONE);a(s)&&!a(n)&&(n=0);var u=this._options;u.vertexFormat=r?b.VERTEX_FORMAT:C.MaterialSupport.TEXTURED.vertexFormat,u.rectangle=i.coordinates.getValue(h.MINIMUM_VALUE,u.rectangle),u.granularity=w.getValueOrUndefined(i.granularity,h.MINIMUM_VALUE),u.stRotation=w.getValueOrUndefined(i.stRotation,h.MINIMUM_VALUE),u.rotation=w.getValueOrUndefined(i.rotation,h.MINIMUM_VALUE),u.offsetAttribute=A.computeGeometryOffsetAttribute(n,o,s,l),u.height=A.getGeometryHeight(n,o),s=A.getGeometryExtrudedHeight(s,l),s===A.CLAMP_TO_GROUND&&(s=e.getMinimumMaximumHeights(m.computeRectangle(u,O)).minimumTerrainHeight),u.extrudedHeight=s},P.DynamicGeometryUpdater=D,a(Object.create)&&(D.prototype=Object.create(T.prototype),D.prototype.constructor=D),D.prototype._isHidden=function(e,t,i){return!a(this._options.rectangle)||T.prototype._isHidden.call(this,e,t,i)},D.prototype._setOptions=function(t,i,r){var n=this._options,o=w.getValueOrUndefined(i.height,r),s=w.getValueOrDefault(i.heightReference,r,y.NONE),l=w.getValueOrUndefined(i.extrudedHeight,r),u=w.getValueOrDefault(i.extrudedHeightReference,r,y.NONE);a(l)&&!a(o)&&(o=0),n.rectangle=w.getValueOrUndefined(i.coordinates,r,n.rectangle),n.granularity=w.getValueOrUndefined(i.granularity,r),n.stRotation=w.getValueOrUndefined(i.stRotation,r),n.rotation=w.getValueOrUndefined(i.rotation,r),n.offsetAttribute=A.computeGeometryOffsetAttribute(o,s,l,u),n.height=A.getGeometryHeight(o,s),l=A.getGeometryExtrudedHeight(l,u),l===A.CLAMP_TO_GROUND&&(l=e.getMinimumMaximumHeights(m.computeRectangle(n,O)).minimumTerrainHeight),n.extrudedHeight=l},P}),define("DataSources/StaticGeometryColorBatch",["../Core/AssociativeArray","../Core/Cartesian3","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/OffsetGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/Primitive","./BoundingSphereState","./ColorMaterialProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(t,i,r,o,a,s,l){this.translucent=i,this.appearanceType=r,this.depthFailAppearanceType=o,this.depthFailMaterialProperty=a,this.depthFailMaterial=void 0,this.closed=s,this.shadows=l,this.primitives=t,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new e,this.updaters=new e,this.updatersWithAttributes=new e,this.attributes=new e,this.subscriptions=new e,this.showsUpdated=new e,this.itemsToRemove=[],this.invalidated=!1;var u;n(a)&&(u=a.definitionChanged.addEventListener(f.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=u}function m(e,t,i,r,n){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=i,this._closed=r,this._shadows=n}function _(e,t){for(var i=e.length,r=i-1;r>=0;r--){var n=e[r];if(n.remove(t))return 0===n.updaters.length&&(e.splice(r,1),n.destroy()),!0}return!1}function g(e,t,i){for(var r=!1,n=t.length,o=0;o<n;++o){var a=t[o],s=a.itemsToRemove,l=s.length;if(l>0)for(o=0;o<l;o++){var u=s[o];a.remove(u),e.add(i,u),r=!0}}return r}function v(e,t,i,r){var n,o=t.length;for(n=o-1;n>=0;n--){var a=t[n];if(a.invalidated){t.splice(n,1);for(var s=a.updaters.values,l=s.length,u=0;u<l;u++)e.add(i,s[u]);a.destroy()}}for(o=t.length,n=0;n<o;++n)r=t[n].update(i)&&r;return r}function y(e,t,i){for(var r=e.length,n=0;n<r;n++){var o=e[n];if(o.contains(t))return o.getBoundingSphere(t,i)}return c.FAILED}function C(e){for(var t=e.length,i=0;i<t;i++)e[i].destroy();e.length=0}var b=new i,S=new o,T=new o,E=t.ZERO,A=new t;return f.prototype.onMaterialChanged=function(){this.invalidated=!0},f.prototype.isMaterial=function(e){ -var t=this.depthFailMaterialProperty,i=e.depthFailMaterialProperty;return i===t||!!n(t)&&t.equals(i)},f.prototype.add=function(e,t){var i=e.id;if(this.createPrimitive=!0,this.geometry.set(i,t),this.updaters.set(i,e),e.hasConstantFill&&e.fillMaterialProperty.isConstant&&p.isConstant(e.distanceDisplayConditionProperty)&&p.isConstant(e.terrainOffsetProperty)){var r=this;this.subscriptions.set(i,e.entity.definitionChanged.addEventListener(function(t,i,n,o){"isShowing"===i&&r.showsUpdated.set(e.id,e)}))}else this.updatersWithAttributes.set(i,e)},f.prototype.remove=function(e){var t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);var i=this.subscriptions.get(t);return n(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1},f.prototype.update=function(e){var c,f=!0,m=0,_=this.primitive,g=this.primitives;if(this.createPrimitive){var v=this.geometry.values;if(v.length>0){n(_)&&(n(this.oldPrimitive)?g.remove(_):this.oldPrimitive=_);var y;n(this.depthFailAppearanceType)&&(n(this.depthFailMaterialProperty)&&(this.depthFailMaterial=h.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),y=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),_=new u({show:!1,asynchronous:!0,geometryInstances:v,appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:y,shadows:this.shadows}),g.add(_),f=!1}else{n(_)&&(g.remove(_),_=void 0);var C=this.oldPrimitive;n(C)&&(g.remove(C),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=_,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(n(_)&&_.ready){_.show=!0,n(this.oldPrimitive)&&(g.remove(this.oldPrimitive),this.oldPrimitive=void 0),!n(this.depthFailAppearanceType)||this.depthFailMaterialProperty instanceof d||(this.depthFailMaterial=h.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);var w=this.updatersWithAttributes.values,x=w.length,P=this.waitingOnCreate;for(c=0;c<x;c++){var D=w[c],I=this.geometry.get(D.id),M=this.attributes.get(I.id.id);if(n(M)||(M=_.getGeometryInstanceAttributes(I.id),this.attributes.set(I.id.id,M)),!D.fillMaterialProperty.isConstant||P){var R=D.fillMaterialProperty.color,O=p.getValueOrDefault(R,e,i.WHITE,b);i.equals(M._lastColor,O)||(M._lastColor=i.clone(O,M._lastColor),M.color=r.toValue(O,M.color),(this.translucent&&255===M.color[3]||!this.translucent&&255!==M.color[3])&&(this.itemsToRemove[m++]=D))}if(n(this.depthFailAppearanceType)&&D.depthFailMaterialProperty instanceof d&&(!D.depthFailMaterialProperty.isConstant||P)){var L=D.depthFailMaterialProperty.color,N=p.getValueOrDefault(L,e,i.WHITE,b);i.equals(M._lastDepthFailColor,N)||(M._lastDepthFailColor=i.clone(N,M._lastDepthFailColor),M.depthFailColor=r.toValue(N,M.depthFailColor))}var F=D.entity.isShowing&&(D.hasConstantFill||D.isFilled(e)),B=1===M.show[0];F!==B&&(M.show=l.toValue(F,M.show));var z=D.distanceDisplayConditionProperty;if(!p.isConstant(z)){var k=p.getValueOrDefault(z,e,T,S);o.equals(k,M._lastDistanceDisplayCondition)||(M._lastDistanceDisplayCondition=o.clone(k,M._lastDistanceDisplayCondition),M.distanceDisplayCondition=a.toValue(k,M.distanceDisplayCondition))}var V=D.terrainOffsetProperty;if(!p.isConstant(V)){var U=p.getValueOrDefault(V,e,E,A);t.equals(U,M._lastOffset)||(M._lastOffset=t.clone(U,M._lastOffset),M.offset=s.toValue(U,M.offset))}}this.updateShows(_),this.waitingOnCreate=!1}else n(_)&&!_.ready&&(f=!1);return this.itemsToRemove.length=m,f},f.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,i=t.length,r=0;r<i;r++){var o=t[r],a=this.geometry.get(o.id),s=this.attributes.get(a.id.id);n(s)||(s=e.getGeometryInstanceAttributes(a.id),this.attributes.set(a.id.id,s));var u=o.entity.isShowing;u!==(1===s.show[0])&&(s.show=l.toValue(u,s.show),a.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()},f.prototype.contains=function(e){return this.updaters.contains(e.id)},f.prototype.getBoundingSphere=function(e,t){var i=this.primitive;if(!i.ready)return c.PENDING;var r=i.getGeometryInstanceAttributes(e.entity);return!n(r)||!n(r.boundingSphere)||n(r.show)&&0===r.show[0]?c.FAILED:(r.boundingSphere.clone(t),c.DONE)},f.prototype.destroy=function(){var e=this.primitive,t=this.primitives;n(e)&&t.remove(e);var i=this.oldPrimitive;n(i)&&t.remove(i),n(this.removeMaterialSubscription)&&this.removeMaterialSubscription()},m.prototype.add=function(e,t){var i,r,n=t.createFillGeometryInstance(e);255===n.attributes.color.value[3]?(i=this._solidItems,r=!1):(i=this._translucentItems,r=!0);for(var o=i.length,a=0;a<o;a++){var s=i[a];if(s.isMaterial(t))return void s.add(t,n)}var l=new f(this._primitives,r,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);l.add(t,n),i.push(l)},m.prototype.remove=function(e){_(this._solidItems,e)||_(this._translucentItems,e)},m.prototype.update=function(e){var t=v(this,this._solidItems,e,!0);t=v(this,this._translucentItems,e,t)&&t;var i=g(this,this._solidItems,e),r=g(this,this._translucentItems,e);return(i||r)&&(t=v(this,this._solidItems,e,t)&&t,t=v(this,this._translucentItems,e,t)&&t),t},m.prototype.getBoundingSphere=function(e,t){var i=y(this._solidItems,e,t);return i===c.FAILED?y(this._translucentItems,e,t):i},m.prototype.removeAllPrimitives=function(){C(this._solidItems),C(this._translucentItems)},m}),define("DataSources/StaticGeometryPerMaterialBatch",["../Core/AssociativeArray","../Core/Cartesian3","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/OffsetGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/Primitive","./BoundingSphereState","./ColorMaterialProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(t,i,r,n,o,a,s){this.primitives=t,this.appearanceType=i,this.materialProperty=r,this.depthFailAppearanceType=n,this.depthFailMaterialProperty=o,this.closed=a,this.shadows=s,this.updaters=new e,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new e,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new e,this.attributes=new e,this.invalidated=!1,this.removeMaterialSubscription=r.definitionChanged.addEventListener(f.prototype.onMaterialChanged,this),this.subscriptions=new e,this.showsUpdated=new e}function m(e,t,i,r,n){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=i,this._closed=r,this._shadows=n}var _=new o,g=new o,v=t.ZERO,y=new t;f.prototype.onMaterialChanged=function(){this.invalidated=!0},f.prototype.isMaterial=function(e){var t=this.materialProperty,i=e.fillMaterialProperty,r=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(i===t&&o===r)return!0;var a=n(t)&&t.equals(i);return a=(!n(r)&&!n(o)||n(r)&&r.equals(o))&&a},f.prototype.add=function(e,t){var i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,t.createFillGeometryInstance(e)),t.hasConstantFill&&t.fillMaterialProperty.isConstant&&p.isConstant(t.distanceDisplayConditionProperty)&&p.isConstant(t.terrainOffsetProperty)){var r=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(e,i,n,o){"isShowing"===i&&r.showsUpdated.set(t.id,t)}))}else this.updatersWithAttributes.set(i,t);this.createPrimitive=!0},f.prototype.remove=function(e){var t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);var i=this.subscriptions.get(t);return n(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var C=new i;return f.prototype.update=function(e){var c,f=!0,m=this.primitive,b=this.primitives,S=this.geometry.values;if(this.createPrimitive){if(S.length>0){n(m)&&(n(this.oldPrimitive)?b.remove(m):this.oldPrimitive=m),this.material=h.getValue(e,this.materialProperty,this.material);var T;n(this.depthFailMaterialProperty)&&(this.depthFailMaterial=h.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),T=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),m=new u({show:!1,asynchronous:!0,geometryInstances:S,appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:T,shadows:this.shadows}),b.add(m),f=!1}else{n(m)&&(b.remove(m),m=void 0);var E=this.oldPrimitive;n(E)&&(b.remove(E),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=m,this.createPrimitive=!1}else if(n(m)&&m.ready){m.show=!0,n(this.oldPrimitive)&&(b.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=h.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,!n(this.depthFailAppearanceType)||this.depthFailMaterialProperty instanceof d||(this.depthFailMaterial=h.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);var A=this.updatersWithAttributes.values,w=A.length;for(c=0;c<w;c++){var x=A[c],P=x.entity,D=this.geometry.get(x.id),I=this.attributes.get(D.id.id);if(n(I)||(I=m.getGeometryInstanceAttributes(D.id),this.attributes.set(D.id.id,I)),n(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof d&&!x.depthFailMaterialProperty.isConstant){var M=x.depthFailMaterialProperty.color,R=p.getValueOrDefault(M,e,i.WHITE,C);i.equals(I._lastDepthFailColor,R)||(I._lastDepthFailColor=i.clone(R,I._lastDepthFailColor),I.depthFailColor=r.toValue(R,I.depthFailColor))}var O=P.isShowing&&(x.hasConstantFill||x.isFilled(e)),L=1===I.show[0];O!==L&&(I.show=l.toValue(O,I.show));var N=x.distanceDisplayConditionProperty;if(!p.isConstant(N)){var F=p.getValueOrDefault(N,e,g,_);o.equals(F,I._lastDistanceDisplayCondition)||(I._lastDistanceDisplayCondition=o.clone(F,I._lastDistanceDisplayCondition),I.distanceDisplayCondition=a.toValue(F,I.distanceDisplayCondition))}var B=x.terrainOffsetProperty;if(!p.isConstant(B)){var z=p.getValueOrDefault(B,e,v,y);t.equals(z,I._lastOffset)||(I._lastOffset=t.clone(z,I._lastOffset),I.offset=s.toValue(z,I.offset))}}this.updateShows(m)}else n(m)&&!m.ready&&(f=!1);return f},f.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,i=t.length,r=0;r<i;r++){var o=t[r],a=o.entity,s=this.geometry.get(o.id),u=this.attributes.get(s.id.id);n(u)||(u=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,u));var c=a.isShowing;c!==(1===u.show[0])&&(u.show=l.toValue(c,u.show),s.attributes.show.value[0]=u.show[0])}this.showsUpdated.removeAll()},f.prototype.contains=function(e){return this.updaters.contains(e.id)},f.prototype.getBoundingSphere=function(e,t){var i=this.primitive;if(!i.ready)return c.PENDING;var r=i.getGeometryInstanceAttributes(e.entity);return!n(r)||!n(r.boundingSphere)||n(r.show)&&0===r.show[0]?c.FAILED:(r.boundingSphere.clone(t),c.DONE)},f.prototype.destroy=function(){var e=this.primitive,t=this.primitives;n(e)&&t.remove(e);var i=this.oldPrimitive;n(i)&&t.remove(i),this.removeMaterialSubscription()},m.prototype.add=function(e,t){for(var i=this._items,r=i.length,n=0;n<r;n++){var o=i[n];if(o.isMaterial(t))return void o.add(e,t)}var a=new f(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);a.add(e,t),i.push(a)},m.prototype.remove=function(e){for(var t=this._items,i=t.length,r=i-1;r>=0;r--){var n=t[r];if(n.remove(e)){0===n.updaters.length&&(t.splice(r,1),n.destroy());break}}},m.prototype.update=function(e){var t,i=this._items,r=i.length;for(t=r-1;t>=0;t--){var n=i[t];if(n.invalidated){i.splice(t,1);for(var o=n.updaters.values,a=o.length,s=0;s<a;s++)this.add(e,o[s]);n.destroy()}}var l=!0;for(t=0;t<i.length;t++)l=i[t].update(e)&&l;return l},m.prototype.getBoundingSphere=function(e,t){for(var i=this._items,r=i.length,n=0;n<r;n++){var o=i[n];if(o.contains(e))return o.getBoundingSphere(e,t)}return c.FAILED},m.prototype.removeAllPrimitives=function(){for(var e=this._items,t=e.length,i=0;i<t;i++)e[i].destroy();this._items.length=0},m}),define("DataSources/StaticGroundGeometryColorBatch",["../Core/AssociativeArray","../Core/Color","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPrimitive","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t,i,r,n,o){this.primitives=t,this.zIndex=o,this.classificationType=i,this.color=r,this.key=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new e,this.updaters=new e,this.updatersWithAttributes=new e,this.attributes=new e,this.subscriptions=new e,this.showsUpdated=new e,this.itemsToRemove=[],this.isDirty=!1}function c(t,i){this._batches=new e,this._primitives=t,this._classificationType=i}var d=new t,h=new r,p=new r;u.prototype.add=function(e,t){var i=e.id;if(this.createPrimitive=!0,this.geometry.set(i,t),this.updaters.set(i,e),e.hasConstantFill&&e.fillMaterialProperty.isConstant&&l.isConstant(e.distanceDisplayConditionProperty)){var r=this;this.subscriptions.set(i,e.entity.definitionChanged.addEventListener(function(t,i,n,o){"isShowing"===i&&r.showsUpdated.set(e.id,e)}))}else this.updatersWithAttributes.set(i,e)},u.prototype.remove=function(e){var t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);var r=this.subscriptions.get(t);return i(r)&&(r(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var f=new Array(4);return u.prototype.update=function(e){var s,u=!0,c=0,m=this.primitive,_=this.primitives;if(this.createPrimitive){var g=this.geometry.values;if(g.length>0)i(m)&&(i(this.oldPrimitive)?_.remove(m):this.oldPrimitive=m),m=new a({show:!1,asynchronous:!0,geometryInstances:g,classificationType:this.classificationType}),_.add(m,this.zIndex),u=!1;else{i(m)&&(_.remove(m),m=void 0);var v=this.oldPrimitive;i(v)&&(_.remove(v),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=m,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(i(m)&&m.ready){m.show=!0,i(this.oldPrimitive)&&(_.remove(this.oldPrimitive),this.oldPrimitive=void 0);var y=this.updatersWithAttributes.values,C=y.length,b=this.waitingOnCreate;for(s=0;s<C;s++){var S=y[s],T=this.geometry.get(S.id),E=this.attributes.get(T.id.id);if(i(E)||(E=m.getGeometryInstanceAttributes(T.id),this.attributes.set(T.id.id,E)),!S.fillMaterialProperty.isConstant||b){var A=S.fillMaterialProperty.color,w=l.getValueOrDefault(A,e,t.WHITE,d);if(!t.equals(E._lastColor,w)){E._lastColor=t.clone(w,E._lastColor);var x=this.color,P=w.toBytes(f);x[0]===P[0]&&x[1]===P[1]&&x[2]===P[2]&&x[3]===P[3]||(this.itemsToRemove[c++]=S)}}var D=S.entity.isShowing&&(S.hasConstantFill||S.isFilled(e)),I=1===E.show[0];D!==I&&(E.show=o.toValue(D,E.show));var M=S.distanceDisplayConditionProperty;if(!l.isConstant(M)){var R=l.getValueOrDefault(M,e,p,h);r.equals(R,E._lastDistanceDisplayCondition)||(E._lastDistanceDisplayCondition=r.clone(R,E._lastDistanceDisplayCondition),E.distanceDisplayCondition=n.toValue(R,E.distanceDisplayCondition))}}this.updateShows(m),this.waitingOnCreate=!1}else i(m)&&!m.ready&&(u=!1);return this.itemsToRemove.length=c,u},u.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,r=t.length,n=0;n<r;n++){var a=t[n],s=this.geometry.get(a.id),l=this.attributes.get(s.id.id);i(l)||(l=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,l));var u=a.entity.isShowing;u!==(1===l.show[0])&&(l.show=o.toValue(u,l.show),s.attributes.show.value[0]=l.show[0])}this.showsUpdated.removeAll()},u.prototype.contains=function(e){return this.updaters.contains(e.id)},u.prototype.getBoundingSphere=function(e,t){var r=this.primitive;if(!r.ready)return s.PENDING;var n=r.getBoundingSphere(e.entity);return i(n)?(n.clone(t),s.DONE):s.FAILED},u.prototype.removeAllPrimitives=function(){var e=this.primitives,t=this.primitive;i(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());var r=this.oldPrimitive;i(r)&&(e.remove(r),this.oldPrimitive=void 0)},c.prototype.add=function(e,t){var i,r=t.createFillGeometryInstance(e),n=this._batches,o=l.getValueOrDefault(t.zIndex,0),a=new Uint32Array(r.attributes.color.value.buffer)[0]+":"+o;return n.contains(a)?i=n.get(a):(i=new u(this._primitives,this._classificationType,r.attributes.color.value,a,o),n.set(a,i)),i.add(t,r),i},c.prototype.remove=function(e){for(var t=this._batches.values,i=t.length,r=0;r<i;++r)if(t[r].remove(e))return},c.prototype.update=function(e){var t,i,r=!0,n=this._batches,o=n.values,a=o.length;for(t=0;t<a;++t)r=o[t].update(e)&&r;for(t=0;t<a;++t)for(var s=o[t],l=s.itemsToRemove,u=l.length,c=0;c<u;c++){i=l[c],s.remove(i);var d=this.add(e,i);s.isDirty=!0,d.isDirty=!0}var h=o.slice(),p=h.length;for(t=0;t<p;++t){var f=h[t];f.isDirty&&(r=h[t].update(e)&&r,f.isDirty=!1),0===f.geometry.length&&n.remove(f.key)}return r},c.prototype.getBoundingSphere=function(e,t){for(var i=this._batches.values,r=i.length,n=0;n<r;++n){var o=i[n];if(o.contains(e))return o.getBoundingSphere(e,t)}return s.FAILED},c.prototype.removeAllPrimitives=function(){for(var e=this._batches.values,t=e.length,i=0;i<t;++i)e[i].removeAllPrimitives()},c}),define("DataSources/StaticGroundGeometryPerMaterialBatch",["../Core/AssociativeArray","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Core/RectangleCollisionChecker","../Scene/ClassificationType","../Scene/GroundPrimitive","../Scene/ShadowVolumeAppearance","./BoundingSphereState","./ColorMaterialProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(t,i,r,n,o,s){this.primitives=t,this.classificationType=i,this.appearanceType=r,this.materialProperty=n,this.updaters=new e,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new e,this.material=void 0,this.updatersWithAttributes=new e,this.attributes=new e,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(f.prototype.onMaterialChanged,this),this.subscriptions=new e,this.showsUpdated=new e,this.usingSphericalTextureCoordinates=o,this.zIndex=s,this.rectangleCollisionCheck=new a}function m(e,t,i){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=i}var _=new r,g=new r;return f.prototype.onMaterialChanged=function(){this.invalidated=!0},f.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)},f.prototype.isMaterial=function(e){var t=this.materialProperty,r=e.fillMaterialProperty;return r===t||r instanceof d&&t instanceof d||i(t)&&t.equals(r)},f.prototype.add=function(e,t,i){var r=t.id;if(this.updaters.set(r,t),this.geometry.set(r,i),this.rectangleCollisionCheck.insert(r,i.geometry.rectangle),t.hasConstantFill&&t.fillMaterialProperty.isConstant&&p.isConstant(t.distanceDisplayConditionProperty)){var n=this;this.subscriptions.set(r,t.entity.definitionChanged.addEventListener(function(e,i,r,o){"isShowing"===i&&n.showsUpdated.set(t.id,t)}))}else this.updatersWithAttributes.set(r,t);this.createPrimitive=!0},f.prototype.remove=function(e){var t=e.id,r=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,r.geometry.rectangle),this.updatersWithAttributes.remove(t);var n=this.subscriptions.get(t);return i(n)&&(n(),this.subscriptions.remove(t)),!0}return!1},f.prototype.update=function(e){var t,a=!0,s=this.primitive,u=this.primitives,c=this.geometry.values;if(this.createPrimitive){if(c.length>0)i(s)&&(i(this.oldPrimitive)?u.remove(s):this.oldPrimitive=s),this.material=h.getValue(e,this.materialProperty,this.material),s=new l({show:!1,asynchronous:!0,geometryInstances:c,appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),u.add(s,this.zIndex),a=!1;else{i(s)&&(u.remove(s),s=void 0);var d=this.oldPrimitive;i(d)&&(u.remove(d),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=s,this.createPrimitive=!1}else if(i(s)&&s.ready){s.show=!0,i(this.oldPrimitive)&&(u.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=h.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;var f=this.updatersWithAttributes.values,m=f.length;for(t=0;t<m;t++){var v=f[t],y=v.entity,C=this.geometry.get(v.id),b=this.attributes.get(C.id.id);i(b)||(b=s.getGeometryInstanceAttributes(C.id),this.attributes.set(C.id.id,b));var S=y.isShowing&&(v.hasConstantFill||v.isFilled(e)),T=1===b.show[0];S!==T&&(b.show=o.toValue(S,b.show));var E=v.distanceDisplayConditionProperty;if(!p.isConstant(E)){var A=p.getValueOrDefault(E,e,g,_);r.equals(A,b._lastDistanceDisplayCondition)||(b._lastDistanceDisplayCondition=r.clone(A,b._lastDistanceDisplayCondition),b.distanceDisplayCondition=n.toValue(A,b.distanceDisplayCondition))}}this.updateShows(s)}else i(s)&&!s.ready&&(a=!1);return a},f.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,r=t.length,n=0;n<r;n++){var a=t[n],s=a.entity,l=this.geometry.get(a.id),u=this.attributes.get(l.id.id);i(u)||(u=e.getGeometryInstanceAttributes(l.id),this.attributes.set(l.id.id,u));var c=s.isShowing;c!==(1===u.show[0])&&(u.show=o.toValue(c,u.show),l.attributes.show.value[0]=u.show[0])}this.showsUpdated.removeAll()},f.prototype.contains=function(e){return this.updaters.contains(e.id)},f.prototype.getBoundingSphere=function(e,t){var r=this.primitive;if(!r.ready)return c.PENDING;var n=r.getGeometryInstanceAttributes(e.entity);return!i(n)||!i(n.boundingSphere)||i(n.show)&&0===n.show[0]?c.FAILED:(n.boundingSphere.clone(t),c.DONE)},f.prototype.destroy=function(){var e=this.primitive,t=this.primitives;i(e)&&t.remove(e);var r=this.oldPrimitive;i(r)&&t.remove(r),this.removeMaterialSubscription()},m.prototype.add=function(e,t){for(var i=this._items,r=i.length,n=t.createFillGeometryInstance(e),o=u.shouldUseSphericalCoordinates(n.geometry.rectangle),a=p.getValueOrDefault(t.zIndex,0),s=0;s<r;++s){var l=i[s];if(l.isMaterial(t)&&l.usingSphericalTextureCoordinates===o&&l.zIndex===a&&!l.overlapping(n.geometry.rectangle))return void l.add(e,t,n)}var c=new f(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,o,a);c.add(e,t,n),i.push(c)},m.prototype.remove=function(e){for(var t=this._items,i=t.length,r=i-1;r>=0;r--){var n=t[r];if(n.remove(e)){0===n.updaters.length&&(t.splice(r,1),n.destroy());break}}},m.prototype.update=function(e){var t,i=this._items,r=i.length;for(t=r-1;t>=0;t--){var n=i[t];if(n.invalidated){i.splice(t,1);for(var o=n.updaters.values,a=o.length,s=0;s<a;s++)this.add(e,o[s]);n.destroy()}}var l=!0;for(t=0;t<i.length;t++)l=i[t].update(e)&&l;return l},m.prototype.getBoundingSphere=function(e,t){for(var i=this._items,r=i.length,n=0;n<r;n++){var o=i[n];if(o.contains(e))return o.getBoundingSphere(e,t)}return c.FAILED},m.prototype.removeAllPrimitives=function(){for(var e=this._items,t=e.length,i=0;i<t;i++)e[i].destroy();this._items.length=0},m}),define("DataSources/StaticOutlineGeometryBatch",["../Core/AssociativeArray","../Core/Cartesian3","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/OffsetGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/PerInstanceColorAppearance","../Scene/Primitive","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(t,i,r,n){this.translucent=i,this.width=r,this.shadows=n,this.primitives=t,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new e,this.updaters=new e,this.updatersWithAttributes=new e,this.attributes=new e,this.itemsToRemove=[],this.subscriptions=new e,this.showsUpdated=new e}function f(t,i,r){this._primitives=t,this._scene=i,this._shadows=r,this._solidBatches=new e,this._translucentBatches=new e}var m=new i,_=new o,g=new o,v=t.ZERO,y=new t;return p.prototype.add=function(e,t){var i=e.id;if(this.createPrimitive=!0,this.geometry.set(i,t),this.updaters.set(i,e),e.hasConstantOutline&&e.outlineColorProperty.isConstant&&h.isConstant(e.distanceDisplayConditionProperty)&&h.isConstant(e.terrainOffsetProperty)){var r=this;this.subscriptions.set(i,e.entity.definitionChanged.addEventListener(function(t,i,n,o){"isShowing"===i&&r.showsUpdated.set(e.id,e)}))}else this.updatersWithAttributes.set(i,e)},p.prototype.remove=function(e){var t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);var i=this.subscriptions.get(t);return n(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1},p.prototype.update=function(e){var d,p=!0,f=0,C=this.primitive,b=this.primitives;if(this.createPrimitive){var S=this.geometry.values;if(S.length>0)n(C)&&(n(this.oldPrimitive)?b.remove(C):this.oldPrimitive=C),C=new c({show:!1,asynchronous:!0,geometryInstances:S,appearance:new u({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),b.add(C),p=!1;else{n(C)&&(b.remove(C),C=void 0);var T=this.oldPrimitive;n(T)&&(b.remove(T),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=C,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(n(C)&&C.ready){C.show=!0,n(this.oldPrimitive)&&(b.remove(this.oldPrimitive),this.oldPrimitive=void 0);var E=this.updatersWithAttributes.values,A=E.length,w=this.waitingOnCreate;for(d=0;d<A;d++){var x=E[d],P=this.geometry.get(x.id),D=this.attributes.get(P.id.id);if(n(D)||(D=C.getGeometryInstanceAttributes(P.id),this.attributes.set(P.id.id,D)),!x.outlineColorProperty.isConstant||w){var I=x.outlineColorProperty,M=h.getValueOrDefault(I,e,i.WHITE,m);i.equals(D._lastColor,M)||(D._lastColor=i.clone(M,D._lastColor),D.color=r.toValue(M,D.color),(this.translucent&&255===D.color[3]||!this.translucent&&255!==D.color[3])&&(this.itemsToRemove[f++]=x))}var R=x.entity.isShowing&&(x.hasConstantOutline||x.isOutlineVisible(e)),O=1===D.show[0];R!==O&&(D.show=l.toValue(R,D.show));var L=x.distanceDisplayConditionProperty;if(!h.isConstant(L)){var N=h.getValueOrDefault(L,e,g,_);o.equals(N,D._lastDistanceDisplayCondition)||(D._lastDistanceDisplayCondition=o.clone(N,D._lastDistanceDisplayCondition),D.distanceDisplayCondition=a.toValue(N,D.distanceDisplayCondition))}var F=x.terrainOffsetProperty;if(!h.isConstant(F)){var B=h.getValueOrDefault(F,e,v,y);t.equals(B,D._lastOffset)||(D._lastOffset=t.clone(B,D._lastOffset),D.offset=s.toValue(B,D.offset))}}this.updateShows(C),this.waitingOnCreate=!1}else n(C)&&!C.ready&&(p=!1);return this.itemsToRemove.length=f,p},p.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,i=t.length,r=0;r<i;r++){var o=t[r],a=this.geometry.get(o.id),s=this.attributes.get(a.id.id);n(s)||(s=e.getGeometryInstanceAttributes(a.id),this.attributes.set(a.id.id,s));var u=o.entity.isShowing;u!==(1===s.show[0])&&(s.show=l.toValue(u,s.show),a.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()},p.prototype.contains=function(e){return this.updaters.contains(e.id)},p.prototype.getBoundingSphere=function(e,t){var i=this.primitive;if(!i.ready)return d.PENDING;var r=i.getGeometryInstanceAttributes(e.entity);return!n(r)||!n(r.boundingSphere)||n(r.show)&&0===r.show[0]?d.FAILED:(r.boundingSphere.clone(t),d.DONE)},p.prototype.removeAllPrimitives=function(){var e=this.primitives,t=this.primitive;n(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());var i=this.oldPrimitive;n(i)&&(e.remove(i),this.oldPrimitive=void 0)},f.prototype.add=function(e,t){var i,r,o=t.createOutlineGeometryInstance(e),a=this._scene.clampLineWidth(t.outlineWidth);255===o.attributes.color.value[3]?(i=this._solidBatches,r=i.get(a),n(r)||(r=new p(this._primitives,!1,a,this._shadows),i.set(a,r)),r.add(t,o)):(i=this._translucentBatches,r=i.get(a),n(r)||(r=new p(this._primitives,!0,a,this._shadows),i.set(a,r)),r.add(t,o))},f.prototype.remove=function(e){var t,i=this._solidBatches.values,r=i.length;for(t=0;t<r;t++)if(i[t].remove(e))return;var n=this._translucentBatches.values,o=n.length;for(t=0;t<o;t++)if(n[t].remove(e))return},f.prototype.update=function(e){var t,i,r,n,o,a=this._solidBatches.values,s=a.length,l=this._translucentBatches.values,u=l.length,c=!0,d=!1;do{for(d=!1,i=0;i<s;i++){n=a[i],c=n.update(e),o=n.itemsToRemove;var h=o.length;if(h>0)for(d=!0,t=0;t<h;t++)r=o[t],n.remove(r),this.add(e,r)}for(i=0;i<u;i++){n=l[i],c=n.update(e),o=n.itemsToRemove;var p=o.length;if(p>0)for(d=!0,t=0;t<p;t++)r=o[t],n.remove(r),this.add(e,r)}}while(d);return c},f.prototype.getBoundingSphere=function(e,t){var i,r=this._solidBatches.values,n=r.length;for(i=0;i<n;i++){var o=r[i];if(o.contains(e))return o.getBoundingSphere(e,t)}var a=this._translucentBatches.values,s=a.length;for(i=0;i<s;i++){var l=a[i];if(l.contains(e))return l.getBoundingSphere(e,t)}return d.FAILED},f.prototype.removeAllPrimitives=function(){var e,t=this._solidBatches.values,i=t.length;for(e=0;e<i;e++)t[e].removeAllPrimitives();var r=this._translucentBatches.values,n=r.length;for(e=0;e<n;e++)r[e].removeAllPrimitives()},f}),define("DataSources/WallGeometryUpdater",["../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DeveloperError","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/GeometryInstance","../Core/Iso8601","../Core/ShowGeometryInstanceAttribute","../Core/WallGeometry","../Core/WallOutlineGeometry","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","./ColorMaterialProperty","./DynamicGeometryUpdater","./GeometryUpdater","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function v(e,t){m.call(this,{entity:e,scene:t,geometryOptions:new g(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}function y(e,t,i){f.call(this,e,t,i)}var C=new t;return r(Object.create)&&(v.prototype=Object.create(m.prototype),v.prototype.constructor=v),v.prototype.createFillGeometryInstance=function(e){var n,s,c=this._entity,d=c.isAvailable(e),h=new l(d&&c.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),f=this._distanceDisplayConditionProperty.getValue(e),m=o.fromDistanceDisplayCondition(f);if(this._materialProperty instanceof p){var _;r(this._materialProperty.color)&&(this._materialProperty.color.isConstant||d)&&(_=this._materialProperty.color.getValue(e,C)),r(_)||(_=t.WHITE),s=i.fromColor(_),n={show:h,distanceDisplayCondition:m,color:s}}else n={show:h,distanceDisplayCondition:m};return new a({id:c,geometry:new u(this._options),attributes:n})},v.prototype.createOutlineGeometryInstance=function(e){var r=this._entity,n=r.isAvailable(e),s=_.getValueOrDefault(this._outlineColorProperty,e,t.BLACK,C),u=this._distanceDisplayConditionProperty.getValue(e);return new a({id:r,geometry:new c(this._options),attributes:{show:new l(n&&r.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:i.fromColor(s), -distanceDisplayCondition:o.fromDistanceDisplayCondition(u)}})},v.prototype._isHidden=function(e,t){return!r(t.positions)||m.prototype._isHidden.call(this,e,t)},v.prototype._getIsClosed=function(e){return!1},v.prototype._isDynamic=function(e,t){return!(t.positions.isConstant&&_.isConstant(t.minimumHeights)&&_.isConstant(t.maximumHeights)&&_.isConstant(t.outlineWidth)&&_.isConstant(t.granularity))},v.prototype._setStaticOptions=function(e,t){var i=t.minimumHeights,n=t.maximumHeights,o=t.granularity,a=this._materialProperty instanceof p,l=this._options;l.vertexFormat=a?h.VERTEX_FORMAT:d.MaterialSupport.TEXTURED.vertexFormat,l.positions=t.positions.getValue(s.MINIMUM_VALUE,l.positions),l.minimumHeights=r(i)?i.getValue(s.MINIMUM_VALUE,l.minimumHeights):void 0,l.maximumHeights=r(n)?n.getValue(s.MINIMUM_VALUE,l.maximumHeights):void 0,l.granularity=r(o)?o.getValue(s.MINIMUM_VALUE):void 0},v.DynamicGeometryUpdater=y,r(Object.create)&&(y.prototype=Object.create(f.prototype),y.prototype.constructor=y),y.prototype._isHidden=function(e,t,i){return!r(this._options.positions)||f.prototype._isHidden.call(this,e,t,i)},y.prototype._setOptions=function(e,t,i){var r=this._options;r.positions=_.getValueOrUndefined(t.positions,i,r.positions),r.minimumHeights=_.getValueOrUndefined(t.minimumHeights,i,r.minimumHeights),r.maximumHeights=_.getValueOrUndefined(t.maximumHeights,i,r.maximumHeights),r.granularity=_.getValueOrUndefined(t.granularity,i)},v}),define("DataSources/GeometryVisualizer",["../Core/AssociativeArray","../Core/BoundingSphere","../Core/Check","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/Event","../Core/EventHelper","../Scene/ClassificationType","../Scene/MaterialAppearance","../Scene/PerInstanceColorAppearance","../Scene/ShadowMode","./BoundingSphereState","./BoxGeometryUpdater","./ColorMaterialProperty","./CorridorGeometryUpdater","./CylinderGeometryUpdater","./DynamicGeometryBatch","./EllipseGeometryUpdater","./EllipsoidGeometryUpdater","./Entity","./PlaneGeometryUpdater","./PolygonGeometryUpdater","./PolylineVolumeGeometryUpdater","./RectangleGeometryUpdater","./StaticGeometryColorBatch","./StaticGeometryPerMaterialBatch","./StaticGroundGeometryColorBatch","./StaticGroundGeometryPerMaterialBatch","./StaticOutlineGeometryBatch","./WallGeometryUpdater"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I){"use strict";function M(e,t){function i(e){n.raiseEvent(e)}this.entity=e,this.scene=t;for(var r=new Array(L.length),n=new a,o=new s,l=0;l<r.length;l++){var u=new L[l](e,t);o.add(u.geometryChanged,i),r[l]=u}this.updaters=r,this.geometryChanged=n,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(M.prototype._onEntityPropertyChanged,this)}function R(t,i,n,o){n=r(n,t.primitives),o=r(o,t.groundPrimitives),this._scene=t,this._primitives=n,this._groundPrimitives=o,this._entityCollection=void 0,this._addedObjects=new e,this._removedObjects=new e,this._changedObjects=new e;var a=d.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(2*a),this._closedColorBatches=new Array(2*a),this._closedMaterialBatches=new Array(2*a),this._openColorBatches=new Array(2*a),this._openMaterialBatches=new Array(2*a);var s=C.supportsMaterialsforEntitiesOnTerrain(t);this._supportsMaterialsforEntitiesOnTerrain=s;var h;for(h=0;h<a;++h)this._outlineBatches[h]=new D(n,t,h,!1),this._outlineBatches[a+h]=new D(n,t,h,!0),this._closedColorBatches[h]=new A(n,c,void 0,!0,h,!0),this._closedColorBatches[a+h]=new A(n,c,void 0,!0,h,!1),this._closedMaterialBatches[h]=new w(n,u,void 0,!0,h,!0),this._closedMaterialBatches[a+h]=new w(n,u,void 0,!0,h,!1),this._openColorBatches[h]=new A(n,c,void 0,!1,h,!0),this._openColorBatches[a+h]=new A(n,c,void 0,!1,h,!1),this._openMaterialBatches[h]=new w(n,u,void 0,!1,h,!0),this._openMaterialBatches[a+h]=new w(n,u,void 0,!1,h,!1);var p=l.NUMBER_OF_CLASSIFICATION_TYPES,f=new Array(p),m=[];if(s)for(h=0;h<p;++h)m.push(new P(o,h,u)),f[h]=new P(o,h,c);else for(h=0;h<p;++h)f[h]=new x(o,h);this._groundColorBatches=f,this._groundMaterialBatches=m,this._dynamicBatch=new g(n,o),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new e,this._updaterSets=new e,this._entityCollection=i,i.collectionChanged.addEventListener(R.prototype._onCollectionChanged,this),this._onCollectionChanged(i,i.values,O)}var O=[],L=[p,_,m,v,y,b,S,T,E,I];M.prototype._onEntityPropertyChanged=function(e,t,i,r){for(var n=this.updaters,o=0;o<n.length;o++)n[o]._onEntityPropertyChanged(e,t,i,r)},M.prototype.forEach=function(e){for(var t=this.updaters,i=0;i<t.length;i++)e(t[i])},M.prototype.destroy=function(){this.eventHelper.removeAll();for(var e=this.updaters,t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),o(this)},R.prototype.update=function(e){var t,i,r,n,o=this._addedObjects,a=o.values,s=this._removedObjects,l=s.values,u=this._changedObjects,c=u.values,d=this;for(t=c.length-1;t>-1;t--)i=c[t],r=i.id,n=this._updaterSets.get(r),n.entity===i?n.forEach(function(t){d._removeUpdater(t),d._insertUpdaterIntoBatch(e,t)}):(l.push(i),a.push(i));for(t=l.length-1;t>-1;t--)i=l[t],r=i.id,n=this._updaterSets.get(r),n.forEach(this._removeUpdater.bind(this)),n.destroy(),this._updaterSets.remove(r),this._subscriptions.get(r)(),this._subscriptions.remove(r);for(t=a.length-1;t>-1;t--)i=a[t],r=i.id,n=new M(i,this._scene),this._updaterSets.set(r,n),n.forEach(function(t){d._insertUpdaterIntoBatch(e,t)}),this._subscriptions.set(r,n.geometryChanged.addEventListener(R._onGeometryChanged,this));o.removeAll(),s.removeAll(),u.removeAll();var h=!0,p=this._batches,f=p.length;for(t=0;t<f;t++)h=p[t].update(e)&&h;return h};var N=[],F=new t;return R.prototype.getBoundingSphere=function(e,i){for(var r=N,n=F,o=0,a=h.DONE,s=this._batches,l=s.length,u=e.id,c=this._updaterSets.get(u).updaters,d=0;d<c.length;d++)for(var p=c[d],f=0;f<l;f++){if((a=s[f].getBoundingSphere(p,n))===h.PENDING)return h.PENDING;a===h.DONE&&(r[o]=t.clone(n,r[o]),o++)}return 0===o?h.FAILED:(r.length=o,t.fromBoundingSpheres(r,i),h.DONE)},R.prototype.isDestroyed=function(){return!1},R.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(R.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();var e,t=this._batches,i=t.length;for(e=0;e<i;e++)t[e].removeAllPrimitives();var r=this._subscriptions.values;for(i=r.length,e=0;e<i;e++)r[e]();this._subscriptions.removeAll();var n=this._updaterSets.values;for(i=n.length,e=0;e<i;e++)n[e].destroy();return this._updaterSets.removeAll(),o(this)},R.prototype._removeUpdater=function(e){for(var t=this._batches,i=t.length,r=0;r<i;r++)t[r].remove(e)},R.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic)return void this._dynamicBatch.add(e,t);var i;(t.outlineEnabled||t.fillEnabled)&&(i=t.shadowsProperty.getValue(e));var r=d.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(n(t.terrainOffsetProperty)?this._outlineBatches[r+i].add(e,t):this._outlineBatches[i].add(e,t)),t.fillEnabled)if(t.onTerrain){var o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof f?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof f?n(t.terrainOffsetProperty)?this._closedColorBatches[r+i].add(e,t):this._closedColorBatches[i].add(e,t):n(t.terrainOffsetProperty)?this._closedMaterialBatches[r+i].add(e,t):this._closedMaterialBatches[i].add(e,t):t.fillMaterialProperty instanceof f?n(t.terrainOffsetProperty)?this._openColorBatches[r+i].add(e,t):this._openColorBatches[i].add(e,t):n(t.terrainOffsetProperty)?this._openMaterialBatches[r+i].add(e,t):this._openMaterialBatches[i].add(e,t)},R._onGeometryChanged=function(e){var t=this._removedObjects,i=this._changedObjects,r=e.entity,o=r.id;n(t.get(o))||n(i.get(o))||i.set(o,r)},R.prototype._onCollectionChanged=function(e,t,i){var r,n,o,a=this._addedObjects,s=this._removedObjects,l=this._changedObjects;for(r=i.length-1;r>-1;r--)o=i[r],n=o.id,a.remove(n)||(s.set(n,o),l.remove(n));for(r=t.length-1;r>-1;r--)o=t[r],n=o.id,s.remove(n)?l.set(n,o):a.set(n,o)},R}),define("DataSources/LabelVisualizer",["../Core/AssociativeArray","../Core/Cartesian2","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/NearFarScalar","../Scene/HeightReference","../Scene/HorizontalOrigin","../Scene/LabelStyle","../Scene/VerticalOrigin","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){this.entity=e,this.label=void 0,this.index=void 0}function g(t,i){i.collectionChanged.addEventListener(g.prototype._onCollectionChanged,this),this._cluster=t,this._entityCollection=i,this._items=new e,this._onCollectionChanged(i,i.values,[],[])}function v(e,t,i){o(e)&&(e.label=void 0,i.removeLabel(t))}var y=h.FILL,C=r.WHITE,b=r.BLACK,S=new r(.165,.165,.165,.8),T=new t(7,5),E=t.ZERO,A=i.ZERO,w=c.NONE,x=d.CENTER,P=p.CENTER,D=new i,I=new r,M=new r,R=new r,O=new t,L=new i,N=new t,F=new u,B=new u,z=new u,k=new l;return g.prototype.update=function(e){for(var t=this._items.values,r=this._cluster,n=0,a=t.length;n<a;n++){var s,l,u=t[n],c=u.entity,d=c._label,h=u.label,p=c.isShowing&&c.isAvailable(e)&&m.getValueOrDefault(d._show,e,!0);if(p&&(l=m.getValueOrUndefined(c._position,e,D),s=m.getValueOrUndefined(d._text,e),p=o(l)&&o(s)),p){m.isConstant(c._position)||(r._clusterDirty=!0);var f=!1,_=m.getValueOrDefault(d._heightReference,e,w);o(h)||(h=r.getLabel(c),h.id=c,u.label=h,f=i.equals(h.position,l)&&h.heightReference===_),h.show=!0,h.position=l,h.text=s,h.scale=m.getValueOrDefault(d._scale,e,1),h.font=m.getValueOrDefault(d._font,e,"30px sans-serif"),h.style=m.getValueOrDefault(d._style,e,y),h.fillColor=m.getValueOrDefault(d._fillColor,e,C,I),h.outlineColor=m.getValueOrDefault(d._outlineColor,e,b,M),h.outlineWidth=m.getValueOrDefault(d._outlineWidth,e,1),h.showBackground=m.getValueOrDefault(d._showBackground,e,!1),h.backgroundColor=m.getValueOrDefault(d._backgroundColor,e,S,R),h.backgroundPadding=m.getValueOrDefault(d._backgroundPadding,e,T,O),h.pixelOffset=m.getValueOrDefault(d._pixelOffset,e,E,N),h.eyeOffset=m.getValueOrDefault(d._eyeOffset,e,A,L),h.heightReference=_,h.horizontalOrigin=m.getValueOrDefault(d._horizontalOrigin,e,x),h.verticalOrigin=m.getValueOrDefault(d._verticalOrigin,e,P),h.translucencyByDistance=m.getValueOrUndefined(d._translucencyByDistance,e,F),h.pixelOffsetScaleByDistance=m.getValueOrUndefined(d._pixelOffsetScaleByDistance,e,B),h.scaleByDistance=m.getValueOrUndefined(d._scaleByDistance,e,z),h.distanceDisplayCondition=m.getValueOrUndefined(d._distanceDisplayCondition,e,k),h.disableDepthTestDistance=m.getValueOrUndefined(d._disableDepthTestDistance,e),f&&h._updateClamping()}else v(u,c,r)}return!0},g.prototype.getBoundingSphere=function(e,t){var r=this._items.get(e.id);if(!o(r)||!o(r.label))return f.FAILED;var a=r.label;return t.center=i.clone(n(a._clampedPosition,a.position),t.center),t.radius=0,f.DONE},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(g.prototype._onCollectionChanged,this);for(var e=this._entityCollection.values,t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return a(this)},g.prototype._onCollectionChanged=function(e,t,i,r){var n,a,s=this._items,l=this._cluster;for(n=t.length-1;n>-1;n--)a=t[n],o(a._label)&&o(a._position)&&s.set(a.id,new _(a));for(n=r.length-1;n>-1;n--)a=r[n],o(a._label)&&o(a._position)?s.contains(a.id)||s.set(a.id,new _(a)):(v(s.get(a.id),a,l),s.remove(a.id));for(n=i.length-1;n>-1;n--)a=i[n],v(s.get(a.id),a,l),s.remove(a.id)},g}),define("ThirdParty/GltfPipeline/addToArray",["../../Core/defaultValue"],function(e){"use strict";function t(t,i,r){if(r=e(r,!1)){var n=t.indexOf(i);if(n>-1)return n}return t.push(i),t.length-1}return t}),define("ThirdParty/GltfPipeline/hasExtension",["../../Core/defined"],function(e){"use strict";function t(t,i){return e(t.extensionsUsed)&&t.extensionsUsed.indexOf(i)>=0}return t}),define("ThirdParty/GltfPipeline/ForEach",["./hasExtension","../../Core/defined","../../Core/isArray"],function(e,t,i){"use strict";function r(){}return r.objectLegacy=function(e,i){if(t(e))for(var r in e)if(e.hasOwnProperty(r)){var n=e[r],o=i(n,r);if(t(o))return o}},r.object=function(e,i){if(t(e))for(var r=e.length,n=0;n<r;n++){var o=e[n],a=i(o,n);if(t(a))return a}},r.topLevel=function(e,n,o){var a=e[n];return t(a)&&!i(a)?r.objectLegacy(a,o):r.object(a,o)},r.accessor=function(e,t){return r.topLevel(e,"accessors",t)},r.accessorWithSemantic=function(e,i,n){var o={};return r.mesh(e,function(e){return r.meshPrimitive(e,function(e){var a=r.meshPrimitiveAttribute(e,function(e,r){if(0===r.indexOf(i)&&!t(o[e])&&(o[e]=!0,a=n(e),t(a)))return a});return t(a)?a:r.meshPrimitiveTarget(e,function(e){return r.meshPrimitiveTargetAttribute(e,function(e,r){if(0===r.indexOf(i)&&!t(o[e])&&(o[e]=!0,a=n(e),t(a)))return a})})})})},r.accessorContainingVertexAttributeData=function(e,i){var n={};return r.mesh(e,function(e){return r.meshPrimitive(e,function(e){var o=r.meshPrimitiveAttribute(e,function(e){if(!t(n[e])&&(n[e]=!0,o=i(e),t(o)))return o});return t(o)?o:r.meshPrimitiveTarget(e,function(e){return r.meshPrimitiveTargetAttribute(e,function(e){if(!t(n[e])&&(n[e]=!0,o=i(e),t(o)))return o})})})})},r.accessorContainingIndexData=function(e,i){var n={};return r.mesh(e,function(e){return r.meshPrimitive(e,function(e){var r=e.indices;if(t(r)&&!t(n[r])){n[r]=!0;var o=i(r);if(t(o))return o}})})},r.animation=function(e,t){return r.topLevel(e,"animations",t)},r.animationChannel=function(e,t){var i=e.channels;return r.object(i,t)},r.animationSampler=function(e,t){var i=e.samplers;return r.object(i,t)},r.buffer=function(e,t){return r.topLevel(e,"buffers",t)},r.bufferView=function(e,t){return r.topLevel(e,"bufferViews",t)},r.camera=function(e,t){return r.topLevel(e,"cameras",t)},r.image=function(e,t){return r.topLevel(e,"images",t)},r.compressedImage=function(e,i){if(t(e.extras)){var r=e.extras.compressedImage3DTiles;for(var n in r)if(r.hasOwnProperty(n)){var o=r[n],a=i(o,n);if(t(a))return a}}},r.material=function(e,t){return r.topLevel(e,"materials",t)},r.materialValue=function(e,i){var r=e.values;t(e.extensions)&&t(e.extensions.KHR_techniques_webgl)&&(r=e.extensions.KHR_techniques_webgl.values);for(var n in r)if(r.hasOwnProperty(n)){var o=i(r[n],n);if(t(o))return o}},r.mesh=function(e,t){return r.topLevel(e,"meshes",t)},r.meshPrimitive=function(e,i){var r=e.primitives;if(t(r))for(var n=r.length,o=0;o<n;o++){var a=r[o],s=i(a,o);if(t(s))return s}},r.meshPrimitiveAttribute=function(e,i){var r=e.attributes;for(var n in r)if(r.hasOwnProperty(n)){var o=i(r[n],n);if(t(o))return o}},r.meshPrimitiveTarget=function(e,i){var r=e.targets;if(t(r))for(var n=r.length,o=0;o<n;++o){var a=i(r[o],o);if(t(a))return a}},r.meshPrimitiveTargetAttribute=function(e,i){for(var r in e)if(e.hasOwnProperty(r)){var n=e[r],o=i(n,r);if(t(o))return o}},r.node=function(e,t){return r.topLevel(e,"nodes",t)},r.nodeInTree=function(e,i,n){var o=e.nodes;if(t(o))for(var a=i.length,s=0;s<a;s++){var l=i[s],u=o[l];if(t(u)){var c=n(u,l);if(t(c))return c;var d=u.children;if(t(d)&&(c=r.nodeInTree(e,d,n),t(c)))return c}}},r.nodeInScene=function(e,i,n){var o=i.nodes;if(t(o))return r.nodeInTree(e,o,n)},r.program=function(t,i){return e(t,"KHR_techniques_webgl")?r.object(t.extensions.KHR_techniques_webgl.programs,i):r.topLevel(t,"programs",i)},r.sampler=function(e,t){return r.topLevel(e,"samplers",t)},r.scene=function(e,t){return r.topLevel(e,"scenes",t)},r.shader=function(t,i){return e(t,"KHR_techniques_webgl")?r.object(t.extensions.KHR_techniques_webgl.shaders,i):r.topLevel(t,"shaders",i)},r.skin=function(e,t){return r.topLevel(e,"skins",t)},r.techniqueAttribute=function(e,i){var r=e.attributes;for(var n in r)if(r.hasOwnProperty(n)){var o=i(r[n],n);if(t(o))return o}},r.techniqueUniform=function(e,i){var r=e.uniforms;for(var n in r)if(r.hasOwnProperty(n)){var o=i(r[n],n);if(t(o))return o}},r.techniqueParameter=function(e,i){var r=e.parameters;for(var n in r)if(r.hasOwnProperty(n)){var o=i(r[n],n);if(t(o))return o}},r.technique=function(t,i){return e(t,"KHR_techniques_webgl")?r.object(t.extensions.KHR_techniques_webgl.techniques,i):r.topLevel(t,"techniques",i)},r.texture=function(e,t){return r.topLevel(e,"textures",t)},r}),define("ThirdParty/GltfPipeline/numberOfComponentsForType",[],function(){"use strict";function e(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}return e}),define("ThirdParty/GltfPipeline/getAccessorByteStride",["./numberOfComponentsForType","../../Core/ComponentDatatype","../../Core/defined"],function(e,t,i){"use strict";function r(r,n){var o=n.bufferView;if(i(o)){var a=r.bufferViews[o];if(i(a.byteStride)&&a.byteStride>0)return a.byteStride}return t.getSizeInBytes(n.componentType)*e(n.type)}return r}),define("ThirdParty/GltfPipeline/addDefaults",["./addToArray","./ForEach","./getAccessorByteStride","../../Core/defaultValue","../../Core/defined","../../Core/WebGLConstants"],function(e,t,i,r,n,o){"use strict";function a(a){t.accessor(a,function(e){n(e.bufferView)&&(e.byteOffset=r(e.byteOffset,0))}),t.bufferView(a,function(e){n(e.buffer)&&(e.byteOffset=r(e.byteOffset,0))}),t.mesh(a,function(i){t.meshPrimitive(i,function(t){if(t.mode=r(t.mode,o.TRIANGLES),!n(t.material)){n(a.materials)||(a.materials=[]);var i={name:"default"};t.material=e(a.materials,i)}})}),t.accessorContainingVertexAttributeData(a,function(e){var t=a.accessors[e],s=t.bufferView;if(t.normalized=r(t.normalized,!1),n(s)){var l=a.bufferViews[s];l.byteStride=i(a,t),l.target=o.ARRAY_BUFFER}}),t.accessorContainingIndexData(a,function(e){var t=a.accessors[e],i=t.bufferView;if(n(i)){a.bufferViews[i].target=o.ELEMENT_ARRAY_BUFFER}}),t.material(a,function(e){var i=r(e.extensions,r.EMPTY_OBJECT),o=i.KHR_materials_common;if(n(o)){var a=o.technique,s=n(o.values)?o.values:{};return o.values=s,s.ambient=n(s.ambient)?s.ambient:[0,0,0,1],s.emission=n(s.emission)?s.emission:[0,0,0,1],s.transparency=r(s.transparency,1),s.transparent=r(s.transparent,!1),s.doubleSided=r(s.doubleSided,!1),void("CONSTANT"!==a&&(s.diffuse=n(s.diffuse)?s.diffuse:[0,0,0,1],"LAMBERT"!==a&&(s.specular=n(s.specular)?s.specular:[0,0,0,1],s.shininess=r(s.shininess,0))))}e.emissiveFactor=r(e.emissiveFactor,[0,0,0]),e.alphaMode=r(e.alphaMode,"OPAQUE"),e.doubleSided=r(e.doubleSided,!1),"MASK"===e.alphaMode&&(e.alphaCutoff=r(e.alphaCutoff,.5));var u=i.KHR_techniques_webgl;n(u)&&t.materialValue(e,function(e){n(e.index)&&l(e)}),l(e.emissiveTexture),l(e.normalTexture),l(e.occlusionTexture);var c=e.pbrMetallicRoughness;n(c)&&(c.baseColorFactor=r(c.baseColorFactor,[1,1,1,1]),c.metallicFactor=r(c.metallicFactor,1),c.roughnessFactor=r(c.roughnessFactor,1),l(c.baseColorTexture),l(c.metallicRoughnessTexture));var d=i.pbrSpecularGlossiness;n(d)&&(d.diffuseFactor=r(d.diffuseFactor,[1,1,1,1]),d.specularFactor=r(d.specularFactor,[1,1,1]),d.glossinessFactor=r(d.glossinessFactor,1),l(d.specularGlossinessTexture))}),t.animation(a,function(e){t.animationSampler(e,function(e){e.interpolation=r(e.interpolation,"LINEAR")})});var u=s(a);return t.node(a,function(e,t){n(u[t])||n(e.translation)||n(e.rotation)||n(e.scale)?(e.translation=r(e.translation,[0,0,0]),e.rotation=r(e.rotation,[0,0,0,1]),e.scale=r(e.scale,[1,1,1])):e.matrix=r(e.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),t.sampler(a,function(e){e.wrapS=r(e.wrapS,o.REPEAT),e.wrapT=r(e.wrapT,o.REPEAT)}),n(a.scenes)&&!n(a.scene)&&(a.scene=0),a}function s(e){var i={};return t.animation(e,function(e){t.animationChannel(e,function(e){var t=e.target,r=t.node,n=t.path;"translation"!==n&&"rotation"!==n&&"scale"!==n||(i[r]=!0)})}),i}function l(e){n(e)&&(e.texCoord=r(e.texCoord,0))}return a}),define("ThirdParty/GltfPipeline/addPipelineExtras",["./ForEach","../../Core/defined"],function(e,t){"use strict";function i(t){return e.shader(t,function(e){r(e)}),e.buffer(t,function(e){r(e)}),e.image(t,function(t){r(t),e.compressedImage(t,function(e){r(e)})}),r(t),t}function r(e){e.extras=t(e.extras)?e.extras:{},e.extras._pipeline=t(e.extras._pipeline)?e.extras._pipeline:{}}return i}),define("ThirdParty/GltfPipeline/removeExtensionsRequired",["../../Core/defined"],function(e){"use strict";function t(t,i){var r=t.extensionsRequired;if(e(r)){var n=r.indexOf(i);n>=0&&r.splice(n,1),0===r.length&&delete t.extensionsRequired}}return t}),define("ThirdParty/GltfPipeline/removeExtensionsUsed",["./removeExtensionsRequired","../../Core/defined"],function(e,t){"use strict";function i(i,r){var n=i.extensionsUsed;if(t(n)){var o=n.indexOf(r);o>=0&&n.splice(o,1),e(i,r),0===n.length&&delete i.extensionsUsed}}return i}),define("ThirdParty/GltfPipeline/parseGlb",["./addPipelineExtras","./removeExtensionsUsed","../../Core/defaultValue","../../Core/defined","../../Core/getMagic","../../Core/getStringFromTypedArray","../../Core/RuntimeError"],function(e,t,i,r,n,o,a){"use strict";function s(e){if("glTF"!==n(e))throw new a("File is not valid binary glTF");var t=l(e,0,5),i=t[1];if(1!==i&&2!==i)throw new a("Binary glTF version is not 1 or 2");return 1===i?u(e,t):c(e,t)}function l(e,t,i){for(var r=new DataView(e.buffer),n=new Array(i),o=0;o<i;++o)n[o]=r.getUint32(e.byteOffset+t+o*d,!0);return n}function u(n,s){var l=s[2],u=s[3];if(0!==s[4])throw new a("Binary glTF scene format is not JSON");var c=20+u,d=o(n,20,u),h=JSON.parse(d);e(h);var p=n.subarray(c,l),f=h.buffers;if(r(f)&&Object.keys(f).length>0){var m=i(f.binary_glTF,f.KHR_binary_glTF);r(m)&&(m.extras._pipeline.source=p)}return t(h,"KHR_binary_glTF"),h}function c(t,i){for(var n,a,s=i[2],u=12;u<s;){var c=l(t,u,2),d=c[0],h=c[1];u+=8;var p=t.subarray(u,u+d);if(u+=d,1313821514===h){var f=o(p);n=JSON.parse(f),e(n)}else 5130562===h&&(a=p)}if(r(n)&&r(a)){var m=n.buffers;if(r(m)&&m.length>0){m[0].extras._pipeline.source=a}}return n}var d=4;return s}),define("ThirdParty/GltfPipeline/removePipelineExtras",["./ForEach","../../Core/defined"],function(e,t){"use strict";function i(t){return e.shader(t,function(e){r(e)}),e.buffer(t,function(e){r(e)}),e.image(t,function(t){r(t),e.compressedImage(t,function(e){r(e)})}),r(t),t}function r(e){t(e.extras)&&(t(e.extras._pipeline)&&delete e.extras._pipeline,0===Object.keys(e.extras).length&&delete e.extras)}return i}),define("ThirdParty/GltfPipeline/addExtensionsUsed",["./addToArray","../../Core/defined"],function(e,t){"use strict";function i(i,r){var n=i.extensionsUsed;t(n)||(n=[],i.extensionsUsed=n),e(n,r,!0)}return i}),define("ThirdParty/GltfPipeline/getComponentReader",["../../Core/ComponentDatatype"],function(e){"use strict";function t(t){switch(t){case e.BYTE:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getInt8(t+o*r)};case e.UNSIGNED_BYTE:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getUint8(t+o*r)};case e.SHORT:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getInt16(t+o*r,!0)};case e.UNSIGNED_SHORT:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getUint16(t+o*r,!0)};case e.INT:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getInt32(t+o*r,!0)};case e.UNSIGNED_INT:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getUint32(t+o*r,!0)};case e.FLOAT:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getFloat32(t+o*r,!0)};case e.DOUBLE:return function(e,t,i,r,n){for(var o=0;o<i;++o)n[o]=e.getFloat64(t+o*r,!0)}}}return t}),define("ThirdParty/GltfPipeline/findAccessorMinMax",["./getAccessorByteStride","./getComponentReader","./numberOfComponentsForType","../../Core/arrayFill","../../Core/ComponentDatatype","../../Core/defined"],function(e,t,i,r,n,o){"use strict";function a(a,s){var l=a.bufferViews,u=a.buffers,c=s.bufferView,d=i(s.type);if(!o(s.bufferView))return{min:r(new Array(d),0),max:r(new Array(d),0)};for(var h=r(new Array(d),Number.POSITIVE_INFINITY),p=r(new Array(d),Number.NEGATIVE_INFINITY),f=l[c],m=f.buffer,_=u[m],g=_.extras._pipeline.source,v=s.count,y=e(a,s),C=s.byteOffset+f.byteOffset+g.byteOffset,b=s.componentType,S=n.getSizeInBytes(b),T=new DataView(g.buffer),E=new Array(d),A=t(b),w=0;w<v;w++){A(T,C,d,S,E);for(var x=0;x<d;x++){var P=E[x];h[x]=Math.min(h[x],P),p[x]=Math.max(p[x],P)}C+=y}return{min:h,max:p}}return a}),define("ThirdParty/GltfPipeline/moveTechniqueRenderStates",["./addExtensionsUsed","./ForEach","../../Core/defaultValue","../../Core/defined","../../Core/WebGLConstants"],function(e,t,i,r,n){"use strict";function o(e,t){var i=e.enable;return!!r(i)&&i.indexOf(t)>-1}function a(e,t){if(!r(e))return t;for(var i=0;i<4;i++)if(-1===c.indexOf(e[i]))return t;return e}function s(s){var c={},d={},h=s.techniques;return r(h)?(t.technique(s,function(e,t){var s=e.states;if(r(s)){var h=d[t]={};if(o(s,n.BLEND)){h.alphaMode="BLEND";var p=s.functions;r(p)&&(r(p.blendEquationSeparate)||r(p.blendFuncSeparate))&&(c[t]={blendEquation:i(p.blendEquationSeparate,l),blendFactors:a(p.blendFuncSeparate,u)})}o(s,n.CULL_FACE)||(h.doubleSided=!0),delete e.states}}),Object.keys(c).length>0&&(r(s.extensions)||(s.extensions={}),e(s,"KHR_blend")),t.material(s,function(e){if(r(e.technique)){var i=d[e.technique];t.objectLegacy(i,function(t,i){e[i]=t});var n=c[e.technique];r(n)&&(r(e.extensions)||(e.extensions={}),e.extensions.KHR_blend=n)}}),s):s}var l=[n.FUNC_ADD,n.FUNC_ADD],u=[n.ONE,n.ZERO,n.ONE,n.ZERO],c=[n.ZERO,n.ONE,n.SRC_COLOR,n.ONE_MINUS_SRC_COLOR,n.SRC_ALPHA,n.ONE_MINUS_SRC_ALPHA,n.DST_ALPHA,n.ONE_MINUS_DST_ALPHA,n.DST_COLOR,n.ONE_MINUS_DST_COLOR];return s}),define("ThirdParty/GltfPipeline/addExtensionsRequired",["./addExtensionsUsed","./addToArray","../../Core/defined"],function(e,t,i){"use strict";function r(r,n){var o=r.extensionsRequired;i(o)||(o=[],r.extensionsRequired=o),t(o,n,!0),e(r,n)}return r}),define("ThirdParty/GltfPipeline/moveTechniquesToExtension",["./addExtensionsUsed","./addExtensionsRequired","./addToArray","./ForEach","../../Core/defined"],function(e,t,i,r,n){"use strict";function o(o){var a=o.techniques,s={},l={};if(n(a)){var u={programs:[],shaders:[],techniques:[]},c=o.glExtensionsUsed;delete o.glExtensionsUsed,r.technique(o,function(e,t){var n,a={name:e.name,program:void 0,attributes:{},uniforms:{}};r.techniqueAttribute(e,function(t,i){n=e.parameters[t],a.attributes[i]={semantic:n.semantic}}),r.techniqueUniform(e,function(t,i){n=e.parameters[t],a.uniforms[i]={count:n.count,node:n.node,type:n.type,semantic:n.semantic,value:n.value},s[t]=i});var d=o.programs[e.program],h={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:c},p=o.shaders[d.fragmentShader];h.fragmentShader=i(u.shaders,p,!0);var f=o.shaders[d.vertexShader];h.vertexShader=i(u.shaders,f,!0),a.program=i(u.programs,h),l[t]=i(u.techniques,a)}),u.techniques.length>0&&(n(o.extensions)||(o.extensions={}),o.extensions.KHR_techniques_webgl=u,e(o,"KHR_techniques_webgl"),t(o,"KHR_techniques_webgl"))}return r.material(o,function(e){if(n(e.technique)){var t={technique:l[e.technique]};r.objectLegacy(e.values,function(e,i){n(t.values)||(t.values={});var r=s[i];t.values[r]=e}),n(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=t}delete e.technique,delete e.values}),delete o.techniques,delete o.programs,delete o.shaders,o}return o}),define("ThirdParty/GltfPipeline/removeUnusedElements",["./ForEach","./hasExtension","../../Core/defined"],function(e,t,i){"use strict";function r(e){return n(e,"accessor"),n(e,"bufferView"),n(e,"buffer"),e}function n(e,t){var r=s[t],n=e[r];if(i(n))for(var l=0,u=a[t](e),c=n.length,d=0;d<c;++d)u[d]||(o[t](e,d-l),l++)}function o(){}function a(){}var s={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews"};return o.accessor=function(t,r){t.accessors.splice(r,1),e.mesh(t,function(t){e.meshPrimitive(t,function(t){e.meshPrimitiveAttribute(t,function(e,i){e>r&&t.attributes[i]--}),e.meshPrimitiveTarget(t,function(t){e.meshPrimitiveTargetAttribute(t,function(e,i){e>r&&t[i]--})});var n=t.indices;i(n)&&n>r&&t.indices--})}),e.skin(t,function(e){i(e.inverseBindMatrices)&&e.inverseBindMatrices>r&&e.inverseBindMatrices--}),e.animation(t,function(t){e.animationSampler(t,function(e){i(e.input)&&e.input>r&&e.input--,i(e.output)&&e.output>r&&e.output--})})},o.buffer=function(t,r){t.buffers.splice(r,1),e.bufferView(t,function(e){i(e.buffer)&&e.buffer>r&&e.buffer--})},o.bufferView=function(r,n){r.bufferViews.splice(n,1),e.accessor(r,function(e){i(e.bufferView)&&e.bufferView>n&&e.bufferView--}),e.shader(r,function(e){i(e.bufferView)&&e.bufferView>n&&e.bufferView--}),e.image(r,function(t){i(t.bufferView)&&t.bufferView>n&&t.bufferView--,e.compressedImage(t,function(e){var t=e.bufferView;i(t)&&t>n&&e.bufferView--})}),t(r,"KHR_draco_mesh_compression")&&e.mesh(r,function(t){e.meshPrimitive(t,function(e){i(e.extensions)&&i(e.extensions.KHR_draco_mesh_compression)&&e.extensions.KHR_draco_mesh_compression.bufferView>n&&e.extensions.KHR_draco_mesh_compression.bufferView--})})},a.accessor=function(t){var r={};return e.mesh(t,function(t){e.meshPrimitive(t,function(t){e.meshPrimitiveAttribute(t,function(e){r[e]=!0}),e.meshPrimitiveTarget(t,function(t){e.meshPrimitiveTargetAttribute(t,function(e){r[e]=!0})});var n=t.indices;i(n)&&(r[n]=!0)})}),e.skin(t,function(e){i(e.inverseBindMatrices)&&(r[e.inverseBindMatrices]=!0)}),e.animation(t,function(t){e.animationSampler(t,function(e){i(e.input)&&(r[e.input]=!0),i(e.output)&&(r[e.output]=!0)})}),r},a.buffer=function(t){var r={};return e.bufferView(t,function(e){i(e.buffer)&&(r[e.buffer]=!0)}),r},a.bufferView=function(r){var n={};return e.accessor(r,function(e){i(e.bufferView)&&(n[e.bufferView]=!0)}),e.shader(r,function(e){i(e.bufferView)&&(n[e.bufferView]=!0)}),e.image(r,function(t){i(t.bufferView)&&(n[t.bufferView]=!0),e.compressedImage(t,function(e){i(e.bufferView)&&(n[e.bufferView]=!0)})}),t(r,"KHR_draco_mesh_compression")&&e.mesh(r,function(t){e.meshPrimitive(t,function(e){i(e.extensions)&&i(e.extensions.KHR_draco_mesh_compression)&&(n[e.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),n},r});define("ThirdParty/GltfPipeline/addBuffer",["./addToArray"],function(e){"use strict";function t(t,i){var r={byteLength:i.length,extras:{_pipeline:{source:i}}},n=e(t.buffers,r),o={buffer:n,byteOffset:0,byteLength:i.length};return e(t.bufferViews,o)}return t}),define("ThirdParty/GltfPipeline/readAccessorPacked",["./getAccessorByteStride","./getComponentReader","./numberOfComponentsForType","../../Core/arrayFill","../../Core/ComponentDatatype","../../Core/defined"],function(e,t,i,r,n,o){"use strict";function a(a,s){var l=e(a,s),u=n.getSizeInBytes(s.componentType),c=i(s.type),d=s.count,h=new Array(c*d);if(!o(s.bufferView))return r(h,0),h;for(var p=a.bufferViews[s.bufferView],f=a.buffers[p.buffer].extras._pipeline.source,m=s.byteOffset+p.byteOffset+f.byteOffset,_=new DataView(f.buffer),g=new Array(c),v=t(s.componentType),y=0;y<d;++y){v(_,m,c,u,g);for(var C=0;C<c;++C)h[y*c+C]=g[C];m+=l}return h}return a}),define("ThirdParty/GltfPipeline/updateAccessorComponentTypes",["./addBuffer","./ForEach","./readAccessorPacked","../../Core/ComponentDatatype","../../Core/WebGLConstants"],function(e,t,i,r,n){"use strict";function o(e){var i;return t.accessorWithSemantic(e,"JOINTS_0",function(t){var o=e.accessors[t];i=o.componentType,i===n.BYTE?a(e,o,r.UNSIGNED_BYTE):i!==n.UNSIGNED_BYTE&&i!==n.UNSIGNED_SHORT&&a(e,o,r.UNSIGNED_SHORT)}),t.accessorWithSemantic(e,"WEIGHTS_0",function(t){var o=e.accessors[t];i=o.componentType,i===n.BYTE?a(e,o,r.UNSIGNED_BYTE):i===n.SHORT&&a(e,o,r.UNSIGNED_SHORT)}),e}function a(t,n,o){var a=r.createTypedArray(o,i(t,n)),s=new Uint8Array(a.buffer);n.bufferView=e(t,s),n.componentType=o,n.byteOffset=0}return o}), -define("ThirdParty/GltfPipeline/updateVersion",["./addExtensionsUsed","./addToArray","./findAccessorMinMax","./ForEach","./getAccessorByteStride","./numberOfComponentsForType","./moveTechniqueRenderStates","./moveTechniquesToExtension","./removeUnusedElements","./updateAccessorComponentTypes","../../Core/Cartesian3","../../Core/Cartesian4","../../Core/clone","../../Core/ComponentDatatype","../../Core/defaultValue","../../Core/defined","../../Core/isArray","../../Core/Matrix4","../../Core/Quaternion","../../Core/WebGLConstants"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e,t){t=f(t,f.EMPTY_OBJECT);var i=t.targetVersion,r=e.version;e.asset=f(e.asset,{version:"1.0"}),e.asset.version=f(e.asset.version,"1.0"),r=f(r,e.asset.version).toString(),X.hasOwnProperty(r)||(m(r)&&(r=r.substring(0,3)),X.hasOwnProperty(r)||(r="1.0"));for(var n=X[r];m(n)&&r!==i;)n(e,t),r=e.asset.version,n=X[r];return e}function b(e){var t=e.materials;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i],n=r.instanceTechnique;m(n)&&(r.technique=n.technique,r.values=n.values,delete r.instanceTechnique)}}function S(e){var t=e.meshes;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i],n=r.primitives;if(m(n))for(var o=n.length,a=0;a<o;++a){var s=n[a],l=f(s.primitive,y.TRIANGLES);s.mode=f(s.mode,l),delete s.primitive}}}function T(e){var t=e.nodes,i=new c,r=new v;for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];if(m(o.rotation)){var a=o.rotation;c.fromArray(a,0,i),v.fromAxisAngle(i,a[3],r),o.rotation=[r.x,r.y,r.z,r.w]}var s=o.instanceSkin;m(s)&&(o.skeletons=s.skeletons,o.skin=s.skin,o.meshes=s.meshes,delete o.instanceSkin)}}function E(e){var t=e.animations,i=e.accessors,r=e.bufferViews,n=e.buffers,a={},s=new c,l=new v;for(var u in t)if(t.hasOwnProperty(u)){var d=t[u],h=d.channels,f=d.parameters,_=d.samplers;if(m(h))for(var g=h.length,y=0;y<g;++y){var C=h[y];if("rotation"===C.target.path){var b=f[_[C.sampler].output];if(m(a[b]))continue;a[b]=!0;for(var S=i[b],T=r[S.bufferView],E=n[T.buffer],A=E.extras._pipeline.source,w=A.byteOffset+T.byteOffset+S.byteOffset,x=S.componentType,P=S.count,D=o(S.type),I=S.count*D,M=p.createArrayBufferView(x,A.buffer,w,I),R=0;R<P;R++){var O=R*D;c.unpack(M,O,s);var L=M[O+3];v.fromAxisAngle(s,L,l),v.pack(l,M,O)}}}}}function A(e){var t=e.techniques;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i],n=r.passes;if(m(n)){var o=f(r.pass,"defaultPass");if(n.hasOwnProperty(o)){var a=n[o],s=a.instanceProgram;r.attributes=f(r.attributes,s.attributes),r.program=f(r.program,s.program),r.uniforms=f(r.uniforms,s.uniforms),r.states=f(r.states,a.states)}delete r.passes,delete r.pass}}}function w(t){m(t.asset)||(t.asset={});var i=t.asset;if(i.version="1.0","string"==typeof i.profile){var r=i.profile.split(" ");i.profile={api:r[0],version:r[1]}}else i.profile={};if(m(t.version)&&delete t.version,b(t),S(t),T(t),E(t),A(t),m(t.allExtensions)&&(t.extensionsUsed=t.allExtensions,delete t.allExtensions),m(t.lights)){var n=f(t.extensions,{});t.extensions=n;var o=f(n.KHR_materials_common,{});n.KHR_materials_common=o,o.lights=t.lights,delete t.lights,e(t,"KHR_materials_common")}}function x(e){var t=e.animations;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i],n=r.parameters;if(m(n)){var o=r.samplers;for(var a in o)if(o.hasOwnProperty(a)){var s=o[a];s.input=n[s.input],s.output=n[s.output]}delete r.parameters}}}function P(e,t){var i=[];for(var r in e)if(e.hasOwnProperty(r)){var n=e[r];t[r]=i.length,i.push(n),m(n.name)||(n.name=r)}return i}function D(e){var i,n,o={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},a={},s=e.nodes;for(var l in s)s.hasOwnProperty(l)&&(n=s[l].jointName,m(n)&&(a[n]=l));for(var u in e)if(e.hasOwnProperty(u)&&m(o[u])){var c={},d=e[u];e[u]=P(d,c),o[u]=c}for(n in a)a.hasOwnProperty(n)&&(a[n]=o.nodes[a[n]]);m(e.scene)&&(e.scene=o.scenes[e.scene]),r.bufferView(e,function(e){m(e.buffer)&&(e.buffer=o.buffers[e.buffer])}),r.accessor(e,function(e){m(e.bufferView)&&(e.bufferView=o.bufferViews[e.bufferView])}),r.shader(e,function(e){var t=e.extensions;if(m(t)){var i=t.KHR_binary_glTF;m(i)&&(e.bufferView=o.bufferViews[i.bufferView],delete t.KHR_binary_glTF),0===Object.keys(t).length&&delete e.extensions}}),r.program(e,function(e){m(e.vertexShader)&&(e.vertexShader=o.shaders[e.vertexShader]),m(e.fragmentShader)&&(e.fragmentShader=o.shaders[e.fragmentShader])}),r.technique(e,function(e){m(e.program)&&(e.program=o.programs[e.program]),r.techniqueParameter(e,function(e){m(e.node)&&(e.node=o.nodes[e.node]);var t=e.value;"string"==typeof t&&(e.value={index:o.textures[t]})})}),r.mesh(e,function(e){r.meshPrimitive(e,function(e){m(e.indices)&&(e.indices=o.accessors[e.indices]),r.meshPrimitiveAttribute(e,function(t,i){e.attributes[i]=o.accessors[t]}),m(e.material)&&(e.material=o.materials[e.material])})}),r.node(e,function(r){var n=r.children;if(m(n)){var a=n.length;for(i=0;i<a;++i)n[i]=o.nodes[n[i]]}if(m(r.meshes)){var s=r.meshes,l=s.length;if(l>0)for(r.mesh=o.meshes[s[0]],i=1;i<l;++i){var u={mesh:o.meshes[s[i]]},c=t(e.nodes,u);m(n)||(n=[],r.children=n),n.push(c)}delete r.meshes}if(m(r.camera)&&(r.camera=o.cameras[r.camera]),m(r.skin)&&(r.skin=o.skins[r.skin]),m(r.skeletons)){var d=r.skeletons;if(d.length>0&&m(r.skin)){e.skins[r.skin].skeleton=o.nodes[d[0]]}delete r.skeletons}m(r.jointName)&&delete r.jointName}),r.skin(e,function(e){m(e.inverseBindMatrices)&&(e.inverseBindMatrices=o.accessors[e.inverseBindMatrices]);var t=e.jointNames;if(m(t)){var r=[],n=t.length;for(i=0;i<n;++i)r[i]=a[t[i]];e.joints=r,delete e.jointNames}}),r.scene(e,function(e){var t=e.nodes;if(m(t)){var r=t.length;for(i=0;i<r;++i)t[i]=o.nodes[t[i]]}}),r.animation(e,function(e){var t={};e.samplers=P(e.samplers,t),r.animationSampler(e,function(e){e.input=o.accessors[e.input],e.output=o.accessors[e.output]}),r.animationChannel(e,function(e){e.sampler=t[e.sampler];var i=e.target;m(i)&&(i.node=o.nodes[i.id],delete i.id)})}),r.material(e,function(e){m(e.technique)&&(e.technique=o.techniques[e.technique]),r.materialValue(e,function(t,i){"string"==typeof t&&(e.values[i]={index:o.textures[t]})});var t=e.extensions;if(m(t)){var i=t.KHR_materials_common;m(i)&&r.materialValue(i,function(e,t){"string"==typeof e&&(i.values[t]={index:o.textures[e]})})}}),r.image(e,function(e){var t=e.extensions;if(m(t)){var i=t.KHR_binary_glTF;m(i)&&(e.bufferView=o.bufferViews[i.bufferView],e.mimeType=i.mimeType,delete t.KHR_binary_glTF),0===Object.keys(t).length&&delete e.extensions}r.compressedImage(e,function(e){var i=e.extensions;if(m(i)){var r=i.KHR_binary_glTF;m(r)&&(e.bufferView=o.bufferViews[r.bufferView],e.mimeType=r.mimeType,delete i.KHR_binary_glTF),0===Object.keys(t).length&&delete e.extensions}})}),r.texture(e,function(e){m(e.sampler)&&(e.sampler=o.samplers[e.sampler]),m(e.source)&&(e.source=o.images[e.source])})}function I(e){r.animation(e,function(e){r.animationSampler(e,function(e){delete e.name})})}function M(e){for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];_(i)&&0===i.length&&delete e[t]}r.node(e,function(e){m(e.children)&&0===e.children.length&&delete e.children})}function R(e){var t=e.asset;delete t.profile,delete t.premultipliedAlpha}function O(e){var t=e.extensionsUsed;if(e.extensionsRequired=f(e.extensionsRequired,[]),m(t))for(var i=t.length,r=0;r<i;++r){var n=t[r];m(Q[n])&&e.extensionsRequired.push(n)}}function L(e){r.buffer(e,function(e){delete e.type})}function N(e){r.texture(e,function(e){delete e.format,delete e.internalFormat,delete e.target,delete e.type})}function F(e){r.mesh(e,function(e){r.meshPrimitive(e,function(e){r.meshPrimitiveAttribute(e,function(t,i){"TEXCOORD"===i?e.attributes.TEXCOORD_0=t:"COLOR"===i&&(e.attributes.COLOR_0=t)}),delete e.attributes.TEXCOORD,delete e.attributes.COLOR})}),r.technique(e,function(e){r.techniqueParameter(e,function(e){var t=e.semantic;m(t)&&("TEXCOORD"===t?e.semantic="TEXCOORD_0":"COLOR"===t&&(e.semantic="COLOR_0"))})})}function B(e){var t={};r.mesh(e,function(e){r.meshPrimitive(e,function(e){r.meshPrimitiveAttribute(e,function(e,i){if("_"!==i.charAt(0)){var r=i.search(/_[0-9]+/g),n=i,o="_0";r>=0&&(n=i.substring(0,r),o=i.substring(r));var a,s=Z[n];m(s)?(a=s+o,t[i]=a):m(K[n])||(a="_"+i,t[i]=a)}});for(var i in t)if(t.hasOwnProperty(i)){var n=t[i],o=e.attributes[i];m(o)&&(delete e.attributes[i],e.attributes[n]=o)}})}),r.technique(e,function(e){r.techniqueParameter(e,function(e){var i=t[e.semantic];m(i)&&(e.semantic=i)})})}function z(e){r.camera(e,function(e){var t=e.perspective;if(m(t)){var i=t.aspectRatio;m(i)&&0===i&&delete t.aspectRatio;var r=t.yfov;m(r)&&0===r&&(t.yfov=1)}})}function k(e,t){return m(t.byteStride)&&0!==t.byteStride?t.byteStride:n(e,t)}function V(e){r.buffer(e,function(e){m(e.byteLength)||(e.byteLength=e.extras._pipeline.source.length)}),r.accessor(e,function(t){var i=t.bufferView;if(m(i)){var r=e.bufferViews[i],n=k(e,t),o=t.byteOffset+t.count*n;r.byteLength=Math.max(f(r.byteLength,0),o)}})}function U(e){var i,n,o,a=e.bufferViews,s={};r.accessorContainingVertexAttributeData(e,function(t){var i=e.accessors[t];m(i.bufferView)&&(s[i.bufferView]=!0)});var u={};r.accessor(e,function(e){m(e.bufferView)&&(u[e.bufferView]=f(u[e.bufferView],[]),u[e.bufferView].push(e))});for(var c in u)if(u.hasOwnProperty(c)){o=a[c];var d=u[c];d.sort(function(e,t){return e.byteOffset-t.byteOffset});var p=0,_=0,g=d.length;for(i=0;i<g;++i){var v=d[i],y=k(e,v),C=v.byteOffset,b=v.count*y;delete v.byteStride;var S=i<g-1,T=S?k(e,d[i+1]):void 0;if(y!==T){var E=h(o,!0);s[c]&&(E.byteStride=y),E.byteOffset+=p,E.byteLength=C+b-p;var A=t(a,E);for(n=_;n<=i;++n)v=d[n],v.bufferView=A,v.byteOffset=v.byteOffset-p;p=S?d[i+1].byteOffset:void 0,_=i+1}}}l(e)}function G(e){r.accessorWithSemantic(e,"POSITION",function(t){var r=e.accessors[t];if(!m(r.min)||!m(r.max)){var n=i(e,r);r.min=n.min,r.max=n.max}})}function H(e){return(!m(e.children)||0===e.children.length)&&(!m(e.meshes)||0===e.meshes.length)&&!m(e.camera)&&!m(e.skin)&&!m(e.skeletons)&&!m(e.jointName)&&(!m(e.translation)||c.fromArray(e.translation).equals(c.ZERO))&&(!m(e.scale)||c.fromArray(e.scale).equals(new c(1,1,1)))&&(!m(e.rotation)||d.fromArray(e.rotation).equals(new d(0,0,0,1)))&&(!m(e.matrix)||g.fromColumnMajorArray(e.matrix).equals(g.IDENTITY))&&!m(e.extensions)&&!m(e.extras)}function W(e,t){r.scene(e,function(e){var i=e.nodes;if(m(i))for(var r=i.length,n=r;n>=0;--n)if(i[n]===t)return void i.splice(n,1)}),r.node(e,function(i,r){if(m(i.children)){var n=i.children.indexOf(t);n>-1&&(i.children.splice(n,1),H(i)&&W(e,r))}}),delete e.nodes[t]}function q(e){return r.node(e,function(t,i){H(t)&&W(e,i)}),e}function Y(e){r.animation(e,function(t){r.animationSampler(t,function(t){var r=e.accessors[t.input];if(!m(r.min)||!m(r.max)){var n=i(e,r);r.min=n.min,r.max=n.max}})})}function j(e){e.asset=f(e.asset,{}),e.asset.version="2.0",b(e),x(e),q(e),D(e),I(e),R(e),O(e),V(e),U(e),G(e),Y(e),L(e),N(e),F(e),B(e),u(e),z(e),a(e),s(e),M(e)}var X={.8:w,"1.0":j,"2.0":void 0},Q={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0},K={POSITION:!0,NORMAL:!0,TANGENT:!0},Z={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};return C}),define("Scene/Axis",["../Core/Check","../Core/freezeObject","../Core/Math","../Core/Matrix3","../Core/Matrix4"],function(e,t,i,r,n){"use strict";var o={X:0,Y:1,Z:2,Y_UP_TO_Z_UP:n.fromRotationTranslation(r.fromRotationX(i.PI_OVER_TWO)),Z_UP_TO_Y_UP:n.fromRotationTranslation(r.fromRotationX(-i.PI_OVER_TWO)),X_UP_TO_Z_UP:n.fromRotationTranslation(r.fromRotationY(-i.PI_OVER_TWO)),Z_UP_TO_X_UP:n.fromRotationTranslation(r.fromRotationY(i.PI_OVER_TWO)),X_UP_TO_Y_UP:n.fromRotationTranslation(r.fromRotationZ(i.PI_OVER_TWO)),Y_UP_TO_X_UP:n.fromRotationTranslation(r.fromRotationZ(-i.PI_OVER_TWO)),fromName:function(e){return o[e]}};return t(o)}),define("Scene/ClippingPlane",["../Core/Cartesian3","../Core/Check","../Core/defined","../Core/defineProperties"],function(e,t,i,r){"use strict";function n(e,t){this._distance=t,this._normal=new o(e,this),this.onChangeCallback=void 0,this.index=-1}function o(t,i){this._clippingPlane=i,this._cartesian3=e.clone(t)}return r(n.prototype,{distance:{get:function(){return this._distance},set:function(e){i(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(t){i(this.onChangeCallback)&&!e.equals(this._normal._cartesian3,t)&&this.onChangeCallback(this.index),e.clone(t,this._normal._cartesian3)}}}),n.fromPlane=function(e,t){return i(t)?(t.normal=e.normal,t.distance=e.distance):t=new n(e.normal,e.distance),t},n.clone=function(e,t){return i(t)?(t.normal=e.normal,t.distance=e.distance,t):new n(e.normal,e.distance)},r(o.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){i(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){i(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){i(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}}),n}),define("Scene/ClippingPlaneCollection",["../Core/AttributeCompression","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Check","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/DeveloperError","../Core/Event","../Core/Intersect","../Core/Matrix4","../Core/PixelFormat","../Core/Plane","../Renderer/ContextLimits","../Renderer/PixelDatatype","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","./ClippingPlane"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E){"use strict";function A(e){e=a(e,a.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=a(e.enabled,!0),this.modelMatrix=f.clone(a(e.modelMatrix,f.IDENTITY)),this.edgeColor=o.clone(a(e.edgeColor,o.WHITE)),this.edgeWidth=a(e.edgeWidth,0),this.planeAdded=new h,this.planeRemoved=new h,this._owner=void 0;var t=a(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?w:x,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;var i=e.planes;if(s(i))for(var r=i.length,n=0;n<r;++n)this.add(i[n])}function w(e){return e===p.OUTSIDE}function x(e){return e===p.INSIDE}function P(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||-1!==e._dirtyIndex&&e._dirtyIndex!==t,e._dirtyIndex=t}function D(e,t){for(var i=e.length,r=0;r<i;++r)if(_.equals(e[r],t))return r;return-1}function I(t,i,n){for(var o=t._uint8View,a=t._planes,s=0,l=i;l<n;++l){var u=a[l],c=e.octEncodeToCartesian4(u.normal,L);o[s]=c.x,o[s+1]=c.y,o[s+2]=c.z,o[s+3]=c.w;var d=r.packFloat(u.distance,O);o[s+4]=d.x,o[s+5]=d.y,o[s+6]=d.z,o[s+7]=d.w,s+=8}}function M(e,t,i){for(var r=e._float32View,n=e._planes,o=0,a=t;a<i;++a){var s=n[a],l=s.normal;r[o]=l.x,r[o+1]=l.y,r[o+2]=l.z,r[o+3]=s.distance,o+=4}}function R(e,t){var i=g.maximumTextureSize;return t.x=Math.min(e,i),t.y=Math.ceil(e/t.x),t}l(A.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?w:x)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}}),A.prototype.add=function(e){var t=this._planes.length,i=this;e.onChangeCallback=function(e){P(i,e)},e.index=t,P(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)},A.prototype.get=function(e){return this._planes[e]},A.prototype.contains=function(e){return-1!==D(this._planes,e)},A.prototype.remove=function(e){var t=this._planes,i=D(t,e);if(-1===i)return!1;e instanceof E&&(e.onChangeCallback=void 0,e.index=-1);for(var r=t.length-1,n=i;n<r;++n){var o=t[n+1];t[n]=o,o instanceof E&&(o.index=n)}return this._multipleDirtyPlanes=!0,t.length=r,this.planeRemoved.raiseEvent(e,i),!0},A.prototype.removeAll=function(){for(var e=this._planes,t=e.length,i=0;i<t;++i){var r=e[i];r instanceof E&&(r.onChangeCallback=void 0,r.index=-1),this.planeRemoved.raiseEvent(r,i)}this._multipleDirtyPlanes=!0,this._planes=[]};var O=new r,L=new r,N=new t;A.prototype.update=function(e){var t=this._clippingPlanesTexture,i=e.context,r=A.useFloatTexture(i),n=r?this.length:2*this.length;if(s(t)){var o=t.width*t.height;(o<n||n<.25*o)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(0!==this.length){if(!s(t)){var a=R(n,N);a.y*=2;var l=new y({wrapS:T.CLAMP_TO_EDGE,wrapT:T.CLAMP_TO_EDGE,minificationFilter:S.NEAREST,magnificationFilter:b.NEAREST});r?(t=new C({context:i,width:a.x,height:a.y,pixelFormat:m.RGBA,pixelDatatype:v.FLOAT,sampler:l,flipY:!1}),this._float32View=new Float32Array(a.x*a.y*4)):(t=new C({context:i,width:a.x,height:a.y,pixelFormat:m.RGBA,pixelDatatype:v.UNSIGNED_BYTE,sampler:l,flipY:!1}),this._uint8View=new Uint8Array(a.x*a.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}var u=this._dirtyIndex;if(this._multipleDirtyPlanes||-1!==u){if(this._multipleDirtyPlanes)r?(M(this,0,this._planes.length),t.copyFrom({width:t.width,height:t.height,arrayBufferView:this._float32View})):(I(this,0,this._planes.length),t.copyFrom({width:t.width,height:t.height,arrayBufferView:this._uint8View}));else{var c=0,d=0;r?(d=Math.floor(u/t.width),c=Math.floor(u-d*t.width),M(this,u,u+1),t.copyFrom({width:1,height:1,arrayBufferView:this._float32View},c,d)):(d=Math.floor(2*u/t.width),c=Math.floor(2*u-d*t.width),I(this,u,u+1),t.copyFrom({width:2,height:1,arrayBufferView:this._uint8View},c,d))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}}};var F=new f,B=new _(i.UNIT_X,0);return A.prototype.computeIntersectionWithBoundingVolume=function(e,t){var i=this._planes,r=i.length,n=this.modelMatrix;s(t)&&(n=f.multiply(t,n,F));var o=p.INSIDE;!this.unionClippingRegions&&r>0&&(o=p.OUTSIDE);for(var a=0;a<r;++a){var l=i[a];_.transform(l,n,B);var u=e.intersectPlane(B);if(u===p.INTERSECTING)o=u;else if(this._testIntersection(u))return u}return o},A.setOwner=function(e,t,i){e!==t[i]&&(t[i]=t[i]&&t[i].destroy(),s(e)&&(e._owner=t,t[i]=e))},A.useFloatTexture=function(e){return e.floatingPointTexture},A.getTextureResolution=function(e,t,i){var r=e.texture;if(s(r))return i.x=r.width,i.y=r.height,i;var n=A.useFloatTexture(t)?e.length:2*e.length,o=R(n,i);return o.y*=2,o},A.prototype.isDestroyed=function(){return!1},A.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),c(this)},A}),define("Scene/DracoLoader",["../Core/arraySlice","../Core/ComponentDatatype","../Core/defined","../Core/FeatureDetection","../Core/TaskProcessor","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/when"],function(e,t,i,r,n,o,a){"use strict";function s(){}function l(e,t){var i="runtime."+Object.keys(e.createdBufferViews).length,r=e.buffers,n=Object.keys(r).length;return r[n]=t,e.createdBufferViews[i]={buffer:n,byteOffset:0,byteLength:t.byteLength},i}function u(e,t,i){var r=t._loadResources,n=l(r,e);return r.vertexBuffersToCreate.enqueue(n),n}function c(e,i,r){var n=e.typedArray,o=i._loadResources,a=l(o,n);return o.indexBuffersToCreate.enqueue({id:a,componentType:t.fromTypedArray(n)}),{bufferViewId:a,numberOfIndices:e.numberOfIndices}}function d(e,t,r,n){if(s._taskProcessorReady){var o=r.primitivesToDecode.peek();if(i(o)){var a=e.scheduleTask(o,[o.array.buffer]);if(i(a))return r.activeDecodingTasks++,r.primitivesToDecode.dequeue(),a.then(function(e){r.activeDecodingTasks--;var i=c(e.indexArray,t,n),a={},s=e.attributeData;for(var l in s)if(s.hasOwnProperty(l)){var d=s[l],h=d.array,p=u(h,t,n),f=d.data;f.bufferView=p,a[l]=f}t._decodedData[o.mesh+".primitive."+o.primitive]={bufferView:i.bufferViewId,numberOfIndices:i.numberOfIndices,attributes:a}})}}}return s._maxDecodingConcurrency=Math.max(r.hardwareConcurrency-1,1),s._decoderTaskProcessor=void 0,s._taskProcessorReady=!1,s._getDecoderTaskProcessor=function(){if(!i(s._decoderTaskProcessor)){var e=new n("decodeDraco",s._maxDecodingConcurrency);e.initWebAssemblyModule({modulePath:"ThirdParty/Workers/draco_wasm_wrapper.js",wasmBinaryFile:"ThirdParty/draco_decoder.wasm",fallbackModulePath:"ThirdParty/Workers/draco_decoder.js"}).then(function(){s._taskProcessorReady=!0}),s._decoderTaskProcessor=e}return s._decoderTaskProcessor},s.hasExtension=function(e){return i(e.extensionsRequired.KHR_draco_mesh_compression)||i(e.extensionsUsed.KHR_draco_mesh_compression)},s._decodedModelResourceCache=void 0,s.parse=function(t,r){if(s.hasExtension(t)){var n=t._loadResources,a=t.cacheKey;if(i(a)){i(s._decodedModelResourceCache)||(i(r.cache.modelDecodingCache)||(r.cache.modelDecodingCache={}),s._decodedModelResourceCache=r.cache.modelDecodingCache);var l=s._decodedModelResourceCache[a];if(i(l))return l.count++,void(n.pendingDecodingCache=!0)}var u=t._dequantizeInShader,c=t.gltf;o.mesh(c,function(t,r){o.meshPrimitive(t,function(t,o){if(i(t.extensions)){var a=t.extensions.KHR_draco_mesh_compression;if(i(a)){var s=c.bufferViews[a.bufferView],l=e(c.buffers[s.buffer].extras._pipeline.source,s.byteOffset,s.byteOffset+s.byteLength);n.primitivesToDecode.enqueue({mesh:r,primitive:o,array:l,bufferView:s,compressedAttributes:a.attributes,dequantizeInShader:u})}}})})}},s.decodeModel=function(e,t){if(!s.hasExtension(e))return a.resolve();var r=e._loadResources,n=e.cacheKey;if(i(n)&&i(s._decodedModelResourceCache)){var o=s._decodedModelResourceCache[n];if(i(o)&&r.pendingDecodingCache)return a(o.ready,function(){e._decodedData=o.data,r.pendingDecodingCache=!1});s._decodedModelResourceCache[n]={ready:!1,count:1,data:void 0}}if(0===r.primitivesToDecode.length)return a.resolve();for(var l=s._getDecoderTaskProcessor(),u=[],c=d(l,e,r,t);i(c);)u.push(c),c=d(l,e,r,t);return a.all(u)},s.decodePointCloud=function(e){var t=s._getDecoderTaskProcessor();if(s._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])},s.cacheDataForModel=function(e){var t=e.cacheKey;if(i(t)&&i(s._decodedModelResourceCache)){var r=s._decodedModelResourceCache[t];i(r)&&(r.ready=!0,r.data=e._decodedData)}},s.destroyCachedDataForModel=function(e){var t=e.cacheKey;if(i(t)&&i(s._decodedModelResourceCache)){var r=s._decodedModelResourceCache[t];i(r)&&0==--r.count&&delete s._decodedModelResourceCache[t]}},s}),define("Scene/getClipAndStyleCode",["../Core/Check"],function(e){"use strict";function t(e,t,i){return" float clipDistance = clip(gl_FragCoord, "+e+", "+t+"); \n vec4 clippingPlanesEdgeColor = vec4(1.0); \n clippingPlanesEdgeColor.rgb = "+i+".rgb; \n float clippingPlanesEdgeWidth = "+i+".a; \n if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) \n { \n gl_FragColor = clippingPlanesEdgeColor;\n } \n"}return t}),define("Scene/getClippingFunction",["../Core/Cartesian2","../Core/Check","../Renderer/PixelDatatype","./ClippingPlaneCollection"],function(e,t,i,r){"use strict";function n(e,t){var i=e.unionClippingRegions,n=e.length,c=r.useFloatTexture(t),d=r.getTextureResolution(e,t,u),h=d.x,p=d.y,f=c?s(h,p):l(h,p);return f+="\n",f+=i?o(n):a(n)}function o(e){return"float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)\n{\n vec4 position = czm_windowToEyeCoordinates(fragCoord);\n vec3 clipNormal = vec3(0.0);\n vec3 clipPosition = vec3(0.0);\n float clipAmount;\n float pixelWidth = czm_metersPerPixel(position);\n bool breakAndDiscard = false;\n for (int i = 0; i < "+e+"; ++i)\n {\n vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);\n clipNormal = clippingPlane.xyz;\n clipPosition = -clippingPlane.w * clipNormal;\n float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount));\n if (amount <= 0.0)\n {\n breakAndDiscard = true;\n break;\n }\n }\n if (breakAndDiscard) {\n discard;\n }\n return clipAmount;\n}\n"}function a(e){return"float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix)\n{\n bool clipped = true;\n vec4 position = czm_windowToEyeCoordinates(fragCoord);\n vec3 clipNormal = vec3(0.0);\n vec3 clipPosition = vec3(0.0);\n float clipAmount = 0.0;\n float pixelWidth = czm_metersPerPixel(position);\n for (int i = 0; i < "+e+"; ++i)\n {\n vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix);\n clipNormal = clippingPlane.xyz;\n clipPosition = -clippingPlane.w * clipNormal;\n float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth;\n clipAmount = max(amount, clipAmount);\n clipped = clipped && (amount <= 0.0);\n }\n if (clipped)\n {\n discard;\n }\n return clipAmount;\n}\n"}function s(e,t){var i=1/e,r=1/t,n=i+"";-1===n.indexOf(".")&&(n+=".0");var o=r+"";return-1===o.indexOf(".")&&(o+=".0"),"vec4 getClippingPlane(sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform)\n{\n int pixY = clippingPlaneNumber / "+e+";\n int pixX = clippingPlaneNumber - (pixY * "+e+");\n float u = (float(pixX) + 0.5) * "+n+";\n float v = (float(pixY) + 0.5) * "+o+";\n vec4 plane = texture2D(packedClippingPlanes, vec2(u, v));\n return czm_transformPlane(plane, transform);\n}\n"}function l(e,t){var i=1/e,r=1/t,n=i+"";-1===n.indexOf(".")&&(n+=".0");var o=r+"";return-1===o.indexOf(".")&&(o+=".0"),"vec4 getClippingPlane(sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform)\n{\n int clippingPlaneStartIndex = clippingPlaneNumber * 2;\n int pixY = clippingPlaneStartIndex / "+e+";\n int pixX = clippingPlaneStartIndex - (pixY * "+e+");\n float u = (float(pixX) + 0.5) * "+n+";\n float v = (float(pixY) + 0.5) * "+o+";\n vec4 oct32 = texture2D(packedClippingPlanes, vec2(u, v)) * 255.0;\n vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w);\n vec4 plane;\n plane.xyz = czm_octDecode(oct, 65535.0);\n plane.w = czm_unpackFloat(texture2D(packedClippingPlanes, vec2(u + "+n+", v)));\n return czm_transformPlane(plane, transform);\n}\n"}var u=new e;return n}),define("Scene/JobType",["../Core/freezeObject"],function(e){"use strict";return e({TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3})}),define("Scene/AttributeType",["../Core/freezeObject"],function(e){"use strict";return e({SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"})}),define("Scene/ModelAnimationCache",["../Core/Cartesian3","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/LinearSpline","../Core/Matrix4","../Core/Quaternion","../Core/QuaternionSpline","../Core/WebGLConstants","../Core/WeightSpline","../ThirdParty/GltfPipeline/getAccessorByteStride","../ThirdParty/GltfPipeline/numberOfComponentsForType","./AttributeType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(){}function f(e,t){var i=e.gltf,r=i.buffers,n=i.bufferViews,o=n[t.bufferView],a=r[o.buffer],s=o.byteOffset+t.byteOffset,l=t.count*d(t.type),u=g.test(a.uri)?"":a.uri;return e.cacheKey+"//"+u+"/"+s+"/"+l}function m(e,t,i){return e.cacheKey+"//"+t+"/"+i}function _(e){this._value=e}var g=/^data\:/i,v={};p.getAnimationParameterValues=function(n,o){var s=f(n,o),l=v[s];if(!r(l)){var u=n.gltf,h=u.buffers,p=u.bufferViews,m=p[o.bufferView],_=m.buffer,g=h[_],y=g.extras._pipeline.source,C=o.componentType,b=o.type,S=d(b),T=o.count,E=c(u,o);l=new Array(T);for(var A=i(o.byteOffset,0),w=m.byteOffset+A,x=0;x<T;x++){var P=t.createArrayBufferView(C,y.buffer,y.byteOffset+w,S);"SCALAR"===b?l[x]=P[0]:"VEC3"===b?l[x]=e.fromArray(P):"VEC4"===b&&(l[x]=a.unpack(P)),w+=E}r(n.cacheKey)&&(v[s]=l)}return l};var y={};_.prototype.evaluate=function(e,t){return this._value},_.prototype.wrapTime=function(e){return 0},_.prototype.clampTime=function(e){return 0},p.getAnimationSpline=function(e,t,i,o,a,l,c,d){var h=m(e,t,o),p=y[h];if(!r(p)){var f=l,g=d;1===f.length&&1===g.length?p=new _(g[0]):"LINEAR"===a.interpolation&&("translation"===c||"scale"===c?p=new n({times:f,points:g}):"rotation"===c?p=new s({times:f,points:g}):"weights"===c&&(p=new u({times:f,weights:g}))),r(e.cacheKey)&&(y[h]=p)}return p};var C={};return p.getSkinInverseBindMatrices=function(e,i){var n=f(e,i),a=C[n];if(!r(a)){var s=e.gltf,u=s.buffers,p=s.bufferViews,m=i.bufferView,_=p[m],g=_.buffer,v=u[g],y=v.extras._pipeline.source,b=i.componentType,S=i.type,T=i.count,E=c(s,i),A=_.byteOffset+i.byteOffset,w=d(S);if(a=new Array(T),b===l.FLOAT&&S===h.MAT4)for(var x=0;x<T;++x){var P=t.createArrayBufferView(b,y.buffer,y.byteOffset+A,w);a[x]=o.fromArray(P),A+=E}C[n]=a}return a},p}),define("Scene/ModelAnimationLoop",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,REPEAT:1,MIRRORED_REPEAT:2})}),define("Scene/ModelAnimationState",["../Core/freezeObject"],function(e){"use strict";return e({STOPPED:0,ANIMATING:1})}),define("Scene/ModelAnimation",["../Core/defaultValue","../Core/defineProperties","../Core/defined","../Core/deprecationWarning","../Core/Event","../Core/JulianDate","./ModelAnimationLoop","./ModelAnimationState"],function(e,t,i,r,n,o,a,s){"use strict";function l(t,i,r){this._name=r.name,this._startTime=o.clone(t.startTime),this._delay=e(t.delay,0),this._stopTime=t.stopTime,this.removeOnStop=e(t.removeOnStop,!1),this._multiplier=e(t.multiplier,1),this._reverse=e(t.reverse,!1),this._loop=e(t.loop,a.NONE),this.start=new n,this.update=new n,this.stop=new n,this._state=s.STOPPED,this._runtimeAnimation=r,this._computedStartTime=void 0,this._duration=void 0;var l=this;this._raiseStartEvent=function(){l.start.raiseEvent(i,l)},this._updateEventTime=0,this._raiseUpdateEvent=function(){l.update.raiseEvent(i,l,l._updateEventTime)},this._raiseStopEvent=function(){l.stop.raiseEvent(i,l)}}return t(l.prototype,{name:{get:function(){return this._name}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}}}),l}),define("Scene/ModelAnimationCollection",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/DeveloperError","../Core/Event","../Core/JulianDate","../Core/Math","./ModelAnimation","./ModelAnimationLoop","./ModelAnimationState"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e){this.animationAdded=new o,this.animationRemoved=new o,this._model=e,this._scheduledAnimations=[],this._previousTime=void 0}function h(e,t,i){var r=e._model,n=r._runtime.animations,o=n[t],a=new l(i,r,o);return e._scheduledAnimations.push(a),e.animationAdded.raiseEvent(r,a),a}function p(e,t){for(var i=e.channelEvaluators,r=i.length,n=0;n<r;++n)i[n](t)}function f(e,t,i){return function(){e.animationRemoved.raiseEvent(t,i)}}i(d.prototype,{length:{get:function(){return this._scheduledAnimations.length}}}),d.prototype.add=function(i){i=e(i,e.EMPTY_OBJECT);var r=this._model,n=r._runtime.animations;if(t(i.index))return h(this,i.index,i);for(var o,a=n.length,s=0;s<a;++s)if(n[s].name===i.name){o=s;break}return h(this,o,i)}, -d.prototype.addAll=function(t){t=e(t,e.EMPTY_OBJECT);for(var i=[],r=this._model,n=r._runtime.animations,o=n.length,a=0;a<o;++a)i.push(h(this,a,t));return i},d.prototype.remove=function(e){if(t(e)){var i=this._scheduledAnimations,r=i.indexOf(e);if(-1!==r)return i.splice(r,1),this.animationRemoved.raiseEvent(this._model,e),!0}return!1},d.prototype.removeAll=function(){var e=this._model,t=this._scheduledAnimations,i=t.length;this._scheduledAnimations=[];for(var r=0;r<i;++r)this.animationRemoved.raiseEvent(e,t[r])},d.prototype.contains=function(e){return!!t(e)&&-1!==this._scheduledAnimations.indexOf(e)},d.prototype.get=function(e){return this._scheduledAnimations[e]};var m=[];return d.prototype.update=function(i){var r=this._scheduledAnimations,n=r.length;if(0===n)return this._previousTime=void 0,!1;if(a.equals(i.time,this._previousTime))return!1;this._previousTime=a.clone(i.time,this._previousTime);for(var o=!1,l=i.time,d=this._model,h=0;h<n;++h){var _=r[h],g=_._runtimeAnimation;t(_._computedStartTime)||(_._computedStartTime=a.addSeconds(e(_.startTime,l),_.delay,new a)),t(_._duration)||(_._duration=g.stopTime*(1/_.multiplier));var v=_._computedStartTime,y=_._duration,C=_.stopTime,b=0!==y?a.secondsDifference(l,v)/y:0,S=b>=0,T=_.loop===u.REPEAT||_.loop===u.MIRRORED_REPEAT;if((S||T&&!t(_.startTime))&&(b<=1||T)&&(!t(C)||a.lessThanOrEquals(l,C))){if(_._state===c.STOPPED&&(_._state=c.ANIMATING,_.start.numberOfListeners>0&&i.afterRender.push(_._raiseStartEvent)),_.loop===u.REPEAT)b-=Math.floor(b);else if(_.loop===u.MIRRORED_REPEAT){var E=Math.floor(b),A=b-E;b=E%2==1?1-A:A}_.reverse&&(b=1-b);var w=b*y*_.multiplier;w=s.clamp(w,g.startTime,g.stopTime),p(g,w),_.update.numberOfListeners>0&&(_._updateEventTime=w,i.afterRender.push(_._raiseUpdateEvent)),o=!0}else S&&_._state===c.ANIMATING&&(_._state=c.STOPPED,_.stop.numberOfListeners>0&&i.afterRender.push(_._raiseStopEvent),_.removeOnStop&&m.push(_))}n=m.length;for(var x=0;x<n;++x){var P=m[x];r.splice(r.indexOf(P),1),i.afterRender.push(f(this,d,P))}return m.length=0,o},d}),define("Scene/ModelLoadResources",["../Core/Queue"],function(e){"use strict";function t(){this.initialized=!1,this.resourcesParsed=!1,this.vertexBuffersToCreate=new e,this.indexBuffersToCreate=new e,this.buffers={},this.pendingBufferLoads=0,this.programsToCreate=new e,this.shaders={},this.pendingShaderLoads=0,this.texturesToCreate=new e,this.pendingTextureLoads=0,this.texturesToCreateFromBufferView=new e,this.pendingBufferViewToImage=0,this.createSamplers=!0,this.createSkins=!0,this.createRuntimeAnimations=!0,this.createVertexArrays=!0,this.createRenderStates=!0,this.createUniformMaps=!0,this.createRuntimeNodes=!0,this.createdBufferViews={},this.primitivesToDecode=new e,this.activeDecodingTasks=0,this.pendingDecodingCache=!1,this.skinnedNodesIds=[]}function i(e,t,i){return e.subarray(t,t+i)}return t.prototype.getBuffer=function(e){return i(this.buffers[e.buffer],e.byteOffset,e.byteLength)},t.prototype.finishedPendingBufferLoads=function(){return 0===this.pendingBufferLoads},t.prototype.finishedBuffersCreation=function(){return 0===this.pendingBufferLoads&&0===this.vertexBuffersToCreate.length&&0===this.indexBuffersToCreate.length},t.prototype.finishedProgramCreation=function(){return 0===this.pendingShaderLoads&&0===this.programsToCreate.length},t.prototype.finishedTextureCreation=function(){var e=0===this.pendingTextureLoads,t=0===this.texturesToCreate.length&&0===this.texturesToCreateFromBufferView.length;return e&&t},t.prototype.finishedEverythingButTextureCreation=function(){var e=0===this.pendingBufferLoads&&0===this.pendingShaderLoads,t=0===this.vertexBuffersToCreate.length&&0===this.indexBuffersToCreate.length&&0===this.programsToCreate.length&&0===this.pendingBufferViewToImage;return this.finishedDecoding()&&e&&t},t.prototype.finishedDecoding=function(){return 0===this.primitivesToDecode.length&&0===this.activeDecodingTasks&&!this.pendingDecodingCache},t.prototype.finished=function(){return this.finishedDecoding()&&this.finishedTextureCreation()&&this.finishedEverythingButTextureCreation()},t}),define("Scene/ModelMaterial",["../Core/defined","../Core/defineProperties","../Core/DeveloperError"],function(e,t,i){"use strict";function r(e,t,i){this._name=t.name,this._id=i,this._uniformMap=e._uniformMaps[i],this._technique=void 0,this._program=void 0,this._values=void 0}return t(r.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}}}),r.prototype.setValue=function(e,t){var i="u_"+e,r=this._uniformMap.values[i];r.value=r.clone(t,r.value)},r.prototype.getValue=function(t){var i="u_"+t,r=this._uniformMap.values[i];if(e(r))return r.value},r}),define("Scene/ModelMesh",["../Core/defineProperties"],function(e){"use strict";function t(e,t,i){for(var r=[],n=e.primitives,o=n.length,a=0;a<o;++a){var s=n[a];r[a]=t[s.material]}this._name=e.name,this._materials=r,this._id=i}return e(t.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},materials:{get:function(){return this._materials}}}),t}),define("Scene/ModelNode",["../Core/defineProperties","../Core/Matrix4"],function(e,t){"use strict";function i(e,i,r,n,o){this._model=e,this._runtimeNode=r,this._name=i.name,this._id=n,this.useMatrix=!1,this._show=!0,this._matrix=t.clone(o),this._originalMatrix=t.clone(o)}return e(i.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,this._model._perNodeShowDirty=!0)}},matrix:{get:function(){return this._matrix},set:function(e){this._matrix=t.clone(e,this._matrix),this.useMatrix=!0;var i=this._model;i._cesiumAnimationsDirty=!0,this._runtimeNode.dirtyNumber=i._maxDirtyNumber}},originalMatrix:{get:function(){return this._originalMatrix}}}),i.prototype.setMatrix=function(e){t.clone(e,this._matrix)},i}),define("Scene/ModelUtility",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/clone","../Core/defined","../Core/defineProperties","../Core/Matrix2","../Core/Matrix3","../Core/Matrix4","../Core/Quaternion","../Core/FeatureDetection","../Core/RuntimeError","../Core/WebGLConstants","../Renderer/ShaderSource","../ThirdParty/GltfPipeline/addToArray","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/GltfPipeline/hasExtension","./AttributeType","./Axis"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e,t){return _.techniqueAttribute(e,function(e,i){if(e.semantic===t)return i})}function b(e,t){var i=e.accessors,r=e.materials,n=e.extensions.KHR_techniques_webgl,a=n.techniques,s=n.programs,l=n.shaders,u=t.targets,c=t.attributes;for(var d in u)if(u.hasOwnProperty(d)){var h=u[d];for(var p in h)"extras"!==p&&(c[p+"_"+d]=h[p])}var f=r[t.material],m=a[f.extensions.KHR_techniques_webgl.technique],_=s[m.program],g=l[_.vertexShader];for(var v in c)if(c.hasOwnProperty(v)&&!o(C(m,v))){var y=c[v],b=i[y],S=v.toLowerCase();"_"===S.charAt(0)&&(S=S.slice(1));var T="a_"+S;m.attributes[T]={semantic:v,type:b.componentType};var E=g.extras._pipeline,A=E.source;A="attribute "+B.getShaderVariable(b.type)+" "+T+";\n"+A,E.source=A}}function S(e,t,i,r){return g(e,"KHR_techniques_webgl")?function(e,t){if(!(e.semantic!==i||r&&o(e.node)))return t}:function(e,n){var a=t.parameters[e];if(!(a.semantic!==i||r&&o(a.node)))return n}}function T(e,t,i){t+="(?!\\w)",t=new RegExp(t,"g");var r=e.search(t);return e.replace(t,function(e,t){return r===t?e:i})}function E(e,t){var i=e.accessors[t],r=i.extensions;if(o(r))return r.WEB3D_quantized_attributes}function A(e,t,i){var r=t.material,n=e.materials[r];if(g(e,"KHR_techniques_webgl")&&o(n.extensions)&&o(n.extensions.KHR_techniques_webgl)){var a=n.extensions.KHR_techniques_webgl.technique,s=e.extensions.KHR_techniques_webgl,l=s.techniques[a];return _.techniqueAttribute(l,function(e,t){if(e.semantic===i)return t})}}function w(e){var t={value:e,clone:function(e,t){return e},func:function(){return t.value}};return t}function x(e){var i={value:t.fromArray(e),clone:t.clone,func:function(){return i.value}};return i}function P(e){var t={value:i.fromArray(e),clone:i.clone,func:function(){return t.value}};return t}function D(e){var t={value:r.fromArray(e),clone:r.clone,func:function(){return t.value}};return t}function I(e){var t={value:s.fromColumnMajorArray(e),clone:s.clone,func:function(){return t.value}};return t}function M(e){var t={value:l.fromColumnMajorArray(e),clone:l.clone,func:function(){return t.value}};return t}function R(e){var t={value:u.fromColumnMajorArray(e),clone:u.clone,func:function(){return t.value}};return t}function O(e,t,i){this._value=void 0,this._textureId=e.index,this._textures=t,this._defaultTexture=i}function L(e,t,i){var r=new O(e,t,i);return r.func=function(){return r.value},r}function N(e){return[e[0],e[1],e[2],e[3],e[5],e[6],e[7],e[8],e[10],e[11],e[12],e[13],e[15],e[16],e[17],e[18]]}function F(e){return[e[20],e[21],e[22],e[23]]}var B={};B.updateForwardAxis=function(e){var t=e.gltf.extras.sourceVersion;(o(t)&&"2.0"!==t||"2.0"!==B.getAssetVersion(e.gltf))&&(e._gltfForwardAxis=y.X)},B.getAssetVersion=function(e){return o(e.asset)&&o(e.asset.version)?e.asset.version:"1.0"},B.splitIncompatibleMaterials=function(e){var t=e.accessors,i=e.materials,r={};return _.mesh(e,function(e){_.meshPrimitive(e,function(e){var a,s,l=e.material,u=i[l],c=e.attributes.JOINTS_0;if(o(c)){var d=t[c];a=d.componentType,s=d.type}var h=o(c),p=o(e.attributes.COLOR_0),f=o(e.targets),_=o(e.attributes.NORMAL),g=o(e.attributes.TANGENT),v=o(e.attributes.TEXCOORD_0),y=r[l];if(o(y)){if(y.skinning.skinned!==h||y.skinning.type!==s||y.hasVertexColors!==p||y.hasMorphTargets!==f||y.hasNormals!==_||y.hasTangents!==g||y.hasTexCoords!==v){var C=n(u,!0);l=m(i,C),e.material=l,r[l]={skinning:{skinned:h,componentType:a,type:s},hasVertexColors:p,hasMorphTargets:f,hasNormals:_,hasTangents:g,hasTexCoords:v}}}else r[l]={skinning:{skinned:h,componentType:a,type:s},hasVertexColors:p,hasMorphTargets:f,hasNormals:_,hasTangents:g,hasTexCoords:v}})}),r},B.getShaderVariable=function(e){return"SCALAR"===e?"float":e.toLowerCase()},B.ModelState={NEEDS_LOAD:0,LOADING:1,LOADED:2,FAILED:3},B.getFailedLoadFunction=function(e,t,i){return function(r){e._state=B.ModelState.FAILED;var n="Failed to load "+t+": "+i;o(r)&&(n+="\n"+r.message),e._readyPromise.reject(new h(n))}},B.parseBuffers=function(e,t){var i=e._loadResources;_.buffer(e.gltf,function(r,n){if(o(r.extras._pipeline.source))i.buffers[n]=r.extras._pipeline.source;else if(o(t)){var a=e._resource.getDerivedResource({url:r.uri});++i.pendingBufferLoads,a.fetchArrayBuffer().then(t(e,n)).otherwise(B.getFailedLoadFunction(e,"buffer",a.url))}})};var z=new i,k=new i;B.computeBoundingSphere=function(t){for(var r=t.gltf,n=r.nodes,a=r.meshes,s=r.scenes[r.scene].nodes,l=s.length,c=[],d=new i(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),h=new i(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),p=0;p<l;++p){var f=n[s[p]];for(f._transformToRoot=B.getTransform(f),c.push(f);c.length>0;){f=c.pop();var m=f._transformToRoot,_=f.mesh;if(o(_))for(var g=a[_],v=g.primitives,C=v.length,b=0;b<C;++b){var S=v[b].attributes.POSITION;if(o(S)){var T=B.getAccessorMinMax(r,S),E=i.fromArray(T.min,0,z),A=i.fromArray(T.max,0,k);o(d)&&o(h)&&(u.multiplyByPoint(m,E,E),u.multiplyByPoint(m,A,A),i.minimumByComponent(d,E,d),i.maximumByComponent(h,A,h))}}var w=f.children;if(o(w))for(var x=w.length,P=0;P<x;++P){var D=n[w[P]];D._transformToRoot=B.getTransform(D),u.multiplyTransformation(m,D._transformToRoot,D._transformToRoot),c.push(D)}delete f._transformToRoot}}var I=e.fromCornerPoints(d,h);return t._forwardAxis===y.Z&&e.transformWithoutScale(I,y.Z_UP_TO_X_UP,I),t._upAxis===y.Y?e.transformWithoutScale(I,y.Y_UP_TO_Z_UP,I):t._upAxis===y.X&&e.transformWithoutScale(I,y.X_UP_TO_Z_UP,I),I},B.ensureSemanticExistence=function(e){return _.mesh(e,function(t){_.meshPrimitive(t,function(t){b(e,t)})}),e},B.createAttributeLocations=function(e,t){var i={},r=!1,n=1;if(_.techniqueAttribute(e,function(e,t){/pos/i.test(t)&&!r?(i[t]=0,r=!0):i[t]=n++}),o(t))for(var a in t)t.hasOwnProperty(a)&&(i[a]=n++);return i},B.getAccessorMinMax=function(e,t){var i=e.accessors[t],r=i.extensions,n=i.min,a=i.max;if(o(r)){var s=r.WEB3D_quantized_attributes;o(s)&&(n=s.decodedMin,a=s.decodedMax)}return{min:n,max:a}},B.getAttributeOrUniformBySemantic=function(e,t,i,r){return _.technique(e,function(n){if(!o(i)||n.program===i){var a=_.techniqueAttribute(n,S(e,n,t,r));return o(a)?a:_.techniqueUniform(n,S(e,n,t,r))}})},B.getDiffuseAttributeOrUniform=function(e,t){var i=B.getAttributeOrUniformBySemantic(e,"COLOR_0",t);return o(i)||(i=B.getAttributeOrUniformBySemantic(e,"_3DTILESDIFFUSE",t)),i};var V=new i,U=new c,G=new i;B.getTransform=function(e,t){return o(e.matrix)?u.fromColumnMajorArray(e.matrix,t):u.fromTranslationQuaternionRotationScale(i.fromArray(e.translation,0,V),c.unpack(e.rotation,0,U),i.fromArray(e.scale,0,G),t)},B.getUsedExtensions=function(e){var t=e.extensionsUsed,i={};if(o(t))for(var r=t.length,n=0;n<r;n++){var a=t[n];i[a]=!0}return i},B.getRequiredExtensions=function(e){var t=e.extensionsRequired,i={};if(o(t))for(var r=t.length,n=0;n<r;n++){var a=t[n];i[a]=!0}return i},B.supportedExtensions={AGI_articulations:!0,CESIUM_RTC:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_binary_glTF:!0,KHR_draco_mesh_compression:!0,KHR_materials_common:!0,KHR_techniques_webgl:!0,KHR_materials_unlit:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0},B.checkSupportedExtensions=function(e,t){for(var i in e)if(e.hasOwnProperty(i)){if(!B.supportedExtensions[i])throw new h("Unsupported glTF Extension: "+i);if("EXT_texture_webp"===i&&!1===t)throw new h("Loaded model requires WebP but browser does not support it.")}},B.checkSupportedGlExtensions=function(e,t){if(o(e))for(var i=e.length,r=0;r<i;r++){var n=e[r];if("OES_element_index_uint"!==n)throw new h("Unsupported WebGL Extension: "+n);if(!t.elementIndexUint)throw new h("OES_element_index_uint WebGL extension is not enabled.")}},B.modifyShaderForDracoQuantizedAttributes=function(e,t,i,r){var n={};for(var a in r)if(r.hasOwnProperty(a)){var s=r[a],l=s.quantization;if(!o(l))continue;var u=A(e,t,a);"_"===a.charAt(0)&&(a=a.substring(1));var c="gltf_u_dec_"+a.toLowerCase();if(!o(n[c])){var d="gltf_decoded_"+a,h=u.replace("a_","gltf_a_dec_"),p=s.componentsPerAttribute;i=T(i,u,h);var m;m=l.octEncoded?"vec3":p>1?"vec"+p:"float",i=m+" "+h+";\n"+i;var _=3===p&&"COLOR_0"===a;_&&(i=T(i,h,"vec4("+h+", 1.0)"));var g="";if(l.octEncoded){var v=c+"_rangeConstant";i="uniform float "+v+";\n"+i,g="\nvoid main() {\n "+h+" = czm_octDecode("+u+".xy, "+v+").zxy;\n "+d+"();\n}\n"}else{var y=c+"_normConstant",C=c+"_min";i="uniform float "+y+";\nuniform "+m+" "+C+";\n"+i;var b=_?".xyz":"";g="\nvoid main() {\n "+h+" = "+C+" + "+u+b+" * "+y+";\n "+d+"();\n}\n"}i=f.replaceMain(i,d),i+=g}}return{shader:i}},B.modifyShaderForQuantizedAttributes=function(e,t,i){var r={},n=t.attributes;for(var a in n)if(n.hasOwnProperty(a)){var s=A(e,t,a),l=t.attributes[a];"_"===a.charAt(0)&&(a=a.substring(1));var u="gltf_u_dec_"+a.toLowerCase(),c=u+"_scale",d=u+"_translate";if(!o(r[u])&&!o(r[c])){var h=E(e,l);if(o(h)){var p=h.decodeMatrix,m="gltf_decoded_"+a,_=s.replace("a_","gltf_a_dec_"),g=Math.floor(Math.sqrt(p.length));i=T(i,s,_);var v;v=g>2?"vec"+(g-1):"float",i=v+" "+_+";\n"+i;var y="";5===g?(i="uniform mat4 "+c+";\n"+i,i="uniform vec4 "+d+";\n"+i,y="\nvoid main() {\n "+_+" = "+c+" * "+s+" + "+d+";\n "+m+"();\n}\n",r[c]={mat:4},r[d]={vec:4}):(i="uniform mat"+g+" "+u+";\n"+i,y="\nvoid main() {\n "+_+" = "+v+"("+u+" * vec"+g+"("+s+",1.0));\n "+m+"();\n}\n",r[u]={mat:g}),i=f.replaceMain(i,m),i+=y}}}return{shader:i,uniforms:r}},B.toClipCoordinatesGLSL=function(e,t){var i=B.getAttributeOrUniformBySemantic(e,"POSITION"),r=i.replace("a_","gltf_a_dec_");-1!==t.indexOf(r)&&(i=r);var n=B.getAttributeOrUniformBySemantic(e,"MODELVIEWPROJECTION",void 0,!0);if(!o(n)||-1===t.indexOf(n)){var a=B.getAttributeOrUniformBySemantic(e,"PROJECTION",void 0,!0),s=B.getAttributeOrUniformBySemantic(e,"MODELVIEW",void 0,!0);-1!==t.indexOf("czm_instanced_modelView ")?s="czm_instanced_modelView":o(s)||(s=B.getAttributeOrUniformBySemantic(e,"CESIUM_RTC_MODELVIEW",void 0,!0)),n=a+" * "+s}return n+" * vec4("+i+".xyz, 1.0)"},B.modifyFragmentShaderForLogDepth=function(e){return e=f.replaceMain(e,"czm_depth_main"),e+="\nvoid main() \n{ \n czm_depth_main(); \n czm_writeLogDepth(); \n} \n"},B.modifyVertexShaderForLogDepth=function(e,t){return e=f.replaceMain(e,"czm_depth_main"),e+="\nvoid main() \n{ \n czm_depth_main(); \n czm_vertexLogDepth("+t+"); \n} \n"},a(O.prototype,{value:{get:function(){if(!o(this._value)){var e=this._textures[this._textureId];if(!o(e))return this._defaultTexture;this._value=e}return this._value},set:function(e){this._value=e}}}),O.prototype.clone=function(e){return e},O.prototype.func=void 0;var H={};H[p.FLOAT]=w,H[p.FLOAT_VEC2]=x,H[p.FLOAT_VEC3]=P,H[p.FLOAT_VEC4]=D,H[p.INT]=w,H[p.INT_VEC2]=x,H[p.INT_VEC3]=P,H[p.INT_VEC4]=D,H[p.BOOL]=w,H[p.BOOL_VEC2]=x,H[p.BOOL_VEC3]=P,H[p.BOOL_VEC4]=D,H[p.FLOAT_MAT2]=I,H[p.FLOAT_MAT3]=M,H[p.FLOAT_MAT4]=R,H[p.SAMPLER_2D]=L,B.createUniformFunction=function(e,t,i,r){return H[e](t,i,r)},B.createUniformsForDracoQuantizedAttributes=function(e){var t={};for(var i in e)if(e.hasOwnProperty(i)){var r=e[i],n=r.quantization;if(!o(n))continue;"_"===i.charAt(0)&&(i=i.substring(1));var a="gltf_u_dec_"+i.toLowerCase();if(n.octEncoded){var s=a+"_rangeConstant",l=(1<<n.quantizationBits)-1;t[s]=w(l).func;continue}var u=a+"_normConstant",c=n.range/(1<<n.quantizationBits);t[u]=w(c).func;var d=a+"_min";switch(r.componentsPerAttribute){case 1:t[d]=w(n.minValues).func;break;case 2:t[d]=x(n.minValues).func;break;case 3:t[d]=P(n.minValues).func;break;case 4:t[d]=D(n.minValues).func}}return t},B.createUniformsForQuantizedAttributes=function(e,t,i){var r=e.accessors,n={},a={},c=t.attributes;for(var d in c)if(c.hasOwnProperty(d)){var h=c[d],p=r[h],f=p.extensions;if("_"===d.charAt(0)&&(d=d.substring(1)),o(f)){var m=f.WEB3D_quantized_attributes;if(o(m)){var _=m.decodeMatrix,g="gltf_u_dec_"+d.toLowerCase();switch(p.type){case v.SCALAR:a[g]=I(_).func,n[g]=!0;break;case v.VEC2:a[g]=M(_).func,n[g]=!0;break;case v.VEC3:a[g]=R(_).func,n[g]=!0;break;case v.VEC4:var y=g+"_scale",C=g+"_translate";a[y]=R(N(_)).func,a[C]=D(F(_)).func,n[y]=!0,n[C]=!0}}}}for(var b in i)if(i.hasOwnProperty(b)&&!n[b]){var S=i[b];o(S.mat)&&(2===S.mat?a[b]=I(s.IDENTITY).func:3===S.mat?a[b]=M(l.IDENTITY).func:4===S.mat&&(a[b]=R(u.IDENTITY).func)),o(S.vec)&&4===S.vec&&(a[b]=D([0,0,0,0]).func)}return a};var W=new i,q={MODEL:function(e,t){return function(){return e.model}},VIEW:function(e,t){return function(){return e.view}},PROJECTION:function(e,t){return function(){return e.projection}},MODELVIEW:function(e,t){return function(){return e.modelView}},CESIUM_RTC_MODELVIEW:function(e,t){var r=new u;return function(){return o(t._rtcCenter)?(u.getTranslation(e.model,W),i.add(W,t._rtcCenter,W),u.multiplyByPoint(e.view,W,W),u.setTranslation(e.modelView,W,r)):e.modelView}},MODELVIEWPROJECTION:function(e,t){return function(){return e.modelViewProjection}},MODELINVERSE:function(e,t){return function(){return e.inverseModel}},VIEWINVERSE:function(e,t){return function(){return e.inverseView}},PROJECTIONINVERSE:function(e,t){return function(){return e.inverseProjection}},MODELVIEWINVERSE:function(e,t){return function(){return e.inverseModelView}},MODELVIEWPROJECTIONINVERSE:function(e,t){return function(){return e.inverseModelViewProjection}},MODELINVERSETRANSPOSE:function(e,t){return function(){return e.inverseTransposeModel}},MODELVIEWINVERSETRANSPOSE:function(e,t){return function(){return e.normal}},VIEWPORT:function(e,t){return function(){return e.viewportCartesian4}}};return B.getGltfSemanticUniforms=function(){return q},B}),define("Renderer/ComputeCommand",["../Core/defaultValue","./Pass"],function(e,t){"use strict";function i(i){i=e(i,e.EMPTY_OBJECT),this.vertexArray=i.vertexArray,this.fragmentShaderSource=i.fragmentShaderSource,this.shaderProgram=i.shaderProgram,this.uniformMap=i.uniformMap,this.outputTexture=i.outputTexture,this.preExecute=i.preExecute,this.postExecute=i.postExecute,this.persists=e(i.persists,!1),this.pass=t.COMPUTE,this.owner=i.owner}return i.prototype.execute=function(e){e.execute(this)},i}),define("Shaders/OctahedralProjectionAtlasFS",[],function(){"use strict";return"varying vec2 v_textureCoordinates;\nuniform float originalSize;\nuniform sampler2D texture0;\nuniform sampler2D texture1;\nuniform sampler2D texture2;\nuniform sampler2D texture3;\nuniform sampler2D texture4;\nuniform sampler2D texture5;\nconst float yMipLevel1 = 1.0 - (1.0 / pow(2.0, 1.0));\nconst float yMipLevel2 = 1.0 - (1.0 / pow(2.0, 2.0));\nconst float yMipLevel3 = 1.0 - (1.0 / pow(2.0, 3.0));\nconst float yMipLevel4 = 1.0 - (1.0 / pow(2.0, 4.0));\nvoid main()\n{\nvec2 uv = v_textureCoordinates;\nvec2 textureSize = vec2(originalSize * 1.5 + 2.0, originalSize);\nvec2 pixel = 1.0 / textureSize;\nfloat mipLevel = 0.0;\nif (uv.x - pixel.x > (textureSize.y / textureSize.x))\n{\nmipLevel = 1.0;\nif (uv.y - pixel.y > yMipLevel1)\n{\nmipLevel = 2.0;\nif (uv.y - pixel.y * 3.0 > yMipLevel2)\n{\nmipLevel = 3.0;\nif (uv.y - pixel.y * 5.0 > yMipLevel3)\n{\nmipLevel = 4.0;\nif (uv.y - pixel.y * 7.0 > yMipLevel4)\n{\nmipLevel = 5.0;\n}\n}\n}\n}\n}\nif (mipLevel > 0.0)\n{\nfloat scale = pow(2.0, mipLevel);\nuv.y -= (pixel.y * (mipLevel - 1.0) * 2.0);\nuv.x *= ((textureSize.x - 2.0) / textureSize.y);\nuv.x -= 1.0 + pixel.x;\nuv.y -= (1.0 - (1.0 / pow(2.0, mipLevel - 1.0)));\nuv *= scale;\n}\nelse\n{\nuv.x *= (textureSize.x / textureSize.y);\n}\nif(mipLevel == 0.0)\n{\ngl_FragColor = texture2D(texture0, uv);\n}\nelse if(mipLevel == 1.0)\n{\ngl_FragColor = texture2D(texture1, uv);\n}\nelse if(mipLevel == 2.0)\n{\ngl_FragColor = texture2D(texture2, uv);\n}\nelse if(mipLevel == 3.0)\n{\ngl_FragColor = texture2D(texture3, uv);\n}\nelse if(mipLevel == 4.0)\n{\ngl_FragColor = texture2D(texture4, uv);\n}\nelse if(mipLevel == 5.0)\n{\ngl_FragColor = texture2D(texture5, uv);\n}\nelse\n{\ngl_FragColor = vec4(0.0);\n}\n}\n"}),define("Shaders/OctahedralProjectionFS",[],function(){"use strict";return"varying vec3 v_cubeMapCoordinates;\nuniform samplerCube cubeMap;\nvoid main()\n{\nvec4 rgbm = textureCube(cubeMap, v_cubeMapCoordinates);\nfloat m = rgbm.a * 16.0;\nvec3 r = rgbm.rgb * m;\ngl_FragColor = vec4(r * r, 1.0);\n}\n"}),define("Shaders/OctahedralProjectionVS",[],function(){"use strict";return"attribute vec4 position;\nattribute vec3 cubeMapCoordinates;\nvarying vec3 v_cubeMapCoordinates;\nvoid main()\n{\ngl_Position = position;\nv_cubeMapCoordinates = cubeMapCoordinates;\n}\n"}),define("Scene/OctahedralProjectedCubeMap",["../Core/Cartesian3","../Core/ComponentDatatype","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/IndexDatatype","../Core/loadKTX","../Core/PixelFormat","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ComputeCommand","../Renderer/CubeMap","../Renderer/PixelDatatype","../Renderer/ShaderProgram","../Renderer/Texture","../Renderer/VertexArray","../Shaders/OctahedralProjectionAtlasFS","../Shaders/OctahedralProjectionFS","../Shaders/OctahedralProjectionVS","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e){this._url=e,this._cubeMapBuffers=void 0,this._cubeMaps=void 0,this._texture=void 0,this._mipTextures=void 0,this._va=void 0,this._sp=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._readyPromise=y.defer()}function b(e){var i=l.createVertexBuffer({context:e,typedArray:N,usage:u.STATIC_DRAW}),r=l.createVertexBuffer({context:e,typedArray:R,usage:u.STATIC_DRAW}),n=l.createIndexBuffer({context:e,typedArray:F,usage:u.STATIC_DRAW,indexDatatype:o.UNSIGNED_SHORT}),a=[{index:0,vertexBuffer:i,componentsPerAttribute:2,componentDatatype:t.FLOAT},{index:1,vertexBuffer:r,componentsPerAttribute:3,componentDatatype:t.FLOAT}];return new m({context:e,attributes:a,indexBuffer:n})}function S(e){return function(){return e}}function T(e){e._va=e._va&&e._va.destroy(),e._sp=e._sp&&e._sp.destroy();var t,r,n=e._cubeMaps;if(i(n))for(r=n.length,t=0;t<r;++t)n[t].destroy();var o=e._mipTextures;if(i(o))for(r=o.length,t=0;t<r;++t)o[t].destroy();e._va=void 0,e._sp=void 0,e._cubeMaps=void 0,e._cubeMapBuffers=void 0,e._mipTextures=void 0}r(C.prototype,{url:{get:function(){return this._url}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}}}),C.isSupported=function(e){return e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat};for(var E=new e(1,0,0),A=new e(0,0,1),w=new e(-1,0,0),x=new e(0,0,-1),P=new e(0,1,0),D=new e(0,-1,0),I=[P,w,A,D,E,P,x,P,P],M=I.length,R=new Float32Array(3*M),O=0,L=0;L<M;++L,O+=3)e.pack(I[L],R,O);var N=new Float32Array([-1,1,-1,0,0,1,0,0,1,0,1,1,0,-1,-1,-1,1,-1]),F=new Uint16Array([0,1,2,2,3,1,7,6,1,3,6,1,2,5,4,3,4,2,4,8,6,3,4,6]);return C.prototype.update=function(e){var t=e.context;if(C.isSupported(t)&&(i(this._texture)&&i(this._va)&&T(this),!i(this._texture))){if(!i(this._texture)&&!this._loading){var r=t.textureCache.getTexture(this._url);if(i(r))return T(this),this._texture=r,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0,void this._readyPromise.resolve()}var n=this._cubeMapBuffers;if(!i(n)&&!this._loading){var o=this;a(this._url).then(function(e){o._cubeMapBuffers=e,o._loading=!1}),this._loading=!0}if(i(this._cubeMapBuffers)){this._va=b(t),this._sp=p.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:g,attributeLocations:{position:0,cubeMapCoordinates:1}});var l=Math.min(n.length,6);this._maximumMipmapLevel=l-1;for(var u=this._cubeMaps=new Array(l),m=this._mipTextures=new Array(l),y=2*n[0].positiveX.width,E={originalSize:function(){return y}},A=t.halfFloatingPointTexture?h.HALF_FLOAT:h.FLOAT,w=s.RGBA,x=0;x<l;++x){var P=n[x].positiveY;n[x].positiveY=n[x].negativeY,n[x].negativeY=P;var D=u[x]=new d({context:t,source:n[x]}),I=2*u[x].width,M=m[x]=new f({context:t,width:I,height:I,pixelDatatype:A,pixelFormat:w}),R=new c({vertexArray:this._va,shaderProgram:this._sp,uniformMap:{cubeMap:S(D)},outputTexture:M,persists:!0,owner:this});e.commandList.push(R),E["texture"+x]=S(M)}this._texture=new f({context:t,width:1.5*y+2,height:y,pixelDatatype:A,pixelFormat:w}),this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture);var O=new c({fragmentShaderSource:_,uniformMap:E,outputTexture:this._texture,persists:!1,owner:this});e.commandList.push(O),this._ready=!0,this._readyPromise.resolve()}}},C.prototype.isDestroyed=function(){return!1},C.prototype.destroy=function(){return T(this),this._texture=this._texture&&this._texture.destroy(),n(this)},C}),define("Scene/processModelMaterialsCommon",["./ModelUtility","../Core/defined","../Core/defaultValue","../Core/WebGLConstants","../Core/webGLConstantToGlslType","../ThirdParty/GltfPipeline/addToArray","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/GltfPipeline/hasExtension","../ThirdParty/GltfPipeline/numberOfComponentsForType"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(r,n){if(n=i(n,{}),t(r)&&s(r,"KHR_materials_common")){s(r,"KHR_techniques_webgl")||(t(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl={programs:[],shaders:[],techniques:[]},r.extensionsUsed.push("KHR_techniques_webgl"),r.extensionsRequired.push("KHR_techniques_webgl"));var o=r.extensions.KHR_techniques_webgl;f(r);var l=c(r),u=e.splitIncompatibleMaterials(r),h={},m=!1;return a.material(r,function(e,i){if(t(e.extensions)&&t(e.extensions.KHR_materials_common)){var a=e.extensions.KHR_materials_common,s=u[i],c=p(a,s),f=h[c];t(f)||(f=d(r,o,s,a,l,n.addBatchIdToGeneratedShaders),h[c]=f,m=!0);var _,g={},v=a.values;for(var y in v)v.hasOwnProperty(y)&&"transparent"!==y&&"doubleSided"!==y&&(_="u_"+y.toLowerCase(),g[_]=v[y]);e.extensions.KHR_techniques_webgl={technique:f,values:g},e.alphaMode="OPAQUE",a.transparent&&(e.alphaMode="BLEND"),a.doubleSided&&(e.doubleSided=!0)}}),m?(e.ensureSemanticExistence(r),r):r}}function c(e){var i,n={};if(t(e.extensions)&&t(e.extensions.KHR_materials_common)&&(i=e.extensions.KHR_materials_common.lights),t(i)){var o=e.nodes;for(var a in o)if(o.hasOwnProperty(a)){var s=o[a];if(t(s.extensions)&&t(s.extensions.KHR_materials_common)){var l=s.extensions.KHR_materials_common.light;t(l)&&t(i[l])&&(i[l].node=a),delete s.extensions.KHR_materials_common}}var u=0;for(var c in i)if(i.hasOwnProperty(c)){var d=i[c],h=d.type;if("ambient"!==h&&!t(d.node)){delete i[c];continue}var p="light"+u.toString();switch(d.baseName=p,h){case"ambient":var f=d.ambient;n[p+"Color"]={type:r.FLOAT_VEC3,value:f.color};break;case"directional":var m=d.directional;n[p+"Color"]={type:r.FLOAT_VEC3,value:m.color},t(d.node)&&(n[p+"Transform"]={node:d.node,semantic:"MODELVIEW",type:r.FLOAT_MAT4});break;case"point":var _=d.point;n[p+"Color"]={type:r.FLOAT_VEC3,value:_.color},t(d.node)&&(n[p+"Transform"]={node:d.node,semantic:"MODELVIEW",type:r.FLOAT_MAT4}),n[p+"Attenuation"]={type:r.FLOAT_VEC3,value:[_.constantAttenuation,_.linearAttenuation,_.quadraticAttenuation]};break;case"spot":var g=d.spot;n[p+"Color"]={type:r.FLOAT_VEC3,value:g.color},t(d.node)&&(n[p+"Transform"]={node:d.node,semantic:"MODELVIEW",type:r.FLOAT_MAT4},n[p+"InverseTransform"]={node:d.node,semantic:"MODELVIEWINVERSE",type:r.FLOAT_MAT4,useInFragment:!0}),n[p+"Attenuation"]={type:r.FLOAT_VEC3,value:[g.constantAttenuation,g.linearAttenuation,g.quadraticAttenuation]},n[p+"FallOff"]={type:r.FLOAT_VEC2,value:[g.fallOffAngle,g.fallOffExponent]}}++u}}return n}function d(a,u,c,d,p,f){t(d)||(d={}),f=i(f,!1);var m,_=u.techniques,g=u.shaders,v=u.programs,y=d.technique.toUpperCase();t(a.extensions)&&t(a.extensions.KHR_materials_common)&&(m=a.extensions.KHR_materials_common.lights);var C,b=d.values,S=i(d.jointCount,0),T=!1,E=!1;t(c)&&(C=c.skinning,T=C.skinned,E=c.hasVertexColors);var A="precision highp float;\n",w="precision highp float;\n",x="CONSTANT"!==y,P={u_modelViewMatrix:{semantic:s(a,"CESIUM_RTC")?"CESIUM_RTC_MODELVIEW":"MODELVIEW",type:r.FLOAT_MAT4},u_projectionMatrix:{semantic:"PROJECTION",type:r.FLOAT_MAT4}};x&&(P.u_normalMatrix={semantic:"MODELVIEWINVERSETRANSPOSE",type:r.FLOAT_MAT3}),T&&(P.u_jointMatrix={count:S,semantic:"JOINTMATRIX",type:r.FLOAT_MAT4});var D,I=!1;for(var M in b)if(b.hasOwnProperty(M)&&"transparent"!==M&&"doubleSided"!==M){var R=h(M,b[M]);D="u_"+M.toLowerCase(),I||R!==r.SAMPLER_2D||(I=!0),P[D]={type:R}}if(t(P.u_diffuse)&&(P.u_diffuse.semantic="_3DTILESDIFFUSE"),t(p))for(var O in p)p.hasOwnProperty(O)&&(D="u_"+O,P[D]=p[O]);for(D in P)if(P.hasOwnProperty(D)){var L=P[D],N=t(L.count)?"["+L.count+"]":"";L.type!==r.FLOAT_MAT3&&L.type!==r.FLOAT_MAT4||L.useInFragment?(w+="uniform "+n(L.type)+" "+D+N+";\n",delete L.useInFragment):A+="uniform "+n(L.type)+" "+D+N+";\n"}var F="";if(T){var B,z,k=l(C.type),V=!1;if(0===C.type.indexOf("MAT")&&(V=!0,k=Math.sqrt(k)),V)for(B=0;B<k;B++)for(z=0;z<k;z++)F+=0===B&&0===z?" mat4 skinMat = ":" skinMat += ",F+="a_weight["+B+"]["+z+"] * u_jointMatrix[int(a_joint["+B+"]["+z+"])];\n";else for(B=0;B<k;B++)F+=0===B?" mat4 skinMat = ":" skinMat += ",F+="a_weight["+B+"] * u_jointMatrix[int(a_joint["+B+"])];\n"}var U={a_position:{semantic:"POSITION"}};A+="attribute vec3 a_position;\n",A+="varying vec3 v_positionEC;\n",F+=T?" vec4 pos = u_modelViewMatrix * skinMat * vec4(a_position,1.0);\n":" vec4 pos = u_modelViewMatrix * vec4(a_position,1.0);\n",F+=" v_positionEC = pos.xyz;\n",F+=" gl_Position = u_projectionMatrix * pos;\n",w+="varying vec3 v_positionEC;\n",x&&(U.a_normal={semantic:"NORMAL"},A+="attribute vec3 a_normal;\n",A+="varying vec3 v_normal;\n", -F+=T?" v_normal = u_normalMatrix * mat3(skinMat) * a_normal;\n":" v_normal = u_normalMatrix * a_normal;\n",w+="varying vec3 v_normal;\n");var G;if(I&&(U.a_texcoord_0={semantic:"TEXCOORD_0"},G="v_texcoord_0",A+="attribute vec2 a_texcoord_0;\n",A+="varying vec2 "+G+";\n",F+=" "+G+" = a_texcoord_0;\n",w+="varying vec2 "+G+";\n"),T){var H=e.getShaderVariable(C.type);U.a_joint={semantic:"JOINT"},U.a_weight={semantic:"WEIGHT"},A+="attribute "+H+" a_joint;\n",A+="attribute "+H+" a_weight;\n"}E&&(U.a_vertexColor={semantic:"COLOR_0"},A+="attribute vec4 a_vertexColor;\n",A+="varying vec4 v_vertexColor;\n",F+=" v_vertexColor = a_vertexColor;\n",w+="varying vec4 v_vertexColor;\n"),f&&(U.a_batchId={semantic:"_BATCHID"},A+="attribute float a_batchId;\n");var W=x&&("BLINN"===y||"PHONG"===y)&&t(P.u_specular)&&t(P.u_shininess)&&P.u_shininess>0,q=!1,Y=!1,j="";for(var X in m)if(m.hasOwnProperty(X)){var Q=m[X],K=Q.type.toLowerCase(),Z=Q.baseName;j+=" {\n";var J,$,ee="u_"+Z+"Color";"ambient"===K?(Y=!0,j+=" ambientLight += "+ee+";\n"):x&&(q=!0,J="v_"+Z+"Direction",$="v_"+Z+"Position","point"!==K&&(A+="varying vec3 "+J+";\n",w+="varying vec3 "+J+";\n",F+=" "+J+" = mat3(u_"+Z+"Transform) * vec3(0.,0.,1.);\n","directional"===K&&(j+=" vec3 l = normalize("+J+");\n")),"directional"!==K?(A+="varying vec3 "+$+";\n",w+="varying vec3 "+$+";\n",F+=" "+$+" = u_"+Z+"Transform[3].xyz;\n",j+=" vec3 VP = "+$+" - v_positionEC;\n",j+=" vec3 l = normalize(VP);\n",j+=" float range = length(VP);\n",j+=" float attenuation = 1.0 / (u_"+Z+"Attenuation.x + ",j+="(u_"+Z+"Attenuation.y * range) + ",j+="(u_"+Z+"Attenuation.z * range * range));\n"):j+=" float attenuation = 1.0;\n","spot"===K&&(j+=" float spotDot = dot(l, normalize("+J+"));\n",j+=" if (spotDot < cos(u_"+Z+"FallOff.x * 0.5))\n",j+=" {\n",j+=" attenuation = 0.0;\n",j+=" }\n",j+=" else\n",j+=" {\n",j+=" attenuation *= max(0.0, pow(spotDot, u_"+Z+"FallOff.y));\n",j+=" }\n"),j+=" diffuseLight += "+ee+"* max(dot(normal,l), 0.) * attenuation;\n",W&&("BLINN"===y?(j+=" vec3 h = normalize(l + viewDir);\n",j+=" float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess)) * attenuation;\n"):(j+=" vec3 reflectDir = reflect(-l, normal);\n",j+=" float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess)) * attenuation;\n"),j+=" specularLight += "+ee+" * specularIntensity;\n")),j+=" }\n"}if(Y||(j+=" ambientLight += vec3(0.2, 0.2, 0.2);\n"),!q&&"CONSTANT"!==y){j+=" vec3 l = normalize(czm_sunDirectionEC);\n";j+=" diffuseLight += vec3(1.0, 1.0, 1.0) * max(dot(normal,l), 0.2);\n",W&&("BLINN"===y?(j+=" vec3 h = normalize(l + viewDir);\n",j+=" float specularIntensity = max(0., pow(max(dot(normal, h), 0.), u_shininess));\n"):(j+=" vec3 reflectDir = reflect(-l, normal);\n",j+=" float specularIntensity = max(0., pow(max(dot(reflectDir, viewDir), 0.), u_shininess));\n"),j+=" specularLight += vec3(1.0, 1.0, 1.0) * specularIntensity;\n")}A+="void main(void) {\n",A+=F,A+="}\n",w+="void main(void) {\n";var te=" vec3 color = vec3(0.0, 0.0, 0.0);\n";x&&(w+=" vec3 normal = normalize(v_normal);\n",d.doubleSided&&(w+=" if (gl_FrontFacing == false)\n",w+=" {\n",w+=" normal = -normal;\n",w+=" }\n"));var ie;"CONSTANT"!==y?(t(P.u_diffuse)&&(P.u_diffuse.type===r.SAMPLER_2D?w+=" vec4 diffuse = texture2D(u_diffuse, "+G+");\n":w+=" vec4 diffuse = u_diffuse;\n",w+=" vec3 diffuseLight = vec3(0.0, 0.0, 0.0);\n",te+=" color += diffuse.rgb * diffuseLight;\n"),W&&(P.u_specular.type===r.SAMPLER_2D?w+=" vec3 specular = texture2D(u_specular, "+G+").rgb;\n":w+=" vec3 specular = u_specular.rgb;\n",w+=" vec3 specularLight = vec3(0.0, 0.0, 0.0);\n",te+=" color += specular * specularLight;\n"),ie=t(P.u_transparency)?" gl_FragColor = vec4(color * diffuse.a * u_transparency, diffuse.a * u_transparency);\n":" gl_FragColor = vec4(color * diffuse.a, diffuse.a);\n"):ie=t(P.u_transparency)?" gl_FragColor = vec4(color * u_transparency, u_transparency);\n":" gl_FragColor = vec4(color, 1.0);\n",E&&(te+=" color *= v_vertexColor.rgb;\n"),t(P.u_emission)&&(P.u_emission.type===r.SAMPLER_2D?w+=" vec3 emission = texture2D(u_emission, "+G+").rgb;\n":w+=" vec3 emission = u_emission.rgb;\n",te+=" color += emission;\n"),(t(P.u_ambient)||"CONSTANT"!==y)&&(t(P.u_ambient)?P.u_ambient.type===r.SAMPLER_2D?w+=" vec3 ambient = texture2D(u_ambient, "+G+").rgb;\n":w+=" vec3 ambient = u_ambient.rgb;\n":w+=" vec3 ambient = diffuse.rgb;\n",te+=" color += ambient * ambientLight;\n"),w+=" vec3 viewDir = -normalize(v_positionEC);\n",w+=" vec3 ambientLight = vec3(0.0, 0.0, 0.0);\n",w+=j,w+=te,w+=ie,w+="}\n";var re=o(g,{type:r.VERTEX_SHADER,extras:{_pipeline:{source:A,extension:".glsl"}}}),ne=o(g,{type:r.FRAGMENT_SHADER,extras:{_pipeline:{source:w,extension:".glsl"}}}),oe=o(v,{fragmentShader:ne,vertexShader:re});return o(_,{attributes:U,program:oe,uniforms:P})}function h(e,i){var n;switch(n=t(i.value)?i.value:t(i.index)?[i.index]:i,e){case"ambient":case"diffuse":case"emission":case"specular":return 1===n.length?r.SAMPLER_2D:r.FLOAT_VEC4;case"shininess":case"transparency":return r.FLOAT;case"transparent":case"doubleSided":return r.BOOL}}function p(e,r){var n="";n+="technique:"+e.technique+";";for(var o=e.values,a=Object.keys(o).sort(),s=a.length,l=0;l<s;++l){var u=a[l];o.hasOwnProperty(u)&&(n+=u+":"+h(u,o[u]),n+=";")}var c=i(e.jointCount,0);if(n+=c.toString()+";",t(r)){var d=r.skinning;c>0&&(n+=d.type+";"),n+=r.hasVertexColors}return n}function f(e){var r=e.extensions.KHR_materials_common;if(t(r)&&t(r.lights))for(var n=r.lights,o=n.length,a=0;a<o;a++){var s=n[a];if("ambient"===s.type){t(s.ambient)||(s.ambient={});var l=s.ambient;t(l.color)||(l.color=[1,1,1])}else if("directional"===s.type){t(s.directional)||(s.directional={});var u=s.directional;t(u.color)||(u.color=[1,1,1])}else if("point"===s.type){t(s.point)||(s.point={});var c=s.point;t(c.color)||(c.color=[1,1,1]),c.constantAttenuation=i(c.constantAttenuation,1),c.linearAttenuation=i(c.linearAttenuation,0),c.quadraticAttenuation=i(c.quadraticAttenuation,0)}else if("spot"===s.type){t(s.spot)||(s.spot={});var d=s.spot;t(d.color)||(d.color=[1,1,1]),d.constantAttenuation=i(d.constantAttenuation,1),d.fallOffAngle=i(d.fallOffAngle,3.14159265),d.fallOffExponent=i(d.fallOffExponent,0),d.linearAttenuation=i(d.linearAttenuation,0),d.quadraticAttenuation=i(d.quadraticAttenuation,0)}}}return u}),define("Scene/processPbrMaterials",["./ModelUtility","../Core/defined","../Core/defaultValue","../Core/WebGLConstants","../Core/webGLConstantToGlslType","../ThirdParty/GltfPipeline/addToArray","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/GltfPipeline/hasExtension","../ThirdParty/GltfPipeline/numberOfComponentsForType"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(r,n){if(n=i(n,{}),s(r,"KHR_techniques_webgl"))return r;if(!t(r.materials)||0===r.materials.length)return r;t(r.extensions)||(r.extensions={}),t(r.extensionsUsed)||(r.extensionsUsed=[]),t(r.extensionsRequired)||(r.extensionsRequired=[]),r.extensions.KHR_techniques_webgl={programs:[],shaders:[],techniques:[]},r.extensionsUsed.push("KHR_techniques_webgl"),r.extensionsRequired.push("KHR_techniques_webgl");var o=e.splitIncompatibleMaterials(r);return a.material(r,function(e,i){var a={},s=p(r,e,i,a,o,n);t(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl={values:a,technique:s}}),e.ensureSemanticExistence(r),r}function c(e){return t(e.extensions)&&t(e.extensions.KHR_materials_pbrSpecularGlossiness)}function d(e,i,n,o,a){var s;if(t(n[i+"Offset"])){var l=n[i].index,u=e.samplers[e.textures[l].sampler],c=u.wrapS===r.REPEAT?"true":"false",d=u.wrapT===r.REPEAT?"true":"false";s=i+"Coord",a.fragmentShaderMain+=" vec2 "+s+" = computeTexCoord("+o+", "+i+"Offset, "+i+"Rotation, "+i+"Scale, "+c+", "+d+");\n"}else s=o;return s}function h(e,r,n){if(-1!==e.indexOf("Texture")&&t(r.extensions)&&t(r.extensions.KHR_texture_transform)){var o="u_"+e,a=r.extensions.KHR_texture_transform;n[o+"Offset"]=i(a.offset,m),n[o+"Rotation"]=i(a.rotation,_),n[o+"Scale"]=i(a.scale,g),t(r.texCoord)&&t(a.texCoord)&&(n[o].texCoord=a.texCoord)}}function p(u,p,m,_,g,v){var y,C,b,S=i(v.addBatchIdToGeneratedShaders,!1),T=u.extensions.KHR_techniques_webgl,E=T.techniques,A=T.shaders,w=T.programs,x=c(p),P=p.pbrMetallicRoughness;if(t(P)&&!x)for(C in P)P.hasOwnProperty(C)&&(b=P[C],y="u_"+C,_[y]=b,h(C,b,_));if(x){var D=p.extensions.KHR_materials_pbrSpecularGlossiness;for(C in D)D.hasOwnProperty(C)&&(b=D[C],y="u_"+C,_[y]=b,h(C,b,_))}for(var I in p)p.hasOwnProperty(I)&&(I.indexOf("Texture")>=0||I.indexOf("Factor")>=0)&&(b=p[I],y="u_"+I,_[y]=b,h(I,b,_));var M,R="precision highp float;\n",O="precision highp float;\n";t(u.skins)&&(M=u.skins[0]);var L,N=t(M)?M.joints:[],F=N.length,B=g[m],z=!1,k=!1,V=!1,U=!1,G=!1,H=!1,W=!1;t(B)&&(L=B.skinning,z=L.skinned&&N.length>0,k=B.hasVertexColors,V=B.hasMorphTargets,U=B.hasNormals,G=B.hasTangents,H=B.hasTexCoords);var q;V&&a.mesh(u,function(e){a.meshPrimitive(e,function(e){if(e.material===m){var i=e.targets;t(i)&&(q=i)}})});var Y={u_modelViewMatrix:{semantic:s(u,"CESIUM_RTC")?"CESIUM_RTC_MODELVIEW":"MODELVIEW",type:r.FLOAT_MAT4},u_projectionMatrix:{semantic:"PROJECTION",type:r.FLOAT_MAT4}};t(p.extensions)&&t(p.extensions.KHR_materials_unlit)&&(W=!0,U=!1,G=!1),U&&(Y.u_normalMatrix={semantic:"MODELVIEWINVERSETRANSPOSE",type:r.FLOAT_MAT3}),z&&(Y.u_jointMatrix={count:F,semantic:"JOINTMATRIX",type:r.FLOAT_MAT4}),V&&(Y.u_morphWeights={count:q.length,semantic:"MORPHWEIGHTS",type:r.FLOAT});var j=p.alphaMode;t(j)&&"MASK"===j&&(Y.u_alphaCutoff={semantic:"ALPHACUTOFF",type:r.FLOAT});for(y in _)_.hasOwnProperty(y)&&(Y[y]={type:f(y)});var X=i(Y.u_baseColorTexture,Y.u_baseColorFactor);t(X)&&(X.semantic="_3DTILESDIFFUSE");for(y in Y)if(Y.hasOwnProperty(y)){var Q=Y[y],K=t(Q.count)?"["+Q.count+"]":"";Q.type!==r.FLOAT_MAT3&&Q.type!==r.FLOAT_MAT4&&"u_morphWeights"!==y||Q.useInFragment?(O+="uniform "+n(Q.type)+" "+y+K+";\n",delete Q.useInFragment):R+="uniform "+n(Q.type)+" "+y+K+";\n"}var Z="";if(z){var J,$,ee=l(L.type),te=!1;if(0===L.type.indexOf("MAT")&&(te=!0,ee=Math.sqrt(ee)),te)for(J=0;J<ee;J++)for($=0;$<ee;$++)Z+=0===J&&0===$?" mat4 skinMatrix = ":" skinMatrix += ",Z+="a_weight["+J+"]["+$+"] * u_jointMatrix[int(a_joint["+J+"]["+$+"])];\n";else for(J=0;J<ee;J++)Z+=0===J?" mat4 skinMatrix = ":" skinMatrix += ",Z+="a_weight["+J+"] * u_jointMatrix[int(a_joint["+J+"])];\n"}var ie={a_position:{semantic:"POSITION"}};if(R+="attribute vec3 a_position;\n",U&&(R+="varying vec3 v_positionEC;\n"),Z+=" vec3 weightedPosition = a_position;\n",U&&(Z+=" vec3 weightedNormal = a_normal;\n"),G&&(Z+=" vec4 weightedTangent = a_tangent;\n"),V)for(var re=0;re<q.length;re++){var ne=q[re];for(var oe in ne)if(ne.hasOwnProperty(oe)&&"extras"!==oe){var ae="a_"+oe+"_"+re;ie[ae]={semantic:oe+"_"+re},R+="attribute vec3 "+ae+";\n","POSITION"===oe?Z+=" weightedPosition += u_morphWeights["+re+"] * "+ae+";\n":"NORMAL"===oe?Z+=" weightedNormal += u_morphWeights["+re+"] * "+ae+";\n":G&&"TANGENT"===oe&&(Z+=" weightedTangent.xyz += u_morphWeights["+re+"] * "+ae+";\n")}}Z+=z?" vec4 position = skinMatrix * vec4(weightedPosition, 1.0);\n":" vec4 position = vec4(weightedPosition, 1.0);\n",Z+=" position = u_modelViewMatrix * position;\n",U&&(Z+=" v_positionEC = position.xyz;\n"),Z+=" gl_Position = u_projectionMatrix * position;\n",U&&(ie.a_normal={semantic:"NORMAL"},R+="attribute vec3 a_normal;\n",R+="varying vec3 v_normal;\n",Z+=z?" v_normal = u_normalMatrix * mat3(skinMatrix) * weightedNormal;\n":" v_normal = u_normalMatrix * weightedNormal;\n",O+="varying vec3 v_normal;\n",O+="varying vec3 v_positionEC;\n"),G&&(ie.a_tangent={semantic:"TANGENT"},R+="attribute vec4 a_tangent;\n",R+="varying vec4 v_tangent;\n",Z+=" v_tangent.xyz = u_normalMatrix * weightedTangent.xyz;\n",Z+=" v_tangent.w = weightedTangent.w;\n",O+="varying vec4 v_tangent;\n");var se,le,ue,ce,de,he,pe,fe,me="";if(H){ie.a_texcoord_0={semantic:"TEXCOORD_0"},se="v_texcoord_0",R+="attribute vec2 a_texcoord_0;\n",R+="varying vec2 "+se+";\n",Z+=" "+se+" = a_texcoord_0;\n",O+="varying vec2 "+se+";\n";var _e={fragmentShaderMain:me};le=d(u,"u_normalTexture",_,se,_e),ue=d(u,"u_baseColorTexture",_,se,_e),ce=d(u,"u_specularGlossinessTexture",_,se,_e),de=d(u,"u_diffuseTexture",_,se,_e),he=d(u,"u_metallicRoughnessTexture",_,se,_e),pe=d(u,"u_occlusionTexture",_,se,_e),fe=d(u,"u_emmissiveTexture",_,se,_e),me=_e.fragmentShaderMain}if(z){var ge=e.getShaderVariable(L.type);ie.a_joint={semantic:"JOINTS_0"},ie.a_weight={semantic:"WEIGHTS_0"},R+="attribute "+ge+" a_joint;\n",R+="attribute "+ge+" a_weight;\n"}k&&(ie.a_vertexColor={semantic:"COLOR_0"},R+="attribute vec4 a_vertexColor;\n",R+="varying vec4 v_vertexColor;\n",Z+=" v_vertexColor = a_vertexColor;\n",O+="varying vec4 v_vertexColor;\n"),S&&(ie.a_batchId={semantic:"_BATCHID"},R+="attribute float a_batchId;\n"),R+="void main(void) \n{\n",R+=Z,R+="}\n",U&&(O+="const float M_PI = 3.141592653589793;\n",O+="vec3 lambertianDiffuse(vec3 diffuseColor) \n{\n return diffuseColor / M_PI;\n}\n\n",O+="vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) \n{\n return f0 + (f90 - f0) * pow(clamp(1.0 - VdotH, 0.0, 1.0), 5.0);\n}\n\n",O+="vec3 fresnelSchlick(float metalness, float VdotH) \n{\n return metalness + (vec3(1.0) - metalness) * pow(1.0 - VdotH, 5.0);\n}\n\n",O+="float smithVisibilityG1(float NdotV, float roughness) \n{\n float k = (roughness + 1.0) * (roughness + 1.0) / 8.0;\n return NdotV / (NdotV * (1.0 - k) + k);\n}\n\n",O+="float smithVisibilityGGX(float roughness, float NdotL, float NdotV) \n{\n return smithVisibilityG1(NdotL, roughness) * smithVisibilityG1(NdotV, roughness);\n}\n\n",O+="float GGX(float roughness, float NdotH) \n{\n float roughnessSquared = roughness * roughness;\n float f = (NdotH * roughnessSquared - NdotH) * NdotH + 1.0;\n return roughnessSquared / (M_PI * f * f);\n}\n\n"),O+="vec3 SRGBtoLINEAR3(vec3 srgbIn) \n{\n return pow(srgbIn, vec3(2.2));\n}\n\n",O+="vec4 SRGBtoLINEAR4(vec4 srgbIn) \n{\n vec3 linearOut = pow(srgbIn.rgb, vec3(2.2));\n return vec4(linearOut, srgbIn.a);\n}\n\n",O+="vec3 LINEARtoSRGB(vec3 linearIn) \n{\n#ifndef HDR \n return pow(linearIn, vec3(1.0/2.2));\n#else \n return linearIn;\n#endif \n}\n\n",O+="vec2 computeTexCoord(vec2 texCoords, vec2 offset, float rotation, vec2 scale, bool repeatS, bool repeatT) \n{\n rotation = -rotation; \n mat3 transform = mat3(\n cos(rotation) * scale.x, sin(rotation) * scale.x, 0.0, \n -sin(rotation) * scale.y, cos(rotation) * scale.y, 0.0, \n offset.x, offset.y, 1.0); \n vec2 transformedTexCoords = (transform * vec3(fract(texCoords), 1.0)).xy; \n transformedTexCoords.x = repeatS ? fract(transformedTexCoords.x) : clamp(transformedTexCoords.x, 0.0, 1.0); \n transformedTexCoords.y = repeatT ? fract(transformedTexCoords.y) : clamp(transformedTexCoords.y, 0.0, 1.0); \n return transformedTexCoords; \n}\n\n",O+="#ifdef USE_IBL_LIGHTING \n",O+="uniform vec2 gltf_iblFactor; \n",O+="#endif \n",O+="#ifdef USE_CUSTOM_LIGHT_COLOR \n",O+="uniform vec3 gltf_lightColor; \n",O+="#endif \n",O+="void main(void) \n{\n",O+=me,U&&(O+=" vec3 ng = normalize(v_normal);\n",O+=" vec3 positionWC = vec3(czm_inverseView * vec4(v_positionEC, 1.0));\n",t(_.u_normalTexture)?G?(O+=" vec3 t = normalize(v_tangent.xyz);\n",O+=" vec3 b = normalize(cross(ng, t) * v_tangent.w);\n",O+=" mat3 tbn = mat3(t, b, ng);\n",O+=" vec3 n = texture2D(u_normalTexture, "+le+").rgb;\n",O+=" n = normalize(tbn * (2.0 * n - 1.0));\n"):(O="#ifdef GL_OES_standard_derivatives\n#extension GL_OES_standard_derivatives : enable\n#endif\n"+O,O+="#ifdef GL_OES_standard_derivatives\n",O+=" vec3 pos_dx = dFdx(v_positionEC);\n",O+=" vec3 pos_dy = dFdy(v_positionEC);\n",O+=" vec3 tex_dx = dFdx(vec3("+le+",0.0));\n",O+=" vec3 tex_dy = dFdy(vec3("+le+",0.0));\n",O+=" vec3 t = (tex_dy.t * pos_dx - tex_dx.t * pos_dy) / (tex_dx.s * tex_dy.t - tex_dy.s * tex_dx.t);\n",O+=" t = normalize(t - ng * dot(ng, t));\n",O+=" vec3 b = normalize(cross(ng, t));\n",O+=" mat3 tbn = mat3(t, b, ng);\n",O+=" vec3 n = texture2D(u_normalTexture, "+le+").rgb;\n",O+=" n = normalize(tbn * (2.0 * n - 1.0));\n",O+="#else\n",O+=" vec3 n = ng;\n",O+="#endif\n"):O+=" vec3 n = ng;\n",p.doubleSided&&(O+=" if (!gl_FrontFacing)\n",O+=" {\n",O+=" n = -n;\n",O+=" }\n")),t(_.u_baseColorTexture)?(O+=" vec4 baseColorWithAlpha = SRGBtoLINEAR4(texture2D(u_baseColorTexture, "+ue+"));\n",t(_.u_baseColorFactor)&&(O+=" baseColorWithAlpha *= u_baseColorFactor;\n")):t(_.u_baseColorFactor)?O+=" vec4 baseColorWithAlpha = u_baseColorFactor;\n":O+=" vec4 baseColorWithAlpha = vec4(1.0);\n",k&&(O+=" baseColorWithAlpha *= v_vertexColor;\n"),O+=" vec3 baseColor = baseColorWithAlpha.rgb;\n",U?(x?(t(_.u_specularGlossinessTexture)?(O+=" vec4 specularGlossiness = SRGBtoLINEAR4(texture2D(u_specularGlossinessTexture, "+ce+"));\n",O+=" vec3 specular = specularGlossiness.rgb;\n",O+=" float glossiness = specularGlossiness.a;\n",t(_.u_specularFactor)&&(O+=" specular *= u_specularFactor;\n"),t(_.u_glossinessFactor)&&(O+=" glossiness *= u_glossinessFactor;\n")):(t(_.u_specularFactor)?O+=" vec3 specular = clamp(u_specularFactor, vec3(0.0), vec3(1.0));\n":O+=" vec3 specular = vec3(1.0);\n",t(_.u_glossinessFactor)?O+=" float glossiness = clamp(u_glossinessFactor, 0.0, 1.0);\n":O+=" float glossiness = 1.0;\n"),t(_.u_diffuseTexture)?(O+=" vec4 diffuse = SRGBtoLINEAR4(texture2D(u_diffuseTexture, "+de+"));\n",t(_.u_diffuseFactor)&&(O+=" diffuse *= u_diffuseFactor;\n")):t(_.u_diffuseFactor)?O+=" vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0));\n":O+=" vec4 diffuse = vec4(1.0);\n"):t(_.u_metallicRoughnessTexture)?(O+=" vec3 metallicRoughness = texture2D(u_metallicRoughnessTexture, "+he+").rgb;\n",O+=" float metalness = clamp(metallicRoughness.b, 0.0, 1.0);\n",O+=" float roughness = clamp(metallicRoughness.g, 0.04, 1.0);\n",t(_.u_metallicFactor)&&(O+=" metalness *= u_metallicFactor;\n"),t(_.u_roughnessFactor)&&(O+=" roughness *= u_roughnessFactor;\n")):(t(_.u_metallicFactor)?O+=" float metalness = clamp(u_metallicFactor, 0.0, 1.0);\n":O+=" float metalness = 1.0;\n",t(_.u_roughnessFactor)?O+=" float roughness = clamp(u_roughnessFactor, 0.04, 1.0);\n":O+=" float roughness = 1.0;\n"),O+=" vec3 v = -normalize(v_positionEC);\n",O+="#ifndef USE_CUSTOM_LIGHT_COLOR \n",O+=" vec3 lightColor = vec3(1.5, 1.4, 1.2);\n",O+="#else \n",O+=" vec3 lightColor = gltf_lightColor;\n",O+="#endif \n",O+=" vec3 l = normalize(czm_sunDirectionEC);\n",O+=" vec3 h = normalize(v + l);\n",O+=" float NdotL = clamp(dot(n, l), 0.001, 1.0);\n",O+=" float NdotV = abs(dot(n, v)) + 0.001;\n",O+=" float NdotH = clamp(dot(n, h), 0.0, 1.0);\n",O+=" float LdotH = clamp(dot(l, h), 0.0, 1.0);\n",O+=" float VdotH = clamp(dot(v, h), 0.0, 1.0);\n",O+=" vec3 f0 = vec3(0.04);\n",x?(O+=" float roughness = 1.0 - glossiness;\n",O+=" vec3 diffuseColor = diffuse.rgb * (1.0 - max(max(specular.r, specular.g), specular.b));\n",O+=" vec3 specularColor = specular;\n"):(O+=" vec3 diffuseColor = baseColor * (1.0 - metalness) * (1.0 - f0);\n",O+=" vec3 specularColor = mix(f0, baseColor, metalness);\n"),O+=" float alpha = roughness * roughness;\n",O+=" float reflectance = max(max(specularColor.r, specularColor.g), specularColor.b);\n",O+=" vec3 r90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0));\n",O+=" vec3 r0 = specularColor.rgb;\n",O+=" vec3 F = fresnelSchlick2(r0, r90, VdotH);\n",O+=" float G = smithVisibilityGGX(alpha, NdotL, NdotV);\n",O+=" float D = GGX(alpha, NdotH);\n",O+=" vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor);\n",O+=" vec3 specularContribution = F * G * D / (4.0 * NdotL * NdotV);\n",O+=" vec3 color = NdotL * lightColor * (diffuseContribution + specularContribution);\n",O+="#if defined(USE_IBL_LIGHTING) && !defined(DIFFUSE_IBL) && !defined(SPECULAR_IBL) \n",O+=" vec3 r = normalize(czm_inverseViewRotation * normalize(reflect(v, n)));\n",O+=" czm_ellipsoid ellipsoid = czm_getWgs84EllipsoidEC();\n",O+=" float vertexRadius = length(positionWC);\n",O+=" float horizonDotNadir = 1.0 - min(1.0, ellipsoid.radii.x / vertexRadius);\n",O+=" float reflectionDotNadir = dot(r, normalize(positionWC));\n",O+=" r.x = -r.x;\n",O+=" r = -normalize(czm_temeToPseudoFixed * r);\n",O+=" r.x = -r.x;\n",O+=" float inverseRoughness = 1.04 - roughness;\n",O+=" inverseRoughness *= inverseRoughness;\n",O+=" vec3 sceneSkyBox = textureCube(czm_environmentMap, r).rgb * inverseRoughness;\n",O+=" float atmosphereHeight = 0.05;\n",O+=" float blendRegionSize = 0.1 * ((1.0 - inverseRoughness) * 8.0 + 1.1 - horizonDotNadir);\n",O+=" float blendRegionOffset = roughness * -1.0;\n",O+=" float farAboveHorizon = clamp(horizonDotNadir - blendRegionSize * 0.5 + blendRegionOffset, 1.0e-10 - blendRegionSize, 0.99999);\n",O+=" float aroundHorizon = clamp(horizonDotNadir + blendRegionSize * 0.5, 1.0e-10 - blendRegionSize, 0.99999);\n",O+=" float farBelowHorizon = clamp(horizonDotNadir + blendRegionSize * 1.5, 1.0e-10 - blendRegionSize, 0.99999);\n",O+=" float smoothstepHeight = smoothstep(0.0, atmosphereHeight, horizonDotNadir);\n",O+=" vec3 belowHorizonColor = mix(vec3(0.1, 0.15, 0.25), vec3(0.4, 0.7, 0.9), smoothstepHeight);\n",O+=" vec3 nadirColor = belowHorizonColor * 0.5;\n",O+=" vec3 aboveHorizonColor = mix(vec3(0.9, 1.0, 1.2), belowHorizonColor, roughness * 0.5);\n",O+=" vec3 blueSkyColor = mix(vec3(0.18, 0.26, 0.48), aboveHorizonColor, reflectionDotNadir * inverseRoughness * 0.5 + 0.75);\n",O+=" vec3 zenithColor = mix(blueSkyColor, sceneSkyBox, smoothstepHeight);\n",O+=" vec3 blueSkyDiffuseColor = vec3(0.7, 0.85, 0.9);\n",O+=" float diffuseIrradianceFromEarth = (1.0 - horizonDotNadir) * (reflectionDotNadir * 0.25 + 0.75) * smoothstepHeight;\n",O+=" float diffuseIrradianceFromSky = (1.0 - smoothstepHeight) * (1.0 - (reflectionDotNadir * 0.25 + 0.25));\n",O+=" vec3 diffuseIrradiance = blueSkyDiffuseColor * clamp(diffuseIrradianceFromEarth + diffuseIrradianceFromSky, 0.0, 1.0);\n",O+=" float notDistantRough = (1.0 - horizonDotNadir * roughness * 0.8);\n",O+=" vec3 specularIrradiance = mix(zenithColor, aboveHorizonColor, smoothstep(farAboveHorizon, aroundHorizon, reflectionDotNadir) * notDistantRough);\n",O+=" specularIrradiance = mix(specularIrradiance, belowHorizonColor, smoothstep(aroundHorizon, farBelowHorizon, reflectionDotNadir) * inverseRoughness);\n",O+=" specularIrradiance = mix(specularIrradiance, nadirColor, smoothstep(farBelowHorizon, 1.0, reflectionDotNadir) * inverseRoughness);\n",O+="#ifdef USE_SUN_LUMINANCE \n",O+=" float LdotZenith = clamp(dot(normalize(czm_inverseViewRotation * l), normalize(positionWC * -1.0)), 0.001, 1.0);\n",O+=" float S = acos(LdotZenith);\n",O+=" float NdotZenith = clamp(dot(normalize(czm_inverseViewRotation * n), normalize(positionWC * -1.0)), 0.001, 1.0);\n",O+=" float gamma = acos(NdotL);\n",O+=" float numerator = ((0.91 + 10.0 * exp(-3.0 * gamma) + 0.45 * pow(NdotL, 2.0)) * (1.0 - exp(-0.32 / NdotZenith)));\n",O+=" float denominator = (0.91 + 10.0 * exp(-3.0 * S) + 0.45 * pow(LdotZenith,2.0)) * (1.0 - exp(-0.32));\n",O+=" float luminance = gltf_luminanceAtZenith * (numerator / denominator);\n",O+="#endif \n",O+=" vec2 brdfLut = texture2D(czm_brdfLut, vec2(NdotV, 1.0 - roughness)).rg;\n",O+=" vec3 IBLColor = (diffuseIrradiance * diffuseColor * gltf_iblFactor.x) + (specularIrradiance * SRGBtoLINEAR3(specularColor * brdfLut.x + brdfLut.y) * gltf_iblFactor.y);\n",O+="#ifdef USE_SUN_LUMINANCE \n",O+=" color += IBLColor * luminance;\n",O+="#else \n",O+=" color += IBLColor; \n",O+="#endif \n",O+="#elif defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) \n",O+=" mat3 fixedToENU = mat3(gltf_clippingPlanesMatrix[0][0], gltf_clippingPlanesMatrix[1][0], gltf_clippingPlanesMatrix[2][0], \n",O+=" gltf_clippingPlanesMatrix[0][1], gltf_clippingPlanesMatrix[1][1], gltf_clippingPlanesMatrix[2][1], \n",O+=" gltf_clippingPlanesMatrix[0][2], gltf_clippingPlanesMatrix[1][2], gltf_clippingPlanesMatrix[2][2]); \n",O+=" const mat3 yUpToZUp = mat3(-1.0, 0.0, 0.0, 0.0, 0.0, -1.0, 0.0, 1.0, 0.0); \n",O+=" vec3 cubeDir = normalize(yUpToZUp * fixedToENU * normalize(reflect(-v, n))); \n",O+="#ifdef DIFFUSE_IBL \n",O+="#ifdef CUSTOM_SPHERICAL_HARMONICS \n",O+=" vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, gltf_sphericalHarmonicCoefficients); \n",O+="#else \n",O+=" vec3 diffuseIrradiance = czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); \n",O+="#endif \n",O+="#else \n",O+=" vec3 diffuseIrradiance = vec3(0.0); \n",O+="#endif \n",O+="#ifdef SPECULAR_IBL \n",O+=" vec2 brdfLut = texture2D(czm_brdfLut, vec2(NdotV, roughness)).rg;\n",O+="#ifdef CUSTOM_SPECULAR_IBL \n",O+=" vec3 specularIBL = czm_sampleOctahedralProjection(gltf_specularMap, gltf_specularMapSize, cubeDir, roughness * gltf_maxSpecularLOD, gltf_maxSpecularLOD);\n",O+="#else \n",O+=" vec3 specularIBL = czm_sampleOctahedralProjection(czm_specularEnvironmentMaps, czm_specularEnvironmentMapSize, cubeDir, roughness * czm_specularEnvironmentMapsMaximumLOD, czm_specularEnvironmentMapsMaximumLOD);\n",O+="#endif \n",O+=" specularIBL *= F * brdfLut.x + brdfLut.y;\n",O+="#else \n",O+=" vec3 specularIBL = vec3(0.0); \n",O+="#endif \n",O+=" color += diffuseIrradiance * diffuseColor + specularColor * specularIBL;\n",O+="#endif \n"):O+=" vec3 color = baseColor;\n",W||(t(_.u_occlusionTexture)&&(O+=" color *= texture2D(u_occlusionTexture, "+pe+").r;\n"),t(_.u_emissiveTexture)?(O+=" vec3 emissive = SRGBtoLINEAR3(texture2D(u_emissiveTexture, "+fe+").rgb);\n",t(_.u_emissiveFactor)&&(O+=" emissive *= u_emissiveFactor;\n"),O+=" color += emissive;\n"):t(_.u_emissiveFactor)&&(O+=" color += u_emissiveFactor;\n")),O+=" color = LINEARtoSRGB(color);\n",t(j)?"MASK"===j?(O+=" if (baseColorWithAlpha.a < u_alphaCutoff) {\n",O+=" discard;\n",O+=" }\n",O+=" gl_FragColor = vec4(color, 1.0);\n"):O+="BLEND"===j?" gl_FragColor = vec4(color, baseColorWithAlpha.a);\n":" gl_FragColor = vec4(color, 1.0);\n":O+=" gl_FragColor = vec4(color, 1.0);\n",O+="}\n";var ve=o(A,{type:r.VERTEX_SHADER,extras:{_pipeline:{source:R,extension:".glsl"}}}),ye=o(A,{type:r.FRAGMENT_SHADER,extras:{_pipeline:{source:O,extension:".glsl"}}}),Ce=o(w,{fragmentShader:ye,vertexShader:ve});return o(E,{attributes:ie,program:Ce,uniforms:Y})}function f(e){if(-1!==e.indexOf("Offset"))return r.FLOAT_VEC2;if(-1!==e.indexOf("Rotation"))return r.FLOAT;if(-1!==e.indexOf("Scale"))return r.FLOAT_VEC2;if(-1!==e.indexOf("Texture"))return r.SAMPLER_2D;switch(e){case"u_baseColorFactor":return r.FLOAT_VEC4;case"u_metallicFactor":case"u_roughnessFactor":return r.FLOAT;case"u_emissiveFactor":return r.FLOAT_VEC3;case"u_diffuseFactor":return r.FLOAT_VEC4;case"u_specularFactor":return r.FLOAT_VEC3;case"u_glossinessFactor":return r.FLOAT}}var m=[0,0],_=[0],g=[1,1];return u}),define("Scene/Model",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/Check","../Core/clone","../Core/Color","../Core/combine","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/FeatureDetection","../Core/getAbsoluteUri","../Core/getMagic","../Core/getStringFromTypedArray","../Core/IndexDatatype","../Core/isArray","../Core/loadCRN","../Core/loadImageFromTypedArray","../Core/loadKTX","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/PixelFormat","../Core/PrimitiveType","../Core/Quaternion","../Core/Resource","../Core/Transforms","../Core/WebGLConstants","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/Sampler","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Renderer/VertexArray","../ThirdParty/GltfPipeline/addDefaults","../ThirdParty/GltfPipeline/addPipelineExtras","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/GltfPipeline/getAccessorByteStride","../ThirdParty/GltfPipeline/hasExtension","../ThirdParty/GltfPipeline/numberOfComponentsForType","../ThirdParty/GltfPipeline/parseGlb","../ThirdParty/GltfPipeline/removePipelineExtras","../ThirdParty/GltfPipeline/updateVersion","../ThirdParty/when","./Axis","./BlendingState","./ClippingPlaneCollection","./ColorBlendMode","./DracoLoader","./getClipAndStyleCode","./getClippingFunction","./HeightReference","./JobType","./ModelAnimationCache","./ModelAnimationCollection","./ModelLoadResources","./ModelMaterial","./ModelMesh","./ModelNode","./ModelUtility","./OctahedralProjectedCubeMap","./processModelMaterialsCommon","./processPbrMaterials","./SceneMode","./ShadowMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce,de,he,pe,fe,me,_e,ge,ve,ye,Ce,be,Se){"use strict";function Te(e,t){e._cachedGltf=t}function Ee(e){this._gltf=e.gltf,this.ready=e.ready,this.modelsToLoad=[],this.count=0}function Ae(r){r=c(r,c.EMPTY_OBJECT);var n=r.cacheKey;this._cacheKey=n,this._cachedGltf=void 0,this._releaseGltfJson=c(r.releaseGltfJson,!1);var o;if(d(n)&&d(wi[n])&&wi[n].ready)o=wi[n],++o.count;else{var a=r.gltf;if(d(a)){if(a instanceof ArrayBuffer&&(a=new Uint8Array(a)),a instanceof Uint8Array){o=new Ee({gltf:J(a),ready:!0})}else o=new Ee({gltf:r.gltf,ready:!0});o.count=1,d(n)&&(wi[n]=o)}}Te(this,o);var l=c(r.basePath,"");this._resource=M.createIfNeeded(l),this.show=c(r.show,!0),this.silhouetteColor=c(r.silhouetteColor,s.RED),this._silhouetteColor=new s,this._silhouetteColorPreviousAlpha=1,this._normalAttributeName=void 0,this.silhouetteSize=c(r.silhouetteSize,0),this.modelMatrix=x.clone(c(r.modelMatrix,x.IDENTITY)),this._modelMatrix=x.clone(this.modelMatrix),this._clampedModelMatrix=void 0,this.scale=c(r.scale,1),this._scale=this.scale,this.minimumPixelSize=c(r.minimumPixelSize,0),this._minimumPixelSize=this.minimumPixelSize,this.maximumScale=r.maximumScale,this._maximumScale=this.maximumScale,this.id=r.id,this._id=r.id,this.heightReference=c(r.heightReference,ue.NONE),this._heightReference=this.heightReference,this._heightChanged=!1,this._removeUpdateHeightCallback=void 0;var u=r.scene;this._scene=u,d(u)&&d(u.terrainProviderChanged)&&(this._terrainProviderChangedCallback=u.terrainProviderChanged.addEventListener(function(){this._heightChanged=!0},this)),this._pickObject=r.pickObject,this._allowPicking=c(r.allowPicking,!0),this._ready=!1,this._readyPromise=te.defer(),this.activeAnimations=new he(this),this.clampAnimations=c(r.clampAnimations,!0),this._defaultTexture=void 0,this._incrementallyLoadTextures=c(r.incrementallyLoadTextures,!0),this._asynchronous=c(r.asynchronous,!0),this.shadows=c(r.shadows,Se.ENABLED),this._shadows=this.shadows,this.color=c(r.color,s.WHITE),this._color=new s,this._colorPreviousAlpha=1,this.colorBlendMode=c(r.colorBlendMode,oe.HIGHLIGHT),this.colorBlendAmount=c(r.colorBlendAmount,.5),this._colorShadingEnabled=!1,this._clippingPlanes=void 0,this.clippingPlanes=r.clippingPlanes,this._clippingPlanesState=0,this.clippingPlanesOriginMatrix=void 0,this.debugShowBoundingVolume=c(r.debugShowBoundingVolume,!1),this._debugShowBoundingVolume=!1,this.debugWireframe=c(r.debugWireframe,!1),this._debugWireframe=!1,this._distanceDisplayCondition=r.distanceDisplayCondition,this._addBatchIdToGeneratedShaders=r.addBatchIdToGeneratedShaders, -this._precreatedAttributes=r.precreatedAttributes,this._vertexShaderLoaded=r.vertexShaderLoaded,this._fragmentShaderLoaded=r.fragmentShaderLoaded,this._uniformMapLoaded=r.uniformMapLoaded,this._pickIdLoaded=r.pickIdLoaded,this._ignoreCommands=c(r.ignoreCommands,!1),this._requestType=r.requestType,this._upAxis=c(r.upAxis,ie.Y),this._gltfForwardAxis=ie.Z,this._forwardAxis=r.forwardAxis,this.cull=c(r.cull,!0),this.opaquePass=c(r.opaquePass,B.OPAQUE),this._computedModelMatrix=new x,this._clippingPlaneModelViewMatrix=x.clone(x.IDENTITY),this._initialRadius=void 0,this._boundingSphere=void 0,this._scaledBoundingSphere=new e,this._state=Ei.NEEDS_LOAD,this._loadResources=void 0,this._mode=void 0,this._perNodeShowDirty=!1,this._cesiumAnimationsDirty=!1,this._dirty=!1,this._maxDirtyNumber=0,this._runtime={animations:void 0,articulationsByName:void 0,articulationsByStageKey:void 0,stagesByKey:void 0,rootNodes:void 0,nodes:void 0,nodesByName:void 0,skinnedNodes:void 0,meshesByName:void 0,materialsByName:void 0,materialsById:void 0},this._uniformMaps={},this._extensionsUsed=void 0,this._extensionsRequired=void 0,this._quantizedUniforms={},this._programPrimitives={},this._rendererResources={buffers:{},vertexArrays:{},programs:{},sourceShaders:{},silhouettePrograms:{},textures:{},samplers:{},renderStates:{}},this._cachedRendererResources=void 0,this._loadRendererResourcesFromCache=!1,this._dequantizeInShader=c(r.dequantizeInShader,!0),this._decodedData={},this._cachedGeometryByteLength=0,this._cachedTexturesByteLength=0,this._geometryByteLength=0,this._texturesByteLength=0,this._trianglesLength=0,this._sourceTechniques={},this._sourcePrograms={},this._quantizedVertexShaders={},this._nodeCommands=[],this._pickIds=[],this._rtcCenter=void 0,this._rtcCenterEye=void 0,this._rtcCenter3D=void 0,this._rtcCenter2D=void 0,this._sourceVersion=void 0,this._sourceKHRTechniquesWebGL=void 0,this._imageBasedLightingFactor=new t(1,1),t.clone(r.imageBasedLightingFactor,this._imageBasedLightingFactor),this._lightColor=i.clone(r.lightColor),this._luminanceAtZenith=void 0,this.luminanceAtZenith=c(r.luminanceAtZenith,.5),this._sphericalHarmonicCoefficients=r.sphericalHarmonicCoefficients,this._specularEnvironmentMaps=r.specularEnvironmentMaps,this._shouldUpdateSpecularMapAtlas=!0,this._specularEnvironmentMapAtlas=void 0,this._useDefaultSphericalHarmonics=!1,this._useDefaultSpecularMaps=!1,this._shouldRegenerateShaders=!1}function we(e){return e.stencilBuffer}function xe(e){return!s.equals(e.color,s.WHITE)||e.colorBlendMode!==oe.HIGHLIGHT}function Pe(e){var t=e._clippingPlanes;return d(t)&&t.enabled&&0!==t.length}function De(e){return"glTF"===v(e)}function Ie(e,t,i){return e._runtime[t][i]}function Me(e,t){var i,r=e.currentValue,n=Pi;switch(e.type){case"xRotate":i=w.fromRotationX(A.toRadians(r),Di),x.multiplyByMatrix3(t,i,t);break;case"yRotate":i=w.fromRotationY(A.toRadians(r),Di),x.multiplyByMatrix3(t,i,t);break;case"zRotate":i=w.fromRotationZ(A.toRadians(r),Di),x.multiplyByMatrix3(t,i,t);break;case"xTranslate":n.x=r,n.y=0,n.z=0,x.multiplyByTranslation(t,n,t);break;case"yTranslate":n.x=0,n.y=r,n.z=0,x.multiplyByTranslation(t,n,t);break;case"zTranslate":n.x=0,n.y=0,n.z=r,x.multiplyByTranslation(t,n,t);break;case"xScale":n.x=r,n.y=1,n.z=1,x.multiplyByScale(t,n,t);break;case"yScale":n.x=1,n.y=r,n.z=1,x.multiplyByScale(t,n,t);break;case"zScale":n.x=1,n.y=1,n.z=r,x.multiplyByScale(t,n,t);break;case"uniformScale":x.multiplyByUniformScale(t,r,t)}return t}function Re(e){var t=e.gltf,i=e._loadResources;X.buffer(t,function(e,t){i.buffers[t]=e.extras._pipeline.source})}function Oe(e,t){return function(i){var r=e._loadResources,n=new Uint8Array(i);--r.pendingBufferLoads,e.gltf.buffers[t].extras._pipeline.source=n}}function Le(e){var t=e.gltf.bufferViews,i=e._loadResources.vertexBuffersToCreate;X.bufferView(e.gltf,function(e,t){e.target===O.ARRAY_BUFFER&&i.enqueue(t)});var r=e._loadResources.indexBuffersToCreate,n={};X.accessor(e.gltf,function(e){var i=e.bufferView;if(d(i)){t[i].target!==O.ELEMENT_ARRAY_BUFFER||d(n[i])||(n[i]=!0,r.enqueue({id:i,componentType:e.componentType}))}})}function Ne(e){var t=e.gltf;if(K(t,"KHR_techniques_webgl")){var i=e._sourcePrograms,r=e._sourceTechniques,n=t.extensions.KHR_techniques_webgl.programs;X.technique(t,function(e,t){r[t]=a(e);var o=e.program;d(i[o])||(i[o]=a(n[o]))})}}function Fe(e,t,i){return function(r){var n=e._loadResources;n.shaders[i]={source:r,type:t,bufferView:void 0},--n.pendingShaderLoads,e._rendererResources.sourceShaders[i]=r}}function Be(e){var t=e.gltf,i=t.buffers,r=t.bufferViews,n=e._rendererResources.sourceShaders;X.shader(t,function(t,o){if(d(t.bufferView)){var a=t.bufferView,s=r[a],l=s.buffer,u=i[l],c=y(u.extras._pipeline.source,s.byteOffset,s.byteLength);n[o]=c}else if(d(t.extras._pipeline.source))n[o]=t.extras._pipeline.source;else{++e._loadResources.pendingShaderLoads;var h=e._resource.getDerivedResource({url:t.uri});h.fetchText().then(Fe(e,t.type,o)).otherwise(ge.getFailedLoadFunction(e,"shader",h.url))}})}function ze(e){var t=e._sourceTechniques;for(var i in t)if(t.hasOwnProperty(i)){var r=t[i];e._loadResources.programsToCreate.enqueue({programId:r.program,techniqueId:i})}}function ke(e){var t={},i={},r={};e._runtime.articulationsByName=t,e._runtime.articulationsByStageKey=i,e._runtime.stagesByKey=r;var n=e.gltf;if(K(n,"AGI_articulations")&&d(n.extensions)&&d(n.extensions.AGI_articulations)){var o=n.extensions.AGI_articulations.articulations;if(d(o))for(var s=o.length,l=0;l<s;++l){var u=a(o[l]);u.nodes=[],u.isDirty=!0,t[u.name]=u;for(var c=u.stages.length,h=0;h<c;++h){var p=u.stages[h];p.currentValue=p.initialValue;var f=u.name+" "+p.name;i[f]=u,r[f]=p}}}}function Ve(e,t){return function(i){var r=e._loadResources;--r.pendingTextureLoads,r.texturesToCreate.enqueue({id:t,image:i,bufferView:i.bufferView,width:i.width,height:i.height,internalFormat:i.internalFormat})}}function Ue(e,t,i){var r,n=e.gltf,o=n.images;X.texture(n,function(n,a){var s=n.source;d(n.extensions)&&d(n.extensions.EXT_texture_webp)&&i&&(s=n.extensions.EXT_texture_webp.source);var l=o[s],u=l.extras,c=l.bufferView,h=l.mimeType;if(r=l.uri,d(u)&&d(u.compressedImage3DTiles)){var p=u.compressedImage3DTiles.crunch,f=u.compressedImage3DTiles.s3tc,m=u.compressedImage3DTiles.pvrtc1,_=u.compressedImage3DTiles.etc1;t.s3tc&&d(p)?(h=p.mimeType,d(p.bufferView)?c=p.bufferView:r=p.uri):t.s3tc&&d(f)?(h=f.mimeType,d(f.bufferView)?c=f.bufferView:r=f.uri):t.pvrtc&&d(m)?(h=m.mimeType,d(m.bufferView)?c=m.bufferView:r=m.uri):t.etc1&&d(_)&&(h=_.mimeType,d(_.bufferView)?c=_.bufferView:r=_.uri)}if(d(c))e._loadResources.texturesToCreateFromBufferView.enqueue({id:a,image:void 0,bufferView:c,mimeType:h});else{++e._loadResources.pendingTextureLoads;var g,v=e._resource.getDerivedResource({url:r});g=Mi.test(r)?E(v):Ri.test(r)?S(v):v.fetchImage(),g.then(Ve(e,a,s)).otherwise(ge.getFailedLoadFunction(e,"image",v.url))}})}function Ge(e){var t={},i={},r=[],n=e._loadResources.skinnedNodesIds,o=e._runtime.articulationsByName;X.node(e.gltf,function(a,s){var l={matrix:void 0,translation:void 0,rotation:void 0,scale:void 0,computedShow:!0,transformToRoot:new x,computedMatrix:new x,dirtyNumber:0,commands:[],inverseBindMatrices:void 0,bindShapeMatrix:void 0,joints:[],computedJointMatrices:[],jointName:a.jointName,weights:[],children:[],parents:[],publicNode:void 0};if(l.publicNode=new _e(e,a,l,s,ge.getTransform(a)),t[s]=l,i[a.name]=l,d(a.skin)&&(n.push(s),r.push(l)),d(a.extensions)&&d(a.extensions.AGI_articulations)){var u=a.extensions.AGI_articulations.articulationName;if(d(u)){var c=x.clone(l.publicNode.originalMatrix,Oi),h=o[u];h.nodes.push(l.publicNode);for(var p=h.stages.length,f=0;f<p;++f){c=Me(h.stages[f],c)}l.publicNode.matrix=c}}}),e._runtime.nodes=t,e._runtime.nodesByName=i,e._runtime.skinnedNodes=r}function He(e){var t=e.gltf,i=e._sourceTechniques,r={},n={},o=e._uniformMaps;X.material(t,function(t,s){o[s]={uniformMap:void 0,values:void 0,jointMatrixUniformName:void 0,morphWeightsUniformName:void 0};var l=new fe(e,t,s);if(d(t.extensions)&&d(t.extensions.KHR_techniques_webgl)){var u=t.extensions.KHR_techniques_webgl.technique;l._technique=u,l._program=i[u].program,X.materialValue(t,function(e,t){d(l._values)||(l._values={}),l._values[t]=a(e)})}r[t.name]=l,n[s]=l}),e._runtime.materialsByName=r,e._runtime.materialsById=n}function We(e){var t={},i=e._runtime.materialsById;X.mesh(e.gltf,function(r,n){t[r.name]=new me(r,i,n),(d(e.extensionsUsed.WEB3D_quantized_attributes)||e._dequantizeInShader)&&X.meshPrimitive(r,function(t,i){var r=Xe(e,t),o=e._programPrimitives[r];d(o)||(o={},e._programPrimitives[r]=o),o[n+".primitive."+i]=t})}),e._runtime.meshesByName=t}function qe(e,t,i){var r=t._loadResources,n=t.gltf.bufferViews,o=n[e];d(o)||(o=r.createdBufferViews[e]);var a=L.createVertexBuffer({context:i,typedArray:r.getBuffer(o),usage:N.STATIC_DRAW});a.vertexArrayDestroyable=!1,t._rendererResources.buffers[e]=a,t._geometryByteLength+=a.sizeInBytes}function Ye(e,t,i,r){var n=i._loadResources,o=i.gltf.bufferViews,a=o[e];d(a)||(a=n.createdBufferViews[e]);var s=L.createIndexBuffer({context:r,typedArray:n.getBuffer(a),usage:N.STATIC_DRAW,indexDatatype:t});s.vertexArrayDestroyable=!1,i._rendererResources.buffers[e]=s,i._geometryByteLength+=s.sizeInBytes}function je(e,t){var i=e._loadResources;if(0===i.pendingBufferLoads){var r,n=t.context,o=i.vertexBuffersToCreate,a=i.indexBuffersToCreate;if(e.asynchronous){for(;o.length>0&&(Fi.set(o.peek(),e,n),t.jobScheduler.execute(Fi,ce.BUFFER));)o.dequeue();for(;a.length>0&&(r=a.peek(),Bi.set(r.id,r.componentType,e,n),t.jobScheduler.execute(Bi,ce.BUFFER));)a.dequeue()}else{for(;o.length>0;)qe(o.dequeue(),e,n);for(;a.length>0;)r=a.dequeue(),Ye(r.id,r.componentType,e,n)}}}function Xe(e,t){var i=e._runtime.materialsById[t.material];if(d(i))return i._program}function Qe(e,t,i){var r,n=i._programPrimitives[t];if(!d(n))return e;var o;for(o in n)if(n.hasOwnProperty(o)&&(r=n[o],Xe(i,r)===t))break;i._programPrimitives[t]=void 0;var a;if(i.extensionsUsed.WEB3D_quantized_attributes)a=ge.modifyShaderForQuantizedAttributes(i.gltf,r,e),i._quantizedUniforms[t]=a.uniforms;else{var s=i._decodedData[o];if(!d(s))return e;a=ge.modifyShaderForDracoQuantizedAttributes(i.gltf,r,e,s.attributes)}return a.shader}function Ke(e){return e=U.replaceMain(e,"gltf_blend_main"),e+="uniform vec4 gltf_color; \nuniform float gltf_colorBlend; \nvoid main() \n{ \n gltf_blend_main(); \n gl_FragColor.rgb = mix(gl_FragColor.rgb, gltf_color.rgb, gltf_colorBlend); \n float highlight = ceil(gltf_colorBlend); \n gl_FragColor.rgb *= mix(gltf_color.rgb, vec3(1.0), highlight); \n gl_FragColor.a *= gltf_color.a; \n} \n"}function Ze(e,t,i){return d(i)&&(e=i(e,t)),e}function Je(e,t,i){var r=e.programId,n=e.techniqueId,o=t._sourcePrograms[r],a=t._rendererResources.sourceShaders,s=a[o.vertexShader],l=a[o.fragmentShader],u=t._quantizedVertexShaders,c=t._toClipCoordinatesGLSL[r];if(t.extensionsUsed.WEB3D_quantized_attributes||t._dequantizeInShader){var h=u[r];d(h)||(h=Qe(s,r,t),u[r]=h),s=h}var p=Ze(s,r,t._vertexShaderLoaded),f=Ze(l,r,t._fragmentShaderLoaded);_.isInternetExplorer()||(p=ge.modifyVertexShaderForLogDepth(p,c),f=ge.modifyFragmentShaderForLogDepth(f)),d(t._uniformMapLoaded)||(f="uniform vec4 czm_pickColor;\n"+f);var m=t._imageBasedLightingFactor.x>0||t._imageBasedLightingFactor.y>0;if(m&&(f="#define USE_IBL_LIGHTING \n\n"+f),d(t._lightColor)&&(f="#define USE_CUSTOM_LIGHT_COLOR \n\n"+f),("2.0"!==t._sourceVersion||t._sourceKHRTechniquesWebGL)&&(f=U.replaceMain(f,"non_gamma_corrected_main"),f+="\nvoid main() { \n non_gamma_corrected_main(); \n gl_FragColor = czm_gammaCorrect(gl_FragColor); \n} \n"),ve.isSupported(i)){var g=d(t._sphericalHarmonicCoefficients)||t._useDefaultSphericalHarmonics,v=d(t._specularEnvironmentMapAtlas)&&t._specularEnvironmentMapAtlas.ready||t._useDefaultSpecularMaps;(g||v||m)&&(f="uniform mat4 gltf_clippingPlanesMatrix; \n"+f),d(t._sphericalHarmonicCoefficients)?f="#define DIFFUSE_IBL \n#define CUSTOM_SPHERICAL_HARMONICS \nuniform vec3 gltf_sphericalHarmonicCoefficients[9]; \n"+f:t._useDefaultSphericalHarmonics&&(f="#define DIFFUSE_IBL \n"+f),d(t._specularEnvironmentMapAtlas)&&t._specularEnvironmentMapAtlas.ready?f="#define SPECULAR_IBL \n#define CUSTOM_SPECULAR_IBL \nuniform sampler2D gltf_specularMap; \nuniform vec2 gltf_specularMapSize; \nuniform float gltf_maxSpecularLOD; \n"+f:t._useDefaultSpecularMaps&&(f="#define SPECULAR_IBL \n"+f)}d(t._luminanceAtZenith)&&(f="#define USE_SUN_LUMINANCE \nuniform float gltf_luminanceAtZenith;\n"+f),et(r,n,f,p,t,i)}function $e(e,t,i){var r=e.programId,n=e.techniqueId,o=t._sourcePrograms[r],a=t._rendererResources.sourceShaders,s=t._quantizedVertexShaders,l=t._toClipCoordinatesGLSL[r],u=t.clippingPlanes,c=Pe(t),h=a[o.vertexShader],p=a[o.fragmentShader];(t.extensionsUsed.WEB3D_quantized_attributes||t._dequantizeInShader)&&(h=s[r]);var f=p;xe(t)&&(f=Ae._modifyShaderForColor(f)),c&&(f=ui(f,u,i));var m=Ze(h,r,t._vertexShaderLoaded),g=Ze(f,r,t._fragmentShaderLoaded);_.isInternetExplorer()||(m=ge.modifyVertexShaderForLogDepth(m,l),g=ge.modifyFragmentShaderForLogDepth(g)),d(t._uniformMapLoaded)||(g="uniform vec4 czm_pickColor;\n"+g);var v=t._imageBasedLightingFactor.x>0||t._imageBasedLightingFactor.y>0;if(v&&(g="#define USE_IBL_LIGHTING \n\n"+g),d(t._lightColor)&&(g="#define USE_CUSTOM_LIGHT_COLOR \n\n"+g),("2.0"!==t._sourceVersion||t._sourceKHRTechniquesWebGL)&&(g=U.replaceMain(g,"non_gamma_corrected_main"),g+="\nvoid main() { \n non_gamma_corrected_main(); \n gl_FragColor = czm_gammaCorrect(gl_FragColor); \n} \n"),ve.isSupported(i)){var y=d(t._sphericalHarmonicCoefficients)||t._useDefaultSphericalHarmonics,C=d(t._specularEnvironmentMapAtlas)&&t._specularEnvironmentMapAtlas.ready||t._useDefaultSpecularMaps;!c&&(y||C||v)&&(g="uniform mat4 gltf_clippingPlanesMatrix; \n"+g),d(t._sphericalHarmonicCoefficients)?g="#define DIFFUSE_IBL \n#define CUSTOM_SPHERICAL_HARMONICS \nuniform vec3 gltf_sphericalHarmonicCoefficients[9]; \n"+g:t._useDefaultSphericalHarmonics&&(g="#define DIFFUSE_IBL \n"+g),d(t._specularEnvironmentMapAtlas)&&t._specularEnvironmentMapAtlas.ready?g="#define SPECULAR_IBL \n#define CUSTOM_SPECULAR_IBL \nuniform sampler2D gltf_specularMap; \nuniform vec2 gltf_specularMapSize; \nuniform float gltf_maxSpecularLOD; \n"+g:t._useDefaultSpecularMaps&&(g="#define SPECULAR_IBL \n"+g)}d(t._luminanceAtZenith)&&(g="#define USE_SUN_LUMINANCE \nuniform float gltf_luminanceAtZenith;\n"+g),et(r,n,g,m,t,i)}function et(e,t,i,r,n,o){var a=n._sourceTechniques[t],s=ge.createAttributeLocations(a,n._precreatedAttributes);n._rendererResources.programs[e]=V.fromCache({context:o,vertexShaderSource:r,fragmentShaderSource:i,attributeLocations:s})}function tt(e,t){var i=e._loadResources,r=i.programsToCreate;if(0===i.pendingShaderLoads&&0===i.pendingBufferLoads){var n=t.context;if(e.asynchronous)for(;r.length>0&&(ki.set(r.peek(),e,n),t.jobScheduler.execute(ki,ce.PROGRAM));)r.dequeue();else for(;r.length>0;)Je(r.dequeue(),e,n)}}function it(e,t){return function(i){e.texturesToCreate.enqueue({id:t.id,image:i,bufferView:void 0}),--e.pendingBufferViewToImage}}function rt(e){var t=e._loadResources;if(0===t.pendingBufferLoads)for(;t.texturesToCreateFromBufferView.length>0;){var i=t.texturesToCreateFromBufferView.dequeue(),r=e.gltf,n=r.bufferViews[i.bufferView],o=r.textures[i.id].source,a=ge.getFailedLoadFunction(e,"image","id: "+i.id+", bufferView: "+i.bufferView);if("image/ktx"===i.mimeType)E(t.getBuffer(n)).then(Ve(e,i.id,o)).otherwise(a),++e._loadResources.pendingTextureLoads;else if("image/crn"===i.mimeType)S(t.getBuffer(n)).then(Ve(e,i.id,o)).otherwise(a),++e._loadResources.pendingTextureLoads;else{var s=it(t,i);T({uint8Array:t.getBuffer(n),format:i.mimeType,flipY:!1}).then(s).otherwise(a),++t.pendingBufferViewToImage}}}function nt(e){var t=e._loadResources;if(t.createSamplers){t.createSamplers=!1;var i=e._rendererResources.samplers;X.sampler(e.gltf,function(e,t){i[t]=new k({wrapS:e.wrapS,wrapT:e.wrapT,minificationFilter:e.minFilter,magnificationFilter:e.magFilter})})}}function ot(e,t,i){var r=t.gltf.textures,n=r[e.id],o=t._rendererResources.samplers,a=o[n.sampler];d(a)||(a=new k({wrapS:W.REPEAT,wrapT:W.REPEAT}));for(var s=!1,l=t.gltf.materials,u=l.length,c=0;c<u;++c){var h=l[c];if(d(h.extensions)&&d(h.extensions.KHR_techniques_webgl)){var p=h.extensions.KHR_techniques_webgl.values;for(var f in p)if(p.hasOwnProperty(f)&&-1!==f.indexOf("Texture")){var m=p[f];if(m.index===e.id&&d(m.extensions)&&d(m.extensions.KHR_texture_transform)){s=!0;break}}}if(s)break}var _=a.wrapS,g=a.wrapT,v=a.minificationFilter;s&&v!==H.LINEAR&&v!==H.NEAREST&&(v=v===H.NEAREST_MIPMAP_NEAREST||v===H.NEAREST_MIPMAP_LINEAR?H.NEAREST:H.LINEAR,a=new k({wrapS:a.wrapS,wrapT:a.wrapT,textureMinificationFilter:v,textureMagnificationFilter:a.magnificationFilter}));var y,C=e.internalFormat,b=!(d(C)&&P.isCompressedFormat(C)||v!==H.NEAREST_MIPMAP_NEAREST&&v!==H.NEAREST_MIPMAP_LINEAR&&v!==H.LINEAR_MIPMAP_NEAREST&&v!==H.LINEAR_MIPMAP_LINEAR),S=b||_===W.REPEAT||_===W.MIRRORED_REPEAT||g===W.REPEAT||g===W.MIRRORED_REPEAT,T=e.image;if(d(C))y=new G({context:i,source:{arrayBufferView:e.bufferView},width:e.width,height:e.height,pixelFormat:C,sampler:a});else if(d(T)){var E=!A.isPowerOfTwo(T.width)||!A.isPowerOfTwo(T.height);if(S&&E){var w=document.createElement("canvas");w.width=A.nextPowerOfTwo(T.width),w.height=A.nextPowerOfTwo(T.height);var x=w.getContext("2d");x.drawImage(T,0,0,T.width,T.height,0,0,w.width,w.height),T=w}y=new G({context:i,source:T,pixelFormat:n.internalFormat,pixelDatatype:n.type,sampler:a,flipY:!1}),b&&y.generateMipmap()}d(y)&&(t._rendererResources.textures[e.id]=y,t._texturesByteLength+=y.sizeInBytes)}function at(e,t){var i=t.context,r=e._loadResources.texturesToCreate;if(e.asynchronous)for(;r.length>0&&(Ui.set(r.peek(),e,i),t.jobScheduler.execute(Ui,ce.TEXTURE));)r.dequeue();else for(;r.length>0;)ot(r.dequeue(),e,i)}function st(e,t){var i,r,n=e._sourceTechniques,o={},a=e._runtime.materialsById[t.material];if(!d(a))return o;var s=n[a._technique];if(!d(s))return o;var l=s.attributes,u=e._rendererResources.programs[s.program],c=u.vertexAttributes,h=u._attributeLocations;for(i in c)if(c.hasOwnProperty(i)){var p=l[i];d(p)&&(r=h[i],o[p.semantic]=r)}var f=e._precreatedAttributes;if(d(f))for(i in f)f.hasOwnProperty(i)&&(r=h[i],o[i]=r);return o}function lt(e,t){for(var i=e.length,r={},n=0;n<i;++n)for(var o=[e[n]];o.length>0;){var a=o.pop(),s=t[a];d(s)&&(r[a]=a);var l=s.children;if(d(l))for(var u=l.length,c=0;c<u;++c)o.push(l[c])}return r}function ut(e,t){for(var i=e.gltf,r=i.skins,n=i.nodes,o=e._runtime.nodes,a=e._loadResources.skinnedNodesIds,s=a.length,l=0;l<s;++l){var u=a[l],c=o[u],h=n[u],p=t[h.skin];c.inverseBindMatrices=p.inverseBindMatrices,c.bindShapeMatrix=p.bindShapeMatrix;var f=[],m=r[h.skin];d(m.skeleton)&&f.push(m.skeleton);for(var _=lt(f,n),g=r[h.skin].joints,v=g.length,y=0;y<v;++y){var C=g[y],b=_[C],S=o[b];c.joints.push(S)}}}function ct(e){var t=e._loadResources;if(0===t.pendingBufferLoads&&t.createSkins){t.createSkins=!1;var i=e.gltf,r=i.accessors,n={};X.skin(i,function(t,i){var o,a=r[t.inverseBindMatrices];x.equals(t.bindShapeMatrix,x.IDENTITY)||(o=x.clone(t.bindShapeMatrix)),n[i]={inverseBindMatrices:de.getSkinInverseBindMatrices(e,a),bindShapeMatrix:o}}),ut(e,n)}}function dt(e,t,i,r){return function(n){d(r)&&(n=e.clampAnimations?r.clampTime(n):r.wrapTime(n),t[i]=r.evaluate(n,t[i]),t.dirtyNumber=e._maxDirtyNumber)}}function ht(e){var t=e._loadResources;if(t.finishedPendingBufferLoads()&&t.createRuntimeAnimations){t.createRuntimeAnimations=!1,e._runtime.animations=[];var i=e._runtime.nodes,r=e.gltf.accessors;X.animation(e.gltf,function(t,n){for(var o=t.channels,a=t.samplers,s=Number.MAX_VALUE,l=-Number.MAX_VALUE,u=o.length,c=new Array(u),d=0;d<u;++d){var h=o[d],p=h.target,f=p.path,m=a[h.sampler],_=de.getAnimationParameterValues(e,r[m.input]),g=de.getAnimationParameterValues(e,r[m.output]);s=Math.min(s,_[0]),l=Math.max(l,_[_.length-1]);var v=de.getAnimationSpline(e,n,t,h.sampler,m,_,f,g);c[d]=dt(e,i[p.node],p.path,v)}e._runtime.animations[n]={name:t.name,startTime:s,stopTime:l,channelEvaluators:c}})}}function pt(e,t){var i=e._loadResources;if(i.finishedBuffersCreation()&&i.finishedProgramCreation()&&i.createVertexArrays){i.createVertexArrays=!1;var r=e._rendererResources.buffers,n=e._rendererResources.vertexArrays,o=e.gltf,a=o.accessors;X.mesh(o,function(i,s){X.meshPrimitive(i,function(i,l){var u,c=[],h=st(e,i),p=e._decodedData[s+".primitive."+l];X.meshPrimitiveAttribute(i,function(e,t){if(u=h[t],d(u)){if(d(p)){var i=p.attributes;if(i.hasOwnProperty(t)){var n=i[t];return void c.push({index:u,vertexBuffer:r[n.bufferView],componentsPerAttribute:n.componentsPerAttribute,componentDatatype:n.componentDatatype,normalize:n.normalized,offsetInBytes:n.byteOffset,strideInBytes:n.byteStride})}}var s=a[e],l=d(s.normalized)&&s.normalized;c.push({index:u,vertexBuffer:r[s.bufferView],componentsPerAttribute:Z(s.type),componentDatatype:s.componentType,normalize:l,offsetInBytes:s.byteOffset,strideInBytes:Q(o,s)})}});var f,m,_=e._precreatedAttributes;if(d(_))for(m in _)_.hasOwnProperty(m)&&(u=h[m],d(u)&&(f=_[m],f.index=u,c.push(f)));var g;if(d(i.indices)){var v=a[i.indices],y=v.bufferView;d(p)&&(y=p.bufferView),g=r[y]}n[s+".primitive."+l]=new q({context:t,attributes:c,indexBuffer:g})})})}}function ft(e){var t=e._loadResources;t.createRenderStates&&(t.createRenderStates=!1,X.material(e.gltf,function(t,i){mt(e,t,i)}))}function mt(e,t,i){var r=e._rendererResources.renderStates,n=[O.FUNC_ADD,O.FUNC_ADD],o=[O.ONE,O.ONE_MINUS_SRC_ALPHA,O.ONE,O.ONE_MINUS_SRC_ALPHA];d(t.extensions)&&d(t.extensions.KHR_blend)&&(n=t.extensions.KHR_blend.blendEquation,o=t.extensions.KHR_blend.blendFactors);var a=!t.doubleSided,s="BLEND"===t.alphaMode;r[i]=z.fromCache({cull:{enabled:a},depthTest:{enabled:!0},depthMask:!s,blending:{enabled:s,equationRgb:n[0],equationAlpha:n[1],functionSourceRgb:o[0],functionDestinationRgb:o[1],functionSourceAlpha:o[2],functionDestinationAlpha:o[3]}})}function _t(e,t,i,r){var n=t._runtime.nodes[e];return Gi[i](r,t,n)}function gt(e,t,i,r,n,o,a){var s,l,u={},h={};return X.techniqueUniform(i,function(i,p){var f;if(d(r)&&d(r[p]))f=ge.createUniformFunction(i.type,r[p],o,a),u[p]=f.func,h[p]=f;else if(d(i.node))u[p]=_t(i.node,e,i.semantic,n.uniformState);else if(d(i.semantic))if("JOINTMATRIX"===i.semantic)s=p;else if("MORPHWEIGHTS"===i.semantic)l=p;else if("ALPHACUTOFF"===i.semantic){var m=t.alphaMode;if(d(m)&&"MASK"===m){var _=c(t.alphaCutoff,.5);f=ge.createUniformFunction(i.type,_,o,a),u[p]=f.func,h[p]=f}}else u[p]=ge.getGltfSemanticUniforms()[i.semantic](n.uniformState,e);else if(d(i.value)){var g=ge.createUniformFunction(i.type,i.value,o,a);u[p]=g.func,h[p]=g}}),{map:u,values:h,jointMatrixUniformName:s,morphWeightsUniformName:l}}function vt(e,t){var i=e._loadResources;if(i.finishedProgramCreation()&&i.createUniformMaps){i.createUniformMaps=!1;var r=e.gltf,n=e._sourceTechniques,o=e._uniformMaps,a=e._rendererResources.textures,s=e._defaultTexture;X.material(r,function(i,r){var l=e._runtime.materialsById[r],u=n[l._technique],c=l._values,d=gt(e,i,u,c,t,a,s),h=o[r];h.uniformMap=d.map,h.values=d.values,h.jointMatrixUniformName=d.jointMatrixUniformName,h.morphWeightsUniformName=d.morphWeightsUniformName})}}function yt(e){return ge.createUniformsForDracoQuantizedAttributes(e.attributes)}function Ct(e,t){var i=Xe(e,t),r=e._quantizedUniforms[i];return ge.createUniformsForQuantizedAttributes(e.gltf,t,r)}function bt(e){return function(){return e}}function St(e){return function(){return e.computedJointMatrices}}function Tt(e){return function(){return e.weights}}function Et(e){return function(){return e.silhouetteColor}}function At(e){return function(){return e.silhouetteSize}}function wt(e){return function(){return e.color}}function xt(e){return function(){var t=e.clippingPlanes;if(!d(t)&&!d(e._sphericalHarmonicCoefficients)&&!d(e._specularEnvironmentMaps))return x.IDENTITY;var i=d(t)?t.modelMatrix:x.IDENTITY;return x.multiply(e._clippingPlaneModelViewMatrix,i,Hi)}}function Pt(e){return function(){var t=e.clippingPlanes;return d(t)&&t.enabled?t.texture:e._defaultTexture}}function Dt(e){return function(){var t=e.clippingPlanes;if(!d(t))return s.WHITE.withAlpha(0);var i=s.clone(t.edgeColor);return i.alpha=t.edgeWidth,i}}function It(e){return function(){return oe.getColorBlend(e.colorBlendMode,e.colorBlendAmount)}}function Mt(e){return function(){return e._imageBasedLightingFactor}}function Rt(e){return function(){return e._lightColor}}function Ot(e){return function(){return e.luminanceAtZenith}}function Lt(e){return function(){return e._sphericalHarmonicCoefficients}}function Nt(e){return function(){return e._specularEnvironmentMapAtlas.texture}}function Ft(e){return function(){return e._specularEnvironmentMapAtlas.texture.dimensions}}function Bt(e){return function(){return e._specularEnvironmentMapAtlas.maximumMipmapLevel}}function zt(e,t){switch(e.mode){case D.TRIANGLES:return t/3;case D.TRIANGLE_STRIP:case D.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function kt(t,r,n,o,a){for(var s=t._nodeCommands,u=t._pickIds,c=t.allowPicking,h=t._runtime.meshesByName,p=t._rendererResources,f=p.vertexArrays,m=p.programs,_=p.renderStates,g=t._uniformMaps,v=t.gltf,y=v.accessors,b=v.meshes,S=r.mesh,T=b[S],E=T.primitives,A=E.length,w=0;w<A;++w){var P,D=E[w],I=y[D.indices],M=t._runtime.materialsById[D.material],R=M._program,O=t._decodedData[S+".primitive."+w],L=D.attributes.POSITION;if(d(L)){var N=ge.getAccessorMinMax(v,L);P=e.fromCornerPoints(i.fromArray(N.min),i.fromArray(N.max))}var z,k,V=f[S+".primitive."+w];if(d(O))k=O.numberOfIndices,z=0;else if(d(I))k=I.count,z=I.byteOffset/C.getSizeInBytes(I.componentType);else{var U=y[D.attributes.POSITION];k=U.count,z=0}t._trianglesLength+=zt(D,k);var G=g[D.material],H=G.uniformMap;if(d(G.jointMatrixUniformName)){var W={};W[G.jointMatrixUniformName]=St(n),H=l(H,W)}if(d(G.morphWeightsUniformName)){var q={};q[G.morphWeightsUniformName]=Tt(n),H=l(H,q)}H=l(H,{gltf_color:wt(t),gltf_colorBlend:It(t),gltf_clippingPlanes:Pt(t),gltf_clippingPlanesEdgeStyle:Dt(t),gltf_clippingPlanesMatrix:xt(t),gltf_iblFactor:Mt(t),gltf_lightColor:Rt(t),gltf_sphericalHarmonicCoefficients:Lt(t),gltf_specularMap:Nt(t),gltf_specularMapSize:Ft(t),gltf_maxSpecularLOD:Bt(t),gltf_luminanceAtZenith:Ot(t)}),d(t._uniformMapLoaded)&&(H=t._uniformMapLoaded(H,R,n));var Y={};t.extensionsUsed.WEB3D_quantized_attributes?Y=Ct(t,D):t._dequantizeInShader&&d(O)&&(Y=yt(O)),H=l(H,Y);var j=_[D.material],X=j.blending.enabled,Q=t._pickObject;d(Q)||(Q={primitive:t,id:t.id,node:n.publicNode,mesh:h[T.name]});var K,Z=Se.castShadows(t._shadows),J=Se.receiveShadows(t._shadows);if(c&&!d(t._uniformMapLoaded)){K=o.createPickId(Q),u.push(K);var $={czm_pickColor:bt(K.color)};H=l(H,$)}c&&(K=d(t._pickIdLoaded)&&d(t._uniformMapLoaded)?t._pickIdLoaded():"czm_pickColor");var ee,te=new F({boundingVolume:new e,cull:t.cull,modelMatrix:new x,primitiveType:D.mode,vertexArray:V,count:k,offset:z,shaderProgram:m[R],castShadows:Z,receiveShadows:J,uniformMap:H,renderState:j,owner:Q,pass:X?B.TRANSLUCENT:t.opaquePass,pickId:K});a||(ee=F.shallowClone(te),ee.boundingVolume=new e,ee.modelMatrix=new x);var ie={show:!0,boundingSphere:P,command:te,command2D:ee,silhouetteModelCommand:void 0,silhouetteModelCommand2D:void 0,silhouetteColorCommand:void 0,silhouetteColorCommand2D:void 0,translucentCommand:void 0,translucentCommand2D:void 0,programId:R};n.commands.push(ie),s.push(ie)}}function Vt(e,t,r){var n=e._loadResources;if(n.finishedEverythingButTextureCreation()&&n.createRuntimeNodes){n.createRuntimeNodes=!1;for(var o=[],a=e._runtime.nodes,s=e.gltf,l=s.nodes,u=s.skins,c=s.scenes[s.scene],h=c.nodes,p=h.length,f=[],m={},_=0;_<p;++_){f.push({parentRuntimeNode:void 0,gltfNode:l[h[_]],id:h[_]});for(var g=[];f.length>0;){var v=f.pop();m[v.id]=!0;var y=v.parentRuntimeNode,C=v.gltfNode,b=a[v.id];if(0===b.parents.length)if(d(C.matrix))b.matrix=x.fromColumnMajorArray(C.matrix);else{var S=C.rotation;b.translation=i.fromArray(C.translation),b.rotation=I.unpack(S),b.scale=i.fromArray(C.scale)}d(y)?(y.children.push(b),b.parents.push(y)):o.push(b),d(C.mesh)&&kt(e,C,b,t,r);var T=C.children;if(d(T))for(var E=T.length,A=0;A<E;A++){var w=T[A];m[w]||f.push({parentRuntimeNode:b,gltfNode:l[w],id:T[A]})}var P=C.skin;if(d(P)&&g.push(u[P].skeleton),0===f.length)for(var D=0;D<g.length;D++){var M=g[D];m[M]||f.push({parentRuntimeNode:void 0,gltfNode:l[M],id:M})}}}e._runtime.rootNodes=o,e._runtime.nodes=a}}function Ut(e){var t=0;for(var i in e)e.hasOwnProperty(i)&&(t+=e[i].sizeInBytes);return t}function Gt(e){var t=0;for(var i in e)e.hasOwnProperty(i)&&(t+=e[i].sizeInBytes);return t}function Ht(e,t){var i=t.context,r=t.scene3DOnly,n=e._quantizedVertexShaders,o=e._toClipCoordinatesGLSL={},a=e._sourceTechniques,s=e._sourcePrograms,l=e._rendererResources,u=l.sourceShaders;e._loadRendererResourcesFromCache&&(u=l.sourceShaders=e._cachedRendererResources.sourceShaders);for(var c in a)if(a.hasOwnProperty(c)){var h=a[c].program,p=s[h],f=u[p.vertexShader];if(ge.checkSupportedGlExtensions(p.glExtensions,i),e.extensionsUsed.WEB3D_quantized_attributes||e._dequantizeInShader){var m=n[h];d(m)||(m=Qe(f,h,e),n[h]=m),f=m}f=Ze(f,h,e._vertexShaderLoaded),o[h]=ge.toClipCoordinatesGLSL(e.gltf,f)}if(e._loadRendererResourcesFromCache){var _=e._cachedRendererResources;l.buffers=_.buffers,l.vertexArrays=_.vertexArrays,l.programs=_.programs,l.silhouettePrograms=_.silhouettePrograms,l.textures=_.textures,l.samplers=_.samplers,l.renderStates=_.renderStates,d(e._precreatedAttributes)&&pt(e,i),e._cachedGeometryByteLength+=Ut(_.buffers),e._cachedTexturesByteLength+=Gt(_.textures)}else je(e,t),tt(e,t),nt(e,i),rt(e),at(e,t);ct(e),ht(e),e._loadRendererResourcesFromCache||(pt(e,i),ft(e)),vt(e,i),Vt(e,i,r)}function Wt(e,t){var i=e.publicNode,r=i.matrix;i.useMatrix&&d(r)?x.clone(r,t):d(e.matrix)?x.clone(e.matrix,t):(x.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t),i.setMatrix(t))}function qt(t,n,o,a){var s=t._maxDirtyNumber,l=t._runtime.rootNodes,u=l.length,c=Wi,h=t._computedModelMatrix;if(t._mode!==be.SCENE3D&&!t._ignoreCommands){var p=x.getColumn(h,3,qi);if(r.equals(p,r.UNIT_W)){var f=t.boundingSphere.center,m=R.wgs84To2DModelMatrix(a,f,Yi);h=x.multiply(m,h,Yi),d(t._rtcCenter)&&(x.setTranslation(h,r.UNIT_W,h),t._rtcCenter=t._rtcCenter2D)}else h=R.basisTo2D(a,h,Yi),t._rtcCenter=t._rtcCenter3D}for(var _=0;_<u;++_){var g=l[_];for(Wt(g,g.transformToRoot),c.push(g);c.length>0;){g=c.pop();var v=g.transformToRoot,y=g.commands;if(g.dirtyNumber===s||n||o){var C=x.multiplyTransformation(h,v,g.computedMatrix),b=y.length;if(b>0)for(var S=0;S<b;++S){var T=y[S],E=T.command;x.clone(C,E.modelMatrix),e.transform(T.boundingSphere,E.modelMatrix,E.boundingVolume),d(t._rtcCenter)&&i.add(t._rtcCenter,E.boundingVolume.center,E.boundingVolume.center),E=T.command2D,d(E)&&t._mode===be.SCENE2D&&(x.clone(C,E.modelMatrix),E.modelMatrix[13]-=2*A.sign(E.modelMatrix[13])*A.PI*a.ellipsoid.maximumRadius,e.transform(T.boundingSphere,E.modelMatrix,E.boundingVolume))}}var w=g.children;if(d(w))for(var P=w.length,D=0;D<P;++D){var I=w[D];I.dirtyNumber=Math.max(I.dirtyNumber,g.dirtyNumber),(I.dirtyNumber===s||o)&&(Wt(I,I.transformToRoot),x.multiplyTransformation(v,I.transformToRoot,I.transformToRoot)),c.push(I)}}}++t._maxDirtyNumber}function Yt(e){for(var t=e._runtime.skinnedNodes,i=t.length,r=0;r<i;++r){var n=t[r];ji=x.inverseTransformation(n.transformToRoot,ji);for(var o=n.computedJointMatrices,a=n.joints,s=n.bindShapeMatrix,l=n.inverseBindMatrices,u=l.length,c=0;c<u;++c)d(o[c])||(o[c]=new x),o[c]=x.multiplyTransformation(ji,a[c].transformToRoot,o[c]),o[c]=x.multiplyTransformation(o[c],l[c],o[c]),d(s)&&(o[c]=x.multiplyTransformation(o[c],s,o[c]))}}function jt(e){for(var t=e._runtime.rootNodes,i=t.length,r=Wi,n=0;n<i;++n){var o=t[n];for(o.computedShow=o.publicNode.show,r.push(o);r.length>0;){o=r.pop();for(var a=o.computedShow,s=o.commands,l=s.length,u=0;u<l;++u)s[u].show=a -;var c=o.children;if(d(c))for(var h=c.length,p=0;p<h;++p){var f=c[p];f.computedShow=a&&f.publicNode.show,r.push(f)}}}}function Xt(e,t){var i=e.id;if(e._id!==i){e._id=i;for(var r=e._pickIds,n=r.length,o=0;o<n;++o)r[o].object.id=i}}function Qt(e){if(e._debugWireframe!==e.debugWireframe){e._debugWireframe=e.debugWireframe;for(var t=e.debugWireframe?D.LINES:D.TRIANGLES,i=e._nodeCommands,r=i.length,n=0;n<r;++n)i[n].command.primitiveType=t}}function Kt(e){if(e.debugShowBoundingVolume!==e._debugShowBoundingVolume){e._debugShowBoundingVolume=e.debugShowBoundingVolume;for(var t=e.debugShowBoundingVolume,i=e._nodeCommands,r=i.length,n=0;n<r;++n)i[n].command.debugShowBoundingVolume=t}}function Zt(e){if(e.shadows!==e._shadows){e._shadows=e.shadows;for(var t=Se.castShadows(e.shadows),i=Se.receiveShadows(e.shadows),r=e._nodeCommands,n=r.length,o=0;o<n;o++){var a=r[o];a.command.castShadows=t,a.command.receiveShadows=i}}}function Jt(e){var t=a(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=re.ALPHA_BLEND,z.fromCache(t)}function $t(e){var t=F.shallowClone(e);return t.pass=B.TRANSLUCENT,t.renderState=Jt(e.renderState),t}function ei(e,t,i){var r=t.scene3DOnly,n=e.color.alpha;if(n>0&&n<1){var o=e._nodeCommands,a=o.length;if(!d(o[0].translucentCommand)||i)for(var s=0;s<a;++s){var l=o[s],u=l.command;if(l.translucentCommand=$t(u),!r){var c=l.command2D;l.translucentCommand2D=$t(c)}}}}function ti(e,t){var i=e._rendererResources.programs;for(var r in i)if(i.hasOwnProperty(r)&&i[r]===t)return r}function ii(e,t,i){var r=t.vertexShaderSource.sources[0],n=t._attributeLocations,o=e._normalAttributeName;r=U.replaceMain(r,"gltf_silhouette_main"),r+="uniform float gltf_silhouetteSize; \nvoid main() \n{ \n gltf_silhouette_main(); \n vec3 n = normalize(czm_normal3D * "+o+"); \n n.x *= czm_projection[0][0]; \n n.y *= czm_projection[1][1]; \n vec4 clip = gl_Position; \n clip.xy += n.xy * clip.w * gltf_silhouetteSize / czm_viewport.z; \n gl_Position = clip; \n}";return V.fromCache({context:i.context,vertexShaderSource:r,fragmentShaderSource:"uniform vec4 gltf_silhouetteColor; \nvoid main() \n{ \n gl_FragColor = czm_gammaCorrect(gltf_silhouetteColor); \n}",attributeLocations:n})}function ri(e,t){return we(t.context)&&e.silhouetteSize>0&&e.silhouetteColor.alpha>0&&d(e._normalAttributeName)}function ni(e){for(var t=e._nodeCommands,i=t.length,r=0;r<i;++r){if(t[r].command.pass===B.TRANSLUCENT)return!0}return!1}function oi(e){return e.color.alpha>0&&e.color.alpha<1}function ai(e){return 0===e.color.alpha}function si(e,t){return Math.floor(e)!==Math.floor(t)||Math.ceil(e)!==Math.ceil(t)}function li(e,t){for(var i=++Xi%255,r=ni(e)||oi(e)||e.silhouetteColor.alpha<1,n=e._rendererResources.silhouettePrograms,o=t.scene3DOnly,s=e._nodeCommands,u=s.length,c=0;c<u;++c){var h=s[c],p=h.command,f=oi(e)?h.translucentCommand:p,m=F.shallowClone(f),_=a(f.renderState);_.stencilTest={enabled:!0,frontFunction:O.ALWAYS,backFunction:O.ALWAYS,reference:i,mask:-1,frontOperation:{fail:O.KEEP,zFail:O.KEEP,zPass:O.REPLACE},backOperation:{fail:O.KEEP,zFail:O.KEEP,zPass:O.REPLACE}},ai(e)&&(_.colorMask={red:!1,green:!1,blue:!1,alpha:!1},_.depthMask=!1),_=z.fromCache(_),m.renderState=_,h.silhouetteModelCommand=m;var g=F.shallowClone(p);_=a(p.renderState,!0),_.depthTest.enabled=!0,_.cull.enabled=!1,r&&(g.pass=B.TRANSLUCENT,_.depthMask=!1,_.blending=re.ALPHA_BLEND),_.stencilTest={enabled:!0,frontFunction:O.NOTEQUAL,backFunction:O.NOTEQUAL,reference:i,mask:-1,frontOperation:{fail:O.KEEP,zFail:O.KEEP,zPass:O.KEEP},backOperation:{fail:O.KEEP,zFail:O.KEEP,zPass:O.KEEP}},_=z.fromCache(_);var v=p.shaderProgram,y=ti(e,v),C=n[y];d(C)||(C=ii(e,v,t),n[y]=C);var b=l(p.uniformMap,{gltf_silhouetteColor:Et(e),gltf_silhouetteSize:At(e)});if(g.renderState=_,g.shaderProgram=C,g.uniformMap=b,g.castShadows=!1,g.receiveShadows=!1,h.silhouetteColorCommand=g,!o){var S=h.command2D,T=F.shallowClone(m);T.boundingVolume=S.boundingVolume,T.modelMatrix=S.modelMatrix,h.silhouetteModelCommand2D=T;var E=F.shallowClone(g);T.boundingVolume=S.boundingVolume,T.modelMatrix=S.modelMatrix,h.silhouetteColorCommand2D=E}}}function ui(e,t,i){return e=U.replaceMain(e,"gltf_clip_main"),e+=Ae._getClippingFunction(t,i)+"\n",e+="uniform sampler2D gltf_clippingPlanes; \nuniform mat4 gltf_clippingPlanesMatrix; \nuniform vec4 gltf_clippingPlanesEdgeStyle; \nvoid main() \n{ \n gltf_clip_main(); \n"+se("gltf_clippingPlanes","gltf_clippingPlanesMatrix","gltf_clippingPlanesEdgeStyle")+"} \n"}function ci(e,t,i){if(ri(e,t)){var r=e._nodeCommands,n=si(e.color.alpha,e._colorPreviousAlpha)||si(e.silhouetteColor.alpha,e._silhouetteColorPreviousAlpha)||!d(r[0].silhouetteModelCommand);e._colorPreviousAlpha=e.color.alpha,e._silhouetteColorPreviousAlpha=e.silhouetteColor.alpha,(n||i)&&li(e,t)}}function di(e,t){var i=e._clippingPlanes;d(i)&&i.owner===e&&i.enabled&&i.update(t)}function hi(e,t,i){return Qi.center=e,Qi.radius=t,i.camera.getPixelSize(Qi,i.context.drawingBufferWidth,i.context.drawingBufferHeight)}function pi(e,t){var r=e.scale;if(0!==e.minimumPixelSize){var n=t.context,o=Math.max(n.drawingBufferWidth,n.drawingBufferHeight),a=d(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;if(Ki.x=a[12],Ki.y=a[13],Ki.z=a[14],d(e._rtcCenter)&&i.add(e._rtcCenter,Ki,Ki),e._mode!==be.SCENE3D){var s=t.mapProjection,l=s.ellipsoid.cartesianToCartographic(Ki,Zi);s.project(l,Ki),i.fromElements(Ki.z,Ki.x,Ki.y,Ki)}var u=e.boundingSphere.radius,c=hi(Ki,u,t),h=1/c;Math.min(h*(2*u),o)<e.minimumPixelSize&&(r=e.minimumPixelSize*c/(2*e._initialRadius))}return d(e.maximumScale)?Math.min(e.maximumScale,r):r}function fi(e){d(e._cacheKey)&&d(e._cachedGltf)&&0==--e._cachedGltf.count&&delete wi[e._cacheKey],e._cachedGltf=void 0}function mi(e,t){this.buffers=void 0,this.vertexArrays=void 0,this.programs=void 0,this.sourceShaders=void 0,this.silhouettePrograms=void 0,this.textures=void 0,this.samplers=void 0,this.renderStates=void 0,this.ready=!1,this.context=e,this.cacheKey=t,this.count=0}function _i(e){for(var t in e)e.hasOwnProperty(t)&&e[t].destroy()}function gi(e){_i(e.buffers),_i(e.vertexArrays),_i(e.programs),_i(e.silhouettePrograms),_i(e.textures)}function vi(e,t,i){return function(r){if(e.heightReference===ue.RELATIVE_TO_GROUND){var n=t.cartesianToCartographic(r,Zi);n.height+=i.height,t.cartographicToCartesian(n,r)}var o=e._clampedModelMatrix;x.clone(e.modelMatrix,o),o[12]=r.x,o[13]=r.y,o[14]=r.z,e._heightChanged=!0}}function yi(e){d(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);var t=e._scene;if(!d(t)||!d(t.globe)||e.heightReference===ue.NONE)return void(e._clampedModelMatrix=void 0);var i=t.globe,r=i.ellipsoid,o=e.modelMatrix;Ki.x=o[12],Ki.y=o[13],Ki.z=o[14];var a=r.cartesianToCartographic(Ki);d(e._clampedModelMatrix)||(e._clampedModelMatrix=x.clone(o,new x));var s=i._surface;e._removeUpdateHeightCallback=s.updateHeight(a,vi(e,r,a));var l=i.getHeight(a);if(d(l)){var u=vi(e,r,a);n.clone(a,Zi),Zi.height=l,r.cartographicToCartesian(Zi,Ki),u(Ki)}}function Ci(e,t){var r,n=e.distanceDisplayCondition,o=n.near*n.near,a=n.far*n.far;if(t.mode===be.SCENE2D){r=.5*(t.camera.frustum.right-t.camera.frustum.left),r*=r}else{var s=x.getTranslation(e.modelMatrix,Ji);if(t.mode===be.COLUMBUS_VIEW){var l=t.mapProjection,u=l.ellipsoid,c=u.cartesianToCartographic(s,$i);s=l.project(c,s),i.fromElements(s.z,s.x,s.y,s)}r=i.distanceSquared(s,t.camera.positionWC)}return r>=o&&r<=a}function bi(e,t){e.programs!==t.programs&&_i(e.programs),e.silhouettePrograms!==t.silhouettePrograms&&_i(e.silhouettePrograms)}function Si(e,t){var i=e._rendererResources,r=e._cachedRendererResources;bi(i,r);var n;if(Pe(e)||xe(e)||e._shouldRegenerateShaders){e._shouldRegenerateShaders=!1,i.programs={},i.silhouettePrograms={};var o,a={},s=e._sourceTechniques;for(var l in s)s.hasOwnProperty(l)&&(o=s[l],n=o.program,a[n]||(a[n]=!0,$e({programId:n,techniqueId:l},e,t.context)))}else i.programs=r.programs,i.silhouettePrograms=r.silhouettePrograms;for(var u=i.programs,c=e._nodeCommands,h=c.length,p=0;p<h;++p){var f=c[p];n=f.programId;var m=u[n];f.command.shaderProgram=m,d(f.command2D)&&(f.command2D.shaderProgram=m)}ei(e,t,!0),ci(e,t,!0)}if(!_.supportsTypedArrays())return{};var Ti=new i,Ei=ge.ModelState,Ai=A.EPSILON16;h(Ee.prototype,{gltf:{set:function(e){this._gltf=e},get:function(){return this._gltf}}}),Ee.prototype.makeReady=function(e){this.gltf=e;for(var t=this.modelsToLoad,i=t.length,r=0;r<i;++r){var n=t[r];n.isDestroyed()||Te(n,this)}this.modelsToLoad=void 0,this.ready=!0};var wi={},xi={};h(Ae.prototype,{gltf:{get:function(){return d(this._cachedGltf)?this._cachedGltf.gltf:void 0}},releaseGltfJson:{get:function(){return this._releaseGltfJson}},cacheKey:{get:function(){return this._cacheKey}},basePath:{get:function(){return this._resource.url}},boundingSphere:{get:function(){var e=this.modelMatrix;this.heightReference!==ue.NONE&&this._clampedModelMatrix&&(e=this._clampedModelMatrix);var t=x.getScale(e,Ti),r=d(this.maximumScale)?Math.min(this.maximumScale,this.scale):this.scale;i.multiplyByScalar(t,r,t);var n=this._scaledBoundingSphere;return n.center=i.multiplyComponents(this._boundingSphere.center,t,n.center),n.radius=i.maximumComponent(t)*this._initialRadius,d(this._rtcCenter)&&i.add(this._rtcCenter,n.center,n.center),n}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},asynchronous:{get:function(){return this._asynchronous}},allowPicking:{get:function(){return this._allowPicking}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},pendingTextureLoads:{get:function(){return d(this._loadResources)?this._loadResources.pendingTextureLoads:0}},dirty:{get:function(){return this._dirty}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=m.clone(e,this._distanceDisplayCondition)}},extensionsUsed:{get:function(){return d(this._extensionsUsed)||(this._extensionsUsed=ge.getUsedExtensions(this.gltf)),this._extensionsUsed}},extensionsRequired:{get:function(){return d(this._extensionsRequired)||(this._extensionsRequired=ge.getRequiredExtensions(this.gltf)),this._extensionsRequired}},upAxis:{get:function(){return this._upAxis}},forwardAxis:{get:function(){return d(this._forwardAxis)?this._forwardAxis:this._gltfForwardAxis}},trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},texturesByteLength:{get:function(){return this._texturesByteLength}},cachedGeometryByteLength:{get:function(){return this._cachedGeometryByteLength}},cachedTexturesByteLength:{get:function(){return this._cachedTexturesByteLength}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&ne.setOwner(e,this,"_clippingPlanes")}},pickIds:{get:function(){return this._pickIds}},imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){var i=this._imageBasedLightingFactor;e===i||t.equals(e,i)||(this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._imageBasedLightingFactor.x>0&&0===e.x||0===this._imageBasedLightingFactor.x&&e.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._imageBasedLightingFactor.y>0&&0===e.y||0===this._imageBasedLightingFactor.y&&e.y>0,t.clone(e,this._imageBasedLightingFactor))}},lightColor:{get:function(){return this._lightColor},set:function(e){var t=this._lightColor;e===t||i.equals(e,t)||(this._shouldRegenerateShaders=this._shouldRegenerateShaders||d(t)&&!d(e)||d(e)&&!d(t),this._lightColor=i.clone(e,t))}},luminanceAtZenith:{get:function(){return this._luminanceAtZenith},set:function(e){var t=this._luminanceAtZenith;e!==t&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||d(t)&&!d(e)||d(e)&&!d(t),this._luminanceAtZenith=e)}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){e!==this._sphericalHarmonicCoefficients&&(this._sphericalHarmonicCoefficients=e,this._shouldRegenerateShaders=!0)}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){this._shouldUpdateSpecularMapAtlas=this._shouldUpdateSpecularMapAtlas||e!==this._specularEnvironmentMaps,this._specularEnvironmentMaps=e}}}),Ae.silhouetteSupported=function(e){return we(e.context)},Ae.fromGltf=function(e){var t=e.url;e=a(e);var i=M.createIfNeeded(t),r=c(e.basePath,i.clone()),n=M.createIfNeeded(r),o=c(e.cacheKey,xi[g(i.url)]);d(o)||(o=u(),xi[g(i.url)]=o),d(e.basePath)&&!d(e.cacheKey)&&(o+=n.url),e.cacheKey=o,e.basePath=n;var s=new Ae(e),l=wi[o];return d(l)?l.ready||(++l.count,l.modelsToLoad.push(s)):(l=new Ee({ready:!1}),l.count=1,l.modelsToLoad.push(s),Te(s,l),wi[o]=l,d(i.headers.Accept)||(i.headers.Accept="model/gltf-binary,model/gltf+json;q=0.8,application/json;q=0.2,*/*;q=0.01"),i.fetchArrayBuffer().then(function(e){var t=new Uint8Array(e);if(De(t)){var i=J(t);l.makeReady(i)}else{var r=y(t);l.makeReady(JSON.parse(r))}}).otherwise(ge.getFailedLoadFunction(s,"model",i.url))),s},Ae._gltfCache=wi,Ae.prototype.getNode=function(e){var t=Ie(this,"nodesByName",e);return d(t)?t.publicNode:void 0},Ae.prototype.getMesh=function(e){return Ie(this,"meshesByName",e)},Ae.prototype.getMaterial=function(e){return Ie(this,"materialsByName",e)},Ae.prototype.setArticulationStage=function(e,t){var i=Ie(this,"stagesByKey",e),r=Ie(this,"articulationsByStageKey",e);d(i)&&d(r)&&(t=A.clamp(t,i.minimumValue,i.maximumValue),A.equalsEpsilon(i.currentValue,t,Ai)||(i.currentValue=t,r.isDirty=!0))};var Pi=new i,Di=new w,Ii=new x;Ae.prototype.applyArticulations=function(){var e=this._runtime.articulationsByName;for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];if(i.isDirty){i.isDirty=!1;for(var r=i.nodes.length,n=0;n<r;++n){for(var o=i.nodes[n],a=x.clone(o.originalMatrix,Ii),s=i.stages.length,l=0;l<s;++l){var u=i.stages[l];a=Me(u,a)}o.matrix=a}}}};var Mi=/(^data:image\/ktx)|(\.ktx$)/i,Ri=/(^data:image\/crn)|(\.crn$)/i,Oi=new x,Li=function(){this.id=void 0,this.model=void 0,this.context=void 0};Li.prototype.set=function(e,t,i){this.id=e,this.model=t,this.context=i},Li.prototype.execute=function(){qe(this.id,this.model,this.context)};var Ni=function(){this.id=void 0,this.componentType=void 0,this.model=void 0,this.context=void 0};Ni.prototype.set=function(e,t,i,r){this.id=e,this.componentType=t,this.model=i,this.context=r},Ni.prototype.execute=function(){Ye(this.id,this.componentType,this.model,this.context)};var Fi=new Li,Bi=new Ni,zi=function(){this.programToCreate=void 0,this.model=void 0,this.context=void 0};zi.prototype.set=function(e,t,i){this.programToCreate=e,this.model=t,this.context=i},zi.prototype.execute=function(){Je(this.programToCreate,this.model,this.context)};var ki=new zi,Vi=function(){this.gltfTexture=void 0,this.model=void 0,this.context=void 0};Vi.prototype.set=function(e,t,i){this.gltfTexture=e,this.model=t,this.context=i},Vi.prototype.execute=function(){ot(this.gltfTexture,this.model,this.context)};var Ui=new Vi,Gi={MODEL:function(e,t,i){return function(){return i.computedMatrix}},VIEW:function(e,t,i){return function(){return e.view}},PROJECTION:function(e,t,i){return function(){return e.projection}},MODELVIEW:function(e,t,i){var r=new x;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r)}},CESIUM_RTC_MODELVIEW:function(e,t,i){var r=new x;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r),x.setTranslation(r,t._rtcCenterEye,r)}},MODELVIEWPROJECTION:function(e,t,i){var r=new x;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r),x.multiply(e._projection,r,r)}},MODELINVERSE:function(e,t,i){var r=new x;return function(){return x.inverse(i.computedMatrix,r)}},VIEWINVERSE:function(e,t){return function(){return e.inverseView}},PROJECTIONINVERSE:function(e,t,i){return function(){return e.inverseProjection}},MODELVIEWINVERSE:function(e,t,i){var r=new x,n=new x;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r),x.inverse(r,n)}},MODELVIEWPROJECTIONINVERSE:function(e,t,i){var r=new x,n=new x;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r),x.multiply(e._projection,r,r),x.inverse(r,n)}},MODELINVERSETRANSPOSE:function(e,t,i){var r=new x,n=new w;return function(){return x.inverse(i.computedMatrix,r),x.getRotation(r,n),w.transpose(n,n)}},MODELVIEWINVERSETRANSPOSE:function(e,t,i){var r=new x,n=new x,o=new w;return function(){return x.multiplyTransformation(e.view,i.computedMatrix,r),x.inverse(r,n),x.getRotation(n,o),w.transpose(o,o)}},VIEWPORT:function(e,t,i){return function(){return e.viewportCartesian4}}},Hi=new x,Wi=[],qi=new r,Yi=new x,ji=new x,Xi=0,Qi=new e,Ki=new i,Zi=new n;mi.prototype.release=function(){if(0==--this.count)return d(this.cacheKey)&&delete this.context.cache.modelRendererResourceCache[this.cacheKey],gi(this),p(this)};var Ji=new i,$i=new n;return Ae.prototype.update=function(e){if(e.mode!==be.MORPHING){if(!_.supportsWebP.initialized)return void _.supportsWebP.initialize();var t=_.supportsWebP(),r=e.context;if(this._defaultTexture=r.defaultTexture,this._state===Ei.NEEDS_LOAD&&d(this.gltf)){var n,o=this.cacheKey;if(d(o)){r.cache.modelRendererResourceCache=c(r.cache.modelRendererResourceCache,{});var a=r.cache.modelRendererResourceCache;if(n=a[this.cacheKey],d(n)){if(!n.ready)return;++n.count,this._loadRendererResourcesFromCache=!0}else n=new mi(r,o),n.count=1,a[this.cacheKey]=n;this._cachedRendererResources=n}else n=new mi(r),n.count=1,this._cachedRendererResources=n;if(this._state=Ei.LOADING,this._state!==Ei.FAILED){var s=this.gltf.extensions;if(d(s)&&d(s.CESIUM_RTC)){var l=i.fromArray(s.CESIUM_RTC.center);if(!i.equals(l,i.ZERO)){this._rtcCenter3D=l;var u=e.mapProjection,h=u.ellipsoid,p=h.cartesianToCartographic(this._rtcCenter3D),f=u.project(p);i.fromElements(f.z,f.x,f.y,f),this._rtcCenter2D=f,this._rtcCenterEye=new i,this._rtcCenter=this._rtcCenter3D}}j(this.gltf),this._loadResources=new pe,this._loadRendererResourcesFromCache||ge.parseBuffers(this,Oe)}}var m=this._loadResources,g=this._incrementallyLoadTextures,v=!1;if(this._state===Ei.LOADING){if(0===m.pendingBufferLoads){if(!m.initialized){if(e.brdfLutGenerator.update(e),ge.checkSupportedExtensions(this.extensionsRequired,t),ge.updateForwardAxis(this),!d(this.gltf.extras.sourceVersion)){var y=this.gltf;y.extras.sourceVersion=ge.getAssetVersion(y),y.extras.sourceKHRTechniquesWebGL=d(ge.getUsedExtensions(y).KHR_techniques_webgl),this._sourceVersion=y.extras.sourceVersion,this._sourceKHRTechniquesWebGL=y.extras.sourceKHRTechniquesWebGL,ee(y),Y(y);var C={addBatchIdToGeneratedShaders:this._addBatchIdToGeneratedShaders};ye(y,C),Ce(y,C)}this._sourceVersion=this.gltf.extras.sourceVersion,this._sourceKHRTechniquesWebGL=this.gltf.extras.sourceKHRTechniquesWebGL,this._dequantizeInShader=this._dequantizeInShader&&ae.hasExtension(this),Re(this),ke(this),Ne(this),this._loadRendererResourcesFromCache||(Le(this),Be(this),ze(this),Ue(this,r,t)),He(this),We(this),Ge(this),ae.parse(this,r),m.initialized=!0}m.finishedDecoding()||ae.decodeModel(this,r).otherwise(ge.getFailedLoadFunction(this,"model",this.basePath)),m.finishedDecoding()&&!m.resourcesParsed&&(this._boundingSphere=ge.computeBoundingSphere(this),this._initialRadius=this._boundingSphere.radius,ae.cacheDataForModel(this),m.resourcesParsed=!0),m.resourcesParsed&&0===m.pendingShaderLoads&&Ht(this,e)}(m.finished()||g&&m.finishedEverythingButTextureCreation())&&(this._state=Ei.LOADED,v=!0)}if(d(m)&&this._state===Ei.LOADED&&(g&&!v&&Ht(this,e),m.finished())){this._loadResources=void 0;var b=this._rendererResources,S=this._cachedRendererResources;S.buffers=b.buffers,S.vertexArrays=b.vertexArrays,S.programs=b.programs,S.sourceShaders=b.sourceShaders,S.silhouettePrograms=b.silhouettePrograms,S.textures=b.textures,S.samplers=b.samplers,S.renderStates=b.renderStates,S.ready=!0,this._normalAttributeName=ge.getAttributeOrUniformBySemantic(this.gltf,"NORMAL"),d(this._precreatedAttributes)&&(S.vertexArrays={}),this.releaseGltfJson&&fi(this)}var T=ve.isSupported(r);if(this._shouldUpdateSpecularMapAtlas&&T){if(this._shouldUpdateSpecularMapAtlas=!1,this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),this._specularEnvironmentMapAtlas=void 0,d(this._specularEnvironmentMaps)){this._specularEnvironmentMapAtlas=new ve(this._specularEnvironmentMaps);var E=this;this._specularEnvironmentMapAtlas.readyPromise.then(function(){E._shouldRegenerateShaders=!0})}this._shouldRegenerateShaders=!0}d(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.update(e);var w=!d(this._specularEnvironmentMapAtlas)&&d(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,P=!d(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,D=!d(this._sphericalHarmonicCoefficients)&&d(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,I=!d(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||w||P||D||I,this._useDefaultSpecularMaps=!d(this._specularEnvironmentMapAtlas)&&d(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!d(this._sphericalHarmonicCoefficients)&&d(e.sphericalHarmonicCoefficients);var M=ri(this,e),R=oi(this),O=ai(this),L=!d(this.distanceDisplayCondition)||Ci(this,e),N=this.show&&L&&0!==this.scale&&(!O||M);if(N&&this._state===Ei.LOADED||v){var F=this.activeAnimations.update(e)||this._cesiumAnimationsDirty;this._cesiumAnimationsDirty=!1,this._dirty=!1;var B=this.modelMatrix,z=e.mode!==this._mode;this._mode=e.mode;var k=!x.equals(this._modelMatrix,B)||this._scale!==this.scale||this._minimumPixelSize!==this.minimumPixelSize||0!==this.minimumPixelSize||this._maximumScale!==this.maximumScale||this._heightReference!==this.heightReference||this._heightChanged||z;if(k||v){x.clone(B,this._modelMatrix),yi(this),d(this._clampedModelMatrix)&&(B=this._clampedModelMatrix),this._scale=this.scale,this._minimumPixelSize=this.minimumPixelSize,this._maximumScale=this.maximumScale,this._heightReference=this.heightReference,this._heightChanged=!1;var V=pi(this,e),U=this._computedModelMatrix;x.multiplyByUniformScale(B,V,U),this._upAxis===ie.Y?x.multiplyTransformation(U,ie.Y_UP_TO_Z_UP,U):this._upAxis===ie.X&&x.multiplyTransformation(U,ie.X_UP_TO_Z_UP,U),this.forwardAxis===ie.Z&&x.multiplyTransformation(U,ie.Z_UP_TO_X_UP,U)}(F||k||v)&&(qt(this,k,v,e.mapProjection),this._dirty=!0,(F||v)&&Yt(this)),this._perNodeShowDirty&&(this._perNodeShowDirty=!1,jt(this)),Xt(this,r),Qt(this),Kt(this),Zt(this),di(this,e);var G=this._clippingPlanes,H=0,W=d(G)&&G.enabled&&G.length>0,q=d(this._sphericalHarmonicCoefficients)||this._useDefaultSphericalHarmonics,X=d(this._specularEnvironmentMapAtlas)&&this._specularEnvironmentMapAtlas.ready||this._useDefaultSpecularMaps;if(W||q||X){var Q=c(this.clippingPlanesOriginMatrix,B);x.multiply(r.uniformState.view3D,Q,this._clippingPlaneModelViewMatrix)}W&&(H=G.clippingPlanesState);var K=this._shouldRegenerateShaders;K=K||this._clippingPlanesState!==H,this._clippingPlanesState=H;var Z=xe(this);Z!==this._colorShadingEnabled&&(this._colorShadingEnabled=Z,K=!0),K?Si(this,e):(ei(this,e,!1),ci(this,e,!1))}if(v){var J=this;return void e.afterRender.push(function(){J._ready=!0,J._readyPromise.resolve(J)})}if(N&&!this._ignoreCommands){var $,te,re,ne=e.commandList,oe=e.passes,se=this._nodeCommands,le=se.length,ue=e.mapProjection.ellipsoid.maximumRadius*A.PI;if(oe.render||oe.pick&&this.allowPicking){for($=0;$<le;++$)if(te=se[$],te.show){var ce=R?te.translucentCommand:te.command;if(ce=M?te.silhouetteModelCommand:ce,ne.push(ce),re=te.command.boundingVolume,e.mode===be.SCENE2D&&(re.center.y+re.radius>ue||re.center.y-re.radius<ue)){var de=R?te.translucentCommand2D:te.command2D;de=M?te.silhouetteModelCommand2D:de,ne.push(de)}}if(M&&!oe.pick)for($=0;$<le;++$)te=se[$],te.show&&(ne.push(te.silhouetteColorCommand),re=te.command.boundingVolume,e.mode===be.SCENE2D&&(re.center.y+re.radius>ue||re.center.y-re.radius<ue)&&ne.push(te.silhouetteColorCommand2D))}}}},Ae.prototype.isDestroyed=function(){return!1},Ae.prototype.destroy=function(){d(this._precreatedAttributes)&&_i(this._rendererResources.vertexArrays),d(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),d(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0),d(this._cachedRendererResources)&&bi(this._rendererResources,this._cachedRendererResources),this._rendererResources=void 0,this._cachedRendererResources=this._cachedRendererResources&&this._cachedRendererResources.release(),ae.destroyCachedDataForModel(this);for(var e=this._pickIds,t=e.length,i=0;i<t;++i)e[i].destroy();fi(this),this._quantizedVertexShaders=void 0;var r=this._clippingPlanes;return d(r)&&!r.isDestroyed()&&r.owner===this&&r.destroy(),this._clippingPlanes=void 0,this._specularEnvironmentMapAtlas=this._specularEnvironmentMapAtlas&&this._specularEnvironmentMapAtlas.destroy(),p(this)},Ae._getClippingFunction=le,Ae._modifyShaderForColor=Ke,Ae}),define("DataSources/ModelVisualizer",["../Core/AssociativeArray","../Core/BoundingSphere","../Core/Cartesian2","../Core/Color","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/Matrix4","../Core/Resource","../Scene/ColorBlendMode","../Scene/HeightReference","../Scene/Model","../Scene/ModelAnimationLoop","../Scene/ShadowMode","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(t,i){i.collectionChanged.addEventListener(_.prototype._onCollectionChanged,this),this._scene=t,this._primitives=t.primitives,this._entityCollection=i,this._modelHash={},this._entitiesToVisualize=new e,this._onCollectionChanged(i,i.values,[],[])}function g(e,t,i,r){var o=i[t.id];n(o)&&(r.removeAndDestroy(o.modelPrimitive),delete i[t.id])}function v(e,t){var i=t[e.id];n(i)&&(i.nodeTransformationsScratch={})}function y(e,t,i){e.readyPromise.otherwise(function(e){console.error(e),i[t.id].loadFail=!0})}var C=p.ENABLED,b=c.NONE,S=r.RED,T=r.WHITE,E=u.HIGHLIGHT,A=new i(1,1),w=new s,x=new s;return _.prototype.update=function(e){for(var t=this._entitiesToVisualize.values,i=this._modelHash,r=this._primitives,o=0,a=t.length;o<a;o++){var u,c,p=t[o],f=p._model,_=i[p.id],g=p.isShowing&&p.isAvailable(e)&&m.getValueOrDefault(f._show,e,!0);if(g&&(c=p.computeModelMatrix(e,w),u=l.createIfNeeded(m.getValueOrUndefined(f._uri,e)),g=n(c)&&n(u)),g){var v=n(_)?_.modelPrimitive:void 0;if(n(v)&&u.url===_.url||(n(v)&&(r.removeAndDestroy(v),delete i[p.id]),v=d.fromGltf({url:u,incrementallyLoadTextures:m.getValueOrDefault(f._incrementallyLoadTextures,e,!0),scene:this._scene}),v.id=p,r.add(v),_={modelPrimitive:v,url:u.url,animationsRunning:!1,nodeTransformationsScratch:{},loadFail:!1},i[p.id]=_,y(v,p,i)),v.show=!0,v.scale=m.getValueOrDefault(f._scale,e,1),v.minimumPixelSize=m.getValueOrDefault(f._minimumPixelSize,e,0),v.maximumScale=m.getValueOrUndefined(f._maximumScale,e),v.modelMatrix=s.clone(c,v.modelMatrix),v.shadows=m.getValueOrDefault(f._shadows,e,C),v.heightReference=m.getValueOrDefault(f._heightReference,e,b),v.distanceDisplayCondition=m.getValueOrUndefined(f._distanceDisplayCondition,e),v.silhouetteColor=m.getValueOrDefault(f._silhouetteColor,e,S,v._silhouetteColor),v.silhouetteSize=m.getValueOrDefault(f._silhouetteSize,e,0),v.color=m.getValueOrDefault(f._color,e,T,v._color),v.colorBlendMode=m.getValueOrDefault(f._colorBlendMode,e,E),v.colorBlendAmount=m.getValueOrDefault(f._colorBlendAmount,e,.5),v.clippingPlanes=m.getValueOrUndefined(f._clippingPlanes,e),v.clampAnimations=m.getValueOrDefault(f._clampAnimations,e,!0),v.imageBasedLightingFactor=m.getValueOrDefault(f._imageBasedLightingFactor,e,A),v.lightColor=m.getValueOrUndefined(f._lightColor,e),v.ready){var P=m.getValueOrDefault(f._runAnimations,e,!0);_.animationsRunning!==P&&(P?v.activeAnimations.addAll({loop:h.REPEAT}):v.activeAnimations.removeAll(),_.animationsRunning=P);var D=m.getValueOrUndefined(f._nodeTransformations,e,_.nodeTransformationsScratch);if(n(D))for(var I=Object.keys(D),M=0,R=I.length;M<R;++M){var O=I[M],L=D[O];if(n(L)){var N=v.getNode(O);if(n(N)){var F=s.fromTranslationRotationScale(L,x);N.matrix=s.multiply(N.originalMatrix,F,F)}}}}}else n(_)&&(_.modelPrimitive.show=!1)}return!0},_.prototype.isDestroyed=function(){return!1},_.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(_.prototype._onCollectionChanged,this);for(var e=this._entitiesToVisualize.values,t=this._modelHash,i=this._primitives,r=e.length-1;r>-1;r--)g(this,e[r],t,i);return o(this)},_.prototype.getBoundingSphere=function(e,i){var r=this._modelHash[e.id];if(!n(r)||r.loadFail)return f.FAILED;var o=r.modelPrimitive;if(!n(o)||!o.show)return f.FAILED;if(!o.ready)return f.PENDING;if(o.heightReference===c.NONE)t.transform(o.boundingSphere,o.modelMatrix,i);else{if(!n(o._clampedModelMatrix))return f.PENDING;t.transform(o.boundingSphere,o._clampedModelMatrix,i)}return f.DONE},_.prototype._onCollectionChanged=function(e,t,i,r){var o,a,s=this._entitiesToVisualize,l=this._modelHash,u=this._primitives;for(o=t.length-1;o>-1;o--)a=t[o],n(a._model)&&n(a._position)&&s.set(a.id,a);for(o=r.length-1;o>-1;o--)a=r[o],n(a._model)&&n(a._position)?(v(a,l),s.set(a.id,a)):(g(this,a,l,u),s.remove(a.id));for(o=i.length-1;o>-1;o--)a=i[o],g(this,a,l,u),s.remove(a.id)},_}),define("Shaders/PolylineVS",[],function(){"use strict" -;return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec3 position2DHigh;\nattribute vec3 position2DLow;\nattribute vec3 prevPosition3DHigh;\nattribute vec3 prevPosition3DLow;\nattribute vec3 prevPosition2DHigh;\nattribute vec3 prevPosition2DLow;\nattribute vec3 nextPosition3DHigh;\nattribute vec3 nextPosition3DLow;\nattribute vec3 nextPosition2DHigh;\nattribute vec3 nextPosition2DLow;\nattribute vec4 texCoordExpandAndBatchIndex;\nvarying vec2 v_st;\nvarying float v_width;\nvarying vec4 v_pickColor;\nvarying float v_polylineAngle;\nvoid main()\n{\nfloat texCoord = texCoordExpandAndBatchIndex.x;\nfloat expandDir = texCoordExpandAndBatchIndex.y;\nbool usePrev = texCoordExpandAndBatchIndex.z < 0.0;\nfloat batchTableIndex = texCoordExpandAndBatchIndex.w;\nvec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex);\nfloat width = widthAndShow.x + 0.5;\nfloat show = widthAndShow.y;\nif (width < 1.0)\n{\nshow = 0.0;\n}\nvec4 pickColor = batchTable_getPickColor(batchTableIndex);\nvec4 p, prev, next;\nif (czm_morphTime == 1.0)\n{\np = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz);\nprev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz);\nnext = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz);\n}\nelse if (czm_morphTime == 0.0)\n{\np = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy);\nprev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy);\nnext = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy);\n}\nelse\n{\np = czm_columbusViewMorph(\nczm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy),\nczm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz),\nczm_morphTime);\nprev = czm_columbusViewMorph(\nczm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy),\nczm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz),\nczm_morphTime);\nnext = czm_columbusViewMorph(\nczm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy),\nczm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz),\nczm_morphTime);\n}\n#ifdef DISTANCE_DISPLAY_CONDITION\nvec3 centerHigh = batchTable_getCenterHigh(batchTableIndex);\nvec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex);\nvec3 centerLow = centerLowAndRadius.xyz;\nfloat radius = centerLowAndRadius.w;\nvec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex);\nfloat lengthSq;\nif (czm_sceneMode == czm_sceneMode2D)\n{\nlengthSq = czm_eyeHeight2D.y;\n}\nelse\n{\nvec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz);\nlengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius);\n}\nfloat nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x;\nfloat farSq = distanceDisplayCondition.y * distanceDisplayCondition.y;\nif (lengthSq < nearSq || lengthSq > farSq)\n{\nshow = 0.0;\n}\n#endif\nvec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, v_polylineAngle);\ngl_Position = czm_viewportOrthographic * positionWC * show;\nv_st = vec2(texCoord, clamp(expandDir, 0.0, 1.0));\nv_width = width;\nv_pickColor = pickColor;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(czm_modelViewProjectionRelativeToEye * p);\n#endif\n}\n"}),define("Scene/Polyline",["../Core/arrayRemoveDuplicates","../Core/BoundingSphere","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/Matrix4","../Core/PolylinePipeline","./Material"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(a,s){a=n(a,n.EMPTY_OBJECT),this._show=n(a.show,!0),this._width=n(a.width,1),this._loop=n(a.loop,!1),this._distanceDisplayCondition=a.distanceDisplayCondition,this._material=a.material,o(this._material)||(this._material=d.fromType(d.ColorType,{color:new r(1,1,1,1)}));var l=a.positions;o(l)||(l=[]),this._positions=l,this._actualPositions=e(l,i.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=l.slice()),this._actualPositions.push(i.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=a.id;var h;o(s)&&(h=u.clone(s.modelMatrix)),this._modelMatrix=h,this._segments=c.wrapLongitude(this._actualPositions,h),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(C),this._polylineCollection=s,this._dirty=!1,this._pickId=void 0,this._boundingVolume=t.fromPoints(this._actualPositions),this._boundingVolumeWC=t.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new t}function p(e,t){++e._propertiesChanged[t];var i=e._polylineCollection;o(i)&&(i._updatePolyline(e,t),e._dirty=!0)}var f=h.POSITION_INDEX=0,m=h.SHOW_INDEX=1,_=h.WIDTH_INDEX=2,g=h.MATERIAL_INDEX=3,v=h.POSITION_SIZE_INDEX=4,y=h.DISTANCE_DISPLAY_CONDITION=5,C=h.NUMBER_OF_PROPERTIES=6;return a(h.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,p(this,m))}},positions:{get:function(){return this._positions},set:function(r){var n=e(r,i.equalsEpsilon);this._loop&&n.length>2&&(n===r&&(n=r.slice()),n.push(i.clone(n[0]))),this._actualPositions.length===n.length&&this._actualPositions.length===this._length||p(this,v),this._positions=r,this._actualPositions=n,this._length=n.length,this._boundingVolume=t.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=t.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),p(this,f),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,p(this,g))}},width:{get:function(){return this._width},set:function(e){e!==this._width&&(this._width=e,p(this,_))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){var t=this._actualPositions;e?t.length>2&&!i.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(i.clone(t[0]))):t.length>2&&i.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,p(this,v)}}},id:{get:function(){return this._id},set:function(e){this._id=e,o(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){l.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=l.clone(e,this._distanceDisplayCondition),p(this,y))}}}),h.prototype.update=function(){var e=u.IDENTITY;o(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);var i=this._segments.positions.length,r=this._segments.lengths,n=this._propertiesChanged[f]>0||this._propertiesChanged[v]>0;if(u.equals(e,this._modelMatrix)&&!n||(this._segments=c.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=t.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=u.clone(e,this._modelMatrix),this._segments.positions.length!==i)p(this,v);else for(var a=r.length,s=0;s<a;++s)if(r[s]!==this._segments.lengths[s]){p(this,v);break}},h.prototype.getPickId=function(e){return o(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId},h.prototype._clean=function(){this._dirty=!1;for(var e=this._propertiesChanged,t=0;t<C-1;++t)e[t]=0},h.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0},h}),define("Scene/PolylineCollection",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/Color","../Core/combine","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/EncodedCartesian3","../Core/FeatureDetection","../Core/IndexDatatype","../Core/Intersect","../Core/Math","../Core/Matrix4","../Core/Plane","../Core/RuntimeError","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/VertexArray","../Shaders/PolylineCommon","../Shaders/PolylineFS","../Shaders/PolylineVS","./BatchTable","./BlendingState","./Material","./Polyline","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z){"use strict";function k(e){e=l(e,l.EMPTY_OBJECT),this.modelMatrix=v.clone(l(e.modelMatrix,v.IDENTITY)),this._modelMatrix=v.clone(v.IDENTITY),this.debugShowBoundingVolume=l(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(se),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:S.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=o.clone(o.WHITE);var t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}function V(e,t){u(e._batchTable)&&e._batchTable.destroy();var i=[{functionName:"batchTable_getWidthAndShow",componentDatatype:s.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:s.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:s.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:s.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:s.FLOAT,componentsPerAttribute:2}];e._batchTable=new L(t,i,e._polylines.length)}function U(t,i,r,n){for(var o=i.context,s=i.commandList,l=r.length,c=0,d=!0,h=t._vertexArrays,p=t.debugShowBoundingVolume,f=t._batchTable,m=f.getUniformMapCallback(),_=h.length,g=0;g<_;++g)for(var v=h[g],y=v.buckets,C=y.length,b=0;b<C;++b){for(var S,T,w,x,P=y[b],D=P.offset,I=P.bucket.shaderProgram,M=P.bucket.polylines,R=M.length,O=0,L=0;L<R;++L){var N=M[L],F=q(N._material);if(F!==S){if(u(S)&&O>0){var B=T.isTranslucent();c>=l?(w=new E({owner:t}),r.push(w)):w=r[c],++c,x=a(m(T._uniforms),t._uniformMap),w.boundingVolume=e.clone(he,w.boundingVolume),w.modelMatrix=n,w.shaderProgram=I,w.vertexArray=v.va,w.renderState=B?t._translucentRS:t._opaqueRS,w.pass=B?A.TRANSLUCENT:A.OPAQUE,w.debugShowBoundingVolume=p,w.pickId="v_pickColor",w.uniformMap=x,w.count=O,w.offset=D,D+=O,O=0,d=!0,s.push(w)}T=N._material,T.update(o),S=F}for(var k=N._locatorBuckets,V=k.length,U=0;U<V;++U){var G=k[U];G.locator===P&&(O+=G.count)}var H;i.mode===z.SCENE3D?H=N._boundingVolumeWC:i.mode===z.COLUMBUS_VIEW?H=N._boundingVolume2D:i.mode===z.SCENE2D?u(N._boundingVolume2D)&&(H=e.clone(N._boundingVolume2D,pe),H.center.x=0):u(N._boundingVolumeWC)&&u(N._boundingVolume2D)&&(H=e.union(N._boundingVolumeWC,N._boundingVolume2D,pe)),d?(d=!1,e.clone(H,he)):e.union(H,he,he)}u(S)&&O>0&&(c>=l?(w=new E({owner:t}),r.push(w)):w=r[c],++c,x=a(m(T._uniforms),t._uniformMap),w.boundingVolume=e.clone(he,w.boundingVolume),w.modelMatrix=n,w.shaderProgram=I,w.vertexArray=v.va,w.renderState=T.isTranslucent()?t._translucentRS:t._opaqueRS,w.pass=T.isTranslucent()?A.TRANSLUCENT:A.OPAQUE,w.debugShowBoundingVolume=p,w.pickId="v_pickColor",w.uniformMap=x,w.count=O,w.offset=D,d=!0,s.push(w)),S=void 0}r.length=c}function G(e){var t=!1,i=e._propertiesChanged,r=e._positionBufferUsage;return i[re]?r.bufferUsage!==S.STREAM_DRAW?(t=!0,r.bufferUsage=S.STREAM_DRAW,r.frameCount=100):r.frameCount=100:r.bufferUsage!==S.STATIC_DRAW&&(0===r.frameCount?(t=!0,r.bufferUsage=S.STATIC_DRAW):r.frameCount--),t}function H(e,t,i){e._createVertexArray=!1,Q(e),K(e),Y(e);var r,n,o=[[]],a=o[0],l=e._batchTable,c=e._useHighlightColor,d=[0],h=0,p=[[]],f=0,_=e._polylineBuckets;for(r in _)_.hasOwnProperty(r)&&(n=_[r],n.updateShader(t,l,c),f+=n.lengthOfPositions);if(f>0){var v,y=e._mode,C=new Float32Array(6*f*3),T=new Float32Array(4*f),E=0,A=0,w=0;for(r in _)if(_.hasOwnProperty(r)){n=_[r],n.write(C,T,E,A,w,l,t,i),y===z.MORPHING&&(u(v)||(v=new Float32Array(6*f*3)),n.writeForMorph(v,E));var x=n.lengthOfPositions;E+=6*x*3,A+=4*x,w+=4*x,h=n.updateIndices(o,d,p,h)}var P=e._positionBufferUsage.bufferUsage,D=S.STATIC_DRAW;e._positionBuffer=b.createVertexBuffer({context:t,typedArray:C,usage:P});var M;u(v)&&(M=b.createVertexBuffer({context:t,typedArray:v,usage:P})),e._texCoordExpandAndBatchIndexBuffer=b.createVertexBuffer({context:t,typedArray:T,usage:D});for(var R=3*Float32Array.BYTES_PER_ELEMENT,O=4*Float32Array.BYTES_PER_ELEMENT,L=0,N=o.length,F=0;F<N;++F)if(a=o[F],a.length>0){var B=new Uint16Array(a),k=b.createIndexBuffer({context:t,typedArray:B,usage:S.STATIC_DRAW,indexDatatype:m.UNSIGNED_SHORT});L+=d[F];var V,U,G,H,W=6*(F*(R*g.SIXTY_FOUR_KILOBYTES)-L*R),q=R+W,j=R+q,X=R+j,Z=R+X,J=R+Z,$=F*(O*g.SIXTY_FOUR_KILOBYTES)-L*O,ee=[{index:le.position3DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:W,strideInBytes:6*R},{index:le.position3DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:q,strideInBytes:6*R},{index:le.position2DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:W,strideInBytes:6*R},{index:le.position2DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:q,strideInBytes:6*R},{index:le.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:j,strideInBytes:6*R},{index:le.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:X,strideInBytes:6*R},{index:le.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:j,strideInBytes:6*R},{index:le.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:X,strideInBytes:6*R},{index:le.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:Z,strideInBytes:6*R},{index:le.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:J,strideInBytes:6*R},{index:le.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:Z,strideInBytes:6*R},{index:le.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:s.FLOAT,offsetInBytes:J,strideInBytes:6*R},{index:le.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:s.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:$}];y===z.SCENE3D?(V=e._positionBuffer,U="vertexBuffer",G=fe,H="value"):y===z.SCENE2D||y===z.COLUMBUS_VIEW?(V=fe,U="value",G=e._positionBuffer,H="vertexBuffer"):(V=M,U="vertexBuffer",G=e._positionBuffer,H="vertexBuffer"),ee[0][U]=V,ee[1][U]=V,ee[2][H]=G,ee[3][H]=G,ee[4][U]=V,ee[5][U]=V,ee[6][H]=G,ee[7][H]=G,ee[8][U]=V,ee[9][U]=V,ee[10][H]=G,ee[11][H]=G;var te=new I({context:t,attributes:ee,indexBuffer:k});e._vertexArrays.push({va:te,buckets:p[F]})}}}function W(e,t){return t instanceof D?t.id:t}function q(e){var t=F._uniformList[e.type],i=t.length;me.length=2*i;for(var r=0,n=0;n<i;++n){var o=t[n];me[r]=o,me[r+1]=e._uniforms[o](),r+=2}return e.type+":"+JSON.stringify(me,W)}function Y(e){for(var t=e._mode,i=e._modelMatrix,r=e._polylineBuckets={},n=e._polylines,o=n.length,a=0;a<o;++a){var s=n[a];if(s._actualPositions.length>1){s.update();var l=s.material,c=r[l.type];u(c)||(c=r[l.type]=new $(l,t,i)),c.addPolyline(s)}}}function j(e,t){var i=t.mode;e._mode===i&&v.equals(e._modelMatrix,e.modelMatrix)||(e._mode=i,e._modelMatrix=v.clone(e.modelMatrix),e._createVertexArray=!0)}function X(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;for(var t=[],i=e._polylines.length,r=0,n=0;r<i;++r){var o=e._polylines[r];u(o)&&(o._index=n++,t.push(o))}e._polylines=t}}function Q(e){for(var t=e._polylines,i=t.length,r=0;r<i;++r)if(u(t[r])){var n=t[r]._bucket;u(n)&&(n.shaderProgram=n.shaderProgram&&n.shaderProgram.destroy())}}function K(e){for(var t=e._vertexArrays.length,i=0;i<t;++i)e._vertexArrays[i].va.destroy();e._vertexArrays.length=0}function Z(e){for(var t=e._polylines,i=t.length,r=0;r<i;++r)u(t[r])&&t[r]._destroy()}function J(e,t,i){this.count=e,this.offset=t,this.bucket=i}function $(e,t,i){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=i}function ee(e){return i.dot(i.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(y.ORIGIN_ZX_PLANE)===_.INTERSECTING}var te=B.SHOW_INDEX,ie=B.WIDTH_INDEX,re=B.POSITION_INDEX,ne=B.MATERIAL_INDEX,oe=B.POSITION_SIZE_INDEX,ae=B.DISTANCE_DISPLAY_CONDITION,se=B.NUMBER_OF_PROPERTIES,le={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};c(k.prototype,{length:{get:function(){return X(this),this._polylines.length}}}),k.prototype.add=function(e){var t=new B(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t},k.prototype.remove=function(e){if(this.contains(e)){this._polylines[e._index]=void 0;var t=this._polylinesToUpdate.indexOf(e);if(-1!==t&&this._polylinesToUpdate.splice(t,1),this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,u(e._bucket)){var i=e._bucket;i.shaderProgram=i.shaderProgram&&i.shaderProgram.destroy()}return e._destroy(),!0}return!1},k.prototype.removeAll=function(){Q(this),Z(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0},k.prototype.contains=function(e){return u(e)&&e._polylineCollection===this},k.prototype.get=function(e){return X(this),this._polylines[e]};var ue=new p,ce=new r,de=new t;k.prototype.update=function(e){if(X(this),0!==this._polylines.length){j(this,e);var i,n=e.context,o=e.mapProjection,a=this._propertiesChanged;if(this._createBatchTable){if(0===T.maximumVertexTextureImageUnits)throw new C("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");V(this,n),this._createBatchTable=!1}if(this._createVertexArray||G(this))H(this,n,o);else if(this._polylinesUpdated){var s=this._polylinesToUpdate;if(this._mode!==z.SCENE3D)for(var l=s.length,c=0;c<l;++c)i=s[c],i.update();if(a[oe]||a[ne])H(this,n,o);else for(var d=s.length,h=this._polylineBuckets,f=0;f<d;++f){i=s[f],a=i._propertiesChanged;var m=i._bucket,_=0;for(var g in h)if(h.hasOwnProperty(g)){if(h[g]===m){a[re]&&m.writeUpdate(_,i,this._positionBuffer,o);break}_+=h[g].lengthOfPositions}if((a[te]||a[ie])&&this._batchTable.setBatchedAttribute(i._index,0,new t(i._width,i._show)),this._batchTable.attributes.length>2){if(a[re]||a[oe]){var y=e.mode===z.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,b=p.fromCartesian(y.center,ue),S=r.fromElements(b.low.x,b.low.y,b.low.z,y.radius,ce);this._batchTable.setBatchedAttribute(i._index,2,b.high),this._batchTable.setBatchedAttribute(i._index,3,S)}if(a[ae]){var E=de;E.x=0,E.y=Number.MAX_VALUE;var A=i.distanceDisplayCondition;u(A)&&(E.x=A.near,E.y=A.far),this._batchTable.setBatchedAttribute(i._index,4,E)}}i._clean()}s.length=0,this._polylinesUpdated=!1}a=this._propertiesChanged;for(var x=0;x<se;++x)a[x]=0;var P=v.IDENTITY;e.mode===z.SCENE3D&&(P=this.modelMatrix);var D=e.passes,I=0!==e.morphTime;if(u(this._opaqueRS)&&this._opaqueRS.depthTest.enabled===I||(this._opaqueRS=w.fromCache({depthMask:I,depthTest:{enabled:I}})),u(this._translucentRS)&&this._translucentRS.depthTest.enabled===I||(this._translucentRS=w.fromCache({blending:N.ALPHA_BLEND,depthMask:!I,depthTest:{enabled:I}})),this._batchTable.update(e),D.render||D.pick){U(this,e,this._colorCommands,P)}}};var he=new e,pe=new e;k.prototype.isDestroyed=function(){return!1},k.prototype.destroy=function(){return K(this),Q(this),Z(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),d(this)};var fe=[0,0,0],me=[];k.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]},$.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this},$.prototype.updateShader=function(e,t,i){if(!u(this.shaderProgram)){var r=["DISTANCE_DISPLAY_CONDITION"];i&&r.push("VECTOR_TILE"),-1!==this.material.shaderSource.search(/varying\s+float\s+v_polylineAngle;/g)&&r.push("POLYLINE_DASH"),f.isInternetExplorer()||r.push("CLIP_POLYLINE");var n=new P({defines:r,sources:["varying vec4 v_pickColor;\n",this.material.shaderSource,R]}),o=t.getVertexShaderCallback()(O),a=new P({defines:r,sources:[M,o]});this.shaderProgram=x.fromCache({context:e,vertexShaderSource:a,fragmentShaderSource:n,attributeLocations:le})}},$.prototype.getPolylinePositionsLength=function(e){var t;if(this.mode===z.SCENE3D||!ee(e))return 4*(t=e._actualPositions.length)-4;var i=0,r=e._segments.lengths;t=r.length;for(var n=0;n<t;++n)i+=4*r[n]-4;return i};var _e=new i,ge=new i,ve=new i,ye=new i,Ce=new r,be=new t;$.prototype.write=function(e,t,n,a,s,l,c,d){for(var h=this.mode,f=d.ellipsoid.maximumRadius*g.PI,m=this.polylines,_=m.length,v=0;v<_;++v){for(var y,C=m[v],b=C.width,S=C.show&&b>0,T=C._index,E=this.getSegments(C,d),A=E.positions,w=E.lengths,x=A.length,P=C.getPickId(c).color,D=0,I=0,M=0;M<x;++M){0===M?C._loop?y=A[x-2]:(y=ye,i.subtract(A[0],A[1],y),i.add(A[0],y,y)):y=A[M-1],i.clone(y,ge),i.clone(A[M],_e),M===x-1?C._loop?y=A[1]:(y=ye,i.subtract(A[x-1],A[x-2],y),i.add(A[x-1],y,y)):y=A[M+1],i.clone(y,ve);var R=w[D];M===I+R&&(I+=R,++D);var O=M-I==0,L=M===I+w[D]-1;h===z.SCENE2D&&(ge.z=0,_e.z=0,ve.z=0),h!==z.SCENE2D&&h!==z.MORPHING||(O||L)&&f-Math.abs(_e.x)<1&&((_e.x<0&&ge.x>0||_e.x>0&&ge.x<0)&&i.clone(_e,ge),(_e.x<0&&ve.x>0||_e.x>0&&ve.x<0)&&i.clone(_e,ve));for(var N=O?2:0,F=L?2:4,B=N;B<F;++B){p.writeElements(_e,e,n),p.writeElements(ge,e,n+6),p.writeElements(ve,e,n+12);var k=B-2<0?-1:1;t[s]=M/(x-1),t[s+1]=B%2*2-1,t[s+2]=k,t[s+3]=T,n+=18,s+=4}}var V=Ce;V.x=o.floatToByte(P.red),V.y=o.floatToByte(P.green),V.z=o.floatToByte(P.blue),V.w=o.floatToByte(P.alpha);var U=be;U.x=b,U.y=S?1:0;var G=h===z.SCENE2D?C._boundingVolume2D:C._boundingVolumeWC,H=p.fromCartesian(G.center,ue),W=H.high,q=r.fromElements(H.low.x,H.low.y,H.low.z,G.radius,ce),Y=de;Y.x=0,Y.y=Number.MAX_VALUE;var j=C.distanceDisplayCondition;u(j)&&(Y.x=j.near,Y.y=j.far),l.setBatchedAttribute(T,0,U),l.setBatchedAttribute(T,1,V),l.attributes.length>2&&(l.setBatchedAttribute(T,2,W),l.setBatchedAttribute(T,3,q),l.setBatchedAttribute(T,4,Y))}};var Se=new i,Te=new i,Ee=new i,Ae=new i;$.prototype.writeForMorph=function(e,t){for(var r=this.modelMatrix,n=this.polylines,o=n.length,a=0;a<o;++a)for(var s=n[a],l=s._segments.positions,u=s._segments.lengths,c=l.length,d=0,h=0,f=0;f<c;++f){var m;0===f?s._loop?m=l[c-2]:(m=Ae,i.subtract(l[0],l[1],m),i.add(l[0],m,m)):m=l[f-1],m=v.multiplyByPoint(r,m,Te);var _,g=v.multiplyByPoint(r,l[f],Se);f===c-1?s._loop?_=l[1]:(_=Ae,i.subtract(l[c-1],l[c-2],_),i.add(l[c-1],_,_)):_=l[f+1],_=v.multiplyByPoint(r,_,Ee);var y=u[d];f===h+y&&(h+=y,++d);for(var C=f-h==0,b=f===h+u[d]-1,S=C?2:0,T=b?2:4,E=S;E<T;++E)p.writeElements(g,e,t),p.writeElements(m,e,t+6),p.writeElements(_,e,t+12),t+=18}};var we=new Array(1);$.prototype.updateIndices=function(e,t,i,r){var n=i.length-1,o=new J(0,r,this);i[n].push(o);var a=0,s=e[e.length-1],l=0;s.length>0&&(l=s[s.length-1]+1);for(var u=this.polylines,c=u.length,d=0;d<c;++d){var h=u[d];h._locatorBuckets=[];var p;if(this.mode===z.SCENE3D){p=we;var f=h._actualPositions.length;if(!(f>0))continue;p[0]=f}else p=h._segments.lengths;var m=p.length;if(m>0){for(var _=0,v=0;v<m;++v)for(var y=p[v]-1,C=0;C<y;++C)l+4>g.SIXTY_FOUR_KILOBYTES&&(h._locatorBuckets.push({locator:o,count:_}),_=0,t.push(4),s=[],e.push(s),l=0,o.count=a,a=0,r=0,o=new J(0,0,this),i[++n]=[o]),s.push(l,l+2,l+1),s.push(l+1,l+2,l+3),_+=6,a+=6,r+=6,l+=4;h._locatorBuckets.push({locator:o,count:_}),l+4>g.SIXTY_FOUR_KILOBYTES&&(t.push(0),s=[],e.push(s),l=0,o.count=a,r=0,a=0,o=new J(0,0,this),i[++n]=[o])}h._clean()}return o.count=a,r},$.prototype.getPolylineStartIndex=function(e){for(var t=this.polylines,i=0,r=t.length,n=0;n<r;++n){var o=t[n];if(o===e)break;i+=o._actualLength}return i};var xe={positions:void 0,lengths:void 0},Pe=new Array(1),De=new i,Ie=new n;$.prototype.getSegments=function(t,r){var n=t._actualPositions;if(this.mode===z.SCENE3D)return Pe[0]=n.length,xe.positions=n,xe.lengths=Pe,xe;ee(t)&&(n=t._segments.positions);for(var o,a=r.ellipsoid,s=[],l=this.modelMatrix,u=n.length,c=De,d=0;d<u;++d)o=n[d],c=v.multiplyByPoint(l,o,c),s.push(r.project(a.cartesianToCartographic(c,Ie)));if(s.length>0){t._boundingVolume2D=e.fromPoints(s,t._boundingVolume2D);var h=t._boundingVolume2D.center;t._boundingVolume2D.center=new i(h.z,h.x,h.y)}return xe.positions=s,xe.lengths=t._segments.lengths,xe};var Me;return $.prototype.writeUpdate=function(e,t,r,n){var o=this.mode,a=n.ellipsoid.maximumRadius*g.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);var l=Me,c=6*s*3;!u(l)||l.length<c?l=Me=new Float32Array(c):l.length>c&&(l=new Float32Array(l.buffer,0,c));var d,h=this.getSegments(t,n),f=h.positions,m=h.lengths,_=0,v=0,y=0;s=f.length;for(var C=0;C<s;++C){0===C?t._loop?d=f[s-2]:(d=ye,i.subtract(f[0],f[1],d),i.add(f[0],d,d)):d=f[C-1],i.clone(d,ge),i.clone(f[C],_e),C===s-1?t._loop?d=f[1]:(d=ye,i.subtract(f[s-1],f[s-2],d),i.add(f[s-1],d,d)):d=f[C+1],i.clone(d,ve);var b=m[v];C===y+b&&(y+=b,++v);var S=C-y==0,T=C===y+m[v]-1;o===z.SCENE2D&&(ge.z=0,_e.z=0,ve.z=0),o!==z.SCENE2D&&o!==z.MORPHING||(S||T)&&a-Math.abs(_e.x)<1&&((_e.x<0&&ge.x>0||_e.x>0&&ge.x<0)&&i.clone(_e,ge),(_e.x<0&&ve.x>0||_e.x>0&&ve.x<0)&&i.clone(_e,ve));for(var E=S?2:0,A=T?2:4,w=E;w<A;++w)p.writeElements(_e,l,_),p.writeElements(ge,l,_+6),p.writeElements(ve,l,_+12),_+=18}r.copyFromArrayView(l,18*Float32Array.BYTES_PER_ELEMENT*e)}},k}),define("DataSources/ScaledPositionProperty",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Ellipsoid","../Core/Event","../Core/ReferenceFrame","./Property"],function(e,t,i,r,n,o,a){"use strict";function s(e){this._definitionChanged=new n,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}return t(s.prototype,{isConstant:{get:function(){return a.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return e(this._value)?this._value.referenceFrame:o.FIXED}}}),s.prototype.getValue=function(e,t){return this.getValueInReferenceFrame(e,o.FIXED,t)},s.prototype.setValue=function(t){this._value!==t&&(this._value=t,e(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),e(t)&&(this._removeSubscription=t.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))},s.prototype.getValueInReferenceFrame=function(t,i,n){if(e(this._value))return n=this._value.getValueInReferenceFrame(t,i,n),e(n)?r.WGS84.scaleToGeodeticSurface(n,n):void 0},s.prototype.equals=function(e){return this===e||e instanceof s&&this._value===e._value},s.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)},s}),define("DataSources/PathVisualizer",["../Core/AssociativeArray","../Core/Cartesian3","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/JulianDate","../Core/Matrix3","../Core/Matrix4","../Core/ReferenceFrame","../Core/TimeInterval","../Core/Transforms","../Scene/PolylineCollection","../Scene/SceneMode","./CompositePositionProperty","./ConstantPositionProperty","./MaterialProperty","./Property","./ReferenceProperty","./SampledPositionProperty","./ScaledPositionProperty","./TimeIntervalCollectionPositionProperty"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function S(e,t,r,n,a,s,l,u,c){var d,h=u;d=e.getValueInReferenceFrame(t,s,c[h]),i(d)&&(c[h++]=d);for(var p,f,m,_=!i(a)||o.lessThanOrEquals(a,t)||o.greaterThanOrEquals(a,r),g=0,v=n.length,y=n[g],C=r,b=!1;g<v;){if(!_&&o.greaterThanOrEquals(y,a)&&(d=e.getValueInReferenceFrame(a,s,c[h]),i(d)&&(c[h++]=d),_=!0),o.greaterThan(y,t)&&o.lessThan(y,C)&&!y.equals(a)&&(d=e.getValueInReferenceFrame(y,s,c[h]),i(d)&&(c[h++]=d)),g<v-1){if(l>0&&!b){var S=n[g+1],T=o.secondsDifference(S,y);b=T>l,b&&(p=Math.ceil(T/l),f=0,m=T/Math.max(p,2),p=Math.max(p-1,1))}if(b&&f<p){y=o.addSeconds(y,m,new o),f++;continue}}b=!1,g++,y=n[g]}return d=e.getValueInReferenceFrame(r,s,c[h]),i(d)&&(c[h++]=d),h}function T(e,t,r,n,a,s,l,u){for(var c,d=0,h=l,p=t,f=Math.max(s,60),m=!i(n)||o.lessThanOrEquals(n,t)||o.greaterThanOrEquals(n,r);o.lessThan(p,r);)!m&&o.greaterThanOrEquals(p,n)&&(m=!0,c=e.getValueInReferenceFrame(n,a,u[h]),i(c)&&(u[h]=c,h++)),c=e.getValueInReferenceFrame(p,a,u[h]),i(c)&&(u[h]=c,h++),d++,p=o.addSeconds(t,f*d,new o);return c=e.getValueInReferenceFrame(r,a,u[h]),i(c)&&(u[h]=c,h++),h}function E(e,t,r,n,a,s,l,c){O.start=t,O.stop=r;for(var d=l,h=e.intervals,p=0;p<h.length;p++){var f=h.get(p);if(!u.intersect(f,O,M).isEmpty){var m=f.start;f.isStartIncluded||(m=f.isStopIncluded?f.stop:o.addSeconds(f.start,o.secondsDifference(f.stop,f.start)/2,new o));var _=e.getValueInReferenceFrame(m,a,c[d]);i(_)&&(c[d]=_,d++)}}return d}function A(e,t,r,n,o,a,s,l){var u=e.getValueInReferenceFrame(t,o,l[s]);return i(u)&&(l[s++]=u),s}function w(e,t,i,r,n,a,s,l){R.start=t,R.stop=i;for(var c=s,d=e.intervals,h=0;h<d.length;h++){var p=d.get(h);if(!u.intersect(p,R,M).isEmpty){var f=p.start,m=p.stop,_=t;o.greaterThan(f,_)&&(_=f);var g=i;o.lessThan(m,g)&&(g=m),c=x(p.data,_,g,r,n,a,c,l)}}return c}function x(e,t,i,r,n,o,a,s){for(;e instanceof g;)e=e.resolvedProperty;if(e instanceof v){a=S(e,t,i,e._property._times,r,n,o,a,s)}else a=e instanceof p?w(e,t,i,r,n,o,a,s):e instanceof C?E(e,t,i,r,n,o,a,s):e instanceof f||e instanceof y&&_.isConstant(e)?A(e,t,i,r,n,o,a,s):T(e,t,i,r,n,o,a,s);return a}function P(e,t,r,n,o,a,s){i(s)||(s=[]);var l=x(e,t,r,n,o,a,0,s);return s.length=l,s}function D(e,t){this._unusedIndexes=[],this._polylineCollection=new d,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}function I(t,i){i.collectionChanged.addEventListener(I.prototype._onCollectionChanged,this),this._scene=t,this._updaters={},this._entityCollection=i,this._items=new e,this._onCollectionChanged(i,i.values,[],[])}var M=new u,R=new u,O=new u,L=new a;return D.prototype.update=function(e){if(this._referenceFrame===l.INERTIAL){var r=c.computeIcrfToFixedMatrix(e,L);i(r)||(r=c.computeTemeToPseudoFixedMatrix(e,L)),s.fromRotationTranslation(r,t.ZERO,this._polylineCollection.modelMatrix)}},D.prototype.updateObject=function(e,t){var r,n,a=t.entity,s=a._path,l=a._position,u=s._show,c=t.polyline,d=a.isShowing&&(!i(u)||u.getValue(e));if(d){var h=_.getValueOrUndefined(s._leadTime,e),p=_.getValueOrUndefined(s._trailTime,e),f=a._availability,g=i(f),v=i(h),y=i(p);if(d=g||v&&y){if(y&&(r=o.addSeconds(e,-p,new o)),v&&(n=o.addSeconds(e,h,new o)),g){var C=f.start,b=f.stop;y&&!o.greaterThan(C,r)||(r=C),v&&!o.lessThan(b,n)||(n=b)}d=o.lessThan(r,n)}}if(!d)return void(i(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0));if(!i(c)){var S=this._unusedIndexes;if(S.length>0){var T=S.pop();c=this._polylineCollection.get(T),t.index=T}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=a,t.polyline=c}var E=_.getValueOrDefault(s._resolution,e,60);c.show=!0, -c.positions=P(l,r,n,e,this._referenceFrame,E,c.positions.slice()),c.material=m.getValue(e,s._material,c.material),c.width=_.getValueOrDefault(s._width,e,1),c.distanceDisplayCondition=_.getValueOrUndefined(s._distanceDisplayCondition,e,c.distanceDisplayCondition)},D.prototype.removeObject=function(e){var t=e.polyline;i(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)},D.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),r(this)},I.prototype.update=function(e){var t=this._updaters;for(var r in t)t.hasOwnProperty(r)&&t[r].update(e);for(var n=this._items.values,o=0,a=n.length;o<a;o++){var s=n[o],u=s.entity,c=u._position,d=s.updater,p=l.FIXED;this._scene.mode===h.SCENE3D&&(p=c.referenceFrame);var f=this._updaters[p];d===f&&i(f)?f.updateObject(e,s):(i(d)&&d.removeObject(s),i(f)||(f=new D(this._scene,p),f.update(e),this._updaters[p]=f),s.updater=f,i(f)&&f.updateObject(e,s))}return!0},I.prototype.isDestroyed=function(){return!1},I.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(I.prototype._onCollectionChanged,this);var e=this._updaters;for(var t in e)e.hasOwnProperty(t)&&e[t].destroy();return r(this)},I.prototype._onCollectionChanged=function(e,t,r,n){var o,a,s,l=this._items;for(o=t.length-1;o>-1;o--)a=t[o],i(a._path)&&i(a._position)&&l.set(a.id,new b(a));for(o=n.length-1;o>-1;o--)a=n[o],i(a._path)&&i(a._position)?l.contains(a.id)||l.set(a.id,new b(a)):(s=l.get(a.id),i(s)&&(i(s.updater)&&s.updater.removeObject(s),l.remove(a.id)));for(o=r.length-1;o>-1;o--)a=r[o],s=l.get(a.id),i(s)&&(i(s.updater)&&s.updater.removeObject(s),l.remove(a.id))},I._subSample=P,I}),define("Scene/createBillboardPointCallback",[],function(){"use strict";function e(e,t,i,r,n){return function(){var o=document.createElement("canvas"),a=n+2*r;o.height=o.width=a;var s=o.getContext("2d");return s.clearRect(0,0,a,a),0!==r&&(s.beginPath(),s.arc(a/2,a/2,a/2,0,2*Math.PI,!0),s.closePath(),s.fillStyle=i,s.fill(),e<1&&(s.save(),s.globalCompositeOperation="destination-out",s.beginPath(),s.arc(a/2,a/2,n/2,0,2*Math.PI,!0),s.closePath(),s.fillStyle="black",s.fill(),s.restore())),s.beginPath(),s.arc(a/2,a/2,n/2,0,2*Math.PI,!0),s.closePath(),s.fillStyle=t,s.fill(),o}}return e}),define("DataSources/PointVisualizer",["../Core/AssociativeArray","../Core/Cartesian3","../Core/Color","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/NearFarScalar","../Scene/createBillboardPointCallback","../Scene/HeightReference","./BoundingSphereState","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function p(t,i){i.collectionChanged.addEventListener(p.prototype._onCollectionChanged,this),this._cluster=t,this._entityCollection=i,this._items=new e,this._onCollectionChanged(i,i.values,[],[])}function f(e,t,i){if(r(e)){var n=e.pointPrimitive;if(r(n))return e.pointPrimitive=void 0,void i.removePoint(t);var o=e.billboard;r(o)&&(e.billboard=void 0,i.removeBillboard(t))}}var m=i.WHITE,_=i.BLACK,g=new i,v=new t,y=new i,C=new s,b=new s,S=new a;return p.prototype.update=function(e){for(var n=this._items.values,o=this._cluster,a=0,s=n.length;a<s;a++){var c,h=n[a],p=h.entity,T=p._point,E=h.pointPrimitive,A=h.billboard,w=d.getValueOrDefault(T._heightReference,e,u.NONE),x=p.isShowing&&p.isAvailable(e)&&d.getValueOrDefault(T._show,e,!0);if(x&&(c=d.getValueOrUndefined(p._position,e,v),x=r(c)),x){d.isConstant(p._position)||(o._clusterDirty=!0);var P=!1,D=!1;if(w===u.NONE||r(A)?w!==u.NONE||r(E)||(r(A)&&(f(h,p,o),A=void 0),E=o.getPoint(p),E.id=p,h.pointPrimitive=E):(r(E)&&(f(h,p,o),E=void 0),A=o.getBillboard(p),A.id=p,A.image=void 0,h.billboard=A,P=!0,D=t.equals(A.position,c)&&A.heightReference===w),r(E))E.show=!0,E.position=c,E.scaleByDistance=d.getValueOrUndefined(T._scaleByDistance,e,C),E.translucencyByDistance=d.getValueOrUndefined(T._translucencyByDistance,e,b),E.color=d.getValueOrDefault(T._color,e,m,g),E.outlineColor=d.getValueOrDefault(T._outlineColor,e,_,y),E.outlineWidth=d.getValueOrDefault(T._outlineWidth,e,0),E.pixelSize=d.getValueOrDefault(T._pixelSize,e,1),E.distanceDisplayCondition=d.getValueOrUndefined(T._distanceDisplayCondition,e,S),E.disableDepthTestDistance=d.getValueOrDefault(T._disableDepthTestDistance,e,0);else if(r(A)){A.show=!0,A.position=c,A.scaleByDistance=d.getValueOrUndefined(T._scaleByDistance,e,C),A.translucencyByDistance=d.getValueOrUndefined(T._translucencyByDistance,e,b),A.distanceDisplayCondition=d.getValueOrUndefined(T._distanceDisplayCondition,e,S),A.disableDepthTestDistance=d.getValueOrDefault(T._disableDepthTestDistance,e,0),A.heightReference=w;var I=d.getValueOrDefault(T._color,e,m,g),M=d.getValueOrDefault(T._outlineColor,e,_,y),R=Math.round(d.getValueOrDefault(T._outlineWidth,e,0)),O=Math.max(1,Math.round(d.getValueOrDefault(T._pixelSize,e,1)));if(R>0?(A.scale=1,P=P||R!==h.outlineWidth||O!==h.pixelSize||!i.equals(I,h.color)||!i.equals(M,h.outlineColor)):(A.scale=O/50,O=50,P=P||R!==h.outlineWidth||!i.equals(I,h.color)||!i.equals(M,h.outlineColor)),P){h.color=i.clone(I,h.color),h.outlineColor=i.clone(M,h.outlineColor),h.pixelSize=O,h.outlineWidth=R;var L=I.alpha,N=I.toCssColorString(),F=M.toCssColorString(),B=JSON.stringify([N,O,F,R]);A.setImage(B,l(L,N,F,R,O))}D&&A._updateClamping()}}else f(h,p,o)}return!0},p.prototype.getBoundingSphere=function(e,i){var n=this._items.get(e.id);if(!r(n)||!r(n.pointPrimitive)&&!r(n.billboard))return c.FAILED;if(r(n.pointPrimitive))i.center=t.clone(n.pointPrimitive.position,i.center);else{var o=n.billboard;if(!r(o._clampedPosition))return c.PENDING;i.center=t.clone(o._clampedPosition,i.center)}return i.radius=0,c.DONE},p.prototype.isDestroyed=function(){return!1},p.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(p.prototype._onCollectionChanged,this);for(var e=this._entityCollection.values,t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return n(this)},p.prototype._onCollectionChanged=function(e,t,i,n){var o,a,s=this._items,l=this._cluster;for(o=t.length-1;o>-1;o--)a=t[o],r(a._point)&&r(a._position)&&s.set(a.id,new h(a));for(o=n.length-1;o>-1;o--)a=n[o],r(a._point)&&r(a._position)?s.contains(a.id)||s.set(a.id,new h(a)):(f(s.get(a.id),a,l),s.remove(a.id));for(o=i.length-1;o>-1;o--)a=i[o],f(s.get(a.id),a,l),s.remove(a.id)},p}),define("DataSources/PolylineGeometryUpdater",["../Core/ArcType","../Core/BoundingSphere","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/Event","../Core/GeometryInstance","../Core/GroundPolylineGeometry","../Core/Iso8601","../Core/oneTimeWarning","../Core/PolylineGeometry","../Core/PolylinePipeline","../Core/ShowGeometryInstanceAttribute","../DataSources/Entity","../Scene/ClassificationType","../Scene/GroundPolylinePrimitive","../Scene/PolylineCollection","../Scene/PolylineColorAppearance","../Scene/PolylineMaterialAppearance","../Scene/ShadowMode","./BoundingSphereState","./ColorMaterialProperty","./ConstantProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M){"use strict";function R(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function O(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function L(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(L.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new h,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new R,this._groundGeometryOptions=new O,this._id="polyline-"+e.id,this._clampToGround=!1,this._supportsPolylinesOnTerrain=C.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}function N(e,t,i){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=i,this._positions=[]}function F(e){if(a(e._line))return e._line;var t=e._geometryUpdater._scene.id,i=z[t],r=e._primitives;!a(i)||i.isDestroyed()?(i=new T,z[t]=i,r.add(i)):r.contains(i)||r.add(i);var n=i.add();return n.id=e._geometryUpdater._entity,e._line=n,n}var B=new D(0),z={},k=new r,V=new P(r.WHITE),U=new D(!0),G=new D(w.DISABLED),H=new D(new c),W=new D(b.BOTH);s(L.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!a(this._entity.availability)&&M.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}}),L.prototype.isOutlineVisible=function(e){return!1},L.prototype.isFilled=function(e){var t=this._entity,i=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return o(i,!1)},L.prototype.createFillGeometryInstance=function(e){var t,i=this._entity,o=i.isAvailable(e),s=new y(o&&i.isShowing&&this._showProperty.getValue(e)),l=this._distanceDisplayConditionProperty.getValue(e),u=d.fromDistanceDisplayCondition(l),c={show:s,distanceDisplayCondition:u};return this._materialProperty instanceof P&&(a(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(t=this._materialProperty.color.getValue(e,k)),a(t)||(t=r.WHITE),c.color=n.fromColor(t)),this.clampToGround?new p({id:i,geometry:new f(this._groundGeometryOptions),attributes:c}):(a(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof P&&(a(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||o)&&(t=this._depthFailMaterialProperty.color.getValue(e,k)),a(t)||(t=r.WHITE),c.depthFailColor=n.fromColor(t)),new p({id:i,geometry:new g(this._geometryOptions),attributes:c}))},L.prototype.createOutlineGeometryInstance=function(e){},L.prototype.isDestroyed=function(){return!1},L.prototype.destroy=function(){this._entitySubscription(),l(this)},L.prototype._onEntityPropertyChanged=function(e,t,i,r){if("availability"===t||"polyline"===t){var n=this._entity.polyline;if(!a(n))return void(this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this)));var s=n.positions,l=n.show;if(a(l)&&l.isConstant&&!l.getValue(m.MINIMUM_VALUE)||!a(s))return void(this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this)));var u=n.zIndex,c=o(n.material,V),d=c instanceof P;this._materialProperty=c,this._depthFailMaterialProperty=n.depthFailMaterial,this._showProperty=o(l,U),this._shadowsProperty=o(n.shadows,G),this._distanceDisplayConditionProperty=o(n.distanceDisplayCondition,H),this._classificationTypeProperty=o(n.classificationType,W),this._fillEnabled=!0,this._zIndex=o(u,B);var h=n.width,p=n.arcType,f=n.clampToGround,g=n.granularity;if(s.isConstant&&M.isConstant(h)&&M.isConstant(p)&&M.isConstant(g)&&M.isConstant(f)&&M.isConstant(u)){var v=this._geometryOptions,y=s.getValue(m.MINIMUM_VALUE,v.positions);if(!a(y)||y.length<2)return void(this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this)));var C;C=d&&(!a(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof P)?E.VERTEX_FORMAT:A.VERTEX_FORMAT,v.vertexFormat=C,v.positions=y,v.width=a(h)?h.getValue(m.MINIMUM_VALUE):void 0,v.arcType=a(p)?p.getValue(m.MINIMUM_VALUE):void 0,v.granularity=a(g)?g.getValue(m.MINIMUM_VALUE):void 0;var b=this._groundGeometryOptions;b.positions=y,b.width=v.width,b.arcType=v.arcType,b.granularity=v.granularity,this._clampToGround=!!a(f)&&f.getValue(m.MINIMUM_VALUE),!this._clampToGround&&a(u)&&_("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}else this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this))}},L.prototype.createDynamicUpdater=function(e,t){return new N(e,t,this)};var q={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};return N.prototype.update=function(t){var i=this._geometryUpdater,r=i._entity,n=r.polyline,o=n.positions,s=M.getValueOrUndefined(o,t,this._positions);i._clampToGround=M.getValueOrDefault(n._clampToGround,t,!1),i._groundGeometryOptions.positions=s,i._groundGeometryOptions.width=M.getValueOrDefault(n._width,t,1),i._groundGeometryOptions.arcType=M.getValueOrDefault(n._arcType,t,e.GEODESIC),i._groundGeometryOptions.granularity=M.getValueOrDefault(n._granularity,t,9999);var l=this._groundPrimitives;if(a(this._groundPolylinePrimitive)&&(l.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),i.clampToGround){if(!r.isShowing||!r.isAvailable(t)||!M.getValueOrDefault(n._show,t,!0))return;if(!a(s)||s.length<2)return;var u,c=i.fillMaterialProperty;if(c instanceof P)u=new E;else{var d=I.getValue(t,c,this._material);u=new A({material:d,translucent:d.isTranslucent()}),this._material=d}return this._groundPolylinePrimitive=l.add(new S({geometryInstances:i.createFillGeometryInstance(t),appearance:u,classificationType:i.classificationTypeProperty.getValue(t),asynchronous:!1}),M.getValueOrUndefined(i.zIndex,t)),void(a(this._line)&&(this._line.show=!1))}var h=F(this);if(!r.isShowing||!r.isAvailable(t)||!M.getValueOrDefault(n._show,t,!0))return void(h.show=!1);if(!a(s)||s.length<2)return void(h.show=!1);var p=e.GEODESIC;p=M.getValueOrDefault(n._arcType,t,p);var f=i._scene.globe;p!==e.NONE&&a(f)&&(q.ellipsoid=f.ellipsoid,q.positions=s,q.granularity=M.getValueOrUndefined(n._granularity,t),q.height=v.extractHeights(s,f.ellipsoid),s=v.generateCartesianArc(q)),h.show=!0,h.positions=s.slice(),h.material=I.getValue(t,i.fillMaterialProperty,h.material),h.width=M.getValueOrDefault(n._width,t,1),h.distanceDisplayCondition=M.getValueOrUndefined(n._distanceDisplayCondition,t,h.distanceDisplayCondition)},N.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){var i=this._groundPolylinePrimitive;if(a(i)&&i.show&&i.ready){var r=i.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(a(r)&&a(r.boundingSphere))return t.clone(r.boundingSphere,e),x.DONE}return a(i)&&!i.ready?x.PENDING:x.DONE}var n=F(this);return n.show&&n.positions.length>0?(t.fromPoints(n.positions,e),x.DONE):x.FAILED},N.prototype.isDestroyed=function(){return!1},N.prototype.destroy=function(){var e=this._geometryUpdater,t=e._scene.id,i=z[t];a(i)&&(i.remove(this._line),0===i.length&&(this._primitives.removeAndDestroy(i),delete z[t])),a(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),l(this)},L}),define("DataSources/StaticGroundPolylinePerMaterialBatch",["../Core/defaultValue","../Core/AssociativeArray","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defined","../Core/DistanceDisplayCondition","../Core/DistanceDisplayConditionGeometryInstanceAttribute","../Core/ShowGeometryInstanceAttribute","../Scene/GroundPolylinePrimitive","../Scene/PolylineColorAppearance","../Scene/PolylineMaterialAppearance","./BoundingSphereState","./ColorMaterialProperty","./MaterialProperty","./Property"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e,i,r,n,o){var a;a=r instanceof h?u:c,this.orderedGroundPrimitives=e,this.classificationType=i,this.appearanceType=a,this.materialProperty=r,this.updaters=new t,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new t,this.material=void 0,this.updatersWithAttributes=new t,this.attributes=new t,this.invalidated=!1,this.removeMaterialSubscription=r.definitionChanged.addEventListener(m.prototype.onMaterialChanged,this),this.subscriptions=new t,this.showsUpdated=new t,this.zIndex=n,this._asynchronous=o}function _(t,i,r){this._items=[],this._orderedGroundPrimitives=t,this._classificationType=i,this._asynchronous=e(r,!0)}var g=new i,v=new o,y=new o;return m.prototype.onMaterialChanged=function(){this.invalidated=!0},m.prototype.isMaterial=function(e){var t=this.materialProperty,i=e.fillMaterialProperty;return i===t||i instanceof h&&t instanceof h||n(t)&&t.equals(i)},m.prototype.add=function(e,t,i){var r=t.id;if(this.updaters.set(r,t),this.geometry.set(r,i),t.hasConstantFill&&t.fillMaterialProperty.isConstant&&f.isConstant(t.distanceDisplayConditionProperty)){var n=this;this.subscriptions.set(r,t.entity.definitionChanged.addEventListener(function(e,i,r,o){"isShowing"===i&&n.showsUpdated.set(t.id,t)}))}else this.updatersWithAttributes.set(r,t);this.createPrimitive=!0},m.prototype.remove=function(e){var t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);var i=this.subscriptions.get(t);return n(i)&&(i(),this.subscriptions.remove(t)),!0}return!1},m.prototype.update=function(e){var t,u=!0,d=this.primitive,h=this.orderedGroundPrimitives,m=this.geometry.values;if(this.createPrimitive){if(m.length>0)n(d)&&(n(this.oldPrimitive)?h.remove(d):this.oldPrimitive=d),d=new l({show:!1,asynchronous:this._asynchronous,geometryInstances:m,appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===c&&(this.material=p.getValue(e,this.materialProperty,this.material),d.appearance.material=this.material),h.add(d,this.zIndex),u=!1;else{n(d)&&(h.remove(d),d=void 0);var _=this.oldPrimitive;n(_)&&(h.remove(_),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=d,this.createPrimitive=!1}else if(n(d)&&d.ready){d.show=!0,n(this.oldPrimitive)&&(h.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===c&&(this.material=p.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);var C=this.updatersWithAttributes.values,b=C.length;for(t=0;t<b;t++){var S=C[t],T=S.entity,E=this.geometry.get(S.id),A=this.attributes.get(E.id.id);if(n(A)||(A=d.getGeometryInstanceAttributes(E.id),this.attributes.set(E.id.id,A)),!S.fillMaterialProperty.isConstant){var w=S.fillMaterialProperty.color,x=f.getValueOrDefault(w,e,i.WHITE,g);i.equals(A._lastColor,x)||(A._lastColor=i.clone(x,A._lastColor),A.color=r.toValue(x,A.color))}var P=T.isShowing&&(S.hasConstantFill||S.isFilled(e)),D=1===A.show[0];P!==D&&(A.show=s.toValue(P,A.show));var I=S.distanceDisplayConditionProperty;if(!f.isConstant(I)){var M=f.getValueOrDefault(I,e,y,v);o.equals(M,A._lastDistanceDisplayCondition)||(A._lastDistanceDisplayCondition=o.clone(M,A._lastDistanceDisplayCondition),A.distanceDisplayCondition=a.toValue(M,A.distanceDisplayCondition))}}this.updateShows(d)}else n(d)&&!d.ready&&(u=!1);return u},m.prototype.updateShows=function(e){for(var t=this.showsUpdated.values,i=t.length,r=0;r<i;r++){var o=t[r],a=o.entity,l=this.geometry.get(o.id),u=this.attributes.get(l.id.id);n(u)||(u=e.getGeometryInstanceAttributes(l.id),this.attributes.set(l.id.id,u));var c=a.isShowing;c!==(1===u.show[0])&&(u.show=s.toValue(c,u.show),l.attributes.show.value[0]=u.show[0])}this.showsUpdated.removeAll()},m.prototype.contains=function(e){return this.updaters.contains(e.id)},m.prototype.getBoundingSphere=function(e,t){var i=this.primitive;if(!i.ready)return d.PENDING;var r=i.getGeometryInstanceAttributes(e.entity);return!n(r)||!n(r.boundingSphere)||n(r.show)&&0===r.show[0]?d.FAILED:(r.boundingSphere.clone(t),d.DONE)},m.prototype.destroy=function(){var e=this.primitive,t=this.orderedGroundPrimitives;n(e)&&t.remove(e);var i=this.oldPrimitive;n(i)&&t.remove(i),this.removeMaterialSubscription()},_.prototype.add=function(e,t){for(var i=this._items,r=i.length,n=t.createFillGeometryInstance(e),o=f.getValueOrDefault(t.zIndex,0),a=0;a<r;++a){var s=i[a];if(s.isMaterial(t)&&s.zIndex===o)return void s.add(e,t,n)}var l=new m(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,o,this._asynchronous);l.add(e,t,n),i.push(l)},_.prototype.remove=function(e){for(var t=this._items,i=t.length,r=i-1;r>=0;r--){var n=t[r];if(n.remove(e)){0===n.updaters.length&&(t.splice(r,1),n.destroy());break}}},_.prototype.update=function(e){var t,i=this._items,r=i.length;for(t=r-1;t>=0;t--){var n=i[t];if(n.invalidated){i.splice(t,1);for(var o=n.updaters.values,a=o.length,s=0;s<a;s++)this.add(e,o[s]);n.destroy()}}var l=!0;for(t=0;t<i.length;t++)l=i[t].update(e)&&l;return l},_.prototype.getBoundingSphere=function(e,t){for(var i=this._items,r=i.length,n=0;n<r;n++){var o=i[n];if(o.contains(e))return o.getBoundingSphere(e,t)}return d.FAILED},_.prototype.removeAllPrimitives=function(){for(var e=this._items,t=e.length,i=0;i<t;i++)e[i].destroy();this._items.length=0},_}),define("DataSources/PolylineVisualizer",["../Core/AssociativeArray","../Core/BoundingSphere","../Core/Check","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Scene/ClassificationType","../Scene/PolylineColorAppearance","../Scene/PolylineMaterialAppearance","../Scene/ShadowMode","./BoundingSphereState","./ColorMaterialProperty","./DynamicGeometryBatch","./PolylineGeometryUpdater","./StaticGeometryColorBatch","./StaticGeometryPerMaterialBatch","./StaticGroundPolylinePerMaterialBatch"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e,t){for(var i=e._batches,r=i.length,n=0;n<r;n++)i[n].remove(t)}function v(e,t,i){if(i.isDynamic)return void e._dynamicBatch.add(t,i);if(i.clampToGround&&i.fillEnabled){var r=i.classificationTypeProperty.getValue(t);return void e._groundBatches[r].add(t,i)}var o;i.fillEnabled&&(o=i.shadowsProperty.getValue(t));var a=0;n(i.depthFailMaterialProperty)&&(a=i.depthFailMaterialProperty instanceof d?1:2);var s;n(o)&&(s=o+a*u.NUMBER_OF_SHADOW_MODES),i.fillEnabled&&(i.fillMaterialProperty instanceof d?e._colorBatches[s].add(t,i):e._materialBatches[s].add(t,i))}function y(t,i,n,o){o=r(o,t.groundPrimitives),n=r(n,t.primitives),this._scene=t,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new e,this._removedObjects=new e,this._changedObjects=new e;var c,d=u.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(3*d),this._materialBatches=new Array(3*d),c=0;c<d;++c)this._colorBatches[c]=new f(n,s,void 0,!1,c),this._materialBatches[c]=new m(n,l,void 0,!1,c),this._colorBatches[c+d]=new f(n,s,s,!1,c),this._materialBatches[c+d]=new m(n,l,s,!1,c),this._colorBatches[c+2*d]=new f(n,s,l,!1,c),this._materialBatches[c+2*d]=new m(n,l,l,!1,c);this._dynamicBatch=new h(n,o);var p=a.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(p),c=0;c<p;++c)this._groundBatches[c]=new _(o,c);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new e,this._updaters=new e,this._entityCollection=i,i.collectionChanged.addEventListener(y.prototype._onCollectionChanged,this),this._onCollectionChanged(i,i.values,C)}var C=[];y.prototype.update=function(e){var t,i,r,n,o=this._addedObjects,a=o.values,s=this._removedObjects,l=s.values,u=this._changedObjects,c=u.values;for(t=c.length-1;t>-1;t--)i=c[t],r=i.id,n=this._updaters.get(r),n.entity===i?(g(this,n),v(this,e,n)):(l.push(i),a.push(i));for(t=l.length-1;t>-1;t--)i=l[t],r=i.id,n=this._updaters.get(r),g(this,n),n.destroy(),this._updaters.remove(r),this._subscriptions.get(r)(),this._subscriptions.remove(r);for(t=a.length-1;t>-1;t--)i=a[t],r=i.id,n=new p(i,this._scene),this._updaters.set(r,n),v(this,e,n),this._subscriptions.set(r,n.geometryChanged.addEventListener(y._onGeometryChanged,this));o.removeAll(),s.removeAll(),u.removeAll();var d=!0,h=this._batches,f=h.length;for(t=0;t<f;t++)d=h[t].update(e)&&d;return d};var b=[],S=new t;return y.prototype.getBoundingSphere=function(e,i){for(var r=b,n=S,o=0,a=c.DONE,s=this._batches,l=s.length,u=this._updaters.get(e.id),d=0;d<l;d++){if((a=s[d].getBoundingSphere(u,n))===c.PENDING)return c.PENDING;a===c.DONE&&(r[o]=t.clone(n,r[o]),o++)}return 0===o?c.FAILED:(r.length=o,t.fromBoundingSpheres(r,i),c.DONE)},y.prototype.isDestroyed=function(){return!1},y.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(y.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();var e,t=this._batches,i=t.length;for(e=0;e<i;e++)t[e].removeAllPrimitives();var r=this._subscriptions.values;for(i=r.length,e=0;e<i;e++)r[e]();return this._subscriptions.removeAll(),o(this)},y._onGeometryChanged=function(e){var t=this._removedObjects,i=this._changedObjects,r=e.entity,o=r.id;n(t.get(o))||n(i.get(o))||i.set(o,r)},y.prototype._onCollectionChanged=function(e,t,i){var r,n,o,a=this._addedObjects,s=this._removedObjects,l=this._changedObjects;for(r=i.length-1;r>-1;r--)o=i[r],n=o.id,a.remove(n)||(s.set(n,o),l.remove(n));for(r=t.length-1;r>-1;r--)o=t[r],n=o.id,s.remove(n)?l.set(n,o):a.set(n,o)},y}),define("DataSources/DataSourceDisplay",["../Core/ApproximateTerrainHeights","../Core/BoundingSphere","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/EventHelper","../Scene/GroundPolylinePrimitive","../Scene/GroundPrimitive","../Scene/OrderedGroundPrimitiveCollection","../Scene/PrimitiveCollection","./BillboardVisualizer","./BoundingSphereState","./CustomDataSource","./GeometryVisualizer","./LabelVisualizer","./ModelVisualizer","./PathVisualizer","./PointVisualizer","./PolylineVisualizer"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(e){u.initializeTerrainHeights(),l.initializeTerrainHeights();var t=e.scene,i=e.dataSourceCollection;this._eventHelper=new s,this._eventHelper.add(i.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(i.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(i.dataSourceMoved,this._onDataSourceMoved,this),this._dataSourceCollection=i,this._scene=t,this._visualizersCallback=r(e.visualizersCallback,b.defaultVisualizersCallback);var n=!1,o=new d,a=new d;i.length>0&&(t.primitives.add(o),t.groundPrimitives.add(a),n=!0),this._primitives=o,this._groundPrimitives=a;for(var c=0,h=i.length;c<h;c++)this._onDataSourceAdded(i,i.get(c));var p=new f;this._onDataSourceAdded(void 0,p),this._defaultDataSource=p;var m,_;if(!n){var g=this,v=function(){t.primitives.add(o),t.groundPrimitives.add(a),m(),_(),g._removeDefaultDataSoureListener=void 0,g._removeDataSourceCollectionListener=void 0};m=p.entities.collectionChanged.addEventListener(v),_=i.dataSourceAdded.addEventListener(v)}this._removeDefaultDataSoureListener=m,this._removeDataSourceCollectionListener=_,this._ready=!1}b.defaultVisualizersCallback=function(e,t,i){var r=i.entities;return[new h(t,r),new m(e,r,i._primitives,i._groundPrimitives),new _(t,r),new g(e,r),new y(t,r),new v(e,r),new C(e,r,i._primitives,i._groundPrimitives)]},o(b.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}}),b.prototype.isDestroyed=function(){return!1},b.prototype.destroy=function(){this._eventHelper.removeAll();for(var e=this._dataSourceCollection,t=0,i=e.length;t<i;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),n(this._removeDefaultDataSoureListener)?(this._removeDefaultDataSoureListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),a(this)},b.prototype.update=function(t){if(!e.initialized)return this._ready=!1,!1;var i,r,o,a,s=!0,l=this._dataSourceCollection,u=l.length;for(i=0;i<u;i++){var c=l.get(i);for(n(c.update)&&(s=c.update(t)&&s),o=c._visualizers,a=o.length,r=0;r<a;r++)s=o[r].update(t)&&s}for(o=this._defaultDataSource._visualizers,a=o.length,r=0;r<a;r++)s=o[r].update(t)&&s;return this._ready=s,s};var S=[],T=new t;return b.prototype.getBoundingSphere=function(e,i,r){if(!this._ready)return p.PENDING;var o,a,s=this._defaultDataSource;if(!s.entities.contains(e)){s=void 0;var l=this._dataSourceCollection;for(a=l.length,o=0;o<a;o++){var u=l.get(o);if(u.entities.contains(e)){s=u;break}}}if(!n(s))return p.FAILED;var c=S,d=T,h=0,f=p.DONE,m=s._visualizers,_=m.length;for(o=0;o<_;o++){var g=m[o];if(n(g.getBoundingSphere)){if(f=m[o].getBoundingSphere(e,d),!i&&f===p.PENDING)return p.PENDING;f===p.DONE&&(c[h]=t.clone(d,c[h]),h++)}}return 0===h?p.FAILED:(c.length=h,t.fromBoundingSpheres(c,r),p.DONE)},b.prototype._onDataSourceAdded=function(e,t){var i=this._scene,r=this._primitives,n=this._groundPrimitives,o=r.add(new d),a=n.add(new c);t._primitives=o,t._groundPrimitives=a;var s=t.clustering;s._initialize(i),o.add(s),t._visualizers=this._visualizersCallback(i,s,t)},b.prototype._onDataSourceRemoved=function(e,t){var i=this._primitives,r=this._groundPrimitives,n=t._primitives,o=t._groundPrimitives,a=t.clustering;n.remove(a);for(var s=t._visualizers,l=s.length,u=0;u<l;u++)s[u].destroy();i.remove(n),r.remove(o),t._visualizers=void 0},b.prototype._onDataSourceMoved=function(e,t,i){var r=this._primitives,n=this._groundPrimitives,o=e._primitives,a=e._groundPrimitives;t===i+1?(r.raise(o),n.raise(a)):t===i-1?(r.lower(o),n.lower(a)):0===t?(r.lowerToBottom(o),n.lowerToBottom(a),r.raise(o),n.raise(a)):(r.raiseToTop(o),n.raiseToTop(a))},b}),define("DataSources/EntityView",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Ellipsoid","../Core/HeadingPitchRange","../Core/JulianDate","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/Transforms","../Scene/SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(t,i,n,o,a,c,p){var f=t.scene.mode,x=a.getValue(c,t._lastCartesian);if(r(x)){var P,D,I,M=!1,R=!1;if(f===h.SCENE3D){s.addSeconds(c,.001,A);var O=a.getValue(A,y);if(r(O)||(s.addSeconds(c,-.001,A),O=a.getValue(A,y),R=!0),r(O)){var L,N=d.computeFixedToIcrfMatrix(c,m),F=d.computeFixedToIcrfMatrix(A,_);r(N)&&r(F)?L=u.transpose(N,g):(L=d.computeTemeToPseudoFixedMatrix(c,g),N=u.transpose(L,m),F=d.computeTemeToPseudoFixedMatrix(A,_),u.transpose(F,F));var B=u.multiplyByVector(N,x,T),z=u.multiplyByVector(F,O,E);e.subtract(B,z,S);var k=1e3*e.magnitude(S),V=l.GRAVITATIONALPARAMETER,U=-V/(k*k-2*V/e.magnitude(B));U<0||U>w*p.maximumRadius?(P=C,e.normalize(x,P),e.negate(P,P),I=e.clone(e.UNIT_Z,b),D=e.cross(I,P,y),e.magnitude(D)>l.EPSILON7&&(e.normalize(P,P),e.normalize(D,D),I=e.cross(P,D,b),e.normalize(I,I),M=!0)):e.equalsEpsilon(x,O,l.EPSILON7)||(I=C,e.normalize(B,I),e.normalize(z,z),D=e.cross(I,z,b),R&&(D=e.multiplyByScalar(D,-1,D)),e.equalsEpsilon(D,e.ZERO,l.EPSILON7)||(P=e.cross(D,I,y),u.multiplyByVector(L,P,P),u.multiplyByVector(L,D,D),u.multiplyByVector(L,I,I),e.normalize(P,P),e.normalize(D,D),e.normalize(I,I),M=!0))}} -r(t.boundingSphere)&&(x=t.boundingSphere.center);var G,H,W;o&&(G=e.clone(i.position,S),H=e.clone(i.direction,T),W=e.clone(i.up,E));var q=v;M?(q[0]=P.x,q[1]=P.y,q[2]=P.z,q[3]=0,q[4]=D.x,q[5]=D.y,q[6]=D.z,q[7]=0,q[8]=I.x,q[9]=I.y,q[10]=I.z,q[11]=0,q[12]=x.x,q[13]=x.y,q[14]=x.z,q[15]=0):d.eastNorthUpToFixedFrame(x,p,q),i._setTransform(q),o&&(e.clone(G,i.position),e.clone(H,i.direction),e.clone(W,i.up),e.cross(H,W,i.right))}if(n){var Y=f===h.SCENE2D||e.equals(t._offset3D,e.ZERO)?void 0:t._offset3D;i.lookAtTransform(i.transform,Y)}}function f(t,r,n){this.entity=t,this.scene=r,this.ellipsoid=i(n,o.WGS84),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new e,this._defaultOffset3D=void 0,this._offset3D=new e}var m=new u,_=new u,g=new u,v=new c,y=new e,C=new e,b=new e,S=new e,T=new e,E=new e,A=new s,w=1.25;n(f,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(t){this._defaultOffset3D=e.clone(t,new e)}}}),f.defaultOffset3D=new e(-14e3,3500,3500);var x=new a,P=new e;return f.prototype.update=function(t,i){var n=this.scene,o=this.ellipsoid,a=n.mode;if(a!==h.MORPHING){var s=this.entity,u=s.position;if(r(u)){var c=s!==this._lastEntity,d=a!==this._mode,m=n.camera,_=c||d,g=!0;if(c){var v=s.viewFrom,y=r(v);if(!y&&r(i)){x.pitch=-l.PI_OVER_FOUR,x.range=0;var C=u.getValue(t,P);if(r(C)){var b=2-1/Math.max(1,e.magnitude(C)/o.maximumRadius);x.pitch*=b}m.viewBoundingSphere(i,x),this.boundingSphere=i,_=!1,g=!1}else y&&r(v.getValue(t,this._offset3D))||e.clone(f._defaultOffset3D,this._offset3D)}else d||this._mode===h.SCENE2D||e.clone(m.position,this._offset3D);this._lastEntity=s,this._mode=a,p(this,m,_,g,u,t,o)}}},f}),function(){function e(e,t){function i(t){var i,r=e.arcs[t<0?~t:t],n=r[0];return e.transform?(i=[0,0],r.forEach(function(e){i[0]+=e[0],i[1]+=e[1]})):i=r[r.length-1],t<0?[i,n]:[n,i]}function r(e,t){for(var i in e){var r=e[i];delete t[r.start],delete r.start,delete r.end,r.forEach(function(e){n[e<0?~e:e]=1}),s.push(r)}}var n={},o={},a={},s=[],l=-1;return t.forEach(function(i,r){var n,o=e.arcs[i<0?~i:i];o.length<3&&!o[1][0]&&!o[1][1]&&(n=t[++l],t[l]=i,t[r]=n)}),t.forEach(function(e){var t,r,n=i(e),s=n[0],l=n[1];if(t=a[s])if(delete a[t.end],t.push(e),t.end=l,r=o[l]){delete o[r.start];var u=r===t?t:t.concat(r);o[u.start=t.start]=a[u.end=r.end]=u}else o[t.start]=a[t.end]=t;else if(t=o[l])if(delete o[t.start],t.unshift(e),t.start=s,r=a[s]){delete a[r.end];var c=r===t?t:r.concat(t);o[c.start=r.start]=a[c.end=t.end]=c}else o[t.start]=a[t.end]=t;else t=[e],o[t.start=s]=a[t.end=l]=t}),r(a,o),r(o,a),t.forEach(function(e){n[e<0?~e:e]||s.push([e])}),s}function t(t,i,r){function n(e){var t=e<0?~e:e;(c[t]||(c[t]=[])).push({i:e,g:u})}function o(e){e.forEach(n)}function a(e){e.forEach(o)}function s(e){"GeometryCollection"===e.type?e.geometries.forEach(s):e.type in d&&(u=e,d[e.type](e.arcs))}var l=[];if(arguments.length>1){var u,c=[],d={LineString:o,MultiLineString:a,Polygon:a,MultiPolygon:function(e){e.forEach(a)}};s(i),c.forEach(arguments.length<3?function(e){l.push(e[0].i)}:function(e){r(e[0].g,e[e.length-1].g)&&l.push(e[0].i)})}else for(var h=0,p=t.arcs.length;h<p;++h)l.push(h);return{type:"MultiLineString",arcs:e(t,l)}}function i(t,i){function r(e){e.forEach(function(t){t.forEach(function(t){(s[t=t<0?~t:t]||(s[t]=[])).push(e)})}),l.push(e)}function o(e){return d(a(t,{type:"Polygon",arcs:[e]}).coordinates[0])>0}var s={},l=[],u=[];return i.forEach(function(e){"Polygon"===e.type?r(e.arcs):"MultiPolygon"===e.type&&e.arcs.forEach(r)}),l.forEach(function(e){if(!e._){var t=[],i=[e];for(e._=1,u.push(t);e=i.pop();)t.push(e),e.forEach(function(e){e.forEach(function(e){s[e<0?~e:e].forEach(function(e){e._||(e._=1,i.push(e))})})})}}),l.forEach(function(e){delete e._}),{type:"MultiPolygon",arcs:u.map(function(i){var r=[];if(i.forEach(function(e){e.forEach(function(e){e.forEach(function(e){s[e<0?~e:e].length<2&&r.push(e)})})}),r=e(t,r),(n=r.length)>1)for(var a,l=o(i[0][0]),u=0;u<n;++u)if(l===o(r[u])){a=r[0],r[0]=r[u],r[u]=a;break}return r})}}function r(e,t){return"GeometryCollection"===t.type?{type:"FeatureCollection",features:t.geometries.map(function(t){return o(e,t)})}:o(e,t)}function o(e,t){var i={type:"Feature",id:t.id,properties:t.properties||{},geometry:a(e,t)};return null==t.id&&delete i.id,i}function a(e,t){function i(e,t){t.length&&t.pop();for(var i,r=c[e<0?~e:e],n=0,o=r.length;n<o;++n)t.push(i=r[n].slice()),u(i,n);e<0&&s(t,o)}function r(e){return e=e.slice(),u(e,0),e}function n(e){for(var t=[],r=0,n=e.length;r<n;++r)i(e[r],t);return t.length<2&&t.push(t[0].slice()),t}function o(e){for(var t=n(e);t.length<4;)t.push(t[0].slice());return t}function a(e){return e.map(o)}function l(e){var t=e.type;return"GeometryCollection"===t?{type:t,geometries:e.geometries.map(l)}:t in d?{type:t,coordinates:d[t](e)}:null}var u=m(e.transform),c=e.arcs,d={Point:function(e){return r(e.coordinates)},MultiPoint:function(e){return e.coordinates.map(r)},LineString:function(e){return n(e.arcs)},MultiLineString:function(e){return e.arcs.map(n)},Polygon:function(e){return a(e.arcs)},MultiPolygon:function(e){return e.arcs.map(a)}};return l(t)}function s(e,t){for(var i,r=e.length,n=r-t;n<--r;)i=e[n],e[n++]=e[r],e[r]=i}function l(e,t){for(var i=0,r=e.length;i<r;){var n=i+r>>>1;e[n]<t?i=n+1:r=n}return i}function u(e){function t(e,t){e.forEach(function(e){e<0&&(e=~e);var i=n[e];i?i.push(t):n[e]=[t]})}function i(e,i){e.forEach(function(e){t(e,i)})}function r(e,t){"GeometryCollection"===e.type?e.geometries.forEach(function(e){r(e,t)}):e.type in a&&a[e.type](e.arcs,t)}var n={},o=e.map(function(){return[]}),a={LineString:t,MultiLineString:i,Polygon:i,MultiPolygon:function(e,t){e.forEach(function(e){i(e,t)})}};e.forEach(r);for(var s in n)for(var u=n[s],c=u.length,d=0;d<c;++d)for(var h=d+1;h<c;++h){var p,f=u[d],m=u[h];(p=o[f])[s=l(p,m)]!==m&&p.splice(s,0,m),(p=o[m])[s=l(p,f)]!==f&&p.splice(s,0,f)}return o}function c(e,t){function i(e){o.remove(e),e[1][2]=t(e),o.push(e)}var r=m(e.transform),n=_(e.transform),o=f();return t||(t=h),e.arcs.forEach(function(e){for(var a,s,l=[],u=0,c=0,d=e.length;c<d;++c)s=e[c],r(e[c]=[s[0],s[1],1/0],c);for(var c=1,d=e.length-1;c<d;++c)a=e.slice(c-1,c+2),a[1][2]=t(a),l.push(a),o.push(a);for(var c=0,d=l.length;c<d;++c)a=l[c],a.previous=l[c-1],a.next=l[c+1];for(;a=o.pop();){var h=a.previous,p=a.next;a[1][2]<u?a[1][2]=u:u=a[1][2],h&&(h.next=p,h[2]=a[2],i(h)),p&&(p.previous=h,p[0]=a[0],i(p))}e.forEach(n)}),e}function d(e){for(var t,i=-1,r=e.length,n=e[r-1],o=0;++i<r;)t=n,n=e[i],o+=t[0]*n[1]-t[1]*n[0];return.5*o}function h(e){var t=e[0],i=e[1],r=e[2];return Math.abs((t[0]-r[0])*(i[1]-t[1])-(t[0]-i[0])*(r[1]-t[1]))}function p(e,t){return e[1][2]-t[1][2]}function f(){function e(e,t){for(;t>0;){var i=(t+1>>1)-1,n=r[i];if(p(e,n)>=0)break;r[n._=t]=n,r[e._=t=i]=e}}function t(e,t){for(;;){var i=t+1<<1,o=i-1,a=t,s=r[a];if(o<n&&p(r[o],s)<0&&(s=r[a=o]),i<n&&p(r[i],s)<0&&(s=r[a=i]),a===t)break;r[s._=t]=s,r[e._=t=a]=e}}var i={},r=[],n=0;return i.push=function(t){return e(r[t._=n]=t,n++),n},i.pop=function(){if(!(n<=0)){var e,i=r[0];return--n>0&&(e=r[n],t(r[e._=0]=e,0)),i}},i.remove=function(i){var o,a=i._;if(r[a]===i)return a!==--n&&(o=r[n],(p(o,i)<0?e:t)(r[o._=a]=o,a)),a},i}function m(e){if(!e)return g;var t,i,r=e.scale[0],n=e.scale[1],o=e.translate[0],a=e.translate[1];return function(e,s){s||(t=i=0),e[0]=(t+=e[0])*r+o,e[1]=(i+=e[1])*n+a}}function _(e){if(!e)return g;var t,i,r=e.scale[0],n=e.scale[1],o=e.translate[0],a=e.translate[1];return function(e,s){s||(t=i=0);var l=(e[0]-o)/r|0,u=(e[1]-a)/n|0;e[0]=l-t,e[1]=u-i,t=l,i=u}}function g(){}var v={version:"1.6.18",mesh:function(e){return a(e,t.apply(this,arguments))},meshArcs:t,merge:function(e){return a(e,i.apply(this,arguments))},mergeArcs:i,feature:r,neighbors:u,presimplify:c};"function"==typeof define&&define.amd?define("ThirdParty/topojson",v):"object"==typeof module&&module.exports?module.exports=v:this.topojson=v}(),define("DataSources/GeoJsonDataSource",["../Core/ArcType","../Core/Cartesian3","../Core/Color","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/getFilenameFromUri","../Core/PinBuilder","../Core/PolygonHierarchy","../Core/Resource","../Core/RuntimeError","../Scene/HeightReference","../Scene/VerticalOrigin","../ThirdParty/topojson","../ThirdParty/when","./BillboardGraphics","./CallbackProperty","./ColorMaterialProperty","./ConstantPositionProperty","./ConstantProperty","./DataSource","./EntityCluster","./EntityCollection","./PolygonGraphics","./PolylineGraphics"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x){"use strict";function P(e){return t.fromDegrees(e[0],e[1],e[2])}function D(e,t){var i="";for(var r in e)if(e.hasOwnProperty(r)){if(r===t||-1!==ae.indexOf(r))continue;var n=e[r];o(n)&&(i+="object"==typeof n?"<tr><th>"+r+"</th><td>"+D(n)+"</td></tr>":"<tr><th>"+r+"</th><td>"+n+"</td></tr>")}return i.length>0&&(i='<table class="cesium-infoBox-defaultTable"><tbody>'+i+"</tbody></table>"),i}function I(e,t,i){var r;return function(n,a){return o(r)||(r=e(t,i)),r}}function M(e,t){return new y(I(D,e,t),!0)}function R(e,t,i){var n=e.id;if(o(n)&&"Feature"===e.type){for(var a=2,s=n;o(t.getById(s));)s=n+"_"+a,a++;n=s}else n=r();var l=t.getOrCreateEntity(n),u=e.properties;if(o(u)){l.properties=u;var c,d=u.title;if(o(d))l.name=d,c="title";else{var h=Number.MAX_VALUE;for(var p in u)if(u.hasOwnProperty(p)&&u[p]){var f=p.toLowerCase();if(h>1&&"title"===f){h=1,c=p;break}h>2&&"name"===f?(h=2,c=p):h>3&&/title/i.test(p)?(h=3,c=p):h>4&&/name/i.test(p)&&(h=4,c=p)}o(c)&&(l.name=u[c])}var m=u.description;null!==m&&(l.description=o(m)?new S(m):i(u,c))}return l}function O(e,t){for(var i=new Array(e.length),r=0;r<e.length;r++)i[r]=t(e[r]);return i}function L(e,t,i,r,n){if(null===t.geometry)return void R(t,e._entityCollection,n.describe);if(!o(t.geometry))throw new p("feature.geometry is required.");var a=t.geometry.type,s=le[a];if(!o(s))throw new p("Unknown geometry type: "+a);s(e,t,t.geometry,r,n)}function N(e,t,i,r,n){for(var o=t.features,a=0,s=o.length;a<s;a++)L(e,o[a],void 0,r,n)}function F(e,t,i,r,n){for(var a=i.geometries,s=0,l=a.length;s<l;s++){var u=a[s],c=u.type,d=le[c];if(!o(d))throw new p("Unknown geometry type: "+c);d(e,t,u,r,n)}}function B(e,t,r,a,s){var l=s.markerSymbol,u=s.markerColor,c=s.markerSize,d=t.properties;if(o(d)){var h=d["marker-color"];o(h)&&(u=i.fromCssColorString(h)),c=n(oe[d["marker-size"]],c);var p=d["marker-symbol"];o(p)&&(l=p)}var _;_=o(l)?1===l.length?e._pinBuilder.fromText(l.toUpperCase(),u,c):e._pinBuilder.fromMakiIconId(l,u,c):e._pinBuilder.fromColor(u,c);var y=new v;y.verticalOrigin=new S(m.BOTTOM),2===a.length&&s.clampToGround&&(y.heightReference=f.CLAMP_TO_GROUND);var C=R(t,e._entityCollection,s.describe);C.billboard=y,C.position=new b(r(a));var T=g(_).then(function(e){y.image=new S(e)}).otherwise(function(){y.image=new S(e._pinBuilder.fromColor(u,c))});e._promises.push(T)}function z(e,t,i,r,n){B(e,t,r,i.coordinates,n)}function k(e,t,i,r,n){for(var o=i.coordinates,a=0;a<o.length;a++)B(e,t,r,o[a],n)}function V(t,r,n,a,s){var l=s.strokeMaterialProperty,u=s.strokeWidthProperty,c=r.properties;if(o(c)){var d=c["stroke-width"];o(d)&&(u=new S(d));var h,p=c.stroke;o(p)&&(h=i.fromCssColorString(p));var f=c["stroke-opacity"];o(f)&&1!==f&&(o(h)||(h=l.color.clone()),h.alpha=f),o(h)&&(l=new C(h))}var m=R(r,t._entityCollection,s.describe),_=new x;m.polyline=_,_.clampToGround=s.clampToGround,_.material=l,_.width=u,_.positions=new S(O(a,n)),_.arcType=e.RHUMB}function U(e,t,i,r,n){V(e,t,r,i.coordinates,n)}function G(e,t,i,r,n){for(var o=i.coordinates,a=0;a<o.length;a++)V(e,t,r,o[a],n)}function H(t,r,n,a,s){if(0!==a.length&&0!==a[0].length){var l=s.strokeMaterialProperty.color,u=s.fillMaterialProperty,c=s.strokeWidthProperty,h=r.properties;if(o(h)){var p=h["stroke-width"];o(p)&&(c=new S(p));var f,m=h.stroke;o(m)&&(f=i.fromCssColorString(m));var _=h["stroke-opacity"];o(_)&&1!==_&&(o(f)||(f=s.strokeMaterialProperty.color.clone()),f.alpha=_),o(f)&&(l=new S(f));var g,v=h.fill;o(v)&&(g=i.fromCssColorString(v),g.alpha=u.color.alpha),_=h["fill-opacity"],o(_)&&_!==u.color.alpha&&(o(g)||(g=u.color.clone()),g.alpha=_),o(g)&&(u=new C(g))}var y=new w;y.outline=new S(!0),y.outlineColor=l,y.outlineWidth=c,y.material=u,y.arcType=e.RHUMB;for(var b=[],T=1,E=a.length;T<E;T++)b.push(new d(O(a[T],n)));var A=a[0];y.hierarchy=new S(new d(O(A,n),b)),A[0].length>2?y.perPositionHeight=new S(!0):s.clampToGround||(y.height=0);R(r,t._entityCollection,s.describe).polygon=y}}function W(e,t,i,r,n){H(e,t,r,i.coordinates,n)}function q(e,t,i,r,n){for(var o=i.coordinates,a=0;a<o.length;a++)H(e,t,r,o[a],n)}function Y(e,t,i,r,n){for(var o in i.objects)if(i.objects.hasOwnProperty(o)){var a=_.feature(i,i.objects[o]),s=se[a.type];s(e,a,a,r,n)}}function j(e){this._name=e,this._changed=new l,this._error=new l,this._isLoading=!1,this._loading=new l,this._entityCollection=new A(this),this._promises=[],this._pinBuilder=new c,this._entityCluster=new E}function X(e,t,i,r){var n;o(r)&&(n=u(r)),o(n)&&e._name!==n&&(e._name=n,e._changed.raiseEvent(e));var a=se[t.type];if(!o(a))throw new p("Unsupported GeoJSON object type: "+t.type);var s=t.crs,l=null!==s?P:null;if(o(s)){if(!o(s.properties))throw new p("crs.properties is undefined.");var c=s.properties;if("name"===s.type){if(l=K[c.name],!o(l))throw new p("Unknown crs name: "+c.name)}else if("link"===s.type){var d=Z[c.href];if(o(d)||(d=J[c.type]),!o(d))throw new p("Unable to resolve crs link: "+JSON.stringify(c));l=d(c)}else{if("EPSG"!==s.type)throw new p("Unknown crs type: "+s.type);if(l=K["EPSG:"+c.code],!o(l))throw new p("Unknown crs EPSG code: "+c.code)}}return g(l,function(r){return e._entityCollection.removeAll(),null!==r&&a(e,t,t,r,i),g.all(e._promises,function(){return e._promises.length=0,T.setLoading(e,!1),e})})}var Q,K={"urn:ogc:def:crs:OGC:1.3:CRS84":P,"EPSG:4326":P,"urn:ogc:def:crs:EPSG::4326":P},Z={},J={},$=48,ee=i.ROYALBLUE,te=i.YELLOW,ie=2,re=i.fromBytes(255,255,0,100),ne=!1,oe={small:24,medium:48,large:64},ae=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"],se={Feature:L,FeatureCollection:N,GeometryCollection:F,LineString:U,MultiLineString:G,MultiPoint:k,MultiPolygon:q,Point:z,Polygon:W,Topology:Y},le={GeometryCollection:F,LineString:U,MultiLineString:G,MultiPoint:k,MultiPolygon:q,Point:z,Polygon:W,Topology:Y};return j.load=function(e,t){return(new j).load(e,t)},a(j,{markerSize:{get:function(){return $},set:function(e){$=e}},markerSymbol:{get:function(){return Q},set:function(e){Q=e}},markerColor:{get:function(){return ee},set:function(e){ee=e}},stroke:{get:function(){return te},set:function(e){te=e}},strokeWidth:{get:function(){return ie},set:function(e){ie=e}},fill:{get:function(){return re},set:function(e){re=e}},clampToGround:{get:function(){return ne},set:function(e){ne=e}},crsNames:{get:function(){return K}},crsLinkHrefs:{get:function(){return Z}},crsLinkTypes:{get:function(){return J}}}),a(j.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}}),j.prototype.load=function(e,t){T.setLoading(this,!0);var i=e;t=n(t,n.EMPTY_OBJECT);var r=t.sourceUri;("string"==typeof e||e instanceof h)&&(e=h.createIfNeeded(e),i=e.fetchJson(),r=n(r,e.getUrlComponent())),t={describe:n(t.describe,M),markerSize:n(t.markerSize,$),markerSymbol:n(t.markerSymbol,Q),markerColor:n(t.markerColor,ee),strokeWidthProperty:new S(n(t.strokeWidth,ie)),strokeMaterialProperty:new C(n(t.stroke,te)),fillMaterialProperty:new C(n(t.fill,re)),clampToGround:n(t.clampToGround,ne)};var o=this;return g(i,function(e){return X(o,e,t,r)}).otherwise(function(e){return T.setLoading(o,!1),o._error.raiseEvent(o,e),console.log(e),g.reject(e)})},j}),define("DataSources/KmlCamera",[],function(){"use strict";function e(e,t){this.position=e,this.headingPitchRoll=t}return e}),function(e,t){"function"==typeof define&&define.amd?define("ThirdParty/Autolinker",[],function(){return e.Autolinker=t()}):"object"==typeof exports?module.exports=t():e.Autolinker=t()}(this,function(){var e=function(t){e.Util.assign(this,t);var i=this.hashtag;if(!1!==i&&"twitter"!==i&&"facebook"!==i)throw new Error("invalid `hashtag` cfg - see docs")};return e.prototype={constructor:e,urls:!0,email:!0,twitter:!0,phone:!0,hashtag:!1,newWindow:!0,stripPrefix:!0,truncate:void 0,className:"",htmlParser:void 0,matchParser:void 0,tagBuilder:void 0,link:function(e){for(var t=this.getHtmlParser(),i=t.parse(e),r=0,n=[],o=0,a=i.length;o<a;o++){var s=i[o],l=s.getType(),u=s.getText();if("element"===l)"a"===s.getTagName()&&(s.isClosing()?r=Math.max(r-1,0):r++),n.push(u);else if("entity"===l||"comment"===l)n.push(u);else if(0===r){var c=this.linkifyStr(u);n.push(c)}else n.push(u)}return n.join("")},linkifyStr:function(e){return this.getMatchParser().replace(e,this.createMatchReturnVal,this)},createMatchReturnVal:function(t){var i;return this.replaceFn&&(i=this.replaceFn.call(this,this,t)),"string"==typeof i?i:!1===i?t.getMatchedText():i instanceof e.HtmlTag?i.toAnchorString():this.getTagBuilder().build(t).toAnchorString()},getHtmlParser:function(){var t=this.htmlParser;return t||(t=this.htmlParser=new e.htmlParser.HtmlParser),t},getMatchParser:function(){var t=this.matchParser;return t||(t=this.matchParser=new e.matchParser.MatchParser({urls:this.urls,email:this.email,twitter:this.twitter,phone:this.phone,hashtag:this.hashtag,stripPrefix:this.stripPrefix})),t},getTagBuilder:function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new e.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t}},e.link=function(t,i){return new e(i).link(t)},e.match={},e.htmlParser={},e.matchParser={},e.Util={abstractMethod:function(){throw"abstract"},trimRegex:/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,assign:function(e,t){for(var i in t)t.hasOwnProperty(i)&&(e[i]=t[i]);return e},extend:function(t,i){var r=t.prototype,n=function(){};n.prototype=r;var o;o=i.hasOwnProperty("constructor")?i.constructor:function(){r.constructor.apply(this,arguments)};var a=o.prototype=new n;return a.constructor=o,a.superclass=r,delete i.constructor,e.Util.assign(a,i),o},ellipsis:function(e,t,i){return e.length>t&&(i=null==i?"..":i,e=e.substring(0,t-i.length)+i),e},indexOf:function(e,t){if(Array.prototype.indexOf)return e.indexOf(t);for(var i=0,r=e.length;i<r;i++)if(e[i]===t)return i;return-1},splitAndCapture:function(e,t){if(!t.global)throw new Error("`splitRegex` must have the 'g' flag set");for(var i,r=[],n=0;i=t.exec(e);)r.push(e.substring(n,i.index)),r.push(i[0]),n=i.index+i[0].length;return r.push(e.substring(n)),r},trim:function(e){return e.replace(this.trimRegex,"")}},e.HtmlTag=e.Util.extend(Object,{whitespaceRegex:/\s+/,constructor:function(t){e.Util.assign(this,t),this.innerHtml=this.innerHtml||this.innerHTML},setTagName:function(e){return this.tagName=e,this},getTagName:function(){return this.tagName||""},setAttr:function(e,t){return this.getAttrs()[e]=t,this},getAttr:function(e){return this.getAttrs()[e]},setAttrs:function(t){var i=this.getAttrs();return e.Util.assign(i,t),this},getAttrs:function(){return this.attrs||(this.attrs={})},setClass:function(e){return this.setAttr("class",e)},addClass:function(t){for(var i,r=this.getClass(),n=this.whitespaceRegex,o=e.Util.indexOf,a=r?r.split(n):[],s=t.split(n);i=s.shift();)-1===o(a,i)&&a.push(i);return this.getAttrs().class=a.join(" "),this},removeClass:function(t){for(var i,r=this.getClass(),n=this.whitespaceRegex,o=e.Util.indexOf,a=r?r.split(n):[],s=t.split(n);a.length&&(i=s.shift());){var l=o(a,i);-1!==l&&a.splice(l,1)}return this.getAttrs().class=a.join(" "),this},getClass:function(){return this.getAttrs().class||""},hasClass:function(e){return-1!==(" "+this.getClass()+" ").indexOf(" "+e+" ")},setInnerHtml:function(e){return this.innerHtml=e,this},getInnerHtml:function(){return this.innerHtml||""},toAnchorString:function(){var e=this.getTagName(),t=this.buildAttrsStr();return t=t?" "+t:"",["<",e,t,">",this.getInnerHtml(),"</",e,">"].join("")},buildAttrsStr:function(){if(!this.attrs)return"";var e=this.getAttrs(),t=[];for(var i in e)e.hasOwnProperty(i)&&t.push(i+'="'+e[i]+'"');return t.join(" ")}}),e.AnchorTagBuilder=e.Util.extend(Object,{constructor:function(t){e.Util.assign(this,t)},build:function(t){return new e.HtmlTag({tagName:"a",attrs:this.createAttrs(t.getType(),t.getAnchorHref()),innerHtml:this.processAnchorText(t.getAnchorText())})},createAttrs:function(e,t){var i={href:t},r=this.createCssClass(e);return r&&(i.class=r),this.newWindow&&(i.target="_blank"),i},createCssClass:function(e){var t=this.className;return t?t+" "+t+"-"+e:""},processAnchorText:function(e){return e=this.doTruncate(e)},doTruncate:function(t){return e.Util.ellipsis(t,this.truncate||Number.POSITIVE_INFINITY)}}),e.htmlParser.HtmlParser=e.Util.extend(Object,{htmlRegex:function(){var e=/!--([\s\S]+?)--/,t=/[0-9a-zA-Z][0-9a-zA-Z:]*/,i=/[^\s\0"'>\/=\x01-\x1F\x7F]+/,r=/(?:"[^"]*?"|'[^']*?'|[^'"=<>`\s]+)/,n=i.source+"(?:\\s*=\\s*"+r.source+")?";return new RegExp(["(?:","<(!DOCTYPE)","(?:","\\s+","(?:",n,"|",r.source+")",")*",">",")","|","(?:","<(/)?","(?:",e.source,"|","(?:","("+t.source+")","(?:","\\s+",n,")*","\\s*/?",")",")",">",")"].join(""),"gi")}(),htmlCharacterEntitiesRegex:/( | |<|<|>|>|"|"|')/gi,parse:function(e){for(var t,i,r=this.htmlRegex,n=0,o=[];null!==(t=r.exec(e));){var a=t[0],s=t[3],l=t[1]||t[4],u=!!t[2],c=e.substring(n,t.index);c&&(i=this.parseTextAndEntityNodes(c),o.push.apply(o,i)),s?o.push(this.createCommentNode(a,s)):o.push(this.createElementNode(a,l,u)),n=t.index+a.length}if(n<e.length){var d=e.substring(n);d&&(i=this.parseTextAndEntityNodes(d),o.push.apply(o,i))}return o},parseTextAndEntityNodes:function(t){for(var i=[],r=e.Util.splitAndCapture(t,this.htmlCharacterEntitiesRegex),n=0,o=r.length;n<o;n+=2){var a=r[n],s=r[n+1];a&&i.push(this.createTextNode(a)),s&&i.push(this.createEntityNode(s))}return i},createCommentNode:function(t,i){return new e.htmlParser.CommentNode({text:t,comment:e.Util.trim(i)})},createElementNode:function(t,i,r){return new e.htmlParser.ElementNode({text:t,tagName:i.toLowerCase(),closing:r})},createEntityNode:function(t){return new e.htmlParser.EntityNode({text:t})},createTextNode:function(t){return new e.htmlParser.TextNode({text:t})}}),e.htmlParser.HtmlNode=e.Util.extend(Object,{text:"",constructor:function(t){e.Util.assign(this,t)},getType:e.Util.abstractMethod,getText:function(){return this.text}}),e.htmlParser.CommentNode=e.Util.extend(e.htmlParser.HtmlNode,{comment:"",getType:function(){return"comment"},getComment:function(){return this.comment}}),e.htmlParser.ElementNode=e.Util.extend(e.htmlParser.HtmlNode,{tagName:"",closing:!1,getType:function(){return"element"},getTagName:function(){return this.tagName},isClosing:function(){return this.closing}}),e.htmlParser.EntityNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"entity"}}),e.htmlParser.TextNode=e.Util.extend(e.htmlParser.HtmlNode,{getType:function(){return"text"}}),e.matchParser.MatchParser=e.Util.extend(Object,{urls:!0,email:!0,twitter:!0,phone:!0,hashtag:!1,stripPrefix:!0,matcherRegex:function(){var e=/(^|[^\w])@(\w{1,15})/,t=/(^|[^\w])#(\w{1,15})/,i=/(?:[\-;:&=\+\$,\w\.]+@)/,r=/(?:\+?\d{1,3}[-\s.])?\(?\d{3}\)?[-\s.]?\d{3}[-\s.]\d{4}/,n=/(?:[A-Za-z][-.+A-Za-z0-9]+:(?![A-Za-z][-.+A-Za-z0-9]+:\/\/)(?!\d+\/?)(?:\/\/)?)/,o=/(?:www\.)/,a=/[A-Za-z0-9\.\-]*[A-Za-z0-9\-]/,s=/\.(?:international|construction|contractors|enterprises|photography|productions|foundation|immobilien|industries|management|properties|technology|christmas|community|directory|education|equipment|institute|marketing|solutions|vacations|bargains|boutique|builders|catering|cleaning|clothing|computer|democrat|diamonds|graphics|holdings|lighting|partners|plumbing|supplies|training|ventures|academy|careers|company|cruises|domains|exposed|flights|florist|gallery|guitars|holiday|kitchen|neustar|okinawa|recipes|rentals|reviews|shiksha|singles|support|systems|agency|berlin|camera|center|coffee|condos|dating|estate|events|expert|futbol|kaufen|luxury|maison|monash|museum|nagoya|photos|repair|report|social|supply|tattoo|tienda|travel|viajes|villas|vision|voting|voyage|actor|build|cards|cheap|codes|dance|email|glass|house|mango|ninja|parts|photo|shoes|solar|today|tokyo|tools|watch|works|aero|arpa|asia|best|bike|blue|buzz|camp|club|cool|coop|farm|fish|gift|guru|info|jobs|kiwi|kred|land|limo|link|menu|mobi|moda|name|pics|pink|post|qpon|rich|ruhr|sexy|tips|vote|voto|wang|wien|wiki|zone|bar|bid|biz|cab|cat|ceo|com|edu|gov|int|kim|mil|net|onl|org|pro|pub|red|tel|uno|wed|xxx|xyz|ac|ad|ae|af|ag|ai|al|am|an|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tp|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw)\b/,l=/[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]?!:,.;]*[\-A-Za-z0-9+&@#\/%=~_()|'$*\[\]]/;return new RegExp(["(",e.source,")","|","(",i.source,a.source,s.source,")","|","(","(?:","(",n.source,a.source,")","|","(?:","(.?//)?",o.source,a.source,")","|","(?:","(.?//)?",a.source,s.source,")",")","(?:"+l.source+")?",")","|","(",r.source,")","|","(",t.source,")"].join(""),"gi")}(),charBeforeProtocolRelMatchRegex:/^(.)?\/\//,constructor:function(t){e.Util.assign(this,t),this.matchValidator=new e.MatchValidator},replace:function(e,t,i){var r=this;return e.replace(this.matcherRegex,function(e,n,o,a,s,l,u,c,d,h,p,f,m){var _=r.processCandidateMatch(e,n,o,a,s,l,u,c,d,h,p,f,m);if(_){var g=t.call(i,_.match);return _.prefixStr+g+_.suffixStr}return e})},processCandidateMatch:function(t,i,r,n,o,a,s,l,u,c,d,h,p){var f,m=l||u,_="",g="";if(a&&!this.urls||o&&!this.email||c&&!this.phone||i&&!this.twitter||d&&!this.hashtag||!this.matchValidator.isValidMatch(a,s,m))return null;if(this.matchHasUnbalancedClosingParen(t)&&(t=t.substr(0,t.length-1),g=")"),o)f=new e.match.Email({matchedText:t,email:o});else if(i)r&&(_=r,t=t.slice(1)),f=new e.match.Twitter({matchedText:t,twitterHandle:n});else if(c){var v=t.replace(/\D/g,"");f=new e.match.Phone({matchedText:t,number:v})}else if(d)h&&(_=h,t=t.slice(1)),f=new e.match.Hashtag({matchedText:t,serviceName:this.hashtag,hashtag:p});else{if(m){var y=m.match(this.charBeforeProtocolRelMatchRegex)[1]||"";y&&(_=y,t=t.slice(1))}f=new e.match.Url({matchedText:t,url:t,protocolUrlMatch:!!s,protocolRelativeMatch:!!m,stripPrefix:this.stripPrefix})}return{prefixStr:_,suffixStr:g,match:f}},matchHasUnbalancedClosingParen:function(e){if(")"===e.charAt(e.length-1)){var t=e.match(/\(/g),i=e.match(/\)/g);if((t&&t.length||0)<(i&&i.length||0))return!0}return!1}}),e.MatchValidator=e.Util.extend(Object,{invalidProtocolRelMatchRegex:/^[\w]\/\//,hasFullProtocolRegex:/^[A-Za-z][-.+A-Za-z0-9]+:\/\//,uriSchemeRegex:/^[A-Za-z][-.+A-Za-z0-9]+:/,hasWordCharAfterProtocolRegex:/:[^\s]*?[A-Za-z]/,isValidMatch:function(e,t,i){return!(t&&!this.isValidUriScheme(t)||this.urlMatchDoesNotHaveProtocolOrDot(e,t)||this.urlMatchDoesNotHaveAtLeastOneWordChar(e,t)||this.isInvalidProtocolRelativeMatch(i))},isValidUriScheme:function(e){var t=e.match(this.uriSchemeRegex)[0].toLowerCase();return"javascript:"!==t&&"vbscript:"!==t},urlMatchDoesNotHaveProtocolOrDot:function(e,t){return!(!e||t&&this.hasFullProtocolRegex.test(t)||-1!==e.indexOf("."))},urlMatchDoesNotHaveAtLeastOneWordChar:function(e,t){return!(!e||!t)&&!this.hasWordCharAfterProtocolRegex.test(e)},isInvalidProtocolRelativeMatch:function(e){return!!e&&this.invalidProtocolRelMatchRegex.test(e)}}),e.match.Match=e.Util.extend(Object,{constructor:function(t){e.Util.assign(this,t)},getType:e.Util.abstractMethod,getMatchedText:function(){return this.matchedText},getAnchorHref:e.Util.abstractMethod,getAnchorText:e.Util.abstractMethod}),e.match.Email=e.Util.extend(e.match.Match,{getType:function(){return"email"},getEmail:function(){return this.email},getAnchorHref:function(){return"mailto:"+this.email},getAnchorText:function(){return this.email}}),e.match.Hashtag=e.Util.extend(e.match.Match,{getType:function(){return"hashtag"},getHashtag:function(){return this.hashtag},getAnchorHref:function(){var e=this.serviceName,t=this.hashtag;switch(e){case"twitter":return"https://twitter.com/hashtag/"+t;case"facebook":return"https://www.facebook.com/hashtag/"+t;default:throw new Error("Unknown service name to point hashtag to: ",e)}},getAnchorText:function(){return"#"+this.hashtag}}),e.match.Phone=e.Util.extend(e.match.Match,{getType:function(){return"phone"},getNumber:function(){return this.number},getAnchorHref:function(){return"tel:"+this.number},getAnchorText:function(){return this.matchedText}}),e.match.Twitter=e.Util.extend(e.match.Match,{getType:function(){return"twitter"},getTwitterHandle:function(){return this.twitterHandle},getAnchorHref:function(){return"https://twitter.com/"+this.twitterHandle},getAnchorText:function(){return"@"+this.twitterHandle}}),e.match.Url=e.Util.extend(e.match.Match,{urlPrefixRegex:/^(https?:\/\/)?(www\.)?/i,protocolRelativeRegex:/^\/\//,protocolPrepended:!1,getType:function(){return"url"},getUrl:function(){var e=this.url;return this.protocolRelativeMatch||this.protocolUrlMatch||this.protocolPrepended||(e=this.url="http://"+e,this.protocolPrepended=!0),e},getAnchorHref:function(){return this.getUrl().replace(/&/g,"&")},getAnchorText:function(){var e=this.getUrl();return this.protocolRelativeMatch&&(e=this.stripProtocolRelativePrefix(e)),this.stripPrefix&&(e=this.stripUrlPrefix(e)),e=this.removeTrailingSlash(e)},stripUrlPrefix:function(e){return e.replace(this.urlPrefixRegex,"")},stripProtocolRelativePrefix:function(e){return e.replace(this.protocolRelativeRegex,"")},removeTrailingSlash:function(e){return"/"===e.charAt(e.length-1)&&(e=e.slice(0,-1)),e}}),e}),define("ThirdParty/zip",["../Core/buildModuleUrl","../Core/defineProperties"],function(e,t){var i={};return function(i){function r(){var e=-1,t=this;t.append=function(i){var r,n=t.table;for(r=0;r<i.length;r++)e=e>>>8^n[255&(e^i[r])]},t.get=function(){return~e}}function n(e,t,i){return e.slice?e.slice(t,t+i):e.webkitSlice?e.webkitSlice(t,t+i):e.mozSlice?e.mozSlice(t,t+i):e.msSlice?e.msSlice(t,t+i):void 0}function o(e,t){var i,r;return i=new ArrayBuffer(e),r=new Uint8Array(i),t&&r.set(t,0),{buffer:i,array:r,view:new DataView(i)}}function a(){}function s(e){function t(t,i){var o=new Blob([e],{type:V});r=new u(o),r.init(function(){n.size=r.size,t()},i)}function i(e,t,i,n){r.readUint8Array(e,t,i,n)}var r,n=this;n.size=0,n.init=t,n.readUint8Array=i}function l(e){function t(t){for(var i=e.length;"="==e.charAt(i-1);)i--;r=e.indexOf(",")+1,n.size=Math.floor(.75*(i-r)),t()}function i(t,i,n){var a,s=o(i),l=4*Math.floor(t/3),u=4*Math.ceil((t+i)/3),c=window.atob(e.substring(l+r,u+r)),d=t-3*Math.floor(l/4);for(a=d;a<d+i;a++)s.array[a-d]=c.charCodeAt(a);n(s.array)}var r,n=this;n.size=0,n.init=t,n.readUint8Array=i}function u(e){ -function t(t){this.size=e.size,t()}function i(t,i,r,o){var a=new FileReader;a.onload=function(e){r(new Uint8Array(e.target.result))},a.onerror=o,a.readAsArrayBuffer(n(e,t,i))}var r=this;r.size=0,r.init=t,r.readUint8Array=i}function c(){}function d(e){function t(e){n=new Blob([],{type:V}),e()}function i(e,t){n=new Blob([n,P?e:e.buffer],{type:V}),t()}function r(t,i){var r=new FileReader;r.onload=function(e){t(e.target.result)},r.onerror=i,r.readAsText(n,e)}var n,o=this;o.init=t,o.writeUint8Array=i,o.getData=r}function h(e){function t(t){o+="data:"+(e||"")+";base64,",t()}function i(e,t){var i,r=a.length,n=a;for(a="",i=0;i<3*Math.floor((r+e.length)/3)-r;i++)n+=String.fromCharCode(e[i]);for(;i<e.length;i++)a+=String.fromCharCode(e[i]);n.length>2?o+=window.btoa(n):a=n,t()}function r(e){e(o+window.btoa(a))}var n=this,o="",a="";n.init=t,n.writeUint8Array=i,n.getData=r}function p(e){function t(t){n=new Blob([],{type:e}),t()}function i(t,i){n=new Blob([n,P?t:t.buffer],{type:e}),i()}function r(e){e(n)}var n,o=this;o.init=t,o.writeUint8Array=i,o.getData=r}function f(e,t,i,r,n,o,a,s,l,u){function c(){e.removeEventListener(U,d,!1),s(f)}function d(e){var t=e.data,r=t.data;t.onappend&&(f+=r.length,i.writeUint8Array(r,function(){o(!1,r),h()},u)),t.onflush&&(r?(f+=r.length,i.writeUint8Array(r,function(){o(!1,r),c()},u)):c()),t.progress&&a&&a(p+t.current,n)}function h(){p=m*B,p<n?t.readUint8Array(r+p,Math.min(B,n-p),function(t){e.postMessage({append:!0,data:t}),m++,a&&a(p,n),o(!0,t)},l):e.postMessage({flush:!0})}var p,f,m=0;f=0,e.addEventListener(U,d,!1),h()}function m(e,t,i,r,n,o,a,s,l,u){function c(){var f;d=h*B,d<n?t.readUint8Array(r+d,Math.min(B,n-d),function(t){var s=e.append(t,function(){a&&a(r+d,n)});p+=s.length,o(!0,t),i.writeUint8Array(s,function(){o(!1,s),h++,setTimeout(c,1)},u),a&&a(d,n)},l):(f=e.flush(),f?(p+=f.length,i.writeUint8Array(f,function(){o(!1,f),s(p)},u)):s(p))}var d,h=0,p=0;c()}function _(e,t,n,o,a,s,l,u,c){function d(e,t){a&&!e&&_.append(t)}function h(e){s(e,_.get())}var p,_=new r;return i.zip.useWebWorkers?(p=new Worker(i.zip.workerScriptsPath+z),f(p,e,t,n,o,d,l,h,u,c)):m(new i.zip.Inflater,e,t,n,o,d,l,h,u,c),p}function g(e,t,n,o,a,s,l){function u(e,t){e&&p.append(t)}function c(e){o(e,p.get())}function d(){h.removeEventListener(U,d,!1),f(h,e,t,0,e.size,u,a,c,s,l)}var h,p=new r;return i.zip.useWebWorkers?(h=new Worker(i.zip.workerScriptsPath+k),h.addEventListener(U,d,!1),h.postMessage({init:!0,level:n})):m(new i.zip.Deflater,e,t,0,e.size,u,a,c,s,l),h}function v(e,t,i,n,o,a,s,l,u){function c(){var r=d*B;r<n?e.readUint8Array(i+r,Math.min(B,n-r),function(e){o&&h.append(e),s&&s(r,n,e),t.writeUint8Array(e,function(){d++,c()},u)},l):a(n,h.get())}var d=0,h=new r;c()}function y(e){var t,i,r="",n=["Ç","ü","é","â","ä","à","å","ç","ê","ë","è","ï","î","ì","Ä","Å","É","æ","Æ","ô","ö","ò","û","ù","ÿ","Ö","Ü","ø","£","Ø","×","ƒ","á","í","ó","ú","ñ","Ñ","ª","º","¿","®","¬","½","¼","¡","«","»","_","_","_","¦","¦","Á","Â","À","©","¦","¦","+","+","¢","¥","+","+","-","-","+","-","+","ã","Ã","+","+","-","-","¦","-","+","¤","ð","Ð","Ê","Ë","È","i","Í","Î","Ï","+","+","_","_","¦","Ì","_","Ó","ß","Ô","Ò","õ","Õ","µ","þ","Þ","Ú","Û","Ù","ý","Ý","¯","´","­","±","_","¾","¶","§","÷","¸","°","¨","·","¹","³","²","_"," "];for(t=0;t<e.length;t++)i=255&e.charCodeAt(t),r+=i>127?n[i-128]:String.fromCharCode(i);return r}function C(e){return decodeURIComponent(escape(e))}function b(e){var t,i="";for(t=0;t<e.length;t++)i+=String.fromCharCode(e[t]);return i}function S(e){var t=(4294901760&e)>>16,i=65535&e;try{return new Date(1980+((65024&t)>>9),((480&t)>>5)-1,31&t,(63488&i)>>11,(2016&i)>>5,2*(31&i),0)}catch(e){}}function T(e,t,i,r,n){return e.version=t.view.getUint16(i,!0),e.bitFlag=t.view.getUint16(i+2,!0),e.compressionMethod=t.view.getUint16(i+4,!0),e.lastModDateRaw=t.view.getUint32(i+6,!0),e.lastModDate=S(e.lastModDateRaw),1==(1&e.bitFlag)?void n(I):((r||8!=(8&e.bitFlag))&&(e.crc32=t.view.getUint32(i+10,!0),e.compressedSize=t.view.getUint32(i+14,!0),e.uncompressedSize=t.view.getUint32(i+18,!0)),4294967295===e.compressedSize||4294967295===e.uncompressedSize?void n(M):(e.filenameLength=t.view.getUint16(i+22,!0),void(e.extraFieldLength=t.view.getUint16(i+24,!0))))}function E(e,t){function i(){}function r(i,n){e.readUint8Array(e.size-i,i,function(e){var t=o(e.length,e).view;1347093766!=t.getUint32(0)?r(i+1,n):n(t)},function(){t(R)})}return i.prototype.getData=function(i,r,n,a){function s(e,t){h&&h.terminate(),h=null,e&&e(t)}function l(e){var t=o(4);return t.view.setUint32(0,e),p.crc32==t.view.getUint32(0)}function u(e,t){a&&!l(t)?c():i.getData(function(e){s(r,e)})}function c(){s(t,N)}function d(){s(t,L)}var h,p=this;e.readUint8Array(p.offset,30,function(r){var s,l=o(r.length,r);if(1347093252!=l.view.getUint32(0))return void t(D);T(p,l,4,!1,t),s=p.offset+30+p.filenameLength+p.extraFieldLength,i.init(function(){0===p.compressionMethod?v(e,i,s,p.compressedSize,a,u,n,c,d):h=_(e,i,s,p.compressedSize,a,u,n,c,d)},d)},c)},{getEntries:function(n){if(e.size<22)return void t(D);r(22,function(r){var a,s;a=r.getUint32(16,!0),s=r.getUint16(8,!0),e.readUint8Array(a,e.size-a,function(e){var r,a,l,u,c=0,d=[],h=o(e.length,e);for(r=0;r<s;r++){if(a=new i,1347092738!=h.view.getUint32(c))return void t(D);T(a,h,c+6,!0,t),a.commentLength=h.view.getUint16(c+32,!0),a.directory=16==(16&h.view.getUint8(c+38)),a.offset=h.view.getUint32(c+42,!0),l=b(h.array.subarray(c+46,c+46+a.filenameLength)),a.filename=2048==(2048&a.bitFlag)?C(l):y(l),a.directory||"/"!=a.filename.charAt(a.filename.length-1)||(a.directory=!0),u=b(h.array.subarray(c+46+a.filenameLength+a.extraFieldLength,c+46+a.filenameLength+a.extraFieldLength+a.commentLength)),a.comment=2048==(2048&a.bitFlag)?C(u):y(u),d.push(a),c+=46+a.filenameLength+a.extraFieldLength+a.commentLength}n(d)},function(){t(R)})})},close:function(e){e&&e()}}}function A(e){return unescape(encodeURIComponent(e))}function w(e){var t,i=[];for(t=0;t<e.length;t++)i.push(e.charCodeAt(t));return i}function x(e,t,i){function r(e,t){s&&s.terminate(),s=null,e&&e(t)}function n(){r(t,O)}function a(){r(t,N)}var s,l={},u=[],c=0;return{add:function(d,h,p,f,m){function _(t){var r;T=m.lastModDate||new Date,b=o(26),l[d]={headerArray:b.array,directory:m.directory,filename:S,offset:c,comment:w(A(m.comment||""))},b.view.setUint32(0,335546376),m.version&&b.view.setUint8(0,m.version),i||0===m.level||m.directory||b.view.setUint16(4,2048),b.view.setUint16(6,(T.getHours()<<6|T.getMinutes())<<5|T.getSeconds()/2,!0),b.view.setUint16(8,(T.getFullYear()-1980<<4|T.getMonth()+1)<<5|T.getDate(),!0),b.view.setUint16(22,S.length,!0),r=o(30+S.length),r.view.setUint32(0,1347093252),r.array.set(b.array,4),r.array.set(S,30),c+=r.array.length,e.writeUint8Array(r.array,t,n)}function y(t,i){var a=o(16);c+=t||0,a.view.setUint32(0,1347094280),void 0!==i&&(b.view.setUint32(10,i,!0),a.view.setUint32(4,i,!0)),h&&(a.view.setUint32(8,t,!0),b.view.setUint32(14,t,!0),a.view.setUint32(12,h.size,!0),b.view.setUint32(18,h.size,!0)),e.writeUint8Array(a.array,function(){c+=16,r(p)},n)}function C(){if(m=m||{},d=d.trim(),m.directory&&"/"!=d.charAt(d.length-1)&&(d+="/"),l.hasOwnProperty(d))return void t(F);S=w(A(d)),u.push(d),_(function(){h?i||0===m.level?v(h,e,0,h.size,!0,y,f,a,n):s=g(h,e,m.level,y,f,a,n):y()},n)}var b,S,T;h?h.init(C,a):C()},close:function(t){var i,a,s,d=0,h=0;for(a=0;a<u.length;a++)s=l[u[a]],d+=46+s.filename.length+s.comment.length;for(i=o(d+22),a=0;a<u.length;a++)s=l[u[a]],i.view.setUint32(h,1347092738),i.view.setUint16(h+4,5120),i.array.set(s.headerArray,h+6),i.view.setUint16(h+32,s.comment.length,!0),s.directory&&i.view.setUint8(h+38,16),i.view.setUint32(h+42,s.offset,!0),i.array.set(s.filename,h+46),i.array.set(s.comment,h+46+s.filename.length),h+=46+s.filename.length+s.comment.length;i.view.setUint32(h,1347093766),i.view.setUint16(h+8,u.length,!0),i.view.setUint16(h+10,u.length,!0),i.view.setUint32(h+12,d,!0),i.view.setUint32(h+16,c,!0),e.writeUint8Array(i.array,function(){r(function(){e.getData(t)})},n)}}}var P,D="File format is not recognized.",I="File contains encrypted entry.",M="File is using Zip64 (4gb+ file size).",R="Error while reading zip file.",O="Error while writing zip file.",L="Error while writing file data.",N="Error while reading file data.",F="File already exists.",B=524288,z="inflate.js",k="deflate.js",V="text/plain",U="message";try{P=0===new Blob([new DataView(new ArrayBuffer(0))]).size}catch(e){}r.prototype.table=function(){var e,t,i,r=[];for(e=0;e<256;e++){for(i=e,t=0;t<8;t++)1&i?i=i>>>1^3988292384:i>>>=1;r[e]=i}return r}(),s.prototype=new a,s.prototype.constructor=s,l.prototype=new a,l.prototype.constructor=l,u.prototype=new a,u.prototype.constructor=u,c.prototype.getData=function(e){e(this.data)},d.prototype=new c,d.prototype.constructor=d,h.prototype=new c,h.prototype.constructor=h,p.prototype=new c,p.prototype.constructor=p,i.zip={Reader:a,Writer:c,BlobReader:u,Data64URIReader:l,TextReader:s,BlobWriter:p,Data64URIWriter:h,TextWriter:d,createReader:function(e,t,i){e.init(function(){t(E(e,i))},i)},createWriter:function(e,t,i,r){e.init(function(){t(x(e,i,r))},i)},useWebWorkers:!0};var G;t(i.zip,{workerScriptsPath:{get:function(){return void 0===G&&(G=e("ThirdParty/Workers/")),G}}})}(i),i.zip}),define("DataSources/KmlLookAt",[],function(){"use strict";function e(e,t){this.position=e,this.headingPitchRange=t}return e}),define("DataSources/KmlTour",["../Core/defined","../Core/Event"],function(e,t){"use strict";function i(e,i){this.id=i,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new t,this.tourEnd=new t,this.entryStart=new t,this.entryEnd=new t,this._activeEntries=[]}function r(e){for(var t=e.pop();void 0!==t;t=e.pop())t.stop()}function n(t,i,r){var n=this.playlist[this.playlistIndex];if(n){var a=o.bind(this,t,i,r);if(this._activeEntries.push(n),this.entryStart.raiseEvent(n),n.blocking)n.play(a,t.scene.camera,i);else{var s=this;n.play(function(){s.entryEnd.raiseEvent(n);var e=s._activeEntries.indexOf(n);e>=0&&s._activeEntries.splice(e,1)}),a(t,i,r)}}else e(r)&&r(!1)}function o(e,t,i,r){var o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,r),r)i(r);else{var a=this._activeEntries.indexOf(o);a>=0&&this._activeEntries.splice(a,1),this.playlistIndex++,n.call(this,e,t,i)}}return i.prototype.addPlaylistEntry=function(e){this.playlist.push(e)},i.prototype.play=function(e,t){this.tourStart.raiseEvent();var i=this;n.call(this,e,t,function(e){i.playlistIndex=0,e||r(i._activeEntries),i.tourEnd.raiseEvent(e)})},i.prototype.stop=function(){r(this._activeEntries)},i}),define("DataSources/KmlTourFlyTo",["../Core/BoundingSphere","../Core/combine","../Core/defined","../Core/EasingFunction"],function(e,t,i,r){"use strict";function n(e,t,i){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=i,this.flyToMode=t}return n.prototype.play=function(t,r,n){if(this.activeCamera=r,i(t)&&null!==t){var o=this;this.activeCallback=function(e){delete o.activeCallback,delete o.activeCamera,t(!i(e)&&e)}}var a=this.getCameraOptions(n);if(this.view.headingPitchRoll)r.flyTo(a);else if(this.view.headingPitchRange){var s=new e(this.view.position);r.flyToBoundingSphere(s,a)}},n.prototype.stop=function(){i(this.activeCamera)&&this.activeCamera.cancelFlight(),i(this.activeCallback)&&this.activeCallback(!0)},n.prototype.getCameraOptions=function(e){var n={duration:this.duration};return i(this.activeCallback)&&(n.complete=this.activeCallback),"smooth"===this.flyToMode&&(n.easingFunction=r.LINEAR_NONE),this.view.headingPitchRoll?(n.destination=this.view.position,n.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(n.offset=this.view.headingPitchRange),i(e)&&(n=t(n,e)),n},n}),define("DataSources/KmlTourWait",["../Core/defined"],function(e){"use strict";function t(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}return t.prototype.play=function(e){var t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},1e3*this.duration)},t.prototype.stop=function(){clearTimeout(this.timeout),e(this.activeCallback)&&this.activeCallback(!0)},t}),define("DataSources/KmlDataSource",["../Core/ArcType","../Core/AssociativeArray","../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/ClockRange","../Core/ClockStep","../Core/Color","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Ellipsoid","../Core/Event","../Core/getExtensionFromUri","../Core/getFilenameFromUri","../Core/HeadingPitchRange","../Core/HeadingPitchRoll","../Core/Iso8601","../Core/JulianDate","../Core/Math","../Core/NearFarScalar","../Core/objectToQuery","../Core/oneTimeWarning","../Core/PinBuilder","../Core/PolygonHierarchy","../Core/queryToObject","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TimeInterval","../Core/TimeIntervalCollection","../Scene/HeightReference","../Scene/HorizontalOrigin","../Scene/LabelStyle","../Scene/SceneMode","../ThirdParty/Autolinker","../ThirdParty/Uri","../ThirdParty/when","../ThirdParty/zip","./BillboardGraphics","./CompositePositionProperty","./DataSource","./DataSourceClock","./Entity","./EntityCluster","./EntityCollection","./KmlCamera","./KmlLookAt","./KmlTour","./KmlTourFlyTo","./KmlTourWait","./LabelGraphics","./PathGraphics","./PolygonGraphics","./PolylineGraphics","./PositionPropertyArray","./RectangleGraphics","./ReferenceProperty","./SampledPositionProperty","./ScaledPositionProperty","./TimeIntervalCollectionProperty","./WallGraphics"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce){"use strict";function de(e){var t=e.slice(0,Math.min(4,e.size)),i=V.defer(),r=new FileReader;return r.addEventListener("load",function(){i.resolve(1347093252===new DataView(r.result).getUint32(0,!1))}),r.addEventListener("error",function(){i.reject(r.error)}),r.readAsArrayBuffer(t),i.promise}function he(e){var t=V.defer(),i=new FileReader;return i.addEventListener("load",function(){t.resolve(i.result)}),i.addEventListener("error",function(){t.reject(i.error)}),i.readAsText(e),t.promise}function pe(e){var t,i,r,n,o={xsi:"http://www.w3.org/2001/XMLSchema-instance"};for(var a in o)o.hasOwnProperty(a)&&(r=RegExp("[< ]"+a+":"),n="xmlns:"+a+"=",r.test(e)&&-1===e.indexOf(n)&&(d(t)||(t=e.substr(0,e.indexOf("<kml")+4),i=e.substr(t.length)),t+=" "+n+'"'+o[a]+'"'));return d(t)&&(e=t+i),e}function fe(e){for(var t,i,r,n=e.indexOf("xmlns:"),o=e.indexOf(">",n);-1!==n&&n<o;)t=e.slice(n,e.indexOf('"',n)),i=n,n=e.indexOf(t,n+1),-1!==n?(r=e.indexOf('"',e.indexOf('"',n)+1),e=e.slice(0,n-1)+e.slice(r+1,e.length),n=e.indexOf("xmlns:",i-1)):n=e.indexOf("xmlns:",i+1);return e}function me(e,t,i){e.getData(new U.TextWriter,function(e){e=pe(e),e=fe(e),t.kml=Mt.parseFromString(e,"application/xml"),i.resolve()})}function _e(e,t,i){var r=c(It.detectFromFilename(e.filename),"application/octet-stream");e.getData(new U.Data64URIWriter(r),function(r){t[e.filename]=r,i.resolve()})}function ge(e,t,i,r){for(var n=r.keys,o=new k("."),a=e.querySelectorAll(t),s=0;s<a.length;s++){var l=a[s],u=l.getAttribute(i),c=new k(u).resolve(o).toString(),d=n.indexOf(c);if(-1!==d){var h=n[d];l.setAttribute(i,r[h]),"a"===t&&null===l.getAttribute("download")&&l.setAttribute("download",h)}}}function ve(e,t,i,r){for(var n=e.querySelectorAll(t),o=0;o<n.length;o++){var a=n[o],s=a.getAttribute(i),l=Me(s,r);a.setAttribute(i,l.url)}}function ye(e,t,i){var r=Ee(e,"id");r=d(r)&&0!==r.length?r:u(),d(i)&&(r=i+r);var n=t.getById(r);return d(n)&&(r=u(),d(i)&&(r=i+r)),n=t.add(new Y({id:r})),d(n.kml)||(n.addProperty("kml"),n.kml=new Dt),n}function Ce(e,t){return"absolute"===e||"relativeToGround"===e||"relativeToSeaFloor"===t}function be(e,t){if(!d(e))return n.fromDegrees(0,0,0,t);var i=e.match(/[^\s,\n]+/g);if(!d(i))return n.fromDegrees(0,0,0,t);var r=parseFloat(i[0]),o=parseFloat(i[1]),a=parseFloat(i[2]);return r=isNaN(r)?0:r,o=isNaN(o)?0:o,a=isNaN(a)?0:a,n.fromDegrees(r,o,a,t)}function Se(e,t){if(d(e)){var i=e.textContent.match(/[^\s\n]+/g);if(d(i)){for(var r=i.length,n=new Array(r),o=0,a=0;a<r;a++)n[o++]=be(i[a],t);return n}}}function Te(e,t){if(d(e)){var i=e.getAttribute(t);if(null!==i){var r=parseFloat(i);return isNaN(r)?void 0:r}}}function Ee(e,t){if(d(e)){var i=e.getAttribute(t);return null!==i?i:void 0}}function Ae(e,t,i){if(d(e))for(var r=e.childNodes,n=r.length,o=0;o<n;o++){var a=r[o];if(a.localName===t&&-1!==i.indexOf(a.namespaceURI))return a}}function we(e,t,i){if(d(e)){for(var r=[],n=e.getElementsByTagNameNS("*",t),o=n.length,a=0;a<o;a++){var s=n[a];s.localName===t&&-1!==i.indexOf(s.namespaceURI)&&r.push(s)}return r}}function xe(e,t,i){if(!d(e))return[];for(var r=[],n=e.childNodes,o=n.length,a=0;a<o;a++){var s=n[a];s.localName===t&&-1!==i.indexOf(s.namespaceURI)&&r.push(s)}return r}function Pe(e,t,i){var r=Ae(e,t,i);if(d(r)){var n=parseFloat(r.textContent);return isNaN(n)?void 0:n}}function De(e,t,i){var r=Ae(e,t,i);if(d(r))return r.textContent.trim()}function Ie(e,t,i){var r=Ae(e,t,i);if(d(r)){var n=r.textContent.trim();return"1"===n||/^true$/i.test(n)}}function Me(e,t,i){if(d(e)){var r;if(d(i)){var n=i[e];if(d(n))r=new I({url:n});else{var o=new k(t.getUrlComponent());n=i[new k(e).resolve(o)],d(n)&&(r=new I({url:n}))}}return d(r)||(r=t.getDerivedResource({url:e})),r}}function Re(e,t){if(d(e)&&!/^\s*$/gm.test(e)){"#"===e[0]&&(e=e.substring(1));var i=parseInt(e.substring(0,2),16)/255,r=parseInt(e.substring(2,4),16)/255,n=parseInt(e.substring(4,6),16)/255,o=parseInt(e.substring(6,8),16)/255;return t?(o>0?(Gt.maximumRed=o,Gt.red=void 0):(Gt.maximumRed=void 0,Gt.red=0),n>0?(Gt.maximumGreen=n,Gt.green=void 0):(Gt.maximumGreen=void 0,Gt.green=0),r>0?(Gt.maximumBlue=r,Gt.blue=void 0):(Gt.maximumBlue=void 0,Gt.blue=0),Gt.alpha=i,l.fromRandom(Gt)):new l(o,n,r,i)}}function Oe(e,t,i){var r=De(e,t,i);if(d(r))return Re(r,"random"===De(e,"colorMode",i))}function Le(e){var t=Ae(e,"TimeStamp",Ut.kmlgx),i=De(t,"when",Ut.kmlgx);if(d(t)&&d(i)&&0!==i.length){var r=b.fromIso8601(i),n=new O;return n.addInterval(new R({start:r,stop:C.MAXIMUM_VALUE})),n}}function Ne(e){var t=Ae(e,"TimeSpan",Ut.kmlgx);if(d(t)){var i,r=Ae(t,"begin",Ut.kmlgx),n=d(r)?b.fromIso8601(r.textContent):void 0,o=Ae(t,"end",Ut.kmlgx),a=d(o)?b.fromIso8601(o.textContent):void 0;if(d(n)&&d(a)){if(b.lessThan(a,n)){var s=n;n=a,a=s}i=new O,i.addInterval(new R({start:n,stop:a}))}else d(n)?(i=new O,i.addInterval(new R({start:n,stop:C.MAXIMUM_VALUE}))):d(a)&&(i=new O,i.addInterval(new R({start:C.MINIMUM_VALUE,stop:a})));return i}}function Fe(){var e=new G;return e.width=Ot,e.height=Ot,e.scaleByDistance=new T(Lt,Nt,Ft,Bt),e.pixelOffsetScaleByDistance=new T(Lt,Nt,Ft,Bt),e}function Be(){var e=new ie;return e.outline=!0,e.outlineColor=l.WHITE,e}function ze(){var e=new ee;return e.translucencyByDistance=new T(3e6,1,5e6,0),e.pixelOffset=new r(17,0),e.horizontalOrigin=N.LEFT,e.font="16px sans-serif",e.style=F.FILL_AND_OUTLINE,e}function ke(e,t,i,r,n){var o=De(e,"href",Ut.kml);if(d(o)&&0!==o.length){if(0===o.indexOf("root://icons/palette-")){var a=o.charAt(21),s=c(Pe(e,"x",Ut.gx),0),l=c(Pe(e,"y",Ut.gx),0);s=Math.min(s/32,7),l=7-Math.min(l/32,7);o="https://maps.google.com/mapfiles/kml/pal"+a+"/icon"+(8*l+s)+".png"}var u=Me(o,i,r);if(n){var h=De(e,"refreshMode",Ut.kml),p=De(e,"viewRefreshMode",Ut.kml);"onInterval"===h||"onExpire"===h?A("kml-refreshMode-"+h,"KML - Unsupported Icon refreshMode: "+h):"onStop"!==p&&"onRegion"!==p||A("kml-refreshMode-"+p,"KML - Unsupported Icon viewRefreshMode: "+p);var f=c(De(e,"viewBoundScale",Ut.kml),1),m="onStop"===p?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",_=c(De(e,"viewFormat",Ut.kml),m),g=De(e,"httpQuery",Ut.kml);d(_)&&u.setQueryParameters(P(yt(_))),d(g)&&u.setQueryParameters(P(yt(g)));var v=t._ellipsoid;return Ct(u,t._camera,t._canvas,f,t._lastCameraView.bbox,v),u}return u}}function Ve(e,t,o,a,s){var l=Pe(t,"scale",Ut.kml),u=Pe(t,"heading",Ut.kml),h=Oe(t,"color",Ut.kml),p=Ae(t,"Icon",Ut.kml),f=ke(p,e,a,s,!1);d(p)&&!d(f)&&(f=!1);var m=Pe(p,"x",Ut.gx),_=Pe(p,"y",Ut.gx),g=Pe(p,"w",Ut.gx),v=Pe(p,"h",Ut.gx),y=Ae(t,"hotSpot",Ut.kml),C=Te(y,"x"),b=Te(y,"y"),T=Ee(y,"xunits"),E=Ee(y,"yunits"),A=o.billboard;d(A)||(A=Fe(),o.billboard=A),A.image=f,A.scale=l,A.color=h,(d(m)||d(_)||d(g)||d(v))&&(A.imageSubRegion=new i(m,_,g,v)),d(u)&&0!==u&&(A.rotation=S.toRadians(-u),A.alignedAxis=n.UNIT_Z),l=c(l,1);var w,x;d(C)&&("pixels"===T?w=-C*l:"insetPixels"===T?w=(C-Ot)*l:"fraction"===T&&(w=-C*Ot*l),w+=.5*Ot*l),d(b)&&("pixels"===E?x=b*l:"insetPixels"===E?x=(-b+Ot)*l:"fraction"===E&&(x=b*Ot*l),x-=.5*Ot*l),(d(w)||d(x))&&(A.pixelOffset=new r(w,x))}function Ue(e,t,i,r,n){for(var o=0,a=t.childNodes.length;o<a;o++){var s=t.childNodes.item(o);if("IconStyle"===s.localName)Ve(e,s,i,r,n);else if("LabelStyle"===s.localName){var u=i.label;d(u)||(u=ze(),i.label=u),u.scale=c(Pe(s,"scale",Ut.kml),u.scale),u.fillColor=c(Oe(s,"color",Ut.kml),u.fillColor),u.text=i.name}else if("LineStyle"===s.localName){var h=i.polyline;d(h)||(h=new re,i.polyline=h),h.width=Pe(s,"width",Ut.kml),h.material=Oe(s,"color",Ut.kml),d(Oe(s,"outerColor",Ut.gx))&&A("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),d(Pe(s,"outerWidth",Ut.gx))&&A("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),d(Pe(s,"physicalWidth",Ut.gx))&&A("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),d(Ie(s,"labelVisibility",Ut.gx))&&A("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if("PolyStyle"===s.localName){var p=i.polygon;d(p)||(p=Be(),i.polygon=p),p.material=c(Oe(s,"color",Ut.kml),p.material),p.fill=c(Ie(s,"fill",Ut.kml),p.fill),p.outline=c(Ie(s,"outline",Ut.kml),p.outline)}else if("BalloonStyle"===s.localName){var f=c(Re(De(s,"bgColor",Ut.kml)),l.WHITE),m=c(Re(De(s,"textColor",Ut.kml)),l.BLACK),_=De(s,"text",Ut.kml);i.addProperty("balloonStyle"),i.balloonStyle={bgColor:f,textColor:m,text:_}}else if("ListStyle"===s.localName){var g=De(s,"listItemType",Ut.kml);"radioFolder"!==g&&"checkOffOnly"!==g||A("kml-listStyle-"+g,"KML - Unsupported ListStyle with listItemType: "+g)}}}function Ge(e,t,i,r,n){for(var o,a=new Y,s=-1,l=t.childNodes,u=l.length,c=0;c<u;c++){var h=l[c];"Style"!==h.localName&&"StyleMap"!==h.localName||(s=c)}if(-1!==s){var p=l[s];if("Style"===p.localName)Ue(e,p,a,r,n);else for(var f=xe(p,"Pair",Ut.kml),m=0;m<f.length;m++){var _=f[m],g=De(_,"key",Ut.kml);if("normal"===g){var v=De(_,"styleUrl",Ut.kml);if(d(v))o=i.getById(v),d(o)||(o=i.getById("#"+v)),d(o)&&a.merge(o);else{var y=Ae(_,"Style",Ut.kml);Ue(e,y,a,r,n)}}else A("kml-styleMap-"+g,"KML - Unsupported StyleMap key: "+g)}}var C=De(t,"styleUrl",Ut.kml);if(d(C)){var b=C;if("#"!==C[0]&&-1!==C.indexOf("#")){var S=C.split("#"),T=S[0];b=r.getDerivedResource({url:T}).getUrlComponent()+"#"+S[1]}o=i.getById(b),d(o)||(o=i.getById("#"+b)),d(o)&&a.merge(o)}return a}function He(e,t,i){return t.fetchXML().then(function(r){return We(e,r,i,t,!0)})}function We(e,t,i,r,n,o){var a,s,l,u,c=we(t,"Style",Ut.kml);if(d(c)){var h=c.length;for(a=0;a<h;a++)u=c[a],s=Ee(u,"id"),d(s)&&(s="#"+s,n&&d(r)&&(s=r.getUrlComponent()+s),d(i.getById(s))||(l=new Y({id:s}),i.add(l),Ue(e,u,l,r,o)))}var p=we(t,"StyleMap",Ut.kml);if(d(p)){var f=p.length;for(a=0;a<f;a++){var m=p[a];if(s=Ee(m,"id"),d(s))for(var _=xe(m,"Pair",Ut.kml),g=0;g<_.length;g++){var v=_[g],y=De(v,"key",Ut.kml);if("normal"===y){if(s="#"+s,n&&d(r)&&(s=r.getUrlComponent()+s),!d(i.getById(s))){l=i.getOrCreateEntity(s);var C=De(v,"styleUrl",Ut.kml);if(d(C)){"#"!==C[0]&&(C="#"+C),n&&d(r)&&(C=r.getUrlComponent()+C);var b=i.getById(C);d(b)&&l.merge(b)}else u=Ae(v,"Style",Ut.kml),Ue(e,u,l,r,o)}}else A("kml-styleMap-"+y,"KML - Unsupported StyleMap key: "+y)}}}var S=[],T=t.getElementsByTagName("styleUrl"),E=T.length;for(a=0;a<E;a++){var w=T[a].textContent;if("#"!==w[0]){var x=w.split("#");if(2===x.length){var P=x[0],D=r.getDerivedResource({url:P});S.push(He(e,D,i))}}}return S}function qe(e,t,i){var r=new ae(e,t.id,["position"]),n=new le(t.position);t.polyline=d(i.polyline)?i.polyline.clone():new re,t.polyline.positions=new ne([r,n])}function Ye(e,t){return!d(e)&&!d(t)||"clampToGround"===e?L.CLAMP_TO_GROUND:"relativeToGround"===e?L.RELATIVE_TO_GROUND:"absolute"===e?L.NONE:"clampToSeaFloor"===t?(A("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),L.CLAMP_TO_GROUND):"relativeToSeaFloor"===t?(A("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),L.RELATIVE_TO_GROUND):(d(e)?A("kml-altitudeMode-unknown","KML - Unknown <kml:altitudeMode>:"+e+", using <kml:altitudeMode>:CLAMP_TO_GROUND."):A("kml-gx:altitudeMode-unknown","KML - Unknown <gx:altitudeMode>:"+t+", using <kml:altitudeMode>:CLAMP_TO_GROUND."),L.CLAMP_TO_GROUND)}function je(e,t,i){return"relativeToSeaFloor"===i||"absolute"===t||"relativeToGround"===t?e:((d(t)&&"clampToGround"!==t||d(i)&&"clampToSeaFloor"!==i)&&A("kml-altitudeMode-unknown","KML - Unknown altitudeMode: "+c(t,i)),new le(e))}function Xe(e,t,i,r){if(d(e)){if("relativeToSeaFloor"===i||"absolute"===t||"relativeToGround"===t)return e;(d(t)&&"clampToGround"!==t||d(i)&&"clampToSeaFloor"!==i)&&A("kml-altitudeMode-unknown","KML - Unknown altitudeMode: "+c(t,i));for(var n=e.length,o=0;o<n;o++){var a=e[o];r.scaleToGeodeticSurface(a,a)}return e}}function Qe(e,t,i,n){var o=t.label;d(o)||(o=d(i.label)?i.label.clone():ze(),t.label=o),o.text=t.name;var a=t.billboard;d(a)||(a=d(i.billboard)?i.billboard.clone():Fe(),t.billboard=a),d(a.image)?a.image.getValue()||(a.image=void 0):a.image=e._pinBuilder.fromColor(l.YELLOW,64);var s=1;d(a.scale)&&(s=a.scale.getValue(),0!==s?o.pixelOffset=new r(16*s+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),d(n)&&e._clampToGround&&(a.heightReference=n,o.heightReference=n)}function Ke(e,t){var i=e.path;d(i)||(i=new te,i.leadTime=0,e.path=i);var r=t.polyline;d(r)&&(i.material=r.material,i.width=r.width)}function Ze(e,t,i,r,n){var o=De(i,"coordinates",Ut.kml),a=De(i,"altitudeMode",Ut.kml),s=De(i,"altitudeMode",Ut.gx),l=Ie(i,"extrude",Ut.kml),u=e._ellipsoid,c=be(o,u);return r.position=c,Qe(e,r,n,Ye(a,s)),l&&Ce(a,s)&&qe(t,r,n),!0}function Je(t,i,r,n,o){var a=Ae(r,"coordinates",Ut.kml),s=De(r,"altitudeMode",Ut.kml),u=De(r,"altitudeMode",Ut.gx),h=Ie(r,"extrude",Ut.kml),p=Ie(r,"tessellate",Ut.kml),f=Ce(s,u),m=Pe(r,"drawOrder",Ut.gx),_=t._ellipsoid,g=Se(a,_),v=o.polyline;if(f&&h){var y=new ce;n.wall=y,y.positions=g;var b=o.polygon;d(b)&&(y.fill=b.fill,y.material=b.material),y.outline=!0,d(v)?(y.outlineColor=d(v.material)?v.material.color:l.WHITE,y.outlineWidth=v.width):d(b)&&(y.outlineColor=d(b.material)?b.material.color:l.WHITE)}else if(t._clampToGround&&!f&&p){var S=new re;S.clampToGround=!0,n.polyline=S,S.positions=g,d(v)?(S.material=d(v.material)?v.material.color.getValue(C.MINIMUM_VALUE):l.WHITE,S.width=c(v.width,1)):(S.material=l.WHITE,S.width=1),S.zIndex=m}else d(m)&&A("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),v=d(v)?v.clone():new re,n.polyline=v,v.positions=Xe(g,s,u,_),p&&!f||(v.arcType=e.NONE);return!0}function $e(e,t,i,r,n){var o=Ae(i,"outerBoundaryIs",Ut.kml),a=Ae(o,"LinearRing",Ut.kml),s=Ae(a,"coordinates",Ut.kml),u=e._ellipsoid,c=Se(s,u),h=Ie(i,"extrude",Ut.kml),p=De(i,"altitudeMode",Ut.kml),f=De(i,"altitudeMode",Ut.gx),m=Ce(p,f),_=d(n.polygon)?n.polygon.clone():Be(),g=n.polyline;if(d(g)&&(_.outlineColor=d(g.material)?g.material.color:l.WHITE,_.outlineWidth=g.width),r.polygon=_,m?(_.perPositionHeight=!0,_.extrudedHeight=h?0:void 0):e._clampToGround||(_.height=0),d(c)){for(var v=new x(c),y=xe(i,"innerBoundaryIs",Ut.kml),C=0;C<y.length;C++){a=xe(y[C],"LinearRing",Ut.kml);for(var b=0;b<a.length;b++)s=Ae(a[b],"coordinates",Ut.kml),c=Se(s,u),d(c)&&v.holes.push(new x(c))}_.hierarchy=v}return!0}function et(e,t,i,r,n){var o=De(i,"altitudeMode",Ut.kml),a=De(i,"altitudeMode",Ut.gx),s=xe(i,"coord",Ut.gx),l=xe(i,"angles",Ut.gx),u=xe(i,"when",Ut.kml),c=Ie(i,"extrude",Ut.kml),d=Ce(o,a),h=e._ellipsoid;l.length>0&&A("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");for(var p=Math.min(s.length,u.length),f=[],m=[],_=0;_<p;_++){var g=be(s[_].textContent,h);f.push(g),m.push(b.fromIso8601(u[_].textContent))}var v=new se;return v.addSamples(m,f),r.position=v,Qe(e,r,n,Ye(o,a)),Ke(r,n),r.availability=new O,u.length>0&&r.availability.addInterval(new R({start:m[0],stop:m[m.length-1]})),d&&c&&qe(t,r,n),!0}function tt(e,t,i,r,n,o,a,s,l){var u=e[0],c=e[e.length-1],d=new se;d.addSamples(e,t),i.intervals.addInterval(new R({start:u,stop:c,isStartIncluded:l,isStopIncluded:l,data:je(d,a,s)})),r.addInterval(new R({start:u,stop:c,isStartIncluded:l,isStopIncluded:l})),n.intervals.addInterval(new R({start:u,stop:c,isStartIncluded:l,isStopIncluded:l,data:o}))}function it(e,t,i,r,n){for(var o,a,s,l=Ie(i,"interpolate",Ut.gx),u=xe(i,"Track",Ut.gx),c=!1,h=new ue,p=new O,f=new H,m=e._ellipsoid,_=0,g=u.length;_<g;_++){var v=u[_],y=xe(v,"when",Ut.kml),C=xe(v,"coord",Ut.gx),S=De(v,"altitudeMode",Ut.kml),T=De(v,"altitudeMode",Ut.gx),E=Ce(S,T),A=Ie(v,"extrude",Ut.kml),w=Math.min(C.length,y.length),x=[];o=[];for(var P=0;P<w;P++){var D=be(C[P].textContent,m);x.push(D),o.push(b.fromIso8601(y[P].textContent))}l&&(d(a)&&tt([a,o[0]],[s,x[0]],f,p,h,!1,"absolute",void 0,!1),a=o[w-1],s=x[x.length-1]),tt(o,x,f,p,h,E&&A,S,T,!0),c=c||E&&A}return r.availability=p,r.position=f,Qe(e,r,n),Ke(r,n),c&&(qe(t,r,n),r.polyline.show=h),!0}function rt(e,t,i,r,n,o){for(var a=i.childNodes,s=!1,l=0,u=a.length;l<u;l++){var c=a.item(l),h=Ht[c.localName];if(d(h)){var p=ye(c,t,o);p.parent=r,p.name=r.name,p.availability=r.availability,p.description=r.description,p.kml=r.kml,h(e,t,c,p,n)&&(s=!0)}}return s}function nt(e,t,i,r,n){return A("kml-unsupportedGeometry","KML - Unsupported geometry: "+i.localName),!1}function ot(e,t){var i=Ae(e,"ExtendedData",Ut.kml);if(d(i)){d(Ae(i,"SchemaData",Ut.kml))&&A("kml-schemaData","KML - SchemaData is unsupported"),d(Ee(i,"xmlns:prefix"))&&A("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");var r={},n=xe(i,"Data",Ut.kml);if(d(n))for(var o=n.length,a=0;a<o;a++){var s=n[a],l=Ee(s,"name");d(l)&&(r[l]={displayName:De(s,"displayName",Ut.kml),value:De(s,"value",Ut.kml)})}t.kml.extendedData=r}}function at(e,t,i,r,n){var o,a,s,u=t.kml,h=u.extendedData,p=De(e,"description",Ut.kml),f=c(t.balloonStyle,i.balloonStyle),m=l.WHITE,_=l.BLACK,g=p;d(f)&&(m=c(f.bgColor,l.WHITE),_=c(f.textColor,l.BLACK),g=c(f.text,p));var v;if(d(g)){if(g=g.replace("$[name]",c(t.name,"")),g=g.replace("$[description]",c(p,"")),g=g.replace("$[address]",c(u.address,"")),g=g.replace("$[Snippet]",c(u.snippet,"")),g=g.replace("$[id]",t.id),g=g.replace("$[geDirections]",""),d(h)){var y=g.match(/\$\[.+?\]/g);if(null!==y)for(o=0;o<y.length;o++){var C=y[o],b=C.substr(2,C.length-3),S=/\/displayName$/.test(b);b=b.replace(/\/displayName$/,""),v=h[b],d(v)&&(v=S?v.displayName:v.value),d(v)&&(g=g.replace(C,c(v,"")))}}}else if(d(h)&&(s=Object.keys(h),s.length>0)){for(g='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',o=0;o<s.length;o++)a=s[o],v=h[a],g+="<tr><th>"+c(v.displayName,a)+"</th><td>"+c(v.value,"")+"</td></tr>";g+="</tbody></table>"}if(d(g)){g=Rt.link(g),Wt.innerHTML=g;var T=Wt.querySelectorAll("a");for(o=0;o<T.length;o++)T[o].setAttribute("target","_blank");d(r)&&r.keys.length>1&&(ge(Wt,"a","href",r),ge(Wt,"img","src",r)),ve(Wt,"a","href",n),ve(Wt,"img","src",n);var E='<div class="cesium-infoBox-description-lighter" style="';E+="overflow:auto;",E+="word-wrap:break-word;",E+="background-color:"+m.toCssColorString()+";",E+="color:"+_.toCssColorString()+";",E+='">',E+=Wt.innerHTML+"</div>",Wt.innerHTML="",t.description=E}} -function st(e,t,i,r,n,o,a,s,l){function u(e){return!e||e.show&&u(e.parent)}var h=ye(i,r,l),p=h.kml,f=Ge(e,i,n,o,a),m=De(i,"name",Ut.kml);h.name=m,h.parent=t;var _=Ne(i);d(_)||(_=Le(i)),h.availability=_,xt(h);var g=Ie(i,"visibility",Ut.kml);h.show=u(t)&&c(g,!0);var v=Ae(i,"author",Ut.atom),y=p.author;y.name=De(v,"name",Ut.atom),y.uri=De(v,"uri",Ut.atom),y.email=De(v,"email",Ut.atom);var C=Ae(i,"link",Ut.atom),b=p.link;b.href=Ee(C,"href"),b.hreflang=Ee(C,"hreflang"),b.rel=Ee(C,"rel"),b.type=Ee(C,"type"),b.title=Ee(C,"title"),b.length=Ee(C,"length"),p.address=De(i,"address",Ut.kml),p.phoneNumber=De(i,"phoneNumber",Ut.kml),p.snippet=De(i,"Snippet",Ut.kml),ot(i,h),at(i,h,f,a,o);var S=e._ellipsoid;return _t(i,h,S),mt(i,h,S),d(Ae(i,"Region",Ut.kml))&&A("kml-region","KML - Placemark Regions are unsupported"),{entity:h,styleEntity:f}}function lt(e,t,i,r,n,o,a,s,l){for(var u=Object.keys(qt),c=u.length,d=0;d<c;d++)for(var h=u[d],p=qt[h],f=i.childNodes,m=f.length,_=0;_<m;_++){var g=f[_];g.localName!==h||-1===Ut.kml.indexOf(g.namespaceURI)&&-1===Ut.gx.indexOf(g.namespaceURI)||p(e,t,g,r,n,o,a,s,l)}}function ut(e,t,i,r,n,o,a,s,l){lt(e,st(e,t,i,r,n,o,a,s,l).entity,i,r,n,o,a,s,l)}function ct(e,t,i,r,n,o,a,s,l){for(var u=st(e,t,i,r,n,o,a,s,l),c=u.entity,h=u.styleEntity,p=!1,f=i.childNodes,m=0,_=f.length;m<_&&!p;m++){var g=f.item(m),v=Ht[g.localName];d(v)&&(v(e,r,g,c,h,c.id),p=!0)}p||(c.merge(h),Qe(e,c,h))}function dt(e,t,i,r,n,o,a,s,l){var u=De(i,"name",Ut.kml),c=Ee(i,"id"),h=new Z(u,c),p=Ae(i,"Playlist",Ut.gx);if(p)for(var f=e._ellipsoid,m=p.childNodes,_=0;_<m.length;_++){var g=m[_];if(g.localName){var v=Yt[g.localName];v?v(h,g,f):console.log("Unknown KML Tour playlist entry type "+g.localName)}}d(e.kmlTours)||(e.kmlTours=[]),e.kmlTours.push(h)}function ht(e,t){A("KML Tour unsupported node "+t.localName)}function pt(e,t){var i=Pe(t,"duration",Ut.gx);e.addPlaylistEntry(new $(i))}function ft(e,t,i){var r=Pe(t,"duration",Ut.gx),n=De(t,"flyToMode",Ut.gx),o={kml:{}};_t(t,o,i),mt(t,o,i);var a=o.kml.lookAt||o.kml.camera,s=new J(r,n,a);e.addPlaylistEntry(s)}function mt(e,t,i){var r=Ae(e,"Camera",Ut.kml);if(d(r)){var o=c(Pe(r,"longitude",Ut.kml),0),a=c(Pe(r,"latitude",Ut.kml),0),s=c(Pe(r,"altitude",Ut.kml),0),l=c(Pe(r,"heading",Ut.kml),0),u=c(Pe(r,"tilt",Ut.kml),0),h=c(Pe(r,"roll",Ut.kml),0),p=n.fromDegrees(o,a,s,i),f=y.fromDegrees(l,u-90,h);t.kml.camera=new Q(p,f)}}function _t(e,t,i){var r=Ae(e,"LookAt",Ut.kml);if(d(r)){var o=c(Pe(r,"longitude",Ut.kml),0),a=c(Pe(r,"latitude",Ut.kml),0),s=c(Pe(r,"altitude",Ut.kml),0),l=Pe(r,"heading",Ut.kml),u=Pe(r,"tilt",Ut.kml),h=c(Pe(r,"range",Ut.kml),0);u=S.toRadians(c(u,0)),l=S.toRadians(c(l,0));var p=new v(l,u-S.PI_OVER_TWO,h),f=n.fromDegrees(o,a,s,i);t.kml.lookAt=new K(f,p)}}function gt(e,t,i,r,n,o,a,s,l){var u,c=st(e,t,i,r,n,o,a,s,l),h=c.entity,p=!1,f=e._ellipsoid,m=Se(Ae(i,"LatLonQuad",Ut.gx),f),_=Pe(i,"drawOrder",Ut.kml);if(d(m))u=Be(),u.hierarchy=new x(m),u.zIndex=_,h.polygon=u,p=!0;else{u=new oe,u.zIndex=_,h.rectangle=u;var g=Ae(i,"LatLonBox",Ut.kml);if(d(g)){var v=Pe(g,"west",Ut.kml),y=Pe(g,"south",Ut.kml),C=Pe(g,"east",Ut.kml),b=Pe(g,"north",Ut.kml);d(v)&&(v=S.negativePiToPi(S.toRadians(v))),d(y)&&(y=S.clampToLatitudeRange(S.toRadians(y))),d(C)&&(C=S.negativePiToPi(S.toRadians(C))),d(b)&&(b=S.clampToLatitudeRange(S.toRadians(b))),u.coordinates=new D(v,y,C,b);var T=Pe(g,"rotation",Ut.kml);if(d(T)){var E=S.toRadians(T);u.rotation=E,u.stRotation=E}}}var w=Ae(i,"Icon",Ut.kml),P=ke(w,e,o,a,!0);if(d(P)){p&&A("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");var I=Pe(w,"x",Ut.gx),M=Pe(w,"y",Ut.gx),R=Pe(w,"w",Ut.gx),O=Pe(w,"h",Ut.gx);(d(I)||d(M)||d(R)||d(O))&&A("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),u.material=P,u.material.color=Oe(i,"color",Ut.kml),u.material.transparent=!0}else u.material=Oe(i,"color",Ut.kml);var L=De(i,"altitudeMode",Ut.kml);d(L)?"absolute"===L?(u.height=Pe(i,"altitude",Ut.kml),u.zIndex=void 0):"clampToGround"!==L&&A("kml-altitudeMode-unknown","KML - Unknown altitudeMode: "+L):(L=De(i,"altitudeMode",Ut.gx),"relativeToSeaFloor"===L?(A("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),u.height=Pe(i,"altitude",Ut.kml),u.zIndex=void 0):"clampToSeaFloor"===L?A("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):d(L)&&A("kml-altitudeMode-unknown","KML - Unknown altitudeMode: "+L))}function vt(e,t,i,r,n,o,a,s,l){e._unsupportedNode.raiseEvent(e,t,i,r,n,o,a),A("kml-unsupportedFeature-"+i.nodeName,"KML - Unsupported feature: "+i.nodeName)}function yt(e){if(!d(e)||0===e.length)return"";var t=e[0];return"&"!==t&&"?"!==t||(e=e.substring(1)),e}function Ct(e,t,i,r,o,a){function s(e){return e<-S.PI_OVER_TWO?-S.PI_OVER_TWO:e>S.PI_OVER_TWO?S.PI_OVER_TWO:e}function l(e){return e>S.PI?e-S.TWO_PI:e<-S.PI?e+S.TWO_PI:e}var u=E(e.queryParameters);if(u=u.replace(/%5B/g,"[").replace(/%5D/g,"]"),d(t)&&t._mode!==B.MORPHING){var h,p;if(o=c(o,Xt),d(i)&&(Kt.x=.5*i.clientWidth,Kt.y=.5*i.clientHeight,h=t.pickEllipsoid(Kt,a,Zt)),d(h)?p=a.cartesianToCartographic(h,Qt):(p=D.center(o,Qt),h=a.cartographicToCartesian(p)),d(r)&&!S.equalsEpsilon(r,1,S.EPSILON9)){var f=o.width*r*.5,m=o.height*r*.5;o=new D(l(p.longitude-f),s(p.latitude-m),l(p.longitude+f),s(p.latitude+m))}u=u.replace("[bboxWest]",S.toDegrees(o.west).toString()),u=u.replace("[bboxSouth]",S.toDegrees(o.south).toString()),u=u.replace("[bboxEast]",S.toDegrees(o.east).toString()),u=u.replace("[bboxNorth]",S.toDegrees(o.north).toString());var _=S.toDegrees(p.longitude).toString(),g=S.toDegrees(p.latitude).toString();u=u.replace("[lookatLon]",_),u=u.replace("[lookatLat]",g),u=u.replace("[lookatTilt]",S.toDegrees(t.pitch).toString()),u=u.replace("[lookatHeading]",S.toDegrees(t.heading).toString()),u=u.replace("[lookatRange]",n.distance(t.positionWC,h)),u=u.replace("[lookatTerrainLon]",_),u=u.replace("[lookatTerrainLat]",g),u=u.replace("[lookatTerrainAlt]",p.height.toString()),a.cartesianToCartographic(t.positionWC,Qt),u=u.replace("[cameraLon]",S.toDegrees(Qt.longitude).toString()),u=u.replace("[cameraLat]",S.toDegrees(Qt.latitude).toString()),u=u.replace("[cameraAlt]",S.toDegrees(Qt.height).toString());var v=t.frustum,y=v.aspectRatio,C="",b="";if(d(y)){var T=S.toDegrees(v.fov);y>1?(C=T,b=T/y):(b=T,C=T*y)}u=u.replace("[horizFov]",C.toString()),u=u.replace("[vertFov]",b.toString())}else u=u.replace("[bboxWest]","-180"),u=u.replace("[bboxSouth]","-90"),u=u.replace("[bboxEast]","180"),u=u.replace("[bboxNorth]","90"),u=u.replace("[lookatLon]",""),u=u.replace("[lookatLat]",""),u=u.replace("[lookatRange]",""),u=u.replace("[lookatTilt]",""),u=u.replace("[lookatHeading]",""),u=u.replace("[lookatTerrainLon]",""),u=u.replace("[lookatTerrainLat]",""),u=u.replace("[lookatTerrainAlt]",""),u=u.replace("[cameraLon]",""),u=u.replace("[cameraLat]",""),u=u.replace("[cameraAlt]",""),u=u.replace("[horizFov]",""),u=u.replace("[vertFov]","");d(i)?(u=u.replace("[horizPixels]",i.clientWidth),u=u.replace("[vertPixels]",i.clientHeight)):(u=u.replace("[horizPixels]",""),u=u.replace("[vertPixels]","")),u=u.replace("[terrainEnabled]","1"),u=u.replace("[clientVersion]","1"),u=u.replace("[kmlVersion]","2.2"),u=u.replace("[clientName]","Cesium"),u=u.replace("[language]","English"),e.setQueryParameters(P(u))}function bt(e,t,i,r,n,o,a,s,l){var h=st(e,t,i,r,n,o,a,s,l),p=h.entity,f=Ae(i,"Link",Ut.kml);if(d(f)||(f=Ae(i,"Url",Ut.kml)),d(f)){var m,_,g=De(f,"href",Ut.kml);if(d(g)){var v=g;if(g=Me(g,o,a),/^data:/.test(g.getUrlComponent()))/\.kmz/i.test(o.getUrlComponent())||(v=o.getDerivedResource({url:v}));else{v=g.clone(),m=De(f,"viewRefreshMode",Ut.kml),_=c(De(f,"viewBoundScale",Ut.kml),1);var y="onStop"===m?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",C=c(De(f,"viewFormat",Ut.kml),y),S=De(f,"httpQuery",Ut.kml);d(C)&&g.setQueryParameters(P(yt(C))),d(S)&&g.setQueryParameters(P(yt(S)));var T=e._ellipsoid;Ct(g,e._camera,e._canvas,_,e._lastCameraView.bbox,T)}var E={sourceUri:v,uriResolver:a,context:p.id},w=new X,x=At(e,w,g,E).then(function(t){var i=e._entityCollection,r=w.values;i.suspendEvents();for(var n=0;n<r.length;n++){var o=r[n];d(o.parent)||(o.parent=p,xt(o)),i.add(o)}i.resumeEvents();var a=De(f,"refreshMode",Ut.kml),s=c(Pe(f,"refreshInterval",Ut.kml),0);if("onInterval"===a&&s>0||"onExpire"===a||"onStop"===m){var l=Ae(t,"NetworkLinkControl",Ut.kml),h=d(l),v=b.now(),y={id:u(),href:g,cookie:{},lastUpdated:v,updating:!1,entity:p,viewBoundScale:_,needsUpdate:!1,cameraUpdateTime:v},C=0;if(h&&(y.cookie=P(c(De(l,"cookie",Ut.kml),"")),C=c(Pe(l,"minRefreshPeriod",Ut.kml),0)),"onInterval"===a)h&&(s=Math.max(C,s)),y.refreshMode=jt.INTERVAL,y.time=s;else if("onExpire"===a){var S;if(h&&(S=De(l,"expires",Ut.kml)),d(S))try{var T=b.fromIso8601(S),E=b.secondsDifference(T,v);E>0&&E<C&&b.addSeconds(v,C,T),y.refreshMode=jt.EXPIRE,y.time=T}catch(e){A("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else A("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else e._camera?(y.refreshMode=jt.STOP,y.time=c(Pe(f,"viewRefreshTime",Ut.kml),0)):A("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires a camera be passed in when creating the KmlDataSource");d(y.refreshMode)&&e._networkLinks.set(y.id,y)}else"onRegion"===m&&A("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion")}).otherwise(function(t){A("An error occured during loading "+g.url),e._error.raiseEvent(e,t)});s.push(x)}}}function St(e,t,i,r,n,o,a,s,l){var u=qt[t.localName];d(u)?u(e,i,t,r,n,o,a,s,l):vt(e,i,t,r,n,o,a,s,l)}function Tt(e,t,i,r,n,o){t.removeAll();var a=[],s=i.documentElement,l="Document"===s.localName?s:Ae(s,"Document",Ut.kml),u=De(l,"name",Ut.kml);d(u)||(u=g(r.getUrlComponent())),d(e._name)||(e._name=u);var c=new X(e);return V.all(We(e,i,c,r,!1,n)).then(function(){var s=i.documentElement;if("kml"===s.localName)for(var l=s.childNodes,u=0;u<l.length;u++){var h=l[u];if(d(qt[h.localName])){s=h;break}}return t.suspendEvents(),St(e,s,void 0,t,c,r,n,a,o),t.resumeEvents(),V.all(a).then(function(){return i.documentElement})})}function Et(e,t,i,r){var n=V.defer();return U.createReader(new U.BlobReader(i),function(i){i.getEntries(function(o){for(var a,s,l=[],u={},c=0;c<o.length;c++){var h=o[c];if(!h.directory){var p=V.defer();l.push(p.promise),/\.kml$/i.test(h.filename)?d(a)&&/\//i.test(h.filename)?_e(h,u,p):(d(a)&&_e(a,u,s),a=h,s=p):_e(h,u,p)}}d(a)&&me(a,u,s),V.all(l).then(function(){return i.close(),d(u.kml)?(u.keys=Object.keys(u),Tt(e,t,u.kml,r,u)):void n.reject(new M("KMZ file does not contain a KML document."))}).then(n.resolve).otherwise(n.reject)})},function(e){n.reject(e)}),n.promise}function At(e,t,i,r){r=c(r,c.EMPTY_OBJECT);var n=r.sourceUri,o=r.uriResolver,a=r.context,s=i;return"string"==typeof i||i instanceof I?(i=I.createIfNeeded(i),s=i.fetchBlob(),n=c(n,i.clone())):n=c(n,I.DEFAULT.clone()),n=I.createIfNeeded(n),V(s).then(function(i){return i instanceof Blob?de(i).then(function(r){return r?Et(e,t,i,n):he(i).then(function(i){i=pe(i),i=fe(i);var r,s;try{r=Mt.parseFromString(i,"application/xml")}catch(e){s=e.toString()}if(d(s)||r.body||"parsererror"===r.documentElement.tagName){var l=d(s)?s:r.documentElement.firstChild.nodeValue;throw l||(l=r.body.innerText),new M(l)}return Tt(e,t,r,n,o,a)})}):Tt(e,t,i,n,o,a)}).otherwise(function(t){return e._error.raiseEvent(e,t),console.log(t),V.reject(t)})}function wt(e){e=c(e,{});var i=e.camera,r=e.canvas;this._changed=new m,this._error=new m,this._loading=new m,this._refresh=new m,this._unsupportedNode=new m,this._clock=void 0,this._entityCollection=new X(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new w,this._networkLinks=new t,this._entityCluster=new j,this._canvas=r,this._camera=i,this._lastCameraView={position:d(i)?n.clone(i.positionWC):void 0,direction:d(i)?n.clone(i.directionWC):void 0,up:d(i)?n.clone(i.upWC):void 0,bbox:d(i)?i.computeViewRectangle():D.clone(D.MAX_VALUE)},this._ellipsoid=c(e.ellipsoid,f.WGS84)}function xt(e){var t=e.parent;if(d(t)){var i=t.availability;if(d(i)){var r=e.availability;d(r)?r.intersect(i):e.availability=i}}}function Pt(e,t,i,r,n){return function(o){function a(e){y.remove(e);for(var t=e._children,i=t.length,r=0;r<i;++r)a(t[r])}if(r.contains(t.id)){var s=!1,l=Ae(o,"NetworkLinkControl",Ut.kml),u=d(l),h=0;if(u){if(d(Ae(l,"Update",Ut.kml)))return A("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,void r.remove(t.id);t.cookie=P(c(De(l,"cookie",Ut.kml),"")),h=c(Pe(l,"minRefreshPeriod",Ut.kml),0)}var p=b.now(),f=t.refreshMode;if(f===jt.INTERVAL)d(l)&&(t.time=Math.max(h,t.time));else if(f===jt.EXPIRE){var m;if(d(l)&&(m=De(l,"expires",Ut.kml)),d(m))try{var _=b.fromIso8601(m),g=b.secondsDifference(_,p);g>0&&g<h&&b.addSeconds(p,h,_),t.time=_}catch(e){A("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else A("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}var v=t.entity,y=e._entityCollection,S=i.values;y.suspendEvents();var T,E=y.values.slice();for(T=0;T<E.length;++T){var w=E[T];w.parent===v&&(w.parent=void 0,a(w))}for(y.resumeEvents(),y.suspendEvents(),T=0;T<S.length;T++){var x=S[T];d(x.parent)||(x.parent=v,xt(x)),y.add(x)}y.resumeEvents(),s?r.remove(t.id):t.lastUpdated=p;var D=y.computeAvailability(),I=D.start,M=D.stop,R=b.equals(I,C.MINIMUM_VALUE),O=b.equals(M,C.MAXIMUM_VALUE);if(!R||!O){var L=e._clock;L.startTime===I&&L.stopTime===M||(L.startTime=I,L.stopTime=M,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,n.getUrlComponent(!0))}}}function Dt(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}if("undefined"==typeof DOMParser)return{};var It={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){var t=e.toLowerCase();return t=_(t),It[t]}},Mt=new DOMParser,Rt=new z({stripPrefix:!1,twitter:!1,email:!1,replaceFn:function(e,t){if(!t.protocolUrlMatch)return!1}}),Ot=32,Lt=2414016,Nt=1,Ft=16093e3,Bt=.1,zt=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],kt=["http://www.google.com/kml/ext/2.2"],Vt=["http://www.w3.org/2005/Atom"],Ut={kml:zt,gx:kt,atom:Vt,kmlgx:zt.concat(kt)},Gt={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0},Ht={Point:Ze,LineString:Je,LinearRing:Je,Polygon:$e,Track:et,MultiTrack:it,MultiGeometry:rt,Model:nt},Wt=document.createElement("div"),qt={Document:lt,Folder:ut,Placemark:ct,NetworkLink:bt,GroundOverlay:gt,PhotoOverlay:vt,ScreenOverlay:vt,Tour:dt},Yt={FlyTo:ft,Wait:pt,SoundCue:ht,AnimatedUpdate:ht,TourControl:ht},jt={INTERVAL:0,EXPIRE:1,STOP:2},Xt=new D,Qt=new o,Kt=new r,Zt=new n;wt.load=function(e,t){return t=c(t,c.EMPTY_OBJECT),new wt(t).load(e,t)},h(wt.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}}),wt.prototype.load=function(e,t){t=c(t,{}),W.setLoading(this,!0);var i=this._name;this._name=void 0,this._clampToGround=c(t.clampToGround,!1);var r=this;return At(this,this._entityCollection,e,t).then(function(){var e,t=r._entityCollection.computeAvailability(),n=t.start,o=t.stop,l=b.equals(n,C.MINIMUM_VALUE),u=b.equals(o,C.MAXIMUM_VALUE);if(!l||!u){var c;l&&(c=new Date,c.setHours(0,0,0,0),n=b.fromDate(c)),u&&(c=new Date,c.setHours(24,0,0,0),o=b.fromDate(c)),e=new q,e.startTime=n,e.stopTime=o,e.currentTime=b.clone(n),e.clockRange=a.LOOP_STOP,e.clockStep=s.SYSTEM_CLOCK_MULTIPLIER,e.multiplier=Math.round(Math.min(Math.max(b.secondsDifference(o,n)/60,1),31556900))}var d=!1;return e!==r._clock&&(r._clock=e,d=!0),i!==r._name&&(d=!0),d&&r._changed.raiseEvent(r),W.setLoading(r,!1),r}).otherwise(function(e){return W.setLoading(r,!1),r._error.raiseEvent(r,e),console.log(e),V.reject(e)})};var Jt=new t;return wt.prototype.update=function(e){function i(e){for(var t=e._children,r=t.length,n=0;n<r;++n){var o=t[n];Jt.set(o.id,o),i(o)}}var r=this._networkLinks;if(0===r.length)return!0;var o=b.now(),a=this;Jt.removeAll();var s=!1,l=this._lastCameraView,u=this._camera;!d(u)||u.positionWC.equalsEpsilon(l.position,S.EPSILON7)&&u.directionWC.equalsEpsilon(l.direction,S.EPSILON7)&&u.upWC.equalsEpsilon(l.up,S.EPSILON7)||(l.position=n.clone(u.positionWC),l.direction=n.clone(u.directionWC),l.up=n.clone(u.upWC),l.bbox=u.computeViewRectangle(),s=!0);var h=new t,p=!1;return r.values.forEach(function(e){var t=e.entity;if(!Jt.contains(t.id)){if(!e.updating){var r=!1;if(e.refreshMode===jt.INTERVAL?b.secondsDifference(o,e.lastUpdated)>e.time&&(r=!0):e.refreshMode===jt.EXPIRE?b.greaterThan(o,e.time)&&(r=!0):e.refreshMode===jt.STOP&&(s&&(e.needsUpdate=!0,e.cameraUpdateTime=o),e.needsUpdate&&b.secondsDifference(o,e.cameraUpdateTime)>=e.time&&(r=!0)),r){i(t),e.updating=!0;var n=new X,u=e.href.clone();u.setQueryParameters(e.cookie);var d=c(a._ellipsoid,f.WGS84);Ct(u,a._camera,a._canvas,e.viewBoundScale,l.bbox,d),At(a,n,u,{context:t.id}).then(Pt(a,e,n,h,u)).otherwise(function(t){var i="NetworkLink "+e.href+" refresh failed: "+t;console.log(i),a._error.raiseEvent(a,i)}),p=!0}}h.set(e.id,e)}}),p&&(this._networkLinks=h,this._changed.raiseEvent(this)),!0},wt}),define("DataSources/Visualizer",["../Core/DeveloperError"],function(e){"use strict";function t(){e.throwInstantiationError()}return t.prototype.update=e.throwInstantiationError,t.prototype.getBoundingSphere=e.throwInstantiationError,t.prototype.isDestroyed=e.throwInstantiationError,t.prototype.destroy=e.throwInstantiationError,t}),define("Renderer/ClearCommand",["../Core/Color","../Core/defaultValue","../Core/freezeObject"],function(e,t,i){"use strict";function r(e){e=t(e,t.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}return r.ALL=i(new r({color:new e(0,0,0,0),depth:1,stencil:0})),r.prototype.execute=function(e,t){e.clear(this,t)},r}),define("Shaders/ViewportQuadVS",[],function(){"use strict";return"attribute vec4 position;\nattribute vec2 textureCoordinates;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\ngl_Position = position;\nv_textureCoordinates = textureCoordinates;\n}\n"}),define("Renderer/ComputeEngine",["../Core/BoundingRectangle","../Core/Check","../Core/Color","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/PrimitiveType","../Shaders/ViewportQuadVS","./ClearCommand","./DrawCommand","./Framebuffer","./RenderState","./ShaderProgram"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e){this._context=e}function f(e,t){return new c({context:e,colorTextures:[t],destroyAttachments:!1})}function m(e,t){return h.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function _(t,i){return r(g)&&g.viewport.width===t&&g.viewport.height===i||(g=d.fromCache({viewport:new e(0,0,t,i)})),g}var g,v=new u({primitiveType:a.TRIANGLES}),y=new l({color:new i(0,0,0,0)});return p.prototype.execute=function(e){r(e.preExecute)&&e.preExecute(e);var t=e.outputTexture,i=t.width,n=t.height,o=this._context,a=r(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=r(e.shaderProgram)?e.shaderProgram:m(o,e.fragmentShaderSource),l=f(o,t),u=_(i,n),c=e.uniformMap,d=y;d.framebuffer=l,d.renderState=u,d.execute(o);var h=v;h.vertexArray=a,h.renderState=u,h.shaderProgram=s,h.uniformMap=c,h.framebuffer=l,h.execute(o),l.destroy(),e.persists||(s.destroy(),r(e.vertexArray)&&a.destroy()),r(e.postExecute)&&e.postExecute(t)},p.prototype.isDestroyed=function(){return!1},p.prototype.destroy=function(){return n(this)},p}),define("Renderer/PassState",[],function(){"use strict";function e(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}return e}),define("Renderer/ShaderCache",["../Core/defined","../Core/defineProperties","../Core/destroyObject","./ShaderProgram","./ShaderSource"],function(e,t,i,r,n){"use strict";function o(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}function a(e,t){for(var i=t.derivedKeywords,r=i.length,n=0;n<r;++n){var o=i[n]+t.keyword;a(e,e._shaders[o])}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}return t(o.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}}),o.prototype.replaceShaderProgram=function(t){return e(t.shaderProgram)&&t.shaderProgram.destroy(),this.getShaderProgram(t)},o.prototype.getShaderProgram=function(t){var i=t.vertexShaderSource,o=t.fragmentShaderSource,a=t.attributeLocations;"string"==typeof i&&(i=new n({sources:[i]})),"string"==typeof o&&(o=new n({sources:[o]}));var s,l=i.createCombinedVertexShader(this._context),u=o.createCombinedFragmentShader(this._context),c=l+u+JSON.stringify(a);if(e(this._shaders[c]))s=this._shaders[c],delete this._shadersToRelease[c];else{var d=this._context,h=new r({gl:d._gl,logShaderCompilation:d.logShaderCompilation,debugShaders:d.debugShaders,vertexShaderSource:i,vertexShaderText:l,fragmentShaderSource:o,fragmentShaderText:u,attributeLocations:a});s={cache:this,shaderProgram:h,keyword:c,derivedKeywords:[],count:0},h._cachedShader=s,this._shaders[c]=s,++this._numberOfShaders}return++s.count,s.shaderProgram},o.prototype.replaceDerivedShaderProgram=function(t,i,r){var n=t._cachedShader,o=i+n.keyword,s=this._shaders[o];if(e(s)){a(this,s);var l=n.derivedKeywords.indexOf(i);l>-1&&n.derivedKeywords.splice(l,1)}return this.createDerivedShaderProgram(t,i,r)},o.prototype.getDerivedShaderProgram=function(t,i){var r=t._cachedShader,n=i+r.keyword,o=this._shaders[n];if(e(o))return o.shaderProgram},o.prototype.createDerivedShaderProgram=function(e,t,i){var o=e._cachedShader,a=t+o.keyword,s=i.vertexShaderSource,l=i.fragmentShaderSource,u=i.attributeLocations;"string"==typeof s&&(s=new n({sources:[s]})),"string"==typeof l&&(l=new n({sources:[l]}));var c=this._context,d=s.createCombinedVertexShader(c),h=l.createCombinedFragmentShader(c),p=new r({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:s,vertexShaderText:d,fragmentShaderSource:l,fragmentShaderText:h,attributeLocations:u}),f={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0};return o.derivedKeywords.push(t),p._cachedShader=f,this._shaders[a]=f,p},o.prototype.destroyReleasedShaderPrograms=function(){var e=this._shadersToRelease;for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];a(this,i),--this._numberOfShaders}this._shadersToRelease={}},o.prototype.releaseShaderProgram=function(t){if(e(t)){var i=t._cachedShader;i&&0==--i.count&&(this._shadersToRelease[i.keyword]=i)}},o.prototype.isDestroyed=function(){return!1},o.prototype.destroy=function(){var e=this._shaders;for(var t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return i(this)},o}),define("Renderer/TextureCache",["../Core/defined","../Core/defineProperties","../Core/destroyObject"],function(e,t,i){"use strict";function r(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}return t(r.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}}),r.prototype.getTexture=function(t){var i=this._textures[t];if(e(i))return delete this._texturesToRelease[t],++i.count,i.texture},r.prototype.addTexture=function(e,t){var i={texture:t,count:1};t.finalDestroy=t.destroy;var r=this;t.destroy=function(){0==--i.count&&(r._texturesToRelease[e]=i)},this._textures[e]=i,++this._numberOfTextures},r.prototype.destroyReleasedTextures=function(){var e=this._texturesToRelease;for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];delete this._textures[t],i.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}},r.prototype.isDestroyed=function(){return!1},r.prototype.destroy=function(){var e=this._textures;for(var t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return i(this)},r}),define("Renderer/UniformState",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/EncodedCartesian3","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/OrthographicFrustum","../Core/Simon1994PlanetaryPositions","../Core/Transforms","../Scene/SceneMode","./Sampler"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new e,this._viewportCartesian4=new r,this._viewportDirty=!1,this._viewportOrthographicMatrix=h.clone(h.IDENTITY),this._viewportTransformation=h.clone(h.IDENTITY),this._model=h.clone(h.IDENTITY),this._view=h.clone(h.IDENTITY),this._inverseView=h.clone(h.IDENTITY),this._projection=h.clone(h.IDENTITY),this._infiniteProjection=h.clone(h.IDENTITY),this._entireFrustum=new t,this._currentFrustum=new t,this._frustumPlanes=new r,this._log2FarDistance=void 0,this._log2FarPlusOne=void 0,this._log2NearDistance=void 0,this._frameState=void 0,this._temeToPseudoFixed=d.clone(h.IDENTITY),this._view3DDirty=!0,this._view3D=new h,this._inverseView3DDirty=!0,this._inverseView3D=new h,this._inverseModelDirty=!0,this._inverseModel=new h,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new d,this._viewRotation=new d,this._inverseViewRotation=new d,this._viewRotation3D=new d,this._inverseViewRotation3D=new d,this._inverseProjectionDirty=!0,this._inverseProjection=new h,this._modelViewDirty=!0,this._modelView=new h,this._modelView3DDirty=!0,this._modelView3D=new h,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new h,this._inverseModelViewDirty=!0,this._inverseModelView=new h,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new h,this._viewProjectionDirty=!0,this._viewProjection=new h,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new h,this._modelViewProjectionDirty=!0,this._modelViewProjection=new h,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new h,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new h,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new h,this._normalDirty=!0,this._normal=new d,this._normal3DDirty=!0,this._normal3D=new d,this._inverseNormalDirty=!0,this._inverseNormal=new d,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new d,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new u,this._cameraPosition=new i,this._sunPositionWC=new i,this._sunPositionColumbusView=new i,this._sunDirectionWC=new i,this._sunDirectionEC=new i,this._sunColor=new i,this._moonDirectionEC=new i,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._cameraDirection=new i,this._cameraRight=new i,this._cameraUp=new i,this._frustum2DWidth=0,this._eyeHeight2D=new t,this._resolutionScale=1,this._orthographicIn3D=!1,this._backgroundColor=new o,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsDimensions=new t,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._invertClassificationColor=void 0,this._imagerySplitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}function y(e,t){h.clone(t,e._view),h.getRotation(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function C(e,t){h.clone(t,e._inverseView),h.getRotation(t,e._inverseViewRotation)}function b(e,t){h.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function S(e,t){h.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}function T(e,t){i.clone(t.positionWC,e._cameraPosition),i.clone(t.directionWC,e._cameraDirection),i.clone(t.rightWC,e._cameraRight),i.clone(t.upWC,e._cameraUp),e._encodedCameraPositionMCDirty=!0}function E(e,t){s(m.computeIcrfToFixedMatrix(t.time,Y))||(Y=m.computeTemeToPseudoFixedMatrix(t.time,Y));var r=f.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);d.multiplyByVector(Y,r,r),i.normalize(r,e._sunDirectionWC),r=d.multiplyByVector(e.viewRotation3D,r,e._sunDirectionEC),i.normalize(r,r),r=f.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),d.multiplyByVector(Y,r,r),d.multiplyByVector(e.viewRotation3D,r,r),i.normalize(r,r);var n=t.mapProjection,o=n.ellipsoid,a=o.cartesianToCartographic(e._sunPositionWC,j);n.project(a,e._sunPositionColumbusView)}function A(e){if(e._viewportDirty){var t=e._viewport;h.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),h.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function w(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode===_.SCENE2D||e._mode===_.MORPHING||e._orthographicIn3D?h.clone(h.ZERO,e._inverseProjection):h.inverse(e._projection,e._inverseProjection))}function x(e){e._modelViewDirty&&(e._modelViewDirty=!1,h.multiplyTransformation(e._view,e._model,e._modelView))}function P(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,h.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function D(e){ -e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,h.inverse(e.modelView,e._inverseModelView))}function I(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,h.inverse(e.modelView3D,e._inverseModelView3D))}function M(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,h.multiply(e._projection,e._view,e._viewProjection))}function R(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,h.inverse(e.viewProjection,e._inverseViewProjection))}function O(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,h.multiply(e._projection,e.modelView,e._modelViewProjection))}function L(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;var t=e.modelView,i=e._modelViewRelativeToEye;i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=t[3],i[4]=t[4],i[5]=t[5],i[6]=t[6],i[7]=t[7],i[8]=t[8],i[9]=t[9],i[10]=t[10],i[11]=t[11],i[12]=0,i[13]=0,i[14]=0,i[15]=t[15]}}function N(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,h.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function F(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,h.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function B(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,h.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function z(e){if(e._normalDirty){e._normalDirty=!1;var t=e._normal;h.getRotation(e.inverseModelView,t),d.transpose(t,t)}}function k(e){if(e._normal3DDirty){e._normal3DDirty=!1;var t=e._normal3D;h.getRotation(e.inverseModelView3D,t),d.transpose(t,t)}}function V(e){e._inverseNormalDirty&&(e._inverseNormalDirty=!1,h.getRotation(e.inverseModelView,e._inverseNormal))}function U(e){e._inverseNormal3DDirty&&(e._inverseNormal3DDirty=!1,h.getRotation(e.inverseModelView3D,e._inverseNormal3D))}function G(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,h.multiplyByPoint(e.inverseModel,e._cameraPosition,Q),u.fromCartesian(Q,e._encodedCameraPositionMC))}function H(e,t,r,n,o,a,l,u){var d=K;d.x=e.y,d.y=e.z,d.z=e.x;var p=Z;p.x=r.y,p.y=r.z,p.z=r.x;var f=J;f.x=n.y,f.y=n.z,f.z=n.x;var g=$;g.x=t.y,g.y=t.z,g.z=t.x,a===_.SCENE2D&&(d.z=.5*o);var v=l.unproject(d,ee);v.longitude=c.clamp(v.longitude,-Math.PI,Math.PI),v.latitude=c.clamp(v.latitude,-c.PI_OVER_TWO,c.PI_OVER_TWO);var y=l.ellipsoid,C=y.cartographicToCartesian(v,te),b=m.eastNorthUpToFixedFrame(C,y,ie);return h.multiplyByPointAsVector(b,p,p),h.multiplyByPointAsVector(b,f,f),h.multiplyByPointAsVector(b,g,g),s(u)||(u=new h),u[0]=p.x,u[1]=f.x,u[2]=-g.x,u[3]=0,u[4]=p.y,u[5]=f.y,u[6]=-g.y,u[7]=0,u[8]=p.z,u[9]=f.z,u[10]=-g.z,u[11]=0,u[12]=-i.dot(p,C),u[13]=-i.dot(f,C),u[14]=i.dot(g,C),u[15]=1,u}function W(e){e._view3DDirty&&(e._mode===_.SCENE3D?h.clone(e._view,e._view3D):H(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),h.getRotation(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function q(e){e._inverseView3DDirty&&(h.inverseTransformation(e.view3D,e._inverseView3D),h.getRotation(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}l(v.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(t){if(!e.equals(t,this._viewport)){e.clone(t,this._viewport);var i=this._viewport,r=this._viewportCartesian4;r.x=i.x,r.y=i.y,r.z=i.width,r.w=i.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return A(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return A(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){h.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,h.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){var e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,h.getRotation(this.inverseModel,e),d.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return W(this),this._view3D}},viewRotation:{get:function(){return W(this),this._viewRotation}},viewRotation3D:{get:function(){return W(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return q(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return q(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return w(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return x(this),this._modelView}},modelView3D:{get:function(){return P(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return L(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return D(this),this._inverseModelView}},inverseModelView3D:{get:function(){return I(this),this._inverseModelView3D}},viewProjection:{get:function(){return M(this),this._viewProjection}},inverseViewProjection:{get:function(){return R(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return O(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return N(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return F(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return B(this),this._modelViewInfiniteProjection}},normal:{get:function(){return z(this),this._normal}},normal3D:{get:function(){return k(this),this._normal3D}},inverseNormal:{get:function(){return V(this),this._inverseNormal}},inverseNormal3D:{get:function(){return U(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},log2FarDistance:{get:function(){return this._log2FarDistance}},log2FarPlusOne:{get:function(){return this._log2FarPlusOne}},log2NearDistance:{get:function(){return this._log2NearDistance}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},sunColor:{get:function(){return this._sunColor}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},encodedCameraPositionMCHigh:{get:function(){return G(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return G(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},resolutionScale:{get:function(){return this._resolutionScale}},fogDensity:{get:function(){return this._fogDensity}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsDimensions:{get:function(){return this._specularEnvironmentMapsDimensions}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},imagerySplitPosition:{get:function(){return this._imagerySplitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}}});var Y=new d,j=new n;v.prototype.updateCamera=function(e){y(this,e.viewMatrix),C(this,e.inverseViewMatrix),T(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==_.SCENE2D&&e.frustum instanceof p},v.prototype.updateFrustum=function(e){b(this,e.projectionMatrix),s(e.infiniteProjectionMatrix)&&S(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._log2FarDistance=2/c.log2(e.far+1),this._log2FarPlusOne=c.log2(e.far+1),this._log2NearDistance=c.log2(e.near),s(e._offCenterFrustum)&&(e=e._offCenterFrustum),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right},v.prototype.updatePass=function(e){this._pass=e};var X=[];v.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection;var r=e.context._canvas;this._resolutionScale=r.width/r.clientWidth;var n=e.camera;this.updateCamera(n),e.mode===_.SCENE2D?(this._frustum2DWidth=n.frustum.right-n.frustum.left,this._eyeHeight2D.x=.5*this._frustum2DWidth,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),E(this,e),this._sunColor=i.clone(e.sunColor,this._sunColor);var l=e.brdfLutGenerator,u=s(l)?l.colorTexture:void 0;this._brdfLut=u,this._environmentMap=a(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=a(e.sphericalHarmonicCoefficients,X),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,s(this._specularEnvironmentMaps)&&t.clone(this._specularEnvironmentMaps.dimensions,this._specularEnvironmentMapsDimensions),this._fogDensity=e.fog.density,this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=m.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._imagerySplitPosition=e.imagerySplitPosition*e.context.drawingBufferWidth;var c,d=n.frustum.fov,h=this._viewport;c=h.height>h.width?2*Math.tan(.5*d)/h.height:2*Math.tan(.5*d)/h.width,this._geometricToleranceOverMeter=c*e.maximumScreenSpaceError,o.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};var Q=new i,K=new i,Z=new i,J=new i,$=new i,ee=new n,te=new i,ie=new h;return v}),define("Renderer/Context",["../Core/Check","../Core/clone","../Core/Color","../Core/ComponentDatatype","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Geometry","../Core/GeometryAttribute","../Core/Matrix4","../Core/PixelFormat","../Core/PrimitiveType","../Core/RuntimeError","../Core/WebGLConstants","../Shaders/ViewportQuadVS","./BufferUsage","./ClearCommand","./ContextLimits","./CubeMap","./DrawCommand","./PassState","./PixelDatatype","./RenderState","./ShaderCache","./ShaderProgram","./Texture","./TextureCache","./UniformState","./VertexArray"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M){"use strict";function R(e,t){var i="WebGL Error: ";switch(t){case e.INVALID_ENUM:i+="INVALID_ENUM";break;case e.INVALID_VALUE:i+="INVALID_VALUE";break;case e.INVALID_OPERATION:i+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:i+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:i+="CONTEXT_LOST_WEBGL lost";break;default:i+="Unknown ("+t+")"}return i}function O(e,t,i,r){for(var n=R(e,r)+": "+t.name+"(",o=0;o<i.length;++o)0!==o&&(n+=", "),n+=i[o];return n+=");"}function L(e,t,i){var r=e.getError();if(r!==e.NO_ERROR)throw new m(O(e,t,i,r))}function N(e,t,i){return{get:function(){var r=e[t];return i(e,"get: "+t,r),e[t]},set:function(r){e[t]=r,i(e,"set: "+t,r)}}}function F(e,t){if(!a(t))return e;var i={};for(var r in e){var n=e[r];n instanceof Function?i[r]=function(i){return function(){var r=i.apply(e,arguments);return t(e,i,arguments),r}}(n):Object.defineProperty(i,r,N(e,r,t))}return i}function B(e,t){for(var i=t.length,r=0;r<i;++r){var n=e.getExtension(t[r]);if(n)return n}}function z(e,r){if("undefined"==typeof WebGLRenderingContext)throw new m("The browser does not support WebGL. Visit http://get.webgl.org.");this._canvas=e,r=t(r,!0),r=o(r,{}),r.allowTextureFilterAnisotropic=o(r.allowTextureFilterAnisotropic,!0);var s=o(r.webgl,{});s.alpha=o(s.alpha,!1),s.stencil=o(s.stencil,!0);var l,u=o(r.requestWebgl2,!1)&&"undefined"!=typeof WebGL2RenderingContext,c=!1,d=r.getWebGLStub;if(a(d))l=d(e,s);else if(u&&(l=e.getContext("webgl2",s)||e.getContext("experimental-webgl2",s)||void 0,a(l)&&(c=!0)),a(l)||(l=e.getContext("webgl",s)||e.getContext("experimental-webgl",s)||void 0),!a(l))throw new m("The browser supports WebGL, but initialization failed.");this._originalGLContext=l,this._gl=l,this._webgl2=c,this._id=n(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new w(this),this._textureCache=new D;var h=l;this._stencilBits=h.getParameter(h.STENCIL_BITS),C._maximumCombinedTextureImageUnits=h.getParameter(h.MAX_COMBINED_TEXTURE_IMAGE_UNITS),C._maximumCubeMapSize=h.getParameter(h.MAX_CUBE_MAP_TEXTURE_SIZE),C._maximumFragmentUniformVectors=h.getParameter(h.MAX_FRAGMENT_UNIFORM_VECTORS),C._maximumTextureImageUnits=h.getParameter(h.MAX_TEXTURE_IMAGE_UNITS),C._maximumRenderbufferSize=h.getParameter(h.MAX_RENDERBUFFER_SIZE),C._maximumTextureSize=h.getParameter(h.MAX_TEXTURE_SIZE),C._maximumVaryingVectors=h.getParameter(h.MAX_VARYING_VECTORS),C._maximumVertexAttributes=h.getParameter(h.MAX_VERTEX_ATTRIBS),C._maximumVertexTextureImageUnits=h.getParameter(h.MAX_VERTEX_TEXTURE_IMAGE_UNITS),C._maximumVertexUniformVectors=h.getParameter(h.MAX_VERTEX_UNIFORM_VECTORS);var p=h.getParameter(h.ALIASED_LINE_WIDTH_RANGE);C._minimumAliasedLineWidth=p[0],C._maximumAliasedLineWidth=p[1];var f=h.getParameter(h.ALIASED_POINT_SIZE_RANGE);C._minimumAliasedPointSize=f[0],C._maximumAliasedPointSize=f[1];var g=h.getParameter(h.MAX_VIEWPORT_DIMS);C._maximumViewportWidth=g[0],C._maximumViewportHeight=g[1];var v=h.getShaderPrecisionFormat(h.FRAGMENT_SHADER,h.HIGH_FLOAT);C._highpFloatSupported=0!==v.precision;var y=h.getShaderPrecisionFormat(h.FRAGMENT_SHADER,h.HIGH_INT);C._highpIntSupported=0!==y.rangeMax,this._antialias=h.getContextAttributes().antialias,this._standardDerivatives=!!B(h,["OES_standard_derivatives"]),this._blendMinmax=!!B(h,["EXT_blend_minmax"]),this._elementIndexUint=!!B(h,["OES_element_index_uint"]),this._depthTexture=!!B(h,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!B(h,["EXT_frag_depth"]),this._debugShaders=B(h,["WEBGL_debug_shaders"]),this._textureFloat=!!B(h,["OES_texture_float"]),this._textureHalfFloat=!!B(h,["OES_texture_half_float"]),this._textureFloatLinear=!!B(h,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!B(h,["OES_texture_half_float_linear"]),this._colorBufferFloat=!!B(h,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._colorBufferHalfFloat=!!B(h,["EXT_color_buffer_half_float"]),this._s3tc=!!B(h,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!B(h,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._etc1=!!B(h,["WEBGL_compressed_texture_etc1"]);var b=r.allowTextureFilterAnisotropic?B(h,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=b,C._maximumTextureFilterAnisotropy=a(b)?h.getParameter(b.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;var S,E,x,P,M,R,O,L,N,F;if(c){var z=this;S=function(){return z._gl.createVertexArray()},E=function(e){z._gl.bindVertexArray(e)},x=function(e){z._gl.deleteVertexArray(e)},P=function(e,t,i,r,n){h.drawElementsInstanced(e,t,i,r,n)},M=function(e,t,i,r){h.drawArraysInstanced(e,t,i,r)},R=function(e,t){h.vertexAttribDivisor(e,t)},O=function(e){h.drawBuffers(e)}}else L=B(h,["OES_vertex_array_object"]),a(L)&&(S=function(){return L.createVertexArrayOES()},E=function(e){L.bindVertexArrayOES(e)},x=function(e){L.deleteVertexArrayOES(e)}),N=B(h,["ANGLE_instanced_arrays"]),a(N)&&(P=function(e,t,i,r,n){N.drawElementsInstancedANGLE(e,t,i,r,n)},M=function(e,t,i,r){N.drawArraysInstancedANGLE(e,t,i,r)},R=function(e,t){N.vertexAttribDivisorANGLE(e,t)}),F=B(h,["WEBGL_draw_buffers"]),a(F)&&(O=function(e){F.drawBuffersWEBGL(e)});this.glCreateVertexArray=S,this.glBindVertexArray=E,this.glDeleteVertexArray=x,this.glDrawElementsInstanced=P,this.glDrawArraysInstanced=M,this.glVertexAttribDivisor=R,this.glDrawBuffers=O,this._vertexArrayObject=!!L,this._instancedArrays=!!N,this._drawBuffers=!!F,C._maximumDrawBuffers=this.drawBuffers?h.getParameter(_.MAX_DRAW_BUFFERS):1,C._maximumColorAttachments=this.drawBuffers?h.getParameter(_.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new i(0,0,0,0),this._clearDepth=1,this._clearStencil=0;var k=new I,V=new T(this),U=A.fromCache();this._defaultPassState=V,this._defaultRenderState=U,this._defaultTexture=void 0,this._defaultCubeMap=void 0,this._us=k,this._currentRenderState=U,this._currentPassState=V,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(var G=0;G<C._maximumVertexAttributes;G++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options=r,this.cache={},A.apply(h,U,V)}function k(e){}function V(e,t,i,r){var n=e._currentRenderState,o=e._currentPassState;e._currentRenderState=t,e._currentPassState=i,A.partialApply(e._gl,n,t,o,i,r)}function U(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;var i=Y;if(a(t))t._bind(),k(e),i=t._getActiveColorAttachments();else{var r=e._gl;r.bindFramebuffer(r.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(i)}}function G(e,t,i,r,n){U(e,t),V(e,n,i,!1),r._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,r.maximumTextureUnitIndex)}function H(e,t,i,r){var n=t._primitiveType,s=t._vertexArray,l=t._offset,u=t._count,c=t.instanceCount;e._us.model=o(t._modelMatrix,h.IDENTITY),i._setUniforms(r,e._us,e.validateShaderProgram),s._bind();var d=s.indexBuffer;a(d)?(l*=d.bytesPerIndex,u=o(u,d.numberOfIndices),0===c?e._gl.drawElements(n,u,d.indexDatatype,l):e.glDrawElementsInstanced(n,u,d.indexDatatype,l,c)):(u=o(u,s.numberOfVertices),0===c?e._gl.drawArrays(n,l,u):e.glDrawArraysInstanced(n,l,u,c)),s._unBind()}function W(e,t,i){this._pickObjects=e,this.key=t,this.color=i}var q={};s(z.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},etc1:{get:function(){return this._etc1}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=F(this._originalGLContext,e?L:void 0)}},defaultTexture:{get:function(){return void 0===this._defaultTexture&&(this._defaultTexture=new P({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultCubeMap:{get:function(){if(void 0===this._defaultCubeMap){var e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new b({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return q}}});var Y;"undefined"!=typeof WebGLRenderingContext&&(Y=[_.BACK]);var j=new y;z.prototype.clear=function(e,t){e=o(e,j),t=o(t,this._defaultPassState);var r=this._gl,n=0,s=e.color,l=e.depth,u=e.stencil;a(s)&&(i.equals(this._clearColor,s)||(i.clone(s,this._clearColor),r.clearColor(s.red,s.green,s.blue,s.alpha)),n|=r.COLOR_BUFFER_BIT),a(l)&&(l!==this._clearDepth&&(this._clearDepth=l,r.clearDepth(l)),n|=r.DEPTH_BUFFER_BIT),a(u)&&(u!==this._clearStencil&&(this._clearStencil=u,r.clearStencil(u)),n|=r.STENCIL_BUFFER_BIT),V(this,o(e.renderState,this._defaultRenderState),t,!0),U(this,o(e.framebuffer,t.framebuffer)),r.clear(n)},z.prototype.draw=function(e,t,i,r){t=o(t,this._defaultPassState);var n=o(e._framebuffer,t.framebuffer),a=o(e._renderState,this._defaultRenderState);i=o(i,e._shaderProgram),r=o(r,e._uniformMap),G(this,n,t,i,a),H(this,e,i,r)},z.prototype.endFrame=function(){var e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);var t=Y;this.drawBuffers&&this.glDrawBuffers(t);var i=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(var r=0;r<i;++r)e.activeTexture(e.TEXTURE0+r),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)},z.prototype.readPixels=function(e){var t=this._gl;e=o(e,o.EMPTY_OBJECT);var i=Math.max(o(e.x,0),0),r=Math.max(o(e.y,0),0),n=o(e.width,t.drawingBufferWidth),s=o(e.height,t.drawingBufferHeight),l=e.framebuffer,u=E.UNSIGNED_BYTE;a(l)&&l.numberOfColorAttachments>0&&(u=l.getColorTexture(0).pixelDatatype);var c=p.createTypedArray(p.RGBA,u,n,s);return U(this,l),t.readPixels(i,r,n,s,p.RGBA,u,c),c};var X={position:0,textureCoordinates:1};return z.prototype.getViewportQuadVertexArray=function(){var e=this.cache.viewportQuad_vertexArray;if(!a(e)){var t=new c({attributes:{position:new d({componentDatatype:r.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new d({componentDatatype:r.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:f.TRIANGLES});e=M.fromGeometry({context:this,geometry:t,attributeLocations:X,bufferUsage:v.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e},z.prototype.createViewportQuadCommand=function(e,t){return t=o(t,o.EMPTY_OBJECT),new S({vertexArray:this.getViewportQuadVertexArray(),primitiveType:f.TRIANGLES,renderState:t.renderState,shaderProgram:x.fromCache({context:this,vertexShaderSource:g,fragmentShaderSource:e,attributeLocations:X}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})},z.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]},s(W.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}}),W.prototype.destroy=function(){delete this._pickObjects[this.key]},z.prototype.createPickId=function(e){++this._nextPickColor[0];var t=this._nextPickColor[0];if(0===t)throw new m("Out of unique Pick IDs.");return this._pickObjects[t]=e,new W(this._pickObjects,t,i.fromRgba(t))},z.prototype.isDestroyed=function(){return!1},z.prototype.destroy=function(){var e=this.cache;for(var t in e)if(e.hasOwnProperty(t)){var i=e[t];a(i.destroy)&&i.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),l(this)},z}),define("Renderer/loadCubeMap",["../Core/Check","../Core/defined","../Core/DeveloperError","../Core/Resource","../ThirdParty/when","./CubeMap"],function(e,t,i,r,n,o){"use strict";function a(e,t){var i={flipY:!0,preferImageBitmap:!0},a=[r.createIfNeeded(t.positiveX).fetchImage(i),r.createIfNeeded(t.negativeX).fetchImage(i),r.createIfNeeded(t.positiveY).fetchImage(i),r.createIfNeeded(t.negativeY).fetchImage(i),r.createIfNeeded(t.positiveZ).fetchImage(i),r.createIfNeeded(t.negativeZ).fetchImage(i)];return n.all(a,function(t){return new o({context:e,source:{positiveX:t[0],negativeX:t[1],positiveY:t[2],negativeY:t[3],positiveZ:t[4],negativeZ:t[5]}})})}return a}),define("Renderer/RenderbufferFormat",["../Core/freezeObject","../Core/WebGLConstants"],function(e,t){"use strict";var i={RGBA4:t.RGBA4,RGB5_A1:t.RGB5_A1,RGB565:t.RGB565,DEPTH_COMPONENT16:t.DEPTH_COMPONENT16,STENCIL_INDEX8:t.STENCIL_INDEX8,DEPTH_STENCIL:t.DEPTH_STENCIL,validate:function(e){return e===i.RGBA4||e===i.RGB5_A1||e===i.RGB565||e===i.DEPTH_COMPONENT16||e===i.STENCIL_INDEX8||e===i.DEPTH_STENCIL}};return e(i)}),define("Renderer/Renderbuffer",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","./ContextLimits","./RenderbufferFormat"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=t(e,t.EMPTY_OBJECT);var r=e.context,n=r._gl,o=(a.maximumRenderbufferSize,t(e.format,s.RGBA4)),l=i(e.width)?e.width:n.drawingBufferWidth,u=i(e.height)?e.height:n.drawingBufferHeight;this._gl=n,this._format=o,this._width=l,this._height=u,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),n.renderbufferStorage(n.RENDERBUFFER,o,l,u),n.bindRenderbuffer(n.RENDERBUFFER,null)}return r(l.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}}),l.prototype._getRenderbuffer=function(){return this._renderbuffer},l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),n(this)},l}),define("Scene/DiscardMissingTileImagePolicy",["../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/getImagePixels","../Core/Resource"],function(e,t,i,r,n){"use strict";function o(i){function o(e){t(e.blob)&&(l._missingImageByteLength=e.blob.size);var n=r(e);if(i.disableCheckIfAllPixelsAreTransparent){for(var o=!0,a=e.width,s=i.pixelsToCheck,u=0,c=s.length;o&&u<c;++u){var d=s[u];n[4*d.x+d.y*a+3]>0&&(o=!1)}o&&(n=void 0)}l._missingImagePixels=n,l._isReady=!0}function a(){l._missingImagePixels=void 0,l._isReady=!0}i=e(i,e.EMPTY_OBJECT),this._pixelsToCheck=i.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;var s=n.createIfNeeded(i.missingImageUrl),l=this;s.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(o).otherwise(a)}return o.prototype.isReady=function(){return this._isReady},o.prototype.shouldDiscardImage=function(e){var i=this._pixelsToCheck,n=this._missingImagePixels;if(!t(n))return!1;if(t(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;for(var o=r(e),a=e.width,s=0,l=i.length;s<l;++s)for(var u=i[s],c=4*u.x+u.y*a,d=0;d<4;++d){var h=c+d;if(o[h]!==n[h])return!1}return!0},o}),define("Scene/ImageryLayerFeatureInfo",["../Core/defined"],function(e){"use strict";function t(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}return t.prototype.configureNameFromProperties=function(t){var i,r=10;for(var n in t)if(t.hasOwnProperty(n)&&t[n]){var o=n.toLowerCase();r>1&&"name"===o?(r=1,i=n):r>2&&"title"===o?(r=2,i=n):r>3&&/name/i.test(n)?(r=3,i=n):r>4&&/title/i.test(n)&&(r=4,i=n)}e(i)&&(this.name=t[i])},t.prototype.configureDescriptionFromProperties=function(t){function i(t){var r='<table class="cesium-infoBox-defaultTable">';for(var n in t)if(t.hasOwnProperty(n)){var o=t[n];e(o)&&(r+="object"==typeof o?"<tr><td>"+n+"</td><td>"+i(o)+"</td></tr>":"<tr><td>"+n+"</td><td>"+o+"</td></tr>")}return r+="</table>"}this.description=i(t)},t}),define("Scene/ImageryProvider",["../Core/Check","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/loadCRN","../Core/loadKTX","../Core/Resource"],function(e,t,i,r,n,o,a){"use strict";function s(){this.defaultAlpha=void 0,this.defaultBrightness=void 0,this.defaultContrast=void 0,this.defaultHue=void 0,this.defaultSaturation=void 0,this.defaultGamma=void 0,this.defaultMinificationFilter=void 0,this.defaultMagnificationFilter=void 0,r.throwInstantiationError()}i(s.prototype,{ready:{get:r.throwInstantiationError},readyPromise:{get:r.throwInstantiationError},rectangle:{get:r.throwInstantiationError},tileWidth:{get:r.throwInstantiationError},tileHeight:{get:r.throwInstantiationError},maximumLevel:{get:r.throwInstantiationError},minimumLevel:{get:r.throwInstantiationError},tilingScheme:{get:r.throwInstantiationError},tileDiscardPolicy:{get:r.throwInstantiationError},errorEvent:{get:r.throwInstantiationError},credit:{get:r.throwInstantiationError},proxy:{get:r.throwInstantiationError},hasAlphaChannel:{get:r.throwInstantiationError}}),s.prototype.getTileCredits=r.throwInstantiationError,s.prototype.requestImage=r.throwInstantiationError,s.prototype.pickFeatures=r.throwInstantiationError;var l=/\.ktx$/i,u=/\.crn$/i;return s.loadImage=function(e,i){var r=a.createIfNeeded(i);return l.test(r)?o(r):u.test(r)?n(r):t(e.tileDiscardPolicy)?r.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):r.fetchImage({preferImageBitmap:!0,flipY:!0})},s}), -define("Scene/ArcGisMapServerImageryProvider",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/GeographicProjection","../Core/GeographicTilingScheme","../Core/Math","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../Core/WebMercatorProjection","../Core/WebMercatorTilingScheme","../ThirdParty/when","./DiscardMissingTileImagePolicy","./ImageryLayerFeatureInfo","./ImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b){"use strict";function S(i){function a(n){var a=n.tileInfo;if(o(a)){if(S._tileWidth=a.rows,S._tileHeight=a.cols,102100===a.spatialReference.wkid||102113===a.spatialReference.wkid)S._tilingScheme=new g({ellipsoid:i.ellipsoid});else{if(4326!==n.tileInfo.spatialReference.wkid){var s="Tile spatial reference WKID "+n.tileInfo.spatialReference.wkid+" is not supported.";return void(b=m.handleError(b,S,S._errorEvent,s,void 0,void 0,void 0,u))}S._tilingScheme=new c({ellipsoid:i.ellipsoid})}if(S._maximumLevel=n.tileInfo.lods.length-1,o(n.fullExtent)){if(o(n.fullExtent.spatialReference)&&o(n.fullExtent.spatialReference.wkid))if(102100===n.fullExtent.spatialReference.wkid||102113===n.fullExtent.spatialReference.wkid){var l=new _,d=n.fullExtent,p=l.unproject(new t(Math.max(d.xmin,-S._tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(d.ymin,-S._tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),f=l.unproject(new t(Math.min(d.xmax,S._tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(d.ymax,S._tilingScheme.ellipsoid.maximumRadius*Math.PI),0));S._rectangle=new h(p.longitude,p.latitude,f.longitude,f.latitude)}else{if(4326!==n.fullExtent.spatialReference.wkid){var v="fullExtent.spatialReference WKID "+n.fullExtent.spatialReference.wkid+" is not supported.";return void(b=m.handleError(b,S,S._errorEvent,v,void 0,void 0,void 0,u))}S._rectangle=h.fromDegrees(n.fullExtent.xmin,n.fullExtent.ymin,n.fullExtent.xmax,n.fullExtent.ymax)}}else S._rectangle=S._tilingScheme.rectangle;o(S._tileDiscardPolicy)||(S._tileDiscardPolicy=new y({missingImageUrl:T(S,0,0,S._maximumLevel).url,pixelsToCheck:[new e(0,0),new e(200,20),new e(20,200),new e(80,110),new e(160,130)],disableCheckIfAllPixelsAreTransparent:!0})),S._useTiles=!0}else S._useTiles=!1;o(n.copyrightText)&&n.copyrightText.length>0&&(S._credit=new r(n.copyrightText)),S._ready=!0,S._readyPromise.resolve(!0),m.handleSuccess(b)}function s(e){var t="An error occurred while accessing "+S._resource.url+".";b=m.handleError(b,S,S._errorEvent,t,void 0,void 0,void 0,u),S._readyPromise.reject(new f(t))}function u(){var e=S._resource.getDerivedResource({queryParameters:{f:"json"}}),t=e.fetchJsonp();v(t,a,s)}i=n(i,{});var d=p.createIfNeeded(i.url);d.appendForwardSlash(),o(i.token)&&d.setQueryParameters({token:i.token}),this._resource=d,this._tileDiscardPolicy=i.tileDiscardPolicy,this._tileWidth=n(i.tileWidth,256),this._tileHeight=n(i.tileHeight,256),this._maximumLevel=i.maximumLevel,this._tilingScheme=n(i.tilingScheme,new c({ellipsoid:i.ellipsoid})),this._useTiles=n(i.usePreCachedTilesIfAvailable,!0),this._rectangle=n(i.rectangle,this._tilingScheme.rectangle),this._layers=i.layers;var C=i.credit;"string"==typeof C&&(C=new r(C)),this._credit=C,this.enablePickFeatures=n(i.enablePickFeatures,!0),this._errorEvent=new l,this._ready=!1,this._readyPromise=v.defer();var b,S=this;this._useTiles?u():(this._ready=!0,this._readyPromise.resolve(!0))}function T(e,t,i,r,n){var o;if(e._useTiles)o=e._resource.getDerivedResource({url:"tile/"+r+"/"+i+"/"+t,request:n});else{var a=e._tilingScheme.tileXYToNativeRectangle(t,i,r),s=a.west+","+a.south+","+a.east+","+a.north,l={bbox:s,size:e._tileWidth+","+e._tileHeight,format:"png",transparent:!0,f:"image"};e._tilingScheme.projection instanceof u?(l.bboxSR=4326,l.imageSR=4326):(l.bboxSR=3857,l.imageSR=3857),e.layers&&(l.layers="show:"+e.layers),o=e._resource.getDerivedResource({url:"export",request:n,queryParameters:l})}return o}return a(S.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}}),S.prototype.getTileCredits=function(e,t,i){},S.prototype.requestImage=function(e,t,i,r){return b.loadImage(this,T(this,e,t,i,r))},S.prototype.pickFeatures=function(e,r,n,a,s){if(this.enablePickFeatures){var l,c,h,p=this._tilingScheme.tileXYToNativeRectangle(e,r,n);if(this._tilingScheme.projection instanceof u)l=d.toDegrees(a),c=d.toDegrees(s),h="4326";else{var f=this._tilingScheme.projection.project(new i(a,s,0));l=f.x,c=f.y,h="3857"}var m="visible";o(this._layers)&&(m+=":"+this._layers);var g={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:l+","+c,mapExtent:p.west+","+p.south+","+p.east+","+p.north,imageDisplay:this._tileWidth+","+this._tileHeight+",96",sr:h,layers:m};return this._resource.getDerivedResource({url:"identify",queryParameters:g}).fetchJson().then(function(e){var r=[],n=e.results;if(!o(n))return r;for(var a=0;a<n.length;++a){var s=n[a],l=new C;if(l.data=s,l.name=s.value,l.properties=s.attributes,l.configureDescriptionFromProperties(s.attributes),"esriGeometryPoint"===s.geometryType&&s.geometry){var u=s.geometry.spatialReference&&s.geometry.spatialReference.wkid?s.geometry.spatialReference.wkid:4326;if(4326===u||4283===u)l.position=i.fromDegrees(s.geometry.x,s.geometry.y,s.geometry.z);else if(102100===u||900913===u||3857===u){var c=new _;l.position=c.unproject(new t(s.geometry.x,s.geometry.y,s.geometry.z))}}r.push(l)}return r})}},S}),define("Scene/AutoExposure",["../Core/Cartesian2","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/PixelFormat","../Renderer/ClearCommand","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=void 0,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new e,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}function _(e){var t=e._framebuffers;if(r(t)){for(var i=t.length,n=0;n<i;++n)t[n].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}}function g(e,t){_(e);for(var i=e._width,r=e._height,n=a.RGBA,o=t.halfFloatingPointTexture?u.HALF_FLOAT:u.FLOAT,s=new c({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.NEAREST,magnificationFilter:h.NEAREST}),m=Math.ceil(Math.log(Math.max(i,r))/Math.log(3)),g=new Array(m),v=0;v<m;++v)i=Math.max(Math.ceil(i/3),1),r=Math.max(Math.ceil(r/3),1),g[v]=new l({context:t,colorTextures:[new d({context:t,width:i,height:r,pixelFormat:n,pixelDatatype:o,sampler:s})]});var y=g[m-1].getColorTexture(0);e._previousLuminance=new l({context:t,colorTextures:[new d({context:t,width:y.width,height:y.height,pixelFormat:n,pixelDatatype:o,sampler:s})]}),e._framebuffers=g}function v(e){var t=e._commands;if(r(t)){for(var i=t.length,n=0;n<i;++n)t[n].shaderProgram.destroy();e._commands=void 0}}function y(e,t){var i;if(0===t)i={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{var r=e._framebuffers[t-1].getColorTexture(0);i={colorTexture:function(){return r},colorTextureDimensions:function(){return r.dimensions}}}return i.minMaxLuminance=function(){return e._minMaxLuminance},i.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},i}function C(e,t){var i="uniform sampler2D colorTexture; \nvarying vec2 v_textureCoordinates; \nfloat sampleTexture(vec2 offset) { \n";return i+=0===e?" vec4 color = texture2D(colorTexture, v_textureCoordinates + offset); \n return czm_luminance(color.rgb); \n":" return texture2D(colorTexture, v_textureCoordinates + offset).r; \n",i+="}\n\n",i+="uniform vec2 colorTextureDimensions; \nuniform vec2 minMaxLuminance; \nuniform sampler2D previousLuminance; \nvoid main() { \n float color = 0.0; \n float xStep = 1.0 / colorTextureDimensions.x; \n float yStep = 1.0 / colorTextureDimensions.y; \n int count = 0; \n for (int i = 0; i < 3; ++i) { \n for (int j = 0; j < 3; ++j) { \n vec2 offset; \n offset.x = -xStep + float(i) * xStep; \n offset.y = -yStep + float(j) * yStep; \n if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { \n continue; \n } \n color += sampleTexture(offset); \n ++count; \n } \n } \n if (count > 0) { \n color /= float(count); \n } \n",e===t-1&&(i+=" float previous = texture2D(previousLuminance, vec2(0.5)).r; \n color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); \n color = previous + (color - previous) / (60.0 * 1.5); \n color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); \n"),i+=" gl_FragColor = vec4(color); \n} \n"}function b(e,t){v(e);for(var i=e._framebuffers,r=i.length,n=new Array(r),o=0;o<r;++o)n[o]=t.createViewportQuadCommand(C(o,r),{framebuffer:i[o],uniformMap:y(e,o)});e._commands=n}return n(m.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){var e=this._framebuffers;if(r(e))return e[e.length-1].getColorTexture(0)}}}),m.prototype.clear=function(e){var i=this._framebuffers;if(r(i)){var n=this._clearCommand;r(n)||(n=this._clearCommand=new s({color:new t(0,0,0,0),framebuffer:void 0}));for(var o=i.length,a=0;a<o;++a)n.framebuffer=i[a],n.execute(e)}},m.prototype.update=function(e){var t=e.drawingBufferWidth,i=e.drawingBufferHeight;t===this._width&&i===this._height||(this._width=t,this._height=i,g(this,e),b(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;var r=this._framebuffers,n=r[r.length-1];r[r.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance,this._previousLuminance=n},m.prototype.execute=function(e,t){this._colorTexture=t;var i=this._commands;if(r(i))for(var n=i.length,o=0;o<n;++o)i[o].execute(e)},m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){return _(this),v(this),o(this)},m}),define("Scene/Cesium3DTileColorBlendMode",["../Core/freezeObject"],function(e){"use strict";return e({HIGHLIGHT:0,REPLACE:1,MIX:2})}),define("Scene/getBinaryAccessor",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/ComponentDatatype","../Core/Matrix2","../Core/Matrix3","../Core/Matrix4"],function(e,t,i,r,n,o,a){"use strict";function s(e){var t,i=e.componentType;t="string"==typeof i?r.fromName(i):i;var n=l[e.type],o=u[e.type];return{componentsPerAttribute:n,classType:o,createArrayBufferView:function(e,i,o){return r.createArrayBufferView(t,e,i,n*o)}}}var l={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},u={SCALAR:void 0,VEC2:e,VEC3:t,VEC4:i,MAT2:n,MAT3:o,MAT4:a};return s}),define("Scene/Cesium3DTileBatchTable",["../Core/arrayFill","../Core/Cartesian2","../Core/Cartesian4","../Core/Check","../Core/clone","../Core/Color","../Core/combine","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/DeveloperError","../Core/Math","../Core/PixelFormat","../Core/RuntimeError","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/Sampler","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","./AttributeType","./BlendingState","./Cesium3DTileColorBlendMode","./CullFace","./getBinaryAccessor","./StencilConstants","./StencilFunction","./StencilOperation"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L){"use strict";function N(e,r,n,o,a){this.featuresLength=r,this._translucentFeaturesLength=0;var s;u(n)&&(s=n.extensions),this._extensions=l(s,{});var c=F(n);this._properties=c,this._batchTableHierarchy=B(this,n,o),this._batchTableBinaryProperties=k(r,c,o),this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[],this._content=e,this._colorChangedCallback=a;var d,h;if(r>0){var p=Math.min(r,g.maximumTextureSize),f=Math.ceil(r/g.maximumTextureSize),m=1/p,_=.5*m,v=1/f,y=.5*v;d=new t(p,f),h=new i(m,_,v,y)}this._textureDimensions=d,this._textureStep=h}function F(e){var t={};if(!u(e))return t;for(var i in e)e.hasOwnProperty(i)&&"HIERARCHY"!==i&&"extensions"!==i&&"extras"!==i&&(t[i]=n(e[i],!0));return t}function B(e,t,i){if(u(t)){var r=e._extensions["3DTILES_batch_table_hierarchy"],n=t.HIERARCHY;if(u(n)&&(N._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=n,r=n),u(r))return z(r,i)}}function z(t,i){var r,n,o,c=t.instancesLength,d=t.classes,h=t.classIds,p=t.parentCounts,f=t.parentIds,m=c;u(h.byteOffset)&&(h.componentType=l(h.componentType,s.UNSIGNED_SHORT),h.type=x.SCALAR,o=M(h),h=o.createArrayBufferView(i.buffer,i.byteOffset+h.byteOffset,c));var _;if(u(p))for(u(p.byteOffset)&&(p.componentType=l(p.componentType,s.UNSIGNED_SHORT),p.type=x.SCALAR,o=M(p),p=o.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,c)),_=new Uint16Array(c),m=0,r=0;r<c;++r)_[r]=m,m+=p[r];u(f)&&u(f.byteOffset)&&(f.componentType=l(f.componentType,s.UNSIGNED_SHORT),f.type=x.SCALAR,o=M(f),f=o.createArrayBufferView(i.buffer,i.byteOffset+f.byteOffset,m));var g=d.length;for(r=0;r<g;++r){var v=d[r].length,y=d[r].instances,C=k(v,y,i);d[r].instances=a(C,y)}var b=e(new Array(g),0),S=new Uint16Array(c);for(r=0;r<c;++r)n=h[r],S[r]=b[n],++b[n];return{classes:d,classIds:h,classIndexes:S,parentCounts:p,parentIndexes:_,parentIds:f}}function k(e,t,i){var r;for(var n in t)if(t.hasOwnProperty(n)){var o=t[n],a=o.byteOffset;if(u(a)){var s=o.componentType,l=o.type;if(!u(s))throw new _("componentType is required.");if(!u(l))throw new _("type is required.");if(!u(i))throw new _("Property "+n+" requires a batch table binary.");var c=M(o),d=c.componentsPerAttribute,h=c.classType,p=c.createArrayBufferView(i.buffer,i.byteOffset+a,e);u(r)||(r={}),r[n]={typedArray:p,componentCount:d,type:h}}}return r}function V(e){var t=e._textureDimensions;return t.x*t.y*4}function U(t){if(!u(t._batchValues)){var i=V(t),r=new Uint8Array(i);e(r,255),t._batchValues=r}return t._batchValues}function G(t){if(!u(t._showAlphaProperties)){var i=2*t.featuresLength,r=new Uint8Array(i);e(r,255),t._showAlphaProperties=r}return t._showAlphaProperties}function H(e,t){var i=e.typedArray,r=e.componentCount;return 1===r?i[t]:e.type.unpack(i,t*r)}function W(e,t,i){var r=e.typedArray,n=e.componentCount;1===n?r[t]=i:e.type.pack(i,r,t*n)}function q(e,t,i){var r=e.classIds,n=e.parentCounts,o=e.parentIds,a=e.parentIndexes,s=r.length,l=ye;l.length=Math.max(l.length,s);var c=++be,d=Ce;for(d.length=0,d.push(t);d.length>0;)if(t=d.pop(),l[t]!==c){l[t]=c;var h=i(e,t);if(u(h))return h;for(var p=n[t],f=a[t],m=0;m<p;++m){var _=o[f+m];_!==t&&d.push(_)}}}function Y(e,t,i){for(var r=!0;r;){var n=i(e,t);if(u(n))return n;var o=e.parentIds[t];r=o!==t,t=o}}function j(e,t,i){var r=e.parentCounts,n=e.parentIds;return u(n)?u(r)?q(e,t,i):Y(e,t,i):i(e,t)}function X(e,t,i){var r=e._batchTableHierarchy,n=j(r,t,function(e,t){var r=e.classIds[t],n=e.classes[r].instances;if(u(n[i]))return!0});return u(n)}function Q(e,t,i){j(e._batchTableHierarchy,t,function(e,t){var r=e.classIds[t],n=e.classes[r].instances;for(var o in n)n.hasOwnProperty(o)&&-1===i.indexOf(o)&&i.push(o)})}function K(e,t,i){return j(e._batchTableHierarchy,t,function(e,t){var r=e.classIds[t],o=e.classes[r],a=e.classIndexes[t],s=o.instances[i];if(u(s))return u(s.typedArray)?H(s,a):n(s[a],!0)})}function Z(e,t,i,r){var o=e._batchTableHierarchy,a=j(o,t,function(e,t){var o=e.classIds[t],a=e.classes[o],s=e.classIndexes[t],l=a.instances[i];if(u(l))return u(l.typedArray)?W(l,s,r):l[s]=n(r,!0),!0});return u(a)}function J(e){return 1===e._textureDimensions.y?"uniform vec4 tile_textureStep; \nvec2 computeSt(float batchId) \n{ \n float stepX = tile_textureStep.x; \n float centerX = tile_textureStep.y; \n return vec2(centerX + (batchId * stepX), 0.5); \n} \n":"uniform vec4 tile_textureStep; \nuniform vec2 tile_textureDimensions; \nvec2 computeSt(float batchId) \n{ \n float stepX = tile_textureStep.x; \n float centerX = tile_textureStep.y; \n float stepY = tile_textureStep.z; \n float centerY = tile_textureStep.w; \n float xId = mod(batchId, tile_textureDimensions.x); \n float yId = floor(batchId / tile_textureDimensions.x); \n return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); \n} \n"}function $(e,t){return e=T.replaceMain(e,"tile_main"),t?e+"uniform float tile_colorBlend; \nvoid tile_color(vec4 tile_featureColor) \n{ \n tile_main(); \n tile_featureColor = czm_gammaCorrect(tile_featureColor); \n gl_FragColor.a *= tile_featureColor.a; \n float highlight = ceil(tile_colorBlend); \n gl_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); \n} \n":e+"void tile_color(vec4 tile_featureColor) \n{ \n tile_main(); \n} \n"}function ee(e,t){for(var i,r="texture2D("+t,n=0,o=e.indexOf(r,n);o>-1;){for(var a=0,s=o;s<e.length;++s){var l=e.charAt(s);if("("===l)++a;else if(")"===l&&0===--a){i=s+1;break}}var u=e.slice(o,i),c="tile_diffuse_final("+u+", tile_diffuse)";e=e.slice(0,o)+c+e.slice(i),n=o+c.length,o=e.indexOf(r,n)}return e}function te(e,t,i){if(!u(t))return $(e,i);var r=new RegExp("(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+"+t+";"),n=e.match(r);if(!u(n))return $(e,i);var o=n[0],a=n[2];e=T.replaceMain(e,"tile_main"),e=e.replace(o,"");var s;if("vec3"===a||"vec4"===a){var l="vec3"===a?"vec4("+t+", 1.0)":t,c="vec3"===a?"tile_diffuse.xyz":"tile_diffuse";r=new RegExp(t,"g"),e=e.replace(r,c),s=" vec4 source = "+l+"; \n tile_diffuse = tile_diffuse_final(source, tile_featureColor); \n tile_main(); \n"}else"sampler2D"===a&&(e=ee(e,t),s=" tile_diffuse = tile_featureColor; \n tile_main(); \n");return e="uniform float tile_colorBlend; \nvec4 tile_diffuse = vec4(1.0); \nbool isWhite(vec3 color) \n{ \n return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); \n} \nvec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) \n{ \n vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); \n vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; \n return vec4(diffuse.rgb, sourceDiffuse.a); \n} \n"+o+"\n"+e+"\nvoid tile_color(vec4 tile_featureColor) \n{ \n"+s,i&&(e+=" tile_featureColor = czm_gammaCorrect(tile_featureColor); \n gl_FragColor.a *= tile_featureColor.a; \n float highlight = ceil(tile_colorBlend); \n gl_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); \n"),e+="} \n"}function ie(e){var t=e._content.tileset,i=t.colorBlendMode,r=t.colorBlendAmount;return i===D.HIGHLIGHT?0:i===D.REPLACE?1:i===D.MIX?f.clamp(r,f.EPSILON4,1):void 0}function re(e){var t=e._translucentFeaturesLength;return 0===t?Se.ALL_OPAQUE:t===e.featuresLength?Se.ALL_TRANSLUCENT:Se.OPAQUE_AND_TRANSLUCENT}function ne(e){var t=v.shallowClone(e),i=t.pass===y.TRANSLUCENT;return t.uniformMap=u(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return i},t}function oe(e){var t=v.shallowClone(e);return t.pass=y.TRANSLUCENT,t.renderState=de(e.renderState),t}function ae(e){var t=v.shallowClone(e);return t.renderState=he(e.renderState),t}function se(e,t){var i=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!u(i)){var r=t.fragmentShaderSource.clone();r.defines=u(r.defines)?r.defines.slice(0):[],r.defines.push("DISABLE_LOG_DEPTH_FRAGMENT_WRITE"),i=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:r,attributeLocations:t._attributeLocations})}return i}function le(e,t){var i=v.shallowClone(t),r=n(i.renderState,!0);return r.cull.enabled=!0,r.cull.face=I.FRONT,r.colorMask={red:!1,green:!1,blue:!1,alpha:!1},r.polygonOffset={enabled:!0,factor:5,units:5},r.stencilTest=R.setCesium3DTileBit(),r.stencilMask=R.CESIUM_3D_TILE_MASK,i.renderState=b.fromCache(r),i.castShadows=!1,i.receiveShadows=!1,i.shaderProgram=se(e,t.shaderProgram),i}function ue(e,t){var i=v.shallowClone(e),r=n(i.renderState,!0);return r.stencilTest.enabled=!0,r.stencilTest.mask=R.SKIP_LOD_MASK,r.stencilTest.reference=R.CESIUM_3D_TILE_MASK|t<<R.SKIP_LOD_BIT_SHIFT,r.stencilTest.frontFunction=O.GREATER_OR_EQUAL,r.stencilTest.frontOperation.zPass=L.REPLACE,r.stencilTest.backFunction=O.GREATER_OR_EQUAL,r.stencilTest.backOperation.zPass=L.REPLACE,r.stencilMask=R.CESIUM_3D_TILE_MASK|R.SKIP_LOD_MASK,i.renderState=b.fromCache(r),i}function ce(e){return(e.renderState.stencilTest.reference&R.SKIP_LOD_MASK)>>>R.SKIP_LOD_BIT_SHIFT}function de(e){var t=n(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=P.ALPHA_BLEND,b.fromCache(t)}function he(e){var t=n(e,!0);return t.stencilTest=R.setCesium3DTileBit(),t.stencilMask=R.CESIUM_3D_TILE_MASK,b.fromCache(t)}function pe(e,t,i){var r=e._textureDimensions;return new E({context:t,pixelFormat:m.RGBA,pixelDatatype:C.UNSIGNED_BYTE,source:{width:r.x,height:r.y,arrayBufferView:i},flipY:!1,sampler:new S({minificationFilter:w.NEAREST,magnificationFilter:A.NEAREST})})}function fe(e,t){var i=e.featuresLength;if(!u(e._pickTexture)&&i>0){for(var r=e._pickIds,n=V(e),a=new Uint8Array(n),s=e._content,l=0;l<i;++l){var c=t.createPickId(s.getFeature(l));r.push(c);var d=c.color,h=4*l;a[h]=o.floatToByte(d.red),a[h+1]=o.floatToByte(d.green),a[h+2]=o.floatToByte(d.blue),a[h+3]=o.floatToByte(d.alpha)}e._pickTexture=pe(e,t,a),s.tileset._statistics.batchTableByteLength+=e._pickTexture.sizeInBytes}}function me(e){var t=e._textureDimensions;e._batchTexture.copyFrom({width:t.x,height:t.y,arrayBufferView:e._batchValues})}var _e=o.WHITE;N._deprecationWarning=d,c(N.prototype,{memorySizeInBytes:{get:function(){var e=0;return u(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),u(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}}}),N.getBinaryProperties=function(e,t,i){return k(e,t,i)},N.prototype.setShow=function(e,t){if(!t||u(this._showAlphaProperties)){var i=G(this),r=2*e,n=t?255:0;if(i[r]!==n){i[r]=n;U(this)[4*e+3]=t?i[r+1]:0,this._batchValuesDirty=!0}}},N.prototype.setAllShow=function(e){for(var t=this.featuresLength,i=0;i<t;++i)this.setShow(i,e)},N.prototype.getShow=function(e){if(!u(this._showAlphaProperties))return!0;var t=2*e;return 255===this._showAlphaProperties[t]};var ge=new Array(4);N.prototype.setColor=function(e,t){if(!o.equals(t,_e)||u(this._batchValues)){var i=t.toBytes(ge),r=i[3],n=U(this),a=4*e,s=G(this),l=2*e;if(n[a]!==i[0]||n[a+1]!==i[1]||n[a+2]!==i[2]||s[l+1]!==r){n[a]=i[0],n[a+1]=i[1],n[a+2]=i[2];var c=255!==s[l+1],d=0!==s[l];n[a+3]=d?r:0,s[l+1]=r;var h=255!==r;h&&!c?++this._translucentFeaturesLength:!h&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,u(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}}},N.prototype.setAllColor=function(e){for(var t=this.featuresLength,i=0;i<t;++i)this.setColor(i,e)},N.prototype.getColor=function(e,t){if(!u(this._batchValues))return o.clone(_e,t);var i=this._batchValues,r=4*e,n=this._showAlphaProperties,a=2*e;return o.fromBytes(i[r],i[r+1],i[r+2],n[a+1],t)},N.prototype.getPickColor=function(e){return this._pickIds[e]};var ve=new o;N.prototype.applyStyle=function(e){if(!u(e))return this.setAllColor(_e),void this.setAllShow(!0);for(var t=this._content,i=this.featuresLength,r=0;r<i;++r){var n=t.getFeature(r),o=u(e.color)?e.color.evaluateColor(n,ve):_e,a=!u(e.show)||e.show.evaluate(n);this.setColor(r,o),this.setShow(r,a)}};var ye=[],Ce=[],be=0;N.prototype.isClass=function(e,t){var i=this._batchTableHierarchy;if(!u(i))return!1;var r=j(i,e,function(e,i){var r=e.classIds[i];if(e.classes[r].name===t)return!0});return u(r)},N.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t},N.prototype.getExactClassName=function(e){var t=this._batchTableHierarchy;if(u(t)){var i=t.classIds[e];return t.classes[i].name}},N.prototype.hasProperty=function(e,t){return u(this._properties[t])||u(this._batchTableHierarchy)&&X(this,e,t)},N.prototype.getPropertyNames=function(e,t){t=u(t)?t:[],t.length=0;var i=Object.keys(this._properties);return t.push.apply(t,i),u(this._batchTableHierarchy)&&Q(this,e,t),t},N.prototype.getProperty=function(e,t){if(u(this._batchTableBinaryProperties)){var i=this._batchTableBinaryProperties[t];if(u(i))return H(i,e)}var r=this._properties[t];if(u(r))return n(r[e],!0);if(u(this._batchTableHierarchy)){var o=K(this,e,t);if(u(o))return o}},N.prototype.setProperty=function(e,t,i){var r=this.featuresLength;if(u(this._batchTableBinaryProperties)){var o=this._batchTableBinaryProperties[t];if(u(o))return void W(o,e,i)}if(!u(this._batchTableHierarchy)||!Z(this,e,t,i)){var a=this._properties[t];u(a)||(this._properties[t]=new Array(r),a=this._properties[t]),a[e]=n(i,!0)}},N.prototype.getVertexShaderCallback=function(e,t,i){if(0!==this.featuresLength){var r=this;return function(n){var o,a=te(n,i,!1);return g.maximumVertexTextureImageUnits>0?(o="",e&&(o+="uniform bool tile_translucentCommand; \n"),o+="uniform sampler2D tile_batchTexture; \nvarying vec4 tile_featureColor; \nvarying vec2 tile_featureSt; \nvoid main() \n{ \n vec2 st = computeSt("+t+"); \n vec4 featureProperties = texture2D(tile_batchTexture, st); \n tile_color(featureProperties); \n float show = ceil(featureProperties.a); \n gl_Position *= show; \n",e&&(o+=" bool isStyleTranslucent = (featureProperties.a != 1.0); \n if (czm_pass == czm_passTranslucent) \n { \n if (!isStyleTranslucent && !tile_translucentCommand) \n { \n gl_Position *= 0.0; \n } \n } \n else \n { \n if (isStyleTranslucent) \n { \n gl_Position *= 0.0; \n } \n } \n"),o+=" tile_featureColor = featureProperties; \n tile_featureSt = st; \n}"):o="varying vec2 tile_featureSt; \nvoid main() \n{ \n tile_color(vec4(1.0)); \n tile_featureSt = computeSt("+t+"); \n}",a+"\n"+J(r)+o}}},N.prototype.getFragmentShaderCallback=function(e,t){if(0!==this.featuresLength)return function(i){return i=te(i,t,!0),g.maximumVertexTextureImageUnits>0?i+="uniform sampler2D tile_pickTexture; \nvarying vec2 tile_featureSt; \nvarying vec4 tile_featureColor; \nvoid main() \n{ \n tile_color(tile_featureColor); \n}":(e&&(i+="uniform bool tile_translucentCommand; \n"),i+="uniform sampler2D tile_pickTexture; \nuniform sampler2D tile_batchTexture; \nvarying vec2 tile_featureSt; \nvoid main() \n{ \n vec4 featureProperties = texture2D(tile_batchTexture, tile_featureSt); \n if (featureProperties.a == 0.0) { \n discard; \n } \n",e&&(i+=" bool isStyleTranslucent = (featureProperties.a != 1.0); \n if (czm_pass == czm_passTranslucent) \n { \n if (!isStyleTranslucent && !tile_translucentCommand) \n { \n discard; \n } \n } \n else \n { \n if (isStyleTranslucent) \n { \n discard; \n } \n } \n"),i+=" tile_color(featureProperties); \n} \n"),i}},N.prototype.getClassificationFragmentShaderCallback=function(){if(0!==this.featuresLength)return function(e){return e=T.replaceMain(e,"tile_main"),g.maximumVertexTextureImageUnits>0?e+="uniform sampler2D tile_pickTexture;\nvarying vec2 tile_featureSt; \nvarying vec4 tile_featureColor; \nvoid main() \n{ \n tile_main(); \n gl_FragColor = tile_featureColor; \n}":e+="uniform sampler2D tile_batchTexture; \nuniform sampler2D tile_pickTexture;\nvarying vec2 tile_featureSt; \nvoid main() \n{ \n tile_main(); \n vec4 featureProperties = texture2D(tile_batchTexture, tile_featureSt); \n if (featureProperties.a == 0.0) { \n discard; \n } \n gl_FragColor = featureProperties; \n} \n",e}},N.prototype.getUniformMapCallback=function(){if(0!==this.featuresLength){var e=this;return function(t){return a(t,{tile_batchTexture:function(){return l(e._batchTexture,e._defaultTexture)},tile_textureDimensions:function(){return e._textureDimensions},tile_textureStep:function(){return e._textureStep},tile_colorBlend:function(){return ie(e)},tile_pickTexture:function(){return e._pickTexture}})}}},N.prototype.getPickId=function(){return"texture2D(tile_pickTexture, tile_featureSt)"};var Se={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};return N.prototype.addDerivedCommands=function(e,t){for(var i=e.commandList,r=i.length,n=this._content._tile,o=n._finalResolution,a=n.tileset,s=a._skipLevelOfDetail&&a._hasMixedContent&&e.context.stencilBuffer,l=re(this),c=t;c<r;++c){var d=i[c],h=d.derivedCommands.tileset;u(h)&&!d.dirty||(h={},d.derivedCommands.tileset=h,h.originalCommand=ne(d),d.dirty=!1);var p=h.originalCommand;l!==Se.ALL_OPAQUE&&d.pass!==y.TRANSLUCENT&&(u(h.translucent)||(h.translucent=oe(p))),l!==Se.ALL_TRANSLUCENT&&d.pass!==y.TRANSLUCENT&&(u(h.opaque)||(h.opaque=ae(p)),s&&(o||(u(h.zback)||(h.zback=le(e.context,p)),a._backfaceCommands.push(h.zback)),u(h.stencil)&&n._selectionDepth===ce(h.stencil)||(d.renderState.depthMask?h.stencil=ue(p,n._selectionDepth):h.stencil=h.opaque)));var f=s?h.stencil:h.opaque,m=h.translucent;d.pass!==y.TRANSLUCENT?(l===Se.ALL_OPAQUE&&(i[c]=f),l===Se.ALL_TRANSLUCENT&&(i[c]=m),l===Se.OPAQUE_AND_TRANSLUCENT&&(i[c]=f,i.push(m))):i[c]=p}},N.prototype.update=function(e,t){var i=t.context;this._defaultTexture=i.defaultTexture;var r=t.passes;(r.pick||r.postProcess)&&fe(this,i),this._batchValuesDirty&&(this._batchValuesDirty=!1,u(this._batchTexture)||(this._batchTexture=pe(this,i,this._batchValues),e._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes),me(this))},N.prototype.isDestroyed=function(){return!1},N.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();for(var e=this._pickIds,t=e.length,i=0;i<t;++i)e[i].destroy();return h(this)},N}),define("Scene/Cesium3DTileFeature",["../Core/Color","../Core/defined","../Core/defineProperties"],function(e,t,i){"use strict";function r(e,t){this._content=e,this._batchId=t,this._color=void 0}return i(r.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return t(this._color)||(this._color=new e),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){ -this._content.batchTable.setColor(this._batchId,e)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}}),r.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)},r.prototype.getPropertyNames=function(e){return this._content.batchTable.getPropertyNames(this._batchId,e)},r.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)},r.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0},r.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)},r.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)},r.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)},r}),define("Scene/Cesium3DTileFeatureTable",["../Core/ComponentDatatype","../Core/defaultValue","../Core/defined"],function(e,t,i){"use strict";function r(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function n(t,r,n,o,a,s){var l=t._cachedTypedArrays,u=l[r];return i(u)||(u=e.createArrayBufferView(n,t.buffer.buffer,t.buffer.byteOffset+s,a*o),l[r]=u),u}function o(t,r,n,o){var a=t._cachedTypedArrays,s=a[r];return i(s)||(s=e.createTypedArray(n,o),a[r]=s),s}return r.prototype.getGlobalProperty=function(r,o,a){var s=this.json[r];if(i(s))return i(s.byteOffset)?(o=t(o,e.UNSIGNED_INT),a=t(a,1),n(this,r,o,a,1,s.byteOffset)):s},r.prototype.getPropertyArray=function(t,r,a){var s=this.json[t];if(i(s))return i(s.byteOffset)?(i(s.componentType)&&(r=e.fromName(s.componentType)),n(this,t,r,a,this.featuresLength,s.byteOffset)):o(this,t,r,s)},r.prototype.getProperty=function(e,t,r,n,o){var a=this.json[e];if(i(a)){var s=this.getPropertyArray(e,t,r);if(1===r)return s[n];for(var l=0;l<r;++l)o[l]=s[r*n+l];return o}},r}),define("Scene/Vector3DTileBatch",[],function(){"use strict";function e(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}return e}),define("Shaders/VectorTileVS",[],function(){"use strict";return"attribute vec3 position;\nattribute float a_batchId;\nuniform mat4 u_modifiedModelViewProjection;\nvoid main()\n{\ngl_Position = czm_depthClampFarPlane(u_modifiedModelViewProjection * vec4(position, 1.0));\n}\n"}),define("ThirdParty/jsep",[],function(){if(function(e){"use strict";var t=function(e,t){var i=new Error(e+" at character "+t);throw i.index=t,i.description=e,i},i={"-":!0,"!":!0,"~":!0,"+":!0},r={"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},n=function(e){var t,i=0;for(var r in e)(t=r.length)>i&&e.hasOwnProperty(r)&&(i=t);return i},o=n(i),a=n(r),s={true:!0,false:!1,null:null},l=function(e){return r[e]||0},u=function(e,t,i){return{type:"||"===e||"&&"===e?"LogicalExpression":"BinaryExpression",operator:e,left:t,right:i}},c=function(e){return e>=48&&e<=57},d=function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=128&&!r[String.fromCharCode(e)]},h=function(e){return 36===e||95===e||e>=65&&e<=90||e>=97&&e<=122||e>=48&&e<=57||e>=128&&!r[String.fromCharCode(e)]},p=function(e){for(var n,p,f=0,m=e.charAt,_=e.charCodeAt,g=function(t){return m.call(e,t)},v=function(t){return _.call(e,t)},y=e.length,C=function(){for(var e=v(f);32===e||9===e;)e=v(++f)},b=function(){var e,i,r=T();return C(),63!==v(f)?r:(f++,e=b(),e||t("Expected expression",f),C(),58===v(f)?(f++,i=b(),i||t("Expected expression",f),{type:"ConditionalExpression",test:r,consequent:e,alternate:i}):void t("Expected :",f))},S=function(){C();for(var t=e.substr(f,a),i=t.length;i>0;){if(r.hasOwnProperty(t))return f+=i,t;t=t.substr(0,--i)}return!1},T=function(){var e,i,r,n,o,a,s,c;if(a=E(),!(i=S()))return a;for(o={value:i,prec:l(i)},s=E(),s||t("Expected expression after "+i,f),n=[a,o,s];(i=S())&&0!==(r=l(i));){for(o={value:i,prec:r};n.length>2&&r<=n[n.length-2].prec;)s=n.pop(),i=n.pop().value,a=n.pop(),e=u(i,a,s),n.push(e);e=E(),e||t("Expected expression after "+i,f),n.push(o,e)}for(c=n.length-1,e=n[c];c>1;)e=u(n[c-1].value,n[c-2],e),c-=2;return e},E=function(){var t,r,n;if(C(),t=v(f),c(t)||46===t)return A();if(39===t||34===t)return w();if(d(t)||40===t)return D();if(91===t)return M();for(r=e.substr(f,o),n=r.length;n>0;){if(i.hasOwnProperty(r))return f+=n,{type:"UnaryExpression",operator:r,argument:E(),prefix:!0};r=r.substr(0,--n)}return!1},A=function(){for(var e,i,r="";c(v(f));)r+=g(f++);if(46===v(f))for(r+=g(f++);c(v(f));)r+=g(f++);if("e"===(e=g(f))||"E"===e){for(r+=g(f++),e=g(f),"+"!==e&&"-"!==e||(r+=g(f++));c(v(f));)r+=g(f++);c(v(f-1))||t("Expected exponent ("+r+g(f)+")",f)}return i=v(f),d(i)?t("Variable names cannot start with a number ("+r+g(f)+")",f):46===i&&t("Unexpected period",f),{type:"Literal",value:parseFloat(r),raw:r}},w=function(){for(var e,i="",r=g(f++),n=!1;f<y;){if((e=g(f++))===r){n=!0;break}if("\\"===e)switch(e=g(f++)){case"n":i+="\n";break;case"r":i+="\r";break;case"t":i+="\t";break;case"b":i+="\b";break;case"f":i+="\f";break;case"v":i+="\v";break;default:i+="\\"+e}else i+=e}return n||t('Unclosed quote after "'+i+'"',f),{type:"Literal",value:i,raw:r+i+r}},x=function(){var i,r=v(f),n=f;for(d(r)?f++:t("Unexpected "+g(f),f);f<y&&(r=v(f),h(r));)f++;return i=e.slice(n,f),s.hasOwnProperty(i)?{type:"Literal",value:s[i],raw:i}:"this"===i?{type:"ThisExpression"}:{type:"Identifier",name:i}},P=function(e){for(var i,r,n=[],o=!1;f<y;){if(C(),(i=v(f))===e){o=!0,f++;break}44===i?f++:(r=b(),r&&"Compound"!==r.type||t("Expected comma",f),n.push(r))}return o||t("Expected "+String.fromCharCode(e),f),n},D=function(){var e,i;for(e=v(f),i=40===e?I():x(),C(),e=v(f);46===e||91===e||40===e;)f++,46===e?(C(),i={type:"MemberExpression",computed:!1,object:i,property:x()}):91===e?(i={type:"MemberExpression",computed:!0,object:i,property:b()},C(),e=v(f),93!==e&&t("Unclosed [",f),f++):40===e&&(i={type:"CallExpression",arguments:P(41),callee:i}),C(),e=v(f);return i},I=function(){f++;var e=b();if(C(),41===v(f))return f++,e;t("Unclosed (",f)},M=function(){return f++,{type:"ArrayExpression",elements:P(93)}},R=[];f<y;)n=v(f),59===n||44===n?f++:(p=b())?R.push(p):f<y&&t('Unexpected "'+g(f)+'"',f);return 1===R.length?R[0]:{type:"Compound",body:R}};if(p.version="0.3.1",p.toString=function(){return"JavaScript Expression Parser (JSEP) v"+p.version},p.addUnaryOp=function(e){return o=Math.max(e.length,o),i[e]=!0,this},p.addBinaryOp=function(e,t){return a=Math.max(e.length,a),r[e]=t,this},p.addLiteral=function(e,t){return s[e]=t,this},p.removeUnaryOp=function(e){return delete i[e],e.length===o&&(o=n(i)),this},p.removeAllUnaryOps=function(){return i={},o=0,this},p.removeBinaryOp=function(e){return delete r[e],e.length===a&&(a=n(r)),this},p.removeAllBinaryOps=function(){return r={},a=0,this},p.removeLiteral=function(e){return delete s[e],this},p.removeAllLiterals=function(){return s={},this},"undefined"==typeof exports){var f=e.jsep;e.jsep=p,p.noConflict=function(){return e.jsep===p&&(e.jsep=f),p}}else"undefined"!=typeof module&&module.exports?exports=module.exports=p:exports.parse=p}(this),"undefined"!=typeof jsep)return jsep.noConflict()}),define("Scene/ExpressionNodeType",["../Core/freezeObject"],function(e){"use strict";return e({VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18})}),define("Scene/Expression",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Check","../Core/Color","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/isArray","../Core/Math","../Core/RuntimeError","../ThirdParty/jsep","./ExpressionNodeType"],function(e,t,i,r,n,o,a,s,l,u,c,d,h){"use strict";function p(e,t){this._expression=e,e=w(e,t),e=D(x(e)),d.addBinaryOp("=~",0),d.addBinaryOp("!~",0);var i;try{i=d(e)}catch(e){throw new c(e)}this._runtimeAst=V(this,i)}function f(e){return e-Math.floor(e)}function m(e){return Math.pow(2,e)}function _(e){return u.log2(e)}function g(r){return function(n,o){if("number"==typeof o)return r(o);if(o instanceof e)return e.fromElements(r(o.x),r(o.y),ee.getCartesian2());if(o instanceof t)return t.fromElements(r(o.x),r(o.y),r(o.z),ee.getCartesian3());if(o instanceof i)return i.fromElements(r(o.x),r(o.y),r(o.z),r(o.w),ee.getCartesian4());throw new c('Function "'+n+'" requires a vector or number argument. Argument is '+o+".")}}function v(r,n){return function(o,a,s){if(n&&"number"==typeof s){if("number"==typeof a)return r(a,s);if(a instanceof e)return e.fromElements(r(a.x,s),r(a.y,s),ee.getCartesian2());if(a instanceof t)return t.fromElements(r(a.x,s),r(a.y,s),r(a.z,s),ee.getCartesian3());if(a instanceof i)return i.fromElements(r(a.x,s),r(a.y,s),r(a.z,s),r(a.w,s),ee.getCartesian4())}if("number"==typeof a&&"number"==typeof s)return r(a,s);if(a instanceof e&&s instanceof e)return e.fromElements(r(a.x,s.x),r(a.y,s.y),ee.getCartesian2());if(a instanceof t&&s instanceof t)return t.fromElements(r(a.x,s.x),r(a.y,s.y),r(a.z,s.z),ee.getCartesian3());if(a instanceof i&&s instanceof i)return i.fromElements(r(a.x,s.x),r(a.y,s.y),r(a.z,s.z),r(a.w,s.w),ee.getCartesian4());throw new c('Function "'+o+'" requires vector or number arguments of matching types. Arguments are '+a+" and "+s+".")}}function y(r,n){return function(o,a,s,l){if(n&&"number"==typeof l){if("number"==typeof a&&"number"==typeof s)return r(a,s,l);if(a instanceof e&&s instanceof e)return e.fromElements(r(a.x,s.x,l),r(a.y,s.y,l),ee.getCartesian2());if(a instanceof t&&s instanceof t)return t.fromElements(r(a.x,s.x,l),r(a.y,s.y,l),r(a.z,s.z,l),ee.getCartesian3());if(a instanceof i&&s instanceof i)return i.fromElements(r(a.x,s.x,l),r(a.y,s.y,l),r(a.z,s.z,l),r(a.w,s.w,l),ee.getCartesian4())}if("number"==typeof a&&"number"==typeof s&&"number"==typeof l)return r(a,s,l);if(a instanceof e&&s instanceof e&&l instanceof e)return e.fromElements(r(a.x,s.x,l.x),r(a.y,s.y,l.y),ee.getCartesian2());if(a instanceof t&&s instanceof t&&l instanceof t)return t.fromElements(r(a.x,s.x,l.x),r(a.y,s.y,l.y),r(a.z,s.z,l.z),ee.getCartesian3());if(a instanceof i&&s instanceof i&&l instanceof i)return i.fromElements(r(a.x,s.x,l.x),r(a.y,s.y,l.y),r(a.z,s.z,l.z),r(a.w,s.w,l.w),ee.getCartesian4());throw new c('Function "'+o+'" requires vector or number arguments of matching types. Arguments are '+a+", "+s+", and "+l+".")}}function C(r,n){if("number"==typeof n)return Math.abs(n);if(n instanceof e)return e.magnitude(n);if(n instanceof t)return t.magnitude(n);if(n instanceof i)return i.magnitude(n);throw new c('Function "'+r+'" requires a vector or number argument. Argument is '+n+".")}function b(r,n){if("number"==typeof n)return 1;if(n instanceof e)return e.normalize(n,ee.getCartesian2());if(n instanceof t)return t.normalize(n,ee.getCartesian3());if(n instanceof i)return i.normalize(n,ee.getCartesian4());throw new c('Function "'+r+'" requires a vector or number argument. Argument is '+n+".")}function S(r,n,o){if("number"==typeof n&&"number"==typeof o)return Math.abs(n-o);if(n instanceof e&&o instanceof e)return e.distance(n,o);if(n instanceof t&&o instanceof t)return t.distance(n,o);if(n instanceof i&&o instanceof i)return i.distance(n,o);throw new c('Function "'+r+'" requires vector or number arguments of matching types. Arguments are '+n+" and "+o+".")}function T(r,n,o){if("number"==typeof n&&"number"==typeof o)return n*o;if(n instanceof e&&o instanceof e)return e.dot(n,o);if(n instanceof t&&o instanceof t)return t.dot(n,o);if(n instanceof i&&o instanceof i)return i.dot(n,o);throw new c('Function "'+r+'" requires vector or number arguments of matching types. Arguments are '+n+" and "+o+".")}function E(e,i,r){if(i instanceof t&&r instanceof t)return t.cross(i,r,ee.getCartesian3());throw new c('Function "'+e+'" requires vec3 arguments. Arguments are '+i+" and "+r+".")}function A(e,t,i,r,n){this._type=e,this._value=t,this._left=i,this._right=r,this._test=n,this.evaluate=void 0,U(this)}function w(e,t){if(!o(t))return e;for(var i in t)if(t.hasOwnProperty(i)){var r=new RegExp("\\$\\{"+i+"\\}","g"),n="("+t[i]+")";o(n)&&(e=e.replace(r,n))}return e}function x(e){return e.replace(ne,oe)}function P(e){return e.replace(ae,"\\")}function D(e){for(var t=e,i="",r=t.indexOf("${");r>=0;){var n,o=t.indexOf("'"),a=t.indexOf('"');if(o>=0&&o<r)n=t.indexOf("'",o+1),i+=t.substr(0,n+1),t=t.substr(n+1),r=t.indexOf("${");else if(a>=0&&a<r)n=t.indexOf('"',a+1),i+=t.substr(0,n+1),t=t.substr(n+1),r=t.indexOf("${");else{i+=t.substr(0,r);var s=t.indexOf("}");if(s<0)throw new c("Unmatched {.");i+="czm_"+t.substr(r+2,s-(r+2)),t=t.substr(s+1),r=t.indexOf("${")}}return i+=t}function I(e){var t=typeof e.value;return null===e.value?new A(h.LITERAL_NULL,null):"boolean"===t?new A(h.LITERAL_BOOLEAN,e.value):"number"===t?new A(h.LITERAL_NUMBER,e.value):"string"===t?e.value.indexOf("${")>=0?new A(h.VARIABLE_IN_STRING,e.value):new A(h.LITERAL_STRING,P(e.value)):void 0}function M(e,t){var i,r,n,a,s=t.arguments,l=s.length;if("MemberExpression"===t.callee.type){i=t.callee.property.name;var u=t.callee.object;if("test"===i||"exec"===i){if("regExp"!==u.callee.name)throw new c(i+" is not a function.");return 0===l?"test"===i?new A(h.LITERAL_BOOLEAN,!1):new A(h.LITERAL_NULL,null):(n=V(e,u),a=V(e,s[0]),new A(h.FUNCTION_CALL,i,n,a))}if("toString"===i)return r=V(e,u),new A(h.FUNCTION_CALL,i,r);throw new c('Unexpected function call "'+i+'".')}if("color"===(i=t.callee.name)){if(0===l)return new A(h.LITERAL_COLOR,i);if(r=V(e,s[0]),o(s[1])){var d=V(e,s[1]);return new A(h.LITERAL_COLOR,i,[r,d])}return new A(h.LITERAL_COLOR,i,[r])}if("rgb"===i||"hsl"===i){if(l<3)throw new c(i+" requires three arguments.");return r=[V(e,s[0]),V(e,s[1]),V(e,s[2])],new A(h.LITERAL_COLOR,i,r)}if("rgba"===i||"hsla"===i){if(l<4)throw new c(i+" requires four arguments.");return r=[V(e,s[0]),V(e,s[1]),V(e,s[2]),V(e,s[3])],new A(h.LITERAL_COLOR,i,r)}if("vec2"===i||"vec3"===i||"vec4"===i){r=new Array(l);for(var p=0;p<l;++p)r[p]=V(e,s[p]);return new A(h.LITERAL_VECTOR,i,r)}if("isNaN"===i||"isFinite"===i)return 0===l?"isNaN"===i?new A(h.LITERAL_BOOLEAN,!0):new A(h.LITERAL_BOOLEAN,!1):(r=V(e,s[0]),new A(h.UNARY,i,r));if("isExactClass"===i||"isClass"===i){if(l<1||l>1)throw new c(i+" requires exactly one argument.");return r=V(e,s[0]),new A(h.UNARY,i,r)}if("getExactClassName"===i){if(l>0)throw new c(i+" does not take any argument.");return new A(h.UNARY,i)}if(o(le[i])){if(1!==l)throw new c(i+" requires exactly one argument.");return r=V(e,s[0]),new A(h.UNARY,i,r)}if(o(ue[i])){if(2!==l)throw new c(i+" requires exactly two arguments.");return n=V(e,s[0]),a=V(e,s[1]),new A(h.BINARY,i,n,a)}if(o(ce[i])){if(3!==l)throw new c(i+" requires exactly three arguments.");n=V(e,s[0]),a=V(e,s[1]);var f=V(e,s[2]);return new A(h.TERNARY,i,n,a,f)}if("Boolean"===i)return 0===l?new A(h.LITERAL_BOOLEAN,!1):(r=V(e,s[0]),new A(h.UNARY,i,r));if("Number"===i)return 0===l?new A(h.LITERAL_NUMBER,0):(r=V(e,s[0]),new A(h.UNARY,i,r));if("String"===i)return 0===l?new A(h.LITERAL_STRING,""):(r=V(e,s[0]),new A(h.UNARY,i,r));if("regExp"===i)return R(e,t);throw new c('Unexpected function call "'+i+'".')}function R(e,t){var i=t.arguments;if(0===i.length)return new A(h.LITERAL_REGEX,new RegExp);var r,n=V(e,i[0]);if(i.length>1){var o=V(e,i[1]);if(B(n)&&B(o)){try{r=new RegExp(P(String(n._value)),o._value)}catch(e){throw new c(e)}return new A(h.LITERAL_REGEX,r)}return new A(h.REGEX,n,o)}if(B(n)){try{r=new RegExp(P(String(n._value)))}catch(e){throw new c(e)}return new A(h.LITERAL_REGEX,r)}return new A(h.REGEX,n)}function O(e){if(z(e.name)){var t=k(e.name);return"tiles3d_"===t.substr(0,8)?new A(h.BUILTIN_VARIABLE,t):new A(h.VARIABLE,t)}if("NaN"===e.name)return new A(h.LITERAL_NUMBER,NaN);if("Infinity"===e.name)return new A(h.LITERAL_NUMBER,1/0);if("undefined"===e.name)return new A(h.LITERAL_UNDEFINED,void 0);throw new c(e.name+" is not defined.")}function L(e){var t=e.property.name;return"PI"===t?new A(h.LITERAL_NUMBER,Math.PI):"E"===t?new A(h.LITERAL_NUMBER,Math.E):void 0}function N(e){if("POSITIVE_INFINITY"===e.property.name)return new A(h.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function F(e,t){if("Math"===t.object.name)return L(t);if("Number"===t.object.name)return N(t);var i,r=V(e,t.object);return t.computed?(i=V(e,t.property),new A(h.MEMBER,"brackets",r,i)):(i=new A(h.LITERAL_STRING,t.property.name),new A(h.MEMBER,"dot",r,i))}function B(e){return e._type>=h.LITERAL_NULL}function z(e){return"czm_"===e.substr(0,4)}function k(e){return e.substr(4)}function V(e,t){var i,r,n,o;if("Literal"===t.type)i=I(t);else if("CallExpression"===t.type)i=M(e,t);else if("Identifier"===t.type)i=O(t);else if("UnaryExpression"===t.type){r=t.operator;var a=V(e,t.argument);if(!(te.indexOf(r)>-1))throw new c('Unexpected operator "'+r+'".');i=new A(h.UNARY,r,a)}else if("BinaryExpression"===t.type){if(r=t.operator,n=V(e,t.left),o=V(e,t.right),!(ie.indexOf(r)>-1))throw new c('Unexpected operator "'+r+'".');i=new A(h.BINARY,r,n,o)}else if("LogicalExpression"===t.type)r=t.operator,n=V(e,t.left),o=V(e,t.right),ie.indexOf(r)>-1&&(i=new A(h.BINARY,r,n,o));else if("ConditionalExpression"===t.type){var s=V(e,t.test);n=V(e,t.consequent),o=V(e,t.alternate),i=new A(h.CONDITIONAL,"?",n,o,s)}else if("MemberExpression"===t.type)i=F(e,t);else{if("ArrayExpression"!==t.type)throw new c("Compound"===t.type?"Provide exactly one expression.":"Cannot parse expression.");for(var l=[],u=0;u<t.elements.length;u++)l[u]=V(e,t.elements[u]);i=new A(h.ARRAY,l)}return i}function U(e){e._type===h.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===h.FUNCTION_CALL?"test"===e._value?e.evaluate=e._evaluateRegExpTest:"exec"===e._value?e.evaluate=e._evaluateRegExpExec:"toString"===e._value&&(e.evaluate=e._evaluateToString):e._type===h.UNARY?"!"===e._value?e.evaluate=e._evaluateNot:"-"===e._value?e.evaluate=e._evaluateNegative:"+"===e._value?e.evaluate=e._evaluatePositive:"isNaN"===e._value?e.evaluate=e._evaluateNaN:"isFinite"===e._value?e.evaluate=e._evaluateIsFinite:"isExactClass"===e._value?e.evaluate=e._evaluateIsExactClass:"isClass"===e._value?e.evaluate=e._evaluateIsClass:"getExactClassName"===e._value?e.evaluate=e._evaluateGetExactClassName:"Boolean"===e._value?e.evaluate=e._evaluateBooleanConversion:"Number"===e._value?e.evaluate=e._evaluateNumberConversion:"String"===e._value?e.evaluate=e._evaluateStringConversion:o(le[e._value])&&(e.evaluate=H(e._value)):e._type===h.BINARY?"+"===e._value?e.evaluate=e._evaluatePlus:"-"===e._value?e.evaluate=e._evaluateMinus:"*"===e._value?e.evaluate=e._evaluateTimes:"/"===e._value?e.evaluate=e._evaluateDivide:"%"===e._value?e.evaluate=e._evaluateMod:"==="===e._value?e.evaluate=e._evaluateEqualsStrict:"!=="===e._value?e.evaluate=e._evaluateNotEqualsStrict:"<"===e._value?e.evaluate=e._evaluateLessThan:"<="===e._value?e.evaluate=e._evaluateLessThanOrEquals:">"===e._value?e.evaluate=e._evaluateGreaterThan:">="===e._value?e.evaluate=e._evaluateGreaterThanOrEquals:"&&"===e._value?e.evaluate=e._evaluateAnd:"||"===e._value?e.evaluate=e._evaluateOr:"=~"===e._value?e.evaluate=e._evaluateRegExpMatch:"!~"===e._value?e.evaluate=e._evaluateRegExpNotMatch:o(ue[e._value])&&(e.evaluate=W(e._value)):e._type===h.TERNARY?e.evaluate=q(e._value):e._type===h.MEMBER?"brackets"===e._value?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===h.ARRAY?e.evaluate=e._evaluateArray:e._type===h.VARIABLE?e.evaluate=e._evaluateVariable:e._type===h.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===h.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===h.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===h.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===h.REGEX?e.evaluate=e._evaluateRegExp:e._type===h.BUILTIN_VARIABLE?"tiles3d_tileset_time"===e._value&&(e.evaluate=G):e.evaluate=e._evaluateLiteral}function G(e){return o(e)?e.content.tileset.timeSinceLoad:0}function H(e){var t=le[e];return function(i){var r=this._left.evaluate(i);return t(e,r)}}function W(e){var t=ue[e];return function(i){var r=this._left.evaluate(i),n=this._right.evaluate(i);return t(e,r,n)}}function q(e){var t=ce[e];return function(i){var r=this._left.evaluate(i),n=this._right.evaluate(i),o=this._test.evaluate(i);return t(e,r,n,o)}}function Y(e,t){if(o(e))return e.getProperty(t)}function j(e){return"feature"===e._value}function X(e){for(var t=e._left,i=t.length,r=0;r<i;++r)if(t[r]._type!==h.LITERAL_NUMBER)return;var o=t[0]._value,a=t[1]._value,s=t[2]._value,l=4===i?t[3]._value:1;return n.fromHsl(o,a,s,l,se)}function Q(e){for(var t=e._left,i=t.length,r=0;r<i;++r)if(t[r]._type!==h.LITERAL_NUMBER)return;var n=se;return n.red=t[0]._value/255,n.green=t[1]._value/255,n.blue=t[2]._value/255,n.alpha=4===i?t[3]._value:1,n}function K(e){return e%1==0?e.toFixed(1):e.toString()}function Z(e){return"vec3("+K(e.red)+", "+K(e.green)+", "+K(e.blue)+")"}function J(e){return"vec4("+K(e.red)+", "+K(e.green)+", "+K(e.blue)+", "+K(e.alpha)+")"}function $(e,t,i,r){for(var n=e.length,o=new Array(n),a=0;a<n;++a)o[a]=e[a].getShaderExpression(t,i,r);return o}a(p.prototype,{expression:{get:function(){return this._expression}}});var ee={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new e],cartesian3Array:[new t],cartesian4Array:[new i],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);var e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new e),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new t),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new i),this.cartesian4Array[this.cartesian4Index++]}};p.prototype.evaluate=function(r,o){ee.reset();var a=this._runtimeAst.evaluate(r);return o instanceof n&&a instanceof i?n.fromCartesian4(a,o):a instanceof e||a instanceof t||a instanceof i?a.clone(o):a},p.prototype.evaluateColor=function(e,t){ee.reset();var i=this._runtimeAst.evaluate(e);return n.fromCartesian4(i,t)},p.prototype.getShaderFunction=function(e,t,i,r){var n=this.getShaderExpression(t,i);return n=r+" "+e+"() \n{ \n return "+n+"; \n} \n"},p.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};var te=["!","-","+"],ie=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],re=/\${(.*?)}/g,ne=/\\/g,oe="@#%",ae=/@#%/g,se=new n,le={abs:g(Math.abs),sqrt:g(Math.sqrt),cos:g(Math.cos),sin:g(Math.sin),tan:g(Math.tan),acos:g(Math.acos),asin:g(Math.asin),atan:g(Math.atan),radians:g(u.toRadians),degrees:g(u.toDegrees),sign:g(u.sign),floor:g(Math.floor),ceil:g(Math.ceil),round:g(Math.round),exp:g(Math.exp),exp2:g(m),log:g(Math.log),log2:g(_),fract:g(f),length:C,normalize:b},ue={atan2:v(Math.atan2,!1),pow:v(Math.pow,!1),min:v(Math.min,!0),max:v(Math.max,!0),distance:S,dot:T,cross:E},ce={clamp:y(u.clamp,!0),mix:y(u.lerp,!0)};return A.prototype._evaluateLiteral=function(){return this._value},A.prototype._evaluateLiteralColor=function(e){var t=se,r=this._left;if("color"===this._value)o(r)?r.length>1?(n.fromCssColorString(r[0].evaluate(e),t),t.alpha=r[1].evaluate(e)):n.fromCssColorString(r[0].evaluate(e),t):n.fromBytes(255,255,255,255,t);else if("rgb"===this._value)n.fromBytes(r[0].evaluate(e),r[1].evaluate(e),r[2].evaluate(e),255,t);else if("rgba"===this._value){var a=255*r[3].evaluate(e);n.fromBytes(r[0].evaluate(e),r[1].evaluate(e),r[2].evaluate(e),a,t)}else"hsl"===this._value?n.fromHsl(r[0].evaluate(e),r[1].evaluate(e),r[2].evaluate(e),1,t):"hsla"===this._value&&n.fromHsl(r[0].evaluate(e),r[1].evaluate(e),r[2].evaluate(e),r[3].evaluate(e),t);return i.fromColor(t,ee.getCartesian4())},A.prototype._evaluateLiteralVector=function(r){for(var n=ee.getArray(),o=this._value,a=this._left,s=a.length,l=0;l<s;++l){var u=a[l].evaluate(r);if("number"==typeof u)n.push(u);else if(u instanceof e)n.push(u.x,u.y);else if(u instanceof t)n.push(u.x,u.y,u.z);else{if(!(u instanceof i))throw new c(o+" argument must be a vector or number. Argument is "+u+".");n.push(u.x,u.y,u.z,u.w)}}var d=n.length,h=parseInt(o.charAt(3));if(0===d)throw new c("Invalid "+o+" constructor. No valid arguments.");if(d<h&&d>1)throw new c("Invalid "+o+" constructor. Not enough arguments.");if(d>h&&s>1)throw new c("Invalid "+o+" constructor. Too many arguments.");if(1===d){var p=n[0];n.push(p,p,p)}return"vec2"===o?e.fromArray(n,0,ee.getCartesian2()):"vec3"===o?t.fromArray(n,0,ee.getCartesian3()):"vec4"===o?i.fromArray(n,0,ee.getCartesian4()):void 0},A.prototype._evaluateLiteralString=function(){return this._value},A.prototype._evaluateVariableString=function(e){for(var t=this._value,i=re.exec(t);null!==i;){var r=i[0],n=i[1],a=Y(e,n);o(a)||(a=""),t=t.replace(r,a),i=re.exec(t)}return t},A.prototype._evaluateVariable=function(e){return Y(e,this._value)},A.prototype._evaluateMemberDot=function(r){if(j(this._left))return Y(r,this._right.evaluate(r));var n=this._left.evaluate(r);if(o(n)){var a=this._right.evaluate(r);if(n instanceof e||n instanceof t||n instanceof i){if("r"===a)return n.x;if("g"===a)return n.y;if("b"===a)return n.z;if("a"===a)return n.w}return n[a]}},A.prototype._evaluateMemberBrackets=function(r){if(j(this._left))return Y(r,this._right.evaluate(r));var n=this._left.evaluate(r);if(o(n)){var a=this._right.evaluate(r);if(n instanceof e||n instanceof t||n instanceof i){if(0===a||"r"===a)return n.x;if(1===a||"g"===a)return n.y;if(2===a||"b"===a)return n.z;if(3===a||"a"===a)return n.w}return n[a]}},A.prototype._evaluateArray=function(e){for(var t=[],i=0;i<this._value.length;i++)t[i]=this._value[i].evaluate(e);return t},A.prototype._evaluateNot=function(e){var t=this._left.evaluate(e);if("boolean"!=typeof t)throw new c('Operator "!" requires a boolean argument. Argument is '+t+".");return!t},A.prototype._evaluateNegative=function(r){var n=this._left.evaluate(r);if(n instanceof e)return e.negate(n,ee.getCartesian2());if(n instanceof t)return t.negate(n,ee.getCartesian3());if(n instanceof i)return i.negate(n,ee.getCartesian4());if("number"==typeof n)return-n;throw new c('Operator "-" requires a vector or number argument. Argument is '+n+".")},A.prototype._evaluatePositive=function(r){var n=this._left.evaluate(r);if(!(n instanceof e||n instanceof t||n instanceof i||"number"==typeof n))throw new c('Operator "+" requires a vector or number argument. Argument is '+n+".");return n},A.prototype._evaluateLessThan=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if("number"!=typeof t||"number"!=typeof i)throw new c('Operator "<" requires number arguments. Arguments are '+t+" and "+i+".");return t<i},A.prototype._evaluateLessThanOrEquals=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if("number"!=typeof t||"number"!=typeof i)throw new c('Operator "<=" requires number arguments. Arguments are '+t+" and "+i+".");return t<=i},A.prototype._evaluateGreaterThan=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if("number"!=typeof t||"number"!=typeof i)throw new c('Operator ">" requires number arguments. Arguments are '+t+" and "+i+".");return t>i},A.prototype._evaluateGreaterThanOrEquals=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if("number"!=typeof t||"number"!=typeof i)throw new c('Operator ">=" requires number arguments. Arguments are '+t+" and "+i+".");return t>=i},A.prototype._evaluateOr=function(e){var t=this._left.evaluate(e);if("boolean"!=typeof t)throw new c('Operator "||" requires boolean arguments. First argument is '+t+".");if(t)return!0;var i=this._right.evaluate(e);if("boolean"!=typeof i)throw new c('Operator "||" requires boolean arguments. Second argument is '+i+".");return t||i},A.prototype._evaluateAnd=function(e){var t=this._left.evaluate(e);if("boolean"!=typeof t)throw new c('Operator "&&" requires boolean arguments. First argument is '+t+".");if(!t)return!1;var i=this._right.evaluate(e);if("boolean"!=typeof i)throw new c('Operator "&&" requires boolean arguments. Second argument is '+i+".");return t&&i},A.prototype._evaluatePlus=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);if(o instanceof e&&n instanceof e)return e.add(n,o,ee.getCartesian2());if(o instanceof t&&n instanceof t)return t.add(n,o,ee.getCartesian3());if(o instanceof i&&n instanceof i)return i.add(n,o,ee.getCartesian4());if("string"==typeof n||"string"==typeof o)return n+o;if("number"==typeof n&&"number"==typeof o)return n+o;throw new c('Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are '+n+" and "+o+".")},A.prototype._evaluateMinus=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);if(o instanceof e&&n instanceof e)return e.subtract(n,o,ee.getCartesian2());if(o instanceof t&&n instanceof t)return t.subtract(n,o,ee.getCartesian3());if(o instanceof i&&n instanceof i)return i.subtract(n,o,ee.getCartesian4());if("number"==typeof n&&"number"==typeof o)return n-o;throw new c('Operator "-" requires vector or number arguments of matching types. Arguments are '+n+" and "+o+".")},A.prototype._evaluateTimes=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);if(o instanceof e&&n instanceof e)return e.multiplyComponents(n,o,ee.getCartesian2());if(o instanceof e&&"number"==typeof n)return e.multiplyByScalar(o,n,ee.getCartesian2());if(n instanceof e&&"number"==typeof o)return e.multiplyByScalar(n,o,ee.getCartesian2());if(o instanceof t&&n instanceof t)return t.multiplyComponents(n,o,ee.getCartesian3());if(o instanceof t&&"number"==typeof n)return t.multiplyByScalar(o,n,ee.getCartesian3());if(n instanceof t&&"number"==typeof o)return t.multiplyByScalar(n,o,ee.getCartesian3());if(o instanceof i&&n instanceof i)return i.multiplyComponents(n,o,ee.getCartesian4());if(o instanceof i&&"number"==typeof n)return i.multiplyByScalar(o,n,ee.getCartesian4());if(n instanceof i&&"number"==typeof o)return i.multiplyByScalar(n,o,ee.getCartesian4());if("number"==typeof n&&"number"==typeof o)return n*o;throw new c('Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are '+n+" and "+o+".")},A.prototype._evaluateDivide=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);if(o instanceof e&&n instanceof e)return e.divideComponents(n,o,ee.getCartesian2());if(n instanceof e&&"number"==typeof o)return e.divideByScalar(n,o,ee.getCartesian2());if(o instanceof t&&n instanceof t)return t.divideComponents(n,o,ee.getCartesian3());if(n instanceof t&&"number"==typeof o)return t.divideByScalar(n,o,ee.getCartesian3());if(o instanceof i&&n instanceof i)return i.divideComponents(n,o,ee.getCartesian4());if(n instanceof i&&"number"==typeof o)return i.divideByScalar(n,o,ee.getCartesian4());if("number"==typeof n&&"number"==typeof o)return n/o;throw new c('Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are '+n+" and "+o+".")},A.prototype._evaluateMod=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);if(o instanceof e&&n instanceof e)return e.fromElements(n.x%o.x,n.y%o.y,ee.getCartesian2());if(o instanceof t&&n instanceof t)return t.fromElements(n.x%o.x,n.y%o.y,n.z%o.z,ee.getCartesian3()) -;if(o instanceof i&&n instanceof i)return i.fromElements(n.x%o.x,n.y%o.y,n.z%o.z,n.w%o.w,ee.getCartesian4());if("number"==typeof n&&"number"==typeof o)return n%o;throw new c('Operator "%" requires vector or number arguments of matching types. Arguments are '+n+" and "+o+".")},A.prototype._evaluateEqualsStrict=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);return o instanceof e&&n instanceof e||o instanceof t&&n instanceof t||o instanceof i&&n instanceof i?n.equals(o):n===o},A.prototype._evaluateNotEqualsStrict=function(r){var n=this._left.evaluate(r),o=this._right.evaluate(r);return o instanceof e&&n instanceof e||o instanceof t&&n instanceof t||o instanceof i&&n instanceof i?!n.equals(o):n!==o},A.prototype._evaluateConditional=function(e){var t=this._test.evaluate(e);if("boolean"!=typeof t)throw new c("Conditional argument of conditional expression must be a boolean. Argument is "+t+".");return t?this._left.evaluate(e):this._right.evaluate(e)},A.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))},A.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))},A.prototype._evaluateIsExactClass=function(e){return!!o(e)&&e.isExactClass(this._left.evaluate(e))},A.prototype._evaluateIsClass=function(e){return!!o(e)&&e.isClass(this._left.evaluate(e))},A.prototype._evaluateGetExactClassName=function(e){if(o(e))return e.getExactClassName()},A.prototype._evaluateBooleanConversion=function(e){return Boolean(this._left.evaluate(e))},A.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))},A.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))},A.prototype._evaluateRegExp=function(e){var t=this._value.evaluate(e),i="";o(this._left)&&(i=this._left.evaluate(e));var r;try{r=new RegExp(t,i)}catch(e){throw new c(e)}return r},A.prototype._evaluateRegExpTest=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if(!(t instanceof RegExp&&"string"==typeof i))throw new c("RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are "+t+" and "+i+".");return t.test(i)},A.prototype._evaluateRegExpMatch=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if(t instanceof RegExp&&"string"==typeof i)return t.test(i);if(i instanceof RegExp&&"string"==typeof t)return i.test(t);throw new c('Operator "=~" requires one RegExp argument and one string argument. Arguments are '+t+" and "+i+".")},A.prototype._evaluateRegExpNotMatch=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if(t instanceof RegExp&&"string"==typeof i)return!t.test(i);if(i instanceof RegExp&&"string"==typeof t)return!i.test(t);throw new c('Operator "!~" requires one RegExp argument and one string argument. Arguments are '+t+" and "+i+".")},A.prototype._evaluateRegExpExec=function(e){var t=this._left.evaluate(e),i=this._right.evaluate(e);if(!(t instanceof RegExp&&"string"==typeof i))throw new c("RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are "+t+" and "+i+".");var r=t.exec(i);return o(r)?r[1]:null},A.prototype._evaluateToString=function(r){var n=this._left.evaluate(r);if(n instanceof RegExp||n instanceof e||n instanceof t||n instanceof i)return String(n);throw new c('Unexpected function call "'+this._value+'".')},A.prototype.getShaderExpression=function(e,t,i){var r,a,s,u,d=this._type,p=this._value;switch(o(this._left)&&(a=l(this._left)?$(this._left,e,t,this):this._left.getShaderExpression(e,t,this)),o(this._right)&&(s=this._right.getShaderExpression(e,t,this)),o(this._test)&&(u=this._test.getShaderExpression(e,t,this)),l(this._value)&&(p=$(this._value,e,t,this)),d){case h.VARIABLE:return e+p;case h.UNARY:if("Boolean"===p)return"bool("+a+")";if("Number"===p)return"float("+a+")";if("round"===p)return"floor("+a+" + 0.5)";if(o(le[p]))return p+"("+a+")";if("isNaN"===p||"isFinite"===p||"String"===p||"isExactClass"===p||"isClass"===p||"getExactClassName"===p)throw new c('Error generating style shader: "'+p+'" is not supported.');return o(le[p])?p+"("+a+")":p+a;case h.BINARY:return"%"===p?"mod("+a+", "+s+")":"==="===p?"("+a+" == "+s+")":"!=="===p?"("+a+" != "+s+")":"atan2"===p?"atan("+a+", "+s+")":o(ue[p])?p+"("+a+", "+s+")":"("+a+" "+p+" "+s+")";case h.TERNARY:if(o(ce[p]))return p+"("+a+", "+s+", "+u+")";break;case h.CONDITIONAL:return"("+u+" ? "+a+" : "+s+")";case h.MEMBER:return"r"===s||"x"===s||"0.0"===s?a+"[0]":"g"===s||"y"===s||"1.0"===s?a+"[1]":"b"===s||"z"===s||"2.0"===s?a+"[2]":"a"===s||"w"===s||"3.0"===s?a+"[3]":a+"[int("+s+")]";case h.FUNCTION_CALL:throw new c('Error generating style shader: "'+p+'" is not supported.');case h.ARRAY:if(4===p.length)return"vec4("+p[0]+", "+p[1]+", "+p[2]+", "+p[3]+")";if(3===p.length)return"vec3("+p[0]+", "+p[1]+", "+p[2]+")";if(2===p.length)return"vec2("+p[0]+", "+p[1]+")";throw new c("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case h.REGEX:throw new c("Error generating style shader: Regular expressions are not supported.");case h.VARIABLE_IN_STRING:throw new c("Error generating style shader: Converting a variable to a string is not supported.");case h.LITERAL_NULL:throw new c("Error generating style shader: null is not supported.");case h.LITERAL_BOOLEAN:return p?"true":"false";case h.LITERAL_NUMBER:return K(p);case h.LITERAL_STRING:if(o(i)&&i._type===h.MEMBER&&("r"===p||"g"===p||"b"===p||"a"===p||"x"===p||"y"===p||"z"===p||"w"===p))return p;if(r=n.fromCssColorString(p,se),o(r))return Z(r);throw new c("Error generating style shader: String literals are not supported.");case h.LITERAL_COLOR:var f=a;if("color"===p){if(!o(f))return"vec4(1.0)";if(f.length>1){var m=f[0],_=f[1];return"1.0"!==_&&(t.translucent=!0),"vec4("+m+", "+_+")"}return"vec4("+f[0]+", 1.0)"}if("rgb"===p)return r=Q(this),o(r)?J(r):"vec4("+f[0]+" / 255.0, "+f[1]+" / 255.0, "+f[2]+" / 255.0, 1.0)";if("rgba"===p)return"1.0"!==f[3]&&(t.translucent=!0),r=Q(this),o(r)?J(r):"vec4("+f[0]+" / 255.0, "+f[1]+" / 255.0, "+f[2]+" / 255.0, "+f[3]+")";if("hsl"===p)return r=X(this),o(r)?J(r):"vec4(czm_HSLToRGB(vec3("+f[0]+", "+f[1]+", "+f[2]+")), 1.0)";if("hsla"===p)return r=X(this),o(r)?(1!==r.alpha&&(t.translucent=!0),J(r)):("1.0"!==f[3]&&(t.translucent=!0),"vec4(czm_HSLToRGB(vec3("+f[0]+", "+f[1]+", "+f[2]+")), "+f[3]+")");break;case h.LITERAL_VECTOR:for(var g=a.length,v=p+"(",y=0;y<g;++y)v+=a[y],y<g-1&&(v+=", ");return v+=")";case h.LITERAL_REGEX:throw new c("Error generating style shader: Regular expressions are not supported.");case h.LITERAL_UNDEFINED:throw new c("Error generating style shader: undefined is not supported.");case h.BUILTIN_VARIABLE:if("tiles3d_tileset_time"===p)return"u_time"}},p}),define("Scene/Vector3DTilePrimitive",["../Core/Cartesian3","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/IndexDatatype","../Core/Matrix4","../Core/PrimitiveType","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/ShadowVolumeFS","../Shaders/VectorTileVS","./BlendingState","./Cesium3DTileFeature","./ClassificationType","./DepthFunction","./Expression","./StencilConstants","./StencilFunction","./StencilOperation","./Vector3DTileBatch"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P){"use strict";function D(i){i=r(i,r.EMPTY_OBJECT),this._batchTable=i.batchTable,this._batchIds=i.batchIds,this._positions=i.positions,this._vertexBatchIds=i.vertexBatchIds,this._indices=i.indices,this._indexCounts=i.indexCounts,this._indexOffsets=i.indexOffsets,this._batchedIndices=i.batchedIndices,this._boundingVolume=i.boundingVolume,this._boundingVolumes=i.boundingVolumes,this._center=r(i.center,e.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilPreloadPass=void 0,this._rsStencilPreloadPass3DTiles=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=t.clone(t.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=r(i.classificationType,S.BOTH),this._vertexShaderSource=i._vertexShaderSource,this._fragmentShaderSource=i._fragmentShaderSource,this._attributeLocations=i._attributeLocations,this._uniformMap=i._uniformMap,this._pickId=i._pickId,this._modelMatrix=i._modelMatrix,this._boundingSphere=i._boundingSphere,this._batchIdLookUp={};for(var n=this._batchIds.length,o=0;o<n;++o){var a=this._batchIds[o];this._batchIdLookUp[a]=o}}function I(e,t){if(!n(e._va)){var r=c.createVertexBuffer({context:t,typedArray:e._positions,usage:d.STATIC_DRAW}),o=c.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:d.STATIC_DRAW}),a=c.createIndexBuffer({context:t,typedArray:e._indices,usage:d.DYNAMIC_DRAW,indexDatatype:2===e._indices.BYTES_PER_ELEMENT?s.UNSIGNED_SHORT:s.UNSIGNED_INT}),l=[{index:0,vertexBuffer:r,componentDatatype:i.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:o,componentDatatype:i.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new g({context:t,attributes:l,indexBuffer:a}),t.webgl2&&(e._vaSwap=new g({context:t,attributes:l,indexBuffer:c.createIndexBuffer({context:t,sizeInBytes:a.sizeInBytes,usage:d.DYNAMIC_DRAW,indexDatatype:a.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._verticesPromise=void 0}}function M(e,t){if(!n(e._sp)){var i=e._batchTable,o=r(e._attributeLocations,Q),a=e._pickId,s=e._vertexShaderSource,l=e._fragmentShaderSource;if(n(s))return e._sp=m.fromCache({context:t,vertexShaderSource:s,fragmentShaderSource:l,attributeLocations:o}),e._spStencil=e._sp,l=_.replaceMain(l,"czm_non_pick_main"),l=l+"void main() \n{ \n czm_non_pick_main(); \n gl_FragColor = "+a+"; \n} \n",void(e._spPick=m.fromCache({context:t,vertexShaderSource:s,fragmentShaderSource:l,attributeLocations:o}));var u=i.getVertexShaderCallback(!1,"a_batchId",void 0)(y),c=i.getFragmentShaderCallback()(v,!1,void 0);a=i.getPickId();var d=new _({sources:[u]}),h=new _({defines:["VECTOR_TILE"],sources:[c]});e._sp=m.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:h,attributeLocations:o}),d=new _({sources:[y]}),h=new _({defines:["VECTOR_TILE"],sources:[v]}),e._spStencil=m.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:h,attributeLocations:o}),c=_.replaceMain(c,"czm_non_pick_main"),c=c+"\nvoid main() \n{ \n czm_non_pick_main(); \n gl_FragColor = "+a+"; \n} \n";var p=new _({sources:[u]}),f=new _({defines:["VECTOR_TILE"],sources:[c]});e._spPick=m.fromCache({context:t,vertexShaderSource:p,fragmentShaderSource:f,attributeLocations:o})}}function R(e){var t=e?w.EQUAL:w.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:x.KEEP,zFail:x.DECREMENT_WRAP,zPass:x.DECREMENT_WRAP},backFunction:t,backOperation:{fail:x.KEEP,zFail:x.INCREMENT_WRAP,zPass:x.INCREMENT_WRAP},reference:A.CESIUM_3D_TILE_MASK,mask:A.CESIUM_3D_TILE_MASK},stencilMask:A.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1}}function O(e){var t=e?w.EQUAL:w.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.INCREMENT_WRAP},backFunction:t,backOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.DECREMENT_WRAP},reference:A.CESIUM_3D_TILE_MASK,mask:A.CESIUM_3D_TILE_MASK},stencilMask:A.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:T.LESS_OR_EQUAL},depthMask:!1}}function L(e){n(e._rsStencilPreloadPass)||(e._rsStencilPreloadPass=f.fromCache(R(!1)),e._rsStencilPreloadPass3DTiles=f.fromCache(R(!0)),e._rsStencilDepthPass=f.fromCache(O(!1)),e._rsStencilDepthPass3DTiles=f.fromCache(O(!0)),e._rsColorPass=f.fromCache(K),e._rsPickPass=f.fromCache(Z))}function N(e,t){if(!n(e._uniformMap)){var i={u_modifiedModelViewProjection:function(){var i=t.uniformState.view,r=t.uniformState.projection;return l.clone(i,J),l.multiplyByPoint(J,e._center,$),l.setTranslation(J,$,J),l.multiply(r,J,J),J},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(i)}}function F(e,t,i,r,n,o,a){for(var s=e.constructor.BYTES_PER_ELEMENT,l=o.length,u=0;u<l;++u){var c=o[u],d=a[c],h=r[d],p=n[d],f=new e.constructor(e.buffer,s*h,p);t.set(f,i),r[d]=i,i+=p}return i}function B(e,i){var r=e._indices,n=e._indexOffsets,o=e._indexCounts,a=e._batchIdLookUp,s=new r.constructor(r.length),l=i.pop(),u=[l],c=F(r,s,0,n,o,l.batchIds,a);for(l.offset=0,l.count=c;i.length>0;){var d=i.pop();if(t.equals(d.color,l.color))c=F(r,s,c,n,o,d.batchIds,a),l.batchIds=l.batchIds.concat(d.batchIds),l.count=c-l.offset;else{var h=c;c=F(r,s,c,n,o,d.batchIds,a),d.offset=h,d.count=c-h,u.push(d),l=d}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=u}function z(e,t,i,r,n,o,a){for(var s=e.bytesPerIndex,l=o.length,u=0;u<l;++u){var c=o[u],d=a[c],h=r[d],p=n[d];t.copyFromBuffer(e,h*s,i*s,p*s),r[d]=i,i+=p}return i}function k(e,i){var r=e._indexOffsets,n=e._indexCounts,o=e._batchIdLookUp,a=i.pop(),s=[a],l=e._va.indexBuffer,u=e._vaSwap.indexBuffer,c=z(l,u,0,r,n,a.batchIds,o);for(a.offset=0,a.count=c;i.length>0;){var d=i.pop();if(t.equals(d.color,a.color))c=z(l,u,c,r,n,d.batchIds,o),a.batchIds=a.batchIds.concat(d.batchIds),a.count=c-a.offset;else{var h=c;c=z(l,u,c,r,n,d.batchIds,o),d.offset=h,d.count=c-h,s.push(d),a=d}}var p=e._va;e._va=e._vaSwap,e._vaSwap=p,e._batchedIndices=s}function V(e,t){return t.color.toRgba()-e.color.toRgba()}function U(e,t){if(!e._batchDirty)return!1;for(var i=e._batchedIndices,r=i.length,o=!1,a={},s=0;s<r;++s){var l=i[s].color,u=l.toRgba();if(n(a[u])){o=!0;break}a[u]=!0}return o?o&&!e.forceRebatch&&e._framesSinceLastRebatch<120?void++e._framesSinceLastRebatch:(i.sort(V),t.webgl2?k(e,i):B(e,i),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0):(e._batchDirty=!1,!1)}function G(e,t){var i=U(e,t),o=e._commands,a=e._batchedIndices,s=a.length,u=3*s;if(!n(o)||i||o.length!==u){o.length=u;for(var c=e._va,d=e._sp,f=r(e._modelMatrix,l.IDENTITY),m=e._uniformMap,_=e._boundingVolume,g=0;g<s;++g){var v=a[g].offset,y=a[g].count,C=o[3*g];n(C)||(C=o[3*g]=new h({owner:e})),C.vertexArray=c,C.modelMatrix=f,C.offset=v,C.count=y,C.renderState=e._rsStencilPreloadPass,C.shaderProgram=d,C.uniformMap=m,C.boundingVolume=_,C.cull=!1,C.pass=p.TERRAIN_CLASSIFICATION;var b=h.shallowClone(C,C.derivedCommands.tileset);b.renderState=e._rsStencilPreloadPass3DTiles,b.pass=p.CESIUM_3D_TILE_CLASSIFICATION,C.derivedCommands.tileset=b;var S=o[3*g+1];n(S)||(S=o[3*g+1]=new h({owner:e})),S.vertexArray=c,S.modelMatrix=f,S.offset=v,S.count=y,S.renderState=e._rsStencilDepthPass,S.shaderProgram=d,S.uniformMap=m,S.boundingVolume=_,S.cull=!1,S.pass=p.TERRAIN_CLASSIFICATION;var T=h.shallowClone(S,S.derivedCommands.tileset);T.renderState=e._rsStencilDepthPass3DTiles,T.pass=p.CESIUM_3D_TILE_CLASSIFICATION,S.derivedCommands.tileset=T;var E=o[3*g+2];n(E)||(E=o[3*g+2]=new h({owner:e})),E.vertexArray=c,E.modelMatrix=f,E.offset=v,E.count=y,E.renderState=e._rsColorPass,E.shaderProgram=d,E.uniformMap=m,E.boundingVolume=_,E.cull=!1,E.pass=p.TERRAIN_CLASSIFICATION;var A=h.shallowClone(E,E.derivedCommands.tileset);A.pass=p.CESIUM_3D_TILE_CLASSIFICATION,E.derivedCommands.tileset=A}e._commandsDirty=!0}}function H(e,t){if(e.classificationType!==S.TERRAIN&&t.invertClassification&&(!n(e._commandsIgnoreShow)||e._commandsDirty)){for(var i=e._commands,r=e._commandsIgnoreShow,o=e._spStencil,a=i.length,s=r.length=a/3*2,l=0,u=0;u<s;u+=2){var c=r[u]=h.shallowClone(i[l],r[u]);c.shaderProgram=o,c.pass=p.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,c=r[u+1]=h.shallowClone(i[l+1],r[u+1]),c.shaderProgram=o,c.pass=p.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,l+=3}e._commandsDirty=!1}}function W(e){if(e._pickCommandsDirty){var t=e._indexOffsets.length,i=e._pickCommands;i.length=3*t;for(var o=e._va,a=e._spStencil,s=e._spPick,u=r(e._modelMatrix,l.IDENTITY),c=e._uniformMap,d=0;d<t;++d){var f=e._indexOffsets[d],m=e._indexCounts[d],_=n(e._boundingVolumes)?e._boundingVolumes[d]:e.boundingVolume,g=i[3*d];n(g)||(g=i[3*d]=new h({owner:e,pickOnly:!0})),g.vertexArray=o,g.modelMatrix=u,g.offset=f,g.count=m,g.renderState=e._rsStencilPreloadPass,g.shaderProgram=a,g.uniformMap=c,g.boundingVolume=_,g.pass=p.TERRAIN_CLASSIFICATION;var v=h.shallowClone(g,g.derivedCommands.tileset);v.renderState=e._rsStencilPreloadPass3DTiles,v.pass=p.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=v;var y=i[3*d+1];n(y)||(y=i[3*d+1]=new h({owner:e,pickOnly:!0})),y.vertexArray=o,y.modelMatrix=u,y.offset=f,y.count=m,y.renderState=e._rsStencilDepthPass,y.shaderProgram=a,y.uniformMap=c,y.boundingVolume=_,y.pass=p.TERRAIN_CLASSIFICATION;var C=h.shallowClone(y,y.derivedCommands.tileset);C.renderState=e._rsStencilDepthPass3DTiles,C.pass=p.CESIUM_3D_TILE_CLASSIFICATION,y.derivedCommands.tileset=C;var b=i[3*d+2];n(b)||(b=i[3*d+2]=new h({owner:e,pickOnly:!0})),b.vertexArray=o,b.modelMatrix=u,b.offset=f,b.count=m,b.renderState=e._rsPickPass,b.shaderProgram=s,b.uniformMap=c,b.boundingVolume=_,b.pass=p.TERRAIN_CLASSIFICATION;var S=h.shallowClone(b,b.derivedCommands.tileset);S.pass=p.CESIUM_3D_TILE_CLASSIFICATION,b.derivedCommands.tileset=S}e._pickCommandsDirty=!1}}function q(e,i){e._updatingAllCommands=!0;var r,n=e._batchIds,o=n.length;for(r=0;r<o;++r){var a=n[r],s=i[a];s.show=!0,s.color=t.WHITE}var l=e._batchedIndices;for(o=l.length,r=0;r<o;++r)l[r].color=t.clone(t.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}function Y(e,t,i,r){var o,a,s=e.classificationType,l=s!==S.CESIUM_3D_TILE,u=s!==S.TERRAIN,c=t.commandList,d=i.length;for(a=0;a<d;++a)l&&(o=i[a],o.pass=p.TERRAIN_CLASSIFICATION,c.push(o)),u&&(o=i[a].derivedCommands.tileset,o.pass=p.CESIUM_3D_TILE_CLASSIFICATION,c.push(o));if(t.invertClassification&&n(r))for(d=r.length,a=0;a<d;++a)c.push(r[a])}function j(e,t){for(var i=e.commandList,r=t.length,n=0;n<r;n+=3){var o=t[n+2];o.pass=p.OPAQUE,i.push(o)}}function X(e){var t=e.debugWireframe===e._debugWireframe;if(!(t=t&&!(e.debugWireframe&&e._wireframeDirty))){n(e._rsWireframe)||(e._rsWireframe=f.fromCache({}));var i,r;e.debugWireframe?(i=e._rsWireframe,r=u.LINES):(i=e._rsColorPass,r=u.TRIANGLES);for(var o=e._commands,a=o.length,s=0;s<a;s+=3){var l=o[s+2];l.renderState=i,l.primitiveType=r}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}}o(D.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var Q={position:0,a_batchId:1},K={stencilTest:{enabled:!0,frontFunction:w.NOT_EQUAL,frontOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.DECREMENT_WRAP},backFunction:w.NOT_EQUAL,backOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.DECREMENT_WRAP},reference:0,mask:A.CLASSIFICATION_MASK},stencilMask:A.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:C.ALPHA_BLEND},Z={stencilTest:{enabled:!0,frontFunction:w.NOT_EQUAL,frontOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.DECREMENT_WRAP},backFunction:w.NOT_EQUAL,backOperation:{fail:x.KEEP,zFail:x.KEEP,zPass:x.DECREMENT_WRAP},reference:0,mask:A.CLASSIFICATION_MASK},stencilMask:A.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},J=new l,$=new e;D.prototype.createFeatures=function(e,t){for(var i=this._batchIds,r=i.length,n=0;n<r;++n){var o=i[n];t[o]=new b(e,o)}},D.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};var ee=new t,te=t.WHITE,ie=/\$/;return D.prototype.applyStyle=function(e,i){if(!n(e))return void q(this,i);var r=e.color,o=r instanceof E&&!ie.test(r.expression);this._updatingAllCommands=o;var a,s=this._batchIds,l=s.length;for(a=0;a<l;++a){var u=s[a],c=i[u];c.color=n(e.color)?e.color.evaluateColor(c,ee):te,c.show=!n(e.show)||e.show.evaluate(c)}if(o){var d=this._batchedIndices;for(l=d.length,a=0;a<l;++a)d[a].color=t.clone(t.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}},D.prototype.updateCommands=function(e,i){if(!this._updatingAllCommands){var r=this._batchIdLookUp,o=r[e];if(n(o)){var a,s=this._indexOffsets,l=this._indexCounts,u=s[o],c=l[o],d=this._batchedIndices,h=d.length;for(a=0;a<h;++a){var p=d[a].offset,f=d[a].count;if(u>=p&&u<p+f)break}d.push(new P({color:t.clone(i),offset:u,count:c,batchIds:[e]}));for(var m=[],_=[],g=d[a].batchIds,v=g.length,y=0;y<v;++y){var C=g[y];if(C!==e){s[r[C]]<u?m.push(C):_.push(C)}}0!==_.length&&d.push(new P({color:t.clone(d[a].color),offset:u+c,count:d[a].offset+d[a].count-(u+c),batchIds:_})),0!==m.length?(d[a].count=u-d[a].offset,d[a].batchIds=m):d.splice(a,1),this._batchDirty=!0}}},D.prototype.update=function(e){var t=e.context;I(this,t),M(this,t),L(this),N(this,t);var i=e.passes;i.render&&(G(this,t),H(this,e),X(this),this._debugWireframe?j(e,this._commands):Y(this,e,this._commands,this._commandsIgnoreShow)),i.pick&&(W(this),Y(this,e,this._pickCommands))},D.prototype.isDestroyed=function(){return!1},D.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),a(this)},D}),define("Scene/ClassificationModel",["../Core/arraySlice","../Core/BoundingSphere","../Core/Cartesian3","../Core/Cartesian4","../Core/Color","../Core/combine","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/IndexDatatype","../Core/Matrix4","../Core/PrimitiveType","../Core/RuntimeError","../Core/Transforms","../Core/WebGLConstants","../ThirdParty/GltfPipeline/addDefaults","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/GltfPipeline/getAccessorByteStride","../ThirdParty/GltfPipeline/numberOfComponentsForType","../ThirdParty/GltfPipeline/parseGlb","../ThirdParty/GltfPipeline/updateVersion","../ThirdParty/when","./Axis","./ClassificationType","./ModelLoadResources","./ModelUtility","./processModelMaterialsCommon","./processPbrMaterials","./SceneMode","./Vector3DTileBatch","./Vector3DTilePrimitive"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L){"use strict";function N(e){e=s(e,s.EMPTY_OBJECT);var i=e.gltf;if(i instanceof ArrayBuffer&&(i=new Uint8Array(i)),!(i instanceof Uint8Array))throw new _("Only binary glTF is supported as a classifier.");i=T(i),E(i),y(i),I(i),M(i),C.buffer(i,function(e){if(!l(e.extras._pipeline.source))throw new _("Buffer data must be embedded in the binary gltf.")});var r=i.nodes,n=i.meshes,o=r[0],a=o.mesh;if(1!==r.length||!l(a))throw new _("Only one node is supported for classification and it must have a mesh.");if(1!==n.length)throw new _("Only one mesh is supported when using b3dm for classification.");var u=n[0].primitives;if(1!==u.length)throw new _("Only one primitive per mesh is supported when using b3dm for classification.");var c=u[0].attributes.POSITION;if(!l(c))throw new _("The mesh must have a position attribute.");var d=u[0].attributes._BATCHID;if(!l(d))throw new _("The mesh must have a batch id attribute.");this._gltf=i,this.show=s(e.show,!0),this.modelMatrix=f.clone(s(e.modelMatrix,f.IDENTITY)),this._modelMatrix=f.clone(this.modelMatrix),this._ready=!1,this._readyPromise=A.defer(),this.debugShowBoundingVolume=s(e.debugShowBoundingVolume,!1),this._debugShowBoundingVolume=!1,this.debugWireframe=s(e.debugWireframe,!1),this._debugWireframe=!1,this._classificationType=e.classificationType,this._vertexShaderLoaded=e.vertexShaderLoaded,this._classificationShaderLoaded=e.classificationShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._pickIdLoaded=e.pickIdLoaded,this._ignoreCommands=s(e.ignoreCommands,!1),this._upAxis=s(e.upAxis,w.Y),this._batchTable=e.batchTable,this._computedModelMatrix=new f,this._initialRadius=void 0,this._boundingSphere=void 0,this._scaledBoundingSphere=new t,this._state=ee.NEEDS_LOAD,this._loadResources=void 0,this._mode=void 0,this._dirty=!1,this._nodeMatrix=new f,this._primitive=void 0,this._extensionsUsed=void 0,this._extensionsRequired=void 0,this._quantizedUniforms=void 0,this._buffers={},this._vertexArray=void 0,this._shaderProgram=void 0,this._uniformMap=void 0,this._geometryByteLength=0,this._trianglesLength=0,this._rtcCenter=void 0,this._rtcCenterEye=void 0,this._rtcCenter3D=void 0,this._rtcCenter2D=void 0}function F(e){var t=e.gltf,i=e._loadResources;C.buffer(t,function(e,t){i.buffers[t]=e.extras._pipeline.source})}function B(e){var t=e.gltf.bufferViews,i=e._loadResources.vertexBuffersToCreate;C.bufferView(e.gltf,function(e,t){e.target===v.ARRAY_BUFFER&&i.enqueue(t)});var r=e._loadResources.indexBuffersToCreate,n={};C.accessor(e.gltf,function(e){var i=e.bufferView;t[i].target!==v.ELEMENT_ARRAY_BUFFER||l(n[i])||(n[i]=!0,r.enqueue({id:i,componentType:e.componentType}))})}function z(e,t){var i=t._loadResources,r=t.gltf.bufferViews,n=r[e],o=i.getBuffer(n);t._buffers[e]=o,t._geometryByteLength+=o.byteLength}function k(e,t,i){var r=i._loadResources,n=i.gltf.bufferViews,o=n[e],a={typedArray:r.getBuffer(o),indexDatatype:t};i._buffers[e]=a,i._geometryByteLength+=a.typedArray.byteLength}function V(e){var t=e._loadResources;if(0===t.pendingBufferLoads){for(var i=t.vertexBuffersToCreate,r=t.indexBuffersToCreate;i.length>0;)z(i.dequeue(),e);for(;r.length>0;){var n=r.dequeue();k(n.id,n.componentType,e)}}}function U(e,t){var i=t.gltf.meshes[0].primitives[0],r=D.modifyShaderForQuantizedAttributes(t.gltf,i,e);return t._quantizedUniforms=r.uniforms,r.shader}function G(e,t){return l(t)&&(e=t(e)),e}function H(e){var t=e.gltf,i=D.getAttributeOrUniformBySemantic(t,"POSITION"),r=D.getAttributeOrUniformBySemantic(t,"_BATCHID"),n={};n[i]=0,n[r]=1;var o,a,s=D.getAttributeOrUniformBySemantic(t,"MODELVIEWPROJECTION");if(l(s))o="uniform mat4 "+s+";\n",a=s+" * vec4("+i+", 1.0)";else{var u=D.getAttributeOrUniformBySemantic(t,"PROJECTION"),c=D.getAttributeOrUniformBySemantic(t,"MODELVIEW");l(c)||(c=D.getAttributeOrUniformBySemantic(t,"CESIUM_RTC_MODELVIEW")),o="uniform mat4 "+c+";\nuniform mat4 "+u+";\n",a=u+" * "+c+" * vec4("+i+", 1.0)"}var d=" vec4 positionInClipCoords = "+a+";\n",h="attribute vec3 "+i+";\nattribute float "+r+";\n"+o+"void main() {\n"+d+" gl_Position = czm_depthClampFarPlane(positionInClipCoords);\n}\n";e.extensionsUsed.WEB3D_quantized_attributes&&(h=U(h,e));var p=G(h,e._vertexShaderLoaded),f=G("#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\nvoid main() \n{ \n gl_FragColor = vec4(1.0); \n czm_writeDepthClampedToFarPlane();\n}\n",e._classificationShaderLoaded);p=D.modifyVertexShaderForLogDepth(p,a),f=D.modifyFragmentShaderForLogDepth(f),e._shaderProgram={vertexShaderSource:p,fragmentShaderSource:f,attributeLocations:n}}function W(){return{POSITION:0,_BATCHID:1}}function q(e){if(e._loadResources.finishedBuffersCreation()&&!l(e._vertexArray)){var t=e._buffers,i=e.gltf,r=i.accessors,n=i.meshes,o=n[0].primitives,a=o[0],s=W(),u={};C.meshPrimitiveAttribute(a,function(e,n){var o=s[n];if(l(o)){var a=r[e];u[n]={index:o,vertexBuffer:t[a.bufferView],componentsPerAttribute:S(a.type),componentDatatype:a.componentType,offsetInBytes:a.byteOffset,strideInBytes:b(i,a)}}});var c;if(l(a.indices)){var d=r[a.indices];c=t[d.bufferView]}e._vertexArray={attributes:u,indexBuffer:c}}}function Y(e,t){if(!l(e._uniformMap)){var i={};C.technique(e.gltf,function(r){C.techniqueUniform(r,function(r,n){l(r.semantic)&&l(te[r.semantic])&&(i[n]=te[r.semantic](t.uniformState,e))})}),e._uniformMap=i}}function j(e,t){return D.createUniformsForQuantizedAttributes(e.gltf,t,e._quantizedUniforms)}function X(e,t){switch(e.mode){case m.TRIANGLES:return t/3;case m.TRIANGLE_STRIP:case m.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function Q(r){var s,u,c=r._batchTable,d=r._uniformMap,h=r._vertexArray,m=r.gltf,_=m.accessors,g=m.meshes,v=g[0].primitives[0],y=_[v.indices],C=v.attributes.POSITION,b=D.getAccessorMinMax(m,C),S=t.fromCornerPoints(i.fromArray(b.min),i.fromArray(b.max));if(l(y))u=y.count,s=y.byteOffset/p.getSizeInBytes(y.componentType);else{u=_[v.attributes.POSITION].count,s=0}if(r._trianglesLength+=X(v,u),l(r._uniformMapLoaded)&&(d=r._uniformMapLoaded(d)),r.extensionsUsed.WEB3D_quantized_attributes){var T=j(r,v);d=o(d,T)}var E=h.attributes.POSITION,A=E.componentDatatype,w=E.vertexBuffer,x=w.byteOffset,P=w.byteLength/a.getSizeInBytes(A),I=a.createArrayBufferView(A,w.buffer,x,P);E=h.attributes._BATCHID,A=E.componentDatatype,w=E.vertexBuffer,x=w.byteOffset,P=w.byteLength/a.getSizeInBytes(A);var M,R=a.createArrayBufferView(A,w.buffer,x,P),N=h.indexBuffer.typedArray;M=h.indexBuffer.indexDatatype===p.UNSIGNED_SHORT?new Uint16Array(N.buffer,N.byteOffset,N.byteLength/Uint16Array.BYTES_PER_ELEMENT):new Uint32Array(N.buffer,N.byteOffset,N.byteLength/Uint32Array.BYTES_PER_ELEMENT),I=e(I),R=e(R),M=e(M,s,s+u);var F=[],B=[],z=[],k=[],V=R[M[0]];F.push(V),z.push(0);for(var U,G,H,W=M.length,q=1;q<W;++q)(U=R[M[q]])!==V&&(G=z[z.length-1],H=q-G,F.push(U),B.push(H),z.push(q),k.push(new O({offset:G,count:H,batchIds:[V],color:n.WHITE})),V=U);G=z[z.length-1],H=W-G,B.push(H),k.push(new O({offset:G,count:H,batchIds:[V],color:n.WHITE}));var Y=r._shaderProgram,Q=Y.vertexShaderSource,K=Y.fragmentShaderSource,Z=Y.attributeLocations,J=l(r._pickIdLoaded)?r._pickIdLoaded():void 0;r._primitive=new L({classificationType:r._classificationType,positions:I,indices:M,indexOffsets:z,indexCounts:B,batchIds:F,vertexBatchIds:R,batchedIndices:k,batchTable:c,boundingVolume:new t,_vertexShaderSource:Q,_fragmentShaderSource:K,_attributeLocations:Z,_uniformMap:d,_pickId:J,_modelMatrix:new f,_boundingSphere:S}),r._buffers=void 0,r._vertexArray=void 0,r._shaderProgram=void 0,r._uniformMap=void 0}function K(e){if(e._loadResources.finished()&&!l(e._primitive)){var t=e.gltf,i=t.nodes,r=i[0];e._nodeMatrix=D.getTransform(r,e._nodeMatrix),Q(e)}}function Z(e,t){var i=t.context;D.checkSupportedGlExtensions(e.gltf.glExtensionsUsed,i),V(e),H(e),q(e),Y(e,i),K(e)}function J(e,n,o,a){var s=e._computedModelMatrix;if(e._mode!==R.SCENE3D&&!e._ignoreCommands){var u=f.getColumn(s,3,ie);if(r.equals(u,r.UNIT_W)){var c=e.boundingSphere.center,d=g.wgs84To2DModelMatrix(a,c,re);s=f.multiply(d,s,re),l(e._rtcCenter)&&(f.setTranslation(s,r.UNIT_W,s),e._rtcCenter=e._rtcCenter2D)}else s=g.basisTo2D(a,s,re),e._rtcCenter=e._rtcCenter3D}var h=e._primitive;(n||o)&&(f.multiplyTransformation(s,e._nodeMatrix,h._modelMatrix),t.transform(h._boundingSphere,h._modelMatrix,h._boundingVolume),l(e._rtcCenter)&&i.add(e._rtcCenter,h._boundingVolume.center,h._boundingVolume.center))}if(!h.supportsTypedArrays())return{};var $=new i,ee=D.ModelState;u(N.prototype,{gltf:{get:function(){return this._gltf}},boundingSphere:{get:function(){var e=this.modelMatrix,t=f.getScale(e,$),r=this._scaledBoundingSphere;return r.center=i.multiplyComponents(this._boundingSphere.center,t,r.center),r.radius=i.maximumComponent(t)*this._initialRadius,l(this._rtcCenter)&&i.add(this._rtcCenter,r.center,r.center),r}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},dirty:{get:function(){return this._dirty}},extensionsUsed:{get:function(){return l(this._extensionsUsed)||(this._extensionsUsed=D.getUsedExtensions(this.gltf)),this._extensionsUsed}},extensionsRequired:{ -get:function(){return l(this._extensionsRequired)||(this._extensionsRequired=D.getRequiredExtensions(this.gltf)),this._extensionsRequired}},upAxis:{get:function(){return this._upAxis}},trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},texturesByteLength:{get:function(){return 0}},classificationType:{get:function(){return this._classificationType}}});var te={PROJECTION:function(e,t){return D.getGltfSemanticUniforms().PROJECTION(e,t)},MODELVIEW:function(e,t){return D.getGltfSemanticUniforms().MODELVIEW(e,t)},CESIUM_RTC_MODELVIEW:function(e,t){return D.getGltfSemanticUniforms().CESIUM_RTC_MODELVIEW(e,t)},MODELVIEWPROJECTION:function(e,t){return D.getGltfSemanticUniforms().MODELVIEWPROJECTION(e,t)}},ie=new r,re=new f;return N.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)},N.prototype.update=function(e){if(e.mode!==R.MORPHING){if(!h.supportsWebP.initialized)return void h.supportsWebP.initialize();var t=h.supportsWebP();if(this._state===ee.NEEDS_LOAD&&l(this.gltf)&&(this._state=ee.LOADING,this._state!==ee.FAILED)){var r=this.gltf.extensions;if(l(r)&&l(r.CESIUM_RTC)){var n=i.fromArray(r.CESIUM_RTC.center);if(!i.equals(n,i.ZERO)){this._rtcCenter3D=n;var o=e.mapProjection,a=o.ellipsoid,s=a.cartesianToCartographic(this._rtcCenter3D),u=o.project(s);i.fromElements(u.z,u.x,u.y,u),this._rtcCenter2D=u,this._rtcCenterEye=new i,this._rtcCenter=this._rtcCenter3D}}this._loadResources=new P,D.parseBuffers(this)}var c=this._loadResources,d=!1;this._state===ee.LOADING&&(0===c.pendingBufferLoads&&(D.checkSupportedExtensions(this.extensionsRequired,t),F(this),B(this),this._boundingSphere=D.computeBoundingSphere(this),this._initialRadius=this._boundingSphere.radius,Z(this,e)),c.finished()&&(this._state=ee.LOADED,d=!0)),l(c)&&this._state===ee.LOADED&&(d||Z(this,e),c.finished()&&(this._loadResources=void 0));var p=this.show;if(p&&this._state===ee.LOADED||d){this._dirty=!1;var m=this.modelMatrix,_=e.mode!==this._mode;this._mode=e.mode;var g=!f.equals(this._modelMatrix,m)||_;if(g||d){f.clone(m,this._modelMatrix);var v=this._computedModelMatrix;f.clone(m,v),this._upAxis===w.Y?f.multiplyTransformation(v,w.Y_UP_TO_Z_UP,v):this._upAxis===w.X&&f.multiplyTransformation(v,w.X_UP_TO_Z_UP,v)}(g||d)&&(J(this,g,d,e.mapProjection),this._dirty=!0)}if(d){var y=this;return void e.afterRender.push(function(){y._ready=!0,y._readyPromise.resolve(y)})}p&&!this._ignoreCommands&&(this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.debugWireframe=this.debugWireframe,this._primitive.update(e))}},N.prototype.isDestroyed=function(){return!1},N.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),c(this)},N}),define("Scene/Batched3DModel3DTileContent",["../Core/Cartesian3","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/getStringFromTypedArray","../Core/Matrix4","../Core/RequestType","../Core/RuntimeError","../Core/Transforms","../Renderer/Pass","./Axis","./Cesium3DTileBatchTable","./Cesium3DTileFeature","./Cesium3DTileFeatureTable","./ClassificationModel","./Model","./ModelUtility"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._model=void 0,this._batchTable=void 0,this._features=void 0,this._batchIdAttributeName=void 0,this._diffuseAttributeOrUniformName={},this._rtcCenterTransform=void 0,this._contentModelMatrix=void 0,this.featurePropertiesDirty=!1,I(this,r,n)}function E(e){var t=S.getAttributeOrUniformBySemantic(e,"_BATCHID");return n(t)||(t=S.getAttributeOrUniformBySemantic(e,"BATCHID"),n(t)&&T._deprecationWarning("b3dm-legacy-batchid","The glTF in this b3dm uses the semantic `BATCHID`. Application-specific semantics should be prefixed with an underscore: `_BATCHID`.")),t}function A(e){return function(t,i){var r=e._batchTable,o=!n(e._tileset.classificationType),a=e._model.gltf;n(a)&&(e._batchIdAttributeName=E(a),e._diffuseAttributeOrUniformName[i]=S.getDiffuseAttributeOrUniform(a,i));var s=r.getVertexShaderCallback(o,e._batchIdAttributeName,e._diffuseAttributeOrUniformName[i]);return n(s)?s(t):t}}function w(e){return function(t,i){var r=e._batchTable,o=!n(e._tileset.classificationType),a=e._model.gltf;n(a)&&(e._diffuseAttributeOrUniformName[i]=S.getDiffuseAttributeOrUniform(a,i));var s=r.getFragmentShaderCallback(o,e._diffuseAttributeOrUniformName[i]);return n(s)?s(t):t}}function x(e){return function(){return e._batchTable.getPickId()}}function P(e){return function(t){var i=e._batchTable,r=i.getClassificationFragmentShaderCallback();return n(r)?r(t):t}}function D(e){return function(t,i){e._model.updateCommands(t,i)}}function I(t,o,a){var s=t._tileset,l=t._tile,u=t._resource,f=r(a,0);a=f;var v=new Uint8Array(o),S=new DataView(o);a+=R;var E=S.getUint32(a,!0);if(1!==E)throw new p("Only Batched 3D Model version 1 is supported. Version "+E+" is not.");a+=R;var I=S.getUint32(a,!0);a+=R;var M=S.getUint32(a,!0);a+=R;var O=S.getUint32(a,!0);a+=R;var L=S.getUint32(a,!0);a+=R;var N=S.getUint32(a,!0);a+=R;var F;L>=570425344?(a-=2*R,F=M,L=O,N=0,M=0,O=0,T._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel.")):N>=570425344&&(a-=R,F=L,L=M,N=O,M=0,O=0,T._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/AnalyticalGraphicsInc/3d-tiles/tree/master/specification/TileFormats/Batched3DModel."));var B;if(0===M)B={BATCH_LENGTH:r(F,0)};else{var z=c(v,a,M);B=JSON.parse(z),a+=M}var k=new Uint8Array(o,a,O);a+=O;var V=new y(B,k);F=V.getGlobalProperty("BATCH_LENGTH"),V.featuresLength=F;var U,G;if(L>0){var H=c(v,a,L);U=JSON.parse(H),a+=L,N>0&&(G=new Uint8Array(o,a,N),G=new Uint8Array(G),a+=N)}var W;n(s.classificationType)&&(W=D(t));var q=new g(t,F,U,G,W);t._batchTable=q;var Y=f+I-a;if(0===Y)throw new p("glTF byte length must be greater than 0.");var j;a%4==0?j=new Uint8Array(o,a,Y):(T._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),j=new Uint8Array(v.subarray(a,a+Y)));var X={content:t,primitive:s};t._rtcCenterTransform=d.IDENTITY;var Q=V.getGlobalProperty("RTC_CENTER",i.FLOAT,3);n(Q)&&(t._rtcCenterTransform=d.fromTranslation(e.fromArray(Q))),t._contentModelMatrix=d.multiply(l.computedTransform,t._rtcCenterTransform,new d),n(s.classificationType)?t._model=new C({gltf:j,cull:!1,basePath:u,requestType:h.TILES3D,modelMatrix:t._contentModelMatrix,upAxis:s._gltfUpAxis,forwardAxis:_.X,debugWireframe:s.debugWireframe,vertexShaderLoaded:A(t),classificationShaderLoaded:P(t),uniformMapLoaded:q.getUniformMapCallback(),pickIdLoaded:x(t),classificationType:s._classificationType,batchTable:q}):t._model=new b({gltf:j,cull:!1,releaseGltfJson:!0,opaquePass:m.CESIUM_3D_TILE,basePath:u,requestType:h.TILES3D,modelMatrix:t._contentModelMatrix,upAxis:s._gltfUpAxis,forwardAxis:_.X,shadows:s.shadows,debugWireframe:s.debugWireframe,incrementallyLoadTextures:!1,vertexShaderLoaded:A(t),fragmentShaderLoaded:w(t),uniformMapLoaded:q.getUniformMapCallback(),pickIdLoaded:x(t),addBatchIdToGeneratedShaders:F>0,pickObject:X,imageBasedLightingFactor:s.imageBasedLightingFactor,lightColor:s.lightColor,luminanceAtZenith:s.luminanceAtZenith,sphericalHarmonicCoefficients:s.sphericalHarmonicCoefficients,specularEnvironmentMaps:s.specularEnvironmentMaps})}function M(e){var t=e.featuresLength;if(!n(e._features)&&t>0){for(var i=new Array(t),r=0;r<t;++r)i[r]=new v(e,r);e._features=i}}if(!u.supportsTypedArrays())return{};T._deprecationWarning=a,o(T.prototype,{featuresLength:{get:function(){return this._batchTable.featuresLength}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return this._model.trianglesLength}},geometryByteLength:{get:function(){return this._model.geometryByteLength}},texturesByteLength:{get:function(){return this._model.texturesByteLength}},batchTableByteLength:{get:function(){return this._batchTable.memorySizeInBytes}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._model.readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){return this._batchTable}}});var R=Uint32Array.BYTES_PER_ELEMENT;T.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)},T.prototype.getFeature=function(e){return M(this),this._features[e]},T.prototype.applyDebugSettings=function(e,i){i=e?i:t.WHITE,0===this.featuresLength?this._model.color=i:this._batchTable.setAllColor(i)};var O=new t;return T.prototype.applyStyle=function(e){if(0===this.featuresLength){var i=n(e)&&n(e.color),r=n(e)&&n(e.show);this._model.color=i?e.color.evaluateColor(void 0,O):t.WHITE,this._model.show=!r||e.show.evaluate(void 0)}else this._batchTable.applyStyle(e)},T.prototype.update=function(e,t){var i=t.commandList.length;this._batchTable.update(e,t),this._contentModelMatrix=d.multiply(this._tile.computedTransform,this._rtcCenterTransform,this._contentModelMatrix),this._model.modelMatrix=this._contentModelMatrix,this._model.shadows=this._tileset.shadows,this._model.imageBasedLightingFactor=this._tileset.imageBasedLightingFactor,this._model.lightColor=this._tileset.lightColor,this._model.luminanceAtZenith=this._tileset.luminanceAtZenith,this._model.sphericalHarmonicCoefficients=this._tileset.sphericalHarmonicCoefficients,this._model.specularEnvironmentMaps=this._tileset.specularEnvironmentMaps,this._model.debugWireframe=this._tileset.debugWireframe;var r=this._tileset.clippingPlanes;this._model.clippingPlanesOriginMatrix=this._tileset.clippingPlanesOriginMatrix,n(r)&&this._tile.clippingPlanesDirty&&(this._model._clippingPlanes=r.enabled&&this._tile._isClipped?r:void 0),n(r)&&n(this._model._clippingPlanes)&&this._model._clippingPlanes!==r&&(this._model._clippingPlanes=r),this._model.update(t),i<t.commandList.length&&(t.passes.render||t.passes.pick)&&!n(e.classificationType)&&this._batchTable.addDerivedCommands(t,i)},T.prototype.isDestroyed=function(){return!1},T.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),s(this)},T}),define("Scene/BingMapsStyle",["../Core/freezeObject"],function(e){"use strict";return e({AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"})}),define("Scene/DiscardEmptyTileImagePolicy",["../Core/defined","../Core/defineProperties"],function(e,t){"use strict";function i(e){}i.prototype.isReady=function(){return!0},i.prototype.shouldDiscardImage=function(e){return i.EMPTY_IMAGE===e};var r;return t(i,{EMPTY_IMAGE:{get:function(){return e(r)||(r=new Image,r.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),r}}}),i}),define("Scene/BingMapsImageryProvider",["../Core/BingMapsApi","../Core/buildModuleUrl","../Core/Check","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/Math","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../Core/WebMercatorTilingScheme","../ThirdParty/when","./BingMapsStyle","./DiscardEmptyTileImagePolicy","./ImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(t){function i(e){if(1!==e.resourceSets.length)return void a();var t=e.resourceSets[0].resources[0];S._tileWidth=t.imageWidth,S._tileHeight=t.imageHeight,S._maximumLevel=t.zoomMax-1,S._imageUrlSubdomains=t.imageUrlSubdomains,S._imageUrlTemplate=t.imageUrl;var i=S._attributionList=t.imageryProviders;i||(i=S._attributionList=[]);for(var n=0,o=i.length;n<o;++n){var s=i[n];if(s.credit instanceof r)break;s.credit=new r(s.attribution);for(var l=s.coverageAreas,d=0,h=s.coverageAreas.length;d<h;++d){var f=l[d],m=f.bbox;f.bbox=new c(u.toRadians(m[1]),u.toRadians(m[0]),u.toRadians(m[3]),u.toRadians(m[2]))}}S._ready=!0,S._readyPromise.resolve(!0),p.handleSuccess(C)}function a(e){var t="An error occurred while accessing "+b.url+".";C=p.handleError(C,S,S._errorEvent,t,void 0,void 0,void 0,s),S._readyPromise.reject(new h(t))}function s(){var e=b.fetchJsonp("jsonp");y._metadataCache[T]=e,e.then(i).otherwise(a)}t=n(t,{}),this._key=e.getKey(t.key),this._resource=d.createIfNeeded(t.url),this._resource.appendForwardSlash(),this._tileProtocol=t.tileProtocol,this._mapStyle=n(t.mapStyle,_.AERIAL),this._culture=n(t.culture,""),this._tileDiscardPolicy=t.tileDiscardPolicy,o(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new g),this._proxy=t.proxy,this._credit=new r('<a href="http://www.bing.com"><img src="'+y.logoUrl+'" title="Bing Imagery"/></a>'),this.defaultGamma=1,this._tilingScheme=new f({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._errorEvent=new l,this._ready=!1,this._readyPromise=m.defer();var v=this._tileProtocol;if(o(v))v.length>0&&":"===v[v.length-1]&&(v=v.substr(0,v.length-1));else{v="http:"===document.location.protocol?"http":"https"}var C,b=this._resource.getDerivedResource({url:"REST/v1/Imagery/Metadata/"+this._mapStyle,queryParameters:{incl:"ImageryProviders",key:this._key,uriScheme:v}}),S=this,T=b.url,E=y._metadataCache[T];o(E)?E.then(i).otherwise(a):s()}function C(e,t,i,r,n){var o=e._imageUrlTemplate,a=e._imageUrlSubdomains,s=(t+i+r)%a.length;return e._resource.getDerivedResource({url:o,request:n,templateValues:{quadkey:y.tileXYToQuadKey(t,i,r),subdomain:a[s],culture:e._culture},queryParameters:{n:"z"}})}function b(e,t,i){++t;for(var r=[],n=0,a=e.length;n<a;++n){for(var s=e[n],l=s.coverageAreas,u=!1,d=0,h=s.coverageAreas.length;!u&&d<h;++d){var p=l[d];if(t>=p.zoomMin&&t<=p.zoomMax){var f=c.intersection(i,p.bbox,T);o(f)&&(u=!0)}}u&&r.push(s.credit)}return r}a(y.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});var S=new c;y.prototype.getTileCredits=function(e,t,i){var r=this._tilingScheme.tileXYToRectangle(e,t,i,S);return b(this._attributionList,i,r)},y.prototype.requestImage=function(e,t,i,r){var n=v.loadImage(this,C(this,e,t,i,r));if(o(n))return n.otherwise(function(e){return o(e.blob)&&0===e.blob.size?g.EMPTY_IMAGE:m.reject(e)})},y.prototype.pickFeatures=function(e,t,i,r,n){},y.tileXYToQuadKey=function(e,t,i){for(var r="",n=i;n>=0;--n){var o=1<<n,a=0;0!=(e&o)&&(a|=1),0!=(t&o)&&(a|=2),r+=a}return r},y.quadKeyToTileXY=function(e){for(var t=0,i=0,r=e.length-1,n=r;n>=0;--n){var o=1<<n,a=+e[r-n];0!=(1&a)&&(t|=o),0!=(2&a)&&(i|=o)}return{x:t,y:i,level:r}},y._logoUrl=void 0,a(y,{logoUrl:{get:function(){return o(y._logoUrl)||(y._logoUrl=t("Assets/Images/bing_maps_credit.png")),y._logoUrl},set:function(e){y._logoUrl=e}}});var T=new c;return y._metadataCache={},y}),define("Scene/BoxEmitter",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defineProperties","../Core/Math"],function(e,t,i,r,n){"use strict";function o(t){t=i(t,a),this._dimensions=e.clone(t)}var a=new e(1,1,1);r(o.prototype,{dimensions:{get:function(){return this._dimensions},set:function(t){e.clone(t,this._dimensions)}}});var s=new e;return o.prototype.emit=function(t){var i=this._dimensions,r=e.multiplyByScalar(i,.5,s),o=n.randomBetween(-r.x,r.x),a=n.randomBetween(-r.y,r.y),l=n.randomBetween(-r.z,r.z);t.position=e.fromElements(o,a,l,t.position),t.velocity=e.normalize(t.position,t.velocity)},o}),define("Shaders/BrdfLutGeneratorFS",[],function(){"use strict";return"varying vec2 v_textureCoordinates;\nconst float M_PI = 3.141592653589793;\nfloat vdcRadicalInverse(int i)\n{\nfloat r;\nfloat base = 2.0;\nfloat value = 0.0;\nfloat invBase = 1.0 / base;\nfloat invBi = invBase;\nfor (int x = 0; x < 100; x++)\n{\nif (i <= 0)\n{\nbreak;\n}\nr = mod(float(i), base);\nvalue += r * invBi;\ninvBi *= invBase;\ni = int(float(i) * invBase);\n}\nreturn value;\n}\nvec2 hammersley2D(int i, int N)\n{\nreturn vec2(float(i) / float(N), vdcRadicalInverse(i));\n}\nvec3 importanceSampleGGX(vec2 xi, float roughness, vec3 N)\n{\nfloat a = roughness * roughness;\nfloat phi = 2.0 * M_PI * xi.x;\nfloat cosTheta = sqrt((1.0 - xi.y) / (1.0 + (a * a - 1.0) * xi.y));\nfloat sinTheta = sqrt(1.0 - cosTheta * cosTheta);\nvec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta);\nvec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0);\nvec3 tangentX = normalize(cross(upVector, N));\nvec3 tangentY = cross(N, tangentX);\nreturn tangentX * H.x + tangentY * H.y + N * H.z;\n}\nfloat G1_Smith(float NdotV, float k)\n{\nreturn NdotV / (NdotV * (1.0 - k) + k);\n}\nfloat G_Smith(float roughness, float NdotV, float NdotL)\n{\nfloat k = roughness * roughness / 2.0;\nreturn G1_Smith(NdotV, k) * G1_Smith(NdotL, k);\n}\nvec2 integrateBrdf(float roughness, float NdotV)\n{\nvec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV);\nfloat A = 0.0;\nfloat B = 0.0;\nconst int NumSamples = 1024;\nfor (int i = 0; i < NumSamples; i++)\n{\nvec2 xi = hammersley2D(i, NumSamples);\nvec3 H = importanceSampleGGX(xi, roughness, vec3(0.0, 0.0, 1.0));\nvec3 L = 2.0 * dot(V, H) * H - V;\nfloat NdotL = clamp(L.z, 0.0, 1.0);\nfloat NdotH = clamp(H.z, 0.0, 1.0);\nfloat VdotH = clamp(dot(V, H), 0.0, 1.0);\nif (NdotL > 0.0)\n{\nfloat G = G_Smith(roughness, NdotV, NdotL);\nfloat G_Vis = G * VdotH / (NdotH * NdotV);\nfloat Fc = pow(1.0 - VdotH, 5.0);\nA += (1.0 - Fc) * G_Vis;\nB += Fc * G_Vis;\n}\n}\nreturn vec2(A, B) / float(NumSamples);\n}\nvoid main()\n{\ngl_FragColor = vec4(integrateBrdf(1.0 - v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0);\n}\n"}),define("Scene/BrdfLutGenerator",["../Core/BoundingRectangle","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/PixelFormat","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Shaders/BrdfLutGeneratorFS"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(){this._framebuffer=void 0,this._colorTexture=void 0,this._drawCommand=void 0}function m(t,i){var r=t._framebuffer,n=i.createViewportQuadCommand(p,{framebuffer:r,renderState:s.fromCache({viewport:new e(0,0,256,256)})});t._drawCommand=n}function _(e,t){var i=new u({context:t,width:256,height:256,pixelFormat:n.RGBA,pixelDatatype:a.UNSIGNED_BYTE,sampler:new l({wrapS:h.CLAMP_TO_EDGE,wrapT:h.CLAMP_TO_EDGE,minificationFilter:d.NEAREST,magnificationFilter:c.NEAREST})});e._colorTexture=i;var r=new o({context:t,colorTextures:[i],destroyAttachments:!1});e._framebuffer=r}return i(f.prototype,{colorTexture:{get:function(){return this._colorTexture}}}),f.prototype.update=function(e){if(!t(this._colorTexture)){var i=e.context;_(this,i),m(this,i),this._drawCommand.execute(i),this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}},f.prototype.isDestroyed=function(){return!1},f.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),r(this)},f}),define("Scene/CameraFlightPath",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/EasingFunction","../Core/Math","../Core/PerspectiveFrustum","../Core/PerspectiveOffCenterFrustum","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t,i){var r,n,o;if(e instanceof l){var a=Math.tan(.5*e.fovy);return r=e.near,n=e.near*a,o=e.aspectRatio*n,Math.max(t*r/o,i*r/n)}return e instanceof u?(r=e.near,n=e.top,o=e.right,Math.max(t*r/o,i*r/n)):Math.max(t,i)}function h(e,t,i,r){if(n(r)&&i(.5)>r){var o=i(0),a=i(1),l=i(.5),u=l-o,c=l-a;return function(r){var n=i(r);if(r<=.5){var l=(n-o)/u;return s.lerp(e,-s.PI_OVER_TWO,l)}var d=(n-a)/c;return s.lerp(-s.PI_OVER_TWO,t,1-d)}}return function(i){return s.lerp(e,t,i)}}function p(e,i,r,o,a){var l=a,u=Math.max(r,o);if(!n(l)){var c=e.position,h=i,p=e.up,f=e.right,m=e.frustum,_=t.subtract(c,h,T),g=t.magnitude(t.multiplyByScalar(p,t.dot(_,p),E)),v=t.magnitude(t.multiplyByScalar(f,t.dot(_,f),E));l=Math.min(.2*d(m,g,v),1e9)}if(u<l){var y=-Math.pow(1e6*(l-r),1/8),C=Math.pow(1e6*(l-o),1/8);return function(e){var t=e*(C-y)+y;return-Math.pow(t,8)/1e6+l}}return function(e){return s.lerp(r,o,e)}}function f(e,t){return s.equalsEpsilon(e,s.TWO_PI,s.EPSILON11)&&(e=0),t>e+Math.PI?e+=s.TWO_PI:t<e-Math.PI&&(e-=s.TWO_PI),e}function m(i,r,n,o,a,l,u){function c(t){var i=t.time/r;d.setView({orientation:{heading:s.lerp(_,o,i),pitch:s.lerp(m,a,i),roll:s.lerp(g,l,i)}}),e.lerp(h,n,i,d.position),d.position.z=v(i)}var d=i.camera,h=t.clone(d.position,A),m=d.pitch,_=f(d.heading,o),g=f(d.roll,l),v=p(d,n,h.z,n.z,u);return c}function _(e,t){e.longitude<t.longitude?e.longitude+=s.TWO_PI:t.longitude+=s.TWO_PI}function g(e,t){var i=e.longitude-t.longitude;i<-s.PI?e.longitude+=s.TWO_PI:i>s.PI&&(t.longitude+=s.TWO_PI)}function v(e,r,o,a,l,u,c,d,m,v){var y=e.camera,C=e.mapProjection,b=C.ellipsoid,S=i.clone(y.positionCartographic,w),T=y.pitch,E=f(y.heading,a),A=f(y.roll,u),P=b.cartesianToCartographic(o,x);S.longitude=s.zeroToTwoPi(S.longitude),P.longitude=s.zeroToTwoPi(P.longitude);var D=!1;if(n(d)){var I=s.zeroToTwoPi(d),M=Math.min(S.longitude,P.longitude),R=Math.max(S.longitude,P.longitude),O=I>=M&&I<=R;if(n(m)){var L=Math.abs(S.longitude-P.longitude),N=s.TWO_PI-L;(O?L:N)<(O?N:L)*m&&!O&&(D=!0)}else O||(D=!0)}D?_(S,P):g(S,P);var F=p(y,o,S.height,P.height,c),B=h(T,l,F,v);return function(){var e=S.longitude,i=P.longitude,n=S.latitude,o=P.latitude;return function(l){var c=l.time/r,d=t.fromRadians(s.lerp(e,i,c),s.lerp(n,o,c),F(c));y.setView({destination:d,orientation:{heading:s.lerp(E,a,c),pitch:B(c),roll:s.lerp(A,u,c)}})}}()}function y(i,r,n,o,a,l,u){function c(t){var i=t.time/r;d.setView({orientation:{heading:s.lerp(m,o,i)}}),e.lerp(h,n,i,d.position);var a=g(i),l=d.frustum,u=l.top/l.right,c=.5*(a-(l.right-l.left));l.right+=c,l.left-=c,l.top=u*l.right,l.bottom=-l.top}var d=i.camera,h=t.clone(d.position,A),m=f(d.heading,o),_=d.frustum.right-d.frustum.left,g=p(d,n,_,n.z,u);return c}function C(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function b(e,t){function i(){"function"==typeof t&&t(),e.enableInputs=!0}return i}var S={},T=new t,E=new t,A=new t,w=new i,x=new i,P=new i,D=new t;return S.createTween=function(i,o){o=r(o,r.EMPTY_OBJECT);var l=o.destination,u=i.mode;if(u===c.MORPHING)return C();var d=r(o.convert,!0),h=i.mapProjection,p=h.ellipsoid,f=o.maximumHeight,_=o.flyOverLongitude,g=o.flyOverLongitudeWeight,S=o.pitchAdjustHeight,T=o.easingFunction;d&&u!==c.SCENE3D&&(p.cartesianToCartographic(l,P),l=h.project(P,D));var E=i.camera,A=o.endTransform;n(A)&&E._setTransform(A);var w=o.duration;n(w)||(w=Math.ceil(t.distance(E.position,l)/1e6)+2,w=Math.min(w,3));var x=r(o.heading,0),I=r(o.pitch,-s.PI_OVER_TWO),M=r(o.roll,0),R=i.screenSpaceCameraController;R.enableInputs=!1;var O=b(R,o.complete),L=b(R,o.cancel),N=E.frustum,F=i.mode===c.SCENE2D;if(F=F&&e.equalsEpsilon(E.position,l,s.EPSILON6),F=F&&s.equalsEpsilon(Math.max(N.right-N.left,N.top-N.bottom),l.z,s.EPSILON6),F=F||i.mode!==c.SCENE2D&&t.equalsEpsilon(l,E.position,s.EPSILON10),F=F&&s.equalsEpsilon(s.negativePiToPi(x),s.negativePiToPi(E.heading),s.EPSILON10)&&s.equalsEpsilon(s.negativePiToPi(I),s.negativePiToPi(E.pitch),s.EPSILON10)&&s.equalsEpsilon(s.negativePiToPi(M),s.negativePiToPi(E.roll),s.EPSILON10))return C(O,L);var B=new Array(4);if(B[c.SCENE2D]=y,B[c.SCENE3D]=v,B[c.COLUMBUS_VIEW]=m,w<=0){return C(function(){B[u](i,1,l,x,I,M,f,_,g,S)({time:1}),"function"==typeof O&&O()},L)}var z=B[u](i,w,l,x,I,M,f,_,g,S);if(!n(T)){var k=E.positionCartographic.height;T=k>(u===c.SCENE3D?p.cartesianToCartographic(l).height:l.z)&&k>11500?a.CUBIC_OUT:a.QUINTIC_IN_OUT}return{duration:w,easingFunction:T,startObject:{time:0},stopObject:{time:w},update:z,complete:O,cancel:L}},S}),define("Scene/MapMode2D",["../Core/freezeObject"],function(e){"use strict";return e({ROTATE:0,INFINITE_SCROLL:1})}),define("Scene/Camera",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/EasingFunction","../Core/Ellipsoid","../Core/EllipsoidGeodesic","../Core/Event","../Core/getTimestamp","../Core/HeadingPitchRange","../Core/HeadingPitchRoll","../Core/Intersect","../Core/IntersectionTests","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/PerspectiveFrustum","../Core/Quaternion","../Core/Ray","../Core/Rectangle","../Core/Transforms","./CameraFlightPath","./MapMode2D","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I){"use strict";function M(e){this._scene=e,this._transform=C.clone(C.IDENTITY),this._invTransform=C.clone(C.IDENTITY),this._actualTransform=C.clone(C.IDENTITY),this._actualInvTransform=C.clone(C.IDENTITY),this._transformChanged=!1,this.position=new i,this._position=new i,this._positionWC=new i,this._positionCartographic=new n,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new i,this._direction=new i,this._directionWC=new i,this.up=new i,this._up=new i,this._upWC=new i,this.right=new i,this._right=new i,this._rightWC=new i,this.frustum=new T,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=v.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new h,this._moveEnd=new h,this._changed=new h,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this.percentageChanged=.5,this._viewMatrix=new C,this._invViewMatrix=new C,R(this),this._mode=I.SCENE3D,this._modeChanged=!0;var t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new n(Math.PI,v.PI_OVER_TWO)),this._max2Dfrustum=void 0,this._suspendTerrainAdjustment=!1,Z(this,M.DEFAULT_VIEW_RECTANGLE,this.position,!0);var r=i.magnitude(this.position);r+=r*M.DEFAULT_VIEW_FACTOR,i.normalize(this.position,this.position),i.multiplyByScalar(this.position,r,this.position)}function R(e){C.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),C.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),C.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function O(e){if(a(e._oldPositionWC)){e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;var t=i.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=i.magnitude(t),e._oldPositionWC=i.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=p()):e.timeSinceMoved=Math.max(p()-e._lastMovedTimestamp,0)/1e3}else e._oldPositionWC=i.clone(e.positionWC,e._oldPositionWC)}function L(e){x.basisTo2D(e._projection,e._transform,e._actualTransform)}function N(e){var t=e._projection,n=t.ellipsoid,o=C.getColumn(e._transform,3,ge),a=n.cartesianToCartographic(o,fe),s=t.project(a,me),l=ve;l.x=s.z,l.y=s.x,l.z=s.y,l.w=1;var u=r.clone(r.UNIT_X,be),c=r.add(C.getColumn(e._transform,0,_e),o,_e);n.cartesianToCartographic(c,a),t.project(a,s);var d=ye;d.x=s.z,d.y=s.x,d.z=s.y,d.w=0,i.subtract(d,l,d),d.x=0;var h=Ce;if(i.magnitudeSquared(d)>v.EPSILON10)i.cross(u,d,h);else{var p=r.add(C.getColumn(e._transform,1,_e),o,_e);n.cartesianToCartographic(p,a),t.project(a,s),h.x=s.z,h.y=s.x,h.z=s.y,h.w=0,i.subtract(h,l,h),h.x=0,i.magnitudeSquared(h)<v.EPSILON10&&(r.clone(r.UNIT_Y,d),r.clone(r.UNIT_Z,h))}i.cross(h,u,d),i.normalize(d,d),i.cross(u,d,h),i.normalize(h,h),C.setColumn(e._actualTransform,0,d,e._actualTransform),C.setColumn(e._actualTransform,1,h,e._actualTransform),C.setColumn(e._actualTransform,2,u,e._actualTransform),C.setColumn(e._actualTransform,3,l,e._actualTransform)}function F(e){var t=e._mode,r=!1,n=0;t===I.SCENE2D&&(n=e.frustum.right-e.frustum.left,r=n!==e._positionCartographic.height);var o=e._position,a=!i.equals(o,e.position)||r;a&&(o=i.clone(e.position,e._position));var s=e._direction,l=!i.equals(s,e.direction);l&&(i.normalize(e.direction,e.direction),s=i.clone(e.direction,e._direction));var u=e._up,c=!i.equals(u,e.up);c&&(i.normalize(e.up,e.up),u=i.clone(e.up,e._up));var d=e._right,h=!i.equals(d,e.right);h&&(i.normalize(e.right,e.right),d=i.clone(e.right,e._right));var p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(C.inverseTransformation(e._transform,e._invTransform),e._mode===I.COLUMBUS_VIEW||e._mode===I.SCENE2D?C.equals(C.IDENTITY,e._transform)?C.clone(M.TRANSFORM_2D,e._actualTransform):e._mode===I.COLUMBUS_VIEW?L(e):N(e):C.clone(e._transform,e._actualTransform),C.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);var f=e._actualTransform;if(a||p)if(e._positionWC=C.multiplyByPoint(f,o,e._positionWC),t===I.SCENE3D||t===I.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{var m=Se;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===I.SCENE2D&&(m.z=n),e._projection.unproject(m,e._positionCartographic)}if(l||c||h){var _=i.dot(s,i.cross(u,d,Se));if(Math.abs(1-_)>v.EPSILON2){var g=1/i.magnitudeSquared(u),y=i.dot(u,s)*g,b=i.multiplyByScalar(s,y,Se);u=i.normalize(i.subtract(u,b,e._up),e._up),i.clone(u,e.up),d=i.cross(s,u,e._right),i.clone(d,e.right)}}(l||p)&&(e._directionWC=C.multiplyByPointAsVector(f,s,e._directionWC),i.normalize(e._directionWC,e._directionWC)),(c||p)&&(e._upWC=C.multiplyByPointAsVector(f,u,e._upWC),i.normalize(e._upWC,e._upWC)),(h||p)&&(e._rightWC=C.multiplyByPointAsVector(f,d,e._rightWC),i.normalize(e._rightWC,e._rightWC)),(a||l||c||h||p)&&R(e)}function B(e,t){var i;return i=v.equalsEpsilon(Math.abs(e.z),1,v.EPSILON3)?Math.atan2(t.y,t.x)-v.PI_OVER_TWO:Math.atan2(e.y,e.x)-v.PI_OVER_TWO,v.TWO_PI-v.zeroToTwoPi(i)} -function z(e){return v.PI_OVER_TWO-v.acosClamped(e.z)}function k(e,t,i){var r=0;return v.equalsEpsilon(Math.abs(e.z),1,v.EPSILON3)||(r=Math.atan2(-i.z,t.z),r=v.zeroToTwoPi(r+v.TWO_PI)),r}function V(e,t,r){var n=C.clone(e.transform,Oe),o=x.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Le);e._setTransform(o),i.clone(i.ZERO,e.position),r.heading=r.heading-v.PI_OVER_TWO;var a=E.fromHeadingPitchRoll(r,Ne),s=y.fromQuaternion(a,Fe);y.getColumn(s,0,e.direction),y.getColumn(s,2,e.up),i.cross(e.direction,e.up,e.right),e._setTransform(n),e._adjustOrthographicFrustum(!0)}function U(e,t,r,n){var o=C.clone(e.transform,Oe);if(e._setTransform(C.IDENTITY),!i.equals(t,e.positionWC)){if(n){var a=e._projection,s=a.ellipsoid.cartesianToCartographic(t,Be);t=a.project(s,Re)}i.clone(t,e.position)}r.heading=r.heading-v.PI_OVER_TWO;var l=E.fromHeadingPitchRoll(r,Ne),u=y.fromQuaternion(l,Fe);y.getColumn(u,0,e.direction),y.getColumn(u,2,e.up),i.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function G(e,r,n,o){var a=C.clone(e.transform,Oe);if(e._setTransform(C.IDENTITY),!i.equals(r,e.positionWC)){if(o){var s=e._projection,l=s.ellipsoid.cartesianToCartographic(r,Be);r=s.project(l,Re)}t.clone(r,e.position);var u=.5*-r.z,c=-u,d=e.frustum;if(c>u){var h=d.top/d.right;d.right=c,d.left=u,d.top=d.right*h,d.bottom=-d.top}}if(e._scene.mapMode2D===D.ROTATE){n.heading=n.heading-v.PI_OVER_TWO,n.pitch=-v.PI_OVER_TWO,n.roll=0;var p=E.fromHeadingPitchRoll(n,Ne),f=y.fromQuaternion(p,Fe);y.getColumn(f,2,e.up),i.cross(e.direction,e.up,e.right)}e._setTransform(a)}function H(e,t,r,n){var o=i.clone(r.direction,ze),a=i.clone(r.up,ke);if(e._scene.mode===I.SCENE3D){var s=e._projection.ellipsoid,l=x.eastNorthUpToFixedFrame(t,s,Te),u=C.inverseTransformation(l,Ee);C.multiplyByPointAsVector(u,o,o),C.multiplyByPointAsVector(u,a,a)}var c=i.cross(o,a,Ve);return n.heading=B(o,a),n.pitch=z(o),n.roll=k(o,a,c),n}function W(e,t){var i,r,n=e._scene.mapMode2D===D.ROTATE,o=e._maxCoord.x,a=e._maxCoord.y;n?(r=o,i=-r):(r=t.x-2*o,i=t.x+2*o),t.x>o&&(t.x=r),t.x<-o&&(t.x=i),t.y>a&&(t.y=a),t.y<-a&&(t.y=-a)}function q(e,t){var r=e.position;if(a(e.constrainedAxis)&&!i.equalsEpsilon(e.position,i.ZERO,v.EPSILON2)){var n=i.normalize(r,Qe),o=i.equalsEpsilon(n,e.constrainedAxis,v.EPSILON2),s=i.equalsEpsilon(n,i.negate(e.constrainedAxis,Je),v.EPSILON2);if(o||s)(o&&t<0||s&&t>0)&&e.rotate(e.right,t);else{var l=i.normalize(e.constrainedAxis,Ke),u=i.dot(n,l),c=v.acosClamped(u);t>0&&t>c&&(t=c-v.EPSILON4),u=i.dot(n,i.negate(l,Je)),c=v.acosClamped(u),t<0&&-t>c&&(t=-c+v.EPSILON4);var d=i.cross(l,n,Ze);e.rotate(d,t)}}else e.rotate(e.right,t)}function Y(e,t){a(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function j(e,t){var i,r=e.frustum;if(t*=.5,Math.abs(r.top)+Math.abs(r.bottom)>Math.abs(r.left)+Math.abs(r.right)){var n=r.top-t,o=r.bottom+t,a=e._maxCoord.y;e._scene.mapMode2D===D.ROTATE&&(a*=e.maximumZoomFactor),o>a&&(o=a,n=-a),n<=o&&(n=1,o=-1),i=r.right/r.top,r.top=n,r.bottom=o,r.right=r.top*i,r.left=-r.right}else{var s=r.right-t,l=r.left+t,u=e._maxCoord.x;e._scene.mapMode2D===D.ROTATE&&(u*=e.maximumZoomFactor),s>u&&(s=u,l=-u),s<=l&&(s=1,l=-1),i=r.top/r.right,r.right=s,r.left=l,r.top=r.right*i,r.bottom=-r.top}}function X(e,t){e.move(e.direction,t)}function Q(e,t,r){t=v.clamp(t,-v.PI_OVER_TWO,v.PI_OVER_TWO),e=v.zeroToTwoPi(e)-v.PI_OVER_TWO;var n=E.fromAxisAngle(i.UNIT_Y,-t,tt),o=E.fromAxisAngle(i.UNIT_Z,-e,it),a=E.multiply(o,n,o),s=y.fromQuaternion(a,rt),l=i.clone(i.UNIT_X,et);return y.multiplyByVector(s,l,l),i.negate(l,l),i.multiplyByScalar(l,r,l),l}function K(e,t,r,n){return Math.abs(i.dot(t,r))/n-i.dot(e,r)}function Z(e,t,r,n){var o=e._projection.ellipsoid,s=n?e:mt,l=t.north,u=t.south,c=t.east,h=t.west;h>c&&(c+=v.TWO_PI);var p,f=.5*(h+c);if(u<-v.PI_OVER_TWO+v.RADIANS_PER_DEGREE&&l>v.PI_OVER_TWO-v.RADIANS_PER_DEGREE)p=0;else{var m=ot;m.longitude=f,m.latitude=l,m.height=0;var _=at;_.longitude=f,_.latitude=u,_.height=0;var g=nt;a(g)&&g.ellipsoid===o||(nt=g=new d(void 0,void 0,o)),g.setEndPoints(m,_),p=g.interpolateUsingFraction(.5,ot).latitude}var y=ot;y.longitude=f,y.latitude=p,y.height=0;var C=o.cartographicToCartesian(y,pt),S=ot;S.longitude=c,S.latitude=l;var T=o.cartographicToCartesian(S,st);S.longitude=h;var E=o.cartographicToCartesian(S,ut);S.longitude=f;var A=o.cartographicToCartesian(S,dt);S.latitude=u;var w=o.cartographicToCartesian(S,ht);S.longitude=c;var x=o.cartographicToCartesian(S,ct);S.longitude=h;var P=o.cartographicToCartesian(S,lt);i.subtract(E,C,E),i.subtract(x,C,x),i.subtract(T,C,T),i.subtract(P,C,P),i.subtract(A,C,A),i.subtract(w,C,w);var D=o.geodeticSurfaceNormal(C,s.direction);i.negate(D,D);var I=i.cross(D,i.UNIT_Z,s.right);i.normalize(I,I);var M,R=i.cross(I,D,s.up);if(e.frustum instanceof b){var O,L,N=Math.max(i.distance(T,E),i.distance(x,P)),F=Math.max(i.distance(T,x),i.distance(E,P)),B=e.frustum._offCenterFrustum.right/e.frustum._offCenterFrustum.top,z=F*B;N>z?(O=N,L=O/B):(L=F,O=z),M=Math.max(O,L)}else{var k=Math.tan(.5*e.frustum.fovy),V=e.frustum.aspectRatio*k;if(M=Math.max(K(D,R,E,k),K(D,R,x,k),K(D,R,T,k),K(D,R,P,k),K(D,R,A,k),K(D,R,w,k),K(D,I,E,V),K(D,I,x,V),K(D,I,T,V),K(D,I,P,V),K(D,I,A,V),K(D,I,w,V)),u<0&&l>0){var U=ot;U.longitude=h,U.latitude=0,U.height=0;var G=o.cartographicToCartesian(U,ft);i.subtract(G,C,G),M=Math.max(M,K(D,R,G,k),K(D,I,G,V)),U.longitude=c,G=o.cartographicToCartesian(U,ft),i.subtract(G,C,G),M=Math.max(M,K(D,R,G,k),K(D,I,G,V))}}return i.add(C,i.multiplyByScalar(D,-M,ft),r)}function J(e,t,i){var r=e._projection;t.west>t.east&&(t=w.MAX_VALUE);var n=e._actualTransform,o=e._actualInvTransform,s=_t;s.longitude=t.east,s.latitude=t.north;var l=r.project(s,gt);C.multiplyByPoint(n,l,l),C.multiplyByPoint(o,l,l),s.longitude=t.west,s.latitude=t.south;var u=r.project(s,vt);if(C.multiplyByPoint(n,u,u),C.multiplyByPoint(o,u,u),i.x=.5*(l.x-u.x)+u.x,i.y=.5*(l.y-u.y)+u.y,a(e.frustum.fovy)){var c=Math.tan(.5*e.frustum.fovy),d=e.frustum.aspectRatio*c;i.z=.5*Math.max((l.x-u.x)/d,(l.y-u.y)/c)}else{var h=l.x-u.x,p=l.y-u.y;i.z=Math.max(h,p)}return i}function $(e,t,i){var r=e._projection;t.west>t.east&&(t=w.MAX_VALUE);var n=yt;n.longitude=t.east,n.latitude=t.north;var o=r.project(n,Ct);n.longitude=t.west,n.latitude=t.south;var a,s,l=r.project(n,bt),u=.5*Math.abs(o.x-l.x),c=.5*Math.abs(o.y-l.y),d=e.frustum.right/e.frustum.top,h=c*d;return u>h?(a=u,s=a/d):(s=c,a=h),c=Math.max(2*a,2*s),i.x=.5*(o.x-l.x)+l.x,i.y=.5*(o.y-l.y)+l.y,n=r.unproject(i,n),n.height=c,i=r.project(n,i)}function ee(e,t,i,r){i=o(i,c.WGS84);var n=e.getPickRay(t,St),a=g.rayEllipsoid(n,i);if(a){var s=a.start>0?a.start:a.stop;return A.getPoint(n,s,r)}}function te(e,t,r,n){var o=e.getPickRay(t,Tt),a=o.origin;a=i.fromElements(a.y,a.z,0,a);var s=r.unproject(a);if(!(s.latitude<-v.PI_OVER_TWO||s.latitude>v.PI_OVER_TWO))return r.ellipsoid.cartographicToCartesian(s,n)}function ie(e,t,r,n){var o=e.getPickRay(t,Et),a=-o.origin.x/o.direction.x;A.getPoint(o,a,n);var s=r.unproject(new i(n.y,n.z,0));if(!(s.latitude<-v.PI_OVER_TWO||s.latitude>v.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return r.ellipsoid.cartographicToCartesian(s,n)}function re(e,t,r){var n=e._scene.canvas,o=n.clientWidth,a=n.clientHeight,s=Math.tan(.5*e.frustum.fovy),l=e.frustum.aspectRatio*s,u=e.frustum.near,c=2/o*t.x-1,d=2/a*(a-t.y)-1,h=e.positionWC;i.clone(h,r.origin);var p=i.multiplyByScalar(e.directionWC,u,At);i.add(h,p,p);var f=i.multiplyByScalar(e.rightWC,c*u*l,wt),m=i.multiplyByScalar(e.upWC,d*u*s,xt),_=i.add(p,f,r.direction);return i.add(_,m,_),i.subtract(_,h,_),i.normalize(_,_),r}function ne(e,t,r){var n=e._scene.canvas,o=n.clientWidth,s=n.clientHeight,l=e.frustum;a(l._offCenterFrustum)&&(l=l._offCenterFrustum);var u=2/o*t.x-1;u*=.5*(l.right-l.left);var c=2/s*(s-t.y)-1;c*=.5*(l.top-l.bottom);var d=r.origin;return i.clone(e.position,d),i.multiplyByScalar(e.right,u,Pt),i.add(Pt,d,d),i.multiplyByScalar(e.up,c,Pt),i.add(Pt,d,d),i.clone(e.directionWC,r.direction),e._mode!==I.COLUMBUS_VIEW&&e._mode!==I.SCENE2D||i.fromElements(r.origin.z,r.origin.x,r.origin.y,r.origin),r}function oe(e,t,r,n,o,a){function s(r){var n=i.lerp(t,l,r.time,new i);e.worldToCameraCoordinatesPoint(n,e.position)}var l=i.clone(t);return r.y>n?l.y-=r.y-n:r.y<-n&&(l.y+=-n-r.y),r.z>o?l.z-=r.z-o:r.z<-o&&(l.z+=-o-r.z),{easingFunction:u.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:a,update:s}}function ae(e,t){var r=e.position,n=e.direction,o=e.worldToCameraCoordinatesVector(i.UNIT_X,Rt),a=-i.dot(o,r)/i.dot(o,n),s=i.add(r,i.multiplyByScalar(n,a,Ot),Ot);e.cameraToWorldCoordinatesPoint(s,s),r=e.cameraToWorldCoordinatesPoint(e.position,Lt);var l=Math.tan(.5*e.frustum.fovy),u=e.frustum.aspectRatio*l,c=i.magnitude(i.subtract(r,s,Nt)),d=u*c,h=l*c,p=e._maxCoord.x,f=e._maxCoord.y,m=Math.max(d-p,p),_=Math.max(h-f,f);if(r.z<-m||r.z>m||r.y<-_||r.y>_){var g=s.y<-m||s.y>m,v=s.z<-_||s.z>_;if(g||v)return oe(e,r,s,m,_,t)}}function se(e,t){var i=e.frustum,r=Math.tan(.5*i.fovy),n=i.aspectRatio*r;return Math.max(t/n,t/r)}function le(e,t){var i=e.frustum;a(i._offCenterFrustum)&&(i=i._offCenterFrustum);var r,n,o=i.right/i.top,s=t*o;return t>s?(r=t,n=r/o):(n=t,r=s),1.5*Math.max(r,n)}function ue(e,t,i){a(i)||(i=f.clone(M.DEFAULT_OFFSET));var r=e._scene.screenSpaceCameraController.minimumZoomDistance,n=e._scene.screenSpaceCameraController.maximumZoomDistance,o=i.range;if(!a(o)||0===o){var s=t.radius;0===s?i.range=zt:e.frustum instanceof b||e._mode===I.SCENE2D?i.range=le(e,s):i.range=se(e,s),i.range=v.clamp(i.range,r,n)}return i}function ce(e,t){var r,n,o=t.radii,a=e.positionWC,s=i.multiplyComponents(t.oneOverRadii,a,jt),l=i.magnitude(s),u=i.normalize(s,Xt);i.equalsEpsilon(u,i.UNIT_Z,v.EPSILON10)?(r=new i(0,1,0),n=new i(0,0,1)):(r=i.normalize(i.cross(i.UNIT_Z,u,Qt),Qt),n=i.normalize(i.cross(u,r,Kt),Kt));var c=Math.sqrt(i.magnitudeSquared(s)-1),d=i.multiplyByScalar(u,1/l,jt),h=c/l,p=i.multiplyByScalar(r,h,Xt),f=i.multiplyByScalar(n,h,Qt),m=i.add(d,f,Zt[0]);i.subtract(m,p,m),i.multiplyComponents(o,m,m);var _=i.subtract(d,f,Zt[1]);i.subtract(_,p,_),i.multiplyComponents(o,_,_);var g=i.subtract(d,f,Zt[2]);i.add(g,p,g),i.multiplyComponents(o,g,g);var y=i.add(d,f,Zt[3]);return i.add(y,p,y),i.multiplyComponents(o,y,y),Zt}function de(e,t,i,r,n,o){Jt.x=e,Jt.y=t;var s=r.pickEllipsoid(Jt,n,$t);return a(s)?(ei[i]=n.cartesianToCartographic(s,ei[i]),1):(ei[i]=n.cartesianToCartographic(o[i],ei[i]),0)}M.TRANSFORM_2D=new C(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),M.TRANSFORM_2D_INVERSE=C.inverseTransformation(M.TRANSFORM_2D,new C),M.DEFAULT_VIEW_RECTANGLE=w.fromDegrees(-95,-20,-70,90),M.DEFAULT_VIEW_FACTOR=.5,M.DEFAULT_OFFSET=new f(0,-v.PI_OVER_FOUR,0),M.prototype.hasCurrentFlight=function(){return a(this._currentFlight)&&a(this._scene.preloadFlightCamera)},M.prototype._updateCameraChanged=function(){var e=this;if(O(e),0!==e._changed.numberOfListeners){var t=e.percentageChanged;if(e._mode===I.SCENE2D){if(!a(e._changedFrustum))return e._changedPosition=i.clone(e.position,e._changedPosition),void(e._changedFrustum=e.frustum.clone());var r,n=e.position,o=e._changedPosition,s=e.frustum,l=e._changedFrustum,u=n.x+s.left,c=n.x+s.right,d=o.x+l.left,h=o.x+l.right,p=n.y+s.bottom,f=n.y+s.top,m=o.y+l.bottom,_=o.y+l.top,g=Math.max(u,d),y=Math.min(c,h),C=Math.max(p,m),b=Math.min(f,_);if(g>=y||C>=f)r=1;else{var S=l;u<d&&c>h&&p<m&&f>_&&(S=s),r=1-(y-g)*(b-C)/((S.right-S.left)*(S.top-S.bottom))}return void(r>t&&(e._changed.raiseEvent(r),e._changedPosition=i.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum)))}if(!a(e._changedDirection))return e._changedPosition=i.clone(e.positionWC,e._changedPosition),void(e._changedDirection=i.clone(e.directionWC,e._changedDirection));var T,E=v.acosClamped(i.dot(e.directionWC,e._changedDirection));T=a(e.frustum.fovy)?E/(.5*e.frustum.fovy):E;var A=i.distance(e.positionWC,e._changedPosition),w=A/e.positionCartographic.height;(T>t||w>t)&&(e._changed.raiseEvent(Math.max(T,w)),e._changedPosition=i.clone(e.positionWC,e._changedPosition),e._changedDirection=i.clone(e.directionWC,e._changedDirection))}};var he=new C,pe=new n;M.prototype._adjustHeightForTerrain=function(){var e=this._scene,t=e.screenSpaceCameraController,r=t.enableCollisionDetection,n=t.minimumCollisionTerrainHeight,o=t.minimumZoomDistance;if(!this._suspendTerrainAdjustment&&r){var s=this._mode,l=e.globe;if(a(l)&&s!==I.SCENE2D&&s!==I.MORPHING){var u,c,d=l.ellipsoid,h=e.mapProjection;C.equals(this.transform,C.IDENTITY)||(u=C.clone(this.transform,he),c=i.magnitude(this.position),this._setTransform(C.IDENTITY));var p=pe;s===I.SCENE3D?d.cartesianToCartographic(this.position,p):h.unproject(this.position,p);var f=!1;if(p.height<n){var m=l.getHeight(p);a(m)&&(m+=o,p.height<m&&(p.height=m,s===I.SCENE3D?d.cartographicToCartesian(p,this.position):h.project(p,this.position),f=!0))}a(u)&&(this._setTransform(u),f&&(i.normalize(this.position,this.position),i.negate(this.position,this.direction),i.multiplyByScalar(this.position,Math.max(c,o),this.position),i.normalize(this.direction,this.direction),i.cross(this.direction,this.up,this.right),i.cross(this.right,this.direction,this.up)))}}};var fe=new n,me=new i,_e=new i,ge=new r,ve=new r,ye=new r,Ce=new r,be=new r,Se=new i,Te=new C,Ee=new C;s(M.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return F(this),this._invTransform}},viewMatrix:{get:function(){return F(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return F(this),this._invViewMatrix}},positionCartographic:{get:function(){return F(this),this._positionCartographic}},positionWC:{get:function(){return F(this),this._positionWC}},directionWC:{get:function(){return F(this),this._directionWC}},upWC:{get:function(){return F(this),this._upWC}},rightWC:{get:function(){return F(this),this._rightWC}},heading:{get:function(){if(this._mode!==I.MORPHING){var e=this._projection.ellipsoid,t=C.clone(this._transform,Te),i=x.eastNorthUpToFixedFrame(this.positionWC,e,Ee);this._setTransform(i);var r=B(this.direction,this.up);return this._setTransform(t),r}}},pitch:{get:function(){if(this._mode!==I.MORPHING){var e=this._projection.ellipsoid,t=C.clone(this._transform,Te),i=x.eastNorthUpToFixedFrame(this.positionWC,e,Ee);this._setTransform(i);var r=z(this.direction);return this._setTransform(t),r}}},roll:{get:function(){if(this._mode!==I.MORPHING){var e=this._projection.ellipsoid,t=C.clone(this._transform,Te),i=x.eastNorthUpToFixedFrame(this.positionWC,e,Ee);this._setTransform(i);var r=k(this.direction,this.up,this.right);return this._setTransform(t),r}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}}),M.prototype.update=function(e){var t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==I.MORPHING,t=this._mode===I.SCENE2D),t){var i=this._max2Dfrustum=this.frustum.clone(),r=i.top/i.right;i.right=2*this._maxCoord.x,i.left=-i.right,i.top=r*i.right,i.bottom=-i.top}this._mode===I.SCENE2D&&W(this,this.position);var n=this._scene.globe,o=!a(n)||n._surface.tileProvider.ready&&0===n._surface._tileLoadQueueHigh.length&&0===n._surface._tileLoadQueueMedium.length&&0===n._surface._tileLoadQueueLow.length&&0===n._surface._debug.tilesWaitingForChildren;this._suspendTerrainAdjustment&&(this._suspendTerrainAdjustment=!o),o&&this._adjustHeightForTerrain()};var Ae=new i,we=new i,xe=new i;M.prototype._setTransform=function(e){var t=i.clone(this.positionWC,Ae),r=i.clone(this.upWC,we),n=i.clone(this.directionWC,xe);C.clone(e,this._transform),this._transformChanged=!0,F(this);var o=this._actualInvTransform;C.multiplyByPoint(o,t,this.position),C.multiplyByPointAsVector(o,n,this.direction),C.multiplyByPointAsVector(o,r,this.up),i.cross(this.direction,this.up,this.right),F(this)};var Pe=new t,De=new A,Ie=new i,Me=new i;M.prototype._adjustOrthographicFrustum=function(e){if(this.frustum instanceof b&&(e||!(this._positionCartographic.height<15e4))){if(!C.equals(C.IDENTITY,this.transform))return void(this.frustum.width=i.magnitude(this.position));var t,r,n=this._scene,o=n.globe;if(a(o)){var s=Pe;s.x=n.drawingBufferWidth/2,s.y=n.drawingBufferHeight/2;var l=this.getPickRay(s,De);if(t=o.pickWorldCoordinates(l,n,Ie),n.pickPositionSupported&&(r=n.pickPositionWorldCoordinates(s,Me)),a(t)&&a(r)){var u=a(r)?i.distance(r,this.positionWC):Number.POSITIVE_INFINITY,c=a(t)?i.distance(t,this.positionWC):Number.POSITIVE_INFINITY;this.frustum.width=Math.min(u,c)}else a(r)?this.frustum.width=i.distance(r,this.positionWC):a(t)&&(this.frustum.width=i.distance(t,this.positionWC))}if(!a(o)||!a(t)&&!a(r)){var d=Math.max(this.positionCartographic.height,0);this.frustum.width=d}}};var Re=new i,Oe=new C,Le=new C,Ne=new E,Fe=new y,Be=new n,ze=new i,ke=new i,Ve=new i,Ue={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},Ge=new m;M.prototype.setView=function(e){e=o(e,o.EMPTY_OBJECT);var t=o(e.orientation,o.EMPTY_OBJECT),r=this._mode;if(r!==I.MORPHING){a(e.endTransform)&&this._setTransform(e.endTransform);var n=o(e.convert,!0),s=o(e.destination,i.clone(this.positionWC,Re));a(s)&&a(s.west)&&(s=this.getRectangleCameraCoordinates(s,Re),n=!1),a(t.direction)&&(t=H(this,s,t,Ue.orientation)),Ge.heading=o(t.heading,0),Ge.pitch=o(t.pitch,-v.PI_OVER_TWO),Ge.roll=o(t.roll,0),this._suspendTerrainAdjustment=!0,r===I.SCENE3D?V(this,s,Ge):r===I.SCENE2D?G(this,s,Ge,n):U(this,s,Ge,n)}};var He=new i;M.prototype.flyHome=function(e){var t=this._mode;if(t===I.MORPHING&&this._scene.completeMorph(),t===I.SCENE2D)this.flyTo({destination:M.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:C.IDENTITY});else if(t===I.SCENE3D){var r=this.getRectangleCameraCoordinates(M.DEFAULT_VIEW_RECTANGLE),n=i.magnitude(r);n+=n*M.DEFAULT_VIEW_FACTOR,i.normalize(r,r),i.multiplyByScalar(r,n,r),this.flyTo({destination:r,duration:e,endTransform:C.IDENTITY})}else if(t===I.COLUMBUS_VIEW){var o=this._projection.ellipsoid.maximumRadius,a=new i(0,-1,1);a=i.multiplyByScalar(i.normalize(a,a),5*o,a),this.flyTo({destination:a,duration:e,orientation:{heading:0,pitch:-Math.acos(i.normalize(a,He).z),roll:0},endTransform:C.IDENTITY,convert:!1})}},M.prototype.worldToCameraCoordinates=function(e,t){return a(t)||(t=new r),F(this),C.multiplyByVector(this._actualInvTransform,e,t)},M.prototype.worldToCameraCoordinatesPoint=function(e,t){return a(t)||(t=new i),F(this),C.multiplyByPoint(this._actualInvTransform,e,t)},M.prototype.worldToCameraCoordinatesVector=function(e,t){return a(t)||(t=new i),F(this),C.multiplyByPointAsVector(this._actualInvTransform,e,t)},M.prototype.cameraToWorldCoordinates=function(e,t){return a(t)||(t=new r),F(this),C.multiplyByVector(this._actualTransform,e,t)},M.prototype.cameraToWorldCoordinatesPoint=function(e,t){return a(t)||(t=new i),F(this),C.multiplyByPoint(this._actualTransform,e,t)},M.prototype.cameraToWorldCoordinatesVector=function(e,t){return a(t)||(t=new i),F(this),C.multiplyByPointAsVector(this._actualTransform,e,t)};var We=new i;M.prototype.move=function(e,t){var r=this.position;i.multiplyByScalar(e,t,We),i.add(r,We,r),this._mode===I.SCENE2D&&W(this,r),this._adjustOrthographicFrustum(!0)},M.prototype.moveForward=function(e){e=o(e,this.defaultMoveAmount),this._mode===I.SCENE2D?j(this,e):this.move(this.direction,e)},M.prototype.moveBackward=function(e){e=o(e,this.defaultMoveAmount),this._mode===I.SCENE2D?j(this,-e):this.move(this.direction,-e)},M.prototype.moveUp=function(e){e=o(e,this.defaultMoveAmount),this.move(this.up,e)},M.prototype.moveDown=function(e){e=o(e,this.defaultMoveAmount),this.move(this.up,-e)},M.prototype.moveRight=function(e){e=o(e,this.defaultMoveAmount),this.move(this.right,e)},M.prototype.moveLeft=function(e){e=o(e,this.defaultMoveAmount),this.move(this.right,-e)},M.prototype.lookLeft=function(e){e=o(e,this.defaultLookAmount),this._mode!==I.SCENE2D&&this.look(this.up,-e)},M.prototype.lookRight=function(e){e=o(e,this.defaultLookAmount),this._mode!==I.SCENE2D&&this.look(this.up,e)},M.prototype.lookUp=function(e){e=o(e,this.defaultLookAmount),this._mode!==I.SCENE2D&&this.look(this.right,-e)},M.prototype.lookDown=function(e){e=o(e,this.defaultLookAmount),this._mode!==I.SCENE2D&&this.look(this.right,e)};var qe=new E,Ye=new y;M.prototype.look=function(e,t){var i=o(t,this.defaultLookAmount),r=E.fromAxisAngle(e,-i,qe),n=y.fromQuaternion(r,Ye),a=this.direction,s=this.up,l=this.right;y.multiplyByVector(n,a,a),y.multiplyByVector(n,s,s),y.multiplyByVector(n,l,l)},M.prototype.twistLeft=function(e){e=o(e,this.defaultLookAmount),this.look(this.direction,e)},M.prototype.twistRight=function(e){e=o(e,this.defaultLookAmount),this.look(this.direction,-e)};var je=new E,Xe=new y;M.prototype.rotate=function(e,t){var r=o(t,this.defaultRotateAmount),n=E.fromAxisAngle(e,-r,je),a=y.fromQuaternion(n,Xe);y.multiplyByVector(a,this.position,this.position),y.multiplyByVector(a,this.direction,this.direction),y.multiplyByVector(a,this.up,this.up),i.cross(this.direction,this.up,this.right),i.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)},M.prototype.rotateDown=function(e){e=o(e,this.defaultRotateAmount),q(this,e)},M.prototype.rotateUp=function(e){e=o(e,this.defaultRotateAmount),q(this,-e)};var Qe=new i,Ke=new i,Ze=new i,Je=new i;M.prototype.rotateRight=function(e){e=o(e,this.defaultRotateAmount),Y(this,-e)},M.prototype.rotateLeft=function(e){e=o(e,this.defaultRotateAmount),Y(this,e)},M.prototype.zoomIn=function(e){e=o(e,this.defaultZoomAmount),this._mode===I.SCENE2D?j(this,e):X(this,e)},M.prototype.zoomOut=function(e){e=o(e,this.defaultZoomAmount),this._mode===I.SCENE2D?j(this,-e):X(this,-e)},M.prototype.getMagnitude=function(){return this._mode===I.SCENE3D?i.magnitude(this.position):this._mode===I.COLUMBUS_VIEW?Math.abs(this.position.z):this._mode===I.SCENE2D?Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom):void 0};var $e=new C;M.prototype.lookAt=function(e,t){var i=x.eastNorthUpToFixedFrame(e,c.WGS84,$e);this.lookAtTransform(i,t)};var et=new i,tt=new E,it=new E,rt=new y;M.prototype.lookAtTransform=function(e,r){if(this._setTransform(e),a(r)){var n;if(n=a(r.heading)?Q(r.heading,r.pitch,r.range):r,this._mode===I.SCENE2D){t.clone(t.ZERO,this.position),i.negate(n,this.up),this.up.z=0,i.magnitudeSquared(this.up)<v.EPSILON10&&i.clone(i.UNIT_Y,this.up),i.normalize(this.up,this.up),this._setTransform(C.IDENTITY),i.negate(i.UNIT_Z,this.direction),i.cross(this.direction,this.up,this.right),i.normalize(this.right,this.right);var o=this.frustum,s=o.top/o.right;return o.right=.5*i.magnitude(n),o.left=-o.right,o.top=s*o.right,o.bottom=-o.top,void this._setTransform(e)}i.clone(n,this.position),i.negate(this.position,this.direction),i.normalize(this.direction,this.direction),i.cross(this.direction,i.UNIT_Z,this.right),i.magnitudeSquared(this.right)<v.EPSILON10&&i.clone(i.UNIT_X,this.right),i.normalize(this.right,this.right),i.cross(this.right,this.direction,this.up),i.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)}};var nt,ot=new n,at=new n,st=new i,lt=new i,ut=new i,ct=new i,dt=new i,ht=new i,pt=new i,ft=new i,mt={direction:new i,right:new i,up:new i},_t=new n,gt=new i,vt=new i,yt=new n,Ct=new i,bt=new i;M.prototype.getRectangleCameraCoordinates=function(e,t){var r=this._mode;return a(t)||(t=new i),r===I.SCENE3D?Z(this,e,t):r===I.COLUMBUS_VIEW?J(this,e,t):r===I.SCENE2D?$(this,e,t):void 0};var St=new A,Tt=new A,Et=new A;M.prototype.pickEllipsoid=function(e,t,r){var n=this._scene.canvas;if(0!==n.clientWidth&&0!==n.clientHeight){if(a(r)||(r=new i),t=o(t,c.WGS84),this._mode===I.SCENE3D)r=ee(this,e,t,r);else if(this._mode===I.SCENE2D)r=te(this,e,this._projection,r);else{if(this._mode!==I.COLUMBUS_VIEW)return;r=ie(this,e,this._projection,r)}return r}};var At=new i,wt=new i,xt=new i,Pt=new i;M.prototype.getPickRay=function(e,t){a(t)||(t=new A);var i=this.frustum;return a(i.aspectRatio)&&a(i.fov)&&a(i.near)?re(this,e,t):ne(this,e,t)};var Dt=new i,It=new i;M.prototype.distanceToBoundingSphere=function(e){var t=i.subtract(this.positionWC,e.center,Dt),r=i.multiplyByScalar(this.directionWC,i.dot(t,this.directionWC),It);return Math.max(0,i.magnitude(r)-e.radius)};var Mt=new t;M.prototype.getPixelSize=function(e,t,i){var r=this.distanceToBoundingSphere(e),n=this.frustum.getPixelDimensions(t,i,r,Mt);return Math.max(n.x,n.y)};var Rt=new i,Ot=new i,Lt=new i,Nt=new i;M.prototype.createCorrectPositionTween=function(e){if(this._mode===I.COLUMBUS_VIEW)return ae(this,e)};var Ft=new i,Bt={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};M.prototype.cancelFlight=function(){a(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)},M.prototype.flyTo=function(e){e=o(e,o.EMPTY_OBJECT);var t=e.destination;if(this._mode!==I.MORPHING){this.cancelFlight();var i=o(e.orientation,o.EMPTY_OBJECT);if(a(i.direction)&&(i=H(this,t,i,Ue.orientation)),a(e.duration)&&e.duration<=0){var r=Ue;return r.destination=e.destination,r.orientation.heading=i.heading,r.orientation.pitch=i.pitch,r.orientation.roll=i.roll,r.convert=e.convert,r.endTransform=e.endTransform,this.setView(r),void("function"==typeof e.complete&&e.complete())}var n=a(t.west);n&&(t=this.getRectangleCameraCoordinates(t,Ft));var s,l=this;Bt.destination=t,Bt.heading=i.heading,Bt.pitch=i.pitch,Bt.roll=i.roll,Bt.duration=e.duration,Bt.complete=function(){s===l._currentFlight&&(l._currentFlight=void 0),a(e.complete)&&e.complete()},Bt.cancel=e.cancel,Bt.endTransform=e.endTransform,Bt.convert=!n&&e.convert,Bt.maximumHeight=e.maximumHeight,Bt.pitchAdjustHeight=e.pitchAdjustHeight,Bt.flyOverLongitude=e.flyOverLongitude,Bt.flyOverLongitudeWeight=e.flyOverLongitudeWeight,Bt.easingFunction=e.easingFunction;var u=this._scene;s=u.tweens.add(P.createTween(u,Bt)),this._currentFlight=s;var c=this._scene.preloadFlightCamera;this._mode!==I.SCENE2D?(a(c)||(c=M.clone(this)),c.setView({destination:t,orientation:i}),this._scene.preloadFlightCullingVolume=c.frustum.computeCullingVolume(c.positionWC,c.directionWC,c.upWC)):c=void 0}};var zt=100;M.prototype.viewBoundingSphere=function(e,t){t=ue(this,e,t),this.lookAt(e.center,t)};var kt=new C,Vt=new i,Ut=new i,Gt=new i,Ht=new i,Wt=new r,qt=new E,Yt=new y;M.prototype.flyToBoundingSphere=function(e,t){t=o(t,o.EMPTY_OBJECT);var r=this._mode===I.SCENE2D||this._mode===I.COLUMBUS_VIEW;this._setTransform(C.IDENTITY);var n,a=ue(this,e,t.offset);n=r?i.multiplyByScalar(i.UNIT_Z,a.range,Vt):Q(a.heading,a.pitch,a.range);var s=x.eastNorthUpToFixedFrame(e.center,c.WGS84,kt);C.multiplyByPoint(s,n,n);var l,u;if(!r){if(l=i.subtract(e.center,n,Ut),i.normalize(l,l),u=C.multiplyByPointAsVector(s,i.UNIT_Z,Gt),1-Math.abs(i.dot(l,u))<v.EPSILON6){var d=E.fromAxisAngle(l,a.heading,qt),h=y.fromQuaternion(d,Yt);i.fromCartesian4(C.getColumn(s,1,Wt),u),y.multiplyByVector(h,u,u)}var p=i.cross(l,u,Ht);i.cross(p,l,u),i.normalize(u,u)}this.flyTo({destination:n,orientation:{direction:l,up:u},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var jt=new i,Xt=new i,Qt=new i,Kt=new i,Zt=[new i,new i,new i,new i],Jt=new t,$t=new i,ei=[new n,new n,new n,new n];return M.prototype.computeViewRectangle=function(t,r){t=o(t,c.WGS84);var n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),a=new e(i.ZERO,t.maximumRadius);if(n.computeVisibility(a)!==_.OUTSIDE){var s=this._scene.canvas,l=s.clientWidth,u=s.clientHeight,d=0,h=ce(this,t);if(d+=de(0,0,0,this,t,h),d+=de(0,u,1,this,t,h),d+=de(l,u,2,this,t,h),(d+=de(l,0,3,this,t,h))<2)return w.MAX_VALUE;r=w.fromCartographicArray(ei,r);for(var p=0,f=ei[3].longitude,m=0;m<4;++m){var g=ei[m].longitude,y=Math.abs(g-f);y>v.PI?p+=v.TWO_PI-y:p+=y,f=g}return v.equalsEpsilon(Math.abs(p),v.TWO_PI,v.EPSILON9)&&(r.west=-v.PI,r.east=v.PI,ei[0].latitude>=0?r.north=v.PI_OVER_TWO:r.south=-v.PI_OVER_TWO),r}},M.prototype.switchToPerspectiveFrustum=function(){if(!(this._mode===I.SCENE2D||this.frustum instanceof T)){var e=this._scene;this.frustum=new T,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=v.toRadians(60)}},M.prototype.switchToOrthographicFrustum=function(){if(!(this._mode===I.SCENE2D||this.frustum instanceof b)){var e=this._scene;this.frustum=new b,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.width=i.magnitude(this.position);var t=this.frustum.projectionMatrix;a(t)&&this._adjustOrthographicFrustum(!0)}},M.clone=function(e,t){return a(t)||(t=new M(e._scene)),i.clone(e.position,t.position),i.clone(e.direction,t.direction),i.clone(e.up,t.up),i.clone(e.right,t.right),C.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t},M}),define("Scene/CameraEventType",["../Core/freezeObject"],function(e){"use strict";return e({LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4})}),define("Scene/CameraEventAggregator",["../Core/Cartesian2","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/KeyboardEventModifier","../Core/Math","../Core/ScreenSpaceEventHandler","../Core/ScreenSpaceEventType","./CameraEventType"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(e,i){var r=e;return t(i)&&(r+="+"+i),r}function d(t,i){e.clone(t.distance.startPosition,i.distance.startPosition),e.clone(t.distance.endPosition,i.distance.endPosition),e.clone(t.angleAndHeight.startPosition,i.angleAndHeight.startPosition),e.clone(t.angleAndHeight.endPosition,i.angleAndHeight.endPosition)}function h(i,r,n){var o=c(u.PINCH,r),a=i._update,s=i._isDown,h=i._eventStartPosition,p=i._pressTime,f=i._releaseTime;a[o]=!0,s[o]=!1,h[o]=new e;var m=i._movement[o];t(m)||(m=i._movement[o]={}),m.distance={startPosition:new e,endPosition:new e},m.angleAndHeight={startPosition:new e,endPosition:new e},m.prevAngle=0,i._eventHandler.setInputAction(function(t){i._buttonsDown++,s[o]=!0,p[o]=new Date,e.lerp(t.position1,t.position2,.5,h[o])},l.PINCH_START,r),i._eventHandler.setInputAction(function(){i._buttonsDown=Math.max(i._buttonsDown-1,0),s[o]=!1,f[o]=new Date},l.PINCH_END,r),i._eventHandler.setInputAction(function(t){if(s[o]){a[o]?(d(t,m),a[o]=!1,m.prevAngle=m.angleAndHeight.startPosition.x):(e.clone(t.distance.endPosition,m.distance.endPosition),e.clone(t.angleAndHeight.endPosition,m.angleAndHeight.endPosition));for(var i=m.angleAndHeight.endPosition.x,r=m.prevAngle,l=2*Math.PI;i>=r+Math.PI;)i-=l;for(;i<r-Math.PI;)i+=l;m.angleAndHeight.endPosition.x=-i*n.clientWidth/12,m.angleAndHeight.startPosition.x=-r*n.clientWidth/12}},l.PINCH_MOVE,r)}function p(i,r){var n=c(u.WHEEL,r),o=i._update;o[n]=!0;var s=i._movement[n];t(s)||(s=i._movement[n]={}),s.startPosition=new e,s.endPosition=new e,i._eventHandler.setInputAction(function(t){var i=15*a.toRadians(t);o[n]?(e.clone(e.ZERO,s.startPosition),s.endPosition.x=0,s.endPosition.y=i,o[n]=!1):s.endPosition.y=s.endPosition.y+i},l.WHEEL,r)}function f(i,r,n){var o=c(n,r),a=i._isDown,s=i._eventStartPosition,d=i._pressTime,h=i._releaseTime;a[o]=!1,s[o]=new e;var p=i._lastMovement[o];t(p)||(p=i._lastMovement[o]={startPosition:new e,endPosition:new e,valid:!1});var f,m;n===u.LEFT_DRAG?(f=l.LEFT_DOWN,m=l.LEFT_UP):n===u.RIGHT_DRAG?(f=l.RIGHT_DOWN,m=l.RIGHT_UP):n===u.MIDDLE_DRAG&&(f=l.MIDDLE_DOWN,m=l.MIDDLE_UP),i._eventHandler.setInputAction(function(t){i._buttonsDown++,p.valid=!1,a[o]=!0,d[o]=new Date,e.clone(t.position,s[o])},f,r),i._eventHandler.setInputAction(function(){i._buttonsDown=Math.max(i._buttonsDown-1,0),a[o]=!1,h[o]=new Date},m,r)}function m(t,i){e.clone(t.startPosition,i.startPosition),e.clone(t.endPosition,i.endPosition)}function _(i,r){var n=i._update,o=i._movement,a=i._lastMovement,s=i._isDown;for(var d in u)if(u.hasOwnProperty(d)){var h=u[d];if(t(h)){ -var p=c(h,r);n[p]=!0,t(i._lastMovement[p])||(i._lastMovement[p]={startPosition:new e,endPosition:new e,valid:!1}),t(i._movement[p])||(i._movement[p]={startPosition:new e,endPosition:new e})}}i._eventHandler.setInputAction(function(l){for(var d in u)if(u.hasOwnProperty(d)){var h=u[d];if(t(h)){var p=c(h,r);s[p]&&(n[p]?(m(o[p],a[p]),a[p].valid=!0,m(l,o[p]),n[p]=!1):e.clone(l.endPosition,o[p].endPosition))}}e.clone(l.endPosition,i._currentMousePosition)},l.MOUSE_MOVE,r)}function g(i){this._eventHandler=new s(i,!0),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new e,p(this,void 0),h(this,void 0,i),f(this,void 0,u.LEFT_DRAG),f(this,void 0,u.RIGHT_DRAG),f(this,void 0,u.MIDDLE_DRAG),_(this,void 0);for(var r in o)if(o.hasOwnProperty(r)){var n=o[r];t(n)&&(p(this,n),h(this,n,i),f(this,n,u.LEFT_DRAG),f(this,n,u.RIGHT_DRAG),f(this,n,u.MIDDLE_DRAG),_(this,n))}}return i(g.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){var e=!(this._update[c(u.WHEEL)]&&this._update[c(u.WHEEL,o.SHIFT)]&&this._update[c(u.WHEEL,o.CTRL)]&&this._update[c(u.WHEEL,o.ALT)]);return this._buttonsDown>0||e}}}),g.prototype.isMoving=function(e,t){var i=c(e,t);return!this._update[i]},g.prototype.getMovement=function(e,t){var i=c(e,t);return this._movement[i]},g.prototype.getLastMovement=function(e,t){var i=c(e,t),r=this._lastMovement[i];if(r.valid)return r},g.prototype.isButtonDown=function(e,t){var i=c(e,t);return this._isDown[i]},g.prototype.getStartMousePosition=function(e,t){if(e===u.WHEEL)return this._currentMousePosition;var i=c(e,t);return this._eventStartPosition[i]},g.prototype.getButtonPressTime=function(e,t){var i=c(e,t);return this._pressTime[i]},g.prototype.getButtonReleaseTime=function(e,t){var i=c(e,t);return this._releaseTime[i]},g.prototype.reset=function(){for(var e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),r(this)},g}),define("Scene/Composite3DTileContent",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/FeatureDetection","../Core/getMagic","../Core/RuntimeError","../ThirdParty/when"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,i,r,n,o){this._tileset=e,this._tile=t,this._resource=i,this._contents=[],this._readyPromise=s.defer(),u(this,r,n,o)}function u(i,r,n,l){n=e(n,0);var u=new Uint8Array(r),d=new DataView(r);n+=c;var h=d.getUint32(n,!0);if(1!==h)throw new a("Only Composite Tile version 1 is supported. Version "+h+" is not.");n+=c,n+=c;var p=d.getUint32(n,!0);n+=c;for(var f=[],m=0;m<p;++m){var _=o(u,n),g=d.getUint32(n+2*c,!0),v=l[_];if(!t(v))throw new a("Unknown tile content type, "+_+", inside Composite tile");var y=v(i._tileset,i._tile,i._resource,r,n);i._contents.push(y),f.push(y.readyPromise),n+=g}s.all(f).then(function(){i._readyPromise.resolve(i)}).otherwise(function(e){i._readyPromise.reject(e)})}if(!n.supportsTypedArrays())return{};i(l.prototype,{featurePropertiesDirty:{get:function(){for(var e=this._contents,t=e.length,i=0;i<t;++i)if(e[i].featurePropertiesDirty)return!0;return!1},set:function(e){for(var t=this._contents,i=t.length,r=0;r<i;++r)t[r].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},readyPromise:{get:function(){return this._readyPromise.promise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}}});var c=Uint32Array.BYTES_PER_ELEMENT;return l.prototype.hasProperty=function(e,t){return!1},l.prototype.getFeature=function(e){},l.prototype.applyDebugSettings=function(e,t){for(var i=this._contents,r=i.length,n=0;n<r;++n)i[n].applyDebugSettings(e,t)},l.prototype.applyStyle=function(e){for(var t=this._contents,i=t.length,r=0;r<i;++r)t[r].applyStyle(e)},l.prototype.update=function(e,t){for(var i=this._contents,r=i.length,n=0;n<r;++n)i[n].update(e,t)},l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){for(var e=this._contents,t=e.length,i=0;i<t;++i)e[i].destroy();return r(this)},l}),define("Scene/Vector3DTileGeometry",["../Core/arraySlice","../Core/BoundingSphere","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Matrix4","../Core/TaskProcessor","../ThirdParty/when","./ClassificationType","./Vector3DTileBatch","./Vector3DTilePrimitive"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,o(this._center)||(o(this._boundingVolume)?this._center=i.clone(this._boundingVolume.center):this._center=i.clone(i.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._readyPromise=c.defer(),this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=d.BOTH}function m(e){var t=new Float64Array(l.packedLength+i.packedLength),r=0;return i.pack(e._center,t,r),r+=i.packedLength,l.pack(e._modelMatrix,t,r),t}function _(e,i){for(var n=0,o=i[n++],a=i[n++],s=e._boundingVolumes=new Array(a),l=0;l<a;++l)s[l]=t.unpack(i,n),n+=t.packedLength;for(var u=i[n++],c=e._batchedIndices=new Array(u),d=0;d<u;++d){var p=r.unpack(i,n);n+=r.packedLength;for(var f=i[n++],m=i[n++],_=i[n++],g=new Array(_),v=0;v<_;++v)g[v]=i[n++];c[d]=new h({color:p,offset:f,count:m,batchIds:g})}return o}function g(t){if(!o(t._primitive)){if(!o(t._verticesPromise)){var i=t._boxes,r=t._boxBatchIds,a=t._cylinders,s=t._cylinderBatchIds,l=t._ellipsoids,u=t._ellipsoidBatchIds,c=t._spheres,d=t._sphereBatchIds,h=t._batchTableColors,f=t._packedBuffer;if(!o(h)){var g=0;o(t._boxes)&&(i=t._boxes=e(i),r=t._boxBatchIds=e(r),g+=r.length),o(t._cylinders)&&(a=t._cylinders=e(a),s=t._cylinderBatchIds=e(s),g+=s.length),o(t._ellipsoids)&&(l=t._ellipsoids=e(l),u=t._ellipsoidBatchIds=e(u),g+=u.length),o(t._spheres)&&(c=t._sphere=e(c),d=t._sphereBatchIds=e(d),g+=d.length),h=t._batchTableColors=new Uint32Array(g);for(var C=t._batchTable,b=0;b<g;++b){var S=C.getColor(b,y);h[b]=S.toRgba()}f=t._packedBuffer=m(t)}var T=[];o(i)&&T.push(i.buffer,r.buffer),o(a)&&T.push(a.buffer,s.buffer),o(l)&&T.push(l.buffer,u.buffer),o(c)&&T.push(c.buffer,d.buffer),T.push(h.buffer,f.buffer);var E={boxes:o(i)?i.buffer:void 0,boxBatchIds:o(i)?r.buffer:void 0,cylinders:o(a)?a.buffer:void 0,cylinderBatchIds:o(a)?s.buffer:void 0,ellipsoids:o(l)?l.buffer:void 0,ellipsoidBatchIds:o(l)?u.buffer:void 0,spheres:o(c)?c.buffer:void 0,sphereBatchIds:o(c)?d.buffer:void 0,batchTableColors:h.buffer,packedBuffer:f.buffer},A=t._verticesPromise=v.scheduleTask(E,T);if(!o(A))return;A.then(function(e){var i=new Float64Array(e.packedBuffer),r=_(t,i);t._indices=2===r?new Uint16Array(e.indices):new Uint32Array(e.indices),t._indexOffsets=new Uint32Array(e.indexOffsets),t._indexCounts=new Uint32Array(e.indexCounts),t._positions=new Float32Array(e.positions),t._vertexBatchIds=new Uint16Array(e.vertexBatchIds),t._batchIds=new Uint16Array(e.batchIds),t._ready=!0})}t._ready&&!o(t._primitive)&&(t._primitive=new p({batchTable:t._batchTable,positions:t._positions,batchIds:t._batchIds,vertexBatchIds:t._vertexBatchIds,indices:t._indices,indexOffsets:t._indexOffsets,indexCounts:t._indexCounts,batchedIndices:t._batchedIndices,boundingVolume:t._boundingVolume,boundingVolumes:t._boundingVolumes,center:t._center,pickObject:n(t._pickObject,t)}),t._boxes=void 0,t._boxBatchIds=void 0,t._cylinders=void 0,t._cylinderBatchIds=void 0,t._ellipsoids=void 0,t._ellipsoidBatchIds=void 0,t._spheres=void 0,t._sphereBatchIds=void 0,t._center=void 0,t._modelMatrix=void 0,t._batchTable=void 0,t._boundingVolume=void 0,t._boundingVolumes=void 0,t._batchedIndices=void 0,t._indices=void 0,t._indexOffsets=void 0,t._indexCounts=void 0,t._positions=void 0,t._vertexBatchIds=void 0,t._batchIds=void 0,t._batchTableColors=void 0,t._packedBuffer=void 0,t._verticesPromise=void 0,t._readyPromise.resolve())}}a(f.prototype,{trianglesLength:{get:function(){return o(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return o(this._primitive)?this._primitive.geometryByteLength:0}},readyPromise:{get:function(){return this._readyPromise.promise}}}),f.packedBoxLength=l.packedLength+i.packedLength,f.packedCylinderLength=l.packedLength+2,f.packedEllipsoidLength=l.packedLength+i.packedLength,f.packedSphereLength=i.packedLength+1;var v=new u("createVectorTileGeometries"),y=new r;return f.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)},f.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)},f.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)},f.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)},f.prototype.update=function(e){g(this),this._ready&&(this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e))},f.prototype.isDestroyed=function(){return!1},f.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),s(this)},f}),define("Scene/Geometry3DTileContent",["../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/getMagic","../Core/getStringFromTypedArray","../Core/Math","../Core/Matrix4","../Core/Rectangle","../Core/RuntimeError","../ThirdParty/when","./Cesium3DTileBatchTable","./Vector3DTileGeometry"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._geometries=void 0,this._contentReadyPromise=void 0,this._readyPromise=f.defer(),this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,C(this,r,n)}function v(e){return function(t,r){i(e._geometries)&&e._geometries.updateCommands(t,r)}}function y(e,r){var n,o,a,s,l,u=t(e.BOXES_LENGTH,0),c=t(e.CYLINDERS_LENGTH,0),d=t(e.ELLIPSOIDS_LENGTH,0),h=t(e.SPHERES_LENGTH,0);if(u>0&&i(e.BOX_BATCH_IDS)){var f=r.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(r.buffer,f,u)}if(c>0&&i(e.CYLINDER_BATCH_IDS)){var m=r.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;o=new Uint16Array(r.buffer,m,c)}if(d>0&&i(e.ELLIPSOID_BATCH_IDS)){var _=r.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;a=new Uint16Array(r.buffer,_,d)}if(h>0&&i(e.SPHERE_BATCH_IDS)){var g=r.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;s=new Uint16Array(r.buffer,g,h)}var v=i(n)||i(o)||i(a)||i(s),y=u>0&&!i(n)||c>0&&!i(o)||d>0&&!i(a)||h>0&&!i(s);if(v&&y)throw new p("If one group of batch ids is defined, then all batch ids must be defined.");if(!(i(n)||i(o)||i(a)||i(s))){var C=0;if(!i(n)&&u>0)for(n=new Uint16Array(u),l=0;l<u;++l)n[l]=C++;if(!i(o)&&c>0)for(o=new Uint16Array(c),l=0;l<c;++l)o[l]=C++;if(!i(a)&&d>0)for(a=new Uint16Array(d),l=0;l<d;++l)a[l]=C++;if(!i(s)&&h>0)for(s=new Uint16Array(h),l=0;l<h;++l)s[l]=C++}return{boxes:n,cylinders:o,ellipsoids:a,spheres:s}}function C(r,n,o){o=t(o,0);var a=new Uint8Array(n),s=new DataView(n);o+=S;var l=s.getUint32(o,!0);if(1!==l)throw new p("Only Geometry tile version 1 is supported. Version "+l+" is not.");o+=S;var c=s.getUint32(o,!0);if(o+=S,0===c)return void r._readyPromise.resolve(r);var h=s.getUint32(o,!0);if(o+=S,0===h)throw new p("Feature table must have a byte length greater than zero");var f=s.getUint32(o,!0);o+=S;var g=s.getUint32(o,!0);o+=S;var C=s.getUint32(o,!0);o+=S;var b=u(a,o,h),T=JSON.parse(b);o+=h;var E=new Uint8Array(n,o,f);o+=f;var A,w;if(g>0){var x=u(a,o,g);A=JSON.parse(x),o+=g,C>0&&(w=new Uint8Array(n,o,C),w=new Uint8Array(w))}var P=t(T.BOXES_LENGTH,0),D=t(T.CYLINDERS_LENGTH,0),I=t(T.ELLIPSOIDS_LENGTH,0),M=t(T.SPHERES_LENGTH,0),R=P+D+I+M,O=new m(r,R,A,w,v(r));if(r._batchTable=O,0!==R){var L,N=r.tile.computedTransform;i(T.RTC_CENTER)&&(L=e.unpack(T.RTC_CENTER),d.multiplyByPoint(N,L,L));var F=y(T,E);if(P>0||D>0||I>0||M>0){var B,z,k,V;if(P>0){var U=E.byteOffset+T.BOXES.byteOffset;B=new Float32Array(E.buffer,U,_.packedBoxLength*P)}if(D>0){var G=E.byteOffset+T.CYLINDERS.byteOffset;z=new Float32Array(E.buffer,G,_.packedCylinderLength*D)}if(I>0){var H=E.byteOffset+T.ELLIPSOIDS.byteOffset;k=new Float32Array(E.buffer,H,_.packedEllipsoidLength*I)}if(M>0){var W=E.byteOffset+T.SPHERES.byteOffset;V=new Float32Array(E.buffer,W,_.packedSphereLength*M)}r._geometries=new _({boxes:B,boxBatchIds:F.boxes,cylinders:z,cylinderBatchIds:F.cylinders,ellipsoids:k,ellipsoidBatchIds:F.ellipsoids,spheres:V,sphereBatchIds:F.spheres,center:L,modelMatrix:N,batchTable:O,boundingVolume:r.tile.boundingVolume.boundingVolume})}}}function b(e){var t=e.featuresLength;if(!i(e._features)&&t>0){var r=new Array(t);i(e._geometries)&&e._geometries.createFeatures(e,r),e._features=r}}if(!s.supportsTypedArrays())return{};r(g.prototype,{featuresLength:{get:function(){return i(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return i(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return i(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return i(this._batchTable)?this._batchTable.memorySizeInBytes:0}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._readyPromise.promise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){return this._batchTable}}});var S=Uint32Array.BYTES_PER_ELEMENT;return g.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)},g.prototype.getFeature=function(e){return b(this),this._features[e]},g.prototype.applyDebugSettings=function(e,t){i(this._geometries)&&this._geometries.applyDebugSettings(e,t)},g.prototype.applyStyle=function(e){b(this),i(this._geometries)&&this._geometries.applyStyle(e,this._features)},g.prototype.update=function(e,t){if(i(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),i(this._batchTable)&&this._geometries._ready&&this._batchTable.update(e,t),!i(this._contentReadyPromise)){var r=this;this._contentReadyPromise=this._geometries.readyPromise.then(function(){r._readyPromise.resolve(r)})}},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),n(this)},g}),define("Scene/ModelInstance",["../Core/defineProperties","../Core/Matrix4"],function(e,t){"use strict";function i(e,i,r){this.primitive=e,this._modelMatrix=t.clone(i),this._instanceId=r}return e(i.prototype,{instanceId:{get:function(){return this._instanceId}},model:{get:function(){return this.primitive._model}},modelMatrix:{get:function(){return t.clone(this._modelMatrix)},set:function(e){t.clone(e,this._modelMatrix),this.primitive.expandBoundingSphere(this._modelMatrix),this.primitive._dirty=!0}}}),i}),define("Scene/ModelInstanceCollection",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Check","../Core/clone","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Matrix4","../Core/PrimitiveType","../Core/Resource","../Core/RuntimeError","../Core/Transforms","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/ShaderSource","../ThirdParty/GltfPipeline/ForEach","../ThirdParty/when","./Model","./ModelInstance","./ModelUtility","./SceneMode","./ShadowMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P){"use strict";function D(e){e=s(e,s.EMPTY_OBJECT),this.show=s(e.show,!0),this._instancingSupported=!1,this._dynamic=s(e.dynamic,!1),this._allowPicking=s(e.allowPicking,!0),this._ready=!1,this._readyPromise=T.defer(),this._state=ne.NEEDS_LOAD,this._dirty=!1,this._cull=s(e.cull,!0),this._opaquePass=s(e.opaquePass,C.OPAQUE),this._instances=I(this,e.instances),this._batchTable=e.batchTable,this._model=void 0,this._vertexBufferTypedArray=void 0,this._vertexBuffer=void 0,this._batchIdBuffer=void 0,this._instancedUniformsByProgram=void 0,this._drawCommands=[],this._modelCommands=void 0,this._boundingSphere=M(this),this._center=i.clone(this._boundingSphere.center),this._rtcTransform=new h,this._rtcModelView=new h,this._mode=void 0,this.modelMatrix=h.clone(h.IDENTITY),this._modelMatrix=h.clone(this.modelMatrix),this._url=f.createIfNeeded(e.url),this._requestType=e.requestType,this._gltf=e.gltf,this._basePath=f.createIfNeeded(e.basePath),this._asynchronous=e.asynchronous,this._incrementallyLoadTextures=e.incrementallyLoadTextures,this._upAxis=e.upAxis,this._forwardAxis=e.forwardAxis,this.shadows=s(e.shadows,P.ENABLED),this._shadows=this.shadows,this._pickIdLoaded=e.pickIdLoaded,this.debugShowBoundingVolume=s(e.debugShowBoundingVolume,!1),this._debugShowBoundingVolume=!1,this.debugWireframe=s(e.debugWireframe,!1),this._debugWireframe=!1,this._imageBasedLightingFactor=new t(1,1),t.clone(e.imageBasedLightingFactor,this._imageBasedLightingFactor),this.lightColor=e.lightColor,this.luminanceAtZenith=e.luminanceAtZenith,this.sphericalHarmonicCoefficients=e.sphericalHarmonicCoefficients,this.specularEnvironmentMaps=e.specularEnvironmentMaps}function I(e,t){t=s(t,[]);for(var i=t.length,r=new Array(i),n=0;n<i;++n){var o=t[n],a=o.modelMatrix,l=s(o.batchId,n);r[n]=new A(e,a,l)}return r}function M(t){for(var r=t.length,n=new Array(r),o=0;o<r;++o)n[o]=h.getTranslation(t._instances[o]._modelMatrix,new i);return e.fromPoints(n)}function R(e,t,i,r){return function(n,o){var a=n.semantic;if(l(a)&&e.indexOf(a)>-1){if(!(t.indexOf(a)>-1))throw new m('Shader program cannot be optimized for instancing. Uniform "'+o+'" in program "'+i+'" uses unsupported semantic "'+a+'"');r[o]=a}}}function O(e,t){if(l(e._instancedUniformsByProgram))return e._instancedUniformsByProgram[t];var i={};e._instancedUniformsByProgram=i;var r=["MODEL","MODELVIEW","CESIUM_RTC_MODELVIEW","MODELVIEWPROJECTION","MODELINVERSE","MODELVIEWINVERSE","MODELVIEWPROJECTIONINVERSE","MODELINVERSETRANSPOSE","MODELVIEWINVERSETRANSPOSE"],n=["MODELVIEW","CESIUM_RTC_MODELVIEW","MODELVIEWPROJECTION","MODELVIEWINVERSETRANSPOSE"],o=e._model._sourceTechniques;for(var a in o)if(o.hasOwnProperty(a)){var s=o[a],u=s.program;if(!l(i[u])){var c={};i[u]=c,S.techniqueUniform(s,R(r,n,t,c))}}return i[t]}function L(e){return function(t,i){var r=O(e,i),n=l(e._batchTable),o=b.replaceMain(t,"czm_instancing_main"),a="",s="";for(var u in r)if(r.hasOwnProperty(u)){var c,d=r[u];"MODELVIEW"===d||"CESIUM_RTC_MODELVIEW"===d?c="czm_instanced_modelView":"MODELVIEWPROJECTION"===d?(c="czm_instanced_modelViewProjection",a+="mat4 czm_instanced_modelViewProjection;\n",s+="czm_instanced_modelViewProjection = czm_projection * czm_instanced_modelView;\n"):"MODELVIEWINVERSETRANSPOSE"===d&&(c="czm_instanced_modelViewInverseTranspose",a+="mat3 czm_instanced_modelViewInverseTranspose;\n",s+="czm_instanced_modelViewInverseTranspose = mat3(czm_instanced_modelView);\n");var h=new RegExp("uniform.*"+u+".*");o=o.replace(h,""),h=new RegExp(u+"\\b","g"),o=o.replace(h,c)}var p,f,m;n?(p="attribute float a_batchId;\n",f="",m=""):(p="",f="attribute vec4 pickColor;\nvarying vec4 v_pickColor;\n",m=" v_pickColor = pickColor;\n");var _="uniform mat4 czm_instanced_modifiedModelView;\nuniform mat4 czm_instanced_nodeTransform;\n"+a+"mat4 czm_instanced_modelView;\nattribute vec4 czm_modelMatrixRow0;\nattribute vec4 czm_modelMatrixRow1;\nattribute vec4 czm_modelMatrixRow2;\n"+p+f+o+"void main()\n{\n mat4 czm_instanced_model = mat4(czm_modelMatrixRow0.x, czm_modelMatrixRow1.x, czm_modelMatrixRow2.x, 0.0, czm_modelMatrixRow0.y, czm_modelMatrixRow1.y, czm_modelMatrixRow2.y, 0.0, czm_modelMatrixRow0.z, czm_modelMatrixRow1.z, czm_modelMatrixRow2.z, 0.0, czm_modelMatrixRow0.w, czm_modelMatrixRow1.w, czm_modelMatrixRow2.w, 1.0);\n czm_instanced_modelView = czm_instanced_modifiedModelView * czm_instanced_model * czm_instanced_nodeTransform;\n"+s+" czm_instancing_main();\n"+m+"}\n";if(n){var g=e._model.gltf,v=w.getDiffuseAttributeOrUniform(g,i);_=e._batchTable.getVertexShaderCallback(!0,"a_batchId",v)(_)}return _}}function N(e){return function(t,i){var r=e._batchTable;if(l(r)){var n=e._model.gltf,o=w.getDiffuseAttributeOrUniform(n,i);t=r.getFragmentShaderCallback(!0,o)(t)}else t="varying vec4 v_pickColor;\n"+t;return t}}function F(e,t){return function(){return h.multiply(t.uniformState.view,e._rtcTransform,e._rtcModelView)}}function B(e){return function(){return e.computedMatrix}}function z(e,t){return function(i,r,o){i=n(i),i.czm_instanced_modifiedModelView=F(e,t),i.czm_instanced_nodeTransform=B(o);var a=O(e,r);for(var s in a)a.hasOwnProperty(s)&&delete i[s];return l(e._batchTable)&&(i=e._batchTable.getUniformMapCallback()(i)),i}}function k(e){return function(t,i){if(l(e._batchTable)){var r=e._model.gltf,n=w.getDiffuseAttributeOrUniform(r,i);t=e._batchTable.getVertexShaderCallback(!0,"a_batchId",n)(t),t="uniform float a_batchId\n;"+t}return t}}function V(e){return function(t,i){var r=e._batchTable;if(l(r)){var n=e._model.gltf,o=w.getDiffuseAttributeOrUniform(n,i);t=r.getFragmentShaderCallback(!0,o)(t)}else t="uniform vec4 czm_pickColor;\n"+t;return t}}function U(e){return function(t){return l(e._batchTable)&&(t=e._batchTable.getUniformMapCallback()(t)),t}}function G(e){var t=e._instances,i=e.length,r=e._center,n=e._vertexBufferTypedArray;l(n)||(n=new Float32Array(12*i)),e._dynamic&&(e._vertexBufferTypedArray=n);for(var o=0;o<i;++o){var a=t[o]._modelMatrix,s=h.clone(a,ae);s[12]-=r.x,s[13]-=r.y,s[14]-=r.z;var u=12*o;n[u+0]=s[0],n[u+1]=s[4],n[u+2]=s[8],n[u+3]=s[12],n[u+4]=s[1],n[u+5]=s[5],n[u+6]=s[9],n[u+7]=s[13],n[u+8]=s[2],n[u+9]=s[6],n[u+10]=s[10],n[u+11]=s[14]}return n}function H(e,t){var i,r=e._instances,n=e.length,a=e._dynamic,s=l(e._batchTable);if(s){var u=new Uint16Array(n);for(i=0;i<n;++i)u[i]=r[i]._instanceId;e._batchIdBuffer=g.createVertexBuffer({context:t,typedArray:u,usage:v.STATIC_DRAW})}if(!s){var c=new Uint8Array(4*n);for(i=0;i<n;++i){var d=e._pickIds[i],h=d.color,p=4*i;c[p]=o.floatToByte(h.red),c[p+1]=o.floatToByte(h.green),c[p+2]=o.floatToByte(h.blue),c[p+3]=o.floatToByte(h.alpha)}e._pickIdBuffer=g.createVertexBuffer({context:t,typedArray:c,usage:v.STATIC_DRAW})}var f=G(e);e._vertexBuffer=g.createVertexBuffer({context:t,typedArray:f,usage:a?v.STREAM_DRAW:v.STATIC_DRAW})}function W(e){var t=G(e);e._vertexBuffer.copyFromArrayView(t)}function q(e,t){for(var i=e._instances,r=i.length,n=new Array(r),o=0;o<r;++o)n[o]=t.createPickId(i[o]);return n}function Y(e,t){var i=e._instancingSupported,r=l(e._batchTable),n=e._allowPicking,o={url:e._url,requestType:e._requestType,gltf:e._gltf,basePath:e._basePath,shadows:e._shadows,cacheKey:void 0,asynchronous:e._asynchronous,allowPicking:n,incrementallyLoadTextures:e._incrementallyLoadTextures,upAxis:e._upAxis,forwardAxis:e._forwardAxis,precreatedAttributes:void 0,vertexShaderLoaded:void 0,fragmentShaderLoaded:void 0,uniformMapLoaded:void 0,pickIdLoaded:e._pickIdLoaded,ignoreCommands:!0,opaquePass:e._opaquePass,imageBasedLightingFactor:e.imageBasedLightingFactor,lightColor:e.lightColor,luminanceAtZenith:e.luminanceAtZenith,sphericalHarmonicCoefficients:e.sphericalHarmonicCoefficients,specularEnvironmentMaps:e.specularEnvironmentMaps};if(r||(e._pickIds=q(e,t)),i){H(e,t);var s=a.getSizeInBytes(a.FLOAT),u={czm_modelMatrixRow0:{index:0,vertexBuffer:e._vertexBuffer,componentsPerAttribute:4,componentDatatype:a.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:12*s,instanceDivisor:1},czm_modelMatrixRow1:{index:0,vertexBuffer:e._vertexBuffer,componentsPerAttribute:4,componentDatatype:a.FLOAT,normalize:!1,offsetInBytes:4*s,strideInBytes:12*s,instanceDivisor:1},czm_modelMatrixRow2:{index:0,vertexBuffer:e._vertexBuffer,componentsPerAttribute:4,componentDatatype:a.FLOAT,normalize:!1,offsetInBytes:8*s,strideInBytes:12*s,instanceDivisor:1}};r&&(u.a_batchId={index:0,vertexBuffer:e._batchIdBuffer,componentsPerAttribute:1,componentDatatype:a.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0,instanceDivisor:1}),r||(u.pickColor={index:0,vertexBuffer:e._pickIdBuffer,componentsPerAttribute:4,componentDatatype:a.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1}),o.precreatedAttributes=u,o.vertexShaderLoaded=L(e),o.fragmentShaderLoaded=N(e),o.uniformMapLoaded=z(e,t),l(e._url)&&(o.cacheKey=e._url.getUrlComponent()+"#instanced")}else o.vertexShaderLoaded=k(e),o.fragmentShaderLoaded=V(e),o.uniformMapLoaded=U(e,t);l(e._url)?e._model=E.fromGltf(o):e._model=new E(o)}function j(e){if(e._debugWireframe!==e.debugWireframe){e._debugWireframe=e.debugWireframe;for(var t=e.debugWireframe?p.LINES:p.TRIANGLES,i=e._drawCommands,r=i.length,n=0;n<r;++n)i[n].primitiveType=t}}function X(e){if(e.debugShowBoundingVolume!==e._debugShowBoundingVolume){e._debugShowBoundingVolume=e.debugShowBoundingVolume;for(var t=e._drawCommands,i=t.length,r=0;r<i;++r)t[r].debugShowBoundingVolume=e.debugShowBoundingVolume}}function Q(e,t){for(var i=t.length,r=e.length,n=e._boundingSphere,o=e._cull,a=0;a<i;++a){var s=y.shallowClone(t[a]);s.instanceCount=r,s.boundingVolume=n,s.cull=o,l(e._batchTable)?s.pickId=e._batchTable.getPickId():s.pickId="v_pickColor",e._drawCommands.push(s)}}function K(e){return function(){return e}}function Z(e){return function(){return e}}function J(t,i){for(var r=t._instances,o=i.length,a=t.length,s=t._batchTable,u=l(s),c=t._cull,d=0;d<o;++d)for(var p=0;p<a;++p){var f=y.shallowClone(i[d]);if(f.modelMatrix=new h,f.boundingVolume=new e,f.cull=c,f.uniformMap=n(f.uniformMap),u)f.uniformMap.a_batchId=K(r[p]._instanceId);else{var m=t._pickIds[p];f.uniformMap.czm_pickColor=Z(m.color)}t._drawCommands.push(f)}}function $(t){for(var i=t._modelCommands,r=i.length,n=t.length,o=t._rtcTransform,a=t._center,s=0;s<r;++s)for(var l=i[s],u=0;u<n;++u){var c=s*n+u,d=t._drawCommands[c],p=h.clone(t._instances[u]._modelMatrix,ae);p[12]-=a.x,p[13]-=a.y,p[14]-=a.z,p=h.multiply(o,p,ae);var f=l.modelMatrix,m=d.modelMatrix;h.multiply(p,f,m);var _=l.boundingVolume,g=d.boundingVolume;e.transform(_,p,g)}}function ee(e){for(var t=e._nodeCommands,i=t.length,r=[],n=0;n<i;++n){var o=t[n];o.show&&r.push(o.command)}return r}function te(e){for(var t=e._nodeCommands,i=t.length,r=0;r<i;r++){if(t[r].command.dirty)return!0}return!1}function ie(e,t){e._drawCommands=[];var i=ee(e._model);t?Q(e,i):(J(e,i),$(e))}function re(e){if(e.shadows!==e._shadows){e._shadows=e.shadows;for(var t=P.castShadows(e.shadows),i=P.receiveShadows(e.shadows),r=e._drawCommands,n=r.length,o=0;o<n;++o){var a=r[o];a.castShadows=t,a.receiveShadows=i}}}var ne={NEEDS_LOAD:0,LOADING:1,LOADED:2,FAILED:3};u(D.prototype,{allowPicking:{get:function(){return this._allowPicking}},length:{get:function(){return this._instances.length}},activeAnimations:{get:function(){return this._model.activeAnimations}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){t.clone(e,this._imageBasedLightingFactor)}}});var oe=new i,ae=new h;return D.prototype.expandBoundingSphere=function(t){var i=h.getTranslation(t,oe);e.expand(this._boundingSphere,i,this._boundingSphere)},D.prototype.update=function(e){if(e.mode!==x.MORPHING&&this.show&&0!==this.length){var t=e.context;if(this._state===ne.NEEDS_LOAD){this._state=ne.LOADING,this._instancingSupported=t.instancedArrays,Y(this,t);var r=this;this._model.readyPromise.otherwise(function(e){r._state=ne.FAILED,r._readyPromise.reject(e)})}var n=this._instancingSupported,o=this._model;if(o.imageBasedLightingFactor=this.imageBasedLightingFactor,o.lightColor=this.lightColor,o.luminanceAtZenith=this.luminanceAtZenith,o.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,o.specularEnvironmentMaps=this.specularEnvironmentMaps,o.update(e),o.ready&&this._state===ne.LOADING){this._state=ne.LOADED,this._ready=!0;var a=o.boundingSphere.radius+i.magnitude(o.boundingSphere.center);return this._boundingSphere.radius+=a,this._modelCommands=ee(o),ie(this,n),void this._readyPromise.resolve(this)}if(this._state===ne.LOADED){var s=e.mode!==this._mode,l=this.modelMatrix,u=!h.equals(this._modelMatrix,l);if(s||u){this._mode=e.mode,h.clone(l,this._modelMatrix);var c=h.multiplyByTranslation(this._modelMatrix,this._center,this._rtcTransform);this._mode!==x.SCENE3D&&(c=_.basisTo2D(e.mapProjection,c,c)),h.getTranslation(c,this._boundingSphere.center)}n&&this._dirty&&(this._dynamic=!0,this._dirty=!1,W(this)),te(o)&&ie(this,n),!n&&(o.dirty||this._dirty||s||u)&&$(this),re(this),j(this),X(this);var d=e.passes;if(d.render||d.pick)for(var p=e.commandList,f=this._drawCommands,m=f.length,g=0;g<m;++g)p.push(f[g])}}},D.prototype.isDestroyed=function(){return!1},D.prototype.destroy=function(){this._model=this._model&&this._model.destroy();var e=this._pickIds;if(l(e))for(var t=e.length,i=0;i<t;++i)e[i].destroy();return c(this)},D}),define("Scene/Instanced3DModel3DTileContent",["../Core/AttributeCompression","../Core/Cartesian3","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/getBaseUri","../Core/getStringFromTypedArray","../Core/Matrix3","../Core/Matrix4","../Core/Quaternion","../Core/RequestType","../Core/RuntimeError","../Core/Transforms","../Core/TranslationRotationScale","../Renderer/Pass","./Axis","./Cesium3DTileBatchTable","./Cesium3DTileFeature","./Cesium3DTileFeatureTable","./ModelInstanceCollection"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._modelInstanceCollection=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,D(this,r,n)}function P(e){return function(){return e._batchTable.getPickId()}}function D(i,a,s){var l=n(s,0);s=l;var u=new Uint8Array(a),d=new DataView(a);s+=M;var h=d.getUint32(s,!0);if(1!==h)throw new v("Only Instanced 3D Model version 1 is supported. Version "+h+" is not.");s+=M;var E=d.getUint32(s,!0);s+=M;var D=d.getUint32(s,!0);if(0===D)throw new v("featureTableJsonByteLength is zero, the feature table must be defined.");s+=M;var I=d.getUint32(s,!0);s+=M;var L=d.getUint32(s,!0);s+=M;var N=d.getUint32(s,!0);s+=M;var F=d.getUint32(s,!0) -;if(1!==F&&0!==F)throw new v("Only glTF format 0 (uri) or 1 (embedded) are supported. Format "+F+" is not.");s+=M;var B=p(u,s,D),z=JSON.parse(B);s+=D;var k=new Uint8Array(a,s,I);s+=I;var V=new A(z,k),U=V.getGlobalProperty("INSTANCES_LENGTH");if(V.featuresLength=U,!o(U))throw new v("Feature table global property: INSTANCES_LENGTH must be defined");var G,H;if(L>0){var W=p(u,s,L);G=JSON.parse(W),s+=L,N>0&&(H=new Uint8Array(a,s,N),H=new Uint8Array(H),s+=N)}i._batchTable=new T(i,U,G,H);var q=l+E-s;if(0===q)throw new v("glTF byte length is zero, i3dm must have a glTF to instance.");var Y;s%4==0?Y=new Uint8Array(a,s,q):(x._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),Y=new Uint8Array(u.subarray(s,s+q)));var j=i._tileset,X={instances:new Array(U),batchTable:i._batchTable,cull:!1,url:void 0,requestType:g.TILES3D,gltf:void 0,basePath:void 0,incrementallyLoadTextures:!1,upAxis:j._gltfUpAxis,forwardAxis:S.X,opaquePass:b.CESIUM_3D_TILE,pickIdLoaded:P(i),imageBasedLightingFactor:j.imageBasedLightingFactor,lightColor:j.lightColor,luminanceAtZenith:j.luminanceAtZenith,sphericalHarmonicCoefficients:j.sphericalHarmonicCoefficients,specularEnvironmentMaps:j.specularEnvironmentMaps};if(0===F){var Q=p(Y);Q=Q.replace(/[\s\0]+$/,""),X.url=i._resource.getDerivedResource({url:Q})}else X.gltf=Y,X.basePath=i._resource.clone();var K,Z=V.getGlobalProperty("EAST_NORTH_UP"),J=V.getGlobalProperty("RTC_CENTER",r.FLOAT,3);o(J)&&(K=t.unpack(J));for(var $=X.instances,ee=new t,te=new Array(3),ie=new t,re=new t,ne=new t,oe=new f,ae=new _,se=new t,le=new C,ue=new m,ce=0;ce<U;ce++){var de=V.getProperty("POSITION",r.FLOAT,3,ce,R);if(!o(de)){de=te;var he=V.getProperty("POSITION_QUANTIZED",r.UNSIGNED_SHORT,3,ce,R);if(!o(he))throw new v("Either POSITION or POSITION_QUANTIZED must be defined for each instance.");var pe=V.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",r.FLOAT,3);if(!o(pe))throw new v("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");var fe=V.getGlobalProperty("QUANTIZED_VOLUME_SCALE",r.FLOAT,3);if(!o(fe))throw new v("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");for(var me=0;me<3;me++)de[me]=he[me]/65535*fe[me]+pe[me]}t.unpack(de,0,ee),o(K)&&t.add(ee,K,ee),le.translation=ee;var _e=V.getProperty("NORMAL_UP",r.FLOAT,3,ce,R),ge=V.getProperty("NORMAL_RIGHT",r.FLOAT,3,ce,O),ve=!1;if(o(_e)){if(!o(ge))throw new v("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");t.unpack(_e,0,re),t.unpack(ge,0,ie),ve=!0}else{var ye=V.getProperty("NORMAL_UP_OCT32P",r.UNSIGNED_SHORT,2,ce,R),Ce=V.getProperty("NORMAL_RIGHT_OCT32P",r.UNSIGNED_SHORT,2,ce,O);if(o(ye)){if(!o(Ce))throw new v("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");e.octDecodeInRange(ye[0],ye[1],65535,re),e.octDecodeInRange(Ce[0],Ce[1],65535,ie),ve=!0}else Z?(y.eastNorthUpToFixedFrame(ee,c.WGS84,ue),m.getRotation(ue,oe)):f.clone(f.IDENTITY,oe)}ve&&(t.cross(ie,re,ne),t.normalize(ne,ne),f.setColumn(oe,0,ie,oe),f.setColumn(oe,1,re,oe),f.setColumn(oe,2,ne,oe)),_.fromRotationMatrix(oe,ae),le.rotation=ae,se=t.fromElements(1,1,1,se);var be=V.getProperty("SCALE",r.FLOAT,1,ce);o(be)&&t.multiplyByScalar(se,be,se);var Se=V.getProperty("SCALE_NON_UNIFORM",r.FLOAT,3,ce,R);o(Se)&&(se.x*=Se[0],se.y*=Se[1],se.z*=Se[2]),le.scale=se;var Te=V.getProperty("BATCH_ID",r.UNSIGNED_SHORT,1,ce);o(Te)||(Te=ce),m.fromTranslationRotationScale(le,ue);var Ee=ue.clone();$[ce]={modelMatrix:Ee,batchId:Te}}i._modelInstanceCollection=new w(X)}function I(e){var t=e.featuresLength;if(!o(e._features)&&t>0){for(var i=new Array(t),r=0;r<t;++r)i[r]=new E(e,r);e._features=i}}if(!d.supportsTypedArrays())return{};x._deprecationWarning=s,a(x.prototype,{featuresLength:{get:function(){return this._batchTable.featuresLength}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){var e=this._modelInstanceCollection._model;return o(e)?e.trianglesLength:0}},geometryByteLength:{get:function(){var e=this._modelInstanceCollection._model;return o(e)?e.geometryByteLength:0}},texturesByteLength:{get:function(){var e=this._modelInstanceCollection._model;return o(e)?e.texturesByteLength:0}},batchTableByteLength:{get:function(){return this._batchTable.memorySizeInBytes}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._modelInstanceCollection.readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){return this._batchTable}}});var M=Uint32Array.BYTES_PER_ELEMENT,R=new Array(4),O=new Array(4);return x.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)},x.prototype.getFeature=function(e){this.featuresLength;return I(this),this._features[e]},x.prototype.applyDebugSettings=function(e,t){t=e?t:i.WHITE,this._batchTable.setAllColor(t)},x.prototype.applyStyle=function(e){this._batchTable.applyStyle(e)},x.prototype.update=function(e,t){var i=t.commandList.length;this._batchTable.update(e,t),this._modelInstanceCollection.modelMatrix=this._tile.computedTransform,this._modelInstanceCollection.shadows=this._tileset.shadows,this._modelInstanceCollection.lightColor=this._tileset.lightColor,this._modelInstanceCollection.luminanceAtZenith=this._tileset.luminanceAtZenith,this._modelInstanceCollection.sphericalHarmonicCoefficients=this._tileset.sphericalHarmonicCoefficients,this._modelInstanceCollection.specularEnvironmentMaps=this._tileset.specularEnvironmentMaps,this._modelInstanceCollection.debugWireframe=this._tileset.debugWireframe;var r=this._modelInstanceCollection._model;if(o(r)){var n=this._tileset.clippingPlanes;r.clippingPlanesOriginMatrix=this._tileset.clippingPlanesOriginMatrix,o(n)&&this._tile.clippingPlanesDirty&&(r._clippingPlanes=n.enabled&&this._tile._isClipped?n:void 0),o(n)&&o(r._clippingPlanes)&&r._clippingPlanes!==n&&(r._clippingPlanes=n)}this._modelInstanceCollection.update(t),i<t.commandList.length&&(t.passes.render||t.passes.pick)&&this._batchTable.addDerivedCommands(t,i,!1)},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){return this._modelInstanceCollection=this._modelInstanceCollection&&this._modelInstanceCollection.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),l(this)},x}),define("Scene/Cesium3DTileRefine",["../Core/freezeObject"],function(e){"use strict";return e({ADD:0,REPLACE:1})}),define("Scene/PointCloud",["../Core/arraySlice","../Core/BoundingSphere","../Core/Cartesian3","../Core/Cartesian4","../Core/Math","../Core/Check","../Core/Color","../Core/combine","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/FeatureDetection","../Core/getStringFromTypedArray","../Core/Matrix4","../Core/oneTimeWarning","../Core/OrthographicFrustum","../Core/Plane","../Core/PrimitiveType","../Core/RuntimeError","../Core/Transforms","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../ThirdParty/when","./BlendingState","./Cesium3DTileBatchTable","./Cesium3DTileFeature","./Cesium3DTileFeatureTable","./DracoLoader","./getClipAndStyleCode","./getClippingFunction","./SceneMode","./ShadowMode","./StencilConstants"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V){"use strict";function U(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=a.clone(a.DARKGRAY),this._highlightColor=a.clone(a.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=$.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._readyPromise=I.defer(),this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=u(e.opaquePass,A.OPAQUE),this._cull=u(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=m.clone(m.IDENTITY),this._modelMatrix=m.clone(m.IDENTITY),this.time=0,this.shadows=k.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,G(this,e)}function G(t,r){var n=r.arrayBuffer,o=u(r.byteOffset,0),d=new Uint8Array(n),h=new DataView(n);o+=te;var p=h.getUint32(o,!0);if(1!==p)throw new C("Only Point Cloud tile version 1 is supported. Version "+p+" is not.");o+=te,o+=te;var m=h.getUint32(o,!0);if(0===m)throw new C("Feature table must have a byte length greater than zero");o+=te;var _=h.getUint32(o,!0);o+=te;var g=h.getUint32(o,!0);o+=te;var v=h.getUint32(o,!0);o+=te;var y=f(d,o,m),b=JSON.parse(y);o+=m;var S=new Uint8Array(n,o,_);o+=_;var T,E;if(g>0){var A=f(d,o,g);T=JSON.parse(A),o+=g,v>0&&(E=new Uint8Array(n,o,v),o+=v)}var w=new L(b,S),x=w.getGlobalProperty("POINTS_LENGTH");if(w.featuresLength=x,!c(x))throw new C("Feature table global property: POINTS_LENGTH must be defined");var P=w.getGlobalProperty("RTC_CENTER",l.FLOAT,3);c(P)&&(t._rtcCenter=i.unpack(P));var D,I,M,O,N,F,B,z=!1,k=!1,V=!1,U=!1,G=!1,H=!1,W=!1,q=!1,Y=c(b.extensions)?b.extensions["3DTILES_draco_point_compression"]:void 0,j=c(T)&&c(T.extensions)?T.extensions["3DTILES_draco_point_compression"]:void 0;if(c(j)&&(B=j.properties),c(Y)){F=Y.properties;var X=Y.byteOffset,Q=Y.byteLength;if(!c(F)||!c(X)||!c(Q))throw new C("Draco properties, byteOffset, and byteLength must be defined");N=e(S,X,X+Q),z=c(F.POSITION),k=c(F.RGB)||c(F.RGBA),V=c(F.NORMAL),U=c(F.BATCH_ID),H=c(F.RGBA),t._decodingState=$.NEEDS_DECODE}var K;if(c(N)&&(K={buffer:N,featureTableProperties:F,batchTableProperties:B,properties:s(F,B),dequantizeInShader:t._dequantizeInShader}),!z)if(c(b.POSITION))D=w.getPropertyArray("POSITION",l.FLOAT,3),z=!0;else if(c(b.POSITION_QUANTIZED)){D=w.getPropertyArray("POSITION_QUANTIZED",l.UNSIGNED_SHORT,3),G=!0,z=!0;var Z=w.getGlobalProperty("QUANTIZED_VOLUME_SCALE",l.FLOAT,3);if(!c(Z))throw new C("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");t._quantizedVolumeScale=i.unpack(Z),t._quantizedRange=65535;var J=w.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",l.FLOAT,3);if(!c(J))throw new C("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");t._quantizedVolumeOffset=i.unpack(J)}if(k||(c(b.RGBA)?(I=w.getPropertyArray("RGBA",l.UNSIGNED_BYTE,4),H=!0,k=!0):c(b.RGB)?(I=w.getPropertyArray("RGB",l.UNSIGNED_BYTE,3),k=!0):c(b.RGB565)&&(I=w.getPropertyArray("RGB565",l.UNSIGNED_SHORT,1),W=!0,k=!0)),V||(c(b.NORMAL)?(M=w.getPropertyArray("NORMAL",l.FLOAT,3),V=!0):c(b.NORMAL_OCT16P)&&(M=w.getPropertyArray("NORMAL_OCT16P",l.UNSIGNED_BYTE,2),q=!0,V=!0)),U||c(b.BATCH_ID)&&(O=w.getPropertyArray("BATCH_ID",l.UNSIGNED_SHORT,1),U=!0),!z)throw new C("Either POSITION or POSITION_QUANTIZED must be defined.");if(c(b.CONSTANT_RGBA)){var ee=w.getGlobalProperty("CONSTANT_RGBA",l.UNSIGNED_BYTE,4);t._constantColor=a.fromBytes(ee[0],ee[1],ee[2],ee[3],t._constantColor)}if(U){var ie=w.getGlobalProperty("BATCH_LENGTH");if(!c(ie))throw new C("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");c(E)&&(E=new Uint8Array(E)),c(t._batchTableLoaded)&&t._batchTableLoaded(ie,T,E)}var re;!U&&c(E)&&(re=R.getBinaryProperties(x,T,E)),t._parsedContent={positions:D,colors:I,normals:M,batchIds:O,styleableProperties:re,draco:K},t._pointsLength=x,t._isQuantized=G,t._isOctEncoded16P=q,t._isRGB565=W,t._isTranslucent=H,t._hasColors=k,t._hasNormals=V,t._hasBatchIds=U}function H(e){if(!c(ee)){n.setRandomNumberSeed(0),ee=new Array(e);for(var t=0;t<e;++t)ee[t]=n.nextRandomNumber()}return ee}function W(e){for(var r=e.length/3,o=Math.min(r,20),a=H(20),s=Number.MAX_VALUE,l=-Number.MAX_VALUE,u=i.fromElements(s,s,s,ie),c=i.fromElements(l,l,l,re),d=0;d<o;++d){var h=Math.floor(a[d]*r),p=i.unpack(e,3*h,ne);i.minimumByComponent(u,p,u),i.maximumByComponent(c,p,c)}var f=t.fromCornerPoints(u,c);return f.radius+=n.EPSILON2,f}function q(e,t){var i=l.fromTypedArray(e);return i===l.INT||i===l.UNSIGNED_INT||i===l.DOUBLE?(_("Cast pnts property to floats",'Point cloud property "'+t+'" will be casted to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.'),new Float32Array(e)):e}function Y(e,r){var n,o,a=r.context,s=e._parsedContent,u=e._pointsLength,d=s.positions,h=s.colors,p=s.normals,f=s.batchIds,_=s.styleableProperties,g=c(_),v=e._isQuantized,C=e._isQuantizedDraco,b=e._isOctEncoded16P,x=e._isOctEncodedDraco,P=e._quantizedRange,I=e._octEncodedRange,R=e._isRGB565,O=e._isTranslucent,L=e._hasColors,N=e._hasNormals,F=e._hasBatchIds,B=[],z={};if(e._styleableShaderAttributes=z,g){var k=he;for(var U in _)if(_.hasOwnProperty(U)){var G=_[U],H=q(G.typedArray,U);n=G.componentCount,o=l.fromTypedArray(H);var Y=S.createVertexBuffer({context:a,typedArray:H,usage:T.STATIC_DRAW});e._geometryByteLength+=Y.sizeInBytes;var j={index:k,vertexBuffer:Y,componentsPerAttribute:n,componentDatatype:o,normalize:!1,offsetInBytes:0,strideInBytes:0};B.push(j),z[U]={location:k,componentCount:n},++k}}var X=S.createVertexBuffer({context:a,typedArray:d,usage:T.STATIC_DRAW});e._geometryByteLength+=X.sizeInBytes;var Q;L&&(Q=S.createVertexBuffer({context:a,typedArray:h,usage:T.STATIC_DRAW}),e._geometryByteLength+=Q.sizeInBytes);var K;N&&(K=S.createVertexBuffer({context:a,typedArray:p,usage:T.STATIC_DRAW}),e._geometryByteLength+=K.sizeInBytes);var Z;F&&(f=q(f,"batchIds"),Z=S.createVertexBuffer({context:a,typedArray:f,usage:T.STATIC_DRAW}),e._geometryByteLength+=Z.sizeInBytes);var J=[];if(o=v?l.UNSIGNED_SHORT:C?P<=255?l.UNSIGNED_BYTE:l.UNSIGNED_SHORT:l.FLOAT,J.push({index:le,vertexBuffer:X,componentsPerAttribute:3,componentDatatype:o,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(e._boundingSphere=v||C?t.fromCornerPoints(i.ZERO,e._quantizedVolumeScale):W(d)),L)if(R)J.push({index:ue,vertexBuffer:Q,componentsPerAttribute:1,componentDatatype:l.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{var $=O?4:3;J.push({index:ue,vertexBuffer:Q,componentsPerAttribute:$,componentDatatype:l.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}N&&(b?(n=2,o=l.UNSIGNED_BYTE):x?(n=2,o=I<=255?l.UNSIGNED_BYTE:l.UNSIGNED_SHORT):(n=3,o=l.FLOAT),J.push({index:ce,vertexBuffer:K,componentsPerAttribute:n,componentDatatype:o,normalize:!1,offsetInBytes:0,strideInBytes:0})),F&&J.push({index:de,vertexBuffer:Z,componentsPerAttribute:1,componentDatatype:l.fromTypedArray(f),normalize:!1,offsetInBytes:0,strideInBytes:0}),g&&(J=J.concat(B));var ee=new D({context:a,attributes:J}),te={depthTest:{enabled:!0}};e._opaquePass===A.CESIUM_3D_TILE&&(te.stencilTest=V.setCesium3DTileBit(),te.stencilMask=V.CESIUM_3D_TILE_MASK),e._opaqueRenderState=w.fromCache(te),e._translucentRenderState=w.fromCache({depthTest:{enabled:!0},depthMask:!1,blending:M.ALPHA_BLEND}),e._drawCommand=new E({boundingVolume:new t,cull:e._cull,modelMatrix:new m,primitiveType:y.POINTS,vertexArray:ee,count:u,shaderProgram:void 0,uniformMap:void 0,renderState:O?e._translucentRenderState:e._opaqueRenderState,pass:O?A.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function j(e,t){var r=t.context,n=e._isQuantized,o=e._isQuantizedDraco,l=e._isOctEncodedDraco,d={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){var i=oe;if(i.x=e._attenuation?e.maximumAttenuation:e._pointSize,i.y=e.time,e._attenuation){var n,o=t.camera.frustum;n=t.mode===z.SCENE2D||o instanceof g?Number.POSITIVE_INFINITY:r.drawingBufferHeight/t.camera.frustum.sseDenominator,i.z=e.geometricError*e.geometricErrorScale,i.w=n}return i},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){var t=e.clippingPlanes;return e.isClipped?t.texture:r.defaultTexture},u_clippingPlanesEdgeStyle:function(){var t=e.clippingPlanes;if(!c(t))return a.TRANSPARENT;var i=a.clone(t.edgeColor,se);return i.alpha=t.edgeWidth,i},u_clippingPlanesMatrix:function(){var t=e.clippingPlanes;if(!c(t))return m.IDENTITY;var i=u(e.clippingPlanesOriginMatrix,e._modelMatrix);return m.multiply(r.uniformState.view3D,i,pe),m.multiply(pe,t.modelMatrix,pe)}};(n||o||l)&&(d=s(d,{u_quantizedVolumeScaleAndOctEncodedRange:function(){var t=ae;if(c(e._quantizedVolumeScale)){var r=i.clone(e._quantizedVolumeScale,t);i.divideByScalar(r,e._quantizedRange,t)}return t.w=e._octEncodedRange,t}})),c(e._uniformMapLoaded)&&(d=e._uniformMapLoaded(d)),e._drawCommand.uniformMap=d}function X(e,t){for(var i=/czm_tiles3d_style_(\w+)/g,r=i.exec(e);null!==r;){var n=r[1];-1===t.indexOf(n)&&t.push(n),r=i.exec(e)}}function Q(e,t){for(var i=e.numberOfAttributes,r=0;r<i;++r){var n=e.getAttribute(r);if(n.index===t)return n}}function K(e){for(var t=fe.length,i=0;i<t;++i){var r=fe[i],n="czm_tiles3d_style_"+r,o=r.toLowerCase();e=e.replace(new RegExp(n+"(\\W)","g"),o+"$1")}return e.replace("()","(vec3 position, vec3 position_absolute, vec4 color, vec3 normal)")}function Z(e,t,i){var r,n,o,a,s,l,u=t.context,d=c(i),h=e._isQuantized,p=e._isQuantizedDraco,f=e._isOctEncoded16P,m=e._isOctEncodedDraco,_=e._isRGB565,g=e._isTranslucent,v=e._hasColors,y=e._hasNormals,b=e._hasBatchIds,S=e._backFaceCulling,T=e._normalShading,E=e._drawCommand.vertexArray,A=e.clippingPlanes,w=e._attenuation,P=g;if(d){var D={translucent:!1};a=i.getColorShaderFunction("getColorFromStyle","czm_tiles3d_style_",D),s=i.getShowShaderFunction("getShowFromStyle","czm_tiles3d_style_",D),l=i.getPointSizeShaderFunction("getPointSizeFromStyle","czm_tiles3d_style_",D),c(a)&&D.translucent&&(P=!0)}e._styleTranslucent=P;var I=c(a),M=c(s),R=c(l),O=e.isClipped,L=[];I&&(X(a,L),a=K(a)),M&&(X(s,L),s=K(s)),R&&(X(l,L),l=K(l));var N=L.indexOf("COLOR")>=0,z=L.indexOf("NORMAL")>=0,k=L.filter(function(e){return-1===fe.indexOf(e)});if(z&&!y)throw new C("Style references the NORMAL semantic but the point cloud does not have normals");var V=e._styleableShaderAttributes;for(n in V)if(V.hasOwnProperty(n)){o=V[n];var U=k.indexOf(n)>=0,G=Q(E,o.location);G.enabled=U}var H=v&&(!I||N);if(v){Q(E,ue).enabled=H}var W=y&&(T||S||z);if(y){Q(E,ce).enabled=W}var q={a_position:le};H&&(q.a_color=ue),W&&(q.a_normal=ce),b&&(q.a_batchId=de);var Y="",Z=k.length;for(r=0;r<Z;++r){if(n=k[r],o=V[n],!c(o))throw new C('Style references a property "'+n+'" that does not exist or is not styleable.');var J,$=o.componentCount,ee="czm_tiles3d_style_"+n;J=1===$?"float":"vec"+$,Y+="attribute "+J+" "+ee+"; \n",q[ee]=o.location}j(e,t);var te="attribute vec3 a_position; \nvarying vec4 v_color; \nuniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; \nuniform vec4 u_constantColor; \nuniform vec4 u_highlightColor; \n";te+="float u_pointSize; \nfloat u_time; \n",w&&(te+="float u_geometricError; \nfloat u_depthMultiplier; \n"),te+=Y,H&&(te+=g?"attribute vec4 a_color; \n":_?"attribute float a_color; \nconst float SHIFT_RIGHT_11 = 1.0 / 2048.0; \nconst float SHIFT_RIGHT_5 = 1.0 / 32.0; \nconst float SHIFT_LEFT_11 = 2048.0; \nconst float SHIFT_LEFT_5 = 32.0; \nconst float NORMALIZE_6 = 1.0 / 64.0; \nconst float NORMALIZE_5 = 1.0 / 32.0; \n":"attribute vec3 a_color; \n"),W&&(te+=f||m?"attribute vec2 a_normal; \n":"attribute vec3 a_normal; \n"),b&&(te+="attribute float a_batchId; \n"),(h||p||m)&&(te+="uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; \n"),I&&(te+=a),M&&(te+=s),R&&(te+=l),te+="void main() \n{ \n u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; \n u_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; \n",w&&(te+=" u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; \n u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; \n"),te+=H?g?" vec4 color = a_color; \n":_?" float compressed = a_color; \n float r = floor(compressed * SHIFT_RIGHT_11); \n compressed -= r * SHIFT_LEFT_11; \n float g = floor(compressed * SHIFT_RIGHT_5); \n compressed -= g * SHIFT_LEFT_5; \n float b = compressed; \n vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); \n vec4 color = vec4(rgb, 1.0); \n":" vec4 color = vec4(a_color, 1.0); \n":" vec4 color = u_constantColor; \n",te+=h||p?" vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; \n":" vec3 position = a_position; \n",te+=" vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); \n",W?(te+=f?" vec3 normal = czm_octDecode(a_normal); \n":m?" vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; \n":" vec3 normal = a_normal; \n",te+=" vec3 normalEC = czm_normal * normal; \n"):te+=" vec3 normal = vec3(1.0); \n",I&&(te+=" color = getColorFromStyle(position, position_absolute, color, normal); \n"),M&&(te+=" float show = float(getShowFromStyle(position, position_absolute, color, normal)); \n"),te+=R?" gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal); \n":w?" vec4 positionEC = czm_modelView * vec4(position, 1.0); \n float depth = -positionEC.z; \n gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); \n":" gl_PointSize = u_pointSize; \n",te+=" color = color * u_highlightColor; \n",W&&T&&(te+=" float diffuseStrength = czm_getLambertDiffuse(czm_sunDirectionEC, normalEC); \n diffuseStrength = max(diffuseStrength, 0.4); \n color.xyz *= diffuseStrength; \n"),te+=" v_color = color; \n gl_Position = czm_modelViewProjection * vec4(position, 1.0); \n",W&&S&&(te+=" float visible = step(-normalEC.z, 0.0); \n gl_Position *= visible; \n gl_PointSize *= visible; \n"),M&&(te+=" gl_Position *= show; \n gl_PointSize *= show; \n"),te+="} \n";var ie="varying vec4 v_color; \n";O&&(ie+="uniform sampler2D u_clippingPlanes; \nuniform mat4 u_clippingPlanesMatrix; \nuniform vec4 u_clippingPlanesEdgeStyle; \n",ie+="\n",ie+=B(A,u),ie+="\n"),ie+="void main() \n{ \n gl_FragColor = czm_gammaCorrect(v_color); \n",O&&(ie+=F("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),ie+="} \n",c(e._vertexShaderLoaded)&&(te=e._vertexShaderLoaded(te)),c(e._fragmentShaderLoaded)&&(ie=e._fragmentShaderLoaded(ie));var re=e._drawCommand;c(re.shaderProgram)&&re.shaderProgram.destroy(),re.shaderProgram=x.fromCache({context:u,vertexShaderSource:te,fragmentShaderSource:ie,attributeLocations:q});try{re.shaderProgram._bind()}catch(e){throw new C("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function J(e,t){if(e._decodingState===$.READY)return!1;if(e._decodingState===$.NEEDS_DECODE){var r=e._parsedContent,n=r.draco,o=N.decodePointCloud(n,t);c(o)&&(e._decodingState=$.DECODING,o.then(function(t){e._decodingState=$.READY;var o=c(t.POSITION)?t.POSITION.array:void 0,a=c(t.RGB)?t.RGB.array:void 0,s=c(t.RGBA)?t.RGBA.array:void 0,l=c(t.NORMAL)?t.NORMAL.array:void 0,d=c(t.BATCH_ID)?t.BATCH_ID.array:void 0,h=c(o)&&c(t.POSITION.data.quantization),p=c(l)&&c(t.NORMAL.data.quantization);if(h){var f=t.POSITION.data.quantization,m=f.range;e._quantizedVolumeScale=i.fromElements(m,m,m),e._quantizedVolumeOffset=i.unpack(f.minValues),e._quantizedRange=(1<<f.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<t.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);var _=r.styleableProperties,g=n.batchTableProperties;for(var v in g)if(g.hasOwnProperty(v)){var y=t[v];c(_)||(_={}),_[v]={typedArray:y.array,componentCount:y.data.componentsPerAttribute}}r.positions=u(o,r.positions),r.colors=u(u(s,a),r.colors),r.normals=u(l,r.normals),r.batchIds=u(d,r.batchIds),r.styleableProperties=_}).otherwise(function(t){e._decodingState=$.FAILED,e._readyPromise.reject(t)}))}return!0}if(!p.supportsTypedArrays())return{};var $={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};d(U.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},color:{get:function(){return a.clone(this._highlightColor)},set:function(e){this._highlightColor=a.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(c(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=t.clone(e)}}});var ee,te=Uint32Array.BYTES_PER_ELEMENT,ie=new i,re=new i,ne=new i,oe=new r,ae=new r,se=new a,le=0,ue=1,ce=2,de=3,he=4,pe=new m,fe=["POSITION","COLOR","NORMAL","POSITION_ABSOLUTE"],me=new r,_e=new i;return U.prototype.update=function(e){if(!J(this,e.context)){var n=!1,o=!m.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),c(this._drawCommand)||(Y(this,e),o=!0,n=!0,this._ready=!0,this._readyPromise.resolve(this),this._parsedContent=void 0),o){m.clone(this.modelMatrix,this._modelMatrix);var a=this._drawCommand.modelMatrix;if(m.clone(this._modelMatrix,a),c(this._rtcCenter)&&m.multiplyByTranslation(a,this._rtcCenter,a),c(this._quantizedVolumeOffset)&&m.multiplyByTranslation(a,this._quantizedVolumeOffset,a),e.mode!==z.SCENE3D){var s=e.mapProjection,l=m.getColumn(a,3,me);r.equals(l,r.UNIT_W)||b.basisTo2D(s,a,a)}var u=this._drawCommand.boundingVolume;if(t.clone(this._boundingSphere,u),this._cull){var d=u.center;m.multiplyByPoint(a,d,d);var h=m.getScale(a,_e);u.radius*=i.maximumComponent(h)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,n=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,n=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,n=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,n=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,n=!0),n&&Z(this,e,this._style),this._drawCommand.castShadows=k.castShadows(this.shadows),this._drawCommand.receiveShadows=k.receiveShadows(this.shadows);var p=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=p?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=p?A.TRANSLUCENT:this._opaquePass;var f=e.commandList,_=e.passes;(_.render||_.pick)&&f.push(this._drawCommand)}},U.prototype.isDestroyed=function(){return!1},U.prototype.destroy=function(){var e=this._drawCommand;return c(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),h(this)},U}),define("Shaders/PostProcessStages/PointCloudEyeDomeLighting",[],function(){"use strict";return"#extension GL_EXT_frag_depth : enable\nuniform sampler2D u_pointCloud_colorGBuffer;\nuniform sampler2D u_pointCloud_depthGBuffer;\nuniform vec3 u_distancesAndEdlStrength;\nvarying vec2 v_textureCoordinates;\nvec2 neighborContribution(float log2Depth, vec2 padding)\n{\nfloat depthOrLogDepth = czm_unpackDepth(texture2D(u_pointCloud_depthGBuffer, v_textureCoordinates + padding));\nif (depthOrLogDepth == 0.0) {\nreturn vec2(0.0);\n}\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(v_textureCoordinates + padding, depthOrLogDepth);\nreturn vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0);\n}\nvoid main()\n{\nfloat depthOrLogDepth = czm_unpackDepth(texture2D(u_pointCloud_depthGBuffer, v_textureCoordinates));\nvec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth);\neyeCoordinate /= eyeCoordinate.w;\nfloat log2Depth = log2(-eyeCoordinate.z);\nif (depthOrLogDepth == 0.0)\n{\ndiscard;\n}\nvec4 color = texture2D(u_pointCloud_colorGBuffer, v_textureCoordinates);\nfloat distX = u_distancesAndEdlStrength.x;\nfloat distY = u_distancesAndEdlStrength.y;\nvec2 responseAndCount = vec2(0.0);\nresponseAndCount += neighborContribution(log2Depth, vec2(0, distY));\nresponseAndCount += neighborContribution(log2Depth, vec2(distX, 0));\nresponseAndCount += neighborContribution(log2Depth, vec2(0, -distY));\nresponseAndCount += neighborContribution(log2Depth, vec2(-distX, 0));\nfloat response = responseAndCount.x / responseAndCount.y;\nfloat shade = exp(-response * 300.0 * u_distancesAndEdlStrength.z);\ncolor.rgb *= shade;\ngl_FragColor = vec4(color);\n#ifdef LOG_DEPTH\nczm_writeLogDepth(1.0 + (czm_projection * vec4(eyeCoordinate.xyz, 1.0)).w);\n#else\ngl_FragDepthEXT = czm_eyeToWindowCoordinates(vec4(eyeCoordinate.xyz, 1.0)).z;\n#endif\n}\n"}),define("Scene/PointCloudEyeDomeLighting",["../Core/Cartesian3","../Core/Color","../Core/defined","../Core/destroyObject","../Core/FeatureDetection","../Core/PixelFormat","../Core/PrimitiveType","../Renderer/ClearCommand","../Renderer/DrawCommand","../Renderer/Framebuffer","../Renderer/Pass","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/Sampler","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Scene/BlendingState","../Scene/StencilConstants","../Shaders/PostProcessStages/PointCloudEyeDomeLighting"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b){"use strict";function S(){this._framebuffer=void 0,this._colorGBuffer=void 0,this._depthGBuffer=void 0,this._depthTexture=void 0,this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}function T(){return new p({wrapS:v.CLAMP_TO_EDGE,wrapT:v.CLAMP_TO_EDGE,minificationFilter:g.NEAREST,magnificationFilter:_.NEAREST})}function E(e){var t=e._framebuffer;i(t)&&(e._colorGBuffer.destroy(),e._depthGBuffer.destroy(),e._depthTexture.destroy(),t.destroy(),e._framebuffer=void 0,e._colorGBuffer=void 0,e._depthGBuffer=void 0,e._depthTexture=void 0,e._drawCommand=void 0,e._clearCommand=void 0)}function A(e,t){var i=t.drawingBufferWidth,r=t.drawingBufferHeight,n=new m({context:t,width:i,height:r,pixelFormat:o.RGBA,pixelDatatype:d.UNSIGNED_BYTE,sampler:T()}),a=new m({context:t,width:i,height:r,pixelFormat:o.RGBA,pixelDatatype:d.UNSIGNED_BYTE,sampler:T()}),s=new m({context:t,width:i,height:r,pixelFormat:o.DEPTH_COMPONENT,pixelDatatype:d.UNSIGNED_INT,sampler:T()});e._framebuffer=new u({context:t,colorTextures:[n,a],depthTexture:s,destroyAttachments:!1}),e._colorGBuffer=n,e._depthGBuffer=a,e._depthTexture=s}function w(e,i){var r=b,n={u_pointCloud_colorGBuffer:function(){return e._colorGBuffer},u_pointCloud_depthGBuffer:function(){return e._depthGBuffer},u_distancesAndEdlStrength:function(){return I.x=e._radius/i.drawingBufferWidth,I.y=e._radius/i.drawingBufferHeight,I.z=e._strength,I}},o=h.fromCache({blending:y.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:C.setCesium3DTileBit(),stencilMask:C.CESIUM_3D_TILE_MASK});e._drawCommand=i.createViewportQuadCommand(r,{uniformMap:n,renderState:o,pass:c.CESIUM_3D_TILE,owner:e}),e._clearCommand=new s({framebuffer:e._framebuffer,color:new t(0,0,0,0),depth:1,renderState:h.fromCache(),pass:c.CESIUM_3D_TILE,owner:e})}function x(e,t){ -var r=t.drawingBufferWidth,n=t.drawingBufferHeight,o=e._colorGBuffer,a=!1,s=i(o)&&(o.width!==r||o.height!==n);return i(o)&&!s||(E(e),A(e,t),w(e,t),a=!0),a}function P(e){return e.drawBuffers&&e.fragmentDepth}function D(e,t){var r=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!i(r)){var n=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources=o.sources.map(function(e){return e=f.replaceMain(e,"czm_point_cloud_post_process_main"),e=e.replace(/gl_FragColor/g,"gl_FragData[0]")}),o.sources.unshift("#extension GL_EXT_draw_buffers : enable \n"),o.sources.push("void main() \n{ \n czm_point_cloud_post_process_main(); \n gl_FragData[1] = czm_packDepth(gl_FragCoord.z); \n}"),r=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:n})}return r}var I=new e;return S.isSupported=P,S.prototype.update=function(e,t,r){if(P(e.context)){this._strength=r.eyeDomeLightingStrength,this._radius=r.eyeDomeLightingRadius;var n,o=x(this,e.context),s=e.commandList,u=s.length;for(n=t;n<u;++n){var d=s[n];if(d.primitiveType===a.POINTS&&d.pass!==c.TRANSLUCENT){var h=d.derivedCommands.pointCloudProcessor;(!i(h)||d.dirty||o||h.framebuffer!==this._framebuffer)&&(h=l.shallowClone(d),d.derivedCommands.pointCloudProcessor=h,h.framebuffer=this._framebuffer,h.shaderProgram=D(e.context,d.shaderProgram),h.castShadows=!1,h.receiveShadows=!1),s[n]=h}}var p=this._clearCommand,f=this._drawCommand;s.push(f),s.push(p)}},S.prototype.isDestroyed=function(){return!1},S.prototype.destroy=function(){return E(this),r(this)},S}),define("Scene/PointCloudShading",["../Core/defaultValue","./PointCloudEyeDomeLighting"],function(e,t){"use strict";function i(t){var i=e(t,{});this.attenuation=e(i.attenuation,!1),this.geometricErrorScale=e(i.geometricErrorScale,1),this.maximumAttenuation=i.maximumAttenuation,this.baseResolution=i.baseResolution,this.eyeDomeLighting=e(i.eyeDomeLighting,!0),this.eyeDomeLightingStrength=e(i.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=e(i.eyeDomeLightingRadius,1),this.backFaceCulling=e(i.backFaceCulling,!1),this.normalShading=e(i.normalShading,!0)}return i.isSupported=function(e){return t.isSupported(e.context)},i}),define("Scene/PointCloud3DTileContent",["../Core/Color","../Core/combine","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/Math","../Renderer/Pass","../Renderer/ShaderSource","./Cesium3DTileBatchTable","./Cesium3DTileFeature","./Cesium3DTileRefine","./PointCloud","./PointCloudShading","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._pickId=void 0,this._batchTable=void 0,this._styleDirty=!1,this._features=void 0,this.featurePropertiesDirty=!1,this._pointCloud=new f({arrayBuffer:r,byteOffset:n,cull:!1,opaquePass:u.CESIUM_3D_TILE,vertexShaderLoaded:v(this),fragmentShaderLoaded:y(this),uniformMapLoaded:C(this),batchTableLoaded:b(this),pickIdLoaded:S(this)})}function v(e){return function(t){return r(e._batchTable)?e._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(t):t}}function y(e){return function(t){return r(e._batchTable)?e._batchTable.getFragmentShaderCallback(!1,void 0)(t):"uniform vec4 czm_pickColor;\n"+t}}function C(e){return function(i){return r(e._batchTable)?e._batchTable.getUniformMapCallback()(i):t(i,{czm_pickColor:function(){return e._pickId.color}})}}function b(e){return function(t,i,r){e._batchTable=new d(e,t,i,r)}}function S(e){return function(){return r(e._batchTable)?e._batchTable.getPickId():"czm_pickColor"}}function T(e){var t=e._tileset.pointCloudShading,i=e._tile.contentBoundingVolume.boundingSphere.volume(),n=l.cbrt(i/e.pointsLength),o=e._tile.geometricError;return 0===o&&(o=r(t)&&r(t.baseResolution)?t.baseResolution:n),o}function E(e){var t=e.featuresLength;if(!r(e._features)&&t>0){for(var i=new Array(t),n=0;n<t;++n)i[n]=new h(e,n);e._features=i}}n(g.prototype,{featuresLength:{get:function(){return r(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return this._pointCloud.pointsLength}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return this._pointCloud.geometryByteLength}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return r(this._batchTable)?this._batchTable.memorySizeInBytes:0}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._pointCloud.readyPromise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){return this._batchTable}}}),g.prototype.hasProperty=function(e,t){return!!r(this._batchTable)&&this._batchTable.hasProperty(e,t)},g.prototype.getFeature=function(e){if(r(this._batchTable)){this.featuresLength;return E(this),this._features[e]}},g.prototype.applyDebugSettings=function(t,i){this._pointCloud.color=t?i:e.WHITE},g.prototype.applyStyle=function(e){r(this._batchTable)?this._batchTable.applyStyle(e):this._styleDirty=!0};var A=new m;return g.prototype.update=function(e,t){var n=this._pointCloud,o=i(e.pointCloudShading,A),a=this._tile,s=this._batchTable,l=t.mode,u=e.clippingPlanes;r(this._pickId)||r(s)||(this._pickId=t.context.createPickId({primitive:e,content:this})),r(s)&&s.update(e,t);var c;c=r(a._contentBoundingVolume)?l===_.SCENE3D?a._contentBoundingVolume.boundingSphere:a._contentBoundingVolume2D.boundingSphere:l===_.SCENE3D?a._boundingVolume.boundingSphere:a._boundingVolume2D.boundingSphere;var d=this._styleDirty;this._styleDirty=!1,n.clippingPlanesOriginMatrix=e.clippingPlanesOriginMatrix,n.style=r(s)?void 0:e.style,n.styleDirty=d,n.modelMatrix=a.computedTransform,n.time=e.timeSinceLoad,n.shadows=e.shadows,n.boundingSphere=c,n.clippingPlanes=u,n.isClipped=r(u)&&u.enabled&&a._isClipped,n.clippingPlanesDirty=a.clippingPlanesDirty,n.attenuation=o.attenuation,n.backFaceCulling=o.backFaceCulling,n.normalShading=o.normalShading,n.geometricError=T(this),n.geometricErrorScale=o.geometricErrorScale,r(o)&&r(o.maximumAttenuation)?n.maximumAttenuation=o.maximumAttenuation:a.refine===p.ADD?n.maximumAttenuation=5:n.maximumAttenuation=e.maximumScreenSpaceError,n.update(t)},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return this._pickId=this._pickId&&this._pickId.destroy(),this._pointCloud=this._pointCloud&&this._pointCloud.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),o(this)},g}),define("Scene/Tileset3DTileContent",["../Core/defaultValue","../Core/defineProperties","../Core/destroyObject","../Core/getStringFromTypedArray","../Core/RuntimeError","../ThirdParty/when"],function(e,t,i,r,n,o){"use strict";function a(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._readyPromise=o.defer(),this.featurePropertiesDirty=!1,s(this,r,n)}function s(t,i,o){o=e(o,0);var a,s=new Uint8Array(i),l=r(s,o);try{a=JSON.parse(l)}catch(e){return void t._readyPromise.reject(new n("Invalid tile content."))}t._tileset.loadTileset(t._resource,a,t._tile),t._readyPromise.resolve(t)}return t(a.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._readyPromise.promise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}}}),a.prototype.hasProperty=function(e,t){return!1},a.prototype.getFeature=function(e){},a.prototype.applyDebugSettings=function(e,t){},a.prototype.applyStyle=function(e){},a.prototype.update=function(e,t){},a.prototype.isDestroyed=function(){return!1},a.prototype.destroy=function(){return i(this)},a}),define("Scene/Cesium3DTilePointFeature",["../Core/Cartographic","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","./createBillboardPointCallback"],function(e,t,i,r,n,o){"use strict";function a(e,t,i,r,n){this._content=e,this._billboard=i,this._label=r,this._polyline=n,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),s(this)}function s(e){var n=e._billboard;if(r(e._billboardImage)&&e._billboardImage!==n.image)return void(n.image=e._billboardImage);if(!r(e._billboardImage)){var s=i(e._color,a.defaultColor),l=i(e._pointOutlineColor,a.defaultPointOutlineColor),u=i(e._pointOutlineWidth,a.defaultPointOutlineWidth),c=i(e._pointSize,a.defaultPointSize),d=e._billboardColor,h=e._billboardOutlineColor,p=e._billboardOutlineWidth,f=e._billboardSize;if(!t.equals(s,d)||!t.equals(l,h)||u!==p||c!==f){e._billboardColor=t.clone(s,e._billboardColor),e._billboardOutlineColor=t.clone(l,e._billboardOutlineColor),e._billboardOutlineWidth=u,e._billboardSize=c;var m=s.alpha,_=s.toCssColorString(),g=l.toCssColorString(),v=JSON.stringify([_,c,g,u]);n.setImage(v,o(m,_,g,u,c))}}}var l=new e;return n(a.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=t.clone(e,this._color),s(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,s(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=t.clone(e,this._pointOutlineColor),s(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,s(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){r(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){var t=i(this._heightOffset,0),r=this._content.tileset.ellipsoid,n=r.cartesianToCartographic(this._billboard.position,l);n.height=n.height-t+e;var o=r.cartographicToCartesian(n);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=t.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){var t=this._billboardImage!==e;this._billboardImage=e,t&&s(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){var e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}}),a.defaultColor=t.WHITE,a.defaultPointOutlineColor=t.BLACK,a.defaultPointOutlineWidth=0,a.defaultPointSize=8,a.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)},a.prototype.getPropertyNames=function(e){return this._content.batchTable.getPropertyNames(this._batchId,e)},a.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)},a.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0},a.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)},a.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)},a.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)},a}),define("Scene/Vector3DTilePoints",["../Core/arraySlice","../Core/Cartesian2","../Core/Cartesian3","../Core/Color","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DistanceDisplayCondition","../Core/Ellipsoid","../Core/NearFarScalar","../Core/Rectangle","../Core/TaskProcessor","../ThirdParty/when","./BillboardCollection","./Cesium3DTilePointFeature","./HorizontalOrigin","./LabelCollection","./LabelStyle","./PolylineCollection","./VerticalOrigin"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=void 0,this._labelCollection=void 0,this._polylineCollection=void 0,this._verticesPromise=void 0,this._packedBuffer=void 0,this._ready=!1,this._readyPromise=h.defer(),this._resolvedPromise=!1}function b(e,t){var i=e._rectangle,r=e._minHeight,n=e._maxHeight,o=2+c.packedLength+l.packedLength,a=new Float64Array(o),s=0;return a[s++]=r,a[s++]=n,c.pack(i,a,s),s+=c.packedLength,l.pack(t,a,s),a}function S(t,r){if(!n(t._billboardCollection)){var o;if(!n(t._verticesPromise)){o=t._positions;var a=t._packedBuffer;n(a)||(o=t._positions=e(o),t._batchIds=e(t._batchIds),a=t._packedBuffer=b(t,r));var s=[o.buffer,a.buffer],l={positions:o.buffer,packedBuffer:a.buffer},u=t._verticesPromise=E.scheduleTask(l,s);if(!n(u))return;u.then(function(e){t._positions=new Float64Array(e.positions),t._ready=!0})}if(t._ready&&!n(t._billboardCollection)){o=t._positions;var c=t._batchTable,d=t._batchIds,h=t._billboardCollection=new p({batchTable:c}),f=t._labelCollection=new _({batchTable:c}),m=t._polylineCollection=new v;m._useHighlightColor=!0;for(var g=o.length/3,y=0;y<g;++y){var C=d[y],S=i.unpack(o,3*y,A),T=h.add();T.position=S,T._batchIndex=C;var w=f.add();w.text=" ",w.position=S,w._batchIndex=C;m.add().positions=[i.clone(S),i.clone(S)]}t._positions=void 0,t._packedBuffer=void 0}}}function T(e,i){for(var n=e._batchIds,o=n.length,a=0;a<o;++a){var s=n[a],l=i[s];l.show=!0,l.pointSize=f.defaultPointSize,l.color=f.defaultColor,l.pointOutlineColor=f.defaultPointOutlineColor,l.pointOutlineWidth=f.defaultPointOutlineWidth,l.labelColor=r.WHITE,l.labelOutlineColor=r.WHITE,l.labelOutlineWidth=1,l.font="30px sans-serif",l.labelStyle=g.FILL,l.labelText=void 0,l.backgroundColor=new r(.165,.165,.165,.8),l.backgroundPadding=new t(7,5),l.backgroundEnabled=!1,l.scaleByDistance=void 0,l.translucencyByDistance=void 0,l.distanceDisplayCondition=void 0,l.heightOffset=0,l.anchorLineEnabled=!1,l.anchorLineColor=r.WHITE,l.image=void 0,l.disableDepthTestDistance=0,l.horizontalOrigin=m.CENTER,l.verticalOrigin=y.CENTER,l.labelHorizontalOrigin=m.RIGHT,l.labelVerticalOrigin=y.BASELINE}}o(C.prototype,{pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){return this._billboardCollection.textureAtlas.texture.sizeInBytes+this._labelCollection._textureAtlas.texture.sizeInBytes}},readyPromise:{get:function(){return this._readyPromise.promise}}});var E=new d("createVectorTilePoints"),A=new i;C.prototype.createFeatures=function(e,t){for(var i=this._billboardCollection,r=this._labelCollection,n=this._polylineCollection,o=this._batchIds,a=o.length,s=0;s<a;++s){var l=o[s],u=i.get(s),c=r.get(s),d=n.get(s);t[l]=new f(e,l,u,c,d)}},C.prototype.applyDebugSettings=function(e,t){e?(r.clone(t,this._billboardCollection._highlightColor),r.clone(t,this._labelCollection._highlightColor),r.clone(t,this._polylineCollection._highlightColor)):(r.clone(r.WHITE,this._billboardCollection._highlightColor),r.clone(r.WHITE,this._labelCollection._highlightColor),r.clone(r.WHITE,this._polylineCollection._highlightColor))};var w=new r,x=new r,P=new r,D=new r,I=new r,M=new r,R=new u,O=new u,L=new s;return C.prototype.applyStyle=function(e,t){if(!n(e))return void T(this,t);for(var i=this._batchIds,r=i.length,o=0;o<r;++o){var a=i[o],s=t[a];if(n(e.show)&&(s.show=e.show.evaluate(s)),n(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),n(e.color)&&(s.color=e.color.evaluateColor(s,w)),n(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,x)),n(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),n(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,P)),n(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,D)),n(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),n(e.font)&&(s.font=e.font.evaluate(s)),n(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),n(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,n(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,I)),n(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),n(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),n(e.scaleByDistance)){var l=e.scaleByDistance.evaluate(s);R.near=l.x,R.nearValue=l.y,R.far=l.z,R.farValue=l.w,s.scaleByDistance=R}else s.scaleByDistance=void 0;if(n(e.translucencyByDistance)){var u=e.translucencyByDistance.evaluate(s);O.near=u.x,O.nearValue=u.y,O.far=u.z,O.farValue=u.w,s.translucencyByDistance=O}else s.translucencyByDistance=void 0;if(n(e.distanceDisplayCondition)){var c=e.distanceDisplayCondition.evaluate(s);L.near=c.x,L.far=c.y,s.distanceDisplayCondition=L}else s.distanceDisplayCondition=void 0;n(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),n(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),n(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,M)),n(e.image)?s.image=e.image.evaluate(s):s.image=void 0,n(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),n(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),n(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),n(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),n(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}},C.prototype.update=function(e){S(this,e.mapProjection.ellipsoid),this._ready&&(this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e),this._resolvedPromise||(this._readyPromise.resolve(),this._resolvedPromise=!0))},C.prototype.isDestroyed=function(){return!1},C.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),a(this)},C}),define("Scene/Vector3DTilePolygons",["../Core/arraySlice","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Ellipsoid","../Core/IndexDatatype","../Core/OrientedBoundingBox","../Core/Rectangle","../Core/TaskProcessor","../ThirdParty/when","./ClassificationType","./Vector3DTileBatch","./Vector3DTilePrimitive"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=r(e.ellipsoid,s.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=r(e.center,t.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._readyPromise=h.defer(),this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=p.BOTH}function g(e){var i=new Float64Array(3+t.packedLength+s.packedLength+c.packedLength),r=0;return i[r++]=e._indices.BYTES_PER_ELEMENT,i[r++]=e._minimumHeight,i[r++]=e._maximumHeight,t.pack(e._center,i,r),r+=t.packedLength,s.pack(e._ellipsoid,i,r),r+=s.packedLength,c.pack(e._rectangle,i,r),i}function v(e,t){for(var r=1,n=t[r++],o=e._boundingVolumes=new Array(n),a=0;a<n;++a)o[a]=u.unpack(t,r),r+=u.packedLength;for(var s=t[r++],l=e._batchedIndices=new Array(s),c=0;c<s;++c){var d=i.unpack(t,r);r+=i.packedLength;for(var h=t[r++],p=t[r++],m=t[r++],_=new Array(m),g=0;g<m;++g)_[g]=t[r++];l[c]=new f({color:d,offset:h,count:p,batchIds:_})}}function y(t){if(!n(t._primitive)){if(!n(t._verticesPromise)){var i=t._positions,r=t._counts,o=t._indexCounts,a=t._indices,s=t._transferrableBatchIds,u=t._batchTableColors,d=t._packedBuffer;if(!n(u)){i=t._positions=e(t._positions),r=t._counts=e(t._counts),o=t._indexCounts=e(t._indexCounts),a=t._indices=e(t._indices),t._center=t._ellipsoid.cartographicToCartesian(c.center(t._rectangle)),s=t._transferrableBatchIds=new Uint32Array(t._batchIds),u=t._batchTableColors=new Uint32Array(s.length);for(var p=t._batchTable,f=u.length,_=0;_<f;++_){var y=p.getColor(_,b);u[_]=y.toRgba()}d=t._packedBuffer=g(t)}var S=[i.buffer,r.buffer,o.buffer,a.buffer,s.buffer,u.buffer,d.buffer],T={packedBuffer:d.buffer,positions:i.buffer,counts:r.buffer,indexCounts:o.buffer,indices:a.buffer,batchIds:s.buffer,batchTableColors:u.buffer},E=t._polygonMinimumHeights,A=t._polygonMaximumHeights;n(E)&&n(A)&&(E=e(E),A=e(A),S.push(E.buffer,A.buffer),T.minimumHeights=E,T.maximumHeights=A);var w=t._verticesPromise=C.scheduleTask(T,S);if(!n(w))return;h(w,function(e){t._positions=void 0,t._counts=void 0,t._polygonMinimumHeights=void 0,t._polygonMaximumHeights=void 0;var i=new Float64Array(e.packedBuffer),r=i[0];v(t,i),t._indices=2===l.getSizeInBytes(r)?new Uint16Array(e.indices):new Uint32Array(e.indices),t._indexOffsets=new Uint32Array(e.indexOffsets),t._indexCounts=new Uint32Array(e.indexCounts),t._batchedPositions=new Float32Array(e.positions),t._vertexBatchIds=new Uint16Array(e.batchIds),t._ready=!0})}t._ready&&!n(t._primitive)&&(t._primitive=new m({batchTable:t._batchTable,positions:t._batchedPositions,batchIds:t._batchIds,vertexBatchIds:t._vertexBatchIds,indices:t._indices,indexOffsets:t._indexOffsets,indexCounts:t._indexCounts,batchedIndices:t._batchedIndices,boundingVolume:t._boundingVolume,boundingVolumes:t._boundingVolumes,center:t._center}),t._batchTable=void 0,t._batchIds=void 0,t._positions=void 0,t._counts=void 0,t._indices=void 0,t._indexCounts=void 0,t._indexOffsets=void 0,t._batchTableColors=void 0,t._packedBuffer=void 0,t._batchedPositions=void 0,t._transferrableBatchIds=void 0,t._vertexBatchIds=void 0,t._ellipsoid=void 0,t._minimumHeight=void 0,t._maximumHeight=void 0,t._polygonMinimumHeights=void 0,t._polygonMaximumHeights=void 0,t._center=void 0,t._rectangle=void 0,t._boundingVolume=void 0,t._boundingVolumes=void 0,t._batchedIndices=void 0,t._verticesPromise=void 0,t._readyPromise.resolve())}}o(_.prototype,{trianglesLength:{get:function(){return n(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return n(this._primitive)?this._primitive.geometryByteLength:0}},readyPromise:{get:function(){return this._readyPromise.promise}}});var C=new d("createVectorTilePolygons"),b=new i;return _.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)},_.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)},_.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)},_.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)},_.prototype.update=function(e){y(this),this._ready&&(this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e))},_.prototype.isDestroyed=function(){return!1},_.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),a(this)},_}),define("Shaders/Vector3DTilePolylinesVS",[],function(){"use strict";return"attribute vec4 currentPosition;\nattribute vec4 previousPosition;\nattribute vec4 nextPosition;\nattribute vec2 expandAndWidth;\nattribute float a_batchId;\nuniform mat4 u_modifiedModelView;\nvoid main()\n{\nfloat expandDir = expandAndWidth.x;\nfloat width = abs(expandAndWidth.y) + 0.5;\nbool usePrev = expandAndWidth.y < 0.0;\nvec4 p = u_modifiedModelView * currentPosition;\nvec4 prev = u_modifiedModelView * previousPosition;\nvec4 next = u_modifiedModelView * nextPosition;\nfloat angle;\nvec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle);\ngl_Position = czm_viewportOrthographic * positionWC;\n#ifdef LOG_DEPTH\nczm_vertexLogDepth(czm_projection * p);\n#endif\n}\n"}),define("Scene/Vector3DTilePolylines",["../Core/arraySlice","../Core/Cartesian3","../Core/Color","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Ellipsoid","../Core/FeatureDetection","../Core/IndexDatatype","../Core/Matrix4","../Core/Rectangle","../Core/TaskProcessor","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/PolylineCommon","../Shaders/Vector3DTilePolylinesVS","../ThirdParty/when","./BlendingState","./Cesium3DTileFeature"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=n(e.ellipsoid,l.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=i.clone(i.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._readyPromise=E.defer(),this._verticesPromise=void 0}function P(e){var i=e._rectangle,r=e._minimumHeight,n=e._maximumHeight,o=e._ellipsoid,a=e._center,s=2+h.packedLength+l.packedLength+t.packedLength,u=new Float64Array(s),c=0;return u[c++]=r,u[c++]=n,h.pack(i,u,c),c+=h.packedLength,l.pack(o,u,c),c+=l.packedLength,t.pack(a,u,c),u}function D(t,i){if(!o(t._va)){if(!o(t._verticesPromise)){var n=t._positions,a=t._widths,s=t._counts,l=t._transferrableBatchIds,u=t._packedBuffer;o(u)||(n=t._positions=e(n),a=t._widths=e(a),s=t._counts=e(s),l=t._transferrableBatchIds=e(t._batchIds),u=t._packedBuffer=P(t));var d=[n.buffer,a.buffer,s.buffer,l.buffer,u.buffer],h={positions:n.buffer,widths:a.buffer,counts:s.buffer,batchIds:l.buffer,packedBuffer:u.buffer},p=t._verticesPromise=N.scheduleTask(h,d);if(!o(p))return;E(p,function(e){t._currentPositions=new Float32Array(e.currentPositions),t._previousPositions=new Float32Array(e.previousPositions),t._nextPositions=new Float32Array(e.nextPositions),t._expandAndWidth=new Float32Array(e.expandAndWidth),t._vertexBatchIds=new Uint16Array(e.batchIds);var i=e.indexDatatype;t._indices=i===c.UNSIGNED_SHORT?new Uint16Array(e.indices):new Uint32Array(e.indices),t._ready=!0})}if(t._ready&&!o(t._va)){var _=t._currentPositions,g=t._previousPositions,v=t._nextPositions,y=t._expandAndWidth,C=t._vertexBatchIds,S=t._indices,T=g.byteLength+_.byteLength+v.byteLength;T+=y.byteLength+C.byteLength+S.byteLength,t._trianglesLength=S.length/3,t._geometryByteLength=T;var A=f.createVertexBuffer({context:i,typedArray:g,usage:m.STATIC_DRAW}),w=f.createVertexBuffer({context:i,typedArray:_,usage:m.STATIC_DRAW}),x=f.createVertexBuffer({context:i,typedArray:v,usage:m.STATIC_DRAW}),D=f.createVertexBuffer({context:i,typedArray:y,usage:m.STATIC_DRAW}),I=f.createVertexBuffer({context:i,typedArray:C,usage:m.STATIC_DRAW}),M=f.createIndexBuffer({context:i,typedArray:S,usage:m.STATIC_DRAW,indexDatatype:2===S.BYTES_PER_ELEMENT?c.UNSIGNED_SHORT:c.UNSIGNED_INT}),R=[{index:F.previousPosition,vertexBuffer:A,componentDatatype:r.FLOAT,componentsPerAttribute:3},{index:F.currentPosition,vertexBuffer:w,componentDatatype:r.FLOAT,componentsPerAttribute:3},{index:F.nextPosition,vertexBuffer:x,componentDatatype:r.FLOAT,componentsPerAttribute:3},{index:F.expandAndWidth,vertexBuffer:D,componentDatatype:r.FLOAT,componentsPerAttribute:2},{index:F.a_batchId,vertexBuffer:I,componentDatatype:r.UNSIGNED_SHORT,componentsPerAttribute:1}];t._va=new b({context:i,attributes:R,indexBuffer:M}),t._positions=void 0,t._widths=void 0,t._counts=void 0,t._ellipsoid=void 0,t._minimumHeight=void 0,t._maximumHeight=void 0,t._rectangle=void 0,t._transferrableBatchIds=void 0,t._packedBuffer=void 0,t._currentPositions=void 0,t._previousPositions=void 0,t._nextPositions=void 0,t._expandAndWidth=void 0,t._vertexBatchIds=void 0,t._indices=void 0,t._readyPromise.resolve()}}}function I(e,t){o(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){var i=t.uniformState.view;return d.clone(i,B),d.multiplyByPoint(B,e._center,z),d.setTranslation(B,z,B),B},u_highlightColor:function(){ -return e._highlightColor}})}function M(e){if(!o(e._rs)){var t={enabled:!0,factor:-5,units:-5};e._rs=v.fromCache({blending:A.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}}function R(e,t){if(!o(e._sp)){var i=e._batchTable,r=i.getVertexShaderCallback(!1,"a_batchId",void 0)(T),n=i.getFragmentShaderCallback()(k,!1,void 0),a=new C({defines:["VECTOR_TILE",u.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[S,r]}),s=new C({defines:["VECTOR_TILE"],sources:[n]});e._sp=y.fromCache({context:t,vertexShaderSource:a,fragmentShaderSource:s,attributeLocations:F})}}function O(e,t){if(!o(e._command)){var i=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new _({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:i,boundingVolume:e._boundingVolume,pass:g.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}function L(e,t){for(var r=e._batchIds,n=r.length,o=0;o<n;++o){var a=r[o],s=t[a];s.show=!0,s.color=i.WHITE}}a(x.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},readyPromise:{get:function(){return this._readyPromise.promise}}});var N=new p("createVectorTilePolylines"),F={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4},B=new d,z=new t,k="uniform vec4 u_highlightColor; \nvoid main()\n{\n gl_FragColor = u_highlightColor;\n}\n";x.prototype.createFeatures=function(e,t){for(var i=this._batchIds,r=i.length,n=0;n<r;++n){var o=i[n];t[o]=new w(e,o)}},x.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};var V=new i,U=i.WHITE;return x.prototype.applyStyle=function(e,t){if(!o(e))return void L(this,t);for(var i=this._batchIds,r=i.length,n=0;n<r;++n){var a=i[n],s=t[a];s.color=o(e.color)?e.color.evaluateColor(s,V):U,s.show=!o(e.show)||e.show.evaluate(s)}},x.prototype.update=function(e){var t=e.context;if(D(this,t),I(this,t),R(this,t),M(this),this._ready){var i=e.passes;(i.render||i.pick)&&O(this,e)}},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),s(this)},x}),define("Scene/Vector3DTileContent",["../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/getMagic","../Core/getStringFromTypedArray","../Core/Math","../Core/Matrix4","../Core/Rectangle","../Core/RuntimeError","../ThirdParty/when","./Cesium3DTileBatchTable","./Vector3DTilePoints","./Vector3DTilePolygons","./Vector3DTilePolylines"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(e,t,i,r,n){this._tileset=e,this._tile=t,this._resource=i,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._contentReadyPromise=void 0,this._readyPromise=f.defer(),this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,S(this,r,n)}function C(e){return function(t,r){i(e._polygons)&&e._polygons.updateCommands(t,r)}}function b(e,r){var n,o,a,s,l=t(e.POLYGONS_LENGTH,0),u=t(e.POLYLINES_LENGTH,0),c=t(e.POINTS_LENGTH,0);if(l>0&&i(e.POLYGON_BATCH_IDS)){var d=r.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(r.buffer,d,l)}if(u>0&&i(e.POLYLINE_BATCH_IDS)){var h=r.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;o=new Uint16Array(r.buffer,h,u)}if(c>0&&i(e.POINT_BATCH_IDS)){var f=r.byteOffset+e.POINT_BATCH_IDS.byteOffset;a=new Uint16Array(r.buffer,f,c)}var m=i(n)||i(o)||i(a),_=l>0&&!i(n)||u>0&&!i(o)||c>0&&!i(a);if(m&&_)throw new p("If one group of batch ids is defined, then all batch ids must be defined.");if(!i(n)&&!i(o)&&!i(a)){var g=0;if(!i(n)&&l>0)for(n=new Uint16Array(l),s=0;s<l;++s)n[s]=g++;if(!i(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=g++;if(!i(a)&&c>0)for(a=new Uint16Array(c),s=0;s<c;++s)a[s]=g++}return{polygons:n,polylines:o,points:a}}function S(r,n,o){o=t(o,0);var s=new Uint8Array(n),l=new DataView(n);o+=A;var f=l.getUint32(o,!0);if(1!==f)throw new p("Only Vector tile version 1 is supported. Version "+f+" is not.");o+=A;var y=l.getUint32(o,!0);if(o+=A,0===y)return void r._readyPromise.resolve(r);var S=l.getUint32(o,!0);if(o+=A,0===S)throw new p("Feature table must have a byte length greater than zero");var T=l.getUint32(o,!0);o+=A;var w=l.getUint32(o,!0);o+=A;var x=l.getUint32(o,!0);o+=A;var P=l.getUint32(o,!0);o+=A;var D=l.getUint32(o,!0);o+=A;var I=l.getUint32(o,!0);o+=A;var M=l.getUint32(o,!0);o+=A;var R=u(s,o,S),O=JSON.parse(R);o+=S;var L=new Uint8Array(n,o,T);o+=T;var N,F;if(w>0){var B=u(s,o,w);N=JSON.parse(B),o+=w,x>0&&(F=new Uint8Array(n,o,x),F=new Uint8Array(F),o+=x)}var z=t(O.POLYGONS_LENGTH,0),k=t(O.POLYLINES_LENGTH,0),V=t(O.POINTS_LENGTH,0),U=z+k+V,G=new m(r,U,N,F,C(r));if(r._batchTable=G,0!==U){var H,W,q;if(!i(O.REGION))throw new p("REGION is required in the feature table.");var Y=O.REGION;H=h.unpack(Y),W=Y[4],q=Y[5];var j,X=r._tile.computedTransform;i(O.RTC_CENTER)?(j=e.unpack(O.RTC_CENTER),d.multiplyByPoint(X,j,j)):(j=h.center(H),j.height=c.lerp(W,q,.5),j=a.WGS84.cartographicToCartesian(j));var Q=b(O,L);if(o+=o%4,z>0){var K=new Uint32Array(n,o,P/A);o+=P;var Z=new Uint16Array(n,o,D/E);o+=D;var J,$,ee=L.byteOffset+O.POLYGON_COUNT.byteOffset,te=new Uint32Array(L.buffer,ee,z),ie=L.byteOffset+O.POLYGON_INDEX_COUNT.byteOffset,re=new Uint32Array(L.buffer,ie,z);if(i(O.POLYGON_MINIMUM_HEIGHTS)&&i(O.POLYGON_MAXIMUM_HEIGHTS)){var ne=L.byteOffset+O.POLYGON_MINIMUM_HEIGHTS.byteOffset;J=new Float32Array(L.buffer,ne,z);var oe=L.byteOffset+O.POLYGON_MAXIMUM_HEIGHTS.byteOffset;$=new Float32Array(L.buffer,oe,z)}r._polygons=new g({positions:Z,counts:te,indexCounts:re,indices:K,minimumHeight:W,maximumHeight:q,polygonMinimumHeights:J,polygonMaximumHeights:$,center:j,rectangle:H,boundingVolume:r.tile.boundingVolume.boundingVolume,batchTable:G,batchIds:Q.polygons,modelMatrix:X})}if(k>0){var ae=new Uint16Array(n,o,I/E);o+=I;var se,le=L.byteOffset+O.POLYLINE_COUNT.byteOffset,ue=new Uint32Array(L.buffer,le,k);if(i(O.POLYLINE_WIDTHS)){var ce=L.byteOffset+O.POLYLINE_WIDTHS.byteOffset;se=new Uint16Array(L.buffer,ce,k)}else{se=new Uint16Array(k);for(var de=0;de<k;++de)se[de]=2}r._polylines=new v({positions:ae,widths:se,counts:ue,batchIds:Q.polylines,minimumHeight:W,maximumHeight:q,center:j,rectangle:H,boundingVolume:r.tile.boundingVolume.boundingVolume,batchTable:G})}if(V>0){var he=new Uint16Array(n,o,M/E);r._points=new _({positions:he,batchIds:Q.points,minimumHeight:W,maximumHeight:q,rectangle:H,batchTable:G})}}}function T(e){var t=e.featuresLength;if(!i(e._features)&&t>0){var r=new Array(t);i(e._polygons)&&e._polygons.createFeatures(e,r),i(e._polylines)&&e._polylines.createFeatures(e,r),i(e._points)&&e._points.createFeatures(e,r),e._features=r}}if(!s.supportsTypedArrays())return{};r(y.prototype,{featuresLength:{get:function(){return i(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return i(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){var e=0;return i(this._polygons)&&(e+=this._polygons.trianglesLength),i(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){var e=0;return i(this._polygons)&&(e+=this._polygons.geometryByteLength),i(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return i(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return i(this._batchTable)?this._batchTable.memorySizeInBytes:0}},innerContents:{get:function(){}},readyPromise:{get:function(){return this._readyPromise.promise}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){return this._batchTable}}});var E=Uint16Array.BYTES_PER_ELEMENT,A=Uint32Array.BYTES_PER_ELEMENT;return y.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)},y.prototype.getFeature=function(e){return T(this),this._features[e]},y.prototype.applyDebugSettings=function(e,t){i(this._polygons)&&this._polygons.applyDebugSettings(e,t),i(this._polylines)&&this._polylines.applyDebugSettings(e,t),i(this._points)&&this._points.applyDebugSettings(e,t)},y.prototype.applyStyle=function(e){T(this),i(this._polygons)&&this._polygons.applyStyle(e,this._features),i(this._polylines)&&this._polylines.applyStyle(e,this._features),i(this._points)&&this._points.applyStyle(e,this._features)},y.prototype.update=function(e,t){var r=!0;if(i(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),r=r&&this._polygons._ready),i(this._polylines)&&(this._polylines.update(t),r=r&&this._polylines._ready),i(this._points)&&(this._points.update(t),r=r&&this._points._ready),i(this._batchTable)&&r&&this._batchTable.update(e,t),!i(this._contentReadyPromise)){var n=i(this._points)?this._points.readyPromise:void 0,o=i(this._polygons)?this._polygons.readyPromise:void 0,a=i(this._polylines)?this._polylines.readyPromise:void 0,s=this;this._contentReadyPromise=f.all([n,o,a]).then(function(){s._readyPromise.resolve(s)})}},y.prototype.isDestroyed=function(){return!1},y.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),n(this)},y}),define("Scene/Cesium3DTileContentFactory",["./Batched3DModel3DTileContent","./Composite3DTileContent","./Geometry3DTileContent","./Instanced3DModel3DTileContent","./PointCloud3DTileContent","./Tileset3DTileContent","./Vector3DTileContent"],function(e,t,i,r,n,o,a){"use strict";var s={b3dm:function(t,i,r,n,o){return new e(t,i,r,n,o)},pnts:function(e,t,i,r,o){return new n(e,t,i,r,o)},i3dm:function(e,t,i,n,o){return new r(e,t,i,n,o)},cmpt:function(e,i,r,n,o){return new t(e,i,r,n,o,s)},json:function(e,t,i,r,n){return new o(e,t,i,r,n)},geom:function(e,t,r,n,o){return new i(e,t,r,n,o)},vctr:function(e,t,i,r,n){return new a(e,t,i,r,n)}};return s}),define("Scene/Cesium3DTileContentState",["../Core/freezeObject"],function(e){"use strict";return e({UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5})}),define("Scene/Cesium3DTileOptimizationHint",["../Core/freezeObject"],function(e){"use strict";return e({NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0})}),define("Scene/Cesium3DTilesetMostDetailedTraversal",["../Core/Intersect","../Core/ManagedArray","./Cesium3DTileRefine"],function(e,t,i){"use strict";function r(){}function n(e){return e._visible&&e._inRequestVolume}function o(e){return e.hasEmptyContent||e.hasTilesetContent}function a(e){return!o(e)&&e.contentUnloaded}function s(e,t){return 0!==t.children.length&&(t.hasTilesetContent?!t.contentExpired:(t.hasEmptyContent,!0))}function l(e,t,i,r){for(var o=t.children,a=o.length,s=0;s<a;++s){var l=o[s];l.updateVisibility(r),n(l)&&i.push(l)}}function u(e,t){(a(t)||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function c(e,t,i){t._touchedFrame!==i.frameNumber&&(e._cache.touch(t),t._touchedFrame=i.frameNumber)}function d(e){++e.statistics.visited}function h(t,i,r){i.contentAvailable&&i.contentVisibility(r)!==e.OUTSIDE&&t._selectedTiles.push(i)}var p={stack:new t,stackMaximumLength:0};return r.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e._hasMixedContent=!1;var r=!0,a=e.root;if(a.updateVisibility(t),!n(a))return r;var f=p.stack;for(f.push(e.root);f.length>0;){p.stackMaximumLength=Math.max(p.stackMaximumLength,f.length);var m=f.pop(),_=m.refine===i.ADD,g=m.refine===i.REPLACE,v=s(e,m);v&&l(e,m,f,t),(_||g&&!v)&&(u(e,m),c(e,m,t),h(e,m,t),o(m)||m.contentAvailable||(r=!1)),d(e)}return p.stack.trim(p.stackMaximumLength),r},r}),define("Scene/Cesium3DTilesetTraversal",["../Core/Cartesian3","../Core/defined","../Core/Intersect","../Core/ManagedArray","../Core/Math","./Cesium3DTileOptimizationHint","./Cesium3DTileRefine"],function(e,t,i,r,n,o,a){"use strict";function s(){}function l(e){return e._visible&&e._inRequestVolume}function u(e,t,i){N(e,t,e._maximumScreenSpaceError,e._maximumScreenSpaceError,i)}function c(e,t,i){N(e,t,Number.MAX_VALUE,e._maximumScreenSpaceError,i),B(e,t,i)}function d(e,t,i){N(e,t,Math.max(e.baseScreenSpaceError,e.maximumScreenSpaceError),e.maximumScreenSpaceError,i),B(e,t,i)}function h(e){return e._skipLevelOfDetail}function p(e,t){e._emptyTiles.push(t)}function f(e,t,r){if(t.contentVisibility(r)!==i.OUTSIDE){var n=t.content;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,t.lastStyleTime=0,e._selectedTilesToStyle.push(t)):t._selectedFrame<r.frameNumber-1&&e._selectedTilesToStyle.push(t),t._selectedFrame=r.frameNumber,e._selectedTiles.push(t)}}function m(e,t,i){var r=V.stack;for(r.push(t);r.length>0;){V.stackMaximumLength=Math.max(V.stackMaximumLength,r.length);for(var n=r.pop(),o=n.children,a=o.length,s=0;s<a;++s){var u=o[s];l(u)&&(u.contentAvailable?(w(e,u,i),v(e,u,i),f(e,u,i)):u._depth-t._depth<G&&r.push(u))}}}function _(e,i,r){if(!h(e))return void(i.contentAvailable&&f(e,i,r));var n=i.contentAvailable?i:i._ancestorWithContentAvailable;t(n)?n._shouldSelect=!0:m(e,i,r)}function g(e,t,i){++e._statistics.visited,t._visitedFrame=i.frameNumber}function v(e,t,i){t._touchedFrame!==i.frameNumber&&(e._cache.touch(t),t._touchedFrame=i.frameNumber)}function y(e,t){e._maximumPriority.distance=Math.max(t._priorityHolder._distanceToCamera,e._maximumPriority.distance),e._minimumPriority.distance=Math.min(t._priorityHolder._distanceToCamera,e._minimumPriority.distance),e._maximumPriority.depth=Math.max(t._depth,e._maximumPriority.depth),e._minimumPriority.depth=Math.min(t._depth,e._minimumPriority.depth),e._maximumPriority.foveatedFactor=Math.max(t._priorityHolder._foveatedFactor,e._maximumPriority.foveatedFactor),e._minimumPriority.foveatedFactor=Math.min(t._priorityHolder._foveatedFactor,e._minimumPriority.foveatedFactor),e._maximumPriority.reverseScreenSpaceError=Math.max(t._priorityReverseScreenSpaceError,e._maximumPriority.reverseScreenSpaceError),e._minimumPriority.reverseScreenSpaceError=Math.min(t._priorityReverseScreenSpaceError,e._minimumPriority.reverseScreenSpaceError)}function C(e,t,i){if(!e.cullRequestsWhileMoving)return!0;var r=t.boundingSphere,n=Math.max(2*r.radius,1),o=i.camera,a=0!==o.positionWCDeltaMagnitude?o.positionWCDeltaMagnitude:o.positionWCDeltaMagnitudeLastFrame;return e.cullRequestsWhileMovingMultiplier*a/n<1}function b(e,t,i){if(t._requestedFrame!==i.frameNumber&&(D(t)||t.contentExpired)&&C(e,t,i)){var r=i.camera.timeSinceMoved<e.foveatedTimeDelay;t.priorityDeferred&&r||(t._requestedFrame=i.frameNumber,e._requestedTiles.push(t))}}function S(e,t,i){t._updatedVisibilityFrame!==e._updatedVisibilityFrame&&(t.updateVisibility(i),t._updatedVisibilityFrame=e._updatedVisibilityFrame)}function T(e,t,i){for(var r=!1,n=t.children,o=n.length,a=0;a<o;++a){var s=n[a];S(e,s,i),r=r||l(s)}return r}function E(e,i,r){var n=i.parent;return!(!t(n)||n.hasTilesetContent||n.refine!==a.ADD)&&i.getScreenSpaceError(r,!0)<=e._maximumScreenSpaceError}function A(e,t,i){if(S(e,t,i),l(t)){var r=t.children.length>0;if(t.hasTilesetContent&&r){var n=t.children[0];return A(e,n,i),void(t._visible=n._visible)}if(E(e,t,i))return void(t._visible=!1);var s=t.refine===a.REPLACE,u=t._optimChildrenWithinParent===o.USE_OPTIMIZATION;return s&&u&&r&&!T(e,t,i)?(++e._statistics.numberOfTilesCulledWithChildrenUnion,void(t._visible=!1)):void 0}}function w(e,t,i){A(e,t,i),t.updateExpiration(),t._wasMinPriorityChild=!1,t._priorityHolder=t,y(e,t),t._shouldSelect=!1,t._finalResolution=!0}function x(e,i){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;var r=e.parent;if(t(r)){var n=!D(r)||r._requestedFrame===i.frameNumber;e._ancestorWithContent=n?r:r._ancestorWithContent,e._ancestorWithContentAvailable=r.contentAvailable?r:r._ancestorWithContentAvailable}}function P(e){return e.hasEmptyContent||e.hasTilesetContent}function D(e){return!P(e)&&e.contentUnloaded}function I(e,i){var r=i._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(i._priorityProgressiveResolutionScreenSpaceErrorLeaf||t(r)&&i._screenSpaceError<r._screenSpaceError/e.skipScreenSpaceErrorFactor&&i._depth>r._depth+e.skipLevels)}function M(e,t){return 0===t._distanceToCamera&&0===e._distanceToCamera?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera}function R(e,t,i,r){var n,o=t.refine===a.REPLACE,s=t.children,u=s.length;for(n=0;n<u;++n)w(e,s[n],r);s.sort(M);var c,d=!h(e)&&o&&!P(t),p=!0,f=!1,m=-1,_=Number.MAX_VALUE;for(n=0;n<u;++n)if(c=s[n],l(c)?(i.push(c),c._foveatedFactor<_&&(m=n,_=c._foveatedFactor),f=!0):(d||e.loadSiblings)&&(c._foveatedFactor<_&&(m=n,_=c._foveatedFactor),b(e,c,r),v(e,c,r)),d){var g;g=!!c._inRequestVolume&&(P(c)?F(e,c,r):c.contentAvailable),p=p&&g}if(f||(p=!1),-1!==m&&!h(e)&&o){var y=s[m];y._wasMinPriorityChild=!0;var C=(t._wasMinPriorityChild||t===e.root)&&_<=t._priorityHolder._foveatedFactor?t._priorityHolder:t;for(C._foveatedFactor=Math.min(y._foveatedFactor,C._foveatedFactor),C._distanceToCamera=Math.min(y._distanceToCamera,C._distanceToCamera),n=0;n<u;++n)c=s[n],c._priorityHolder=C}return p}function O(e,i,r){return!h(e)||!e.immediatelyLoadDesiredLevelOfDetail&&(!t(i._ancestorWithContent)||(0===i._screenSpaceError?i.parent._screenSpaceError>r:i._screenSpaceError>r))}function L(e,t){return 0!==t.children.length&&(t.hasTilesetContent?!t.contentExpired:t._screenSpaceError>e._maximumScreenSpaceError)}function N(e,i,r,n,o){var s=z.stack;for(s.push(i);s.length>0;){z.stackMaximumLength=Math.max(z.stackMaximumLength,s.length);var l=s.pop();x(l,o);var u=O(e,l,r),c=l.refine===a.ADD,d=l.refine===a.REPLACE,h=l.parent,f=!t(h)||h._refines,m=!1;L(e,l)&&(m=R(e,l,s,o)&&f);var y=!m&&f;P(l)?(p(e,l,o),b(e,l,o),y&&_(e,l,o)):c?(_(e,l,o),b(e,l,o)):d&&(u?(b(e,l,o),y&&_(e,l,o)):y?(_(e,l,o),b(e,l,o)):I(e,l)&&b(e,l,o)),g(e,l,o),v(e,l,o),l._refines=m}}function F(e,t,i){var r=!0,n=k.stack;for(n.push(t);n.length>0;){k.stackMaximumLength=Math.max(k.stackMaximumLength,n.length);var o=n.pop(),a=o.children,s=a.length,u=P(o)&&L(e,o);if(u||o.contentAvailable||(r=!1),w(e,o,i),l(o)||(b(e,o,i),v(e,o,i)),u)for(var c=0;c<s;++c){var d=a[c];n.push(d)}}return r}function B(e,i,r){var n,o=U.stack,s=U.ancestorStack;for(o.push(i);o.length>0||s.length>0;){if(U.stackMaximumLength=Math.max(U.stackMaximumLength,o.length),U.ancestorStackMaximumLength=Math.max(U.ancestorStackMaximumLength,s.length),s.length>0){var u=s.peek();if(u._stackLength===o.length){s.pop(),u!==n&&(u._finalResolution=!1),f(e,u,r);continue}}var c=o.pop();if(t(c)){var d=c.refine===a.ADD,h=c._shouldSelect,p=c.children,m=p.length,_=L(e,c);if(h)if(d)f(e,c,r);else{if(c._selectionDepth=s.length,c._selectionDepth>0&&(e._hasMixedContent=!0),n=c,!_){f(e,c,r);continue}s.push(c),c._stackLength=o.length}if(_)for(var g=0;g<m;++g){var v=p[g];l(v)&&o.push(v)}}}}var z={stack:new r,stackMaximumLength:0},k={stack:new r,stackMaximumLength:0},V={stack:new r,stackMaximumLength:0},U={stack:new r,stackMaximumLength:0,ancestorStack:new r,ancestorStackMaximumLength:0},G=2;return s.selectTiles=function(e,t){if(e._requestedTiles.length=0,!e.debugFreezeFrame){e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e._hasMixedContent=!1;var i=e.root;if(w(e,i,t),l(i)&&!(i.getScreenSpaceError(t,!0)<=e._maximumScreenSpaceError)){h(e)?e.immediatelyLoadDesiredLevelOfDetail?c(e,i,t):d(e,i,t):u(e,i,t),z.stack.trim(z.stackMaximumLength),k.stack.trim(k.stackMaximumLength),V.stack.trim(V.stackMaximumLength),U.stack.trim(U.stackMaximumLength),U.ancestorStack.trim(U.ancestorStackMaximumLength);for(var r=e._requestedTiles,n=r.length,o=0;o<n;++o)r[o].updatePriority()}}},s}),define("Scene/Cesium3DTilePass",["../Core/Check","../Core/freezeObject","./Cesium3DTilesetMostDetailedTraversal","./Cesium3DTilesetTraversal"],function(e,t,i,r){"use strict";var n={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},o=new Array(n.NUMBER_OF_PASSES);return o[n.RENDER]=t({traversal:r,isRender:!0,requestTiles:!0,ignoreCommands:!1}),o[n.PICK]=t({traversal:r,isRender:!1,requestTiles:!1,ignoreCommands:!1}),o[n.SHADOW]=t({traversal:r,isRender:!1,requestTiles:!0,ignoreCommands:!1}),o[n.PRELOAD]=t({traversal:r,isRender:!1,requestTiles:!0,ignoreCommands:!0}),o[n.PRELOAD_FLIGHT]=t({traversal:r,isRender:!1,requestTiles:!0,ignoreCommands:!0}),o[n.REQUEST_RENDER_MODE_DEFER_CHECK]=t({traversal:r,isRender:!1,requestTiles:!0,ignoreCommands:!0}),o[n.MOST_DETAILED_PRELOAD]=t({traversal:i,isRender:!1,requestTiles:!0,ignoreCommands:!0}),o[n.MOST_DETAILED_PICK]=t({traversal:i,isRender:!1,requestTiles:!1,ignoreCommands:!1}),n.getPassOptions=function(e){return o[e]},t(n)}),define("Scene/Empty3DTileContent",["../Core/defineProperties","../Core/destroyObject"],function(e,t){"use strict";function i(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}return e(i.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},readyPromise:{get:function(){}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},batchTable:{get:function(){}}}),i.prototype.hasProperty=function(e,t){return!1},i.prototype.getFeature=function(e){},i.prototype.applyDebugSettings=function(e,t){},i.prototype.applyStyle=function(e){},i.prototype.update=function(e,t){},i.prototype.isDestroyed=function(){return!1},i.prototype.destroy=function(){return t(this)},i}),define("Scene/TileBoundingRegion",["../Core/BoundingSphere","../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defineProperties","../Core/Ellipsoid","../Core/GeometryInstance","../Core/IntersectionTests","../Core/Matrix4","../Core/OrientedBoundingBox","../Core/Plane","../Core/Ray","../Core/Rectangle","../Core/RectangleOutlineGeometry","./PerInstanceColorAppearance","./Primitive","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(i){this.rectangle=f.clone(i.rectangle),this.minimumHeight=o(i.minimumHeight,0),this.maximumHeight=o(i.maximumHeight,0),this.southwestCornerCartesian=new t,this.northeastCornerCartesian=new t,this.westNormal=new t,this.southNormal=new t,this.eastNormal=new t,this.northNormal=new t;var r=o(i.ellipsoid,s.WGS84);C(this,i.rectangle,r),o(i.computeBoundingVolumes,!0)&&(this._orientedBoundingBox=d.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,r),this._boundingSphere=e.fromOrientedBoundingBox(this._orientedBoundingBox))}function C(e,i,r){r.cartographicToCartesian(f.southwest(i),e.southwestCornerCartesian),r.cartographicToCartesian(f.northeast(i),e.northeastCornerCartesian),x.longitude=i.west,x.latitude=.5*(i.south+i.north),x.height=0;var n=r.cartographicToCartesian(x,A),o=t.cross(n,t.UNIT_Z,b);t.normalize(o,e.westNormal),x.longitude=i.east;var a=r.cartographicToCartesian(x,w),s=t.cross(t.UNIT_Z,a,b);t.normalize(s,e.eastNormal);var l,c=t.subtract(n,a,b),d=t.normalize(c,E),p=i.south;if(p>0){x.longitude=.5*(i.west+i.east),x.latitude=p;var m=r.cartographicToCartesian(x,D.origin);t.clone(d,D.direction);var _=h.fromPointNormal(e.southwestCornerCartesian,e.westNormal,P);u.rayPlane(D,_,e.southwestCornerCartesian),l=r.geodeticSurfaceNormal(m,S)}else l=r.geodeticSurfaceNormalCartographic(f.southeast(i),S);var g=t.cross(l,c,T);t.normalize(g,e.southNormal);var v,y=i.north;if(y<0){x.longitude=.5*(i.west+i.east),x.latitude=y;var C=r.cartographicToCartesian(x,D.origin);t.negate(d,D.direction);var I=h.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,P);u.rayPlane(D,I,e.northeastCornerCartesian),v=r.geodeticSurfaceNormal(C,S)}else v=r.geodeticSurfaceNormalCartographic(f.northwest(i),S);var M=t.cross(c,v,T);t.normalize(M,e.northNormal)}a(y.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});var b=new t,S=new t,T=new t,E=new t,A=new t,w=new t,x=new i,P=new h(t.UNIT_X,0),D=new p,I=new t,M=new t,R=new t(0,-1,0),O=new t(0,0,-1),L=new t;return y.prototype.distanceToCamera=function(e){var i=e.camera,r=i.positionWC,n=i.positionCartographic,o=0;if(!f.contains(this.rectangle,n)){var a=this.southwestCornerCartesian,s=this.northeastCornerCartesian,l=this.westNormal,u=this.southNormal,c=this.eastNormal,d=this.northNormal;e.mode!==v.SCENE3D&&(a=e.mapProjection.project(f.southwest(this.rectangle),I),a.z=a.y,a.y=a.x,a.x=0,s=e.mapProjection.project(f.northeast(this.rectangle),M),s.z=s.y,s.y=s.x,s.x=0,l=R,c=t.UNIT_Y,u=O,d=t.UNIT_Z);var h=t.subtract(r,a,L),p=t.dot(h,l),m=t.dot(h,u),_=t.subtract(r,s,L),g=t.dot(_,c),y=t.dot(_,d);p>0?o+=p*p:g>0&&(o+=g*g),m>0?o+=m*m:y>0&&(o+=y*y)}var C,b,S;if(e.mode===v.SCENE3D?(C=n.height,b=this.minimumHeight,S=this.maximumHeight):(C=r.x,b=0,S=0),C>S){var T=C-S;o+=T*T}else if(C<b){var E=b-C;o+=E*E}return Math.sqrt(o)},y.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)},y.prototype.createDebugVolume=function(e){var t=new c.clone(c.IDENTITY),i=new m({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),r=new l({geometry:i,id:"outline",modelMatrix:t,attributes:{color:n.fromColor(e)}});return new g({geometryInstances:r,appearance:new _({translucent:!1,flat:!0}),asynchronous:!1})},y}),define("Scene/TileBoundingSphere",["../Core/BoundingSphere","../Core/Cartesian3","../Core/Check","../Core/ColorGeometryInstanceAttribute","../Core/defineProperties","../Core/GeometryInstance","../Core/Matrix4","../Core/SphereOutlineGeometry","./PerInstanceColorAppearance","./Primitive"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t,i){this._boundingSphere=new e(t,i)}return n(c.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}}),c.prototype.distanceToCamera=function(e){var i=this._boundingSphere;return Math.max(0,t.distance(i.center,e.camera.positionWC)-i.radius)},c.prototype.intersectPlane=function(t){return e.intersectPlane(this._boundingSphere,t)},c.prototype.update=function(e,i){t.clone(e,this._boundingSphere.center),this._boundingSphere.radius=i},c.prototype.createDebugVolume=function(e){var t=new s({radius:this.radius}),i=a.fromTranslation(this.center,new a.clone(a.IDENTITY)),n=new o({geometry:t,id:"outline",modelMatrix:i,attributes:{color:r.fromColor(e)}});return new u({geometryInstances:n,appearance:new l({translucent:!1,flat:!0}),asynchronous:!1})},c}),define("Scene/TileOrientedBoundingBox",["../Core/BoundingSphere","../Core/BoxOutlineGeometry","../Core/Cartesian3","../Core/Check","../Core/ColorGeometryInstanceAttribute","../Core/defineProperties","../Core/GeometryInstance","../Core/Matrix3","../Core/Matrix4","../Core/OrientedBoundingBox","./PerInstanceColorAppearance","./Primitive"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(t,i){this._orientedBoundingBox=new u(t,i),this._boundingSphere=e.fromOrientedBoundingBox(this._orientedBoundingBox)}return o(h.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}}),h.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))},h.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)},h.prototype.update=function(t,r){i.clone(t,this._orientedBoundingBox.center),s.clone(r,this._orientedBoundingBox.halfAxes),e.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)},h.prototype.createDebugVolume=function(e){var r=new t({minimum:new i(-1,-1,-1),maximum:new i(1,1,1)}),o=l.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),s=new a({geometry:r,id:"outline",modelMatrix:o,attributes:{color:n.fromColor(e)}});return new d({geometryInstances:s,appearance:new c({translucent:!1,flat:!0}),asynchronous:!1})},h}),define("Scene/Cesium3DTile",["../Core/BoundingSphere","../Core/Cartesian3","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/CullingVolume","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/Ellipsoid","../Core/getMagic","../Core/Intersect","../Core/JulianDate","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/OrientedBoundingBox","../Core/OrthographicFrustum","../Core/Rectangle","../Core/Request","../Core/RequestScheduler","../Core/RequestState","../Core/RequestType","../Core/Resource","../Core/RuntimeError","../Core/Transforms","../ThirdParty/when","./Cesium3DTileContentFactory","./Cesium3DTileContentState","./Cesium3DTileOptimizationHint","./Cesium3DTilePass","./Cesium3DTileRefine","./Empty3DTileContent","./SceneMode","./TileBoundingRegion","./TileBoundingSphere","./TileOrientedBoundingBox"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B){"use strict";function z(e,t,r,n){this._tileset=e,this._header=r;var o=r.content;this.transform=a(r.transform)?_.unpack(r.transform):_.clone(_.IDENTITY);var s=a(n)?n.computedTransform:e.modelMatrix,l=_.multiply(s,this.transform,new _),u=a(n)?n._initialTransform:_.IDENTITY;this._initialTransform=_.multiply(u,this.transform,new _),this.computedTransform=l,this._boundingVolume=this.createBoundingVolume(r.boundingVolume,l),this._boundingVolume2D=void 0;var c;a(o)&&a(o.boundingVolume)&&(c=this.createBoundingVolume(o.boundingVolume,l)),this._contentBoundingVolume=c,this._contentBoundingVolume2D=void 0;var d;a(r.viewerRequestVolume)&&(d=this.createBoundingVolume(r.viewerRequestVolume,l)),this._viewerRequestVolume=d,this.geometricError=r.geometricError,a(this.geometricError)||(this.geometricError=a(n)?n.geometricError:e._geometricError,z._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead."));var h;a(r.refine)?("replace"!==r.refine&&"add"!==r.refine||z._deprecationWarning("lowercase-refine",'This tile uses a lowercase refine "'+r.refine+'". Instead use "'+r.refine.toUpperCase()+'".'),h="REPLACE"===r.refine.toUpperCase()?R.REPLACE:R.ADD):h=a(n)?n.refine:R.REPLACE,this.refine=h,this.children=[],this.parent=n;var f,m,g,v,y;if(t=E.createIfNeeded(t),a(o)){var C=o.uri;a(o.url)&&(z._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),C=o.url),m=!1,g=D.UNLOADED,v=t.getDerivedResource({url:C}),y=b.getServerKey(v.getUrlComponent())}else f=new O(e,this),m=!0,g=D.READY;this._content=f,this._contentResource=v,this._contentState=g,this._contentReadyToProcessPromise=void 0,this._contentReadyPromise=void 0,this._expiredContent=void 0,this._serverKey=y,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.cacheNode=void 0;var S,T,A=r.expire;a(A)&&(S=A.duration,a(A.date)&&(T=p.fromIso8601(A.date))),this.expireDuration=S,this.expireDate=T,this.lastStyleTime=0,this._optimChildrenWithinParent=I.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.priorityDeferred=!1,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0, -this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._clippingPlanesState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=i.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new p,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}function k(e,i){var r=e._tileset,n=i.camera,o=e.boundingSphere,s=o.radius,l=t.multiplyByScalar(n.directionWC,e._centerZDepth,ie),u=t.add(n.positionWC,l,ie),c=t.subtract(u,o.center,ie);if(t.magnitude(c)>s){var d=t.normalize(c,ie),h=t.multiplyByScalar(d,s,ie),p=t.add(o.center,h,ie),m=t.subtract(p,n.positionWC,ie),_=t.normalize(m,ie);e._foveatedFactor=1-Math.abs(t.dot(n.directionWC,_))}else e._foveatedFactor=0;var g=e.refine===R.REPLACE,v=r._skipLevelOfDetail;if(g&&!v||!r.foveatedScreenSpaceError||1===r.foveatedConeSize||e._priorityProgressiveResolution&&g&&v||r._pass===M.PRELOAD_FLIGHT||r._pass===M.PRELOAD)return!1;var y=1-Math.cos(.5*n.frustum.fov),C=r.foveatedConeSize*y;if(e._foveatedFactor<=C)return!1;var b=y-C,S=f.clamp((e._foveatedFactor-C)/b,0,1),T=r.foveatedInterpolationCallback(r.foveatedMinimumScreenSpaceErrorRelaxation,r.maximumScreenSpaceError,S),E=0===e._screenSpaceError&&a(e.parent)?.5*e.parent._screenSpaceError:e._screenSpaceError;return r.maximumScreenSpaceError-T<=E}function V(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;var i=t._screenSpaceErrorProgressiveResolution>e._maximumScreenSpaceError;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;var r=t.parent,n=e._maximumScreenSpaceError,o=t._screenSpaceErrorProgressiveResolution<=n,s=a(r)&&r._screenSpaceErrorProgressiveResolution>n;return o&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function U(e,t){var i=t.parent,r=a(i)&&(!e._skipLevelOfDetail||0===t._screenSpaceError||i.hasTilesetContent),n=r?i._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-n}function G(e){if(a(e.expireDuration)){var t=p.now(re);p.addSeconds(t,e.expireDuration,t),a(e.expireDate)?p.lessThan(e.expireDate,t)&&p.clone(t,e.expireDate):e.expireDate=p.clone(t)}}function H(e){return function(t){e._contentState=D.FAILED,e._contentReadyPromise.reject(t),e._contentReadyToProcessPromise.reject(t)}}function W(e){return function(){return e._priority}}function q(t,i){if(i.mode!==L.SCENE3D&&!a(t._boundingVolume2D)){var r=t._boundingVolume.boundingSphere,n=e.projectTo2D(r,i.mapProjection,ne);t._boundingVolume2D=new F(n.center,n.radius)}return i.mode!==L.SCENE3D?t._boundingVolume2D:t._boundingVolume}function Y(t,i){if(i.mode!==L.SCENE3D&&!a(t._contentBoundingVolume2D)){var r=t._contentBoundingVolume.boundingSphere,n=e.projectTo2D(r,i.mapProjection,ne);t._contentBoundingVolume2D=new F(n.center,n.radius)}return i.mode!==L.SCENE3D?t._contentBoundingVolume2D:t._contentBoundingVolume}function j(e,i,r){var n=t.fromElements(e[0],e[1],e[2],ue),o=m.fromArray(e,3,le);n=_.multiplyByPoint(i,n,n);var s=_.getRotation(i,ae);return o=m.multiply(s,o,o),a(r)?(r.update(n,o),r):new B(n,o)}function X(e,t,i,r){var n=y.unpack(e,0,ce),o=e[4],s=e[5],l=g.fromRectangle(n,o,s,c.WGS84,de),u=l.center,d=l.halfAxes;t=_.multiplyTransformation(t,_.inverseTransformation(i,he),he),u=_.multiplyByPoint(t,u,u);var h=_.getRotation(t,ae);return d=m.multiply(h,d,d),a(r)&&r instanceof B?(r.update(u,d),r):new B(u,d)}function Q(e,t,i,r){if(!_.equalsEpsilon(t,i,f.EPSILON8))return X(e,t,i,r);if(a(r))return r;var n=y.unpack(e,0,ce);return new N({rectangle:n,minimumHeight:e[4],maximumHeight:e[5]})}function K(e,i,r){var n=t.fromElements(e[0],e[1],e[2],ue),o=e[3];n=_.multiplyByPoint(i,n,n);var s=_.getScale(i,se);return o*=t.maximumComponent(s),a(r)?(r.update(n,o),r):new F(n,o)}function Z(e,t,n){if(n.passes.render){var o=a(e._header.content)&&a(e._header.content.boundingVolume),s=e.hasEmptyContent||e.hasTilesetContent,l=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(l){var u;u=e._finalResolution?s?i.DARKGRAY:i.WHITE:i.YELLOW,a(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(u)),e._debugBoundingVolume.update(n);var c=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");c.color=r.toValue(u,c.color)}else!l&&a(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(a(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(i.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&a(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&a(e._viewerRequestVolume)?(a(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(i.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&a(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());var d=t.debugColorizeTiles&&!e._debugColorizeTiles||a(t._heatmap.tilePropertyName),h=!t.debugColorizeTiles&&e._debugColorizeTiles;d?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):h&&(e._debugColorizeTiles=!1,e.color=i.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),h&&t.makeStyleDirty()}}function J(e,t,i){var r=e._content,n=e._expiredContent;if(a(n)){if(!e.contentReady)return void n.update(t,i);e._expiredContent.destroy(),e._expiredContent=void 0}r.update(t,i)}function $(e,t){var i=t.clippingPlanes,r=0;a(i)&&e._isClipped&&i.enabled&&(r=i.clippingPlanesState),r!==e._clippingPlanesState&&(e._clippingPlanesState=r,e.clippingPlanesDirty=!0)}function ee(e,t,i){var r=e*Math.pow(10,t);return parseInt(r)*Math.pow(10,i)}function te(e,t,i){return Math.max(f.normalize(e,t,i)-f.EPSILON7,0)}z._deprecationWarning=l,s(z.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return o(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},extras:{get:function(){return this._header.extras}},color:{get:function(){return a(this._color)||(this._color=new i),i.clone(this._color)},set:function(e){this._color=i.clone(e,this._color),this._colorDirty=!0}},contentAvailable:{get:function(){return this.contentReady&&!this.hasEmptyContent&&!this.hasTilesetContent||a(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===D.READY}},contentUnloaded:{get:function(){return this._contentState===D.UNLOADED}},contentExpired:{get:function(){return this._contentState===D.EXPIRED}},contentFailed:{get:function(){return this._contentState===D.FAILED}},contentReadyToProcessPromise:{get:function(){if(a(this._contentReadyToProcessPromise))return this._contentReadyToProcessPromise.promise}},contentReadyPromise:{get:function(){if(a(this._contentReadyPromise))return this._contentReadyPromise.promise}},commandsLength:{get:function(){return this._commandsLength}}});var ie=new t,re=new p;z.prototype.getScreenSpaceError=function(e,t,i){var r=this._tileset,n=o(i,1),s=a(this.parent)?this.parent.geometricError:r._geometricError,l=t?s:this.geometricError;if(0===l)return 0;var u,c=e.camera,d=c.frustum,h=e.context,p=h.drawingBufferWidth,m=h.drawingBufferHeight*n;if(e.mode===L.SCENE2D||d instanceof v){a(d._offCenterFrustum)&&(d=d._offCenterFrustum);u=l/(Math.max(d.top-d.bottom,d.right-d.left)/Math.max(p,m))}else{var _=Math.max(this._distanceToCamera,f.EPSILON7);if(u=l*m/(_*c.frustum.sseDenominator),r.dynamicScreenSpaceError){var g=r._dynamicScreenSpaceErrorComputedDensity,y=r.dynamicScreenSpaceErrorFactor;u-=f.fog(_,g)*y}}return u},z.prototype.updateVisibility=function(e){var t=this.parent,i=this._tileset,r=a(t)?t.computedTransform:i.modelMatrix,o=a(t)?t._visibilityPlaneMask:n.MASK_INDETERMINATE;this.updateTransform(r),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,i.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==n.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=U(i,this),this._priorityProgressiveResolution=V(i,this),this.priorityDeferred=k(this,e)},z.prototype.updateExpiration=function(){if(a(this.expireDate)&&this.contentReady&&!this.hasEmptyContent){var e=p.now(re);p.lessThan(this.expireDate,e)&&(this._contentState=D.EXPIRED,this._expiredContent=this._content)}},z.prototype.requestContent=function(){var e=this,t=this._tileset;if(this.hasEmptyContent)return!1;var i=this._contentResource.clone(),r=this.contentExpired;r&&i.setQueryParameters({expired:this.expireDate.toString()});var n=new C({throttle:!0,throttleByServer:!0,type:T.TILES3D,priorityFunction:W(this),serverKey:this._serverKey});this._request=n,i.request=n;var o=i.fetchArrayBuffer();if(!a(o))return!1;var s=this._contentState;this._contentState=D.LOADING,this._contentReadyToProcessPromise=x.defer(),this._contentReadyPromise=x.defer(),r&&(this.expireDate=void 0);var l=H(this);return o.then(function(i){if(e.isDestroyed())return void l();var r,n=new Uint8Array(i),o=d(n),s=P[o];return t._disableSkipLevelOfDetail=t._disableSkipLevelOfDetail||"vctr"===o||"geom"===o,a(s)?r=s(t,e,e._contentResource,i,0):(r=P.json(t,e,e._contentResource,i,0),e.hasTilesetContent=!0),e._content=r,e._contentState=D.PROCESSING,e._contentReadyToProcessPromise.resolve(r),r.readyPromise.then(function(t){if(e.isDestroyed())return void l();G(e),e._selectedFrame=0,e.lastStyleTime=0,p.now(e._loadTimestamp),e._contentState=D.READY,e._contentReadyPromise.resolve(t)})}).otherwise(function(i){if(n.state===S.CANCELLED)return e._contentState=s,--t.statistics.numberOfPendingRequests,void++t.statistics.numberOfAttemptedRequests;l(i)}),!0},z.prototype.unloadContent=function(){this.hasEmptyContent||this.hasTilesetContent||(this._content=this._content&&this._content.destroy(),this._contentState=D.UNLOADED,this._contentReadyToProcessPromise=void 0,this._contentReadyPromise=void 0,this.lastStyleTime=0,this.clippingPlanesDirty=0===this._clippingPlanesState,this._clippingPlanesState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var ne=new e;z.prototype.visibility=function(e,t){var i=e.cullingVolume,r=q(this,e),o=this._tileset,s=o.clippingPlanes;if(a(s)&&s.enabled){var l=s.computeIntersectionWithBoundingVolume(r,o.clippingPlanesOriginMatrix);if(this._isClipped=l!==h.INSIDE,l===h.OUTSIDE)return n.MASK_OUTSIDE}return i.computeVisibilityWithPlaneMask(r,t)},z.prototype.contentVisibility=function(e){if(!a(this._contentBoundingVolume))return h.INSIDE;if(this._visibilityPlaneMask===n.MASK_INSIDE)return h.INSIDE;var t=e.cullingVolume,i=Y(this,e),r=this._tileset,o=r.clippingPlanes;if(a(o)&&o.enabled){var s=o.computeIntersectionWithBoundingVolume(i,r.clippingPlanesOriginMatrix);if(this._isClipped=s!==h.INSIDE,s===h.OUTSIDE)return h.OUTSIDE}return t.computeVisibility(i)},z.prototype.distanceToTile=function(e){return q(this,e).distanceToCamera(e)};var oe=new t;z.prototype.distanceToTileCenter=function(e){var i=q(this,e),r=i.boundingVolume,n=t.subtract(r.center,e.camera.positionWC,oe);return t.dot(e.camera.directionWC,n)},z.prototype.insideViewerRequestVolume=function(e){var t=this._viewerRequestVolume;return!a(t)||0===t.distanceToCamera(e)};var ae=new m,se=new t,le=new m,ue=new t,ce=new y,de=new g,he=new _;z.prototype.createBoundingVolume=function(e,t,i){if(!a(e))throw new A("boundingVolume must be defined");if(a(e.box))return j(e.box,t,i);if(a(e.region))return Q(e.region,t,this._initialTransform,i);if(a(e.sphere))return K(e.sphere,t,i);throw new A("boundingVolume must contain a sphere, region, or box")},z.prototype.updateTransform=function(e){e=o(e,_.IDENTITY);var t=_.multiply(e,this.transform,he);if(!_.equals(t,this.computedTransform)){_.clone(t,this.computedTransform);var i=this._header,r=this._header.content;this._boundingVolume=this.createBoundingVolume(i.boundingVolume,this.computedTransform,this._boundingVolume),a(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._contentBoundingVolume)),a(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(i.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()}},z.prototype.update=function(e,t){var i=t.commandList.length;$(this,e),Z(this,e,t),J(this,e,t),this._commandsLength=t.commandList.length-i,this.clippingPlanesDirty=!1};var pe=[];return z.prototype.process=function(e,t){var i=t.commandList;t.commandList=pe,this._content.update(e,t),pe.length=0,t.commandList=i},z.prototype.updatePriority=function(){var e=this.tileset,t=e.preferLeaves,i=e._minimumPriority,r=e._maximumPriority,n=Math.pow(10,8),o=Math.pow(10,9),a=Math.pow(10,10),s=te(this._depth,i.depth,r.depth);s=t?1-s:s;var l=!e._skipLevelOfDetail&&this.refine===R.REPLACE,u=l?te(this._priorityHolder._distanceToCamera,i.distance,r.distance):te(this._priorityReverseScreenSpaceError,i.reverseScreenSpaceError,r.reverseScreenSpaceError),c=ee(u,4,0),d=this._priorityProgressiveResolution?0:n,h=te(this._priorityHolder._foveatedFactor,i.foveatedFactor,r.foveatedFactor),p=ee(h,4,4),f=this.priorityDeferred?o:0,m=e._pass===M.PRELOAD_FLIGHT?0:a;this._priority=s+c+d+p+f+m},z.prototype.isDestroyed=function(){return!1},z.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),u(this)},z}),define("Scene/Cesium3DTileContent",["../Core/defineProperties","../Core/DeveloperError"],function(e,t){"use strict";function i(e,t,i,r,n){this.featurePropertiesDirty=!1}return e(i.prototype,{featuresLength:{get:function(){t.throwInstantiationError()}},pointsLength:{get:function(){t.throwInstantiationError()}},trianglesLength:{get:function(){t.throwInstantiationError()}},geometryByteLength:{get:function(){t.throwInstantiationError()}},texturesByteLength:{get:function(){t.throwInstantiationError()}},batchTableByteLength:{get:function(){t.throwInstantiationError()}},innerContents:{get:function(){t.throwInstantiationError()}},readyPromise:{get:function(){t.throwInstantiationError()}},tileset:{get:function(){t.throwInstantiationError()}},tile:{get:function(){t.throwInstantiationError()}},url:{get:function(){t.throwInstantiationError()}},batchTable:{get:function(){t.throwInstantiationError()}}}),i.prototype.hasProperty=function(e,i){t.throwInstantiationError()},i.prototype.getFeature=function(e){t.throwInstantiationError()},i.prototype.applyDebugSettings=function(e,i){t.throwInstantiationError()},i.prototype.applyStyle=function(e){t.throwInstantiationError()},i.prototype.update=function(e,i){t.throwInstantiationError()},i.prototype.isDestroyed=function(){t.throwInstantiationError()},i.prototype.destroy=function(){t.throwInstantiationError()},i}),define("Scene/Cesium3DTileOptimizations",["../Core/Cartesian3","../Core/Check","./Cesium3DTileOptimizationHint","./TileBoundingRegion","./TileOrientedBoundingBox"],function(e,t,i,r,n){"use strict";var o={},a=new e;return o.checkChildrenWithinParent=function(t){var o=t.children,s=o.length,l=t.boundingVolume;if(l instanceof n||l instanceof r){var u=l._orientedBoundingBox;t._optimChildrenWithinParent=i.USE_OPTIMIZATION;for(var c=0;c<s;++c){var d=o[c],h=d.boundingVolume;if(!(h instanceof n||h instanceof r)){t._optimChildrenWithinParent=i.SKIP_OPTIMIZATION;break}var p=h._orientedBoundingBox,f=e.subtract(p.center,u.center,a),m=e.magnitude(f);e.divideByScalar(f,m,f);if(Math.abs(u.halfAxes[0]*f.x)+Math.abs(u.halfAxes[1]*f.y)+Math.abs(u.halfAxes[2]*f.z)+Math.abs(u.halfAxes[3]*f.x)+Math.abs(u.halfAxes[4]*f.y)+Math.abs(u.halfAxes[5]*f.z)+Math.abs(u.halfAxes[6]*f.x)+Math.abs(u.halfAxes[7]*f.y)+Math.abs(u.halfAxes[8]*f.z)<=Math.abs(p.halfAxes[0]*f.x)+Math.abs(p.halfAxes[1]*f.y)+Math.abs(p.halfAxes[2]*f.z)+Math.abs(p.halfAxes[3]*f.x)+Math.abs(p.halfAxes[4]*f.y)+Math.abs(p.halfAxes[5]*f.z)+Math.abs(p.halfAxes[6]*f.x)+Math.abs(p.halfAxes[7]*f.y)+Math.abs(p.halfAxes[8]*f.z)+m){t._optimChildrenWithinParent=i.SKIP_OPTIMIZATION;break}}}return t._optimChildrenWithinParent===i.USE_OPTIMIZATION},o}),define("Scene/Cesium3DTilePassState",["../Core/Check"],function(e){"use strict";function t(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}return t}),define("Scene/Cesium3DTilesetCache",["../Core/defined","../Core/DoublyLinkedList"],function(e,t){"use strict";function i(){this._list=new t,this._sentinel=this._list.add(),this._trimTiles=!1}return i.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)},i.prototype.touch=function(t){var i=t.cacheNode;e(i)&&this._list.splice(this._sentinel,i)},i.prototype.add=function(t){e(t.cacheNode)||(t.cacheNode=this._list.add(t))},i.prototype.unloadTile=function(t,i,r){var n=i.cacheNode;e(n)&&(this._list.remove(n),i.cacheNode=void 0,r(t,i))},i.prototype.unloadTiles=function(e,t){var i=this._trimTiles;this._trimTiles=!1;for(var r=this._list,n=1024*e.maximumMemoryUsage*1024,o=this._sentinel,a=r.head;a!==o&&(e.totalMemoryUsageInBytes>n||i);){var s=a.item;a=a.next,this.unloadTile(e,s,t)}},i.prototype.trim=function(){this._trimTiles=!0},i}),define("Scene/Cesium3DTilesetHeatmap",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/JulianDate","../Core/Math"],function(e,t,i,r,n,o){"use strict";function a(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function s(e,t){return"_loadTimestamp"===t?n.toDate(e).getTime():e}function l(e,t){var r=e.tilePropertyName;if(i(r)){var n=s(t[r],r);return i(n)?(e._maximum=Math.max(n,e._maximum),e._minimum=Math.min(n,e._minimum),n):(e.tilePropertyName=void 0,n)}}a.prototype.setReferenceMinimumMaximum=function(e,t,i){this._referenceMinimum[i]=s(e,i),this._referenceMaximum[i]=s(t,i)};var u=[new e(.1,.1,.1,1),new e(.153,.278,.878,1),new e(.827,.231,.49,1),new e(.827,.188,.22,1),new e(1,.592,.259,1),new e(1,.843,0,1)];return a.prototype.colorize=function(t,r){var n=this.tilePropertyName;if(i(n)&&t.contentAvailable&&t._selectedFrame===r.frameNumber){var a=l(this,t),s=this._previousMinimum,c=this._previousMaximum;if(s!==Number.MAX_VALUE&&c!==-Number.MAX_VALUE){var d=c-s+o.EPSILON7,h=o.clamp(a-s,0,d),p=h/d,f=u.length-1,m=p*f,_=Math.floor(m),g=Math.ceil(m),v=m-_,y=u[_],C=u[g],b=e.clone(e.WHITE);b.red=o.lerp(y.red,C.red,v),b.green=o.lerp(y.green,C.green,v),b.blue=o.lerp(y.blue,C.blue,v),t._debugColor=b}}},a.prototype.resetMinimumMaximum=function(){var e=this.tilePropertyName;if(i(e)){var t=this._referenceMinimum[e],r=this._referenceMaximum[e],n=i(t)&&i(r);this._previousMinimum=n?t:this._minimum,this._previousMaximum=n?r:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}},a}),define("Scene/Cesium3DTilesetStatistics",["../Core/defined"],function(e){"use strict";function t(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}function i(t,r,n,o){var a=r.innerContents,s=r.pointsLength,l=r.trianglesLength,u=r.featuresLength,c=r.geometryByteLength,d=r.texturesByteLength,h=r.batchTableByteLength;if(o?(t.numberOfFeaturesLoaded+=n?-u:u,t.numberOfPointsLoaded+=n?-s:s,t.geometryByteLength+=n?-c:c,t.texturesByteLength+=n?-d:d,t.batchTableByteLength+=n?-h:h):(t.numberOfFeaturesSelected+=n?-u:u,t.numberOfPointsSelected+=n?-s:s,t.numberOfTrianglesSelected+=n?-l:l),e(a))for(var p=a.length,f=0;f<p;++f)i(t,a[f],n,o)}return t.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0},t.prototype.incrementSelectionCounts=function(e){i(this,e,!1,!1)},t.prototype.incrementLoadCounts=function(e){i(this,e,!1,!0)},t.prototype.decrementLoadCounts=function(e){i(this,e,!0,!0)},t.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength},t}),define("Scene/Cesium3DTileStyleEngine",["../Core/defined","../Core/defineProperties"],function(e,t){"use strict";function i(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}return t(i.prototype,{style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}}}),i.prototype.makeDirty=function(){this._styleDirty=!0},i.prototype.applyStyle=function(t,i){if(t.ready&&(!e(this._style)||this._style.ready)){var r=this._styleDirty;i.passes.render&&(this._styleDirty=!1),r&&++this._lastStyleTime;for(var n=this._lastStyleTime,o=t._statistics,a=r?t._selectedTiles:t._selectedTilesToStyle,s=a.length,l=0;l<s;++l){var u=a[l];if(u.lastStyleTime!==n){var c=u.content;u.lastStyleTime=n,c.applyStyle(this._style),o.numberOfFeaturesStyled+=c.featuresLength,++o.numberOfTilesStyled}}}},i}),define("Scene/Cesium3DTileset",["../Core/ApproximateTerrainHeights","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/DeveloperError","../Core/DoublyLinkedList","../Core/Ellipsoid","../Core/Event","../Core/JulianDate","../Core/ManagedArray","../Core/Math","../Core/Matrix4","../Core/Resource","../Core/RuntimeError","../Core/Transforms","../Renderer/ClearCommand","../Renderer/Pass","../Renderer/RenderState","../ThirdParty/when","./Axis","./Cesium3DTile","./Cesium3DTileColorBlendMode","./Cesium3DTileContentState","./Cesium3DTileOptimizations","./Cesium3DTilePass","./Cesium3DTilePassState","./Cesium3DTileRefine","./Cesium3DTilesetCache","./Cesium3DTilesetHeatmap","./Cesium3DTilesetMostDetailedTraversal","./Cesium3DTilesetStatistics","./Cesium3DTilesetTraversal","./Cesium3DTileStyleEngine","./ClippingPlaneCollection","./LabelCollection","./PointCloudEyeDomeLighting","./PointCloudShading","./SceneMode","./ShadowMode","./StencilConstants","./TileBoundingRegion","./TileBoundingSphere","./TileOrientedBoundingBox"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q){"use strict";function K(i){i=a(i,a.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._extensionsUsed=void 0,this._gltfUpAxis=void 0,this._cache=new L,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._extras=void 0,this._credits=void 0,this._cullWithChildrenBounds=a(i.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new _,this._maximumScreenSpaceError=a(i.maximumScreenSpaceError,16),this._maximumMemoryUsage=a(i.maximumMemoryUsage,512),this._styleEngine=new k,this._modelMatrix=s(i.modelMatrix)?v.clone(i.modelMatrix):v.clone(v.IDENTITY),this._statistics=new B,this._statisticsLast=new B,this._statisticsPerPass=new Array(M.NUMBER_OF_PASSES);for(var r=0;r<M.NUMBER_OF_PASSES;++r)this._statisticsPerPass[r]=new B;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new N(i.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=a(i.cullRequestsWhileMoving,!0),this.cullRequestsWhileMovingMultiplier=a(i.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=g.clamp(a(i.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=a(i.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._readyPromise=A.defer(),this._classificationType=i.classificationType,this._ellipsoid=a(i.ellipsoid,p.WGS84),this._initialClippingPlanesOriginMatrix=v.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this.preloadWhenHidden=a(i.preloadWhenHidden,!1),this.preloadFlightDestinations=a(i.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=a(i.dynamicScreenSpaceError,!1),this.foveatedScreenSpaceError=a(i.foveatedScreenSpaceError,!0),this._foveatedConeSize=a(i.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=a(i.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=a(i.foveatedInterpolationCallback,g.lerp),this.foveatedTimeDelay=a(i.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorFactor=4,this.dynamicScreenSpaceErrorHeightFalloff=.25,this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=a(i.shadows,q.ENABLED),this.show=a(i.show,!0),this.colorBlendMode=P.HIGHLIGHT,this.colorBlendAmount=.5,this.pointCloudShading=new H(i.pointCloudShading),this._pointCloudEyeDomeLighting=new G,this.loadProgress=new f,this.allTilesLoaded=new f,this.initialTilesLoaded=new f,this.tileLoad=new f,this.tileUnload=new f,this.tileFailed=new f,this.tileVisible=new f,this.skipLevelOfDetail=a(i.skipLevelOfDetail,!0),this._skipLevelOfDetail=this.skipLevelOfDetail,this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=a(i.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=a(i.skipScreenSpaceErrorFactor,16),this.skipLevels=a(i.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=a(i.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=a(i.loadSiblings,!1),this._clippingPlanes=void 0,this.clippingPlanes=i.clippingPlanes,this._imageBasedLightingFactor=new t(1,1),t.clone(i.imageBasedLightingFactor,this._imageBasedLightingFactor),this.lightColor=i.lightColor,this.luminanceAtZenith=a(i.luminanceAtZenith,.5),this.sphericalHarmonicCoefficients=i.sphericalHarmonicCoefficients,this.specularEnvironmentMaps=i.specularEnvironmentMaps,this.debugFreezeFrame=a(i.debugFreezeFrame,!1),this.debugColorizeTiles=a(i.debugColorizeTiles,!1),this.debugWireframe=a(i.debugWireframe,!1),this.debugShowBoundingVolume=a(i.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=a(i.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=a(i.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=a(i.debugShowGeometricError,!1),this.debugShowRenderingStatistics=a(i.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=a(i.debugShowMemoryUsage,!1),this.debugShowUrl=a(i.debugShowUrl,!1);var n,l=this;A(i.url).then(function(e){var t;return n=y.createIfNeeded(e),l._credits=n.credits,"json"===n.extension?t=n.getBaseUri(!0):n.isDataUri&&(t=""),l._url=n.url,l._basePath=t,K.loadJson(n)}).then(function(t){l._root=l.loadTileset(n,t);var i=s(t.asset.gltfUpAxis)?w.fromName(t.asset.gltfUpAxis):w.Y,r=t.asset;l._asset=r,l._properties=t.properties,l._geometricError=t.geometricError,l._extensionsUsed=t.extensionsUsed,l._gltfUpAxis=i,l._extras=t.extras;var a=r.extras;if(s(a)&&s(a.cesium)&&s(a.cesium.credits)){var u=a.cesium.credits,c=l._credits;s(c)||(c=[],l._credits=c);for(var d=0;d<u.length;++d){var h=u[d];c.push(new o(h.html,h.showOnScreen))}}var p=l._root.createBoundingVolume(t.root.boundingVolume,v.IDENTITY),f=p.boundingSphere.center,m=l._ellipsoid.cartesianToCartographic(f);s(m)&&m.height>e._defaultMinTerrainHeight&&(l._initialClippingPlanesOriginMatrix=b.eastNorthUpToFixedFrame(f)),l._clippingPlanesOriginMatrix=v.clone(l._initialClippingPlanesOriginMatrix),l._readyPromise.resolve(l)}).otherwise(function(e){l._readyPromise.reject(e)})}function Z(e,t){var n,o,a,s,l,u=t.camera,c=e._root,d=c.contentBoundingVolume;if(d instanceof j)n=i.normalize(u.positionWC,ve),o=u.directionWC,a=u.positionCartographic.height,s=d.minimumHeight,l=d.maximumHeight;else{var h=v.inverseTransformation(c.computedTransform,Ce),p=t.mapProjection.ellipsoid,f=d.boundingVolume,m=v.multiplyByPoint(h,f.center,be);if(i.magnitude(m)>p.minimumRadius){var _=r.fromCartesian(m,p,ye);n=i.normalize(u.positionWC,ve),o=u.directionWC,a=u.positionCartographic.height,s=0,l=2*_.height}else{var y=v.multiplyByPoint(h,u.positionWC,Se);if(n=i.UNIT_Z,o=v.multiplyByPointAsVector(h,u.directionWC,Te),o=i.normalize(o,o),a=y.z,d instanceof Q){var C=c._header.boundingVolume.box[11];s=m.z-C,l=m.z+C}else if(d instanceof X){var b=f.radius;s=m.z-b,l=m.z+b}}} -var S=e.dynamicScreenSpaceErrorHeightFalloff,T=s+(l-s)*S,E=l,A=g.clamp((a-T)/(E-T),0,1),w=Math.abs(i.dot(o,n)),x=1-w;x*=1-A;var P=e.dynamicScreenSpaceErrorDensity;P*=x,e._dynamicScreenSpaceErrorComputedDensity=P}function J(e,t){if(!t.hasEmptyContent){var i=e._statistics,r=t.contentExpired;if(!t.requestContent())return void++i.numberOfAttemptedRequests;r&&(t.hasTilesetContent?he(e,t):(i.decrementLoadCounts(t.content),--i.numberOfTilesWithContentReady)),++i.numberOfPendingRequests,e._requestedTilesInFlight.push(t),t.contentReadyToProcessPromise.then(ie(e,t)),t.contentReadyPromise.then(ne(e,t)).otherwise(re(e,t))}}function $(e,t){return e._priority-t._priority}function ee(e,t){for(var i=e._requestedTilesInFlight,r=0,n=i.length,o=0;o<n;++o){var a=i[o],s=t.frameNumber-a._touchedFrame>=1;a._contentState===D.LOADING?s?(a._request.cancel(),++r):r>0&&(i[o-r]=a):++r}i.length-=r}function te(e,t){var i=e._requestedTiles,r=i.length;i.sort($);for(var n=0;n<r;++n)J(e,i[n])}function ie(e,t){return function(){e._processingQueue.push(t),--e._statistics.numberOfPendingRequests,++e._statistics.numberOfTilesProcessing}}function re(e,t){return function(i){e._processingQueue.indexOf(t)>=0?--e._statistics.numberOfTilesProcessing:--e._statistics.numberOfPendingRequests;var r=t._contentResource.url,n=s(i.message)?i.message:i.toString();e.tileFailed.numberOfListeners>0?e.tileFailed.raiseEvent({url:r,message:n}):(console.log("A 3D tile failed to load: "+r),console.log("Error: "+n))}}function ne(e,t){return function(){--e._statistics.numberOfTilesProcessing,t.hasTilesetContent||(e._statistics.incrementLoadCounts(t.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(t)),e.tileLoad.raiseEvent(t)}}function oe(e){for(var t=e._processingQueue,i=t.length,r=0,n=0;n<i;++n){var o=t[n];o._contentState===D.PROCESSING?r>0&&(t[n-r]=o):++r}t.length-=r}function ae(e,t){oe(e);for(var i=e._processingQueue,r=i.length,n=0;n<r;++n)i[n].process(e,t)}function se(e){var t=e/1048576;return t<1?t.toLocaleString(void 0,Ae):Math.round(t).toLocaleString()}function le(e){var t=e.boundingVolume.boundingVolume,r=t.halfAxes,n=t.radius,o=i.clone(t.center,Ee);if(s(r))o.x+=.75*(r[0]+r[3]+r[6]),o.y+=.75*(r[1]+r[4]+r[7]),o.z+=.75*(r[2]+r[5]+r[8]);else if(s(n)){var a=i.normalize(t.center,Ee);a=i.multiplyByScalar(a,.75*n,Ee),o=i.add(a,t.center,Ee)}return o}function ue(e,t,i){var r="",n=0;if(t.debugShowGeometricError&&(r+="\nGeometric error: "+e.geometricError,n++),t.debugShowRenderingStatistics){r+="\nCommands: "+e.commandsLength,n++;e.content.pointsLength>0&&(r+="\nPoints: "+e.content.pointsLength,n++);e.content.trianglesLength>0&&(r+="\nTriangles: "+e.content.trianglesLength,n++),r+="\nFeatures: "+e.content.featuresLength,n++}t.debugShowMemoryUsage&&(r+="\nTexture Memory: "+se(e.content.texturesByteLength),r+="\nGeometry Memory: "+se(e.content.geometryByteLength),n+=2),t.debugShowUrl&&(r+="\nUrl: "+e._header.content.uri,n++);var o={text:r.substring(1),position:i,font:19-n+"px sans-serif",showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(o)}function ce(e,i){var r,n,o=e._selectedTiles,a=o.length,l=e._emptyTiles,u=l.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(s(e.debugPickedTile)){var c=s(e.debugPickPosition)?e.debugPickPosition:le(e.debugPickedTile),d=ue(e.debugPickedTile,e,c);d.pixelOffset=new t(15,-15)}}else{for(r=0;r<a;++r)n=o[r],ue(n,e,le(n));for(r=0;r<u;++r)n=l[r],n.hasTilesetContent&&ue(n,e,le(n))}e._tileDebugLabels.update(i)}function de(e,t,i){e._styleEngine.applyStyle(e,t);var r,n,o=e._statistics,a=t.commandList,l=a.length,u=e._selectedTiles,c=u.length,d=e._emptyTiles,h=d.length,p=e.tileVisible,f=e._skipLevelOfDetail&&e._hasMixedContent&&t.context.stencilBuffer&&c>0;e._backfaceCommands.length=0,f&&(s(e._stencilClearCommand)||(e._stencilClearCommand=new S({stencil:0,pass:T.CESIUM_3D_TILE,renderState:E.fromCache({stencilMask:Y.SKIP_LOD_MASK})})),a.push(e._stencilClearCommand));var m=a.length;for(r=0;r<c;++r)n=u[r],i&&p.raiseEvent(n),n.update(e,t),o.incrementSelectionCounts(n.content),++o.selected;for(r=0;r<h;++r)n=d[r],n.update(e,t);var _=a.length-m;if(e._backfaceCommands.trim(),f){var g=e._backfaceCommands.values,v=g.length;for(a.length+=v,r=_-1;r>=0;--r)a[m+v+r]=a[m+r];for(r=0;r<v;++r)a[m+r]=g[r]}_=a.length-l,o.numberOfCommands=_,i&&e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&_>0&&e._pointCloudEyeDomeLighting.update(t,l,e.pointCloudShading),i&&(e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(s(e._tileDebugLabels)||(e._tileDebugLabels=new U),ce(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}function he(e,t){var i=t,r=we;for(r.push(t);r.length>0;){t=r.pop();for(var n=t.children,o=n.length,a=0;a<o;++a)r.push(n[a]);t!==i&&(fe(e,t),--e._statistics.numberOfTilesTotal)}i.children=[]}function pe(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function fe(e,t){e._cache.unloadTile(e,t,pe),t.destroy()}function me(e,t){var i=e._statistics,r=e._statisticsLast,n=i.numberOfPendingRequests,o=i.numberOfTilesProcessing,a=r.numberOfPendingRequests,s=r.numberOfTilesProcessing;B.clone(i,r);var l=n!==a||o!==s;l&&t.afterRender.push(function(){e.loadProgress.raiseEvent(n,o)}),e._tilesLoaded=0===i.numberOfPendingRequests&&0===i.numberOfTilesProcessing&&0===i.numberOfAttemptedRequests,l&&e._tilesLoaded&&(t.afterRender.push(function(){e.allTilesLoaded.raiseEvent()}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){e.initialTilesLoaded.raiseEvent()})))}function _e(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function ge(e,t,i,r){if(t.mode===W.MORPHING)return!1;if(!e.ready)return!1;var n=e._statistics;n.clear();var o=r.isRender;++e._updatedVisibilityFrame,_e(e);var a=r.traversal.selectTiles(e,t);if(r.requestTiles&&te(e),de(e,t,o),B.clone(n,i),o){var l=e._credits;if(s(l)&&0!==n.selected)for(var u=l.length,c=0;c<u;++c)t.creditDisplay.addCredit(l[c])}return a}l(K.prototype,{asset:{get:function(){return this._asset}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){V.setOwner(e,this,"_clippingPlanes")}},properties:{get:function(){return this._properties}},ready:{get:function(){return s(this._root)}},readyPromise:{get:function(){return this._readyPromise.promise}},tilesLoaded:{get:function(){return this._tilesLoaded}},url:{get:function(){return this._url}},basePath:{get:function(){return u("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e}},maximumMemoryUsage:{get:function(){return this._maximumMemoryUsage},set:function(e){this._maximumMemoryUsage=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=v.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){var e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return s(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(v.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):v.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){t.clone(e,this._imageBasedLightingFactor)}}}),K.loadJson=function(e){return y.createIfNeeded(e).fetchJson()},K.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()},K.prototype.loadTileset=function(e,t,i){var r=t.asset;if(!s(r))throw new C("Tileset must have an asset property.");if("0.0"!==r.version&&"1.0"!==r.version)throw new C("The tileset must be 3D Tiles version 0.0 or 1.0.");var n=this._statistics,o=r.tilesetVersion;s(o)?(this._basePath+="?v="+o,e.setQueryParameters({v:o})):delete e.queryParameters.v;var a=new x(this,e,t.root,i);s(i)&&(i.children.push(a),a._depth=i._depth+1);var l=[];for(l.push(a);l.length>0;){var u=l.pop();++n.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&u.refine===O.ADD;var c=u._header.children;if(s(c))for(var d=c.length,h=0;h<d;++h){var p=c[h],f=new x(this,e,p,u);u.children.push(f),f._depth=u._depth+1,l.push(f)}this._cullWithChildrenBounds&&I.checkChildrenWithinParent(u)}return a};var ve=new i,ye=new r,Ce=new v,be=new i,Se=new i,Te=new i;K.prototype.postPassesUpdate=function(e){this.ready&&(ee(this,e),me(this,e),this._cache.unloadTiles(this,pe))},K.prototype.prePassesUpdate=function(e){if(this.ready){ae(this,e);var t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,s(t)&&t.enabled&&t.update(e),s(this._loadTimestamp)||(this._loadTimestamp=m.clone(e.time)),this._timeSinceLoad=Math.max(1e3*m.secondsDifference(e.time,this._loadTimestamp),0),this._skipLevelOfDetail=this.skipLevelOfDetail&&!s(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive,this.dynamicScreenSpaceError&&Z(this,e),e.newFrame&&this._cache.reset()}};var Ee=new i,Ae={maximumFractionDigits:3},we=[];return K.prototype.trimLoadedTiles=function(){this._cache.trim()},K.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)},K.prototype.updateForPass=function(e,t){var i=t.pass;if(!(i===M.PRELOAD&&(!this.preloadWhenHidden||this.show)||i===M.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||i===M.REQUEST_RENDER_MODE_DEFER_CHECK&&!this.cullRequestsWhileMoving&&this.foveatedTimeDelay<=0)){var r=e.commandList,n=e.camera,o=e.cullingVolume;t.ready=!1;var s=M.getPassOptions(i),l=s.ignoreCommands,u=a(t.commandList,r),c=u.length;e.commandList=u,e.camera=a(t.camera,n),e.cullingVolume=a(t.cullingVolume,o);var d=this._statisticsPerPass[i];(this.show||l)&&(this._pass=i,t.ready=ge(this,e,d,s)),l&&(u.length=c),e.commandList=r,e.camera=n,e.cullingVolume=o}},K.prototype.hasExtension=function(e){return!!s(this._extensionsUsed)&&this._extensionsUsed.indexOf(e)>-1},K.prototype.isDestroyed=function(){return!1},K.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),s(this._root)){var e=we;for(e.push(this._root);e.length>0;){var t=e.pop();t.destroy();for(var i=t.children,r=i.length,n=0;n<r;++n)e.push(i[n])}}return this._root=void 0,c(this)},K}),define("Scene/ConditionsExpression",["../Core/clone","../Core/defined","../Core/defineProperties","./Expression"],function(e,t,i,r){"use strict";function n(t,i){this._conditionsExpression=e(t,!0),this._conditions=t.conditions,this._runtimeConditions=void 0,a(this,i)}function o(e,t){this.condition=e,this.expression=t}function a(e,i){var n=[],a=e._conditions;if(t(a)){for(var s=a.length,l=0;l<s;++l){var u=a[l],c=String(u[0]),d=String(u[1]);n.push(new o(new r(c,i),new r(d,i)))}e._runtimeConditions=n}}return i(n.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}}),n.prototype.evaluate=function(e,i){var r=this._runtimeConditions;if(t(r))for(var n=r.length,o=0;o<n;++o){var a=r[o];if(a.condition.evaluate(e))return a.expression.evaluate(e,i)}},n.prototype.evaluateColor=function(e,i){var r=this._runtimeConditions;if(t(r))for(var n=r.length,o=0;o<n;++o){var a=r[o];if(a.condition.evaluate(e))return a.expression.evaluateColor(e,i)}},n.prototype.getShaderFunction=function(e,i,r,n){var o=this._runtimeConditions;if(t(o)&&0!==o.length){for(var a="",s=o.length,l=0;l<s;++l){var u=o[l],c=u.condition.getShaderExpression(i,r),d=u.expression.getShaderExpression(i,r);a+=" "+(0===l?"if":"else if")+" ("+c+") \n { \n return "+d+"; \n } \n"}return a=n+" "+e+"() \n{ \n"+a+" return "+n+"(1.0); \n} \n"}},n}),define("Scene/Cesium3DTileStyle",["../Core/clone","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Resource","../ThirdParty/when","./ConditionsExpression","./Expression"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1;var t;if("string"==typeof e||e instanceof o){t=o.createIfNeeded(e).fetchJson(e)}else t=a.resolve(e);var i=this;this._readyPromise=t.then(function(e){return c(i,e),i})}function c(r,n){n=t(e(n,!0),r._style),r._style=n,r.show=n.show,r.color=n.color,r.pointSize=n.pointSize,r.pointOutlineColor=n.pointOutlineColor,r.pointOutlineWidth=n.pointOutlineWidth,r.labelColor=n.labelColor,r.labelOutlineColor=n.labelOutlineColor,r.labelOutlineWidth=n.labelOutlineWidth,r.labelStyle=n.labelStyle,r.font=n.font,r.labelText=n.labelText,r.backgroundColor=n.backgroundColor,r.backgroundPadding=n.backgroundPadding,r.backgroundEnabled=n.backgroundEnabled,r.scaleByDistance=n.scaleByDistance,r.translucencyByDistance=n.translucencyByDistance,r.distanceDisplayCondition=n.distanceDisplayCondition,r.heightOffset=n.heightOffset,r.anchorLineEnabled=n.anchorLineEnabled,r.anchorLineColor=n.anchorLineColor,r.image=n.image,r.disableDepthTestDistance=n.disableDepthTestDistance,r.horizontalOrigin=n.horizontalOrigin,r.verticalOrigin=n.verticalOrigin,r.labelHorizontalOrigin=n.labelHorizontalOrigin,r.labelVerticalOrigin=n.labelVerticalOrigin;var o={};if(i(n.meta)){var a=n.defines,s=t(n.meta,t.EMPTY_OBJECT);for(var u in s)s.hasOwnProperty(u)&&(o[u]=new l(s[u],a))}r._meta=o,r._ready=!0}function d(e,r){var n=t(e._style,t.EMPTY_OBJECT).defines;if(i(r))return"boolean"==typeof r||"number"==typeof r?new l(String(r)):"string"==typeof r?new l(r,n):i(r.conditions)?new s(r,n):r}function h(t){if(i(t))return i(t.expression)?t.expression:i(t.conditionsExpression)?e(t.conditionsExpression,!0):t}return r(u.prototype,{style:{get:function(){return this._style}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise}},show:{get:function(){return this._show},set:function(e){this._show=d(this,e),this._style.show=h(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=d(this,e),this._style.color=h(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=d(this,e),this._style.pointSize=h(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=d(this,e),this._style.pointOutlineColor=h(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=d(this,e),this._style.pointOutlineWidth=h(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=d(this,e),this._style.labelColor=h(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=d(this,e),this._style.labelOutlineColor=h(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=d(this,e),this._style.labelOutlineWidth=h(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=d(this,e),this._style.font=h(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=d(this,e),this._style.labelStyle=h(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=d(this,e),this._style.labelText=h(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=d(this,e),this._style.backgroundColor=h(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=d(this,e),this._style.backgroundPadding=h(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=d(this,e),this._style.backgroundEnabled=h(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=d(this,e),this._style.scaleByDistance=h(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=d(this,e),this._style.translucencyByDistance=h(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=d(this,e),this._style.distanceDisplayCondition=h(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=d(this,e),this._style.heightOffset=h(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=d(this,e),this._style.anchorLineEnabled=h(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=d(this,e),this._style.anchorLineColor=h(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=d(this,e),this._style.image=h(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=d(this,e),this._style.disableDepthTestDistance=h(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=d(this,e),this._style.horizontalOrigin=h(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=d(this,e),this._style.verticalOrigin=h(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=d(this,e),this._style.labelHorizontalOrigin=h(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=d(this,e),this._style.labelVerticalOrigin=h(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}}),u.prototype.getColorShaderFunction=function(e,t,r){return this._colorShaderFunctionReady?(r.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,this._colorShaderFunction=i(this.color)?this.color.getShaderFunction(e,t,r,"vec4"):void 0,this._colorShaderTranslucent=r.translucent,this._colorShaderFunction)},u.prototype.getShowShaderFunction=function(e,t,r){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,this._showShaderFunction=i(this.show)?this.show.getShaderFunction(e,t,r,"bool"):void 0,this._showShaderFunction)},u.prototype.getPointSizeShaderFunction=function(e,t,r){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,this._pointSizeShaderFunction=i(this.pointSize)?this.pointSize.getShaderFunction(e,t,r,"float"):void 0,this._pointSizeShaderFunction)},u}),define("Scene/CircleEmitter",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defineProperties","../Core/Math"],function(e,t,i,r,n){"use strict";function o(e){e=i(e,1),this._radius=i(e,1)}return r(o.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}}),o.prototype.emit=function(t){var i=n.randomBetween(0,n.TWO_PI),r=n.randomBetween(0,this._radius),o=r*Math.cos(i),a=r*Math.sin(i);t.position=e.fromElements(o,a,0,t.position),t.velocity=e.clone(e.UNIT_Z,t.velocity)},o}),define("Scene/computeFlyToLocationForRectangle",["../Core/defined","../Core/Rectangle","../Core/sampleTerrainMostDetailed","./SceneMode","../ThirdParty/when"],function(e,t,i,r,n){"use strict";function o(i,a){var s,l=a.terrainProvider,u=a.mapProjection,c=u.ellipsoid,d=a.camera.getRectangleCameraCoordinates(i);return s=a.mode===r.SCENE3D?c.cartesianToCartographic(d):u.unproject(d),e(l)?l.readyPromise.then(function(){var n=l.availability;if(!e(n)||a.mode===r.SCENE2D)return s;var u=[t.center(i),t.southeast(i),t.southwest(i),t.northeast(i),t.northwest(i)];return o._sampleTerrainMostDetailed(l,u).then(function(e){var t=e.reduce(function(e,t){return Math.max(t.height,e)},-Number.MAX_VALUE),i=s;return i.height+=t,i})}):n.resolve(s)}return o._sampleTerrainMostDetailed=i,o}),define("Scene/ConeEmitter",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defineProperties","../Core/Math"],function(e,t,i,r,n){"use strict";function o(e){this._angle=i(e,a)}var a=n.toRadians(30);return r(o.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}}),o.prototype.emit=function(t){var i=Math.tan(this._angle),r=n.randomBetween(0,n.TWO_PI),o=n.randomBetween(0,i),a=o*Math.cos(r),s=o*Math.sin(r);t.velocity=e.fromElements(a,s,1,t.velocity),e.normalize(t.velocity,t.velocity),t.position=e.clone(e.ZERO,t.position)},o}),define("Scene/UrlTemplateImageryProvider",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/combine","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/GeographicProjection","../Core/isArray","../Core/Math","../Core/Rectangle","../Core/Resource","../Core/WebMercatorTilingScheme","../ThirdParty/when","./ImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(e){this._errorEvent=new u,this._resource=void 0,this._urlSchemeZeroPadding=void 0,this._pickFeaturesResource=void 0,this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._minimumLevel=void 0,this._tilingScheme=void 0,this._rectangle=void 0,this._tileDiscardPolicy=void 0,this._credit=void 0,this._hasAlphaChannel=void 0,this._readyPromise=void 0,this._tags=void 0,this._pickFeaturesTags=void 0,this.enablePickFeatures=!0,this.reinitialize(e)}function y(e,t,i,r,n){te=!1,re=!1;var o=e._resource,s=o.getUrlComponent(!0),l=e._tags,u={},c=s.match(J);return a(c)&&c.forEach(function(n){var o=n.substring(1,n.length-1);a(l[o])&&(u[o]=l[o](e,t,i,r))}),o.getDerivedResource({request:n,templateValues:u})}function C(e,t,i,r,n,o,s){te=!1,re=!1,oe=!1,se=!1;var l=e._pickFeaturesResource,u=l.getUrlComponent(!0),c=e._pickFeaturesTags,d={},h=u.match(J);return a(h)&&h.forEach(function(l){var u=l.substring(1,l.length-1);a(c[u])&&(d[u]=c[u](e,t,i,r,n,o,s))}),l.getDerivedResource({templateValues:d})}function b(e,t,i){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){var r=e.urlSchemeZeroPadding[t];if("string"==typeof r){var n=r.length;n>1&&(i=i.length>=n?i:new Array(n-i.toString().length+1).join("0")+i)}}return i}function S(e,t,i,r){return b(e,"{x}",t)}function T(e,t,i,r){return b(e,"{reverseX}",e.tilingScheme.getNumberOfXTilesAtLevel(r)-t-1)}function E(e,t,i,r){return b(e,"{y}",i)}function A(e,t,i,r){return b(e,"{reverseY}",e.tilingScheme.getNumberOfYTilesAtLevel(r)-i-1)}function w(e,t,i,r){var n=e.maximumLevel;return b(e,"{reverseZ}",a(n)&&r<n?n-r-1:r)}function x(e,t,i,r){return b(e,"{z}",r)}function P(e,t,i,r){var n=(t+i+r)%e._subdomains.length;return e._subdomains[n]}function D(e,t,i,r){te||(e.tilingScheme.tileXYToRectangle(t,i,r,ie),ie.west=h.toDegrees(ie.west),ie.south=h.toDegrees(ie.south),ie.east=h.toDegrees(ie.east),ie.north=h.toDegrees(ie.north),te=!0)}function I(e,t,i,r){return D(e,t,i,r),ie.west}function M(e,t,i,r){return D(e,t,i,r),ie.south}function R(e,t,i,r){return D(e,t,i,r),ie.east}function O(e,t,i,r){return D(e,t,i,r),ie.north}function L(e,t,i,r){re||(e.tilingScheme.tileXYToNativeRectangle(t,i,r,ne),re=!0)}function N(e,t,i,r){return L(e,t,i,r),ne.west}function F(e,t,i,r){return L(e,t,i,r),ne.south}function B(e,t,i,r){return L(e,t,i,r),ne.east}function z(e,t,i,r){return L(e,t,i,r),ne.north}function k(e,t,i,r){return e.tileWidth}function V(e,t,i,r){return e.tileHeight}function U(e,t,i,r,n,o,a){return q(e,t,i,r,n,o),ae.x}function G(e,t,i,r,n,o,a){return q(e,t,i,r,n,o),ae.y}function H(e,t,i,r,n,o,a){return q(e,t,i,r,n,o),e.tileWidth-ae.x-1}function W(e,t,i,r,n,o,a){return q(e,t,i,r,n,o),e.tileHeight-ae.y-1}function q(e,t,i,r,n,o,a){if(!oe){K(e,t,i,r,n,o);var s=ue,l=e.tilingScheme.tileXYToNativeRectangle(t,i,r,le);ae.x=e.tileWidth*(s.x-l.west)/l.width|0,ae.y=e.tileHeight*(l.north-s.y)/l.height|0,oe=!0}}function Y(e,t,i,r,n,o,a){return h.toDegrees(n)}function j(e,t,i,r,n,o,a){return h.toDegrees(o)}function X(e,t,i,r,n,o,a){return K(e,t,i,r,n,o),ue.x}function Q(e,t,i,r,n,o,a){return K(e,t,i,r,n,o),ue.y}function K(e,t,i,r,n,o,a){if(!se){if(e.tilingScheme.projection instanceof c)ue.x=h.toDegrees(n),ue.y=h.toDegrees(o);else{var s=ce;s.longitude=n,s.latitude=o,e.tilingScheme.projection.project(s,ue)}se=!0}}function Z(e,t,i,r,n,o,a){return a}var J=/{[^}]+}/g,$={x:S,y:E,z:x,s:P,reverseX:T,reverseY:A,reverseZ:w,westDegrees:I,southDegrees:M,eastDegrees:R,northDegrees:O,westProjected:N,southProjected:F,eastProjected:B,northProjected:z,width:k,height:V},ee=r($,{i:U,j:G,reverseI:H,reverseJ:W,longitudeDegrees:Y,latitudeDegrees:j,longitudeProjected:X,latitudeProjected:Q,format:Z});s(v.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return a(this._resource)}},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}}),v.prototype.reinitialize=function(e){var t=this;t._readyPromise=_(e).then(function(e){var i=e.customTags,s=r($,i),l=r(ee,i),u=f.createIfNeeded(e.url),c=f.createIfNeeded(e.pickFeaturesUrl);t.enablePickFeatures=o(e.enablePickFeatures,t.enablePickFeatures),t._urlSchemeZeroPadding=o(e.urlSchemeZeroPadding,t.urlSchemeZeroPadding),t._tileDiscardPolicy=e.tileDiscardPolicy,t._getFeatureInfoFormats=e.getFeatureInfoFormats,t._subdomains=e.subdomains,d(t._subdomains)?t._subdomains=t._subdomains.slice():a(t._subdomains)&&t._subdomains.length>0?t._subdomains=t._subdomains.split(""):t._subdomains=["a","b","c"],t._tileWidth=o(e.tileWidth,256),t._tileHeight=o(e.tileHeight,256),t._minimumLevel=o(e.minimumLevel,0),t._maximumLevel=e.maximumLevel,t._tilingScheme=o(e.tilingScheme,new m({ellipsoid:e.ellipsoid})),t._rectangle=o(e.rectangle,t._tilingScheme.rectangle),t._rectangle=p.intersection(t._rectangle,t._tilingScheme.rectangle),t._hasAlphaChannel=o(e.hasAlphaChannel,!0);var h=e.credit;return"string"==typeof h&&(h=new n(h)),t._credit=h,t._resource=u,t._tags=s,t._pickFeaturesResource=c,t._pickFeaturesTags=l,!0})},v.prototype.getTileCredits=function(e,t,i){},v.prototype.requestImage=function(e,t,i,r){return g.loadImage(this,y(this,e,t,i,r))},v.prototype.pickFeatures=function(e,t,i,r,n){function o(e,t){return e.callback(t)}function s(){if(l>=u._getFeatureInfoFormats.length)return _([]);var a=u._getFeatureInfoFormats[l],c=C(u,e,t,i,r,n,a.format);return++l,"json"===a.type?c.fetchJson().then(a.callback).otherwise(s):"xml"===a.type?c.fetchXML().then(a.callback).otherwise(s):"text"===a.type||"html"===a.type?c.fetchText().then(a.callback).otherwise(s):c.fetch({responseType:a.format}).then(o.bind(void 0,a)).otherwise(s)}if(this.enablePickFeatures&&a(this._pickFeaturesResource)&&0!==this._getFeatureInfoFormats.length){var l=0,u=this;return s()}};var te=!1,ie=new p,re=!1,ne=new p,oe=!1,ae=new e,se=!1,le=new p,ue=new t,ce=new i;return v}),define("Scene/createOpenStreetMapImageryProvider",["../Core/appendForwardSlash","../Core/Credit","../Core/defaultValue","../Core/DeveloperError","../Core/Rectangle","../Core/Resource","../Core/WebMercatorTilingScheme","./UrlTemplateImageryProvider"],function(e,t,i,r,n,o,a,s){"use strict";function l(r){r=i(r,{});var l=i(r.url,"https://a.tile.openstreetmap.org/");l=e(l),l+="{z}/{x}/{y}."+i(r.fileExtension,"png");var c=o.createIfNeeded(l),d=new a({ellipsoid:r.ellipsoid}),h=i(r.minimumLevel,0),p=r.maximumLevel,f=i(r.rectangle,d.rectangle),m=d.positionToTileXY(n.southwest(f),h),_=d.positionToTileXY(n.northeast(f),h),g=(Math.abs(_.x-m.x),Math.abs(_.y-m.y),i(r.credit,u));return"string"==typeof g&&(g=new t(g)),new s({url:c,credit:g,tilingScheme:d,tileWidth:256,tileHeight:256,minimumLevel:h,maximumLevel:p,rectangle:f})}var u=new t("MapQuest, Open Street Map and contributors, CC-BY-SA");return l}),define("Scene/createTangentSpaceDebugPrimitive",["../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/GeometryInstance","../Core/GeometryPipeline","../Core/Matrix4","./PerInstanceColorAppearance","./Primitive"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(r){r=t(r,t.EMPTY_OBJECT);var u=[],c=r.geometry;i(c.attributes)&&i(c.primitiveType)||(c=c.constructor.createGeometry(c)) -;var d=c.attributes,h=a.clone(t(r.modelMatrix,a.IDENTITY)),p=t(r.length,1e4);if(i(d.normal)&&u.push(new n({geometry:o.createLineSegmentsForVectors(c,"normal",p),attributes:{color:new e(1,0,0,1)},modelMatrix:h})),i(d.tangent)&&u.push(new n({geometry:o.createLineSegmentsForVectors(c,"tangent",p),attributes:{color:new e(0,1,0,1)},modelMatrix:h})),i(d.bitangent)&&u.push(new n({geometry:o.createLineSegmentsForVectors(c,"bitangent",p),attributes:{color:new e(0,0,1,1)},modelMatrix:h})),u.length>0)return new l({asynchronous:!1,geometryInstances:u,appearance:new s({flat:!0,translucent:!1})})}return u}),define("Scene/createTileMapServiceImageryProvider",["../Core/Cartesian2","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/GeographicProjection","../Core/GeographicTilingScheme","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../Core/WebMercatorTilingScheme","../ThirdParty/when","./UrlTemplateImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(n){function f(l){for(var h,p,f,m=/tileformat/i,S=/tileset/i,T=/tilesets/i,E=/boundingbox/i,A=[],w=l.childNodes[0].childNodes,x=0;x<w.length;x++)if(m.test(w.item(x).nodeName))h=w.item(x);else if(T.test(w.item(x).nodeName)){f=w.item(x);for(var P=w.item(x).childNodes,D=0;D<P.length;D++)S.test(P.item(D).nodeName)&&A.push(P.item(D))}else E.test(w.item(x).nodeName)&&(p=w.item(x));var I;if(!r(f)||!r(p))return I="Unable to find expected tilesets or bbox attributes in "+y.url+".",g=c.handleError(g,b,b.errorEvent,I,void 0,void 0,void 0,_),void(g.retry||C.reject(new u(I)));var M=i(n.fileExtension,h.getAttribute("extension")),R=i(n.tileWidth,parseInt(h.getAttribute("width"),10)),O=i(n.tileHeight,parseInt(h.getAttribute("height"),10)),L=i(n.minimumLevel,parseInt(A[0].getAttribute("order"),10)),N=i(n.maximumLevel,parseInt(A[A.length-1].getAttribute("order"),10)),F=f.getAttribute("profile"),B=n.tilingScheme;if(!r(B))if("geodetic"===F||"global-geodetic"===F)B=new a({ellipsoid:n.ellipsoid});else{if("mercator"!==F&&"global-mercator"!==F)return I=y.url+"specifies an unsupported profile attribute, "+F+".",g=c.handleError(g,b,b.errorEvent,I,void 0,void 0,void 0,_),void(g.retry||C.reject(new u(I)));B=new d({ellipsoid:n.ellipsoid})}var z=s.clone(n.rectangle);if(!r(z)){var k,V,U,G;i(n.flipXY,!1)?(U=new e(parseFloat(p.getAttribute("miny")),parseFloat(p.getAttribute("minx"))),G=new e(parseFloat(p.getAttribute("maxy")),parseFloat(p.getAttribute("maxx")))):(U=new e(parseFloat(p.getAttribute("minx")),parseFloat(p.getAttribute("miny"))),G=new e(parseFloat(p.getAttribute("maxx")),parseFloat(p.getAttribute("maxy"))));var H="geodetic"===F||"mercator"===F;if(B.projection instanceof o||H)k=t.fromDegrees(U.x,U.y),V=t.fromDegrees(G.x,G.y);else{var W=B.projection;k=W.unproject(U),V=W.unproject(G)}z=new s(k.longitude,k.latitude,V.longitude,V.latitude)}z.west<B.rectangle.west&&(z.west=B.rectangle.west),z.east>B.rectangle.east&&(z.east=B.rectangle.east),z.south<B.rectangle.south&&(z.south=B.rectangle.south),z.north>B.rectangle.north&&(z.north=B.rectangle.north);var q=B.positionToTileXY(s.southwest(z),L),Y=B.positionToTileXY(s.northeast(z),L);(Math.abs(Y.x-q.x)+1)*(Math.abs(Y.y-q.y)+1)>4&&(L=0);var j=v.getDerivedResource({url:"{z}/{x}/{reverseY}."+M});C.resolve({url:j,tilingScheme:B,rectangle:z,tileWidth:R,tileHeight:O,minimumLevel:L,maximumLevel:N,tileDiscardPolicy:n.tileDiscardPolicy,credit:n.credit})}function m(e){var t=i(n.fileExtension,"png"),o=i(n.tileWidth,256),a=i(n.tileHeight,256),s=i(n.minimumLevel,0),l=n.maximumLevel,u=r(n.tilingScheme)?n.tilingScheme:new d({ellipsoid:n.ellipsoid}),c=i(n.rectangle,u.rectangle),h=v.getDerivedResource({url:"{z}/{x}/{reverseY}."+t});C.resolve({url:h,tilingScheme:u,rectangle:c,tileWidth:o,tileHeight:a,minimumLevel:s,maximumLevel:l,tileDiscardPolicy:n.tileDiscardPolicy,credit:n.credit})}function _(){y.fetchXML().then(f).otherwise(m)}n=i(n,{});var g,v,y,C=h.defer(),b=new p(C.promise);return h(n.url).then(function(e){v=l.createIfNeeded(e),v.appendForwardSlash(),y=v.getDerivedResource({url:"tilemapresource.xml"}),_()}).otherwise(function(e){C.reject(e)}),b}return f}),define("Scene/GoogleEarthEnterpriseMapsProvider",["../Core/buildModuleUrl","../Core/Check","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/GeographicTilingScheme","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../Core/WebMercatorTilingScheme","../ThirdParty/when","./ImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m){"use strict";function _(e){function t(t){var i;try{i=JSON.parse(t)}catch(e){i=JSON.parse(t.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}for(var r,o=0;o<i.layers.length;o++)if(i.layers[o].id===b._channel){r=i.layers[o];break}var s;if(!n(r))throw s="Could not find layer with channel (id) of "+b._channel+".",y=h.handleError(y,b,b._errorEvent,s,void 0,void 0,void 0,a),new d(s);if(!n(r.version))throw s="Could not find a version in channel (id) "+b._channel+".",y=h.handleError(y,b,b._errorEvent,s,void 0,void 0,void 0,a),new d(s);if(b._version=r.version,n(i.projection)&&"flat"===i.projection)b._tilingScheme=new l({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new u(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:e.ellipsoid});else{if(n(i.projection)&&"mercator"!==i.projection)throw s="Unsupported projection "+i.projection+".",y=h.handleError(y,b,b._errorEvent,s,void 0,void 0,void 0,a),new d(s);b._tilingScheme=new p({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid})}b._ready=!0,b._readyPromise.resolve(!0),h.handleSuccess(y)}function o(e){var t="An error occurred while accessing "+C.url+".";y=h.handleError(y,b,b._errorEvent,t,void 0,void 0,void 0,a),b._readyPromise.reject(new d(t))}function a(){var e=C.fetchText();f(e,t,o)}e=r(e,{});var m=e.url,g=r(e.path,"/default_map"),v=c.createIfNeeded(m).getDerivedResource({url:"/"===g[0]?g.substring(1):g});v.appendForwardSlash(),this._resource=v,this._url=m,this._path=g,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new i('<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="'+_.logoUrl+'" title="Google Imagery"/></a>'),this.defaultGamma=1.9,this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new s,this._ready=!1,this._readyPromise=f.defer();var y,C=v.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),b=this;a()}return o(_.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}}),_.prototype.getTileCredits=function(e,t,i){},_.prototype.requestImage=function(e,t,i,r){var n=this._resource.getDerivedResource({url:"query",request:r,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:i+1}});return m.loadImage(this,n)},_.prototype.pickFeatures=function(e,t,i,r,n){},_._logoUrl=void 0,o(_,{logoUrl:{get:function(){return n(_._logoUrl)||(_._logoUrl=e("Assets/Images/google_earth_credit.png")),_._logoUrl},set:function(e){_._logoUrl=e}}}),_}),define("Scene/MapboxImageryProvider",["../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/MapboxApi","../Core/Resource","./UrlTemplateImageryProvider"],function(e,t,i,r,n,o,a,s){"use strict";function l(r){r=t(r,t.EMPTY_OBJECT);var n=r.mapId,l=r.url;i(l)||(l="https://{s}.tiles.mapbox.com/v4/"),this._url=l;var d=a.createIfNeeded(l),h=o.getAccessToken(r.accessToken);this._mapId=n,this._accessToken=h,this._accessTokenErrorCredit=e.clone(o.getErrorCredit(r.accessToken));var p=t(r.format,"png");/\./.test(p)||(p="."+p),this._format=p;var f=d.getUrlComponent();u.test(f)||(f+="/"),f+=n+"/{z}/{x}/{y}"+this._format,d.url=f,d.setQueryParameters({access_token:h});var m;i(r.credit)?"string"==typeof(m=r.credit)&&(m=new e(m)):m=c,this._resource=d,this._imageryProvider=new s({url:d,credit:m,ellipsoid:r.ellipsoid,minimumLevel:r.minimumLevel,maximumLevel:r.maximumLevel,rectangle:r.rectangle})}var u=/\/$/,c=new e('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');return r(l.prototype,{url:{get:function(){return this._url}},ready:{get:function(){return this._imageryProvider.ready}},readyPromise:{get:function(){return this._imageryProvider.readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}}),l.prototype.getTileCredits=function(e,t,r){if(i(this._accessTokenErrorCredit))return[this._accessTokenErrorCredit]},l.prototype.requestImage=function(e,t,i,r){return this._imageryProvider.requestImage(e,t,i,r)},l.prototype.pickFeatures=function(e,t,i,r,n){return this._imageryProvider.pickFeatures(e,t,i,r,n)},l._defaultCredit=c,l}),define("Scene/SingleTileImageryProvider",["../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/GeographicTilingScheme","../Core/Rectangle","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(i){function r(e){v._image=e,v._tileWidth=e.width,v._tileHeight=e.height,v._ready=!0,v._readyPromise.resolve(!0),c.handleSuccess(v._errorEvent)}function n(e){var t="Failed to load image "+p.url+".";g=c.handleError(g,v,v._errorEvent,t,0,0,0,h,e),v._readyPromise.reject(new u(t))}function h(){p.fetchImage().then(r).otherwise(n)}i=t(i,{});var p=l.createIfNeeded(i.url),f=t(i.rectangle,s.MAX_VALUE),m=new a({rectangle:f,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:i.ellipsoid});this._tilingScheme=m,this._resource=p,this._image=void 0,this._texture=void 0,this._tileWidth=0,this._tileHeight=0,this._errorEvent=new o,this._ready=!1,this._readyPromise=d.defer();var _=i.credit;"string"==typeof _&&(_=new e(_)),this._credit=_;var g,v=this;h()}return r(h.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise.promise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}}),h.prototype.getTileCredits=function(e,t,i){},h.prototype.requestImage=function(e,t,i,r){return this._image},h.prototype.pickFeatures=function(e,t,i,r,n){},h}),define("Scene/GetFeatureInfoFormat",["../Core/Cartographic","../Core/defined","../Core/DeveloperError","../Core/RuntimeError","./ImageryLayerFeatureInfo"],function(e,t,i,r,n){"use strict";function o(e,i,r){this.type=e,t(i)||("json"===e?i="application/json":"xml"===e?i="text/xml":"html"===e?i="text/html":"text"===e&&(i="text/plain")),this.format=i,t(r)||("json"===e?r=a:"xml"===e?r=s:"html"===e?r=m:"text"===e&&(r=m)),this.callback=r}function a(i){for(var r=[],o=i.features,a=0;a<o.length;++a){var s=o[a],l=new n;if(l.data=s,l.properties=s.properties,l.configureNameFromProperties(s.properties),l.configureDescriptionFromProperties(s.properties),t(s.geometry)&&"Point"===s.geometry.type){var u=s.geometry.coordinates[0],c=s.geometry.coordinates[1];l.position=e.fromDegrees(u,c)}r.push(l)}return r}function s(e){var t=e.documentElement;if("MultiFeatureCollection"===t.localName&&t.namespaceURI===_)return l(e);if("FeatureInfoResponse"===t.localName&&t.namespaceURI===g)return u(e);if("FeatureCollection"===t.localName&&t.namespaceURI===v)return c(e);if("ServiceExceptionReport"===t.localName)throw new r((new XMLSerializer).serializeToString(t));return"msGMLOutput"===t.localName?d(e):f(e)}function l(e){for(var t=[],i=e.documentElement,r=i.getElementsByTagNameNS(_,"Feature"),o=0;o<r.length;++o){for(var a=r[o],s={},l=a.getElementsByTagNameNS(_,"Val"),u=0;u<l.length;++u){var c=l[u];if(c.hasAttribute("ref")){var d=c.getAttribute("ref"),h=c.textContent.trim();s[d]=h}}var p=new n;p.data=a,p.properties=s,p.configureNameFromProperties(s),p.configureDescriptionFromProperties(s),t.push(p)}return t}function u(e){var t,i=e.documentElement,r=[],n=i.getElementsByTagNameNS("*","FIELDS");if(n.length>0)for(var o=0;o<n.length;++o){var a=n[o];t={};for(var s=a.attributes,l=0;l<s.length;++l){var u=s[l];t[u.name]=u.value}r.push(p(a,t))}else for(var c=i.getElementsByTagNameNS("*","FeatureInfo"),d=0;d<c.length;++d){var h=c[d];t={};for(var f=h.childNodes,m=0;m<f.length;++m){var _=f[m];_.nodeType===Node.ELEMENT_NODE&&(t[_.localName]=_.textContent)}r.push(p(h,t))}return r}function c(e){for(var t=[],i=e.documentElement,r=i.getElementsByTagNameNS(y,"featureMember"),n=0;n<r.length;++n){var o=r[n],a={};h(o,a),t.push(p(o,a))}return t}function d(e){for(var i,n=[],o=e.documentElement.childNodes,a=0;a<o.length;a++)if(o[a].nodeType===Node.ELEMENT_NODE){i=o[a];break}if(!t(i))throw new r("Unable to find first child of the feature info xml document");for(var s=i.childNodes,l=0;l<s.length;++l){var u=s[l];if(u.nodeType===Node.ELEMENT_NODE){var c={};h(u,c),n.push(p(u,c))}}return n}function h(e,t){for(var i=!0,r=0;r<e.childNodes.length;++r){var n=e.childNodes[r];n.nodeType===Node.ELEMENT_NODE&&(i=!1),"Point"!==n.localName&&"LineString"!==n.localName&&"Polygon"!==n.localName&&"boundedBy"!==n.localName&&(n.hasChildNodes()&&h(n,t)&&(t[n.localName]=n.textContent))}return i}function p(e,t){var i=new n;return i.data=e,i.properties=t,i.configureNameFromProperties(t),i.configureDescriptionFromProperties(t),i}function f(e){var t=(new XMLSerializer).serializeToString(e),i=document.createElement("div"),r=document.createElement("pre");r.textContent=t,i.appendChild(r);var o=new n;return o.data=e,o.description=i.innerHTML,[o]}function m(e){if(!C.test(e)&&!b.test(e)){var t,i=S.exec(e);i&&i.length>1&&(t=i[1]);var r=new n;return r.name=t,r.description=e,r.data=e,[r]}}var _="http://www.mapinfo.com/mxp",g="http://www.esri.com/wms",v="http://www.opengis.net/wfs",y="http://www.opengis.net/gml",C=/<body>\s*<\/body>/im,b=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,S=/<title>([\s\S]*)<\/title>/im;return o}),define("Scene/TimeDynamicImagery",["../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/JulianDate","../Core/Request","../Core/RequestType"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){e=t(e,t.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];var i=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,i.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(i)}function u(e,t,i){return e+"-"+t+"-"+i}function c(e){var t=e.split("-");if(3===t.length)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function d(e){var t=e._times;if(i(t)){var r=e._clock,n=r.currentTime,a=r.canAnimate&&r.shouldAnimate,s=r.multiplier;if(a||0===s){var l,u=t.indexOf(n);if(!(u<0)){var c=t.get(u);return s>0?(l=o.secondsDifference(c.stop,n),++u):(l=o.secondsDifference(c.start,n),--u),l/=s,u>=0&&l<=5?t.get(u):void 0}}}}function h(e,t,r){var n=e._times.indexOf(r.start),o=e._tileCache,l=o[n];i(l)||(l=o[n]={});var u=t.key;if(i(l[u]))return!0;var d=c(u),h=new a({throttle:!0,throttleByServer:!0,type:s.IMAGERY,priorityFunction:t.priorityFunction}),p=e._requestImageFunction(d.x,d.y,d.level,h,r);return!!i(p)&&(l[u]={promise:p,request:h},!0)}return r(l.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}}),l.prototype.getFromCache=function(e,t,r,n){var o,a=u(e,t,r),s=this._tileCache[this._currentIntervalIndex];if(i(s)&&i(s[a])){var l=s[a];o=l.promise.otherwise(function(e){throw n.state=l.request.state,e}),delete s[a]}return o},l.prototype.checkApproachingInterval=function(e,t,r,n){var o=u(e,t,r),a=this._tilesRequestedForInterval,s=d(this),l={key:o,priorityFunction:n.priorityFunction};i(s)&&h(this,l,s)||a.push(l),a.length>=512&&a.splice(0,256)},l.prototype._clockOnTick=function(e){var t=e.currentTime,r=this._times,n=r.indexOf(t),o=this._currentIntervalIndex;if(n!==o){var a=this._tileCache[o];for(var s in a)a.hasOwnProperty(s)&&a[s].request.cancel();return delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=n,void this._reloadFunction()}var l=d(this);if(i(l))for(var u=this._tilesRequestedForInterval,c=!0;c&&0!==u.length;){var p=u.pop();(c=h(this,p,l))||u.push(p)}},l}),define("Scene/WebMapServiceImageryProvider",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/freezeObject","../Core/GeographicTilingScheme","../Core/Resource","../Core/WebMercatorProjection","./GetFeatureInfoFormat","./TimeDynamicImagery","./UrlTemplateImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(i){if(i=e(i,e.EMPTY_OBJECT),t(i.times)&&!t(i.clock))throw new r("options.times was specified, so options.clock is required.");var n=a.createIfNeeded(i.url),l=n.clone();n.setQueryParameters(d.DefaultParameters,!0),l.setQueryParameters(d.GetFeatureInfoDefaultParameters,!0),t(i.parameters)&&n.setQueryParameters(f(i.parameters)),t(i.getFeatureInfoParameters)&&l.setQueryParameters(f(i.getFeatureInfoParameters));var p=this;this._reload=void 0,t(i.times)&&(this._timeDynamicImagery=new u({clock:i.clock,times:i.times,requestImageFunction:function(e,t,i,r,n){return h(p,e,t,i,r,n)},reloadFunction:function(){t(p._reload)&&p._reload()}}));var m={};m.layers=i.layers,m.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",m.width="{width}",m.height="{height}",parseFloat(n.queryParameters.version)>=1.3?m.crs=e(i.crs,i.tilingScheme&&i.tilingScheme.projection instanceof s?"EPSG:3857":"CRS:84"):m.srs=e(i.srs,i.tilingScheme&&i.tilingScheme.projection instanceof s?"EPSG:3857":"EPSG:4326"),n.setQueryParameters(m,!0),l.setQueryParameters(m,!0);var _={query_layers:i.layers,x:"{i}",y:"{j}",info_format:"{format}"};l.setQueryParameters(_,!0),this._resource=n,this._pickFeaturesResource=l,this._layers=i.layers,this._tileProvider=new c({url:n,pickFeaturesUrl:l,tilingScheme:e(i.tilingScheme,new o({ellipsoid:i.ellipsoid})),rectangle:i.rectangle,tileWidth:i.tileWidth,tileHeight:i.tileHeight,minimumLevel:i.minimumLevel,maximumLevel:i.maximumLevel,subdomains:i.subdomains,tileDiscardPolicy:i.tileDiscardPolicy,credit:i.credit,getFeatureInfoFormats:e(i.getFeatureInfoFormats,d.DefaultGetFeatureInfoFormats),enablePickFeatures:i.enablePickFeatures})}function h(e,i,r,n,o,a){var s=t(a)?a.data:void 0,l=e._tileProvider;return t(s)&&l._resource.setQueryParameters(s),l.requestImage(i,r,n,o)}function p(e,i,r,n,o,a,s){var l=t(s)?s.data:void 0,u=e._tileProvider;return t(l)&&u._pickFeaturesResource.setQueryParameters(l),u.pickFeatures(i,r,n,o,a)}function f(e){var t={};for(var i in e)e.hasOwnProperty(i)&&(t[i.toLowerCase()]=e[i]);return t}return i(d.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},ready:{get:function(){return this._tileProvider.ready}},readyPromise:{get:function(){return this._tileProvider.readyPromise}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}}}),d.prototype.getTileCredits=function(e,t,i){return this._tileProvider.getTileCredits(e,t,i)},d.prototype.requestImage=function(e,i,r,n){var o,a,s=this._timeDynamicImagery;return t(s)&&(a=s.currentInterval,o=s.getFromCache(e,i,r,n)),t(o)||(o=h(this,e,i,r,n,a)),t(o)&&t(s)&&s.checkApproachingInterval(e,i,r,n),o},d.prototype.pickFeatures=function(e,i,r,n,o){var a=this._timeDynamicImagery;return p(this,e,i,r,n,o,t(a)?a.currentInterval:void 0)},d.DefaultParameters=n({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"}),d.GetFeatureInfoDefaultParameters=n({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"}),d.DefaultGetFeatureInfoFormats=n([n(new l("json","application/json")),n(new l("xml","text/xml")),n(new l("text","text/html"))]),d}),define("Scene/WebMapTileServiceImageryProvider",["../Core/combine","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/freezeObject","../Core/isArray","../Core/Rectangle","../Core/Resource","../Core/WebMercatorTilingScheme","../ThirdParty/when","./ImageryProvider","./TimeDynamicImagery"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT);var n=c.createIfNeeded(e.url),o=e.style,s=e.tileMatrixSetID;if(n.url.indexOf("{")>=0){var p={style:o,Style:o,TileMatrixSet:s};n.setTemplateValues(p),this._useKvp=!1}else n.setQueryParameters(g),this._useKvp=!0;this._resource=n,this._layer=e.layer,this._style=o,this._tileMatrixSetID=s,this._tileMatrixLabels=e.tileMatrixLabels,this._format=i(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=r(e.tilingScheme)?e.tilingScheme:new d({ellipsoid:e.ellipsoid}),this._tileWidth=i(e.tileWidth,256),this._tileHeight=i(e.tileHeight,256),this._minimumLevel=i(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=i(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;var m=this;this._reload=void 0,r(e.times)&&(this._timeDynamicImagery=new f({clock:e.clock,times:e.times,requestImageFunction:function(e,t,i,r,n){return _(m,e,t,i,r,n)},reloadFunction:function(){r(m._reload)&&m._reload()}})),this._readyPromise=h.resolve(!0);var v=this._tilingScheme.positionToTileXY(u.southwest(this._rectangle),this._minimumLevel),y=this._tilingScheme.positionToTileXY(u.northeast(this._rectangle),this._minimumLevel);Math.abs(y.x-v.x),Math.abs(y.y-v.y);this._errorEvent=new a;var C=e.credit;this._credit="string"==typeof C?new t(C):C,this._subdomains=e.subdomains,l(this._subdomains)?this._subdomains=this._subdomains.slice():r(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function _(t,i,n,o,a,s){var l,u=t._tileMatrixLabels,c=r(u)?u[o]:o.toString(),d=t._subdomains,h=t._dimensions,f=r(s)?s.data:void 0;if(t._useKvp){var m={};m.tilematrix=c,m.layer=t._layer,m.style=t._style,m.tilerow=n,m.tilecol=i,m.tilematrixset=t._tileMatrixSetID,m.format=t._format,r(h)&&(m=e(m,h)),r(f)&&(m=e(m,f)),l=t._resource.getDerivedResource({queryParameters:m,request:a})}else{var _={TileMatrix:c,TileRow:n.toString(),TileCol:i.toString(),s:d[(i+n+o)%d.length]};l=t._resource.getDerivedResource({request:a}),l.setTemplateValues(_),r(h)&&l.setTemplateValues(h),r(f)&&l.setTemplateValues(f)}return p.loadImage(t,l)}var g=s({service:"WMTS",version:"1.0.0",request:"GetTile"});return n(m.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},ready:{value:!0},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,r(this._reload)&&this._reload())}}}),m.prototype.getTileCredits=function(e,t,i){},m.prototype.requestImage=function(e,t,i,n){var o,a,s=this._timeDynamicImagery;return r(s)&&(a=s.currentInterval,o=s.getFromCache(e,t,i,n)),r(o)||(o=_(this,e,t,i,n,a)),r(o)&&r(s)&&s.checkApproachingInterval(e,t,i,n),o},m.prototype.pickFeatures=function(e,t,i,r,n){},m}),define("Scene/IonImageryProvider",["../Core/Check","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/IonResource","../Core/RuntimeError","../ThirdParty/when","./ArcGisMapServerImageryProvider","./BingMapsImageryProvider","./createTileMapServiceImageryProvider","./GoogleEarthEnterpriseMapsProvider","./MapboxImageryProvider","./SingleTileImageryProvider","./UrlTemplateImageryProvider","./WebMapServiceImageryProvider","./WebMapTileServiceImageryProvider"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v){"use strict";function y(e){return function(t){return new e(t)}}function C(e){e=i(e,i.EMPTY_OBJECT);var t=e.assetId;this.defaultAlpha=void 0,this.defaultBrightness=void 0,this.defaultContrast=void 0,this.defaultHue=void 0,this.defaultSaturation=void 0,this.defaultGamma=void 0,this.defaultMinificationFilter=void 0,this.defaultMagnificationFilter=void 0,this._ready=!1,this._tileCredits=void 0,this._errorEvent=new a;var n=this,o=s._createEndpointResource(t,e),c=e.assetId.toString()+e.accessToken+e.server,d=C._endpointCache[c];r(d)||(d=o.fetchJson(),C._endpointCache[c]=d),this._readyPromise=d.then(function(e){if("IMAGERY"!==e.type)return u.reject(new l("Cesium ion asset "+t+" is not an imagery asset."));var i,a=e.externalType;if(r(a)){var c=b[a];if(!r(c))return u.reject(new l("Unrecognized Cesium ion imagery type: "+a));i=c(e.options)}else i=h({url:new s(e,o)});return n._tileCredits=s.getCreditsFromEndpoint(e,o),i.errorEvent.addEventListener(function(e){e.provider=n,n._errorEvent.raiseEvent(e)}),n._imageryProvider=i,i.readyPromise.then(function(){return n._ready=!0,!0})})}var b={ARCGIS_MAPSERVER:y(c),BING:y(d),GOOGLE_EARTH:y(p),MAPBOX:y(f),SINGLE_TILE:y(m),TMS:h,URL_TEMPLATE:y(_),WMS:y(g),WMTS:y(v)};return n(C.prototype,{ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}}),C.prototype.getTileCredits=function(e,t,i){var n=this._imageryProvider.getTileCredits(e,t,i);return r(n)?this._tileCredits.concat(n):this._tileCredits},C.prototype.requestImage=function(e,t,i,r){return this._imageryProvider.requestImage(e,t,i,r)},C.prototype.pickFeatures=function(e,t,i,r,n){return this._imageryProvider.pickFeatures(e,t,i,r,n)},C._endpointCache={},C}),define("Scene/IonWorldImageryStyle",["../Core/freezeObject"],function(e){"use strict";return e({AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4})}),define("Scene/createWorldImagery",["./IonImageryProvider","./IonWorldImageryStyle","../Core/defaultValue"],function(e,t,i){"use strict";function r(r){r=i(r,i.EMPTY_OBJECT);var n=i(r.style,t.AERIAL);return new e({assetId:n})}return r}),define("Scene/CreditDisplay",["../Core/AssociativeArray","../Core/buildModuleUrl","../Core/Check","../Core/Credit","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t){for(var i=e.length,n=0;n<i;n++){var o=e[n];if(r.equals(o,t))return!0}return!1}function u(e){var t=e._previousCesiumCredit,i=e._currentCesiumCredit;r.equals(i,t)||(o(t)&&e._cesiumCreditContainer.removeChild(t.element),o(i)&&e._cesiumCreditContainer.appendChild(i.element),e._previousCesiumCredit=i)}function c(e){var t=document.createElement("span");return t.textContent=e,t.className=S,t}function d(e,t){if(o(t)){var i=document.createElement(t);i._creditId=e._creditId,i.appendChild(e),e=i}return e}function h(e,t,i,r){for(var n=e.childNodes,a=-1,s=0;s<t.length;++s){var l=t[s];if(o(l)){if(a=s,o(i)&&(a*=2,s>0)){var u=a-1;if(n.length<=u)e.appendChild(c(i));else{var h=n[u];h.className!==S&&e.replaceChild(c(i),h)}}var p=l.element;if(n.length<=a)e.appendChild(d(p,r));else{var f=n[a];f._creditId!==l._id&&e.replaceChild(d(p,r),f)}}} -for(++a;a<n.length;)e.removeChild(n[a])}function p(e){var t=e._lightboxCredits,i=e.viewport.clientWidth,r=e.viewport.clientHeight;i!==e._lastViewportWidth&&(i<v?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=Math.floor(.5*(r-t.clientHeight))+"px"),e._lastViewportWidth=i),i>=v&&r!==e._lastViewportHeight&&(t.style.marginTop=Math.floor(.5*(r-t.clientHeight))+"px",e._lastViewportHeight=r)}function f(e,t){var i=e+" {";for(var r in t)t.hasOwnProperty(r)&&(i+=r+": "+t[r]+"; ");return i+=" }\n"}function m(){var e="";e+=f(".cesium-credit-lightbox-overlay",{display:"none","z-index":"1",position:"absolute",top:"0",left:"0",width:"100%",height:"100%","background-color":"rgba(80, 80, 80, 0.8)"}),e+=f(".cesium-credit-lightbox",{"background-color":"#303336",color:C,position:"relative","min-height":y+"px",margin:"auto"}),e+=f(".cesium-credit-lightbox > ul > li a, .cesium-credit-lightbox > ul > li a:visited",{color:C}),e+=f(".cesium-credit-lightbox > ul > li a:hover",{color:b}),e+=f(".cesium-credit-lightbox.cesium-credit-lightbox-expanded",{border:"1px solid #444","border-radius":"5px","max-width":"370px"}),e+=f(".cesium-credit-lightbox.cesium-credit-lightbox-mobile",{height:"100%",width:"100%"}),e+=f(".cesium-credit-lightbox-title",{padding:"20px 20px 0 20px"}),e+=f(".cesium-credit-lightbox-close",{"font-size":"18pt",cursor:"pointer",position:"absolute",top:"0",right:"6px",color:C}),e+=f(".cesium-credit-lightbox-close:hover",{color:b}),e+=f(".cesium-credit-lightbox > ul",{margin:"0",padding:"12px 20px 12px 40px","font-size":"13px"}),e+=f(".cesium-credit-lightbox > ul > li",{"padding-bottom":"6px"}),e+=f(".cesium-credit-lightbox > ul > li *",{padding:"0",margin:"0"}),e+=f(".cesium-credit-expand-link",{"padding-left":"5px",cursor:"pointer","text-decoration":"underline",color:C}),e+=f(".cesium-credit-expand-link:hover",{color:b}),e+=f(".cesium-credit-text",{color:C}),e+=f(".cesium-credit-textContainer *, .cesium-credit-logoContainer *",{display:"inline"});var t=document.head,i=document.createElement("style");i.innerHTML=e,t.insertBefore(i,t.firstChild)}function _(t,i,o){function a(e){u.contains(e.target)||s.hideLightbox()}var s=this;o=n(o,document.body);var l=document.createElement("div");l.className="cesium-credit-lightbox-overlay",o.appendChild(l);var u=document.createElement("div");u.className="cesium-credit-lightbox",l.appendChild(u),l.addEventListener("click",a,!1);var c=document.createElement("div");c.className="cesium-credit-lightbox-title",c.textContent="Data provided by:",u.appendChild(c);var d=document.createElement("a");d.onclick=this.hideLightbox.bind(this),d.innerHTML="×",d.className="cesium-credit-lightbox-close",u.appendChild(d);var h=document.createElement("ul");u.appendChild(h);var p=document.createElement("div");p.className="cesium-credit-logoContainer",p.style.display="inline",t.appendChild(p);var f=document.createElement("div");f.className="cesium-credit-textContainer",f.style.display="inline",t.appendChild(f);var g=document.createElement("a");g.className="cesium-credit-expand-link",g.onclick=this.showLightbox.bind(this),g.textContent="Data attribution",t.appendChild(g),m();var v=r.clone(_.cesiumCredit);this._delimiter=n(i," • "),this._screenContainer=f,this._cesiumCreditContainer=p,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=u,this._creditList=h,this._lightbox=l,this._hideLightbox=a,this._expandLink=g,this._expanded=!1,this._defaultCredits=[],this._cesiumCredit=v,this._previousCesiumCredit=void 0,this._currentCesiumCredit=v,this._currentFrameCredits={screenCredits:new e,lightboxCredits:new e},this._defaultCredit=void 0,this.viewport=o,this.container=t}function g(){if(!o(T)){var e=t("Assets/Images/ion-credit.png");T=new r('<a href="https://cesium.com/" target="_blank"><img src="'+e+'" title="Cesium ion"/></a>',!0)}return _._cesiumCreditInitialized||(_._cesiumCredit=T,_._cesiumCreditInitialized=!0),T}var v=576,y=100,C="#ffffff",b="#48b",S="cesium-credit-delimiter";_.prototype.addCredit=function(e){if(e._isIon)return o(this._defaultCredit)||(this._defaultCredit=r.clone(g())),void(this._currentCesiumCredit=this._defaultCredit);e.showOnScreen?this._currentFrameCredits.screenCredits.set(e.id,e):this._currentFrameCredits.lightboxCredits.set(e.id,e)},_.prototype.addDefaultCredit=function(e){var t=this._defaultCredits;l(t,e)||t.push(e)},_.prototype.removeDefaultCredit=function(e){var t=this._defaultCredits,i=t.indexOf(e);-1!==i&&t.splice(i,1)},_.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0},_.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1},_.prototype.update=function(){this._expanded&&p(this)},_.prototype.beginFrame=function(){var e=this._currentFrameCredits,t=e.screenCredits;t.removeAll();for(var i=this._defaultCredits,n=0;n<i.length;++n){var o=i[n];t.set(o.id,o)}e.lightboxCredits.removeAll(),r.equals(_.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=r.clone(_.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit},_.prototype.endFrame=function(){var e=this._currentFrameCredits.screenCredits.values;h(this._screenContainer,e,this._delimiter,void 0);var t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",h(this._creditList,t,void 0,"li"),u(this)},_.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),s(this)},_.prototype.isDestroyed=function(){return!1},_._cesiumCredit=void 0,_._cesiumCreditInitialized=!1;var T;return a(_,{cesiumCredit:{get:function(){return g(),_._cesiumCredit},set:function(e){_._cesiumCredit=e,_._cesiumCreditInitialized=!0}}}),_}),define("Scene/DebugAppearance",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","./Appearance"],function(e,t,i,r,n){"use strict";function o(i){i=e(i,e.EMPTY_OBJECT);var r=i.attributeName,o=i.perInstanceAttribute;t(o)||(o=!1);var a,s=e(i.glslDatatype,"vec3"),l="v_"+r;if("normal"===r||"tangent"===r||"bitangent"===r)a="vec4 getColor() { return vec4(("+l+" + vec3(1.0)) * 0.5, 1.0); }\n";else switch("st"===r&&(s="vec2"),s){case"float":a="vec4 getColor() { return vec4(vec3("+l+"), 1.0); }\n";break;case"vec2":a="vec4 getColor() { return vec4("+l+", 0.0, 1.0); }\n";break;case"vec3":a="vec4 getColor() { return vec4("+l+", 1.0); }\n";break;case"vec4":a="vec4 getColor() { return "+l+"; }\n"}var u="attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute float batchId;\n"+(o?"":"attribute "+s+" "+r+";\n")+"varying "+s+" "+l+";\nvoid main()\n{\nvec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow);\n"+(o?l+" = czm_batchTable_"+r+"(batchId);\n":l+" = "+r+";\n")+"gl_Position = czm_modelViewProjectionRelativeToEye * p;\n}",c="varying "+s+" "+l+";\n"+a+"\nvoid main()\n{\ngl_FragColor = getColor();\n}";this.material=void 0,this.translucent=e(i.translucent,!1),this._vertexShaderSource=e(i.vertexShaderSource,u),this._fragmentShaderSource=e(i.fragmentShaderSource,c),this._renderState=n.getDefaultRenderState(!1,!1,i.renderState),this._closed=e(i.closed,!1),this._attributeName=r,this._glslDatatype=s}return i(o.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}}),o.prototype.getFragmentShaderSource=n.prototype.getFragmentShaderSource,o.prototype.isTranslucent=n.prototype.isTranslucent,o.prototype.getRenderState=n.prototype.getRenderState,o}),define("Scene/DebugCameraPrimitive",["../Core/Cartesian3","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/FrustumGeometry","../Core/FrustumOutlineGeometry","../Core/GeometryInstance","../Core/Matrix3","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/PerspectiveFrustum","../Core/PerspectiveOffCenterFrustum","../Core/Quaternion","./PerInstanceColorAppearance","./Primitive"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(e){e=r(e,r.EMPTY_OBJECT),this._camera=e.camera,this._color=r(e.color,t.CYAN),this._updateOnChange=r(e.updateOnChange,!0),this.show=r(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var y=new e,C=new c,b=new m,S=new p,T=new f,E=new d,A=new h,w=new t,x=[1,1e5];return v.prototype.update=function(r){if(this.show){var n,o,a=this._planesPrimitives,h=this._outlinePrimitives;if(this._updateOnChange){for(o=a.length,n=0;n<o;++n)h[n]=h[n]&&h[n].destroy(),a[n]=a[n]&&a[n].destroy();a.length=0,h.length=0}if(0===a.length){var v,P=this._camera,D=P.frustum;v=D instanceof p?S:D instanceof f?T:D instanceof d?E:A,v=D.clone(v);var I=r.frustumSplits,M=I.length-1;M<=0&&(I=x,I[0]=this._camera.frustum.near,I[1]=this._camera.frustum.far,M=1);var R=P.positionWC,O=P.directionWC,L=P.upWC,N=P.rightWC;N=e.negate(N,y);var F=C;c.setColumn(F,0,N,F),c.setColumn(F,1,L,F),c.setColumn(F,2,O,F);var B=m.fromRotationMatrix(F,b);for(a.length=h.length=M,n=0;n<M;++n)v.near=I[n],v.far=I[n+1],a[n]=new g({geometryInstances:new u({geometry:new s({origin:R,orientation:B,frustum:v,_drawNearPlane:0===n}),attributes:{color:i.fromColor(t.fromAlpha(this._color,.1,w))},id:this.id,pickPrimitive:this}),appearance:new _({translucent:!0,flat:!0}),asynchronous:!1}),h[n]=new g({geometryInstances:new u({geometry:new l({origin:R,orientation:B,frustum:v,_drawNearPlane:0===n}),attributes:{color:i.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new _({translucent:!1,flat:!0}),asynchronous:!1})}for(o=a.length,n=0;n<o;++n)h[n].update(r),a[n].update(r)}},v.prototype.isDestroyed=function(){return!1},v.prototype.destroy=function(){for(var e=this._planesPrimitives.length,t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return o(this)},v}),define("Scene/DebugModelMatrixPrimitive",["../Core/ArcType","../Core/Cartesian3","../Core/Color","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/GeometryInstance","../Core/Matrix4","../Core/PolylineGeometry","./PolylineColorAppearance","./Primitive"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e){e=r(e,r.EMPTY_OBJECT),this.length=r(e.length,1e7),this._length=void 0,this.width=r(e.width,2),this._width=void 0,this.show=r(e.show,!0),this.modelMatrix=s.clone(r(e.modelMatrix,s.IDENTITY)),this._modelMatrix=new s,this.id=e.id,this._id=void 0,this._primitive=void 0}return d.prototype.update=function(r){if(this.show){if(!n(this._primitive)||!s.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=s.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,n(this._primitive)&&this._primitive.destroy(),0===this.modelMatrix[12]&&0===this.modelMatrix[13]&&0===this.modelMatrix[14]&&(this.modelMatrix[14]=.01);var o=new a({geometry:new l({positions:[t.ZERO,t.UNIT_X],width:this.width,vertexFormat:u.VERTEX_FORMAT,colors:[i.RED,i.RED],arcType:e.NONE}),modelMatrix:s.multiplyByUniformScale(this.modelMatrix,this.length,new s),id:this.id,pickPrimitive:this}),d=new a({geometry:new l({positions:[t.ZERO,t.UNIT_Y],width:this.width,vertexFormat:u.VERTEX_FORMAT,colors:[i.GREEN,i.GREEN],arcType:e.NONE}),modelMatrix:s.multiplyByUniformScale(this.modelMatrix,this.length,new s),id:this.id,pickPrimitive:this}),h=new a({geometry:new l({positions:[t.ZERO,t.UNIT_Z],width:this.width,vertexFormat:u.VERTEX_FORMAT,colors:[i.BLUE,i.BLUE],arcType:e.NONE}),modelMatrix:s.multiplyByUniformScale(this.modelMatrix,this.length,new s),id:this.id,pickPrimitive:this});this._primitive=new c({geometryInstances:[o,d,h],appearance:new u,asynchronous:!1})}this._primitive.update(r)}},d.prototype.isDestroyed=function(){return!1},d.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),o(this)},d}),define("Shaders/DepthPlaneFS",[],function(){"use strict";return"varying vec4 positionEC;\nvoid main()\n{\nczm_ellipsoid ellipsoid = czm_getWgs84EllipsoidEC();\nvec3 direction = normalize(positionEC.xyz);\nczm_ray ray = czm_ray(vec3(0.0), direction);\nczm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid);\nif (!czm_isEmpty(intersection))\n{\ngl_FragColor = vec4(1.0, 1.0, 0.0, 1.0);\n}\nelse\n{\ndiscard;\n}\nczm_writeLogDepth();\n}\n"}),define("Shaders/DepthPlaneVS",[],function(){"use strict";return"attribute vec4 position;\nvarying vec4 positionEC;\nvoid main()\n{\npositionEC = czm_modelView * position;\ngl_Position = czm_projection * positionEC;\nczm_vertexLogDepth();\n}\n"}),define("Scene/DepthPlane",["../Core/BoundingSphere","../Core/Cartesian3","../Core/ComponentDatatype","../Core/defined","../Core/FeatureDetection","../Core/Geometry","../Core/GeometryAttribute","../Core/PrimitiveType","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/DepthPlaneFS","../Shaders/DepthPlaneVS","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1}function y(e,i){var r=e.radii,n=i.camera.positionWC,o=t.multiplyComponents(e.oneOverRadii,n,b),a=t.magnitude(o),s=t.normalize(o,S),l=t.normalize(t.cross(t.UNIT_Z,o,T),T),u=t.normalize(t.cross(s,l,E),E),c=Math.sqrt(t.magnitudeSquared(o)-1),d=t.multiplyByScalar(s,1/a,b),h=c/a,p=t.multiplyByScalar(l,h,S),f=t.multiplyByScalar(u,h,T),m=t.add(d,f,E);t.subtract(m,p,m),t.multiplyComponents(r,m,m),t.pack(m,C,0);var _=t.subtract(d,f,E);t.subtract(_,p,_),t.multiplyComponents(r,_,_),t.pack(_,C,3);var g=t.add(d,f,E);t.add(g,p,g),t.multiplyComponents(r,g,g),t.pack(g,C,6);var v=t.subtract(d,f,E);return t.add(v,p,v),t.multiplyComponents(r,v,v),t.pack(v,C,9),C}var C=n.supportsTypedArrays()?new Float32Array(12):[],b=new t,S=new t,T=new t,E=new t;return v.prototype.update=function(n){if(this._mode=n.mode,n.mode===g.SCENE3D){var v=n.context,C=n.mapProjection.ellipsoid,b=n.useLogDepth;if(r(this._command)||(this._rs=d.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new u({renderState:this._rs,boundingVolume:new e(t.ZERO,C.maximumRadius),pass:c.OPAQUE,owner:this})),!r(this._sp)||this._useLogDepth!==b){this._useLogDepth=b;var S=new p({sources:[_]}),T=new p({sources:[m]});if(b){T.sources.push("#ifdef GL_EXT_frag_depth \n#extension GL_EXT_frag_depth : enable \n#endif \n\n"),T.defines.push("LOG_DEPTH"),S.defines.push("LOG_DEPTH"),S.defines.push("DISABLE_GL_POSITION_LOG_DEPTH")}this._sp=h.replaceCache({shaderProgram:this._sp,context:v,vertexShaderSource:S,fragmentShaderSource:T,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}var E=y(C,n);if(r(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(E);else{var A=new o({attributes:{position:new a({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:E})},indices:[0,1,2,2,1,3],primitiveType:s.TRIANGLES});this._va=f.fromGeometry({context:v,geometry:A,attributeLocations:{position:0},bufferUsage:l.DYNAMIC_DRAW}),this._command.vertexArray=this._va}}},v.prototype.execute=function(e,t){this._mode===g.SCENE3D&&this._command.execute(e,t)},v.prototype.isDestroyed=function(){return!1},v.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()},v}),define("Scene/DerivedCommand",["../Core/defaultValue","../Core/defined","../Renderer/DrawCommand","../Renderer/RenderState","../Renderer/ShaderSource"],function(e,t,i,r,n){"use strict";function o(){}function a(e,i){var r=e.shaderCache.getDerivedShaderProgram(i,"depthOnly");if(!t(r)){var o,a=i._attributeLocations,s=i.fragmentShaderSource,l=!1,u=s.sources,c=u.length;for(o=0;o<c;++o)if(h.test(u[o])||p.test(u[o])){l=!0;break}var d=!1,f=s.defines;for(c=f.length,o=0;o<c;++o)if("LOG_DEPTH"===f[o]){d=!0;break}var m;l||d?!l&&d&&(m="#ifdef GL_EXT_frag_depth \n#extension GL_EXT_frag_depth : enable \n#endif \n\nvoid main() \n{ \n gl_FragColor = vec4(1.0); \n czm_writeLogDepth(); \n} \n",s=new n({defines:["LOG_DEPTH"],sources:[m]})):(m="void main() \n{ \n gl_FragColor = vec4(1.0); \n} \n",s=new n({sources:[m]})),r=e.shaderCache.createDerivedShaderProgram(i,"depthOnly",{vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:s,attributeLocations:a})}return r}function s(e,i){var n=e._depthOnlyRenderStateCache,o=n[i.id];if(!t(o)){var a=r.getState(i);a.depthMask=!0,a.colorMask={red:!1,green:!1,blue:!1,alpha:!1},o=r.fromCache(a),n[i.id]=o}return o}function l(e,i){var r=e.shaderCache.getDerivedShaderProgram(i,"logDepth");if(!t(r)){var o=i._attributeLocations,a=i.vertexShaderSource.clone(),s=i.fragmentShaderSource.clone();a.defines=t(a.defines)?a.defines.slice(0):[],a.defines.push("LOG_DEPTH"),s.defines=t(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");var l,u,c=!1,d=a.sources,h=d.length;for(l=0;l<h;++l)if(m.test(d[l])){c=!0;break}if(!c){for(l=0;l<h;++l)d[l]=n.replaceMain(d[l],"czm_log_depth_main");u="\n\nvoid main() \n{ \n czm_log_depth_main(); \n czm_vertexLogDepth(); \n} \n",d.push(u)}var p=!0;for(c=!1,d=s.sources,h=d.length,l=0;l<h;++l)f.test(d[l])&&(c=!0),_.test(d[l])&&(p=!1);var g="";if(p&&(g+="#ifdef GL_EXT_frag_depth \n#extension GL_EXT_frag_depth : enable \n#endif \n\n"),!c){for(l=0;l<h;l++)d[l]=n.replaceMain(d[l],"czm_log_depth_main");g+="\nvoid main() \n{ \n czm_log_depth_main(); \n czm_writeLogDepth(); \n} \n"}d.push(g),r=e.shaderCache.createDerivedShaderProgram(i,"logDepth",{vertexShaderSource:a,fragmentShaderSource:s,attributeLocations:o})}return r}function u(e,i,r){var o=e.shaderCache.getDerivedShaderProgram(i,"pick");if(!t(o)){for(var a=i._attributeLocations,s=i.fragmentShaderSource,l=s.sources,u=l.length,c="void main() \n{ \n czm_non_pick_main(); \n if (gl_FragColor.a == 0.0) { \n discard; \n } \n gl_FragColor = "+r+"; \n} \n",d=new Array(u+1),h=0;h<u;++h)d[h]=n.replaceMain(l[h],"czm_non_pick_main");d[u]=c,s=new n({sources:d,defines:s.defines}),o=e.shaderCache.createDerivedShaderProgram(i,"pick",{vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:s,attributeLocations:a})}return o}function c(e,i){var n=e._pickRenderStateCache,o=n[i.id];if(!t(o)){var a=r.getState(i);a.blending.enabled=!1,a.depthMask=!0,o=r.fromCache(a),n[i.id]=o}return o}function d(e,i){var r=e.shaderCache.getDerivedShaderProgram(i,"HDR");if(!t(r)){var n=i._attributeLocations,o=i.vertexShaderSource.clone(),a=i.fragmentShaderSource.clone();o.defines=t(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),a.defines=t(a.defines)?a.defines.slice(0):[],a.defines.push("HDR"),r=e.shaderCache.createDerivedShaderProgram(i,"HDR",{vertexShaderSource:o,fragmentShaderSource:a,attributeLocations:n})}return r}var h=/\bgl_FragDepthEXT\b/,p=/\bdiscard\b/;o.createDepthOnlyDerivedCommand=function(e,r,n,o){t(o)||(o={});var l,u;return t(o.depthOnlyCommand)&&(l=o.depthOnlyCommand.shaderProgram,u=o.depthOnlyCommand.renderState),o.depthOnlyCommand=i.shallowClone(r,o.depthOnlyCommand),t(l)&&o.shaderProgramId===r.shaderProgram.id?(o.depthOnlyCommand.shaderProgram=l,o.depthOnlyCommand.renderState=u):(o.depthOnlyCommand.shaderProgram=a(n,r.shaderProgram),o.depthOnlyCommand.renderState=s(e,r.renderState),o.shaderProgramId=r.shaderProgram.id),o};var f=/\s+czm_writeLogDepth\(/,m=/\s+czm_vertexLogDepth\(/,_=/\s*#extension\s+GL_EXT_frag_depth\s*:\s*enable/;return o.createLogDepthCommand=function(e,r,n){t(n)||(n={});var o;return t(n.command)&&(o=n.command.shaderProgram),n.command=i.shallowClone(e,n.command),t(o)&&n.shaderProgramId===e.shaderProgram.id?n.command.shaderProgram=o:(n.command.shaderProgram=l(r,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id),n},o.createPickDerivedCommand=function(e,r,n,o){t(o)||(o={});var a,s;return t(o.pickCommand)&&(a=o.pickCommand.shaderProgram,s=o.pickCommand.renderState),o.pickCommand=i.shallowClone(r,o.pickCommand),t(a)&&o.shaderProgramId===r.shaderProgram.id?(o.pickCommand.shaderProgram=a,o.pickCommand.renderState=s):(o.pickCommand.shaderProgram=u(n,r.shaderProgram,r.pickId),o.pickCommand.renderState=c(e,r.renderState),o.shaderProgramId=r.shaderProgram.id),o},o.createHdrCommand=function(e,r,n){t(n)||(n={});var o;return t(n.command)&&(o=n.command.shaderProgram),n.command=i.shallowClone(e,n.command),t(o)&&n.shaderProgramId===e.shaderProgram.id?n.command.shaderProgram=o:(n.command.shaderProgram=d(r,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id),n},o}),define("Scene/DeviceOrientationCameraController",["../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/Math","../Core/Matrix3","../Core/Quaternion"],function(e,t,i,r,n,o){"use strict";function a(t){function i(t){var i=t.alpha;if(!e(i))return n._alpha=void 0,n._beta=void 0,void(n._gamma=void 0);n._alpha=r.toRadians(i),n._beta=r.toRadians(t.beta),n._gamma=r.toRadians(t.gamma)}this._scene=t,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;var n=this;window.addEventListener("deviceorientation",i,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",i,!1)}}function s(e,t,i,r){var a=e.direction,s=e.right,d=e.up,h=o.fromAxisAngle(a,i,u),p=o.fromAxisAngle(s,r,l),f=o.multiply(p,h,p),m=o.fromAxisAngle(d,t,u);o.multiply(m,f,f);var _=n.fromQuaternion(f,c);n.multiplyByVector(_,s,s),n.multiplyByVector(_,d,d),n.multiplyByVector(_,a,a)}var l=new o,u=new o,c=new n;return a.prototype.update=function(){if(e(this._alpha)){e(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);var t=this._lastAlpha-this._alpha,i=this._lastBeta-this._beta,r=this._lastGamma-this._gamma;s(this._scene.camera,-t,i,r),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma}},a.prototype.isDestroyed=function(){return!1},a.prototype.destroy=function(){return this._removeListener(),t(this)},a}),define("Shaders/EllipsoidFS",[],function(){"use strict";return"#ifdef WRITE_DEPTH\n#ifdef GL_EXT_frag_depth\n#extension GL_EXT_frag_depth : enable\n#endif\n#endif\nuniform vec3 u_radii;\nuniform vec3 u_oneOverEllipsoidRadiiSquared;\nvarying vec3 v_positionEC;\nvec4 computeEllipsoidColor(czm_ray ray, float intersection, float side)\n{\nvec3 positionEC = czm_pointAlongRay(ray, intersection);\nvec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz;\nvec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared));\nvec3 sphericalNormal = normalize(positionMC / u_radii);\nvec3 normalMC = geodeticNormal * side;\nvec3 normalEC = normalize(czm_normal * normalMC);\nvec2 st = czm_ellipsoidWgs84TextureCoordinates(sphericalNormal);\nvec3 positionToEyeEC = -positionEC;\nczm_materialInput materialInput;\nmaterialInput.s = st.s;\nmaterialInput.st = st;\nmaterialInput.str = (positionMC + u_radii) / u_radii;\nmaterialInput.normalEC = normalEC;\nmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC);\nmaterialInput.positionToEyeEC = positionToEyeEC;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef ONLY_SUN_LIGHTING\nreturn czm_private_phong(normalize(positionToEyeEC), material);\n#else\nreturn czm_phong(normalize(positionToEyeEC), material);\n#endif\n}\nvoid main()\n{\nfloat maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5;\nvec3 direction = normalize(v_positionEC);\nvec3 ellipsoidCenter = czm_modelView[3].xyz;\nfloat t1 = -1.0;\nfloat t2 = -1.0;\nfloat b = -2.0 * dot(direction, ellipsoidCenter);\nfloat c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius;\nfloat discriminant = b * b - 4.0 * c;\nif (discriminant >= 0.0) {\nt1 = (-b - sqrt(discriminant)) * 0.5;\nt2 = (-b + sqrt(discriminant)) * 0.5;\n}\nif (t1 < 0.0 && t2 < 0.0) {\ndiscard;\n}\nfloat t = min(t1, t2);\nif (t < 0.0) {\nt = 0.0;\n}\nczm_ellipsoid ellipsoid = czm_ellipsoidNew(ellipsoidCenter, u_radii);\nczm_ray ray = czm_ray(t * direction, direction);\nczm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid);\nif (czm_isEmpty(intersection))\n{\ndiscard;\n}\nvec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0);\nvec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0);\ngl_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a);\ngl_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a);\n#ifdef WRITE_DEPTH\n#ifdef GL_EXT_frag_depth\nt = (intersection.start != 0.0) ? intersection.start : intersection.stop;\nvec3 positionEC = czm_pointAlongRay(ray, t);\nvec4 positionCC = czm_projection * vec4(positionEC, 1.0);\n#ifdef LOG_DEPTH\nczm_writeLogDepth(1.0 + positionCC.w);\n#else\nfloat z = positionCC.z / positionCC.w;\nfloat n = czm_depthRange.near;\nfloat f = czm_depthRange.far;\ngl_FragDepthEXT = (z * (f - n) + f + n) * 0.5;\n#endif\n#endif\n#endif\n}\n"}),define("Shaders/EllipsoidVS",[],function(){"use strict";return"attribute vec3 position;\nuniform vec3 u_radii;\nvarying vec3 v_positionEC;\nvoid main()\n{\nvec4 p = vec4(u_radii * position, 1.0);\nv_positionEC = (czm_modelView * p).xyz;\ngl_Position = czm_modelViewProjection * p;\ngl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far);\nczm_vertexLogDepth();\n}\n"}),define("Scene/EllipsoidPrimitive",["../Core/BoundingSphere","../Core/BoxGeometry","../Core/Cartesian3","../Core/combine","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/Matrix4","../Core/VertexFormat","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/EllipsoidFS","../Shaders/EllipsoidVS","./BlendingState","./CullFace","./Material","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(t){t=n(t,n.EMPTY_OBJECT),this.center=i.clone(n(t.center,i.ZERO)),this._center=new i,this.radii=i.clone(t.radii),this._radii=new i,this._oneOverEllipsoidRadiiSquared=new i,this._boundingSphere=new e,this.modelMatrix=l.clone(n(t.modelMatrix,l.IDENTITY)),this._modelMatrix=new l,this._computedModelMatrix=new l,this.show=n(t.show,!0),this.material=n(t.material,b.fromType(b.ColorType)),this._material=void 0,this._translucent=void 0,this.id=t.id,this._id=void 0,this.debugShowBoundingVolume=n(t.debugShowBoundingVolume,!1),this.onlySunLighting=n(t.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=n(t.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new d({owner:n(t._owner,this)}),this._pickCommand=new d({owner:n(t._owner,this),pickOnly:!0});var r=this;this._uniforms={u_radii:function(){return r.radii},u_oneOverEllipsoidRadiiSquared:function(){return r._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return r._pickId.color}}}function E(e){var r=e.cache.ellipsoidPrimitive_vertexArray;if(o(r))return r;var n=t.createGeometry(t.fromDimensions({dimensions:new i(2,2,2),vertexFormat:u.POSITION_ONLY}));return r=_.fromGeometry({context:e,geometry:n,attributeLocations:A,bufferUsage:c.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=r,r}var A={position:0},w="#ifdef GL_EXT_frag_depth \n#extension GL_EXT_frag_depth : enable \n#endif \n\n";return T.prototype.update=function(t){if(this.show&&t.mode===S.SCENE3D&&o(this.center)&&o(this.radii)){var n=t.context,a=this.material.isTranslucent(),s=this._translucent!==a;o(this._rs)&&!s||(this._translucent=a,this._rs=p.fromCache({cull:{enabled:!0,face:C.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!a&&n.fragmentDepth,blending:a?y.ALPHA_BLEND:void 0})),o(this._va)||(this._va=E(n));var u=!1,c=this.radii;if(!i.equals(this._radii,c)){i.clone(c,this._radii);var d=this._oneOverEllipsoidRadiiSquared;d.x=1/(c.x*c.x),d.y=1/(c.y*c.y),d.z=1/(c.z*c.z),u=!0}l.equals(this.modelMatrix,this._modelMatrix)&&i.equals(this.center,this._center)||(l.clone(this.modelMatrix,this._modelMatrix),i.clone(this.center,this._center),l.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),u=!0),u&&(i.clone(i.ZERO,this._boundingSphere.center),this._boundingSphere.radius=i.maximumComponent(c),e.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));var _=this._material!==this.material;this._material=this.material,this._material.update(n);var b=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;var T=t.useLogDepth,x=this._useLogDepth!==T;this._useLogDepth=T;var P,D,I=this._colorCommand;(_||b||s||x)&&(P=new m({sources:[v]}),D=new m({sources:[this.material.shaderSource,g]}),this.onlySunLighting&&D.defines.push("ONLY_SUN_LIGHTING"),!a&&n.fragmentDepth&&D.defines.push("WRITE_DEPTH"),this._useLogDepth&&(P.defines.push("LOG_DEPTH","DISABLE_GL_POSITION_LOG_DEPTH"),D.defines.push("LOG_DEPTH"),D.sources.push(w)),this._sp=f.replaceCache({context:n,shaderProgram:this._sp,vertexShaderSource:P,fragmentShaderSource:D,attributeLocations:A}),I.vertexArray=this._va,I.renderState=this._rs,I.shaderProgram=this._sp,I.uniformMap=r(this._uniforms,this.material._uniforms),I.executeInClosestFrustum=a);var M=t.commandList,R=t.passes;if(R.render&&(I.boundingVolume=this._boundingSphere,I.debugShowBoundingVolume=this.debugShowBoundingVolume,I.modelMatrix=this._computedModelMatrix,I.pass=a?h.TRANSLUCENT:h.OPAQUE,M.push(I)),R.pick){var O=this._pickCommand;o(this._pickId)&&this._id===this.id||(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=n.createPickId({primitive:this,id:this.id})),(_||b||!o(this._pickSP)||x)&&(P=new m({sources:[v]}),D=new m({sources:[this.material.shaderSource,g],pickColorQualifier:"uniform"}),this.onlySunLighting&&D.defines.push("ONLY_SUN_LIGHTING"),!a&&n.fragmentDepth&&D.defines.push("WRITE_DEPTH"),this._useLogDepth&&(P.defines.push("LOG_DEPTH"),D.defines.push("LOG_DEPTH"),D.sources.push(w)),this._pickSP=f.replaceCache({context:n,shaderProgram:this._pickSP,vertexShaderSource:P,fragmentShaderSource:D,attributeLocations:A}),O.vertexArray=this._va,O.renderState=this._rs,O.shaderProgram=this._pickSP,O.uniformMap=r(r(this._uniforms,this._pickUniforms),this.material._uniforms),O.executeInClosestFrustum=a),O.boundingVolume=this._boundingSphere,O.modelMatrix=this._computedModelMatrix,O.pass=a?h.TRANSLUCENT:h.OPAQUE,M.push(O)}}},T.prototype.isDestroyed=function(){return!1},T.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),a(this)},T}),define("Shaders/Appearances/EllipsoidSurfaceAppearanceFS",[],function(){"use strict" -;return"varying vec3 v_positionMC;\nvarying vec3 v_positionEC;\nvarying vec2 v_st;\nvoid main()\n{\nczm_materialInput materialInput;\nvec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)));\n#ifdef FACE_FORWARD\nnormalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC);\n#endif\nmaterialInput.s = v_st.s;\nmaterialInput.st = v_st;\nmaterialInput.str = vec3(v_st, 0.0);\nmaterialInput.normalEC = normalEC;\nmaterialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC);\nvec3 positionToEyeEC = -v_positionEC;\nmaterialInput.positionToEyeEC = positionToEyeEC;\nczm_material material = czm_getMaterial(materialInput);\n#ifdef FLAT\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n#else\ngl_FragColor = czm_phong(normalize(positionToEyeEC), material);\n#endif\n}\n"}),define("Shaders/Appearances/EllipsoidSurfaceAppearanceVS",[],function(){"use strict";return"attribute vec3 position3DHigh;\nattribute vec3 position3DLow;\nattribute vec2 st;\nattribute float batchId;\nvarying vec3 v_positionMC;\nvarying vec3 v_positionEC;\nvarying vec2 v_st;\nvoid main()\n{\nvec4 p = czm_computePosition();\nv_positionMC = position3DHigh + position3DLow;\nv_positionEC = (czm_modelViewRelativeToEye * p).xyz;\nv_st = st;\ngl_Position = czm_modelViewProjectionRelativeToEye * p;\n}\n"}),define("Scene/EllipsoidSurfaceAppearance",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/VertexFormat","../Shaders/Appearances/EllipsoidSurfaceAppearanceFS","../Shaders/Appearances/EllipsoidSurfaceAppearanceVS","./Appearance","./Material"],function(e,t,i,r,n,o,a,s){"use strict";function l(i){i=e(i,e.EMPTY_OBJECT);var r=e(i.translucent,!0),l=e(i.aboveGround,!1);this.material=t(i.material)?i.material:s.fromType(s.ColorType),this.translucent=e(i.translucent,!0),this._vertexShaderSource=e(i.vertexShaderSource,o),this._fragmentShaderSource=e(i.fragmentShaderSource,n),this._renderState=a.getDefaultRenderState(r,!l,i.renderState),this._closed=!1,this._flat=e(i.flat,!1),this._faceForward=e(i.faceForward,l),this._aboveGround=l}return i(l.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return l.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}}),l.VERTEX_FORMAT=r.POSITION_AND_ST,l.prototype.getFragmentShaderSource=a.prototype.getFragmentShaderSource,l.prototype.isTranslucent=a.prototype.isTranslucent,l.prototype.getRenderState=a.prototype.getRenderState,l}),define("Scene/Fog",["../Core/Cartesian3","../Core/defined","../Core/Math","./SceneMode"],function(e,t,i,r){"use strict";function n(){this.enabled=!0,this.density=2e-4,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}function o(e){var t=a,i=t.length;if(e<t[0])return h=0;if(e>t[i-1])return h=i-2;if(e>=t[h]){if(h+1<i&&e<t[h+1])return h;if(h+2<i&&e<t[h+2])return++h}else if(h-1>=0&&e>=t[h-1])return--h;var r;for(r=0;r<i-2&&!(e>=t[r]&&e<t[r+1]);++r);return h=r}for(var a=[359.393,800.749,1275.6501,2151.1192,3141.7763,4777.5198,6281.2493,12364.307,15900.765,49889.0549,78026.8259,99260.7344,120036.3873,151011.0158,156091.1953,203849.3112,274866.9803,319916.3149,493552.0528,628733.5874],s=[2e-5,2e-4,1e-4,7e-5,5e-5,4e-5,3e-5,19e-6,1e-5,85e-7,62e-7,58e-7,53e-7,52e-7,51e-7,42e-7,4e-6,34e-7,26e-7,22e-7],l=0;l<s.length;++l)s[l]*=1e6;for(var u=s[1],c=s[s.length-1],d=0;d<s.length;++d)s[d]=(s[d]-c)/(u-c);var h=0,p=new e;return n.prototype.update=function(n){if(n.fog.enabled=this.enabled){var l=n.camera,d=l.positionCartographic;if(!t(d)||d.height>8e5||n.mode!==r.SCENE3D)return void(n.fog.enabled=!1);var h=d.height,f=o(h),m=i.clamp((h-a[f])/(a[f+1]-a[f]),0,1),_=i.lerp(s[f],s[f+1],m),g=1e6*this.density;_=_*(g-g/u*c)*1e-6;var v=e.normalize(l.positionWC,p);_*=1-Math.abs(e.dot(l.directionWC,v)),n.fog.density=_,n.fog.sse=this.screenSpaceErrorFactor,n.fog.minimumBrightness=this.minimumBrightness}},n}),define("Scene/FrameRateMonitor",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Event","../Core/getTimestamp","../Core/TimeConstants"],function(e,t,i,r,n,o,a,s){"use strict";function l(i){function r(){c(n)}this._scene=i.scene,this.samplingWindow=e(i.samplingWindow,l.defaultSettings.samplingWindow),this.quietPeriod=e(i.quietPeriod,l.defaultSettings.quietPeriod),this.warmupPeriod=e(i.warmupPeriod,l.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=e(i.minimumFrameRateDuringWarmup,l.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=e(i.minimumFrameRateAfterWarmup,l.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new o,this._nominalFrameRate=new o,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;var n=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(e,t){u(n,t)}),this._hiddenPropertyName=void 0!==document.hidden?"hidden":void 0!==document.mozHidden?"mozHidden":void 0!==document.msHidden?"msHidden":void 0!==document.webkitHidden?"webkitHidden":void 0;var a=void 0!==document.hidden?"visibilitychange":void 0!==document.mozHidden?"mozvisibilitychange":void 0!==document.msHidden?"msvisibilitychange":void 0!==document.webkitHidden?"webkitvisibilitychange":void 0;this._visibilityChangeRemoveListener=void 0,t(a)&&(document.addEventListener(a,r,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(a,r,!1)})}function u(e,t){if(!(e._pauseCount>0)){var i=a();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=i+e.quietPeriod/s.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/s.SECONDS_PER_MILLISECOND;else if(i>=e._quietPeriodEndTime){e._frameTimes.push(i);var r=i-e.samplingWindow/s.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=r){for(;e._frameTimes.length>=2&&e._frameTimes[1]<r;)e._frameTimes.shift();var n=(i-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/n;var o=1e3/(i>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);n>o?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}}function c(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}return l.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8},l.fromScene=function(e){return t(e._frameRateMonitor)&&!e._frameRateMonitor.isDestroyed()||(e._frameRateMonitor=new l({scene:e})),e._frameRateMonitor},i(l.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}}),l.prototype.pause=function(){1===++this._pauseCount&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)},l.prototype.unpause=function(){--this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)},l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return this._preUpdateRemoveListener(),t(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),r(this)},l}),define("Scene/FrameState",["./SceneMode"],function(e){"use strict";function t(t,i,r){this.context=t,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=e.SCENE3D,this.morphTime=e.getMorphTime(e.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=r,this.mapProjection=void 0,this.camera=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.passes={render:!1,pick:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=i,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,density:void 0,sse:void 0,minimumBrightness:void 0},this.terrainExaggeration=1,this.shadowState={shadowsEnabled:!0,lightShadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.imagerySplitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.sunColor=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0}return t}),define("Scene/FrustumCommands",["../Core/defaultValue","../Renderer/Pass"],function(e,t){"use strict";function i(i,r){this.near=e(i,0),this.far=e(r,0);for(var n=t.NUMBER_OF_PASSES,o=new Array(n),a=new Array(n),s=0;s<n;++s)o[s]=[],a[s]=0;this.commands=o,this.indices=a}return i}),define("Shaders/GlobeFS",[],function(){"use strict";return"uniform vec4 u_initialColor;\n#if TEXTURE_UNITS > 0\nuniform sampler2D u_dayTextures[TEXTURE_UNITS];\nuniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS];\nuniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS];\n#ifdef APPLY_ALPHA\nuniform float u_dayTextureAlpha[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_SPLIT\nuniform float u_dayTextureSplit[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_BRIGHTNESS\nuniform float u_dayTextureBrightness[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_CONTRAST\nuniform float u_dayTextureContrast[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_HUE\nuniform float u_dayTextureHue[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_SATURATION\nuniform float u_dayTextureSaturation[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_GAMMA\nuniform float u_dayTextureOneOverGamma[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_IMAGERY_CUTOUT\nuniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS];\n#endif\n#ifdef APPLY_COLOR_TO_ALPHA\nuniform vec4 u_colorsToAlpha[TEXTURE_UNITS];\n#endif\nuniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS];\n#endif\n#ifdef SHOW_REFLECTIVE_OCEAN\nuniform sampler2D u_waterMask;\nuniform vec4 u_waterMaskTranslationAndScale;\nuniform float u_zoomedOutOceanSpecularIntensity;\n#endif\n#ifdef SHOW_OCEAN_WAVES\nuniform sampler2D u_oceanNormalMap;\n#endif\n#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)\nuniform vec2 u_lightingFadeDistance;\n#endif\n#ifdef TILE_LIMIT_RECTANGLE\nuniform vec4 u_cartographicLimitRectangle;\n#endif\n#ifdef GROUND_ATMOSPHERE\nuniform vec2 u_nightFadeDistance;\n#endif\n#ifdef ENABLE_CLIPPING_PLANES\nuniform sampler2D u_clippingPlanes;\nuniform mat4 u_clippingPlanesMatrix;\nuniform vec4 u_clippingPlanesEdgeStyle;\n#endif\n#if defined(FOG) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) || defined(GROUND_ATMOSPHERE)\nuniform float u_minimumBrightness;\n#endif\n#ifdef COLOR_CORRECT\nuniform vec3 u_hsbShift;\n#endif\n#ifdef HIGHLIGHT_FILL_TILE\nuniform vec4 u_fillHighlightColor;\n#endif\nvarying vec3 v_positionMC;\nvarying vec3 v_positionEC;\nvarying vec3 v_textureCoordinates;\nvarying vec3 v_normalMC;\nvarying vec3 v_normalEC;\n#ifdef APPLY_MATERIAL\nvarying float v_height;\nvarying float v_slope;\nvarying float v_aspect;\n#endif\n#if defined(FOG) || defined(GROUND_ATMOSPHERE)\nvarying float v_distance;\nvarying vec3 v_fogRayleighColor;\nvarying vec3 v_fogMieColor;\n#endif\n#ifdef GROUND_ATMOSPHERE\nvarying vec3 v_rayleighColor;\nvarying vec3 v_mieColor;\n#endif\nvec4 sampleAndBlend(\nvec4 previousColor,\nsampler2D textureToSample,\nvec2 tileTextureCoordinates,\nvec4 textureCoordinateRectangle,\nvec4 textureCoordinateTranslationAndScale,\nfloat textureAlpha,\nfloat textureBrightness,\nfloat textureContrast,\nfloat textureHue,\nfloat textureSaturation,\nfloat textureOneOverGamma,\nfloat split,\nvec4 colorToAlpha)\n{\nvec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates);\ntextureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;\nalphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates);\ntextureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y;\nvec2 translation = textureCoordinateTranslationAndScale.xy;\nvec2 scale = textureCoordinateTranslationAndScale.zw;\nvec2 textureCoordinates = tileTextureCoordinates * scale + translation;\nvec4 value = texture2D(textureToSample, textureCoordinates);\nvec3 color = value.rgb;\nfloat alpha = value.a;\n#ifdef APPLY_COLOR_TO_ALPHA\nvec3 colorDiff = abs(color.rgb - colorToAlpha.rgb);\ncolorDiff.r = max(max(colorDiff.r, colorDiff.g), colorDiff.b);\nalpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha);\n#endif\n#if !defined(APPLY_GAMMA)\nvec4 tempColor = czm_gammaCorrect(vec4(color, alpha));\ncolor = tempColor.rgb;\nalpha = tempColor.a;\n#else\ncolor = pow(color, vec3(textureOneOverGamma));\n#endif\n#ifdef APPLY_SPLIT\nfloat splitPosition = czm_imagerySplitPosition;\nif (split < 0.0 && gl_FragCoord.x > splitPosition) {\nalpha = 0.0;\n}\nelse if (split > 0.0 && gl_FragCoord.x < splitPosition) {\nalpha = 0.0;\n}\n#endif\n#ifdef APPLY_BRIGHTNESS\ncolor = mix(vec3(0.0), color, textureBrightness);\n#endif\n#ifdef APPLY_CONTRAST\ncolor = mix(vec3(0.5), color, textureContrast);\n#endif\n#ifdef APPLY_HUE\ncolor = czm_hue(color, textureHue);\n#endif\n#ifdef APPLY_SATURATION\ncolor = czm_saturation(color, textureSaturation);\n#endif\nfloat sourceAlpha = alpha * textureAlpha;\nfloat outAlpha = mix(previousColor.a, 1.0, sourceAlpha);\noutAlpha += sign(outAlpha) - 1.0;\nvec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha;\nreturn vec4(outColor, max(outAlpha, 0.0));\n}\nvec3 colorCorrect(vec3 rgb) {\n#ifdef COLOR_CORRECT\nvec3 hsb = czm_RGBToHSB(rgb);\nhsb.x += u_hsbShift.x;\nhsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0);\nhsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0;\nrgb = czm_HSBToRGB(hsb);\n#endif\nreturn rgb;\n}\nvec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates);\nvec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade);\nvoid main()\n{\n#ifdef TILE_LIMIT_RECTANGLE\nif (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x ||\nv_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y)\n{\ndiscard;\n}\n#endif\n#ifdef ENABLE_CLIPPING_PLANES\nfloat clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix);\n#endif\nvec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0));\n#ifdef SHOW_TILE_BOUNDARIES\nif (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) ||\nv_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0))\n{\ncolor = vec4(1.0, 0.0, 0.0, 1.0);\n}\n#endif\n#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR)\nvec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0));\nvec3 normalEC = czm_normal3D * normalMC;\n#endif\n#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE)\nfloat cameraDist;\nif (czm_sceneMode == czm_sceneMode2D)\n{\ncameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5;\n}\nelse if (czm_sceneMode == czm_sceneModeColumbusView)\n{\ncameraDist = -czm_view[3].z;\n}\nelse\n{\ncameraDist = length(czm_view[3]);\n}\nfloat fadeOutDist = u_lightingFadeDistance.x;\nfloat fadeInDist = u_lightingFadeDistance.y;\nif (czm_sceneMode != czm_sceneMode3D) {\nvec3 radii = czm_getWgs84EllipsoidEC().radii;\nfloat maxRadii = max(radii.x, max(radii.y, radii.z));\nfadeOutDist -= maxRadii;\nfadeInDist -= maxRadii;\n}\nfloat fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0);\n#else\nfloat fade = 0.0;\n#endif\n#ifdef SHOW_REFLECTIVE_OCEAN\nvec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy;\nvec2 waterMaskScale = u_waterMaskTranslationAndScale.zw;\nvec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation;\nwaterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y;\nfloat mask = texture2D(u_waterMask, waterMaskTextureCoordinates).r;\nif (mask > 0.0)\n{\nmat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC);\nvec2 ellipsoidTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC);\nvec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidWgs84TextureCoordinates(normalMC.zyx);\nvec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z));\ncolor = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade);\n}\n#endif\n#ifdef APPLY_MATERIAL\nczm_materialInput materialInput;\nmaterialInput.st = v_textureCoordinates.st;\nmaterialInput.normalEC = normalize(v_normalEC);\nmaterialInput.slope = v_slope;\nmaterialInput.height = v_height;\nmaterialInput.aspect = v_aspect;\nczm_material material = czm_getMaterial(materialInput);\ncolor.xyz = mix(color.xyz, material.diffuse, material.alpha);\n#endif\n#ifdef ENABLE_VERTEX_LIGHTING\nfloat diffuseIntensity = clamp(czm_getLambertDiffuse(czm_sunDirectionEC, normalize(v_normalEC)) * 0.9 + 0.3, 0.0, 1.0);\nvec4 finalColor = vec4(color.rgb * diffuseIntensity, color.a);\n#elif defined(ENABLE_DAYNIGHT_SHADING)\nfloat diffuseIntensity = clamp(czm_getLambertDiffuse(czm_sunDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0);\ndiffuseIntensity = mix(1.0, diffuseIntensity, fade);\nvec4 finalColor = vec4(color.rgb * diffuseIntensity, color.a);\n#else\nvec4 finalColor = color;\n#endif\n#ifdef ENABLE_CLIPPING_PLANES\nvec4 clippingPlanesEdgeColor = vec4(1.0);\nclippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb;\nfloat clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a;\nif (clipDistance < clippingPlanesEdgeWidth)\n{\nfinalColor = clippingPlanesEdgeColor;\n}\n#endif\n#ifdef HIGHLIGHT_FILL_TILE\nfinalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a);\n#endif\n#if defined(FOG) || defined(GROUND_ATMOSPHERE)\nvec3 fogColor = colorCorrect(v_fogMieColor) + finalColor.rgb * colorCorrect(v_fogRayleighColor);\n#ifndef HDR\nconst float fExposure = 2.0;\nfogColor = vec3(1.0) - exp(-fExposure * fogColor);\n#endif\n#endif\n#ifdef FOG\n#if defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)\nfloat darken = clamp(dot(normalize(czm_viewerPositionWC), normalize(czm_sunPositionWC)), u_minimumBrightness, 1.0);\nfogColor *= darken;\n#endif\n#ifdef HDR\nconst float modifier = 0.15;\nfinalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor, modifier), finalColor.a);\n#else\nfinalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor), finalColor.a);\n#endif\n#endif\n#ifdef GROUND_ATMOSPHERE\nif (czm_sceneMode != czm_sceneMode3D)\n{\ngl_FragColor = finalColor;\nreturn;\n}\n#if defined(PER_FRAGMENT_GROUND_ATMOSPHERE) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING))\nczm_ellipsoid ellipsoid = czm_getWgs84EllipsoidEC();\nfloat mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0));\nvec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0);\nxy *= czm_viewport.zw * mpp * 0.5;\nvec3 direction = normalize(vec3(xy, -czm_currentFrustum.x));\nczm_ray ray = czm_ray(vec3(0.0), direction);\nczm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid);\nvec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start);\nellipsoidPosition = (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz;\nAtmosphereColor atmosColor = computeGroundAtmosphereFromSpace(ellipsoidPosition, true);\nvec3 groundAtmosphereColor = colorCorrect(atmosColor.mie) + finalColor.rgb * colorCorrect(atmosColor.rayleigh);\n#ifndef HDR\ngroundAtmosphereColor = vec3(1.0) - exp(-fExposure * groundAtmosphereColor);\n#endif\nfadeInDist = u_nightFadeDistance.x;\nfadeOutDist = u_nightFadeDistance.y;\nfloat sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0);\n#ifdef HDR\nsunlitAtmosphereIntensity = max(sunlitAtmosphereIntensity * sunlitAtmosphereIntensity, 0.03);\n#endif\ngroundAtmosphereColor = mix(groundAtmosphereColor, fogColor, sunlitAtmosphereIntensity);\n#else\nvec3 groundAtmosphereColor = fogColor;\n#endif\n#ifdef HDR\ngroundAtmosphereColor = czm_saturation(groundAtmosphereColor, 1.6);\n#endif\nfinalColor = vec4(mix(finalColor.rgb, groundAtmosphereColor, fade), finalColor.a);\n#endif\ngl_FragColor = finalColor;\n}\n#ifdef SHOW_REFLECTIVE_OCEAN\nfloat waveFade(float edge0, float edge1, float x)\n{\nfloat y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\nreturn pow(1.0 - y, 5.0);\n}\nfloat linearFade(float edge0, float edge1, float x)\n{\nreturn clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0);\n}\nconst float oceanFrequencyLowAltitude = 825000.0;\nconst float oceanAnimationSpeedLowAltitude = 0.004;\nconst float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0;\nconst float oceanSpecularIntensity = 0.5;\nconst float oceanFrequencyHighAltitude = 125000.0;\nconst float oceanAnimationSpeedHighAltitude = 0.008;\nconst float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0;\nvec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade)\n{\nvec3 positionToEyeEC = -positionEyeCoordinates;\nfloat positionToEyeECLength = length(positionToEyeEC);\nvec3 normalizedpositionToEyeEC = normalize(normalize(positionToEyeEC));\nfloat waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength);\n#ifdef SHOW_OCEAN_WAVES\nfloat time = czm_frameNumber * oceanAnimationSpeedHighAltitude;\nvec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0);\nvec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude);\ntime = czm_frameNumber * oceanAnimationSpeedLowAltitude;\nnoise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0);\nvec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude);\nfloat highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength);\nfloat lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength);\nvec3 normalTangentSpace =\n(highAltitudeFade * normalTangentSpaceHighAltitude) +\n(lowAltitudeFade * normalTangentSpaceLowAltitude);\nnormalTangentSpace = normalize(normalTangentSpace);\nnormalTangentSpace.xy *= waveIntensity;\nnormalTangentSpace = normalize(normalTangentSpace);\n#else\nvec3 normalTangentSpace = vec3(0.0, 0.0, 1.0);\n#endif\nvec3 normalEC = enuToEye * normalTangentSpace;\nconst vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6);\nfloat diffuseIntensity = czm_getLambertDiffuse(czm_sunDirectionEC, normalEC) * maskValue;\nvec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade);\n#ifdef SHOW_OCEAN_WAVES\nfloat tsPerturbationRatio = normalTangentSpace.z;\nvec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity);\n#else\nvec3 nonDiffuseHighlight = vec3(0.0);\n#endif\nfloat specularIntensity = czm_getSpecular(czm_sunDirectionEC, normalizedpositionToEyeEC, normalEC, 10.0) + 0.25 * czm_getSpecular(czm_moonDirectionEC, normalizedpositionToEyeEC, normalEC, 10.0);\nfloat surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue);\nfloat specular = specularIntensity * surfaceReflectance;\n#ifdef HDR\nspecular *= 1.4;\nfloat e = 0.2;\nfloat d = 3.3;\nfloat c = 1.7;\nvec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular));\n#else\nvec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular;\n#endif\nreturn vec4(color, imageryColor.a);\n}\n#endif // #ifdef SHOW_REFLECTIVE_OCEAN\n"}),define("Shaders/GlobeVS",[],function(){"use strict";return"#ifdef QUANTIZATION_BITS12\nattribute vec4 compressed0;\nattribute float compressed1;\n#else\nattribute vec4 position3DAndHeight;\nattribute vec4 textureCoordAndEncodedNormals;\n#endif\nuniform vec3 u_center3D;\nuniform mat4 u_modifiedModelView;\nuniform mat4 u_modifiedModelViewProjection;\nuniform vec4 u_tileRectangle;\nuniform vec2 u_southAndNorthLatitude;\nuniform vec2 u_southMercatorYAndOneOverHeight;\nvarying vec3 v_positionMC;\nvarying vec3 v_positionEC;\nvarying vec3 v_textureCoordinates;\nvarying vec3 v_normalMC;\nvarying vec3 v_normalEC;\n#ifdef APPLY_MATERIAL\nvarying float v_slope;\nvarying float v_aspect;\nvarying float v_height;\n#endif\n#if defined(FOG) || defined(GROUND_ATMOSPHERE)\nvarying float v_distance;\nvarying vec3 v_fogMieColor;\nvarying vec3 v_fogRayleighColor;\n#endif\nvec4 getPosition(vec3 position, float height, vec2 textureCoordinates);\nfloat get2DYPositionFraction(vec2 textureCoordinates);\nvec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates)\n{\nreturn u_modifiedModelViewProjection * vec4(position, 1.0);\n}\nfloat get2DMercatorYPositionFraction(vec2 textureCoordinates)\n{\nconst float maxTileWidth = 0.003068;\nfloat positionFraction = textureCoordinates.y;\nfloat southLatitude = u_southAndNorthLatitude.x;\nfloat northLatitude = u_southAndNorthLatitude.y;\nif (northLatitude - southLatitude > maxTileWidth)\n{\nfloat southMercatorY = u_southMercatorYAndOneOverHeight.x;\nfloat oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y;\nfloat currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y);\ncurrentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude);\npositionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight);\n}\nreturn positionFraction;\n}\nfloat get2DGeographicYPositionFraction(vec2 textureCoordinates)\n{\nreturn textureCoordinates.y;\n}\nvec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates)\n{\nfloat yPositionFraction = get2DYPositionFraction(textureCoordinates);\nvec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);\nreturn u_modifiedModelViewProjection * rtcPosition2D;\n}\nvec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates)\n{\nreturn getPositionPlanarEarth(position, 0.0, textureCoordinates);\n}\nvec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates)\n{\nreturn getPositionPlanarEarth(position, height, textureCoordinates);\n}\nvec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates)\n{\nvec3 position3DWC = position + u_center3D;\nfloat yPositionFraction = get2DYPositionFraction(textureCoordinates);\nvec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0);\nvec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime);\nreturn czm_modelViewProjection * morphPosition;\n}\n#ifdef QUANTIZATION_BITS12\nuniform vec2 u_minMaxHeight;\nuniform mat4 u_scaleAndBias;\n#endif\nvoid main()\n{\n#ifdef QUANTIZATION_BITS12\nvec2 xy = czm_decompressTextureCoordinates(compressed0.x);\nvec2 zh = czm_decompressTextureCoordinates(compressed0.y);\nvec3 position = vec3(xy, zh.x);\nfloat height = zh.y;\nvec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z);\nheight = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x;\nposition = (u_scaleAndBias * vec4(position, 1.0)).xyz;\n#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y)\nfloat webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;\nfloat encodedNormal = compressed1;\n#elif defined(INCLUDE_WEB_MERCATOR_Y)\nfloat webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x;\nfloat encodedNormal = 0.0;\n#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)\nfloat webMercatorT = textureCoordinates.y;\nfloat encodedNormal = compressed0.w;\n#else\nfloat webMercatorT = textureCoordinates.y;\nfloat encodedNormal = 0.0;\n#endif\n#else\nvec3 position = position3DAndHeight.xyz;\nfloat height = position3DAndHeight.w;\nvec2 textureCoordinates = textureCoordAndEncodedNormals.xy;\n#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y)\nfloat webMercatorT = textureCoordAndEncodedNormals.z;\nfloat encodedNormal = textureCoordAndEncodedNormals.w;\n#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)\nfloat webMercatorT = textureCoordinates.y;\nfloat encodedNormal = textureCoordAndEncodedNormals.z;\n#elif defined(INCLUDE_WEB_MERCATOR_Y)\nfloat webMercatorT = textureCoordAndEncodedNormals.z;\nfloat encodedNormal = 0.0;\n#else\nfloat webMercatorT = textureCoordinates.y;\nfloat encodedNormal = 0.0;\n#endif\n#endif\nvec3 position3DWC = position + u_center3D;\ngl_Position = getPosition(position, height, textureCoordinates);\nv_textureCoordinates = vec3(textureCoordinates, webMercatorT);\n#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)\nv_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz;\nv_positionMC = position3DWC;\nvec3 normalMC = czm_octDecode(encodedNormal);\nv_normalMC = normalMC;\nv_normalEC = czm_normal3D * v_normalMC;\n#elif defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(GENERATE_POSITION) || defined(HDR)\nv_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz;\nv_positionMC = position3DWC;\n#endif\n#if defined(FOG) || defined(GROUND_ATMOSPHERE)\nAtmosphereColor atmosFogColor = computeGroundAtmosphereFromSpace(position3DWC, false);\nv_fogMieColor = atmosFogColor.mie;\nv_fogRayleighColor = atmosFogColor.rayleigh;\nv_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz);\n#endif\n#ifdef APPLY_MATERIAL\nfloat northPoleZ = czm_getWgs84EllipsoidEC().radii.z;\nvec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ);\nvec3 ellipsoidNormal = normalize(v_positionMC);\nvec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal));\nfloat dotProd = abs(dot(ellipsoidNormal, v_normalMC));\nv_slope = acos(dotProd);\nvec3 normalRejected = ellipsoidNormal * dotProd;\nvec3 normalProjected = v_normalMC - normalRejected;\nvec3 aspectVector = normalize(normalProjected);\nv_aspect = acos(dot(aspectVector, vectorEastMC));\nfloat determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal);\nv_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect);\nv_height = height;\n#endif\n}\n"}),define("Shaders/GroundAtmosphere",[],function(){"use strict" -;return"const float fInnerRadius = 6378137.0;\nconst float fOuterRadius = 6378137.0 * 1.025;\nconst float fOuterRadius2 = fOuterRadius * fOuterRadius;\nconst float Kr = 0.0025;\nconst float Km = 0.0015;\nconst float ESun = 15.0;\nconst float fKrESun = Kr * ESun;\nconst float fKmESun = Km * ESun;\nconst float fKr4PI = Kr * 4.0 * czm_pi;\nconst float fKm4PI = Km * 4.0 * czm_pi;\nconst float fScale = 1.0 / (fOuterRadius - fInnerRadius);\nconst float fScaleDepth = 0.25;\nconst float fScaleOverScaleDepth = fScale / fScaleDepth;\nstruct AtmosphereColor\n{\nvec3 mie;\nvec3 rayleigh;\n};\nconst int nSamples = 2;\nconst float fSamples = 2.0;\nfloat scale(float fCos)\n{\nfloat x = 1.0 - fCos;\nreturn fScaleDepth * exp(-0.00287 + x*(0.459 + x*(3.83 + x*(-6.80 + x*5.25))));\n}\nAtmosphereColor computeGroundAtmosphereFromSpace(vec3 v3Pos, bool useSunLighting)\n{\nvec3 v3InvWavelength = vec3(1.0 / pow(0.650, 4.0), 1.0 / pow(0.570, 4.0), 1.0 / pow(0.475, 4.0));\nvec3 v3Ray = v3Pos - czm_viewerPositionWC;\nfloat fFar = length(v3Ray);\nv3Ray /= fFar;\nfloat fCameraHeight = length(czm_viewerPositionWC);\nfloat fCameraHeight2 = fCameraHeight * fCameraHeight;\nfloat B = 2.0 * length(czm_viewerPositionWC) * dot(normalize(czm_viewerPositionWC), v3Ray);\nfloat C = fCameraHeight2 - fOuterRadius2;\nfloat fDet = max(0.0, B*B - 4.0 * C);\nfloat fNear = 0.5 * (-B - sqrt(fDet));\nvec3 v3Start = czm_viewerPositionWC + v3Ray * fNear;\nfFar -= fNear;\nfloat fDepth = exp((fInnerRadius - fOuterRadius) / fScaleDepth);\nfloat fLightAngle = czm_branchFreeTernary(useSunLighting, dot(czm_sunDirectionWC, v3Pos) / length(v3Pos), 1.0);\nfloat fCameraAngle = dot(-v3Ray, v3Pos) / length(v3Pos);\nfloat fCameraScale = scale(fCameraAngle);\nfloat fLightScale = scale(fLightAngle);\nfloat fCameraOffset = fDepth*fCameraScale;\nfloat fTemp = (fLightScale + fCameraScale);\nfloat fSampleLength = fFar / fSamples;\nfloat fScaledLength = fSampleLength * fScale;\nvec3 v3SampleRay = v3Ray * fSampleLength;\nvec3 v3SamplePoint = v3Start + v3SampleRay * 0.5;\nvec3 v3FrontColor = vec3(0.0);\nvec3 v3Attenuate = vec3(0.0);\nfor(int i=0; i<nSamples; i++)\n{\nfloat fHeight = length(v3SamplePoint);\nfloat fDepth = exp(fScaleOverScaleDepth * (fInnerRadius - fHeight));\nfloat fScatter = fDepth*fTemp - fCameraOffset;\nv3Attenuate = exp(-fScatter * (v3InvWavelength * fKr4PI + fKm4PI));\nv3FrontColor += v3Attenuate * (fDepth * fScaledLength);\nv3SamplePoint += v3SampleRay;\n}\nAtmosphereColor color;\ncolor.mie = v3FrontColor * (v3InvWavelength * fKrESun + fKmESun);\ncolor.rayleigh = v3Attenuate;\nreturn color;\n}\n"}),define("Scene/GlobeSurfaceShaderSet",["../Core/defined","../Core/destroyObject","../Core/TerrainQuantization","../Renderer/ShaderProgram","./getClippingFunction","./SceneMode"],function(e,t,i,r,n,o){"use strict";function a(e,t,i,r,n){this.numberOfDayTextures=e,this.flags=t,this.material=i,this.shaderProgram=r,this.clippingShaderState=n}function s(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function l(e){var t;switch(e){case o.SCENE3D:t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }";break;case o.SCENE2D:case o.COLUMBUS_VIEW:t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }";break;case o.MORPHING:t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }"}return t}function u(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}return s.prototype.getShaderProgram=function(t){var o=t.frameState,s=t.surfaceTile,c=t.numberOfDayTextures,d=t.applyBrightness,h=t.applyContrast,p=t.applyHue,f=t.applySaturation,m=t.applyGamma,_=t.applyAlpha,g=t.applySplit,v=t.showReflectiveOcean,y=t.showOceanWaves,C=t.enableLighting,b=t.showGroundAtmosphere,S=t.perFragmentGroundAtmosphere,T=t.hasVertexNormals,E=t.useWebMercatorProjection,A=t.enableFog,w=t.enableClippingPlanes,x=t.clippingPlanes,P=t.clippedByBoundaries,D=t.hasImageryLayerCutout,I=t.colorCorrect,M=t.highlightFillTile,R=t.colorToAlpha,O=0,L="",N=s.renderedMesh,F=N.encoding;F.quantization===i.BITS12&&(O=1,L="QUANTIZATION_BITS12");var B=0,z="";e(s.vertexArray)&&e(s.terrainData)&&!s.terrainData._createdByUpsampling||(B=1,z="DISABLE_GL_POSITION_LOG_DEPTH");var k=0,V="";P&&(k=1,V="TILE_LIMIT_RECTANGLE");var U=0,G="";D&&(U=1,G="APPLY_IMAGERY_CUTOUT");var H=o.mode,W=H|d<<2|h<<3|p<<4|f<<5|m<<6|_<<7|v<<8|y<<9|C<<10|b<<11|S<<12|T<<13|E<<14|A<<15|O<<16|g<<17|w<<18|B<<19|k<<20|U<<21|I<<22|M<<23|R<<24,q=0;e(x)&&x.length>0&&(q=w?x.clippingPlanesState:0);var Y=s.surfaceShader;if(e(Y)&&Y.numberOfDayTextures===c&&Y.flags===W&&Y.material===this.material&&Y.clippingShaderState===q)return Y.shaderProgram;var j=this._shadersByTexturesFlags[c];if(e(j)||(j=this._shadersByTexturesFlags[c]=[]),Y=j[W],!e(Y)||Y.material!==this.material||Y.clippingShaderState!==q){var X=this.baseVertexShaderSource.clone(),Q=this.baseFragmentShaderSource.clone();0!==q&&Q.sources.unshift(n(x,o.context)),X.defines.push(L,z),Q.defines.push("TEXTURE_UNITS "+c,V,G),d&&Q.defines.push("APPLY_BRIGHTNESS"),h&&Q.defines.push("APPLY_CONTRAST"),p&&Q.defines.push("APPLY_HUE"),f&&Q.defines.push("APPLY_SATURATION"),m&&Q.defines.push("APPLY_GAMMA"),_&&Q.defines.push("APPLY_ALPHA"),v&&(Q.defines.push("SHOW_REFLECTIVE_OCEAN"),X.defines.push("SHOW_REFLECTIVE_OCEAN")),y&&Q.defines.push("SHOW_OCEAN_WAVES"),R&&Q.defines.push("APPLY_COLOR_TO_ALPHA"),C&&(T?(X.defines.push("ENABLE_VERTEX_LIGHTING"),Q.defines.push("ENABLE_VERTEX_LIGHTING")):(X.defines.push("ENABLE_DAYNIGHT_SHADING"),Q.defines.push("ENABLE_DAYNIGHT_SHADING"))),b&&(X.defines.push("GROUND_ATMOSPHERE"),Q.defines.push("GROUND_ATMOSPHERE"),S&&Q.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE")),X.defines.push("INCLUDE_WEB_MERCATOR_Y"),Q.defines.push("INCLUDE_WEB_MERCATOR_Y"),A&&(X.defines.push("FOG"),Q.defines.push("FOG")),g&&Q.defines.push("APPLY_SPLIT"),w&&Q.defines.push("ENABLE_CLIPPING_PLANES"),I&&Q.defines.push("COLOR_CORRECT"),M&&Q.defines.push("HIGHLIGHT_FILL_TILE");var K=" vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates)\n {\n vec4 color = initialColor;\n";D&&(K+=" vec4 cutoutAndColorResult;\n bool texelUnclipped;\n");for(var Z=0;Z<c;++Z)K+=D?" cutoutAndColorResult = u_dayTextureCutoutRectangles["+Z+"];\n texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y;\n cutoutAndColorResult = sampleAndBlend(\n":" color = sampleAndBlend(\n",K+=" color,\n u_dayTextures["+Z+"],\n u_dayTextureUseWebMercatorT["+Z+"] ? textureCoordinates.xz : textureCoordinates.xy,\n u_dayTextureTexCoordsRectangle["+Z+"],\n u_dayTextureTranslationAndScale["+Z+"],\n "+(_?"u_dayTextureAlpha["+Z+"]":"1.0")+",\n "+(d?"u_dayTextureBrightness["+Z+"]":"0.0")+",\n "+(h?"u_dayTextureContrast["+Z+"]":"0.0")+",\n "+(p?"u_dayTextureHue["+Z+"]":"0.0")+",\n "+(f?"u_dayTextureSaturation["+Z+"]":"0.0")+",\n "+(m?"u_dayTextureOneOverGamma["+Z+"]":"0.0")+",\n "+(g?"u_dayTextureSplit["+Z+"]":"0.0")+",\n "+(R?"u_colorsToAlpha["+Z+"]":"vec4(0.0)")+"\n );\n",D&&(K+=" color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color);\n");K+=" return color;\n }",Q.sources.push(K),X.sources.push(l(H)),X.sources.push(u(E));var J=r.fromCache({context:o.context,vertexShaderSource:X,fragmentShaderSource:Q,attributeLocations:F.getAttributeLocations()});Y=j[W]=new a(c,W,this.material,J,q)}return s.surfaceShader=Y,Y.shaderProgram},s.prototype.destroy=function(){var i,r,n=this._shadersByTexturesFlags;for(var o in n)if(n.hasOwnProperty(o)){var a=n[o];if(!e(a))continue;for(i in a)a.hasOwnProperty(i)&&(r=a[i],e(r)&&r.shaderProgram.destroy())}return t(this)},s}),define("Scene/ImageryState",["../Core/freezeObject"],function(e){"use strict";return e({UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7})}),define("Scene/TileSelectionResult",[],function(){"use strict";var e={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(t){return t>=e.RENDERED_AND_KICKED},originalResult:function(e){return 3&e},kick:function(e){return 4|e}};return e}),define("Scene/QuadtreeTileLoadState",["../Core/freezeObject"],function(e){"use strict";return e({START:0,LOADING:1,DONE:2,FAILED:3})}),define("Scene/TerrainState",["../Core/freezeObject"],function(e){"use strict";return e({FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6})}),define("Scene/GlobeSurfaceTile",["../Core/BoundingSphere","../Core/Cartesian3","../Core/Cartesian4","../Core/defined","../Core/defineProperties","../Core/IndexDatatype","../Core/IntersectionTests","../Core/OrientedBoundingBox","../Core/PixelFormat","../Core/Request","../Core/RequestState","../Core/RequestType","../Core/TileProviderError","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/PixelDatatype","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Renderer/VertexArray","./ImageryState","./QuadtreeTileLoadState","./SceneMode","./TerrainState","./TileBoundingRegion","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x){"use strict";function P(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new i(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.orientedBoundingBox=void 0,this.boundingVolumeSourceTile=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new t,this.terrainState=A.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new e,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}function D(e,i,n,o,a,s){if(e.decodePosition(o,a,s),r(i)&&i!==E.SCENE3D){var l=n.ellipsoid,u=l.cartesianToCartographic(s);n.project(u,s),t.fromElements(s.z,s.x,s.y,s)}return s}function I(e,t,i){var n=t.getTileDataAvailable(e.x,e.y,e.level);if(!r(n)&&r(e.parent)){var o=e.parent,a=o.data;r(a)&&r(a.terrainData)&&(n=a.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}!1===n&&(e.data.terrainState=A.FAILED);for(var s=0,l=i.length;s<l;++s){var u=i.get(s);u.show&&u._createTileImagerySkeletons(e,t)}}function M(e,t,i,n,o){var a=e.data,s=e.parent;if(a.terrainState===A.FAILED&&void 0!==s){void 0!==s.data&&void 0!==s.data.terrainData&&!1!==s.data.terrainData.canUpsample||P.processStateMachine(s,t,i,n,!0)}if(a.terrainState===A.FAILED&&R(a,e,t,i,e.x,e.y,e.level),a.terrainState===A.UNLOADED&&O(a,i,e.x,e.y,e.level),a.terrainState===A.RECEIVED&&L(a,t,i,e.x,e.y,e.level),a.terrainState===A.TRANSFORMED&&N(a,t.context,i,e.x,e.y,e.level,o),a.terrainState>=A.RECEIVED&&void 0===a.waterMaskTexture&&i.hasWaterMask){if(void 0!==a.terrainData.waterMask)B(t.context,a);else{var l=a._findAncestorTileWithTerrainData(e);r(l)&&r(l.data.waterMaskTexture)&&(a.waterMaskTexture=l.data.waterMaskTexture,++a.waterMaskTexture.referenceCount,a._computeWaterMaskTranslationAndScale(e,l,a.waterMaskTranslationAndScale))}}}function R(e,t,i,n,o,a,s){var l=t.parent;if(!l)return void(t.state=T.FAILED);var u=l.data.terrainData,c=l.x,d=l.y,h=l.level;if(r(u)){var p=u.upsample(n.tilingScheme,c,d,h,o,a,s);r(p)&&(e.terrainState=A.RECEIVING,x(p,function(t){e.terrainData=t,e.terrainState=A.RECEIVED},function(){e.terrainState=A.FAILED}))}}function O(e,t,i,n,o){function a(t){e.terrainData=t,e.terrainState=A.RECEIVED,e.request=void 0}function s(){if(e.request.state===c.CANCELLED)return e.terrainData=void 0,e.terrainState=A.UNLOADED,void(e.request=void 0);e.terrainState=A.FAILED,e.request=void 0;var r="Failed to obtain terrain tile X: "+i+" Y: "+n+" Level: "+o+".";t._requestError=h.handleError(t._requestError,t,t.errorEvent,r,i,n,o,l)}function l(){var l=new u({throttle:!1,throttleByServer:!0,type:d.TERRAIN});e.request=l;var c=t.requestTileGeometry(i,n,o,l);r(c)?(e.terrainState=A.RECEIVING,x(c,a,s)):(e.terrainState=A.UNLOADED,e.request=void 0)}l()}function L(e,i,n,o,a,l){var u=n.tilingScheme,c=e.terrainData,d=c.createMesh(u,o,a,l,i.terrainExaggeration);r(d)&&(e.terrainState=A.TRANSFORMING,x(d,function(i){e.mesh=i,e.orientedBoundingBox=s.clone(i.orientedBoundingBox,e.orientedBoundingBox),e.occludeePointInScaledSpace=t.clone(i.occludeePointInScaledSpace,e.occludeePointInScaledSpace),e.terrainState=A.TRANSFORMED},function(){e.terrainState=A.FAILED}))}function N(e,t,i,r,n,o,a){e.vertexArray=P._createVertexArrayForMesh(t,e.mesh),e.terrainState=A.READY,e.fill=e.fill&&e.fill.destroy(a)}function F(e){var t=e.cache.tile_waterMaskData;if(!r(t)){var i=g.create({context:e,pixelFormat:l.LUMINANCE,pixelDatatype:m.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});i.referenceCount=1;t={allWaterTexture:i,sampler:new _({wrapS:C.CLAMP_TO_EDGE,wrapT:C.CLAMP_TO_EDGE,minificationFilter:y.LINEAR,magnificationFilter:v.LINEAR}),destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function B(e,t){var r,n=t.terrainData.waterMask,o=F(e),a=n.length;if(1===a){if(0===n[0])return;r=o.allWaterTexture}else{var s=Math.sqrt(a);r=g.create({context:e,pixelFormat:l.LUMINANCE,pixelDatatype:m.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:o.sampler,flipY:!1}),r.referenceCount=0}++r.referenceCount,t.waterMaskTexture=r,i.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}n(P.prototype,{eligibleForUnloading:{get:function(){for(var e=this.terrainState,t=e===A.RECEIVING||e===A.TRANSFORMING,i=!t,n=this.imagery,o=0,a=n.length;i&&o<a;++o){var s=n[o];i=!r(s.loadingImagery)||s.loadingImagery.state!==S.TRANSITIONING}return i}},renderedMesh:{get:function(){return r(this.vertexArray)?this.mesh:r(this.fill)?this.fill.mesh:void 0}}});var z=new t,k=new t,V=new t,U=new t;return P.prototype.pick=function(e,i,n,o,s){var l=this.renderedMesh;if(r(l))for(var u=l.vertices,c=l.indices,d=l.encoding,h=c.length,p=0;p<h;p+=3){var f=c[p],m=c[p+1],_=c[p+2],g=D(d,i,n,u,f,z),v=D(d,i,n,u,m,k),y=D(d,i,n,u,_,V),C=a.rayTriangle(e,g,v,y,o,U);if(r(C))return t.clone(C,s)}},P.prototype.freeResources=function(){r(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,0===this.waterMaskTexture.referenceCount&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=A.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();for(var e=this.imagery,t=0,i=e.length;t<i;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()},P.prototype.freeVertexArray=function(){P._freeVertexArray(this.vertexArray),this.vertexArray=void 0,P._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0},P.initialize=function(e,t,i){var n=e.data;r(n)||(n=e.data=new P),e.state===T.START&&(I(e,t,i),e.state=T.LOADING)},P.processStateMachine=function(e,t,i,n,o,a){P.initialize(e,i,n);var s=e.data;if(e.state===T.LOADING&&M(e,t,i,n,o),!a){var l=e.renderable;e.renderable=r(s.vertexArray);var u=s.terrainState===A.READY;e.upsampledFromParent=r(s.terrainData)&&s.terrainData.wasCreatedByUpsampling();var c=s.processImagery(e,i,t);if(u&&c){var d=e._loadedCallbacks,h={};for(var p in d)d.hasOwnProperty(p)&&(d[p](e)||(h[p]=d[p]));e._loadedCallbacks=h,e.state=T.DONE}l&&(e.renderable=!0)}},P.prototype.processImagery=function(e,t,i,n){var o,a,s=e.data,l=e.upsampledFromParent,u=e.renderable,c=!0,d=s.imagery;for(o=0,a=d.length;o<a;++o){var h=d[o];if(r(h.loadingImagery)){if(h.loadingImagery.state===S.PLACEHOLDER){var p=h.loadingImagery.imageryLayer;if(p.imageryProvider.ready){h.freeResources(),d.splice(o,1),p._createTileImagerySkeletons(e,t,o),--o,a=d.length;continue}l=!1}var f=h.processStateMachine(e,i,n);c=c&&f,u=u&&(f||r(h.readyImagery)),l=l&&r(h.loadingImagery)&&(h.loadingImagery.state===S.FAILED||h.loadingImagery.state===S.INVALID)}else l=!1}return e.upsampledFromParent=l,e.renderable=u,c},P._createVertexArrayForMesh=function(e,t){var i=t.vertices,n=p.createVertexBuffer({context:e,typedArray:i,usage:f.STATIC_DRAW}),a=t.encoding.getAttributes(n),s=t.indices.indexBuffers||{},l=s[e.id];if(!r(l)||l.isDestroyed()){var u=t.indices;l=p.createIndexBuffer({context:e,typedArray:u,usage:f.STATIC_DRAW,indexDatatype:o.fromSizeInBytes(u.BYTES_PER_ELEMENT)}),l.vertexArrayDestroyable=!1,l.referenceCount=1,s[e.id]=l,t.indices.indexBuffers=s}else++l.referenceCount;return new b({context:e,attributes:a,indexBuffer:l})},P._freeVertexArray=function(e){if(r(e)){var t=e.indexBuffer;e.destroy(),r(t)&&!t.isDestroyed()&&r(t.referenceCount)&&0===--t.referenceCount&&t.destroy()}},P.prototype._findAncestorTileWithTerrainData=function(e){for(var t=e.parent;r(t)&&(!r(t.data)||!r(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t},P.prototype._computeWaterMaskTranslationAndScale=function(e,t,i){var r=t.rectangle,n=e.rectangle,o=n.width,a=n.height,s=o/r.width,l=a/r.height;return i.x=s*(n.west-r.west)/o,i.y=l*(n.south-r.south)/a,i.z=s,i.w=l,i},P}),define("Shaders/ReprojectWebMercatorFS",[],function(){"use strict";return"uniform sampler2D u_texture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\ngl_FragColor = texture2D(u_texture, v_textureCoordinates);\n}\n"}),define("Shaders/ReprojectWebMercatorVS",[],function(){"use strict";return"attribute vec4 position;\nattribute float webMercatorT;\nuniform vec2 u_textureDimensions;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nv_textureCoordinates = vec2(position.x, webMercatorT);\ngl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0));\n}\n"}),define("Scene/Imagery",["../Core/defined","../Core/destroyObject","./ImageryState"],function(e,t,i){"use strict";function r(t,r,n,o,a){if(this.imageryLayer=t,this.x=r,this.y=n,this.level=o,this.request=void 0,0!==o){var s=r/2|0,l=n/2|0,u=o-1;this.parent=t.getImageryFromCache(s,l,u)}if(this.state=i.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!e(a)&&t.imageryProvider.ready){a=t.imageryProvider.tilingScheme.tileXYToRectangle(r,n,o)}this.rectangle=a}return r.createPlaceholder=function(e){var t=new r(e,0,0,0);return t.addReference(),t.state=i.PLACEHOLDER,t},r.prototype.addReference=function(){++this.referenceCount},r.prototype.releaseReference=function(){return--this.referenceCount,0===this.referenceCount?(this.imageryLayer.removeImageryFromCache(this),e(this.parent)&&this.parent.releaseReference(),e(this.image)&&e(this.image.destroy)&&this.image.destroy(),e(this.texture)&&this.texture.destroy(),e(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),t(this),0):this.referenceCount},r.prototype.processStateMachine=function(e,t,r){this.state!==i.UNLOADED||r||(this.state=i.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===i.RECEIVED&&(this.state=i.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));var n=this.state===i.READY&&t&&!this.texture;(this.state===i.TEXTURE_LOADED||n)&&(this.state=i.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))},r}),define("Scene/ImagerySplitDirection",["../Core/freezeObject"],function(e){"use strict";return e({LEFT:-1,NONE:0,RIGHT:1})}),define("Scene/TileImagery",["../Core/defined","./ImageryState"],function(e,t){"use strict";function i(e,t,i){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=i}return i.prototype.freeResources=function(){e(this.readyImagery)&&this.readyImagery.releaseReference(),e(this.loadingImagery)&&this.loadingImagery.releaseReference()},i.prototype.processStateMachine=function(i,r,n){var o=this.loadingImagery,a=o.imageryLayer;if(o.processStateMachine(r,!this.useWebMercatorT,n),o.state===t.READY)return e(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=a._calculateTextureTranslationAndScale(i,this),!0;for(var s,l=o.parent;e(l)&&(l.state!==t.READY||!this.useWebMercatorT&&!e(l.texture));)l.state!==t.FAILED&&l.state!==t.INVALID&&(s=s||l),l=l.parent;return this.readyImagery!==l&&(e(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=l,e(l)&&(l.addReference(),this.textureTranslationAndScale=a._calculateTextureTranslationAndScale(i,this))),(o.state===t.FAILED||o.state===t.INVALID)&&(!e(s)||(s.processStateMachine(r,!this.useWebMercatorT,n),!1))},i}),define("Scene/ImageryLayer",["../Core/Cartesian2","../Core/Cartesian4","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/GeographicProjection","../Core/GeographicTilingScheme","../Core/IndexDatatype","../Core/Math","../Core/PixelFormat","../Core/Rectangle","../Core/Request","../Core/RequestState","../Core/RequestType","../Core/TerrainProvider","../Core/TileProviderError","../Core/WebMercatorProjection","../Core/WebMercatorTilingScheme","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ComputeCommand","../Renderer/ContextLimits","../Renderer/MipmapHint","../Renderer/Sampler","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Renderer/VertexArray","../Shaders/ReprojectWebMercatorFS","../Shaders/ReprojectWebMercatorVS","../ThirdParty/when","./Imagery","./ImagerySplitDirection","./ImageryState","./TileImagery"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V){"use strict";function U(e,t){this._imageryProvider=e,t=i(t,{}),this.alpha=i(t.alpha,i(e.defaultAlpha,1)),this.brightness=i(t.brightness,i(e.defaultBrightness,U.DEFAULT_BRIGHTNESS)),this.contrast=i(t.contrast,i(e.defaultContrast,U.DEFAULT_CONTRAST)),this.hue=i(t.hue,i(e.defaultHue,U.DEFAULT_HUE)),this.saturation=i(t.saturation,i(e.defaultSaturation,U.DEFAULT_SATURATION)),this.gamma=i(t.gamma,i(e.defaultGamma,U.DEFAULT_GAMMA)),this.splitDirection=i(t.splitDirection,i(e.defaultSplit,U.DEFAULT_SPLIT)),this.minificationFilter=i(t.minificationFilter,i(e.defaultMinificationFilter,U.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=i(t.magnificationFilter,i(e.defaultMagnificationFilter,U.DEFAULT_MAGNIFICATION_FILTER)),this.show=i(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=i(t.rectangle,p.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new V(B.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=i(t.colorToAlphaThreshold,U.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}function G(e,t,i){return e+":"+t+":"+i}function H(e,t,i){return JSON.stringify([e,t,i])}function W(e,t,i,n){var o=t.cache.imageryLayer_reproject;if(!r(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){r(this.framebuffer)&&this.framebuffer.destroy(),r(this.vertexArray)&&this.vertexArray.destroy(),r(this.shaderProgram)&&this.shaderProgram.destroy()}};for(var a=new Float32Array(256),s=0,l=0;l<64;++l){var u=l/63;a[s++]=0,a[s++]=u,a[s++]=1,a[s++]=u}var h={position:0,webMercatorT:1},p=g.getRegularGridIndices(2,64),f=b.createIndexBuffer({context:t,typedArray:p,usage:S.STATIC_DRAW,indexDatatype:c.UNSIGNED_SHORT});o.vertexArray=new O({context:t,attributes:[{index:h.position,vertexBuffer:b.createVertexBuffer({context:t,typedArray:a,usage:S.STATIC_DRAW}),componentsPerAttribute:2},{index:h.webMercatorT,vertexBuffer:b.createVertexBuffer({context:t,sizeInBytes:512,usage:S.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:f});var m=new P({sources:[N]});o.shaderProgram=x.fromCache({context:t,vertexShaderSource:m,fragmentShaderSource:L,attributeLocations:h}),o.sampler=new w({wrapS:R.CLAMP_TO_EDGE,wrapT:R.CLAMP_TO_EDGE,minificationFilter:M.LINEAR,magnificationFilter:I.LINEAR})}i.sampler=o.sampler;var _=i.width,v=i.height;K.textureDimensions.x=_,K.textureDimensions.y=v,K.texture=i;var y=Math.sin(n.south),C=.5*Math.log((1+y)/(1-y));y=Math.sin(n.north);var T=.5*Math.log((1+y)/(1-y)),E=1/(T-C),F=new D({context:t,width:_,height:v,pixelFormat:i.pixelFormat,pixelDatatype:i.pixelDatatype,preMultiplyAlpha:i.preMultiplyAlpha});d.isPowerOfTwo(_)&&d.isPowerOfTwo(v)&&F.generateMipmap(A.NICEST);for(var B=n.south,z=n.north,k=Z,V=0,U=0;U<64;++U){var G=U/63,H=d.lerp(B,z,G);y=Math.sin(H);var W=.5*Math.log((1+y)/(1-y)),q=(W-C)*E;k[V++]=q,k[V++]=q}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(k),e.shaderProgram=o.shaderProgram,e.outputTexture=F,e.uniformMap=K,e.vertexArray=o.vertexArray}function q(e,t,i){var r=e._imageryProvider,n=r.tilingScheme,o=n.ellipsoid,a=e._imageryProvider.tilingScheme.projection instanceof l?1:Math.cos(i),s=n.rectangle,u=o.maximumRadius*s.width*a/(r.tileWidth*n.getNumberOfXTilesAtLevel(0)),c=u/t,d=Math.log(c)/Math.log(2);return 0|Math.round(d)}n(U.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},rectangle:{get:function(){return this._rectangle}}}),U.DEFAULT_BRIGHTNESS=1,U.DEFAULT_CONTRAST=1,U.DEFAULT_HUE=0,U.DEFAULT_SATURATION=1,U.DEFAULT_GAMMA=1,U.DEFAULT_SPLIT=z.NONE,U.DEFAULT_MINIFICATION_FILTER=M.LINEAR,U.DEFAULT_MAGNIFICATION_FILTER=I.LINEAR,U.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004,U.prototype.isBaseLayer=function(){return this._isBaseLayer},U.prototype.isDestroyed=function(){return!1},U.prototype.destroy=function(){return o(this)};var Y=new p,j=new p,X=new p,Q=new p;U.prototype.getViewableRectangle=function(){var e=this._imageryProvider,t=this._rectangle;return e.readyPromise.then(function(){return p.intersection(e.rectangle,t)})},U.prototype._createTileImagerySkeletons=function(e,i,n){var o=e.data;if(r(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel)return!1;if(r(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;var a=this._imageryProvider;if(r(n)||(n=o.imagery.length),!a.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),o.imagery.splice(n,0,this._skeletonPlaceholder),!0;var s=a.tilingScheme.projection instanceof y&&e.rectangle.north<y.MaximumLatitude&&e.rectangle.south>-y.MaximumLatitude,l=p.intersection(a.rectangle,this._rectangle,Y),u=p.intersection(e.rectangle,l,j);if(!r(u)){if(!this.isBaseLayer())return!1;var c=l,d=e.rectangle;u=j,d.south>=c.north?u.north=u.south=c.north:d.north<=c.south?u.north=u.south=c.south:(u.south=Math.max(d.south,c.south),u.north=Math.min(d.north,c.north)),d.west>=c.east?u.west=u.east=c.east:d.east<=c.west?u.west=u.east=c.west:(u.west=Math.max(d.west,c.west),u.east=Math.min(d.east,c.east))}var h=0;u.south>0?h=u.south:u.north<0&&(h=u.north);var f=1*i.getLevelMaximumGeometricError(e.level),m=q(this,f,h);m=Math.max(0,m);var _=a.maximumLevel;if(m>_&&(m=_),r(a.minimumLevel)){var g=a.minimumLevel;m<g&&(m=g)}var v=a.tilingScheme,C=v.positionToTileXY(p.northwest(u),m),b=v.positionToTileXY(p.southeast(u),m),S=e.rectangle.width/512,T=e.rectangle.height/512,E=v.tileXYToRectangle(C.x,C.y,m);Math.abs(E.south-e.rectangle.north)<T&&C.y<b.y&&++C.y,Math.abs(E.east-e.rectangle.west)<S&&C.x<b.x&&++C.x;var A=v.tileXYToRectangle(b.x,b.y,m);Math.abs(A.north-e.rectangle.south)<T&&b.y>C.y&&--b.y,Math.abs(A.west-e.rectangle.east)<S&&b.x>C.x&&--b.x;var w,x=p.clone(e.rectangle,Q),P=v.tileXYToRectangle(C.x,C.y,m),D=p.intersection(P,l,X);s?(v.rectangleToNativeRectangle(x,x),v.rectangleToNativeRectangle(P,P),v.rectangleToNativeRectangle(D,D),v.rectangleToNativeRectangle(l,l),w=v.tileXYToNativeRectangle.bind(v),S=x.width/512,T=x.height/512):w=v.tileXYToRectangle.bind(v);var I,M,R=0,O=1;!this.isBaseLayer()&&Math.abs(D.west-x.west)>=S&&(R=Math.min(1,(D.west-x.west)/x.width)),!this.isBaseLayer()&&Math.abs(D.north-x.north)>=T&&(O=Math.max(0,(D.north-x.south)/x.height));for(var L=O,N=C.x;N<=b.x;N++)if(I=R,P=w(N,C.y,m),D=p.simpleIntersection(P,l,X),r(D)){R=Math.min(1,(D.east-x.west)/x.width),N===b.x&&(this.isBaseLayer()||Math.abs(D.east-x.east)<S)&&(R=1),O=L;for(var F=C.y;F<=b.y;F++)if(M=O,P=w(N,F,m),D=p.simpleIntersection(P,l,X),r(D)){O=Math.max(0,(D.south-x.south)/x.height),F===b.y&&(this.isBaseLayer()||Math.abs(D.south-x.south)<T)&&(O=0);var B=new t(I,O,R,M),z=this.getImageryFromCache(N,F,m);o.imagery.splice(n,0,new V(z,B,s)),++n}}return!0},U.prototype._calculateTextureTranslationAndScale=function(e,i){var r=i.readyImagery.rectangle,n=e.rectangle;if(i.useWebMercatorT){var o=i.readyImagery.imageryLayer.imageryProvider.tilingScheme;r=o.rectangleToNativeRectangle(r,Y),n=o.rectangleToNativeRectangle(n,Q)}var a=n.width,s=n.height,l=a/r.width,u=s/r.height;return new t(l*(n.west-r.west)/a,u*(n.south-r.south)/s,l,u)},U.prototype._requestImagery=function(e){function t(t){if(!r(t))return i();e.image=t,e.state=k.RECEIVED,e.request=void 0,v.handleSuccess(a._requestImageError)}function i(t){if(e.request.state===m.CANCELLED)return e.state=k.UNLOADED,void(e.request=void 0);e.state=k.FAILED,e.request=void 0;var i="Failed to obtain image tile X: "+e.x+" Y: "+e.y+" Level: "+e.level+".";a._requestImageError=v.handleError(a._requestImageError,o,o.errorEvent,i,e.x,e.y,e.level,n,t)}function n(){var n=new f({throttle:!1,throttleByServer:!0,type:_.IMAGERY});e.request=n,e.state=k.TRANSITIONING;var a=o.requestImage(e.x,e.y,e.level,n);if(!r(a))return e.state=k.UNLOADED,void(e.request=void 0);r(o.getTileCredits)&&(e.credits=o.getTileCredits(e.x,e.y,e.level)),F(a,t,i)}var o=this._imageryProvider,a=this;n()},U.prototype._createTextureWebGL=function(e,t){var i=new w({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),n=t.image;return new D(r(n.internalFormat)?{context:e,pixelFormat:n.internalFormat,width:n.width,height:n.height,source:{arrayBufferView:n.bufferView},sampler:i}:{context:e,source:n,pixelFormat:this._imageryProvider.hasAlphaChannel?h.RGBA:h.RGB,sampler:i})},U.prototype._createTexture=function(e,t){var i=this._imageryProvider,n=t.image;if(r(i.tileDiscardPolicy)){var o=i.tileDiscardPolicy;if(r(o)){if(!o.isReady())return void(t.state=k.RECEIVED);if(o.shouldDiscardImage(n))return void(t.state=k.INVALID)}}var a=this._createTextureWebGL(e,t);i.tilingScheme.projection instanceof y?t.textureWebMercator=a:t.texture=a,t.image=void 0,t.state=k.TEXTURE_LOADED},U.prototype._finalizeReprojectTexture=function(e,t){var n=this.minificationFilter,o=this.magnificationFilter;if(n===M.LINEAR&&o===I.LINEAR&&!h.isCompressedFormat(t.pixelFormat)&&d.isPowerOfTwo(t.width)&&d.isPowerOfTwo(t.height)){n=M.LINEAR_MIPMAP_LINEAR;var a=E.maximumTextureFilterAnisotropy,s=Math.min(a,i(this._maximumAnisotropy,a)),l=G(n,o,s),u=e.cache.imageryLayerMipmapSamplers;r(u)||(u={},e.cache.imageryLayerMipmapSamplers=u);var c=u[l];r(c)||(c=u[l]=new w({wrapS:R.CLAMP_TO_EDGE,wrapT:R.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:o,maximumAnisotropy:s})),t.generateMipmap(A.NICEST),t.sampler=c}else{var p=G(n,o,0),f=e.cache.imageryLayerNonMipmapSamplers;r(f)||(f={},e.cache.imageryLayerNonMipmapSamplers=f);var m=f[p];r(m)||(m=f[p]=new w({wrapS:R.CLAMP_TO_EDGE,wrapT:R.CLAMP_TO_EDGE,minificationFilter:n, -magnificationFilter:o})),t.sampler=m}},U.prototype._reprojectTexture=function(e,t,r){var n=t.textureWebMercator||t.texture,o=t.rectangle,a=e.context;if((r=i(r,!0))&&!(this._imageryProvider.tilingScheme.projection instanceof l)&&o.width/n.width>1e-5){var s=this;t.addReference();var u=new T({persists:!0,owner:this,preExecute:function(e){W(e,a,n,t.rectangle)},postExecute:function(e){t.texture=e,s._finalizeReprojectTexture(a,e),t.state=k.READY,t.releaseReference()}});this._reprojectComputeCommands.push(u)}else r&&(t.texture=n),this._finalizeReprojectTexture(a,n),t.state=k.READY},U.prototype.queueReprojectionCommands=function(e){for(var t=this._reprojectComputeCommands,i=t.length,r=0;r<i;++r)e.commandList.push(t[r]);t.length=0},U.prototype.cancelReprojections=function(){this._reprojectComputeCommands.length=0},U.prototype.getImageryFromCache=function(e,t,i,n){var o=H(e,t,i),a=this._imageryCache[o];return r(a)||(a=new B(this,e,t,i,n),this._imageryCache[o]=a),a.addReference(),a},U.prototype.removeImageryFromCache=function(e){var t=H(e.x,e.y,e.level);delete this._imageryCache[t]};var K={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new e,texture:void 0},Z=s.supportsTypedArrays()?new Float32Array(128):void 0;return U}),define("Scene/TerrainFillMesh",["../Core/AttributeCompression","../Core/binarySearch","../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/defined","../Core/HeightmapTerrainData","../Core/Math","../Core/DeveloperError","../Core/OrientedBoundingBox","../Core/Queue","../Core/Rectangle","../Core/TileEdge","../Core/TerrainEncoding","../Core/TerrainMesh","../Core/WebMercatorProjection","./GlobeSurfaceTile","./TileSelectionResult"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new o}function b(e,t,i,r,n,o,a,l,u){if(void 0!==r){for(var d=r;d&&(d._lastSelectionResultFrame!==n||y.wasKicked(d._lastSelectionResult)||y.originalResult(d._lastSelectionResult)===y.CULLED);){if(a)return;var h=d.parent;if(o>=f.NORTHWEST&&void 0!==h)switch(o){case f.NORTHWEST:d=d===h.northwestChild?h:void 0;break;case f.NORTHEAST:d=d===h.northeastChild?h:void 0;break;case f.SOUTHWEST:d=d===h.southwestChild?h:void 0;break;case f.SOUTHEAST:d=d===h.southeastChild?h:void 0}else d=h}if(void 0!==d){if(d._lastSelectionResult===y.RENDERED){if(s(d.data.vertexArray))return;return void S(e,t,i,d,o,n,l,u)}if(y.originalResult(r._lastSelectionResult)!==y.CULLED)switch(o){case f.WEST:b(e,t,i,r.northwestChild,n,o,!0,l,u),b(e,t,i,r.southwestChild,n,o,!0,l,u);break;case f.EAST:b(e,t,i,r.southeastChild,n,o,!0,l,u),b(e,t,i,r.northeastChild,n,o,!0,l,u);break;case f.SOUTH:b(e,t,i,r.southwestChild,n,o,!0,l,u),b(e,t,i,r.southeastChild,n,o,!0,l,u);break;case f.NORTH:b(e,t,i,r.northeastChild,n,o,!0,l,u),b(e,t,i,r.northwestChild,n,o,!0,l,u);break;case f.NORTHWEST:b(e,t,i,r.northwestChild,n,o,!0,l,u);break;case f.NORTHEAST:b(e,t,i,r.northeastChild,n,o,!0,l,u);break;case f.SOUTHWEST:b(e,t,i,r.southwestChild,n,o,!0,l,u);break;case f.SOUTHEAST:b(e,t,i,r.southeastChild,n,o,!0,l,u);break;default:throw new c("Invalid edge")}}}}function S(e,t,i,r,n,o,a,s){var l=r.data;if(void 0===l.fill)l.fill=new C(r);else if(l.fill.visitedFrame===o)return;l.fill.enqueuedFrame!==o&&(l.fill.enqueuedFrame=o,l.fill.changedThisFrame=!1,a.enqueue(r)),T(e,t,i,r,n,s)}function T(e,t,i,r,n,o){var a,l=r.data.fill,c=i.data.fill;s(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(w(e,t,i,o),c.changedThisFrame=!1),a=i.data.fill.mesh):a=i.data.mesh;var d,h;switch(n){case f.WEST:d=l.westMeshes,h=l.westTiles;break;case f.SOUTH:d=l.southMeshes,h=l.southTiles;break;case f.EAST:d=l.eastMeshes,h=l.eastTiles;break;case f.NORTH:d=l.northMeshes,h=l.northTiles;break;case f.NORTHWEST:return l.changedThisFrame=l.changedThisFrame||l.northwestMesh!==a,l.northwestMesh=a,void(l.northwestTile=i);case f.NORTHEAST:return l.changedThisFrame=l.changedThisFrame||l.northeastMesh!==a,l.northeastMesh=a,void(l.northeastTile=i);case f.SOUTHWEST:return l.changedThisFrame=l.changedThisFrame||l.southwestMesh!==a,l.southwestMesh=a,void(l.southwestTile=i);case f.SOUTHEAST:return l.changedThisFrame=l.changedThisFrame||l.southeastMesh!==a,l.southeastMesh=a,void(l.southeastTile=i)}if(i.level<=r.level)return l.changedThisFrame=l.changedThisFrame||d[0]!==a||1!==d.length,d[0]=a,h[0]=i,d.length=1,void(h.length=1);var p,m,_,g,v,y=i.rectangle,C=r.rectangle;switch(n){case f.WEST:for(v=(C.north-C.south)*u.EPSILON5,p=0;p<h.length&&(_=h[p],g=_.rectangle,!u.greaterThan(y.north,g.south,v));++p);for(m=p;m<h.length&&(_=h[m],g=_.rectangle,!u.greaterThanOrEquals(y.south,g.north,v));++m);break;case f.SOUTH:for(v=(C.east-C.west)*u.EPSILON5,p=0;p<h.length&&(_=h[p],g=_.rectangle,!u.lessThan(y.west,g.east,v));++p);for(m=p;m<h.length&&(_=h[m],g=_.rectangle,!u.lessThanOrEquals(y.east,g.west,v));++m);break;case f.EAST:for(v=(C.north-C.south)*u.EPSILON5,p=0;p<h.length&&(_=h[p],g=_.rectangle,!u.lessThan(y.south,g.north,v));++p);for(m=p;m<h.length&&(_=h[m],g=_.rectangle,!u.lessThanOrEquals(y.north,g.south,v));++m);break;case f.NORTH:for(v=(C.east-C.west)*u.EPSILON5,p=0;p<h.length&&(_=h[p],g=_.rectangle,!u.greaterThan(y.east,g.west,v));++p);for(m=p;m<h.length&&(_=h[m],g=_.rectangle,!u.greaterThanOrEquals(y.west,g.east,v));++m);}m-p==1?(l.changedThisFrame=l.changedThisFrame||d[p]!==a,d[p]=a,h[p]=i):(l.changedThisFrame=!0,d.splice(p,m-p,a),h.splice(p,m-p,i))}function E(){this.height=0,this.encodedNormal=new r}function A(e,t,i,r,n,o,a,l,u){if(s(n))return n;var c;if(s(o)&&s(a))c=.5*(o.height+a.height);else if(s(o))c=o.height;else if(s(a))c=a.height;else if(s(l))c=l.height;else{var d=e.tile.data,h=d.tileBoundingRegion,p=0,f=0;s(h)&&(p=h.minimumHeight,f=h.maximumHeight),c=.5*(p+f)}return M(e,t,i,r,c,u),u}function w(t,n,o,a){v.initialize(o,t.terrainProvider,t._imageryLayers);var u=o.data,c=u.fill,h=o.rectangle,p=o.tilingScheme.ellipsoid,y=R(c,p,0,1,c.northwestTile,c.northwestMesh,c.northTiles,c.northMeshes,c.westTiles,c.westMeshes,Z),C=R(c,p,0,0,c.southwestTile,c.southwestMesh,c.westTiles,c.westMeshes,c.southTiles,c.southMeshes,Q),b=R(c,p,1,0,c.southeastTile,c.southeastMesh,c.southTiles,c.southMeshes,c.eastTiles,c.eastMeshes,K),S=R(c,p,1,1,c.northeastTile,c.northeastMesh,c.eastTiles,c.eastMeshes,c.northTiles,c.northMeshes,J);y=A(c,p,0,1,y,C,S,b,Z),C=A(c,p,0,0,C,y,b,S,Q),b=A(c,p,1,1,b,C,S,y,K),S=A(c,p,1,1,S,b,y,C,J);var T,E,w=C.height,P=b.height,D=y.height,I=S.height,M=Math.min(w,P,D,I),O=Math.max(w,P,D,I),N=.5*(M+O),F=t.getLevelMaximumGeometricError(o.level),B=p.maximumRadius-F,z=4*Math.acos(B/p.maximumRadius);if(z*=1.5,h.width>z&&O-M<=F){var V=new l({width:9,height:9,buffer:$,structure:{heightOffset:O}});c.mesh=V._createMeshSync(o.tilingScheme,o.x,o.y,o.level,1)}else{var H=new m(void 0,void 0,void 0,void 0,!0,!0),Y=G;Y.longitude=.5*(h.east+h.west),Y.latitude=.5*(h.north+h.south),Y.height=N,H.center=p.cartographicToCartesian(Y,H.center);var ee,te=5;for(ee=c.westMeshes,T=0,E=ee.length;T<E;++T)te+=ee[T].eastIndicesNorthToSouth.length;for(ee=c.southMeshes,T=0,E=ee.length;T<E;++T)te+=ee[T].northIndicesWestToEast.length;for(ee=c.eastMeshes,T=0,E=ee.length;T<E;++T)te+=ee[T].westIndicesSouthToNorth.length;for(ee=c.northMeshes,T=0,E=ee.length;T<E;++T)te+=ee[T].southIndicesEastToWest.length;var ie=X;ie.minimumHeight=M,ie.maximumHeight=O;var re=H.getStride(),ne=new Float32Array(te*re),oe=0,ae=oe;oe=x(p,h,H,ne,oe,0,1,y.height,y.encodedNormal,1,ie),oe=L(c,p,H,ne,oe,c.westTiles,c.westMeshes,f.EAST,ie);var se=oe;oe=x(p,h,H,ne,oe,0,0,C.height,C.encodedNormal,0,ie),oe=L(c,p,H,ne,oe,c.southTiles,c.southMeshes,f.NORTH,ie);var le=oe;oe=x(p,h,H,ne,oe,1,0,b.height,b.encodedNormal,0,ie),oe=L(c,p,H,ne,oe,c.eastTiles,c.eastMeshes,f.WEST,ie);var ue=oe;oe=x(p,h,H,ne,oe,1,1,S.height,S.encodedNormal,1,ie),oe=L(c,p,H,ne,oe,c.northTiles,c.northMeshes,f.SOUTH,ie),M=ie.minimumHeight,O=ie.maximumHeight;var ce=d.fromRectangle(h,M,O,o.tilingScheme.ellipsoid),de=g.geodeticLatitudeToMercatorAngle(h.south),he=1/(g.geodeticLatitudeToMercatorAngle(h.north)-de),pe=(g.geodeticLatitudeToMercatorAngle(Y.latitude)-de)*he;p.geodeticSurfaceNormalCartographic(U,W);var fe=e.octEncode(W,q),me=oe;H.encode(ne,oe*re,ce.center,r.fromElements(.5,.5,j),N,fe,pe),++oe;var _e,ge=oe,ve=ge<256?1:2,ye=3*(ge-1),Ce=ye*ve,be=(ne.length-ge*re)*Float32Array.BYTES_PER_ELEMENT;if(be>=Ce){var Se=ge*re*Float32Array.BYTES_PER_ELEMENT;_e=ge<256?new Uint8Array(ne.buffer,Se,ye):new Uint16Array(ne.buffer,Se,ye)}else _e=ge<256?new Uint8Array(ye):new Uint16Array(ye);ne=new Float32Array(ne.buffer,0,ge*re);var Te=0;for(T=0;T<ge-2;++T)_e[Te++]=me,_e[Te++]=T,_e[Te++]=T+1;_e[Te++]=me,_e[Te++]=T,_e[Te++]=0;var Ee=[];for(T=se;T>=ae;--T)Ee.push(T);var Ae=[];for(T=le;T>=se;--T)Ae.push(T);var we=[];for(T=ue;T>=le;--T)we.push(T);var xe=[];for(xe.push(0),T=me-1;T>=ue;--T)xe.push(T);c.mesh=new _(H.center,ne,_e,M,O,i.fromOrientedBoundingBox(ce),k(t,ce.center,h,O),H.getStride(),ce,H,n.terrainExaggeration,Ee,Ae,we,xe)}var Pe=n.context;s(c.vertexArray)&&(s(a)?a.push(c.vertexArray):v._freeVertexArray(c.vertexArray)),c.vertexArray=v._createVertexArrayForMesh(Pe,c.mesh),u.processImagery(o,t.terrainProvider,n,!0);var De=c.waterMaskTexture;if(c.waterMaskTexture=void 0,t.terrainProvider.hasWaterMask){var Ie=u._findAncestorTileWithTerrainData(o);s(Ie)&&s(Ie.data.waterMaskTexture)&&(c.waterMaskTexture=Ie.data.waterMaskTexture,++c.waterMaskTexture.referenceCount,u._computeWaterMaskTranslationAndScale(o,Ie,c.waterMaskTranslationAndScale))}s(De)&&0===--De.referenceCount&&De.destroy()}function x(e,t,i,r,n,o,a,s,l,c,d){var h=U;h.longitude=u.lerp(t.west,t.east,o),h.latitude=u.lerp(t.south,t.north,a),h.height=s;var p=e.cartographicToCartesian(h,H),f=Y;return f.x=o,f.y=a,i.encode(r,n*i.getStride(),p,f,s,l,c),d.minimumHeight=Math.min(d.minimumHeight,s),d.maximumHeight=Math.max(d.maximumHeight,s),n+1}function P(e,t,i,r){var n=e.rectangle,o=t.rectangle;0===t.x&&1===i.x&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(n=p.clone(e.rectangle,ee),n.west-=u.TWO_PI,n.east-=u.TWO_PI):0===e.x&&0===i.x&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(n=p.clone(e.rectangle,ee),n.west+=u.TWO_PI,n.east+=u.TWO_PI);var a=n.east-n.west,s=(o.west-n.west)/a,l=(o.east-n.west)/a,c=n.north-n.south,d=(o.south-n.south)/c,h=(o.north-n.south)/c,f=(i.x-s)/(l-s),m=(i.y-d)/(h-d);return Math.abs(f)<Math.EPSILON5?f=0:Math.abs(f-1)<Math.EPSILON5&&(f=1),Math.abs(m)<Math.EPSILON5?m=0:Math.abs(m-1)<Math.EPSILON5&&(m=1),r.x=f,r.y=m,r}function D(e,t,i,r,n){var o=e.encoding,a=e.vertices;if(n.height=o.decodeHeight(a,t),o.hasVertexNormals)o.getOctEncodedNormal(a,t,n.encodedNormal);else{var s=n.encodedNormal;s.x=0,s.y=0}}function I(t,i,r,o,a,s,l,c,d,h){var p,f=o.encoding,m=o.vertices,_=P(i,r,f.decodeTextureCoordinates(m,a,j),j),g=P(i,r,f.decodeTextureCoordinates(m,s,Y),Y);p=d?(l-_.x)/(g.x-_.x):(c-_.y)/(g.y-_.y);var v=f.decodeHeight(m,a),y=f.decodeHeight(m,s),C=r.rectangle;U.longitude=u.lerp(C.west,C.east,l),U.latitude=u.lerp(C.south,C.north,c),h.height=U.height=u.lerp(v,y,p);var b;if(f.hasVertexNormals){var S=f.getOctEncodedNormal(m,a,te),T=f.getOctEncodedNormal(m,s,ie),E=e.octDecode(S.x,S.y,H),A=e.octDecode(T.x,T.y,re);b=n.lerp(E,A,p,H),n.normalize(b,b),e.octEncode(b,h.encodedNormal)}else b=t.geodeticSurfaceNormalCartographic(U,H),e.octEncode(b,h.encodedNormal)}function M(t,i,r,n,o,a){a.height=o;var s=i.geodeticSurfaceNormalCartographic(U,H);e.octEncode(s,a.encodedNormal)}function R(e,t,i,r,n,o,a,l,u,c,d){if(z(e,t,l,a,!1,i,r,d)||z(e,t,c,u,!0,i,r,d))return d;var h;if(B(n,o))return h=0===i?0===r?o.eastIndicesNorthToSouth[0]:o.southIndicesEastToWest[0]:0===r?o.northIndicesWestToEast[0]:o.westIndicesSouthToNorth[0],D(o,h,i,r,d),d;var p;return p=0===i?0===r?O(e.westMeshes,e.westTiles,f.EAST,e.southMeshes,e.southTiles,f.NORTH,i,r):O(e.northMeshes,e.northTiles,f.SOUTH,e.westMeshes,e.westTiles,f.EAST,i,r):0===r?O(e.southMeshes,e.southTiles,f.NORTH,e.eastMeshes,e.eastTiles,f.WEST,i,r):O(e.eastMeshes,e.eastTiles,f.WEST,e.northMeshes,e.northTiles,f.SOUTH,i,r),s(p)?(M(e,t,i,r,p,d),d):void 0}function O(e,t,i,r,n,o,a,l){var u=F(e,t,!1,i,a,l),c=F(r,n,!0,o,a,l);return s(u)&&s(c)?.5*(u+c):s(u)?u:c}function L(e,t,i,r,n,o,a,s,l){for(var u=0;u<o.length;++u)n=N(e,t,i,r,n,o[u],a[u],s,l);return n}function N(e,t,i,r,n,o,a,s,l){var c=o.rectangle;s===f.EAST&&0===e.tile.x?(c=p.clone(o.rectangle,ee),c.west-=u.TWO_PI,c.east-=u.TWO_PI):s===f.WEST&&0===o.x&&(c=p.clone(o.rectangle,ee),c.west+=u.TWO_PI,c.east+=u.TWO_PI);var d,h,m=e.tile.rectangle;n>0&&(i.decodeTextureCoordinates(r,n-1,j),d=j.x,h=j.y);var _,v;switch(s){case f.WEST:_=a.westIndicesSouthToNorth,v=!1;break;case f.NORTH:_=a.northIndicesWestToEast,v=!0;break;case f.EAST:_=a.eastIndicesNorthToSouth,v=!1;break;case f.SOUTH:_=a.southIndicesEastToWest,v=!0}var y,C,b=o,S=e.tile,T=a.encoding,E=a.vertices,A=i.getStride();T.hasWebMercatorT&&(y=g.geodeticLatitudeToMercatorAngle(m.south),C=1/(g.geodeticLatitudeToMercatorAngle(m.north)-y));for(var w=0;w<_.length;++w){var x=_[w],D=T.decodeTextureCoordinates(E,x,j);P(b,S,D,D);var I=D.x,M=D.y,R=v?I:M;if(!(R<0||R>1)&&!(Math.abs(I-d)<u.EPSILON5&&Math.abs(M-h)<u.EPSILON5)){var O=Math.abs(I)<u.EPSILON5||Math.abs(I-1)<u.EPSILON5,L=Math.abs(M)<u.EPSILON5||Math.abs(M-1)<u.EPSILON5;if(!O||!L){var N,F=T.decodePosition(E,x,H),B=T.decodeHeight(E,x);T.hasVertexNormals?N=T.getOctEncodedNormal(E,x,q):(N=q,N.x=0,N.y=0);var z=M;if(T.hasWebMercatorT){var k=u.lerp(m.south,m.north,M);z=(g.geodeticLatitudeToMercatorAngle(k)-y)*C}i.encode(r,n*A,F,D,B,N,z),l.minimumHeight=Math.min(l.minimumHeight,B),l.maximumHeight=Math.max(l.maximumHeight,B),++n}}}return n}function F(e,t,i,r,n,o){var a,l,u;i?(a=0,l=e.length,u=1):(a=e.length-1,l=-1,u=-1);for(var c=a;c!==l;c+=u){var d=e[c];if(B(t[c],d)){var h;switch(r){case f.WEST:h=d.westIndicesSouthToNorth;break;case f.SOUTH:h=d.southIndicesEastToWest;break;case f.EAST:h=d.eastIndicesNorthToSouth;break;case f.NORTH:h=d.northIndicesWestToEast}var p=h[i?0:h.length-1];if(s(p))return d.encoding.decodeHeight(d.vertices,p)}}}function B(e,t){return s(t)&&(!s(e.data.fill)||!e.data.fill.changedThisFrame)}function z(e,i,r,n,o,a,s,l){var u,c,d,h,p,f=n[o?0:r.length-1],m=r[o?0:r.length-1];if(B(f,m)&&(0===a?0===s?(u=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,c=o,d=o):(u=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,c=!o,d=!1):0===s?(u=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,c=!o,d=!0):(u=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,c=o,d=!o),u.length>0)){h=o?0:u.length-1,p=u[h],m.encoding.decodeTextureCoordinates(m.vertices,p,j);var _=P(f,e.tile,j,j);if(_.x===a&&_.y===s)return D(m,p,a,s,l),!0;if(!((h=t(u,c?a:s,function(t,i){m.encoding.decodeTextureCoordinates(m.vertices,t,j);var r=P(f,e.tile,j,j);return d?c?r.x-a:r.y-s:c?a-r.x:s-r.y}))<0))return D(m,u[h],a,s,l),!0;if((h=~h)>0&&h<u.length)return I(i,f,e.tile,m,u[h-1],u[h],a,s,c,l),!0}return!1}function k(e,t,i,r,o){var a=e.quadtree._occluders.ellipsoid,s=a.ellipsoid,l=ne;return n.fromRadians(i.west,i.south,r,s,l[0]),n.fromRadians(i.east,i.south,r,s,l[1]),n.fromRadians(i.west,i.north,r,s,l[2]),n.fromRadians(i.east,i.north,r,s,l[3]),a.computeHorizonCullingPoint(t,l,o)}C.prototype.update=function(e,t,i){this.changedThisFrame&&(w(e,t,this.tile,i),this.changedThisFrame=!1)},C.prototype.destroy=function(e){s(this.vertexArray)&&(s(e)?e.push(this.vertexArray):v._freeVertexArray(this.vertexArray,e),this.vertexArray=void 0),s(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,0===this.waterMaskTexture.referenceCount&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};var V=new h;C.updateFillTiles=function(e,t,i,r){var n=e._quadtree,o=n._levelZeroTiles,a=n._lastSelectionFrameNumber,l=V;l.clear();for(var u=0;u<t.length;++u){var c=t[u];s(c.data.vertexArray)&&l.enqueue(t[u])}for(var d=l.dequeue();void 0!==d;){var h=d.findTileToWest(o),p=d.findTileToSouth(o),m=d.findTileToEast(o),_=d.findTileToNorth(o);b(e,i,d,h,a,f.EAST,!1,l,r),b(e,i,d,p,a,f.NORTH,!1,l,r),b(e,i,d,m,a,f.WEST,!1,l,r),b(e,i,d,_,a,f.SOUTH,!1,l,r);var g=h.findTileToNorth(o),v=h.findTileToSouth(o),y=m.findTileToNorth(o),C=m.findTileToSouth(o);b(e,i,d,g,a,f.SOUTHEAST,!1,l,r),b(e,i,d,y,a,f.SOUTHWEST,!1,l,r),b(e,i,d,v,a,f.NORTHEAST,!1,l,r),b(e,i,d,C,a,f.NORTHWEST,!1,l,r),d=l.dequeue()}};var U=new a,G=new a,H=new n,W=new n,q=new r,Y=new r,j=new r,X={minimumHeight:0,maximumHeight:0},Q=new E,K=new E,Z=new E,J=new E,$="undefined"!=typeof Uint8Array?new Uint8Array(81):void 0,ee=new p,te=new r,ie=new r,re=new n,ne=[new n,new n,new n,new n];return C}),define("Scene/GlobeSurfaceTileProvider",["../Core/BoundingSphere","../Core/BoxOutlineGeometry","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/combine","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Event","../Core/GeometryInstance","../Core/GeometryPipeline","../Core/IndexDatatype","../Core/Intersect","../Core/Math","../Core/Matrix4","../Core/OrientedBoundingBox","../Core/OrthographicFrustum","../Core/PrimitiveType","../Core/Rectangle","../Core/SphereOutlineGeometry","../Core/TerrainMesh","../Core/TerrainQuantization","../Core/Visibility","../Core/WebMercatorProjection","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Pass","../Renderer/RenderState","../Renderer/VertexArray","./BlendingState","./ImageryState","./TileBoundingRegion","./TileSelectionResult","./ClippingPlaneCollection","./DepthFunction","./GlobeSurfaceTile","./ImageryLayer","./PerInstanceColorAppearance","./Primitive","./QuadtreeTileLoadState","./SceneMode","./ShadowMode","./TerrainFillMesh","./TerrainState"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z){"use strict";function J(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.showGroundAtmosphere=!1,this.shadows=Q.RECEIVE_ONLY,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._errorEvent=new f,this._imageryLayers.layerAdded.addEventListener(J.prototype._onLayerAdded,this),this._imageryLayers.layerRemoved.addEventListener(J.prototype._onLayerRemoved,this),this._imageryLayers.layerMoved.addEventListener(J.prototype._onLayerMoved,this),this._imageryLayers.layerShownOrHidden.addEventListener(J.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new f,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new a(0,0,.5,1),this._clippingPlanes=void 0,this.cartographicLimitRectangle=E.clone(E.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1}function $(e,t){var i=e.loadingImagery;c(i)||(i=e.readyImagery);var r=t.loadingImagery;return c(r)||(r=t.readyImagery),i.imageryLayer._layerIndex-r.imageryLayer._layerIndex}function ee(e,t){var i=t.creditDisplay;e._terrainProvider.ready&&c(e._terrainProvider.credit)&&i.addCredit(e._terrainProvider.credit);for(var r=e._imageryLayers,n=0,o=r.length;n<o;++n){var a=r.get(n).imageryProvider;a.ready&&c(a.credit)&&i.addCredit(a.credit)}}function te(e,t){if(t.west<t.east)return t;var i=E.clone(t,de);return E.center(e,he).longitude>0?i.east=y.PI:i.west=-y.PI,i}function ie(e,t,i,n,o){var a=e.quadtree._occluders.ellipsoid,s=a.ellipsoid,l=Ee;return r.fromRadians(i.west,i.south,n,s,l[0]),r.fromRadians(i.east,i.south,n,s,l[1]),r.fromRadians(i.west,i.north,n,s,l[2]),r.fromRadians(i.east,i.north,n,s,l[3]),a.computeHorizonCullingPoint(t,l,o)}function re(e,t,i){var r=e.data;void 0===r&&(r=e.data=new H),void 0===r.tileBoundingRegion&&(r.tileBoundingRegion=new k({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:e.tilingScheme.ellipsoid,minimumHeight:0,maximumHeight:0}));var n=r.terrainData,o=r.mesh,a=r.tileBoundingRegion;if(void 0!==o&&void 0!==o.minimumHeight&&void 0!==o.maximumHeight)return a.minimumHeight=o.minimumHeight,a.maximumHeight=o.maximumHeight,e;if(void 0!==n&&void 0!==n._minimumHeight&&void 0!==n._maximumHeight)return a.minimumHeight=n._minimumHeight*i.terrainExaggeration,a.maximumHeight=n._maximumHeight*i.terrainExaggeration,e;a.minimumHeight=Number.NaN,a.maximumHeight=Number.NaN;for(var s=e.parent;void 0!==s;){var l=s.data;if(void 0!==l){var u=l.mesh;if(void 0!==u&&void 0!==u.minimumHeight&&void 0!==u.maximumHeight)return a.minimumHeight=u.minimumHeight,a.maximumHeight=u.maximumHeight,s;var c=l.terrainData;if(void 0!==c&&void 0!==c._minimumHeight&&void 0!==c._maximumHeight)return a.minimumHeight=c._minimumHeight*i.terrainExaggeration,a.maximumHeight=c._maximumHeight*i.terrainExaggeration,s}s=s.parent}}function ne(e,t,i){return function(r){var n,o,a,s=-1,l=r.data.imagery,d=l.length;for(a=0;a<d;++a)if(n=l[a],o=u(n.readyImagery,n.loadingImagery),o.imageryLayer===t){s=a;break}if(-1!==s){var h=s+e;if(n=l[h],o=c(n)?u(n.readyImagery,n.loadingImagery):void 0,!c(o)||o.imageryLayer!==t)return!t._createTileImagerySkeletons(r,i,h);for(a=s;a<h;++a)l[a].freeResources();l.splice(s,e)}return!0}}function oe(e,t){return{u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){var t=e.context.uniformState.view,i=C.multiplyByPoint(t,this.properties.rtc,be);return C.setTranslation(t,i,_e),_e},u_modifiedModelViewProjection:function(){var t=e.context.uniformState.view,i=e.context.uniformState.projection,r=C.multiplyByPoint(t,this.properties.rtc,be);return C.setTranslation(t,r,ge),C.multiply(i,ge,ge),ge},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){var i=t._clippingPlanes;return c(i)&&c(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){var i=t._clippingPlanes;return c(i)?C.multiply(e.context.uniformState.view,i.modelMatrix,Pe):C.IDENTITY},u_clippingPlanesEdgeStyle:function(){var e=this.properties.clippingPlanesEdgeColor;return e.alpha=this.properties.clippingPlanesEdgeWidth,e},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},properties:{initialColor:new n(0,0,.5,1),fillHighlightColor:new a(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new i(65e5,9e6),nightFadeDistance:new i(1e7,4e7),hsbShift:new r,center3D:void 0,rtc:new r,modifiedModelView:new C,tileRectangle:new n,dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new i,southMercatorYAndOneOverHeight:new i,waterMask:void 0,waterMaskTranslationAndScale:new n,minMaxHeight:new i,scaleAndBias:new C,clippingPlanesEdgeColor:a.clone(a.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new n}}}function ae(e,t,i){var r,n,o=i.data;if(c(o.vertexArray)?(r=o.mesh,n=o.vertexArray):c(o.fill)&&c(o.fill.vertexArray)&&(r=o.fill.mesh,n=o.fill.vertexArray),c(r)&&c(n)){if(c(o.wireframeVertexArray)){if(o.wireframeVertexArray.mesh===r)return;o.wireframeVertexArray.destroy(),o.wireframeVertexArray=void 0}o.wireframeVertexArray=se(e,n,r),o.wireframeVertexArray.mesh=r}}function se(e,t,i){var r=i.indices,n={indices:r,primitiveType:T.TRIANGLES};_.toWireframe(n);var o=n.indices,a=I.createIndexBuffer({context:e,typedArray:o,usage:M.STATIC_DRAW,indexDatatype:g.fromSizeInBytes(o.BYTES_PER_ELEMENT)});return new F({context:e,attributes:t._attributes,indexBuffer:a})}function le(t,i,o){var s=i.data;c(s.vertexArray)||(void 0===s.fill&&(s.fill=new K(i)),s.fill.update(t,o));var u=o.creditDisplay,d=s.terrainData;if(c(d)&&c(d.credits))for(var h=d.credits,p=0,f=h.length;p<f;++p)u.addCredit(h[p]);var m=R.maximumTextureImageUnits,_=s.waterMaskTexture,g=s.waterMaskTranslationAndScale;!c(_)&&c(s.fill)&&(_=s.fill.waterMaskTexture,g=s.fill.waterMaskTranslationAndScale);var v=t.hasWaterMask&&c(_),S=t.oceanNormalMap,A=v&&c(S),w=t.terrainProvider.ready&&t.terrainProvider.hasVertexNormals,P=o.fog.enabled,I=t.showGroundAtmosphere,M=Q.castShadows(t.shadows),N=Q.receiveShadows(t.shadows),F=t.hueShift,B=t.saturationShift,z=t.brightnessShift,k=!(y.equalsEpsilon(F,0,y.EPSILON7)&&y.equalsEpsilon(B,0,y.EPSILON7)&&y.equalsEpsilon(z,0,y.EPSILON7)),V=!1;if(I){var U,G=o.mode,H=o.camera;U=G===X.SCENE2D||G===X.COLUMBUS_VIEW?H.positionCartographic.height:r.magnitude(H.positionWC);var q=t.nightFadeOutDistance;G!==X.SCENE3D&&(q-=o.mapProjection.ellipsoid.maximumRadius),V=U>q}v&&--m,A&&--m;var Y=s.renderedMesh,j=Y.center,Z=Y.encoding,J=ve,$=0,ee=0,ie=0,re=0,ne=!1;if(o.mode!==X.SCENE3D){var se=o.mapProjection,le=se.project(E.southwest(i.rectangle),Se),ue=se.project(E.northeast(i.rectangle),Te);if(J.x=le.x,J.y=le.y,J.z=ue.x,J.w=ue.y,o.mode!==X.MORPHING&&(j=Ce,j.x=0,j.y=.5*(J.z+J.x),j.z=.5*(J.w+J.y),J.x-=j.y,J.y-=j.z,J.z-=j.y,J.w-=j.z),o.mode===X.SCENE2D&&Z.quantization===x.BITS12){var de=1/(Math.pow(2,12)-1)*.5,he=(J.z-J.x)*de,pe=(J.w-J.y)*de;J.x-=he,J.y-=pe,J.z+=he,J.w+=pe}se instanceof D&&($=i.rectangle.south,ee=i.rectangle.north,ie=D.geodeticLatitudeToMercatorAngle($),re=1/(D.geodeticLatitudeToMercatorAngle(ee)-ie),ne=!0)}var fe=Ie;fe.frameState=o,fe.surfaceTile=s,fe.showReflectiveOcean=v,fe.showOceanWaves=A,fe.enableLighting=t.enableLighting,fe.showGroundAtmosphere=I,fe.perFragmentGroundAtmosphere=V,fe.hasVertexNormals=w,fe.useWebMercatorProjection=ne,fe.clippedByBoundaries=s.clippedByBoundaries;var me=s.imagery,_e=0,ge=me.length,be=t._renderState,Ee=t._blendRenderState,Pe=be,Me=t._firstPassInitialColor,Re=o.context;c(t._debug.boundingSphereTile)||xe();do{var Oe,Le,Ne=0;if(t._drawCommands.length<=t._usedDrawCommands?(Oe=new O,Oe.owner=i,Oe.cull=!1,Oe.boundingVolume=new e,Oe.orientedBoundingBox=void 0,Le=oe(o,t),t._drawCommands.push(Oe),t._uniformMaps.push(Le)):(Oe=t._drawCommands[t._usedDrawCommands],Le=t._uniformMaps[t._usedDrawCommands]),Oe.owner=i,++t._usedDrawCommands,i===t._debug.boundingSphereTile){var Fe=s.orientedBoundingBox;c(Fe)?Ae(Fe,a.RED).update(o):c(Y)&&c(Y.boundingSphere3D)&&we(Y.boundingSphere3D,a.RED).update(o)}var Be=Le.properties;n.clone(Me,Be.initialColor),Be.oceanNormalMap=S,Be.lightingFadeDistance.x=t.lightingFadeOutDistance,Be.lightingFadeDistance.y=t.lightingFadeInDistance,Be.nightFadeDistance.x=t.nightFadeOutDistance,Be.nightFadeDistance.y=t.nightFadeInDistance,Be.zoomedOutOceanSpecularIntensity=t.zoomedOutOceanSpecularIntensity;var ze=!c(s.vertexArray)&&c(t.fillHighlightColor)&&t.fillHighlightColor.alpha>0;ze&&a.clone(t.fillHighlightColor,Be.fillHighlightColor),Be.center3D=Y.center,r.clone(j,Be.rtc),n.clone(J,Be.tileRectangle),Be.southAndNorthLatitude.x=$,Be.southAndNorthLatitude.y=ee,Be.southMercatorYAndOneOverHeight.x=ie,Be.southMercatorYAndOneOverHeight.y=re;var ke=ye,Ve=te(i.rectangle,t.cartographicLimitRectangle);r.fromElements(F,B,z,Be.hsbShift);var Ue=i.rectangle,Ge=1/Ue.width,He=1/Ue.height;ke.x=(Ve.west-Ue.west)*Ge,ke.y=(Ve.south-Ue.south)*He,ke.z=(Ve.east-Ue.west)*Ge,ke.w=(Ve.north-Ue.south)*He,n.clone(ke,Be.localizedCartographicLimitRectangle);var We=P&&y.fog(i._distance,o.fog.density)>y.EPSILON3;k=k&&(We||I);for(var qe=!1,Ye=!1,je=!1,Xe=!1,Qe=!1,Ke=!1,Ze=!1,Je=!1,$e=!1;Ne<m&&_e<ge;){var et=me[_e],tt=et.readyImagery;if(++_e,c(tt)&&0!==tt.imageryLayer.alpha){var it=et.useWebMercatorT?tt.textureWebMercator:tt.texture,rt=tt.imageryLayer;c(et.textureTranslationAndScale)||(et.textureTranslationAndScale=rt._calculateTextureTranslationAndScale(i,et)),Be.dayTextures[Ne]=it,Be.dayTextureTranslationAndScale[Ne]=et.textureTranslationAndScale,Be.dayTextureTexCoordsRectangle[Ne]=et.textureCoordinateRectangle,Be.dayTextureUseWebMercatorT[Ne]=et.useWebMercatorT,Be.dayTextureAlpha[Ne]=rt.alpha,Ke=Ke||1!==Be.dayTextureAlpha[Ne],Be.dayTextureBrightness[Ne]=rt.brightness,qe=qe||Be.dayTextureBrightness[Ne]!==W.DEFAULT_BRIGHTNESS,Be.dayTextureContrast[Ne]=rt.contrast,Ye=Ye||Be.dayTextureContrast[Ne]!==W.DEFAULT_CONTRAST,Be.dayTextureHue[Ne]=rt.hue,je=je||Be.dayTextureHue[Ne]!==W.DEFAULT_HUE,Be.dayTextureSaturation[Ne]=rt.saturation,Xe=Xe||Be.dayTextureSaturation[Ne]!==W.DEFAULT_SATURATION,Be.dayTextureOneOverGamma[Ne]=1/rt.gamma,Qe=Qe||Be.dayTextureOneOverGamma[Ne]!==1/W.DEFAULT_GAMMA,Be.dayTextureSplit[Ne]=rt.splitDirection,Ze=Ze||0!==Be.dayTextureSplit[Ne];var nt=Be.dayTextureCutoutRectangles[Ne];if(c(nt)||(nt=Be.dayTextureCutoutRectangles[Ne]=new n),n.clone(n.ZERO,nt),c(rt.cutoutRectangle)){var ot=te(Ue,rt.cutoutRectangle),at=E.simpleIntersection(ot,Ue,ce);Je=c(at)||Je,nt.x=(ot.west-Ue.west)*Ge,nt.y=(ot.south-Ue.south)*He,nt.z=(ot.east-Ue.west)*Ge,nt.w=(ot.north-Ue.south)*He}var st=Be.colorsToAlpha[Ne] -;c(st)||(st=Be.colorsToAlpha[Ne]=new n);var lt=c(rt.colorToAlpha)&&rt.colorToAlphaThreshold>0;if($e=$e||lt,lt){var ut=rt.colorToAlpha;st.x=ut.red,st.y=ut.green,st.z=ut.blue,st.w=rt.colorToAlphaThreshold}else st.w=-1;if(c(tt.credits))for(var ct=tt.credits,dt=0,ht=ct.length;dt<ht;++dt)u.addCredit(ct[dt]);++Ne}}Be.dayTextures.length=Ne,Be.waterMask=_,n.clone(g,Be.waterMaskTranslationAndScale),Be.minMaxHeight.x=Z.minimumHeight,Be.minMaxHeight.y=Z.maximumHeight,C.clone(Z.matrix,Be.scaleAndBias);var pt=t._clippingPlanes,ft=c(pt)&&pt.enabled&&i.isClipped;ft&&(Be.clippingPlanesEdgeColor=a.clone(pt.edgeColor,Be.clippingPlanesEdgeColor),Be.clippingPlanesEdgeWidth=pt.edgeWidth),c(t.uniformMap)&&(Le=l(Le,t.uniformMap)),fe.numberOfDayTextures=Ne,fe.applyBrightness=qe,fe.applyContrast=Ye,fe.applyHue=je,fe.applySaturation=Xe,fe.applyGamma=Qe,fe.applyAlpha=Ke,fe.applySplit=Ze,fe.enableFog=We,fe.enableClippingPlanes=ft,fe.clippingPlanes=pt,fe.hasImageryLayerCutout=Je,fe.colorCorrect=k,fe.highlightFillTile=ze,fe.colorToAlpha=$e,Oe.shaderProgram=t._surfaceShaderSet.getShaderProgram(fe),Oe.castShadows=M,Oe.receiveShadows=N,Oe.renderState=Pe,Oe.primitiveType=T.TRIANGLES,Oe.vertexArray=s.vertexArray||s.fill.vertexArray,Oe.uniformMap=Le,Oe.pass=L.GLOBE,t._debug.wireframe&&(ae(Re,t,i),c(s.wireframeVertexArray)&&(Oe.vertexArray=s.wireframeVertexArray,Oe.primitiveType=T.LINES));var mt=Oe.boundingVolume,_t=Oe.orientedBoundingBox;if(o.mode!==X.SCENE3D){var gt=s.tileBoundingRegion;e.fromRectangleWithHeights2D(i.rectangle,o.mapProjection,gt.minimumHeight,gt.maximumHeight,mt),r.fromElements(mt.center.z,mt.center.x,mt.center.y,mt.center),o.mode===X.MORPHING&&(mt=e.union(Y.boundingSphere3D,mt,mt))}else Oe.boundingVolume=e.clone(Y.boundingSphere3D,mt),Oe.orientedBoundingBox=b.clone(s.orientedBoundingBox,_t);Oe.dirty=!0,o.commandList.push(Oe),Pe=Ee,Me=De}while(_e<ge)}d(J.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=n.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},ready:{get:function(){return this._terrainProvider.ready&&(0===this._imageryLayers.length||this._imageryLayers.get(0).imageryProvider.ready)}},tilingScheme:{get:function(){return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,c(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){U.setOwner(e,this,"_clippingPlanes")}}}),J.prototype.update=function(e){this._imageryLayers._update()},J.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(e){e.data.imagery.sort($)})),ee(this,e);for(var t=this._vertexArraysToDestroy,i=t.length,r=0;r<i;++r)H._freeVertexArray(t[r]);t.length=0},J.prototype.beginUpdate=function(e){for(var t=this._tilesToRenderByTextureCount,i=0,r=t.length;i<r;++i){var n=t[i];c(n)&&(n.length=0)}var o=this._clippingPlanes;c(o)&&o.enabled&&o.update(e),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1},J.prototype.endUpdate=function(e){c(this._renderState)||(this._renderState=N.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:G.LESS}}),this._blendRenderState=N.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:G.LESS_OR_EQUAL},blending:B.ALPHA_BLEND})),this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&K.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);for(var t=this._tilesToRenderByTextureCount,i=0,r=t.length;i<r;++i){var n=t[i];if(c(n))for(var o=0,a=n.length;o<a;++o)le(this,n[o],e)}},J.prototype.updateForPick=function(e){for(var t=this._drawCommands,i=0,r=this._usedDrawCommands;i<r;++i)e.commandList.push(t[i])},J.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()},J.prototype.getLevelMaximumGeometricError=function(e){return this._terrainProvider.getLevelMaximumGeometricError(e)},J.prototype.loadTile=function(e,t){var i,r=t.data,n=!0;c(r)&&(n=r.boundingVolumeSourceTile!==t||t._lastSelectionResult===V.CULLED_BUT_NEEDED,i=r.terrainState),H.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this._vertexArraysToDestroy,n),r=t.data,n&&i!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)&&r.boundingVolumeSourceTile===t&&(n=!1,H.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this._vertexArraysToDestroy,n))};var ue=new e,ce=new E,de=new E,he=new o;J.prototype.computeTileVisibility=function(t,i,n){var o=this.computeDistanceToTile(t,i);if(t._distance=o,i.fog.enabled&&y.fog(o,i.fog.density)>=1)return P.NONE;var a=t.data,s=a.tileBoundingRegion;if(void 0===a.boundingVolumeSourceTile)return P.PARTIAL;var l=i.cullingVolume,u=a.orientedBoundingBox;!c(u)&&c(a.renderedMesh)&&(u=a.renderedMesh.boundingSphere3D),a.clippedByBoundaries=!1;var d=te(t.rectangle,this.cartographicLimitRectangle),h=E.simpleIntersection(d,t.rectangle,ce);if(!c(h))return P.NONE;E.equals(h,t.rectangle)||(a.clippedByBoundaries=!0),i.mode!==X.SCENE3D&&(u=ue,e.fromRectangleWithHeights2D(t.rectangle,i.mapProjection,s.minimumHeight,s.maximumHeight,u),r.fromElements(u.center.z,u.center.x,u.center.y,u.center),i.mode===X.MORPHING&&c(a.renderedMesh)&&(u=e.union(a.renderedMesh.boundingSphere3D,u,u)));var p=this._clippingPlanes;if(c(p)&&p.enabled&&c(u)){var f=p.computeIntersectionWithBoundingVolume(u);if(t.isClipped=f!==v.INSIDE,f===v.OUTSIDE)return P.NONE}var m=v.INTERSECTING;if(c(u)&&(m=l.computeVisibility(u))===v.OUTSIDE)return P.NONE;var _=i.mode===X.SCENE3D&&i.camera.frustum instanceof S;if(i.mode===X.SCENE3D&&!_&&c(n)){var g=a.occludeePointInScaledSpace;return c(g)?n.ellipsoid.isScaledSpacePointVisible(g)?m:P.NONE:m}return m},J.prototype.canRefine=function(e){return!!c(e.data.terrainData)||void 0!==this.terrainProvider.getTileDataAvailable(2*e.x,2*e.y,e.level+1)};var pe=[],fe=[];J.prototype.canRenderWithoutLosingDetail=function(e,t){var i=e.data,r=pe;r.length=this._imageryLayers.length;var n,o=!1,a=!1;c(i)&&(o=i.terrainState===Z.READY,a=!0,n=i.imagery);var s,l;for(s=0,l=r.length;s<l;++s)r[s]=a;if(c(n))for(s=0,l=n.length;s<l;++s){var u=n[s],d=u.loadingImagery,h=!c(d)||d.state===z.FAILED||d.state===z.INVALID,p=(u.loadingImagery||u.readyImagery).imageryLayer._layerIndex;r[p]=h&&r[p]}var f=this.quadtree._lastSelectionFrameNumber,m=fe;for(m.length=0,m.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);m.length>0;){var _=m.pop(),g=_._lastSelectionResultFrame===f?_._lastSelectionResult:V.NONE;if(g===V.RENDERED){var v=_.data;if(!c(v))continue;if(!o&&_.data.terrainState===Z.READY)return!1;var y=_.data.imagery;for(s=0,l=y.length;s<l;++s){var C=y[s],b=C.loadingImagery,S=!c(b)||b.state===z.FAILED||b.state===z.INVALID,T=(C.loadingImagery||C.readyImagery).imageryLayer._layerIndex;if(S&&!r[T])return!1}}else g===V.REFINED&&m.push(_.southwestChild,_.southeastChild,_.northwestChild,_.northeastChild)}return!0};var me=new r;J.prototype.computeTileLoadPriority=function(e,t){var i=e.data;if(void 0===i)return 0;var n=i.orientedBoundingBox;if(void 0===n)return 0;var o=t.camera.positionWC,a=t.camera.directionWC,s=r.subtract(n.center,o,me),l=r.magnitude(s);return l<y.EPSILON5?0:(r.divideByScalar(s,l,s),(1-r.dot(s,a))*e._distance)};var _e=new C,ge=new C,ve=new n,ye=new n,Ce=new r,be=new r,Se=new r,Te=new r;J.prototype.showTileThisFrame=function(e,t){for(var i=0,r=e.data.imagery,n=0,o=r.length;n<o;++n){var a=r[n];c(a.readyImagery)&&0!==a.readyImagery.imageryLayer.alpha&&++i}var s=this._tilesToRenderByTextureCount[i];c(s)||(s=[],this._tilesToRenderByTextureCount[i]=s),s.push(e);var l=e.data;c(l.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;var u=this._debug;++u.tilesRendered,u.texturesRendered+=i};var Ee=[new r,new r,new r,new r];J.prototype.computeDistanceToTile=function(e,t){var i=re(e,this.terrainProvider,t),r=e.data,n=r.tileBoundingRegion;if(void 0===i)return 9999999999;if(r.boundingVolumeSourceTile!==i){r.boundingVolumeSourceTile=i;var o=e.rectangle;c(o)&&o.width<y.PI_OVER_TWO+y.EPSILON5&&(r.orientedBoundingBox=b.fromRectangle(e.rectangle,n.minimumHeight,n.maximumHeight,e.tilingScheme.ellipsoid,r.orientedBoundingBox),r.occludeePointInScaledSpace=ie(this,r.orientedBoundingBox.center,e.rectangle,n.maximumHeight,r.occludeePointInScaledSpace))}var a=n.minimumHeight,s=n.maximumHeight;if(r.boundingVolumeSourceTile!==e){var l=t.camera.positionCartographic.height;Math.abs(l-a)>Math.abs(l-s)?(n.minimumHeight=a,n.maximumHeight=a):(n.minimumHeight=s,n.maximumHeight=s)}var u=n.distanceToCamera(t);return n.minimumHeight=a,n.maximumHeight=s,u},J.prototype.isDestroyed=function(){return!1},J.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),h(this)},J.prototype._onLayerAdded=function(e,t){if(e.show){var i=this._terrainProvider,r=this,n=e.imageryProvider,o=this._imageryLayersUpdatedEvent;n._reload=function(){e._imageryCache={},r._quadtree.forEachLoadedTile(function(t){if(!c(t._loadedCallbacks[e._layerIndex])){var r,n=t.data.imagery,o=n.length,a=-1,s=0;for(r=0;r<o;++r){var l=n[r];if(u(l.readyImagery,l.loadingImagery).imageryLayer===e)-1===a&&(a=r),++s;else if(-1!==a)break}if(-1!==a){var d=a+s;e._createTileImagerySkeletons(t,i,d)&&(t._loadedCallbacks[e._layerIndex]=ne(s,e,i),t.state=j.LOADING)}}})},this._quadtree.forEachLoadedTile(function(t){e._createTileImagerySkeletons(t,i)&&(t.state=j.LOADING,0===t.level||t._lastSelectionResultFrame===r.quadtree._lastSelectionFrameNumber&&t._lastSelectionResult===V.RENDERED||(t.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}},J.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(t){for(var i=t.data.imagery,r=-1,n=0,o=0,a=i.length;o<a;++o){var s=i[o],l=s.loadingImagery;if(c(l)||(l=s.readyImagery),l.imageryLayer===e)-1===r&&(r=o),s.freeResources(),++n;else if(-1!==r)break}-1!==r&&i.splice(r,n)}),c(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()},J.prototype._onLayerMoved=function(e,t,i){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()},J.prototype._onLayerShownOrHidden=function(e,t,i){i?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var Ae,we,xe,Pe=new C;!function(){function e(e){return new Y({geometryInstances:e,appearance:new q({translucent:!1,flat:!0}),asynchronous:!1})}var i,n,o=new m({geometry:t.fromDimensions({dimensions:new r(2,2,2)})}),a=new m({geometry:new A({radius:1})}),l=new C;Ae=function(t,r){return t===i?n:(xe(),i=t,l=C.fromRotationTranslation(t.halfAxes,t.center,l),o.modelMatrix=l,o.attributes.color=s.fromColor(r),n=e(o))},we=function(t,r){return t===i?n:(xe(),i=t,l=C.fromTranslation(t.center,l),l=C.multiplyByUniformScale(l,t.radius,l),a.modelMatrix=l,a.attributes.color=s.fromColor(r),n=e(a))},xe=function(){c(n)&&(n.destroy(),n=void 0,i=void 0)}}();var De=new n(0,0,0,0),Ie={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0};return J}),define("Scene/ImageryLayerCollection",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Event","../Core/Math","../Core/Rectangle","../ThirdParty/when","./ImageryLayer"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(){this._layers=[],this.layerAdded=new o,this.layerRemoved=new o,this.layerMoved=new o,this.layerShownOrHidden=new o}function d(e,t){return e.indexOf(t)}function h(e,t,i){var r=e._layers;if(t=a.clamp(t,0,r.length-1),i=a.clamp(i,0,r.length-1),t!==i){var n=r[t];r[t]=r[i],r[i]=n,e._update(),e.layerMoved.raiseEvent(n,i,t)}}i(c.prototype,{length:{get:function(){return this._layers.length}}}),c.prototype.add=function(e,i){t(i)?this._layers.splice(i,0,e):(i=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,i)},c.prototype.addImageryProvider=function(e,t){var i=new u(e);return this.add(i,t),i},c.prototype.remove=function(t,i){i=e(i,!0);var r=this._layers.indexOf(t);return-1!==r&&(this._layers.splice(r,1),this._update(),this.layerRemoved.raiseEvent(t,r),i&&t.destroy(),!0)},c.prototype.removeAll=function(t){t=e(t,!0);for(var i=this._layers,r=0,n=i.length;r<n;r++){var o=i[r];this.layerRemoved.raiseEvent(o,r),t&&o.destroy()}this._layers=[]},c.prototype.contains=function(e){return-1!==this.indexOf(e)},c.prototype.indexOf=function(e){return this._layers.indexOf(e)},c.prototype.get=function(e){return this._layers[e]},c.prototype.raise=function(e){var t=d(this._layers,e);h(this,t,t+1)},c.prototype.lower=function(e){var t=d(this._layers,e);h(this,t,t-1)},c.prototype.raiseToTop=function(e){var t=d(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))},c.prototype.lowerToBottom=function(e){var t=d(this._layers,e);0!==t&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var p=new s;return c.prototype.pickImageryLayerFeatures=function(e,i){var r=i.globe.pick(e,i);if(t(r)){for(var n,o=i.globe.ellipsoid.cartesianToCartographic(r),u=i.globe._surface._tilesToRender,c=0;!t(n)&&c<u.length;++c){var d=u[c];s.contains(d.rectangle,o)&&(n=d)}if(t(n)){for(var h=n.data.imagery,f=[],m=[],_=h.length-1;_>=0;--_){var g=h[_],v=g.readyImagery;if(t(v)){var y=v.imageryLayer.imageryProvider;if(t(y.pickFeatures)&&s.contains(v.rectangle,o)){var C=p;if(C.west=a.lerp(n.rectangle.west,n.rectangle.east,g.textureCoordinateRectangle.x-1/1024),C.east=a.lerp(n.rectangle.west,n.rectangle.east,g.textureCoordinateRectangle.z+1/1024),C.south=a.lerp(n.rectangle.south,n.rectangle.north,g.textureCoordinateRectangle.y-1/1024),C.north=a.lerp(n.rectangle.south,n.rectangle.north,g.textureCoordinateRectangle.w+1/1024),s.contains(C,o)){var b=y.pickFeatures(v.x,v.y,v.level,o.longitude,o.latitude);t(b)&&(f.push(b),m.push(v.imageryLayer))}}}}if(0!==f.length)return l.all(f,function(e){for(var i=[],r=0;r<e.length;++r){var n=e[r],a=m[r];if(t(n)&&n.length>0)for(var s=0;s<n.length;++s){var l=n[s];l.imageryLayer=a,t(l.position)||(l.position=o),i.push(l)}}return i})}}},c.prototype.queueReprojectionCommands=function(e){for(var t=this._layers,i=0,r=t.length;i<r;++i)t[i].queueReprojectionCommands(e)},c.prototype.cancelReprojections=function(){for(var e=this._layers,t=0,i=e.length;t<i;++t)e[t].cancelReprojections()},c.prototype.isDestroyed=function(){return!1},c.prototype.destroy=function(){return this.removeAll(!0),r(this)},c.prototype._update=function(){var e,i,r,n,o=!0,a=this._layers;for(r=0,n=a.length;r<n;++r)i=a[r],i._layerIndex=r,i.show?(i._isBaseLayer=o,o=!1):i._isBaseLayer=!1,i.show!==i._show&&(t(i._show)&&(t(e)||(e=[]),e.push(i)),i._show=i.show);if(t(e))for(r=0,n=e.length;r<n;++r)i=e[r],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)},c}),define("Scene/QuadtreeOccluders",["../Core/Cartesian3","../Core/defineProperties","../Core/EllipsoidalOccluder"],function(e,t,i){"use strict";function r(t){this._ellipsoid=new i(t.ellipsoid,e.ZERO)}return t(r.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),r}),define("Scene/QuadtreeTile",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Rectangle","./QuadtreeTileLoadState","./TileSelectionResult"],function(e,t,i,r,n,o){"use strict";function a(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=o.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=n.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}function s(t){e(t)&&t.freeResources()}return a.createLevelZeroTiles=function(e){for(var t=e.getNumberOfXTilesAtLevel(0),i=e.getNumberOfYTilesAtLevel(0),r=new Array(t*i),n=0,o=0;o<i;++o)for(var s=0;s<t;++s)r[n++]=new a({tilingScheme:e,x:s,y:o,level:0});return r},a.prototype._updateCustomData=function(t,i,n){var o,a,s,l=this.customData;if(e(i)&&e(n)){for(l=l.filter(function(e){return-1===n.indexOf(e)}),this._customData=l,s=this._rectangle,o=0;o<i.length;++o)a=i[o],r.contains(s,a.positionCartographic)&&l.push(a);this._frameUpdated=t}else{var u=this._parent;if(e(u)&&this._frameUpdated!==u._frameUpdated){l.length=0,s=this._rectangle;var c=u.customData;for(o=0;o<c.length;++o)a=c[o],r.contains(s,a.positionCartographic)&&l.push(a);this._frameUpdated=u._frameUpdated}}},t(a.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return e(this._southwestChild)||(this._southwestChild=new a({tilingScheme:this.tilingScheme,x:2*this.x,y:2*this.y+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return e(this._southeastChild)||(this._southeastChild=new a({tilingScheme:this.tilingScheme,x:2*this.x+1,y:2*this.y+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return e(this._northwestChild)||(this._northwestChild=new a({tilingScheme:this.tilingScheme,x:2*this.x,y:2*this.y,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return e(this._northeastChild)||(this._northeastChild=new a({tilingScheme:this.tilingScheme,x:2*this.x+1,y:2*this.y,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<n.DONE}},eligibleForUnloading:{get:function(){var t=!0;return e(this.data)&&(t=this.data.eligibleForUnloading,e(t)||(t=!0)),t}}}),a.prototype.findLevelZeroTile=function(e,t,i){var r=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=r:t>=r&&(t-=r),!(i<0||i>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(e){return e.x===t&&e.y===i})[0]},a.prototype.findTileToWest=function(e){var t=this.parent;if(void 0===t)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;var i=t.findTileToWest(e);if(void 0!==i)return t.southwestChild===this?i.southeastChild:i.northeastChild},a.prototype.findTileToEast=function(e){var t=this.parent;if(void 0===t)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;var i=t.findTileToEast(e);if(void 0!==i)return t.southeastChild===this?i.southwestChild:i.northwestChild},a.prototype.findTileToSouth=function(e){var t=this.parent;if(void 0===t)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;var i=t.findTileToSouth(e);if(void 0!==i)return t.southwestChild===this?i.northwestChild:i.northeastChild},a.prototype.findTileToNorth=function(e){var t=this.parent;if(void 0===t)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;var i=t.findTileToNorth(e);if(void 0!==i)return t.northwestChild===this?i.southwestChild:i.southeastChild},a.prototype.freeResources=function(){this.state=n.START,this.renderable=!1,this.upsampledFromParent=!1,e(this.data)&&e(this.data.freeResources)&&this.data.freeResources(),s(this._southwestChild),this._southwestChild=void 0,s(this._southeastChild),this._southeastChild=void 0,s(this._northwestChild),this._northwestChild=void 0,s(this._northeastChild),this._northeastChild=void 0},a}),define("Scene/TileReplacementQueue",["../Core/defined"],function(e){"use strict";function t(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}function i(e,t){var i=t.replacementPrevious,r=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=r),t===e.head?e.head=r:i.replacementNext=r,t===e.tail?e.tail=i:r.replacementPrevious=i,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}return t.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head},t.prototype.trimTiles=function(t){for(var r=this.tail,n=!0;n&&e(this._lastBeforeStartOfFrame)&&this.count>t&&e(r);){n=r!==this._lastBeforeStartOfFrame;var o=r.replacementPrevious;r.eligibleForUnloading&&(r.freeResources(),i(this,r)),r=o}},t.prototype.markTileRendered=function(t){var r=this.head;return r===t?void(t===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=t.replacementNext)):(++this.count,e(r)?((e(t.replacementPrevious)||e(t.replacementNext))&&i(this,t),t.replacementPrevious=void 0,t.replacementNext=r,r.replacementPrevious=t,void(this.head=t)):(t.replacementPrevious=void 0,t.replacementNext=void 0,this.head=t,void(this.tail=t)))},t}),define("Scene/QuadtreePrimitive",["../Core/Cartesian3","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/getTimestamp","../Core/Math","../Core/Matrix4","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/Ray","../Core/Rectangle","../Core/Visibility","./QuadtreeOccluders","./QuadtreeTile","./QuadtreeTileLoadState","./SceneMode","./TileReplacementQueue","./TileSelectionResult"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};var t=this._tileProvider.tilingScheme,r=t.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new y,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=i(e.maximumScreenSpaceError,2),this.tileCacheSize=i(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new m({ellipsoid:r}),this._tileLoadProgressEvent=new a,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}function S(e){var t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,T(e);var i=e._levelZeroTiles;if(r(i))for(var n=0;n<i.length;++n){for(var o=i[n],a=o.customData,s=a.length,l=0;l<s;++l){var u=a[l];u.level=0,e._addHeightCallbacks.push(u)}i[n].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}function T(e){var t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}function E(e,t){var i=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;(i!==e._lastTileLoadQueueLength||e._tilesInvalidated)&&(t.afterRender.push(a.prototype.raiseEvent.bind(e._tileLoadProgressEvent,i)),e._lastTileLoadQueueLength=i);var r=e._debug;r.enableDebugOutput&&!r.suspendLodUpdate&&(r.maxDepth=e._tilesToRender.reduce(function(e,t){return Math.max(e,t.level)},-1),r.tilesRendered=e._tilesToRender.length,r.tilesVisited===r.lastTilesVisited&&r.tilesRendered===r.lastTilesRendered&&r.tilesCulled===r.lastTilesCulled&&r.maxDepth===r.lastMaxDepth&&r.tilesWaitingForChildren===r.lastTilesWaitingForChildren&&r.maxDepthVisited===r.lastMaxDepthVisited||(console.log("Visited "+r.tilesVisited+", Rendered: "+r.tilesRendered+", Culled: "+r.tilesCulled+", Max Depth Rendered: "+r.maxDepth+", Max Depth Visited: "+r.maxDepthVisited+", Waiting for children: "+r.tilesWaitingForChildren),r.lastTilesVisited=r.tilesVisited,r.lastTilesRendered=r.tilesRendered,r.lastTilesCulled=r.tilesCulled,r.lastMaxDepth=r.maxDepth,r.lastTilesWaitingForChildren=r.tilesWaitingForChildren,r.lastMaxDepthVisited=r.maxDepthVisited))}function A(e,t){var i=p.center(e.rectangle,H),r=i.longitude-G.longitude,n=i.latitude-G.latitude;i=p.center(t.rectangle,H);var o=i.longitude-G.longitude,a=i.latitude-G.latitude;return r*r+n*n-(o*o+a*a)}function w(e,t){var i=e._debug;if(!i.suspendLodUpdate){e._tilesToRender.length=0;var n,o=e._tileProvider;if(!r(e._levelZeroTiles)){if(!o.ready)return;var a=o.tilingScheme;e._levelZeroTiles=_.createLevelZeroTiles(a);var s=e._levelZeroTiles.length;if(q.length<s)for(q=new Array(s),n=0;n<s;++n)void 0===q[n]&&(q[n]=new P)}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;var l,c=e._levelZeroTiles,d=c.length>1?e._occluders:void 0;G=t.camera.positionCartographic,c.sort(A);var h,p=e._addHeightCallbacks,f=e._removeHeightCallbacks,m=t.frameNumber;if(p.length>0||f.length>0){for(n=0,h=c.length;n<h;++n)l=c[n],l._updateCustomData(m,p,f);p.length=0,f.length=0}var g=t.camera;e._cameraPositionCartographic=g.positionCartographic;var v=u.getTranslation(g.transform,W);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(v,e._cameraReferenceFrameOriginCartographic),n=0,h=c.length;n<h;++n)l=c[n],e._tileReplacementQueue.markTileRendered(l),l.renderable?O(e,l,o,t,d,!1,q[n]):(x(e,e._tileLoadQueueHigh,l,t),++i.tilesWaitingForChildren);e._lastSelectionFrameNumber=m}}function x(e,t,i,r){i.needsLoading&&(void 0!==e.tileProvider.computeTileLoadPriority&&(i._loadPriority=e.tileProvider.computeTileLoadPriority(i,r)),t.push(i))}function P(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function D(){this.southwest=new P,this.southeast=new P,this.northwest=new P,this.northeast=new P}function I(e,t,i,n,o){var a=e._debug;++a.tilesVisited,e._tileReplacementQueue.markTileRendered(i),i._updateCustomData(t.frameNumber),i.level>a.maxDepthVisited&&(a.maxDepthVisited=i.level);var s=L(e,t,i)<e.maximumScreenSpaceError,l=i.southwestChild,u=i.southeastChild,c=i.northwestChild,d=i.northeastChild,h=e._lastSelectionFrameNumber,p=i._lastSelectionResultFrame===h?i._lastSelectionResult:C.NONE,f=e.tileProvider;if(s||n){var m=C.originalResult(p)===C.RENDERED,_=C.originalResult(p)===C.CULLED||p===C.NONE,v=i.state===g.DONE,y=m||_||v;if(y||r(f.canRenderWithoutLosingDetail)&&(y=f.canRenderWithoutLosingDetail(i)),y)return s&&x(e,e._tileLoadQueueMedium,i,t),F(e,i),o.allAreRenderable=i.renderable,o.anyWereRenderedLastFrame=p===C.RENDERED,o.notYetRenderableCount=i.renderable?0:1,i._lastSelectionResultFrame=t.frameNumber,i._lastSelectionResult=C.RENDERED,void(o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(i));n=!0,s&&x(e,e._tileLoadQueueHigh,i,t)}if(f.canRefine(i)){if(l.upsampledFromParent&&u.upsampledFromParent&&c.upsampledFromParent&&d.upsampledFromParent)return F(e,i),x(e,e._tileLoadQueueMedium,i,t),e._tileReplacementQueue.markTileRendered(l),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(d),o.allAreRenderable=i.renderable,o.anyWereRenderedLastFrame=p===C.RENDERED,o.notYetRenderableCount=i.renderable?0:1,i._lastSelectionResultFrame=t.frameNumber,i._lastSelectionResult=C.RENDERED,void(o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(i));i._lastSelectionResultFrame=t.frameNumber,i._lastSelectionResult=C.REFINED;var b=e._tilesToRender.length,S=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,E=e._tileLoadQueueHigh.length,A=e._tileToUpdateHeights.length;if(M(e,l,u,c,d,t,n,o),b!==e._tilesToRender.length){var w=o.allAreRenderable,P=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,I=!1;if(!w&&!P){for(var R=e._tilesToRender,O=b;O<R.length;++O)for(var N=R[O];void 0!==N&&N._lastSelectionResult!==C.KICKED&&N!==i;)N._lastSelectionResult=C.kick(N._lastSelectionResult),N=N.parent;e._tilesToRender.length=b,e._tileToUpdateHeights.length=A,F(e,i),i._lastSelectionResult=C.RENDERED;var B=p===C.RENDERED;!B&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=S,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=E,x(e,e._tileLoadQueueMedium,i,t),o.notYetRenderableCount=i.renderable?0:1,I=!0),o.allAreRenderable=i.renderable,o.anyWereRenderedLastFrame=B,B||e._tileToUpdateHeights.push(i),++a.tilesWaitingForChildren}e.preloadAncestors&&!I&&x(e,e._tileLoadQueueLow,i,t)}}else i._lastSelectionResultFrame=t.frameNumber,i._lastSelectionResult=C.RENDERED,F(e,i),x(e,e._tileLoadQueueHigh,i,t),o.allAreRenderable=i.renderable,o.anyWereRenderedLastFrame=p===C.RENDERED,o.notYetRenderableCount=i.renderable?0:1}function M(e,t,i,r,n,o,a,s){var l=o.camera.positionCartographic,u=e._tileProvider,c=e._occluders,d=Y[t.level],h=d.southwest,p=d.southeast,f=d.northwest,m=d.northeast;l.longitude<t.rectangle.east?l.latitude<t.rectangle.north?(O(e,t,u,o,c,a,h),O(e,i,u,o,c,a,p),O(e,r,u,o,c,a,f),O(e,n,u,o,c,a,m)):(O(e,r,u,o,c,a,f),O(e,t,u,o,c,a,h),O(e,n,u,o,c,a,m),O(e,i,u,o,c,a,p)):l.latitude<t.rectangle.north?(O(e,i,u,o,c,a,p),O(e,t,u,o,c,a,h),O(e,n,u,o,c,a,m),O(e,r,u,o,c,a,f)):(O(e,n,u,o,c,a,m),O(e,r,u,o,c,a,f),O(e,i,u,o,c,a,p),O(e,t,u,o,c,a,h)),d.combine(s)}function R(e,t){var i=t.rectangle;return r(e._cameraPositionCartographic)&&p.contains(i,e._cameraPositionCartographic)||r(e._cameraReferenceFrameOriginCartographic)&&p.contains(i,e._cameraReferenceFrameOriginCartographic)}function O(e,t,i,n,o,a,s){if(i.computeTileVisibility(t,n,o)!==f.NONE)return I(e,n,t,a,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,R(e,t)){r(t.data)&&r(t.data.vertexArray)||x(e,e._tileLoadQueueMedium,t,n);var l=e._lastSelectionFrameNumber,u=t._lastSelectionResultFrame===l?t._lastSelectionResult:C.NONE;u!==C.CULLED_BUT_NEEDED&&u!==C.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=C.CULLED_BUT_NEEDED}else e.preloadSiblings||0===t.level?(x(e,e._tileLoadQueueLow,t,n),t._lastSelectionResult=C.CULLED):t._lastSelectionResult=C.CULLED;t._lastSelectionResultFrame=n.frameNumber}function L(e,t,i){if(t.mode===v.SCENE2D||t.camera.frustum instanceof c||t.camera.frustum instanceof d)return N(e,t,i);var r=e._tileProvider.getLevelMaximumGeometricError(i.level),n=i._distance,o=t.context.drawingBufferHeight,a=t.camera.frustum.sseDenominator,s=r*o/(n*a) -;return t.fog.enabled&&(s-=l.fog(n,t.fog.density)*t.fog.sse),s}function N(e,t,i){var n=t.camera,o=n.frustum;r(o._offCenterFrustum)&&(o=o._offCenterFrustum);var a=t.context,s=a.drawingBufferWidth,u=a.drawingBufferHeight,c=e._tileProvider.getLevelMaximumGeometricError(i.level),d=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(s,u),h=c/d;return t.fog.enabled&&t.mode!==v.SCENE2D&&(h-=l.fog(i._distance,t.fog.density)*t.fog.sse),h}function F(e,t){e._tilesToRender.push(t)}function B(e,t){var i=e._tileLoadQueueHigh,r=e._tileLoadQueueMedium,n=e._tileLoadQueueLow;if(0!==i.length||0!==r.length||0!==n.length){e._tileReplacementQueue.trimTiles(e.tileCacheSize);var o=s()+e._loadQueueTimeSlice,a=e._tileProvider,l=k(e,t,a,o,i,!1);l=k(e,t,a,o,r,l),k(e,t,a,o,n,l)}}function z(e,t){return e._loadPriority-t._loadPriority}function k(e,t,i,r,n,o){void 0!==i.computeTileLoadPriority&&n.sort(z);for(var a=0,l=n.length;a<l&&(s()<r||!o);++a){var u=n[a];e._tileReplacementQueue.markTileRendered(u),i.loadTile(t,u),o=!0}return o}function V(n,o){if(n.tileProvider.ready){var a=Z;a.length=0;for(var l,u=n._tileToUpdateHeights,c=n._tileProvider.terrainProvider,d=s(),h=n._updateHeightsTimeSlice,f=d+h,m=o.mode,_=o.mapProjection,g=n.tileProvider.tilingScheme.ellipsoid;u.length>0;){var y=u[0];if(r(y.data)&&r(y.data.mesh)){var b=y.customData,S=b.length,T=!1;for(l=n._lastTileIndex;l<S;++l){var E=b[l];if(y.level>E.level){if(r(E.positionOnEllipsoidSurface)||(E.positionOnEllipsoidSurface=e.fromRadians(E.positionCartographic.longitude,E.positionCartographic.latitude,0,g)),m===v.SCENE3D){var A=g.geodeticSurfaceNormal(E.positionOnEllipsoidSurface,X.direction),w=g.getSurfaceNormalIntersectionWithZAxis(E.positionOnEllipsoidSurface,11500,X.origin);if(!r(w)){var x=Math.min(i(y.data.minimumHeight,0),-11500),P=e.multiplyByScalar(A,Math.abs(x)+1,K);e.subtract(E.positionOnEllipsoidSurface,P,X.origin)}}else t.clone(E.positionCartographic,Q),Q.height=-11500,_.project(Q,K),e.fromElements(K.z,K.x,K.y,K),e.clone(K,X.origin),e.clone(e.UNIT_X,X.direction);var D=y.data.pick(X,m,_,!1,K);r(D)&&(E.callback(D),E.level=y.level)}else if(y.level===E.level){for(var I,M=y.children,R=M.length,O=0;O<R&&(I=M[O],!p.contains(I.rectangle,E.positionCartographic));++O);var L=c.getTileDataAvailable(I.x,I.y,I.level),N=y.parent;(r(L)&&!L||r(N)&&r(N.data)&&r(N.data.terrainData)&&!N.data.terrainData.isChildAvailable(N.x,N.y,I.x,I.y))&&E.removeFunc()}if(s()>=f){T=!0;break}}if(T){n._lastTileIndex=l;break}n._lastTileIndex=0,u.shift()}else{var F=y._lastSelectionResultFrame===n._lastSelectionFrameNumber?y._lastSelectionResult:C.NONE;F!==C.RENDERED&&F!==C.CULLED_BUT_NEEDED||a.push(y),u.shift(),n._lastTileIndex=0}}for(l=0;l<a.length;l++)u.push(a[l])}}function U(e,t){for(var i=e._tileProvider,r=e._tilesToRender,n=0,o=r.length;n<o;++n){var a=r[n];i.showTileThisFrame(a,t)}}n(b.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}}),b.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0},b.prototype.forEachLoadedTile=function(e){for(var t=this._tileReplacementQueue.head;r(t);)t.state!==g.START&&e(t),t=t.replacementNext},b.prototype.forEachRenderedTile=function(e){for(var t=this._tilesToRender,i=0,r=t.length;i<r;++i)e(t[i])},b.prototype.updateHeight=function(e,t){var i=this,r={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return r.removeFunc=function(){for(var e=i._addHeightCallbacks,t=e.length,n=0;n<t;++n)if(e[n]===r){e.splice(n,1);break}i._removeHeightCallbacks.push(r)},i._addHeightCallbacks.push(r),r.removeFunc},b.prototype.update=function(e){r(this._tileProvider.update)&&this._tileProvider.update(e)},b.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(S(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),T(this),this._debug.suspendLodUpdate||this._tileReplacementQueue.markStartOfRenderFrame())},b.prototype.render=function(e){var t=e.passes,i=this._tileProvider;t.render&&(i.beginUpdate(e),w(this,e),U(this,e),i.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&i.updateForPick(e)},b.prototype.endFrame=function(e){e.passes.render&&e.mode!==v.MORPHING&&(B(this,e),V(this,e),E(this,e))},b.prototype.isDestroyed=function(){return!1},b.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var G,H=new t,W=new e,q=[];D.prototype.combine=function(e){var t=this.southwest,i=this.southeast,r=this.northwest,n=this.northeast;e.allAreRenderable=t.allAreRenderable&&i.allAreRenderable&&r.allAreRenderable&&n.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||r.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+i.notYetRenderableCount+r.notYetRenderableCount+n.notYetRenderableCount};for(var Y=new Array(30),j=0;j<Y.length;++j)Y[j]=new D;var X=new h,Q=new t,K=new e,Z=[];return b}),define("Scene/Globe",["../Core/BoundingSphere","../Core/buildModuleUrl","../Core/Cartesian3","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Ellipsoid","../Core/EllipsoidTerrainProvider","../Core/Event","../Core/IntersectionTests","../Core/Ray","../Core/Rectangle","../Core/Resource","../Renderer/ShaderSource","../Renderer/Texture","../Shaders/GlobeFS","../Shaders/GlobeVS","../Shaders/GroundAtmosphere","../ThirdParty/when","./GlobeSurfaceShaderSet","./GlobeSurfaceTileProvider","./ImageryLayerCollection","./QuadtreePrimitive","./SceneMode","./ShadowMode","./TileSelectionResult"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P){"use strict";function D(e){e=n(e,u.WGS84);var i=new c({ellipsoid:e}),r=new E;this._ellipsoid=e,this._imageryLayerCollection=r,this._surfaceShaderSet=new S,this._material=void 0,this._surface=new A({tileProvider:new T({terrainProvider:i,imageryLayers:r,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=i,this._terrainProviderChanged=new d,I(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new m({url:t("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.showGroundAtmosphere=!0,this.lightingFadeOutDistance=1e7,this.lightingFadeInDistance=2e7,this.nightFadeOutDistance=1e7,this.nightFadeInDistance=5e7,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=x.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0}function I(e){var t=[],i=o(e._material)&&(e._material.shaderSource.match(/slope/)||e._material.shaderSource.match("normalEC")),r=[C];!o(e._material)||i&&!e._terrainProvider.requestVertexNormals?e._surface._tileProvider.uniformMap=void 0:(r.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.uniformMap=e._material._uniforms),r.push(v),e._surfaceShaderSet.baseVertexShaderSource=new _({sources:[C,y],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new _({sources:r,defines:t}),e._surfaceShaderSet.material=e._material}function M(t){return function(i,r){return e.distanceSquaredTo(i.pickBoundingSphere,t)-e.distanceSquaredTo(r.pickBoundingSphere,t)}}function R(e,t){return f.contains(e.rectangle,t)?e:void 0}a(D.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return!o(this._surface)||this._surface.tileProvider.ready&&0===this._surface._tileLoadQueueHigh.length&&0===this._surface._tileLoadQueueMedium.length&&0===this._surface._tileLoadQueueLow.length}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){o(e)||(e=f.clone(f.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),o(this._material)&&I(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,I(this))}}});var O=[],L={start:0,stop:0};D.prototype.pickWorldCoordinates=function(t,r,n){var a=r.mode,s=r.mapProjection,l=O;l.length=0;var u,c,d=this._surface._tilesToRender,p=d.length;for(c=0;c<p;++c){u=d[c];var f=u.data;if(o(f)){var m=f.pickBoundingSphere;if(a!==w.SCENE3D)f.pickBoundingSphere=m=e.fromRectangleWithHeights2D(u.rectangle,s,f.tileBoundingRegion.minimumHeight,f.tileBoundingRegion.maximumHeight,m),i.fromElements(m.center.z,m.center.x,m.center.y,m.center);else{if(!o(f.renderedMesh))continue;e.clone(f.renderedMesh.boundingSphere3D,m)}var _=h.raySphere(t,m,L);o(_)&&l.push(f)}}l.sort(M(t.origin));var g;for(p=l.length,c=0;c<p&&(g=l[c].pick(t,r.mode,r.mapProjection,!0,n),!o(g));++c);return g};var N=new r;D.prototype.pick=function(e,t,r){if(r=this.pickWorldCoordinates(e,t,r),o(r)&&t.mode!==w.SCENE3D){r=i.fromElements(r.y,r.z,r.x,r);var n=t.mapProjection.unproject(r,N);r=t.globe.ellipsoid.cartographicToCartesian(n,r)}return r};var F=new i,B=new i,z=new r,k=new p;return D.prototype.getHeight=function(e){var t=this._surface._levelZeroTiles;if(o(t)){var r,a,s=t.length;for(a=0;a<s&&(r=t[a],!f.contains(r.rectangle,e));++a);if(!(a>=s)){for(;r._lastSelectionResult===P.REFINED;)r=R(r.southwestChild,e)||R(r.southeastChild,e)||R(r.northwestChild,e)||r.northeastChild;if(o(r.data)&&o(r.data.renderedMesh)){var l=this._surface._tileProvider.tilingScheme.ellipsoid,u=i.fromRadians(e.longitude,e.latitude,0,l,F),c=k,d=l.geodeticSurfaceNormal(u,c.direction),h=l.getSurfaceNormalIntersectionWithZAxis(u,11500,c.origin);if(!o(h)){var p=Math.min(n(r.data.minimumHeight,0),-11500),m=i.multiplyByScalar(d,Math.abs(p)+1,B);i.subtract(u,m,c.origin)}var _=r.data.pick(c,void 0,void 0,!1,B);if(o(_))return l.cartesianToCartographic(_,z).height}}}},D.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)},D.prototype.beginFrame=function(e){var t=this._surface,i=t.tileProvider,r=this.terrainProvider,n=this.showWaterEffect&&r.ready&&r.hasWaterMask;if(n&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;var a=this._oceanNormalMapResource,s=a.url;if(o(s)){var l=this;b(a.fetchImage(),function(t){s===l._oceanNormalMapResource.url&&(l._oceanNormalMap=l._oceanNormalMap&&l._oceanNormalMap.destroy(),l._oceanNormalMap=new g({context:e.context,source:t}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}var u=e.passes,c=e.mode;u.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,i.terrainProvider=this.terrainProvider,i.lightingFadeOutDistance=this.lightingFadeOutDistance,i.lightingFadeInDistance=this.lightingFadeInDistance,i.nightFadeOutDistance=this.nightFadeOutDistance,i.nightFadeInDistance=this.nightFadeInDistance,i.zoomedOutOceanSpecularIntensity=c===w.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,i.hasWaterMask=n,i.oceanNormalMap=this._oceanNormalMap,i.enableLighting=this.enableLighting,i.showGroundAtmosphere=this.showGroundAtmosphere,i.shadows=this.shadows,i.hueShift=this.atmosphereHueShift,i.saturationShift=this.atmosphereSaturationShift,i.brightnessShift=this.atmosphereBrightnessShift,i.fillHighlightColor=this.fillHighlightColor,t.beginFrame(e))},D.prototype.render=function(e){this.show&&(o(this._material)&&this._material.update(e.context),this._surface.render(e))},D.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)},D.prototype.isDestroyed=function(){return!1},D.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),s(this)},D}),define("Shaders/PostProcessStages/DepthViewPacked",[],function(){"use strict";return"uniform sampler2D u_depthTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nfloat z_window = czm_unpackDepth(texture2D(u_depthTexture, v_textureCoordinates));\nz_window = czm_reverseLogDepth(z_window);\nfloat n_range = czm_depthRange.near;\nfloat f_range = czm_depthRange.far;\nfloat z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range);\nfloat scale = pow(z_ndc * 0.5 + 0.5, 8.0);\ngl_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0);\n}\n"}),define("Shaders/PostProcessStages/PassThrough",[],function(){"use strict";return"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\ngl_FragColor = texture2D(colorTexture, v_textureCoordinates);\n}\n"}),define("Shaders/PostProcessStages/PassThroughDepth",[],function(){"use strict";return"uniform sampler2D u_depthTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\ngl_FragColor = czm_packDepth(texture2D(u_depthTexture, v_textureCoordinates).r);\n}\n"}),define("Scene/GlobeDepth",["../Core/BoundingRectangle","../Core/Color","../Core/defined","../Core/destroyObject","../Core/PixelFormat","../Renderer/ClearCommand","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/ShaderSource","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureWrap","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Shaders/PostProcessStages/DepthViewPacked","../Shaders/PostProcessStages/PassThrough","../Shaders/PostProcessStages/PassThroughDepth","./StencilConstants","./StencilFunction","./StencilOperation"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(){this._colorTexture=void 0,this._depthStencilTexture=void 0,this._globeDepthTexture=void 0,this._tempGlobeDepthTexture=void 0,this._tempCopyDepthTexture=void 0,this.framebuffer=void 0,this._copyDepthFramebuffer=void 0,this._tempCopyDepthFramebuffer=void 0,this._updateDepthFramebuffer=void 0,this._clearColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new e,this._rs=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useLogDepth=void 0,this._useHdr=void 0,this._debugGlobeDepthViewportCommand=void 0}function S(e,t,r,n){if(!i(e._debugGlobeDepthViewportCommand)||n!==e._useLogDepth){var o=new u({defines:[n?"LOG_DEPTH":""],sources:["uniform sampler2D u_depthTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\n float z_window = czm_unpackDepth(texture2D(u_depthTexture, v_textureCoordinates));\n z_window = czm_reverseLogDepth(z_window); \n float n_range = czm_depthRange.near;\n float f_range = czm_depthRange.far;\n float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n float scale = pow(z_ndc * 0.5 + 0.5, 8.0);\n gl_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0);\n}\n"]});e._debugGlobeDepthViewportCommand=t.createViewportQuadCommand(o,{uniformMap:{u_depthTexture:function(){return e._globeDepthTexture}},owner:e}),e._useLogDepth=n}e._debugGlobeDepthViewportCommand.execute(t,r)}function T(e){e._colorTexture=e._colorTexture&&!e._colorTexture.isDestroyed()&&e._colorTexture.destroy(),e._depthStencilTexture=e._depthStencilTexture&&!e._depthStencilTexture.isDestroyed()&&e._depthStencilTexture.destroy(),e._globeDepthTexture=e._globeDepthTexture&&!e._globeDepthTexture.isDestroyed()&&e._globeDepthTexture.destroy()}function E(e){e.framebuffer=e.framebuffer&&!e.framebuffer.isDestroyed()&&e.framebuffer.destroy(),e._copyDepthFramebuffer=e._copyDepthFramebuffer&&!e._copyDepthFramebuffer.isDestroyed()&&e._copyDepthFramebuffer.destroy()}function A(e){e._tempCopyDepthFramebuffer=e._tempCopyDepthFramebuffer&&!e._tempCopyDepthFramebuffer.isDestroyed()&&e._tempCopyDepthFramebuffer.destroy(),e._updateDepthFramebuffer=e._updateDepthFramebuffer&&!e._updateDepthFramebuffer.isDestroyed()&&e._updateDepthFramebuffer.destroy(),e._tempGlobeDepthTexture=e._tempGlobeDepthTexture&&!e._tempGlobeDepthTexture.isDestroyed()&&e._tempGlobeDepthTexture.destroy()}function w(e,t,i,r,o){e._tempGlobeDepthTexture=new d({context:t,width:i,height:r,pixelFormat:n.RGBA,pixelDatatype:s.UNSIGNED_BYTE,sampler:new c({wrapS:h.CLAMP_TO_EDGE,wrapT:h.CLAMP_TO_EDGE,minificationFilter:f.NEAREST,magnificationFilter:p.NEAREST})}),e._tempCopyDepthFramebuffer=new a({context:t,colorTextures:[e._tempGlobeDepthTexture],destroyAttachments:!1}),e._updateDepthFramebuffer=new a({context:t,colorTextures:[e._globeDepthTexture],depthStencilTexture:o.framebuffer.depthStencilTexture,destroyAttachments:!1})}function x(e,t,i,r,o){var a=o?t.halfFloatingPointTexture?s.HALF_FLOAT:s.FLOAT:s.UNSIGNED_BYTE;e._colorTexture=new d({context:t,width:i,height:r,pixelFormat:n.RGBA,pixelDatatype:a,sampler:new c({wrapS:h.CLAMP_TO_EDGE,wrapT:h.CLAMP_TO_EDGE,minificationFilter:f.NEAREST,magnificationFilter:p.NEAREST})}),e._depthStencilTexture=new d({context:t,width:i,height:r,pixelFormat:n.DEPTH_STENCIL,pixelDatatype:s.UNSIGNED_INT_24_8}),e._globeDepthTexture=new d({context:t,width:i,height:r,pixelFormat:n.RGBA,pixelDatatype:s.UNSIGNED_BYTE,sampler:new c({wrapS:h.CLAMP_TO_EDGE,wrapT:h.CLAMP_TO_EDGE,minificationFilter:f.NEAREST,magnificationFilter:p.NEAREST})})}function P(e,t){e.framebuffer=new a({context:t,colorTextures:[e._colorTexture],depthStencilTexture:e._depthStencilTexture,destroyAttachments:!1}),e._copyDepthFramebuffer=new a({context:t,colorTextures:[e._globeDepthTexture],destroyAttachments:!1})}function D(e,t,r,n,o){var a=e._colorTexture,s=!i(a)||a.width!==r||a.height!==n||o!==e._useHdr;i(e.framebuffer)&&!s||(T(e),E(e),x(e,t,r,n,o),P(e,t))}function I(r,n,a,s,u){r._viewport.width=a,r._viewport.height=s;var c=!e.equals(r._viewport,u.viewport),d=c!==r._useScissorTest;r._useScissorTest=c,e.equals(r._scissorRectangle,u.viewport)||(r._scissorRectangle=e.clone(u.viewport,r._scissorRectangle),d=!0),i(r._rs)&&e.equals(r._viewport,r._rs.viewport)&&!d||(r._rs=l.fromCache({viewport:r._viewport,scissorTest:{enabled:r._useScissorTest,rectangle:r._scissorRectangle}}),r._rsUpdate=l.fromCache({viewport:r._viewport,scissorTest:{enabled:r._useScissorTest,rectangle:r._scissorRectangle},stencilTest:{enabled:!0,frontFunction:y.EQUAL,frontOperation:{fail:C.KEEP,zFail:C.KEEP,zPass:C.KEEP},backFunction:y.NEVER,reference:v.CESIUM_3D_TILE_MASK,mask:v.CESIUM_3D_TILE_MASK}})),i(r._copyDepthCommand)||(r._copyDepthCommand=n.createViewportQuadCommand(g,{uniformMap:{u_depthTexture:function(){return r._depthStencilTexture}},owner:r})),r._copyDepthCommand.framebuffer=r._copyDepthFramebuffer,r._copyDepthCommand.renderState=r._rs,i(r._copyColorCommand)||(r._copyColorCommand=n.createViewportQuadCommand(_,{uniformMap:{colorTexture:function(){return r._colorTexture}},owner:r})),i(r._tempCopyDepthCommand)||(r._tempCopyDepthCommand=n.createViewportQuadCommand(g,{uniformMap:{u_depthTexture:function(){return r._tempCopyDepthTexture}},owner:r})),r._tempCopyDepthCommand.framebuffer=r._tempCopyDepthFramebuffer,r._tempCopyDepthCommand.renderState=r._rs,i(r._updateDepthCommand)||(r._updateDepthCommand=n.createViewportQuadCommand(_,{uniformMap:{colorTexture:function(){return r._tempGlobeDepthTexture}},owner:r})),r._updateDepthCommand.framebuffer=r._updateDepthFramebuffer,r._updateDepthCommand.renderState=r._rsUpdate,i(r._clearColorCommand)||(r._clearColorCommand=new o({color:new t(0,0,0,0),stencil:0,owner:r})),r._clearColorCommand.framebuffer=r.framebuffer}return b.prototype.executeDebugGlobeDepth=function(e,t,i){S(this,e,t,i)},b.prototype.update=function(e,t,i,r){var n=i.width,o=i.height;D(this,e,n,o,r),I(this,e,n,o,t),e.uniformState.globeDepthTexture=void 0,this._useHdr=r},b.prototype.executeCopyDepth=function(e,t){i(this._copyDepthCommand)&&(this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._globeDepthTexture)},b.prototype.executeUpdateDepth=function(e,t,r){var n=t.framebuffer.depthStencilTexture;if(r||n!==this._depthStencilTexture){if(i(this._updateDepthCommand)){if(!i(this._updateDepthFramebuffer)||this._updateDepthFramebuffer.depthStencilTexture!==n||this._updateDepthFramebuffer.getColorTexture(0)!==this._globeDepthTexture){var o=this._globeDepthTexture.width,a=this._globeDepthTexture.height;A(this),w(this,e,o,a,t),I(this,e,o,a,t)}this._tempCopyDepthTexture=n,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)}}else i(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t)},b.prototype.executeCopyColor=function(e,t){i(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)},b.prototype.clear=function(e,r,n){var o=this._clearColorCommand;i(o)&&(t.clone(n,o.color),o.execute(e,r))},b.prototype.isDestroyed=function(){return!1},b.prototype.destroy=function(){T(this),E(this),A(this),i(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),i(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy());var e=this._debugGlobeDepthViewportCommand;return i(e)&&(e.shaderProgram=e.shaderProgram.destroy()),r(this)},b}),define("Scene/GoogleEarthEnterpriseImageryProvider",["../Core/Credit","../Core/decodeGoogleEarthEnterpriseData","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../Core/GeographicTilingScheme","../Core/GoogleEarthEnterpriseMetadata","../Core/loadImageFromTypedArray","../Core/Math","../Core/Rectangle","../Core/Request","../Core/Resource","../Core/RuntimeError","../Core/TileProviderError","../ThirdParty/protobuf-minimal","../ThirdParty/when"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(){this._image=new Image}function y(t){t=i(t,i.EMPTY_OBJECT);var n;if(r(t.metadata))n=t.metadata;else{var o=p.createIfNeeded(t.url);n=new l(o)}this._metadata=n,this._tileDiscardPolicy=t.tileDiscardPolicy,this._tilingScheme=new s({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new d(-c.PI,-c.PI,c.PI,c.PI),ellipsoid:t.ellipsoid});var u=t.credit;"string"==typeof u&&(u=new e(u)),this._credit=u,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,r(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new v),this._errorEvent=new a,this._ready=!1;var h,_=this;this._readyPromise=n.readyPromise.then(function(e){if(!n.imageryPresent){var t=new f("The server "+n.url+" doesn't have imagery");return h=m.handleError(h,_,_._errorEvent,t.message,void 0,void 0,void 0,t),g.reject(t)}return m.handleSuccess(h),_._ready=e,e}).otherwise(function(e){return h=m.handleError(h,_,_._errorEvent,e.message,void 0,void 0,void 0,e),g.reject(e)})}function C(e,t,i,n,o,a){var s=l.tileXYToQuadKey(i,n,o),u=t.imageryVersion;return u=r(u)&&u>0?u:1,e._metadata.resource.getDerivedResource({url:"flatfile?f1-0"+s+"-i."+u.toString(),request:a})}function b(e){var t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";var i="PNG";return e[1]===i.charCodeAt(0)&&e[2]===i.charCodeAt(1)&&e[3]===i.charCodeAt(2)?"image/png":void 0}function S(e){for(var t=_.Reader.create(e),i=t.len,n={};t.pos<i;){var o=t.uint32();switch(o>>>3){case 1:n.imageType=t.uint32();break;case 2:n.imageData=t.bytes();break;case 3:n.alphaType=t.uint32();break;case 4:n.imageAlpha=t.bytes();break;case 5:var a=n.copyrightIds;if(r(a)||(a=n.copyrightIds=[]),2==(7&o))for(var s=t.uint32()+t.pos;t.pos<s;)a.push(t.uint32());else a.push(t.uint32());break;default:t.skipType(7&o)}}var l=n.imageType;if(r(l))switch(l){case 0:n.imageType="image/jpeg";break;case 4:n.imageType="image/png";break;default:throw new f("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}var u=n.alphaType;return r(u)&&0!==u&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete n.alphaType,delete n.imageAlpha),n}return v.prototype.isReady=function(){return!0},v.prototype.shouldDiscardImage=function(e){return e===this._image},n(y.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return this._ready}},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}}),y.prototype.getTileCredits=function(e,t,i){var n=this._metadata,o=n.getTileInformation(e,t,i);if(r(o)){var a=n.providers[o.imageryProvider];if(r(a))return[a]}},y.prototype.requestImage=function(e,i,n,o){var a=this._tileDiscardPolicy._image,s=this._metadata,c=l.tileXYToQuadKey(e,i,n),d=s.getTileInformation(e,i,n);if(!r(d)){if(s.isValid(c)){var p=new h({throttle:o.throttle,throttleByServer:o.throttleByServer,type:o.type,priorityFunction:o.priorityFunction});return void s.populateSubtree(e,i,n,p)}return a}if(!d.hasImagery())return a;var f=C(this,d,e,i,n,o).fetchArrayBuffer();return r(f)?f.then(function(e){t(s.key,e);var i,n=new Uint8Array(e),o=s.protoImagery;if(r(o)&&o||(i=b(n)),!r(i)&&(!r(o)||o)){var l=S(n);i=l.imageType,n=l.imageData}return r(i)&&r(n)?u({uint8Array:n,format:i,flipY:!0}):a}):void 0},y.prototype.pickFeatures=function(e,t,i,r,n){},y}),define("Scene/GridImageryProvider",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","../Core/GeographicTilingScheme","../ThirdParty/when"],function(e,t,i,r,n,o,a){"use strict";function s(e){e=t(e,t.EMPTY_OBJECT),this._tilingScheme=i(e.tilingScheme)?e.tilingScheme:new o({ellipsoid:e.ellipsoid}),this._cells=t(e.cells,8),this._color=t(e.color,l),this._glowColor=t(e.glowColor,u),this._glowWidth=t(e.glowWidth,6),this._backgroundColor=t(e.backgroundColor,c),this._errorEvent=new n,this._tileWidth=t(e.tileWidth,256),this._tileHeight=t(e.tileHeight,256),this._canvasSize=t(e.canvasSize,256),this._canvas=this._createGridCanvas(),this._readyPromise=a.resolve(!0)}var l=new e(1,1,1,.4),u=new e(0,1,0,.05),c=new e(0,.5,0,.2);return r(s.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return!0}},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}}),s.prototype._drawGrid=function(e){for(var t=this._canvasSize,i=0;i<=this._cells;++i){var r=i/this._cells,n=1+r*(t-1);e.moveTo(n,0),e.lineTo(n,t),e.moveTo(0,n),e.lineTo(t,n)}e.stroke()},s.prototype._createGridCanvas=function(){var e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;var t=this._canvasSize,i=e.getContext("2d"),r=this._backgroundColor.toCssColorString();i.fillStyle=r,i.fillRect(0,0,t,t);var n=this._glowColor.toCssColorString();i.strokeStyle=n,i.lineWidth=this._glowWidth,i.strokeRect(0,0,t,t),this._drawGrid(i),i.lineWidth=.5*this._glowWidth,i.strokeRect(0,0,t,t),this._drawGrid(i);var o=this._color.toCssColorString();return i.strokeStyle=o,i.lineWidth=2,i.strokeRect(0,0,t,t),i.lineWidth=1,this._drawGrid(i),e},s.prototype.getTileCredits=function(e,t,i){},s.prototype.requestImage=function(e,t,i,r){return this._canvas},s.prototype.pickFeatures=function(e,t,i,r,n){},s}),define("Scene/InvertClassification",["../Core/Color","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/PixelFormat","../Renderer/ClearCommand","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/Sampler","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Shaders/PostProcessStages/PassThrough","./BlendingState","./StencilConstants","./StencilFunction","./StencilOperation"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(){this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._texture=void 0,this._classifiedTexture=void 0,this._depthStencilTexture=void 0,this._fbo=void 0,this._fboClassified=void 0,this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new o({color:new e(0,0,0,0),owner:this}),this._clearCommand=new o({color:new e(0,0,0,0),depth:1,stencil:0});var t=this;this._uniformMap={colorTexture:function(){return t._texture},depthTexture:function(){return t._depthStencilTexture},classifiedTexture:function(){return t._classifiedTexture}}}i(C.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}}),C.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var b={depthMask:!1,stencilTest:{enabled:!0,frontFunction:v.EQUAL,frontOperation:{fail:y.KEEP,zFail:y.KEEP,zPass:y.KEEP},backFunction:v.NEVER,reference:0,mask:g.CLASSIFICATION_MASK},blending:_.ALPHA_BLEND},S={depthMask:!1,stencilTest:{enabled:!0,frontFunction:v.NOT_EQUAL,frontOperation:{fail:y.KEEP,zFail:y.KEEP,zPass:y.KEEP},backFunction:v.NEVER,reference:0,mask:g.CLASSIFICATION_MASK},blending:_.ALPHA_BLEND},T={depthMask:!0,depthTest:{enabled:!0},stencilTest:g.setCesium3DTileBit(),stencilMask:g.CESIUM_3D_TILE_MASK,blending:_.ALPHA_BLEND};return C.prototype.update=function(e){var i=this._texture,r=!t(i)||this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;var o=e.drawingBufferWidth,_=e.drawingBufferHeight,g=!t(i)||i.width!==o||i.height!==_;if((g||r)&&(this._texture=this._texture&&this._texture.destroy(),this._classifiedTexture=this._classifiedTexture&&this._classifiedTexture.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._texture=new d({context:e,width:o,height:_,pixelFormat:n.RGBA,pixelDatatype:s.UNSIGNED_BYTE,sampler:new u({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.LINEAR,magnificationFilter:h.LINEAR})}),t(this._previousFramebuffer)||(this._classifiedTexture=new d({context:e,width:o,height:_,pixelFormat:n.RGBA,pixelDatatype:s.UNSIGNED_BYTE,sampler:new u({ -wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.LINEAR,magnificationFilter:h.LINEAR})}),this._depthStencilTexture=new d({context:e,width:o,height:_,pixelFormat:n.DEPTH_STENCIL,pixelDatatype:s.UNSIGNED_INT_24_8}))),!t(this._fbo)||g||r){this._fbo=this._fbo&&this._fbo.destroy(),this._fboClassified=this._fboClassified&&this._fboClassified.destroy();var v,y;t(this._previousFramebuffer)?(v=this._previousFramebuffer.depthStencilTexture,y=this._previousFramebuffer.depthStencilRenderbuffer):v=this._depthStencilTexture,this._fbo=new a({context:e,colorTextures:[this._texture],depthStencilTexture:v,depthStencilRenderbuffer:y,destroyAttachments:!1}),t(this._previousFramebuffer)||(this._fboClassified=new a({context:e,colorTextures:[this._classifiedTexture],depthStencilTexture:v,destroyAttachments:!1}))}if(t(this._rsUnclassified)||(this._rsUnclassified=l.fromCache(b),this._rsClassified=l.fromCache(S),this._rsDefault=l.fromCache(T)),!t(this._unclassifiedCommand)||r){t(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());var C=t(this._previousFramebuffer)?"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\n vec4 color = texture2D(colorTexture, v_textureCoordinates);\n if (color.a == 0.0)\n {\n discard;\n }\n#ifdef UNCLASSIFIED\n gl_FragColor = color * czm_invertClassificationColor;\n#else\n gl_FragColor = color;\n#endif\n}\n":"#extension GL_EXT_frag_depth : enable\nuniform sampler2D colorTexture;\nuniform sampler2D depthTexture;\nuniform sampler2D classifiedTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\n vec4 color = texture2D(colorTexture, v_textureCoordinates);\n if (color.a == 0.0)\n {\n discard;\n }\n bool isClassified = all(equal(texture2D(classifiedTexture, v_textureCoordinates), vec4(0.0)));\n#ifdef UNCLASSIFIED\n vec4 highlightColor = czm_invertClassificationColor;\n if (isClassified)\n {\n discard;\n }\n#else\n vec4 highlightColor = vec4(1.0);\n if (!isClassified)\n {\n discard;\n }\n#endif\n gl_FragColor = color * highlightColor;\n gl_FragDepthEXT = texture2D(depthTexture, v_textureCoordinates).r;\n}\n",E=new c({defines:["UNCLASSIFIED"],sources:[C]}),A=new c({sources:[C]});this._unclassifiedCommand=e.createViewportQuadCommand(E,{renderState:t(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(A,{renderState:t(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),t(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),t(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(m,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}},C.prototype.clear=function(e,i){var r=i.framebuffer;t(this._previousFramebuffer)?(i.framebuffer=this._fbo,this._clearColorCommand.execute(e,i)):(i.framebuffer=this._fbo,this._clearCommand.execute(e,i),i.framebuffer=this._fboClassified,this._clearCommand.execute(e,i)),i.framebuffer=r},C.prototype.executeClassified=function(e,i){if(!t(this._previousFramebuffer)){var r=i.framebuffer;i.framebuffer=this._fboClassified,this._translucentCommand.execute(e,i),i.framebuffer=r}this._classifiedCommand.execute(e,i)},C.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)},C.prototype.isDestroyed=function(){return!1},C.prototype.destroy=function(){return this._fbo=this._fbo&&this._fbo.destroy(),this._texture=this._texture&&this._texture.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),t(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),r(this)},C});define("Scene/JobScheduler",["../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/getTimestamp","./JobType"],function(e,t,i,r,n){"use strict";function o(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}function a(t){var i=new Array(n.NUMBER_OF_JOB_TYPES);i[n.TEXTURE]=new o(e(t)?t[n.TEXTURE]:10),i[n.PROGRAM]=new o(e(t)?t[n.PROGRAM]:10),i[n.BUFFER]=new o(e(t)?t[n.BUFFER]:30);var r,a=i.length,s=0;for(r=0;r<a;++r)s+=i[r].total;var l=new Array(a);for(r=0;r<a;++r)l[r]=!1;this._totalBudget=s,this._totalUsedThisFrame=0,this._budgets=i,this._executedThisFrame=l}return t(o.prototype,{total:{get:function(){return this._total}}}),a.getTimestamp=r,t(a.prototype,{totalBudget:{get:function(){return this._totalBudget}}}),a.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget},a.prototype.resetBudgets=function(){for(var e=this._budgets,t=e.length,i=0;i<t;++i){var r=e[i];r.starvedLastFrame=r.starvedThisFrame,r.starvedThisFrame=!1,r.usedThisFrame=0,r.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0},a.prototype.execute=function(e,t){var i=this._budgets,r=i[t],n=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&n)return r.starvedThisFrame=!0,!1;var o;if(r.usedThisFrame+r.stolenFromMeThisFrame>=r.total){var s,l=i.length;for(s=0;s<l&&(o=i[s],!(o.usedThisFrame+o.stolenFromMeThisFrame<o.total)||o.starvedLastFrame);++s);if(s===l&&n)return!1;n&&(r.starvedThisFrame=!0)}var u=a.getTimestamp();e.execute();var c=a.getTimestamp()-u;return this._totalUsedThisFrame+=c,o?o.stolenFromMeThisFrame+=c:r.usedThisFrame+=c,this._executedThisFrame[t]=!0,!0},a}),define("Scene/Moon",["../Core/buildModuleUrl","../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Ellipsoid","../Core/IauOrientationAxes","../Core/Matrix3","../Core/Matrix4","../Core/Simon1994PlanetaryPositions","../Core/Transforms","./EllipsoidPrimitive","./Material"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(t){t=i(t,i.EMPTY_OBJECT);var n=t.textureUrl;r(n)||(n=e("Assets/Textures/moonSmall.jpg")),this.show=i(t.show,!0),this.textureUrl=n,this._ellipsoid=i(t.ellipsoid,a.MOON),this.onlySunLighting=i(t.onlySunLighting,!0),this._ellipsoidPrimitive=new h({radii:this.ellipsoid.radii,material:p.fromType(p.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new s}n(f.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var m=new l,_=new l,g=new t,v=[];return f.prototype.update=function(e){if(this.show){var t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;var i=e.time;r(d.computeIcrfToFixedMatrix(i,m))||d.computeTemeToPseudoFixedMatrix(i,m);var n=this._axes.evaluate(i,_);l.transpose(n,n),l.multiply(m,n,n);var o=c.computeMoonPositionInEarthInertialFrame(i,g);l.multiplyByVector(m,o,o),u.fromRotationTranslation(n,o,t.modelMatrix);var a=e.commandList;return e.commandList=v,v.length=0,t.update(e),e.commandList=a,1===v.length?v[0]:void 0}},f.prototype.isDestroyed=function(){return!1},f.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),o(this)},f}),define("Scene/NeverTileDiscardPolicy",[],function(){"use strict";function e(e){}return e.prototype.isReady=function(){return!0},e.prototype.shouldDiscardImage=function(e){return!1},e}),define("Shaders/AdjustTranslucentFS",[],function(){"use strict";return"#ifdef MRT\n#extension GL_EXT_draw_buffers : enable\n#endif\nuniform vec4 u_bgColor;\nuniform sampler2D u_depthTexture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nif (texture2D(u_depthTexture, v_textureCoordinates).r < 1.0)\n{\n#ifdef MRT\ngl_FragData[0] = u_bgColor;\ngl_FragData[1] = vec4(u_bgColor.a);\n#else\ngl_FragColor = u_bgColor;\n#endif\nreturn;\n}\ndiscard;\n}\n"}),define("Shaders/CompositeOITFS",[],function(){"use strict";return"uniform sampler2D u_opaque;\nuniform sampler2D u_accumulation;\nuniform sampler2D u_revealage;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nvec4 opaque = texture2D(u_opaque, v_textureCoordinates);\nvec4 accum = texture2D(u_accumulation, v_textureCoordinates);\nfloat r = texture2D(u_revealage, v_textureCoordinates).r;\n#ifdef MRT\nvec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a);\n#else\nvec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r);\n#endif\ngl_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque;\nif (opaque != czm_backgroundColor)\n{\ngl_FragColor.a = 1.0;\n}\n}\n"}),define("Scene/OIT",["../Core/BoundingRectangle","../Core/Color","../Core/defined","../Core/destroyObject","../Core/PixelFormat","../Core/WebGLConstants","../Renderer/ClearCommand","../Renderer/DrawCommand","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/ShaderSource","../Renderer/Texture","../Shaders/AdjustTranslucentFS","../Shaders/CompositeOITFS","./BlendEquation","./BlendFunction"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(i){this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;var r=i.colorBufferFloat&&i.depthTexture;this._translucentMRTSupport=i.drawBuffers&&r,this._translucentMultipassSupport=!this._translucentMRTSupport&&r,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=void 0,this._alphaFBO=void 0,this._adjustTranslucentFBO=void 0,this._adjustAlphaFBO=void 0,this._opaqueClearCommand=new a({color:new t(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new a({color:new t(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new a({color:new t(0,0,0,0),owner:this}),this._alphaClearCommand=new a({color:new t(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new e,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function v(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function y(e){e._translucentFBO=e._translucentFBO&&!e._translucentFBO.isDestroyed()&&e._translucentFBO.destroy(),e._alphaFBO=e._alphaFBO&&!e._alphaFBO.isDestroyed()&&e._alphaFBO.destroy(),e._adjustTranslucentFBO=e._adjustTranslucentFBO&&!e._adjustTranslucentFBO.isDestroyed()&&e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO=e._adjustAlphaFBO&&!e._adjustAlphaFBO.isDestroyed()&&e._adjustAlphaFBO.destroy()}function C(e){v(e),y(e)}function b(e,t,i,r){v(e),e._accumulationTexture=new h({context:t,width:i,height:r,pixelFormat:n.RGBA,pixelDatatype:u.FLOAT});var o=new Float32Array(i*r*4);e._revealageTexture=new h({context:t,pixelFormat:n.RGBA,pixelDatatype:u.FLOAT,source:{arrayBufferView:o,width:i,height:r},flipY:!1})}function S(e,t){y(e);var i=o.FRAMEBUFFER_COMPLETE,r=!0;if(e._translucentMRTSupport&&(e._translucentFBO=new l({context:t,colorTextures:[e._accumulationTexture,e._revealageTexture],depthStencilTexture:e._depthStencilTexture,destroyAttachments:!1}),e._adjustTranslucentFBO=new l({context:t,colorTextures:[e._accumulationTexture,e._revealageTexture],destroyAttachments:!1}),e._translucentFBO.status===i&&e._adjustTranslucentFBO.status===i||(y(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO=new l({context:t,colorTextures:[e._accumulationTexture],depthStencilTexture:e._depthStencilTexture,destroyAttachments:!1}),e._alphaFBO=new l({context:t,colorTextures:[e._revealageTexture],depthStencilTexture:e._depthStencilTexture,destroyAttachments:!1}),e._adjustTranslucentFBO=new l({context:t,colorTextures:[e._accumulationTexture],destroyAttachments:!1}),e._adjustAlphaFBO=new l({context:t,colorTextures:[e._revealageTexture],destroyAttachments:!1});var n=e._translucentFBO.status===i,a=e._alphaFBO.status===i,s=e._adjustTranslucentFBO.status===i,u=e._adjustAlphaFBO.status===i;n&&a&&s&&u||(C(e),e._translucentMultipassSupport=!1,r=!1)}return r}function T(e,t,r,n){var o=r[n.id];if(!i(o)){var a=c.getState(n);a.depthMask=!1,a.blending=t,o=c.fromCache(a),r[n.id]=o}return o}function E(e,t,i){return T(t,O,e._translucentRenderStateCache,i)}function A(e,t,i){return T(t,L,e._translucentRenderStateCache,i)}function w(e,t,i){return T(t,N,e._alphaRenderStateCache,i)}function x(e,t,r,n){var o=e.shaderCache.getDerivedShaderProgram(t,r);if(!i(o)){var a=t._attributeLocations,s=t.fragmentShaderSource.clone();s.sources=s.sources.map(function(e){return e=d.replaceMain(e,"czm_translucent_main"),e=e.replace(/gl_FragColor/g,"czm_gl_FragColor"),e=e.replace(/\bdiscard\b/g,"czm_discard = true"),e=e.replace(/czm_phong/g,"czm_translucentPhong")}),s.sources.splice(0,0,(-1!==n.indexOf("gl_FragData")?"#extension GL_EXT_draw_buffers : enable \n":"")+"vec4 czm_gl_FragColor;\nbool czm_discard = false;\n"),s.sources.push("void main()\n{\n czm_translucent_main();\n if (czm_discard)\n {\n discard;\n }\n"+n+"}\n"),o=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:s,attributeLocations:a})}return o}function P(e,t){return x(e,t,"translucentMRT",F)}function D(e,t){return x(e,t,"translucentMultipass",B)}function I(e,t){return x(e,t,"alphaMultipass",z)}function M(e,t,r,n,o,a){var s,l,u,c=t.context,d=t.frameState.useLogDepth,h=t._hdr,p=n.framebuffer,f=o.length,m=t.frameState.shadowState.lightShadowsEnabled;n.framebuffer=e._adjustTranslucentFBO,e._adjustTranslucentCommand.execute(c,n),n.framebuffer=e._adjustAlphaFBO,e._adjustAlphaCommand.execute(c,n);var _=e._opaqueFBO;for(n.framebuffer=e._translucentFBO,u=0;u<f;++u)s=o[u],s=d?s.derivedCommands.logDepth.command:s,s=h?s.derivedCommands.hdr.command:s,l=m&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,r(l,t,c,n,_);for(i(a)&&(s=a.unclassifiedCommand,l=m&&s.receiveShadows?s.derivedCommands.oit.shadows.translucentCommand:s.derivedCommands.oit.translucentCommand,r(l,t,c,n,_)),n.framebuffer=e._alphaFBO,u=0;u<f;++u)s=o[u],s=d?s.derivedCommands.logDepth.command:s,s=h?s.derivedCommands.hdr.command:s,l=m&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,r(l,t,c,n,_);i(a)&&(s=a.unclassifiedCommand,l=m&&s.receiveShadows?s.derivedCommands.oit.shadows.alphaCommand:s.derivedCommands.oit.alphaCommand,r(l,t,c,n,_)),n.framebuffer=p}function R(e,t,r,n,o,a){var s=t.context,l=t.frameState.useLogDepth,u=t._hdr,c=n.framebuffer,d=o.length,h=t.frameState.shadowState.lightShadowsEnabled;n.framebuffer=e._adjustTranslucentFBO,e._adjustTranslucentCommand.execute(s,n);var p=e._opaqueFBO;n.framebuffer=e._translucentFBO;for(var f,m,_=0;_<d;++_)f=o[_],f=l?f.derivedCommands.logDepth.command:f,f=u?f.derivedCommands.hdr.command:f,m=h&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand,r(m,t,s,n,p);i(a)&&(f=a.unclassifiedCommand,m=h&&f.receiveShadows?f.derivedCommands.oit.shadows.translucentCommand:f.derivedCommands.oit.translucentCommand,r(m,t,s,n,p)),n.framebuffer=c}g.prototype.update=function(t,r,n,o){if(this.isSupported()){this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.depthStencilTexture;var a=this._opaqueTexture.width,s=this._opaqueTexture.height,l=this._accumulationTexture,u=!i(l)||l.width!==a||l.height!==s||o!==this._useHDR;if(u&&b(this,t,a,s),i(this._translucentFBO)&&!u||S(this,t)){this._useHDR=o;var h,m,_=this;i(this._compositeCommand)||(h=new d({sources:[f]}),this._translucentMRTSupport&&h.defines.push("MRT"),m={u_opaque:function(){return _._opaqueTexture},u_accumulation:function(){return _._accumulationTexture},u_revealage:function(){return _._revealageTexture}},this._compositeCommand=t.createViewportQuadCommand(h,{uniformMap:m,owner:this})),i(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(h=new d({defines:["MRT"],sources:[p]}),m={u_bgColor:function(){return _._translucentMRTClearCommand.color},u_depthTexture:function(){return _._depthStencilTexture}},this._adjustTranslucentCommand=t.createViewportQuadCommand(h,{uniformMap:m,owner:this})):this._translucentMultipassSupport&&(h=new d({sources:[p]}),m={u_bgColor:function(){return _._translucentMultipassClearCommand.color},u_depthTexture:function(){return _._depthStencilTexture}},this._adjustTranslucentCommand=t.createViewportQuadCommand(h,{uniformMap:m,owner:this}),m={u_bgColor:function(){return _._alphaClearCommand.color},u_depthTexture:function(){return _._depthStencilTexture}},this._adjustAlphaCommand=t.createViewportQuadCommand(h,{uniformMap:m,owner:this}))),this._viewport.width=a,this._viewport.height=s;var g=!e.equals(this._viewport,r.viewport),v=g!==this._useScissorTest;this._useScissorTest=g,e.equals(this._scissorRectangle,r.viewport)||(this._scissorRectangle=e.clone(r.viewport,this._scissorRectangle),v=!0),i(this._rs)&&e.equals(this._viewport,this._rs.viewport)&&!v||(this._rs=c.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),i(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),i(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)}}};var O={enabled:!0,color:new t(0,0,0,0),equationRgb:m.ADD,equationAlpha:m.ADD,functionSourceRgb:_.ONE,functionDestinationRgb:_.ONE,functionSourceAlpha:_.ZERO,functionDestinationAlpha:_.ONE_MINUS_SOURCE_ALPHA},L={enabled:!0,color:new t(0,0,0,0),equationRgb:m.ADD,equationAlpha:m.ADD,functionSourceRgb:_.ONE,functionDestinationRgb:_.ONE,functionSourceAlpha:_.ONE,functionDestinationAlpha:_.ONE},N={enabled:!0,color:new t(0,0,0,0),equationRgb:m.ADD,equationAlpha:m.ADD,functionSourceRgb:_.ZERO,functionDestinationRgb:_.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:_.ZERO,functionDestinationAlpha:_.ONE_MINUS_SOURCE_ALPHA},F=" vec3 Ci = czm_gl_FragColor.rgb * czm_gl_FragColor.a;\n float ai = czm_gl_FragColor.a;\n float wzi = czm_alphaWeight(ai);\n gl_FragData[0] = vec4(Ci * wzi, ai);\n gl_FragData[1] = vec4(ai * wzi);\n",B=" vec3 Ci = czm_gl_FragColor.rgb * czm_gl_FragColor.a;\n float ai = czm_gl_FragColor.a;\n float wzi = czm_alphaWeight(ai);\n gl_FragColor = vec4(Ci, ai) * wzi;\n",z=" float ai = czm_gl_FragColor.a;\n gl_FragColor = vec4(ai);\n";return g.prototype.createDerivedCommands=function(e,t,r){if(i(r)||(r={}),this._translucentMRTSupport){var n,o;i(r.translucentCommand)&&(n=r.translucentCommand.shaderProgram,o=r.translucentCommand.renderState),r.translucentCommand=s.shallowClone(e,r.translucentCommand),i(n)&&r.shaderProgramId===e.shaderProgram.id?(r.translucentCommand.shaderProgram=n,r.translucentCommand.renderState=o):(r.translucentCommand.shaderProgram=P(t,e.shaderProgram),r.translucentCommand.renderState=E(this,t,e.renderState),r.shaderProgramId=e.shaderProgram.id)}else{var a,l,u,c;i(r.translucentCommand)&&(a=r.translucentCommand.shaderProgram,l=r.translucentCommand.renderState,u=r.alphaCommand.shaderProgram,c=r.alphaCommand.renderState),r.translucentCommand=s.shallowClone(e,r.translucentCommand),r.alphaCommand=s.shallowClone(e,r.alphaCommand),i(a)&&r.shaderProgramId===e.shaderProgram.id?(r.translucentCommand.shaderProgram=a,r.translucentCommand.renderState=l,r.alphaCommand.shaderProgram=u,r.alphaCommand.renderState=c):(r.translucentCommand.shaderProgram=D(t,e.shaderProgram),r.translucentCommand.renderState=A(this,t,e.renderState),r.alphaCommand.shaderProgram=I(t,e.shaderProgram),r.alphaCommand.renderState=w(this,t,e.renderState),r.shaderProgramId=e.shaderProgram.id)}return r},g.prototype.executeCommands=function(e,t,i,r,n){if(this._translucentMRTSupport)return void R(this,e,t,i,r,n);M(this,e,t,i,r,n)},g.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)},g.prototype.clear=function(e,i,r){var n=i.framebuffer;i.framebuffer=this._opaqueFBO,t.clone(r,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,i),i.framebuffer=this._translucentFBO,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,i),this._translucentMultipassSupport&&(i.framebuffer=this._alphaFBO,this._alphaClearCommand.execute(e,i)),i.framebuffer=n},g.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return C(this),i(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),i(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),i(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),r(this)},g}),define("Scene/Particle",["../Core/Cartesian2","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties"],function(e,t,i,r,n,o,a){"use strict";function s(i){i=n(i,n.EMPTY_OBJECT),this.mass=n(i.mass,1),this.position=t.clone(n(i.position,t.ZERO)),this.velocity=t.clone(n(i.velocity,t.ZERO)),this.life=n(i.life,Number.MAX_VALUE),this.image=i.image,this.startColor=r.clone(n(i.startColor,r.WHITE)),this.endColor=r.clone(n(i.endColor,r.WHITE)),this.startScale=n(i.startScale,1),this.endScale=n(i.endScale,1),this.imageSize=e.clone(n(i.imageSize,l)),this._age=0,this._normalizedAge=0,this._billboard=void 0}var l=new e(1,1);a(s.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var u=new t;return s.prototype.update=function(e,i){return t.multiplyByScalar(this.velocity,e,u),t.add(this.position,u,this.position),o(i)&&i(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life},s}),define("Scene/ParticleBurst",["../Core/defaultValue","../Core/defineProperties"],function(e,t){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.time=e(t.time,0),this.minimum=e(t.minimum,0),this.maximum=e(t.maximum,50),this._complete=!1}return t(i.prototype,{complete:{get:function(){return this._complete}}}),i}),define("Scene/ParticleEmitter",["../Core/DeveloperError"],function(e){"use strict";function t(e){}return t.prototype.emit=function(t){e.throwInstantiationError()},t}),define("Scene/ParticleSystem",["../Core/Cartesian2","../Core/Cartesian3","../Core/Check","../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Event","../Core/JulianDate","../Core/Math","../Core/Matrix4","./BillboardCollection","./CircleEmitter","./Particle"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(t){t=n(t,n.EMPTY_OBJECT),this.show=n(t.show,!0),this.updateCallback=t.updateCallback,this.loop=n(t.loop,!0),this.image=n(t.image,void 0);var i=t.emitter;o(i)||(i=new p(.5)),this._emitter=i,this._bursts=t.bursts,this._modelMatrix=d.clone(n(t.modelMatrix,d.IDENTITY)),this._emitterModelMatrix=d.clone(n(t.emitterModelMatrix,d.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new d,this._startColor=r.clone(n(t.color,n(t.startColor,r.WHITE))),this._endColor=r.clone(n(t.color,n(t.endColor,r.WHITE))),this._startScale=n(t.scale,n(t.startScale,1)),this._endScale=n(t.scale,n(t.endScale,1)),this._emissionRate=n(t.emissionRate,5),this._minimumSpeed=n(t.speed,n(t.minimumSpeed,1)),this._maximumSpeed=n(t.speed,n(t.maximumSpeed,1)),this._minimumParticleLife=n(t.particleLife,n(t.minimumParticleLife,5)),this._maximumParticleLife=n(t.particleLife,n(t.maximumParticleLife,5)),this._minimumMass=n(t.mass,n(t.minimumMass,1)),this._maximumMass=n(t.mass,n(t.maximumMass,1)),this._minimumImageSize=e.clone(n(t.imageSize,n(t.minimumImageSize,E))),this._maximumImageSize=e.clone(n(t.imageSize,n(t.maximumImageSize,E))),this._lifetime=n(t.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new l,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}function _(e){var t=e._emissionRate,i=e._maximumParticleLife,r=0,n=e._bursts;if(o(n))for(var a=n.length,s=0;s<a;++s)r+=n[s].maximum;for(var l=e._billboardCollection,u=e.image,c=Math.ceil(t*i+r),d=e._particles,h=e._particlePool,p=Math.max(c-d.length-h.length,0),m=0;m<p;++m){var _=new f;_._billboard=l.add({image:u}),h.push(_)}e._particleEstimate=c}function g(e){var t=e._particlePool.pop();return o(t)||(t=new f),t}function v(e,t){e._particlePool.push(t)}function y(e){for(var t=e._particles,i=e._particlePool,r=e._billboardCollection,n=t.length,o=i.length,a=e._particleEstimate,s=o-Math.max(a-n-o,0),l=s;l<o;++l){var u=i[l];r.remove(u._billboard)}i.length=s}function C(e){o(e._billboard)&&(e._billboard.show=!1)}function b(e,t){var i=t._billboard;o(i)||(i=t._billboard=e._billboardCollection.add({image:t.image})),i.width=t.imageSize.x,i.height=t.imageSize.y,i.position=t.position,i.show=!0;var n=c.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),a=c.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),s=c.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),l=c.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);i.color=new r(n,a,s,l),i.scale=c.lerp(t.startScale,t.endScale,t.normalizedAge)}function S(e,i){i.startColor=r.clone(e._startColor,i.startColor),i.endColor=r.clone(e._endColor,i.endColor),i.startScale=e._startScale,i.endScale=e._endScale,i.image=e.image,i.life=c.randomBetween(e._minimumParticleLife,e._maximumParticleLife),i.mass=c.randomBetween(e._minimumMass,e._maximumMass),i.imageSize.x=c.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),i.imageSize.y=c.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),i._normalizedAge=0,i._age=0;var n=c.randomBetween(e._minimumSpeed,e._maximumSpeed);t.multiplyByScalar(i.velocity,n,i.velocity),e._particles.push(i)}function T(e,t){if(e._isComplete)return 0;t=c.mod(t,e._lifetime);var i=t*e._emissionRate,r=Math.floor(i);if(e._carryOver+=i-r,e._carryOver>1&&(r++,e._carryOver-=1),o(e.bursts))for(var n=e.bursts.length,a=0;a<n;a++){var s=e.bursts[a],l=e._currentTime;o(s)&&!s._complete&&l>s.time&&(r+=c.randomBetween(s.minimum,s.maximum),s._complete=!0)}return r}var E=new e(1,1);a(m.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!d.equals(this._modelMatrix,e),d.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!d.equals(this._emitterModelMatrix,e),d.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){r.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){r.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});var A=new t;return m.prototype.update=function(e){if(this.show){o(this._billboardCollection)||(this._billboardCollection=new h),this._updateParticlePool&&(_(this),this._updateParticlePool=!1);var i=0;this._previousTime&&(i=u.secondsDifference(e.time,this._previousTime)),i<0&&(i=0);var r,n,a=this._particles,s=this._emitter,l=this.updateCallback,p=a.length;for(r=0;r<p;++r)n=a[r],n.update(i,l)?b(this,n):(C(n),v(this,n),a[r]=a[p-1],--r,--p);a.length=p;var f=T(this,i);if(f>0&&o(s)){this._matrixDirty&&(this._combinedMatrix=d.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);var m=this._combinedMatrix;for(r=0;r<f;r++)n=g(this),this._emitter.emit(n),t.add(n.position,n.velocity,A),d.multiplyByPoint(m,A,A),n.position=d.multiplyByPoint(m,n.position,n.position),t.subtract(A,n.position,n.velocity),t.normalize(n.velocity,n.velocity),S(this,n),b(this,n)}if(this._billboardCollection.update(e),this._previousTime=u.clone(e.time,this._previousTime),this._currentTime+=i,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=c.mod(this._currentTime,this._lifetime),this.bursts){var E=this.bursts.length;for(r=0;r<E;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120==0&&y(this)}},m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),s(this)},m}),define("Widgets/getElement",["../Core/DeveloperError"],function(e){"use strict";function t(e){if("string"==typeof e){e=document.getElementById(e)}return e}return t}),define("Scene/PerformanceDisplay",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/getTimestamp","../Widgets/getElement"],function(e,t,i,r,n,o,a){"use strict";function s(t){t=e(t,e.EMPTY_OBJECT);var i=a(t.container);this._container=i;var r=document.createElement("div");r.className="cesium-performanceDisplay";var n=document.createElement("div");n.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),n.appendChild(this._fpsText);var s=document.createElement("div");s.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),s.appendChild(this._msText),r.appendChild(s),r.appendChild(n),this._container.appendChild(r),this._lastFpsSampleTime=o(),this._lastMsSampleTime=o(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;var l=document.createElement("div");l.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),l.appendChild(this._throttledText),r.appendChild(l)}return i(s.prototype,{ -throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(this._throttledText.nodeValue=e?"(throttled)":"",this._throttled=e)}}}),s.prototype.update=function(t){var i=o(),r=e(t,!0);this._fpsFrameCount++;var n=i-this._lastFpsSampleTime;if(n>1e3){var a="N/A";r&&(a=1e3*this._fpsFrameCount/n|0),this._fpsText.nodeValue=a+" FPS",this._lastFpsSampleTime=i,this._fpsFrameCount=0}this._msFrameCount++;var s=i-this._lastMsSampleTime;if(s>200){var l="N/A";r&&(l=(s/this._msFrameCount).toFixed(2)),this._msText.nodeValue=l+" MS",this._lastMsSampleTime=i,this._msFrameCount=0}},s.prototype.destroy=function(){return r(this)},s}),define("Scene/PickDepth",["../Core/Cartesian4","../Core/defined","../Core/destroyObject","../Core/PixelFormat","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/ShaderSource","../Renderer/Texture"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(){this._framebuffer=void 0,this._depthTexture=void 0,this._textureToCopy=void 0,this._copyDepthCommand=void 0,this._useLogDepth=void 0,this._debugPickDepthViewportCommand=void 0}function c(e,i,r,n){if(!t(e._debugPickDepthViewportCommand)||n!==e._useLogDepth){var o=new s({defines:[n?"LOG_DEPTH":""],sources:["uniform sampler2D u_texture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\n float z_window = czm_unpackDepth(texture2D(u_texture, v_textureCoordinates));\n z_window = czm_reverseLogDepth(z_window); \n float n_range = czm_depthRange.near;\n float f_range = czm_depthRange.far;\n float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range);\n float scale = pow(z_ndc * 0.5 + 0.5, 8.0);\n gl_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0);\n}\n"]});e._debugPickDepthViewportCommand=i.createViewportQuadCommand(o,{uniformMap:{u_texture:function(){return e._depthTexture}},owner:e}),e._useLogDepth=n}e._debugPickDepthViewportCommand.execute(i,r)}function d(e){e._depthTexture=e._depthTexture&&!e._depthTexture.isDestroyed()&&e._depthTexture.destroy()}function h(e){e._framebuffer=e._framebuffer&&!e._framebuffer.isDestroyed()&&e._framebuffer.destroy()}function p(e,t,i,n){e._depthTexture=new l({context:t,width:i,height:n,pixelFormat:r.RGBA,pixelDatatype:o.UNSIGNED_BYTE})}function f(e,t,i,r){d(e),h(e),p(e,t,i,r),e._framebuffer=new n({context:t,colorTextures:[e._depthTexture],destroyAttachments:!1})}function m(e,i,r){var n=r.width,o=r.height,a=e._depthTexture,s=!t(a)||a.width!==n||a.height!==o;t(e._framebuffer)&&!s||f(e,i,n,o)}function _(e,i,r){if(!t(e._copyDepthCommand)){e._copyDepthCommand=i.createViewportQuadCommand("uniform sampler2D u_texture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\n gl_FragColor = czm_packDepth(texture2D(u_texture, v_textureCoordinates).r);\n}\n",{renderState:a.fromCache(),uniformMap:{u_texture:function(){return e._textureToCopy}},owner:e})}e._textureToCopy=r,e._copyDepthCommand.framebuffer=e._framebuffer}u.prototype.executeDebugPickDepth=function(e,t,i){c(this,e,t,i)},u.prototype.update=function(e,t){m(this,e,t),_(this,e,t)};var g=new e,v=new e(1,1/255,1/65025,1/16581375);return u.prototype.getDepth=function(t,i,r){var n=t.readPixels({x:i,y:r,width:1,height:1,framebuffer:this._framebuffer}),o=e.unpack(n,0,g);return e.divideByScalar(o,255,o),e.dot(o,v)},u.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)},u.prototype.isDestroyed=function(){return!1},u.prototype.destroy=function(){return d(this),h(this),this._copyDepthCommand.shaderProgram=t(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy(),i(this)},u}),define("Scene/PickDepthFramebuffer",["../Core/BoundingRectangle","../Core/Color","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/PixelFormat","../Renderer/Framebuffer","../Renderer/PassState","../Renderer/PixelDatatype","../Renderer/Renderbuffer","../Renderer/RenderbufferFormat","../Renderer/Texture"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(){this._depthStencilTexture=void 0,this._framebuffer=void 0,this._passState=void 0}function p(e){e._framebuffer=e._framebuffer&&e._framebuffer.destroy(),e._depthStencilTexture=e._depthStencilTexture&&e._depthStencilTexture.destroy()}function f(t,i){var r=i.drawingBufferWidth,n=i.drawingBufferHeight;t._depthStencilTexture=new d({context:i,width:r,height:n,pixelFormat:o.DEPTH_STENCIL,pixelDatatype:l.UNSIGNED_INT_24_8}),t._framebuffer=new a({context:i,depthStencilTexture:t._depthStencilTexture,destroyAttachments:!1});var u=new s(i);u.blendingEnabled=!1,u.scissorTest={enabled:!0,rectangle:new e},u.viewport=new e,t._passState=u}return h.prototype.update=function(e,t,i){var n=i.width,o=i.height;r(this._framebuffer)&&n===this._depthStencilTexture.width&&o===this._depthStencilTexture.height||(p(this),f(this,e));var a=this._framebuffer,s=this._passState;return s.framebuffer=a,s.viewport.width=n,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s},h.prototype.isDestroyed=function(){return!1},h.prototype.destroy=function(){return p(this),n(this)},h}),define("Scene/PickFramebuffer",["../Core/BoundingRectangle","../Core/Color","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Renderer/Framebuffer","../Renderer/PassState","../Renderer/Renderbuffer","../Renderer/RenderbufferFormat","../Renderer/Texture"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t){var i=new a(t);i.blendingEnabled=!1,i.scissorTest={enabled:!0,rectangle:new e},i.viewport=new e,this._context=t,this._fb=void 0,this._passState=i,this._width=0,this._height=0}c.prototype.begin=function(t,i){var n=this._context,a=i.width,c=i.height;return e.clone(t,this._passState.scissorTest.rectangle),r(this._fb)&&this._width===a&&this._height===c||(this._width=a,this._height=c,this._fb=this._fb&&this._fb.destroy(),this._fb=new o({context:n,colorTextures:[new u({context:n,width:a,height:c})],depthStencilRenderbuffer:new s({context:n,width:a,height:c,format:l.DEPTH_STENCIL})}),this._passState.framebuffer=this._fb),this._passState.viewport.width=a,this._passState.viewport.height=c,this._passState};var d=new t;return c.prototype.end=function(e){for(var n=i(e.width,1),o=i(e.height,1),a=this._context,s=a.readPixels({x:e.x,y:e.y,width:n,height:o,framebuffer:this._fb}),l=Math.max(n,o),u=l*l,c=Math.floor(.5*n),h=Math.floor(.5*o),p=0,f=0,m=0,_=-1,g=0;g<u;++g){if(-c<=p&&p<=c&&-h<=f&&f<=h){var v=4*((h-f)*n+p+c);d.red=t.byteToFloat(s[v]),d.green=t.byteToFloat(s[v+1]),d.blue=t.byteToFloat(s[v+2]),d.alpha=t.byteToFloat(s[v+3]);var y=a.getObjectByPickColor(d);if(r(y))return y}if(p===f||p<0&&-p===f||p>0&&p===1-f){var C=m;m=-_,_=C}p+=m,f+=_}},c.prototype.isDestroyed=function(){return!1},c.prototype.destroy=function(){return this._fb=this._fb&&this._fb.destroy(),n(this)},c}),define("Scene/PostProcessStageSampleMode",[],function(){"use strict";return{NEAREST:0,LINEAR:1}}),define("Scene/PostProcessStage",["../Core/BoundingRectangle","../Core/Check","../Core/Color","../Core/combine","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/Math","../Core/PixelFormat","../Core/Resource","../Renderer/PassState","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/Sampler","../Renderer/ShaderSource","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../ThirdParty/when","./PostProcessStageSampleMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T){"use strict";function E(t){t=o(t,o.EMPTY_OBJECT);var r=t.fragmentShader,s=o(t.textureScale,1),l=o(t.pixelFormat,d.RGBA);this._fragmentShader=r,this._uniforms=t.uniforms,this._textureScale=s,this._forcePowerOfTwo=o(t.forcePowerOfTwo,!1),this._sampleMode=o(t.sampleMode,T.NEAREST),this._pixelFormat=l,this._pixelDatatype=o(t.pixelDatatype,f.UNSIGNED_BYTE),this._clearColor=o(t.clearColor,i.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;var u=new p;u.scissorTest={enabled:!0,rectangle:a(t.scissorRectangle)?e.clone(t.scissorRectangle):new e},this._passState=u,this._ready=!1;var c=t.name;a(c)||(c=n()),this._name=c,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}function A(e,t,i){var r=t[i];return("string"==typeof r||r instanceof HTMLCanvasElement||r instanceof HTMLImageElement||r instanceof HTMLVideoElement||r instanceof ImageData)&&e._dirtyUniforms.push(i),{get:function(){return t[i]},set:function(r){var n=t[i];t[i]=r;var o=e._actualUniforms,s=o[i];a(s)&&s!==n&&s instanceof v&&!a(e._textureCache.getStageByName(i))&&(e._texturesToRelease.push(s),delete o[i],delete o[i+"Dimensions"]),n instanceof v&&e._texturesToRelease.push(n),"string"==typeof r||r instanceof HTMLCanvasElement||r instanceof HTMLImageElement||r instanceof HTMLVideoElement||r instanceof ImageData?e._dirtyUniforms.push(i):o[i]=r}}}function w(e,t){return function(){var i=e._actualUniforms[t];return"function"==typeof i?i():i}}function x(e,t){return function(){var i=e[t]();if(a(i))return i.dimensions}}function P(e){if(!a(e._uniformMap)){var t={},i={},n=e._uniforms,o=e._actualUniforms;for(var l in n)if(n.hasOwnProperty(l)){"function"!=typeof n[l]?(t[l]=w(e,l),i[l]=A(e,n,l)):(t[l]=n[l],i[l]=n[l]),o[l]=n[l];var u=t[l]();("string"==typeof u||u instanceof v||u instanceof HTMLImageElement||u instanceof HTMLCanvasElement||u instanceof HTMLVideoElement)&&(t[l+"Dimensions"]=x(t,l))}e._uniforms={},s(e._uniforms,i),e._uniformMap=r(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}}function D(e,t){if(!a(e._command)||e._logDepthChanged||e._selectedDirty){var i=e._fragmentShader;if(a(e._selectedIdTexture)){var r=e._selectedIdTexture.width;i=i.replace(/varying\s+vec2\s+v_textureCoordinates;/g,""),i="#define CZM_SELECTED_FEATURE \nuniform sampler2D czm_idTexture; \nuniform sampler2D czm_selectedIdTexture; \nuniform float czm_selectedIdTextureStep; \nvarying vec2 v_textureCoordinates; \nbool czm_selected(vec2 offset) \n{ \n bool selected = false;\n vec4 id = texture2D(czm_idTexture, v_textureCoordinates + offset); \n for (int i = 0; i < "+r+"; ++i) \n { \n vec4 selectedId = texture2D(czm_selectedIdTexture, vec2(float(i) * czm_selectedIdTextureStep, 0.5)); \n if (all(equal(id, selectedId))) \n { \n return true; \n } \n } \n return false; \n} \n\nbool czm_selected() \n{ \n return czm_selected(vec2(0.0)); \n} \n\n"+i}var n=new g({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[i]});e._command=t.createViewportQuadCommand(n,{uniformMap:e._uniformMap,owner:e})}}function I(e){var t,i,r=e._sampleMode;r===T.LINEAR?(t=C.LINEAR,i=y.LINEAR):(t=C.NEAREST,i=y.NEAREST);var n=e._sampler;a(n)&&n.minificationFilter===t&&n.magnificationFilter===i||(e._sampler=new _({wrapS:b.CLAMP_TO_EDGE,wrapT:b.CLAMP_TO_EDGE,minificationFilter:t,magnificationFilter:i}))}function M(e,t){return function(i){e._texturesToCreate.push({name:t,source:i})}}function R(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function O(e,t){var i,r,n,o=e._texturesToRelease,s=o.length;for(i=0;i<s;++i)r=o[i],r=r&&r.destroy();o.length=0;var l=e._texturesToCreate;for(s=l.length,i=0;i<s;++i){var u=l[i];n=u.name;var c=u.source;e._actualUniforms[n]=new v({context:t,source:c})}l.length=0;var d=e._dirtyUniforms;if(0===d.length&&!a(e._texturePromise))return void(e._ready=!0);if(0!==d.length&&!a(e._texturePromise)){s=d.length;var p=e._uniforms,f=[];for(i=0;i<s;++i){n=d[i];var m=p[n],_=e._textureCache.getStageByName(m);if(a(_))e._actualUniforms[n]=R(e,m);else if("string"==typeof m){var g=new h({url:m});f.push(g.fetchImage().then(M(e,n)))}else e._texturesToCreate.push({name:n,source:m})}d.length=0,f.length>0?(e._ready=!1,e._texturePromise=S.all(f).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}}function L(e){a(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();var t=e._textureCache;if(a(t)){var i=e._uniforms,r=e._actualUniforms;for(var n in r)r.hasOwnProperty(n)&&r[n]instanceof v&&(a(t.getStageByName(i[n]))||r[n].destroy(),e._dirtyUniforms.push(n))}}function N(e){var t=a(e._selected)?e._selected.length:0,i=a(e._parentSelected)?e._parentSelected:0,r=e._selected!==e._selectedShadow||t!==e._selectedLength;if(r=r||e._parentSelected!==e._parentSelectedShadow||i!==e._parentSelectedLength,a(e._selected)&&a(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):a(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!r&&a(e._combinedSelected)){if(!a(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(var n=0;n<t;++n)if(e._combinedSelected[n]!==e._combinedSelectedShadow[n])return!0}return r}function F(e,t){if(e._selectedDirty){e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;var r=e._combinedSelected;if(a(r)){var n,o,s=0,l=r.length;for(n=0;n<l;++n)o=r[n],a(o.pickIds)?s+=o.pickIds.length:a(o.pickId)&&++s;if(0===l||0===s){var u=new Uint8Array(4);return u[0]=255,u[1]=255,u[2]=255,u[3]=255,void(e._selectedIdTexture=new v({context:t,pixelFormat:d.RGBA,pixelDatatype:f.UNSIGNED_BYTE,source:{arrayBufferView:u,width:1,height:1},sampler:new _({wrapS:b.CLAMP_TO_EDGE,wrapT:b.CLAMP_TO_EDGE,minificationFilter:C.NEAREST,magnificationFilter:y.NEAREST})}))}var c,h=0,p=new Uint8Array(4*s);for(n=0;n<l;++n)if(o=r[n],a(o.pickIds))for(var m=o.pickIds,g=m.length,S=0;S<g;++S)c=m[S].color,p[h]=i.floatToByte(c.red),p[h+1]=i.floatToByte(c.green),p[h+2]=i.floatToByte(c.blue),p[h+3]=i.floatToByte(c.alpha),h+=4;else a(o.pickId)&&(c=o.pickId.color,p[h]=i.floatToByte(c.red),p[h+1]=i.floatToByte(c.green),p[h+2]=i.floatToByte(c.blue),p[h+3]=i.floatToByte(c.alpha),h+=4);e._selectedIdTexture=new v({context:t,pixelFormat:d.RGBA,pixelDatatype:f.UNSIGNED_BYTE,source:{arrayBufferView:p,width:s,height:1},sampler:new _({wrapS:b.CLAMP_TO_EDGE,wrapT:b.CLAMP_TO_EDGE,minificationFilter:C.NEAREST,magnificationFilter:y.NEAREST})})}}}s(E.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(a(this._textureCache)){var e=this._textureCache.getFramebuffer(this._name);if(a(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var B=/uniform\s+sampler2D\s+depthTexture/g;return E.prototype._isSupported=function(e){return!B.test(this._fragmentShader)||e.depthTexture},E.prototype.update=function(t,i){if(this.enabled===this._enabled||this.enabled||L(this),this._enabled=this.enabled,this._enabled&&(this._logDepthChanged=i!==this._useLogDepth,this._useLogDepth=i,this._selectedDirty=N(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=a(this._selected)?this._selected.length:0,this._parentSelectedLength=a(this._parentSelected)?this._parentSelected.length:0,F(this,t),P(this),O(this,t),D(this,t),I(this),this._selectedDirty=!1,this._ready)){var r=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=r,a(r)){var n,o=r.getColorTexture(0);o.width===t.drawingBufferWidth&&o.height===t.drawingBufferHeight||(n=this._renderState,a(n)&&o.width===n.viewport.width&&o.height===n.viewport.height||(this._renderState=m.fromCache({viewport:new e(0,0,o.width,o.height)}))),this._command.renderState=n}}},E.prototype.execute=function(e,t,i,r){if(a(this._command)&&a(this._command.framebuffer)&&this._ready&&this._enabled){this._colorTexture=t,this._depthTexture=i,this._idTexture=r,_.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);var n=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;a(n)&&(n.context=e),this._command.execute(e,n)}},E.prototype.isDestroyed=function(){return!1},E.prototype.destroy=function(){return L(this),l(this)},E}),define("Shaders/PostProcessStages/AcesTonemapping",[],function(){"use strict";return"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\n#ifdef AUTO_EXPOSURE\nuniform sampler2D autoExposure;\n#endif\nvoid main()\n{\nvec4 fragmentColor = texture2D(colorTexture, v_textureCoordinates);\nvec3 color = fragmentColor.rgb;\n#ifdef AUTO_EXPOSURE\ncolor /= texture2D(autoExposure, vec2(0.5)).r;\n#endif\nfloat g = 0.985;\nfloat a = 0.065;\nfloat b = 0.0001;\nfloat c = 0.433;\nfloat d = 0.238;\ncolor = (color * (color + a) - b) / (color * (g * color + c) + d);\ncolor = clamp(color, 0.0, 1.0);\ncolor = czm_inverseGamma(color);\ngl_FragColor = vec4(color, fragmentColor.a);\n}\n"}),define("Shaders/PostProcessStages/AmbientOcclusionGenerate",[],function(){"use strict";return"uniform sampler2D randomTexture;\nuniform sampler2D depthTexture;\nuniform float intensity;\nuniform float bias;\nuniform float lengthCap;\nuniform float stepSize;\nuniform float frustumLength;\nvarying vec2 v_textureCoordinates;\nvec4 clipToEye(vec2 uv, float depth)\n{\nvec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));\nvec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0);\nposEC = posEC / posEC.w;\nreturn posEC;\n}\nvec3 getNormalXEdge(vec3 posInCamera, float depthU, float depthD, float depthL, float depthR, vec2 pixelSize)\n{\nvec4 posInCameraUp = clipToEye(v_textureCoordinates - vec2(0.0, pixelSize.y), depthU);\nvec4 posInCameraDown = clipToEye(v_textureCoordinates + vec2(0.0, pixelSize.y), depthD);\nvec4 posInCameraLeft = clipToEye(v_textureCoordinates - vec2(pixelSize.x, 0.0), depthL);\nvec4 posInCameraRight = clipToEye(v_textureCoordinates + vec2(pixelSize.x, 0.0), depthR);\nvec3 up = posInCamera.xyz - posInCameraUp.xyz;\nvec3 down = posInCameraDown.xyz - posInCamera.xyz;\nvec3 left = posInCamera.xyz - posInCameraLeft.xyz;\nvec3 right = posInCameraRight.xyz - posInCamera.xyz;\nvec3 DX = length(left) < length(right) ? left : right;\nvec3 DY = length(up) < length(down) ? up : down;\nreturn normalize(cross(DY, DX));\n}\nvoid main(void)\n{\nfloat depth = czm_readDepth(depthTexture, v_textureCoordinates);\nvec4 posInCamera = clipToEye(v_textureCoordinates, depth);\nif (posInCamera.z > frustumLength)\n{\ngl_FragColor = vec4(1.0);\nreturn;\n}\nvec2 pixelSize = 1.0 / czm_viewport.zw;\nfloat depthU = czm_readDepth(depthTexture, v_textureCoordinates- vec2(0.0, pixelSize.y));\nfloat depthD = czm_readDepth(depthTexture, v_textureCoordinates+ vec2(0.0, pixelSize.y));\nfloat depthL = czm_readDepth(depthTexture, v_textureCoordinates- vec2(pixelSize.x, 0.0));\nfloat depthR = czm_readDepth(depthTexture, v_textureCoordinates+ vec2(pixelSize.x, 0.0));\nvec3 normalInCamera = getNormalXEdge(posInCamera.xyz, depthU, depthD, depthL, depthR, pixelSize);\nfloat ao = 0.0;\nvec2 sampleDirection = vec2(1.0, 0.0);\nfloat gapAngle = 90.0 * czm_radiansPerDegree;\nfloat randomVal = texture2D(randomTexture, v_textureCoordinates).x;\nfloat inverseViewportWidth = 1.0 / czm_viewport.z;\nfloat inverseViewportHeight = 1.0 / czm_viewport.w;\nfor (int i = 0; i < 4; i++)\n{\nfloat newGapAngle = gapAngle * (float(i) + randomVal);\nfloat cosVal = cos(newGapAngle);\nfloat sinVal = sin(newGapAngle);\nvec2 rotatedSampleDirection = vec2(cosVal * sampleDirection.x - sinVal * sampleDirection.y, sinVal * sampleDirection.x + cosVal * sampleDirection.y);\nfloat localAO = 0.0;\nfloat localStepSize = stepSize;\nfor (int j = 0; j < 6; j++)\n{\nvec2 directionWithStep = vec2(rotatedSampleDirection.x * localStepSize * inverseViewportWidth, rotatedSampleDirection.y * localStepSize * inverseViewportHeight);\nvec2 newCoords = directionWithStep + v_textureCoordinates;\nif(newCoords.x > 1.0 || newCoords.y > 1.0 || newCoords.x < 0.0 || newCoords.y < 0.0)\n{\nbreak;\n}\nfloat stepDepthInfo = czm_readDepth(depthTexture, newCoords);\nvec4 stepPosInCamera = clipToEye(newCoords, stepDepthInfo);\nvec3 diffVec = stepPosInCamera.xyz - posInCamera.xyz;\nfloat len = length(diffVec);\nif (len > lengthCap)\n{\nbreak;\n}\nfloat dotVal = clamp(dot(normalInCamera, normalize(diffVec)), 0.0, 1.0 );\nfloat weight = len / lengthCap;\nweight = 1.0 - weight * weight;\nif (dotVal < bias)\n{\ndotVal = 0.0;\n}\nlocalAO = max(localAO, dotVal * weight);\nlocalStepSize += stepSize;\n}\nao += localAO;\n}\nao /= 4.0;\nao = 1.0 - clamp(ao, 0.0, 1.0);\nao = pow(ao, intensity);\ngl_FragColor = vec4(vec3(ao), 1.0);\n}\n"}),define("Shaders/PostProcessStages/AmbientOcclusionModulate",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform sampler2D ambientOcclusionTexture;\nuniform bool ambientOcclusionOnly;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec3 color = texture2D(colorTexture, v_textureCoordinates).rgb;\nvec3 ao = texture2D(ambientOcclusionTexture, v_textureCoordinates).rgb;\ngl_FragColor.rgb = ambientOcclusionOnly ? ao : ao * color;\n}\n"}),define("Shaders/PostProcessStages/BlackAndWhite",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform float gradations;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec3 rgb = texture2D(colorTexture, v_textureCoordinates).rgb;\n#ifdef CZM_SELECTED_FEATURE\nif (czm_selected()) {\ngl_FragColor = vec4(rgb, 1.0);\nreturn;\n}\n#endif\nfloat luminance = czm_luminance(rgb);\nfloat darkness = luminance * gradations;\ndarkness = (darkness - fract(darkness)) / gradations;\ngl_FragColor = vec4(vec3(darkness), 1.0);\n}\n"}),define("Shaders/PostProcessStages/BloomComposite",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform sampler2D bloomTexture;\nuniform bool glowOnly;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec4 bloom = texture2D(bloomTexture, v_textureCoordinates);\nvec4 color = texture2D(colorTexture, v_textureCoordinates);\ngl_FragColor = glowOnly ? bloom : bloom + color;\n}\n"}),define("Shaders/PostProcessStages/Brightness",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform float brightness;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec3 rgb = texture2D(colorTexture, v_textureCoordinates).rgb;\nvec3 target = vec3(0.0);\ngl_FragColor = vec4(mix(target, rgb, brightness), 1.0);\n}\n"}),define("Shaders/PostProcessStages/ContrastBias",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform float contrast;\nuniform float brightness;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec3 sceneColor = texture2D(colorTexture, v_textureCoordinates).xyz;\nsceneColor = czm_RGBToHSB(sceneColor);\nsceneColor.z += brightness;\nsceneColor = czm_HSBToRGB(sceneColor);\nfloat factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast));\nsceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5);\ngl_FragColor = vec4(sceneColor, 1.0);\n}\n"}),define("Shaders/PostProcessStages/DepthOfField",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform sampler2D blurTexture;\nuniform sampler2D depthTexture;\nuniform float focalDistance;\nvarying vec2 v_textureCoordinates;\nvec4 toEye(vec2 uv, float depth)\n{\nvec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0));\nvec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0);\nposInCamera = posInCamera / posInCamera.w;\nreturn posInCamera;\n}\nfloat computeDepthBlur(float depth)\n{\nfloat f;\nif (depth < focalDistance)\n{\nf = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x);\n}\nelse\n{\nf = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance);\nf = pow(f, 0.1);\n}\nf *= f;\nf = clamp(f, 0.0, 1.0);\nreturn pow(f, 0.5);\n}\nvoid main(void)\n{\nfloat depth = czm_readDepth(depthTexture, v_textureCoordinates);\nvec4 posInCamera = toEye(v_textureCoordinates, depth);\nfloat d = computeDepthBlur(-posInCamera.z);\ngl_FragColor = mix(texture2D(colorTexture, v_textureCoordinates), texture2D(blurTexture, v_textureCoordinates), d);\n}\n"}),define("Shaders/PostProcessStages/DepthView",[],function(){"use strict";return"uniform sampler2D depthTexture;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nfloat depth = czm_readDepth(depthTexture, v_textureCoordinates);\ngl_FragColor = vec4(vec3(depth), 1.0);\n}\n"}),define("Shaders/PostProcessStages/EdgeDetection",[],function(){"use strict";return"uniform sampler2D depthTexture;\nuniform float length;\nuniform vec4 color;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nfloat directions[3];\ndirections[0] = -1.0;\ndirections[1] = 0.0;\ndirections[2] = 1.0;\nfloat scalars[3];\nscalars[0] = 3.0;\nscalars[1] = 10.0;\nscalars[2] = 3.0;\nfloat padx = 1.0 / czm_viewport.z;\nfloat pady = 1.0 / czm_viewport.w;\n#ifdef CZM_SELECTED_FEATURE\nbool selected = false;\nfor (int i = 0; i < 3; ++i)\n{\nfloat dir = directions[i];\nselected = selected || czm_selected(vec2(-padx, dir * pady));\nselected = selected || czm_selected(vec2(padx, dir * pady));\nselected = selected || czm_selected(vec2(dir * padx, -pady));\nselected = selected || czm_selected(vec2(dir * padx, pady));\nif (selected)\n{\nbreak;\n}\n}\nif (!selected)\n{\ngl_FragColor = vec4(color.rgb, 0.0);\nreturn;\n}\n#endif\nfloat horizEdge = 0.0;\nfloat vertEdge = 0.0;\nfor (int i = 0; i < 3; ++i)\n{\nfloat dir = directions[i];\nfloat scale = scalars[i];\nhorizEdge -= texture2D(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale;\nhorizEdge += texture2D(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale;\nvertEdge -= texture2D(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale;\nvertEdge += texture2D(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale;\n}\nfloat len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge);\ngl_FragColor = vec4(color.rgb, len > length ? color.a : 0.0);\n}\n"}),define("Shaders/PostProcessStages/FilmicTonemapping",[],function(){"use strict";return"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\n#ifdef AUTO_EXPOSURE\nuniform sampler2D autoExposure;\n#endif\nvoid main()\n{\nvec4 fragmentColor = texture2D(colorTexture, v_textureCoordinates);\nvec3 color = fragmentColor.rgb;\n#ifdef AUTO_EXPOSURE\nfloat exposure = texture2D(autoExposure, vec2(0.5)).r;\ncolor /= exposure;\n#endif\nconst float A = 0.22;\nconst float B = 0.30;\nconst float C = 0.10;\nconst float D = 0.20;\nconst float E = 0.01;\nconst float F = 0.30;\nconst float white = 11.2;\nvec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F;\nfloat w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F;\nc = czm_inverseGamma(c / w);\ngl_FragColor = vec4(c, fragmentColor.a);\n}\n"}),define("Shaders/PostProcessStages/FXAA",[],function(){"use strict";return"varying vec2 v_textureCoordinates;\nuniform sampler2D colorTexture;\nconst float fxaaQualitySubpix = 0.5;\nconst float fxaaQualityEdgeThreshold = 0.125;\nconst float fxaaQualityEdgeThresholdMin = 0.0833;\nvoid main()\n{\nvec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw;\nvec4 color = FxaaPixelShader(\nv_textureCoordinates,\ncolorTexture,\nfxaaQualityRcpFrame,\nfxaaQualitySubpix,\nfxaaQualityEdgeThreshold,\nfxaaQualityEdgeThresholdMin);\nfloat alpha = texture2D(colorTexture, v_textureCoordinates).a;\ngl_FragColor = vec4(color.rgb, alpha);\n}\n"}),define("Shaders/PostProcessStages/GaussianBlur1D",[],function(){"use strict";return"#define SAMPLES 8\nuniform float delta;\nuniform float sigma;\nuniform float direction;\nuniform sampler2D colorTexture;\n#ifdef USE_STEP_SIZE\nuniform float stepSize;\n#else\nuniform vec2 step;\n#endif\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nvec2 st = v_textureCoordinates;\nvec2 dir = vec2(1.0 - direction, direction);\n#ifdef USE_STEP_SIZE\nvec2 step = vec2(stepSize / czm_viewport.zw);\n#else\nvec2 step = step;\n#endif\nvec3 g;\ng.x = 1.0 / (sqrt(czm_twoPi) * sigma);\ng.y = exp((-0.5 * delta * delta) / (sigma * sigma));\ng.z = g.y * g.y;\nvec4 result = texture2D(colorTexture, st) * g.x;\nfor (int i = 1; i < SAMPLES; ++i)\n{\ng.xy *= g.yz;\nvec2 offset = float(i) * dir * step;\nresult += texture2D(colorTexture, st - offset) * g.x;\nresult += texture2D(colorTexture, st + offset) * g.x;\n}\ngl_FragColor = result;\n}\n"}),define("Shaders/PostProcessStages/LensFlare",[],function(){"use strict" -;return"uniform sampler2D colorTexture;\nuniform sampler2D dirtTexture;\nuniform sampler2D starTexture;\nuniform vec2 dirtTextureDimensions;\nuniform float distortion;\nuniform float ghostDispersal;\nuniform float haloWidth;\nuniform float earthRadius;\nuniform float intensity;\nvarying vec2 v_textureCoordinates;\n#define DISTANCE_TO_SPACE 6500000.0\nvec4 getNDCFromWC(vec3 WC, float earthRadius)\n{\nvec4 positionEC = czm_view * vec4(WC, 1.0);\npositionEC = vec4(positionEC.x + earthRadius , positionEC.y, positionEC.z, 1.0);\nvec4 positionWC = czm_eyeToWindowCoordinates(positionEC);\nreturn czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0);\n}\nfloat isInEarth(vec2 texcoord, vec2 sceneSize)\n{\nvec2 NDC = texcoord * 2.0 - 1.0;\nvec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0);\nvec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5);\nNDC.xy -= earthPosSC.xy;\nfloat X = abs(NDC.x) * sceneSize.x;\nfloat Y = abs(NDC.y) * sceneSize.y;\nreturn clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0));\n}\nvec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace)\n{\nvec2 sceneSize = czm_viewport.zw;\nvec3 color;\nif(isSpace)\n{\ncolor.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture2D(tex, texcoord + direction * distortion.r).r;\ncolor.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture2D(tex, texcoord + direction * distortion.g).g;\ncolor.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture2D(tex, texcoord + direction * distortion.b).b;\n}\nelse\n{\ncolor.r = texture2D(tex, texcoord + direction * distortion.r).r;\ncolor.g = texture2D(tex, texcoord + direction * distortion.g).g;\ncolor.b = texture2D(tex, texcoord + direction * distortion.b).b;\n}\nreturn vec4(clamp(color, 0.0, 1.0), 0.0);\n}\nvoid main(void)\n{\nvec4 originalColor = texture2D(colorTexture, v_textureCoordinates);\nvec3 rgb = originalColor.rgb;\nbool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE;\nvec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0);\nvec4 sunPositionEC = czm_view * sunPos;\nvec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC);\nsunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0);\nif(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1)))\n{\ngl_FragColor = originalColor;\nreturn;\n}\nvec2 texcoord = -v_textureCoordinates + vec2(1.0);\nvec2 texelSize = 1.0 / czm_viewport.zw;\nvec3 distortionVec = vec3(-texelSize.x * distortion, 0.0, texelSize.x * distortion);\nvec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal;\nvec3 direction = normalize(vec3(ghostVec, 0.0));\nvec4 result = vec4(0.0);\nvec4 ghost = vec4(0.0);\nfor (int i = 0; i < 4; ++i)\n{\nvec2 offset = fract(texcoord + ghostVec * float(i));\nghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace);\n}\nresult += ghost;\nvec2 haloVec = normalize(ghostVec) * haloWidth;\nfloat weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5));\nweightForHalo = pow(1.0 - weightForHalo, 5.0);\nresult += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5;\nvec2 dirtTexCoords = (v_textureCoordinates * czm_viewport.zw) / dirtTextureDimensions;\nif (dirtTexCoords.x > 1.0)\n{\ndirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x);\n}\nif (dirtTexCoords.y > 1.0)\n{\ndirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y);\n}\nresult += texture2D(dirtTexture, dirtTexCoords);\nfloat camrot = czm_view[0].z + czm_view[1].y;\nfloat cosValue = cos(camrot);\nfloat sinValue = sin(camrot);\nmat3 rotation = mat3(\ncosValue, -sinValue, 0.0,\nsinValue, cosValue, 0.0,\n0.0, 0.0, 1.0\n);\nvec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0);\nvec3 st2 = vec3((rotation * st1).xy, 1.0);\nvec3 st3 = st2 * 0.5 + vec3(0.5);\nvec2 lensStarTexcoord = st3.xy;\nfloat weightForLensFlare = length(vec3(sunPos.xy, 0.0));\nfloat oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0);\nif (!isSpace)\n{\nresult *= oneMinusWeightForLensFlare * intensity * 0.2;\n}\nelse\n{\nresult *= oneMinusWeightForLensFlare * intensity;\nresult *= texture2D(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0;\n}\nresult += texture2D(colorTexture, v_textureCoordinates);\ngl_FragColor = result;\n}\n"}),define("Shaders/PostProcessStages/ModifiedReinhardTonemapping",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform vec3 white;\nvarying vec2 v_textureCoordinates;\n#ifdef AUTO_EXPOSURE\nuniform sampler2D autoExposure;\n#endif\nvoid main()\n{\nvec4 fragmentColor = texture2D(colorTexture, v_textureCoordinates);\nvec3 color = fragmentColor.rgb;\n#ifdef AUTO_EXPOSURE\nfloat exposure = texture2D(autoExposure, vec2(0.5)).r;\ncolor /= exposure;\n#endif\ncolor = (color * (1.0 + color / white)) / (1.0 + color);\ncolor = czm_inverseGamma(color);\ngl_FragColor = vec4(color, fragmentColor.a);\n}\n"}),define("Shaders/PostProcessStages/NightVision",[],function(){"use strict";return"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\nfloat rand(vec2 co)\n{\nreturn fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453);\n}\nvoid main(void)\n{\nfloat noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1;\nvec3 rgb = texture2D(colorTexture, v_textureCoordinates).rgb;\nvec3 green = vec3(0.0, 1.0, 0.0);\ngl_FragColor = vec4((noiseValue + rgb) * green, 1.0);\n}\n"}),define("Shaders/PostProcessStages/ReinhardTonemapping",[],function(){"use strict";return"uniform sampler2D colorTexture;\nvarying vec2 v_textureCoordinates;\n#ifdef AUTO_EXPOSURE\nuniform sampler2D autoExposure;\n#endif\nvoid main()\n{\nvec4 fragmentColor = texture2D(colorTexture, v_textureCoordinates);\nvec3 color = fragmentColor.rgb;\n#ifdef AUTO_EXPOSURE\nfloat exposure = texture2D(autoExposure, vec2(0.5)).r;\ncolor /= exposure;\n#endif\ncolor = color / (1.0 + color);\ncolor = czm_inverseGamma(color);\ngl_FragColor = vec4(color, fragmentColor.a);\n}\n"}),define("Shaders/PostProcessStages/Silhouette",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform sampler2D silhouetteTexture;\nvarying vec2 v_textureCoordinates;\nvoid main(void)\n{\nvec4 silhouetteColor = texture2D(silhouetteTexture, v_textureCoordinates);\nvec4 color = texture2D(colorTexture, v_textureCoordinates);\ngl_FragColor = mix(color, silhouetteColor, silhouetteColor.a);\n}\n"}),define("ThirdParty/Shaders/FXAA3_11",[],function(){"use strict";return"#if (FXAA_QUALITY_PRESET == 10)\n#define FXAA_QUALITY_PS 3\n#define FXAA_QUALITY_P0 1.5\n#define FXAA_QUALITY_P1 3.0\n#define FXAA_QUALITY_P2 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 11)\n#define FXAA_QUALITY_PS 4\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 3.0\n#define FXAA_QUALITY_P3 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 12)\n#define FXAA_QUALITY_PS 5\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 4.0\n#define FXAA_QUALITY_P4 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 13)\n#define FXAA_QUALITY_PS 6\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 4.0\n#define FXAA_QUALITY_P5 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 14)\n#define FXAA_QUALITY_PS 7\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 4.0\n#define FXAA_QUALITY_P6 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 15)\n#define FXAA_QUALITY_PS 8\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 4.0\n#define FXAA_QUALITY_P7 12.0\n#endif\n#if (FXAA_QUALITY_PRESET == 20)\n#define FXAA_QUALITY_PS 3\n#define FXAA_QUALITY_P0 1.5\n#define FXAA_QUALITY_P1 2.0\n#define FXAA_QUALITY_P2 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 21)\n#define FXAA_QUALITY_PS 4\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 22)\n#define FXAA_QUALITY_PS 5\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 23)\n#define FXAA_QUALITY_PS 6\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 24)\n#define FXAA_QUALITY_PS 7\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 3.0\n#define FXAA_QUALITY_P6 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 25)\n#define FXAA_QUALITY_PS 8\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 4.0\n#define FXAA_QUALITY_P7 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 26)\n#define FXAA_QUALITY_PS 9\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 2.0\n#define FXAA_QUALITY_P7 4.0\n#define FXAA_QUALITY_P8 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 27)\n#define FXAA_QUALITY_PS 10\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 2.0\n#define FXAA_QUALITY_P7 2.0\n#define FXAA_QUALITY_P8 4.0\n#define FXAA_QUALITY_P9 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 28)\n#define FXAA_QUALITY_PS 11\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 2.0\n#define FXAA_QUALITY_P7 2.0\n#define FXAA_QUALITY_P8 2.0\n#define FXAA_QUALITY_P9 4.0\n#define FXAA_QUALITY_P10 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 29)\n#define FXAA_QUALITY_PS 12\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.5\n#define FXAA_QUALITY_P2 2.0\n#define FXAA_QUALITY_P3 2.0\n#define FXAA_QUALITY_P4 2.0\n#define FXAA_QUALITY_P5 2.0\n#define FXAA_QUALITY_P6 2.0\n#define FXAA_QUALITY_P7 2.0\n#define FXAA_QUALITY_P8 2.0\n#define FXAA_QUALITY_P9 2.0\n#define FXAA_QUALITY_P10 4.0\n#define FXAA_QUALITY_P11 8.0\n#endif\n#if (FXAA_QUALITY_PRESET == 39)\n#define FXAA_QUALITY_PS 12\n#define FXAA_QUALITY_P0 1.0\n#define FXAA_QUALITY_P1 1.0\n#define FXAA_QUALITY_P2 1.0\n#define FXAA_QUALITY_P3 1.0\n#define FXAA_QUALITY_P4 1.0\n#define FXAA_QUALITY_P5 1.5\n#define FXAA_QUALITY_P6 2.0\n#define FXAA_QUALITY_P7 2.0\n#define FXAA_QUALITY_P8 2.0\n#define FXAA_QUALITY_P9 2.0\n#define FXAA_QUALITY_P10 4.0\n#define FXAA_QUALITY_P11 8.0\n#endif\n#define FxaaBool bool\n#define FxaaFloat float\n#define FxaaFloat2 vec2\n#define FxaaFloat3 vec3\n#define FxaaFloat4 vec4\n#define FxaaHalf float\n#define FxaaHalf2 vec2\n#define FxaaHalf3 vec3\n#define FxaaHalf4 vec4\n#define FxaaInt2 vec2\n#define FxaaTex sampler2D\n#define FxaaSat(x) clamp(x, 0.0, 1.0)\n#define FxaaTexTop(t, p) texture2D(t, p)\n#define FxaaTexOff(t, p, o, r) texture2D(t, p + (o * r))\nFxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; }\nFxaaFloat4 FxaaPixelShader(\nFxaaFloat2 pos,\nFxaaTex tex,\nFxaaFloat2 fxaaQualityRcpFrame,\nFxaaFloat fxaaQualitySubpix,\nFxaaFloat fxaaQualityEdgeThreshold,\nFxaaFloat fxaaQualityEdgeThresholdMin\n) {\nFxaaFloat2 posM;\nposM.x = pos.x;\nposM.y = pos.y;\nFxaaFloat4 rgbyM = FxaaTexTop(tex, posM);\n#define lumaM rgbyM.y\nFxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy));\nFxaaFloat maxSM = max(lumaS, lumaM);\nFxaaFloat minSM = min(lumaS, lumaM);\nFxaaFloat maxESM = max(lumaE, maxSM);\nFxaaFloat minESM = min(lumaE, minSM);\nFxaaFloat maxWN = max(lumaN, lumaW);\nFxaaFloat minWN = min(lumaN, lumaW);\nFxaaFloat rangeMax = max(maxWN, maxESM);\nFxaaFloat rangeMin = min(minWN, minESM);\nFxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold;\nFxaaFloat range = rangeMax - rangeMin;\nFxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled);\nFxaaBool earlyExit = range < rangeMaxClamped;\nif(earlyExit)\nreturn rgbyM;\nFxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy));\nFxaaFloat lumaNS = lumaN + lumaS;\nFxaaFloat lumaWE = lumaW + lumaE;\nFxaaFloat subpixRcpRange = 1.0/range;\nFxaaFloat subpixNSWE = lumaNS + lumaWE;\nFxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS;\nFxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE;\nFxaaFloat lumaNESE = lumaNE + lumaSE;\nFxaaFloat lumaNWNE = lumaNW + lumaNE;\nFxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE;\nFxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE;\nFxaaFloat lumaNWSW = lumaNW + lumaSW;\nFxaaFloat lumaSWSE = lumaSW + lumaSE;\nFxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2);\nFxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2);\nFxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW;\nFxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE;\nFxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4;\nFxaaFloat edgeVert = abs(edgeVert3) + edgeVert4;\nFxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE;\nFxaaFloat lengthSign = fxaaQualityRcpFrame.x;\nFxaaBool horzSpan = edgeHorz >= edgeVert;\nFxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE;\nif(!horzSpan) lumaN = lumaW;\nif(!horzSpan) lumaS = lumaE;\nif(horzSpan) lengthSign = fxaaQualityRcpFrame.y;\nFxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM;\nFxaaFloat gradientN = lumaN - lumaM;\nFxaaFloat gradientS = lumaS - lumaM;\nFxaaFloat lumaNN = lumaN + lumaM;\nFxaaFloat lumaSS = lumaS + lumaM;\nFxaaBool pairN = abs(gradientN) >= abs(gradientS);\nFxaaFloat gradient = max(abs(gradientN), abs(gradientS));\nif(pairN) lengthSign = -lengthSign;\nFxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange);\nFxaaFloat2 posB;\nposB.x = posM.x;\nposB.y = posM.y;\nFxaaFloat2 offNP;\noffNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x;\noffNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y;\nif(!horzSpan) posB.x += lengthSign * 0.5;\nif( horzSpan) posB.y += lengthSign * 0.5;\nFxaaFloat2 posN;\nposN.x = posB.x - offNP.x * FXAA_QUALITY_P0;\nposN.y = posB.y - offNP.y * FXAA_QUALITY_P0;\nFxaaFloat2 posP;\nposP.x = posB.x + offNP.x * FXAA_QUALITY_P0;\nposP.y = posB.y + offNP.y * FXAA_QUALITY_P0;\nFxaaFloat subpixD = ((-2.0)*subpixC) + 3.0;\nFxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN));\nFxaaFloat subpixE = subpixC * subpixC;\nFxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP));\nif(!pairN) lumaNN = lumaSS;\nFxaaFloat gradientScaled = gradient * 1.0/4.0;\nFxaaFloat lumaMM = lumaM - lumaNN * 0.5;\nFxaaFloat subpixF = subpixD * subpixE;\nFxaaBool lumaMLTZero = lumaMM < 0.0;\nlumaEndN -= lumaNN * 0.5;\nlumaEndP -= lumaNN * 0.5;\nFxaaBool doneN = abs(lumaEndN) >= gradientScaled;\nFxaaBool doneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1;\nFxaaBool doneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1;\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2;\n#if (FXAA_QUALITY_PS > 3)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3;\n#if (FXAA_QUALITY_PS > 4)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4;\n#if (FXAA_QUALITY_PS > 5)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5;\n#if (FXAA_QUALITY_PS > 6)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6;\n#if (FXAA_QUALITY_PS > 7)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7;\n#if (FXAA_QUALITY_PS > 8)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8;\n#if (FXAA_QUALITY_PS > 9)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9;\n#if (FXAA_QUALITY_PS > 10)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10;\n#if (FXAA_QUALITY_PS > 11)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11;\n#if (FXAA_QUALITY_PS > 12)\nif(doneNP) {\nif(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy));\nif(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy));\nif(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5;\nif(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5;\ndoneN = abs(lumaEndN) >= gradientScaled;\ndoneP = abs(lumaEndP) >= gradientScaled;\nif(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12;\nif(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12;\ndoneNP = (!doneN) || (!doneP);\nif(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12;\nif(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12;\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\n#endif\n}\nFxaaFloat dstN = posM.x - posN.x;\nFxaaFloat dstP = posP.x - posM.x;\nif(!horzSpan) dstN = posM.y - posN.y;\nif(!horzSpan) dstP = posP.y - posM.y;\nFxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero;\nFxaaFloat spanLength = (dstP + dstN);\nFxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero;\nFxaaFloat spanLengthRcp = 1.0/spanLength;\nFxaaBool directionN = dstN < dstP;\nFxaaFloat dst = min(dstN, dstP);\nFxaaBool goodSpan = directionN ? goodSpanN : goodSpanP;\nFxaaFloat subpixG = subpixF * subpixF;\nFxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5;\nFxaaFloat subpixH = subpixG * fxaaQualitySubpix;\nFxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0;\nFxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH);\nif(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign;\nif( horzSpan) posM.y += pixelOffsetSubpix * lengthSign;\nreturn FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM);\n}\n"}),define("Scene/PostProcessStageComposite",["../Core/Check","../Core/createGuid","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject"],function(e,t,i,r,n,o){"use strict";function a(e){e=i(e,i.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=i(e.inputPreviousStageTexture,!0);var n=e.name;r(n)||(n=t()),this._name=n,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}function s(e){var t=r(e._selected)?e._selected.length:0,i=r(e._parentSelected)?e._parentSelected:0,n=e._selected!==e._selectedShadow||t!==e._selectedLength;if(n=n||e._parentSelected!==e._parentSelectedShadow||i!==e._parentSelectedLength,r(e._selected)&&r(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):r(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!n&&r(e._combinedSelected)){if(!r(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(var o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return n}return n(a.prototype,{ready:{get:function(){for(var e=this._stages,t=e.length,i=0;i<t;++i)if(!e[i].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){for(var t=this._stages,i=t.length,r=0;r<i;++r)t[r].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}}),a.prototype._isSupported=function(e){for(var t=this._stages,i=t.length,r=0;r<i;++r)if(!t[r]._isSupported(e))return!1;return!0},a.prototype.get=function(e){return this._stages[e]},a.prototype.update=function(e,t){this._selectedDirty=s(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=r(this._selected)?this._selected.length:0,this._parentSelectedLength=r(this._parentSelected)?this._parentSelected.length:0;for(var i=this._stages,n=i.length,o=0;o<n;++o){var a=i[o];this._selectedDirty&&(a.parentSelected=this._combinedSelected),a.update(e,t)}},a.prototype.isDestroyed=function(){return!1},a.prototype.destroy=function(){for(var e=this._stages,t=e.length,i=0;i<t;++i)e[i].destroy();return o(this)},a}),define("Scene/PostProcessStageLibrary",["../Core/buildModuleUrl","../Core/createGuid","../Core/Color","../Core/defined","../Core/defineProperties","../Core/deprecationWarning","../Core/destroyObject","../Core/Ellipsoid","../Shaders/PostProcessStages/AcesTonemapping","../Shaders/PostProcessStages/AmbientOcclusionGenerate","../Shaders/PostProcessStages/AmbientOcclusionModulate","../Shaders/PostProcessStages/BlackAndWhite","../Shaders/PostProcessStages/BloomComposite","../Shaders/PostProcessStages/Brightness","../Shaders/PostProcessStages/ContrastBias","../Shaders/PostProcessStages/DepthOfField","../Shaders/PostProcessStages/DepthView","../Shaders/PostProcessStages/EdgeDetection","../Shaders/PostProcessStages/FilmicTonemapping","../Shaders/PostProcessStages/FXAA","../Shaders/PostProcessStages/GaussianBlur1D","../Shaders/PostProcessStages/LensFlare","../Shaders/PostProcessStages/ModifiedReinhardTonemapping","../Shaders/PostProcessStages/NightVision","../Shaders/PostProcessStages/ReinhardTonemapping","../Shaders/PostProcessStages/Silhouette","../ThirdParty/Shaders/FXAA3_11","./AutoExposure","./PostProcessStage","./PostProcessStageComposite","./PostProcessStageSampleMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I){"use strict";function M(e){var t="#define USE_STEP_SIZE\n"+C,i=new P({name:e+"_x_direction",fragmentShader:t,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:I.LINEAR}),r=new P({name:e+"_y_direction",fragmentShader:t,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:I.LINEAR}),o={};return n(o,{delta:{get:function(){return i.uniforms.delta},set:function(e){var t=i.uniforms,n=r.uniforms;t.delta=n.delta=e}},sigma:{get:function(){return i.uniforms.sigma},set:function(e){var t=i.uniforms,n=r.uniforms;t.sigma=n.sigma=e}},stepSize:{get:function(){return i.uniforms.stepSize},set:function(e){var t=i.uniforms,n=r.uniforms;t.stepSize=n.stepSize=e}}}),new D({name:e,stages:[i,r],uniforms:o})}function R(e){if(!r(e))return O.createEdgeDetectionStage();for(var t=new D({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),i={},n="",o="",a=0;a<e.length;++a)n+="uniform sampler2D edgeTexture"+a+"; \n",o+=" vec4 edge"+a+" = texture2D(edgeTexture"+a+", v_textureCoordinates); \n if (edge"+a+".a > 0.0) \n { \n color = edge"+a+"; \n break; \n } \n",i["edgeTexture"+a]=e[a].name;var s=n+"varying vec2 v_textureCoordinates; \nvoid main() { \n vec4 color = vec4(0.0); \n for (int i = 0; i < "+e.length+"; i++) \n { \n"+o+" } \n gl_FragColor = color; \n} \n",l=new P({name:"czm_edge_detection_combine",fragmentShader:s,uniforms:i});return new D({name:"czm_edge_detection_composite",stages:[t,l]})}var O={};O.createBlurStage=function(){return M("czm_blur")},O.createDepthOfFieldStage=function(){var e=M("czm_depth_of_field_blur"),t=new P({name:"czm_depth_of_field_composite",fragmentShader:m,uniforms:{focalDistance:5,blurTexture:e.name}}),i={};return n(i,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(e){t.uniforms.focalDistance=e}},delta:{get:function(){return e.uniforms.delta},set:function(t){e.uniforms.delta=t}},sigma:{get:function(){return e.uniforms.sigma},set:function(t){e.uniforms.sigma=t}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(t){e.uniforms.stepSize=t}}}),new D({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:i})},O.isDepthOfFieldSupported=function(e){return e.context.depthTexture},O.createEdgeDetectionStage=function(){var e=t();return new P({name:"czm_edge_detection_"+e,fragmentShader:g,uniforms:{length:.25,color:i.clone(i.BLACK)}})},O.isEdgeDetectionSupported=function(e){return e.context.depthTexture},O.createSilhouetteStage=function(e){var t=R(e),i=new P({name:"czm_silhouette_color_edges",fragmentShader:A,uniforms:{silhouetteTexture:t.name}});return new D({name:"czm_silhouette",stages:[t,i],inputPreviousStageTexture:!1,uniforms:t.uniforms})},O.isSilhouetteSupported=function(e){return e.context.depthTexture},O.createBloomStage=function(){var e=new P({name:"czm_bloom_contrast_bias",fragmentShader:f,uniforms:{contrast:128,brightness:-.3}}),t=M("czm_bloom_blur"),i=new D({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),r=new P({name:"czm_bloom_generate_composite",fragmentShader:h,uniforms:{glowOnly:!1,bloomTexture:i.name}}),o={};return n(o,{glowOnly:{get:function(){return r.uniforms.glowOnly},set:function(e){r.uniforms.glowOnly=e}},contrast:{get:function(){return e.uniforms.contrast},set:function(t){e.uniforms.contrast=t}},brightness:{get:function(){return e.uniforms.brightness},set:function(t){e.uniforms.brightness=t}},delta:{get:function(){return t.uniforms.delta},set:function(e){t.uniforms.delta=e}},sigma:{get:function(){return t.uniforms.sigma},set:function(e){t.uniforms.sigma=e}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(e){t.uniforms.stepSize=e}}}),new D({name:"czm_bloom",stages:[i,r],inputPreviousStageTexture:!1,uniforms:o})},O.createAmbientOcclusionStage=function(){var e=new P({name:"czm_ambient_occlusion_generate",fragmentShader:u,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=M("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;var i=new D({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),r=new P({name:"czm_ambient_occlusion_composite",fragmentShader:c,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:i.name}}),o={} -;return n(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(t){e.uniforms.intensity=t}},bias:{get:function(){return e.uniforms.bias},set:function(t){e.uniforms.bias=t}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(t){e.uniforms.lengthCap=t}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(t){e.uniforms.stepSize=t}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(t){e.uniforms.frustumLength=t}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(t){e.uniforms.randomTexture=t}},delta:{get:function(){return t.uniforms.delta},set:function(e){t.uniforms.delta=e}},sigma:{get:function(){return t.uniforms.sigma},set:function(e){t.uniforms.sigma=e}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(e){t.uniforms.stepSize=e}},ambientOcclusionOnly:{get:function(){return r.uniforms.ambientOcclusionOnly},set:function(e){r.uniforms.ambientOcclusionOnly=e}}}),new D({name:"czm_ambient_occlusion",stages:[i,r],inputPreviousStageTexture:!1,uniforms:o})},O.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var L="#define FXAA_QUALITY_PRESET 39 \n"+w+"\n"+y;return O.createFXAAStage=function(){return new P({name:"czm_FXAA",fragmentShader:L,sampleMode:I.LINEAR})},O.createAcesTonemappingStage=function(e){var t=e?"#define AUTO_EXPOSURE\n":"";return t+=l,new P({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0}})},O.createFilmicTonemappingStage=function(e){var t=e?"#define AUTO_EXPOSURE\n":"";return t+=v,new P({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0}})},O.createReinhardTonemappingStage=function(e){var t=e?"#define AUTO_EXPOSURE\n":"";return t+=E,new P({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0}})},O.createModifiedReinhardTonemappingStage=function(e){var t=e?"#define AUTO_EXPOSURE\n":"";return t+=S,new P({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:i.WHITE,autoExposure:void 0}})},O.createAutoExposureStage=function(){return new x},O.createBlackAndWhiteStage=function(){return new P({name:"czm_black_and_white",fragmentShader:d,uniforms:{gradations:5}})},O.createBrightnessStage=function(){return new P({name:"czm_brightness",fragmentShader:p,uniforms:{brightness:.5}})},O.createNightVisionStage=function(){return new P({name:"czm_night_vision",fragmentShader:T})},O.createDepthViewStage=function(){return new P({name:"czm_depth_view",fragmentShader:_})},O.createLensFlareStage=function(){return new P({name:"czm_lens_flare",fragmentShader:b,uniforms:{dirtTexture:e("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:e("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,earthRadius:s.WGS84.maximumRadius}})},O}),define("Scene/PostProcessStageTextureCache",["../Core/Color","../Core/defined","../Core/Math","../Core/destroyObject","../Renderer/ClearCommand","../Renderer/Framebuffer","../Renderer/Texture"],function(e,t,i,r,n,o,a){"use strict";function s(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function l(e){for(;t(e.length);)e=e.get(e.length-1);return e.name}function u(e,i,r,n,o){if(!n.enabled||!n._isSupported(i))return o;var a=r[n.name]={};if(t(o)){a[l(e.getStageByName(o))]=!0}var s=n.uniforms;if(t(s))for(var u=Object.getOwnPropertyNames(s),c=u.length,d=0;d<c;++d){var h=s[u[d]];if("string"==typeof h){var p=e.getStageByName(h);t(p)&&(a[l(p)]=!0)}}return n.name}function c(e,i,r,n,o){if(t(n.enabled)&&!n.enabled||t(n._isSupported)&&!n._isSupported(i))return o;for(var a=o,s=!t(n.inputPreviousStageTexture)||n.inputPreviousStageTexture,d=o,h=n.length,p=0;p<h;++p){var f=n.get(p);d=t(f.length)?c(e,i,r,f,o):u(e,i,r,f,o),s&&(o=d)}var m,_;if(s)for(m=1;m<h;++m)_=l(n.get(m)),t(r[_])||(r[_]={}),r[_][a]=!0;else for(m=1;m<h;++m){_=l(n.get(m));for(var g=r[_],v=0;v<m;++v)g[l(n.get(v))]=!0}return d}function d(e,i){var r={};if(t(e.ambientOcclusion)){var n=e.ambientOcclusion,o=e.bloom,a=e._tonemapping,s=e.fxaa,l=c(e,i,r,n,void 0);l=c(e,i,r,o,l),l=u(e,i,r,a,l),l=c(e,i,r,e,l),u(e,i,r,s,l)}else c(e,i,r,e,void 0);return r}function h(i,r,n){var o,a,s=i._collection,l=s.getStageByName(r),u=l._textureScale,c=l._forcePowerOfTwo,d=l._pixelFormat,h=l._pixelDatatype,p=l._clearColor,f=i._framebuffers,m=f.length;for(o=0;o<m;++o)if(a=f[o],u===a.textureScale&&c===a.forcePowerOfTwo&&d===a.pixelFormat&&h===a.pixelDatatype&&e.equals(p,a.clearColor)){for(var _=a.stages,g=_.length,v=!1,y=0;y<g;++y)if(n[_[y]]){v=!0;break}if(!v)break}return t(a)&&o<m?(a.stages.push(r),a):(a={textureScale:u,forcePowerOfTwo:c,pixelFormat:d,pixelDatatype:h,clearColor:p,stages:[r],buffer:void 0,clear:void 0},f.push(a),a)}function p(e,t){var i=d(e._collection,t);for(var r in i)i.hasOwnProperty(r)&&(e._stageNameToFramebuffer[r]=h(e,r,i[r]))}function f(e){for(var t=e._framebuffers,i=t.length,r=0;r<i;++r){var n=t[r];n.buffer=n.buffer&&n.buffer.destroy(),n.buffer=void 0}}function m(e,t){for(var r=e._width,s=e._height,l=e._framebuffers,u=l.length,c=0;c<u;++c){var d=l[c],h=d.textureScale,p=Math.ceil(r*h),f=Math.ceil(s*h),m=Math.min(p,f);d.forcePowerOfTwo&&(i.isPowerOfTwo(m)||(m=i.nextPowerOfTwo(m)),p=m,f=m),d.buffer=new o({context:t,colorTextures:[new a({context:t,width:p,height:f,pixelFormat:d.pixelFormat,pixelDatatype:d.pixelDatatype})]}),d.clear=new n({color:d.clearColor,framebuffer:d.buffer})}}return s.prototype.updateDependencies=function(){this._updateDependencies=!0},s.prototype.update=function(e){var i=this._collection,r=this._updateDependencies,n=t(i.ambientOcclusion)&&i.ambientOcclusion.enabled&&i.ambientOcclusion._isSupported(e),o=t(i.bloom)&&i.bloom.enabled&&i.bloom._isSupported(e),a=t(i._tonemapping)&&i._tonemapping.enabled&&i._tonemapping._isSupported(e),s=t(i.fxaa)&&i.fxaa.enabled&&i.fxaa._isSupported(e),l=!t(i._activeStages)||i._activeStages.length>0||n||o||a||s;if((r||!l&&this._framebuffers.length>0)&&(f(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),r||l){0===this._framebuffers.length&&p(this,e);var u=e.drawingBufferWidth,c=e.drawingBufferHeight,d=this._width!==u||this._height!==c;(r||d)&&(this._width=u,this._height=c,this._updateDependencies=!1,f(this),m(this,e))}},s.prototype.clear=function(e){for(var t=this._framebuffers,i=0;i<t.length;++i)t[i].clear.execute(e)},s.prototype.getStageByName=function(e){return this._collection.getStageByName(e)},s.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)},s.prototype.getFramebuffer=function(e){var i=this._stageNameToFramebuffer[e];if(t(i))return i.buffer},s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return f(this),r(this)},s}),define("Scene/Tonemapper",["../Core/freezeObject"],function(e){"use strict";var t={REINHARD:0,MODIFIED_REINHARD:1,FILMIC:2,ACES:3,validate:function(e){return e===t.REINHARD||e===t.MODIFIED_REINHARD||e===t.FILMIC||e===t.ACES}};return e(t)}),define("Scene/PostProcessStageCollection",["../Core/arraySlice","../Core/Check","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/PixelFormat","../Renderer/PixelDatatype","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","../Shaders/PostProcessStages/PassThrough","./PostProcessStageLibrary","./PostProcessStageTextureCache","./Tonemapper"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g){"use strict";function v(){var e=m.createFXAAStage(),t=m.createAmbientOcclusionStage(),i=m.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=m.createAutoExposureStage(),this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=g.ACES;var n=this._tonemapping;t.enabled=!1,i.enabled=!1,n.enabled=!1;var o=new _(this),a={},s=S;for(s.push(e,t,i,n);s.length>0;){var l=s.pop();a[l.name]=l,l._textureCache=o;var u=l.length;if(r(u))for(var c=0;c<u;++c)s.push(l.get(c))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;var d=this;t.uniforms.randomTexture=function(){return d._randomTexture},this._ao=t,this._bloom=i,this._fxaa=e,this._lastLength=void 0,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=a,this._textureCache=o}function y(e){if(e._stagesRemoved){e._stagesRemoved=!1;for(var t=[],i=e._stages,r=i.length,n=0,o=0;n<r;++n){var a=i[n];a&&(a._index=o++,t.push(a))}e._stages=t}}function C(e){for(;r(e.length);)e=e.get(e.length-1);return e.outputTexture}function b(e,t,i,n,o){if(r(e.execute))return void e.execute(t,i,n,o);var a,s=e.length;if(e.inputPreviousStageTexture)for(b(e.get(0),t,i,n,o),a=1;a<s;++a)b(e.get(a),t,C(e.get(a-1)),n,o);else for(a=0;a<s;++a)b(e.get(a),t,i,n,o)}var S=[];return n(v.prototype,{ready:{get:function(){for(var e=!1,t=this._stages,i=t.length,r=i-1;r>=0;--r){var n=t[r];e=e||n.ready&&n.enabled}var o=this._fxaa,a=this._ao,s=this._bloom,l=this._tonemapping;return e=e||o.ready&&o.enabled,e=e||a.ready&&a.enabled,e=e||s.ready&&s.enabled,e=e||l.ready&&l.enabled}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return y(this),this._stages.length}},outputTexture:{get:function(){var e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);for(var t=this._stages,i=t.length,n=i-1;n>=0;--n){var o=t[n];if(r(o)&&o.ready&&o.enabled)return this.getOutputTexture(o.name)}var a=this._tonemapping;if(a.enabled&&a.ready)return this.getOutputTexture(a.name);var s=this._bloom;if(s.enabled&&s.ready)return this.getOutputTexture(s.name);var l=this._ao;return l.enabled&&l.ready?this.getOutputTexture(l.name):void 0}},hasSelected:{get:function(){for(var t=e(this._stages);t.length>0;){var i=t.pop();if(r(i)){if(r(i.selected))return!0;var n=i.length;if(r(n))for(var o=0;o<n;++o)t.push(i.get(o))}}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper!==e){r(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());var t,i=this._autoExposureEnabled;switch(e){case g.REINHARD:t=m.createReinhardTonemappingStage(i);break;case g.MODIFIED_REINHARD:t=m.createModifiedReinhardTonemappingStage(i);break;case g.FILMIC:t=m.createFilmicTonemappingStage(i);break;default:t=m.createAcesTonemappingStage(i)}if(i){var n=this._autoExposure;t.uniforms.autoExposure=function(){return n.outputTexture}}this._tonemapper=e,this._tonemapping=t,r(this._stageNames)&&(this._stageNames[t.name]=t,t._textureCache=this._textureCache),this._textureCacheDirty=!0}}}}),v.prototype.add=function(e){var t=this._stageNames,i=S;for(i.push(e);i.length>0;){var n=i.pop();t[n.name]=n,n._textureCache=this._textureCache;var o=n.length;if(r(o))for(var a=0;a<o;++a)i.push(n.get(a))}var s=this._stages;return e._index=s.length,s.push(e),this._textureCacheDirty=!0,e},v.prototype.remove=function(e){if(!this.contains(e))return!1;var t=this._stageNames,i=S;for(i.push(e);i.length>0;){var n=i.pop();delete t[n.name];var o=n.length;if(r(o))for(var a=0;a<o;++a)i.push(n.get(a))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0},v.prototype.contains=function(e){return r(e)&&r(e._index)&&e._textureCache===this._textureCache},v.prototype.get=function(e){return y(this),this._stages[e]},v.prototype.removeAll=function(){for(var e=this._stages,t=e.length,i=0;i<t;++i)this.remove(e[i]);e.length=0},v.prototype.getStageByName=function(e){return this._stageNames[e]},v.prototype.update=function(e,t,i){y(this);var n=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=n;var a,f,m=this._stages,_=o.length=m.length,g=0;for(a=0;a<_;++a)f=m[a],f.ready&&f.enabled&&f._isSupported(e)&&(o[g++]=f);o.length=g;var v=g!==n.length;if(!v)for(a=0;a<g;++a)if(o[a]!==n[a]){v=!0;break}var C=this._ao,b=this._bloom,S=this._autoExposure,T=this._tonemapping,E=this._fxaa;T.enabled=i;var A=C.enabled&&C._isSupported(e),w=b.enabled&&b._isSupported(e),x=T.enabled&&T._isSupported(e),P=E.enabled&&E._isSupported(e);if((v||this._textureCacheDirty||g!==this._lastLength||A!==this._aoEnabled||w!==this._bloomEnabled||x!==this._tonemappingEnabled||P!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._lastLength=g,this._aoEnabled=A,this._bloomEnabled=w,this._tonemappingEnabled=x,this._fxaaEnabled=P,this._textureCacheDirty=!1),r(this._randomTexture)&&!A&&(this._randomTexture.destroy(),this._randomTexture=void 0),!r(this._randomTexture)&&A){_=196608;var D=new Uint8Array(_);for(a=0;a<_;a+=3)D[a]=Math.floor(255*Math.random());this._randomTexture=new c({context:e,pixelFormat:s.RGB,pixelDatatype:l.UNSIGNED_BYTE,source:{arrayBufferView:D,width:256,height:256},sampler:new u({wrapS:p.REPEAT,wrapT:p.REPEAT,minificationFilter:h.NEAREST,magnificationFilter:d.NEAREST})})}for(this._textureCache.update(e),E.update(e,t),C.update(e,t),b.update(e,t),T.update(e,t),this._autoExposureEnabled&&S.update(e,t),_=m.length,a=0;a<_;++a)m[a].update(e,t)},v.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)},v.prototype.getOutputTexture=function(e){var t=this.getStageByName(e);if(r(t))return C(t)},v.prototype.execute=function(e,t,i,r){var n=this._activeStages,o=n.length,a=this._fxaa,s=this._ao,l=this._bloom,u=this._autoExposure,c=this._tonemapping,d=s.enabled&&s._isSupported(e),h=l.enabled&&l._isSupported(e),p=this._autoExposureEnabled,f=c.enabled&&c._isSupported(e),m=a.enabled&&a._isSupported(e);if(m||d||h||f||0!==o){var _=t;d&&s.ready&&(b(s,e,_,i,r),_=C(s)),h&&l.ready&&(b(l,e,_,i,r),_=C(l)),p&&u.ready&&b(u,e,_,i,r),f&&c.ready&&(b(c,e,_,i,r),_=C(c));var g=_;if(o>0){b(n[0],e,_,i,r);for(var v=1;v<o;++v)b(n[v],e,C(n[v-1]),i,r);g=C(n[o-1])}m&&a.ready&&b(a,e,g,i,r)}},v.prototype.copy=function(e,t){if(!r(this._copyColorCommand)){var i=this;this._copyColorCommand=e.createViewportQuadCommand(f,{uniformMap:{colorTexture:function(){return i.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)},v.prototype.isDestroyed=function(){return!1},v.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),o(this)},v}),define("Scene/QuadtreeTileProvider",["../Core/defineProperties","../Core/DeveloperError"],function(e,t){"use strict";function i(){t.throwInstantiationError()}return i.computeDefaultLevelZeroMaximumGeometricError=function(e){return 2*e.ellipsoid.maximumRadius*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))},e(i.prototype,{quadtree:{get:t.throwInstantiationError,set:t.throwInstantiationError},ready:{get:t.throwInstantiationError},tilingScheme:{get:t.throwInstantiationError},errorEvent:{get:t.throwInstantiationError}}),i.prototype.update=t.throwInstantiationError,i.prototype.beginUpdate=t.throwInstantiationError,i.prototype.endUpdate=t.throwInstantiationError,i.prototype.getLevelMaximumGeometricError=t.throwInstantiationError,i.prototype.loadTile=t.throwInstantiationError,i.prototype.computeTileVisibility=t.throwInstantiationError,i.prototype.showTileThisFrame=t.throwInstantiationError,i.prototype.computeDistanceToTile=t.throwInstantiationError,i.prototype.isDestroyed=t.throwInstantiationError,i.prototype.destroy=t.throwInstantiationError,i}),define("Scene/SceneTransitioner",["../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/defined","../Core/destroyObject","../Core/EasingFunction","../Core/Math","../Core/Matrix4","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/PerspectiveFrustum","../Core/Ray","../Core/ScreenSpaceEventHandler","../Core/ScreenSpaceEventType","../Core/Transforms","./Camera","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}function v(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new h(e._scene.canvas,!1);var i=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=i,e._morphHandler.setInputAction(i,p.LEFT_DOWN),e._morphHandler.setInputAction(i,p.MIDDLE_DOWN),e._morphHandler.setInputAction(i,p.RIGHT_DOWN),e._morphHandler.setInputAction(i,p.WHEEL)}}function y(e){for(var t=e._currentTweens,i=0;i<t.length;++i)t[i].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}function C(e,t){var i=e._scene,r=i.camera,n=Y,o=n.position,a=n.direction,l=n.up,u=i.mapProjection.unproject(r.position,X);t.cartographicToCartesian(u,o);var c=t.scaleToGeodeticSurface(o,Q),d=f.eastNorthUpToFixedFrame(c,t,K);return s.multiplyByPointAsVector(d,r.direction,a),s.multiplyByPointAsVector(d,r.up,l),n}function b(t,i,r,n){function a(t){T(c,p,t.time,u.position),T(d,f,t.time,u.direction),T(h,_,t.time,u.up),e.cross(u.direction,u.up,u.right),e.normalize(u.right,u.right)}i*=.5;var l=t._scene,u=l.camera,c=e.clone(u.position,Z),d=e.clone(u.direction,J),h=e.clone(u.up,$),p=s.multiplyByPoint(m.TRANSFORM_2D_INVERSE,r.position,ee),f=s.multiplyByPointAsVector(m.TRANSFORM_2D_INVERSE,r.direction,te),_=s.multiplyByPointAsVector(m.TRANSFORM_2D_INVERSE,r.up,ie),g=l.tweens.add({duration:i,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:a,complete:function(){I(t,l,0,1,i,n)}});t._currentTweens.push(g)}function S(t,i,r){i/=3;var n,o=t._scene,s=o.camera;i>0?(n=Y,e.fromDegrees(0,0,5*r.maximumRadius,r,n.position),e.negate(n.position,n.direction),e.normalize(n.direction,n.direction),e.clone(e.UNIT_Z,n.up)):(s.position.z=s.frustum.right-s.frustum.left,n=C(t,r));var l;t._morphToOrthographic?(l=re,l.aspectRatio=o.drawingBufferWidth/o.drawingBufferHeight,l.width=s.frustum.right-s.frustum.left):(l=j,l.aspectRatio=o.drawingBufferWidth/o.drawingBufferHeight,l.fov=a.toRadians(60)),n.frustum=l;var u=M(n);v(t,u);var c;c=t._morphToOrthographic?function(){b(t,i,n,u)}:function(){x(t,i,n,function(){b(t,i,n,u)})},i>0?(o._mode=_.SCENE2D,s.flyTo({duration:i,destination:e.fromDegrees(0,0,5*r.maximumRadius,r,se),complete:function(){o._mode=_.MORPHING,c()}})):c()}function T(t,i,r,n){return e.lerp(t,i,r,n)}function E(e,t,i,r,n){function s(e){c.frustum.fov=a.lerp(d,h,e.time);var t=p/Math.tan(.5*c.frustum.fov);r(c,t)}var u=e._scene,c=u.camera;if(!(c.frustum instanceof l)){var d=c.frustum.fov,h=.5*a.RADIANS_PER_DEGREE,p=i.position.z*Math.tan(.5*d);c.frustum.far=p/Math.tan(.5*h)+1e7;var f=u.tweens.add({duration:t,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:s,complete:function(){c.frustum=i.frustum.clone(),n(e)}});e._currentTweens.push(f)}}function A(t,i){function n(t){T(c,_,t.time,u.position),T(d,p,t.time,u.direction),T(h,f,t.time,u.up),e.cross(u.direction,u.up,u.right),e.normalize(u.right,u.right),u._adjustOrthographicFrustum(!0)}function a(e,t){e.position.z=t}i*=.5;var l=t._scene,u=l.camera,c=e.clone(u.position,ce),d=e.clone(u.direction,de),h=e.clone(u.up,he),p=e.negate(e.UNIT_Z,fe),f=e.clone(e.UNIT_Y,me),_=pe;if(i>0)e.clone(e.ZERO,pe),_.z=5*l.mapProjection.ellipsoid.maximumRadius;else{e.clone(c,pe);var g=ge;s.multiplyByPoint(m.TRANSFORM_2D,c,g.origin),s.multiplyByPointAsVector(m.TRANSFORM_2D,d,g.direction);var y=l.globe;if(r(y)){var C=y.pickWorldCoordinates(g,l,ve);r(C)&&(s.multiplyByPoint(m.TRANSFORM_2D_INVERSE,C,_),_.z+=e.distance(c,_))}}var b=_e;b.right=.5*_.z,b.left=-b.right,b.top=b.right*(l.drawingBufferHeight/l.drawingBufferWidth),b.bottom=-b.top;var S=ye;S.position=_,S.direction=p,S.up=f,S.frustum=b;var A=R(S);v(t,A);var w=l.tweens.add({duration:i,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:n,complete:function(){E(t,i,S,a,A)}});t._currentTweens.push(w)}function w(t,i,n){function o(e,t){e.position.x=t}function a(){E(t,i,c,o,T)}i*=.5;var l=t._scene,u=l.camera,c=be;if(i>0)e.clone(e.ZERO,c.position),c.position.z=5*n.maximumRadius,e.negate(e.UNIT_Z,c.direction),e.clone(e.UNIT_Y,c.up);else{n.cartesianToCartographic(u.positionWC,Ce),l.mapProjection.project(Ce,c.position),e.negate(e.UNIT_Z,c.direction),e.clone(e.UNIT_Y,c.up);var d=Ee;e.clone(c.position2D,d.origin);var h=e.clone(u.directionWC,d.direction),p=n.scaleToGeodeticSurface(u.positionWC,we),_=f.eastNorthUpToFixedFrame(p,n,Ae);s.inverseTransformation(_,_),s.multiplyByPointAsVector(_,h,h),s.multiplyByPointAsVector(m.TRANSFORM_2D,h,h);var g=l.globe;if(r(g)){var y=g.pickWorldCoordinates(d,l,Te);if(r(y)){var C=e.distance(c.position2D,y);y.x+=C,e.clone(y,c.position2D)}}}s.multiplyByPoint(m.TRANSFORM_2D,c.position,c.position2D),s.multiplyByPointAsVector(m.TRANSFORM_2D,c.direction,c.direction2D),s.multiplyByPointAsVector(m.TRANSFORM_2D,c.up,c.up2D);var b=c.frustum;b.right=.5*c.position.z,b.left=-b.right,b.top=b.right*(l.drawingBufferHeight/l.drawingBufferWidth),b.bottom=-b.top;var S=Se;s.multiplyByPoint(m.TRANSFORM_2D_INVERSE,c.position2D,S.position),e.clone(c.direction,S.direction),e.clone(c.up,S.up),S.frustum=b;var T=R(S);v(t,T),D(t,i,c,a)}function x(e,t,i,r){function n(e){l.frustum.fov=a.lerp(d,c,e.time),l.position.z=h/Math.tan(.5*l.frustum.fov)}var s=e._scene,l=s.camera,u=l.frustum.right-l.frustum.left;l.frustum=i.frustum.clone();var c=l.frustum.fov,d=.5*a.RADIANS_PER_DEGREE,h=u*Math.tan(.5*c);l.frustum.far=h/Math.tan(.5*d)+1e7,l.frustum.fov=d;var p=s.tweens.add({duration:t,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:n,complete:function(){r(e)}});e._currentTweens.push(p)}function P(t,i,r,n){function a(){function a(t){T(h,u,t.time,l.position),T(p,c,t.time,l.direction),T(f,d,t.time,l.up),e.cross(l.direction,l.up,l.right),e.normalize(l.right,l.right)}l.frustum=r.frustum.clone();var h=e.clone(l.position,ne),p=e.clone(l.direction,oe),f=e.clone(l.up,ae);h.z=u.z;var m=s.tweens.add({duration:i,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:a,complete:function(){n(t)}});t._currentTweens.push(m)}i*=.5;var s=t._scene,l=s.camera,u=e.clone(r.position,se),c=e.clone(r.direction,le),d=e.clone(r.up,ue);s._mode=_.MORPHING,t._morphToOrthographic?a():x(t,0,r,a)}function D(t,i,r,n){function a(t){T(u,h,t.time,l.position),T(c,p,t.time,l.direction),T(d,f,t.time,l.up),e.cross(l.direction,l.up,l.right),e.normalize(l.right,l.right),l._adjustOrthographicFrustum(!0)}var s=t._scene,l=s.camera,u=e.clone(l.position,ne),c=e.clone(l.direction,oe),d=e.clone(l.up,ae),h=e.clone(r.position2D,se),p=e.clone(r.direction2D,le),f=e.clone(r.up2D,ue),m=s.tweens.add({duration:i,easingFunction:o.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:a,complete:function(){I(t,s,1,0,i,n)}});t._currentTweens.push(m)}function I(e,t,i,n,a,s){var l={object:t,property:"morphTime",startValue:i,stopValue:n,duration:a,easingFunction:o.QUARTIC_OUT};r(s)&&(l.complete=function(){s(e)});var u=t.tweens.addProperty(l);e._currentTweens.push(u)}function M(t){return function(i){var n=i._scene;n._mode=_.SCENE3D,n.morphTime=_.getMorphTime(_.SCENE3D),y(i);var o=n.camera;(i._previousMode!==_.MORPHING||i._morphCancelled)&&(i._morphCancelled=!1,e.clone(t.position,o.position),e.clone(t.direction,o.direction),e.clone(t.up,o.up),e.cross(o.direction,o.up,o.right),e.normalize(o.right,o.right),o.frustum=t.frustum.clone());var a=o.frustum;n.frameState.useLogDepth&&(a.near=.1,a.far=1e10);var s=r(i._completeMorph);i._completeMorph=void 0,n.camera.update(n.mode),i._scene.morphComplete.raiseEvent(i,i._previousMode,_.SCENE3D,s)}}function R(t){return function(i){var n=i._scene;n._mode=_.SCENE2D,n.morphTime=_.getMorphTime(_.SCENE2D),y(i);var o=n.camera;e.clone(t.position,o.position),o.position.z=2*n.mapProjection.ellipsoid.maximumRadius,e.clone(t.direction,o.direction),e.clone(t.up,o.up),e.cross(o.direction,o.up,o.right),e.normalize(o.right,o.right),o.frustum=t.frustum.clone();var a=r(i._completeMorph);i._completeMorph=void 0,n.camera.update(n.mode),i._scene.morphComplete.raiseEvent(i,i._previousMode,_.SCENE2D,a)}}function O(t){return function(i){var n=i._scene;n._mode=_.COLUMBUS_VIEW,n.morphTime=_.getMorphTime(_.COLUMBUS_VIEW),y(i);var o=n.camera;(i._previousModeMode!==_.MORPHING||i._morphCancelled)&&(i._morphCancelled=!1,e.clone(t.position,o.position),e.clone(t.direction,o.direction),e.clone(t.up,o.up),e.cross(o.direction,o.up,o.right),e.normalize(o.right,o.right));var a=o.frustum;n.frameState.useLogDepth&&(a.near=.1,a.far=1e10);var s=r(i._completeMorph);i._completeMorph=void 0,n.camera.update(n.mode),i._scene.morphComplete.raiseEvent(i,i._previousMode,_.COLUMBUS_VIEW,s)}}g.prototype.completeMorph=function(){r(this._completeMorph)&&this._completeMorph()},g.prototype.morphTo2D=function(e,t){r(this._completeMorph)&&this._completeMorph();var i=this._scene;this._previousMode=i.mode,this._morphToOrthographic=i.camera.frustum instanceof l,this._previousMode!==_.SCENE2D&&this._previousMode!==_.MORPHING&&(this._scene.morphStart.raiseEvent(this,this._previousMode,_.SCENE2D,!0),i._mode=_.MORPHING,i.camera._setTransform(s.IDENTITY),this._previousMode===_.COLUMBUS_VIEW?A(this,e):w(this,e,t),0===e&&r(this._completeMorph)&&this._completeMorph())};var L=new e,N=new e,F=new e,B=new e,z=new e,k=new e,V=new e,U=new t,G=new s,H=new c,W=new l,q={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};g.prototype.morphToColumbusView=function(t,i){r(this._completeMorph)&&this._completeMorph();var n=this._scene;if(this._previousMode=n.mode,this._previousMode!==_.COLUMBUS_VIEW&&this._previousMode!==_.MORPHING){this._scene.morphStart.raiseEvent(this,this._previousMode,_.COLUMBUS_VIEW,!0),n.camera._setTransform(s.IDENTITY);var o=L,l=N,u=F;if(t>0)o.x=0,o.y=-1,o.z=1,o=e.multiplyByScalar(e.normalize(o,o),5*i.maximumRadius,o),e.negate(e.normalize(o,l),l),e.cross(e.UNIT_X,l,u);else{var c=n.camera;if(this._previousMode===_.SCENE2D)e.clone(c.position,o),o.z=c.frustum.right-c.frustum.left,e.negate(e.UNIT_Z,l),e.clone(e.UNIT_Y,u);else{e.clone(c.positionWC,o),e.clone(c.directionWC,l),e.clone(c.upWC,u);var d=i.scaleToGeodeticSurface(o,V),h=f.eastNorthUpToFixedFrame(d,i,G);s.inverseTransformation(h,h),n.mapProjection.project(i.cartesianToCartographic(o,U),o),s.multiplyByPointAsVector(h,l,l),s.multiplyByPointAsVector(h,u,u)}}var p;this._morphToOrthographic?(p=W,p.width=n.camera.frustum.right-n.camera.frustum.left,p.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(p=H,p.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,p.fov=a.toRadians(60));var g=q;g.position=o,g.direction=l,g.up=u,g.frustum=p;var y=O(g);v(this,y),this._previousMode===_.SCENE2D?P(this,t,g,y):(g.position2D=s.multiplyByPoint(m.TRANSFORM_2D,o,B),g.direction2D=s.multiplyByPointAsVector(m.TRANSFORM_2D,l,z),g.up2D=s.multiplyByPointAsVector(m.TRANSFORM_2D,u,k),n._mode=_.MORPHING,D(this,t,g,y)),0===t&&r(this._completeMorph)&&this._completeMorph()}};var Y={position:new e,direction:new e,up:new e,frustum:void 0},j=new c;g.prototype.morphTo3D=function(t,i){r(this._completeMorph)&&this._completeMorph();var n=this._scene;if(this._previousMode=n.mode,this._previousMode!==_.SCENE3D&&this._previousMode!==_.MORPHING){if(this._scene.morphStart.raiseEvent(this,this._previousMode,_.SCENE3D,!0),n._mode=_.MORPHING,n.camera._setTransform(s.IDENTITY),this._previousMode===_.SCENE2D)S(this,t,i);else{var o;t>0?(o=Y,e.fromDegrees(0,0,5*i.maximumRadius,i,o.position),e.negate(o.position,o.direction),e.normalize(o.direction,o.direction),e.clone(e.UNIT_Z,o.up)):o=C(this,i);var u,c=n.camera;c.frustum instanceof l?u=c.frustum.clone():(u=j,u.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,u.fov=a.toRadians(60)),o.frustum=u;var d=M(o);v(this,d),b(this,t,o,d)}0===t&&r(this._completeMorph)&&this._completeMorph()}},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return y(this),n(this)};var X=new t,Q=new e,K=new s,Z=new e,J=new e,$=new e,ee=new e,te=new e,ie=new e,re=new l,ne=new e,oe=new e,ae=new e,se=new e,le=new e,ue=new e,ce=new e,de=new e,he=new e,pe=new e,fe=new e,me=new e,_e=new u,ge=new d,ve=new e,ye={position:void 0,direction:void 0,up:void 0,frustum:void 0},Ce=new t,be={position:new e,direction:new e,up:new e,position2D:new e,direction2D:new e,up2D:new e,frustum:new u},Se={position:new e,direction:new e,up:new e,frustum:void 0},Te=new e,Ee=new d,Ae=new s,we=new e;return g}),define("Scene/TweenCollection",["../Core/clone","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/EasingFunction","../Core/getTimestamp","../Core/TimeConstants","../ThirdParty/Tween"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t,i,r,n,o,a,s,l,u,c){this._tweens=t,this._tweenjs=i,this._startObject=e(r),this._stopObject=e(n),this._duration=o,this._delay=a,this._easingFunction=s,this._update=l,this._complete=u,this.cancel=c,this.needsStart=!0}function c(){this._tweens=[]}return r(u.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}}),u.prototype.cancelTween=function(){this._tweens.remove(this)},r(c.prototype,{length:{get:function(){return this._tweens.length}}}),c.prototype.add=function(r){if(r=t(r,t.EMPTY_OBJECT),0===r.duration)return i(r.complete)&&r.complete(),new u(this);var n=r.duration/s.SECONDS_PER_MILLISECOND,a=t(r.delay,0),c=a/s.SECONDS_PER_MILLISECOND,d=t(r.easingFunction,o.LINEAR_NONE),h=r.startObject,p=new l.Tween(h);p.to(e(r.stopObject),n),p.delay(c),p.easing(d),i(r.update)&&p.onUpdate(function(){r.update(h)}),p.onComplete(t(r.complete,null)),p.repeat(t(r._repeat,0));var f=new u(this,p,r.startObject,r.stopObject,r.duration,a,d,r.update,r.complete,r.cancel);return this._tweens.push(f),f},c.prototype.addProperty=function(e){function i(e){r[n]=e.value}e=t(e,t.EMPTY_OBJECT);var r=e.object,n=e.property,o=e.startValue,a=e.stopValue;return this.add({startObject:{value:o},stopObject:{value:a},duration:t(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})},c.prototype.addAlpha=function(e){function r(e){for(var t=o.length,i=0;i<t;++i)n.uniforms[o[i]].alpha=e.alpha}e=t(e,t.EMPTY_OBJECT);var n=e.material,o=[];for(var a in n.uniforms)n.uniforms.hasOwnProperty(a)&&i(n.uniforms[a])&&i(n.uniforms[a].alpha)&&o.push(a);return this.add({startObject:{alpha:t(e.startValue,0)},stopObject:{alpha:t(e.stopValue,1)},duration:t(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel})},c.prototype.addOffsetIncrement=function(e){e=t(e,t.EMPTY_OBJECT);var i=e.material,r=i.uniforms;return this.addProperty({object:r,property:"offset",startValue:r.offset,stopValue:r.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})},c.prototype.remove=function(e){if(!i(e))return!1;var t=this._tweens.indexOf(e);return-1!==t&&(e.tweenjs.stop(),i(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0)},c.prototype.removeAll=function(){for(var e=this._tweens,t=0;t<e.length;++t){var r=e[t];r.tweenjs.stop(),i(r.cancel)&&r.cancel()}e.length=0},c.prototype.contains=function(e){return i(e)&&-1!==this._tweens.indexOf(e)},c.prototype.get=function(e){return this._tweens[e]},c.prototype.update=function(e){var t=this._tweens,r=0;for(e=i(e)?e/s.SECONDS_PER_MILLISECOND:a();r<t.length;){ -var n=t[r],o=n.tweenjs;n.needsStart?(n.needsStart=!1,o.start(e)):o.update(e)?r++:(o.stop(),t.splice(r,1))}},c}),define("Scene/ScreenSpaceCameraController",["../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/Ellipsoid","../Core/HeadingPitchRoll","../Core/IntersectionTests","../Core/isArray","../Core/KeyboardEventModifier","../Core/Math","../Core/Matrix3","../Core/Matrix4","../Core/OrthographicFrustum","../Core/Plane","../Core/Quaternion","../Core/Ray","../Core/Transforms","./CameraEventAggregator","./CameraEventType","./MapMode2D","./SceneMode","./SceneTransforms","./TweenCollection"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w){"use strict";function x(i){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.translateEventTypes=S.LEFT_DRAG,this.zoomEventTypes=[S.RIGHT_DRAG,S.WHEEL,S.PINCH],this.rotateEventTypes=S.LEFT_DRAG,this.tiltEventTypes=[S.MIDDLE_DRAG,S.PINCH,{eventType:S.LEFT_DRAG,modifier:h.CTRL},{eventType:S.RIGHT_DRAG,modifier:h.CTRL}],this.lookEventTypes={eventType:S.LEFT_DRAG,modifier:h.SHIFT},this.minimumPickingTerrainHeight=15e4,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumCollisionTerrainHeight=15e3,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=75e5,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this._scene=i,this._globe=void 0,this._ellipsoid=void 0,this._aggregator=new b(i.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._tweens=new w,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new e(-1,-1),this._tiltCenter=new t,this._rotateMousePosition=new e(-1,-1),this._rotateStartPosition=new t,this._strafeStartPosition=new t,this._zoomMouseStart=new e(-1,-1),this._zoomWorldPosition=new t,this._useZoomWorldPosition=!1,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._rotatingZoom=!1;var n=i.mapProjection;this._maxCoord=n.project(new r(Math.PI,p.PI_OVER_TWO)),this._zoomFactor=5,this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=2e-4,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3}function P(e,t){if(e<0)return 0;var i=25*(1-t);return Math.exp(-i*e)}function D(t){return e.equalsEpsilon(t.startPosition,t.endPosition,p.EPSILON14)}function I(t,i,r,n,a,s,l){var u=s[l];o(u)||(u=s[l]={startPosition:new e,endPosition:new e,motion:new e,active:!1});var c=t.getButtonPressTime(i,r),d=t.getButtonReleaseTime(i,r),h=c&&d&&(d.getTime()-c.getTime())/1e3,p=new Date,f=d&&(p.getTime()-d.getTime())/1e3;if(c&&d&&h<te){var m=P(f,n);if(u.active)u.startPosition=e.clone(u.endPosition,u.startPosition),u.endPosition=e.multiplyByScalar(u.motion,m,u.endPosition),u.endPosition=e.add(u.startPosition,u.endPosition,u.endPosition),u.motion=e.clone(e.ZERO,u.motion);else{var _=t.getLastMovement(i,r);if(!o(_)||D(_))return;u.motion.x=.5*(_.endPosition.x-_.startPosition.x),u.motion.y=.5*(_.endPosition.y-_.startPosition.y),u.startPosition=e.clone(_.startPosition,u.startPosition),u.endPosition=e.multiplyByScalar(u.motion,m,u.endPosition),u.endPosition=e.add(u.startPosition,u.endPosition,u.endPosition),u.active=!0}if(isNaN(u.endPosition.x)||isNaN(u.endPosition.y)||e.distance(u.startPosition,u.endPosition)<.5)return void(u.active=!1);if(!t.isButtonDown(i,r)){a(s,t.getStartMousePosition(i,r),u)}}else u.active=!1}function M(e,t,i,r,n,a){if(o(i)){var s=e._aggregator;d(i)||(ie[0]=i,i=ie);for(var l=i.length,u=0;u<l;++u){var c=i[u],h=o(c.eventType)?c.eventType:c,p=c.modifier,f=s.isMoving(h,p)&&s.getMovement(h,p),m=s.getStartMousePosition(h,p);e.enableInputs&&t&&(f?r(e,m,f):n<1&&I(s,h,p,n,r,e,a))}}}function R(i,r,n,a,s,l){var u=1;o(l)&&(u=p.clamp(Math.abs(l),.25,1));var c=i.minimumZoomDistance*u,d=i.maximumZoomDistance,h=s-c,f=a*h;f=p.clamp(f,i._minimumZoomRate,i._maximumZoomRate);var m=n.endPosition.y-n.startPosition.y,g=m/i._scene.canvas.clientHeight;g=Math.min(g,i.maximumMovementRatio);var v=f*g;if(!(v>0&&Math.abs(s-c)<1||v<0&&Math.abs(s-d)<1)){s-v<c?v=s-c-1:s-v>d&&(v=s-d);var y=i._scene,C=y.camera,b=y.mode,S=we.orientation;if(S.heading=C.heading,S.pitch=C.pitch,S.roll=C.roll,C.frustum instanceof _)return void(Math.abs(v)>0&&(C.zoomIn(v),C._adjustOrthographicFrustum()));var T,w=e.equals(r,i._zoomMouseStart),x=i._zoomingOnVector,P=i._rotatingZoom;if(w||(i._zoomMouseStart=e.clone(r,i._zoomMouseStart),o(i._globe)&&(b===E.SCENE2D?(T=C.getPickRay(r,re).origin,T=t.fromElements(T.y,T.z,T.x)):T=z(i,r,ne)),o(T)?(i._useZoomWorldPosition=!0,i._zoomWorldPosition=t.clone(T,i._zoomWorldPosition)):i._useZoomWorldPosition=!1,x=i._zoomingOnVector=!1,P=i._rotatingZoom=!1),!i._useZoomWorldPosition)return void C.zoomIn(v);var D=b===E.COLUMBUS_VIEW;if(C.positionCartographic.height<2e6&&(P=!0),!w||P){if(b===E.SCENE2D){var I=i._zoomWorldPosition,M=C.position;if(!t.equals(I,M)&&C.positionCartographic.height<2*i._maxCoord.x){var R=C.position.x,O=t.subtract(I,M,ae);t.normalize(O,O);var L=t.distance(I,M)*v/(.5*C.getMagnitude());C.move(O,.5*L),(C.position.x<0&&R>0||C.position.x>0&&R<0)&&(T=C.getPickRay(r,re).origin,T=t.fromElements(T.y,T.z,T.x),i._zoomWorldPosition=t.clone(T,i._zoomWorldPosition))}}else if(b===E.SCENE3D){var N=t.normalize(C.position,he);if(C.positionCartographic.height<3e3&&Math.abs(t.dot(C.direction,N))<.6)D=!0;else{var F=y.canvas,B=se;B.x=F.clientWidth/2,B.y=F.clientHeight/2;var k=z(i,B,le);if(o(k)&&C.positionCartographic.height<1e6){var V=fe;t.clone(C.position,V);var U=i._zoomWorldPosition,G=pe;if(G=t.normalize(U,G),t.dot(G,N)<0)return;var H=Se,W=ge;t.clone(C.direction,W),t.add(V,t.multiplyByScalar(W,1e3,Te),H);var q=ve,Y=ye;t.subtract(U,V,q),t.normalize(q,Y);var j=t.dot(N,Y);if(j>=0)return void(i._zoomMouseStart.x=-1);var X=Math.acos(-j),Q=t.magnitude(V),K=t.magnitude(U),Z=Q-v,J=t.magnitude(q),$=Math.asin(p.clamp(J/K*Math.sin(X),-1,1)),ee=Math.asin(p.clamp(Z/K*Math.sin(X),-1,1)),te=$-ee+X,ie=me;t.normalize(V,ie);var xe=_e;xe=t.cross(Y,ie,xe),xe=t.normalize(xe,xe),t.normalize(t.cross(ie,xe,Te),W),t.multiplyByScalar(t.normalize(H,Te),t.magnitude(H)-v,H),t.normalize(V,V),t.multiplyByScalar(V,Z,V);var Pe=Ce;t.multiplyByScalar(t.add(t.multiplyByScalar(ie,Math.cos(te)-1,Ee),t.multiplyByScalar(W,Math.sin(te),Ae),Te),Z,Pe),t.add(V,Pe,V),t.normalize(H,ie),t.normalize(t.cross(ie,xe,Te),W);var De=be;return t.multiplyByScalar(t.add(t.multiplyByScalar(ie,Math.cos(te)-1,Ee),t.multiplyByScalar(W,Math.sin(te),Ae),Te),t.magnitude(H),De),t.add(H,De,H),t.clone(V,C.position),t.normalize(t.subtract(H,V,Te),C.direction),t.clone(C.direction,C.direction),t.cross(C.direction,C.up,C.right),t.cross(C.right,C.direction,C.up),void C.setView(we)}if(o(k)){var Ie=t.normalize(k,ue),Me=t.normalize(i._zoomWorldPosition,ce),Re=t.dot(Me,Ie);if(Re>0&&Re<1){var Oe=p.acosClamped(Re),Le=t.cross(Me,Ie,de),Ne=Math.abs(Oe)>p.toRadians(20)?.75*C.positionCartographic.height:C.positionCartographic.height-v,Fe=v/Ne;C.rotate(Le,Oe*Fe)}}else D=!0}}i._rotatingZoom=!D}if(!w&&D||x){var Be,ze=A.wgs84ToWindowCoordinates(y,i._zoomWorldPosition,oe);Be=b!==E.COLUMBUS_VIEW&&e.equals(r,i._zoomMouseStart)&&o(ze)?C.getPickRay(ze,re):C.getPickRay(r,re);var ke=Be.direction;b!==E.COLUMBUS_VIEW&&b!==E.SCENE2D||t.fromElements(ke.y,ke.z,ke.x,ke),C.move(ke,v),i._zoomingOnVector=!0}else C.zoomIn(v);C.setView(we)}}function O(e,i,r){var n=e._scene,o=n.camera,a=o.getPickRay(r.startPosition,xe).origin,s=o.getPickRay(r.endPosition,Pe).origin;a=t.fromElements(a.y,a.z,a.x,a),s=t.fromElements(s.y,s.z,s.x,s);var l=t.subtract(a,s,De),u=t.magnitude(l);u>0&&(t.normalize(l,l),o.move(l,u))}function L(e,t,i){o(i.distance)&&(i=i.distance);var r=e._scene,n=r.camera;R(e,t,i,e._zoomFactor,n.getMagnitude())}function N(t,i,r){if(o(r.angleAndHeight))return void F(t,i,r.angleAndHeight);var n=t._scene,a=n.camera,s=n.canvas,l=s.clientWidth,u=s.clientHeight,c=Ie;c.x=2/l*r.startPosition.x-1,c.y=2/u*(u-r.startPosition.y)-1,c=e.normalize(c,c);var d=Me;d.x=2/l*r.endPosition.x-1,d.y=2/u*(u-r.endPosition.y)-1,d=e.normalize(d,d);var h=p.acosClamped(c.x);c.y<0&&(h=p.TWO_PI-h);var f=p.acosClamped(d.x);d.y<0&&(f=p.TWO_PI-f);var m=f-h;a.twistRight(m)}function F(e,t,i){var r=e._rotateFactor*e._rotateRateRangeAdjustment;r>e._maximumRotateRate&&(r=e._maximumRotateRate),r<e._minimumRotateRate&&(r=e._minimumRotateRate);var n=e._scene,o=n.camera,a=n.canvas,s=(i.endPosition.x-i.startPosition.x)/a.clientWidth;s=Math.min(s,e.maximumMovementRatio);var l=r*s*Math.PI*4;o.twistRight(l)}function B(e){var t=e._scene.mapMode2D===T.ROTATE;m.equals(m.IDENTITY,e._scene.camera.transform)?(M(e,e.enableTranslate,e.translateEventTypes,O,e.inertiaTranslate,"_lastInertiaTranslateMovement"),M(e,e.enableZoom,e.zoomEventTypes,L,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&M(e,e.enableRotate,e.tiltEventTypes,N,e.inertiaSpin,"_lastInertiaTiltMovement")):(M(e,e.enableZoom,e.zoomEventTypes,L,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&M(e,e.enableRotate,e.translateEventTypes,N,e.inertiaSpin,"_lastInertiaSpinMovement"))}function z(e,i,r){var n=e._scene,a=e._globe,s=n.camera;if(o(a)){var l;n.pickPositionSupported&&(l=n.pickPositionWorldCoordinates(i,Oe));var u=s.getPickRay(i,Re),c=a.pickWorldCoordinates(u,n,Le);return(o(l)?t.distance(l,s.positionWC):Number.POSITIVE_INFINITY)<(o(c)?t.distance(c,s.positionWC):Number.POSITIVE_INFINITY)?t.clone(l,r):t.clone(c,r)}}function k(i,r,n){if(t.equals(r,i._translateMousePosition)||(i._looking=!1),t.equals(r,i._strafeMousePosition)||(i._strafing=!1),i._looking)return void $(i,r,n);if(i._strafing)return void q(i,r,n);var a,s=i._scene,l=s.camera,u=e.clone(n.startPosition,Ge),d=e.clone(n.endPosition,He),h=l.getPickRay(u,Ne),f=t.clone(t.ZERO,Ve),m=t.UNIT_X;if(l.position.z<i._minimumPickingTerrainHeight&&(a=z(i,u,Be),o(a)&&(f.x=a.x)),f.x>l.position.z&&o(a))return t.clone(a,i._strafeStartPosition),i._strafing=!0,q(i,r,n),void(i._strafeMousePosition=e.clone(r,i._strafeMousePosition));var _=g.fromPointNormal(f,m,Ue);h=l.getPickRay(u,Ne);var v=c.rayPlane(h,_,Be),y=l.getPickRay(d,Fe),C=c.rayPlane(y,_,ze);if(!o(v)||!o(C))return i._looking=!0,$(i,r,n),void e.clone(r,i._translateMousePosition);var b=t.subtract(v,C,ke),S=b.x;b.x=b.y,b.y=b.z,b.z=S;var T=t.magnitude(b);T>p.EPSILON6&&(t.normalize(b,b),l.move(b,T))}function V(t,i,r){if(o(r.angleAndHeight)&&(r=r.angleAndHeight),e.equals(i,t._tiltCenterMousePosition)||(t._tiltCVOffMap=!1,t._looking=!1),t._looking)return void $(t,i,r);var n=t._scene,a=n.camera,s=t._maxCoord,l=Math.abs(a.position.x)-s.x<0&&Math.abs(a.position.y)-s.y<0;t._tiltCVOffMap||!l||a.position.z>t._minimumPickingTerrainHeight?(t._tiltCVOffMap=!0,U(t,i,r)):G(t,i,r)}function U(i,r,n){var a=i._scene,s=a.camera,u=a.canvas,c=We;c.x=u.clientWidth/2,c.y=u.clientHeight/2;var d,h=s.getPickRay(c,qe),f=t.UNIT_X,_=h.origin,g=h.direction,v=t.dot(f,g);if(Math.abs(v)>p.EPSILON6&&(d=-t.dot(f,_)/v),!o(d)||d<=0)return i._looking=!0,$(i,r,n),void e.clone(r,i._tiltCenterMousePosition);var y=t.multiplyByScalar(g,d,Ye);t.add(_,y,y);var b=a.mapProjection,S=b.ellipsoid;t.fromElements(y.y,y.z,y.x,y);var T=b.unproject(y,$e);S.cartographicToCartesian(T,y);var E=C.eastNorthUpToFixedFrame(y,S,Xe),A=i._globe,w=i._ellipsoid;i._globe=void 0,i._ellipsoid=l.UNIT_SPHERE,i._rotateFactor=1,i._rotateRateRangeAdjustment=1;var x=m.clone(s.transform,et);s._setTransform(E),j(i,r,n,t.UNIT_Z),s._setTransform(x),i._globe=A,i._ellipsoid=w;var P=w.maximumRadius;i._rotateFactor=1/P,i._rotateRateRangeAdjustment=P}function G(i,r,n){var a,s,u=i._scene,d=u.camera,h=t.UNIT_X;if(e.equals(r,i._tiltCenterMousePosition))a=t.clone(i._tiltCenter,Ye);else{if(d.position.z<i._minimumPickingTerrainHeight&&(a=z(i,r,Ye)),!o(a)){s=d.getPickRay(r,qe);var _,y=s.origin,b=s.direction,S=t.dot(h,b);if(Math.abs(S)>p.EPSILON6&&(_=-t.dot(h,y)/S),!o(_)||_<=0)return i._looking=!0,$(i,r,n),void e.clone(r,i._tiltCenterMousePosition);a=t.multiplyByScalar(b,_,Ye),t.add(y,a,a)}e.clone(r,i._tiltCenterMousePosition),t.clone(a,i._tiltCenter)}var T=u.canvas,E=We;E.x=T.clientWidth/2,E.y=i._tiltCenterMousePosition.y,s=d.getPickRay(E,qe);var A=t.clone(t.ZERO,Ke);A.x=a.x;var w=g.fromPointNormal(A,h,Ze),x=c.rayPlane(s,w,je),P=d._projection,D=P.ellipsoid;t.fromElements(a.y,a.z,a.x,a);var I=P.unproject(a,$e);D.cartographicToCartesian(I,a);var M,R=C.eastNorthUpToFixedFrame(a,D,Xe);o(x)?(t.fromElements(x.y,x.z,x.x,x),I=P.unproject(x,$e),D.cartographicToCartesian(I,x),M=C.eastNorthUpToFixedFrame(x,D,Qe)):M=R;var O=i._globe,L=i._ellipsoid;i._globe=void 0,i._ellipsoid=l.UNIT_SPHERE,i._rotateFactor=1,i._rotateRateRangeAdjustment=1;var N=t.UNIT_Z,F=m.clone(d.transform,et);d._setTransform(R);var B=t.cross(t.UNIT_Z,t.normalize(d.position,Je),Je),k=t.dot(d.right,B);if(j(i,r,n,N,!1,!0),d._setTransform(M),k<0){n.startPosition.y>n.endPosition.y&&(N=void 0);var V=d.constrainedAxis;d.constrainedAxis=void 0,j(i,r,n,N,!0,!1),d.constrainedAxis=V}else j(i,r,n,N,!0,!1);if(o(d.constrainedAxis)){var U=t.cross(d.direction,d.constrainedAxis,rt);t.equalsEpsilon(U,t.ZERO,p.EPSILON6)||(t.dot(U,d.right)<0&&t.negate(U,U),t.cross(U,d.direction,d.up),t.cross(d.direction,d.up,d.right),t.normalize(d.up,d.up),t.normalize(d.right,d.right))}d._setTransform(F),i._globe=O,i._ellipsoid=L;var G=L.maximumRadius;i._rotateFactor=1/G,i._rotateRateRangeAdjustment=G;var H=t.clone(d.positionWC,Je);if(d._adjustHeightForTerrain(),!t.equals(d.positionWC,H)){d._setTransform(M),d.worldToCameraCoordinatesPoint(H,H);var W=t.magnitudeSquared(H);t.magnitudeSquared(d.position)>W&&(t.normalize(d.position,d.position),t.multiplyByScalar(d.position,Math.sqrt(W),d.position));var q=t.angleBetween(H,d.position),Y=t.cross(H,d.position,H);t.normalize(Y,Y);var X=v.fromAxisAngle(Y,q,tt),Q=f.fromQuaternion(X,it);f.multiplyByVector(Q,d.direction,d.direction),f.multiplyByVector(Q,d.up,d.up),t.cross(d.direction,d.up,d.right),t.cross(d.right,d.direction,d.up),d._setTransform(F)}}function H(e,i,r){o(r.distance)&&(r=r.distance);var n=e._scene,a=n.camera,s=n.canvas,l=nt;l.x=s.clientWidth/2,l.y=s.clientHeight/2;var u,c=a.getPickRay(l,ot);a.position.z<e._minimumPickingTerrainHeight&&(u=z(e,l,at));var d;if(o(u))d=t.distance(c.origin,u);else{var h=t.UNIT_X,p=c.origin,f=c.direction;d=-t.dot(h,p)/t.dot(h,f)}R(e,i,r,e._zoomFactor,d)}function W(e){var t=e._scene,i=t.camera;if(m.equals(m.IDENTITY,i.transform)){var r=e._tweens;if(e._aggregator.anyButtonDown&&r.removeAll(),M(e,e.enableTilt,e.tiltEventTypes,V,e.inertiaSpin,"_lastInertiaTiltMovement"),M(e,e.enableTranslate,e.translateEventTypes,k,e.inertiaTranslate,"_lastInertiaTranslateMovement"),M(e,e.enableZoom,e.zoomEventTypes,H,e.inertiaZoom,"_lastInertiaZoomMovement"),M(e,e.enableLook,e.lookEventTypes,$),!(e._aggregator.anyButtonDown||o(e._lastInertiaZoomMovement)&&e._lastInertiaZoomMovement.active||o(e._lastInertiaTranslateMovement)&&e._lastInertiaTranslateMovement.active||r.contains(e._tween))){var n=i.createCorrectPositionTween(e.bounceAnimationTime);o(n)&&(e._tween=r.add(n))}r.update()}else M(e,e.enableRotate,e.rotateEventTypes,j,e.inertiaSpin,"_lastInertiaSpinMovement"),M(e,e.enableZoom,e.zoomEventTypes,Q,e.inertiaZoom,"_lastInertiaZoomMovement")}function q(e,i,r){var n=e._scene,a=n.camera,s=z(e,r.startPosition,dt);if(o(s)){var l=r.endPosition,u=a.getPickRay(l,st),d=t.clone(a.direction,ct);n.mode===E.COLUMBUS_VIEW&&t.fromElements(d.z,d.x,d.y,d);var h=g.fromPointNormal(s,d,lt),p=c.rayPlane(u,h,ut);o(p)&&(d=t.subtract(s,p,d),n.mode===E.COLUMBUS_VIEW&&t.fromElements(d.y,d.z,d.x,d),t.add(a.position,d,a.position))}}function Y(i,r,n){var a=i._scene,s=a.camera;if(!m.equals(s.transform,m.IDENTITY))return void j(i,r,n);var u,c,d,h,p=i._ellipsoid.geodeticSurfaceNormal(s.position,_t),f=i._ellipsoid.cartesianToCartographic(s.positionWC,pt).height,_=i._globe,g=!1;if(o(_)&&f<i._minimumPickingTerrainHeight&&(h=z(i,n.startPosition,dt),o(h))){var v=s.getPickRay(n.startPosition,Re),y=i._ellipsoid.geodeticSurfaceNormal(h);g=Math.abs(t.dot(v.direction,y))<.05,g&&!i._looking&&(i._rotating=!1,i._strafing=!0)}if(e.equals(r,i._rotateMousePosition))return void(i._looking?$(i,r,n,p):i._rotating?j(i,r,n):i._strafing?(t.clone(h,i._strafeStartPosition),q(i,r,n)):(u=t.magnitude(i._rotateStartPosition),c=ft,c.x=c.y=c.z=u,d=l.fromCartesian3(c,mt),X(i,r,n,d)));i._looking=!1,i._rotating=!1,i._strafing=!1,o(_)&&f<i._minimumPickingTerrainHeight?o(h)?t.magnitude(s.position)<t.magnitude(h)?(t.clone(h,i._strafeStartPosition),i._strafing=!0,q(i,r,n)):(u=t.magnitude(h),c=ft,c.x=c.y=c.z=u,d=l.fromCartesian3(c,mt),X(i,r,n,d),t.clone(h,i._rotateStartPosition)):(i._looking=!0,$(i,r,n,p)):o(s.pickEllipsoid(n.startPosition,i._ellipsoid,ht))?(X(i,r,n,i._ellipsoid),t.clone(ht,i._rotateStartPosition)):f>i._minimumTrackBallHeight?(i._rotating=!0,j(i,r,n)):(i._looking=!0,$(i,r,n,p)),e.clone(r,i._rotateMousePosition)}function j(e,i,r,a,s,l){s=n(s,!1),l=n(l,!1);var u=e._scene,c=u.camera,d=u.canvas,h=c.constrainedAxis;o(a)&&(c.constrainedAxis=a);var p=t.magnitude(c.position),f=e._rotateFactor*(p-e._rotateRateRangeAdjustment);f>e._maximumRotateRate&&(f=e._maximumRotateRate),f<e._minimumRotateRate&&(f=e._minimumRotateRate);var m=(r.startPosition.x-r.endPosition.x)/d.clientWidth,_=(r.startPosition.y-r.endPosition.y)/d.clientHeight;m=Math.min(m,e.maximumMovementRatio),_=Math.min(_,e.maximumMovementRatio);var g=f*m*Math.PI*2,v=f*_*Math.PI;s||c.rotateRight(g),l||c.rotateUp(v),c.constrainedAxis=h}function X(i,r,n,a){var s=i._scene,l=s.camera,u=e.clone(n.startPosition,Tt),c=e.clone(n.endPosition,Et),d=l.pickEllipsoid(u,a,gt),h=l.pickEllipsoid(c,a,vt);if(!o(d)||!o(h))return i._rotating=!0,void j(i,r,n);if(d=l.worldToCameraCoordinates(d,d),h=l.worldToCameraCoordinates(h,h),o(l.constrainedAxis)){var f=l.constrainedAxis,m=t.mostOrthogonalAxis(f,yt);t.cross(m,f,m),t.normalize(m,m);var _=t.cross(f,m,Ct),g=t.magnitude(d),v=t.dot(f,d),y=Math.acos(v/g),C=t.multiplyByScalar(f,v,bt);t.subtract(d,C,C),t.normalize(C,C);var b=t.magnitude(h),S=t.dot(f,h),T=Math.acos(S/b),E=t.multiplyByScalar(f,S,St);t.subtract(h,E,E),t.normalize(E,E);var A=Math.acos(t.dot(C,m));t.dot(C,_)<0&&(A=p.TWO_PI-A);var w=Math.acos(t.dot(E,m));t.dot(E,_)<0&&(w=p.TWO_PI-w);var x,P=A-w;x=t.equalsEpsilon(f,l.position,p.EPSILON2)?l.right:t.cross(f,l.position,yt);var D,I=t.cross(f,x,yt),M=t.dot(I,t.subtract(d,f,Ct)),R=t.dot(I,t.subtract(h,f,Ct));D=M>0&&R>0?T-y:M>0&&R<=0?t.dot(l.position,f)>0?-y-T:y+T:y-T,l.rotateRight(P),l.rotateUp(D)}else{t.normalize(d,d),t.normalize(h,h);var O=t.dot(d,h),L=t.cross(d,h,yt);if(O<1&&!t.equalsEpsilon(L,t.ZERO,p.EPSILON14)){var N=Math.acos(O);l.rotate(L,N)}}}function Q(e,i,r){o(r.distance)&&(r=r.distance);var n=e._ellipsoid,a=e._scene,s=a.camera,l=a.canvas,u=nt;u.x=l.clientWidth/2,u.y=l.clientHeight/2;var c,d=s.getPickRay(u,ot),h=n.cartesianToCartographic(s.position,wt).height;h<e._minimumPickingTerrainHeight&&(c=z(e,u,at));var p;p=o(c)?t.distance(d.origin,c):h;var f=t.normalize(s.position,At);R(e,i,r,e._zoomFactor,p,t.dot(f,s.direction))}function K(t,i,r){var n=t._scene,a=n.camera;if(m.equals(a.transform,m.IDENTITY)){if(o(r.angleAndHeight)&&(r=r.angleAndHeight),e.equals(i,t._tiltCenterMousePosition)||(t._tiltOnEllipsoid=!1,t._looking=!1),t._looking){return void $(t,i,r,t._ellipsoid.geodeticSurfaceNormal(a.position,Bt))}var s=t._ellipsoid,l=s.cartesianToCartographic(a.position,Ft);t._tiltOnEllipsoid||l.height>t._minimumCollisionTerrainHeight?(t._tiltOnEllipsoid=!0,Z(t,i,r)):J(t,i,r)}}function Z(i,r,n){var a=i._ellipsoid,s=i._scene,u=s.camera,d=.25*i.minimumZoomDistance,h=a.cartesianToCartographic(u.positionWC,zt).height;if(!(h-d-1<p.EPSILON3&&n.endPosition.y-n.startPosition.y<0)){var f=s.canvas,_=xt;_.x=f.clientWidth/2,_.y=f.clientHeight/2;var g,v=u.getPickRay(_,Pt),b=c.rayEllipsoid(v,a);if(o(b))g=y.getPoint(v,b.start,Dt);else{if(!(h>i._minimumTrackBallHeight)){i._looking=!0;return $(i,r,n,i._ellipsoid.geodeticSurfaceNormal(u.position,Bt)),void e.clone(r,i._tiltCenterMousePosition)}var S=c.grazingAltitudeLocation(v,a);if(!o(S))return;var T=a.cartesianToCartographic(S,Ft);T.height=0,g=a.cartographicToCartesian(T,Dt)}var E=C.eastNorthUpToFixedFrame(g,a,Mt),A=i._globe,w=i._ellipsoid;i._globe=void 0,i._ellipsoid=l.UNIT_SPHERE,i._rotateFactor=1,i._rotateRateRangeAdjustment=1;var x=m.clone(u.transform,Ot);u._setTransform(E),j(i,r,n,t.UNIT_Z),u._setTransform(x),i._globe=A,i._ellipsoid=w;var P=w.maximumRadius;i._rotateFactor=1/P,i._rotateRateRangeAdjustment=P}}function J(i,r,n){var a,s,u,d=i._ellipsoid,h=i._scene,_=h.camera;if(e.equals(r,i._tiltCenterMousePosition))a=t.clone(i._tiltCenter,Dt);else{if(a=z(i,r,Dt),!o(a)){if(s=_.getPickRay(r,Pt),u=c.rayEllipsoid(s,d),!o(u)){if(d.cartesianToCartographic(_.position,Ft).height<=i._minimumTrackBallHeight){i._looking=!0;$(i,r,n,i._ellipsoid.geodeticSurfaceNormal(_.position,Bt)),e.clone(r,i._tiltCenterMousePosition)}return}a=y.getPoint(s,u.start,Dt)}e.clone(r,i._tiltCenterMousePosition),t.clone(a,i._tiltCenter)}var g=h.canvas,b=xt;b.x=g.clientWidth/2,b.y=i._tiltCenterMousePosition.y,s=_.getPickRay(b,Pt);var S=t.magnitude(a),T=t.fromElements(S,S,S,ft),E=l.fromCartesian3(T,mt);if(u=c.rayEllipsoid(s,E),o(u)){var A=t.magnitude(s.origin)>S?u.start:u.stop,w=y.getPoint(s,A,It),x=C.eastNorthUpToFixedFrame(a,d,Mt),P=C.eastNorthUpToFixedFrame(w,E,Rt),D=i._globe,I=i._ellipsoid;i._globe=void 0,i._ellipsoid=l.UNIT_SPHERE,i._rotateFactor=1,i._rotateRateRangeAdjustment=1;var M=t.UNIT_Z,R=m.clone(_.transform,Ot);_._setTransform(x);var O=t.cross(w,_.positionWC,rt),L=t.dot(_.rightWC,O);if(j(i,r,n,M,!1,!0),_._setTransform(P),L<0){n.startPosition.y>n.endPosition.y&&(M=void 0);var N=_.constrainedAxis;_.constrainedAxis=void 0,j(i,r,n,M,!0,!1),_.constrainedAxis=N}else j(i,r,n,M,!0,!1);if(o(_.constrainedAxis)){var F=t.cross(_.direction,_.constrainedAxis,rt);t.equalsEpsilon(F,t.ZERO,p.EPSILON6)||(t.dot(F,_.right)<0&&t.negate(F,F),t.cross(F,_.direction,_.up),t.cross(_.direction,_.up,_.right),t.normalize(_.up,_.up),t.normalize(_.right,_.right))}_._setTransform(R),i._globe=D,i._ellipsoid=I;var B=I.maximumRadius;i._rotateFactor=1/B,i._rotateRateRangeAdjustment=B;var k=t.clone(_.positionWC,rt);if(_._adjustHeightForTerrain(),!t.equals(_.positionWC,k)){_._setTransform(P),_.worldToCameraCoordinatesPoint(k,k);var V=t.magnitudeSquared(k);t.magnitudeSquared(_.position)>V&&(t.normalize(_.position,_.position),t.multiplyByScalar(_.position,Math.sqrt(V),_.position));var U=t.angleBetween(k,_.position),G=t.cross(k,_.position,k);t.normalize(G,G);var H=v.fromAxisAngle(G,U,Lt),W=f.fromQuaternion(H,Nt);f.multiplyByVector(W,_.direction,_.direction),f.multiplyByVector(W,_.up,_.up),t.cross(_.direction,_.up,_.right),t.cross(_.right,_.direction,_.up),_._setTransform(R)}}}function $(e,i,r,a){var s=e._scene,l=s.camera,u=kt;u.x=r.startPosition.x,u.y=0;var c=Vt;c.x=r.endPosition.x,c.y=0;var d,h,f=l.getPickRay(u,Ut),m=l.getPickRay(c,Gt),g=0;l.frustum instanceof _?(d=f.origin,h=m.origin,t.add(l.direction,d,d),t.add(l.direction,h,h),t.subtract(d,l.position,d),t.subtract(h,l.position,h),t.normalize(d,d),t.normalize(h,h)):(d=f.direction,h=m.direction);var v=t.dot(d,h);v<1&&(g=Math.acos(v)),g=r.startPosition.x>r.endPosition.x?-g:g;var y=e._horizontalRotationAxis;if(o(a)?l.look(a,-g):o(y)?l.look(y,-g):l.lookLeft(g),u.x=0,u.y=r.startPosition.y,c.x=0,c.y=r.endPosition.y,f=l.getPickRay(u,Ut),m=l.getPickRay(c,Gt),g=0,l.frustum instanceof _?(d=f.origin,h=m.origin,t.add(l.direction,d,d),t.add(l.direction,h,h),t.subtract(d,l.position,d),t.subtract(h,l.position,h),t.normalize(d,d),t.normalize(h,h)):(d=f.direction,h=m.direction),v=t.dot(d,h),v<1&&(g=Math.acos(v)),g=r.startPosition.y>r.endPosition.y?-g:g,a=n(a,y),o(a)){var C=l.direction,b=t.negate(a,Ht),S=t.equalsEpsilon(C,a,p.EPSILON2),T=t.equalsEpsilon(C,b,p.EPSILON2);if(S||T)(S&&g<0||T&&g>0)&&l.look(l.right,-g);else{v=t.dot(C,a);var E=p.acosClamped(v);g>0&&g>E&&(g=E-p.EPSILON4),v=t.dot(C,b),E=p.acosClamped(v),g<0&&-g>E&&(g=-E+p.EPSILON4);var A=t.cross(a,C,Wt);l.look(A,g)}}else l.lookUp(g)}function ee(e){M(e,e.enableRotate,e.rotateEventTypes,Y,e.inertiaSpin,"_lastInertiaSpinMovement"),M(e,e.enableZoom,e.zoomEventTypes,Q,e.inertiaZoom,"_lastInertiaZoomMovement"),M(e,e.enableTilt,e.tiltEventTypes,K,e.inertiaSpin,"_lastInertiaTiltMovement"),M(e,e.enableLook,e.lookEventTypes,$)}var te=.4,ie=[],re=new y,ne=new t,oe=new e,ae=new t,se=new e,le=new t,ue=new t,ce=new t,de=new t,he=new t,pe=new t,fe=new t,me=new t,_e=new t,ge=new t,ve=new t,ye=new t,Ce=new t,be=new t,Se=new t,Te=new t,Ee=new t,Ae=new t,we={orientation:new u},xe=new y,Pe=new y,De=new t,Ie=new e,Me=new e,Re=new y,Oe=new t,Le=new t,Ne=new y,Fe=new y,Be=new t,ze=new t,ke=new t,Ve=new t,Ue=new g(t.UNIT_X,0),Ge=new e,He=new e,We=new e,qe=new y,Ye=new t,je=new t,Xe=new m,Qe=new m,Ke=new t,Ze=new g(t.UNIT_X,0),Je=new t,$e=new r,et=new m,tt=new v,it=new f,rt=new t,nt=new e,ot=new y,at=new t,st=new y,lt=new g(t.UNIT_X,0),ut=new t,ct=new t,dt=new t,ht=new t,pt=new r,ft=new t,mt=new l,_t=new t,gt=i.clone(i.UNIT_W),vt=i.clone(i.UNIT_W),yt=new t,Ct=new t,bt=new t,St=new t,Tt=new e,Et=new e,At=new t,wt=new r,xt=new e,Pt=new y,Dt=new t,It=new t,Mt=new m,Rt=new m,Ot=new m,Lt=new v,Nt=new f,Ft=new r,Bt=new t,zt=new r,kt=new e,Vt=new e,Ut=new y,Gt=new y,Ht=new t,Wt=new t;return x.prototype.update=function(){m.equals(this._scene.camera.transform,m.IDENTITY)?(this._globe=this._scene.globe,this._ellipsoid=o(this._globe)?this._globe.ellipsoid:this._scene.mapProjection.ellipsoid):(this._globe=void 0,this._ellipsoid=l.UNIT_SPHERE),this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight*this._scene.terrainExaggeration,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight*this._scene.terrainExaggeration,this._minimumTrackBallHeight=this.minimumTrackBallHeight*this._scene.terrainExaggeration;var e=this._ellipsoid.maximumRadius;this._rotateFactor=1/e,this._rotateRateRangeAdjustment=e;var i=this._scene,r=i.mode;r===E.SCENE2D?B(this):r===E.COLUMBUS_VIEW?(this._horizontalRotationAxis=t.UNIT_Z,W(this)):r===E.SCENE3D&&(this._horizontalRotationAxis=void 0,ee(this)),this._aggregator.reset()},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),a(this)},x}),define("Scene/ShadowMapShader",["../Core/defined","../Renderer/ShaderSource"],function(e,t){"use strict";function i(){}return i.getShadowCastShaderKeyword=function(e,t,i,r){return"castShadow "+e+" "+t+" "+i+" "+r},i.createShadowCastVertexShader=function(i,r,n){var o=i.defines.slice(0),a=i.sources.slice(0);o.push("SHADOW_MAP"),n&&o.push("GENERATE_POSITION");var s=t.findPositionVarying(i),l=e(s);if(r&&!l){for(var u=a.length,c=0;c<u;++c)a[c]=t.replaceMain(a[c],"czm_shadow_cast_main");a.push("varying vec3 v_positionEC; \nvoid main() \n{ \n czm_shadow_cast_main(); \n v_positionEC = (czm_inverseProjection * gl_Position).xyz; \n}")}return new t({defines:o,sources:a})},i.createShadowCastFragmentShader=function(i,r,n,o){var a=i.defines.slice(0),s=i.sources.slice(0),l=t.findPositionVarying(i),u=e(l);u||(l="v_positionEC");for(var c=s.length,d=0;d<c;++d)s[d]=t.replaceMain(s[d],"czm_shadow_cast_main");var h="";return r&&(u||(h+="varying vec3 v_positionEC; \n"),h+="uniform vec4 shadowMap_lightPositionEC; \n"),h+=o?"void main() \n{ \n":"void main() \n{ \n czm_shadow_cast_main(); \n if (gl_FragColor.a == 0.0) \n { \n discard; \n } \n",h+=r?" float distance = length("+l+"); \n if (distance >= shadowMap_lightPositionEC.w) \n { \n discard; \n } \n distance /= shadowMap_lightPositionEC.w; // radius \n gl_FragColor = czm_packDepth(distance); \n":n?" gl_FragColor = vec4(1.0); \n":" gl_FragColor = czm_packDepth(gl_FragCoord.z); \n",h+="} \n",s.push(h),new t({defines:a,sources:s})},i.getShadowReceiveShaderKeyword=function(e,t,i,r){return"receiveShadow "+e._usesDepthTexture+e._polygonOffsetSupported+e._isPointLight+e._isSpotLight+(e._numberOfCascades>1)+e.debugCascadeColors+e.softShadows+t+i+r},i.createShadowReceiveVertexShader=function(e,i,r){var n=e.defines.slice(0),o=e.sources.slice(0);return n.push("SHADOW_MAP"),i&&(r?n.push("GENERATE_POSITION_AND_NORMAL"):n.push("GENERATE_POSITION")),new t({defines:n,sources:o})},i.createShadowReceiveFragmentShader=function(i,r,n,o,a){for(var s=t.findNormalVarying(i),l=!o&&e(s)||o&&a,u=t.findPositionVarying(i),c=e(u),d=r._usesDepthTexture,h=r._polygonOffsetSupported,p=r._isPointLight,f=r._isSpotLight,m=r._numberOfCascades>1,_=r.debugCascadeColors,g=r.softShadows,v=p?r._pointBias:o?r._terrainBias:r._primitiveBias,y=i.defines.slice(0),C=i.sources.slice(0),b=C.length,S=0;S<b;++S)C[S]=t.replaceMain(C[S],"czm_shadow_receive_main");p?y.push("USE_CUBE_MAP_SHADOW"):d&&y.push("USE_SHADOW_DEPTH_TEXTURE"),g&&!p&&y.push("USE_SOFT_SHADOWS"),m&&n&&o&&(l?y.push("ENABLE_VERTEX_LIGHTING"):y.push("ENABLE_DAYNIGHT_SHADING")),n&&v.normalShading&&l&&(y.push("USE_NORMAL_SHADING"),v.normalShadingSmooth>0&&y.push("USE_NORMAL_SHADING_SMOOTH"));var T="";T+=p?"uniform samplerCube shadowMap_textureCube; \n":"uniform sampler2D shadowMap_texture; \n";var E;return E=c?" return vec4("+u+", 1.0); \n":"#ifndef LOG_DEPTH \n return czm_windowToEyeCoordinates(gl_FragCoord); \n#else \n return vec4(v_logPositionEC, 1.0); \n#endif \n",T+="uniform mat4 shadowMap_matrix; \nuniform vec3 shadowMap_lightDirectionEC; \nuniform vec4 shadowMap_lightPositionEC; \nuniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; \nuniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; \n#ifdef LOG_DEPTH \nvarying vec3 v_logPositionEC; \n#endif \nvec4 getPositionEC() \n{ \n"+E+"} \nvec3 getNormalEC() \n{ \n"+(l?" return normalize("+s+"); \n":" return vec3(1.0); \n")+"} \nvoid applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) \n{ \n"+(v.normalOffset&&l?" float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; \n float normalOffsetScale = 1.0 - nDotL; \n vec3 offset = normalOffset * normalOffsetScale * normalEC; \n positionEC.xyz += offset; \n":"")+"} \n",T+="void main() \n{ \n czm_shadow_receive_main(); \n vec4 positionEC = getPositionEC(); \n vec3 normalEC = getNormalEC(); \n float depth = -positionEC.z; \n",T+=" czm_shadowParameters shadowParameters; \n shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; \n shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; \n shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; \n shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; \n",o?T+=" shadowParameters.depthBias *= max(depth * 0.01, 1.0); \n":h||(T+=" shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); \n"), -T+=p?" vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; \n float distance = length(directionEC); \n directionEC = normalize(directionEC); \n float radius = shadowMap_lightPositionEC.w; \n // Stop early if the fragment is beyond the point light radius \n if (distance > radius) \n { \n return; \n } \n vec3 directionWC = czm_inverseViewRotation * directionEC; \n shadowParameters.depth = distance / radius; \n shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); \n shadowParameters.texCoords = directionWC; \n float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); \n":f?" vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); \n float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); \n applyNormalOffset(positionEC, normalEC, nDotL); \n vec4 shadowPosition = shadowMap_matrix * positionEC; \n // Spot light uses a perspective projection, so perform the perspective divide \n shadowPosition /= shadowPosition.w; \n // Stop early if the fragment is not in the shadow bounds \n if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) \n { \n return; \n } \n shadowParameters.texCoords = shadowPosition.xy; \n shadowParameters.depth = shadowPosition.z; \n shadowParameters.nDotL = nDotL; \n float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); \n":m?" float maxDepth = shadowMap_cascadeSplits[1].w; \n // Stop early if the eye depth exceeds the last cascade \n if (depth > maxDepth) \n { \n return; \n } \n // Get the cascade based on the eye-space depth \n vec4 weights = czm_cascadeWeights(depth); \n // Apply normal offset \n float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); \n applyNormalOffset(positionEC, normalEC, nDotL); \n // Transform position into the cascade \n vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; \n // Get visibility \n shadowParameters.texCoords = shadowPosition.xy; \n shadowParameters.depth = shadowPosition.z; \n shadowParameters.nDotL = nDotL; \n float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); \n // Fade out shadows that are far away \n float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; \n float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); \n visibility = mix(visibility, 1.0, fade); \n"+(_?" // Draw cascade colors for debugging \n gl_FragColor *= czm_cascadeColor(weights); \n":""):" float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); \n applyNormalOffset(positionEC, normalEC, nDotL); \n vec4 shadowPosition = shadowMap_matrix * positionEC; \n // Stop early if the fragment is not in the shadow bounds \n if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) \n { \n return; \n } \n shadowParameters.texCoords = shadowPosition.xy; \n shadowParameters.depth = shadowPosition.z; \n shadowParameters.nDotL = nDotL; \n float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); \n",T+=" gl_FragColor.rgb *= visibility; \n} \n",C.push(T),new t({defines:y,sources:C})},i}),define("Scene/ShadowMap",["../Core/BoundingRectangle","../Core/BoundingSphere","../Core/BoxOutlineGeometry","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/Cartographic","../Core/clone","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/combine","../Core/CullingVolume","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/FeatureDetection","../Core/GeometryInstance","../Core/Intersect","../Core/Math","../Core/Matrix4","../Core/OrthographicOffCenterFrustum","../Core/PerspectiveFrustum","../Core/PixelFormat","../Core/Quaternion","../Core/SphereOutlineGeometry","../Core/WebGLConstants","../Renderer/ClearCommand","../Renderer/ContextLimits","../Renderer/CubeMap","../Renderer/DrawCommand","../Renderer/Framebuffer","../Renderer/Pass","../Renderer/PassState","../Renderer/PixelDatatype","../Renderer/Renderbuffer","../Renderer/RenderbufferFormat","../Renderer/RenderState","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap","./Camera","./CullFace","./DebugCameraPrimitive","./PerInstanceColorAppearance","./Primitive","./ShadowMapShader"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q){"use strict";function K(e){e=h(e,h.EMPTY_OBJECT);var i=e.context;this._enabled=h(e.enabled,!0),this._softShadows=h(e.softShadows,!1),this._normalOffset=h(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=h(e.fromLightSource,!0),this.darkness=h(e.darkness,.3),this._darkness=this.darkness,this.maximumDistance=h(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;var a=!0;(g.isInternetExplorer()||g.isEdge()||(g.isChrome()||g.isFirefox())&&g.isWindows()&&!i.depthTexture)&&(a=!1),this._polygonOffsetSupported=a,this._terrainBias={polygonOffset:a,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:a,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new b,this._shadowMapTexture=void 0,this._lightDirectionEC=new n,this._lightPositionEC=new o,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new fe,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new t,this._isPointLight=h(e.isPointLight,!1),this._pointLightRadius=h(e.pointLightRadius,100),this._cascadesEnabled=!this._isPointLight&&h(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?h(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new r,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new S:p(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new o,new o],this._cascadeMatrices=[new b,new b,new b,new b],this._cascadeDistances=new o;var s;s=this._isPointLight?6:this._cascadesEnabled?this._numberOfCascades:1,this._passes=new Array(s);for(var u=0;u<s;++u)this._passes[u]=new Z(i);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=i.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,$(this),this._clearCommand=new P({depth:1,color:new l}),this._clearPassState=new L(i),this._size=h(e.size,2048),this.size=this._size}function Z(e){this.camera=new fe,this.passState=new L(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function J(e,t){return z.fromCache({cull:{enabled:!0,face:q.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function $(e){var t=!e._usesDepthTexture;e._primitiveRenderState=J(t,e._primitiveBias),e._terrainRenderState=J(t,e._terrainBias),e._pointRenderState=J(t,e._pointBias)}function ee(e){for(var t=e._passes.length,i=0;i<t;++i){var r=e._passes[i],n=r.framebuffer;p(n)&&!n.isDestroyed()&&n.destroy(),r.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function te(){return new k({wrapS:H.CLAMP_TO_EDGE,wrapT:H.CLAMP_TO_EDGE,minificationFilter:G.NEAREST,magnificationFilter:U.NEAREST})}function ie(e,t){for(var i=new F({context:t,width:e._textureSize.x,height:e._textureSize.y,format:B.DEPTH_COMPONENT16}),r=new V({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:E.RGBA,pixelDatatype:N.UNSIGNED_BYTE,sampler:te()}),n=new R({context:t,depthRenderbuffer:i,colorTextures:[r],destroyAttachments:!1}),o=e._passes.length,a=0;a<o;++a){var s=e._passes[a];s.framebuffer=n,s.passState.framebuffer=n}e._shadowMapTexture=r,e._depthAttachment=i,e._colorAttachment=r}function re(e,t){for(var i=new V({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:E.DEPTH_STENCIL,pixelDatatype:N.UNSIGNED_INT_24_8,sampler:te()}),r=new R({context:t,depthStencilTexture:i,destroyAttachments:!1}),n=e._passes.length,o=0;o<n;++o){var a=e._passes[o];a.framebuffer=r,a.passState.framebuffer=r}e._shadowMapTexture=i,e._depthAttachment=i}function ne(e,t){for(var i=new F({context:t,width:e._textureSize.x,height:e._textureSize.y,format:B.DEPTH_COMPONENT16}),r=new I({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:E.RGBA,pixelDatatype:N.UNSIGNED_BYTE,sampler:te()}),n=[r.negativeX,r.negativeY,r.negativeZ,r.positiveX,r.positiveY,r.positiveZ],o=0;o<6;++o){var a=new R({context:t,depthRenderbuffer:i,colorTextures:[n[o]],destroyAttachments:!1}),s=e._passes[o];s.framebuffer=a,s.passState.framebuffer=a}e._shadowMapTexture=r,e._depthAttachment=i,e._colorAttachment=r}function oe(e,t){e._isPointLight?ne(e,t):e._usesDepthTexture?re(e,t):ie(e,t)}function ae(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==x.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,$(e),ee(e),oe(e,t))}function se(e,t){p(e._passes[0].framebuffer)&&e._shadowMapTexture.width===e._textureSize.x||(ee(e),oe(e,t),ae(e,t),le(e,t))}function le(e,t,i){i=h(i,0),(e._isPointLight||0===i)&&(e._clearCommand.framebuffer=e._passes[i].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function ue(t,i){t._size=i;var r=t._passes,n=r.length,o=t._textureSize;if(t._isPointLight){i=D.maximumCubeMapSize>=i?i:D.maximumCubeMapSize,o.x=i,o.y=i;var a=new e(0,0,i,i);r[0].passState.viewport=a,r[1].passState.viewport=a,r[2].passState.viewport=a,r[3].passState.viewport=a,r[4].passState.viewport=a,r[5].passState.viewport=a}else 1===n?(i=D.maximumTextureSize>=i?i:D.maximumTextureSize,o.x=i,o.y=i,r[0].passState.viewport=new e(0,0,i,i)):4===n&&(i=D.maximumTextureSize>=2*i?i:D.maximumTextureSize/2,o.x=2*i,o.y=2*i,r[0].passState.viewport=new e(0,0,i,i),r[1].passState.viewport=new e(i,0,i,i),r[2].passState.viewport=new e(0,i,i,i),r[3].passState.viewport=new e(i,i,i,i));t._clearPassState.viewport=new e(0,0,o.x,o.y);for(var s=0;s<n;++s){var l=r[s],u=l.passState.viewport,c=u.x/o.x,d=u.y/o.y,h=u.width/o.x,p=u.height/o.y;l.textureOffsets=new b(h,0,0,c,0,p,0,d,0,0,1,0,0,0,0,1)}}function ce(e,t){var i;i=e._isPointLight?"uniform samplerCube shadowMap_textureCube; \nvarying vec2 v_textureCoordinates; \nvoid main() \n{ \n vec2 uv = v_textureCoordinates; \n vec3 dir; \n \n if (uv.y < 0.5) \n { \n if (uv.x < 0.333) \n { \n dir.x = -1.0; \n dir.y = uv.x * 6.0 - 1.0; \n dir.z = uv.y * 4.0 - 1.0; \n } \n else if (uv.x < 0.666) \n { \n dir.y = -1.0; \n dir.x = uv.x * 6.0 - 3.0; \n dir.z = uv.y * 4.0 - 1.0; \n } \n else \n { \n dir.z = -1.0; \n dir.x = uv.x * 6.0 - 5.0; \n dir.y = uv.y * 4.0 - 1.0; \n } \n } \n else \n { \n if (uv.x < 0.333) \n { \n dir.x = 1.0; \n dir.y = uv.x * 6.0 - 1.0; \n dir.z = uv.y * 4.0 - 3.0; \n } \n else if (uv.x < 0.666) \n { \n dir.y = 1.0; \n dir.x = uv.x * 6.0 - 3.0; \n dir.z = uv.y * 4.0 - 3.0; \n } \n else \n { \n dir.z = 1.0; \n dir.x = uv.x * 6.0 - 5.0; \n dir.y = uv.y * 4.0 - 3.0; \n } \n } \n \n float shadow = czm_unpackDepth(textureCube(shadowMap_textureCube, dir)); \n gl_FragColor = vec4(vec3(shadow), 1.0); \n} \n":"uniform sampler2D shadowMap_texture; \nvarying vec2 v_textureCoordinates; \nvoid main() \n{ \n"+(e._usesDepthTexture?" float shadow = texture2D(shadowMap_texture, v_textureCoordinates).r; \n":" float shadow = czm_unpackDepth(texture2D(shadowMap_texture, v_textureCoordinates)); \n")+" gl_FragColor = vec4(vec3(shadow), 1.0); \n} \n";var r=t.createViewportQuadCommand(i,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return r.pass=O.OVERLAY,r}function de(t,i){var r=i.context,n=i.context.drawingBufferWidth,o=i.context.drawingBufferHeight,a=.3*Math.min(n,o),s=Se;s.x=n-a,s.y=0,s.width=a,s.height=a;var l=t._debugShadowViewCommand;p(l)||(l=ce(t,r),t._debugShadowViewCommand=l),p(l.renderState)&&e.equals(l.renderState.viewport,s)||(l.renderState=z.fromCache({viewport:e.clone(s)})),i.commandList.push(t._debugShadowViewCommand)}function he(e,t){var r=new v({geometry:new i({minimum:new n(-.5,-.5,-.5),maximum:new n(.5,.5,.5)}),attributes:{color:u.fromColor(t)}}),o=new v({geometry:new w({radius:.5}),attributes:{color:u.fromColor(t)}});return new X({geometryInstances:[r,o],appearance:new j({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}function pe(e,t){de(e,t);var i=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(i&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Y({camera:e._sceneCamera,color:l.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){i&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Y({camera:e._shadowMapCamera,color:l.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(var r=0;r<e._numberOfCascades;++r)i&&(e._debugCascadeFrustums[r]=e._debugCascadeFrustums[r]&&e._debugCascadeFrustums[r].destroy(),e._debugCascadeFrustums[r]=new Y({camera:e._passes[r].camera,color:xe[r],updateOnChange:!1})),e._debugCascadeFrustums[r].update(t)}}else if(e._isPointLight){if(!p(e._debugLightFrustum)||e._needsUpdate){var o=e._shadowMapCamera.positionWC,a=A.IDENTITY,s=2*e._pointLightRadius,u=n.fromElements(s,s,s,Pe),c=b.fromTranslationQuaternionRotationScale(o,a,u,Ee);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=he(c,l.YELLOW)}e._debugLightFrustum.update(t)}else p(e._debugLightFrustum)&&!e._needsUpdate||(e._debugLightFrustum=new Y({camera:e._shadowMapCamera,color:l.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function fe(){this.viewMatrix=new b,this.inverseViewMatrix=new b,this.frustum=void 0,this.positionCartographic=new a,this.positionWC=new n,this.directionWC=n.clone(n.UNIT_Z),this.upWC=n.clone(n.UNIT_Y),this.rightWC=n.clone(n.UNIT_X),this.viewProjectionMatrix=new b}function me(e,t){var i,r=e._shadowMapCamera,a=e._sceneCamera,s=a.frustum.near,l=a.frustum.far,u=e._numberOfCascades,c=l-s,d=l/s,h=.9,p=!1;t.shadowState.closestObjectSize<200&&(p=!0,h=.9);var f=Re,m=Ie;for(m[0]=s,m[u]=l,i=0;i<u;++i){var _=(i+1)/u,g=s*Math.pow(d,_),v=s+c*_,y=C.lerp(v,g,h);m[i+1]=y,f[i]=y-m[i]}if(p){for(i=0;i<u;++i)f[i]=Math.min(f[i],e._maximumCascadeDistances[i]);var S=m[0];for(i=0;i<u-1;++i)S+=f[i],m[i+1]=S}o.unpack(m,0,e._cascadeSplits[0]),o.unpack(m,1,e._cascadeSplits[1]),o.unpack(f,0,e._cascadeDistances);var T=r.frustum,E=T.left,A=T.right,w=T.bottom,x=T.top,P=T.near,D=T.far,I=r.positionWC,M=r.directionWC,R=r.upWC,O=a.frustum.clone(Me),L=r.getViewProjection();for(i=0;i<u;++i){O.near=m[i],O.far=m[i+1];for(var N=b.multiply(O.projectionMatrix,a.viewMatrix,Ee),F=b.inverse(N,Ee),B=b.multiply(L,F,Ee),z=n.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Oe),k=n.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Le),V=0;V<8;++V){var U=o.clone(Te[V],Ae[V]);b.multiplyByVector(B,U,U),n.divideByScalar(U,U.w,U),n.minimumByComponent(U,z,z),n.maximumByComponent(U,k,k)}z.x=Math.max(z.x,0),z.y=Math.max(z.y,0),z.z=0,k.x=Math.min(k.x,1),k.y=Math.min(k.y,1),k.z=Math.min(k.z,1);var G=e._passes[i],H=G.camera;H.clone(r);var W=H.frustum;W.left=E+z.x*(A-E),W.right=E+k.x*(A-E),W.bottom=w+z.y*(x-w),W.top=w+k.y*(x-w),W.near=P+z.z*(D-P),W.far=P+k.z*(D-P),G.cullingVolume=H.frustum.computeCullingVolume(I,M,R);var q=e._cascadeMatrices[i];b.multiply(H.getViewProjection(),a.inverseViewMatrix,q),b.multiply(G.textureOffsets,q,q)}}function _e(e,t){var i=e._shadowMapCamera,r=e._sceneCamera,a=b.multiply(r.frustum.projectionMatrix,r.viewMatrix,Ee),s=b.inverse(a,Ee),l=i.directionWC,u=r.directionWC,c=n.cross(l,u,Fe);u=n.cross(c,l,Be),n.normalize(u,u),n.normalize(c,c);for(var d=n.fromElements(0,0,0,ze),h=b.computeView(d,l,u,c,Ne),p=b.multiply(h,s,Ee),f=n.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,Oe),m=n.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Le),_=0;_<8;++_){var g=o.clone(Te[_],Ae[_]);b.multiplyByVector(p,g,g),n.divideByScalar(g,g.w,g),n.minimumByComponent(g,f,f),n.maximumByComponent(g,m,m)}m.z+=1e3,f.z-=10;var v=ze;v.x=-.5*(f.x+m.x),v.y=-.5*(f.y+m.y),v.z=-m.z;var y=b.fromTranslation(v,Ee);h=b.multiply(y,h,h);var C=.5*(m.x-f.x),S=.5*(m.y-f.y),T=m.z-f.z,E=i.frustum;E.left=-C,E.right=C,E.bottom=-S,E.top=S,E.near=.01,E.far=T,b.clone(h,i.viewMatrix),b.inverse(h,i.inverseViewMatrix),b.getTranslation(i.inverseViewMatrix,i.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(i.positionWC,i.positionCartographic),n.clone(l,i.directionWC),n.clone(u,i.upWC),n.clone(c,i.rightWC)}function ge(e,t){var i=new T;i.fov=C.PI_OVER_TWO,i.near=1,i.far=e._pointLightRadius,i.aspectRatio=1;for(var r=0;r<6;++r){var n=e._passes[r].camera;n.positionWC=e._shadowMapCamera.positionWC,n.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),n.directionWC=ke[r],n.upWC=Ve[r],n.rightWC=Ue[r],b.computeView(n.positionWC,n.directionWC,n.upWC,n.rightWC,n.viewMatrix),b.inverse(n.viewMatrix,n.inverseViewMatrix),n.frustum=i}}function ve(e,i){var r=e._sceneCamera,o=e._shadowMapCamera,a=We;if(e._cascadesEnabled){if(r.frustum.near>=e.maximumDistance)return e._outOfView=!0,void(e._needsUpdate=!1);var s=i.mapProjection.ellipsoid.geodeticSurfaceNormal(r.positionWC,Ge),l=n.negate(o.directionWC,He),u=n.dot(s,l),c=C.clamp(u/.1,0,1);if(e._darkness=C.lerp(1,e.darkness,c),u<0)return e._outOfView=!0,void(e._needsUpdate=!1);e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)a.center=o.positionWC,a.radius=e._pointLightRadius,e._outOfView=i.cullingVolume.computeVisibility(a)===y.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(a),t.clone(a,e._boundingSphere);else{var d=o.frustum.far/2,h=n.add(o.positionWC,n.multiplyByScalar(o.directionWC,d,qe),qe);a.center=h,a.radius=d,e._outOfView=i.cullingVolume.computeVisibility(a)===y.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(a),t.clone(a,e._boundingSphere)}}function ye(e,t){var i=t.camera,r=e._lightCamera,o=e._sceneCamera,a=e._shadowMapCamera;e._cascadesEnabled?n.clone(r.directionWC,a.directionWC):e._isPointLight?n.clone(r.positionWC,a.positionWC):a.clone(r);var s=e._lightDirectionEC;b.multiplyByPointAsVector(i.viewMatrix,a.directionWC,s),n.normalize(s,s),n.negate(s,s),b.multiplyByPoint(i.viewMatrix,a.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;var l,u;e._fitNearFar?(l=Math.min(t.shadowState.nearPlane,e.maximumDistance),u=Math.min(t.shadowState.farPlane,e.maximumDistance+1)):(l=i.frustum.near,u=e.maximumDistance),e._sceneCamera=W.clone(i,o),i.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=l,e._sceneCamera.frustum.far=u,e._distance=u-l,ve(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}function Ce(e,t,i){var r=e._isPointLight?e._pointBias:i?e._terrainBias:e._primitiveBias,n={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){var t=Ye;return t.x=1/e._textureSize.x,t.y=1/e._textureSize.y,o.fromElements(t.x,t.y,r.depthBias,r.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return o.fromElements(r.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new o,combinedUniforms2:new o};return c(t,n,!1)}function be(e,t,i,r,n,o){var a,l,u;if(p(o)&&(a=o.shaderProgram,l=o.renderState,u=o.uniformMap),o=M.shallowClone(i,o),o.castShadows=!0,o.receiveShadows=!1,!p(a)||n!==i.shaderProgram.id||t){var c=i.shaderProgram,d=i.pass===O.GLOBE,h=i.pass!==O.TRANSLUCENT,f=e._isPointLight,m=e._usesDepthTexture,_=Q.getShadowCastShaderKeyword(f,d,m,h);if(a=r.shaderCache.getDerivedShaderProgram(c,_),!p(a)){var g=c.vertexShaderSource,v=c.fragmentShaderSource,y=Q.createShadowCastVertexShader(g,f,d),C=Q.createShadowCastFragmentShader(v,f,m,h);a=r.shaderCache.createDerivedShaderProgram(c,_,{vertexShaderSource:y,fragmentShaderSource:C,attributeLocations:c._attributeLocations})}l=e._primitiveRenderState,f?l=e._pointRenderState:d&&(l=e._terrainRenderState);i.renderState.cull.enabled||(l=s(l,!1),l.cull=s(l.cull,!1),l.cull.enabled=!1,l=z.fromCache(l)),u=Ce(e,i.uniformMap,d)}return o.shaderProgram=a,o.renderState=l,o.uniformMap=u,o}K.MAXIMUM_DISTANCE=2e4,K.prototype.debugCreateRenderStates=function(){$(this)},f(K.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){ue(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});var Se=new e,Te=new Array(8);Te[0]=new o(-1,-1,-1,1),Te[1]=new o(1,-1,-1,1),Te[2]=new o(1,1,-1,1),Te[3]=new o(-1,1,-1,1),Te[4]=new o(-1,-1,1,1),Te[5]=new o(1,-1,1,1),Te[6]=new o(1,1,1,1),Te[7]=new o(-1,1,1,1);for(var Ee=new b,Ae=new Array(8),we=0;we<8;++we)Ae[we]=new o;var xe=[l.RED,l.GREEN,l.BLUE,l.MAGENTA],Pe=new n;fe.prototype.clone=function(e){b.clone(e.viewMatrix,this.viewMatrix),b.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),a.clone(e.positionCartographic,this.positionCartographic),n.clone(e.positionWC,this.positionWC),n.clone(e.directionWC,this.directionWC),n.clone(e.upWC,this.upWC),n.clone(e.rightWC,this.rightWC)};var De=new b(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);fe.prototype.getViewProjection=function(){var e=this.viewMatrix,t=this.frustum.projectionMatrix;return b.multiply(t,e,this.viewProjectionMatrix),b.multiply(De,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Ie=new Array(5),Me=new T,Re=new Array(4),Oe=new n,Le=new n,Ne=new b,Fe=new n,Be=new n,ze=new n,ke=[new n(-1,0,0),new n(0,-1,0),new n(0,0,-1),new n(1,0,0),new n(0,1,0),new n(0,0,1)],Ve=[new n(0,-1,0),new n(0,0,-1),new n(0,-1,0),new n(0,-1,0),new n(0,0,1),new n(0,-1,0)],Ue=[new n(0,0,1),new n(1,0,0),new n(-1,0,0),new n(0,0,-1),new n(1,0,0),new n(1,0,0)],Ge=new n,He=new n,We=new t,qe=We.center;K.prototype.update=function(e){if(ye(this,e),this._needsUpdate)if(se(this,e.context),this._isPointLight&&ge(this,e),this._cascadesEnabled&&(_e(this,e),this._numberOfCascades>1&&me(this,e)),this._isPointLight)this._shadowMapCullingVolume=d.fromBoundingSphere(this._boundingSphere);else{var t=this._shadowMapCamera,i=t.positionWC,r=t.directionWC,n=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(i,r,n),1===this._passes.length&&this._passes[0].camera.clone(t)}if(1===this._passes.length){var o=this._sceneCamera.inverseViewMatrix;b.multiply(this._shadowMapCamera.getViewProjection(),o,this._shadowMapMatrix)}this.debugShow&&pe(this,e)},K.prototype.updatePass=function(e,t){le(this,e,t)};var Ye=new r;return K.createReceiveDerivedCommand=function(e,t,i,r,n){p(n)||(n={});var o=e.length>0,a=t.shaderProgram,s=a.vertexShaderSource,l=a.fragmentShaderSource,u=t.pass===O.GLOBE,c=!1;if(u&&(c=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&o){var d,h;p(n.receiveCommand)&&(d=n.receiveCommand.shaderProgram,h=n.receiveCommand.uniformMap),n.receiveCommand=M.shallowClone(t,n.receiveCommand),n.castShadows=!1,n.receiveShadows=!0;var f=n.receiveShaderCastShadows!==t.castShadows,m=n.receiveShaderProgramId!==t.shaderProgram.id;if(!p(d)||m||i||f){var _=Q.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,c);if(d=r.shaderCache.getDerivedShaderProgram(a,_),!p(d)){var g=Q.createShadowReceiveVertexShader(s,u,c),v=Q.createShadowReceiveFragmentShader(l,e[0],t.castShadows,u,c);d=r.shaderCache.createDerivedShaderProgram(a,_,{vertexShaderSource:g,fragmentShaderSource:v,attributeLocations:a._attributeLocations})}h=Ce(e[0],t.uniformMap,u)}n.receiveCommand.shaderProgram=d,n.receiveCommand.uniformMap=h,n.receiveShaderProgramId=t.shaderProgram.id,n.receiveShaderCastShadows=t.castShadows}return n},K.createCastDerivedCommand=function(e,t,i,r,n){if(p(n)||(n={}),t.castShadows){var o=n.castCommands;p(o)||(o=n.castCommands=[]);var a=n.castShaderProgramId,s=e.length;o.length=s;for(var l=0;l<s;++l)o[l]=be(e[l],i,t,r,a,o[l]);n.castShaderProgramId=t.shaderProgram.id}return n},K.prototype.isDestroyed=function(){return!1},K.prototype.destroy=function(){ee(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(var e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return m(this)},K}),define("Shaders/PostProcessStages/AdditiveBlend",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform sampler2D colorTexture2;\nuniform vec2 center;\nuniform float radius;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nvec4 color0 = texture2D(colorTexture, v_textureCoordinates);\nvec4 color1 = texture2D(colorTexture2, v_textureCoordinates);\nfloat x = length(gl_FragCoord.xy - center) / radius;\nfloat t = smoothstep(0.5, 0.8, x);\ngl_FragColor = mix(color0 + color1, color1, t);\n}\n"}),define("Shaders/PostProcessStages/BrightPass",[],function(){"use strict";return"uniform sampler2D colorTexture;\nuniform float avgLuminance;\nuniform float threshold;\nuniform float offset;\nvarying vec2 v_textureCoordinates;\nfloat key(float avg)\n{\nfloat guess = 1.5 - (1.5 / (avg * 0.1 + 1.0));\nreturn max(0.0, guess) + 0.1;\n}\nvoid main()\n{\nvec4 color = texture2D(colorTexture, v_textureCoordinates);\nvec3 xyz = czm_RGBToXYZ(color.rgb);\nfloat luminance = xyz.r;\nfloat scaledLum = key(avgLuminance) * luminance / avgLuminance;\nfloat brightLum = max(scaledLum - threshold, 0.0);\nfloat brightness = brightLum / (offset + brightLum);\nxyz.r = brightness;\ngl_FragColor = vec4(czm_XYZToRGB(xyz), 1.0);\n}\n"}),define("Scene/SceneFramebuffer",["../Core/Color","../Core/defined","../Core/destroyObject","../Core/PixelFormat","../Renderer/ClearCommand","../Renderer/Framebuffer","../Renderer/PixelDatatype","../Renderer/Renderbuffer","../Renderer/RenderbufferFormat","../Renderer/RenderState","../Renderer/Sampler","../Renderer/Texture","../Renderer/TextureMagnificationFilter","../Renderer/TextureMinificationFilter","../Renderer/TextureWrap"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f){"use strict";function m(){this._colorTexture=void 0,this._idTexture=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._framebuffer=void 0,this._idFramebuffer=void 0,this._idClearColor=new e(0,0,0,0),this._useHdr=void 0,this._clearCommand=new n({color:new e(0,0,0,0),depth:1,owner:this})}function _(e){e._framebuffer=e._framebuffer&&e._framebuffer.destroy(),e._idFramebuffer=e._idFramebuffer&&e._idFramebuffer.destroy(),e._colorTexture=e._colorTexture&&e._colorTexture.destroy(),e._idTexture=e._idTexture&&e._idTexture.destroy(),e._depthStencilTexture=e._depthStencilTexture&&e._depthStencilTexture.destroy(),e._depthStencilRenderbuffer=e._depthStencilRenderbuffer&&e._depthStencilRenderbuffer.destroy(),e._depthStencilIdTexture=e._depthStencilIdTexture&&e._depthStencilIdTexture.destroy(),e._depthStencilIdRenderbuffer=e._depthStencilIdRenderbuffer&&e._depthStencilIdRenderbuffer.destroy(),e._framebuffer=void 0,e._idFramebuffer=void 0,e._colorTexture=void 0,e._idTexture=void 0,e._depthStencilTexture=void 0,e._depthStencilRenderbuffer=void 0,e._depthStencilIdTexture=void 0,e._depthStencilIdRenderbuffer=void 0}return m.prototype.update=function(e,i,n){var u=i.width,m=i.height,g=this._colorTexture;if(!t(g)||g.width!==u||g.height!==m||n!==this._useHdr){_(this),this._useHdr=n;var v=n?e.halfFloatingPointTexture?a.HALF_FLOAT:a.FLOAT:a.UNSIGNED_BYTE;this._colorTexture=new d({context:e,width:u,height:m,pixelFormat:r.RGBA,pixelDatatype:v,sampler:new c({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.NEAREST,magnificationFilter:h.NEAREST})}),this._idTexture=new d({context:e,width:u,height:m,pixelFormat:r.RGBA,pixelDatatype:a.UNSIGNED_BYTE,sampler:new c({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.NEAREST,magnificationFilter:h.NEAREST})}),e.depthTexture?(this._depthStencilTexture=new d({context:e,width:u,height:m,pixelFormat:r.DEPTH_STENCIL,pixelDatatype:a.UNSIGNED_INT_24_8,sampler:new c({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.NEAREST,magnificationFilter:h.NEAREST})}),this._depthStencilIdTexture=new d({context:e,width:u,height:m,pixelFormat:r.DEPTH_STENCIL,pixelDatatype:a.UNSIGNED_INT_24_8,sampler:new c({wrapS:f.CLAMP_TO_EDGE,wrapT:f.CLAMP_TO_EDGE,minificationFilter:p.NEAREST,magnificationFilter:h.NEAREST})})):(this._depthStencilRenderbuffer=new s({context:e,width:u,height:m,format:l.DEPTH_STENCIL}),this._depthStencilIdRenderbuffer=new s({context:e,width:u,height:m,format:l.DEPTH_STENCIL})),this._framebuffer=new o({context:e,colorTextures:[this._colorTexture],depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}),this._idFramebuffer=new o({context:e,colorTextures:[this._idTexture],depthStencilTexture:this._depthStencilIdTexture, -depthStencilRenderbuffer:this._depthStencilIdRenderbuffer,destroyAttachments:!1})}},m.prototype.clear=function(t,i,r){var n=i.framebuffer;i.framebuffer=this._framebuffer,e.clone(r,this._clearCommand.color),this._clearCommand.execute(t,i),i.framebuffer=this._idFramebuffer,e.clone(this._idClearColor,this._clearCommand.color),this._clearCommand.execute(t,i),i.framebuffer=n},m.prototype.getFramebuffer=function(){return this._framebuffer},m.prototype.getIdFramebuffer=function(){return this._idFramebuffer},m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){return _(this),i(this)},m}),define("Scene/SunPostProcess",["../Core/BoundingRectangle","../Core/Cartesian2","../Core/Cartesian4","../Core/defined","../Core/destroyObject","../Core/Math","../Core/Matrix4","../Core/Transforms","../Shaders/PostProcessStages/AdditiveBlend","../Shaders/PostProcessStages/BrightPass","../Shaders/PostProcessStages/GaussianBlur1D","../Shaders/PostProcessStages/PassThrough","./PostProcessStage","./PostProcessStageComposite","./PostProcessStageSampleMode","./PostProcessStageTextureCache","./SceneFramebuffer"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(){this._sceneFramebuffer=new _;var e=new Array(6);e[0]=new h({fragmentShader:d,textureScale:.125,forcePowerOfTwo:!0,sampleMode:f.LINEAR});var i=e[1]=new h({fragmentShader:u,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:.125,forcePowerOfTwo:!0}),r=this;this._delta=1,this._sigma=2,this._blurStep=new t,e[2]=new h({fragmentShader:c,uniforms:{step:function(){return r._blurStep.x=r._blurStep.y=1/i.outputTexture.width,r._blurStep},delta:function(){return r._delta},sigma:function(){return r._sigma},direction:0},textureScale:.125,forcePowerOfTwo:!0}),e[3]=new h({fragmentShader:c,uniforms:{step:function(){return r._blurStep.x=r._blurStep.y=1/i.outputTexture.width,r._blurStep},delta:function(){return r._delta},sigma:function(){return r._sigma},direction:1},textureScale:.125,forcePowerOfTwo:!0}),e[4]=new h({fragmentShader:d,sampleMode:f.LINEAR}),this._uCenter=new t,this._uRadius=void 0,e[5]=new h({fragmentShader:l,uniforms:{center:function(){return r._uCenter},radius:function(){return r._uRadius},colorTexture2:function(){return r._sceneFramebuffer.getFramebuffer().getColorTexture(0)}}}),this._stages=new p({stages:e});for(var n=new m(this),o=e.length,a=0;a<o;++a)e[a]._textureCache=n;this._textureCache=n,this.length=e.length}function v(i,r,n){var l=r.uniformState,u=l.sunPositionWC,c=l.view,d=l.viewProjection,h=l.projection,p=a.computeViewportTransformation(n,0,1,S),f=a.multiplyByPoint(c,u,y),m=s.pointToGLWindowCoordinates(d,p,u,C);f.x+=o.SOLAR_RADIUS;var _=s.pointToGLWindowCoordinates(h,p,f,f),g=30*t.magnitude(t.subtract(_,m,_))*2,v=b;v.x=g,v.y=g,i._uCenter=t.clone(m,i._uCenter),i._uRadius=.15*Math.max(v.x,v.y);var T=r.drawingBufferWidth,E=r.drawingBufferHeight,A=i._stages,w=A.get(0),x=w.outputTexture.width,P=w.outputTexture.height,D=new e;D.width=x,D.height=P,p=a.computeViewportTransformation(D,0,1,S),m=s.pointToGLWindowCoordinates(d,p,u,C),v.x*=x/T,v.y*=P/E;var I=w.scissorRectangle;I.x=Math.max(m.x-.5*v.x,0),I.y=Math.max(m.y-.5*v.y,0),I.width=Math.min(v.x,T),I.height=Math.min(v.y,E);for(var M=1;M<4;++M)e.clone(I,A.get(M).scissorRectangle)}g.prototype.get=function(e){return this._stages.get(e)},g.prototype.getStageByName=function(e){for(var t=this._stages.length,i=0;i<t;++i){var r=this._stages.get(i);if(r.name===e)return r}};var y=new i,C=new t,b=new t,S=new a;return g.prototype.clear=function(e,t,i){this._sceneFramebuffer.clear(e,t,i),this._textureCache.clear(e)},g.prototype.update=function(e){var t=e.context,i=e.viewport,r=this._sceneFramebuffer;r.update(t,i);var n=r.getFramebuffer();return this._textureCache.update(t),this._stages.update(t,!1),v(this,t,i),n},g.prototype.execute=function(e){var t=this._sceneFramebuffer.getFramebuffer().getColorTexture(0),i=this._stages,r=i.length;i.get(0).execute(e,t);for(var n=1;n<r;++n)i.get(n).execute(e,i.get(n-1).outputTexture)},g.prototype.copy=function(e,t){if(!r(this._copyColorCommand)){var i=this;this._copyColorCommand=e.createViewportQuadCommand(d,{uniformMap:{colorTexture:function(){return i._stages.get(i._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)},g.prototype.isDestroyed=function(){return!1},g.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),n(this)},g}),define("Scene/View",["../Core/BoundingRectangle","../Core/Cartesian3","../Core/CullingVolume","../Core/defined","../Core/getTimestamp","../Core/Interval","../Core/Math","../Core/Matrix4","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Renderer/ClearCommand","../Renderer/Pass","../Renderer/PassState","./Camera","./FrustumCommands","./GlobeDepth","./OIT","./PickDepthFramebuffer","./PickFramebuffer","./SceneFramebuffer","./SceneMode","./ShadowMap"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b){"use strict";function S(t,i,r){var n=t.context,o=[],a=i.frustum.near,s=i.frustum.far,l=t.logarithmicDepthBuffer?t.logarithmicDepthFarToNearRatio:t.farToNearRatio;A(a,s,l,Math.ceil(Math.log(s/a)/Math.log(l)),t.logarithmicDepthBuffer,o,!1,void 0);var u;n.depthTexture&&(u=new m);var c;t._useOIT&&n.depthTexture&&(c=new _(n));var d=new h(n);d.viewport=e.clone(r),this.camera=i,this._cameraClone=p.clone(i),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=r,this.passState=d,this.pickFramebuffer=new v(n),this.pickDepthFramebuffer=new g,this.sceneFramebuffer=new y,this.globeDepth=u,this.oit=c,this.pickDepths=[],this.debugGlobeDepths=[],this.frustumCommandsList=o,this.debugFrustumStatistics=void 0,this.updateFrustums=!1}function T(e,t){var i=Math.max(Math.abs(e.x),Math.abs(t.x)),r=Math.max(Math.abs(e.y),Math.abs(t.y)),n=Math.max(Math.abs(e.z),Math.abs(t.z));return Math.max(Math.max(i,r),n)}function E(e,i,r){var n=1/Math.max(1,T(e.position,i.position));return t.multiplyByScalar(e.position,n,x),t.multiplyByScalar(i.position,n,P),t.equalsEpsilon(x,P,r)&&t.equalsEpsilon(e.direction,i.direction,r)&&t.equalsEpsilon(e.up,i.up,r)&&t.equalsEpsilon(e.right,i.right,r)&&s.equalsEpsilon(e.transform,i.transform,r)&&e.frustum.equalsEpsilon(i.frustum,r)}function A(e,t,i,n,o,a,s,l){a.length=n;for(var u=0;u<n;++u){var c,d;s?(c=Math.min(t-l,e+u*l),d=Math.min(t,c+l)):(c=Math.max(e,Math.pow(i,u)*e),d=i*c,o||(d=Math.min(t,d)));var h=a[u];r(h)?(h.near=c,h.far=d):h=a[u]=new f(c,d)}}function w(e,t,i,n){e.debugShowFrustums&&(i.debugOverlappingFrustums=0);for(var o=t.frustumCommandsList,a=o.length,s=0;s<a;++s){var l=o[s],u=l.near,c=l.far;if(!(n.start>c)){if(n.stop<u)break;var d=i.pass,h=l.indices[d]++;if(l.commands[d][h]=i,e.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<s),i.executeInClosestFrustum)break}}if(e.debugShowFrustums){var p=t.debugFrustumStatistics.commandsInFrustums;p[i.debugOverlappingFrustums]=r(p[i.debugOverlappingFrustums])?p[i.debugOverlappingFrustums]+1:1,++t.debugFrustumStatistics.totalCommands}e.updateDerivedCommands(i)}var x=new t,P=new t;S.prototype.checkForCameraUpdates=function(e){var t=this.camera,i=this._cameraClone;return E(t,i,a.EPSILON15)?(this._cameraStartFired&&n()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=n(),p.clone(t,i),!0)};var D=new i,I=new o;return S.prototype.createPotentiallyVisibleSet=function(e){var t=e.frameState,i=t.camera,n=i.directionWC,o=i.positionWC,s=e._computeCommandList,l=e._overlayCommandList,u=t.commandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});for(var h=this.frustumCommandsList,p=h.length,f=d.NUMBER_OF_PASSES,m=0;m<p;++m)for(var _=0;_<f;++_)h[m].indices[_]=0;s.length=0,l.length=0;for(var g=Number.MAX_VALUE,v=-Number.MAX_VALUE,y=!1,S=t.shadowState.shadowsEnabled,T=Number.MAX_VALUE,E=-Number.MAX_VALUE,x=Number.MAX_VALUE,P=t.mode===C.SCENE3D?t.occluder:void 0,M=t.cullingVolume,R=D.planes,O=0;O<5;++O)R[O]=M.planes[O];M=D;for(var L=u.length,N=0;N<L;++N){var F=u[N],B=F.pass;if(B===d.COMPUTE)s.push(F);else if(B===d.OVERLAY)l.push(F);else{var z=F.boundingVolume;if(r(z)){if(!e.isVisible(F,M,P))continue;if(I=z.computePlaneDistances(o,n,I),g=Math.min(g,I.start),v=Math.max(v,I.stop),S&&F.receiveShadows&&I.start<b.MAXIMUM_DISTANCE&&!(B===d.GLOBE&&I.start<-100&&I.stop>100)){var k=I.stop-I.start;B!==d.GLOBE&&I.start<100&&(x=Math.min(x,k)),T=Math.min(T,I.start),E=Math.max(E,I.stop)}}else I.start=i.frustum.near,I.stop=i.frustum.far,y=!(F instanceof c);w(e,this,F,I)}}y?(g=i.frustum.near,v=i.frustum.far):(g=Math.min(Math.max(g,i.frustum.near),i.frustum.far),v=Math.max(Math.min(v,i.frustum.far),g),S&&(T=Math.min(Math.max(T,i.frustum.near),i.frustum.far),E=Math.max(Math.min(E,i.frustum.far),T))),S&&(t.shadowState.nearPlane=T,t.shadowState.farPlane=E,t.shadowState.closestObjectSize=x);var V,U=e.mode===C.SCENE2D,G=t.useLogDepth,H=G?e.logarithmicDepthFarToNearRatio:e.farToNearRatio;U?(v=Math.min(v,i.position.z+e.nearToFarDistance2D),g=Math.min(g,v),V=Math.ceil(Math.max(1,v-g)/e.nearToFarDistance2D)):V=Math.ceil(Math.log(v/g)/Math.log(H)),(this.updateFrustums||g!==Number.MAX_VALUE&&(V!==p||0!==h.length&&(g<h[0].near||v>h[p-1].far&&(G||!a.equalsEpsilon(v,h[p-1].far,a.EPSILON8)))))&&(this.updateFrustums=!1,A(g,v,H,V,G,h,U,e.nearToFarDistance2D),this.createPotentiallyVisibleSet(e));var W=t.frustumSplits;W.length=V+1;for(var q=0;q<V;++q)W[q]=h[q].near,q===V-1&&(W[q+1]=h[q].far)},S.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy();var e,t,i=this.pickDepths,r=this.debugGlobeDepths;for(t=i.length,e=0;e<t;++e)i[e].destroy();for(t=r.length,e=0;e<t;++e)r[e].destroy()},S}),define("Scene/Scene",["../Core/ApproximateTerrainHeights","../Core/BoundingRectangle","../Core/BoundingSphere","../Core/BoxGeometry","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/Check","../Core/Color","../Core/ColorGeometryInstanceAttribute","../Core/createGuid","../Core/CullingVolume","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/DeveloperError","../Core/EllipsoidGeometry","../Core/Event","../Core/GeographicProjection","../Core/GeometryInstance","../Core/GeometryPipeline","../Core/Intersect","../Core/JulianDate","../Core/Math","../Core/Matrix4","../Core/mergeSort","../Core/Occluder","../Core/OrthographicFrustum","../Core/OrthographicOffCenterFrustum","../Core/PerspectiveFrustum","../Core/PerspectiveOffCenterFrustum","../Core/PixelFormat","../Core/Ray","../Core/RequestScheduler","../Core/ShowGeometryInstanceAttribute","../Core/TaskProcessor","../Core/Transforms","../Renderer/ClearCommand","../Renderer/ComputeEngine","../Renderer/Context","../Renderer/ContextLimits","../Renderer/DrawCommand","../Renderer/Framebuffer","../Renderer/Pass","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/Texture","../ThirdParty/when","./BrdfLutGenerator","./Camera","./Cesium3DTileFeature","./Cesium3DTilePass","./Cesium3DTilePassState","./Cesium3DTileset","./CreditDisplay","./DebugCameraPrimitive","./DepthPlane","./DerivedCommand","./DeviceOrientationCameraController","./Fog","./FrameState","./GlobeDepth","./InvertClassification","./JobScheduler","./MapMode2D","./OctahedralProjectedCubeMap","./PerformanceDisplay","./PerInstanceColorAppearance","./PickDepth","./PostProcessStageCollection","./Primitive","./PrimitiveCollection","./SceneMode","./SceneTransforms","./SceneTransitioner","./ScreenSpaceCameraController","./ShadowMap","./StencilConstants","./SunPostProcess","./TweenCollection","./View"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce,de,he,pe,fe,me,_e,ge,ve,ye,Ce,be,Se,Te,Ee,Ae,we,xe,Pe,De){"use strict";function Ie(e,t,i){this.ray=e,this.width=t,this.tilesets=i,this.ready=!1,this.deferred=K.defer(),this.promise=this.deferred.promise}function Me(e){e=h(e,h.EMPTY_OBJECT);var i=e.canvas,r=e.contextOptions,n=e.creditContainer,a=e.creditViewport,s=p(n),u=new V(i,r);s||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",i.parentNode.appendChild(n)),p(a)||(a=i.parentNode),this._id=c(),this._jobScheduler=new he,this._frameState=new ue(u,new re(n," • ",a),this._jobScheduler),this._frameState.scene3DOnly=h(e.scene3DOnly,!1),this._removeCreditContainer=!s,this._creditContainer=n,this._canvas=i,this._context=u,this._computeEngine=new k(u),this._globe=void 0,this._primitives=new Ce,this._groundPrimitives=new Ce,this._mostDetailedRayPicks=[],this._logDepthBuffer=u.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new Pe,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=h(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new oe,this._clearColorCommand=new z({color:new l,stencil:0,owner:this}),this._depthClearCommand=new z({depth:1,owner:this}),this._stencilClearCommand=new z({stencil:0}),this._classificationStencilClearCommand=new z({stencil:0,renderState:Y.fromCache({stencilMask:we.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._pickRenderStateCache={},this._transitioner=new Te(this),this._preUpdate=new v,this._postUpdate=new v,this._renderError=new v,this._preRender=new v,this._postRender=new v,this._pickPositionCache={},this._pickPositionCacheDirty=!1,this._minimumDisableDepthTestDistance=0,this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new v,this.morphComplete=new v,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=l.clone(l.BLACK),this._mode=be.SCENE3D,this._mapProjection=p(e.mapProjection)?e.mapProjection:new y,this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowGlobeDepth=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.fog=new le,this._sunCamera=new J(this),this.shadowMap=new Ae({context:u,lightCamera:this._sunCamera,enabled:h(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=l.clone(l.WHITE),this._actualInvertClassificationColor=l.clone(this._invertClassificationColor),this._invertClassification=new de,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new ve,this._brdfLutGenerator=new Z,this._terrainExaggeration=h(e.terrainExaggeration,1),this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new Ee(this),this._mapMode2D=h(e.mapMode2D,pe.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=h(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=h(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=L.requestCompletedEvent.addEventListener(Ut(this)),this._removeTaskProcessorListenerCallback=F.taskCompletedEvent.addEventListener(Ut(this)),this._removeGlobeCallbacks=[];var d=new t(0,0,u.drawingBufferWidth,u.drawingBufferHeight),f=new J(this);this._logDepthBuffer&&(f.frustum.near=.1,f.frustum.far=1e10);var m=new t(0,0,1,1),_=new J(this);_.frustum=new P({width:.1,aspectRatio:1,near:.1}),this._pickOffscreenView=new De(this,_,m),this.preloadFlightCamera=new J(this),this.preloadFlightCullingVolume=void 0,this.pickOffscreenDefaultWidth=.1,this._defaultView=new De(this,f,d),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!0,this.gamma=2.2,this._sunColor=new o(1.8,1.85,2),this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentMapAtlas=void 0,Fe(this,0,T.now()),Be(this),this.initializeFrame()}function Re(e,t){for(var i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;var r=[];p(t)&&(r.push(t.imageryLayersUpdatedEvent.addEventListener(Ut(e))),r.push(t.terrainProviderChanged.addEventListener(Ut(e)))),e._removeGlobeCallbacks=r}function Oe(e,t,i){var r=e._frameState,n=e._context,o=e._view.oit,a=r.shadowState.lightShadowMaps,s=r.shadowState.lightShadowsEnabled,l=t.derivedCommands;p(t.pickId)&&(l.picking=ae.createPickDerivedCommand(e,t,n,l.picking)),t.pickOnly||(l.depth=ae.createDepthOnlyDerivedCommand(e,t,n,l.depth)),l.originalCommand=t,e._hdr&&(l.hdr=ae.createHdrCommand(t,n,l.hdr),t=l.hdr.command,l=t.derivedCommands),s&&t.receiveShadows&&(l.shadows=Ae.createReceiveDerivedCommand(a,t,i,n,l.shadows)),t.pass===W.TRANSLUCENT&&p(o)&&o.isSupported()&&(s&&t.receiveShadows?(l.oit=p(l.oit)?l.oit:{},l.oit.shadows=o.createDerivedCommands(l.shadows.receiveCommand,n,l.oit.shadows)):l.oit=o.createDerivedCommands(t,n,l.oit))}function Le(e){var t=e.globe;if(e._mode===be.SCENE3D&&p(t)&&t.show){var i=t.ellipsoid;return Kt.radius=i.minimumRadius,Gt=x.fromBoundingSphere(Kt,e.camera.positionWC,Gt)}}function Ne(e){e.render=!1,e.pick=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1}function Fe(e,t,i){var r=e._frameState;r.frameNumber=t,r.time=T.clone(i,r.time)}function Be(e){var t=e.camera,i=e._frameState;i.commandList.length=0,i.shadowMaps.length=0,i.brdfLutGenerator=e._brdfLutGenerator,i.environmentMap=e.skyBox&&e.skyBox._cubeMap,i.mode=e._mode,i.morphTime=e.morphTime,i.mapProjection=e.mapProjection,i.camera=t,i.cullingVolume=t.frustum.computeCullingVolume(t.positionWC,t.directionWC,t.upWC),i.occluder=Le(e),i.terrainExaggeration=e._terrainExaggeration,i.minimumDisableDepthTestDistance=e._minimumDisableDepthTestDistance,i.invertClassification=e.invertClassification,i.useLogDepth=e._logDepthBuffer&&!(e.camera.frustum instanceof P||e.camera.frustum instanceof D),i.sunColor=e._sunColor,p(e._specularEnvironmentMapAtlas)&&e._specularEnvironmentMapAtlas.ready?(i.specularEnvironmentMaps=e._specularEnvironmentMapAtlas.texture,i.specularEnvironmentMapsMaximumLOD=e._specularEnvironmentMapAtlas.maximumMipmapLevel):(i.specularEnvironmentMaps=void 0,i.specularEnvironmentMapsMaximumLOD=void 0),i.sphericalHarmonicCoefficients=e.sphericalHarmonicCoefficients,e._actualInvertClassificationColor=l.clone(e.invertClassificationColor,e._actualInvertClassificationColor),de.isTranslucencySupported(e._context)||(e._actualInvertClassificationColor.alpha=1),i.invertClassificationColor=e._actualInvertClassificationColor,p(e.globe)?i.maximumScreenSpaceError=e.globe.maximumScreenSpaceError:i.maximumScreenSpaceError=2,Ne(i.passes),i.tilesetPassState=void 0}function ze(e){var t={},i=e.vertexAttributes;for(var r in i)i.hasOwnProperty(r)&&(t[r]=i[r].index);return t}function ke(e,t,i){var r=t.context,n=h(i,e.shaderProgram),o=n.fragmentShaderSource.clone(),a=[];o.sources=o.sources.map(function(e){e=X.replaceMain(e,"czm_Debug_main");for(var t,i=/gl_FragData\[(\d+)\]/g;null!==(t=i.exec(e));)-1===a.indexOf(t[1])&&a.push(t[1]);return e});var s,u=a.length,c="void main() \n{ \n czm_Debug_main(); \n";if(t.debugShowCommands){p(e._debugColor)||(e._debugColor=l.fromRandom());var d=e._debugColor;if(u>0)for(s=0;s<u;++s)c+=" gl_FragData["+a[s]+"].rgb *= vec3("+d.red+", "+d.green+", "+d.blue+"); \n";else c+=" gl_FragColor.rgb *= vec3("+d.red+", "+d.green+", "+d.blue+"); \n"}if(t.debugShowFrustums){var f=1&e.debugOverlappingFrustums?"1.0":"0.0",m=2&e.debugOverlappingFrustums?"1.0":"0.0",_=4&e.debugOverlappingFrustums?"1.0":"0.0";if(u>0)for(s=0;s<u;++s)c+=" gl_FragData["+a[s]+"].rgb *= vec3("+f+", "+m+", "+_+"); \n";else c+=" gl_FragColor.rgb *= vec3("+f+", "+m+", "+_+"); \n"}c+="}",o.sources.push(c);var g=ze(n);return j.fromCache({context:r,vertexShaderSource:n.vertexShaderSource,fragmentShaderSource:o,attributeLocations:g})}function Ve(e,t,i){var r=G.shallowClone(e);r.shaderProgram=ke(e,t),r.execute(t.context,i),r.shaderProgram.destroy()}function Ue(e,t,i,n){var a=t._frameState,s=a.context,l=e.boundingVolume;p(t._debugVolume)&&t._debugVolume.destroy();var c,d=o.clone(l.center);if(a.mode!==be.SCENE3D){d=A.multiplyByPoint(Jt,d,d);var h=a.mapProjection,f=h.unproject(d);d=h.ellipsoid.cartographicToCartesian(f)}if(p(l.radius)){var m=l.radius;c=b.toWireframe(g.createGeometry(new g({radii:new o(m,m,m),vertexFormat:_e.FLAT_VERTEX_FORMAT}))),t._debugVolume=new ye({geometryInstances:new C({geometry:c,modelMatrix:A.fromTranslation(d),attributes:{color:new u(1,0,0,1)}}),appearance:new _e({flat:!0,translucent:!1}),asynchronous:!1})}else{var _=l.halfAxes;c=b.toWireframe(r.createGeometry(r.fromDimensions({dimensions:new o(2,2,2),vertexFormat:_e.FLAT_VERTEX_FORMAT}))),t._debugVolume=new ye({geometryInstances:new C({geometry:c,modelMatrix:A.fromRotationTranslation(_,d,new A),attributes:{color:new u(1,0,0,1)}}),appearance:new _e({flat:!0,translucent:!1}),asynchronous:!1})}var v=a.commandList,y=a.commandList=[];if(t._debugVolume.update(a),e=y[0],a.useLogDepth){e=ae.createLogDepthCommand(e,s).command}var S;p(n)&&(S=i.framebuffer,i.framebuffer=n),e.execute(s,i),p(S)&&(i.framebuffer=S),a.commandList=v}function Ge(e,t,i,r,n){var o=t._frameState;if(!p(t.debugCommandFilter)||t.debugCommandFilter(e)){if(e instanceof z)return void e.execute(i,r);e.debugShowBoundingVolume&&p(e.boundingVolume)&&Ue(e,t,r,n),o.useLogDepth&&p(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);var a=o.passes;if(!a.pick&&t._hdr&&p(e.derivedCommands)&&p(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),a.pick||a.depth){if(a.pick&&!a.depth&&p(e.derivedCommands.picking))return e=e.derivedCommands.picking.pickCommand,void e.execute(i,r);if(p(e.derivedCommands.depth))return e=e.derivedCommands.depth.depthOnlyCommand,void e.execute(i,r)}if(t.debugShowCommands||t.debugShowFrustums)return void Ve(e,t,r);o.shadowState.lightShadowsEnabled&&e.receiveShadows&&p(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(i,r):e.execute(i,r)}}function He(e,t,i,r){var n=t._frameState,o=e.derivedCommands;p(o)&&(n.useLogDepth&&p(o.logDepth)&&(e=o.logDepth.command),o=e.derivedCommands,p(o.picking)?(e=o.picking.pickCommand,e.execute(i,r)):p(o.depth)&&(e=o.depth.depthOnlyCommand,e.execute(i,r)))}function We(e,t,i){return t.boundingVolume.distanceSquaredTo(i)-e.boundingVolume.distanceSquaredTo(i)}function qe(e,t,i){return e.boundingVolume.distanceSquaredTo(i)-t.boundingVolume.distanceSquaredTo(i)+E.EPSILON12}function Ye(e,t,i,r,n){var o=e.context;w(r,We,e.camera.positionWC),p(n)&&t(n.unclassifiedCommand,e,o,i);for(var a=r.length,s=0;s<a;++s)t(r[s],e,o,i)}function je(e,t,i,r,n){var o=e.context;w(r,qe,e.camera.positionWC),p(n)&&t(n.unclassifiedCommand,e,o,i);for(var a=r.length,s=0;s<a;++s)t(r[s],e,o,i)}function Xe(e,t){var i=e._view.debugGlobeDepths,r=i[t];return!p(r)&&e.context.depthTexture&&(r=new ce,i[t]=r),r}function Qe(e,t){var i=e._view.pickDepths,r=i[t];return p(r)||(r=new ge,i[t]=r),r}function Ke(e,t){var i=e.camera,r=e.context,n=r.uniformState;n.updateCamera(i);var o;o=p(i.frustum.fov)?i.frustum.clone($t):p(i.frustum.infiniteProjectionMatrix)?i.frustum.clone(ei):p(i.frustum.width)?i.frustum.clone(ti):i.frustum.clone(ii),o.near=i.frustum.near,o.far=i.frustum.far,n.updateFrustum(o),n.updatePass(W.ENVIRONMENT);var a=e._frameState.passes,s=a.pick,l=e._environmentState,u=e._view,c=l.renderTranslucentDepthForPick,d=l.useWebVR;if(!s){var h=l.skyBoxCommand;if(p(h)&&Ge(h,e,r,t),l.isSkyAtmosphereVisible&&Ge(l.skyAtmosphereCommand,e,r,t),l.isSunVisible&&(l.sunDrawCommand.execute(r,t),e.sunBloom&&!d)){var f;f=l.useGlobeDepthFramebuffer?u.globeDepth.framebuffer:l.usePostProcess?u.sceneFramebuffer.getFramebuffer():l.originalFramebuffer,e._sunPostProcess.execute(r),e._sunPostProcess.copy(r,f),t.framebuffer=f}l.isMoonVisible&&l.moonCommand.execute(r,t)}var m;l.useOIT?(p(e._executeOITFunction)||(e._executeOITFunction=function(e,t,i,r,n){u.oit.executeCommands(e,t,i,r,n)}),m=e._executeOITFunction):m=a.render?Ye:je;for(var _,g=l.clearGlobeDepth,v=l.useDepthPlane,y=e._depthClearCommand,C=e._stencilClearCommand,b=e._classificationStencilClearCommand,S=e._depthPlane,T=l.usePostProcessSelected,E=i.position.z,A=u.frustumCommandsList,w=A.length,x=0;x<w;++x){var P=w-x-1,D=A[P];e.mode===be.SCENE2D?(i.position.z=E-D.near+1,o.far=Math.max(1,D.far-D.near),o.near=1,n.update(e.frameState),n.updateFrustum(o)):(o.near=0!==P?D.near*e.opaqueFrustumNearOffset:D.near,o.far=D.far,n.updateFrustum(o));var I,M=e.debugShowGlobeDepth?Xe(e,P):u.globeDepth;e.debugShowGlobeDepth&&p(M)&&l.useGlobeDepthFramebuffer&&(M.update(r,t,u.viewport),M.clear(r,t,e._clearColorCommand.color),I=t.framebuffer,t.framebuffer=M.framebuffer),y.execute(r,t),r.stencilBuffer&&C.execute(r,t),n.updatePass(W.GLOBE);var R=D.commands[W.GLOBE],O=D.indices[W.GLOBE];for(_=0;_<O;++_)Ge(R[_],e,r,t);for(p(M)&&l.useGlobeDepthFramebuffer&&M.executeCopyDepth(r,t),e.debugShowGlobeDepth&&p(M)&&l.useGlobeDepthFramebuffer&&(t.framebuffer=I),n.updatePass(W.TERRAIN_CLASSIFICATION),R=D.commands[W.TERRAIN_CLASSIFICATION],O=D.indices[W.TERRAIN_CLASSIFICATION],_=0;_<O;++_)Ge(R[_],e,r,t);if(g&&(y.execute(r,t),v&&S.execute(r,t)),!l.useInvertClassification||s){for(n.updatePass(W.CESIUM_3D_TILE),R=D.commands[W.CESIUM_3D_TILE],O=D.indices[W.CESIUM_3D_TILE],_=0;_<O;++_)Ge(R[_],e,r,t);if(O>0)for(p(M)&&l.useGlobeDepthFramebuffer&&M.executeUpdateDepth(r,t,g),n.updatePass(W.CESIUM_3D_TILE_CLASSIFICATION),R=D.commands[W.CESIUM_3D_TILE_CLASSIFICATION],O=D.indices[W.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<O;++_)Ge(R[_],e,r,t)}else{e._invertClassification.clear(r,t);var L=t.framebuffer;for(t.framebuffer=e._invertClassification._fbo,n.updatePass(W.CESIUM_3D_TILE),R=D.commands[W.CESIUM_3D_TILE],O=D.indices[W.CESIUM_3D_TILE],_=0;_<O;++_)Ge(R[_],e,r,t);for(p(M)&&l.useGlobeDepthFramebuffer&&M.executeUpdateDepth(r,t,g),n.updatePass(W.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),R=D.commands[W.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],O=D.indices[W.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW],_=0;_<O;++_)Ge(R[_],e,r,t);for(t.framebuffer=L,e._invertClassification.executeClassified(r,t),1===e.frameState.invertClassificationColor.alpha&&e._invertClassification.executeUnclassified(r,t),O>0&&r.stencilBuffer&&b.execute(r,t),n.updatePass(W.CESIUM_3D_TILE_CLASSIFICATION),R=D.commands[W.CESIUM_3D_TILE_CLASSIFICATION],O=D.indices[W.CESIUM_3D_TILE_CLASSIFICATION],_=0;_<O;++_)Ge(R[_],e,r,t)}for(O>0&&r.stencilBuffer&&C.execute(r,t),n.updatePass(W.OPAQUE),R=D.commands[W.OPAQUE],O=D.indices[W.OPAQUE],_=0;_<O;++_)Ge(R[_],e,r,t);0!==P&&e.mode!==be.SCENE2D&&(o.near=D.near,n.updateFrustum(o));var N;if(!s&&l.useInvertClassification&&e.frameState.invertClassificationColor.alpha<1&&(N=e._invertClassification),n.updatePass(W.TRANSLUCENT),R=D.commands[W.TRANSLUCENT],R.length=D.indices[W.TRANSLUCENT],m(e,Ge,t,R,N),r.depthTexture&&e.useDepthPicking&&(l.useGlobeDepthFramebuffer||c)){var F=c?t.framebuffer.depthStencilTexture:M.framebuffer.depthStencilTexture,B=Qe(e,P);B.update(r,F),B.executeCopyDepth(r,t)}if(!s&&T){var z=t.framebuffer;for(t.framebuffer=u.sceneFramebuffer.getIdFramebuffer(),o.near=0!==P?D.near*e.opaqueFrustumNearOffset:D.near,o.far=D.far,n.updateFrustum(o),n.updatePass(W.GLOBE),R=D.commands[W.GLOBE],O=D.indices[W.GLOBE],_=0;_<O;++_)He(R[_],e,r,t);for(g&&(y.framebuffer=t.framebuffer,y.execute(r,t),y.framebuffer=void 0),g&&v&&S.execute(r,t),n.updatePass(W.CESIUM_3D_TILE),R=D.commands[W.CESIUM_3D_TILE],O=D.indices[W.CESIUM_3D_TILE],_=0;_<O;++_)He(R[_],e,r,t);for(n.updatePass(W.OPAQUE),R=D.commands[W.OPAQUE],O=D.indices[W.OPAQUE],_=0;_<O;++_)He(R[_],e,r,t);for(n.updatePass(W.TRANSLUCENT),R=D.commands[W.TRANSLUCENT],O=D.indices[W.TRANSLUCENT],_=0;_<O;++_)He(R[_],e,r,t);t.framebuffer=z}}}function Ze(e){e.context.uniformState.updatePass(W.COMPUTE);var t=e._environmentState.sunComputeCommand;p(t)&&t.execute(e._computeEngine);for(var i=e._computeCommandList,r=i.length,n=0;n<r;++n)i[n].execute(e._computeEngine)}function Je(e,t){e.context.uniformState.updatePass(W.OVERLAY);for(var i=e.context,r=e._overlayCommandList,n=r.length,o=0;o<n;++o)r[o].execute(i,t)}function $e(e,t,i){for(var r=i.shadowMapCullingVolume,n=i.isPointLight,o=i.passes,a=o.length,s=t.length,l=0;l<s;++l){var u=t[l];if(e.updateDerivedCommands(u),u.castShadows&&(u.pass===W.GLOBE||u.pass===W.CESIUM_3D_TILE||u.pass===W.OPAQUE||u.pass===W.TRANSLUCENT)&&e.isVisible(u,r))if(n)for(var c=0;c<a;++c)o[c].commandList.push(u);else if(1===a)o[0].commandList.push(u);else for(var d=!1,h=a-1;h>=0;--h){var p=o[h].cullingVolume;if(e.isVisible(u,p))o[h].commandList.push(u),d=!0;else if(d)break}}}function et(e){var t=e.frameState,i=t.shadowState.shadowMaps,r=i.length;if(t.shadowState.shadowsEnabled)for(var n=e.context,o=n.uniformState,a=0;a<r;++a){var s=i[a];if(!s.outOfView){var l,u=s.passes,c=u.length;for(l=0;l<c;++l)u[l].commandList.length=0;var d=e.frameState.commandList;for($e(e,d,s),l=0;l<c;++l){var h=s.passes[l];o.updateCamera(h.camera),s.updatePass(n,l);for(var p=h.commandList.length,f=0;f<p;++f){var m=h.commandList[f];o.updatePass(m.pass),Ge(m.derivedCommands.shadows.castCommands[a],e,n,h.passState)}}}}}function tt(e,t,i){var r=e._frameState,n=r.mode;e._environmentState.useWebVR?it(e,t,i):n!==be.SCENE2D||e._mapMode2D===pe.ROTATE?nt(!0,e,t,i):(ut(e,t,i),rt(e,t))}function it(e,t,i){var r=e._view,n=r.camera,a=e._environmentState,s=a.renderTranslucentDepthForPick;ut(e,t,i),s||lt(e),r.createPotentiallyVisibleSet(e),s||(Ze(e),et(e));var l=t.viewport;l.x=0,l.y=0,l.width=.5*l.width;var u=J.clone(n,e._cameraVR);u.frustum=n.frustum;var c=n.frustum.near,d=c*h(e.focalLength,5),p=h(e.eyeSeparation,d/30),f=o.multiplyByScalar(u.right,.5*p,ri);n.frustum.aspectRatio=l.width/l.height;var m=.5*p*c/d;o.add(u.position,f,n.position),n.frustum.xOffset=m,Ke(e,t),l.x=l.width,o.subtract(u.position,f,n.position),n.frustum.xOffset=-m,Ke(e,t),J.clone(u,n)}function rt(e,i){var r=e.context,n=e.frameState,a=e.camera,s=i.viewport,l=t.clone(s,di);i.viewport=l;var u=ni,c=oi;e.mapProjection.project(u,c);var d=o.clone(a.position,ai),h=A.clone(a.transform,li),p=a.frustum.clone();a._setTransform(A.IDENTITY);var f=A.computeViewportTransformation(l,0,1,si),m=a.frustum.projectionMatrix,_=a.positionWC.y,g=o.fromElements(E.sign(_)*c.x-_,0,-a.positionWC.x,ui),v=B.pointToGLWindowCoordinates(m,f,g,ci);v.x=Math.floor(v.x);var y=l.x,C=l.width;if(0===_||v.x<=y||v.x>=y+C)nt(!0,e,i);else if(Math.abs(y+.5*C-v.x)<1)l.width=v.x-l.x,a.position.x*=E.sign(a.position.x),a.frustum.right=0,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!0,e,i),l.x=v.x,a.position.x=-a.position.x,a.frustum.right=-a.frustum.left,a.frustum.left=0,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!1,e,i);else if(v.x>y+.5*C){l.width=v.x-y;var b=a.frustum.right -;a.frustum.right=c.x-_,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!0,e,i),l.x=v.x,l.width=y+C-v.x,a.position.x=-a.position.x,a.frustum.left=-a.frustum.right,a.frustum.right=b-2*a.frustum.right,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!1,e,i)}else{l.x=v.x,l.width=y+C-v.x;var S=a.frustum.left;a.frustum.left=-c.x-_,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!0,e,i),l.x=y,l.width=v.x-y,a.position.x=-a.position.x,a.frustum.right=-a.frustum.left,a.frustum.left=S-2*a.frustum.left,n.cullingVolume=a.frustum.computeCullingVolume(a.positionWC,a.directionWC,a.upWC),r.uniformState.update(n),nt(!1,e,i)}a._setTransform(h),o.clone(d,a.position),a.frustum=p.clone(),i.viewport=s}function nt(e,t,i,r){var n=t._environmentState,o=t._view,a=n.renderTranslucentDepthForPick;e||a||(t.frameState.commandList.length=0),a||lt(t),o.createPotentiallyVisibleSet(t),e&&(p(r)&&ut(t,i,r),a||(Ze(t),et(t))),Ke(t,i)}function ot(e){var t=e._frameState,i=e._view,r=e._environmentState,n=t.passes.render,o=t.passes.offscreen,a=e.skyAtmosphere,s=e.globe;if(!n||e._mode!==be.SCENE2D&&i.camera.frustum instanceof P)r.skyAtmosphereCommand=void 0,r.skyBoxCommand=void 0,r.sunDrawCommand=void 0,r.sunComputeCommand=void 0,r.moonCommand=void 0;else{p(a)&&p(s)&&(a.setDynamicAtmosphereColor(s.enableLighting),r.isReadyForAtmosphere=r.isReadyForAtmosphere||s._surface._tilesToRender.length>0),r.skyAtmosphereCommand=p(a)?a.update(t):void 0,r.skyBoxCommand=p(e.skyBox)?e.skyBox.update(t,e._hdr):void 0;var l=p(e.sun)?e.sun.update(t,i.passState,e._hdr):void 0;r.sunDrawCommand=p(l)?l.drawCommand:void 0,r.sunComputeCommand=p(l)?l.computeCommand:void 0,r.moonCommand=p(e.moon)?e.moon.update(t):void 0}var u=r.clearGlobeDepth=p(s)&&(!s.depthTestAgainstTerrain||e.mode===be.SCENE2D);(r.useDepthPlane=u&&e.mode===be.SCENE3D)&&e._depthPlane.update(t),r.renderTranslucentDepthForPick=!1,r.useWebVR=e._useWebVR&&e.mode!==be.SCENE2D&&!o;for(var c=t.mode===be.SCENE3D?t.occluder:void 0,d=t.cullingVolume,h=Zt.planes,f=0;f<5;++f)h[f]=d.planes[f];d=Zt,r.isSkyAtmosphereVisible=p(r.skyAtmosphereCommand)&&r.isReadyForAtmosphere,r.isSunVisible=e.isVisible(r.sunDrawCommand,d,c),r.isMoonVisible=e.isVisible(r.moonCommand,d,c);var m=e.specularEnvironmentMaps,_=e._specularEnvironmentMapAtlas;!p(m)||p(_)&&_.url===m?!p(m)&&p(_)&&(_.destroy(),e._specularEnvironmentMapAtlas=void 0):(_=_&&_.destroy(),e._specularEnvironmentMapAtlas=new fe(m)),p(e._specularEnvironmentMapAtlas)&&e._specularEnvironmentMapAtlas.update(t)}function at(e){var t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new ne({camera:e.camera,updateOnChange:!1}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),p(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function st(e){var t=e._frameState,i=t.shadowMaps,r=i.length,n=r>0&&!t.passes.pick&&e.mode===be.SCENE3D;if(n!==t.shadowState.shadowsEnabled&&(++t.shadowState.lastDirtyTime,t.shadowState.shadowsEnabled=n),t.shadowState.lightShadowsEnabled=!1,n){for(var o=0;o<r;++o)if(i[o]!==t.shadowState.shadowMaps[o]){++t.shadowState.lastDirtyTime;break}t.shadowState.shadowMaps.length=0,t.shadowState.lightShadowMaps.length=0;for(var a=0;a<r;++a){var s=i[a];s.update(t),t.shadowState.shadowMaps.push(s),s.fromLightSource&&(t.shadowState.lightShadowMaps.push(s),t.shadowState.lightShadowsEnabled=!0),s.dirty&&(++t.shadowState.lastDirtyTime,s.dirty=!1)}}}function lt(e){var t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),at(e),st(e),e._globe&&e._globe.render(t)}function ut(e,t,i){var r=e._context,n=e._frameState,o=e._environmentState,a=e._view,s=e._frameState.passes,u=s.pick,c=o.useWebVR;o.originalFramebuffer=t.framebuffer,p(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!c?e._sunPostProcess=new xe:p(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!p(e.sun)&&p(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);var d=e._clearColorCommand;l.clone(i,d.color),d.execute(r,t);var h=o.useGlobeDepthFramebuffer=p(a.globeDepth);h&&(a.globeDepth.update(r,t,a.viewport,e._hdr),a.globeDepth.clear(r,t,i));var f=a.oit,m=o.useOIT=!u&&p(f)&&f.isSupported();m&&(f.update(r,t,a.globeDepth.framebuffer,e._hdr),f.clear(r,t,i),o.useOIT=f.isSupported());var _=e.postProcessStages,g=o.usePostProcess=!u&&(e._hdr||_.length>0||_.ambientOcclusion.enabled||_.fxaa.enabled||_.bloom.enabled);if(o.usePostProcessSelected=!1,g&&(a.sceneFramebuffer.update(r,a.viewport,e._hdr),a.sceneFramebuffer.clear(r,t,i),_.update(r,n.useLogDepth,e._hdr),_.clear(r),g=o.usePostProcess=_.ready,o.usePostProcessSelected=g&&_.hasSelected),o.isSunVisible&&e.sunBloom&&!c?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(r,t,i)):h?t.framebuffer=a.globeDepth.framebuffer:g&&(t.framebuffer=a.sceneFramebuffer.getFramebuffer()),p(t.framebuffer)&&d.execute(r,t),o.useInvertClassification=!u&&p(t.framebuffer)&&e.invertClassification){var v;if(1===e.frameState.invertClassificationColor.alpha&&o.useGlobeDepthFramebuffer&&(v=a.globeDepth.framebuffer),p(v)||r.depthTexture){if(e._invertClassification.previousFramebuffer=v,e._invertClassification.update(r),e._invertClassification.clear(r,t),e.frameState.invertClassificationColor.alpha<1&&m){var y=e._invertClassification.unclassifiedCommand,C=y.derivedCommands;C.oit=f.createDerivedCommands(y,r,C.oit)}}else o.useInvertClassification=!1}}function ct(e,t){var i=e._context,r=e._frameState,n=e._environmentState,o=e._view,a=n.useOIT,s=n.useGlobeDepthFramebuffer,l=n.usePostProcess,u=n.originalFramebuffer,c=s?o.globeDepth.framebuffer:void 0,d=o.sceneFramebuffer.getFramebuffer(),p=o.sceneFramebuffer.getIdFramebuffer();if(a&&(t.framebuffer=l?d:u,o.oit.execute(i,t)),l){var f=d;s&&!a&&(f=c);var m=e.postProcessStages,_=f.getColorTexture(0),g=p.getColorTexture(0),v=h(c,d).depthStencilTexture;m.execute(i,_,v,g),m.copy(i,u)}a||l||!s||(t.framebuffer=u,o.globeDepth.executeCopyColor(i,t));var y=r.useLogDepth;if(e.debugShowGlobeDepth&&s){Xe(e,e.debugShowDepthFrustum-1).executeDebugGlobeDepth(i,t,y)}if(e.debugShowPickDepth&&s){Qe(e,e.debugShowDepthFrustum-1).executeDebugPickDepth(i,t,y)}}function dt(e){for(var t=e._frameState.afterRender,i=0,r=t.length;i<r;++i)t[i](),e.requestRender();t.length=0}function ht(e,t){if(e.debugShowFramesPerSecond){if(!p(e._performanceDisplay)){var i=document.createElement("div");i.className="cesium-performanceDisplay-defaultContainer";e._canvas.parentNode.appendChild(i);var r=new me({container:i});e._performanceDisplay=r,e._performanceContainer=i}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else p(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function pt(e){e._jobScheduler.resetBudgets();var t=e._frameState;e.primitives.prePassesUpdate(t),p(e.globe)&&e.globe.update(t),e._pickPositionCacheDirty=!0,t.creditDisplay.update()}function ft(e){var t=e._frameState;e.primitives.postPassesUpdate(t),L.update()}function mt(e){var i=e._frameState,r=e.context,n=r.uniformState,a=e._defaultView;e._view=a,Be(e),i.passes.render=!0,i.passes.postProcess=e.postProcessStages.hasSelected,i.tilesetPassState=qt;var s=h(e.backgroundColor,l.BLACK);e._hdr&&(s=l.clone(s,hi),s.red=Math.pow(s.red,e.gamma),s.green=Math.pow(s.green,e.gamma),s.blue=Math.pow(s.blue,e.gamma)),i.backgroundColor=s,i.creditDisplay.beginFrame(),e.fog.update(i),n.update(i);var u=e.shadowMap;p(u)&&u.enabled&&(o.negate(n.sunDirectionWC,e._sunCamera.direction),i.shadowMaps.push(u)),e._computeCommandList.length=0,e._overlayCommandList.length=0;var c=a.viewport;c.x=0,c.y=0,c.width=r.drawingBufferWidth,c.height=r.drawingBufferHeight;var d=a.passState;d.framebuffer=void 0,d.blendingEnabled=void 0,d.scissorTest=void 0,d.viewport=t.clone(c,d.viewport),p(e.globe)&&e.globe.beginFrame(i),ot(e),tt(e,d,s),ct(e,d),d.framebuffer=void 0,Je(e,d),p(e.globe)&&(e.globe.endFrame(i),e.globe.tilesLoaded||(e._renderRequested=!0)),i.creditDisplay.endFrame(),r.endFrame()}function _t(e,t){try{t(e)}catch(t){if(e._renderError.raiseEvent(e,t),e.rethrowRenderErrors)throw t}}function gt(e,t,i,r,n){var a=e.camera,s=a.frustum;p(s._offCenterFrustum)&&(s=s._offCenterFrustum);var l=2*(t.x-n.x)/n.width-1;l*=.5*(s.right-s.left);var u=2*(n.height-t.y-n.y)/n.height-1;u*=.5*(s.top-s.bottom);var c=A.clone(a.transform,gi);a._setTransform(A.IDENTITY);var d=o.clone(a.position,fi);o.multiplyByScalar(a.right,l,mi),o.add(mi,d,d),o.multiplyByScalar(a.up,u,mi),o.add(mi,d,d),a._setTransform(c),e.mode===be.SCENE2D&&o.fromElements(d.z,d.x,d.y,d);var h=s.getPixelDimensions(n.width,n.height,1,_i),f=pi;return f.right=.5*h.x,f.left=-f.right,f.top=.5*h.y,f.bottom=-f.top,f.near=s.near,f.far=s.far,f.computeCullingVolume(d,a.directionWC,a.upWC)}function vt(e,t,i,r,n){var o=e.camera,a=o.frustum,s=a.near,l=Math.tan(.5*a.fovy),u=a.aspectRatio*l,c=2*(t.x-n.x)/n.width-1,d=2*(n.height-t.y-n.y)/n.height-1,h=c*s*u,p=d*s*l,f=a.getPixelDimensions(n.width,n.height,1,_i),m=f.x*i*.5,_=f.y*r*.5,g=vi;return g.top=p+_,g.bottom=p-_,g.right=h+m,g.left=h-m,g.near=s,g.far=a.far,g.computeCullingVolume(o.positionWC,o.directionWC,o.upWC)}function yt(e,t,i,r,n){var o=e.camera.frustum;return o instanceof P||o instanceof D?gt(e,t,i,r,n):vt(e,t,i,r,n)}function Ct(e,i){var r=e._context,n=e._frameState,o=e._environmentState,a=e._defaultView;e._view=a;var s=a.viewport;s.x=0,s.y=0,s.width=r.drawingBufferWidth,s.height=r.drawingBufferHeight;var l=a.passState;l.viewport=t.clone(s,l.viewport),Ne(n.passes),n.passes.pick=!0,n.passes.depth=!0,n.cullingVolume=yt(e,i,1,1,s),n.tilesetPassState=Yt,ot(e),o.renderTranslucentDepthForPick=!0,l=a.pickDepthFramebuffer.update(r,i,s),tt(e,l,Si),ct(e,l),r.endFrame()}function bt(e,t){var i,r,n=[],o=[],a=[],s=[];p(e)||(e=Number.MAX_VALUE);for(var l=t();p(l);){var u=l.object,c=l.position,d=l.exclude;if(p(c)&&!p(u)){n.push(l);break}if(!p(u)||!p(u.primitive))break;if(!d&&(n.push(l),0>=--e))break;var h=u.primitive,f=!1;"function"==typeof h.getGeometryInstanceAttributes&&p(u.id)&&(r=h.getGeometryInstanceAttributes(u.id),p(r)&&p(r.show)&&(f=!0,r.show=N.toValue(!1,r.show),a.push(r))),u instanceof $&&(f=!0,u.show=!1,s.push(u)),f||(h.show=!1,o.push(h)),l=t()}for(i=0;i<o.length;++i)o[i].show=!0;for(i=0;i<a.length;++i)r=a[i],r.show=N.toValue(!0,r.show);for(i=0;i<s.length;++i)s[i].show=!0;return n}function St(e){var t=e._frameState;jt.camera=t.camera,jt.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,jt)}function Tt(e){var t=e._frameState;t.camera.hasCurrentFlight()&&(Xt.camera=e.preloadFlightCamera,Xt.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,Xt))}function Et(e){e.primitives.updateForPass(e._frameState,Qt)}function At(e,t,i,r){var n=t.direction,a=o.mostOrthogonalAxis(n,Ai),s=o.cross(n,a,Ai),l=o.cross(n,s,wi);return r.position=t.origin,r.direction=n,r.up=l,r.right=s,r.frustum.width=h(i,e.pickOffscreenDefaultWidth),r.frustum.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function wt(e,t){var i=e._frameState,r=t.ray,n=t.width,o=t.tilesets,a=e._pickOffscreenView.camera,s=At(e,r,n,a),l=Ht;l.camera=a,l.cullingVolume=s;for(var u=!0,c=o.length,d=0;d<c;++d){var h=o[d];h.show&&e.primitives.contains(h)&&(h.updateForPass(i,l),u=u&&l.ready)}return u&&t.deferred.resolve(),u}function xt(e){for(var t=e._mostDetailedRayPicks,i=0;i<t.length;++i)wt(e,t[i])&&t.splice(i--,1)}function Pt(e,t,i){for(var r=e.length,n=0;n<r;++n){var o=e.get(n);o.show&&(o instanceof ie?p(t)&&-1!==t.indexOf(o)||i.push(o):o instanceof Ce&&Pt(o,t,i))}}function Dt(e,t,i,r,n){var o=[];if(Pt(e.primitives,i,o),0===o.length)return K.resolve(n());var a=new Ie(t,r,o);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return n()})}function It(e,t){return!(!p(e)||!p(t)||0===t.length)&&(t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1)}function Mt(e,i,r,n,o,a){var s=e._context,l=s.uniformState,u=e._frameState,c=e._pickOffscreenView;e._view=c,At(e,i,n,c.camera),bi=t.clone(c.viewport,bi);var d=c.pickFramebuffer.begin(bi,c.viewport);e._jobScheduler.disableThisFrame(),Be(e),u.invertClassification=!1,u.passes.pick=!0,u.passes.offscreen=!0,u.tilesetPassState=a?Wt:Yt,l.update(u),ot(e,c),tt(e,d,Si),ct(e,d);var h,f=c.pickFramebuffer.end(s);if(e._context.depthTexture)for(var m=c.frustumCommandsList.length,_=0;_<m;++_){var g=Qe(e,_),v=g.getDepth(s,0,0);if(v>0&&v<1){var y=c.frustumCommandsList[_],C=y.near*(0!==_?e.opaqueFrustumNearOffset:1),b=y.far,S=C+v*(b-C);h=O.getPoint(i,S);break}}if(e._view=e._defaultView,s.endFrame(),p(f)||p(h))return{object:f,position:h,exclude:!p(h)&&o||It(f,r)}}function Rt(e,t,i,r,n,o,a){return bt(i,function(){return Mt(e,t,r,n,o,a)})}function Ot(e,t,i,r,n,o){var a=Rt(e,t,1,i,r,n,o);if(a.length>0)return a[0]}function Lt(e,t,i,r,n,o,a){return Rt(e,t,i,r,n,o,a)}function Nt(e,t){var i=K.defer();return t.then(function(t){var r=e.postRender.addEventListener(function(){i.resolve(t),r()})}),i.promise}function Ft(t,i){var r=t.globe,n=p(r)?r.ellipsoid:t.mapProjection.ellipsoid,s=e._defaultMaxTerrainHeight,l=n.geodeticSurfaceNormalCartographic(i,Pi),u=a.toCartesian(i,n,xi),c=Di;c.origin=u,c.direction=l;var d=new O;return O.getPoint(c,s,d.origin),o.negate(l,d.direction),d}function Bt(e,t){var i=e.globe,r=p(i)?i.ellipsoid:e.mapProjection.ellipsoid;return Ft(e,a.fromCartesian(t,r,Ii))}function zt(e,t){var i=e.globe,r=p(i)?i.ellipsoid:e.mapProjection.ellipsoid;return a.fromCartesian(t,r,Ii).height}function kt(e,t,i,r){var n=Ft(e,t);return Dt(e,n,i,r,function(){var t=Ot(e,n,i,r,!0,!0);if(p(t))return zt(e,t.position)})}function Vt(e,t,i,r,n){var a=Bt(e,t);return Dt(e,a,i,r,function(){var t=Ot(e,a,i,r,!0,!0);if(p(t))return o.clone(t.position,n)})}var Ut=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};f(Me.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return U.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return U.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Re(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},frameState:{get:function(){return this._frameState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(p(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(p(this.globe))return this.globe.terrainProvider},set:function(e){p(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(p(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===be.SCENE2D?this.morphTo2D(0):e===be.SCENE3D?this.morphTo3D(0):e===be.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},terrainExaggeration:{get:function(){return this._terrainExaggeration}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new J(this),p(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new se(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},imagerySplitPosition:{get:function(){return this._frameState.imagerySplitPosition},set:function(e){this._frameState.imagerySplitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0,this._defaultView.updateFrustums=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){var t=this._context,i=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=i!==this._hdr,this._hdr=i}},highDynamicRangeSupported:{get:function(){var e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},sunColor:{get:function(){return this._sunColor},set:function(e){this._sunColor=e}},opaqueFrustumNearOffset:{get:function(){return this._frameState.useLogDepth?.9:.9999}}}),Me.prototype.getCompressedTextureFormatSupported=function(e){var t=this.context;return("WEBGL_compressed_texture_s3tc"===e||"s3tc"===e)&&t.s3tc||("WEBGL_compressed_texture_pvrtc"===e||"pvrtc"===e)&&t.pvrtc||("WEBGL_compressed_texture_etc1"===e||"etc1"===e)&&t.etc1},Me.prototype.updateDerivedCommands=function(e){if(p(e.derivedCommands)){var t=this._frameState,i=this._context,r=!1,n=t.shadowState.lastDirtyTime;e.lastDirtyTime!==n&&(e.lastDirtyTime=n,e.dirty=!0,r=!0);var o=t.useLogDepth,a=this._hdr,s=e.derivedCommands,l=p(s.logDepth),u=p(s.hdr),c=p(s.originalCommand),d=o&&!l,h=a&&!u,f=!(o&&a||c);if(e.dirty=e.dirty||d||h||f,e.dirty){e.dirty=!1;var m=t.shadowState.shadowMaps;t.shadowState.shadowsEnabled&&e.castShadows&&(s.shadows=Ae.createCastDerivedCommand(m,e,r,i,s.shadows)),(l||d)&&(s.logDepth=ae.createLogDepthCommand(e,i,s.logDepth),Oe(this,s.logDepth.command,r)),(c||f)&&Oe(this,e,r)}}};var Gt,Ht=new te({pass:ee.MOST_DETAILED_PRELOAD}),Wt=new te({pass:ee.MOST_DETAILED_PICK}),qt=new te({pass:ee.RENDER}),Yt=new te({pass:ee.PICK}),jt=new te({pass:ee.PRELOAD}),Xt=new te({pass:ee.PRELOAD_FLIGHT}),Qt=new te({pass:ee.REQUEST_RENDER_MODE_DEFER_CHECK}),Kt=new i,Zt=new d;Me.prototype.isVisible=function(e,t,i){return p(e)&&(!p(e.boundingVolume)||!e.cull||t.computeVisibility(e.boundingVolume)!==S.OUTSIDE&&(!p(i)||!e.occlude||!e.boundingVolume.isOccluded(i)))};var Jt=new A(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Jt=A.inverseTransformation(Jt,Jt);var $t=new I,ei=new M,ti=new P,ii=new D,ri=new o,ni=new a(Math.PI,E.PI_OVER_TWO),oi=new o,ai=new o,si=new A,li=new A,ui=new o,ci=new o,di=new t;Me.prototype.initializeFrame=function(){120==this._shaderFrameCount++&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._screenSpaceCameraController.update(),p(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};var hi=new l;Me.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);var t=this._frameState;t.newFrame=!1,p(e)||(e=T.now());var i=this._view.checkForCameraUpdates(this),r=!this.requestRenderMode||this._renderRequested||i||this._logDepthBufferDirty||this._hdrDirty||this.mode===be.MORPHING;if(!r&&p(this.maximumRenderTimeChange)&&p(this._lastRenderTime)){var n=Math.abs(T.secondsDifference(this._lastRenderTime,e));r=r||n>this.maximumRenderTimeChange}if(r){this._lastRenderTime=T.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;Fe(this,E.incrementWrap(t.frameNumber,15e6,1),e),t.newFrame=!0}_t(this,pt),_t(this,xt),_t(this,St),_t(this,Tt),r||_t(this,Et),this._postUpdate.raiseEvent(this,e),r&&(this._preRender.raiseEvent(this,e),_t(this,mt)),ht(this,r),_t(this,ft),dt(this),r&&this._postRender.raiseEvent(this,e)},Me.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)},Me.prototype.requestRender=function(){this._renderRequested=!0},Me.prototype.clampLineWidth=function(e){return Math.max(U.minimumAliasedLineWidth,Math.min(e,U.maximumAliasedLineWidth))};var pi=new D,fi=new o,mi=new o,_i=new n,gi=new A,vi=new M,yi=3,Ci=3,bi=new t(0,0,yi,Ci),Si=new l(0,0,0,0),Ti=new n;Me.prototype.pick=function(e,i,r){yi=h(i,3),Ci=h(r,yi);var n=this._context,o=n.uniformState,a=this._frameState,s=this._defaultView;this._view=s;var l=s.viewport;l.x=0,l.y=0,l.width=n.drawingBufferWidth,l.height=n.drawingBufferHeight;var u=s.passState;u.viewport=t.clone(l,u.viewport);var c=Se.transformWindowToDrawingBuffer(this,e,Ti);this._jobScheduler.disableThisFrame(),Be(this),a.cullingVolume=yt(this,c,yi,Ci,l),a.invertClassification=!1,a.passes.pick=!0,a.tilesetPassState=Yt,o.update(a),ot(this),bi.x=c.x-.5*(yi-1),bi.y=this.drawingBufferHeight-c.y-.5*(Ci-1),bi.width=yi,bi.height=Ci,u=s.pickFramebuffer.begin(bi,s.viewport),tt(this,u,Si),ct(this,u);var d=s.pickFramebuffer.end(bi);return n.endFrame(),d},Me.prototype.pickPositionWorldCoordinates=function(e,t){if(this.useDepthPicking){var i=e.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return o.clone(this._pickPositionCache[i],t);var r=this._frameState,n=this._context,a=n.uniformState,s=this._defaultView;this._view=s;var l=Se.transformWindowToDrawingBuffer(this,e,Ti);this.pickTranslucentDepth?Ct(this,l):(Be(this,r.frameNumber,r.time),a.update(r),ot(this)),l.y=this.drawingBufferHeight-l.y;var u,c=this.camera;u=p(c.frustum.fov)?c.frustum.clone($t):p(c.frustum.infiniteProjectionMatrix)?c.frustum.clone(ei):p(c.frustum.width)?c.frustum.clone(ti):c.frustum.clone(ii);for(var d=s.frustumCommandsList,h=d.length,f=0;f<h;++f){var m=Qe(this,f),_=m.getDepth(n,l.x,l.y);if(_>0&&_<1){var g,v=d[f];return this.mode===be.SCENE2D?(g=c.position.z,c.position.z=g-v.near+1,u.far=Math.max(1,v.far-v.near),u.near=1,a.update(r),a.updateFrustum(u)):(u.near=v.near*(0!==f?this.opaqueFrustumNearOffset:1),u.far=v.far,a.updateFrustum(u)),t=Se.drawingBufferToWgs84Coordinates(this,l,_,t),this.mode===be.SCENE2D&&(c.position.z=g,a.update(r)),this._pickPositionCache[i]=o.clone(t),t}}this._pickPositionCache[i]=void 0}};var Ei=new a;Me.prototype.pickPosition=function(e,t){if(t=this.pickPositionWorldCoordinates(e,t),p(t)&&this.mode!==be.SCENE3D){o.fromElements(t.y,t.z,t.x,t);var i=this.mapProjection,r=i.ellipsoid,n=i.unproject(t,Ei);r.cartographicToCartesian(n,t)}return t},Me.prototype.drillPick=function(e,t,i,r){var n=this;return bt(t,function(){var t=n.pick(e,i,r);if(p(t))return{object:t,position:void 0,exclude:!1}}).map(function(e){return e.object})};var Ai=new o,wi=new o;Me.prototype.pickFromRay=function(e,t,i){return Ot(this,e,t,i,!1,!1)},Me.prototype.drillPickFromRay=function(e,t,i,r){return Lt(this,e,t,i,r,!1,!1)},Me.prototype.pickFromRayMostDetailed=function(e,t,i){var r=this;return e=O.clone(e),t=p(t)?t.slice():t,Nt(this,Dt(this,e,t,i,function(){return Ot(r,e,t,i,!1,!0)}))},Me.prototype.drillPickFromRayMostDetailed=function(e,t,i,r){var n=this;return e=O.clone(e),i=p(i)?i.slice():i,Nt(this,Dt(this,e,i,r,function(){return Lt(n,e,t,i,r,!1,!0)}))};var xi=new o,Pi=new o,Di=new O,Ii=new a;return Me.prototype.sampleHeight=function(e,t,i){var r=Ft(this,e),n=Ot(this,r,t,i,!0,!1);if(p(n))return zt(this,n.position)},Me.prototype.clampToHeight=function(e,t,i,r){var n=Bt(this,e),a=Ot(this,n,t,i,!0,!1);if(p(a))return o.clone(a.position,r)},Me.prototype.sampleHeightMostDetailed=function(e,t,i){t=p(t)?t.slice():t;for(var r=e.length,n=new Array(r),o=0;o<r;++o)n[o]=kt(this,e[o],t,i);return Nt(this,K.all(n).then(function(t){for(var i=t.length,r=0;r<i;++r)e[r].height=t[r];return e}))},Me.prototype.clampToHeightMostDetailed=function(e,t,i){t=p(t)?t.slice():t;for(var r=e.length,n=new Array(r),o=0;o<r;++o)n[o]=Vt(this,e[o],t,i,e[o]);return Nt(this,K.all(n).then(function(t){for(var i=t.length,r=0;r<i;++r)e[r]=t[r];return e}))},Me.prototype.cartesianToCanvasCoordinates=function(e,t){return Se.wgs84ToWindowCoordinates(this,e,t)},Me.prototype.completeMorph=function(){this._transitioner.completeMorph()},Me.prototype.morphTo2D=function(e){var t,i=this.globe;t=p(i)?i.ellipsoid:this.mapProjection.ellipsoid,e=h(e,2),this._transitioner.morphTo2D(e,t)},Me.prototype.morphToColumbusView=function(e){var t,i=this.globe;t=p(i)?i.ellipsoid:this.mapProjection.ellipsoid,e=h(e,2),this._transitioner.morphToColumbusView(e,t)},Me.prototype.morphTo3D=function(e){var t,i=this.globe;t=p(i)?i.ellipsoid:this.mapProjection.ellipsoid,e=h(e,2),this._transitioner.morphTo3D(e,t)},Me.prototype.isDestroyed=function(){return!1},Me.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),p(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(var e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,m(this)},Me}),define("Shaders/SkyAtmosphereFS",[],function(){"use strict";return"#ifdef COLOR_CORRECT\nuniform vec3 u_hsbShift;\n#endif\nuniform vec4 u_cameraAndRadiiAndDynamicAtmosphereColor;\nconst float g = -0.95;\nconst float g2 = g * g;\nvarying vec3 v_rayleighColor;\nvarying vec3 v_mieColor;\nvarying vec3 v_toCamera;\nvarying vec3 v_positionEC;\nvoid main (void)\n{\nfloat cosAngle = dot(czm_sunDirectionWC, normalize(v_toCamera)) / length(v_toCamera);\nfloat rayleighPhase = 0.75 * (1.0 + cosAngle * cosAngle);\nfloat miePhase = 1.5 * ((1.0 - g2) / (2.0 + g2)) * (1.0 + cosAngle * cosAngle) / pow(1.0 + g2 - 2.0 * g * cosAngle, 1.5);\nvec3 rgb = rayleighPhase * v_rayleighColor + miePhase * v_mieColor;\n#ifndef HDR\nconst float exposure = 1.1;\nrgb = vec3(1.0) - exp(-exposure * rgb);\n#endif\n#ifdef COLOR_CORRECT\nvec3 hsb = czm_RGBToHSB(rgb);\nhsb.x += u_hsbShift.x;\nhsb.y = clamp(hsb.y + u_hsbShift.y, 0.0, 1.0);\nhsb.z = hsb.z > czm_epsilon7 ? hsb.z + u_hsbShift.z : 0.0;\nrgb = czm_HSBToRGB(hsb);\n#endif\nfloat atmosphereAlpha = clamp((u_cameraAndRadiiAndDynamicAtmosphereColor.y - u_cameraAndRadiiAndDynamicAtmosphereColor.x) / (u_cameraAndRadiiAndDynamicAtmosphereColor.y - u_cameraAndRadiiAndDynamicAtmosphereColor.z), 0.0, 1.0);\nfloat nightAlpha = (u_cameraAndRadiiAndDynamicAtmosphereColor.w > 0.0) ? clamp(dot(normalize(czm_viewerPositionWC), normalize(czm_sunPositionWC)), 0.0, 1.0) : 1.0;\natmosphereAlpha *= pow(nightAlpha, 0.5);\ngl_FragColor = vec4(rgb, mix(rgb.b, 1.0, atmosphereAlpha) * smoothstep(0.0, 1.0, czm_morphTime));\n}\n"}),define("Shaders/SkyAtmosphereVS",[],function(){"use strict" -;return"attribute vec4 position;\nuniform vec4 u_cameraAndRadiiAndDynamicAtmosphereColor;\nconst float Kr = 0.0025;\nconst float Kr4PI = Kr * 4.0 * czm_pi;\nconst float Km = 0.0015;\nconst float Km4PI = Km * 4.0 * czm_pi;\nconst float ESun = 15.0;\nconst float KmESun = Km * ESun;\nconst float KrESun = Kr * ESun;\nconst vec3 InvWavelength = vec3(\n5.60204474633241,\n9.473284437923038,\n19.643802610477206);\nconst float rayleighScaleDepth = 0.25;\nconst int nSamples = 2;\nconst float fSamples = 2.0;\nvarying vec3 v_rayleighColor;\nvarying vec3 v_mieColor;\nvarying vec3 v_toCamera;\nfloat scale(float cosAngle)\n{\nfloat x = 1.0 - cosAngle;\nreturn rayleighScaleDepth * exp(-0.00287 + x*(0.459 + x*(3.83 + x*(-6.80 + x*5.25))));\n}\nvoid main(void)\n{\nfloat cameraHeight = u_cameraAndRadiiAndDynamicAtmosphereColor.x;\nfloat outerRadius = u_cameraAndRadiiAndDynamicAtmosphereColor.y;\nfloat innerRadius = u_cameraAndRadiiAndDynamicAtmosphereColor.z;\nvec3 positionV3 = position.xyz;\nvec3 ray = positionV3 - czm_viewerPositionWC;\nfloat far = length(ray);\nray /= far;\nfloat atmosphereScale = 1.0 / (outerRadius - innerRadius);\n#ifdef SKY_FROM_SPACE\nfloat B = 2.0 * dot(czm_viewerPositionWC, ray);\nfloat C = cameraHeight * cameraHeight - outerRadius * outerRadius;\nfloat det = max(0.0, B*B - 4.0 * C);\nfloat near = 0.5 * (-B - sqrt(det));\nvec3 start = czm_viewerPositionWC + ray * near;\nfar -= near;\nfloat startAngle = dot(ray, start) / outerRadius;\nfloat startDepth = exp(-1.0 / rayleighScaleDepth );\nfloat startOffset = startDepth*scale(startAngle);\n#else // SKY_FROM_ATMOSPHERE\nvec3 start = czm_viewerPositionWC;\nfloat height = length(start);\nfloat depth = exp((atmosphereScale / rayleighScaleDepth ) * (innerRadius - cameraHeight));\nfloat startAngle = dot(ray, start) / height;\nfloat startOffset = depth*scale(startAngle);\n#endif\nfloat sampleLength = far / fSamples;\nfloat scaledLength = sampleLength * atmosphereScale;\nvec3 sampleRay = ray * sampleLength;\nvec3 samplePoint = start + sampleRay * 0.5;\nvec3 frontColor = vec3(0.0, 0.0, 0.0);\nvec3 lightDir = (u_cameraAndRadiiAndDynamicAtmosphereColor.w > 0.0) ? czm_sunPositionWC - czm_viewerPositionWC : czm_viewerPositionWC;\nlightDir = normalize(lightDir);\nfor(int i=0; i<nSamples; i++)\n{\nfloat height = length(samplePoint);\nfloat depth = exp((atmosphereScale / rayleighScaleDepth ) * (innerRadius - height));\nfloat fLightAngle = dot(lightDir, samplePoint) / height;\nfloat fCameraAngle = dot(ray, samplePoint) / height;\nfloat fScatter = (startOffset + depth*(scale(fLightAngle) - scale(fCameraAngle)));\nvec3 attenuate = exp(-fScatter * (InvWavelength * Kr4PI + Km4PI));\nfrontColor += attenuate * (depth * scaledLength);\nsamplePoint += sampleRay;\n}\nv_mieColor = frontColor * KmESun;\nv_rayleighColor = frontColor * (InvWavelength * KrESun);\nv_toCamera = czm_viewerPositionWC - positionV3;\ngl_Position = czm_modelViewProjection * position;\n}\n"}),define("Scene/SkyAtmosphere",["../Core/Cartesian3","../Core/Cartesian4","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Ellipsoid","../Core/EllipsoidGeometry","../Core/GeometryPipeline","../Core/Math","../Core/VertexFormat","../Renderer/BufferUsage","../Renderer/DrawCommand","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/SkyAtmosphereFS","../Shaders/SkyAtmosphereVS","./BlendingState","./CullFace","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b){"use strict";function S(r){r=i(r,a.WGS84),this.show=!0,this._ellipsoid=r,this._command=new h({owner:this}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._spSkyFromSpaceColorCorrect=void 0,this._spSkyFromAtmosphereColorCorrect=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new e;var n=new t;n.w=0,n.y=e.maximumComponent(e.multiplyByScalar(r.radii,1.025,new e)),n.z=r.maximumRadius,this._cameraAndRadiiAndDynamicAtmosphereColor=n;var o=this;this._command.uniformMap={u_cameraAndRadiiAndDynamicAtmosphereColor:function(){return o._cameraAndRadiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness}}}function T(e){return!(u.equalsEpsilon(e.hueShift,0,u.EPSILON7)&&u.equalsEpsilon(e.saturationShift,0,u.EPSILON7)&&u.equalsEpsilon(e.brightnessShift,0,u.EPSILON7))}return n(S.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),S.prototype.setDynamicAtmosphereColor=function(e){this._cameraAndRadiiAndDynamicAtmosphereColor.w=e?1:0},S.prototype.update=function(t){if(this.show){var i=t.mode;if((i===b.SCENE3D||i===b.MORPHING)&&t.passes.render){var n=this._command;if(!r(n.vertexArray)){var o=t.context,a=s.createGeometry(new s({radii:e.multiplyByScalar(this._ellipsoid.radii,1.025,new e),slicePartitions:256,stackPartitions:256,vertexFormat:c.POSITION_ONLY}));n.vertexArray=_.fromGeometry({context:o,geometry:a,attributeLocations:l.createAttributeLocations(a),bufferUsage:d.STATIC_DRAW}),n.renderState=p.fromCache({cull:{enabled:!0,face:C.FRONT},blending:y.ALPHA_BLEND,depthMask:!1});var u=new m({defines:["SKY_FROM_SPACE"],sources:[v]});this._spSkyFromSpace=f.fromCache({context:o,vertexShaderSource:u,fragmentShaderSource:g}),u=new m({defines:["SKY_FROM_ATMOSPHERE"],sources:[v]}),this._spSkyFromAtmosphere=f.fromCache({context:o,vertexShaderSource:u,fragmentShaderSource:g})}var h=T(this);if(h&&(!r(this._spSkyFromSpaceColorCorrect)||!r(this._spSkyFromAtmosphereColorCorrect))){var S=t.context,E=new m({defines:["SKY_FROM_SPACE"],sources:[v]}),A=new m({defines:["COLOR_CORRECT"],sources:[g]});this._spSkyFromSpaceColorCorrect=f.fromCache({context:S,vertexShaderSource:E,fragmentShaderSource:A}),E=new m({defines:["SKY_FROM_ATMOSPHERE"],sources:[v]}),this._spSkyFromAtmosphereColorCorrect=f.fromCache({context:S,vertexShaderSource:E,fragmentShaderSource:A})}var w=t.camera.positionWC,x=e.magnitude(w);return this._cameraAndRadiiAndDynamicAtmosphereColor.x=x,x>this._cameraAndRadiiAndDynamicAtmosphereColor.y?n.shaderProgram=h?this._spSkyFromSpaceColorCorrect:this._spSkyFromSpace:n.shaderProgram=h?this._spSkyFromAtmosphereColorCorrect:this._spSkyFromAtmosphere,n}}},S.prototype.isDestroyed=function(){return!1},S.prototype.destroy=function(){var e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyFromSpace=this._spSkyFromSpace&&this._spSkyFromSpace.destroy(),this._spSkyFromAtmosphere=this._spSkyFromAtmosphere&&this._spSkyFromAtmosphere.destroy(),this._spSkyFromSpaceColorCorrect=this._spSkyFromSpaceColorCorrect&&this._spSkyFromSpaceColorCorrect.destroy(),this._spSkyFromAtmosphereColorCorrect=this._spSkyFromAtmosphereColorCorrect&&this._spSkyFromAtmosphereColorCorrect.destroy(),o(this)},S}),define("Shaders/SkyBoxFS",[],function(){"use strict";return"uniform samplerCube u_cubeMap;\nvarying vec3 v_texCoord;\nvoid main()\n{\nvec4 color = textureCube(u_cubeMap, normalize(v_texCoord));\ngl_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime);\n}\n"}),define("Shaders/SkyBoxVS",[],function(){"use strict";return"attribute vec3 position;\nvarying vec3 v_texCoord;\nvoid main()\n{\nvec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position));\ngl_Position = czm_projection * vec4(p, 1.0);\nv_texCoord = position.xyz;\n}\n"}),define("Scene/SkyBox",["../Core/BoxGeometry","../Core/Cartesian3","../Core/defaultValue","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Core/GeometryPipeline","../Core/Matrix4","../Core/VertexFormat","../Renderer/BufferUsage","../Renderer/CubeMap","../Renderer/DrawCommand","../Renderer/loadCubeMap","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/ShaderSource","../Renderer/VertexArray","../Shaders/SkyBoxFS","../Shaders/SkyBoxVS","./BlendingState","./SceneMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C){"use strict";function b(e){this.sources=e.sources,this._sources=void 0,this.show=i(e.show,!0),this._command=new d({modelMatrix:s.clone(s.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}return b.prototype.update=function(i,n){var o=this;if(this.show&&(i.mode===C.SCENE3D||i.mode===C.MORPHING)&&i.passes.render){var s=i.context;if(this._sources!==this.sources){this._sources=this.sources;var d=this.sources;"string"==typeof d.positiveX?h(s,this._sources).then(function(e){o._cubeMap=o._cubeMap&&o._cubeMap.destroy(),o._cubeMap=e}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new c({context:s,source:d}))}var b=this._command;if(!r(b.vertexArray)){b.uniformMap={u_cubeMap:function(){return o._cubeMap}};var S=e.createGeometry(e.fromDimensions({dimensions:new t(2,2,2),vertexFormat:l.POSITION_ONLY})),T=this._attributeLocations=a.createAttributeLocations(S);b.vertexArray=_.fromGeometry({context:s,geometry:S,attributeLocations:T,bufferUsage:u.STATIC_DRAW}),b.renderState=p.fromCache({blending:y.ALPHA_BLEND})}if(!r(b.shaderProgram)||this._useHdr!==n){var E=new m({defines:[n?"HDR":""],sources:[g]});b.shaderProgram=f.fromCache({context:s,vertexShaderSource:v,fragmentShaderSource:E,attributeLocations:this._attributeLocations}),this._useHdr=n}if(r(this._cubeMap))return b}},b.prototype.isDestroyed=function(){return!1},b.prototype.destroy=function(){var e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),n(this)},b}),define("Scene/SphereEmitter",["../Core/Cartesian3","../Core/Check","../Core/defaultValue","../Core/defineProperties","../Core/Math"],function(e,t,i,r,n){"use strict";function o(e){e=i(e,1),this._radius=i(e,1)}return r(o.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}}),o.prototype.emit=function(t){var i=n.randomBetween(0,n.TWO_PI),r=n.randomBetween(0,n.PI),o=n.randomBetween(0,this._radius),a=o*Math.cos(i)*Math.sin(r),s=o*Math.sin(i)*Math.sin(r),l=o*Math.cos(r);t.position=e.fromElements(a,s,l,t.position),t.velocity=e.normalize(t.position,t.velocity)},o}),define("Scene/StyleExpression",["../Core/DeveloperError"],function(e){"use strict";function t(){}return t.prototype.evaluate=function(t,i){e.throwInstantiationError()},t.prototype.evaluateColor=function(t,i){e.throwInstantiationError()},t.prototype.getShaderFunction=function(t,i,r,n){e.throwInstantiationError()},t}),define("Shaders/SunFS",[],function(){"use strict";return"uniform sampler2D u_texture;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nvec4 color = texture2D(u_texture, v_textureCoordinates);\ngl_FragColor = czm_gammaCorrect(color);\n}\n"}),define("Shaders/SunTextureFS",[],function(){"use strict";return"uniform float u_radiusTS;\nvarying vec2 v_textureCoordinates;\nvec2 rotate(vec2 p, vec2 direction)\n{\nreturn vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x);\n}\nvec4 addBurst(vec2 position, vec2 direction, float lengthScalar)\n{\nvec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75);\nfloat radius = length(rotatedPosition) * lengthScalar;\nfloat burst = 1.0 - smoothstep(0.0, 0.55, radius);\nreturn vec4(burst);\n}\nvoid main()\n{\nfloat lengthScalar = 2.0 / sqrt(2.0);\nvec2 position = v_textureCoordinates - vec2(0.5);\nfloat radius = length(position) * lengthScalar;\nfloat surface = step(radius, u_radiusTS);\nvec4 color = vec4(vec2(1.0), surface + 0.2, surface);\nfloat glow = 1.0 - smoothstep(0.0, 0.55, radius);\ncolor.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75;\nvec4 burst = vec4(0.0);\nburst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar);\nburst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar);\nburst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar);\nburst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar);\nburst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar);\nburst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar);\ncolor += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15;\ngl_FragColor = clamp(color, vec4(0.0), vec4(1.0));\n}\n"}),define("Shaders/SunVS",[],function(){"use strict";return"attribute vec2 direction;\nuniform float u_size;\nvarying vec2 v_textureCoordinates;\nvoid main()\n{\nvec4 position;\nif (czm_morphTime == 1.0)\n{\nposition = vec4(czm_sunPositionWC, 1.0);\n}\nelse\n{\nposition = vec4(czm_sunPositionColumbusView.zxy, 1.0);\n}\nvec4 positionEC = czm_view * position;\nvec4 positionWC = czm_eyeToWindowCoordinates(positionEC);\nvec2 halfSize = vec2(u_size * 0.5);\nhalfSize *= ((direction * 2.0) - 1.0);\ngl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0);\nv_textureCoordinates = direction;\n}\n"}),define("Scene/Sun",["../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartesian4","../Core/ComponentDatatype","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/IndexDatatype","../Core/Math","../Core/Matrix4","../Core/PixelFormat","../Core/PrimitiveType","../Renderer/Buffer","../Renderer/BufferUsage","../Renderer/ComputeCommand","../Renderer/DrawCommand","../Renderer/PixelDatatype","../Renderer/RenderState","../Renderer/ShaderProgram","../Renderer/Texture","../Renderer/VertexArray","../Shaders/SunFS","../Shaders/SunTextureFS","../Shaders/SunVS","./BlendingState","./SceneMode","./SceneTransforms"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x){"use strict";function P(){this.show=!0,this._drawCommand=new _({primitiveType:h.TRIANGLES,boundingVolume:new e,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new e,this._boundingVolume2D=new e,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;var t=this;this._uniformMap={u_texture:function(){return t._texture},u_size:function(){return t._size}}}a(P.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var D=new t,I=new t,M=new r,R=new r;return P.prototype.update=function(r,a,s){if(this.show){var h=r.mode;if(h!==w.SCENE2D&&h!==w.MORPHING&&r.passes.render){var _=r.context,P=a.viewport.width,O=a.viewport.height;if(!o(this._texture)||P!==this._drawingBufferWidth||O!==this._drawingBufferHeight||this._glowFactorDirty||s!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=P,this._drawingBufferHeight=O,this._glowFactorDirty=!1,this._useHdr=s;var L=Math.max(P,O);L=Math.pow(2,Math.ceil(Math.log(L)/Math.log(2))-2),L=Math.max(1,L);var N=s?_.halfFloatingPointTexture?g.HALF_FLOAT:g.FLOAT:g.UNSIGNED_BYTE;this._texture=new C({context:_,width:L,height:L,pixelFormat:d.RGBA,pixelDatatype:N}),this._glowLengthTS=5*this._glowFactor,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;var F=this,B={u_radiusTS:function(){return F._radiusTS}};this._commands.computeCommand=new m({fragmentShaderSource:T,outputTexture:this._texture,uniformMap:B,persists:!1,owner:this,postExecute:function(){F._commands.computeCommand=void 0}})}var z=this._drawCommand;if(!o(z.vertexArray)){var k={direction:0},V=new Uint8Array(8);V[0]=0,V[1]=0,V[2]=255,V[3]=0,V[4]=255,V[5]=255,V[6]=0,V[7]=255;var U=p.createVertexBuffer({context:_,typedArray:V,usage:f.STATIC_DRAW}),G=[{index:k.direction,vertexBuffer:U,componentsPerAttribute:2,normalize:!0,componentDatatype:n.UNSIGNED_BYTE}],H=p.createIndexBuffer({context:_,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:f.STATIC_DRAW,indexDatatype:l.UNSIGNED_SHORT});z.vertexArray=new b({context:_,attributes:G,indexBuffer:H}),z.shaderProgram=y.fromCache({context:_,vertexShaderSource:E,fragmentShaderSource:S,attributeLocations:k}),z.renderState=v.fromCache({blending:A.ALPHA_BLEND}),z.uniformMap=this._uniformMap}var W=_.uniformState.sunPositionWC,q=_.uniformState.sunPositionColumbusView,Y=this._boundingVolume,j=this._boundingVolume2D;i.clone(W,Y.center),j.center.x=q.z,j.center.y=q.x,j.center.z=q.y,Y.radius=u.SOLAR_RADIUS+u.SOLAR_RADIUS*this._glowLengthTS,j.radius=Y.radius,h===w.SCENE3D?e.clone(Y,z.boundingVolume):h===w.COLUMBUS_VIEW&&e.clone(j,z.boundingVolume);var X=x.computeActualWgs84Position(r,W,R),Q=i.magnitude(i.subtract(X,r.camera.position,R)),K=_.uniformState.projection,Z=M;Z.x=0,Z.y=0,Z.z=-Q,Z.w=1;var J=c.multiplyByVector(K,Z,R),$=x.clipToGLWindowCoordinates(a.viewport,J,D);Z.x=u.SOLAR_RADIUS;var ee=c.multiplyByVector(K,Z,R),te=x.clipToGLWindowCoordinates(a.viewport,ee,I);return this._size=Math.ceil(t.magnitude(t.subtract(te,$,R))),this._size=2*this._size*(1+2*this._glowLengthTS),this._commands}}},P.prototype.isDestroyed=function(){return!1},P.prototype.destroy=function(){var e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),s(this)},P}),define("Scene/TileBoundingVolume",["../Core/DeveloperError"],function(e){"use strict";function t(){}return t.prototype.boundingVolume=void 0,t.prototype.boundingSphere=void 0,t.prototype.distanceToCamera=function(t){e.throwInstantiationError()},t.prototype.intersectPlane=function(t){e.throwInstantiationError()},t.prototype.createDebugVolume=function(t){e.throwInstantiationError()},t}),define("Scene/TileCoordinatesImageryProvider",["../Core/Color","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/Event","../Core/GeographicTilingScheme","../ThirdParty/when"],function(e,t,i,r,n,o,a){"use strict";function s(r){r=t(r,t.EMPTY_OBJECT),this._tilingScheme=i(r.tilingScheme)?r.tilingScheme:new o({ellipsoid:r.ellipsoid}),this._color=t(r.color,e.YELLOW),this._errorEvent=new n,this._tileWidth=t(r.tileWidth,256),this._tileHeight=t(r.tileHeight,256),this._readyPromise=a.resolve(!0)}return r(s.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},ready:{get:function(){return!0}},readyPromise:{get:function(){return this._readyPromise}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}}),s.prototype.getTileCredits=function(e,t,i){},s.prototype.requestImage=function(e,t,i,r){var n=document.createElement("canvas");n.width=256,n.height=256;var o=n.getContext("2d"),a=this._color.toCssColorString();o.strokeStyle=a,o.lineWidth=2,o.strokeRect(1,1,255,255);var s="L"+i+"X"+e+"Y"+t;return o.font="bold 25px Arial",o.textAlign="center",o.fillStyle="black",o.fillText(s,127,127),o.fillStyle=a,o.fillText(s,124,124),n},s.prototype.pickFeatures=function(e,t,i,r,n){},s}),define("Scene/TileDiscardPolicy",["../Core/DeveloperError"],function(e){"use strict";function t(t){e.throwInstantiationError()}return t.prototype.isReady=e.throwInstantiationError,t.prototype.shouldDiscardImage=e.throwInstantiationError,t}),define("Scene/TileState",["../Core/freezeObject"],function(e){"use strict";return e({START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3})}),define("Scene/TimeDynamicPointCloud",["../Core/arrayFill","../Core/Check","../Core/combine","../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/Event","../Core/getTimestamp","../Core/JulianDate","../Core/Math","../Core/Matrix4","../Core/Resource","../ThirdParty/when","./ClippingPlaneCollection","./PointCloud","./PointCloudEyeDomeLighting","./PointCloudShading","./SceneMode","./ShadowMode"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y){"use strict";function C(t){t=r(t,r.EMPTY_OBJECT),this.show=r(t.show,!0),this.modelMatrix=d.clone(r(t.modelMatrix,d.IDENTITY)),this.shadows=r(t.shadows,y.ENABLED),this.maximumMemoryUsage=r(t.maximumMemoryUsage,256),this.shading=new g(t.shading),this.style=t.style,this.frameFailed=new s,this.frameChanged=new s,this._clock=t.clock,this._intervals=t.intervals,this._clippingPlanes=void 0,this.clippingPlanes=t.clippingPlanes,this._pointCloudEyeDomeLighting=new _,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._readyPromise=p.defer(),this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=e(new Array(5),0),this._runningAverage=0}function b(e){return"uniform vec4 czm_pickColor;\n"+e}function S(e){return function(t){return i(t,{czm_pickColor:function(){return e._pickId.color}})}}function T(){return"czm_pickColor"}function E(e){var t=e._clock,i=t.canAnimate&&t.shouldAnimate,r=t.multiplier;return i?r:0}function A(e,t){return e._intervals.indexOf(t.start)}function w(e,t){var i=e._intervals,r=e._clock,n=E(e);if(0!==n){var o=e._getAverageLoadTime(),a=u.addSeconds(r.currentTime,o*n,H),s=i.indexOf(a);return s===A(e,t)&&(n>=0?++s:--s),i.get(s)}}function x(e){var t=e._intervals,i=e._clock,r=i.currentTime,n=t.indexOf(r);return t.get(n)}function P(e,t,i){var r=E(e),n=A(e,t),o=A(e,i);return r>=0?n>=o:n<=o}function D(e,t){return function(i){var r=n(i.message)?i.message:i.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:r}):(console.log("A frame failed to load: "+t),console.log("Error: "+r))}}function I(e,t,i){var r=A(e,t),o=e._frames,a=o[r];if(!n(a)){var s=t.data.transform,u=n(s)?d.fromArray(s):void 0,c=t.data.uri;a={pointCloud:void 0,transform:u,timestamp:l(),sequential:!0,ready:!1,touchedFrameNumber:i.frameNumber},o[r]=a,h.fetchArrayBuffer({url:c}).then(function(t){return a.pointCloud=new m({arrayBuffer:t,cull:!0,fragmentShaderLoaded:b,uniformMapLoaded:S(e),pickIdLoaded:T}),a.pointCloud.readyPromise}).otherwise(D(e,c))}return a}function M(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function R(e,t,i,r){t.touchedFrameNumber<r.frameNumber-1&&(t.sequential=!1);var o=t.pointCloud;if(n(o)&&!t.ready){var a=r.commandList,s=a.length;if(N(e,t,i,r),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,a.length=s,t.sequential)){M(e,(l()-t.timestamp)/1e3)}}t.touchedFrameNumber=r.frameNumber}function O(e,t){var i=e.shading;return n(i)&&n(i.baseResolution)?i.baseResolution:n(t.boundingSphere)?c.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function L(e){var t=e.shading;return n(t)&&n(t.maximumAttenuation)?t.maximumAttenuation:10}function N(e,t,i,n){var o=r(e.shading,q),a=t.pointCloud,s=r(t.transform,d.IDENTITY);a.modelMatrix=d.multiplyTransformation(e.modelMatrix,s,W),a.style=e.style,a.time=i.timeSinceLoad,a.shadows=e.shadows,a.clippingPlanes=e._clippingPlanes,a.isClipped=i.isClipped,a.attenuation=o.attenuation,a.backFaceCulling=o.backFaceCulling,a.normalShading=o.normalShading,a.geometricError=O(e,a),a.geometricErrorScale=o.geometricErrorScale,a.maximumAttenuation=L(e),a.update(n),t.touchedFrameNumber=n.frameNumber}function F(e,t,i,r){R(e,I(e,t,r),i,r)}function B(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function z(e,t){for(var i=e._frames,r=i.length,o=0;o<r;++o){var a=i[o];if(n(a)&&(!n(t)||t(a))){var s=a.pointCloud;a.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),n(s)&&s.destroy(),a===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),i[o]=void 0}}}function k(e,t){var i=A(e,t),r=e._frames[i];if(n(r)&&r.ready)return r}function V(e,t,i,r,o){return!!n(i)&&(!!i.ready||(F(e,t,r,o),i.ready))}function U(e,t,i,r,n){var o,a,s,l=e._intervals,u=e._frames,c=A(e,i),d=A(e,t);if(c>=d){for(o=c;o>=d;--o)if(a=l.get(o),s=u[o],V(e,a,s,r,n))return a}else for(o=c;o<=d;++o)if(a=l.get(o),s=u[o],V(e,a,s,r,n))return a;return t}function G(e,t,i){for(var r=e._frames,o=r.length,a=0;a<o;++a){var s=r[a];n(s)&&n(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=i)}}o(C.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){f.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(n(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}},readyPromise:{get:function(){return this._readyPromise.promise}}}),C.prototype.makeStyleDirty=function(){this._styleDirty=!0},C.prototype._getAverageLoadTime=function(){return 0===this._runningLength?.05:this._runningAverage};var H=new u,W=new d,q=new g,Y={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};return C.prototype.update=function(e){if(e.mode!==v.MORPHING&&this.show){n(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),n(this._loadTimestamp)||(this._loadTimestamp=u.clone(e.time));var t=Math.max(1e3*u.secondsDifference(e.time,this._loadTimestamp),0),i=this._clippingPlanes,r=0,o=!1,a=n(i)&&i.enabled;a&&(i.update(e),r=i.clippingPlanesState),this._clippingPlanesState!==r&&(this._clippingPlanesState=r,o=!0);var s=this._styleDirty;this._styleDirty=!1,(o||s)&&G(this,o,s),Y.timeSinceLoad=t,Y.isClipped=a;var l=this.shading,c=this._pointCloudEyeDomeLighting,d=e.commandList,h=d.length,p=this._previousInterval,f=this._nextInterval,m=x(this);if(n(m)){var _=!1,g=E(this),y=0===g;g!==this._clockMultiplier&&(_=!0,this._clockMultiplier=g),n(p)&&!y||(p=m),(!n(f)||_||P(this,m,f))&&(f=w(this,m)),p=U(this,p,m,Y,e);var C=k(this,p);n(C)||(F(this,p,Y,e),C=this._lastRenderedFrame),n(C)&&N(this,C,Y,e),n(f)&&F(this,f,Y,e);var b=this;n(C)&&!n(this._lastRenderedFrame)&&e.afterRender.push(function(){b._readyPromise.resolve(b)}),n(C)&&C!==this._lastRenderedFrame&&b.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){b.frameChanged.raiseEvent(b)}),this._previousInterval=p,this._nextInterval=f,this._lastRenderedFrame=C;this._totalMemoryUsageInBytes>1024*this.maximumMemoryUsage*1024&&z(this,B(e));var S=d.length,T=S-h;n(l)&&l.attenuation&&l.eyeDomeLighting&&T>0&&c.update(e,h,l)}}},C.prototype.isDestroyed=function(){return!1},C.prototype.destroy=function(){return z(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),a(this)},C}),define("Shaders/ViewportQuadFS",[],function(){"use strict";return"varying vec2 v_textureCoordinates;\nvoid main()\n{\nczm_materialInput materialInput;\nmaterialInput.s = v_textureCoordinates.s;\nmaterialInput.st = v_textureCoordinates;\nmaterialInput.str = vec3(v_textureCoordinates, 0.0);\nmaterialInput.normalEC = vec3(0.0, 0.0, -1.0);\nczm_material material = czm_getMaterial(materialInput);\ngl_FragColor = vec4(material.diffuse + material.emission, material.alpha);\n}\n"}),define("Scene/ViewportQuad",["../Core/BoundingRectangle","../Core/Color","../Core/defined","../Core/destroyObject","../Core/DeveloperError","../Renderer/Pass","../Renderer/RenderState","../Renderer/ShaderSource","../Shaders/ViewportQuadFS","./BlendingState","./Material"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(r,n){this.show=!0,i(r)||(r=new e),this.rectangle=e.clone(r),i(n)||(n=c.fromType(c.ColorType,{color:new t(1,1,1,1)})),this.material=n,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}return d.prototype.update=function(t){if(this.show){var r=this._rs;i(r)&&e.equals(r.viewport,this.rectangle)||(this._rs=a.fromCache({blending:u.ALPHA_BLEND,viewport:this.rectangle}));if(t.passes.render){var n=t.context;if(this._material!==this.material||!i(this._overlayCommand)){this._material=this.material,i(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();var c=new s({sources:[this._material.shaderSource,l]});this._overlayCommand=n.createViewportQuadCommand(c,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=o.OVERLAY}this._material.update(n),this._overlayCommand.uniformMap=this._material._uniforms,t.commandList.push(this._overlayCommand)}}},d.prototype.isDestroyed=function(){return!1},d.prototype.destroy=function(){return i(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),r(this)},d}),function(){!function(e){var t=this||(0,eval)("this"),i=t.document,r=t.navigator,n=t.jQuery,o=t.JSON;n||"undefined"==typeof jQuery||(n=jQuery),function(e){"function"==typeof define&&define.amd?define("ThirdParty/knockout-3.5.0",["exports","require"],e):e("object"==typeof exports&&"object"==typeof module?module.exports||exports:t.ko={})}(function(a,s){function l(e,t){return(null===e||typeof e in m)&&e===t}function u(t,i){var r;return function(){r||(r=f.a.setTimeout(function(){r=e,t()},i))}}function c(e,t){var i;return function(){clearTimeout(i),i=f.a.setTimeout(e,t)}}function d(e,t){t&&"change"!==t?"beforeChange"===t?this.oc(e):this.bb(e,t):this.pc(e)}function h(e,t){null!==t&&t.s&&t.s()}function p(e,t){var i=this.pd,r=i[C];r.qa||(this.Pb&&this.kb[t]?(i.tc(t,e,this.kb[t]),this.kb[t]=null,--this.Pb):r.F[t]||i.tc(t,e,r.G?{da:e}:i.Zc(e)),e.Ka&&e.fd())}var f=void 0!==a?a:{};f.b=function(e,t){for(var i=e.split("."),r=f,n=0;n<i.length-1;n++)r=r[i[n]];r[i[i.length-1]]=t},f.J=function(e,t,i){e[t]=i},f.version="3.5.0",f.b("version",f.version),f.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},f.a=function(){function a(e,t){for(var i in e)c.call(e,i)&&t(i,e[i])}function s(e,t){if(t)for(var i in t)c.call(t,i)&&(e[i]=t[i]);return e}function l(e,t){return e.__proto__=t,e}function u(e,t,i,r){var n=e[t].match(y)||[];f.a.C(i.match(y),function(e){f.a.Oa(n,e,r)}),e[t]=n.join(" ")}var c=Object.prototype.hasOwnProperty,d={__proto__:[]}instanceof Array,h="function"==typeof Symbol,p={},m={};p[r&&/Firefox\/2/i.test(r.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],p.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),a(p,function(e,t){if(t.length)for(var i=0,r=t.length;i<r;i++)m[t[i]]=e});var _,g={propertychange:!0},v=i&&function(){for(var t=3,r=i.createElement("div"),n=r.getElementsByTagName("i");r.innerHTML="\x3c!--[if gt IE "+ ++t+"]><i></i><![endif]--\x3e",n[0];);return 4<t?t:e}(),y=/\S+/g;return{Ic:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],C:function(e,t,i){for(var r=0,n=e.length;r<n;r++)t.call(i,e[r],r,e)},A:"function"==typeof Array.prototype.indexOf?function(e,t){return Array.prototype.indexOf.call(e,t)}:function(e,t){for(var i=0,r=e.length;i<r;i++)if(e[i]===t)return i;return-1},Lb:function(t,i,r){for(var n=0,o=t.length;n<o;n++)if(i.call(r,t[n],n,t))return t[n];return e},hb:function(e,t){var i=f.a.A(e,t);0<i?e.splice(i,1):0===i&&e.shift()},vc:function(e){var t=[];return e&&f.a.C(e,function(e){0>f.a.A(t,e)&&t.push(e)}),t},Mb:function(e,t,i){var r=[];if(e)for(var n=0,o=e.length;n<o;n++)r.push(t.call(i,e[n],n));return r},fb:function(e,t,i){var r=[];if(e)for(var n=0,o=e.length;n<o;n++)t.call(i,e[n],n)&&r.push(e[n]);return r},gb:function(e,t){if(t instanceof Array)e.push.apply(e,t);else for(var i=0,r=t.length;i<r;i++)e.push(t[i]);return e},Oa:function(e,t,i){var r=f.a.A(f.a.$b(e),t);0>r?i&&e.push(t):i||e.splice(r,1)},Ba:d,extend:s,setPrototypeOf:l,zb:d?l:s,O:a,Ha:function(e,t,i){if(!e)return e;var r,n={};for(r in e)c.call(e,r)&&(n[r]=t.call(i,e[r],r,e));return n},Sb:function(e){for(;e.firstChild;)f.removeNode(e.firstChild)},Xb:function(e){e=f.a.la(e) -;for(var t=(e[0]&&e[0].ownerDocument||i).createElement("div"),r=0,n=e.length;r<n;r++)t.appendChild(f.na(e[r]));return t},Ca:function(e,t){for(var i=0,r=e.length,n=[];i<r;i++){var o=e[i].cloneNode(!0);n.push(t?f.na(o):o)}return n},ua:function(e,t){if(f.a.Sb(e),t)for(var i=0,r=t.length;i<r;i++)e.appendChild(t[i])},Wc:function(e,t){var i=e.nodeType?[e]:e;if(0<i.length){for(var r=i[0],n=r.parentNode,o=0,a=t.length;o<a;o++)n.insertBefore(t[o],r);for(o=0,a=i.length;o<a;o++)f.removeNode(i[o])}},Ua:function(e,t){if(e.length){for(t=8===t.nodeType&&t.parentNode||t;e.length&&e[0].parentNode!==t;)e.splice(0,1);for(;1<e.length&&e[e.length-1].parentNode!==t;)e.length--;if(1<e.length){var i=e[0],r=e[e.length-1];for(e.length=0;i!==r;)e.push(i),i=i.nextSibling;e.push(r)}}return e},Yc:function(e,t){7>v?e.setAttribute("selected",t):e.selected=t},Cb:function(t){return null===t||t===e?"":t.trim?t.trim():t.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Td:function(e,t){return e=e||"",!(t.length>e.length)&&e.substring(0,t.length)===t},ud:function(e,t){if(e===t)return!0;if(11===e.nodeType)return!1;if(t.contains)return t.contains(1!==e.nodeType?e.parentNode:e);if(t.compareDocumentPosition)return 16==(16&t.compareDocumentPosition(e));for(;e&&e!=t;)e=e.parentNode;return!!e},Rb:function(e){return f.a.ud(e,e.ownerDocument.documentElement)},jd:function(e){return!!f.a.Lb(e,f.a.Rb)},P:function(e){return e&&e.tagName&&e.tagName.toLowerCase()},zc:function(e){return f.onError?function(){try{return e.apply(this,arguments)}catch(e){throw f.onError&&f.onError(e),e}}:e},setTimeout:function(e,t){return setTimeout(f.a.zc(e),t)},Fc:function(e){setTimeout(function(){throw f.onError&&f.onError(e),e},0)},H:function(e,t,i){var r=f.a.zc(i);if(i=g[t],f.options.useOnlyNativeEvents||i||!n)if(i||"function"!=typeof e.addEventListener){if(void 0===e.attachEvent)throw Error("Browser doesn't support addEventListener or attachEvent");var o=function(t){r.call(e,t)},a="on"+t;e.attachEvent(a,o),f.a.I.za(e,function(){e.detachEvent(a,o)})}else e.addEventListener(t,r,!1);else _||(_="function"==typeof n(e).on?"on":"bind"),n(e)[_](t,r)},Fb:function(e,r){if(!e||!e.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var o;if("input"===f.a.P(e)&&e.type&&"click"==r.toLowerCase()?(o=e.type,o="checkbox"==o||"radio"==o):o=!1,f.options.useOnlyNativeEvents||!n||o)if("function"==typeof i.createEvent){if("function"!=typeof e.dispatchEvent)throw Error("The supplied element doesn't support dispatchEvent");o=i.createEvent(m[r]||"HTMLEvents"),o.initEvent(r,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,e),e.dispatchEvent(o)}else if(o&&e.click)e.click();else{if(void 0===e.fireEvent)throw Error("Browser doesn't support triggering events");e.fireEvent("on"+r)}else n(e).trigger(r)},c:function(e){return f.N(e)?e():e},$b:function(e){return f.N(e)?e.w():e},Eb:function(e,t,i){var r;t&&("object"==typeof e.classList?(r=e.classList[i?"add":"remove"],f.a.C(t.match(y),function(t){r.call(e.classList,t)})):"string"==typeof e.className.baseVal?u(e.className,"baseVal",t,i):u(e,"className",t,i))},Ab:function(t,i){var r=f.a.c(i);null!==r&&r!==e||(r="");var n=f.h.firstChild(t);!n||3!=n.nodeType||f.h.nextSibling(n)?f.h.ua(t,[t.ownerDocument.createTextNode(r)]):n.data=r,f.a.zd(t)},Xc:function(e,t){if(e.name=t,7>=v)try{var r=e.name.replace(/[&<>'"]/g,function(e){return"&#"+e.charCodeAt(0)+";"});e.mergeAttributes(i.createElement("<input name='"+r+"'/>"),!1)}catch(e){}},zd:function(e){9<=v&&(e=1==e.nodeType?e:e.parentNode,e.style&&(e.style.zoom=e.style.zoom))},vd:function(e){if(v){var t=e.style.width;e.style.width=0,e.style.width=t}},Od:function(e,t){e=f.a.c(e),t=f.a.c(t);for(var i=[],r=e;r<=t;r++)i.push(r);return i},la:function(e){for(var t=[],i=0,r=e.length;i<r;i++)t.push(e[i]);return t},Da:function(e){return h?Symbol(e):e},Xd:6===v,Yd:7===v,W:v,Kc:function(e,t){for(var i=f.a.la(e.getElementsByTagName("input")).concat(f.a.la(e.getElementsByTagName("textarea"))),r="string"==typeof t?function(e){return e.name===t}:function(e){return t.test(e.name)},n=[],o=i.length-1;0<=o;o--)r(i[o])&&n.push(i[o]);return n},Md:function(e){return"string"==typeof e&&(e=f.a.Cb(e))?o&&o.parse?o.parse(e):new Function("return "+e)():null},fc:function(e,t,i){if(!o||!o.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return o.stringify(f.a.c(e),t,i)},Nd:function(e,t,r){r=r||{};var n=r.params||{},o=r.includeFields||this.Ic,s=e;if("object"==typeof e&&"form"===f.a.P(e))for(var s=e.action,l=o.length-1;0<=l;l--)for(var u=f.a.Kc(e,o[l]),c=u.length-1;0<=c;c--)n[u[c].name]=u[c].value;t=f.a.c(t);var d=i.createElement("form");d.style.display="none",d.action=s,d.method="post";for(var h in t)e=i.createElement("input"),e.type="hidden",e.name=h,e.value=f.a.fc(f.a.c(t[h])),d.appendChild(e);a(n,function(e,t){var r=i.createElement("input");r.type="hidden",r.name=e,r.value=t,d.appendChild(r)}),i.body.appendChild(d),r.submitter?r.submitter(d):d.submit(),setTimeout(function(){d.parentNode.removeChild(d)},0)}}}(),f.b("utils",f.a),f.b("utils.arrayForEach",f.a.C),f.b("utils.arrayFirst",f.a.Lb),f.b("utils.arrayFilter",f.a.fb),f.b("utils.arrayGetDistinctValues",f.a.vc),f.b("utils.arrayIndexOf",f.a.A),f.b("utils.arrayMap",f.a.Mb),f.b("utils.arrayPushAll",f.a.gb),f.b("utils.arrayRemoveItem",f.a.hb),f.b("utils.cloneNodes",f.a.Ca),f.b("utils.createSymbolOrString",f.a.Da),f.b("utils.extend",f.a.extend),f.b("utils.fieldsIncludedWithJsonPost",f.a.Ic),f.b("utils.getFormFields",f.a.Kc),f.b("utils.objectMap",f.a.Ha),f.b("utils.peekObservable",f.a.$b),f.b("utils.postJson",f.a.Nd),f.b("utils.parseJson",f.a.Md),f.b("utils.registerEventHandler",f.a.H),f.b("utils.stringifyJson",f.a.fc),f.b("utils.range",f.a.Od),f.b("utils.toggleDomNodeCssClass",f.a.Eb),f.b("utils.triggerEvent",f.a.Fb),f.b("utils.unwrapObservable",f.a.c),f.b("utils.objectForEach",f.a.O),f.b("utils.addOrRemoveItem",f.a.Oa),f.b("utils.setTextContent",f.a.Ab),f.b("unwrap",f.a.c),Function.prototype.bind||(Function.prototype.bind=function(e){var t=this;if(1===arguments.length)return function(){return t.apply(e,arguments)};var i=Array.prototype.slice.call(arguments,1);return function(){var r=i.slice(0);return r.push.apply(r,arguments),t.apply(e,r)}}),f.a.g=new function(){var t,i,r=0,n="__ko__"+(new Date).getTime(),o={};return f.a.W?(t=function(t,i){var a=t[n];if(!a||"null"===a||!o[a]){if(!i)return e;a=t[n]="ko"+r++,o[a]={}}return o[a]},i=function(e){var t=e[n];return!!t&&(delete o[t],e[n]=null,!0)}):(t=function(e,t){var i=e[n];return!i&&t&&(i=e[n]={}),i},i=function(e){return!!e[n]&&(delete e[n],!0)}),{get:function(e,i){var r=t(e,!1);return r&&r[i]},set:function(i,r,n){(i=t(i,n!==e))&&(i[r]=n)},Tb:function(e,i,r){return e=t(e,!0),e[i]||(e[i]=r)},clear:i,Z:function(){return r+++n}}},f.b("utils.domData",f.a.g),f.b("utils.domData.clear",f.a.g.clear),f.a.I=new function(){function t(t,i){var r=f.a.g.get(t,o);return r===e&&i&&(r=[],f.a.g.set(t,o,r)),r}function i(e){var i=t(e,!1);if(i)for(var i=i.slice(0),n=0;n<i.length;n++)i[n](e);f.a.g.clear(e),f.a.I.cleanExternalData(e),s[e.nodeType]&&r(e.childNodes,!0)}function r(e,t){for(var r,n=[],o=0;o<e.length;o++)if((!t||8===e[o].nodeType)&&(i(n[n.length]=r=e[o]),e[o]!==r))for(;o--&&-1==f.a.A(n,e[o]););}var o=f.a.g.Z(),a={1:!0,8:!0,9:!0},s={1:!0,9:!0};return{za:function(e,i){if("function"!=typeof i)throw Error("Callback must be a function");t(e,!0).push(i)},xb:function(i,r){var n=t(i,!1);n&&(f.a.hb(n,r),0==n.length&&f.a.g.set(i,o,e))},na:function(e){return a[e.nodeType]&&(i(e),s[e.nodeType]&&r(e.getElementsByTagName("*"))),e},removeNode:function(e){f.na(e),e.parentNode&&e.parentNode.removeChild(e)},cleanExternalData:function(e){n&&"function"==typeof n.cleanData&&n.cleanData([e])}}},f.na=f.a.I.na,f.removeNode=f.a.I.removeNode,f.b("cleanNode",f.na),f.b("removeNode",f.removeNode),f.b("utils.domNodeDisposal",f.a.I),f.b("utils.domNodeDisposal.addDisposeCallback",f.a.I.za),f.b("utils.domNodeDisposal.removeDisposeCallback",f.a.I.xb),function(){var r=[0,"",""],o=[1,"<table>","</table>"],a=[3,"<table><tbody><tr>","</tr></tbody></table>"],s=[1,"<select multiple='multiple'>","</select>"],l={thead:o,tbody:o,tfoot:o,tr:[2,"<table><tbody>","</tbody></table>"],td:a,th:a,option:s,optgroup:s},u=8>=f.a.W;f.a.ta=function(e,o){var a;if(n){if(n.parseHTML)a=n.parseHTML(e,o)||[];else if((a=n.clean([e],o))&&a[0]){for(var s=a[0];s.parentNode&&11!==s.parentNode.nodeType;)s=s.parentNode;s.parentNode&&s.parentNode.removeChild(s)}}else{(a=o)||(a=i);var c,s=a.parentWindow||a.defaultView||t,d=f.a.Cb(e).toLowerCase(),h=a.createElement("div");for(c=(d=d.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&l[d[1]]||r,d=c[0],c="ignored<div>"+c[1]+e+c[2]+"</div>","function"==typeof s.innerShiv?h.appendChild(s.innerShiv(c)):(u&&a.body.appendChild(h),h.innerHTML=c,u&&h.parentNode.removeChild(h));d--;)h=h.lastChild;a=f.a.la(h.lastChild.childNodes)}return a},f.a.Ld=function(e,t){var i=f.a.ta(e,t);return i.length&&i[0].parentElement||f.a.Xb(i)},f.a.dc=function(t,i){if(f.a.Sb(t),null!==(i=f.a.c(i))&&i!==e)if("string"!=typeof i&&(i=i.toString()),n)n(t).html(i);else for(var r=f.a.ta(i,t.ownerDocument),o=0;o<r.length;o++)t.appendChild(r[o])}}(),f.b("utils.parseHtmlFragment",f.a.ta),f.b("utils.setHtml",f.a.dc),f.aa=function(){function t(e,i){if(e)if(8==e.nodeType){var r=f.aa.Tc(e.nodeValue);null!=r&&i.push({sd:e,Jd:r})}else if(1==e.nodeType)for(var r=0,n=e.childNodes,o=n.length;r<o;r++)t(n[r],i)}var i={};return{Wb:function(e){if("function"!=typeof e)throw Error("You can only pass a function to ko.memoization.memoize()");var t=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return i[t]=e,"\x3c!--[ko_memo:"+t+"]--\x3e"},ad:function(t,r){var n=i[t];if(n===e)throw Error("Couldn't find any memo with ID "+t+". Perhaps it's already been unmemoized.");try{return n.apply(null,r||[]),!0}finally{delete i[t]}},bd:function(e,i){var r=[];t(e,r);for(var n=0,o=r.length;n<o;n++){var a=r[n].sd,s=[a];i&&f.a.gb(s,i),f.aa.ad(r[n].Jd,s),a.nodeValue="",a.parentNode&&a.parentNode.removeChild(a)}},Tc:function(e){return(e=e.match(/^\[ko_memo\:(.*?)\]$/))?e[1]:null}}}(),f.b("memoization",f.aa),f.b("memoization.memoize",f.aa.Wb),f.b("memoization.unmemoize",f.aa.ad),f.b("memoization.parseMemoText",f.aa.Tc),f.b("memoization.unmemoizeDomNodeAndDescendants",f.aa.bd),f.ma=function(){function e(){if(a)for(var e,t=a,i=0;l<a;)if(e=o[l++]){if(l>t){if(5e3<=++i){l=a,f.a.Fc(Error("'Too much recursion' after processing "+i+" task groups."));break}t=a}try{e()}catch(e){f.a.Fc(e)}}}function r(){e(),l=a=o.length=0}var n,o=[],a=0,s=1,l=0;return n=t.MutationObserver?function(e){var t=i.createElement("div");return new MutationObserver(e).observe(t,{attributes:!0}),function(){t.classList.toggle("foo")}}(r):i&&"onreadystatechange"in i.createElement("script")?function(e){var t=i.createElement("script");t.onreadystatechange=function(){t.onreadystatechange=null,i.documentElement.removeChild(t),t=null,e()},i.documentElement.appendChild(t)}:function(e){setTimeout(e,0)},{scheduler:n,yb:function(e){return a||f.ma.scheduler(r),o[a++]=e,s++},cancel:function(e){(e-=s-a)>=l&&e<a&&(o[e]=null)},resetForTesting:function(){var e=a-l;return l=a=o.length=0,e},Rd:e}}(),f.b("tasks",f.ma),f.b("tasks.schedule",f.ma.yb),f.b("tasks.runEarly",f.ma.Rd),f.Ta={throttle:function(e,t){e.throttleEvaluation=t;var i=null;return f.$({read:e,write:function(r){clearTimeout(i),i=f.a.setTimeout(function(){e(r)},t)}})},rateLimit:function(e,t){var i,r,n;"number"==typeof t?i=t:(i=t.timeout,r=t.method),e.Hb=!1,n="function"==typeof r?r:"notifyWhenChangesStop"==r?c:u,e.tb(function(e){return n(e,i,t)})},deferred:function(t,i){if(!0!==i)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");t.Hb||(t.Hb=!0,t.tb(function(i){var r,n=!1;return function(){if(!n){f.ma.cancel(r),r=f.ma.yb(i);try{n=!0,t.notifySubscribers(e,"dirty")}finally{n=!1}}}}))},notify:function(e,t){e.equalityComparer="always"==t?null:l}};var m={undefined:1,boolean:1,number:1,string:1};f.b("extenders",f.Ta),f.gc=function(e,t,i){this.da=e,this.kc=t,this.lc=i,this.Ib=!1,this.ab=this.Jb=null,f.J(this,"dispose",this.s),f.J(this,"disposeWhenNodeIsRemoved",this.l)},f.gc.prototype.s=function(){this.Ib||(this.ab&&f.a.I.xb(this.Jb,this.ab),this.Ib=!0,this.lc(),this.da=this.kc=this.lc=this.Jb=this.ab=null)},f.gc.prototype.l=function(e){this.Jb=e,f.a.I.za(e,this.ab=this.s.bind(this))},f.R=function(){f.a.zb(this,_),_.ob(this)};var _={ob:function(e){e.S={change:[]},e.rc=1},subscribe:function(e,t,i){var r=this;i=i||"change";var n=new f.gc(r,t?e.bind(t):e,function(){f.a.hb(r.S[i],n),r.cb&&r.cb(i)});return r.Qa&&r.Qa(i),r.S[i]||(r.S[i]=[]),r.S[i].push(n),n},notifySubscribers:function(e,t){if(t=t||"change","change"===t&&this.Gb(),this.Wa(t)){var i="change"===t&&this.dd||this.S[t].slice(0);try{f.v.wc();for(var r,n=0;r=i[n];++n)r.Ib||r.kc(e)}finally{f.v.end()}}},mb:function(){return this.rc},Cd:function(e){return this.mb()!==e},Gb:function(){++this.rc},tb:function(e){var t,i,r,n,o,a=this,s=f.N(a);a.bb||(a.bb=a.notifySubscribers,a.notifySubscribers=d);var l=e(function(){a.Ka=!1,s&&n===a&&(n=a.mc?a.mc():a());var e=i||o&&a.qb(r,n);o=i=t=!1,e&&a.bb(r=n)});a.pc=function(e,i){i&&a.Ka||(o=!i),a.dd=a.S.change.slice(0),a.Ka=t=!0,n=e,l()},a.oc=function(e){t||(r=e,a.bb(e,"beforeChange"))},a.qc=function(){o=!0},a.fd=function(){a.qb(r,a.w(!0))&&(i=!0)}},Wa:function(e){return this.S[e]&&this.S[e].length},Ad:function(e){if(e)return this.S[e]&&this.S[e].length||0;var t=0;return f.a.O(this.S,function(e,i){"dirty"!==e&&(t+=i.length)}),t},qb:function(e,t){return!this.equalityComparer||!this.equalityComparer(e,t)},toString:function(){return"[object Object]"},extend:function(e){var t=this;return e&&f.a.O(e,function(e,i){var r=f.Ta[e];"function"==typeof r&&(t=r(t,i)||t)}),t}};f.J(_,"init",_.ob),f.J(_,"subscribe",_.subscribe),f.J(_,"extend",_.extend),f.J(_,"getSubscriptionsCount",_.Ad),f.a.Ba&&f.a.setPrototypeOf(_,Function.prototype),f.R.fn=_,f.Pc=function(e){return null!=e&&"function"==typeof e.subscribe&&"function"==typeof e.notifySubscribers},f.b("subscribable",f.R),f.b("isSubscribable",f.Pc),f.U=f.v=function(){function e(e){r.push(i),i=e}function t(){i=r.pop()}var i,r=[],n=0;return{wc:e,end:t,ac:function(e){if(i){if(!f.Pc(e))throw Error("Only subscribable things can act as dependencies");i.nd.call(i.od,e,e.ed||(e.ed=++n))}},K:function(i,r,n){try{return e(),i.apply(r,n||[])}finally{t()}},pa:function(){if(i)return i.o.pa()},Va:function(){if(i)return i.o.Va()},rb:function(){if(i)return i.rb},o:function(){if(i)return i.o}}}(),f.b("computedContext",f.U),f.b("computedContext.getDependenciesCount",f.U.pa),f.b("computedContext.getDependencies",f.U.Va),f.b("computedContext.isInitial",f.U.rb),f.b("computedContext.registerDependency",f.U.ac),f.b("ignoreDependencies",f.Wd=f.v.K);var g=f.a.Da("_latestValue");f.sa=function(e){function t(){return 0<arguments.length?(t.qb(t[g],arguments[0])&&(t.xa(),t[g]=arguments[0],t.wa()),this):(f.v.ac(t),t[g])}return t[g]=e,f.a.Ba||f.a.extend(t,f.R.fn),f.R.fn.ob(t),f.a.zb(t,v),f.options.deferUpdates&&f.Ta.deferred(t,!0),t};var v={equalityComparer:l,w:function(){return this[g]},wa:function(){this.notifySubscribers(this[g],"spectate"),this.notifySubscribers(this[g])},xa:function(){this.notifySubscribers(this[g],"beforeChange")}};f.a.Ba&&f.a.setPrototypeOf(v,f.R.fn);var y=f.sa.Na="__ko_proto__";v[y]=f.sa,f.N=function(e){if((e="function"==typeof e&&e[y])&&e!==v[y]&&e!==f.o.fn[y])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!e},f.Ya=function(e){return"function"==typeof e&&(e[y]===v[y]||e[y]===f.o.fn[y]&&e.Mc)},f.b("observable",f.sa),f.b("isObservable",f.N),f.b("isWriteableObservable",f.Ya),f.b("isWritableObservable",f.Ya),f.b("observable.fn",v),f.J(v,"peek",v.w),f.J(v,"valueHasMutated",v.wa),f.J(v,"valueWillMutate",v.xa),f.Ia=function(e){if("object"!=typeof(e=e||[])||!("length"in e))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return e=f.sa(e),f.a.zb(e,f.Ia.fn),e.extend({trackArrayChanges:!0})},f.Ia.fn={remove:function(e){for(var t=this.w(),i=[],r="function"!=typeof e||f.N(e)?function(t){return t===e}:e,n=0;n<t.length;n++){var o=t[n];if(r(o)){if(0===i.length&&this.xa(),t[n]!==o)throw Error("Array modified during remove; cannot remove item");i.push(o),t.splice(n,1),n--}}return i.length&&this.wa(),i},removeAll:function(t){if(t===e){var i=this.w(),r=i.slice(0);return this.xa(),i.splice(0,i.length),this.wa(),r}return t?this.remove(function(e){return 0<=f.a.A(t,e)}):[]},destroy:function(e){var t=this.w(),i="function"!=typeof e||f.N(e)?function(t){return t===e}:e;this.xa();for(var r=t.length-1;0<=r;r--){var n=t[r];i(n)&&(n._destroy=!0)}this.wa()},destroyAll:function(t){return t===e?this.destroy(function(){return!0}):t?this.destroy(function(e){return 0<=f.a.A(t,e)}):[]},indexOf:function(e){var t=this();return f.a.A(t,e)},replace:function(e,t){var i=this.indexOf(e);0<=i&&(this.xa(),this.w()[i]=t,this.wa())},sorted:function(e){var t=this().slice(0);return e?t.sort(e):t.sort()},reversed:function(){return this().slice(0).reverse()}},f.a.Ba&&f.a.setPrototypeOf(f.Ia.fn,f.sa.fn),f.a.C("pop push reverse shift sort splice unshift".split(" "),function(e){f.Ia.fn[e]=function(){var t=this.w();this.xa(),this.yc(t,e,arguments);var i=t[e].apply(t,arguments);return this.wa(),i===t?this:i}}),f.a.C(["slice"],function(e){f.Ia.fn[e]=function(){var t=this();return t[e].apply(t,arguments)}}),f.Oc=function(e){return f.N(e)&&"function"==typeof e.remove&&"function"==typeof e.push},f.b("observableArray",f.Ia),f.b("isObservableArray",f.Oc),f.Ta.trackArrayChanges=function(t,i){function r(){function e(){if(u){var e=[].concat(t.w()||[]);if(t.Wa("arrayChange")){var i;(!l||1<u)&&(l=f.a.Ob(o,e,t.Nb)),i=l}o=e,l=null,u=0,i&&i.length&&t.notifySubscribers(i,"arrayChange")}}s?e():(s=!0,a=t.notifySubscribers,t.notifySubscribers=function(e,t){return t&&"change"!==t||++u,a.apply(this,arguments)},o=[].concat(t.w()||[]),l=null,n=t.subscribe(e))}if(t.Nb={},i&&"object"==typeof i&&f.a.extend(t.Nb,i),t.Nb.sparse=!0,!t.yc){var n,o,a,s=!1,l=null,u=0,c=t.Qa,d=t.cb;t.Qa=function(e){c&&c.call(t,e),"arrayChange"===e&&r()},t.cb=function(i){d&&d.call(t,i),"arrayChange"!==i||t.Wa("arrayChange")||(a&&(t.notifySubscribers=a,a=e),n&&n.s(),n=null,s=!1,o=e)},t.yc=function(e,t,i){function r(e,t,i){return n[n.length]={status:e,value:t,index:i}}if(s&&!u){var n=[],o=e.length,a=i.length,c=0;switch(t){case"push":c=o;case"unshift":for(t=0;t<a;t++)r("added",i[t],c+t);break;case"pop":c=o-1;case"shift":o&&r("deleted",e[c],c);break;case"splice":t=Math.min(Math.max(0,0>i[0]?o+i[0]:i[0]),o);for(var o=1===a?o:Math.min(t+(i[1]||0),o),a=t+a-2,c=Math.max(o,a),d=[],h=[],p=2;t<c;++t,++p)t<o&&h.push(r("deleted",e[t],t)),t<a&&d.push(r("added",i[p],t));f.a.Jc(h,d);break;default:return}l=n}}}};var C=f.a.Da("_state");f.o=f.$=function(t,i,r){function n(){if(0<arguments.length){if("function"!=typeof o)throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return o.apply(a.lb,arguments),this}return a.qa||f.v.ac(n),(a.ka||a.G&&n.Xa())&&n.ha(),a.X}if("object"==typeof t?r=t:(r=r||{},t&&(r.read=t)),"function"!=typeof r.read)throw Error("Pass a function that returns the value of the ko.computed");var o=r.write,a={X:e,ra:!0,ka:!0,pb:!1,hc:!1,qa:!1,vb:!1,G:!1,Vc:r.read,lb:i||r.owner,l:r.disposeWhenNodeIsRemoved||r.l||null,Sa:r.disposeWhen||r.Sa,Qb:null,F:{},V:0,Hc:null};return n[C]=a,n.Mc="function"==typeof o,f.a.Ba||f.a.extend(n,f.R.fn),f.R.fn.ob(n),f.a.zb(n,b),r.pure?(a.vb=!0,a.G=!0,f.a.extend(n,S)):r.deferEvaluation&&f.a.extend(n,T),f.options.deferUpdates&&f.Ta.deferred(n,!0),a.l&&(a.hc=!0,a.l.nodeType||(a.l=null)),a.G||r.deferEvaluation||n.ha(),a.l&&n.ja()&&f.a.I.za(a.l,a.Qb=function(){n.s()}),n};var b={equalityComparer:l,pa:function(){return this[C].V},Va:function(){var e=[];return f.a.O(this[C].F,function(t,i){e[i.La]=i.da}),e},Ub:function(e){if(!this[C].V)return!1;var t=this.Va();return-1!==f.a.A(t,e)||!!f.a.Lb(t,function(t){return t.Ub&&t.Ub(e)})},tc:function(e,t,i){if(this[C].vb&&t===this)throw Error("A 'pure' computed must not be called recursively");this[C].F[e]=i,i.La=this[C].V++,i.Ma=t.mb()},Xa:function(){var e,t,i=this[C].F;for(e in i)if(Object.prototype.hasOwnProperty.call(i,e)&&(t=i[e],this.Ja&&t.da.Ka||t.da.Cd(t.Ma)))return!0},Id:function(){this.Ja&&!this[C].pb&&this.Ja(!1)},ja:function(){var e=this[C];return e.ka||0<e.V},Qd:function(){this.Ka?this[C].ka&&(this[C].ra=!0):this.Gc()},Zc:function(e){if(e.Hb){var t=e.subscribe(this.Id,this,"dirty"),i=e.subscribe(this.Qd,this);return{da:e,s:function(){t.s(),i.s()}}}return e.subscribe(this.Gc,this)},Gc:function(){var e=this,t=e.throttleEvaluation;t&&0<=t?(clearTimeout(this[C].Hc),this[C].Hc=f.a.setTimeout(function(){e.ha(!0)},t)):e.Ja?e.Ja(!0):e.ha(!0)},ha:function(e){var t=this[C],i=t.Sa,r=!1;if(!t.pb&&!t.qa){if(t.l&&!f.a.Rb(t.l)||i&&i()){if(!t.hc)return void this.s()}else t.hc=!1;t.pb=!0;try{r=this.yd(e)}finally{t.pb=!1}return r}},yd:function(t){var i=this[C],r=!1,n=i.vb?e:!i.V,r={pd:this,kb:i.F,Pb:i.V};f.v.wc({od:r,nd:p,o:this,rb:n}),i.F={},i.V=0;var o=this.xd(i,r);return i.V?r=this.qb(i.X,o):(this.s(),r=!0),r&&(i.G?this.Gb():this.notifySubscribers(i.X,"beforeChange"),i.X=o,this.notifySubscribers(i.X,"spectate"),!i.G&&t&&this.notifySubscribers(i.X),this.qc&&this.qc()),n&&this.notifySubscribers(i.X,"awake"),r},xd:function(e,t){try{var i=e.Vc;return e.lb?i.call(e.lb):i()}finally{f.v.end(),t.Pb&&!e.G&&f.a.O(t.kb,h),e.ra=e.ka=!1}},w:function(e){var t=this[C];return(t.ka&&(e||!t.V)||t.G&&this.Xa())&&this.ha(),t.X},tb:function(e){f.R.fn.tb.call(this,e),this.mc=function(){return this[C].G||(this[C].ra?this.ha():this[C].ka=!1),this[C].X},this.Ja=function(e){this.oc(this[C].X),this[C].ka=!0,e&&(this[C].ra=!0),this.pc(this,!e)}},s:function(){var t=this[C];!t.G&&t.F&&f.a.O(t.F,function(e,t){t.s&&t.s()}),t.l&&t.Qb&&f.a.I.xb(t.l,t.Qb),t.F=e,t.V=0,t.qa=!0,t.ra=!1,t.ka=!1,t.G=!1,t.l=e,t.Sa=e,t.Vc=e,this.Mc||(t.lb=e)}},S={Qa:function(e){var t=this,i=t[C];if(!i.qa&&i.G&&"change"==e){if(i.G=!1,i.ra||t.Xa())i.F=null,i.V=0,t.ha()&&t.Gb();else{var r=[];f.a.O(i.F,function(e,t){r[t.La]=e}),f.a.C(r,function(e,r){var n=i.F[e],o=t.Zc(n.da);o.La=r,o.Ma=n.Ma,i.F[e]=o}),t.Xa()&&t.ha()&&t.Gb()}i.qa||t.notifySubscribers(i.X,"awake")}},cb:function(t){var i=this[C];i.qa||"change"!=t||this.Wa("change")||(f.a.O(i.F,function(e,t){t.s&&(i.F[e]={da:t.da,La:t.La,Ma:t.Ma},t.s())}),i.G=!0,this.notifySubscribers(e,"asleep"))},mb:function(){var e=this[C];return e.G&&(e.ra||this.Xa())&&this.ha(),f.R.fn.mb.call(this)}},T={Qa:function(e){"change"!=e&&"beforeChange"!=e||this.w()}};f.a.Ba&&f.a.setPrototypeOf(b,f.R.fn);var E=f.sa.Na;b[E]=f.o,f.Nc=function(e){return"function"==typeof e&&e[E]===b[E]},f.Ed=function(e){return f.Nc(e)&&e[C]&&e[C].vb},f.b("computed",f.o),f.b("dependentObservable",f.o),f.b("isComputed",f.Nc),f.b("isPureComputed",f.Ed),f.b("computed.fn",b),f.J(b,"peek",b.w),f.J(b,"dispose",b.s),f.J(b,"isActive",b.ja),f.J(b,"getDependenciesCount",b.pa),f.J(b,"getDependencies",b.Va),f.wb=function(e,t){return"function"==typeof e?f.o(e,t,{pure:!0}):(e=f.a.extend({},e),e.pure=!0,f.o(e,t))},f.b("pureComputed",f.wb),function(){function t(n,o,a){if(a=a||new r,"object"!=typeof(n=o(n))||null===n||n===e||n instanceof RegExp||n instanceof Date||n instanceof String||n instanceof Number||n instanceof Boolean)return n;var s=n instanceof Array?[]:{};return a.save(n,s),i(n,function(i){var r=o(n[i]);switch(typeof r){case"boolean":case"number":case"string":case"function":s[i]=r;break;case"object":case"undefined":var l=a.get(r);s[i]=l!==e?l:t(r,o,a)}}),s}function i(e,t){if(e instanceof Array){for(var i=0;i<e.length;i++)t(i);"function"==typeof e.toJSON&&t("toJSON")}else for(i in e)t(i)}function r(){this.keys=[],this.values=[]}f.$c=function(e){if(0==arguments.length)throw Error("When calling ko.toJS, pass the object you want to convert.");return t(e,function(e){for(var t=0;f.N(e)&&10>t;t++)e=e();return e})},f.toJSON=function(e,t,i){return e=f.$c(e),f.a.fc(e,t,i)},r.prototype={constructor:r,save:function(e,t){var i=f.a.A(this.keys,e);0<=i?this.values[i]=t:(this.keys.push(e),this.values.push(t))},get:function(t){return t=f.a.A(this.keys,t),0<=t?this.values[t]:e}}}(),f.b("toJS",f.$c),f.b("toJSON",f.toJSON),f.Vd=function(e,t,i){function r(t){var r=f.wb(e,i).extend({Ga:"always"}),n=r.subscribe(function(e){e&&(n.s(),t(e))});return r.notifySubscribers(r.w()),n}return"function"!=typeof Promise||t?r(t.bind(i)):new Promise(r)},f.b("when",f.Vd),function(){f.u={L:function(t){switch(f.a.P(t)){case"option":return!0===t.__ko__hasDomDataOptionValue__?f.a.g.get(t,f.f.options.Yb):7>=f.a.W?t.getAttributeNode("value")&&t.getAttributeNode("value").specified?t.value:t.text:t.value;case"select":return 0<=t.selectedIndex?f.u.L(t.options[t.selectedIndex]):e;default:return t.value}},ya:function(t,i,r){switch(f.a.P(t)){case"option":"string"==typeof i?(f.a.g.set(t,f.f.options.Yb,e),"__ko__hasDomDataOptionValue__"in t&&delete t.__ko__hasDomDataOptionValue__,t.value=i):(f.a.g.set(t,f.f.options.Yb,i),t.__ko__hasDomDataOptionValue__=!0,t.value="number"==typeof i?i:"");break;case"select":""!==i&&null!==i||(i=e);for(var n,o=-1,a=0,s=t.options.length;a<s;++a)if((n=f.u.L(t.options[a]))==i||""===n&&i===e){o=a;break}(r||0<=o||i===e&&1<t.size)&&(t.selectedIndex=o,6===f.a.W&&f.a.setTimeout(function(){t.selectedIndex=o},0));break;default:null!==i&&i!==e||(i=""),t.value=i}}}}(),f.b("selectExtensions",f.u),f.b("selectExtensions.readValue",f.u.L),f.b("selectExtensions.writeValue",f.u.ya),f.m=function(){function e(e){e=f.a.Cb(e),123===e.charCodeAt(0)&&(e=e.slice(1,-1)),e+="\n,";var t,i=[],a=e.match(r),s=[],l=0;if(1<a.length){for(var u,c=0;u=a[c];++c){var d=u.charCodeAt(0);if(44===d){if(0>=l){i.push(t&&s.length?{key:t,value:s.join("")}:{unknown:t||s.join("")}),t=l=0,s=[];continue}}else if(58===d){if(!l&&!t&&1===s.length){t=s.pop();continue}}else{if(47===d&&1<u.length&&(47===u.charCodeAt(1)||42===u.charCodeAt(1)))continue;47===d&&c&&1<u.length?(d=a[c-1].match(n))&&!o[d[0]]&&(e=e.substr(e.indexOf(u)+1),a=e.match(r),c=-1,u="/"):40===d||123===d||91===d?++l:41===d||125===d||93===d?--l:t||s.length||34!==d&&39!==d||(u=u.slice(1,-1))}s.push(u)}if(0<l)throw Error("Unbalanced parentheses, braces, or brackets")}return i}var t=["true","false","null","undefined"],i=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,r=RegExp("\"(?:\\\\.|[^\"])*\"|'(?:\\\\.|[^'])*'|`(?:\\\\.|[^`])*`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.*\n|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,\"'`{}()/:[\\]]*[^\\s,\"'`{}()/:[\\]]|[^\\s]","g"),n=/[\])"'A-Za-z0-9_$]+$/,o={in:1,return:1,typeof:1},a={};return{Ra:[],va:a,Zb:e,ub:function(r,n){function o(e,r){var n;if(!c){var d=f.getBindingHandler(e);if(d&&d.preprocess&&!(r=d.preprocess(r,e,o)))return;(d=a[e])&&(n=r,0<=f.a.A(t,n)?n=!1:(d=n.match(i),n=null!==d&&(d[1]?"Object("+d[1]+")"+d[2]:n)),d=n),d&&l.push("'"+("string"==typeof a[e]?a[e]:e)+"':function(_z){"+n+"=_z}")}u&&(r="function(){return "+r+" }"),s.push("'"+e+"':"+r)}n=n||{};var s=[],l=[],u=n.valueAccessors,c=n.bindingParams,d="string"==typeof r?e(r):r;return f.a.C(d,function(e){o(e.key||e.unknown,e.value)}),l.length&&o("_ko_property_writers","{"+l.join(",")+" }"),s.join(",")},Hd:function(e,t){for(var i=0;i<e.length;i++)if(e[i].key==t)return!0;return!1},$a:function(e,t,i,r,n){e&&f.N(e)?!f.Ya(e)||n&&e.w()===r||e(r):(e=t.get("_ko_property_writers"))&&e[i]&&e[i](r)}}}(),f.b("expressionRewriting",f.m),f.b("expressionRewriting.bindingRewriteValidators",f.m.Ra),f.b("expressionRewriting.parseObjectLiteral",f.m.Zb),f.b("expressionRewriting.preProcessBindings",f.m.ub),f.b("expressionRewriting._twoWayBindings",f.m.va),f.b("jsonExpressionRewriting",f.m),f.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",f.m.ub),function(){function e(e){return 8==e.nodeType&&a.test(o?e.text:e.nodeValue)}function t(e){return 8==e.nodeType&&s.test(o?e.text:e.nodeValue)}function r(i,r){for(var n=i,o=1,a=[];n=n.nextSibling;){if(t(n)&&(f.a.g.set(n,u,!0),0===--o))return a;a.push(n),e(n)&&o++}if(!r)throw Error("Cannot find closing comment tag to match: "+i.nodeValue);return null}function n(e,t){var i=r(e,t);return i?0<i.length?i[i.length-1].nextSibling:e.nextSibling:null}var o=i&&"\x3c!--test--\x3e"===i.createComment("test").text,a=o?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,s=o?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,l={ul:!0,ol:!0},u="__ko_matchedEndComment__";f.h={ea:{},childNodes:function(t){return e(t)?r(t):t.childNodes},Ea:function(t){if(e(t)){t=f.h.childNodes(t);for(var i=0,r=t.length;i<r;i++)f.removeNode(t[i])}else f.a.Sb(t)},ua:function(t,i){if(e(t)){f.h.Ea(t);for(var r=t.nextSibling,n=0,o=i.length;n<o;n++)r.parentNode.insertBefore(i[n],r)}else f.a.ua(t,i)},Uc:function(t,i){e(t)?t.parentNode.insertBefore(i,t.nextSibling):t.firstChild?t.insertBefore(i,t.firstChild):t.appendChild(i)},Vb:function(t,i,r){r?e(t)?t.parentNode.insertBefore(i,r.nextSibling):r.nextSibling?t.insertBefore(i,r.nextSibling):t.appendChild(i):f.h.Uc(t,i)},firstChild:function(i){if(e(i))return!i.nextSibling||t(i.nextSibling)?null:i.nextSibling;if(i.firstChild&&t(i.firstChild))throw Error("Found invalid end comment, as the first child of "+i);return i.firstChild},nextSibling:function(i){if(e(i)&&(i=n(i)),i.nextSibling&&t(i.nextSibling)){var r=i.nextSibling;if(t(r)&&!f.a.g.get(r,u))throw Error("Found end comment without a matching opening comment, as child of "+i);return null}return i.nextSibling},Bd:e,Ud:function(e){return(e=(o?e.text:e.nodeValue).match(a))?e[1]:null},Rc:function(i){if(l[f.a.P(i)]){var r=i.firstChild;if(r)do{if(1===r.nodeType){var o;o=r.firstChild;var a=null;if(o)do{if(a)a.push(o);else if(e(o)){var s=n(o,!0);s?o=s:a=[o]}else t(o)&&(a=[o])}while(o=o.nextSibling);if(o=a)for(a=r.nextSibling,s=0;s<o.length;s++)a?i.insertBefore(o[s],a):i.appendChild(o[s])}}while(r=r.nextSibling)}}}}(),f.b("virtualElements",f.h),f.b("virtualElements.allowedBindings",f.h.ea),f.b("virtualElements.emptyNode",f.h.Ea),f.b("virtualElements.insertAfter",f.h.Vb),f.b("virtualElements.prepend",f.h.Uc),f.b("virtualElements.setDomNodeChildren",f.h.ua),function(){f.ga=function(){this.md={}},f.a.extend(f.ga.prototype,{nodeHasBindings:function(e){switch(e.nodeType){case 1:return null!=e.getAttribute("data-bind")||f.i.getComponentNameForNode(e);case 8:return f.h.Bd(e);default:return!1}},getBindings:function(e,t){var i=this.getBindingsString(e,t),i=i?this.parseBindingsString(i,t,e):null;return f.i.sc(i,e,t,!1)},getBindingAccessors:function(e,t){var i=this.getBindingsString(e,t),i=i?this.parseBindingsString(i,t,e,{valueAccessors:!0}):null;return f.i.sc(i,e,t,!0)},getBindingsString:function(e){switch(e.nodeType){case 1:return e.getAttribute("data-bind");case 8:return f.h.Ud(e);default:return null}},parseBindingsString:function(e,t,i,r){try{var n,o=this.md,a=e+(r&&r.valueAccessors||"");if(!(n=o[a])){var s,l="with($context){with($data||{}){return{"+f.m.ub(e,r)+"}}}";s=new Function("$context","$element",l),n=o[a]=s}return n(t,i)}catch(t){throw t.message="Unable to parse bindings.\nBindings value: "+e+"\nMessage: "+t.message,t}}}),f.ga.instance=new f.ga}(),f.b("bindingProvider",f.ga),function(){function r(e){var t=(e=f.a.g.get(e,S))&&e.M;t&&(e.M=null,t.Sc())}function o(e,t,i){this.node=e,this.xc=t,this.ib=[],this.T=!1,t.M||f.a.I.za(e,r),i&&i.M&&(i.M.ib.push(e),this.Kb=i)}function a(e){return function(){return e}}function s(e){return e()}function l(e){return f.a.Ha(f.v.K(e),function(t,i){return function(){return e()[i]}})}function u(e,t,i){return"function"==typeof e?l(e.bind(null,t,i)):f.a.Ha(e,a)}function c(e,t){return l(this.getBindings.bind(this,e,t))}function d(e,t){var i=f.h.firstChild(t);if(i){ -var r,n=f.ga.instance,o=n.preprocessNode;if(o){for(;r=i;)i=f.h.nextSibling(r),o.call(n,r);i=f.h.firstChild(t)}for(;r=i;)i=f.h.nextSibling(r),h(e,r)}f.j.Ga(t,f.j.T)}function h(e,t){var i=e,r=1===t.nodeType;r&&f.h.Rc(t),(r||f.ga.instance.nodeHasBindings(t))&&(i=m(t,null,e).bindingContextForDescendants),i&&!C[f.a.P(t)]&&d(i,t)}function p(e){var t=[],i={},r=[];return f.a.O(e,function n(o){if(!i[o]){var a=f.getBindingHandler(o);a&&(a.after&&(r.push(o),f.a.C(a.after,function(t){if(e[t]){if(-1!==f.a.A(r,t))throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+r.join(", "));n(t)}}),r.length--),t.push({key:o,Lc:a})),i[o]=!0}}),t}function m(t,i,r){var n=f.a.g.Tb(t,S,{}),o=n.gd;if(!i){if(o)throw Error("You cannot apply bindings multiple times to the same element.");n.gd=!0}o||(n.context=r);var a;if(i&&"function"!=typeof i)a=i;else{var l=f.ga.instance,u=l.getBindingAccessors||c,d=f.$(function(){return(a=i?i(r,t):u.call(l,t,r))&&(r[g]&&r[g](),r[y]&&r[y]()),a},null,{l:t});a&&d.ja()||(d=null)}var h,m=r;if(a){var _=function(){return f.a.Ha(d?d():a,s)},v=d?function(e){return function(){return s(d()[e])}}:function(e){return a[e]};_.get=function(e){return a[e]&&s(v(e))},_.has=function(e){return e in a},f.j.T in a&&f.j.subscribe(t,f.j.T,function(){var e=(0,a[f.j.T])();if(e){var i=f.h.childNodes(t);i.length&&e(i,f.Dc(i[0]))}}),f.j.oa in a&&(m=f.j.Bb(t,r),f.j.subscribe(t,f.j.oa,function(){var e=(0,a[f.j.oa])();e&&f.h.firstChild(t)&&e(t)})),n=p(a),f.a.C(n,function(i){var r=i.Lc.init,n=i.Lc.update,o=i.key;if(8===t.nodeType&&!f.h.ea[o])throw Error("The binding '"+o+"' cannot be used with virtual elements");try{"function"==typeof r&&f.v.K(function(){var i=r(t,v(o),_,m.$data,m);if(i&&i.controlsDescendantBindings){if(h!==e)throw Error("Multiple bindings ("+h+" and "+o+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");h=o}}),"function"==typeof n&&f.$(function(){n(t,v(o),_,m.$data,m)},null,{l:t})}catch(e){throw e.message='Unable to process binding "'+o+": "+a[o]+'"\nMessage: '+e.message,e}})}return n=h===e,{shouldBindDescendants:n,bindingContextForDescendants:n&&m}}function _(t,i){return t&&t instanceof f.fa?t:new f.fa(t,e,e,i)}var g=f.a.Da("_subscribable"),v=f.a.Da("_ancestorBindingInfo"),y=f.a.Da("_dataDependency");f.f={};var C={script:!0,textarea:!0,template:!0};f.getBindingHandler=function(e){return f.f[e]};var b={};f.fa=function(t,i,r,n,o){function a(){var e=d?c():c,t=f.a.c(e);return i?(f.a.extend(l,i),v in i&&(l[v]=i[v])):(l.$parents=[],l.$root=t,l.ko=f),l[g]=s,u?t=l.$data:(l.$rawData=e,l.$data=t),r&&(l[r]=t),n&&n(l,i,t),i&&i[g]&&!f.U.o().Ub(i[g])&&i[g](),h&&(l[y]=h),l.$data}var s,l=this,u=t===b,c=u?e:t,d="function"==typeof c&&!f.N(c),h=o&&o.dataDependency;o&&o.exportDependencies?a():(s=f.wb(a),s.w(),s.ja()?s.equalityComparer=null:l[g]=e)},f.fa.prototype.createChildContext=function(e,t,i,r){if(!r&&t&&"object"==typeof t&&(r=t,t=r.as,i=r.extend),t&&r&&r.noChildContext){var n="function"==typeof e&&!f.N(e);return new f.fa(b,this,null,function(r){i&&i(r),r[t]=n?e():e},r)}return new f.fa(e,this,t,function(e,t){e.$parentContext=t,e.$parent=t.$data,e.$parents=(t.$parents||[]).slice(0),e.$parents.unshift(e.$parent),i&&i(e)},r)},f.fa.prototype.extend=function(e,t){return new f.fa(b,this,null,function(t){f.a.extend(t,"function"==typeof e?e(t):e)},t)};var S=f.a.g.Z();o.prototype.Sc=function(){this.Kb&&this.Kb.M&&this.Kb.M.rd(this.node)},o.prototype.rd=function(e){f.a.hb(this.ib,e),!this.ib.length&&this.T&&this.Bc()},o.prototype.Bc=function(){this.T=!0,this.xc.M&&!this.ib.length&&(this.xc.M=null,f.a.I.xb(this.node,r),f.j.Ga(this.node,f.j.oa),this.Sc())},f.j={T:"childrenComplete",oa:"descendantsComplete",subscribe:function(e,t,i,r){return e=f.a.g.Tb(e,S,{}),e.Fa||(e.Fa=new f.R),e.Fa.subscribe(i,r,t)},Ga:function(t,i){var r=f.a.g.get(t,S);if(r&&(r.Fa&&r.Fa.notifySubscribers(t,i),i==f.j.T))if(r.M)r.M.Bc();else if(r.M===e&&r.Fa&&r.Fa.Wa(f.j.oa))throw Error("descendantsComplete event not supported for bindings on this node")},Bb:function(e,t){var i=f.a.g.Tb(e,S,{});return i.M||(i.M=new o(e,i,t[v])),t[v]==i?t:t.extend(function(e){e[v]=i})}},f.Sd=function(e){return(e=f.a.g.get(e,S))&&e.context},f.eb=function(e,t,i){return 1===e.nodeType&&f.h.Rc(e),m(e,t,_(i))},f.kd=function(e,t,i){return i=_(i),f.eb(e,u(t,i,e),i)},f.Pa=function(e,t){1!==t.nodeType&&8!==t.nodeType||d(_(e),t)},f.uc=function(e,r,o){if(!n&&t.jQuery&&(n=t.jQuery),2>arguments.length){if(!(r=i.body))throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!r||1!==r.nodeType&&8!==r.nodeType)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");h(_(e,o),r)},f.Cc=function(t){return!t||1!==t.nodeType&&8!==t.nodeType?e:f.Sd(t)},f.Dc=function(t){return(t=f.Cc(t))?t.$data:e},f.b("bindingHandlers",f.f),f.b("bindingEvent",f.j),f.b("bindingEvent.subscribe",f.j.subscribe),f.b("bindingEvent.startPossiblyAsyncContentBinding",f.j.Bb),f.b("applyBindings",f.uc),f.b("applyBindingsToDescendants",f.Pa),f.b("applyBindingAccessorsToNode",f.eb),f.b("applyBindingsToNode",f.kd),f.b("contextFor",f.Cc),f.b("dataFor",f.Dc)}(),function(e){function t(t,r){var a,s=Object.prototype.hasOwnProperty.call(n,t)?n[t]:e;s?s.subscribe(r):(s=n[t]=new f.R,s.subscribe(r),i(t,function(e,i){var r=!(!i||!i.synchronous);o[t]={definition:e,Fd:r},delete n[t],a||r?s.notifySubscribers(e):f.ma.yb(function(){s.notifySubscribers(e)})}),a=!0)}function i(e,t){r("getConfig",[e],function(i){i?r("loadComponent",[e,i],function(e){t(e,i)}):t(null,null)})}function r(t,i,n,o){o||(o=f.i.loaders.slice(0));var a=o.shift();if(a){var s=a[t];if(s){var l=!1;if(s.apply(a,i.concat(function(e){l?n(null):null!==e?n(e):r(t,i,n,o)}))!==e&&(l=!0,!a.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else r(t,i,n,o)}else n(null)}var n={},o={};f.i={get:function(i,r){var n=Object.prototype.hasOwnProperty.call(o,i)?o[i]:e;n?n.Fd?f.v.K(function(){r(n.definition)}):f.ma.yb(function(){r(n.definition)}):t(i,r)},Ac:function(e){delete o[e]},nc:r},f.i.loaders=[],f.b("components",f.i),f.b("components.get",f.i.get),f.b("components.clearCachedDefinition",f.i.Ac)}(),function(){function e(e,t,i,r){function n(){0==--s&&r(o)}var o={},s=2,l=i.template;i=i.viewModel,l?a(t,l,function(t){f.i.nc("loadTemplate",[e,t],function(e){o.template=e,n()})}):n(),i?a(t,i,function(t){f.i.nc("loadViewModel",[e,t],function(e){o[c]=e,n()})}):n()}function r(e,t,i){if("function"==typeof t)i(function(e){return new t(e)});else if("function"==typeof t[c])i(t[c]);else if("instance"in t){var n=t.instance;i(function(){return n})}else"viewModel"in t?r(e,t.viewModel,i):e("Unknown viewModel value: "+t)}function n(e){switch(f.a.P(e)){case"script":return f.a.ta(e.text);case"textarea":return f.a.ta(e.value);case"template":if(o(e.content))return f.a.Ca(e.content.childNodes)}return f.a.Ca(e.childNodes)}function o(e){return t.DocumentFragment?e instanceof DocumentFragment:e&&11===e.nodeType}function a(e,i,r){"string"==typeof i.require?s||t.require?(s||t.require)([i.require],r):e("Uses require, but no AMD loader is present"):r(i)}function l(e){return function(t){throw Error("Component '"+e+"': "+t)}}var u={};f.i.register=function(e,t){if(!t)throw Error("Invalid configuration for "+e);if(f.i.sb(e))throw Error("Component "+e+" is already registered");u[e]=t},f.i.sb=function(e){return Object.prototype.hasOwnProperty.call(u,e)},f.i.unregister=function(e){delete u[e],f.i.Ac(e)},f.i.Ec={getConfig:function(e,t){t(f.i.sb(e)?u[e]:null)},loadComponent:function(t,i,r){var n=l(t);a(n,i,function(i){e(t,n,i,r)})},loadTemplate:function(e,r,a){if(e=l(e),"string"==typeof r)a(f.a.ta(r));else if(r instanceof Array)a(r);else if(o(r))a(f.a.la(r.childNodes));else if(r.element)if(r=r.element,t.HTMLElement?r instanceof HTMLElement:r&&r.tagName&&1===r.nodeType)a(n(r));else if("string"==typeof r){var s=i.getElementById(r);s?a(n(s)):e("Cannot find element with ID "+r)}else e("Unknown element type: "+r);else e("Unknown template value: "+r)},loadViewModel:function(e,t,i){r(l(e),t,i)}};var c="createViewModel";f.b("components.register",f.i.register),f.b("components.isRegistered",f.i.sb),f.b("components.unregister",f.i.unregister),f.b("components.defaultLoader",f.i.Ec),f.i.loaders.push(f.i.Ec),f.i.cd=u}(),function(){function e(e,i){var r=e.getAttribute("params");if(r){var r=t.parseBindingsString(r,i,e,{valueAccessors:!0,bindingParams:!0}),r=f.a.Ha(r,function(t){return f.o(t,null,{l:e})}),n=f.a.Ha(r,function(t){var i=t.w();return t.ja()?f.o({read:function(){return f.a.c(t())},write:f.Ya(i)&&function(e){t()(e)},l:e}):i});return Object.prototype.hasOwnProperty.call(n,"$raw")||(n.$raw=r),n}return{$raw:{}}}f.i.getComponentNameForNode=function(e){var t=f.a.P(e);if(f.i.sb(t)&&(-1!=t.indexOf("-")||"[object HTMLUnknownElement]"==""+e||8>=f.a.W&&e.tagName===t))return t},f.i.sc=function(t,i,r,n){if(1===i.nodeType){var o=f.i.getComponentNameForNode(i);if(o){if(t=t||{},t.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var a={name:o,params:e(i,r)};t.component=n?function(){return a}:a}}return t};var t=new f.ga;9>f.a.W&&(f.i.register=function(e){return function(t){return e.apply(this,arguments)}}(f.i.register),i.createDocumentFragment=function(e){return function(){var t,i=e(),r=f.i.cd;for(t in r);return i}}(i.createDocumentFragment))}(),function(){function e(e,t,i){if(!(t=t.template))throw Error("Component '"+e+"' has no template");e=f.a.Ca(t),f.h.ua(i,e)}function t(e,t,i){var r=e.createViewModel;return r?r.call(e,t,i):t}var i=0;f.f.component={init:function(r,n,o,a,s){function l(){var e=u&&u.dispose;"function"==typeof e&&e.call(u),d&&d.s(),c=u=d=null}var u,c,d,h=f.a.la(f.h.childNodes(r));return f.h.Ea(r),f.a.I.za(r,l),f.o(function(){var o,a,p=f.a.c(n());if("string"==typeof p?o=p:(o=f.a.c(p.name),a=f.a.c(p.params)),!o)throw Error("No component name specified");var m=f.j.Bb(r,s),_=c=++i;f.i.get(o,function(i){if(c===_){if(l(),!i)throw Error("Unknown component '"+o+"'");e(o,i,r);var n=t(i,a,{element:r,templateNodes:h});i=m.createChildContext(n,{extend:function(e){e.$component=n,e.$componentTemplateNodes=h}}),n&&n.koDescendantsComplete&&(d=f.j.subscribe(r,f.j.oa,n.koDescendantsComplete,n)),u=n,f.Pa(i,r)}})},null,{l:r}),{controlsDescendantBindings:!0}}},f.h.ea.component=!0}();var A={class:"className",for:"htmlFor"};f.f.attr={update:function(t,i){var r=f.a.c(i())||{};f.a.O(r,function(i,r){r=f.a.c(r);var n=i.indexOf(":"),n="lookupNamespaceURI"in t&&0<n&&t.lookupNamespaceURI(i.substr(0,n)),o=!1===r||null===r||r===e;o?n?t.removeAttributeNS(n,i):t.removeAttribute(i):r=r.toString(),8>=f.a.W&&i in A?(i=A[i],o?t.removeAttribute(i):t[i]=r):o||(n?t.setAttributeNS(n,i,r):t.setAttribute(i,r)),"name"===i&&f.a.Xc(t,o?"":r)})}},function(){f.f.checked={after:["value","attr"],init:function(t,i,r){function n(){var n=t.checked,o=a();if(!f.U.rb()&&(n||!l&&!f.U.pa())){var u=f.v.K(i);if(c){var h=d?u.w():u,m=p;p=o,m!==o?n&&(f.a.Oa(h,o,!0),f.a.Oa(h,m,!1)):f.a.Oa(h,o,n),d&&f.Ya(u)&&u(h)}else s&&(o===e?o=n:n||(o=e)),f.m.$a(u,r,"checked",o,!0)}}function o(){var r=f.a.c(i()),n=a();c?(t.checked=0<=f.a.A(r,n),p=n):t.checked=s&&n===e?!!r:a()===r}var a=f.wb(function(){return r.has("checkedValue")?f.a.c(r.get("checkedValue")):h?r.has("value")?f.a.c(r.get("value")):t.value:void 0}),s="checkbox"==t.type,l="radio"==t.type;if(s||l){var u=i(),c=s&&f.a.c(u)instanceof Array,d=!(c&&u.push&&u.splice),h=l||c,p=c?a():e;l&&!t.name&&f.f.uniqueName.init(t,function(){return!0}),f.o(n,null,{l:t}),f.a.H(t,"click",n),f.o(o,null,{l:t}),u=e}}},f.m.va.checked=!0,f.f.checkedValue={update:function(e,t){e.value=f.a.c(t())}}}(),f.f.class={update:function(e,t){var i=f.a.Cb(f.a.c(t()));f.a.Eb(e,e.__ko__cssValue,!1),e.__ko__cssValue=i,f.a.Eb(e,i,!0)}},f.f.css={update:function(e,t){var i=f.a.c(t());null!==i&&"object"==typeof i?f.a.O(i,function(t,i){i=f.a.c(i),f.a.Eb(e,t,i)}):f.f.class.update(e,t)}},f.f.enable={update:function(e,t){var i=f.a.c(t());i&&e.disabled?e.removeAttribute("disabled"):i||e.disabled||(e.disabled=!0)}},f.f.disable={update:function(e,t){f.f.enable.update(e,function(){return!f.a.c(t())})}},f.f.event={init:function(e,t,i,r,n){var o=t()||{};f.a.O(o,function(o){"string"==typeof o&&f.a.H(e,o,function(e){var a,s=t()[o];if(s){try{var l=f.a.la(arguments);r=n.$data,l.unshift(r),a=s.apply(r,l)}finally{!0!==a&&(e.preventDefault?e.preventDefault():e.returnValue=!1)}!1===i.get(o+"Bubble")&&(e.cancelBubble=!0,e.stopPropagation&&e.stopPropagation())}})})}},f.f.foreach={Qc:function(e){return function(){var t=e(),i=f.a.$b(t);return i&&"number"!=typeof i.length?(f.a.c(t),{foreach:i.data,as:i.as,noChildContext:i.noChildContext,includeDestroyed:i.includeDestroyed,afterAdd:i.afterAdd,beforeRemove:i.beforeRemove,afterRender:i.afterRender,beforeMove:i.beforeMove,afterMove:i.afterMove,templateEngine:f.ba.Na}):{foreach:t,templateEngine:f.ba.Na}}},init:function(e,t){return f.f.template.init(e,f.f.foreach.Qc(t))},update:function(e,t,i,r,n){return f.f.template.update(e,f.f.foreach.Qc(t),i,r,n)}},f.m.Ra.foreach=!1,f.h.ea.foreach=!0,f.f.hasfocus={init:function(e,t,i){function r(r){e.__ko_hasfocusUpdating=!0;var n=e.ownerDocument;if("activeElement"in n){var o;try{o=n.activeElement}catch(e){o=n.body}r=o===e}n=t(),f.m.$a(n,i,"hasfocus",r,!0),e.__ko_hasfocusLastValue=r,e.__ko_hasfocusUpdating=!1}var n=r.bind(null,!0),o=r.bind(null,!1);f.a.H(e,"focus",n),f.a.H(e,"focusin",n),f.a.H(e,"blur",o),f.a.H(e,"focusout",o),e.__ko_hasfocusLastValue=!1},update:function(e,t){var i=!!f.a.c(t());e.__ko_hasfocusUpdating||e.__ko_hasfocusLastValue===i||(i?e.focus():e.blur(),!i&&e.__ko_hasfocusLastValue&&e.ownerDocument.body.focus(),f.v.K(f.a.Fb,null,[e,i?"focusin":"focusout"]))}},f.m.va.hasfocus=!0,f.f.hasFocus=f.f.hasfocus,f.m.va.hasFocus="hasfocus",f.f.html={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){f.a.dc(e,t())}},function(){function e(e,t,i){f.f[e]={init:function(e,r,n,o,a){var s,l,u,c,d,h={};if(t){o=n.get("as");var p=n.get("noChildContext");d=!(o&&p),h={as:o,noChildContext:p,exportDependencies:d}}return c=(u="render"==n.get("completeOn"))||n.has(f.j.oa),f.o(function(){var n,o=f.a.c(r()),p=!i!=!o,m=!l;(d||p!==s)&&(c&&(a=f.j.Bb(e,a)),p&&(t&&!d||(h.dataDependency=f.U.o()),n=t?a.createChildContext("function"==typeof o?o:r,h):f.U.pa()?a.extend(null,h):a),m&&f.U.pa()&&(l=f.a.Ca(f.h.childNodes(e),!0)),p?(m||f.h.ua(e,f.a.Ca(l)),f.Pa(n,e)):(f.h.Ea(e),u||f.j.Ga(e,f.j.T)),s=p)},null,{l:e}),{controlsDescendantBindings:!0}}},f.m.Ra[e]=!1,f.h.ea[e]=!0}e("if"),e("ifnot",!1,!0),e("with",!0)}(),f.f.let={init:function(e,t,i,r,n){return t=n.extend(t),f.Pa(t,e),{controlsDescendantBindings:!0}}},f.h.ea.let=!0;var w={};f.f.options={init:function(e){if("select"!==f.a.P(e))throw Error("options binding applies only to SELECT elements");for(;0<e.length;)e.remove(0);return{controlsDescendantBindings:!0}},update:function(t,i,r){function n(){return f.a.fb(t.options,function(e){return e.selected})}function o(e,t,i){var r=typeof t;return"function"==r?t(e):"string"==r?e[t]:i}function a(e,i){if(m&&c)f.u.ya(t,f.a.c(r.get("value")),!0);else if(p.length){var n=0<=f.a.A(p,f.u.L(i[0]));f.a.Yc(i[0],n),m&&!n&&f.v.K(f.a.Fb,null,[t,"change"])}}var s=t.multiple,l=0!=t.length&&s?t.scrollTop:null,u=f.a.c(i()),c=r.get("valueAllowUnset")&&r.has("value"),d=r.get("optionsIncludeDestroyed");i={};var h,p=[];c||(s?p=f.a.Mb(n(),f.u.L):0<=t.selectedIndex&&p.push(f.u.L(t.options[t.selectedIndex]))),u&&(void 0===u.length&&(u=[u]),h=f.a.fb(u,function(t){return d||t===e||null===t||!f.a.c(t._destroy)}),r.has("optionsCaption")&&null!==(u=f.a.c(r.get("optionsCaption")))&&u!==e&&h.unshift(w));var m=!1;i.beforeRemove=function(e){t.removeChild(e)},u=a,r.has("optionsAfterRender")&&"function"==typeof r.get("optionsAfterRender")&&(u=function(t,i){a(0,i),f.v.K(r.get("optionsAfterRender"),null,[i[0],t!==w?t:e])}),f.a.cc(t,h,function(i,n,a){return a.length&&(p=!c&&a[0].selected?[f.u.L(a[0])]:[],m=!0),n=t.ownerDocument.createElement("option"),i===w?(f.a.Ab(n,r.get("optionsCaption")),f.u.ya(n,e)):(a=o(i,r.get("optionsValue"),i),f.u.ya(n,f.a.c(a)),i=o(i,r.get("optionsText"),a),f.a.Ab(n,i)),[n]},i,u),f.v.K(function(){if(c)f.u.ya(t,f.a.c(r.get("value")),!0);else{var e;e=s?p.length&&n().length<p.length:p.length&&0<=t.selectedIndex?f.u.L(t.options[t.selectedIndex])!==p[0]:p.length||0<=t.selectedIndex,e&&f.a.Fb(t,"change")}}),f.a.vd(t),l&&20<Math.abs(l-t.scrollTop)&&(t.scrollTop=l)}},f.f.options.Yb=f.a.g.Z(),f.f.selectedOptions={after:["options","foreach"],init:function(e,t,i){f.a.H(e,"change",function(){var r=t(),n=[];f.a.C(e.getElementsByTagName("option"),function(e){e.selected&&n.push(f.u.L(e))}),f.m.$a(r,i,"selectedOptions",n)})},update:function(e,t){if("select"!=f.a.P(e))throw Error("values binding applies only to SELECT elements");var i=f.a.c(t()),r=e.scrollTop;i&&"number"==typeof i.length&&f.a.C(e.getElementsByTagName("option"),function(e){var t=0<=f.a.A(i,f.u.L(e));e.selected!=t&&f.a.Yc(e,t)}),e.scrollTop=r}},f.m.va.selectedOptions=!0,f.f.style={update:function(t,i){var r=f.a.c(i()||{});f.a.O(r,function(i,r){if(r=f.a.c(r),null!==r&&r!==e&&!1!==r||(r=""),n)n(t).css(i,r);else if(/^--/.test(i))t.style.setProperty(i,r);else{i=i.replace(/-(\w)/g,function(e,t){return t.toUpperCase()});var o=t.style[i];t.style[i]=r,r===o||t.style[i]!=o||isNaN(r)||(t.style[i]=r+"px")}})}},f.f.submit={init:function(e,t,i,r,n){if("function"!=typeof t())throw Error("The value for a submit binding must be a function");f.a.H(e,"submit",function(i){var r,o=t();try{r=o.call(n.$data,e)}finally{!0!==r&&(i.preventDefault?i.preventDefault():i.returnValue=!1)}})}},f.f.text={init:function(){return{controlsDescendantBindings:!0}},update:function(e,t){f.a.Ab(e,t())}},f.h.ea.text=!0,function(){if(t&&t.navigator){var i,r,n,o,a,s=function(e){if(e)return parseFloat(e[1])},l=t.navigator.userAgent;(i=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(a=s(l.match(/Edge\/([^ ]+)$/)))||s(l.match(/Chrome\/([^ ]+)/))||(r=s(l.match(/Version\/([^ ]+) Safari/)))||(n=s(l.match(/Firefox\/([^ ]+)/)))||(o=f.a.W||s(l.match(/MSIE ([^ ]+)/)))||(o=s(l.match(/rv:([^ )]+)/)))}if(8<=o&&10>o)var u=f.a.g.Z(),c=f.a.g.Z(),d=function(e){var t=this.activeElement;(t=t&&f.a.g.get(t,c))&&t(e)},h=function(e,t){var i=e.ownerDocument;f.a.g.get(i,u)||(f.a.g.set(i,u,!0),f.a.H(i,"selectionchange",d)),f.a.g.set(e,c,t)};f.f.textInput={init:function(t,s,l){function u(e,i){f.a.H(t,e,i)}function c(){var i=f.a.c(s());null!==i&&i!==e||(i=""),_!==e&&i===_?f.a.setTimeout(c,4):t.value!==i&&(y=!0,t.value=i,y=!1,g=t.value)}function d(){m||(_=t.value,m=f.a.setTimeout(p,4))}function p(){clearTimeout(m),_=m=e;var i=t.value;g!==i&&(g=i,f.m.$a(s(),l,"textInput",i))}var m,_,g=t.value,v=9==f.a.W?d:p,y=!1;o&&u("keypress",p),11>o&&u("propertychange",function(e){y||"value"!==e.propertyName||v(e)}),8==o&&(u("keyup",p),u("keydown",p)),h&&(h(t,v),u("dragend",d)),(!o||9<=o)&&u("input",v),5>r&&"textarea"===f.a.P(t)?(u("keydown",d),u("paste",d),u("cut",d)):11>i?u("keydown",d):4>n?(u("DOMAutoComplete",p),u("dragdrop",p),u("drop",p)):a&&"number"===t.type&&u("keydown",d),u("change",p),u("blur",p),f.o(c,null,{l:t})}},f.m.va.textInput=!0,f.f.textinput={preprocess:function(e,t,i){i("textInput",e)}}}(),f.f.uniqueName={init:function(e,t){if(t()){var i="ko_unique_"+ ++f.f.uniqueName.qd;f.a.Xc(e,i)}}},f.f.uniqueName.qd=0,f.f.using={init:function(e,t,i,r,n){var o;return i.has("as")&&(o={as:i.get("as"),noChildContext:i.get("noChildContext")}),t=n.createChildContext(t,o),f.Pa(t,e),{controlsDescendantBindings:!0}}},f.h.ea.using=!0,f.f.value={after:["options","foreach"],init:function(t,i,r){var n=f.a.P(t),o="input"==n;if(!o||"checkbox"!=t.type&&"radio"!=t.type){var a=["change"],s=r.get("valueUpdate"),l=!1,u=null;s&&("string"==typeof s&&(s=[s]),f.a.gb(a,s),a=f.a.vc(a));var c=function(){u=null,l=!1;var e=i(),n=f.u.L(t);f.m.$a(e,r,"value",n)};!f.a.W||!o||"text"!=t.type||"off"==t.autocomplete||t.form&&"off"==t.form.autocomplete||-1!=f.a.A(a,"propertychange")||(f.a.H(t,"propertychange",function(){l=!0}),f.a.H(t,"focus",function(){l=!1}),f.a.H(t,"blur",function(){l&&c()})),f.a.C(a,function(e){var i=c;f.a.Td(e,"after")&&(i=function(){u=f.u.L(t),f.a.setTimeout(c,0)},e=e.substring(5)),f.a.H(t,e,i)});var d;d=o&&"file"==t.type?function(){var r=f.a.c(i());null===r||r===e||""===r?t.value="":f.v.K(c)}:function(){var o=f.a.c(i()),a=f.u.L(t);null!==u&&o===u?f.a.setTimeout(d,0):o===a&&a!==e||("select"===n?(a=r.get("valueAllowUnset"),f.u.ya(t,o,a),a||o===f.u.L(t)||f.v.K(c)):f.u.ya(t,o))},f.o(d,null,{l:t})}else f.eb(t,{checkedValue:i})},update:function(){}},f.m.va.value=!0,f.f.visible={update:function(e,t){var i=f.a.c(t()),r="none"!=e.style.display;i&&!r?e.style.display="":!i&&r&&(e.style.display="none")}},f.f.hidden={update:function(e,t){f.f.visible.update(e,function(){return!f.a.c(t())})}},function(e){f.f[e]={init:function(t,i,r,n,o){return f.f.event.init.call(this,t,function(){var t={};return t[e]=i(),t},r,n,o)}}}("click"),f.ca=function(){},f.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},f.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},f.ca.prototype.makeTemplateSource=function(e,t){if("string"==typeof e){t=t||i;var r=t.getElementById(e);if(!r)throw Error("Cannot find template with ID "+e);return new f.B.D(r)}if(1==e.nodeType||8==e.nodeType)return new f.B.ia(e);throw Error("Unknown template type: "+e)},f.ca.prototype.renderTemplate=function(e,t,i,r){return e=this.makeTemplateSource(e,r),this.renderTemplateSource(e,t,i,r)},f.ca.prototype.isTemplateRewritten=function(e,t){return!1===this.allowTemplateRewriting||this.makeTemplateSource(e,t).data("isRewritten")},f.ca.prototype.rewriteTemplate=function(e,t,i){e=this.makeTemplateSource(e,i),t=t(e.text()),e.text(t),e.data("isRewritten",!0)},f.b("templateEngine",f.ca),f.ic=function(){function e(e,t,i,r){e=f.m.Zb(e);for(var n=f.m.Ra,o=0;o<e.length;o++){var a=e[o].key;if(Object.prototype.hasOwnProperty.call(n,a)){var s=n[a];if("function"==typeof s){if(a=s(e[o].value))throw Error(a)}else if(!s)throw Error("This template engine does not support the '"+a+"' binding within its templates")}}return i="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+f.m.ub(e,{valueAccessors:!0})+" } })()},'"+i.toLowerCase()+"')",r.createJavaScriptEvaluatorBlock(i)+t}var t=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,i=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{wd:function(e,t,i){t.isTemplateRewritten(e,i)||t.rewriteTemplate(e,function(e){return f.ic.Kd(e,t)},i)},Kd:function(r,n){return r.replace(t,function(t,i,r,o,a){return e(a,i,r,n)}).replace(i,function(t,i){return e(i,"\x3c!-- ko --\x3e","#comment",n)})},ld:function(e,t){return f.aa.Wb(function(i,r){var n=i.nextSibling;n&&n.nodeName.toLowerCase()===t&&f.eb(n,e,r)})}}}(),f.b("__tr_ambtns",f.ic.ld),function(){f.B={},f.B.D=function(e){if(this.D=e){var t=f.a.P(e);this.Db="script"===t?1:"textarea"===t?2:"template"==t&&e.content&&11===e.content.nodeType?3:4}},f.B.D.prototype.text=function(){var e=1===this.Db?"text":2===this.Db?"value":"innerHTML";if(0==arguments.length)return this.D[e];var t=arguments[0];"innerHTML"===e?f.a.dc(this.D,t):this.D[e]=t};var t=f.a.g.Z()+"_";f.B.D.prototype.data=function(e){if(1===arguments.length)return f.a.g.get(this.D,t+e);f.a.g.set(this.D,t+e,arguments[1])};var i=f.a.g.Z();f.B.D.prototype.nodes=function(){var t=this.D;if(0==arguments.length){var r=f.a.g.get(t,i)||{},n=r.jb||(3===this.Db?t.content:4===this.Db?t:e);return n&&!r.hd||(r=this.text())&&(n=f.a.Ld(r,t.ownerDocument),this.text(""),f.a.g.set(t,i,{jb:n,hd:!0})),n}f.a.g.set(t,i,{jb:arguments[0]})},f.B.ia=function(e){this.D=e},f.B.ia.prototype=new f.B.D,f.B.ia.prototype.constructor=f.B.ia,f.B.ia.prototype.text=function(){if(0==arguments.length){var t=f.a.g.get(this.D,i)||{};return t.jc===e&&t.jb&&(t.jc=t.jb.innerHTML),t.jc}f.a.g.set(this.D,i,{jc:arguments[0]})},f.b("templateSources",f.B),f.b("templateSources.domElement",f.B.D),f.b("templateSources.anonymousTemplate",f.B.ia)}(),function(){function t(e,t,i){var r;for(t=f.h.nextSibling(t);e&&(r=e)!==t;)e=f.h.nextSibling(r),i(r,e)}function i(e,i){if(e.length){var r=e[0],n=e[e.length-1],o=r.parentNode,a=f.ga.instance,s=a.preprocessNode;if(s){if(t(r,n,function(e,t){var i=e.previousSibling,o=s.call(a,e);o&&(e===r&&(r=o[0]||t),e===n&&(n=o[o.length-1]||i))}),e.length=0,!r)return;r===n?e.push(r):(e.push(r,n),f.a.Ua(e,o))}t(r,n,function(e){1!==e.nodeType&&8!==e.nodeType||f.uc(i,e)}),t(r,n,function(e){1!==e.nodeType&&8!==e.nodeType||f.aa.bd(e,[i])}),f.a.Ua(e,o)}}function r(e){return e.nodeType?e:0<e.length?e[0]:null}function n(e,t,n,o,s){s=s||{};var l=(e&&r(e)||n||{}).ownerDocument,u=s.templateEngine||a;if(f.ic.wd(n,u,l),n=u.renderTemplate(n,o,s,l),"number"!=typeof n.length||0<n.length&&"number"!=typeof n[0].nodeType)throw Error("Template engine must return an array of DOM nodes");switch(l=!1,t){case"replaceChildren":f.h.ua(e,n),l=!0;break;case"replaceNode":f.a.Wc(e,n),l=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+t)}return l&&(i(n,o),s.afterRender&&f.v.K(s.afterRender,null,[n,o[s.as||"$data"]]),"replaceChildren"==t&&f.j.Ga(e,f.j.T)),n}function o(e,t,i){return f.N(e)?e():"function"==typeof e?e(t,i):e}var a;f.ec=function(t){if(t!=e&&!(t instanceof f.ca))throw Error("templateEngine must inherit from ko.templateEngine");a=t},f.bc=function(t,i,s,l,u){if(s=s||{},(s.templateEngine||a)==e)throw Error("Set a template engine before calling renderTemplate");if(u=u||"replaceChildren",l){var c=r(l);return f.$(function(){var e=i&&i instanceof f.fa?i:new f.fa(i,null,null,null,{exportDependencies:!0}),a=o(t,e.$data,e),e=n(l,u,a,e,s);"replaceNode"==u&&(l=e,c=r(l))},null,{Sa:function(){return!c||!f.a.Rb(c)},l:c&&"replaceNode"==u?c.parentNode:c})}return f.aa.Wb(function(e){f.bc(t,i,s,e,"replaceNode")})},f.Pd=function(t,r,a,s,l){function u(e,t){f.v.K(f.a.cc,null,[s,e,d,a,c,t]),f.j.Ga(s,f.j.T)}function c(e,t){i(t,h),a.afterRender&&a.afterRender(t,e),h=null}function d(e,i){h=l.createChildContext(e,{as:p,noChildContext:a.noChildContext,extend:function(e){e.$index=i,p&&(e[p+"Index"]=i)}});var r=o(t,e,h);return n(s,"ignoreTargetNode",r,h,a)}var h,p=a.as,m=!1===a.includeDestroyed||f.options.foreachHidesDestroyed&&!a.includeDestroyed;if(m||a.beforeRemove||!f.Oc(r))return f.$(function(){var t=f.a.c(r)||[];void 0===t.length&&(t=[t]),m&&(t=f.a.fb(t,function(t){return t===e||null===t||!f.a.c(t._destroy)})),u(t)},null,{l:s});u(r.w());var _=r.subscribe(function(e){u(r(),e)},null,"arrayChange");return _.l(s),_};var s=f.a.g.Z(),l=f.a.g.Z();f.f.template={init:function(e,t){var i=f.a.c(t());if("string"==typeof i||i.name)f.h.Ea(e);else if("nodes"in i){if(i=i.nodes||[],f.N(i))throw Error('The "nodes" option must be a plain, non-observable array.');var r=i[0]&&i[0].parentNode;r&&f.a.g.get(r,l)||(r=f.a.Xb(i),f.a.g.set(r,l,!0)),new f.B.ia(e).nodes(r)}else{if(i=f.h.childNodes(e),!(0<i.length))throw Error("Anonymous template defined, but no template content was provided");r=f.a.Xb(i),new f.B.ia(e).nodes(r)}return{controlsDescendantBindings:!0}},update:function(t,i,r,n,o){var a=i();i=f.a.c(a),r=!0,n=null,"string"==typeof i?i={}:(a=i.name,"if"in i&&(r=f.a.c(i.if)),r&&"ifnot"in i&&(r=!f.a.c(i.ifnot))),"foreach"in i?n=f.Pd(a||t,r&&i.foreach||[],i,t,o):r?(r=o,"data"in i&&(r=o.createChildContext(i.data,{as:i.as,noChildContext:i.noChildContext,exportDependencies:!0})),n=f.bc(a||t,r,i,t)):f.h.Ea(t),o=n,(i=f.a.g.get(t,s))&&"function"==typeof i.s&&i.s(),f.a.g.set(t,s,!o||o.ja&&!o.ja()?e:o)}},f.m.Ra.template=function(e){return e=f.m.Zb(e),1==e.length&&e[0].unknown||f.m.Hd(e,"name")?null:"This template engine does not support anonymous templates nested within its templates"},f.h.ea.template=!0}(),f.b("setTemplateEngine",f.ec),f.b("renderTemplate",f.bc),f.a.Jc=function(e,t,i){if(e.length&&t.length){var r,n,o,a,s;for(r=n=0;(!i||r<i)&&(a=e[n]);++n){for(o=0;s=t[o];++o)if(a.value===s.value){a.moved=s.index,s.moved=a.index,t.splice(o,1),r=o=0;break}r+=o}}},f.a.Ob=function(){function e(e,t,i,r,n){var o,a,s,l,u,c=Math.min,d=Math.max,h=[],p=e.length,m=t.length,_=m-p||1,g=p+m+1;for(o=0;o<=p;o++)for(l=s,h.push(s=[]),u=c(m,o+_),a=d(0,o-1);a<=u;a++)s[a]=a?o?e[o-1]===t[a-1]?l[a-1]:c(l[a]||g,s[a-1]||g)+1:a+1:o+1;for(c=[],d=[],_=[],o=p,a=m;o||a;)m=h[o][a]-1,a&&m===h[o][a-1]?d.push(c[c.length]={status:i,value:t[--a],index:a}):o&&m===h[o-1][a]?_.push(c[c.length]={status:r,value:e[--o],index:o}):(--a,--o,n.sparse||c.push({status:"retained",value:t[a]}));return f.a.Jc(_,d,!n.dontLimitMoves&&10*p),c.reverse()}return function(t,i,r){return r="boolean"==typeof r?{dontLimitMoves:r}:r||{},t=t||[],i=i||[],t.length<i.length?e(t,i,"added","deleted",r):e(i,t,"deleted","added",r)}}(),f.b("utils.compareArrays",f.a.Ob),function(){function t(t,i,r,n,o){var a=[],s=f.$(function(){var e=i(r,o,f.a.Ua(a,t))||[];0<a.length&&(f.a.Wc(a,e),n&&f.v.K(n,null,[r,e,o])),a.length=0,f.a.gb(a,e)},null,{l:t,Sa:function(){return!f.a.jd(a)}});return{Y:a,$:s.ja()?s:e}}var i=f.a.g.Z(),r=f.a.g.Z();f.a.cc=function(n,o,a,s,l,u){function c(e){p={Aa:e,nb:f.sa(y++)},g.push(p),_||E.push(p)}function d(e){p=m[e],y!==p.nb.w()&&T.push(p),p.nb(y++),f.a.Ua(p.Y,n),g.push(p)}function h(e,t){if(e)for(var i=0,r=t.length;i<r;i++)f.a.C(t[i].Y,function(r){e(r,i,t[i].Aa)})}o=o||[],void 0===o.length&&(o=[o]),s=s||{};var p,m=f.a.g.get(n,i),_=!m,g=[],v=0,y=0,C=[],b=[],S=[],T=[],E=[],A=0;if(_)f.a.C(o,c);else{if(!u||m&&m._countWaitingForRemove){var w=f.a.Mb(m,function(e){return e.Aa});u=f.a.Ob(w,o,{dontLimitMoves:s.dontLimitMoves,sparse:!0})}for(var x,P,D,w=0;x=u[w];w++)switch(P=x.moved,D=x.index,x.status){case"deleted":for(;v<D;)d(v++);P===e&&(p=m[v],p.$&&(p.$.s(),p.$=e),f.a.Ua(p.Y,n).length&&(s.beforeRemove&&(g.push(p),A++,p.Aa===r?p=null:S.push(p)),p&&C.push.apply(C,p.Y))),v++;break;case"added":for(;y<D;)d(v++);P!==e?(b.push(g.length),d(P)):c(x.value)}for(;y<o.length;)d(v++);g._countWaitingForRemove=A}f.a.g.set(n,i,g),h(s.beforeMove,T),f.a.C(C,s.beforeRemove?f.na:f.removeNode);var I,M,R;try{R=n.ownerDocument.activeElement}catch(e){}if(b.length)for(;(w=b.shift())!=e;){for(p=g[w],I=e;w;)if((M=g[--w].Y)&&M.length){I=M[M.length-1];break}for(o=0;v=p.Y[o];I=v,o++)f.h.Vb(n,v,I)}for(w=0,b=f.h.firstChild(n);p=g[w];w++){for(p.Y||f.a.extend(p,t(n,a,p.Aa,l,p.nb)),o=0;v=p.Y[o];b=v.nextSibling,I=v,o++)v!==b&&f.h.Vb(n,v,I);!p.Dd&&l&&(l(p.Aa,p.Y,p.nb),p.Dd=!0,I=p.Y[p.Y.length-1])}for(R&&n.ownerDocument.activeElement!=R&&R.focus(),h(s.beforeRemove,S),w=0;w<S.length;++w)S[w].Aa=r;h(s.afterMove,T),h(s.afterAdd,E)}}(),f.b("utils.setDomNodeChildrenFromArrayMapping",f.a.cc),f.ba=function(){this.allowTemplateRewriting=!1},f.ba.prototype=new f.ca,f.ba.prototype.constructor=f.ba,f.ba.prototype.renderTemplateSource=function(e,t,i,r){return(t=(9>f.a.W?0:e.nodes)?e.nodes():null)?f.a.la(t.cloneNode(!0).childNodes):(e=e.text(),f.a.ta(e,r))},f.ba.Na=new f.ba,f.ec(f.ba.Na),f.b("nativeTemplateEngine",f.ba),function(){f.Za=function(){var e=this.Gd=function(){if(!n||!n.tmpl)return 0;try{if(0<=n.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch(e){}return 1}();this.renderTemplateSource=function(t,r,o,a){if(a=a||i,o=o||{},2>e)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var s=t.data("precompiled");return s||(s=t.text()||"",s=n.template(null,"{{ko_with $item.koBindingContext}}"+s+"{{/ko_with}}"),t.data("precompiled",s)),t=[r.$data],r=n.extend({koBindingContext:r},o.templateOptions),r=n.tmpl(s,t,r),r.appendTo(a.createElement("div")),n.fragments={},r},this.createJavaScriptEvaluatorBlock=function(e){return"{{ko_code ((function() { return "+e+" })()) }}"},this.addTemplate=function(e,t){i.write("<script type='text/html' id='"+e+"'>"+t+"<\/script>")},0<e&&(n.tmpl.tag.ko_code={open:"__.push($1 || '');"}, -n.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},f.Za.prototype=new f.ca,f.Za.prototype.constructor=f.Za;var e=new f.Za;0<e.Gd&&f.ec(e),f.b("jqueryTmplTemplateEngine",f.Za)}()})}()}(),define("ThirdParty/knockout-es5",[],function(){"use strict";function e(e,i){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,o=t(e,!0);return i=i||Object.getOwnPropertyNames(e),i.forEach(function(t){if(t!==d&&t!==h&&!(t in o)){var i=e[t],a=i instanceof Array,s=n.isObservable(i)?i:a?n.observableArray(i):n.observable(i);Object.defineProperty(e,t,{configurable:!0,enumerable:!0,get:s,set:n.isWriteableObservable(s)?s:void 0}),o[t]=s,a&&r(n,s)}}),e}function t(e,t){var i=e[d];return!i&&t&&(i={},Object.defineProperty(e,d,{value:i})),i}function i(t,i,r){var n=this,o={owner:t,deferEvaluation:!0};if("function"==typeof r)o.read=r;else{if("value"in r)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if("function"!=typeof r.get)throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=r.get,o.write=r.set}return t[i]=n.computed(o),e.call(n,t,[i]),t}function r(e,t){var i=null;e.computed(function(){i&&(i.dispose(),i=null);var r=t();r instanceof Array&&(i=n(e,t,r))})}function n(e,t,i){return o(e,i).subscribe(t)}function o(e,t){var i=t[h];if(!i){i=new e.subscribable,Object.defineProperty(t,h,{value:i});var r={};a(t,i,r),s(e,t,i,r)}return i}function a(e,t,i){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(r){var n=e[r];e[r]=function(){var e=n.apply(this,arguments);return!0!==i.pause&&t.notifySubscribers(this),e}})}function s(e,t,i,r){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(n){Object.defineProperty(t,n,{enumerable:!1,value:function(){var o;r.pause=!0;try{o=e.observableArray.fn[n].apply(e.observableArray(t),arguments)}finally{r.pause=!1}return i.notifySubscribers(t),o}})})}function l(e,i){if(!e)return null;var r=t(e,!1);return r&&r[i]||null}function u(e,t){var i=l(e,t);i&&i.valueHasMutated()}function c(t){t.track=e,t.getObservable=l,t.valueHasMutated=u,t.defineProperty=i}var d="__knockoutObservables",h="__knockoutSubscribable";return{attachToKo:c}}),define("Widgets/SvgPathBindingHandler",[],function(){"use strict";var e="http://www.w3.org/2000/svg";return{register:function(t){t.bindingHandlers.cesiumSvgPath={init:function(i,r){var n=document.createElementNS(e,"svg:svg");n.setAttribute("class","cesium-svgPath-svg");var o=document.createElementNS(e,"path");return n.appendChild(o),t.virtualElements.setDomNodeChildren(i,[n]),t.computed({read:function(){var e=t.unwrap(r());o.setAttribute("d",t.unwrap(e.path));var i=t.unwrap(e.width),a=t.unwrap(e.height);n.setAttribute("width",i),n.setAttribute("height",a),n.setAttribute("viewBox","0 0 "+i+" "+a),e.css&&n.setAttribute("class","cesium-svgPath-svg "+t.unwrap(e.css))},disposeWhenNodeIsRemoved:i}),{controlsDescendantBindings:!0}}},t.virtualElements.allowedBindings.cesiumSvgPath=!0}}}),define("ThirdParty/knockout",["./knockout-3.5.0","./knockout-es5","../Widgets/SvgPathBindingHandler"],function(e,t,i){"use strict";return t.attachToKo(e),i.register(e),e}),function(e,t){"function"==typeof define&&define.amd?define("ThirdParty/NoSleep",[],t):"object"==typeof exports?exports.NoSleep=t():e.NoSleep=t()}(this,function(){return function(e){function t(r){if(i[r])return i[r].exports;var n=i[r]={i:r,l:!1,exports:{}};return e[r].call(n.exports,n,n.exports,t),n.l=!0,n.exports}var i={};return t.m=e,t.c=i,t.d=function(e,i,r){t.o(e,i)||Object.defineProperty(e,i,{configurable:!1,enumerable:!0,get:r})},t.n=function(e){var i=e&&e.__esModule?function(){return e.default}:function(){return e};return t.d(i,"a",i),i},t.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},t.p="",t(t.s=0)}([function(e,t,i){"use strict";function r(e,t){if(!(e instanceof t))throw new TypeError("Cannot call a class as a function")}var n=function(){function e(e,t){for(var i=0;i<t.length;i++){var r=t[i];r.enumerable=r.enumerable||!1,r.configurable=!0,"value"in r&&(r.writable=!0),Object.defineProperty(e,r.key,r)}}return function(t,i,r){return i&&e(t.prototype,i),r&&e(t,r),t}}(),o=i(1),a="undefined"!=typeof navigator&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,s=function(){function e(){r(this,e),a?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("playsinline",""),this.noSleepVideo.setAttribute("src",o),this.noSleepVideo.addEventListener("timeupdate",function(e){this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())}.bind(this)))}return n(e,[{key:"enable",value:function(){a?(this.disable(),this.noSleepTimer=window.setInterval(function(){window.location.href="/",window.setTimeout(window.stop,0)},15e3)):this.noSleepVideo.play()}},{key:"disable",value:function(){a?this.noSleepTimer&&(window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause()}}]),e}();e.exports=s},function(e,t,i){"use strict";e.exports="data:video/mp4;base64,AAAAIGZ0eXBtcDQyAAACAGlzb21pc28yYXZjMW1wNDEAAAAIZnJlZQAACKBtZGF0AAAC8wYF///v3EXpvebZSLeWLNgg2SPu73gyNjQgLSBjb3JlIDE0MiByMjQ3OSBkZDc5YTYxIC0gSC4yNjQvTVBFRy00IEFWQyBjb2RlYyAtIENvcHlsZWZ0IDIwMDMtMjAxNCAtIGh0dHA6Ly93d3cudmlkZW9sYW4ub3JnL3gyNjQuaHRtbCAtIG9wdGlvbnM6IGNhYmFjPTEgcmVmPTEgZGVibG9jaz0xOjA6MCBhbmFseXNlPTB4MToweDExMSBtZT1oZXggc3VibWU9MiBwc3k9MSBwc3lfcmQ9MS4wMDowLjAwIG1peGVkX3JlZj0wIG1lX3JhbmdlPTE2IGNocm9tYV9tZT0xIHRyZWxsaXM9MCA4eDhkY3Q9MCBjcW09MCBkZWFkem9uZT0yMSwxMSBmYXN0X3Bza2lwPTEgY2hyb21hX3FwX29mZnNldD0wIHRocmVhZHM9NiBsb29rYWhlYWRfdGhyZWFkcz0xIHNsaWNlZF90aHJlYWRzPTAgbnI9MCBkZWNpbWF0ZT0xIGludGVybGFjZWQ9MCBibHVyYXlfY29tcGF0PTAgY29uc3RyYWluZWRfaW50cmE9MCBiZnJhbWVzPTMgYl9weXJhbWlkPTIgYl9hZGFwdD0xIGJfYmlhcz0wIGRpcmVjdD0xIHdlaWdodGI9MSBvcGVuX2dvcD0wIHdlaWdodHA9MSBrZXlpbnQ9MzAwIGtleWludF9taW49MzAgc2NlbmVjdXQ9NDAgaW50cmFfcmVmcmVzaD0wIHJjX2xvb2thaGVhZD0xMCByYz1jcmYgbWJ0cmVlPTEgY3JmPTIwLjAgcWNvbXA9MC42MCBxcG1pbj0wIHFwbWF4PTY5IHFwc3RlcD00IHZidl9tYXhyYXRlPTIwMDAwIHZidl9idWZzaXplPTI1MDAwIGNyZl9tYXg9MC4wIG5hbF9ocmQ9bm9uZSBmaWxsZXI9MCBpcF9yYXRpbz0xLjQwIGFxPTE6MS4wMACAAAAAOWWIhAA3//p+C7v8tDDSTjf97w55i3SbRPO4ZY+hkjD5hbkAkL3zpJ6h/LR1CAABzgB1kqqzUorlhQAAAAxBmiQYhn/+qZYADLgAAAAJQZ5CQhX/AAj5IQAD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"}])}),define("Widgets/ClockViewModel",["../Core/Clock","../Core/defined","../Core/defineProperties","../Core/destroyObject","../Core/EventHelper","../Core/JulianDate","../ThirdParty/knockout"],function(e,t,i,r,n,o,a){"use strict";function s(i){t(i)||(i=new e),this._clock=i,this._eventHelper=new n,this._eventHelper.add(i.onTick,this.synchronize,this),this.systemTime=a.observable(o.now()),this.systemTime.equalityComparer=o.equals,this.startTime=a.observable(i.startTime),this.startTime.equalityComparer=o.equals,this.startTime.subscribe(function(e){i.startTime=e,this.synchronize()},this),this.stopTime=a.observable(i.stopTime),this.stopTime.equalityComparer=o.equals,this.stopTime.subscribe(function(e){i.stopTime=e,this.synchronize()},this),this.currentTime=a.observable(i.currentTime),this.currentTime.equalityComparer=o.equals,this.currentTime.subscribe(function(e){i.currentTime=e,this.synchronize()},this),this.multiplier=a.observable(i.multiplier),this.multiplier.subscribe(function(e){i.multiplier=e,this.synchronize()},this),this.clockStep=a.observable(i.clockStep),this.clockStep.subscribe(function(e){i.clockStep=e,this.synchronize()},this),this.clockRange=a.observable(i.clockRange),this.clockRange.subscribe(function(e){i.clockRange=e,this.synchronize()},this),this.canAnimate=a.observable(i.canAnimate),this.canAnimate.subscribe(function(e){i.canAnimate=e,this.synchronize()},this),this.shouldAnimate=a.observable(i.shouldAnimate),this.shouldAnimate.subscribe(function(e){i.shouldAnimate=e,this.synchronize()},this),a.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}return i(s.prototype,{clock:{get:function(){return this._clock}}}),s.prototype.synchronize=function(){var e=this._clock;this.systemTime=o.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate},s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){this._eventHelper.removeAll(),r(this)},s}),define("Widgets/Command",["../Core/DeveloperError"],function(e){"use strict";function t(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,e.throwInstantiationError()}return t}),define("Widgets/createCommand",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../Core/Event","../ThirdParty/knockout"],function(e,t,i,r,n,o){"use strict";function a(t,r){function a(){var e,i={args:arguments,cancel:!1};return s.raiseEvent(i),i.cancel||(e=t.apply(null,arguments),l.raiseEvent(e)),e}r=e(r,!0);var s=new n,l=new n;return a.canExecute=r,o.track(a,["canExecute"]),i(a,{beforeExecute:{value:s},afterExecute:{value:l}}),a}return a}),define("Widgets/InspectorShared",["../Core/defined","../Core/Check"],function(e,t){"use strict";var i={};return i.createCheckbox=function(t,i,r){var n=document.createElement("div"),o=document.createElement("label"),a=document.createElement("input");a.type="checkbox";var s="checked: "+i;return e(r)&&(s+=", enable: "+r),a.setAttribute("data-bind",s),o.appendChild(a),o.appendChild(document.createTextNode(t)),n.appendChild(o),n},i.createSection=function(e,t,i,r){var n=document.createElement("div");n.className="cesium-cesiumInspector-section",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-section-collapsed": !'+i+" }"),e.appendChild(n);var o=document.createElement("h3");o.className="cesium-cesiumInspector-sectionHeader",o.appendChild(document.createTextNode(t)),o.setAttribute("data-bind","click: "+r),n.appendChild(o);var a=document.createElement("div");return a.className="cesium-cesiumInspector-sectionContent",n.appendChild(a),a},i}),define("Widgets/subscribeAndEvaluate",["../ThirdParty/knockout"],function(e){"use strict";function t(t,i,r,n,o){return r.call(n,t[i]),e.getObservable(t,i).subscribe(r,n,o)}return t}),define("Widgets/ToggleButtonViewModel",["../Core/defaultValue","../Core/defined","../Core/defineProperties","../Core/DeveloperError","../ThirdParty/knockout"],function(e,t,i,r,n){"use strict";function o(t,i){this._command=t,i=e(i,e.EMPTY_OBJECT),this.toggled=e(i.toggled,!1),this.tooltip=e(i.tooltip,""),n.track(this,["toggled","tooltip"])}return i(o.prototype,{command:{get:function(){return this._command}}}),o}),define("Widgets/Animation/Animation",["../../Core/Color","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../getElement","../subscribeAndEvaluate"],function(e,t,i,r,n,o,a){"use strict";function s(t){return e.fromCssColorString(window.getComputedStyle(t).getPropertyValue("color"))}function l(e){var t=document.createElementNS(v,e.tagName);for(var i in e)if(e.hasOwnProperty(i)&&"tagName"!==i)if("children"===i){var r,n=e.children.length;for(r=0;r<n;++r)t.appendChild(l(e.children[r]))}else 0===i.indexOf("xlink:")?t.setAttributeNS(y,i.substring(6),e[i]):"textContent"===i?t.textContent=e[i]:t.setAttribute(i,e[i]);return t}function u(e,t,i){var r=document.createElementNS(v,"text");r.setAttribute("x",e),r.setAttribute("y",t),r.setAttribute("class","cesium-animation-svgText");var n=document.createElementNS(v,"tspan");return n.textContent=i,r.appendChild(n),r}function c(e,t,i){e.setAttribute("transform","translate(100,100) rotate("+i+")"),t.setAttribute("transform","rotate("+i+")")}function d(e,t){var i=t.alpha,r=1-i;return P.red=e.red*r+t.red*i,P.green=e.green*r+t.green*i,P.blue=e.blue*r+t.blue*i,P.toCssColorString()}function h(e,t,i){return l({tagName:"g",class:"cesium-animation-rectButton",transform:"translate("+e+","+t+")",children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{tagName:"use",class:"cesium-animation-buttonPath","xlink:href":i},{tagName:"title",textContent:""}]})}function p(e,t,i){return l({tagName:"g",class:"cesium-animation-rectButton",transform:"translate("+e+","+t+")",children:[{tagName:"use",class:"cesium-animation-buttonGlow","xlink:href":"#animation_pathWingButton"},{tagName:"use",class:"cesium-animation-buttonMain","xlink:href":"#animation_pathWingButton"},{tagName:"use",class:"cesium-animation-buttonPath","xlink:href":i},{tagName:"title",textContent:""}]})}function f(e,t){var i=e._viewModel,r=i.shuttleRingDragging;if(!r||g===e)if("mousedown"===t.type||r&&"mousemove"===t.type||"touchstart"===t.type&&1===t.touches.length||r&&"touchmove"===t.type&&1===t.touches.length){var n,o,a=e._centerX,s=e._centerY,l=e._svgNode,u=l.getBoundingClientRect();if("touchstart"===t.type||"touchmove"===t.type?(n=t.touches[0].clientX,o=t.touches[0].clientY):(n=t.clientX,o=t.clientY),!r&&(n>u.right||n<u.left||o<u.top||o>u.bottom))return;var c=e._shuttleRingPointer.getBoundingClientRect(),d=n-a-u.left,h=o-s-u.top,p=180*Math.atan2(h,d)/Math.PI+90;p>180&&(p-=360);var f=i.shuttleRingAngle;r||n<c.right&&n>c.left&&o>c.top&&o<c.bottom?(g=e,i.shuttleRingDragging=!0,i.shuttleRingAngle=p):p<f?i.slower():p>f&&i.faster(),t.preventDefault()}else e===g&&(g=void 0),i.shuttleRingDragging=!1}function m(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;var i=this;this._clickFunction=function(){var e=i._viewModel.command;e.canExecute&&e()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[a(t,"toggled",this.setToggled,this),a(t,"tooltip",this.setTooltip,this),a(t.command,"canExecute",this.setEnabled,this)]}function _(e,t){function i(e){f(A,e)}e=o(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;var r=document.createElement("style");r.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",document.head.insertBefore(r,document.head.childNodes[0]);var n=document.createElement("div");n.className="cesium-animation-theme",n.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=n,this._themeNormal=n.childNodes[0],this._themeHover=n.childNodes[1],this._themeSelect=n.childNodes[2],this._themeDisabled=n.childNodes[3],this._themeKnob=n.childNodes[4],this._themePointer=n.childNodes[5],this._themeSwoosh=n.childNodes[6],this._themeSwooshHover=n.childNodes[7];var s=document.createElementNS(v,"svg:svg");this._svgNode=s,s.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",y);var d=document.createElementNS(v,"g");this._topG=d,this._realtimeSVG=new m(p(3,4,"#animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new m(h(44,99,"#animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new m(h(124,99,"#animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new m(h(84,99,"#animation_pathPause"),t.pauseViewModel);var _=document.createElementNS(v,"g");_.appendChild(this._realtimeSVG.svgElement),_.appendChild(this._playReverseSVG.svgElement),_.appendChild(this._playForwardSVG.svgElement),_.appendChild(this._pauseSVG.svgElement);var g=l({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=g;var C=l({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:"use",transform:"translate(100,97) scale(-1,1)","xlink:href":"#animation_pathSwooshFX"},{tagName:"use",transform:"translate(100,97)","xlink:href":"#animation_pathSwooshFX"},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=C,this._shuttleRingPointer=l({tagName:"use",class:"cesium-animation-shuttleRingPointer","xlink:href":"#animation_pathPointer"});var b=l({tagName:"g",transform:"translate(100,100)"});this._knobOuter=l({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});var S=l({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:61});this._knobDate=u(0,-24,""),this._knobTime=u(0,-7,""),this._knobStatus=u(0,-41,"");var T=l({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:61}),E=document.createElementNS(v,"g");E.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(n),d.appendChild(E),d.appendChild(b),d.appendChild(_),E.appendChild(g),E.appendChild(C),E.appendChild(this._shuttleRingPointer),b.appendChild(this._knobOuter),b.appendChild(S),b.appendChild(this._knobDate),b.appendChild(this._knobTime),b.appendChild(this._knobStatus),b.appendChild(T),s.appendChild(d),e.appendChild(s);var A=this;this._mouseCallback=i,g.addEventListener("mousedown",i,!0),g.addEventListener("touchstart",i,!0),C.addEventListener("mousedown",i,!0),C.addEventListener("touchstart",i,!0),document.addEventListener("mousemove",i,!0),document.addEventListener("touchmove",i,!0),document.addEventListener("mouseup",i,!0),document.addEventListener("touchend",i,!0),document.addEventListener("touchcancel",i,!0),this._shuttleRingPointer.addEventListener("mousedown",i,!0),this._shuttleRingPointer.addEventListener("touchstart",i,!0),this._knobOuter.addEventListener("mousedown",i,!0),this._knobOuter.addEventListener("touchstart",i,!0);var w,x=this._knobTime.childNodes[0],P=this._knobDate.childNodes[0],D=this._knobStatus.childNodes[0];this._subscriptions=[a(t.pauseViewModel,"toggled",function(e){w!==e&&(w=e,w?A._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):A._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),a(t,"shuttleRingAngle",function(e){c(A._shuttleRingPointer,A._knobOuter,e)}),a(t,"dateLabel",function(e){P.textContent!==e&&(P.textContent=e)}),a(t,"timeLabel",function(e){x.textContent!==e&&(x.textContent=e)}),a(t,"multiplierLabel",function(e){D.textContent!==e&&(D.textContent=e)})],this.applyThemeChanges(),this.resize()}var g,v="http://www.w3.org/2000/svg",y="http://www.w3.org/1999/xlink",C=e.fromCssColorString("rgba(247,250,255,0.384)"),b=e.fromCssColorString("rgba(143,191,255,0.216)"),S=e.fromCssColorString("rgba(153,197,255,0.098)"),T=e.fromCssColorString("rgba(255,255,255,0.086)"),E=e.fromCssColorString("rgba(255,255,255,0.267)"),A=e.fromCssColorString("rgba(255,255,255,0)"),w=e.fromCssColorString("rgba(66,67,68,0.3)"),x=e.fromCssColorString("rgba(0,0,0,0.5)"),P=new e;return m.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);for(var e=this._subscriptions,t=0,i=e.length;t<i;t++)e[t].dispose();r(this)},m.prototype.isDestroyed=function(){return!1},m.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e)return void this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");if(this._toggled)return void this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");this.svgElement.setAttribute("class","cesium-animation-rectButton")}},m.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))},m.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e},i(_.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),_.prototype.isDestroyed=function(){return!1},_.prototype.destroy=function(){t(this._observer)&&(this._observer.disconnect(),this._observer=void 0);var e=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",e,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",e,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",e,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",e,!0),document.removeEventListener("mousemove",e,!0),document.removeEventListener("touchmove",e,!0),document.removeEventListener("mouseup",e,!0),document.removeEventListener("touchend",e,!0),document.removeEventListener("touchcancel",e,!0),this._shuttleRingPointer.removeEventListener("mousedown",e,!0),this._shuttleRingPointer.removeEventListener("touchstart",e,!0),this._knobOuter.removeEventListener("mousedown",e,!0),this._knobOuter.removeEventListener("touchstart",e,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();for(var i=this._subscriptions,n=0,o=i.length;n<o;n++)i[n].dispose();return r(this)},_.prototype.resize=function(){var e=this._container.clientWidth,t=this._container.clientHeight;if(e!==this._lastWidth||t!==this._lastHeight){var i=this._svgNode,r=e,n=t;0===e&&0===t?(r=200,n=132):0===e?(n=t,r=t/132*200):0===t&&(r=e,n=e/200*132);var o=r/200,a=n/132;i.style.cssText="width: "+r+"px; height: "+n+"px; position: absolute; bottom: 0; left: 0; overflow: hidden;",i.setAttribute("width",r),i.setAttribute("height",n),i.setAttribute("viewBox","0 0 "+r+" "+n),this._topG.setAttribute("transform","scale("+o+","+a+")"),this._centerX=Math.max(1,100*o),this._centerY=Math.max(1,100*a),this._lastHeight=e,this._lastWidth=t}},_.prototype.applyThemeChanges=function(){if(!document.body.contains(this._container)){if(t(this._observer))return;var e=this;return e._observer=new MutationObserver(function(){document.body.contains(e._container)&&(e._observer.disconnect(),e._observer=void 0,e.applyThemeChanges())}),void e._observer.observe(document,{childList:!0,subtree:!0})}var i=s(this._themeNormal),r=s(this._themeHover),n=s(this._themeSelect),o=s(this._themeDisabled),a=s(this._themeKnob),u=s(this._themePointer),c=s(this._themeSwoosh),h=s(this._themeSwooshHover),p=l({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":d(i,C)},{tagName:"stop",offset:"12%","stop-color":d(i,b)},{tagName:"stop",offset:"46%","stop-color":d(i,S)},{tagName:"stop",offset:"81%","stop-color":d(i,T)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":d(r,C)},{tagName:"stop",offset:"12%","stop-color":d(r,b)},{tagName:"stop",offset:"46%","stop-color":d(r,S)},{tagName:"stop",offset:"81%","stop-color":d(r,T)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":d(n,C)},{tagName:"stop",offset:"12%","stop-color":d(n,b)},{tagName:"stop",offset:"46%","stop-color":d(n,S)},{tagName:"stop",offset:"81%","stop-color":d(n,T)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":d(o,E)},{tagName:"stop",offset:"75%","stop-color":d(o,A)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":h.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":h.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":h.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":u.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":u.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":d(u,x)},{tagName:"stop",offset:"100%","stop-color":d(u,x)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":d(a,C)},{tagName:"stop",offset:"60%","stop-color":d(a,w)},{tagName:"stop",offset:"85%","stop-color":d(a,b)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":d(a,w)},{tagName:"stop",offset:"60%","stop-color":d(a,C)},{tagName:"stop",offset:"85%","stop-color":d(a,T)}]},{id:"animation_pathReset", -tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},{id:"animation_pathPause",tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},{id:"animation_pathPlay",tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},{id:"animation_pathPlayReverse",tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},{id:"animation_pathLoop",tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},{id:"animation_pathClock",tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},{id:"animation_pathWingButton",tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},{id:"animation_pathPointer",tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},{id:"animation_pathSwooshFX",tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}]});t(this._defsElement)?this._svgNode.replaceChild(p,this._defsElement):this._svgNode.appendChild(p),this._defsElement=p},_}),define("Widgets/Animation/AnimationViewModel",["../../Core/binarySearch","../../Core/ClockRange","../../Core/ClockStep","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../Core/JulianDate","../../ThirdParty/knockout","../../ThirdParty/sprintf","../createCommand","../ToggleButtonViewModel"],function(e,t,i,r,n,o,a,s,l,u,c){"use strict";function d(e,t){return e-t}function h(t,i){var r=e(i,t,d);return r<0?~r:r}function p(e,t){if(Math.abs(e)<=g)return e/g;var i,r,n=g,o=v;return e>0?(i=Math.log(t[t.length-1]),r=(i-0)/(o-n),Math.exp(0+r*(e-n))):(i=Math.log(-t[0]),r=(i-0)/(o-n),-Math.exp(0+r*(Math.abs(e)-n)))}function f(e,t,r){if(r.clockStep===i.SYSTEM_CLOCK)return g;if(Math.abs(e)<=1)return e*g;var n=t[t.length-1];e>n?e=n:e<-n&&(e=-n);var o,a,s=g,l=v;return e>0?(o=Math.log(n),a=(o-0)/(l-s),(Math.log(e)-0)/a+s):(o=Math.log(-t[0]),a=(o-0)/(l-s),-((Math.log(Math.abs(e))-0)/a+s))}function m(e){var r=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=m.defaultDateFormatter,this._timeFormatter=m.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,s.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(m.defaultTicks),this.timeLabel=void 0,s.defineProperty(this,"timeLabel",function(){return r._timeFormatter(r._clockViewModel.currentTime,r)}),this.dateLabel=void 0,s.defineProperty(this,"dateLabel",function(){return r._dateFormatter(r._clockViewModel.currentTime,r)}),this.multiplierLabel=void 0,s.defineProperty(this,"multiplierLabel",function(){var e=r._clockViewModel;if(e.clockStep===i.SYSTEM_CLOCK)return"Today";var t=e.multiplier;return t%1==0?t.toFixed(0)+"x":t.toFixed(3).replace(/0{0,3}$/,"")+"x"}),this.shuttleRingAngle=void 0,s.defineProperty(this,"shuttleRingAngle",{get:function(){return f(e.multiplier,r._allShuttleRingTicks,e)},set:function(e){e=Math.max(Math.min(e,v),-v);var t=r._allShuttleRingTicks,n=r._clockViewModel;if(n.clockStep=i.SYSTEM_CLOCK_MULTIPLIER,Math.abs(e)===v)return void(n.multiplier=e>0?t[t.length-1]:t[0]);var o=p(e,t);if(r.snapToTicks)o=t[h(o,t)];else if(0!==o){var a=Math.abs(o);if(a>100){var s=a.toFixed(0).length-2,l=Math.pow(10,s);o=Math.round(o/l)*l|0}else a>g?o=Math.round(o):a>1?o=+o.toFixed(1):a>0&&(o=+o.toFixed(2))}n.multiplier=o}}),this._canAnimate=void 0,s.defineProperty(this,"_canAnimate",function(){var e=r._clockViewModel,i=e.clockRange;if(r.shuttleRingDragging||i===t.UNBOUNDED)return!0;var n=e.multiplier,o=e.currentTime,s=e.startTime,l=!1;if(i===t.LOOP_STOP)l=a.greaterThan(o,s)||o.equals(s)&&n>0;else{var u=e.stopTime;l=a.greaterThan(o,s)&&a.lessThan(o,u)||o.equals(s)&&n>0||o.equals(u)&&n<0}return l||(e.shouldAnimate=!1),l}),this._isSystemTimeAvailable=void 0,s.defineProperty(this,"_isSystemTimeAvailable",function(){var e=r._clockViewModel;if(e.clockRange===t.UNBOUNDED)return!0;var i=e.systemTime;return a.greaterThanOrEquals(i,e.startTime)&&a.lessThanOrEquals(i,e.stopTime)}),this._isAnimating=void 0,s.defineProperty(this,"_isAnimating",function(){return r._clockViewModel.shouldAnimate&&(r._canAnimate||r.shuttleRingDragging)});var n=u(function(){var e=r._clockViewModel;e.shouldAnimate?e.shouldAnimate=!1:r._canAnimate&&(e.shouldAnimate=!0)});this._pauseViewModel=new c(n,{toggled:s.computed(function(){return!r._isAnimating}),tooltip:"Pause"});var o=u(function(){var e=r._clockViewModel,t=e.multiplier;t>0&&(e.multiplier=-t),e.shouldAnimate=!0});this._playReverseViewModel=new c(o,{toggled:s.computed(function(){return r._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});var l=u(function(){var e=r._clockViewModel,t=e.multiplier;t<0&&(e.multiplier=-t),e.shouldAnimate=!0});this._playForwardViewModel=new c(l,{toggled:s.computed(function(){return r._isAnimating&&e.multiplier>0&&e.clockStep!==i.SYSTEM_CLOCK}),tooltip:"Play Forward"});var d=u(function(){r._clockViewModel.clockStep=i.SYSTEM_CLOCK},s.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new c(d,{toggled:s.computed(function(){return e.clockStep===i.SYSTEM_CLOCK}),tooltip:s.computed(function(){return r._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=u(function(){var e=r._clockViewModel,t=r._allShuttleRingTicks,i=e.multiplier,n=h(i,t)-1;n>=0&&(e.multiplier=t[n])}),this._faster=u(function(){var e=r._clockViewModel,t=r._allShuttleRingTicks,i=e.multiplier,n=h(i,t)+1;n<t.length&&(e.multiplier=t[n])})}var _=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],g=15,v=105;return m.defaultDateFormatter=function(e,t){var i=a.toGregorianDate(e);return _[i.month-1]+" "+i.day+" "+i.year},m.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800],m.defaultTimeFormatter=function(e,t){var i=a.toGregorianDate(e),r=Math.round(i.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?l("%02d:%02d:%02d.%03d",i.hour,i.minute,i.second,r):l("%02d:%02d:%02d UTC",i.hour,i.minute,i.second)},m.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)},m.prototype.setShuttleRingTicks=function(e){var t,i,r,n={},o=this._sortedFilteredPositiveTicks;for(o.length=0,t=0,i=e.length;t<i;++t)r=e[t],n.hasOwnProperty(r)||(n[r]=!0,o.push(r));o.sort(d);var a=[];for(i=o.length,t=i-1;t>=0;--t)0!==(r=o[t])&&a.push(-r);Array.prototype.push.apply(a,o),this._allShuttleRingTicks=a},n(m.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}}),m._maxShuttleRingAngle=v,m._realtimeShuttleRingAngle=g,m}),define("Widgets/BaseLayerPicker/BaseLayerPickerViewModel",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../Core/EllipsoidTerrainProvider","../../Core/isArray","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o,a,s){"use strict";function l(i){i=e(i,e.EMPTY_OBJECT);var r=i.globe,l=e(i.imageryProviderViewModels,[]),u=e(i.terrainProviderViewModels,[]);this._globe=r,this.imageryProviderViewModels=l.slice(0),this.terrainProviderViewModels=u.slice(0),this.dropDownVisible=!1,a.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);var c=a.getObservable(this,"imageryProviderViewModels"),d=a.pureComputed(function(){var e,i=c(),r={};for(e=0;e<i.length;e++){var n=i[e],o=n.category;t(r[o])?r[o].push(n):r[o]=[n]}var a=Object.keys(r),s=[];for(e=0;e<a.length;e++){var l=a[e];s.push({name:l,providers:r[l]})}return s});this._imageryProviders=d;var h=a.getObservable(this,"terrainProviderViewModels"),p=a.pureComputed(function(){var e,i=h(),r={};for(e=0;e<i.length;e++){var n=i[e],o=n.category;t(r[o])?r[o].push(n):r[o]=[n]}var a=Object.keys(r),s=[];for(e=0;e<a.length;e++){var l=a[e];s.push({name:l,providers:r[l]})}return s});this._terrainProviders=p,this.buttonTooltip=void 0,a.defineProperty(this,"buttonTooltip",function(){var e=this.selectedImagery,i=this.selectedTerrain,r=t(e)?e.name:void 0,n=t(i)?i.name:void 0;return t(r)&&t(n)?r+"\n"+n:t(r)?r:n}),this.buttonImageUrl=void 0,a.defineProperty(this,"buttonImageUrl",function(){var e=this.selectedImagery;if(t(e))return e.iconUrl}),this.selectedImagery=void 0;var f=a.observable();this._currentImageryProviders=[],a.defineProperty(this,"selectedImagery",{get:function(){return f()},set:function(e){if(f()===e)return void(this.dropDownVisible=!1);var i,r=this._currentImageryProviders,n=r.length,a=this._globe.imageryLayers,s=!1;for(i=0;i<n;i++)for(var l=a.length,u=0;u<l;u++){var c=a.get(u);if(c.imageryProvider===r[i]){a.remove(c),s=!0;break}}if(t(e)){var d=e.creationCommand();if(o(d)){var h=d.length;for(i=h-1;i>=0;i--)a.addImageryProvider(d[i],0);this._currentImageryProviders=d.slice(0)}else if(this._currentImageryProviders=[d],s)a.addImageryProvider(d,0);else{var p=a.get(0);t(p)&&a.remove(p),a.addImageryProvider(d,0)}}f(e),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;var m=a.observable();a.defineProperty(this,"selectedTerrain",{get:function(){return m()},set:function(e){if(m()===e)return void(this.dropDownVisible=!1);var i;t(e)&&(i=e.creationCommand()),this._globe.depthTestAgainstTerrain=!(i instanceof n),this._globe.terrainProvider=i,m(e),this.dropDownVisible=!1}});var _=this;this._toggleDropDown=s(function(){_.dropDownVisible=!_.dropDownVisible}),this.selectedImagery=e(i.selectedImageryProviderViewModel,l[0]),this.selectedTerrain=e(i.selectedTerrainProviderViewModel,u[0])}return i(l.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}}),l}),define("Widgets/BaseLayerPicker/BaseLayerPicker",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/FeatureDetection","../../ThirdParty/knockout","../getElement","./BaseLayerPickerViewModel"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t){e=a(e);var i=new s(t),r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(r);var l=document.createElement("img");l.setAttribute("draggable","false"),l.className="cesium-baseLayerPicker-selected",l.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),r.appendChild(l);var u=document.createElement("div");u.className="cesium-baseLayerPicker-dropDown",u.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(u);var c=document.createElement("div");c.className="cesium-baseLayerPicker-sectionTitle",c.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),c.innerHTML="Imagery",u.appendChild(c);var d=document.createElement("div");d.className="cesium-baseLayerPicker-section",d.setAttribute("data-bind","foreach: _imageryProviders"),u.appendChild(d);var h=document.createElement("div");h.className="cesium-baseLayerPicker-category",d.appendChild(h);var p=document.createElement("div");p.className="cesium-baseLayerPicker-categoryTitle",p.setAttribute("data-bind","text: name"),h.appendChild(p);var f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),h.appendChild(f);var m=document.createElement("div");m.className="cesium-baseLayerPicker-item",m.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(m);var _=document.createElement("img");_.className="cesium-baseLayerPicker-itemIcon",_.setAttribute("data-bind","attr: { src: iconUrl }"),_.setAttribute("draggable","false"),m.appendChild(_);var g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),m.appendChild(g);var v=document.createElement("div");v.className="cesium-baseLayerPicker-sectionTitle",v.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),v.innerHTML="Terrain",u.appendChild(v);var y=document.createElement("div");y.className="cesium-baseLayerPicker-section",y.setAttribute("data-bind","foreach: _terrainProviders"),u.appendChild(y);var C=document.createElement("div");C.className="cesium-baseLayerPicker-category",y.appendChild(C);var b=document.createElement("div");b.className="cesium-baseLayerPicker-categoryTitle",b.setAttribute("data-bind","text: name"),C.appendChild(b);var S=document.createElement("div");S.className="cesium-baseLayerPicker-choices",S.setAttribute("data-bind","foreach: providers"),C.appendChild(S);var T=document.createElement("div");T.className="cesium-baseLayerPicker-item",T.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),S.appendChild(T);var E=document.createElement("img");E.className="cesium-baseLayerPicker-itemIcon",E.setAttribute("data-bind","attr: { src: iconUrl }"),E.setAttribute("draggable","false"),T.appendChild(E);var A=document.createElement("div");A.className="cesium-baseLayerPicker-itemLabel",A.setAttribute("data-bind","text: name"),T.appendChild(A),o.applyBindings(i,r),o.applyBindings(i,u),this._viewModel=i,this._container=e,this._element=r,this._dropPanel=u,this._closeDropDown=function(e){r.contains(e.target)||u.contains(e.target)||(i.dropDownVisible=!1)},n.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}return t(l.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return n.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),o.cleanNode(this._element),o.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),i(this)},l}),define("Widgets/BaseLayerPicker/ProviderViewModel",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o){"use strict";function a(i){var r=i.creationFunction;t(r.canExecute)||(r=o(r)),this._creationCommand=r,this.name=i.name,this.tooltip=i.tooltip,this.iconUrl=i.iconUrl,this._category=e(i.category,""),n.track(this,["name","tooltip","iconUrl"])}return i(a.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}}),a}),define("Widgets/BaseLayerPicker/createDefaultImageryProviderViewModels",["../../Core/buildModuleUrl","../../Scene/ArcGisMapServerImageryProvider","../../Scene/IonWorldImageryStyle","../../Scene/createOpenStreetMapImageryProvider","../../Scene/createTileMapServiceImageryProvider","../../Scene/createWorldImagery","../../Scene/IonImageryProvider","../../Scene/MapboxImageryProvider","../BaseLayerPicker/ProviderViewModel"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(){var u=[];return u.push(new l({name:"Bing Maps Aerial",iconUrl:e("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return o({style:i.AERIAL})}})),u.push(new l({name:"Bing Maps Aerial with Labels",iconUrl:e("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return o({style:i.AERIAL_WITH_LABELS})}})),u.push(new l({name:"Bing Maps Roads",iconUrl:e("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return o({style:i.ROAD})}})),u.push(new l({name:"Mapbox Satellite",tooltip:"Mapbox satellite imagery https://www.mapbox.com/maps/",iconUrl:e("Widgets/Images/ImageryProviders/mapboxSatellite.png"),category:"Other",creationFunction:function(){return new s({mapId:"mapbox.satellite"})}})),u.push(new l({name:"Mapbox Streets",tooltip:"Mapbox streets imagery https://www.mapbox.com/maps/",iconUrl:e("Widgets/Images/ImageryProviders/mapboxTerrain.png"),category:"Other",creationFunction:function(){return new s({mapId:"mapbox.streets"})}})),u.push(new l({name:"Mapbox Streets Classic",tooltip:"Mapbox streets basic imagery https://www.mapbox.com/maps/",iconUrl:e("Widgets/Images/ImageryProviders/mapboxStreets.png"),category:"Other",creationFunction:function(){return new s({mapId:"mapbox.streets-basic"})}})),u.push(new l({name:"ESRI World Imagery",iconUrl:e("Widgets/Images/ImageryProviders/esriWorldImagery.png"),tooltip:"World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes NASA Blue Marble: Next Generation 500m resolution imagery at small scales (above 1:1,000,000), i-cubed 15m eSAT imagery at medium-to-large scales (down to 1:70,000) for the world, and USGS 15m Landsat imagery for Antarctica. The map features 0.3m resolution imagery in the continental United States and 0.6m resolution imagery in parts of Western Europe from DigitalGlobe. In other parts of the world, 1 meter resolution imagery is available from GeoEye IKONOS, i-cubed Nationwide Prime, Getmapping, AeroGRID, IGN Spain, and IGP Portugal. Additionally, imagery at different resolutions has been contributed by the GIS User Community.\nhttp://www.esri.com",category:"Other",creationFunction:function(){return new t({url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer",enablePickFeatures:!1})}})),u.push(new l({name:"ESRI World Street Map",iconUrl:e("Widgets/Images/ImageryProviders/esriWorldStreetMap.png"),tooltip:"This worldwide street map presents highway-level data for the world. Street-level data includes the United States; much of Canada; Japan; most countries in Europe; Australia and New Zealand; India; parts of South America including Argentina, Brazil, Chile, Colombia, and Venezuela; Ghana; and parts of southern Africa including Botswana, Lesotho, Namibia, South Africa, and Swaziland.\nhttp://www.esri.com",category:"Other",creationFunction:function(){return new t({url:"https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer",enablePickFeatures:!1})}})),u.push(new l({name:"ESRI National Geographic",iconUrl:e("Widgets/Images/ImageryProviders/esriNationalGeographic.png"),tooltip:"This web map contains the National Geographic World Map service. This map service is designed to be used as a general reference map for informational and educational purposes as well as a basemap by GIS professionals and other users for creating web maps and web mapping applications.\nhttp://www.esri.com",category:"Other",creationFunction:function(){return new t({url:"https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer/",enablePickFeatures:!1})}})),u.push(new l({name:"Open­Street­Map",iconUrl:e("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:"OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world.\nhttp://www.openstreetmap.org",category:"Other",creationFunction:function(){return r({url:"https://a.tile.openstreetmap.org/"})}})),u.push(new l({name:"Stamen Watercolor",iconUrl:e("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:"Reminiscent of hand drawn maps, Stamen watercolor maps apply raster effect area washes and organic edges over a paper texture to add warm pop to any map.\nhttp://maps.stamen.com",category:"Other",creationFunction:function(){return r({url:"https://stamen-tiles.a.ssl.fastly.net/watercolor/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),u.push(new l({name:"Stamen Toner",iconUrl:e("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:"A high contrast black and white map.\nhttp://maps.stamen.com",category:"Other",creationFunction:function(){return r({url:"https://stamen-tiles.a.ssl.fastly.net/toner/",credit:"Map tiles by Stamen Design, under CC BY 3.0. Data by OpenStreetMap, under CC BY SA."})}})),u.push(new l({name:"Sentinel-2",iconUrl:e("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return new a({assetId:3954})}})),u.push(new l({name:"Blue Marble",iconUrl:e("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return new a({assetId:3845})}})),u.push(new l({name:"Earth at night",iconUrl:e("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return new a({assetId:3812})}})),u.push(new l({name:"Natural Earth II",iconUrl:e("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:"Natural Earth II, darkened for contrast.\nhttp://www.naturalearthdata.com/",category:"Cesium ion",creationFunction:function(){return n({url:e("Assets/Textures/NaturalEarthII")})}})),u}return u}),define("Widgets/BaseLayerPicker/createDefaultTerrainProviderViewModels",["../../Core/buildModuleUrl","../../Core/createWorldTerrain","../../Core/EllipsoidTerrainProvider","../BaseLayerPicker/ProviderViewModel"],function(e,t,i,r){"use strict";function n(){var n=[];return n.push(new r({name:"WGS84 Ellipsoid",iconUrl:e("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new i}})),n.push(new r({name:"Cesium World Terrain",iconUrl:e("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return t({requestWaterMask:!0,requestVertexNormals:!0})}})),n}return n}),define("Widgets/Cesium3DTilesInspector/Cesium3DTilesInspectorViewModel",["../../Core/Check","../../Core/Color","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/ScreenSpaceEventHandler","../../Core/ScreenSpaceEventType","../../Scene/Cesium3DTileColorBlendMode","../../Scene/Cesium3DTileFeature","../../Scene/Cesium3DTilePass","../../Scene/Cesium3DTileset","../../Scene/Cesium3DTileStyle","../../Scene/PerformanceDisplay","../../ThirdParty/knockout"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p){"use strict";function f(e){return function(t){var r=e._scene.pick(t.position);i(r)&&r.primitive instanceof c&&(e.tileset=r.primitive),e.pickActive=!1}}function m(e,t){t?e._eventHandler.setInputAction(function(t){var r=e._scene.pick(t.endPosition);i(r)&&r.primitive instanceof c&&(e.tileset=r.primitive)},a.MOUSE_MOVE):(e._eventHandler.removeInputAction(a.MOUSE_MOVE),e.picking=e.picking)}function _(e){var t=e/1048576;return t<1?t.toLocaleString(void 0,C):Math.round(t).toLocaleString()}function g(e,t){if(!i(e))return"";var r=t?e._statisticsPerPass[u.PICK]:e._statisticsPerPass[u.RENDER],n='<ul class="cesium-cesiumInspector-statistics">';return n+="<li><strong>Visited: </strong>"+r.visited.toLocaleString()+"</li><li><strong>Selected: </strong>"+r.selected.toLocaleString()+"</li><li><strong>Commands: </strong>"+r.numberOfCommands.toLocaleString()+"</li>",n+="</ul>",t||(n+='<ul class="cesium-cesiumInspector-statistics">',n+="<li><strong>Requests: </strong>"+r.numberOfPendingRequests.toLocaleString()+"</li><li><strong>Attempted: </strong>"+r.numberOfAttemptedRequests.toLocaleString()+"</li><li><strong>Processing: </strong>"+r.numberOfTilesProcessing.toLocaleString()+"</li><li><strong>Content Ready: </strong>"+r.numberOfTilesWithContentReady.toLocaleString()+"</li><li><strong>Total: </strong>"+r.numberOfTilesTotal.toLocaleString()+"</li>",n+="</ul>",n+='<ul class="cesium-cesiumInspector-statistics">',n+="<li><strong>Features Selected: </strong>"+r.numberOfFeaturesSelected.toLocaleString()+"</li><li><strong>Features Loaded: </strong>"+r.numberOfFeaturesLoaded.toLocaleString()+"</li><li><strong>Points Selected: </strong>"+r.numberOfPointsSelected.toLocaleString()+"</li><li><strong>Points Loaded: </strong>"+r.numberOfPointsLoaded.toLocaleString()+"</li><li><strong>Triangles Selected: </strong>"+r.numberOfTrianglesSelected.toLocaleString()+"</li>",n+="</ul>",n+='<ul class="cesium-cesiumInspector-statistics">',n+="<li><strong>Tiles styled: </strong>"+r.numberOfTilesStyled.toLocaleString()+"</li><li><strong>Features styled: </strong>"+r.numberOfFeaturesStyled.toLocaleString()+"</li>",n+="</ul>",n+='<ul class="cesium-cesiumInspector-statistics">',n+="<li><strong>Children Union Culled: </strong>"+r.numberOfTilesCulledWithChildrenUnion.toLocaleString()+"</li>",n+="</ul>",n+='<ul class="cesium-cesiumInspector-statistics">',n+="<li><strong>Geometry Memory (MB): </strong>"+_(r.geometryByteLength)+"</li><li><strong>Texture Memory (MB): </strong>"+_(r.texturesByteLength)+"</li><li><strong>Batch Table Memory (MB): </strong>"+_(r.batchTableByteLength)+"</li>",n+="</ul>"),n}function v(e,t){var r=this,n=e.canvas;this._eventHandler=new o(n),this._scene=e,this._performanceContainer=t,this._canvas=n,this._performanceDisplay=new h({container:t}),this._statisticsText="",this._pickStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this._tileset=void 0,this._feature=void 0,this._tile=void 0,p.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_editorError","showPickStatistics","showStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile"]),this._properties=p.observable({}),this.properties=[],p.defineProperty(this,"properties",function(){var e=[],t=r._properties();for(var i in t)t.hasOwnProperty(i)&&e.push(i);return e});var u=p.observable();p.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return u()},set:function(e){u(e),i(r._tileset)&&(r._tileset.dynamicScreenSpaceError=e)}}),this.dynamicScreenSpaceError=!1;var c=p.observable();p.defineProperty(this,"colorBlendMode",{get:function(){return c()},set:function(e){c(e),i(r._tileset)&&(r._tileset.colorBlendMode=e,r._scene.requestRender())}}),this.colorBlendMode=s.HIGHLIGHT;var d=p.observable();p.defineProperty(this,"picking",{get:function(){return d()},set:function(t){d(t),t?r._eventHandler.setInputAction(function(t){var n=e.pick(t.endPosition);if(n instanceof l?(r.feature=n,r.tile=n.content.tile):i(n)&&i(n.content)?(r.feature=void 0,r.tile=n.content.tile):(r.feature=void 0,r.tile=void 0),i(r._tileset)){if(S&&i(n)&&i(n.content)){var o;e.pickPositionSupported&&(o=e.pickPosition(t.endPosition),i(o)&&(r._tileset.debugPickPosition=o)),r._tileset.debugPickedTile=n.content.tile}else r._tileset.debugPickedTile=void 0;r._scene.requestRender()}},a.MOUSE_MOVE):(r.feature=void 0,r.tile=void 0,r._eventHandler.removeInputAction(a.MOUSE_MOVE))}}),this.picking=!0;var _=p.observable();p.defineProperty(this,"colorize",{get:function(){return _()},set:function(e){_(e),i(r._tileset)&&(r._tileset.debugColorizeTiles=e, -r._scene.requestRender())}}),this.colorize=!1;var g=p.observable();p.defineProperty(this,"wireframe",{get:function(){return g()},set:function(e){g(e),i(r._tileset)&&(r._tileset.debugWireframe=e,r._scene.requestRender())}}),this.wireframe=!1;var v=p.observable();p.defineProperty(this,"showBoundingVolumes",{get:function(){return v()},set:function(e){v(e),i(r._tileset)&&(r._tileset.debugShowBoundingVolume=e,r._scene.requestRender())}}),this.showBoundingVolumes=!1;var y=p.observable();p.defineProperty(this,"showContentBoundingVolumes",{get:function(){return y()},set:function(e){y(e),i(r._tileset)&&(r._tileset.debugShowContentBoundingVolume=e,r._scene.requestRender())}}),this.showContentBoundingVolumes=!1;var C=p.observable();p.defineProperty(this,"showRequestVolumes",{get:function(){return C()},set:function(e){C(e),i(r._tileset)&&(r._tileset.debugShowViewerRequestVolume=e,r._scene.requestRender())}}),this.showRequestVolumes=!1;var b=p.observable();p.defineProperty(this,"freezeFrame",{get:function(){return b()},set:function(e){b(e),i(r._tileset)&&(r._tileset.debugFreezeFrame=e,r._scene.debugShowFrustumPlanes=e,r._scene.requestRender())}}),this.freezeFrame=!1;var S=p.observable();p.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return S()},set:function(e){S(e),i(r._tileset)&&(r._tileset.debugPickedTileLabelOnly=e,r._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;var T=p.observable();p.defineProperty(this,"showGeometricError",{get:function(){return T()},set:function(e){T(e),i(r._tileset)&&(r._tileset.debugShowGeometricError=e,r._scene.requestRender())}}),this.showGeometricError=!1;var E=p.observable();p.defineProperty(this,"showRenderingStatistics",{get:function(){return E()},set:function(e){E(e),i(r._tileset)&&(r._tileset.debugShowRenderingStatistics=e,r._scene.requestRender())}}),this.showRenderingStatistics=!1;var A=p.observable();p.defineProperty(this,"showMemoryUsage",{get:function(){return A()},set:function(e){A(e),i(r._tileset)&&(r._tileset.debugShowMemoryUsage=e,r._scene.requestRender())}}),this.showMemoryUsage=!1;var w=p.observable();p.defineProperty(this,"showUrl",{get:function(){return w()},set:function(e){w(e),i(r._tileset)&&(r._tileset.debugShowUrl=e,r._scene.requestRender())}}),this.showUrl=!1;var x=p.observable();p.defineProperty(this,"maximumScreenSpaceError",{get:function(){return x()},set:function(e){e=Number(e),isNaN(e)||(x(e),i(r._tileset)&&(r._tileset.maximumScreenSpaceError=e))}}),this.maximumScreenSpaceError=16;var P=p.observable();p.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return P()},set:function(e){e=Number(e),isNaN(e)||(P(e),i(r._tileset)&&(r._tileset.dynamicScreenSpaceErrorDensity=e))}}),this.dynamicScreenSpaceErrorDensity=.00278,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,p.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(P(),1/6)},set:function(e){P(Math.pow(e,6))}});var D=p.observable();p.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return D()},set:function(e){e=Number(e),isNaN(e)||(D(e),i(r._tileset)&&(r._tileset.dynamicScreenSpaceErrorFactor=e))}}),this.dynamicScreenSpaceErrorFactor=4;var I=f(this),M=p.observable();p.defineProperty(this,"pickActive",{get:function(){return M()},set:function(e){M(e),e?r._eventHandler.setInputAction(I,a.LEFT_CLICK):r._eventHandler.removeInputAction(a.LEFT_CLICK)}});var R=p.observable();p.defineProperty(this,"pointCloudShading",{get:function(){return R()},set:function(e){R(e),i(r._tileset)&&(r._tileset.pointCloudShading.attenuation=e)}}),this.pointCloudShading=!1;var O=p.observable();p.defineProperty(this,"geometricErrorScale",{get:function(){return O()},set:function(e){e=Number(e),isNaN(e)||(O(e),i(r._tileset)&&(r._tileset.pointCloudShading.geometricErrorScale=e))}}),this.geometricErrorScale=1;var L=p.observable();p.defineProperty(this,"maximumAttenuation",{get:function(){return L()},set:function(e){e=Number(e),isNaN(e)||(L(e),i(r._tileset)&&(r._tileset.pointCloudShading.maximumAttenuation=0===e?void 0:e))}}),this.maximumAttenuation=0;var N=p.observable();p.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(e){e=Number(e),isNaN(e)||(N(e),i(r._tileset)&&(r._tileset.pointCloudShading.baseResolution=0===e?void 0:e))}}),this.baseResolution=0;var F=p.observable();p.defineProperty(this,"eyeDomeLighting",{get:function(){return F()},set:function(e){F(e),i(r._tileset)&&(r._tileset.pointCloudShading.eyeDomeLighting=e)}}),this.eyeDomeLighting=!1;var B=p.observable();p.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return B()},set:function(e){e=Number(e),isNaN(e)||(B(e),i(r._tileset)&&(r._tileset.pointCloudShading.eyeDomeLightingStrength=e))}}),this.eyeDomeLightingStrength=1;var z=p.observable();p.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return z()},set:function(e){e=Number(e),isNaN(e)||(z(e),i(r._tileset)&&(r._tileset.pointCloudShading.eyeDomeLightingRadius=e))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;var k=p.observable();p.defineProperty(this,"skipLevelOfDetail",{get:function(){return k()},set:function(e){k(e),i(r._tileset)&&(r._tileset.skipLevelOfDetail=e)}}),this.skipLevelOfDetail=!0;var V=p.observable();p.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return V()},set:function(e){e=Number(e),isNaN(e)||(V(e),i(r._tileset)&&(r._tileset.skipScreenSpaceErrorFactor=e))}}),this.skipScreenSpaceErrorFactor=16;var U=p.observable();p.defineProperty(this,"baseScreenSpaceError",{get:function(){return U()},set:function(e){e=Number(e),isNaN(e)||(U(e),i(r._tileset)&&(r._tileset.baseScreenSpaceError=e))}}),this.baseScreenSpaceError=1024;var G=p.observable();p.defineProperty(this,"skipLevels",{get:function(){return G()},set:function(e){e=Number(e),isNaN(e)||(G(e),i(r._tileset)&&(r._tileset.skipLevels=e))}}),this.skipLevels=1;var H=p.observable();p.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return H()},set:function(e){H(e),i(r._tileset)&&(r._tileset.immediatelyLoadDesiredLevelOfDetail=e)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;var W=p.observable();p.defineProperty(this,"loadSiblings",{get:function(){return W()},set:function(e){W(e),i(r._tileset)&&(r._tileset.loadSiblings=e)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){r._update()}),i(this._tileset)||m(this,!0)}function y(e){if(e.featuresLength>0)return!0;var t=e.innerContents;if(i(t)){for(var r=t.length,n=0;n<r;++n)if(!y(t[n]))return!1;return!0}return!1}var C={maximumFractionDigits:3},b=[{text:"Highlight",value:s.HIGHLIGHT},{text:"Replace",value:s.REPLACE},{text:"Mix",value:s.MIX}],S=new t(1,1,0,.4),T=new t,E=new t;return r(v.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},colorBlendModes:{get:function(){return b}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,i(e)){var t=this;e.readyPromise.then(function(e){t.isDestroyed()||t._properties(e.properties)});for(var r=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=r.length,o=0;o<n;++o){var a=r[o];this[a]=this[a]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings;var s=e.pointCloudShading;this.pointCloudShading=s.attenuation,this.geometricErrorScale=s.geometricErrorScale,this.maximumAttenuation=s.maximumAttenuation?s.maximumAttenuation:0,this.baseResolution=s.baseResolution?s.baseResolution:0,this.eyeDomeLighting=s.eyeDomeLighting,this.eyeDomeLightingStrength=s.eyeDomeLightingStrength,this.eyeDomeLightingRadius=s.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=g(e,!1),this._pickStatisticsText=g(e,!0),m(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature!==e){var r=this._feature;i(r)&&!r.content.isDestroyed()&&(!this.colorize&&i(this._style)?r.color=i(this._style.color)?this._style.color.evaluateColor(r,T):t.WHITE:r.color=E,this._scene.requestRender()),i(e)&&(t.clone(e.color,E),e.color=S,this._scene.requestRender()),this._feature=e}}},tile:{get:function(){return this._tile},set:function(e){if(this._tile!==e){var r=this._tile;!i(r)||r.isDestroyed()||y(r.content)||(r.color=E,this._scene.requestRender()),i(e)&&!y(e.content)&&(t.clone(e.color,E),e.color=S,this._scene.requestRender()),this._tile=e}}}}),v.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive},v.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible},v.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible},v.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible},v.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible},v.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible},v.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible},v.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible},v.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible},v.prototype.trimTilesCache=function(){i(this._tileset)&&this._tileset.trimLoadedTiles()},v.prototype.compileStyle=function(){var e=this._tileset;if(i(e)&&this.styleString!==JSON.stringify(e.style)){this._editorError="";try{0===this.styleString.length&&(this.styleString="{}"),this._style=new d(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(e){this._editorError=e.toString()}this.feature=this._feature,this.tile=this._tile}},v.prototype.styleEditorKeyPress=function(e,t){if(9===t.keyCode){t.preventDefault();var i,r=t.target,n=r.selectionStart,o=r.selectionEnd,a=o,s=r.value.slice(n,o),l=s.split("\n"),u=l.length;if(t.shiftKey)for(i=0;i<u;++i)" "===l[i][0]&&(" "===l[i][1]?(l[i]=l[i].substr(2),a-=2):(l[i]=l[i].substr(1),a-=1));else for(i=0;i<u;++i)l[i]=" "+l[i],a+=2;var c=l.join("\n");r.value=r.value.slice(0,n)+c+r.value.slice(o),r.selectionStart=n!==o?n:a,r.selectionEnd=a}else!t.ctrlKey||10!==t.keyCode&&13!==t.keyCode||this.compileStyle();return!0},v.prototype._update=function(){var e=this._tileset;if(this.performance&&this._performanceDisplay.update(),i(e)){if(e.isDestroyed())return this.tile=void 0,this.feature=void 0,void(this.tileset=void 0);var t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=g(e,!1),this._pickStatisticsText=g(e,!0))},v.prototype.isDestroyed=function(){return!1},v.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();var e=this;return this._definedProperties.forEach(function(t){p.getObservable(e,t).dispose()}),n(this)},v.getStatistics=g,v}),define("Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector",["../../Core/Check","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../ThirdParty/knockout","../getElement","../InspectorShared","./Cesium3DTilesInspectorViewModel"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t,i){e.defined("container",t),e.typeOf.object("scene",i),t=a(t);var r=document.createElement("div"),n=document.createElement("div");n.setAttribute("data-bind","visible: performance");var u=new l(i,n);this._viewModel=u,this._container=t,this._element=r;var h=document.createElement("div");h.textContent="3D Tiles Inspector",h.className="cesium-cesiumInspector-button",h.setAttribute("data-bind","click: toggleInspector"),r.appendChild(h),r.className="cesium-cesiumInspector cesium-3DTilesInspector",r.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),t.appendChild(r);var p=document.createElement("div");this._panel=p,p.className="cesium-cesiumInspector-dropDown",r.appendChild(p);var f=s.createSection,m=s.createCheckbox,_=f(p,"Tileset","tilesetVisible","toggleTileset"),g=f(p,"Display","displayVisible","toggleDisplay"),v=f(p,"Update","updateVisible","toggleUpdate"),y=f(p,"Logging","loggingVisible","toggleLogging"),C=f(p,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),b=f(p,"Style","styleVisible","toggleStyle"),S=f(p,"Optimization","optimizationVisible","toggleOptimization"),T=document.createElement("div");T.className="field-group";var E=document.createElement("label");E.className="field-label",E.appendChild(document.createTextNode("Properties: "));var A=document.createElement("div");A.setAttribute("data-bind","text: properties"),T.appendChild(E),T.appendChild(A),_.appendChild(T),_.appendChild(d("togglePickTileset","Pick Tileset","pickActive")),_.appendChild(d("trimTilesCache","Trim Tiles Cache")),_.appendChild(m("Enable Picking","picking")),g.appendChild(m("Colorize","colorize")),g.appendChild(m("Wireframe","wireframe")),g.appendChild(m("Bounding Volumes","showBoundingVolumes")),g.appendChild(m("Content Volumes","showContentBoundingVolumes")),g.appendChild(m("Request Volumes","showRequestVolumes")),g.appendChild(m("Point Cloud Shading","pointCloudShading"));var w=document.createElement("div");w.setAttribute("data-bind","visible: pointCloudShading"),w.appendChild(c("geometricErrorScale",0,2,.01,"Geometric Error Scale")),w.appendChild(c("maximumAttenuation",0,32,1,"Maximum Attenuation")),w.appendChild(c("baseResolution",0,1,.01,"Base Resolution")),w.appendChild(m("Eye Dome Lighting (EDL)","eyeDomeLighting")),g.appendChild(w);var x=document.createElement("div");x.setAttribute("data-bind","visible: eyeDomeLighting"),x.appendChild(c("eyeDomeLightingStrength",0,2,.1,"EDL Strength")),x.appendChild(c("eyeDomeLightingRadius",0,4,.1,"EDL Radius")),w.appendChild(x),v.appendChild(m("Freeze Frame","freezeFrame")),v.appendChild(m("Dynamic Screen Space Error","dynamicScreenSpaceError"));var P=document.createElement("div");P.appendChild(c("maximumScreenSpaceError",0,128,1,"Maximum Screen Space Error")),v.appendChild(P);var D=document.createElement("div");D.setAttribute("data-bind","visible: dynamicScreenSpaceError"),D.appendChild(c("dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"Screen Space Error Density","dynamicScreenSpaceErrorDensity")),D.appendChild(c("dynamicScreenSpaceErrorFactor",1,10,.1,"Screen Space Error Factor")),v.appendChild(D),y.appendChild(m("Performance","performance")),y.appendChild(n),y.appendChild(m("Statistics","showStatistics"));var I=document.createElement("div");I.className="cesium-3dTilesInspector-statistics",I.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),y.appendChild(I),y.appendChild(m("Pick Statistics","showPickStatistics"));var M=document.createElement("div");M.className="cesium-3dTilesInspector-statistics",M.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),y.appendChild(M);var R=document.createElement("div");b.appendChild(R),R.appendChild(document.createTextNode("Color Blend Mode: "));var O=document.createElement("select");O.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),R.appendChild(O);var L=document.createElement("textarea");L.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(L);var N=d("compileStyle","Compile (Ctrl+Enter)");R.appendChild(N);var F=document.createElement("div");F.className="cesium-cesiumInspector-error",F.setAttribute("data-bind","text: editorError"),R.appendChild(F),C.appendChild(m("Show Picked Only","showOnlyPickedTileDebugLabel")),C.appendChild(m("Geometric Error","showGeometricError")),C.appendChild(m("Rendering Statistics","showRenderingStatistics")),C.appendChild(m("Memory Usage (MB)","showMemoryUsage")),C.appendChild(m("Url","showUrl")),S.appendChild(m("Skip Tile LODs","skipLevelOfDetail"));var B=document.createElement("div");B.appendChild(c("skipScreenSpaceErrorFactor",1,50,1,"Skip SSE Factor")),S.appendChild(B);var z=document.createElement("div");z.appendChild(c("baseScreenSpaceError",0,4096,1,"SSE before skipping LOD")),S.appendChild(z);var k=document.createElement("div");k.appendChild(c("skipLevels",0,10,1,"Min. levels to skip")),S.appendChild(k),S.appendChild(m("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),S.appendChild(m("Load siblings of visible tiles","loadSiblings")),o.applyBindings(u,r)}function c(e,i,r,n,o,a){a=t(a,e);var s=document.createElement("input");s.setAttribute("data-bind","value: "+a),s.type="number";var l=document.createElement("input");l.type="range",l.min=i,l.max=r,l.step=n,l.setAttribute("data-bind",'valueUpdate: "input", value: '+e);var u=document.createElement("div");u.appendChild(l);var c=document.createElement("div");return c.className="cesium-cesiumInspector-slider",c.appendChild(document.createTextNode(o)),c.appendChild(s),c.appendChild(u),c}function d(e,t,r){var n=document.createElement("button");n.type="button",n.textContent=t,n.className="cesium-cesiumInspector-pickButton";var o="click: "+e;return i(r)&&(o+=', css: {"cesium-cesiumInspector-pickButtonHighlight" : '+r+"}"),n.setAttribute("data-bind",o),n}return r(u.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),u.prototype.isDestroyed=function(){return!1},u.prototype.destroy=function(){return o.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),n(this)},u}),define("Widgets/CesiumInspector/CesiumInspectorViewModel",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/Rectangle","../../Core/ScreenSpaceEventHandler","../../Core/ScreenSpaceEventType","../../Scene/DebugModelMatrixPrimitive","../../Scene/PerformanceDisplay","../../Scene/TileCoordinatesImageryProvider","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(t){var i;if(e(t)){i="Command Statistics";var r=t.commandsInFrustums;for(var n in r)if(r.hasOwnProperty(n)){var o,a=parseInt(n,10);if(7===a)o="1, 2 and 3";else{for(var s=[],l=2;l>=0;l--){var u=Math.pow(2,l);a>=u&&(s.push(l+1),a-=u)}o=s.reverse().join(" and ")}i+="<br>    "+r[n]+" in frustum "+o}i+="<br>Total: "+t.totalCommands}return i}function p(e,t,i){var r=Math.min(i,t);return r=Math.max(r,e)}function f(t,i){function r(t){var i=f._scene.pick({x:t.position.x,y:t.position.y});e(i)&&(f.primitive=e(i.collection)?i.collection:i.primitive),f._scene.requestRender(),f.pickPrimitiveActive=!1}function h(t){var i,r=g.ellipsoid,o=f._scene.camera.pickEllipsoid({x:t.position.x,y:t.position.y},r);if(e(o))for(var a=r.cartesianToCartographic(o),s=g._surface.tileProvider._tilesToRenderByTextureCount,l=0;!i&&l<s.length;++l){var u=s[l];if(e(u))for(var c=0;!i&&c<u.length;++c){var d=u[c];n.contains(d.rectangle,a)&&(i=d)}}f.tile=i,f.pickTileActive=!1}var f=this,m=t.canvas,_=new o(m);this._eventHandler=_,this._scene=t,this._canvas=m,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=i;var g=this._scene.globe;g.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.globeDepth=!1,this.pickDepth=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",c.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","globeDepth","pickDepth","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=d(function(){f.dropDownVisible=!f.dropDownVisible}),this._toggleGeneral=d(function(){f.generalVisible=!f.generalVisible}),this._togglePrimitives=d(function(){f.primitivesVisible=!f.primitivesVisible}),this._toggleTerrain=d(function(){f.terrainVisible=!f.terrainVisible}),this._frustumsSubscription=c.getObservable(this,"frustums").subscribe(function(e){f._scene.debugShowFrustums=e,f._scene.requestRender()}),this._frustumPlanesSubscription=c.getObservable(this,"frustumPlanes").subscribe(function(e){f._scene.debugShowFrustumPlanes=e,f._scene.requestRender()}),this._performanceSubscription=c.getObservable(this,"performance").subscribe(function(e){e?f._performanceDisplay=new l({container:f._performanceContainer}):f._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=d(function(){return f._primitive.debugShowBoundingVolume=f.primitiveBoundingSphere,f._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=c.getObservable(this,"primitiveBoundingSphere").subscribe(function(){f._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=d(function(){if(f.primitiveReferenceFrame){var t=f._primitive.modelMatrix;f._modelMatrixPrimitive=new s({modelMatrix:t}),f._scene.primitives.add(f._modelMatrixPrimitive)}else e(f._modelMatrixPrimitive)&&(f._scene.primitives.remove(f._modelMatrixPrimitive),f._modelMatrixPrimitive=void 0);return f._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=c.getObservable(this,"primitiveReferenceFrame").subscribe(function(){f._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=d(function(){return f.filterPrimitive?f._scene.debugCommandFilter=function(t){return!(!e(f._modelMatrixPrimitive)||t.owner!==f._modelMatrixPrimitive._primitive)||!!e(f._primitive)&&(t.owner===f._primitive||t.owner===f._primitive._billboardCollection||t.owner.primitive===f._primitive)}:f._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=c.getObservable(this,"filterPrimitive").subscribe(function(){f._doFilterPrimitive(),f._scene.requestRender()}),this._wireframeSubscription=c.getObservable(this,"wireframe").subscribe(function(e){g._surface.tileProvider._debug.wireframe=e,f._scene.requestRender()}),this._globeDepthSubscription=c.getObservable(this,"globeDepth").subscribe(function(e){f._scene.debugShowGlobeDepth=e,f._scene.requestRender()}),this._pickDepthSubscription=c.getObservable(this,"pickDepth").subscribe(function(e){f._scene.debugShowPickDepth=e,f._scene.requestRender()}),this._depthFrustumSubscription=c.getObservable(this,"depthFrustum").subscribe(function(e){f._scene.debugShowDepthFrustum=e,f._scene.requestRender()}),this._incrementDepthFrustum=d(function(){var e=f.depthFrustum+1;return f.depthFrustum=p(1,f._numberOfFrustums,e),f._scene.requestRender(),!0}),this._decrementDepthFrustum=d(function(){var e=f.depthFrustum-1;return f.depthFrustum=p(1,f._numberOfFrustums,e),f._scene.requestRender(),!0}),this._suspendUpdatesSubscription=c.getObservable(this,"suspendUpdates").subscribe(function(e){g._surface._debug.suspendLodUpdate=e,e||(f.filterTile=!1)});var v;this._showTileCoordinates=d(function(){return f.tileCoordinates&&!e(v)?v=t.imageryLayers.addImageryProvider(new u({tilingScheme:t.terrainProvider.tilingScheme})):!f.tileCoordinates&&e(v)&&(t.imageryLayers.remove(v),v=void 0),!0}),this._tileCoordinatesSubscription=c.getObservable(this,"tileCoordinates").subscribe(function(){f._showTileCoordinates(),f._scene.requestRender()}),this._tileBoundingSphereSubscription=c.getObservable(this,"tileBoundingSphere").subscribe(function(){f._showTileBoundingSphere(),f._scene.requestRender()}),this._showTileBoundingSphere=d(function(){return f.tileBoundingSphere?g._surface.tileProvider._debug.boundingSphereTile=f._tile:g._surface.tileProvider._debug.boundingSphereTile=void 0,f._scene.requestRender(),!0}),this._doFilterTile=d(function(){return f.filterTile?(f.suspendUpdates=!0,g._surface._tilesToRender=[],e(f._tile)&&f._tile.renderable&&g._surface._tilesToRender.push(f._tile)):f.suspendUpdates=!1,!0}),this._filterTileSubscription=c.getObservable(this,"filterTile").subscribe(function(){f.doFilterTile(),f._scene.requestRender()}),this._pickPrimitive=d(function(){f.pickPrimitiveActive=!f.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=c.getObservable(this,"pickPrimitiveActive").subscribe(function(e){e?_.setInputAction(r,a.LEFT_CLICK):_.removeInputAction(a.LEFT_CLICK)}),this._pickTile=d(function(){f.pickTileActive=!f.pickTileActive}),this._pickTileActiveSubscription=c.getObservable(this,"pickTileActive").subscribe(function(e){e?_.setInputAction(h,a.LEFT_CLICK):_.removeInputAction(a.LEFT_CLICK)}),this._removePostRenderEvent=t.postRender.addEventListener(function(){f._update()})}return t(f.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){var e=this;return d(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){var e=this;return d(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){var e=this;return d(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){var e=this;return d(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){var e=this;return d(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(t){var i=this._primitive;t!==i&&(this.hasPickedPrimitive=!0,e(i)&&(i.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,e(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=t,t.show=!1,setTimeout(function(){t.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(t){if(e(t)){this.hasPickedTile=!0;if(t!==this._tile){this.tileText="L: "+t.level+" X: "+t.x+" Y: "+t.y,this.tileText+="<br>SW corner: "+t.rectangle.west+", "+t.rectangle.south,this.tileText+="<br>NE corner: "+t.rectangle.east+", "+t.rectangle.north;var i=t.data;e(i)?this.tileText+="<br>Min: "+i.minimumHeight+" Max: "+i.maximumHeight:this.tileText+="<br>(Tile is not loaded)"}this._tile=t,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}}),f.prototype._update=function(){this.frustums&&(this.frustumStatisticText=h(this._scene.debugFrustumStatistics));var e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=p(1,e,this.depthFrustum),this.depthFrustumText=this.depthFrustum+" of "+e,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText="Cached shaders: "+this._scene.context.shaderCache.numberOfShaders},f.prototype.isDestroyed=function(){return!1},f.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._globeDepthSubscription.dispose(),this._pickDepthSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),i(this)},f}),define("Widgets/CesiumInspector/CesiumInspector",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","../InspectorShared","./CesiumInspectorViewModel"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t){e=o(e);var i=document.createElement("div"),r=new s(t,i);this._viewModel=r,this._container=e;var l=document.createElement("div");this._element=l;var u=document.createElement("div");u.textContent="Cesium Inspector",u.className="cesium-cesiumInspector-button",u.setAttribute("data-bind","click: toggleDropDown"),l.appendChild(u),l.className="cesium-cesiumInspector",l.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);var c=document.createElement("div");this._panel=c,c.className="cesium-cesiumInspector-dropDown",l.appendChild(c);var d=a.createSection,h=a.createCheckbox,p=d(c,"General","generalVisible","toggleGeneral"),f=h("Show Frustums","frustums"),m=document.createElement("div");m.className="cesium-cesiumInspector-frustumStatistics", -m.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(m),p.appendChild(f),p.appendChild(h("Show Frustum Planes","frustumPlanes")),p.appendChild(h("Performance Display","performance")),i.className="cesium-cesiumInspector-performanceDisplay",p.appendChild(i);var _=document.createElement("div");_.className="cesium-cesiumInspector-shaderCache",_.setAttribute("data-bind","html: shaderCacheText"),p.appendChild(_);var g=document.createElement("div");p.appendChild(g);var v=document.createElement("span");v.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(v);var y=document.createElement("span");y.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(y);var C=document.createElement("input");C.type="button",C.value="-",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(C);var b=document.createElement("input");b.type="button",b.value="+",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(b);var S=d(c,"Primitives","primitivesVisible","togglePrimitives"),T=document.createElement("div");T.className="cesium-cesiumInspector-pickSection",S.appendChild(T);var E=document.createElement("input");E.type="button",E.value="Pick a primitive",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');var A=document.createElement("div");A.className="cesium-cesiumInspector-center",A.appendChild(E),T.appendChild(A),T.appendChild(h("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),T.appendChild(h("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=h("Show only selected","filterPrimitive","hasPickedPrimitive"),T.appendChild(this._primitiveOnly);var w=d(c,"Terrain","terrainVisible","toggleTerrain"),x=document.createElement("div");x.className="cesium-cesiumInspector-pickSection",w.appendChild(x);var P=document.createElement("input");P.type="button",P.value="Pick a tile",P.className="cesium-cesiumInspector-pickButton",P.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),A=document.createElement("div"),A.appendChild(P),A.className="cesium-cesiumInspector-center",x.appendChild(A);var D=document.createElement("div");x.appendChild(D);var I=document.createElement("input");I.type="button",I.value="Parent",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectParent");var M=document.createElement("input");M.type="button",M.value="NW",M.className="cesium-cesiumInspector-pickButton",M.setAttribute("data-bind","click: selectNW");var R=document.createElement("input");R.type="button",R.value="NE",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind","click: selectNE");var O=document.createElement("input");O.type="button",O.value="SW",O.className="cesium-cesiumInspector-pickButton",O.setAttribute("data-bind","click: selectSW");var L=document.createElement("input");L.type="button",L.value="SE",L.className="cesium-cesiumInspector-pickButton",L.setAttribute("data-bind","click: selectSE");var N=document.createElement("div");N.className="cesium-cesiumInspector-tileText",D.className="cesium-cesiumInspector-frustumStatistics",D.appendChild(N),D.setAttribute("data-bind","visible: hasPickedTile"),N.setAttribute("data-bind","html: tileText");var F=document.createElement("div");F.className="cesium-cesiumInspector-relativeText",F.textContent="Select relative:",D.appendChild(F);var B=document.createElement("table"),z=document.createElement("tr"),k=document.createElement("tr"),V=document.createElement("td");V.appendChild(I);var U=document.createElement("td");U.appendChild(M);var G=document.createElement("td");G.appendChild(R),z.appendChild(V),z.appendChild(U),z.appendChild(G);var H=document.createElement("td"),W=document.createElement("td");W.appendChild(O);var q=document.createElement("td");q.appendChild(L),k.appendChild(H),k.appendChild(W),k.appendChild(q),B.appendChild(z),B.appendChild(k),D.appendChild(B),x.appendChild(h("Show bounding volume","tileBoundingSphere","hasPickedTile")),x.appendChild(h("Show only selected","filterTile","hasPickedTile")),w.appendChild(h("Wireframe","wireframe")),w.appendChild(h("Suspend LOD update","suspendUpdates")),w.appendChild(h("Show tile coordinates","tileCoordinates")),n.applyBindings(r,this._element)}return t(l.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return n.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),i(this)},l}),define("Widgets/CesiumWidget/CesiumWidget",["../../Core/buildModuleUrl","../../Core/Cartesian3","../../Core/Clock","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/Ellipsoid","../../Core/FeatureDetection","../../Core/formatError","../../Core/requestAnimationFrame","../../Core/ScreenSpaceEventHandler","../../Scene/createWorldImagery","../../Scene/Globe","../../Scene/Moon","../../Scene/Scene","../../Scene/SceneMode","../../Scene/ShadowMode","../../Scene/SkyAtmosphere","../../Scene/SkyBox","../../Scene/Sun","../getElement"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S){"use strict";function T(t){return e("Assets/Textures/SkyBox/tycho2t3_80_"+t+".jpg")}function E(e){function t(r){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{var o=e._targetFrameRate;if(n(o)){var a=1e3/o,s=r-i;s>a&&(e.resize(),e.render(),i=r-s%a),d(t)}else e.resize(),e.render(),d(t)}catch(t){if(e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors){e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,t)}}else e._renderLoopRunning=!1}e._renderLoopRunning=!0;var i=0;d(t)}function A(e){var t=e._canvas,i=t.clientWidth,n=t.clientHeight,o=e._resolutionScale;e._supportsImageRenderingPixelated||(o*=r(window.devicePixelRatio,1)),e._canvasWidth=i,e._canvasHeight=n,i*=o,n*=o,t.width=i,t.height=n,e._canRender=0!==i&&0!==n}function w(e){var t=e._canvas,i=t.width,r=t.height;if(0!==i&&0!==r){var o=e._scene.camera.frustum;n(o.aspectRatio)?o.aspectRatio=i/r:(o.top=o.right*(r/i),o.bottom=-o.top)}}function x(e,o){e=S(e),o=r(o,{});var a=document.createElement("div");a.className="cesium-widget",e.appendChild(a);var s=document.createElement("canvas"),c=u.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=c,c&&(s.style.imageRendering=u.imageRenderingValue()),s.oncontextmenu=function(){return!1},s.onselectstart=function(){return!1},a.appendChild(s);var d=document.createElement("div");d.className="cesium-widget-credits";var E=n(o.creditContainer)?S(o.creditContainer):a;E.appendChild(d);var x=n(o.creditViewport)?S(o.creditViewport):a,P=r(o.showRenderLoopErrors,!0);this._element=a,this._container=e,this._canvas=s,this._canvasWidth=0,this._canvasHeight=0,this._creditViewport=x,this._creditContainer=E,this._innerCreditContainer=d,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=P,this._resolutionScale=1,this._forceResize=!1,this._clock=n(o.clock)?o.clock:new i,A(this);try{var D=new _({canvas:s,contextOptions:o.contextOptions,creditContainer:d,creditViewport:x,mapProjection:o.mapProjection,orderIndependentTranslucency:o.orderIndependentTranslucency,scene3DOnly:r(o.scene3DOnly,!1),terrainExaggeration:o.terrainExaggeration,shadows:o.shadows,mapMode2D:o.mapMode2D,requestRenderMode:o.requestRenderMode,maximumRenderTimeChange:o.maximumRenderTimeChange});this._scene=D,D.camera.constrainedAxis=t.UNIT_Z,w(this);var I=r(D.mapProjection.ellipsoid,l.WGS84),M=o.globe;n(M)||(M=new f(I)),!1!==M&&(D.globe=M,D.globe.shadows=r(o.terrainShadows,v.RECEIVE_ONLY));var R=o.skyBox;n(R)||(R=new C({sources:{positiveX:T("px"),negativeX:T("mx"),positiveY:T("py"),negativeY:T("my"),positiveZ:T("pz"),negativeZ:T("mz")}})),!1!==R&&(D.skyBox=R,D.sun=new b,D.moon=new m);var O=o.skyAtmosphere;n(O)||(O=new y(I)),!1!==O&&(D.skyAtmosphere=O);var L=!1!==o.globe&&o.imageryProvider;n(L)||(L=p()),!1!==L&&D.imageryLayers.addImageryProvider(L),n(o.terrainProvider)&&!1!==o.globe&&(D.terrainProvider=o.terrainProvider),this._screenSpaceEventHandler=new h(s,!1),n(o.sceneMode)&&(o.sceneMode===g.SCENE2D&&this._scene.morphTo2D(0),o.sceneMode===g.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=r(o.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=o.targetFrameRate;var N=this;D.renderError.addEventListener(function(e,t){if(N._useDefaultRenderLoop=!1,N._renderLoopRunning=!1,N._showRenderLoopErrors){N.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,t)}})}catch(e){if(P){this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',e)}throw e}}return o(x.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},camera:{get:function(){return this._scene.camera}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&E(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale=e,this._forceResize=!0}}}),x.prototype.showErrorPanel=function(e,t,i){function r(){u.style.maxHeight=Math.max(Math.round(.9*o.clientHeight-100),30)+"px"}var o=this._element,a=document.createElement("div");a.className="cesium-widget-errorPanel";var s=document.createElement("div");s.className="cesium-widget-errorPanel-content",a.appendChild(s);var l=document.createElement("div");l.className="cesium-widget-errorPanel-header",l.appendChild(document.createTextNode(e)),s.appendChild(l);var u=document.createElement("div");if(u.className="cesium-widget-errorPanel-scroll",s.appendChild(u),r(),n(window.addEventListener)&&window.addEventListener("resize",r,!1),n(t)){var d=document.createElement("div");d.className="cesium-widget-errorPanel-message",d.innerHTML="<p>"+t+"</p>",u.appendChild(d)}var h="(no error details available)";n(i)&&(h=c(i));var p=document.createElement("div");p.className="cesium-widget-errorPanel-message",p.appendChild(document.createTextNode(h)),u.appendChild(p);var f=document.createElement("div");f.className="cesium-widget-errorPanel-buttonPanel",s.appendChild(f);var m=document.createElement("button");m.setAttribute("type","button"),m.className="cesium-button",m.appendChild(document.createTextNode("OK")),m.onclick=function(){n(r)&&n(window.removeEventListener)&&window.removeEventListener("resize",r,!1),o.removeChild(a)},f.appendChild(m),o.appendChild(a),"undefined"!=typeof console&&console.error(e+"\n"+t+"\n"+h)},x.prototype.isDestroyed=function(){return!1},x.prototype.destroy=function(){this._scene=this._scene&&this._scene.destroy(),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),a(this)},x.prototype.resize=function(){var e=this._canvas,t=e.clientWidth,i=e.clientHeight;(this._forceResize||this._canvasWidth!==t||this._canvasHeight!==i)&&(this._forceResize=!1,A(this),w(this),this._scene.requestRender())},x.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();var e=this._clock.tick();this._scene.render(e)}else this._clock.tick()},x}),define("Widgets/FullscreenButton/FullscreenButtonViewModel",["../../Core/defaultValue","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/Fullscreen","../../ThirdParty/knockout","../createCommand","../getElement"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){var i=this,r=o.observable(n.fullscreen),l=o.observable(n.enabled);this.isFullscreen=void 0,o.defineProperty(this,"isFullscreen",{get:function(){return r()}}),this.isFullscreenEnabled=void 0,o.defineProperty(this,"isFullscreenEnabled",{get:function(){return l()},set:function(e){l(e&&n.enabled)}}),this.tooltip=void 0,o.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?r()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=a(function(){n.fullscreen?n.exitFullscreen():n.requestFullscreen(i._fullscreenElement)},o.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=e(s(t),document.body),this._callback=function(){r(n.fullscreen)},document.addEventListener(n.changeEventName,this._callback)}return t(l.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){document.removeEventListener(n.changeEventName,this._callback),i(this)},l}),define("Widgets/FullscreenButton/FullscreenButton",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","./FullscreenButtonViewModel"],function(e,t,i,r,n,o,a){"use strict";function s(e,t){e=o(e);var i=new a(t);i._exitFullScreenPath=u,i._enterFullScreenPath=l;var r=document.createElement("button");r.type="button",r.className="cesium-button cesium-fullscreenButton",r.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(r),n.applyBindings(i,r),this._container=e,this._viewModel=i,this._element=r}var l="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",u="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";return t(s.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return this._viewModel.destroy(),n.cleanNode(this._element),this._container.removeChild(this._element),i(this)},s}),define("Widgets/Geocoder/GeocoderViewModel",["../../Core/IonGeocoderService","../../Core/CartographicGeocoderService","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../Core/Event","../../Core/GeocodeType","../../Core/Math","../../Core/Matrix4","../../Core/Rectangle","../../Core/sampleTerrainMostDetailed","../../Scene/computeFlyToLocationForRectangle","../../ThirdParty/knockout","../../ThirdParty/when","../createCommand","../getElement"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_){"use strict";function g(n){r(n.geocoderServices)?this._geocoderServices=n.geocoderServices:this._geocoderServices=[new t,new e({scene:n.scene})],this._viewContainer=n.container,this._scene=n.scene,this._flightDuration=n.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._geocodePromise=void 0,this._complete=new a,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=y,this._handleArrowUp=v;var o=this;this._suggestionsVisible=p.pureComputed(function(){var e=p.getObservable(o,"_suggestions"),t=e().length>0,i=p.getObservable(o,"_showSuggestions")();return t&&i}),this._searchCommand=m(function(e){if(e=i(e,s.SEARCH),o._focusTextbox=!1,r(o._selectedSuggestion))return o.activateSuggestion(o._selectedSuggestion),!1;o.hideSuggestions(),o.isSearchInProgress?A(o):T(o,o._geocoderServices,e)}),this.deselectSuggestion=function(){o._selectedSuggestion=void 0},this.handleKeyDown=function(e,t){var i="ArrowDown"===t.key||"Down"===t.key||40===t.keyCode,r="ArrowUp"===t.key||"Up"===t.key||38===t.keyCode;return(i||r)&&t.preventDefault(),!0},this.handleKeyUp=function(e,t){var i="ArrowDown"===t.key||"Down"===t.key||40===t.keyCode,r="ArrowUp"===t.key||"Up"===t.key||38===t.keyCode,n="Enter"===t.key||13===t.keyCode;return r?v(o):i?y(o):n&&o._searchCommand(),!0},this.activateSuggestion=function(e){o.hideSuggestions(),o._searchText=e.displayName;var t=e.destination;x(o),o.destinationFound(o,t)},this.hideSuggestions=function(){o._showSuggestions=!1,o._selectedSuggestion=void 0},this.showSuggestions=function(){o._showSuggestions=!0},this.handleMouseover=function(e,t){e!==o._selectedSuggestion&&(o._selectedSuggestion=e)},this.keepExpanded=!1,this.autoComplete=i(n.autocomplete,!0),this.destinationFound=i(n.destinationFound,g.flyToDestination),this._focusTextbox=!1,p.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);var l=p.getObservable(this,"_searchText");l.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=l.subscribe(function(){g._updateSearchSuggestions(o)}),this.isSearchInProgress=void 0,p.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,p.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(e){this._searchText=e}}),this.flightDuration=void 0,p.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(e){this._flightDuration=e}})}function v(e){if(0!==e._suggestions.length){var t,i=e._suggestions.indexOf(e._selectedSuggestion);if(-1===i||0===i)return void(e._selectedSuggestion=void 0);t=i-1,e._selectedSuggestion=e._suggestions[t],g._adjustSuggestionsScroll(e,t)}}function y(e){if(0!==e._suggestions.length){var t=e._suggestions.length,i=e._suggestions.indexOf(e._selectedSuggestion),r=(i+1)%t;e._selectedSuggestion=e._suggestions[r],g._adjustSuggestionsScroll(e,r)}}function C(e,t){var i=r(t)?t.availability:void 0;return r(i)?d(t,[e]).then(function(t){return e=t[0],e.height+=D,e}):(e.height+=D,f.resolve(e))}function b(e,t){var i,n=e._scene,o=n.mapProjection,a=o.ellipsoid,s=n.camera,d=n.terrainProvider,p=t;t instanceof c?l.equalsEpsilon(t.south,t.north,l.EPSILON7)&&l.equalsEpsilon(t.east,t.west,l.EPSILON7)?t=c.center(t):i=h(t,n):t=a.cartesianToCartographic(t),r(i)||(i=C(t,d)),i.then(function(e){p=a.cartographicToCartesian(e)}).always(function(){s.flyTo({destination:p,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:u.IDENTITY})})}function S(e,t,i,n){return e.then(function(e){return r(e)&&"fulfilled"===e.state&&e.value.length>0?e:t.geocode(i,n).then(function(e){return{state:"fulfilled",value:e}}).otherwise(function(e){return{state:"rejected",reason:e}})})}function T(e,t,i){var n=e._searchText;if(w(n))return void e.showSuggestions();e._isSearchInProgress=!0;for(var o=f.resolve(),a=0;a<t.length;a++)o=S(o,t[a],n,i);e._geocodePromise=o,o.then(function(t){if(!o.cancel){e._isSearchInProgress=!1;var i=t.value;if("fulfilled"===t.state&&r(i)&&i.length>0)return e._searchText=i[0].displayName,void e.destinationFound(e,i[0].destination);e._searchText=n+" (not found)"}})}function E(e,t){var i=_(e._viewContainer),r=i.getElementsByClassName("search-results")[0],n=i.getElementsByTagName("li"),o=n[t];if(0===t)return void(r.scrollTop=0);var a=o.offsetTop;a+o.clientHeight>r.clientHeight?r.scrollTop=a+o.clientHeight:a<r.scrollTop&&(r.scrollTop=a)}function A(e){e._isSearchInProgress=!1,r(e._geocodePromise)&&(e._geocodePromise.cancel=!0,e._geocodePromise=void 0)}function w(e){return/^\s*$/.test(e)}function x(e){p.getObservable(e,"_suggestions").removeAll()}function P(e){if(e.autoComplete){var t=e._searchText;if(x(e),!w(t)){var i=f.resolve([]);e._geocoderServices.forEach(function(e){i=i.then(function(i){return i.length>=5?i:e.geocode(t,s.AUTOCOMPLETE).then(function(e){return i=i.concat(e)})})}),i.then(function(t){for(var i=e._suggestions,r=0;r<t.length;r++)i.push(t[r])})}}}var D=1e3;return n(g.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}}),g.prototype.destroy=function(){this._suggestionSubscription.dispose()},g.flyToDestination=b,g._updateSearchSuggestions=P,g._adjustSuggestionsScroll=E,g}),define("Widgets/Geocoder/Geocoder",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/FeatureDetection","../../ThirdParty/knockout","../getElement","./GeocoderViewModel"],function(e,t,i,r,n,o,a,s){"use strict";function l(e){var t=a(e.container),i=new s(e);i._startSearchPath=u,i._stopSearchPath=c;var r=document.createElement("form");r.setAttribute("data-bind","submit: search");var l=document.createElement("input");l.type="search",l.className="cesium-geocoder-input",l.setAttribute("placeholder","Enter an address or landmark..."),l.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){l.select()},0)},l.addEventListener("focus",this._onTextBoxFocus,!1),r.appendChild(l),this._textBox=l;var d=document.createElement("span");d.className="cesium-geocoder-searchButton",d.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),r.appendChild(d),t.appendChild(r);var h=document.createElement("div");h.className="search-results",h.setAttribute("data-bind","visible: _suggestionsVisible");var p=document.createElement("ul");p.setAttribute("data-bind","foreach: _suggestions");var f=document.createElement("li");p.appendChild(f),f.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),h.appendChild(p),t.appendChild(h),o.applyBindings(i,r),o.applyBindings(i,h),this._container=t,this._searchSuggestionsContainer=h,this._viewModel=i,this._form=r,this._onInputBegin=function(e){t.contains(e.target)||(i._focusTextbox=!1,i.hideSuggestions())},this._onInputEnd=function(e){t.contains(e.target)&&(i._focusTextbox=!0,i.showSuggestions())},n.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),document.addEventListener("pointerup",this._onInputEnd,!0),document.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),document.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),document.addEventListener("touchend",this._onInputEnd,!0),document.addEventListener("touchcancel",this._onInputEnd,!0))}var u="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",c="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";return t(l.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return n.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),document.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),document.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),document.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),o.cleanNode(this._form),o.cleanNode(this._searchSuggestionsContainer),this._container.removeChild(this._form),this._container.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),i(this)},l}),define("Widgets/HomeButton/HomeButtonViewModel",["../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n){"use strict";function o(e,t){this._scene=e,this._duration=t;var i=this;this._command=n(function(){i._scene.camera.flyHome(i._duration)}),this.tooltip="View Home",r.track(this,["tooltip"])}return t(o.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}}),o}),define("Widgets/HomeButton/HomeButton",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","./HomeButtonViewModel"],function(e,t,i,r,n,o,a){"use strict";function s(e,t,i){e=o(e);var r=new a(t,i);r._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";var s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-home-button",s.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(s),n.applyBindings(r,s),this._container=e,this._viewModel=r,this._element=s}return t(s.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return n.cleanNode(this._element),this._container.removeChild(this._element),i(this)},s}),define("Widgets/InfoBox/InfoBoxViewModel",["../../Core/defined","../../Core/defineProperties","../../Core/Event","../../ThirdParty/knockout"],function(e,t,i,r){"use strict";function n(){this._cameraClicked=new i,this._closeClicked=new i,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",r.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,r.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?a:o}}),r.defineProperty(this,"_bodyless",{get:function(){return!e(this.description)||0===this.description.length}})}var o="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",a="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";return n.prototype.maxHeightOffset=function(e){return this.maxHeight-e+"px"},t(n.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}}),n}),define("Widgets/InfoBox/InfoBox",["../../Core/buildModuleUrl","../../Core/Check","../../Core/Color","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../ThirdParty/knockout","../getElement","../subscribeAndEvaluate","./InfoBoxViewModel"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t){t=s(t);var n=document.createElement("div");n.className="cesium-infoBox",n.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),t.appendChild(n);var o=document.createElement("div");o.className="cesium-infoBox-title",o.setAttribute("data-bind","text: titleText"),n.appendChild(o);var c=document.createElement("button");c.type="button",c.className="cesium-button cesium-infoBox-camera",c.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),n.appendChild(c);var d=document.createElement("button");d.type="button",d.className="cesium-infoBox-close",d.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),d.innerHTML="×",n.appendChild(d);var h=document.createElement("iframe");h.className="cesium-infoBox-iframe",h.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),h.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),h.setAttribute("allowfullscreen",!0),n.appendChild(h);var p=new u;a.applyBindings(p,n),this._container=t,this._element=n,this._frame=h,this._viewModel=p,this._descriptionSubscription=void 0;var f=this;h.addEventListener("load",function(){ -var t=h.contentDocument,o=t.createElement("link");o.href=e("Widgets/InfoBox/InfoBoxDescription.css"),o.rel="stylesheet",o.type="text/css";var a=t.createElement("div");a.className="cesium-infoBox-description",t.head.appendChild(o),t.body.appendChild(a),f._descriptionSubscription=l(p,"description",function(e){h.style.height="5px",a.innerHTML=e;var t=null,o=a.firstElementChild;if(null!==o&&1===a.childNodes.length){var s=window.getComputedStyle(o);if(null!==s){var l=s["background-color"],u=i.fromCssColorString(l);r(u)&&0!==u.alpha&&(t=s["background-color"])}}n.style["background-color"]=t;var c=a.getBoundingClientRect().height;h.style.height=c+"px"})}),h.setAttribute("src","about:blank")}return n(c.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}}),c.prototype.isDestroyed=function(){return!1},c.prototype.destroy=function(){var e=this._container;return a.cleanNode(this._element),e.removeChild(this._element),r(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),o(this)},c}),define("Widgets/NavigationHelpButton/NavigationHelpButtonViewModel",["../../Core/defineProperties","../../ThirdParty/knockout","../createCommand"],function(e,t,i){"use strict";function r(){this.showInstructions=!1;var e=this;this._command=i(function(){e.showInstructions=!e.showInstructions}),this._showClick=i(function(){e._touch=!1}),this._showTouch=i(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",t.track(this,["tooltip","showInstructions","_touch"])}return e(r.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}}),r}),define("Widgets/NavigationHelpButton/NavigationHelpButton",["../../Core/buildModuleUrl","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/FeatureDetection","../../ThirdParty/knockout","../getElement","./NavigationHelpButtonViewModel"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(i){var r=l(i.container),n=new u,o=t(i.instructionsInitiallyVisible,!1);n.showInstructions=o,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";var c=document.createElement("span");c.className="cesium-navigationHelpButton-wrapper",r.appendChild(c);var d=document.createElement("button");d.type="button",d.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",d.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),c.appendChild(d);var h=document.createElement("div");h.className="cesium-navigation-help",h.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),c.appendChild(h);var p=document.createElement("button");p.type="button",p.className="cesium-navigation-button cesium-navigation-button-left",p.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');var f=document.createElement("img");f.src=e("Widgets/Images/NavigationHelp/Mouse.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",p.appendChild(f),p.appendChild(document.createTextNode("Mouse"));var m=document.createElement("button");m.type="button",m.className="cesium-navigation-button cesium-navigation-button-right",m.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');var _=document.createElement("img");_.src=e("Widgets/Images/NavigationHelp/Touch.svg"),_.className="cesium-navigation-button-icon",_.style.width="25px",_.style.height="25px",m.appendChild(_),m.appendChild(document.createTextNode("Touch")),h.appendChild(p),h.appendChild(m);var g=document.createElement("div");g.className="cesium-click-navigation-help cesium-navigation-help-instructions",g.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),g.innerHTML=' <table> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/MouseLeft.svg")+'" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/MouseRight.svg")+'" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/MouseMiddle.svg")+'" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>',h.appendChild(g);var v=document.createElement("div");v.className="cesium-touch-navigation-help cesium-navigation-help-instructions",v.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),v.innerHTML=' <table> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/TouchDrag.svg")+'" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/TouchZoom.svg")+'" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/TouchTilt.svg")+'" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="'+e("Widgets/Images/NavigationHelp/TouchRotate.svg")+'" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>',h.appendChild(v),s.applyBindings(n,c),this._container=r,this._viewModel=n,this._wrapper=c,this._closeInstructions=function(e){c.contains(e.target)||(n.showInstructions=!1)},a.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}return r(c.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),c.prototype.isDestroyed=function(){return!1},c.prototype.destroy=function(){return a.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),s.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),n(this)},c}),define("Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Scene/FrameRateMonitor","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o,a,s){"use strict";function l(t){this._scene=t.scene,this.lowFrameRateMessage=e(t.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,a.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);var i=this;this._dismissMessage=s(function(){i.showingLowFrameRateMessage=!1,i.lowFrameRateMessageDismissed=!0});var r=o.fromScene(t.scene);this._unsubscribeLowFrameRate=r.lowFrameRate.addEventListener(function(){i.lowFrameRateMessageDismissed||(i.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=r.nominalFrameRate.addEventListener(function(){i.showingLowFrameRateMessage=!1})}return i(l.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}}),l.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),r(this)},l}),define("Widgets/PerformanceWatchdog/PerformanceWatchdog",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","./PerformanceWatchdogViewModel"],function(e,t,i,r,n,o,a){"use strict";function s(e){var t=o(e.container),i=new a(e),r=document.createElement("div");r.className="cesium-performance-watchdog-message-area",r.setAttribute("data-bind","visible: showingLowFrameRateMessage");var s=document.createElement("button");s.setAttribute("type","button"),s.className="cesium-performance-watchdog-message-dismiss",s.innerHTML="×",s.setAttribute("data-bind","click: dismissMessage"),r.appendChild(s);var l=document.createElement("div");l.className="cesium-performance-watchdog-message",l.setAttribute("data-bind","html: lowFrameRateMessage"),r.appendChild(l),t.appendChild(r),n.applyBindings(i,r),this._container=t,this._viewModel=i,this._element=r}return t(s.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return this._viewModel.destroy(),n.cleanNode(this._element),this._container.removeChild(this._element),i(this)},s}),define("Widgets/ProjectionPicker/ProjectionPickerViewModel",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/EventHelper","../../Core/OrthographicFrustum","../../Scene/SceneMode","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t){this._scene=t,this._orthographic=t.camera.frustum instanceof o,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=t.mode,s.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);var i=this;s.defineProperty(this,"selectedTooltip",function(){return i._orthographic?i.tooltipOrthographic:i.tooltipPerspective}),this._toggleDropDown=l(function(){i.sceneMode===a.SCENE2D||i._flightInProgress||(i.dropDownVisible=!i.dropDownVisible)}),this._eventHelper=new n,this._eventHelper.add(t.morphComplete,function(e,t,r,n){i.sceneMode=r,i._orthographic=r===a.SCENE2D||i._scene.camera.frustum instanceof o}),this._eventHelper.add(t.preRender,function(){i._flightInProgress=e(t.camera._currentFlight)}),this._switchToPerspective=l(function(){i.sceneMode!==a.SCENE2D&&(i._scene.camera.switchToPerspectiveFrustum(),i._orthographic=!1,i.dropDownVisible=!1)}),this._switchToOrthographic=l(function(){i.sceneMode!==a.SCENE2D&&(i._scene.camera.switchToOrthographicFrustum(),i._orthographic=!0,i.dropDownVisible=!1)}),this._sceneMode=a}return t(u.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}}),u.prototype.isDestroyed=function(){return!1},u.prototype.destroy=function(){this._eventHelper.removeAll(),i(this)},u}),define("Widgets/ProjectionPicker/ProjectionPicker",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/FeatureDetection","../../ThirdParty/knockout","../getElement","./ProjectionPickerViewModel"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t){e=a(e);var i=new s(t);i._perspectivePath=u,i._orthographicPath=c;var r=document.createElement("span");r.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(r);var l=document.createElement("button");l.type="button",l.className="cesium-button cesium-toolbar-button",l.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),l.innerHTML='\x3c!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --\x3e\x3c!-- /ko --\x3e',r.appendChild(l);var d=document.createElement("button");d.type="button",d.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",d.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),r.appendChild(d);var h=document.createElement("button");h.type="button",h.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",h.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),r.appendChild(h),o.applyBindings(i,r),this._viewModel=i,this._container=e,this._wrapper=r,this._closeDropDown=function(e){r.contains(e.target)||(i.dropDownVisible=!1)},n.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}var u="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",c="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";return t(l.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return this._viewModel.destroy(),n.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),o.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),i(this)},l}),define("Widgets/SceneModePicker/SceneModePickerViewModel",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/EventHelper","../../Scene/SceneMode","../../ThirdParty/knockout","../createCommand"],function(e,t,i,r,n,o,a,s,l){"use strict";function u(t,i){this._scene=t;var r=this,n=function(e,t,i,n){r.sceneMode=i,r.dropDownVisible=!1};this._eventHelper=new o,this._eventHelper.add(t.morphStart,n),this._duration=e(i,2),this.sceneMode=t.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",s.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,s.defineProperty(this,"selectedTooltip",function(){var e=r.sceneMode;return e===a.SCENE2D?r.tooltip2D:e===a.SCENE3D?r.tooltip3D:r.tooltipColumbusView}),this._toggleDropDown=l(function(){r.dropDownVisible=!r.dropDownVisible}),this._morphTo2D=l(function(){t.morphTo2D(r._duration)}),this._morphTo3D=l(function(){t.morphTo3D(r._duration)}),this._morphToColumbusView=l(function(){t.morphToColumbusView(r._duration)}),this._sceneMode=a}return i(u.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}}),u.prototype.isDestroyed=function(){return!1},u.prototype.destroy=function(){this._eventHelper.removeAll(),r(this)},u}),define("Widgets/SceneModePicker/SceneModePicker",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/FeatureDetection","../../ThirdParty/knockout","../getElement","./SceneModePickerViewModel"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t,i){e=a(e);var r=new s(t,i);r._globePath=u,r._flatMapPath=c,r._columbusViewPath=d;var l=document.createElement("span");l.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(l);var h=document.createElement("button");h.type="button",h.className="cesium-button cesium-toolbar-button",h.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),h.innerHTML='\x3c!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --\x3e\x3c!-- /ko --\x3e\x3c!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --\x3e\x3c!-- /ko --\x3e',l.appendChild(h);var p=document.createElement("button");p.type="button",p.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",p.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),l.appendChild(p);var f=document.createElement("button");f.type="button",f.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",f.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),l.appendChild(f);var m=document.createElement("button");m.type="button",m.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",m.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),l.appendChild(m),o.applyBindings(r,l),this._viewModel=r,this._container=e,this._wrapper=l,this._closeDropDown=function(e){l.contains(e.target)||(r.dropDownVisible=!1)},n.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}var u="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",c="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",d="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";return t(l.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){return this._viewModel.destroy(),n.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),o.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),i(this)},l}),define("Widgets/SelectionIndicator/SelectionIndicatorViewModel",["../../Core/Cartesian2","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../Core/EasingFunction","../../Scene/SceneTransforms","../../ThirdParty/knockout"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,r,n){this._scene=e,this._screenPositionX=c,this._screenPositionY=c,this._tweens=e.tweens,this._container=t(n,document.body),this._selectionIndicatorElement=r,this._scale=1,this.position=void 0,this.showSelection=!1,s.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,s.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&i(this.position)}}),s.defineProperty(this,"_transform",{get:function(){return"scale("+this._scale+")"}}),this.computeScreenSpacePosition=function(t,i){return a.wgs84ToWindowCoordinates(e,t,i)}}var u=new e,c="-1000px";return l.prototype.update=function(){if(this.showSelection&&i(this.position)){var e=this.computeScreenSpacePosition(this.position,u);if(i(e)){var t=this._container,r=t.parentNode.clientWidth,n=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,a=.5*o;e.x=Math.min(Math.max(e.x,-o),r+o)-a,e.y=Math.min(Math.max(e.y,-o),n+o)-a, -this._screenPositionX=Math.floor(e.x+.25)+"px",this._screenPositionY=Math.floor(e.y+.25)+"px"}else this._screenPositionX=c,this._screenPositionY=c}},l.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:o.EXPONENTIAL_OUT})},l.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:o.EXPONENTIAL_OUT})},r(l.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}}),l}),define("Widgets/SelectionIndicator/SelectionIndicator",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","./SelectionIndicatorViewModel"],function(e,t,i,r,n,o,a){"use strict";function s(e,t){e=o(e),this._container=e;var i=document.createElement("div");i.className="cesium-selection-wrapper",i.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(i),this._element=i;var r="http://www.w3.org/2000/svg",s=document.createElementNS(r,"svg:svg");s.setAttribute("width",160),s.setAttribute("height",160),s.setAttribute("viewBox","0 0 160 160");var l=document.createElementNS(r,"g");l.setAttribute("transform","translate(80,80)"),s.appendChild(l);var u=document.createElementNS(r,"path");u.setAttribute("data-bind","attr: { transform: _transform }"),u.setAttribute("d","M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z"),l.appendChild(u),i.appendChild(s);var c=new a(t,this._element,this._container);this._viewModel=c,n.applyBindings(this._viewModel,this._element)}return t(s.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){var e=this._container;return n.cleanNode(this._element),e.removeChild(this._element),i(this)},s}),define("Widgets/Timeline/TimelineHighlightRange",["../../Core/defaultValue","../../Core/JulianDate"],function(e,t){"use strict";function i(t,i,r){this._color=t,this._height=i,this._base=e(r,0)}return i.prototype.getHeight=function(){return this._height},i.prototype.getBase=function(){return this._base},i.prototype.getStartTime=function(){return this._start},i.prototype.getStopTime=function(){return this._stop},i.prototype.setRange=function(e,t){this._start=e,this._stop=t},i.prototype.render=function(e){var i="";if(this._start&&this._stop&&this._color){var r=t.secondsDifference(this._start,e.epochJulian),n=Math.round(e.timeBarWidth*e.getAlpha(r)),o=t.secondsDifference(this._stop,e.epochJulian),a=Math.round(e.timeBarWidth*e.getAlpha(o))-n;n<0&&(a+=n,n=0),n+a>e.timeBarWidth&&(a=e.timeBarWidth-n),a>0&&(i='<span class="cesium-timeline-highlight" style="left: '+n.toString()+"px; width: "+a.toString()+"px; bottom: "+this._base.toString()+"px; height: "+this._height+"px; background-color: "+this._color+';"></span>')}return i},i}),define("Widgets/Timeline/TimelineTrack",["../../Core/Color","../../Core/defined","../../Core/JulianDate"],function(e,t,i){"use strict";function r(t,i,r,n){this.interval=t,this.height=i,this.color=r||new e(.5,.5,.5,1),this.backgroundColor=n||new e(0,0,0,0)}return r.prototype.render=function(e,r){var n=this.interval.start,o=this.interval.stop,a=r.startJulian,s=i.addSeconds(r.startJulian,r.duration,new i);if(i.lessThan(n,a)&&i.greaterThan(o,s))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,r.y,r.timeBarWidth,this.height);else if(i.lessThanOrEquals(n,s)&&i.greaterThanOrEquals(o,a)){var l,u,c;for(l=0;l<r.timeBarWidth;++l){var d=i.addSeconds(r.startJulian,l/r.timeBarWidth*r.duration,new i);!t(u)&&i.greaterThanOrEquals(d,n)?u=l:!t(c)&&i.greaterThanOrEquals(d,o)&&(c=l)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,r.y,r.timeBarWidth,this.height),t(u)&&(t(c)||(c=r.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(u,r.y,Math.max(c-u,1),this.height))}},r}),define("Widgets/Timeline/Timeline",["../../Core/ClockRange","../../Core/defined","../../Core/destroyObject","../../Core/DeveloperError","../../Core/JulianDate","../getElement","./TimelineHighlightRange","./TimelineTrack"],function(e,t,i,r,n,o,a,s){"use strict";function l(e,t){e=o(e),this.container=e;var i=document.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=v.none,this._touchMode=y.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=c(this),this._onMouseUp=d(this),this._onMouseMove=h(this),this._onMouseWheel=p(this),this._onTouchStart=f(this),this._onTouchMove=_(this),this._onTouchEnd=m(this);var r=this._timeBarEle;document.addEventListener("mouseup",this._onMouseUp,!1),document.addEventListener("mousemove",this._onMouseMove,!1),r.addEventListener("mousedown",this._onMouseDown,!1),r.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),r.addEventListener("mousewheel",this._onMouseWheel,!1),r.addEventListener("touchstart",this._onTouchStart,!1),r.addEventListener("touchmove",this._onTouchMove,!1),r.addEventListener("touchend",this._onTouchEnd,!1),r.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}function u(e){return e<10?"0"+e.toString():e.toString()}function c(e){return function(t){e._mouseMode!==v.touchOnly&&(0===t.button?(e._mouseMode=v.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,2===t.button?e._mouseMode=v.zoom:e._mouseMode=v.slide)),t.preventDefault()}}function d(e){return function(t){e._mouseMode=v.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function h(e){return function(t){var i;if(e._mouseMode===v.scrub){t.preventDefault();var r=t.clientX-e._topDiv.getBoundingClientRect().left;r<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):r>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(r,r*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===v.slide){if(i=e._mouseX-t.clientX,e._mouseX=t.clientX,0!==i){var o=i*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(n.addSeconds(e._startJulian,o,new n),n.addSeconds(e._endJulian,o,new n))}}else e._mouseMode===v.zoom&&(i=e._mouseX-t.clientX,e._mouseX=t.clientX,0!==i&&e.zoomFrom(Math.pow(1.01,i)))}}function p(e){return function(t){var i=t.wheelDeltaY||t.wheelDelta||-t.detail;g=Math.max(Math.min(Math.abs(i),g),1),i/=g,e.zoomFrom(Math.pow(1.05,-i))}}function f(e){return function(t){var i,r,o=t.touches.length,a=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=v.touchOnly,1===o?(i=n.secondsDifference(e._scrubJulian,e._startJulian),r=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+a),Math.abs(t.touches[0].clientX-r)<50?(e._touchMode=y.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=1===o?"-16px 0":"0 0")):(e._touchMode=y.singleTap,e._touchState.centerX=t.touches[0].clientX-a)):2===o?(e._touchMode=y.slideZoom,e._touchState.centerX=.5*(t.touches[0].clientX+t.touches[1].clientX)-a,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=y.ignore}}function m(e){return function(t){var i=t.touches.length,r=e._topDiv.getBoundingClientRect().left;e._touchMode===y.singleTap?(e._touchMode=y.scrub,e._onTouchMove(t)):e._touchMode===y.scrub&&e._onTouchMove(t),e._mouseMode=v.touchOnly,1!==i?e._touchMode=i>0?y.ignore:y.none:e._touchMode===y.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-r),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function _(e){return function(i){var r,o,a,s,l,u,c=1,d=e._topDiv.getBoundingClientRect().left;e._touchMode===y.singleTap&&(e._touchMode=y.slideZoom),e._mouseMode=v.touchOnly,e._touchMode===y.scrub?(i.preventDefault(),1===i.changedTouches.length&&(o=i.changedTouches[0].clientX-d)>=0&&o<=e._topDiv.clientWidth&&e._setTimeBarTime(o,o*e._timeBarSecondsSpan/e._topDiv.clientWidth)):e._touchMode===y.slideZoom&&(a=i.touches.length,2===a?(s=.5*(i.touches[0].clientX+i.touches[1].clientX)-d,l=Math.abs(i.touches[0].clientX-i.touches[1].clientX)):1===a&&(s=i.touches[0].clientX-d,l=0),t(s)&&(l>0&&e._touchState.spanX>0?(c=e._touchState.spanX/l,u=n.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-s*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new n)):(r=e._touchState.centerX-s,u=n.addSeconds(e._startJulian,r*e._timeBarSecondsSpan/e._topDiv.clientWidth,new n)),e.zoomTo(u,n.addSeconds(u,e._timeBarSecondsSpan*c,new n)),e._touchState.centerX=s,e._touchState.spanX=l))}}var g=1e12,v={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},y={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},C=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],b=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];return l.prototype.addEventListener=function(e,t,i){this._topDiv.addEventListener(e,t,i)},l.prototype.removeEventListener=function(e,t,i){this._topDiv.removeEventListener(e,t,i)},l.prototype.isDestroyed=function(){return!1},l.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this),document.removeEventListener("mouseup",this._onMouseUp,!1),document.removeEventListener("mousemove",this._onMouseMove,!1);var e=this._timeBarEle;e.removeEventListener("mousedown",this._onMouseDown,!1),e.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),e.removeEventListener("mousewheel",this._onMouseWheel,!1),e.removeEventListener("touchstart",this._onTouchStart,!1),e.removeEventListener("touchmove",this._onTouchMove,!1),e.removeEventListener("touchend",this._onTouchEnd,!1),e.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),i(this)},l.prototype.addHighlightRange=function(e,t,i){var r=new a(e,t,i);return this._highlightRanges.push(r),this.resize(),r},l.prototype.addTrack=function(e,t,i,r){var n=new s(e,t,i,r);return this._trackList.push(n),this._lastHeight=void 0,this.resize(),n},l.prototype.zoomTo=function(t,i){if(this._startJulian=t,this._endJulian=i,this._timeBarSecondsSpan=n.secondsDifference(i,t),this._clock&&this._clock.clockRange!==e.UNBOUNDED){var r=this._clock.startTime,o=this._clock.stopTime,a=n.secondsDifference(o,r),s=n.secondsDifference(r,this._startJulian),l=n.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=a?(this._timeBarSecondsSpan=a,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=n.addSeconds(this._endJulian,s,new n),this._startJulian=r,this._timeBarSecondsSpan=n.secondsDifference(this._endJulian,this._startJulian)):l<0&&(this._startJulian=n.addSeconds(this._startJulian,l,new n),this._endJulian=o,this._timeBarSecondsSpan=n.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();var u=document.createEvent("Event");u.initEvent("setzoom",!0,!0),u.startJulian=this._startJulian,u.endJulian=this._endJulian,u.epochJulian=this._epochJulian,u.totalSpan=this._timeBarSecondsSpan,u.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(u)},l.prototype.zoomFrom=function(e){var t=n.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=.5*this._timeBarSecondsSpan:t+=t-.5*this._timeBarSecondsSpan;var i=this._timeBarSecondsSpan-t;this.zoomTo(n.addSeconds(this._startJulian,t-t*e,new n),n.addSeconds(this._endJulian,i*e-i,new n))},l.prototype.makeLabel=function(e){var t=n.toGregorianDate(e),i=t.millisecond,r=" UTC";if(i>0&&this._timeBarSecondsSpan<3600){for(r=Math.floor(i).toString();r.length<3;)r="0"+r;r="."+r}return b[t.month-1]+" "+t.day+" "+t.year+" "+u(t.hour)+":"+u(t.minute)+":"+u(t.second)+r},l.prototype.smallestTicInPixels=7,l.prototype._makeTics=function(){function e(e){return Math.floor(y/e)*e}function t(e,t){return Math.ceil(e/t+.5)*t}function i(e){return(e-y)/p}function r(e,t){return e-t*Math.round(e/t)}var o,a=this._timeBarEle,s=n.secondsDifference(this._scrubJulian,this._startJulian),l=Math.round(s*this._topDiv.clientWidth/this._timeBarSecondsSpan),u=l-8,c=this;this._needleEle.style.left=l.toString()+"px";var d="",h=0,p=this._timeBarSecondsSpan;p<.01?(p=.01,this._timeBarSecondsSpan=.01,this._endJulian=n.addSeconds(this._startJulian,.01,new n)):p>31536e6&&(p=31536e6,this._timeBarSecondsSpan=31536e6,this._endJulian=n.addSeconds(this._startJulian,31536e6,new n));var f=this._timeBarEle.clientWidth;f<10&&(f=10);var m,_=this._startJulian,g=Math.min(p/f*1e-5,.4),v=n.toGregorianDate(_);m=p>31536e4?n.fromDate(new Date(Date.UTC(100*Math.floor(v.year/100),0))):p>31536e3?n.fromDate(new Date(Date.UTC(10*Math.floor(v.year/10),0))):p>86400?n.fromDate(new Date(Date.UTC(v.year,0))):n.fromDate(new Date(Date.UTC(v.year,v.month,v.day)));var y=n.secondsDifference(this._startJulian,n.addSeconds(m,g,new n)),b=y+p;this._epochJulian=m,this._rulerEle.innerHTML=this.makeLabel(n.addSeconds(this._endJulian,-.01,new n));var S=this._rulerEle.offsetWidth+20;S<30&&(S=180);var T=h;h-=1e-10;var E={startTime:y,startJulian:_,epochJulian:m,duration:p,timeBarWidth:f,getAlpha:i};this._highlightRanges.forEach(function(e){d+=e.render(E)});var A=0,w=0,x=0,P=S/f;P>1&&(P=1),P*=this._timeBarSecondsSpan;var D,I=-1,M=-1,R=C.length;for(D=0;D<R;++D){var O=C[D];if(++I,A=O,O>P&&O>h)break;M<0&&f*(O/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(M=I)}if(I>0){for(;I>0;)if(--I,Math.abs(r(A,C[I]))<1e-5){C[I]>=h&&(w=C[I]);break}if(M>=0)for(;M<I;){if(Math.abs(r(w,C[M]))<1e-5&&C[M]>=h){x=C[M];break}++M}}(h=T)>1e-10&&x<1e-5&&Math.abs(h-A)>1e-10&&(x=h,h<=A+1e-10&&(w=0));var L,N=-999999;if(f*(x/this._timeBarSecondsSpan)>=3)for(o=e(x);o<=b;o=t(o,x))d+='<span class="cesium-timeline-ticTiny" style="left: '+Math.round(f*i(o)).toString()+'px;"></span>';if(f*(w/this._timeBarSecondsSpan)>=3)for(o=e(w);o<=b;o=t(o,w))d+='<span class="cesium-timeline-ticSub" style="left: '+Math.round(f*i(o)).toString()+'px;"></span>';if(f*(A/this._timeBarSecondsSpan)>=2){this._mainTicSpan=A,b+=A,o=e(A);for(var F=n.computeTaiMinusUtc(m);o<=b;){var B=n.addSeconds(_,o-y,new n);if(A>2.1){var z=n.computeTaiMinusUtc(B);Math.abs(z-F)>.1&&(o+=z-F,B=n.addSeconds(_,o-y,new n))}var k=Math.round(f*i(o)),V=this.makeLabel(B);this._rulerEle.innerHTML=V,L=this._rulerEle.offsetWidth,L<10&&(L=S);var U=k-(L/2-1);U>N?(N=U+L+5,d+='<span class="cesium-timeline-ticMain" style="left: '+k.toString()+'px;"></span><span class="cesium-timeline-ticLabel" style="left: '+U.toString()+'px;">'+V+"</span>"):d+='<span class="cesium-timeline-ticSub" style="left: '+k.toString()+'px;"></span>',o=t(o,A)}}else this._mainTicSpan=-1;d+='<span class="cesium-timeline-icon16" style="left:'+u+'px;bottom:0;background-position: 0 0;"></span>',a.innerHTML=d,this._scrubElement=a.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),E.y=0,this._trackList.forEach(function(e){e.render(c._context,E),E.y+=e.height})},l.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;var e=this._scrubElement;if(t(this._scrubElement)){var i=n.secondsDifference(this._scrubJulian,this._startJulian),r=Math.round(i*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==r&&(this._lastXPos=r,e.style.left=r-8+"px",this._needleEle.style.left=r+"px")}t(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(n.addSeconds(this._startJulian,this._timelineDrag,new n),n.addSeconds(this._endJulian,this._timelineDrag,new n)))},l.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=n.addSeconds(this._startJulian,t,new n),this._scrubElement){var i=e-8;this._scrubElement.style.left=i.toString()+"px",this._needleEle.style.left=e.toString()+"px"}var r=document.createEvent("Event");r.initEvent("settime",!0,!0),r.clientX=e,r.timeSeconds=t,r.timeJulian=this._scrubJulian,r.clock=this._clock,this._topDiv.dispatchEvent(r)},l.prototype.resize=function(){var e=this.container.clientWidth,t=this.container.clientHeight;if(e!==this._lastWidth||t!==this._lastHeight){this._trackContainer.style.height=t+"px";var i=1;this._trackList.forEach(function(e){i+=e.height}),this._trackListEle.style.height=i.toString()+"px",this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=i,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t}},l}),define("Widgets/VRButton/VRButtonViewModel",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/EventHelper","../../Core/Fullscreen","../../Core/OrthographicFrustum","../../ThirdParty/knockout","../../ThirdParty/NoSleep","../createCommand","../getElement"],function(e,t,i,r,n,o,a,s,l,u,c,d){"use strict";function h(e){var i=!1,r=window.screen;return t(r)&&(t(r.lockOrientation)?i=r.lockOrientation(e):t(r.mozLockOrientation)?i=r.mozLockOrientation(e):t(r.msLockOrientation)?i=r.msLockOrientation(e):t(r.orientation&&r.orientation.lock)&&(i=r.orientation.lock(e))),i}function p(){var e=window.screen;t(e)&&(t(e.unlockOrientation)?e.unlockOrientation():t(e.mozUnlockOrientation)?e.mozUnlockOrientation():t(e.msUnlockOrientation)?e.msUnlockOrientation():t(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function f(e,t,i,r){r()||(i()?(t.useWebVR=!1,e._locked&&(p(),e._locked=!1),e._noSleep.disable(),a.exitFullscreen(),i(!1)):(a.fullscreen||a.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=h("landscape")),t.useWebVR=!0,i(!0)))}function m(t,i){var r=this,n=l.observable(a.enabled),h=l.observable(!1);this.isVRMode=void 0,l.defineProperty(this,"isVRMode",{get:function(){return h()}}),this.isVREnabled=void 0,l.defineProperty(this,"isVREnabled",{get:function(){return n()},set:function(e){n(e&&a.enabled)}}),this.tooltip=void 0,l.defineProperty(this,"tooltip",function(){return n()?h()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});var m=l.observable(!1);this._isOrthographic=void 0,l.defineProperty(this,"_isOrthographic",{get:function(){return m()}}),this._eventHelper=new o,this._eventHelper.add(t.preRender,function(){m(t.camera.frustum instanceof s)}),this._locked=!1,this._noSleep=new u,this._command=c(function(){f(r,t,h,m)},l.getObservable(this,"isVREnabled")),this._vrElement=e(d(i),document.body),this._callback=function(){!a.fullscreen&&h()&&(t.useWebVR=!1,r._locked&&(p(),r._locked=!1),r._noSleep.disable(),h(!1))},document.addEventListener(a.changeEventName,this._callback)}return i(m.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}}),m.prototype.isDestroyed=function(){return!1},m.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(a.changeEventName,this._callback),r(this)},m}),define("Widgets/VRButton/VRButton",["../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../ThirdParty/knockout","../getElement","./VRButtonViewModel"],function(e,t,i,r,n,o,a){"use strict";function s(e,t,i){e=o(e);var r=new a(t,i);r._exitVRPath=u,r._enterVRPath=l;var s=document.createElement("button");s.type="button",s.className="cesium-button cesium-vrButton",s.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(s),n.applyBindings(r,s),this._container=e,this._viewModel=r,this._element=s}var l="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",u="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";return t(s.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}}),s.prototype.isDestroyed=function(){return!1},s.prototype.destroy=function(){return this._viewModel.destroy(),n.cleanNode(this._element),this._container.removeChild(this._element),i(this)},s}),define("Widgets/Viewer/Viewer",["../../Core/BoundingSphere","../../Core/Cartesian3","../../Core/Cartographic","../../Core/Clock","../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/destroyObject","../../Core/DeveloperError","../../Core/Event","../../Core/EventHelper","../../Core/HeadingPitchRange","../../Core/isArray","../../Core/Matrix4","../../Core/Rectangle","../../Core/ScreenSpaceEventType","../../DataSources/BoundingSphereState","../../DataSources/ConstantPositionProperty","../../DataSources/DataSourceCollection","../../DataSources/DataSourceDisplay","../../DataSources/Entity","../../DataSources/EntityView","../../DataSources/Property","../../Scene/Cesium3DTileset","../../Scene/computeFlyToLocationForRectangle","../../Scene/ImageryLayer","../../Scene/SceneMode","../../Scene/TimeDynamicPointCloud","../../ThirdParty/knockout","../../ThirdParty/when","../Animation/Animation","../Animation/AnimationViewModel","../BaseLayerPicker/BaseLayerPicker","../BaseLayerPicker/createDefaultImageryProviderViewModels","../BaseLayerPicker/createDefaultTerrainProviderViewModels","../CesiumWidget/CesiumWidget","../ClockViewModel","../FullscreenButton/FullscreenButton","../Geocoder/Geocoder","../getElement","../HomeButton/HomeButton","../InfoBox/InfoBox","../NavigationHelpButton/NavigationHelpButton","../ProjectionPicker/ProjectionPicker","../SceneModePicker/SceneModePicker","../SelectionIndicator/SelectionIndicator","../subscribeAndEvaluate","../Timeline/Timeline","../VRButton/VRButton"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X){"use strict";function Q(e){var t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function K(e,t){var i=e.scene.pick(t.position);if(o(i)){var r=n(i.id,i.primitive.id);if(r instanceof C)return r}if(o(e.scene.globe))return J(e,t.position)}function Z(e,t,i){if(o(i)){var r=i.clock;o(r)&&(r.getValue(t),o(e)&&(e.updateFromClock(),e.zoomTo(r.startTime,r.stopTime)))}}function J(e,t){var i=e.scene,r=i.camera.getPickRay(t),n=i.imageryLayers.pickImageryLayerFeatures(r,i);if(o(n)){var a=new C({id:"Loading...",description:"Loading feature information..."});return D(n,function(t){if(e.selectedEntity===a){if(!o(t)||0===t.length)return void(e.selectedEntity=$());var i=t[0],r=new C({id:i.name,description:i.description});if(o(i.position)){var n=e.scene.globe.ellipsoid.cartographicToCartesian(i.position,le);r.position=new g(n)}e.selectedEntity=r}},function(){e.selectedEntity===a&&(e.selectedEntity=$())}),a}}function $(){return new C({id:"None",description:"No features found."})}function ee(e,t){var i=e._geocoder,r=e._homeButton,n=e._sceneModePicker,a=e._projectionPicker,s=e._baseLayerPicker,l=e._animation,u=e._timeline,c=e._fullscreenButton,d=e._infoBox,h=e._selectionIndicator,p=t?"hidden":"visible";if(o(i)&&(i.container.style.visibility=p),o(r)&&(r.container.style.visibility=p),o(n)&&(n.container.style.visibility=p),o(a)&&(a.container.style.visibility=p),o(s)&&(s.container.style.visibility=p),o(l)&&(l.container.style.visibility=p),o(u)&&(u.container.style.visibility=p),o(c)&&c.viewModel.isFullscreenEnabled&&(c.container.style.visibility=p),o(d)&&(d.container.style.visibility=p),o(h)&&(h.container.style.visibility=p),e._container){var f=t||!o(c)?0:c.container.clientWidth;e._vrButton.container.style.right=f+"px",e.forceResize()}}function te(e,t){function i(e){var t=K(l,e);o(t)?S.getValueOrUndefined(t.position,l.clock.currentTime)?l.trackedEntity=t:l.zoomTo(t):o(l.trackedEntity)&&(l.trackedEntity=void 0)}function a(e){l.selectedEntity=K(l,e)}e=k(e),t=n(t,n.EMPTY_OBJECT);var s=!(o(t.globe)&&!1===t.globe||o(t.baseLayerPicker)&&!1===t.baseLayerPicker),l=this,d=document.createElement("div");d.className="cesium-viewer",e.appendChild(d);var p=document.createElement("div");p.className="cesium-viewer-cesiumWidgetContainer",d.appendChild(p);var f=document.createElement("div");f.className="cesium-viewer-bottom",d.appendChild(f);var _,g,C=n(t.scene3DOnly,!1),b=!1;o(t.clockViewModel)?(g=t.clockViewModel,_=g.clock):(_=new r,g=new F(_),b=!0),o(t.shouldAnimate)&&(_.shouldAnimate=t.shouldAnimate);var T=new N(p,{imageryProvider:!s&&!o(t.imageryProvider)&&void 0,clock:_,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,creditContainer:o(t.creditContainer)?t.creditContainer:f,creditViewport:t.creditViewport,scene3DOnly:C,terrainExaggeration:t.terrainExaggeration,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange}),E=t.dataSources,A=!1;o(E)||(E=new v,A=!0);var w=T.scene,x=new y({scene:w,dataSourceCollection:E}),D=new c;D.add(_.onTick,te.prototype._onTick,this),D.add(w.morphStart,te.prototype._clearTrackedObject,this);var Z;if(!o(t.selectionIndicator)||!1!==t.selectionIndicator){var J=document.createElement("div");J.className="cesium-viewer-selectionIndicatorContainer",d.appendChild(J),Z=new q(J,w)}var $;if(!o(t.infoBox)||!1!==t.infoBox){var ie=document.createElement("div");ie.className="cesium-viewer-infoBoxContainer",d.appendChild(ie),$=new U(ie);var re=$.viewModel;D.add(re.cameraClicked,te.prototype._onInfoBoxCameraClicked,this),D.add(re.closeClicked,te.prototype._onInfoBoxClockClicked,this)}var ne=document.createElement("div");ne.className="cesium-viewer-toolbar",d.appendChild(ne);var oe;if(!o(t.geocoder)||!1!==t.geocoder){var ae=document.createElement("div");ae.className="cesium-viewer-geocoderContainer",ne.appendChild(ae);var se;o(t.geocoder)&&"boolean"!=typeof t.geocoder&&(se=h(t.geocoder)?t.geocoder:[t.geocoder]),oe=new z({container:ae,geocoderServices:se,scene:w}),D.add(oe.viewModel.search.beforeExecute,te.prototype._clearObjects,this)}var le;o(t.homeButton)&&!1===t.homeButton||(le=new V(ne,w),o(oe)&&D.add(le.viewModel.command.afterExecute,function(){var e=oe.viewModel;e.searchText="",e.isSearchInProgress&&e.search()}),D.add(le.viewModel.command.beforeExecute,te.prototype._clearTrackedObject,this));var ue;C||o(t.sceneModePicker)&&!1===t.sceneModePicker||(ue=new W(ne,w));var ce;t.projectionPicker&&(ce=new H(ne,w));var de,he;if(s){var pe=n(t.imageryProviderViewModels,O()),fe=n(t.terrainProviderViewModels,L());de=new R(ne,{globe:w.globe,imageryProviderViewModels:pe,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:fe,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel});he=ne.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}o(t.imageryProvider)&&!1!==t.imageryProvider&&(s&&(de.viewModel.selectedImagery=void 0),w.imageryLayers.removeAll(),w.imageryLayers.addImageryProvider(t.imageryProvider)),o(t.terrainProvider)&&(s&&(de.viewModel.selectedTerrain=void 0),w.terrainProvider=t.terrainProvider);var me;if(!o(t.navigationHelpButton)||!1!==t.navigationHelpButton){var _e=!0;try{if(o(window.localStorage)){var ge=window.localStorage.getItem("cesium-hasSeenNavHelp");o(ge)&&Boolean(ge)?_e=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch(e){}me=new G({container:ne,instructionsInitiallyVisible:n(t.navigationInstructionsInitiallyVisible,_e)})}var ve;if(!o(t.animation)||!1!==t.animation){var ye=document.createElement("div");ye.className="cesium-viewer-animationContainer",d.appendChild(ye),ve=new I(ye,new M(g))}var Ce;if(!o(t.timeline)||!1!==t.timeline){var be=document.createElement("div");be.className="cesium-viewer-timelineContainer",d.appendChild(be),Ce=new j(be,_),Ce.addEventListener("settime",Q,!1), -Ce.zoomTo(_.startTime,_.stopTime)}var Se,Te,Ee;o(t.fullscreenButton)&&!1===t.fullscreenButton||(Ee=document.createElement("div"),Ee.className="cesium-viewer-fullscreenContainer",d.appendChild(Ee),Se=new B(Ee,t.fullscreenElement),Te=Y(Se.viewModel,"isFullscreenEnabled",function(e){Ee.style.display=e?"block":"none",o(Ce)&&(Ce.container.style.right=Ee.clientWidth+"px",Ce.resize())}));var Ae,we,xe;if(t.vrButton){var Pe=document.createElement("div");Pe.className="cesium-viewer-vrContainer",d.appendChild(Pe),Ae=new X(Pe,w,t.fullScreenElement),we=Y(Ae.viewModel,"isVREnabled",function(e){Pe.style.display=e?"block":"none",o(Se)&&(Pe.style.right=Ee.clientWidth+"px"),o(Ce)&&(Ce.container.style.right=Pe.clientWidth+"px",Ce.resize())}),xe=Y(Ae.viewModel,"isVRMode",function(e){ee(l,e)})}this._baseLayerPickerDropDown=he,this._fullscreenSubscription=Te,this._vrSubscription=we,this._vrModeSubscription=xe,this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=n(t.automaticallyTrackDataSourceClocks,!0),this._container=e,this._bottomContainer=f,this._element=d,this._cesiumWidget=T,this._selectionIndicator=Z,this._infoBox=$,this._dataSourceCollection=E,this._destroyDataSourceCollection=A,this._dataSourceDisplay=x,this._clockViewModel=g,this._destroyClockViewModel=b,this._toolbar=ne,this._homeButton=le,this._sceneModePicker=ue,this._projectionPicker=ce,this._baseLayerPicker=de,this._navigationHelpButton=me,this._animation=ve,this._timeline=Ce,this._fullscreenButton=Se,this._vrButton=Ae,this._geocoder=oe,this._eventHelper=D,this._lastWidth=0,this._lastHeight=0,this._allowDataSourcesToSuspendAnimation=!0,this._entityView=void 0,this._enableInfoOrSelection=o($)||o(Z),this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._selectedEntity=void 0,this._clockTrackedDataSource=void 0,this._forceResize=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._selectedEntityChanged=new u,this._trackedEntityChanged=new u,P.track(this,["_trackedEntity","_selectedEntity","_clockTrackedDataSource"]),D.add(E.dataSourceAdded,te.prototype._onDataSourceAdded,this),D.add(E.dataSourceRemoved,te.prototype._onDataSourceRemoved,this),D.add(w.postUpdate,te.prototype.resize,this),D.add(w.postRender,te.prototype._postRender,this);for(var De=E.length,Ie=0;Ie<De;Ie++)this._dataSourceAdded(E,E.get(Ie));this._dataSourceAdded(void 0,x.defaultDataSource),D.add(E.dataSourceAdded,te.prototype._dataSourceAdded,this),D.add(E.dataSourceRemoved,te.prototype._dataSourceRemoved,this),T.screenSpaceEventHandler.setInputAction(a,m.LEFT_CLICK),T.screenSpaceEventHandler.setInputAction(i,m.LEFT_DOUBLE_CLICK)}function ie(e,t,i,r){ne(e);var a=D.defer();return e._zoomPromise=a,e._zoomIsFlight=r,e._zoomOptions=i,D(t,function(t){if(e._zoomPromise===a){if(t instanceof A)return void t.getViewableRectangle().then(function(t){return E(t,e.scene)}).then(function(t){e._zoomPromise===a&&(e._zoomTarget=t)});if(t instanceof T)return void(e._zoomTarget=t);if(t instanceof x)return void(e._zoomTarget=t);if(t.isLoading&&o(t.loadingEvent))var i=t.loadingEvent.addEventListener(function(){i(),e._zoomPromise===a&&(e._zoomTarget=t.entities.values.slice(0))});else{if(h(t))return void(e._zoomTarget=t.slice(0));t=n(t.values,t),o(t.entities)&&(t=t.entities.values),h(t)?e._zoomTarget=t.slice(0):e._zoomTarget=[t]}}}),e.scene.requestRender(),a.promise}function re(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function ne(e){var t=e._zoomPromise;o(t)&&(re(e),t.resolve(!1))}function oe(t){var r=t._zoomTarget;if(o(r)&&t.scene.mode!==w.MORPHING){var a,s,l=t.scene,u=l.camera,c=t._zoomPromise,h=n(t._zoomOptions,{});if(r instanceof T)return r.readyPromise.then(function(){var e=r.boundingSphere;o(h.offset)||(h.offset=new d(0,-.5,e.radius)),a={offset:h.offset,duration:h.duration,maximumHeight:h.maximumHeight,complete:function(){c.resolve(!0)},cancel:function(){c.resolve(!1)}},t._zoomIsFlight?u.flyToBoundingSphere(r.boundingSphere,a):(u.viewBoundingSphere(e,h.offset),u.lookAtTransform(p.IDENTITY),c.resolve(!0)),re(t)});if(r instanceof x)return r.readyPromise.then(function(){var e=r.boundingSphere;o(h.offset)||(h.offset=new d(0,-.5,e.radius)),a={offset:h.offset,duration:h.duration,maximumHeight:h.maximumHeight,complete:function(){c.resolve(!0)},cancel:function(){c.resolve(!1)}},t._zoomIsFlight?u.flyToBoundingSphere(e,a):(u.viewBoundingSphere(e,h.offset),u.lookAtTransform(p.IDENTITY),c.resolve(!0)),re(t)});if(r instanceof i)return a={destination:l.mapProjection.ellipsoid.cartographicToCartesian(r),duration:h.duration,maximumHeight:h.maximumHeight,complete:function(){c.resolve(!0)},cancel:function(){c.resolve(!1)}},t._zoomIsFlight?u.flyTo(a):(u.setView(a),c.resolve(!0)),void re(t);for(var f=r,m=[],g=0,v=f.length;g<v;g++){var y=t._dataSourceDisplay.getBoundingSphere(f[g],!1,se);if(y===_.PENDING)return;y!==_.FAILED&&m.push(e.clone(se))}if(0===m.length)return void ne(t);t.trackedEntity=void 0,s=e.fromBoundingSpheres(m),t._zoomIsFlight?(re(t),u.flyToBoundingSphere(s,{duration:h.duration,maximumHeight:h.maximumHeight,complete:function(){c.resolve(!0)},cancel:function(){c.resolve(!1)},offset:h.offset})):(u.viewBoundingSphere(s,h.offset),u.lookAtTransform(p.IDENTITY),re(t),c.resolve(!0))}}function ae(e){if(e._needTrackedEntityUpdate){var t=e._trackedEntity,i=e.clock.currentTime,r=S.getValueOrUndefined(t.position,i);if(o(r)){var n=e.scene,a=e._dataSourceDisplay.getBoundingSphere(t,!1,se);if(a!==_.PENDING){var s=n.mode;s!==w.COLUMBUS_VIEW&&s!==w.SCENE2D||(n.screenSpaceCameraController.enableTranslate=!1),s!==w.COLUMBUS_VIEW&&s!==w.SCENE3D||(n.screenSpaceCameraController.enableTilt=!1);var l=a!==_.FAILED?se:void 0;e._entityView=new b(t,n,n.mapProjection.ellipsoid),e._entityView.update(i,l),e._needTrackedEntityUpdate=!1}}}}var se=new e,le=new t;return a(te.prototype,{container:{get:function(){return this._container}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e,this._forceResize=!0}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,ne(this);var t=this.scene,i=t.mode;o(e)&&o(e.position)?this._needTrackedEntityUpdate=!0:(this._needTrackedEntityUpdate=!1,i!==w.COLUMBUS_VIEW&&i!==w.SCENE2D||(t.screenSpaceCameraController.enableTranslate=!0),i!==w.COLUMBUS_VIEW&&i!==w.SCENE3D||(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(p.IDENTITY)),this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;var t=o(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;o(e)?o(t)&&t.animateAppear():o(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,Z(this._timeline,this.clock,e))}}}),te.prototype.extend=function(e,t){e(this,t)},te.prototype.resize=function(){var e=this._cesiumWidget,t=this._container,i=t.clientWidth,r=t.clientHeight,n=o(this._animation),a=o(this._timeline);if(this._forceResize||i!==this._lastWidth||r!==this._lastHeight){e.resize(),this._forceResize=!1;var s=r-125,l=this._baseLayerPickerDropDown;if(o(l)&&(l.style.maxHeight=s+"px"),o(this._geocoder)){this._geocoder.searchSuggestionsContainer.style.maxHeight=s+"px"}o(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);var u,c=this._timeline,d=0,h=0,p=0;if(n&&"hidden"!==window.getComputedStyle(this._animation.container).visibility){var f=this._lastWidth;u=this._animation.container,i>900?(d=169,f<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):i>=600?(d=136,(f<600||f>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(d=106,(f>600||0===f)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),h=d+5}if(a&&"hidden"!==window.getComputedStyle(this._timeline.container).visibility){var m=this._fullscreenButton,_=this._vrButton,g=c.container,v=g.style;p=g.clientHeight+3,v.left=d+"px";var y=0;o(m)&&(y+=m.container.clientWidth),o(_)&&(y+=_.container.clientWidth),v.right=y+"px",c.resize()}this._bottomContainer.style.left=h+"px",this._bottomContainer.style.bottom=p+"px",this._lastWidth=i,this._lastHeight=r}},te.prototype.forceResize=function(){this._lastWidth=0,this.resize()},te.prototype.render=function(){this._cesiumWidget.render()},te.prototype.isDestroyed=function(){return!1},te.prototype.destroy=function(){var e;this.screenSpaceEventHandler.removeInputAction(m.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(m.LEFT_DOUBLE_CLICK);var t=this.dataSources,i=t.length;for(e=0;e<i;e++)this._dataSourceRemoved(t,t.get(e));return this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),o(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),o(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),o(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),o(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),o(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),o(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),o(this._timeline)&&(this._timeline.removeEventListener("settime",Q,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),o(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),o(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),o(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),o(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),this._cesiumWidget=this._cesiumWidget.destroy(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),s(this)},te.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(te.prototype._onEntityCollectionChanged,this)},te.prototype._dataSourceRemoved=function(e,t){var i=t.entities;i.collectionChanged.removeEventListener(te.prototype._onEntityCollectionChanged,this),o(this.trackedEntity)&&i.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0),o(this.selectedEntity)&&i.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)},te.prototype._onTick=function(e){var i=e.currentTime,r=this._dataSourceDisplay.update(i);this._allowDataSourcesToSuspendAnimation&&(this._clockViewModel.canAnimate=r);var a=this._entityView;if(o(a)){var s=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(s,!1,se)===_.DONE&&a.update(i,se)}var l,u=!1,c=this.selectedEntity,d=o(c)&&this._enableInfoOrSelection;if(d&&c.isShowing&&c.isAvailable(i)){this._dataSourceDisplay.getBoundingSphere(c,!0,se)!==_.FAILED?l=se.center:o(c.position)&&(l=c.position.getValue(i,l)),u=o(l)}var h=o(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;o(h)&&(h.position=t.clone(l,h.position),h.showSelection=d&&u,h.update());var p=o(this._infoBox)?this._infoBox.viewModel:void 0;o(p)&&(p.showInfo=d,p.enableCamera=u,p.isCameraTracking=this.trackedEntity===this.selectedEntity,d?(p.titleText=n(c.name,c.id),p.description=S.getValueOrDefault(c.description,i,"")):(p.titleText="",p.description=""))},te.prototype._onEntityCollectionChanged=function(e,t,i){for(var r=i.length,n=0;n<r;n++){var o=i[n];this.trackedEntity===o&&(this.trackedEntity=void 0),this.selectedEntity===o&&(this.selectedEntity=void 0)}},te.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{var t=this.selectedEntity,i=t.position;o(i)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}},te.prototype._clearTrackedObject=function(){this.trackedEntity=void 0},te.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0},te.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0},te.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&Z(this.timeline,this.clock,e)},te.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);var i=t.entities.id,r=this._eventHelper.add(t.changedEvent,te.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[i]=r},te.prototype._onDataSourceRemoved=function(e,t){var i=this.clockTrackedDataSource===t,r=t.entities.id;if(this._dataSourceChangedListeners[r](),this._dataSourceChangedListeners[r]=void 0,i){var n=e.length;this._automaticallyTrackDataSourceClocks&&n>0?this.clockTrackedDataSource=e.get(n-1):this.clockTrackedDataSource=void 0}},te.prototype.zoomTo=function(e,t){return ie(this,e,{offset:t},!1)},te.prototype.flyTo=function(e,t){return ie(this,e,t,!0)},te.prototype._postRender=function(){oe(this),ae(this)},te}),define("Widgets/Viewer/viewerCesium3DTilesInspectorMixin",["../../Core/Check","../../Core/defineProperties","../Cesium3DTilesInspector/Cesium3DTilesInspector"],function(e,t,i){"use strict";function r(e){var r=document.createElement("div");r.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(r);var n=new i(r,e.scene);t(e,{cesium3DTilesInspector:{get:function(){return n}}})}return r}),define("Widgets/Viewer/viewerCesiumInspectorMixin",["../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../CesiumInspector/CesiumInspector"],function(e,t,i,r){"use strict";function n(e){var i=document.createElement("div");i.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(i);var n=new r(i,e.scene);t(e,{cesiumInspector:{get:function(){return n}}})}return n}),define("Widgets/Viewer/viewerDragDropMixin",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../../Core/Event","../../Core/wrapFunction","../../DataSources/CzmlDataSource","../../DataSources/GeoJsonDataSource","../../DataSources/KmlDataSource","../getElement"],function(e,t,i,r,n,o,a,s,l,u){"use strict";function c(t,r){function a(e){d(e),_&&(t.entities.removeAll(),t.dataSources.removeAll());for(var i=e.dataTransfer.files,r=i.length,n=0;n<r;n++){var o=i[n],a=new FileReader;a.onload=f(t,o,y,v),a.onerror=m(t,o),a.readAsText(o)}}r=e(r,e.EMPTY_OBJECT);var s=!0,l=e(r.flyToOnDrop,!0),c=new n,_=e(r.clearOnDrop,!0),g=e(r.dropTarget,t.container),v=e(r.clampToGround,!0),y=r.proxy;g=u(g),i(t,{dropTarget:{get:function(){return g},set:function(e){h(g,a),g=e,p(g,a)}},dropEnabled:{get:function(){return s},set:function(e){e!==s&&(e?p(g,a):h(g,a),s=e)}},dropError:{get:function(){return c}},clearOnDrop:{get:function(){return _},set:function(e){_=e}},flyToOnDrop:{get:function(){return l},set:function(e){l=e}},proxy:{get:function(){return y},set:function(e){y=e}},clampToGround:{get:function(){return v},set:function(e){v=e}}}),p(g,a),t.destroy=o(t,t.destroy,function(){t.dropEnabled=!1}),t._handleDrop=a}function d(e){e.stopPropagation(),e.preventDefault()}function h(e,i){var r=e;t(r)&&(r.removeEventListener("drop",i,!1),r.removeEventListener("dragenter",d,!1),r.removeEventListener("dragover",d,!1),r.removeEventListener("dragexit",d,!1))}function p(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",d,!1),e.addEventListener("dragover",d,!1),e.addEventListener("dragexit",d,!1)}function f(e,i,r,n){var o=e.scene;return function(u){var c=i.name;try{var d;if(/\.czml$/i.test(c))d=a.load(JSON.parse(u.target.result),{sourceUri:c});else if(/\.geojson$/i.test(c)||/\.json$/i.test(c)||/\.topojson$/i.test(c))d=s.load(JSON.parse(u.target.result),{sourceUri:c,clampToGround:n});else{if(!/\.(kml|kmz)$/i.test(c))return void e.dropError.raiseEvent(e,c,"Unrecognized file: "+c);d=l.load(i,{sourceUri:c,proxy:r,camera:o.camera,canvas:o.canvas,clampToGround:n})}t(d)&&e.dataSources.add(d).then(function(t){e.flyToOnDrop&&e.flyTo(t)}).otherwise(function(t){e.dropError.raiseEvent(e,c,t)})}catch(t){e.dropError.raiseEvent(e,c,t)}}}function m(e,t){return function(i){e.dropError.raiseEvent(e,t.name,i.target.error)}}return c}),define("Widgets/Viewer/viewerPerformanceWatchdogMixin",["../../Core/defaultValue","../../Core/defined","../../Core/defineProperties","../../Core/DeveloperError","../PerformanceWatchdog/PerformanceWatchdog"],function(e,t,i,r,n){"use strict";function o(t,r){r=e(r,e.EMPTY_OBJECT);var o=new n({scene:t.scene,container:t.bottomContainer,lowFrameRateMessage:r.lowFrameRateMessage});i(t,{performanceWatchdog:{get:function(){return o}}})}return o}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,i,r){"use strict";function n(t,i,r){try{return t(i,r)}catch(t){return e.reject(t)}}function o(o){var a;return function(s){var l=s.data,u=[],c={id:l.id,result:void 0,error:void 0};return e(n(o,l.parameters,u)).then(function(e){c.result=e}).otherwise(function(e){e instanceof Error?c.error={name:e.name,message:e.message,stack:e.stack}:c.error=e}).always(function(){i(a)||(a=t(self.webkitPostMessage,self.postMessage)),l.canTransferArrayBuffer||(u.length=0);try{a(c,u)}catch(e){c.result=void 0,c.error="postMessage failed with error: "+r(e)+"\n with responseMessage: "+JSON.stringify(c),a(c)}})}}return o}), -define("Cesium",["./Core/appendForwardSlash","./Core/ApproximateTerrainHeights","./Core/ArcType","./Core/arrayFill","./Core/arrayRemoveDuplicates","./Core/arraySlice","./Core/AssociativeArray","./Core/AttributeCompression","./Core/AxisAlignedBoundingBox","./Core/barycentricCoordinates","./Core/binarySearch","./Core/BingMapsApi","./Core/BingMapsGeocoderService","./Core/BoundingRectangle","./Core/BoundingSphere","./Core/BoxGeometry","./Core/BoxOutlineGeometry","./Core/buildModuleUrl","./Core/cancelAnimationFrame","./Core/Cartesian2","./Core/Cartesian3","./Core/Cartesian4","./Core/Cartographic","./Core/CartographicGeocoderService","./Core/CatmullRomSpline","./Core/CesiumTerrainProvider","./Core/Check","./Core/CircleGeometry","./Core/CircleOutlineGeometry","./Core/Clock","./Core/ClockRange","./Core/ClockStep","./Core/clone","./Core/Color","./Core/ColorGeometryInstanceAttribute","./Core/combine","./Core/ComponentDatatype","./Core/CompressedTextureBuffer","./Core/CoplanarPolygonGeometry","./Core/CoplanarPolygonGeometryLibrary","./Core/CoplanarPolygonOutlineGeometry","./Core/CornerType","./Core/CorridorGeometry","./Core/CorridorGeometryLibrary","./Core/CorridorOutlineGeometry","./Core/createGuid","./Core/createWorldTerrain","./Core/Credit","./Core/CubicRealPolynomial","./Core/CullingVolume","./Core/CylinderGeometry","./Core/CylinderGeometryLibrary","./Core/CylinderOutlineGeometry","./Core/decodeGoogleEarthEnterpriseData","./Core/DefaultProxy","./Core/defaultValue","./Core/defined","./Core/defineProperties","./Core/deprecationWarning","./Core/destroyObject","./Core/DeveloperError","./Core/DistanceDisplayCondition","./Core/DistanceDisplayConditionGeometryInstanceAttribute","./Core/DoublyLinkedList","./Core/EarthOrientationParameters","./Core/EarthOrientationParametersSample","./Core/EasingFunction","./Core/EllipseGeometry","./Core/EllipseGeometryLibrary","./Core/EllipseOutlineGeometry","./Core/Ellipsoid","./Core/EllipsoidalOccluder","./Core/EllipsoidGeodesic","./Core/EllipsoidGeometry","./Core/EllipsoidOutlineGeometry","./Core/EllipsoidRhumbLine","./Core/EllipsoidTangentPlane","./Core/EllipsoidTerrainProvider","./Core/EncodedCartesian3","./Core/Event","./Core/EventHelper","./Core/ExtrapolationType","./Core/FeatureDetection","./Core/formatError","./Core/freezeObject","./Core/FrustumGeometry","./Core/FrustumOutlineGeometry","./Core/Fullscreen","./Core/GeocoderService","./Core/GeocodeType","./Core/GeographicProjection","./Core/GeographicTilingScheme","./Core/Geometry","./Core/GeometryAttribute","./Core/GeometryAttributes","./Core/GeometryInstance","./Core/GeometryInstanceAttribute","./Core/GeometryOffsetAttribute","./Core/GeometryPipeline","./Core/GeometryType","./Core/getAbsoluteUri","./Core/getBaseUri","./Core/getExtensionFromUri","./Core/getFilenameFromUri","./Core/getImagePixels","./Core/getMagic","./Core/getStringFromTypedArray","./Core/getTimestamp","./Core/GoogleEarthEnterpriseMetadata","./Core/GoogleEarthEnterpriseTerrainData","./Core/GoogleEarthEnterpriseTerrainProvider","./Core/GoogleEarthEnterpriseTileInformation","./Core/GregorianDate","./Core/GroundPolylineGeometry","./Core/HeadingPitchRange","./Core/HeadingPitchRoll","./Core/Heap","./Core/HeightmapTerrainData","./Core/HeightmapTessellator","./Core/HermitePolynomialApproximation","./Core/HermiteSpline","./Core/Iau2000Orientation","./Core/Iau2006XysData","./Core/Iau2006XysSample","./Core/IauOrientationAxes","./Core/IauOrientationParameters","./Core/IndexDatatype","./Core/InterpolationAlgorithm","./Core/Intersect","./Core/Intersections2D","./Core/IntersectionTests","./Core/Interval","./Core/Ion","./Core/IonGeocoderService","./Core/IonResource","./Core/isArray","./Core/isBitSet","./Core/isBlobUri","./Core/isCrossOriginUrl","./Core/isDataUri","./Core/isLeapYear","./Core/Iso8601","./Core/JulianDate","./Core/KeyboardEventModifier","./Core/LagrangePolynomialApproximation","./Core/LeapSecond","./Core/LinearApproximation","./Core/LinearSpline","./Core/loadAndExecuteScript","./Core/loadCRN","./Core/loadImageFromTypedArray","./Core/loadKTX","./Core/ManagedArray","./Core/MapboxApi","./Core/MapProjection","./Core/Math","./Core/Matrix2","./Core/Matrix3","./Core/Matrix4","./Core/mergeSort","./Core/NearFarScalar","./Core/objectToQuery","./Core/Occluder","./Core/OffsetGeometryInstanceAttribute","./Core/oneTimeWarning","./Core/OpenCageGeocoderService","./Core/OrientedBoundingBox","./Core/OrthographicFrustum","./Core/OrthographicOffCenterFrustum","./Core/Packable","./Core/PackableForInterpolation","./Core/parseResponseHeaders","./Core/PeliasGeocoderService","./Core/PerspectiveFrustum","./Core/PerspectiveOffCenterFrustum","./Core/PinBuilder","./Core/PixelFormat","./Core/Plane","./Core/PlaneGeometry","./Core/PlaneOutlineGeometry","./Core/pointInsideTriangle","./Core/PolygonGeometry","./Core/PolygonGeometryLibrary","./Core/PolygonHierarchy","./Core/PolygonOutlineGeometry","./Core/PolygonPipeline","./Core/PolylineGeometry","./Core/PolylinePipeline","./Core/PolylineVolumeGeometry","./Core/PolylineVolumeGeometryLibrary","./Core/PolylineVolumeOutlineGeometry","./Core/PrimitiveType","./Core/QuadraticRealPolynomial","./Core/QuantizedMeshTerrainData","./Core/QuarticRealPolynomial","./Core/Quaternion","./Core/QuaternionSpline","./Core/queryToObject","./Core/Queue","./Core/Ray","./Core/Rectangle","./Core/RectangleCollisionChecker","./Core/RectangleGeometry","./Core/RectangleGeometryLibrary","./Core/RectangleOutlineGeometry","./Core/ReferenceFrame","./Core/Request","./Core/requestAnimationFrame","./Core/RequestErrorEvent","./Core/RequestScheduler","./Core/RequestState","./Core/RequestType","./Core/Resource","./Core/RuntimeError","./Core/sampleTerrain","./Core/sampleTerrainMostDetailed","./Core/scaleToGeodeticSurface","./Core/ScreenSpaceEventHandler","./Core/ScreenSpaceEventType","./Core/ShowGeometryInstanceAttribute","./Core/Simon1994PlanetaryPositions","./Core/SimplePolylineGeometry","./Core/SphereGeometry","./Core/SphereOutlineGeometry","./Core/Spherical","./Core/Spline","./Core/subdivideArray","./Core/TaskProcessor","./Core/TerrainData","./Core/TerrainEncoding","./Core/TerrainMesh","./Core/TerrainProvider","./Core/TerrainQuantization","./Core/TileAvailability","./Core/TileEdge","./Core/TileProviderError","./Core/TilingScheme","./Core/TimeConstants","./Core/TimeInterval","./Core/TimeIntervalCollection","./Core/TimeStandard","./Core/Tipsify","./Core/Transforms","./Core/TranslationRotationScale","./Core/TridiagonalSystemSolver","./Core/TrustedServers","./Core/VertexFormat","./Core/VideoSynchronizer","./Core/Visibility","./Core/VRTheWorldTerrainProvider","./Core/WallGeometry","./Core/WallGeometryLibrary","./Core/WallOutlineGeometry","./Core/WebGLConstants","./Core/webGLConstantToGlslType","./Core/WebMercatorProjection","./Core/WebMercatorTilingScheme","./Core/WeightSpline","./Core/WindingOrder","./Core/wrapFunction","./Core/writeTextToCanvas","./DataSources/BillboardGraphics","./DataSources/BillboardVisualizer","./DataSources/BoundingSphereState","./DataSources/BoxGeometryUpdater","./DataSources/BoxGraphics","./DataSources/CallbackProperty","./DataSources/CheckerboardMaterialProperty","./DataSources/ColorMaterialProperty","./DataSources/CompositeEntityCollection","./DataSources/CompositeMaterialProperty","./DataSources/CompositePositionProperty","./DataSources/CompositeProperty","./DataSources/ConstantPositionProperty","./DataSources/ConstantProperty","./DataSources/CorridorGeometryUpdater","./DataSources/CorridorGraphics","./DataSources/createMaterialPropertyDescriptor","./DataSources/createPropertyDescriptor","./DataSources/createRawPropertyDescriptor","./DataSources/CustomDataSource","./DataSources/CylinderGeometryUpdater","./DataSources/CylinderGraphics","./DataSources/CzmlDataSource","./DataSources/DataSource","./DataSources/DataSourceClock","./DataSources/DataSourceCollection","./DataSources/DataSourceDisplay","./DataSources/DynamicGeometryBatch","./DataSources/DynamicGeometryUpdater","./DataSources/EllipseGeometryUpdater","./DataSources/EllipseGraphics","./DataSources/EllipsoidGeometryUpdater","./DataSources/EllipsoidGraphics","./DataSources/Entity","./DataSources/EntityCluster","./DataSources/EntityCollection","./DataSources/EntityView","./DataSources/GeoJsonDataSource","./DataSources/GeometryUpdater","./DataSources/GeometryVisualizer","./DataSources/GridMaterialProperty","./DataSources/GroundGeometryUpdater","./DataSources/heightReferenceOnEntityPropertyChanged","./DataSources/ImageMaterialProperty","./DataSources/KmlCamera","./DataSources/KmlDataSource","./DataSources/KmlLookAt","./DataSources/KmlTour","./DataSources/KmlTourFlyTo","./DataSources/KmlTourWait","./DataSources/LabelGraphics","./DataSources/LabelVisualizer","./DataSources/MaterialProperty","./DataSources/ModelGraphics","./DataSources/ModelVisualizer","./DataSources/NodeTransformationProperty","./DataSources/PathGraphics","./DataSources/PathVisualizer","./DataSources/PlaneGeometryUpdater","./DataSources/PlaneGraphics","./DataSources/PointGraphics","./DataSources/PointVisualizer","./DataSources/PolygonGeometryUpdater","./DataSources/PolygonGraphics","./DataSources/PolylineArrowMaterialProperty","./DataSources/PolylineDashMaterialProperty","./DataSources/PolylineGeometryUpdater","./DataSources/PolylineGlowMaterialProperty","./DataSources/PolylineGraphics","./DataSources/PolylineOutlineMaterialProperty","./DataSources/PolylineVisualizer","./DataSources/PolylineVolumeGeometryUpdater","./DataSources/PolylineVolumeGraphics","./DataSources/PositionProperty","./DataSources/PositionPropertyArray","./DataSources/Property","./DataSources/PropertyArray","./DataSources/PropertyBag","./DataSources/RectangleGeometryUpdater","./DataSources/RectangleGraphics","./DataSources/ReferenceProperty","./DataSources/Rotation","./DataSources/SampledPositionProperty","./DataSources/SampledProperty","./DataSources/ScaledPositionProperty","./DataSources/StaticGeometryColorBatch","./DataSources/StaticGeometryPerMaterialBatch","./DataSources/StaticGroundGeometryColorBatch","./DataSources/StaticGroundGeometryPerMaterialBatch","./DataSources/StaticGroundPolylinePerMaterialBatch","./DataSources/StaticOutlineGeometryBatch","./DataSources/StripeMaterialProperty","./DataSources/StripeOrientation","./DataSources/TerrainOffsetProperty","./DataSources/TimeIntervalCollectionPositionProperty","./DataSources/TimeIntervalCollectionProperty","./DataSources/VelocityOrientationProperty","./DataSources/VelocityVectorProperty","./DataSources/Visualizer","./DataSources/WallGeometryUpdater","./DataSources/WallGraphics","./Renderer/AutomaticUniforms","./Renderer/Buffer","./Renderer/BufferUsage","./Renderer/ClearCommand","./Renderer/ComputeCommand","./Renderer/ComputeEngine","./Renderer/Context","./Renderer/ContextLimits","./Renderer/createUniform","./Renderer/createUniformArray","./Renderer/CubeMap","./Renderer/CubeMapFace","./Renderer/DrawCommand","./Renderer/Framebuffer","./Renderer/freezeRenderState","./Renderer/loadCubeMap","./Renderer/MipmapHint","./Renderer/modernizeShader","./Renderer/Pass","./Renderer/PassState","./Renderer/PixelDatatype","./Renderer/Renderbuffer","./Renderer/RenderbufferFormat","./Renderer/RenderState","./Renderer/Sampler","./Renderer/ShaderCache","./Renderer/ShaderProgram","./Renderer/ShaderSource","./Renderer/Texture","./Renderer/TextureCache","./Renderer/TextureMagnificationFilter","./Renderer/TextureMinificationFilter","./Renderer/TextureWrap","./Renderer/UniformState","./Renderer/VertexArray","./Renderer/VertexArrayFacade","./Scene/Appearance","./Scene/ArcGisMapServerImageryProvider","./Scene/AttributeType","./Scene/AutoExposure","./Scene/Axis","./Scene/Batched3DModel3DTileContent","./Scene/BatchTable","./Scene/Billboard","./Scene/BillboardCollection","./Scene/BingMapsImageryProvider","./Scene/BingMapsStyle","./Scene/BlendEquation","./Scene/BlendFunction","./Scene/BlendingState","./Scene/BlendOption","./Scene/BoxEmitter","./Scene/BrdfLutGenerator","./Scene/Camera","./Scene/CameraEventAggregator","./Scene/CameraEventType","./Scene/CameraFlightPath","./Scene/Cesium3DTile","./Scene/Cesium3DTileBatchTable","./Scene/Cesium3DTileColorBlendMode","./Scene/Cesium3DTileContent","./Scene/Cesium3DTileContentFactory","./Scene/Cesium3DTileContentState","./Scene/Cesium3DTileFeature","./Scene/Cesium3DTileFeatureTable","./Scene/Cesium3DTileOptimizationHint","./Scene/Cesium3DTileOptimizations","./Scene/Cesium3DTilePass","./Scene/Cesium3DTilePassState","./Scene/Cesium3DTilePointFeature","./Scene/Cesium3DTileRefine","./Scene/Cesium3DTileset","./Scene/Cesium3DTilesetCache","./Scene/Cesium3DTilesetHeatmap","./Scene/Cesium3DTilesetMostDetailedTraversal","./Scene/Cesium3DTilesetStatistics","./Scene/Cesium3DTilesetTraversal","./Scene/Cesium3DTileStyle","./Scene/Cesium3DTileStyleEngine","./Scene/CircleEmitter","./Scene/ClassificationModel","./Scene/ClassificationPrimitive","./Scene/ClassificationType","./Scene/ClippingPlane","./Scene/ClippingPlaneCollection","./Scene/ColorBlendMode","./Scene/Composite3DTileContent","./Scene/computeFlyToLocationForRectangle","./Scene/ConditionsExpression","./Scene/ConeEmitter","./Scene/createBillboardPointCallback","./Scene/createOpenStreetMapImageryProvider","./Scene/createTangentSpaceDebugPrimitive","./Scene/createTileMapServiceImageryProvider","./Scene/createWorldImagery","./Scene/CreditDisplay","./Scene/CullFace","./Scene/DebugAppearance","./Scene/DebugCameraPrimitive","./Scene/DebugModelMatrixPrimitive","./Scene/DepthFunction","./Scene/DepthPlane","./Scene/DerivedCommand","./Scene/DeviceOrientationCameraController","./Scene/DiscardEmptyTileImagePolicy","./Scene/DiscardMissingTileImagePolicy","./Scene/DracoLoader","./Scene/EllipsoidPrimitive","./Scene/EllipsoidSurfaceAppearance","./Scene/Empty3DTileContent","./Scene/Expression","./Scene/ExpressionNodeType","./Scene/Fog","./Scene/FrameRateMonitor","./Scene/FrameState","./Scene/FrustumCommands","./Scene/Geometry3DTileContent","./Scene/getBinaryAccessor","./Scene/getClipAndStyleCode","./Scene/getClippingFunction","./Scene/GetFeatureInfoFormat","./Scene/Globe","./Scene/GlobeDepth","./Scene/GlobeSurfaceShaderSet","./Scene/GlobeSurfaceTile","./Scene/GlobeSurfaceTileProvider","./Scene/GoogleEarthEnterpriseImageryProvider","./Scene/GoogleEarthEnterpriseMapsProvider","./Scene/GridImageryProvider","./Scene/GroundPolylinePrimitive","./Scene/GroundPrimitive","./Scene/HeightReference","./Scene/HorizontalOrigin","./Scene/Imagery","./Scene/ImageryLayer","./Scene/ImageryLayerCollection","./Scene/ImageryLayerFeatureInfo","./Scene/ImageryProvider","./Scene/ImagerySplitDirection","./Scene/ImageryState","./Scene/Instanced3DModel3DTileContent","./Scene/InvertClassification","./Scene/IonImageryProvider","./Scene/IonWorldImageryStyle","./Scene/JobScheduler","./Scene/JobType","./Scene/Label","./Scene/LabelCollection","./Scene/LabelStyle","./Scene/MapboxImageryProvider","./Scene/MapMode2D","./Scene/Material","./Scene/MaterialAppearance","./Scene/Model","./Scene/ModelAnimation","./Scene/ModelAnimationCache","./Scene/ModelAnimationCollection","./Scene/ModelAnimationLoop","./Scene/ModelAnimationState","./Scene/ModelInstance","./Scene/ModelInstanceCollection","./Scene/ModelLoadResources","./Scene/ModelMaterial","./Scene/ModelMesh","./Scene/ModelNode","./Scene/ModelUtility","./Scene/Moon","./Scene/NeverTileDiscardPolicy","./Scene/OctahedralProjectedCubeMap","./Scene/OIT","./Scene/OrderedGroundPrimitiveCollection","./Scene/Particle","./Scene/ParticleBurst","./Scene/ParticleEmitter","./Scene/ParticleSystem","./Scene/PerformanceDisplay","./Scene/PerInstanceColorAppearance","./Scene/PickDepth","./Scene/PickDepthFramebuffer","./Scene/PickFramebuffer","./Scene/PointCloud","./Scene/PointCloud3DTileContent","./Scene/PointCloudEyeDomeLighting","./Scene/PointCloudShading","./Scene/PointPrimitive","./Scene/PointPrimitiveCollection","./Scene/Polyline","./Scene/PolylineCollection","./Scene/PolylineColorAppearance","./Scene/PolylineMaterialAppearance","./Scene/PostProcessStage","./Scene/PostProcessStageCollection","./Scene/PostProcessStageComposite","./Scene/PostProcessStageLibrary","./Scene/PostProcessStageSampleMode","./Scene/PostProcessStageTextureCache","./Scene/Primitive","./Scene/PrimitiveCollection","./Scene/PrimitivePipeline","./Scene/PrimitiveState","./Scene/processModelMaterialsCommon","./Scene/processPbrMaterials","./Scene/QuadtreeOccluders","./Scene/QuadtreePrimitive","./Scene/QuadtreeTile","./Scene/QuadtreeTileLoadState","./Scene/QuadtreeTileProvider","./Scene/Scene","./Scene/SceneFramebuffer","./Scene/SceneMode","./Scene/SceneTransforms","./Scene/SceneTransitioner","./Scene/ScreenSpaceCameraController","./Scene/ShadowMap","./Scene/ShadowMapShader","./Scene/ShadowMode","./Scene/ShadowVolumeAppearance","./Scene/SingleTileImageryProvider","./Scene/SkyAtmosphere","./Scene/SkyBox","./Scene/SphereEmitter","./Scene/StencilConstants","./Scene/StencilFunction","./Scene/StencilOperation","./Scene/StyleExpression","./Scene/Sun","./Scene/SunPostProcess","./Scene/TerrainFillMesh","./Scene/TerrainState","./Scene/TextureAtlas","./Scene/TileBoundingRegion","./Scene/TileBoundingSphere","./Scene/TileBoundingVolume","./Scene/TileCoordinatesImageryProvider","./Scene/TileDiscardPolicy","./Scene/TileImagery","./Scene/TileOrientedBoundingBox","./Scene/TileReplacementQueue","./Scene/TileSelectionResult","./Scene/Tileset3DTileContent","./Scene/TileState","./Scene/TimeDynamicImagery","./Scene/TimeDynamicPointCloud","./Scene/Tonemapper","./Scene/TweenCollection","./Scene/UrlTemplateImageryProvider","./Scene/Vector3DTileBatch","./Scene/Vector3DTileContent","./Scene/Vector3DTileGeometry","./Scene/Vector3DTilePoints","./Scene/Vector3DTilePolygons","./Scene/Vector3DTilePolylines","./Scene/Vector3DTilePrimitive","./Scene/VerticalOrigin","./Scene/View","./Scene/ViewportQuad","./Scene/WebMapServiceImageryProvider","./Scene/WebMapTileServiceImageryProvider","./Shaders/AdjustTranslucentFS","./Shaders/BillboardCollectionFS","./Shaders/BillboardCollectionVS","./Shaders/BrdfLutGeneratorFS","./Shaders/CompositeOITFS","./Shaders/DepthPlaneFS","./Shaders/DepthPlaneVS","./Shaders/EllipsoidFS","./Shaders/EllipsoidVS","./Shaders/GlobeFS","./Shaders/GlobeVS","./Shaders/GroundAtmosphere","./Shaders/OctahedralProjectionAtlasFS","./Shaders/OctahedralProjectionFS","./Shaders/OctahedralProjectionVS","./Shaders/PointPrimitiveCollectionFS","./Shaders/PointPrimitiveCollectionVS","./Shaders/PolylineCommon","./Shaders/PolylineFS","./Shaders/PolylineShadowVolumeFS","./Shaders/PolylineShadowVolumeMorphFS","./Shaders/PolylineShadowVolumeMorphVS","./Shaders/PolylineShadowVolumeVS","./Shaders/PolylineVS","./Shaders/ReprojectWebMercatorFS","./Shaders/ReprojectWebMercatorVS","./Shaders/ShadowVolumeAppearanceFS","./Shaders/ShadowVolumeAppearanceVS","./Shaders/ShadowVolumeFS","./Shaders/SkyAtmosphereFS","./Shaders/SkyAtmosphereVS","./Shaders/SkyBoxFS","./Shaders/SkyBoxVS","./Shaders/SunFS","./Shaders/SunTextureFS","./Shaders/SunVS","./Shaders/Vector3DTilePolylinesVS","./Shaders/VectorTileVS","./Shaders/ViewportQuadFS","./Shaders/ViewportQuadVS","./ThirdParty/Autolinker","./ThirdParty/earcut-2.1.1","./ThirdParty/jsep","./ThirdParty/kdbush","./ThirdParty/knockout-3.5.0","./ThirdParty/knockout-es5","./ThirdParty/knockout","./ThirdParty/measureText","./ThirdParty/mersenne-twister","./ThirdParty/NoSleep","./ThirdParty/protobuf-minimal","./ThirdParty/purify","./ThirdParty/quickselect","./ThirdParty/rbush","./ThirdParty/sprintf","./ThirdParty/topojson","./ThirdParty/Tween","./ThirdParty/Uri","./ThirdParty/when","./ThirdParty/zip","./Widgets/ClockViewModel","./Widgets/Command","./Widgets/createCommand","./Widgets/getElement","./Widgets/InspectorShared","./Widgets/subscribeAndEvaluate","./Widgets/SvgPathBindingHandler","./Widgets/ToggleButtonViewModel","./Shaders/Appearances/AllMaterialAppearanceFS","./Shaders/Appearances/AllMaterialAppearanceVS","./Shaders/Appearances/BasicMaterialAppearanceFS","./Shaders/Appearances/BasicMaterialAppearanceVS","./Shaders/Appearances/EllipsoidSurfaceAppearanceFS","./Shaders/Appearances/EllipsoidSurfaceAppearanceVS","./Shaders/Appearances/PerInstanceColorAppearanceFS","./Shaders/Appearances/PerInstanceColorAppearanceVS","./Shaders/Appearances/PerInstanceFlatColorAppearanceFS","./Shaders/Appearances/PerInstanceFlatColorAppearanceVS","./Shaders/Appearances/PolylineColorAppearanceVS","./Shaders/Appearances/PolylineMaterialAppearanceVS","./Shaders/Appearances/TexturedMaterialAppearanceFS","./Shaders/Appearances/TexturedMaterialAppearanceVS","./Shaders/Builtin/CzmBuiltins","./Shaders/Materials/AspectRampMaterial","./Shaders/Materials/BumpMapMaterial","./Shaders/Materials/CheckerboardMaterial","./Shaders/Materials/DotMaterial","./Shaders/Materials/ElevationContourMaterial","./Shaders/Materials/ElevationRampMaterial","./Shaders/Materials/FadeMaterial","./Shaders/Materials/GridMaterial","./Shaders/Materials/NormalMapMaterial","./Shaders/Materials/PolylineArrowMaterial","./Shaders/Materials/PolylineDashMaterial","./Shaders/Materials/PolylineGlowMaterial","./Shaders/Materials/PolylineOutlineMaterial","./Shaders/Materials/RimLightingMaterial","./Shaders/Materials/SlopeRampMaterial","./Shaders/Materials/StripeMaterial","./Shaders/Materials/Water","./Shaders/PostProcessStages/AcesTonemapping","./Shaders/PostProcessStages/AdditiveBlend","./Shaders/PostProcessStages/AmbientOcclusionGenerate","./Shaders/PostProcessStages/AmbientOcclusionModulate","./Shaders/PostProcessStages/BlackAndWhite","./Shaders/PostProcessStages/BloomComposite","./Shaders/PostProcessStages/Brightness","./Shaders/PostProcessStages/BrightPass","./Shaders/PostProcessStages/ContrastBias","./Shaders/PostProcessStages/DepthOfField","./Shaders/PostProcessStages/DepthView","./Shaders/PostProcessStages/DepthViewPacked","./Shaders/PostProcessStages/EdgeDetection","./Shaders/PostProcessStages/FilmicTonemapping","./Shaders/PostProcessStages/FXAA","./Shaders/PostProcessStages/GaussianBlur1D","./Shaders/PostProcessStages/LensFlare","./Shaders/PostProcessStages/ModifiedReinhardTonemapping","./Shaders/PostProcessStages/NightVision","./Shaders/PostProcessStages/PassThrough","./Shaders/PostProcessStages/PassThroughDepth","./Shaders/PostProcessStages/PointCloudEyeDomeLighting","./Shaders/PostProcessStages/ReinhardTonemapping","./Shaders/PostProcessStages/Silhouette","./ThirdParty/GltfPipeline/addBuffer","./ThirdParty/GltfPipeline/addDefaults","./ThirdParty/GltfPipeline/addExtensionsRequired","./ThirdParty/GltfPipeline/addExtensionsUsed","./ThirdParty/GltfPipeline/addPipelineExtras","./ThirdParty/GltfPipeline/addToArray","./ThirdParty/GltfPipeline/findAccessorMinMax","./ThirdParty/GltfPipeline/ForEach","./ThirdParty/GltfPipeline/getAccessorByteStride","./ThirdParty/GltfPipeline/getComponentReader","./ThirdParty/GltfPipeline/hasExtension","./ThirdParty/GltfPipeline/moveTechniqueRenderStates","./ThirdParty/GltfPipeline/moveTechniquesToExtension","./ThirdParty/GltfPipeline/numberOfComponentsForType","./ThirdParty/GltfPipeline/parseGlb","./ThirdParty/GltfPipeline/readAccessorPacked","./ThirdParty/GltfPipeline/removeExtensionsRequired","./ThirdParty/GltfPipeline/removeExtensionsUsed","./ThirdParty/GltfPipeline/removePipelineExtras","./ThirdParty/GltfPipeline/removeUnusedElements","./ThirdParty/GltfPipeline/updateAccessorComponentTypes","./ThirdParty/GltfPipeline/updateVersion","./ThirdParty/Shaders/FXAA3_11","./Widgets/Animation/Animation","./Widgets/Animation/AnimationViewModel","./Widgets/BaseLayerPicker/BaseLayerPicker","./Widgets/BaseLayerPicker/BaseLayerPickerViewModel","./Widgets/BaseLayerPicker/createDefaultImageryProviderViewModels","./Widgets/BaseLayerPicker/createDefaultTerrainProviderViewModels","./Widgets/BaseLayerPicker/ProviderViewModel","./Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector","./Widgets/Cesium3DTilesInspector/Cesium3DTilesInspectorViewModel","./Widgets/CesiumInspector/CesiumInspector","./Widgets/CesiumInspector/CesiumInspectorViewModel","./Widgets/CesiumWidget/CesiumWidget","./Widgets/FullscreenButton/FullscreenButton","./Widgets/FullscreenButton/FullscreenButtonViewModel","./Widgets/Geocoder/Geocoder","./Widgets/Geocoder/GeocoderViewModel","./Widgets/HomeButton/HomeButton","./Widgets/HomeButton/HomeButtonViewModel","./Widgets/InfoBox/InfoBox","./Widgets/InfoBox/InfoBoxViewModel","./Widgets/NavigationHelpButton/NavigationHelpButton","./Widgets/NavigationHelpButton/NavigationHelpButtonViewModel","./Widgets/PerformanceWatchdog/PerformanceWatchdog","./Widgets/PerformanceWatchdog/PerformanceWatchdogViewModel","./Widgets/ProjectionPicker/ProjectionPicker","./Widgets/ProjectionPicker/ProjectionPickerViewModel","./Widgets/SceneModePicker/SceneModePicker","./Widgets/SceneModePicker/SceneModePickerViewModel","./Widgets/SelectionIndicator/SelectionIndicator","./Widgets/SelectionIndicator/SelectionIndicatorViewModel","./Widgets/Timeline/Timeline","./Widgets/Timeline/TimelineHighlightRange","./Widgets/Timeline/TimelineTrack","./Widgets/Viewer/Viewer","./Widgets/Viewer/viewerCesium3DTilesInspectorMixin","./Widgets/Viewer/viewerCesiumInspectorMixin","./Widgets/Viewer/viewerDragDropMixin","./Widgets/Viewer/viewerPerformanceWatchdogMixin","./Widgets/VRButton/VRButton","./Widgets/VRButton/VRButtonViewModel","./Shaders/Builtin/Constants/degreesPerRadian","./Shaders/Builtin/Constants/depthRange","./Shaders/Builtin/Constants/epsilon1","./Shaders/Builtin/Constants/epsilon2","./Shaders/Builtin/Constants/epsilon3","./Shaders/Builtin/Constants/epsilon4","./Shaders/Builtin/Constants/epsilon5","./Shaders/Builtin/Constants/epsilon6","./Shaders/Builtin/Constants/epsilon7","./Shaders/Builtin/Constants/infinity","./Shaders/Builtin/Constants/oneOverPi","./Shaders/Builtin/Constants/oneOverTwoPi","./Shaders/Builtin/Constants/passCesium3DTile","./Shaders/Builtin/Constants/passCesium3DTileClassification","./Shaders/Builtin/Constants/passCesium3DTileClassificationIgnoreShow","./Shaders/Builtin/Constants/passClassification","./Shaders/Builtin/Constants/passCompute","./Shaders/Builtin/Constants/passEnvironment","./Shaders/Builtin/Constants/passGlobe","./Shaders/Builtin/Constants/passOpaque","./Shaders/Builtin/Constants/passOverlay","./Shaders/Builtin/Constants/passTerrainClassification","./Shaders/Builtin/Constants/passTranslucent","./Shaders/Builtin/Constants/pi","./Shaders/Builtin/Constants/piOverFour","./Shaders/Builtin/Constants/piOverSix","./Shaders/Builtin/Constants/piOverThree","./Shaders/Builtin/Constants/piOverTwo","./Shaders/Builtin/Constants/radiansPerDegree","./Shaders/Builtin/Constants/sceneMode2D","./Shaders/Builtin/Constants/sceneMode3D","./Shaders/Builtin/Constants/sceneModeColumbusView","./Shaders/Builtin/Constants/sceneModeMorphing","./Shaders/Builtin/Constants/solarRadius","./Shaders/Builtin/Constants/threePiOver2","./Shaders/Builtin/Constants/twoPi","./Shaders/Builtin/Constants/webMercatorMaxLatitude","./Shaders/Builtin/Functions/alphaWeight","./Shaders/Builtin/Functions/antialias","./Shaders/Builtin/Functions/approximateSphericalCoordinates","./Shaders/Builtin/Functions/branchFreeTernary","./Shaders/Builtin/Functions/cascadeColor","./Shaders/Builtin/Functions/cascadeDistance","./Shaders/Builtin/Functions/cascadeMatrix","./Shaders/Builtin/Functions/cascadeWeights","./Shaders/Builtin/Functions/columbusViewMorph","./Shaders/Builtin/Functions/computePosition","./Shaders/Builtin/Functions/cosineAndSine","./Shaders/Builtin/Functions/decompressTextureCoordinates","./Shaders/Builtin/Functions/depthClampFarPlane","./Shaders/Builtin/Functions/eastNorthUpToEyeCoordinates","./Shaders/Builtin/Functions/ellipsoidContainsPoint","./Shaders/Builtin/Functions/ellipsoidNew","./Shaders/Builtin/Functions/ellipsoidWgs84TextureCoordinates","./Shaders/Builtin/Functions/equalsEpsilon","./Shaders/Builtin/Functions/eyeOffset","./Shaders/Builtin/Functions/eyeToWindowCoordinates","./Shaders/Builtin/Functions/fastApproximateAtan","./Shaders/Builtin/Functions/fog","./Shaders/Builtin/Functions/gammaCorrect","./Shaders/Builtin/Functions/geodeticSurfaceNormal","./Shaders/Builtin/Functions/getDefaultMaterial","./Shaders/Builtin/Functions/getLambertDiffuse","./Shaders/Builtin/Functions/getSpecular","./Shaders/Builtin/Functions/getWaterNoise","./Shaders/Builtin/Functions/getWgs84EllipsoidEC","./Shaders/Builtin/Functions/HSBToRGB","./Shaders/Builtin/Functions/HSLToRGB","./Shaders/Builtin/Functions/hue","./Shaders/Builtin/Functions/inverseGamma","./Shaders/Builtin/Functions/isEmpty","./Shaders/Builtin/Functions/isFull","./Shaders/Builtin/Functions/latitudeToWebMercatorFraction","./Shaders/Builtin/Functions/lineDistance","./Shaders/Builtin/Functions/luminance","./Shaders/Builtin/Functions/metersPerPixel","./Shaders/Builtin/Functions/modelToWindowCoordinates","./Shaders/Builtin/Functions/multiplyWithColorBalance","./Shaders/Builtin/Functions/nearFarScalar","./Shaders/Builtin/Functions/octDecode","./Shaders/Builtin/Functions/packDepth","./Shaders/Builtin/Functions/phong","./Shaders/Builtin/Functions/planeDistance","./Shaders/Builtin/Functions/pointAlongRay","./Shaders/Builtin/Functions/rayEllipsoidIntersectionInterval","./Shaders/Builtin/Functions/readDepth","./Shaders/Builtin/Functions/reverseLogDepth","./Shaders/Builtin/Functions/RGBToHSB","./Shaders/Builtin/Functions/RGBToHSL","./Shaders/Builtin/Functions/RGBToXYZ","./Shaders/Builtin/Functions/sampleOctahedralProjection","./Shaders/Builtin/Functions/saturation","./Shaders/Builtin/Functions/shadowDepthCompare","./Shaders/Builtin/Functions/shadowVisibility","./Shaders/Builtin/Functions/signNotZero","./Shaders/Builtin/Functions/sphericalHarmonics","./Shaders/Builtin/Functions/tangentToEyeSpaceMatrix","./Shaders/Builtin/Functions/transformPlane","./Shaders/Builtin/Functions/translateRelativeToEye","./Shaders/Builtin/Functions/translucentPhong","./Shaders/Builtin/Functions/transpose","./Shaders/Builtin/Functions/unpackDepth","./Shaders/Builtin/Functions/unpackFloat","./Shaders/Builtin/Functions/vertexLogDepth","./Shaders/Builtin/Functions/windowToEyeCoordinates","./Shaders/Builtin/Functions/writeDepthClampedToFarPlane","./Shaders/Builtin/Functions/writeLogDepth","./Shaders/Builtin/Functions/XYZToRGB","./Shaders/Builtin/Structs/depthRangeStruct","./Shaders/Builtin/Structs/ellipsoid","./Shaders/Builtin/Structs/material","./Shaders/Builtin/Structs/materialInput","./Shaders/Builtin/Structs/ray","./Shaders/Builtin/Structs/raySegment","./Shaders/Builtin/Structs/shadowParameters","./Workers/createTaskProcessorWorker"],function(e,t,i,r,n,o,a,s,l,u,c,d,h,p,f,m,_,g,v,y,C,b,S,T,E,A,w,x,P,D,I,M,R,O,L,N,F,B,z,k,V,U,G,H,W,q,Y,j,X,Q,K,Z,J,$,ee,te,ie,re,ne,oe,ae,se,le,ue,ce,de,he,pe,fe,me,_e,ge,ve,ye,Ce,be,Se,Te,Ee,Ae,we,xe,Pe,De,Ie,Me,Re,Oe,Le,Ne,Fe,Be,ze,ke,Ve,Ue,Ge,He,We,qe,Ye,je,Xe,Qe,Ke,Ze,Je,$e,et,tt,it,rt,nt,ot,at,st,lt,ut,ct,dt,ht,pt,ft,mt,_t,gt,vt,yt,Ct,bt,St,Tt,Et,At,wt,xt,Pt,Dt,It,Mt,Rt,Ot,Lt,Nt,Ft,Bt,zt,kt,Vt,Ut,Gt,Ht,Wt,qt,Yt,jt,Xt,Qt,Kt,Zt,Jt,$t,ei,ti,ii,ri,ni,oi,ai,si,li,ui,ci,di,hi,pi,fi,mi,_i,gi,vi,yi,Ci,bi,Si,Ti,Ei,Ai,wi,xi,Pi,Di,Ii,Mi,Ri,Oi,Li,Ni,Fi,Bi,zi,ki,Vi,Ui,Gi,Hi,Wi,qi,Yi,ji,Xi,Qi,Ki,Zi,Ji,$i,er,tr,ir,rr,nr,or,ar,sr,lr,ur,cr,dr,hr,pr,fr,mr,_r,gr,vr,yr,Cr,br,Sr,Tr,Er,Ar,wr,xr,Pr,Dr,Ir,Mr,Rr,Or,Lr,Nr,Fr,Br,zr,kr,Vr,Ur,Gr,Hr,Wr,qr,Yr,jr,Xr,Qr,Kr,Zr,Jr,$r,en,tn,rn,nn,on,an,sn,ln,un,cn,dn,hn,pn,fn,mn,_n,gn,vn,yn,Cn,bn,Sn,Tn,En,An,wn,xn,Pn,Dn,In,Mn,Rn,On,Ln,Nn,Fn,Bn,zn,kn,Vn,Un,Gn,Hn,Wn,qn,Yn,jn,Xn,Qn,Kn,Zn,Jn,$n,eo,to,io,ro,no,oo,ao,so,lo,uo,co,ho,po,fo,mo,_o,go,vo,yo,Co,bo,So,To,Eo,Ao,wo,xo,Po,Do,Io,Mo,Ro,Oo,Lo,No,Fo,Bo,zo,ko,Vo,Uo,Go,Ho,Wo,qo,Yo,jo,Xo,Qo,Ko,Zo,Jo,$o,ea,ta,ia,ra,na,oa,aa,sa,la,ua,ca,da,ha,pa,fa,ma,_a,ga,va,ya,Ca,ba,Sa,Ta,Ea,Aa,wa,xa,Pa,Da,Ia,Ma,Ra,Oa,La,Na,Fa,Ba,za,ka,Va,Ua,Ga,Ha,Wa,qa,Ya,ja,Xa,Qa,Ka,Za,Ja,$a,es,ts,is,rs,ns,os,as,ss,ls,us,cs,ds,hs,ps,fs,ms,_s,gs,vs,ys,Cs,bs,Ss,Ts,Es,As,ws,xs,Ps,Ds,Is,Ms,Rs,Os,Ls,Ns,Fs,Bs,zs,ks,Vs,Us,Gs,Hs,Ws,qs,Ys,js,Xs,Qs,Ks,Zs,Js,$s,el,tl,il,rl,nl,ol,al,sl,ll,ul,cl,dl,hl,pl,fl,ml,_l,gl,vl,yl,Cl,bl,Sl,Tl,El,Al,wl,xl,Pl,Dl,Il,Ml,Rl,Ol,Ll,Nl,Fl,Bl,zl,kl,Vl,Ul,Gl,Hl,Wl,ql,Yl,jl,Xl,Ql,Kl,Zl,Jl,$l,eu,tu,iu,ru,nu,ou,au,su,lu,uu,cu,du,hu,pu,fu,mu,_u,gu,vu,yu,Cu,bu,Su,Tu,Eu,Au,wu,xu,Pu,Du,Iu,Mu,Ru,Ou,Lu,Nu,Fu,Bu,zu,ku,Vu,Uu,Gu,Hu,Wu,qu,Yu,ju,Xu,Qu,Ku,Zu,Ju,$u,ec,tc,ic,rc,nc,oc,ac,sc,lc,uc,cc,dc,hc,pc,fc,mc,_c,gc,vc,yc,Cc,bc,Sc,Tc,Ec,Ac,wc,xc,Pc,Dc,Ic,Mc,Rc,Oc,Lc,Nc,Fc,Bc,zc,kc,Vc,Uc,Gc,Hc,Wc,qc,Yc,jc,Xc,Qc,Kc,Zc,Jc,$c,ed,td,id,rd,nd,od,ad,sd,ld,ud,cd,dd,hd,pd,fd,md,_d,gd,vd,yd,Cd,bd,Sd,Td,Ed,Ad,wd,xd,Pd,Dd,Id,Md,Rd,Od,Ld,Nd,Fd,Bd,zd,kd,Vd,Ud,Gd,Hd,Wd,qd,Yd,jd,Xd,Qd,Kd,Zd,Jd,$d,eh,th,ih,rh,nh,oh,ah,sh,lh,uh,ch,dh,hh,ph,fh,mh,_h,gh,vh,yh,Ch,bh,Sh,Th,Eh,Ah,wh,xh,Ph,Dh,Ih,Mh,Rh,Oh,Lh,Nh,Fh,Bh,zh,kh,Vh,Uh,Gh,Hh,Wh,qh,Yh,jh,Xh,Qh,Kh,Zh,Jh,$h,ep,tp,ip,rp,np,op,ap,sp,lp,up,cp,dp,hp,pp,fp,mp,_p,gp,vp,yp,Cp,bp,Sp,Tp,Ep,Ap,wp,xp,Pp,Dp,Ip,Mp,Rp,Op,Lp,Np,Fp,Bp,zp,kp,Vp,Up,Gp,Hp,Wp,qp,Yp,jp,Xp,Qp,Kp,Zp,Jp,$p,ef,tf,rf,nf,of,af,sf,lf,uf,cf,df,hf,pf,ff,mf,_f,gf,vf,yf,Cf,bf,Sf,Tf,Ef,Af,wf,xf,Pf,Df,If,Mf,Rf,Of,Lf,Nf,Ff,Bf,zf,kf,Vf,Uf,Gf,Hf,Wf,qf,Yf,jf,Xf,Qf,Kf,Zf,Jf,$f,em,tm,im,rm,nm,om,am,sm,lm,um,cm,dm,hm,pm,fm,mm,_m,gm,vm,ym,Cm,bm,Sm,Tm,Em,Am,wm,xm,Pm,Dm,Im,Mm,Rm,Om,Lm,Nm,Fm,Bm,zm,km,Vm,Um,Gm,Hm,Wm,qm,Ym,jm,Xm,Qm,Km,Zm,Jm,$m,e_,t_,i_,r_,n_,o_,a_,s_){ -"use strict";var l_={VERSION:"1.58",_shaders:{}};return l_.appendForwardSlash=e,l_.ApproximateTerrainHeights=t,l_.ArcType=i,l_.arrayFill=r,l_.arrayRemoveDuplicates=n,l_.arraySlice=o,l_.AssociativeArray=a,l_.AttributeCompression=s,l_.AxisAlignedBoundingBox=l,l_.barycentricCoordinates=u,l_.binarySearch=c,l_.BingMapsApi=d,l_.BingMapsGeocoderService=h,l_.BoundingRectangle=p,l_.BoundingSphere=f,l_.BoxGeometry=m,l_.BoxOutlineGeometry=_,l_.buildModuleUrl=g,l_.cancelAnimationFrame=v,l_.Cartesian2=y,l_.Cartesian3=C,l_.Cartesian4=b,l_.Cartographic=S,l_.CartographicGeocoderService=T,l_.CatmullRomSpline=E,l_.CesiumTerrainProvider=A,l_.Check=w,l_.CircleGeometry=x,l_.CircleOutlineGeometry=P,l_.Clock=D,l_.ClockRange=I,l_.ClockStep=M,l_.clone=R,l_.Color=O,l_.ColorGeometryInstanceAttribute=L,l_.combine=N,l_.ComponentDatatype=F,l_.CompressedTextureBuffer=B,l_.CoplanarPolygonGeometry=z,l_.CoplanarPolygonGeometryLibrary=k,l_.CoplanarPolygonOutlineGeometry=V,l_.CornerType=U,l_.CorridorGeometry=G,l_.CorridorGeometryLibrary=H,l_.CorridorOutlineGeometry=W,l_.createGuid=q,l_.createWorldTerrain=Y,l_.Credit=j,l_.CubicRealPolynomial=X,l_.CullingVolume=Q,l_.CylinderGeometry=K,l_.CylinderGeometryLibrary=Z,l_.CylinderOutlineGeometry=J,l_.decodeGoogleEarthEnterpriseData=$,l_.DefaultProxy=ee,l_.defaultValue=te,l_.defined=ie,l_.defineProperties=re,l_.deprecationWarning=ne,l_.destroyObject=oe,l_.DeveloperError=ae,l_.DistanceDisplayCondition=se,l_.DistanceDisplayConditionGeometryInstanceAttribute=le,l_.DoublyLinkedList=ue,l_.EarthOrientationParameters=ce,l_.EarthOrientationParametersSample=de,l_.EasingFunction=he,l_.EllipseGeometry=pe,l_.EllipseGeometryLibrary=fe,l_.EllipseOutlineGeometry=me,l_.Ellipsoid=_e,l_.EllipsoidalOccluder=ge,l_.EllipsoidGeodesic=ve,l_.EllipsoidGeometry=ye,l_.EllipsoidOutlineGeometry=Ce,l_.EllipsoidRhumbLine=be,l_.EllipsoidTangentPlane=Se,l_.EllipsoidTerrainProvider=Te,l_.EncodedCartesian3=Ee,l_.Event=Ae,l_.EventHelper=we,l_.ExtrapolationType=xe,l_.FeatureDetection=Pe,l_.formatError=De,l_.freezeObject=Ie,l_.FrustumGeometry=Me,l_.FrustumOutlineGeometry=Re,l_.Fullscreen=Oe,l_.GeocoderService=Le,l_.GeocodeType=Ne,l_.GeographicProjection=Fe,l_.GeographicTilingScheme=Be,l_.Geometry=ze,l_.GeometryAttribute=ke,l_.GeometryAttributes=Ve,l_.GeometryInstance=Ue,l_.GeometryInstanceAttribute=Ge,l_.GeometryOffsetAttribute=He,l_.GeometryPipeline=We,l_.GeometryType=qe,l_.getAbsoluteUri=Ye,l_.getBaseUri=je,l_.getExtensionFromUri=Xe,l_.getFilenameFromUri=Qe,l_.getImagePixels=Ke,l_.getMagic=Ze,l_.getStringFromTypedArray=Je,l_.getTimestamp=$e,l_.GoogleEarthEnterpriseMetadata=et,l_.GoogleEarthEnterpriseTerrainData=tt,l_.GoogleEarthEnterpriseTerrainProvider=it,l_.GoogleEarthEnterpriseTileInformation=rt,l_.GregorianDate=nt,l_.GroundPolylineGeometry=ot,l_.HeadingPitchRange=at,l_.HeadingPitchRoll=st,l_.Heap=lt,l_.HeightmapTerrainData=ut,l_.HeightmapTessellator=ct,l_.HermitePolynomialApproximation=dt,l_.HermiteSpline=ht,l_.Iau2000Orientation=pt,l_.Iau2006XysData=ft,l_.Iau2006XysSample=mt,l_.IauOrientationAxes=_t,l_.IauOrientationParameters=gt,l_.IndexDatatype=vt,l_.InterpolationAlgorithm=yt,l_.Intersect=Ct,l_.Intersections2D=bt,l_.IntersectionTests=St,l_.Interval=Tt,l_.Ion=Et,l_.IonGeocoderService=At,l_.IonResource=wt,l_.isArray=xt,l_.isBitSet=Pt,l_.isBlobUri=Dt,l_.isCrossOriginUrl=It,l_.isDataUri=Mt,l_.isLeapYear=Rt,l_.Iso8601=Ot,l_.JulianDate=Lt,l_.KeyboardEventModifier=Nt,l_.LagrangePolynomialApproximation=Ft,l_.LeapSecond=Bt,l_.LinearApproximation=zt,l_.LinearSpline=kt,l_.loadAndExecuteScript=Vt,l_.loadCRN=Ut,l_.loadImageFromTypedArray=Gt,l_.loadKTX=Ht,l_.ManagedArray=Wt,l_.MapboxApi=qt,l_.MapProjection=Yt,l_.Math=jt,l_.Matrix2=Xt,l_.Matrix3=Qt,l_.Matrix4=Kt,l_.mergeSort=Zt,l_.NearFarScalar=Jt,l_.objectToQuery=$t,l_.Occluder=ei,l_.OffsetGeometryInstanceAttribute=ti,l_.oneTimeWarning=ii,l_.OpenCageGeocoderService=ri,l_.OrientedBoundingBox=ni,l_.OrthographicFrustum=oi,l_.OrthographicOffCenterFrustum=ai,l_.Packable=si,l_.PackableForInterpolation=li,l_.parseResponseHeaders=ui,l_.PeliasGeocoderService=ci,l_.PerspectiveFrustum=di,l_.PerspectiveOffCenterFrustum=hi,l_.PinBuilder=pi,l_.PixelFormat=fi,l_.Plane=mi,l_.PlaneGeometry=_i,l_.PlaneOutlineGeometry=gi,l_.pointInsideTriangle=vi,l_.PolygonGeometry=yi,l_.PolygonGeometryLibrary=Ci,l_.PolygonHierarchy=bi,l_.PolygonOutlineGeometry=Si,l_.PolygonPipeline=Ti,l_.PolylineGeometry=Ei,l_.PolylinePipeline=Ai,l_.PolylineVolumeGeometry=wi,l_.PolylineVolumeGeometryLibrary=xi,l_.PolylineVolumeOutlineGeometry=Pi,l_.PrimitiveType=Di,l_.QuadraticRealPolynomial=Ii,l_.QuantizedMeshTerrainData=Mi,l_.QuarticRealPolynomial=Ri,l_.Quaternion=Oi,l_.QuaternionSpline=Li,l_.queryToObject=Ni,l_.Queue=Fi,l_.Ray=Bi,l_.Rectangle=zi,l_.RectangleCollisionChecker=ki,l_.RectangleGeometry=Vi,l_.RectangleGeometryLibrary=Ui,l_.RectangleOutlineGeometry=Gi,l_.ReferenceFrame=Hi,l_.Request=Wi,l_.requestAnimationFrame=qi,l_.RequestErrorEvent=Yi,l_.RequestScheduler=ji,l_.RequestState=Xi,l_.RequestType=Qi,l_.Resource=Ki,l_.RuntimeError=Zi,l_.sampleTerrain=Ji,l_.sampleTerrainMostDetailed=$i,l_.scaleToGeodeticSurface=er,l_.ScreenSpaceEventHandler=tr,l_.ScreenSpaceEventType=ir,l_.ShowGeometryInstanceAttribute=rr,l_.Simon1994PlanetaryPositions=nr,l_.SimplePolylineGeometry=or,l_.SphereGeometry=ar,l_.SphereOutlineGeometry=sr,l_.Spherical=lr,l_.Spline=ur,l_.subdivideArray=cr,l_.TaskProcessor=dr,l_.TerrainData=hr,l_.TerrainEncoding=pr,l_.TerrainMesh=fr,l_.TerrainProvider=mr,l_.TerrainQuantization=_r,l_.TileAvailability=gr,l_.TileEdge=vr,l_.TileProviderError=yr,l_.TilingScheme=Cr,l_.TimeConstants=br,l_.TimeInterval=Sr,l_.TimeIntervalCollection=Tr,l_.TimeStandard=Er,l_.Tipsify=Ar,l_.Transforms=wr,l_.TranslationRotationScale=xr,l_.TridiagonalSystemSolver=Pr,l_.TrustedServers=Dr,l_.VertexFormat=Ir,l_.VideoSynchronizer=Mr,l_.Visibility=Rr,l_.VRTheWorldTerrainProvider=Or,l_.WallGeometry=Lr,l_.WallGeometryLibrary=Nr,l_.WallOutlineGeometry=Fr,l_.WebGLConstants=Br,l_.webGLConstantToGlslType=zr,l_.WebMercatorProjection=kr,l_.WebMercatorTilingScheme=Vr,l_.WeightSpline=Ur,l_.WindingOrder=Gr,l_.wrapFunction=Hr,l_.writeTextToCanvas=Wr,l_.BillboardGraphics=qr,l_.BillboardVisualizer=Yr,l_.BoundingSphereState=jr,l_.BoxGeometryUpdater=Xr,l_.BoxGraphics=Qr,l_.CallbackProperty=Kr,l_.CheckerboardMaterialProperty=Zr,l_.ColorMaterialProperty=Jr,l_.CompositeEntityCollection=$r,l_.CompositeMaterialProperty=en,l_.CompositePositionProperty=tn,l_.CompositeProperty=rn,l_.ConstantPositionProperty=nn,l_.ConstantProperty=on,l_.CorridorGeometryUpdater=an,l_.CorridorGraphics=sn,l_.createMaterialPropertyDescriptor=ln,l_.createPropertyDescriptor=un,l_.createRawPropertyDescriptor=cn,l_.CustomDataSource=dn,l_.CylinderGeometryUpdater=hn,l_.CylinderGraphics=pn,l_.CzmlDataSource=fn,l_.DataSource=mn,l_.DataSourceClock=_n,l_.DataSourceCollection=gn,l_.DataSourceDisplay=vn,l_.DynamicGeometryBatch=yn,l_.DynamicGeometryUpdater=Cn,l_.EllipseGeometryUpdater=bn,l_.EllipseGraphics=Sn,l_.EllipsoidGeometryUpdater=Tn,l_.EllipsoidGraphics=En,l_.Entity=An,l_.EntityCluster=wn,l_.EntityCollection=xn,l_.EntityView=Pn,l_.GeoJsonDataSource=Dn,l_.GeometryUpdater=In,l_.GeometryVisualizer=Mn,l_.GridMaterialProperty=Rn,l_.GroundGeometryUpdater=On,l_.heightReferenceOnEntityPropertyChanged=Ln,l_.ImageMaterialProperty=Nn,l_.KmlCamera=Fn,l_.KmlDataSource=Bn,l_.KmlLookAt=zn,l_.KmlTour=kn,l_.KmlTourFlyTo=Vn,l_.KmlTourWait=Un,l_.LabelGraphics=Gn,l_.LabelVisualizer=Hn,l_.MaterialProperty=Wn,l_.ModelGraphics=qn,l_.ModelVisualizer=Yn,l_.NodeTransformationProperty=jn,l_.PathGraphics=Xn,l_.PathVisualizer=Qn,l_.PlaneGeometryUpdater=Kn,l_.PlaneGraphics=Zn,l_.PointGraphics=Jn,l_.PointVisualizer=$n,l_.PolygonGeometryUpdater=eo,l_.PolygonGraphics=to,l_.PolylineArrowMaterialProperty=io,l_.PolylineDashMaterialProperty=ro,l_.PolylineGeometryUpdater=no,l_.PolylineGlowMaterialProperty=oo,l_.PolylineGraphics=ao,l_.PolylineOutlineMaterialProperty=so,l_.PolylineVisualizer=lo,l_.PolylineVolumeGeometryUpdater=uo,l_.PolylineVolumeGraphics=co,l_.PositionProperty=ho,l_.PositionPropertyArray=po,l_.Property=fo,l_.PropertyArray=mo,l_.PropertyBag=_o,l_.RectangleGeometryUpdater=go,l_.RectangleGraphics=vo,l_.ReferenceProperty=yo,l_.Rotation=Co,l_.SampledPositionProperty=bo,l_.SampledProperty=So,l_.ScaledPositionProperty=To,l_.StaticGeometryColorBatch=Eo,l_.StaticGeometryPerMaterialBatch=Ao,l_.StaticGroundGeometryColorBatch=wo,l_.StaticGroundGeometryPerMaterialBatch=xo,l_.StaticGroundPolylinePerMaterialBatch=Po,l_.StaticOutlineGeometryBatch=Do,l_.StripeMaterialProperty=Io,l_.StripeOrientation=Mo,l_.TerrainOffsetProperty=Ro,l_.TimeIntervalCollectionPositionProperty=Oo,l_.TimeIntervalCollectionProperty=Lo,l_.VelocityOrientationProperty=No,l_.VelocityVectorProperty=Fo,l_.Visualizer=Bo,l_.WallGeometryUpdater=zo,l_.WallGraphics=ko,l_.AutomaticUniforms=Vo,l_.Buffer=Uo,l_.BufferUsage=Go,l_.ClearCommand=Ho,l_.ComputeCommand=Wo,l_.ComputeEngine=qo,l_.Context=Yo,l_.ContextLimits=jo,l_.createUniform=Xo,l_.createUniformArray=Qo,l_.CubeMap=Ko,l_.CubeMapFace=Zo,l_.DrawCommand=Jo,l_.Framebuffer=$o,l_.freezeRenderState=ea,l_.loadCubeMap=ta,l_.MipmapHint=ia,l_.modernizeShader=ra,l_.Pass=na,l_.PassState=oa,l_.PixelDatatype=aa,l_.Renderbuffer=sa,l_.RenderbufferFormat=la,l_.RenderState=ua,l_.Sampler=ca,l_.ShaderCache=da,l_.ShaderProgram=ha,l_.ShaderSource=pa,l_.Texture=fa,l_.TextureCache=ma,l_.TextureMagnificationFilter=_a,l_.TextureMinificationFilter=ga,l_.TextureWrap=va,l_.UniformState=ya,l_.VertexArray=Ca,l_.VertexArrayFacade=ba,l_.Appearance=Sa,l_.ArcGisMapServerImageryProvider=Ta,l_.AttributeType=Ea,l_.AutoExposure=Aa,l_.Axis=wa,l_.Batched3DModel3DTileContent=xa,l_.BatchTable=Pa,l_.Billboard=Da,l_.BillboardCollection=Ia,l_.BingMapsImageryProvider=Ma,l_.BingMapsStyle=Ra,l_.BlendEquation=Oa,l_.BlendFunction=La,l_.BlendingState=Na,l_.BlendOption=Fa,l_.BoxEmitter=Ba,l_.BrdfLutGenerator=za,l_.Camera=ka,l_.CameraEventAggregator=Va,l_.CameraEventType=Ua,l_.CameraFlightPath=Ga,l_.Cesium3DTile=Ha,l_.Cesium3DTileBatchTable=Wa,l_.Cesium3DTileColorBlendMode=qa,l_.Cesium3DTileContent=Ya,l_.Cesium3DTileContentFactory=ja,l_.Cesium3DTileContentState=Xa,l_.Cesium3DTileFeature=Qa,l_.Cesium3DTileFeatureTable=Ka,l_.Cesium3DTileOptimizationHint=Za,l_.Cesium3DTileOptimizations=Ja,l_.Cesium3DTilePass=$a,l_.Cesium3DTilePassState=es,l_.Cesium3DTilePointFeature=ts,l_.Cesium3DTileRefine=is,l_.Cesium3DTileset=rs,l_.Cesium3DTilesetCache=ns,l_.Cesium3DTilesetHeatmap=os,l_.Cesium3DTilesetMostDetailedTraversal=as,l_.Cesium3DTilesetStatistics=ss,l_.Cesium3DTilesetTraversal=ls,l_.Cesium3DTileStyle=us,l_.Cesium3DTileStyleEngine=cs,l_.CircleEmitter=ds,l_.ClassificationModel=hs,l_.ClassificationPrimitive=ps,l_.ClassificationType=fs,l_.ClippingPlane=ms,l_.ClippingPlaneCollection=_s,l_.ColorBlendMode=gs,l_.Composite3DTileContent=vs,l_.computeFlyToLocationForRectangle=ys,l_.ConditionsExpression=Cs,l_.ConeEmitter=bs,l_.createBillboardPointCallback=Ss,l_.createOpenStreetMapImageryProvider=Ts,l_.createTangentSpaceDebugPrimitive=Es,l_.createTileMapServiceImageryProvider=As,l_.createWorldImagery=ws,l_.CreditDisplay=xs,l_.CullFace=Ps,l_.DebugAppearance=Ds,l_.DebugCameraPrimitive=Is,l_.DebugModelMatrixPrimitive=Ms,l_.DepthFunction=Rs,l_.DepthPlane=Os,l_.DerivedCommand=Ls,l_.DeviceOrientationCameraController=Ns,l_.DiscardEmptyTileImagePolicy=Fs,l_.DiscardMissingTileImagePolicy=Bs,l_.DracoLoader=zs,l_.EllipsoidPrimitive=ks,l_.EllipsoidSurfaceAppearance=Vs,l_.Empty3DTileContent=Us,l_.Expression=Gs,l_.ExpressionNodeType=Hs,l_.Fog=Ws,l_.FrameRateMonitor=qs,l_.FrameState=Ys,l_.FrustumCommands=js,l_.Geometry3DTileContent=Xs,l_.getBinaryAccessor=Qs,l_.getClipAndStyleCode=Ks,l_.getClippingFunction=Zs,l_.GetFeatureInfoFormat=Js,l_.Globe=$s,l_.GlobeDepth=el,l_.GlobeSurfaceShaderSet=tl,l_.GlobeSurfaceTile=il,l_.GlobeSurfaceTileProvider=rl,l_.GoogleEarthEnterpriseImageryProvider=nl,l_.GoogleEarthEnterpriseMapsProvider=ol,l_.GridImageryProvider=al,l_.GroundPolylinePrimitive=sl,l_.GroundPrimitive=ll,l_.HeightReference=ul,l_.HorizontalOrigin=cl,l_.Imagery=dl,l_.ImageryLayer=hl,l_.ImageryLayerCollection=pl,l_.ImageryLayerFeatureInfo=fl,l_.ImageryProvider=ml,l_.ImagerySplitDirection=_l,l_.ImageryState=gl,l_.Instanced3DModel3DTileContent=vl,l_.InvertClassification=yl,l_.IonImageryProvider=Cl,l_.IonWorldImageryStyle=bl,l_.JobScheduler=Sl,l_.JobType=Tl,l_.Label=El,l_.LabelCollection=Al,l_.LabelStyle=wl,l_.MapboxImageryProvider=xl,l_.MapMode2D=Pl,l_.Material=Dl,l_.MaterialAppearance=Il,l_.Model=Ml,l_.ModelAnimation=Rl,l_.ModelAnimationCache=Ol,l_.ModelAnimationCollection=Ll,l_.ModelAnimationLoop=Nl,l_.ModelAnimationState=Fl,l_.ModelInstance=Bl,l_.ModelInstanceCollection=zl,l_.ModelLoadResources=kl,l_.ModelMaterial=Vl,l_.ModelMesh=Ul,l_.ModelNode=Gl,l_.ModelUtility=Hl,l_.Moon=Wl,l_.NeverTileDiscardPolicy=ql,l_.OctahedralProjectedCubeMap=Yl,l_.OIT=jl,l_.OrderedGroundPrimitiveCollection=Xl,l_.Particle=Ql,l_.ParticleBurst=Kl,l_.ParticleEmitter=Zl,l_.ParticleSystem=Jl,l_.PerformanceDisplay=$l,l_.PerInstanceColorAppearance=eu,l_.PickDepth=tu,l_.PickDepthFramebuffer=iu,l_.PickFramebuffer=ru,l_.PointCloud=nu,l_.PointCloud3DTileContent=ou,l_.PointCloudEyeDomeLighting=au,l_.PointCloudShading=su,l_.PointPrimitive=lu,l_.PointPrimitiveCollection=uu,l_.Polyline=cu,l_.PolylineCollection=du,l_.PolylineColorAppearance=hu,l_.PolylineMaterialAppearance=pu,l_.PostProcessStage=fu,l_.PostProcessStageCollection=mu,l_.PostProcessStageComposite=_u,l_.PostProcessStageLibrary=gu,l_.PostProcessStageSampleMode=vu,l_.PostProcessStageTextureCache=yu,l_.Primitive=Cu,l_.PrimitiveCollection=bu,l_.PrimitivePipeline=Su,l_.PrimitiveState=Tu,l_.processModelMaterialsCommon=Eu,l_.processPbrMaterials=Au,l_.QuadtreeOccluders=wu,l_.QuadtreePrimitive=xu,l_.QuadtreeTile=Pu,l_.QuadtreeTileLoadState=Du,l_.QuadtreeTileProvider=Iu,l_.Scene=Mu,l_.SceneFramebuffer=Ru,l_.SceneMode=Ou,l_.SceneTransforms=Lu,l_.SceneTransitioner=Nu,l_.ScreenSpaceCameraController=Fu,l_.ShadowMap=Bu,l_.ShadowMapShader=zu,l_.ShadowMode=ku,l_.ShadowVolumeAppearance=Vu,l_.SingleTileImageryProvider=Uu,l_.SkyAtmosphere=Gu,l_.SkyBox=Hu,l_.SphereEmitter=Wu,l_.StencilConstants=qu,l_.StencilFunction=Yu,l_.StencilOperation=ju,l_.StyleExpression=Xu,l_.Sun=Qu,l_.SunPostProcess=Ku,l_.TerrainFillMesh=Zu,l_.TerrainState=Ju,l_.TextureAtlas=$u,l_.TileBoundingRegion=ec,l_.TileBoundingSphere=tc,l_.TileBoundingVolume=ic,l_.TileCoordinatesImageryProvider=rc,l_.TileDiscardPolicy=nc,l_.TileImagery=oc,l_.TileOrientedBoundingBox=ac,l_.TileReplacementQueue=sc,l_.TileSelectionResult=lc,l_.Tileset3DTileContent=uc,l_.TileState=cc,l_.TimeDynamicImagery=dc,l_.TimeDynamicPointCloud=hc,l_.Tonemapper=pc,l_.TweenCollection=fc,l_.UrlTemplateImageryProvider=mc,l_.Vector3DTileBatch=_c,l_.Vector3DTileContent=gc,l_.Vector3DTileGeometry=vc,l_.Vector3DTilePoints=yc,l_.Vector3DTilePolygons=Cc,l_.Vector3DTilePolylines=bc,l_.Vector3DTilePrimitive=Sc,l_.VerticalOrigin=Tc,l_.View=Ec,l_.ViewportQuad=Ac,l_.WebMapServiceImageryProvider=wc,l_.WebMapTileServiceImageryProvider=xc,l_._shaders.AdjustTranslucentFS=Pc,l_._shaders.BillboardCollectionFS=Dc,l_._shaders.BillboardCollectionVS=Ic,l_._shaders.BrdfLutGeneratorFS=Mc,l_._shaders.CompositeOITFS=Rc,l_._shaders.DepthPlaneFS=Oc,l_._shaders.DepthPlaneVS=Lc,l_._shaders.EllipsoidFS=Nc,l_._shaders.EllipsoidVS=Fc,l_._shaders.GlobeFS=Bc,l_._shaders.GlobeVS=zc,l_._shaders.GroundAtmosphere=kc,l_._shaders.OctahedralProjectionAtlasFS=Vc,l_._shaders.OctahedralProjectionFS=Uc,l_._shaders.OctahedralProjectionVS=Gc,l_._shaders.PointPrimitiveCollectionFS=Hc,l_._shaders.PointPrimitiveCollectionVS=Wc,l_._shaders.PolylineCommon=qc,l_._shaders.PolylineFS=Yc,l_._shaders.PolylineShadowVolumeFS=jc,l_._shaders.PolylineShadowVolumeMorphFS=Xc,l_._shaders.PolylineShadowVolumeMorphVS=Qc,l_._shaders.PolylineShadowVolumeVS=Kc,l_._shaders.PolylineVS=Zc,l_._shaders.ReprojectWebMercatorFS=Jc,l_._shaders.ReprojectWebMercatorVS=$c,l_._shaders.ShadowVolumeAppearanceFS=ed,l_._shaders.ShadowVolumeAppearanceVS=td,l_._shaders.ShadowVolumeFS=id,l_._shaders.SkyAtmosphereFS=rd,l_._shaders.SkyAtmosphereVS=nd,l_._shaders.SkyBoxFS=od,l_._shaders.SkyBoxVS=ad,l_._shaders.SunFS=sd,l_._shaders.SunTextureFS=ld,l_._shaders.SunVS=ud,l_._shaders.Vector3DTilePolylinesVS=cd,l_._shaders.VectorTileVS=dd,l_._shaders.ViewportQuadFS=hd,l_._shaders.ViewportQuadVS=pd,l_.Autolinker=fd,l_["earcut-2.1.1"]=md,l_.jsep=_d,l_.kdbush=gd,l_["knockout-3.5.0"]=vd,l_["knockout-es5"]=yd,l_.knockout=Cd,l_.measureText=bd,l_["mersenne-twister"]=Sd,l_.NoSleep=Td,l_["protobuf-minimal"]=Ed,l_.purify=Ad,l_.quickselect=wd,l_.rbush=xd,l_.sprintf=Pd,l_.topojson=Dd,l_.Tween=Id,l_.Uri=Md,l_.when=Rd,l_.zip=Od,l_.ClockViewModel=Ld,l_.Command=Nd,l_.createCommand=Fd,l_.getElement=Bd,l_.InspectorShared=zd,l_.subscribeAndEvaluate=kd,l_.SvgPathBindingHandler=Vd,l_.ToggleButtonViewModel=Ud,l_._shaders.AllMaterialAppearanceFS=Gd,l_._shaders.AllMaterialAppearanceVS=Hd,l_._shaders.BasicMaterialAppearanceFS=Wd,l_._shaders.BasicMaterialAppearanceVS=qd,l_._shaders.EllipsoidSurfaceAppearanceFS=Yd,l_._shaders.EllipsoidSurfaceAppearanceVS=jd,l_._shaders.PerInstanceColorAppearanceFS=Xd,l_._shaders.PerInstanceColorAppearanceVS=Qd,l_._shaders.PerInstanceFlatColorAppearanceFS=Kd,l_._shaders.PerInstanceFlatColorAppearanceVS=Zd,l_._shaders.PolylineColorAppearanceVS=Jd,l_._shaders.PolylineMaterialAppearanceVS=$d,l_._shaders.TexturedMaterialAppearanceFS=eh,l_._shaders.TexturedMaterialAppearanceVS=th,l_._shaders.CzmBuiltins=ih,l_._shaders.AspectRampMaterial=rh,l_._shaders.BumpMapMaterial=nh,l_._shaders.CheckerboardMaterial=oh,l_._shaders.DotMaterial=ah,l_._shaders.ElevationContourMaterial=sh,l_._shaders.ElevationRampMaterial=lh,l_._shaders.FadeMaterial=uh,l_._shaders.GridMaterial=ch,l_._shaders.NormalMapMaterial=dh,l_._shaders.PolylineArrowMaterial=hh,l_._shaders.PolylineDashMaterial=ph,l_._shaders.PolylineGlowMaterial=fh,l_._shaders.PolylineOutlineMaterial=mh,l_._shaders.RimLightingMaterial=_h,l_._shaders.SlopeRampMaterial=gh,l_._shaders.StripeMaterial=vh,l_._shaders.Water=yh,l_._shaders.AcesTonemapping=Ch,l_._shaders.AdditiveBlend=bh,l_._shaders.AmbientOcclusionGenerate=Sh,l_._shaders.AmbientOcclusionModulate=Th,l_._shaders.BlackAndWhite=Eh,l_._shaders.BloomComposite=Ah,l_._shaders.Brightness=wh,l_._shaders.BrightPass=xh,l_._shaders.ContrastBias=Ph,l_._shaders.DepthOfField=Dh,l_._shaders.DepthView=Ih,l_._shaders.DepthViewPacked=Mh,l_._shaders.EdgeDetection=Rh,l_._shaders.FilmicTonemapping=Oh,l_._shaders.FXAA=Lh,l_._shaders.GaussianBlur1D=Nh,l_._shaders.LensFlare=Fh,l_._shaders.ModifiedReinhardTonemapping=Bh,l_._shaders.NightVision=zh,l_._shaders.PassThrough=kh,l_._shaders.PassThroughDepth=Vh,l_._shaders.PointCloudEyeDomeLighting=Uh,l_._shaders.ReinhardTonemapping=Gh,l_._shaders.Silhouette=Hh,l_.addBuffer=Wh,l_.addDefaults=qh,l_.addExtensionsRequired=Yh,l_.addExtensionsUsed=jh,l_.addPipelineExtras=Xh,l_.addToArray=Qh,l_.findAccessorMinMax=Kh,l_.ForEach=Zh,l_.getAccessorByteStride=Jh,l_.getComponentReader=$h,l_.hasExtension=ep,l_.moveTechniqueRenderStates=tp,l_.moveTechniquesToExtension=ip,l_.numberOfComponentsForType=rp,l_.parseGlb=np,l_.readAccessorPacked=op,l_.removeExtensionsRequired=ap,l_.removeExtensionsUsed=sp,l_.removePipelineExtras=lp,l_.removeUnusedElements=up,l_.updateAccessorComponentTypes=cp,l_.updateVersion=dp,l_.FXAA3_11=hp,l_.Animation=pp,l_.AnimationViewModel=fp,l_.BaseLayerPicker=mp,l_.BaseLayerPickerViewModel=_p,l_.createDefaultImageryProviderViewModels=gp,l_.createDefaultTerrainProviderViewModels=vp,l_.ProviderViewModel=yp,l_.Cesium3DTilesInspector=Cp,l_.Cesium3DTilesInspectorViewModel=bp,l_.CesiumInspector=Sp,l_.CesiumInspectorViewModel=Tp,l_.CesiumWidget=Ep,l_.FullscreenButton=Ap,l_.FullscreenButtonViewModel=wp,l_.Geocoder=xp,l_.GeocoderViewModel=Pp,l_.HomeButton=Dp,l_.HomeButtonViewModel=Ip,l_.InfoBox=Mp,l_.InfoBoxViewModel=Rp,l_.NavigationHelpButton=Op,l_.NavigationHelpButtonViewModel=Lp,l_.PerformanceWatchdog=Np,l_.PerformanceWatchdogViewModel=Fp,l_.ProjectionPicker=Bp,l_.ProjectionPickerViewModel=zp,l_.SceneModePicker=kp,l_.SceneModePickerViewModel=Vp,l_.SelectionIndicator=Up,l_.SelectionIndicatorViewModel=Gp,l_.Timeline=Hp,l_.TimelineHighlightRange=Wp,l_.TimelineTrack=qp,l_.Viewer=Yp,l_.viewerCesium3DTilesInspectorMixin=jp,l_.viewerCesiumInspectorMixin=Xp,l_.viewerDragDropMixin=Qp,l_.viewerPerformanceWatchdogMixin=Kp,l_.VRButton=Zp,l_.VRButtonViewModel=Jp,l_._shaders.degreesPerRadian=$p,l_._shaders.depthRange=ef,l_._shaders.epsilon1=tf,l_._shaders.epsilon2=rf,l_._shaders.epsilon3=nf,l_._shaders.epsilon4=of,l_._shaders.epsilon5=af,l_._shaders.epsilon6=sf,l_._shaders.epsilon7=lf,l_._shaders.infinity=uf,l_._shaders.oneOverPi=cf,l_._shaders.oneOverTwoPi=df,l_._shaders.passCesium3DTile=hf,l_._shaders.passCesium3DTileClassification=pf,l_._shaders.passCesium3DTileClassificationIgnoreShow=ff,l_._shaders.passClassification=mf,l_._shaders.passCompute=_f,l_._shaders.passEnvironment=gf,l_._shaders.passGlobe=vf,l_._shaders.passOpaque=yf,l_._shaders.passOverlay=Cf,l_._shaders.passTerrainClassification=bf,l_._shaders.passTranslucent=Sf,l_._shaders.pi=Tf,l_._shaders.piOverFour=Ef,l_._shaders.piOverSix=Af,l_._shaders.piOverThree=wf,l_._shaders.piOverTwo=xf,l_._shaders.radiansPerDegree=Pf,l_._shaders.sceneMode2D=Df,l_._shaders.sceneMode3D=If,l_._shaders.sceneModeColumbusView=Mf,l_._shaders.sceneModeMorphing=Rf,l_._shaders.solarRadius=Of,l_._shaders.threePiOver2=Lf,l_._shaders.twoPi=Nf,l_._shaders.webMercatorMaxLatitude=Ff,l_._shaders.alphaWeight=Bf,l_._shaders.antialias=zf,l_._shaders.approximateSphericalCoordinates=kf,l_._shaders.branchFreeTernary=Vf,l_._shaders.cascadeColor=Uf,l_._shaders.cascadeDistance=Gf,l_._shaders.cascadeMatrix=Hf,l_._shaders.cascadeWeights=Wf,l_._shaders.columbusViewMorph=qf,l_._shaders.computePosition=Yf,l_._shaders.cosineAndSine=jf,l_._shaders.decompressTextureCoordinates=Xf,l_._shaders.depthClampFarPlane=Qf,l_._shaders.eastNorthUpToEyeCoordinates=Kf,l_._shaders.ellipsoidContainsPoint=Zf,l_._shaders.ellipsoidNew=Jf,l_._shaders.ellipsoidWgs84TextureCoordinates=$f,l_._shaders.equalsEpsilon=em,l_._shaders.eyeOffset=tm,l_._shaders.eyeToWindowCoordinates=im,l_._shaders.fastApproximateAtan=rm,l_._shaders.fog=nm,l_._shaders.gammaCorrect=om,l_._shaders.geodeticSurfaceNormal=am,l_._shaders.getDefaultMaterial=sm,l_._shaders.getLambertDiffuse=lm,l_._shaders.getSpecular=um,l_._shaders.getWaterNoise=cm,l_._shaders.getWgs84EllipsoidEC=dm,l_._shaders.HSBToRGB=hm,l_._shaders.HSLToRGB=pm,l_._shaders.hue=fm,l_._shaders.inverseGamma=mm,l_._shaders.isEmpty=_m,l_._shaders.isFull=gm,l_._shaders.latitudeToWebMercatorFraction=vm,l_._shaders.lineDistance=ym,l_._shaders.luminance=Cm,l_._shaders.metersPerPixel=bm,l_._shaders.modelToWindowCoordinates=Sm,l_._shaders.multiplyWithColorBalance=Tm,l_._shaders.nearFarScalar=Em,l_._shaders.octDecode=Am,l_._shaders.packDepth=wm,l_._shaders.phong=xm,l_._shaders.planeDistance=Pm,l_._shaders.pointAlongRay=Dm,l_._shaders.rayEllipsoidIntersectionInterval=Im,l_._shaders.readDepth=Mm,l_._shaders.reverseLogDepth=Rm,l_._shaders.RGBToHSB=Om,l_._shaders.RGBToHSL=Lm,l_._shaders.RGBToXYZ=Nm,l_._shaders.sampleOctahedralProjection=Fm,l_._shaders.saturation=Bm,l_._shaders.shadowDepthCompare=zm,l_._shaders.shadowVisibility=km,l_._shaders.signNotZero=Vm,l_._shaders.sphericalHarmonics=Um,l_._shaders.tangentToEyeSpaceMatrix=Gm,l_._shaders.transformPlane=Hm,l_._shaders.translateRelativeToEye=Wm,l_._shaders.translucentPhong=qm,l_._shaders.transpose=Ym,l_._shaders.unpackDepth=jm,l_._shaders.unpackFloat=Xm,l_._shaders.vertexLogDepth=Qm,l_._shaders.windowToEyeCoordinates=Km,l_._shaders.writeDepthClampedToFarPlane=Zm,l_._shaders.writeLogDepth=Jm,l_._shaders.XYZToRGB=$m,l_._shaders.depthRangeStruct=e_,l_._shaders.ellipsoid=t_,l_._shaders.material=i_,l_._shaders.materialInput=r_,l_._shaders.ray=n_,l_._shaders.raySegment=o_,l_._shaders.shadowParameters=a_,l_.createTaskProcessorWorker=s_,l_}),require(["Cesium"],function(e){"use strict";"undefined"!=typeof window?window.Cesium=e:"undefined"!=typeof self?self.Cesium=e:"undefined"!=typeof module?module.exports=e:console.log("Unable to load Cesium.")},void 0,!0)}(); \ No newline at end of file + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;var wMi=T(S(),1);function FT(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new fi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new D,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(FT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function Mxe(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function vht(e,t){Mxe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?qe.HALF_FLOAT:qe.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new fi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function Nxe(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function wht(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Fht(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function Aht(e,t){Nxe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Fht(r,i),{framebuffer:n[r].framebuffer,uniformMap:wht(e,r)});e._commands=o}FT.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ei({color:new B(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};FT.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,vht(this,e),Aht(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};FT.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};FT.prototype.isDestroyed=function(){return!1};FT.prototype.destroy=function(){return Mxe(this),Nxe(this),me(this)};var jF=FT;var o9i=T(S(),1);var AMi=T(S(),1),Mht={NEAREST:0,LINEAR:1},zd=Mht;function AT(e){e=y(e,y.EMPTY_OBJECT);let{fragmentShader:t,textureScale:n=1,pixelFormat:i=ot.RGBA}=e;this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,zd.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,qe.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,B.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new ec;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?Ke.clone(e.scissorRectangle):new Ke},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=Bn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(AT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var Nht=/uniform\s+sampler2D\s+depthTexture/g;AT.prototype._isSupported=function(e){return!Nht.test(this._fragmentShader)||e.depthTexture};function kht(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Pt&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Pt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Uht(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function Dht(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function Bht(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i){if(!i.hasOwnProperty(r))continue;typeof i[r]!="function"?(t[r]=Uht(e,r),n[r]=kht(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Pt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=Dht(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=Tt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function Oht(e,t){return e=e.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${t}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${e}`}function Yht(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=Oht(n,o)}let i=new De({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Hht(e){let t=e._sampleMode,n,i;t===zd.LINEAR?(n=$t.LINEAR,i=hi.LINEAR):(n=$t.NEAREST,i=hi.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function zht(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Kht(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function Jht(e,t){let n=e._texturesToRelease;for(let a=0;a<n.length;++a){let c=n[a];c=c&&c.destroy()}n.length=0;let i=e._texturesToCreate;for(let a=0;a<i.length;++a){let{name:c,source:d}=i[a];e._actualUniforms[c]=new Pt({context:t,source:d})}i.length=0;let o=e._dirtyUniforms;if(o.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(o.length===0||l(e._texturePromise))return;let r=e._uniforms,s=[];for(let a=0;a<o.length;++a){let c=o[a],d=r[c],u=e._textureCache.getStageByName(d);if(l(u))e._actualUniforms[c]=Kht(e,d);else if(typeof d=="string"){let m=new Ee({url:d});s.push(m.fetchImage().then(zht(e,c)))}else e._texturesToCreate.push({name:c,source:d})}o.length=0,s.length>0?(e._ready=!1,e._texturePromise=Promise.all(s).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function kxe(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i){if(!i.hasOwnProperty(o))continue;let r=i[o];r instanceof Pt&&(l(t.getStageByName(n[o]))||r.destroy(),e._dirtyUniforms.push(o))}}function Qht(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength;if(l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;for(let o=0;o<e._combinedSelected.length;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function jht(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i=0;for(let s=0;s<n.length;++s){let a=n[s];l(a.pickIds)?i+=a.pickIds.length:l(a.pickId)&&++i}if(n.length===0||i===0){let s=new Uint8Array([255,255,255,255]);e._selectedIdTexture=new Pt({context:t,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,source:{arrayBufferView:s,width:1,height:1},sampler:en.NEAREST});return}let o=0,r=new Uint8Array(i*4);for(let s=0;s<n.length;++s){let a=n[s];if(l(a.pickIds)){let c=a.pickIds,d=c.length;for(let u=0;u<d;++u){let m=c[u].color;r[o]=B.floatToByte(m.red),r[o+1]=B.floatToByte(m.green),r[o+2]=B.floatToByte(m.blue),r[o+3]=B.floatToByte(m.alpha),o+=4}}else if(l(a.pickId)){let c=a.pickId.color;r[o]=B.floatToByte(c.red),r[o+1]=B.floatToByte(c.green),r[o+2]=B.floatToByte(c.blue),r[o+3]=B.floatToByte(c.alpha),o+=4}}e._selectedIdTexture=new Pt({context:t,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,source:{arrayBufferView:r,width:i,height:1},sampler:en.NEAREST})}AT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&kxe(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=Qht(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,jht(this,e),Bht(this),Jht(this,e),Yht(this,e),Hht(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ue.fromCache({viewport:new Ke(0,0,i.width,i.height)}))),this._command.renderState=o};AT.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,en.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};AT.prototype.isDestroyed=function(){return!1};AT.prototype.destroy=function(){return kxe(this),me(this)};var lo=AT;var d9i=T(S(),1);function MT(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=Bn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(MT.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});MT.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};MT.prototype.get=function(e){return this._stages[e]};function qht(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}MT.prototype.update=function(e,t){this._selectedDirty=qht(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};MT.prototype.isDestroyed=function(){return!1};MT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return me(this)};var cl=MT;var Rr={};function yB(e){let o=`#define USE_STEP_SIZE +${Ly}`,r=new lo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:zd.LINEAR}),s=new lo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:zd.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let d=r.uniforms,u=s.uniforms;d.delta=u.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let d=r.uniforms,u=s.uniforms;d.sigma=u.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let d=r.uniforms,u=s.uniforms;d.stepSize=u.stepSize=c}}}),new cl({name:e,stages:[r,s],uniforms:a})}Rr.createBlurStage=function(){return yB("czm_blur")};Rr.createDepthOfFieldStage=function(){let e=yB("czm_depth_of_field_blur"),t=new lo({name:"czm_depth_of_field_composite",fragmentShader:NF,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new cl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Rr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Rr.createEdgeDetectionStage=function(){let e=Bn();return new lo({name:`czm_edge_detection_${e}`,fragmentShader:UF,uniforms:{length:.25,color:B.clone(B.BLACK)}})};Rr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function $ht(e){if(!l(e))return Rr.createEdgeDetectionStage();let t=new cl({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new lo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new cl({name:"czm_edge_detection_composite",stages:[t,s]})}Rr.createSilhouetteStage=function(e){let t=$ht(e),n=new lo({name:"czm_silhouette_color_edges",fragmentShader:JF,uniforms:{silhouetteTexture:t.name}});return new cl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Rr.isSilhouetteSupported=function(e){return e.context.depthTexture};Rr.createBloomStage=function(){let e=new lo({name:"czm_bloom_contrast_bias",fragmentShader:MF,uniforms:{contrast:128,brightness:-.3}}),t=yB("czm_bloom_blur"),n=new cl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new lo({name:"czm_bloom_generate_composite",fragmentShader:FF,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new cl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Rr.createAmbientOcclusionStage=function(){let e=new lo({name:"czm_ambient_occlusion_generate",fragmentShader:PF,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=yB("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new cl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new lo({name:"czm_ambient_occlusion_composite",fragmentShader:vF,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new cl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Rr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var eft=`#define FXAA_QUALITY_PRESET 39 +${QF} +${OF}`;Rr.createFXAAStage=function(){return new lo({name:"czm_FXAA",fragmentShader:eft,sampleMode:zd.LINEAR})};Rr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=WF,new lo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Rr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=DF,new lo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Rr.createPbrNeutralTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=BF,new lo({name:"czm_pbr_neutral",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Rr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=KF,new lo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Rr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=HF,new lo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:B.WHITE,autoExposure:void 0,exposure:1}})};Rr.createAutoExposureStage=function(){return new jF};Rr.createBlackAndWhiteStage=function(){return new lo({name:"czm_black_and_white",fragmentShader:wF,uniforms:{gradations:5}})};Rr.createBrightnessStage=function(){return new lo({name:"czm_brightness",fragmentShader:AF,uniforms:{brightness:.5}})};Rr.createNightVisionStage=function(){return new lo({name:"czm_night_vision",fragmentShader:zF})};Rr.createDepthViewStage=function(){return new lo({name:"czm_depth_view",fragmentShader:kF})};Rr.createLensFlareStage=function(){return new lo({name:"czm_lens_flare",fragmentShader:YF,uniforms:{dirtTexture:rn("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:rn("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ne.WGS84.maximumRadius}})};var Kd=Rr;var J9i=T(S(),1);function l0(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function $F(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function kj(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[$F(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let d=0;d<c;++d){let u=s[a[d]];if(typeof u=="string"){let m=e.getStageByName(u);l(m)&&(r[$F(m)]=!0)}}}return i.name}function qF(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let m=0;m<c;++m){let p=i.get(m);l(p.length)?a=qF(e,t,n,p,o):a=kj(e,t,n,p,o),s&&(o=a)}let d,u;if(s)for(d=1;d<c;++d)u=$F(i.get(d)),l(n[u])||(n[u]={}),n[u][r]=!0;else for(d=1;d<c;++d){u=$F(i.get(d));let m=n[u];for(let p=0;p<d;++p)m[$F(i.get(p))]=!0}return a}function tft(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=qF(e,t,n,i,void 0);a=qF(e,t,n,o,a),a=kj(e,t,n,r,a),a=qF(e,t,n,e,a),kj(e,t,n,s,a)}else qF(e,t,n,e,void 0);return n}function nft(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,d=o._clearColor,u,m,p=e._framebuffers,g=p.length;for(u=0;u<g;++u){if(m=p[u],r!==m.textureScale||s!==m.forcePowerOfTwo||a!==m.pixelFormat||c!==m.pixelDatatype||!B.equals(d,m.clearColor))continue;let f=m.stages,x=f.length,_=!1;for(let C=0;C<x;++C)if(n[f[C]]){_=!0;break}if(!_)break}return l(m)&&u<g?(m.stages.push(t),m):(m={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:d,stages:[t],buffer:new fi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(m),m)}function ift(e,t){let n=tft(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=nft(e,i,n[i]))}function Uj(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function oft(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,d=Math.ceil(n*c),u=Math.ceil(i*c),m=Math.min(d,u);a.forcePowerOfTwo&&(W.isPowerOfTwo(m)||(m=W.nextPowerOfTwo(m)),d=m,u=m),a.buffer.update(t,d,u),a.clear=new ei({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}l0.prototype.updateDependencies=function(){this._updateDependencies=!0};l0.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(Uj(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&ift(this,e);let c=e.drawingBufferWidth,d=e.drawingBufferHeight,u=this._width!==c||this._height!==d;!n&&!u||(this._width=c,this._height=d,this._updateDependencies=!1,Uj(this),oft(this,e))};l0.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};l0.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};l0.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};l0.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};l0.prototype.isDestroyed=function(){return!1};l0.prototype.destroy=function(){return Uj(this),me(this)};var NT=l0;var j9i=T(S(),1),rft={REINHARD:"REINHARD",MODIFIED_REINHARD:"MODIFIED_REINHARD",FILMIC:"FILMIC",ACES:"ACES",PBR_NEUTRAL:"PBR_NEUTRAL"};var d0=Object.freeze(rft);var Dj=[];function ll(){let e=Kd.createFXAAStage(),t=Kd.createAmbientOcclusionStage(),n=Kd.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=Kd.createAutoExposureStage(),this._exposure=1,this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=d0.PBR_NEUTRAL;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new NT(this),r={},s=Dj;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let d=c.length;if(l(d))for(let u=0;u<d;++u)s.push(c.get(u))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(ll.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return Bj(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case d0.REINHARD:n=Kd.createReinhardTonemappingStage(t);break;case d0.MODIFIED_REINHARD:n=Kd.createModifiedReinhardTonemappingStage(t);break;case d0.FILMIC:n=Kd.createFilmicTonemappingStage(t);break;case d0.PBR_NEUTRAL:n=Kd.createPbrNeutralTonemappingStage(t);break;default:n=Kd.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}else n.uniforms.exposure=this._exposure;this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}},exposure:{get:function(){return this._exposure},set:function(e){this._tonemapping.uniforms.exposure=e,this._exposure=e}}});function Bj(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages;for(let i=0,o=0;i<n.length;++i){let r=n[i];r&&(r._index=o++,t.push(r))}e._stages=t}ll.prototype.add=function(e){let t=this._stageNames,n=Dj;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};ll.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=Dj;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};ll.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};ll.prototype.get=function(e){return Bj(this),this._stages[e]};ll.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};ll.prototype.getStageByName=function(e){return this._stageNames[e]};ll.prototype.update=function(e,t,n){Bj(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages;o.length=r.length;let s=0;for(let C=0;C<r.length;++C){let V=r[C];V.ready&&V.enabled&&V._isSupported(e)&&(o[s++]=V)}o.length=s;let a=s!==i.length;if(!a){for(let C=0;C<s;++C)if(o[C]!==i[C]){a=!0;break}}let c=this._ao,d=this._bloom,u=this._autoExposure,m=this._tonemapping,p=this._fxaa;m.enabled=n;let g=c.enabled&&c._isSupported(e),f=d.enabled&&d._isSupported(e),x=m.enabled&&m._isSupported(e),_=p.enabled&&p._isSupported(e);if((a||this._textureCacheDirty||g!==this._aoEnabled||f!==this._bloomEnabled||x!==this._tonemappingEnabled||_!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=g,this._bloomEnabled=f,this._tonemappingEnabled=x,this._fxaaEnabled=_,this._textureCacheDirty=!1),l(this._randomTexture)&&!g&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&g){let V=new Uint8Array(196608);for(let L=0;L<196608;L+=3)V[L]=Math.floor(Math.random()*255);this._randomTexture=new Pt({context:e,pixelFormat:ot.RGB,pixelDatatype:qe.UNSIGNED_BYTE,source:{arrayBufferView:V,width:256,height:256},sampler:new en({wrapS:Cn.REPEAT,wrapT:Cn.REPEAT,minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST})})}this._textureCache.update(e),p.update(e,t),c.update(e,t),d.update(e,t),m.update(e,t),this._autoExposureEnabled&&u.update(e,t);for(let C=0;C<r.length;++C)r[C].update(e,t);s=0;for(let C=0;C<r.length;++C){let V=r[C];V.ready&&V.enabled&&V._isSupported(e)&&s++}a=s!==o.length,a&&this.update(e,t,n)};ll.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function kT(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}ll.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return kT(t)};function jf(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}if(e.inputPreviousStageTexture){jf(e.get(0),t,n,i,o);for(let r=1;r<e.length;++r)jf(e.get(r),t,kT(e.get(r-1)),i,o)}else for(let r=0;r<e.length;++r)jf(e.get(r),t,n,i,o)}ll.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,d=this._autoExposure,u=this._tonemapping,m=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,f=u.enabled&&u._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!m&&!p&&!f&&r===0)return;let _=t;m&&a.ready&&(jf(a,e,_,n,i),_=kT(a)),p&&c.ready&&(jf(c,e,_,n,i),_=kT(c)),g&&d.ready&&jf(d,e,_,n,i),f&&u.ready&&(jf(u,e,_,n,i),_=kT(u));let C=_;if(r>0){jf(o[0],e,_,n,i);for(let V=1;V<r;++V)jf(o[V],e,kT(o[V-1]),n,i);C=kT(o[r-1])}x&&s.ready&&jf(s,e,C,n,i)};ll.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(jl,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};ll.prototype.isDestroyed=function(){return!1};ll.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),me(this)};var eA=ll;var HNi=T(S(),1);var GNi=T(S(),1);var pNi=T(S(),1),sft={SHIFT:0,CTRL:1,ALT:2},ea=Object.freeze(sft);var gNi=T(S(),1),aft={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},Sn=Object.freeze(aft);function Ry(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function Jj(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function UT(e){if(e.shiftKey)return ea.SHIFT;if(e.ctrlKey)return ea.CTRL;if(e.altKey)return ea.ALT}var Ps={LEFT:0,MIDDLE:1,RIGHT:2};function Jd(e,t,n,i){function o(r){i(e,r)}zt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function cft(e){let t=e._element,n=l(t.disableRootEvents)?t:document;zt.supportsPointerEvents()?(Jd(e,"pointerdown",t,fft),Jd(e,"pointerup",t,Qxe),Jd(e,"pointermove",t,pft),Jd(e,"pointercancel",t,Qxe)):(Jd(e,"mousedown",t,jxe),Jd(e,"mouseup",n,qxe),Jd(e,"mousemove",n,$xe),Jd(e,"touchstart",t,mft),Jd(e,"touchend",n,Yxe),Jd(e,"touchmove",n,hft),Jd(e,"touchcancel",n,Yxe)),Jd(e,"dblclick",t,dft);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Jd(e,i,t,uft)}function lft(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Uxe={position:new D};function Qj(e){e._lastSeenTouchEvent=_i()}function jj(e){return _i()-e._lastSeenTouchEvent>Gh.mouseEmulationIgnoreMilliseconds}function Kj(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function jxe(e,t){if(!jj(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Ps.LEFT)i=Sn.LEFT_DOWN;else if(n===Ps.MIDDLE)i=Sn.MIDDLE_DOWN;else if(n===Ps.RIGHT)i=Sn.RIGHT_DOWN;else return;let o=Ry(e,t,e._primaryPosition);D.clone(o,e._primaryStartPosition),D.clone(o,e._primaryPreviousPosition);let r=UT(t),s=e.getInputAction(i,r);l(s)&&(D.clone(o,Uxe.position),s(Uxe),t.preventDefault())}var Dxe={position:new D},Bxe={position:new D};function Oj(e,t,n,i){let o=UT(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=Ry(e,i,e._primaryPosition);if(l(r)&&(D.clone(a,Dxe.position),r(Dxe)),l(s)){let c=e._primaryStartPosition;Kj(c,a,e._clickPixelTolerance)&&(D.clone(a,Bxe.position),s(Bxe))}}}function qxe(e,t){if(!jj(e))return;let n=t.button;n!==Ps.LEFT&&n!==Ps.MIDDLE&&n!==Ps.RIGHT||(e._buttonDown[Ps.LEFT]&&(Oj(e,Sn.LEFT_UP,Sn.LEFT_CLICK,t),e._buttonDown[Ps.LEFT]=!1),e._buttonDown[Ps.MIDDLE]&&(Oj(e,Sn.MIDDLE_UP,Sn.MIDDLE_CLICK,t),e._buttonDown[Ps.MIDDLE]=!1),e._buttonDown[Ps.RIGHT]&&(Oj(e,Sn.RIGHT_UP,Sn.RIGHT_CLICK,t),e._buttonDown[Ps.RIGHT]=!1))}var Yj={startPosition:new D,endPosition:new D};function $xe(e,t){if(!jj(e))return;let n=UT(t),i=Ry(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(Sn.MOUSE_MOVE,n);l(r)&&(D.clone(o,Yj.startPosition),D.clone(i,Yj.endPosition),r(Yj)),D.clone(i,o),(e._buttonDown[Ps.LEFT]||e._buttonDown[Ps.MIDDLE]||e._buttonDown[Ps.RIGHT])&&t.preventDefault()}var Oxe={position:new D};function dft(e,t){let n=t.button,i;if(n===Ps.LEFT)i=Sn.LEFT_DOUBLE_CLICK;else return;let o=UT(t),r=e.getInputAction(i,o);l(r)&&(Ry(e,t,Oxe.position),r(Oxe))}function uft(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=UT(t),o=e.getInputAction(Sn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function mft(e,t){Qj(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,Ry(e,r,new D));xB(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,D.clone(a.get(s)))}function Yxe(e,t){Qj(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);xB(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var Hxe={position:new D},Hj={position1:new D,position2:new D},zxe={position:new D},Kxe={position:new D},Jxe={position:new D};function xB(e,t){let n=UT(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Ps.LEFT]){if(e._buttonDown[Ps.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(Sn.LEFT_UP,n),l(r)&&(D.clone(e._primaryPosition,zxe.position),r(zxe)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(Sn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,d=e._previousPositions.values[0];Kj(c,d,e._clickPixelTolerance)&&(D.clone(e._primaryPosition,Kxe.position),s(Kxe))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(Sn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];D.clone(c,e._primaryPosition),D.clone(c,e._primaryStartPosition),D.clone(c,e._primaryPreviousPosition),e._buttonDown[Ps.LEFT]=!0,r=e.getInputAction(Sn.LEFT_DOWN,n),l(r)&&(D.clone(c,Hxe.position),r(Hxe)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(Sn.RIGHT_CLICK,n),l(s))){let d=e._primaryStartPosition,u=e._previousPositions.values[0];Kj(d,u,e._holdPixelTolerance)&&(D.clone(e._primaryPosition,Jxe.position),s(Jxe))}},Gh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(Sn.PINCH_START,n),l(r)&&(D.clone(i.values[0],Hj.position1),D.clone(i.values[1],Hj.position2),r(Hj),t.preventDefault()))}function hft(e,t){Qj(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let d=a.get(s);l(d)&&Ry(e,r,d)}e_e(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,D.clone(a.get(s),c.get(s))}var zj={startPosition:new D,endPosition:new D},tA={distance:{startPosition:new D,endPosition:new D},angleAndHeight:{startPosition:new D,endPosition:new D}};function e_e(e,t){let n=UT(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Ps.LEFT]){let a=i.values[0];D.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(Sn.MOUSE_MOVE,n),l(s)&&(D.clone(c,zj.startPosition),D.clone(a,zj.endPosition),s(zj)),D.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(Sn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],d=o.values[0],u=o.values[1],m=c.x-a.x,p=c.y-a.y,g=Math.sqrt(m*m+p*p)*.25,f=u.x-d.x,x=u.y-d.y,_=Math.sqrt(f*f+x*x)*.25,C=(c.y+a.y)*.125,V=(u.y+d.y)*.125,L=Math.atan2(p,m),Z=Math.atan2(x,f);D.fromElements(0,_,tA.distance.startPosition),D.fromElements(0,g,tA.distance.endPosition),D.fromElements(Z,V,tA.angleAndHeight.startPosition),D.fromElements(L,C,tA.angleAndHeight.endPosition),s(tA)}}function fft(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,Ry(e,t,new D)),xB(e,t),e._previousPositions.set(i,D.clone(n.get(i)))}else jxe(e,t)}function Qxe(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),xB(e,t),e._previousPositions.remove(i)}else qxe(e,t)}function pft(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;Ry(e,t,o),e_e(e,t);let r=e._previousPositions;D.clone(n.get(i),r.get(i))}else $xe(e,t)}function Gh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Gh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new D,this._primaryPosition=new D,this._primaryPreviousPosition=new D,this._positions=new Zt,this._previousPositions=new Zt,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),cft(this)}Gh.prototype.setInputAction=function(e,t,n){let i=Jj(t,n);this._inputEvents[i]=e};Gh.prototype.getInputAction=function(e,t){let n=Jj(e,t);return this._inputEvents[n]};Gh.prototype.removeInputAction=function(e,t){let n=Jj(e,t);delete this._inputEvents[n]};Gh.prototype.isDestroyed=function(){return!1};Gh.prototype.destroy=function(){return lft(this),me(this)};Gh.mouseEmulationIgnoreMilliseconds=800;Gh.touchHoldDelayMilliseconds=1500;var Qd=Gh;function DT(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}DT.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};DT.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof an,!(this._previousMode===oe.SCENE2D||this._previousMode===oe.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,oe.SCENE2D,!0),n._mode=oe.MORPHING,n.camera._setTransform(M.IDENTITY),this._previousMode===oe.COLUMBUS_VIEW?Kft(this,e):tpt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var bft=new h,gft=new h,yft=new h,xft=new h,_ft=new h,Tft=new h,Sft=new h,Cft=new he,Vft=new M,Lft=new Li,Rft=new an,Zft={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};DT.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===oe.COLUMBUS_VIEW||this._previousMode===oe.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,oe.COLUMBUS_VIEW,!0),n.camera._setTransform(M.IDENTITY);let i=bft,o=gft,r=yft;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let d=n.camera;if(this._previousMode===oe.SCENE2D)h.clone(d.position,i),i.z=d.frustum.right-d.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(d.positionWC,i),h.clone(d.directionWC,o),h.clone(d.upWC,r);let u=t.scaleToGeodeticSurface(i,Sft),m=Ft.eastNorthUpToFixedFrame(u,t,Vft);M.inverseTransformation(m,m),n.mapProjection.project(t.cartesianToCartographic(i,Cft),i),M.multiplyByPointAsVector(m,o,o),M.multiplyByPointAsVector(m,r,r)}}let s;this._morphToOrthographic?(s=Rft,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=Lft,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=W.toRadians(60));let a=Zft;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=ipt(a);nA(this,c),this._previousMode===oe.SCENE2D?npt(this,e,a,c):(a.position2D=M.multiplyByPoint(io.TRANSFORM_2D,i,xft),a.direction2D=M.multiplyByPointAsVector(io.TRANSFORM_2D,o,_ft),a.up2D=M.multiplyByPointAsVector(io.TRANSFORM_2D,r,Tft),n._mode=oe.MORPHING,u_e(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var e8={position:new h,direction:new h,up:new h,frustum:void 0},n_e=new Li;DT.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===oe.SCENE3D||this._previousMode===oe.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,oe.SCENE3D,!0),n._mode=oe.MORPHING,n.camera._setTransform(M.IDENTITY),this._previousMode===oe.SCENE2D)Mft(this,e,t);else{let i;e>0?(i=e8,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=i_e(this,t);let o,r=n.camera;r.frustum instanceof an?o=r.frustum.clone():(o=n_e,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=W.toRadians(60)),i.frustum=o;let s=h_e(i);nA(this,s),$j(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};DT.prototype.isDestroyed=function(){return!1};DT.prototype.destroy=function(){return _B(this),me(this)};function nA(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Qd(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,Sn.LEFT_DOWN),e._morphHandler.setInputAction(n,Sn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,Sn.RIGHT_DOWN),e._morphHandler.setInputAction(n,Sn.WHEEL)}}function _B(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var Gft=new he,Eft=new h,Ift=new M;function i_e(e,t){let n=e._scene,i=n.camera,o=e8,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,Gft);t.cartographicToCartesian(c,r);let d=t.scaleToGeodeticSurface(r,Eft),u=Ft.eastNorthUpToFixedFrame(d,t,Ift);return M.multiplyByPointAsVector(u,i.direction,s),M.multiplyByPointAsVector(u,i.up,a),o}var Xft=new h,Wft=new h,Pft=new h,vft=new h,wft=new h,Fft=new h;function $j(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,Xft),a=h.clone(r.direction,Wft),c=h.clone(r.up,Pft),d=M.multiplyByPoint(io.TRANSFORM_2D_INVERSE,n.position,vft),u=M.multiplyByPointAsVector(io.TRANSFORM_2D_INVERSE,n.direction,wft),m=M.multiplyByPointAsVector(io.TRANSFORM_2D_INVERSE,n.up,Fft);function p(f){am(s,d,f.time,r.position),am(a,u,f.time,r.direction),am(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){m_e(e,o,0,1,t,i)}});e._currentTweens.push(g)}var Aft=new an,o_e=new h,r_e=new h,s_e=new h,t8=new h,a_e=new h,c_e=new h;function Mft(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=e8,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=i_e(e,n));let s;e._morphToOrthographic?(s=Aft,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=n_e,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=W.toRadians(60)),r.frustum=s;let a=h_e(r);nA(e,a);let c;e._morphToOrthographic?c=function(){$j(e,t,r,a)}:c=function(){d_e(e,t,r,function(){$j(e,t,r,a)})},t>0?(i._mode=oe.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,t8),complete:function(){i._mode=oe.MORPHING,c()}})):c()}function am(e,t,n,i){return h.lerp(e,t,n,i)}function l_e(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof an)return;let a=s.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,d=n.position.z*Math.tan(a*.5);s.frustum.far=d/Math.tan(c*.5)+1e7;function u(p){s.frustum.fov=W.lerp(a,c,p.time);let g=d/Math.tan(s.frustum.fov*.5);i(s,g)}let m=r.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(m)}var Nft=new h,kft=new h,Uft=new h,qj=new h,Dft=new h,Bft=new h,Oft=new Pr,Yft=new pn,Hft=new h,zft={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Kft(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,Nft),r=h.clone(i.direction,kft),s=h.clone(i.up,Uft),a=h.negate(h.UNIT_Z,Dft),c=h.clone(h.UNIT_Y,Bft),d=qj;if(t>0)h.clone(h.ZERO,qj),d.z=5*n.ellipsoid.maximumRadius;else{h.clone(o,qj);let _=Yft;M.multiplyByPoint(io.TRANSFORM_2D,o,_.origin),M.multiplyByPointAsVector(io.TRANSFORM_2D,r,_.direction);let C=n.globe;if(l(C)){let V=C.pickWorldCoordinates(_,n,!0,Hft);l(V)&&(M.multiplyByPoint(io.TRANSFORM_2D_INVERSE,V,d),d.z+=h.distance(o,d))}}let u=Oft;u.right=d.z*.5,u.left=-u.right,u.top=u.right*(n.drawingBufferHeight/n.drawingBufferWidth),u.bottom=-u.top;let m=zft;m.position=d,m.direction=a,m.up=c,m.frustum=u;let p=f_e(m);nA(e,p);function g(_){am(o,d,_.time,i.position),am(r,a,_.time,i.direction),am(s,c,_.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function f(_,C){_.position.z=C}let x=n.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){l_e(e,t,m,f,p)}});e._currentTweens.push(x)}var t_e=new he,Jft={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Pr},Qft={position:new h,direction:new h,up:new h,frustum:void 0},jft=new h,qft=new pn,$ft=new M,ept=new h;function tpt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=Jft;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,t_e),i.mapProjection.project(t_e,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let m=qft;h.clone(r.position2D,m.origin);let p=h.clone(o.directionWC,m.direction),g=n.scaleToGeodeticSurface(o.positionWC,ept),f=Ft.eastNorthUpToFixedFrame(g,n,$ft);M.inverseTransformation(f,f),M.multiplyByPointAsVector(f,p,p),M.multiplyByPointAsVector(io.TRANSFORM_2D,p,p);let x=i.globe;if(l(x)){let _=x.pickWorldCoordinates(m,i,!0,jft);if(l(_)){let C=h.distance(r.position2D,_);_.x+=C,h.clone(_,r.position2D)}}}function s(m,p){m.position.x=p}M.multiplyByPoint(io.TRANSFORM_2D,r.position,r.position2D),M.multiplyByPointAsVector(io.TRANSFORM_2D,r.direction,r.direction2D),M.multiplyByPointAsVector(io.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=Qft;M.multiplyByPoint(io.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let d=f_e(c);nA(e,d);function u(){l_e(e,t,r,s,d)}u_e(e,t,r,u)}function d_e(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=W.RADIANS_PER_DEGREE*.5,d=s*Math.tan(a*.5);r.frustum.far=d/Math.tan(c*.5)+1e7,r.frustum.fov=c;function u(p){r.frustum.fov=W.lerp(c,a,p.time),r.position.z=d/Math.tan(r.frustum.fov*.5)}let m=o.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:u,complete:function(){i(e)}});e._currentTweens.push(m)}function npt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,t8),a=h.clone(n.direction,a_e),c=h.clone(n.up,c_e);o._mode=oe.MORPHING;function d(){r.frustum=n.frustum.clone();let u=h.clone(r.position,o_e),m=h.clone(r.direction,r_e),p=h.clone(r.up,s_e);u.z=s.z;function g(x){am(u,s,x.time,r.position),am(m,a,x.time,r.direction),am(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let f=o.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(f)}e._morphToOrthographic?d():d_e(e,0,n,d)}function u_e(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,o_e),a=h.clone(r.direction,r_e),c=h.clone(r.up,s_e),d=h.clone(n.position2D,t8),u=h.clone(n.direction2D,a_e),m=h.clone(n.up2D,c_e);function p(f){am(s,d,f.time,r.position),am(a,u,f.time,r.direction),am(c,m,f.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Yr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){m_e(e,o,1,0,t,i)}});e._currentTweens.push(g)}function m_e(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Yr.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function h_e(e){return function(t){let n=t._scene;n._mode=oe.SCENE3D,n.morphTime=oe.getMorphTime(oe.SCENE3D),_B(t);let i=n.camera;(t._previousMode!==oe.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,oe.SCENE3D,r)}}function f_e(e){return function(t){let n=t._scene;n._mode=oe.SCENE2D,n.morphTime=oe.getMorphTime(oe.SCENE2D),_B(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,oe.SCENE2D,o)}}function ipt(e){return function(t){let n=t._scene;n._mode=oe.COLUMBUS_VIEW,n.morphTime=oe.getMorphTime(oe.COLUMBUS_VIEW),_B(t);let i=n.camera;(t._previousModeMode!==oe.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,oe.COLUMBUS_VIEW,r)}}var iA=DT;var U5i=T(S(),1);var o5i=T(S(),1);var KNi=T(S(),1),opt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Pi=Object.freeze(opt);function ta(e,t){let n=`${e}`;return l(t)&&(n+=`+${t}`),n}function rpt(e,t){D.clone(e.distance.startPosition,t.distance.startPosition),D.clone(e.distance.endPosition,t.distance.endPosition),D.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),D.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function p_e(e,t,n){let i=ta(Pi.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new D;let d=e._movement[i];l(d)||(d=e._movement[i]={}),d.distance={startPosition:new D,endPosition:new D},d.angleAndHeight={startPosition:new D,endPosition:new D},d.prevAngle=0,e._eventHandler.setInputAction(function(u){e._buttonsDown++,r[i]=!0,a[i]=new Date,D.lerp(u.position1,u.position2,.5,s[i])},Sn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},Sn.PINCH_END,t),e._eventHandler.setInputAction(function(u){if(r[i]){o[i]?(rpt(u,d),o[i]=!1,d.prevAngle=d.angleAndHeight.startPosition.x):(D.clone(u.distance.endPosition,d.distance.endPosition),D.clone(u.angleAndHeight.endPosition,d.angleAndHeight.endPosition));let m=d.angleAndHeight.endPosition.x,p=d.prevAngle,g=Math.PI*2;for(;m>=p+Math.PI;)m-=g;for(;m<p-Math.PI;)m+=g;d.angleAndHeight.endPosition.x=-m*n.clientWidth/12,d.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},Sn.PINCH_MOVE,t)}function b_e(e,t){let n=ta(Pi.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new D,endPosition:new D,valid:!1}),s.startPosition=new D,D.clone(D.ZERO,s.startPosition),s.endPosition=new D,e._eventHandler.setInputAction(function(c){let d=7.5*W.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=d,D.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},Sn.WHEEL,t)}function eL(e,t,n){let i=ta(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime;o[i]=!1,r[i]=new D;let a=e._lastMovement[i];l(a)||(a=e._lastMovement[i]={startPosition:new D,endPosition:new D,valid:!1});let c,d;n===Pi.LEFT_DRAG?(c=Sn.LEFT_DOWN,d=Sn.LEFT_UP):n===Pi.RIGHT_DRAG?(c=Sn.RIGHT_DOWN,d=Sn.RIGHT_UP):n===Pi.MIDDLE_DRAG&&(c=Sn.MIDDLE_DOWN,d=Sn.MIDDLE_UP),e._eventHandler.setInputAction(function(u){e._buttonsDown++,a.valid=!1,o[i]=!0,s[i]=new Date,D.clone(u.position,r[i])},c,t),e._eventHandler.setInputAction(function(){n8(ta(n,void 0),e);for(let u of Object.values(ea)){let m=ta(n,u);n8(m,e)}},d,t)}function n8(e,t){let n=t._releaseTime,i=t._isDown;i[e]&&(t._buttonsDown=Math.max(t._buttonsDown-1,0)),i[e]=!1,n[e]=new Date}function g_e(e,t){D.clone(e.startPosition,t.startPosition),D.clone(e.endPosition,t.endPosition)}function spt(e,t,n){let i=n._isDown,o=!1,r=ta(e,t);for(let[c,d]of Object.entries(i))c.startsWith(e)&&d&&c!==r&&(o=!0,n8(c,n));if(!o)return;let s=n._pressTime,a=n._lastMovement[r];l(a)||(a=n._lastMovement[r]={startPosition:new D,endPosition:new D,valid:!1}),n._buttonsDown++,a.valid=!1,i[r]=!0,s[r]=new Date}function y_e(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Pi)if(Pi.hasOwnProperty(s)){let a=Pi[s];if(l(a)){let c=ta(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new D,endPosition:new D,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new D,endPosition:new D})}}e._eventHandler.setInputAction(function(s){for(let a in Pi)if(Pi.hasOwnProperty(a)){let c=Pi[a];if(l(c)){let d=ta(c,t);spt(c,t,e),r[d]&&(n[d]?(g_e(i[d],o[d]),o[d].valid=!0,g_e(s,i[d]),n[d]=!1):D.clone(s.endPosition,i[d].endPosition))}}D.clone(s.endPosition,e._currentMousePosition)},Sn.MOUSE_MOVE,t)}function cm(e){this._eventHandler=new Qd(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new D,b_e(this,void 0),p_e(this,void 0,e),eL(this,void 0,Pi.LEFT_DRAG),eL(this,void 0,Pi.RIGHT_DRAG),eL(this,void 0,Pi.MIDDLE_DRAG),y_e(this,void 0);for(let t in ea)if(ea.hasOwnProperty(t)){let n=ea[t];l(n)&&(b_e(this,n),p_e(this,n,e),eL(this,n,Pi.LEFT_DRAG),eL(this,n,Pi.RIGHT_DRAG),eL(this,n,Pi.MIDDLE_DRAG),y_e(this,n))}}Object.defineProperties(cm.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[ta(Pi.WHEEL)]||!this._update[ta(Pi.WHEEL,ea.SHIFT)]||!this._update[ta(Pi.WHEEL,ea.CTRL)]||!this._update[ta(Pi.WHEEL,ea.ALT)];return this._buttonsDown>0||e}}});cm.prototype.isMoving=function(e,t){let n=ta(e,t);return!this._update[n]};cm.prototype.getMovement=function(e,t){let n=ta(e,t);return this._movement[n]};cm.prototype.getLastMovement=function(e,t){let n=ta(e,t),i=this._lastMovement[n];if(i.valid)return i};cm.prototype.isButtonDown=function(e,t){let n=ta(e,t);return this._isDown[n]};cm.prototype.getStartMousePosition=function(e,t){if(e===Pi.WHEEL)return this._currentMousePosition;let n=ta(e,t);return this._eventStartPosition[n]};cm.prototype.getButtonPressTime=function(e,t){let n=ta(e,t);return this._pressTime[n]};cm.prototype.getButtonReleaseTime=function(e,t){let n=ta(e,t);return this._releaseTime[n]};cm.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};cm.prototype.isDestroyed=function(){return!1};cm.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),me(this)};var oA=cm;var h5i=T(S(),1);function TB(e,t,n,i,o,r,s,a,c,d){this._tweens=e,this._tweenjs=t,this._startObject=Ye(n),this._stopObject=Ye(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=d,this.needsStart=!0}Object.defineProperties(TB.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});TB.prototype.cancelTween=function(){this._tweens.remove(this)};function Eh(){this._tweens=[]}Object.defineProperties(Eh.prototype,{length:{get:function(){return this._tweens.length}}});Eh.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new TB(this);let t=e.duration/zn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/zn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Yr.LINEAR_NONE),r=e.startObject,s=new s0e(r);s.to(Ye(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new TB(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};Eh.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};Eh.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};Eh.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};Eh.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};Eh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};Eh.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};Eh.prototype.get=function(e){return this._tweens[e]};Eh.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/zn.SECONDS_PER_MILLISECOND:_i();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var BT=Eh;function sA(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.zoomFactor=5,this.translateEventTypes=Pi.LEFT_DRAG,this.zoomEventTypes=[Pi.RIGHT_DRAG,Pi.WHEEL,Pi.PINCH],this.rotateEventTypes=Pi.LEFT_DRAG,this.tiltEventTypes=[Pi.MIDDLE_DRAG,Pi.PINCH,{eventType:Pi.LEFT_DRAG,modifier:ea.CTRL},{eventType:Pi.RIGHT_DRAG,modifier:ea.CTRL}],this.lookEventTypes={eventType:Pi.LEFT_DRAG,modifier:ea.SHIFT};let t=y(e.ellipsoid,ne.default);this.minimumPickingTerrainHeight=ne.WGS84.equals(t)?15e4:t.minimumRadius*.025,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=ne.WGS84.equals(t)?4e3:t.minimumRadius*63e-5,this.minimumCollisionTerrainHeight=ne.WGS84.equals(t)?15e3:t.minimumRadius*.0025,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=ne.WGS84.equals(t)?75e5:t.minimumRadius*1.175,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this.maximumTiltAngle=void 0,this._scene=e,this._globe=void 0,this._ellipsoid=t,this._lastGlobeHeight=0,this._aggregator=new oA(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new BT,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new D(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new D(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new D,this._strafeEndMousePosition=new D,this._zoomMouseStart=new D(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new D,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let n=e.mapProjection;this._maxCoord=n.project(new he(Math.PI,W.PI_OVER_TWO)),this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function apt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function cpt(e){return D.equalsEpsilon(e.startPosition,e.endPosition,W.EPSILON14)}var lpt=.4;function dpt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new D,endPosition:new D,motion:new D,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),d=e.getButtonReleaseTime(t,n),u=c&&d&&(d.getTime()-c.getTime())/1e3,p=d&&(new Date().getTime()-d.getTime())/1e3;if(c&&d&&u<lpt){let g=apt(p,i),f=e.getLastMovement(t,n);if(!l(f)||cpt(f)||!a.inertiaEnabled||(a.motion.x=(f.endPosition.x-f.startPosition.x)*.5,a.motion.y=(f.endPosition.y-f.startPosition.y)*.5,a.startPosition=D.clone(f.startPosition,a.startPosition),a.endPosition=D.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=D.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||D.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function upt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var x_e=[];function dl(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(x_e[0]=n,n=x_e);let a=n.length;for(let c=0;c<a;++c){let d=n[c],u=l(d.eventType)?d.eventType:d,m=d.modifier,p=s.isMoving(u,m)&&s.getMovement(u,m),g=s.getStartMousePosition(u,m);e.enableInputs&&t&&(p?(i(e,g,p),upt(e,r)):o<1&&dpt(s,u,m,o,i,e,r))}}var SB=new pn,mpt=new h,hpt=new D,fpt=new h,ppt=new D,bpt=new h,gpt=new h,ypt=new h,xpt=new h,X_e=new h,_pt=new h,Tpt=new h,Spt=new h,Cpt=new h,Vpt=new h,Lpt=new h,Rpt=new h,Zpt=new h,Gpt=new h,Ept=new h,OT=new h,__e=new h,T_e=new h,i8={orientation:new Ca};function u8(e,t,n,i,o,r){let s=1;l(r)&&(s=W.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,d=a>0?e.minimumZoomDistance*s:0,u=e.maximumZoomDistance,m=o-d,p=i*m;p=W.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let f=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(f>0&&Math.abs(o-d)<1||f<0&&Math.abs(o-u)<1)return;o-f<d?f=o-d-1:o-f>u&&(f=o-u)}let x=e._scene,_=x.camera,C=x.mode,V=i8.orientation;if(V.heading=_.heading,V.pitch=_.pitch,V.roll=_.roll,_.frustum instanceof an){Math.abs(f)>0&&(_.zoomIn(f),_._adjustOrthographicFrustum(!0));return}let L=y(n.inertiaEnabled,D.equals(t,e._zoomMouseStart)),Z=e._zoomingOnVector,G=e._rotatingZoom,I;if(L||(e._zoomMouseStart=D.clone(t,e._zoomMouseStart),l(e._globe)&&C===oe.SCENE2D?(I=_.getPickRay(t,SB).origin,I=h.fromElements(I.y,I.z,I.x)):l(e._globe)&&(I=u0(e,t,mpt)),l(I)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(I,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,Z=e._zoomingOnVector=!1,G=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){_.zoomIn(f);return}let v=C===oe.COLUMBUS_VIEW;if(_.positionCartographic.height<2e6&&(G=!0),!L||G){if(C===oe.SCENE2D){let P=e._zoomWorldPosition,w=_.position;if(!h.equals(P,w)&&_.positionCartographic.height<e._maxCoord.x*2){let F=_.position.x,b=h.subtract(P,w,fpt);h.normalize(b,b);let R=h.distance(P,w)*f/(_.getMagnitude()*.5);_.move(b,R*.5),(_.position.x<0&&F>0||_.position.x>0&&F<0)&&(I=_.getPickRay(t,SB).origin,I=h.fromElements(I.y,I.z,I.x),e._zoomWorldPosition=h.clone(I,e._zoomWorldPosition))}}else if(C===oe.SCENE3D){let P=h.normalize(_.position,X_e);if(e._cameraUnderground||e._zoomingUnderground||_.positionCartographic.height<3e3&&Math.abs(h.dot(_.direction,P))<.6)v=!0;else{let w=x.canvas,F=ppt;F.x=w.clientWidth/2,F.y=w.clientHeight/2;let b=u0(e,F,bpt);if(!l(b))v=!0;else if(_.positionCartographic.height<1e6)if(h.dot(_.direction,P)>=-.5)v=!0;else{let R=Tpt;h.clone(_.position,R);let E=e._zoomWorldPosition,X=_pt;if(X=h.normalize(E,X),h.dot(X,P)<0)return;let A=Ept,N=Vpt;h.clone(_.direction,N),h.add(R,h.multiplyByScalar(N,1e3,OT),A);let O=Lpt,U=Rpt;h.subtract(E,R,O),h.normalize(O,U);let Y=h.dot(P,U);if(Y>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-Y),H=h.magnitude(R),J=h.magnitude(E),te=H-f,z=h.magnitude(O),q=Math.asin(W.clamp(z/J*Math.sin(k),-1,1)),ee=Math.asin(W.clamp(te/J*Math.sin(k),-1,1)),fe=q-ee+k,_e=Spt;h.normalize(R,_e);let le=Cpt;le=h.cross(U,_e,le),le=h.normalize(le,le),h.normalize(h.cross(_e,le,OT),N),h.multiplyByScalar(h.normalize(A,OT),h.magnitude(A)-f,A),h.normalize(R,R),h.multiplyByScalar(R,te,R);let ye=Zpt;h.multiplyByScalar(h.add(h.multiplyByScalar(_e,Math.cos(fe)-1,__e),h.multiplyByScalar(N,Math.sin(fe),T_e),OT),te,ye),h.add(R,ye,R),h.normalize(A,_e),h.normalize(h.cross(_e,le,OT),N);let Te=Gpt;h.multiplyByScalar(h.add(h.multiplyByScalar(_e,Math.cos(fe)-1,__e),h.multiplyByScalar(N,Math.sin(fe),T_e),OT),h.magnitude(A),Te),h.add(A,Te,A),h.clone(R,_.position),h.normalize(h.subtract(A,R,OT),_.direction),h.clone(_.direction,_.direction),h.cross(_.direction,_.up,_.right),h.cross(_.right,_.direction,_.up),_.setView(i8);return}else{let R=h.normalize(b,gpt),E=h.normalize(e._zoomWorldPosition,ypt),X=h.dot(E,R);if(X>0&&X<1){let A=W.acosClamped(X),N=h.cross(E,R,xpt),O=Math.abs(A)>W.toRadians(20)?_.positionCartographic.height*.75:_.positionCartographic.height-f,U=f/O;_.rotate(N,A*U)}}}}e._rotatingZoom=!v}if(!L&&v||Z){let P,w=Mi.worldToWindowCoordinates(x,e._zoomWorldPosition,hpt);C!==oe.COLUMBUS_VIEW&&D.equals(t,e._zoomMouseStart)&&l(w)?P=_.getPickRay(w,SB):P=_.getPickRay(t,SB);let F=P.direction;(C===oe.COLUMBUS_VIEW||C===oe.SCENE2D)&&h.fromElements(F.y,F.z,F.x,F),_.move(F,f),e._zoomingOnVector=!0}else _.zoomIn(f);e._cameraUnderground||_.setView(i8)}var Ipt=new pn,Xpt=new pn,Wpt=new h;function Ppt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,Ipt).origin,s=o.getPickRay(n.endPosition,Xpt).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,Wpt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function S_e(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;u8(e,t,n,e.zoomFactor,o.getMagnitude())}var vpt=new D,wpt=new D;function C_e(e,t,n){if(l(n.angleAndHeight)){Fpt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=vpt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=D.normalize(c,c);let d=wpt;d.x=2/s*n.endPosition.x-1,d.y=2/a*(a-n.endPosition.y)-1,d=D.normalize(d,d);let u=W.acosClamped(c.x);c.y<0&&(u=W.TWO_PI-u);let m=W.acosClamped(d.x);d.y<0&&(m=W.TWO_PI-m);let p=m-u;o.twistRight(p)}function Fpt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function Apt(e){let t=e._scene.mapMode2D===Ql.ROTATE;M.equals(M.IDENTITY,e._scene.camera.transform)?(dl(e,e.enableTranslate,e.translateEventTypes,Ppt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),dl(e,e.enableZoom,e.zoomEventTypes,S_e,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&dl(e,e.enableRotate,e.tiltEventTypes,C_e,e.inertiaSpin,"_lastInertiaTiltMovement")):(dl(e,e.enableZoom,e.zoomEventTypes,S_e,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&dl(e,e.enableRotate,e.translateEventTypes,C_e,e.inertiaSpin,"_lastInertiaSpinMovement"))}var W_e=new pn,Mpt=new h,Npt=new h;function u0(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,Mpt)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,W_e),d=o.pickWorldCoordinates(c,i,a,Npt),u=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,m=l(d)?h.distance(d,r.positionWC):Number.POSITIVE_INFINITY;return u<m?h.clone(s,n):h.clone(d,n)}var kpt=new he;function EB(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===oe.SCENE3D){let c=t.cartesianToCartographic(i.position,kpt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var Upt=new h;function P_e(e,t){let n=t.origin,i=t.direction,o=EB(e),r=h.normalize(n,Upt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function v_e(e,t,n,i){let o=h.distance(t.origin,n),r=EB(e),s=W.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),pn.getPoint(t,o,i)}function w_e(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=EB(e))):o=EB(e),pn.getPoint(t,o,i)}var Dpt=new D;function F_e(e,t){let n=t.endPosition,i=D.subtract(t.endPosition,t.startPosition,Dpt),o=e._strafeEndMousePosition;D.add(o,i,o),t.endPosition=o,m8(e,t,e._strafeStartPosition),t.endPosition=n}var V_e=new pn,Bpt=new pn,o8=new h,Opt=new h,Ypt=new h,Hpt=new h,zpt=new ln(h.UNIT_X,0),Kpt=new D,Jpt=new D;function Qpt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){qd(e,t,n);return}if(e._strafing){F_e(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=D.clone(n.startPosition,Kpt),a=D.clone(n.endPosition,Jpt),c=o.getPickRay(s,V_e),d=h.clone(h.ZERO,Hpt),u=h.UNIT_X,m;if(o.position.z<e._minimumPickingTerrainHeight&&(m=u0(e,s,o8),l(m)&&(d.x=m.x)),r||d.x>o.position.z&&l(m)){let L=m;r&&(L=w_e(e,c,m,o8)),D.clone(t,e._strafeMousePosition),D.clone(t,e._strafeEndMousePosition),h.clone(L,e._strafeStartPosition),e._strafing=!0,m8(e,n,e._strafeStartPosition);return}let p=ln.fromPointNormal(d,u,zpt);c=o.getPickRay(s,V_e);let g=qn.rayPlane(c,p,o8),f=o.getPickRay(a,Bpt),x=qn.rayPlane(f,p,Opt);if(!l(g)||!l(x)){e._looking=!0,qd(e,t,n),D.clone(t,e._translateMousePosition);return}let _=h.subtract(g,x,Ypt),C=_.x;_.x=_.y,_.y=_.z,_.z=C;let V=h.magnitude(_);V>W.EPSILON6&&(h.normalize(_,_),o.move(_,V))}var A_e=new D,LB=new pn,RB=new h,jpt=new h,M_e=new M,qpt=new M,$pt=new h,ebt=new ln(h.UNIT_X,0),r8=new h,c8=new he,N_e=new M,tbt=new we,nbt=new $,ZB=new h;function ibt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),D.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){qd(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,obt(e,t,n)):rbt(e,t,n)}function obt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=A_e;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,LB),c=h.UNIT_X,d=a.origin,u=a.direction,m,p=h.dot(c,u);if(Math.abs(p)>W.EPSILON6&&(m=-h.dot(c,d)/p),!l(m)||m<=0){e._looking=!0,qd(e,t,n),D.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(u,m,RB);h.add(d,g,g);let f=i.mapProjection,x=f.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let _=f.unproject(g,c8);x.cartographicToCartesian(_,g);let C=Ft.eastNorthUpToFixedFrame(g,x,M_e),V=e._globe,L=e._ellipsoid;e._globe=void 0,e._ellipsoid=ne.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let Z=M.clone(o.transform,N_e);o._setTransform(C),jd(e,t,n,h.UNIT_Z),o._setTransform(Z),e._globe=V,e._ellipsoid=L;let G=L.maximumRadius;e._rotateFactor=1/G,e._rotateRateRangeAdjustment=G}function rbt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(D.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,RB);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=u0(e,t,RB)),!l(s)){a=o.getPickRay(t,LB);let b=a.origin,R=a.direction,E,X=h.dot(c,R);if(Math.abs(X)>W.EPSILON6&&(E=-h.dot(c,b)/X),!l(E)||E<=0){e._looking=!0,qd(e,t,n),D.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(R,E,RB),h.add(b,s,s)}r&&(l(a)||(a=o.getPickRay(t,LB)),v_e(e,a,s,s)),D.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let d=i.canvas,u=A_e;u.x=d.clientWidth/2,u.y=e._tiltCenterMousePosition.y,a=o.getPickRay(u,LB);let m=h.clone(h.ZERO,$pt);m.x=s.x;let p=ln.fromPointNormal(m,c,ebt),g=qn.rayPlane(a,p,jpt),f=o._projection,x=f.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let _=f.unproject(s,c8);x.cartographicToCartesian(_,s);let C=Ft.eastNorthUpToFixedFrame(s,x,M_e),V;l(g)?(h.fromElements(g.y,g.z,g.x,g),_=f.unproject(g,c8),x.cartographicToCartesian(_,g),V=Ft.eastNorthUpToFixedFrame(g,x,qpt)):V=C;let L=e._globe,Z=e._ellipsoid;e._globe=void 0,e._ellipsoid=ne.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,I=M.clone(o.transform,N_e);o._setTransform(C);let v=h.cross(h.UNIT_Z,h.normalize(o.position,r8),r8),P=h.dot(o.right,v);if(jd(e,t,n,G,!1,!0),o._setTransform(V),P<0){let b=n.startPosition.y-n.endPosition.y;(r&&b<0||!r&&b>0)&&(G=void 0);let R=o.constrainedAxis;o.constrainedAxis=void 0,jd(e,t,n,G,!0,!1),o.constrainedAxis=R}else jd(e,t,n,G,!0,!1);if(l(o.constrainedAxis)){let b=h.cross(o.direction,o.constrainedAxis,ZB);h.equalsEpsilon(b,h.ZERO,W.EPSILON6)||(h.dot(b,o.right)<0&&h.negate(b,b),h.cross(b,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(I),e._globe=L,e._ellipsoid=Z;let w=Z.maximumRadius;e._rotateFactor=1/w,e._rotateRateRangeAdjustment=w;let F=h.clone(o.positionWC,r8);if(e.enableCollisionDetection&&p8(e,!0),!h.equals(o.positionWC,F)){o._setTransform(V),o.worldToCameraCoordinatesPoint(F,F);let b=h.magnitudeSquared(F);h.magnitudeSquared(o.position)>b&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(b),o.position));let R=h.angleBetween(F,o.position),E=h.cross(F,o.position,F);h.normalize(E,E);let X=we.fromAxisAngle(E,R,tbt),A=$.fromQuaternion(X,nbt);$.multiplyByVector(A,o.direction,o.direction),$.multiplyByVector(A,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(I)}}var k_e=new D,U_e=new pn,D_e=new h;function sbt(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=k_e,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,U_e),d=c.origin,u=c.direction,m=o.position.z,p;m<e._minimumPickingTerrainHeight&&(p=u0(e,a,D_e));let g;if(l(p)&&(g=h.distance(d,p)),s){let f=P_e(e,c,m);l(g)?g=Math.min(g,f):g=f}if(!l(g)){let f=h.UNIT_X;g=-h.dot(f,d)/h.dot(f,u)}u8(e,t,n,e.zoomFactor,g)}function abt(e){let n=e._scene.camera;if(!M.equals(M.IDENTITY,n.transform))dl(e,e.enableRotate,e.rotateEventTypes,jd,e.inertiaSpin,"_lastInertiaSpinMovement"),dl(e,e.enableZoom,e.zoomEventTypes,O_e,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),dl(e,e.enableTilt,e.tiltEventTypes,ibt,e.inertiaSpin,"_lastInertiaTiltMovement"),dl(e,e.enableTranslate,e.translateEventTypes,Qpt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),dl(e,e.enableZoom,e.zoomEventTypes,sbt,e.inertiaZoom,"_lastInertiaZoomMovement"),dl(e,e.enableLook,e.lookEventTypes,qd),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var cbt=new pn,lbt=new ln(h.UNIT_X,0),dbt=new h,ubt=new h;function m8(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,cbt),s=h.clone(o.direction,ubt);i.mode===oe.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=ln.fromPointNormal(n,s,lbt),c=qn.rayPlane(r,a,dbt);l(c)&&(s=h.subtract(n,c,s),i.mode===oe.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var L_e=new h,B_e=new he,l8=new h,d8=new ne,mbt=new h,hbt=new h,fbt=new h;function pbt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!M.equals(o.transform,M.IDENTITY)){jd(e,t,n);return}let a,c,d=s.geodeticSurfaceNormal(o.position,mbt);if(D.equals(t,e._rotateMousePosition)){if(e._looking)qd(e,t,n,d);else if(e._rotating)jd(e,t,n);else if(e._strafing)F_e(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=l8,c.x=c.y=c.z=a,s=ne.fromCartesian3(c,d8),a8(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let u=s.cartesianToCartographic(o.positionWC,B_e).height,m=e._globe;if(l(m)&&u<e._minimumPickingTerrainHeight){let p=u0(e,n.startPosition,fbt);if(l(p)){let g=!1,f=o.getPickRay(n.startPosition,W_e);if(r)g=!0,w_e(e,f,p,p);else{let x=s.geodeticSurfaceNormal(p,hbt);Math.abs(h.dot(f.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(D.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,m8(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=l8,c.x=c.y=c.z=a,s=ne.fromCartesian3(c,d8),a8(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,qd(e,t,n,d)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,L_e))?(a8(e,t,n,e._ellipsoid),h.clone(L_e,e._rotateStartPosition)):u>e._minimumTrackBallHeight?(e._rotating=!0,jd(e,t,n)):(e._looking=!0,qd(e,t,n,d));D.clone(t,e._rotateMousePosition)}function jd(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,d=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let u=h.magnitude(a.position),m=e._rotateFactor*(u-e._rotateRateRangeAdjustment);m>e._maximumRotateRate&&(m=e._maximumRotateRate),m<e._minimumRotateRate&&(m=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let f=m*p*Math.PI*2,x=m*g*Math.PI;if(l(i)&&l(e.maximumTiltAngle)){let _=e.maximumTiltAngle,C=h.dot(a.direction,i),V=Math.PI-Math.acos(C)+x;V>_&&(x-=V-_)}o||a.rotateRight(f),r||a.rotateUp(x),a.constrainedAxis=d}var s8=se.clone(se.UNIT_W),R_e=se.clone(se.UNIT_W),CB=new h,tL=new h,VB=new h,Z_e=new h,bbt=new D,gbt=new D,ybt=new D,xbt=new D,_bt=new pn;function a8(e,t,n,i){let o=e._scene,r=o.camera,s=D.clone(n.startPosition,bbt),a=D.clone(n.endPosition,gbt),c=i.cartesianToCartographic(r.positionWC,B_e).height,d,u;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(d=h.clone(e._panLastWorldPosition,s8),!l(e._globe)&&!D.equalsEpsilon(s,e._panLastMousePosition)&&(d=u0(e,s,s8)),!l(e._globe)&&l(d))){let m=h.subtract(d,r.positionWC,tL),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,m),tL),g=h.magnitude(p),f=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,xbt),x=D.subtract(a,s,ybt),_=h.multiplyByScalar(r.rightWC,x.x*f.x,tL),C=h.normalize(r.positionWC,X_e),V=r.getPickRay(a,_bt).direction,L=h.subtract(V,h.projectVector(V,r.rightWC,VB),VB),Z=h.angleBetween(L,r.directionWC),G=1;l(r.frustum.fov)&&(G=Math.max(Math.tan(Z),.1));let I=Math.abs(h.dot(r.directionWC,C)),v=-x.y*f.y*2/Math.sqrt(G)*(1-I),P=h.multiplyByScalar(V,v,VB);I=Math.abs(h.dot(r.upWC,C));let w=h.multiplyByScalar(r.upWC,-x.y*(1-I)*f.y,Z_e);u=h.add(d,_,R_e),u=h.add(u,P,u),u=h.add(u,w,u),h.clone(u,e._panLastWorldPosition),D.clone(a,e._panLastMousePosition)}if((!l(d)||!l(u))&&(d=r.pickEllipsoid(s,i,s8),u=r.pickEllipsoid(a,i,R_e)),!l(d)||!l(u)){e._rotating=!0,jd(e,t,n);return}if(d=r.worldToCameraCoordinates(d,d),u=r.worldToCameraCoordinates(u,u),l(r.constrainedAxis)){let m=r.constrainedAxis,p=h.mostOrthogonalAxis(m,CB);h.cross(p,m,p),h.normalize(p,p);let g=h.cross(m,p,tL),f=h.magnitude(d),x=h.dot(m,d),_=Math.acos(x/f),C=h.multiplyByScalar(m,x,VB);h.subtract(d,C,C),h.normalize(C,C);let V=h.magnitude(u),L=h.dot(m,u),Z=Math.acos(L/V),G=h.multiplyByScalar(m,L,Z_e);h.subtract(u,G,G),h.normalize(G,G);let I=Math.acos(h.dot(C,p));h.dot(C,g)<0&&(I=W.TWO_PI-I);let v=Math.acos(h.dot(G,p));h.dot(G,g)<0&&(v=W.TWO_PI-v);let P=I-v,w;h.equalsEpsilon(m,r.position,W.EPSILON2)?w=r.right:w=h.cross(m,r.position,CB);let F=h.cross(m,w,CB),b=h.dot(F,h.subtract(d,m,tL)),R=h.dot(F,h.subtract(u,m,tL)),E;b>0&&R>0?E=Z-_:b>0&&R<=0?h.dot(r.position,m)>0?E=-_-Z:E=_+Z:E=_-Z,r.rotateRight(P),r.rotateUp(E)}else{h.normalize(d,d),h.normalize(u,u);let m=h.dot(d,u),p=h.cross(d,u,CB);if(m<1&&!h.equalsEpsilon(p,h.ZERO,W.EPSILON14)){let g=Math.acos(m);r.rotate(p,g)}}}var Tbt=new h,Sbt=new he,G_e=0;function O_e(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,d;c?d=t:(d=k_e,d.x=a.clientWidth/2,d.y=a.clientHeight/2);let u=s.getPickRay(d,U_e),m,p=o.cartesianToCartographic(s.position,Sbt).height,g=Math.abs(G_e)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(m=u0(e,d,D_e));let x;if(l(m)&&(x=h.distance(u.origin,m),G_e=x),c){let C=P_e(e,u,p);l(x)?x=Math.min(x,C):x=C}l(x)||(x=p);let _=h.normalize(s.position,Tbt);u8(e,t,n,e.zoomFactor,x,h.dot(_,s.direction))}var Y_e=new D,GB=new pn,rA=new h,Cbt=new h,H_e=new M,Vbt=new M,z_e=new M,Lbt=new we,Rbt=new $,h8=new he,f8=new h;function Zbt(e,t,n){let o=e._scene.camera;if(!M.equals(o.transform,M.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),D.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,f8);qd(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,h8);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,Ebt(e,t,n)):Ibt(e,t,n)}var Gbt=new he;function Ebt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,Gbt).height;if(a-s-1<W.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,d=Y_e;d.x=c.clientWidth/2,d.y=c.clientHeight/2;let u=r.getPickRay(d,GB),m,p=qn.rayEllipsoid(u,i);if(l(p))m=pn.getPoint(u,p.start,rA);else if(a>e._minimumTrackBallHeight){let V=qn.grazingAltitudeLocation(u,i);if(!l(V))return;let L=i.cartesianToCartographic(V,h8);L.height=0,m=i.cartographicToCartesian(L,rA)}else{e._looking=!0;let V=e._ellipsoid.geodeticSurfaceNormal(r.position,f8);qd(e,t,n,V),D.clone(t,e._tiltCenterMousePosition);return}let g=Ft.eastNorthUpToFixedFrame(m,i,H_e),f=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ne.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let _=M.clone(r.transform,z_e);r._setTransform(g),jd(e,t,n,h.UNIT_Z),r._setTransform(_),e._globe=f,e._ellipsoid=x;let C=x.maximumRadius;e._rotateFactor=1/C,e._rotateRateRangeAdjustment=C}function Ibt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,d;if(D.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,rA);else{if(a=u0(e,t,rA),!l(a)){if(c=r.getPickRay(t,GB),d=qn.rayEllipsoid(c,i),!l(d)){if(i.cartesianToCartographic(r.position,h8).height<=e._minimumTrackBallHeight){e._looking=!0;let R=e._ellipsoid.geodeticSurfaceNormal(r.position,f8);qd(e,t,n,R),D.clone(t,e._tiltCenterMousePosition)}return}a=pn.getPoint(c,d.start,rA)}s&&(l(c)||(c=r.getPickRay(t,GB)),v_e(e,c,a,a)),D.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let u=o.canvas,m=Y_e;m.x=u.clientWidth/2,m.y=e._tiltCenterMousePosition.y,c=r.getPickRay(m,GB);let p=h.magnitude(a),g=h.fromElements(p,p,p,l8),f=ne.fromCartesian3(g,d8);if(d=qn.rayEllipsoid(c,f),!l(d))return;let x=h.magnitude(c.origin)>p?d.start:d.stop,_=pn.getPoint(c,x,Cbt),C=Ft.eastNorthUpToFixedFrame(a,i,H_e),V=Ft.eastNorthUpToFixedFrame(_,f,Vbt),L=e._globe,Z=e._ellipsoid;e._globe=void 0,e._ellipsoid=ne.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let G=h.UNIT_Z,I=M.clone(r.transform,z_e);r._setTransform(V);let v=h.cross(_,r.positionWC,ZB);if(h.dot(r.rightWC,v)<0){let b=n.startPosition.y-n.endPosition.y;(s&&b<0||!s&&b>0)&&(G=void 0);let R=r.constrainedAxis;r.constrainedAxis=void 0,jd(e,t,n,G,!0,!1),r.constrainedAxis=R}else jd(e,t,n,G,!0,!1);if(r._setTransform(C),jd(e,t,n,G,!1,!0),l(r.constrainedAxis)){let b=h.cross(r.direction,r.constrainedAxis,ZB);h.equalsEpsilon(b,h.ZERO,W.EPSILON6)||(h.dot(b,r.right)<0&&h.negate(b,b),h.cross(b,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(I),e._globe=L,e._ellipsoid=Z;let w=Z.maximumRadius;e._rotateFactor=1/w,e._rotateRateRangeAdjustment=w;let F=h.clone(r.positionWC,ZB);if(e.enableCollisionDetection&&p8(e,!0),!h.equals(r.positionWC,F)){r._setTransform(V),r.worldToCameraCoordinatesPoint(F,F);let b=h.magnitudeSquared(F);h.magnitudeSquared(r.position)>b&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(b),r.position));let R=h.angleBetween(F,r.position),E=h.cross(F,r.position,F);h.normalize(E,E);let X=we.fromAxisAngle(E,R,Lbt),A=$.fromQuaternion(X,Rbt);$.multiplyByVector(A,r.direction,r.direction),$.multiplyByVector(A,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(I)}}var Xbt=new D,Wbt=new D,E_e=new pn,I_e=new pn,Pbt=new h,vbt=new h;function qd(e,t,n,i){let r=e._scene.camera,s=Xbt;s.x=n.startPosition.x,s.y=0;let a=Wbt;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,E_e),d=r.getPickRay(a,I_e),u=0,m,p;r.frustum instanceof an?(m=c.origin,p=d.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=d.direction);let g=h.dot(m,p);g<1&&(u=Math.acos(g)),u=n.startPosition.x>n.endPosition.x?-u:u;let f=e._horizontalRotationAxis;if(l(i)?r.look(i,-u):l(f)?r.look(f,-u):r.lookLeft(u),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,E_e),d=r.getPickRay(a,I_e),u=0,r.frustum instanceof an?(m=c.origin,p=d.origin,h.add(r.direction,m,m),h.add(r.direction,p,p),h.subtract(m,r.position,m),h.subtract(p,r.position,p),h.normalize(m,m),h.normalize(p,p)):(m=c.direction,p=d.direction),g=h.dot(m,p),g<1&&(u=Math.acos(g)),u=n.startPosition.y>n.endPosition.y?-u:u,i=y(i,f),l(i)){let x=r.direction,_=h.negate(i,Pbt),C=h.equalsEpsilon(x,i,W.EPSILON2),V=h.equalsEpsilon(x,_,W.EPSILON2);if(!C&&!V){g=h.dot(x,i);let L=W.acosClamped(g);u>0&&u>L&&(u=L-W.EPSILON4),g=h.dot(x,_),L=W.acosClamped(g),u<0&&-u>L&&(u=-L+W.EPSILON4);let Z=h.cross(i,x,vbt);r.look(Z,u)}else(C&&u<0||V&&u>0)&&r.look(r.right,-u)}else r.lookUp(u)}function wbt(e){dl(e,e.enableRotate,e.rotateEventTypes,pbt,e.inertiaSpin,"_lastInertiaSpinMovement"),dl(e,e.enableZoom,e.zoomEventTypes,O_e,e.inertiaZoom,"_lastInertiaZoomMovement"),dl(e,e.enableTilt,e.tiltEventTypes,Zbt,e.inertiaSpin,"_lastInertiaTiltMovement"),dl(e,e.enableLook,e.lookEventTypes,qd)}var Fbt=new M,Abt=new he;function p8(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode;if(i===oe.SCENE2D||i===oe.MORPHING)return;let o=n.camera,r=y(n.ellipsoid,ne.WGS84),s=n.mapProjection,a,c;M.equals(o.transform,M.IDENTITY)||(a=M.clone(o.transform,Fbt),c=h.magnitude(o.position),o._setTransform(M.IDENTITY));let d=Abt;i===oe.SCENE3D?r.cartesianToCartographic(o.position,d):s.unproject(o.position,d);let u=!1;if(d.height<e._minimumCollisionTerrainHeight){let m=e._scene.globeHeight;if(l(m)){let p=m+e.minimumZoomDistance,g=m-e._lastGlobeHeight,f=g/e._lastGlobeHeight;d.height<p&&(t||Math.abs(f)<=.1)&&(d.height=p,i===oe.SCENE3D?r.cartographicToCartesian(d,o.position):s.project(d,o.position),u=!0),t||Math.abs(f)<=.1?e._lastGlobeHeight=m:e._lastGlobeHeight+=g*.1}}l(a)&&(o._setTransform(a),u&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}sA.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===oe.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var Mbt=new h,Nbt=new h;sA.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;M.equals(t.transform,M.IDENTITY)?(this._globe=n,this._ellipsoid=y(e.ellipsoid,ne.default)):(this._globe=void 0,this._ellipsoid=ne.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=_r.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=_r.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=_r.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,Mbt),c=h.clone(t.directionWC,Nbt);if(i===oe.SCENE2D?Apt(this):i===oe.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,abt(this)):i===oe.SCENE3D&&(this._horizontalRotationAxis=void 0,wbt(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let d=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);p8(this,d)}this._aggregator.reset()};sA.prototype.isDestroyed=function(){return!1};sA.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),me(this)};var aA=sA;var dki=T(S(),1);var B5i=T(S(),1),cA=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var Y5i=T(S(),1),lA=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function m0(){this._sceneFramebuffer=new WT;let e=.125,t=new Array(6);t[0]=new lo({fragmentShader:jl,textureScale:e,forcePowerOfTwo:!0,sampleMode:zd.LINEAR});let n=t[1]=new lo({fragmentShader:lA,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new D,t[2]=new lo({fragmentShader:Ly,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new lo({fragmentShader:Ly,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new lo({fragmentShader:jl,sampleMode:zd.LINEAR}),this._uCenter=new D,this._uRadius=void 0,t[5]=new lo({fragmentShader:cA,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new cl({stages:t});let o=new NT(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}m0.prototype.get=function(e){return this._stages.get(e)};m0.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var kbt=new se,K_e=new D,Ubt=new D,J_e=new M;function Dbt(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=M.computeViewportTransformation(n,0,1,J_e),d=M.multiplyByPoint(r,o,kbt),u=Ft.pointToGLWindowCoordinates(s,c,o,K_e);d.x+=W.SOLAR_RADIUS;let m=Ft.pointToGLWindowCoordinates(a,c,d,d),p=D.magnitude(D.subtract(m,u,m))*30*2,g=Ubt;g.x=p,g.y=p,e._uCenter=D.clone(u,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let f=t.drawingBufferWidth,x=t.drawingBufferHeight,_=e._stages,C=_.get(0),V=C.outputTexture.width,L=C.outputTexture.height,Z=new Ke;Z.width=V,Z.height=L,c=M.computeViewportTransformation(Z,0,1,J_e),u=Ft.pointToGLWindowCoordinates(s,c,o,K_e),g.x*=V/f,g.y*=L/x;let G=C.scissorRectangle;G.x=Math.max(u.x-g.x*.5,0),G.y=Math.max(u.y-g.y*.5,0),G.width=Math.min(g.x,f),G.height=Math.min(g.y,x);for(let I=1;I<4;++I)Ke.clone(G,_.get(I).scissorRectangle)}m0.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};m0.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),Dbt(this,t,n),o};m0.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};m0.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(jl,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};m0.prototype.isDestroyed=function(){return!1};m0.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),me(this)};var dA=m0;var gki=T(S(),1);function Q_e(){this._cachedShowFrustumsShaders={}}function Bbt(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function Obt(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(u){u=De.replaceMain(u,"czm_Debug_main");let m=/out_FragData_(\d+)/g,p;for(;(p=m.exec(u))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return u});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let d=Bbt(i);return tn.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:d})}var uA=new B;function Ybt(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=B.fromRandom()),t._debugColor):B.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(uA.red=t.debugOverlappingFrustums&1?1:0,uA.green=t.debugOverlappingFrustums&2?1:0,uA.blue=t.debugOverlappingFrustums&4?1:0,uA.alpha=1,uA):B.WHITE}),n}var Hbt=new tt;Q_e.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=Obt(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=tt.shallowClone(t,Hbt);r.shaderProgram=o,r.uniformMap=Ybt(e,t),r.execute(e.context,n)};var mA=Q_e;var Cki=T(S(),1);function YT(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new En}YT.fromKeyframeNode=function(e,t,n,i){let o=new YT(e,t,n),{spatialNode:r,metadata:s}=i;return o._metadata=zbt(e,s,n),o._orientedBoundingBox=Jbt(e,r,n,o._orientedBoundingBox),o};function zbt(e,t,n){if(!l(t))return;let{names:i,types:o}=e.provider,r={};for(let s=0;s<i.length;s++){let a=i[s],c=Rt.getComponentCount(o[s]),d=t[s].slice(n*c,(n+1)*c);r[a]=d}return r}var j_e=new h,Kbt=new h;function Jbt(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),d=a-c*o.x,u=h.fromElements(d,c,s,j_e),m=h.divideComponents(h.subtract(u,e._paddingBefore,j_e),e.dimensions,Kbt);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,m,i)}Object.defineProperties(YT.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});YT.prototype.hasProperty=function(e){return l(this._metadata[e])};YT.prototype.getNames=function(){return Object.keys(this._metadata)};YT.prototype.getProperty=function(e){return this._metadata[e]};var hA=YT;var V3i=T(S(),1);var DUi=T(S(),1);var VUi=T(S(),1);var Lki=T(S(),1),fA=`struct Ray { + vec3 pos; + vec3 dir; + vec3 rawDir; +}; + +#if defined(JITTER) +/** + * Generate a pseudo-random value for a given 2D screen coordinate. + * Similar to https://www.shadertoy.com/view/4djSRW with a modified hashscale. + */ +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +float minComponent(in vec3 v) { + return min(min(v.x, v.y), v.z); +} + +float maxComponent(in vec3 v) { + return max(max(v.x, v.y), v.z); +} + +struct PointJacobianT { + vec3 point; + mat3 jacobianT; +}; +`;var Zki=T(S(),1),pA=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#if defined(PICKING_VOXEL) + #define ALPHA_ACCUM_MAX 0.1 +#else + #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 +#endif + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +vec3 getSampleSize(in int level) { + vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions); + vec3 sampleSizeUv = 1.0 / sampleCount; + return scaleShapeUvToShapeSpace(sampleSizeUv); +} + +#define MINIMUM_STEP_SCALAR (0.02) +#define SHIFT_FRACTION (0.001) + +/** + * Given a coordinate within a tile, and sample spacings along a ray through + * the coordinate, find the distance to the points where the ray entered and + * exited the voxel cell, along with the surface normals at those points. + * The surface normals are returned in shape space coordinates. + */ +RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) { + vec3 voxelCoord = tileUv * vec3(u_dimensions); + vec3 directions = sign(sampleSizeAlongRay); + vec3 positiveDirections = max(directions, 0.0); + vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections); + vec3 exitCoord = entryCoord + directions; + + vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay); + float lastEntry = maxComponent(distanceFromEntry); + bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay); + float firstExit = minComponent(distanceToExit); + bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit)); + vec3 exitNormal = vec3(isFirstExit) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + return RayShapeIntersection(entry, exit); +} + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) { + // The Jacobian is computed in a space where the shape spans [-1, 1]. + // But the ray is marched in a space where the shape fills [0, 1]. + // So we need to scale the Jacobian by 2. + vec3 gradient = 2.0 * viewRay.rawDir * jacobianT; + vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient; + + RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay); + + // Transform normal from shape space to Cartesian space + vec3 voxelNormal = normalize(jacobianT * voxelIntersection.entry.xyz); + // Compare with the shape intersection, to choose the appropriate normal + vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w); + vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry); + + float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize; + float shift = fixedStep * SHIFT_FRACTION; + float dt = voxelIntersection.exit.w + shift; + if ((currentT + dt) > shapeIntersection.exit.w) { + // Stop at end of shape + dt = shapeIntersection.exit.w - currentT + shift; + } + float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift); + + return vec4(entry.xyz, stepSize); +} + +vec2 packIntToVec2(int value) { + float shifted = float(value) / 255.0; + float lowBits = fract(shifted); + float highBits = floor(shifted) / 255.0; + return vec2(highBits, lowBits); +} + +vec2 packFloatToVec2(float value) { + float lowBits = fract(value); + float highBits = floor(value) / 255.0; + return vec2(highBits, lowBits); +} + +int getSampleIndex(in vec3 tileUv) { + ivec3 voxelDimensions = u_dimensions; + vec3 sampleCoordinate = tileUv * vec3(voxelDimensions); + // tileUv = 1.0 is a valid coordinate but sampleIndex = voxelDimensions is not. + // (tileUv = 1.0 corresponds to the last sample, at index = voxelDimensions - 1). + // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring + vec3 maxCoordinate = vec3(voxelDimensions) - vec3(0.5); + sampleCoordinate = clamp(sampleCoordinate, vec3(0.0), maxCoordinate); + ivec3 sampleIndex = ivec3(floor(sampleCoordinate)); + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + sampleIndex += u_paddingBefore; + #endif + // Convert to a 1D index for lookup in a 1D data array + return sampleIndex.x + voxelDimensions.x * (sampleIndex.y + voxelDimensions.y * sampleIndex.z); +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_ELLIPSOID) + // viewDirUv has been scaled to a space where the ellipsoid is a sphere. + // Undo this scaling to get the raw direction. + vec3 rawDir = viewDirUv * u_ellipsoidRadiiUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, rawDir); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currentT = shapeIntersection.entry.w; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currentT * viewDirUv; + PointJacobianT pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(pointJacobian.point, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currentT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum = vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = pointJacobian.point; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + fragmentInput.voxel.stepCount = stepCount; + fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex; + fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0].tileUv); + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currentT += step.w; + positionUv = viewPosUv + currentT * viewDirUv; + + // Check if there's more intersections. + if (currentT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currentT = shapeIntersection.entry.w; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currentT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + traverseOctreeFromExisting(pointJacobian.point, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #elif defined(PICKING_VOXEL) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex); + vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0].tileUv)); + out_FragColor = vec4(megatextureId, sampleIndex); + #else + out_FragColor = colorAccum; + #endif +} +`;var Eki=T(S(),1),bA=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var Xki=T(S(),1),gA=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1) +{ + if (intersect0.w == NO_HIT) { + return intersect1; + } else if (intersect1.w == NO_HIT) { + return intersect0; + } + return (intersect0.w <= intersect1.w) ? intersect0 : intersect1; +} + +vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1) +{ + return (intersect0.w >= intersect1.w) ? intersect0 : intersect1; +} + +RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1) +{ + bool missed = (intersect0.entry.w == NO_HIT) || + (intersect1.entry.w == NO_HIT) || + (intersect0.exit.w < intersect1.entry.w) || + (intersect0.entry.w > intersect1.exit.w); + if (missed) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + vec4 entry = intersectionMax(intersect0.entry, intersect1.entry); + vec4 exit = intersectionMin(intersect0.exit, intersect1.exit); + + return RayShapeIntersection(entry, exit); +} + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter)) +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var Pki=T(S(),1),yA=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var wki=T(S(),1),xA=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setShapeIntersection + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var Aki=T(S(),1),nL=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, +// RayShapeIntersection + +vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign; + + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + float approachRate = dot(direction, planeNormal); + float distance = -dot(position, planeNormal); + + float t = (approachRate == 0.0) + ? NO_HIT + : distance / approachRate; + + return vec4(planeNormal, 0.0, t); +} + +RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal) +{ + vec4 intersection = intersectLongitude(ray, angle, positiveNormal); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0); + if (!hitFront) { + return RayShapeIntersection(intersection, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersection); + } +} + +void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2]) +{ + intersections[0] = intersectHalfSpace(ray, minMaxAngle.x, false); + intersections[1] = intersectHalfSpace(ray, minMaxAngle.y, true); +} + +bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign; + vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy; + return dot(hit, planeDirection) > 0.0; +} + +void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) { + vec4 intersection = intersectLongitude(ray, angle, true); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (hitPositiveHalfPlane(ray, intersection, true)) { + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = vec4(-1.0 * intersection.xy, 0.0, intersection.w); + intersections[1].entry = intersection; + intersections[1].exit = farSide; + } else { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + } +} + +RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle) +{ + // Note: works for maxAngle > minAngle + pi, where the "regular wedge" + // is actually a negative volume. + // Compute intersections with the two planes. + // Normals will point toward the "outside" (negative space) + vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false); + vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true); + + // Choose intersection with smallest T as the "first", the other as "last" + // Note: first or last could be in the "shadow" wedge, beyond the tip + bool inOrder = intersect1.w <= intersect2.w; + vec4 first = inOrder ? intersect1 : intersect2; + vec4 last = inOrder ? intersect2 : intersect1; + + bool firstIsAhead = first.w >= 0.0; + bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0; + bool exitFromInside = firstIsAhead == startedInsideFirst; + bool lastIsAhead = last.w > 0.0; + bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0; + bool enterFromOutside = lastIsAhead == startedOutsideLast; + + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + + if (exitFromInside && enterFromOutside) { + // Ray crosses both faces of negative wedge, exiting then entering the positive shape + return RayShapeIntersection(first, last); + } else if (!exitFromInside && enterFromOutside) { + // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry + return RayShapeIntersection(-1.0 * farSide, first); + } else if (exitFromInside && !enterFromOutside) { + // First intersection was in the shadow wedge, so last is actually the exit + return RayShapeIntersection(last, farSide); + } else { // !exitFromInside && !enterFromOutside + // Both intersections were in the shadow wedge + return RayShapeIntersection(miss, miss); + } +} +`;var Nki=T(S(),1),_A=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection, +// NO_HIT, Intersections + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +RayShapeIntersection intersectBox(in Ray ray, in vec3 minBound, in vec3 maxBound) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (minBound - ray.pos) / ray.dir; + vec3 t1 = (maxBound - ray.pos) / ray.dir; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + vec3 directions = sign(ray.dir); + + // The actual intersection points are the furthest entry and the closest exit + float lastEntry = maxComponent(entries); + bvec3 isLastEntry = equal(entries, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + float firstExit = minComponent(exits); + bvec3 isFirstExit = equal(exits, vec3(firstExit)); + vec3 exitNormal = vec3(isLastEntry) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + if (entry.w > exit.w) { + entry.w = NO_HIT; + exit.w = NO_HIT; + } + + return RayShapeIntersection(entry, exit); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, u_renderMinBounds, u_renderMaxBounds); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var Uki=T(S(),1),TA=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection, +// intersectIntersections +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +uniform vec2 u_cylinderRenderRadiusMinMax; +uniform vec2 u_cylinderRenderHeightMinMax; +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +/** + * Find the intersection of a ray with the volume defined by two planes of constant z + */ +RayShapeIntersection intersectHeightBounds(in Ray ray, in vec2 minMaxHeight, in bool convex) +{ + float zPosition = ray.pos.z; + float zDirection = ray.dir.z; + + float tmin = (minMaxHeight.x - zPosition) / zDirection; + float tmax = (minMaxHeight.y - zPosition) / zDirection; + + // Normals point outside the volume + float signFlip = convex ? 1.0 : -1.0; + vec4 intersectMin = vec4(0.0, 0.0, -1.0 * signFlip, tmin); + vec4 intersectMax = vec4(0.0, 0.0, 1.0 * signFlip, tmax); + + bool topEntry = zDirection < 0.0; + vec4 entry = topEntry ? intersectMax : intersectMin; + vec4 exit = topEntry ? intersectMin : intersectMax; + + return RayShapeIntersection(entry, exit); +} + +/** + * Find the intersection of a ray with a right cylindrical surface of a given radius + * about the z-axis. + */ +RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex) +{ + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + + float a = dot(direction, direction); + float b = dot(position, direction); + float c = dot(position, position) - radius * radius; + float determinant = b * b - a * c; + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + float t1 = (-b - determinant) / a; + float t2 = (-b + determinant) / a; + float signFlip = convex ? 1.0 : -1.0; + vec4 intersect1 = vec4(normalize(position + t1 * direction) * signFlip, 0.0, t1); + vec4 intersect2 = vec4(normalize(position + t2 * direction) * signFlip, 0.0, t2); + + return RayShapeIntersection(intersect1, intersect2); +} + +/** + * Find the intersection of a ray with a right cylindrical solid of given + * radius and height bounds. NOTE: The shape is assumed to be convex. + */ +RayShapeIntersection intersectBoundedCylinder(in Ray ray, in float radius, in vec2 minMaxHeight) +{ + RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true); + RayShapeIntersection heightBoundsIntersection = intersectHeightBounds(ray, minMaxHeight, true); + return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, u_cylinderRenderRadiusMinMax.y, u_cylinderRenderHeightMinMax); + + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #endif +} +`;var Bki=T(S(),1),SA=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +uniform float u_eccentricitySquared; +uniform vec2 u_ellipsoidRenderLatitudeSinMinMax; +uniform vec2 u_clipMinMaxHeight; + +RayShapeIntersection intersectZPlane(in Ray ray, in float z) { + float t = -ray.pos.z / ray.dir.z; + + bool startsOutside = sign(ray.pos.z) == sign(z); + bool entry = (t >= 0.0) != startsOutside; + + vec4 intersect = vec4(0.0, 0.0, z, t); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (entry) { + return RayShapeIntersection(intersect, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersect); + } +} + +RayShapeIntersection intersectHeight(in Ray ray, in float relativeHeight, in bool convex) +{ + // Scale the ray by the ellipsoid axes to make it a unit sphere + // Note: approximating ellipsoid + height as an ellipsoid + vec3 radiiCorrection = u_ellipsoidRadiiUv / (u_ellipsoidRadiiUv + relativeHeight); + vec3 position = ray.pos * radiiCorrection; + vec3 direction = ray.dir * radiiCorrection; + + float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled) + float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in + float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in. + float determinant = b * b - a * c; // ~ b * b when zoomed in + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(direction), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t1 = (-b - signB * determinant) / a; + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + float directionScale = convex ? 1.0 : -1.0; + vec3 d1 = directionScale * normalize(position + tmin * direction); + vec3 d2 = directionScale * normalize(position + tmax * direction); + + return RayShapeIntersection(vec4(d1, tmin), vec4(d2, tmax)); +} + +/** + * Given a circular cone around the z-axis, with apex at the origin, + * find the parametric distance(s) along a ray where that ray intersects + * the cone. + * The cone opening angle is described by the squared cosine of + * its half-angle (the angle between the Z-axis and the surface) + */ +vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle; + + float aSin = d.z * d.z * sinSqrHalfAngle; + float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle; + float a = aSin + aCos; + + float bSin = d.z * o.z * sinSqrHalfAngle; + float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle; + float b = bSin + bCos; + + float cSin = o.z * o.z * sinSqrHalfAngle; + float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle; + float c = cSin + cCos; + // determinant = b * b - a * c. But bSin * bSin = aSin * cSin. + // Avoid subtractive cancellation by expanding to eliminate these terms + float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos; + + if (determinant < 0.0) { + return vec2(NO_HIT); + } else if (a == 0.0) { + // Ray is parallel to cone surface + return (b == 0.0) + ? vec2(NO_HIT) // Ray is on cone surface + : vec2(-0.5 * c / b, NO_HIT); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + float t1 = (-b - signB * determinant) / a; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +/** + * Given a point on a conical surface, find the surface normal at that point. + */ +vec3 getConeNormal(in vec3 p, in bool convex) { + // Start with radial component pointing toward z-axis + vec2 radial = -abs(p.z) * normalize(p.xy); + // Z component points toward opening of cone + float zSign = (p.z < 0.0) ? -1.0 : 1.0; + float z = length(p.xy) * zSign; + // Flip normal if shape is convex + float flip = (convex) ? -1.0 : 1.0; + return normalize(vec3(radial, z) * flip); +} + +/** + * Compute the shift between the ellipsoid origin and the apex of a cone of latitude + */ +float getLatitudeConeShift(in float sinLatitude) { + // Find prime vertical radius of curvature: + // the distance along the ellipsoid normal to the intersection with the z-axis + float x2 = u_eccentricitySquared * sinLatitude * sinLatitude; + float primeVerticalRadius = inversesqrt(1.0 - x2); + + // Compute a shift from the origin to the intersection of the cone with the z-axis + return primeVerticalRadius * u_eccentricitySquared * sinLatitude; +} + +void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + // Initialize output with no intersections + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + + if (intersect.x == NO_HIT) { + return; + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, true), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, true), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + // no valid intersections + } else if (p0InShadowCone) { + intersections[0].exit = intersect1; + } else if (p1InShadowCone) { + intersections[0].entry = intersect0; + } else { + intersections[0].exit = intersect0; + intersections[1].entry = intersect1; + intersections[1].exit = farSide; + } +} + +RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (intersect.x == NO_HIT) { + return RayShapeIntersection(miss, miss); + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + return RayShapeIntersection(miss, miss); + } else if (p0InShadowCone) { + return RayShapeIntersection(intersect1, farSide); + } else if (p1InShadowCone) { + return RayShapeIntersection(-1.0 * farSide, intersect0); + } else { + return RayShapeIntersection(intersect0, intersect1); + } +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + // Outer ellipsoid + RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + // Inner ellipsoid + RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false); + + if (innerIntersect.entry.w == NO_HIT) { + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is large and thin it's possible for floating point math + // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. + // To prevent this from happening, clamp innerIntersect to outerIntersect and + // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w); + innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + } + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + RayShapeIntersection bottomConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + RayShapeIntersection topConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #endif +} +`;var Yki=T(S(),1),HT=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var zki=T(S(),1),CA=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // For BOX, UV space = shape space, so we can use positionUv as-is, + // and the Jacobian is the identity matrix, except that a step of 1 + // only spans half the shape space [-1, 1], so the identity is scaled. + return PointJacobianT(positionUv, mat3(0.5)); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionShape * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionShape; +#endif +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return shapeUv / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +}`;var Jki=T(S(),1),VA=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from Cartesian UV space [0, 1] to Cartesian local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + + float radius = length(position.xy); // [0, 1] + vec3 radial = normalize(vec3(position.xy, 0.0)); + + // Shape space height is defined within [0, 1] + float height = positionUv.z; // [0, 1] + vec3 z = vec3(0.0, 0.0, 1.0); + + float angle = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + vec3 point = vec3(radius, height, angle); + mat3 jacobianT = mat3(radial, z, east / length(position.xy)); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + float radius = positionShape.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; + #endif + + float height = positionShape.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; + #endif + + float angle = (positionShape.z + czm_pi) / czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; + #endif + + return vec3(radius, height, angle); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + float radius = shapeUv.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius /= u_cylinderUvToShapeUvRadius.x; + #endif + + float height = shapeUv.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height /= u_cylinderUvToShapeUvHeight.x; + #endif + + float angle = shapeUv.z * czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + angle /= u_cylinderUvToShapeUvAngle.x; + #endif + + return vec3(radius, height, angle); +} +`;var jki=T(S(),1),LA=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +uniform vec2 u_evoluteScale; // (radiiUv.x ^ 2 - radiiUv.z ^ 2) * vec2(1.0, -1.0) / radiiUv; +uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +uniform float u_ellipsoidInverseHeightDifferenceUv; + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Extended to return radius of curvature along with the point +vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = pi/4 + vec2 tTrigs = vec2(0.7071067811865476); + // Initial guess of point on ellipsoid + vec2 v = radii * tTrigs; + // Center of curvature of the ellipse at v + vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + } + + return vec3(v * sign(pos), length(v - evolute)); +} + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from UV space [0, 1] to local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + // Undo the scaling from ellipsoid to sphere + position = position * u_ellipsoidRadiiUv; + + float longitude = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) + // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal + float distanceFromZAxis = length(position.xy); + vec2 posEllipse = vec2(distanceFromZAxis, position.z); + vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadiiUv.xz); + vec2 surfacePoint = surfacePointAndRadius.xy; + + vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquaredUv.xz); + float latitude = atan(normal2d.y, normal2d.x); + vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x)); + + float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0; + float height = heightSign * length(posEllipse - surfacePoint); + vec3 up = normalize(cross(east, north)); + + vec3 point = vec3(longitude, latitude, height); + mat3 jacobianT = mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + // Longitude: shift & scale to [0, 1] + float longitude = (positionShape.x + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + + // Latitude: shift and scale to [0, 1] + float latitude = (positionShape.y + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + + // Height: scale to the range [0, 1] + float height = 1.0 + positionShape.z * u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + // Convert from [0, 1] to radians [-pi, pi] + float longitude = shapeUv.x * czm_twoPi; + #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude /= u_ellipsoidUvToShapeUvLongitude.x; + #endif + + // Convert from [0, 1] to radians [-pi/2, pi/2] + float latitude = shapeUv.y * czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude /= u_ellipsoidUvToShapeUvLatitude.x; + #endif + + float height = shapeUv.z / u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} +`;var $ki=T(S(),1),RA=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = exp2(float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + return clamp(tileUv, vec3(0.0), vec3(1.0)); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = exp2(-1.0 * float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var tUi=T(S(),1),ZA=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function Qbt(e){let t=new px;this.shaderBuilder=t;let n=e._customShader,i=Tt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,ge.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",ge.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([bA]),t.addFragmentLines([n.fragmentShaderText,"#line 0",RA,fA,gA,ZA]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,ge.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,ge.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,ge.FRAGMENT),t.addFragmentLines([xA])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,ge.FRAGMENT),t.addFragmentLines([yA]));let a=e._provider.shape;a==="BOX"?t.addFragmentLines([CA,_A,HT]):a==="CYLINDER"?t.addFragmentLines([VA,nL,TA,HT]):a==="ELLIPSOID"&&(t.addDefine("SHAPE_ELLIPSOID",void 0,ge.FRAGMENT),t.addFragmentLines([LA,nL,SA,HT])),t.addFragmentLines([pA]);let c=e._shape,d=c.shaderDefines;for(let p in d)if(d.hasOwnProperty(p)){let g=d[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,ge.FRAGMENT))}let u=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",u,ge.FRAGMENT),s===1?u+=1:r.unionClippingRegions?u+=2:u+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",u,ge.FRAGMENT),u+=1),t.addDefine("INTERSECTION_COUNT",u,ge.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,ge.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,ge.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,ge.FRAGMENT);let m=e._traversal;t.addDefine("SAMPLE_COUNT",`${m._sampleCount}`,ge.FRAGMENT)}var GA=Qbt;var EUi=T(S(),1);function jbt(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,d=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,ge.FRAGMENT),d&&n.addDefine("STATISTICS",void 0,ge.FRAGMENT);for(let P=0;P<c;P++){let w=i[P],F=o[P],b=`PropertyStatistics_${w}`,R=`PropertyStatistics_${w}`;n.addStruct(b,R,ge.FRAGMENT);let E=IB(F);n.addStructField(b,E,"min"),n.addStructField(b,E,"max")}let u="Statistics",m="Statistics",p="statistics";n.addStruct(u,m,ge.FRAGMENT);for(let P=0;P<c;P++){let w=i[P],F=`PropertyStatistics_${w}`,b=w;n.addStructField(u,F,b)}let g="Metadata",f="Metadata",x="metadata";n.addStruct(g,f,ge.FRAGMENT),n.addStructField(g,m,p);for(let P=0;P<c;P++){let w=i[P],F=o[P],b=IB(F);n.addStructField(g,b,w)}for(let P=0;P<c;P++){let w=i[P],F=o[P],b=$bt(F),R=`VoxelProperty_${w}`,E=`VoxelProperty_${w}`;n.addStruct(R,E,ge.FRAGMENT),n.addStructField(R,b,"partialDerivativeLocal"),n.addStructField(R,b,"partialDerivativeWorld"),n.addStructField(R,b,"partialDerivativeView"),n.addStructField(R,b,"partialDerivativeValid")}let _="Voxel",C="Voxel",V="voxel";n.addStruct(_,C,ge.FRAGMENT);for(let P=0;P<c;P++){let w=i[P],F=`VoxelProperty_${w}`;n.addStructField(_,F,w)}n.addStructField(_,"vec3","positionEC"),n.addStructField(_,"vec3","positionUv"),n.addStructField(_,"vec3","positionShapeUv"),n.addStructField(_,"vec3","positionUvLocal"),n.addStructField(_,"vec3","viewDirUv"),n.addStructField(_,"vec3","viewDirWorld"),n.addStructField(_,"vec3","surfaceNormal"),n.addStructField(_,"float","travelDistance"),n.addStructField(_,"int","stepCount"),n.addStructField(_,"int","tileIndex"),n.addStructField(_,"int","sampleIndex");let L="FragmentInput";n.addStruct(L,"FragmentInput",ge.FRAGMENT),n.addStructField(L,f,x),n.addStructField(L,C,V);let G="Properties",I="Properties",v="properties";n.addStruct(G,I,ge.FRAGMENT);for(let P=0;P<c;P++){let w=i[P],F=o[P],b=IB(F);n.addStructField(G,b,w)}{let P="clearProperties";n.addFunction(P,`${I} clearProperties()`,ge.FRAGMENT),n.addFunctionLines(P,[`${I} ${v};`]);for(let w=0;w<c;w++){let F=i[w],b=o[w],R=r[w],E=IB(b,R);n.addFunctionLines(P,[`${v}.${F} = ${E}(0.0);`])}n.addFunctionLines(P,[`return ${v};`])}{let P="sumProperties";n.addFunction(P,`${I} sumProperties(${I} propertiesA, ${I} propertiesB)`,ge.FRAGMENT),n.addFunctionLines(P,[`${I} ${v};`]);for(let w=0;w<c;w++){let F=i[w];n.addFunctionLines(P,[`${v}.${F} = propertiesA.${F} + propertiesB.${F};`])}n.addFunctionLines(P,[`return ${v};`])}{let P="scaleProperties";n.addFunction(P,`${I} scaleProperties(${I} ${v}, float scale)`,ge.FRAGMENT),n.addFunctionLines(P,[`${I} scaledProperties = ${v};`]);for(let w=0;w<c;w++){let F=i[w];n.addFunctionLines(P,[`scaledProperties.${F} *= scale;`])}n.addFunctionLines(P,["return scaledProperties;"])}{let P="mixProperties";n.addFunction(P,`${I} mixProperties(${I} propertiesA, ${I} propertiesB, float mixFactor)`,ge.FRAGMENT),n.addFunctionLines(P,[`${I} ${v};`]);for(let w=0;w<c;w++){let F=i[w];n.addFunctionLines(P,[`${v}.${F} = mix(propertiesA.${F}, propertiesB.${F}, mixFactor);`])}n.addFunctionLines(P,[`return ${v};`])}{let P="copyPropertiesToMetadata";n.addFunction(P,`void copyPropertiesToMetadata(in ${I} ${v}, inout ${f} ${x})`,ge.FRAGMENT);for(let w=0;w<c;w++){let F=i[w];n.addFunctionLines(P,[`${x}.${F} = ${v}.${F};`])}}if(d){let P="setStatistics";n.addFunction(P,`void setStatistics(inout ${m} ${p})`,ge.FRAGMENT);for(let w=0;w<c;w++){let F=i[w],b=o[w],R=Rt.getComponentCount(b);for(let E=0;E<R;E++){let X=e0t(b,E),A=s[w][E],N=a[w][E];n.addFunctionLines(P,[`${p}.${F}.min${X} = ${q_e(A)};`,`${p}.${F}.max${X} = ${q_e(N)};`])}}}{let P="getPropertiesFromMegatextureAtUv";n.addFunction(P,`${I} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,ge.FRAGMENT),n.addFunctionLines(P,[`${I} ${v};`]);for(let w=0;w<c;w++){let F=i[w],b=o[w],R=r[w],E=qbt(b,R);n.addFunctionLines(P,[`properties.${F} = texture(u_megatextureTextures[${w}], texcoord)${E};`])}n.addFunctionLines(P,[`return ${v};`])}}function IB(e){if(e===Rt.SCALAR)return"float";if(e===Rt.VEC2)return"vec2";if(e===Rt.VEC3)return"vec3";if(e===Rt.VEC4)return"vec4"}function qbt(e){if(e===Rt.SCALAR)return".r";if(e===Rt.VEC2)return".ra";if(e===Rt.VEC3)return".rgb";if(e===Rt.VEC4)return""}function $bt(e){if(e===Rt.SCALAR)return"vec3";if(e===Rt.VEC2)return"mat2";if(e===Rt.VEC3)return"mat3";if(e===Rt.VEC4)return"mat4"}function q_e(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function e0t(e,t){return e===Rt.SCALAR?"":`[${t}]`}var EA=jbt;function t0t(e,t){let n=new GA(e);EA(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let C="getClippingPlane",V=qb(o,t),L=0,Z=V.indexOf(")")+1,G=V.indexOf("{",Z)+1,I=V.indexOf("}",G),v=V.slice(L,Z),P=V.slice(G,I);i.addFunction(C,v,ge.FRAGMENT),i.addFunctionLines(C,[P])}let s=i.clone();s.addDefine("PICKING",void 0,ge.FRAGMENT);let a=i.clone();a.addDefine("PICKING_VOXEL",void 0,ge.FRAGMENT);let c=i.buildShaderProgram(t),d=s.buildShaderProgram(t),u=a.buildShaderProgram(t),m=Ue.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),p=t.getViewportQuadVertexArray(),g=e._depthTest,f=new tt({vertexArray:p,primitiveType:Fe.TRIANGLES,renderState:m,shaderProgram:c,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:Ge.VOXELS,executeInClosestFrustum:!0,owner:this,cull:g,occlude:g}),x=tt.shallowClone(f,new tt);x.shaderProgram=d,x.pickOnly=!0;let _=tt.shallowClone(f,new tt);if(_.shaderProgram=u,_.pickOnly=!0,l(e._drawCommand)){let C=e._drawCommand;C.shaderProgram=C.shaderProgram&&C.shaderProgram.destroy()}if(l(e._drawCommandPick)){let C=e._drawCommandPick;C.shaderProgram=C.shaderProgram&&C.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let C=e._drawCommandPickVoxel;C.shaderProgram=C.shaderProgram&&C.shaderProgram.destroy()}e._drawCommand=f,e._drawCommandPick=x,e._drawCommandPickVoxel=_}var IA=t0t;var LDi=T(S(),1);var jUi=T(S(),1);function ql(){this.orientedBoundingBox=new En,this.boundingSphere=new ce,this.boundTransform=new M,this.shapeTransform=new M,this._minBounds=h.clone(ql.DefaultMinBounds,new h),this._maxBounds=h.clone(ql.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var n0t=new h,b8=new h,i0t=new $,o0t=new h,r0t=new h,s0t=new h,a0t=new h,$_e=M.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new M);ql.prototype.update=function(e,t,n,i,o){i=y(i,ql.DefaultMinBounds),o=y(o,ql.DefaultMaxBounds);let r=ql.DefaultMinBounds,s=ql.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,o0t),o=h.clamp(o,r,s,r0t);let a=h.clamp(t,i,o,s0t),c=h.clamp(n,i,o,a0t),d=M.getScale(e,b8);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||d.x===0||d.y===0||d.z===0)return!1;this.shapeTransform=M.clone(e,this.shapeTransform),this.orientedBoundingBox=y8(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=M.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:u,shaderDefines:m}=this;for(let f in m)m.hasOwnProperty(f)&&(m[f]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),g=0;if(m.BOX_INTERSECTION_INDEX=g,g+=1,u.renderMinBounds=M.multiplyByPoint($_e,a,u.renderMinBounds),u.renderMaxBounds=M.multiplyByPoint($_e,c,u.renderMaxBounds),p){m.BOX_HAS_SHAPE_BOUNDS=!0;let f=t,x=n;u.boxUvToShapeUvScale=h.fromElements(2/(f.x===x.x?1:x.x-f.x),2/(f.y===x.y?1:x.y-f.y),2/(f.z===x.z?1:x.z-f.z),u.boxUvToShapeUvScale),u.boxUvToShapeUvTranslate=h.fromElements(-u.boxUvToShapeUvScale.x*(f.x*.5+.5),-u.boxUvToShapeUvScale.y*(f.y*.5+.5),-u.boxUvToShapeUvScale.z*(f.z*.5+.5),u.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var XB=new h,g8=new h;ql.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(W.lerp(r.x,s.x,a*t),W.lerp(r.y,s.y,a*n),W.lerp(r.z,s.z,a*i),XB),d=h.fromElements(W.lerp(r.x,s.x,a*(t+1)),W.lerp(r.y,s.y,a*(n+1)),W.lerp(r.z,s.z,a*(i+1)),g8);return y8(c,d,this.shapeTransform,o)};var eTe=new h;ql.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,eTe),s=h.multiplyByScalar(r,o,eTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,XB),o,XB),c=h.add(a,s,g8),d=this._minBounds,u=this._maxBounds,m=h.fromElements(W.lerp(d.x,u.x,a.x),W.lerp(d.y,u.y,a.y),W.lerp(d.z,u.z,a.z),XB),p=h.fromElements(W.lerp(d.x,u.x,c.x),W.lerp(d.y,u.y,c.y),W.lerp(d.z,u.z,c.z),g8);return y8(m,p,this.shapeTransform,i)};ql.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));ql.DefaultMaxBounds=Object.freeze(new h(1,1,1));function y8(e,t,n,i){let o=ql.DefaultMinBounds,r=ql.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=M.getTranslation(n,i.center),i.halfAxes=M.getMatrix3(n,i.halfAxes);else{let a=M.getScale(n,b8),c=h.midpoint(e,t,n0t);i.center=M.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),b8);let d=M.getRotation(n,i0t);i.halfAxes=$.setScale(d,a,i.halfAxes)}return i}var qf=ql;var cDi=T(S(),1);function is(){this.orientedBoundingBox=new En,this.boundingSphere=new ce,this.boundTransform=new M,this.shapeTransform=new M,this._minimumRadius=is.DefaultMinBounds.x,this._maximumRadius=is.DefaultMaxBounds.x,this._minimumHeight=is.DefaultMinBounds.y,this._maximumHeight=is.DefaultMaxBounds.y,this._minimumAngle=is.DefaultMinBounds.z,this._maximumAngle=is.DefaultMaxBounds.z,this.shaderUniforms={cylinderRenderHeightMinMax:new D,cylinderRenderRadiusMinMax:new D,cylinderRenderAngleMinMax:new D,cylinderUvToShapeUvRadius:new D,cylinderUvToShapeUvHeight:new D,cylinderUvToShapeUvAngle:new D,cylinderShapeUvAngleMinMax:new D,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var oTe=new h;is.prototype.update=function(e,t,n,i,o){i=y(i,is.DefaultMinBounds),o=y(o,is.DefaultMaxBounds);let r=is.DefaultMinBounds.x,s=is.DefaultMaxBounds.x,a=is.DefaultMinBounds.y,c=is.DefaultMaxBounds.y,d=is.DefaultMinBounds.z,u=is.DefaultMaxBounds.z,m=u-d,p=.5*m,g=W.EPSILON10,f=W.EPSILON3,x=W.EPSILON10,_=W.clamp(t.x,r,s),C=W.clamp(n.x,r,s),V=W.clamp(i.x,r,s),L=W.clamp(o.x,r,s),Z=Math.max(_,V),G=Math.min(C,L),I=W.clamp(t.y,a,c),v=W.clamp(n.y,a,c),P=W.clamp(i.y,a,c),w=W.clamp(o.y,a,c),F=Math.max(I,P),b=Math.min(v,w),R=W.negativePiToPi(t.z),E=W.negativePiToPi(n.z),X=W.negativePiToPi(i.z),A=W.negativePiToPi(o.z),N=Math.max(R,X),O=Math.min(E,A),U=M.getScale(e,oTe);if(G===0||Z>G||F>b||W.equalsEpsilon(U.x,0,void 0,g)||W.equalsEpsilon(U.y,0,void 0,g)||W.equalsEpsilon(U.z,0,void 0,g))return!1;this._minimumRadius=_,this._maximumRadius=C,this._minimumHeight=I,this._maximumHeight=v,this._minimumAngle=R,this._maximumAngle=E,this.shapeTransform=M.clone(e,this.shapeTransform),this.orientedBoundingBox=_8(Z,G,F,b,N,O,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=M.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let H=_===r&&C===s,J=I===a&&v===c,te=E<R,z=E-R+te*m,q=z>p+x&&z<m-x,ee=z<p-x,fe=z>=p-x&&z<=p+x,_e=q||ee||fe,le=W.equalsEpsilon(R,d,void 0,f),ye=W.equalsEpsilon(E,u,void 0,f),Te=Z===r,Xe=O<N,Le=O-N+Xe*m,ke=Le>=p-x&&Le<m-x,Oe=Le>x&&Le<p-x,at=Le<=x,Mt=ke||Oe||at,{shaderUniforms:Lt,shaderDefines:Ie}=this;for(let et in Ie)Ie.hasOwnProperty(et)&&(Ie[et]=void 0);let je=0;if(Ie.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=je,je+=1,Te||(Ie.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Ie.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=je,je+=1),Lt.cylinderRenderRadiusMinMax=D.fromElements(Z,G,Lt.cylinderRenderRadiusMinMax),Z===G&&(Ie.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),!H){Ie.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let et=C-_,He=0,Dt=1;et!==0&&(He=1/et,Dt=-_/et),Lt.cylinderUvToShapeUvRadius=D.fromElements(He,Dt,Lt.cylinderUvToShapeUvRadius)}if(!J){Ie.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let et=v-I,He=0,Dt=1;et!==0&&(He=2/et,Dt=-(I+1)/et),Lt.cylinderUvToShapeUvHeight=D.fromElements(He,Dt,Lt.cylinderUvToShapeUvHeight)}if(Lt.cylinderRenderHeightMinMax=D.fromElements(F,b,Lt.cylinderRenderHeightMinMax),te&&(Ie.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Mt&&(Ie.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Ie.CYLINDER_INTERSECTION_INDEX_ANGLE=je,ke?(Ie.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,je+=1):Oe?(Ie.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,je+=2):at&&(Ie.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,je+=2),Lt.cylinderRenderAngleMinMax=D.fromElements(N,O,Lt.cylinderRenderAngleMinMax)),_e){Ie.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,le&&(Ie.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),ye&&(Ie.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let et=(R-d)/m,He=(E-d)/m,Dt=1-z/m;if(Lt.cylinderShapeUvAngleMinMax=D.fromElements(et,He,Lt.cylinderShapeUvAngleMinMax),Lt.cylinderShapeUvAngleRangeZeroMid=(He+.5*Dt)%1,z<=x)Lt.cylinderUvToShapeUvAngle=D.fromElements(0,1,Lt.cylinderUvToShapeUvAngle);else{let Ce=m/z,Ve=-(R-d)/z;Lt.cylinderUvToShapeUvAngle=D.fromElements(Ce,Ve,Lt.cylinderUvToShapeUvAngle)}}return this.shaderMaximumIntersectionsLength=je,!0};is.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,d=this._minimumAngle,u=this._maximumAngle,m=1/Math.pow(2,e),p=W.lerp(r,s,t*m),g=W.lerp(r,s,(t+1)*m),f=W.lerp(a,c,n*m),x=W.lerp(a,c,(n+1)*m),_=W.lerp(d,u,i*m),C=W.lerp(d,u,(i+1)*m);return _8(p,g,f,x,_,C,this.shapeTransform,o)};var tTe=new h,nTe=new h,c0t=new h;is.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,tTe),s=h.multiplyByScalar(r,o,tTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,nTe),o,nTe),c=h.add(a,s,c0t),d=this._minimumRadius,u=this._maximumRadius,m=this._minimumHeight,p=this._maximumHeight,g=this._minimumAngle,f=this._maximumAngle,x=W.lerp(d,u,a.x),_=W.lerp(d,u,c.x),C=W.lerp(m,p,a.y),V=W.lerp(m,p,c.y),L=W.lerp(g,f,a.z),Z=W.lerp(g,f,c.z);return _8(x,_,C,V,L,Z,this.shapeTransform,i)};is.DefaultMinBounds=Object.freeze(new h(0,-1,-W.PI));is.DefaultMaxBounds=Object.freeze(new h(1,1,+W.PI));var l0t=5,d0t=new Array(l0t),u0t=new h,m0t=new $,h0t=new M,f0t=new M,p0t=new M,x8=new M,b0t=new h,g0t=new h,y0t=new h,rTe=new Array(8);for(let e=0;e<8;e++)rTe[e]=new h;function iTe(e,t,n){return Math.abs(se.dot(e,t))<n}function x0t(e){let t=M.getColumn(e,0,b0t),n=M.getColumn(e,1,g0t),i=M.getColumn(e,2,y0t),o=W.EPSILON4;return iTe(t,n,o)&&iTe(n,i,o)}function _0t(e,t){let n=rTe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)M.multiplyByPoint(e,n[i],n[i]);return En.fromPoints(n,t)}function _8(e,t,n,i,o,r,s,a){let c=is.DefaultMinBounds,d=is.DefaultMaxBounds,u=c.x,m=d.x,p=c.y,g=d.y,f=c.z,x=d.z;if(e===u&&t===m&&n===p&&i===g&&o===f&&r===x)return a.center=M.getTranslation(s,a.center),a.halfAxes=M.getMatrix3(s,a.halfAxes),a;r<o&&(r+=W.TWO_PI);let C=r-o,V=o+C*.5,L=d0t,Z=0;L[Z++]=o,L[Z++]=r,L[Z++]=V,C>W.PI&&(L[Z++]=V-W.PI_OVER_TWO,L[Z++]=V+W.PI_OVER_TWO);let G=1,I=1,v=-1,P=-1;for(let te=0;te<Z;++te){let z=L[te]-V,q=Math.cos(z),ee=Math.sin(z),fe=q*e,_e=ee*e,le=q*t,ye=ee*t;G=Math.min(G,fe),I=Math.min(I,_e),G=Math.min(G,le),I=Math.min(I,ye),v=Math.max(v,fe),P=Math.max(P,_e),v=Math.max(v,le),P=Math.max(P,ye)}let w=v-G,F=P-I,b=i-n,R=(G+v)*.5,E=(I+P)*.5,X=(n+i)*.5,A=h.fromElements(R,E,X,u0t),N=$.fromRotationZ(V,m0t),O=h.fromElements(w,F,b,oTe),U=M.fromScale(O,p0t),Y=M.fromRotation(N,f0t),k=M.fromTranslation(A,h0t),H=M.multiplyTransformation(Y,M.multiplyTransformation(k,U,x8),x8),J=M.multiplyTransformation(s,H,x8);return x0t(J)?En.fromTransformation(J,a):_0t(J,a)}var $f=is;var _Di=T(S(),1);function h0(){this.orientedBoundingBox=new En,this.boundingSphere=new ce,this.boundTransform=new M,this.shapeTransform=new M,this._rectangle=new ae,this._minimumHeight=h0.DefaultMinBounds.z,this._maximumHeight=h0.DefaultMaxBounds.z,this._ellipsoid=new ne,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,eccentricitySquared:0,evoluteScale:new D,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new D,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new D,ellipsoidUvToShapeUvLatitude:new D,ellipsoidRenderLatitudeSinMinMax:new D,ellipsoidInverseHeightDifferenceUv:0,clipMinMaxHeight:new D},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var T0t=new h,S0t=new h,C0t=new h,V0t=new h,L0t=new h,R0t=new h,Z0t=new h,G0t=new h,E0t=new $,sTe=new h,aTe=new h,I0t=new ae;h0.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=h0;i=y(i,r),o=y(o,s);let a=W.EPSILON10,c=W.EPSILON3,d=W.EPSILON10,u=W.EPSILON10,m=W.EPSILON3,p=M.getScale(e,G0t),g=h.clone(r,T0t);g.z=-h.minimumComponent(p);let f=h.clamp(t,g,s,S0t),x=h.clamp(n,g,s,C0t),_=h.clamp(i,g,s,V0t),C=h.clamp(o,g,s,L0t),V=h.maximumByComponent(f,_,R0t),L=h.minimumByComponent(x,C,Z0t),Z=h.add(p,h.fromElements(x.z,x.z,x.z,sTe),sTe),G=h.maximumComponent(Z),I=h.add(p,h.fromElements(L.z,L.z,L.z,aTe),aTe);if(V.y>L.y||V.y===s.y||L.y===r.y||V.z>L.z||W.equalsEpsilon(I,h.ZERO,void 0,a))return!1;this._rectangle=ae.fromRadians(f.x,f.y,x.x,x.y),this._translation=M.getTranslation(e,this._translation),this._rotation=M.getRotation(e,this._rotation),this._ellipsoid=ne.fromCartesian3(p,this._ellipsoid),this._minimumHeight=f.z,this._maximumHeight=x.z;let v=ae.fromRadians(V.x,V.y,L.x,L.y,I0t);this.orientedBoundingBox=T8(v,V.z,L.z,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=M.fromRotationTranslation($.setScale(this._rotation,Z,E0t),this._translation,this.shapeTransform),this.boundTransform=M.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=ce.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let P=s.x-r.x,w=.5*P,F=L.x<V.x,b=L.x-V.x+F*P,R=b<=d,E=b>=w-d&&b<P-d,X=b>d&&b<w-d,A=R||E||X,N=x.x<f.x,O=x.x-f.x+N*P,U=O>w+d&&O<P-d,Y=O>=w-d&&O<=w+d,k=O<w-d,H=U||Y||k,J=L.y<-m,te=L.y>=-m&&L.y<=+m,z=L.y>+m&&L.y<s.y-u,q=J||te||z,ee=V.y>r.y+u&&V.y<-m,fe=V.y>=-m&&V.y<=+m,_e=V.y>+m,le=ee||fe||_e,ye=q||le,Te=x.y-f.y,Xe=x.y<-m,Le=x.y>=-m&&x.y<=+m,ke=x.y>+m&&x.y<s.y-u,Oe=Xe||Le||ke,at=f.y>r.y+u&&f.y<-m,Mt=f.y>=-m&&f.y<=+m,Lt=f.y>+m,je=Oe||(at||Mt||Lt),{shaderUniforms:et,shaderDefines:He}=this;for(let mt in He)He.hasOwnProperty(mt)&&(He[mt]=void 0);et.ellipsoidRadiiUv=h.divideByScalar(Z,G,et.ellipsoidRadiiUv);let{x:Dt,z:Ce}=et.ellipsoidRadiiUv,Ve=Ce/Dt;et.eccentricitySquared=1-Ve*Ve,et.evoluteScale=D.fromElements((Dt*Dt-Ce*Ce)/Dt,(Ce*Ce-Dt*Dt)/Ce,et.evoluteScale),et.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(et.ellipsoidRadiiUv,et.ellipsoidRadiiUv,et.ellipsoidInverseRadiiSquaredUv),et.ellipsoidInverseRadiiSquaredUv);let ct=0;He.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=ct,ct+=1,He.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=ct,ct+=1,et.clipMinMaxHeight=D.fromElements((V.z-x.z)/G,(L.z-x.z)/G,et.clipMinMaxHeight);let Di=(x.z-f.z)/G;if(et.ellipsoidInverseHeightDifferenceUv=1/Di,f.z===x.z&&(et.ellipsoidInverseHeightDifferenceUv=0),A&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,He.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=ct,E?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,ct+=1):X?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,ct+=2):R&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,ct+=2),et.ellipsoidRenderLongitudeMinMax=D.fromElements(V.x,L.x,et.ellipsoidRenderLongitudeMinMax)),H)if(He.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,x.x<f.x&&(He.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0),O<=d)et.ellipsoidUvToShapeUvLongitude=D.fromElements(0,1,et.ellipsoidUvToShapeUvLongitude);else{let _o=P/O,fr=-(f.x-r.x)/O;et.ellipsoidUvToShapeUvLongitude=D.fromElements(_o,fr,et.ellipsoidUvToShapeUvLongitude)}if(A){let mt=W.equalsEpsilon(V.x,r.x,void 0,c),_o=W.equalsEpsilon(L.x,s.x,void 0,c);mt&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),_o&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let fr=(f.x-r.x)/P,Zc=(x.x-r.x)/P,Zr=(L.x-r.x)/P,ss=1-b/P,Ne=(Zr+.5*ss)%1;et.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(fr,Zc,Ne,et.ellipsoidShapeUvLongitudeMinMaxMid)}if(ye&&(le&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,He.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=ct,ee?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,ct+=1):fe?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,ct+=1):_e&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,ct+=2)),q&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,He.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=ct,J?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,ct+=2):te?(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,ct+=1):z&&(He.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,ct+=1)),et.ellipsoidRenderLatitudeSinMinMax=D.fromElements(Math.sin(V.y),Math.sin(L.y),et.ellipsoidRenderLatitudeSinMinMax)),je)if(He.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,Te<u)et.ellipsoidUvToShapeUvLatitude=D.fromElements(0,1,et.ellipsoidUvToShapeUvLatitude);else{let _o=(s.y-r.y)/Te,fr=(r.y-f.y)/Te;et.ellipsoidUvToShapeUvLatitude=D.fromElements(_o,fr,et.ellipsoidUvToShapeUvLatitude)}return this.shaderMaximumIntersectionsLength=ct,!0};var dTe=new ae;h0.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,d=(n+1)*r,u=i*r,m=(i+1)*r,p=ae.subsection(this._rectangle,s,c,a,d,dTe),g=W.lerp(this._minimumHeight,this._maximumHeight,u),f=W.lerp(this._minimumHeight,this._maximumHeight,m);return T8(p,g,f,this._ellipsoid,this._translation,this._rotation,o)};var cTe=new h,lTe=new h,X0t=new h;h0.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,cTe),s=h.multiplyByScalar(r,o,cTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,lTe),o,lTe),c=h.add(a,s,X0t),d=ae.subsection(this._rectangle,a.x,a.y,c.x,c.y,dTe),u=W.lerp(this._minimumHeight,this._maximumHeight,a.z),m=W.lerp(this._minimumHeight,this._maximumHeight,c.z);return T8(d,u,m,this._ellipsoid,this._translation,this._rotation,i)};function T8(e,t,n,i,o,r,s){return s=En.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}h0.DefaultMinBounds=Object.freeze(new h(-W.PI,-W.PI_OVER_TWO,-ne.WGS84.minimumRadius));h0.DefaultMaxBounds=Object.freeze(new h(W.PI,W.PI_OVER_TWO,10*ne.WGS84.maximumRadius));var zT=h0;var $d={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};$d.getMinBounds=function(e){switch(e){case $d.BOX:return qf.DefaultMinBounds;case $d.ELLIPSOID:return zT.DefaultMinBounds;case $d.CYLINDER:return $f.DefaultMinBounds}};$d.getMaxBounds=function(e){switch(e){case $d.BOX:return qf.DefaultMaxBounds;case $d.ELLIPSOID:return zT.DefaultMaxBounds;case $d.CYLINDER:return $f.DefaultMaxBounds}};$d.getShapeConstructor=function(e){switch(e){case $d.BOX:return qf;case $d.ELLIPSOID:return zT;case $d.CYLINDER:return $f}};var vi=Object.freeze($d);var RBi=T(S(),1);var EDi=T(S(),1);function Ih(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Ih.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Ih.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Ih({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Ih.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Ih.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)uTe(this,t)};Ih.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,uTe(this,i),t};Ih.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],mTe(this,0)),this._array[e-1]=void 0,t};Ih.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=S8(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&mTe(this,n)}return this._array[e-1]=void 0,t};Ih.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Ih.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[S8(this,1,2)?1:2]};function WB(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function XA(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function S8(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function uTe(e,t){if(t===0)return;let n=Math.floor(W.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=XA(e,t,i);for(o!==n&&(WB(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(XA(e,t,r)!==o)break;WB(e,t,r),t=r}}function mTe(e,t){let n=e._length,i=Math.floor(W.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){XA(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let d=0;d<c;d++){let u=a+d;XA(e,u,r)===i&&(r=u)}}if(XA(e,r,t)===i&&(WB(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);S8(e,r,a)===i&&WB(e,r,a)}t=r}}var KT=Ih;var XDi=T(S(),1),hTe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function PB(e,t){this.spatialNode=e,this.keyframe=t,this.state=hTe.UNLOADED,this.metadata=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}PB.priorityComparator=function(e,t){return e.priority-t.priority};PB.searchComparator=function(e,t){return e.keyframe-t.keyframe};PB.LoadState=hTe;var ji=PB;var jDi=T(S(),1);function Zy(e,t,n,i,o){i===Ht.UNSIGNED_SHORT&&(i=Ht.FLOAT32);let r=e.floatingPointTexture;if(i===Ht.FLOAT32&&!r)throw new de("Floating point texture not supported");let s;i===Ht.FLOAT32||i===Ht.FLOAT64?s=qe.FLOAT:i===Ht.UINT8&&(s=qe.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?ot.RED:ot.LUMINANCE:n===2?a=e.webgl2?ot.RG:ot.LUMINANCE_ALPHA:n===3?a=ot.RGB:n===4&&(a=ot.RGBA);let c=512*1024*1024,d=128*1024*1024;o=Math.min(y(o,d),c);let u=Bt.maximumTextureSize,m=Ht.getSizeInBytes(i),p=Math.floor(o/(n*m)),g=Math.min(u,W.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),f=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/f),_=f*t.x,C=x*t.y,V=Math.floor(g/_),L=Math.floor(g/C);if(V===0||L===0)throw new de("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=V*L,this.regionCountPerMegatexture=new D(V,L),this.voxelCountPerRegion=new D(_,C),this.sliceCountPerRegion=new D(f,x),this.voxelSizeUv=new D(1/g,1/g),this.sliceSizeUv=new D(t.x/g,t.y/g),this.regionSizeUv=new D(_/g,C/g),this.texture=new Pt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:hi.LINEAR})});let Z=Ht.toComponentDatatype(i);this.tileVoxelDataTemp=Q.createTypedArray(Z,_*C*n),this.nodes=new Array(this.maximumTileCount);for(let G=0;G<this.maximumTileCount;G++)this.nodes[G]=new W0t(G);for(let G=0;G<this.maximumTileCount;G++){let I=this.nodes[G];I.previousNode=G>0?this.nodes[G-1]:void 0,I.nextNode=G<this.maximumTileCount-1?this.nodes[G+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function W0t(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}Zy.prototype.add=function(e){if(this.isFull())throw new pe("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};Zy.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new pe("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};Zy.prototype.isFull=function(){return this.emptyList===void 0};Zy.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===Ht.UNSIGNED_SHORT&&(i=Ht.FLOAT32);let o=Ht.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.x)),a=Math.ceil(t.z/s),c=s*t.x,d=a*t.y,u=W.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(u/c),g=Math.floor(u/d);if(p*g>=e)break;u*=2}return u*u*n*o};Zy.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let _=x%o.x*i.x,C=Math.floor(x/o.x)*i.y;for(let V=0;V<i.y;V++)for(let L=0;L<i.x;L++){let Z=x*i.y*i.x+V*i.x+L,G=(C+V)*r.x+(_+L);for(let I=0;I<s;I++)a[G*s+I]=n[Z*s+I]}}let c=this.regionCountPerMegatexture,d=r.x,u=r.y,m=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,f={source:{arrayBufferView:a,width:d,height:u},xOffset:m,yOffset:p};this.texture.copyFrom(f)};Zy.prototype.isDestroyed=function(){return!1};Zy.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),me(this)};var iL=Zy;var aBi=T(S(),1);function lm(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new En,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var P0t=new h;lm.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,P0t),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};lm.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,d=r+1,u=a+1,m=t+1,p=[[m,r,s,a],[m,d,s,a],[m,r,c,a],[m,d,c,a],[m,r,s,u],[m,d,s,u],[m,r,c,u],[m,d,c,u]];this.children=p.map(([g,f,x,_])=>new lm(g,f,x,_,this,e,this.dimensions))};lm.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};lm.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,W.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var fTe={keyframe:0};function WA(e,t){return fTe.keyframe=e,Eo(t,fTe,ji.searchComparator)}lm.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:m}=t;if(m.length>=1){let p=v0t(i,m),g=m[p],f=o===i||i<g.keyframe?p:Math.min(p+1,m.length-1),x=m[f],_=i-g.keyframe,C=pTe(n-t.level,_);C<a&&(a=C,r=g);let V=x.keyframe-o,L=pTe(n-t.level,V);if(L<c&&(c=L,s=x),_===0&&V===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let d=r.keyframe,u=s.keyframe;this.renderableKeyframeNodeLerp=d===u?0:W.clamp((e-d)/(u-d),0,1)};function v0t(e,t){let n=WA(e,t);return n<0?W.clamp(~n-1,0,t.length-1):n}function pTe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}lm.prototype.isVisited=function(e){return this.visitedFrameNumber===e};lm.prototype.createKeyframeNode=function(e){let t=WA(e,this.keyframeNodes);if(t<0){t=~t;let n=new ji(this,e);this.keyframeNodes.splice(t,0,n)}};lm.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=WA(n,this.keyframeNodes);if(i<0)throw new pe("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=WA(n,this.renderableKeyframeNodes);if(o<0)throw new pe("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=ji.LoadState.UNLOADED,e.metadata={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};lm.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==ji.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadata.length!==t.length)throw new pe("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadata[o])}e.state=ji.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=WA(e.keyframe,n);if(i>=0)throw new pe("Keyframe already renderable");i=~i,n.splice(i,0,e)};lm.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var PA=lm;function f0(e,t,n,i,o,r,s){this._primitive=e,this.megatextures=new Array(i.length);for(let f=0;f<i.length;f++){let x=i[f],_=Rt.getComponentCount(x),C=o[f];this.megatextures[f]=new iL(t,n,_,C,s)}let a=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let c=e._shape;this.rootNode=new PA(0,0,0,0,void 0,c,n),this._priorityQueue=new KT({maximumLength:a,comparator:ji.priorityComparator}),this._highPriorityKeyframeNodes=new Array(a),this._keyframeNodesInMegatexture=new Array(a),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let d=this._binaryTreeKeyframeWeighting;d[0]=0,d[r-1]=0,C8(d,1,r-2,0);let u=9,m=2048,p=Math.floor(m/u),g=Math.ceil(a/p);this.internalNodeTexture=new Pt({context:t,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,flipY:!1,width:m,height:g,sampler:new en({minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST})}),this.internalNodeTilesPerRow=p,this.internalNodeTexelSizeUv=new D(1/m,1/g),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new D}f0.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function C8(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,C8(e,t,o-1,i+1),C8(e,o+1,n,i+1)}f0.simultaneousRequestCountMaximum=50;f0.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,d=c>0,u=a>1,m=(d?2:1)*(u?2:1);this._sampleCount=m;let p=m>=2;if(p&&!l(this.leafNodeTexture)){let V=Math.floor(512),L=Math.ceil(s/V);this.leafNodeTexture=new Pt({context:r,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,flipY:!1,width:1024,height:L,sampler:new en({minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST})}),this.leafNodeTexelSizeUv=D.fromElements(1/1024,1/L,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=V}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=W.clamp(t,0,a-1),n&&bTe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=_i();A0t(this,e);let f=_i();k0t(this,m,c);let x=_i();if(this._debugPrint){let _=f-g,C=x-f,V=x-g;N0t(this,_,C,V)}};f0.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};f0.prototype.isDestroyed=function(){return!1};f0.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),me(this)};function bTe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];bTe(e,i)}}function w0t(e,t){if(e._simultaneousRequestCount>=f0.simultaneousRequestCountMaximum)return;let n=e._primitive._provider;function i(c){e._simultaneousRequestCount--;let d=n.types.length;if(!l(c))t.state=ji.LoadState.UNAVAILABLE;else if(c===ji.LoadState.FAILED)t.state=ji.LoadState.FAILED;else if(!Array.isArray(c)||c.length!==d)t.state=ji.LoadState.FAILED;else{let u=e.megatextures;for(let m=0;m<d;m++){let{voxelCountPerTile:p,channelCount:g}=u[m],{x:f,y:x,z:_}=p,C=f*x*_,V=c[m],L=C*g;if(V.length===L)t.metadata[m]=V,t.state=ji.LoadState.RECEIVED;else{t.state=ji.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=ji.LoadState.FAILED}let{keyframe:r,spatialNode:s}=t,a=n.requestData({tileLevel:s.level,tileX:s.x,tileY:s.y,tileZ:s.z,keyframe:r});l(a)?(e._simultaneousRequestCount++,t.state=ji.LoadState.RECEIVING,a.then(i).catch(o)):t.state=ji.LoadState.FAILED}function F0t(e){return e/(1+e)}function A0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,r=i.screenSpaceError,s=e._priorityQueue,a=e._keyframeCount,c=W.clamp(Math.floor(e._keyframeLocation),0,a-2),d=c+1,{camera:u,context:m,pixelRatio:p}=t,{positionWC:g,frustum:f}=u,_=m.drawingBufferHeight/p/f.sseDenominator;function C(F,b){if(F.computeScreenSpaceError(g,_),b=F.visibility(t,b),b===ms.MASK_OUTSIDE)return;if(F.visitedFrameNumber=n,a===1)F.createKeyframeNode(0);else if(F.keyframeNodes.length!==a)for(let N=0;N<a;N++)F.createKeyframeNode(N);let{screenSpaceError:R,keyframeNodes:E}=F,X=F0t(R),A=!1;for(let N=0;N<E.length;N++){let O=E[N];O.priority=10*X+M0t(c,O.keyframe,d,e),O.state!==ji.LoadState.UNAVAILABLE&&O.state!==ji.LoadState.FAILED&&O.priority!==-Number.MAX_VALUE&&s.insert(O),O.state===ji.LoadState.LOADED&&(A=!0)}if(R<r||!A){F.children=void 0;return}l(F.children)||F.constructChildNodes(o);for(let N=0;N<8;N++){let O=F.children[N];C(O,b)}}s.reset(),C(e.rootNode,ms.MASK_INDETERMINATE);let V=e._highPriorityKeyframeNodes,L=0,Z;for(;s.length>0;)Z=s.removeMaximum(),Z.highPriorityFrameNumber=n,V[L]=Z,L++;let G=e._keyframeNodesInMegatexture,I=e.megatextures[0],v=I.occupiedCount;G.length=v,G.sort(function(F,b){return F.highPriorityFrameNumber===b.highPriorityFrameNumber?b.priority-F.priority:b.highPriorityFrameNumber-F.highPriorityFrameNumber});let P=0,w=0;for(let F=0;F<L;F++)if(Z=V[F],!(Z.state===ji.LoadState.LOADED||Z.spatialNode===void 0)&&(Z.state===ji.LoadState.UNLOADED&&w0t(e,Z),Z.state===ji.LoadState.RECEIVED)){let b=0;if(I.isFull()){b=v-1-P,P++;let R=G[b];R.spatialNode.destroyKeyframeNode(R,e.megatextures)}else b=v+w,w++;Z.spatialNode.addKeyframeNodeToMegatextures(Z,e.megatextures),G[b]=Z}}function M0t(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return W.lerp(a,s,.15+.85*s)}function N0t(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(ji.LoadState).length,a=new Array(s),c=new Array(s),d=0;for(let C=0;C<s;C++){let V=new Array(o);a[C]=V;for(let L=0;L<o;L++)V[L]=0;c[C]=0}function u(C){let V=C.keyframeNodes;for(let L=0;L<V.length;L++){let Z=V[L],G=Z.keyframe,I=Z.state;a[I][G]+=1,c[I]+=1,d++}if(l(C.children))for(let L=0;L<8;L++){let Z=C.children[L];u(Z)}}u(r);let m=`KEYFRAMES: ${a[ji.LoadState.LOADED]}`,p=`UNLOADED: ${c[ji.LoadState.UNLOADED]} | RECEIVING: ${c[ji.LoadState.RECEIVING]} | RECEIVED: ${c[ji.LoadState.RECEIVED]} | LOADED: ${c[ji.LoadState.LOADED]} | FAILED: ${c[ji.LoadState.FAILED]} | UNAVAILABLE: ${c[ji.LoadState.UNAVAILABLE]} | TOTAL: ${d}`,g=Math.round(t*100)/100,f=Math.round(n*100)/100,x=Math.round(i*100)/100,_=`LOAD: ${g} | OCT: ${f} | ALL: ${x}`;console.log(`${m} || ${p} || ${_}`)}var vB={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function k0t(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,d=[],u=[];function m(g,f,x,_,C){let V=!1;if(l(g.children))for(let L=0;L<8;L++){let Z=g.children[L];Z.computeSurroundingRenderableKeyframeNodes(o),Z.isRenderable(r)&&(V=!0)}if(V){d[C]=vB.INTERNAL<<16|f,d[x]=_,a++,_=f,C=_*9+1;for(let L=0;L<8;L++){let Z=g.children[L];f=a,x=f*9+0,m(Z,f,x,_,C+L)}}else{if(s){let L=c*5,Z=g.renderableKeyframeNodePrevious,G=g.level-Z.spatialNode.level,I=Z.spatialNode.parent,v=l(I)?I.renderableKeyframeNodePrevious:Z,P=U0t(g,i,n),w=G,F=1,b=Z.megatextureIndex,R=v.megatextureIndex;u[L+0]=P,u[L+1]=w,u[L+2]=F,u[L+3]=b,u[L+4]=R,d[C]=vB.LEAF<<16|c}else{let L=g.renderableKeyframeNodePrevious,G=g.level-L.spatialNode.level===0?vB.LEAF:vB.PACKED_LEAF_FROM_PARENT;d[C]=G<<16|L.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&m(p,0,0,0,0),D0t(d,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&B0t(u,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function U0t(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return W.clamp(s,0,1)}function D0t(e,t,n,i){let o=ot.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let m=0;m<e.length;m++){let p=e[m],g=m*o;for(let f=0;f<o;f++)c[g+f]=p>>>f*8&255}let u={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(u)}function B0t(e,t,n,i){let o=ot.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),d=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],f=e[p*r+1],x=e[p*r+2],_=e[p*r+3],C=e[p*r+4],V=W.clamp(Math.floor(65536*g),0,65535);d[p*8+0]=V>>>0&255,d[p*8+1]=V>>>8&255,d[p*8+2]=f&255,d[p*8+3]=x&255,d[p*8+4]=_>>>0&255,d[p*8+5]=_>>>8&255,d[p*8+6]=C>>>0&255,d[p*8+7]=C>>>8&255}let m={source:{arrayBufferView:d,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(m)}f0.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],d=Rt.getComponentCount(a);o+=iL.getApproximateTextureMemoryByteLength(e,t,d,c)}return o};var oL=f0;var jBi=T(S(),1);var GBi=T(S(),1),O0t={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},rL=Object.freeze(O0t);var UBi=T(S(),1);var IBi=T(S(),1);function Y0t(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var vA=Y0t;function sL(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}sL.prototype.getTexture=function(e){return this._textures[e]};function H0t(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}sL.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):H0t(this,e,t)};function z0t(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?wB(o,r,n):K0t(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function wB(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?yTe(e,n):new Pt({context:n,source:t,sampler:o});return gTe(o)&&r.generateMipmap(),r}function K0t(e,t,n){let{typedArray:i,sampler:o}=e,r=gTe(o),s=o.wrapS===Cn.REPEAT||o.wrapS===Cn.MIRRORED_REPEAT||o.wrapT===Cn.REPEAT||o.wrapT===Cn.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,d=[a,c].every(W.isPowerOfTwo);if((r||s)&&!d)if(l(i)){if(e.pixelDatatype===qe.UNSIGNED_BYTE){let m=vA(i,a,c),p=og(m);return wB({sampler:o},p,n)}}else{let m=og(t);return wB(e,m,n)}else return wB(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),yTe(e,n)}function gTe(e){return[$t.NEAREST_MIPMAP_NEAREST,$t.NEAREST_MIPMAP_LINEAR,$t.LINEAR_MIPMAP_NEAREST,$t.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function yTe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Pt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}sL.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];z0t(this,o,t)}n.length=0};sL.prototype.isDestroyed=function(){return!1};sL.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return me(this)};var wA=sL;function FA(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,cb.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,Tg.INHERIT),this._textureManager=new wA,this._defaultTexture=void 0,this.uniformMap=J0t(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},q0t(this),$0t(this)}function J0t(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===rL.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=Q0t(e,i)):n[i]=j0t(e,i)}return n}function Q0t(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function j0t(e,t){return function(){return e.uniforms[t].value}}function JT(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function q0t(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,JT(r,t,o),o=e.usedVariablesVertex.featureIdSet,JT(r,n,o),o=e.usedVariablesVertex.metadataSet,JT(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,JT(s,t,o),o=e.usedVariablesFragment.featureIdSet,JT(s,n,o),o=e.usedVariablesFragment.metadataSet,JT(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;JT(s,a,c)}}function xTe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function Vc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${xTe(t)} is not available in the ${i} shader. Did you mean ${xTe(n)} instead?`;throw new pe(o)}}function $0t(e){let t=e.usedVariablesVertex.attributeSet;Vc(t,"position","positionMC","vertex"),Vc(t,"normal","normalMC","vertex"),Vc(t,"tangent","tangentMC","vertex"),Vc(t,"bitangent","bitangentMC","vertex"),Vc(t,"positionWC","positionMC","vertex"),Vc(t,"positionEC","positionMC","vertex"),Vc(t,"normalEC","normalMC","vertex"),Vc(t,"tangentEC","tangentMC","vertex"),Vc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;Vc(n,"position","positionEC","fragment"),Vc(n,"normal","normalEC","fragment"),Vc(n,"tangent","tangentEC","fragment"),Vc(n,"bitangent","bitangentEC","fragment"),Vc(n,"normalMC","normalEC","fragment"),Vc(n,"tangentMC","tangentEC","fragment"),Vc(n,"bitangentMC","bitangentEC","fragment")}FA.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===rL.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};FA.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};FA.prototype.isDestroyed=function(){return!1};FA.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),me(this)};var QT=FA;function ep(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,ep.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._exaggeratedMinBounds=new h,this._exaggeratedMinBoundsOld=new h,this._exaggeratedMaxBounds=new h,this._exaggeratedMaxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._exaggeratedModelMatrix=M.clone(this._modelMatrix),this._compoundModelMatrix=new M,this._compoundModelMatrixOld=new M,this._customShader=y(e.customShader,ep.DefaultCustomShader),this._customShaderCompilationEvent=new be,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new M,this._transformPositionUvToWorld=new M,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Jm,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new D,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new D,megatextureTextures:[],megatextureSliceDimensions:new D,megatextureTileDimensions:new D,megatextureVoxelSizeUv:new D,megatextureSliceSizeUv:new D,megatextureTileSizeUv:new D,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new M,transformPositionUvToView:new M,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new se,clippingPlanesTexture:void 0,clippingPlanesMatrix:new M,stepSize:0,pickColor:new B},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;egt(this,i)}function egt(e,t){let{shape:n,minBounds:i=vi.getMinBounds(n),maxBounds:o=vi.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=vi.getMinBounds(n),e.maxClippingBounds=vi.getMaxBounds(n),e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e._exaggeratedModelMatrix=M.clone(e._modelMatrix,e._exaggeratedModelMatrix),TTe(e,t);let r=vi.getShapeConstructor(n);e._shape=new r,e._shapeVisible=STe(e,e._shape,t)}Object.defineProperties(ep.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=M.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=W.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){hs.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=ep.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var tgt=new h,ngt=new se,igt=new se,ogt=new h,rgt=new h,sgt=new $,agt=new $,cgt=new M,lgt=new M,dgt=new M,ugt=M.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new M),mgt=M.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new M);ep.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){ygt(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}bgt(this,e);let i=TTe(this,t),o=this._shape;if(i&&(this._shapeVisible=STe(this,o,t),Tgt(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=Sgt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&Igt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),Cgt(this,e)&&(this._shaderDirty=!0);let d=s.leafNodeTexture,u=this._uniforms;l(d)&&(u.octreeLeafNodeTexture=s.leafNodeTexture,u.octreeLeafNodeTexelSizeUv=D.clone(s.leafNodeTexelSizeUv,u.octreeLeafNodeTexelSizeUv),u.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(IA(this,n),this._shaderDirty=!1);let m=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=Rgt(p,m,igt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;u.ndcSpaceAxisAlignedBoundingBox=se.clone(g,u.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;u.transformPositionViewToUv=M.multiplyTransformation(this._transformPositionWorldToUv,x,u.transformPositionViewToUv);let _=n.uniformState.view;u.transformPositionUvToView=M.multiplyTransformation(_,this._transformPositionUvToWorld,u.transformPositionUvToView);let C=n.uniformState.inverseViewRotation;u.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,C,u.transformDirectionViewToLocal),u.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,u.transformNormalLocalToWorld);let V=e.camera.positionWC;u.cameraPositionUv=M.multiplyByPoint(this._transformPositionWorldToUv,V,u.cameraPositionUv),u.stepSize=this._stepSizeMultiplier;let L=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;L.boundingVolume=o.boundingSphere,e.commandList.push(L)};var hgt=new h,V8=new h,fgt=new he,pgt=new h;function bgt(e,t){if(e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e.shape===vi.ELLIPSOID){let n=t.verticalExaggerationRelativeHeight,i=t.verticalExaggeration;e._exaggeratedMinBounds.z=(e._minBounds.z-n)*i+n,e._exaggeratedMaxBounds.z=(e._maxBounds.z-n)*i+n}else if(e.shape===vi.BOX){let n=h.fromElements(1,1,t.verticalExaggeration,hgt);e._exaggeratedModelMatrix=M.multiplyByScale(e._modelMatrix,n,e._exaggeratedModelMatrix),e._exaggeratedModelMatrix=M.multiplyByTranslation(e._exaggeratedModelMatrix,ggt(e,t),e._exaggeratedModelMatrix)}}function ggt(e,t){let{shapeTransform:n=M.IDENTITY,globalTransform:i=M.IDENTITY}=e._provider,o=M.getTranslation(n,V8),r=M.multiplyByPoint(e._modelMatrix,o,V8),s=M.multiplyByPoint(i,r,V8),c=ne.WGS84.cartesianToCartographic(s,fgt),d=0;l(c)&&(d=c.height);let u=_r.getHeight(d,t.verticalExaggeration,t.verticalExaggerationRelativeHeight);return h.fromElements(0,0,(u-d)/t.verticalExaggeration,pgt)}function ygt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=B.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ye(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=xgt(e,t,n),_gt(e._traversal,i)}function TTe(e,t){let n=y(t.shapeTransform,M.IDENTITY),i=y(t.globalTransform,M.IDENTITY);return M.multiplyTransformation(i,e._exaggeratedModelMatrix,e._compoundModelMatrix),M.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),jT(e,"_compoundModelMatrix","_compoundModelMatrixOld")+jT(e,"_minBounds","_minBoundsOld")+jT(e,"_maxBounds","_maxBoundsOld")+jT(e,"_exaggeratedMinBounds","_exaggeratedMinBoundsOld")+jT(e,"_exaggeratedMaxBounds","_exaggeratedMaxBoundsOld")+jT(e,"_minClippingBounds","_minClippingBoundsOld")+jT(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function jT(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function STe(e,t,n){if(!t.update(e._compoundModelMatrix,e._exaggeratedMinBounds,e._exaggeratedMaxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=M.inverse(o,cgt),s=M.getRotation(o,sgt),a=M.getScale(o,ogt),c=h.maximumComponent(a),d=h.divideByScalar(a,c,rgt),u=$.multiplyByScale(s,d,agt);return e._transformPositionWorldToUv=M.multiplyTransformation(ugt,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=M.multiplyTransformation(o,mgt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=M.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(u,e._transformNormalLocalToWorld),!0}function xgt(e,t,n){let i=h.clone(t.dimensions,tgt);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?oL.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new oL(e,n,i,t.types,t.componentTypes,s,r)}function _gt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=D.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=D.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=D.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=D.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=D.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=D.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function Tgt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ye(n,!0)),i}function Sgt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=j.secondsDifference(i.stop,i.start),a=j.secondsDifference(n,i.start)/r;return o+a}function Cgt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=M.transpose(M.multiplyTransformation(M.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}ep.prototype.isDestroyed=function(){return!1};ep.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),me(this)};var _Te=new Array(new se(-1,-1,-1,1),new se(1,-1,-1,1),new se(-1,1,-1,1),new se(1,1,-1,1),new se(-1,-1,1,1),new se(1,-1,1,1),new se(-1,1,1,1),new se(1,1,1,1)),Vgt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),Lgt=new Array(new se,new se,new se,new se,new se,new se,new se,new se);function Rgt(e,t,n){let i=M.fromRotationTranslation(e.halfAxes,e.center,lgt),o=M.multiply(t,i,dgt),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,d,u=Lgt,m=_Te.length;for(d=0;d<m;d++)M.multiplyByVector(o,_Te[d],u[d]);for(d=0;d<m;d++){let p=u[d];if(p.z>=-p.w){let g=p.x/p.w,f=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,f),c=Math.max(c,f)}else for(let g=0;g<3;g++){let f=Vgt[d*3+g],x=u[f];if(x.z>=-x.w){let _=p.z+p.w,C=x.z+x.w,V=_/(_-C),L=se.lerp(p,x,V,ngt),Z=L.x/L.w,G=L.y/L.w;r=Math.min(r,Z),s=Math.max(s,Z),a=Math.min(a,G),c=Math.max(c,G)}}}return r=W.clamp(r,-1,1),a=W.clamp(a,-1,1),s=W.clamp(s,-1,1),c=W.clamp(c,-1,1),n=se.fromElements(r,a,s,c,n),n}var L8=3e7,Zgt=new h(L8,0,0),Ggt=new h(0,L8,0),Egt=new h(0,0,L8);function Igt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,d,u,m){i.add({positions:[c,d],width:m,material:Oi.fromType("Color",{color:u})})}function r(c,d,u){let m=c.computeCorners();o(m[0],m[1],d,u),o(m[2],m[3],d,u),o(m[4],m[5],d,u),o(m[6],m[7],d,u),o(m[0],m[2],d,u),o(m[4],m[6],d,u),o(m[1],m[3],d,u),o(m[5],m[7],d,u),o(m[0],m[4],d,u),o(m[2],m[6],d,u),o(m[1],m[5],d,u),o(m[3],m[7],d,u)}function s(c){if(!n.isRenderable(c))return;let d=c.level,m=Math.max(1,5/Math.pow(2,d)),g=[B.RED,B.LIME,B.BLUE][d%3];if(r(c.orientedBoundingBox,g,m),l(c.children))for(let f=0;f<8;f++)s(c.children[f])}r(e._shape.orientedBoundingBox,B.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,Zgt,B.RED,a),o(h.ZERO,Ggt,B.LIME,a),o(h.ZERO,Egt,B.BLUE,a),i.update(t)}ep.DefaultCustomShader=new QT({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function CTe(){this.ready=!0,this.shape=vi.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[Rt.SCALAR],this.componentTypes=[Ht.FLOAT32],this.maximumTileCount=1}CTe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};ep.DefaultProvider=new CTe;var Gy=ep;var Z3i=T(S(),1);function Xgt(e,t,n,i){if(!l(e)||l(t)&&e.id!==t)return;let r=(e.classes||{})[n];if(!l(r))return;let a=(r.properties||{})[i];if(l(a))return a}var AA=Xgt;var E3i=T(S(),1);function Wgt(e,t,n,i){this.schemaId=e,this.className=t,this.propertyName=n,this.classProperty=i}var MA=Wgt;var AB=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function ci(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ye(e.contextOptions),r=l(n),s=new $G(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=Bn(),this._jobScheduler=new pF,this._frameState=new hF(s,new nF(n,"\u2022",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new sR(s),this._ellipsoid=y(e.ellipsoid,ne.default),this._globe=void 0,this._globeTranslucencyState=new fF,this._primitives=new kl,this._groundPrimitives=new kl,this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=ci.defaultLogDepthBuffer&&s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new BT,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new dF(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ei({color:new B,stencil:0,owner:this}),this._depthClearCommand=new ei({depth:1,owner:this}),this._stencilClearCommand=new ei({stencil:0}),this._classificationStencilClearCommand=new ei({stencil:0,renderState:Ue.fromCache({stencilMask:Ot.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new iA(this),this._preUpdate=new be,this._postUpdate=new be,this._renderError=new be,this._preRender=new be,this._postRender=new be,this._minimumDisableDepthTestDistance=0,this._debugInspector=new mA,this._msaaSamples=y(e.msaaSamples,4),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new be,this.morphComplete=new be,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=B.clone(B.BLACK),this._mode=oe.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new Ri(this._ellipsoid),this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.atmosphere=new u_,this.fog=new mF,this.fog.enabled=ne.WGS84.equals(this._ellipsoid),ne.WGS84.equals(this._ellipsoid)||(io.DEFAULT_VIEW_RECTANGLE=ae.fromDegrees(-45,-45,45,45)),this._shadowMapCamera=new io(this),this.shadowMap=new c0({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=B.clone(B.WHITE),this._actualInvertClassificationColor=B.clone(this._invertClassificationColor),this._invertClassification=new QV,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new eA,this._brdfLutGenerator=new Qw,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new aA(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,Ql.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=ja.requestCompletedEvent.addEventListener(AB(this)),this._removeTaskProcessorListenerCallback=bi.taskCompletedEvent.addEventListener(AB(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new Ke(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new io(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new io(this),this.preloadFlightCullingVolume=void 0,this._picking=new XF(this),this._defaultView=new wT(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentCubeMap=void 0,this.light=new Tp,GTe(this,0,j.now()),this.updateFrameState(),this.initializeFrame()}ci.defaultLogDepthBuffer=!0;function Pgt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(AB(e))),n.push(t.terrainProviderChanged.addEventListener(AB(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(ci.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return Bt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return Bt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return Wm.isSupported(this._context)}},ellipsoid:{get:function(){return this._ellipsoid}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Pgt(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===oe.SCENE2D?this.morphTo2D(0):e===oe.SCENE3D?this.morphTo3D(0):e===oe.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new io(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new uF(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,Bt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});ci.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function vgt(e,t){let n=e.pickedMetadataInfo,i=t.pickedMetadataInfo;return n?.schemaId!==i?.schemaId||n?.className!==i?.className||n?.propertyName!==i?.propertyName}function VTe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,{lightShadowMaps:s,lightShadowsEnabled:a}=i.shadowState,c=t.derivedCommands;l(t.pickId)&&(c.picking=Yf.createPickDerivedCommand(e,t,o,c.picking)),i.pickingMetadata&&t.pickMetadataAllowed&&(t.pickedMetadataInfo=i.pickedMetadataInfo,l(t.pickedMetadataInfo)&&(c.pickingMetadata=Yf.createPickMetadataDerivedCommand(e,t,o,c.pickingMetadata))),t.pickOnly||(c.depth=Yf.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=Yf.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=c0.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===Ge.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}ci.prototype.updateDerivedCommands=function(e){let{derivedCommands:t}=e;if(!l(t))return;let n=this._frameState,{shadowState:i,useLogDepth:o}=this._frameState,r=this._context,s=!1,a=i.lastDirtyTime;e.lastDirtyTime!==a&&(e.lastDirtyTime=a,e.dirty=!0,s=!0);let c=this._hdr,d=l(t.logDepth),u=l(t.hdr),m=l(t.originalCommand),p=o&&!d,g=c&&!u,f=(!o||!c)&&!m,x=n.pickingMetadata&&vgt(e,n);if(e.dirty=e.dirty||p||g||f||x,!e.dirty)return;e.dirty=!1;let{shadowsEnabled:_,shadowMaps:C}=i;_&&e.castShadows&&(t.shadows=c0.createCastDerivedCommand(C,e,s,r,t.shadows)),(d||p)&&(t.logDepth=Yf.createLogDepthCommand(e,r,t.logDepth),VTe(this,t.logDepth.command,s)),(m||f)&&VTe(this,e,s)};var wgt=new rm({pass:wo.RENDER}),R8=new rm({pass:wo.PRELOAD}),Z8=new rm({pass:wo.PRELOAD_FLIGHT}),Fgt=new rm({pass:wo.REQUEST_RENDER_MODE_DEFER_CHECK}),LTe=new ce,G8;function Agt(e){if(!(e._mode!==oe.SCENE3D||!e.globe?.show||e._cameraUnderground||e._globeTranslucencyState.translucent))return LTe.radius=e.ellipsoid.minimumRadius+e.frameState.minimumTerrainHeight,G8=zw.fromBoundingSphere(LTe,e.camera.positionWC,G8),G8}ci.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function GTe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=j.clone(n,i.time)}ci.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Agt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof an||this.camera.frustum instanceof Pr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready?(t.specularEnvironmentMaps=this._specularEnvironmentCubeMap.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentCubeMap.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=B.clone(this.invertClassificationColor,this._actualInvertClassificationColor),QV.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};ci.prototype.isVisible=function(e,t,n){if(!l(t))return!1;let{boundingVolume:i}=t;return!l(i)||!t.cull?!0:e.computeVisibility(i)===Jt.OUTSIDE?!1:!l(n)||!t.occlude||!i.isOccluded(n)};var FB=new M(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);FB=M.inverseTransformation(FB,FB);function Mgt(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a=h.clone(s.center);if(o.mode!==oe.SCENE3D){a=M.multiplyByPoint(FB,a,a);let f=o.mapProjection,x=f.unproject(a);a=f.ellipsoid.cartographicToCartesian(x)}let c,d,{radius:u}=s;l(u)?(c=zs.createGeometry(new zs({radii:new h(u,u,u),vertexFormat:dn.FLAT_VERTEX_FORMAT})),d=M.fromTranslation(a)):(c=Ra.createGeometry(Ra.fromDimensions({dimensions:new h(2,2,2),vertexFormat:dn.FLAT_VERTEX_FORMAT})),d=M.fromRotationTranslation(s.halfAxes,a,new M)),t._debugVolume=new In({geometryInstances:new Gt({geometry:Fn.toWireframe(c),modelMatrix:d,attributes:{color:new Kt(1,0,0,1)}}),appearance:new dn({flat:!0,translucent:!1}),asynchronous:!1});let m=o.commandList,p=o.commandList=[];t._debugVolume.update(o),e=p[0],o.useLogDepth&&(e=Yf.createLogDepthCommand(e,r).command);let g;l(i)&&(g=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(g)&&(n.framebuffer=g),o.commandList=m}function tp(e,t,n,i){let o=t._frameState,r=t._context;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ei){e.execute(r,n);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&Mgt(e,t,n,i),o.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth){if(o.pickingMetadata&&l(e.derivedCommands.pickingMetadata)){e=e.derivedCommands.pickingMetadata.pickMetadataCommand,e.execute(r,n);return}if(!o.pickingMetadata&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(r,n);return}}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(r,n);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,n);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(r,n):e.execute(r,n)}function RTe(e,t,n){let{derivedCommands:i}=e;if(!l(i))return;let o=t._frameState,r=t._context;o.useLogDepth&&l(i.logDepth)&&(e=i.logDepth.command);let{picking:s,pickingMetadata:a,depth:c}=e.derivedCommands;l(a)&&(e=i.pickingMetadata.pickMetadataCommand,e.execute(r,n)),l(s)?(e=s.pickCommand,e.execute(r,n)):l(c)&&(e=c.depthOnlyCommand,e.execute(r,n))}function ETe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Ngt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+W.EPSILON12}function kgt(e,t,n,i,o){o0(i,ETe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function Ugt(e,t,n,i,o){o0(i,Ngt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function Dgt(e,t,n){e.context.uniformState.updatePass(Ge.VOXELS);let i=n.commands[Ge.VOXELS];i.length=n.indices[Ge.VOXELS],o0(i,ETe,e.camera.positionWC);for(let o=0;o<i.length;++o)tp(i[o],e,t)}var Bgt=new Li,Ogt=new sl,Ygt=new an,Hgt=new Pr;function zgt(e){let{frustum:t}=e;return l(t.fov)?t.clone(Bgt):l(t.infiniteProjectionMatrix)?t.clone(Ogt):l(t.width)?t.clone(Ygt):t.clone(Hgt)}function Kgt(e){if(e._environmentState.useOIT){if(!l(e._executeOITFunction)){let{view:t,context:n}=e;e._executeOITFunction=function(i,o,r,s,a){t.globeDepth.prepareColorTextures(n),t.oit.executeCommands(i,o,r,s,a)}}return e._executeOITFunction}return e.frameState.passes.render?kgt:Ugt}function Jgt(e,t,n){let{frameState:i,context:o}=e,{pick:r,pickVoxel:s}=i.passes,a=r||s,c;!a&&e._environmentState.useInvertClassification&&i.invertClassificationColor.alpha<1&&(c=e._invertClassification);let d=Kgt(e);o.uniformState.updatePass(Ge.TRANSLUCENT);let u=n.commands[Ge.TRANSLUCENT];u.length=n.indices[Ge.TRANSLUCENT],d(e,tp,t,u,c)}function Qgt(e,t,n){let{translucentTileClassification:i,globeDepth:o}=e._view;if(!(n.indices[Ge.CESIUM_3D_TILE_CLASSIFICATION]>0)||!i.isSupported())return;let s=n.commands[Ge.TRANSLUCENT];i.executeTranslucentCommands(e,tp,t,s,o.depthStencilTexture),i.executeClassificationCommands(e,tp,t,n)}function I8(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s=zgt(n);s.near=n.frustum.near,s.far=n.frustum.far;let a=o.passes,c=a.pick||a.pickVoxel;c||jgt(e,t);let{clearGlobeDepth:d,renderTranslucentDepthForPick:u,useDepthPlane:m,useGlobeDepthFramebuffer:p,useInvertClassification:g,usePostProcessSelected:f}=e._environmentState,{globeDepth:x,globeTranslucencyFramebuffer:_,sceneFramebuffer:C,frustumCommandsList:V}=e._view,L=V.length,Z=e._globeTranslucencyState,G=e._depthClearCommand,I=e._stencilClearCommand,v=e._classificationStencilClearCommand,P=e._depthPlane,w=n.position.z;function F(R,E){r.updatePass(E);let X=R.commands[E],A=R.indices[E];for(let N=0;N<A;++N)tp(X[N],e,t);return A}function b(R,E){r.updatePass(E);let X=R.commands[E],A=R.indices[E];for(let N=0;N<A;++N)RTe(X[N],e,t)}for(let R=0;R<L;++R){let E=L-R-1,X=V[E];e.mode===oe.SCENE2D?(n.position.z=w-X.near+1,s.far=Math.max(1,X.far-X.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=E!==0?X.near*e.opaqueFrustumNearOffset:X.near,s.far=X.far,r.updateFrustum(s)),G.execute(i,t),i.stencilBuffer&&I.execute(i,t),Z.translucent?(r.updatePass(Ge.GLOBE),Z.executeGlobeCommands(X,tp,_,e,t)):F(X,Ge.GLOBE),p&&x.executeCopyDepth(i,t),u||(Z.translucent?(r.updatePass(Ge.TERRAIN_CLASSIFICATION),Z.executeGlobeClassificationCommands(X,tp,_,e,t)):F(X,Ge.TERRAIN_CLASSIFICATION)),d&&(G.execute(i,t),m&&P.execute(i,t));let A;if(!g||c||u)A=F(X,Ge.CESIUM_3D_TILE),A>0&&(p&&(x.prepareColorTextures(i,d),x.executeUpdateDepth(i,t,x.depthStencilTexture)),u||(A=F(X,Ge.CESIUM_3D_TILE_CLASSIFICATION)));else{e._invertClassification.clear(i,t);let O=t.framebuffer;t.framebuffer=e._invertClassification._fbo.framebuffer,A=F(X,Ge.CESIUM_3D_TILE),p&&(e._invertClassification.prepareTextures(i),x.executeUpdateDepth(i,t,e._invertClassification._fbo.getDepthStencilTexture())),A=F(X,Ge.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),t.framebuffer=O,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),A>0&&i.stencilBuffer&&v.execute(i,t),A=F(X,Ge.CESIUM_3D_TILE_CLASSIFICATION)}if(A>0&&i.stencilBuffer&&I.execute(i,t),Dgt(e,t,X),F(X,Ge.OPAQUE),E!==0&&e.mode!==oe.SCENE2D&&(s.near=X.near,r.updateFrustum(s)),Jgt(e,t,X),Qgt(e,t,X),i.depthTexture&&e.useDepthPicking&&(p||u)){let O=e._picking.getPickDepth(e,E);O.update(i,x.depthStencilTexture),O.executeCopyDepth(i,t)}if(c||!f)continue;let N=t.framebuffer;t.framebuffer=C.getIdFramebuffer(),s.near=E!==0?X.near*e.opaqueFrustumNearOffset:X.near,s.far=X.far,r.updateFrustum(s),Z.translucent?(r.updatePass(Ge.GLOBE),Z.executeGlobeCommands(X,RTe,_,e,t)):b(X,Ge.GLOBE),d&&(G.framebuffer=t.framebuffer,G.execute(i,t),G.framebuffer=void 0),d&&m&&P.execute(i,t),b(X,Ge.CESIUM_3D_TILE),b(X,Ge.OPAQUE),b(X,Ge.TRANSLUCENT),t.framebuffer=N}}function jgt(e,t){let{context:n,environmentState:i,view:o}=e;if(n.uniformState.updatePass(Ge.ENVIRONMENT),l(i.skyBoxCommand)&&tp(i.skyBoxCommand,e,t),i.isSkyAtmosphereVisible&&tp(i.skyAtmosphereCommand,e,t),i.isSunVisible&&(i.sunDrawCommand.execute(n,t),e.sunBloom&&!i.useWebVR)){let r;i.useGlobeDepthFramebuffer?r=o.globeDepth.framebuffer:i.usePostProcess?r=o.sceneFramebuffer.framebuffer:r=i.originalFramebuffer,e._sunPostProcess.execute(n),e._sunPostProcess.copy(n,r),t.framebuffer=r}i.isMoonVisible&&i.moonCommand.execute(n,t)}function ITe(e){e.context.uniformState.updatePass(Ge.COMPUTE);let t=e._environmentState.sunComputeCommand;l(t)&&t.execute(e._computeEngine);let n=e._computeCommandList;for(let i=0;i<n.length;++i)n[i].execute(e._computeEngine)}function qgt(e,t){e.context.uniformState.updatePass(Ge.OVERLAY);let n=e.context,i=e._overlayCommandList;for(let o=0;o<i.length;++o)i[o].execute(n,t)}function $gt(e,t,n){let{shadowMapCullingVolume:i,isPointLight:o,passes:r}=n,s=r.length,a=[Ge.GLOBE,Ge.CESIUM_3D_TILE,Ge.OPAQUE,Ge.TRANSLUCENT];for(let c=0;c<t.length;++c){let d=t[c];if(e.updateDerivedCommands(d),!(!d.castShadows||a.indexOf(d.pass)<0||!e.isVisible(i,d)))if(o)for(let u=0;u<s;++u)r[u].commandList.push(d);else if(s===1)r[0].commandList.push(d);else{let u=!1;for(let m=s-1;m>=0;--m){let p=r[m].cullingVolume;if(e.isVisible(p,d))r[m].commandList.push(d),u=!0;else if(u)break}}}}function XTe(e){let{shadowState:t,commandList:n}=e.frameState,{shadowsEnabled:i,shadowMaps:o}=t;if(!i)return;let{context:r}=e,{uniformState:s}=r;for(let a=0;a<o.length;++a){let c=o[a];if(c.outOfView)continue;let{passes:d}=c;for(let u=0;u<d.length;++u)d[u].commandList.length=0;$gt(e,n,c);for(let u=0;u<d.length;++u){let m=c.passes[u],{camera:p,commandList:g}=m;s.updateCamera(p),c.updatePass(r,u);for(let f=0;f<g.length;++f){let x=g[f];s.updatePass(x.pass);let _=x.derivedCommands.shadows.castCommands[a];tp(_,e,m.passState)}}}}var eyt=new h;ci.prototype.updateAndExecuteCommands=function(e,t){hyt(this,e,t),this._environmentState.useWebVR?tyt(this,e,t):this._frameState.mode!==oe.SCENE2D||this._mapMode2D===Ql.ROTATE?Ey(!0,this,e):dyt(this,e)};function tyt(e,t){let n=e._view,i=n.camera,r=e._environmentState.renderTranslucentDepthForPick;WTe(e),n.createPotentiallyVisibleSet(e),ITe(e),r||XTe(e);let s=t.viewport;s.x=0,s.y=0,s.width=s.width*.5;let a=io.clone(i,e._cameraVR);a.frustum=i.frustum;let c=i.frustum.near,d=c*y(e.focalLength,5),u=y(e.eyeSeparation,d/30),m=h.multiplyByScalar(a.right,u*.5,eyt);i.frustum.aspectRatio=s.width/s.height;let p=.5*u*c/d;h.add(a.position,m,i.position),i.frustum.xOffset=p,I8(e,t),s.x=s.width,h.subtract(a.position,m,i.position),i.frustum.xOffset=-p,I8(e,t),io.clone(a,i)}var nyt=new he(Math.PI,W.PI_OVER_TWO),iyt=new h,oyt=new h,ryt=new M,syt=new M,ayt=new h,cyt=new h,lyt=new Ke;function dyt(e,t){let{frameState:n,camera:i}=e,{uniformState:o}=e.context,r=t.viewport,s=Ke.clone(r,lyt);t.viewport=s;let a=nyt,c=iyt;e.mapProjection.project(a,c);let u=h.clone(i.position,oyt),m=M.clone(i.transform,syt),p=i.frustum.clone();i._setTransform(M.IDENTITY);let g=M.computeViewportTransformation(s,0,1,ryt),f=i.frustum.projectionMatrix,x=i.positionWC.y,_=h.fromElements(W.sign(x)*c.x-x,0,-i.positionWC.x,ayt),C=Ft.pointToGLWindowCoordinates(f,g,_,cyt);C.x=Math.floor(C.x);let V=s.x,L=s.width;if(x===0||C.x<=V||C.x>=V+L)Ey(!0,e,t);else if(Math.abs(V+L*.5-C.x)<1)s.width=C.x-s.x,i.position.x*=W.sign(i.position.x),i.frustum.right=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!0,e,t),s.x=C.x,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!1,e,t);else if(C.x>V+L*.5){s.width=C.x-V;let Z=i.frustum.right;i.frustum.right=c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!0,e,t),s.x=C.x,s.width=V+L-C.x,i.position.x=-i.position.x,i.frustum.left=-i.frustum.right,i.frustum.right=Z-i.frustum.right*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!1,e,t)}else{s.x=C.x,s.width=V+L-C.x;let Z=i.frustum.left;i.frustum.left=-c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!0,e,t),s.x=V,s.width=C.x-V,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=Z-i.frustum.left*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Ey(!1,e,t)}i._setTransform(m),h.clone(u,i.position),i.frustum=p.clone(),t.viewport=r}function Ey(e,t,n){let i=t._view,{renderTranslucentDepthForPick:o}=t._environmentState;e||(t.frameState.commandList.length=0),WTe(t),i.createPotentiallyVisibleSet(t),e&&(ITe(t),o||XTe(t)),I8(t,n)}var ZTe=new ms;ci.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==oe.SCENE2D&&t.camera.frustum instanceof an||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(Jp.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let C=r.dynamicLighting;s.setDynamicLighting(C),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let _=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(_)?_.drawCommand:void 0,n.sunComputeCommand=l(_)?_.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let d=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===oe.SCENE2D);(n.useDepthPlane=d&&this.mode===oe.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==oe.SCENE2D&&!o;let m=e.mode===oe.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,g=ZTe.planes;for(let _=0;_<5;++_)g[_]=p.planes[_];p=ZTe,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(p,n.sunDrawCommand,m),n.isMoonVisible=this.isVisible(p,n.moonCommand,m);let f=this.specularEnvironmentMaps,x=this._specularEnvironmentCubeMap;l(f)&&x?.url!==f?(x=x&&x.destroy(),this._specularEnvironmentCubeMap=new Wm(f)):!l(f)&&l(x)&&(x.destroy(),this._specularEnvironmentCubeMap=void 0),l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.update(e)};function uyt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Of({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function myt(e){let t=e._frameState,{passes:n,shadowState:i,shadowMaps:o}=t,r=o.length,s=r>0&&!n.pick&&!n.pickVoxel&&e.mode===oe.SCENE3D;if(s!==i.shadowsEnabled&&(++i.lastDirtyTime,i.shadowsEnabled=s),i.lightShadowsEnabled=!1,!!s){for(let a=0;a<r;++a)if(o[a]!==i.shadowMaps[a]){++i.lastDirtyTime;break}i.shadowMaps.length=0,i.lightShadowMaps.length=0;for(let a=0;a<r;++a){let c=o[a];c.update(t),i.shadowMaps.push(c),c.fromLightSource&&(i.lightShadowMaps.push(c),i.lightShadowsEnabled=!0),c.dirty&&(++i.lastDirtyTime,c.dirty=!1)}}}function WTe(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),uyt(e),myt(e),e._globe&&e._globe.render(t)}function hyt(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=o.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let d=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!d?e._sunPostProcess=new dA:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let u=e._clearColorCommand;B.clone(n,u.color),u.execute(i,t);let m=r.useGlobeDepthFramebuffer=l(s.globeDepth);m&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let f=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||f.length>0||f.ambientOcclusion.enabled||f.fxaa.enabled||f.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),f.update(i,o.useLogDepth,e._hdr),f.clear(i),x=r.usePostProcess=f.ready,r.usePostProcessSelected=x&&f.hasSelected),r.isSunVisible&&e.sunBloom&&!d?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):m?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&u.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let C;if(o.invertClassificationColor.alpha===1&&m&&(C=s.globeDepth.framebuffer),l(C)||i.depthTexture){if(e._invertClassification.previousFramebuffer=C,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),o.invertClassificationColor.alpha<1&&g){let V=e._invertClassification.unclassifiedCommand,L=V.derivedCommands;L.oit=p.createDerivedCommands(V,i,L.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}ci.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,{globeDepth:o,translucentTileClassification:r}=i;l(o)&&o.prepareColorTextures(t);let{useOIT:s,useGlobeDepthFramebuffer:a,usePostProcess:c,originalFramebuffer:d}=n,u=a?o.colorFramebufferManager:void 0,m=i.sceneFramebuffer._colorFramebuffer,p=i.sceneFramebuffer.idFramebuffer;if(s&&(e.framebuffer=c?m.framebuffer:d,i.oit.execute(t,e)),r.hasTranslucentDepth&&r.isSupported()&&r.execute(this,e),c){i.sceneFramebuffer.prepareColorTextures(t);let g=m;a&&!s&&(g=u);let f=this.postProcessStages,x=g.getColorTexture(0),_=p.getColorTexture(0),C=y(u,m).getDepthStencilTexture();f.execute(t,x,C,_),f.copy(t,d)}!s&&!c&&a&&(e.framebuffer=d,o.executeCopyColor(t,e))};function fyt(e){let t=e._frameState.afterRender;for(let n=0;n<t.length;++n)t[n]()&&e.requestRender();t.length=0}function pyt(e){if(e.mode===oe.MORPHING)return;let t=e.camera.positionCartographic;return e.getHeight(t)}ci.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===Qe.CLAMP_TO_TERRAIN||t===Qe.RELATIVE_TO_TERRAIN,i=t===Qe.CLAMP_TO_3D_TILE||t===Qe.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=this.primitives.length;for(let a=0;a<s;++a){let c=this.primitives.get(a);if(!c.isCesium3DTileset||!c.show||!c.enableCollision)continue;let d=c.getHeight(e,this);l(d)&&d>o&&(o=d)}}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var E8=new he;ci.prototype.updateHeight=function(e,t,n){let i=()=>{he.clone(e,E8);let g=this.getHeight(e,n);l(g)&&(E8.height=g,t(E8))},o=n===Qe.CLAMP_TO_TERRAIN||n===Qe.RELATIVE_TO_TERRAIN,r=n===Qe.CLAMP_TO_3D_TILE||n===Qe.RELATIVE_TO_3D_TILE,s;!r&&l(this.globe)&&(s=this.globe._surface.updateHeight(e,i));let a={},c=this._ellipsoid,d=g=>{if(o||g.isDestroyed()||!g.isCesium3DTileset)return;let f=g.updateHeight(e,i,c);a[g.id]=f};if(!o){let g=this.primitives.length;for(let f=0;f<g;++f){let x=this.primitives.get(f);d(x)}}let u=this.primitives.primitiveAdded.addEventListener(d),m=this.primitives.primitiveRemoved.addEventListener(g=>{g.isDestroyed()||!g.isCesium3DTileset||(l(a[g.id])&&a[g.id](),delete a[g.id])});return()=>{s=s&&s(),Object.values(a).forEach(g=>g()),a={},u(),m()}};function byt(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===oe.SCENE2D||n===oe.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}ci.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=pyt(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=byt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function gyt(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new r0({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function yyt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function xyt(e){e.primitives.postPassesUpdate(e._frameState),ja.update()}var _yt=new B;function Tyt(e){let t=e._frameState,n=e.context,{uniformState:i}=n,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=wgt;let r=y(e.backgroundColor,B.BLACK);e._hdr&&(r=B.clone(r,_yt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof Tp?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=Ke.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,qgt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function qT(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function Syt(e){return e._picking.updateMostDetailedRayPicks(e)}ci.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=j.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===oe.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(j.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=j.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=W.incrementWrap(t.frameNumber,15e6,1);GTe(this,o,e),t.newFrame=!0}qT(this,yyt),this.primitives.show&&(qT(this,Syt),qT(this,Cyt),qT(this,Vyt),i||qT(this,Lyt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),qT(this,Tyt)),gyt(this,i),qT(this,xyt),fyt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};ci.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};ci.prototype.requestRender=function(){this._renderRequested=!0};ci.prototype.clampLineWidth=function(e){return Math.max(Bt.minimumAliasedLineWidth,Math.min(e,Bt.maximumAliasedLineWidth))};ci.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};ci.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof Gy))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return hA.fromKeyframeNode(o,s,c,a)};ci.prototype.pickMetadata=function(e,t,n,i){let o=this.pick(e);if(!l(o))return;let r=o.detail?.model?.structuralMetadata?.schema,s=AA(r,t,n,i);if(!l(s))return;let a=new MA(t,n,i,s);return this._picking.pickMetadata(this,e,a)};ci.prototype.pickMetadataSchema=function(e){let t=this.pick(e);return l(t)?t.detail?.model?.structuralMetadata?.schema:void 0};ci.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};ci.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};ci.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Cyt(e){let t=e._frameState;R8.camera=t.camera,R8.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,R8)}function Vyt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;Z8.camera=e.preloadFlightCamera,Z8.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,Z8)}function Lyt(e){e.primitives.updateForPass(e._frameState,Fgt)}ci.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};ci.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};ci.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};ci.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};ci.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};ci.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};ci.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};ci.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};ci.prototype.cartesianToCanvasCoordinates=function(e,t){return Mi.worldToWindowCoordinates(this,e,t)};ci.prototype.completeMorph=function(){this._transitioner.completeMorph()};ci.prototype.morphTo2D=function(e){e=y(e,2),this._transitioner.morphTo2D(e,this._ellipsoid)};ci.prototype.morphToColumbusView=function(e){e=y(e,2),this._transitioner.morphToColumbusView(e,this._ellipsoid)};ci.prototype.morphTo3D=function(e){e=y(e,2),this._transitioner.morphTo3D(e,this._ellipsoid)};function Ryt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}ci.prototype.setTerrain=function(e){return Ryt(this,e),e};ci.prototype.isDestroyed=function(){return!1};ci.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),me(this)};var NA=ci;var vYi=T(S(),1);var oYi=T(S(),1),aL=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var sYi=T(S(),1),kA=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_pbrNeutralTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var cYi=T(S(),1),UA=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function cL(e){e=y(e,ne.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=M.fromScale(n),this._modelMatrix=new M,this._command=new tt({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(cL.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});cL.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var X8=new M;cL.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==oe.SCENE3D&&n!==oe.MORPHING||!e.passes.render)return;let i=M.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,X8),o=M.multiplyTransformation(i,Xo.Y_UP_TO_Z_UP,X8),r=M.multiply(this._scaleMatrix,o,X8);M.clone(r,this._modelMatrix);let s=e.context,a=Zyt(this),c=e.globeTranslucencyState.translucent,d=this.perFragmentAtmosphere||c||!l(t)||!t.show,u=this._command;if(!l(u.vertexArray)){let p=zs.createGeometry(new zs({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:We.POSITION_ONLY}));u.vertexArray=ti.fromGeometry({context:s,geometry:p,attributeLocations:Fn.createAttributeLocations(p),bufferUsage:Me.STATIC_DRAW}),u.renderState=Ue.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let m=a|d<<2|c<<3;if(m!==this._flags){this._flags=m;let p=[];a&&p.push("COLOR_CORRECT"),d&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new De({defines:p,sources:[Um,aL,UA]}),f=new De({defines:p,sources:[Um,aL,kA]});this._spSkyAtmosphere=tn.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:f}),u.shaderProgram=this._spSkyAtmosphere}return u};function Zyt(e){return!(W.equalsEpsilon(e.hueShift,0,W.EPSILON7)&&W.equalsEpsilon(e.saturationShift,0,W.EPSILON7)&&W.equalsEpsilon(e.brightnessShift,0,W.EPSILON7))}cL.prototype.isDestroyed=function(){return!1};cL.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),me(this)};var DA=cL;var aHi=T(S(),1);var FYi=T(S(),1),BA=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var MYi=T(S(),1),OA=`in vec3 position; +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function dL(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new tt({modelMatrix:M.clone(M.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}dL.prototype.update=function(e,t){let n=this,{mode:i,passes:o,context:r}=e;if(!this.show||i!==oe.SCENE3D&&i!==oe.MORPHING||!o.render)return;if(this._sources!==this.sources){this._sources=this.sources;let a=this.sources;typeof a.positiveX=="string"?oE(r,this._sources).then(function(c){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=c}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new yr({context:r,source:a}))}let s=this._command;if(!l(s.vertexArray)){s.uniformMap={u_cubeMap:function(){return n._cubeMap}};let a=Ra.createGeometry(Ra.fromDimensions({dimensions:new h(2,2,2),vertexFormat:We.POSITION_ONLY})),c=this._attributeLocations=Fn.createAttributeLocations(a);s.vertexArray=ti.fromGeometry({context:r,geometry:a,attributeLocations:c,bufferUsage:Me.STATIC_DRAW}),s.renderState=Ue.fromCache({blending:un.ALPHA_BLEND})}if(!l(s.shaderProgram)||this._useHdr!==t){let a=new De({defines:[t?"HDR":""],sources:[BA]});s.shaderProgram=tn.fromCache({context:r,vertexShaderSource:OA,fragmentShaderSource:a,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return s};dL.prototype.isDestroyed=function(){return!1};dL.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),me(this)};function lL(e){return rn(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}dL.createEarthSkyBox=function(){return new dL({sources:{positiveX:lL("px"),negativeX:lL("mx"),positiveY:lL("py"),negativeY:lL("my"),positiveZ:lL("pz"),negativeZ:lL("mz")}})};var YA=dL;var DHi=T(S(),1);var lHi=T(S(),1),HA=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var uHi=T(S(),1),zA=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var hHi=T(S(),1),KA=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function QA(){this.show=!0,this._drawCommand=new tt({primitiveType:Fe.TRIANGLES,boundingVolume:new ce,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new ce,this._boundingVolume2D=new ce,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(QA.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Gyt=new D,Eyt=new D,Iyt=new se,JA=new se;QA.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===oe.SCENE2D||i===oe.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let Z=Math.max(r,s);Z=Math.pow(2,Math.ceil(Math.log(Z)/Math.log(2))-2),Z=Math.max(1,Z);let G=n?o.halfFloatingPointTexture?qe.HALF_FLOAT:qe.FLOAT:qe.UNSIGNED_BYTE;this._texture=new Pt({context:o,width:Z,height:Z,pixelFormat:ot.RGBA,pixelDatatype:G}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let I=this,v={u_radiusTS:function(){return I._radiusTS}};this._commands.computeCommand=new Xc({fragmentShaderSource:zA,outputTexture:this._texture,uniformMap:v,persists:!1,owner:this,postExecute:function(){I._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let Z={direction:0},G=new Uint8Array(4*2);G[0]=0,G[1]=0,G[2]=255,G[3]=0,G[4]=255,G[5]=255,G[6]=0,G[7]=255;let I=xt.createVertexBuffer({context:o,typedArray:G,usage:Me.STATIC_DRAW}),v=[{index:Z.direction,vertexBuffer:I,componentsPerAttribute:2,normalize:!0,componentDatatype:Q.UNSIGNED_BYTE}],P=xt.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT});a.vertexArray=new ti({context:o,attributes:v,indexBuffer:P}),a.shaderProgram=tn.fromCache({context:o,vertexShaderSource:KA,fragmentShaderSource:HA,attributeLocations:Z}),a.renderState=Ue.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,d=o.uniformState.sunPositionColumbusView,u=this._boundingVolume,m=this._boundingVolume2D;h.clone(c,u.center),m.center.x=d.z,m.center.y=d.x,m.center.z=d.y,u.radius=W.SOLAR_RADIUS+W.SOLAR_RADIUS*this._glowLengthTS,m.radius=u.radius,i===oe.SCENE3D?ce.clone(u,a.boundingVolume):i===oe.COLUMBUS_VIEW&&ce.clone(m,a.boundingVolume);let p=Mi.computeActualEllipsoidPosition(e,c,JA),g=h.magnitude(h.subtract(p,e.camera.position,JA)),f=o.uniformState.projection,x=Iyt;x.x=0,x.y=0,x.z=-g,x.w=1;let _=M.multiplyByVector(f,x,JA),C=Mi.clipToGLWindowCoordinates(t.viewport,_,Gyt);x.x=W.SOLAR_RADIUS;let V=M.multiplyByVector(f,x,JA),L=Mi.clipToGLWindowCoordinates(t.viewport,V,Eyt);return this._size=D.magnitude(D.subtract(L,C,JA)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};QA.prototype.isDestroyed=function(){return!1};QA.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),me(this)};var jA=QA;var Kzi=T(S(),1);var Izi=T(S(),1);var wTe=T(B9(),1);var OHi=T(S(),1);function Xyt(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var qA=Xyt;var zHi=T(S(),1);var Wyt={modifyFragmentShader:function(t){return t=De.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},uL=Wyt;var $T={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function $A(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=B.clone(B.DARKGRAY),this._highlightColor=B.clone(B.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=$T.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,Ge.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=M.clone(M.IDENTITY),this._modelMatrix=M.clone(M.IDENTITY),this.time=0,this.shadows=_n.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,vr.NONE),this._splittingEnabled=!1,this._error=void 0,Pyt(this,e)}Object.defineProperties($A.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return B.clone(this._highlightColor)},set:function(e){this._highlightColor=B.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=ce.clone(e,this._boundingSphere)}}});function Pyt(e,t){let n=x_.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=Ap.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=$T.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=B.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var vyt=new h,wyt=new h,Fyt=new h,PTe,MB;function Ayt(e){if(!l(MB)){PTe=new wTe.default(0),MB=new Array(e);for(let t=0;t<e;++t)MB[t]=PTe.random()}return MB}function Myt(e){let n=e.length/3,i=Math.min(n,20),o=Ayt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,vyt),c=h.fromElements(s,s,s,wyt);for(let u=0;u<i;++u){let m=Math.floor(o[u]*n),p=h.unpack(e,m*3,Fyt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let d=ce.fromCornerPoints(a,c);return d.radius+=W.EPSILON2,d}function vTe(e,t){let n=Q.fromTypedArray(e);return n===Q.INT||n===Q.UNSIGNED_INT||n===Q.DOUBLE?(St("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var Nyt=new se,kyt=new se,Uyt=new B,FTe=0,NB=1,F8=2,ATe=3,Dyt=4,W8=new M,Byt=new M;function Oyt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,d=i.styleableProperties,u=l(d),m=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,f=e._isOctEncodedDraco,x=e._quantizedRange,_=e._octEncodedRange,C=e._isRGB565,V=e._isTranslucent,L=e._hasColors,Z=e._hasNormals,G=e._hasBatchIds,I,v,P=[],w={};if(e._styleableShaderAttributes=w,u){let U=Dyt;for(let Y in d)if(d.hasOwnProperty(Y)){let k=d[Y],H=vTe(k.typedArray,Y);I=k.componentCount,v=Q.fromTypedArray(H);let J=xt.createVertexBuffer({context:n,typedArray:H,usage:Me.STATIC_DRAW});e._geometryByteLength+=J.sizeInBytes;let te={index:U,vertexBuffer:J,componentsPerAttribute:I,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0};P.push(te),w[Y]={location:U,componentCount:I},++U}}let F=xt.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Me.STATIC_DRAW});e._geometryByteLength+=F.sizeInBytes;let b;L&&(b=xt.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Me.STATIC_DRAW}),e._geometryByteLength+=b.sizeInBytes);let R;Z&&(R=xt.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Me.STATIC_DRAW}),e._geometryByteLength+=R.sizeInBytes);let E;G&&(c.typedArray=vTe(c.typedArray,"batchIds"),E=xt.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Me.STATIC_DRAW}),e._geometryByteLength+=E.sizeInBytes);let X=[];if(m?v=Q.UNSIGNED_SHORT:p?v=x<=255?Q.UNSIGNED_BYTE:Q.UNSIGNED_SHORT:v=Q.FLOAT,X.push({index:FTe,vertexBuffer:F,componentsPerAttribute:3,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(m||p?e._boundingSphere=ce.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=Myt(r.typedArray)),L)if(C)X.push({index:NB,vertexBuffer:b,componentsPerAttribute:1,componentDatatype:Q.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let U=V?4:3;X.push({index:NB,vertexBuffer:b,componentsPerAttribute:U,componentDatatype:Q.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}Z&&(g?(I=2,v=Q.UNSIGNED_BYTE):f?(I=2,v=_<=255?Q.UNSIGNED_BYTE:Q.UNSIGNED_SHORT):(I=3,v=Q.FLOAT),X.push({index:F8,vertexBuffer:R,componentsPerAttribute:I,componentDatatype:v,normalize:!1,offsetInBytes:0,strideInBytes:0})),G&&X.push({index:ATe,vertexBuffer:E,componentsPerAttribute:1,componentDatatype:Q.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),u&&(X=X.concat(P));let A=new ti({context:n,attributes:X}),N={depthTest:{enabled:!0}},O={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===Ge.CESIUM_3D_TILE&&(N.stencilTest=Ot.setCesium3DTileBit(),N.stencilMask=Ot.CESIUM_3D_TILE_MASK,O.stencilTest=Ot.setCesium3DTileBit(),O.stencilMask=Ot.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ue.fromCache(N),e._translucentRenderState=Ue.fromCache(O),e._drawCommand=new tt({boundingVolume:new ce,cull:e._cull,modelMatrix:new M,primitiveType:Fe.POINTS,vertexArray:A,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:V?e._translucentRenderState:e._opaqueRenderState,pass:V?Ge.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function Yyt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=Nyt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,d;t.mode===oe.SCENE2D||c instanceof an?d=Number.POSITIVE_INFINITY:d=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=d}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return B.TRANSPARENT;let c=B.clone(a.edgeColor,Uyt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return M.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);M.multiply(n.uniformState.view3D,c,W8);let d=M.multiply(W8,a.modelMatrix,W8);return M.inverseTranspose(d,Byt)}};uL.addUniforms(e,s),(i||o||r)&&(s=Tt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=kyt;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function P8(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function v8(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function w8(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var Hyt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function zyt(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,d=e._isQuantizedDraco,u=e._isOctEncoded16P,m=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,f=e._hasColors,x=e._hasNormals,_=e._hasBatchIds,C=e._backFaceCulling,V=e._normalShading,L=e._drawCommand.vertexArray,Z=e.clippingPlanes,G=e._attenuation,I,v,P,w=g,F=Ye(Hyt),b={},R=e._styleableShaderAttributes;for(o in R)R.hasOwnProperty(o)&&(r=R[o],F[o]=`czm_3dtiles_property_${r.location}`,b[r.location]=r);if(a){let le={translucent:!1},ye="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";I=n.getColorShaderFunction(`getColorFromStyle${ye}`,F,le),v=n.getShowShaderFunction(`getShowFromStyle${ye}`,F,le),P=n.getPointSizeShaderFunction(`getPointSizeFromStyle${ye}`,F,le),l(I)&&le.translucent&&(w=!0)}e._styleTranslucent=w;let E=l(I),X=l(v),A=l(P),N=e.isClipped,O=[],U=[];E&&(P8(I,O),v8(I,U)),X&&(P8(v,O),v8(v,U)),A&&(P8(P,O),v8(P,U));let Y=U.indexOf("COLOR")>=0,k=U.indexOf("NORMAL")>=0;if(k&&!x)throw new de("Style references the NORMAL semantic but the point cloud does not have normals");for(o in R)if(R.hasOwnProperty(o)){r=R[o];let le=O.indexOf(r.location)>=0,ye=w8(L,r.location);ye.enabled=le}let H=f&&(!E||Y);if(f){let le=w8(L,NB);le.enabled=H}let J=x&&(V||C||k);if(x){let le=w8(L,F8);le.enabled=J}let te={a_position:FTe};H&&(te.a_color=NB),J&&(te.a_normal=F8),_&&(te.a_batchId=ATe);let z="",q=O.length;for(i=0;i<q;++i){let le=O[i];r=b[le];let ye=r.componentCount,Te=`czm_3dtiles_property_${le}`,Xe;ye===1?Xe="float":Xe=`vec${ye}`,z+=`in ${Xe} ${Te}; +`,te[Te]=r.location}Yyt(e,t);let ee=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;ee+=`float u_pointSize; +float tiles3d_tileset_time; +`,G&&(ee+=`float u_geometricError; +float u_depthMultiplier; +`),ee+=z,H&&(g?ee+=`in vec4 a_color; +`:p?ee+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:ee+=`in vec3 a_color; +`),J&&(u||m?ee+=`in vec2 a_normal; +`:ee+=`in vec3 a_normal; +`),_&&(ee+=`in float a_batchId; +`),(c||d||m)&&(ee+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),E&&(ee+=I),X&&(ee+=v),A&&(ee+=P),ee+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,G&&(ee+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),H?g?ee+=` vec4 color = a_color; +`:p?ee+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:ee+=` vec4 color = vec4(a_color, 1.0); +`:ee+=` vec4 color = u_constantColor; +`,c||d?ee+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:ee+=` vec3 position = a_position; +`,ee+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,J?(u?ee+=` vec3 normal = czm_octDecode(a_normal); +`:m?ee+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:ee+=` vec3 normal = a_normal; +`,ee+=` vec3 normalEC = czm_normal * normal; +`):ee+=` vec3 normal = vec3(1.0); +`,E&&(ee+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),X&&(ee+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),A?ee+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:G?ee+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:ee+=` gl_PointSize = u_pointSize; +`,ee+=` color = color * u_highlightColor; +`,J&&V&&(ee+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),ee+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,J&&C&&(ee+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),X&&(ee+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),ee+=`} +`;let fe=`in vec4 v_color; +`;N&&(fe+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,fe+=` +`,fe+=qb(Z,s),fe+=` +`),fe+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,N&&(fe+=qA("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),fe+=`} +`,e.splitDirection!==vr.NONE&&(fe=uL.modifyFragmentShader(fe)),l(e._vertexShaderLoaded)&&(ee=e._vertexShaderLoaded(ee)),l(e._fragmentShaderLoaded)&&(fe=e._fragmentShaderLoaded(fe));let _e=e._drawCommand;l(_e.shaderProgram)&&_e.shaderProgram.destroy(),_e.shaderProgram=tn.fromCache({context:s,vertexShaderSource:ee,fragmentShaderSource:fe,attributeLocations:te});try{_e.shaderProgram._bind()}catch{throw new de("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function Kyt(e,t){if(e._decodingState===$T.READY)return!1;if(e._decodingState===$T.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Op.decodePointCloud(i,t);l(o)&&(e._decodingState=$T.DECODING,o.then(function(r){e._decodingState=$T.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,d=l(r.NORMAL)?r.NORMAL.array:void 0,u=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,m=l(s)&&l(r.POSITION.data.quantization),p=l(d)&&l(r.NORMAL.data.quantization);if(m){let _=r.POSITION.data.quantization,C=_.range;e._quantizedVolumeScale=h.fromElements(C,C,C),e._quantizedVolumeOffset=h.unpack(_.minValues),e._quantizedRange=(1<<_.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,f=i.batchTableProperties;for(let _ in f)if(f.hasOwnProperty(_)){let C=r[_];l(g)||(g={}),g[_]={typedArray:C.array,componentCount:C.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let x=y(c,a);l(x)&&(n.colors={typedArray:x}),l(d)&&(n.normals={typedArray:d}),l(u)&&(n.batchIds={typedArray:u}),n.styleableProperties=g}).catch(function(r){e._decodingState=$T.FAILED,e._error=r}))}return!0}var Jyt=new se,Qyt=new h;$A.prototype.update=function(e){let t=e.context;if(l(this._error)){let d=this._error;throw this._error=void 0,d}if(Kyt(this,t))return;let i=!1,o=!M.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(Oyt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){M.clone(this.modelMatrix,this._modelMatrix);let d=this._drawCommand.modelMatrix;if(M.clone(this._modelMatrix,d),l(this._rtcCenter)&&M.multiplyByTranslation(d,this._rtcCenter,d),l(this._quantizedVolumeOffset)&&M.multiplyByTranslation(d,this._quantizedVolumeOffset,d),e.mode!==oe.SCENE3D){let m=e.mapProjection,p=M.getColumn(d,3,Jyt);se.equals(p,se.UNIT_W)||Ft.basisTo2D(m,d,d)}let u=this._drawCommand.boundingVolume;if(ce.clone(this._boundingSphere,u),this._cull){let m=u.center;M.multiplyByPoint(d,m,m);let p=M.getScale(d,Qyt);u.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==vr.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&zyt(this,e,this._style),this._drawCommand.castShadows=_n.castShadows(this.shadows),this._drawCommand.receiveShadows=_n.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?Ge.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};$A.prototype.isDestroyed=function(){return!1};$A.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),me(this)};var eM=$A;function tS(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this.shadows=y(e.shadows,_n.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new lf(e.shading),this.style=e.style,this.frameFailed=new be,this.frameChanged=new be,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new tb,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(tS.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){hs.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function jyt(e){return`uniform vec4 czm_pickColor; +${e}`}function qyt(e){return function(t){return Tt(t,{czm_pickColor:function(){return e._pickId.color}})}}function $yt(){return"czm_pickColor"}tS.prototype.makeStyleDirty=function(){this._styleDirty=!0};tS.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var ext=new j;function M8(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function eS(e,t){return e._intervals.indexOf(t.start)}function txt(e,t){let n=e._intervals,i=e._clock,o=M8(e);if(o===0)return;let r=e._getAverageLoadTime(),s=j.addSeconds(i.currentTime,r*o,ext),a=n.indexOf(s),c=eS(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function nxt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function ixt(e,t,n){let i=M8(e),o=eS(e,t),r=eS(e,n);return i>=0?o>=r:o<=r}function NTe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function oxt(e,t,n){let i=eS(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?M.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:_i(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,Ee.fetchArrayBuffer({url:c}).then(function(d){r.pointCloud=new eM({arrayBuffer:d,cull:!0,fragmentShaderLoaded:jyt,uniformMapLoaded:qyt(e),pickIdLoaded:$yt})}).catch(NTe(e,c))}return r}function rxt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function sxt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(kTe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(_i()-t.timestamp)/1e3;rxt(e,a)}}t.touchedFrameNumber=i.frameNumber}var axt=new M;function cxt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?W.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function lxt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var dxt=new lf;function kTe(e,t,n,i){let o=y(e.shading,dxt),r=t.pointCloud,s=y(t.transform,M.IDENTITY);r.modelMatrix=M.multiplyTransformation(e.modelMatrix,s,axt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=cxt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=lxt(e);try{r.update(i)}catch(a){NTe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function A8(e,t,n,i){let o=oxt(e,t,i);sxt(e,o,n,i)}function uxt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function UTe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function mxt(e,t){let n=eS(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function MTe(e,t,n,i,o){return l(n)?n.ready?!0:(A8(e,t,i,o),n.ready):!1}function hxt(e,t,n,i,o){let r,s,a,c=e._intervals,d=e._frames,u=eS(e,n),m=eS(e,t);if(u>=m){for(r=u;r>=m;--r)if(s=c.get(r),a=d[r],MTe(e,s,a,i,o))return s}else for(r=u;r<=m;++r)if(s=c.get(r),a=d[r],MTe(e,s,a,i,o))return s;return t}function fxt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var mL={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};tS.prototype.update=function(e){if(e.mode===oe.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=j.clone(e.time));let t=Math.max(j.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&fxt(this,o,s),mL.timeSinceLoad=t,mL.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,d=e.commandList,u=d.length,m=this._previousInterval,p=this._nextInterval,g=nxt(this);if(!l(g))return;let f=!1,x=M8(this),_=x===0;x!==this._clockMultiplier&&(f=!0,this._clockMultiplier=x),(!l(m)||_)&&(m=g),(!l(p)||f||ixt(this,g,p))&&(p=txt(this,g)),m=hxt(this,m,g,mL,e);let C=mxt(this,m);l(C)||(A8(this,m,mL,e),C=this._lastRenderedFrame),l(C)&&kTe(this,C,mL,e),l(p)&&A8(this,p,mL,e);let V=this;l(C)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(C)&&C!==this._lastRenderedFrame&&V.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return V.frameChanged.raiseEvent(V),!0}),this._previousInterval=m,this._nextInterval=p,this._lastRenderedFrame=C;let L=this._totalMemoryUsageInBytes,Z=this.maximumMemoryUsage*1024*1024;L>Z&&UTe(this,uxt(e));let I=d.length-u;l(a)&&a.attenuation&&a.eyeDomeLighting&&I>0&&c.update(e,u,a,this.boundingSphere)};tS.prototype.isDestroyed=function(){return!1};tS.prototype.destroy=function(){return UTe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),me(this)};var hL=tS;function DTe(e,t){if(l(t)){let n=t.clock;l(n)&&n.getValue(e)}}function pxt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function BTe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function OTe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=BTe(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function YTe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Go(e,t){e=Xn(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=zt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=zt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?Xn(t.creditContainer):n;c.appendChild(a);let d=l(t.creditViewport)?Xn(t.creditViewport):n,u=y(t.showRenderLoopErrors,!0),m=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=d,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=u,this._resolutionScale=1,this._useBrowserRecommendedResolution=m,this._forceResize=!1,this._entityView=void 0,this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._trackedEntityChanged=new be,this._allowDataSourcesToSuspendAnimation=!0,this._clock=l(t.clock)?t.clock:new oh,l(t.shouldAnimate)&&(this._clock.shouldAnimate=t.shouldAnimate),OTe(this);try{let p=y(t.ellipsoid,ne.default),g=new NA({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:d,ellipsoid:p,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=g,g.camera.constrainedAxis=h.UNIT_Z,BTe(this),YTe(this);let f=t.globe;l(f)||(f=new kw(p)),f!==!1&&(g.globe=f,g.globe.shadows=y(t.terrainShadows,_n.RECEIVE_ONLY));let x=t.skyBox;!l(x)&&ne.WGS84.equals(p)&&(x=YA.createEarthSkyBox()),x!==!1&&(g.skyBox=x,g.sun=new jA,ne.WGS84.equals(p)&&(g.moon=new Hw));let _=t.skyAtmosphere;!l(_)&&ne.WGS84.equals(p)&&(_=new DA(p),_.show=t.globe!==!1&&f.show),_!==!1&&(g.skyAtmosphere=_);let C=t.baseLayer;t.globe!==!1&&C!==!1&&(l(C)||(C=ka.fromWorldImagery()),g.imageryLayers.add(C)),l(t.terrainProvider)&&t.globe!==!1&&(g.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&g.setTerrain(t.terrain),this._screenSpaceEventHandler=new Qd(i),l(t.sceneMode)&&(t.sceneMode===oe.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===oe.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let V=this;this._onRenderError=function(P,w){V._useDefaultRenderLoop=!1,V._renderLoopRunning=!1,V._showRenderLoopErrors&&V.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,w)},g.renderError.addEventListener(this._onRenderError);let L=t.dataSources,Z=!1;l(L)||(L=new BP,Z=!0);let G=new Zv({scene:g,dataSourceCollection:L}),I=new lr;this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=t.automaticallyTrackDataSourceClocks??!0,this._dataSourceCollection=L,this._destroyDataSourceCollection=Z,this._dataSourceDisplay=G,this._eventHelper=I,this._canAnimateUpdateCallback=this._updateCanAnimate,I.add(this._clock.onTick,Go.prototype._onTick,this),I.add(g.morphStart,Go.prototype._clearTrackedObject,this),I.add(L.dataSourceAdded,Go.prototype._onDataSourceAdded,this),I.add(L.dataSourceRemoved,Go.prototype._onDataSourceRemoved,this),I.add(g.postRender,Go.prototype._postRender,this);let v=L.length;for(let P=0;P<v;P++)this._dataSourceAdded(L,L.get(P));this._dataSourceAdded(void 0,G.defaultDataSource),I.add(L.dataSourceAdded,Go.prototype._dataSourceAdded,this),I.add(L.dataSourceRemoved,Go.prototype._dataSourceRemoved,this)}catch(p){throw u&&this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',p),p}}Object.defineProperties(Go.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},camera:{get:function(){return this._scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&pxt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,N8(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===oe.COLUMBUS_VIEW||n===oe.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===oe.COLUMBUS_VIEW||n===oe.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(M.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,DTe(this.clock,e))}}});Go.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let d=l(t),u=l(n);if(d||u){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),u){let f=Mf(n);d||(typeof n=="string"&&(n=new Error(n)),t=Mf({name:n.name,message:n.message}),f=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${f}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let _=document.createElement("span");_.className="cesium-widget-errorPanel-more-details",_.appendChild(document.createTextNode("See more...")),x.appendChild(_),x.onclick=function(C){x.removeChild(_),x.appendChild(document.createTextNode(f)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}g.innerHTML=`<p>${t}</p>`}let m=document.createElement("div");m.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(m);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},m.appendChild(p),i.appendChild(o)};Go.prototype.isDestroyed=function(){return!1};Go.prototype.destroy=function(){let e=this.dataSources,t=e.length;for(let n=0;n<t;n++)this._dataSourceRemoved(e,e.get(n));this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),this._eventHelper.removeAll(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),me(this)};Go.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,OTe(this),YTe(this),this._scene.requestRender())};Go.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};Go.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Go.prototype._onEntityCollectionChanged,this)};Go.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Go.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0)};Go.prototype._updateCanAnimate=function(e){this._clock.canAnimate=e};var fL=new ce;Go.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&this._canAnimateUpdateCallback(n);let i=this._entityView;if(l(i)){let o=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(o,!0,fL)===ft.DONE&&i.update(t,fL)}};Go.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0)}};Go.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Go.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&DTe(this.clock,e)};Go.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Go.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Go.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Go.prototype.zoomTo=function(e,t){return HTe(this,e,{offset:t},!1)};Go.prototype.flyTo=function(e,t){return HTe(this,e,t,!0)};function HTe(e,t,n,i){N8(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof ka){let s;l(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return _T(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof ua||r instanceof hL||r instanceof Gy){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=r.values??r,l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function tM(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function N8(e){let t=e._zoomPromise;l(t)&&(tM(e),e._completeZoom(!1))}Go.prototype._postRender=function(){bxt(this),gxt(this)};function bxt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===oe.MORPHING)return;let n=e.scene,i=n.camera,o=e._zoomOptions??{},r;function s(u){l(o.offset)||(o.offset=new Qu(0,-.5,u.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(M.IDENTITY),e._completeZoom(!0)),tM(e)}if(t instanceof hL){if(l(t.boundingSphere)){s(t.boundingSphere);return}let u=t.frameChanged.addEventListener(function(m){s(m.boundingSphere),u()});return}if(t instanceof ua||t instanceof Gy){s(t.boundingSphere);return}if(t instanceof he){r={destination:n.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),tM(e);return}let a=t,c=[];for(let u=0,m=a.length;u<m;u++){let p=e._dataSourceDisplay.getBoundingSphere(a[u],!1,fL);if(p===ft.PENDING)return;p!==ft.FAILED&&c.push(ce.clone(fL))}if(c.length===0){N8(e);return}e.trackedEntity=void 0;let d=ce.fromBoundingSpheres(c);e._zoomIsFlight?(tM(e),i.flyToBoundingSphere(d,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(d,o.offset),i.lookAtTransform(M.IDENTITY),tM(e),e._completeZoom(!0))}function gxt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=K.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,fL);if(r===ft.PENDING)return;let s=o.mode;(s===oe.COLUMBUS_VIEW||s===oe.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===oe.COLUMBUS_VIEW||s===oe.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ft.FAILED?fL:void 0;e._entityView=new Ev(t,o,o.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var nM=Go;var WKi=T(S(),1),iM=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var vKi=T(S(),1),oM=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var FKi=T(S(),1),rM=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var MKi=T(S(),1),sM=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var kKi=T(S(),1),aM=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;var hJi=T(S(),1);var HKi=T(S(),1);function gL(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var nS=new ae;function yxt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}gL.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)yxt(e,g,p,s)||s.push(new pL(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,nS);let a=nS.west,c=nS.north;r.tileXYToRectangle(i,o,e,nS);let d=nS.east,u=nS.south,m=new Cxt(e,a,u,d,c);for(let p=0;p<s.length;++p){let g=s[p];k8(g.extent,m)&&Vxt(this._maximumLevel,g,m)}};gL.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(bL(i.extent,e)){t=i;break}}return l(t)?cM(void 0,t,e):-1};var xxt=[],_xt=[],Txt=new ae,Sxt=new ae;gL.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=xxt;t.length=0,e.east<e.west?(t.push(ae.fromRadians(-Math.PI,e.south,e.east,e.north,Txt)),t.push(ae.fromRadians(e.west,e.south,Math.PI,e.north,Sxt))):t.push(e);let n=_xt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)lM(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var zTe=new he;gL.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,nS);return ae.center(i,zTe),this.computeMaximumLevelAtPosition(zTe)>=e};gL.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function pL(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(pL.prototype,{nw:{get:function(){return this._nw||(this._nw=new pL(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new pL(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new pL(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new pL(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function Cxt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function k8(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function Vxt(e,t,n){for(;t.level<e;)if(kB(t.nw.extent,n))t=t.nw;else if(kB(t.ne.extent,n))t=t.ne;else if(kB(t.sw.extent,n))t=t.sw;else if(kB(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Eo(t.rectangles,n.level,Lxt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Lxt(e,t){return e.level-t}function kB(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function bL(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function cM(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&bL(t._nw.extent,n),s=t._ne&&bL(t._ne.extent,n),a=t._sw&&bL(t._sw.extent,n),c=t._se&&bL(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,cM(t,t._nw,n))),s&&(i=Math.max(i,cM(t,t._ne,n))),a&&(i=Math.max(i,cM(t,t._sw,n))),c&&(i=Math.max(i,cM(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];bL(a,n)&&(i=a.level)}t=t.parent}return i}function lM(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||k8(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Rxt(e[s.level],s)}lM(e,t._nw,n),lM(e,t._ne,n),lM(e,t._sw,n),lM(e,t._se,n)}function Rxt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];k8(o,t)?(o.west<t.west&&n.push(new ae(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new ae(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new ae(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new ae(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var Xh=gL;var Zxt=15;function KTe(e){this.ellipsoid=y(e.ellipsoid,ne.default),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}KTe.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function Gxt(e,t){let n=t.copyrightText;l(n)&&(e.credit=new Et(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=ae.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Yi(s);else if(o===3857){let d=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>d&&(t.extent.xmax=d),t.extent.ymax>d&&(t.extent.ymax=d),t.extent.xmin<-d&&(t.extent.xmin=-d),t.extent.ymin<-d&&(t.extent.ymin=-d),s.rectangleSouthwestInMeters=new D(r.xmin,r.ymin),s.rectangleNortheastInMeters=new D(r.xmax,r.ymax),e.tilingScheme=new ns(s)}else throw new de("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new de("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?$u.LERC:$u.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Xh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Xh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function Ext(e,t,n){try{let i=await t.fetchJson();Gxt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Zo.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function Iy(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new be}Object.defineProperties(Iy.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});Iy.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=Ee.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new KTe(t);await Ext(o,i);let r=new Iy(t);return o.build(r),r._resource=n,r};Iy.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(U8(this,n+1,e*2,t*2))){let m=JTe(this,n+1,e*2,t*2);s=m.promise,a=m.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let d=this,u=this._tilesAvailable;return Promise.all([c,s]).then(function(m){return new Ma({buffer:m[0],width:d._width,height:d._height,childTileMask:r?u.computeChildMaskForTile(n,e,t):Zxt,structure:d._terrainDataStructure,encoding:d._encoding})}).catch(async function(m){if(l(a)&&a.state===jn.CANCELLED){i.cancel();try{await i.deferred?.promise}catch{}return i.state=jn.CANCELLED,Promise.reject(m)}return Promise.reject(m)})};function U8(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}Iy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Iy.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=U8(this,n,e,t);if(l(i))return i;JTe(this,n,e,t)};Iy.prototype.loadTileDataAvailability=function(e,t,n){};function Ixt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},d=new D(e.x+1,e.y+1),u=!1,m=!1;for(;!(u&&m);){let p=d.x,g=m?d.y+1:d.y;if(!u){for(let f=e.y;f<g;++f)if(i[f*t+d.x]!==s){u=!0;break}u?(a.push(new D(d.x,e.y)),--d.x,--p,c.endX=d.x):d.x===o?(c.endX=d.x,u=!0):++d.x}if(!m){let f=d.y*t;for(let x=e.x;x<=p;++x)if(i[f+x]!==s){m=!0;break}m?(a.push(new D(e.x,d.y)),--d.y,c.endY=d.y):d.y===r?(c.endY=d.y,m=!0):++d.y}}return{endingIndices:a,range:c,value:s}}function Xxt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new D(0,0)];for(;a.length>0;){let c=a.pop(),d=Ixt(c,n,i,o);if(d.value===1){let m=d.range;m.startX+=e,m.endX+=e,m.startY+=t,m.endY+=t,r.push(m)}let u=d.endingIndices;u.length>0&&(a=a.concat(u))}return r}function JTe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let d=new Ho({throttle:!1,throttleByServer:!0,type:cs.TERRAIN}),m=e._resource.getDerivedResource({url:a,request:d}).fetchJson();return l(m)?(m=m.then(function(p){let g=Xxt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let f=e._tilesAvailable;for(let x=0;x<g.length;++x){let _=g[x];f.addAvailableTileRange(t,_.startX,_.startY,_.endX,_.endY)}return U8(e,t,n,i)}),c[a]={promise:m,request:d},m=m.finally(function(p){return delete c[a],p}),{promise:m,request:d}):{}}var D8=Iy;var _Ji=T(S(),1);var QTe="https://dev.virtualearth.net/REST/v1/Locations";function B8(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new Ee({url:QTe,queryParameters:n}),this._credit=new Et('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(B8.prototype,{url:{get:function(){return QTe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});B8.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],d=r[3];return{displayName:o.name,destination:ae.fromDegrees(a,s,d,c)}})})};var O8=B8;var CJi=T(S(),1);function Y8(){}Object.defineProperties(Y8.prototype,{credit:{get:function(){}}});Y8.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var H8=Y8;var WJi=T(S(),1);var Wxt=new se,jTe=new h,yL=new h;function Pxt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new h);let d=(a-i)*o;return h.lerp(r,s,d,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=Wxt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,d,u,m,p;return r===0?(c=t[0],d=t[1],u=e.firstTangent,m=h.subtract(t[2],c,jTe),h.multiplyByScalar(m,.5,m),p=M.multiplyByVector(gg.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],d=t[r+1],m=e.lastTangent,u=h.subtract(d,t[r-1],jTe),h.multiplyByScalar(u,.5,u),p=M.multiplyByVector(gg.hermiteCoefficientMatrix,a,a)):(c=t[r-1],d=t[r],u=t[r+1],m=t[r+2],p=M.multiplyByVector(Xy.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(d,p.y,yL),h.add(o,yL,o),h.multiplyByScalar(u,p.z,yL),h.add(o,yL,o),h.multiplyByScalar(m,p.w,yL),h.add(o,yL,o)}}var vxt=new h,wxt=new h;function Xy(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=vxt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=wxt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=Pxt(this),this._lastTimeIndex=0}Object.defineProperties(Xy.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});Xy.catmullRomCoefficientMatrix=new M(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);Xy.prototype.findTimeInterval=to.prototype.findTimeInterval;Xy.prototype.wrapTime=to.prototype.wrapTime;Xy.prototype.clampTime=to.prototype.clampTime;Xy.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var z8=Xy;var CQi=T(S(),1);var qJi=T(S(),1);var AJi=T(S(),1);var UB={};UB.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let d=s+a+c,u,m,p,g,f,x;return d===1?s?(u=(e-n)/(i-n),m=(e-n)/(o-n),r.push(1),r.push(2),m!==1&&(r.push(-1),r.push(0),r.push(2),r.push(m)),u!==1&&(r.push(-1),r.push(0),r.push(1),r.push(u))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(f=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),f!==1&&(r.push(-1),r.push(2),r.push(0),r.push(f))):d===2?!s&&n!==e?(g=(e-i)/(n-i),f=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(f)):!a&&i!==e?(x=(e-o)/(i-o),u=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(u)):!c&&o!==e&&(m=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(m),r.push(-1),r.push(1),r.push(2),r.push(p)):d!==3&&(r.push(0),r.push(1),r.push(2)),r};UB.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let d=n-s,u=s-o,m=r-a,p=i-a,g=1/(m*d+u*p),f=t-a,x=e-s,_=(m*x+u*f)*g,C=(-p*x+d*f)*g,V=1-_-C;return l(c)?(c.x=_,c.y=C,c.z=V,c):new h(_,C,V)};UB.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let d=(s-o)*(t-r)-(a-r)*(e-o),u=(n-e)*(t-r)-(i-t)*(e-o),m=(a-r)*(n-e)-(s-o)*(i-t);if(m===0)return;let p=d/m,g=u/m;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new D),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var p0=UB;function Wy(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=BB(e.westIndices,o,t),this._southIndices=BB(e.southIndices,r,t),this._eastIndices=BB(e.eastIndices,o,t),this._northIndices=BB(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(Wy.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var DB=[];function BB(e,t,n){DB.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)DB[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(DB.sort(t),Ae.createTypedArray(n,DB)):e}var qTe="createVerticesFromQuantizedTerrainMesh",Fxt=new bi(qTe),Axt=new bi(qTe,Th.maximumAsynchronousTasks);Wy.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,d=t.tileXYToRectangle(n,i,o),m=(a?Axt:Fxt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:d,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(m))return;let p=this;return Promise.resolve(m).then(function(g){let f=p._quantizedVertices.length/3,x=f+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,_=Ae.createTypedArray(x,g.indices),C=new Float32Array(g.vertices),V=g.center,L=g.minimumHeight,Z=g.maximumHeight,G=p._boundingSphere,I=p._orientedBoundingBox,v=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),P=g.vertexStride,w=_c.clone(g.encoding);return p._mesh=new tm(V,C,_,g.indexCountWithoutSkirts,f,L,Z,G,v,P,I,w,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Mxt=new bi("upsampleQuantizedTerrainMesh",Th.maximumAsynchronousTasks);Wy.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,d=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=Mxt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:d,childRectangle:m,ellipsoid:u});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let f=c?g*.5:this._westSkirtHeight,x=d?g*.5:this._southSkirtHeight,_=c?this._eastSkirtHeight:g*.5,C=d?this._northSkirtHeight:g*.5,V=this._credits;return Promise.resolve(p).then(function(L){let Z=new Uint16Array(L.vertices),G=Ae.createTypedArray(Z.length/3,L.indices),I;return l(L.encodedNormals)&&(I=new Uint8Array(L.encodedNormals)),new Wy({quantizedVertices:Z,indices:G,encodedNormals:I,minimumHeight:L.minimumHeight,maximumHeight:L.maximumHeight,boundingSphere:ce.clone(L.boundingSphere),orientedBoundingBox:En.clone(L.orientedBoundingBox),horizonOcclusionPoint:h.clone(L.horizonOcclusionPoint),westIndices:L.westIndices,southIndices:L.southIndices,eastIndices:L.eastIndices,northIndices:L.northIndices,westSkirtHeight:f,southSkirtHeight:x,eastSkirtHeight:_,northSkirtHeight:C,childTileMask:0,credits:V,createdByUpsampling:!0})})};var K8=32767,$Te=new h;Wy.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1);i*=K8;let o=W.clamp((n-e.south)/e.height,0,1);return o*=K8,l(this._mesh)?Dxt(this,i,o):Bxt(this,i,o)};function eSe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),d=Math.max(n,o,s),u=Math.min(i,r,a),m=Math.max(i,r,a);return e>=c&&e<=d&&t>=u&&t<=m}var Nxt=new D,kxt=new D,Uxt=new D;function Dxt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,d,Nxt),g=r.decodeTextureCoordinates(o,u,kxt),f=r.decodeTextureCoordinates(o,m,Uxt);if(eSe(t,n,p.x,p.y,g.x,g.y,f.x,f.y)){let x=p0.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,f.x,f.y,$Te);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let _=r.decodeHeight(o,d),C=r.decodeHeight(o,u),V=r.decodeHeight(o,m);return x.x*_+x.y*C+x.z*V}}}}function Bxt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=i[d],g=i[u],f=i[m],x=o[d],_=o[u],C=o[m];if(eSe(t,n,p,x,g,_,f,C)){let V=p0.computeBarycentricCoordinates(t,n,p,x,g,_,f,C,$Te);if(V.x>=-1e-15&&V.y>=-1e-15&&V.z>=-1e-15){let L=V.x*r[d]+V.y*r[u]+V.z*r[m];return W.lerp(e._minimumHeight,e._maximumHeight,L/K8)}}}}Wy.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};Wy.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var iS=Wy;function Oxt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function nSe(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=y(e.ellipsoid,ne.default),this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}nSe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function iSe(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new de(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new de(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new de(x)}let c=t.tiles,d=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,d),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new ns({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new de(x)}if(e.levelZeroMaximumGeometricError=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new de(x)}let u;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let m=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(m)){g=new Xh(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let _=p[x],C=e.tilingScheme.getNumberOfYTilesAtLevel(x);l(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let V=0;V<_.length;++V){let L=_[V],Z=C-L.endY-1,G=C-L.startY-1;e.overallAvailability[x].push([L.startX,Z,L.endX,G]),g.addAvailableTileRange(x,L.startX,Z,L.endX,G)}}}else l(m)&&(u=new Xh(e.tilingScheme,d),g=new Xh(e.tilingScheme,d),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Oxt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:m,availabilityTilesLoaded:u,littleEndianExtensionSize:s}));let f=t.parentUrl;return l(f)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:f}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await j8(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function Yxt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=Zo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return j8(e,n);throw new de(i)}async function Hxt(e,t,n){await iSe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new Xh(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new Et(e.attribution);e.tileCredits.push(o)}return!0}async function j8(e,t){try{let n=await e.layerJsonResource.fetchJson();return Hxt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await iSe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):Yxt(e,n,t)}}function Wh(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new be;let t=e.credit;typeof t=="string"&&(t=new Et(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var J8={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function tSe(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function zxt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new Ma({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function Kxt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,d=c+1,u=Float64Array.BYTES_PER_ELEMENT*c,m=Float64Array.BYTES_PER_ELEMENT*d,g=Uint16Array.BYTES_PER_ELEMENT*3,f=3,x=Uint16Array.BYTES_PER_ELEMENT,_=x*f,C=new DataView(t),V=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=u;let L=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let Z=C.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let G=new ce(new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0)),C.getFloat64(a+u,!0));a+=m;let I=new h(C.getFloat64(a,!0),C.getFloat64(a+8,!0),C.getFloat64(a+16,!0));a+=u;let v=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let P=new Uint16Array(t,a,v*3);a+=v*g,v>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,_=x*f);let w=P.subarray(0,v),F=P.subarray(v,2*v),b=P.subarray(v*2,3*v);wn.zigZagDeltaDecode(w,F,b),a%x!==0&&(a+=x-a%x);let R=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let E=Ae.createTypedArrayFromArrayBuffer(v,t,a,R*f);a+=R*_;let X=0,A=E.length;for(let le=0;le<A;++le){let ye=E[le];E[le]=X-ye,ye===0&&++X}let N=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let O=Ae.createTypedArrayFromArrayBuffer(v,t,a,N);a+=N*x;let U=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let Y=Ae.createTypedArrayFromArrayBuffer(v,t,a,U);a+=U*x;let k=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let H=Ae.createTypedArrayFromArrayBuffer(v,t,a,k);a+=k*x;let J=C.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let te=Ae.createTypedArrayFromArrayBuffer(v,t,a,J);a+=J*x;let z,q;for(;a<C.byteLength;){let le=C.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let ye=C.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,le===J8.OCT_VERTEX_NORMALS&&e._requestVertexNormals)z=new Uint8Array(t,a,v*2);else if(le===J8.WATER_MASK&&e._requestWaterMask)q=new Uint8Array(t,a,ye);else if(le===J8.METADATA&&e._requestMetadata){let Te=C.getUint32(a,!0);if(Te>0){let Le=Wo(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,Te).available;if(l(Le))for(let ke=0;ke<Le.length;++ke){let Oe=n+ke+1,at=Le[ke],Mt=e._tilingScheme.getNumberOfYTilesAtLevel(Oe);for(let Lt=0;Lt<at.length;++Lt){let Ie=at[Lt],je=Mt-Ie.endY-1,et=Mt-Ie.startY-1;e.availability.addAvailableTileRange(Oe,Ie.startX,je,Ie.endX,et),r.availability.addAvailableTileRange(Oe,Ie.startX,je,Ie.endX,et)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=ye}let ee=e.getLevelMaximumGeometricError(n)*5,fe=e._tilingScheme.tileXYToRectangle(i,o,n),_e=En.fromRectangle(fe,L,Z,e._tilingScheme.ellipsoid);return new iS({center:V,minimumHeight:L,maximumHeight:Z,boundingSphere:G,orientedBoundingBox:_e,horizonOcclusionPoint:I,quantizedVertices:P,encodedNormals:z,indices:E,westIndices:O,southIndices:Y,eastIndices:H,northIndices:te,westSkirtHeight:ee,southSkirtHeight:ee,eastSkirtHeight:ee,northSkirtHeight:ee,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:q,credits:e._tileCredits})}Wh.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let d=0;d<s;++d){let u=o[d];if(!l(u.availability)||u.availability.isTileAvailable(n,e,t)){r=u;break}let m=q8(this,e,t,n,u,d===0);m.result&&(a=!0,c=c.then(()=>m.promise))}return!l(r)&&a?c.then(()=>new Promise(d=>{setTimeout(()=>{let u=this.requestTileGeometry(e,t,n,i);d(u)},0)})):oSe(this,e,t,n,r,i)};function oSe(e,t,n,i,o,r){if(!l(o))return Promise.reject(new de("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let d,u,m=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(u={extensions:c.join("-")}),d=tSe(void 0)):d=tSe(c);let g=p.getDerivedResource({url:m,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:u,headers:d,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(f){return l(f)?l(e._heightmapStructure)?zxt(e,f,i,t,n):Kxt(e,f,i,t,n,o):Promise.reject(new de("Mesh buffer doesn't exist."))})}Object.defineProperties(Wh.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});Wh.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Wh.fromIonAssetId=async function(e,t){let n=await fd.fromAssetId(e);return Wh.fromUrl(n,t)};Wh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=Ee.createIfNeeded(e);n.appendForwardSlash();let i=new nSe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await j8(i);let o=new Wh(t);return i.build(o),o};Wh.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(q8(this,e,t,n,i[r],r===0).result)return;return!1};Wh.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=q8(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function Q8(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function q8(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,d=o.availability,u=Q8(o,t,n,i);for(;l(u);){if(d.isTileAvailable(u.level,u.x,u.y)&&!c.isTileAvailable(u.level,u.x,u.y)){let m;if(!r&&(s=`${u.level}-${u.x}-${u.y}`,m=o.availabilityPromiseCache[s],!l(m))){let p=new Ho({throttle:!1,throttleByServer:!0,type:cs.TERRAIN});m=oSe(e,u.x,u.y,u.level,o,p),l(m)&&(o.availabilityPromiseCache[s]=m,m.then(a))}return{result:!0,promise:m}}u=Q8(o,u.x,u.y,u.level)}return{result:!1}}Wh._getAvailabilityTile=Q8;var oS=Wh;var XQi=T(S(),1);function b0(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new $c(n),this._workerName="createCircleGeometry"}b0.packedLength=$c.packedLength;b0.pack=function(e,t,n){return $c.pack(e._ellipseGeometry,t,n)};var rSe=new $c({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Da={center:new h,radius:void 0,ellipsoid:ne.clone(ne.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new We,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};b0.unpack=function(e,t,n){let i=$c.unpack(e,t,rSe);return Da.center=h.clone(i._center,Da.center),Da.ellipsoid=ne.clone(i._ellipsoid,Da.ellipsoid),Da.ellipsoid=ne.clone(i._ellipsoid,rSe._ellipsoid),Da.height=i._height,Da.extrudedHeight=i._extrudedHeight,Da.granularity=i._granularity,Da.vertexFormat=We.clone(i._vertexFormat,Da.vertexFormat),Da.stRotation=i._stRotation,Da.shadowVolume=i._shadowVolume,l(n)?(Da.semiMajorAxis=i._semiMajorAxis,Da.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new $c(Da),n):(Da.radius=i._semiMajorAxis,new b0(Da))};b0.createGeometry=function(e){return $c.createGeometry(e._ellipseGeometry)};b0.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new b0({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:We.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(b0.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var $8=b0;var MQi=T(S(),1);function xL(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new Pd(n),this._workerName="createCircleOutlineGeometry"}xL.packedLength=Pd.packedLength;xL.pack=function(e,t,n){return Pd.pack(e._ellipseGeometry,t,n)};var Jxt=new Pd({center:new h,semiMajorAxis:1,semiMinorAxis:1}),eu={center:new h,radius:void 0,ellipsoid:ne.clone(ne.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};xL.unpack=function(e,t,n){let i=Pd.unpack(e,t,Jxt);return eu.center=h.clone(i._center,eu.center),eu.ellipsoid=ne.clone(i._ellipsoid,eu.ellipsoid),eu.height=i._height,eu.extrudedHeight=i._extrudedHeight,eu.granularity=i._granularity,eu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(eu.semiMajorAxis=i._semiMajorAxis,eu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Pd(eu),n):(eu.radius=i._semiMajorAxis,new xL(eu))};xL.createGeometry=function(e){return Pd.createGeometry(e._ellipseGeometry)};var e7=xL;var KQi=T(S(),1);function _L(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ne.default)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new be;let n=e.credit;typeof n=="string"&&(n=new Et(n)),this._credit=n}Object.defineProperties(_L.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});_L.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new Ma({buffer:c,width:r,height:s})})};_L.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};_L.prototype.getTileDataAvailable=function(e,t,n){};_L.prototype.loadTileDataAvailability=function(e,t,n){};var t7=_L;var QQi=T(S(),1);function sSe(e){this.proxy=e}sSe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var n7=sSe;var qQi=T(S(),1),Qxt={SEARCH:0,AUTOCOMPLETE:1},Py=Object.freeze(Qxt);var i4i=T(S(),1);function OB(){pe.throwInstantiationError()}Object.defineProperties(OB.prototype,{credit:{get:pe.throwInstantiationError}});OB.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(Et.getIonCredit)};OB.prototype.geocode=pe.throwInstantiationError;var TL=OB;var s4i=T(S(),1);function aSe(){pe.throwInstantiationError()}aSe.createGeometry=function(e){pe.throwInstantiationError()};var i7=aSe;var Z4i=T(S(),1),n_t=T(o7(),1);var h4i=T(S(),1);var l4i=T(S(),1);function jxt(e,t){return(e&t)!==0}var Lc=jxt;var qxt=[1,2,4,8],cSe=15,$xt=16,e_t=64,t_t=128;function np(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}np.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new np(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};np.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};np.prototype.hasSubtree=function(){return Lc(this._bits,$xt)};np.prototype.hasImagery=function(){return Lc(this._bits,e_t)};np.prototype.hasTerrain=function(){return Lc(this._bits,t_t)};np.prototype.hasChildren=function(){return Lc(this._bits,cSe)};np.prototype.hasChild=function(e){return Lc(this._bits,qxt[e])};np.prototype.getChildBitmask=function(){return this._bits&cSe};var dM=np;function i_t(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var o_t=i_t(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function tu(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=W.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(tu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});tu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof Ee)&&(t=e.url);let n=Ee.createIfNeeded(t);n.appendForwardSlash();let i=new tu;i._resource=n;try{await r_t(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${dSe(i,"",1).url}: ${o}`;throw new de(r)}return i};tu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;Lc(t,r)?Lc(e,r)&&(s|=1):(s|=2,Lc(e,r)||(s|=1)),i+=s}return i};tu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];Lc(s,2)?Lc(s,1)||(t|=r):(n|=r,Lc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};tu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var lSe=new bi("decodeGoogleEarthEnterprisePacket");tu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=dSe(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return lSe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(d){let u,m=-1;if(e!==""){m=e.length+1;let f=d[e];u=r[e],u._bits|=f._bits,delete d[e]}let p=Object.keys(d);p.sort(function(f,x){return f.length-x.length});let g=p.length;for(let f=0;f<g;++f){let x=p[f];if(d[x]!==null){let C=dM.clone(d[x]),V=x.length;if(V===m)C.setParent(u);else if(V>1){let L=r[x.substring(0,x.length-1)];C.setParent(L)}r[x]=C}else r[x]=null}})})};tu.prototype.populateSubtree=function(e,t,n,i){let o=tu.tileXYToQuadKey(e,t,n);return a7(this,o,i)};function a7(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new Ho({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),a7(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new de(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new Ho({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),a7(e,t,s)}).finally(function(){delete a[o]})}tu.prototype.getTileInformation=function(e,t,n){let i=tu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};tu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function dSe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var r7,s7;function r_t(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(s7)){let n=rn("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;s7=Qy(n).then(function(){r7=window.cesiumGoogleEarthDbRootParser(n_t),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return s7.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=r7.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return lSe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=r7.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],d=c.copyrightString;l(d)&&(o[c.providerId]=new Et(d.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=o_t})}var g0=tu;var O4i=T(S(),1);function rS(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(rS.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var hSe="createVerticesFromGoogleEarthEnterpriseBuffer",s_t=new bi(hSe),a_t=new bi(hSe,Th.maximumAsynchronousTasks),uSe=new ae,c7=new ae;rS.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,uSe),t.tileXYToRectangle(n,i,o,c7);let d=c.cartographicToCartesian(ae.center(c7)),m=40075.16/(1<<o);this._skirtHeight=Math.min(m*8,1e3);let g=(a?a_t:s_t).scheduleTask({buffer:this._buffer,nativeRectangle:uSe,rectangle:c7,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let f=this;return g.then(function(x){return f._mesh=new tm(d,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,ce.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,En.clone(x.orientedBoundingBox),_c.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),f._minimumHeight=x.minimumHeight,f._maximumHeight=x.maximumHeight,f._buffer=void 0,f._mesh})};rS.prototype.interpolateHeight=function(e,t,n){let i=W.clamp((t-e.west)/e.width,0,1),o=W.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?m_t(this,i,o):p_t(this,i,o,e)};var c_t=new bi("upsampleQuantizedTerrainMesh",Th.maximumAsynchronousTasks);rS.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,d=n*2===r,u=e.ellipsoid,m=e.tileXYToRectangle(o,r,s),p=c_t.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:d,childRectangle:m,ellipsoid:u});if(!l(p))return;let g=this;return p.then(function(f){let x=new Uint16Array(f.vertices),_=Ae.createTypedArray(x.length/3,f.indices),C=g._skirtHeight;return new iS({quantizedVertices:x,indices:_,minimumHeight:f.minimumHeight,maximumHeight:f.maximumHeight,boundingSphere:ce.clone(f.boundingSphere),orientedBoundingBox:En.clone(f.orientedBoundingBox),horizonOcclusionPoint:h.clone(f.horizonOcclusionPoint),westIndices:f.westIndices,southIndices:f.southIndices,eastIndices:f.eastIndices,northIndices:f.northIndices,westSkirtHeight:C,southSkirtHeight:C,eastSkirtHeight:C,northSkirtHeight:C,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};rS.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};rS.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var l_t=new D,d_t=new D,u_t=new D,fSe=new h;function m_t(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let d=s[a],u=s[a+1],m=s[a+2],p=r.decodeTextureCoordinates(o,d,l_t),g=r.decodeTextureCoordinates(o,u,d_t),f=r.decodeTextureCoordinates(o,m,u_t),x=p0.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,f.x,f.y,fSe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let _=r.decodeHeight(o,d),C=r.decodeHeight(o,u),V=r.decodeHeight(o,m);return x.x*_+x.y*C+x.z*V}}}var h_t=Uint16Array.BYTES_PER_ELEMENT,mSe=Uint32Array.BYTES_PER_ELEMENT,l7=Int32Array.BYTES_PER_ELEMENT,f_t=Float32Array.BYTES_PER_ELEMENT,d7=Float64Array.BYTES_PER_ELEMENT;function p_t(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),d=0;for(let G=0;G<r;++G)d+=c.getUint32(d,!0),d+=mSe;d+=mSe,d+=2*d7;let u=W.toRadians(c.getFloat64(d,!0)*180);d+=d7;let m=W.toRadians(c.getFloat64(d,!0)*180);d+=d7;let p=i.width/u/2,g=i.height/m/2,f=c.getInt32(d,!0);d+=l7;let x=c.getInt32(d,!0)*3;d+=l7,d+=l7;let _=new Array(f),C=new Array(f),V=new Array(f),L;for(L=0;L<f;++L)_[L]=s+c.getUint8(d++)*p,C[L]=a+c.getUint8(d++)*g,V[L]=c.getFloat32(d,!0)*6371010,d+=f_t;let Z=new Array(x);for(L=0;L<x;++L)Z[L]=c.getUint16(d,!0),d+=h_t;for(L=0;L<x;L+=3){let G=Z[L],I=Z[L+1],v=Z[L+2],P=_[G],w=_[I],F=_[v],b=C[G],R=C[I],E=C[v],X=p0.computeBarycentricCoordinates(t,n,P,b,w,R,F,E,fSe);if(X.x>=-1e-15&&X.y>=-1e-15&&X.z>=-1e-15)return X.x*V[G]+X.y*V[I]+X.z*V[v]}}var SL=rS;var cji=T(S(),1);var dm={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},YB=new j;function HB(){this._terrainCache={},this._lastTidy=j.now()}HB.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:j.now()}};HB.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};HB.prototype.tidy=function(){if(j.now(YB),j.secondsDifference(YB,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];j.secondsDifference(YB,r.timestamp)>10&&delete e[o]}j.clone(YB,this._lastTidy)}};function vy(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ae(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Et(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new HB,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new be}Object.defineProperties(vy.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});vy.fromMetadata=function(e,t){if(!e.terrainPresent)throw new de(`The server ${e.url} doesn't have terrain`);let n=new vy(t);return n._metadata=e,n};var b_t=new bi("decodeGoogleEarthEnterprisePacket");function pSe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===dm.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}vy.prototype.requestTileGeometry=function(e,t,n,i){let o=g0.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new de("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=dm.UNKNOWN);let d=r.get(o);if(l(d)){let C=s.providers[a.terrainProvider];return Promise.resolve(new SL({buffer:d,childTileMask:pSe(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===dm.NONE)return Promise.reject(new de("Terrain tile doesn't exist"))}else return Promise.resolve(new Ma({buffer:new Uint8Array(16*16),width:16,height:16}));let u,m=o,p=-1;switch(c){case dm.SELF:p=a.terrainVersion;break;case dm.PARENT:m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),p=u.terrainVersion;break;case dm.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(m=m.substring(0,m.length-1),u=s.getTileInformationFromQuadKey(m),l(u)&&u.hasTerrain()&&(p=u.terrainVersion));break}if(p<0)return Promise.reject(new de("Terrain tile doesn't exist"));let g=this._terrainPromises,f=this._terrainRequests,x,_;if(l(g[m]))x=g[m],_=f[m];else{_=i;let C=g_t(this,m,p,_).fetchArrayBuffer();if(!l(C))return;x=C.then(function(V){return l(V)?b_t.scheduleTask({buffer:V,type:"Terrain",key:s.key},[V]).then(function(L){let Z=s.getTileInformationFromQuadKey(m);Z.terrainState=dm.SELF,r.add(m,L[0]);let G=Z.terrainProvider,I=L.length-1;for(let v=0;v<I;++v){let P=m+v.toString(),w=s.getTileInformationFromQuadKey(P);l(w)&&(r.add(P,L[v+1]),w.terrainState=dm.PARENT,w.terrainProvider===0&&(w.terrainProvider=G))}}):Promise.reject(new de("Failed to load terrain."))}),g[m]=x,f[m]=_,x=x.finally(function(){delete g[m],delete f[m]})}return x.then(function(){let C=r.get(o);if(l(C)){let V=s.providers[a.terrainProvider];return new SL({buffer:C,childTileMask:pSe(o,a,s),credits:l(V)?[V]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new de("Failed to load terrain."))}).catch(function(C){return _.state===jn.CANCELLED?(i.state=_.state,Promise.reject(C)):(a.terrainState=dm.NONE,Promise.reject(C))})};vy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};vy.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=g0.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===dm.NONE)return!1;if((!l(s)||s===dm.UNKNOWN)&&(r.terrainState=dm.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Ho({throttle:!1,throttleByServer:!0,type:cs.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};vy.prototype.loadTileDataAvailability=function(e,t,n){};function g_t(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var u7=vy;var mji=T(S(),1);var zB={};zB.defaultApiKey=void 0;zB.mapTilesApiEndpoint=new Ee({url:"https://tile.googleapis.com/v1/"});zB.getDefaultCredit=function(){return new Et('<img src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align: -5px" alt="Google">',!0)};var sS=zB;var pji=T(S(),1);var uM={};uM.type=void 0;uM.getRequiredDataPoints=pe.throwInstantiationError;uM.interpolateOrderZero=pe.throwInstantiationError;uM.interpolate=pe.throwInstantiationError;var m7=uM;var Iji=T(S(),1);var Sji=T(S(),1);function h7(e){this._url=Ee.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(h7.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});h7.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===Py.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=ae.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var mM=h7;function f7(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Pm.defaultAccessToken),n=Ee.createIfNeeded(y(e.server,Pm.defaultServer));n.appendForwardSlash();let i=Pm.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(Et.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new mM(o)}Object.defineProperties(f7.prototype,{credit:{get:function(){}}});f7.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var hM=f7;var Pji=T(S(),1);function KB(){pe.throwInstantiationError()}Object.defineProperties(KB.prototype,{ellipsoid:{get:pe.throwInstantiationError}});KB.prototype.project=pe.throwInstantiationError;KB.prototype.unproject=pe.throwInstantiationError;var p7=KB;var Mji=T(S(),1);function CL(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(CL.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});CL.prototype.findTimeInterval=to.prototype.findTimeInterval;CL.prototype.wrapTime=to.prototype.wrapTime;CL.prototype.clampTime=to.prototype.clampTime;CL.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var b7=CL;var zji=T(S(),1);function g7(e,t,n){e=Ee.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new Et('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(g7.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});g7.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:Tt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=ae.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var y7=g7;var Qji=T(S(),1);var y_t={packedLength:void 0,pack:pe.throwInstantiationError,unpack:pe.throwInstantiationError},x7=y_t;var $ji=T(S(),1);var x_t={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:pe.throwInstantiationError,unpackInterpolationResult:pe.throwInstantiationError},_7=x_t;var n8i=T(S(),1);function bSe(){pe.throwInstantiationError()}bSe.prototype.getURL=pe.throwInstantiationError;var T7=bSe;var x8i=T(S(),1);function __t(e,t,n,i,o,r,s){let a=Gi.numberOfPoints(e,t,o),c,d=n.red,u=n.green,m=n.blue,p=n.alpha,g=i.red,f=i.green,x=i.blue,_=i.alpha;if(B.equals(n,i)){for(c=0;c<a;c++)r[s++]=B.floatToByte(d),r[s++]=B.floatToByte(u),r[s++]=B.floatToByte(m),r[s++]=B.floatToByte(p);return s}let C=(g-d)/a,V=(f-u)/a,L=(x-m)/a,Z=(_-p)/a,G=s;for(c=0;c<a;c++)r[G++]=B.floatToByte(d+c*C),r[G++]=B.floatToByte(u+c*V),r[G++]=B.floatToByte(m+c*L),r[G++]=B.floatToByte(p+c*Z);return G}function fM(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,nn.GEODESIC),this._granularity=y(e.granularity,W.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,ne.default),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*B.packedLength:1,this.packedLength=o+ne.packedLength+3}fM.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=B.packedLength)B.pack(s[i],t,n);return ne.pack(e._ellipsoid,t,n),n+=ne.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};fM.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=B.packedLength)s[i]=B.unpack(e,t);let a=ne.unpack(e,t);t+=ne.packedLength;let c=e[t++]===1,d=e[t++],u=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=d,n._granularity=u,n):new fM({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:d,granularity:u})};var JB=new Array(2),QB=new Array(2),T_t={positions:JB,height:QB,ellipsoid:void 0,minDistance:void 0,granularity:void 0};fM.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=W.chordLength(r,s.maximumRadius),c=l(n)&&!i,d,u=t.length,m,p,g,f,x=0;if(o===nn.GEODESIC||o===nn.RHUMB){let Z,G,I;o===nn.GEODESIC?(Z=W.chordLength(r,s.maximumRadius),G=Gi.numberOfPoints,I=Gi.generateArc):(Z=r,G=Gi.numberOfPointsRhumbLine,I=Gi.generateRhumbArc);let v=Gi.extractHeights(t,s),P=T_t;if(o===nn.GEODESIC?P.minDistance=a:P.granularity=r,P.ellipsoid=s,c){let w=0;for(d=0;d<u-1;d++)w+=G(t[d],t[d+1],Z)+1;m=new Float64Array(w*3),g=new Uint8Array(w*4),P.positions=JB,P.height=QB;let F=0;for(d=0;d<u-1;++d){JB[0]=t[d],JB[1]=t[d+1],QB[0]=v[d],QB[1]=v[d+1];let b=I(P);if(l(n)){let R=b.length/3;f=n[d];for(let E=0;E<R;++E)g[F++]=B.floatToByte(f.red),g[F++]=B.floatToByte(f.green),g[F++]=B.floatToByte(f.blue),g[F++]=B.floatToByte(f.alpha)}m.set(b,x),x+=b.length}}else if(P.positions=t,P.height=v,m=new Float64Array(I(P)),l(n)){for(g=new Uint8Array(m.length/3*4),d=0;d<u-1;++d){let F=t[d],b=t[d+1],R=n[d],E=n[d+1];x=__t(F,b,R,E,a,g,x)}let w=n[u-1];g[x++]=B.floatToByte(w.red),g[x++]=B.floatToByte(w.green),g[x++]=B.floatToByte(w.blue),g[x++]=B.floatToByte(w.alpha)}}else{p=c?u*2-2:u,m=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let Z=0,G=0;for(d=0;d<u;++d){let I=t[d];if(c&&d>0&&(h.pack(I,m,Z),Z+=3,f=n[d-1],g[G++]=B.floatToByte(f.red),g[G++]=B.floatToByte(f.green),g[G++]=B.floatToByte(f.blue),g[G++]=B.floatToByte(f.alpha)),c&&d===u-1)break;h.pack(I,m,Z),Z+=3,l(n)&&(f=n[d],g[G++]=B.floatToByte(f.red),g[G++]=B.floatToByte(f.green),g[G++]=B.floatToByte(f.blue),g[G++]=B.floatToByte(f.alpha))}}let _=new mn;_.position=new Ze({componentDatatype:Q.DOUBLE,componentsPerAttribute:3,values:m}),l(n)&&(_.color=new Ze({componentDatatype:Q.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=m.length/3;let C=(p-1)*2,V=Ae.createTypedArray(p,C),L=0;for(d=0;d<p-1;++d)V[L++]=d,V[L++]=d+1;return new ht({attributes:_,indices:V,primitiveType:Fe.LINES,boundingSphere:ce.fromPoints(t)})};var S7=fM;var R8i=T(S(),1);function VL(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new zs(i),this._workerName="createSphereGeometry"}VL.packedLength=zs.packedLength;VL.pack=function(e,t,n){return zs.pack(e._ellipsoidGeometry,t,n)};var S_t=new zs,wy={radius:void 0,radii:new h,vertexFormat:new We,stackPartitions:void 0,slicePartitions:void 0};VL.unpack=function(e,t,n){let i=zs.unpack(e,t,S_t);return wy.vertexFormat=We.clone(i._vertexFormat,wy.vertexFormat),wy.stackPartitions=i._stackPartitions,wy.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,wy.radii),n._ellipsoidGeometry=new zs(wy),n):(wy.radius=i._radii.x,new VL(wy))};VL.createGeometry=function(e){return zs.createGeometry(e._ellipsoidGeometry)};var C7=VL;var E8i=T(S(),1);function Fy(e){}Object.defineProperties(Fy.prototype,{ellipsoid:{get:pe.throwInstantiationError},rectangle:{get:pe.throwInstantiationError},projection:{get:pe.throwInstantiationError}});Fy.prototype.getNumberOfXTilesAtLevel=pe.throwInstantiationError;Fy.prototype.getNumberOfYTilesAtLevel=pe.throwInstantiationError;Fy.prototype.rectangleToNativeRectangle=pe.throwInstantiationError;Fy.prototype.tileXYToNativeRectangle=pe.throwInstantiationError;Fy.prototype.tileXYToRectangle=pe.throwInstantiationError;Fy.prototype.positionToTileXY=pe.throwInstantiationError;var V7=Fy;var Y8i=T(S(),1);function C_t(e,t){this.rectangle=e,this.maxLevel=t}function gSe(e){this.ellipsoid=y(e.ellipsoid,ne.default),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}gSe.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function V_t(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Yi({ellipsoid:e.ellipsoid});else throw new de(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=ts.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=W.toRadians(parseFloat(s.getAttribute("minx"))),c=W.toRadians(parseFloat(s.getAttribute("miny"))),d=W.toRadians(parseFloat(s.getAttribute("maxx"))),u=W.toRadians(parseFloat(s.getAttribute("maxy"))),m=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new C_t(new ae(a,c,d,u),m))}}function L_t(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),Zo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new de(i)}async function R_t(e,t,n){try{let i=await t.fetchXML();V_t(e,i)}catch(i){L_t(t,i,n)}}function Ay(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new be,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new Et(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(Ay.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});Ay.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new gSe(t),i=Ee.createIfNeeded(e);await R_t(n,i);let o=new Ay(t);return n.build(o),o._resource=i,o};Ay.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new Ma({buffer:bm(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:Z_t(a,e,t,n),structure:a._terrainDataStructure})})};Ay.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var ySe=new ae;function Z_t(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let d=r[c];if(d.maxLevel<=i)continue;let u=d.rectangle,m=ae.intersection(u,s,ySe);l(m)&&(jB(o,u,t*2,n*2,i+1)&&(a|=4),jB(o,u,t*2+1,n*2,i+1)&&(a|=8),jB(o,u,t*2,n*2+1,i+1)&&(a|=1),jB(o,u,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function jB(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(ae.intersection(r,t,ySe))}Ay.prototype.getTileDataAvailable=function(e,t,n){};Ay.prototype.loadTileDataAvailability=function(e,t,n){};var L7=Ay;var q8i=T(S(),1);function aS(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,Be.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(aS.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(aS.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=G_t(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});aS.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,me(this)};aS.prototype.isDestroyed=function(){return!1};aS.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};aS.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,Be.MINIMUM_VALUE),s=j.secondsDifference(o,r),a=t.duration,c,d=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let u=i?y(this.tolerance,1):.001;Math.abs(c-d)>u&&(this._seeking=!0,t.currentTime=c)};function G_t(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var R7=aS;var e7i=T(S(),1),E_t={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},Z7=Object.freeze(E_t);var o7i=T(S(),1);function I_t(e){return e=y(e,y.EMPTY_OBJECT),oS.fromIonAssetId(2426648,{requestVertexNormals:y(e.requestVertexNormals,!1)})}var pM=I_t;var l7i=T(S(),1);function X_t(e){return e=y(e,y.EMPTY_OBJECT),oS.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1),ellipsoid:ne.WGS84})}var cS=X_t;var m7i=T(S(),1);var W_t=1953029805,P_t=2917034100;function G7(e,t){if(G7.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new de("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===W_t||o===P_t)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,d=n,u,m=8;for(;s<c;)for(m=(m+8)%24,u=m;s<c&&u<d;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(u,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(u+4,!0),!0),s+=8,u+=24;if(s<a)for(u>=d&&(m=(m+8)%24,u=m);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(u)),s++,u++}G7.passThroughDataForTesting=!1;var bM=G7;var g7i=T(S(),1);var v_t=new h;function w_t(e,t,n,i){let o=rx(e,t,n,i,v_t);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var E7=w_t;var x7i=T(S(),1);function F_t(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var lS=F_t;var S7i=T(S(),1);function A_t(e){switch(e){case ie.FLOAT:return"float";case ie.FLOAT_VEC2:return"vec2";case ie.FLOAT_VEC3:return"vec3";case ie.FLOAT_VEC4:return"vec4";case ie.FLOAT_MAT2:return"mat2";case ie.FLOAT_MAT3:return"mat3";case ie.FLOAT_MAT4:return"mat4";case ie.SAMPLER_2D:return"sampler2D";case ie.BOOL:return"bool"}}var I7=A_t;var V7i=T(S(),1);function M_t(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var gM=M_t;var E7i=T(S(),1);var N_t=new h(1,1,1);function X7(e){e=y(e,N_t),this._dimensions=h.clone(e)}Object.defineProperties(X7.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var k_t=new h;X7.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,k_t),i=W.randomBetween(-n.x,n.x),o=W.randomBetween(-n.y,n.y),r=W.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var W7=X7;var W7i=T(S(),1);function ip(){this.featurePropertiesDirty=!1}Object.defineProperties(ip.prototype,{featuresLength:{get:function(){pe.throwInstantiationError()}},pointsLength:{get:function(){pe.throwInstantiationError()}},trianglesLength:{get:function(){pe.throwInstantiationError()}},geometryByteLength:{get:function(){pe.throwInstantiationError()}},texturesByteLength:{get:function(){pe.throwInstantiationError()}},batchTableByteLength:{get:function(){pe.throwInstantiationError()}},innerContents:{get:function(){pe.throwInstantiationError()}},ready:{get:function(){pe.throwInstantiationError()}},tileset:{get:function(){pe.throwInstantiationError()}},tile:{get:function(){pe.throwInstantiationError()}},url:{get:function(){pe.throwInstantiationError()}},batchTable:{get:function(){pe.throwInstantiationError()}},metadata:{get:function(){pe.throwInstantiationError()},set:function(e){pe.throwInstantiationError()}},group:{get:function(){pe.throwInstantiationError()},set:function(e){pe.throwInstantiationError()}}});ip.prototype.hasProperty=function(e,t){pe.throwInstantiationError()};ip.prototype.getFeature=function(e){pe.throwInstantiationError()};ip.prototype.applyDebugSettings=function(e,t){pe.throwInstantiationError()};ip.prototype.applyStyle=function(e){pe.throwInstantiationError()};ip.prototype.update=function(e,t){pe.throwInstantiationError()};ip.prototype.pick=function(e,t,n){pe.throwInstantiationError()};ip.prototype.isDestroyed=function(){pe.throwInstantiationError()};ip.prototype.destroy=function(){pe.throwInstantiationError()};var P7=ip;var Y7i=T(S(),1);var A7i=T(S(),1);function LL(e,t){this._conditionsExpression=Ye(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,D_t(this,t)}Object.defineProperties(LL.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function U_t(e,t){this.condition=e,this.expression=t}function D_t(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new U_t(new Tu(a,t),new Tu(c,t)))}e._runtimeConditions=n}LL.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};LL.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};LL.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],d=c.condition.getShaderExpression(t,n),u=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${d}) + { + return ${u}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};LL.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var yM=LL;function My(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,B_t(this,e)}function B_t(e,t){t=y(Ye(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new Tu(o[r],i))}e._meta=n,e._ready=!0}function ir(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new Tu(String(t));if(typeof t=="string")return new Tu(t,n);if(l(t.conditions))return new yM(t,n)}else return;return t}function or(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ye(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(My.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=ir(this,e),this._style.show=or(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=ir(this,e),this._style.color=or(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=ir(this,e),this._style.pointSize=or(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=ir(this,e),this._style.pointOutlineColor=or(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=ir(this,e),this._style.pointOutlineWidth=or(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=ir(this,e),this._style.labelColor=or(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=ir(this,e),this._style.labelOutlineColor=or(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=ir(this,e),this._style.labelOutlineWidth=or(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=ir(this,e),this._style.font=or(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=ir(this,e),this._style.labelStyle=or(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=ir(this,e),this._style.labelText=or(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=ir(this,e),this._style.backgroundColor=or(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=ir(this,e),this._style.backgroundPadding=or(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=ir(this,e),this._style.backgroundEnabled=or(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=ir(this,e),this._style.scaleByDistance=or(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=ir(this,e),this._style.translucencyByDistance=or(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=ir(this,e),this._style.distanceDisplayCondition=or(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=ir(this,e),this._style.heightOffset=or(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=ir(this,e),this._style.anchorLineEnabled=or(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=ir(this,e),this._style.anchorLineColor=or(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=ir(this,e),this._style.image=or(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=ir(this,e),this._style.disableDepthTestDistance=or(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=ir(this,e),this._style.horizontalOrigin=or(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=ir(this,e),this._style.verticalOrigin=or(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=ir(this,e),this._style.labelHorizontalOrigin=or(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=ir(this,e),this._style.labelVerticalOrigin=or(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});My.fromUrl=function(e){return Ee.createIfNeeded(e).fetchJson(e).then(function(n){return new My(n)})};My.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};My.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};My.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};My.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var dS=My;var V6i=T(S(),1);var J7i=T(S(),1);function xM(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new KT({comparator:xM.comparator})}xM.prototype.addSubtree=function(e){let t=new O_t(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};xM.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};xM.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function O_t(e,t){this.subtree=e,this.stamp=t}var _M=xM;var e6i=T(S(),1);function qB(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(qB.prototype,{metadataTable:{get:function(){return this._metadataTable}}});qB.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=H_t(n);let r=await Y_t(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let m=0;m<a;++m){let p=o.json.bufferViews[m],g=p.byteOffset,f=g+p.byteLength,_=r[p.buffer].subarray(g,f);s[m]=_}let c=o.json.voxelTable,d=o.json.propertyTables[c],u=new qB(e);return u._metadataTable=new Il({count:d.count,properties:d.properties,class:i.classes[d.class],bufferViews:s}),u};function Y_t(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(d){return new Uint8Array(d)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function H_t(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Wo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var TM=qB;function $B(e){e=y(e,y.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new _M}$B.fromUrl=async function(e){let t=Ee.createIfNeeded(e),n=await t.fetchJson();K_t(n);let i=$_t(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=oi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,d=new w_({metadataJson:a,schema:c}),u=new $B;eTt(u,d,s);let m=new A_(t,o,c),{shape:p,minBounds:g,maxBounds:f,shapeTransform:x,globalTransform:_}=J_t(o);u.shape=p,u.minBounds=g,u.maxBounds=f,u.dimensions=h.unpack(r.dimensions),u.shapeTransform=x,u.globalTransform=_,u.maximumTileCount=z_t(d);let C,V;return l(r.padding)&&(C=h.unpack(r.padding.before),V=h.unpack(r.padding.after)),u.paddingBefore=C,u.paddingAfter=V,u._implicitTileset=m,Ci.unload(i),u};function z_t(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(r_.TILESET_TILE_COUNT)}function K_t(e){let t=e.root;if(!l(t.content))throw new de("Root must have content");if(!oi(t.content,"3DTILES_content_voxels"))throw new de("Root tile content must have 3DTILES_content_voxels extension");if(!oi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new de("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!oi(e,"3DTILES_metadata"))throw new de("Tileset must have a metadata schema")}function J_t(e){let t=e.boundingVolume,n;if(l(e.transform)?n=M.unpack(e.transform):n=M.clone(M.IDENTITY),l(t.box))return j_t(t.box,n);if(l(t.region))return Q_t(t.region);if(oi(t,"3DTILES_bounding_volume_cylinder"))return q_t(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new de("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function Q_t(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=M.fromScale(ne.WGS84.radii),c=new h(t,n,r),d=new h(i,o,s);return{shape:vi.ELLIPSOID,minBounds:c,maxBounds:d,shapeTransform:a,globalTransform:M.clone(M.IDENTITY)}}function j_t(e,t){let n=En.unpack(e),i=M.fromRotationTranslation(n.halfAxes,n.center);return{shape:vi.BOX,minBounds:h.clone(qf.DefaultMinBounds),maxBounds:h.clone(qf.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function q_t(e,t){let n=En.unpack(e),i=M.fromRotationTranslation(n.halfAxes,n.center);return{shape:vi.CYLINDER,minBounds:h.clone($f.DefaultMinBounds),maxBounds:h.clone($f.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function $_t(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Ci.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Ci.getSchemaLoader({schema:i})}function eTt(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([m,p])=>{let{type:g,componentType:f}=p,x=r?.properties[m].min,_=r?.properties[m].max,C=Rt.getComponentCount(g),V=xSe(x,C),L=xSe(_,C);return{id:m,type:g,componentType:f,minValue:V,maxValue:L}});e.names=a.map(m=>m.id),e.types=a.map(m=>m.type),e.componentTypes=a.map(m=>m.componentType);let c=a.map(m=>m.minValue),d=a.map(m=>m.maxValue),u=c.some(l);e.minimumValues=u?c:void 0,e.maximumValues=u?d:void 0}function xSe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function tTt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=gf(o);return await TM.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function nTt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=gf(a);return o=await o_.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}$B.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new M_({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),d=c.isSubtreeRoot()&&c.level>0,u=d?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return nTt(this,u).then(function(p){return(d?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?tTt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var v7=$B;var E6i=T(S(),1);function w7(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(w7.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});w7.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var SM=w7;var xqi=T(S(),1);var X6i=T(S(),1),F7={CUMULUS:0};F7.validate=function(e){return e===F7.CUMULUS};var RL=Object.freeze(F7);var M6i=T(S(),1);function Ph(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new D(this._maximumSize.x,this._maximumSize.y);else{this._scale=D.clone(y(e.scale,new D(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=B.clone(y(e.color,B.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var iTt=Ph.SHOW_INDEX=0,oTt=Ph.POSITION_INDEX=1,rTt=Ph.SCALE_INDEX=2,sTt=Ph.MAXIMUM_SIZE_INDEX=3,aTt=Ph.SLICE_INDEX=4,cTt=Ph.BRIGHTNESS_INDEX=5,lTt=Ph.COLOR_INDEX=6;Ph.NUMBER_OF_PROPERTIES=7;function uS(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Ph.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,uS(this,iTt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),uS(this,oTt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;D.equals(t,e)||(D.clone(e,t),uS(this,rTt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),uS(this,sTt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;B.equals(t,e)||(B.clone(e,t),uS(this,lTt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,uS(this,aTt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,uS(this,cTt))}}});Ph.prototype._destroy=function(){this._cloudCollection=void 0};var nu=Ph;var iu,e3=new h,dTt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},uTt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},mTt=nu.SHOW_INDEX,hTt=nu.POSITION_INDEX,fTt=nu.SCALE_INDEX,pTt=nu.MAXIMUM_SIZE_INDEX,bTt=nu.SLICE_INDEX,gTt=nu.BRIGHTNESS_INDEX,yTt=nu.NUMBER_OF_PROPERTIES,xTt=nu.COLOR_INDEX;function vh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(yTt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:_Se(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function _Se(e){return function(){return e3.x=e._textureSliceWidth,e3.y=e._noiseTextureRows,e3.z=1/e._noiseTextureRows,e3}}Object.defineProperties(vh.prototype,{length:{get:function(){return M7(this),this._clouds.length}}});function TSe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}vh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,RL.CUMULUS),n;return t===RL.CUMULUS&&(n=new nu(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};vh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};vh.prototype.removeAll=function(){TSe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function M7(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}vh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};vh.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};vh.prototype.get=function(e){return M7(this),this._clouds[e]};var _Tt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),TTt=new Uint16Array([0,1,2,0,2,3]);function STt(e){let t=xt.createVertexBuffer({context:e,typedArray:_Tt,usage:Me.STATIC_DRAW}),n=xt.createIndexBuffer({context:e,typedArray:TTt,usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:Q.FLOAT}];return new ti({context:e,attributes:i,indexBuffer:n})}var N7;function CTt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=xt.createIndexBuffer({context:e,typedArray:o,usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function VTt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=xt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Me.STATIC_DRAW,indexDatatype:Ae.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function LTt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=xt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Me.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function RTt(e,t,n){let i=[{index:iu.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Me.STATIC_DRAW},{index:iu.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Me.STATIC_DRAW},{index:iu.packedAttribute0,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Me.STATIC_DRAW},{index:iu.packedAttribute1,componentsPerAttribute:4,componentDatatype:Q.FLOAT,usage:Me.STATIC_DRAW},{index:iu.color,componentsPerAttribute:4,componentDatatype:Q.UNSIGNED_BYTE,normalize:!0,usage:Me.STATIC_DRAW}];n&&i.push({index:iu.direction,componentsPerAttribute:2,componentDatatype:Q.FLOAT,vertexBuffer:LTt(e)});let o=n?t:4*t;return new Sp(e,i,o,n)}var A7=new On;function SSe(e,t,n,i){let o,r=n[iu.positionHighAndScaleX],s=n[iu.positionLowAndScaleY],a=i.position;On.fromCartesian(a,A7);let c=i.scale,d=A7.high,u=A7.low;e._instanced?(o=i._index,r(o,d.x,d.y,d.z,c.x),s(o,u.x,u.y,u.z,c.y)):(o=i._index*4,r(o+0,d.x,d.y,d.z,c.x),r(o+1,d.x,d.y,d.z,c.x),r(o+2,d.x,d.y,d.z,c.x),r(o+3,d.x,d.y,d.z,c.x),s(o+0,u.x,u.y,u.z,c.y),s(o+1,u.x,u.y,u.z,c.y),s(o+2,u.x,u.y,u.z,c.y),s(o+3,u.x,u.y,u.z,c.y))}function CSe(e,t,n,i){let o,r=n[iu.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function VSe(e,t,n,i){let o,r=n[iu.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function LSe(e,t,n,i){let o,r=n[iu.color],s=i.color,a=B.floatToByte(s.red),c=B.floatToByte(s.green),d=B.floatToByte(s.blue),u=B.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,d,u)):(o=i._index*4,r(o+0,a,c,d,u),r(o+1,a,c,d,u),r(o+2,a,c,d,u),r(o+3,a,c,d,u))}function ZTt(e,t,n,i){SSe(e,t,n,i),CSe(e,t,n,i),VSe(e,t,n,i),LSe(e,t,n,i)}function GTt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=STt(a),o._spNoise=tn.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,d=o.noiseOffset;o._noiseTexture=new Pt({context:a,width:r*r/s,height:r*s,pixelDatatype:qe.UNSIGNED_BYTE,pixelFormat:ot.RGBA,sampler:new en({wrapS:Cn.REPEAT,wrapT:Cn.REPEAT,minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST})});let u=new Xc({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:_Se(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return d}},persists:!1,owner:e,postExecute:function(m){o._ready=!0,o._loading=!1}});t.commandList.push(u),o._loading=!0}function ETt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=RTt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];ZTt(e,t,s,c)}n._vaf.commit(N7(i))}}var ITt=[];function XTt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,d=ITt;d.length=0,(c[hTt]||c[fTt])&&d.push(SSe),(c[mTt]||c[gTt])&&d.push(CSe),(c[pTt]||c[bTt])&&d.push(VSe),c[xTt]&&d.push(LSe);let u=d.length,m=i._vaf.writers,p,g,f;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,f=0;f<u;++f)d[f](e,t,m,g);i._vaf.commit(N7(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,f=0;f<u;++f)d[f](e,t,m,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function WTt(e,t,n,i){let o=t.context,r=e,s=new De({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new De({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=tn.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:iu}),r._rs=Ue.fromCache({depthTest:{enabled:!0,func:ie.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function PTt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let d=0;d<c;d++){let u=s[d];l(u)||(u=s[d]=new tt),u.pass=Ge.TRANSLUCENT,u.owner=e,u.uniformMap=o,u.count=a[d].indicesCount,u.vertexArray=a[d].va,u.shaderProgram=n._sp,u.renderState=n._rs,n._instanced&&(u.count=6,u.instanceCount=n._clouds.length),r.push(u)}}}vh.prototype.update=function(e){if(M7(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&>t(this,e,sM,rM),this._instanced=e.context.instancedArrays,iu=this._instanced?uTt:dTt,N7=this._instanced?VTt:CTt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?ETt(this,e):r>0&&XTt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&WTt(this,e,oM,iM),PTt(this,e))};vh.prototype.isDestroyed=function(){return!1};vh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),TSe(this._clouds),me(this)};var k7=vh;var Vqi=T(S(),1);var vTt=W.toRadians(30);function U7(e){this._angle=y(e,vTt)}Object.defineProperties(U7.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});U7.prototype.emit=function(e){let t=Math.tan(this._angle),n=W.randomBetween(0,W.TWO_PI),i=W.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var D7=U7;var Eqi=T(S(),1);function CM(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=eo.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(CM.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});CM.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;CM.prototype.isTranslucent=eo.prototype.isTranslucent;CM.prototype.getRenderState=eo.prototype.getRenderState;var B7=CM;var Dqi=T(S(),1);function t3(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._modelMatrix=new M,this.id=e.id,this._id=void 0,this._primitive=void 0}t3.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!M.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=M.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new Gt({geometry:new Ob({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Jr.VERTEX_FORMAT,colors:[B.RED,B.RED],arcType:nn.NONE}),modelMatrix:M.multiplyByUniformScale(this.modelMatrix,this.length,new M),id:this.id,pickPrimitive:this}),n=new Gt({geometry:new Ob({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Jr.VERTEX_FORMAT,colors:[B.GREEN,B.GREEN],arcType:nn.NONE}),modelMatrix:M.multiplyByUniformScale(this.modelMatrix,this.length,new M),id:this.id,pickPrimitive:this}),i=new Gt({geometry:new Ob({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Jr.VERTEX_FORMAT,colors:[B.BLUE,B.BLUE],arcType:nn.NONE}),modelMatrix:M.multiplyByUniformScale(this.modelMatrix,this.length,new M),id:this.id,pickPrimitive:this});this._primitive=new In({geometryInstances:[t,n,i],appearance:new Jr,asynchronous:!1})}this._primitive.update(e)}};t3.prototype.isDestroyed=function(){return!1};t3.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),me(this)};var VM=t3;var zqi=T(S(),1);function wTt(e){this.direction=h.clone(e.direction),this.color=B.clone(y(e.color,B.WHITE)),this.intensity=y(e.intensity,1)}var O7=wTt;var s$i=T(S(),1);var Jqi=T(S(),1),LM=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var jqi=T(S(),1),RM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function mS(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:Oi.fromType(Oi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,RM),this._fragmentShaderSource=y(e.fragmentShaderSource,LM),this._renderState=eo.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(mS.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return mS.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});mS.VERTEX_FORMAT=We.POSITION_AND_ST;mS.prototype.getFragmentShaderSource=eo.prototype.getFragmentShaderSource;mS.prototype.isTranslucent=eo.prototype.isTranslucent;mS.prototype.getRenderState=eo.prototype.getRenderState;var Y7=mS;var f$i=T(S(),1);function $l(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,$l.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,$l.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,$l.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,$l.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,$l.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new be,this._nominalFrameRate=new be,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){FTt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){ATt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}$l.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};$l.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new $l({scene:e})),e._frameRateMonitor};Object.defineProperties($l.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});$l.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};$l.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};$l.prototype.isDestroyed=function(){return!1};$l.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),me(this)};function FTt(e,t){if(e._pauseCount>0)return;let n=_i();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/zn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/zn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/zn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function ATt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var ZM=$l;var G$i=T(S(),1);var RSe=T(o7(),1);function H7(){this._image=new Image}H7.prototype.isReady=function(){return!0};H7.prototype.shouldDiscardImage=function(e){return e===this._image};function hS(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new ae(-W.PI,-W.PI,W.PI,W.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new Et(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new H7),this._errorEvent=new be}Object.defineProperties(hS.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});hS.fromMetadata=function(e,t){if(!e.imageryPresent)throw new de(`The server ${e.url} doesn't have imagery`);let n=new hS(t);return n._metadata=e,n};hS.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};hS.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=g0.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let d=new Ho({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,d);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=MTt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(d){bM(r.key,d);let u=new Uint8Array(d),m,p=r.protoImagery;if((!l(p)||!p)&&(m=NTt(u)),!l(m)&&(!l(p)||p)){let g=kTt(u);m=g.imageType,u=g.imageData}return!l(m)||!l(u)?o:jx({uint8Array:u,format:m,flipY:!0})})};hS.prototype.pickFeatures=function(e,t,n,i,o){};function MTt(e,t,n,i,o,r){let s=g0.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function NTt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function kTt(e){let t=RSe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new de("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var z7=hS;var w$i=T(S(),1);var UTt=new B(1,1,1,.4),DTt=new B(0,1,0,.05),BTt=new B(0,.5,0,.2);function fS(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,UTt),this._glowColor=y(e.glowColor,DTt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,BTt),this._errorEvent=new be,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(fS.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});fS.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};fS.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};fS.prototype.getTileCredits=function(e,t,n){};fS.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};fS.prototype.pickFeatures=function(e,t,n,i,o){};var K7=fS;var gto=T(S(),1);var Deo=T(S(),1);var Veo=T(S(),1);var Y$i=T(S(),1);function wh(){}wh._maxDecodingConcurrency=Math.max(zt.hardwareConcurrency-1,1);wh._decodeTaskProcessor=new bi("decodeI3S",wh._maxDecodingConcurrency);wh._promise=void 0;async function OTt(){if(await wh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return wh._decodeTaskProcessor;throw new de("I3S decoder could not be initialized.")}wh.decode=async function(e,t,n,i,o){return l(wh._promise)||(wh._promise=OTt()),wh._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,d=0,u=0;l(s.obb)?(c=s.obb.center[0],d=s.obb.center[1],u=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],d=s.mbs[1],u=s.mbs[2]);let m=$.fromRotationX(-W.PI_OVER_TWO),p=new $;$.multiply(m,a,p);let g=he.fromDegrees(c,d,u),f=ne.WGS84.cartographicToCartesian(g),x={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ne.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:g,cartesianCenter:f,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(x)})};var GM=wh;var J$i=T(S(),1);function J7(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(J7.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});J7.prototype.load=async function(){return this._data=await Fh.loadJson(this._resource),this._data};var EM=J7;var $$i=T(S(),1);function y0(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(y0.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function n3(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function YTt(e){return e==="String"?1:n3(e)}async function HTt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}y0.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=HTt(this).catch(function(e){console.error(e)}),this._loadPromise)};y0.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};y0.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};y0.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let d=0;d<a;++d){let u=this._parseValue(e,r.valueType,t);u.value.charCodeAt(0)!==0&&(c+=u.value),t=u.offset}this._values[o].push(c)}}}};y0.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=n3(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=n3(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};y0.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=YTt(i.valueType)}if(e.byteLength<t)throw new de(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};y0.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new de(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=n3(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new de(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new de(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new de(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var IM=y0;var seo=T(S(),1);function XM(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(XM.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});XM.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var zTt=new h,KTt=new h,JTt=new h,QTt=new h,jTt=new h;function Q7(e,t,n,i){let o=h.subtract(i,n,zTt),r=h.cross(o,h.subtract(e,n,KTt),QTt),s=h.cross(o,h.subtract(t,n,JTt),jTt);return h.dot(r,s)>=0}var qTt=new h,$Tt=new h,eSt=new h,tSt=new h,nSt=new h,iSt=new h,oSt=new h,rSt=new h,sSt=new h,aSt=new h;XM.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,d=this._customAttributes.positions,u=this._customAttributes.indices,m;l(u)?m=u.length:m=d.length/3;for(let p=0;p<m;p++){let g,f,x;l(u)?(g=u[p],f=u[p+1],x=u[p+2]):(g=p*3,f=p*3+1,x=p*3+2);let _=h.fromElements(d[g*3],d[g*3+1],d[g*3+2],qTt),C=h.fromElements(d[f*3],d[f*3+1],d[f*3+2],$Tt),V=new h(d[x*3],d[x*3+1],d[x*3+2],eSt);if(!Q7(i,_,C,V)||!Q7(i,C,_,V)||!Q7(i,V,_,C))continue;let L=h.subtract(C,_,tSt),Z=h.subtract(V,_,nSt),G=h.cross(L,Z,iSt);if(h.magnitude(G)===0)continue;let I=h.normalize(G,oSt),v=h.subtract(i,_,rSt),P=Math.abs(h.dot(v,I));if(P<o){o=P,r=p;let w=h.magnitudeSquared(h.subtract(i,_,v)),F=h.magnitudeSquared(h.subtract(i,C,sSt)),b=h.magnitudeSquared(h.subtract(i,V,aSt));w<F&&w<b?(a=g,c=_,s=w):F<b?(a=f,c=C,s=F):(a=x,c=V,s=b)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function ZSe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(lS(e[i])):t.push(e[i]);return t}XM.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},d=!1,u,m="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let L=this._parent._data.mesh.material.definition;if(L>=0&&L<this._layer._data.materialDefinitions.length){if(u=this._layer._data.materialDefinitions[L],c=u,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){d=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let Z="0";if(l(this._layer._data.textureSetDefinitions))for(let G=0;G<this._layer._data.textureSetDefinitions.length;G++){let I=this._layer._data.textureSetDefinitions[G];for(let v=0;v<I.formats.length;v++){let P=I.formats[v];if(P.format==="jpg"){Z=P.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(m=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${Z}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=ZSe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=ZSe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(d=!0,m=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],g=[],f=[];d&&(p=[{sampler:0,source:0}],g=[{uri:m}],f=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let x=[],_=n.length;for(let V=0;V<_;V++){let L=n[V].primitives,Z=L.length;for(let G=0;G<Z;G++){let I=L[G];if(l(I.material)){for(;I.material>=x.length;){let P=Ye(c,!0);x.push(P)}let v=x[I.material];l(I.extra)&&I.extra.isTransparent?l(v.alphaMode)||(v.alphaMode="BLEND"):v.alphaMode==="BLEND"&&(v.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:x,textures:p,images:g,samplers:f,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var ZL=XM;function Rc(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(Rc.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Rc.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new ku(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await Fh.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&l(e._parent.resource)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function GSe(e,t){let n=new IM(e,t);return e._fields[t.name]=n,n.load()}Rc.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(GSe(this,i))}return Promise.all(t)};Rc.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return GSe(this,o)}return Promise.resolve()};Rc.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Rc.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Rc.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Rc(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Rc.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new ZL(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new ZL(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Rc.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new EM(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Rc.prototype._clearGeometryData=function(){this._geometryData=[]};Rc.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=he.fromDegrees(e.center[0],e.center[1],e.center[2]):n=he.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let C=0;C<this._dataProvider._geoidDataList.length;C++){let V=this._dataProvider._geoidDataList[C],L=V.projection.project(n);if(L.x>V.nativeExtent.west&&L.x<V.nativeExtent.east&&L.y>V.nativeExtent.south&&L.y<V.nativeExtent.north){n.height+=uSt(L.x,L.y,V);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=ne.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ne.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let C=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/C}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let C=this._data.lodThreshold;s=r/C}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let C=0;C<this._data.lodSelection.length;C++)this._data.lodSelection[C].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[C].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Ca(0,0,0),d=Ft.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(d=new we(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let u=$.fromQuaternion(d),m=$.inverse(u,new $),p=new M(u[0],u[1],u[2],0,u[3],u[4],u[5],0,u[6],u[7],u[8],0,o.x,o.y,o.z,1),g=M.inverse(p,new M),f=M.clone(p);l(this._parent._globalTransform)&&M.multiply(p,this._parent._inverseGlobalTransform,f),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=m;let x=[];for(let C=0;C<this._children.length;C++)x.push(this._children[C]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[f[0],f[4],f[8],f[12],f[1],f[5],f[9],f[13],f[2],f[6],f[10],f[14],f[3],f[7],f[11],f[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Rc.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};Rc.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await GM.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function cSt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function lSt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function ESe(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await cSt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!lSt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}Rc.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=ESe(this,t);e.push(n)}return Promise.all(e)};ku.prototype._hookedRequestContent=ku.prototype.requestContent;ku.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new Ee({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{ESe(e._i3sNode,n)})),e._isLoading=!1,t})}};function dSt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function i3(e,t,n,i){let o=e+t*n;return i[o]}function uSt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,d=a<n.height?a+1:a;a=n.height-1-a,d=n.height-1-d;let u=i3(s,a,n.width,n.buffer),m=i3(c,a,n.width,n.buffer),p=i3(s,d,n.width,n.buffer),g=i3(c,d,n.width,n.buffer),f=dSt(o,r,u,m,p,g);return f=f*n.scale+n.offset,f}Object.defineProperties(ku.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var GL=Rc;var Ieo=T(S(),1);function o3(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(o3.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function j7(e,t){let n=[];for(let i=0;i<e.length;i++){let o=B.byteToFloat(e[i]);i<3?n.push(lS(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function EL(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=j7(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=j7(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=j7(a.color,a.transparency)))}break}}return n}function mSt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=EL(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let d=a[c],u=n;for(let m=0;m<d.length;m++){let p=d[m];m===d.length-1?u[p]=s:(l(u[p])||(u[p]={}),u=u[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=EL(o.symbol,t)}return n}}function hSt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=y(o.classMaxValue,o.classMinValue),a=y(r.classMaxValue,r.classMinValue);return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(EL(r.symbol,t)))}return i.symbols.push(void 0),i}}o3.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=EL(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=EL(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=mSt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=EL(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=hSt(i,n))}};function ISe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?ISe(s,t,n,i):s}}function fSt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function pSt(e,t,n){let i=t[n],o=fSt(e.ranges,i);return e.symbols[o]}o3.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>ISe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>pSt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var WM=o3;function ed(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new Ee({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(ed.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});ed.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new de(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new WM(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};ed.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let d=0;d<c.length;d++)s.push(c[d])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};ed.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n)){for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}if(l(n[0]))return{bufferIndex:0,definition:n,geometryBufferInfo:n[0]}}};ed.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new GL(this,t,!0)}else this._rootNode=new GL(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};ed.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};ed._fetchJson=function(e){return e.fetchJson()};ed.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=ed._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};ed.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=ae.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=ae.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};ed.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?Ye(e):{},e.outlineColor=B.fromCartesian4(se.fromArray(o))),this._tileset=await ua.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};ed.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};ed.prototype.filterByAttributes=function(e){this._filters=l(e)?Ye(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var pS=ed;var zeo=T(S(),1);function r3(e,t){this._dataProvider=e,this._resource=new Ee({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(r3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});r3.prototype.load=async function(){return this._data=await Fh.loadJson(this._resource),this._data};r3.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var PM=r3;var eto=T(S(),1);function vM(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=y(n.visibility,!0),this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties(vM.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});vM._fromData=async function(e,t,n,i){let o=new vM(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let d=vM._fromData(e,t,r[c],o);s.push(d)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let d=a[c];o._sublayers.push(d),o._i3sLayers.push(...d._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new Ee({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await Fh.loadJson(o._resource),c=new pS(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var wM=vM;var PSe=T(XSe(),1);function ys(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=y(e.showFeatures,!1),this._adjustMaterialAlphaMode=y(e.adjustMaterialAlphaMode,!1),this._applySymbology=y(e.applySymbology,!1),this._calculateNormals=y(e.calculateNormals,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(ys.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});ys.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return me(this)};ys.prototype.isDestroyed=function(){return!1};ys.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};ys.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};ys.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};ys.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function bSt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function WSe(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=bSt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=wM._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new PM(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=ae.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new pS(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}ys.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=Ee.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await ys.loadJson(n),o=new ys(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=WSe(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await WSe(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};ys._fetchJson=function(e){return e.fetchJson()};ys.loadJson=async function(e){let t=await ys._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new de(t.error)}return t};ys.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new de(`Failed to load binary: ${e.url}`);return t};ys.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var gSt=new D;function ySt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=he.fromRadians(t.west,t.north),a=he.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),d=n.positionToTileXY(a,r);for(let m=c.x;m<=d.x;m++)for(let p=c.y;p<=d.y;p++){let g=D.fromElements(m,p,gSt),f=g.toString();if(!o.hasOwnProperty(f)){let x={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[f]=x,i.push(x)}}let u=[];for(let m=0;m<i.length;++m){let p=i[m],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);u.push(g)}return Promise.all(u).then(function(m){let p=[];for(let g=0;g<m.length;g++){let f={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},x=m[g],_="Geographic";n._projection instanceof Zi&&(_="WebMercator");let C={projectionType:_,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(f.x,f.y,f.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===$u.LERC){let V=PSe.default.decode(x._buffer);C.buffer=V.pixels[0]}else C.buffer=x._buffer;p.push(C)}return p})}async function xSt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await ySt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}ys.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=xSt(this),this._geoidDataPromise)};ys.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?ae.union(e,n,e):e=ae.clone(n)}this._extent=e};ys.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};ys.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};ys.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var Fh=ys;var _to=T(S(),1);function vSe(){}Object.defineProperties(vSe.prototype,{color:{get:pe.throwInstantiationError},intensity:{get:pe.throwInstantiationError}});var q7=vSe;var Zto=T(S(),1);var _St=/\/$/,wSe=new Et('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function IL(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=Ee.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();_St.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new Et(c))):c=wSe,this._resource=i,this._imageryProvider=new Na({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(IL.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});IL.prototype.getTileCredits=function(e,t,n){};IL.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};IL.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};IL._defaultCredit=wSe;var $7=IL;var Eto=T(S(),1);function e6(e){}e6.prototype.isReady=function(){return!0};e6.prototype.shouldDiscardImage=function(e){return!1};var t6=e6;var Mto=T(S(),1);var TSt=new Et("MapQuest, Open Street Map and contributors, CC-BY-SA");function a3(e){e=y(e,y.EMPTY_OBJECT);let t=Ee.createIfNeeded(y(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${y(e.fileExtension,"png")}`;let n=new ns({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(ae.southwest(a),r),d=n.positionToTileXY(ae.northeast(a),r),u=(Math.abs(d.x-c.x)+1)*(Math.abs(d.y-c.y)+1),m=y(e.credit,TSt);typeof m=="string"&&(m=new Et(m)),Na.call(this,{url:t,credit:m,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(a3.prototype=Object.create(Na.prototype),a3.prototype.constructor=a3);var x0=a3;var Yto=T(S(),1);var SSt=new D(1,1);function n6(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=B.clone(y(e.startColor,B.WHITE)),this.endColor=B.clone(y(e.endColor,B.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=D.clone(y(e.imageSize,SSt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(n6.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var FSe=new h;n6.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,FSe),h.add(this.position,FSe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var XL=n6;var Kto=T(S(),1);function ASe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(ASe.prototype,{complete:{get:function(){return this._complete}}});var i6=ASe;var jto=T(S(),1);function MSe(e){}MSe.prototype.emit=function(e){pe.throwInstantiationError()};var o6=MSe;var mno=T(S(),1);var NSe=new D(1,1);function FM(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new SM(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=M.clone(y(e.modelMatrix,M.IDENTITY)),this._emitterModelMatrix=M.clone(y(e.emitterModelMatrix,M.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new M,this._startColor=B.clone(y(e.color,y(e.startColor,B.WHITE))),this._endColor=B.clone(y(e.color,y(e.endColor,B.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=D.clone(y(e.imageSize,y(e.minimumImageSize,NSe))),this._maximumImageSize=D.clone(y(e.imageSize,y(e.maximumImageSize,NSe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new be,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(FM.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!M.equals(this._modelMatrix,e),M.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!M.equals(this._emitterModelMatrix,e),M.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){B.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){B.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function CSt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let m=o.length;for(let p=0;p<m;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,d=e._particlePool,u=Math.max(a-c.length-d.length,0);for(let m=0;m<u;++m){let p=new XL;p._billboard=r.add({image:s,show:!1}),d.push(p)}e._particleEstimate=a}function VSt(e){let t=e._particlePool.pop();return l(t)||(t=new XL),t}function LSt(e,t){e._particlePool.push(t)}function RSt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let d=n[c];i.remove(d._billboard)}n.length=a}function ZSt(e){l(e._billboard)&&(e._billboard.show=!1)}function kSe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=W.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=W.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=W.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=W.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new B(i,o,r,s),n.scale=W.lerp(t.startScale,t.endScale,t.normalizedAge)}function GSt(e,t){t.startColor=B.clone(e._startColor,t.startColor),t.endColor=B.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=W.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=W.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=W.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=W.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=W.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function ESt(e,t){if(e._isComplete)return 0;t=W.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=W.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var c3=new h;FM.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new Sd),this._updateParticlePool&&(CSt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=j.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?kSe(this,s):(ZSt(s),LSt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=ESt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=M.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let d=this._combinedMatrix;for(r=0;r<c;r++)s=VSt(this),this._emitter.emit(s),h.add(s.position,s.velocity,c3),M.multiplyByPoint(d,c3,c3),s.position=M.multiplyByPoint(d,s.position,s.position),h.subtract(c3,s.position,s.velocity),h.normalize(s.velocity,s.velocity),GSt(this,s),kSe(this,s)}if(this._billboardCollection.update(e),this._previousTime=j.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=W.mod(this._currentTime,this._lifetime),this.bursts){let d=this.bursts.length;for(r=0;r<d;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&RSt(this)};FM.prototype.isDestroyed=function(){return!1};FM.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),me(this)};var r6=FM;var pno=T(S(),1);function ou(){pe.throwInstantiationError()}ou.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(ou.prototype,{quadtree:{get:pe.throwInstantiationError,set:pe.throwInstantiationError},tilingScheme:{get:pe.throwInstantiationError},errorEvent:{get:pe.throwInstantiationError}});ou.prototype.update=pe.throwInstantiationError;ou.prototype.beginUpdate=pe.throwInstantiationError;ou.prototype.endUpdate=pe.throwInstantiationError;ou.prototype.getLevelMaximumGeometricError=pe.throwInstantiationError;ou.prototype.loadTile=pe.throwInstantiationError;ou.prototype.computeTileVisibility=pe.throwInstantiationError;ou.prototype.showTileThisFrame=pe.throwInstantiationError;ou.prototype.computeDistanceToTile=pe.throwInstantiationError;ou.prototype.isDestroyed=pe.throwInstantiationError;ou.prototype.destroy=pe.throwInstantiationError;var s6=ou;var _no=T(S(),1);function a6(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(a6.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});a6.prototype.emit=function(e){let t=W.randomBetween(0,W.TWO_PI),n=W.randomBetween(0,W.PI),i=W.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var c6=a6;var Cno=T(S(),1);function AM(){}AM.prototype.evaluate=function(e,t){pe.throwInstantiationError()};AM.prototype.evaluateColor=function(e,t){pe.throwInstantiationError()};AM.prototype.getShaderFunction=function(e,t,n,i){pe.throwInstantiationError()};AM.prototype.getVariables=function(){pe.throwInstantiationError()};var l6=AM;var Gno=T(S(),1);function WL(e){this._ready=!1,this._provider=void 0,this._errorEvent=new be,this._readyEvent=new be,XSt(this,e)}Object.defineProperties(WL.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});WL.fromWorldTerrain=function(e){return new WL(cS(e))};WL.fromWorldBathymetry=function(e){return new WL(pM(e))};function ISt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function XSt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){ISt(e._errorEvent,i)}}var MM=WL;var Xno=T(S(),1);function PL(){}PL.prototype.boundingVolume=void 0;PL.prototype.boundingSphere=void 0;PL.prototype.distanceToCamera=function(e){pe.throwInstantiationError()};PL.prototype.intersectPlane=function(e){pe.throwInstantiationError()};PL.prototype.createDebugVolume=function(e){pe.throwInstantiationError()};var d6=PL;var Mno=T(S(),1);function NM(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._color=y(e.color,B.YELLOW),this._errorEvent=new be,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(NM.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});NM.prototype.getTileCredits=function(e,t,n){};NM.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};NM.prototype.pickFeatures=function(e,t,n,i,o){};var kM=NM;var Uno=T(S(),1);function u6(e){pe.throwInstantiationError()}u6.prototype.isReady=pe.throwInstantiationError;u6.prototype.shouldDiscardImage=pe.throwInstantiationError;var m6=u6;var Bno=T(S(),1),WSt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},h6=Object.freeze(WSt);var tio=T(S(),1);function l3(e,t){this.show=!0,l(e)||(e=new Ke),this.rectangle=Ke.clone(e),l(t)||(t=Oi.fromType(Oi.ColorType,{color:new B(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}l3.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!Ke.equals(t.viewport,this.rectangle))&&(this._rs=Ue.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new De({sources:[this._material.shaderSource,aM]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=Ge.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};l3.prototype.isDestroyed=function(){return!1};l3.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),me(this)};var f6=l3;var oio=T(S(),1);function p6(){pe.throwInstantiationError()}Object.defineProperties(p6.prototype,{globalTransform:{get:pe.throwInstantiationError},shapeTransform:{get:pe.throwInstantiationError},shape:{get:pe.throwInstantiationError},minBounds:{get:pe.throwInstantiationError},maxBounds:{get:pe.throwInstantiationError},dimensions:{get:pe.throwInstantiationError},paddingBefore:{get:pe.throwInstantiationError},paddingAfter:{get:pe.throwInstantiationError},names:{get:pe.throwInstantiationError},types:{get:pe.throwInstantiationError},componentTypes:{get:pe.throwInstantiationError},minimumValues:{get:pe.throwInstantiationError},maximumValues:{get:pe.throwInstantiationError},maximumTileCount:{get:pe.throwInstantiationError},keyframeCount:{get:pe.throwInstantiationError},timeIntervalCollection:{get:pe.throwInstantiationError}});p6.prototype.requestData=pe.throwInstantiationError;var b6=p6;var aio=T(S(),1);function bS(){pe.throwInstantiationError()}Object.defineProperties(bS.prototype,{orientedBoundingBox:{get:pe.throwInstantiationError},boundingSphere:{get:pe.throwInstantiationError},boundTransform:{get:pe.throwInstantiationError},shapeTransform:{get:pe.throwInstantiationError},shaderUniforms:{get:pe.throwInstantiationError},shaderDefines:{get:pe.throwInstantiationError},shaderMaximumIntersectionsLength:{get:pe.throwInstantiationError}});bS.prototype.update=pe.throwInstantiationError;bS.prototype.computeOrientedBoundingBoxForTile=pe.throwInstantiationError;bS.prototype.computeOrientedBoundingBoxForSample=pe.throwInstantiationError;bS.DefaultMinBounds=pe.throwInstantiationError;bS.DefaultMaxBounds=pe.throwInstantiationError;var g6=bS;var Cio=T(S(),1);var PSt=new B,vSt=new B,wSt=new B,FSt=new B,USe=new se,UM=new Uint8Array(4);function DSe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return B.lerp(t.color,n.color,o,i)}function d3(e,t){return{height:e,color:B.clone(t)}}function BSe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?B.equals(t.color,i[n-1].color):!1,a=r?B.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?B.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function ASt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],f=W.clamp(g.height,td._minimumHeight,td._maximumHeight),x=B.clone(g.color,PSt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(d3(f,x))}let d=!0,u=!0;for(n=0;n<a-1;n++){let g=c[n+0],f=c[n+1];d=d&&g.height<=f.height,u=u&&g.height>=f.height}u?c=c.reverse():d||o0(c,function(g,f){return W.sign(g.height-f.height)});let m=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!m&&!p&&(m=!0,p=!0),m&&c.splice(0,0,d3(td._minimumHeight,c[0].color)),p&&c.splice(c.length,0,d3(td._maximumHeight,c[c.length-1].color)),c=BSe(c),i.push(c)}return i}function MSt(e){let t=ASt(e),n=[],i=[],o;function r(d,u){n.push(d3(d,u))}function s(d,u,m){let p=B.multiplyByScalar(m,1-u.alpha,FSt);p=B.add(p,u,p),r(d,p)}let a=t.length;for(o=0;o<a;o++){let d=t[o],u=0,m=0;i=n,n=[];let p=d.length,g=i.length;for(;u<p||m<g;){let f=u<p?d[u]:void 0,x=u>0?d[u-1]:void 0,_=u<p-1?d[u+1]:void 0,C=m<g?i[m]:void 0,V=m>0?i[m-1]:void 0,L=m<g-1?i[m+1]:void 0;if(l(f)&&l(C)&&f.height===C.height){let Z=l(L)&&C.height===L.height,G=!l(V),I=!l(L),v=l(_)&&f.height===_.height,P=!l(x),w=!l(_);Z?v?(s(f.height,f.color,C.color),s(f.height,_.color,L.color)):P?(r(f.height,C.color),s(f.height,f.color,L.color)):w?(s(f.height,f.color,C.color),r(f.height,L.color)):(s(f.height,f.color,C.color),s(f.height,f.color,L.color)):G?v?(r(f.height,f.color),s(f.height,_.color,C.color)):w?(r(f.height,f.color),r(f.height,C.color)):(P||r(f.height,f.color),s(f.height,f.color,C.color)):I?v?(s(f.height,f.color,C.color),r(f.height,_.color)):P?(r(f.height,C.color),r(f.height,f.color)):w?s(f.height,f.color,C.color):(s(f.height,f.color,C.color),r(f.height,f.color)):v?(s(f.height,f.color,C.color),s(f.height,_.color,C.color)):P?(r(f.height,C.color),s(f.height,f.color,C.color)):w?(s(f.height,f.color,C.color),r(f.height,C.color)):s(f.height,f.color,C.color),u+=v?2:1,m+=Z?2:1}else if(l(f)&&l(C)&&l(V)&&f.height<C.height){let Z=DSe(f.height,V,C,wSt);l(x)?l(_)?s(f.height,f.color,Z):(s(f.height,f.color,Z),r(f.height,Z)):(r(f.height,Z),s(f.height,f.color,Z)),u++}else if(l(C)&&l(f)&&l(x)&&C.height<f.height){let Z=DSe(C.height,x,f,vSt);l(V)?l(L)?s(C.height,Z,C.color):(s(C.height,Z,C.color),r(C.height,Z)):(r(C.height,Z),s(C.height,Z,C.color)),m++}else l(f)&&(!l(C)||f.height<C.height)?(l(C)&&!l(V)&&!l(_)?(r(f.height,f.color),r(f.height,td._emptyColor),r(C.height,td._emptyColor)):(!l(C)&&l(V)&&!l(x)&&(r(V.height,td._emptyColor),r(f.height,td._emptyColor)),r(f.height,f.color)),u++):l(C)&&(!l(f)||C.height<f.height)&&(r(C.height,C.color),m++)}}return BSe(n)}function td(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=MSt(n),r=o.length,s,a,c;if(!td._useFloatTexture(i)){a=qe.UNSIGNED_BYTE,c=ot.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)se.packFloat(o[g].height,USe),se.pack(USe,s,g*4)}else{a=qe.FLOAT,c=i.webgl2?ot.RED:ot.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let u=Pt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.NEAREST,magnificationFilter:hi.NEAREST})}),m=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(UM),m[g*4+0]=UM[0],m[g*4+1]=UM[1],m[g*4+2]=UM[2],m[g*4+3]=UM[3];let p=Pt.create({context:i,pixelFormat:ot.RGBA,pixelDatatype:qe.UNSIGNED_BYTE,source:{arrayBufferView:m,width:r,height:1},sampler:new en({wrapS:Cn.CLAMP_TO_EDGE,wrapT:Cn.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:hi.LINEAR})});return Oi.fromType("ElevationBand",{heights:u,colors:p})}td._useFloatTexture=function(e){return e.floatingPointTexture};td._maximumHeight=5906376425472;td._minimumHeight=-5906376425472;td._emptyColor=new B(0,0,0,0);var y6=td;var Xio=T(S(),1);async function NSt(e,t){if(t=y(t,{}),t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),t.enableCollision=y(t.enableCollision,!0),e=y(e,sS.defaultApiKey),!l(e))return kSt(t);let n,i=sS.getDefaultCredit();l(i)&&(n=[i]);let o=new Ee({url:`${sS.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return ua.fromUrl(o,t)}var OSe={};async function kSt(e){let i=OSe[2275207];l(i)||(i=fd.fromAssetId(2275207),OSe[2275207]=i);let o=await i;return ua.fromUrl(o,e)}var x6=NSt;var Mio=T(S(),1);async function USt(e){let t=await ua.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,B.WHITE).toCssColorString();n=new dS({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var _6=USt;var Kio=T(S(),1);function DSt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=M.clone(y(e.modelMatrix,M.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new Gt({geometry:Fn.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Kt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new Gt({geometry:Fn.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Kt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new Gt({geometry:Fn.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Kt(0,0,1,1)},modelMatrix:o})),t.length>0)return new In({asynchronous:!1,geometryInstances:t,appearance:new dn({flat:!0,translucent:!1})})}var T6=DSt;var Qio=T(S(),1),S6=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;var ooo=T(S(),1);function BSt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,ot.RGBA),this.pixelDatatype=y(e.pixelDatatype,qe.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=Ee.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Cn.REPEAT:Cn.CLAMP_TO_EDGE;this.sampler=new en({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var C6=BSt;var soo=T(S(),1),OSt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},V6=Object.freeze(OSt);var coo=T(S(),1),YSt={SIGX:"SIGX",SIGY:"SIGY",SIGZ:"SIGZ",VARX:"VARX",VARY:"VARY",VARZ:"VARZ",SIGR:"VARZ"},L6=Object.freeze(YSt);var uoo=T(S(),1);function HSt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${Mf(s)} + with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var R6=HSt;globalThis.CESIUM_VERSION="1.123";var MEo=T(S(),1);var pVo=T(S(),1);var uVo=T(S(),1);var nVo=T(S(),1),DM;typeof ko<"u"&&(DM=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(b,R){return b===null||typeof b in x?b===R:!1}function d(b,R){var E;return function(){E||(E=f.a.setTimeout(function(){E=e,b()},R))}}function u(b,R){var E;return function(){clearTimeout(E),E=f.a.setTimeout(b,R)}}function m(b,R){R&&R!=="change"?R==="beforeChange"?this.pc(b):this.gb(b,R):this.qc(b)}function p(b,R){R!==null&&R.s&&R.s()}function g(b,R){var E=this.qd,X=E[Z];X.ra||(this.Qb&&this.mb[R]?(E.uc(R,b,this.mb[R]),this.mb[R]=null,--this.Qb):X.I[R]||E.uc(R,b,X.J?{da:b}:E.$c(b)),b.Ja&&b.gd())}var f=typeof s<"u"?s:{};f.b=function(b,R){for(var E=b.split("."),X=f,A=0;A<E.length-1;A++)X=X[E[A]];X[E[E.length-1]]=R},f.L=function(b,R,E){b[R]=E},f.version="3.5.1",f.b("version",f.version),f.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},f.a=function(){function b(z,q){for(var ee in z)A.call(z,ee)&&q(ee,z[ee])}function R(z,q){if(q)for(var ee in q)A.call(q,ee)&&(z[ee]=q[ee]);return z}function E(z,q){return z.__proto__=q,z}function X(z,q,ee,fe){var _e=z[q].match(J)||[];f.a.D(ee.match(J),function(le){f.a.Na(_e,le,fe)}),z[q]=_e.join(" ")}var A=Object.prototype.hasOwnProperty,N={__proto__:[]}instanceof Array,O=typeof Symbol=="function",U={},Y={};U[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],U.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),b(U,function(z,q){if(q.length)for(var ee=0,fe=q.length;ee<fe;ee++)Y[q[ee]]=z});var k={propertychange:!0},H=n&&function(){for(var z=3,q=n.createElement("div"),ee=q.getElementsByTagName("i");q.innerHTML="<!--[if gt IE "+ ++z+"]><i></i><![endif]-->",ee[0];);return 4<z?z:e}(),J=/\S+/g,te;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(z,q,ee){for(var fe=0,_e=z.length;fe<_e;fe++)q.call(ee,z[fe],fe,z)},A:typeof Array.prototype.indexOf=="function"?function(z,q){return Array.prototype.indexOf.call(z,q)}:function(z,q){for(var ee=0,fe=z.length;ee<fe;ee++)if(z[ee]===q)return ee;return-1},Lb:function(z,q,ee){for(var fe=0,_e=z.length;fe<_e;fe++)if(q.call(ee,z[fe],fe,z))return z[fe];return e},Pa:function(z,q){var ee=f.a.A(z,q);0<ee?z.splice(ee,1):ee===0&&z.shift()},wc:function(z){var q=[];return z&&f.a.D(z,function(ee){0>f.a.A(q,ee)&&q.push(ee)}),q},Mb:function(z,q,ee){var fe=[];if(z)for(var _e=0,le=z.length;_e<le;_e++)fe.push(q.call(ee,z[_e],_e));return fe},jb:function(z,q,ee){var fe=[];if(z)for(var _e=0,le=z.length;_e<le;_e++)q.call(ee,z[_e],_e)&&fe.push(z[_e]);return fe},Nb:function(z,q){if(q instanceof Array)z.push.apply(z,q);else for(var ee=0,fe=q.length;ee<fe;ee++)z.push(q[ee]);return z},Na:function(z,q,ee){var fe=f.a.A(f.a.bc(z),q);0>fe?ee&&z.push(q):ee||z.splice(fe,1)},Ba:N,extend:R,setPrototypeOf:E,Ab:N?E:R,P:b,Ga:function(z,q,ee){if(!z)return z;var fe={},_e;for(_e in z)A.call(z,_e)&&(fe[_e]=q.call(ee,z[_e],_e,z));return fe},Tb:function(z){for(;z.firstChild;)f.removeNode(z.firstChild)},Yb:function(z){z=f.a.la(z);for(var q=(z[0]&&z[0].ownerDocument||n).createElement("div"),ee=0,fe=z.length;ee<fe;ee++)q.appendChild(f.oa(z[ee]));return q},Ca:function(z,q){for(var ee=0,fe=z.length,_e=[];ee<fe;ee++){var le=z[ee].cloneNode(!0);_e.push(q?f.oa(le):le)}return _e},va:function(z,q){if(f.a.Tb(z),q)for(var ee=0,fe=q.length;ee<fe;ee++)z.appendChild(q[ee])},Xc:function(z,q){var ee=z.nodeType?[z]:z;if(0<ee.length){for(var fe=ee[0],_e=fe.parentNode,le=0,ye=q.length;le<ye;le++)_e.insertBefore(q[le],fe);for(le=0,ye=ee.length;le<ye;le++)f.removeNode(ee[le])}},Ua:function(z,q){if(z.length){for(q=q.nodeType===8&&q.parentNode||q;z.length&&z[0].parentNode!==q;)z.splice(0,1);for(;1<z.length&&z[z.length-1].parentNode!==q;)z.length--;if(1<z.length){var ee=z[0],fe=z[z.length-1];for(z.length=0;ee!==fe;)z.push(ee),ee=ee.nextSibling;z.push(fe)}}return z},Zc:function(z,q){7>H?z.setAttribute("selected",q):z.selected=q},Db:function(z){return z===null||z===e?"":z.trim?z.trim():z.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(z,q){return z=z||"",q.length>z.length?!1:z.substring(0,q.length)===q},vd:function(z,q){if(z===q)return!0;if(z.nodeType===11)return!1;if(q.contains)return q.contains(z.nodeType!==1?z.parentNode:z);if(q.compareDocumentPosition)return(q.compareDocumentPosition(z)&16)==16;for(;z&&z!=q;)z=z.parentNode;return!!z},Sb:function(z){return f.a.vd(z,z.ownerDocument.documentElement)},kd:function(z){return!!f.a.Lb(z,f.a.Sb)},R:function(z){return z&&z.tagName&&z.tagName.toLowerCase()},Ac:function(z){return f.onError?function(){try{return z.apply(this,arguments)}catch(q){throw f.onError&&f.onError(q),q}}:z},setTimeout:function(z,q){return setTimeout(f.a.Ac(z),q)},Gc:function(z){setTimeout(function(){throw f.onError&&f.onError(z),z},0)},B:function(z,q,ee){var fe=f.a.Ac(ee);if(ee=k[q],f.options.useOnlyNativeEvents||ee||!o)if(ee||typeof z.addEventListener!="function")if(typeof z.attachEvent<"u"){var _e=function(ye){fe.call(z,ye)},le="on"+q;z.attachEvent(le,_e),f.a.K.za(z,function(){z.detachEvent(le,_e)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else z.addEventListener(q,fe,!1);else te||(te=typeof o(z).on=="function"?"on":"bind"),o(z)[te](q,fe)},Fb:function(z,q){if(!z||!z.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var ee;if(f.a.R(z)==="input"&&z.type&&q.toLowerCase()=="click"?(ee=z.type,ee=ee=="checkbox"||ee=="radio"):ee=!1,f.options.useOnlyNativeEvents||!o||ee)if(typeof n.createEvent=="function")if(typeof z.dispatchEvent=="function")ee=n.createEvent(Y[q]||"HTMLEvents"),ee.initEvent(q,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,z),z.dispatchEvent(ee);else throw Error("The supplied element doesn't support dispatchEvent");else if(ee&&z.click)z.click();else if(typeof z.fireEvent<"u")z.fireEvent("on"+q);else throw Error("Browser doesn't support triggering events");else o(z).trigger(q)},f:function(z){return f.O(z)?z():z},bc:function(z){return f.O(z)?z.v():z},Eb:function(z,q,ee){var fe;q&&(typeof z.classList=="object"?(fe=z.classList[ee?"add":"remove"],f.a.D(q.match(J),function(_e){fe.call(z.classList,_e)})):typeof z.className.baseVal=="string"?X(z.className,"baseVal",q,ee):X(z,"className",q,ee))},Bb:function(z,q){var ee=f.a.f(q);(ee===null||ee===e)&&(ee="");var fe=f.h.firstChild(z);!fe||fe.nodeType!=3||f.h.nextSibling(fe)?f.h.va(z,[z.ownerDocument.createTextNode(ee)]):fe.data=ee,f.a.Ad(z)},Yc:function(z,q){if(z.name=q,7>=H)try{var ee=z.name.replace(/[&<>'"]/g,function(fe){return"&#"+fe.charCodeAt(0)+";"});z.mergeAttributes(n.createElement("<input name='"+ee+"'/>"),!1)}catch{}},Ad:function(z){9<=H&&(z=z.nodeType==1?z:z.parentNode,z.style&&(z.style.zoom=z.style.zoom))},wd:function(z){if(H){var q=z.style.width;z.style.width=0,z.style.width=q}},Pd:function(z,q){z=f.a.f(z),q=f.a.f(q);for(var ee=[],fe=z;fe<=q;fe++)ee.push(fe);return ee},la:function(z){for(var q=[],ee=0,fe=z.length;ee<fe;ee++)q.push(z[ee]);return q},Da:function(z){return O?Symbol(z):z},Zd:H===6,$d:H===7,W:H,Lc:function(z,q){for(var ee=f.a.la(z.getElementsByTagName("input")).concat(f.a.la(z.getElementsByTagName("textarea"))),fe=typeof q=="string"?function(ye){return ye.name===q}:function(ye){return q.test(ye.name)},_e=[],le=ee.length-1;0<=le;le--)fe(ee[le])&&_e.push(ee[le]);return _e},Nd:function(z){return typeof z=="string"&&(z=f.a.Db(z))?r&&r.parse?r.parse(z):new Function("return "+z)():null},hc:function(z,q,ee){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(f.a.f(z),q,ee)},Od:function(z,q,ee){ee=ee||{};var fe=ee.params||{},_e=ee.includeFields||this.Jc,le=z;if(typeof z=="object"&&f.a.R(z)==="form")for(var le=z.action,ye=_e.length-1;0<=ye;ye--)for(var Te=f.a.Lc(z,_e[ye]),Xe=Te.length-1;0<=Xe;Xe--)fe[Te[Xe].name]=Te[Xe].value;q=f.a.f(q);var Le=n.createElement("form");Le.style.display="none",Le.action=le,Le.method="post";for(var ke in q)z=n.createElement("input"),z.type="hidden",z.name=ke,z.value=f.a.hc(f.a.f(q[ke])),Le.appendChild(z);b(fe,function(Oe,at){var Mt=n.createElement("input");Mt.type="hidden",Mt.name=Oe,Mt.value=at,Le.appendChild(Mt)}),n.body.appendChild(Le),ee.submitter?ee.submitter(Le):Le.submit(),setTimeout(function(){Le.parentNode.removeChild(Le)},0)}}}(),f.b("utils",f.a),f.b("utils.arrayForEach",f.a.D),f.b("utils.arrayFirst",f.a.Lb),f.b("utils.arrayFilter",f.a.jb),f.b("utils.arrayGetDistinctValues",f.a.wc),f.b("utils.arrayIndexOf",f.a.A),f.b("utils.arrayMap",f.a.Mb),f.b("utils.arrayPushAll",f.a.Nb),f.b("utils.arrayRemoveItem",f.a.Pa),f.b("utils.cloneNodes",f.a.Ca),f.b("utils.createSymbolOrString",f.a.Da),f.b("utils.extend",f.a.extend),f.b("utils.fieldsIncludedWithJsonPost",f.a.Jc),f.b("utils.getFormFields",f.a.Lc),f.b("utils.objectMap",f.a.Ga),f.b("utils.peekObservable",f.a.bc),f.b("utils.postJson",f.a.Od),f.b("utils.parseJson",f.a.Nd),f.b("utils.registerEventHandler",f.a.B),f.b("utils.stringifyJson",f.a.hc),f.b("utils.range",f.a.Pd),f.b("utils.toggleDomNodeCssClass",f.a.Eb),f.b("utils.triggerEvent",f.a.Fb),f.b("utils.unwrapObservable",f.a.f),f.b("utils.objectForEach",f.a.P),f.b("utils.addOrRemoveItem",f.a.Na),f.b("utils.setTextContent",f.a.Bb),f.b("unwrap",f.a.f),Function.prototype.bind||(Function.prototype.bind=function(b){var R=this;if(arguments.length===1)return function(){return R.apply(b,arguments)};var E=Array.prototype.slice.call(arguments,1);return function(){var X=E.slice(0);return X.push.apply(X,arguments),R.apply(b,X)}}),f.a.g=new function(){var b=0,R="__ko__"+new Date().getTime(),E={},X,A;return f.a.W?(X=function(N,O){var U=N[R];if(!U||U==="null"||!E[U]){if(!O)return e;U=N[R]="ko"+b++,E[U]={}}return E[U]},A=function(N){var O=N[R];return O?(delete E[O],N[R]=null,!0):!1}):(X=function(N,O){var U=N[R];return!U&&O&&(U=N[R]={}),U},A=function(N){return N[R]?(delete N[R],!0):!1}),{get:function(N,O){var U=X(N,!1);return U&&U[O]},set:function(N,O,U){(N=X(N,U!==e))&&(N[O]=U)},Ub:function(N,O,U){return N=X(N,!0),N[O]||(N[O]=U)},clear:A,Z:function(){return b+++R}}},f.b("utils.domData",f.a.g),f.b("utils.domData.clear",f.a.g.clear),f.a.K=new function(){function b(O,U){var Y=f.a.g.get(O,X);return Y===e&&U&&(Y=[],f.a.g.set(O,X,Y)),Y}function R(O){var U=b(O,!1);if(U)for(var U=U.slice(0),Y=0;Y<U.length;Y++)U[Y](O);f.a.g.clear(O),f.a.K.cleanExternalData(O),N[O.nodeType]&&E(O.childNodes,!0)}function E(O,U){for(var Y=[],k,H=0;H<O.length;H++)if((!U||O[H].nodeType===8)&&(R(Y[Y.length]=k=O[H]),O[H]!==k))for(;H--&&f.a.A(Y,O[H])==-1;);}var X=f.a.g.Z(),A={1:!0,8:!0,9:!0},N={1:!0,9:!0};return{za:function(O,U){if(typeof U!="function")throw Error("Callback must be a function");b(O,!0).push(U)},yb:function(O,U){var Y=b(O,!1);Y&&(f.a.Pa(Y,U),Y.length==0&&f.a.g.set(O,X,e))},oa:function(O){return f.u.G(function(){A[O.nodeType]&&(R(O),N[O.nodeType]&&E(O.getElementsByTagName("*")))}),O},removeNode:function(O){f.oa(O),O.parentNode&&O.parentNode.removeChild(O)},cleanExternalData:function(O){o&&typeof o.cleanData=="function"&&o.cleanData([O])}}},f.oa=f.a.K.oa,f.removeNode=f.a.K.removeNode,f.b("cleanNode",f.oa),f.b("removeNode",f.removeNode),f.b("utils.domNodeDisposal",f.a.K),f.b("utils.domNodeDisposal.addDisposeCallback",f.a.K.za),f.b("utils.domNodeDisposal.removeDisposeCallback",f.a.K.yb),function(){var b=[0,"",""],R=[1,"<table>","</table>"],E=[3,"<table><tbody><tr>","</tr></tbody></table>"],X=[1,"<select multiple='multiple'>","</select>"],A={thead:R,tbody:R,tfoot:R,tr:[2,"<table><tbody>","</tbody></table>"],td:E,th:E,option:X,optgroup:X},N=8>=f.a.W;f.a.ua=function(O,U){var Y;if(o){if(o.parseHTML)Y=o.parseHTML(O,U)||[];else if((Y=o.clean([O],U))&&Y[0]){for(var k=Y[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(Y=U)||(Y=n);var k=Y.parentWindow||Y.defaultView||t,H=f.a.Db(O).toLowerCase(),J=Y.createElement("div"),te;for(te=(H=H.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&A[H[1]]||b,H=te[0],te="ignored<div>"+te[1]+O+te[2]+"</div>",typeof k.innerShiv=="function"?J.appendChild(k.innerShiv(te)):(N&&Y.body.appendChild(J),J.innerHTML=te,N&&J.parentNode.removeChild(J));H--;)J=J.lastChild;Y=f.a.la(J.lastChild.childNodes)}return Y},f.a.Md=function(O,U){var Y=f.a.ua(O,U);return Y.length&&Y[0].parentElement||f.a.Yb(Y)},f.a.fc=function(O,U){if(f.a.Tb(O),U=f.a.f(U),U!==null&&U!==e)if(typeof U!="string"&&(U=U.toString()),o)o(O).html(U);else for(var Y=f.a.ua(U,O.ownerDocument),k=0;k<Y.length;k++)O.appendChild(Y[k])}}(),f.b("utils.parseHtmlFragment",f.a.ua),f.b("utils.setHtml",f.a.fc),f.aa=function(){function b(E,X){if(E){if(E.nodeType==8){var A=f.aa.Uc(E.nodeValue);A!=null&&X.push({ud:E,Kd:A})}else if(E.nodeType==1)for(var A=0,N=E.childNodes,O=N.length;A<O;A++)b(N[A],X)}}var R={};return{Xb:function(E){if(typeof E!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var X=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return R[X]=E,"<!--[ko_memo:"+X+"]-->"},bd:function(E,X){var A=R[E];if(A===e)throw Error("Couldn't find any memo with ID "+E+". Perhaps it's already been unmemoized.");try{return A.apply(null,X||[]),!0}finally{delete R[E]}},cd:function(E,X){var A=[];b(E,A);for(var N=0,O=A.length;N<O;N++){var U=A[N].ud,Y=[U];X&&f.a.Nb(Y,X),f.aa.bd(A[N].Kd,Y),U.nodeValue="",U.parentNode&&U.parentNode.removeChild(U)}},Uc:function(E){return(E=E.match(/^\[ko_memo\:(.*?)\]$/))?E[1]:null}}}(),f.b("memoization",f.aa),f.b("memoization.memoize",f.aa.Xb),f.b("memoization.unmemoize",f.aa.bd),f.b("memoization.parseMemoText",f.aa.Uc),f.b("memoization.unmemoizeDomNodeAndDescendants",f.aa.cd),f.na=function(){function b(){if(A){for(var U=A,Y=0,k;O<A;)if(k=X[O++]){if(O>U){if(5e3<=++Y){O=A,f.a.Gc(Error("'Too much recursion' after processing "+Y+" task groups."));break}U=A}try{k()}catch(H){f.a.Gc(H)}}}}function R(){b(),O=A=X.length=0}var E,X=[],A=0,N=1,O=0;return t.MutationObserver?E=function(U){var Y=n.createElement("div");return new MutationObserver(U).observe(Y,{attributes:!0}),function(){Y.classList.toggle("foo")}}(R):E=n&&"onreadystatechange"in n.createElement("script")?function(U){var Y=n.createElement("script");Y.onreadystatechange=function(){Y.onreadystatechange=null,n.documentElement.removeChild(Y),Y=null,U()},n.documentElement.appendChild(Y)}:function(U){setTimeout(U,0)},{scheduler:E,zb:function(U){return A||f.na.scheduler(R),X[A++]=U,N++},cancel:function(U){U=U-(N-A),U>=O&&U<A&&(X[U]=null)},resetForTesting:function(){var U=A-O;return O=A=X.length=0,U},Sd:b}}(),f.b("tasks",f.na),f.b("tasks.schedule",f.na.zb),f.b("tasks.runEarly",f.na.Sd),f.Ta={throttle:function(b,R){b.throttleEvaluation=R;var E=null;return f.$({read:b,write:function(X){clearTimeout(E),E=f.a.setTimeout(function(){b(X)},R)}})},rateLimit:function(b,R){var E,X,A;typeof R=="number"?E=R:(E=R.timeout,X=R.method),b.Hb=!1,A=typeof X=="function"?X:X=="notifyWhenChangesStop"?u:d,b.ub(function(N){return A(N,E,R)})},deferred:function(b,R){if(R!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");b.Hb||(b.Hb=!0,b.ub(function(E){var X,A=!1;return function(){if(!A){f.na.cancel(X),X=f.na.zb(E);try{A=!0,b.notifySubscribers(e,"dirty")}finally{A=!1}}}}))},notify:function(b,R){b.equalityComparer=R=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};f.b("extenders",f.Ta),f.ic=function(b,R,E){this.da=b,this.lc=R,this.mc=E,this.Ib=!1,this.fb=this.Jb=null,f.L(this,"dispose",this.s),f.L(this,"disposeWhenNodeIsRemoved",this.l)},f.ic.prototype.s=function(){this.Ib||(this.fb&&f.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},f.ic.prototype.l=function(b){this.Jb=b,f.a.K.za(b,this.fb=this.s.bind(this))},f.T=function(){f.a.Ab(this,_),_.qb(this)};var _={qb:function(b){b.U={change:[]},b.sc=1},subscribe:function(b,R,E){var X=this;E=E||"change";var A=new f.ic(X,R?b.bind(R):b,function(){f.a.Pa(X.U[E],A),X.hb&&X.hb(E)});return X.Qa&&X.Qa(E),X.U[E]||(X.U[E]=[]),X.U[E].push(A),A},notifySubscribers:function(b,R){if(R=R||"change",R==="change"&&this.Gb(),this.Wa(R)){var E=R==="change"&&this.ed||this.U[R].slice(0);try{f.u.xc();for(var X=0,A;A=E[X];++X)A.Ib||A.lc(b)}finally{f.u.end()}}},ob:function(){return this.sc},Dd:function(b){return this.ob()!==b},Gb:function(){++this.sc},ub:function(b){var R=this,E=f.O(R),X,A,N,O,U;R.gb||(R.gb=R.notifySubscribers,R.notifySubscribers=m);var Y=b(function(){R.Ja=!1,E&&O===R&&(O=R.nc?R.nc():R());var k=A||U&&R.sb(N,O);U=A=X=!1,k&&R.gb(N=O)});R.qc=function(k,H){H&&R.Ja||(U=!H),R.ed=R.U.change.slice(0),R.Ja=X=!0,O=k,Y()},R.pc=function(k){X||(N=k,R.gb(k,"beforeChange"))},R.rc=function(){U=!0},R.gd=function(){R.sb(N,R.v(!0))&&(A=!0)}},Wa:function(b){return this.U[b]&&this.U[b].length},Bd:function(b){if(b)return this.U[b]&&this.U[b].length||0;var R=0;return f.a.P(this.U,function(E,X){E!=="dirty"&&(R+=X.length)}),R},sb:function(b,R){return!this.equalityComparer||!this.equalityComparer(b,R)},toString:function(){return"[object Object]"},extend:function(b){var R=this;return b&&f.a.P(b,function(E,X){var A=f.Ta[E];typeof A=="function"&&(R=A(R,X)||R)}),R}};f.L(_,"init",_.qb),f.L(_,"subscribe",_.subscribe),f.L(_,"extend",_.extend),f.L(_,"getSubscriptionsCount",_.Bd),f.a.Ba&&f.a.setPrototypeOf(_,Function.prototype),f.T.fn=_,f.Qc=function(b){return b!=null&&typeof b.subscribe=="function"&&typeof b.notifySubscribers=="function"},f.b("subscribable",f.T),f.b("isSubscribable",f.Qc),f.S=f.u=function(){function b(N){E.push(X),X=N}function R(){X=E.pop()}var E=[],X,A=0;return{xc:b,end:R,cc:function(N){if(X){if(!f.Qc(N))throw Error("Only subscribable things can act as dependencies");X.od.call(X.pd,N,N.fd||(N.fd=++A))}},G:function(N,O,U){try{return b(),N.apply(O,U||[])}finally{R()}},qa:function(){if(X)return X.o.qa()},Va:function(){if(X)return X.o.Va()},Ya:function(){if(X)return X.Ya},o:function(){if(X)return X.o}}}(),f.b("computedContext",f.S),f.b("computedContext.getDependenciesCount",f.S.qa),f.b("computedContext.getDependencies",f.S.Va),f.b("computedContext.isInitial",f.S.Ya),f.b("computedContext.registerDependency",f.S.cc),f.b("ignoreDependencies",f.Yd=f.u.G);var C=f.a.Da("_latestValue");f.ta=function(b){function R(){return 0<arguments.length?(R.sb(R[C],arguments[0])&&(R.ya(),R[C]=arguments[0],R.xa()),this):(f.u.cc(R),R[C])}return R[C]=b,f.a.Ba||f.a.extend(R,f.T.fn),f.T.fn.qb(R),f.a.Ab(R,V),f.options.deferUpdates&&f.Ta.deferred(R,!0),R};var V={equalityComparer:c,v:function(){return this[C]},xa:function(){this.notifySubscribers(this[C],"spectate"),this.notifySubscribers(this[C])},ya:function(){this.notifySubscribers(this[C],"beforeChange")}};f.a.Ba&&f.a.setPrototypeOf(V,f.T.fn);var L=f.ta.Ma="__ko_proto__";V[L]=f.ta,f.O=function(b){if((b=typeof b=="function"&&b[L])&&b!==V[L]&&b!==f.o.fn[L])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!b},f.Za=function(b){return typeof b=="function"&&(b[L]===V[L]||b[L]===f.o.fn[L]&&b.Nc)},f.b("observable",f.ta),f.b("isObservable",f.O),f.b("isWriteableObservable",f.Za),f.b("isWritableObservable",f.Za),f.b("observable.fn",V),f.L(V,"peek",V.v),f.L(V,"valueHasMutated",V.xa),f.L(V,"valueWillMutate",V.ya),f.Ha=function(b){if(b=b||[],typeof b!="object"||!("length"in b))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return b=f.ta(b),f.a.Ab(b,f.Ha.fn),b.extend({trackArrayChanges:!0})},f.Ha.fn={remove:function(b){for(var R=this.v(),E=[],X=typeof b!="function"||f.O(b)?function(O){return O===b}:b,A=0;A<R.length;A++){var N=R[A];if(X(N)){if(E.length===0&&this.ya(),R[A]!==N)throw Error("Array modified during remove; cannot remove item");E.push(N),R.splice(A,1),A--}}return E.length&&this.xa(),E},removeAll:function(b){if(b===e){var R=this.v(),E=R.slice(0);return this.ya(),R.splice(0,R.length),this.xa(),E}return b?this.remove(function(X){return 0<=f.a.A(b,X)}):[]},destroy:function(b){var R=this.v(),E=typeof b!="function"||f.O(b)?function(N){return N===b}:b;this.ya();for(var X=R.length-1;0<=X;X--){var A=R[X];E(A)&&(A._destroy=!0)}this.xa()},destroyAll:function(b){return b===e?this.destroy(function(){return!0}):b?this.destroy(function(R){return 0<=f.a.A(b,R)}):[]},indexOf:function(b){var R=this();return f.a.A(R,b)},replace:function(b,R){var E=this.indexOf(b);0<=E&&(this.ya(),this.v()[E]=R,this.xa())},sorted:function(b){var R=this().slice(0);return b?R.sort(b):R.sort()},reversed:function(){return this().slice(0).reverse()}},f.a.Ba&&f.a.setPrototypeOf(f.Ha.fn,f.ta.fn),f.a.D("pop push reverse shift sort splice unshift".split(" "),function(b){f.Ha.fn[b]=function(){var R=this.v();this.ya(),this.zc(R,b,arguments);var E=R[b].apply(R,arguments);return this.xa(),E===R?this:E}}),f.a.D(["slice"],function(b){f.Ha.fn[b]=function(){var R=this();return R[b].apply(R,arguments)}}),f.Pc=function(b){return f.O(b)&&typeof b.remove=="function"&&typeof b.push=="function"},f.b("observableArray",f.Ha),f.b("isObservableArray",f.Pc),f.Ta.trackArrayChanges=function(b,R){function E(){function J(){if(U){var te=[].concat(b.v()||[]),z;b.Wa("arrayChange")&&((!A||1<U)&&(A=f.a.Pb(Y,te,b.Ob)),z=A),Y=te,A=null,U=0,z&&z.length&&b.notifySubscribers(z,"arrayChange")}}X?J():(X=!0,O=b.subscribe(function(){++U},null,"spectate"),Y=[].concat(b.v()||[]),A=null,N=b.subscribe(J))}if(b.Ob={},R&&typeof R=="object"&&f.a.extend(b.Ob,R),b.Ob.sparse=!0,!b.zc){var X=!1,A=null,N,O,U=0,Y,k=b.Qa,H=b.hb;b.Qa=function(J){k&&k.call(b,J),J==="arrayChange"&&E()},b.hb=function(J){H&&H.call(b,J),J!=="arrayChange"||b.Wa("arrayChange")||(N&&N.s(),O&&O.s(),O=N=null,X=!1,Y=e)},b.zc=function(J,te,z){function q(Le,ke,Oe){return ee[ee.length]={status:Le,value:ke,index:Oe}}if(X&&!U){var ee=[],fe=J.length,_e=z.length,le=0;switch(te){case"push":le=fe;case"unshift":for(te=0;te<_e;te++)q("added",z[te],le+te);break;case"pop":le=fe-1;case"shift":fe&&q("deleted",J[le],le);break;case"splice":te=Math.min(Math.max(0,0>z[0]?fe+z[0]:z[0]),fe);for(var fe=_e===1?fe:Math.min(te+(z[1]||0),fe),_e=te+_e-2,le=Math.max(fe,_e),ye=[],Te=[],Xe=2;te<le;++te,++Xe)te<fe&&Te.push(q("deleted",J[te],te)),te<_e&&ye.push(q("added",z[Xe],te));f.a.Kc(Te,ye);break;default:return}A=ee}}}};var Z=f.a.Da("_state");f.o=f.$=function(b,R,E){function X(){if(0<arguments.length){if(typeof A=="function")A.apply(N.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return N.ra||f.u.cc(X),(N.ka||N.J&&X.Xa())&&X.ha(),N.X}if(typeof b=="object"?E=b:(E=E||{},b&&(E.read=b)),typeof E.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var A=E.write,N={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:E.read,nb:R||E.owner,l:E.disposeWhenNodeIsRemoved||E.l||null,Sa:E.disposeWhen||E.Sa,Rb:null,I:{},V:0,Ic:null};return X[Z]=N,X.Nc=typeof A=="function",f.a.Ba||f.a.extend(X,f.T.fn),f.T.fn.qb(X),f.a.Ab(X,G),E.pure?(N.wb=!0,N.J=!0,f.a.extend(X,I)):E.deferEvaluation&&f.a.extend(X,v),f.options.deferUpdates&&f.Ta.deferred(X,!0),N.l&&(N.jc=!0,N.l.nodeType||(N.l=null)),N.J||E.deferEvaluation||X.ha(),N.l&&X.ja()&&f.a.K.za(N.l,N.Rb=function(){X.s()}),X};var G={equalityComparer:c,qa:function(){return this[Z].V},Va:function(){var b=[];return f.a.P(this[Z].I,function(R,E){b[E.Ka]=E.da}),b},Vb:function(b){if(!this[Z].V)return!1;var R=this.Va();return f.a.A(R,b)!==-1?!0:!!f.a.Lb(R,function(E){return E.Vb&&E.Vb(b)})},uc:function(b,R,E){if(this[Z].wb&&R===this)throw Error("A 'pure' computed must not be called recursively");this[Z].I[b]=E,E.Ka=this[Z].V++,E.La=R.ob()},Xa:function(){var b,R,E=this[Z].I;for(b in E)if(Object.prototype.hasOwnProperty.call(E,b)&&(R=E[b],this.Ia&&R.da.Ja||R.da.Dd(R.La)))return!0},Jd:function(){this.Ia&&!this[Z].rb&&this.Ia(!1)},ja:function(){var b=this[Z];return b.ka||0<b.V},Rd:function(){this.Ja?this[Z].ka&&(this[Z].sa=!0):this.Hc()},$c:function(b){if(b.Hb){var R=b.subscribe(this.Jd,this,"dirty"),E=b.subscribe(this.Rd,this);return{da:b,s:function(){R.s(),E.s()}}}return b.subscribe(this.Hc,this)},Hc:function(){var b=this,R=b.throttleEvaluation;R&&0<=R?(clearTimeout(this[Z].Ic),this[Z].Ic=f.a.setTimeout(function(){b.ha(!0)},R)):b.Ia?b.Ia(!0):b.ha(!0)},ha:function(b){var R=this[Z],E=R.Sa,X=!1;if(!R.rb&&!R.ra){if(R.l&&!f.a.Sb(R.l)||E&&E()){if(!R.jc){this.s();return}}else R.jc=!1;R.rb=!0;try{X=this.zd(b)}finally{R.rb=!1}return X}},zd:function(b){var R=this[Z],X=!1,E=R.wb?e:!R.V,X={qd:this,mb:R.I,Qb:R.V};f.u.xc({pd:X,od:g,o:this,Ya:E}),R.I={},R.V=0;var A=this.yd(R,X);return R.V?X=this.sb(R.X,A):(this.s(),X=!0),X&&(R.J?this.Gb():this.notifySubscribers(R.X,"beforeChange"),R.X=A,this.notifySubscribers(R.X,"spectate"),!R.J&&b&&this.notifySubscribers(R.X),this.rc&&this.rc()),E&&this.notifySubscribers(R.X,"awake"),X},yd:function(b,R){try{var E=b.Wc;return b.nb?E.call(b.nb):E()}finally{f.u.end(),R.Qb&&!b.J&&f.a.P(R.mb,p),b.sa=b.ka=!1}},v:function(b){var R=this[Z];return(R.ka&&(b||!R.V)||R.J&&this.Xa())&&this.ha(),R.X},ub:function(b){f.T.fn.ub.call(this,b),this.nc=function(){return this[Z].J||(this[Z].sa?this.ha():this[Z].ka=!1),this[Z].X},this.Ia=function(R){this.pc(this[Z].X),this[Z].ka=!0,R&&(this[Z].sa=!0),this.qc(this,!R)}},s:function(){var b=this[Z];!b.J&&b.I&&f.a.P(b.I,function(R,E){E.s&&E.s()}),b.l&&b.Rb&&f.a.K.yb(b.l,b.Rb),b.I=e,b.V=0,b.ra=!0,b.sa=!1,b.ka=!1,b.J=!1,b.l=e,b.Sa=e,b.Wc=e,this.Nc||(b.nb=e)}},I={Qa:function(b){var R=this,E=R[Z];if(!E.ra&&E.J&&b=="change"){if(E.J=!1,E.sa||R.Xa())E.I=null,E.V=0,R.ha()&&R.Gb();else{var X=[];f.a.P(E.I,function(A,N){X[N.Ka]=A}),f.a.D(X,function(A,N){var O=E.I[A],U=R.$c(O.da);U.Ka=N,U.La=O.La,E.I[A]=U}),R.Xa()&&R.ha()&&R.Gb()}E.ra||R.notifySubscribers(E.X,"awake")}},hb:function(b){var R=this[Z];R.ra||b!="change"||this.Wa("change")||(f.a.P(R.I,function(E,X){X.s&&(R.I[E]={da:X.da,Ka:X.Ka,La:X.La},X.s())}),R.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var b=this[Z];return b.J&&(b.sa||this.Xa())&&this.ha(),f.T.fn.ob.call(this)}},v={Qa:function(b){b!="change"&&b!="beforeChange"||this.v()}};f.a.Ba&&f.a.setPrototypeOf(G,f.T.fn);var P=f.ta.Ma;G[P]=f.o,f.Oc=function(b){return typeof b=="function"&&b[P]===G[P]},f.Fd=function(b){return f.Oc(b)&&b[Z]&&b[Z].wb},f.b("computed",f.o),f.b("dependentObservable",f.o),f.b("isComputed",f.Oc),f.b("isPureComputed",f.Fd),f.b("computed.fn",G),f.L(G,"peek",G.v),f.L(G,"dispose",G.s),f.L(G,"isActive",G.ja),f.L(G,"getDependenciesCount",G.qa),f.L(G,"getDependencies",G.Va),f.xb=function(b,R){return typeof b=="function"?f.o(b,R,{pure:!0}):(b=f.a.extend({},b),b.pure=!0,f.o(b,R))},f.b("pureComputed",f.xb),function(){function b(X,A,N){if(N=N||new E,X=A(X),typeof X!="object"||X===null||X===e||X instanceof RegExp||X instanceof Date||X instanceof String||X instanceof Number||X instanceof Boolean)return X;var O=X instanceof Array?[]:{};return N.save(X,O),R(X,function(U){var Y=A(X[U]);switch(typeof Y){case"boolean":case"number":case"string":case"function":O[U]=Y;break;case"object":case"undefined":var k=N.get(Y);O[U]=k!==e?k:b(Y,A,N)}}),O}function R(X,A){if(X instanceof Array){for(var N=0;N<X.length;N++)A(N);typeof X.toJSON=="function"&&A("toJSON")}else for(N in X)A(N)}function E(){this.keys=[],this.values=[]}f.ad=function(X){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return b(X,function(A){for(var N=0;f.O(A)&&10>N;N++)A=A();return A})},f.toJSON=function(X,A,N){return X=f.ad(X),f.a.hc(X,A,N)},E.prototype={constructor:E,save:function(X,A){var N=f.a.A(this.keys,X);0<=N?this.values[N]=A:(this.keys.push(X),this.values.push(A))},get:function(X){return X=f.a.A(this.keys,X),0<=X?this.values[X]:e}}}(),f.b("toJS",f.ad),f.b("toJSON",f.toJSON),f.Wd=function(b,R,E){function X(A){var N=f.xb(b,E).extend({ma:"always"}),O=N.subscribe(function(U){U&&(O.s(),A(U))});return N.notifySubscribers(N.v()),O}return typeof Promise!="function"||R?X(R.bind(E)):new Promise(X)},f.b("when",f.Wd),function(){f.w={M:function(b){switch(f.a.R(b)){case"option":return b.__ko__hasDomDataOptionValue__===!0?f.a.g.get(b,f.c.options.$b):7>=f.a.W?b.getAttributeNode("value")&&b.getAttributeNode("value").specified?b.value:b.text:b.value;case"select":return 0<=b.selectedIndex?f.w.M(b.options[b.selectedIndex]):e;default:return b.value}},cb:function(b,R,E){switch(f.a.R(b)){case"option":typeof R=="string"?(f.a.g.set(b,f.c.options.$b,e),"__ko__hasDomDataOptionValue__"in b&&delete b.__ko__hasDomDataOptionValue__,b.value=R):(f.a.g.set(b,f.c.options.$b,R),b.__ko__hasDomDataOptionValue__=!0,b.value=typeof R=="number"?R:"");break;case"select":(R===""||R===null)&&(R=e);for(var X=-1,A=0,N=b.options.length,O;A<N;++A)if(O=f.w.M(b.options[A]),O==R||O===""&&R===e){X=A;break}(E||0<=X||R===e&&1<b.size)&&(b.selectedIndex=X,f.a.W===6&&f.a.setTimeout(function(){b.selectedIndex=X},0));break;default:(R===null||R===e)&&(R=""),b.value=R}}}}(),f.b("selectExtensions",f.w),f.b("selectExtensions.readValue",f.w.M),f.b("selectExtensions.writeValue",f.w.cb),f.m=function(){function b(U){U=f.a.Db(U),U.charCodeAt(0)===123&&(U=U.slice(1,-1)),U+=` +,`;var Y=[],k=U.match(X),H,J=[],te=0;if(1<k.length){for(var z=0,q;q=k[z];++z){var ee=q.charCodeAt(0);if(ee===44){if(0>=te){Y.push(H&&J.length?{key:H,value:J.join("")}:{unknown:H||J.join("")}),H=te=0,J=[];continue}}else if(ee===58){if(!te&&!H&&J.length===1){H=J.pop();continue}}else{if(ee===47&&1<q.length&&(q.charCodeAt(1)===47||q.charCodeAt(1)===42))continue;ee===47&&z&&1<q.length?(ee=k[z-1].match(A))&&!N[ee[0]]&&(U=U.substr(U.indexOf(q)+1),k=U.match(X),z=-1,q="/"):ee===40||ee===123||ee===91?++te:ee===41||ee===125||ee===93?--te:H||J.length||ee!==34&&ee!==39||(q=q.slice(1,-1))}J.push(q)}if(0<te)throw Error("Unbalanced parentheses, braces, or brackets")}return Y}var R=["true","false","null","undefined"],E=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,X=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),A=/[\])"'A-Za-z0-9_$]+$/,N={in:1,return:1,typeof:1},O={};return{Ra:[],wa:O,ac:b,vb:function(U,Y){function k(ee,fe){var _e;if(!z){var le=f.getBindingHandler(ee);if(le&&le.preprocess&&!(fe=le.preprocess(fe,ee,k)))return;(le=O[ee])&&(_e=fe,0<=f.a.A(R,_e)?_e=!1:(le=_e.match(E),_e=le===null?!1:le[1]?"Object("+le[1]+")"+le[2]:_e),le=_e),le&&J.push("'"+(typeof O[ee]=="string"?O[ee]:ee)+"':function(_z){"+_e+"=_z}")}te&&(fe="function(){return "+fe+" }"),H.push("'"+ee+"':"+fe)}Y=Y||{};var H=[],J=[],te=Y.valueAccessors,z=Y.bindingParams,q=typeof U=="string"?b(U):U;return f.a.D(q,function(ee){k(ee.key||ee.unknown,ee.value)}),J.length&&k("_ko_property_writers","{"+J.join(",")+" }"),H.join(",")},Id:function(U,Y){for(var k=0;k<U.length;k++)if(U[k].key==Y)return!0;return!1},eb:function(U,Y,k,H,J){U&&f.O(U)?!f.Za(U)||J&&U.v()===H||U(H):(U=Y.get("_ko_property_writers"))&&U[k]&&U[k](H)}}}(),f.b("expressionRewriting",f.m),f.b("expressionRewriting.bindingRewriteValidators",f.m.Ra),f.b("expressionRewriting.parseObjectLiteral",f.m.ac),f.b("expressionRewriting.preProcessBindings",f.m.vb),f.b("expressionRewriting._twoWayBindings",f.m.wa),f.b("jsonExpressionRewriting",f.m),f.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",f.m.vb),function(){function b(k){return k.nodeType==8&&N.test(A?k.text:k.nodeValue)}function R(k){return k.nodeType==8&&O.test(A?k.text:k.nodeValue)}function E(k,H){for(var J=k,te=1,z=[];J=J.nextSibling;){if(R(J)&&(f.a.g.set(J,Y,!0),te--,te===0))return z;z.push(J),b(J)&&te++}if(!H)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function X(k,H){var J=E(k,H);return J?0<J.length?J[J.length-1].nextSibling:k.nextSibling:null}var A=n&&n.createComment("test").text==="<!--test-->",N=A?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,O=A?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,U={ul:!0,ol:!0},Y="__ko_matchedEndComment__";f.h={ea:{},childNodes:function(k){return b(k)?E(k):k.childNodes},Ea:function(k){if(b(k)){k=f.h.childNodes(k);for(var H=0,J=k.length;H<J;H++)f.removeNode(k[H])}else f.a.Tb(k)},va:function(k,H){if(b(k)){f.h.Ea(k);for(var J=k.nextSibling,te=0,z=H.length;te<z;te++)J.parentNode.insertBefore(H[te],J)}else f.a.va(k,H)},Vc:function(k,H){var J;b(k)?(J=k.nextSibling,k=k.parentNode):J=k.firstChild,J?H!==J&&k.insertBefore(H,J):k.appendChild(H)},Wb:function(k,H,J){J?(J=J.nextSibling,b(k)&&(k=k.parentNode),J?H!==J&&k.insertBefore(H,J):k.appendChild(H)):f.h.Vc(k,H)},firstChild:function(k){if(b(k))return!k.nextSibling||R(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&R(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(b(k)&&(k=X(k)),k.nextSibling&&R(k.nextSibling)){var H=k.nextSibling;if(R(H)&&!f.a.g.get(H,Y))throw Error("Found end comment without a matching opening comment, as child of "+k);return null}return k.nextSibling},Cd:b,Vd:function(k){return(k=(A?k.text:k.nodeValue).match(N))?k[1]:null},Sc:function(k){if(U[f.a.R(k)]){var H=k.firstChild;if(H)do if(H.nodeType===1){var J;J=H.firstChild;var te=null;if(J)do if(te)te.push(J);else if(b(J)){var z=X(J,!0);z?J=z:te=[J]}else R(J)&&(te=[J]);while(J=J.nextSibling);if(J=te)for(te=H.nextSibling,z=0;z<J.length;z++)te?k.insertBefore(J[z],te):k.appendChild(J[z])}while(H=H.nextSibling)}}}}(),f.b("virtualElements",f.h),f.b("virtualElements.allowedBindings",f.h.ea),f.b("virtualElements.emptyNode",f.h.Ea),f.b("virtualElements.insertAfter",f.h.Wb),f.b("virtualElements.prepend",f.h.Vc),f.b("virtualElements.setDomNodeChildren",f.h.va),function(){f.ga=function(){this.nd={}},f.a.extend(f.ga.prototype,{nodeHasBindings:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind")!=null||f.j.getComponentNameForNode(b);case 8:return f.h.Cd(b);default:return!1}},getBindings:function(b,R){var E=this.getBindingsString(b,R),E=E?this.parseBindingsString(E,R,b):null;return f.j.tc(E,b,R,!1)},getBindingAccessors:function(b,R){var E=this.getBindingsString(b,R),E=E?this.parseBindingsString(E,R,b,{valueAccessors:!0}):null;return f.j.tc(E,b,R,!0)},getBindingsString:function(b){switch(b.nodeType){case 1:return b.getAttribute("data-bind");case 8:return f.h.Vd(b);default:return null}},parseBindingsString:function(b,R,E,X){try{var A=this.nd,N=b+(X&&X.valueAccessors||""),O;if(!(O=A[N])){var U,Y="with($context){with($data||{}){return{"+f.m.vb(b,X)+"}}}";U=new Function("$context","$element",Y),O=A[N]=U}return O(R,E)}catch(k){throw k.message=`Unable to parse bindings. +Bindings value: `+b+` +Message: `+k.message,k}}}),f.ga.instance=new f.ga}(),f.b("bindingProvider",f.ga),function(){function b(le){var ye=(le=f.a.g.get(le,_e))&&le.N;ye&&(le.N=null,ye.Tc())}function R(le,ye,Te){this.node=le,this.yc=ye,this.kb=[],this.H=!1,ye.N||f.a.K.za(le,b),Te&&Te.N&&(Te.N.kb.push(le),this.Kb=Te)}function E(le){return function(){return le}}function X(le){return le()}function A(le){return f.a.Ga(f.u.G(le),function(ye,Te){return function(){return le()[Te]}})}function N(le,ye,Te){return typeof le=="function"?A(le.bind(null,ye,Te)):f.a.Ga(le,E)}function O(le,ye){return A(this.getBindings.bind(this,le,ye))}function U(le,ye){var Te=f.h.firstChild(ye);if(Te){var Xe,Le=f.ga.instance,ke=Le.preprocessNode;if(ke){for(;Xe=Te;)Te=f.h.nextSibling(Xe),ke.call(Le,Xe);Te=f.h.firstChild(ye)}for(;Xe=Te;)Te=f.h.nextSibling(Xe),Y(le,Xe)}f.i.ma(ye,f.i.H)}function Y(le,ye){var Te=le,Xe=ye.nodeType===1;Xe&&f.h.Sc(ye),(Xe||f.ga.instance.nodeHasBindings(ye))&&(Te=H(ye,null,le).bindingContextForDescendants),Te&&!ee[f.a.R(ye)]&&U(Te,ye)}function k(le){var ye=[],Te={},Xe=[];return f.a.P(le,function Le(ke){if(!Te[ke]){var Oe=f.getBindingHandler(ke);Oe&&(Oe.after&&(Xe.push(ke),f.a.D(Oe.after,function(at){if(le[at]){if(f.a.A(Xe,at)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Xe.join(", "));Le(at)}}),Xe.length--),ye.push({key:ke,Mc:Oe})),Te[ke]=!0}}),ye}function H(le,ye,Te){var Xe=f.a.g.Ub(le,_e,{}),Le=Xe.hd;if(!ye){if(Le)throw Error("You cannot apply bindings multiple times to the same element.");Xe.hd=!0}Le||(Xe.context=Te),Xe.Zb||(Xe.Zb={});var ke;if(ye&&typeof ye!="function")ke=ye;else{var Oe=f.ga.instance,at=Oe.getBindingAccessors||O,Mt=f.$(function(){return(ke=ye?ye(Te,le):at.call(Oe,le,Te))&&(Te[te]&&Te[te](),Te[q]&&Te[q]()),ke},null,{l:le});ke&&Mt.ja()||(Mt=null)}var Lt=Te,Ie;if(ke){var je=function(){return f.a.Ga(Mt?Mt():ke,X)},et=Mt?function(He){return function(){return X(Mt()[He])}}:function(He){return ke[He]};je.get=function(He){return ke[He]&&X(et(He))},je.has=function(He){return He in ke},f.i.H in ke&&f.i.subscribe(le,f.i.H,function(){var He=(0,ke[f.i.H])();if(He){var Dt=f.h.childNodes(le);Dt.length&&He(Dt,f.Ec(Dt[0]))}}),f.i.pa in ke&&(Lt=f.i.Cb(le,Te),f.i.subscribe(le,f.i.pa,function(){var He=(0,ke[f.i.pa])();He&&f.h.firstChild(le)&&He(le)})),Xe=k(ke),f.a.D(Xe,function(He){var Dt=He.Mc.init,Ce=He.Mc.update,Ve=He.key;if(le.nodeType===8&&!f.h.ea[Ve])throw Error("The binding '"+Ve+"' cannot be used with virtual elements");try{typeof Dt=="function"&&f.u.G(function(){var ct=Dt(le,et(Ve),je,Lt.$data,Lt);if(ct&&ct.controlsDescendantBindings){if(Ie!==e)throw Error("Multiple bindings ("+Ie+" and "+Ve+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");Ie=Ve}}),typeof Ce=="function"&&f.$(function(){Ce(le,et(Ve),je,Lt.$data,Lt)},null,{l:le})}catch(ct){throw ct.message='Unable to process binding "'+Ve+": "+ke[Ve]+`" +Message: `+ct.message,ct}})}return Xe=Ie===e,{shouldBindDescendants:Xe,bindingContextForDescendants:Xe&&Lt}}function J(le,ye){return le&&le instanceof f.fa?le:new f.fa(le,e,e,ye)}var te=f.a.Da("_subscribable"),z=f.a.Da("_ancestorBindingInfo"),q=f.a.Da("_dataDependency");f.c={};var ee={script:!0,textarea:!0,template:!0};f.getBindingHandler=function(le){return f.c[le]};var fe={};f.fa=function(le,ye,Te,Xe,Le){function ke(){var et=Lt?Mt():Mt,He=f.a.f(et);return ye?(f.a.extend(Oe,ye),z in ye&&(Oe[z]=ye[z])):(Oe.$parents=[],Oe.$root=He,Oe.ko=f),Oe[te]=Ie,at?He=Oe.$data:(Oe.$rawData=et,Oe.$data=He),Te&&(Oe[Te]=He),Xe&&Xe(Oe,ye,He),ye&&ye[te]&&!f.S.o().Vb(ye[te])&&ye[te](),je&&(Oe[q]=je),Oe.$data}var Oe=this,at=le===fe,Mt=at?e:le,Lt=typeof Mt=="function"&&!f.O(Mt),Ie,je=Le&&Le.dataDependency;Le&&Le.exportDependencies?ke():(Ie=f.xb(ke),Ie.v(),Ie.ja()?Ie.equalityComparer=null:Oe[te]=e)},f.fa.prototype.createChildContext=function(le,ye,Te,Xe){if(!Xe&&ye&&typeof ye=="object"&&(Xe=ye,ye=Xe.as,Te=Xe.extend),ye&&Xe&&Xe.noChildContext){var Le=typeof le=="function"&&!f.O(le);return new f.fa(fe,this,null,function(ke){Te&&Te(ke),ke[ye]=Le?le():le},Xe)}return new f.fa(le,this,ye,function(ke,Oe){ke.$parentContext=Oe,ke.$parent=Oe.$data,ke.$parents=(Oe.$parents||[]).slice(0),ke.$parents.unshift(ke.$parent),Te&&Te(ke)},Xe)},f.fa.prototype.extend=function(le,ye){return new f.fa(fe,this,null,function(Te){f.a.extend(Te,typeof le=="function"?le(Te):le)},ye)};var _e=f.a.g.Z();R.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},R.prototype.sd=function(le){f.a.Pa(this.kb,le),!this.kb.length&&this.H&&this.Cc()},R.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,f.a.K.yb(this.node,b),f.i.ma(this.node,f.i.pa),this.Tc())},f.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(le,ye,Te,Xe,Le){var ke=f.a.g.Ub(le,_e,{});return ke.Fa||(ke.Fa=new f.T),Le&&Le.notifyImmediately&&ke.Zb[ye]&&f.u.G(Te,Xe,[le]),ke.Fa.subscribe(Te,Xe,ye)},ma:function(le,ye){var Te=f.a.g.get(le,_e);if(Te&&(Te.Zb[ye]=!0,Te.Fa&&Te.Fa.notifySubscribers(le,ye),ye==f.i.H)){if(Te.N)Te.N.Cc();else if(Te.N===e&&Te.Fa&&Te.Fa.Wa(f.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(le,ye){var Te=f.a.g.Ub(le,_e,{});return Te.N||(Te.N=new R(le,Te,ye[z])),ye[z]==Te?ye:ye.extend(function(Xe){Xe[z]=Te})}},f.Td=function(le){return(le=f.a.g.get(le,_e))&&le.context},f.ib=function(le,ye,Te){return le.nodeType===1&&f.h.Sc(le),H(le,ye,J(Te))},f.ld=function(le,ye,Te){return Te=J(Te),f.ib(le,N(ye,Te,le),Te)},f.Oa=function(le,ye){ye.nodeType!==1&&ye.nodeType!==8||U(J(le),ye)},f.vc=function(le,ye,Te){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(ye=n.body,!ye)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!ye||ye.nodeType!==1&&ye.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");Y(J(le,Te),ye)},f.Dc=function(le){return!le||le.nodeType!==1&&le.nodeType!==8?e:f.Td(le)},f.Ec=function(le){return(le=f.Dc(le))?le.$data:e},f.b("bindingHandlers",f.c),f.b("bindingEvent",f.i),f.b("bindingEvent.subscribe",f.i.subscribe),f.b("bindingEvent.startPossiblyAsyncContentBinding",f.i.Cb),f.b("applyBindings",f.vc),f.b("applyBindingsToDescendants",f.Oa),f.b("applyBindingAccessorsToNode",f.ib),f.b("applyBindingsToNode",f.ld),f.b("contextFor",f.Dc),f.b("dataFor",f.Ec)}(),function(b){function R(O,U){var Y=Object.prototype.hasOwnProperty.call(A,O)?A[O]:b,k;Y?Y.subscribe(U):(Y=A[O]=new f.T,Y.subscribe(U),E(O,function(H,J){var te=!(!J||!J.synchronous);N[O]={definition:H,Gd:te},delete A[O],k||te?Y.notifySubscribers(H):f.na.zb(function(){Y.notifySubscribers(H)})}),k=!0)}function E(O,U){X("getConfig",[O],function(Y){Y?X("loadComponent",[O,Y],function(k){U(k,Y)}):U(null,null)})}function X(O,U,Y,k){k||(k=f.j.loaders.slice(0));var H=k.shift();if(H){var J=H[O];if(J){var te=!1;if(J.apply(H,U.concat(function(z){te?Y(null):z!==null?Y(z):X(O,U,Y,k)}))!==b&&(te=!0,!H.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else X(O,U,Y,k)}else Y(null)}var A={},N={};f.j={get:function(O,U){var Y=Object.prototype.hasOwnProperty.call(N,O)?N[O]:b;Y?Y.Gd?f.u.G(function(){U(Y.definition)}):f.na.zb(function(){U(Y.definition)}):R(O,U)},Bc:function(O){delete N[O]},oc:X},f.j.loaders=[],f.b("components",f.j),f.b("components.get",f.j.get),f.b("components.clearCachedDefinition",f.j.Bc)}(),function(){function b(Y,k,H,J){function te(){--q===0&&J(z)}var z={},q=2,ee=H.template;H=H.viewModel,ee?A(k,ee,function(fe){f.j.oc("loadTemplate",[Y,fe],function(_e){z.template=_e,te()})}):te(),H?A(k,H,function(fe){f.j.oc("loadViewModel",[Y,fe],function(_e){z[U]=_e,te()})}):te()}function R(Y,k,H){if(typeof k=="function")H(function(te){return new k(te)});else if(typeof k[U]=="function")H(k[U]);else if("instance"in k){var J=k.instance;H(function(){return J})}else"viewModel"in k?R(Y,k.viewModel,H):Y("Unknown viewModel value: "+k)}function E(Y){switch(f.a.R(Y)){case"script":return f.a.ua(Y.text);case"textarea":return f.a.ua(Y.value);case"template":if(X(Y.content))return f.a.Ca(Y.content.childNodes)}return f.a.Ca(Y.childNodes)}function X(Y){return t.DocumentFragment?Y instanceof DocumentFragment:Y&&Y.nodeType===11}function A(Y,k,H){typeof k.require=="string"?a||t.require?(a||t.require)([k.require],function(J){J&&typeof J=="object"&&J.Xd&&J.default&&(J=J.default),H(J)}):Y("Uses require, but no AMD loader is present"):H(k)}function N(Y){return function(k){throw Error("Component '"+Y+"': "+k)}}var O={};f.j.register=function(Y,k){if(!k)throw Error("Invalid configuration for "+Y);if(f.j.tb(Y))throw Error("Component "+Y+" is already registered");O[Y]=k},f.j.tb=function(Y){return Object.prototype.hasOwnProperty.call(O,Y)},f.j.unregister=function(Y){delete O[Y],f.j.Bc(Y)},f.j.Fc={getConfig:function(Y,k){k(f.j.tb(Y)?O[Y]:null)},loadComponent:function(Y,k,H){var J=N(Y);A(J,k,function(te){b(Y,J,te,H)})},loadTemplate:function(Y,k,H){if(Y=N(Y),typeof k=="string")H(f.a.ua(k));else if(k instanceof Array)H(k);else if(X(k))H(f.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)H(E(k));else if(typeof k=="string"){var J=n.getElementById(k);J?H(E(J)):Y("Cannot find element with ID "+k)}else Y("Unknown element type: "+k);else Y("Unknown template value: "+k)},loadViewModel:function(Y,k,H){R(N(Y),k,H)}};var U="createViewModel";f.b("components.register",f.j.register),f.b("components.isRegistered",f.j.tb),f.b("components.unregister",f.j.unregister),f.b("components.defaultLoader",f.j.Fc),f.j.loaders.push(f.j.Fc),f.j.dd=O}(),function(){function b(E,X){var A=E.getAttribute("params");if(A){var A=R.parseBindingsString(A,X,E,{valueAccessors:!0,bindingParams:!0}),A=f.a.Ga(A,function(U){return f.o(U,null,{l:E})}),N=f.a.Ga(A,function(U){var Y=U.v();return U.ja()?f.o({read:function(){return f.a.f(U())},write:f.Za(Y)&&function(k){U()(k)},l:E}):Y});return Object.prototype.hasOwnProperty.call(N,"$raw")||(N.$raw=A),N}return{$raw:{}}}f.j.getComponentNameForNode=function(E){var X=f.a.R(E);if(f.j.tb(X)&&(X.indexOf("-")!=-1||""+E=="[object HTMLUnknownElement]"||8>=f.a.W&&E.tagName===X))return X},f.j.tc=function(E,X,A,N){if(X.nodeType===1){var O=f.j.getComponentNameForNode(X);if(O){if(E=E||{},E.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var U={name:O,params:b(X,A)};E.component=N?function(){return U}:U}}return E};var R=new f.ga;9>f.a.W&&(f.j.register=function(E){return function(X){return E.apply(this,arguments)}}(f.j.register),n.createDocumentFragment=function(E){return function(){var X=E(),A=f.j.dd,N;for(N in A);return X}}(n.createDocumentFragment))}(),function(){function b(X,A,N){if(A=A.template,!A)throw Error("Component '"+X+"' has no template");X=f.a.Ca(A),f.h.va(N,X)}function R(X,A,N){var O=X.createViewModel;return O?O.call(X,A,N):A}var E=0;f.c.component={init:function(X,A,N,O,U){function Y(){var z=k&&k.dispose;typeof z=="function"&&z.call(k),J&&J.s(),H=k=J=null}var k,H,J,te=f.a.la(f.h.childNodes(X));return f.h.Ea(X),f.a.K.za(X,Y),f.o(function(){var z=f.a.f(A()),q,ee;if(typeof z=="string"?q=z:(q=f.a.f(z.name),ee=f.a.f(z.params)),!q)throw Error("No component name specified");var fe=f.i.Cb(X,U),_e=H=++E;f.j.get(q,function(le){if(H===_e){if(Y(),!le)throw Error("Unknown component '"+q+"'");b(q,le,X);var ye=R(le,ee,{element:X,templateNodes:te});le=fe.createChildContext(ye,{extend:function(Te){Te.$component=ye,Te.$componentTemplateNodes=te}}),ye&&ye.koDescendantsComplete&&(J=f.i.subscribe(X,f.i.pa,ye.koDescendantsComplete,ye)),k=ye,f.Oa(le,X)}})},null,{l:X}),{controlsDescendantBindings:!0}}},f.h.ea.component=!0}();var w={class:"className",for:"htmlFor"};f.c.attr={update:function(b,R){var E=f.a.f(R())||{};f.a.P(E,function(X,A){A=f.a.f(A);var N=X.indexOf(":"),N="lookupNamespaceURI"in b&&0<N&&b.lookupNamespaceURI(X.substr(0,N)),O=A===!1||A===null||A===e;O?N?b.removeAttributeNS(N,X):b.removeAttribute(X):A=A.toString(),8>=f.a.W&&X in w?(X=w[X],O?b.removeAttribute(X):b[X]=A):O||(N?b.setAttributeNS(N,X,A):b.setAttribute(X,A)),X==="name"&&f.a.Yc(b,O?"":A)})}},function(){f.c.checked={after:["value","attr"],init:function(b,R,E){function X(){var z=b.checked,q=N();if(!f.S.Ya()&&(z||!U&&!f.S.qa())){var ee=f.u.G(R);if(k){var fe=H?ee.v():ee,_e=te;te=q,_e!==q?z&&(f.a.Na(fe,q,!0),f.a.Na(fe,_e,!1)):f.a.Na(fe,q,z),H&&f.Za(ee)&&ee(fe)}else O&&(q===e?q=z:z||(q=e)),f.m.eb(ee,E,"checked",q,!0)}}function A(){var z=f.a.f(R()),q=N();k?(b.checked=0<=f.a.A(z,q),te=q):b.checked=O&&q===e?!!z:N()===z}var N=f.xb(function(){if(E.has("checkedValue"))return f.a.f(E.get("checkedValue"));if(J)return E.has("value")?f.a.f(E.get("value")):b.value}),O=b.type=="checkbox",U=b.type=="radio";if(O||U){var Y=R(),k=O&&f.a.f(Y)instanceof Array,H=!(k&&Y.push&&Y.splice),J=U||k,te=k?N():e;U&&!b.name&&f.c.uniqueName.init(b,function(){return!0}),f.o(X,null,{l:b}),f.a.B(b,"click",X),f.o(A,null,{l:b}),Y=e}}},f.m.wa.checked=!0,f.c.checkedValue={update:function(b,R){b.value=f.a.f(R())}}}(),f.c.class={update:function(b,R){var E=f.a.Db(f.a.f(R()));f.a.Eb(b,b.__ko__cssValue,!1),b.__ko__cssValue=E,f.a.Eb(b,E,!0)}},f.c.css={update:function(b,R){var E=f.a.f(R());E!==null&&typeof E=="object"?f.a.P(E,function(X,A){A=f.a.f(A),f.a.Eb(b,X,A)}):f.c.class.update(b,R)}},f.c.enable={update:function(b,R){var E=f.a.f(R());E&&b.disabled?b.removeAttribute("disabled"):E||b.disabled||(b.disabled=!0)}},f.c.disable={update:function(b,R){f.c.enable.update(b,function(){return!f.a.f(R())})}},f.c.event={init:function(b,R,E,X,A){var N=R()||{};f.a.P(N,function(O){typeof O=="string"&&f.a.B(b,O,function(U){var Y,k=R()[O];if(k){try{var H=f.a.la(arguments);X=A.$data,H.unshift(X),Y=k.apply(X,H)}finally{Y!==!0&&(U.preventDefault?U.preventDefault():U.returnValue=!1)}E.get(O+"Bubble")===!1&&(U.cancelBubble=!0,U.stopPropagation&&U.stopPropagation())}})})}},f.c.foreach={Rc:function(b){return function(){var R=b(),E=f.a.bc(R);return!E||typeof E.length=="number"?{foreach:R,templateEngine:f.ba.Ma}:(f.a.f(R),{foreach:E.data,as:E.as,noChildContext:E.noChildContext,includeDestroyed:E.includeDestroyed,afterAdd:E.afterAdd,beforeRemove:E.beforeRemove,afterRender:E.afterRender,beforeMove:E.beforeMove,afterMove:E.afterMove,templateEngine:f.ba.Ma})}},init:function(b,R){return f.c.template.init(b,f.c.foreach.Rc(R))},update:function(b,R,E,X,A){return f.c.template.update(b,f.c.foreach.Rc(R),E,X,A)}},f.m.Ra.foreach=!1,f.h.ea.foreach=!0,f.c.hasfocus={init:function(b,R,E){function X(O){b.__ko_hasfocusUpdating=!0;var U=b.ownerDocument;if("activeElement"in U){var Y;try{Y=U.activeElement}catch{Y=U.body}O=Y===b}U=R(),f.m.eb(U,E,"hasfocus",O,!0),b.__ko_hasfocusLastValue=O,b.__ko_hasfocusUpdating=!1}var A=X.bind(null,!0),N=X.bind(null,!1);f.a.B(b,"focus",A),f.a.B(b,"focusin",A),f.a.B(b,"blur",N),f.a.B(b,"focusout",N),b.__ko_hasfocusLastValue=!1},update:function(b,R){var E=!!f.a.f(R());b.__ko_hasfocusUpdating||b.__ko_hasfocusLastValue===E||(E?b.focus():b.blur(),!E&&b.__ko_hasfocusLastValue&&b.ownerDocument.body.focus(),f.u.G(f.a.Fb,null,[b,E?"focusin":"focusout"]))}},f.m.wa.hasfocus=!0,f.c.hasFocus=f.c.hasfocus,f.m.wa.hasFocus="hasfocus",f.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(b,R){f.a.fc(b,R())}},function(){function b(R,E,X){f.c[R]={init:function(A,N,O,U,Y){var k,H,J={},te,z,q;if(E){U=O.get("as");var ee=O.get("noChildContext");q=!(U&&ee),J={as:U,noChildContext:ee,exportDependencies:q}}return z=(te=O.get("completeOn")=="render")||O.has(f.i.pa),f.o(function(){var fe=f.a.f(N()),_e=!X!=!fe,le=!H,ye;(q||_e!==k)&&(z&&(Y=f.i.Cb(A,Y)),_e&&((!E||q)&&(J.dataDependency=f.S.o()),ye=E?Y.createChildContext(typeof fe=="function"?fe:N,J):f.S.qa()?Y.extend(null,J):Y),le&&f.S.qa()&&(H=f.a.Ca(f.h.childNodes(A),!0)),_e?(le||f.h.va(A,f.a.Ca(H)),f.Oa(ye,A)):(f.h.Ea(A),te||f.i.ma(A,f.i.H)),k=_e)},null,{l:A}),{controlsDescendantBindings:!0}}},f.m.Ra[R]=!1,f.h.ea[R]=!0}b("if"),b("ifnot",!1,!0),b("with",!0)}(),f.c.let={init:function(b,R,E,X,A){return R=A.extend(R),f.Oa(R,b),{controlsDescendantBindings:!0}}},f.h.ea.let=!0;var F={};f.c.options={init:function(b){if(f.a.R(b)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<b.length;)b.remove(0);return{controlsDescendantBindings:!0}},update:function(b,R,E){function X(){return f.a.jb(b.options,function(ee){return ee.selected})}function A(ee,fe,_e){var le=typeof fe;return le=="function"?fe(ee):le=="string"?ee[fe]:_e}function N(ee,fe){if(z&&k)f.i.ma(b,f.i.H);else if(te.length){var _e=0<=f.a.A(te,f.w.M(fe[0]));f.a.Zc(fe[0],_e),z&&!_e&&f.u.G(f.a.Fb,null,[b,"change"])}}var O=b.multiple,U=b.length!=0&&O?b.scrollTop:null,Y=f.a.f(R()),k=E.get("valueAllowUnset")&&E.has("value"),H=E.get("optionsIncludeDestroyed");R={};var J,te=[];k||(O?te=f.a.Mb(X(),f.w.M):0<=b.selectedIndex&&te.push(f.w.M(b.options[b.selectedIndex]))),Y&&(typeof Y.length>"u"&&(Y=[Y]),J=f.a.jb(Y,function(ee){return H||ee===e||ee===null||!f.a.f(ee._destroy)}),E.has("optionsCaption")&&(Y=f.a.f(E.get("optionsCaption")),Y!==null&&Y!==e&&J.unshift(F)));var z=!1;if(R.beforeRemove=function(ee){b.removeChild(ee)},Y=N,E.has("optionsAfterRender")&&typeof E.get("optionsAfterRender")=="function"&&(Y=function(ee,fe){N(0,fe),f.u.G(E.get("optionsAfterRender"),null,[fe[0],ee!==F?ee:e])}),f.a.ec(b,J,function(ee,fe,_e){return _e.length&&(te=!k&&_e[0].selected?[f.w.M(_e[0])]:[],z=!0),fe=b.ownerDocument.createElement("option"),ee===F?(f.a.Bb(fe,E.get("optionsCaption")),f.w.cb(fe,e)):(_e=A(ee,E.get("optionsValue"),ee),f.w.cb(fe,f.a.f(_e)),ee=A(ee,E.get("optionsText"),_e),f.a.Bb(fe,ee)),[fe]},R,Y),!k){var q;O?q=te.length&&X().length<te.length:q=te.length&&0<=b.selectedIndex?f.w.M(b.options[b.selectedIndex])!==te[0]:te.length||0<=b.selectedIndex,q&&f.u.G(f.a.Fb,null,[b,"change"])}(k||f.S.Ya())&&f.i.ma(b,f.i.H),f.a.wd(b),U&&20<Math.abs(U-b.scrollTop)&&(b.scrollTop=U)}},f.c.options.$b=f.a.g.Z(),f.c.selectedOptions={init:function(b,R,E){function X(){var O=R(),U=[];f.a.D(b.getElementsByTagName("option"),function(Y){Y.selected&&U.push(f.w.M(Y))}),f.m.eb(O,E,"selectedOptions",U)}function A(){var O=f.a.f(R()),U=b.scrollTop;O&&typeof O.length=="number"&&f.a.D(b.getElementsByTagName("option"),function(Y){var k=0<=f.a.A(O,f.w.M(Y));Y.selected!=k&&f.a.Zc(Y,k)}),b.scrollTop=U}if(f.a.R(b)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var N;f.i.subscribe(b,f.i.H,function(){N?X():(f.a.B(b,"change",X),N=f.o(A,null,{l:b}))},null,{notifyImmediately:!0})},update:function(){}},f.m.wa.selectedOptions=!0,f.c.style={update:function(b,R){var E=f.a.f(R()||{});f.a.P(E,function(X,A){if(A=f.a.f(A),(A===null||A===e||A===!1)&&(A=""),o)o(b).css(X,A);else if(/^--/.test(X))b.style.setProperty(X,A);else{X=X.replace(/-(\w)/g,function(O,U){return U.toUpperCase()});var N=b.style[X];b.style[X]=A,A===N||b.style[X]!=N||isNaN(A)||(b.style[X]=A+"px")}})}},f.c.submit={init:function(b,R,E,X,A){if(typeof R()!="function")throw Error("The value for a submit binding must be a function");f.a.B(b,"submit",function(N){var O,U=R();try{O=U.call(A.$data,b)}finally{O!==!0&&(N.preventDefault?N.preventDefault():N.returnValue=!1)}})}},f.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(b,R){f.a.Bb(b,R())}},f.h.ea.text=!0,function(){if(t&&t.navigator){var b=function(J){if(J)return parseFloat(J[1])},R=t.navigator.userAgent,E,X,A,N,O;(E=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(O=b(R.match(/Edge\/([^ ]+)$/)))||b(R.match(/Chrome\/([^ ]+)/))||(X=b(R.match(/Version\/([^ ]+) Safari/)))||(A=b(R.match(/Firefox\/([^ ]+)/)))||(N=f.a.W||b(R.match(/MSIE ([^ ]+)/)))||(N=b(R.match(/rv:([^ )]+)/)))}if(8<=N&&10>N)var U=f.a.g.Z(),Y=f.a.g.Z(),k=function(J){var te=this.activeElement;(te=te&&f.a.g.get(te,Y))&&te(J)},H=function(J,te){var z=J.ownerDocument;f.a.g.get(z,U)||(f.a.g.set(z,U,!0),f.a.B(z,"selectionchange",k)),f.a.g.set(J,Y,te)};f.c.textInput={init:function(J,te,z){function q(ke,Oe){f.a.B(J,ke,Oe)}function ee(){var ke=f.a.f(te());(ke===null||ke===e)&&(ke=""),Te!==e&&ke===Te?f.a.setTimeout(ee,4):J.value!==ke&&(Le=!0,J.value=ke,Le=!1,le=J.value)}function fe(){ye||(Te=J.value,ye=f.a.setTimeout(_e,4))}function _e(){clearTimeout(ye),Te=ye=e;var ke=J.value;le!==ke&&(le=ke,f.m.eb(te(),z,"textInput",ke))}var le=J.value,ye,Te,Xe=f.a.W==9?fe:_e,Le=!1;N&&q("keypress",_e),11>N&&q("propertychange",function(ke){Le||ke.propertyName!=="value"||Xe(ke)}),N==8&&(q("keyup",_e),q("keydown",_e)),H&&(H(J,Xe),q("dragend",fe)),(!N||9<=N)&&q("input",Xe),5>X&&f.a.R(J)==="textarea"?(q("keydown",fe),q("paste",fe),q("cut",fe)):11>E?q("keydown",fe):4>A?(q("DOMAutoComplete",_e),q("dragdrop",_e),q("drop",_e)):O&&J.type==="number"&&q("keydown",fe),q("change",_e),q("blur",_e),f.o(ee,null,{l:J})}},f.m.wa.textInput=!0,f.c.textinput={preprocess:function(J,te,z){z("textInput",J)}}}(),f.c.uniqueName={init:function(b,R){if(R()){var E="ko_unique_"+ ++f.c.uniqueName.rd;f.a.Yc(b,E)}}},f.c.uniqueName.rd=0,f.c.using={init:function(b,R,E,X,A){var N;return E.has("as")&&(N={as:E.get("as"),noChildContext:E.get("noChildContext")}),R=A.createChildContext(R,N),f.Oa(R,b),{controlsDescendantBindings:!0}}},f.h.ea.using=!0,f.c.value={init:function(b,R,E){var X=f.a.R(b),A=X=="input";if(!A||b.type!="checkbox"&&b.type!="radio"){var N=[],O=E.get("valueUpdate"),U=!1,Y=null;O&&(typeof O=="string"?N=[O]:N=f.a.wc(O),f.a.Pa(N,"change"));var k=function(){Y=null,U=!1;var te=R(),z=f.w.M(b);f.m.eb(te,E,"value",z)};!f.a.W||!A||b.type!="text"||b.autocomplete=="off"||b.form&&b.form.autocomplete=="off"||f.a.A(N,"propertychange")!=-1||(f.a.B(b,"propertychange",function(){U=!0}),f.a.B(b,"focus",function(){U=!1}),f.a.B(b,"blur",function(){U&&k()})),f.a.D(N,function(te){var z=k;f.a.Ud(te,"after")&&(z=function(){Y=f.w.M(b),f.a.setTimeout(k,0)},te=te.substring(5)),f.a.B(b,te,z)});var H;if(H=A&&b.type=="file"?function(){var te=f.a.f(R());te===null||te===e||te===""?b.value="":f.u.G(k)}:function(){var te=f.a.f(R()),z=f.w.M(b);Y!==null&&te===Y?f.a.setTimeout(H,0):(te!==z||z===e)&&(X==="select"?(z=E.get("valueAllowUnset"),f.w.cb(b,te,z),z||te===f.w.M(b)||f.u.G(k)):f.w.cb(b,te))},X==="select"){var J;f.i.subscribe(b,f.i.H,function(){J?E.get("valueAllowUnset")?H():k():(f.a.B(b,"change",k),J=f.o(H,null,{l:b}))},null,{notifyImmediately:!0})}else f.a.B(b,"change",k),f.o(H,null,{l:b})}else f.ib(b,{checkedValue:R})},update:function(){}},f.m.wa.value=!0,f.c.visible={update:function(b,R){var E=f.a.f(R()),X=b.style.display!="none";E&&!X?b.style.display="":!E&&X&&(b.style.display="none")}},f.c.hidden={update:function(b,R){f.c.visible.update(b,function(){return!f.a.f(R())})}},function(b){f.c[b]={init:function(R,E,X,A,N){return f.c.event.init.call(this,R,function(){var O={};return O[b]=E(),O},X,A,N)}}}("click"),f.ca=function(){},f.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},f.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},f.ca.prototype.makeTemplateSource=function(b,R){if(typeof b=="string"){R=R||n;var E=R.getElementById(b);if(!E)throw Error("Cannot find template with ID "+b);return new f.C.F(E)}if(b.nodeType==1||b.nodeType==8)return new f.C.ia(b);throw Error("Unknown template type: "+b)},f.ca.prototype.renderTemplate=function(b,R,E,X){return b=this.makeTemplateSource(b,X),this.renderTemplateSource(b,R,E,X)},f.ca.prototype.isTemplateRewritten=function(b,R){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(b,R).data("isRewritten")},f.ca.prototype.rewriteTemplate=function(b,R,E){b=this.makeTemplateSource(b,E),R=R(b.text()),b.text(R),b.data("isRewritten",!0)},f.b("templateEngine",f.ca),f.kc=function(){function b(X,A,N,O){X=f.m.ac(X);for(var U=f.m.Ra,Y=0;Y<X.length;Y++){var k=X[Y].key;if(Object.prototype.hasOwnProperty.call(U,k)){var H=U[k];if(typeof H=="function"){if(k=H(X[Y].value))throw Error(k)}else if(!H)throw Error("This template engine does not support the '"+k+"' binding within its templates")}}return N="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+f.m.vb(X,{valueAccessors:!0})+" } })()},'"+N.toLowerCase()+"')",O.createJavaScriptEvaluatorBlock(N)+A}var R=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,E=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(X,A,N){A.isTemplateRewritten(X,N)||A.rewriteTemplate(X,function(O){return f.kc.Ld(O,A)},N)},Ld:function(X,A){return X.replace(R,function(N,O,U,Y,k){return b(k,O,U,A)}).replace(E,function(N,O){return b(O,"<!-- ko -->","#comment",A)})},md:function(X,A){return f.aa.Xb(function(N,O){var U=N.nextSibling;U&&U.nodeName.toLowerCase()===A&&f.ib(U,X,O)})}}}(),f.b("__tr_ambtns",f.kc.md),function(){f.C={},f.C.F=function(E){if(this.F=E){var X=f.a.R(E);this.ab=X==="script"?1:X==="textarea"?2:X=="template"&&E.content&&E.content.nodeType===11?3:4}},f.C.F.prototype.text=function(){var E=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[E];var X=arguments[0];E==="innerHTML"?f.a.fc(this.F,X):this.F[E]=X};var b=f.a.g.Z()+"_";f.C.F.prototype.data=function(E){if(arguments.length===1)return f.a.g.get(this.F,b+E);f.a.g.set(this.F,b+E,arguments[1])};var R=f.a.g.Z();f.C.F.prototype.nodes=function(){var E=this.F;if(arguments.length==0){var X=f.a.g.get(E,R)||{},A=X.lb||(this.ab===3?E.content:this.ab===4?E:e);if(!A||X.jd){var N=this.text();N&&N!==X.bb&&(A=f.a.Md(N,E.ownerDocument),f.a.g.set(E,R,{lb:A,bb:N,jd:!0}))}return A}X=arguments[0],this.ab!==e&&this.text(""),f.a.g.set(E,R,{lb:X})},f.C.ia=function(E){this.F=E},f.C.ia.prototype=new f.C.F,f.C.ia.prototype.constructor=f.C.ia,f.C.ia.prototype.text=function(){if(arguments.length==0){var E=f.a.g.get(this.F,R)||{};return E.bb===e&&E.lb&&(E.bb=E.lb.innerHTML),E.bb}f.a.g.set(this.F,R,{bb:arguments[0]})},f.b("templateSources",f.C),f.b("templateSources.domElement",f.C.F),f.b("templateSources.anonymousTemplate",f.C.ia)}(),function(){function b(Y,k,H){var J;for(k=f.h.nextSibling(k);Y&&(J=Y)!==k;)Y=f.h.nextSibling(J),H(J,Y)}function R(Y,k){if(Y.length){var H=Y[0],J=Y[Y.length-1],te=H.parentNode,z=f.ga.instance,q=z.preprocessNode;if(q){if(b(H,J,function(ee,fe){var _e=ee.previousSibling,le=q.call(z,ee);le&&(ee===H&&(H=le[0]||fe),ee===J&&(J=le[le.length-1]||_e))}),Y.length=0,!H)return;H===J?Y.push(H):(Y.push(H,J),f.a.Ua(Y,te))}b(H,J,function(ee){ee.nodeType!==1&&ee.nodeType!==8||f.vc(k,ee)}),b(H,J,function(ee){ee.nodeType!==1&&ee.nodeType!==8||f.aa.cd(ee,[k])}),f.a.Ua(Y,te)}}function E(Y){return Y.nodeType?Y:0<Y.length?Y[0]:null}function X(Y,k,H,J,te){te=te||{};var z=(Y&&E(Y)||H||{}).ownerDocument,q=te.templateEngine||N;if(f.kc.xd(H,q,z),H=q.renderTemplate(H,J,te,z),typeof H.length!="number"||0<H.length&&typeof H[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(z=!1,k){case"replaceChildren":f.h.va(Y,H),z=!0;break;case"replaceNode":f.a.Xc(Y,H),z=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return z&&(R(H,J),te.afterRender&&f.u.G(te.afterRender,null,[H,J[te.as||"$data"]]),k=="replaceChildren"&&f.i.ma(Y,f.i.H)),H}function A(Y,k,H){return f.O(Y)?Y():typeof Y=="function"?Y(k,H):Y}var N;f.gc=function(Y){if(Y!=e&&!(Y instanceof f.ca))throw Error("templateEngine must inherit from ko.templateEngine");N=Y},f.dc=function(Y,k,H,J,te){if(H=H||{},(H.templateEngine||N)==e)throw Error("Set a template engine before calling renderTemplate");if(te=te||"replaceChildren",J){var z=E(J);return f.$(function(){var ee=k&&k instanceof f.fa?k:new f.fa(k,null,null,null,{exportDependencies:!0}),q=A(Y,ee.$data,ee),ee=X(J,te,q,ee,H);te=="replaceNode"&&(J=ee,z=E(J))},null,{Sa:function(){return!z||!f.a.Sb(z)},l:z&&te=="replaceNode"?z.parentNode:z})}return f.aa.Xb(function(q){f.dc(Y,k,H,q,"replaceNode")})},f.Qd=function(Y,k,H,J,te){function z(Te,Xe){f.u.G(f.a.ec,null,[J,Te,ee,H,q,Xe]),f.i.ma(J,f.i.H)}function q(Te,Xe){R(Xe,fe),H.afterRender&&H.afterRender(Xe,Te),fe=null}function ee(Te,Xe){fe=te.createChildContext(Te,{as:_e,noChildContext:H.noChildContext,extend:function(ke){ke.$index=Xe,_e&&(ke[_e+"Index"]=Xe)}});var Le=A(Y,Te,fe);return X(J,"ignoreTargetNode",Le,fe,H)}var fe,_e=H.as,le=H.includeDestroyed===!1||f.options.foreachHidesDestroyed&&!H.includeDestroyed;if(le||H.beforeRemove||!f.Pc(k))return f.$(function(){var Te=f.a.f(k)||[];typeof Te.length>"u"&&(Te=[Te]),le&&(Te=f.a.jb(Te,function(Xe){return Xe===e||Xe===null||!f.a.f(Xe._destroy)})),z(Te)},null,{l:J});z(k.v());var ye=k.subscribe(function(Te){z(k(),Te)},null,"arrayChange");return ye.l(J),ye};var O=f.a.g.Z(),U=f.a.g.Z();f.c.template={init:function(Y,k){var H=f.a.f(k());if(typeof H=="string"||"name"in H)f.h.Ea(Y);else if("nodes"in H){if(H=H.nodes||[],f.O(H))throw Error('The "nodes" option must be a plain, non-observable array.');var J=H[0]&&H[0].parentNode;J&&f.a.g.get(J,U)||(J=f.a.Yb(H),f.a.g.set(J,U,!0)),new f.C.ia(Y).nodes(J)}else if(H=f.h.childNodes(Y),0<H.length)J=f.a.Yb(H),new f.C.ia(Y).nodes(J);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(Y,k,H,J,te){var z=k();k=f.a.f(z),H=!0,J=null,typeof k=="string"?k={}:(z="name"in k?k.name:Y,"if"in k&&(H=f.a.f(k.if)),H&&"ifnot"in k&&(H=!f.a.f(k.ifnot)),H&&!z&&(H=!1)),"foreach"in k?J=f.Qd(z,H&&k.foreach||[],k,Y,te):H?(H=te,"data"in k&&(H=te.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),J=f.dc(z,H,k,Y)):f.h.Ea(Y),te=J,(k=f.a.g.get(Y,O))&&typeof k.s=="function"&&k.s(),f.a.g.set(Y,O,!te||te.ja&&!te.ja()?e:te)}},f.m.Ra.template=function(Y){return Y=f.m.ac(Y),Y.length==1&&Y[0].unknown||f.m.Id(Y,"name")?null:"This template engine does not support anonymous templates nested within its templates"},f.h.ea.template=!0}(),f.b("setTemplateEngine",f.gc),f.b("renderTemplate",f.dc),f.a.Kc=function(b,R,E){if(b.length&&R.length){var X,A,N,O,U;for(X=A=0;(!E||X<E)&&(O=b[A]);++A){for(N=0;U=R[N];++N)if(O.value===U.value){O.moved=U.index,U.moved=O.index,R.splice(N,1),X=N=0;break}X+=N}}},f.a.Pb=function(){function b(R,E,X,A,N){var O=Math.min,U=Math.max,Y=[],k,H=R.length,J,te=E.length,z=te-H||1,q=H+te+1,ee,fe,_e;for(k=0;k<=H;k++)for(fe=ee,Y.push(ee=[]),_e=O(te,k+z),J=U(0,k-1);J<=_e;J++)ee[J]=J?k?R[k-1]===E[J-1]?fe[J-1]:O(fe[J]||q,ee[J-1]||q)+1:J+1:k+1;for(O=[],U=[],z=[],k=H,J=te;k||J;)te=Y[k][J]-1,J&&te===Y[k][J-1]?U.push(O[O.length]={status:X,value:E[--J],index:J}):k&&te===Y[k-1][J]?z.push(O[O.length]={status:A,value:R[--k],index:k}):(--J,--k,N.sparse||O.push({status:"retained",value:E[J]}));return f.a.Kc(z,U,!N.dontLimitMoves&&10*H),O.reverse()}return function(R,E,X){return X=typeof X=="boolean"?{dontLimitMoves:X}:X||{},R=R||[],E=E||[],R.length<E.length?b(R,E,"added","deleted",X):b(E,R,"deleted","added",X)}}(),f.b("utils.compareArrays",f.a.Pb),function(){function b(X,A,N,O,U){var Y=[],k=f.$(function(){var H=A(N,U,f.a.Ua(Y,X))||[];0<Y.length&&(f.a.Xc(Y,H),O&&f.u.G(O,null,[N,H,U])),Y.length=0,f.a.Nb(Y,H)},null,{l:X,Sa:function(){return!f.a.kd(Y)}});return{Y,$:k.ja()?k:e}}var R=f.a.g.Z(),E=f.a.g.Z();f.a.ec=function(X,A,N,O,U,Y){function k(He){Le={Aa:He,pb:f.ta(fe++)},q.push(Le),z||Xe.push(Le)}function H(He){Le=te[He],fe!==Le.pb.v()&&Te.push(Le),Le.pb(fe++),f.a.Ua(Le.Y,X),q.push(Le)}function J(He,Dt){if(He)for(var Ce=0,Ve=Dt.length;Ce<Ve;Ce++)f.a.D(Dt[Ce].Y,function(ct){He(ct,Ce,Dt[Ce].Aa)})}A=A||[],typeof A.length>"u"&&(A=[A]),O=O||{};var te=f.a.g.get(X,R),z=!te,q=[],ee=0,fe=0,_e=[],le=[],ye=[],Te=[],Xe=[],Le,ke=0;if(z)f.a.D(A,k);else{if(!Y||te&&te._countWaitingForRemove){var Oe=f.a.Mb(te,function(He){return He.Aa});Y=f.a.Pb(Oe,A,{dontLimitMoves:O.dontLimitMoves,sparse:!0})}for(var Oe=0,at,Mt,Lt;at=Y[Oe];Oe++)switch(Mt=at.moved,Lt=at.index,at.status){case"deleted":for(;ee<Lt;)H(ee++);Mt===e&&(Le=te[ee],Le.$&&(Le.$.s(),Le.$=e),f.a.Ua(Le.Y,X).length&&(O.beforeRemove&&(q.push(Le),ke++,Le.Aa===E?Le=null:ye.push(Le)),Le&&_e.push.apply(_e,Le.Y))),ee++;break;case"added":for(;fe<Lt;)H(ee++);Mt!==e?(le.push(q.length),H(Mt)):k(at.value)}for(;fe<A.length;)H(ee++);q._countWaitingForRemove=ke}f.a.g.set(X,R,q),J(O.beforeMove,Te),f.a.D(_e,O.beforeRemove?f.oa:f.removeNode);var Ie,je,et;try{et=X.ownerDocument.activeElement}catch{}if(le.length)for(;(Oe=le.shift())!=e;){for(Le=q[Oe],Ie=e;Oe;)if((je=q[--Oe].Y)&&je.length){Ie=je[je.length-1];break}for(A=0;ee=Le.Y[A];Ie=ee,A++)f.h.Wb(X,ee,Ie)}for(Oe=0;Le=q[Oe];Oe++){for(Le.Y||f.a.extend(Le,b(X,N,Le.Aa,U,Le.pb)),A=0;ee=Le.Y[A];Ie=ee,A++)f.h.Wb(X,ee,Ie);!Le.Ed&&U&&(U(Le.Aa,Le.Y,Le.pb),Le.Ed=!0,Ie=Le.Y[Le.Y.length-1])}for(et&&X.ownerDocument.activeElement!=et&&et.focus(),J(O.beforeRemove,ye),Oe=0;Oe<ye.length;++Oe)ye[Oe].Aa=E;J(O.afterMove,Te),J(O.afterAdd,Xe)}}(),f.b("utils.setDomNodeChildrenFromArrayMapping",f.a.ec),f.ba=function(){this.allowTemplateRewriting=!1},f.ba.prototype=new f.ca,f.ba.prototype.constructor=f.ba,f.ba.prototype.renderTemplateSource=function(b,R,E,X){return(R=!(9>f.a.W)&&b.nodes?b.nodes():null)?f.a.la(R.cloneNode(!0).childNodes):(b=b.text(),f.a.ua(b,X))},f.ba.Ma=new f.ba,f.gc(f.ba.Ma),f.b("nativeTemplateEngine",f.ba),function(){f.$a=function(){var R=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(E,X,A,N){if(N=N||n,A=A||{},2>R)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var O=E.data("precompiled");return O||(O=E.text()||"",O=o.template(null,"{{ko_with $item.koBindingContext}}"+O+"{{/ko_with}}"),E.data("precompiled",O)),E=[X.$data],X=o.extend({koBindingContext:X},A.templateOptions),X=o.tmpl(O,E,X),X.appendTo(N.createElement("div")),o.fragments={},X},this.createJavaScriptEvaluatorBlock=function(E){return"{{ko_code ((function() { return "+E+" })()) }}"},this.addTemplate=function(E,X){n.write("<script type='text/html' id='"+E+"'>"+X+"<\/script>")},0<R&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},f.$a.prototype=new f.ca,f.$a.prototype.constructor=f.$a;var b=new f.$a;0<b.Hd&&f.gc(b),f.b("jqueryTmplTemplateEngine",f.$a)}()})})()})()})();var zSt=ko;typeof window<"u"?(ko=window.ko,typeof DM<"u"?window.ko=DM:delete window.ko):(ko=global.ko,typeof DM<"u"?global.ko=DM:delete global.ko);var gS=zSt;var oVo=T(S(),1);/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var Z6="__knockoutObservables",G6="__knockoutSubscribable";function YSe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=HSe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===Z6||o===G6)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&JSt(n,a)}}),e}function HSe(e,t){var n=e[Z6];return!n&&t&&(n={},Object.defineProperty(e,Z6,{value:n})),n}function KSt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),YSe.call(i,e,[t]),e}function JSt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=QSt(e,t,i))})}function QSt(e,t,n){var i=jSt(e,n);return i.subscribe(t)}function jSt(e,t){var n=t[G6];if(!n){n=new e.subscribable,Object.defineProperty(t,G6,{value:n});var i={};qSt(t,n,i),$St(e,t,n,i)}return n}function qSt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function $St(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function zSe(e,t){if(!e)return null;var n=HSe(e,!1);return n&&n[t]||null}function eCt(e,t){var n=zSe(e,t);n&&n.valueHasMutated()}function tCt(e){e.track=YSe,e.getObservable=zSe,e.valueHasMutated=eCt,e.defineProperty=KSt}var BM={attachToKo:tCt};var sVo=T(S(),1),KSe="http://www.w3.org/2000/svg",JSe="cesium-svgPath-svg",nCt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(KSe,"svg:svg");i.setAttribute("class",JSe);let o=document.createElementNS(KSe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${JSe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},OM=nCt;BM.attachToKo(gS);OM.register(gS);var Se=gS;function YM(e){l(e)||(e=new oh),this._clock=e,this._eventHelper=new lr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=Se.observable(j.now()),this.systemTime.equalityComparer=j.equals,this.startTime=Se.observable(e.startTime),this.startTime.equalityComparer=j.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=Se.observable(e.stopTime),this.stopTime.equalityComparer=j.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=Se.observable(e.currentTime),this.currentTime.equalityComparer=j.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=Se.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=Se.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=Se.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=Se.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=Se.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),Se.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(YM.prototype,{clock:{get:function(){return this._clock}}});YM.prototype.synchronize=function(){let e=this._clock;this.systemTime=j.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};YM.prototype.isDestroyed=function(){return!1};YM.prototype.destroy=function(){this._eventHelper.removeAll(),me(this)};var HM=YM;var yVo=T(S(),1);function iCt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,pe.throwInstantiationError()}var E6=iCt;var SVo=T(S(),1);var zM={};zM.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};zM.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};zM.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let d=document.createElement("div");return d.className="cesium-cesiumInspector-slider",d.appendChild(document.createTextNode(e)),d.appendChild(s),d.appendChild(c),d};zM.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var Ba=zM;var GVo=T(S(),1);function QSe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),Se.track(this,["toggled","tooltip"])}Object.defineProperties(QSe.prototype,{command:{get:function(){return this._command}}});var Ny=QSe;var vVo=T(S(),1);function oCt(e,t){t=y(t,!0);let n=new be,i=new be;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,Se.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var Ln=oCt;var AVo=T(S(),1);function rCt(e,t,n,i,o){return n.call(i,e[t]),Se.getObservable(e,t).subscribe(n,i,o)}var xa=rCt;var DVo=T(S(),1);var yS="http://www.w3.org/2000/svg",$Se="http://www.w3.org/1999/xlink",u3,KM=B.fromCssColorString("rgba(247,250,255,0.384)"),m3=B.fromCssColorString("rgba(143,191,255,0.216)"),I6=B.fromCssColorString("rgba(153,197,255,0.098)"),h3=B.fromCssColorString("rgba(255,255,255,0.086)"),sCt=B.fromCssColorString("rgba(255,255,255,0.267)"),aCt=B.fromCssColorString("rgba(255,255,255,0)"),jSe=B.fromCssColorString("rgba(66,67,68,0.3)"),qSe=B.fromCssColorString("rgba(0,0,0,0.5)");function ky(e){return B.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var JM={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function Ah(e){let t=document.createElementNS(yS,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(Ah(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS($Se,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function X6(e,t,n){let i=document.createElementNS(yS,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(yS,"tspan");return o.textContent=n,i.appendChild(o),i}function cCt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var f3=new B;function os(e,t){let n=t.alpha,i=1-n;return f3.red=e.red*i+t.red*n,f3.green=e.green*i+t.green*n,f3.blue=e.blue*i+t.blue*n,f3.toCssColorString()}function W6(e,t,n){let i=JM[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Ah(o)}function lCt(e,t,n){let i=JM[n],o=JM.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return Ah(r)}function dCt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&u3!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,d;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,d=t.touches[0].clientY):(c=t.clientX,d=t.clientY),!i&&(c>a.right||c<a.left||d<a.top||d>a.bottom))return;let u=e._shuttleRingPointer.getBoundingClientRect(),m=c-o-a.left,p=d-r-a.top,g=Math.atan2(p,m)*180/Math.PI+90;g>180&&(g-=360);let f=n.shuttleRingAngle;i||c<u.right&&c>u.left&&d>u.top&&d<u.bottom?(u3=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<f?n.slower():g>f&&n.faster(),t.preventDefault()}else e===u3&&(u3=void 0),n.shuttleRingDragging=!1}function _0(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[xa(t,"toggled",this.setToggled,this),xa(t,"tooltip",this.setTooltip,this),xa(t.command,"canExecute",this.setEnabled,this)]}_0.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();me(this)};_0.prototype.isDestroyed=function(){return!1};_0.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};_0.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};_0.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function vL(e,t){e=Xn(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(yS,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",$Se);let s=document.createElementNS(yS,"g");this._topG=s,this._realtimeSVG=new _0(lCt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new _0(W6(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new _0(W6(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new _0(W6(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(yS,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=Ah({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let d=JM.animation_pathSwooshFX,u=JM.animation_pathPointer,m=Ah({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:d.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:d.d},{tagName:d.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:d.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=m,this._shuttleRingPointer=Ah({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:u.tagName,d:u.d});let p=Ah({tagName:"g",transform:"translate(100,100)"});this._knobOuter=Ah({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,f=Ah({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=X6(0,-24,""),this._knobTime=X6(0,-7,""),this._knobStatus=X6(0,-41,"");let x=Ah({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),_=document.createElementNS(yS,"g");_.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(_),s.appendChild(p),s.appendChild(a),_.appendChild(c),_.appendChild(m),_.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(f),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let C=this;function V(v){dCt(C,v)}this._mouseCallback=V,c.addEventListener("mousedown",V,!0),c.addEventListener("touchstart",V,!0),m.addEventListener("mousedown",V,!0),m.addEventListener("touchstart",V,!0),n.addEventListener("mousemove",V,!0),n.addEventListener("touchmove",V,!0),n.addEventListener("mouseup",V,!0),n.addEventListener("touchend",V,!0),n.addEventListener("touchcancel",V,!0),this._shuttleRingPointer.addEventListener("mousedown",V,!0),this._shuttleRingPointer.addEventListener("touchstart",V,!0),this._knobOuter.addEventListener("mousedown",V,!0),this._knobOuter.addEventListener("touchstart",V,!0);let L=this._knobTime.childNodes[0],Z=this._knobDate.childNodes[0],G=this._knobStatus.childNodes[0],I;this._subscriptions=[xa(t.pauseViewModel,"toggled",function(v){I!==v&&(I=v,I?C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):C._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),xa(t,"shuttleRingAngle",function(v){cCt(C._shuttleRingPointer,C._knobOuter,v)}),xa(t,"dateLabel",function(v){Z.textContent!==v&&(Z.textContent=v)}),xa(t,"timeLabel",function(v){L.textContent!==v&&(L.textContent=v)}),xa(t,"multiplierLabel",function(v){G.textContent!==v&&(G.textContent=v)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(vL.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});vL.prototype.isDestroyed=function(){return!1};vL.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return me(this)};vL.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};vL.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let u=this;u._observer=new MutationObserver(function(){e.body.contains(u._container)&&(u._observer.disconnect(),u._observer=void 0,u.applyThemeChanges())}),u._observer.observe(e,{childList:!0,subtree:!0});return}let t=ky(this._themeNormal),n=ky(this._themeHover),i=ky(this._themeSelect),o=ky(this._themeDisabled),r=ky(this._themeKnob),s=ky(this._themePointer),a=ky(this._themeSwoosh),c=ky(this._themeSwooshHover),d=Ah({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":os(t,KM)},{tagName:"stop",offset:"12%","stop-color":os(t,m3)},{tagName:"stop",offset:"46%","stop-color":os(t,I6)},{tagName:"stop",offset:"81%","stop-color":os(t,h3)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":os(n,KM)},{tagName:"stop",offset:"12%","stop-color":os(n,m3)},{tagName:"stop",offset:"46%","stop-color":os(n,I6)},{tagName:"stop",offset:"81%","stop-color":os(n,h3)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":os(i,KM)},{tagName:"stop",offset:"12%","stop-color":os(i,m3)},{tagName:"stop",offset:"46%","stop-color":os(i,I6)},{tagName:"stop",offset:"81%","stop-color":os(i,h3)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":os(o,sCt)},{tagName:"stop",offset:"75%","stop-color":os(o,aCt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":os(s,qSe)},{tagName:"stop",offset:"100%","stop-color":os(s,qSe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":os(r,KM)},{tagName:"stop",offset:"60%","stop-color":os(r,jSe)},{tagName:"stop",offset:"85%","stop-color":os(r,m3)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":os(r,jSe)},{tagName:"stop",offset:"60%","stop-color":os(r,KM)},{tagName:"stop",offset:"85%","stop-color":os(r,h3)}]}]});l(this._defsElement)?this._svgNode.replaceChild(d,this._defsElement):this._svgNode.appendChild(d),this._defsElement=d};var QM=vL;var QVo=T(S(),1);var uCt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Uy=15,wL=105;function eCe(e,t){return e-t}function P6(e,t){let n=Eo(t,e,eCe);return n<0?~n:n}function mCt(e,t){if(Math.abs(e)<=Uy)return e/Uy;let n=Uy,i=wL,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function hCt(e,t,n){if(n.clockStep===mo.SYSTEM_CLOCK)return Uy;if(Math.abs(e)<=1)return e*Uy;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=Uy,r=wL,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function um(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=um.defaultDateFormatter,this._timeFormatter=um.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,Se.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(um.defaultTicks),this.timeLabel=void 0,Se.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,Se.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,Se.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===mo.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,Se.defineProperty(this,"shuttleRingAngle",{get:function(){return hCt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,wL),-wL);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===wL){c.multiplier=s>0?a[a.length-1]:a[0];return}let d=mCt(s,a);if(t.snapToTicks)d=a[P6(d,a)];else if(d!==0){let u=Math.abs(d);if(u>100){let m=u.toFixed(0).length-2,p=Math.pow(10,m);d=Math.round(d/p)*p|0}else u>Uy?d=Math.round(d):u>1?d=+d.toFixed(1):u>0&&(d=+d.toFixed(2))}c.multiplier=d}}),this._canAnimate=void 0,Se.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Br.UNBOUNDED)return!0;let c=s.multiplier,d=s.currentTime,u=s.startTime,m=!1;if(a===Br.LOOP_STOP)m=j.greaterThan(d,u)||d.equals(u)&&c>0;else{let p=s.stopTime;m=j.greaterThan(d,u)&&j.lessThan(d,p)||d.equals(u)&&c>0||d.equals(p)&&c<0}return m||(s.shouldAnimate=!1),m}),this._isSystemTimeAvailable=void 0,Se.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Br.UNBOUNDED)return!0;let c=s.systemTime;return j.greaterThanOrEquals(c,s.startTime)&&j.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,Se.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=Ln(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new Ny(n,{toggled:Se.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=Ln(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new Ny(i,{toggled:Se.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=Ln(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new Ny(o,{toggled:Se.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==mo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=Ln(function(){t._clockViewModel.clockStep=mo.SYSTEM_CLOCK},Se.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new Ny(r,{toggled:Se.computed(function(){return e.clockStep===mo.SYSTEM_CLOCK}),tooltip:Se.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=Ln(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,d=P6(c,a)-1;d>=0&&(s.multiplier=a[d])}),this._faster=Ln(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,d=P6(c,a)+1;d<a.length&&(s.multiplier=a[d])})}um.defaultDateFormatter=function(e,t){let n=j.toGregorianDate(e);return`${uCt[n.month-1]} ${n.day} ${n.year}`};um.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];um.defaultTimeFormatter=function(e,t){let n=j.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};um.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};um.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(eCe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(um.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});um._maxShuttleRingAngle=wL;um._realtimeShuttleRingAngle=Uy;var jM=um;var lLo=T(S(),1);var nLo=T(S(),1);function tCe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,Se.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=Se.getObservable(this,"imageryProviderViewModels"),r=Se.pureComputed(function(){let m=o(),p={},g;for(g=0;g<m.length;g++){let _=m[g],C=_.category;l(p[C])?p[C].push(_):p[C]=[_]}let f=Object.keys(p),x=[];for(g=0;g<f.length;g++){let _=f[g];x.push({name:_,providers:p[_]})}return x});this._imageryProviders=r;let s=Se.getObservable(this,"terrainProviderViewModels"),a=Se.pureComputed(function(){let m=s(),p={},g;for(g=0;g<m.length;g++){let _=m[g],C=_.category;l(p[C])?p[C].push(_):p[C]=[_]}let f=Object.keys(p),x=[];for(g=0;g<f.length;g++){let _=f[g];x.push({name:_,providers:p[_]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,Se.defineProperty(this,"buttonTooltip",function(){let m=this.selectedImagery,p=this.selectedTerrain,g=l(m)?m.name:void 0,f=l(p)?p.name:void 0;return l(g)&&l(f)?`${g} +${f}`:l(g)?g:f}),this.buttonImageUrl=void 0,Se.defineProperty(this,"buttonImageUrl",function(){let m=this.selectedImagery;if(l(m))return m.iconUrl}),this.selectedImagery=void 0;let c=Se.observable();this._currentImageryLayers=[],Se.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(m){if(c()===m){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,f=g.length,x=this._globe.imageryLayers,_=!1;for(p=0;p<f;p++){let C=x.length;for(let V=0;V<C;V++){let L=x.get(V);if(L===g[p]){x.remove(L),_=!0;break}}}if(l(m)){let C=m.creationCommand();if(Array.isArray(C)){let V=C.length;for(this._currentImageryLayers=[],p=V-1;p>=0;p--){let L=ka.fromProviderAsync(C[p]);x.add(L,0),this._currentImageryLayers.push(L)}}else{this._currentImageryLayers=[];let V=ka.fromProviderAsync(C);if(V.name=m.name,_)x.add(V,0);else{let L=x.get(0);l(L)&&x.remove(L),x.add(V,0)}this._currentImageryLayers.push(V)}}c(m),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let d=Se.observable();Se.defineProperty(this,"selectedTerrain",{get:function(){return d()},set:function(m){if(d()===m){this.dropDownVisible=!1;return}let p;if(l(m)&&(p=m.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof kf),this._globe.terrainProvider=p;else if(l(p)){let g=!1,f=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,f()}),_=new MM(p).readyEvent.addEventListener(C=>{g||(this._globe.depthTestAgainstTerrain=!(C instanceof kf),this._globe.terrainProvider=C,_())})}d(m),this.dropDownVisible=!1}});let u=this;this._toggleDropDown=Ln(function(){u.dropDownVisible=!u.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=e.selectedTerrainProviderViewModel}Object.defineProperties(tCe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var qM=tCe;function p3(e,t){e=Xn(e);let n=new qM(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let d=document.createElement("div");d.className="cesium-baseLayerPicker-categoryTitle",d.setAttribute("data-bind","text: name"),c.appendChild(d);let u=document.createElement("div");u.className="cesium-baseLayerPicker-choices",u.setAttribute("data-bind","foreach: providers"),c.appendChild(u);let m=document.createElement("div");m.className="cesium-baseLayerPicker-item",m.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),u.appendChild(m);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),m.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),m.appendChild(g);let f=document.createElement("div");f.className="cesium-baseLayerPicker-sectionTitle",f.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),f.innerHTML="Terrain",r.appendChild(f);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let _=document.createElement("div");_.className="cesium-baseLayerPicker-category",x.appendChild(_);let C=document.createElement("div");C.className="cesium-baseLayerPicker-categoryTitle",C.setAttribute("data-bind","text: name"),_.appendChild(C);let V=document.createElement("div");V.className="cesium-baseLayerPicker-choices",V.setAttribute("data-bind","foreach: providers"),_.appendChild(V);let L=document.createElement("div");L.className="cesium-baseLayerPicker-item",L.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),V.appendChild(L);let Z=document.createElement("img");Z.className="cesium-baseLayerPicker-itemIcon",Z.setAttribute("data-bind","attr: { src: iconUrl }"),Z.setAttribute("draggable","false"),L.appendChild(Z);let G=document.createElement("div");G.className="cesium-baseLayerPicker-itemLabel",G.setAttribute("data-bind","text: name"),L.appendChild(G),Se.applyBindings(n,i),Se.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(I){i.contains(I.target)||r.contains(I.target)||(n.dropDownVisible=!1)},zt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(p3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});p3.prototype.isDestroyed=function(){return!1};p3.prototype.destroy=function(){return zt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._element),Se.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),me(this)};var $M=p3;var pLo=T(S(),1);function nCe(e){let t=e.creationFunction;l(t.canExecute)||(t=Ln(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),Se.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(nCe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var rs=nCe;var xLo=T(S(),1);function fCt(){let e=[],t=devicePixelRatio>=2;return e.push(new rs({name:"Bing Maps Aerial",iconUrl:rn("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return n0({style:t0.AERIAL})}})),e.push(new rs({name:"Bing Maps Aerial with Labels",iconUrl:rn("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return n0({style:t0.AERIAL_WITH_LABELS})}})),e.push(new rs({name:"Bing Maps Roads",iconUrl:rn("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return n0({style:t0.ROAD})}})),e.push(new rs({name:"ArcGIS World Imagery",iconUrl:rn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return $b.fromBasemapType(Ch.SATELLITE,{enablePickFeatures:!1})}})),e.push(new rs({name:"ArcGIS World Hillshade",iconUrl:rn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return $b.fromBasemapType(Ch.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new rs({name:"Esri World Ocean",iconUrl:rn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return $b.fromBasemapType(Ch.OCEANS,{enablePickFeatures:!1})}})),e.push(new rs({name:"Open\xADStreet\xADMap",iconUrl:rn("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new x0({url:"https://tile.openstreetmap.org/"})}})),e.push(new rs({name:"Stadia x Stamen Watercolor",iconUrl:rn("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new x0({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new rs({name:"Stadia x Stamen Toner",iconUrl:rn("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. +https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new x0({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new rs({name:"Stadia Alidade Smooth",iconUrl:rn("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new x0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new rs({name:"Stadia Alidade Smooth Dark",iconUrl:rn("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new x0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new rs({name:"Sentinel-2",iconUrl:rn("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return e0.fromAssetId(3954)}})),e.push(new rs({name:"Blue Marble",iconUrl:rn("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return e0.fromAssetId(3845)}})),e.push(new rs({name:"Earth at night",iconUrl:rn("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return e0.fromAssetId(3812)}})),e.push(new rs({name:"Natural Earth\xA0II",iconUrl:rn("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return gy.fromUrl(rn("Assets/Textures/NaturalEarthII"))}})),e}var e9=fCt;var CLo=T(S(),1);function pCt(){let e=[];return e.push(new rs({name:"WGS84 Ellipsoid",iconUrl:rn("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new kf({ellipsoid:ne.WGS84})}})),e.push(new rs({name:"Cesium World Terrain",iconUrl:rn("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return cS({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var t9=pCt;var wLo=T(S(),1);var GLo=T(S(),1);function bCt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof ua&&(e.tileset=n.primitive),e.pickActive=!1}}function oCe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof ua&&(e.tileset=i.primitive)},Sn.MOUSE_MOVE):(e._eventHandler.removeInputAction(Sn.MOUSE_MOVE),e.picking=e.picking)}var gCt={maximumFractionDigits:3};function n9(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,gCt):Math.round(t).toLocaleString()}function i9(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[wo.PICK]:e._statisticsPerPass[wo.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${n9(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${n9(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${n9(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function rCe(){let e=Ci.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${n9(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${n9(e.texturesByteLength)}</li> + </ul> + `}var yCt=[{text:"Highlight",value:Gl.HIGHLIGHT},{text:"Replace",value:Gl.REPLACE},{text:"Mix",value:Gl.MIX}],iCe=new B(1,1,0,.4),xCt=new B,b3=new B;function _a(e,t){let n=this,i=e.canvas;this._eventHandler=new Qd(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new r0({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,Se.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=Se.observable({}),this.properties=[],Se.defineProperty(this,"properties",function(){let k=[],H=n._properties();for(let J in H)H.hasOwnProperty(J)&&k.push(J);return k});let o=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=Se.observable();Se.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),l(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=Gl.HIGHLIGHT;let s=Se.observable(),a=Se.observable();Se.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(H){let J=e.pick(H.endPosition);if(J instanceof Ns?(n.feature=J,n.tile=J.content.tile):l(J)&&l(J.content)?(n.feature=void 0,n.tile=J.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(J)&&l(J.content)){let te;e.pickPositionSupported&&(te=e.pickPosition(H.endPosition),l(te)&&(n._tileset.debugPickPosition=te)),n._tileset.debugPickedTile=J.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},Sn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(Sn.MOUSE_MOVE))}}),this.picking=!0;let c=Se.observable();Se.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),l(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let d=Se.observable();Se.defineProperty(this,"wireframe",{get:function(){return d()},set:function(k){d(k),l(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let u=Se.observable();Se.defineProperty(this,"showBoundingVolumes",{get:function(){return u()},set:function(k){u(k),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let m=Se.observable();Se.defineProperty(this,"showContentBoundingVolumes",{get:function(){return m()},set:function(k){m(k),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=Se.observable();Se.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=Se.observable();Se.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),l(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,Se.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let f=Se.observable();Se.defineProperty(this,"showGeometricError",{get:function(){return f()},set:function(k){f(k),l(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=Se.observable();Se.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let _=Se.observable();Se.defineProperty(this,"showMemoryUsage",{get:function(){return _()},set:function(k){_(k),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let C=Se.observable();Se.defineProperty(this,"showUrl",{get:function(){return C()},set:function(k){C(k),l(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let V=Se.observable();Se.defineProperty(this,"maximumScreenSpaceError",{get:function(){return V()},set:function(k){k=Number(k),isNaN(k)||(V(k),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let L=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return L()},set:function(k){k=Number(k),isNaN(k)||(L(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,Se.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(L(),1/6)},set:function(k){let H=Math.pow(k,6);L(H),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=H)}});let Z=Se.observable();Se.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return Z()},set:function(k){k=Number(k),isNaN(k)||(Z(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=24;let G=bCt(this),I=Se.observable();Se.defineProperty(this,"pickActive",{get:function(){return I()},set:function(k){I(k),k?n._eventHandler.setInputAction(G,Sn.LEFT_CLICK):n._eventHandler.removeInputAction(Sn.LEFT_CLICK)}});let v=Se.observable();Se.defineProperty(this,"pointCloudShading",{get:function(){return v()},set:function(k){v(k),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let P=Se.observable();Se.defineProperty(this,"geometricErrorScale",{get:function(){return P()},set:function(k){k=Number(k),isNaN(k)||(P(k),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let w=Se.observable();Se.defineProperty(this,"maximumAttenuation",{get:function(){return w()},set:function(k){k=Number(k),isNaN(k)||(w(k),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let F=Se.observable();Se.defineProperty(this,"baseResolution",{get:function(){return F()},set:function(k){k=Number(k),isNaN(k)||(F(k),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let b=Se.observable();Se.defineProperty(this,"eyeDomeLighting",{get:function(){return b()},set:function(k){b(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let R=Se.observable();Se.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let E=Se.observable();Se.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let X=Se.observable();Se.defineProperty(this,"skipLevelOfDetail",{get:function(){return X()},set:function(k){X(k),l(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let A=Se.observable();Se.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let N=Se.observable();Se.defineProperty(this,"baseScreenSpaceError",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),l(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let O=Se.observable();Se.defineProperty(this,"skipLevels",{get:function(){return O()},set:function(k){k=Number(k),isNaN(k)||(O(k),l(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let U=Se.observable();Se.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return U()},set:function(k){U(k),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let Y=Se.observable();Se.defineProperty(this,"loadSiblings",{get:function(){return Y()},set:function(k){Y(k),l(n._tileset)&&(n._tileset.loadSiblings=k)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||oCe(this,!0)}Object.defineProperties(_a.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return yCt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=i9(e,!1),this._pickStatisticsText=i9(e,!0),this._resourceCacheStatisticsText=rCe(),oCe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,xCt):B.WHITE:t.color=b3,this._scene.requestRender()),l(e)&&(B.clone(e.color,b3),e.color=iCe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!v6(t.content)&&(t.color=b3,this._scene.requestRender()),l(e)&&!v6(e.content)&&(B.clone(e.color,b3),e.color=iCe,this._scene.requestRender()),this._tile=e}}});function v6(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!v6(t[i]))return!1;return!0}return!1}_a.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};_a.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};_a.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};_a.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};_a.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};_a.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};_a.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};_a.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};_a.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};_a.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};_a.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new dS(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};_a.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,d;if(t.shiftKey)for(d=0;d<c;++d)a[d][0]===" "&&(a[d][1]===" "?(a[d]=a[d].substr(2),r-=2):(a[d]=a[d].substr(1),r-=1));else for(d=0;d<c;++d)a[d]=` ${a[d]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};_a.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=i9(e,!1),this._pickStatisticsText=i9(e,!0),this._resourceCacheStatisticsText=rCe())};_a.prototype.isDestroyed=function(){return!1};_a.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){Se.getObservable(e,t).dispose()}),me(this)};_a.getStatistics=i9;var o9=_a;function g3(e,t){e=Xn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new o9(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=Ba.createSection,c=Ba.createCheckbox,d=Ba.createRangeInput,u=Ba.createButton,m=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),f=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),_=a(s,"Style","styleVisible","toggleStyle"),C=a(s,"Optimization","optimizationVisible","toggleOptimization"),V=document.createElement("div");V.className="field-group";let L=document.createElement("label");L.className="field-label",L.appendChild(document.createTextNode("Properties: "));let Z=document.createElement("div");Z.setAttribute("data-bind","text: properties"),V.appendChild(L),V.appendChild(Z),m.appendChild(V),m.appendChild(u("Pick Tileset","togglePickTileset","pickActive")),m.appendChild(u("Trim Tiles Cache","trimTilesCache")),m.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let G=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),I=document.createElement("p");I.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),I.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),I.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",G.appendChild(I),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let v=document.createElement("div");v.setAttribute("data-bind","visible: pointCloudShading"),v.appendChild(d("Geometric Error Scale","geometricErrorScale",0,2,.01)),v.appendChild(d("Maximum Attenuation","maximumAttenuation",0,32,1)),v.appendChild(d("Base Resolution","baseResolution",0,1,.01)),v.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(v);let P=document.createElement("div");P.setAttribute("data-bind","visible: eyeDomeLighting"),P.appendChild(d("EDL Strength","eyeDomeLightingStrength",0,2,.1)),P.appendChild(d("EDL Radius","eyeDomeLightingRadius",0,4,.1)),v.appendChild(P),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let w=document.createElement("div");w.appendChild(d("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(w);let F=document.createElement("div");F.setAttribute("data-bind","visible: dynamicScreenSpaceError"),F.appendChild(d("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),F.appendChild(d("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),g.appendChild(F),f.appendChild(c("Performance","performance")),f.appendChild(i),f.appendChild(c("Statistics","showStatistics"));let b=document.createElement("div");b.className="cesium-3dTilesInspector-statistics",b.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),f.appendChild(b),f.appendChild(c("Pick Statistics","showPickStatistics"));let R=document.createElement("div");R.className="cesium-3dTilesInspector-statistics",R.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),f.appendChild(R),f.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let E=document.createElement("div");E.className="cesium-3dTilesInspector-statistics",E.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),f.appendChild(E);let X=document.createElement("div");_.appendChild(X),X.appendChild(document.createTextNode("Color Blend Mode: "));let A=document.createElement("select");A.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),X.appendChild(A);let N=document.createElement("textarea");N.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),X.className="cesium-cesiumInspector-styleEditor",X.appendChild(N);let O=u("Compile (Ctrl+Enter)","compileStyle");X.appendChild(O);let U=document.createElement("div");U.className="cesium-cesiumInspector-error",U.setAttribute("data-bind","text: editorError"),X.appendChild(U),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),C.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let Y=document.createElement("div");Y.appendChild(d("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),C.appendChild(Y);let k=document.createElement("div");k.appendChild(d("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),C.appendChild(k);let H=document.createElement("div");H.appendChild(d("Min. levels to skip","skipLevels",0,10,1)),C.appendChild(H),C.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),C.appendChild(c("Load siblings of visible tiles","loadSiblings")),Se.applyBindings(o,n)}Object.defineProperties(g3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});g3.prototype.isDestroyed=function(){return!1};g3.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),me(this)};var r9=g3;var JLo=T(S(),1);var ULo=T(S(),1);function _Ct(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function w6(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var TCt=new pn,SCt=new h;function s9(e,t){let n=this,i=e.canvas,o=new Qd(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",Se.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=Ln(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=Ln(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=Ln(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=Ln(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=Se.getObservable(this,"frustums").subscribe(function(d){n._scene.debugShowFrustums=d,n._scene.requestRender()}),this._frustumPlanesSubscription=Se.getObservable(this,"frustumPlanes").subscribe(function(d){n._scene.debugShowFrustumPlanes=d,n._scene.requestRender()}),this._performanceSubscription=Se.getObservable(this,"performance").subscribe(function(d){d?n._performanceDisplay=new r0({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=Ln(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=Se.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=Ln(function(){if(n.primitiveReferenceFrame){let d=n._primitive.modelMatrix;n._modelMatrixPrimitive=new VM({modelMatrix:d}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=Se.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=Ln(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(d){return l(n._modelMatrixPrimitive)&&d.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?d.owner===n._primitive||d.owner===n._primitive._billboardCollection||d.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=Se.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=Se.getObservable(this,"wireframe").subscribe(function(d){r._surface.tileProvider._debug.wireframe=d,n._scene.requestRender()}),this._depthFrustumSubscription=Se.getObservable(this,"depthFrustum").subscribe(function(d){n._scene.debugShowDepthFrustum=d,n._scene.requestRender()}),this._incrementDepthFrustum=Ln(function(){let d=n.depthFrustum+1;return n.depthFrustum=w6(1,n._numberOfFrustums,d),n._scene.requestRender(),!0}),this._decrementDepthFrustum=Ln(function(){let d=n.depthFrustum-1;return n.depthFrustum=w6(1,n._numberOfFrustums,d),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=Se.getObservable(this,"suspendUpdates").subscribe(function(d){r._surface._debug.suspendLodUpdate=d,d||(n.filterTile=!1)});let s;this._showTileCoordinates=Ln(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new kM({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=Se.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=Se.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=Ln(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=Ln(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=Se.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(d){let u=n._scene.pick({x:d.position.x,y:d.position.y});l(u)&&(n.primitive=l(u.collection)?u.collection:u.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=Ln(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=Se.getObservable(this,"pickPrimitiveActive").subscribe(function(d){d?o.setInputAction(a,Sn.LEFT_CLICK):o.removeInputAction(Sn.LEFT_CLICK)});function c(d){let u,m=r.ellipsoid,p=n._scene.camera.getPickRay(d.position,TCt),g=r.pick(p,n._scene,SCt);if(l(g)){let f=m.cartesianToCartographic(g),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let _=0;!u&&_<x.length;++_){let C=x[_];if(l(C))for(let V=0;!u&&V<C.length;++V){let L=C[V];ae.contains(L.rectangle,f)&&(u=L)}}}n.tile=u,n.pickTileActive=!1}this._pickTile=Ln(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=Se.getObservable(this,"pickTileActive").subscribe(function(d){d?o.setInputAction(c,Sn.LEFT_CLICK):o.removeInputAction(Sn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(s9.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return Ln(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});s9.prototype._update=function(){this.frustums&&(this.frustumStatisticText=_Ct(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=w6(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};s9.prototype.isDestroyed=function(){return!1};s9.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),me(this)};var a9=s9;function y3(e,t){e=Xn(e);let n=document.createElement("div"),i=new a9(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=Ba.createSection,c=Ba.createCheckbox,d=a(s,"General","generalVisible","toggleGeneral"),u=c("Show Frustums","frustums"),m=document.createElement("div");m.className="cesium-cesiumInspector-frustumStatistics",m.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),u.appendChild(m),d.appendChild(u),d.appendChild(c("Show Frustum Planes","frustumPlanes")),d.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",d.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),d.appendChild(p);let g=document.createElement("div");d.appendChild(g);let f=document.createElement("span");f.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(f);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(x);let _=document.createElement("input");_.type="button",_.value="-",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(_);let C=document.createElement("input");C.type="button",C.value="+",C.className="cesium-cesiumInspector-pickButton",C.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(C);let V=a(s,"Primitives","primitivesVisible","togglePrimitives"),L=document.createElement("div");L.className="cesium-cesiumInspector-pickSection",V.appendChild(L);let Z=document.createElement("input");Z.type="button",Z.value="Pick a primitive",Z.className="cesium-cesiumInspector-pickButton",Z.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let G=document.createElement("div");G.className="cesium-cesiumInspector-center",G.appendChild(Z),L.appendChild(G),L.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),L.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),L.appendChild(this._primitiveOnly);let I=a(s,"Terrain","terrainVisible","toggleTerrain"),v=document.createElement("div");v.className="cesium-cesiumInspector-pickSection",I.appendChild(v);let P=document.createElement("input");P.type="button",P.value="Pick a tile",P.className="cesium-cesiumInspector-pickButton",P.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),G=document.createElement("div"),G.appendChild(P),G.className="cesium-cesiumInspector-center",v.appendChild(G);let w=document.createElement("div");v.appendChild(w);let F=document.createElement("input");F.type="button",F.value="Parent",F.className="cesium-cesiumInspector-pickButton",F.setAttribute("data-bind","click: selectParent");let b=document.createElement("input");b.type="button",b.value="NW",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: selectNW");let R=document.createElement("input");R.type="button",R.value="NE",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind","click: selectNE");let E=document.createElement("input");E.type="button",E.value="SW",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind","click: selectSW");let X=document.createElement("input");X.type="button",X.value="SE",X.className="cesium-cesiumInspector-pickButton",X.setAttribute("data-bind","click: selectSE");let A=document.createElement("div");A.className="cesium-cesiumInspector-tileText",w.className="cesium-cesiumInspector-frustumStatistics",w.appendChild(A),w.setAttribute("data-bind","visible: hasPickedTile"),A.setAttribute("data-bind","html: tileText");let N=document.createElement("div");N.className="cesium-cesiumInspector-relativeText",N.textContent="Select relative:",w.appendChild(N);let O=document.createElement("table"),U=document.createElement("tr"),Y=document.createElement("tr"),k=document.createElement("td");k.appendChild(F);let H=document.createElement("td");H.appendChild(b);let J=document.createElement("td");J.appendChild(R),U.appendChild(k),U.appendChild(H),U.appendChild(J);let te=document.createElement("td"),z=document.createElement("td");z.appendChild(E);let q=document.createElement("td");q.appendChild(X),Y.appendChild(te),Y.appendChild(z),Y.appendChild(q),O.appendChild(U),O.appendChild(Y),w.appendChild(O),v.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),v.appendChild(c("Show only selected","filterTile","hasPickedTile")),I.appendChild(c("Wireframe","wireframe")),I.appendChild(c("Suspend LOD update","suspendUpdates")),I.appendChild(c("Show tile coordinates","tileCoordinates")),Se.applyBindings(i,this._element)}Object.defineProperties(y3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});y3.prototype.isDestroyed=function(){return!1};y3.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),me(this)};var c9=y3;var cRo=T(S(),1);var tRo=T(S(),1);function x3(e,t){l(t)||(t=document.body),t=Xn(t);let n=this,i=Se.observable(pr.fullscreen),o=Se.observable(pr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,Se.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,Se.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&pr.enabled)}}),this.tooltip=void 0,Se.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=Ln(function(){pr.fullscreen?pr.exitFullscreen():pr.requestFullscreen(n._fullscreenElement)},Se.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(Xn(e),r.body),this._callback=function(){i(pr.fullscreen)},r.addEventListener(pr.changeEventName,this._callback)}Object.defineProperties(x3.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});x3.prototype.isDestroyed=function(){return!1};x3.prototype.destroy=function(){document.removeEventListener(pr.changeEventName,this._callback),me(this)};var l9=x3;var CCt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",VCt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function _3(e,t){e=Xn(e);let n=new l9(t,e);n._exitFullScreenPath=VCt,n._enterFullScreenPath=CCt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),Se.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(_3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});_3.prototype.isDestroyed=function(){return!1};_3.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),me(this)};var d9=_3;var TRo=T(S(),1);var fRo=T(S(),1);var sCe=1e3;function mm(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new hM({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new be,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=cCe,this._handleArrowUp=aCe;let t=this;this._suggestionsVisible=Se.pureComputed(function(){let o=Se.getObservable(t,"_suggestions")().length>0,r=Se.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=Ln(function(i){if(i=y(i,Py.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)ICt(t);else return GCt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?aCe(t):r?cCe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;uCe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,mm.flyToDestination),this._focusTextbox=!1,Se.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=Se.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){mm._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,Se.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,Se.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,Se.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(mm.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});mm.prototype.destroy=function(){this._suggestionSubscription.dispose()};function aCe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],mm._adjustSuggestionsScroll(e,n)}function cCe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],mm._adjustSuggestionsScroll(e,i)}function LCt(e,t){let n=l(t)?t.availability:void 0;return l(n)?xT(t,[e]).then(function(i){return e=i[0],e.height+=sCe,e}):(e.height+=sCe,Promise.resolve(e))}function RCt(e,t){let n=e._scene,i=n.ellipsoid,o=n.camera,r=n.terrainProvider,s=t,a;return t instanceof ae?W.equalsEpsilon(t.south,t.north,W.EPSILON7)&&W.equalsEpsilon(t.east,t.west,W.EPSILON7)?t=ae.center(t):a=_T(t,n):t=i.cartesianToCartographic(t),l(a)||(a=LCt(t,r)),a.then(function(c){s=i.cartographicToCartesian(c)}).finally(function(){o.flyTo({destination:s,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:M.IDENTITY})})}async function ZCt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function GCt(e,t,n){let i=e._searchText;if(dCe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await ZCt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,A6(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=lCe(e,TL.getCreditsFromResult(s[0]));l(a)||F6(e,t[o].credit);return}e._searchText=`${i} (not found)`}function F6(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function lCe(e,t){return l(t)&&t.forEach(n=>F6(e,n)),t}function A6(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function ECt(e,t){let n=Xn(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function ICt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function dCe(e){return/^\s*$/.test(e)}function uCe(e){Se.getObservable(e,"_suggestions").removeAll()}async function XCt(e){if(!e.autoComplete)return;let t=e._searchText;if(uCe(e),A6(e),!dCe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,Py.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=TL.getCreditsFromResult(r);o=o&&!l(s),lCe(e,s)}),o&&F6(e,n.credit)}if(e._suggestions.length>=5)return}}mm.flyToDestination=RCt;mm._updateSearchSuggestions=XCt;mm._adjustSuggestionsScroll=ECt;mm.prototype.isDestroyed=function(){return!1};mm.prototype.destroy=function(){return A6(this),me(this)};var u9=mm;var WCt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",PCt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function T3(e){let t=Xn(e.container),n=new u9(e);n._startSearchPath=WCt,n._stopSearchPath=PCt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),Se.applyBindings(n,i),Se.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(d){let u=d.target;typeof d.composedPath=="function"&&(u=d.composedPath()[0]),t.contains(u)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(d){n._focusTextbox=!0,n.showSuggestions()},zt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(T3.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});T3.prototype.isDestroyed=function(){return!1};T3.prototype.destroy=function(){let e=this._container;return zt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),Se.cleanNode(this._form),Se.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),me(this)};var m9=T3;var WRo=T(S(),1);var LRo=T(S(),1);function mCe(e,t){this._scene=e,this._duration=t;let n=this;this._command=Ln(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",Se.track(this,["tooltip"])}Object.defineProperties(mCe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var h9=mCe;function S3(e,t,n){e=Xn(e);let i=new h9(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),Se.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(S3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});S3.prototype.isDestroyed=function(){return!1};S3.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),me(this)};var f9=S3;var DRo=T(S(),1);var FRo=T(S(),1);function vCt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function fCe(e,t){Se.track(e);for(let n=0;n<e.sublayers.length;n++)fCe(e.sublayers[n],t)}function C3(e){return e.modelName==="FullModel"}function pCe(e){return e.modelName==="Overview"}function bCe(e){return pCe(e)||C3(e)}function hCe(e,t){if(bCe(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:Se.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function wCt(e,t){if(bCe(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");C3(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function FCt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function ACt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:Se.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:Se.observable(!0),index:-1}],currentLayer:Se.observable(),expandClickHandler:vCt,setOptionDisable:function(i,o){Se.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){wCt(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){fCe(n[i],this.viewModel);let o=hCe(n[i],this.viewModel);l(o)&&(pCe(o)||!l(this.viewModel.defaultLayer)&&C3(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=hCe(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=C3(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return FCt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var p9=ACt;function MCt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=` + <h3>Building explorer</h3> + <select + data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer" + ></select> + <div id="bsl-wrapper"> + <h3>Select Level</h3> + <select data-bind="options: levels, value: currentLevel"></select> + <h3>Disciplines & Categories</h3> + <ul class="layersList" data-bind="foreach: sublayers"> + <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <li> + <div class="li-wrapper"> + <span + class="expandItem" + data-bind="click: $root.expandClickHandler" + >+</span + > + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + <ul class="nested" data-bind="attr: { id: name + '-expander'}"> + <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <div class="li-wrapper"> + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + </li> + </ul> + </li> + </ul> + </ul> + </div>`,n.appendChild(i);let o=new p9(t);Se.track(o),Se.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var M6=MCt;var $Ro=T(S(),1);var HRo=T(S(),1);var NCt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",kCt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function N6(){this._cameraClicked=new be,this._closeClicked=new be,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",Se.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,Se.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?kCt:NCt}}),Se.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}N6.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(N6.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var b9=N6;function V3(e){e=Xn(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new b9;Se.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,d=c.createElement("link");d.href=rn("Widgets/InfoBox/InfoBoxDescription.css"),d.rel="stylesheet",d.type="text/css";let u=c.createElement("div");u.className="cesium-infoBox-description",c.head.appendChild(d),c.body.appendChild(u),a._descriptionSubscription=xa(s,"description",function(m){r.style.height="5px",u.innerHTML=m;let p=null,g=u.firstElementChild;if(g!==null&&u.childNodes.length===1){let x=window.getComputedStyle(g);if(x!==null){let _=x["background-color"],C=B.fromCssColorString(_);l(C)&&C.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let f=u.getBoundingClientRect().height;r.style.height=`${f}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(V3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});V3.prototype.isDestroyed=function(){return!1};V3.prototype.destroy=function(){let e=this._container;return Se.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),me(this)};var g9=V3;var dZo=T(S(),1);var iZo=T(S(),1);function gCe(){this.showInstructions=!1;let e=this;this._command=Ln(function(){e.showInstructions=!e.showInstructions}),this._showClick=Ln(function(){e._touch=!1}),this._showTouch=Ln(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",Se.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(gCe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var y9=gCe;function L3(e){let t=Xn(e.container),n=new y9,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=rn("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let d=document.createElement("button");d.type="button",d.className="cesium-navigation-button cesium-navigation-button-right",d.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let u=document.createElement("img");u.src=rn("Widgets/Images/NavigationHelp/Touch.svg"),u.className="cesium-navigation-button-icon",u.style.width="25px",u.style.height="25px",d.appendChild(u),d.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(d);let m=document.createElement("div");m.className="cesium-click-navigation-help cesium-navigation-help-instructions",m.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),m.innerHTML=` <table> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(m);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${rn("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),Se.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},zt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(L3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});L3.prototype.isDestroyed=function(){return!1};L3.prototype.destroy=function(){return zt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),me(this)};var x9=L3;var VZo=T(S(),1);var gZo=T(S(),1);function k6(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,Se.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=Ln(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=ZM.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(k6.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});k6.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),me(this)};var _9=k6;function R3(e){let t=Xn(e.container),n=new _9(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),Se.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(R3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});R3.prototype.isDestroyed=function(){return!1};R3.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),me(this)};var T9=R3;var AZo=T(S(),1);var IZo=T(S(),1);function Z3(e){this._scene=e,this._orthographic=e.camera.frustum instanceof an,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,Se.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;Se.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=Ln(function(){t.sceneMode===oe.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new lr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===oe.SCENE2D||t._scene.camera.frustum instanceof an}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=Ln(function(){t.sceneMode!==oe.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=Ln(function(){t.sceneMode!==oe.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=oe}Object.defineProperties(Z3.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});Z3.prototype.isDestroyed=function(){return!1};Z3.prototype.destroy=function(){this._eventHelper.removeAll(),me(this)};var S9=Z3;var UCt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",DCt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function G3(e,t){e=Xn(e);let n=new S9(t);n._perspectivePath=UCt,n._orthographicPath=DCt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),Se.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},zt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(G3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});G3.prototype.isDestroyed=function(){return!1};G3.prototype.destroy=function(){return this._viewModel.destroy(),zt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),me(this)};var C9=G3;var jZo=T(S(),1);var OZo=T(S(),1);function E3(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new lr,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",Se.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,Se.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===oe.SCENE2D?n.tooltip2D:o===oe.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=Ln(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=Ln(function(){e.morphTo2D(n._duration)}),this._morphTo3D=Ln(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=Ln(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=oe}Object.defineProperties(E3.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});E3.prototype.isDestroyed=function(){return!1};E3.prototype.destroy=function(){this._eventHelper.removeAll(),me(this)};var V9=E3;var BCt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",OCt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",YCt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function I3(e,t,n){e=Xn(e);let i=new V9(t,n);i._globePath=BCt,i._flatMapPath=OCt,i._columbusViewPath=YCt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),Se.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(d){o.contains(d.target)||(i.dropDownVisible=!1)},zt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(I3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});I3.prototype.isDestroyed=function(){return!1};I3.prototype.destroy=function(){return this._viewModel.destroy(),zt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),Se.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),me(this)};var L9=I3;var lGo=T(S(),1);var nGo=T(S(),1);var HCt=new D,X3="-1000px";function R9(e,t,n){this._scene=e,this._screenPositionX=X3,this._screenPositionY=X3,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,Se.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,Se.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),Se.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Mi.worldToWindowCoordinates(e,i,o)}}R9.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,HCt);if(!l(e))this._screenPositionX=X3,this._screenPositionY=X3;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};R9.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Yr.EXPONENTIAL_OUT})};R9.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Yr.EXPONENTIAL_OUT})};Object.defineProperties(R9.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var Z9=R9;function W3(e,t){e=Xn(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new Z9(t,this._element,this._container);this._viewModel=c,Se.applyBindings(this._viewModel,this._element)}Object.defineProperties(W3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});W3.prototype.isDestroyed=function(){return!1};W3.prototype.destroy=function(){let e=this._container;return Se.cleanNode(this._element),e.removeChild(this._element),me(this)};var G9=W3;var TGo=T(S(),1);var mGo=T(S(),1);function xS(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}xS.prototype.getHeight=function(){return this._height};xS.prototype.getBase=function(){return this._base};xS.prototype.getStartTime=function(){return this._start};xS.prototype.getStopTime=function(){return this._stop};xS.prototype.setRange=function(e,t){this._start=e,this._stop=t};xS.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=j.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=j.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var E9=xS;var pGo=T(S(),1);function yCe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new B(.5,.5,.5,1),this.backgroundColor=i||new B(0,0,0,0)}yCe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=j.addSeconds(t.startJulian,t.duration,new j);if(j.lessThan(n,o)&&j.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(j.lessThanOrEquals(n,r)&&j.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let d=j.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new j);!l(a)&&j.greaterThanOrEquals(d,n)?a=s:!l(c)&&j.greaterThanOrEquals(d,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var I9=yCe;var U6=1e12,hm={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},ul={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},Dy=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],zCt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function ml(e,t){e=Xn(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=hm.none,this._touchMode=ul.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=KCt(this),this._onMouseUp=JCt(this),this._onMouseMove=QCt(this),this._onMouseWheel=jCt(this),this._onTouchStart=qCt(this),this._onTouchMove=e1t(this),this._onTouchEnd=$Ct(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}ml.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};ml.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};ml.prototype.isDestroyed=function(){return!1};ml.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),me(this)};ml.prototype.addHighlightRange=function(e,t,n){let i=new E9(e,t,n);return this._highlightRanges.push(i),this.resize(),i};ml.prototype.addTrack=function(e,t,n,i){let o=new I9(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};ml.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=j.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Br.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=j.secondsDifference(o,i),s=j.secondsDifference(i,this._startJulian),a=j.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=j.addSeconds(this._endJulian,s,new j),this._startJulian=i,this._timeBarSecondsSpan=j.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=j.addSeconds(this._startJulian,a,new j),this._endJulian=o,this._timeBarSecondsSpan=j.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};ml.prototype.zoomFrom=function(e){let t=j.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(j.addSeconds(this._startJulian,t-t*e,new j),j.addSeconds(this._endJulian,n*e-n,new j))};function D6(e){return e<10?`0${e.toString()}`:e.toString()}ml.prototype.makeLabel=function(e){let t=j.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${zCt[t.month-1]} ${t.day} ${t.year} ${D6(t.hour)}:${D6(t.minute)}:${D6(t.second)}${i}`};ml.prototype.smallestTicInPixels=7;ml.prototype._makeTics=function(){let e=this._timeBarEle,t=j.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,d=1e-10,u=0,m=this._timeBarSecondsSpan;m<a?(m=a,this._timeBarSecondsSpan=a,this._endJulian=j.addSeconds(this._startJulian,a,new j)):m>c&&(m=c,this._timeBarSecondsSpan=c,this._endJulian=j.addSeconds(this._startJulian,c,new j));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,f=Math.min(m/p*1e-5,.4),x,_=j.toGregorianDate(g);m>31536e4?x=j.fromDate(new Date(Date.UTC(Math.floor(_.year/100)*100,0))):m>31536e3?x=j.fromDate(new Date(Date.UTC(Math.floor(_.year/10)*10,0))):m>86400?x=j.fromDate(new Date(Date.UTC(_.year,0))):x=j.fromDate(new Date(Date.UTC(_.year,_.month,_.day)));let C=j.secondsDifference(this._startJulian,j.addSeconds(x,f,new j)),V=C+m;this._epochJulian=x;function L(k){return Math.floor(C/k)*k}function Z(k,H){return Math.ceil(k/H+.5)*H}function G(k){return(k-C)/m}function I(k,H){return k-H*Math.round(k/H)}this._rulerEle.innerHTML=this.makeLabel(j.addSeconds(this._endJulian,-a,new j));let v=this._rulerEle.offsetWidth+20;v<30&&(v=180);let P=u;u-=d;let w={startTime:C,startJulian:g,epochJulian:x,duration:m,timeBarWidth:p,getAlpha:G};this._highlightRanges.forEach(function(k){s+=k.render(w)});let F=0,b=0,R=0,E=v/p;E>1&&(E=1),E*=this._timeBarSecondsSpan;let X=-1,A=-1,N=Dy.length,O;for(O=0;O<N;++O){let k=Dy[O];if(++X,F=k,k>E&&k>u)break;A<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(A=X)}if(X>0){for(;X>0;)if(--X,Math.abs(I(F,Dy[X]))<1e-5){Dy[X]>=u&&(b=Dy[X]);break}if(A>=0)for(;A<X;){if(Math.abs(I(b,Dy[A]))<1e-5&&Dy[A]>=u){R=Dy[A];break}++A}}u=P,u>d&&R<1e-5&&Math.abs(u-F)>d&&(R=u,u<=F+d&&(b=0));let U=-999999,Y;if(p*(R/this._timeBarSecondsSpan)>=3)for(o=L(R);o<=V;o=Z(o,R))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(b/this._timeBarSecondsSpan)>=3)for(o=L(b);o<=V;o=Z(o,b))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*G(o)).toString()}px;"></span>`;if(p*(F/this._timeBarSecondsSpan)>=2){this._mainTicSpan=F,V+=F,o=L(F);let k=j.computeTaiMinusUtc(x);for(;o<=V;){let H=j.addSeconds(g,o-C,new j);if(F>2.1){let q=j.computeTaiMinusUtc(H);Math.abs(q-k)>.1&&(o+=q-k,H=j.addSeconds(g,o-C,new j))}let J=Math.round(p*G(o)),te=this.makeLabel(H);this._rulerEle.innerHTML=te,Y=this._rulerEle.offsetWidth,Y<10&&(Y=v);let z=J-(Y/2-1);z>U?(U=z+Y+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${J.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${z.toString()}px;">${te}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${J.toString()}px;"></span>`,o=Z(o,F)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),w.y=0,this._trackList.forEach(function(k){k.render(r._context,w),w.y+=k.height})};ml.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=j.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(j.addSeconds(this._startJulian,this._timelineDrag,new j),j.addSeconds(this._endJulian,this._timelineDrag,new j)))};ml.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=j.addSeconds(this._startJulian,t,new j),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function KCt(e){return function(t){e._mouseMode!==hm.touchOnly&&(t.button===0?(e._mouseMode=hm.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=hm.zoom:e._mouseMode=hm.slide)),t.preventDefault()}}function JCt(e){return function(t){e._mouseMode=hm.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function QCt(e){return function(t){let n;if(e._mouseMode===hm.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===hm.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(j.addSeconds(e._startJulian,i,new j),j.addSeconds(e._endJulian,i,new j))}}else e._mouseMode===hm.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function jCt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;U6=Math.max(Math.min(Math.abs(n),U6),1),n/=U6,e.zoomFrom(Math.pow(1.05,-n))}}function qCt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=hm.touchOnly,n===1?(i=j.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=ul.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=ul.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=ul.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=ul.ignore}}function $Ct(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===ul.singleTap?(e._touchMode=ul.scrub,e._onTouchMove(t)):e._touchMode===ul.scrub&&e._onTouchMove(t),e._mouseMode=hm.touchOnly,n!==1?e._touchMode=n>0?ul.ignore:ul.none:e._touchMode===ul.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function e1t(e){return function(t){let n,i,o,r,s,a,c=1,d=e._topDiv.getBoundingClientRect().left;e._touchMode===ul.singleTap&&(e._touchMode=ul.slideZoom),e._mouseMode=hm.touchOnly,e._touchMode===ul.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-d,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===ul.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-d,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-d,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=j.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new j)):(n=e._touchState.centerX-r,a=j.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new j)),e.zoomTo(a,j.addSeconds(a,e._timeBarSecondsSpan*c,new j)),e._touchState.centerX=r,e._touchState.spanX=s))}}ml.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var X9=ml;var MGo=T(S(),1);var XGo=T(S(),1);var CCe=T(SCe(),1);function i1t(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function VCe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function o1t(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(VCe(),e._locked=!1),e._noSleep.disable(),pr.exitFullscreen(),n(!1)):(pr.fullscreen||pr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=i1t("landscape")),t.useWebVR=!0,n(!0)))}function P3(e,t){let n=this,i=Se.observable(pr.enabled),o=Se.observable(!1);this.isVRMode=void 0,Se.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,Se.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&pr.enabled)}}),this.tooltip=void 0,Se.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=Se.observable(!1);this._isOrthographic=void 0,Se.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new lr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof an)}),this._locked=!1,this._noSleep=new CCe.default,this._command=Ln(function(){o1t(n,e,o,r)},Se.getObservable(this,"isVREnabled")),this._vrElement=y(Xn(t),document.body),this._callback=function(){!pr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(VCe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(pr.changeEventName,this._callback)}Object.defineProperties(P3.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});P3.prototype.isDestroyed=function(){return!1};P3.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(pr.changeEventName,this._callback),me(this)};var W9=P3;var r1t="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",s1t="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function v3(e,t,n){e=Xn(e);let i=new W9(t,n);i._exitVRPath=s1t,i._enterVRPath=r1t;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),Se.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(v3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});v3.prototype.isDestroyed=function(){return!1};v3.prototype.destroy=function(){return this._viewModel.destroy(),Se.cleanNode(this._element),this._container.removeChild(this._element),me(this)};var P9=v3;var rEo=T(S(),1);var LCe=new ce;function GCe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function a1t(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function c1t(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function RCe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof jo)return i;if(n instanceof Ns)return new jo({name:c1t(n),description:a1t(n),feature:n})}if(l(e.scene.globe))return u1t(e,t.position)}var l1t=new j;function H6(e,t){if(l(t)){let n=t.clock;if(l(n)&&l(e)){let i=n.startTime,o=n.stopTime;j.equals(i,o)&&(o=j.addSeconds(i,W.EPSILON2,l1t)),e.updateFromClock(),e.zoomTo(i,o)}}}var d1t=new h;function u1t(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new jo({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=ZCe();return}let a=s[0],c=new jo({id:a.name,description:a.description});if(l(a.position)){let d=e.scene.ellipsoid.cartographicToCartesian(a.position,d1t);c.position=new Nc(d)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=ZCe())}),r}function ZCe(){return new jo({id:"None",description:"No features found."})}function m1t(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,d=e._fullscreenButton,u=e._infoBox,m=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(d)&&d.viewModel.isFullscreenEnabled&&(d.container.style.visibility=p),l(u)&&(u.container.style.visibility=p),l(m)&&(m.container.style.visibility=p),e._container){let g=t||!l(d)?0:d.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Ji(e,t){e=Xn(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,d,u=!1;l(t.clockViewModel)?(d=t.clockViewModel,c=d.clock):(c=new oh,d=new HM(c),u=!0);let m=new nM(r,{baseLayer:n&&l(t.selectedImageryProviderViewModel)||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,shouldAnimate:t.shouldAnimate,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,ellipsoid:t.ellipsoid,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,automaticallyTrackDataSourceClocks:t.automaticallyTrackDataSourceClocks,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,dataSources:t.dataSources,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=m.scene,g=new lr;g.add(c.onTick,Ji.prototype._onTick,this);let f;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let H=document.createElement("div");H.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(H),f=new G9(H,p)}let x;if(!l(t.infoBox)||t.infoBox!==!1){let H=document.createElement("div");H.className="cesium-viewer-infoBoxContainer",o.appendChild(H),x=new g9(H);let J=x.viewModel;g.add(J.cameraClicked,Ji.prototype._onInfoBoxCameraClicked,this),g.add(J.closeClicked,Ji.prototype._onInfoBoxClockClicked,this)}let _=document.createElement("div");_.className="cesium-viewer-toolbar",o.appendChild(_);let C;if(!l(t.geocoder)||t.geocoder!==!1){let H=document.createElement("div");H.className="cesium-viewer-geocoderContainer",_.appendChild(H);let J;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(J=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),C=new m9({container:H,geocoderServices:J,scene:p}),g.add(C.viewModel.search.beforeExecute,Ji.prototype._clearObjects,this)}let V;(!l(t.homeButton)||t.homeButton!==!1)&&(V=new f9(_,p),l(C)&&g.add(V.viewModel.command.afterExecute,function(){let H=C.viewModel;H.searchText="",H.isSearchInProgress&&H.search()}),g.add(V.viewModel.command.beforeExecute,Ji.prototype._clearTrackedObject,this));let L;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(L=new L9(_,p));let Z;t.projectionPicker&&(Z=new C9(_,p));let G,I;if(n){let H=y(t.imageryProviderViewModels,e9()),J=y(t.terrainProviderViewModels,t9());G=new $M(_,{globe:p.globe,imageryProviderViewModels:H,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:J,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),I=_.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(G.viewModel.selectedImagery=void 0),p.imageryLayers.removeAll(),p.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(G.viewModel.selectedTerrain=void 0),p.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(p.globe.depthTestAgainstTerrain=!0),p.setTerrain(t.terrain));let v;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let H=!0;try{if(l(window.localStorage)){let J=window.localStorage.getItem("cesium-hasSeenNavHelp");l(J)&&J?H=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}v=new x9({container:_,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,H)})}let P;if(!l(t.animation)||t.animation!==!1){let H=document.createElement("div");H.className="cesium-viewer-animationContainer",o.appendChild(H),P=new QM(H,new jM(d))}let w;if(!l(t.timeline)||t.timeline!==!1){let H=document.createElement("div");H.className="cesium-viewer-timelineContainer",o.appendChild(H),w=new X9(H,c),w.addEventListener("settime",GCe,!1),w.zoomTo(c.startTime,c.stopTime)}let F,b,R;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(R=document.createElement("div"),R.className="cesium-viewer-fullscreenContainer",o.appendChild(R),F=new d9(R,t.fullscreenElement),b=xa(F.viewModel,"isFullscreenEnabled",function(H){R.style.display=H?"block":"none",l(w)&&(w.container.style.right=`${R.clientWidth}px`,w.resize())}));let E,X,A;if(t.vrButton){let H=document.createElement("div");H.className="cesium-viewer-vrContainer",o.appendChild(H),E=new P9(H,p,t.fullScreenElement),X=xa(E.viewModel,"isVREnabled",function(J){H.style.display=J?"block":"none",l(F)&&(H.style.right=`${R.clientWidth}px`),l(w)&&(w.container.style.right=`${H.clientWidth}px`,w.resize())}),A=xa(E.viewModel,"isVRMode",function(J){m1t(i,J)})}this._baseLayerPickerDropDown=I,this._fullscreenSubscription=b,this._vrSubscription=X,this._vrModeSubscription=A,this._dataSourceChangedListeners={},this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=m,this._selectionIndicator=f,this._infoBox=x,this._clockViewModel=d,this._destroyClockViewModel=u,this._toolbar=_,this._homeButton=V,this._sceneModePicker=L,this._projectionPicker=Z,this._baseLayerPicker=G,this._navigationHelpButton=v,this._animation=P,this._timeline=w,this._fullscreenButton=F,this._vrButton=E,this._geocoder=C,this._eventHelper=g,this._lastWidth=0,this._lastHeight=0,this._enableInfoOrSelection=l(x)||l(f),this._selectedEntity=void 0,this._selectedEntityChanged=new be;let N=this._cesiumWidget.dataSources,O=this._cesiumWidget.dataSourceDisplay;g.add(N.dataSourceAdded,Ji.prototype._onDataSourceAdded,this),g.add(N.dataSourceRemoved,Ji.prototype._onDataSourceRemoved,this),g.add(p.postUpdate,Ji.prototype.resize,this);let U=N.length;for(let H=0;H<U;H++)this._dataSourceAdded(N,N.get(H));this._dataSourceAdded(void 0,O.defaultDataSource),g.add(N.dataSourceAdded,Ji.prototype._dataSourceAdded,this),g.add(N.dataSourceRemoved,Ji.prototype._dataSourceRemoved,this);function Y(H){let J=RCe(i,H);l(J)?K.getValueOrUndefined(J.position,i.clock.currentTime)?i.trackedEntity=J:i.zoomTo(J):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function k(H){i.selectedEntity=RCe(i,H)}m.screenSpaceEventHandler.setInputAction(k,Sn.LEFT_CLICK),m.screenSpaceEventHandler.setInputAction(Y,Sn.LEFT_DOUBLE_CLICK),m._canAnimateUpdateCallback=this._updateCanAnimate(this)}Object.defineProperties(Ji.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._cesiumWidget.dataSourceDisplay}},entities:{get:function(){return this._cesiumWidget.entities}},dataSources:{get:function(){return this._cesiumWidget.dataSources}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._cesiumWidget.allowDataSourcesToSuspendAnimation},set:function(e){this._cesiumWidget.allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._cesiumWidget.trackedEntity},set:function(e){this._cesiumWidget.trackedEntity=e}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._cesiumWidget.trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._cesiumWidget.clockTrackedDataSource},set:function(e){this._cesiumWidget.clockTrackedDataSource!==e&&(this._cesiumWidget.clockTrackedDataSource=e,H6(this._timeline,e))}}});Ji.prototype.extend=function(e,t){e(this,t)};Ji.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let f=this._geocoder.searchSuggestionsContainer;f.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,d,u=0,m=5,p=3,g=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let f=this._lastWidth;d=this._animation.container,n>900?(u=169,f<=900&&(d.style.width="169px",d.style.height="112px",this._animation.resize())):n>=600?(u=136,(f<600||f>900)&&(d.style.width="136px",d.style.height="90px",this._animation.resize())):(u=106,(f>600||f===0)&&(d.style.width="106px",d.style.height="70px",this._animation.resize())),m=u+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let f=this._fullscreenButton,x=this._vrButton,_=c.container,C=_.style;p=_.clientHeight+3,C.left=`${u}px`;let V=0;l(f)&&(V+=f.container.clientWidth),l(x)&&(V+=x.container.clientWidth),C.right=`${V}px`,c.resize()}!r&&l(this._fullscreenButton)&&(g=this._fullscreenButton.container.clientWidth),this._bottomContainer.style.left=`${m}px`,this._bottomContainer.style.bottom=`${p}px`,this._bottomContainer.style.right=`${g}px`,this._lastWidth=n,this._lastHeight=i};Ji.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Ji.prototype.render=function(){this._cesiumWidget.render()};Ji.prototype.isDestroyed=function(){return!1};Ji.prototype.destroy=function(){return l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(Sn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(Sn.LEFT_DOUBLE_CLICK)),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",GCe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._cesiumWidget=this._cesiumWidget.destroy(),me(this)};Ji.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Ji.prototype._onEntityCollectionChanged,this)};Ji.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Ji.prototype._onEntityCollectionChanged,this),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Ji.prototype._updateCanAnimate=function(e){return function(t){e._clockViewModel.canAnimate=t}};Ji.prototype._onTick=function(e){let t=e.currentTime,n,i=!1,o=this.selectedEntity,r=l(o)&&this._enableInfoOrSelection;r&&o.isShowing&&o.isAvailable(t)&&(this._cesiumWidget.dataSourceDisplay.getBoundingSphere(o,!0,LCe)!==ft.FAILED?n=LCe.center:l(o.position)&&(n=o.position.getValue(t,n)),i=l(n));let s=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(s)&&(s.position=h.clone(n,s.position),s.showSelection=r&&i,s.update());let a=l(this._infoBox)?this._infoBox.viewModel:void 0;l(a)&&(a.showInfo=r,a.enableCamera=i,a.isCameraTracking=this.trackedEntity===this.selectedEntity,r?(a.titleText=y(o.name,o.id),a.description=K.getValueOrDefault(o.description,t,"")):(a.titleText="",a.description=""))};Ji.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.selectedEntity===r&&(this.selectedEntity=void 0)}};Ji.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Ji.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Ji.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Ji.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Ji.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&H6(this.timeline,e)};Ji.prototype._onDataSourceAdded=function(e,t){this._cesiumWidget._automaticallyTrackDataSourceClocks&&t===this.clockTrackedDataSource&&H6(this._timeline,t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Ji.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Ji.prototype._onDataSourceRemoved=function(e,t){let n=t.entities.id;this._dataSourceChangedListeners[n](),this._dataSourceChangedListeners[n]=void 0};Ji.prototype.zoomTo=function(e,t){return this._cesiumWidget.zoomTo(e,t)};Ji.prototype.flyTo=function(e,t){return this._cesiumWidget.flyTo(e,t)};var z6=Ji;var cEo=T(S(),1);function h1t(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new r9(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var K6=h1t;var uEo=T(S(),1);function f1t(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new c9(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var J6=f1t;var pEo=T(S(),1);function p1t(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new be,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=Xn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(u){ECe(s,d),s=u,Q6(s,d)}},dropEnabled:{get:function(){return n},set:function(u){u!==n&&(u?Q6(s,d):ECe(s,d),n=u)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(u){r=u}},flyToOnDrop:{get:function(){return i},set:function(u){i=u}},proxy:{get:function(){return c},set:function(u){c=u}},clampToGround:{get:function(){return a},set:function(u){a=u}}});function d(u){_S(u),r&&(e.entities.removeAll(),e.dataSources.removeAll());let m=u.dataTransfer.files,p=m.length;for(let g=0;g<p;g++){let f=m[g],x=new FileReader;x.onload=b1t(e,f,c,a),x.onerror=g1t(e,f),x.readAsText(f)}}Q6(s,d),e.destroy=gM(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=d}function _S(e){e.stopPropagation(),e.preventDefault()}function ECe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",_S,!1),n.removeEventListener("dragover",_S,!1),n.removeEventListener("dragexit",_S,!1))}function Q6(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",_S,!1),e.addEventListener("dragover",_S,!1),e.addEventListener("dragexit",_S,!1)}function b1t(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=DP.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=Wv.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=lw.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=Fv.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function g1t(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var j6=p1t;var TEo=T(S(),1);function y1t(e,t){t=y(t,y.EMPTY_OBJECT);let n=new T9({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var q6=y1t;var FEo=T(S(),1);var PEo=T(S(),1);var REo=T(S(),1);function ICe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function fm(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(u){t._voxelPrimitive[r]=u});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let d=Se.observable();return Se.defineProperty(t,r,{get:function(){return d()},set:function(u){typeof s=="number"&&typeof u=="string"&&(u=Number(u),isNaN(u)&&(u=s)),typeof s=="boolean"&&typeof u=="number"&&(u=u===1),d(u),l(a)&&l(t._voxelPrimitive)&&(a(u),e.requestRender())}}),t[r]=s,d}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=ICe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===vi.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===vi.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===vi.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.translationX=M.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.translationY=M.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.translationZ=M.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.scaleX=M.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.scaleY=M.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)},getPrimitiveFunction:function(){t.scaleZ=M.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&op(t)}})}var x1t=new h,_1t=new h,T1t=new Ca,S1t=new $;function op(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,x1t),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,_1t),i=T1t;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,S1t),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=M.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(fm.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=ICe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,op(t)}}}});fm.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};fm.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};fm.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};fm.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};fm.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};fm.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};fm.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new QT({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};fm.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,d;if(t.shiftKey)for(d=0;d<c;++d)a[d][0]===" "&&(a[d][1]===" "?(a[d]=a[d].substr(2),r-=2):(a[d]=a[d].substr(1),r-=1));else for(d=0;d<c;++d)a[d]=` ${a[d]}`,r+=2;let u=a.join(` +`);n.value=n.value.slice(0,i)+u+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};fm.prototype.isDestroyed=function(){return!1};fm.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){Se.getObservable(e,t).dispose()}),me(this)};var v9=fm;function w3(e,t){e=Xn(e);let n=document.createElement("div"),i=new v9(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=Ba.createSection,a=Ba.createCheckbox,c=Ba.createRangeInput,d=Ba.createButton,u=s(r,"Display","displayVisible","toggleDisplay"),m=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),f=s(r,"Shader","shaderVisible","toggleShader");u.appendChild(a("Depth Test","depthTest")),u.appendChild(a("Show","show")),u.appendChild(a("Disable Update","disableUpdate")),u.appendChild(a("Debug Draw","debugDraw")),u.appendChild(a("Jitter","jitter")),u.appendChild(a("Nearest Sampling","nearestSampling")),u.appendChild(c("Screen Space Error","screenSpaceError",0,128)),u.appendChild(c("Step Size","stepSize",0,2));let x=10,_=10,C=W.PI;m.appendChild(c("Translation X","translationX",-x,+x)),m.appendChild(c("Translation Y","translationY",-x,+x)),m.appendChild(c("Translation Z","translationZ",-x,+x)),m.appendChild(c("Scale X","scaleX",0,+_)),m.appendChild(c("Scale Y","scaleY",0,+_)),m.appendChild(c("Scale Z","scaleZ",0,+_)),m.appendChild(c("Heading","angleX",-C,+C)),m.appendChild(c("Pitch","angleY",-C,+C)),m.appendChild(c("Roll","angleZ",-C,+C));let V=vi.getMinBounds(vi.BOX),L=vi.getMaxBounds(vi.BOX),Z=h.fromElements(vi.getMinBounds(vi.ELLIPSOID).x,vi.getMinBounds(vi.ELLIPSOID).y,-ne.WGS84.maximumRadius,new h),G=h.fromElements(vi.getMaxBounds(vi.ELLIPSOID).x,vi.getMaxBounds(vi.ELLIPSOID).y,1e7,new h),I=vi.getMinBounds(vi.CYLINDER),v=vi.getMaxBounds(vi.CYLINDER);FL("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",V,L,"shapeIsBox",p),FL("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",Z,G,"shapeIsEllipsoid",p),FL("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",I,v,"shapeIsCylinder",p),FL("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",V,L,"shapeIsBox",g),FL("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",Z,G,"shapeIsEllipsoid",g),FL("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",I,v,"shapeIsCylinder",g);let P=document.createElement("div");f.appendChild(P);let w=document.createElement("textarea");w.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),P.className="cesium-cesiumInspector-styleEditor",P.appendChild(w);let F=d("Compile (Ctrl+Enter)","compileShader");P.appendChild(F);let b=document.createElement("label");b.style.display="block",b.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),P.appendChild(b),Se.applyBindings(i,n)}Object.defineProperties(w3.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});w3.prototype.isDestroyed=function(){return!1};w3.prototype.destroy=function(){return Se.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),me(this)};function FL(e,t,n,i,o,r,s,a,c,d,u,m,p,g,f,x){let _=Ba.createRangeInput,C=p,V=g,L=x.appendChild(document.createElement("div"));L.setAttribute("data-bind",`if: ${f}`),L.appendChild(_(e,s,C.x,V.x)),L.appendChild(_(t,a,C.x,V.x)),L.appendChild(_(n,c,C.y,V.y)),L.appendChild(_(i,d,C.y,V.y)),L.appendChild(_(o,u,C.z,V.z)),L.appendChild(_(r,m,C.z,V.z))}var w9=w3;function C1t(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new w9(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var $6=C1t;globalThis.CESIUM_VERSION="1.123";var V1t="1.123";return YCe(L1t);})(); diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/deflate.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/deflate.js deleted file mode 100644 index a24cd6053..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/deflate.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/* - Copyright (c) 2013 Gildas Lormeau. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the distribution. - - 3. The names of the authors may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, - INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -!function(e){function t(){function e(e){var t,n,i,r,_,o,d=a.dyn_tree,f=a.stat_desc.static_tree,l=a.stat_desc.extra_bits,s=a.stat_desc.extra_base,h=a.stat_desc.max_length,p=0;for(r=0;r<=u;r++)e.bl_count[r]=0;for(d[2*e.heap[e.heap_max]+1]=0,t=e.heap_max+1;t<c;t++)n=e.heap[t],r=d[2*d[2*n+1]+1]+1,r>h&&(r=h,p++),d[2*n+1]=r,n>a.max_code||(e.bl_count[r]++,_=0,n>=s&&(_=l[n-s]),o=d[2*n],e.opt_len+=o*(r+_),f&&(e.static_len+=o*(f[2*n+1]+_)));if(0!==p){do{for(r=h-1;0===e.bl_count[r];)r--;e.bl_count[r]--,e.bl_count[r+1]+=2,e.bl_count[h]--,p-=2}while(p>0);for(r=h;0!==r;r--)for(n=e.bl_count[r];0!==n;)(i=e.heap[--t])>a.max_code||(d[2*i+1]!=r&&(e.opt_len+=(r-d[2*i+1])*d[2*i],d[2*i+1]=r),n--)}}function t(e,t){var n=0;do{n|=1&e,e>>>=1,n<<=1}while(--t>0);return n>>>1}function n(e,n,a){var i,r,_,o=[],d=0;for(i=1;i<=u;i++)o[i]=d=d+a[i-1]<<1;for(r=0;r<=n;r++)0!==(_=e[2*r+1])&&(e[2*r]=t(o[_]++,_))}var a=this;a.build_tree=function(t){var i,r,_,o=a.dyn_tree,u=a.stat_desc.static_tree,d=a.stat_desc.elems,f=-1;for(t.heap_len=0,t.heap_max=c,i=0;i<d;i++)0!==o[2*i]?(t.heap[++t.heap_len]=f=i,t.depth[i]=0):o[2*i+1]=0;for(;t.heap_len<2;)_=t.heap[++t.heap_len]=f<2?++f:0,o[2*_]=1,t.depth[_]=0,t.opt_len--,u&&(t.static_len-=u[2*_+1]);for(a.max_code=f,i=Math.floor(t.heap_len/2);i>=1;i--)t.pqdownheap(o,i);_=d;do{i=t.heap[1],t.heap[1]=t.heap[t.heap_len--],t.pqdownheap(o,1),r=t.heap[1],t.heap[--t.heap_max]=i,t.heap[--t.heap_max]=r,o[2*_]=o[2*i]+o[2*r],t.depth[_]=Math.max(t.depth[i],t.depth[r])+1,o[2*i+1]=o[2*r+1]=_,t.heap[1]=_++,t.pqdownheap(o,1)}while(t.heap_len>=2);t.heap[--t.heap_max]=t.heap[1],e(t),n(o,a.max_code,t.bl_count)}}function n(e,t,n,a,i){var r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=a,r.max_length=i}function a(e,t,n,a,i){var r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=a,r.func=i}function i(e,t,n,a){var i=e[2*t],r=e[2*n];return i<r||i==r&&a[t]<=a[n]}function r(){function e(){var e;for(De=2*Ee,Pe[Le-1]=0,e=0;e<Le-1;e++)Pe[e]=0;Te=G[Ve].max_lazy,Xe=G[Ve].good_length,Ye=G[Ve].nice_length,Re=G[Ve].max_chain,Ke=0,Fe=0,Oe=0,Ge=Qe=$-1,Je=0,Se=0}function a(){var e;for(e=0;e<s;e++)Ze[2*e]=0;for(e=0;e<d;e++)$e[2*e]=0;for(e=0;e<f;e++)et[2*e]=0;Ze[2*h]=1,tt.opt_len=tt.static_len=0,ot=dt=0}function r(){nt.dyn_tree=Ze,nt.stat_desc=n.static_l_desc,at.dyn_tree=$e,at.stat_desc=n.static_d_desc,it.dyn_tree=et,it.stat_desc=n.static_bl_desc,lt=0,st=0,ft=8,a()}function _(e,t){var n,a,i=-1,r=e[1],_=0,o=7,u=4;for(0===r&&(o=138,u=3),e[2*(t+1)+1]=65535,n=0;n<=t;n++)a=r,r=e[2*(n+1)+1],++_<o&&a==r||(_<u?et[2*a]+=_:0!==a?(a!=i&&et[2*a]++,et[2*p]++):_<=10?et[2*v]++:et[2*x]++,_=0,i=a,0===r?(o=138,u=3):a==r?(o=6,u=3):(o=7,u=4))}function o(){var e;for(_(Ze,nt.max_code),_($e,at.max_code),it.build_tree(tt),e=f-1;e>=3&&0===et[2*t.bl_order[e]+1];e--);return tt.opt_len+=3*(e+1)+5+5+4,e}function u(e){tt.pending_buf[tt.pending++]=e}function c(e){u(255&e),u(e>>>8&255)}function S(e){u(e>>8&255),u(255&e)}function ne(e,t){var n,a=t;st>b-a?(n=e,lt|=n<<st&65535,c(lt),lt=n>>>b-st,st+=a-b):(lt|=e<<st&65535,st+=a)}function ae(e,t){var n=2*e;ne(65535&t[n],65535&t[n+1])}function ie(e,t){var n,a,i=-1,r=e[1],_=0,o=7,u=4;for(0===r&&(o=138,u=3),n=0;n<=t;n++)if(a=r,r=e[2*(n+1)+1],!(++_<o&&a==r)){if(_<u)do{ae(a,et)}while(0!=--_);else 0!==a?(a!=i&&(ae(a,et),_--),ae(p,et),ne(_-3,2)):_<=10?(ae(v,et),ne(_-3,3)):(ae(x,et),ne(_-11,7));_=0,i=a,0===r?(o=138,u=3):a==r?(o=6,u=3):(o=7,u=4)}}function re(e,n,a){var i;for(ne(e-257,5),ne(n-1,5),ne(a-4,4),i=0;i<a;i++)ne(et[2*t.bl_order[i]+1],3);ie(Ze,e-1),ie($e,n-1)}function _e(){16==st?(c(lt),lt=0,st=0):st>=8&&(u(255<),lt>>>=8,st-=8)}function oe(){ne(Y<<1,3),ae(h,n.static_ltree),_e(),1+ft+10-st<9&&(ne(Y<<1,3),ae(h,n.static_ltree),_e()),ft=7}function ue(e,n){var a,i,r;if(tt.pending_buf[ut+2*ot]=e>>>8&255,tt.pending_buf[ut+2*ot+1]=255&e,tt.pending_buf[rt+ot]=255&n,ot++,0===e?Ze[2*n]++:(dt++,e--,Ze[2*(t._length_code[n]+l+1)]++,$e[2*t.d_code(e)]++),0==(8191&ot)&&Ve>2){for(a=8*ot,i=Ke-Fe,r=0;r<d;r++)a+=$e[2*r]*(5+t.extra_dbits[r]);if(a>>>=3,dt<Math.floor(ot/2)&&a<Math.floor(i/2))return!0}return ot==_t-1}function de(e,n){var a,i,r,_,o=0;if(0!==ot)do{a=tt.pending_buf[ut+2*o]<<8&65280|255&tt.pending_buf[ut+2*o+1],i=255&tt.pending_buf[rt+o],o++,0===a?ae(i,e):(r=t._length_code[i],ae(r+l+1,e),_=t.extra_lbits[r],0!==_&&(i-=t.base_length[r],ne(i,_)),a--,r=t.d_code(a),ae(r,n),0!==(_=t.extra_dbits[r])&&(a-=t.base_dist[r],ne(a,_)))}while(o<ot);ae(h,e),ft=e[2*h+1]}function fe(){st>8?c(lt):st>0&&u(255<),lt=0,st=0}function le(e,t,n){fe(),ft=8,n&&(c(t),c(~t)),tt.pending_buf.set(qe.subarray(e,e+t),tt.pending),tt.pending+=t}function se(e,t,n){ne((X<<1)+(n?1:0),3),le(e,t,!0)}function ce(e,t,i){var r,_,u=0;Ve>0?(nt.build_tree(tt),at.build_tree(tt),u=o(),r=tt.opt_len+3+7>>>3,(_=tt.static_len+3+7>>>3)<=r&&(r=_)):r=_=t+5,t+4<=r&&-1!=e?se(e,t,i):_==r?(ne((Y<<1)+(i?1:0),3),de(n.static_ltree,n.static_dtree)):(ne((Z<<1)+(i?1:0),3),re(nt.max_code+1,at.max_code+1,u+1),de(Ze,$e)),a(),i&&fe()}function he(e){ce(Fe>=0?Fe:-1,Ke-Fe,e),Fe=Ke,me.flush_pending()}function pe(){var e,t,n,a;do{if(0===(a=De-Oe-Ke)&&0===Ke&&0===Oe)a=Ee;else if(-1==a)a--;else if(Ke>=Ee+Ee-te){qe.set(qe.subarray(Ee,Ee+Ee),0),Ne-=Ee,Ke-=Ee,Fe-=Ee,e=Le,n=e;do{t=65535&Pe[--n],Pe[n]=t>=Ee?t-Ee:0}while(0!=--e);e=Ee,n=e;do{t=65535&Ie[--n],Ie[n]=t>=Ee?t-Ee:0}while(0!=--e);a+=Ee}if(0===me.avail_in)return;e=me.read_buf(qe,Ke+Oe,a),Oe+=e,Oe>=$&&(Se=255&qe[Ke],Se=(Se<<Ce^255&qe[Ke+1])&Be)}while(Oe<te&&0!==me.avail_in)}function ve(e){var t,n=65535;for(n>Me-5&&(n=Me-5);;){if(Oe<=1){if(pe(),0===Oe&&e==M)return J;if(0===Oe)break}if(Ke+=Oe,Oe=0,t=Fe+n,(0===Ke||Ke>=t)&&(Oe=Ke-t,Ke=t,he(!1),0===me.avail_out))return J;if(Ke-Fe>=Ee-te&&(he(!1),0===me.avail_out))return J}return he(e==E),0===me.avail_out?e==E?N:J:e==E?O:K}function xe(e){var t,n,a=Re,i=Ke,r=Qe,_=Ke>Ee-te?Ke-(Ee-te):0,o=Ye,u=ze,d=Ke+ee,f=qe[i+r-1],l=qe[i+r];Qe>=Xe&&(a>>=2),o>Oe&&(o=Oe);do{if(t=e,qe[t+r]==l&&qe[t+r-1]==f&&qe[t]==qe[i]&&qe[++t]==qe[i+1]){i+=2,t++;do{}while(qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&qe[++i]==qe[++t]&&i<d);if(n=ee-(d-i),i=d-ee,n>r){if(Ne=e,r=n,n>=o)break;f=qe[i+r-1],l=qe[i+r]}}}while((e=65535&Ie[e&u])>_&&0!=--a);return r<=Oe?r:Oe}function be(e){for(var t,n=0;;){if(Oe<te){if(pe(),Oe<te&&e==M)return J;if(0===Oe)break}if(Oe>=$&&(Se=(Se<<Ce^255&qe[Ke+($-1)])&Be,n=65535&Pe[Se],Ie[Ke&ze]=Pe[Se],Pe[Se]=Ke),0!==n&&(Ke-n&65535)<=Ee-te&&We!=m&&(Ge=xe(n)),Ge>=$)if(t=ue(Ke-Ne,Ge-$),Oe-=Ge,Ge<=Te&&Oe>=$){Ge--;do{Ke++,Se=(Se<<Ce^255&qe[Ke+($-1)])&Be,n=65535&Pe[Se],Ie[Ke&ze]=Pe[Se],Pe[Se]=Ke}while(0!=--Ge);Ke++}else Ke+=Ge,Ge=0,Se=255&qe[Ke],Se=(Se<<Ce^255&qe[Ke+1])&Be;else t=ue(0,255&qe[Ke]),Oe--,Ke++;if(t&&(he(!1),0===me.avail_out))return J}return he(e==E),0===me.avail_out?e==E?N:J:e==E?O:K}function ge(e){for(var t,n,a=0;;){if(Oe<te){if(pe(),Oe<te&&e==M)return J;if(0===Oe)break}if(Oe>=$&&(Se=(Se<<Ce^255&qe[Ke+($-1)])&Be,a=65535&Pe[Se],Ie[Ke&ze]=Pe[Se],Pe[Se]=Ke),Qe=Ge,He=Ne,Ge=$-1,0!==a&&Qe<Te&&(Ke-a&65535)<=Ee-te&&(We!=m&&(Ge=xe(a)),Ge<=5&&(We==w||Ge==$&&Ke-Ne>4096)&&(Ge=$-1)),Qe>=$&&Ge<=Qe){n=Ke+Oe-$,t=ue(Ke-1-He,Qe-$),Oe-=Qe-1,Qe-=2;do{++Ke<=n&&(Se=(Se<<Ce^255&qe[Ke+($-1)])&Be,a=65535&Pe[Se],Ie[Ke&ze]=Pe[Se],Pe[Se]=Ke)}while(0!=--Qe);if(Je=0,Ge=$-1,Ke++,t&&(he(!1),0===me.avail_out))return J}else if(0!==Je){if(t=ue(0,255&qe[Ke-1]),t&&he(!1),Ke++,Oe--,0===me.avail_out)return J}else Je=1,Ke++,Oe--}return 0!==Je&&(t=ue(0,255&qe[Ke-1]),Je=0),he(e==E),0===me.avail_out?e==E?N:J:e==E?O:K}function we(t){return t.total_in=t.total_out=0,t.msg=null,tt.pending=0,tt.pending_out=0,ye=T,Ue=M,r(),e(),k}var me,ye,Me,Ae,Ue,Ee,ke,ze,qe,De,Ie,Pe,Se,Le,je,Be,Ce,Fe,Ge,He,Je,Ke,Ne,Oe,Qe,Re,Te,Ve,We,Xe,Ye,Ze,$e,et,tt=this,nt=new t,at=new t,it=new t;tt.depth=[];var rt,_t,ot,ut,dt,ft,lt,st;tt.bl_count=[],tt.heap=[],Ze=[],$e=[],et=[],tt.pqdownheap=function(e,t){for(var n=tt.heap,a=n[t],r=t<<1;r<=tt.heap_len&&(r<tt.heap_len&&i(e,n[r+1],n[r],tt.depth)&&r++,!i(e,a,n[r],tt.depth));)n[t]=n[r],t=r,r<<=1;n[t]=a},tt.deflateInit=function(e,t,n,a,i,r){return a||(a=W),i||(i=j),r||(r=y),e.msg=null,t==g&&(t=6),i<1||i>L||a!=W||n<9||n>15||t<0||t>9||r<0||r>m?D:(e.dstate=tt,ke=n,Ee=1<<ke,ze=Ee-1,je=i+7,Le=1<<je,Be=Le-1,Ce=Math.floor((je+$-1)/$),qe=new Uint8Array(2*Ee),Ie=[],Pe=[],_t=1<<i+6,tt.pending_buf=new Uint8Array(4*_t),Me=4*_t,ut=Math.floor(_t/2),rt=3*_t,Ve=t,We=r,Ae=255&a,we(e))},tt.deflateEnd=function(){return ye!=R&&ye!=T&&ye!=V?D:(tt.pending_buf=null,Pe=null,Ie=null,qe=null,tt.dstate=null,ye==T?I:k)},tt.deflateParams=function(e,t,n){var a=k;return t==g&&(t=6),t<0||t>9||n<0||n>m?D:(G[Ve].func!=G[t].func&&0!==e.total_in&&(a=e.deflate(A)),Ve!=t&&(Ve=t,Te=G[Ve].max_lazy,Xe=G[Ve].good_length,Ye=G[Ve].nice_length,Re=G[Ve].max_chain),We=n,a)},tt.deflateSetDictionary=function(e,t,n){var a,i=n,r=0;if(!t||ye!=R)return D;if(i<$)return k;for(i>Ee-te&&(i=Ee-te,r=n-i),qe.set(t.subarray(r,r+i),0),Ke=i,Fe=i,Se=255&qe[0],Se=(Se<<Ce^255&qe[1])&Be,a=0;a<=i-$;a++)Se=(Se<<Ce^255&qe[a+($-1)])&Be,Ie[a&ze]=Pe[Se],Pe[Se]=a;return k},tt.deflate=function(e,t){var n,a,i,r,_;if(t>E||t<0)return D;if(!e.next_out||!e.next_in&&0!==e.avail_in||ye==V&&t!=E)return e.msg=H[q-D],D;if(0===e.avail_out)return e.msg=H[q-P],P;if(me=e,r=Ue,Ue=t,ye==R&&(a=W+(ke-8<<4)<<8,i=(Ve-1&255)>>1,i>3&&(i=3),a|=i<<6,0!==Ke&&(a|=Q),a+=31-a%31,ye=T,S(a)),0!==tt.pending){if(me.flush_pending(),0===me.avail_out)return Ue=-1,k}else if(0===me.avail_in&&t<=r&&t!=E)return me.msg=H[q-P],P;if(ye==V&&0!==me.avail_in)return e.msg=H[q-P],P;if(0!==me.avail_in||0!==Oe||t!=M&&ye!=V){switch(_=-1,G[Ve].func){case B:_=ve(t);break;case C:_=be(t);break;case F:_=ge(t)}if(_!=N&&_!=O||(ye=V),_==J||_==N)return 0===me.avail_out&&(Ue=-1),k;if(_==K){if(t==A)oe();else if(se(0,0,!1),t==U)for(n=0;n<Le;n++)Pe[n]=0;if(me.flush_pending(),0===me.avail_out)return Ue=-1,k}}return t!=E?k:z}}function _(){var e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}function o(e){var t=this,n=new _,a=M,i=new Uint8Array(512);void 0===e&&(e=g),n.deflateInit(e),n.next_out=i,t.append=function(e,t){var r,_=[],o=0,u=0,d=0;if(e.length){n.next_in_index=0,n.next_in=e,n.avail_in=e.length;do{if(n.next_out_index=0,n.avail_out=512,n.deflate(a)!=k)throw"deflating: "+n.msg;n.next_out_index&&(512==n.next_out_index?_.push(new Uint8Array(i)):_.push(new Uint8Array(i.subarray(0,n.next_out_index)))),d+=n.next_out_index,t&&n.next_in_index>0&&n.next_in_index!=o&&(t(n.next_in_index),o=n.next_in_index)}while(n.avail_in>0||0===n.avail_out);return r=new Uint8Array(d),_.forEach(function(e){r.set(e,u),u+=e.length}),r}},t.flush=function(){var e,t,a=[],r=0,_=0;do{if(n.next_out_index=0,n.avail_out=512,(e=n.deflate(E))!=z&&e!=k)throw"deflating: "+n.msg;512-n.avail_out>0&&a.push(new Uint8Array(i.subarray(0,n.next_out_index))),_+=n.next_out_index}while(n.avail_in>0||0===n.avail_out);return n.deflateEnd(),t=new Uint8Array(_),a.forEach(function(e){t.set(e,r),r+=e.length}),t}}var u=15,d=30,f=19,l=256,s=l+1+29,c=2*s+1,h=256,p=16,v=17,x=18,b=16,g=-1,w=1,m=2,y=0,M=0,A=1,U=3,E=4,k=0,z=1,q=2,D=-2,I=-3,P=-5,S=[0,1,2,3,4,4,5,5,6,6,6,6,7,7,7,7,8,8,8,8,8,8,8,8,9,9,9,9,9,9,9,9,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,10,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,11,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,12,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,13,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,14,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,0,0,16,17,18,18,19,19,20,20,20,20,21,21,21,21,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,28,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29,29];t._length_code=[0,1,2,3,4,5,6,7,8,8,9,9,10,10,11,11,12,12,12,12,13,13,13,13,14,14,14,14,15,15,15,15,16,16,16,16,16,16,16,16,17,17,17,17,17,17,17,17,18,18,18,18,18,18,18,18,19,19,19,19,19,19,19,19,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,20,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,21,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,22,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,23,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,24,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,25,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,26,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,27,28],t.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0],t.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576],t.d_code=function(e){return e<256?S[e]:S[256+(e>>>7)]},t.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0],t.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],t.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7],t.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],n.static_ltree=[12,8,140,8,76,8,204,8,44,8,172,8,108,8,236,8,28,8,156,8,92,8,220,8,60,8,188,8,124,8,252,8,2,8,130,8,66,8,194,8,34,8,162,8,98,8,226,8,18,8,146,8,82,8,210,8,50,8,178,8,114,8,242,8,10,8,138,8,74,8,202,8,42,8,170,8,106,8,234,8,26,8,154,8,90,8,218,8,58,8,186,8,122,8,250,8,6,8,134,8,70,8,198,8,38,8,166,8,102,8,230,8,22,8,150,8,86,8,214,8,54,8,182,8,118,8,246,8,14,8,142,8,78,8,206,8,46,8,174,8,110,8,238,8,30,8,158,8,94,8,222,8,62,8,190,8,126,8,254,8,1,8,129,8,65,8,193,8,33,8,161,8,97,8,225,8,17,8,145,8,81,8,209,8,49,8,177,8,113,8,241,8,9,8,137,8,73,8,201,8,41,8,169,8,105,8,233,8,25,8,153,8,89,8,217,8,57,8,185,8,121,8,249,8,5,8,133,8,69,8,197,8,37,8,165,8,101,8,229,8,21,8,149,8,85,8,213,8,53,8,181,8,117,8,245,8,13,8,141,8,77,8,205,8,45,8,173,8,109,8,237,8,29,8,157,8,93,8,221,8,61,8,189,8,125,8,253,8,19,9,275,9,147,9,403,9,83,9,339,9,211,9,467,9,51,9,307,9,179,9,435,9,115,9,371,9,243,9,499,9,11,9,267,9,139,9,395,9,75,9,331,9,203,9,459,9,43,9,299,9,171,9,427,9,107,9,363,9,235,9,491,9,27,9,283,9,155,9,411,9,91,9,347,9,219,9,475,9,59,9,315,9,187,9,443,9,123,9,379,9,251,9,507,9,7,9,263,9,135,9,391,9,71,9,327,9,199,9,455,9,39,9,295,9,167,9,423,9,103,9,359,9,231,9,487,9,23,9,279,9,151,9,407,9,87,9,343,9,215,9,471,9,55,9,311,9,183,9,439,9,119,9,375,9,247,9,503,9,15,9,271,9,143,9,399,9,79,9,335,9,207,9,463,9,47,9,303,9,175,9,431,9,111,9,367,9,239,9,495,9,31,9,287,9,159,9,415,9,95,9,351,9,223,9,479,9,63,9,319,9,191,9,447,9,127,9,383,9,255,9,511,9,0,7,64,7,32,7,96,7,16,7,80,7,48,7,112,7,8,7,72,7,40,7,104,7,24,7,88,7,56,7,120,7,4,7,68,7,36,7,100,7,20,7,84,7,52,7,116,7,3,8,131,8,67,8,195,8,35,8,163,8,99,8,227,8],n.static_dtree=[0,5,16,5,8,5,24,5,4,5,20,5,12,5,28,5,2,5,18,5,10,5,26,5,6,5,22,5,14,5,30,5,1,5,17,5,9,5,25,5,5,5,21,5,13,5,29,5,3,5,19,5,11,5,27,5,7,5,23,5],n.static_l_desc=new n(n.static_ltree,t.extra_lbits,l+1,s,u),n.static_d_desc=new n(n.static_dtree,t.extra_dbits,0,d,u),n.static_bl_desc=new n(null,t.extra_blbits,0,f,7);var L=9,j=8,B=0,C=1,F=2,G=[new a(0,0,0,0,B),new a(4,4,8,4,C),new a(4,5,16,8,C),new a(4,6,32,32,C),new a(4,4,16,16,F),new a(8,16,32,32,F),new a(8,16,128,128,F),new a(8,32,128,256,F),new a(32,128,258,1024,F),new a(32,258,258,4096,F)],H=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],J=0,K=1,N=2,O=3,Q=32,R=42,T=113,V=666,W=8,X=0,Y=1,Z=2,$=3,ee=258,te=ee+$+1;_.prototype={deflateInit:function(e,t){var n=this;return n.dstate=new r,t||(t=u),n.dstate.deflateInit(n,e,t)},deflate:function(e){var t=this;return t.dstate?t.dstate.deflate(t,e):D},deflateEnd:function(){var e=this;if(!e.dstate)return D;var t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams:function(e,t){var n=this;return n.dstate?n.dstate.deflateParams(n,e,t):D},deflateSetDictionary:function(e,t){var n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):D},read_buf:function(e,t,n){var a=this,i=a.avail_in;return i>n&&(i=n),0===i?0:(a.avail_in-=i,e.set(a.next_in.subarray(a.next_in_index,a.next_in_index+i),t),a.next_in_index+=i,a.total_in+=i,i)},flush_pending:function(){var e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),0!==t&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,0===e.dstate.pending&&(e.dstate.pending_out=0))}};var ne;e.zip?e.zip.Deflater=o:(ne=new o,e.addEventListener("message",function(t){var n=t.data;n.init&&(ne=new o(n.level),e.postMessage({oninit:!0})),n.append&&e.postMessage({onappend:!0,data:ne.append(n.data,function(t){e.postMessage({progress:!0,current:t})})}),n.flush&&e.postMessage({onflush:!0,data:ne.flush()})},!1))}(this); \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_decoder.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_decoder.js deleted file mode 100644 index e87273a56..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_decoder.js +++ /dev/null @@ -1,55 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -var DracoDecoderModule = function(DracoDecoderModule) { - DracoDecoderModule = DracoDecoderModule || {}; - -var Module=typeof DracoDecoderModule!=="undefined"?DracoDecoderModule:{};var isRuntimeInitialized=false;var isModuleParsed=false;Module["onRuntimeInitialized"]=(function(){isRuntimeInitialized=true;if(isModuleParsed){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}});Module["onModuleParsed"]=(function(){isModuleParsed=true;if(isRuntimeInitialized){if(typeof Module["onModuleLoaded"]==="function"){Module["onModuleLoaded"](Module)}}});function isVersionSupported(versionString){if(typeof versionString!=="string")return false;const version=versionString.split(".");if(version.length<2||version.length>3)return false;if(version[0]==1&&version[1]>=0&&version[1]<=3)return true;if(version[0]!=0||version[1]>10)return false;return true}Module["isVersionSupported"]=isVersionSupported;var moduleOverrides={};var key;for(key in Module){if(Module.hasOwnProperty(key)){moduleOverrides[key]=Module[key]}}Module["arguments"]=[];Module["thisProgram"]="./this.program";Module["quit"]=(function(status,toThrow){throw toThrow});Module["preRun"]=[];Module["postRun"]=[];var ENVIRONMENT_IS_WEB=false;var ENVIRONMENT_IS_WORKER=false;var ENVIRONMENT_IS_NODE=false;var ENVIRONMENT_IS_SHELL=false;if(Module["ENVIRONMENT"]){if(Module["ENVIRONMENT"]==="WEB"){ENVIRONMENT_IS_WEB=true}else if(Module["ENVIRONMENT"]==="WORKER"){ENVIRONMENT_IS_WORKER=true}else if(Module["ENVIRONMENT"]==="NODE"){ENVIRONMENT_IS_NODE=true}else if(Module["ENVIRONMENT"]==="SHELL"){ENVIRONMENT_IS_SHELL=true}else{throw new Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.")}}else{ENVIRONMENT_IS_WEB=typeof window==="object";ENVIRONMENT_IS_WORKER=typeof importScripts==="function";ENVIRONMENT_IS_NODE=typeof process==="object"&&typeof require==="function"&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER;ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER}if(ENVIRONMENT_IS_NODE){var nodeFS;var nodePath;Module["read"]=function shell_read(filename,binary){var ret;ret=tryParseAsDataURI(filename);if(!ret){if(!nodeFS)nodeFS=require("fs");if(!nodePath)nodePath=require("path");filename=nodePath["normalize"](filename);ret=nodeFS["readFileSync"](filename)}return binary?ret:ret.toString()};Module["readBinary"]=function readBinary(filename){var ret=Module["read"](filename,true);if(!ret.buffer){ret=new Uint8Array(ret)}assert(ret.buffer);return ret};if(process["argv"].length>1){Module["thisProgram"]=process["argv"][1].replace(/\\/g,"/")}Module["arguments"]=process["argv"].slice(2);process["on"]("uncaughtException",(function(ex){if(!(ex instanceof ExitStatus)){throw ex}}));process["on"]("unhandledRejection",(function(reason,p){process["exit"](1)}));Module["inspect"]=(function(){return"[Emscripten Module object]"})}else if(ENVIRONMENT_IS_SHELL){if(typeof read!="undefined"){Module["read"]=function shell_read(f){var data=tryParseAsDataURI(f);if(data){return intArrayToString(data)}return read(f)}}Module["readBinary"]=function readBinary(f){var data;data=tryParseAsDataURI(f);if(data){return data}if(typeof readbuffer==="function"){return new Uint8Array(readbuffer(f))}data=read(f,"binary");assert(typeof data==="object");return data};if(typeof scriptArgs!="undefined"){Module["arguments"]=scriptArgs}else if(typeof arguments!="undefined"){Module["arguments"]=arguments}if(typeof quit==="function"){Module["quit"]=(function(status,toThrow){quit(status)})}}else if(ENVIRONMENT_IS_WEB||ENVIRONMENT_IS_WORKER){Module["read"]=function shell_read(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.send(null);return xhr.responseText}catch(err){var data=tryParseAsDataURI(url);if(data){return intArrayToString(data)}throw err}};if(ENVIRONMENT_IS_WORKER){Module["readBinary"]=function readBinary(url){try{var xhr=new XMLHttpRequest;xhr.open("GET",url,false);xhr.responseType="arraybuffer";xhr.send(null);return new Uint8Array(xhr.response)}catch(err){var data=tryParseAsDataURI(url);if(data){return data}throw err}}}Module["readAsync"]=function readAsync(url,onload,onerror){var xhr=new XMLHttpRequest;xhr.open("GET",url,true);xhr.responseType="arraybuffer";xhr.onload=function xhr_onload(){if(xhr.status==200||xhr.status==0&&xhr.response){onload(xhr.response);return}var data=tryParseAsDataURI(url);if(data){onload(data.buffer);return}onerror()};xhr.onerror=onerror;xhr.send(null)};Module["setWindowTitle"]=(function(title){document.title=title})}else{throw new Error("not compiled for this environment")}Module["print"]=typeof console!=="undefined"?console.log.bind(console):typeof print!=="undefined"?print:null;Module["printErr"]=typeof printErr!=="undefined"?printErr:typeof console!=="undefined"&&console.warn.bind(console)||Module["print"];Module.print=Module["print"];Module.printErr=Module["printErr"];for(key in moduleOverrides){if(moduleOverrides.hasOwnProperty(key)){Module[key]=moduleOverrides[key]}}moduleOverrides=undefined;var STACK_ALIGN=16;function staticAlloc(size){assert(!staticSealed);var ret=STATICTOP;STATICTOP=STATICTOP+size+15&-16;return ret}function dynamicAlloc(size){assert(DYNAMICTOP_PTR);var ret=HEAP32[DYNAMICTOP_PTR>>2];var end=ret+size+15&-16;HEAP32[DYNAMICTOP_PTR>>2]=end;if(end>=TOTAL_MEMORY){var success=enlargeMemory();if(!success){HEAP32[DYNAMICTOP_PTR>>2]=ret;return 0}}return ret}function alignMemory(size,factor){if(!factor)factor=STACK_ALIGN;var ret=size=Math.ceil(size/factor)*factor;return ret}function getNativeTypeSize(type){switch(type){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:{if(type[type.length-1]==="*"){return 4}else if(type[0]==="i"){var bits=parseInt(type.substr(1));assert(bits%8===0);return bits/8}else{return 0}}}}function warnOnce(text){if(!warnOnce.shown)warnOnce.shown={};if(!warnOnce.shown[text]){warnOnce.shown[text]=1;Module.printErr(text)}}var jsCallStartIndex=1;var functionPointers=new Array(0);var funcWrappers={};function dynCall(sig,ptr,args){if(args&&args.length){return Module["dynCall_"+sig].apply(null,[ptr].concat(args))}else{return Module["dynCall_"+sig].call(null,ptr)}}var GLOBAL_BASE=8;var ABORT=0;var EXITSTATUS=0;function assert(condition,text){if(!condition){abort("Assertion failed: "+text)}}function getCFunc(ident){var func=Module["_"+ident];assert(func,"Cannot call unknown function "+ident+", make sure it is exported");return func}var JSfuncs={"stackSave":(function(){stackSave()}),"stackRestore":(function(){stackRestore()}),"arrayToC":(function(arr){var ret=stackAlloc(arr.length);writeArrayToMemory(arr,ret);return ret}),"stringToC":(function(str){var ret=0;if(str!==null&&str!==undefined&&str!==0){var len=(str.length<<2)+1;ret=stackAlloc(len);stringToUTF8(str,ret,len)}return ret})};var toC={"string":JSfuncs["stringToC"],"array":JSfuncs["arrayToC"]};function ccall(ident,returnType,argTypes,args,opts){var func=getCFunc(ident);var cArgs=[];var stack=0;if(args){for(var i=0;i<args.length;i++){var converter=toC[argTypes[i]];if(converter){if(stack===0)stack=stackSave();cArgs[i]=converter(args[i])}else{cArgs[i]=args[i]}}}var ret=func.apply(null,cArgs);if(returnType==="string")ret=Pointer_stringify(ret);else if(returnType==="boolean")ret=Boolean(ret);if(stack!==0){stackRestore(stack)}return ret}function setValue(ptr,value,type,noSafe){type=type||"i8";if(type.charAt(type.length-1)==="*")type="i32";switch(type){case"i1":HEAP8[ptr>>0]=value;break;case"i8":HEAP8[ptr>>0]=value;break;case"i16":HEAP16[ptr>>1]=value;break;case"i32":HEAP32[ptr>>2]=value;break;case"i64":tempI64=[value>>>0,(tempDouble=value,+Math_abs(tempDouble)>=+1?tempDouble>+0?(Math_min(+Math_floor(tempDouble/+4294967296),+4294967295)|0)>>>0:~~+Math_ceil((tempDouble- +(~~tempDouble>>>0))/+4294967296)>>>0:0)],HEAP32[ptr>>2]=tempI64[0],HEAP32[ptr+4>>2]=tempI64[1];break;case"float":HEAPF32[ptr>>2]=value;break;case"double":HEAPF64[ptr>>3]=value;break;default:abort("invalid type for setValue: "+type)}}var ALLOC_STATIC=2;var ALLOC_NONE=4;function Pointer_stringify(ptr,length){if(length===0||!ptr)return"";var hasUtf=0;var t;var i=0;while(1){t=HEAPU8[ptr+i>>0];hasUtf|=t;if(t==0&&!length)break;i++;if(length&&i==length)break}if(!length)length=i;var ret="";if(hasUtf<128){var MAX_CHUNK=1024;var curr;while(length>0){curr=String.fromCharCode.apply(String,HEAPU8.subarray(ptr,ptr+Math.min(length,MAX_CHUNK)));ret=ret?ret+curr:curr;ptr+=MAX_CHUNK;length-=MAX_CHUNK}return ret}return UTF8ToString(ptr)}var UTF8Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf8"):undefined;function UTF8ArrayToString(u8Array,idx){var endPtr=idx;while(u8Array[endPtr])++endPtr;if(endPtr-idx>16&&u8Array.subarray&&UTF8Decoder){return UTF8Decoder.decode(u8Array.subarray(idx,endPtr))}else{var u0,u1,u2,u3,u4,u5;var str="";while(1){u0=u8Array[idx++];if(!u0)return str;if(!(u0&128)){str+=String.fromCharCode(u0);continue}u1=u8Array[idx++]&63;if((u0&224)==192){str+=String.fromCharCode((u0&31)<<6|u1);continue}u2=u8Array[idx++]&63;if((u0&240)==224){u0=(u0&15)<<12|u1<<6|u2}else{u3=u8Array[idx++]&63;if((u0&248)==240){u0=(u0&7)<<18|u1<<12|u2<<6|u3}else{u4=u8Array[idx++]&63;if((u0&252)==248){u0=(u0&3)<<24|u1<<18|u2<<12|u3<<6|u4}else{u5=u8Array[idx++]&63;u0=(u0&1)<<30|u1<<24|u2<<18|u3<<12|u4<<6|u5}}}if(u0<65536){str+=String.fromCharCode(u0)}else{var ch=u0-65536;str+=String.fromCharCode(55296|ch>>10,56320|ch&1023)}}}}function UTF8ToString(ptr){return UTF8ArrayToString(HEAPU8,ptr)}function stringToUTF8Array(str,outU8Array,outIdx,maxBytesToWrite){if(!(maxBytesToWrite>0))return 0;var startIdx=outIdx;var endIdx=outIdx+maxBytesToWrite-1;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){if(outIdx>=endIdx)break;outU8Array[outIdx++]=u}else if(u<=2047){if(outIdx+1>=endIdx)break;outU8Array[outIdx++]=192|u>>6;outU8Array[outIdx++]=128|u&63}else if(u<=65535){if(outIdx+2>=endIdx)break;outU8Array[outIdx++]=224|u>>12;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=2097151){if(outIdx+3>=endIdx)break;outU8Array[outIdx++]=240|u>>18;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else if(u<=67108863){if(outIdx+4>=endIdx)break;outU8Array[outIdx++]=248|u>>24;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}else{if(outIdx+5>=endIdx)break;outU8Array[outIdx++]=252|u>>30;outU8Array[outIdx++]=128|u>>24&63;outU8Array[outIdx++]=128|u>>18&63;outU8Array[outIdx++]=128|u>>12&63;outU8Array[outIdx++]=128|u>>6&63;outU8Array[outIdx++]=128|u&63}}outU8Array[outIdx]=0;return outIdx-startIdx}function stringToUTF8(str,outPtr,maxBytesToWrite){return stringToUTF8Array(str,HEAPU8,outPtr,maxBytesToWrite)}function lengthBytesUTF8(str){var len=0;for(var i=0;i<str.length;++i){var u=str.charCodeAt(i);if(u>=55296&&u<=57343)u=65536+((u&1023)<<10)|str.charCodeAt(++i)&1023;if(u<=127){++len}else if(u<=2047){len+=2}else if(u<=65535){len+=3}else if(u<=2097151){len+=4}else if(u<=67108863){len+=5}else{len+=6}}return len}var UTF16Decoder=typeof TextDecoder!=="undefined"?new TextDecoder("utf-16le"):undefined;function demangle(func){return func}function demangleAll(text){var regex=/__Z[\w\d_]+/g;return text.replace(regex,(function(x){var y=demangle(x);return x===y?x:x+" ["+y+"]"}))}function jsStackTrace(){var err=new Error;if(!err.stack){try{throw new Error(0)}catch(e){err=e}if(!err.stack){return"(no stack trace available)"}}return err.stack.toString()}var WASM_PAGE_SIZE=65536;var ASMJS_PAGE_SIZE=16777216;var MIN_TOTAL_MEMORY=16777216;function alignUp(x,multiple){if(x%multiple>0){x+=multiple-x%multiple}return x}var buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64;function updateGlobalBuffer(buf){Module["buffer"]=buffer=buf}function updateGlobalBufferViews(){Module["HEAP8"]=HEAP8=new Int8Array(buffer);Module["HEAP16"]=HEAP16=new Int16Array(buffer);Module["HEAP32"]=HEAP32=new Int32Array(buffer);Module["HEAPU8"]=HEAPU8=new Uint8Array(buffer);Module["HEAPU16"]=HEAPU16=new Uint16Array(buffer);Module["HEAPU32"]=HEAPU32=new Uint32Array(buffer);Module["HEAPF32"]=HEAPF32=new Float32Array(buffer);Module["HEAPF64"]=HEAPF64=new Float64Array(buffer)}var STATIC_BASE,STATICTOP,staticSealed;var STACK_BASE,STACKTOP,STACK_MAX;var DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0;staticSealed=false;function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}if(!Module["reallocBuffer"])Module["reallocBuffer"]=(function(size){var ret;try{if(ArrayBuffer.transfer){ret=ArrayBuffer.transfer(buffer,size)}else{var oldHEAP8=HEAP8;ret=new ArrayBuffer(size);var temp=new Int8Array(ret);temp.set(oldHEAP8)}}catch(e){return false}var success=_emscripten_replace_memory(ret);if(!success)return false;return ret});function enlargeMemory(){var PAGE_MULTIPLE=Module["usingWasm"]?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE;var LIMIT=2147483648-PAGE_MULTIPLE;if(HEAP32[DYNAMICTOP_PTR>>2]>LIMIT){return false}var OLD_TOTAL_MEMORY=TOTAL_MEMORY;TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);while(TOTAL_MEMORY<HEAP32[DYNAMICTOP_PTR>>2]){if(TOTAL_MEMORY<=536870912){TOTAL_MEMORY=alignUp(2*TOTAL_MEMORY,PAGE_MULTIPLE)}else{TOTAL_MEMORY=Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,PAGE_MULTIPLE),LIMIT)}}var replacement=Module["reallocBuffer"](TOTAL_MEMORY);if(!replacement||replacement.byteLength!=TOTAL_MEMORY){TOTAL_MEMORY=OLD_TOTAL_MEMORY;return false}updateGlobalBuffer(replacement);updateGlobalBufferViews();return true}var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);byteLength(new ArrayBuffer(4))}catch(e){byteLength=(function(buffer){return buffer.byteLength})}var TOTAL_STACK=Module["TOTAL_STACK"]||5242880;var TOTAL_MEMORY=Module["TOTAL_MEMORY"]||16777216;if(TOTAL_MEMORY<TOTAL_STACK)Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")");if(Module["buffer"]){buffer=Module["buffer"]}else{{buffer=new ArrayBuffer(TOTAL_MEMORY)}Module["buffer"]=buffer}updateGlobalBufferViews();function getTotalMemory(){return TOTAL_MEMORY}HEAP32[0]=1668509029;HEAP16[1]=25459;if(HEAPU8[2]!==115||HEAPU8[3]!==99)throw"Runtime error: expected the system to be little-endian!";function callRuntimeCallbacks(callbacks){while(callbacks.length>0){var callback=callbacks.shift();if(typeof callback=="function"){callback();continue}var func=callback.func;if(typeof func==="number"){if(callback.arg===undefined){Module["dynCall_v"](func)}else{Module["dynCall_vi"](func,callback.arg)}}else{func(callback.arg===undefined?null:callback.arg)}}}var __ATPRERUN__=[];var __ATINIT__=[];var __ATMAIN__=[];var __ATEXIT__=[];var __ATPOSTRUN__=[];var runtimeInitialized=false;var runtimeExited=false;function preRun(){if(Module["preRun"]){if(typeof Module["preRun"]=="function")Module["preRun"]=[Module["preRun"]];while(Module["preRun"].length){addOnPreRun(Module["preRun"].shift())}}callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){if(runtimeInitialized)return;runtimeInitialized=true;callRuntimeCallbacks(__ATINIT__)}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__);runtimeExited=true}function postRun(){if(Module["postRun"]){if(typeof Module["postRun"]=="function")Module["postRun"]=[Module["postRun"]];while(Module["postRun"].length){addOnPostRun(Module["postRun"].shift())}}callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(cb){__ATPRERUN__.unshift(cb)}function addOnPreMain(cb){__ATMAIN__.unshift(cb)}function addOnPostRun(cb){__ATPOSTRUN__.unshift(cb)}function writeArrayToMemory(array,buffer){HEAP8.set(array,buffer)}function writeAsciiToMemory(str,buffer,dontAddNull){for(var i=0;i<str.length;++i){HEAP8[buffer++>>0]=str.charCodeAt(i)}if(!dontAddNull)HEAP8[buffer>>0]=0}if(!Math["imul"]||Math["imul"](4294967295,5)!==-5)Math["imul"]=function imul(a,b){var ah=a>>>16;var al=a&65535;var bh=b>>>16;var bl=b&65535;return al*bl+(ah*bl+al*bh<<16)|0};Math.imul=Math["imul"];if(!Math["fround"]){var froundBuffer=new Float32Array(1);Math["fround"]=(function(x){froundBuffer[0]=x;return froundBuffer[0]})}Math.fround=Math["fround"];if(!Math["clz32"])Math["clz32"]=(function(x){x=x>>>0;for(var i=0;i<32;i++){if(x&1<<31-i)return i}return 32});Math.clz32=Math["clz32"];if(!Math["trunc"])Math["trunc"]=(function(x){return x<0?Math.ceil(x):Math.floor(x)});Math.trunc=Math["trunc"];var Math_abs=Math.abs;var Math_cos=Math.cos;var Math_sin=Math.sin;var Math_tan=Math.tan;var Math_acos=Math.acos;var Math_asin=Math.asin;var Math_atan=Math.atan;var Math_atan2=Math.atan2;var Math_exp=Math.exp;var Math_log=Math.log;var Math_sqrt=Math.sqrt;var Math_ceil=Math.ceil;var Math_floor=Math.floor;var Math_pow=Math.pow;var Math_imul=Math.imul;var Math_fround=Math.fround;var Math_round=Math.round;var Math_min=Math.min;var Math_max=Math.max;var Math_clz32=Math.clz32;var Math_trunc=Math.trunc;var runDependencies=0;var runDependencyWatcher=null;var dependenciesFulfilled=null;function addRunDependency(id){runDependencies++;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}}function removeRunDependency(id){runDependencies--;if(Module["monitorRunDependencies"]){Module["monitorRunDependencies"](runDependencies)}if(runDependencies==0){if(runDependencyWatcher!==null){clearInterval(runDependencyWatcher);runDependencyWatcher=null}if(dependenciesFulfilled){var callback=dependenciesFulfilled;dependenciesFulfilled=null;callback()}}}Module["preloadedImages"]={};Module["preloadedAudios"]={};var memoryInitializer=null;var dataURIPrefix="data:application/octet-stream;base64,";function isDataURI(filename){return String.prototype.startsWith?filename.startsWith(dataURIPrefix):filename.indexOf(dataURIPrefix)===0}STATIC_BASE=GLOBAL_BASE;STATICTOP=STATIC_BASE+17904;__ATINIT__.push();memoryInitializer="data:application/octet-stream;base64,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UwAAAFkAAABhAAAAZQAAAGcAAABrAAAAbQAAAHEAAAB/AAAAgwAAAIkAAACLAAAAlQAAAJcAAACdAAAAowAAAKcAAACtAAAAswAAALUAAAC/AAAAwQAAAMUAAADHAAAA0wAAAAEAAAALAAAADQAAABEAAAATAAAAFwAAAB0AAAAfAAAAJQAAACkAAAArAAAALwAAADUAAAA7AAAAPQAAAEMAAABHAAAASQAAAE8AAABTAAAAWQAAAGEAAABlAAAAZwAAAGsAAABtAAAAcQAAAHkAAAB/AAAAgwAAAIkAAACLAAAAjwAAAJUAAACXAAAAnQAAAKMAAACnAAAAqQAAAK0AAACzAAAAtQAAALsAAAC/AAAAwQAAAMUAAADHAAAA0QAAAAAAAAAgBAAAZAAAAGUAAABmAAAAZwAAABMAAAABAAAAAQAAAAMAAAAAAAAASAQAAGQAAABoAAAAZgAAAGcAAAATAAAAAgAAAAIAAAAEAAAAAAAAAFgEAABpAAAAagAAAG4AAAAAAAAAaAQAAGkAAABrAAAAbgAAAE41ZHJhY28yOEF0dHJpYnV0ZU9jdGFoZWRyb25UcmFuc2Zvcm1FAE41ZHJhY28xOEF0dHJpYnV0ZVRyYW5zZm9ybUUATjVkcmFjbzMwQXR0cmlidXRlUXVhbnRpemF0aW9uVHJhbnNmb3JtRQBONWRyYWNvMTdBdHRyaWJ1dGVzRGVjb2RlckUATjVkcmFjbzI2QXR0cmlidXRlc0RlY29kZXJJbnRlcmZhY2VFAEtkVHJlZUF0dHJpYnV0ZXNEZWNvZGVyOiBjb21wcmVzc2lvbiBsZXZlbCAlaSBub3Qgc3VwcG9ydGVkLgoATWV0aG9kIG5vdCBzdXBwb3J0ZWQuIAoAVmVyc2lvbiBub3Qgc3VwcG9ydGVkLiAKAE41ZHJhY28yM0tkVHJlZUF0dHJpYnV0ZXNEZWNvZGVyRQBONWRyYWNvMjZTZXF1ZW50aWFsQXR0cmlidXRlRGVjb2RlckUATjVkcmFjbzM3U2VxdWVudGlhbEF0dHJpYnV0ZURlY29kZXJzQ29udHJvbGxlckUATjVkcmFjbzI4UHJlZGljdGlvblNjaGVtZURlbHRhRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVFRQBONWRyYWNvMjNQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVFRQBONWRyYWNvMzdQcmVkaWN0aW9uU2NoZW1lVHlwZWREZWNvZGVySW50ZXJmYWNlSWlpRUUATjVkcmFjbzMyUHJlZGljdGlvblNjaGVtZURlY29kZXJJbnRlcmZhY2VFAE41ZHJhY28yNVByZWRpY3Rpb25TY2hlbWVJbnRlcmZhY2VFAE41ZHJhY280OE1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsUHJlZGljdG9yQXJlYUlpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28yN01lc2hQcmVkaWN0aW9uU2NoZW1lRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY28zNk1lc2hQcmVkaWN0aW9uU2NoZW1lVGV4Q29vcmRzRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzU2TWVzaFByZWRpY3Rpb25TY2hlbWVDb25zdHJhaW5lZE11bHRpUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NU1lc2hQcmVkaWN0aW9uU2NoZW1lTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQwTWVzaFByZWRpY3Rpb25TY2hlbWVQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQyTWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU18zN1ByZWRpY3Rpb25TY2hlbWVXcmFwRGVjb2RpbmdUcmFuc2Zvcm1JaWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ0TWVzaFByZWRpY3Rpb25TY2hlbWVUZXhDb29yZHNQb3J0YWJsZURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMzZNZXNoUHJlZGljdGlvblNjaGVtZVRleENvb3Jkc0RlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNTZNZXNoUHJlZGljdGlvblNjaGVtZUNvbnN0cmFpbmVkTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280NU1lc2hQcmVkaWN0aW9uU2NoZW1lTXVsdGlQYXJhbGxlbG9ncmFtRGVjb2RlcklpTlNfMzdQcmVkaWN0aW9uU2NoZW1lV3JhcERlY29kaW5nVHJhbnNmb3JtSWlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280ME1lc2hQcmVkaWN0aW9uU2NoZW1lUGFyYWxsZWxvZ3JhbURlY29kZXJJaU5TXzM3UHJlZGljdGlvblNjaGVtZVdyYXBEZWNvZGluZ1RyYW5zZm9ybUlpaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMzNTZXF1ZW50aWFsSW50ZWdlckF0dHJpYnV0ZURlY29kZXJFAE41ZHJhY28yOFByZWRpY3Rpb25TY2hlbWVEZWx0YURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNjJQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkNhbm9uaWNhbGl6ZWREZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU182MlByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uQ2Fub25pY2FsaXplZERlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDJNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbERlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzYyUHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25DYW5vbmljYWxpemVkRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjhQcmVkaWN0aW9uU2NoZW1lRGVsdGFEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFRUUATjVkcmFjbzIzUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckFyZWFJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JCYXNlSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMTFDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzExQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMjdNZXNoUHJlZGljdGlvblNjaGVtZURlY29kZXJJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18xMUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzQ4TWVzaFByZWRpY3Rpb25TY2hlbWVHZW9tZXRyaWNOb3JtYWxQcmVkaWN0b3JBcmVhSWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvNDhNZXNoUHJlZGljdGlvblNjaGVtZUdlb21ldHJpY05vcm1hbFByZWRpY3RvckJhc2VJaU5TXzQ5UHJlZGljdGlvblNjaGVtZU5vcm1hbE9jdGFoZWRyb25EZWNvZGluZ1RyYW5zZm9ybUlpRUVOU18yNE1lc2hQcmVkaWN0aW9uU2NoZW1lRGF0YUlOU18yNE1lc2hBdHRyaWJ1dGVDb3JuZXJUYWJsZUVFRUVFAE41ZHJhY280Mk1lc2hQcmVkaWN0aW9uU2NoZW1lR2VvbWV0cmljTm9ybWFsRGVjb2RlcklpTlNfNDlQcmVkaWN0aW9uU2NoZW1lTm9ybWFsT2N0YWhlZHJvbkRlY29kaW5nVHJhbnNmb3JtSWlFRU5TXzI0TWVzaFByZWRpY3Rpb25TY2hlbWVEYXRhSU5TXzI0TWVzaEF0dHJpYnV0ZUNvcm5lclRhYmxlRUVFRUUATjVkcmFjbzI3TWVzaFByZWRpY3Rpb25TY2hlbWVEZWNvZGVySWlOU180OVByZWRpY3Rpb25TY2hlbWVOb3JtYWxPY3RhaGVkcm9uRGVjb2RpbmdUcmFuc2Zvcm1JaUVFTlNfMjRNZXNoUHJlZGljdGlvblNjaGVtZURhdGFJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVFRQBONWRyYWNvMzJTZXF1ZW50aWFsTm9ybWFsQXR0cmlidXRlRGVjb2RlckUATjVkcmFjbzM4U2VxdWVudGlhbFF1YW50aXphdGlvbkF0dHJpYnV0ZURlY29kZXJFAFVuc3VwcG9ydGVkIGVuY29kaW5nIG1ldGhvZC4ASW5wdXQgaXMgbm90IGEgbWVzaC4ASW5wdXQgaXMgbm90IGEgcG9pbnQgY2xvdWQuAHNraXBfYXR0cmlidXRlX3RyYW5zZm9ybQBONWRyYWNvMTFNZXNoRGVjb2RlckUATjVkcmFjbzIyTWVzaEVkZ2VCcmVha2VyRGVjb2RlckUATjVkcmFjbzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yMEVkZ2VCcmVha2VyVHJhdmVyc2VySU5TXzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMjRNZXNoQXR0cmlidXRlQ29ybmVyVGFibGVFRUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTM19FRU5TXzE5RWRnZUJyZWFrZXJPYnNlcnZlckVFRUVFAE41ZHJhY28xNVBvaW50c1NlcXVlbmNlckUATjVkcmFjbzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMTFDb3JuZXJUYWJsZUVFRQBONWRyYWNvMjJNZXNoVHJhdmVyc2FsU2VxdWVuY2VySU5TXzI1UHJlZGljdGlvbkRlZ3JlZVRyYXZlcnNlcklOU18yOUNvcm5lclRhYmxlVHJhdmVyc2FsUHJvY2Vzc29ySU5TXzExQ29ybmVyVGFibGVFRUVOU18zNk1lc2hBdHRyaWJ1dGVJbmRpY2VzRW5jb2RpbmdPYnNlcnZlcklTM19FRUVFRUUATjVkcmFjbzIyTWVzaFRyYXZlcnNhbFNlcXVlbmNlcklOU18yMEVkZ2VCcmVha2VyVHJhdmVyc2VySU5TXzI5Q29ybmVyVGFibGVUcmF2ZXJzYWxQcm9jZXNzb3JJTlNfMTFDb3JuZXJUYWJsZUVFRU5TXzM2TWVzaEF0dHJpYnV0ZUluZGljZXNFbmNvZGluZ09ic2VydmVySVMzX0VFTlNfMTlFZGdlQnJlYWtlck9ic2VydmVyRUVFRUUATjVkcmFjbzI2TWVzaEVkZ2VCcmVha2VyRGVjb2RlckltcGxJTlNfMzFNZXNoRWRnZUJyZWFrZXJUcmF2ZXJzYWxEZWNvZGVyRUVFAE41ZHJhY28zNU1lc2hFZGdlQnJlYWtlckRlY29kZXJJbXBsSW50ZXJmYWNlRQBONWRyYWNvMjZNZXNoRWRnZUJyZWFrZXJEZWNvZGVySW1wbElOU180MU1lc2hFZGdlQnJlYWtlclRyYXZlcnNhbFByZWRpY3RpdmVEZWNvZGVyRUVFAE41ZHJhY28yNk1lc2hFZGdlQnJlYWtlckRlY29kZXJJbXBsSU5TXzM4TWVzaEVkZ2VCcmVha2VyVHJhdmVyc2FsVmFsZW5jZURlY29kZXJFRUUATjVkcmFjbzE1TGluZWFyU2VxdWVuY2VyRQBONWRyYWNvMjFNZXNoU2VxdWVudGlhbERlY29kZXJFAE41ZHJhY28xN1BvaW50Q2xvdWREZWNvZGVyRQBGYWlsZWQgdG8gcGFyc2UgRHJhY28gaGVhZGVyLgBEUkFDTwBOb3QgYSBEcmFjbyBmaWxlLgBGYWlsZWQgdG8gZGVjb2RlIG1ldGFkYXRhLgBVc2luZyBpbmNvbXBhdGlibGUgZGVjb2RlciBmb3IgdGhlIGlucHV0IGdlb21ldHJ5LgBVbmtub3duIG1ham9yIHZlcnNpb24uAFVua25vd24gbWlub3IgdmVyc2lvbi4ARmFpbGVkIHRvIGluaXRpYWxpemUgdGhlIGRlY29kZXIuAEZhaWxlZCB0byBkZWNvZGUgZ2VvbWV0cnkgZGF0YS4ARmFpbGVkIHRvIGRlY29kZSBwb2ludCBhdHRyaWJ1dGVzLgBONWRyYWNvMjNQb2ludENsb3VkS2RUcmVlRGVjb2RlckUATjVkcmFjbzI3UG9pbnRDbG91ZFNlcXVlbnRpYWxEZWNvZGVyRQBONWRyYWNvNE1lc2hFAE41ZHJhY28xMFBvaW50Q2xvdWRFAEZsb2F0UG9pbnRzVHJlZURlY29kZXI6IGNvbXByZXNzaW9uIGxldmVsICVpIG5vdCBzdXBwb3J0ZWQuCgBhbGxvY2F0b3I8VD46OmFsbG9jYXRlKHNpemVfdCBuKSAnbicgZXhjZWVkcyBtYXhpbXVtIHN1cHBvcnRlZCBzaXplABEACgAREREAAAAABQAAAAAAAAkAAAAACwAAAAAAAAAAEQAPChEREQMKBwABEwkLCwAACQYLAAALAAYRAAAAERERAAAAAAAAAAAAAAAAAAAAAAsAAAAAAAAAABEACgoREREACgAAAgAJCwAAAAkACwAACwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAMAAAAAAAAAAAAAAAMAAAAAAwAAAAACQwAAAAAAAwAAAwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgAAAAAAAAAAAAAADQAAAAQNAAAAAAkOAAAAAAAOAAAOAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABAAAAAAAAAAAAAAAA8AAAAADwAAAAAJEAAAAAAAEAAAEAAAEgAAABISEgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAASAAAAEhISAAAAAAAACQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACwAAAAAAAAAAAAAACgAAAAAKAAAAAAkLAAAAAAALAAALAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAAAAAAAAAAAAAAAwAAAAADAAAAAAJDAAAAAAADAAADAAALSsgICAwWDB4AChudWxsKQAtMFgrMFggMFgtMHgrMHggMHgAaW5mAElORgBuYW4ATkFOADAxMjM0NTY3ODlBQkNERUYuAFQhIhkNAQIDEUscDBAECx0SHidobm9wcWIgBQYPExQVGggWBygkFxgJCg4bHyUjg4J9JiorPD0+P0NHSk1YWVpbXF1eX2BhY2RlZmdpamtscnN0eXp7fABJbGxlZ2FsIGJ5dGUgc2VxdWVuY2UARG9tYWluIGVycm9yAFJlc3VsdCBub3QgcmVwcmVzZW50YWJsZQBOb3QgYSB0dHkAUGVybWlzc2lvbiBkZW5pZWQAT3BlcmF0aW9uIG5vdCBwZXJtaXR0ZWQATm8gc3VjaCBmaWxlIG9yIGRpcmVjdG9yeQBObyBzdWNoIHByb2Nlc3MARmlsZSBleGlzdHMAVmFsdWUgdG9vIGxhcmdlIGZvciBkYXRhIHR5cGUATm8gc3BhY2UgbGVmdCBvbiBkZXZpY2UAT3V0IG9mIG1lbW9yeQBSZXNvdXJjZSBidXN5AEludGVycnVwdGVkIHN5c3RlbSBjYWxsAFJlc291cmNlIHRlbXBvcmFyaWx5IHVuYXZhaWxhYmxlAEludmFsaWQgc2VlawBDcm9zcy1kZXZpY2UgbGluawBSZWFkLW9ubHkgZmlsZSBzeXN0ZW0ARGlyZWN0b3J5IG5vdCBlbXB0eQBDb25uZWN0aW9uIHJlc2V0IGJ5IHBlZXIAT3BlcmF0aW9uIHRpbWVkIG91dABDb25uZWN0aW9uIHJlZnVzZWQASG9zdCBpcyBkb3duAEhvc3QgaXMgdW5yZWFjaGFibGUAQWRkcmVzcyBpbiB1c2UAQnJva2VuIHBpcGUASS9PIGVycm9yAE5vIHN1Y2ggZGV2aWNlIG9yIGFkZHJlc3MAQmxvY2sgZGV2aWNlIHJlcXVpcmVkAE5vIHN1Y2ggZGV2aWNlAE5vdCBhIGRpcmVjdG9yeQBJcyBhIGRpcmVjdG9yeQBUZXh0IGZpbGUgYnVzeQBFeGVjIGZvcm1hdCBlcnJvcgBJbnZhbGlkIGFyZ3VtZW50AEFyZ3VtZW50IGxpc3QgdG9vIGxvbmcAU3ltYm9saWMgbGluayBsb29wAEZpbGVuYW1lIHRvbyBsb25nAFRvbyBtYW55IG9wZW4gZmlsZXMgaW4gc3lzdGVtAE5vIGZpbGUgZGVzY3JpcHRvcnMgYXZhaWxhYmxlAEJhZCBmaWxlIGRlc2NyaXB0b3IATm8gY2hpbGQgcHJvY2VzcwBCYWQgYWRkcmVzcwBGaWxlIHRvbyBsYXJnZQBUb28gbWFueSBsaW5rcwBObyBsb2NrcyBhdmFpbGFibGUAUmVzb3VyY2UgZGVhZGxvY2sgd291bGQgb2NjdXIAU3RhdGUgbm90IHJlY292ZXJhYmxlAFByZXZpb3VzIG93bmVyIGRpZWQAT3BlcmF0aW9uIGNhbmNlbGVkAEZ1bmN0aW9uIG5vdCBpbXBsZW1lbnRlZABObyBtZXNzYWdlIG9mIGRlc2lyZWQgdHlwZQBJZGVudGlmaWVyIHJlbW92ZWQARGV2aWNlIG5vdCBhIHN0cmVhbQBObyBkYXRhIGF2YWlsYWJsZQBEZXZpY2UgdGltZW91dABPdXQgb2Ygc3RyZWFtcyByZXNvdXJjZXMATGluayBoYXMgYmVlbiBzZXZlcmVkAFByb3RvY29sIGVycm9yAEJhZCBtZXNzYWdlAEZpbGUgZGVzY3JpcHRvciBpbiBiYWQgc3RhdGUATm90IGEgc29ja2V0AERlc3RpbmF0aW9uIGFkZHJlc3MgcmVxdWlyZWQATWVzc2FnZSB0b28gbGFyZ2UAUHJvdG9jb2wgd3JvbmcgdHlwZSBmb3Igc29ja2V0AFByb3RvY29sIG5vdCBhdmFpbGFibGUAUHJvdG9jb2wgbm90IHN1cHBvcnRlZABTb2NrZXQgdHlwZSBub3Qgc3VwcG9ydGVkAE5vdCBzdXBwb3J0ZWQAUHJvdG9jb2wgZmFtaWx5IG5vdCBzdXBwb3J0ZWQAQWRkcmVzcyBmYW1pbHkgbm90IHN1cHBvcnRlZCBieSBwcm90b2NvbABBZGRyZXNzIG5vdCBhdmFpbGFibGUATmV0d29yayBpcyBkb3duAE5ldHdvcmsgdW5yZWFjaGFibGUAQ29ubmVjdGlvbiByZXNldCBieSBuZXR3b3JrAENvbm5lY3Rpb24gYWJvcnRlZABObyBidWZmZXIgc3BhY2UgYXZhaWxhYmxlAFNvY2tldCBpcyBjb25uZWN0ZWQAU29ja2V0IG5vdCBjb25uZWN0ZWQAQ2Fubm90IHNlbmQgYWZ0ZXIgc29ja2V0IHNodXRkb3duAE9wZXJhdGlvbiBhbHJlYWR5IGluIHByb2dyZXNzAE9wZXJhdGlvbiBpbiBwcm9ncmVzcwBTdGFsZSBmaWxlIGhhbmRsZQBSZW1vdGUgSS9PIGVycm9yAFF1b3RhIGV4Y2VlZGVkAE5vIG1lZGl1bSBmb3VuZABXcm9uZyBtZWRpdW0gdHlwZQBObyBlcnJvciBpbmZvcm1hdGlvbgAAJWQAU3Q5ZXhjZXB0aW9uAE4xMF9fY3h4YWJpdjExNl9fc2hpbV90eXBlX2luZm9FAFN0OXR5cGVfaW5mbwBOMTBfX2N4eGFiaXYxMjBfX3NpX2NsYXNzX3R5cGVfaW5mb0UATjEwX19jeHhhYml2MTE3X19jbGFzc190eXBlX2luZm9FAFN0MTFsb2dpY19lcnJvcgBTdDEybGVuZ3RoX2Vycm9yAE4xMF9fY3h4YWJpdjExOV9fcG9pbnRlcl90eXBlX2luZm9FAE4xMF9fY3h4YWJpdjExN19fcGJhc2VfdHlwZV9pbmZvRQ==";var tempDoublePtr=STATICTOP;STATICTOP+=16;function ___cxa_allocate_exception(size){return _malloc(size)}function ___cxa_pure_virtual(){ABORT=true;throw"Pure virtual function called!"}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:(function(adjusted){if(!adjusted||EXCEPTIONS.infos[adjusted])return adjusted;for(var key in EXCEPTIONS.infos){var ptr=+key;var info=EXCEPTIONS.infos[ptr];if(info.adjusted===adjusted){return ptr}}return adjusted}),addRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount++}),decRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];assert(info.refcount>0);info.refcount--;if(info.refcount===0&&!info.rethrown){if(info.destructor){Module["dynCall_vi"](info.destructor,ptr)}delete EXCEPTIONS.infos[ptr];___cxa_free_exception(ptr)}}),clearRef:(function(ptr){if(!ptr)return;var info=EXCEPTIONS.infos[ptr];info.refcount=0})};function ___resumeException(ptr){if(!EXCEPTIONS.last){EXCEPTIONS.last=ptr}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var thrown=EXCEPTIONS.last;if(!thrown){return(setTempRet0(0),0)|0}var info=EXCEPTIONS.infos[thrown];var throwntype=info.type;if(!throwntype){return(setTempRet0(0),thrown)|0}var typeArray=Array.prototype.slice.call(arguments);var pointer=Module["___cxa_is_pointer_type"](throwntype);if(!___cxa_find_matching_catch.buffer)___cxa_find_matching_catch.buffer=_malloc(4);HEAP32[___cxa_find_matching_catch.buffer>>2]=thrown;thrown=___cxa_find_matching_catch.buffer;for(var i=0;i<typeArray.length;i++){if(typeArray[i]&&Module["___cxa_can_catch"](typeArray[i],throwntype,thrown)){thrown=HEAP32[thrown>>2];info.adjusted=thrown;return(setTempRet0(typeArray[i]),thrown)|0}}thrown=HEAP32[thrown>>2];return(setTempRet0(throwntype),thrown)|0}function ___cxa_throw(ptr,type,destructor){EXCEPTIONS.infos[ptr]={ptr:ptr,adjusted:ptr,type:type,destructor:destructor,refcount:0,caught:false,rethrown:false};EXCEPTIONS.last=ptr;if(!("uncaught_exception"in __ZSt18uncaught_exceptionv)){__ZSt18uncaught_exceptionv.uncaught_exception=1}else{__ZSt18uncaught_exceptionv.uncaught_exception++}throw ptr+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___gxx_personality_v0(){}var SYSCALLS={varargs:0,get:(function(varargs){SYSCALLS.varargs+=4;var ret=HEAP32[SYSCALLS.varargs-4>>2];return ret}),getStr:(function(){var ret=Pointer_stringify(SYSCALLS.get());return ret}),get64:(function(){var low=SYSCALLS.get(),high=SYSCALLS.get();if(low>=0)assert(high===0);else assert(high===-1);return low}),getZero:(function(){assert(SYSCALLS.get()===0)})};function ___syscall140(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD(),offset_high=SYSCALLS.get(),offset_low=SYSCALLS.get(),result=SYSCALLS.get(),whence=SYSCALLS.get();var offset=offset_low;FS.llseek(stream,offset,whence);HEAP32[result>>2]=stream.position;if(stream.getdents&&offset===0&&whence===0)stream.getdents=null;return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function flush_NO_FILESYSTEM(){var fflush=Module["_fflush"];if(fflush)fflush(0);var printChar=___syscall146.printChar;if(!printChar)return;var buffers=___syscall146.buffers;if(buffers[1].length)printChar(1,10);if(buffers[2].length)printChar(2,10)}function ___syscall146(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.get(),iov=SYSCALLS.get(),iovcnt=SYSCALLS.get();var ret=0;if(!___syscall146.buffers){___syscall146.buffers=[null,[],[]];___syscall146.printChar=(function(stream,curr){var buffer=___syscall146.buffers[stream];assert(buffer);if(curr===0||curr===10){(stream===1?Module["print"]:Module["printErr"])(UTF8ArrayToString(buffer,0));buffer.length=0}else{buffer.push(curr)}})}for(var i=0;i<iovcnt;i++){var ptr=HEAP32[iov+i*8>>2];var len=HEAP32[iov+(i*8+4)>>2];for(var j=0;j<len;j++){___syscall146.printChar(stream,HEAPU8[ptr+j])}ret+=len}return ret}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall54(which,varargs){SYSCALLS.varargs=varargs;try{return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function ___syscall6(which,varargs){SYSCALLS.varargs=varargs;try{var stream=SYSCALLS.getStreamFromFD();FS.close(stream);return 0}catch(e){if(typeof FS==="undefined"||!(e instanceof FS.ErrnoError))abort(e);return-e.errno}}function _abort(){Module["abort"]()}var _llvm_ceil_f32=Math_ceil;var _llvm_floor_f64=Math_floor;function _llvm_trap(){abort("trap!")}function _emscripten_memcpy_big(dest,src,num){HEAPU8.set(HEAPU8.subarray(src,src+num),dest);return dest}function ___setErrNo(value){if(Module["___errno_location"])HEAP32[Module["___errno_location"]()>>2]=value;return value}DYNAMICTOP_PTR=staticAlloc(4);STACK_BASE=STACKTOP=alignMemory(STATICTOP);STACK_MAX=STACK_BASE+TOTAL_STACK;DYNAMIC_BASE=alignMemory(STACK_MAX);HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE;staticSealed=true;var ASSERTIONS=false;function intArrayFromString(stringy,dontAddNull,length){var len=length>0?length:lengthBytesUTF8(stringy)+1;var u8array=new Array(len);var numBytesWritten=stringToUTF8Array(stringy,u8array,0,u8array.length);if(dontAddNull)u8array.length=numBytesWritten;return u8array}function intArrayToString(array){var ret=[];for(var i=0;i<array.length;i++){var chr=array[i];if(chr>255){if(ASSERTIONS){assert(false,"Character code "+chr+" ("+String.fromCharCode(chr)+") at offset "+i+" not in 0x00-0xFF.")}chr&=255}ret.push(String.fromCharCode(chr))}return ret.join("")}var decodeBase64=typeof atob==="function"?atob:(function(input){var keyStr="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=";var output="";var chr1,chr2,chr3;var enc1,enc2,enc3,enc4;var i=0;input=input.replace(/[^A-Za-z0-9\+\/\=]/g,"");do{enc1=keyStr.indexOf(input.charAt(i++));enc2=keyStr.indexOf(input.charAt(i++));enc3=keyStr.indexOf(input.charAt(i++));enc4=keyStr.indexOf(input.charAt(i++));chr1=enc1<<2|enc2>>4;chr2=(enc2&15)<<4|enc3>>2;chr3=(enc3&3)<<6|enc4;output=output+String.fromCharCode(chr1);if(enc3!==64){output=output+String.fromCharCode(chr2)}if(enc4!==64){output=output+String.fromCharCode(chr3)}}while(i<input.length);return output});function intArrayFromBase64(s){if(typeof ENVIRONMENT_IS_NODE==="boolean"&&ENVIRONMENT_IS_NODE){var buf;try{buf=Buffer.from(s,"base64")}catch(_){buf=new Buffer(s,"base64")}return new Uint8Array(buf.buffer,buf.byteOffset,buf.byteLength)}try{var decoded=decodeBase64(s);var bytes=new Uint8Array(decoded.length);for(var i=0;i<decoded.length;++i){bytes[i]=decoded.charCodeAt(i)}return bytes}catch(_){throw new Error("Converting base64 string to bytes failed.")}}function tryParseAsDataURI(filename){if(!isDataURI(filename)){return}return intArrayFromBase64(filename.slice(dataURIPrefix.length))}function invoke_ii(index,a1){try{return Module["dynCall_ii"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iii(index,a1,a2){try{return Module["dynCall_iii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiii(index,a1,a2,a3){try{return Module["dynCall_iiii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_iiiiiii(index,a1,a2,a3,a4,a5,a6){try{return Module["dynCall_iiiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_v(index){try{Module["dynCall_v"](index)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vi(index,a1){try{Module["dynCall_vi"](index,a1)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_vii(index,a1,a2){try{Module["dynCall_vii"](index,a1,a2)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viii(index,a1,a2,a3){try{Module["dynCall_viii"](index,a1,a2,a3)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiii(index,a1,a2,a3,a4){try{Module["dynCall_viiii"](index,a1,a2,a3,a4)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiii(index,a1,a2,a3,a4,a5){try{Module["dynCall_viiiii"](index,a1,a2,a3,a4,a5)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}function invoke_viiiiii(index,a1,a2,a3,a4,a5,a6){try{Module["dynCall_viiiiii"](index,a1,a2,a3,a4,a5,a6)}catch(e){if(typeof e!=="number"&&e!=="longjmp")throw e;Module["setThrew"](1,0)}}Module.asmGlobalArg={"Math":Math,"Int8Array":Int8Array,"Int16Array":Int16Array,"Int32Array":Int32Array,"Uint8Array":Uint8Array,"Uint16Array":Uint16Array,"Uint32Array":Uint32Array,"Float32Array":Float32Array,"Float64Array":Float64Array,"NaN":NaN,"Infinity":Infinity,"byteLength":byteLength};Module.asmLibraryArg={"abort":abort,"assert":assert,"enlargeMemory":enlargeMemory,"getTotalMemory":getTotalMemory,"abortOnCannotGrowMemory":abortOnCannotGrowMemory,"invoke_ii":invoke_ii,"invoke_iii":invoke_iii,"invoke_iiii":invoke_iiii,"invoke_iiiiiii":invoke_iiiiiii,"invoke_v":invoke_v,"invoke_vi":invoke_vi,"invoke_vii":invoke_vii,"invoke_viii":invoke_viii,"invoke_viiii":invoke_viiii,"invoke_viiiii":invoke_viiiii,"invoke_viiiiii":invoke_viiiiii,"__ZSt18uncaught_exceptionv":__ZSt18uncaught_exceptionv,"___cxa_allocate_exception":___cxa_allocate_exception,"___cxa_find_matching_catch":___cxa_find_matching_catch,"___cxa_pure_virtual":___cxa_pure_virtual,"___cxa_throw":___cxa_throw,"___gxx_personality_v0":___gxx_personality_v0,"___resumeException":___resumeException,"___setErrNo":___setErrNo,"___syscall140":___syscall140,"___syscall146":___syscall146,"___syscall54":___syscall54,"___syscall6":___syscall6,"_abort":_abort,"_emscripten_memcpy_big":_emscripten_memcpy_big,"_llvm_ceil_f32":_llvm_ceil_f32,"_llvm_floor_f64":_llvm_floor_f64,"_llvm_trap":_llvm_trap,"flush_NO_FILESYSTEM":flush_NO_FILESYSTEM,"DYNAMICTOP_PTR":DYNAMICTOP_PTR,"tempDoublePtr":tempDoublePtr,"ABORT":ABORT,"STACKTOP":STACKTOP,"STACK_MAX":STACK_MAX};// EMSCRIPTEN_START_ASM -var asm=(/** @suppress {uselessCode} */ function(global,env,buffer) { -"almost asm";var a=global.Int8Array;var b=new a(buffer);var c=global.Int16Array;var d=new c(buffer);var e=global.Int32Array;var f=new e(buffer);var g=global.Uint8Array;var h=new g(buffer);var i=global.Uint16Array;var j=new i(buffer);var k=global.Uint32Array;var l=new k(buffer);var m=global.Float32Array;var n=new m(buffer);var o=global.Float64Array;var p=new o(buffer);var q=global.byteLength;var r=env.DYNAMICTOP_PTR|0;var s=env.tempDoublePtr|0;var t=env.ABORT|0;var u=env.STACKTOP|0;var v=env.STACK_MAX|0;var w=0;var x=0;var y=0;var z=0;var A=global.NaN,B=global.Infinity;var C=0,D=0,E=0,F=0,G=0.0;var H=0;var I=global.Math.floor;var J=global.Math.abs;var K=global.Math.sqrt;var L=global.Math.pow;var M=global.Math.cos;var N=global.Math.sin;var O=global.Math.tan;var P=global.Math.acos;var Q=global.Math.asin;var R=global.Math.atan;var S=global.Math.atan2;var T=global.Math.exp;var U=global.Math.log;var V=global.Math.ceil;var W=global.Math.imul;var X=global.Math.min;var Y=global.Math.max;var Z=global.Math.clz32;var _=global.Math.fround;var $=env.abort;var aa=env.assert;var ba=env.enlargeMemory;var ca=env.getTotalMemory;var da=env.abortOnCannotGrowMemory;var ea=env.invoke_ii;var fa=env.invoke_iii;var ga=env.invoke_iiii;var ha=env.invoke_iiiiiii;var ia=env.invoke_v;var ja=env.invoke_vi;var ka=env.invoke_vii;var la=env.invoke_viii;var ma=env.invoke_viiii;var na=env.invoke_viiiii;var oa=env.invoke_viiiiii;var pa=env.__ZSt18uncaught_exceptionv;var qa=env.___cxa_allocate_exception;var ra=env.___cxa_find_matching_catch;var sa=env.___cxa_pure_virtual;var ta=env.___cxa_throw;var ua=env.___gxx_personality_v0;var va=env.___resumeException;var wa=env.___setErrNo;var xa=env.___syscall140;var ya=env.___syscall146;var za=env.___syscall54;var Aa=env.___syscall6;var Ba=env._abort;var Ca=env._emscripten_memcpy_big;var Da=env._llvm_ceil_f32;var Ea=env._llvm_floor_f64;var Fa=env._llvm_trap;var Ga=env.flush_NO_FILESYSTEM;var Ha=_(0);const Ia=_(0);function Ja(newBuffer){if(q(newBuffer)&16777215||q(newBuffer)<=16777215||q(newBuffer)>2147483648)return false;b=new a(newBuffer);d=new c(newBuffer);f=new e(newBuffer);h=new g(newBuffer);j=new i(newBuffer);l=new k(newBuffer);n=new m(newBuffer);p=new o(newBuffer);buffer=newBuffer;return true} -// EMSCRIPTEN_START_FUNCS -function wc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;if(c>>>0>=262144){if((p|0)!=1048576)f[w>>2]=x+1048576}else Eg(n,262144-c|0);c=a+28|0;x=a+32|0;a=f[c>>2]|0;w=(f[x>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[x>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;x=w;w=(f[p>>2]|0)+w|0;if(w>>>0>262144){g=0;r=38;break}if(x>>>0<w>>>0){p=f[n>>2]|0;a=x;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==262144|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function xc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;if(c>>>0>=65536){if((p|0)!=262144)f[w>>2]=x+262144}else Eg(n,65536-c|0);c=a+28|0;x=a+32|0;a=f[c>>2]|0;w=(f[x>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[x>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;x=w;w=(f[p>>2]|0)+w|0;if(w>>>0>65536){g=0;r=38;break}if(x>>>0<w>>>0){p=f[n>>2]|0;a=x;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==65536|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function yc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;if(c>>>0>=32768){if((p|0)!=131072)f[w>>2]=x+131072}else Eg(n,32768-c|0);c=a+28|0;x=a+32|0;a=f[c>>2]|0;w=(f[x>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[x>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;x=w;w=(f[p>>2]|0)+w|0;if(w>>>0>32768){g=0;r=38;break}if(x>>>0<w>>>0){p=f[n>>2]|0;a=x;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==32768|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function zc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;if((b|0)<0)return;c=a+12|0;d=f[c>>2]|0;e=f[a+8>>2]|0;g=e;h=d;if(d-e>>2>>>0<=b>>>0)return;e=g+(b<<2)|0;d=f[(f[e>>2]|0)+56>>2]|0;i=f[(f[g+(b<<2)>>2]|0)+60>>2]|0;g=e+4|0;if((g|0)!=(h|0)){j=g;g=e;do{k=f[j>>2]|0;f[j>>2]=0;l=f[g>>2]|0;f[g>>2]=k;if(l|0){k=l+88|0;m=f[k>>2]|0;f[k>>2]=0;if(m|0){k=f[m+8>>2]|0;if(k|0){f[m+12>>2]=k;Ko(k)}Ko(m)}m=f[l+68>>2]|0;if(m|0){f[l+72>>2]=m;Ko(m)}m=l+64|0;k=f[m>>2]|0;f[m>>2]=0;if(k|0){m=f[k>>2]|0;if(m|0){f[k+4>>2]=m;Ko(m)}Ko(k)}Ko(l)}j=j+4|0;g=g+4|0}while((j|0)!=(h|0));j=f[c>>2]|0;if((j|0)==(g|0))n=g;else{o=g;p=j;q=19}}else{o=e;p=h;q=19}if((q|0)==19){q=p;do{q=q+-4|0;p=f[q>>2]|0;f[q>>2]=0;if(p|0){h=p+88|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0){h=f[e+8>>2]|0;if(h|0){f[e+12>>2]=h;Ko(h)}Ko(e)}e=f[p+68>>2]|0;if(e|0){f[p+72>>2]=e;Ko(e)}e=p+64|0;h=f[e>>2]|0;f[e>>2]=0;if(h|0){e=f[h>>2]|0;if(e|0){f[h+4>>2]=e;Ko(e)}Ko(h)}Ko(p)}}while((q|0)!=(o|0));n=o}f[c>>2]=n;n=f[a+4>>2]|0;if(n|0)hg(n,i);a:do if((d|0)<5){i=f[a+20+(d*12|0)>>2]|0;n=a+20+(d*12|0)+4|0;c=f[n>>2]|0;o=c;b:do if((i|0)==(c|0))r=i;else{q=i;while(1){if((f[q>>2]|0)==(b|0)){r=q;break b}q=q+4|0;if((q|0)==(c|0))break a}}while(0);if((r|0)!=(c|0)){i=r+4|0;q=o-i|0;if(q|0)Rj(r|0,i|0,q|0)|0;f[n>>2]=r+(q>>2<<2)}}while(0);r=f[a+24>>2]|0;d=f[a+20>>2]|0;q=d;if((r|0)!=(d|0)){i=r-d>>2;d=0;do{r=q+(d<<2)|0;p=f[r>>2]|0;if((p|0)>(b|0))f[r>>2]=p+-1;d=d+1|0}while(d>>>0<i>>>0)}i=f[a+36>>2]|0;d=f[a+32>>2]|0;q=d;if((i|0)!=(d|0)){p=i-d>>2;d=0;do{i=q+(d<<2)|0;r=f[i>>2]|0;if((r|0)>(b|0))f[i>>2]=r+-1;d=d+1|0}while(d>>>0<p>>>0)}p=f[a+48>>2]|0;d=f[a+44>>2]|0;q=d;if((p|0)!=(d|0)){r=p-d>>2;d=0;do{p=q+(d<<2)|0;i=f[p>>2]|0;if((i|0)>(b|0))f[p>>2]=i+-1;d=d+1|0}while(d>>>0<r>>>0)}r=f[a+60>>2]|0;d=f[a+56>>2]|0;q=d;if((r|0)!=(d|0)){i=r-d>>2;d=0;do{r=q+(d<<2)|0;p=f[r>>2]|0;if((p|0)>(b|0))f[r>>2]=p+-1;d=d+1|0}while(d>>>0<i>>>0)}i=f[a+72>>2]|0;d=f[a+68>>2]|0;a=d;if((i|0)==(d|0))return;q=i-d>>2;d=0;do{i=a+(d<<2)|0;p=f[i>>2]|0;if((p|0)>(b|0))f[i>>2]=p+-1;d=d+1|0}while(d>>>0<q>>>0);return}function Ac(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0;h=a+4|0;i=f[c>>2]|0;c=i;do if((i|0)!=(h|0)){j=i+16|0;k=b[j+11>>0]|0;l=k<<24>>24<0;m=l?f[i+20>>2]|0:k&255;k=b[g+11>>0]|0;n=k<<24>>24<0;o=n?f[g+4>>2]|0:k&255;k=m>>>0<o>>>0;p=k?m:o;q=(p|0)==0;if(!q?(r=n?f[g>>2]|0:g,s=l?f[j>>2]|0:j,t=Fi(r,s,p)|0,(t|0)!=0):0)if((t|0)<0)break;else{u=s;v=r;w=23}else{if(o>>>0<m>>>0)break;if(q)w=24;else{u=l?f[j>>2]|0:j;v=n?f[g>>2]|0:g;w=23}}if((w|0)==23){j=Fi(u,v,p)|0;if(j){if((j|0)>=0)w=42}else w=24}if((w|0)==24?!k:0)w=42;if((w|0)==42){f[d>>2]=c;f[e>>2]=c;x=e;return x|0}k=f[i+4>>2]|0;if(!k){j=i+8|0;p=f[j>>2]|0;if((f[p>>2]|0)==(i|0))y=p;else{p=j;do{j=f[p>>2]|0;p=j+8|0;l=f[p>>2]|0}while((f[l>>2]|0)!=(j|0));y=l}}else{p=k;while(1){l=f[p>>2]|0;if(!l)break;else p=l}y=p}do if((y|0)!=(h|0)){k=y+16|0;l=b[k+11>>0]|0;j=l<<24>>24<0;q=j?f[y+20>>2]|0:l&255;l=q>>>0<o>>>0?q:o;if((l|0)!=0?(m=Fi(n?f[g>>2]|0:g,j?f[k>>2]|0:k,l)|0,(m|0)!=0):0){if((m|0)<0)break}else w=36;if((w|0)==36?o>>>0<q>>>0:0)break;x=Le(a,d,g)|0;return x|0}while(0);if(!(f[i+4>>2]|0)){f[d>>2]=c;x=i+4|0;return x|0}else{f[d>>2]=y;x=y;return x|0}}while(0);y=f[i>>2]|0;do if((f[a>>2]|0)==(i|0))z=c;else{if(!y){h=i;do{e=h;h=f[h+8>>2]|0}while((f[h>>2]|0)==(e|0));A=h}else{e=y;while(1){v=f[e+4>>2]|0;if(!v){A=e;break}else e=v}}e=A;h=A+16|0;v=b[g+11>>0]|0;u=v<<24>>24<0;o=u?f[g+4>>2]|0:v&255;v=b[h+11>>0]|0;n=v<<24>>24<0;p=n?f[A+20>>2]|0:v&255;v=o>>>0<p>>>0?o:p;if((v|0)!=0?(q=Fi(n?f[h>>2]|0:h,u?f[g>>2]|0:g,v)|0,(q|0)!=0):0){if((q|0)<0){z=e;break}}else w=15;if((w|0)==15?p>>>0<o>>>0:0){z=e;break}x=Le(a,d,g)|0;return x|0}while(0);if(!y){f[d>>2]=i;x=i;return x|0}else{f[d>>2]=z;x=z+4|0;return x|0}return 0}function Bc(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;i=u;u=u+32|0;j=i+12|0;k=i;f[c+40>>2]=e;e=c+32|0;f[e>>2]=g;f[c+4>>2]=h;fc(a,g,j);if(f[a>>2]|0){u=i;return}g=a+4|0;h=g+11|0;if((b[h>>0]|0)<0)Ko(f[g>>2]|0);l=b[j+7>>0]|0;if((Ka[f[(f[c>>2]|0)+8>>2]&127](c)|0)!=(l&255|0)){m=wk(64)|0;f[k>>2]=m;f[k+8>>2]=-2147483584;f[k+4>>2]=50;n=m;o=13186;p=n+50|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[m+50>>0]=0;f[a>>2]=-1;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}m=b[j+5>>0]|0;b[c+36>>0]=m;q=b[j+6>>0]|0;b[c+37>>0]=q;if((m+-1&255)>1){r=wk(32)|0;f[k>>2]=r;f[k+8>>2]=-2147483616;f[k+4>>2]=22;n=r;o=13237;p=n+22|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[r+22>>0]=0;f[a>>2]=-5;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}r=q&255;if(m<<24>>24==2&(l<<24>>24==0?3:2)>>>0<r>>>0){l=wk(32)|0;f[k>>2]=l;f[k+8>>2]=-2147483616;f[k+4>>2]=22;n=l;o=13260;p=n+22|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[l+22>>0]=0;f[a>>2]=-5;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}l=((m&255)<<8|r)&65535;d[(f[e>>2]|0)+38>>1]=l;if((l&65535)>258?(d[j+10>>1]|0)<0:0){Od(a,c);if(f[a>>2]|0){u=i;return}if((b[h>>0]|0)<0)Ko(f[g>>2]|0)}if(!(Ka[f[(f[c>>2]|0)+12>>2]&127](c)|0)){h=wk(48)|0;f[k>>2]=h;f[k+8>>2]=-2147483600;f[k+4>>2]=33;n=h;o=13283;p=n+33|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[h+33>>0]=0;f[a>>2]=-1;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}if(!(Ka[f[(f[c>>2]|0)+20>>2]&127](c)|0)){h=wk(32)|0;f[k>>2]=h;f[k+8>>2]=-2147483616;f[k+4>>2]=31;n=h;o=13317;p=n+31|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[h+31>>0]=0;f[a>>2]=-1;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}if(Ka[f[(f[c>>2]|0)+24>>2]&127](c)|0){f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=i;return}c=wk(48)|0;f[k>>2]=c;f[k+8>>2]=-2147483600;f[k+4>>2]=34;n=c;o=13349;p=n+34|0;do{b[n>>0]=b[o>>0]|0;n=n+1|0;o=o+1|0}while((n|0)<(p|0));b[c+34>>0]=0;f[a>>2]=-1;Yi(g,k);if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);u=i;return}function Cc(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0;e=b+12|0;g=f[e>>2]|0;h=(f[c>>2]|0)-g|0;i=c+4|0;j=(f[i>>2]|0)-g|0;k=c;f[k>>2]=h;f[k+4>>2]=j;k=(h|0)>-1;l=(j|0)>-1;m=f[e>>2]|0;n=((l?j:0-j|0)+(k?h:0-h|0)|0)<=(m|0);if(n){o=h;p=j}else{if(k)if(!l)if((h|0)<1){q=-1;r=-1}else s=6;else{q=1;r=1}else if((j|0)<1){q=-1;r=-1}else s=6;if((s|0)==6){q=(h|0)>0?1:-1;r=(j|0)>0?1:-1}l=W(q,m)|0;k=W(r,m)|0;m=(h<<1)-l|0;f[c>>2]=m;h=(j<<1)-k|0;f[i>>2]=h;if((W(q,r)|0)>-1){r=0-h|0;f[c>>2]=r;t=r;u=0-m|0}else{f[c>>2]=h;t=h;u=m}m=(t+l|0)/2|0;f[c>>2]=m;l=(u+k|0)/2|0;f[i>>2]=l;o=m;p=l}if(!o)if(!p){v=1;w=o;x=p;y=0}else{z=(p|0)>0?3:1;s=14}else{l=(p|0)<1;m=(o|0)>0?(p>>31)+2|0:l?0:3;if((o|0)<0&l){v=1;w=o;x=p;y=m}else{z=m;s=14}}if((s|0)==14){switch(z|0){case 1:{A=p;B=0-o|0;break}case 2:{A=0-o|0;B=0-p|0;break}case 3:{A=0-p|0;B=o;break}default:{A=o;B=p}}p=c;f[p>>2]=A;f[p+4>>2]=B;v=0;w=A;x=B;y=z}z=(f[d>>2]|0)+w|0;f[a>>2]=z;w=(f[d+4>>2]|0)+x|0;x=a+4|0;f[x>>2]=w;d=f[e>>2]|0;if((d|0)>=(z|0))if((z|0)<(0-d|0))C=(f[b+4>>2]|0)+z|0;else C=z;else C=z-(f[b+4>>2]|0)|0;f[a>>2]=C;if((d|0)>=(w|0))if((w|0)<(0-d|0))D=(f[b+4>>2]|0)+w|0;else D=w;else D=w-(f[b+4>>2]|0)|0;f[x>>2]=D;if(v){E=D;F=C}else{switch((4-y|0)%4|0|0){case 1:{G=D;H=0-C|0;break}case 2:{G=0-C|0;H=0-D|0;break}case 3:{G=0-D|0;H=C;break}default:{G=C;H=D}}D=a;f[D>>2]=G;f[D+4>>2]=H;E=H;F=G}if(n){I=F;J=E;K=I+g|0;L=J+g|0;M=a;N=M;f[N>>2]=K;O=M+4|0;P=O;f[P>>2]=L;return}if((F|0)>-1)if((E|0)<=-1)if((F|0)<1){Q=-1;R=-1}else s=38;else{Q=1;R=1}else if((E|0)<1){Q=-1;R=-1}else s=38;if((s|0)==38){Q=(F|0)>0?1:-1;R=(E|0)>0?1:-1}s=W(Q,d)|0;n=W(R,d)|0;d=(F<<1)-s|0;f[a>>2]=d;F=(E<<1)-n|0;f[x>>2]=F;if((W(Q,R)|0)>-1){R=0-F|0;f[a>>2]=R;S=R;T=0-d|0}else{f[a>>2]=F;S=F;T=d}d=(S+s|0)/2|0;f[a>>2]=d;s=(T+n|0)/2|0;f[x>>2]=s;I=d;J=s;K=I+g|0;L=J+g|0;M=a;N=M;f[N>>2]=K;O=M+4|0;P=O;f[P>>2]=L;return}function Dc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;c=i;e=i;while(1){j=W(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;c=(W(j>>>24^j,1540483477)|0)^(W(c,1540483477)|0);e=e+-4|0;if(e>>>0<=3)break;else d=d+4|0}d=i+-4|0;e=d&-4;k=d-e|0;l=g+(e+4)|0;m=c}else{k=i;l=g;m=i}switch(k|0){case 3:{n=h[l+2>>0]<<16^m;o=7;break}case 2:{n=m;o=7;break}case 1:{p=m;o=8;break}default:q=m}if((o|0)==7){p=h[l+1>>0]<<8^n;o=8}if((o|0)==8)q=W(p^h[l>>0],1540483477)|0;l=W(q>>>13^q,1540483477)|0;q=l>>>15^l;l=f[a+4>>2]|0;if(!l){r=0;return r|0}p=l+-1|0;n=(p&l|0)==0;if(!n)if(q>>>0<l>>>0)s=q;else s=(q>>>0)%(l>>>0)|0;else s=q&p;m=f[(f[a>>2]|0)+(s<<2)>>2]|0;if(!m){r=0;return r|0}a=f[m>>2]|0;if(!a){r=0;return r|0}m=(i|0)==0;if(n){n=a;a:while(1){k=f[n+4>>2]|0;c=(q|0)==(k|0);if(!(c|(k&p|0)==(s|0))){r=0;o=45;break}do if(c?(k=n+8|0,e=b[k+11>>0]|0,d=e<<24>>24<0,j=e&255,((d?f[n+12>>2]|0:j)|0)==(i|0)):0){e=f[k>>2]|0;t=d?e:k;u=e&255;if(d){if(m){r=n;o=45;break a}if(!(Fi(t,g,i)|0)){r=n;o=45;break a}else break}if(m){r=n;o=45;break a}if((b[g>>0]|0)==u<<24>>24){u=k;k=j;j=g;do{k=k+-1|0;u=u+1|0;if(!k){r=n;o=45;break a}j=j+1|0}while((b[u>>0]|0)==(b[j>>0]|0))}}while(0);n=f[n>>2]|0;if(!n){r=0;o=45;break}}if((o|0)==45)return r|0}n=a;b:while(1){a=f[n+4>>2]|0;do if((q|0)==(a|0)){p=n+8|0;c=b[p+11>>0]|0;j=c<<24>>24<0;u=c&255;if(((j?f[n+12>>2]|0:u)|0)==(i|0)){c=f[p>>2]|0;k=j?c:p;t=c&255;if(j){if(m){r=n;o=45;break b}if(!(Fi(k,g,i)|0)){r=n;o=45;break b}else break}if(m){r=n;o=45;break b}if((b[g>>0]|0)==t<<24>>24){t=p;p=u;u=g;do{p=p+-1|0;t=t+1|0;if(!p){r=n;o=45;break b}u=u+1|0}while((b[t>>0]|0)==(b[u>>0]|0))}}}else{if(a>>>0<l>>>0)v=a;else v=(a>>>0)%(l>>>0)|0;if((v|0)!=(s|0)){r=0;o=45;break b}}while(0);n=f[n>>2]|0;if(!n){r=0;o=45;break}}if((o|0)==45)return r|0;return 0}function Ec(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;c=i;e=i;while(1){j=W(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;c=(W(j>>>24^j,1540483477)|0)^(W(c,1540483477)|0);e=e+-4|0;if(e>>>0<=3)break;else d=d+4|0}d=i+-4|0;e=d&-4;k=d-e|0;l=g+(e+4)|0;m=c}else{k=i;l=g;m=i}switch(k|0){case 3:{n=h[l+2>>0]<<16^m;o=7;break}case 2:{n=m;o=7;break}case 1:{p=m;o=8;break}default:q=m}if((o|0)==7){p=h[l+1>>0]<<8^n;o=8}if((o|0)==8)q=W(p^h[l>>0],1540483477)|0;l=W(q>>>13^q,1540483477)|0;q=l>>>15^l;l=f[a+4>>2]|0;if(!l){r=0;return r|0}p=l+-1|0;n=(p&l|0)==0;if(!n)if(q>>>0<l>>>0)s=q;else s=(q>>>0)%(l>>>0)|0;else s=q&p;m=f[(f[a>>2]|0)+(s<<2)>>2]|0;if(!m){r=0;return r|0}a=f[m>>2]|0;if(!a){r=0;return r|0}m=(i|0)==0;if(n){n=a;a:while(1){k=f[n+4>>2]|0;c=(k|0)==(q|0);if(!(c|(k&p|0)==(s|0))){r=0;o=45;break}do if(c?(k=n+8|0,e=b[k+11>>0]|0,d=e<<24>>24<0,j=e&255,((d?f[n+12>>2]|0:j)|0)==(i|0)):0){e=f[k>>2]|0;t=d?e:k;u=e&255;if(d){if(m){r=n;o=45;break a}if(!(Fi(t,g,i)|0)){r=n;o=45;break a}else break}if(m){r=n;o=45;break a}if((b[g>>0]|0)==u<<24>>24){u=k;k=j;j=g;do{k=k+-1|0;u=u+1|0;if(!k){r=n;o=45;break a}j=j+1|0}while((b[u>>0]|0)==(b[j>>0]|0))}}while(0);n=f[n>>2]|0;if(!n){r=0;o=45;break}}if((o|0)==45)return r|0}n=a;b:while(1){a=f[n+4>>2]|0;do if((a|0)==(q|0)){p=n+8|0;c=b[p+11>>0]|0;j=c<<24>>24<0;u=c&255;if(((j?f[n+12>>2]|0:u)|0)==(i|0)){c=f[p>>2]|0;k=j?c:p;t=c&255;if(j){if(m){r=n;o=45;break b}if(!(Fi(k,g,i)|0)){r=n;o=45;break b}else break}if(m){r=n;o=45;break b}if((b[g>>0]|0)==t<<24>>24){t=p;p=u;u=g;do{p=p+-1|0;t=t+1|0;if(!p){r=n;o=45;break b}u=u+1|0}while((b[t>>0]|0)==(b[u>>0]|0))}}}else{if(a>>>0<l>>>0)v=a;else v=(a>>>0)%(l>>>0)|0;if((v|0)!=(s|0)){r=0;o=45;break b}}while(0);n=f[n>>2]|0;if(!n){r=0;o=45;break}}if((o|0)==45)return r|0;return 0}function Fc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;c=u;u=u+48|0;d=c+32|0;e=c+28|0;g=c+16|0;h=c;i=a+16|0;j=f[i>>2]|0;if(j|0){k=f[b>>2]|0;l=i;m=j;do{j=(f[m+16>>2]|0)<(k|0);l=j?l:m;m=f[(j?m+4|0:m)>>2]|0}while((m|0)!=0);if((l|0)!=(i|0)?(k|0)>=(f[l+16>>2]|0):0){n=l;o=n+20|0;u=c;return o|0}}mn(g);f[h>>2]=f[b>>2];b=h+4|0;f[h+8>>2]=0;l=h+12|0;f[l>>2]=0;k=h+8|0;f[b>>2]=k;m=f[g>>2]|0;j=g+4|0;if((m|0)!=(j|0)){p=k;q=m;while(1){m=q+16|0;f[e>>2]=p;f[d>>2]=f[e>>2];Ff(b,d,m,m)|0;m=f[q+4>>2]|0;if(!m){r=q+8|0;s=f[r>>2]|0;if((f[s>>2]|0)==(q|0))t=s;else{s=r;do{r=f[s>>2]|0;s=r+8|0;v=f[s>>2]|0}while((f[v>>2]|0)!=(r|0));t=v}}else{s=m;while(1){v=f[s>>2]|0;if(!v)break;else s=v}t=s}if((t|0)==(j|0))break;else q=t}}t=a+12|0;q=f[i>>2]|0;do if(q){d=f[h>>2]|0;e=a+16|0;p=q;while(1){m=f[p+16>>2]|0;if((d|0)<(m|0)){v=f[p>>2]|0;if(!v){w=21;break}else{x=p;y=v}}else{if((m|0)>=(d|0)){w=25;break}z=p+4|0;m=f[z>>2]|0;if(!m){w=24;break}else{x=z;y=m}}e=x;p=y}if((w|0)==21){A=p;B=p;break}else if((w|0)==24){A=p;B=z;break}else if((w|0)==25){A=p;B=e;break}}else{A=i;B=i}while(0);i=f[B>>2]|0;if(!i){w=wk(32)|0;f[w+16>>2]=f[h>>2];z=w+20|0;f[z>>2]=f[b>>2];y=w+24|0;x=f[h+8>>2]|0;f[y>>2]=x;q=f[l>>2]|0;f[w+28>>2]=q;if(!q)f[z>>2]=y;else{f[x+8>>2]=y;f[b>>2]=k;f[k>>2]=0;f[l>>2]=0}f[w>>2]=0;f[w+4>>2]=0;f[w+8>>2]=A;f[B>>2]=w;A=f[f[t>>2]>>2]|0;if(!A)C=w;else{f[t>>2]=A;C=f[B>>2]|0}vd(f[a+16>>2]|0,C);C=a+20|0;f[C>>2]=(f[C>>2]|0)+1;D=w}else D=i;Bh(h+4|0,f[k>>2]|0);Bh(g,f[j>>2]|0);n=D;o=n+20|0;u=c;return o|0}function Gc(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;g=a;h=b;i=h;j=c;k=d;l=k;if(!i){m=(e|0)!=0;if(!l){if(m){f[e>>2]=(g>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(g>>>0)/(j>>>0)>>>0;return (H=n,o)|0}else{if(!m){n=0;o=0;return (H=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=b&0;n=0;o=0;return (H=n,o)|0}}m=(l|0)==0;do if(j){if(!m){p=(Z(l|0)|0)-(Z(i|0)|0)|0;if(p>>>0<=31){q=p+1|0;r=31-p|0;s=p-31>>31;t=q;u=g>>>(q>>>0)&s|i<<r;v=i>>>(q>>>0)&s;w=0;x=g<<r;break}if(!e){n=0;o=0;return (H=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (H=n,o)|0}r=j-1|0;if(r&j|0){s=(Z(j|0)|0)+33-(Z(i|0)|0)|0;q=64-s|0;p=32-s|0;y=p>>31;z=s-32|0;A=z>>31;t=s;u=p-1>>31&i>>>(z>>>0)|(i<<p|g>>>(s>>>0))&A;v=A&i>>>(s>>>0);w=g<<q&y;x=(i<<q|g>>>(z>>>0))&y|g<<p&s-33>>31;break}if(e|0){f[e>>2]=r&g;f[e+4>>2]=0}if((j|0)==1){n=h|b&0;o=a|0|0;return (H=n,o)|0}else{r=Wn(j|0)|0;n=i>>>(r>>>0)|0;o=i<<32-r|g>>>(r>>>0)|0;return (H=n,o)|0}}else{if(m){if(e|0){f[e>>2]=(i>>>0)%(j>>>0);f[e+4>>2]=0}n=0;o=(i>>>0)/(j>>>0)>>>0;return (H=n,o)|0}if(!g){if(e|0){f[e>>2]=0;f[e+4>>2]=(i>>>0)%(l>>>0)}n=0;o=(i>>>0)/(l>>>0)>>>0;return (H=n,o)|0}r=l-1|0;if(!(r&l)){if(e|0){f[e>>2]=a|0;f[e+4>>2]=r&i|b&0}n=0;o=i>>>((Wn(l|0)|0)>>>0);return (H=n,o)|0}r=(Z(l|0)|0)-(Z(i|0)|0)|0;if(r>>>0<=30){s=r+1|0;p=31-r|0;t=s;u=i<<p|g>>>(s>>>0);v=i>>>(s>>>0);w=0;x=g<<p;break}if(!e){n=0;o=0;return (H=n,o)|0}f[e>>2]=a|0;f[e+4>>2]=h|b&0;n=0;o=0;return (H=n,o)|0}while(0);if(!t){B=x;C=w;D=v;E=u;F=0;G=0}else{b=c|0|0;c=k|d&0;d=vl(b|0,c|0,-1,-1)|0;k=H;h=x;x=w;w=v;v=u;u=t;t=0;do{a=h;h=x>>>31|h<<1;x=t|x<<1;g=v<<1|a>>>31|0;a=v>>>31|w<<1|0;wl(d|0,k|0,g|0,a|0)|0;i=H;l=i>>31|((i|0)<0?-1:0)<<1;t=l&1;v=wl(g|0,a|0,l&b|0,(((i|0)<0?-1:0)>>31|((i|0)<0?-1:0)<<1)&c|0)|0;w=H;u=u-1|0}while((u|0)!=0);B=h;C=x;D=w;E=v;F=0;G=t}t=C;C=0;if(e|0){f[e>>2]=E;f[e+4>>2]=D}n=(t|0)>>>31|(B|C)<<1|(C<<1|t>>>31)&0|F;o=(t<<1|0>>>31)&-2|G;return (H=n,o)|0}function Hc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=a+4|0;if(!c){e=f[a>>2]|0;f[a>>2]=0;if(e|0)Ko(e);f[d>>2]=0;return}if(c>>>0>1073741823){e=qa(8)|0;Dm(e,13552);f[e>>2]=4908;ta(e|0,1128,105)}e=wk(c<<2)|0;g=f[a>>2]|0;f[a>>2]=e;if(g|0)Ko(g);f[d>>2]=c;d=0;do{f[(f[a>>2]|0)+(d<<2)>>2]=0;d=d+1|0}while((d|0)!=(c|0));d=a+8|0;g=f[d>>2]|0;if(!g)return;e=f[g+4>>2]|0;h=c+-1|0;i=(h&c|0)==0;if(!i)if(e>>>0<c>>>0)j=e;else j=(e>>>0)%(c>>>0)|0;else j=e&h;f[(f[a>>2]|0)+(j<<2)>>2]=d;d=f[g>>2]|0;if(!d)return;e=j;j=d;d=g;while(1){g=f[j+4>>2]|0;if(!i)if(g>>>0<c>>>0)k=g;else k=(g>>>0)%(c>>>0)|0;else k=g&h;do if((k|0)==(e|0)){l=e;m=j}else{g=(f[a>>2]|0)+(k<<2)|0;if(!(f[g>>2]|0)){f[g>>2]=d;l=k;m=j;break}g=f[j>>2]|0;a:do if(!g)n=j;else{o=j+8|0;p=b[o+11>>0]|0;q=p<<24>>24<0;r=p&255;p=q?f[j+12>>2]|0:r;s=(p|0)==0;if(q){q=j;t=g;while(1){u=t+8|0;v=b[u+11>>0]|0;w=v<<24>>24<0;if((p|0)!=((w?f[t+12>>2]|0:v&255)|0)){n=q;break a}if(!s?Fi(f[o>>2]|0,w?f[u>>2]|0:u,p)|0:0){n=q;break a}u=f[t>>2]|0;if(!u){n=t;break a}else{w=t;t=u;q=w}}}if(s){q=j;t=g;while(1){w=b[t+8+11>>0]|0;if((w<<24>>24<0?f[t+12>>2]|0:w&255)|0){n=q;break a}w=f[t>>2]|0;if(!w){n=t;break a}else{u=t;t=w;q=u}}}q=j;t=g;while(1){s=t+8|0;u=b[s+11>>0]|0;w=u<<24>>24<0;if((p|0)!=((w?f[t+12>>2]|0:u&255)|0)){n=q;break a}u=w?f[s>>2]|0:s;if((b[u>>0]|0)!=(f[o>>2]&255)<<24>>24){n=q;break a}s=o;w=r;v=u;while(1){w=w+-1|0;s=s+1|0;if(!w)break;v=v+1|0;if((b[s>>0]|0)!=(b[v>>0]|0)){n=q;break a}}v=f[t>>2]|0;if(!v){n=t;break}else{s=t;t=v;q=s}}}while(0);f[d>>2]=f[n>>2];f[n>>2]=f[f[(f[a>>2]|0)+(k<<2)>>2]>>2];f[f[(f[a>>2]|0)+(k<<2)>>2]>>2]=j;l=e;m=d}while(0);j=f[m>>2]|0;if(!j)break;else{e=l;d=m}}return}function Ic(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;c=u;u=u+16|0;d=c;e=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;if((e|0)<=0){g=1;u=c;return g|0}h=a+36|0;i=a+48|0;j=d+8|0;k=d+4|0;l=d+11|0;m=0;while(1){n=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+40|0;if((f[n>>2]|0)!=0?(n=f[(f[h>>2]|0)+(m<<2)>>2]|0,o=f[n+8>>2]|0,p=Nf(n)|0,(p|0)!=0):0){n=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+40|0;q=f[n>>2]|0;n=f[o+56>>2]|0;o=wk(32)|0;f[d>>2]=o;f[j>>2]=-2147483616;f[k>>2]=24;r=o;s=11931;t=r+24|0;do{b[r>>0]=b[s>>0]|0;r=r+1|0;s=s+1|0}while((r|0)<(t|0));b[o+24>>0]=0;s=q+16|0;r=f[s>>2]|0;a:do if(r){t=s;v=r;do{w=(f[v+16>>2]|0)<(n|0);t=w?t:v;v=f[(w?v+4|0:v)>>2]|0}while((v|0)!=0);if(((t|0)!=(s|0)?(n|0)>=(f[t+16>>2]|0):0)?(v=t+20|0,w=f[t+24>>2]|0,(w|0)!=0):0){x=w;while(1){w=x+16|0;y=b[w+11>>0]|0;z=y<<24>>24<0;A=z?f[x+20>>2]|0:y&255;y=A>>>0<24;B=y?A:24;C=(B|0)==0;if(!C?(D=z?f[w>>2]|0:w,E=Fi(o,D,B)|0,(E|0)!=0):0)if((E|0)<0)F=16;else{G=D;F=19}else if(A>>>0<=24)if(C)F=20;else{G=z?f[w>>2]|0:w;F=19}else F=16;if((F|0)==16){F=0;H=x}else if((F|0)==19){F=0;w=Fi(G,o,B)|0;if(w)if((w|0)<0)F=22;else break;else F=20}if((F|0)==20){F=0;if(y)F=22;else break}if((F|0)==22){F=0;H=x+4|0}x=f[H>>2]|0;if(!x){F=25;break a}}I=ci(v,d,0)|0}else F=25}else F=25;while(0);if((F|0)==25){F=0;I=ci(q,d,0)|0}if((b[l>>0]|0)<0)Ko(f[d>>2]|0);if(I)ge(f[(f[(f[h>>2]|0)+(m<<2)>>2]|0)+8>>2]|0,p);else F=30}else F=30;if((F|0)==30?(F=0,o=f[(f[h>>2]|0)+(m<<2)>>2]|0,!(La[f[(f[o>>2]|0)+24>>2]&127](o,i)|0)):0){g=0;F=32;break}m=m+1|0;if((m|0)>=(e|0)){g=1;F=32;break}}if((F|0)==32){u=c;return g|0}return 0}function Jc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;g=u;u=u+64|0;i=g;j=i;k=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(k|0));a:do if(uc(i,d)|0?ad(i,d)|0:0){j=(a|0)==0;if(!j){if(!(f[i+12>>2]|0)){l=0;break}vf(d,0,0)|0;if(!j){j=i+44|0;k=i+48|0;m=i+40|0;n=i+16|0;o=i+28|0;p=(c|0)>0;q=d+36|0;r=d+32|0;s=d+24|0;t=d+28|0;v=0;w=0;x=f[k>>2]|0;while(1){b:do if(x>>>0<16384){y=f[j>>2]|0;z=x;while(1){if((y|0)<=0){A=z;break b}B=f[m>>2]|0;y=y+-1|0;f[j>>2]=y;C=z<<8|h[B+y>>0];f[k>>2]=C;if(C>>>0>=16384){A=C;break}else z=C}}else A=x;while(0);z=A&4095;y=f[(f[n>>2]|0)+(z<<2)>>2]|0;C=f[o>>2]|0;x=(W(f[C+(y<<3)>>2]|0,A>>>12)|0)+z-(f[C+(y<<3)+4>>2]|0)|0;f[k>>2]=x;c:do if(p){C=(b[q>>0]|0)==0;if((y|0)<=0){z=0;B=w;while(1){if(C){l=0;break a}D=B+1|0;f[e+(B<<2)>>2]=0;z=z+1|0;if((z|0)>=(c|0)){E=D;break c}else B=D}}B=0;z=w;while(1){if(C){l=0;break a}D=f[s>>2]|0;F=f[t>>2]|0;G=0;H=0;I=f[r>>2]|0;while(1){J=D+(I>>>3)|0;if(J>>>0<F>>>0){K=(h[J>>0]|0)>>>(I&7)&1;J=I+1|0;f[r>>2]=J;L=K;M=J}else{L=0;M=I}G=L<<H|G;H=H+1|0;if((H|0)==(y|0))break;else I=M}I=z+1|0;f[e+(z<<2)>>2]=G;B=B+1|0;if((B|0)>=(c|0)){E=I;break}else z=I}}else E=w;while(0);v=v+c|0;if(v>>>0>=a>>>0)break;else w=E}}}else vf(d,0,0)|0;Cj(d);l=1}else l=0;while(0);d=f[i+28>>2]|0;if(d|0){f[i+32>>2]=d;Ko(d)}d=f[i+16>>2]|0;if(d|0){f[i+20>>2]=d;Ko(d)}d=f[i>>2]|0;if(!d){u=g;return l|0}f[i+4>>2]=d;Ko(d);u=g;return l|0}function Kc(a,b){a=a|0;b=b|0;var c=0;if(!(rd(a,b)|0)){c=0;return c|0}if(!(rd(a+16|0,b)|0)){c=0;return c|0}if(!(rd(a+32|0,b)|0)){c=0;return c|0}if(!(rd(a+48|0,b)|0)){c=0;return c|0}if(!(rd(a+64|0,b)|0)){c=0;return c|0}if(!(rd(a+80|0,b)|0)){c=0;return c|0}if(!(rd(a+96|0,b)|0)){c=0;return c|0}if(!(rd(a+112|0,b)|0)){c=0;return c|0}if(!(rd(a+128|0,b)|0)){c=0;return c|0}if(!(rd(a+144|0,b)|0)){c=0;return c|0}if(!(rd(a+160|0,b)|0)){c=0;return c|0}if(!(rd(a+176|0,b)|0)){c=0;return c|0}if(!(rd(a+192|0,b)|0)){c=0;return c|0}if(!(rd(a+208|0,b)|0)){c=0;return c|0}if(!(rd(a+224|0,b)|0)){c=0;return c|0}if(!(rd(a+240|0,b)|0)){c=0;return c|0}if(!(rd(a+256|0,b)|0)){c=0;return c|0}if(!(rd(a+272|0,b)|0)){c=0;return c|0}if(!(rd(a+288|0,b)|0)){c=0;return c|0}if(!(rd(a+304|0,b)|0)){c=0;return c|0}if(!(rd(a+320|0,b)|0)){c=0;return c|0}if(!(rd(a+336|0,b)|0)){c=0;return c|0}if(!(rd(a+352|0,b)|0)){c=0;return c|0}if(!(rd(a+368|0,b)|0)){c=0;return c|0}if(!(rd(a+384|0,b)|0)){c=0;return c|0}if(!(rd(a+400|0,b)|0)){c=0;return c|0}if(!(rd(a+416|0,b)|0)){c=0;return c|0}if(!(rd(a+432|0,b)|0)){c=0;return c|0}if(!(rd(a+448|0,b)|0)){c=0;return c|0}if(!(rd(a+464|0,b)|0)){c=0;return c|0}if(!(rd(a+480|0,b)|0)){c=0;return c|0}if(!(rd(a+496|0,b)|0)){c=0;return c|0}c=rd(a+512|0,b)|0;return c|0}function Lc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;g=a+8|0;f[g>>2]=e;h=a+32|0;i=a+36|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;if(k>>>0>=e>>>0){if(k>>>0>e>>>0)f[i>>2]=j+(e<<2)}else Eg(h,e-k|0);k=e>>>0>1073741823?-1:e<<2;h=Ho(k)|0;oh(h|0,0,k|0)|0;k=f[g>>2]|0;if((k|0)>0){j=a+16|0;i=a+32|0;l=a+12|0;m=0;do{n=f[h+(m<<2)>>2]|0;o=f[j>>2]|0;do if((n|0)<=(o|0)){p=f[l>>2]|0;q=f[i>>2]|0;r=q+(m<<2)|0;if((n|0)<(p|0)){f[r>>2]=p;s=q;break}else{f[r>>2]=n;s=q;break}}else{q=f[i>>2]|0;f[q+(m<<2)>>2]=o;s=q}while(0);m=m+1|0;t=f[g>>2]|0}while((m|0)<(t|0));if((t|0)>0){m=a+20|0;i=0;do{o=(f[b+(i<<2)>>2]|0)+(f[s+(i<<2)>>2]|0)|0;n=c+(i<<2)|0;f[n>>2]=o;if((o|0)<=(f[j>>2]|0)){if((o|0)<(f[l>>2]|0)){u=(f[m>>2]|0)+o|0;v=19}}else{u=o-(f[m>>2]|0)|0;v=19}if((v|0)==19){v=0;f[n>>2]=u}i=i+1|0;n=f[g>>2]|0}while((i|0)<(n|0));w=n}else w=t}else w=k;if((e|0)>=(d|0)){Io(h);return 1}k=0-e|0;t=a+16|0;i=a+32|0;u=a+12|0;m=a+20|0;a=e;l=w;while(1){w=c+(a<<2)|0;j=w+(k<<2)|0;s=b+(a<<2)|0;if((l|0)>0){n=0;do{o=f[j+(n<<2)>>2]|0;q=f[t>>2]|0;do if((o|0)<=(q|0)){r=f[u>>2]|0;p=f[i>>2]|0;x=p+(n<<2)|0;if((o|0)<(r|0)){f[x>>2]=r;y=p;break}else{f[x>>2]=o;y=p;break}}else{p=f[i>>2]|0;f[p+(n<<2)>>2]=q;y=p}while(0);n=n+1|0;z=f[g>>2]|0}while((n|0)<(z|0));if((z|0)>0){n=0;do{j=(f[s+(n<<2)>>2]|0)+(f[y+(n<<2)>>2]|0)|0;q=w+(n<<2)|0;f[q>>2]=j;if((j|0)<=(f[t>>2]|0)){if((j|0)<(f[u>>2]|0)){A=(f[m>>2]|0)+j|0;v=38}}else{A=j-(f[m>>2]|0)|0;v=38}if((v|0)==38){v=0;f[q>>2]=A}n=n+1|0;q=f[g>>2]|0}while((n|0)<(q|0));B=q}else B=z}else B=l;a=a+e|0;if((a|0)>=(d|0))break;else l=B}Io(h);return 1}function Mc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;d=u;u=u+32|0;e=d+24|0;g=d+20|0;h=d+8|0;i=d+4|0;j=d;f[e>>2]=0;zh(e,f[a>>2]|0)|0;a:do if(f[e>>2]|0){k=0;while(1){k=k+1|0;if(!(bd(a,c)|0)){l=0;break}if(k>>>0>=(f[e>>2]|0)>>>0)break a}u=d;return l|0}while(0);f[g>>2]=0;zh(g,f[a>>2]|0)|0;b:do if(!(f[g>>2]|0))m=1;else{e=h+11|0;k=0;while(1){f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;n=f[a>>2]|0;o=n+8|0;p=f[o+4>>2]|0;q=n+16|0;r=q;s=f[r>>2]|0;t=f[r+4>>2]|0;do if((p|0)>(t|0)|((p|0)==(t|0)?(f[o>>2]|0)>>>0>s>>>0:0)){r=b[(f[n>>2]|0)+s>>0]|0;v=vl(s|0,t|0,1,0)|0;w=q;f[w>>2]=v;f[w+4>>2]=H;w=r&255;Gh(h,w,0);if(r<<24>>24){v=f[a>>2]|0;x=gj(h,0)|0;y=v+8|0;z=f[y>>2]|0;A=f[y+4>>2]|0;y=v+16|0;B=y;C=f[B>>2]|0;D=r&255;r=vl(C|0,f[B+4>>2]|0,D|0,0)|0;B=H;if((A|0)<(B|0)|(A|0)==(B|0)&z>>>0<r>>>0){E=1;break}Bf(x|0,(f[v>>2]|0)+C|0,w|0)|0;w=y;C=vl(f[w>>2]|0,f[w+4>>2]|0,D|0,0)|0;D=y;f[D>>2]=C;f[D+4>>2]=H}D=wk(40)|0;f[D>>2]=0;f[D+4>>2]=0;f[D+8>>2]=0;f[D+12>>2]=0;f[D+16>>2]=1065353216;C=D+20|0;f[C>>2]=0;f[C+4>>2]=0;f[C+8>>2]=0;f[C+12>>2]=0;f[D+36>>2]=1065353216;f[i>>2]=D;if(Mc(a,D)|0){D=f[i>>2]|0;f[i>>2]=0;f[j>>2]=D;of(c,h,j)|0;Xg(j);F=0}else F=1;Xg(i);E=F}else E=1;while(0);if((b[e>>0]|0)<0)Ko(f[h>>2]|0);k=k+1|0;if(E|0){m=0;break b}if(k>>>0>=(f[g>>2]|0)>>>0){m=1;break}}}while(0);l=m;u=d;return l|0}function Nc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;d=u;u=u+16|0;e=d;g=a+68|0;f[g>>2]=(f[g>>2]|0)+1;g=(f[a+8+(b*12|0)+4>>2]|0)-(f[a+8+(b*12|0)>>2]|0)|0;h=g>>2;if((g|0)<=0){u=d;return}g=a+4|0;i=a+56|0;j=a+72|0;k=f[c>>2]|0;c=k+4|0;l=k+8|0;m=a+76|0;n=0;o=f[a+44+(b<<2)>>2]|0;while(1){b=(o|0)==-1;p=(o>>>0)/3|0;q=b?-1:p;r=(f[i>>2]|0)+(q>>>5<<2)|0;f[r>>2]=f[r>>2]|1<<(q&31);f[j>>2]=(f[j>>2]|0)+1;do if(n){if(b)s=-1;else{q=(o|0)/3|0;s=f[(f[(f[a>>2]|0)+96>>2]|0)+(q*12|0)+(o-(q*3|0)<<2)>>2]|0}f[m>>2]=s;f[e>>2]=s;q=f[c>>2]|0;if(q>>>0<(f[l>>2]|0)>>>0){f[q>>2]=s;f[c>>2]=q+4}else Ng(k,e);if(!(n&1)){q=o+1|0;if(b){t=-1;break}v=((q>>>0)%3|0|0)==0?o+-2|0:q;w=35;break}if(!b)if(!(o-(p*3|0)|0)){v=o+2|0;w=35;break}else{v=o+-1|0;w=35;break}else t=-1}else{if(b)x=-1;else x=f[(f[(f[a>>2]|0)+96>>2]|0)+(((o|0)/3|0)*12|0)+(((o|0)%3|0)<<2)>>2]|0;f[e>>2]=x;q=f[c>>2]|0;if(q>>>0<(f[l>>2]|0)>>>0){f[q>>2]=x;f[c>>2]=q+4}else Ng(k,e);q=o+1|0;if(!b?(r=((q>>>0)%3|0|0)==0?o+-2|0:q,(r|0)!=-1):0){q=(r|0)/3|0;y=f[(f[(f[a>>2]|0)+96>>2]|0)+(q*12|0)+(r-(q*3|0)<<2)>>2]|0}else y=-1;f[e>>2]=y;q=f[c>>2]|0;if(q>>>0<(f[l>>2]|0)>>>0){f[q>>2]=y;f[c>>2]=q+4}else Ng(k,e);if(!b?(q=(((o>>>0)%3|0|0)==0?2:-1)+o|0,(q|0)!=-1):0){r=(q|0)/3|0;z=f[(f[(f[a>>2]|0)+96>>2]|0)+(r*12|0)+(q-(r*3|0)<<2)>>2]|0}else z=-1;f[m>>2]=z;f[e>>2]=z;r=f[c>>2]|0;if(r>>>0<(f[l>>2]|0)>>>0){f[r>>2]=z;f[c>>2]=r+4}else Ng(k,e);v=o;w=35}while(0);if((w|0)==35){w=0;if((v|0)==-1)t=-1;else t=f[(f[(f[g>>2]|0)+12>>2]|0)+(v<<2)>>2]|0}n=n+1|0;if((n|0)>=(h|0))break;else o=t}u=d;return}function Oc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;c=a+4|0;if(!b){d=f[a>>2]|0;f[a>>2]=0;if(d|0)Ko(d);f[c>>2]=0;return}if(b>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}d=wk(b<<2)|0;e=f[a>>2]|0;f[a>>2]=d;if(e|0)Ko(e);f[c>>2]=b;c=0;do{f[(f[a>>2]|0)+(c<<2)>>2]=0;c=c+1|0}while((c|0)!=(b|0));c=a+8|0;e=f[c>>2]|0;if(!e)return;d=f[e+4>>2]|0;g=b+-1|0;h=(g&b|0)==0;if(!h)if(d>>>0<b>>>0)i=d;else i=(d>>>0)%(b>>>0)|0;else i=d&g;f[(f[a>>2]|0)+(i<<2)>>2]=c;c=f[e>>2]|0;if(!c)return;if(h){h=i;d=c;j=e;while(1){k=f[d+4>>2]&g;do if((k|0)==(h|0)){l=h;m=d}else{n=(f[a>>2]|0)+(k<<2)|0;if(!(f[n>>2]|0)){f[n>>2]=j;l=k;m=d;break}n=f[d>>2]|0;a:do if(!n)o=d;else{p=f[d+8>>2]|0;q=d;r=n;while(1){if((p|0)!=(f[r+8>>2]|0)){o=q;break a}s=f[r>>2]|0;if(!s){o=r;break}else{t=r;r=s;q=t}}}while(0);f[j>>2]=f[o>>2];f[o>>2]=f[f[(f[a>>2]|0)+(k<<2)>>2]>>2];f[f[(f[a>>2]|0)+(k<<2)>>2]>>2]=d;l=h;m=j}while(0);d=f[m>>2]|0;if(!d)break;else{h=l;j=m}}return}m=i;i=c;c=e;while(1){e=f[i+4>>2]|0;if(e>>>0<b>>>0)u=e;else u=(e>>>0)%(b>>>0)|0;do if((u|0)==(m|0)){v=m;w=i}else{e=(f[a>>2]|0)+(u<<2)|0;if(!(f[e>>2]|0)){f[e>>2]=c;v=u;w=i;break}e=f[i>>2]|0;b:do if(!e)x=i;else{j=f[i+8>>2]|0;l=i;h=e;while(1){if((j|0)!=(f[h+8>>2]|0)){x=l;break b}d=f[h>>2]|0;if(!d){x=h;break}else{o=h;h=d;l=o}}}while(0);f[c>>2]=f[x>>2];f[x>>2]=f[f[(f[a>>2]|0)+(u<<2)>>2]>>2];f[f[(f[a>>2]|0)+(u<<2)>>2]>>2]=i;v=m;w=c}while(0);i=f[w>>2]|0;if(!i)break;else{m=v;c=w}}return}function Pc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;d=u;u=u+16|0;e=d+8|0;g=d;h=d+4|0;if(!(Qe(a,b)|0)){i=0;u=d;return i|0}j=b+96|0;k=b+100|0;b=f[k>>2]|0;l=f[j>>2]|0;if((b|0)==(l|0)){i=1;u=d;return i|0}m=a+56|0;n=a+8|0;o=a+12|0;p=a+20|0;q=a+24|0;r=a+32|0;s=a+36|0;t=a+68|0;v=a+76|0;w=f[c>>2]|0;c=w+4|0;x=w+8|0;y=w;z=a+72|0;A=0;B=l;l=b;while(1){if(!(f[(f[m>>2]|0)+(A>>>5<<2)>>2]&1<<(A&31))){b=A*3|0;f[g>>2]=b;f[e>>2]=f[g>>2];_b(a,0,e);C=(f[o>>2]|0)-(f[n>>2]|0)|0;D=(C|0)!=0;E=D?C>>2:0;f[g>>2]=b+1;f[e>>2]=f[g>>2];_b(a,1,e);C=(f[q>>2]|0)-(f[p>>2]|0)>>2;F=C>>>0>E>>>0;f[g>>2]=b+2;f[e>>2]=f[g>>2];_b(a,2,e);b=(f[s>>2]|0)-(f[r>>2]|0)>>2>>>0>(F?C:E)>>>0?2:F?1:(D^1)<<31>>31;if((f[t>>2]|0)>0){D=f[v>>2]|0;f[e>>2]=D;F=f[c>>2]|0;if(F>>>0<(f[x>>2]|0)>>>0){f[F>>2]=D;f[c>>2]=F+4}else Ng(w,e);F=f[a+44+(b<<2)>>2]|0;if((F|0)==-1)G=-1;else{D=(F|0)/3|0;G=f[(f[(f[a>>2]|0)+96>>2]|0)+(D*12|0)+(F-(D*3|0)<<2)>>2]|0}f[e>>2]=G;D=f[c>>2]|0;if(D>>>0<(f[x>>2]|0)>>>0){f[D>>2]=G;f[c>>2]=D+4}else Ng(w,e);D=(f[z>>2]|0)+2|0;f[z>>2]=D;if(D&1|0){f[e>>2]=G;D=f[c>>2]|0;if(D>>>0<(f[x>>2]|0)>>>0){f[D>>2]=G;f[c>>2]=D+4}else Ng(w,e);f[z>>2]=(f[z>>2]|0)+1}}f[h>>2]=y;f[e>>2]=f[h>>2];Nc(a,b,e);H=f[j>>2]|0;I=f[k>>2]|0}else{H=B;I=l}A=A+1|0;if(A>>>0>=((I-H|0)/12|0)>>>0){i=1;break}else{B=H;l=I}}u=d;return i|0}function Qc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+176|0;g=e+136|0;h=e+64|0;i=e;j=e+32|0;k=f[(f[c+4>>2]|0)+44>>2]|0;l=wk(88)|0;f[l+4>>2]=0;f[l>>2]=3384;m=l+12|0;f[m>>2]=3364;n=l+64|0;f[n>>2]=0;f[l+68>>2]=0;f[l+72>>2]=0;o=l+16|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));f[l+76>>2]=k;f[l+80>>2]=d;f[l+84>>2]=0;q=l;r=h+4|0;f[r>>2]=3364;s=h+56|0;f[s>>2]=0;t=h+60|0;f[t>>2]=0;f[h+64>>2]=0;o=h+8|0;p=o+44|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));o=f[c+8>>2]|0;f[i>>2]=3364;c=i+4|0;p=c+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[c>>2]=o;c=((f[o+4>>2]|0)-(f[o>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;Gf(i+8|0,c,g);Pa[f[(f[i>>2]|0)+8>>2]&127](i);le(j,i);le(g,j);f[h>>2]=f[g+4>>2];c=h+4|0;He(c,g)|0;f[g>>2]=3364;p=f[g+20>>2]|0;if(p|0)Ko(p);p=f[g+8>>2]|0;if(p|0)Ko(p);f[h+36>>2]=o;f[h+40>>2]=d;f[h+44>>2]=k;f[h+48>>2]=l;f[j>>2]=3364;k=f[j+20>>2]|0;if(k|0)Ko(k);k=f[j+8>>2]|0;if(k|0)Ko(k);f[l+8>>2]=f[h>>2];He(m,c)|0;c=l+44|0;l=h+36|0;f[c>>2]=f[l>>2];f[c+4>>2]=f[l+4>>2];f[c+8>>2]=f[l+8>>2];f[c+12>>2]=f[l+12>>2];b[c+16>>0]=b[l+16>>0]|0;df(n,f[s>>2]|0,f[t>>2]|0);f[a>>2]=q;f[i>>2]=3364;q=f[i+20>>2]|0;if(q|0)Ko(q);q=f[i+8>>2]|0;if(q|0)Ko(q);q=f[s>>2]|0;if(q|0){f[t>>2]=q;Ko(q)}f[r>>2]=3364;r=f[h+24>>2]|0;if(r|0)Ko(r);r=f[h+12>>2]|0;if(!r){u=e;return}Ko(r);u=e;return}function Rc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+16|0;h=d+4|0;i=d;f[a+72>>2]=e;f[a+64>>2]=g;g=Ho(e>>>0>1073741823?-1:e<<2)|0;j=a+68|0;k=f[j>>2]|0;f[j>>2]=g;if(k|0)Io(k);k=a+8|0;f[k>>2]=e;g=a+32|0;l=a+36|0;m=f[g>>2]|0;n=(f[l>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[l>>2]=m+(e<<2)}else Eg(g,e-n|0);n=a+56|0;g=f[n>>2]|0;m=f[g+4>>2]|0;l=f[g>>2]|0;o=m-l|0;p=o>>2;if((o|0)<=0){u=d;return 1}o=a+16|0;q=a+32|0;r=a+12|0;s=a+20|0;if((m|0)==(l|0)){t=g;$n(t)}g=0;m=l;while(1){f[i>>2]=f[m+(g<<2)>>2];f[h>>2]=f[i>>2];ac(a,h,c,g);l=W(g,e)|0;v=f[j>>2]|0;w=b+(l<<2)|0;x=c+(l<<2)|0;if((f[k>>2]|0)>0){l=0;do{y=f[v+(l<<2)>>2]|0;z=f[o>>2]|0;do if((y|0)<=(z|0)){A=f[r>>2]|0;B=f[q>>2]|0;C=B+(l<<2)|0;if((y|0)<(A|0)){f[C>>2]=A;D=B;break}else{f[C>>2]=y;D=B;break}}else{B=f[q>>2]|0;f[B+(l<<2)>>2]=z;D=B}while(0);l=l+1|0;E=f[k>>2]|0}while((l|0)<(E|0));if((E|0)>0){l=0;do{v=(f[w+(l<<2)>>2]|0)+(f[D+(l<<2)>>2]|0)|0;z=x+(l<<2)|0;f[z>>2]=v;if((v|0)<=(f[o>>2]|0)){if((v|0)<(f[r>>2]|0)){F=(f[s>>2]|0)+v|0;G=26}}else{F=v-(f[s>>2]|0)|0;G=26}if((G|0)==26){G=0;f[z>>2]=F}l=l+1|0}while((l|0)<(f[k>>2]|0))}}g=g+1|0;if((g|0)>=(p|0)){G=10;break}l=f[n>>2]|0;m=f[l>>2]|0;if((f[l+4>>2]|0)-m>>2>>>0<=g>>>0){t=l;G=11;break}}if((G|0)==10){u=d;return 1}else if((G|0)==11)$n(t);return 0}function Sc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+16|0;h=d+4|0;i=d;f[a+72>>2]=e;f[a+64>>2]=g;g=Ho(e>>>0>1073741823?-1:e<<2)|0;j=a+68|0;k=f[j>>2]|0;f[j>>2]=g;if(k|0)Io(k);k=a+8|0;f[k>>2]=e;g=a+32|0;l=a+36|0;m=f[g>>2]|0;n=(f[l>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[l>>2]=m+(e<<2)}else Eg(g,e-n|0);n=a+56|0;g=f[n>>2]|0;m=f[g+4>>2]|0;l=f[g>>2]|0;o=m-l|0;p=o>>2;if((o|0)<=0){u=d;return 1}o=a+16|0;q=a+32|0;r=a+12|0;s=a+20|0;if((m|0)==(l|0)){t=g;$n(t)}g=0;m=l;while(1){f[i>>2]=f[m+(g<<2)>>2];f[h>>2]=f[i>>2];bc(a,h,c,g);l=W(g,e)|0;v=f[j>>2]|0;w=b+(l<<2)|0;x=c+(l<<2)|0;if((f[k>>2]|0)>0){l=0;do{y=f[v+(l<<2)>>2]|0;z=f[o>>2]|0;do if((y|0)<=(z|0)){A=f[r>>2]|0;B=f[q>>2]|0;C=B+(l<<2)|0;if((y|0)<(A|0)){f[C>>2]=A;D=B;break}else{f[C>>2]=y;D=B;break}}else{B=f[q>>2]|0;f[B+(l<<2)>>2]=z;D=B}while(0);l=l+1|0;E=f[k>>2]|0}while((l|0)<(E|0));if((E|0)>0){l=0;do{v=(f[w+(l<<2)>>2]|0)+(f[D+(l<<2)>>2]|0)|0;z=x+(l<<2)|0;f[z>>2]=v;if((v|0)<=(f[o>>2]|0)){if((v|0)<(f[r>>2]|0)){F=(f[s>>2]|0)+v|0;G=26}}else{F=v-(f[s>>2]|0)|0;G=26}if((G|0)==26){G=0;f[z>>2]=F}l=l+1|0}while((l|0)<(f[k>>2]|0))}}g=g+1|0;if((g|0)>=(p|0)){G=10;break}l=f[n>>2]|0;m=f[l>>2]|0;if((f[l+4>>2]|0)-m>>2>>>0<=g>>>0){t=l;G=11;break}}if((G|0)==10){u=d;return 1}else if((G|0)==11)$n(t);return 0}function Tc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;c=a+148|0;d=f[b>>2]|0;b=(d|0)==-1;e=d+1|0;do if(!b){g=((e>>>0)%3|0|0)==0?d+-2|0:e;if(!((d>>>0)%3|0)){h=d+2|0;i=g;break}else{h=d+-1|0;i=g;break}}else{h=-1;i=-1}while(0);g=a+184|0;j=f[g>>2]|0;switch(j|0){case 1:case 0:{k=f[c>>2]|0;if((i|0)==-1)l=-1;else l=f[(f[k>>2]|0)+(i<<2)>>2]|0;m=f[a+156>>2]|0;n=m+(l<<2)|0;f[n>>2]=(f[n>>2]|0)+1;if((h|0)==-1)o=-1;else o=f[(f[k>>2]|0)+(h<<2)>>2]|0;p=m+(o<<2)|0;q=1;r=32;break}case 5:{o=f[c>>2]|0;if(b)s=-1;else s=f[(f[o>>2]|0)+(d<<2)>>2]|0;m=f[a+156>>2]|0;k=m+(s<<2)|0;f[k>>2]=(f[k>>2]|0)+1;if((i|0)==-1)t=-1;else t=f[(f[o>>2]|0)+(i<<2)>>2]|0;k=m+(t<<2)|0;f[k>>2]=(f[k>>2]|0)+1;if((h|0)==-1)u=-1;else u=f[(f[o>>2]|0)+(h<<2)>>2]|0;p=m+(u<<2)|0;q=2;r=32;break}case 3:{u=f[c>>2]|0;if(b)v=-1;else v=f[(f[u>>2]|0)+(d<<2)>>2]|0;m=f[a+156>>2]|0;o=m+(v<<2)|0;f[o>>2]=(f[o>>2]|0)+1;if((i|0)==-1)w=-1;else w=f[(f[u>>2]|0)+(i<<2)>>2]|0;o=m+(w<<2)|0;f[o>>2]=(f[o>>2]|0)+2;if((h|0)==-1)x=-1;else x=f[(f[u>>2]|0)+(h<<2)>>2]|0;p=m+(x<<2)|0;q=1;r=32;break}case 7:{x=f[c>>2]|0;if(b)y=-1;else y=f[(f[x>>2]|0)+(d<<2)>>2]|0;m=f[a+156>>2]|0;u=m+(y<<2)|0;f[u>>2]=(f[u>>2]|0)+2;if((i|0)==-1)z=-1;else z=f[(f[x>>2]|0)+(i<<2)>>2]|0;i=m+(z<<2)|0;f[i>>2]=(f[i>>2]|0)+2;if((h|0)==-1)A=-1;else A=f[(f[x>>2]|0)+(h<<2)>>2]|0;p=m+(A<<2)|0;q=2;r=32;break}default:B=j}if((r|0)==32){f[p>>2]=(f[p>>2]|0)+q;B=f[g>>2]|0}switch(B|0){case 5:case 0:break;default:{f[a+188>>2]=-1;return}}B=f[c>>2]|0;if(!b?(b=((e>>>0)%3|0|0)==0?d+-2|0:e,(b|0)!=-1):0)C=f[(f[B>>2]|0)+(b<<2)>>2]|0;else C=-1;f[a+188>>2]=(f[(f[a+156>>2]|0)+(C<<2)>>2]|0)<6?5:0;return}function Uc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;f[a>>2]=f[c>>2];d=c+4|0;f[a+4>>2]=f[d>>2];e=c+8|0;f[a+8>>2]=f[e>>2];g=c+12|0;f[a+12>>2]=f[g>>2];f[d>>2]=0;f[e>>2]=0;f[g>>2]=0;g=c+16|0;f[a+16>>2]=f[g>>2];e=c+20|0;f[a+20>>2]=f[e>>2];d=c+24|0;f[a+24>>2]=f[d>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;b[a+28>>0]=b[c+28>>0]|0;d=a+32|0;e=c+32|0;f[d>>2]=0;g=a+36|0;f[g>>2]=0;h=a+40|0;f[h>>2]=0;f[d>>2]=f[e>>2];d=c+36|0;f[g>>2]=f[d>>2];g=c+40|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;e=a+44|0;d=c+44|0;f[e>>2]=0;g=a+48|0;f[g>>2]=0;h=a+52|0;f[h>>2]=0;f[e>>2]=f[d>>2];e=c+48|0;f[g>>2]=f[e>>2];g=c+52|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+56|0;e=c+56|0;f[d>>2]=0;g=a+60|0;f[g>>2]=0;h=a+64|0;f[h>>2]=0;f[d>>2]=f[e>>2];d=c+60|0;f[g>>2]=f[d>>2];g=c+64|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+68>>2]=f[c+68>>2];f[a+72>>2]=f[c+72>>2];e=a+76|0;d=c+76|0;f[e>>2]=0;g=a+80|0;f[g>>2]=0;h=a+84|0;f[h>>2]=0;f[e>>2]=f[d>>2];e=c+80|0;f[g>>2]=f[e>>2];g=c+84|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+88|0;e=c+88|0;f[d>>2]=0;g=a+92|0;f[g>>2]=0;h=a+96|0;f[h>>2]=0;f[d>>2]=f[e>>2];d=c+92|0;f[g>>2]=f[d>>2];g=c+96|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;b[a+100>>0]=b[c+100>>0]|0;e=a+104|0;d=c+104|0;f[e>>2]=0;g=a+108|0;f[g>>2]=0;h=a+112|0;f[h>>2]=0;f[e>>2]=f[d>>2];e=c+108|0;f[g>>2]=f[e>>2];g=c+112|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;d=a+116|0;e=c+116|0;f[d>>2]=0;g=a+120|0;f[g>>2]=0;h=a+124|0;f[h>>2]=0;f[d>>2]=f[e>>2];d=c+120|0;f[g>>2]=f[d>>2];g=c+124|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[d>>2]=0;f[e>>2]=0;f[a+128>>2]=f[c+128>>2];e=a+132|0;d=c+132|0;f[e>>2]=0;g=a+136|0;f[g>>2]=0;h=a+140|0;f[h>>2]=0;f[e>>2]=f[d>>2];e=c+136|0;f[g>>2]=f[e>>2];g=c+140|0;f[h>>2]=f[g>>2];f[g>>2]=0;f[e>>2]=0;f[d>>2]=0;return}function Vc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+4194304|0;f[z>>2]=a;o=a>>>0<1073741824;u=d;return o|0}function Wc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+2097152|0;f[z>>2]=a;o=a>>>0<536870912;u=d;return o|0}function Xc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+1048576|0;f[z>>2]=a;o=a>>>0<268435456;u=d;return o|0}function Yc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+262144|0;f[z>>2]=a;o=a>>>0<67108864;u=d;return o|0}function Zc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+131072|0;f[z>>2]=a;o=a>>>0<33554432;u=d;return o|0}function _c(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;c=a+148|0;d=f[b>>2]|0;b=(d|0)==-1;e=d+1|0;do if(!b){g=((e>>>0)%3|0|0)==0?d+-2|0:e;if(!((d>>>0)%3|0)){h=d+2|0;i=g;break}else{h=d+-1|0;i=g;break}}else{h=-1;i=-1}while(0);switch(f[a+168>>2]|0){case 1:case 0:{e=f[c>>2]|0;if((i|0)==-1)j=-1;else j=f[(f[e>>2]|0)+(i<<2)>>2]|0;g=f[a+156>>2]|0;k=g+(j<<2)|0;f[k>>2]=(f[k>>2]|0)+1;if((h|0)==-1)l=-1;else l=f[(f[e>>2]|0)+(h<<2)>>2]|0;m=g+(l<<2)|0;n=1;o=32;break}case 5:{l=f[c>>2]|0;if(b)p=-1;else p=f[(f[l>>2]|0)+(d<<2)>>2]|0;g=f[a+156>>2]|0;e=g+(p<<2)|0;f[e>>2]=(f[e>>2]|0)+1;if((i|0)==-1)q=-1;else q=f[(f[l>>2]|0)+(i<<2)>>2]|0;e=g+(q<<2)|0;f[e>>2]=(f[e>>2]|0)+1;if((h|0)==-1)r=-1;else r=f[(f[l>>2]|0)+(h<<2)>>2]|0;m=g+(r<<2)|0;n=2;o=32;break}case 3:{r=f[c>>2]|0;if(b)s=-1;else s=f[(f[r>>2]|0)+(d<<2)>>2]|0;g=f[a+156>>2]|0;l=g+(s<<2)|0;f[l>>2]=(f[l>>2]|0)+1;if((i|0)==-1)t=-1;else t=f[(f[r>>2]|0)+(i<<2)>>2]|0;l=g+(t<<2)|0;f[l>>2]=(f[l>>2]|0)+2;if((h|0)==-1)u=-1;else u=f[(f[r>>2]|0)+(h<<2)>>2]|0;m=g+(u<<2)|0;n=1;o=32;break}case 7:{u=f[c>>2]|0;if(b)v=-1;else v=f[(f[u>>2]|0)+(d<<2)>>2]|0;d=f[a+156>>2]|0;b=d+(v<<2)|0;f[b>>2]=(f[b>>2]|0)+2;if((i|0)==-1)w=-1;else w=f[(f[u>>2]|0)+(i<<2)>>2]|0;b=d+(w<<2)|0;f[b>>2]=(f[b>>2]|0)+2;if((h|0)==-1)x=-1;else x=f[(f[u>>2]|0)+(h<<2)>>2]|0;m=d+(x<<2)|0;n=2;o=32;break}default:{}}if((o|0)==32)f[m>>2]=(f[m>>2]|0)+n;if((i|0)==-1)y=-1;else y=f[(f[f[c>>2]>>2]|0)+(i<<2)>>2]|0;i=f[(f[a+156>>2]|0)+(y<<2)>>2]|0;y=f[a+176>>2]|0;if((i|0)<(y|0)){z=y;A=z-y|0;B=a+172|0;f[B>>2]=A;return}c=f[a+180>>2]|0;z=(i|0)>(c|0)?c:i;A=z-y|0;B=a+172|0;f[B>>2]=A;return}function $c(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+32768|0;f[z>>2]=a;o=a>>>0<8388608;u=d;return o|0}function ad(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;do if((j[c+38>>1]|0)<512){g=c+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=c+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=d;return o|0}else{p=(f[c>>2]|0)+m|0;m=p;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=p+4|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=e;f[m>>2]=q;f[m+4>>2]=p;m=g;f[m>>2]=n;f[m+4>>2]=l;r=g;s=i;t=k;v=n;w=l;x=p;y=q;break}}else if(ah(e,c)|0){q=e;p=c+8|0;l=c+16|0;n=l;r=l;s=f[p>>2]|0;t=f[p+4>>2]|0;v=f[n>>2]|0;w=f[n+4>>2]|0;x=f[q+4>>2]|0;y=f[q>>2]|0;break}else{o=0;u=d;return o|0}while(0);e=wl(s|0,t|0,v|0,w|0)|0;t=H;if(x>>>0>t>>>0|(x|0)==(t|0)&y>>>0>e>>>0){o=0;u=d;return o|0}e=(f[c>>2]|0)+v|0;c=vl(v|0,w|0,y|0,x|0)|0;x=r;f[x>>2]=c;f[x+4>>2]=H;if((y|0)<1){o=0;u=d;return o|0}f[a+40>>2]=e;x=y+-1|0;c=e+x|0;a:do switch((h[c>>0]|0)>>>6&3){case 0:{f[a+44>>2]=x;r=b[c>>0]&63;w=a+48|0;f[w>>2]=r;z=w;A=r;break}case 1:{if((y|0)<2){o=0;u=d;return o|0}else{f[a+44>>2]=y+-2;r=e+y+-2|0;w=(h[r+1>>0]|0)<<8&16128|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break a}break}case 2:{if((y|0)<3){o=0;u=d;return o|0}else{f[a+44>>2]=y+-3;w=e+y+-3|0;r=(h[w+1>>0]|0)<<8|(h[w>>0]|0)|(h[w+2>>0]|0)<<16&4128768;w=a+48|0;f[w>>2]=r;z=w;A=r;break a}break}case 3:{f[a+44>>2]=y+-4;r=e+y+-4|0;w=(h[r+2>>0]|0)<<16|(h[r+3>>0]|0)<<24&1056964608|(h[r+1>>0]|0)<<8|(h[r>>0]|0);r=a+48|0;f[r>>2]=w;z=r;A=w;break}default:{}}while(0);a=A+16384|0;f[z>>2]=a;o=a>>>0<4194304;u=d;return o|0}function bd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;d=u;u=u+32|0;e=d+16|0;g=d+12|0;h=d;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;i=f[a>>2]|0;j=i+8|0;k=f[j+4>>2]|0;l=i+16|0;m=l;n=f[m>>2]|0;o=f[m+4>>2]|0;do if((k|0)>(o|0)|((k|0)==(o|0)?(f[j>>2]|0)>>>0>n>>>0:0)){m=b[(f[i>>2]|0)+n>>0]|0;p=vl(n|0,o|0,1,0)|0;q=l;f[q>>2]=p;f[q+4>>2]=H;q=m&255;Gh(e,q,0);if(m<<24>>24){p=f[a>>2]|0;r=gj(e,0)|0;s=p+8|0;t=f[s>>2]|0;v=f[s+4>>2]|0;s=p+16|0;w=s;x=f[w>>2]|0;y=m&255;m=vl(x|0,f[w+4>>2]|0,y|0,0)|0;w=H;if((v|0)<(w|0)|(v|0)==(w|0)&t>>>0<m>>>0){z=0;break}Bf(r|0,(f[p>>2]|0)+x|0,q|0)|0;q=s;x=vl(f[q>>2]|0,f[q+4>>2]|0,y|0,0)|0;y=s;f[y>>2]=x;f[y+4>>2]=H}f[g>>2]=0;y=(zh(g,f[a>>2]|0)|0)^1;x=f[g>>2]|0;if((x|0)==0|y)A=0;else{f[h>>2]=0;y=h+4|0;f[y>>2]=0;s=h+8|0;f[s>>2]=0;if((x|0)<0)$n(h);q=wk(x)|0;f[y>>2]=q;f[h>>2]=q;f[s>>2]=q+x;s=x;x=q;do{b[x>>0]=0;x=(f[y>>2]|0)+1|0;f[y>>2]=x;s=s+-1|0}while((s|0)!=0);s=f[a>>2]|0;x=f[g>>2]|0;q=s+8|0;p=f[q>>2]|0;r=f[q+4>>2]|0;q=s+16|0;m=q;t=f[m>>2]|0;w=vl(t|0,f[m+4>>2]|0,x|0,0)|0;m=H;if((r|0)<(m|0)|(r|0)==(m|0)&p>>>0<w>>>0)B=0;else{Bf(f[h>>2]|0,(f[s>>2]|0)+t|0,x|0)|0;t=q;s=vl(f[t>>2]|0,f[t+4>>2]|0,x|0,0)|0;x=q;f[x>>2]=s;f[x+4>>2]=H;$j(c,e,h);B=1}x=f[h>>2]|0;if(x|0){f[y>>2]=x;Ko(x)}A=B}z=A}else z=0;while(0);if((b[e+11>>0]|0)>=0){u=d;return z|0}Ko(f[e>>2]|0);u=d;return z|0}function cd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+16|0;h=d+4|0;i=d;j=a+60|0;f[a+64>>2]=g;g=a+8|0;f[g>>2]=e;k=a+32|0;l=a+36|0;m=f[k>>2]|0;n=(f[l>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[l>>2]=m+(e<<2)}else Eg(k,e-n|0);n=a+56|0;k=f[n>>2]|0;m=f[k+4>>2]|0;l=f[k>>2]|0;o=m-l|0;p=o>>2;if((o|0)<=0){q=1;u=d;return q|0}o=a+16|0;r=a+32|0;s=a+12|0;t=a+20|0;if((m|0)==(l|0)){v=k;$n(v)}k=0;m=l;while(1){f[i>>2]=f[m+(k<<2)>>2];f[h>>2]=f[i>>2];if(!(Kb(j,h,c,k)|0)){q=0;w=28;break}l=W(k,e)|0;x=b+(l<<2)|0;y=c+(l<<2)|0;if((f[g>>2]|0)>0){l=0;do{z=f[a+68+(l<<2)>>2]|0;A=f[o>>2]|0;do if((z|0)<=(A|0)){B=f[s>>2]|0;C=f[r>>2]|0;D=C+(l<<2)|0;if((z|0)<(B|0)){f[D>>2]=B;E=C;break}else{f[D>>2]=z;E=C;break}}else{C=f[r>>2]|0;f[C+(l<<2)>>2]=A;E=C}while(0);l=l+1|0;F=f[g>>2]|0}while((l|0)<(F|0));if((F|0)>0){l=0;do{A=(f[x+(l<<2)>>2]|0)+(f[E+(l<<2)>>2]|0)|0;z=y+(l<<2)|0;f[z>>2]=A;if((A|0)<=(f[o>>2]|0)){if((A|0)<(f[s>>2]|0)){G=(f[t>>2]|0)+A|0;w=24}}else{G=A-(f[t>>2]|0)|0;w=24}if((w|0)==24){w=0;f[z>>2]=G}l=l+1|0}while((l|0)<(f[g>>2]|0))}}k=k+1|0;if((k|0)>=(p|0)){q=1;w=28;break}l=f[n>>2]|0;m=f[l>>2]|0;if((f[l+4>>2]|0)-m>>2>>>0<=k>>>0){v=l;w=8;break}}if((w|0)==8)$n(v);else if((w|0)==28){u=d;return q|0}return 0}function dd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+16|0;h=d+4|0;i=d;j=a+60|0;f[a+64>>2]=g;g=a+8|0;f[g>>2]=e;k=a+32|0;l=a+36|0;m=f[k>>2]|0;n=(f[l>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[l>>2]=m+(e<<2)}else Eg(k,e-n|0);n=a+56|0;k=f[n>>2]|0;m=f[k+4>>2]|0;l=f[k>>2]|0;o=m-l|0;p=o>>2;if((o|0)<=0){q=1;u=d;return q|0}o=a+16|0;r=a+32|0;s=a+12|0;t=a+20|0;if((m|0)==(l|0)){v=k;$n(v)}k=0;m=l;while(1){f[i>>2]=f[m+(k<<2)>>2];f[h>>2]=f[i>>2];if(!(Jb(j,h,c,k)|0)){q=0;w=28;break}l=W(k,e)|0;x=b+(l<<2)|0;y=c+(l<<2)|0;if((f[g>>2]|0)>0){l=0;do{z=f[a+68+(l<<2)>>2]|0;A=f[o>>2]|0;do if((z|0)<=(A|0)){B=f[s>>2]|0;C=f[r>>2]|0;D=C+(l<<2)|0;if((z|0)<(B|0)){f[D>>2]=B;E=C;break}else{f[D>>2]=z;E=C;break}}else{C=f[r>>2]|0;f[C+(l<<2)>>2]=A;E=C}while(0);l=l+1|0;F=f[g>>2]|0}while((l|0)<(F|0));if((F|0)>0){l=0;do{A=(f[x+(l<<2)>>2]|0)+(f[E+(l<<2)>>2]|0)|0;z=y+(l<<2)|0;f[z>>2]=A;if((A|0)<=(f[o>>2]|0)){if((A|0)<(f[s>>2]|0)){G=(f[t>>2]|0)+A|0;w=24}}else{G=A-(f[t>>2]|0)|0;w=24}if((w|0)==24){w=0;f[z>>2]=G}l=l+1|0}while((l|0)<(f[g>>2]|0))}}k=k+1|0;if((k|0)>=(p|0)){q=1;w=28;break}l=f[n>>2]|0;m=f[l>>2]|0;if((f[l+4>>2]|0)-m>>2>>>0<=k>>>0){v=l;w=8;break}}if((w|0)==8)$n(v);else if((w|0)==28){u=d;return q|0}return 0}function ed(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=Ia,r=Ia,s=Ia,t=0,u=0,v=0,w=0,x=0;c=f[b>>2]|0;b=a+4|0;d=f[b>>2]|0;e=(d|0)==0;a:do if(!e){g=d+-1|0;h=(g&d|0)==0;if(!h)if(c>>>0<d>>>0)i=c;else i=(c>>>0)%(d>>>0)|0;else i=g&c;j=f[(f[a>>2]|0)+(i<<2)>>2]|0;if((j|0)!=0?(k=f[j>>2]|0,(k|0)!=0):0){if(h){h=k;while(1){j=f[h+4>>2]|0;if(!((j|0)==(c|0)|(j&g|0)==(i|0))){l=i;break a}if((f[h+8>>2]|0)==(c|0)){m=h;break}h=f[h>>2]|0;if(!h){l=i;break a}}o=m+12|0;return o|0}h=k;while(1){g=f[h+4>>2]|0;if((g|0)!=(c|0)){if(g>>>0<d>>>0)p=g;else p=(g>>>0)%(d>>>0)|0;if((p|0)!=(i|0)){l=i;break a}}if((f[h+8>>2]|0)==(c|0)){m=h;break}h=f[h>>2]|0;if(!h){l=i;break a}}o=m+12|0;return o|0}else l=i}else l=0;while(0);i=wk(16)|0;f[i+8>>2]=c;f[i+12>>2]=0;f[i+4>>2]=c;f[i>>2]=0;p=a+12|0;q=_(((f[p>>2]|0)+1|0)>>>0);r=_(d>>>0);s=_(n[a+16>>2]);do if(e|_(s*r)<q){h=d<<1|(d>>>0<3|(d+-1&d|0)!=0)&1;k=~~_(V(_(q/s)))>>>0;dg(a,h>>>0<k>>>0?k:h);h=f[b>>2]|0;k=h+-1|0;if(!(k&h)){t=h;u=k&c;break}if(c>>>0<h>>>0){t=h;u=c}else{t=h;u=(c>>>0)%(h>>>0)|0}}else{t=d;u=l}while(0);l=(f[a>>2]|0)+(u<<2)|0;u=f[l>>2]|0;if(!u){d=a+8|0;f[i>>2]=f[d>>2];f[d>>2]=i;f[l>>2]=d;d=f[i>>2]|0;if(d|0){l=f[d+4>>2]|0;d=t+-1|0;if(d&t)if(l>>>0<t>>>0)v=l;else v=(l>>>0)%(t>>>0)|0;else v=l&d;w=(f[a>>2]|0)+(v<<2)|0;x=33}}else{f[i>>2]=f[u>>2];w=u;x=33}if((x|0)==33)f[w>>2]=i;f[p>>2]=(f[p>>2]|0)+1;m=i;o=m+12|0;return o|0}function fd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;e=c+8|0;g=f[e+4>>2]|0;h=c+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if(!((g|0)>(k|0)|((g|0)==(k|0)?(f[e>>2]|0)>>>0>j>>>0:0))){l=0;return l|0}e=b[(f[c>>2]|0)+j>>0]|0;g=vl(j|0,k|0,1,0)|0;k=h;f[k>>2]=g;f[k+4>>2]=H;do switch(e<<24>>24){case 1:{l=Ge(a,c,d)|0;return l|0}case 2:{l=Ge(a,c,d)|0;return l|0}case 3:{l=Ge(a,c,d)|0;return l|0}case 4:{l=Ge(a,c,d)|0;return l|0}case 5:{l=Ge(a,c,d)|0;return l|0}case 6:{l=Ge(a,c,d)|0;return l|0}case 7:{l=Ge(a,c,d)|0;return l|0}case 8:{l=Ge(a,c,d)|0;return l|0}case 9:{l=Fe(a,c,d)|0;return l|0}case 10:{l=Ee(a,c,d)|0;return l|0}case 11:{l=De(a,c,d)|0;return l|0}case 12:{l=Ce(a,c,d)|0;return l|0}case 13:{l=Be(a,c,d)|0;return l|0}case 14:{l=Ae(a,c,d)|0;return l|0}case 15:{l=Ae(a,c,d)|0;return l|0}case 16:{l=Ae(a,c,d)|0;return l|0}case 17:{l=Ae(a,c,d)|0;return l|0}case 18:{l=Ae(a,c,d)|0;return l|0}default:{l=0;return l|0}}while(0);return 0}function gd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;e=b+12|0;g=f[e>>2]|0;h=(f[c>>2]|0)-g|0;i=c+4|0;j=(f[i>>2]|0)-g|0;k=c;f[k>>2]=h;f[k+4>>2]=j;k=(h|0)>-1;l=(j|0)>-1;m=f[e>>2]|0;if(((l?j:0-j|0)+(k?h:0-h|0)|0)>(m|0)){if(k)if(!l)if((h|0)<1){n=-1;o=-1}else p=6;else{n=1;o=1}else if((j|0)<1){n=-1;o=-1}else p=6;if((p|0)==6){n=(h|0)>0?1:-1;o=(j|0)>0?1:-1}l=W(n,m)|0;k=W(o,m)|0;q=(h<<1)-l|0;f[c>>2]=q;r=(j<<1)-k|0;f[i>>2]=r;if((W(n,o)|0)>-1){o=0-r|0;f[c>>2]=o;s=o;t=0-q|0}else{f[c>>2]=r;s=r;t=q}q=(s+l|0)/2|0;f[c>>2]=q;c=(t+k|0)/2|0;f[i>>2]=c;u=0;v=q;w=c;x=f[e>>2]|0}else{u=1;v=h;w=j;x=m}m=(f[d>>2]|0)+v|0;f[a>>2]=m;v=(f[d+4>>2]|0)+w|0;w=a+4|0;f[w>>2]=v;if((x|0)>=(m|0))if((m|0)<(0-x|0))y=(f[b+4>>2]|0)+m|0;else y=m;else y=m-(f[b+4>>2]|0)|0;f[a>>2]=y;if((x|0)>=(v|0))if((v|0)<(0-x|0))z=(f[b+4>>2]|0)+v|0;else z=v;else z=v-(f[b+4>>2]|0)|0;f[w>>2]=z;if(u){A=y;B=z;C=A+g|0;D=B+g|0;E=a;F=E;f[F>>2]=C;G=E+4|0;H=G;f[H>>2]=D;return}if((y|0)>-1)if((z|0)<=-1)if((y|0)<1){I=-1;J=-1}else p=24;else{I=1;J=1}else if((z|0)<1){I=-1;J=-1}else p=24;if((p|0)==24){I=(y|0)>0?1:-1;J=(z|0)>0?1:-1}p=W(I,x)|0;u=W(J,x)|0;x=(y<<1)-p|0;f[a>>2]=x;y=(z<<1)-u|0;f[w>>2]=y;if((W(I,J)|0)>-1){J=0-y|0;f[a>>2]=J;K=J;L=0-x|0}else{f[a>>2]=y;K=y;L=x}x=(K+p|0)/2|0;f[a>>2]=x;p=(L+u|0)/2|0;f[w>>2]=p;A=x;B=p;C=A+g|0;D=B+g|0;E=a;F=E;f[F>>2]=C;G=E+4|0;H=G;f[H>>2]=D;return}function hd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=a+8|0;e=f[d>>2]|0;switch(f[e+28>>2]|0){case 2:{g=b[e+24>>0]|0;h=g<<24>>24;i=Ho((h|0)>-1?h:-1)|0;j=f[a+16>>2]|0;if(!(f[j+80>>2]|0))k=0;else k=(f[f[j>>2]>>2]|0)+(f[j+48>>2]|0)|0;a:do if(c|0){if(g<<24>>24<=0){Bf(f[f[e+64>>2]>>2]|0,i|0,h|0)|0;if((c|0)==1)break;j=0;l=1;while(1){j=j+h|0;Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+j|0,i|0,h|0)|0;l=l+1|0;if((l|0)==(c|0))break a}}l=0;j=0;while(1){m=0;n=j;while(1){b[i+m>>0]=f[k+(n<<2)>>2];m=m+1|0;if((m|0)==(h|0))break;else n=n+1|0}Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+j|0,i|0,h|0)|0;l=l+1|0;if((l|0)==(c|0))break;else j=j+h|0}}while(0);Io(i);o=1;return o|0}case 1:{i=b[e+24>>0]|0;h=i<<24>>24;k=Ho((h|0)>-1?h:-1)|0;g=f[a+16>>2]|0;if(!(f[g+80>>2]|0))p=0;else p=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;b:do if(c|0){if(i<<24>>24<=0){Bf(f[f[e+64>>2]>>2]|0,k|0,h|0)|0;if((c|0)==1)break;g=0;j=1;while(1){g=g+h|0;Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+g|0,k|0,h|0)|0;j=j+1|0;if((j|0)==(c|0))break b}}j=0;g=0;while(1){l=0;n=g;while(1){b[k+l>>0]=f[p+(n<<2)>>2];l=l+1|0;if((l|0)==(h|0))break;else n=n+1|0}Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+g|0,k|0,h|0)|0;j=j+1|0;if((j|0)==(c|0))break;else g=g+h|0}}while(0);Io(k);o=1;return o|0}case 4:{_f(a,c);o=1;return o|0}case 3:{_f(a,c);o=1;return o|0}case 6:{$f(a,c);o=1;return o|0}case 5:{$f(a,c);o=1;return o|0}default:{o=0;return o|0}}return 0}function id(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=f[b>>2]|0;g=f[b+4>>2]|0;h=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-g|0;c=e;if((h|0)<=0){i=d+4|0;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}if(!g){e=d+4|0;m=h;n=e;o=f[e>>2]|0;p=c}else{e=32-g|0;q=(h|0)<(e|0)?h:e;r=-1>>>(e-q|0)&-1<<g&f[c>>2];e=d+4|0;s=f[e>>2]|0;t=32-s|0;u=t>>>0<q>>>0?t:q;v=f[d>>2]|0;w=f[v>>2]&~(-1>>>(t-u|0)&-1<<s);f[v>>2]=w;s=f[e>>2]|0;f[v>>2]=w|(s>>>0>g>>>0?r<<s-g:r>>>(g-s|0));s=(f[e>>2]|0)+u|0;w=v+(s>>>5<<2)|0;f[d>>2]=w;v=s&31;f[e>>2]=v;s=q-u|0;if((s|0)>0){f[w>>2]=f[w>>2]&~(-1>>>(32-s|0))|r>>>(u+g|0);f[e>>2]=s;x=s}else x=v;v=c+4|0;f[b>>2]=v;m=h-q|0;n=e;o=x;p=v}v=32-o|0;x=-1<<o;if((m|0)>31){o=~x;e=f[d>>2]|0;q=~m;h=m+((q|0)>-64?q:-64)+32|0;q=(h>>>5)+1|0;c=m+-32-(h&-32)|0;h=m;s=p;g=f[e>>2]|0;u=e;while(1){r=f[s>>2]|0;w=g&o;f[u>>2]=w;f[u>>2]=r<<f[n>>2]|w;u=u+4|0;g=f[u>>2]&x|r>>>v;f[u>>2]=g;if((h|0)<=63)break;else{h=h+-32|0;s=s+4|0}}s=p+(q<<2)|0;f[b>>2]=s;f[d>>2]=e+(q<<2);y=c;z=s}else{y=m;z=p}if((y|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}p=f[z>>2]&-1>>>(32-y|0);z=(v|0)<(y|0)?v:y;m=f[d>>2]|0;s=f[m>>2]&~(-1<<f[n>>2]&-1>>>(v-z|0));f[m>>2]=s;f[m>>2]=p<<f[n>>2]|s;s=(f[n>>2]|0)+z|0;v=m+(s>>>5<<2)|0;f[d>>2]=v;f[n>>2]=s&31;s=y-z|0;if((s|0)<=0){i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}f[v>>2]=f[v>>2]&~(-1>>>(32-s|0))|p>>>z;f[n>>2]=s;i=n;j=f[d>>2]|0;f[a>>2]=j;k=a+4|0;l=f[i>>2]|0;f[k>>2]=l;return}function jd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;e=f[b>>2]|0;g=b+4|0;h=f[g>>2]|0;i=((f[c>>2]|0)-e<<3)+(f[c+4>>2]|0)-h|0;c=e;if((i|0)<=0){j=d+4|0;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}if(!h){e=d+4|0;n=i;o=e;p=c;q=f[e>>2]|0}else{e=32-h|0;r=(i|0)<(e|0)?i:e;s=-1>>>(e-r|0)&-1<<h&f[c>>2];c=d+4|0;h=f[c>>2]|0;e=32-h|0;t=e>>>0<r>>>0?e:r;u=f[d>>2]|0;v=f[u>>2]&~(-1>>>(e-t|0)&-1<<h);f[u>>2]=v;h=f[c>>2]|0;e=f[g>>2]|0;f[u>>2]=(h>>>0>e>>>0?s<<h-e:s>>>(e-h|0))|v;v=(f[c>>2]|0)+t|0;h=u+(v>>>5<<2)|0;f[d>>2]=h;u=v&31;f[c>>2]=u;v=r-t|0;if((v|0)>0){e=f[h>>2]&~(-1>>>(32-v|0));f[h>>2]=e;f[h>>2]=s>>>((f[g>>2]|0)+t|0)|e;f[c>>2]=v;w=v}else w=u;u=(f[b>>2]|0)+4|0;f[b>>2]=u;n=i-r|0;o=c;p=u;q=w}w=32-q|0;u=-1<<q;if((n|0)>31){q=~u;c=~n;r=n+((c|0)>-64?c:-64)+32&-32;c=n;i=p;while(1){v=f[i>>2]|0;e=f[d>>2]|0;t=f[e>>2]&q;f[e>>2]=t;f[e>>2]=v<<f[o>>2]|t;t=e+4|0;f[d>>2]=t;f[t>>2]=f[t>>2]&u|v>>>w;i=(f[b>>2]|0)+4|0;f[b>>2]=i;if((c|0)<=63)break;else c=c+-32|0}x=n+-32-r|0;y=i}else{x=n;y=p}if((x|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}p=f[y>>2]&-1>>>(32-x|0);y=(w|0)<(x|0)?w:x;n=f[d>>2]|0;i=f[n>>2]&~(-1<<f[o>>2]&-1>>>(w-y|0));f[n>>2]=i;f[n>>2]=p<<f[o>>2]|i;i=(f[o>>2]|0)+y|0;w=n+(i>>>5<<2)|0;f[d>>2]=w;f[o>>2]=i&31;i=x-y|0;if((i|0)<=0){j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}f[w>>2]=f[w>>2]&~(-1>>>(32-i|0))|p>>>y;f[o>>2]=i;j=o;k=f[d>>2]|0;f[a>>2]=k;l=a+4|0;m=f[j>>2]|0;f[l>>2]=m;return}function kd(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;i=u;u=u+32|0;j=i+16|0;k=i+12|0;l=i;m=c+24|0;n=b[m>>0]|0;o=n<<24>>24;p=f[a+80>>2]|0;a=W(p,o)|0;q=f[c+28>>2]|0;if((q|0)==(e|0)|(q|0)==(g|0)?b[c+84>>0]|0:0){g=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;We(h,g,g+(a<<1)|0);r=1;u=i;return r|0}f[l>>2]=0;g=l+4|0;f[g>>2]=0;q=l+8|0;f[q>>2]=0;do if(n<<24>>24)if(n<<24>>24<0)$n(l);else{e=o<<1;s=wk(e)|0;f[l>>2]=s;t=s+(o<<1)|0;f[q>>2]=t;oh(s|0,0,e|0)|0;f[g>>2]=t;break}while(0);We(h,0,0+(a<<1)|0);a:do if(!p)v=1;else{a=c+84|0;q=c+68|0;if(n<<24>>24<=0){t=0;while(1){if(!(b[a>>0]|0))w=f[(f[q>>2]|0)+(t<<2)>>2]|0;else w=t;e=f[l>>2]|0;f[k>>2]=w;s=b[m>>0]|0;f[j>>2]=f[k>>2];if(!(Ab(c,j,s,e)|0)){v=0;break a}t=t+1|0;if(t>>>0>=p>>>0){v=1;break a}}}t=0;e=0;while(1){if(!(b[a>>0]|0))x=f[(f[q>>2]|0)+(e<<2)>>2]|0;else x=e;s=f[l>>2]|0;f[k>>2]=x;y=b[m>>0]|0;f[j>>2]=f[k>>2];if(!(Ab(c,j,y,s)|0)){v=0;break a}s=f[l>>2]|0;y=f[h>>2]|0;z=0;A=t;while(1){d[y+(A<<1)>>1]=d[s+(z<<1)>>1]|0;z=z+1|0;if((z|0)==(o|0))break;else A=A+1|0}e=e+1|0;if(e>>>0>=p>>>0){v=1;break}else t=t+o|0}}while(0);o=f[l>>2]|0;if(o|0){f[g>>2]=o;Ko(o)}r=v;u=i;return r|0}function ld(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;i=u;u=u+32|0;j=i+16|0;k=i+12|0;l=i;m=c+24|0;n=b[m>>0]|0;o=n<<24>>24;p=f[a+80>>2]|0;a=W(p,o)|0;q=f[c+28>>2]|0;if((q|0)==(e|0)|(q|0)==(g|0)?b[c+84>>0]|0:0){g=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;We(h,g,g+(a<<1)|0);r=1;u=i;return r|0}f[l>>2]=0;g=l+4|0;f[g>>2]=0;q=l+8|0;f[q>>2]=0;do if(n<<24>>24)if(n<<24>>24<0)$n(l);else{e=o<<1;s=wk(e)|0;f[l>>2]=s;t=s+(o<<1)|0;f[q>>2]=t;oh(s|0,0,e|0)|0;f[g>>2]=t;break}while(0);We(h,0,0+(a<<1)|0);a:do if(!p)v=1;else{a=c+84|0;q=c+68|0;if(n<<24>>24<=0){t=0;while(1){if(!(b[a>>0]|0))w=f[(f[q>>2]|0)+(t<<2)>>2]|0;else w=t;e=f[l>>2]|0;f[k>>2]=w;s=b[m>>0]|0;f[j>>2]=f[k>>2];if(!(Bb(c,j,s,e)|0)){v=0;break a}t=t+1|0;if(t>>>0>=p>>>0){v=1;break a}}}t=0;e=0;while(1){if(!(b[a>>0]|0))x=f[(f[q>>2]|0)+(e<<2)>>2]|0;else x=e;s=f[l>>2]|0;f[k>>2]=x;y=b[m>>0]|0;f[j>>2]=f[k>>2];if(!(Bb(c,j,y,s)|0)){v=0;break a}s=f[l>>2]|0;y=f[h>>2]|0;z=0;A=t;while(1){d[y+(A<<1)>>1]=d[s+(z<<1)>>1]|0;z=z+1|0;if((z|0)==(o|0))break;else A=A+1|0}e=e+1|0;if(e>>>0>=p>>>0){v=1;break}else t=t+o|0}}while(0);o=f[l>>2]|0;if(o|0){f[g>>2]=o;Ko(o)}r=v;u=i;return r|0}function md(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;h=u;u=u+32|0;i=h+16|0;j=h+12|0;k=h;l=c+24|0;m=b[l>>0]|0;n=m<<24>>24;o=f[a+80>>2]|0;a=W(o,n)|0;p=f[c+28>>2]|0;if((p|0)==(d|0)|(p|0)==(e|0)?b[c+84>>0]|0:0){e=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;Ye(g,e,e+(a<<2)|0);q=1;u=h;return q|0}f[k>>2]=0;e=k+4|0;f[e>>2]=0;p=k+8|0;f[p>>2]=0;do if(m<<24>>24)if(m<<24>>24<0)$n(k);else{d=n<<2;r=wk(d)|0;f[k>>2]=r;s=r+(n<<2)|0;f[p>>2]=s;oh(r|0,0,d|0)|0;f[e>>2]=s;break}while(0);Ye(g,0,0+(a<<2)|0);a:do if(!o)t=1;else{a=c+84|0;p=c+68|0;if(m<<24>>24<=0){s=0;while(1){if(!(b[a>>0]|0))v=f[(f[p>>2]|0)+(s<<2)>>2]|0;else v=s;d=f[k>>2]|0;f[j>>2]=v;r=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Cb(c,i,r,d)|0)){t=0;break a}s=s+1|0;if(s>>>0>=o>>>0){t=1;break a}}}s=0;d=0;while(1){if(!(b[a>>0]|0))w=f[(f[p>>2]|0)+(d<<2)>>2]|0;else w=d;r=f[k>>2]|0;f[j>>2]=w;x=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Cb(c,i,x,r)|0)){t=0;break a}r=f[k>>2]|0;x=f[g>>2]|0;y=0;z=s;while(1){f[x+(z<<2)>>2]=f[r+(y<<2)>>2];y=y+1|0;if((y|0)==(n|0))break;else z=z+1|0}d=d+1|0;if(d>>>0>=o>>>0){t=1;break}else s=s+n|0}}while(0);n=f[k>>2]|0;if(n|0){f[e>>2]=n;Ko(n)}q=t;u=h;return q|0}function nd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+32|0;d=c+16|0;e=c;f[d>>2]=0;do if((j[b+38>>1]|0)<514){g=b+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=b+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,4,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){o=0;u=c;return o|0}else{i=(f[b>>2]|0)+m|0;m=h[i>>0]|h[i+1>>0]<<8|h[i+2>>0]<<16|h[i+3>>0]<<24;f[d>>2]=m;i=g;f[i>>2]=n;f[i+4>>2]=l;p=m;break}}else if(zh(d,b)|0){p=f[d>>2]|0;break}else{o=0;u=c;return o|0}while(0);if(!p){o=0;u=c;return o|0}m=a+76|0;td(m,p,0);ym(e);if(rd(e,b)|0){if(f[d>>2]|0){p=1;l=0;do{p=p^((pi(e)|0)^1);i=(f[m>>2]|0)+(l>>>5<<2)|0;n=1<<(l&31);if(p)q=f[i>>2]|n;else q=f[i>>2]&~n;f[i>>2]=q;l=l+1|0}while(l>>>0<(f[d>>2]|0)>>>0)}d=b+8|0;l=f[d>>2]|0;q=f[d+4>>2]|0;d=b+16|0;p=d;m=f[p>>2]|0;e=f[p+4>>2]|0;p=vl(m|0,e|0,4,0)|0;i=H;if(((!((q|0)<(i|0)|(q|0)==(i|0)&l>>>0<p>>>0)?(n=f[b>>2]|0,b=n+m|0,g=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24,b=d,f[b>>2]=p,f[b+4>>2]=i,i=vl(m|0,e|0,8,0)|0,e=H,!((q|0)<(e|0)|(q|0)==(e|0)&l>>>0<i>>>0)):0)?(l=n+p|0,p=h[l>>0]|h[l+1>>0]<<8|h[l+2>>0]<<16|h[l+3>>0]<<24,l=d,f[l>>2]=i,f[l+4>>2]=e,(g|0)<=(p|0)):0)?(f[a+12>>2]=g,f[a+16>>2]=p,e=wl(p|0,((p|0)<0)<<31>>31|0,g|0,((g|0)<0)<<31>>31|0)|0,g=H,g>>>0<0|(g|0)==0&e>>>0<2147483647):0){g=e+1|0;f[a+20>>2]=g;e=(g|0)/2|0;p=a+24|0;f[p>>2]=e;f[a+28>>2]=0-e;if(!(g&1)){f[p>>2]=e+-1;r=1}else r=1}else r=0}else r=0;o=r;u=c;return o|0}function od(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0;h=u;u=u+32|0;i=h+16|0;j=h+12|0;k=h;l=c+24|0;m=b[l>>0]|0;n=m<<24>>24;o=f[a+80>>2]|0;a=W(o,n)|0;p=f[c+28>>2]|0;if((p|0)==(d|0)|(p|0)==(e|0)?b[c+84>>0]|0:0){e=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;Ye(g,e,e+(a<<2)|0);q=1;u=h;return q|0}f[k>>2]=0;e=k+4|0;f[e>>2]=0;p=k+8|0;f[p>>2]=0;do if(m<<24>>24)if(m<<24>>24<0)$n(k);else{d=n<<2;r=wk(d)|0;f[k>>2]=r;s=r+(n<<2)|0;f[p>>2]=s;oh(r|0,0,d|0)|0;f[e>>2]=s;break}while(0);Ye(g,0,0+(a<<2)|0);a:do if(!o)t=1;else{a=c+84|0;p=c+68|0;if(m<<24>>24<=0){s=0;while(1){if(!(b[a>>0]|0))v=f[(f[p>>2]|0)+(s<<2)>>2]|0;else v=s;d=f[k>>2]|0;f[j>>2]=v;r=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Db(c,i,r,d)|0)){t=0;break a}s=s+1|0;if(s>>>0>=o>>>0){t=1;break a}}}s=0;d=0;while(1){if(!(b[a>>0]|0))w=f[(f[p>>2]|0)+(d<<2)>>2]|0;else w=d;r=f[k>>2]|0;f[j>>2]=w;x=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Db(c,i,x,r)|0)){t=0;break a}r=f[k>>2]|0;x=f[g>>2]|0;y=0;z=s;while(1){f[x+(z<<2)>>2]=f[r+(y<<2)>>2];y=y+1|0;if((y|0)==(n|0))break;else z=z+1|0}d=d+1|0;if(d>>>0>=o>>>0){t=1;break}else s=s+n|0}}while(0);n=f[k>>2]|0;if(n|0){f[e>>2]=n;Ko(n)}q=t;u=h;return q|0}function pd(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;h=u;u=u+32|0;i=h+16|0;j=h+12|0;k=h;l=c+24|0;m=b[l>>0]|0;n=m<<24>>24;o=f[a+80>>2]|0;a=W(o,n)|0;p=f[c+28>>2]|0;if((p|0)==(d|0)|(p|0)==(e|0)?b[c+84>>0]|0:0){e=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;rf(g,e,e+a|0);q=1;u=h;return q|0}f[k>>2]=0;e=k+4|0;f[e>>2]=0;p=k+8|0;f[p>>2]=0;if(m<<24>>24){if(m<<24>>24<0)$n(k);d=wk(n)|0;f[e>>2]=d;f[k>>2]=d;f[p>>2]=d+n;p=n;r=d;do{b[r>>0]=0;r=(f[e>>2]|0)+1|0;f[e>>2]=r;p=p+-1|0}while((p|0)!=0)}rf(g,0,0+a|0);a:do if(!o)s=1;else{a=c+84|0;p=c+68|0;if(m<<24>>24<=0){r=0;while(1){if(!(b[a>>0]|0))t=f[(f[p>>2]|0)+(r<<2)>>2]|0;else t=r;d=f[k>>2]|0;f[j>>2]=t;v=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Eb(c,i,v,d)|0)){s=0;break a}r=r+1|0;if(r>>>0>=o>>>0){s=1;break a}}}r=0;d=0;while(1){if(!(b[a>>0]|0))w=f[(f[p>>2]|0)+(d<<2)>>2]|0;else w=d;v=f[k>>2]|0;f[j>>2]=w;x=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Eb(c,i,x,v)|0)){s=0;break a}v=0;x=r;while(1){b[(f[g>>2]|0)+x>>0]=b[(f[k>>2]|0)+v>>0]|0;v=v+1|0;if((v|0)==(n|0))break;else x=x+1|0}d=d+1|0;if(d>>>0>=o>>>0){s=1;break}else r=r+n|0}}while(0);n=f[k>>2]|0;if(n|0){f[e>>2]=n;Ko(n)}q=s;u=h;return q|0}function qd(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;h=u;u=u+32|0;i=h+16|0;j=h+12|0;k=h;l=c+24|0;m=b[l>>0]|0;n=m<<24>>24;o=f[a+80>>2]|0;a=W(o,n)|0;p=f[c+28>>2]|0;if((p|0)==(d|0)|(p|0)==(e|0)?b[c+84>>0]|0:0){e=(f[f[c>>2]>>2]|0)+(f[c+48>>2]|0)|0;rf(g,e,e+a|0);q=1;u=h;return q|0}f[k>>2]=0;e=k+4|0;f[e>>2]=0;p=k+8|0;f[p>>2]=0;if(m<<24>>24){if(m<<24>>24<0)$n(k);d=wk(n)|0;f[e>>2]=d;f[k>>2]=d;f[p>>2]=d+n;p=n;r=d;do{b[r>>0]=0;r=(f[e>>2]|0)+1|0;f[e>>2]=r;p=p+-1|0}while((p|0)!=0)}rf(g,0,0+a|0);a:do if(!o)s=1;else{a=c+84|0;p=c+68|0;if(m<<24>>24<=0){r=0;while(1){if(!(b[a>>0]|0))t=f[(f[p>>2]|0)+(r<<2)>>2]|0;else t=r;d=f[k>>2]|0;f[j>>2]=t;v=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Fb(c,i,v,d)|0)){s=0;break a}r=r+1|0;if(r>>>0>=o>>>0){s=1;break a}}}r=0;d=0;while(1){if(!(b[a>>0]|0))w=f[(f[p>>2]|0)+(d<<2)>>2]|0;else w=d;v=f[k>>2]|0;f[j>>2]=w;x=b[l>>0]|0;f[i>>2]=f[j>>2];if(!(Fb(c,i,x,v)|0)){s=0;break a}v=0;x=r;while(1){b[(f[g>>2]|0)+x>>0]=b[(f[k>>2]|0)+v>>0]|0;v=v+1|0;if((v|0)==(n|0))break;else x=x+1|0}d=d+1|0;if(d>>>0>=o>>>0){s=1;break}else r=r+n|0}}while(0);n=f[k>>2]|0;if(n|0){f[e>>2]=n;Ko(n)}q=s;u=h;return q|0}function rd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;d=u;u=u+16|0;e=d;g=c+8|0;i=g;k=f[i+4>>2]|0;l=c+16|0;m=l;n=f[m>>2]|0;o=f[m+4>>2]|0;if(!((k|0)>(o|0)|((k|0)==(o|0)?(f[i>>2]|0)>>>0>n>>>0:0))){p=0;u=d;return p|0}b[a+12>>0]=b[(f[c>>2]|0)+n>>0]|0;n=l;i=f[n>>2]|0;o=f[n+4>>2]|0;n=vl(i|0,o|0,1,0)|0;k=l;f[k>>2]=n;f[k+4>>2]=H;if((j[c+38>>1]|0)<514){k=g;m=f[k>>2]|0;q=f[k+4>>2]|0;k=vl(i|0,o|0,5,0)|0;o=H;if((q|0)<(o|0)|(q|0)==(o|0)&m>>>0<k>>>0)r=0;else{i=(f[c>>2]|0)+n|0;n=h[i>>0]|h[i+1>>0]<<8|h[i+2>>0]<<16|h[i+3>>0]<<24;f[e>>2]=n;i=l;f[i>>2]=k;f[i+4>>2]=o;s=m;t=q;v=k;w=o;x=n;y=7}}else if(zh(e,c)|0){n=g;g=l;s=f[n>>2]|0;t=f[n+4>>2]|0;v=f[g>>2]|0;w=f[g+4>>2]|0;x=f[e>>2]|0;y=7}else r=0;a:do if((y|0)==7){e=wl(s|0,t|0,v|0,w|0)|0;g=H;if(!((g|0)<0|(g|0)==0&e>>>0<x>>>0)?(e=(f[c>>2]|0)+v|0,(x|0)>=1):0){f[a>>2]=e;g=x+-1|0;n=e+g|0;switch((h[n>>0]|0)>>>6&3){case 0:{f[a+4>>2]=g;g=b[n>>0]&63;n=a+8|0;f[n>>2]=g;z=n;A=g;break}case 1:{if((x|0)<2){r=0;break a}f[a+4>>2]=x+-2;g=e+x+-2|0;n=(h[g+1>>0]|0)<<8&16128|(h[g>>0]|0);g=a+8|0;f[g>>2]=n;z=g;A=n;break}case 2:{if((x|0)<3){r=0;break a}f[a+4>>2]=x+-3;n=e+x+-3|0;e=(h[n+1>>0]|0)<<8|(h[n>>0]|0)|(h[n+2>>0]|0)<<16&4128768;n=a+8|0;f[n>>2]=e;z=n;A=e;break}default:{r=0;break a}}e=A+4096|0;f[z>>2]=e;if(e>>>0<1048576){e=vl(v|0,w|0,x|0,0)|0;n=l;f[n>>2]=e;f[n+4>>2]=H;r=1}else r=0}else r=0}while(0);p=r;u=d;return p|0}function sd(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+32|0;g=e+8|0;i=e;switch(d|0){case 2:{d=f[b+12>>2]|0;j=f[b+4>>2]|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;a:do if((c|0)==-2){f[i>>2]=0;k=0}else{l=f[(f[(f[j+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((Ka[f[(f[j>>2]|0)+8>>2]&127](j)|0)==1){Cd(i,j,c,d,g,((h[j+36>>0]|0)<<8|(h[j+37>>0]|0))&65535);m=f[i>>2]|0;if(!m){f[i>>2]=0;break}else{k=m;break a}}while(0);m=wk(24)|0;f[m+4>>2]=l;n=m+8|0;f[n>>2]=f[g>>2];f[n+4>>2]=f[g+4>>2];f[n+8>>2]=f[g+8>>2];f[n+12>>2]=f[g+12>>2];f[m>>2]=2604;n=m;f[i>>2]=n;k=n}while(0);f[a>>2]=k;u=e;return}case 3:{k=f[b+12>>2]|0;j=f[b+4>>2]|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;b:do if((c|0)==-2){f[i>>2]=0;o=0}else{b=f[(f[(f[j+4>>2]|0)+8>>2]|0)+(k<<2)>>2]|0;do if((Ka[f[(f[j>>2]|0)+8>>2]&127](j)|0)==1){Bd(i,j,c,k,g,((h[j+36>>0]|0)<<8|(h[j+37>>0]|0))&65535);d=f[i>>2]|0;if(!d){f[i>>2]=0;break}else{o=d;break b}}while(0);l=wk(24)|0;f[l+4>>2]=b;d=l+8|0;f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];f[d+12>>2]=f[g+12>>2];f[l>>2]=2660;d=l;f[i>>2]=d;o=d}while(0);f[a>>2]=o;u=e;return}default:{f[a>>2]=0;u=e;return}}}function td(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;d=u;u=u+32|0;e=d+8|0;g=d;h=a+4|0;i=f[h>>2]|0;if(i>>>0>=b>>>0){f[h>>2]=b;u=d;return}j=a+8|0;k=f[j>>2]|0;l=k<<5;m=b-i|0;if(l>>>0<m>>>0|i>>>0>(l-m|0)>>>0){f[e>>2]=0;n=e+4|0;f[n>>2]=0;o=e+8|0;f[o>>2]=0;if((b|0)<0)$n(a);p=k<<6;k=b+31&-32;vg(e,l>>>0<1073741823?(p>>>0<k>>>0?k:p):2147483647);p=f[h>>2]|0;f[n>>2]=p+m;k=f[a>>2]|0;l=k;q=f[e>>2]|0;r=(l+(p>>>5<<2)-k<<3)+(p&31)|0;if((r|0)>0){p=r>>>5;Rj(q|0,k|0,p<<2|0)|0;k=r&31;r=q+(p<<2)|0;s=r;if(!k){t=0;v=s}else{w=-1>>>(32-k|0);f[r>>2]=f[r>>2]&~w|f[l+(p<<2)>>2]&w;t=k;v=s}}else{t=0;v=q}f[g>>2]=v;f[g+4>>2]=t;t=g;g=f[t>>2]|0;v=f[t+4>>2]|0;t=f[a>>2]|0;f[a>>2]=f[e>>2];f[e>>2]=t;e=f[h>>2]|0;f[h>>2]=f[n>>2];f[n>>2]=e;e=f[j>>2]|0;f[j>>2]=f[o>>2];f[o>>2]=e;if(t|0)Ko(t);x=g;y=v}else{v=(f[a>>2]|0)+(i>>>5<<2)|0;f[h>>2]=b;x=v;y=i&31}if(!m){u=d;return}i=(y|0)==0;v=x;if(c){if(i){z=m;A=x;B=v}else{c=32-y|0;b=c>>>0>m>>>0?m:c;f[v>>2]=f[v>>2]|-1>>>(c-b|0)&-1<<y;c=v+4|0;z=m-b|0;A=c;B=c}c=z>>>5;oh(A|0,-1,c<<2|0)|0;A=z&31;z=B+(c<<2)|0;if(!A){u=d;return}f[z>>2]=f[z>>2]|-1>>>(32-A|0);u=d;return}else{if(i){C=m;D=x;E=v}else{x=32-y|0;i=x>>>0>m>>>0?m:x;f[v>>2]=f[v>>2]&~(-1>>>(x-i|0)&-1<<y);y=v+4|0;C=m-i|0;D=y;E=y}y=C>>>5;oh(D|0,0,y<<2|0)|0;D=C&31;C=E+(y<<2)|0;if(!D){u=d;return}f[C>>2]=f[C>>2]&~(-1>>>(32-D|0));u=d;return}}function ud(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=a+32|0;d=f[c>>2]|0;e=d+8|0;g=f[e+4>>2]|0;h=d+16|0;i=h;j=f[i>>2]|0;k=f[i+4>>2]|0;if(!((g|0)>(k|0)|((g|0)==(k|0)?(f[e>>2]|0)>>>0>j>>>0:0))){l=0;return l|0}e=b[(f[d>>2]|0)+j>>0]|0;d=vl(j|0,k|0,1,0)|0;k=h;f[k>>2]=d;f[k+4>>2]=H;k=e&255;d=e<<24>>24==0;a:do if(!d){e=0;while(1){if(!(La[f[(f[a>>2]|0)+16>>2]&127](a,e)|0)){l=0;break}e=e+1|0;if(e>>>0>=k>>>0)break a}return l|0}while(0);e=a+8|0;h=f[e>>2]|0;j=f[a+12>>2]|0;b:do if((h|0)!=(j|0)){g=a+4|0;i=h;while(1){m=f[i>>2]|0;i=i+4|0;if(!(Ma[f[(f[m>>2]|0)+8>>2]&31](m,a,f[g>>2]|0)|0)){l=0;break}if((i|0)==(j|0))break b}return l|0}while(0);if(!d){j=0;do{h=f[(f[e>>2]|0)+(j<<2)>>2]|0;j=j+1|0;if(!(La[f[(f[h>>2]|0)+12>>2]&127](h,f[c>>2]|0)|0)){l=0;n=27;break}}while(j>>>0<k>>>0);if((n|0)==27)return l|0;if(!d){d=a+20|0;n=a+24|0;j=0;do{c=f[(f[e>>2]|0)+(j<<2)>>2]|0;h=Ka[f[(f[c>>2]|0)+24>>2]&127](c)|0;if((h|0)>0){c=0;do{i=f[(f[e>>2]|0)+(j<<2)>>2]|0;g=La[f[(f[i>>2]|0)+20>>2]&127](i,c)|0;i=f[d>>2]|0;m=(f[n>>2]|0)-i>>2;o=i;do if(g>>>0>=m>>>0){i=g+1|0;if(i>>>0>m>>>0){Eg(d,i-m|0);p=f[d>>2]|0;break}if(i>>>0<m>>>0){f[n>>2]=o+(i<<2);p=o}else p=o}else p=o;while(0);f[p+(g<<2)>>2]=j;c=c+1|0}while((c|0)!=(h|0))}j=j+1|0}while((j|0)!=(k|0))}}if(!(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)){l=0;return l|0}l=Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0;return l|0}function vd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=(c|0)==(a|0);b[c+12>>0]=d&1;if(d)return;d=c;while(1){e=d+8|0;g=f[e>>2]|0;h=g+12|0;if(b[h>>0]|0){i=24;break}j=f[g+8>>2]|0;c=f[j>>2]|0;if((c|0)==(g|0)){k=f[j+4>>2]|0;if(!k){i=7;break}l=k+12|0;if(!(b[l>>0]|0))m=l;else{i=7;break}}else{if(!c){i=16;break}l=c+12|0;if(!(b[l>>0]|0))m=l;else{i=16;break}}b[h>>0]=1;b[j+12>>0]=(j|0)==(a|0)&1;b[m>>0]=1;if((j|0)==(a|0)){i=24;break}else d=j}if((i|0)==7){a=g+8|0;if((f[g>>2]|0)==(d|0)){n=h;o=j}else{m=g+4|0;l=f[m>>2]|0;c=f[l>>2]|0;f[m>>2]=c;if(!c)p=j;else{f[c+8>>2]=g;p=f[a>>2]|0}f[l+8>>2]=p;p=f[a>>2]|0;f[((f[p>>2]|0)==(g|0)?p:p+4|0)>>2]=l;f[l>>2]=g;f[a>>2]=l;n=l+12|0;o=f[l+8>>2]|0}b[n>>0]=1;b[o+12>>0]=0;n=f[o>>2]|0;l=n+4|0;a=f[l>>2]|0;f[o>>2]=a;if(a|0)f[a+8>>2]=o;a=o+8|0;f[n+8>>2]=f[a>>2];p=f[a>>2]|0;f[((f[p>>2]|0)==(o|0)?p:p+4|0)>>2]=n;f[l>>2]=o;f[a>>2]=n;return}else if((i|0)==16){n=g+8|0;if((f[g>>2]|0)==(d|0)){a=d+4|0;o=f[a>>2]|0;f[g>>2]=o;if(!o)q=j;else{f[o+8>>2]=g;q=f[n>>2]|0}f[e>>2]=q;q=f[n>>2]|0;f[((f[q>>2]|0)==(g|0)?q:q+4|0)>>2]=d;f[a>>2]=g;f[n>>2]=d;r=d+12|0;s=f[d+8>>2]|0}else{r=h;s=j}b[r>>0]=1;b[s+12>>0]=0;r=s+4|0;j=f[r>>2]|0;h=f[j>>2]|0;f[r>>2]=h;if(h|0)f[h+8>>2]=s;h=s+8|0;f[j+8>>2]=f[h>>2];r=f[h>>2]|0;f[((f[r>>2]|0)==(s|0)?r:r+4|0)>>2]=j;f[j>>2]=s;f[h>>2]=j;return}else if((i|0)==24)return}function wd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=(d-e|0)/24|0;h=g+1|0;i=e;j=d;if(h>>>0>178956970)$n(a);d=a+8|0;k=((f[d>>2]|0)-e|0)/24|0;l=k<<1;m=k>>>0<89478485?(l>>>0<h>>>0?h:l):178956970;do if(m)if(m>>>0>178956970){l=qa(8)|0;Dm(l,13552);f[l>>2]=4908;ta(l|0,1128,105)}else{n=wk(m*24|0)|0;break}else n=0;while(0);l=n+(g*24|0)|0;h=n+(m*24|0)|0;f[l>>2]=1228;f[n+(g*24|0)+4>>2]=f[b+4>>2];m=n+(g*24|0)+8|0;f[m>>2]=0;k=n+(g*24|0)+12|0;f[k>>2]=0;o=n+(g*24|0)+16|0;f[o>>2]=0;p=f[b+8>>2]|0;q=(f[b+12>>2]|0)-p|0;r=q>>2;if(q|0){if(r>>>0>1073741823)$n(m);s=wk(q)|0;f[k>>2]=s;f[m>>2]=s;f[o>>2]=s+(r<<2);if((q|0)>0){Bf(s|0,p|0,q|0)|0;f[k>>2]=s+(q>>>2<<2)}}f[n+(g*24|0)+20>>2]=f[b+20>>2];b=l+24|0;if((j|0)!=(i|0)){g=j;j=l;do{f[j+-24>>2]=1228;f[j+-20>>2]=f[g+-20>>2];n=j+-16|0;q=g+-16|0;f[n>>2]=0;s=j+-12|0;f[s>>2]=0;k=j+-8|0;f[k>>2]=0;f[n>>2]=f[q>>2];n=g+-12|0;f[s>>2]=f[n>>2];s=g+-8|0;f[k>>2]=f[s>>2];f[s>>2]=0;f[n>>2]=0;f[q>>2]=0;f[j+-4>>2]=f[g+-4>>2];g=g+-24|0;j=j+-24|0}while((g|0)!=(i|0));i=f[a>>2]|0;g=f[c>>2]|0;q=i;f[a>>2]=j;f[c>>2]=b;f[d>>2]=h;if((g|0)==(q|0))t=i;else{j=g;do{j=j+-24|0;Pa[f[f[j>>2]>>2]&127](j)}while((j|0)!=(q|0));t=i}}else{f[a>>2]=l;f[c>>2]=b;f[d>>2]=h;t=e}if(!t)return;Ko(t);return}function xd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=u;u=u+144|0;g=e+136|0;h=e+32|0;i=e;j=f[(f[c+4>>2]|0)+44>>2]|0;k=wk(124)|0;f[k+4>>2]=0;f[k>>2]=3340;f[k+12>>2]=3364;f[k+100>>2]=0;f[k+104>>2]=0;f[k+108>>2]=0;l=k+16|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));f[k+112>>2]=j;f[k+116>>2]=d;f[k+120>>2]=0;n=k;o=h+4|0;f[o>>2]=3364;p=h+92|0;f[p>>2]=0;q=h+96|0;f[q>>2]=0;f[h+100>>2]=0;l=h+8|0;m=l+80|0;do{f[l>>2]=0;l=l+4|0}while((l|0)<(m|0));l=f[c+8>>2]|0;f[i>>2]=3364;c=i+4|0;m=c+4|0;f[m>>2]=0;f[m+4>>2]=0;f[m+8>>2]=0;f[m+12>>2]=0;f[m+16>>2]=0;f[m+20>>2]=0;f[c>>2]=l;m=((f[l+4>>2]|0)-(f[l>>2]|0)>>2>>>0)/3|0;b[g>>0]=0;Gf(i+8|0,m,g);Pa[f[(f[i>>2]|0)+8>>2]&127](i);f[h>>2]=f[c>>2];He(h+4|0,i)|0;f[h+36>>2]=l;f[h+40>>2]=d;f[h+44>>2]=j;f[h+48>>2]=k;mf(k,h);f[a>>2]=n;f[i>>2]=3364;n=f[i+20>>2]|0;if(n|0)Ko(n);n=f[i+8>>2]|0;if(n|0)Ko(n);n=f[p>>2]|0;if(n|0){f[q>>2]=n;Ko(n)}n=f[h+76>>2]|0;if(n|0){f[h+80>>2]=n;Ko(n)}n=f[h+64>>2]|0;if(n|0){f[h+68>>2]=n;Ko(n)}n=f[h+52>>2]|0;if(n|0){f[h+56>>2]=n;Ko(n)}f[o>>2]=3364;o=f[h+24>>2]|0;if(o|0)Ko(o);o=f[h+12>>2]|0;if(!o){u=e;return}Ko(o);u=e;return}function yd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;e=u;u=u+32|0;g=e+12|0;i=e;j=c+24|0;k=b[j>>0]|0;l=k<<24>>24;f[g>>2]=0;m=g+4|0;f[m>>2]=0;n=g+8|0;f[n>>2]=0;if(!(k<<24>>24))o=0;else{if(k<<24>>24<0)$n(g);k=wk(l)|0;f[m>>2]=k;f[g>>2]=k;f[n>>2]=k+l;n=l;l=k;do{b[l>>0]=0;l=(f[m>>2]|0)+1|0;f[m>>2]=l;n=n+-1|0}while((n|0)!=0);o=b[j>>0]|0}n=o<<24>>24;f[i>>2]=0;l=i+4|0;f[l>>2]=0;k=i+8|0;f[k>>2]=0;if(o<<24>>24){if(o<<24>>24<0)$n(i);o=wk(n)|0;f[l>>2]=o;f[i>>2]=o;f[k>>2]=o+n;k=n;n=o;do{b[n>>0]=0;n=(f[l>>2]|0)+1|0;f[l>>2]=n;k=k+-1|0}while((k|0)!=0)}k=c+80|0;if(!(f[k>>2]|0))p=f[i>>2]|0;else{n=c+48|0;o=c+40|0;q=c+64|0;r=a+48|0;a=0;do{s=f[g>>2]|0;t=n;v=f[t>>2]|0;w=f[t+4>>2]|0;t=o;x=f[t>>2]|0;y=Bk(x|0,f[t+4>>2]|0,a|0,0)|0;t=vl(y|0,H|0,v|0,w|0)|0;Bf(s|0,(f[f[c>>2]>>2]|0)+t|0,x|0)|0;if((b[j>>0]|0)>0?(b[f[i>>2]>>0]=(f[(f[r>>2]|0)+(d<<2)>>2]|0)+(h[s>>0]|0),(b[j>>0]|0)>1):0){s=1;do{b[(f[i>>2]|0)+s>>0]=(f[(f[r>>2]|0)+(s+d<<2)>>2]|0)+(h[(f[g>>2]|0)+s>>0]|0);s=s+1|0}while((s|0)<(b[j>>0]|0))}s=f[i>>2]|0;x=f[o>>2]|0;Bf((f[f[q>>2]>>2]|0)+(W(a,x)|0)|0,s|0,x|0)|0;a=a+1|0}while(a>>>0<(f[k>>2]|0)>>>0);p=s}if(p|0){f[l>>2]=p;Ko(p)}p=f[g>>2]|0;if(!p){u=e;return 1}f[m>>2]=p;Ko(p);u=e;return 1}function zd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=u;u=u+16|0;d=c;e=b+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=b+16|0;k=g;l=f[k>>2]|0;m=vl(l|0,f[k+4>>2]|0,4,0)|0;k=H;if((j|0)<(k|0)|(j|0)==(k|0)&i>>>0<m>>>0){n=0;u=c;return n|0}i=(f[b>>2]|0)+l|0;l=h[i>>0]|h[i+1>>0]<<8|h[i+2>>0]<<16|h[i+3>>0]<<24;i=g;f[i>>2]=m;f[i+4>>2]=k;if((l|0)<0){n=0;u=c;return n|0}td(a+76|0,l,0);ym(d);if(rd(d,b)|0){if((l|0)>0){k=a+76|0;i=1;m=0;do{i=i^((pi(d)|0)^1);j=(f[k>>2]|0)+(m>>>5<<2)|0;o=1<<(m&31);if(i)p=f[j>>2]|o;else p=f[j>>2]&~o;f[j>>2]=p;m=m+1|0}while((m|0)<(l|0))}l=e;e=f[l>>2]|0;m=f[l+4>>2]|0;l=g;p=f[l>>2]|0;i=f[l+4>>2]|0;l=vl(p|0,i|0,4,0)|0;k=H;if(((!((m|0)<(k|0)|(m|0)==(k|0)&e>>>0<l>>>0)?(d=f[b>>2]|0,b=d+p|0,j=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24,b=g,f[b>>2]=l,f[b+4>>2]=k,k=vl(p|0,i|0,8,0)|0,i=H,!((m|0)<(i|0)|(m|0)==(i|0)&e>>>0<k>>>0)):0)?(e=d+l|0,l=h[e>>0]|h[e+1>>0]<<8|h[e+2>>0]<<16|h[e+3>>0]<<24,e=g,f[e>>2]=k,f[e+4>>2]=i,(j|0)<=(l|0)):0)?(f[a+12>>2]=j,f[a+16>>2]=l,i=wl(l|0,((l|0)<0)<<31>>31|0,j|0,((j|0)<0)<<31>>31|0)|0,j=H,j>>>0<0|(j|0)==0&i>>>0<2147483647):0){j=i+1|0;f[a+20>>2]=j;i=(j|0)/2|0;l=a+24|0;f[l>>2]=i;f[a+28>>2]=0-i;if(!(j&1)){f[l>>2]=i+-1;q=1}else q=1}else q=0}else q=0;n=q;u=c;return n|0}function Ad(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/144|0)>>>0>=c>>>0){i=c;j=h;do{f[j>>2]=-1;ti(j+4|0);b[j+100>>0]=1;k=j+104|0;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));j=(f[g>>2]|0)+144|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/144|0;h=j+c|0;if(h>>>0>29826161)$n(a);m=(e-i|0)/144|0;i=m<<1;e=m>>>0<14913080?(i>>>0<h>>>0?h:i):29826161;do if(e)if(e>>>0>29826161){i=qa(8)|0;Dm(i,13552);f[i>>2]=4908;ta(i|0,1128,105)}else{n=wk(e*144|0)|0;break}else n=0;while(0);i=n+(j*144|0)|0;j=i;h=n+(e*144|0)|0;e=c;c=j;n=i;while(1){f[n>>2]=-1;ti(n+4|0);b[n+100>>0]=1;k=n+104|0;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));o=c+144|0;m=e+-1|0;if(!m)break;else{e=m;c=o;n=o}}n=o;o=f[a>>2]|0;c=f[g>>2]|0;if((c|0)==(o|0)){p=j;q=o;r=o}else{j=c;c=i;do{c=c+-144|0;j=j+-144|0;Uc(c,j)}while((j|0)!=(o|0));p=c;q=f[a>>2]|0;r=f[g>>2]|0}f[a>>2]=p;f[g>>2]=n;f[d>>2]=h;h=q;if((r|0)!=(h|0)){d=r;do{r=f[d+-12>>2]|0;if(r|0){f[d+-8>>2]=r;Ko(r)}r=f[d+-28>>2]|0;if(r|0){f[d+-24>>2]=r;Ko(r)}r=f[d+-40>>2]|0;if(r|0){f[d+-36>>2]=r;Ko(r)}di(d+-140|0);d=d+-144|0}while((d|0)!=(h|0))}if(!q)return;Ko(q);return}function Bd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;g=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if(!((c+-1|0)>>>0<6&(Ka[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1)){h=0;f[a>>2]=h;return}i=Ka[f[(f[b>>2]|0)+36>>2]&127](b)|0;j=La[f[(f[b>>2]|0)+44>>2]&127](b,d)|0;if((i|0)==0|(j|0)==0){h=0;f[a>>2]=h;return}k=La[f[(f[b>>2]|0)+40>>2]&127](b,d)|0;d=f[b+44>>2]|0;b=j+12|0;l=(c|0)==6;if(!k){if(l){c=wk(104)|0;f[c+4>>2]=g;m=c+8|0;f[m>>2]=f[e>>2];f[m+4>>2]=f[e+4>>2];f[m+8>>2]=f[e+8>>2];f[m+12>>2]=f[e+12>>2];f[c+24>>2]=d;f[c+28>>2]=i;f[c+32>>2]=b;f[c+36>>2]=j;f[c>>2]=2800;f[c+44>>2]=0;f[c+48>>2]=0;f[c+52>>2]=d;f[c+56>>2]=i;f[c+60>>2]=b;f[c+64>>2]=j;f[c+40>>2]=2856;f[c+68>>2]=1;i=c+72|0;f[i>>2]=-1;f[i+4>>2]=-1;f[i+8>>2]=-1;f[i+12>>2]=-1;ym(c+88|0);h=c;f[a>>2]=h;return}}else if(l){l=wk(104)|0;f[l+4>>2]=g;g=l+8|0;f[g>>2]=f[e>>2];f[g+4>>2]=f[e+4>>2];f[g+8>>2]=f[e+8>>2];f[g+12>>2]=f[e+12>>2];f[l+24>>2]=d;f[l+28>>2]=k;f[l+32>>2]=b;f[l+36>>2]=j;f[l>>2]=2716;f[l+44>>2]=0;f[l+48>>2]=0;f[l+52>>2]=d;f[l+56>>2]=k;f[l+60>>2]=b;f[l+64>>2]=j;f[l+40>>2]=2772;f[l+68>>2]=1;j=l+72|0;f[j>>2]=-1;f[j+4>>2]=-1;f[j+8>>2]=-1;f[j+12>>2]=-1;ym(l+88|0);h=l;f[a>>2]=h;return}f[a>>2]=0;h=0;f[a>>2]=h;return}function Cd(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0;g=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;if(!((c+-1|0)>>>0<6&(Ka[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1)){h=0;f[a>>2]=h;return}i=Ka[f[(f[b>>2]|0)+36>>2]&127](b)|0;j=La[f[(f[b>>2]|0)+44>>2]&127](b,d)|0;if((i|0)==0|(j|0)==0){h=0;f[a>>2]=h;return}k=La[f[(f[b>>2]|0)+40>>2]&127](b,d)|0;d=f[b+44>>2]|0;b=j+12|0;l=(c|0)==6;if(!k){if(l){c=wk(104)|0;f[c+4>>2]=g;m=c+8|0;f[m>>2]=f[e>>2];f[m+4>>2]=f[e+4>>2];f[m+8>>2]=f[e+8>>2];f[m+12>>2]=f[e+12>>2];f[c+24>>2]=d;f[c+28>>2]=i;f[c+32>>2]=b;f[c+36>>2]=j;f[c>>2]=2968;f[c+44>>2]=0;f[c+48>>2]=0;f[c+52>>2]=d;f[c+56>>2]=i;f[c+60>>2]=b;f[c+64>>2]=j;f[c+40>>2]=3024;f[c+68>>2]=1;i=c+72|0;f[i>>2]=-1;f[i+4>>2]=-1;f[i+8>>2]=-1;f[i+12>>2]=-1;ym(c+88|0);h=c;f[a>>2]=h;return}}else if(l){l=wk(104)|0;f[l+4>>2]=g;g=l+8|0;f[g>>2]=f[e>>2];f[g+4>>2]=f[e+4>>2];f[g+8>>2]=f[e+8>>2];f[g+12>>2]=f[e+12>>2];f[l+24>>2]=d;f[l+28>>2]=k;f[l+32>>2]=b;f[l+36>>2]=j;f[l>>2]=2884;f[l+44>>2]=0;f[l+48>>2]=0;f[l+52>>2]=d;f[l+56>>2]=k;f[l+60>>2]=b;f[l+64>>2]=j;f[l+40>>2]=2940;f[l+68>>2]=1;j=l+72|0;f[j>>2]=-1;f[j+4>>2]=-1;f[j+8>>2]=-1;f[j+12>>2]=-1;ym(l+88|0);h=l;f[a>>2]=h;return}f[a>>2]=0;h=0;f[a>>2]=h;return}function Dd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+16|0;d=c;e=a+40|0;g=e;h=a;i=g+40|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if(vf(e,1,d)|0){g=a;h=e;i=g+40|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));e=d;k=f[e>>2]|0;l=f[e+4>>2]|0;e=a+8|0;m=e;n=a+16|0;o=n;p=f[o>>2]|0;q=f[o+4>>2]|0;o=wl(f[m>>2]|0,f[m+4>>2]|0,p|0,q|0)|0;m=H;if(!(l>>>0>m>>>0|(l|0)==(m|0)&k>>>0>o>>>0)){o=vl(p|0,q|0,k|0,l|0)|0;l=n;f[l>>2]=o;f[l+4>>2]=H;do if((j[a+38>>1]|0)>=514){if(!(rd(a+80|0,a)|0)){r=0;u=c;return r|0}}else{l=a+96|0;g=l;h=a;i=g+40|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));if(vf(l,1,d)|0){g=a;h=l;i=g+40|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));l=d;o=f[l>>2]|0;k=f[l+4>>2]|0;l=e;q=n;p=f[q>>2]|0;m=f[q+4>>2]|0;q=wl(f[l>>2]|0,f[l+4>>2]|0,p|0,m|0)|0;l=H;if(!(k>>>0>l>>>0|(k|0)==(l|0)&o>>>0>q>>>0)){q=vl(p|0,m|0,o|0,k|0)|0;k=n;f[k>>2]=q;f[k+4>>2]=H;break}}r=0;u=c;return r|0}while(0);if(!(Jg(a)|0)){r=0;u=c;return r|0}g=b;h=a;i=g+40|0;do{f[g>>2]=f[h>>2];g=g+4|0;h=h+4|0}while((g|0)<(i|0));r=1;u=c;return r|0}}r=0;u=c;return r|0}function Ed(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0;e=u;u=u+16|0;g=e;h=f[a+40>>2]|0;i=f[a+44>>2]|0;if((h|0)==(i|0)){j=0;u=e;return j|0}a=g+11|0;k=g+4|0;l=d+11|0;m=d+4|0;n=0;o=h;a:while(1){f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=lh(f[o>>2]|0,c,g)|0;p=b[a>>0]|0;b:do if(h){q=p<<24>>24<0;r=p&255;s=q?f[k>>2]|0:r;t=b[l>>0]|0;v=t<<24>>24<0;if((s|0)==((v?f[m>>2]|0:t&255)|0)){t=f[g>>2]|0;w=q?t:g;x=v?f[d>>2]|0:d;v=(s|0)==0;y=t&255;c:do if(q){if(!v?Fi(w,x,s)|0:0){z=0;A=n;B=15;break b}}else if(!v){if((b[x>>0]|0)!=y<<24>>24){C=0;D=n;B=14;break b}t=g;E=r;F=x;while(1){E=E+-1|0;t=t+1|0;if(!E)break c;F=F+1|0;if((b[t>>0]|0)!=(b[F>>0]|0)){C=0;D=n;B=14;break b}}}while(0);C=1;D=f[o>>2]|0;B=14}else{C=0;D=n;B=14}}else{C=3;D=n;B=14}while(0);if((B|0)==14){B=0;if(p<<24>>24<0){z=C;A=D;B=15}else{G=C;H=D}}if((B|0)==15){B=0;Ko(f[g>>2]|0);G=z;H=A}switch(G&3){case 3:case 0:break;default:{j=H;B=18;break a}}o=o+4|0;if((o|0)==(i|0)){j=0;B=18;break}else n=H}if((B|0)==18){u=e;return j|0}return 0}function Fd(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=u;u=u+16|0;e=d;if(!(kc(a,c)|0)){g=0;u=d;return g|0}h=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;i=a+36|0;j=a+40|0;k=f[j>>2]|0;l=f[i>>2]|0;m=k-l>>2;n=l;l=k;if(h>>>0<=m>>>0){if(h>>>0<m>>>0){k=n+(h<<2)|0;if((k|0)!=(l|0)){n=l;do{n=n+-4|0;l=f[n>>2]|0;f[n>>2]=0;if(l|0)Pa[f[(f[l>>2]|0)+4>>2]&127](l)}while((n|0)!=(k|0))}f[j>>2]=k}}else Se(i,h-m|0);m=c+8|0;if((h|0)<=0){g=1;u=d;return g|0}k=c+16|0;j=0;while(1){n=m;l=f[n+4>>2]|0;o=k;p=f[o>>2]|0;q=f[o+4>>2]|0;if(!((l|0)>(q|0)|((l|0)==(q|0)?(f[n>>2]|0)>>>0>p>>>0:0))){g=0;r=21;break}n=b[(f[c>>2]|0)+p>>0]|0;l=vl(p|0,q|0,1,0)|0;q=k;f[q>>2]=l;f[q+4>>2]=H;Ra[f[(f[a>>2]|0)+48>>2]&15](e,a,n);n=(f[i>>2]|0)+(j<<2)|0;q=f[e>>2]|0;f[e>>2]=0;l=f[n>>2]|0;f[n>>2]=q;if(l|0)Pa[f[(f[l>>2]|0)+4>>2]&127](l);l=f[e>>2]|0;f[e>>2]=0;if(l|0)Pa[f[(f[l>>2]|0)+4>>2]&127](l);l=f[(f[i>>2]|0)+(j<<2)>>2]|0;if(!l){g=0;r=21;break}q=f[(f[l>>2]|0)+8>>2]|0;n=Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0;p=La[f[(f[a>>2]|0)+20>>2]&127](a,j)|0;j=j+1|0;if(!(Ma[q&31](l,n,p)|0)){g=0;r=21;break}if((j|0)>=(h|0)){g=1;r=21;break}}if((r|0)==21){u=d;return g|0}return 0}function Gd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return kb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Hd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return mb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Id(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return lb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Jd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(gf(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+36|0,c)|0)){r=0;return r|0}if(!(gf(a+56|0,c)|0)){r=0;return r|0}if(gf(a+76|0,c)|0)return jb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Kd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(gf(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+36|0,c)|0)){r=0;return r|0}if(!(gf(a+56|0,c)|0)){r=0;return r|0}if(gf(a+76|0,c)|0)return ib(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Ld(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(rd(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+32|0,c)|0)){r=0;return r|0}if(!(gf(a+52|0,c)|0)){r=0;return r|0}if(gf(a+72|0,c)|0)return pb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Md(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(rd(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+32|0,c)|0)){r=0;return r|0}if(!(gf(a+52|0,c)|0)){r=0;return r|0}if(gf(a+72|0,c)|0)return nb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Nd(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0.0;a:do if(b>>>0<=20)do switch(b|0){case 9:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;f[a>>2]=e;break a;break}case 10:{e=(f[c>>2]|0)+(4-1)&~(4-1);d=f[e>>2]|0;f[c>>2]=e+4;e=a;f[e>>2]=d;f[e+4>>2]=((d|0)<0)<<31>>31;break a;break}case 11:{d=(f[c>>2]|0)+(4-1)&~(4-1);e=f[d>>2]|0;f[c>>2]=d+4;d=a;f[d>>2]=e;f[d+4>>2]=0;break a;break}case 12:{d=(f[c>>2]|0)+(8-1)&~(8-1);e=d;g=f[e>>2]|0;h=f[e+4>>2]|0;f[c>>2]=d+8;d=a;f[d>>2]=g;f[d+4>>2]=h;break a;break}case 13:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&65535)<<16>>16;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 14:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&65535;f[h+4>>2]=0;break a;break}case 15:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=(d&255)<<24>>24;d=a;f[d>>2]=h;f[d+4>>2]=((h|0)<0)<<31>>31;break a;break}case 16:{h=(f[c>>2]|0)+(4-1)&~(4-1);d=f[h>>2]|0;f[c>>2]=h+4;h=a;f[h>>2]=d&255;f[h+4>>2]=0;break a;break}case 17:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}case 18:{h=(f[c>>2]|0)+(8-1)&~(8-1);i=+p[h>>3];f[c>>2]=h+8;p[a>>3]=i;break a;break}default:break a}while(0);while(0);return}function Od(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+16|0;e=d+12|0;g=d;h=wk(52)|0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;f[h+12>>2]=0;f[h+16>>2]=1065353216;i=h+20|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[h+36>>2]=1065353216;f[h+40>>2]=0;f[h+44>>2]=0;f[h+48>>2]=0;jo(e);if(Af(e,f[c+32>>2]|0,h)|0){e=(f[c+4>>2]|0)+4|0;c=f[e>>2]|0;f[e>>2]=h;if(c|0){e=c+40|0;i=f[e>>2]|0;if(i|0){j=c+44|0;k=f[j>>2]|0;if((k|0)==(i|0))l=i;else{m=k;do{m=m+-4|0;k=f[m>>2]|0;f[m>>2]=0;if(k|0){eh(k);Ko(k)}}while((m|0)!=(i|0));l=f[e>>2]|0}f[j>>2]=i;Ko(l)}eh(c);Ko(c)}f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=d;return}else{f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;c=wk(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=26;l=c;i=13159;j=l+26|0;do{b[l>>0]=b[i>>0]|0;l=l+1|0;i=i+1|0}while((l|0)<(j|0));b[c+26>>0]=0;f[a>>2]=-1;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);g=h+40|0;a=f[g>>2]|0;if(a|0){c=h+44|0;i=f[c>>2]|0;if((i|0)==(a|0))n=a;else{l=i;do{l=l+-4|0;i=f[l>>2]|0;f[l>>2]=0;if(i|0){eh(i);Ko(i)}}while((l|0)!=(a|0));n=f[g>>2]|0}f[c>>2]=a;Ko(n)}eh(h);Ko(h);u=d;return}}function Pd(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=3408;b=f[a+388>>2]|0;if(b|0){f[a+392>>2]=b;Ko(b)}b=a+368|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+-4|0;d=f[b>>2]|0;if(d|0){e=c+(d<<4)|0;do e=e+-16|0;while((e|0)!=(c|0))}Io(b)}Ch(a+216|0);b=f[a+196>>2]|0;if(b|0){f[a+200>>2]=b;Ko(b)}b=f[a+184>>2]|0;if(b|0){f[a+188>>2]=b;Ko(b)}b=f[a+172>>2]|0;if(b|0){f[a+176>>2]=b;Ko(b)}b=f[a+160>>2]|0;if(b|0){f[a+164>>2]=b;Ko(b)}b=f[a+144>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Ko(b)}while((c|0)!=0)}c=a+136|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Ko(b);b=f[a+120>>2]|0;if(b|0)Ko(b);b=f[a+108>>2]|0;if(b|0)Ko(b);b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+60>>2]|0;if(b|0)Ko(b);b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+36>>2]|0;if(b|0){f[a+40>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=a+8|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;Ko(b)}b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=f[a>>2]|0;if(b|0){f[a+4>>2]=b;Ko(b)}Ko(a);return}function Qd(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=Ia,k=0,l=0,m=0,o=0,p=0,q=Ia,r=Ia,s=Ia,t=Ia,v=Ia,w=0,x=Ia,y=Ia,z=0,A=0;g=u;u=u+32|0;h=g+16|0;i=g;j=_(n[d+4>>2]);k=(1<<f[d>>2])+-1|0;dn(h);qk(h,j,k)|0;d=f[a>>2]|0;if((d|0)==(f[c>>2]|0)){u=g;return}a=h+4|0;l=i+4|0;m=i+8|0;o=e+16|0;p=e+28|0;e=d;do{d=(f[e>>2]|0)-k|0;if((d|0)>-1){j=_(d|0);q=_(n[a>>2]);r=_(q*j);j=_(n[h>>2]);s=_(r*j);t=q;v=j}else{w=wl(0,0,d|0,((d|0)<0)<<31>>31|0)|0;j=_(+(w>>>0)+4294967296.0*+(H|0));q=_(n[a>>2]);r=_(q*j);j=_(n[h>>2]);s=_(-_(r*j));t=q;v=j}w=(f[e+4>>2]|0)-k|0;if((w|0)>-1)x=_(_(t*_(w|0))*v);else{d=wl(0,0,w|0,((w|0)<0)<<31>>31|0)|0;x=_(-_(_(t*_(+(d>>>0)+4294967296.0*+(H|0)))*v))}d=(f[e+8>>2]|0)-k|0;if((d|0)>-1)y=_(_(t*_(d|0))*v);else{w=wl(0,0,d|0,((d|0)<0)<<31>>31|0)|0;y=_(-_(_(t*_(+(w>>>0)+4294967296.0*+(H|0)))*v))}n[i>>2]=s;n[l>>2]=x;n[m>>2]=y;w=f[o>>2]|0;d=f[w>>2]|0;z=f[p>>2]|0;if(!(b[d+84>>0]|0))A=f[(f[d+68>>2]|0)+(z<<2)>>2]|0;else A=z;z=f[d+40>>2]|0;Bf((f[f[d+64>>2]>>2]|0)+(W(A,z)|0)|0,i+(f[w+4>>2]<<2)|0,z|0)|0;f[p>>2]=(f[p>>2]|0)+1;e=e+12|0}while((e|0)!=(f[c>>2]|0));u=g;return}function Rd(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;c=u;u=u+32|0;d=c;e=a+4|0;g=f[a>>2]|0;h=(f[e>>2]|0)-g>>2;i=h+1|0;if(i>>>0>1073741823)$n(a);j=a+8|0;k=(f[j>>2]|0)-g|0;g=k>>1;l=k>>2>>>0<536870911?(g>>>0<i>>>0?i:g):1073741823;g=d+12|0;f[g>>2]=0;f[d+16>>2]=a+8;do if(l)if(l>>>0>1073741823){i=qa(8)|0;Dm(i,13552);f[i>>2]=4908;ta(i|0,1128,105)}else{m=wk(l<<2)|0;break}else m=0;while(0);f[d>>2]=m;i=m+(h<<2)|0;h=d+8|0;k=d+4|0;f[k>>2]=i;n=m+(l<<2)|0;f[g>>2]=n;l=f[b>>2]|0;f[b>>2]=0;f[i>>2]=l;l=i+4|0;f[h>>2]=l;b=f[a>>2]|0;m=f[e>>2]|0;if((m|0)==(b|0)){o=i;p=g;q=h;r=b;s=l;t=m;v=n;w=o;f[a>>2]=w;f[k>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;Og(d);u=c;return}n=m;m=i;do{n=n+-4|0;i=f[n>>2]|0;f[n>>2]=0;f[m+-4>>2]=i;m=(f[k>>2]|0)+-4|0;f[k>>2]=m}while((n|0)!=(b|0));o=m;p=g;q=h;r=f[a>>2]|0;s=f[h>>2]|0;t=f[e>>2]|0;v=f[g>>2]|0;w=o;f[a>>2]=w;f[k>>2]=r;f[e>>2]=s;f[q>>2]=t;x=f[j>>2]|0;f[j>>2]=v;f[p>>2]=x;f[d>>2]=r;Og(d);u=c;return}function Sd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return db(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Td(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return fb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Ud(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(Kc(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+544|0,c)|0)){r=0;return r|0}if(!(gf(a+564|0,c)|0)){r=0;return r|0}if(gf(a+584|0,c)|0)return eb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Vd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;e=u;u=u+32|0;g=e+8|0;i=e+4|0;j=e;f[g>>2]=0;k=g+4|0;f[k>>2]=0;f[g+8>>2]=0;l=c+8|0;m=f[l>>2]|0;n=f[l+4>>2]|0;l=c+16|0;o=l;p=f[o>>2]|0;q=f[o+4>>2]|0;o=vl(p|0,q|0,4,0)|0;r=H;a:do if((n|0)<(r|0)|(n|0)==(r|0)&m>>>0<o>>>0)s=0;else{t=f[c>>2]|0;v=t+p|0;w=h[v>>0]|h[v+1>>0]<<8|h[v+2>>0]<<16|h[v+3>>0]<<24;v=l;f[v>>2]=o;f[v+4>>2]=r;b:do switch(w|0){case 3:{if(!((n|0)>(r|0)|(n|0)==(r|0)&m>>>0>o>>>0)){s=0;break a}v=b[t+o>>0]|0;x=vl(p|0,q|0,5,0)|0;y=l;f[y>>2]=x;f[y+4>>2]=H;f[a+8>>2]=v<<24>>24;if(v<<24>>24==1)if($b(a,c,g)|0)break b;else{s=0;break a}else{Pi(5156,23,1,f[948]|0)|0;s=0;break a}break}case 2:{if(!($b(a,c,g)|0)){s=0;break a}break}default:{Pi(5180,24,1,f[948]|0)|0;s=0;break a}}while(0);f[i>>2]=f[g>>2];f[j>>2]=f[k>>2];Qd(i,j,a,d);s=1}while(0);d=f[g>>2]|0;if(!d){u=e;return s|0}f[k>>2]=d;Ko(d);u=e;return s|0}function Wd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(gf(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+36|0,c)|0)){r=0;return r|0}if(!(gf(a+56|0,c)|0)){r=0;return r|0}if(gf(a+76|0,c)|0)return cb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Xd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(gf(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+36|0,c)|0)){r=0;return r|0}if(!(gf(a+56|0,c)|0)){r=0;return r|0}if(gf(a+76|0,c)|0)return bb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Yd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(rd(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+32|0,c)|0)){r=0;return r|0}if(!(gf(a+52|0,c)|0)){r=0;return r|0}if(gf(a+72|0,c)|0)return hb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function Zd(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=c+8|0;g=e;i=f[g>>2]|0;j=f[g+4>>2]|0;g=c+16|0;k=g;l=f[k>>2]|0;m=f[k+4>>2]|0;k=vl(l|0,m|0,4,0)|0;n=H;if((j|0)<(n|0)|(j|0)==(n|0)&i>>>0<k>>>0){o=f[a>>2]|0;p=l;q=m}else{m=(f[c>>2]|0)+l|0;l=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[a>>0]=l;b[a+1>>0]=l>>8;b[a+2>>0]=l>>16;b[a+3>>0]=l>>24;m=g;k=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=H;i=g;f[i>>2]=k;f[i+4>>2]=m;o=l;p=k;q=m}if(o>>>0>32){r=0;return r|0}o=a+4|0;m=e;e=f[m>>2]|0;k=f[m+4>>2]|0;m=vl(p|0,q|0,4,0)|0;q=H;if((k|0)<(q|0)|(k|0)==(q|0)&e>>>0<m>>>0)s=f[o>>2]|0;else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;b[o>>0]=p;b[o+1>>0]=p>>8;b[o+2>>0]=p>>16;b[o+3>>0]=p>>24;m=g;e=vl(f[m>>2]|0,f[m+4>>2]|0,4,0)|0;m=g;f[m>>2]=e;f[m+4>>2]=H;s=p}if(!s){r=1;return r|0}f[a+8>>2]=0;if(!(rd(a+16|0,c)|0)){r=0;return r|0}if(!(gf(a+32|0,c)|0)){r=0;return r|0}if(!(gf(a+52|0,c)|0)){r=0;return r|0}if(gf(a+72|0,c)|0)return gb(a,f[o>>2]|0,d)|0;else{r=0;return r|0}return 0}function _d(a){a=a|0;var b=0,c=0,d=0,e=0;f[a>>2]=3240;b=a+368|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=c+-4|0;d=f[b>>2]|0;if(d|0){e=c+(d<<4)|0;do e=e+-16|0;while((e|0)!=(c|0))}Io(b)}Ch(a+216|0);b=f[a+196>>2]|0;if(b|0){f[a+200>>2]=b;Ko(b)}b=f[a+184>>2]|0;if(b|0){f[a+188>>2]=b;Ko(b)}b=f[a+172>>2]|0;if(b|0){f[a+176>>2]=b;Ko(b)}b=f[a+160>>2]|0;if(b|0){f[a+164>>2]=b;Ko(b)}b=f[a+144>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Ko(b)}while((c|0)!=0)}c=a+136|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Ko(b);b=f[a+120>>2]|0;if(b|0)Ko(b);b=f[a+108>>2]|0;if(b|0)Ko(b);b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+60>>2]|0;if(b|0)Ko(b);b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+36>>2]|0;if(b|0){f[a+40>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=a+8|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;Ko(b)}b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=f[a>>2]|0;if(b|0){f[a+4>>2]=b;Ko(b)}Ko(a);return}function $d(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;Wh(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+100|0;h=f[e>>2]|0;i=(f[h+28>>2]|0)-(f[h+24>>2]|0)>>2;f[c>>2]=0;h=a+104|0;j=f[g>>2]|0;k=(f[h>>2]|0)-j>>2;if(i>>>0<=k>>>0){if(i>>>0<k>>>0)f[h>>2]=j+(i<<2)}else Of(g,i-k|0,c);k=a+120|0;a=f[k>>2]|0;if(!a){i=f[e>>2]|0;g=(f[i+4>>2]|0)-(f[i>>2]|0)>>2;i=(g>>>0)/3|0;if(g>>>0<=2){l=1;u=b;return l|0}g=0;while(1){f[d>>2]=g*3;f[c>>2]=f[d>>2];g=g+1|0;if(!(xb(e,c)|0)){l=0;m=14;break}if(g>>>0>=i>>>0){l=1;m=14;break}}if((m|0)==14){u=b;return l|0}}else{i=f[a>>2]|0;if((f[a+4>>2]|0)==(i|0)){l=1;u=b;return l|0}a=0;g=i;while(1){f[d>>2]=f[g+(a<<2)>>2];f[c>>2]=f[d>>2];a=a+1|0;if(!(xb(e,c)|0)){l=0;m=14;break}i=f[k>>2]|0;g=f[i>>2]|0;if(a>>>0>=(f[i+4>>2]|0)-g>>2>>>0){l=1;m=14;break}}if((m|0)==14){u=b;return l|0}}return 0}function ae(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=u;u=u+32|0;e=d+12|0;g=d;h=Wi(c,0)|0;if(!h){f[a>>2]=0;u=d;return}i=f[c+100>>2]|0;j=f[c+96>>2]|0;c=i-j|0;k=(c|0)/12|0;f[e>>2]=0;l=e+4|0;f[l>>2]=0;m=e+8|0;f[m>>2]=0;n=j;do if(c)if(k>>>0>357913941)$n(e);else{o=wk(c)|0;f[e>>2]=o;f[m>>2]=o+(k*12|0);oh(o|0,0,c|0)|0;f[l>>2]=o+c;p=o;break}else p=0;while(0);f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;if((i|0)!=(j|0)){j=g+4|0;i=g+8|0;if(!(b[h+84>>0]|0)){c=f[h+68>>2]|0;h=0;do{m=f[c+(f[n+(h*12|0)>>2]<<2)>>2]|0;f[g>>2]=m;o=f[c+(f[n+(h*12|0)+4>>2]<<2)>>2]|0;f[j>>2]=o;q=f[c+(f[n+(h*12|0)+8>>2]<<2)>>2]|0;f[i>>2]=q;f[p+(h*12|0)>>2]=m;f[p+(h*12|0)+4>>2]=o;f[p+(h*12|0)+8>>2]=q;h=h+1|0}while(h>>>0<k>>>0)}else{h=0;do{c=n+(h*12|0)|0;f[g>>2]=f[c>>2];f[g+4>>2]=f[c+4>>2];f[g+8>>2]=f[c+8>>2];f[p+(h*12|0)>>2]=f[g>>2];f[p+(h*12|0)+4>>2]=f[j>>2];f[p+(h*12|0)+8>>2]=f[i>>2];h=h+1|0}while(h>>>0<k>>>0)}}og(a,e);a=f[e>>2]|0;if(a|0){f[l>>2]=a;Ko(a)}u=d;return}function be(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>2;if(h>>>0<=l>>>0)if(h>>>0<l>>>0){f[j>>2]=k+(h<<2);m=g;n=h}else{m=g;n=h}else{Of(i,h-l|0,3328);l=f[e>>2]|0;m=l;n=f[l+80>>2]|0}l=f[m+96>>2]|0;e=(f[m+100>>2]|0)-l|0;m=(e|0)/12|0;h=l;if(!e){o=1;return o|0}e=a+80|0;a=c+68|0;c=0;while(1){l=c*3|0;if((l|0)==-1){o=0;p=11;break}i=f[d>>2]|0;g=f[i+(l<<2)>>2]|0;if((g|0)==-1){o=0;p=11;break}k=f[(f[e>>2]|0)+12>>2]|0;j=f[k+(g<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}g=f[a>>2]|0;f[g+(f[h+(c*12|0)>>2]<<2)>>2]=j;j=l+1|0;if((j|0)==-1){o=0;p=11;break}q=f[i+(j<<2)>>2]|0;if((q|0)==-1){o=0;p=11;break}j=f[k+(q<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}f[g+(f[h+(c*12|0)+4>>2]<<2)>>2]=j;j=l+2|0;if((j|0)==-1){o=0;p=11;break}l=f[i+(j<<2)>>2]|0;if((l|0)==-1){o=0;p=11;break}j=f[k+(l<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}f[g+(f[h+(c*12|0)+8>>2]<<2)>>2]=j;c=c+1|0;if(c>>>0>=m>>>0){o=1;p=11;break}}if((p|0)==11)return o|0;return 0}function ce(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;e=u;u=u+32|0;g=e+20|0;h=e+16|0;i=e;j=c+24|0;k=b[j>>0]|0;l=k<<24>>24;m=f[a+80>>2]|0;a=W(m,l)|0;f[i>>2]=f[294];f[i+4>>2]=f[295];f[i+8>>2]=f[296];f[i+12>>2]=f[297];n=d+4|0;o=f[d>>2]|0;p=(f[n>>2]|0)-o>>2;if(a>>>0<=p>>>0){if(a>>>0<p>>>0)f[n>>2]=o+(a<<2)}else Eg(d,a-p|0);if(!m){q=1;u=e;return q|0}p=c+84|0;a=c+68|0;if(k<<24>>24<=0){k=0;while(1){if(!(b[p>>0]|0))r=f[(f[a>>2]|0)+(k<<2)>>2]|0;else r=k;f[h>>2]=r;o=b[j>>0]|0;f[g>>2]=f[h>>2];if(!(ob(c,g,o,i)|0)){q=0;s=19;break}k=k+1|0;if(k>>>0>=m>>>0){q=1;s=19;break}}if((s|0)==19){u=e;return q|0}}k=0;r=0;while(1){if(!(b[p>>0]|0))t=f[(f[a>>2]|0)+(r<<2)>>2]|0;else t=r;f[h>>2]=t;o=b[j>>0]|0;f[g>>2]=f[h>>2];if(!(ob(c,g,o,i)|0)){q=0;s=19;break}o=f[d>>2]|0;n=0;v=k;while(1){f[o+(v<<2)>>2]=f[i+(n<<2)>>2];n=n+1|0;if((n|0)==(l|0))break;else v=v+1|0}r=r+1|0;if(r>>>0>=m>>>0){q=1;s=19;break}else k=k+l|0}if((s|0)==19){u=e;return q|0}return 0}function de(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;c=u;u=u+32|0;d=c;e=a+8|0;g=f[e>>2]|0;h=a+4|0;i=f[h>>2]|0;j=i;if(g-i>>2>>>0>=b>>>0){oh(i|0,0,b<<2|0)|0;f[h>>2]=j+(b<<2);u=c;return}k=f[a>>2]|0;l=i-k>>2;m=l+b|0;n=k;if(m>>>0>1073741823)$n(a);o=g-k|0;p=o>>1;q=o>>2>>>0<536870911?(p>>>0<m>>>0?m:p):1073741823;p=d+12|0;f[p>>2]=0;f[d+16>>2]=a+8;do if(q)if(q>>>0>1073741823){m=qa(8)|0;Dm(m,13552);f[m>>2]=4908;ta(m|0,1128,105)}else{r=wk(q<<2)|0;break}else r=0;while(0);f[d>>2]=r;m=r+(l<<2)|0;l=d+8|0;o=d+4|0;f[o>>2]=m;s=r+(q<<2)|0;f[p>>2]=s;oh(m|0,0,b<<2|0)|0;q=m+(b<<2)|0;f[l>>2]=q;if((j|0)==(n|0)){t=m;v=p;w=l;x=k;y=q;z=i;A=s;B=g}else{g=j;j=m;do{g=g+-4|0;m=f[g>>2]|0;f[g>>2]=0;f[j+-4>>2]=m;j=(f[o>>2]|0)+-4|0;f[o>>2]=j}while((g|0)!=(n|0));t=j;v=p;w=l;x=f[a>>2]|0;y=f[l>>2]|0;z=f[h>>2]|0;A=f[p>>2]|0;B=f[e>>2]|0}f[a>>2]=t;f[o>>2]=x;f[h>>2]=y;f[w>>2]=z;f[e>>2]=A;f[v>>2]=B;f[d>>2]=x;Og(d);u=c;return}function ee(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=f[a+8>>2]|0;e=a+112|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>2;if(h>>>0<=l>>>0)if(h>>>0<l>>>0){f[j>>2]=k+(h<<2);m=g;n=h}else{m=g;n=h}else{Of(i,h-l|0,3328);l=f[e>>2]|0;m=l;n=f[l+80>>2]|0}l=f[m+96>>2]|0;e=(f[m+100>>2]|0)-l|0;m=(e|0)/12|0;h=l;if(!e){o=1;return o|0}e=a+116|0;a=c+68|0;c=0;while(1){l=c*3|0;if((l|0)==-1){o=0;p=11;break}i=f[d>>2]|0;g=f[i+(l<<2)>>2]|0;if((g|0)==-1){o=0;p=11;break}k=f[(f[e>>2]|0)+12>>2]|0;j=f[k+(g<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}g=f[a>>2]|0;f[g+(f[h+(c*12|0)>>2]<<2)>>2]=j;j=l+1|0;if((j|0)==-1){o=0;p=11;break}q=f[i+(j<<2)>>2]|0;if((q|0)==-1){o=0;p=11;break}j=f[k+(q<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}f[g+(f[h+(c*12|0)+4>>2]<<2)>>2]=j;j=l+2|0;if((j|0)==-1){o=0;p=11;break}l=f[i+(j<<2)>>2]|0;if((l|0)==-1){o=0;p=11;break}j=f[k+(l<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=11;break}f[g+(f[h+(c*12|0)+8>>2]<<2)>>2]=j;c=c+1|0;if(c>>>0>=m>>>0){o=1;p=11;break}}if((p|0)==11)return o|0;return 0}function fe(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=c+8|0;e=f[d>>2]|0;g=f[d+4>>2]|0;d=c+16|0;i=d;k=f[i>>2]|0;l=f[i+4>>2]|0;i=vl(k|0,l|0,4,0)|0;m=H;if((g|0)<(m|0)|(g|0)==(m|0)&e>>>0<i>>>0){n=0;return n|0}o=f[c>>2]|0;p=o+k|0;q=h[p>>0]|h[p+1>>0]<<8|h[p+2>>0]<<16|h[p+3>>0]<<24;p=d;f[p>>2]=i;f[p+4>>2]=m;m=vl(k|0,l|0,8,0)|0;p=H;if((g|0)<(p|0)|(g|0)==(p|0)&e>>>0<m>>>0){n=0;return n|0}r=o+i|0;i=h[r>>0]|h[r+1>>0]<<8|h[r+2>>0]<<16|h[r+3>>0]<<24;r=d;f[r>>2]=m;f[r+4>>2]=p;if((q|0)>(i|0)){n=0;return n|0}f[a+12>>2]=q;f[a+16>>2]=i;r=wl(i|0,((i|0)<0)<<31>>31|0,q|0,((q|0)<0)<<31>>31|0)|0;q=H;if(!(q>>>0<0|(q|0)==0&r>>>0<2147483647)){n=0;return n|0}q=r+1|0;f[a+20>>2]=q;r=(q|0)/2|0;i=a+24|0;f[i>>2]=r;f[a+28>>2]=0-r;if(!(q&1))f[i>>2]=r+-1;if((j[c+38>>1]|0)<514){a:do if((g|0)>(p|0)|(g|0)==(p|0)&e>>>0>m>>>0){r=b[o+m>>0]|0;i=vl(k|0,l|0,9,0)|0;q=d;f[q>>2]=i;f[q+4>>2]=H;switch(r<<24>>24){case 0:{s=0;break a;break}case 1:{s=1;break a;break}default:{n=0;return n|0}}}else s=0;while(0);f[a+88>>2]=s}n=rd(a+108|0,c)|0;return n|0}function ge(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;if(!(f[a+64>>2]|0)){d=wk(32)|0;Kk(d);e=a+64|0;g=f[e>>2]|0;f[e>>2]=d;if(!g)h=d;else{d=f[g>>2]|0;if(d|0){f[g+4>>2]=d;Ko(d)}Ko(g);h=f[e>>2]|0}oi(a,h,0,0,0,0);i=a}else i=a;if(!(jh(i,c)|0))return;b[a+84>>0]=b[c+84>>0]|0;f[a+80>>2]=f[c+80>>2];if((a|0)!=(c|0))df(a+68|0,f[c+68>>2]|0,f[c+72>>2]|0);i=f[c+88>>2]|0;if(!i){c=a+88|0;h=f[c>>2]|0;f[c>>2]=0;if(!h)return;c=f[h+8>>2]|0;if(c|0){f[h+12>>2]=c;Ko(c)}Ko(h);return}h=wk(40)|0;f[h>>2]=f[i>>2];c=h+8|0;e=i+8|0;f[c>>2]=0;g=h+12|0;f[g>>2]=0;d=h+16|0;f[d>>2]=0;j=i+12|0;k=(f[j>>2]|0)-(f[e>>2]|0)|0;if(k|0){if((k|0)<0)$n(c);l=wk(k)|0;f[g>>2]=l;f[c>>2]=l;f[d>>2]=l+k;k=f[e>>2]|0;e=(f[j>>2]|0)-k|0;if((e|0)>0){Bf(l|0,k|0,e|0)|0;f[g>>2]=l+e}}e=h+24|0;l=i+24|0;f[e>>2]=f[l>>2];f[e+4>>2]=f[l+4>>2];f[e+8>>2]=f[l+8>>2];f[e+12>>2]=f[l+12>>2];l=a+88|0;a=f[l>>2]|0;f[l>>2]=h;if(!a)return;h=f[a+8>>2]|0;if(h|0){f[a+12>>2]=h;Ko(h)}Ko(a);return}function he(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=Ia,x=Ia,y=Ia,z=0;d=u;u=u+16|0;e=d;g=f[a+24>>2]|0;h=a+8|0;i=b[(f[h>>2]|0)+24>>0]|0;j=i<<24>>24;k=j<<2;l=Ho(j>>>0>1073741823?-1:j<<2)|0;dn(e);if(!(qk(e,_(n[a+32>>2]),(1<<g)+-1|0)|0)){m=0;Io(l);u=d;return m|0}g=f[a+16>>2]|0;if(!(f[g+80>>2]|0))o=0;else o=(f[f[g>>2]>>2]|0)+(f[g+48>>2]|0)|0;if(!c){m=1;Io(l);u=d;return m|0}g=e+4|0;p=a+28|0;if(i<<24>>24<=0){i=0;a=0;while(1){Bf((f[f[(f[h>>2]|0)+64>>2]>>2]|0)+a|0,l|0,k|0)|0;i=i+1|0;if((i|0)==(c|0)){m=1;break}else a=a+k|0}Io(l);u=d;return m|0}a=0;i=0;q=0;while(1){r=f[p>>2]|0;s=0;t=i;while(1){v=f[o+(t<<2)>>2]|0;if((v|0)>-1){w=_(v|0);x=_(_(n[g>>2])*w);y=_(x*_(n[e>>2]))}else{z=wl(0,0,v|0,((v|0)<0)<<31>>31|0)|0;x=_(+(z>>>0)+4294967296.0*+(H|0));w=_(_(n[g>>2])*x);y=_(-_(w*_(n[e>>2])))}w=_(y+_(n[r+(s<<2)>>2]));n[l+(s<<2)>>2]=w;s=s+1|0;if((s|0)==(j|0))break;else t=t+1|0}Bf((f[f[(f[h>>2]|0)+64>>2]>>2]|0)+q|0,l|0,k|0)|0;a=a+1|0;if((a|0)==(c|0)){m=1;break}else{i=i+j|0;q=q+k|0}}Io(l);u=d;return m|0}function ie(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;e=u;u=u+16|0;g=e;i=d+8|0;j=f[i>>2]|0;k=f[i+4>>2]|0;i=d+16|0;l=i;m=f[l>>2]|0;n=f[l+4>>2]|0;if((k|0)>(n|0)|(k|0)==(n|0)&j>>>0>m>>>0){l=b[(f[d>>2]|0)+m>>0]|0;o=vl(m|0,n|0,1,0)|0;p=H;q=i;f[q>>2]=o;f[q+4>>2]=p;if(l<<24>>24!=-2){r=l;s=p;t=o;v=3}}else{r=0;s=n;t=m;v=3}if((v|0)==3){if((k|0)>(s|0)|(k|0)==(s|0)&j>>>0>t>>>0){j=b[(f[d>>2]|0)+t>>0]|0;k=vl(t|0,s|0,1,0)|0;s=i;f[s>>2]=k;f[s+4>>2]=H;w=j}else w=0;Sa[f[(f[a>>2]|0)+40>>2]&7](g,a,r<<24>>24,w<<24>>24);w=a+20|0;r=f[g>>2]|0;f[g>>2]=0;j=f[w>>2]|0;f[w>>2]=r;if(j){Pa[f[(f[j>>2]|0)+4>>2]&127](j);j=f[g>>2]|0;f[g>>2]=0;if(j|0)Pa[f[(f[j>>2]|0)+4>>2]&127](j)}else f[g>>2]=0}g=f[a+20>>2]|0;if(g|0?!(La[f[(f[a>>2]|0)+28>>2]&127](a,g)|0):0){x=0;u=e;return x|0}if(!(Ma[f[(f[a>>2]|0)+36>>2]&31](a,c,d)|0)){x=0;u=e;return x|0}d=(f[c+4>>2]|0)-(f[c>>2]|0)>>2;c=f[a+4>>2]|0;if((c|0?((h[c+36>>0]|0)<<8&65535)<512:0)?!(La[f[(f[a>>2]|0)+48>>2]&127](a,d)|0):0){x=0;u=e;return x|0}x=1;u=e;return x|0}function je(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3316;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)$n(i);else{o=((n+-1|0)>>>5)+1|0;p=wk(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];xe(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)$n(i);k=((l+-1|0)>>>5)+1|0;l=wk(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];xe(i,e,d);u=c;return}function ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=u;u=u+32|0;d=c+12|0;e=c;g=b*3|0;f[d>>2]=0;h=d+4|0;f[h>>2]=0;i=d+8|0;f[i>>2]=0;do if(g)if(g>>>0>1073741823)$n(d);else{j=b*12|0;k=wk(j)|0;f[d>>2]=k;l=k+(g<<2)|0;f[i>>2]=l;oh(k|0,0,j|0)|0;f[h>>2]=l;m=k;break}else m=0;while(0);if(kh(g,1,f[a+32>>2]|0,m)|0)if(!b)n=1;else{m=a+44|0;a=e+4|0;g=e+8|0;i=0;k=0;l=0;while(1){f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;j=f[d>>2]|0;o=f[j+(k<<2)>>2]|0;p=o>>>1;q=((o&1|0)==0?p:0-p|0)+l|0;f[e>>2]=q;p=f[j+(k+1<<2)>>2]|0;o=p>>>1;r=((p&1|0)==0?o:0-o|0)+q|0;f[a>>2]=r;q=f[j+(k+2<<2)>>2]|0;j=q>>>1;l=((q&1|0)==0?j:0-j|0)+r|0;f[g>>2]=l;r=f[m>>2]|0;j=r+100|0;q=f[j>>2]|0;if((q|0)==(f[r+104>>2]|0))yg(r+96|0,e);else{f[q>>2]=f[e>>2];f[q+4>>2]=f[e+4>>2];f[q+8>>2]=f[e+8>>2];f[j>>2]=(f[j>>2]|0)+12}i=i+1|0;if(i>>>0>=b>>>0){n=1;break}else k=k+3|0}}else n=0;k=f[d>>2]|0;if(!k){u=c;return n|0}f[h>>2]=k;Ko(k);u=c;return n|0}function le(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=u;u=u+32|0;d=c+24|0;e=c+16|0;g=c+8|0;h=c;f[a>>2]=3364;f[a+4>>2]=f[b+4>>2];i=a+8|0;j=b+8|0;f[i>>2]=0;k=a+12|0;f[k>>2]=0;l=a+16|0;f[l>>2]=0;m=b+12|0;n=f[m>>2]|0;do if(n|0)if((n|0)<0)$n(i);else{o=((n+-1|0)>>>5)+1|0;p=wk(o<<2)|0;f[i>>2]=p;f[k>>2]=0;f[l>>2]=o;o=f[j>>2]|0;f[g>>2]=o;f[g+4>>2]=0;p=f[m>>2]|0;f[h>>2]=o+(p>>>5<<2);f[h+4>>2]=p&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];xe(i,e,d);break}while(0);i=a+20|0;f[i>>2]=0;m=a+24|0;f[m>>2]=0;j=a+28|0;f[j>>2]=0;a=b+24|0;l=f[a>>2]|0;if(!l){u=c;return}if((l|0)<0)$n(i);k=((l+-1|0)>>>5)+1|0;l=wk(k<<2)|0;f[i>>2]=l;f[m>>2]=0;f[j>>2]=k;k=f[b+20>>2]|0;f[g>>2]=k;f[g+4>>2]=0;b=f[a>>2]|0;f[h>>2]=k+(b>>>5<<2);f[h+4>>2]=b&31;f[e>>2]=f[g>>2];f[e+4>>2]=f[g+4>>2];f[d>>2]=f[h>>2];f[d+4>>2]=f[h+4>>2];xe(i,e,d);u=c;return}function me(a){a=a|0;var b=0,c=0;f[a>>2]=3456;gh(a+232|0);Ch(a+216|0);b=f[a+196>>2]|0;if(b|0){f[a+200>>2]=b;Ko(b)}b=f[a+184>>2]|0;if(b|0){f[a+188>>2]=b;Ko(b)}b=f[a+172>>2]|0;if(b|0){f[a+176>>2]=b;Ko(b)}b=f[a+160>>2]|0;if(b|0){f[a+164>>2]=b;Ko(b)}b=f[a+144>>2]|0;if(b|0){c=b;do{b=c;c=f[c>>2]|0;Ko(b)}while((c|0)!=0)}c=a+136|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0)Ko(b);b=f[a+120>>2]|0;if(b|0)Ko(b);b=f[a+108>>2]|0;if(b|0)Ko(b);b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+60>>2]|0;if(b|0)Ko(b);b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+36>>2]|0;if(b|0){f[a+40>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=a+8|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;Ko(b)}b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=f[a>>2]|0;if(b|0){f[a+4>>2]=b;Ko(b)}Ko(a);return}function ne(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=u;u=u+80|0;h=g;i=g+60|0;j=g+40|0;k=h;l=d;m=k+40|0;do{f[k>>2]=f[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));fc(a,h,i);if(f[a>>2]|0){u=g;return}h=a+4|0;n=h+11|0;if((b[n>>0]|0)<0)Ko(f[h>>2]|0);if(b[i+7>>0]|0){f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;o=wk(32)|0;f[j>>2]=o;f[j+8>>2]=-2147483616;f[j+4>>2]=27;k=o;l=11903;m=k+27|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[o+27>>0]=0;f[a>>2]=-1;Yi(h,j);if((b[j+11>>0]|0)<0)Ko(f[j>>2]|0);u=g;return}zf(j,b[i+8>>0]|0);i=f[j>>2]|0;if(!i){o=j+16|0;l=f[o>>2]|0;f[o>>2]=0;Bc(a,l,c,d,e);if(!(f[a>>2]|0)){if((b[n>>0]|0)<0)Ko(f[h>>2]|0);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0}if(l|0)Pa[f[(f[l>>2]|0)+4>>2]&127](l)}else{f[a>>2]=i;Yi(h,j+4|0)}h=j+16|0;i=f[h>>2]|0;f[h>>2]=0;if(i|0)Pa[f[(f[i>>2]|0)+4>>2]&127](i);i=j+4|0;if((b[i+11>>0]|0)<0)Ko(f[i>>2]|0);u=g;return}function oe(a,c,e){a=a|0;c=c|0;e=e|0;var g=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0;g=u;u=u+16|0;h=g;i=c+24|0;k=b[i>>0]|0;l=k<<24>>24;f[h>>2]=0;m=h+4|0;f[m>>2]=0;n=h+8|0;f[n>>2]=0;do if(k<<24>>24)if(k<<24>>24<0)$n(h);else{o=l<<1;p=wk(o)|0;f[h>>2]=p;q=p+(l<<1)|0;f[n>>2]=q;oh(p|0,0,o|0)|0;f[m>>2]=q;q=l<<1;o=wk(q)|0;oh(o|0,0,q|0)|0;r=o;s=o;t=p;v=p;break}else{r=0;s=0;t=0;v=0}while(0);l=c+80|0;if(f[l>>2]|0){n=c+48|0;h=c+40|0;k=c+64|0;p=a+48|0;a=0;o=v;while(1){q=n;w=f[q>>2]|0;x=f[q+4>>2]|0;q=h;y=f[q>>2]|0;z=Bk(y|0,f[q+4>>2]|0,a|0,0)|0;q=vl(z|0,H|0,w|0,x|0)|0;Bf(o|0,(f[f[c>>2]>>2]|0)+q|0,y|0)|0;y=b[i>>0]|0;if(y<<24>>24>0){q=f[p>>2]|0;x=y<<24>>24;y=0;do{d[s+(y<<1)>>1]=(f[q+(y+e<<2)>>2]|0)+(j[t+(y<<1)>>1]|0);y=y+1|0}while((y|0)<(x|0));A=v}else A=o;x=f[h>>2]|0;Bf((f[f[k>>2]>>2]|0)+(W(a,x)|0)|0,s|0,x|0)|0;a=a+1|0;if(a>>>0>=(f[l>>2]|0)>>>0)break;else o=A}}if(r|0)Ko(s);if(!t){u=g;return 1}f[m>>2]=t;Ko(v);u=g;return 1}function pe(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;e=u;u=u+16|0;g=e;h=c+24|0;i=b[h>>0]|0;j=i<<24>>24;f[g>>2]=0;k=g+4|0;f[k>>2]=0;l=g+8|0;f[l>>2]=0;do if(i<<24>>24)if(i<<24>>24<0)$n(g);else{m=j<<2;n=wk(m)|0;f[g>>2]=n;o=n+(j<<2)|0;f[l>>2]=o;oh(n|0,0,m|0)|0;f[k>>2]=o;o=j<<2;m=wk(o)|0;oh(m|0,0,o|0)|0;p=m;q=m;r=n;s=n;break}else{p=0;q=0;r=0;s=0}while(0);j=c+80|0;if(f[j>>2]|0){l=c+48|0;g=c+40|0;i=c+64|0;n=a+48|0;a=0;m=s;while(1){o=l;t=f[o>>2]|0;v=f[o+4>>2]|0;o=g;w=f[o>>2]|0;x=Bk(w|0,f[o+4>>2]|0,a|0,0)|0;o=vl(x|0,H|0,t|0,v|0)|0;Bf(m|0,(f[f[c>>2]>>2]|0)+o|0,w|0)|0;w=b[h>>0]|0;if(w<<24>>24>0){o=f[n>>2]|0;v=w<<24>>24;w=0;do{f[q+(w<<2)>>2]=(f[o+(w+d<<2)>>2]|0)+(f[r+(w<<2)>>2]|0);w=w+1|0}while((w|0)<(v|0));y=s}else y=m;v=f[g>>2]|0;Bf((f[f[i>>2]>>2]|0)+(W(a,v)|0)|0,q|0,v|0)|0;a=a+1|0;if(a>>>0>=(f[j>>2]|0)>>>0)break;else m=y}}if(p|0)Ko(q);if(!r){u=e;return 1}f[k>>2]=r;Ko(s);u=e;return 1}function qe(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=b[(f[a+8>>2]|0)+24>>0]|0;d=Ho(c>>>0>1073741823?-1:c<<2)|0;e=a+28|0;g=f[e>>2]|0;f[e>>2]=d;if(g|0)Io(g);g=a+4|0;d=f[(f[g>>2]|0)+32>>2]|0;i=c<<2;c=d+8|0;j=f[c>>2]|0;k=f[c+4>>2]|0;c=d+16|0;l=c;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,i|0,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&j>>>0<n>>>0){o=0;return o|0}Bf(f[e>>2]|0,(f[d>>2]|0)+m|0,i|0)|0;m=c;d=vl(f[m>>2]|0,f[m+4>>2]|0,i|0,0)|0;i=c;f[i>>2]=d;f[i+4>>2]=H;i=(f[g>>2]|0)+32|0;g=f[i>>2]|0;d=g+8|0;c=f[d>>2]|0;m=f[d+4>>2]|0;d=g+16|0;e=d;n=f[e>>2]|0;j=vl(n|0,f[e+4>>2]|0,4,0)|0;e=H;if((m|0)<(e|0)|(m|0)==(e|0)&c>>>0<j>>>0){o=0;return o|0}j=a+32|0;c=(f[g>>2]|0)+n|0;n=h[c>>0]|h[c+1>>0]<<8|h[c+2>>0]<<16|h[c+3>>0]<<24;b[j>>0]=n;b[j+1>>0]=n>>8;b[j+2>>0]=n>>16;b[j+3>>0]=n>>24;n=d;j=vl(f[n>>2]|0,f[n+4>>2]|0,4,0)|0;n=d;f[n>>2]=j;f[n+4>>2]=H;n=f[i>>2]|0;i=n+8|0;j=f[i+4>>2]|0;d=n+16|0;c=d;g=f[c>>2]|0;e=f[c+4>>2]|0;if(!((j|0)>(e|0)|((j|0)==(e|0)?(f[i>>2]|0)>>>0>g>>>0:0))){o=0;return o|0}i=b[(f[n>>2]|0)+g>>0]|0;n=vl(g|0,e|0,1,0)|0;e=d;f[e>>2]=n;f[e+4>>2]=H;if((i&255)>31){o=0;return o|0}f[a+24>>2]=i&255;o=1;return o|0}function re(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=b;Wf(a+16|0);ym(a+528|0);Wl(a+544|0);Wl(a+564|0);Wl(a+584|0);e=a+604|0;f[e>>2]=0;g=a+608|0;f[g>>2]=0;h=a+612|0;f[h>>2]=0;i=(b|0)==0;do if(!i)if(b>>>0>1073741823)$n(e);else{j=b<<2;k=wk(j)|0;f[e>>2]=k;l=k+(b<<2)|0;f[h>>2]=l;oh(k|0,0,j|0)|0;f[g>>2]=l;break}while(0);g=a+616|0;f[g>>2]=0;h=a+620|0;f[h>>2]=0;e=a+624|0;f[e>>2]=0;if(!i){l=b<<2;j=wk(l)|0;f[g>>2]=j;g=j+(b<<2)|0;f[e>>2]=g;oh(j|0,0,l|0)|0;f[h>>2]=g}g=b<<5|1;f[d>>2]=0;h=d+4|0;f[h>>2]=0;l=d+8|0;f[l>>2]=0;if(!i){j=b<<2;e=wk(j)|0;f[d>>2]=e;k=e+(b<<2)|0;f[l>>2]=k;oh(e|0,0,j|0)|0;f[h>>2]=k}fg(a+628|0,g,d);k=f[d>>2]|0;if(k|0){f[h>>2]=k;Ko(k)}f[d>>2]=0;k=d+4|0;f[k>>2]=0;h=d+8|0;f[h>>2]=0;if(!i){i=b<<2;j=wk(i)|0;f[d>>2]=j;e=j+(b<<2)|0;f[h>>2]=e;oh(j|0,0,i|0)|0;f[k>>2]=e}fg(a+640|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}f[k>>2]=g;Ko(g);u=c;return}function se(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;g=u;u=u+80|0;h=g;i=g+60|0;j=g+40|0;k=h;l=d;m=k+40|0;do{f[k>>2]=f[l>>2];k=k+4|0;l=l+4|0}while((k|0)<(m|0));fc(a,h,i);if(f[a>>2]|0){u=g;return}h=a+4|0;n=h+11|0;if((b[n>>0]|0)<0)Ko(f[h>>2]|0);if((b[i+7>>0]|0)!=1){f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;o=wk(32)|0;f[j>>2]=o;f[j+8>>2]=-2147483616;f[j+4>>2]=20;k=o;l=11882;m=k+20|0;do{b[k>>0]=b[l>>0]|0;k=k+1|0;l=l+1|0}while((k|0)<(m|0));b[o+20>>0]=0;f[a>>2]=-1;Yi(h,j);if((b[j+11>>0]|0)<0)Ko(f[j>>2]|0);u=g;return}Zf(j,b[i+8>>0]|0);i=f[j>>2]|0;if(!i){o=j+16|0;l=f[o>>2]|0;f[o>>2]=0;Nj(a,l,c,d,e);if(!(f[a>>2]|0)){if((b[n>>0]|0)<0)Ko(f[h>>2]|0);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0}if(l|0)Pa[f[(f[l>>2]|0)+4>>2]&127](l)}else{f[a>>2]=i;Yi(h,j+4|0)}h=j+16|0;i=f[h>>2]|0;f[h>>2]=0;if(i|0)Pa[f[(f[i>>2]|0)+4>>2]&127](i);i=j+4|0;if((b[i+11>>0]|0)<0)Ko(f[i>>2]|0);u=g;return}function te(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0;d=c+8|0;e=f[d>>2]|0;g=f[d+4>>2]|0;d=c+16|0;i=d;k=f[i>>2]|0;l=f[i+4>>2]|0;i=vl(k|0,l|0,4,0)|0;m=H;if((g|0)<(m|0)|(g|0)==(m|0)&e>>>0<i>>>0){n=0;return n|0}o=f[c>>2]|0;p=o+k|0;q=h[p>>0]|h[p+1>>0]<<8|h[p+2>>0]<<16|h[p+3>>0]<<24;p=d;f[p>>2]=i;f[p+4>>2]=m;p=(j[c+38>>1]|0)<514;do if(p){r=vl(k|0,l|0,8,0)|0;s=H;if((g|0)<(s|0)|(g|0)==(s|0)&e>>>0<r>>>0){n=0;return n|0}else{t=d;f[t>>2]=r;f[t+4>>2]=s;u=s;v=r;break}}else{u=m;v=i}while(0);if(!(q&1)){n=0;return n|0}i=(Z(q|0)|0)^31;if((i+-1|0)>>>0>28){n=0;return n|0}f[a+8>>2]=i+1;q=2<<i;f[a+12>>2]=q+-1;i=q+-2|0;f[a+16>>2]=i;f[a+20>>2]=(i|0)/2|0;if(p){a:do if((g|0)>(u|0)|(g|0)==(u|0)&e>>>0>v>>>0){p=b[o+v>>0]|0;i=vl(v|0,u|0,1,0)|0;q=d;f[q>>2]=i;f[q+4>>2]=H;switch(p<<24>>24){case 0:{w=0;break a;break}case 1:{w=1;break a;break}default:{n=0;return n|0}}}else w=0;while(0);f[a+68>>2]=w}n=rd(a+88|0,c)|0;return n|0}function ue(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;c=a+4|0;d=f[c>>2]|0;e=d;g=f[a>>2]|0;h=g;do if((d|0)==(g|0)){i=a+8|0;j=f[i>>2]|0;k=a+12|0;l=f[k>>2]|0;m=l;if(j>>>0<l>>>0){l=j;n=((m-l>>2)+1|0)/2|0;o=j+(n<<2)|0;p=l-e|0;l=o+(0-(p>>2)<<2)|0;if(!p){q=o;r=o}else{Rj(l|0,d|0,p|0)|0;q=l;r=(f[i>>2]|0)+(n<<2)|0}f[c>>2]=q;f[i>>2]=r;s=q;break}n=m-h|0;m=(n|0)==0?1:n>>1;n=(m+3|0)>>>2;do if(m)if(m>>>0>1073741823){l=qa(8)|0;Dm(l,13552);f[l>>2]=4908;ta(l|0,1128,105)}else{t=wk(m<<2)|0;break}else t=0;while(0);l=t;p=t+(n<<2)|0;o=p;u=t+(m<<2)|0;if((d|0)==(j|0)){v=o;w=d}else{x=((j+-4-e|0)>>>2)+n+1|0;y=p;z=d;while(1){f[y>>2]=f[z>>2];z=z+4|0;if((z|0)==(j|0))break;else y=y+4|0}v=t+(x<<2)|0;w=f[a>>2]|0}f[a>>2]=l;f[c>>2]=o;f[i>>2]=v;f[k>>2]=u;if(!w)s=p;else{Ko(w);s=f[c>>2]|0}}else s=d;while(0);f[s+-4>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+-4;return}function ve(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=b;Wl(a+16|0);Wl(a+36|0);Wl(a+56|0);Wl(a+76|0);e=a+96|0;f[e>>2]=0;g=a+100|0;f[g>>2]=0;h=a+104|0;f[h>>2]=0;i=(b|0)==0;do if(!i)if(b>>>0>1073741823)$n(e);else{j=b<<2;k=wk(j)|0;f[e>>2]=k;l=k+(b<<2)|0;f[h>>2]=l;oh(k|0,0,j|0)|0;f[g>>2]=l;break}while(0);g=a+108|0;f[g>>2]=0;h=a+112|0;f[h>>2]=0;e=a+116|0;f[e>>2]=0;if(!i){l=b<<2;j=wk(l)|0;f[g>>2]=j;g=j+(b<<2)|0;f[e>>2]=g;oh(j|0,0,l|0)|0;f[h>>2]=g}g=b<<5|1;f[d>>2]=0;h=d+4|0;f[h>>2]=0;l=d+8|0;f[l>>2]=0;if(!i){j=b<<2;e=wk(j)|0;f[d>>2]=e;k=e+(b<<2)|0;f[l>>2]=k;oh(e|0,0,j|0)|0;f[h>>2]=k}fg(a+120|0,g,d);k=f[d>>2]|0;if(k|0){f[h>>2]=k;Ko(k)}f[d>>2]=0;k=d+4|0;f[k>>2]=0;h=d+8|0;f[h>>2]=0;if(!i){i=b<<2;j=wk(i)|0;f[d>>2]=j;e=j+(b<<2)|0;f[h>>2]=e;oh(j|0,0,i|0)|0;f[k>>2]=e}fg(a+132|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}f[k>>2]=g;Ko(g);u=c;return}function we(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+16|0;d=c;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=b;ym(a+16|0);Wl(a+32|0);Wl(a+52|0);Wl(a+72|0);e=a+92|0;f[e>>2]=0;g=a+96|0;f[g>>2]=0;h=a+100|0;f[h>>2]=0;i=(b|0)==0;do if(!i)if(b>>>0>1073741823)$n(e);else{j=b<<2;k=wk(j)|0;f[e>>2]=k;l=k+(b<<2)|0;f[h>>2]=l;oh(k|0,0,j|0)|0;f[g>>2]=l;break}while(0);g=a+104|0;f[g>>2]=0;h=a+108|0;f[h>>2]=0;e=a+112|0;f[e>>2]=0;if(!i){l=b<<2;j=wk(l)|0;f[g>>2]=j;g=j+(b<<2)|0;f[e>>2]=g;oh(j|0,0,l|0)|0;f[h>>2]=g}g=b<<5|1;f[d>>2]=0;h=d+4|0;f[h>>2]=0;l=d+8|0;f[l>>2]=0;if(!i){j=b<<2;e=wk(j)|0;f[d>>2]=e;k=e+(b<<2)|0;f[l>>2]=k;oh(e|0,0,j|0)|0;f[h>>2]=k}fg(a+116|0,g,d);k=f[d>>2]|0;if(k|0){f[h>>2]=k;Ko(k)}f[d>>2]=0;k=d+4|0;f[k>>2]=0;h=d+8|0;f[h>>2]=0;if(!i){i=b<<2;j=wk(i)|0;f[d>>2]=j;e=j+(b<<2)|0;f[h>>2]=e;oh(j|0,0,i|0)|0;f[k>>2]=e}fg(a+128|0,g,d);g=f[d>>2]|0;if(!g){u=c;return}f[k>>2]=g;Ko(g);u=c;return}function xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0;d=u;u=u+48|0;e=d+40|0;g=d+32|0;h=d+8|0;i=d;j=d+24|0;k=d+16|0;l=a+4|0;m=f[l>>2]|0;n=b;b=f[n>>2]|0;o=f[n+4>>2]|0;n=c;c=f[n>>2]|0;p=f[n+4>>2]|0;n=c-b<<3;f[l>>2]=m-o+p+n;l=(f[a>>2]|0)+(m>>>5<<2)|0;a=m&31;m=l;if((a|0)!=(o|0)){q=h;f[q>>2]=b;f[q+4>>2]=o;q=i;f[q>>2]=c;f[q+4>>2]=p;f[j>>2]=m;f[j+4>>2]=a;f[g>>2]=f[h>>2];f[g+4>>2]=f[h+4>>2];f[e>>2]=f[i>>2];f[e+4>>2]=f[i+4>>2];id(k,g,e,j);u=d;return}j=p-o+n|0;n=b;if((j|0)>0){if(!o){r=j;s=0;t=l;v=n}else{b=32-o|0;p=(j|0)<(b|0)?j:b;e=-1>>>(b-p|0)&-1<<o;f[l>>2]=f[l>>2]&~e|f[n>>2]&e;e=p+o|0;r=j-p|0;s=e&31;t=l+(e>>>5<<2)|0;v=n+4|0}n=(r|0)/32|0;Rj(t|0,v|0,n<<2|0)|0;e=r-(n<<5)|0;r=t+(n<<2)|0;t=r;if((e|0)>0){l=-1>>>(32-e|0);f[r>>2]=f[r>>2]&~l|f[v+(n<<2)>>2]&l;w=e;x=t}else{w=s;x=t}}else{w=o;x=m}f[k>>2]=x;f[k+4>>2]=w;u=d;return}function ye(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=f[a+8>>2]|0;e=a+76|0;g=f[e>>2]|0;h=f[g+80>>2]|0;b[c+84>>0]=0;i=c+68|0;j=c+72|0;k=f[i>>2]|0;l=(f[j>>2]|0)-k>>2;if(h>>>0<=l>>>0)if(h>>>0<l>>>0){f[j>>2]=k+(h<<2);m=g;n=h}else{m=g;n=h}else{Of(i,h-l|0,3328);l=f[e>>2]|0;m=l;n=f[l+80>>2]|0}l=f[m+96>>2]|0;e=(f[m+100>>2]|0)-l|0;m=(e|0)/12|0;h=l;if(!e){o=1;return o|0}e=a+80|0;a=c+68|0;c=f[d+28>>2]|0;d=0;while(1){l=d*3|0;i=f[c+(l<<2)>>2]|0;if((i|0)==-1){o=0;p=10;break}g=f[(f[e>>2]|0)+12>>2]|0;k=f[g+(i<<2)>>2]|0;if(k>>>0>=n>>>0){o=0;p=10;break}i=f[a>>2]|0;f[i+(f[h+(d*12|0)>>2]<<2)>>2]=k;k=f[c+(l+1<<2)>>2]|0;if((k|0)==-1){o=0;p=10;break}j=f[g+(k<<2)>>2]|0;if(j>>>0>=n>>>0){o=0;p=10;break}f[i+(f[h+(d*12|0)+4>>2]<<2)>>2]=j;j=f[c+(l+2<<2)>>2]|0;if((j|0)==-1){o=0;p=10;break}l=f[g+(j<<2)>>2]|0;if(l>>>0>=n>>>0){o=0;p=10;break}f[i+(f[h+(d*12|0)+8>>2]<<2)>>2]=l;d=d+1|0;if(d>>>0>=m>>>0){o=1;p=10;break}}if((p|0)==10)return o|0;return 0}function ze(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0;h=u;u=u+32|0;i=h+16|0;j=h;k=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(d<<2)>>2]|0;do if((c+-1|0)>>>0<6&(Ka[f[(f[b>>2]|0)+8>>2]&127](b)|0)==1){l=Ka[f[(f[b>>2]|0)+36>>2]&127](b)|0;m=La[f[(f[b>>2]|0)+44>>2]&127](b,d)|0;if((l|0)==0|(m|0)==0){f[a>>2]=0;u=h;return}n=La[f[(f[b>>2]|0)+40>>2]&127](b,d)|0;if(!n){f[j>>2]=f[b+44>>2];f[j+4>>2]=l;f[j+12>>2]=m;f[j+8>>2]=m+12;ic(a,i,c,k,e,j,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}else{f[j>>2]=f[b+44>>2];f[j+4>>2]=n;f[j+12>>2]=m;f[j+8>>2]=m+12;hc(a,i,c,k,e,j,g);if(!(f[a>>2]|0)){f[a>>2]=0;break}u=h;return}}while(0);f[a>>2]=0;u=h;return}function Ae(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(sc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=Vc(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<4194304){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=4194304){r=t;break}else q=t}}else r=o;while(0);q=r&1048575;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>20)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function Be(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(vc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=Wc(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<2097152){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=2097152){r=t;break}else q=t}}else r=o;while(0);q=r&524287;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>19)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function Ce(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(wc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=Xc(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<1048576){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=1048576){r=t;break}else q=t}}else r=o;while(0);q=r&262143;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>18)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function De(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(xc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=Yc(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<262144){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=262144){r=t;break}else q=t}}else r=o;while(0);q=r&65535;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>16)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function Ee(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(yc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=Zc(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<131072){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=131072){r=t;break}else q=t}}else r=o;while(0);q=r&32767;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>15)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function Fe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(tc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=$c(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<32768){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=32768){r=t;break}else q=t}}else r=o;while(0);q=r&8191;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>13)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function Ge(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;d=u;u=u+64|0;e=d;g=e;i=g+52|0;do{f[g>>2]=0;g=g+4|0}while((g|0)<(i|0));do if(uc(e,b)|0){g=(a|0)==0;if(!g?(f[e+12>>2]|0)==0:0){j=0;break}i=ad(e,b)|0;if(g|i^1)j=i;else{i=e+44|0;g=e+48|0;k=e+40|0;l=e+16|0;m=e+28|0;n=0;o=f[g>>2]|0;while(1){a:do if(o>>>0<16384){p=f[i>>2]|0;q=o;while(1){if((p|0)<=0){r=q;break a}s=f[k>>2]|0;p=p+-1|0;f[i>>2]=p;t=q<<8|(h[s+p>>0]|0);f[g>>2]=t;if(t>>>0>=16384){r=t;break}else q=t}}else r=o;while(0);q=r&4095;p=f[(f[l>>2]|0)+(q<<2)>>2]|0;t=f[m>>2]|0;o=(W(f[t+(p<<3)>>2]|0,r>>>12)|0)+q-(f[t+(p<<3)+4>>2]|0)|0;f[g>>2]=o;f[c+(n<<2)>>2]=p;n=n+1|0;if((n|0)==(a|0)){j=1;break}}}}else j=0;while(0);a=f[e+28>>2]|0;if(a|0){f[e+32>>2]=a;Ko(a)}a=f[e+16>>2]|0;if(a|0){f[e+20>>2]=a;Ko(a)}a=f[e>>2]|0;if(!a){u=d;return j|0}f[e+4>>2]=a;Ko(a);u=d;return j|0}function He(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;f[a+4>>2]=f[b+4>>2];c=a+8|0;d=b+8|0;if((a|0)==(b|0))return a|0;e=b+12|0;g=f[e>>2]|0;if(!g)h=0;else{i=a+16|0;do if(g>>>0>f[i>>2]<<5>>>0){j=f[c>>2]|0;if(!j)k=g;else{Ko(j);f[c>>2]=0;f[i>>2]=0;f[a+12>>2]=0;k=f[e>>2]|0}if((k|0)<0)$n(c);else{j=((k+-1|0)>>>5)+1|0;l=wk(j<<2)|0;f[c>>2]=l;f[a+12>>2]=0;f[i>>2]=j;m=f[e>>2]|0;n=l;break}}else{m=g;n=f[c>>2]|0}while(0);Rj(n|0,f[d>>2]|0,((m+-1|0)>>>5<<2)+4|0)|0;h=f[e>>2]|0}f[a+12>>2]=h;h=a+20|0;e=b+20|0;m=b+24|0;b=f[m>>2]|0;if(!b)o=0;else{d=a+28|0;do if(b>>>0>f[d>>2]<<5>>>0){n=f[h>>2]|0;if(!n)p=b;else{Ko(n);f[h>>2]=0;f[d>>2]=0;f[a+24>>2]=0;p=f[m>>2]|0}if((p|0)<0)$n(h);else{n=((p+-1|0)>>>5)+1|0;c=wk(n<<2)|0;f[h>>2]=c;f[a+24>>2]=0;f[d>>2]=n;q=f[m>>2]|0;r=c;break}}else{q=b;r=f[h>>2]|0}while(0);Rj(r|0,f[e>>2]|0,((q+-1|0)>>>5<<2)+4|0)|0;o=f[m>>2]|0}f[a+24>>2]=o;return a|0}function Ie(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(((d-g|0)/12|0)>>>0>=b>>>0){oh(g|0,0,b*12|0)|0;f[e>>2]=h+(b*12|0);return}i=f[a>>2]|0;j=(g-i|0)/12|0;g=j+b|0;k=i;if(g>>>0>357913941)$n(a);l=(d-i|0)/12|0;d=l<<1;m=l>>>0<178956970?(d>>>0<g>>>0?g:d):357913941;do if(m)if(m>>>0>357913941){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{n=wk(m*12|0)|0;break}else n=0;while(0);d=n+(j*12|0)|0;j=n+(m*12|0)|0;oh(d|0,0,b*12|0)|0;m=d+(b*12|0)|0;if((h|0)==(k|0)){o=d;p=k;q=h;r=i}else{i=h;h=d;do{d=h;h=h+-12|0;b=i;i=i+-12|0;f[h>>2]=0;n=d+-8|0;f[n>>2]=0;g=d+-4|0;f[g>>2]=0;f[h>>2]=f[i>>2];d=b+-8|0;f[n>>2]=f[d>>2];n=b+-4|0;f[g>>2]=f[n>>2];f[n>>2]=0;f[d>>2]=0;f[i>>2]=0}while((i|0)!=(k|0));k=f[a>>2]|0;o=h;p=k;q=f[e>>2]|0;r=k}f[a>>2]=o;f[e>>2]=m;f[c>>2]=j;if((q|0)!=(p|0)){j=q;do{q=j;j=j+-12|0;c=f[j>>2]|0;if(c|0){f[q+-8>>2]=c;Ko(c)}}while((j|0)!=(p|0))}if(!r)return;Ko(r);return}function Je(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;f[c>>2]=1;d=a+4|0;e=c+8|0;g=c+12|0;c=f[e>>2]|0;i=(f[g>>2]|0)-c|0;if(i>>>0<4294967292){eg(e,i+4|0,0);j=f[e>>2]|0}else j=c;c=j+i|0;i=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[c>>0]=i;b[c+1>>0]=i>>8;b[c+2>>0]=i>>16;b[c+3>>0]=i>>24;i=a+8|0;c=a+12|0;d=f[i>>2]|0;if((f[c>>2]|0)!=(d|0)){j=0;k=d;do{d=k+(j<<2)|0;l=f[e>>2]|0;m=(f[g>>2]|0)-l|0;if(m>>>0<4294967292){eg(e,m+4|0,0);n=f[e>>2]|0}else n=l;l=n+m|0;m=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[l>>0]=m;b[l+1>>0]=m>>8;b[l+2>>0]=m>>16;b[l+3>>0]=m>>24;j=j+1|0;k=f[i>>2]|0}while(j>>>0<(f[c>>2]|0)-k>>2>>>0)}k=a+20|0;a=f[e>>2]|0;c=(f[g>>2]|0)-a|0;if(c>>>0<4294967292){eg(e,c+4|0,0);o=f[e>>2]|0;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}else{o=a;p=o+c|0;q=h[k>>0]|h[k+1>>0]<<8|h[k+2>>0]<<16|h[k+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;return}}function Ke(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0;c=a+8|0;d=f[c>>2]|0;e=a+12|0;g=f[e>>2]|0;h=g;do if((d|0)==(g|0)){i=a+4|0;j=f[i>>2]|0;k=j;l=f[a>>2]|0;m=l;if(j>>>0>l>>>0){n=((k-m>>2)+1|0)/-2|0;o=j+(n<<2)|0;p=d-k|0;if(!p)q=o;else{Rj(o|0,j|0,p|0)|0;q=(f[i>>2]|0)+(n<<2)|0}n=o+(p>>2<<2)|0;f[c>>2]=n;f[i>>2]=q;r=n;break}n=h-m|0;m=(n|0)==0?1:n>>1;n=m>>>2;do if(m)if(m>>>0>1073741823){p=qa(8)|0;Dm(p,13552);f[p>>2]=4908;ta(p|0,1128,105)}else{s=wk(m<<2)|0;break}else s=0;while(0);p=s;o=s+(n<<2)|0;t=o;u=s+(m<<2)|0;if((j|0)==(d|0)){v=t;w=l}else{x=n+((d+-4-k|0)>>>2)+1|0;y=o;o=j;while(1){f[y>>2]=f[o>>2];o=o+4|0;if((o|0)==(d|0))break;else y=y+4|0}v=s+(x<<2)|0;w=f[a>>2]|0}f[a>>2]=p;f[i>>2]=t;f[c>>2]=v;f[e>>2]=u;if(!w)r=v;else{Ko(w);r=f[c>>2]|0}}else r=d;while(0);f[r>>2]=f[b>>2];f[c>>2]=(f[c>>2]|0)+4;return}function Le(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0;e=a+4|0;g=f[e>>2]|0;if(!g){f[c>>2]=e;h=e;return h|0}e=b[d+11>>0]|0;i=e<<24>>24<0;j=i?f[d+4>>2]|0:e&255;e=i?f[d>>2]|0:d;d=a+4|0;a=g;while(1){g=a+16|0;i=b[g+11>>0]|0;k=i<<24>>24<0;l=k?f[a+20>>2]|0:i&255;i=l>>>0<j>>>0;m=i?l:j;n=(m|0)==0;if(!n?(o=k?f[g>>2]|0:g,p=Fi(e,o,m)|0,(p|0)!=0):0)if((p|0)<0)q=7;else{r=o;q=11}else if(j>>>0>=l>>>0)if(n)q=12;else{r=k?f[g>>2]|0:g;q=11}else q=7;if((q|0)==7){q=0;g=f[a>>2]|0;if(!g){q=8;break}else{s=a;t=g}}else if((q|0)==11){q=0;g=Fi(r,e,m)|0;if(g)if((g|0)<0)q=14;else{q=16;break}else q=12}if((q|0)==12){q=0;if(i)q=14;else{q=16;break}}if((q|0)==14){q=0;u=a+4|0;i=f[u>>2]|0;if(!i){q=15;break}else{s=u;t=i}}d=s;a=t}if((q|0)==8){f[c>>2]=a;h=a;return h|0}else if((q|0)==15){f[c>>2]=a;h=u;return h|0}else if((q|0)==16){f[c>>2]=a;h=d;return h|0}return 0}function Me(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;Wh(f[a+4>>2]|0,(f[g+56>>2]|0)-(f[g+52>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[(f[e>>2]|0)+64>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){j=1;u=b;return j|0}i=0;while(1){f[d>>2]=i*3;f[c>>2]=f[d>>2];i=i+1|0;if(!(Hb(e,c)|0)){j=0;k=10;break}if(i>>>0>=h>>>0){j=1;k=10;break}}if((k|0)==10){u=b;return j|0}}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){j=1;u=b;return j|0}a=0;i=h;while(1){f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];a=a+1|0;if(!(Hb(e,c)|0)){j=0;k=10;break}h=f[g>>2]|0;i=f[h>>2]|0;if(a>>>0>=(f[h+4>>2]|0)-i>>2>>>0){j=1;k=10;break}}if((k|0)==10){u=b;return j|0}}return 0}function Ne(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;d=c+8|0;e=f[d>>2]|0;g=f[d+4>>2]|0;d=c+16|0;i=d;k=f[i>>2]|0;l=f[i+4>>2]|0;i=vl(k|0,l|0,4,0)|0;m=H;if((g|0)<(m|0)|(g|0)==(m|0)&e>>>0<i>>>0){n=0;return n|0}o=f[c>>2]|0;p=o+k|0;q=h[p>>0]|h[p+1>>0]<<8|h[p+2>>0]<<16|h[p+3>>0]<<24;p=d;f[p>>2]=i;f[p+4>>2]=m;m=vl(k|0,l|0,8,0)|0;p=H;if((g|0)<(p|0)|(g|0)==(p|0)&e>>>0<m>>>0){n=0;return n|0}i=d;f[i>>2]=m;f[i+4>>2]=p;if(!(q&1)){n=0;return n|0}i=(Z(q|0)|0)^31;if((i+-1|0)>>>0>28){n=0;return n|0}f[a+8>>2]=i+1;q=2<<i;f[a+12>>2]=q+-1;i=q+-2|0;f[a+16>>2]=i;f[a+20>>2]=(i|0)/2|0;if((j[c+38>>1]|0)<514){a:do if((g|0)>(p|0)|(g|0)==(p|0)&e>>>0>m>>>0){i=b[o+m>>0]|0;q=vl(k|0,l|0,9,0)|0;r=d;f[r>>2]=q;f[r+4>>2]=H;switch(i<<24>>24){case 0:{s=0;break a;break}case 1:{s=1;break a;break}default:{n=0;return n|0}}}else s=0;while(0);f[a+68>>2]=s}n=rd(a+88|0,c)|0;return n|0}function Oe(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=u;u=u+16|0;c=b+4|0;d=b;e=a+8|0;g=f[e>>2]|0;Wh(f[a+4>>2]|0,(f[g+28>>2]|0)-(f[g+24>>2]|0)>>2);g=a+84|0;a=f[g>>2]|0;if(!a){h=f[e>>2]|0;i=(f[h+4>>2]|0)-(f[h>>2]|0)>>2;h=(i>>>0)/3|0;if(i>>>0<=2){j=1;u=b;return j|0}i=0;while(1){f[d>>2]=i*3;f[c>>2]=f[d>>2];i=i+1|0;if(!(Ib(e,c)|0)){j=0;k=10;break}if(i>>>0>=h>>>0){j=1;k=10;break}}if((k|0)==10){u=b;return j|0}}else{h=f[a>>2]|0;if((f[a+4>>2]|0)==(h|0)){j=1;u=b;return j|0}a=0;i=h;while(1){f[d>>2]=f[i+(a<<2)>>2];f[c>>2]=f[d>>2];a=a+1|0;if(!(Ib(e,c)|0)){j=0;k=10;break}h=f[g>>2]|0;i=f[h>>2]|0;if(a>>>0>=(f[h+4>>2]|0)-i>>2>>>0){j=1;k=10;break}}if((k|0)==10){u=b;return j|0}}return 0}function Pe(a,b,c,d){a=a|0;b=_(b);c=_(c);d=d|0;var e=Ia,f=Ia,g=Ia,h=Ia,i=Ia,j=Ia,k=0.0,l=Ia,m=Ia,o=0.0,p=0.0,q=0.0,r=0.0,s=0.0,t=Ia,u=Ia,v=0,w=0;e=_(b+c);f=_(b-c);if(!(f<=_(.5))|(!(f>=_(-.5))|(!(e>=_(.5))|!(e<=_(1.5))))){do if(!(e<=_(.5))){if(e>=_(1.5)){g=_(_(1.5)-c);h=_(_(1.5)-b);break}if(!(f<=_(-.5))){g=_(c+_(.5));h=_(b+_(-.5));break}else{g=_(c+_(-.5));h=_(b+_(.5));break}}else{g=_(_(.5)-c);h=_(_(.5)-b)}while(0);i=_(h+g);j=_(g-h);k=-1.0;l=g;m=h}else{i=e;j=f;k=1.0;l=b;m=c}c=_(+l*2.0+-1.0);l=_(+m*2.0+-1.0);o=+i*2.0;p=o+-1.0;q=3.0-o;o=+j*2.0;r=o+1.0;s=1.0-o;o=s<r?s:r;r=q<p?q:p;j=_(k*(o<r?o:r));i=_(_(l*l)+_(_(c*c)+_(j*j)));if(+i<1.0e-06){n[d>>2]=_(0.0);t=_(0.0);u=_(0.0);v=d+4|0;n[v>>2]=u;w=d+8|0;n[w>>2]=t;return}else{m=_(_(1.0)/_(K(_(i))));i=_(m*j);n[d>>2]=i;t=_(m*l);u=_(m*c);v=d+4|0;n[v>>2]=u;w=d+8|0;n[w>>2]=t;return}}function Qe(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;f[a>>2]=c;f[a+68>>2]=0;f[a+72>>2]=0;ae(e,c);g=a+4|0;h=f[e>>2]|0;f[e>>2]=0;i=f[g>>2]|0;f[g>>2]=h;if(!i){f[e>>2]=0;j=h}else{h=f[i+76>>2]|0;if(h|0){f[i+80>>2]=h;Ko(h)}h=f[i+64>>2]|0;if(h|0){f[i+68>>2]=h;Ko(h)}h=f[i+48>>2]|0;if(h|0){f[i+52>>2]=h;Ko(h)}h=f[i+24>>2]|0;if(h|0){f[i+28>>2]=h;Ko(h)}h=f[i+12>>2]|0;if(h|0){f[i+16>>2]=h;Ko(h)}h=f[i>>2]|0;if(h|0){f[i+4>>2]=h;Ko(h)}Ko(i);i=f[e>>2]|0;f[e>>2]=0;if(i|0){h=f[i+76>>2]|0;if(h|0){f[i+80>>2]=h;Ko(h)}h=f[i+64>>2]|0;if(h|0){f[i+68>>2]=h;Ko(h)}h=f[i+48>>2]|0;if(h|0){f[i+52>>2]=h;Ko(h)}h=f[i+24>>2]|0;if(h|0){f[i+28>>2]=h;Ko(h)}h=f[i+12>>2]|0;if(h|0){f[i+16>>2]=h;Ko(h)}h=f[i>>2]|0;if(h|0){f[i+4>>2]=h;Ko(h)}Ko(i)}j=f[g>>2]|0}if(!j){k=0;u=d;return k|0}j=((f[c+100>>2]|0)-(f[c+96>>2]|0)|0)/12|0;b[e>>0]=0;Gf(a+56|0,j,e);k=1;u=d;return k|0}function Re(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0;e=c&255;g=(d|0)!=0;a:do if(g&(a&3|0)!=0){h=c&255;i=a;j=d;while(1){if((b[i>>0]|0)==h<<24>>24){k=i;l=j;m=6;break a}n=i+1|0;o=j+-1|0;p=(o|0)!=0;if(p&(n&3|0)!=0){i=n;j=o}else{q=n;r=o;s=p;m=5;break}}}else{q=a;r=d;s=g;m=5}while(0);if((m|0)==5)if(s){k=q;l=r;m=6}else m=16;b:do if((m|0)==6){r=c&255;if((b[k>>0]|0)==r<<24>>24)if(!l){m=16;break}else{t=k;break}q=W(e,16843009)|0;c:do if(l>>>0>3){s=k;g=l;while(1){d=f[s>>2]^q;if((d&-2139062144^-2139062144)&d+-16843009|0){u=g;v=s;break c}d=s+4|0;a=g+-4|0;if(a>>>0>3){s=d;g=a}else{w=d;x=a;m=11;break}}}else{w=k;x=l;m=11}while(0);if((m|0)==11)if(!x){m=16;break}else{u=x;v=w}q=v;g=u;while(1){if((b[q>>0]|0)==r<<24>>24){t=q;break b}g=g+-1|0;if(!g){m=16;break}else q=q+1|0}}while(0);if((m|0)==16)t=0;return t|0}function Se(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){oh(g|0,0,b<<2|0)|0;f[e>>2]=h+(b<<2);return}i=f[a>>2]|0;j=g-i>>2;g=j+b|0;k=i;if(g>>>0>1073741823)$n(a);l=d-i|0;d=l>>1;m=l>>2>>>0<536870911?(d>>>0<g>>>0?g:d):1073741823;do if(m)if(m>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{n=wk(m<<2)|0;break}else n=0;while(0);d=n+(j<<2)|0;g=n+(m<<2)|0;oh(d|0,0,b<<2|0)|0;m=d+(b<<2)|0;if((h|0)==(k|0)){o=d;p=k;q=h;r=i}else{b=j+-1-((h+-4+(0-i)|0)>>>2)|0;i=h;h=d;do{h=h+-4|0;i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[h>>2]=d}while((i|0)!=(k|0));k=f[a>>2]|0;o=n+(b<<2)|0;p=k;q=f[e>>2]|0;r=k}f[a>>2]=o;f[e>>2]=m;f[c>>2]=g;if((q|0)!=(p|0)){g=q;do{g=g+-4|0;q=f[g>>2]|0;f[g>>2]=0;if(q|0)Pa[f[(f[q>>2]|0)+4>>2]&127](q)}while((g|0)!=(p|0))}if(!r)return;Ko(r);return}function Te(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var g=0,i=0,j=0,k=0,l=0;if((b|0)==-2)g=0;else{i=f[(f[(f[d+4>>2]|0)+8>>2]|0)+(c<<2)>>2]|0;do if((Ka[f[(f[d>>2]|0)+8>>2]&127](d)|0)==1){ze(a,d,b,c,e,((h[d+36>>0]|0)<<8|(h[d+37>>0]|0))&65535);if(!(f[a>>2]|0)){f[a>>2]=0;break}else return}while(0);d=wk(44)|0;f[d>>2]=1536;f[d+4>>2]=i;i=d+8|0;f[i>>2]=f[e>>2];f[i+4>>2]=f[e+4>>2];f[i+8>>2]=f[e+8>>2];f[i+12>>2]=f[e+12>>2];f[i+16>>2]=f[e+16>>2];f[i+20>>2]=f[e+20>>2];i=d+32|0;f[i>>2]=0;c=d+36|0;f[c>>2]=0;b=d+40|0;f[b>>2]=0;j=f[e+24>>2]|0;k=(f[e+28>>2]|0)-j|0;e=k>>2;if(k|0){if(e>>>0>1073741823)$n(i);l=wk(k)|0;f[c>>2]=l;f[i>>2]=l;f[b>>2]=l+(e<<2);if((k|0)>0){Bf(l|0,j|0,k|0)|0;f[c>>2]=l+(k>>>2<<2)}}f[d>>2]=1592;g=d}f[a>>2]=g;return}function Ue(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=f[a+32>>2]|0;d=c+8|0;e=f[d+4>>2]|0;g=c+16|0;h=g;i=f[h>>2]|0;j=f[h+4>>2]|0;if(!((e|0)>(j|0)|((e|0)==(j|0)?(f[d>>2]|0)>>>0>i>>>0:0))){k=0;return k|0}d=b[(f[c>>2]|0)+i>>0]|0;c=vl(i|0,j|0,1,0)|0;j=g;f[j>>2]=c;f[j+4>>2]=H;j=a+48|0;c=f[j>>2]|0;f[j>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);switch(d<<24>>24){case 0:{d=wk(384)|0;Kh(d);c=f[j>>2]|0;f[j>>2]=d;if(!c)l=d;else{Pa[f[(f[c>>2]|0)+4>>2]&127](c);m=11}break}case 1:{c=wk(424)|0;bh(c);d=f[j>>2]|0;f[j>>2]=c;if(!d)l=c;else{Pa[f[(f[d>>2]|0)+4>>2]&127](d);m=11}break}case 2:{d=wk(440)|0;Gg(d);c=f[j>>2]|0;f[j>>2]=d;if(!c)l=d;else{Pa[f[(f[c>>2]|0)+4>>2]&127](c);m=11}break}default:m=11}if((m|0)==11){m=f[j>>2]|0;if(!m){k=0;return k|0}else l=m}k=La[f[(f[l>>2]|0)+8>>2]&127](l,a)|0;return k|0}function Ve(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=u;u=u+32|0;g=e+12|0;h=e;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;i=Dh(c)|0;if(i>>>0>4294967279)$n(g);if(i>>>0<11){b[g+11>>0]=i;if(!i)j=g;else{k=g;l=6}}else{m=i+16&-16;n=wk(m)|0;f[g>>2]=n;f[g+8>>2]=m|-2147483648;f[g+4>>2]=i;k=n;l=6}if((l|0)==6){Bf(k|0,c|0,i|0)|0;j=k}b[j+i>>0]=0;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;i=Dh(d)|0;if(i>>>0>4294967279)$n(h);if(i>>>0<11){b[h+11>>0]=i;if(!i)o=h;else{p=h;l=12}}else{j=i+16&-16;k=wk(j)|0;f[h>>2]=k;f[h+8>>2]=j|-2147483648;f[h+4>>2]=i;p=k;l=12}if((l|0)==12){Bf(p|0,d|0,i|0)|0;o=p}b[o+i>>0]=0;i=f[a+4>>2]|0;if((i|0)!=0?(o=Ed(i,g,h)|0,(o|0)!=0):0)q=Di(a,f[o+40>>2]|0)|0;else q=-1;if((b[h+11>>0]|0)<0)Ko(f[h>>2]|0);if((b[g+11>>0]|0)>=0){u=e;return q|0}Ko(f[g>>2]|0);u=e;return q|0}function We(a,b,c){a=a|0;b=b|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;e=b;g=c-e|0;h=g>>1;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0<=j-k>>1>>>0){m=a+4|0;n=(f[m>>2]|0)-k>>1;o=h>>>0>n>>>0;p=b+(n<<1)|0;n=o?p:c;q=n;r=q-e|0;if(r|0)Rj(k|0,b|0,r|0)|0;if(!o){f[m>>2]=l+(r>>1<<1);return}if((n|0)==(c|0))return;n=f[m>>2]|0;r=c+-2-q|0;q=p;p=n;while(1){d[p>>1]=d[q>>1]|0;q=q+2|0;if((q|0)==(c|0))break;else p=p+2|0}f[m>>2]=n+((r>>>1)+1<<1);return}if(!k)s=j;else{j=a+4|0;f[j>>2]=k;Ko(k);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;s=0}if((g|0)<0)$n(a);g=s>>1>>>0<1073741823?(s>>>0<h>>>0?h:s):2147483647;if((g|0)<0)$n(a);s=wk(g<<1)|0;h=a+4|0;f[h>>2]=s;f[a>>2]=s;f[i>>2]=s+(g<<1);if((b|0)==(c|0))return;g=c+-2-e|0;e=b;b=s;while(1){d[b>>1]=d[e>>1]|0;e=e+2|0;if((e|0)==(c|0))break;else b=b+2|0}f[h>>2]=s+((g>>>1)+1<<1);return}function Xe(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;d=u;u=u+32|0;e=d+24|0;g=d+16|0;h=d+8|0;i=d;j=a+4|0;k=f[j>>2]|0;l=f[b>>2]|0;m=f[b+4>>2]|0;b=f[c>>2]|0;n=f[c+4>>2]|0;c=n-m+(b-l<<3)|0;f[j>>2]=c+k;j=(f[a>>2]|0)+(k>>>5<<2)|0;a=k&31;k=j;if((m|0)!=(a|0)){f[e>>2]=l;f[e+4>>2]=m;f[g>>2]=b;f[g+4>>2]=n;f[h>>2]=k;f[h+4>>2]=a;jd(i,e,g,h);u=d;return}h=l;if((c|0)>0){if(!m){o=c;p=j;q=0;r=l;s=h}else{l=32-m|0;g=(c|0)<(l|0)?c:l;e=-1>>>(l-g|0)&-1<<m;f[j>>2]=f[j>>2]&~e|f[h>>2]&e;e=g+m|0;l=h+4|0;o=c-g|0;p=j+(e>>>5<<2)|0;q=e&31;r=l;s=l}l=(o|0)/32|0;Rj(p|0,r|0,l<<2|0)|0;r=o-(l<<5)|0;o=p+(l<<2)|0;p=o;if((r|0)>0){e=-1>>>(32-r|0);f[o>>2]=f[o>>2]&~e|f[s+(l<<2)>>2]&e;t=r;v=p}else{t=q;v=p}}else{t=m;v=k}f[i>>2]=v;f[i+4>>2]=t;u=d;return}function Ye(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=b;e=c-d>>2;g=a+8|0;h=f[g>>2]|0;i=f[a>>2]|0;j=i;if(e>>>0<=h-i>>2>>>0){k=a+4|0;l=(f[k>>2]|0)-i>>2;m=e>>>0>l>>>0;n=b+(l<<2)|0;l=m?n:c;o=l;p=o-d|0;if(p|0)Rj(i|0,b|0,p|0)|0;if(!m){f[k>>2]=j+(p>>2<<2);return}if((l|0)==(c|0))return;l=f[k>>2]|0;p=c+-4-o|0;o=n;n=l;while(1){f[n>>2]=f[o>>2];o=o+4|0;if((o|0)==(c|0))break;else n=n+4|0}f[k>>2]=l+((p>>>2)+1<<2);return}if(!i)q=h;else{h=a+4|0;f[h>>2]=i;Ko(i);f[g>>2]=0;f[h>>2]=0;f[a>>2]=0;q=0}if(e>>>0>1073741823)$n(a);h=q>>1;i=q>>2>>>0<536870911?(h>>>0<e>>>0?e:h):1073741823;if(i>>>0>1073741823)$n(a);h=wk(i<<2)|0;e=a+4|0;f[e>>2]=h;f[a>>2]=h;f[g>>2]=h+(i<<2);if((b|0)==(c|0))return;i=c+-4-d|0;d=b;b=h;while(1){f[b>>2]=f[d>>2];d=d+4|0;if((d|0)==(c|0))break;else b=b+4|0}f[e>>2]=h+((i>>>2)+1<<2);return}function Ze(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=1536;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];b=a+32|0;e=c+24|0;f[b>>2]=0;g=a+36|0;f[g>>2]=0;h=a+40|0;f[h>>2]=0;i=c+28|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;j=c>>2;if(c|0){if(j>>>0>1073741823)$n(b);k=wk(c)|0;f[g>>2]=k;f[b>>2]=k;f[h>>2]=k+(j<<2);j=f[e>>2]|0;e=(f[i>>2]|0)-j|0;if((e|0)>0){Bf(k|0,j|0,e|0)|0;f[g>>2]=k+(e>>>2<<2)}}f[a>>2]=2320;e=a+44|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];f[a>>2]=2376;e=a+60|0;f[e>>2]=2432;f[a+64>>2]=0;f[a+68>>2]=0;k=a+72|0;f[k>>2]=f[d>>2];f[k+4>>2]=f[d+4>>2];f[k+8>>2]=f[d+8>>2];f[k+12>>2]=f[d+12>>2];f[e>>2]=2460;f[a+88>>2]=1;e=a+92|0;f[e>>2]=-1;f[e+4>>2]=-1;f[e+8>>2]=-1;f[e+12>>2]=-1;ym(a+108|0);return}function _e(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=1536;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];b=a+32|0;e=c+24|0;f[b>>2]=0;g=a+36|0;f[g>>2]=0;h=a+40|0;f[h>>2]=0;i=c+28|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;j=c>>2;if(c|0){if(j>>>0>1073741823)$n(b);k=wk(c)|0;f[g>>2]=k;f[b>>2]=k;f[h>>2]=k+(j<<2);j=f[e>>2]|0;e=(f[i>>2]|0)-j|0;if((e|0)>0){Bf(k|0,j|0,e|0)|0;f[g>>2]=k+(e>>>2<<2)}}f[a>>2]=1872;e=a+44|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];f[a>>2]=1928;e=a+60|0;f[e>>2]=1984;f[a+64>>2]=0;f[a+68>>2]=0;k=a+72|0;f[k>>2]=f[d>>2];f[k+4>>2]=f[d+4>>2];f[k+8>>2]=f[d+8>>2];f[k+12>>2]=f[d+12>>2];f[e>>2]=2012;f[a+88>>2]=1;e=a+92|0;f[e>>2]=-1;f[e+4>>2]=-1;f[e+8>>2]=-1;f[e+12>>2]=-1;ym(a+108|0);return}function $e(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;f[a>>2]=0;c=a+4|0;f[c>>2]=0;d=a+8|0;f[d>>2]=0;e=a+16|0;f[e>>2]=0;g=a+20|0;f[g>>2]=0;h=a+24|0;f[h>>2]=0;i=b+4|0;j=(f[i>>2]|0)-(f[b>>2]|0)|0;k=(j|0)/20|0;if(j|0){if(k>>>0>214748364)$n(e);l=wk(j)|0;f[g>>2]=l;f[e>>2]=l;f[h>>2]=l+(k*20|0);k=f[b>>2]|0;b=(f[i>>2]|0)-k|0;if((b|0)>0){Bf(l|0,k|0,b|0)|0;k=l+(((b>>>0)/20|0)*20|0)|0;f[g>>2]=k;f[a+28>>2]=0;if((k|0)==(l|0)){m=0;n=a+12|0;f[n>>2]=m;return}g=(k-l|0)/20|0;k=0;b=0;do{i=W(f[l+(k*20|0)+16>>2]|0,f[l+(k*20|0)+12>>2]|0)|0;b=b>>>0<i>>>0?i:b;k=k+1|0}while(k>>>0<g>>>0);if(!b){m=0;n=a+12|0;f[n>>2]=m;return}if((b|0)<0)$n(a);g=wk(b)|0;oh(g|0,0,b|0)|0;k=g+b|0;b=g;f[a>>2]=b;f[c>>2]=k;f[d>>2]=k;m=b;n=a+12|0;f[n>>2]=m;return}}f[a+28>>2]=0;m=0;n=a+12|0;f[n>>2]=m;return}function af(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=f[b>>2]|0;do if((c|0)!=-1){b=f[(f[(f[a+4>>2]|0)+12>>2]|0)+(c<<2)>>2]|0;d=c+1|0;e=((d>>>0)%3|0|0)==0?c+-2|0:d;if((e|0)==-1)g=-1;else{d=(e|0)/3|0;g=f[(f[(f[a>>2]|0)+96>>2]|0)+(d*12|0)+(e-(d*3|0)<<2)>>2]|0}if((b|0)!=-1){d=(((b>>>0)%3|0|0)==0?2:-1)+b|0;if((d|0)==-1){h=-1;i=b;j=0}else{e=(d|0)/3|0;h=f[(f[(f[a>>2]|0)+96>>2]|0)+(e*12|0)+(d-(e*3|0)<<2)>>2]|0;i=b;j=0}}else{h=-1;i=-1;j=1}if((g|0)!=(h|0)){k=-1;return k|0}b=(((c>>>0)%3|0|0)==0?2:-1)+c|0;if((b|0)==-1)if(j){l=-1;m=-1;n=i;break}else o=-1;else{e=(b|0)/3|0;d=f[(f[(f[a>>2]|0)+96>>2]|0)+(e*12|0)+(b-(e*3|0)<<2)>>2]|0;if(j){l=-1;m=d;n=i;break}else o=d}d=i+1|0;e=((d>>>0)%3|0|0)==0?i+-2|0:d;if((e|0)==-1){l=-1;m=o;n=i}else{d=(e|0)/3|0;l=f[(f[(f[a>>2]|0)+96>>2]|0)+(d*12|0)+(e-(d*3|0)<<2)>>2]|0;m=o;n=i}}else{l=-1;m=-1;n=-1}while(0);k=(m|0)==(l|0)?n:-1;return k|0}function bf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=u;u=u+16|0;d=c;e=wk(64)|0;g=wk(12)|0;h=f[(f[a+4>>2]|0)+80>>2]|0;f[g+4>>2]=0;f[g>>2]=3584;f[g+8>>2]=h;f[d>>2]=g;Zi(e,d);g=e;if((b|0)>=0){h=a+8|0;i=a+12|0;a=f[i>>2]|0;j=f[h>>2]|0;k=a-j>>2;do if((k|0)<=(b|0)){l=b+1|0;m=a;if(l>>>0>k>>>0){Se(h,l-k|0);break}if(l>>>0<k>>>0){n=j+(l<<2)|0;if((n|0)!=(m|0)){l=m;do{l=l+-4|0;m=f[l>>2]|0;f[l>>2]=0;if(m|0)Pa[f[(f[m>>2]|0)+4>>2]&127](m)}while((l|0)!=(n|0))}f[i>>2]=n}}while(0);i=(f[h>>2]|0)+(b<<2)|0;b=f[i>>2]|0;f[i>>2]=g;if(!b)o=1;else{Pa[f[(f[b>>2]|0)+4>>2]&127](b);o=1}}else{Pa[f[(f[e>>2]|0)+4>>2]&127](e);o=0}e=f[d>>2]|0;f[d>>2]=0;if(!e){u=c;return o|0}Pa[f[(f[e>>2]|0)+4>>2]&127](e);u=c;return o|0}function cf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+4|0;e=f[a>>2]|0;g=((f[d>>2]|0)-e|0)/12|0;h=g+1|0;if(h>>>0>357913941)$n(a);i=a+8|0;j=((f[i>>2]|0)-e|0)/12|0;e=j<<1;k=j>>>0<178956970?(e>>>0<h>>>0?h:e):357913941;do if(k)if(k>>>0>357913941){e=qa(8)|0;Dm(e,13552);f[e>>2]=4908;ta(e|0,1128,105)}else{l=wk(k*12|0)|0;break}else l=0;while(0);e=l+(g*12|0)|0;g=l+(k*12|0)|0;Yi(e,c);c=e+12|0;k=f[a>>2]|0;l=f[d>>2]|0;if((l|0)==(k|0)){m=e;n=k;o=k}else{h=l;l=e;do{l=l+-12|0;h=h+-12|0;f[l>>2]=f[h>>2];f[l+4>>2]=f[h+4>>2];f[l+8>>2]=f[h+8>>2];f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0}while((h|0)!=(k|0));m=l;n=f[a>>2]|0;o=f[d>>2]|0}f[a>>2]=m;f[d>>2]=c;f[i>>2]=g;g=n;if((o|0)!=(g|0)){i=o;do{i=i+-12|0;if((b[i+11>>0]|0)<0)Ko(f[i>>2]|0)}while((i|0)!=(g|0))}if(!n)return;Ko(n);return}function df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0>j-k>>2>>>0){if(!k)m=j;else{j=a+4|0;f[j>>2]=k;Ko(k);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;m=0}if(h>>>0>1073741823)$n(a);j=m>>1;n=m>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;if(n>>>0>1073741823)$n(a);j=wk(n<<2)|0;m=a+4|0;f[m>>2]=j;f[a>>2]=j;f[i>>2]=j+(n<<2);if((g|0)<=0)return;Bf(j|0,b|0,g|0)|0;f[m>>2]=j+(g>>>2<<2);return}g=a+4|0;a=f[g>>2]|0;j=a-k>>2;k=h>>>0>j>>>0;h=k?b+(j<<2)|0:c;c=a;if((h|0)==(b|0))o=l;else{a=h+-4-e|0;e=b;b=l;while(1){f[b>>2]=f[e>>2];e=e+4|0;if((e|0)==(h|0))break;else b=b+4|0}o=l+((a>>>2)+1<<2)|0}if(!k){f[g>>2]=o;return}o=d-h|0;if((o|0)<=0)return;Bf(c|0,h|0,o|0)|0;f[g>>2]=(f[g>>2]|0)+(o>>>2<<2);return}function ef(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d>>2;g=e+1|0;if(g>>>0>1073741823)$n(a);h=a+8|0;i=(f[h>>2]|0)-d|0;d=i>>1;j=i>>2>>>0<536870911?(d>>>0<g>>>0?g:d):1073741823;do if(j)if(j>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{k=wk(j<<2)|0;break}else k=0;while(0);d=k+(e<<2)|0;g=k+(j<<2)|0;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;j=d+4|0;b=f[a>>2]|0;i=b;l=f[c>>2]|0;if((l|0)==(b|0)){m=d;n=i;o=b}else{p=e+-1-((l+-4-i|0)>>>2)|0;i=l;l=d;do{l=l+-4|0;i=i+-4|0;d=f[i>>2]|0;f[i>>2]=0;f[l>>2]=d}while((i|0)!=(b|0));m=k+(p<<2)|0;n=f[a>>2]|0;o=f[c>>2]|0}f[a>>2]=m;f[c>>2]=j;f[h>>2]=g;g=n;if((o|0)!=(g|0)){h=o;do{h=h+-4|0;o=f[h>>2]|0;f[h>>2]=0;if(o|0){eh(o);Ko(o)}}while((h|0)!=(g|0))}if(!n)return;Ko(n);return}function ff(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;do if(!(en(a,f[c+8>>2]|0,g)|0)){if(!(en(a,f[c>>2]|0,g)|0)){h=f[a+8>>2]|0;Ta[f[(f[h>>2]|0)+24>>2]&3](h,c,d,e,g);break}if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;i=c+44|0;if((f[i>>2]|0)==4)break;j=c+52|0;b[j>>0]=0;k=c+53|0;b[k>>0]=0;l=f[a+8>>2]|0;Ua[f[(f[l>>2]|0)+20>>2]&3](l,c,d,d,1,g);if(b[k>>0]|0)if(!(b[j>>0]|0)){m=1;n=11}else n=15;else{m=0;n=11}do if((n|0)==11){f[h>>2]=d;j=c+40|0;f[j>>2]=(f[j>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0){b[c+54>>0]=1;if(m){n=15;break}else{o=4;break}}if(m)n=15;else o=4}while(0);if((n|0)==15)o=3;f[i>>2]=o;break}if((e|0)==1)f[c+32>>2]=1}else nk(0,c,d,e);while(0);return}function gf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=f[a>>2]|0;f[a+4>>2]=c;d=a+16|0;f[d>>2]=0;e=a+12|0;f[e>>2]=c;c=b+8|0;g=c;i=f[g>>2]|0;j=f[g+4>>2]|0;g=b+16|0;k=g;l=f[k>>2]|0;m=vl(l|0,f[k+4>>2]|0,4,0)|0;k=H;if((j|0)<(k|0)|(j|0)==(k|0)&i>>>0<m>>>0){n=0;return n|0}o=(f[b>>2]|0)+l|0;l=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;o=g;f[o>>2]=m;f[o+4>>2]=k;if(!((l|0)!=0&(l&3|0)==0)){n=0;return n|0}o=wl(i|0,j|0,m|0,k|0)|0;p=H;if((p|0)<0|(p|0)==0&o>>>0<l>>>0){n=0;return n|0}o=l>>>2;if(!o){q=m;r=k;s=j;t=i}else{Eg(a,o);o=c;c=g;q=f[c>>2]|0;r=f[c+4>>2]|0;s=f[o+4>>2]|0;t=f[o>>2]|0}o=vl(q|0,r|0,l|0,0)|0;r=H;if((s|0)<(r|0)|(s|0)==(r|0)&t>>>0<o>>>0){n=0;return n|0}Bf(f[a>>2]|0,(f[b>>2]|0)+q|0,l|0)|0;q=g;b=vl(f[q>>2]|0,f[q+4>>2]|0,l|0,0)|0;l=g;f[l>>2]=b;f[l+4>>2]=H;f[e>>2]=f[a>>2];f[d>>2]=0;n=1;return n|0}function hf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;d=u;u=u+48|0;e=d+16|0;g=d;h=d+32|0;i=a+28|0;j=f[i>>2]|0;f[h>>2]=j;k=a+20|0;l=(f[k>>2]|0)-j|0;f[h+4>>2]=l;f[h+8>>2]=b;f[h+12>>2]=c;b=l+c|0;l=a+60|0;f[g>>2]=f[l>>2];f[g+4>>2]=h;f[g+8>>2]=2;j=Ol(ya(146,g|0)|0)|0;a:do if((b|0)!=(j|0)){g=2;m=b;n=h;o=j;while(1){if((o|0)<0)break;m=m-o|0;p=f[n+4>>2]|0;q=o>>>0>p>>>0;r=q?n+8|0:n;s=g+(q<<31>>31)|0;t=o-(q?p:0)|0;f[r>>2]=(f[r>>2]|0)+t;p=r+4|0;f[p>>2]=(f[p>>2]|0)-t;f[e>>2]=f[l>>2];f[e+4>>2]=r;f[e+8>>2]=s;o=Ol(ya(146,e|0)|0)|0;if((m|0)==(o|0)){v=3;break a}else{g=s;n=r}}f[a+16>>2]=0;f[i>>2]=0;f[k>>2]=0;f[a>>2]=f[a>>2]|32;if((g|0)==2)w=0;else w=c-(f[n+4>>2]|0)|0}else v=3;while(0);if((v|0)==3){v=f[a+44>>2]|0;f[a+16>>2]=v+(f[a+48>>2]|0);a=v;f[i>>2]=a;f[k>>2]=a;w=c}u=d;return w|0}function jf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;c=u;u=u+16|0;d=c;e=a+76|0;g=f[e>>2]|0;f[e>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;if(g|0)Ko(g);g=a+64|0;e=f[g>>2]|0;f[g>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;if(e|0)Ko(e);e=b+4|0;g=f[e>>2]|0;h=f[b>>2]|0;i=((g-h|0)/12|0)*3|0;j=a+4|0;k=f[a>>2]|0;l=(f[j>>2]|0)-k>>2;m=h;if(i>>>0<=l>>>0)if(i>>>0<l>>>0){f[j>>2]=k+(i<<2);n=g;o=h;p=m}else{n=g;o=h;p=m}else{Eg(a,i-l|0);l=f[b>>2]|0;n=f[e>>2]|0;o=l;p=l}if((n|0)!=(o|0)){o=f[a>>2]|0;l=(n-p|0)/12|0;n=0;do{e=n*3|0;f[o+(e<<2)>>2]=f[p+(n*12|0)>>2];f[o+(e+1<<2)>>2]=f[p+(n*12|0)+4>>2];f[o+(e+2<<2)>>2]=f[p+(n*12|0)+8>>2];n=n+1|0}while(n>>>0<l>>>0)}f[d>>2]=-1;if(!(Ub(a,d)|0)){q=0;u=c;return q|0}yb(a,f[d>>2]|0)|0;q=1;u=c;return q|0}function kf(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if(((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(f[(f[d>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)==0:0)?(j=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if(((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(f[(f[d>>2]|0)+(h>>>5<<2)>>2]&1<<(h&31)|0)==0:0)?(k=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if((((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(f[(f[d>>2]|0)+(a>>>5<<2)>>2]&1<<(a&31)|0)==0:0)?(h=f[(f[(f[d+64>>2]|0)+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function lf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;if(((e-h|0)/12|0)>>>0>=b>>>0){i=b;j=h;do{f[j>>2]=f[c>>2];f[j+4>>2]=f[c+4>>2];f[j+8>>2]=f[c+8>>2];j=(f[g>>2]|0)+12|0;f[g>>2]=j;i=i+-1|0}while((i|0)!=0);return}i=f[a>>2]|0;j=(h-i|0)/12|0;h=j+b|0;if(h>>>0>357913941)$n(a);k=(e-i|0)/12|0;i=k<<1;e=k>>>0<178956970?(i>>>0<h>>>0?h:i):357913941;do if(e)if(e>>>0>357913941){i=qa(8)|0;Dm(i,13552);f[i>>2]=4908;ta(i|0,1128,105)}else{l=wk(e*12|0)|0;break}else l=0;while(0);i=l+(j*12|0)|0;j=l+(e*12|0)|0;e=b;b=i;while(1){f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];e=e+-1|0;if(!e)break;else b=b+12|0}b=f[a>>2]|0;e=(f[g>>2]|0)-b|0;c=i+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)Bf(c|0,b|0,e|0)|0;f[a>>2]=c;f[g>>2]=l+(h*12|0);f[d>>2]=j;if(!b)return;Ko(b);return}function mf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=a+8|0;f[c>>2]=f[b>>2];He(a+12|0,b+4|0)|0;d=a+44|0;e=b+36|0;f[d>>2]=f[e>>2];f[d+4>>2]=f[e+4>>2];f[d+8>>2]=f[e+8>>2];f[d+12>>2]=f[e+12>>2];if((c|0)==(b|0)){f[a+96>>2]=f[b+88>>2];return}else{df(a+60|0,f[b+52>>2]|0,f[b+56>>2]|0);df(a+72|0,f[b+64>>2]|0,f[b+68>>2]|0);df(a+84|0,f[b+76>>2]|0,f[b+80>>2]|0);f[a+96>>2]=f[b+88>>2];Df(a+100|0,f[b+92>>2]|0,f[b+96>>2]|0);return}}function nf(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+8|0;e=f[d>>2]|0;g=f[a>>2]|0;h=g;if(e-g>>2>>>0<b>>>0){if(!g)i=e;else{e=a+4|0;f[e>>2]=g;Ko(g);f[d>>2]=0;f[e>>2]=0;f[a>>2]=0;i=0}if(b>>>0>1073741823)$n(a);e=i>>1;j=i>>2>>>0<536870911?(e>>>0<b>>>0?b:e):1073741823;if(j>>>0>1073741823)$n(a);e=wk(j<<2)|0;i=a+4|0;f[i>>2]=e;f[a>>2]=e;f[d>>2]=e+(j<<2);j=b;d=e;while(1){f[d>>2]=f[c>>2];j=j+-1|0;if(!j)break;else d=d+4|0}k=i;l=e+(b<<2)|0;f[k>>2]=l;return}else{e=a+4|0;a=f[e>>2]|0;i=a-g>>2;g=i>>>0<b>>>0;d=g?i:b;j=a;if(d|0){a=d;d=h;while(1){f[d>>2]=f[c>>2];a=a+-1|0;if(!a)break;else d=d+4|0}}if(!g){k=e;l=h+(b<<2)|0;f[k>>2]=l;return}h=b-i|0;i=h;b=j;while(1){f[b>>2]=f[c>>2];i=i+-1|0;if(!i)break;else b=b+4|0}k=e;l=j+(h<<2)|0;f[k>>2]=l;return}}function of(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=a+20|0;if(Ec(e,c)|0){g=0;return g|0}a=Wb(e,c)|0;c=f[d>>2]|0;f[d>>2]=0;d=f[a>>2]|0;f[a>>2]=c;if(!d){g=1;return g|0}c=f[d+28>>2]|0;if(c|0){a=c;do{c=a;a=f[a>>2]|0;Dg(c+8|0);Ko(c)}while((a|0)!=0)}a=d+20|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0)Ko(c);c=f[d+8>>2]|0;if(c|0){a=c;do{c=a;a=f[a>>2]|0;e=c+8|0;h=f[c+20>>2]|0;if(h|0){f[c+24>>2]=h;Ko(h)}if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);Ko(c)}while((a|0)!=0)}a=f[d>>2]|0;f[d>>2]=0;if(a|0)Ko(a);Ko(d);g=1;return g|0}function pf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=f[c>>2]|0;c=f[a>>2]|0;e=c+(d>>>5<<2)|0;f[e>>2]=f[e>>2]|1<<(d&31);e=f[a+64>>2]|0;g=(d|0)==-1;h=d+1|0;if(!g?(i=((h>>>0)%3|0|0)==0?d+-2|0:h,(i|0)!=-1):0)j=f[(f[e>>2]|0)+(i<<2)>>2]|0;else j=-1;i=f[a+12>>2]|0;h=i+(j>>>5<<2)|0;f[h>>2]=f[h>>2]|1<<(j&31);if(g){g=i+536870908|0;k=g;l=f[g>>2]|0;m=-2147483648}else{g=(((d>>>0)%3|0|0)==0?2:-1)+d|0;if((g|0)==-1)n=-1;else n=f[(f[e>>2]|0)+(g<<2)>>2]|0;g=i+(n>>>5<<2)|0;f[g>>2]=1<<(n&31)|f[g>>2];g=f[(f[e+12>>2]|0)+(d<<2)>>2]|0;if((g|0)==-1)return;b[a+24>>0]=0;a=c+(g>>>5<<2)|0;f[a>>2]=f[a>>2]|1<<(g&31);a=g+1|0;c=((a>>>0)%3|0|0)==0?g+-2|0:a;if((c|0)==-1)o=-1;else o=f[(f[e>>2]|0)+(c<<2)>>2]|0;c=i+(o>>>5<<2)|0;f[c>>2]=1<<(o&31)|f[c>>2];c=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((c|0)==-1)p=-1;else p=f[(f[e>>2]|0)+(c<<2)>>2]|0;c=i+(p>>>5<<2)|0;k=c;l=1<<(p&31);m=f[c>>2]|0}f[k>>2]=l|m;return}function qf(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;c=a+172|0;d=f[c>>2]|0;do if((d|0)==-1){e=f[a+144>>2]|0;g=Ka[f[(f[e>>2]|0)+32>>2]&127](e)|0;if(((h[g+36>>0]<<8|h[g+37>>0])&65535)<514)if(b[a+76>>0]|0){g=a+72|0;e=f[g>>2]|0;i=f[a+64>>2]|0;j=f[a+68>>2]|0;k=i+(e>>>3)|0;if(k>>>0<j>>>0?(l=h[k>>0]|0,k=e+1|0,f[g>>2]=k,(1<<(e&7)&l|0)!=0):0){l=i+(k>>>3)|0;if(l>>>0<j>>>0){m=(h[l>>0]|0)>>>(k&7)&1;n=e+2|0;f[g>>2]=n;o=m;p=i+(n>>>3)|0;q=n}else{o=0;p=l;q=k}if(p>>>0<j>>>0){j=(h[p>>0]|0)>>>(q&7);f[g>>2]=q+1;r=j<<1&2}else r=0;s=(r|o)<<1|1}else s=0}else s=1;else s=7}else{j=(f[a+196>>2]|0)+(d<<2)|0;g=f[j>>2]|0;k=g+-1|0;f[j>>2]=k;if((g|0)<1){t=9;return t|0}else{s=f[3496+(f[(f[(f[a+184>>2]|0)+((f[c>>2]|0)*12|0)>>2]|0)+(k<<2)>>2]<<2)>>2]|0;break}}while(0);f[a+168>>2]=s;t=s;return t|0}function rf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;e=c;g=d-e|0;h=a+8|0;i=f[h>>2]|0;j=f[a>>2]|0;k=j;if(g>>>0<=(i-j|0)>>>0){l=a+4|0;m=(f[l>>2]|0)-j|0;n=g>>>0>m>>>0;o=c+m|0;m=n?o:d;p=m-e|0;if(p|0)Rj(k|0,c|0,p|0)|0;if(!n){f[l>>2]=k+p;return}if((m|0)==(d|0))return;m=o;o=f[l>>2]|0;do{b[o>>0]=b[m>>0]|0;m=m+1|0;o=(f[l>>2]|0)+1|0;f[l>>2]=o}while((m|0)!=(d|0));return}if(!j)q=i;else{i=a+4|0;f[i>>2]=j;Ko(k);f[h>>2]=0;f[i>>2]=0;f[a>>2]=0;q=0}if((g|0)<0)$n(a);i=q<<1;k=q>>>0<1073741823?(i>>>0<g>>>0?g:i):2147483647;if((k|0)<0)$n(a);i=wk(k)|0;g=a+4|0;f[g>>2]=i;f[a>>2]=i;f[h>>2]=i+k;if((c|0)==(d|0))return;k=c;c=i;do{b[c>>0]=b[k>>0]|0;k=k+1|0;c=(f[g>>2]|0)+1|0;f[g>>2]=c}while((k|0)!=(d|0));return}function sf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=e>>>0>1073741823?-1:e<<2;l=Ho(k)|0;oh(l|0,0,k|0)|0;k=a+8|0;a=f[l+4>>2]|0;m=f[b>>2]|0;n=f[b+4>>2]|0;f[i>>2]=f[l>>2];f[i+4>>2]=a;f[j>>2]=m;f[j+4>>2]=n;Cc(h,k,i,j);f[c>>2]=f[h>>2];f[c+4>>2]=f[h+4>>2];if((e|0)>=(d|0)){Io(l);u=g;return 1}n=0-e|0;m=i+4|0;a=j+4|0;o=h+4|0;p=e;do{q=c+(p<<2)|0;r=q+(n<<2)|0;s=b+(p<<2)|0;t=f[r+4>>2]|0;v=f[s>>2]|0;w=f[s+4>>2]|0;f[i>>2]=f[r>>2];f[m>>2]=t;f[j>>2]=v;f[a>>2]=w;Cc(h,k,i,j);f[q>>2]=f[h>>2];f[q+4>>2]=f[o>>2];p=p+e|0}while((p|0)<(d|0));Io(l);u=g;return 1}function tf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=1536;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];b=a+32|0;e=c+24|0;f[b>>2]=0;g=a+36|0;f[g>>2]=0;h=a+40|0;f[h>>2]=0;i=c+28|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;j=c>>2;if(c|0){if(j>>>0>1073741823)$n(b);k=wk(c)|0;f[g>>2]=k;f[b>>2]=k;f[h>>2]=k+(j<<2);j=f[e>>2]|0;e=(f[i>>2]|0)-j|0;if((e|0)>0){Bf(k|0,j|0,e|0)|0;f[g>>2]=k+(e>>>2<<2)}}f[a>>2]=2320;e=a+44|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];f[a>>2]=2488;f[a+60>>2]=0;f[a+64>>2]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;e=a+88|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];return}function uf(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;f[a>>2]=1536;f[a+4>>2]=b;b=a+8|0;f[b>>2]=f[c>>2];f[b+4>>2]=f[c+4>>2];f[b+8>>2]=f[c+8>>2];f[b+12>>2]=f[c+12>>2];f[b+16>>2]=f[c+16>>2];f[b+20>>2]=f[c+20>>2];b=a+32|0;e=c+24|0;f[b>>2]=0;g=a+36|0;f[g>>2]=0;h=a+40|0;f[h>>2]=0;i=c+28|0;c=(f[i>>2]|0)-(f[e>>2]|0)|0;j=c>>2;if(c|0){if(j>>>0>1073741823)$n(b);k=wk(c)|0;f[g>>2]=k;f[b>>2]=k;f[h>>2]=k+(j<<2);j=f[e>>2]|0;e=(f[i>>2]|0)-j|0;if((e|0)>0){Bf(k|0,j|0,e|0)|0;f[g>>2]=k+(e>>>2<<2)}}f[a>>2]=1872;e=a+44|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];f[a>>2]=2040;f[a+60>>2]=0;f[a+64>>2]=0;f[a+76>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;e=a+88|0;f[e>>2]=f[d>>2];f[e+4>>2]=f[d+4>>2];f[e+8>>2]=f[d+8>>2];f[e+12>>2]=f[d+12>>2];return}function vf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,k=0,l=0,m=0,n=0;do if(c){if((j[a+38>>1]|0)>=514){if(ah(d,a)|0)break;else e=0;return e|0}g=a+8|0;i=f[g>>2]|0;k=f[g+4>>2]|0;g=a+16|0;l=g;m=f[l>>2]|0;n=vl(m|0,f[l+4>>2]|0,8,0)|0;l=H;if((k|0)<(l|0)|(k|0)==(l|0)&i>>>0<n>>>0){e=0;return e|0}else{n=(f[a>>2]|0)+m|0;m=n;i=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=n+4|0;n=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=d;l=m;b[l>>0]=i;b[l+1>>0]=i>>8;b[l+2>>0]=i>>16;b[l+3>>0]=i>>24;i=m+4|0;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;n=g;i=vl(f[n>>2]|0,f[n+4>>2]|0,8,0)|0;n=g;f[n>>2]=i;f[n+4>>2]=H;break}}while(0);b[a+36>>0]=1;d=a+16|0;c=f[d>>2]|0;n=(f[a>>2]|0)+c|0;i=a+8|0;g=wl(f[i>>2]|0,f[i+4>>2]|0,c|0,f[d+4>>2]|0)|0;f[a+32>>2]=0;f[a+24>>2]=n;f[a+28>>2]=n+g;e=1;return e|0}function wf(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0;g=u;u=u+32|0;h=g+16|0;i=g+8|0;j=g;k=e>>>0>1073741823?-1:e<<2;l=Ho(k)|0;oh(l|0,0,k|0)|0;k=a+8|0;a=f[l>>2]|0;m=f[l+4>>2]|0;n=f[b+4>>2]|0;f[h>>2]=f[b>>2];f[h+4>>2]=n;f[j>>2]=a;f[j+4>>2]=m;gd(i,k,j,h);f[c>>2]=f[i>>2];f[c+4>>2]=f[i+4>>2];if((e|0)>=(d|0)){Io(l);u=g;return 1}m=0-e|0;a=h+4|0;n=j+4|0;o=i+4|0;p=e;do{q=c+(p<<2)|0;r=q+(m<<2)|0;s=b+(p<<2)|0;t=f[r>>2]|0;v=f[r+4>>2]|0;r=f[s+4>>2]|0;f[h>>2]=f[s>>2];f[a>>2]=r;f[j>>2]=t;f[n>>2]=v;gd(i,k,j,h);f[q>>2]=f[i>>2];f[q+4>>2]=f[o>>2];p=p+e|0}while((p|0)<(d|0));Io(l);u=g;return 1}function xf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0;if(c>>>0>4294967279)$n(a);d=a+11|0;e=b[d>>0]|0;g=e<<24>>24<0;if(g){h=f[a+4>>2]|0;i=(f[a+8>>2]&2147483647)+-1|0}else{h=e&255;i=10}j=h>>>0>c>>>0?h:c;c=j>>>0<11;k=c?10:(j+16&-16)+-1|0;do if((k|0)!=(i|0)){do if(c){j=f[a>>2]|0;if(g){l=0;m=j;n=a;o=13}else{um(a,j,(e&255)+1|0)|0;Ko(j);o=16}}else{j=k+1|0;p=wk(j)|0;if(g){l=1;m=f[a>>2]|0;n=p;o=13;break}else{um(p,a,(e&255)+1|0)|0;q=p;r=j;s=a+4|0;o=15;break}}while(0);if((o|0)==13){j=a+4|0;um(n,m,(f[j>>2]|0)+1|0)|0;Ko(m);if(l){q=n;r=k+1|0;s=j;o=15}else o=16}if((o|0)==15){f[a+8>>2]=r|-2147483648;f[s>>2]=h;f[a>>2]=q;break}else if((o|0)==16){b[d>>0]=h;break}}while(0);return}function yf(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if((e|0)<0){g=0;return g|0}a:do if(!c){e=a+4|0;h=f[e>>2]|0;i=f[a>>2]|0;j=h-i|0;k=i;if(j>>>0>=d>>>0){if(j>>>0<=d>>>0)break;f[e>>2]=k+d;break}l=d-j|0;m=a+8|0;n=f[m>>2]|0;if((n-h|0)>>>0>=l>>>0){o=l;p=h;while(1){b[p>>0]=0;p=(f[e>>2]|0)+1|0;f[e>>2]=p;o=o+-1|0;if(!o)break a}}if((d|0)<0)$n(a);o=n-i|0;p=o<<1;h=o>>>0<1073741823?(p>>>0<d>>>0?d:p):2147483647;if(!h)q=0;else q=wk(h)|0;oh(q+j|0,0,l|0)|0;if((j|0)>0)Bf(q|0,k|0,j|0)|0;f[a>>2]=q;f[e>>2]=q+d;f[m>>2]=q+h;if(i|0)Ko(k)}else rf(a,c,c+d|0);while(0);d=a+24|0;a=d;c=vl(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=d;f[a>>2]=c;f[a+4>>2]=H;g=1;return g|0}function zf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+32|0;e=d+16|0;g=d;switch(c<<24>>24){case 0:{c=wk(44)|0;h=c;i=h+44|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));Qj(c);f[c>>2]=3696;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=c;u=d;return}case 1:{c=wk(44)|0;h=c;i=h+44|0;do{f[h>>2]=0;h=h+4|0}while((h|0)<(i|0));Qj(c);f[c>>2]=3652;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=c;u=d;return}default:{c=wk(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=28;h=c;j=11853;i=h+28|0;do{b[h>>0]=b[j>>0]|0;h=h+1|0;j=j+1|0}while((h|0)<(i|0));b[c+28>>0]=0;f[e>>2]=-1;c=e+4|0;Yi(c,g);f[a>>2]=f[e>>2];Yi(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)Ko(f[c>>2]|0);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=d;return}}}function Af(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=u;u=u+16|0;e=d+8|0;g=d+4|0;h=d;if(!c){i=0;u=d;return i|0}f[a>>2]=b;f[e>>2]=0;zh(e,b)|0;a:do if(!(f[e>>2]|0))j=8;else{b=0;while(1){zh(g,f[a>>2]|0)|0;k=wk(44)|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=1065353216;l=k+20|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[k+36>>2]=1065353216;f[k+40>>2]=f[g>>2];if(!(Mc(a,k)|0))break;f[h>>2]=k;bi(c,h)|0;l=f[h>>2]|0;f[h>>2]=0;if(l|0){eh(l);Ko(l)}b=b+1|0;if(b>>>0>=(f[e>>2]|0)>>>0){j=8;break a}}eh(k);Ko(k);m=0}while(0);if((j|0)==8)m=Mc(a,c)|0;i=m;u=d;return i|0}function Bf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;if((d|0)>=8192)return Ca(a|0,c|0,d|0)|0;e=a|0;g=a+d|0;if((a&3)==(c&3)){while(a&3){if(!d)return e|0;b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0;d=d-1|0}h=g&-4|0;d=h-64|0;while((a|0)<=(d|0)){f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];f[a+12>>2]=f[c+12>>2];f[a+16>>2]=f[c+16>>2];f[a+20>>2]=f[c+20>>2];f[a+24>>2]=f[c+24>>2];f[a+28>>2]=f[c+28>>2];f[a+32>>2]=f[c+32>>2];f[a+36>>2]=f[c+36>>2];f[a+40>>2]=f[c+40>>2];f[a+44>>2]=f[c+44>>2];f[a+48>>2]=f[c+48>>2];f[a+52>>2]=f[c+52>>2];f[a+56>>2]=f[c+56>>2];f[a+60>>2]=f[c+60>>2];a=a+64|0;c=c+64|0}while((a|0)<(h|0)){f[a>>2]=f[c>>2];a=a+4|0;c=c+4|0}}else{h=g-4|0;while((a|0)<(h|0)){b[a>>0]=b[c>>0]|0;b[a+1>>0]=b[c+1>>0]|0;b[a+2>>0]=b[c+2>>0]|0;b[a+3>>0]=b[c+3>>0]|0;a=a+4|0;c=c+4|0}}while((a|0)<(g|0)){b[a>>0]=b[c>>0]|0;a=a+1|0;c=c+1|0}return e|0}function Cf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;b=a+132|0;c=f[b>>2]|0;if(c|0){d=a+136|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{e=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[e+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}g=a+120|0;c=f[g>>2]|0;if(c|0){d=a+124|0;b=f[d>>2]|0;if((b|0)==(c|0))j=c;else{h=b;do{b=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[b+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));j=f[g>>2]|0}f[d>>2]=c;Ko(j)}j=f[a+108>>2]|0;if(j|0){f[a+112>>2]=j;Ko(j)}j=f[a+96>>2]|0;if(!j){k=a+76|0;zk(k);l=a+56|0;zk(l);m=a+36|0;zk(m);n=a+16|0;zk(n);return}f[a+100>>2]=j;Ko(j);k=a+76|0;zk(k);l=a+56|0;zk(l);m=a+36|0;zk(m);n=a+16|0;zk(n);return}function Df(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=c;e=b;g=d-e|0;h=g>>2;i=a+8|0;j=f[i>>2]|0;k=f[a>>2]|0;l=k;if(h>>>0<=j-k>>2>>>0){m=a+4|0;n=(f[m>>2]|0)-k>>2;o=h>>>0>n>>>0;p=o?b+(n<<2)|0:c;c=p;n=c-e|0;if(n|0)Rj(k|0,b|0,n|0)|0;if(!o){f[m>>2]=l+(n>>2<<2);return}n=d-c|0;if((n|0)<=0)return;Bf(f[m>>2]|0,p|0,n|0)|0;f[m>>2]=(f[m>>2]|0)+(n>>>2<<2);return}if(!k)q=j;else{j=a+4|0;f[j>>2]=k;Ko(k);f[i>>2]=0;f[j>>2]=0;f[a>>2]=0;q=0}if(h>>>0>1073741823)$n(a);j=q>>1;k=q>>2>>>0<536870911?(j>>>0<h>>>0?h:j):1073741823;if(k>>>0>1073741823)$n(a);j=wk(k<<2)|0;h=a+4|0;f[h>>2]=j;f[a>>2]=j;f[i>>2]=j+(k<<2);if((g|0)<=0)return;Bf(j|0,b|0,g|0)|0;f[h>>2]=j+(g>>>2<<2);return}function Ef(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;f[e>>2]=b;g=a+8|0;if(((f[a+12>>2]|0)-(f[g>>2]|0)>>2|0)<=(b|0))xg(g,b+1|0);h=f[(f[c>>2]|0)+56>>2]|0;do if((h|0)<5){i=a+20+(h*12|0)+4|0;j=f[i>>2]|0;if((j|0)==(f[a+20+(h*12|0)+8>>2]|0)){Ng(a+20+(h*12|0)|0,e);break}else{f[j>>2]=b;f[i>>2]=j+4;break}}while(0);b=f[c>>2]|0;h=f[e>>2]|0;f[b+60>>2]=h;e=(f[g>>2]|0)+(h<<2)|0;f[c>>2]=0;c=f[e>>2]|0;f[e>>2]=b;if(!c){u=d;return}b=c+88|0;e=f[b>>2]|0;f[b>>2]=0;if(e|0){b=f[e+8>>2]|0;if(b|0){f[e+12>>2]=b;Ko(b)}Ko(e)}e=f[c+68>>2]|0;if(e|0){f[c+72>>2]=e;Ko(e)}e=c+64|0;b=f[e>>2]|0;f[e>>2]=0;if(b|0){e=f[b>>2]|0;if(e|0){f[b+4>>2]=e;Ko(e)}Ko(b)}Ko(c);u=d;return}function Ff(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e+12|0;h=e+8|0;i=e;f[i>>2]=f[b>>2];f[g>>2]=f[i>>2];i=Ac(a,g,h,e+4|0,c)|0;c=f[i>>2]|0;if(c|0){j=c;u=e;return j|0}c=wk(40)|0;Yi(c+16|0,d);Yi(c+28|0,d+12|0);d=f[h>>2]|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=d;f[i>>2]=c;d=f[f[a>>2]>>2]|0;if(!d)k=c;else{f[a>>2]=d;k=f[i>>2]|0}vd(f[a+4>>2]|0,k);k=a+8|0;f[k>>2]=(f[k>>2]|0)+1;j=c;u=e;return j|0}function Gf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=u;u=u+16|0;g=e;h=a+4|0;f[h>>2]=0;if(!c){u=e;return}i=a+8|0;j=f[i>>2]|0;k=j<<5;if(k>>>0<c>>>0){f[g>>2]=0;l=g+4|0;f[l>>2]=0;m=g+8|0;f[m>>2]=0;if((c|0)<0)$n(a);n=j<<6;j=c+31&-32;vg(g,k>>>0<1073741823?(n>>>0<j>>>0?j:n):2147483647);n=f[a>>2]|0;f[a>>2]=f[g>>2];f[g>>2]=n;g=f[h>>2]|0;f[h>>2]=c;f[l>>2]=g;g=f[i>>2]|0;f[i>>2]=f[m>>2];f[m>>2]=g;if(n|0)Ko(n);o=a}else{f[h>>2]=c;o=a}a=f[o>>2]|0;o=a;h=a;a=c>>>5;n=a<<2;if(!(b[d>>0]|0)){oh(h|0,0,n|0)|0;d=c&31;g=o+(a<<2)|0;if(!d){u=e;return}f[g>>2]=f[g>>2]&~(-1>>>(32-d|0));u=e;return}else{oh(h|0,-1,n|0)|0;n=c&31;c=o+(a<<2)|0;if(!n){u=e;return}f[c>>2]=f[c>>2]|-1>>>(32-n|0);u=e;return}}function Hf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0;c=b+8|0;d=f[c>>2]|0;e=f[c+4>>2]|0;c=b+16|0;g=c;i=f[g>>2]|0;j=f[g+4>>2]|0;g=vl(i|0,j|0,4,0)|0;k=H;if((e|0)<(k|0)|(e|0)==(k|0)&d>>>0<g>>>0){l=0;return l|0}m=f[b>>2]|0;b=m+i|0;n=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24;b=c;f[b>>2]=g;f[b+4>>2]=k;k=vl(i|0,j|0,8,0)|0;j=H;if((e|0)<(j|0)|(e|0)==(j|0)&d>>>0<k>>>0){l=0;return l|0}d=m+g|0;g=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=c;f[d>>2]=k;f[d+4>>2]=j;if((n|0)>(g|0)){l=0;return l|0}f[a+12>>2]=n;f[a+16>>2]=g;j=wl(g|0,((g|0)<0)<<31>>31|0,n|0,((n|0)<0)<<31>>31|0)|0;n=H;if(!(n>>>0<0|(n|0)==0&j>>>0<2147483647)){l=0;return l|0}n=j+1|0;f[a+20>>2]=n;j=(n|0)/2|0;g=a+24|0;f[g>>2]=j;f[a+28>>2]=0-j;if(n&1|0){l=1;return l|0}f[g>>2]=j+-1;l=1;return l|0}function If(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=(d-e|0)/12|0;h=g+1|0;i=e;j=d;if(h>>>0>357913941)$n(a);d=a+8|0;k=((f[d>>2]|0)-e|0)/12|0;l=k<<1;m=k>>>0<178956970?(l>>>0<h>>>0?h:l):357913941;do if(m)if(m>>>0>357913941){l=qa(8)|0;Dm(l,13552);f[l>>2]=4908;ta(l|0,1128,105)}else{n=wk(m*12|0)|0;break}else n=0;while(0);l=n+(g*12|0)|0;h=n+(m*12|0)|0;f[l>>2]=f[b>>2];f[n+(g*12|0)+4>>2]=f[b+4>>2];f[n+(g*12|0)+8>>2]=f[b+8>>2];b=l+12|0;if((j|0)==(i|0))o=l;else{g=j;j=l;while(1){l=j+-12|0;n=g;g=g+-12|0;f[l>>2]=f[g>>2];f[j+-8>>2]=f[n+-8>>2];f[j+-4>>2]=f[n+-4>>2];if((g|0)==(i|0)){o=l;break}else j=l}}f[a>>2]=o;f[c>>2]=b;f[d>>2]=h;if(!e)return;Ko(e);return}function Jf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=a+4|0;a=f[d>>2]|0;do if(a|0){e=b[c+11>>0]|0;g=e<<24>>24<0;h=g?f[c+4>>2]|0:e&255;e=g?f[c>>2]|0:c;g=d;i=a;do{j=i+16|0;k=b[j+11>>0]|0;l=k<<24>>24<0;m=l?f[i+20>>2]|0:k&255;k=h>>>0<m>>>0;n=k?h:m;if((n|0)!=0?(o=Fi(l?f[j>>2]|0:j,e,n)|0,(o|0)!=0):0)p=o;else p=m>>>0<h>>>0?-1:k&1;k=(p|0)<0;g=k?g:i;i=f[(k?i+4|0:i)>>2]|0}while((i|0)!=0);if((g|0)!=(d|0)){i=g+16|0;k=b[i+11>>0]|0;m=k<<24>>24<0;o=m?f[g+20>>2]|0:k&255;k=o>>>0<h>>>0?o:h;if(k|0?(n=Fi(e,m?f[i>>2]|0:i,k)|0,n|0):0){if((n|0)<0)break;else q=g;return q|0}if(h>>>0>=o>>>0){q=g;return q|0}}}while(0);q=d;return q|0}function Kf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;d=f[c+88>>2]|0;if(!d){e=0;return e|0}if((f[d>>2]|0)!=1){e=0;return e|0}g=d+8|0;d=f[g>>2]|0;f[a+4>>2]=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;i=a+8|0;j=c+24|0;c=b[j>>0]|0;k=c<<24>>24;l=a+12|0;m=f[i>>2]|0;n=(f[l>>2]|0)-m>>2;o=m;if(n>>>0>=k>>>0)if(n>>>0>k>>>0){f[l>>2]=o+(k<<2);p=c;q=d}else{p=c;q=d}else{Eg(i,k-n|0);p=b[j>>0]|0;q=f[g>>2]|0}g=q+4|0;j=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;if(p<<24>>24>0){g=f[i>>2]|0;i=p<<24>>24;p=j;n=4;k=0;while(1){f[g+(k<<2)>>2]=p;n=n+4|0;k=k+1|0;d=q+n|0;c=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;if((k|0)>=(i|0)){r=c;break}else p=c}}else r=j;f[a+20>>2]=r;e=1;return e|0}function Lf(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;b=a+128|0;c=f[b>>2]|0;if(c|0){d=a+132|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{e=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[e+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}g=a+116|0;c=f[g>>2]|0;if(c|0){d=a+120|0;b=f[d>>2]|0;if((b|0)==(c|0))j=c;else{h=b;do{b=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[b+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));j=f[g>>2]|0}f[d>>2]=c;Ko(j)}j=f[a+104>>2]|0;if(j|0){f[a+108>>2]=j;Ko(j)}j=f[a+92>>2]|0;if(!j){k=a+72|0;zk(k);l=a+52|0;zk(l);m=a+32|0;zk(m);return}f[a+96>>2]=j;Ko(j);k=a+72|0;zk(k);l=a+52|0;zk(l);m=a+32|0;zk(m);return}function Mf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=u;u=u+224|0;g=e+120|0;h=e+80|0;i=e;j=e+136|0;k=h;l=k+40|0;do{f[k>>2]=0;k=k+4|0}while((k|0)<(l|0));f[g>>2]=f[d>>2];if((ub(0,c,g,i,h)|0)<0)m=-1;else{if((f[a+76>>2]|0)>-1)n=Po(a)|0;else n=0;d=f[a>>2]|0;k=d&32;if((b[a+74>>0]|0)<1)f[a>>2]=d&-33;d=a+48|0;if(!(f[d>>2]|0)){l=a+44|0;o=f[l>>2]|0;f[l>>2]=j;p=a+28|0;f[p>>2]=j;q=a+20|0;f[q>>2]=j;f[d>>2]=80;r=a+16|0;f[r>>2]=j+80;j=ub(a,c,g,i,h)|0;if(!o)s=j;else{Ma[f[a+36>>2]&31](a,0,0)|0;t=(f[q>>2]|0)==0?-1:j;f[l>>2]=o;f[d>>2]=0;f[r>>2]=0;f[p>>2]=0;f[q>>2]=0;s=t}}else s=ub(a,c,g,i,h)|0;h=f[a>>2]|0;f[a>>2]=h|k;if(n|0)Oo(a);m=(h&32|0)==0?s:-1}u=e;return m|0}function Nf(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;c=a+8|0;d=f[c>>2]|0;e=d+84|0;g=a+16|0;if(b[e>>0]|0){h=f[g>>2]|0;return h|0}a=f[g>>2]|0;if(!a){h=f[g>>2]|0;return h|0}i=a+84|0;if(!(b[i>>0]|0)){h=f[g>>2]|0;return h|0}j=d+68|0;k=d+72|0;d=(f[k>>2]|0)-(f[j>>2]|0)>>2;b[i>>0]=0;i=a+68|0;l=a+72|0;a=f[i>>2]|0;m=(f[l>>2]|0)-a>>2;if(d>>>0<=m>>>0)if(d>>>0<m>>>0){f[l>>2]=a+(d<<2);n=k;o=j;p=e}else{n=k;o=j;p=e}else{Of(i,d-m|0,1404);m=f[c>>2]|0;n=m+72|0;o=m+68|0;p=m+84|0}if(b[p>>0]|0){h=f[g>>2]|0;return h|0}p=f[o>>2]|0;o=p;m=(f[n>>2]|0)-p|0;p=m>>2;if(!m){h=f[g>>2]|0;return h|0}m=f[(f[g>>2]|0)+68>>2]|0;n=0;do{f[m+(n<<2)>>2]=f[o+(n<<2)>>2];n=n+1|0}while(n>>>0<p>>>0);h=f[g>>2]|0;return h|0}function Of(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+8|0;e=f[d>>2]|0;g=a+4|0;h=f[g>>2]|0;i=h;if(e-h>>2>>>0>=b>>>0){j=b;k=i;while(1){f[k>>2]=f[c>>2];j=j+-1|0;if(!j)break;else k=k+4|0}f[g>>2]=i+(b<<2);return}i=f[a>>2]|0;k=h-i|0;h=k>>2;j=h+b|0;if(j>>>0>1073741823)$n(a);l=e-i|0;e=l>>1;m=l>>2>>>0<536870911?(e>>>0<j>>>0?j:e):1073741823;do if(m)if(m>>>0>1073741823){e=qa(8)|0;Dm(e,13552);f[e>>2]=4908;ta(e|0,1128,105)}else{e=wk(m<<2)|0;n=e;o=e;break}else{n=0;o=0}while(0);e=n+(h<<2)|0;h=n+(m<<2)|0;m=b;j=e;while(1){f[j>>2]=f[c>>2];m=m+-1|0;if(!m)break;else j=j+4|0}if((k|0)>0)Bf(o|0,i|0,k|0)|0;f[a>>2]=n;f[g>>2]=e+(b<<2);f[d>>2]=h;if(!i)return;Ko(i);return}function Pf(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;h=u;u=u+64|0;i=h;j=f[a>>2]|0;k=a+(f[j+-8>>2]|0)|0;l=f[j+-4>>2]|0;f[i>>2]=e;f[i+4>>2]=a;f[i+8>>2]=c;f[i+12>>2]=g;g=i+16|0;c=i+20|0;a=i+24|0;j=i+28|0;m=i+32|0;n=i+40|0;o=g;p=o+36|0;do{f[o>>2]=0;o=o+4|0}while((o|0)<(p|0));d[g+36>>1]=0;b[g+38>>0]=0;a:do if(en(l,e,0)|0){f[i+48>>2]=1;Ua[f[(f[l>>2]|0)+20>>2]&3](l,i,k,k,1,0);q=(f[a>>2]|0)==1?k:0}else{Ta[f[(f[l>>2]|0)+24>>2]&3](l,i,k,1,0);switch(f[i+36>>2]|0){case 0:{q=(f[n>>2]|0)==1&(f[j>>2]|0)==1&(f[m>>2]|0)==1?f[c>>2]|0:0;break a;break}case 1:break;default:{q=0;break a}}if((f[a>>2]|0)!=1?!((f[n>>2]|0)==0&(f[j>>2]|0)==1&(f[m>>2]|0)==1):0){q=0;break}q=f[g>>2]|0}while(0);u=h;return q|0}function Qf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=Ia;d=u;u=u+32|0;e=d+16|0;g=d;h=a+8|0;i=b[(f[h>>2]|0)+24>>0]<<2;j=f[a+16>>2]|0;if(!(f[j+80>>2]|0))k=0;else k=(f[f[j>>2]>>2]|0)+(f[j+48>>2]|0)|0;f[g>>2]=-1;f[g+4>>2]=-1;f[g+8>>2]=-1;f[g+12>>2]=-1;j=f[a+24>>2]|0;if((j+-2|0)>>>0>28){l=0;u=d;return l|0}f[g>>2]=j;a=1<<j;f[g+4>>2]=a+-1;j=a+-2|0;a=g+8|0;f[a>>2]=j;f[g+12>>2]=(j|0)/2|0;if(!c){l=1;u=d;return l|0}m=0;n=0;o=0;p=j;while(1){q=_(_(1.0)/_(p|0));Pe(g,_(q*_(f[k+(m<<2)>>2]|0)),_(q*_(f[k+((m|1)<<2)>>2]|0)),e);Bf((f[f[(f[h>>2]|0)+64>>2]>>2]|0)+o|0,e|0,i|0)|0;j=n+1|0;if((j|0)==(c|0)){l=1;break}m=m+2|0;n=j;o=o+i|0;p=f[a>>2]|0}u=d;return l|0}function Rf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0;e=(f[a>>2]|0)+1794895138|0;g=fn(f[a+8>>2]|0,e)|0;h=fn(f[a+12>>2]|0,e)|0;i=fn(f[a+16>>2]|0,e)|0;a:do if((g>>>0<c>>>2>>>0?(j=c-(g<<2)|0,h>>>0<j>>>0&i>>>0<j>>>0):0)?((i|h)&3|0)==0:0){j=h>>>2;k=i>>>2;l=0;m=g;while(1){n=m>>>1;o=l+n|0;p=o<<1;q=p+j|0;r=fn(f[a+(q<<2)>>2]|0,e)|0;s=fn(f[a+(q+1<<2)>>2]|0,e)|0;if(!(s>>>0<c>>>0&r>>>0<(c-s|0)>>>0)){t=0;break a}if(b[a+(s+r)>>0]|0){t=0;break a}r=Ri(d,a+s|0)|0;if(!r)break;s=(r|0)<0;if((m|0)==1){t=0;break a}l=s?l:o;m=s?n:m-n|0}m=p+k|0;l=fn(f[a+(m<<2)>>2]|0,e)|0;j=fn(f[a+(m+1<<2)>>2]|0,e)|0;if(j>>>0<c>>>0&l>>>0<(c-j|0)>>>0)t=(b[a+(j+l)>>0]|0)==0?a+j|0:0;else t=0}else t=0;while(0);return t|0}function Sf(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;h=g;if(d-g>>2>>>0>=b>>>0){i=b;j=h;while(1){f[j>>2]=1;i=i+-1|0;if(!i)break;else j=j+4|0}f[e>>2]=h+(b<<2);return}h=f[a>>2]|0;j=g-h|0;g=j>>2;i=g+b|0;if(i>>>0>1073741823)$n(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0<i>>>0?i:d):1073741823;do if(l)if(l>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{d=wk(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;g=m+(l<<2)|0;l=b;i=d;while(1){f[i>>2]=1;l=l+-1|0;if(!l)break;else i=i+4|0}if((j|0)>0)Bf(n|0,h|0,j|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=g;if(!h)return;Ko(h);return}function Tf(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a+12|0;d=f[a>>2]|0;e=a+8|0;g=f[e>>2]|0;h=(g|0)==-1;if(!(b[c>>0]|0)){do if((!h?(i=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(i|0)!=-1):0)?(j=f[(f[d+12>>2]|0)+(i<<2)>>2]|0,(j|0)!=-1):0)if(!((j>>>0)%3|0)){k=j+2|0;break}else{k=j+-1|0;break}else k=-1;while(0);f[e>>2]=k;return}k=g+1|0;if((!h?(h=((k>>>0)%3|0|0)==0?g+-2|0:k,(h|0)!=-1):0)?(k=f[(f[d+12>>2]|0)+(h<<2)>>2]|0,h=k+1|0,(k|0)!=-1):0){g=((h>>>0)%3|0|0)==0?k+-2|0:h;f[e>>2]=g;if((g|0)!=-1){if((g|0)!=(f[a+4>>2]|0))return;f[e>>2]=-1;return}}else f[e>>2]=-1;g=f[a+4>>2]|0;do if(((g|0)!=-1?(a=(((g>>>0)%3|0|0)==0?2:-1)+g|0,(a|0)!=-1):0)?(h=f[(f[d+12>>2]|0)+(a<<2)>>2]|0,(h|0)!=-1):0)if(!((h>>>0)%3|0)){l=h+2|0;break}else{l=h+-1|0;break}else l=-1;while(0);f[e>>2]=l;b[c>>0]=0;return}function Uf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=a+12|0;a:do if((f[e>>2]|0)!=(c|0)){g=f[a>>2]|0;h=a+4|0;i=f[h>>2]|0;if((i|0)!=(g|0)){j=i;do{j=j+-12|0;if((b[j+11>>0]|0)<0)Ko(f[j>>2]|0)}while((j|0)!=(g|0))}f[h>>2]=g;f[e>>2]=c;j=f[c+8>>2]|0;if(j|0){i=a+8|0;k=j;j=g;while(1){l=k+8|0;if((j|0)==(f[i>>2]|0))cf(a,l);else{Yi(j,l);f[h>>2]=(f[h>>2]|0)+12}l=f[k>>2]|0;if(!l)break a;k=l;j=f[h>>2]|0}}}while(0);if((d|0)<0){m=0;return m|0}c=f[a>>2]|0;if((((f[a+4>>2]|0)-c|0)/12|0)>>>0<=d>>>0){m=0;return m|0}a=c+(d*12|0)|0;if((b[a+11>>0]|0)<0){m=f[a>>2]|0;return m|0}else{m=a;return m|0}return 0}function Vf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=u;u=u+32|0;e=d+12|0;g=d;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;h=Dh(c)|0;if(h>>>0>4294967279)$n(e);if(h>>>0<11){b[e+11>>0]=h;if(!h)i=e;else{j=e;k=6}}else{l=h+16&-16;m=wk(l)|0;f[e>>2]=m;f[e+8>>2]=l|-2147483648;f[e+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,c|0,h|0)|0;i=j}b[i+h>>0]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=g+11|0;b[h>>0]=4;f[g>>2]=1701667182;b[g+4>>0]=0;i=f[a+4>>2]|0;if((i|0)!=0?(j=Ed(i,g,e)|0,(j|0)!=0):0)n=Di(a,f[j+40>>2]|0)|0;else n=-1;if((b[h>>0]|0)<0)Ko(f[g>>2]|0);if((b[e+11>>0]|0)>=0){u=d;return n|0}Ko(f[e>>2]|0);u=d;return n|0} -function sb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0;g=u;u=u+64|0;d=g+16|0;h=g;i=a+8|0;f[i>>2]=e;j=a+32|0;k=a+36|0;l=f[j>>2]|0;m=(f[k>>2]|0)-l>>2;if(m>>>0>=e>>>0){if(m>>>0>e>>>0)f[k>>2]=l+(e<<2)}else Eg(j,e-m|0);m=d;j=m+48|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(j|0));f[h>>2]=0;if(!e){n=0;o=0}else{Of(d,e,h);n=f[d+12>>2]|0;o=f[d+16>>2]|0}f[h>>2]=0;m=d+16|0;j=o-n>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[m>>2]=n+(e<<2)}else Of(d+12|0,e-j|0,h);j=d+24|0;f[h>>2]=0;n=d+28|0;m=f[j>>2]|0;o=(f[n>>2]|0)-m>>2;if(o>>>0>=e>>>0){if(o>>>0>e>>>0)f[n>>2]=m+(e<<2)}else Of(j,e-o|0,h);o=d+36|0;f[h>>2]=0;j=d+40|0;m=f[o>>2]|0;n=(f[j>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[j>>2]=m+(e<<2)}else Of(o,e-n|0,h);n=f[d>>2]|0;if((f[i>>2]|0)>0){o=a+16|0;m=a+32|0;j=a+12|0;l=0;do{k=f[n+(l<<2)>>2]|0;p=f[o>>2]|0;do if((k|0)<=(p|0)){q=f[j>>2]|0;r=f[m>>2]|0;s=r+(l<<2)|0;if((k|0)<(q|0)){f[s>>2]=q;t=r;break}else{f[s>>2]=k;t=r;break}}else{r=f[m>>2]|0;f[r+(l<<2)>>2]=p;t=r}while(0);l=l+1|0;v=f[i>>2]|0}while((l|0)<(v|0));if((v|0)>0){v=a+20|0;l=0;do{m=(f[b+(l<<2)>>2]|0)+(f[t+(l<<2)>>2]|0)|0;n=c+(l<<2)|0;f[n>>2]=m;if((m|0)<=(f[o>>2]|0)){if((m|0)<(f[j>>2]|0)){w=(f[v>>2]|0)+m|0;x=19}}else{w=m-(f[v>>2]|0)|0;x=19}if((x|0)==19){x=0;f[n>>2]=w}l=l+1|0}while((l|0)<(f[i>>2]|0))}}l=f[a+48>>2]|0;w=f[a+52>>2]|0;v=wk(16)|0;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;f[v+12>>2]=0;f[h>>2]=0;j=h+4|0;f[j>>2]=0;o=h+8|0;f[o>>2]=0;do if(e)if(e>>>0>1073741823)$n(h);else{t=e<<2;n=wk(t)|0;f[h>>2]=n;m=n+(e<<2)|0;f[o>>2]=m;oh(n|0,0,t|0)|0;f[j>>2]=m;y=n;break}else y=0;while(0);o=f[a+56>>2]|0;n=f[o>>2]|0;m=(f[o+4>>2]|0)-n|0;t=m>>2;a:do if((m|0)>4){p=n;k=(e|0)>0;r=l+12|0;s=a+16|0;q=a+32|0;z=a+12|0;A=a+20|0;B=e<<2;C=(e|0)==1;D=1;while(1){if(t>>>0<=D>>>0){x=30;break}E=f[p+(D<<2)>>2]|0;do if((E|0)!=-1){F=(((E>>>0)%3|0|0)==0?2:-1)+E|0;G=(F|0)==-1;H=f[r>>2]|0;I=H+(F<<2)|0;F=1;J=0;K=E;b:while(1){L=f[d+(J*12|0)>>2]|0;M=f[H+(K<<2)>>2]|0;if((M|0)!=-1){N=f[l>>2]|0;O=f[w>>2]|0;P=f[O+(f[N+(M<<2)>>2]<<2)>>2]|0;Q=M+1|0;R=((Q>>>0)%3|0|0)==0?M+-2|0:Q;if((R|0)==-1)S=-1;else S=f[N+(R<<2)>>2]|0;R=f[O+(S<<2)>>2]|0;Q=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if((Q|0)==-1)T=-1;else T=f[N+(Q<<2)>>2]|0;Q=f[O+(T<<2)>>2]|0;if((P|0)<(D|0)&(R|0)<(D|0)&(Q|0)<(D|0)){O=W(P,e)|0;P=W(R,e)|0;R=W(Q,e)|0;if(k){Q=0;do{f[L+(Q<<2)>>2]=(f[c+(Q+R<<2)>>2]|0)+(f[c+(Q+P<<2)>>2]|0)-(f[c+(Q+O<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0))}Q=J+1|0;if((Q|0)==4){U=4;break}else V=Q}else V=J}else V=J;do if(F){Q=K+1|0;O=((Q>>>0)%3|0|0)==0?K+-2|0:Q;if((O|0)!=-1?(Q=f[H+(O<<2)>>2]|0,O=Q+1|0,(Q|0)!=-1):0)X=((O>>>0)%3|0|0)==0?Q+-2|0:O;else X=-1}else{O=(((K>>>0)%3|0|0)==0?2:-1)+K|0;if((O|0)!=-1?(Q=f[H+(O<<2)>>2]|0,(Q|0)!=-1):0)if(!((Q>>>0)%3|0)){X=Q+2|0;break}else{X=Q+-1|0;break}else X=-1}while(0);if((X|0)==(E|0)){x=59;break}Q=(X|0)!=-1;O=Q|F^1;do if(!(O|G)){P=f[I>>2]|0;if((P|0)==-1){x=59;break b}if(!((P>>>0)%3|0)){Y=0;Z=P+2|0;break}else{Y=0;Z=P+-1|0;break}}else{Y=Q&F;Z=O?X:-1}while(0);if((Z|0)==-1){x=59;break}else{F=Y;J=V;K=Z}}if((x|0)==59){x=0;if((V|0)>0)U=V;else{x=60;break}}if(k){oh(f[h>>2]|0,0,B|0)|0;K=U+-1|0;J=v+(K<<2)|0;F=a+60+(K*12|0)+4|0;I=a+60+(K*12|0)|0;K=f[h>>2]|0;G=0;H=0;while(1){O=f[J>>2]|0;f[J>>2]=O+1;if((f[F>>2]|0)>>>0<=O>>>0){_=K;$=0;break a}if(!(f[(f[I>>2]|0)+(O>>>5<<2)>>2]&1<<(O&31))){O=f[d+(G*12|0)>>2]|0;Q=0;do{P=K+(Q<<2)|0;f[P>>2]=(f[P>>2]|0)+(f[O+(Q<<2)>>2]|0);Q=Q+1|0}while((Q|0)!=(e|0));aa=H+1|0}else aa=H;G=G+1|0;if((G|0)>=(U|0)){ba=aa;break}else H=aa}}else{H=U+-1|0;G=v+(H<<2)|0;K=a+60+(H*12|0)|0;I=f[h>>2]|0;F=f[a+60+(H*12|0)+4>>2]|0;H=0;J=0;Q=f[G>>2]|0;while(1){O=Q;Q=Q+1|0;f[G>>2]=Q;if(F>>>0<=O>>>0){_=I;$=0;break a}P=J+((f[(f[K>>2]|0)+(O>>>5<<2)>>2]&1<<(O&31)|0)==0&1)|0;H=H+1|0;if((H|0)>=(U|0)){ba=P;break}else J=P}}J=W(D,e)|0;if(ba){H=f[h>>2]|0;if(k?(f[H>>2]=(f[H>>2]|0)/(ba|0)|0,!C):0){K=1;do{I=H+(K<<2)|0;f[I>>2]=(f[I>>2]|0)/(ba|0)|0;K=K+1|0}while((K|0)!=(e|0))}K=b+(J<<2)|0;I=c+(J<<2)|0;if((f[i>>2]|0)>0){F=0;do{Q=f[H+(F<<2)>>2]|0;G=f[s>>2]|0;do if((Q|0)<=(G|0)){P=f[z>>2]|0;O=f[q>>2]|0;R=O+(F<<2)|0;if((Q|0)<(P|0)){f[R>>2]=P;ca=O;break}else{f[R>>2]=Q;ca=O;break}}else{O=f[q>>2]|0;f[O+(F<<2)>>2]=G;ca=O}while(0);F=F+1|0;da=f[i>>2]|0}while((F|0)<(da|0));if((da|0)>0){F=0;do{H=(f[K+(F<<2)>>2]|0)+(f[ca+(F<<2)>>2]|0)|0;G=I+(F<<2)|0;f[G>>2]=H;do if((H|0)>(f[s>>2]|0)){ea=H-(f[A>>2]|0)|0;x=106}else{if((H|0)>=(f[z>>2]|0))break;ea=(f[A>>2]|0)+H|0;x=106}while(0);if((x|0)==106){x=0;f[G>>2]=ea}F=F+1|0}while((F|0)<(f[i>>2]|0))}}}else{fa=J;x=73}}else x=60;while(0);if((x|0)==60){x=0;fa=W(D,e)|0;x=73}if((x|0)==73?(x=0,E=c+((W(D+-1|0,e)|0)<<2)|0,F=b+(fa<<2)|0,I=c+(fa<<2)|0,(f[i>>2]|0)>0):0){K=0;do{H=f[E+(K<<2)>>2]|0;Q=f[s>>2]|0;do if((H|0)<=(Q|0)){O=f[z>>2]|0;R=f[q>>2]|0;P=R+(K<<2)|0;if((H|0)<(O|0)){f[P>>2]=O;ga=R;break}else{f[P>>2]=H;ga=R;break}}else{R=f[q>>2]|0;f[R+(K<<2)>>2]=Q;ga=R}while(0);K=K+1|0;ha=f[i>>2]|0}while((K|0)<(ha|0));if((ha|0)>0){K=0;do{E=(f[F+(K<<2)>>2]|0)+(f[ga+(K<<2)>>2]|0)|0;Q=I+(K<<2)|0;f[Q>>2]=E;if((E|0)<=(f[s>>2]|0)){if((E|0)<(f[z>>2]|0)){ia=(f[A>>2]|0)+E|0;x=87}}else{ia=E-(f[A>>2]|0)|0;x=87}if((x|0)==87){x=0;f[Q>>2]=ia}K=K+1|0}while((K|0)<(f[i>>2]|0))}}D=D+1|0;if((D|0)>=(t|0)){x=110;break}}if((x|0)==30)$n(o);else if((x|0)==110){_=f[h>>2]|0;$=1;break}}else{_=y;$=1}while(0);if(_|0){f[j>>2]=_;Ko(_)}Ko(v);v=f[d+36>>2]|0;if(v|0){f[d+40>>2]=v;Ko(v)}v=f[d+24>>2]|0;if(v|0){f[d+28>>2]=v;Ko(v)}v=f[d+12>>2]|0;if(v|0){f[d+16>>2]=v;Ko(v)}v=f[d>>2]|0;if(!v){u=g;return $|0}f[d+4>>2]=v;Ko(v);u=g;return $|0}function tb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=Ia,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;d=u;u=u+720|0;e=d;g=d+688|0;i=d+656|0;k=d+4|0;if((j[c+38>>1]|0)>514){f[i>>2]=0;l=i+4|0;f[l>>2]=0;f[i+8>>2]=0;m=c+8|0;o=c+16|0;p=g+4|0;q=g+8|0;r=a+36|0;t=a+40|0;v=a+60|0;w=a+44|0;x=g+8|0;y=g+12|0;z=g+20|0;A=0;a:while(1){if((A|0)>=(Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0)){B=26;break}C=La[f[(f[a>>2]|0)+20>>2]&127](a,A)|0;D=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;E=f[(f[(f[D>>2]|0)+8>>2]|0)+(C<<2)>>2]|0;if((f[E+28>>2]|0)==9){C=b[E+24>>0]|0;E=f[i>>2]|0;D=(f[l>>2]|0)-E>>2;if(D>>>0>=C>>>0){if(D>>>0>C>>>0)f[l>>2]=E+(C<<2)}else Eg(i,C-D|0);D=C<<2;E=m;F=f[E>>2]|0;G=f[E+4>>2]|0;E=o;I=f[E>>2]|0;J=vl(I|0,f[E+4>>2]|0,D|0,0)|0;E=H;if((G|0)<(E|0)|(G|0)==(E|0)&F>>>0<J>>>0){K=0;break}Bf(f[i>>2]|0,(f[c>>2]|0)+I|0,D|0)|0;I=o;J=vl(f[I>>2]|0,f[I+4>>2]|0,D|0,0)|0;D=H;I=o;f[I>>2]=J;f[I+4>>2]=D;I=m;F=f[I>>2]|0;E=f[I+4>>2]|0;I=vl(J|0,D|0,4,0)|0;G=H;if((E|0)<(G|0)|(E|0)==(G|0)&F>>>0<I>>>0){K=0;break}L=f[c>>2]|0;M=L+J|0;b[s>>0]=b[M>>0];b[s+1>>0]=b[M+1>>0];b[s+2>>0]=b[M+2>>0];b[s+3>>0]=b[M+3>>0];N=_(n[s>>2]);M=o;f[M>>2]=I;f[M+4>>2]=G;if(!((E|0)>(G|0)|(E|0)==(G|0)&F>>>0>I>>>0)){K=0;break}F=b[L+I>>0]|0;I=vl(J|0,D|0,5,0)|0;D=o;f[D>>2]=I;f[D+4>>2]=H;if((F&255)>31){K=0;break}f[g>>2]=1228;f[p>>2]=-1;f[q>>2]=0;f[q+4>>2]=0;f[q+8>>2]=0;f[q+12>>2]=0;kj(g,F&255,f[i>>2]|0,C,N);do if(Si(g,f[(f[v>>2]|0)+((((f[t>>2]|0)-(f[r>>2]|0)|0)/24|0)<<2)>>2]|0)|0){C=f[t>>2]|0;if((C|0)==(f[w>>2]|0)){wd(r,g);O=0;break}f[C>>2]=1228;f[C+4>>2]=f[p>>2];P=C+8|0;f[P>>2]=0;F=C+12|0;f[F>>2]=0;D=C+16|0;f[D>>2]=0;I=(f[y>>2]|0)-(f[x>>2]|0)|0;J=I>>2;if(I|0){if(J>>>0>1073741823){B=17;break a}L=wk(I)|0;f[F>>2]=L;f[P>>2]=L;f[D>>2]=L+(J<<2);J=f[x>>2]|0;D=(f[y>>2]|0)-J|0;if((D|0)>0){Bf(L|0,J|0,D|0)|0;f[F>>2]=L+(D>>>2<<2)}}f[C+20>>2]=f[z>>2];f[t>>2]=(f[t>>2]|0)+24;O=0}else O=1;while(0);f[g>>2]=1228;C=f[q>>2]|0;if(C|0){f[y>>2]=C;Ko(C)}if(O|0){K=0;break}}A=A+1|0}if((B|0)==17)$n(P);if((B|0)==26){P=a+48|0;A=a+52|0;if((f[A>>2]|0)==(f[P>>2]|0))K=1;else{O=0;y=0;while(1){if(zh(g,c)|0){q=f[g>>2]|0;Q=q<<31>>31^q>>>1}else Q=y;q=f[P>>2]|0;f[q+(O<<2)>>2]=Q;O=O+1|0;if(O>>>0>=(f[A>>2]|0)-q>>2>>>0){K=1;break}else y=Q}}}Q=f[i>>2]|0;if(Q|0){f[l>>2]=Q;Ko(Q)}R=K;u=d;return R|0}K=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;f[g>>2]=0;Q=g+4|0;f[Q>>2]=0;l=g+8|0;f[l>>2]=0;y=(K|0)==0;if(y){S=0;T=f[(f[a>>2]|0)+20>>2]|0;U=a}else{if(K>>>0>214748364)$n(g);A=K*20|0;O=wk(A)|0;f[g>>2]=O;f[l>>2]=O+(K*20|0);oh(O|0,0,A|0)|0;f[Q>>2]=O+A;A=0;O=0;l=f[(f[a>>2]|0)+20>>2]|0;while(1){P=La[l&127](a,A)|0;q=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;t=f[(f[(f[q>>2]|0)+8>>2]|0)+(P<<2)>>2]|0;P=f[t+28>>2]|0;q=Bj(P)|0;z=b[t+24>>0]|0;x=f[g>>2]|0;f[x+(A*20|0)>>2]=t;f[x+(A*20|0)+4>>2]=O;f[x+(A*20|0)+8>>2]=P;f[x+(A*20|0)+12>>2]=(q|0)>0?q:0;f[x+(A*20|0)+16>>2]=z;x=O+z|0;A=A+1|0;z=f[(f[a>>2]|0)+20>>2]|0;if(A>>>0>=K>>>0){S=x;T=z;U=a;break}else{O=x;l=z}}}l=La[T&127](a,0)|0;T=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;O=f[(f[(f[T>>2]|0)+8>>2]|0)+(l<<2)>>2]|0;b[O+84>>0]=1;f[O+72>>2]=f[O+68>>2];l=c+8|0;T=f[l>>2]|0;A=f[l+4>>2]|0;l=c+16|0;z=l;x=f[z>>2]|0;q=f[z+4>>2]|0;b:do if((A|0)>(q|0)|(A|0)==(q|0)&T>>>0>x>>>0){z=f[c>>2]|0;P=b[z+x>>0]|0;t=vl(x|0,q|0,1,0)|0;p=H;r=l;f[r>>2]=t;f[r+4>>2]=p;switch(P<<24>>24){case 0:{if(!((A|0)>(p|0)|(A|0)==(p|0)&T>>>0>t>>>0)){V=0;break b}P=vl(x|0,q|0,2,0)|0;r=l;f[r>>2]=P;f[r+4>>2]=H;r=vl(x|0,q|0,6,0)|0;w=H;if((A|0)<(w|0)|(A|0)==(w|0)&T>>>0<r>>>0){V=0;break b}v=z+P|0;P=h[v>>0]|h[v+1>>0]<<8|h[v+2>>0]<<16|h[v+3>>0]<<24;v=l;f[v>>2]=r;f[v+4>>2]=w;Fh(O,P)|0;fm(i);$e(k,g);P=Vd(i,c,k)|0;w=f[k+16>>2]|0;if(w|0){f[k+20>>2]=w;Ko(w)}w=f[k>>2]|0;if(w|0){f[k+4>>2]=w;Ko(w)}if(!P){V=0;break b}break}case 1:{if(!((A|0)>(p|0)|(A|0)==(p|0)&T>>>0>t>>>0)){V=0;break b}p=b[z+t>>0]|0;t=vl(x|0,q|0,2,0)|0;P=l;f[P>>2]=t;f[P+4>>2]=H;if((p&255)>6){f[e>>2]=p&255;kl(5094,e)|0;V=0;break b}P=vl(x|0,q|0,6,0)|0;w=H;if((A|0)<(w|0)|(A|0)==(w|0)&T>>>0<P>>>0){V=0;break b}v=z+t|0;t=h[v>>0]|h[v+1>>0]<<8|h[v+2>>0]<<16|h[v+3>>0]<<24;v=l;f[v>>2]=P;f[v+4>>2]=w;if(!y){w=0;do{v=La[f[(f[U>>2]|0)+20>>2]&127](a,w)|0;P=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;z=f[(f[(f[P>>2]|0)+8>>2]|0)+(v<<2)>>2]|0;Fh(z,t)|0;b[z+84>>0]=1;f[z+72>>2]=f[z+68>>2];w=w+1|0}while(w>>>0<K>>>0)}$e(i,g);switch(p<<24>>24){case 0:{ve(k,S);w=Xd(k,c,i)|0;Cf(k);if(w)B=65;else W=1;break}case 1:{ve(k,S);w=Wd(k,c,i)|0;Cf(k);if(w)B=65;else W=1;break}case 2:{we(k,S);w=Zd(k,c,i)|0;Lf(k);if(w)B=65;else W=1;break}case 3:{we(k,S);w=Yd(k,c,i)|0;Lf(k);if(w)B=65;else W=1;break}case 4:{re(k,S);w=Ud(k,c,i)|0;jg(k);if(w)B=65;else W=1;break}case 5:{re(k,S);w=Td(k,c,i)|0;jg(k);if(w)B=65;else W=1;break}case 6:{re(k,S);w=Sd(k,c,i)|0;jg(k);if(w)B=65;else W=1;break}default:W=1}if((B|0)==65)W=0;w=f[i+16>>2]|0;if(w|0){f[i+20>>2]=w;Ko(w)}w=f[i>>2]|0;if(w|0){f[i+4>>2]=w;Ko(w)}if(W|0){V=0;break b}break}default:{V=0;break b}}V=1}else V=0;while(0);W=f[g>>2]|0;if(W|0){f[Q>>2]=W;Ko(W)}R=V;u=d;return R|0}function ub(a,c,e,g,h){a=a|0;c=c|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;i=u;u=u+64|0;j=i+16|0;k=i;l=i+24|0;m=i+8|0;n=i+20|0;f[j>>2]=c;c=(a|0)!=0;o=l+40|0;q=o;r=l+39|0;l=m+4|0;s=0;t=0;v=0;a:while(1){w=s;x=t;while(1){do if((x|0)>-1)if((w|0)>(2147483647-x|0)){y=Ro()|0;f[y>>2]=75;z=-1;break}else{z=w+x|0;break}else z=x;while(0);A=f[j>>2]|0;y=b[A>>0]|0;if(!(y<<24>>24)){B=94;break a}C=y;y=A;b:while(1){switch(C<<24>>24){case 37:{B=10;break b;break}case 0:{D=y;break b;break}default:{}}E=y+1|0;f[j>>2]=E;C=b[E>>0]|0;y=E}c:do if((B|0)==10){B=0;C=y;E=y;while(1){if((b[E+1>>0]|0)!=37){D=C;break c}F=C+1|0;E=E+2|0;f[j>>2]=E;if((b[E>>0]|0)!=37){D=F;break}else C=F}}while(0);w=D-A|0;if(c)Pm(a,A,w);if(!w)break;else x=z}x=(to(b[(f[j>>2]|0)+1>>0]|0)|0)==0;w=f[j>>2]|0;if(!x?(b[w+2>>0]|0)==36:0){G=(b[w+1>>0]|0)+-48|0;I=1;J=3}else{G=-1;I=v;J=1}x=w+J|0;f[j>>2]=x;w=b[x>>0]|0;y=(w<<24>>24)+-32|0;if(y>>>0>31|(1<<y&75913|0)==0){K=0;L=w;M=x}else{w=0;C=y;y=x;while(1){x=1<<C|w;E=y+1|0;f[j>>2]=E;F=b[E>>0]|0;C=(F<<24>>24)+-32|0;if(C>>>0>31|(1<<C&75913|0)==0){K=x;L=F;M=E;break}else{w=x;y=E}}}if(L<<24>>24==42){if((to(b[M+1>>0]|0)|0)!=0?(y=f[j>>2]|0,(b[y+2>>0]|0)==36):0){w=y+1|0;f[h+((b[w>>0]|0)+-48<<2)>>2]=10;N=f[g+((b[w>>0]|0)+-48<<3)>>2]|0;O=1;P=y+3|0}else{if(I|0){Q=-1;break}if(c){y=(f[e>>2]|0)+(4-1)&~(4-1);w=f[y>>2]|0;f[e>>2]=y+4;R=w}else R=0;N=R;O=0;P=(f[j>>2]|0)+1|0}f[j>>2]=P;w=(N|0)<0;S=w?0-N|0:N;T=w?K|8192:K;U=O;V=P}else{w=sj(j)|0;if((w|0)<0){Q=-1;break}S=w;T=K;U=I;V=f[j>>2]|0}do if((b[V>>0]|0)==46){w=V+1|0;if((b[w>>0]|0)!=42){f[j>>2]=w;w=sj(j)|0;W=w;X=f[j>>2]|0;break}if(to(b[V+2>>0]|0)|0?(w=f[j>>2]|0,(b[w+3>>0]|0)==36):0){y=w+2|0;f[h+((b[y>>0]|0)+-48<<2)>>2]=10;C=f[g+((b[y>>0]|0)+-48<<3)>>2]|0;y=w+4|0;f[j>>2]=y;W=C;X=y;break}if(U|0){Q=-1;break a}if(c){y=(f[e>>2]|0)+(4-1)&~(4-1);C=f[y>>2]|0;f[e>>2]=y+4;Y=C}else Y=0;C=(f[j>>2]|0)+2|0;f[j>>2]=C;W=Y;X=C}else{W=-1;X=V}while(0);C=0;y=X;while(1){if(((b[y>>0]|0)+-65|0)>>>0>57){Q=-1;break a}w=y;y=y+1|0;f[j>>2]=y;Z=b[(b[w>>0]|0)+-65+(13620+(C*58|0))>>0]|0;_=Z&255;if((_+-1|0)>>>0>=8)break;else C=_}if(!(Z<<24>>24)){Q=-1;break}w=(G|0)>-1;do if(Z<<24>>24==19)if(w){Q=-1;break a}else B=54;else{if(w){f[h+(G<<2)>>2]=_;E=g+(G<<3)|0;x=f[E+4>>2]|0;F=k;f[F>>2]=f[E>>2];f[F+4>>2]=x;B=54;break}if(!c){Q=0;break a}Nd(k,_,e);$=f[j>>2]|0;B=55}while(0);if((B|0)==54){B=0;if(c){$=y;B=55}else aa=0}d:do if((B|0)==55){B=0;w=b[$+-1>>0]|0;x=(C|0)!=0&(w&15|0)==3?w&-33:w;w=T&-65537;F=(T&8192|0)==0?T:w;e:do switch(x|0){case 110:{switch((C&255)<<24>>24){case 0:{f[f[k>>2]>>2]=z;aa=0;break d;break}case 1:{f[f[k>>2]>>2]=z;aa=0;break d;break}case 2:{E=f[k>>2]|0;f[E>>2]=z;f[E+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}case 3:{d[f[k>>2]>>1]=z;aa=0;break d;break}case 4:{b[f[k>>2]>>0]=z;aa=0;break d;break}case 6:{f[f[k>>2]>>2]=z;aa=0;break d;break}case 7:{E=f[k>>2]|0;f[E>>2]=z;f[E+4>>2]=((z|0)<0)<<31>>31;aa=0;break d;break}default:{aa=0;break d}}break}case 112:{ba=120;ca=W>>>0>8?W:8;da=F|8;B=67;break}case 88:case 120:{ba=x;ca=W;da=F;B=67;break}case 111:{E=k;ea=f[E>>2]|0;fa=f[E+4>>2]|0;E=wj(ea,fa,o)|0;ga=q-E|0;ha=E;ia=0;ja=14084;ka=(F&8|0)==0|(W|0)>(ga|0)?W:ga+1|0;la=F;ma=ea;na=fa;B=73;break}case 105:case 100:{fa=k;ea=f[fa>>2]|0;ga=f[fa+4>>2]|0;if((ga|0)<0){fa=wl(0,0,ea|0,ga|0)|0;E=H;oa=k;f[oa>>2]=fa;f[oa+4>>2]=E;pa=1;qa=14084;ra=fa;sa=E;B=72;break e}else{pa=(F&2049|0)!=0&1;qa=(F&2048|0)==0?((F&1|0)==0?14084:14086):14085;ra=ea;sa=ga;B=72;break e}break}case 117:{ga=k;pa=0;qa=14084;ra=f[ga>>2]|0;sa=f[ga+4>>2]|0;B=72;break}case 99:{b[r>>0]=f[k>>2];ta=r;ua=0;va=14084;wa=1;xa=w;ya=q;break}case 109:{ga=Ro()|0;za=Um(f[ga>>2]|0)|0;B=77;break}case 115:{ga=f[k>>2]|0;za=(ga|0)==0?14094:ga;B=77;break}case 67:{f[m>>2]=f[k>>2];f[l>>2]=0;f[k>>2]=m;Aa=-1;B=81;break}case 83:{if(!W){vi(a,32,S,0,F);Ba=0;B=91}else{Aa=W;B=81}break}case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:{aa=rb(a,+p[k>>3],S,W,F,x)|0;break d;break}default:{ta=A;ua=0;va=14084;wa=W;xa=F;ya=q}}while(0);f:do if((B|0)==67){B=0;x=k;ga=f[x>>2]|0;ea=f[x+4>>2]|0;x=aj(ga,ea,o,ba&32)|0;E=(da&8|0)==0|(ga|0)==0&(ea|0)==0;ha=x;ia=E?0:2;ja=E?14084:14084+(ba>>>4)|0;ka=ca;la=da;ma=ga;na=ea;B=73}else if((B|0)==72){B=0;ha=xh(ra,sa,o)|0;ia=pa;ja=qa;ka=W;la=F;ma=ra;na=sa;B=73}else if((B|0)==77){B=0;ea=Re(za,0,W)|0;ga=(ea|0)==0;ta=za;ua=0;va=14084;wa=ga?W:ea-za|0;xa=w;ya=ga?za+W|0:ea}else if((B|0)==81){B=0;ea=f[k>>2]|0;ga=0;while(1){E=f[ea>>2]|0;if(!E){Ca=ga;break}x=Fm(n,E)|0;Da=(x|0)<0;if(Da|x>>>0>(Aa-ga|0)>>>0){B=85;break}E=x+ga|0;if(Aa>>>0>E>>>0){ea=ea+4|0;ga=E}else{Ca=E;break}}if((B|0)==85){B=0;if(Da){Q=-1;break a}else Ca=ga}vi(a,32,S,Ca,F);if(!Ca){Ba=0;B=91}else{ea=f[k>>2]|0;E=0;while(1){x=f[ea>>2]|0;if(!x){Ba=Ca;B=91;break f}fa=Fm(n,x)|0;E=fa+E|0;if((E|0)>(Ca|0)){Ba=Ca;B=91;break f}Pm(a,n,fa);if(E>>>0>=Ca>>>0){Ba=Ca;B=91;break}else ea=ea+4|0}}}while(0);if((B|0)==73){B=0;w=(ma|0)!=0|(na|0)!=0;ea=(ka|0)!=0|w;E=q-ha+((w^1)&1)|0;ta=ea?ha:o;ua=ia;va=ja;wa=ea?((ka|0)>(E|0)?ka:E):0;xa=(ka|0)>-1?la&-65537:la;ya=q}else if((B|0)==91){B=0;vi(a,32,S,Ba,F^8192);aa=(S|0)>(Ba|0)?S:Ba;break}E=ya-ta|0;ea=(wa|0)<(E|0)?E:wa;w=ea+ua|0;ga=(S|0)<(w|0)?w:S;vi(a,32,ga,w,xa);Pm(a,va,ua);vi(a,48,ga,w,xa^65536);vi(a,48,ea,E,0);Pm(a,ta,E);vi(a,32,ga,w,xa^8192);aa=ga}while(0);s=aa;t=z;v=U}g:do if((B|0)==94)if(!a)if(!v)Q=0;else{U=1;while(1){t=f[h+(U<<2)>>2]|0;if(!t)break;Nd(g+(U<<3)|0,t,e);t=U+1|0;if(t>>>0<10)U=t;else{Q=1;break g}}t=U;while(1){if(f[h+(t<<2)>>2]|0){Q=-1;break g}t=t+1|0;if(t>>>0>=10){Q=1;break}}}else Q=z;while(0);u=i;return Q|0}function vb(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;c=u;u=u+32|0;d=c+20|0;e=c+16|0;g=c+4|0;i=c;j=a+36|0;k=a+37|0;l=a+32|0;m=f[l>>2]|0;do if((((h[j>>0]|0)<<8|(h[k>>0]|0))&65535)<514){n=m+8|0;o=f[n>>2]|0;p=f[n+4>>2]|0;n=m+16|0;q=n;r=f[q>>2]|0;s=f[q+4>>2]|0;q=vl(r|0,s|0,4,0)|0;t=H;if((p|0)<(t|0)|(p|0)==(t|0)&o>>>0<q>>>0){v=0;u=c;return v|0}w=(f[m>>2]|0)+r|0;x=h[w>>0]|h[w+1>>0]<<8|h[w+2>>0]<<16|h[w+3>>0]<<24;f[d>>2]=x;w=n;f[w>>2]=q;f[w+4>>2]=t;t=vl(r|0,s|0,8,0)|0;s=H;if((p|0)<(s|0)|(p|0)==(s|0)&o>>>0<t>>>0){v=0;u=c;return v|0}else{o=(f[m>>2]|0)+q|0;f[e>>2]=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;o=n;f[o>>2]=t;f[o+4>>2]=s;y=x;break}}else{if(!(zh(d,m)|0)){v=0;u=c;return v|0}if(zh(e,f[l>>2]|0)|0){y=f[d>>2]|0;break}else{v=0;u=c;return v|0}}while(0);if(y>>>0>1431655765){v=0;u=c;return v|0}m=f[e>>2]|0;x=Bk(y|0,0,3,0)|0;s=H;if(s>>>0<0|(s|0)==0&x>>>0<m>>>0){v=0;u=c;return v|0}x=f[l>>2]|0;s=x+8|0;o=f[s+4>>2]|0;t=x+16|0;n=t;q=f[n>>2]|0;p=f[n+4>>2]|0;if(!((o|0)>(p|0)|((o|0)==(p|0)?(f[s>>2]|0)>>>0>q>>>0:0))){v=0;u=c;return v|0}s=b[(f[x>>2]|0)+q>>0]|0;o=vl(q|0,p|0,1,0)|0;n=H;r=t;f[r>>2]=o;f[r+4>>2]=n;a:do if(!(s<<24>>24)){if(!(ke(a,y)|0)){v=0;u=c;return v|0}}else{if(m>>>0<256){if(!y)break;r=a+44|0;t=g+4|0;w=g+8|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;z=x+8|0;A=f[z>>2]|0;B=f[z+4>>2]|0;b:do if((B|0)>(n|0)|(B|0)==(n|0)&A>>>0>o>>>0){z=0;C=x;D=o;E=n;F=B;G=A;I=y;while(1){J=C+16|0;K=f[C>>2]|0;L=b[K+D>>0]|0;M=vl(D|0,E|0,1,0)|0;N=H;O=J;f[O>>2]=M;f[O+4>>2]=N;f[g>>2]=L&255;if(!((F|0)>(N|0)|(F|0)==(N|0)&G>>>0>M>>>0))break b;N=b[K+M>>0]|0;M=vl(D|0,E|0,2,0)|0;L=H;O=J;f[O>>2]=M;f[O+4>>2]=L;f[t>>2]=N&255;if(!((F|0)>(L|0)|(F|0)==(L|0)&G>>>0>M>>>0))break b;L=b[K+M>>0]|0;M=vl(D|0,E|0,3,0)|0;K=J;f[K>>2]=M;f[K+4>>2]=H;f[w>>2]=L&255;L=f[r>>2]|0;K=L+100|0;M=f[K>>2]|0;if((M|0)==(f[L+104>>2]|0)){yg(L+96|0,g);P=f[d>>2]|0}else{f[M>>2]=f[g>>2];f[M+4>>2]=f[g+4>>2];f[M+8>>2]=f[g+8>>2];f[K>>2]=(f[K>>2]|0)+12;P=I}z=z+1|0;if(z>>>0>=P>>>0)break a;C=f[l>>2]|0;K=C+16|0;D=f[K>>2]|0;E=f[K+4>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;K=C+8|0;G=f[K>>2]|0;F=f[K+4>>2]|0;if(!((F|0)>(E|0)|(F|0)==(E|0)&G>>>0>D>>>0))break;else I=P}}while(0);v=0;u=c;return v|0}if(m>>>0<65536){if(!y)break;r=a+44|0;w=g+4|0;t=g+8|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;A=x+8|0;B=f[A>>2]|0;I=f[A+4>>2]|0;A=vl(q|0,p|0,3,0)|0;D=H;c:do if(!((I|0)<(D|0)|(I|0)==(D|0)&B>>>0<A>>>0)){G=0;E=x;F=o;C=A;z=D;K=n;M=I;L=B;J=y;while(1){N=E+16|0;O=f[E>>2]|0;Q=O+F|0;R=h[Q>>0]|h[Q+1>>0]<<8;Q=N;f[Q>>2]=C;f[Q+4>>2]=z;f[g>>2]=R&65535;R=vl(F|0,K|0,4,0)|0;Q=H;if((M|0)<(Q|0)|(M|0)==(Q|0)&L>>>0<R>>>0)break c;S=O+C|0;T=h[S>>0]|h[S+1>>0]<<8;S=N;f[S>>2]=R;f[S+4>>2]=Q;f[w>>2]=T&65535;T=vl(F|0,K|0,6,0)|0;Q=H;if((M|0)<(Q|0)|(M|0)==(Q|0)&L>>>0<T>>>0)break c;S=O+R|0;R=h[S>>0]|h[S+1>>0]<<8;S=N;f[S>>2]=T;f[S+4>>2]=Q;f[t>>2]=R&65535;R=f[r>>2]|0;Q=R+100|0;S=f[Q>>2]|0;if((S|0)==(f[R+104>>2]|0)){yg(R+96|0,g);U=f[d>>2]|0}else{f[S>>2]=f[g>>2];f[S+4>>2]=f[g+4>>2];f[S+8>>2]=f[g+8>>2];f[Q>>2]=(f[Q>>2]|0)+12;U=J}G=G+1|0;if(G>>>0>=U>>>0)break a;E=f[l>>2]|0;Q=E+16|0;F=f[Q>>2]|0;K=f[Q+4>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;Q=E+8|0;L=f[Q>>2]|0;M=f[Q+4>>2]|0;C=vl(F|0,K|0,2,0)|0;z=H;if((M|0)<(z|0)|(M|0)==(z|0)&L>>>0<C>>>0)break;else J=U}}while(0);v=0;u=c;return v|0}r=a+44|0;if((f[(f[r>>2]|0)+80>>2]|0)>>>0<2097152?(((h[j>>0]|0)<<8|(h[k>>0]|0))&65535)>513:0){if(!y)break;t=g+4|0;w=g+8|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;d:do if(zh(i,x)|0){B=0;do{f[g>>2]=f[i>>2];if(!(zh(i,f[l>>2]|0)|0))break d;f[t>>2]=f[i>>2];if(!(zh(i,f[l>>2]|0)|0))break d;f[w>>2]=f[i>>2];I=f[r>>2]|0;D=I+100|0;A=f[D>>2]|0;if((A|0)==(f[I+104>>2]|0))yg(I+96|0,g);else{f[A>>2]=f[g>>2];f[A+4>>2]=f[g+4>>2];f[A+8>>2]=f[g+8>>2];f[D>>2]=(f[D>>2]|0)+12}B=B+1|0;if(B>>>0>=(f[d>>2]|0)>>>0)break a;D=f[l>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0}while(zh(i,D)|0)}while(0);v=0;u=c;return v|0}if(y|0){w=g+4|0;t=g+8|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;B=x+8|0;D=f[B>>2]|0;A=f[B+4>>2]|0;B=vl(q|0,p|0,5,0)|0;I=H;e:do if(!((A|0)<(I|0)|(A|0)==(I|0)&D>>>0<B>>>0)){J=0;C=x;L=o;z=B;M=I;K=n;F=A;E=D;G=y;while(1){Q=C+16|0;S=f[C>>2]|0;R=S+L|0;T=h[R>>0]|h[R+1>>0]<<8|h[R+2>>0]<<16|h[R+3>>0]<<24;R=Q;f[R>>2]=z;f[R+4>>2]=M;f[g>>2]=T;T=vl(L|0,K|0,8,0)|0;R=H;if((F|0)<(R|0)|(F|0)==(R|0)&E>>>0<T>>>0)break e;N=S+z|0;O=h[N>>0]|h[N+1>>0]<<8|h[N+2>>0]<<16|h[N+3>>0]<<24;N=Q;f[N>>2]=T;f[N+4>>2]=R;f[w>>2]=O;O=vl(L|0,K|0,12,0)|0;R=H;if((F|0)<(R|0)|(F|0)==(R|0)&E>>>0<O>>>0)break e;N=S+T|0;T=h[N>>0]|h[N+1>>0]<<8|h[N+2>>0]<<16|h[N+3>>0]<<24;N=Q;f[N>>2]=O;f[N+4>>2]=R;f[t>>2]=T;T=f[r>>2]|0;R=T+100|0;N=f[R>>2]|0;if((N|0)==(f[T+104>>2]|0)){yg(T+96|0,g);V=f[d>>2]|0}else{f[N>>2]=f[g>>2];f[N+4>>2]=f[g+4>>2];f[N+8>>2]=f[g+8>>2];f[R>>2]=(f[R>>2]|0)+12;V=G}J=J+1|0;if(J>>>0>=V>>>0)break a;C=f[l>>2]|0;R=C+16|0;L=f[R>>2]|0;K=f[R+4>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;R=C+8|0;E=f[R>>2]|0;F=f[R+4>>2]|0;z=vl(L|0,K|0,4,0)|0;M=H;if((F|0)<(M|0)|(F|0)==(M|0)&E>>>0<z>>>0)break;else G=V}}while(0);v=0;u=c;return v|0}}while(0);f[(f[a+4>>2]|0)+80>>2]=f[e>>2];v=1;u=c;return v|0}function wb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=Ia,D=0,E=0.0,F=0,G=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(q|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){m=b[o>>0]|0;q=g+(r<<3)|0;f[q>>2]=m;f[q+4>>2]=((m|0)<0)<<31>>31;r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(q|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=g+(t<<3)|0;f[k>>2]=h[m>>0];f[k+4>>2]=0;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){o=d[l>>1]|0;k=g+(q<<3)|0;f[k>>2]=o;f[k+4>>2]=((o|0)<0)<<31>>31;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=vl(o|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=j[r>>1];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<3)|0,0,(e<<24>>24)-r<<3|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=Bk(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=vl(m|0,H|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){l=f[t>>2]|0;m=g+(o<<3)|0;f[m>>2]=l;f[m+4>>2]=((l|0)<0)<<31>>31;o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(t<<3)|0,0,(e<<24>>24)-t<<3|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=vl(l|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){r=g+(m<<3)|0;f[r>>2]=f[q>>2];f[r+4>>2]=0;m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<3)|0,0,(e<<24>>24)-q<<3|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=vl(r|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){t=k;r=f[t+4>>2]|0;z=g+(l<<3)|0;f[z>>2]=f[t>>2];f[z+4>>2]=r;l=l+1|0;r=b[q>>0]|0;if((l|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){A=r;break}else k=k+8|0}}else A=m;k=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<3)|0,0,(e<<24>>24)-k<<3|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;r=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;z=vl(r|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+z|0;z=0;while(1){q=o;r=f[q+4>>2]|0;t=g+(z<<3)|0;f[t>>2]=f[q>>2];f[t+4>>2]=r;z=z+1|0;r=b[k>>0]|0;if((z|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){B=r;break}else o=o+8|0}}else B=l;o=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<3)|0,0,(e<<24>>24)-o<<3|0)|0;i=1;return i|0}case 9:{o=a+24|0;z=b[o>>0]|0;if((z<<24>>24>e<<24>>24?e:z)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;r=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(r|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){C=_(n[m>>2]);k=+J(+C)>=1.0?(+C>0.0?~~+X(+I(+C/4294967296.0),4294967295.0)>>>0:~~+V((+C-+(~~+C>>>0))/4294967296.0)>>>0):0;r=g+(t<<3)|0;f[r>>2]=~~+C>>>0;f[r+4>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){D=k;break}else m=m+4|0}}else D=z;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<3)|0,0,(e<<24>>24)-m<<3|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;r=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+r|0;r=0;while(1){E=+p[l>>3];o=+J(E)>=1.0?(E>0.0?~~+X(+I(E/4294967296.0),4294967295.0)>>>0:~~+V((E-+(~~E>>>0))/4294967296.0)>>>0):0;k=g+(r<<3)|0;f[k>>2]=~~E>>>0;f[k+4>>2]=o;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){F=o;break}else l=l+8|0}}else F=t;l=F<<24>>24;if(F<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<3)|0,0,(e<<24>>24)-l<<3|0)|0;i=1;return i|0}case 11:{l=a+24|0;r=b[l>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){m=f[f[a>>2]>>2]|0;z=a+40|0;o=Bk(f[z>>2]|0,f[z+4>>2]|0,f[c>>2]|0,0)|0;z=a+48|0;k=vl(o|0,H|0,f[z>>2]|0,f[z+4>>2]|0)|0;z=m+k|0;k=0;while(1){m=g+(k<<3)|0;f[m>>2]=h[z>>0];f[m+4>>2]=0;k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){G=m;break}else z=z+1|0}}else G=r;z=G<<24>>24;if(G<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(z<<3)|0,0,(e<<24>>24)-z<<3|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function xb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;c=u;u=u+16|0;d=c+8|0;e=c;if((f[a+96>>2]|0)==(f[a+92>>2]|0)){u=c;return 1}g=a+56|0;h=f[g>>2]|0;if((h|0)==(f[a+60>>2]|0)){Ng(a+52|0,b);i=b}else{f[h>>2]=f[b>>2];f[g>>2]=h+4;i=b}b=a+88|0;f[b>>2]=0;h=f[a>>2]|0;g=f[i>>2]|0;j=g+1|0;if((g|0)!=-1){k=((j>>>0)%3|0|0)==0?g+-2|0:j;if((k|0)==-1)l=-1;else l=f[(f[h>>2]|0)+(k<<2)>>2]|0;k=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((k|0)==-1){m=l;n=-1}else{m=l;n=f[(f[h>>2]|0)+(k<<2)>>2]|0}}else{m=-1;n=-1}k=a+24|0;h=f[k>>2]|0;l=h+(m>>>5<<2)|0;g=1<<(m&31);j=f[l>>2]|0;if(!(j&g)){f[l>>2]=j|g;g=f[i>>2]|0;j=g+1|0;if((g|0)==-1)o=-1;else o=((j>>>0)%3|0|0)==0?g+-2|0:j;f[e>>2]=o;j=(o>>>0)/3|0;g=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(j*12|0)+(o-(j*3|0)<<2)>>2]|0;j=f[a+48>>2]|0;f[d>>2]=g;o=f[j+4>>2]|0;j=o+4|0;l=f[j>>2]|0;if((l|0)==(f[o+8>>2]|0))Ng(o,d);else{f[l>>2]=g;f[j>>2]=l+4}l=a+40|0;j=f[l>>2]|0;g=j+4|0;o=f[g>>2]|0;if((o|0)==(f[j+8>>2]|0)){Ng(j,e);p=f[l>>2]|0}else{f[o>>2]=f[e>>2];f[g>>2]=o+4;p=j}j=p+24|0;f[(f[p+12>>2]|0)+(m<<2)>>2]=f[j>>2];f[j>>2]=(f[j>>2]|0)+1;q=f[k>>2]|0}else q=h;h=q+(n>>>5<<2)|0;q=1<<(n&31);j=f[h>>2]|0;if(!(j&q)){f[h>>2]=j|q;q=f[i>>2]|0;do if((q|0)!=-1)if(!((q>>>0)%3|0)){r=q+2|0;break}else{r=q+-1|0;break}else r=-1;while(0);f[e>>2]=r;q=(r>>>0)/3|0;j=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(q*12|0)+(r-(q*3|0)<<2)>>2]|0;q=f[a+48>>2]|0;f[d>>2]=j;r=f[q+4>>2]|0;q=r+4|0;h=f[q>>2]|0;if((h|0)==(f[r+8>>2]|0))Ng(r,d);else{f[h>>2]=j;f[q>>2]=h+4}h=a+40|0;q=f[h>>2]|0;j=q+4|0;r=f[j>>2]|0;if((r|0)==(f[q+8>>2]|0)){Ng(q,e);s=f[h>>2]|0}else{f[r>>2]=f[e>>2];f[j>>2]=r+4;s=q}q=s+24|0;f[(f[s+12>>2]|0)+(n<<2)>>2]=f[q>>2];f[q>>2]=(f[q>>2]|0)+1}q=f[i>>2]|0;if((q|0)==-1)t=-1;else t=f[(f[f[a>>2]>>2]|0)+(q<<2)>>2]|0;q=(f[k>>2]|0)+(t>>>5<<2)|0;n=1<<(t&31);s=f[q>>2]|0;if(!(n&s)){f[q>>2]=s|n;n=f[i>>2]|0;f[e>>2]=n;s=(n>>>0)/3|0;q=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(s*12|0)+(n-(s*3|0)<<2)>>2]|0;s=f[a+48>>2]|0;f[d>>2]=q;n=f[s+4>>2]|0;s=n+4|0;r=f[s>>2]|0;if((r|0)==(f[n+8>>2]|0))Ng(n,d);else{f[r>>2]=q;f[s>>2]=r+4}r=a+40|0;s=f[r>>2]|0;q=s+4|0;n=f[q>>2]|0;if((n|0)==(f[s+8>>2]|0)){Ng(s,e);v=f[r>>2]|0}else{f[n>>2]=f[e>>2];f[q>>2]=n+4;v=s}s=v+24|0;f[(f[v+12>>2]|0)+(t<<2)>>2]=f[s>>2];f[s>>2]=(f[s>>2]|0)+1}s=f[b>>2]|0;a:do if((s|0)<3){t=a+12|0;v=a+44|0;n=a+48|0;q=a+40|0;r=a+92|0;j=s;while(1){h=a+52+(j*12|0)+4|0;m=f[h>>2]|0;if((f[a+52+(j*12|0)>>2]|0)==(m|0))if((j|0)<2)w=j+1|0;else break a;else{p=m+-4|0;m=f[p>>2]|0;f[h>>2]=p;f[b>>2]=j;f[i>>2]=m;if((m|0)==-1)break;p=(m>>>0)/3|0;h=f[t>>2]|0;do if(!(f[h+(p>>>5<<2)>>2]&1<<(p&31))){o=m;g=h;b:while(1){l=(o>>>0)/3|0;x=g+(l>>>5<<2)|0;f[x>>2]=1<<(l&31)|f[x>>2];x=f[i>>2]|0;if((x|0)==-1)y=-1;else y=f[(f[f[a>>2]>>2]|0)+(x<<2)>>2]|0;l=(f[k>>2]|0)+(y>>>5<<2)|0;z=1<<(y&31);A=f[l>>2]|0;if(!(z&A)){f[l>>2]=A|z;z=f[i>>2]|0;f[e>>2]=z;A=(z>>>0)/3|0;l=f[(f[(f[v>>2]|0)+96>>2]|0)+(A*12|0)+(z-(A*3|0)<<2)>>2]|0;A=f[n>>2]|0;f[d>>2]=l;z=f[A+4>>2]|0;A=z+4|0;B=f[A>>2]|0;if((B|0)==(f[z+8>>2]|0))Ng(z,d);else{f[B>>2]=l;f[A>>2]=B+4}B=f[q>>2]|0;A=B+4|0;l=f[A>>2]|0;if((l|0)==(f[B+8>>2]|0)){Ng(B,e);C=f[q>>2]|0}else{f[l>>2]=f[e>>2];f[A>>2]=l+4;C=B}B=C+24|0;f[(f[C+12>>2]|0)+(y<<2)>>2]=f[B>>2];f[B>>2]=(f[B>>2]|0)+1;D=f[i>>2]|0}else D=x;x=f[a>>2]|0;if((D|0)==-1){E=94;break}B=D+1|0;l=((B>>>0)%3|0|0)==0?D+-2|0:B;if((l|0)==-1)F=-1;else F=f[(f[x+12>>2]|0)+(l<<2)>>2]|0;l=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((l|0)==-1)G=-1;else G=f[(f[x+12>>2]|0)+(l<<2)>>2]|0;l=(F|0)==-1;B=l?-1:(F>>>0)/3|0;A=(G|0)==-1;z=A?-1:(G>>>0)/3|0;if(l)H=1;else H=(f[(f[t>>2]|0)+(B>>>5<<2)>>2]&1<<(B&31)|0)!=0;do if(A)if(H){E=94;break b}else E=82;else{if(f[(f[t>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)if(H){E=94;break b}else{E=82;break}B=f[(f[x>>2]|0)+(G<<2)>>2]|0;if(!(1<<(B&31)&f[(f[k>>2]|0)+(B>>>5<<2)>>2])){I=(f[r>>2]|0)+(B<<2)|0;B=f[I>>2]|0;f[I>>2]=B+1;J=(B|0)>0?1:2}else J=0;if(H?(J|0)<=(f[b>>2]|0):0){K=G;break}f[d>>2]=G;B=a+52+(J*12|0)+4|0;I=f[B>>2]|0;if((I|0)==(f[a+52+(J*12|0)+8>>2]|0))Ng(a+52+(J*12|0)|0,d);else{f[I>>2]=G;f[B>>2]=I+4}if((f[b>>2]|0)>(J|0))f[b>>2]=J;if(H){E=94;break b}else E=82}while(0);if((E|0)==82){E=0;if(l)L=-1;else L=f[(f[f[a>>2]>>2]|0)+(F<<2)>>2]|0;if(!(1<<(L&31)&f[(f[k>>2]|0)+(L>>>5<<2)>>2])){x=(f[r>>2]|0)+(L<<2)|0;z=f[x>>2]|0;f[x>>2]=z+1;M=(z|0)>0?1:2}else M=0;if((M|0)>(f[b>>2]|0))break;else K=F}f[i>>2]=K;o=K;g=f[t>>2]|0}if((E|0)==94){E=0;N=f[b>>2]|0;break}f[d>>2]=F;g=a+52+(M*12|0)+4|0;o=f[g>>2]|0;if((o|0)==(f[a+52+(M*12|0)+8>>2]|0))Ng(a+52+(M*12|0)|0,d);else{f[o>>2]=F;f[g>>2]=o+4}o=f[b>>2]|0;if((o|0)>(M|0)){f[b>>2]=M;O=M}else O=o;N=O}else N=j;while(0);if((N|0)<3)w=N;else break a}j=w}u=c;return 1}while(0);f[i>>2]=-1;u=c;return 1}function yb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0;c=u;u=u+32|0;d=c+16|0;e=c+4|0;g=c;f[a+36>>2]=b;h=a+24|0;i=a+28|0;j=f[h>>2]|0;k=(f[i>>2]|0)-j>>2;l=j;if(k>>>0>=b>>>0){if(k>>>0>b>>>0)f[i>>2]=l+(b<<2)}else Of(h,b-k|0,3732);f[d>>2]=0;k=d+4|0;f[k>>2]=0;l=d+8|0;f[l>>2]=0;if(b){if((b|0)<0)$n(d);j=((b+-1|0)>>>5)+1|0;m=wk(j<<2)|0;f[d>>2]=m;f[l>>2]=j;f[k>>2]=b;j=b>>>5;oh(m|0,0,j<<2|0)|0;n=b&31;o=m+(j<<2)|0;j=m;if(!n){p=b;q=j;r=m}else{f[o>>2]=f[o>>2]&~(-1>>>(32-n|0));p=b;q=j;r=m}}else{p=0;q=0;r=0}m=a+4|0;j=f[a>>2]|0;n=(f[m>>2]|0)-j|0;o=n>>2;f[e>>2]=0;s=e+4|0;f[s>>2]=0;t=e+8|0;f[t>>2]=0;do if(n){if((n|0)<0)$n(e);v=((o+-1|0)>>>5)+1|0;w=wk(v<<2)|0;f[e>>2]=w;f[t>>2]=v;f[s>>2]=o;v=o>>>5;oh(w|0,0,v<<2|0)|0;x=o&31;y=w+(v<<2)|0;if(x|0)f[y>>2]=f[y>>2]&~(-1>>>(32-x|0));if(o>>>0>2){x=a+32|0;y=a+12|0;v=a+52|0;w=a+56|0;z=a+48|0;A=b;B=j;C=0;D=q;E=r;a:while(1){F=B;G=C*3|0;H=f[F+(G<<2)>>2]|0;I=G+1|0;if((I|0)!=-1){J=f[F+(I<<2)>>2]|0;I=G+2|0;if((I|0)==-1){K=-1;L=J}else{M=J;N=I;O=22}}else{M=-1;N=0;O=22}if((O|0)==22){O=0;K=f[F+(N<<2)>>2]|0;L=M}if((H|0)!=(L|0)?!((H|0)==(K|0)|(L|0)==(K|0)):0){H=0;F=A;I=D;J=E;while(1){P=H+G|0;if(!(f[(f[e>>2]|0)+(P>>>5<<2)>>2]&1<<(P&31))){Q=f[(f[a>>2]|0)+(P<<2)>>2]|0;f[g>>2]=Q;R=Q>>>5;S=1<<(Q&31);b:do if(!(f[J+(R<<2)>>2]&S)){Q=f[d>>2]|0;T=Q+(R<<2)|0;f[T>>2]=f[T>>2]|S;T=Q;U=f[h>>2]|0;V=P;while(1){W=(f[e>>2]|0)+(V>>>5<<2)|0;f[W>>2]=f[W>>2]|1<<(V&31);f[U+(f[g>>2]<<2)>>2]=V;W=V+1|0;X=((W>>>0)%3|0|0)==0?V+-2|0:W;do if((X|0)==-1)Y=-1;else{W=f[(f[y>>2]|0)+(X<<2)>>2]|0;Z=W+1|0;if((W|0)==-1){Y=-1;break}Y=((Z>>>0)%3|0|0)==0?W+-2|0:Z}while(0);if((Y|0)==(P|0)){_=0;$=F;aa=T;ba=Q;O=50;break b}if((Y|0)==-1){ca=0;da=F;ea=T;fa=Q;O=51;break}else V=Y}}else{V=f[i>>2]|0;if((V|0)==(f[x>>2]|0))Ng(h,3732);else{f[V>>2]=-1;f[i>>2]=V+4}V=f[v>>2]|0;if((V|0)==(f[w>>2]|0))Ng(z,g);else{f[V>>2]=f[g>>2];f[v>>2]=V+4}V=f[k>>2]|0;Q=f[l>>2]|0;if((V|0)==(Q<<5|0)){if((V+1|0)<0){O=36;break a}T=Q<<6;Q=V+32&-32;vg(d,V>>>0<1073741823?(T>>>0<Q>>>0?Q:T):2147483647);ga=f[k>>2]|0}else ga=V;f[k>>2]=ga+1;V=(f[d>>2]|0)+(ga>>>5<<2)|0;f[V>>2]=f[V>>2]&~(1<<(ga&31));V=F+1|0;f[g>>2]=F;T=f[d>>2]|0;Q=T+(F>>>5<<2)|0;f[Q>>2]=f[Q>>2]|1<<(F&31);Q=T;U=f[h>>2]|0;X=f[a>>2]|0;Z=P;while(1){W=(f[e>>2]|0)+(Z>>>5<<2)|0;f[W>>2]=f[W>>2]|1<<(Z&31);W=f[g>>2]|0;f[U+(W<<2)>>2]=Z;f[X+(Z<<2)>>2]=W;W=Z+1|0;ha=((W>>>0)%3|0|0)==0?Z+-2|0:W;do if((ha|0)==-1)ia=-1;else{W=f[(f[y>>2]|0)+(ha<<2)>>2]|0;ja=W+1|0;if((W|0)==-1){ia=-1;break}ia=((ja>>>0)%3|0|0)==0?W+-2|0:ja}while(0);if((ia|0)==(P|0)){_=1;$=V;aa=Q;ba=T;O=50;break b}if((ia|0)==-1){ca=1;da=V;ea=Q;fa=T;O=51;break}else Z=ia}}while(0);if((O|0)==50){O=0;if((P|0)==-1){ca=_;da=$;ea=aa;fa=ba;O=51}else{ka=$;la=aa;ma=ba}}c:do if((O|0)==51){O=0;S=(((P>>>0)%3|0|0)==0?2:-1)+P|0;if(((S|0)!=-1?(R=f[(f[y>>2]|0)+(S<<2)>>2]|0,(R|0)!=-1):0)?(S=R+(((R>>>0)%3|0|0)==0?2:-1)|0,(S|0)!=-1):0)if(ca){R=f[a>>2]|0;Z=S;while(1){T=(f[e>>2]|0)+(Z>>>5<<2)|0;f[T>>2]=f[T>>2]|1<<(Z&31);f[R+(Z<<2)>>2]=f[g>>2];T=(((Z>>>0)%3|0|0)==0?2:-1)+Z|0;if((T|0)==-1){ka=da;la=ea;ma=fa;break c}Q=f[(f[y>>2]|0)+(T<<2)>>2]|0;if((Q|0)==-1){ka=da;la=ea;ma=fa;break c}Z=Q+(((Q>>>0)%3|0|0)==0?2:-1)|0;if((Z|0)==-1){ka=da;la=ea;ma=fa;break}}}else{Z=S;while(1){R=(f[e>>2]|0)+(Z>>>5<<2)|0;f[R>>2]=f[R>>2]|1<<(Z&31);R=(((Z>>>0)%3|0|0)==0?2:-1)+Z|0;if((R|0)==-1){ka=da;la=ea;ma=fa;break c}Q=f[(f[y>>2]|0)+(R<<2)>>2]|0;if((Q|0)==-1){ka=da;la=ea;ma=fa;break c}Z=Q+(((Q>>>0)%3|0|0)==0?2:-1)|0;if((Z|0)==-1){ka=da;la=ea;ma=fa;break}}}else{ka=da;la=ea;ma=fa}}while(0);na=ka;oa=la;pa=ma}else{na=F;oa=I;pa=J}H=H+1|0;if(H>>>0>=3){qa=na;ra=oa;sa=pa;break}else{F=na;I=oa;J=pa}}}else{qa=A;ra=D;sa=E}C=C+1|0;B=f[a>>2]|0;if(C>>>0>=(((f[m>>2]|0)-B>>2>>>0)/3|0)>>>0){O=17;break}else{A=qa;D=ra;E=sa}}if((O|0)==17){ta=ra;ua=f[k>>2]|0;break}else if((O|0)==36)$n(d)}else{ta=q;ua=p}}else{ta=q;ua=p}while(0);p=a+44|0;f[p>>2]=0;a=ta;q=ua>>>5;O=a+(q<<2)|0;k=ua&31;if(q|k|0){q=ta;ta=0;ua=a;a=0;while(1){if(!(f[ua>>2]&1<<ta)){ra=a+1|0;f[p>>2]=ra;va=ra}else va=a;ra=(ta|0)==31;q=ra?ua+4|0:q;ta=ra?0:ta+1|0;ua=q;if(!((O|0)!=(ua|0)|(ta|0)!=(k|0)))break;else a=va}}va=f[e>>2]|0;if(va|0)Ko(va);va=f[d>>2]|0;if(!va){u=c;return 1}Ko(va);u=c;return 1}function zb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=Ia,L=Ia,M=Ia,N=0,O=0,P=0,Q=0,R=0,S=0;e=u;u=u+48|0;g=e+40|0;i=e+16|0;j=e;k=Ec(a,c)|0;if(k|0){l=f[a+4>>2]|0;m=f[k+4>>2]|0;o=l+-1|0;p=(o&l|0)==0;if(!p)if(m>>>0<l>>>0)q=m;else q=(m>>>0)%(l>>>0)|0;else q=o&m;m=(f[a>>2]|0)+(q<<2)|0;r=f[m>>2]|0;while(1){s=f[r>>2]|0;if((s|0)==(k|0))break;else r=s}if((r|0)!=(a+8|0)){s=f[r+4>>2]|0;if(!p)if(s>>>0<l>>>0)t=s;else t=(s>>>0)%(l>>>0)|0;else t=s&o;if((t|0)==(q|0))v=k;else w=15}else w=15;do if((w|0)==15){t=f[k>>2]|0;if(t|0){s=f[t+4>>2]|0;if(!p)if(s>>>0<l>>>0)x=s;else x=(s>>>0)%(l>>>0)|0;else x=s&o;if((x|0)==(q|0)){v=k;break}}f[m>>2]=0;v=k}while(0);m=f[v>>2]|0;x=m;if(m){s=f[m+4>>2]|0;if(!p)if(s>>>0<l>>>0)y=s;else y=(s>>>0)%(l>>>0)|0;else y=s&o;if((y|0)!=(q|0)){f[(f[a>>2]|0)+(y<<2)>>2]=r;z=f[k>>2]|0}else z=x}else z=x;f[r>>2]=z;f[v>>2]=0;v=a+12|0;f[v>>2]=(f[v>>2]|0)+-1;v=k+8|0;z=f[k+20>>2]|0;if(z|0){f[k+24>>2]=z;Ko(z)}if((b[v+11>>0]|0)<0)Ko(f[v>>2]|0);Ko(k)}f[j>>2]=0;k=j+4|0;f[k>>2]=0;f[j+8>>2]=0;v=(f[d+4>>2]|0)-(f[d>>2]|0)|0;Kg(j,v);Bf(f[j>>2]|0,f[d>>2]|0,v|0)|0;Yi(i,c);c=i+12|0;f[c>>2]=0;v=i+16|0;f[v>>2]=0;f[i+20>>2]=0;Kg(c,(f[k>>2]|0)-(f[j>>2]|0)|0);d=f[j>>2]|0;Bf(f[c>>2]|0,d|0,(f[k>>2]|0)-d|0)|0;d=i+11|0;z=b[d>>0]|0;r=z<<24>>24<0;x=r?f[i>>2]|0:i;y=r?f[i+4>>2]|0:z&255;if(y>>>0>3){z=x;r=y;q=y;while(1){o=W(h[z>>0]|h[z+1>>0]<<8|h[z+2>>0]<<16|h[z+3>>0]<<24,1540483477)|0;r=(W(o>>>24^o,1540483477)|0)^(W(r,1540483477)|0);q=q+-4|0;if(q>>>0<=3)break;else z=z+4|0}z=y+-4|0;q=z&-4;A=z-q|0;B=x+(q+4)|0;C=r}else{A=y;B=x;C=y}switch(A|0){case 3:{D=h[B+2>>0]<<16^C;w=40;break}case 2:{D=C;w=40;break}case 1:{E=C;w=41;break}default:F=C}if((w|0)==40){E=h[B+1>>0]<<8^D;w=41}if((w|0)==41)F=W(E^h[B>>0],1540483477)|0;B=W(F>>>13^F,1540483477)|0;F=B>>>15^B;B=a+4|0;E=f[B>>2]|0;D=(E|0)==0;a:do if(!D){C=E+-1|0;A=(C&E|0)==0;if(!A)if(F>>>0<E>>>0)G=F;else G=(F>>>0)%(E>>>0)|0;else G=F&C;r=f[(f[a>>2]|0)+(G<<2)>>2]|0;if((r|0)!=0?(q=f[r>>2]|0,(q|0)!=0):0){r=(y|0)==0;if(A){if(r){A=q;while(1){z=f[A+4>>2]|0;if(!((z|0)==(F|0)|(z&C|0)==(G|0))){H=G;w=86;break a}z=b[A+8+11>>0]|0;if(!((z<<24>>24<0?f[A+12>>2]|0:z&255)|0))break a;A=f[A>>2]|0;if(!A){H=G;w=86;break a}}}A=q;while(1){z=f[A+4>>2]|0;if(!((z|0)==(F|0)|(z&C|0)==(G|0))){H=G;w=86;break a}z=A+8|0;o=b[z+11>>0]|0;s=o<<24>>24<0;l=o&255;do if(((s?f[A+12>>2]|0:l)|0)==(y|0)){o=f[z>>2]|0;if(s)if(!(Fi(o,x,y)|0))break a;else break;if((b[x>>0]|0)==(o&255)<<24>>24){o=z;p=l;m=x;do{p=p+-1|0;o=o+1|0;if(!p)break a;m=m+1|0}while((b[o>>0]|0)==(b[m>>0]|0))}}while(0);A=f[A>>2]|0;if(!A){H=G;w=86;break a}}}if(r){A=q;while(1){C=f[A+4>>2]|0;if((C|0)!=(F|0)){if(C>>>0<E>>>0)I=C;else I=(C>>>0)%(E>>>0)|0;if((I|0)!=(G|0)){H=G;w=86;break a}}C=b[A+8+11>>0]|0;if(!((C<<24>>24<0?f[A+12>>2]|0:C&255)|0))break a;A=f[A>>2]|0;if(!A){H=G;w=86;break a}}}A=q;while(1){r=f[A+4>>2]|0;if((r|0)!=(F|0)){if(r>>>0<E>>>0)J=r;else J=(r>>>0)%(E>>>0)|0;if((J|0)!=(G|0)){H=G;w=86;break a}}r=A+8|0;C=b[r+11>>0]|0;l=C<<24>>24<0;z=C&255;do if(((l?f[A+12>>2]|0:z)|0)==(y|0)){C=f[r>>2]|0;if(l)if(!(Fi(C,x,y)|0))break a;else break;if((b[x>>0]|0)==(C&255)<<24>>24){C=r;s=z;m=x;do{s=s+-1|0;C=C+1|0;if(!s)break a;m=m+1|0}while((b[C>>0]|0)==(b[m>>0]|0))}}while(0);A=f[A>>2]|0;if(!A){H=G;w=86;break}}}else{H=G;w=86}}else{H=0;w=86}while(0);if((w|0)==86){G=wk(32)|0;f[g>>2]=G;x=G+8|0;f[x>>2]=f[i>>2];f[x+4>>2]=f[i+4>>2];f[x+8>>2]=f[i+8>>2];f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;x=G+20|0;f[x>>2]=0;f[G+24>>2]=0;f[G+28>>2]=0;Kg(x,(f[v>>2]|0)-(f[c>>2]|0)|0);y=f[c>>2]|0;Bf(f[x>>2]|0,y|0,(f[v>>2]|0)-y|0)|0;f[G+4>>2]=F;f[G>>2]=0;y=a+12|0;K=_(((f[y>>2]|0)+1|0)>>>0);L=_(E>>>0);M=_(n[a+16>>2]);do if(D|_(M*L)<K){x=E<<1|(E>>>0<3|(E+-1&E|0)!=0)&1;c=~~_(V(_(K/M)))>>>0;Xf(a,x>>>0<c>>>0?c:x);x=f[B>>2]|0;c=x+-1|0;if(!(c&x)){N=x;O=c&F;break}if(F>>>0<x>>>0){N=x;O=F}else{N=x;O=(F>>>0)%(x>>>0)|0}}else{N=E;O=H}while(0);H=(f[a>>2]|0)+(O<<2)|0;O=f[H>>2]|0;if(!O){E=a+8|0;f[G>>2]=f[E>>2];f[E>>2]=G;f[H>>2]=E;E=f[G>>2]|0;if(!E)P=g;else{H=f[E+4>>2]|0;E=N+-1|0;if(E&N)if(H>>>0<N>>>0)Q=H;else Q=(H>>>0)%(N>>>0)|0;else Q=H&E;R=g;S=(f[a>>2]|0)+(Q<<2)|0;w=99}}else{f[G>>2]=f[O>>2];R=g;S=O;w=99}if((w|0)==99){f[S>>2]=G;P=R}f[y>>2]=(f[y>>2]|0)+1;f[P>>2]=0}P=f[i+12>>2]|0;if(P|0){f[v>>2]=P;Ko(P)}if((b[d>>0]|0)<0)Ko(f[i>>2]|0);i=f[j>>2]|0;if(!i){u=e;return}f[k>>2]=i;Ko(i);u=e;return}function Ab(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{j=a+24|0;k=b[j>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;m=a+40|0;o=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;q=vl(o|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=l+q|0;q=0;while(1){d[g+(q<<1)>>1]=b[m>>0]|0;q=q+1|0;l=b[j>>0]|0;if((q|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){r=l;break}else m=m+1|0}}else r=k;m=r<<24>>24;if(r<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<1)|0,0,(e<<24>>24)-m<<1|0)|0;i=1;return i|0}case 2:{m=a+24|0;q=b[m>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){j=f[f[a>>2]>>2]|0;l=a+40|0;o=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;s=vl(o|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=j+s|0;s=0;while(1){d[g+(s<<1)>>1]=h[l>>0]|0;s=s+1|0;j=b[m>>0]|0;if((s|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){t=j;break}else l=l+1|0}}else t=q;l=t<<24>>24;if(t<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<1)|0,0,(e<<24>>24)-l<<1|0)|0;i=1;return i|0}case 3:{l=a+24|0;s=b[l>>0]|0;if((s<<24>>24>e<<24>>24?e:s)<<24>>24>0){m=f[f[a>>2]>>2]|0;k=a+40|0;j=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;o=vl(j|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=m+o|0;o=0;while(1){d[g+(o<<1)>>1]=d[k>>1]|0;o=o+1|0;m=b[l>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){u=m;break}else k=k+2|0}}else u=s;k=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<1)|0,0,(e<<24>>24)-k<<1|0)|0;i=1;return i|0}case 4:{k=a+24|0;o=b[k>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){l=f[f[a>>2]>>2]|0;q=a+40|0;m=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;j=vl(m|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=l+j|0;j=0;while(1){d[g+(j<<1)>>1]=d[q>>1]|0;j=j+1|0;l=b[k>>0]|0;if((j|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){v=l;break}else q=q+2|0}}else v=o;q=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<1)|0,0,(e<<24>>24)-q<<1|0)|0;i=1;return i|0}case 5:{q=a+24|0;j=b[q>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){k=f[f[a>>2]>>2]|0;s=a+40|0;l=Bk(f[s>>2]|0,f[s+4>>2]|0,f[c>>2]|0,0)|0;s=a+48|0;m=vl(l|0,H|0,f[s>>2]|0,f[s+4>>2]|0)|0;s=k+m|0;m=0;while(1){d[g+(m<<1)>>1]=f[s>>2];m=m+1|0;k=b[q>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){w=k;break}else s=s+4|0}}else w=j;s=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(s<<1)|0,0,(e<<24>>24)-s<<1|0)|0;i=1;return i|0}case 6:{s=a+24|0;m=b[s>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;k=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;l=vl(k|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+l|0;l=0;while(1){d[g+(l<<1)>>1]=f[o>>2];l=l+1|0;q=b[s>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){x=q;break}else o=o+4|0}}else x=m;o=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<1)|0,0,(e<<24>>24)-o<<1|0)|0;i=1;return i|0}case 7:{o=a+24|0;l=b[o>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){s=f[f[a>>2]>>2]|0;j=a+40|0;q=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;k=vl(q|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=s+k|0;k=0;while(1){d[g+(k<<1)>>1]=f[j>>2];k=k+1|0;s=b[o>>0]|0;if((k|0)>=((s<<24>>24>e<<24>>24?e:s)<<24>>24|0)){y=s;break}else j=j+8|0}}else y=l;j=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(j<<1)|0,0,(e<<24>>24)-j<<1|0)|0;i=1;return i|0}case 8:{j=a+24|0;k=b[j>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){o=f[f[a>>2]>>2]|0;m=a+40|0;s=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;q=vl(s|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=o+q|0;q=0;while(1){d[g+(q<<1)>>1]=f[m>>2];q=q+1|0;o=b[j>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){z=o;break}else m=m+8|0}}else z=k;m=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<1)|0,0,(e<<24>>24)-m<<1|0)|0;i=1;return i|0}case 9:{m=a+24|0;q=b[m>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){j=f[f[a>>2]>>2]|0;l=a+40|0;o=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;s=vl(o|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=j+s|0;s=0;while(1){j=~~_(n[l>>2])&65535;d[g+(s<<1)>>1]=j;s=s+1|0;j=b[m>>0]|0;if((s|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){A=j;break}else l=l+4|0}}else A=q;l=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<1)|0,0,(e<<24>>24)-l<<1|0)|0;i=1;return i|0}case 10:{l=a+24|0;s=b[l>>0]|0;if((s<<24>>24>e<<24>>24?e:s)<<24>>24>0){m=f[f[a>>2]>>2]|0;k=a+40|0;j=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;o=vl(j|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=m+o|0;o=0;while(1){d[g+(o<<1)>>1]=~~+p[k>>3];o=o+1|0;m=b[l>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){B=m;break}else k=k+8|0}}else B=s;k=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<1)|0,0,(e<<24>>24)-k<<1|0)|0;i=1;return i|0}case 11:{k=a+24|0;o=b[k>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){l=f[f[a>>2]>>2]|0;q=a+40|0;m=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;j=vl(m|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=l+j|0;j=0;while(1){d[g+(j<<1)>>1]=h[q>>0]|0;j=j+1|0;l=b[k>>0]|0;if((j|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){C=l;break}else q=q+1|0}}else C=o;q=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<1)|0,0,(e<<24>>24)-q<<1|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Bb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{j=a+24|0;k=b[j>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;m=a+40|0;o=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;q=vl(o|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=l+q|0;q=0;while(1){d[g+(q<<1)>>1]=b[m>>0]|0;q=q+1|0;l=b[j>>0]|0;if((q|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){r=l;break}else m=m+1|0}}else r=k;m=r<<24>>24;if(r<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<1)|0,0,(e<<24>>24)-m<<1|0)|0;i=1;return i|0}case 2:{m=a+24|0;q=b[m>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){j=f[f[a>>2]>>2]|0;l=a+40|0;o=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;s=vl(o|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=j+s|0;s=0;while(1){d[g+(s<<1)>>1]=h[l>>0]|0;s=s+1|0;j=b[m>>0]|0;if((s|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){t=j;break}else l=l+1|0}}else t=q;l=t<<24>>24;if(t<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<1)|0,0,(e<<24>>24)-l<<1|0)|0;i=1;return i|0}case 3:{l=a+24|0;s=b[l>>0]|0;if((s<<24>>24>e<<24>>24?e:s)<<24>>24>0){m=f[f[a>>2]>>2]|0;k=a+40|0;j=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;o=vl(j|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=m+o|0;o=0;while(1){d[g+(o<<1)>>1]=d[k>>1]|0;o=o+1|0;m=b[l>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){u=m;break}else k=k+2|0}}else u=s;k=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<1)|0,0,(e<<24>>24)-k<<1|0)|0;i=1;return i|0}case 4:{k=a+24|0;o=b[k>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){l=f[f[a>>2]>>2]|0;q=a+40|0;m=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;j=vl(m|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=l+j|0;j=0;while(1){d[g+(j<<1)>>1]=d[q>>1]|0;j=j+1|0;l=b[k>>0]|0;if((j|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){v=l;break}else q=q+2|0}}else v=o;q=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<1)|0,0,(e<<24>>24)-q<<1|0)|0;i=1;return i|0}case 5:{q=a+24|0;j=b[q>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){k=f[f[a>>2]>>2]|0;s=a+40|0;l=Bk(f[s>>2]|0,f[s+4>>2]|0,f[c>>2]|0,0)|0;s=a+48|0;m=vl(l|0,H|0,f[s>>2]|0,f[s+4>>2]|0)|0;s=k+m|0;m=0;while(1){d[g+(m<<1)>>1]=f[s>>2];m=m+1|0;k=b[q>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){w=k;break}else s=s+4|0}}else w=j;s=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(s<<1)|0,0,(e<<24>>24)-s<<1|0)|0;i=1;return i|0}case 6:{s=a+24|0;m=b[s>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;k=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;l=vl(k|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+l|0;l=0;while(1){d[g+(l<<1)>>1]=f[o>>2];l=l+1|0;q=b[s>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){x=q;break}else o=o+4|0}}else x=m;o=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<1)|0,0,(e<<24>>24)-o<<1|0)|0;i=1;return i|0}case 7:{o=a+24|0;l=b[o>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){s=f[f[a>>2]>>2]|0;j=a+40|0;q=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;k=vl(q|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=s+k|0;k=0;while(1){d[g+(k<<1)>>1]=f[j>>2];k=k+1|0;s=b[o>>0]|0;if((k|0)>=((s<<24>>24>e<<24>>24?e:s)<<24>>24|0)){y=s;break}else j=j+8|0}}else y=l;j=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(j<<1)|0,0,(e<<24>>24)-j<<1|0)|0;i=1;return i|0}case 8:{j=a+24|0;k=b[j>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){o=f[f[a>>2]>>2]|0;m=a+40|0;s=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;q=vl(s|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=o+q|0;q=0;while(1){d[g+(q<<1)>>1]=f[m>>2];q=q+1|0;o=b[j>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){z=o;break}else m=m+8|0}}else z=k;m=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<1)|0,0,(e<<24>>24)-m<<1|0)|0;i=1;return i|0}case 9:{m=a+24|0;q=b[m>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){j=f[f[a>>2]>>2]|0;l=a+40|0;o=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;s=vl(o|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=j+s|0;s=0;while(1){j=~~_(n[l>>2]);d[g+(s<<1)>>1]=j;s=s+1|0;j=b[m>>0]|0;if((s|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){A=j;break}else l=l+4|0}}else A=q;l=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<1)|0,0,(e<<24>>24)-l<<1|0)|0;i=1;return i|0}case 10:{l=a+24|0;s=b[l>>0]|0;if((s<<24>>24>e<<24>>24?e:s)<<24>>24>0){m=f[f[a>>2]>>2]|0;k=a+40|0;j=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;o=vl(j|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=m+o|0;o=0;while(1){d[g+(o<<1)>>1]=~~+p[k>>3];o=o+1|0;m=b[l>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){B=m;break}else k=k+8|0}}else B=s;k=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<1)|0,0,(e<<24>>24)-k<<1|0)|0;i=1;return i|0}case 11:{k=a+24|0;o=b[k>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){l=f[f[a>>2]>>2]|0;q=a+40|0;m=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;j=vl(m|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=l+j|0;j=0;while(1){d[g+(j<<1)>>1]=h[q>>0]|0;j=j+1|0;l=b[k>>0]|0;if((j|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){C=l;break}else q=q+1|0}}else C=o;q=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<1)|0,0,(e<<24>>24)-q<<1|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Cb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(q|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(q|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=vl(o|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=Bk(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=vl(m|0,H|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=vl(l|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=vl(r|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(t|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(q|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~_(n[m>>2])>>>0;f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3]>>>0;q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=vl(o|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Db(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(q|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;r=0;while(1){f[g+(r<<2)>>2]=b[o>>0];r=r+1|0;m=b[k>>0]|0;if((r|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){s=m;break}else o=o+1|0}}else s=l;o=s<<24>>24;if(s<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 2:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(q|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){f[g+(t<<2)>>2]=h[m>>0];t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else m=m+1|0}}else u=r;m=u<<24>>24;if(u<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 3:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=d[l>>1];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){v=o;break}else l=l+2|0}}else v=t;l=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 4:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=vl(o|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=j[r>>1];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else r=r+2|0}}else w=q;r=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 5:{r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){l=f[f[a>>2]>>2]|0;t=a+40|0;m=Bk(f[t>>2]|0,f[t+4>>2]|0,f[c>>2]|0,0)|0;t=a+48|0;o=vl(m|0,H|0,f[t>>2]|0,f[t+4>>2]|0)|0;t=l+o|0;o=0;while(1){f[g+(o<<2)>>2]=f[t>>2];o=o+1|0;l=b[r>>0]|0;if((o|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){x=l;break}else t=t+4|0}}else x=k;t=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(t<<2)|0,0,(e<<24>>24)-t<<2|0)|0;i=1;return i|0}case 6:{t=a+24|0;o=b[t>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){r=f[f[a>>2]>>2]|0;q=a+40|0;l=Bk(f[q>>2]|0,f[q+4>>2]|0,f[c>>2]|0,0)|0;q=a+48|0;m=vl(l|0,H|0,f[q>>2]|0,f[q+4>>2]|0)|0;q=r+m|0;m=0;while(1){f[g+(m<<2)>>2]=f[q>>2];m=m+1|0;r=b[t>>0]|0;if((m|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){y=r;break}else q=q+4|0}}else y=o;q=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(q<<2)|0,0,(e<<24>>24)-q<<2|0)|0;i=1;return i|0}case 7:{q=a+24|0;m=b[q>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){t=f[f[a>>2]>>2]|0;k=a+40|0;r=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;l=vl(r|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=t+l|0;l=0;while(1){f[g+(l<<2)>>2]=f[k>>2];l=l+1|0;t=b[q>>0]|0;if((l|0)>=((t<<24>>24>e<<24>>24?e:t)<<24>>24|0)){z=t;break}else k=k+8|0}}else z=m;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}case 8:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){q=f[f[a>>2]>>2]|0;o=a+40|0;t=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(t|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=q+r|0;r=0;while(1){f[g+(r<<2)>>2]=f[o>>2];r=r+1|0;q=b[k>>0]|0;if((r|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else o=o+8|0}}else A=l;o=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 9:{o=a+24|0;r=b[o>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){k=f[f[a>>2]>>2]|0;m=a+40|0;q=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;t=vl(q|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=k+t|0;t=0;while(1){k=~~_(n[m>>2]);f[g+(t<<2)>>2]=k;t=t+1|0;k=b[o>>0]|0;if((t|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else m=m+4|0}}else B=r;m=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 10:{m=a+24|0;t=b[m>>0]|0;if((t<<24>>24>e<<24>>24?e:t)<<24>>24>0){o=f[f[a>>2]>>2]|0;l=a+40|0;k=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;q=vl(k|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=o+q|0;q=0;while(1){f[g+(q<<2)>>2]=~~+p[l>>3];q=q+1|0;o=b[m>>0]|0;if((q|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){C=o;break}else l=l+8|0}}else C=t;l=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(l<<2)|0,0,(e<<24>>24)-l<<2|0)|0;i=1;return i|0}case 11:{l=a+24|0;q=b[l>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){m=f[f[a>>2]>>2]|0;r=a+40|0;o=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;k=vl(o|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=m+k|0;k=0;while(1){f[g+(k<<2)>>2]=h[r>>0];k=k+1|0;m=b[l>>0]|0;if((k|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){D=m;break}else r=r+1|0}}else D=q;r=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function Eb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;if(!g){h=0;return h|0}do switch(f[a+28>>2]|0){case 1:{i=a+24|0;j=b[i>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){k=f[f[a>>2]>>2]|0;l=a+40|0;m=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;o=vl(m|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=k+o|0;o=0;while(1){b[g+o>>0]=b[l>>0]|0;o=o+1|0;k=b[i>>0]|0;if((o|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){q=k;break}else l=l+1|0}}else q=j;l=q<<24>>24;if(q<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+l|0,0,(e<<24>>24)-l|0)|0;h=1;return h|0}case 2:{l=a+24|0;o=b[l>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){i=f[f[a>>2]>>2]|0;k=a+40|0;m=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=vl(m|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=i+r|0;r=0;while(1){b[g+r>>0]=b[k>>0]|0;r=r+1|0;i=b[l>>0]|0;if((r|0)>=((i<<24>>24>e<<24>>24?e:i)<<24>>24|0)){s=i;break}else k=k+1|0}}else s=o;k=s<<24>>24;if(s<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+k|0,0,(e<<24>>24)-k|0)|0;h=1;return h|0}case 3:{k=a+24|0;r=b[k>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){l=f[f[a>>2]>>2]|0;j=a+40|0;i=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;m=vl(i|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=l+m|0;m=0;while(1){b[g+m>>0]=d[j>>1];m=m+1|0;l=b[k>>0]|0;if((m|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){t=l;break}else j=j+2|0}}else t=r;j=t<<24>>24;if(t<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+j|0,0,(e<<24>>24)-j|0)|0;h=1;return h|0}case 4:{j=a+24|0;m=b[j>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;l=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;i=vl(l|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+i|0;i=0;while(1){b[g+i>>0]=d[o>>1];i=i+1|0;k=b[j>>0]|0;if((i|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else o=o+2|0}}else u=m;o=u<<24>>24;if(u<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+o|0,0,(e<<24>>24)-o|0)|0;h=1;return h|0}case 5:{o=a+24|0;i=b[o>>0]|0;if((i<<24>>24>e<<24>>24?e:i)<<24>>24>0){j=f[f[a>>2]>>2]|0;r=a+40|0;k=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;l=vl(k|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=j+l|0;l=0;while(1){b[g+l>>0]=f[r>>2];l=l+1|0;j=b[o>>0]|0;if((l|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){v=j;break}else r=r+4|0}}else v=i;r=v<<24>>24;if(v<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+r|0,0,(e<<24>>24)-r|0)|0;h=1;return h|0}case 6:{r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){o=f[f[a>>2]>>2]|0;m=a+40|0;j=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;k=vl(j|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=o+k|0;k=0;while(1){b[g+k>>0]=f[m>>2];k=k+1|0;o=b[r>>0]|0;if((k|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){w=o;break}else m=m+4|0}}else w=l;m=w<<24>>24;if(w<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+m|0,0,(e<<24>>24)-m|0)|0;h=1;return h|0}case 7:{m=a+24|0;k=b[m>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){r=f[f[a>>2]>>2]|0;i=a+40|0;o=Bk(f[i>>2]|0,f[i+4>>2]|0,f[c>>2]|0,0)|0;i=a+48|0;j=vl(o|0,H|0,f[i>>2]|0,f[i+4>>2]|0)|0;i=r+j|0;j=0;while(1){b[g+j>>0]=f[i>>2];j=j+1|0;r=b[m>>0]|0;if((j|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){x=r;break}else i=i+8|0}}else x=k;i=x<<24>>24;if(x<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+i|0,0,(e<<24>>24)-i|0)|0;h=1;return h|0}case 8:{i=a+24|0;j=b[i>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){m=f[f[a>>2]>>2]|0;l=a+40|0;r=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;o=vl(r|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=m+o|0;o=0;while(1){b[g+o>>0]=f[l>>2];o=o+1|0;m=b[i>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){y=m;break}else l=l+8|0}}else y=j;l=y<<24>>24;if(y<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+l|0,0,(e<<24>>24)-l|0)|0;h=1;return h|0}case 9:{l=a+24|0;o=b[l>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){i=f[f[a>>2]>>2]|0;k=a+40|0;m=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=vl(m|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=i+r|0;r=0;while(1){i=~~_(n[k>>2])&255;b[g+r>>0]=i;r=r+1|0;i=b[l>>0]|0;if((r|0)>=((i<<24>>24>e<<24>>24?e:i)<<24>>24|0)){z=i;break}else k=k+4|0}}else z=o;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+k|0,0,(e<<24>>24)-k|0)|0;h=1;return h|0}case 10:{k=a+24|0;r=b[k>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){l=f[f[a>>2]>>2]|0;j=a+40|0;i=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;m=vl(i|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=l+m|0;m=0;while(1){b[g+m>>0]=~~+p[j>>3];m=m+1|0;l=b[k>>0]|0;if((m|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){A=l;break}else j=j+8|0}}else A=r;j=A<<24>>24;if(A<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+j|0,0,(e<<24>>24)-j|0)|0;h=1;return h|0}case 11:{j=a+24|0;m=b[j>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;l=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;i=vl(l|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+i|0;i=0;while(1){b[g+i>>0]=b[o>>0]|0;i=i+1|0;k=b[j>>0]|0;if((i|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else o=o+1|0}}else B=m;o=B<<24>>24;if(B<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+o|0,0,(e<<24>>24)-o|0)|0;h=1;return h|0}default:{h=0;return h|0}}while(0);return 0}function Fb(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,o=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0;if(!g){h=0;return h|0}do switch(f[a+28>>2]|0){case 1:{i=a+24|0;j=b[i>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){k=f[f[a>>2]>>2]|0;l=a+40|0;m=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;o=vl(m|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=k+o|0;o=0;while(1){b[g+o>>0]=b[l>>0]|0;o=o+1|0;k=b[i>>0]|0;if((o|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){q=k;break}else l=l+1|0}}else q=j;l=q<<24>>24;if(q<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+l|0,0,(e<<24>>24)-l|0)|0;h=1;return h|0}case 2:{l=a+24|0;o=b[l>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){i=f[f[a>>2]>>2]|0;k=a+40|0;m=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=vl(m|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=i+r|0;r=0;while(1){b[g+r>>0]=b[k>>0]|0;r=r+1|0;i=b[l>>0]|0;if((r|0)>=((i<<24>>24>e<<24>>24?e:i)<<24>>24|0)){s=i;break}else k=k+1|0}}else s=o;k=s<<24>>24;if(s<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+k|0,0,(e<<24>>24)-k|0)|0;h=1;return h|0}case 3:{k=a+24|0;r=b[k>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){l=f[f[a>>2]>>2]|0;j=a+40|0;i=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;m=vl(i|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=l+m|0;m=0;while(1){b[g+m>>0]=d[j>>1];m=m+1|0;l=b[k>>0]|0;if((m|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){t=l;break}else j=j+2|0}}else t=r;j=t<<24>>24;if(t<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+j|0,0,(e<<24>>24)-j|0)|0;h=1;return h|0}case 4:{j=a+24|0;m=b[j>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;l=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;i=vl(l|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+i|0;i=0;while(1){b[g+i>>0]=d[o>>1];i=i+1|0;k=b[j>>0]|0;if((i|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){u=k;break}else o=o+2|0}}else u=m;o=u<<24>>24;if(u<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+o|0,0,(e<<24>>24)-o|0)|0;h=1;return h|0}case 5:{o=a+24|0;i=b[o>>0]|0;if((i<<24>>24>e<<24>>24?e:i)<<24>>24>0){j=f[f[a>>2]>>2]|0;r=a+40|0;k=Bk(f[r>>2]|0,f[r+4>>2]|0,f[c>>2]|0,0)|0;r=a+48|0;l=vl(k|0,H|0,f[r>>2]|0,f[r+4>>2]|0)|0;r=j+l|0;l=0;while(1){b[g+l>>0]=f[r>>2];l=l+1|0;j=b[o>>0]|0;if((l|0)>=((j<<24>>24>e<<24>>24?e:j)<<24>>24|0)){v=j;break}else r=r+4|0}}else v=i;r=v<<24>>24;if(v<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+r|0,0,(e<<24>>24)-r|0)|0;h=1;return h|0}case 6:{r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){o=f[f[a>>2]>>2]|0;m=a+40|0;j=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;k=vl(j|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=o+k|0;k=0;while(1){b[g+k>>0]=f[m>>2];k=k+1|0;o=b[r>>0]|0;if((k|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){w=o;break}else m=m+4|0}}else w=l;m=w<<24>>24;if(w<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+m|0,0,(e<<24>>24)-m|0)|0;h=1;return h|0}case 7:{m=a+24|0;k=b[m>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){r=f[f[a>>2]>>2]|0;i=a+40|0;o=Bk(f[i>>2]|0,f[i+4>>2]|0,f[c>>2]|0,0)|0;i=a+48|0;j=vl(o|0,H|0,f[i>>2]|0,f[i+4>>2]|0)|0;i=r+j|0;j=0;while(1){b[g+j>>0]=f[i>>2];j=j+1|0;r=b[m>>0]|0;if((j|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){x=r;break}else i=i+8|0}}else x=k;i=x<<24>>24;if(x<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+i|0,0,(e<<24>>24)-i|0)|0;h=1;return h|0}case 8:{i=a+24|0;j=b[i>>0]|0;if((j<<24>>24>e<<24>>24?e:j)<<24>>24>0){m=f[f[a>>2]>>2]|0;l=a+40|0;r=Bk(f[l>>2]|0,f[l+4>>2]|0,f[c>>2]|0,0)|0;l=a+48|0;o=vl(r|0,H|0,f[l>>2]|0,f[l+4>>2]|0)|0;l=m+o|0;o=0;while(1){b[g+o>>0]=f[l>>2];o=o+1|0;m=b[i>>0]|0;if((o|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){y=m;break}else l=l+8|0}}else y=j;l=y<<24>>24;if(y<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+l|0,0,(e<<24>>24)-l|0)|0;h=1;return h|0}case 9:{l=a+24|0;o=b[l>>0]|0;if((o<<24>>24>e<<24>>24?e:o)<<24>>24>0){i=f[f[a>>2]>>2]|0;k=a+40|0;m=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=vl(m|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=i+r|0;r=0;while(1){i=~~_(n[k>>2]);b[g+r>>0]=i;r=r+1|0;i=b[l>>0]|0;if((r|0)>=((i<<24>>24>e<<24>>24?e:i)<<24>>24|0)){z=i;break}else k=k+4|0}}else z=o;k=z<<24>>24;if(z<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+k|0,0,(e<<24>>24)-k|0)|0;h=1;return h|0}case 10:{k=a+24|0;r=b[k>>0]|0;if((r<<24>>24>e<<24>>24?e:r)<<24>>24>0){l=f[f[a>>2]>>2]|0;j=a+40|0;i=Bk(f[j>>2]|0,f[j+4>>2]|0,f[c>>2]|0,0)|0;j=a+48|0;m=vl(i|0,H|0,f[j>>2]|0,f[j+4>>2]|0)|0;j=l+m|0;m=0;while(1){b[g+m>>0]=~~+p[j>>3];m=m+1|0;l=b[k>>0]|0;if((m|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){A=l;break}else j=j+8|0}}else A=r;j=A<<24>>24;if(A<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+j|0,0,(e<<24>>24)-j|0)|0;h=1;return h|0}case 11:{j=a+24|0;m=b[j>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;l=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;i=vl(l|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+i|0;i=0;while(1){b[g+i>>0]=b[o>>0]|0;i=i+1|0;k=b[j>>0]|0;if((i|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){B=k;break}else o=o+1|0}}else B=m;o=B<<24>>24;if(B<<24>>24>=e<<24>>24){h=1;return h|0}oh(g+o|0,0,(e<<24>>24)-o|0)|0;h=1;return h|0}default:{h=0;return h|0}}while(0);return 0}function Gb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0;c=u;u=u+48|0;d=c+24|0;e=c+12|0;g=c;h=a+4|0;i=f[(f[h>>2]|0)+44>>2]|0;j=a+8|0;k=f[j>>2]|0;l=((f[k+4>>2]|0)-(f[k>>2]|0)>>2>>>0)/3|0;k=i+96|0;m=i+100|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;i=f[k>>2]|0;n=((f[m>>2]|0)-i|0)/12|0;if(l>>>0<=n>>>0){if(l>>>0<n>>>0)f[m>>2]=i+(l*12|0)}else lf(k,l-n|0,d);n=a+216|0;l=a+220|0;if((f[n>>2]|0)==(f[l>>2]|0)){k=f[h>>2]|0;i=f[k+44>>2]|0;m=f[i+100>>2]|0;o=f[i+96>>2]|0;if((m|0)!=(o|0)){i=d+4|0;p=d+8|0;q=o;r=(m-o|0)/12|0;o=0;do{f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;m=o*3|0;if((m|0)!=-1){s=f[(f[f[j>>2]>>2]|0)+(m<<2)>>2]|0;f[d>>2]=s;t=m+1|0;if((t|0)==-1){f[i>>2]=-1;v=0;w=s;x=77}else{y=t;z=s;x=76}}else{f[d>>2]=-1;y=0;z=-1;x=76}if((x|0)==76){x=0;f[i>>2]=f[(f[f[j>>2]>>2]|0)+(y<<2)>>2];s=m+2|0;if((s|0)==-1){A=-1;B=z}else{v=s;w=z;x=77}}if((x|0)==77){x=0;A=f[(f[f[j>>2]>>2]|0)+(v<<2)>>2]|0;B=w}f[p>>2]=A;f[q+(o*12|0)>>2]=B;f[q+(o*12|0)+4>>2]=f[i>>2];f[q+(o*12|0)+8>>2]=f[p>>2];o=o+1|0}while(o>>>0<r>>>0)}f[(f[k+4>>2]|0)+80>>2]=b;C=1;u=c;return C|0}f[d>>2]=0;b=d+4|0;f[b>>2]=0;k=d+8|0;f[k>>2]=0;r=f[j>>2]|0;o=(f[r+4>>2]|0)-(f[r>>2]|0)|0;p=o>>2;f[e>>2]=0;q=e+4|0;f[q>>2]=0;i=e+8|0;f[i>>2]=0;do if(o|0)if(p>>>0>1073741823)$n(e);else{B=wk(o)|0;f[e>>2]=B;A=B+(p<<2)|0;f[i>>2]=A;oh(B|0,0,o|0)|0;f[q>>2]=A;break}while(0);a:do if(((f[r+28>>2]|0)-(f[r+24>>2]|0)|0)>0){o=a+120|0;i=0;p=r;while(1){A=f[(f[p+24>>2]|0)+(i<<2)>>2]|0;b:do if((A|0)!=-1){c:do if((f[(f[o>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0)==0?(B=f[l>>2]|0,w=f[n>>2]|0,v=w,(B|0)!=(w|0)):0){z=(((A>>>0)%3|0|0)==0?2:-1)+A|0;y=p+12|0;s=(B-w|0)/144|0;if((z|0)==-1){w=0;while(1){B=f[(f[f[v+(w*144|0)+68>>2]>>2]|0)+(A<<2)>>2]|0;if(1<<(B&31)&f[(f[v+(w*144|0)+16>>2]|0)+(B>>>5<<2)>>2]|0){D=0;break a}w=w+1|0;if(w>>>0>=s>>>0){E=A;break c}}}w=0;while(1){B=f[(f[f[v+(w*144|0)+68>>2]>>2]|0)+(A<<2)>>2]|0;if(1<<(B&31)&f[(f[v+(w*144|0)+16>>2]|0)+(B>>>5<<2)>>2]|0){B=f[v+(w*144|0)+32>>2]|0;m=f[B+(A<<2)>>2]|0;t=f[y>>2]|0;F=f[t+(z<<2)>>2]|0;do if((F|0)!=-1)if(!((F>>>0)%3|0)){G=F+2|0;break}else{G=F+-1|0;break}else G=-1;while(0);if((G|0)!=(A|0)){F=G;while(1){if((F|0)==-1){D=0;break a}if((f[B+(F<<2)>>2]|0)!=(m|0)){E=F;break c}H=(((F>>>0)%3|0|0)==0?2:-1)+F|0;do if((H|0)!=-1){I=f[t+(H<<2)>>2]|0;if((I|0)==-1){J=-1;break}if(!((I>>>0)%3|0)){J=I+2|0;break}else{J=I+-1|0;break}}else J=-1;while(0);if((J|0)==(A|0))break;else F=J}}}w=w+1|0;if(w>>>0>=s>>>0){E=A;break}}}else E=A;while(0);s=f[b>>2]|0;f[(f[e>>2]|0)+(E<<2)>>2]=s-(f[d>>2]|0)>>2;f[g>>2]=E;w=s;if((f[k>>2]|0)>>>0>w>>>0){f[w>>2]=E;f[b>>2]=w+4;K=p}else{Ng(d,g);K=f[j>>2]|0}if((((E|0)!=-1?(w=(((E>>>0)%3|0|0)==0?2:-1)+E|0,(w|0)!=-1):0)?(s=f[(f[K+12>>2]|0)+(w<<2)>>2]|0,(s|0)!=-1):0)?(w=s+(((s>>>0)%3|0|0)==0?2:-1)|0,(w|0)!=-1&(w|0)!=(E|0)):0){s=E;z=w;w=K;while(1){y=f[l>>2]|0;v=f[n>>2]|0;F=v;d:do if((y|0)==(v|0))x=59;else{t=(y-v|0)/144|0;m=0;while(1){B=f[F+(m*144|0)+32>>2]|0;m=m+1|0;if((f[B+(z<<2)>>2]|0)!=(f[B+(s<<2)>>2]|0))break;if(m>>>0>=t>>>0){x=59;break d}}t=f[b>>2]|0;f[(f[e>>2]|0)+(z<<2)>>2]=t-(f[d>>2]|0)>>2;f[g>>2]=z;m=t;if((f[k>>2]|0)>>>0>m>>>0){f[m>>2]=z;f[b>>2]=m+4;L=w}else{Ng(d,g);L=f[j>>2]|0}M=L}while(0);if((x|0)==59){x=0;F=f[e>>2]|0;f[F+(z<<2)>>2]=f[F+(s<<2)>>2];M=w}if((z|0)==-1){N=M;break b}F=(((z>>>0)%3|0|0)==0?2:-1)+z|0;if((F|0)==-1){N=M;break b}v=f[(f[M+12>>2]|0)+(F<<2)>>2]|0;if((v|0)==-1){N=M;break b}F=v+(((v>>>0)%3|0|0)==0?2:-1)|0;if((F|0)!=-1&(F|0)!=(E|0)){v=z;z=F;w=M;s=v}else{N=M;break}}}else N=K}else N=p;while(0);i=i+1|0;if((i|0)>=((f[N+28>>2]|0)-(f[N+24>>2]|0)>>2|0)){x=65;break}else p=N}}else x=65;while(0);if((x|0)==65){x=f[h>>2]|0;h=f[x+44>>2]|0;N=f[h+100>>2]|0;K=f[h+96>>2]|0;if((N|0)!=(K|0)?(h=f[e>>2]|0,M=g+4|0,E=g+8|0,L=(N-K|0)/12|0,f[g>>2]=f[h>>2],f[g+4>>2]=f[h+4>>2],f[g+8>>2]=f[h+8>>2],N=K,f[N>>2]=f[g>>2],f[N+4>>2]=f[M>>2],f[N+8>>2]=f[E>>2],L>>>0>1):0){K=1;do{j=h+(K*3<<2)|0;f[g>>2]=f[j>>2];f[g+4>>2]=f[j+4>>2];f[g+8>>2]=f[j+8>>2];f[N+(K*12|0)>>2]=f[g>>2];f[N+(K*12|0)+4>>2]=f[M>>2];f[N+(K*12|0)+8>>2]=f[E>>2];K=K+1|0}while(K>>>0<L>>>0)}f[(f[x+4>>2]|0)+80>>2]=(f[b>>2]|0)-(f[d>>2]|0)>>2;D=1}x=f[e>>2]|0;if(x|0){f[q>>2]=x;Ko(x)}x=f[d>>2]|0;if(x|0){f[b>>2]=x;Ko(x)}C=D;u=c;return C|0}function Hb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){h=1;u=c;return h|0}i=(g>>>0)/3|0;j=a+12|0;if(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0){h=1;u=c;return h|0}i=a+56|0;k=f[i>>2]|0;l=a+60|0;f[l>>2]=k;m=k;k=a+64|0;if((f[k>>2]|0)==(m|0))Ng(i,b);else{f[m>>2]=g;f[l>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;n=g+1|0;do if((g|0)!=-1){o=f[m+28>>2]|0;p=f[o+((((n>>>0)%3|0|0)==0?g+-2|0:n)<<2)>>2]|0;if(!((g>>>0)%3|0)){q=p;r=g+2|0;s=o;break}else{q=p;r=g+-1|0;s=o;break}}else{o=f[m+28>>2]|0;q=f[o+-4>>2]|0;r=-1;s=o}while(0);m=f[s+(r<<2)>>2]|0;if((q|0)==-1|(m|0)==-1){h=0;u=c;return h|0}r=a+24|0;s=f[r>>2]|0;g=s+(q>>>5<<2)|0;n=1<<(q&31);o=f[g>>2]|0;if(!(o&n)){f[g>>2]=o|n;n=f[b>>2]|0;o=n+1|0;if((n|0)==-1)t=-1;else t=((o>>>0)%3|0|0)==0?n+-2|0:o;f[e>>2]=t;o=(t>>>0)/3|0;n=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(o*12|0)+(t-(o*3|0)<<2)>>2]|0;o=f[a+48>>2]|0;f[d>>2]=n;t=f[o+4>>2]|0;o=t+4|0;g=f[o>>2]|0;if((g|0)==(f[t+8>>2]|0))Ng(t,d);else{f[g>>2]=n;f[o>>2]=g+4}g=a+40|0;o=f[g>>2]|0;n=o+4|0;t=f[n>>2]|0;if((t|0)==(f[o+8>>2]|0)){Ng(o,e);v=f[g>>2]|0}else{f[t>>2]=f[e>>2];f[n>>2]=t+4;v=o}o=v+24|0;f[(f[v+12>>2]|0)+(q<<2)>>2]=f[o>>2];f[o>>2]=(f[o>>2]|0)+1;w=f[r>>2]|0}else w=s;s=w+(m>>>5<<2)|0;w=1<<(m&31);o=f[s>>2]|0;if(!(o&w)){f[s>>2]=o|w;w=f[b>>2]|0;do if((w|0)!=-1)if(!((w>>>0)%3|0)){x=w+2|0;break}else{x=w+-1|0;break}else x=-1;while(0);f[e>>2]=x;w=(x>>>0)/3|0;o=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(w*12|0)+(x-(w*3|0)<<2)>>2]|0;w=f[a+48>>2]|0;f[d>>2]=o;x=f[w+4>>2]|0;w=x+4|0;s=f[w>>2]|0;if((s|0)==(f[x+8>>2]|0))Ng(x,d);else{f[s>>2]=o;f[w>>2]=s+4}s=a+40|0;w=f[s>>2]|0;o=w+4|0;x=f[o>>2]|0;if((x|0)==(f[w+8>>2]|0)){Ng(w,e);y=f[s>>2]|0}else{f[x>>2]=f[e>>2];f[o>>2]=x+4;y=w}w=y+24|0;f[(f[y+12>>2]|0)+(m<<2)>>2]=f[w>>2];f[w>>2]=(f[w>>2]|0)+1}w=f[l>>2]|0;if((f[i>>2]|0)==(w|0)){h=1;u=c;return h|0}m=a+44|0;y=a+48|0;x=a+40|0;o=w;a:while(1){w=o+-4|0;s=f[w>>2]|0;f[b>>2]=s;q=(s>>>0)/3|0;if((s|0)!=-1?(s=(f[j>>2]|0)+(q>>>5<<2)|0,v=1<<(q&31),q=f[s>>2]|0,(q&v|0)==0):0){f[s>>2]=q|v;v=f[a>>2]|0;q=f[b>>2]|0;s=f[(f[v+28>>2]|0)+(q<<2)>>2]|0;if((s|0)==-1){h=0;z=78;break}t=s;s=v;v=q;b:while(1){q=(f[r>>2]|0)+(t>>>5<<2)|0;n=1<<(t&31);g=f[q>>2]|0;if(!(g&n)){p=f[(f[s+40>>2]|0)+(t<<2)>>2]|0;if((p|0)==-1)A=1;else{B=f[(f[f[s+64>>2]>>2]|0)+(p<<2)>>2]|0;A=(1<<(B&31)&f[(f[s+12>>2]|0)+(B>>>5<<2)>>2]|0)!=0}f[q>>2]=g|n;n=f[b>>2]|0;f[e>>2]=n;g=(n>>>0)/3|0;q=f[(f[(f[m>>2]|0)+96>>2]|0)+(g*12|0)+(n-(g*3|0)<<2)>>2]|0;g=f[y>>2]|0;f[d>>2]=q;n=f[g+4>>2]|0;g=n+4|0;B=f[g>>2]|0;if((B|0)==(f[n+8>>2]|0))Ng(n,d);else{f[B>>2]=q;f[g>>2]=B+4}B=f[x>>2]|0;g=B+4|0;q=f[g>>2]|0;if((q|0)==(f[B+8>>2]|0)){Ng(B,e);C=f[x>>2]|0}else{f[q>>2]=f[e>>2];f[g>>2]=q+4;C=B}B=C+24|0;f[(f[C+12>>2]|0)+(t<<2)>>2]=f[B>>2];f[B>>2]=(f[B>>2]|0)+1;B=f[a>>2]|0;q=f[b>>2]|0;if(A){D=q;E=B;z=55}else{g=q+1|0;do if((q|0)==-1)F=-1;else{n=((g>>>0)%3|0|0)==0?q+-2|0:g;if((n|0)==-1){F=-1;break}if(f[(f[B>>2]|0)+(n>>>5<<2)>>2]&1<<(n&31)|0){F=-1;break}F=f[(f[(f[B+64>>2]|0)+12>>2]|0)+(n<<2)>>2]|0}while(0);f[b>>2]=F;G=(F>>>0)/3|0}}else{D=v;E=s;z=55}if((z|0)==55){z=0;B=D+1|0;if((D|0)==-1){z=59;break}g=((B>>>0)%3|0|0)==0?D+-2|0:B;if((g|0)!=-1?(f[(f[E>>2]|0)+(g>>>5<<2)>>2]&1<<(g&31)|0)==0:0)H=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(g<<2)>>2]|0;else H=-1;f[d>>2]=H;g=(((D>>>0)%3|0|0)==0?2:-1)+D|0;do if((g|0)==-1)I=-1;else{if(f[(f[E>>2]|0)+(g>>>5<<2)>>2]&1<<(g&31)|0){I=-1;break}I=f[(f[(f[E+64>>2]|0)+12>>2]|0)+(g<<2)>>2]|0}while(0);g=(H|0)==-1;B=(H>>>0)/3|0;q=g?-1:B;n=(I|0)==-1;p=(I>>>0)/3|0;J=n?-1:p;do if(!g){K=f[j>>2]|0;if(f[K+(q>>>5<<2)>>2]&1<<(q&31)|0){z=65;break}if(n){L=B;M=H;break}if(!(f[K+(J>>>5<<2)>>2]&1<<(J&31))){z=70;break b}else{L=B;M=H}}else z=65;while(0);if((z|0)==65){z=0;if(n){z=67;break}if(!(f[(f[j>>2]|0)+(J>>>5<<2)>>2]&1<<(J&31))){L=p;M=I}else{z=67;break}}f[b>>2]=M;G=L}B=(f[j>>2]|0)+(G>>>5<<2)|0;f[B>>2]=f[B>>2]|1<<(G&31);s=f[a>>2]|0;v=f[b>>2]|0;t=f[(f[s+28>>2]|0)+(v<<2)>>2]|0;if((t|0)==-1){h=0;z=78;break a}}do if((z|0)==59){z=0;f[d>>2]=-1;z=67}else if((z|0)==70){z=0;t=f[l>>2]|0;f[t+-4>>2]=I;if((t|0)==(f[k>>2]|0)){Ng(i,d);break}else{f[t>>2]=f[d>>2];f[l>>2]=t+4;break}}while(0);if((z|0)==67){z=0;f[l>>2]=(f[l>>2]|0)+-4}}else f[l>>2]=w;o=f[l>>2]|0;if((f[i>>2]|0)==(o|0)){h=1;z=78;break}}if((z|0)==78){u=c;return h|0}return 0}function Ib(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;c=u;u=u+16|0;d=c+8|0;e=c;g=f[b>>2]|0;if((g|0)==-1){h=1;u=c;return h|0}i=(g>>>0)/3|0;j=a+12|0;if(f[(f[j>>2]|0)+(i>>>5<<2)>>2]&1<<(i&31)|0){h=1;u=c;return h|0}i=a+56|0;k=f[i>>2]|0;l=a+60|0;f[l>>2]=k;m=k;k=a+64|0;if((f[k>>2]|0)==(m|0))Ng(i,b);else{f[m>>2]=g;f[l>>2]=m+4}m=f[a>>2]|0;g=f[b>>2]|0;n=g+1|0;if((g|0)==-1){h=0;u=c;return h|0}o=((n>>>0)%3|0|0)==0?g+-2|0:n;if((o|0)==-1)p=-1;else p=f[(f[m>>2]|0)+(o<<2)>>2]|0;o=(((g>>>0)%3|0|0)==0?2:-1)+g|0;if((o|0)==-1){h=0;u=c;return h|0}g=f[(f[m>>2]|0)+(o<<2)>>2]|0;if((p|0)==-1|(g|0)==-1){h=0;u=c;return h|0}o=a+24|0;m=f[o>>2]|0;n=m+(p>>>5<<2)|0;q=1<<(p&31);r=f[n>>2]|0;if(!(r&q)){f[n>>2]=r|q;q=f[b>>2]|0;r=q+1|0;if((q|0)==-1)s=-1;else s=((r>>>0)%3|0|0)==0?q+-2|0:r;f[e>>2]=s;r=(s>>>0)/3|0;q=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(r*12|0)+(s-(r*3|0)<<2)>>2]|0;r=f[a+48>>2]|0;f[d>>2]=q;s=f[r+4>>2]|0;r=s+4|0;n=f[r>>2]|0;if((n|0)==(f[s+8>>2]|0))Ng(s,d);else{f[n>>2]=q;f[r>>2]=n+4}n=a+40|0;r=f[n>>2]|0;q=r+4|0;s=f[q>>2]|0;if((s|0)==(f[r+8>>2]|0)){Ng(r,e);t=f[n>>2]|0}else{f[s>>2]=f[e>>2];f[q>>2]=s+4;t=r}r=t+24|0;f[(f[t+12>>2]|0)+(p<<2)>>2]=f[r>>2];f[r>>2]=(f[r>>2]|0)+1;v=f[o>>2]|0}else v=m;m=v+(g>>>5<<2)|0;v=1<<(g&31);r=f[m>>2]|0;if(!(r&v)){f[m>>2]=r|v;v=f[b>>2]|0;do if((v|0)!=-1)if(!((v>>>0)%3|0)){w=v+2|0;break}else{w=v+-1|0;break}else w=-1;while(0);f[e>>2]=w;v=(w>>>0)/3|0;r=f[(f[(f[a+44>>2]|0)+96>>2]|0)+(v*12|0)+(w-(v*3|0)<<2)>>2]|0;v=f[a+48>>2]|0;f[d>>2]=r;w=f[v+4>>2]|0;v=w+4|0;m=f[v>>2]|0;if((m|0)==(f[w+8>>2]|0))Ng(w,d);else{f[m>>2]=r;f[v>>2]=m+4}m=a+40|0;v=f[m>>2]|0;r=v+4|0;w=f[r>>2]|0;if((w|0)==(f[v+8>>2]|0)){Ng(v,e);x=f[m>>2]|0}else{f[w>>2]=f[e>>2];f[r>>2]=w+4;x=v}v=x+24|0;f[(f[x+12>>2]|0)+(g<<2)>>2]=f[v>>2];f[v>>2]=(f[v>>2]|0)+1}v=f[l>>2]|0;if((f[i>>2]|0)==(v|0)){h=1;u=c;return h|0}g=a+44|0;x=a+48|0;w=a+40|0;r=v;a:while(1){v=r+-4|0;m=f[v>>2]|0;f[b>>2]=m;p=(m>>>0)/3|0;if((m|0)!=-1?(m=(f[j>>2]|0)+(p>>>5<<2)|0,t=1<<(p&31),p=f[m>>2]|0,(p&t|0)==0):0){f[m>>2]=p|t;t=f[b>>2]|0;if((t|0)==-1){h=0;y=79;break}p=t;b:while(1){t=f[a>>2]|0;m=f[(f[t>>2]|0)+(p<<2)>>2]|0;if((m|0)==-1){h=0;y=79;break a}s=(f[o>>2]|0)+(m>>>5<<2)|0;q=1<<(m&31);n=f[s>>2]|0;do if(!(n&q)){z=f[(f[t+24>>2]|0)+(m<<2)>>2]|0;A=z+1|0;do if((z|0)!=-1){B=((A>>>0)%3|0|0)==0?z+-2|0:A;if((B|0)==-1){y=46;break}C=f[(f[t+12>>2]|0)+(B<<2)>>2]|0;B=C+1|0;if((C|0)==-1){y=46;break}if(((((B>>>0)%3|0|0)==0?C+-2|0:B)|0)!=-1)D=0;else y=46}else y=46;while(0);if((y|0)==46){y=0;D=1}f[s>>2]=n|q;A=f[b>>2]|0;f[e>>2]=A;z=(A>>>0)/3|0;B=f[(f[(f[g>>2]|0)+96>>2]|0)+(z*12|0)+(A-(z*3|0)<<2)>>2]|0;z=f[x>>2]|0;f[d>>2]=B;A=f[z+4>>2]|0;z=A+4|0;C=f[z>>2]|0;if((C|0)==(f[A+8>>2]|0))Ng(A,d);else{f[C>>2]=B;f[z>>2]=C+4}C=f[w>>2]|0;z=C+4|0;B=f[z>>2]|0;if((B|0)==(f[C+8>>2]|0)){Ng(C,e);E=f[w>>2]|0}else{f[B>>2]=f[e>>2];f[z>>2]=B+4;E=C}C=E+24|0;f[(f[E+12>>2]|0)+(m<<2)>>2]=f[C>>2];f[C>>2]=(f[C>>2]|0)+1;C=f[a>>2]|0;B=f[b>>2]|0;if(D)if((B|0)==-1){y=61;break b}else{F=B;G=C;y=59;break}do if((B|0)==-1)H=-1;else{z=B+1|0;A=((z>>>0)%3|0|0)==0?B+-2|0:z;if((A|0)==-1){H=-1;break}H=f[(f[C+12>>2]|0)+(A<<2)>>2]|0}while(0);f[b>>2]=H;I=(H>>>0)/3|0}else{F=p;G=t;y=59}while(0);if((y|0)==59){y=0;t=F+1|0;m=((t>>>0)%3|0|0)==0?F+-2|0:t;if((m|0)==-1)J=-1;else J=f[(f[G+12>>2]|0)+(m<<2)>>2]|0;f[d>>2]=J;m=(((F>>>0)%3|0|0)==0?2:-1)+F|0;if((m|0)==-1)K=-1;else K=f[(f[G+12>>2]|0)+(m<<2)>>2]|0;m=(J|0)==-1;t=(J>>>0)/3|0;q=m?-1:t;n=(K|0)==-1;s=(K>>>0)/3|0;C=n?-1:s;do if(!m){B=f[j>>2]|0;if(f[B+(q>>>5<<2)>>2]&1<<(q&31)|0){y=66;break}if(n){L=t;M=J;break}if(!(f[B+(C>>>5<<2)>>2]&1<<(C&31))){y=71;break b}else{L=t;M=J}}else y=66;while(0);if((y|0)==66){y=0;if(n){y=68;break}if(!(f[(f[j>>2]|0)+(C>>>5<<2)>>2]&1<<(C&31))){L=s;M=K}else{y=68;break}}f[b>>2]=M;I=L}t=(f[j>>2]|0)+(I>>>5<<2)|0;f[t>>2]=f[t>>2]|1<<(I&31);p=f[b>>2]|0;if((p|0)==-1){h=0;y=79;break a}}do if((y|0)==61){y=0;f[d>>2]=-1;y=68}else if((y|0)==71){y=0;p=f[l>>2]|0;f[p+-4>>2]=K;if((p|0)==(f[k>>2]|0)){Ng(i,d);break}else{f[p>>2]=f[d>>2];f[l>>2]=p+4;break}}while(0);if((y|0)==68){y=0;f[l>>2]=(f[l>>2]|0)+-4}}else f[l>>2]=v;r=f[l>>2]|0;if((f[i>>2]|0)==(r|0)){h=1;y=79;break}}if((y|0)==79){u=c;return h|0}return 0}function Jb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=f[c>>2]|0;c=m+1|0;if((m|0)!=-1){n=((c>>>0)%3|0|0)==0?m+-2|0:c;c=(((m>>>0)%3|0|0)==0?2:-1)+m|0;m=f[a+32>>2]|0;if((n|0)==-1)o=-1;else o=f[(f[m>>2]|0)+(n<<2)>>2]|0;if((c|0)==-1){p=o;q=-1}else{p=o;q=f[(f[m>>2]|0)+(c<<2)>>2]|0}}else{p=-1;q=-1}c=f[a+36>>2]|0;m=f[c>>2]|0;o=(f[c+4>>2]|0)-m>>2;if(o>>>0<=p>>>0)$n(c);n=m;m=f[n+(p<<2)>>2]|0;if(o>>>0<=q>>>0)$n(c);c=f[n+(q<<2)>>2]|0;q=(m|0)<(e|0);do if(q&(c|0)<(e|0)){n=m<<1;o=f[d+(n<<2)>>2]|0;p=((o|0)<0)<<31>>31;r=f[d+((n|1)<<2)>>2]|0;n=((r|0)<0)<<31>>31;s=c<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(o|0)|(v|0)!=(r|0))){f[a+8>>2]=o;f[a+12>>2]=r;w=1;u=g;return w|0}s=a+4|0;x=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;y=f[a>>2]|0;if(!(b[y+84>>0]|0))z=f[(f[y+68>>2]|0)+(x<<2)>>2]|0;else z=x;f[i>>2]=z;x=b[y+24>>0]|0;f[h>>2]=f[i>>2];wb(y,h,x,j)|0;x=f[(f[s>>2]|0)+(m<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;y=f[a>>2]|0;if(!(b[y+84>>0]|0))A=f[(f[y+68>>2]|0)+(x<<2)>>2]|0;else A=x;f[i>>2]=A;x=b[y+24>>0]|0;f[h>>2]=f[i>>2];wb(y,h,x,k)|0;x=f[(f[s>>2]|0)+(c<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))B=f[(f[s+68>>2]|0)+(x<<2)>>2]|0;else B=x;f[i>>2]=B;x=b[s+24>>0]|0;f[h>>2]=f[i>>2];wb(s,h,x,l)|0;x=l;s=k;y=f[s>>2]|0;C=f[s+4>>2]|0;s=wl(f[x>>2]|0,f[x+4>>2]|0,y|0,C|0)|0;x=H;D=l+8|0;E=k+8|0;F=f[E>>2]|0;G=f[E+4>>2]|0;E=wl(f[D>>2]|0,f[D+4>>2]|0,F|0,G|0)|0;D=H;I=l+16|0;J=k+16|0;K=f[J>>2]|0;L=f[J+4>>2]|0;J=wl(f[I>>2]|0,f[I+4>>2]|0,K|0,L|0)|0;I=H;M=Bk(s|0,x|0,s|0,x|0)|0;N=H;O=Bk(E|0,D|0,E|0,D|0)|0;P=vl(O|0,H|0,M|0,N|0)|0;N=H;M=Bk(J|0,I|0,J|0,I|0)|0;O=vl(P|0,N|0,M|0,H|0)|0;M=H;if((O|0)==0&(M|0)==0)break;N=j;P=wl(f[N>>2]|0,f[N+4>>2]|0,y|0,C|0)|0;C=H;y=j+8|0;N=wl(f[y>>2]|0,f[y+4>>2]|0,F|0,G|0)|0;G=H;F=j+16|0;y=wl(f[F>>2]|0,f[F+4>>2]|0,K|0,L|0)|0;L=H;K=Bk(P|0,C|0,s|0,x|0)|0;F=H;Q=Bk(N|0,G|0,E|0,D|0)|0;R=vl(Q|0,H|0,K|0,F|0)|0;F=H;K=Bk(y|0,L|0,J|0,I|0)|0;Q=vl(R|0,F|0,K|0,H|0)|0;K=H;F=wl(t|0,((t|0)<0)<<31>>31|0,o|0,p|0)|0;t=H;R=wl(v|0,((v|0)<0)<<31>>31|0,r|0,n|0)|0;v=H;S=Bk(O|0,M|0,o|0,p|0)|0;p=H;o=Bk(O|0,M|0,r|0,n|0)|0;n=H;r=Bk(Q|0,K|0,F|0,t|0)|0;T=H;U=Bk(Q|0,K|0,R|0,v|0)|0;V=H;W=vl(r|0,T|0,S|0,p|0)|0;p=H;S=vl(U|0,V|0,o|0,n|0)|0;n=H;o=Bk(Q|0,K|0,s|0,x|0)|0;x=H;s=Bk(Q|0,K|0,E|0,D|0)|0;D=H;E=Bk(Q|0,K|0,J|0,I|0)|0;I=H;J=ni(o|0,x|0,O|0,M|0)|0;x=H;o=ni(s|0,D|0,O|0,M|0)|0;D=H;s=ni(E|0,I|0,O|0,M|0)|0;I=H;E=wl(P|0,C|0,J|0,x|0)|0;x=H;J=wl(N|0,G|0,o|0,D|0)|0;D=H;o=wl(y|0,L|0,s|0,I|0)|0;I=H;s=Bk(E|0,x|0,E|0,x|0)|0;x=H;E=Bk(J|0,D|0,J|0,D|0)|0;D=vl(E|0,H|0,s|0,x|0)|0;x=H;s=Bk(o|0,I|0,o|0,I|0)|0;I=vl(D|0,x|0,s|0,H|0)|0;s=H;x=wl(0,0,F|0,t|0)|0;t=H;F=Bk(I|0,s|0,O|0,M|0)|0;s=H;switch(F|0){case 0:{if(!s){X=F;Y=s}else Z=23;break}case 1:{if(!s){_=F;$=s;Z=25}else Z=23;break}default:Z=23}if((Z|0)==23){I=1;D=0;o=F;E=s;while(1){J=rl(I|0,D|0,1)|0;L=H;y=o;o=xl(o|0,E|0,2)|0;if(!(E>>>0>0|(E|0)==0&y>>>0>7)){_=J;$=L;Z=25;break}else{I=J;D=L;E=H}}}if((Z|0)==25){E=_;D=$;while(1){I=ln(F|0,s|0,E|0,D|0)|0;o=vl(I|0,H|0,E|0,D|0)|0;I=xl(o|0,H|0,1)|0;o=H;L=Bk(I|0,o|0,I|0,o|0)|0;J=H;if(J>>>0>s>>>0|(J|0)==(s|0)&L>>>0>F>>>0){E=I;D=o}else{X=I;Y=o;break}}}D=Bk(X|0,Y|0,R|0,v|0)|0;E=H;F=Bk(X|0,Y|0,x|0,t|0)|0;s=H;o=a+20|0;I=f[o>>2]|0;if(!I)aa=0;else{L=I+-1|0;I=(f[(f[a+16>>2]|0)+(L>>>5<<2)>>2]&1<<(L&31)|0)==0;f[o>>2]=L;L=wl(0,0,F|0,s|0)|0;o=vl(S|0,n|0,(I?L:F)|0,(I?H:s)|0)|0;s=H;F=wl(0,0,D|0,E|0)|0;L=vl(W|0,p|0,(I?F:D)|0,(I?H:E)|0)|0;E=ni(L|0,H|0,O|0,M|0)|0;L=ni(o|0,s|0,O|0,M|0)|0;f[a+8>>2]=E;f[a+12>>2]=L;aa=1}w=aa;u=g;return w|0}while(0);do if(q)ba=m<<1;else{if((e|0)>0){ba=(e<<1)+-2|0;break}aa=a+8|0;f[aa>>2]=0;f[aa+4>>2]=0;w=1;u=g;return w|0}while(0);f[a+8>>2]=f[d+(ba<<2)>>2];f[a+12>>2]=f[d+(ba+1<<2)>>2];w=1;u=g;return w|0}function Kb(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;g=u;u=u+80|0;h=g+76|0;i=g+72|0;j=g+48|0;k=g+24|0;l=g;m=a+32|0;n=f[c>>2]|0;c=n+1|0;do if((n|0)!=-1){o=((c>>>0)%3|0|0)==0?n+-2|0:c;if(!((n>>>0)%3|0)){p=n+2|0;q=o;break}else{p=n+-1|0;q=o;break}}else{p=-1;q=-1}while(0);n=f[(f[m>>2]|0)+28>>2]|0;m=f[n+(q<<2)>>2]|0;q=f[n+(p<<2)>>2]|0;p=f[a+36>>2]|0;n=f[p>>2]|0;c=(f[p+4>>2]|0)-n>>2;if(c>>>0<=m>>>0)$n(p);o=n;n=f[o+(m<<2)>>2]|0;if(c>>>0<=q>>>0)$n(p);p=f[o+(q<<2)>>2]|0;q=(n|0)<(e|0);do if(q&(p|0)<(e|0)){o=n<<1;c=f[d+(o<<2)>>2]|0;m=((c|0)<0)<<31>>31;r=f[d+((o|1)<<2)>>2]|0;o=((r|0)<0)<<31>>31;s=p<<1;t=f[d+(s<<2)>>2]|0;v=f[d+((s|1)<<2)>>2]|0;if(!((t|0)!=(c|0)|(v|0)!=(r|0))){f[a+8>>2]=c;f[a+12>>2]=r;w=1;u=g;return w|0}s=a+4|0;x=f[(f[s>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;y=f[a>>2]|0;if(!(b[y+84>>0]|0))z=f[(f[y+68>>2]|0)+(x<<2)>>2]|0;else z=x;f[i>>2]=z;x=b[y+24>>0]|0;f[h>>2]=f[i>>2];wb(y,h,x,j)|0;x=f[(f[s>>2]|0)+(n<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;y=f[a>>2]|0;if(!(b[y+84>>0]|0))A=f[(f[y+68>>2]|0)+(x<<2)>>2]|0;else A=x;f[i>>2]=A;x=b[y+24>>0]|0;f[h>>2]=f[i>>2];wb(y,h,x,k)|0;x=f[(f[s>>2]|0)+(p<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;s=f[a>>2]|0;if(!(b[s+84>>0]|0))B=f[(f[s+68>>2]|0)+(x<<2)>>2]|0;else B=x;f[i>>2]=B;x=b[s+24>>0]|0;f[h>>2]=f[i>>2];wb(s,h,x,l)|0;x=l;s=k;y=f[s>>2]|0;C=f[s+4>>2]|0;s=wl(f[x>>2]|0,f[x+4>>2]|0,y|0,C|0)|0;x=H;D=l+8|0;E=k+8|0;F=f[E>>2]|0;G=f[E+4>>2]|0;E=wl(f[D>>2]|0,f[D+4>>2]|0,F|0,G|0)|0;D=H;I=l+16|0;J=k+16|0;K=f[J>>2]|0;L=f[J+4>>2]|0;J=wl(f[I>>2]|0,f[I+4>>2]|0,K|0,L|0)|0;I=H;M=Bk(s|0,x|0,s|0,x|0)|0;N=H;O=Bk(E|0,D|0,E|0,D|0)|0;P=vl(O|0,H|0,M|0,N|0)|0;N=H;M=Bk(J|0,I|0,J|0,I|0)|0;O=vl(P|0,N|0,M|0,H|0)|0;M=H;if((O|0)==0&(M|0)==0)break;N=j;P=wl(f[N>>2]|0,f[N+4>>2]|0,y|0,C|0)|0;C=H;y=j+8|0;N=wl(f[y>>2]|0,f[y+4>>2]|0,F|0,G|0)|0;G=H;F=j+16|0;y=wl(f[F>>2]|0,f[F+4>>2]|0,K|0,L|0)|0;L=H;K=Bk(P|0,C|0,s|0,x|0)|0;F=H;Q=Bk(N|0,G|0,E|0,D|0)|0;R=vl(Q|0,H|0,K|0,F|0)|0;F=H;K=Bk(y|0,L|0,J|0,I|0)|0;Q=vl(R|0,F|0,K|0,H|0)|0;K=H;F=wl(t|0,((t|0)<0)<<31>>31|0,c|0,m|0)|0;t=H;R=wl(v|0,((v|0)<0)<<31>>31|0,r|0,o|0)|0;v=H;S=Bk(O|0,M|0,c|0,m|0)|0;m=H;c=Bk(O|0,M|0,r|0,o|0)|0;o=H;r=Bk(Q|0,K|0,F|0,t|0)|0;T=H;U=Bk(Q|0,K|0,R|0,v|0)|0;V=H;W=vl(r|0,T|0,S|0,m|0)|0;m=H;S=vl(U|0,V|0,c|0,o|0)|0;o=H;c=Bk(Q|0,K|0,s|0,x|0)|0;x=H;s=Bk(Q|0,K|0,E|0,D|0)|0;D=H;E=Bk(Q|0,K|0,J|0,I|0)|0;I=H;J=ni(c|0,x|0,O|0,M|0)|0;x=H;c=ni(s|0,D|0,O|0,M|0)|0;D=H;s=ni(E|0,I|0,O|0,M|0)|0;I=H;E=wl(P|0,C|0,J|0,x|0)|0;x=H;J=wl(N|0,G|0,c|0,D|0)|0;D=H;c=wl(y|0,L|0,s|0,I|0)|0;I=H;s=Bk(E|0,x|0,E|0,x|0)|0;x=H;E=Bk(J|0,D|0,J|0,D|0)|0;D=vl(E|0,H|0,s|0,x|0)|0;x=H;s=Bk(c|0,I|0,c|0,I|0)|0;I=vl(D|0,x|0,s|0,H|0)|0;s=H;x=wl(0,0,F|0,t|0)|0;t=H;F=Bk(I|0,s|0,O|0,M|0)|0;s=H;switch(F|0){case 0:{if(!s){X=F;Y=s}else Z=22;break}case 1:{if(!s){_=F;$=s;Z=24}else Z=22;break}default:Z=22}if((Z|0)==22){I=1;D=0;c=F;E=s;while(1){J=rl(I|0,D|0,1)|0;L=H;y=c;c=xl(c|0,E|0,2)|0;if(!(E>>>0>0|(E|0)==0&y>>>0>7)){_=J;$=L;Z=24;break}else{I=J;D=L;E=H}}}if((Z|0)==24){E=_;D=$;while(1){I=ln(F|0,s|0,E|0,D|0)|0;c=vl(I|0,H|0,E|0,D|0)|0;I=xl(c|0,H|0,1)|0;c=H;L=Bk(I|0,c|0,I|0,c|0)|0;J=H;if(J>>>0>s>>>0|(J|0)==(s|0)&L>>>0>F>>>0){E=I;D=c}else{X=I;Y=c;break}}}D=Bk(X|0,Y|0,R|0,v|0)|0;E=H;F=Bk(X|0,Y|0,x|0,t|0)|0;s=H;c=a+20|0;I=f[c>>2]|0;if(!I)aa=0;else{L=I+-1|0;I=(f[(f[a+16>>2]|0)+(L>>>5<<2)>>2]&1<<(L&31)|0)==0;f[c>>2]=L;L=wl(0,0,F|0,s|0)|0;c=vl(S|0,o|0,(I?L:F)|0,(I?H:s)|0)|0;s=H;F=wl(0,0,D|0,E|0)|0;L=vl(W|0,m|0,(I?F:D)|0,(I?H:E)|0)|0;E=ni(L|0,H|0,O|0,M|0)|0;L=ni(c|0,s|0,O|0,M|0)|0;f[a+8>>2]=E;f[a+12>>2]=L;aa=1}w=aa;u=g;return w|0}while(0);do if(q)ba=n<<1;else{if((e|0)>0){ba=(e<<1)+-2|0;break}aa=a+8|0;f[aa>>2]=0;f[aa+4>>2]=0;w=1;u=g;return w|0}while(0);f[a+8>>2]=f[d+(ba<<2)>>2];f[a+12>>2]=f[d+(ba+1<<2)>>2];w=1;u=g;return w|0}function Lb(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,$=0,aa=0,ba=Ia,ca=Ia,da=Ia;c=u;u=u+32|0;d=c+12|0;e=c;g=a+60|0;if((f[g>>2]|0)==(f[a+64>>2]|0)?(f[a+48>>2]|0)==(f[a+52>>2]|0):0){h=1;u=c;return h|0}if((Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0)<=0){h=1;u=c;return h|0}i=d+4|0;j=d+8|0;k=a+36|0;l=d+8|0;m=d+4|0;o=e+4|0;p=e+8|0;q=d+11|0;r=d+4|0;s=0;t=0;v=0;a:while(1){w=La[f[(f[a>>2]|0)+20>>2]&127](a,v)|0;x=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;y=f[(f[(f[x>>2]|0)+8>>2]|0)+(w<<2)>>2]|0;w=y+28|0;b:do switch(f[w>>2]|0){case 1:case 3:case 5:{x=y+24|0;z=b[x>>0]|0;A=z<<24>>24;f[d>>2]=0;f[i>>2]=0;f[j>>2]=0;if(!(z<<24>>24))B=0;else{if(z<<24>>24<0){C=8;break a}z=A<<2;D=wk(z)|0;f[d>>2]=D;E=D+(A<<2)|0;f[j>>2]=E;oh(D|0,0,z|0)|0;f[i>>2]=E;B=b[x>>0]|0}E=B<<24>>24;f[e>>2]=0;f[o>>2]=0;f[p>>2]=0;if(B<<24>>24){if(B<<24>>24<0){C=12;break a}z=E<<2;D=wk(z)|0;f[e>>2]=D;A=D+(E<<2)|0;f[p>>2]=A;oh(D|0,0,z|0)|0;f[o>>2]=A}switch(f[w>>2]|0){case 5:{if(pe(a,y,t)|0)C=18;else{F=1;G=t}break}case 3:{if(oe(a,y,t)|0)C=18;else{F=1;G=t}break}case 1:{if(yd(a,y,t)|0)C=18;else{F=1;G=t}break}default:C=18}if((C|0)==18){C=0;F=0;G=t+(b[x>>0]|0)|0}x=f[e>>2]|0;if(x|0){f[o>>2]=x;Ko(x)}x=f[d>>2]|0;if(x|0){f[i>>2]=x;Ko(x)}if(!F){I=s;J=G}else{h=0;C=64;break a}break}case 9:{x=f[(f[g>>2]|0)+(s<<2)>>2]|0;A=f[k>>2]|0;z=s+1|0;D=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+40|0;E=f[D>>2]|0;D=f[y+56>>2]|0;K=wk(32)|0;f[d>>2]=K;f[l>>2]=-2147483616;f[m>>2]=24;L=K;M=11931;N=L+24|0;do{b[L>>0]=b[M>>0]|0;L=L+1|0;M=M+1|0}while((L|0)<(N|0));b[K+24>>0]=0;M=E+16|0;L=f[M>>2]|0;c:do if(L){N=M;O=L;do{P=(f[O+16>>2]|0)<(D|0);N=P?N:O;O=f[(P?O+4|0:O)>>2]|0}while((O|0)!=0);if(((N|0)!=(M|0)?(D|0)>=(f[N+16>>2]|0):0)?(O=N+20|0,P=f[N+24>>2]|0,(P|0)!=0):0){Q=P;while(1){P=Q+16|0;R=b[P+11>>0]|0;S=R<<24>>24<0;T=S?f[Q+20>>2]|0:R&255;R=T>>>0<24;U=R?T:24;V=(U|0)==0;if(!V?(W=S?f[P>>2]|0:P,X=Fi(K,W,U)|0,(X|0)!=0):0)if((X|0)<0)C=35;else{Y=W;C=38}else if(T>>>0<=24)if(V)C=39;else{Y=S?f[P>>2]|0:P;C=38}else C=35;if((C|0)==35){C=0;Z=Q}else if((C|0)==38){C=0;P=Fi(Y,K,U)|0;if(P)if((P|0)<0)C=41;else break;else C=39}if((C|0)==39){C=0;if(R)C=41;else break}if((C|0)==41){C=0;Z=Q+4|0}Q=f[Z>>2]|0;if(!Q){C=44;break c}}$=ci(O,d,0)|0}else C=44}else C=44;while(0);if((C|0)==44){C=0;$=ci(E,d,0)|0}if((b[q>>0]|0)<0)Ko(f[d>>2]|0);if($){ge(y,x);I=z;J=t;break b}K=f[A+(s*24|0)+4>>2]|0;D=b[y+24>>0]|0;M=D<<24>>24;L=M<<2;aa=Ho(M>>>0>1073741823?-1:M<<2)|0;dn(d);if(!(qk(d,_(n[A+(s*24|0)+20>>2]),(1<<K)+-1|0)|0)){C=63;break a}K=(f[f[x>>2]>>2]|0)+(f[x+48>>2]|0)|0;Q=x+80|0;d:do if(f[Q>>2]|0){N=y+64|0;R=A+(s*24|0)+8|0;if(D<<24>>24<=0){P=0;U=0;while(1){Bf((f[f[N>>2]>>2]|0)+U|0,aa|0,L|0)|0;P=P+1|0;if(P>>>0>=(f[Q>>2]|0)>>>0)break d;else U=U+L|0}}U=0;P=0;O=0;while(1){S=f[R>>2]|0;V=0;T=O;while(1){W=f[K+(T<<2)>>2]|0;if((W|0)>-1){ba=_(W|0);ca=_(_(n[r>>2])*ba);da=_(ca*_(n[d>>2]))}else{X=wl(0,0,W|0,((W|0)<0)<<31>>31|0)|0;ca=_(+(X>>>0)+4294967296.0*+(H|0));ba=_(_(n[r>>2])*ca);da=_(-_(ba*_(n[d>>2])))}ba=_(da+_(n[S+(V<<2)>>2]));n[aa+(V<<2)>>2]=ba;V=V+1|0;if((V|0)==(M|0))break;else T=T+1|0}Bf((f[f[N>>2]>>2]|0)+P|0,aa|0,L|0)|0;U=U+1|0;if(U>>>0>=(f[Q>>2]|0)>>>0)break;else{P=P+L|0;O=O+M|0}}}while(0);Io(aa);I=z;J=t;break}default:{I=s;J=t}}while(0);v=v+1|0;if((v|0)>=(Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0)){h=1;C=64;break}else{s=I;t=J}}if((C|0)==8)$n(d);else if((C|0)==12)$n(e);else if((C|0)==63){Io(aa);h=0;u=c;return h|0}else if((C|0)==64){u=c;return h|0}return 0}function Mb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=(o|0)==-1;if(p)q=-1;else q=f[(f[n>>2]|0)+(o<<2)>>2]|0;n=a+20|0;r=f[n>>2]|0;s=f[r>>2]|0;if((f[r+4>>2]|0)-s>>2>>>0<=q>>>0)$n(r);r=a+8|0;t=f[(f[r>>2]|0)+(f[s+(q<<2)>>2]<<2)>>2]|0;q=a+4|0;s=f[q>>2]|0;if(!(b[s+84>>0]|0))v=f[(f[s+68>>2]|0)+(t<<2)>>2]|0;else v=t;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=v;v=b[s+24>>0]|0;f[g>>2]=f[h>>2];wb(s,g,v,j)|0;v=a+28|0;a=(f[v>>2]|0)==0;do if(!p){s=o+1|0;t=((s>>>0)%3|0|0)==0?o+-2|0:s;s=k+8|0;w=j+8|0;x=k+16|0;y=j+16|0;z=l+8|0;A=l+16|0;B=o+(((o>>>0)%3|0|0)==0?2:-1)|0;C=0;D=0;E=0;F=0;G=0;I=0;J=a;K=o;while(1){do if(!J){L=K+1|0;M=((L>>>0)%3|0|0)==0?K+-2|0:L;if(!((K>>>0)%3|0)){N=K+2|0;O=M;break}else{N=K+-1|0;O=M;break}}else{N=B;O=t}while(0);if((O|0)==-1)P=-1;else P=f[(f[f[m>>2]>>2]|0)+(O<<2)>>2]|0;Q=f[n>>2]|0;M=f[Q>>2]|0;if((f[Q+4>>2]|0)-M>>2>>>0<=P>>>0){R=16;break}L=f[(f[r>>2]|0)+(f[M+(P<<2)>>2]<<2)>>2]|0;M=f[q>>2]|0;if(!(b[M+84>>0]|0))S=f[(f[M+68>>2]|0)+(L<<2)>>2]|0;else S=L;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=S;L=b[M+24>>0]|0;f[g>>2]=f[h>>2];wb(M,g,L,k)|0;if((N|0)==-1)T=-1;else T=f[(f[f[m>>2]>>2]|0)+(N<<2)>>2]|0;U=f[n>>2]|0;L=f[U>>2]|0;if((f[U+4>>2]|0)-L>>2>>>0<=T>>>0){R=22;break}M=f[(f[r>>2]|0)+(f[L+(T<<2)>>2]<<2)>>2]|0;L=f[q>>2]|0;if(!(b[L+84>>0]|0))V=f[(f[L+68>>2]|0)+(M<<2)>>2]|0;else V=M;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=V;M=b[L+24>>0]|0;f[g>>2]=f[h>>2];wb(L,g,M,l)|0;M=k;L=j;W=f[L>>2]|0;X=f[L+4>>2]|0;L=wl(f[M>>2]|0,f[M+4>>2]|0,W|0,X|0)|0;M=H;Y=s;Z=w;_=f[Z>>2]|0;$=f[Z+4>>2]|0;Z=wl(f[Y>>2]|0,f[Y+4>>2]|0,_|0,$|0)|0;Y=H;aa=x;ba=y;ca=f[ba>>2]|0;da=f[ba+4>>2]|0;ba=wl(f[aa>>2]|0,f[aa+4>>2]|0,ca|0,da|0)|0;aa=H;ea=l;fa=wl(f[ea>>2]|0,f[ea+4>>2]|0,W|0,X|0)|0;X=H;W=z;ea=wl(f[W>>2]|0,f[W+4>>2]|0,_|0,$|0)|0;$=H;_=A;W=wl(f[_>>2]|0,f[_+4>>2]|0,ca|0,da|0)|0;da=H;ca=Bk(W|0,da|0,Z|0,Y|0)|0;_=H;ga=Bk(ea|0,$|0,ba|0,aa|0)|0;ha=H;ia=Bk(fa|0,X|0,ba|0,aa|0)|0;aa=H;ba=Bk(W|0,da|0,L|0,M|0)|0;da=H;W=Bk(ea|0,$|0,L|0,M|0)|0;M=H;L=Bk(fa|0,X|0,Z|0,Y|0)|0;Y=H;Z=wl(C|0,D|0,ga|0,ha|0)|0;C=vl(Z|0,H|0,ca|0,_|0)|0;D=H;_=vl(ia|0,aa|0,E|0,F|0)|0;E=wl(_|0,H|0,ba|0,da|0)|0;F=H;da=wl(G|0,I|0,L|0,Y|0)|0;G=vl(da|0,H|0,W|0,M|0)|0;I=H;Tf(i);K=f[c>>2]|0;J=(f[v>>2]|0)==0;if((K|0)==-1){R=26;break}}if((R|0)==16)$n(Q);else if((R|0)==22)$n(U);else if((R|0)==26){K=wl(0,0,C|0,D|0)|0;if((D|0)>-1|(D|0)==-1&C>>>0>4294967295){ja=J;ka=C;la=D;ma=E;na=F;oa=G;pa=I;R=27;break}else{qa=J;ra=F;sa=E;ta=I;ua=G;va=K;wa=H;xa=C;ya=D;break}}}else{ja=a;ka=0;la=0;ma=0;na=0;oa=0;pa=0;R=27}while(0);if((R|0)==27){qa=ja;ra=na;sa=ma;ta=pa;ua=oa;va=ka;wa=la;xa=ka;ya=la}la=(ra|0)>-1|(ra|0)==-1&sa>>>0>4294967295;ka=wl(0,0,sa|0,ra|0)|0;oa=la?ra:H;pa=(ta|0)>-1|(ta|0)==-1&ua>>>0>4294967295;ma=wl(0,0,ua|0,ta|0)|0;na=vl((la?sa:ka)|0,oa|0,(pa?ua:ma)|0,(pa?ta:H)|0)|0;pa=vl(na|0,H|0,va|0,wa|0)|0;wa=H;if(qa){if((pa|0)<=536870912){za=xa;Aa=sa;Ba=ua;f[d>>2]=za;Ca=d+4|0;f[Ca>>2]=Aa;Da=d+8|0;f[Da>>2]=Ba;u=e;return}qa=xl(pa|0,wa|0,29)|0;va=qa&7;qa=ni(xa|0,ya|0,va|0,0)|0;na=ni(sa|0,ra|0,va|0,0)|0;ma=ni(ua|0,ta|0,va|0,0)|0;za=qa;Aa=na;Ba=ma;f[d>>2]=za;Ca=d+4|0;f[Ca>>2]=Aa;Da=d+8|0;f[Da>>2]=Ba;u=e;return}else{if(!((wa|0)>0|(wa|0)==0&pa>>>0>536870912)){za=xa;Aa=sa;Ba=ua;f[d>>2]=za;Ca=d+4|0;f[Ca>>2]=Aa;Da=d+8|0;f[Da>>2]=Ba;u=e;return}ma=xl(pa|0,wa|0,29)|0;wa=H;pa=ni(xa|0,ya|0,ma|0,wa|0)|0;ya=ni(sa|0,ra|0,ma|0,wa|0)|0;ra=ni(ua|0,ta|0,ma|0,wa|0)|0;za=pa;Aa=ya;Ba=ra;f[d>>2]=za;Ca=d+4|0;f[Ca>>2]=Aa;Da=d+8|0;f[Da>>2]=Ba;u=e;return}}function Nb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0;d=u;u=u+32|0;e=d+20|0;g=d+8|0;i=d+4|0;j=d;k=a+4|0;do if((h[(f[k>>2]|0)+36>>0]<<8&65535)<512){l=c+8|0;m=f[l>>2]|0;n=f[l+4>>2]|0;l=c+16|0;o=l;p=f[o>>2]|0;q=vl(p|0,f[o+4>>2]|0,4,0)|0;o=H;if((n|0)<(o|0)|(n|0)==(o|0)&m>>>0<q>>>0){r=-1;u=d;return r|0}else{m=(f[c>>2]|0)+p|0;p=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;f[e>>2]=p;m=l;f[m>>2]=q;f[m+4>>2]=o;s=p;break}}else if(zh(e,c)|0){s=f[e>>2]|0;break}else{r=-1;u=d;return r|0}while(0);a:do if(s|0){p=f[a+8>>2]|0;if(s>>>0>(((f[p+4>>2]|0)-(f[p>>2]|0)>>2>>>0)/3|0)>>>0){r=-1;u=d;return r|0}p=f[k>>2]|0;if(((h[p+36>>0]<<8|h[p+37>>0])&65535)<258){p=c+8|0;o=c+16|0;m=g+4|0;q=g+8|0;l=a+40|0;n=a+44|0;t=a+36|0;v=0;w=s;while(1){x=p;y=f[x>>2]|0;z=f[x+4>>2]|0;x=o;A=f[x>>2]|0;B=f[x+4>>2]|0;x=vl(A|0,B|0,4,0)|0;C=H;if((z|0)<(C|0)|(z|0)==(C|0)&y>>>0<x>>>0)break;D=f[c>>2]|0;E=D+A|0;f[g>>2]=h[E>>0]|h[E+1>>0]<<8|h[E+2>>0]<<16|h[E+3>>0]<<24;E=o;f[E>>2]=x;f[E+4>>2]=C;C=vl(A|0,B|0,8,0)|0;E=H;if((z|0)<(E|0)|(z|0)==(E|0)&y>>>0<C>>>0)break;F=D+x|0;f[m>>2]=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;F=o;f[F>>2]=C;f[F+4>>2]=E;if(!((z|0)>(E|0)|(z|0)==(E|0)&y>>>0>C>>>0))break;y=b[D+C>>0]|0;C=vl(A|0,B|0,9,0)|0;B=o;f[B>>2]=C;f[B+4>>2]=H;b[q>>0]=b[q>>0]&-2|y&1;y=f[l>>2]|0;if((y|0)==(f[n>>2]|0)){yg(t,g);G=f[e>>2]|0}else{f[y>>2]=f[g>>2];f[y+4>>2]=f[g+4>>2];f[y+8>>2]=f[g+8>>2];f[l>>2]=(f[l>>2]|0)+12;G=w}v=v+1|0;if(v>>>0>=G>>>0)break a;else w=G}r=-1;u=d;return r|0}w=g+4|0;v=a+40|0;l=a+44|0;t=a+36|0;n=0;q=0;do{zh(i,c)|0;f[w>>2]=(f[i>>2]|0)+q;zh(i,c)|0;o=f[i>>2]|0;q=f[w>>2]|0;if(q>>>0<o>>>0){I=36;break}f[g>>2]=q-o;o=f[v>>2]|0;if((o|0)==(f[l>>2]|0))yg(t,g);else{f[o>>2]=f[g>>2];f[o+4>>2]=f[g+4>>2];f[o+8>>2]=f[g+8>>2];f[v>>2]=(f[v>>2]|0)+12}n=n+1|0}while(n>>>0<(f[e>>2]|0)>>>0);if((I|0)==36){r=-1;u=d;return r|0}vf(c,0,0)|0;n=f[e>>2]|0;if(n|0){v=c+36|0;t=a+36|0;l=c+32|0;q=c+24|0;w=c+28|0;o=0;m=0;while(1){p=f[k>>2]|0;y=(b[v>>0]|0)==0;if(((h[p+36>>0]<<8|h[p+37>>0])&65535)<514)if(!y){p=f[l>>2]|0;B=f[q>>2]|0;C=f[w>>2]|0;A=B+(p>>>3)|0;if(A>>>0<C>>>0){D=(h[A>>0]|0)>>>(p&7)&1;E=p+1|0;f[l>>2]=E;J=D;K=B+(E>>>3)|0;L=E}else{J=0;K=A;L=p}if(K>>>0<C>>>0){f[l>>2]=L+1;M=J}else M=J}else M=m;else if(!y){y=f[l>>2]|0;C=(f[q>>2]|0)+(y>>>3)|0;if(C>>>0<(f[w>>2]|0)>>>0){p=(h[C>>0]|0)>>>(y&7)&1;f[l>>2]=y+1;M=p}else M=0}else M=m;p=(f[t>>2]|0)+(o*12|0)+8|0;b[p>>0]=b[p>>0]&-2|M&1;o=o+1|0;if(o>>>0>=n>>>0)break;else m=M}}Cj(c)}while(0);f[g>>2]=0;M=f[k>>2]|0;J=(h[M+36>>0]<<8|h[M+37>>0])&65535;if((J&65535)<512){M=c+8|0;L=f[M>>2]|0;K=f[M+4>>2]|0;M=c+16|0;e=M;G=f[e>>2]|0;s=vl(G|0,f[e+4>>2]|0,4,0)|0;e=H;if((K|0)<(e|0)|(K|0)==(e|0)&L>>>0<s>>>0)N=-1;else{L=(f[c>>2]|0)+G|0;G=h[L>>0]|h[L+1>>0]<<8|h[L+2>>0]<<16|h[L+3>>0]<<24;f[g>>2]=G;L=M;f[L>>2]=s;f[L+4>>2]=e;O=G;I=43}}else if(J<<16>>16==512)if(zh(g,c)|0){O=f[g>>2]|0;I=43}else N=-1;else I=57;b:do if((I|0)==43)if(!O)I=57;else{J=f[k>>2]|0;if(((h[J+36>>0]<<8|h[J+37>>0])&65535)>=258){J=a+52|0;G=a+56|0;e=a+48|0;L=0;s=0;while(1){f[i>>2]=0;zh(j,c)|0;s=(f[j>>2]|0)+s|0;f[i>>2]=s;M=f[J>>2]|0;if((M|0)==(f[G>>2]|0))Ng(e,i);else{f[M>>2]=s;f[J>>2]=M+4}L=L+1|0;if(L>>>0>=(f[g>>2]|0)>>>0){I=57;break b}}}L=c+8|0;J=c+16|0;s=a+52|0;e=a+56|0;G=a+48|0;M=0;while(1){f[i>>2]=0;K=L;m=f[K>>2]|0;n=f[K+4>>2]|0;K=J;o=f[K>>2]|0;t=vl(o|0,f[K+4>>2]|0,4,0)|0;K=H;if((n|0)<(K|0)|(n|0)==(K|0)&m>>>0<t>>>0)break;m=(f[c>>2]|0)+o|0;o=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;f[i>>2]=o;m=J;f[m>>2]=t;f[m+4>>2]=K;K=f[s>>2]|0;if((K|0)==(f[e>>2]|0))Ng(G,i);else{f[K>>2]=o;f[s>>2]=K+4}M=M+1|0;if(M>>>0>=(f[g>>2]|0)>>>0){I=57;break b}}N=-1}while(0);if((I|0)==57)N=f[c+16>>2]|0;r=N;u=d;return r|0}function Ob(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0;e=u;u=u+96|0;g=e+92|0;h=e+88|0;i=e+72|0;j=e+48|0;k=e+24|0;l=e;m=a+16|0;n=f[m>>2]|0;o=f[c>>2]|0;f[i>>2]=n;f[i+4>>2]=o;c=i+8|0;f[c>>2]=o;b[i+12>>0]=1;p=f[(f[n+28>>2]|0)+(o<<2)>>2]|0;n=a+20|0;q=f[n>>2]|0;r=f[q>>2]|0;if((f[q+4>>2]|0)-r>>2>>>0<=p>>>0)$n(q);q=a+8|0;s=f[(f[q>>2]|0)+(f[r+(p<<2)>>2]<<2)>>2]|0;p=a+4|0;r=f[p>>2]|0;if(!(b[r+84>>0]|0))t=f[(f[r+68>>2]|0)+(s<<2)>>2]|0;else t=s;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;f[j+12>>2]=0;f[j+16>>2]=0;f[j+20>>2]=0;f[h>>2]=t;t=b[r+24>>0]|0;f[g>>2]=f[h>>2];wb(r,g,t,j)|0;t=a+28|0;a=(f[t>>2]|0)==0;do if((o|0)!=-1){r=o+1|0;s=((r>>>0)%3|0|0)==0?o+-2|0:r;r=k+8|0;v=j+8|0;w=k+16|0;x=j+16|0;y=l+8|0;z=l+16|0;A=o+(((o>>>0)%3|0|0)==0?2:-1)|0;B=0;C=0;D=0;E=0;F=0;G=0;I=a;J=o;while(1){do if(!I){K=J+1|0;L=((K>>>0)%3|0|0)==0?J+-2|0:K;if(!((J>>>0)%3|0)){M=J+2|0;N=L;break}else{M=J+-1|0;N=L;break}}else{M=A;N=s}while(0);L=f[(f[(f[m>>2]|0)+28>>2]|0)+(N<<2)>>2]|0;O=f[n>>2]|0;K=f[O>>2]|0;if((f[O+4>>2]|0)-K>>2>>>0<=L>>>0){P=12;break}Q=f[(f[q>>2]|0)+(f[K+(L<<2)>>2]<<2)>>2]|0;L=f[p>>2]|0;if(!(b[L+84>>0]|0))R=f[(f[L+68>>2]|0)+(Q<<2)>>2]|0;else R=Q;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;f[k+12>>2]=0;f[k+16>>2]=0;f[k+20>>2]=0;f[h>>2]=R;Q=b[L+24>>0]|0;f[g>>2]=f[h>>2];wb(L,g,Q,k)|0;Q=f[(f[(f[m>>2]|0)+28>>2]|0)+(M<<2)>>2]|0;S=f[n>>2]|0;L=f[S>>2]|0;if((f[S+4>>2]|0)-L>>2>>>0<=Q>>>0){P=16;break}K=f[(f[q>>2]|0)+(f[L+(Q<<2)>>2]<<2)>>2]|0;Q=f[p>>2]|0;if(!(b[Q+84>>0]|0))T=f[(f[Q+68>>2]|0)+(K<<2)>>2]|0;else T=K;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;f[l+12>>2]=0;f[l+16>>2]=0;f[l+20>>2]=0;f[h>>2]=T;K=b[Q+24>>0]|0;f[g>>2]=f[h>>2];wb(Q,g,K,l)|0;K=k;Q=j;L=f[Q>>2]|0;U=f[Q+4>>2]|0;Q=wl(f[K>>2]|0,f[K+4>>2]|0,L|0,U|0)|0;K=H;V=r;W=v;X=f[W>>2]|0;Y=f[W+4>>2]|0;W=wl(f[V>>2]|0,f[V+4>>2]|0,X|0,Y|0)|0;V=H;Z=w;_=x;$=f[_>>2]|0;aa=f[_+4>>2]|0;_=wl(f[Z>>2]|0,f[Z+4>>2]|0,$|0,aa|0)|0;Z=H;ba=l;ca=wl(f[ba>>2]|0,f[ba+4>>2]|0,L|0,U|0)|0;U=H;L=y;ba=wl(f[L>>2]|0,f[L+4>>2]|0,X|0,Y|0)|0;Y=H;X=z;L=wl(f[X>>2]|0,f[X+4>>2]|0,$|0,aa|0)|0;aa=H;$=Bk(L|0,aa|0,W|0,V|0)|0;X=H;da=Bk(ba|0,Y|0,_|0,Z|0)|0;ea=H;fa=Bk(ca|0,U|0,_|0,Z|0)|0;Z=H;_=Bk(L|0,aa|0,Q|0,K|0)|0;aa=H;L=Bk(ba|0,Y|0,Q|0,K|0)|0;K=H;Q=Bk(ca|0,U|0,W|0,V|0)|0;V=H;W=wl(B|0,C|0,da|0,ea|0)|0;B=vl(W|0,H|0,$|0,X|0)|0;C=H;X=vl(fa|0,Z|0,D|0,E|0)|0;D=wl(X|0,H|0,_|0,aa|0)|0;E=H;aa=wl(F|0,G|0,Q|0,V|0)|0;F=vl(aa|0,H|0,L|0,K|0)|0;G=H;kf(i);J=f[c>>2]|0;I=(f[t>>2]|0)==0;if((J|0)==-1){P=20;break}}if((P|0)==12)$n(O);else if((P|0)==16)$n(S);else if((P|0)==20){J=wl(0,0,B|0,C|0)|0;if((C|0)>-1|(C|0)==-1&B>>>0>4294967295){ga=I;ha=B;ia=C;ja=D;ka=E;la=F;ma=G;P=21;break}else{na=I;oa=E;pa=D;qa=G;ra=F;sa=J;ta=H;ua=B;va=C;break}}}else{ga=a;ha=0;ia=0;ja=0;ka=0;la=0;ma=0;P=21}while(0);if((P|0)==21){na=ga;oa=ka;pa=ja;qa=ma;ra=la;sa=ha;ta=ia;ua=ha;va=ia}ia=(oa|0)>-1|(oa|0)==-1&pa>>>0>4294967295;ha=wl(0,0,pa|0,oa|0)|0;la=ia?oa:H;ma=(qa|0)>-1|(qa|0)==-1&ra>>>0>4294967295;ja=wl(0,0,ra|0,qa|0)|0;ka=vl((ia?pa:ha)|0,la|0,(ma?ra:ja)|0,(ma?qa:H)|0)|0;ma=vl(ka|0,H|0,sa|0,ta|0)|0;ta=H;if(na){if((ma|0)<=536870912){wa=ua;xa=pa;ya=ra;f[d>>2]=wa;za=d+4|0;f[za>>2]=xa;Aa=d+8|0;f[Aa>>2]=ya;u=e;return}na=xl(ma|0,ta|0,29)|0;sa=na&7;na=ni(ua|0,va|0,sa|0,0)|0;ka=ni(pa|0,oa|0,sa|0,0)|0;ja=ni(ra|0,qa|0,sa|0,0)|0;wa=na;xa=ka;ya=ja;f[d>>2]=wa;za=d+4|0;f[za>>2]=xa;Aa=d+8|0;f[Aa>>2]=ya;u=e;return}else{if(!((ta|0)>0|(ta|0)==0&ma>>>0>536870912)){wa=ua;xa=pa;ya=ra;f[d>>2]=wa;za=d+4|0;f[za>>2]=xa;Aa=d+8|0;f[Aa>>2]=ya;u=e;return}ja=xl(ma|0,ta|0,29)|0;ta=H;ma=ni(ua|0,va|0,ja|0,ta|0)|0;va=ni(pa|0,oa|0,ja|0,ta|0)|0;oa=ni(ra|0,qa|0,ja|0,ta|0)|0;wa=ma;xa=va;ya=oa;f[d>>2]=wa;za=d+4|0;f[za>>2]=xa;Aa=d+8|0;f[Aa>>2]=ya;u=e;return}}function Pb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;g=a+8|0;f[g>>2]=e;d=a+32|0;h=a+36|0;i=f[d>>2]|0;j=(f[h>>2]|0)-i>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[h>>2]=i+(e<<2)}else Eg(d,e-j|0);j=e>>>0>1073741823?-1:e<<2;d=Ho(j)|0;oh(d|0,0,j|0)|0;i=Ho(j)|0;oh(i|0,0,j|0)|0;j=f[g>>2]|0;if((j|0)>0){h=a+16|0;k=a+32|0;l=a+12|0;m=0;do{n=f[d+(m<<2)>>2]|0;o=f[h>>2]|0;do if((n|0)<=(o|0)){p=f[l>>2]|0;q=f[k>>2]|0;r=q+(m<<2)|0;if((n|0)<(p|0)){f[r>>2]=p;s=q;break}else{f[r>>2]=n;s=q;break}}else{q=f[k>>2]|0;f[q+(m<<2)>>2]=o;s=q}while(0);m=m+1|0;t=f[g>>2]|0}while((m|0)<(t|0));if((t|0)>0){m=a+20|0;k=0;do{o=(f[b+(k<<2)>>2]|0)+(f[s+(k<<2)>>2]|0)|0;n=c+(k<<2)|0;f[n>>2]=o;if((o|0)<=(f[h>>2]|0)){if((o|0)<(f[l>>2]|0)){u=(f[m>>2]|0)+o|0;v=19}}else{u=o-(f[m>>2]|0)|0;v=19}if((v|0)==19){v=0;f[n>>2]=u}k=k+1|0;n=f[g>>2]|0}while((k|0)<(n|0));w=n}else w=t}else w=j;j=f[a+48>>2]|0;t=f[a+56>>2]|0;k=f[t>>2]|0;u=(f[t+4>>2]|0)-k|0;m=u>>2;if((u|0)<=4){Io(i);Io(d);return 1}u=f[a+52>>2]|0;l=k;k=(e|0)>0;h=j+12|0;s=a+16|0;n=a+32|0;o=a+12|0;q=a+20|0;a=e<<2;r=1;p=w;while(1){if(m>>>0<=r>>>0){v=25;break}w=f[l+(r<<2)>>2]|0;if(k)oh(d|0,0,a|0)|0;if((w|0)!=-1){x=f[h>>2]|0;y=0;z=w;while(1){A=f[x+(z<<2)>>2]|0;if((A|0)!=-1){B=f[j>>2]|0;C=f[u>>2]|0;D=f[C+(f[B+(A<<2)>>2]<<2)>>2]|0;E=A+1|0;F=((E>>>0)%3|0|0)==0?A+-2|0:E;if((F|0)==-1)G=-1;else G=f[B+(F<<2)>>2]|0;F=f[C+(G<<2)>>2]|0;E=(((A>>>0)%3|0|0)==0?2:-1)+A|0;if((E|0)==-1)H=-1;else H=f[B+(E<<2)>>2]|0;E=f[C+(H<<2)>>2]|0;if((D|0)<(r|0)&(F|0)<(r|0)&(E|0)<(r|0)){C=W(D,e)|0;D=W(F,e)|0;F=W(E,e)|0;if(k){E=0;do{f[i+(E<<2)>>2]=(f[c+(E+F<<2)>>2]|0)+(f[c+(E+D<<2)>>2]|0)-(f[c+(E+C<<2)>>2]|0);E=E+1|0}while((E|0)!=(e|0));if(k){E=0;do{C=d+(E<<2)|0;f[C>>2]=(f[C>>2]|0)+(f[i+(E<<2)>>2]|0);E=E+1|0}while((E|0)!=(e|0))}}I=y+1|0}else I=y}else I=y;E=(((z>>>0)%3|0|0)==0?2:-1)+z|0;do if((E|0)!=-1?(C=f[x+(E<<2)>>2]|0,(C|0)!=-1):0)if(!((C>>>0)%3|0)){J=C+2|0;break}else{J=C+-1|0;break}else J=-1;while(0);z=(J|0)==(w|0)?-1:J;if((z|0)==-1)break;else y=I}y=W(r,e)|0;if(I){if(k){z=0;do{w=d+(z<<2)|0;f[w>>2]=(f[w>>2]|0)/(I|0)|0;z=z+1|0}while((z|0)!=(e|0))}z=b+(y<<2)|0;w=c+(y<<2)|0;if((p|0)>0){x=0;do{E=f[d+(x<<2)>>2]|0;C=f[s>>2]|0;do if((E|0)<=(C|0)){D=f[o>>2]|0;F=f[n>>2]|0;B=F+(x<<2)|0;if((E|0)<(D|0)){f[B>>2]=D;K=F;break}else{f[B>>2]=E;K=F;break}}else{F=f[n>>2]|0;f[F+(x<<2)>>2]=C;K=F}while(0);x=x+1|0;L=f[g>>2]|0}while((x|0)<(L|0));if((L|0)>0){x=0;do{C=(f[z+(x<<2)>>2]|0)+(f[K+(x<<2)>>2]|0)|0;E=w+(x<<2)|0;f[E>>2]=C;if((C|0)<=(f[s>>2]|0)){if((C|0)<(f[o>>2]|0)){M=(f[q>>2]|0)+C|0;v=83}}else{M=C-(f[q>>2]|0)|0;v=83}if((v|0)==83){v=0;f[E>>2]=M}x=x+1|0;E=f[g>>2]|0}while((x|0)<(E|0));N=E}else N=L}else N=p}else{O=y;v=51}}else{O=W(r,e)|0;v=51}if((v|0)==51){v=0;x=c+((W(r+-1|0,e)|0)<<2)|0;w=b+(O<<2)|0;z=c+(O<<2)|0;if((p|0)>0){E=0;do{C=f[x+(E<<2)>>2]|0;F=f[s>>2]|0;do if((C|0)<=(F|0)){B=f[o>>2]|0;D=f[n>>2]|0;A=D+(E<<2)|0;if((C|0)<(B|0)){f[A>>2]=B;P=D;break}else{f[A>>2]=C;P=D;break}}else{D=f[n>>2]|0;f[D+(E<<2)>>2]=F;P=D}while(0);E=E+1|0;Q=f[g>>2]|0}while((E|0)<(Q|0));if((Q|0)>0){E=0;do{x=(f[w+(E<<2)>>2]|0)+(f[P+(E<<2)>>2]|0)|0;y=z+(E<<2)|0;f[y>>2]=x;if((x|0)<=(f[s>>2]|0)){if((x|0)<(f[o>>2]|0)){R=(f[q>>2]|0)+x|0;v=65}}else{R=x-(f[q>>2]|0)|0;v=65}if((v|0)==65){v=0;f[y>>2]=R}E=E+1|0;y=f[g>>2]|0}while((E|0)<(y|0));N=y}else N=Q}else N=p}r=r+1|0;if((r|0)>=(m|0)){v=23;break}else p=N}if((v|0)==23){Io(i);Io(d);return 1}else if((v|0)==25)$n(t);return 0}function Qb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0;g=a+8|0;f[g>>2]=e;d=a+32|0;h=a+36|0;i=f[d>>2]|0;j=(f[h>>2]|0)-i>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[h>>2]=i+(e<<2)}else Eg(d,e-j|0);j=e>>>0>1073741823?-1:e<<2;d=Ho(j)|0;oh(d|0,0,j|0)|0;i=Ho(j)|0;oh(i|0,0,j|0)|0;j=f[g>>2]|0;if((j|0)>0){h=a+16|0;k=a+32|0;l=a+12|0;m=0;do{n=f[d+(m<<2)>>2]|0;o=f[h>>2]|0;do if((n|0)<=(o|0)){p=f[l>>2]|0;q=f[k>>2]|0;r=q+(m<<2)|0;if((n|0)<(p|0)){f[r>>2]=p;s=q;break}else{f[r>>2]=n;s=q;break}}else{q=f[k>>2]|0;f[q+(m<<2)>>2]=o;s=q}while(0);m=m+1|0;t=f[g>>2]|0}while((m|0)<(t|0));if((t|0)>0){m=a+20|0;k=0;do{o=(f[b+(k<<2)>>2]|0)+(f[s+(k<<2)>>2]|0)|0;n=c+(k<<2)|0;f[n>>2]=o;if((o|0)<=(f[h>>2]|0)){if((o|0)<(f[l>>2]|0)){u=(f[m>>2]|0)+o|0;v=19}}else{u=o-(f[m>>2]|0)|0;v=19}if((v|0)==19){v=0;f[n>>2]=u}k=k+1|0;n=f[g>>2]|0}while((k|0)<(n|0));w=n}else w=t}else w=j;j=f[a+48>>2]|0;t=f[a+56>>2]|0;k=f[t>>2]|0;u=(f[t+4>>2]|0)-k|0;m=u>>2;if((u|0)<=4){Io(i);Io(d);return 1}u=f[a+52>>2]|0;l=k;k=(e|0)>0;h=j+64|0;s=j+28|0;n=a+16|0;o=a+32|0;q=a+12|0;r=a+20|0;a=e<<2;p=1;x=w;while(1){if(m>>>0<=p>>>0){v=25;break}w=f[l+(p<<2)>>2]|0;if(k)oh(d|0,0,a|0)|0;if((w|0)!=-1){y=f[j>>2]|0;z=0;A=w;while(1){if(((f[y+(A>>>5<<2)>>2]&1<<(A&31)|0)==0?(B=f[(f[(f[h>>2]|0)+12>>2]|0)+(A<<2)>>2]|0,(B|0)!=-1):0)?(C=f[s>>2]|0,D=f[u>>2]|0,E=f[D+(f[C+(B<<2)>>2]<<2)>>2]|0,F=B+1|0,G=f[D+(f[C+((((F>>>0)%3|0|0)==0?B+-2|0:F)<<2)>>2]<<2)>>2]|0,F=f[D+(f[C+((((B>>>0)%3|0|0)==0?2:-1)+B<<2)>>2]<<2)>>2]|0,(E|0)<(p|0)&(G|0)<(p|0)&(F|0)<(p|0)):0){B=W(E,e)|0;E=W(G,e)|0;G=W(F,e)|0;if(k){F=0;do{f[i+(F<<2)>>2]=(f[c+(F+G<<2)>>2]|0)+(f[c+(F+E<<2)>>2]|0)-(f[c+(F+B<<2)>>2]|0);F=F+1|0}while((F|0)!=(e|0));if(k){F=0;do{B=d+(F<<2)|0;f[B>>2]=(f[B>>2]|0)+(f[i+(F<<2)>>2]|0);F=F+1|0}while((F|0)!=(e|0))}}H=z+1|0}else H=z;F=(((A>>>0)%3|0|0)==0?2:-1)+A|0;do if(((F|0)!=-1?(f[y+(F>>>5<<2)>>2]&1<<(F&31)|0)==0:0)?(B=f[(f[(f[h>>2]|0)+12>>2]|0)+(F<<2)>>2]|0,(B|0)!=-1):0)if(!((B>>>0)%3|0)){I=B+2|0;break}else{I=B+-1|0;break}else I=-1;while(0);A=(I|0)==(w|0)?-1:I;if((A|0)==-1)break;else z=H}z=W(p,e)|0;if(H){if(k){A=0;do{w=d+(A<<2)|0;f[w>>2]=(f[w>>2]|0)/(H|0)|0;A=A+1|0}while((A|0)!=(e|0))}A=b+(z<<2)|0;w=c+(z<<2)|0;if((x|0)>0){y=0;do{F=f[d+(y<<2)>>2]|0;B=f[n>>2]|0;do if((F|0)<=(B|0)){E=f[q>>2]|0;G=f[o>>2]|0;C=G+(y<<2)|0;if((F|0)<(E|0)){f[C>>2]=E;J=G;break}else{f[C>>2]=F;J=G;break}}else{G=f[o>>2]|0;f[G+(y<<2)>>2]=B;J=G}while(0);y=y+1|0;K=f[g>>2]|0}while((y|0)<(K|0));if((K|0)>0){y=0;do{B=(f[A+(y<<2)>>2]|0)+(f[J+(y<<2)>>2]|0)|0;F=w+(y<<2)|0;f[F>>2]=B;if((B|0)<=(f[n>>2]|0)){if((B|0)<(f[q>>2]|0)){L=(f[r>>2]|0)+B|0;v=81}}else{L=B-(f[r>>2]|0)|0;v=81}if((v|0)==81){v=0;f[F>>2]=L}y=y+1|0;F=f[g>>2]|0}while((y|0)<(F|0));M=F}else M=K}else M=x}else{N=z;v=49}}else{N=W(p,e)|0;v=49}if((v|0)==49){v=0;y=c+((W(p+-1|0,e)|0)<<2)|0;w=b+(N<<2)|0;A=c+(N<<2)|0;if((x|0)>0){F=0;do{B=f[y+(F<<2)>>2]|0;G=f[n>>2]|0;do if((B|0)<=(G|0)){C=f[q>>2]|0;E=f[o>>2]|0;D=E+(F<<2)|0;if((B|0)<(C|0)){f[D>>2]=C;O=E;break}else{f[D>>2]=B;O=E;break}}else{E=f[o>>2]|0;f[E+(F<<2)>>2]=G;O=E}while(0);F=F+1|0;P=f[g>>2]|0}while((F|0)<(P|0));if((P|0)>0){F=0;do{y=(f[w+(F<<2)>>2]|0)+(f[O+(F<<2)>>2]|0)|0;z=A+(F<<2)|0;f[z>>2]=y;if((y|0)<=(f[n>>2]|0)){if((y|0)<(f[q>>2]|0)){Q=(f[r>>2]|0)+y|0;v=63}}else{Q=y-(f[r>>2]|0)|0;v=63}if((v|0)==63){v=0;f[z>>2]=Q}F=F+1|0;z=f[g>>2]|0}while((F|0)<(z|0));M=z}else M=P}else M=x}p=p+1|0;if((p|0)>=(m|0)){v=23;break}else x=M}if((v|0)==23){Io(i);Io(d);return 1}else if((v|0)==25)$n(t);return 0}function Rb(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0;if(!a)return;b=a+-8|0;c=f[4076]|0;d=f[a+-4>>2]|0;a=d&-8;e=b+a|0;do if(!(d&1)){g=f[b>>2]|0;if(!(d&3))return;h=b+(0-g)|0;i=g+a|0;if(h>>>0<c>>>0)return;if((f[4077]|0)==(h|0)){j=e+4|0;k=f[j>>2]|0;if((k&3|0)!=3){l=h;m=i;n=h;break}f[4074]=i;f[j>>2]=k&-2;f[h+4>>2]=i|1;f[h+i>>2]=i;return}k=g>>>3;if(g>>>0<256){g=f[h+8>>2]|0;j=f[h+12>>2]|0;if((j|0)==(g|0)){f[4072]=f[4072]&~(1<<k);l=h;m=i;n=h;break}else{f[g+12>>2]=j;f[j+8>>2]=g;l=h;m=i;n=h;break}}g=f[h+24>>2]|0;j=f[h+12>>2]|0;do if((j|0)==(h|0)){k=h+16|0;o=k+4|0;p=f[o>>2]|0;if(!p){q=f[k>>2]|0;if(!q){r=0;break}else{s=q;t=k}}else{s=p;t=o}o=s;p=t;while(1){k=o+20|0;q=f[k>>2]|0;if(!q){u=o+16|0;v=f[u>>2]|0;if(!v)break;else{w=v;x=u}}else{w=q;x=k}o=w;p=x}f[p>>2]=0;r=o}else{k=f[h+8>>2]|0;f[k+12>>2]=j;f[j+8>>2]=k;r=j}while(0);if(g){j=f[h+28>>2]|0;k=16592+(j<<2)|0;if((f[k>>2]|0)==(h|0)){f[k>>2]=r;if(!r){f[4073]=f[4073]&~(1<<j);l=h;m=i;n=h;break}}else{j=g+16|0;f[((f[j>>2]|0)==(h|0)?j:g+20|0)>>2]=r;if(!r){l=h;m=i;n=h;break}}f[r+24>>2]=g;j=h+16|0;k=f[j>>2]|0;if(k|0){f[r+16>>2]=k;f[k+24>>2]=r}k=f[j+4>>2]|0;if(k){f[r+20>>2]=k;f[k+24>>2]=r;l=h;m=i;n=h}else{l=h;m=i;n=h}}else{l=h;m=i;n=h}}else{l=b;m=a;n=b}while(0);if(n>>>0>=e>>>0)return;b=e+4|0;a=f[b>>2]|0;if(!(a&1))return;if(!(a&2)){if((f[4078]|0)==(e|0)){r=(f[4075]|0)+m|0;f[4075]=r;f[4078]=l;f[l+4>>2]=r|1;if((l|0)!=(f[4077]|0))return;f[4077]=0;f[4074]=0;return}if((f[4077]|0)==(e|0)){r=(f[4074]|0)+m|0;f[4074]=r;f[4077]=n;f[l+4>>2]=r|1;f[n+r>>2]=r;return}r=(a&-8)+m|0;x=a>>>3;do if(a>>>0<256){w=f[e+8>>2]|0;t=f[e+12>>2]|0;if((t|0)==(w|0)){f[4072]=f[4072]&~(1<<x);break}else{f[w+12>>2]=t;f[t+8>>2]=w;break}}else{w=f[e+24>>2]|0;t=f[e+12>>2]|0;do if((t|0)==(e|0)){s=e+16|0;c=s+4|0;d=f[c>>2]|0;if(!d){k=f[s>>2]|0;if(!k){y=0;break}else{z=k;A=s}}else{z=d;A=c}c=z;d=A;while(1){s=c+20|0;k=f[s>>2]|0;if(!k){j=c+16|0;q=f[j>>2]|0;if(!q)break;else{B=q;C=j}}else{B=k;C=s}c=B;d=C}f[d>>2]=0;y=c}else{o=f[e+8>>2]|0;f[o+12>>2]=t;f[t+8>>2]=o;y=t}while(0);if(w|0){t=f[e+28>>2]|0;h=16592+(t<<2)|0;if((f[h>>2]|0)==(e|0)){f[h>>2]=y;if(!y){f[4073]=f[4073]&~(1<<t);break}}else{t=w+16|0;f[((f[t>>2]|0)==(e|0)?t:w+20|0)>>2]=y;if(!y)break}f[y+24>>2]=w;t=e+16|0;h=f[t>>2]|0;if(h|0){f[y+16>>2]=h;f[h+24>>2]=y}h=f[t+4>>2]|0;if(h|0){f[y+20>>2]=h;f[h+24>>2]=y}}}while(0);f[l+4>>2]=r|1;f[n+r>>2]=r;if((l|0)==(f[4077]|0)){f[4074]=r;return}else D=r}else{f[b>>2]=a&-2;f[l+4>>2]=m|1;f[n+m>>2]=m;D=m}m=D>>>3;if(D>>>0<256){n=16328+(m<<1<<2)|0;a=f[4072]|0;b=1<<m;if(!(a&b)){f[4072]=a|b;E=n;F=n+8|0}else{b=n+8|0;E=f[b>>2]|0;F=b}f[F>>2]=l;f[E+12>>2]=l;f[l+8>>2]=E;f[l+12>>2]=n;return}n=D>>>8;if(n)if(D>>>0>16777215)G=31;else{E=(n+1048320|0)>>>16&8;F=n<<E;n=(F+520192|0)>>>16&4;b=F<<n;F=(b+245760|0)>>>16&2;a=14-(n|E|F)+(b<<F>>>15)|0;G=D>>>(a+7|0)&1|a<<1}else G=0;a=16592+(G<<2)|0;f[l+28>>2]=G;f[l+20>>2]=0;f[l+16>>2]=0;F=f[4073]|0;b=1<<G;a:do if(!(F&b)){f[4073]=F|b;f[a>>2]=l;f[l+24>>2]=a;f[l+12>>2]=l;f[l+8>>2]=l}else{E=f[a>>2]|0;b:do if((f[E+4>>2]&-8|0)==(D|0))H=E;else{n=D<<((G|0)==31?0:25-(G>>>1)|0);m=E;while(1){I=m+16+(n>>>31<<2)|0;r=f[I>>2]|0;if(!r)break;if((f[r+4>>2]&-8|0)==(D|0)){H=r;break b}else{n=n<<1;m=r}}f[I>>2]=l;f[l+24>>2]=m;f[l+12>>2]=l;f[l+8>>2]=l;break a}while(0);E=H+8|0;w=f[E>>2]|0;f[w+12>>2]=l;f[E>>2]=l;f[l+8>>2]=w;f[l+12>>2]=H;f[l+24>>2]=0}while(0);l=(f[4080]|0)+-1|0;f[4080]=l;if(l|0)return;l=16744;while(1){H=f[l>>2]|0;if(!H)break;else l=H+8|0}f[4080]=-1;return}function Sb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+176|0;e=d+136|0;g=d+32|0;i=d;j=d+104|0;k=d+100|0;l=a+4|0;m=f[l>>2]|0;n=f[m+32>>2]|0;o=n+8|0;p=f[o>>2]|0;q=f[o+4>>2]|0;o=n+16|0;r=o;s=f[r>>2]|0;t=f[r+4>>2]|0;if(!((q|0)>(t|0)|(q|0)==(t|0)&p>>>0>s>>>0)){v=0;u=d;return v|0}r=f[n>>2]|0;n=b[r+s>>0]|0;w=vl(s|0,t|0,1,0)|0;x=H;y=o;f[y>>2]=w;f[y+4>>2]=x;if(!((q|0)>(x|0)|(q|0)==(x|0)&p>>>0>w>>>0)){v=0;u=d;return v|0}x=b[r+w>>0]|0;w=vl(s|0,t|0,2,0)|0;y=H;z=o;f[z>>2]=w;f[z+4>>2]=y;if(n<<24>>24>-1){z=n<<24>>24;A=f[a+216>>2]|0;if((((f[a+220>>2]|0)-A|0)/144|0)>>>0<=z>>>0){v=0;u=d;return v|0}B=A+(z*144|0)|0;if((f[B>>2]|0)>-1){v=0;u=d;return v|0}else C=B}else{B=a+212|0;if((f[B>>2]|0)>-1){v=0;u=d;return v|0}else C=B}f[C>>2]=c;do if((((h[m+36>>0]|0)<<8|(h[m+37>>0]|0))&65535)>257)if((q|0)>(y|0)|(q|0)==(y|0)&p>>>0>w>>>0){C=b[r+w>>0]|0;B=vl(s|0,t|0,3,0)|0;z=o;f[z>>2]=B;f[z+4>>2]=H;D=C&255;break}else{v=0;u=d;return v|0}else D=0;while(0);o=f[m+44>>2]|0;if(!(x<<24>>24)){if(n<<24>>24<0)E=a+184|0;else{x=n<<24>>24;m=f[a+216>>2]|0;b[m+(x*144|0)+100>>0]=0;E=m+(x*144|0)+104|0}switch((D&255)<<24>>24){case 0:{Qc(e,a,E);F=f[e>>2]|0;break}case 1:{xd(e,a,E);F=f[e>>2]|0;break}default:{v=0;u=d;return v|0}}if(!F){v=0;u=d;return v|0}else G=F}else{if(n<<24>>24<0|(D|0)!=0){v=0;u=d;return v|0}D=wk(88)|0;F=n<<24>>24;n=f[a+216>>2]|0;a=n+(F*144|0)+104|0;f[D+4>>2]=0;f[D>>2]=3292;E=D+12|0;f[E>>2]=3316;x=D+64|0;f[x>>2]=0;f[D+68>>2]=0;f[D+72>>2]=0;m=D+16|0;t=m+44|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(t|0));f[D+76>>2]=o;f[D+80>>2]=a;f[D+84>>2]=0;s=g+4|0;f[s>>2]=3316;w=g+56|0;f[w>>2]=0;r=g+60|0;f[r>>2]=0;f[g+64>>2]=0;m=g+8|0;t=m+44|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(t|0));m=n+(F*144|0)+4|0;f[i>>2]=3316;t=i+4|0;p=t+4|0;f[p>>2]=0;f[p+4>>2]=0;f[p+8>>2]=0;f[p+12>>2]=0;f[p+16>>2]=0;f[p+20>>2]=0;f[t>>2]=m;t=f[n+(F*144|0)+68>>2]|0;F=((f[t+4>>2]|0)-(f[t>>2]|0)>>2>>>0)/3|0;b[e>>0]=0;Gf(i+8|0,F,e);Pa[f[(f[i>>2]|0)+8>>2]&127](i);je(j,i);je(e,j);f[g>>2]=f[e+4>>2];F=g+4|0;He(F,e)|0;f[e>>2]=3316;t=f[e+20>>2]|0;if(t|0)Ko(t);t=f[e+8>>2]|0;if(t|0)Ko(t);f[g+36>>2]=m;f[g+40>>2]=a;f[g+44>>2]=o;f[g+48>>2]=D;f[j>>2]=3316;o=f[j+20>>2]|0;if(o|0)Ko(o);o=f[j+8>>2]|0;if(o|0)Ko(o);f[D+8>>2]=f[g>>2];He(E,F)|0;F=D+44|0;E=g+36|0;f[F>>2]=f[E>>2];f[F+4>>2]=f[E+4>>2];f[F+8>>2]=f[E+8>>2];f[F+12>>2]=f[E+12>>2];b[F+16>>0]=b[E+16>>0]|0;df(x,f[w>>2]|0,f[r>>2]|0);f[i>>2]=3316;x=f[i+20>>2]|0;if(x|0)Ko(x);x=f[i+8>>2]|0;if(x|0)Ko(x);x=f[w>>2]|0;if(x|0){f[r>>2]=x;Ko(x)}f[s>>2]=3316;s=f[g+24>>2]|0;if(s|0)Ko(s);s=f[g+12>>2]|0;if(s|0)Ko(s);G=D}D=wk(64)|0;f[k>>2]=G;Zi(D,k);G=D;s=f[k>>2]|0;f[k>>2]=0;if(s|0)Pa[f[(f[s>>2]|0)+4>>2]&127](s);s=f[l>>2]|0;if((c|0)<0){Pa[f[(f[D>>2]|0)+4>>2]&127](D);v=0;u=d;return v|0}D=s+8|0;l=s+12|0;s=f[l>>2]|0;k=f[D>>2]|0;g=s-k>>2;do if((g|0)<=(c|0)){x=c+1|0;r=s;if(x>>>0>g>>>0){Se(D,x-g|0);break}if(x>>>0<g>>>0){w=k+(x<<2)|0;if((w|0)!=(r|0)){x=r;do{x=x+-4|0;r=f[x>>2]|0;f[x>>2]=0;if(r|0)Pa[f[(f[r>>2]|0)+4>>2]&127](r)}while((x|0)!=(w|0))}f[l>>2]=w}}while(0);l=(f[D>>2]|0)+(c<<2)|0;c=f[l>>2]|0;f[l>>2]=G;if(!c){v=1;u=d;return v|0}Pa[f[(f[c>>2]|0)+4>>2]&127](c);v=1;u=d;return v|0}function Tb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0;d=u;u=u+736|0;e=d+716|0;g=d;h=d+64|0;if((j[c+38>>1]|0)<515){i=1;u=d;return i|0}k=c+8|0;l=f[k+4>>2]|0;m=c+16|0;n=m;o=f[n>>2]|0;p=f[n+4>>2]|0;if(!((l|0)>(p|0)|((l|0)==(p|0)?(f[k>>2]|0)>>>0>o>>>0:0))){i=0;u=d;return i|0}k=b[(f[c>>2]|0)+o>>0]|0;l=vl(o|0,p|0,1,0)|0;p=m;f[p>>2]=l;f[p+4>>2]=H;p=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;l=f[(f[p>>2]|0)+80>>2]|0;p=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;f[e>>2]=0;m=e+4|0;f[m>>2]=0;o=e+8|0;f[o>>2]=0;do if(p|0)if(p>>>0>214748364)$n(e);else{n=p*20|0;q=wk(n)|0;f[e>>2]=q;f[o>>2]=q+(p*20|0);oh(q|0,0,n|0)|0;f[m>>2]=q+n;break}while(0);p=a+52|0;o=a+56|0;n=a+48|0;q=a+64|0;r=a+68|0;s=a+60|0;t=0;v=0;a:while(1){if((v|0)>=(Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0)){w=35;break}x=La[f[(f[a>>2]|0)+20>>2]&127](a,v)|0;y=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;z=f[(f[(f[y>>2]|0)+8>>2]|0)+(x<<2)>>2]|0;Fh(z,l)|0;b[z+84>>0]=1;f[z+72>>2]=f[z+68>>2];switch(f[z+28>>2]|0){case 2:case 4:case 6:{A=z;break}case 1:case 3:case 5:{x=z+24|0;y=b[x>>0]|0;if(y<<24>>24>0){B=0;C=y;while(1){f[g>>2]=0;y=f[p>>2]|0;if(y>>>0<(f[o>>2]|0)>>>0){f[y>>2]=0;f[p>>2]=y+4;D=C}else{Ng(n,g);D=b[x>>0]|0}B=B+1|0;if((B|0)>=(D<<24>>24|0))break;else C=D}}A=z;break}case 9:{C=b[z+24>>0]|0;oj(g);B=f[z+56>>2]|0;x=W(Bj(6)|0,C<<24>>24)|0;Ih(g,B,0,C,6,0,x,((x|0)<0)<<31>>31,0,0);x=wk(96)|0;$i(x,g);f[h>>2]=x;b[x+84>>0]=1;f[x+72>>2]=f[x+68>>2];Fh(x,l)|0;x=f[q>>2]|0;if(x>>>0<(f[r>>2]|0)>>>0){C=f[h>>2]|0;f[h>>2]=0;f[x>>2]=C;C=x+4|0;f[q>>2]=C;E=C}else{Rd(s,h);E=f[q>>2]|0}C=f[E+-4>>2]|0;x=f[h>>2]|0;f[h>>2]=0;if(x|0){B=x+88|0;y=f[B>>2]|0;f[B>>2]=0;if(y|0){B=f[y+8>>2]|0;if(B|0){f[y+12>>2]=B;Ko(B)}Ko(y)}y=f[x+68>>2]|0;if(y|0){f[x+72>>2]=y;Ko(y)}y=x+64|0;B=f[y>>2]|0;f[y>>2]=0;if(B|0){y=f[B>>2]|0;if(y|0){f[B+4>>2]=y;Ko(y)}Ko(B)}Ko(x)}A=C;break}default:{F=0;break a}}C=A;x=f[C+28>>2]|0;B=Bj(x)|0;y=b[C+24>>0]|0;C=f[e>>2]|0;f[C+(v*20|0)>>2]=A;f[C+(v*20|0)+4>>2]=t;f[C+(v*20|0)+8>>2]=x;f[C+(v*20|0)+12>>2]=(B|0)>0?B:0;f[C+(v*20|0)+16>>2]=y;t=t+y|0;v=v+1|0}if((w|0)==35){$e(g,e);switch(k<<24>>24){case 0:{ve(h,t);k=Xd(h,c,g)|0;Cf(h);if(k)w=43;else G=0;break}case 1:{ve(h,t);k=Wd(h,c,g)|0;Cf(h);if(k)w=43;else G=0;break}case 2:{we(h,t);k=Zd(h,c,g)|0;Lf(h);if(k)w=43;else G=0;break}case 3:{we(h,t);k=Yd(h,c,g)|0;Lf(h);if(k)w=43;else G=0;break}case 4:{re(h,t);k=Ud(h,c,g)|0;jg(h);if(k)w=43;else G=0;break}case 5:{re(h,t);k=Td(h,c,g)|0;jg(h);if(k)w=43;else G=0;break}case 6:{re(h,t);t=Sd(h,c,g)|0;jg(h);if(t)w=43;else G=0;break}default:G=0}if((w|0)==43)G=1;w=f[g+16>>2]|0;if(w|0){f[g+20>>2]=w;Ko(w)}w=f[g>>2]|0;if(w|0){f[g+4>>2]=w;Ko(w)}F=G}G=f[e>>2]|0;if(G|0){f[m>>2]=G;Ko(G)}i=F;u=d;return i|0}function Ub(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0;c=u;u=u+48|0;d=c+24|0;e=c+12|0;g=c;if(!b){h=0;u=c;return h|0}i=a+12|0;j=a+4|0;k=(f[j>>2]|0)-(f[a>>2]|0)>>2;l=a+16|0;m=f[i>>2]|0;n=(f[l>>2]|0)-m>>2;if(k>>>0<=n>>>0)if(k>>>0<n>>>0){f[l>>2]=m+(k<<2);o=k}else o=k;else{Of(i,k-n|0,3732);o=(f[j>>2]|0)-(f[a>>2]|0)>>2}f[d>>2]=0;n=d+4|0;f[n>>2]=0;f[d+8>>2]=0;Wh(d,o);o=f[j>>2]|0;k=f[a>>2]|0;m=k;if((o|0)==(k|0)){p=0;q=0;r=m;s=m;t=m;v=m;w=m;x=o;y=k}else{l=f[d>>2]|0;z=l;A=z;B=0;C=m;D=m;E=m;F=m;G=m;H=o;o=z;z=m;m=l;l=k;while(1){k=f[z+(B<<2)>>2]|0;I=(f[n>>2]|0)-m>>2;if(k>>>0<I>>>0){J=l;K=A;L=C;M=D;N=E;O=F;P=G;Q=o;R=l;S=H}else{T=k+1|0;f[e>>2]=0;if(T>>>0<=I>>>0)if(T>>>0<I>>>0){f[n>>2]=m+(T<<2);U=A;V=H;W=l}else{U=A;V=H;W=l}else{Of(d,T-I|0,e);U=f[d>>2]|0;V=f[j>>2]|0;W=f[a>>2]|0}I=W;J=I;K=U;L=I;M=I;N=I;O=I;P=I;Q=U;R=W;S=V}I=Q+(k<<2)|0;f[I>>2]=(f[I>>2]|0)+1;B=B+1|0;I=S-R|0;k=I>>2;if(B>>>0>=k>>>0){p=k;q=I;r=L;s=M;t=N;v=O;w=P;x=S;y=R;break}else{A=K;C=L;D=M;E=N;F=O;G=P;H=S;o=Q;z=J;m=Q;l=R}}}f[e>>2]=0;R=e+4|0;f[R>>2]=0;l=e+8|0;f[l>>2]=0;do if(q)if(p>>>0>536870911)$n(e);else{Q=wk(q<<1)|0;f[e>>2]=Q;f[l>>2]=Q+(p<<3);m=p<<3;oh(Q|0,-1,m|0)|0;f[R>>2]=Q+m;X=Q;Y=Q;break}else{X=0;Y=0}while(0);p=f[d>>2]|0;l=(f[n>>2]|0)-p|0;q=l>>2;f[g>>2]=0;Q=g+4|0;f[Q>>2]=0;m=g+8|0;f[m>>2]=0;J=p;if(!l){Z=0;_=0}else{if(q>>>0>1073741823)$n(g);p=wk(l)|0;f[g>>2]=p;g=p+(q<<2)|0;f[m>>2]=g;oh(p|0,0,l|0)|0;f[Q>>2]=g;g=0;l=0;while(1){f[p+(l<<2)>>2]=g;m=l+1|0;if(m>>>0<q>>>0){g=(f[J+(l<<2)>>2]|0)+g|0;l=m}else{Z=p;_=p;break}}}if((x|0)!=(y|0)){p=a+40|0;a=x-y>>2;x=y;y=X;l=0;g=v;v=t;t=s;s=r;r=w;while(1){w=f[r+(l<<2)>>2]|0;m=l+1|0;z=((m>>>0)%3|0|0)==0?l+-2|0:m;if((z|0)==-1)$=-1;else $=f[g+(z<<2)>>2]|0;z=((l>>>0)%3|0|0)==0;o=(z?2:-1)+l|0;if((o|0)==-1)aa=-1;else aa=f[v+(o<<2)>>2]|0;if(z?(z=f[t+(l<<2)>>2]|0,($|0)==(aa|0)|((z|0)==($|0)|(z|0)==(aa|0))):0){f[p>>2]=(f[p>>2]|0)+1;ba=y;ca=l+3|0}else da=41;a:do if((da|0)==41){da=0;z=f[J+(aa<<2)>>2]|0;b:do if((z|0)>0){o=0;S=f[Z+(aa<<2)>>2]|0;while(1){ea=y+(S<<3)|0;H=f[ea>>2]|0;if((H|0)==-1)break b;if((H|0)==($|0)){fa=f[y+(S<<3)+4>>2]|0;if((fa|0)==-1)ga=-1;else ga=f[s+(fa<<2)>>2]|0;if((w|0)!=(ga|0))break}H=o+1|0;if((H|0)<(z|0)){o=H;S=S+1|0}else break b}H=o+1|0;c:do if((H|0)<(z|0)){P=H;G=S;while(1){O=G;G=G+1|0;F=y+(G<<3)|0;N=f[F>>2]|0;E=y+(O<<3)|0;f[E>>2]=N;f[y+(O<<3)+4>>2]=f[y+(G<<3)+4>>2];if((N|0)==-1){ha=E;break c}P=P+1|0;if((P|0)>=(z|0)){ha=F;break}}}else ha=ea;while(0);f[ha>>2]=-1;if((fa|0)!=-1){S=f[i>>2]|0;f[S+(l<<2)>>2]=fa;f[S+(fa<<2)>>2]=l;ba=y;ca=m;break a}}while(0);z=f[J+($<<2)>>2]|0;if((z|0)>0){S=0;H=f[Z+($<<2)>>2]|0;while(1){ia=X+(H<<3)|0;if((f[ia>>2]|0)==-1)break;S=S+1|0;if((S|0)>=(z|0)){ba=X;ca=m;break a}else H=H+1|0}f[ia>>2]=aa;f[X+(H<<3)+4>>2]=l;ba=X;ca=m}else{ba=y;ca=m}}while(0);if(ca>>>0<a>>>0){y=ba;l=ca;g=x;v=x;t=x;s=x;r=x}else break}}f[b>>2]=q;if(!Z){ja=X;ka=Y}else{f[Q>>2]=Z;Ko(_);_=f[e>>2]|0;ja=_;ka=_}if(ja|0){f[R>>2]=ja;Ko(ka)}ka=f[d>>2]|0;if(ka|0){f[n>>2]=ka;Ko(ka)}h=1;u=c;return h|0}function Vb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0;d=u;u=u+16|0;e=d;g=a+144|0;i=f[g>>2]|0;k=Ka[f[(f[i>>2]|0)+32>>2]&127](i)|0;do if((((h[k+36>>0]|0)<<8|(h[k+37>>0]|0))&65535)<514){i=a+40|0;l=i;m=a;n=l+40|0;do{f[l>>2]=f[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));if(vf(i,1,e)|0){l=a;m=i;n=l+40|0;do{f[l>>2]=f[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));i=e;o=f[i>>2]|0;p=f[i+4>>2]|0;i=a+8|0;q=a+16|0;r=q;s=f[r>>2]|0;t=f[r+4>>2]|0;r=wl(f[i>>2]|0,f[i+4>>2]|0,s|0,t|0)|0;i=H;if(!(p>>>0>i>>>0|(p|0)==(i|0)&o>>>0>r>>>0)){r=vl(s|0,t|0,o|0,p|0)|0;p=q;f[p>>2]=r;f[p+4>>2]=H;break}}v=0;u=d;return v|0}while(0);do if((j[a+38>>1]|0)>=514){if(!(rd(a+80|0,a)|0)){v=0;u=d;return v|0}}else{k=a+96|0;l=k;m=a;n=l+40|0;do{f[l>>2]=f[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));if(vf(k,1,e)|0){l=a;m=k;n=l+40|0;do{f[l>>2]=f[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));k=e;p=f[k>>2]|0;r=f[k+4>>2]|0;k=a+8|0;q=a+16|0;o=q;t=f[o>>2]|0;s=f[o+4>>2]|0;o=wl(f[k>>2]|0,f[k+4>>2]|0,t|0,s|0)|0;k=H;if(!(r>>>0>k>>>0|(r|0)==(k|0)&p>>>0>o>>>0)){o=vl(t|0,s|0,p|0,r|0)|0;r=q;f[r>>2]=o;f[r+4>>2]=H;break}}v=0;u=d;return v|0}while(0);if(!(Jg(a)|0)){v=0;u=d;return v|0}l=c;m=a;n=l+40|0;do{f[l>>2]=f[m>>2];l=l+4|0;m=m+4|0}while((l|0)<(n|0));m=f[g>>2]|0;l=Ka[f[(f[m>>2]|0)+32>>2]&127](m)|0;do if((((h[l+36>>0]|0)<<8|(h[l+37>>0]|0))&65535)<514){m=f[g>>2]|0;n=(Ka[f[(f[m>>2]|0)+32>>2]&127](m)|0)+36|0;if(((h[n>>0]|0)<<8&65535)<512){n=c+8|0;m=f[n>>2]|0;r=f[n+4>>2]|0;n=c+16|0;o=n;q=f[o>>2]|0;p=vl(q|0,f[o+4>>2]|0,4,0)|0;o=H;if(!((r|0)<(o|0)|(r|0)==(o|0)&m>>>0<p>>>0)){m=(f[c>>2]|0)+q|0;q=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;f[e>>2]=q;m=n;f[m>>2]=p;f[m+4>>2]=o;w=q;x=19}}else if(zh(e,c)|0){w=f[e>>2]|0;x=19}if((((x|0)==19?(q=f[a+152>>2]|0,w>>>0<q>>>0):0)?(o=c+8|0,m=f[o+4>>2]|0,p=c+16|0,n=p,r=f[n>>2]|0,s=f[n+4>>2]|0,(m|0)>(s|0)|((m|0)==(s|0)?(f[o>>2]|0)>>>0>r>>>0:0)):0)?(o=b[(f[c>>2]|0)+r>>0]|0,m=vl(r|0,s|0,1,0)|0,s=p,f[s>>2]=m,f[s+4>>2]=H,o<<24>>24==0):0){f[a+176>>2]=2;f[a+180>>2]=7;y=q;break}v=0;u=d;return v|0}else{f[a+176>>2]=2;f[a+180>>2]=7;y=f[a+152>>2]|0}while(0);if((y|0)<0){v=0;u=d;return v|0}w=a+156|0;f[e>>2]=0;x=a+160|0;g=f[w>>2]|0;l=(f[x>>2]|0)-g>>2;if(y>>>0<=l>>>0)if(y>>>0<l>>>0){f[x>>2]=g+(y<<2);z=2;A=7}else{z=2;A=7}else{Of(w,y-l|0,e);z=f[a+176>>2]|0;A=f[a+180>>2]|0}l=A-z+1|0;z=a+184|0;A=a+188|0;y=f[A>>2]|0;w=f[z>>2]|0;g=(y-w|0)/12|0;x=w;w=y;if(l>>>0<=g>>>0)if(l>>>0<g>>>0){q=x+(l*12|0)|0;if((q|0)!=(w|0)){x=w;do{w=x;x=x+-12|0;o=f[x>>2]|0;if(o|0){f[w+-8>>2]=o;Ko(o)}}while((x|0)!=(q|0))}f[A>>2]=q;B=q}else B=y;else{Ie(z,l-g|0);B=f[A>>2]|0}g=a+196|0;l=f[z>>2]|0;y=(B-l|0)/12|0;q=a+200|0;a=f[g>>2]|0;x=(f[q>>2]|0)-a>>2;if(y>>>0<=x>>>0)if(y>>>0<x>>>0){f[q>>2]=a+(y<<2);C=B;D=l}else{C=B;D=l}else{Eg(g,y-x|0);C=f[A>>2]|0;D=f[z>>2]|0}if((C|0)==(D|0)){v=1;u=d;return v|0}D=0;do{zh(e,c)|0;C=f[e>>2]|0;if(C|0){x=f[z>>2]|0;y=x+(D*12|0)|0;l=x+(D*12|0)+4|0;B=f[y>>2]|0;a=(f[l>>2]|0)-B>>2;if(C>>>0<=a>>>0)if(C>>>0<a>>>0){f[l>>2]=B+(C<<2);E=x;F=C}else{E=x;F=C}else{Eg(y,C-a|0);E=f[z>>2]|0;F=f[e>>2]|0}kh(F,1,c,f[E+(D*12|0)>>2]|0)|0;f[(f[g>>2]|0)+(D<<2)>>2]=f[e>>2]}D=D+1|0}while(D>>>0<(((f[A>>2]|0)-(f[z>>2]|0)|0)/12|0)>>>0);v=1;u=d;return v|0}function Wb(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=Ia,E=Ia,F=Ia,G=0,H=0,I=0,J=0;d=b[c+11>>0]|0;e=d<<24>>24<0;g=e?f[c>>2]|0:c;i=e?f[c+4>>2]|0:d&255;if(i>>>0>3){d=g;e=i;j=i;while(1){k=W(h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24,1540483477)|0;e=(W(k>>>24^k,1540483477)|0)^(W(e,1540483477)|0);j=j+-4|0;if(j>>>0<=3)break;else d=d+4|0}d=i+-4|0;j=d&-4;l=d-j|0;m=g+(j+4)|0;o=e}else{l=i;m=g;o=i}switch(l|0){case 3:{p=h[m+2>>0]<<16^o;q=7;break}case 2:{p=o;q=7;break}case 1:{r=o;q=8;break}default:s=o}if((q|0)==7){r=h[m+1>>0]<<8^p;q=8}if((q|0)==8)s=W(r^h[m>>0],1540483477)|0;m=W(s>>>13^s,1540483477)|0;s=m>>>15^m;m=a+4|0;r=f[m>>2]|0;p=(r|0)==0;a:do if(!p){o=r+-1|0;l=(o&r|0)==0;if(!l)if(s>>>0<r>>>0)t=s;else t=(s>>>0)%(r>>>0)|0;else t=s&o;e=f[(f[a>>2]|0)+(t<<2)>>2]|0;if((e|0)!=0?(j=f[e>>2]|0,(j|0)!=0):0){e=(i|0)==0;if(l){if(e){l=j;while(1){d=f[l+4>>2]|0;if(!((d|0)==(s|0)|(d&o|0)==(t|0))){u=t;break a}d=b[l+8+11>>0]|0;if(!((d<<24>>24<0?f[l+12>>2]|0:d&255)|0)){v=l;break}l=f[l>>2]|0;if(!l){u=t;break a}}w=v+20|0;return w|0}l=j;b:while(1){d=f[l+4>>2]|0;if(!((d|0)==(s|0)|(d&o|0)==(t|0))){u=t;break a}d=l+8|0;k=b[d+11>>0]|0;x=k<<24>>24<0;y=k&255;do if(((x?f[l+12>>2]|0:y)|0)==(i|0)){k=f[d>>2]|0;if(x)if(!(Fi(k,g,i)|0)){v=l;q=68;break b}else break;if((b[g>>0]|0)==(k&255)<<24>>24){k=d;z=y;A=g;do{z=z+-1|0;k=k+1|0;if(!z){v=l;q=68;break b}A=A+1|0}while((b[k>>0]|0)==(b[A>>0]|0))}}while(0);l=f[l>>2]|0;if(!l){u=t;break a}}if((q|0)==68){w=v+20|0;return w|0}}if(e){l=j;while(1){o=f[l+4>>2]|0;if((o|0)!=(s|0)){if(o>>>0<r>>>0)B=o;else B=(o>>>0)%(r>>>0)|0;if((B|0)!=(t|0)){u=t;break a}}o=b[l+8+11>>0]|0;if(!((o<<24>>24<0?f[l+12>>2]|0:o&255)|0)){v=l;break}l=f[l>>2]|0;if(!l){u=t;break a}}w=v+20|0;return w|0}l=j;c:while(1){e=f[l+4>>2]|0;if((e|0)!=(s|0)){if(e>>>0<r>>>0)C=e;else C=(e>>>0)%(r>>>0)|0;if((C|0)!=(t|0)){u=t;break a}}e=l+8|0;o=b[e+11>>0]|0;y=o<<24>>24<0;d=o&255;do if(((y?f[l+12>>2]|0:d)|0)==(i|0)){o=f[e>>2]|0;if(y)if(!(Fi(o,g,i)|0)){v=l;q=68;break c}else break;if((b[g>>0]|0)==(o&255)<<24>>24){o=e;x=d;A=g;do{x=x+-1|0;o=o+1|0;if(!x){v=l;q=68;break c}A=A+1|0}while((b[o>>0]|0)==(b[A>>0]|0))}}while(0);l=f[l>>2]|0;if(!l){u=t;break a}}if((q|0)==68){w=v+20|0;return w|0}}else u=t}else u=0;while(0);t=wk(24)|0;Yi(t+8|0,c);f[t+20>>2]=0;f[t+4>>2]=s;f[t>>2]=0;c=a+12|0;D=_(((f[c>>2]|0)+1|0)>>>0);E=_(r>>>0);F=_(n[a+16>>2]);do if(p|_(F*E)<D){g=r<<1|(r>>>0<3|(r+-1&r|0)!=0)&1;i=~~_(V(_(D/F)))>>>0;Xf(a,g>>>0<i>>>0?i:g);g=f[m>>2]|0;i=g+-1|0;if(!(i&g)){G=g;H=i&s;break}if(s>>>0<g>>>0){G=g;H=s}else{G=g;H=(s>>>0)%(g>>>0)|0}}else{G=r;H=u}while(0);u=(f[a>>2]|0)+(H<<2)|0;H=f[u>>2]|0;if(!H){r=a+8|0;f[t>>2]=f[r>>2];f[r>>2]=t;f[u>>2]=r;r=f[t>>2]|0;if(r|0){u=f[r+4>>2]|0;r=G+-1|0;if(r&G)if(u>>>0<G>>>0)I=u;else I=(u>>>0)%(G>>>0)|0;else I=u&r;J=(f[a>>2]|0)+(I<<2)|0;q=66}}else{f[t>>2]=f[H>>2];J=H;q=66}if((q|0)==66)f[J>>2]=t;f[c>>2]=(f[c>>2]|0)+1;v=t;w=v+20|0;return w|0}function Xb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0;g=a+8|0;f[g>>2]=e;d=a+32|0;h=a+36|0;i=f[d>>2]|0;j=(f[h>>2]|0)-i>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[h>>2]=i+(e<<2)}else Eg(d,e-j|0);j=f[a+48>>2]|0;d=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;h=Ho(i)|0;oh(h|0,0,i|0)|0;i=f[g>>2]|0;if((i|0)>0){k=a+16|0;l=a+32|0;m=a+12|0;n=0;do{o=f[h+(n<<2)>>2]|0;p=f[k>>2]|0;do if((o|0)<=(p|0)){q=f[m>>2]|0;r=f[l>>2]|0;s=r+(n<<2)|0;if((o|0)<(q|0)){f[s>>2]=q;t=r;break}else{f[s>>2]=o;t=r;break}}else{r=f[l>>2]|0;f[r+(n<<2)>>2]=p;t=r}while(0);n=n+1|0;u=f[g>>2]|0}while((n|0)<(u|0));if((u|0)>0){n=a+20|0;l=0;do{p=(f[b+(l<<2)>>2]|0)+(f[t+(l<<2)>>2]|0)|0;o=c+(l<<2)|0;f[o>>2]=p;if((p|0)<=(f[k>>2]|0)){if((p|0)<(f[m>>2]|0)){v=(f[n>>2]|0)+p|0;w=19}}else{v=p-(f[n>>2]|0)|0;w=19}if((w|0)==19){w=0;f[o>>2]=v}l=l+1|0;o=f[g>>2]|0}while((l|0)<(o|0));x=o}else x=u}else x=i;i=f[a+56>>2]|0;u=f[i>>2]|0;l=(f[i+4>>2]|0)-u|0;v=l>>2;if((l|0)<=4){Io(h);return 1}l=u;u=j+12|0;n=a+16|0;m=a+32|0;k=a+12|0;t=(e|0)>0;o=a+20|0;a=1;p=x;while(1){if(v>>>0<=a>>>0){w=25;break}x=f[l+(a<<2)>>2]|0;r=W(a,e)|0;if((x|0)!=-1?(s=f[(f[u>>2]|0)+(x<<2)>>2]|0,(s|0)!=-1):0){x=f[j>>2]|0;q=f[d>>2]|0;y=f[q+(f[x+(s<<2)>>2]<<2)>>2]|0;z=s+1|0;A=((z>>>0)%3|0|0)==0?s+-2|0:z;if((A|0)==-1)B=-1;else B=f[x+(A<<2)>>2]|0;A=f[q+(B<<2)>>2]|0;z=(((s>>>0)%3|0|0)==0?2:-1)+s|0;if((z|0)==-1)C=-1;else C=f[x+(z<<2)>>2]|0;z=f[q+(C<<2)>>2]|0;if((y|0)<(a|0)&(A|0)<(a|0)&(z|0)<(a|0)){q=W(y,e)|0;y=W(A,e)|0;A=W(z,e)|0;if(t){z=0;do{f[h+(z<<2)>>2]=(f[c+(z+A<<2)>>2]|0)+(f[c+(z+y<<2)>>2]|0)-(f[c+(z+q<<2)>>2]|0);z=z+1|0}while((z|0)!=(e|0))}z=b+(r<<2)|0;q=c+(r<<2)|0;if((p|0)>0){y=0;do{A=f[h+(y<<2)>>2]|0;x=f[n>>2]|0;do if((A|0)<=(x|0)){s=f[k>>2]|0;D=f[m>>2]|0;E=D+(y<<2)|0;if((A|0)<(s|0)){f[E>>2]=s;F=D;break}else{f[E>>2]=A;F=D;break}}else{D=f[m>>2]|0;f[D+(y<<2)>>2]=x;F=D}while(0);y=y+1|0;G=f[g>>2]|0}while((y|0)<(G|0));if((G|0)>0){y=0;do{x=(f[z+(y<<2)>>2]|0)+(f[F+(y<<2)>>2]|0)|0;A=q+(y<<2)|0;f[A>>2]=x;if((x|0)<=(f[n>>2]|0)){if((x|0)<(f[k>>2]|0)){H=(f[o>>2]|0)+x|0;w=66}}else{H=x-(f[o>>2]|0)|0;w=66}if((w|0)==66){w=0;f[A>>2]=H}y=y+1|0;A=f[g>>2]|0}while((y|0)<(A|0));I=A}else I=G}else I=p}else w=36}else w=36;if((w|0)==36){w=0;y=c+((W(a+-1|0,e)|0)<<2)|0;q=b+(r<<2)|0;z=c+(r<<2)|0;if((p|0)>0){A=0;do{x=f[y+(A<<2)>>2]|0;D=f[n>>2]|0;do if((x|0)<=(D|0)){E=f[k>>2]|0;s=f[m>>2]|0;J=s+(A<<2)|0;if((x|0)<(E|0)){f[J>>2]=E;K=s;break}else{f[J>>2]=x;K=s;break}}else{s=f[m>>2]|0;f[s+(A<<2)>>2]=D;K=s}while(0);A=A+1|0;L=f[g>>2]|0}while((A|0)<(L|0));if((L|0)>0){A=0;do{y=(f[q+(A<<2)>>2]|0)+(f[K+(A<<2)>>2]|0)|0;r=z+(A<<2)|0;f[r>>2]=y;if((y|0)<=(f[n>>2]|0)){if((y|0)<(f[k>>2]|0)){M=(f[o>>2]|0)+y|0;w=50}}else{M=y-(f[o>>2]|0)|0;w=50}if((w|0)==50){w=0;f[r>>2]=M}A=A+1|0;r=f[g>>2]|0}while((A|0)<(r|0));I=r}else I=L}else I=p}a=a+1|0;if((a|0)>=(v|0)){w=23;break}else p=I}if((w|0)==23){Io(h);return 1}else if((w|0)==25)$n(i);return 0}function Yb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;g=a+8|0;f[g>>2]=e;d=a+32|0;h=a+36|0;i=f[d>>2]|0;j=(f[h>>2]|0)-i>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[h>>2]=i+(e<<2)}else Eg(d,e-j|0);j=f[a+48>>2]|0;d=f[a+52>>2]|0;i=e>>>0>1073741823?-1:e<<2;h=Ho(i)|0;oh(h|0,0,i|0)|0;i=f[g>>2]|0;if((i|0)>0){k=a+16|0;l=a+32|0;m=a+12|0;n=0;do{o=f[h+(n<<2)>>2]|0;p=f[k>>2]|0;do if((o|0)<=(p|0)){q=f[m>>2]|0;r=f[l>>2]|0;s=r+(n<<2)|0;if((o|0)<(q|0)){f[s>>2]=q;t=r;break}else{f[s>>2]=o;t=r;break}}else{r=f[l>>2]|0;f[r+(n<<2)>>2]=p;t=r}while(0);n=n+1|0;u=f[g>>2]|0}while((n|0)<(u|0));if((u|0)>0){n=a+20|0;l=0;do{p=(f[b+(l<<2)>>2]|0)+(f[t+(l<<2)>>2]|0)|0;o=c+(l<<2)|0;f[o>>2]=p;if((p|0)<=(f[k>>2]|0)){if((p|0)<(f[m>>2]|0)){v=(f[n>>2]|0)+p|0;w=19}}else{v=p-(f[n>>2]|0)|0;w=19}if((w|0)==19){w=0;f[o>>2]=v}l=l+1|0;o=f[g>>2]|0}while((l|0)<(o|0));x=o}else x=u}else x=i;i=f[a+56>>2]|0;u=f[i>>2]|0;l=(f[i+4>>2]|0)-u|0;v=l>>2;if((l|0)<=4){Io(h);return 1}l=u;u=a+16|0;n=a+32|0;m=a+12|0;k=j+64|0;t=j+28|0;o=(e|0)>0;p=a+20|0;a=1;r=x;while(1){if(v>>>0<=a>>>0){w=25;break}x=f[l+(a<<2)>>2]|0;s=W(a,e)|0;if((((x|0)!=-1?(f[(f[j>>2]|0)+(x>>>5<<2)>>2]&1<<(x&31)|0)==0:0)?(q=f[(f[(f[k>>2]|0)+12>>2]|0)+(x<<2)>>2]|0,(q|0)!=-1):0)?(x=f[t>>2]|0,y=f[d>>2]|0,z=f[y+(f[x+(q<<2)>>2]<<2)>>2]|0,A=q+1|0,B=f[y+(f[x+((((A>>>0)%3|0|0)==0?q+-2|0:A)<<2)>>2]<<2)>>2]|0,A=f[y+(f[x+((((q>>>0)%3|0|0)==0?2:-1)+q<<2)>>2]<<2)>>2]|0,(z|0)<(a|0)&(B|0)<(a|0)&(A|0)<(a|0)):0){q=W(z,e)|0;z=W(B,e)|0;B=W(A,e)|0;if(o){A=0;do{f[h+(A<<2)>>2]=(f[c+(A+B<<2)>>2]|0)+(f[c+(A+z<<2)>>2]|0)-(f[c+(A+q<<2)>>2]|0);A=A+1|0}while((A|0)!=(e|0))}A=b+(s<<2)|0;q=c+(s<<2)|0;if((r|0)>0){z=0;do{B=f[h+(z<<2)>>2]|0;x=f[u>>2]|0;do if((B|0)<=(x|0)){y=f[m>>2]|0;C=f[n>>2]|0;D=C+(z<<2)|0;if((B|0)<(y|0)){f[D>>2]=y;E=C;break}else{f[D>>2]=B;E=C;break}}else{C=f[n>>2]|0;f[C+(z<<2)>>2]=x;E=C}while(0);z=z+1|0;F=f[g>>2]|0}while((z|0)<(F|0));if((F|0)>0){z=0;do{x=(f[A+(z<<2)>>2]|0)+(f[E+(z<<2)>>2]|0)|0;B=q+(z<<2)|0;f[B>>2]=x;if((x|0)<=(f[u>>2]|0)){if((x|0)<(f[m>>2]|0)){G=(f[p>>2]|0)+x|0;w=63}}else{G=x-(f[p>>2]|0)|0;w=63}if((w|0)==63){w=0;f[B>>2]=G}z=z+1|0;B=f[g>>2]|0}while((z|0)<(B|0));H=B}else H=F}else H=r}else{z=c+((W(a+-1|0,e)|0)<<2)|0;q=b+(s<<2)|0;A=c+(s<<2)|0;if((r|0)>0){B=0;do{x=f[z+(B<<2)>>2]|0;C=f[u>>2]|0;do if((x|0)<=(C|0)){D=f[m>>2]|0;y=f[n>>2]|0;I=y+(B<<2)|0;if((x|0)<(D|0)){f[I>>2]=D;J=y;break}else{f[I>>2]=x;J=y;break}}else{y=f[n>>2]|0;f[y+(B<<2)>>2]=C;J=y}while(0);B=B+1|0;K=f[g>>2]|0}while((B|0)<(K|0));if((K|0)>0){B=0;do{z=(f[q+(B<<2)>>2]|0)+(f[J+(B<<2)>>2]|0)|0;s=A+(B<<2)|0;f[s>>2]=z;if((z|0)<=(f[u>>2]|0)){if((z|0)<(f[m>>2]|0)){L=(f[p>>2]|0)+z|0;w=47}}else{L=z-(f[p>>2]|0)|0;w=47}if((w|0)==47){w=0;f[s>>2]=L}B=B+1|0;s=f[g>>2]|0}while((B|0)<(s|0));H=s}else H=K}else H=r}a=a+1|0;if((a|0)>=(v|0)){w=23;break}else r=H}if((w|0)==23){Io(h);return 1}else if((w|0)==25)$n(i);return 0}function Zb(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0;c=u;u=u+16|0;d=c;e=f[b>>2]|0;b=a+8|0;g=e+1|0;if((e|0)!=-1){h=((g>>>0)%3|0|0)==0?e+-2|0:g;g=e+(((e>>>0)%3|0|0)==0?2:-1)|0;i=a+216|0;j=a+220|0;k=a+368|0;if((f[(f[(f[b>>2]|0)+12>>2]|0)+(e<<2)>>2]|0)!=-1){l=f[j>>2]|0;m=f[i>>2]|0;n=m;if((l|0)==(m|0)){o=g;p=d;q=d;r=n;s=n;t=h;v=l;w=l;x=k;y=i;z=j;A=i}else{l=0;do{if(pi((f[k>>2]|0)+(l<<4)|0)|0){n=f[i>>2]|0;f[d>>2]=e;m=n+(l*144|0)+136|0;B=f[m>>2]|0;if(B>>>0<(f[n+(l*144|0)+140>>2]|0)>>>0){f[B>>2]=e;f[m>>2]=B+4}else Ng(n+(l*144|0)+132|0,d)}l=l+1|0;C=f[j>>2]|0;D=f[i>>2]|0}while(l>>>0<((C-D|0)/144|0)>>>0);l=D;o=g;p=d;q=d;r=l;s=l;t=h;v=C;w=D;x=k;y=i;z=j;A=i}}else{E=d;F=k;G=d;H=i;I=g;J=h;K=j;L=i;M=4}}else{i=a+216|0;E=d;F=a+368|0;G=d;H=i;I=-1;J=-1;K=a+220|0;L=i;M=4}if((M|0)==4){M=f[K>>2]|0;i=f[L>>2]|0;a=i;if((M|0)==(i|0)){o=I;p=E;q=G;r=a;s=a;t=J;v=M;w=M;x=F;y=H;z=K;A=L}else{j=0;h=a;g=a;k=M;M=a;a=i;while(1){f[d>>2]=e;i=M+(j*144|0)+136|0;D=f[i>>2]|0;if(D>>>0<(f[M+(j*144|0)+140>>2]|0)>>>0){f[D>>2]=e;f[i>>2]=D+4;N=a;O=h;P=g;Q=a;R=k}else{Ng(M+(j*144|0)+132|0,d);D=f[L>>2]|0;i=D;N=i;O=i;P=i;Q=D;R=f[K>>2]|0}j=j+1|0;if(j>>>0>=((R-Q|0)/144|0)>>>0){o=I;p=E;q=G;r=O;s=P;t=J;v=R;w=Q;x=F;y=H;z=K;A=L;break}else{h=O;g=P;k=R;M=N;a=Q}}}}if((t|0)!=-1?(f[(f[(f[b>>2]|0)+12>>2]|0)+(t<<2)>>2]|0)!=-1:0)if((v|0)==(w|0)){S=w;T=w;U=r}else{Q=0;do{if(pi((f[x>>2]|0)+(Q<<4)|0)|0){a=f[y>>2]|0;f[d>>2]=t;N=a+(Q*144|0)+136|0;M=f[N>>2]|0;if(M>>>0<(f[a+(Q*144|0)+140>>2]|0)>>>0){f[M>>2]=t;f[N>>2]=M+4}else Ng(a+(Q*144|0)+132|0,d)}Q=Q+1|0;V=f[z>>2]|0;W=f[A>>2]|0}while(Q>>>0<((V-W|0)/144|0)>>>0);S=V;T=W;U=W}else if((v|0)==(w|0)){S=w;T=w;U=r}else{W=0;V=w;w=r;r=v;v=s;while(1){f[d>>2]=t;s=v+(W*144|0)+136|0;Q=f[s>>2]|0;if(Q>>>0<(f[v+(W*144|0)+140>>2]|0)>>>0){f[Q>>2]=t;f[s>>2]=Q+4;X=V;Y=V;Z=r;_=w}else{Ng(v+(W*144|0)+132|0,d);Q=f[A>>2]|0;s=Q;X=s;Y=Q;Z=f[z>>2]|0;_=s}W=W+1|0;if(W>>>0>=((Z-Y|0)/144|0)>>>0){S=Z;T=Y;U=_;break}else{V=Y;w=_;r=Z;v=X}}}if((o|0)!=-1?(f[(f[(f[b>>2]|0)+12>>2]|0)+(o<<2)>>2]|0)!=-1:0){if((S|0)==(T|0)){u=c;return 1}b=0;do{if(pi((f[x>>2]|0)+(b<<4)|0)|0){X=f[y>>2]|0;f[d>>2]=o;v=X+(b*144|0)+136|0;Z=f[v>>2]|0;if(Z>>>0<(f[X+(b*144|0)+140>>2]|0)>>>0){f[Z>>2]=o;f[v>>2]=Z+4}else Ng(X+(b*144|0)+132|0,d)}b=b+1|0}while(b>>>0<(((f[z>>2]|0)-(f[A>>2]|0)|0)/144|0)>>>0);u=c;return 1}if((S|0)==(T|0)){u=c;return 1}b=0;y=U;U=T;T=S;while(1){f[d>>2]=o;S=y+(b*144|0)+136|0;x=f[S>>2]|0;if(x>>>0<(f[y+(b*144|0)+140>>2]|0)>>>0){f[x>>2]=o;f[S>>2]=x+4;$=U;aa=T}else{Ng(y+(b*144|0)+132|0,d);$=f[A>>2]|0;aa=f[z>>2]|0}b=b+1|0;if(b>>>0>=((aa-$|0)/144|0)>>>0)break;else{y=$;U=$;T=aa}}u=c;return 1}function _b(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0;d=u;u=u+16|0;e=d+12|0;g=d;h=d+8|0;i=d+4|0;j=a+8+(b*12|0)|0;k=a+8+(b*12|0)+4|0;f[k>>2]=f[j>>2];l=f[c>>2]|0;m=a+4|0;f[g>>2]=(l|0)==-1?-1:(l>>>0)/3|0;n=a+56|0;o=a+8+(b*12|0)+8|0;p=0;q=l;r=l;while(1){l=(p|0)==1;if(l){s=(q|0)==-1;do if(!s)if(!((q>>>0)%3|0)){t=q+2|0;break}else{t=q+-1|0;break}else t=-1;while(0);f[h>>2]=t;f[e>>2]=f[h>>2];if((af(a,e)|0)==-1){v=q;break}w=q+1|0;if(s){x=10;break}y=((w>>>0)%3|0|0)==0?q+-2|0:w;f[c>>2]=y;w=y+1|0;if((y|0)==-1){z=q;x=14;break}A=((w>>>0)%3|0|0)==0?y+-2|0:w;if((A|0)==-1){z=q;x=14;break}w=f[(f[(f[m>>2]|0)+12>>2]|0)+(A<<2)>>2]|0;A=w+1|0;if((w|0)==-1){z=q;x=14;break}y=((A>>>0)%3|0|0)==0?w+-2|0:A;f[c>>2]=y;if((y|0)==-1){v=q;break}A=(y>>>0)/3|0;f[g>>2]=A;B=y;C=A}else{B=r;C=f[g>>2]|0}A=(f[n>>2]|0)+(C>>>5<<2)|0;y=1<<(C&31);w=f[A>>2]|0;if(!(y&w)){a:do if(l){D=0;E=q;F=y;G=w;H=A;I=B;while(1){f[H>>2]=G|F;J=f[k>>2]|0;if((J|0)==(f[o>>2]|0))Ng(j,g);else{f[J>>2]=f[g>>2];f[k>>2]=J+4}J=D+1|0;if(!D){K=E;L=I}else{M=(I|0)==-1;do if(!(J&1))if(!M)if(!((I>>>0)%3|0)){N=I+2|0;O=I;break}else{N=I+-1|0;O=I;break}else{N=-1;O=I}else{P=I+1|0;if(M){N=-1;O=E}else{N=((P>>>0)%3|0|0)==0?I+-2|0:P;O=E}}while(0);f[c>>2]=N;K=O;L=N}f[i>>2]=L;f[e>>2]=f[i>>2];M=af(a,e)|0;f[c>>2]=M;if((M|0)==-1){Q=J;R=K;S=-1;break a}P=(M>>>0)/3|0;f[g>>2]=P;H=(f[n>>2]|0)+(P>>>5<<2)|0;F=1<<(P&31);G=f[H>>2]|0;if(F&G|0){Q=J;R=K;S=M;break}else{D=J;E=K;I=M}}}else{I=0;E=B;D=y;G=w;F=A;while(1){f[F>>2]=G|D;H=f[k>>2]|0;if((H|0)==(f[o>>2]|0))Ng(j,g);else{f[H>>2]=f[g>>2];f[k>>2]=H+4}H=I+1|0;if(!I)T=E;else{M=(E|0)==-1;do if(!(H&1))if(!M)if(!((E>>>0)%3|0)){U=E+2|0;break}else{U=E+-1|0;break}else U=-1;else{P=E+1|0;if(M)U=-1;else U=((P>>>0)%3|0|0)==0?E+-2|0:P}while(0);f[c>>2]=U;T=U}f[i>>2]=T;f[e>>2]=f[i>>2];M=af(a,e)|0;f[c>>2]=M;if((M|0)==-1){Q=H;R=q;S=-1;break a}J=(M>>>0)/3|0;f[g>>2]=J;F=(f[n>>2]|0)+(J>>>5<<2)|0;D=1<<(J&31);G=f[F>>2]|0;if(D&G|0){Q=H;R=q;S=M;break}else{I=H;E=M}}}while(0);if((Q&1|0)==0|l^1){V=R;W=S}else{A=(f[k>>2]|0)+-4|0;w=f[A>>2]|0;y=(f[n>>2]|0)+(w>>>5<<2)|0;f[y>>2]=f[y>>2]&~(1<<(w&31));f[k>>2]=A;V=R;W=S}}else{V=q;W=B}p=p+1|0;if(p>>>0>=2){v=V;break}else{q=V;r=W}}if((x|0)==10){f[c>>2]=-1;z=-1;x=14}if((x|0)==14){f[c>>2]=-1;v=z}f[a+44+(b<<2)>>2]=v;v=f[k>>2]|0;k=f[j>>2]|0;j=k;if((v|0)==(k|0)){u=d;return}b=f[n>>2]|0;n=v-k>>2;k=0;do{v=f[j+(k<<2)>>2]|0;a=b+(v>>>5<<2)|0;f[a>>2]=f[a>>2]&~(1<<(v&31));k=k+1|0}while(k>>>0<n>>>0);u=d;return}function $b(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0;e=u;u=u+672|0;g=e;i=e+656|0;j=e+4|0;k=c+8|0;l=k;m=f[l>>2]|0;n=f[l+4>>2]|0;l=c+16|0;o=l;p=f[o>>2]|0;q=vl(p|0,f[o+4>>2]|0,4,0)|0;o=H;if((n|0)<(o|0)|(n|0)==(o|0)&m>>>0<q>>>0){r=0;u=e;return r|0}q=(f[c>>2]|0)+p|0;p=h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24;b[a>>0]=p;b[a+1>>0]=p>>8;b[a+2>>0]=p>>16;b[a+3>>0]=p>>24;q=l;m=f[q>>2]|0;o=f[q+4>>2]|0;q=vl(m|0,o|0,4,0)|0;n=l;f[n>>2]=q;f[n+4>>2]=H;if(p>>>0>31){r=0;u=e;return r|0}p=k;n=f[p>>2]|0;s=f[p+4>>2]|0;p=vl(m|0,o|0,8,0)|0;o=H;if((s|0)<(o|0)|(s|0)==(o|0)&n>>>0<p>>>0){r=0;u=e;return r|0}p=a+4|0;n=(f[c>>2]|0)+q|0;q=h[n>>0]|h[n+1>>0]<<8|h[n+2>>0]<<16|h[n+3>>0]<<24;b[p>>0]=q;b[p+1>>0]=q>>8;b[p+2>>0]=q>>16;b[p+3>>0]=q>>24;q=l;p=f[q>>2]|0;n=f[q+4>>2]|0;q=vl(p|0,n|0,4,0)|0;o=l;f[o>>2]=q;f[o+4>>2]=H;o=a+12|0;s=k;m=f[s>>2]|0;t=f[s+4>>2]|0;s=vl(p|0,n|0,8,0)|0;n=H;if((t|0)<(n|0)|(t|0)==(n|0)&m>>>0<s>>>0){r=0;u=e;return r|0}s=(f[c>>2]|0)+q|0;q=h[s>>0]|h[s+1>>0]<<8|h[s+2>>0]<<16|h[s+3>>0]<<24;b[o>>0]=q;b[o+1>>0]=q>>8;b[o+2>>0]=q>>16;b[o+3>>0]=q>>24;s=l;m=f[s>>2]|0;n=f[s+4>>2]|0;s=vl(m|0,n|0,4,0)|0;t=l;f[t>>2]=s;f[t+4>>2]=H;t=a+16|0;a=k;k=f[a>>2]|0;p=f[a+4>>2]|0;a=vl(m|0,n|0,8,0)|0;n=H;if((p|0)<(n|0)|(p|0)==(n|0)&k>>>0<a>>>0){r=0;u=e;return r|0}a=(f[c>>2]|0)+s|0;s=h[a>>0]|h[a+1>>0]<<8|h[a+2>>0]<<16|h[a+3>>0]<<24;b[t>>0]=s;b[t+1>>0]=s>>8;b[t+2>>0]=s>>16;b[t+3>>0]=s>>24;a=l;k=vl(f[a>>2]|0,f[a+4>>2]|0,4,0)|0;a=l;f[a>>2]=k;f[a+4>>2]=H;if(s>>>0>6){f[g>>2]=s;kl(13491,g)|0;r=0;u=e;return r|0}f[i>>2]=d;a:do if(!q)v=17;else{Tg(d,q);switch(f[t>>2]|0){case 0:{ve(j,3);Kd(j,c,i)|0;Cf(j);v=17;break a;break}case 1:{ve(j,3);Jd(j,c,i)|0;Cf(j);v=17;break a;break}case 2:{we(j,3);Md(j,c,i)|0;Lf(j);v=17;break a;break}case 3:{we(j,3);Ld(j,c,i)|0;Lf(j);v=17;break a;break}case 4:{re(j,3);Id(j,c,i)|0;jg(j);v=17;break a;break}case 5:{re(j,3);Hd(j,c,i)|0;jg(j);v=17;break a;break}case 6:{re(j,3);Gd(j,c,i)|0;jg(j);v=17;break a;break}default:{w=0;break a}}}while(0);if((v|0)==17)w=(((f[d+4>>2]|0)-(f[d>>2]|0)|0)/12|0|0)==(f[o>>2]|0);r=w;u=e;return r|0}function ac(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,t=0,v=0,w=0,x=Ia,y=Ia,z=Ia,A=Ia,B=0,C=0,D=0,E=Ia,F=Ia,G=Ia,H=Ia,J=Ia,L=Ia,M=Ia,N=Ia,O=Ia,P=Ia,Q=Ia,R=0,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=a+48|0;o=f[c>>2]|0;c=o+1|0;do if((o|0)!=-1){p=((c>>>0)%3|0|0)==0?o+-2|0:c;if(!((o>>>0)%3|0)){q=o+2|0;r=p;break}else{q=o+-1|0;r=p;break}}else{q=-1;r=-1}while(0);o=f[(f[m>>2]|0)+28>>2]|0;m=f[o+(r<<2)>>2]|0;r=f[o+(q<<2)>>2]|0;q=f[a+52>>2]|0;o=f[q>>2]|0;c=(f[q+4>>2]|0)-o>>2;if(c>>>0<=m>>>0)$n(q);p=o;o=f[p+(m<<2)>>2]|0;if(c>>>0<=r>>>0)$n(q);q=f[p+(r<<2)>>2]|0;r=(o|0)<(e|0);if(!(r&(q|0)<(e|0))){do if(r){p=a+72|0;c=f[p>>2]|0;t=W(c,o)|0;v=p;w=c}else{if((e|0)>0){c=a+72|0;p=f[c>>2]|0;t=W(p,e+-1|0)|0;v=c;w=p;break}p=a+72|0;if((f[p>>2]|0)<=0){u=g;return}c=f[a+68>>2]|0;m=0;do{f[c+(m<<2)>>2]=0;m=m+1|0}while((m|0)<(f[p>>2]|0));u=g;return}while(0);if((w|0)<=0){u=g;return}w=f[a+68>>2]|0;r=0;do{f[w+(r<<2)>>2]=f[d+(r+t<<2)>>2];r=r+1|0}while((r|0)<(f[v>>2]|0));u=g;return}v=f[a+72>>2]|0;r=W(v,o)|0;x=_(f[d+(r<<2)>>2]|0);y=_(f[d+(r+1<<2)>>2]|0);r=W(v,q)|0;z=_(f[d+(r<<2)>>2]|0);A=_(f[d+(r+1<<2)>>2]|0);if(!(z!=x|A!=y)){r=f[a+68>>2]|0;f[r>>2]=~~z;f[r+4>>2]=~~A;u=g;return}r=a+64|0;d=f[(f[r>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=a+60|0;v=f[e>>2]|0;if(!(b[v+84>>0]|0))B=f[(f[v+68>>2]|0)+(d<<2)>>2]|0;else B=d;f[i>>2]=B;B=b[v+24>>0]|0;f[h>>2]=f[i>>2];ob(v,h,B,j)|0;B=f[(f[r>>2]|0)+(o<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;o=f[e>>2]|0;if(!(b[o+84>>0]|0))C=f[(f[o+68>>2]|0)+(B<<2)>>2]|0;else C=B;f[i>>2]=C;C=b[o+24>>0]|0;f[h>>2]=f[i>>2];ob(o,h,C,k)|0;C=f[(f[r>>2]|0)+(q<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;q=f[e>>2]|0;if(!(b[q+84>>0]|0))D=f[(f[q+68>>2]|0)+(C<<2)>>2]|0;else D=C;f[i>>2]=D;D=b[q+24>>0]|0;f[h>>2]=f[i>>2];ob(q,h,D,l)|0;E=_(n[l>>2]);F=_(n[k>>2]);G=_(E-F);E=_(n[l+4>>2]);H=_(n[k+4>>2]);J=_(E-H);E=_(n[l+8>>2]);L=_(n[k+8>>2]);M=_(E-L);E=_(_(n[j>>2])-F);F=_(_(n[j+4>>2])-H);H=_(_(n[j+8>>2])-L);L=_(_(_(_(G*G)+_(0.0))+_(J*J))+_(M*M));if(L>_(0.0)?1:(f[a+88>>2]|0)<258){N=_(_(_(_(_(G*E)+_(0.0))+_(J*F))+_(M*H))/L);O=_(E-_(G*N));G=_(F-_(J*N));J=_(H-_(M*N));P=N;Q=_(K(_(_(_(J*J)+_(_(G*G)+_(_(O*O)+_(0.0))))/L)))}else{P=_(0.0);Q=_(0.0)}L=_(z-x);z=_(A-y);A=_(_(L*P)+x);x=_(L*Q);L=_(_(z*P)+y);y=_(z*Q);j=a+80|0;k=(f[j>>2]|0)+-1|0;l=(1<<(k&31)&f[(f[a+76>>2]|0)+(k>>>5<<2)>>2]|0)==0;f[j>>2]=k;Q=_(-y);z=_(A+(l?y:Q));Q=_(-x);y=_(L+(l?Q:x));if(((n[s>>2]=z,f[s>>2]|0)&2147483647)>>>0>2139095040){l=f[a+68>>2]|0;f[l>>2]=-2147483648;R=l}else{l=~~+I(+(+z+.5));k=f[a+68>>2]|0;f[k>>2]=l;R=k}if(((n[s>>2]=y,f[s>>2]|0)&2147483647)>>>0>2139095040)S=-2147483648;else S=~~+I(+(+y+.5));f[R+4>>2]=S;u=g;return}function bc(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,o=0,p=0,q=0,r=0,t=0,v=0,w=0,x=Ia,y=Ia,z=Ia,A=Ia,B=0,C=0,D=0,E=Ia,F=Ia,G=Ia,H=Ia,J=Ia,L=Ia,M=Ia,N=Ia,O=Ia,P=Ia,Q=Ia,R=0,S=0;g=u;u=u+48|0;h=g+40|0;i=g+36|0;j=g+24|0;k=g+12|0;l=g;m=f[c>>2]|0;c=m+1|0;if((m|0)!=-1){o=((c>>>0)%3|0|0)==0?m+-2|0:c;c=(((m>>>0)%3|0|0)==0?2:-1)+m|0;m=f[a+48>>2]|0;if((o|0)==-1)p=-1;else p=f[(f[m>>2]|0)+(o<<2)>>2]|0;if((c|0)==-1){q=-1;r=p}else{q=f[(f[m>>2]|0)+(c<<2)>>2]|0;r=p}}else{q=-1;r=-1}p=f[a+52>>2]|0;c=f[p>>2]|0;m=(f[p+4>>2]|0)-c>>2;if(m>>>0<=r>>>0)$n(p);o=c;c=f[o+(r<<2)>>2]|0;if(m>>>0<=q>>>0)$n(p);p=f[o+(q<<2)>>2]|0;q=(c|0)<(e|0);if(!(q&(p|0)<(e|0))){do if(q){o=a+72|0;m=f[o>>2]|0;t=W(m,c)|0;v=o;w=m}else{if((e|0)>0){m=a+72|0;o=f[m>>2]|0;t=W(o,e+-1|0)|0;v=m;w=o;break}o=a+72|0;if((f[o>>2]|0)<=0){u=g;return}m=f[a+68>>2]|0;r=0;do{f[m+(r<<2)>>2]=0;r=r+1|0}while((r|0)<(f[o>>2]|0));u=g;return}while(0);if((w|0)<=0){u=g;return}w=f[a+68>>2]|0;q=0;do{f[w+(q<<2)>>2]=f[d+(q+t<<2)>>2];q=q+1|0}while((q|0)<(f[v>>2]|0));u=g;return}v=f[a+72>>2]|0;q=W(v,c)|0;x=_(f[d+(q<<2)>>2]|0);y=_(f[d+(q+1<<2)>>2]|0);q=W(v,p)|0;z=_(f[d+(q<<2)>>2]|0);A=_(f[d+(q+1<<2)>>2]|0);if(!(z!=x|A!=y)){q=f[a+68>>2]|0;f[q>>2]=~~z;f[q+4>>2]=~~A;u=g;return}q=a+64|0;d=f[(f[q>>2]|0)+(e<<2)>>2]|0;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;e=a+60|0;v=f[e>>2]|0;if(!(b[v+84>>0]|0))B=f[(f[v+68>>2]|0)+(d<<2)>>2]|0;else B=d;f[i>>2]=B;B=b[v+24>>0]|0;f[h>>2]=f[i>>2];ob(v,h,B,j)|0;B=f[(f[q>>2]|0)+(c<<2)>>2]|0;f[k>>2]=0;f[k+4>>2]=0;f[k+8>>2]=0;c=f[e>>2]|0;if(!(b[c+84>>0]|0))C=f[(f[c+68>>2]|0)+(B<<2)>>2]|0;else C=B;f[i>>2]=C;C=b[c+24>>0]|0;f[h>>2]=f[i>>2];ob(c,h,C,k)|0;C=f[(f[q>>2]|0)+(p<<2)>>2]|0;f[l>>2]=0;f[l+4>>2]=0;f[l+8>>2]=0;p=f[e>>2]|0;if(!(b[p+84>>0]|0))D=f[(f[p+68>>2]|0)+(C<<2)>>2]|0;else D=C;f[i>>2]=D;D=b[p+24>>0]|0;f[h>>2]=f[i>>2];ob(p,h,D,l)|0;E=_(n[l>>2]);F=_(n[k>>2]);G=_(E-F);E=_(n[l+4>>2]);H=_(n[k+4>>2]);J=_(E-H);E=_(n[l+8>>2]);L=_(n[k+8>>2]);M=_(E-L);E=_(_(n[j>>2])-F);F=_(_(n[j+4>>2])-H);H=_(_(n[j+8>>2])-L);L=_(_(_(_(G*G)+_(0.0))+_(J*J))+_(M*M));if(L>_(0.0)?1:(f[a+88>>2]|0)<258){N=_(_(_(_(_(G*E)+_(0.0))+_(J*F))+_(M*H))/L);O=_(E-_(G*N));G=_(F-_(J*N));J=_(H-_(M*N));P=N;Q=_(K(_(_(_(J*J)+_(_(G*G)+_(_(O*O)+_(0.0))))/L)))}else{P=_(0.0);Q=_(0.0)}L=_(z-x);z=_(A-y);A=_(_(L*P)+x);x=_(L*Q);L=_(_(z*P)+y);y=_(z*Q);j=a+80|0;k=(f[j>>2]|0)+-1|0;l=(1<<(k&31)&f[(f[a+76>>2]|0)+(k>>>5<<2)>>2]|0)==0;f[j>>2]=k;Q=_(-y);z=_(A+(l?y:Q));Q=_(-x);y=_(L+(l?Q:x));if(((n[s>>2]=z,f[s>>2]|0)&2147483647)>>>0>2139095040){l=f[a+68>>2]|0;f[l>>2]=-2147483648;R=l}else{l=~~+I(+(+z+.5));k=f[a+68>>2]|0;f[k>>2]=l;R=k}if(((n[s>>2]=y,f[s>>2]|0)&2147483647)>>>0>2139095040)S=-2147483648;else S=~~+I(+(+y+.5));f[R+4>>2]=S;u=g;return}function cc(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0;b=u;u=u+32|0;c=b+4|0;d=b;e=a+16|0;g=f[e>>2]|0;if(g>>>0>340){f[e>>2]=g+-341;g=a+4|0;e=f[g>>2]|0;h=f[e>>2]|0;i=e+4|0;f[g>>2]=i;e=a+8|0;j=f[e>>2]|0;k=a+12|0;l=f[k>>2]|0;m=l;do if((j|0)==(l|0)){n=i;o=f[a>>2]|0;p=o;if(i>>>0>o>>>0){q=((n-p>>2)+1|0)/-2|0;r=i+(q<<2)|0;s=j-n|0;if(!s)t=r;else{Rj(r|0,i|0,s|0)|0;t=(f[g>>2]|0)+(q<<2)|0}q=r+(s>>2<<2)|0;f[e>>2]=q;f[g>>2]=t;v=q;break}q=m-p|0;p=(q|0)==0?1:q>>1;q=p>>>2;do if(p)if(p>>>0>1073741823){s=qa(8)|0;Dm(s,13552);f[s>>2]=4908;ta(s|0,1128,105)}else{w=wk(p<<2)|0;break}else w=0;while(0);s=w;r=w+(q<<2)|0;x=r;y=w+(p<<2)|0;if((i|0)==(j|0)){z=x;A=o}else{B=((j+-4-n|0)>>>2)+1|0;C=r;r=i;while(1){f[C>>2]=f[r>>2];r=r+4|0;if((r|0)==(j|0))break;else C=C+4|0}z=w+(B+q<<2)|0;A=f[a>>2]|0}f[a>>2]=s;f[g>>2]=x;f[e>>2]=z;f[k>>2]=y;if(!A)v=z;else{Ko(A);v=f[e>>2]|0}}else v=j;while(0);f[v>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}e=a+8|0;h=f[e>>2]|0;v=a+4|0;j=h-(f[v>>2]|0)>>2;A=a+12|0;z=f[A>>2]|0;k=z-(f[a>>2]|0)|0;if(j>>>0>=k>>2>>>0){g=(k|0)==0?1:k>>1;k=c+12|0;f[k>>2]=0;f[c+16>>2]=a+12;do if(g)if(g>>>0>1073741823){w=qa(8)|0;Dm(w,13552);f[w>>2]=4908;ta(w|0,1128,105)}else{D=wk(g<<2)|0;break}else D=0;while(0);f[c>>2]=D;w=D+(j<<2)|0;j=c+8|0;f[j>>2]=w;i=c+4|0;f[i>>2]=w;f[k>>2]=D+(g<<2);g=wk(4092)|0;f[d>>2]=g;Ke(c,d);d=f[e>>2]|0;g=f[v>>2]|0;if((d|0)==(g|0)){E=g;F=d}else{g=d;do{g=g+-4|0;ue(c,g);G=f[v>>2]|0}while((g|0)!=(G|0));E=G;F=f[e>>2]|0}G=E;g=f[a>>2]|0;f[a>>2]=f[c>>2];f[c>>2]=g;f[v>>2]=f[i>>2];f[i>>2]=G;f[e>>2]=f[j>>2];f[j>>2]=F;i=f[A>>2]|0;f[A>>2]=f[k>>2];f[k>>2]=i;i=F;if((E|0)!=(i|0))f[j>>2]=i+(~((i+-4-G|0)>>>2)<<2);if(g|0)Ko(g);u=b;return}if((z|0)!=(h|0)){h=wk(4092)|0;f[c>>2]=h;Ke(a,c);u=b;return}h=wk(4092)|0;f[c>>2]=h;ue(a,c);c=f[v>>2]|0;h=f[c>>2]|0;z=c+4|0;f[v>>2]=z;c=f[e>>2]|0;g=f[A>>2]|0;G=g;do if((c|0)==(g|0)){i=z;j=f[a>>2]|0;E=j;if(z>>>0>j>>>0){F=((i-E>>2)+1|0)/-2|0;k=z+(F<<2)|0;d=c-i|0;if(!d)H=k;else{Rj(k|0,z|0,d|0)|0;H=(f[v>>2]|0)+(F<<2)|0}F=k+(d>>2<<2)|0;f[e>>2]=F;f[v>>2]=H;I=F;break}F=G-E|0;E=(F|0)==0?1:F>>1;F=E>>>2;do if(E)if(E>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{J=wk(E<<2)|0;break}else J=0;while(0);y=J;x=J+(F<<2)|0;s=x;q=J+(E<<2)|0;if((z|0)==(c|0)){K=s;L=j}else{B=((c+-4-i|0)>>>2)+1|0;d=x;x=z;while(1){f[d>>2]=f[x>>2];x=x+4|0;if((x|0)==(c|0))break;else d=d+4|0}K=J+(B+F<<2)|0;L=f[a>>2]|0}f[a>>2]=y;f[v>>2]=s;f[e>>2]=K;f[A>>2]=q;if(!L)I=K;else{Ko(L);I=f[e>>2]|0}}else I=c;while(0);f[I>>2]=h;f[e>>2]=(f[e>>2]|0)+4;u=b;return}function dc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;e=u;u=u+32|0;d=e+28|0;h=e+16|0;i=e+8|0;j=e;k=a+60|0;f[a+68>>2]=g;g=a+56|0;l=f[g>>2]|0;m=(f[l+4>>2]|0)-(f[l>>2]|0)|0;n=m>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if((m|0)<=0){u=e;return 1}m=h+4|0;o=h+8|0;p=a+104|0;q=a+108|0;r=i+4|0;s=a+100|0;t=a+8|0;v=a+16|0;w=a+32|0;x=a+12|0;y=a+20|0;a=f[l>>2]|0;if((f[l+4>>2]|0)==(a|0)){z=l;$n(z)}l=0;A=a;while(1){f[j>>2]=f[A+(l<<2)>>2];f[d>>2]=f[j>>2];Ob(k,d,h);a=f[h>>2]|0;B=(a|0)>-1?a:0-a|0;C=f[m>>2]|0;D=(C|0)>-1?C:0-C|0;E=vl(D|0,((D|0)<0)<<31>>31|0,B|0,((B|0)<0)<<31>>31|0)|0;B=f[o>>2]|0;D=(B|0)>-1;F=D?B:0-B|0;B=vl(E|0,H|0,F|0,((F|0)<0)<<31>>31|0)|0;F=H;do if(!((B|0)==0&(F|0)==0)){E=f[p>>2]|0;G=((E|0)<0)<<31>>31;I=Bk(E|0,G|0,a|0,((a|0)<0)<<31>>31|0)|0;J=ni(I|0,H|0,B|0,F|0)|0;f[h>>2]=J;I=Bk(E|0,G|0,C|0,((C|0)<0)<<31>>31|0)|0;G=ni(I|0,H|0,B|0,F|0)|0;f[m>>2]=G;I=E-((J|0)>-1?J:0-J|0)-((G|0)>-1?G:0-G|0)|0;if(D){f[o>>2]=I;break}else{f[o>>2]=0-I;break}}else f[h>>2]=f[p>>2];while(0);D=pi(q)|0;F=f[h>>2]|0;if(D){D=0-F|0;B=0-(f[m>>2]|0)|0;C=0-(f[o>>2]|0)|0;f[h>>2]=D;f[m>>2]=B;f[o>>2]=C;K=D;L=B}else{K=F;L=f[m>>2]|0}do if((K|0)<=-1){if((L|0)<0){F=f[o>>2]|0;M=(F|0)>-1?F:0-F|0;N=F}else{F=f[o>>2]|0;M=(f[s>>2]|0)-((F|0)>-1?F:0-F|0)|0;N=F}if((N|0)<0){O=(L|0)>-1?L:0-L|0;P=M;break}else{O=(f[s>>2]|0)-((L|0)>-1?L:0-L|0)|0;P=M;break}}else{F=f[p>>2]|0;O=(f[o>>2]|0)+F|0;P=F+L|0}while(0);F=(P|0)==0;B=(O|0)==0;D=f[s>>2]|0;do if(O|P){C=(D|0)==(O|0);if(!(F&C)){a=(D|0)==(P|0);if(!(B&a)){if(F?(I=f[p>>2]|0,(I|0)<(O|0)):0){Q=0;R=(I<<1)-O|0;break}if(a?(a=f[p>>2]|0,(a|0)>(O|0)):0){Q=P;R=(a<<1)-O|0;break}if(C?(C=f[p>>2]|0,(C|0)>(P|0)):0){Q=(C<<1)-P|0;R=O;break}if(B){C=f[p>>2]|0;Q=(C|0)<(P|0)?(C<<1)-P|0:P;R=0}else{Q=P;R=O}}else{Q=P;R=P}}else{Q=O;R=O}}else{Q=D;R=D}while(0);f[i>>2]=Q;f[r>>2]=R;D=l<<1;B=b+(D<<2)|0;F=c+(D<<2)|0;if((f[t>>2]|0)>0){D=0;C=Q;while(1){a=f[v>>2]|0;do if((C|0)<=(a|0)){I=f[x>>2]|0;G=f[w>>2]|0;J=G+(D<<2)|0;if((C|0)<(I|0)){f[J>>2]=I;S=G;break}else{f[J>>2]=C;S=G;break}}else{G=f[w>>2]|0;f[G+(D<<2)>>2]=a;S=G}while(0);a=D+1|0;T=f[t>>2]|0;if((a|0)>=(T|0))break;D=a;C=f[i+(a<<2)>>2]|0}if((T|0)>0){C=0;do{D=(f[B+(C<<2)>>2]|0)+(f[S+(C<<2)>>2]|0)|0;a=F+(C<<2)|0;f[a>>2]=D;if((D|0)<=(f[v>>2]|0)){if((D|0)<(f[x>>2]|0)){U=(f[y>>2]|0)+D|0;V=51}}else{U=D-(f[y>>2]|0)|0;V=51}if((V|0)==51){V=0;f[a>>2]=U}C=C+1|0}while((C|0)<(f[t>>2]|0))}}l=l+1|0;if((l|0)>=(n|0)){V=4;break}C=f[g>>2]|0;A=f[C>>2]|0;if((f[C+4>>2]|0)-A>>2>>>0<=l>>>0){z=C;V=5;break}}if((V|0)==4){u=e;return 1}else if((V|0)==5)$n(z);return 0}function ec(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0;e=u;u=u+32|0;d=e+28|0;h=e+16|0;i=e+8|0;j=e;k=a+60|0;f[a+68>>2]=g;g=a+56|0;l=f[g>>2]|0;m=(f[l+4>>2]|0)-(f[l>>2]|0)|0;n=m>>2;f[h>>2]=0;f[h+4>>2]=0;f[h+8>>2]=0;if((m|0)<=0){u=e;return 1}m=h+4|0;o=h+8|0;p=a+104|0;q=a+108|0;r=i+4|0;s=a+100|0;t=a+8|0;v=a+16|0;w=a+32|0;x=a+12|0;y=a+20|0;a=f[l>>2]|0;if((f[l+4>>2]|0)==(a|0)){z=l;$n(z)}l=0;A=a;while(1){f[j>>2]=f[A+(l<<2)>>2];f[d>>2]=f[j>>2];Mb(k,d,h);a=f[h>>2]|0;B=(a|0)>-1?a:0-a|0;C=f[m>>2]|0;D=(C|0)>-1?C:0-C|0;E=vl(D|0,((D|0)<0)<<31>>31|0,B|0,((B|0)<0)<<31>>31|0)|0;B=f[o>>2]|0;D=(B|0)>-1;F=D?B:0-B|0;B=vl(E|0,H|0,F|0,((F|0)<0)<<31>>31|0)|0;F=H;do if(!((B|0)==0&(F|0)==0)){E=f[p>>2]|0;G=((E|0)<0)<<31>>31;I=Bk(E|0,G|0,a|0,((a|0)<0)<<31>>31|0)|0;J=ni(I|0,H|0,B|0,F|0)|0;f[h>>2]=J;I=Bk(E|0,G|0,C|0,((C|0)<0)<<31>>31|0)|0;G=ni(I|0,H|0,B|0,F|0)|0;f[m>>2]=G;I=E-((J|0)>-1?J:0-J|0)-((G|0)>-1?G:0-G|0)|0;if(D){f[o>>2]=I;break}else{f[o>>2]=0-I;break}}else f[h>>2]=f[p>>2];while(0);D=pi(q)|0;F=f[h>>2]|0;if(D){D=0-F|0;B=0-(f[m>>2]|0)|0;C=0-(f[o>>2]|0)|0;f[h>>2]=D;f[m>>2]=B;f[o>>2]=C;K=D;L=B}else{K=F;L=f[m>>2]|0}do if((K|0)<=-1){if((L|0)<0){F=f[o>>2]|0;M=(F|0)>-1?F:0-F|0;N=F}else{F=f[o>>2]|0;M=(f[s>>2]|0)-((F|0)>-1?F:0-F|0)|0;N=F}if((N|0)<0){O=(L|0)>-1?L:0-L|0;P=M;break}else{O=(f[s>>2]|0)-((L|0)>-1?L:0-L|0)|0;P=M;break}}else{F=f[p>>2]|0;O=(f[o>>2]|0)+F|0;P=F+L|0}while(0);F=(P|0)==0;B=(O|0)==0;D=f[s>>2]|0;do if(O|P){C=(D|0)==(O|0);if(!(F&C)){a=(D|0)==(P|0);if(!(B&a)){if(F?(I=f[p>>2]|0,(I|0)<(O|0)):0){Q=0;R=(I<<1)-O|0;break}if(a?(a=f[p>>2]|0,(a|0)>(O|0)):0){Q=P;R=(a<<1)-O|0;break}if(C?(C=f[p>>2]|0,(C|0)>(P|0)):0){Q=(C<<1)-P|0;R=O;break}if(B){C=f[p>>2]|0;Q=(C|0)<(P|0)?(C<<1)-P|0:P;R=0}else{Q=P;R=O}}else{Q=P;R=P}}else{Q=O;R=O}}else{Q=D;R=D}while(0);f[i>>2]=Q;f[r>>2]=R;D=l<<1;B=b+(D<<2)|0;F=c+(D<<2)|0;if((f[t>>2]|0)>0){D=0;C=Q;while(1){a=f[v>>2]|0;do if((C|0)<=(a|0)){I=f[x>>2]|0;G=f[w>>2]|0;J=G+(D<<2)|0;if((C|0)<(I|0)){f[J>>2]=I;S=G;break}else{f[J>>2]=C;S=G;break}}else{G=f[w>>2]|0;f[G+(D<<2)>>2]=a;S=G}while(0);a=D+1|0;T=f[t>>2]|0;if((a|0)>=(T|0))break;D=a;C=f[i+(a<<2)>>2]|0}if((T|0)>0){C=0;do{D=(f[B+(C<<2)>>2]|0)+(f[S+(C<<2)>>2]|0)|0;a=F+(C<<2)|0;f[a>>2]=D;if((D|0)<=(f[v>>2]|0)){if((D|0)<(f[x>>2]|0)){U=(f[y>>2]|0)+D|0;V=51}}else{U=D-(f[y>>2]|0)|0;V=51}if((V|0)==51){V=0;f[a>>2]=U}C=C+1|0}while((C|0)<(f[t>>2]|0))}}l=l+1|0;if((l|0)>=(n|0)){V=4;break}C=f[g>>2]|0;A=f[C>>2]|0;if((f[C+4>>2]|0)-A>>2>>>0<=l>>>0){z=C;V=5;break}}if((V|0)==4){u=e;return 1}else if((V|0)==5)$n(z);return 0}function fc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0;e=u;u=u+16|0;g=e;i=c+8|0;j=i;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,5,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){o=wk(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=o;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}o=(f[c>>2]|0)+n|0;b[d>>0]=b[o>>0]|0;b[d+1>>0]=b[o+1>>0]|0;b[d+2>>0]=b[o+2>>0]|0;b[d+3>>0]=b[o+3>>0]|0;b[d+4>>0]=b[o+4>>0]|0;o=j;n=vl(f[o>>2]|0,f[o+4>>2]|0,5,0)|0;o=H;k=j;f[k>>2]=n;f[k+4>>2]=o;if(Fi(d,13135,5)|0){k=wk(32)|0;f[g>>2]=k;f[g+8>>2]=-2147483616;f[g+4>>2]=17;p=k;q=13141;r=p+17|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[k+17>>0]=0;f[a>>2]=-1;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}k=i;m=f[k+4>>2]|0;if(!((m|0)>(o|0)|((m|0)==(o|0)?(f[k>>2]|0)>>>0>n>>>0:0))){k=wk(32)|0;f[g>>2]=k;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=k;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[k+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}b[d+5>>0]=b[(f[c>>2]|0)+n>>0]|0;n=j;k=vl(f[n>>2]|0,f[n+4>>2]|0,1,0)|0;n=H;o=j;f[o>>2]=k;f[o+4>>2]=n;o=i;m=f[o+4>>2]|0;if(!((m|0)>(n|0)|((m|0)==(n|0)?(f[o>>2]|0)>>>0>k>>>0:0))){o=wk(32)|0;f[g>>2]=o;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=o;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[o+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}b[d+6>>0]=b[(f[c>>2]|0)+k>>0]|0;k=j;o=vl(f[k>>2]|0,f[k+4>>2]|0,1,0)|0;k=H;n=j;f[n>>2]=o;f[n+4>>2]=k;n=i;m=f[n+4>>2]|0;if(!((m|0)>(k|0)|((m|0)==(k|0)?(f[n>>2]|0)>>>0>o>>>0:0))){n=wk(32)|0;f[g>>2]=n;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=n;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[n+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}b[d+7>>0]=b[(f[c>>2]|0)+o>>0]|0;o=j;n=vl(f[o>>2]|0,f[o+4>>2]|0,1,0)|0;o=H;k=j;f[k>>2]=n;f[k+4>>2]=o;k=i;m=f[k+4>>2]|0;if(!((m|0)>(o|0)|((m|0)==(o|0)?(f[k>>2]|0)>>>0>n>>>0:0))){k=wk(32)|0;f[g>>2]=k;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=k;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[k+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}b[d+8>>0]=b[(f[c>>2]|0)+n>>0]|0;n=j;k=f[n>>2]|0;o=f[n+4>>2]|0;n=vl(k|0,o|0,1,0)|0;m=j;f[m>>2]=n;f[m+4>>2]=H;m=i;i=f[m>>2]|0;l=f[m+4>>2]|0;m=vl(k|0,o|0,3,0)|0;o=H;if(!((l|0)<(o|0)|(l|0)==(o|0)&i>>>0<m>>>0)){m=d+10|0;d=(f[c>>2]|0)+n|0;n=h[d>>0]|h[d+1>>0]<<8;b[m>>0]=n;b[m+1>>0]=n>>8;n=j;m=vl(f[n>>2]|0,f[n+4>>2]|0,2,0)|0;n=j;f[n>>2]=m;f[n+4>>2]=H;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;u=e;return}n=wk(32)|0;f[g>>2]=n;f[g+8>>2]=-2147483616;f[g+4>>2]=29;p=n;q=13105;r=p+29|0;do{b[p>>0]=b[q>>0]|0;p=p+1|0;q=q+1|0}while((p|0)<(r|0));b[n+29>>0]=0;f[a>>2]=-2;Yi(a+4|0,g);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=e;return}function gc(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0;c=u;u=u+16|0;d=c;e=f[b>>2]|0;b=a+8|0;g=e+1|0;if((e|0)!=-1){h=((g>>>0)%3|0|0)==0?e+-2|0:g;g=(e>>>0)/3|0;i=e+((e-(g*3|0)|0)==0?2:-1)|0;j=a+216|0;k=a+220|0;l=a+368|0;m=f[(f[(f[b>>2]|0)+12>>2]|0)+(e<<2)>>2]|0;if((m|0)!=-1)if(((m>>>0)/3|0)>>>0>=g>>>0?(f[k>>2]|0)!=(f[j>>2]|0):0){m=0;do{if(pi((f[l>>2]|0)+(m<<4)|0)|0){n=f[j>>2]|0;f[d>>2]=e;o=n+(m*144|0)+136|0;p=f[o>>2]|0;if(p>>>0<(f[n+(m*144|0)+140>>2]|0)>>>0){f[p>>2]=e;f[o>>2]=p+4}else Ng(n+(m*144|0)+132|0,d)}m=m+1|0}while(m>>>0<(((f[k>>2]|0)-(f[j>>2]|0)|0)/144|0)>>>0);q=g;r=i;s=d;t=d;v=h;w=k;x=j;y=l;z=j}else{q=g;r=i;s=d;t=d;v=h;w=k;x=j;y=l;z=j}else{A=g;B=d;C=l;D=d;E=j;F=i;G=h;H=k;I=j;J=4}}else{j=a+216|0;A=-1;B=d;C=a+368|0;D=d;E=j;F=-1;G=-1;H=a+220|0;I=j;J=4}if((J|0)==4){j=f[H>>2]|0;a=f[I>>2]|0;if((j|0)==(a|0)){q=A;r=F;s=B;t=D;v=G;w=H;x=I;y=C;z=E}else{k=0;h=j;j=a;while(1){a=j;f[d>>2]=e;i=a+(k*144|0)+136|0;l=f[i>>2]|0;if(l>>>0<(f[a+(k*144|0)+140>>2]|0)>>>0){f[l>>2]=e;f[i>>2]=l+4;K=j;L=h}else{Ng(a+(k*144|0)+132|0,d);K=f[I>>2]|0;L=f[H>>2]|0}k=k+1|0;if(k>>>0>=((L-K|0)/144|0)>>>0){q=A;r=F;s=B;t=D;v=G;w=H;x=I;y=C;z=E;break}else{h=L;j=K}}}}if((v|0)!=-1?(K=f[(f[(f[b>>2]|0)+12>>2]|0)+(v<<2)>>2]|0,(K|0)!=-1):0){if(((K>>>0)/3|0)>>>0>=q>>>0?(f[w>>2]|0)!=(f[x>>2]|0):0){K=0;do{if(pi((f[y>>2]|0)+(K<<4)|0)|0){j=f[z>>2]|0;f[d>>2]=v;L=j+(K*144|0)+136|0;h=f[L>>2]|0;if(h>>>0<(f[j+(K*144|0)+140>>2]|0)>>>0){f[h>>2]=v;f[L>>2]=h+4}else Ng(j+(K*144|0)+132|0,d)}K=K+1|0}while(K>>>0<(((f[w>>2]|0)-(f[x>>2]|0)|0)/144|0)>>>0)}}else J=30;if((J|0)==30?(J=f[w>>2]|0,K=f[x>>2]|0,(J|0)!=(K|0)):0){j=0;h=K;K=J;while(1){J=h;f[d>>2]=v;L=J+(j*144|0)+136|0;E=f[L>>2]|0;if(E>>>0<(f[J+(j*144|0)+140>>2]|0)>>>0){f[E>>2]=v;f[L>>2]=E+4;M=h;N=K}else{Ng(J+(j*144|0)+132|0,d);M=f[x>>2]|0;N=f[w>>2]|0}j=j+1|0;if(j>>>0>=((N-M|0)/144|0)>>>0)break;else{h=M;K=N}}}if((r|0)!=-1?(N=f[(f[(f[b>>2]|0)+12>>2]|0)+(r<<2)>>2]|0,(N|0)!=-1):0){if(((N>>>0)/3|0)>>>0<q>>>0){u=c;return 1}if((f[w>>2]|0)==(f[x>>2]|0)){u=c;return 1}q=0;do{if(pi((f[y>>2]|0)+(q<<4)|0)|0){N=f[z>>2]|0;f[d>>2]=r;b=N+(q*144|0)+136|0;K=f[b>>2]|0;if(K>>>0<(f[N+(q*144|0)+140>>2]|0)>>>0){f[K>>2]=r;f[b>>2]=K+4}else Ng(N+(q*144|0)+132|0,d)}q=q+1|0}while(q>>>0<(((f[w>>2]|0)-(f[x>>2]|0)|0)/144|0)>>>0);u=c;return 1}q=f[w>>2]|0;z=f[x>>2]|0;if((q|0)==(z|0)){u=c;return 1}y=0;N=z;z=q;while(1){q=N;f[d>>2]=r;K=q+(y*144|0)+136|0;b=f[K>>2]|0;if(b>>>0<(f[q+(y*144|0)+140>>2]|0)>>>0){f[b>>2]=r;f[K>>2]=b+4;O=N;P=z}else{Ng(q+(y*144|0)+132|0,d);O=f[x>>2]|0;P=f[w>>2]|0}y=y+1|0;if(y>>>0>=((P-O|0)/144|0)>>>0)break;else{N=O;z=P}}u=c;return 1}function hc(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(c|0){case 1:{c=wk(60)|0;f[c>>2]=1536;f[c+4>>2]=d;b=c+8|0;f[b>>2]=f[e>>2];f[b+4>>2]=f[e+4>>2];f[b+8>>2]=f[e+8>>2];f[b+12>>2]=f[e+12>>2];f[b+16>>2]=f[e+16>>2];f[b+20>>2]=f[e+20>>2];b=c+32|0;f[b>>2]=0;i=c+36|0;f[i>>2]=0;j=c+40|0;f[j>>2]=0;k=f[e+24>>2]|0;l=(f[e+28>>2]|0)-k|0;m=l>>2;if(l|0){if(m>>>0>1073741823)$n(b);n=wk(l)|0;f[i>>2]=n;f[b>>2]=n;f[j>>2]=n+(m<<2);if((l|0)>0){Bf(n|0,k|0,l|0)|0;f[i>>2]=n+(l>>>2<<2)}}l=c+44|0;f[l>>2]=f[g>>2];f[l+4>>2]=f[g+4>>2];f[l+8>>2]=f[g+8>>2];f[l+12>>2]=f[g+12>>2];f[c>>2]=2096;o=c;f[a>>2]=o;return}case 2:{c=wk(60)|0;f[c>>2]=1536;f[c+4>>2]=d;l=c+8|0;f[l>>2]=f[e>>2];f[l+4>>2]=f[e+4>>2];f[l+8>>2]=f[e+8>>2];f[l+12>>2]=f[e+12>>2];f[l+16>>2]=f[e+16>>2];f[l+20>>2]=f[e+20>>2];l=c+32|0;f[l>>2]=0;n=c+36|0;f[n>>2]=0;i=c+40|0;f[i>>2]=0;k=f[e+24>>2]|0;m=(f[e+28>>2]|0)-k|0;j=m>>2;if(m|0){if(j>>>0>1073741823)$n(l);b=wk(m)|0;f[n>>2]=b;f[l>>2]=b;f[i>>2]=b+(j<<2);if((m|0)>0){Bf(b|0,k|0,m|0)|0;f[n>>2]=b+(m>>>2<<2)}}m=c+44|0;f[m>>2]=f[g>>2];f[m+4>>2]=f[g+4>>2];f[m+8>>2]=f[g+8>>2];f[m+12>>2]=f[g+12>>2];f[c>>2]=2152;o=c;f[a>>2]=o;return}case 4:{c=wk(112)|0;f[c>>2]=1536;f[c+4>>2]=d;m=c+8|0;f[m>>2]=f[e>>2];f[m+4>>2]=f[e+4>>2];f[m+8>>2]=f[e+8>>2];f[m+12>>2]=f[e+12>>2];f[m+16>>2]=f[e+16>>2];f[m+20>>2]=f[e+20>>2];m=c+32|0;f[m>>2]=0;b=c+36|0;f[b>>2]=0;n=c+40|0;f[n>>2]=0;k=f[e+24>>2]|0;j=(f[e+28>>2]|0)-k|0;i=j>>2;if(j|0){if(i>>>0>1073741823)$n(m);l=wk(j)|0;f[b>>2]=l;f[m>>2]=l;f[n>>2]=l+(i<<2);if((j|0)>0){Bf(l|0,k|0,j|0)|0;f[b>>2]=l+(j>>>2<<2)}}j=c+44|0;f[j>>2]=f[g>>2];f[j+4>>2]=f[g+4>>2];f[j+8>>2]=f[g+8>>2];f[j+12>>2]=f[g+12>>2];f[c>>2]=2208;j=c+60|0;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));o=c;f[a>>2]=o;return}case 3:{c=wk(92)|0;j=h&65535;f[c>>2]=1536;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];h=c+32|0;f[h>>2]=0;l=c+36|0;f[l>>2]=0;b=c+40|0;f[b>>2]=0;k=f[e+24>>2]|0;i=(f[e+28>>2]|0)-k|0;n=i>>2;if(i|0){if(n>>>0>1073741823)$n(h);m=wk(i)|0;f[l>>2]=m;f[h>>2]=m;f[b>>2]=m+(n<<2);if((i|0)>0){Bf(m|0,k|0,i|0)|0;f[l>>2]=m+(i>>>2<<2)}}i=c+44|0;f[i>>2]=f[g>>2];f[i+4>>2]=f[g+4>>2];f[i+8>>2]=f[g+8>>2];f[i+12>>2]=f[g+12>>2];f[c>>2]=2264;i=c+60|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;f[i+24>>2]=0;f[c+88>>2]=j;o=c;f[a>>2]=o;return}case 5:{c=wk(104)|0;tf(c,d,e,g);o=c;f[a>>2]=o;return}case 6:{c=wk(124)|0;Ze(c,d,e,g);o=c;f[a>>2]=o;return}default:{o=0;f[a>>2]=o;return}}}function ic(a,b,c,d,e,g,h){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;var i=0,j=0,k=0,l=0,m=0,n=0,o=0;switch(c|0){case 1:{c=wk(60)|0;f[c>>2]=1536;f[c+4>>2]=d;b=c+8|0;f[b>>2]=f[e>>2];f[b+4>>2]=f[e+4>>2];f[b+8>>2]=f[e+8>>2];f[b+12>>2]=f[e+12>>2];f[b+16>>2]=f[e+16>>2];f[b+20>>2]=f[e+20>>2];b=c+32|0;f[b>>2]=0;i=c+36|0;f[i>>2]=0;j=c+40|0;f[j>>2]=0;k=f[e+24>>2]|0;l=(f[e+28>>2]|0)-k|0;m=l>>2;if(l|0){if(m>>>0>1073741823)$n(b);n=wk(l)|0;f[i>>2]=n;f[b>>2]=n;f[j>>2]=n+(m<<2);if((l|0)>0){Bf(n|0,k|0,l|0)|0;f[i>>2]=n+(l>>>2<<2)}}l=c+44|0;f[l>>2]=f[g>>2];f[l+4>>2]=f[g+4>>2];f[l+8>>2]=f[g+8>>2];f[l+12>>2]=f[g+12>>2];f[c>>2]=1648;o=c;f[a>>2]=o;return}case 2:{c=wk(60)|0;f[c>>2]=1536;f[c+4>>2]=d;l=c+8|0;f[l>>2]=f[e>>2];f[l+4>>2]=f[e+4>>2];f[l+8>>2]=f[e+8>>2];f[l+12>>2]=f[e+12>>2];f[l+16>>2]=f[e+16>>2];f[l+20>>2]=f[e+20>>2];l=c+32|0;f[l>>2]=0;n=c+36|0;f[n>>2]=0;i=c+40|0;f[i>>2]=0;k=f[e+24>>2]|0;m=(f[e+28>>2]|0)-k|0;j=m>>2;if(m|0){if(j>>>0>1073741823)$n(l);b=wk(m)|0;f[n>>2]=b;f[l>>2]=b;f[i>>2]=b+(j<<2);if((m|0)>0){Bf(b|0,k|0,m|0)|0;f[n>>2]=b+(m>>>2<<2)}}m=c+44|0;f[m>>2]=f[g>>2];f[m+4>>2]=f[g+4>>2];f[m+8>>2]=f[g+8>>2];f[m+12>>2]=f[g+12>>2];f[c>>2]=1704;o=c;f[a>>2]=o;return}case 4:{c=wk(112)|0;f[c>>2]=1536;f[c+4>>2]=d;m=c+8|0;f[m>>2]=f[e>>2];f[m+4>>2]=f[e+4>>2];f[m+8>>2]=f[e+8>>2];f[m+12>>2]=f[e+12>>2];f[m+16>>2]=f[e+16>>2];f[m+20>>2]=f[e+20>>2];m=c+32|0;f[m>>2]=0;b=c+36|0;f[b>>2]=0;n=c+40|0;f[n>>2]=0;k=f[e+24>>2]|0;j=(f[e+28>>2]|0)-k|0;i=j>>2;if(j|0){if(i>>>0>1073741823)$n(m);l=wk(j)|0;f[b>>2]=l;f[m>>2]=l;f[n>>2]=l+(i<<2);if((j|0)>0){Bf(l|0,k|0,j|0)|0;f[b>>2]=l+(j>>>2<<2)}}j=c+44|0;f[j>>2]=f[g>>2];f[j+4>>2]=f[g+4>>2];f[j+8>>2]=f[g+8>>2];f[j+12>>2]=f[g+12>>2];f[c>>2]=1760;j=c+60|0;l=j+52|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(l|0));o=c;f[a>>2]=o;return}case 3:{c=wk(92)|0;j=h&65535;f[c>>2]=1536;f[c+4>>2]=d;h=c+8|0;f[h>>2]=f[e>>2];f[h+4>>2]=f[e+4>>2];f[h+8>>2]=f[e+8>>2];f[h+12>>2]=f[e+12>>2];f[h+16>>2]=f[e+16>>2];f[h+20>>2]=f[e+20>>2];h=c+32|0;f[h>>2]=0;l=c+36|0;f[l>>2]=0;b=c+40|0;f[b>>2]=0;k=f[e+24>>2]|0;i=(f[e+28>>2]|0)-k|0;n=i>>2;if(i|0){if(n>>>0>1073741823)$n(h);m=wk(i)|0;f[l>>2]=m;f[h>>2]=m;f[b>>2]=m+(n<<2);if((i|0)>0){Bf(m|0,k|0,i|0)|0;f[l>>2]=m+(i>>>2<<2)}}i=c+44|0;f[i>>2]=f[g>>2];f[i+4>>2]=f[g+4>>2];f[i+8>>2]=f[g+8>>2];f[i+12>>2]=f[g+12>>2];f[c>>2]=1816;i=c+60|0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=0;f[i+20>>2]=0;f[i+24>>2]=0;f[c+88>>2]=j;o=c;f[a>>2]=o;return}case 5:{c=wk(104)|0;uf(c,d,e,g);o=c;f[a>>2]=o;return}case 6:{c=wk(124)|0;_e(c,d,e,g);o=c;f[a>>2]=o;return}default:{o=0;f[a>>2]=o;return}}}function jc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0;e=u;u=u+16|0;g=e+8|0;h=e+4|0;i=e;j=a+64|0;k=f[j>>2]|0;if((f[k+28>>2]|0)==(f[k+24>>2]|0)){u=e;return}l=c+96|0;c=a+52|0;m=d+84|0;n=d+68|0;d=a+56|0;o=a+60|0;p=a+12|0;q=a+28|0;r=a+40|0;s=a+44|0;t=a+48|0;v=0;w=0;x=k;while(1){k=f[(f[x+24>>2]|0)+(w<<2)>>2]|0;if((k|0)==-1){y=v;z=x}else{A=v+1|0;B=(k|0)/3|0;C=f[(f[l>>2]|0)+(B*12|0)+(k-(B*3|0)<<2)>>2]|0;if(!(b[m>>0]|0))D=f[(f[n>>2]|0)+(C<<2)>>2]|0;else D=C;f[g>>2]=D;C=f[d>>2]|0;if(C>>>0<(f[o>>2]|0)>>>0){f[C>>2]=D;f[d>>2]=C+4}else Ng(c,g);f[g>>2]=k;f[h>>2]=0;a:do if(!(f[(f[p>>2]|0)+(w>>>5<<2)>>2]&1<<(w&31)))E=k;else{C=k+1|0;B=((C>>>0)%3|0|0)==0?k+-2|0:C;if(((B|0)!=-1?(f[(f[a>>2]|0)+(B>>>5<<2)>>2]&1<<(B&31)|0)==0:0)?(C=f[(f[(f[j>>2]|0)+12>>2]|0)+(B<<2)>>2]|0,B=C+1|0,(C|0)!=-1):0){F=((B>>>0)%3|0|0)==0?C+-2|0:B;f[h>>2]=F;if((F|0)==-1){E=k;break}B=F;while(1){f[g>>2]=B;F=B+1|0;C=((F>>>0)%3|0|0)==0?B+-2|0:F;if((C|0)==-1)break;if(f[(f[a>>2]|0)+(C>>>5<<2)>>2]&1<<(C&31)|0)break;F=f[(f[(f[j>>2]|0)+12>>2]|0)+(C<<2)>>2]|0;C=F+1|0;if((F|0)==-1)break;G=((C>>>0)%3|0|0)==0?F+-2|0:C;f[h>>2]=G;if((G|0)==-1){E=B;break a}else B=G}f[h>>2]=-1;E=B;break}f[h>>2]=-1;E=k}while(0);f[(f[q>>2]|0)+(E<<2)>>2]=v;k=f[s>>2]|0;if((k|0)==(f[t>>2]|0))Ng(r,g);else{f[k>>2]=f[g>>2];f[s>>2]=k+4}k=f[j>>2]|0;G=f[g>>2]|0;b:do if(((G|0)!=-1?(C=(((G>>>0)%3|0|0)==0?2:-1)+G|0,(C|0)!=-1):0)?(F=f[(f[k+12>>2]|0)+(C<<2)>>2]|0,(F|0)!=-1):0){C=F+(((F>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=C;if((C|0)!=-1&(C|0)!=(G|0)){F=A;H=v;I=C;while(1){C=I+1|0;J=((C>>>0)%3|0|0)==0?I+-2|0:C;do if(f[(f[a>>2]|0)+(J>>>5<<2)>>2]&1<<(J&31)){C=F+1|0;K=(I|0)/3|0;L=f[(f[l>>2]|0)+(K*12|0)+(I-(K*3|0)<<2)>>2]|0;if(!(b[m>>0]|0))M=f[(f[n>>2]|0)+(L<<2)>>2]|0;else M=L;f[i>>2]=M;L=f[d>>2]|0;if(L>>>0<(f[o>>2]|0)>>>0){f[L>>2]=M;f[d>>2]=L+4}else Ng(c,i);L=f[s>>2]|0;if((L|0)==(f[t>>2]|0)){Ng(r,h);N=C;O=F;break}else{f[L>>2]=f[h>>2];f[s>>2]=L+4;N=C;O=F;break}}else{N=F;O=H}while(0);f[(f[q>>2]|0)+(f[h>>2]<<2)>>2]=O;P=f[j>>2]|0;J=f[h>>2]|0;if((J|0)==-1)break;C=(((J>>>0)%3|0|0)==0?2:-1)+J|0;if((C|0)==-1)break;J=f[(f[P+12>>2]|0)+(C<<2)>>2]|0;if((J|0)==-1)break;I=J+(((J>>>0)%3|0|0)==0?2:-1)|0;f[h>>2]=I;if(!((I|0)!=-1?(I|0)!=(f[g>>2]|0):0)){Q=N;R=P;break b}else{F=N;H=O}}f[h>>2]=-1;Q=N;R=P}else{Q=A;R=k}}else S=30;while(0);if((S|0)==30){S=0;f[h>>2]=-1;Q=A;R=k}y=Q;z=R}w=w+1|0;if(w>>>0>=(f[z+28>>2]|0)-(f[z+24>>2]|0)>>2>>>0)break;else{v=y;x=z}}u=e;return}function kc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0;d=u;u=u+80|0;e=d+76|0;g=d;i=d+72|0;j=d+64|0;k=d+68|0;l=a+28|0;do if(((h[(f[l>>2]|0)+36>>0]|0)<<8&65535)<512){m=c+8|0;n=f[m>>2]|0;o=f[m+4>>2]|0;m=c+16|0;p=m;q=f[p>>2]|0;r=vl(q|0,f[p+4>>2]|0,4,0)|0;p=H;if((o|0)<(p|0)|(o|0)==(p|0)&n>>>0<r>>>0){s=0;u=d;return s|0}else{n=(f[c>>2]|0)+q|0;q=h[n>>0]|h[n+1>>0]<<8|h[n+2>>0]<<16|h[n+3>>0]<<24;f[e>>2]=q;n=m;f[n>>2]=r;f[n+4>>2]=p;t=q;break}}else if(zh(e,c)|0){t=f[e>>2]|0;break}else{s=0;u=d;return s|0}while(0);if(!t){s=0;u=d;return s|0}q=a+4|0;p=a+8|0;n=f[q>>2]|0;r=(f[p>>2]|0)-n>>2;if(t>>>0>r>>>0){Eg(q,t-r|0);if(!(f[e>>2]|0)){s=1;u=d;return s|0}}else if(t>>>0<r>>>0)f[p>>2]=n+(t<<2);t=f[a+32>>2]|0;n=c+8|0;p=c+16|0;r=g+60|0;m=t+8|0;o=a+16|0;v=a+20|0;a=0;while(1){w=n;x=f[w>>2]|0;y=f[w+4>>2]|0;w=p;z=f[w>>2]|0;A=f[w+4>>2]|0;if(!((y|0)>(A|0)|(y|0)==(A|0)&x>>>0>z>>>0)){s=0;B=41;break}w=f[c>>2]|0;C=b[w+z>>0]|0;D=vl(z|0,A|0,1,0)|0;E=H;F=p;f[F>>2]=D;f[F+4>>2]=E;if(!((y|0)>(E|0)|(y|0)==(E|0)&x>>>0>D>>>0)){s=0;B=41;break}E=b[w+D>>0]|0;D=vl(z|0,A|0,2,0)|0;F=H;G=p;f[G>>2]=D;f[G+4>>2]=F;if(!((y|0)>(F|0)|(y|0)==(F|0)&x>>>0>D>>>0)){s=0;B=41;break}F=b[w+D>>0]|0;D=vl(z|0,A|0,3,0)|0;G=H;I=p;f[I>>2]=D;f[I+4>>2]=G;if(!((y|0)>(G|0)|(y|0)==(G|0)&x>>>0>D>>>0)){s=0;B=41;break}x=b[w+D>>0]|0;D=vl(z|0,A|0,4,0)|0;A=p;f[A>>2]=D;f[A+4>>2]=H;A=E&255;if((E+-1&255)>10){s=0;B=41;break}oj(g);E=W(Bj(A)|0,F&255)|0;Ih(g,C&255,0,F,A,x<<24>>24!=0,E,((E|0)<0)<<31>>31,0,0);E=f[l>>2]|0;if((((h[E+36>>0]|0)<<8|(h[E+37>>0]|0))&65535)<259){E=n;x=f[E>>2]|0;A=f[E+4>>2]|0;E=p;F=f[E>>2]|0;C=vl(F|0,f[E+4>>2]|0,2,0)|0;E=H;if((A|0)<(E|0)|(A|0)==(E|0)&x>>>0<C>>>0){B=39;break}x=(f[c>>2]|0)+F|0;F=h[x>>0]|h[x+1>>0]<<8;x=p;f[x>>2]=C;f[x+4>>2]=E;E=F&65535;f[i>>2]=E;J=E}else{zh(i,c)|0;J=f[i>>2]|0}f[r>>2]=J;E=wk(96)|0;$i(E,g);f[j>>2]=E;E=ig(t,j)|0;F=f[j>>2]|0;f[j>>2]=0;if(F|0){x=F+88|0;C=f[x>>2]|0;f[x>>2]=0;if(C|0){x=f[C+8>>2]|0;if(x|0){f[C+12>>2]=x;Ko(x)}Ko(C)}C=f[F+68>>2]|0;if(C|0){f[F+72>>2]=C;Ko(C)}C=F+64|0;x=f[C>>2]|0;f[C>>2]=0;if(x|0){C=f[x>>2]|0;if(C|0){f[x+4>>2]=C;Ko(C)}Ko(x)}Ko(F)}f[(f[(f[m>>2]|0)+(E<<2)>>2]|0)+60>>2]=f[i>>2];f[(f[q>>2]|0)+(a<<2)>>2]=E;F=f[o>>2]|0;x=(f[v>>2]|0)-F>>2;C=F;if((E|0)<(x|0))K=C;else{F=E+1|0;f[k>>2]=-1;if(F>>>0<=x>>>0)if(F>>>0<x>>>0){f[v>>2]=C+(F<<2);L=C}else L=C;else{Of(o,F-x|0,k);L=f[o>>2]|0}K=L}f[K+(E<<2)>>2]=a;a=a+1|0;if(a>>>0>=(f[e>>2]|0)>>>0){s=1;B=41;break}}if((B|0)==39){s=0;u=d;return s|0}else if((B|0)==41){u=d;return s|0}return 0}function lc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+48|0;d=e+32|0;h=e+24|0;i=e+16|0;j=e;k=e+12|0;l=a+8|0;m=f[l>>2]|0;if((m+-2|0)>>>0<=28){f[a+72>>2]=m;n=1<<m;f[a+76>>2]=n+-1;m=n+-2|0;f[a+80>>2]=m;f[a+84>>2]=(m|0)/2|0}m=a+40|0;f[a+48>>2]=g;g=a+36|0;n=f[g>>2]|0;o=(f[n+4>>2]|0)-(f[n>>2]|0)|0;p=o>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;if((o|0)<=0){u=e;return 1}o=j+4|0;q=j+8|0;r=a+84|0;s=a+88|0;t=a+80|0;a=h+4|0;v=i+4|0;w=d+4|0;x=f[n>>2]|0;if((f[n+4>>2]|0)==(x|0)){y=n;$n(y)}n=0;z=x;while(1){f[k>>2]=f[z+(n<<2)>>2];f[d>>2]=f[k>>2];Ob(m,d,j);x=f[j>>2]|0;A=(x|0)>-1?x:0-x|0;B=f[o>>2]|0;C=(B|0)>-1?B:0-B|0;D=vl(C|0,((C|0)<0)<<31>>31|0,A|0,((A|0)<0)<<31>>31|0)|0;A=f[q>>2]|0;C=(A|0)>-1;E=C?A:0-A|0;A=vl(D|0,H|0,E|0,((E|0)<0)<<31>>31|0)|0;E=H;do if(!((A|0)==0&(E|0)==0)){D=f[r>>2]|0;F=((D|0)<0)<<31>>31;G=Bk(D|0,F|0,x|0,((x|0)<0)<<31>>31|0)|0;I=ni(G|0,H|0,A|0,E|0)|0;f[j>>2]=I;G=Bk(D|0,F|0,B|0,((B|0)<0)<<31>>31|0)|0;F=ni(G|0,H|0,A|0,E|0)|0;f[o>>2]=F;G=D-((I|0)>-1?I:0-I|0)-((F|0)>-1?F:0-F|0)|0;if(C){f[q>>2]=G;break}else{f[q>>2]=0-G;break}}else f[j>>2]=f[r>>2];while(0);C=pi(s)|0;E=f[j>>2]|0;if(C){C=0-E|0;A=0-(f[o>>2]|0)|0;B=0-(f[q>>2]|0)|0;f[j>>2]=C;f[o>>2]=A;f[q>>2]=B;J=C;K=A}else{J=E;K=f[o>>2]|0}do if((J|0)<=-1){if((K|0)<0){E=f[q>>2]|0;L=(E|0)>-1?E:0-E|0;M=E}else{E=f[q>>2]|0;L=(f[t>>2]|0)-((E|0)>-1?E:0-E|0)|0;M=E}if((M|0)<0){N=(K|0)>-1?K:0-K|0;O=L;break}else{N=(f[t>>2]|0)-((K|0)>-1?K:0-K|0)|0;O=L;break}}else{E=f[r>>2]|0;N=(f[q>>2]|0)+E|0;O=E+K|0}while(0);E=(O|0)==0;A=(N|0)==0;C=f[t>>2]|0;do if(N|O){B=(C|0)==(N|0);if(!(E&B)){x=(C|0)==(O|0);if(!(A&x)){if(E?(G=f[r>>2]|0,(G|0)<(N|0)):0){P=0;Q=(G<<1)-N|0;break}if(x?(x=f[r>>2]|0,(x|0)>(N|0)):0){P=O;Q=(x<<1)-N|0;break}if(B?(B=f[r>>2]|0,(B|0)>(O|0)):0){P=(B<<1)-O|0;Q=N;break}if(A){B=f[r>>2]|0;P=(B|0)<(O|0)?(B<<1)-O|0:O;Q=0}else{P=O;Q=N}}else{P=O;Q=O}}else{P=N;Q=N}}else{P=C;Q=C}while(0);C=n<<1;A=b+(C<<2)|0;E=c+(C<<2)|0;C=f[A>>2]|0;B=f[A+4>>2]|0;f[h>>2]=P;f[a>>2]=Q;f[i>>2]=C;f[v>>2]=B;Cc(d,l,h,i);f[E>>2]=f[d>>2];f[E+4>>2]=f[w>>2];n=n+1|0;if((n|0)>=(p|0)){R=6;break}E=f[g>>2]|0;z=f[E>>2]|0;if((f[E+4>>2]|0)-z>>2>>>0<=n>>>0){y=E;R=7;break}}if((R|0)==6){u=e;return 1}else if((R|0)==7)$n(y);return 0}function mc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+48|0;d=e+32|0;h=e+24|0;i=e+16|0;j=e;k=e+12|0;l=a+8|0;m=f[l>>2]|0;if((m+-2|0)>>>0<=28){f[a+72>>2]=m;n=1<<m;f[a+76>>2]=n+-1;m=n+-2|0;f[a+80>>2]=m;f[a+84>>2]=(m|0)/2|0}m=a+40|0;f[a+48>>2]=g;g=a+36|0;n=f[g>>2]|0;o=(f[n+4>>2]|0)-(f[n>>2]|0)|0;p=o>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;if((o|0)<=0){u=e;return 1}o=j+4|0;q=j+8|0;r=a+84|0;s=a+88|0;t=a+80|0;a=h+4|0;v=i+4|0;w=d+4|0;x=f[n>>2]|0;if((f[n+4>>2]|0)==(x|0)){y=n;$n(y)}n=0;z=x;while(1){f[k>>2]=f[z+(n<<2)>>2];f[d>>2]=f[k>>2];Mb(m,d,j);x=f[j>>2]|0;A=(x|0)>-1?x:0-x|0;B=f[o>>2]|0;C=(B|0)>-1?B:0-B|0;D=vl(C|0,((C|0)<0)<<31>>31|0,A|0,((A|0)<0)<<31>>31|0)|0;A=f[q>>2]|0;C=(A|0)>-1;E=C?A:0-A|0;A=vl(D|0,H|0,E|0,((E|0)<0)<<31>>31|0)|0;E=H;do if(!((A|0)==0&(E|0)==0)){D=f[r>>2]|0;F=((D|0)<0)<<31>>31;G=Bk(D|0,F|0,x|0,((x|0)<0)<<31>>31|0)|0;I=ni(G|0,H|0,A|0,E|0)|0;f[j>>2]=I;G=Bk(D|0,F|0,B|0,((B|0)<0)<<31>>31|0)|0;F=ni(G|0,H|0,A|0,E|0)|0;f[o>>2]=F;G=D-((I|0)>-1?I:0-I|0)-((F|0)>-1?F:0-F|0)|0;if(C){f[q>>2]=G;break}else{f[q>>2]=0-G;break}}else f[j>>2]=f[r>>2];while(0);C=pi(s)|0;E=f[j>>2]|0;if(C){C=0-E|0;A=0-(f[o>>2]|0)|0;B=0-(f[q>>2]|0)|0;f[j>>2]=C;f[o>>2]=A;f[q>>2]=B;J=C;K=A}else{J=E;K=f[o>>2]|0}do if((J|0)<=-1){if((K|0)<0){E=f[q>>2]|0;L=(E|0)>-1?E:0-E|0;M=E}else{E=f[q>>2]|0;L=(f[t>>2]|0)-((E|0)>-1?E:0-E|0)|0;M=E}if((M|0)<0){N=(K|0)>-1?K:0-K|0;O=L;break}else{N=(f[t>>2]|0)-((K|0)>-1?K:0-K|0)|0;O=L;break}}else{E=f[r>>2]|0;N=(f[q>>2]|0)+E|0;O=E+K|0}while(0);E=(O|0)==0;A=(N|0)==0;C=f[t>>2]|0;do if(N|O){B=(C|0)==(N|0);if(!(E&B)){x=(C|0)==(O|0);if(!(A&x)){if(E?(G=f[r>>2]|0,(G|0)<(N|0)):0){P=0;Q=(G<<1)-N|0;break}if(x?(x=f[r>>2]|0,(x|0)>(N|0)):0){P=O;Q=(x<<1)-N|0;break}if(B?(B=f[r>>2]|0,(B|0)>(O|0)):0){P=(B<<1)-O|0;Q=N;break}if(A){B=f[r>>2]|0;P=(B|0)<(O|0)?(B<<1)-O|0:O;Q=0}else{P=O;Q=N}}else{P=O;Q=O}}else{P=N;Q=N}}else{P=C;Q=C}while(0);C=n<<1;A=b+(C<<2)|0;E=c+(C<<2)|0;C=f[A>>2]|0;B=f[A+4>>2]|0;f[h>>2]=P;f[a>>2]=Q;f[i>>2]=C;f[v>>2]=B;Cc(d,l,h,i);f[E>>2]=f[d>>2];f[E+4>>2]=f[w>>2];n=n+1|0;if((n|0)>=(p|0)){R=6;break}E=f[g>>2]|0;z=f[E>>2]|0;if((f[E+4>>2]|0)-z>>2>>>0<=n>>>0){y=E;R=7;break}}if((R|0)==6){u=e;return 1}else if((R|0)==7)$n(y);return 0}function nc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+48|0;d=e+32|0;h=e+24|0;i=e+16|0;j=e;k=e+12|0;l=a+8|0;m=f[l>>2]|0;if((m+-2|0)>>>0<=28){f[a+72>>2]=m;n=1<<m;f[a+76>>2]=n+-1;m=n+-2|0;f[a+80>>2]=m;f[a+84>>2]=(m|0)/2|0}m=a+40|0;f[a+48>>2]=g;g=a+36|0;n=f[g>>2]|0;o=(f[n+4>>2]|0)-(f[n>>2]|0)|0;p=o>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;if((o|0)<=0){u=e;return 1}o=j+4|0;q=j+8|0;r=a+84|0;s=a+88|0;t=a+80|0;a=d+4|0;v=i+4|0;w=h+4|0;x=f[n>>2]|0;if((f[n+4>>2]|0)==(x|0)){y=n;$n(y)}n=0;z=x;while(1){f[k>>2]=f[z+(n<<2)>>2];f[d>>2]=f[k>>2];Ob(m,d,j);x=f[j>>2]|0;A=(x|0)>-1?x:0-x|0;B=f[o>>2]|0;C=(B|0)>-1?B:0-B|0;D=vl(C|0,((C|0)<0)<<31>>31|0,A|0,((A|0)<0)<<31>>31|0)|0;A=f[q>>2]|0;C=(A|0)>-1;E=C?A:0-A|0;A=vl(D|0,H|0,E|0,((E|0)<0)<<31>>31|0)|0;E=H;do if(!((A|0)==0&(E|0)==0)){D=f[r>>2]|0;F=((D|0)<0)<<31>>31;G=Bk(D|0,F|0,x|0,((x|0)<0)<<31>>31|0)|0;I=ni(G|0,H|0,A|0,E|0)|0;f[j>>2]=I;G=Bk(D|0,F|0,B|0,((B|0)<0)<<31>>31|0)|0;F=ni(G|0,H|0,A|0,E|0)|0;f[o>>2]=F;G=D-((I|0)>-1?I:0-I|0)-((F|0)>-1?F:0-F|0)|0;if(C){f[q>>2]=G;break}else{f[q>>2]=0-G;break}}else f[j>>2]=f[r>>2];while(0);C=pi(s)|0;E=f[j>>2]|0;if(C){C=0-E|0;A=0-(f[o>>2]|0)|0;B=0-(f[q>>2]|0)|0;f[j>>2]=C;f[o>>2]=A;f[q>>2]=B;J=C;K=A}else{J=E;K=f[o>>2]|0}do if((J|0)<=-1){if((K|0)<0){E=f[q>>2]|0;L=(E|0)>-1?E:0-E|0;M=E}else{E=f[q>>2]|0;L=(f[t>>2]|0)-((E|0)>-1?E:0-E|0)|0;M=E}if((M|0)<0){N=(K|0)>-1?K:0-K|0;O=L;break}else{N=(f[t>>2]|0)-((K|0)>-1?K:0-K|0)|0;O=L;break}}else{E=f[r>>2]|0;N=(f[q>>2]|0)+E|0;O=E+K|0}while(0);E=(O|0)==0;A=(N|0)==0;C=f[t>>2]|0;do if(N|O){B=(C|0)==(N|0);if(!(E&B)){x=(C|0)==(O|0);if(!(A&x)){if(E?(G=f[r>>2]|0,(G|0)<(N|0)):0){P=0;Q=(G<<1)-N|0;break}if(x?(x=f[r>>2]|0,(x|0)>(N|0)):0){P=O;Q=(x<<1)-N|0;break}if(B?(B=f[r>>2]|0,(B|0)>(O|0)):0){P=(B<<1)-O|0;Q=N;break}if(A){B=f[r>>2]|0;P=(B|0)<(O|0)?(B<<1)-O|0:O;Q=0}else{P=O;Q=N}}else{P=O;Q=O}}else{P=N;Q=N}}else{P=C;Q=C}while(0);C=n<<1;A=b+(C<<2)|0;E=c+(C<<2)|0;C=f[A+4>>2]|0;f[d>>2]=f[A>>2];f[a>>2]=C;f[i>>2]=P;f[v>>2]=Q;gd(h,l,i,d);f[E>>2]=f[h>>2];f[E+4>>2]=f[w>>2];n=n+1|0;if((n|0)>=(p|0)){R=6;break}E=f[g>>2]|0;z=f[E>>2]|0;if((f[E+4>>2]|0)-z>>2>>>0<=n>>>0){y=E;R=7;break}}if((R|0)==6){u=e;return 1}else if((R|0)==7)$n(y);return 0}function oc(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0;e=u;u=u+48|0;d=e+32|0;h=e+24|0;i=e+16|0;j=e;k=e+12|0;l=a+8|0;m=f[l>>2]|0;if((m+-2|0)>>>0<=28){f[a+72>>2]=m;n=1<<m;f[a+76>>2]=n+-1;m=n+-2|0;f[a+80>>2]=m;f[a+84>>2]=(m|0)/2|0}m=a+40|0;f[a+48>>2]=g;g=a+36|0;n=f[g>>2]|0;o=(f[n+4>>2]|0)-(f[n>>2]|0)|0;p=o>>2;f[j>>2]=0;f[j+4>>2]=0;f[j+8>>2]=0;if((o|0)<=0){u=e;return 1}o=j+4|0;q=j+8|0;r=a+84|0;s=a+88|0;t=a+80|0;a=d+4|0;v=i+4|0;w=h+4|0;x=f[n>>2]|0;if((f[n+4>>2]|0)==(x|0)){y=n;$n(y)}n=0;z=x;while(1){f[k>>2]=f[z+(n<<2)>>2];f[d>>2]=f[k>>2];Mb(m,d,j);x=f[j>>2]|0;A=(x|0)>-1?x:0-x|0;B=f[o>>2]|0;C=(B|0)>-1?B:0-B|0;D=vl(C|0,((C|0)<0)<<31>>31|0,A|0,((A|0)<0)<<31>>31|0)|0;A=f[q>>2]|0;C=(A|0)>-1;E=C?A:0-A|0;A=vl(D|0,H|0,E|0,((E|0)<0)<<31>>31|0)|0;E=H;do if(!((A|0)==0&(E|0)==0)){D=f[r>>2]|0;F=((D|0)<0)<<31>>31;G=Bk(D|0,F|0,x|0,((x|0)<0)<<31>>31|0)|0;I=ni(G|0,H|0,A|0,E|0)|0;f[j>>2]=I;G=Bk(D|0,F|0,B|0,((B|0)<0)<<31>>31|0)|0;F=ni(G|0,H|0,A|0,E|0)|0;f[o>>2]=F;G=D-((I|0)>-1?I:0-I|0)-((F|0)>-1?F:0-F|0)|0;if(C){f[q>>2]=G;break}else{f[q>>2]=0-G;break}}else f[j>>2]=f[r>>2];while(0);C=pi(s)|0;E=f[j>>2]|0;if(C){C=0-E|0;A=0-(f[o>>2]|0)|0;B=0-(f[q>>2]|0)|0;f[j>>2]=C;f[o>>2]=A;f[q>>2]=B;J=C;K=A}else{J=E;K=f[o>>2]|0}do if((J|0)<=-1){if((K|0)<0){E=f[q>>2]|0;L=(E|0)>-1?E:0-E|0;M=E}else{E=f[q>>2]|0;L=(f[t>>2]|0)-((E|0)>-1?E:0-E|0)|0;M=E}if((M|0)<0){N=(K|0)>-1?K:0-K|0;O=L;break}else{N=(f[t>>2]|0)-((K|0)>-1?K:0-K|0)|0;O=L;break}}else{E=f[r>>2]|0;N=(f[q>>2]|0)+E|0;O=E+K|0}while(0);E=(O|0)==0;A=(N|0)==0;C=f[t>>2]|0;do if(N|O){B=(C|0)==(N|0);if(!(E&B)){x=(C|0)==(O|0);if(!(A&x)){if(E?(G=f[r>>2]|0,(G|0)<(N|0)):0){P=0;Q=(G<<1)-N|0;break}if(x?(x=f[r>>2]|0,(x|0)>(N|0)):0){P=O;Q=(x<<1)-N|0;break}if(B?(B=f[r>>2]|0,(B|0)>(O|0)):0){P=(B<<1)-O|0;Q=N;break}if(A){B=f[r>>2]|0;P=(B|0)<(O|0)?(B<<1)-O|0:O;Q=0}else{P=O;Q=N}}else{P=O;Q=O}}else{P=N;Q=N}}else{P=C;Q=C}while(0);C=n<<1;A=b+(C<<2)|0;E=c+(C<<2)|0;C=f[A+4>>2]|0;f[d>>2]=f[A>>2];f[a>>2]=C;f[i>>2]=P;f[v>>2]=Q;gd(h,l,i,d);f[E>>2]=f[h>>2];f[E+4>>2]=f[w>>2];n=n+1|0;if((n|0)>=(p|0)){R=6;break}E=f[g>>2]|0;z=f[E>>2]|0;if((f[E+4>>2]|0)-z>>2>>>0<=n>>>0){y=E;R=7;break}}if((R|0)==6){u=e;return 1}else if((R|0)==7)$n(y);return 0}function pc(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0;d=u;u=u+32|0;e=d+16|0;g=d;if((j[c+38>>1]|0)<514){i=c+8|0;k=f[i+4>>2]|0;l=c+16|0;m=l;n=f[m>>2]|0;o=f[m+4>>2]|0;if(!((k|0)>(o|0)|((k|0)==(o|0)?(f[i>>2]|0)>>>0>n>>>0:0))){p=0;u=d;return p|0}i=b[(f[c>>2]|0)+n>>0]|0;k=vl(n|0,o|0,1,0)|0;o=l;f[o>>2]=k;f[o+4>>2]=H;if(i<<24>>24){p=0;u=d;return p|0}}zh(e,c)|0;i=f[e>>2]|0;if(i){o=a+60|0;td(o,i,0);ym(g);if(rd(g,c)|0){if(f[e>>2]|0){i=0;do{k=pi(g)|0;l=(f[o>>2]|0)+(i>>>5<<2)|0;n=1<<(i&31);if(k)q=f[l>>2]|n;else q=f[l>>2]&~n;f[l>>2]=q;i=i+1|0}while(i>>>0<(f[e>>2]|0)>>>0)}r=13}}else r=13;do if((r|0)==13){zh(e,c)|0;i=f[e>>2]|0;if(i|0){q=a+72|0;td(q,i,0);ym(g);if(!(rd(g,c)|0))break;if(f[e>>2]|0){i=0;do{o=pi(g)|0;l=(f[q>>2]|0)+(i>>>5<<2)|0;n=1<<(i&31);if(o)s=f[l>>2]|n;else s=f[l>>2]&~n;f[l>>2]=s;i=i+1|0}while(i>>>0<(f[e>>2]|0)>>>0)}}zh(e,c)|0;i=f[e>>2]|0;if(i|0){q=a+84|0;td(q,i,0);ym(g);if(!(rd(g,c)|0))break;if(f[e>>2]|0){i=0;do{l=pi(g)|0;n=(f[q>>2]|0)+(i>>>5<<2)|0;o=1<<(i&31);if(l)t=f[n>>2]|o;else t=f[n>>2]&~o;f[n>>2]=t;i=i+1|0}while(i>>>0<(f[e>>2]|0)>>>0)}}zh(e,c)|0;i=f[e>>2]|0;if(i|0){q=a+96|0;td(q,i,0);ym(g);if(!(rd(g,c)|0))break;if(f[e>>2]|0){i=0;do{n=pi(g)|0;o=(f[q>>2]|0)+(i>>>5<<2)|0;l=1<<(i&31);if(n)v=f[o>>2]|l;else v=f[o>>2]&~l;f[o>>2]=v;i=i+1|0}while(i>>>0<(f[e>>2]|0)>>>0)}}i=c+8|0;q=f[i>>2]|0;o=f[i+4>>2]|0;i=c+16|0;l=i;n=f[l>>2]|0;k=f[l+4>>2]|0;l=vl(n|0,k|0,4,0)|0;m=H;if((o|0)<(m|0)|(o|0)==(m|0)&q>>>0<l>>>0){p=0;u=d;return p|0}w=f[c>>2]|0;x=w+n|0;y=h[x>>0]|h[x+1>>0]<<8|h[x+2>>0]<<16|h[x+3>>0]<<24;x=i;f[x>>2]=l;f[x+4>>2]=m;m=vl(n|0,k|0,8,0)|0;k=H;if((o|0)<(k|0)|(o|0)==(k|0)&q>>>0<m>>>0){p=0;u=d;return p|0}q=w+l|0;l=h[q>>0]|h[q+1>>0]<<8|h[q+2>>0]<<16|h[q+3>>0]<<24;q=i;f[q>>2]=m;f[q+4>>2]=k;if((y|0)>(l|0)){p=0;u=d;return p|0}f[a+12>>2]=y;f[a+16>>2]=l;k=wl(l|0,((l|0)<0)<<31>>31|0,y|0,((y|0)<0)<<31>>31|0)|0;y=H;if(!(y>>>0<0|(y|0)==0&k>>>0<2147483647)){p=0;u=d;return p|0}y=k+1|0;f[a+20>>2]=y;k=(y|0)/2|0;l=a+24|0;f[l>>2]=k;f[a+28>>2]=0-k;if(y&1|0){p=1;u=d;return p|0}f[l>>2]=k+-1;p=1;u=d;return p|0}while(0);p=0;u=d;return p|0}function qc(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0;c=u;u=u+16|0;b=c+8|0;d=c+4|0;e=c;g=a+64|0;h=f[g>>2]|0;if((f[h+28>>2]|0)==(f[h+24>>2]|0)){u=c;return}i=a+52|0;j=a+56|0;k=a+60|0;l=a+12|0;m=a+28|0;n=a+40|0;o=a+44|0;p=a+48|0;q=0;r=0;s=h;while(1){h=f[(f[s+24>>2]|0)+(r<<2)>>2]|0;if((h|0)==-1){t=q;v=s}else{w=q+1|0;f[b>>2]=q;x=f[j>>2]|0;if((x|0)==(f[k>>2]|0))Ng(i,b);else{f[x>>2]=q;f[j>>2]=x+4}f[d>>2]=h;f[e>>2]=0;a:do if(!(f[(f[l>>2]|0)+(r>>>5<<2)>>2]&1<<(r&31)))y=h;else{x=h+1|0;z=((x>>>0)%3|0|0)==0?h+-2|0:x;if(((z|0)!=-1?(f[(f[a>>2]|0)+(z>>>5<<2)>>2]&1<<(z&31)|0)==0:0)?(x=f[(f[(f[g>>2]|0)+12>>2]|0)+(z<<2)>>2]|0,z=x+1|0,(x|0)!=-1):0){A=((z>>>0)%3|0|0)==0?x+-2|0:z;f[e>>2]=A;if((A|0)==-1){y=h;break}z=A;while(1){f[d>>2]=z;A=z+1|0;x=((A>>>0)%3|0|0)==0?z+-2|0:A;if((x|0)==-1)break;if(f[(f[a>>2]|0)+(x>>>5<<2)>>2]&1<<(x&31)|0)break;A=f[(f[(f[g>>2]|0)+12>>2]|0)+(x<<2)>>2]|0;x=A+1|0;if((A|0)==-1)break;B=((x>>>0)%3|0|0)==0?A+-2|0:x;f[e>>2]=B;if((B|0)==-1){y=z;break a}else z=B}f[e>>2]=-1;y=z;break}f[e>>2]=-1;y=h}while(0);f[(f[m>>2]|0)+(y<<2)>>2]=f[b>>2];h=f[o>>2]|0;if((h|0)==(f[p>>2]|0))Ng(n,d);else{f[h>>2]=f[d>>2];f[o>>2]=h+4}h=f[g>>2]|0;B=f[d>>2]|0;b:do if(((B|0)!=-1?(x=(((B>>>0)%3|0|0)==0?2:-1)+B|0,(x|0)!=-1):0)?(A=f[(f[h+12>>2]|0)+(x<<2)>>2]|0,(A|0)!=-1):0){x=A+(((A>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=x;if((x|0)!=-1&(x|0)!=(B|0)){A=w;C=x;while(1){x=C+1|0;D=((x>>>0)%3|0|0)==0?C+-2|0:x;do if(f[(f[a>>2]|0)+(D>>>5<<2)>>2]&1<<(D&31)){x=A+1|0;f[b>>2]=A;E=f[j>>2]|0;if((E|0)==(f[k>>2]|0))Ng(i,b);else{f[E>>2]=A;f[j>>2]=E+4}E=f[o>>2]|0;if((E|0)==(f[p>>2]|0)){Ng(n,e);F=x;break}else{f[E>>2]=f[e>>2];f[o>>2]=E+4;F=x;break}}else F=A;while(0);f[(f[m>>2]|0)+(f[e>>2]<<2)>>2]=f[b>>2];G=f[g>>2]|0;D=f[e>>2]|0;if((D|0)==-1)break;x=(((D>>>0)%3|0|0)==0?2:-1)+D|0;if((x|0)==-1)break;D=f[(f[G+12>>2]|0)+(x<<2)>>2]|0;if((D|0)==-1)break;C=D+(((D>>>0)%3|0|0)==0?2:-1)|0;f[e>>2]=C;if(!((C|0)!=-1?(C|0)!=(f[d>>2]|0):0)){H=F;I=G;break b}else A=F}f[e>>2]=-1;H=F;I=G}else{H=w;I=h}}else J=28;while(0);if((J|0)==28){J=0;f[e>>2]=-1;H=w;I=h}t=H;v=I}r=r+1|0;if(r>>>0>=(f[v+28>>2]|0)-(f[v+24>>2]|0)>>2>>>0)break;else{q=t;s=v}}u=c;return}function rc(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0;e=Ka[f[(f[a>>2]|0)+44>>2]&127](a)|0;if((e|0)<1){g=0;return g|0}h=(f[c+4>>2]|0)-(f[c>>2]|0)>>2;i=W(h,e)|0;Yf(a,h,e);h=a+16|0;j=f[h>>2]|0;if(!(f[j+80>>2]|0)){g=0;return g|0}k=(f[f[j>>2]>>2]|0)+(f[j+48>>2]|0)|0;if(!k){g=0;return g|0}j=d+8|0;l=j;m=f[l>>2]|0;n=f[l+4>>2]|0;l=d+16|0;o=l;p=f[o>>2]|0;q=f[o+4>>2]|0;if(!((n|0)>(q|0)|(n|0)==(q|0)&m>>>0>p>>>0)){g=0;return g|0}o=f[d>>2]|0;r=b[o+p>>0]|0;s=vl(p|0,q|0,1,0)|0;t=H;u=l;f[u>>2]=s;f[u+4>>2]=t;a:do if(!(r<<24>>24)){if(!((n|0)>(t|0)|(n|0)==(t|0)&m>>>0>s>>>0)){g=0;return g|0}u=b[o+s>>0]|0;v=vl(p|0,q|0,2,0)|0;w=l;f[w>>2]=v;f[w+4>>2]=H;w=u&255;v=(Bj(5)|0)==(w|0);x=f[(f[h>>2]|0)+64>>2]|0;y=(f[x+4>>2]|0)-(f[x>>2]|0)|0;if(v){v=i<<2;if(y>>>0<v>>>0){g=0;return g|0}x=j;z=f[x>>2]|0;A=f[x+4>>2]|0;x=l;B=f[x>>2]|0;C=vl(B|0,f[x+4>>2]|0,v|0,0)|0;x=H;if((A|0)<(x|0)|(A|0)==(x|0)&z>>>0<C>>>0){g=0;return g|0}else{Bf(k|0,(f[d>>2]|0)+B|0,v|0)|0;B=l;C=vl(f[B>>2]|0,f[B+4>>2]|0,v|0,0)|0;v=l;f[v>>2]=C;f[v+4>>2]=H;D=20;break}}v=W(i,w)|0;if(y>>>0<v>>>0){g=0;return g|0}y=j;C=f[y>>2]|0;B=f[y+4>>2]|0;y=l;z=f[y>>2]|0;x=f[y+4>>2]|0;y=wl(C|0,B|0,z|0,x|0)|0;A=H;if((A|0)<0|(A|0)==0&y>>>0<v>>>0){g=0;return g|0}if(!i)D=21;else{v=u&255;u=0;y=z;z=x;x=B;B=C;while(1){C=vl(y|0,z|0,v|0,0)|0;A=H;if((x|0)<(A|0)|(x|0)==(A|0)&B>>>0<C>>>0){E=y;F=z}else{Bf(k+(u<<2)|0,(f[d>>2]|0)+y|0,w|0)|0;C=l;A=vl(f[C>>2]|0,f[C+4>>2]|0,v|0,0)|0;C=H;G=l;f[G>>2]=A;f[G+4>>2]=C;E=A;F=C}C=u+1|0;if((C|0)==(i|0)){D=20;break a}A=j;u=C;y=E;z=F;x=f[A+4>>2]|0;B=f[A>>2]|0}}}else if(kh(i,e,d,k)|0)D=20;else{g=0;return g|0}while(0);do if((D|0)==20)if(!i)D=21;else{F=a+20|0;E=f[F>>2]|0;if(E|0?Ka[f[(f[E>>2]|0)+32>>2]&127](E)|0:0){I=F;J=1;break}Yj(k,i,k);I=F;J=1}while(0);if((D|0)==21){I=a+20|0;J=0}a=f[I>>2]|0;if(a|0){if(!(La[f[(f[a>>2]|0)+40>>2]&127](a,d)|0)){g=0;return g|0}if(J?(J=f[I>>2]|0,!(Na[f[(f[J>>2]|0)+44>>2]&31](J,k,k,i,e,f[c>>2]|0)|0)):0){g=0;return g|0}}g=1;return g|0}function sc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;if(c>>>0>=1048576){if((p|0)!=4194304)f[w>>2]=x+4194304}else Eg(n,1048576-c|0);c=a+28|0;x=a+32|0;a=f[c>>2]|0;w=(f[x>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[x>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;x=w;w=(f[p>>2]|0)+w|0;if(w>>>0>1048576){g=0;r=38;break}if(x>>>0<w>>>0){p=f[n>>2]|0;a=x;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==1048576|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function tc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;o=x;if(c>>>0>=8192){if((p|0)!=32768)f[w>>2]=o+32768}else Eg(n,8192-c|0);c=a+28|0;o=a+32|0;a=f[c>>2]|0;w=(f[o>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[o>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;o=w;w=(f[p>>2]|0)+w|0;if(w>>>0>8192){g=0;r=38;break}if(o>>>0<w>>>0){p=f[n>>2]|0;a=o;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==8192|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function uc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;o=x;if(c>>>0>=4096){if((p|0)!=16384)f[w>>2]=o+16384}else Eg(n,4096-c|0);c=a+28|0;o=a+32|0;a=f[c>>2]|0;w=(f[o>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[o>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;o=w;w=(f[p>>2]|0)+w|0;if(w>>>0>4096){g=0;r=38;break}if(o>>>0<w>>>0){p=f[n>>2]|0;a=o;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==4096|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0}function vc(a,c){a=a|0;c=c|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,u=0,v=0,w=0,x=0,y=0,z=0;e=d[c+38>>1]|0;if(!(e<<16>>16)){g=0;return g|0}i=a+12|0;do if((e&65535)<512){j=c+8|0;k=f[j>>2]|0;l=f[j+4>>2]|0;j=c+16|0;m=j;n=f[m>>2]|0;o=vl(n|0,f[m+4>>2]|0,4,0)|0;m=H;if((l|0)<(m|0)|(l|0)==(m|0)&k>>>0<o>>>0){g=0;return g|0}else{o=(f[c>>2]|0)+n|0;n=h[o>>0]|h[o+1>>0]<<8|h[o+2>>0]<<16|h[o+3>>0]<<24;b[i>>0]=n;b[i+1>>0]=n>>8;b[i+2>>0]=n>>16;b[i+3>>0]=n>>24;o=j;k=vl(f[o>>2]|0,f[o+4>>2]|0,4,0)|0;o=j;f[o>>2]=k;f[o+4>>2]=H;p=n;break}}else if(zh(i,c)|0){p=f[i>>2]|0;break}else{g=0;return g|0}while(0);e=a+4|0;n=f[a>>2]|0;o=(f[e>>2]|0)-n>>2;if(p>>>0<=o>>>0)if(p>>>0<o>>>0){f[e>>2]=n+(p<<2);q=p}else q=p;else{Eg(a,p-o|0);q=f[i>>2]|0}if(!q){g=1;return g|0}o=c+8|0;p=c+16|0;n=0;e=q;a:while(1){q=o;k=f[q>>2]|0;j=f[q+4>>2]|0;q=p;m=f[q>>2]|0;l=f[q+4>>2]|0;if(!((j|0)>(l|0)|(j|0)==(l|0)&k>>>0>m>>>0)){g=0;r=38;break}q=f[c>>2]|0;s=b[q+m>>0]|0;t=vl(m|0,l|0,1,0)|0;l=H;m=p;f[m>>2]=t;f[m+4>>2]=l;m=s&255;u=m&3;v=m>>>2;switch(s&3){case 3:{s=v+n|0;if(s>>>0>=e>>>0){g=0;r=38;break a}oh((f[a>>2]|0)+(n<<2)|0,0,(m&252)+4|0)|0;w=s;break}case 0:{x=v;r=20;break}default:{s=v;v=0;m=l;l=t;while(1){if(!((j|0)>(m|0)|(j|0)==(m|0)&k>>>0>l>>>0)){g=0;r=38;break a}t=b[q+l>>0]|0;l=vl(l|0,m|0,1,0)|0;m=H;y=p;f[y>>2]=l;f[y+4>>2]=m;y=(t&255)<<(v<<3|6)|s;v=v+1|0;if(v>>>0>=u>>>0){x=y;r=20;break}else s=y}}}if((r|0)==20){r=0;f[(f[a>>2]|0)+(n<<2)>>2]=x;w=n}n=w+1|0;e=f[i>>2]|0;if(n>>>0>=e>>>0){r=22;break}}if((r|0)==22){n=a+16|0;i=f[a>>2]|0;w=a+20|0;x=f[n>>2]|0;p=(f[w>>2]|0)-x|0;c=p>>2;if(c>>>0>=524288){if((p|0)!=2097152)f[w>>2]=x+2097152}else Eg(n,524288-c|0);c=a+28|0;x=a+32|0;a=f[c>>2]|0;w=(f[x>>2]|0)-a>>3;p=a;if(e>>>0<=w>>>0){if(e>>>0<w>>>0)f[x>>2]=p+(e<<3);if(!e){g=0;return g|0}else z=p}else{cg(c,e-w|0);z=f[c>>2]|0}c=0;w=0;while(1){p=i+(c<<2)|0;f[z+(c<<3)>>2]=f[p>>2];f[z+(c<<3)+4>>2]=w;x=w;w=(f[p>>2]|0)+w|0;if(w>>>0>524288){g=0;r=38;break}if(x>>>0<w>>>0){p=f[n>>2]|0;a=x;do{f[p+(a<<2)>>2]=c;a=a+1|0}while((a|0)!=(w|0))}c=c+1|0;if(c>>>0>=e>>>0){r=37;break}}if((r|0)==37)return (w|0)==524288|0;else if((r|0)==38)return g|0}else if((r|0)==38)return g|0;return 0} -function Va(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0;b=u;u=u+16|0;c=b;do if(a>>>0<245){d=a>>>0<11?16:a+11&-8;e=d>>>3;g=f[4072]|0;h=g>>>e;if(h&3|0){i=(h&1^1)+e|0;j=16328+(i<<1<<2)|0;k=j+8|0;l=f[k>>2]|0;m=l+8|0;n=f[m>>2]|0;if((n|0)==(j|0))f[4072]=g&~(1<<i);else{f[n+12>>2]=j;f[k>>2]=n}n=i<<3;f[l+4>>2]=n|3;i=l+n+4|0;f[i>>2]=f[i>>2]|1;o=m;u=b;return o|0}m=f[4074]|0;if(d>>>0>m>>>0){if(h|0){i=2<<e;n=h<<e&(i|0-i);i=(n&0-n)+-1|0;n=i>>>12&16;e=i>>>n;i=e>>>5&8;h=e>>>i;e=h>>>2&4;l=h>>>e;h=l>>>1&2;k=l>>>h;l=k>>>1&1;j=(i|n|e|h|l)+(k>>>l)|0;l=16328+(j<<1<<2)|0;k=l+8|0;h=f[k>>2]|0;e=h+8|0;n=f[e>>2]|0;if((n|0)==(l|0)){i=g&~(1<<j);f[4072]=i;p=i}else{f[n+12>>2]=l;f[k>>2]=n;p=g}n=j<<3;j=n-d|0;f[h+4>>2]=d|3;k=h+d|0;f[k+4>>2]=j|1;f[h+n>>2]=j;if(m|0){n=f[4077]|0;h=m>>>3;l=16328+(h<<1<<2)|0;i=1<<h;if(!(p&i)){f[4072]=p|i;q=l;r=l+8|0}else{i=l+8|0;q=f[i>>2]|0;r=i}f[r>>2]=n;f[q+12>>2]=n;f[n+8>>2]=q;f[n+12>>2]=l}f[4074]=j;f[4077]=k;o=e;u=b;return o|0}e=f[4073]|0;if(e){k=(e&0-e)+-1|0;j=k>>>12&16;l=k>>>j;k=l>>>5&8;n=l>>>k;l=n>>>2&4;i=n>>>l;n=i>>>1&2;h=i>>>n;i=h>>>1&1;s=f[16592+((k|j|l|n|i)+(h>>>i)<<2)>>2]|0;i=s;h=s;n=(f[s+4>>2]&-8)-d|0;while(1){s=f[i+16>>2]|0;if(!s){l=f[i+20>>2]|0;if(!l)break;else t=l}else t=s;s=(f[t+4>>2]&-8)-d|0;l=s>>>0<n>>>0;i=t;h=l?t:h;n=l?s:n}i=h+d|0;if(i>>>0>h>>>0){s=f[h+24>>2]|0;l=f[h+12>>2]|0;do if((l|0)==(h|0)){j=h+20|0;k=f[j>>2]|0;if(!k){v=h+16|0;w=f[v>>2]|0;if(!w){x=0;break}else{y=w;z=v}}else{y=k;z=j}j=y;k=z;while(1){v=j+20|0;w=f[v>>2]|0;if(!w){A=j+16|0;B=f[A>>2]|0;if(!B)break;else{C=B;D=A}}else{C=w;D=v}j=C;k=D}f[k>>2]=0;x=j}else{v=f[h+8>>2]|0;f[v+12>>2]=l;f[l+8>>2]=v;x=l}while(0);do if(s|0){l=f[h+28>>2]|0;v=16592+(l<<2)|0;if((h|0)==(f[v>>2]|0)){f[v>>2]=x;if(!x){f[4073]=e&~(1<<l);break}}else{l=s+16|0;f[((f[l>>2]|0)==(h|0)?l:s+20|0)>>2]=x;if(!x)break}f[x+24>>2]=s;l=f[h+16>>2]|0;if(l|0){f[x+16>>2]=l;f[l+24>>2]=x}l=f[h+20>>2]|0;if(l|0){f[x+20>>2]=l;f[l+24>>2]=x}}while(0);if(n>>>0<16){s=n+d|0;f[h+4>>2]=s|3;e=h+s+4|0;f[e>>2]=f[e>>2]|1}else{f[h+4>>2]=d|3;f[i+4>>2]=n|1;f[i+n>>2]=n;if(m|0){e=f[4077]|0;s=m>>>3;l=16328+(s<<1<<2)|0;v=1<<s;if(!(v&g)){f[4072]=v|g;E=l;F=l+8|0}else{v=l+8|0;E=f[v>>2]|0;F=v}f[F>>2]=e;f[E+12>>2]=e;f[e+8>>2]=E;f[e+12>>2]=l}f[4074]=n;f[4077]=i}o=h+8|0;u=b;return o|0}else G=d}else G=d}else G=d}else if(a>>>0<=4294967231){l=a+11|0;e=l&-8;v=f[4073]|0;if(v){s=0-e|0;w=l>>>8;if(w)if(e>>>0>16777215)H=31;else{l=(w+1048320|0)>>>16&8;A=w<<l;w=(A+520192|0)>>>16&4;B=A<<w;A=(B+245760|0)>>>16&2;I=14-(w|l|A)+(B<<A>>>15)|0;H=e>>>(I+7|0)&1|I<<1}else H=0;I=f[16592+(H<<2)>>2]|0;a:do if(!I){J=0;K=0;L=s;M=61}else{A=0;B=s;l=I;w=e<<((H|0)==31?0:25-(H>>>1)|0);N=0;while(1){O=(f[l+4>>2]&-8)-e|0;if(O>>>0<B>>>0)if(!O){P=l;Q=0;R=l;M=65;break a}else{S=l;T=O}else{S=A;T=B}O=f[l+20>>2]|0;l=f[l+16+(w>>>31<<2)>>2]|0;U=(O|0)==0|(O|0)==(l|0)?N:O;if(!l){J=U;K=S;L=T;M=61;break}else{A=S;B=T;w=w<<1;N=U}}}while(0);if((M|0)==61){if((J|0)==0&(K|0)==0){I=2<<H;s=(I|0-I)&v;if(!s){G=e;break}I=(s&0-s)+-1|0;s=I>>>12&16;d=I>>>s;I=d>>>5&8;h=d>>>I;d=h>>>2&4;i=h>>>d;h=i>>>1&2;n=i>>>h;i=n>>>1&1;V=0;W=f[16592+((I|s|d|h|i)+(n>>>i)<<2)>>2]|0}else{V=K;W=J}if(!W){X=V;Y=L}else{P=V;Q=L;R=W;M=65}}if((M|0)==65){i=P;n=Q;h=R;while(1){d=(f[h+4>>2]&-8)-e|0;s=d>>>0<n>>>0;I=s?d:n;d=s?h:i;s=f[h+16>>2]|0;if(!s)Z=f[h+20>>2]|0;else Z=s;if(!Z){X=d;Y=I;break}else{i=d;n=I;h=Z}}}if(((X|0)!=0?Y>>>0<((f[4074]|0)-e|0)>>>0:0)?(h=X+e|0,h>>>0>X>>>0):0){n=f[X+24>>2]|0;i=f[X+12>>2]|0;do if((i|0)==(X|0)){I=X+20|0;d=f[I>>2]|0;if(!d){s=X+16|0;g=f[s>>2]|0;if(!g){_=0;break}else{$=g;aa=s}}else{$=d;aa=I}I=$;d=aa;while(1){s=I+20|0;g=f[s>>2]|0;if(!g){m=I+16|0;N=f[m>>2]|0;if(!N)break;else{ba=N;ca=m}}else{ba=g;ca=s}I=ba;d=ca}f[d>>2]=0;_=I}else{s=f[X+8>>2]|0;f[s+12>>2]=i;f[i+8>>2]=s;_=i}while(0);do if(n){i=f[X+28>>2]|0;s=16592+(i<<2)|0;if((X|0)==(f[s>>2]|0)){f[s>>2]=_;if(!_){s=v&~(1<<i);f[4073]=s;da=s;break}}else{s=n+16|0;f[((f[s>>2]|0)==(X|0)?s:n+20|0)>>2]=_;if(!_){da=v;break}}f[_+24>>2]=n;s=f[X+16>>2]|0;if(s|0){f[_+16>>2]=s;f[s+24>>2]=_}s=f[X+20>>2]|0;if(s){f[_+20>>2]=s;f[s+24>>2]=_;da=v}else da=v}else da=v;while(0);b:do if(Y>>>0<16){v=Y+e|0;f[X+4>>2]=v|3;n=X+v+4|0;f[n>>2]=f[n>>2]|1}else{f[X+4>>2]=e|3;f[h+4>>2]=Y|1;f[h+Y>>2]=Y;n=Y>>>3;if(Y>>>0<256){v=16328+(n<<1<<2)|0;s=f[4072]|0;i=1<<n;if(!(s&i)){f[4072]=s|i;ea=v;fa=v+8|0}else{i=v+8|0;ea=f[i>>2]|0;fa=i}f[fa>>2]=h;f[ea+12>>2]=h;f[h+8>>2]=ea;f[h+12>>2]=v;break}v=Y>>>8;if(v)if(Y>>>0>16777215)ga=31;else{i=(v+1048320|0)>>>16&8;s=v<<i;v=(s+520192|0)>>>16&4;n=s<<v;s=(n+245760|0)>>>16&2;g=14-(v|i|s)+(n<<s>>>15)|0;ga=Y>>>(g+7|0)&1|g<<1}else ga=0;g=16592+(ga<<2)|0;f[h+28>>2]=ga;s=h+16|0;f[s+4>>2]=0;f[s>>2]=0;s=1<<ga;if(!(da&s)){f[4073]=da|s;f[g>>2]=h;f[h+24>>2]=g;f[h+12>>2]=h;f[h+8>>2]=h;break}s=f[g>>2]|0;c:do if((f[s+4>>2]&-8|0)==(Y|0))ha=s;else{g=Y<<((ga|0)==31?0:25-(ga>>>1)|0);n=s;while(1){ia=n+16+(g>>>31<<2)|0;i=f[ia>>2]|0;if(!i)break;if((f[i+4>>2]&-8|0)==(Y|0)){ha=i;break c}else{g=g<<1;n=i}}f[ia>>2]=h;f[h+24>>2]=n;f[h+12>>2]=h;f[h+8>>2]=h;break b}while(0);s=ha+8|0;I=f[s>>2]|0;f[I+12>>2]=h;f[s>>2]=h;f[h+8>>2]=I;f[h+12>>2]=ha;f[h+24>>2]=0}while(0);o=X+8|0;u=b;return o|0}else G=e}else G=e}else G=-1;while(0);X=f[4074]|0;if(X>>>0>=G>>>0){ha=X-G|0;ia=f[4077]|0;if(ha>>>0>15){Y=ia+G|0;f[4077]=Y;f[4074]=ha;f[Y+4>>2]=ha|1;f[ia+X>>2]=ha;f[ia+4>>2]=G|3}else{f[4074]=0;f[4077]=0;f[ia+4>>2]=X|3;ha=ia+X+4|0;f[ha>>2]=f[ha>>2]|1}o=ia+8|0;u=b;return o|0}ia=f[4075]|0;if(ia>>>0>G>>>0){ha=ia-G|0;f[4075]=ha;X=f[4078]|0;Y=X+G|0;f[4078]=Y;f[Y+4>>2]=ha|1;f[X+4>>2]=G|3;o=X+8|0;u=b;return o|0}if(!(f[4190]|0)){f[4192]=4096;f[4191]=4096;f[4193]=-1;f[4194]=-1;f[4195]=0;f[4183]=0;f[4190]=c&-16^1431655768;ja=4096}else ja=f[4192]|0;c=G+48|0;X=G+47|0;ha=ja+X|0;Y=0-ja|0;ja=ha&Y;if(ja>>>0<=G>>>0){o=0;u=b;return o|0}ga=f[4182]|0;if(ga|0?(da=f[4180]|0,ea=da+ja|0,ea>>>0<=da>>>0|ea>>>0>ga>>>0):0){o=0;u=b;return o|0}d:do if(!(f[4183]&4)){ga=f[4078]|0;e:do if(ga){ea=16736;while(1){da=f[ea>>2]|0;if(da>>>0<=ga>>>0?(da+(f[ea+4>>2]|0)|0)>>>0>ga>>>0:0)break;da=f[ea+8>>2]|0;if(!da){M=128;break e}else ea=da}da=ha-ia&Y;if(da>>>0<2147483647){fa=vj(da|0)|0;if((fa|0)==((f[ea>>2]|0)+(f[ea+4>>2]|0)|0))if((fa|0)==(-1|0))ka=da;else{la=da;ma=fa;M=145;break d}else{na=fa;oa=da;M=136}}else ka=0}else M=128;while(0);do if((M|0)==128){ga=vj(0)|0;if((ga|0)!=(-1|0)?(e=ga,da=f[4191]|0,fa=da+-1|0,_=((fa&e|0)==0?0:(fa+e&0-da)-e|0)+ja|0,e=f[4180]|0,da=_+e|0,_>>>0>G>>>0&_>>>0<2147483647):0){fa=f[4182]|0;if(fa|0?da>>>0<=e>>>0|da>>>0>fa>>>0:0){ka=0;break}fa=vj(_|0)|0;if((fa|0)==(ga|0)){la=_;ma=ga;M=145;break d}else{na=fa;oa=_;M=136}}else ka=0}while(0);do if((M|0)==136){_=0-oa|0;if(!(c>>>0>oa>>>0&(oa>>>0<2147483647&(na|0)!=(-1|0))))if((na|0)==(-1|0)){ka=0;break}else{la=oa;ma=na;M=145;break d}fa=f[4192]|0;ga=X-oa+fa&0-fa;if(ga>>>0>=2147483647){la=oa;ma=na;M=145;break d}if((vj(ga|0)|0)==(-1|0)){vj(_|0)|0;ka=0;break}else{la=ga+oa|0;ma=na;M=145;break d}}while(0);f[4183]=f[4183]|4;pa=ka;M=143}else{pa=0;M=143}while(0);if(((M|0)==143?ja>>>0<2147483647:0)?(ka=vj(ja|0)|0,ja=vj(0)|0,na=ja-ka|0,oa=na>>>0>(G+40|0)>>>0,!((ka|0)==(-1|0)|oa^1|ka>>>0<ja>>>0&((ka|0)!=(-1|0)&(ja|0)!=(-1|0))^1)):0){la=oa?na:pa;ma=ka;M=145}if((M|0)==145){ka=(f[4180]|0)+la|0;f[4180]=ka;if(ka>>>0>(f[4181]|0)>>>0)f[4181]=ka;ka=f[4078]|0;f:do if(ka){pa=16736;while(1){qa=f[pa>>2]|0;ra=f[pa+4>>2]|0;if((ma|0)==(qa+ra|0)){M=154;break}na=f[pa+8>>2]|0;if(!na)break;else pa=na}if(((M|0)==154?(na=pa+4|0,(f[pa+12>>2]&8|0)==0):0)?ma>>>0>ka>>>0&qa>>>0<=ka>>>0:0){f[na>>2]=ra+la;na=(f[4075]|0)+la|0;oa=ka+8|0;ja=(oa&7|0)==0?0:0-oa&7;oa=ka+ja|0;X=na-ja|0;f[4078]=oa;f[4075]=X;f[oa+4>>2]=X|1;f[ka+na+4>>2]=40;f[4079]=f[4194];break}if(ma>>>0<(f[4076]|0)>>>0)f[4076]=ma;na=ma+la|0;X=16736;while(1){if((f[X>>2]|0)==(na|0)){M=162;break}oa=f[X+8>>2]|0;if(!oa)break;else X=oa}if((M|0)==162?(f[X+12>>2]&8|0)==0:0){f[X>>2]=ma;pa=X+4|0;f[pa>>2]=(f[pa>>2]|0)+la;pa=ma+8|0;oa=ma+((pa&7|0)==0?0:0-pa&7)|0;pa=na+8|0;ja=na+((pa&7|0)==0?0:0-pa&7)|0;pa=oa+G|0;c=ja-oa-G|0;f[oa+4>>2]=G|3;g:do if((ka|0)==(ja|0)){Y=(f[4075]|0)+c|0;f[4075]=Y;f[4078]=pa;f[pa+4>>2]=Y|1}else{if((f[4077]|0)==(ja|0)){Y=(f[4074]|0)+c|0;f[4074]=Y;f[4077]=pa;f[pa+4>>2]=Y|1;f[pa+Y>>2]=Y;break}Y=f[ja+4>>2]|0;if((Y&3|0)==1){ia=Y&-8;ha=Y>>>3;h:do if(Y>>>0<256){ga=f[ja+8>>2]|0;_=f[ja+12>>2]|0;if((_|0)==(ga|0)){f[4072]=f[4072]&~(1<<ha);break}else{f[ga+12>>2]=_;f[_+8>>2]=ga;break}}else{ga=f[ja+24>>2]|0;_=f[ja+12>>2]|0;do if((_|0)==(ja|0)){fa=ja+16|0;da=fa+4|0;e=f[da>>2]|0;if(!e){ca=f[fa>>2]|0;if(!ca){sa=0;break}else{ta=ca;ua=fa}}else{ta=e;ua=da}da=ta;e=ua;while(1){fa=da+20|0;ca=f[fa>>2]|0;if(!ca){ba=da+16|0;aa=f[ba>>2]|0;if(!aa)break;else{va=aa;wa=ba}}else{va=ca;wa=fa}da=va;e=wa}f[e>>2]=0;sa=da}else{fa=f[ja+8>>2]|0;f[fa+12>>2]=_;f[_+8>>2]=fa;sa=_}while(0);if(!ga)break;_=f[ja+28>>2]|0;n=16592+(_<<2)|0;do if((f[n>>2]|0)!=(ja|0)){fa=ga+16|0;f[((f[fa>>2]|0)==(ja|0)?fa:ga+20|0)>>2]=sa;if(!sa)break h}else{f[n>>2]=sa;if(sa|0)break;f[4073]=f[4073]&~(1<<_);break h}while(0);f[sa+24>>2]=ga;_=ja+16|0;n=f[_>>2]|0;if(n|0){f[sa+16>>2]=n;f[n+24>>2]=sa}n=f[_+4>>2]|0;if(!n)break;f[sa+20>>2]=n;f[n+24>>2]=sa}while(0);xa=ja+ia|0;ya=ia+c|0}else{xa=ja;ya=c}ha=xa+4|0;f[ha>>2]=f[ha>>2]&-2;f[pa+4>>2]=ya|1;f[pa+ya>>2]=ya;ha=ya>>>3;if(ya>>>0<256){Y=16328+(ha<<1<<2)|0;ea=f[4072]|0;n=1<<ha;if(!(ea&n)){f[4072]=ea|n;za=Y;Aa=Y+8|0}else{n=Y+8|0;za=f[n>>2]|0;Aa=n}f[Aa>>2]=pa;f[za+12>>2]=pa;f[pa+8>>2]=za;f[pa+12>>2]=Y;break}Y=ya>>>8;do if(!Y)Ba=0;else{if(ya>>>0>16777215){Ba=31;break}n=(Y+1048320|0)>>>16&8;ea=Y<<n;ha=(ea+520192|0)>>>16&4;_=ea<<ha;ea=(_+245760|0)>>>16&2;fa=14-(ha|n|ea)+(_<<ea>>>15)|0;Ba=ya>>>(fa+7|0)&1|fa<<1}while(0);Y=16592+(Ba<<2)|0;f[pa+28>>2]=Ba;ia=pa+16|0;f[ia+4>>2]=0;f[ia>>2]=0;ia=f[4073]|0;fa=1<<Ba;if(!(ia&fa)){f[4073]=ia|fa;f[Y>>2]=pa;f[pa+24>>2]=Y;f[pa+12>>2]=pa;f[pa+8>>2]=pa;break}fa=f[Y>>2]|0;i:do if((f[fa+4>>2]&-8|0)==(ya|0))Ca=fa;else{Y=ya<<((Ba|0)==31?0:25-(Ba>>>1)|0);ia=fa;while(1){Da=ia+16+(Y>>>31<<2)|0;ea=f[Da>>2]|0;if(!ea)break;if((f[ea+4>>2]&-8|0)==(ya|0)){Ca=ea;break i}else{Y=Y<<1;ia=ea}}f[Da>>2]=pa;f[pa+24>>2]=ia;f[pa+12>>2]=pa;f[pa+8>>2]=pa;break g}while(0);fa=Ca+8|0;Y=f[fa>>2]|0;f[Y+12>>2]=pa;f[fa>>2]=pa;f[pa+8>>2]=Y;f[pa+12>>2]=Ca;f[pa+24>>2]=0}while(0);o=oa+8|0;u=b;return o|0}pa=16736;while(1){c=f[pa>>2]|0;if(c>>>0<=ka>>>0?(Ea=c+(f[pa+4>>2]|0)|0,Ea>>>0>ka>>>0):0)break;pa=f[pa+8>>2]|0}pa=Ea+-47|0;oa=pa+8|0;c=pa+((oa&7|0)==0?0:0-oa&7)|0;oa=ka+16|0;pa=c>>>0<oa>>>0?ka:c;c=pa+8|0;ja=la+-40|0;na=ma+8|0;X=(na&7|0)==0?0:0-na&7;na=ma+X|0;Y=ja-X|0;f[4078]=na;f[4075]=Y;f[na+4>>2]=Y|1;f[ma+ja+4>>2]=40;f[4079]=f[4194];ja=pa+4|0;f[ja>>2]=27;f[c>>2]=f[4184];f[c+4>>2]=f[4185];f[c+8>>2]=f[4186];f[c+12>>2]=f[4187];f[4184]=ma;f[4185]=la;f[4187]=0;f[4186]=c;c=pa+24|0;do{Y=c;c=c+4|0;f[c>>2]=7}while((Y+8|0)>>>0<Ea>>>0);if((pa|0)!=(ka|0)){c=pa-ka|0;f[ja>>2]=f[ja>>2]&-2;f[ka+4>>2]=c|1;f[pa>>2]=c;Y=c>>>3;if(c>>>0<256){na=16328+(Y<<1<<2)|0;X=f[4072]|0;fa=1<<Y;if(!(X&fa)){f[4072]=X|fa;Fa=na;Ga=na+8|0}else{fa=na+8|0;Fa=f[fa>>2]|0;Ga=fa}f[Ga>>2]=ka;f[Fa+12>>2]=ka;f[ka+8>>2]=Fa;f[ka+12>>2]=na;break}na=c>>>8;if(na)if(c>>>0>16777215)Ha=31;else{fa=(na+1048320|0)>>>16&8;X=na<<fa;na=(X+520192|0)>>>16&4;Y=X<<na;X=(Y+245760|0)>>>16&2;ga=14-(na|fa|X)+(Y<<X>>>15)|0;Ha=c>>>(ga+7|0)&1|ga<<1}else Ha=0;ga=16592+(Ha<<2)|0;f[ka+28>>2]=Ha;f[ka+20>>2]=0;f[oa>>2]=0;X=f[4073]|0;Y=1<<Ha;if(!(X&Y)){f[4073]=X|Y;f[ga>>2]=ka;f[ka+24>>2]=ga;f[ka+12>>2]=ka;f[ka+8>>2]=ka;break}Y=f[ga>>2]|0;j:do if((f[Y+4>>2]&-8|0)==(c|0))Ia=Y;else{ga=c<<((Ha|0)==31?0:25-(Ha>>>1)|0);X=Y;while(1){Ja=X+16+(ga>>>31<<2)|0;fa=f[Ja>>2]|0;if(!fa)break;if((f[fa+4>>2]&-8|0)==(c|0)){Ia=fa;break j}else{ga=ga<<1;X=fa}}f[Ja>>2]=ka;f[ka+24>>2]=X;f[ka+12>>2]=ka;f[ka+8>>2]=ka;break f}while(0);c=Ia+8|0;Y=f[c>>2]|0;f[Y+12>>2]=ka;f[c>>2]=ka;f[ka+8>>2]=Y;f[ka+12>>2]=Ia;f[ka+24>>2]=0}}else{Y=f[4076]|0;if((Y|0)==0|ma>>>0<Y>>>0)f[4076]=ma;f[4184]=ma;f[4185]=la;f[4187]=0;f[4081]=f[4190];f[4080]=-1;f[4085]=16328;f[4084]=16328;f[4087]=16336;f[4086]=16336;f[4089]=16344;f[4088]=16344;f[4091]=16352;f[4090]=16352;f[4093]=16360;f[4092]=16360;f[4095]=16368;f[4094]=16368;f[4097]=16376;f[4096]=16376;f[4099]=16384;f[4098]=16384;f[4101]=16392;f[4100]=16392;f[4103]=16400;f[4102]=16400;f[4105]=16408;f[4104]=16408;f[4107]=16416;f[4106]=16416;f[4109]=16424;f[4108]=16424;f[4111]=16432;f[4110]=16432;f[4113]=16440;f[4112]=16440;f[4115]=16448;f[4114]=16448;f[4117]=16456;f[4116]=16456;f[4119]=16464;f[4118]=16464;f[4121]=16472;f[4120]=16472;f[4123]=16480;f[4122]=16480;f[4125]=16488;f[4124]=16488;f[4127]=16496;f[4126]=16496;f[4129]=16504;f[4128]=16504;f[4131]=16512;f[4130]=16512;f[4133]=16520;f[4132]=16520;f[4135]=16528;f[4134]=16528;f[4137]=16536;f[4136]=16536;f[4139]=16544;f[4138]=16544;f[4141]=16552;f[4140]=16552;f[4143]=16560;f[4142]=16560;f[4145]=16568;f[4144]=16568;f[4147]=16576;f[4146]=16576;Y=la+-40|0;c=ma+8|0;oa=(c&7|0)==0?0:0-c&7;c=ma+oa|0;pa=Y-oa|0;f[4078]=c;f[4075]=pa;f[c+4>>2]=pa|1;f[ma+Y+4>>2]=40;f[4079]=f[4194]}while(0);ma=f[4075]|0;if(ma>>>0>G>>>0){la=ma-G|0;f[4075]=la;ma=f[4078]|0;ka=ma+G|0;f[4078]=ka;f[ka+4>>2]=la|1;f[ma+4>>2]=G|3;o=ma+8|0;u=b;return o|0}}ma=Ro()|0;f[ma>>2]=12;o=0;u=b;return o|0}function Wa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0,Ta=0,Ua=0,Va=0,Wa=0,Xa=0,Ya=0,Za=0,_a=0,$a=0;d=u;u=u+80|0;e=d+56|0;g=d+36|0;i=d+16|0;k=d+4|0;l=d+48|0;m=d;f[g>>2]=0;n=g+4|0;f[n>>2]=0;o=g+8|0;f[o>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=1065353216;f[k>>2]=0;p=k+4|0;f[p>>2]=0;q=k+8|0;f[q>>2]=0;r=(f[a+216>>2]|0)==(f[a+220>>2]|0);s=a+120|0;t=f[a+124>>2]|0;a:do if((c|0)>0){v=a+232|0;w=a+420|0;x=a+308|0;y=a+400|0;z=a+416|0;A=a+304|0;B=a+296|0;C=a+300|0;D=a+8|0;E=a+36|0;F=a+40|0;G=i+4|0;H=c+-1|0;I=a+388|0;J=0;b:while(1){K=J+1|0;if((f[w>>2]|0)!=-1?pi(y)|0:0){L=f[w>>2]|0;f[z>>2]=L;if(!L)M=17;else{N=L;M=32}}else M=6;c:do if((M|0)==6){M=0;do if(!(b[x>>0]|0))O=1;else{L=f[A>>2]|0;P=f[B>>2]|0;Q=f[C>>2]|0;R=P+(L>>>3)|0;if(R>>>0<Q>>>0?(S=h[R>>0]|0,R=L+1|0,f[A>>2]=R,1<<(L&7)&S|0):0){S=P+(R>>>3)|0;if(S>>>0<Q>>>0){T=(h[S>>0]|0)>>>(R&7)&1;U=L+2|0;f[A>>2]=U;V=T;W=P+(U>>>3)|0;X=U}else{V=0;W=S;X=R}if(W>>>0<Q>>>0){Q=(h[W>>0]|0)>>>(X&7);f[A>>2]=X+1;Y=Q<<1&2}else Y=0;O=(Y|V)<<1|1;break}f[z>>2]=0;M=17;break c}while(0);f[z>>2]=O;N=O;M=32}while(0);d:do if((M|0)==17){M=0;Q=f[n>>2]|0;if((f[g>>2]|0)==(Q|0)){Z=-1;M=196;break a}R=Q+-4|0;Q=f[R>>2]|0;S=f[D>>2]|0;U=(Q|0)==-1;P=Q+1|0;if(!U?(T=((P>>>0)%3|0|0)==0?Q+-2|0:P,(T|0)!=-1):0)_=f[(f[S>>2]|0)+(T<<2)>>2]|0;else _=-1;T=f[S+24>>2]|0;P=f[T+(_<<2)>>2]|0;L=P+1|0;if((P|0)==-1)$=-1;else $=((L>>>0)%3|0|0)==0?P+-2|0:L;L=J*3|0;P=L+1|0;aa=f[S+12>>2]|0;f[aa+(Q<<2)>>2]=P;f[aa+(P<<2)>>2]=Q;ba=L+2|0;f[aa+($<<2)>>2]=ba;f[aa+(ba<<2)>>2]=$;aa=f[S>>2]|0;f[aa+(L<<2)>>2]=_;S=$+1|0;if(($|0)!=-1?(ca=((S>>>0)%3|0|0)==0?$+-2|0:S,(ca|0)!=-1):0)da=f[aa+(ca<<2)>>2]|0;else da=-1;f[aa+(P<<2)>>2]=da;if(!U?(U=(((Q>>>0)%3|0|0)==0?2:-1)+Q|0,(U|0)!=-1):0){Q=f[aa+(U<<2)>>2]|0;f[aa+(ba<<2)>>2]=Q;if((Q|0)!=-1)f[T+(Q<<2)>>2]=ba}else f[aa+(ba<<2)>>2]=-1;ba=(f[s>>2]|0)+(_>>>5<<2)|0;f[ba>>2]=f[ba>>2]&~(1<<(_&31));f[R>>2]=L;f[l>>2]=f[R>>2];f[e>>2]=f[l>>2];Tc(v,e)}else if((M|0)==32){M=0;R=(N|0)==5;switch(N|0){case 3:case 5:{L=f[n>>2]|0;if((f[g>>2]|0)==(L|0)){Z=-1;M=196;break a}ba=f[L+-4>>2]|0;L=J*3|0;aa=R?L:L+2|0;Q=L+(R&1)|0;T=(R?2:1)+L|0;R=f[D>>2]|0;U=f[R+12>>2]|0;f[U+(T<<2)>>2]=ba;f[U+(ba<<2)>>2]=T;U=R+24|0;P=R+28|0;ca=f[P>>2]|0;if((ca|0)==(f[R+32>>2]|0)){Ng(U,3280);ea=f[P>>2]|0}else{f[ca>>2]=-1;R=ca+4|0;f[P>>2]=R;ea=R}R=ea-(f[U>>2]|0)|0;U=(R>>2)+-1|0;P=f[D>>2]|0;ca=f[P+24>>2]|0;S=ca;if(((f[P+28>>2]|0)-ca>>2|0)>(t|0)){Z=-1;M=196;break a}ca=f[P>>2]|0;f[ca+(T<<2)>>2]=U;if(R|0)f[S+(U<<2)>>2]=T;if((ba|0)!=-1){T=(((ba>>>0)%3|0|0)==0?2:-1)+ba|0;if((T|0)!=-1){U=f[ca+(T<<2)>>2]|0;f[ca+(aa<<2)>>2]=U;if((U|0)!=-1)f[S+(U<<2)>>2]=aa}else f[ca+(aa<<2)>>2]=-1;U=ba+1|0;S=((U>>>0)%3|0|0)==0?ba+-2|0:U;if((S|0)==-1)fa=-1;else fa=f[ca+(S<<2)>>2]|0}else{f[ca+(aa<<2)>>2]=-1;fa=-1}f[ca+(Q<<2)>>2]=fa;Q=(f[n>>2]|0)+-4|0;f[Q>>2]=L;f[l>>2]=f[Q>>2];f[e>>2]=f[l>>2];Tc(v,e);break}case 1:{Q=f[g>>2]|0;L=f[n>>2]|0;if((Q|0)==(L|0)){Z=-1;M=196;break a}ca=L+-4|0;aa=f[ca>>2]|0;f[n>>2]=ca;S=f[G>>2]|0;e:do if(S){U=S+-1|0;ba=(U&S|0)==0;if(!ba)if(J>>>0<S>>>0)ga=J;else ga=(J>>>0)%(S>>>0)|0;else ga=U&J;T=f[(f[i>>2]|0)+(ga<<2)>>2]|0;if((T|0)!=0?(R=f[T>>2]|0,(R|0)!=0):0){f:do if(ba){T=R;while(1){P=f[T+4>>2]|0;ha=(P|0)==(J|0);if(!(ha|(P&U|0)==(ga|0))){ia=Q;ja=ca;break e}if(ha?(f[T+8>>2]|0)==(J|0):0){ka=T;break f}T=f[T>>2]|0;if(!T){ia=Q;ja=ca;break e}}}else{T=R;while(1){ha=f[T+4>>2]|0;if((ha|0)==(J|0)){if((f[T+8>>2]|0)==(J|0)){ka=T;break f}}else{if(ha>>>0<S>>>0)la=ha;else la=(ha>>>0)%(S>>>0)|0;if((la|0)!=(ga|0)){ia=Q;ja=ca;break e}}T=f[T>>2]|0;if(!T){ia=Q;ja=ca;break e}}}while(0);R=ka+12|0;if((ca|0)==(f[o>>2]|0)){Ng(g,R);ia=f[g>>2]|0;ja=f[n>>2]|0;break}else{f[ca>>2]=f[R>>2];f[n>>2]=L;ia=Q;ja=L;break}}else{ia=Q;ja=ca}}else{ia=Q;ja=ca}while(0);if((ia|0)==(ja|0)){Z=-1;M=196;break a}ca=ja+-4|0;Q=f[ca>>2]|0;L=f[D>>2]|0;S=(Q|0)==-1;if(!S?(f[(f[L+12>>2]|0)+(Q<<2)>>2]|0)!=-1:0){Z=-1;M=196;break a}R=(aa|0)==-1;U=f[L+12>>2]|0;if(!R){ba=U+(aa<<2)|0;if((f[ba>>2]|0)==-1)ma=ba;else{Z=-1;M=196;break a}}else ma=U+-4|0;ba=J*3|0;T=ba+2|0;f[U+(Q<<2)>>2]=T;f[U+(T<<2)>>2]=Q;ha=ba+1|0;f[ma>>2]=ha;f[U+(ha<<2)>>2]=aa;if(!S){S=(((Q>>>0)%3|0|0)==0?2:-1)+Q|0;P=f[L>>2]|0;if((S|0)==-1)na=-1;else na=f[P+(S<<2)>>2]|0;f[P+(ba<<2)>>2]=na;S=Q+1|0;oa=((S>>>0)%3|0|0)==0?Q+-2|0:S;if((oa|0)==-1){pa=-1;qa=na;ra=P;sa=L}else{pa=f[P+(oa<<2)>>2]|0;qa=na;ra=P;sa=L}}else{P=f[L>>2]|0;f[P+(ba<<2)>>2]=-1;pa=-1;qa=-1;ra=P;sa=L}f[ra+(ha<<2)>>2]=pa;if(!R){R=(((aa>>>0)%3|0|0)==0?2:-1)+aa|0;if((R|0)!=-1){ha=f[ra+(R<<2)>>2]|0;f[ra+(T<<2)>>2]=ha;if((ha|0)!=-1)f[(f[L+24>>2]|0)+(ha<<2)>>2]=T}else f[ra+(T<<2)>>2]=-1;ha=aa+1|0;R=((ha>>>0)%3|0|0)==0?aa+-2|0:ha;if((R|0)==-1){ta=-1;ua=-1}else{ta=f[ra+(R<<2)>>2]|0;ua=R}}else{f[ra+(T<<2)>>2]=-1;ta=-1;ua=-1}f[e>>2]=ta;T=f[I>>2]|0;R=T+(qa<<2)|0;f[R>>2]=(f[R>>2]|0)+(f[T+(ta<<2)>>2]|0);T=f[L+24>>2]|0;if((qa|0)!=-1)f[T+(qa<<2)>>2]=f[T+(f[e>>2]<<2)>>2];g:do if((ua|0)!=-1){L=f[sa>>2]|0;R=ua;do{f[L+(R<<2)>>2]=qa;ha=R+1|0;P=((ha>>>0)%3|0|0)==0?R+-2|0:ha;if((P|0)==-1)break g;ha=f[U+(P<<2)>>2]|0;P=ha+1|0;if((ha|0)==-1)break g;R=((P>>>0)%3|0|0)==0?ha+-2|0:P}while((R|0)!=-1)}while(0);f[T+(f[e>>2]<<2)>>2]=-1;do if(r){U=f[p>>2]|0;if((U|0)==(f[q>>2]|0)){Ng(k,e);va=(f[n>>2]|0)+-4|0;break}else{f[U>>2]=f[e>>2];f[p>>2]=U+4;va=ca;break}}else va=ca;while(0);f[va>>2]=ba;f[l>>2]=f[va>>2];f[e>>2]=f[l>>2];Tc(v,e);break d;break}case 7:{f[e>>2]=J*3;ca=f[D>>2]|0;T=ca+24|0;U=ca+28|0;aa=f[U>>2]|0;if((aa|0)==(f[ca+32>>2]|0)){Ng(T,3280);wa=f[U>>2]|0}else{f[aa>>2]=-1;ca=aa+4|0;f[U>>2]=ca;wa=ca}ca=wa-(f[T>>2]|0)|0;T=ca>>2;U=T+-1|0;aa=f[D>>2]|0;R=f[e>>2]|0;L=f[aa>>2]|0;f[L+(R<<2)>>2]=U;P=aa+24|0;ha=aa+28|0;oa=f[ha>>2]|0;if((oa|0)==(f[aa+32>>2]|0)){Ng(P,3280);xa=f[ha>>2]|0;ya=f[aa>>2]|0}else{f[oa>>2]=-1;aa=oa+4|0;f[ha>>2]=aa;xa=aa;ya=L}f[ya+(R+1<<2)>>2]=(xa-(f[P>>2]|0)>>2)+-1;P=f[D>>2]|0;R=(f[e>>2]|0)+2|0;L=P+24|0;aa=P+28|0;ha=f[aa>>2]|0;if((ha|0)==(f[P+32>>2]|0)){Ng(L,3280);za=f[aa>>2]|0}else{f[ha>>2]=-1;oa=ha+4|0;f[aa>>2]=oa;za=oa}f[(f[P>>2]|0)+(R<<2)>>2]=(za-(f[L>>2]|0)>>2)+-1;L=f[D>>2]|0;R=f[L+24>>2]|0;P=R;if(((f[L+28>>2]|0)-R>>2|0)>(t|0))break b;R=f[e>>2]|0;if(ca){f[P+(U<<2)>>2]=R;if((ca|0)!=-4){f[P+(T<<2)>>2]=(f[e>>2]|0)+1;ca=T+1|0;if((ca|0)!=-1){Aa=ca;M=119}}else{Aa=0;M=119}}else{f[P+(T<<2)>>2]=R+1;Aa=1;M=119}if((M|0)==119){M=0;f[P+(Aa<<2)>>2]=(f[e>>2]|0)+2}P=f[n>>2]|0;if((P|0)==(f[o>>2]|0)){Ng(g,e);Ba=f[n>>2]|0}else{f[P>>2]=f[e>>2];R=P+4|0;f[n>>2]=R;Ba=R}f[l>>2]=f[Ba+-4>>2];f[e>>2]=f[l>>2];Tc(v,e);break}default:{Z=-1;M=196;break a}}R=c-J+-1|0;P=f[F>>2]|0;if((P|0)!=(f[E>>2]|0)){T=P;do{P=T;ca=P+-12|0;U=f[P+-8>>2]|0;if(U>>>0>R>>>0){Z=-1;M=196;break a}if((U|0)!=(R|0))break d;U=b[P+-4>>0]|0;P=f[ca>>2]|0;f[F>>2]=ca;if((P|0)<0){Z=-1;M=196;break a}ca=f[(f[n>>2]|0)+-4>>2]|0;L=(ca|0)==-1;do if(!(U&1))if(!L)if(!((ca>>>0)%3|0)){Ca=ca+2|0;break}else{Ca=ca+-1|0;break}else Ca=-1;else{oa=ca+1|0;if(L)Ca=-1;else Ca=((oa>>>0)%3|0|0)==0?ca+-2|0:oa}while(0);f[e>>2]=H-P;ca=ed(i,e)|0;f[ca>>2]=Ca;T=f[F>>2]|0}while((T|0)!=(f[E>>2]|0))}}while(0);if((K|0)<(c|0))J=K;else{Da=K;Ea=D;M=139;break a}}Z=-1;M=196}else{Da=0;Ea=a+8|0;M=139}while(0);h:do if((M|0)==139){c=f[Ea>>2]|0;if(((f[c+28>>2]|0)-(f[c+24>>2]|0)>>2|0)<=(t|0)){Ca=f[n>>2]|0;do if((Ca|0)!=(f[g>>2]|0)){l=a+270|0;Ba=a+364|0;o=a+60|0;Aa=a+64|0;za=a+68|0;xa=a+312|0;ya=a+360|0;wa=a+352|0;va=a+356|0;q=a+76|0;r=a+80|0;qa=a+72|0;ua=Da;sa=Ca;i:while(1){ta=sa+-4|0;f[e>>2]=f[ta>>2];f[n>>2]=ta;if((j[l>>1]|0)<514)if(b[Ba>>0]|0){ta=f[ya>>2]|0;ra=(f[wa>>2]|0)+(ta>>>3)|0;if(ra>>>0<(f[va>>2]|0)>>>0){pa=(h[ra>>0]|0)>>>(ta&7)&1;f[ya>>2]=ta+1;Fa=pa;M=147}else M=168}else M=148;else{Fa=(pi(xa)|0)&1;M=147}if((M|0)==147){M=0;if(!Fa)M=168;else M=148}do if((M|0)==148){M=0;pa=f[Ea>>2]|0;ta=f[pa>>2]|0;ra=ta;if((ua|0)>=(((f[pa+4>>2]|0)-ta>>2>>>0)/3|0|0)){M=175;break i}ta=f[e>>2]|0;na=ta+1|0;if((ta|0)!=-1?(ma=((na>>>0)%3|0|0)==0?ta+-2|0:na,(ma|0)!=-1):0)Ga=f[ra+(ma<<2)>>2]|0;else Ga=-1;ma=f[pa+24>>2]|0;na=f[ma+(Ga<<2)>>2]|0;ja=na+1|0;if((na|0)!=-1?(ia=((ja>>>0)%3|0|0)==0?na+-2|0:ja,ja=ia+1|0,(ia|0)!=-1):0){na=((ja>>>0)%3|0|0)==0?ia+-2|0:ja;if((na|0)==-1){Ha=-1;Ia=ia}else{Ha=f[ra+(na<<2)>>2]|0;Ia=ia}}else{Ha=-1;Ia=-1}ia=f[ma+(Ha<<2)>>2]|0;ma=ia+1|0;if((ia|0)!=-1?(na=((ma>>>0)%3|0|0)==0?ia+-2|0:ma,ma=na+1|0,(na|0)!=-1):0){ia=((ma>>>0)%3|0|0)==0?na+-2|0:ma;if((ia|0)==-1){Ja=-1;Ka=na}else{Ja=f[ra+(ia<<2)>>2]|0;Ka=na}}else{Ja=-1;Ka=-1}na=ua*3|0;f[m>>2]=na;ia=f[pa+12>>2]|0;f[ia+(na<<2)>>2]=ta;f[ia+(ta<<2)>>2]=na;na=(f[m>>2]|0)+1|0;f[ia+(na<<2)>>2]=Ia;f[ia+(Ia<<2)>>2]=na;na=(f[m>>2]|0)+2|0;f[ia+(na<<2)>>2]=Ka;f[ia+(Ka<<2)>>2]=na;na=f[m>>2]|0;f[ra+(na<<2)>>2]=Ha;f[ra+(na+1<<2)>>2]=Ja;f[ra+(na+2<<2)>>2]=Ga;ia=(na|0)==-1?-1:Ha;na=f[s>>2]|0;ta=na+(ia>>>5<<2)|0;f[ta>>2]=f[ta>>2]&~(1<<(ia&31));ia=(f[m>>2]|0)+1|0;if((ia|0)==-1)La=-1;else La=f[ra+(ia<<2)>>2]|0;ia=na+(La>>>5<<2)|0;f[ia>>2]=f[ia>>2]&~(1<<(La&31));ia=(f[m>>2]|0)+2|0;if((ia|0)==-1)Ma=-1;else Ma=f[ra+(ia<<2)>>2]|0;ia=na+(Ma>>>5<<2)|0;f[ia>>2]=f[ia>>2]&~(1<<(Ma&31));ia=ua+1|0;na=f[Aa>>2]|0;ra=f[za>>2]|0;if((na|0)==(ra<<5|0)){if((na+1|0)<0){M=162;break i}ta=ra<<6;ra=na+32&-32;vg(o,na>>>0<1073741823?(ta>>>0<ra>>>0?ra:ta):2147483647);Na=f[Aa>>2]|0}else Na=na;f[Aa>>2]=Na+1;na=(f[o>>2]|0)+(Na>>>5<<2)|0;f[na>>2]=f[na>>2]|1<<(Na&31);na=f[q>>2]|0;if((na|0)==(f[r>>2]|0))Ng(qa,m);else{f[na>>2]=f[m>>2];f[q>>2]=na+4}Oa=ia}else if((M|0)==168){M=0;ia=f[Aa>>2]|0;na=f[za>>2]|0;if((ia|0)==(na<<5|0)){if((ia+1|0)<0){M=170;break i}ta=na<<6;na=ia+32&-32;vg(o,ia>>>0<1073741823?(ta>>>0<na>>>0?na:ta):2147483647);Pa=f[Aa>>2]|0}else Pa=ia;f[Aa>>2]=Pa+1;ia=(f[o>>2]|0)+(Pa>>>5<<2)|0;f[ia>>2]=f[ia>>2]&~(1<<(Pa&31));ia=f[q>>2]|0;if((ia|0)==(f[r>>2]|0)){Ng(qa,e);Oa=ua;break}else{f[ia>>2]=f[e>>2];f[q>>2]=ia+4;Oa=ua;break}}while(0);sa=f[n>>2]|0;if((sa|0)==(f[g>>2]|0)){M=177;break}else ua=Oa}if((M|0)==162)$n(o);else if((M|0)==170)$n(o);else if((M|0)==175){Z=-1;M=196;break h}else if((M|0)==177){Qa=Oa;Ra=f[Ea>>2]|0;break}}else{Qa=Da;Ra=c}while(0);if((Qa|0)==(((f[Ra+4>>2]|0)-(f[Ra>>2]|0)>>2>>>0)/3|0|0)){c=(f[Ra+28>>2]|0)-(f[Ra+24>>2]|0)>>2;Ca=f[k>>2]|0;ua=f[p>>2]|0;if((Ca|0)==(ua|0)){Sa=c;Ta=Ca}else{sa=e+4|0;q=e+8|0;qa=e+12|0;r=c;c=Ca;Ca=Ra;while(1){Aa=f[c>>2]|0;za=r+-1|0;xa=f[Ca+24>>2]|0;ya=xa+(za<<2)|0;if((f[ya>>2]|0)==-1){va=r;while(1){wa=va+-1|0;Ba=va+-2|0;l=xa+(Ba<<2)|0;if((f[l>>2]|0)==-1)va=wa;else{Ua=wa;Va=l;Wa=Ba;break}}}else{Ua=r;Va=ya;Wa=za}if(Wa>>>0<Aa>>>0){Xa=Ua;Ya=Ca}else{f[e>>2]=Ca;va=f[Va>>2]|0;f[sa>>2]=va;f[q>>2]=va;b[qa>>0]=1;if((va|0)==-1){Za=xa;_a=Ca}else{o=Ca;Ba=va;do{f[(f[o>>2]|0)+(Ba<<2)>>2]=Aa;Tf(e);Ba=f[q>>2]|0;o=f[Ea>>2]|0}while((Ba|0)!=-1);Za=f[o+24>>2]|0;_a=o}Ba=Za+(Wa<<2)|0;if((Aa|0)!=-1)f[Za+(Aa<<2)>>2]=f[Ba>>2];f[Ba>>2]=-1;Ba=f[s>>2]|0;xa=Ba+(Wa>>>5<<2)|0;za=1<<(Wa&31);ya=Ba+(Aa>>>5<<2)|0;Ba=1<<(Aa&31);if(!(f[xa>>2]&za))$a=f[ya>>2]&~Ba;else $a=f[ya>>2]|Ba;f[ya>>2]=$a;f[xa>>2]=f[xa>>2]&~za;Xa=Ua+-1|0;Ya=_a}c=c+4|0;if((c|0)==(ua|0)){Z=Xa;M=196;break}else{r=Xa;Ca=Ya}}}}else{Z=-1;M=196}}else{Z=-1;M=196}}while(0);if((M|0)==196){Sa=Z;Ta=f[k>>2]|0}if(Ta|0){f[p>>2]=Ta;Ko(Ta)}Ta=f[i+8>>2]|0;if(Ta|0){p=Ta;do{Ta=p;p=f[p>>2]|0;Ko(Ta)}while((p|0)!=0)}p=f[i>>2]|0;f[i>>2]=0;if(p|0)Ko(p);p=f[g>>2]|0;if(!p){u=d;return Sa|0}f[n>>2]=p;Ko(p);u=d;return Sa|0}function Xa(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0;d=u;u=u+80|0;e=d+56|0;g=d+36|0;i=d+16|0;k=d+4|0;l=d+48|0;m=d;f[g>>2]=0;n=g+4|0;f[n>>2]=0;o=g+8|0;f[o>>2]=0;f[i>>2]=0;f[i+4>>2]=0;f[i+8>>2]=0;f[i+12>>2]=0;f[i+16>>2]=1065353216;f[k>>2]=0;p=k+4|0;f[p>>2]=0;q=k+8|0;f[q>>2]=0;r=(f[a+216>>2]|0)==(f[a+220>>2]|0);s=a+120|0;t=f[a+124>>2]|0;a:do if((c|0)>0){v=a+232|0;w=a+8|0;x=a+36|0;y=a+40|0;z=i+4|0;A=c+-1|0;B=a+388|0;C=0;b:while(1){D=C+1|0;E=qf(v)|0;c:do if(E){F=(E|0)==5;switch(E|0){case 3:case 5:{G=f[n>>2]|0;if((f[g>>2]|0)==(G|0)){H=-1;I=184;break a}J=f[G+-4>>2]|0;G=C*3|0;K=F?G:G+2|0;L=G+(F&1)|0;M=(F?2:1)+G|0;F=f[w>>2]|0;N=f[F+12>>2]|0;f[N+(M<<2)>>2]=J;f[N+(J<<2)>>2]=M;N=F+24|0;O=F+28|0;P=f[O>>2]|0;if((P|0)==(f[F+32>>2]|0)){Ng(N,3280);Q=f[O>>2]|0}else{f[P>>2]=-1;F=P+4|0;f[O>>2]=F;Q=F}F=Q-(f[N>>2]|0)|0;N=(F>>2)+-1|0;O=f[w>>2]|0;P=f[O+24>>2]|0;R=P;if(((f[O+28>>2]|0)-P>>2|0)>(t|0)){H=-1;I=184;break a}P=f[O>>2]|0;f[P+(M<<2)>>2]=N;if(F|0)f[R+(N<<2)>>2]=M;if((J|0)!=-1){M=(((J>>>0)%3|0|0)==0?2:-1)+J|0;if((M|0)!=-1){N=f[P+(M<<2)>>2]|0;f[P+(K<<2)>>2]=N;if((N|0)!=-1)f[R+(N<<2)>>2]=K}else f[P+(K<<2)>>2]=-1;N=J+1|0;R=((N>>>0)%3|0|0)==0?J+-2|0:N;if((R|0)==-1)S=-1;else S=f[P+(R<<2)>>2]|0}else{f[P+(K<<2)>>2]=-1;S=-1}f[P+(L<<2)>>2]=S;L=(f[n>>2]|0)+-4|0;f[L>>2]=G;f[l>>2]=f[L>>2];f[e>>2]=f[l>>2];_c(v,e);break}case 1:{L=f[g>>2]|0;G=f[n>>2]|0;if((L|0)==(G|0)){H=-1;I=184;break a}P=G+-4|0;K=f[P>>2]|0;f[n>>2]=P;R=f[z>>2]|0;d:do if(R){N=R+-1|0;J=(N&R|0)==0;if(!J)if(C>>>0<R>>>0)T=C;else T=(C>>>0)%(R>>>0)|0;else T=N&C;M=f[(f[i>>2]|0)+(T<<2)>>2]|0;if((M|0)!=0?(F=f[M>>2]|0,(F|0)!=0):0){e:do if(J){M=F;while(1){O=f[M+4>>2]|0;U=(O|0)==(C|0);if(!(U|(O&N|0)==(T|0))){V=L;W=P;break d}if(U?(f[M+8>>2]|0)==(C|0):0){X=M;break e}M=f[M>>2]|0;if(!M){V=L;W=P;break d}}}else{M=F;while(1){U=f[M+4>>2]|0;if((U|0)==(C|0)){if((f[M+8>>2]|0)==(C|0)){X=M;break e}}else{if(U>>>0<R>>>0)Y=U;else Y=(U>>>0)%(R>>>0)|0;if((Y|0)!=(T|0)){V=L;W=P;break d}}M=f[M>>2]|0;if(!M){V=L;W=P;break d}}}while(0);F=X+12|0;if((P|0)==(f[o>>2]|0)){Ng(g,F);V=f[g>>2]|0;W=f[n>>2]|0;break}else{f[P>>2]=f[F>>2];f[n>>2]=G;V=L;W=G;break}}else{V=L;W=P}}else{V=L;W=P}while(0);if((V|0)==(W|0)){H=-1;I=184;break a}P=W+-4|0;L=f[P>>2]|0;G=f[w>>2]|0;R=(L|0)==-1;if(!R?(f[(f[G+12>>2]|0)+(L<<2)>>2]|0)!=-1:0){H=-1;I=184;break a}F=(K|0)==-1;N=f[G+12>>2]|0;if(!F){J=N+(K<<2)|0;if((f[J>>2]|0)==-1)Z=J;else{H=-1;I=184;break a}}else Z=N+-4|0;J=C*3|0;M=J+2|0;f[N+(L<<2)>>2]=M;f[N+(M<<2)>>2]=L;U=J+1|0;f[Z>>2]=U;f[N+(U<<2)>>2]=K;if(!R){R=(((L>>>0)%3|0|0)==0?2:-1)+L|0;O=f[G>>2]|0;if((R|0)==-1)_=-1;else _=f[O+(R<<2)>>2]|0;f[O+(J<<2)>>2]=_;R=L+1|0;$=((R>>>0)%3|0|0)==0?L+-2|0:R;if(($|0)==-1){aa=-1;ba=_;ca=O;da=G}else{aa=f[O+($<<2)>>2]|0;ba=_;ca=O;da=G}}else{O=f[G>>2]|0;f[O+(J<<2)>>2]=-1;aa=-1;ba=-1;ca=O;da=G}f[ca+(U<<2)>>2]=aa;if(!F){F=(((K>>>0)%3|0|0)==0?2:-1)+K|0;if((F|0)!=-1){U=f[ca+(F<<2)>>2]|0;f[ca+(M<<2)>>2]=U;if((U|0)!=-1)f[(f[G+24>>2]|0)+(U<<2)>>2]=M}else f[ca+(M<<2)>>2]=-1;U=K+1|0;F=((U>>>0)%3|0|0)==0?K+-2|0:U;if((F|0)==-1){ea=-1;fa=-1}else{ea=f[ca+(F<<2)>>2]|0;fa=F}}else{f[ca+(M<<2)>>2]=-1;ea=-1;fa=-1}f[e>>2]=ea;M=f[B>>2]|0;F=M+(ba<<2)|0;f[F>>2]=(f[F>>2]|0)+(f[M+(ea<<2)>>2]|0);M=f[G+24>>2]|0;if((ba|0)!=-1)f[M+(ba<<2)>>2]=f[M+(f[e>>2]<<2)>>2];f:do if((fa|0)!=-1){G=f[da>>2]|0;F=fa;do{f[G+(F<<2)>>2]=ba;U=F+1|0;O=((U>>>0)%3|0|0)==0?F+-2|0:U;if((O|0)==-1)break f;U=f[N+(O<<2)>>2]|0;O=U+1|0;if((U|0)==-1)break f;F=((O>>>0)%3|0|0)==0?U+-2|0:O}while((F|0)!=-1)}while(0);f[M+(f[e>>2]<<2)>>2]=-1;do if(r){N=f[p>>2]|0;if((N|0)==(f[q>>2]|0)){Ng(k,e);ga=(f[n>>2]|0)+-4|0;break}else{f[N>>2]=f[e>>2];f[p>>2]=N+4;ga=P;break}}else ga=P;while(0);f[ga>>2]=J;f[l>>2]=f[ga>>2];f[e>>2]=f[l>>2];_c(v,e);break c;break}case 7:{f[e>>2]=C*3;P=f[w>>2]|0;M=P+24|0;N=P+28|0;K=f[N>>2]|0;if((K|0)==(f[P+32>>2]|0)){Ng(M,3280);ha=f[N>>2]|0}else{f[K>>2]=-1;P=K+4|0;f[N>>2]=P;ha=P}P=ha-(f[M>>2]|0)|0;M=P>>2;N=M+-1|0;K=f[w>>2]|0;F=f[e>>2]|0;G=f[K>>2]|0;f[G+(F<<2)>>2]=N;O=K+24|0;U=K+28|0;$=f[U>>2]|0;if(($|0)==(f[K+32>>2]|0)){Ng(O,3280);ia=f[U>>2]|0;ja=f[K>>2]|0}else{f[$>>2]=-1;K=$+4|0;f[U>>2]=K;ia=K;ja=G}f[ja+(F+1<<2)>>2]=(ia-(f[O>>2]|0)>>2)+-1;O=f[w>>2]|0;F=(f[e>>2]|0)+2|0;G=O+24|0;K=O+28|0;U=f[K>>2]|0;if((U|0)==(f[O+32>>2]|0)){Ng(G,3280);ka=f[K>>2]|0}else{f[U>>2]=-1;$=U+4|0;f[K>>2]=$;ka=$}f[(f[O>>2]|0)+(F<<2)>>2]=(ka-(f[G>>2]|0)>>2)+-1;G=f[w>>2]|0;F=f[G+24>>2]|0;O=F;if(((f[G+28>>2]|0)-F>>2|0)>(t|0))break b;F=f[e>>2]|0;if(P){f[O+(N<<2)>>2]=F;if((P|0)!=-4){f[O+(M<<2)>>2]=(f[e>>2]|0)+1;P=M+1|0;if((P|0)!=-1){la=P;I=107}}else{la=0;I=107}}else{f[O+(M<<2)>>2]=F+1;la=1;I=107}if((I|0)==107){I=0;f[O+(la<<2)>>2]=(f[e>>2]|0)+2}O=f[n>>2]|0;if((O|0)==(f[o>>2]|0)){Ng(g,e);ma=f[n>>2]|0}else{f[O>>2]=f[e>>2];F=O+4|0;f[n>>2]=F;ma=F}f[l>>2]=f[ma+-4>>2];f[e>>2]=f[l>>2];_c(v,e);break}default:{H=-1;I=184;break a}}F=c-C+-1|0;O=f[y>>2]|0;if((O|0)!=(f[x>>2]|0)){M=O;do{O=M;P=O+-12|0;N=f[O+-8>>2]|0;if(N>>>0>F>>>0){H=-1;I=184;break a}if((N|0)!=(F|0))break c;N=b[O+-4>>0]|0;O=f[P>>2]|0;f[y>>2]=P;if((O|0)<0){H=-1;I=184;break a}P=f[(f[n>>2]|0)+-4>>2]|0;G=(P|0)==-1;do if(!(N&1))if(!G)if(!((P>>>0)%3|0)){na=P+2|0;break}else{na=P+-1|0;break}else na=-1;else{$=P+1|0;if(G)na=-1;else na=(($>>>0)%3|0|0)==0?P+-2|0:$}while(0);f[e>>2]=A-O;P=ed(i,e)|0;f[P>>2]=na;M=f[y>>2]|0}while((M|0)!=(f[x>>2]|0))}}else{M=f[n>>2]|0;if((f[g>>2]|0)==(M|0)){H=-1;I=184;break a}F=M+-4|0;M=f[F>>2]|0;J=f[w>>2]|0;P=(M|0)==-1;G=M+1|0;if(!P?(N=((G>>>0)%3|0|0)==0?M+-2|0:G,(N|0)!=-1):0)oa=f[(f[J>>2]|0)+(N<<2)>>2]|0;else oa=-1;N=f[J+24>>2]|0;G=f[N+(oa<<2)>>2]|0;$=G+1|0;if((G|0)==-1)pa=-1;else pa=(($>>>0)%3|0|0)==0?G+-2|0:$;$=C*3|0;G=$+1|0;K=f[J+12>>2]|0;f[K+(M<<2)>>2]=G;f[K+(G<<2)>>2]=M;U=$+2|0;f[K+(pa<<2)>>2]=U;f[K+(U<<2)>>2]=pa;K=f[J>>2]|0;f[K+($<<2)>>2]=oa;J=pa+1|0;if((pa|0)!=-1?(R=((J>>>0)%3|0|0)==0?pa+-2|0:J,(R|0)!=-1):0)qa=f[K+(R<<2)>>2]|0;else qa=-1;f[K+(G<<2)>>2]=qa;if(!P?(P=(((M>>>0)%3|0|0)==0?2:-1)+M|0,(P|0)!=-1):0){M=f[K+(P<<2)>>2]|0;f[K+(U<<2)>>2]=M;if((M|0)!=-1)f[N+(M<<2)>>2]=U}else f[K+(U<<2)>>2]=-1;U=(f[s>>2]|0)+(oa>>>5<<2)|0;f[U>>2]=f[U>>2]&~(1<<(oa&31));f[F>>2]=$;f[l>>2]=f[F>>2];f[e>>2]=f[l>>2];_c(v,e)}while(0);if((D|0)<(c|0))C=D;else{ra=D;sa=w;I=127;break a}}H=-1;I=184}else{ra=0;sa=a+8|0;I=127}while(0);g:do if((I|0)==127){c=f[sa>>2]|0;if(((f[c+28>>2]|0)-(f[c+24>>2]|0)>>2|0)<=(t|0)){l=f[n>>2]|0;do if((l|0)!=(f[g>>2]|0)){oa=a+270|0;qa=a+364|0;pa=a+60|0;na=a+64|0;ma=a+68|0;o=a+312|0;la=a+360|0;ka=a+352|0;ia=a+356|0;ja=a+76|0;ha=a+80|0;ga=a+72|0;q=ra;r=l;h:while(1){ba=r+-4|0;f[e>>2]=f[ba>>2];f[n>>2]=ba;if((j[oa>>1]|0)<514)if(b[qa>>0]|0){ba=f[la>>2]|0;fa=(f[ka>>2]|0)+(ba>>>3)|0;if(fa>>>0<(f[ia>>2]|0)>>>0){da=(h[fa>>0]|0)>>>(ba&7)&1;f[la>>2]=ba+1;ta=da;I=135}else I=156}else I=136;else{ta=(pi(o)|0)&1;I=135}if((I|0)==135){I=0;if(!ta)I=156;else I=136}do if((I|0)==136){I=0;da=f[sa>>2]|0;ba=f[da>>2]|0;fa=ba;if((q|0)>=(((f[da+4>>2]|0)-ba>>2>>>0)/3|0|0)){I=163;break h}ba=f[e>>2]|0;ea=ba+1|0;if((ba|0)!=-1?(ca=((ea>>>0)%3|0|0)==0?ba+-2|0:ea,(ca|0)!=-1):0)ua=f[fa+(ca<<2)>>2]|0;else ua=-1;ca=f[da+24>>2]|0;ea=f[ca+(ua<<2)>>2]|0;aa=ea+1|0;if((ea|0)!=-1?(_=((aa>>>0)%3|0|0)==0?ea+-2|0:aa,aa=_+1|0,(_|0)!=-1):0){ea=((aa>>>0)%3|0|0)==0?_+-2|0:aa;if((ea|0)==-1){va=-1;wa=_}else{va=f[fa+(ea<<2)>>2]|0;wa=_}}else{va=-1;wa=-1}_=f[ca+(va<<2)>>2]|0;ca=_+1|0;if((_|0)!=-1?(ea=((ca>>>0)%3|0|0)==0?_+-2|0:ca,ca=ea+1|0,(ea|0)!=-1):0){_=((ca>>>0)%3|0|0)==0?ea+-2|0:ca;if((_|0)==-1){xa=-1;ya=ea}else{xa=f[fa+(_<<2)>>2]|0;ya=ea}}else{xa=-1;ya=-1}ea=q*3|0;f[m>>2]=ea;_=f[da+12>>2]|0;f[_+(ea<<2)>>2]=ba;f[_+(ba<<2)>>2]=ea;ea=(f[m>>2]|0)+1|0;f[_+(ea<<2)>>2]=wa;f[_+(wa<<2)>>2]=ea;ea=(f[m>>2]|0)+2|0;f[_+(ea<<2)>>2]=ya;f[_+(ya<<2)>>2]=ea;ea=f[m>>2]|0;f[fa+(ea<<2)>>2]=va;f[fa+(ea+1<<2)>>2]=xa;f[fa+(ea+2<<2)>>2]=ua;_=(ea|0)==-1?-1:va;ea=f[s>>2]|0;ba=ea+(_>>>5<<2)|0;f[ba>>2]=f[ba>>2]&~(1<<(_&31));_=(f[m>>2]|0)+1|0;if((_|0)==-1)za=-1;else za=f[fa+(_<<2)>>2]|0;_=ea+(za>>>5<<2)|0;f[_>>2]=f[_>>2]&~(1<<(za&31));_=(f[m>>2]|0)+2|0;if((_|0)==-1)Aa=-1;else Aa=f[fa+(_<<2)>>2]|0;_=ea+(Aa>>>5<<2)|0;f[_>>2]=f[_>>2]&~(1<<(Aa&31));_=q+1|0;ea=f[na>>2]|0;fa=f[ma>>2]|0;if((ea|0)==(fa<<5|0)){if((ea+1|0)<0){I=150;break h}ba=fa<<6;fa=ea+32&-32;vg(pa,ea>>>0<1073741823?(ba>>>0<fa>>>0?fa:ba):2147483647);Ba=f[na>>2]|0}else Ba=ea;f[na>>2]=Ba+1;ea=(f[pa>>2]|0)+(Ba>>>5<<2)|0;f[ea>>2]=f[ea>>2]|1<<(Ba&31);ea=f[ja>>2]|0;if((ea|0)==(f[ha>>2]|0))Ng(ga,m);else{f[ea>>2]=f[m>>2];f[ja>>2]=ea+4}Ca=_}else if((I|0)==156){I=0;_=f[na>>2]|0;ea=f[ma>>2]|0;if((_|0)==(ea<<5|0)){if((_+1|0)<0){I=158;break h}ba=ea<<6;ea=_+32&-32;vg(pa,_>>>0<1073741823?(ba>>>0<ea>>>0?ea:ba):2147483647);Da=f[na>>2]|0}else Da=_;f[na>>2]=Da+1;_=(f[pa>>2]|0)+(Da>>>5<<2)|0;f[_>>2]=f[_>>2]&~(1<<(Da&31));_=f[ja>>2]|0;if((_|0)==(f[ha>>2]|0)){Ng(ga,e);Ca=q;break}else{f[_>>2]=f[e>>2];f[ja>>2]=_+4;Ca=q;break}}while(0);r=f[n>>2]|0;if((r|0)==(f[g>>2]|0)){I=165;break}else q=Ca}if((I|0)==150)$n(pa);else if((I|0)==158)$n(pa);else if((I|0)==163){H=-1;I=184;break g}else if((I|0)==165){Ea=Ca;Fa=f[sa>>2]|0;break}}else{Ea=ra;Fa=c}while(0);if((Ea|0)==(((f[Fa+4>>2]|0)-(f[Fa>>2]|0)>>2>>>0)/3|0|0)){c=(f[Fa+28>>2]|0)-(f[Fa+24>>2]|0)>>2;l=f[k>>2]|0;q=f[p>>2]|0;if((l|0)==(q|0)){Ga=c;Ha=l}else{r=e+4|0;ja=e+8|0;ga=e+12|0;ha=c;c=l;l=Fa;while(1){na=f[c>>2]|0;ma=ha+-1|0;o=f[l+24>>2]|0;la=o+(ma<<2)|0;if((f[la>>2]|0)==-1){ia=ha;while(1){ka=ia+-1|0;qa=ia+-2|0;oa=o+(qa<<2)|0;if((f[oa>>2]|0)==-1)ia=ka;else{Ia=ka;Ja=oa;Ka=qa;break}}}else{Ia=ha;Ja=la;Ka=ma}if(Ka>>>0<na>>>0){La=Ia;Ma=l}else{f[e>>2]=l;ia=f[Ja>>2]|0;f[r>>2]=ia;f[ja>>2]=ia;b[ga>>0]=1;if((ia|0)==-1){Na=o;Oa=l}else{pa=l;qa=ia;do{f[(f[pa>>2]|0)+(qa<<2)>>2]=na;Tf(e);qa=f[ja>>2]|0;pa=f[sa>>2]|0}while((qa|0)!=-1);Na=f[pa+24>>2]|0;Oa=pa}qa=Na+(Ka<<2)|0;if((na|0)!=-1)f[Na+(na<<2)>>2]=f[qa>>2];f[qa>>2]=-1;qa=f[s>>2]|0;o=qa+(Ka>>>5<<2)|0;ma=1<<(Ka&31);la=qa+(na>>>5<<2)|0;qa=1<<(na&31);if(!(f[o>>2]&ma))Pa=f[la>>2]&~qa;else Pa=f[la>>2]|qa;f[la>>2]=Pa;f[o>>2]=f[o>>2]&~ma;La=Ia+-1|0;Ma=Oa}c=c+4|0;if((c|0)==(q|0)){H=La;I=184;break}else{ha=La;l=Ma}}}}else{H=-1;I=184}}else{H=-1;I=184}}while(0);if((I|0)==184){Ga=H;Ha=f[k>>2]|0}if(Ha|0){f[p>>2]=Ha;Ko(Ha)}Ha=f[i+8>>2]|0;if(Ha|0){p=Ha;do{Ha=p;p=f[p>>2]|0;Ko(Ha)}while((p|0)!=0)}p=f[i>>2]|0;f[i>>2]=0;if(p|0)Ko(p);p=f[g>>2]|0;if(!p){u=d;return Ga|0}f[n>>2]=p;Ko(p);u=d;return Ga|0}function Ya(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0,Ja=0,Ka=0,La=0,Ma=0,Na=0,Oa=0,Pa=0,Qa=0,Ra=0,Sa=0;d=u;u=u+80|0;e=d+56|0;g=d+36|0;i=d+24|0;k=d+8|0;l=d;f[e>>2]=0;m=e+4|0;f[m>>2]=0;n=e+8|0;f[n>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=1065353216;f[i>>2]=0;o=i+4|0;f[o>>2]=0;p=i+8|0;f[p>>2]=0;q=(f[a+216>>2]|0)==(f[a+220>>2]|0);r=a+120|0;s=f[a+124>>2]|0;a:do if((c|0)>0){t=a+308|0;v=a+304|0;w=a+296|0;x=a+300|0;y=g+4|0;z=a+8|0;A=a+36|0;B=a+40|0;C=c+-1|0;D=0;b:while(1){E=D+1|0;c:do if(!(b[t>>0]|0))F=43;else{G=f[v>>2]|0;H=f[w>>2]|0;I=f[x>>2]|0;J=H+(G>>>3)|0;if(J>>>0<I>>>0?(K=h[J>>0]|0,J=G+1|0,f[v>>2]=J,1<<(G&7)&K|0):0){K=H+(J>>>3)|0;if(K>>>0<I>>>0){L=(h[K>>0]|0)>>>(J&7)&1;M=G+2|0;f[v>>2]=M;N=L;O=H+(M>>>3)|0;P=M}else{N=0;O=K;P=J}if(O>>>0<I>>>0){I=(h[O>>0]|0)>>>(P&7);f[v>>2]=P+1;Q=I<<1&2}else Q=0;I=(Q|N)<<1|1;J=(I|0)==5;switch(I&7){case 1:{F=43;break c;break}case 3:case 5:{I=f[m>>2]|0;if((f[e>>2]|0)==(I|0)){R=-1;F=191;break a}K=f[I+-4>>2]|0;I=D*3|0;M=J?I:I+2|0;H=I+(J&1)|0;L=(J?2:1)+I|0;J=f[z>>2]|0;G=f[J+12>>2]|0;f[G+(L<<2)>>2]=K;f[G+(K<<2)>>2]=L;G=J+24|0;S=J+28|0;T=f[S>>2]|0;if((T|0)==(f[J+32>>2]|0)){Ng(G,3280);U=f[S>>2]|0}else{f[T>>2]=-1;J=T+4|0;f[S>>2]=J;U=J}J=U-(f[G>>2]|0)|0;G=(J>>2)+-1|0;S=f[z>>2]|0;T=f[S+24>>2]|0;V=T;if(((f[S+28>>2]|0)-T>>2|0)>(s|0)){R=-1;F=191;break a}T=f[S>>2]|0;f[T+(L<<2)>>2]=G;if(J|0)f[V+(G<<2)>>2]=L;if((K|0)!=-1){L=(((K>>>0)%3|0|0)==0?2:-1)+K|0;if((L|0)!=-1){G=f[T+(L<<2)>>2]|0;f[T+(M<<2)>>2]=G;if((G|0)!=-1)f[V+(G<<2)>>2]=M}else f[T+(M<<2)>>2]=-1;G=K+1|0;V=((G>>>0)%3|0|0)==0?K+-2|0:G;if((V|0)==-1)W=-1;else W=f[T+(V<<2)>>2]|0}else{f[T+(M<<2)>>2]=-1;W=-1}f[T+(H<<2)>>2]=W;f[(f[m>>2]|0)+-4>>2]=I;break}case 7:{f[k>>2]=D*3;I=f[z>>2]|0;H=I+24|0;T=I+28|0;M=f[T>>2]|0;if((M|0)==(f[I+32>>2]|0)){Ng(H,3280);X=f[T>>2]|0}else{f[M>>2]=-1;I=M+4|0;f[T>>2]=I;X=I}I=X-(f[H>>2]|0)|0;H=I>>2;T=H+-1|0;M=f[z>>2]|0;V=f[k>>2]|0;G=f[M>>2]|0;f[G+(V<<2)>>2]=T;K=M+24|0;L=M+28|0;J=f[L>>2]|0;if((J|0)==(f[M+32>>2]|0)){Ng(K,3280);Y=f[L>>2]|0;Z=f[M>>2]|0}else{f[J>>2]=-1;M=J+4|0;f[L>>2]=M;Y=M;Z=G}f[Z+(V+1<<2)>>2]=(Y-(f[K>>2]|0)>>2)+-1;K=f[z>>2]|0;V=(f[k>>2]|0)+2|0;G=K+24|0;M=K+28|0;L=f[M>>2]|0;if((L|0)==(f[K+32>>2]|0)){Ng(G,3280);_=f[M>>2]|0}else{f[L>>2]=-1;J=L+4|0;f[M>>2]=J;_=J}f[(f[K>>2]|0)+(V<<2)>>2]=(_-(f[G>>2]|0)>>2)+-1;G=f[z>>2]|0;V=f[G+24>>2]|0;K=V;if(((f[G+28>>2]|0)-V>>2|0)>(s|0)){F=117;break b}V=f[k>>2]|0;if(I){f[K+(T<<2)>>2]=V;if((I|0)!=-4){f[K+(H<<2)>>2]=(f[k>>2]|0)+1;I=H+1|0;if((I|0)!=-1){$=I;F=112}}else{$=0;F=112}}else{f[K+(H<<2)>>2]=V+1;$=1;F=112}if((F|0)==112){F=0;f[K+($<<2)>>2]=(f[k>>2]|0)+2}K=f[m>>2]|0;if((K|0)==(f[n>>2]|0))Ng(e,k);else{f[K>>2]=f[k>>2];f[m>>2]=K+4}break}default:{F=190;break b}}K=c-D+-1|0;V=f[B>>2]|0;if((V|0)==(f[A>>2]|0))break;H=V;while(1){V=H;I=V+-12|0;T=f[V+-8>>2]|0;if(T>>>0>K>>>0){R=-1;F=191;break a}if((T|0)!=(K|0))break c;T=b[V+-4>>0]|0;V=f[I>>2]|0;f[B>>2]=I;if((V|0)<0){R=-1;F=191;break a}I=f[(f[m>>2]|0)+-4>>2]|0;G=(I|0)==-1;do if(!(T&1))if(!G)if(!((I>>>0)%3|0)){aa=I+2|0;break}else{aa=I+-1|0;break}else aa=-1;else{J=I+1|0;if(G)aa=-1;else aa=((J>>>0)%3|0|0)==0?I+-2|0:J}while(0);f[k>>2]=C-V;I=ed(g,k)|0;f[I>>2]=aa;H=f[B>>2]|0;if((H|0)==(f[A>>2]|0))break c}}H=f[m>>2]|0;if((f[e>>2]|0)==(H|0)){R=-1;F=191;break a}K=H+-4|0;H=f[K>>2]|0;I=f[z>>2]|0;G=(H|0)==-1;T=H+1|0;if(!G?(J=((T>>>0)%3|0|0)==0?H+-2|0:T,(J|0)!=-1):0)ba=f[(f[I>>2]|0)+(J<<2)>>2]|0;else ba=-1;J=f[I+24>>2]|0;T=f[J+(ba<<2)>>2]|0;M=T+1|0;if((T|0)==-1)ca=-1;else ca=((M>>>0)%3|0|0)==0?T+-2|0:M;M=D*3|0;T=M+1|0;L=f[I+12>>2]|0;f[L+(H<<2)>>2]=T;f[L+(T<<2)>>2]=H;S=M+2|0;f[L+(ca<<2)>>2]=S;f[L+(S<<2)>>2]=ca;L=f[I>>2]|0;f[L+(M<<2)>>2]=ba;I=ca+1|0;if((ca|0)!=-1?(da=((I>>>0)%3|0|0)==0?ca+-2|0:I,(da|0)!=-1):0)ea=f[L+(da<<2)>>2]|0;else ea=-1;f[L+(T<<2)>>2]=ea;if(!G?(G=(((H>>>0)%3|0|0)==0?2:-1)+H|0,(G|0)!=-1):0){H=f[L+(G<<2)>>2]|0;f[L+(S<<2)>>2]=H;if((H|0)!=-1)f[J+(H<<2)>>2]=S}else f[L+(S<<2)>>2]=-1;S=(f[r>>2]|0)+(ba>>>5<<2)|0;f[S>>2]=f[S>>2]&~(1<<(ba&31));f[K>>2]=M}while(0);if((F|0)==43){F=0;M=f[e>>2]|0;K=f[m>>2]|0;if((M|0)==(K|0)){R=-1;F=191;break a}S=K+-4|0;L=f[S>>2]|0;f[m>>2]=S;H=f[y>>2]|0;d:do if(H){J=H+-1|0;G=(J&H|0)==0;if(!G)if(D>>>0<H>>>0)fa=D;else fa=(D>>>0)%(H>>>0)|0;else fa=J&D;T=f[(f[g>>2]|0)+(fa<<2)>>2]|0;if((T|0)!=0?(da=f[T>>2]|0,(da|0)!=0):0){e:do if(G){T=da;while(1){I=f[T+4>>2]|0;ga=(I|0)==(D|0);if(!(ga|(I&J|0)==(fa|0))){ha=M;ia=S;break d}if(ga?(f[T+8>>2]|0)==(D|0):0){ja=T;break e}T=f[T>>2]|0;if(!T){ha=M;ia=S;break d}}}else{T=da;while(1){V=f[T+4>>2]|0;if((V|0)==(D|0)){if((f[T+8>>2]|0)==(D|0)){ja=T;break e}}else{if(V>>>0<H>>>0)ka=V;else ka=(V>>>0)%(H>>>0)|0;if((ka|0)!=(fa|0)){ha=M;ia=S;break d}}T=f[T>>2]|0;if(!T){ha=M;ia=S;break d}}}while(0);da=ja+12|0;if((S|0)==(f[n>>2]|0)){Ng(e,da);ha=f[e>>2]|0;ia=f[m>>2]|0;break}else{f[S>>2]=f[da>>2];f[m>>2]=K;ha=M;ia=K;break}}else{ha=M;ia=S}}else{ha=M;ia=S}while(0);if((ha|0)==(ia|0)){R=-1;F=191;break a}S=ia+-4|0;M=f[S>>2]|0;K=f[z>>2]|0;H=(M|0)==-1;if(!H?(f[(f[K+12>>2]|0)+(M<<2)>>2]|0)!=-1:0){R=-1;F=191;break a}da=(L|0)==-1;J=f[K+12>>2]|0;if(!da){G=J+(L<<2)|0;if((f[G>>2]|0)==-1)la=G;else{R=-1;F=191;break a}}else la=J+-4|0;G=D*3|0;T=G+2|0;f[J+(M<<2)>>2]=T;f[J+(T<<2)>>2]=M;V=G+1|0;f[la>>2]=V;f[J+(V<<2)>>2]=L;if(!H){H=(((M>>>0)%3|0|0)==0?2:-1)+M|0;ga=f[K>>2]|0;if((H|0)==-1)ma=-1;else ma=f[ga+(H<<2)>>2]|0;f[ga+(G<<2)>>2]=ma;H=M+1|0;I=((H>>>0)%3|0|0)==0?M+-2|0:H;if((I|0)==-1){na=-1;oa=ma;pa=ga;qa=K}else{na=f[ga+(I<<2)>>2]|0;oa=ma;pa=ga;qa=K}}else{ga=f[K>>2]|0;f[ga+(G<<2)>>2]=-1;na=-1;oa=-1;pa=ga;qa=K}f[pa+(V<<2)>>2]=na;if(!da){da=(((L>>>0)%3|0|0)==0?2:-1)+L|0;if((da|0)!=-1){V=f[pa+(da<<2)>>2]|0;f[pa+(T<<2)>>2]=V;if((V|0)!=-1)f[(f[K+24>>2]|0)+(V<<2)>>2]=T}else f[pa+(T<<2)>>2]=-1;V=L+1|0;da=((V>>>0)%3|0|0)==0?L+-2|0:V;if((da|0)==-1){ra=-1;sa=-1}else{ra=f[pa+(da<<2)>>2]|0;sa=da}}else{f[pa+(T<<2)>>2]=-1;ra=-1;sa=-1}f[k>>2]=ra;T=f[K+24>>2]|0;if((oa|0)!=-1)f[T+(oa<<2)>>2]=f[T+(ra<<2)>>2];f:do if((sa|0)!=-1){K=f[qa>>2]|0;da=sa;do{f[K+(da<<2)>>2]=oa;V=da+1|0;ga=((V>>>0)%3|0|0)==0?da+-2|0:V;if((ga|0)==-1)break f;V=f[J+(ga<<2)>>2]|0;ga=V+1|0;if((V|0)==-1)break f;da=((ga>>>0)%3|0|0)==0?V+-2|0:ga}while((da|0)!=-1)}while(0);f[T+(f[k>>2]<<2)>>2]=-1;do if(q){J=f[o>>2]|0;if((J|0)==(f[p>>2]|0)){Ng(i,k);ta=(f[m>>2]|0)+-4|0;break}else{f[J>>2]=f[k>>2];f[o>>2]=J+4;ta=S;break}}else ta=S;while(0);f[ta>>2]=G}if((E|0)<(c|0))D=E;else{ua=E;va=z;F=133;break a}}if((F|0)==117){R=-1;F=191;break}}else{ua=0;va=a+8|0;F=133}while(0);g:do if((F|0)==133){c=f[va>>2]|0;if(((f[c+28>>2]|0)-(f[c+24>>2]|0)>>2|0)<=(s|0)){ta=f[m>>2]|0;do if((ta|0)!=(f[e>>2]|0)){p=a+270|0;q=a+364|0;oa=a+60|0;sa=a+64|0;qa=a+68|0;ra=a+312|0;pa=a+360|0;na=a+352|0;ma=a+356|0;la=a+76|0;ia=a+80|0;ha=a+72|0;n=ua;ja=ta;h:while(1){fa=ja+-4|0;f[k>>2]=f[fa>>2];f[m>>2]=fa;if((j[p>>1]|0)<514)if(b[q>>0]|0){fa=f[pa>>2]|0;ka=(f[na>>2]|0)+(fa>>>3)|0;if(ka>>>0<(f[ma>>2]|0)>>>0){ba=(h[ka>>0]|0)>>>(fa&7)&1;f[pa>>2]=fa+1;wa=ba;F=141}else F=162}else F=142;else{wa=(pi(ra)|0)&1;F=141}if((F|0)==141){F=0;if(!wa)F=162;else F=142}do if((F|0)==142){F=0;ba=f[va>>2]|0;fa=f[ba>>2]|0;ka=fa;if((n|0)>=(((f[ba+4>>2]|0)-fa>>2>>>0)/3|0|0)){F=169;break h}fa=f[k>>2]|0;ea=fa+1|0;if((fa|0)!=-1?(ca=((ea>>>0)%3|0|0)==0?fa+-2|0:ea,(ca|0)!=-1):0)xa=f[ka+(ca<<2)>>2]|0;else xa=-1;ca=f[ba+24>>2]|0;ea=f[ca+(xa<<2)>>2]|0;aa=ea+1|0;if((ea|0)!=-1?($=((aa>>>0)%3|0|0)==0?ea+-2|0:aa,aa=$+1|0,($|0)!=-1):0){ea=((aa>>>0)%3|0|0)==0?$+-2|0:aa;if((ea|0)==-1){ya=-1;za=$}else{ya=f[ka+(ea<<2)>>2]|0;za=$}}else{ya=-1;za=-1}$=f[ca+(ya<<2)>>2]|0;ca=$+1|0;if(($|0)!=-1?(ea=((ca>>>0)%3|0|0)==0?$+-2|0:ca,ca=ea+1|0,(ea|0)!=-1):0){$=((ca>>>0)%3|0|0)==0?ea+-2|0:ca;if(($|0)==-1){Aa=-1;Ba=ea}else{Aa=f[ka+($<<2)>>2]|0;Ba=ea}}else{Aa=-1;Ba=-1}ea=n*3|0;f[l>>2]=ea;$=f[ba+12>>2]|0;f[$+(ea<<2)>>2]=fa;f[$+(fa<<2)>>2]=ea;ea=(f[l>>2]|0)+1|0;f[$+(ea<<2)>>2]=za;f[$+(za<<2)>>2]=ea;ea=(f[l>>2]|0)+2|0;f[$+(ea<<2)>>2]=Ba;f[$+(Ba<<2)>>2]=ea;ea=f[l>>2]|0;f[ka+(ea<<2)>>2]=ya;f[ka+(ea+1<<2)>>2]=Aa;f[ka+(ea+2<<2)>>2]=xa;$=(ea|0)==-1?-1:ya;ea=f[r>>2]|0;fa=ea+($>>>5<<2)|0;f[fa>>2]=f[fa>>2]&~(1<<($&31));$=(f[l>>2]|0)+1|0;if(($|0)==-1)Ca=-1;else Ca=f[ka+($<<2)>>2]|0;$=ea+(Ca>>>5<<2)|0;f[$>>2]=f[$>>2]&~(1<<(Ca&31));$=(f[l>>2]|0)+2|0;if(($|0)==-1)Da=-1;else Da=f[ka+($<<2)>>2]|0;$=ea+(Da>>>5<<2)|0;f[$>>2]=f[$>>2]&~(1<<(Da&31));$=n+1|0;ea=f[sa>>2]|0;ka=f[qa>>2]|0;if((ea|0)==(ka<<5|0)){if((ea+1|0)<0){F=156;break h}fa=ka<<6;ka=ea+32&-32;vg(oa,ea>>>0<1073741823?(fa>>>0<ka>>>0?ka:fa):2147483647);Ea=f[sa>>2]|0}else Ea=ea;f[sa>>2]=Ea+1;ea=(f[oa>>2]|0)+(Ea>>>5<<2)|0;f[ea>>2]=f[ea>>2]|1<<(Ea&31);ea=f[la>>2]|0;if((ea|0)==(f[ia>>2]|0))Ng(ha,l);else{f[ea>>2]=f[l>>2];f[la>>2]=ea+4}Fa=$}else if((F|0)==162){F=0;$=f[sa>>2]|0;ea=f[qa>>2]|0;if(($|0)==(ea<<5|0)){if(($+1|0)<0){F=164;break h}fa=ea<<6;ea=$+32&-32;vg(oa,$>>>0<1073741823?(fa>>>0<ea>>>0?ea:fa):2147483647);Ga=f[sa>>2]|0}else Ga=$;f[sa>>2]=Ga+1;$=(f[oa>>2]|0)+(Ga>>>5<<2)|0;f[$>>2]=f[$>>2]&~(1<<(Ga&31));$=f[la>>2]|0;if(($|0)==(f[ia>>2]|0)){Ng(ha,k);Fa=n;break}else{f[$>>2]=f[k>>2];f[la>>2]=$+4;Fa=n;break}}while(0);ja=f[m>>2]|0;if((ja|0)==(f[e>>2]|0)){F=171;break}else n=Fa}if((F|0)==156)$n(oa);else if((F|0)==164)$n(oa);else if((F|0)==169){R=-1;F=191;break g}else if((F|0)==171){Ha=Fa;Ia=f[va>>2]|0;break}}else{Ha=ua;Ia=c}while(0);if((Ha|0)==(((f[Ia+4>>2]|0)-(f[Ia>>2]|0)>>2>>>0)/3|0|0)){c=(f[Ia+28>>2]|0)-(f[Ia+24>>2]|0)>>2;ta=f[i>>2]|0;n=f[o>>2]|0;if((ta|0)==(n|0)){Ja=c;Ka=ta}else{ja=k+4|0;la=k+8|0;ha=k+12|0;ia=c;c=ta;ta=Ia;while(1){sa=f[c>>2]|0;qa=ia+-1|0;ra=f[ta+24>>2]|0;pa=ra+(qa<<2)|0;if((f[pa>>2]|0)==-1){ma=ia;while(1){na=ma+-1|0;q=ma+-2|0;p=ra+(q<<2)|0;if((f[p>>2]|0)==-1)ma=na;else{La=na;Ma=p;Na=q;break}}}else{La=ia;Ma=pa;Na=qa}if(Na>>>0<sa>>>0){Oa=La;Pa=ta}else{f[k>>2]=ta;ma=f[Ma>>2]|0;f[ja>>2]=ma;f[la>>2]=ma;b[ha>>0]=1;if((ma|0)==-1){Qa=ra;Ra=ta}else{oa=ta;q=ma;do{f[(f[oa>>2]|0)+(q<<2)>>2]=sa;Tf(k);q=f[la>>2]|0;oa=f[va>>2]|0}while((q|0)!=-1);Qa=f[oa+24>>2]|0;Ra=oa}q=Qa+(Na<<2)|0;if((sa|0)!=-1)f[Qa+(sa<<2)>>2]=f[q>>2];f[q>>2]=-1;q=f[r>>2]|0;ra=q+(Na>>>5<<2)|0;qa=1<<(Na&31);pa=q+(sa>>>5<<2)|0;q=1<<(sa&31);if(!(f[ra>>2]&qa))Sa=f[pa>>2]&~q;else Sa=f[pa>>2]|q;f[pa>>2]=Sa;f[ra>>2]=f[ra>>2]&~qa;Oa=La+-1|0;Pa=Ra}c=c+4|0;if((c|0)==(n|0)){R=Oa;F=191;break}else{ia=Oa;ta=Pa}}}}else{R=-1;F=191}}else{R=-1;F=191}}while(0);if((F|0)==191){Ja=R;Ka=f[i>>2]|0}if(Ka|0){f[o>>2]=Ka;Ko(Ka)}Ka=f[g+8>>2]|0;if(Ka|0){o=Ka;do{Ka=o;o=f[o>>2]|0;Ko(Ka)}while((o|0)!=0)}o=f[g>>2]|0;f[g>>2]=0;if(o|0)Ko(o);o=f[e>>2]|0;if(!o){u=d;return Ja|0}f[m>>2]=o;Ko(o);u=d;return Ja|0}function Za(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;b=u;u=u+16|0;c=b;d=b+8|0;e=b+4|0;f[d>>2]=a;do if(a>>>0>=212){g=(a>>>0)/210|0;h=g*210|0;f[e>>2]=a-h;i=0;j=g;g=h;h=(mj(4608,4800,e,c)|0)-4608>>2;a:while(1){k=(f[4608+(h<<2)>>2]|0)+g|0;l=5;while(1){if(l>>>0>=47){m=6;break}n=f[4416+(l<<2)>>2]|0;o=(k>>>0)/(n>>>0)|0;if(o>>>0<n>>>0){m=107;break a}if((k|0)==(W(o,n)|0)){p=i;break}else l=l+1|0}b:do if((m|0)==6){m=0;l=211;n=i;c:while(1){o=(k>>>0)/(l>>>0)|0;do if(o>>>0>=l>>>0)if((k|0)!=(W(o,l)|0)){q=l+10|0;r=(k>>>0)/(q>>>0)|0;if(r>>>0>=q>>>0)if((k|0)!=(W(r,q)|0)){r=l+12|0;s=(k>>>0)/(r>>>0)|0;if(s>>>0>=r>>>0)if((k|0)!=(W(s,r)|0)){s=l+16|0;t=(k>>>0)/(s>>>0)|0;if(t>>>0>=s>>>0)if((k|0)!=(W(t,s)|0)){t=l+18|0;v=(k>>>0)/(t>>>0)|0;if(v>>>0>=t>>>0)if((k|0)!=(W(v,t)|0)){v=l+22|0;w=(k>>>0)/(v>>>0)|0;if(w>>>0>=v>>>0)if((k|0)!=(W(w,v)|0)){w=l+28|0;x=(k>>>0)/(w>>>0)|0;if(x>>>0>=w>>>0)if((k|0)==(W(x,w)|0)){y=w;z=9;A=n}else{x=l+30|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+36|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+40|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+42|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+46|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+52|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+58|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+60|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+66|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+70|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+72|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+78|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+82|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+88|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+96|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+100|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+102|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+106|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+108|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+112|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+120|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+126|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+130|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+136|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+138|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+142|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+148|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+150|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+156|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+162|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+166|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+168|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+172|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+178|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+180|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+186|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+190|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+192|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+196|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+198|0;B=(k>>>0)/(x>>>0)|0;if(B>>>0<x>>>0){y=x;z=1;A=k;break}if((k|0)==(W(B,x)|0)){y=x;z=9;A=n;break}x=l+208|0;B=(k>>>0)/(x>>>0)|0;C=B>>>0<x>>>0;D=(k|0)==(W(B,x)|0);y=C|D?x:l+210|0;z=C?1:D?9:0;A=C?k:n}else{y=w;z=1;A=k}}else{y=v;z=9;A=n}else{y=v;z=1;A=k}}else{y=t;z=9;A=n}else{y=t;z=1;A=k}}else{y=s;z=9;A=n}else{y=s;z=1;A=k}}else{y=r;z=9;A=n}else{y=r;z=1;A=k}}else{y=q;z=9;A=n}else{y=q;z=1;A=k}}else{y=l;z=9;A=n}else{y=l;z=1;A=k}while(0);switch(z&15){case 9:{p=A;break b;break}case 0:{l=y;n=A;break}default:break c}}if(!z)p=A;else{m=108;break a}}while(0);n=h+1|0;l=(n|0)==48;o=j+(l&1)|0;i=p;j=o;g=o*210|0;h=l?0:n}if((m|0)==107){f[d>>2]=k;E=k;break}else if((m|0)==108){f[d>>2]=k;E=A;break}}else{h=mj(4416,4608,d,c)|0;E=f[h>>2]|0}while(0);u=b;return E|0}function _a(a){a=a|0;var c=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;c=u;u=u+80|0;e=c+68|0;g=c+64|0;i=c+56|0;k=c+48|0;l=c+40|0;m=c;n=c+60|0;o=c+52|0;p=c+44|0;q=a+132|0;f[q>>2]=0;r=a+148|0;if(f[r>>2]|0){s=a+144|0;t=f[s>>2]|0;if(t|0){v=t;do{t=v;v=f[v>>2]|0;Ko(t)}while((v|0)!=0)}f[s>>2]=0;s=f[a+140>>2]|0;if(s|0){v=a+136|0;t=0;do{f[(f[v>>2]|0)+(t<<2)>>2]=0;t=t+1|0}while((t|0)!=(s|0))}f[r>>2]=0}r=a+4|0;s=f[r>>2]|0;t=h[s+36>>0]<<8;v=(t|h[s+37>>0])&65535;do if((v&65535)<514){w=f[s+32>>2]|0;if((v&65535)<512){x=w+8|0;y=f[x>>2]|0;z=f[x+4>>2]|0;x=w+16|0;A=x;B=f[A>>2]|0;C=vl(B|0,f[A+4>>2]|0,4,0)|0;A=H;if(!((z|0)<(A|0)|(z|0)==(A|0)&y>>>0<C>>>0)){y=(f[w>>2]|0)+B|0;B=h[y>>0]|h[y+1>>0]<<8|h[y+2>>0]<<16|h[y+3>>0]<<24;f[e>>2]=B;y=x;f[y>>2]=C;f[y+4>>2]=A;D=s;E=t;F=B;G=15}}else if(zh(e,w)|0){w=f[r>>2]|0;D=w;E=h[w+36>>0]<<8;F=f[e>>2]|0;G=15}if((G|0)==15){f[q>>2]=F;I=E;J=D;break}K=0;u=c;return K|0}else{I=t;J=s}while(0);s=f[J+32>>2]|0;if((I&65535)<512){I=s+8|0;J=f[I>>2]|0;t=f[I+4>>2]|0;I=s+16|0;D=I;E=f[D>>2]|0;F=vl(E|0,f[D+4>>2]|0,4,0)|0;D=H;if((t|0)<(D|0)|(t|0)==(D|0)&J>>>0<F>>>0)L=0;else{J=(f[s>>2]|0)+E|0;E=h[J>>0]|h[J+1>>0]<<8|h[J+2>>0]<<16|h[J+3>>0]<<24;f[g>>2]=E;J=I;f[J>>2]=F;f[J+4>>2]=D;D=a+156|0;f[D>>2]=E;M=s;N=i;O=D;G=22}}else if(zh(g,s)|0){s=f[r>>2]|0;D=f[s+32>>2]|0;E=h[s+36>>0]<<8&65535;s=a+156|0;f[s>>2]=f[g>>2];if((E&65535)>=512)if(zh(i,D)|0){P=f[i>>2]|0;Q=s;R=i;G=26}else{S=0;T=i;G=125}else{M=D;N=i;O=s;G=22}}else L=0;if((G|0)==22){s=M+8|0;D=f[s>>2]|0;E=f[s+4>>2]|0;s=M+16|0;g=s;J=f[g>>2]|0;F=vl(J|0,f[g+4>>2]|0,4,0)|0;g=H;if((E|0)<(g|0)|(E|0)==(g|0)&D>>>0<F>>>0){S=0;T=N;G=125}else{D=(f[M>>2]|0)+J|0;J=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;f[i>>2]=J;D=s;f[D>>2]=F;f[D+4>>2]=g;P=J;Q=O;R=N;G=26}}if((G|0)==26)if((P>>>0<=1431655765?(f[Q>>2]|0)>>>0<=(P*3|0)>>>0:0)?(N=f[r>>2]|0,O=f[N+32>>2]|0,J=O+8|0,g=f[J>>2]|0,D=f[J+4>>2]|0,J=O+16|0,F=J,s=f[F>>2]|0,M=f[F+4>>2]|0,(D|0)>(M|0)|(D|0)==(M|0)&g>>>0>s>>>0):0){F=f[O>>2]|0;E=b[F+s>>0]|0;I=vl(s|0,M|0,1,0)|0;t=J;f[t>>2]=I;f[t+4>>2]=H;if((h[N+36>>0]<<8&65535)<512){N=vl(s|0,M|0,5,0)|0;M=H;if((D|0)<(M|0)|(D|0)==(M|0)&g>>>0<N>>>0)U=0;else{g=F+I|0;I=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;f[k>>2]=I;g=J;f[g>>2]=N;f[g+4>>2]=M;V=P;W=I;G=34}}else if(zh(k,O)|0){V=f[i>>2]|0;W=f[k>>2]|0;G=34}else U=0;if((G|0)==34)if(V>>>0>=W>>>0?V>>>0<=(((W>>>0)/3|0)+W|0)>>>0:0){V=f[r>>2]|0;O=f[V+32>>2]|0;if((h[V+36>>0]<<8&65535)<512){V=O+8|0;I=f[V>>2]|0;P=f[V+4>>2]|0;V=O+16|0;M=V;g=f[M>>2]|0;N=vl(g|0,f[M+4>>2]|0,4,0)|0;M=H;if((P|0)<(M|0)|(P|0)==(M|0)&I>>>0<N>>>0)X=0;else{I=(f[O>>2]|0)+g|0;g=h[I>>0]|h[I+1>>0]<<8|h[I+2>>0]<<16|h[I+3>>0]<<24;f[l>>2]=g;I=V;f[I>>2]=N;f[I+4>>2]=M;Y=g;Z=W;G=41}}else if(zh(l,O)|0){Y=f[l>>2]|0;Z=f[k>>2]|0;G=41}else X=0;a:do if((G|0)==41)if(Y>>>0<=Z>>>0){f[a+28>>2]=f[a+24>>2];O=wk(88)|0;Ej(O);W=a+8|0;g=f[W>>2]|0;f[W>>2]=O;if(g|0){O=f[g+76>>2]|0;if(O|0){f[g+80>>2]=O;Ko(O)}O=f[g+64>>2]|0;if(O|0){f[g+68>>2]=O;Ko(O)}O=f[g+48>>2]|0;if(O|0){f[g+52>>2]=O;Ko(O)}O=f[g+24>>2]|0;if(O|0){f[g+28>>2]=O;Ko(O)}O=f[g+12>>2]|0;if(O|0){f[g+16>>2]=O;Ko(O)}O=f[g>>2]|0;if(O|0){f[g+4>>2]=O;Ko(O)}Ko(g);if(!(f[W>>2]|0)){X=0;break}}g=a+160|0;f[a+164>>2]=f[g>>2];Wh(g,f[i>>2]|0);g=a+172|0;f[a+176>>2]=f[g>>2];Wh(g,f[i>>2]|0);f[a+40>>2]=f[a+36>>2];f[a+52>>2]=f[a+48>>2];f[a+64>>2]=0;f[a+76>>2]=f[a+72>>2];f[a+84>>2]=-1;f[a+92>>2]=-1;f[a+88>>2]=-1;g=a+216|0;O=f[g>>2]|0;M=a+220|0;I=f[M>>2]|0;if((I|0)!=(O|0)){N=I;do{I=f[N+-12>>2]|0;if(I|0){f[N+-8>>2]=I;Ko(I)}I=f[N+-28>>2]|0;if(I|0){f[N+-24>>2]=I;Ko(I)}I=f[N+-40>>2]|0;if(I|0){f[N+-36>>2]=I;Ko(I)}di(N+-140|0);N=N+-144|0}while((N|0)!=(O|0))}f[M>>2]=O;N=E&255;Zg(g,N);if(Hh(f[W>>2]|0,f[i>>2]|0,(f[l>>2]|0)+(f[Q>>2]|0)|0)|0){I=(f[l>>2]|0)+(f[Q>>2]|0)|0;b[e>>0]=1;Gf(a+120|0,I,e);I=f[r>>2]|0;V=(h[I+36>>0]<<8|h[I+37>>0])&65535;b:do if((V&65535)>=514)if((Nb(a,f[I+32>>2]|0)|0)==-1){X=0;break a}else _=-1;else{P=f[I+32>>2]|0;do if((V&65535)<512){J=P+8|0;F=f[J>>2]|0;D=f[J+4>>2]|0;J=P+16|0;s=J;t=f[s>>2]|0;q=vl(t|0,f[s+4>>2]|0,4,0)|0;s=H;if((D|0)<(s|0)|(D|0)==(s|0)&F>>>0<q>>>0)break;F=(f[P>>2]|0)+t|0;t=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;f[e>>2]=t;F=J;f[F>>2]=q;f[F+4>>2]=s;$=t;G=72}else{if(!(zh(e,P)|0))break;$=f[e>>2]|0;G=72}while(0);do if((G|0)==72){if(!$)break;P=f[(f[r>>2]|0)+32>>2]|0;t=P+8|0;s=P+16|0;P=wl(f[t>>2]|0,f[t+4>>2]|0,f[s>>2]|0,f[s+4>>2]|0)|0;s=H;if((s|0)<0|(s|0)==0&P>>>0<$>>>0)break;Zj(m);P=f[(f[r>>2]|0)+32>>2]|0;s=P+16|0;t=f[s>>2]|0;F=f[e>>2]|0;q=(f[P>>2]|0)+t+F|0;J=P+8|0;D=wl(f[J>>2]|0,f[J+4>>2]|0,t|0,f[s+4>>2]|0)|0;pk(m,q,D-F|0,d[P+38>>1]|0);P=Nb(a,m)|0;if((P|0)==-1)break;_=P;break b}while(0);X=0;break a}while(0);V=a+232|0;f[a+376>>2]=a;I=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;O=f[I>>2]|0;I=(f[O>>2]|0)+(f[O+16>>2]|0)|0;O=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;P=f[O>>2]|0;O=P+8|0;F=P+16|0;P=wl(f[O>>2]|0,f[O+4>>2]|0,f[F>>2]|0,f[F+4>>2]|0)|0;F=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;pk(V,I,P,d[(f[F>>2]|0)+38>>1]|0);F=Ka[f[(f[a>>2]|0)+36>>2]&127](a)|0;f[a+380>>2]=F;F=a+384|0;f[F>>2]=(f[l>>2]|0)+(f[Q>>2]|0);f[a+372>>2]=N;Zj(m);c:do if(Dd(V,m)|0){P=m+8|0;I=P;O=f[I>>2]|0;D=f[I+4>>2]|0;I=m+16|0;q=I;s=f[q>>2]|0;t=vl(s|0,f[q+4>>2]|0,4,0)|0;q=H;if((D|0)<(q|0)|(D|0)==(q|0)&O>>>0<t>>>0){aa=0;break}O=(f[m>>2]|0)+s|0;s=h[O>>0]|h[O+1>>0]<<8|h[O+2>>0]<<16|h[O+3>>0]<<24;O=I;f[O>>2]=t;f[O+4>>2]=q;if((s|0)<0){aa=0;break}q=f[F>>2]|0;if((s|0)>=(q|0)){aa=0;break}s=a+388|0;f[e>>2]=0;O=a+392|0;t=f[s>>2]|0;D=(f[O>>2]|0)-t>>2;do if(q>>>0>D>>>0)Of(s,q-D|0,e);else{if(q>>>0>=D>>>0)break;f[O>>2]=t+(q<<2)}while(0);if(!(rd(a+400|0,m)|0)){aa=0;break}q=Wa(a,f[k>>2]|0)|0;if((q|0)==-1){aa=0;break}t=f[(f[r>>2]|0)+32>>2]|0;O=I;D=f[O>>2]|0;s=(f[m>>2]|0)+D|0;J=P;v=wl(f[J>>2]|0,f[J+4>>2]|0,D|0,f[O+4>>2]|0)|0;pk(t,s,v,d[t+38>>1]|0);t=f[r>>2]|0;v=(h[t+36>>0]<<8|h[t+37>>0])&65535;if((v&65535)<514){s=(f[t+32>>2]|0)+16|0;t=s;O=vl(f[t>>2]|0,f[t+4>>2]|0,_|0,((_|0)<0)<<31>>31|0)|0;t=s;f[t>>2]=O;f[t+4>>2]=H}do if((f[M>>2]|0)!=(f[g>>2]|0)){t=f[W>>2]|0;O=(f[t+4>>2]|0)!=(f[t>>2]|0);if((v&65535)<513){if(!O)break;t=0;do{f[n>>2]=t;f[e>>2]=f[n>>2];t=t+3|0;if(!(Zb(a,e)|0)){aa=0;break c}s=f[W>>2]|0}while(t>>>0<(f[s+4>>2]|0)-(f[s>>2]|0)>>2>>>0)}else{if(!O)break;t=0;do{f[o>>2]=t;f[e>>2]=f[o>>2];t=t+3|0;if(!(gc(a,e)|0)){aa=0;break c}s=f[W>>2]|0}while(t>>>0<(f[s+4>>2]|0)-(f[s>>2]|0)>>2>>>0)}}while(0);if(b[a+308>>0]|0)Cj(a+272|0);if((j[a+270>>1]|0)<514)Cj(a+328|0);v=f[g>>2]|0;if((f[M>>2]|0)!=(v|0)){P=0;I=v;do{gg(I+(P*144|0)+4|0,f[W>>2]|0)|0;v=f[g>>2]|0;t=f[v+(P*144|0)+132>>2]|0;O=f[v+(P*144|0)+136>>2]|0;if((t|0)==(O|0))ba=v;else{s=t;t=v;while(1){f[p>>2]=f[s>>2];f[e>>2]=f[p>>2];pf(t+(P*144|0)+4|0,e);s=s+4|0;v=f[g>>2]|0;if((s|0)==(O|0)){ba=v;break}else t=v}}jj(ba+(P*144|0)+4|0,0,0);P=P+1|0;I=f[g>>2]|0}while(P>>>0<(((f[M>>2]|0)-I|0)/144|0)>>>0)}I=f[W>>2]|0;P=(f[I+28>>2]|0)-(f[I+24>>2]|0)>>2;I=a+196|0;t=a+200|0;O=f[I>>2]|0;s=(f[t>>2]|0)-O>>2;do if(P>>>0>s>>>0)Eg(I,P-s|0);else{if(P>>>0>=s>>>0)break;f[t>>2]=O+(P<<2)}while(0);Wh(a+184|0,P);O=f[g>>2]|0;if((f[M>>2]|0)!=(O|0)){t=0;s=O;do{O=s;I=(f[O+(t*144|0)+60>>2]|0)-(f[O+(t*144|0)+56>>2]|0)>>2;v=f[W>>2]|0;D=(f[v+28>>2]|0)-(f[v+24>>2]|0)>>2;v=(I|0)<(D|0)?D:I;I=O+(t*144|0)+116|0;D=O+(t*144|0)+120|0;J=f[I>>2]|0;w=(f[D>>2]|0)-J>>2;do if(v>>>0>w>>>0)Eg(I,v-w|0);else{if(v>>>0>=w>>>0)break;f[D>>2]=J+(v<<2)}while(0);Wh(O+(t*144|0)+104|0,v);t=t+1|0;s=f[g>>2]|0}while(t>>>0<(((f[M>>2]|0)-s|0)/144|0)>>>0)}aa=Gb(a,q)|0}else aa=0;while(0);X=aa}else X=0}else X=0;while(0);U=X}else U=0;S=U;T=R;G=125}else{S=0;T=R;G=125}if((G|0)==125)L=S;K=L;u=c;return K|0}function $a(a){a=a|0;var c=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;c=u;u=u+80|0;e=c+68|0;g=c+64|0;i=c+60|0;k=c+52|0;l=c+44|0;m=c;n=c+56|0;o=c+48|0;p=c+40|0;q=a+132|0;f[q>>2]=0;r=a+148|0;if(f[r>>2]|0){s=a+144|0;t=f[s>>2]|0;if(t|0){v=t;do{t=v;v=f[v>>2]|0;Ko(t)}while((v|0)!=0)}f[s>>2]=0;s=f[a+140>>2]|0;if(s|0){v=a+136|0;t=0;do{f[(f[v>>2]|0)+(t<<2)>>2]=0;t=t+1|0}while((t|0)!=(s|0))}f[r>>2]=0}r=a+4|0;s=f[r>>2]|0;t=h[s+36>>0]<<8;v=(t|h[s+37>>0])&65535;do if((v&65535)<514){w=f[s+32>>2]|0;if((v&65535)<512){x=w+8|0;y=f[x>>2]|0;z=f[x+4>>2]|0;x=w+16|0;A=x;B=f[A>>2]|0;C=vl(B|0,f[A+4>>2]|0,4,0)|0;A=H;if(!((z|0)<(A|0)|(z|0)==(A|0)&y>>>0<C>>>0)){y=(f[w>>2]|0)+B|0;B=h[y>>0]|h[y+1>>0]<<8|h[y+2>>0]<<16|h[y+3>>0]<<24;f[e>>2]=B;y=x;f[y>>2]=C;f[y+4>>2]=A;D=s;E=t;F=B;G=15}}else if(zh(e,w)|0){w=f[r>>2]|0;D=w;E=h[w+36>>0]<<8;F=f[e>>2]|0;G=15}if((G|0)==15){f[q>>2]=F;I=E;J=D;break}K=0;u=c;return K|0}else{I=t;J=s}while(0);s=f[J+32>>2]|0;if((I&65535)<512){I=s+8|0;J=f[I>>2]|0;t=f[I+4>>2]|0;I=s+16|0;D=I;E=f[D>>2]|0;F=vl(E|0,f[D+4>>2]|0,4,0)|0;D=H;if((t|0)<(D|0)|(t|0)==(D|0)&J>>>0<F>>>0)L=0;else{J=(f[s>>2]|0)+E|0;E=h[J>>0]|h[J+1>>0]<<8|h[J+2>>0]<<16|h[J+3>>0]<<24;f[g>>2]=E;J=I;f[J>>2]=F;f[J+4>>2]=D;D=a+156|0;f[D>>2]=E;M=s;N=i;O=D;G=22}}else if(zh(g,s)|0){s=f[r>>2]|0;D=f[s+32>>2]|0;E=h[s+36>>0]<<8&65535;s=a+156|0;f[s>>2]=f[g>>2];if((E&65535)>=512)if(zh(i,D)|0){P=f[i>>2]|0;Q=s;R=i;G=26}else{S=0;T=i;G=117}else{M=D;N=i;O=s;G=22}}else L=0;if((G|0)==22){s=M+8|0;D=f[s>>2]|0;E=f[s+4>>2]|0;s=M+16|0;g=s;J=f[g>>2]|0;F=vl(J|0,f[g+4>>2]|0,4,0)|0;g=H;if((E|0)<(g|0)|(E|0)==(g|0)&D>>>0<F>>>0){S=0;T=N;G=117}else{D=(f[M>>2]|0)+J|0;J=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;f[i>>2]=J;D=s;f[D>>2]=F;f[D+4>>2]=g;P=J;Q=O;R=N;G=26}}if((G|0)==26)if((P>>>0<=1431655765?(f[Q>>2]|0)>>>0<=(P*3|0)>>>0:0)?(N=f[r>>2]|0,O=f[N+32>>2]|0,J=O+8|0,g=f[J>>2]|0,D=f[J+4>>2]|0,J=O+16|0,F=J,s=f[F>>2]|0,M=f[F+4>>2]|0,(D|0)>(M|0)|(D|0)==(M|0)&g>>>0>s>>>0):0){F=f[O>>2]|0;E=b[F+s>>0]|0;I=vl(s|0,M|0,1,0)|0;t=J;f[t>>2]=I;f[t+4>>2]=H;if((h[N+36>>0]<<8&65535)<512){N=vl(s|0,M|0,5,0)|0;M=H;if((D|0)<(M|0)|(D|0)==(M|0)&g>>>0<N>>>0)U=0;else{g=F+I|0;I=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;f[k>>2]=I;g=J;f[g>>2]=N;f[g+4>>2]=M;V=P;W=I;G=34}}else if(zh(k,O)|0){V=f[i>>2]|0;W=f[k>>2]|0;G=34}else U=0;if((G|0)==34)if(V>>>0>=W>>>0?V>>>0<=(((W>>>0)/3|0)+W|0)>>>0:0){V=f[r>>2]|0;O=f[V+32>>2]|0;if((h[V+36>>0]<<8&65535)<512){V=O+8|0;I=f[V>>2]|0;P=f[V+4>>2]|0;V=O+16|0;M=V;g=f[M>>2]|0;N=vl(g|0,f[M+4>>2]|0,4,0)|0;M=H;if((P|0)<(M|0)|(P|0)==(M|0)&I>>>0<N>>>0)X=0;else{I=(f[O>>2]|0)+g|0;g=h[I>>0]|h[I+1>>0]<<8|h[I+2>>0]<<16|h[I+3>>0]<<24;f[l>>2]=g;I=V;f[I>>2]=N;f[I+4>>2]=M;Y=g;Z=W;G=41}}else if(zh(l,O)|0){Y=f[l>>2]|0;Z=f[k>>2]|0;G=41}else X=0;a:do if((G|0)==41)if(Y>>>0<=Z>>>0){f[a+28>>2]=f[a+24>>2];O=wk(88)|0;Ej(O);W=a+8|0;g=f[W>>2]|0;f[W>>2]=O;if(g|0){O=f[g+76>>2]|0;if(O|0){f[g+80>>2]=O;Ko(O)}O=f[g+64>>2]|0;if(O|0){f[g+68>>2]=O;Ko(O)}O=f[g+48>>2]|0;if(O|0){f[g+52>>2]=O;Ko(O)}O=f[g+24>>2]|0;if(O|0){f[g+28>>2]=O;Ko(O)}O=f[g+12>>2]|0;if(O|0){f[g+16>>2]=O;Ko(O)}O=f[g>>2]|0;if(O|0){f[g+4>>2]=O;Ko(O)}Ko(g);if(!(f[W>>2]|0)){X=0;break}}g=a+160|0;f[a+164>>2]=f[g>>2];Wh(g,f[i>>2]|0);g=a+172|0;f[a+176>>2]=f[g>>2];Wh(g,f[i>>2]|0);f[a+40>>2]=f[a+36>>2];f[a+52>>2]=f[a+48>>2];f[a+64>>2]=0;f[a+76>>2]=f[a+72>>2];f[a+84>>2]=-1;f[a+92>>2]=-1;f[a+88>>2]=-1;g=a+216|0;O=f[g>>2]|0;M=a+220|0;I=f[M>>2]|0;if((I|0)!=(O|0)){N=I;do{I=f[N+-12>>2]|0;if(I|0){f[N+-8>>2]=I;Ko(I)}I=f[N+-28>>2]|0;if(I|0){f[N+-24>>2]=I;Ko(I)}I=f[N+-40>>2]|0;if(I|0){f[N+-36>>2]=I;Ko(I)}di(N+-140|0);N=N+-144|0}while((N|0)!=(O|0))}f[M>>2]=O;N=E&255;Zg(g,N);if(Hh(f[W>>2]|0,f[i>>2]|0,(f[l>>2]|0)+(f[Q>>2]|0)|0)|0){I=(f[l>>2]|0)+(f[Q>>2]|0)|0;b[e>>0]=1;Gf(a+120|0,I,e);I=f[r>>2]|0;V=(h[I+36>>0]<<8|h[I+37>>0])&65535;b:do if((V&65535)>=514)if((Nb(a,f[I+32>>2]|0)|0)==-1){X=0;break a}else _=-1;else{P=f[I+32>>2]|0;do if((V&65535)<512){J=P+8|0;F=f[J>>2]|0;D=f[J+4>>2]|0;J=P+16|0;s=J;t=f[s>>2]|0;q=vl(t|0,f[s+4>>2]|0,4,0)|0;s=H;if((D|0)<(s|0)|(D|0)==(s|0)&F>>>0<q>>>0)break;F=(f[P>>2]|0)+t|0;t=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;f[e>>2]=t;F=J;f[F>>2]=q;f[F+4>>2]=s;$=t;G=72}else{if(!(zh(e,P)|0))break;$=f[e>>2]|0;G=72}while(0);do if((G|0)==72){if(!$)break;P=f[(f[r>>2]|0)+32>>2]|0;t=P+8|0;s=P+16|0;P=wl(f[t>>2]|0,f[t+4>>2]|0,f[s>>2]|0,f[s+4>>2]|0)|0;s=H;if((s|0)<0|(s|0)==0&P>>>0<$>>>0)break;Zj(m);P=f[(f[r>>2]|0)+32>>2]|0;s=P+16|0;t=f[s>>2]|0;F=f[e>>2]|0;q=(f[P>>2]|0)+t+F|0;J=P+8|0;D=wl(f[J>>2]|0,f[J+4>>2]|0,t|0,f[s+4>>2]|0)|0;pk(m,q,D-F|0,d[P+38>>1]|0);P=Nb(a,m)|0;if((P|0)==-1)break;_=P;break b}while(0);X=0;break a}while(0);V=a+232|0;f[a+376>>2]=a;I=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;O=f[I>>2]|0;I=(f[O>>2]|0)+(f[O+16>>2]|0)|0;O=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;P=f[O>>2]|0;O=P+8|0;F=P+16|0;P=wl(f[O>>2]|0,f[O+4>>2]|0,f[F>>2]|0,f[F+4>>2]|0)|0;F=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;pk(V,I,P,d[(f[F>>2]|0)+38>>1]|0);F=Ka[f[(f[a>>2]|0)+36>>2]&127](a)|0;f[a+380>>2]=F;f[a+384>>2]=(f[l>>2]|0)+(f[Q>>2]|0);f[a+372>>2]=N;Zj(m);c:do if(Vb(V,m)|0){F=Xa(a,f[k>>2]|0)|0;if((F|0)==-1){aa=0;break}P=f[(f[r>>2]|0)+32>>2]|0;I=m+16|0;O=f[I>>2]|0;D=(f[m>>2]|0)+O|0;q=m+8|0;s=wl(f[q>>2]|0,f[q+4>>2]|0,O|0,f[I+4>>2]|0)|0;pk(P,D,s,d[P+38>>1]|0);P=f[r>>2]|0;s=(h[P+36>>0]<<8|h[P+37>>0])&65535;if((s&65535)<514){D=(f[P+32>>2]|0)+16|0;P=D;I=vl(f[P>>2]|0,f[P+4>>2]|0,_|0,((_|0)<0)<<31>>31|0)|0;P=D;f[P>>2]=I;f[P+4>>2]=H}do if((f[M>>2]|0)!=(f[g>>2]|0)){P=f[W>>2]|0;I=(f[P+4>>2]|0)!=(f[P>>2]|0);if((s&65535)<513){if(!I)break;P=0;do{f[n>>2]=P;f[e>>2]=f[n>>2];P=P+3|0;if(!(Zb(a,e)|0)){aa=0;break c}D=f[W>>2]|0}while(P>>>0<(f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)}else{if(!I)break;P=0;do{f[o>>2]=P;f[e>>2]=f[o>>2];P=P+3|0;if(!(gc(a,e)|0)){aa=0;break c}D=f[W>>2]|0}while(P>>>0<(f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)}}while(0);if(b[a+308>>0]|0)Cj(a+272|0);if((j[a+270>>1]|0)<514)Cj(a+328|0);s=f[g>>2]|0;if((f[M>>2]|0)!=(s|0)){P=0;I=s;do{gg(I+(P*144|0)+4|0,f[W>>2]|0)|0;s=f[g>>2]|0;D=f[s+(P*144|0)+132>>2]|0;O=f[s+(P*144|0)+136>>2]|0;if((D|0)==(O|0))ba=s;else{q=D;D=s;while(1){f[p>>2]=f[q>>2];f[e>>2]=f[p>>2];pf(D+(P*144|0)+4|0,e);q=q+4|0;s=f[g>>2]|0;if((q|0)==(O|0)){ba=s;break}else D=s}}jj(ba+(P*144|0)+4|0,0,0);P=P+1|0;I=f[g>>2]|0}while(P>>>0<(((f[M>>2]|0)-I|0)/144|0)>>>0)}I=f[W>>2]|0;P=(f[I+28>>2]|0)-(f[I+24>>2]|0)>>2;I=a+196|0;D=a+200|0;O=f[I>>2]|0;q=(f[D>>2]|0)-O>>2;do if(P>>>0>q>>>0)Eg(I,P-q|0);else{if(P>>>0>=q>>>0)break;f[D>>2]=O+(P<<2)}while(0);Wh(a+184|0,P);O=f[g>>2]|0;if((f[M>>2]|0)!=(O|0)){D=0;q=O;do{O=q;I=(f[O+(D*144|0)+60>>2]|0)-(f[O+(D*144|0)+56>>2]|0)>>2;s=f[W>>2]|0;t=(f[s+28>>2]|0)-(f[s+24>>2]|0)>>2;s=(I|0)<(t|0)?t:I;I=O+(D*144|0)+116|0;t=O+(D*144|0)+120|0;J=f[I>>2]|0;v=(f[t>>2]|0)-J>>2;do if(s>>>0>v>>>0)Eg(I,s-v|0);else{if(s>>>0>=v>>>0)break;f[t>>2]=J+(s<<2)}while(0);Wh(O+(D*144|0)+104|0,s);D=D+1|0;q=f[g>>2]|0}while(D>>>0<(((f[M>>2]|0)-q|0)/144|0)>>>0)}aa=Gb(a,F)|0}else aa=0;while(0);X=aa}else X=0}else X=0;while(0);U=X}else U=0;S=U;T=R;G=117}else{S=0;T=R;G=117}if((G|0)==117)L=S;K=L;u=c;return K|0}function ab(a){a=a|0;var c=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0;c=u;u=u+80|0;e=c+68|0;g=c+64|0;i=c+60|0;k=c+52|0;l=c+44|0;m=c;n=c+56|0;o=c+48|0;p=c+40|0;q=a+132|0;f[q>>2]=0;r=a+148|0;if(f[r>>2]|0){s=a+144|0;t=f[s>>2]|0;if(t|0){v=t;do{t=v;v=f[v>>2]|0;Ko(t)}while((v|0)!=0)}f[s>>2]=0;s=f[a+140>>2]|0;if(s|0){v=a+136|0;t=0;do{f[(f[v>>2]|0)+(t<<2)>>2]=0;t=t+1|0}while((t|0)!=(s|0))}f[r>>2]=0}r=a+4|0;s=f[r>>2]|0;t=h[s+36>>0]<<8;v=(t|h[s+37>>0])&65535;do if((v&65535)<514){w=f[s+32>>2]|0;if((v&65535)<512){x=w+8|0;y=f[x>>2]|0;z=f[x+4>>2]|0;x=w+16|0;A=x;B=f[A>>2]|0;C=vl(B|0,f[A+4>>2]|0,4,0)|0;A=H;if(!((z|0)<(A|0)|(z|0)==(A|0)&y>>>0<C>>>0)){y=(f[w>>2]|0)+B|0;B=h[y>>0]|h[y+1>>0]<<8|h[y+2>>0]<<16|h[y+3>>0]<<24;f[e>>2]=B;y=x;f[y>>2]=C;f[y+4>>2]=A;D=s;E=t;F=B;G=15}}else if(zh(e,w)|0){w=f[r>>2]|0;D=w;E=h[w+36>>0]<<8;F=f[e>>2]|0;G=15}if((G|0)==15){f[q>>2]=F;I=E;J=D;break}K=0;u=c;return K|0}else{I=t;J=s}while(0);s=f[J+32>>2]|0;if((I&65535)<512){I=s+8|0;J=f[I>>2]|0;t=f[I+4>>2]|0;I=s+16|0;D=I;E=f[D>>2]|0;F=vl(E|0,f[D+4>>2]|0,4,0)|0;D=H;if((t|0)<(D|0)|(t|0)==(D|0)&J>>>0<F>>>0)L=0;else{J=(f[s>>2]|0)+E|0;E=h[J>>0]|h[J+1>>0]<<8|h[J+2>>0]<<16|h[J+3>>0]<<24;f[g>>2]=E;J=I;f[J>>2]=F;f[J+4>>2]=D;D=a+156|0;f[D>>2]=E;M=s;N=i;O=D;G=22}}else if(zh(g,s)|0){s=f[r>>2]|0;D=f[s+32>>2]|0;E=h[s+36>>0]<<8&65535;s=a+156|0;f[s>>2]=f[g>>2];if((E&65535)>=512)if(zh(i,D)|0){P=f[i>>2]|0;Q=s;R=i;G=26}else{S=0;T=i;G=117}else{M=D;N=i;O=s;G=22}}else L=0;if((G|0)==22){s=M+8|0;D=f[s>>2]|0;E=f[s+4>>2]|0;s=M+16|0;g=s;J=f[g>>2]|0;F=vl(J|0,f[g+4>>2]|0,4,0)|0;g=H;if((E|0)<(g|0)|(E|0)==(g|0)&D>>>0<F>>>0){S=0;T=N;G=117}else{D=(f[M>>2]|0)+J|0;J=h[D>>0]|h[D+1>>0]<<8|h[D+2>>0]<<16|h[D+3>>0]<<24;f[i>>2]=J;D=s;f[D>>2]=F;f[D+4>>2]=g;P=J;Q=O;R=N;G=26}}if((G|0)==26)if((P>>>0<=1431655765?(f[Q>>2]|0)>>>0<=(P*3|0)>>>0:0)?(N=f[r>>2]|0,O=f[N+32>>2]|0,J=O+8|0,g=f[J>>2]|0,D=f[J+4>>2]|0,J=O+16|0,F=J,s=f[F>>2]|0,M=f[F+4>>2]|0,(D|0)>(M|0)|(D|0)==(M|0)&g>>>0>s>>>0):0){F=f[O>>2]|0;E=b[F+s>>0]|0;I=vl(s|0,M|0,1,0)|0;t=J;f[t>>2]=I;f[t+4>>2]=H;if((h[N+36>>0]<<8&65535)<512){N=vl(s|0,M|0,5,0)|0;M=H;if((D|0)<(M|0)|(D|0)==(M|0)&g>>>0<N>>>0)U=0;else{g=F+I|0;I=h[g>>0]|h[g+1>>0]<<8|h[g+2>>0]<<16|h[g+3>>0]<<24;f[k>>2]=I;g=J;f[g>>2]=N;f[g+4>>2]=M;V=P;W=I;G=34}}else if(zh(k,O)|0){V=f[i>>2]|0;W=f[k>>2]|0;G=34}else U=0;if((G|0)==34)if(V>>>0>=W>>>0?V>>>0<=(((W>>>0)/3|0)+W|0)>>>0:0){V=f[r>>2]|0;O=f[V+32>>2]|0;if((h[V+36>>0]<<8&65535)<512){V=O+8|0;I=f[V>>2]|0;P=f[V+4>>2]|0;V=O+16|0;M=V;g=f[M>>2]|0;N=vl(g|0,f[M+4>>2]|0,4,0)|0;M=H;if((P|0)<(M|0)|(P|0)==(M|0)&I>>>0<N>>>0)X=0;else{I=(f[O>>2]|0)+g|0;g=h[I>>0]|h[I+1>>0]<<8|h[I+2>>0]<<16|h[I+3>>0]<<24;f[l>>2]=g;I=V;f[I>>2]=N;f[I+4>>2]=M;Y=g;Z=W;G=41}}else if(zh(l,O)|0){Y=f[l>>2]|0;Z=f[k>>2]|0;G=41}else X=0;a:do if((G|0)==41)if(Y>>>0<=Z>>>0){f[a+28>>2]=f[a+24>>2];O=wk(88)|0;Ej(O);W=a+8|0;g=f[W>>2]|0;f[W>>2]=O;if(g|0){O=f[g+76>>2]|0;if(O|0){f[g+80>>2]=O;Ko(O)}O=f[g+64>>2]|0;if(O|0){f[g+68>>2]=O;Ko(O)}O=f[g+48>>2]|0;if(O|0){f[g+52>>2]=O;Ko(O)}O=f[g+24>>2]|0;if(O|0){f[g+28>>2]=O;Ko(O)}O=f[g+12>>2]|0;if(O|0){f[g+16>>2]=O;Ko(O)}O=f[g>>2]|0;if(O|0){f[g+4>>2]=O;Ko(O)}Ko(g);if(!(f[W>>2]|0)){X=0;break}}g=a+160|0;f[a+164>>2]=f[g>>2];Wh(g,f[i>>2]|0);g=a+172|0;f[a+176>>2]=f[g>>2];Wh(g,f[i>>2]|0);f[a+40>>2]=f[a+36>>2];f[a+52>>2]=f[a+48>>2];f[a+64>>2]=0;f[a+76>>2]=f[a+72>>2];f[a+84>>2]=-1;f[a+92>>2]=-1;f[a+88>>2]=-1;g=a+216|0;O=f[g>>2]|0;M=a+220|0;I=f[M>>2]|0;if((I|0)!=(O|0)){N=I;do{I=f[N+-12>>2]|0;if(I|0){f[N+-8>>2]=I;Ko(I)}I=f[N+-28>>2]|0;if(I|0){f[N+-24>>2]=I;Ko(I)}I=f[N+-40>>2]|0;if(I|0){f[N+-36>>2]=I;Ko(I)}di(N+-140|0);N=N+-144|0}while((N|0)!=(O|0))}f[M>>2]=O;N=E&255;Zg(g,N);if(Hh(f[W>>2]|0,f[i>>2]|0,(f[l>>2]|0)+(f[Q>>2]|0)|0)|0){I=(f[l>>2]|0)+(f[Q>>2]|0)|0;b[e>>0]=1;Gf(a+120|0,I,e);I=f[r>>2]|0;V=(h[I+36>>0]<<8|h[I+37>>0])&65535;b:do if((V&65535)>=514)if((Nb(a,f[I+32>>2]|0)|0)==-1){X=0;break a}else _=-1;else{P=f[I+32>>2]|0;do if((V&65535)<512){J=P+8|0;F=f[J>>2]|0;D=f[J+4>>2]|0;J=P+16|0;s=J;t=f[s>>2]|0;q=vl(t|0,f[s+4>>2]|0,4,0)|0;s=H;if((D|0)<(s|0)|(D|0)==(s|0)&F>>>0<q>>>0)break;F=(f[P>>2]|0)+t|0;t=h[F>>0]|h[F+1>>0]<<8|h[F+2>>0]<<16|h[F+3>>0]<<24;f[e>>2]=t;F=J;f[F>>2]=q;f[F+4>>2]=s;$=t;G=72}else{if(!(zh(e,P)|0))break;$=f[e>>2]|0;G=72}while(0);do if((G|0)==72){if(!$)break;P=f[(f[r>>2]|0)+32>>2]|0;t=P+8|0;s=P+16|0;P=wl(f[t>>2]|0,f[t+4>>2]|0,f[s>>2]|0,f[s+4>>2]|0)|0;s=H;if((s|0)<0|(s|0)==0&P>>>0<$>>>0)break;Zj(m);P=f[(f[r>>2]|0)+32>>2]|0;s=P+16|0;t=f[s>>2]|0;F=f[e>>2]|0;q=(f[P>>2]|0)+t+F|0;J=P+8|0;D=wl(f[J>>2]|0,f[J+4>>2]|0,t|0,f[s+4>>2]|0)|0;pk(m,q,D-F|0,d[P+38>>1]|0);P=Nb(a,m)|0;if((P|0)==-1)break;_=P;break b}while(0);X=0;break a}while(0);V=a+232|0;f[a+376>>2]=a;I=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;O=f[I>>2]|0;I=(f[O>>2]|0)+(f[O+16>>2]|0)|0;O=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;P=f[O>>2]|0;O=P+8|0;F=P+16|0;P=wl(f[O>>2]|0,f[O+4>>2]|0,f[F>>2]|0,f[F+4>>2]|0)|0;F=(Ka[f[(f[a>>2]|0)+32>>2]&127](a)|0)+32|0;pk(V,I,P,d[(f[F>>2]|0)+38>>1]|0);f[a+372>>2]=N;Zj(m);c:do if(Dd(V,m)|0){F=Ya(a,f[k>>2]|0)|0;if((F|0)==-1){aa=0;break}P=f[(f[r>>2]|0)+32>>2]|0;I=m+16|0;O=f[I>>2]|0;D=(f[m>>2]|0)+O|0;q=m+8|0;s=wl(f[q>>2]|0,f[q+4>>2]|0,O|0,f[I+4>>2]|0)|0;pk(P,D,s,d[P+38>>1]|0);P=f[r>>2]|0;s=(h[P+36>>0]<<8|h[P+37>>0])&65535;if((s&65535)<514){D=(f[P+32>>2]|0)+16|0;P=D;I=vl(f[P>>2]|0,f[P+4>>2]|0,_|0,((_|0)<0)<<31>>31|0)|0;P=D;f[P>>2]=I;f[P+4>>2]=H}do if((f[M>>2]|0)!=(f[g>>2]|0)){P=f[W>>2]|0;I=(f[P+4>>2]|0)!=(f[P>>2]|0);if((s&65535)<513){if(!I)break;P=0;do{f[n>>2]=P;f[e>>2]=f[n>>2];P=P+3|0;if(!(Zb(a,e)|0)){aa=0;break c}D=f[W>>2]|0}while(P>>>0<(f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)}else{if(!I)break;P=0;do{f[o>>2]=P;f[e>>2]=f[o>>2];P=P+3|0;if(!(gc(a,e)|0)){aa=0;break c}D=f[W>>2]|0}while(P>>>0<(f[D+4>>2]|0)-(f[D>>2]|0)>>2>>>0)}}while(0);if(b[a+308>>0]|0)Cj(a+272|0);if((j[a+270>>1]|0)<514)Cj(a+328|0);s=f[g>>2]|0;if((f[M>>2]|0)!=(s|0)){P=0;I=s;do{gg(I+(P*144|0)+4|0,f[W>>2]|0)|0;s=f[g>>2]|0;D=f[s+(P*144|0)+132>>2]|0;O=f[s+(P*144|0)+136>>2]|0;if((D|0)==(O|0))ba=s;else{q=D;D=s;while(1){f[p>>2]=f[q>>2];f[e>>2]=f[p>>2];pf(D+(P*144|0)+4|0,e);q=q+4|0;s=f[g>>2]|0;if((q|0)==(O|0)){ba=s;break}else D=s}}jj(ba+(P*144|0)+4|0,0,0);P=P+1|0;I=f[g>>2]|0}while(P>>>0<(((f[M>>2]|0)-I|0)/144|0)>>>0)}I=f[W>>2]|0;P=(f[I+28>>2]|0)-(f[I+24>>2]|0)>>2;I=a+196|0;D=a+200|0;O=f[I>>2]|0;q=(f[D>>2]|0)-O>>2;do if(P>>>0>q>>>0)Eg(I,P-q|0);else{if(P>>>0>=q>>>0)break;f[D>>2]=O+(P<<2)}while(0);Wh(a+184|0,P);O=f[g>>2]|0;if((f[M>>2]|0)!=(O|0)){D=0;q=O;do{O=q;I=(f[O+(D*144|0)+60>>2]|0)-(f[O+(D*144|0)+56>>2]|0)>>2;s=f[W>>2]|0;t=(f[s+28>>2]|0)-(f[s+24>>2]|0)>>2;s=(I|0)<(t|0)?t:I;I=O+(D*144|0)+116|0;t=O+(D*144|0)+120|0;J=f[I>>2]|0;v=(f[t>>2]|0)-J>>2;do if(s>>>0>v>>>0)Eg(I,s-v|0);else{if(s>>>0>=v>>>0)break;f[t>>2]=J+(s<<2)}while(0);Wh(O+(D*144|0)+104|0,s);D=D+1|0;q=f[g>>2]|0}while(D>>>0<(((f[M>>2]|0)-q|0)/144|0)>>>0)}aa=Gb(a,F)|0}else aa=0;while(0);X=aa}else X=0}else X=0;while(0);U=X}else U=0;S=U;T=R;G=117}else{S=0;T=R;G=117}if((G|0)==117)L=S;K=L;u=c;return K|0}function bb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0,Ia=0;e=u;u=u+32|0;g=e;h=a+12|0;i=f[h>>2]|0;f[g>>2]=0;j=g+4|0;f[j>>2]=0;k=g+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(g);else{l=i<<2;m=wk(l)|0;f[g>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+120|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[g>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[g>>2]=0;k=g+4|0;f[k>>2]=0;q=g+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(g);else{t=v<<2;r=wk(t)|0;f[g>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+132|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[g>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=c;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=d+16|0;r=d+20|0;A=d+28|0;w=a+8|0;s=d+12|0;x=a+108|0;t=a+4|0;n=a+96|0;j=a+52|0;i=a+48|0;l=a+40|0;o=a+32|0;p=a+28|0;E=a+20|0;F=a+92|0;G=a+80|0;H=a+88|0;I=C;while(1){J=f[B>>2]|0;K=I+-1|0;L=J+K|0;M=f[y>>2]|0;N=(L>>>0)/341|0;O=f[M+(N<<2)>>2]|0;P=L-(N*341|0)|0;N=f[O+(P*12|0)>>2]|0;L=f[O+(P*12|0)+4>>2]|0;Q=f[O+(P*12|0)+8>>2]|0;f[z>>2]=K;K=f[q>>2]|0;P=K-M|0;if((1-I-J+((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[K+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}K=f[m>>2]|0;P=K+(Q*12|0)|0;J=(f[v>>2]|0)+(Q*12|0)|0;if(N>>>0>c>>>0){D=0;break a}M=Pk(a,N,J,L)|0;if(M>>>0>=(f[h>>2]|0)>>>0){D=0;break a}L=(f[a>>2]|0)-(f[(f[J>>2]|0)+(M<<2)>>2]|0)|0;b:do if(!L)if(!N)R=19;else{O=0;while(1){S=f[k>>2]|0;c:do if((f[r>>2]|0)!=(S|0)){T=0;U=S;do{V=U;X=f[V+(T*20|0)>>2]|0;Y=V+(T*20|0)+12|0;_=V+(T*20|0)+16|0;$=(f[P>>2]|0)+(f[V+(T*20|0)+4>>2]<<2)|0;V=f[Y>>2]|0;if((V|0)==4)aa=$;else{if(f[_>>2]|0){ba=f[s>>2]|0;ca=0;da=V;while(1){Bf(ba|0,$+(ca<<2)|0,da|0)|0;ca=ca+1|0;V=f[Y>>2]|0;if(ca>>>0>=(f[_>>2]|0)>>>0)break;else{ba=ba+V|0;da=V}}}aa=f[s>>2]|0}da=f[A>>2]|0;if(!(b[X+84>>0]|0))ea=f[(f[X+68>>2]|0)+(da<<2)>>2]|0;else ea=da;if(ea>>>0>=(f[X+80>>2]|0)>>>0)break c;da=f[X+40>>2]|0;Bf((f[f[X+64>>2]>>2]|0)+(W(ea,da)|0)|0,aa|0,da|0)|0;T=T+1|0;U=f[k>>2]|0}while(T>>>0<(((f[r>>2]|0)-U|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;O=O+1|0;if((O|0)==(N|0)){R=19;break}}}else{if(N>>>0>=3){if((f[w>>2]|0)>>>0>(f[t>>2]|0)>>>0){D=0;break a}O=Q+1|0;S=f[m>>2]|0;U=S+(O*12|0)|0;if((U|0)==(P|0))fa=S;else{Df(U,f[P>>2]|0,f[K+(Q*12|0)+4>>2]|0);fa=f[m>>2]|0}U=(f[fa+(O*12|0)>>2]|0)+(M<<2)|0;f[U>>2]=(f[U>>2]|0)+(1<<L+-1);U=(Z(N|0)|0)^31;S=f[o>>2]|0;T=32-S|0;do if((U|0)>(T|0)){da=f[p>>2]|0;ba=da+4|0;if((ba|0)==(f[E>>2]|0))ga=0;else{_=f[da>>2]<<S;da=U-T|0;f[o>>2]=da;f[p>>2]=ba;ca=32-da|0;ga=(f[ba>>2]|0)>>>ca|_>>>(ca-T|0)}}else{ca=f[p>>2]|0;if((ca|0)==(f[E>>2]|0))ga=0;else{_=f[ca>>2]<<S>>>(32-U|0);ba=S+U|0;f[o>>2]=ba;if((ba|0)!=32){ga=_;break}f[p>>2]=ca+4;f[o>>2]=0;ga=_}}while(0);U=(N>>>1)-ga|0;S=N-U|0;d:do if((U|0)==(S|0)){ha=U;ia=U}else{T=f[F>>2]|0;_=f[H>>2]|0;do if((_|0)!=(f[G>>2]|0)){ca=(f[_>>2]&1<<31-T|0)!=0;ba=T+1|0;f[F>>2]=ba;if((ba|0)==32){f[H>>2]=_+4;f[F>>2]=0;if(ca){ha=U;ia=S;break d}else break}else if(ca){ha=U;ia=S;break d}else break}while(0);ha=S;ia=U}while(0);U=f[v>>2]|0;S=f[U+(Q*12|0)>>2]|0;_=S+(M<<2)|0;f[_>>2]=(f[_>>2]|0)+1;Df(U+(O*12|0)|0,S,f[U+(Q*12|0)+4>>2]|0);if(ha|0){U=f[q>>2]|0;S=f[y>>2]|0;_=U-S|0;T=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((_|0)==0?0:((_>>2)*341|0)+-1|0)|0)==(T|0)){cc(g);ja=(f[B>>2]|0)+(f[z>>2]|0)|0;ka=f[q>>2]|0;la=f[y>>2]|0}else{ja=T;ka=U;la=S}if((ka|0)==(la|0))ma=0;else{S=(ja>>>0)/341|0;ma=(f[la+(S<<2)>>2]|0)+((ja-(S*341|0)|0)*12|0)|0}f[ma>>2]=ha;f[ma+4>>2]=M;f[ma+8>>2]=Q;f[z>>2]=(f[z>>2]|0)+1}if(!ia){R=19;break}S=f[q>>2]|0;U=f[y>>2]|0;T=S-U|0;_=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((T|0)==0?0:((T>>2)*341|0)+-1|0)|0)==(_|0)){cc(g);na=(f[B>>2]|0)+(f[z>>2]|0)|0;oa=f[q>>2]|0;pa=f[y>>2]|0}else{na=_;oa=S;pa=U}if((oa|0)==(pa|0))qa=0;else{U=(na>>>0)/341|0;qa=(f[pa+(U<<2)>>2]|0)+((na-(U*341|0)|0)*12|0)|0}f[qa>>2]=ia;f[qa+4>>2]=M;f[qa+8>>2]=O;U=(f[z>>2]|0)+1|0;f[z>>2]=U;ra=U;break}U=f[x>>2]|0;f[U>>2]=M;S=f[h>>2]|0;if(S>>>0>1){_=1;T=S;ca=M;while(1){ca=(ca|0)==(T+-1|0)?0:ca+1|0;f[U+(_<<2)>>2]=ca;_=_+1|0;ba=f[h>>2]|0;if(_>>>0>=ba>>>0){sa=ba;break}else T=ba}}else sa=S;if(!N)R=19;else{T=0;_=sa;while(1){if(_|0){ca=f[x>>2]|0;U=f[n>>2]|0;O=f[J>>2]|0;ba=0;do{da=ca+(ba<<2)|0;f[U+(f[da>>2]<<2)>>2]=0;Y=f[da>>2]|0;$=(f[a>>2]|0)-(f[O+(Y<<2)>>2]|0)|0;do if($|0){V=U+(Y<<2)|0;ta=f[j>>2]|0;ua=32-ta|0;if(($|0)>(ua|0)){va=f[i>>2]|0;wa=va+4|0;if((wa|0)==(f[l>>2]|0)){f[V>>2]=0;break}else{xa=f[va>>2]<<ta;va=$-ua|0;f[j>>2]=va;f[i>>2]=wa;ya=32-va|0;f[V>>2]=(f[wa>>2]|0)>>>ya|xa>>>(ya-ua|0);break}}ua=f[i>>2]|0;if((ua|0)==(f[l>>2]|0)){f[V>>2]=0;break}f[V>>2]=f[ua>>2]<<ta>>>(32-$|0);ta=(f[j>>2]|0)+$|0;f[j>>2]=ta;if((ta|0)!=32)break;f[i>>2]=ua+4;f[j>>2]=0}while(0);$=f[da>>2]|0;Y=U+($<<2)|0;f[Y>>2]=f[Y>>2]|f[(f[P>>2]|0)+($<<2)>>2];ba=ba+1|0}while(ba>>>0<(f[h>>2]|0)>>>0)}ba=f[k>>2]|0;e:do if((f[r>>2]|0)!=(ba|0)){U=0;O=ba;do{ca=O;$=f[ca+(U*20|0)>>2]|0;Y=ca+(U*20|0)+12|0;ua=ca+(U*20|0)+16|0;ta=(f[n>>2]|0)+(f[ca+(U*20|0)+4>>2]<<2)|0;ca=f[Y>>2]|0;if((ca|0)==4)za=ta;else{if(f[ua>>2]|0){V=f[s>>2]|0;ya=0;xa=ca;while(1){Bf(V|0,ta+(ya<<2)|0,xa|0)|0;ya=ya+1|0;ca=f[Y>>2]|0;if(ya>>>0>=(f[ua>>2]|0)>>>0)break;else{V=V+ca|0;xa=ca}}}za=f[s>>2]|0}xa=f[A>>2]|0;if(!(b[$+84>>0]|0))Aa=f[(f[$+68>>2]|0)+(xa<<2)>>2]|0;else Aa=xa;if(Aa>>>0>=(f[$+80>>2]|0)>>>0)break e;xa=f[$+40>>2]|0;Bf((f[f[$+64>>2]>>2]|0)+(W(Aa,xa)|0)|0,za|0,xa|0)|0;U=U+1|0;O=f[k>>2]|0}while(U>>>0<(((f[r>>2]|0)-O|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;ba=T+1|0;if((ba|0)==(N|0)){R=19;break b}T=ba;_=f[h>>2]|0}}}while(0);if((R|0)==19){R=0;ra=f[z>>2]|0}if(!ra){D=1;break}else I=ra}}while(0);ra=f[y>>2]|0;h=f[B>>2]|0;za=(h>>>0)/341|0;Aa=ra+(za<<2)|0;a=f[q>>2]|0;sa=a;qa=ra;if((a|0)!=(ra|0)?(ia=(f[Aa>>2]|0)+((h-(za*341|0)|0)*12|0)|0,za=(f[z>>2]|0)+h|0,h=(za>>>0)/341|0,na=(f[ra+(h<<2)>>2]|0)+((za-(h*341|0)|0)*12|0)|0,(na|0)!=(ia|0)):0){h=Aa;Aa=ia;while(1){ia=Aa+12|0;if((ia-(f[h>>2]|0)|0)==4092){za=h+4|0;Ba=za;Ca=f[za>>2]|0}else{Ba=h;Ca=ia}Aa=Ca;if((na|0)==(Aa|0))break;else h=Ba}}f[z>>2]=0;z=sa-qa>>2;if(z>>>0>2){qa=ra;do{Ko(f[qa>>2]|0);qa=(f[y>>2]|0)+4|0;f[y>>2]=qa;Da=f[q>>2]|0;Ea=Da-qa>>2}while(Ea>>>0>2);Fa=Ea;Ga=qa;Ha=Da}else{Fa=z;Ga=ra;Ha=a}switch(Fa|0){case 1:{Ia=170;R=110;break}case 2:{Ia=341;R=110;break}default:{}}if((R|0)==110)f[B>>2]=Ia;if((Ga|0)!=(Ha|0)){Ia=Ga;do{Ko(f[Ia>>2]|0);Ia=Ia+4|0}while((Ia|0)!=(Ha|0));Ha=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ha|0))f[q>>2]=y+(~((y+-4-Ha|0)>>>2)<<2)}Ha=f[g>>2]|0;if(!Ha){u=e;return D|0}Ko(Ha);u=e;return D|0}function cb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0;e=u;u=u+32|0;g=e;h=a+12|0;i=f[h>>2]|0;f[g>>2]=0;j=g+4|0;f[j>>2]=0;k=g+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(g);else{l=i<<2;m=wk(l)|0;f[g>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+120|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[g>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[g>>2]=0;k=g+4|0;f[k>>2]=0;q=g+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(g);else{t=v<<2;r=wk(t)|0;f[g>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+132|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[g>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=c;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=d+16|0;r=d+20|0;A=d+28|0;w=a+8|0;s=d+12|0;x=a+108|0;t=a+4|0;n=a+96|0;j=a+52|0;i=a+48|0;l=a+40|0;o=a+32|0;p=a+28|0;E=a+20|0;F=a+92|0;G=a+80|0;H=a+88|0;I=C;while(1){J=f[B>>2]|0;K=I+-1|0;L=J+K|0;M=f[y>>2]|0;N=(L>>>0)/341|0;O=f[M+(N<<2)>>2]|0;P=L-(N*341|0)|0;N=f[O+(P*12|0)>>2]|0;L=f[O+(P*12|0)+4>>2]|0;Q=f[O+(P*12|0)+8>>2]|0;f[z>>2]=K;K=f[q>>2]|0;P=K-M|0;if((1-I-J+((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[K+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}K=f[m>>2]|0;P=K+(Q*12|0)|0;if(N>>>0>c>>>0){D=0;break a}J=f[h>>2]|0;M=(J+-1|0)==(L|0)?0:L+1|0;if(M>>>0>=J>>>0){D=0;break a}J=(f[v>>2]|0)+(Q*12|0)|0;L=(f[a>>2]|0)-(f[(f[J>>2]|0)+(M<<2)>>2]|0)|0;b:do if(!L)if(!N)R=19;else{O=0;while(1){S=f[k>>2]|0;c:do if((f[r>>2]|0)!=(S|0)){T=0;U=S;do{V=U;X=f[V+(T*20|0)>>2]|0;Y=V+(T*20|0)+12|0;_=V+(T*20|0)+16|0;$=(f[P>>2]|0)+(f[V+(T*20|0)+4>>2]<<2)|0;V=f[Y>>2]|0;if((V|0)==4)aa=$;else{if(f[_>>2]|0){ba=f[s>>2]|0;ca=0;da=V;while(1){Bf(ba|0,$+(ca<<2)|0,da|0)|0;ca=ca+1|0;V=f[Y>>2]|0;if(ca>>>0>=(f[_>>2]|0)>>>0)break;else{ba=ba+V|0;da=V}}}aa=f[s>>2]|0}da=f[A>>2]|0;if(!(b[X+84>>0]|0))ea=f[(f[X+68>>2]|0)+(da<<2)>>2]|0;else ea=da;if(ea>>>0>=(f[X+80>>2]|0)>>>0)break c;da=f[X+40>>2]|0;Bf((f[f[X+64>>2]>>2]|0)+(W(ea,da)|0)|0,aa|0,da|0)|0;T=T+1|0;U=f[k>>2]|0}while(T>>>0<(((f[r>>2]|0)-U|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;O=O+1|0;if((O|0)==(N|0)){R=19;break}}}else{if(N>>>0>=3){if((f[w>>2]|0)>>>0>(f[t>>2]|0)>>>0){D=0;break a}O=Q+1|0;Df(K+(O*12|0)|0,f[P>>2]|0,f[K+(Q*12|0)+4>>2]|0);S=(f[(f[m>>2]|0)+(O*12|0)>>2]|0)+(M<<2)|0;f[S>>2]=(f[S>>2]|0)+(1<<L+-1);S=(Z(N|0)|0)^31;U=f[o>>2]|0;T=32-U|0;if((S|0)>(T|0)){da=f[p>>2]|0;ba=da+4|0;if((ba|0)==(f[E>>2]|0))fa=0;else{_=f[da>>2]<<U;da=S-T|0;f[o>>2]=da;f[p>>2]=ba;ca=32-da|0;fa=(f[ba>>2]|0)>>>ca|_>>>(ca-T|0)}}else{T=f[p>>2]|0;if((T|0)!=(f[E>>2]|0)){ca=f[T>>2]<<U>>>(32-S|0);_=U+S|0;f[o>>2]=_;if((_|0)==32){f[p>>2]=T+4;f[o>>2]=0;fa=ca}else fa=ca}else fa=0}ca=(N>>>1)-fa|0;T=N-ca|0;d:do if((ca|0)==(T|0)){ga=ca;ha=ca}else{_=f[F>>2]|0;S=f[H>>2]|0;do if((S|0)!=(f[G>>2]|0)){U=(f[S>>2]&1<<31-_|0)!=0;ba=_+1|0;f[F>>2]=ba;if((ba|0)==32){f[H>>2]=S+4;f[F>>2]=0;if(U){ga=ca;ha=T;break d}else break}else if(U){ga=ca;ha=T;break d}else break}while(0);ga=T;ha=ca}while(0);ca=f[v>>2]|0;T=f[ca+(Q*12|0)>>2]|0;S=T+(M<<2)|0;f[S>>2]=(f[S>>2]|0)+1;Df(ca+(O*12|0)|0,T,f[ca+(Q*12|0)+4>>2]|0);if(ga|0){ca=f[q>>2]|0;T=f[y>>2]|0;S=ca-T|0;_=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((S|0)==0?0:((S>>2)*341|0)+-1|0)|0)==(_|0)){cc(g);ia=(f[B>>2]|0)+(f[z>>2]|0)|0;ja=f[q>>2]|0;ka=f[y>>2]|0}else{ia=_;ja=ca;ka=T}if((ja|0)==(ka|0))la=0;else{T=(ia>>>0)/341|0;la=(f[ka+(T<<2)>>2]|0)+((ia-(T*341|0)|0)*12|0)|0}f[la>>2]=ga;f[la+4>>2]=M;f[la+8>>2]=Q;f[z>>2]=(f[z>>2]|0)+1}if(!ha){R=19;break}T=f[q>>2]|0;ca=f[y>>2]|0;_=T-ca|0;S=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((_|0)==0?0:((_>>2)*341|0)+-1|0)|0)==(S|0)){cc(g);ma=(f[B>>2]|0)+(f[z>>2]|0)|0;na=f[q>>2]|0;oa=f[y>>2]|0}else{ma=S;na=T;oa=ca}if((na|0)==(oa|0))pa=0;else{ca=(ma>>>0)/341|0;pa=(f[oa+(ca<<2)>>2]|0)+((ma-(ca*341|0)|0)*12|0)|0}f[pa>>2]=ha;f[pa+4>>2]=M;f[pa+8>>2]=O;ca=(f[z>>2]|0)+1|0;f[z>>2]=ca;qa=ca;break}ca=f[x>>2]|0;f[ca>>2]=M;T=f[h>>2]|0;if(T>>>0>1){S=1;_=T;U=M;while(1){U=(U|0)==(_+-1|0)?0:U+1|0;f[ca+(S<<2)>>2]=U;S=S+1|0;ba=f[h>>2]|0;if(S>>>0>=ba>>>0){ra=ba;break}else _=ba}}else ra=T;if(!N)R=19;else{_=0;S=ra;while(1){if(S|0){U=f[x>>2]|0;ca=f[n>>2]|0;O=f[J>>2]|0;ba=0;do{da=U+(ba<<2)|0;f[ca+(f[da>>2]<<2)>>2]=0;Y=f[da>>2]|0;$=(f[a>>2]|0)-(f[O+(Y<<2)>>2]|0)|0;do if($|0){V=ca+(Y<<2)|0;sa=f[j>>2]|0;ta=32-sa|0;if(($|0)>(ta|0)){ua=f[i>>2]|0;va=ua+4|0;if((va|0)==(f[l>>2]|0)){f[V>>2]=0;break}else{wa=f[ua>>2]<<sa;ua=$-ta|0;f[j>>2]=ua;f[i>>2]=va;xa=32-ua|0;f[V>>2]=(f[va>>2]|0)>>>xa|wa>>>(xa-ta|0);break}}ta=f[i>>2]|0;if((ta|0)==(f[l>>2]|0)){f[V>>2]=0;break}f[V>>2]=f[ta>>2]<<sa>>>(32-$|0);sa=(f[j>>2]|0)+$|0;f[j>>2]=sa;if((sa|0)!=32)break;f[i>>2]=ta+4;f[j>>2]=0}while(0);$=f[da>>2]|0;Y=ca+($<<2)|0;f[Y>>2]=f[Y>>2]|f[(f[P>>2]|0)+($<<2)>>2];ba=ba+1|0}while(ba>>>0<(f[h>>2]|0)>>>0)}ba=f[k>>2]|0;e:do if((f[r>>2]|0)!=(ba|0)){ca=0;O=ba;do{U=O;$=f[U+(ca*20|0)>>2]|0;Y=U+(ca*20|0)+12|0;ta=U+(ca*20|0)+16|0;sa=(f[n>>2]|0)+(f[U+(ca*20|0)+4>>2]<<2)|0;U=f[Y>>2]|0;if((U|0)==4)ya=sa;else{if(f[ta>>2]|0){V=f[s>>2]|0;xa=0;wa=U;while(1){Bf(V|0,sa+(xa<<2)|0,wa|0)|0;xa=xa+1|0;U=f[Y>>2]|0;if(xa>>>0>=(f[ta>>2]|0)>>>0)break;else{V=V+U|0;wa=U}}}ya=f[s>>2]|0}wa=f[A>>2]|0;if(!(b[$+84>>0]|0))za=f[(f[$+68>>2]|0)+(wa<<2)>>2]|0;else za=wa;if(za>>>0>=(f[$+80>>2]|0)>>>0)break e;wa=f[$+40>>2]|0;Bf((f[f[$+64>>2]>>2]|0)+(W(za,wa)|0)|0,ya|0,wa|0)|0;ca=ca+1|0;O=f[k>>2]|0}while(ca>>>0<(((f[r>>2]|0)-O|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;ba=_+1|0;if((ba|0)==(N|0)){R=19;break b}_=ba;S=f[h>>2]|0}}}while(0);if((R|0)==19){R=0;qa=f[z>>2]|0}if(!qa){D=1;break}else I=qa}}while(0);qa=f[y>>2]|0;h=f[B>>2]|0;ya=(h>>>0)/341|0;za=qa+(ya<<2)|0;a=f[q>>2]|0;ra=a;pa=qa;if((a|0)!=(qa|0)?(ha=(f[za>>2]|0)+((h-(ya*341|0)|0)*12|0)|0,ya=(f[z>>2]|0)+h|0,h=(ya>>>0)/341|0,ma=(f[qa+(h<<2)>>2]|0)+((ya-(h*341|0)|0)*12|0)|0,(ma|0)!=(ha|0)):0){h=za;za=ha;while(1){ha=za+12|0;if((ha-(f[h>>2]|0)|0)==4092){ya=h+4|0;Aa=ya;Ba=f[ya>>2]|0}else{Aa=h;Ba=ha}za=Ba;if((ma|0)==(za|0))break;else h=Aa}}f[z>>2]=0;z=ra-pa>>2;if(z>>>0>2){pa=qa;do{Ko(f[pa>>2]|0);pa=(f[y>>2]|0)+4|0;f[y>>2]=pa;Ca=f[q>>2]|0;Da=Ca-pa>>2}while(Da>>>0>2);Ea=Da;Fa=pa;Ga=Ca}else{Ea=z;Fa=qa;Ga=a}switch(Ea|0){case 1:{Ha=170;R=108;break}case 2:{Ha=341;R=108;break}default:{}}if((R|0)==108)f[B>>2]=Ha;if((Fa|0)!=(Ga|0)){Ha=Fa;do{Ko(f[Ha>>2]|0);Ha=Ha+4|0}while((Ha|0)!=(Ga|0));Ga=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ga|0))f[q>>2]=y+(~((y+-4-Ga|0)>>>2)<<2)}Ga=f[g>>2]|0;if(!Ga){u=e;return D|0}Ko(Ga);u=e;return D|0}function db(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;e=u;u=u+32|0;g=e;h=a+12|0;i=f[h>>2]|0;f[g>>2]=0;j=g+4|0;f[j>>2]=0;k=g+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(g);else{l=i<<2;m=wk(l)|0;f[g>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[g>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[g>>2]=0;k=g+4|0;f[k>>2]=0;q=g+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(g);else{t=v<<2;r=wk(t)|0;f[g>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[g>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=c;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=d+16|0;r=d+20|0;A=d+28|0;w=a+8|0;s=d+12|0;x=a+616|0;t=a+4|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;G=(f[v>>2]|0)+(N*12|0)|0;if(K>>>0>c>>>0){D=0;break a}J=tg(a,K,G,I)|0;if(J>>>0>=(f[h>>2]|0)>>>0){D=0;break a}I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;while(1){P=f[k>>2]|0;c:do if((f[r>>2]|0)!=(P|0)){Q=0;R=P;do{S=R;T=f[S+(Q*20|0)>>2]|0;U=S+(Q*20|0)+12|0;V=S+(Q*20|0)+16|0;X=(f[M>>2]|0)+(f[S+(Q*20|0)+4>>2]<<2)|0;S=f[U>>2]|0;if((S|0)==4)Y=X;else{if(f[V>>2]|0){_=f[s>>2]|0;$=0;aa=S;while(1){Bf(_|0,X+($<<2)|0,aa|0)|0;$=$+1|0;S=f[U>>2]|0;if($>>>0>=(f[V>>2]|0)>>>0)break;else{_=_+S|0;aa=S}}}Y=f[s>>2]|0}aa=f[A>>2]|0;if(!(b[T+84>>0]|0))ba=f[(f[T+68>>2]|0)+(aa<<2)>>2]|0;else ba=aa;if(ba>>>0>=(f[T+80>>2]|0)>>>0)break c;aa=f[T+40>>2]|0;Bf((f[f[T+64>>2]>>2]|0)+(W(ba,aa)|0)|0,Y|0,aa|0)|0;Q=Q+1|0;R=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-R|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;L=L+1|0;if((L|0)==(K|0)){O=19;break}}}else{if(K>>>0>=3){if((f[w>>2]|0)>>>0>(f[t>>2]|0)>>>0){D=0;break a}L=N+1|0;P=f[m>>2]|0;R=P+(L*12|0)|0;if((R|0)==(M|0))ca=P;else{Df(R,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);ca=f[m>>2]|0}R=(f[ca+(L*12|0)>>2]|0)+(J<<2)|0;f[R>>2]=(f[R>>2]|0)+(1<<I+-1);R=(Z(K|0)|0)^31;if(!R)da=0;else{P=0;Q=0;while(1){aa=Q<<1|(pi(a+16+(P<<4)|0)|0)&1;P=P+1|0;if((P|0)==(R|0)){da=aa;break}else Q=aa}}Q=(K>>>1)-da|0;R=K-Q|0;d:do if((Q|0)==(R|0)){ea=Q;fa=Q}else{P=f[o>>2]|0;aa=f[E>>2]|0;do if((aa|0)!=(f[p>>2]|0)){_=(f[aa>>2]&1<<31-P|0)!=0;V=P+1|0;f[o>>2]=V;if((V|0)==32){f[E>>2]=aa+4;f[o>>2]=0;if(_){ea=Q;fa=R;break d}else break}else if(_){ea=Q;fa=R;break d}else break}while(0);ea=R;fa=Q}while(0);Q=f[v>>2]|0;R=f[Q+(N*12|0)>>2]|0;aa=R+(J<<2)|0;f[aa>>2]=(f[aa>>2]|0)+1;Df(Q+(L*12|0)|0,R,f[Q+(N*12|0)+4>>2]|0);if(ea|0){Q=f[q>>2]|0;R=f[y>>2]|0;aa=Q-R|0;P=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((aa|0)==0?0:((aa>>2)*341|0)+-1|0)|0)==(P|0)){cc(g);ga=(f[B>>2]|0)+(f[z>>2]|0)|0;ha=f[q>>2]|0;ia=f[y>>2]|0}else{ga=P;ha=Q;ia=R}if((ha|0)==(ia|0))ja=0;else{R=(ga>>>0)/341|0;ja=(f[ia+(R<<2)>>2]|0)+((ga-(R*341|0)|0)*12|0)|0}f[ja>>2]=ea;f[ja+4>>2]=J;f[ja+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!fa){O=19;break}R=f[q>>2]|0;Q=f[y>>2]|0;P=R-Q|0;aa=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)==(aa|0)){cc(g);ka=(f[B>>2]|0)+(f[z>>2]|0)|0;la=f[q>>2]|0;ma=f[y>>2]|0}else{ka=aa;la=R;ma=Q}if((la|0)==(ma|0))na=0;else{Q=(ka>>>0)/341|0;na=(f[ma+(Q<<2)>>2]|0)+((ka-(Q*341|0)|0)*12|0)|0}f[na>>2]=fa;f[na+4>>2]=J;f[na+8>>2]=L;Q=(f[z>>2]|0)+1|0;f[z>>2]=Q;oa=Q;break}Q=f[x>>2]|0;f[Q>>2]=J;R=f[h>>2]|0;if(R>>>0>1){aa=1;P=R;_=J;while(1){_=(_|0)==(P+-1|0)?0:_+1|0;f[Q+(aa<<2)>>2]=_;aa=aa+1|0;V=f[h>>2]|0;if(aa>>>0>=V>>>0){pa=V;break}else P=V}}else pa=R;if(!K)O=19;else{P=0;aa=pa;while(1){if(aa|0){_=f[x>>2]|0;Q=f[n>>2]|0;L=f[G>>2]|0;V=0;do{$=_+(V<<2)|0;f[Q+(f[$>>2]<<2)>>2]=0;U=f[$>>2]|0;X=(f[a>>2]|0)-(f[L+(U<<2)>>2]|0)|0;do if(X|0){S=Q+(U<<2)|0;qa=f[j>>2]|0;ra=32-qa|0;if((X|0)>(ra|0)){sa=f[i>>2]|0;ta=sa+4|0;if((ta|0)==(f[l>>2]|0)){f[S>>2]=0;break}else{ua=f[sa>>2]<<qa;sa=X-ra|0;f[j>>2]=sa;f[i>>2]=ta;va=32-sa|0;f[S>>2]=(f[ta>>2]|0)>>>va|ua>>>(va-ra|0);break}}ra=f[i>>2]|0;if((ra|0)==(f[l>>2]|0)){f[S>>2]=0;break}f[S>>2]=f[ra>>2]<<qa>>>(32-X|0);qa=(f[j>>2]|0)+X|0;f[j>>2]=qa;if((qa|0)!=32)break;f[i>>2]=ra+4;f[j>>2]=0}while(0);X=f[$>>2]|0;U=Q+(X<<2)|0;f[U>>2]=f[U>>2]|f[(f[M>>2]|0)+(X<<2)>>2];V=V+1|0}while(V>>>0<(f[h>>2]|0)>>>0)}V=f[k>>2]|0;e:do if((f[r>>2]|0)!=(V|0)){Q=0;L=V;do{_=L;X=f[_+(Q*20|0)>>2]|0;U=_+(Q*20|0)+12|0;ra=_+(Q*20|0)+16|0;qa=(f[n>>2]|0)+(f[_+(Q*20|0)+4>>2]<<2)|0;_=f[U>>2]|0;if((_|0)==4)wa=qa;else{if(f[ra>>2]|0){S=f[s>>2]|0;va=0;ua=_;while(1){Bf(S|0,qa+(va<<2)|0,ua|0)|0;va=va+1|0;_=f[U>>2]|0;if(va>>>0>=(f[ra>>2]|0)>>>0)break;else{S=S+_|0;ua=_}}}wa=f[s>>2]|0}ua=f[A>>2]|0;if(!(b[X+84>>0]|0))xa=f[(f[X+68>>2]|0)+(ua<<2)>>2]|0;else xa=ua;if(xa>>>0>=(f[X+80>>2]|0)>>>0)break e;ua=f[X+40>>2]|0;Bf((f[f[X+64>>2]>>2]|0)+(W(xa,ua)|0)|0,wa|0,ua|0)|0;Q=Q+1|0;L=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-L|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;V=P+1|0;if((V|0)==(K|0)){O=19;break b}P=V;aa=f[h>>2]|0}}}while(0);if((O|0)==19){O=0;oa=f[z>>2]|0}if(!oa){D=1;break}else F=oa}}while(0);oa=f[y>>2]|0;h=f[B>>2]|0;wa=(h>>>0)/341|0;xa=oa+(wa<<2)|0;a=f[q>>2]|0;pa=a;na=oa;if((a|0)!=(oa|0)?(fa=(f[xa>>2]|0)+((h-(wa*341|0)|0)*12|0)|0,wa=(f[z>>2]|0)+h|0,h=(wa>>>0)/341|0,ka=(f[oa+(h<<2)>>2]|0)+((wa-(h*341|0)|0)*12|0)|0,(ka|0)!=(fa|0)):0){h=xa;xa=fa;while(1){fa=xa+12|0;if((fa-(f[h>>2]|0)|0)==4092){wa=h+4|0;ya=wa;za=f[wa>>2]|0}else{ya=h;za=fa}xa=za;if((ka|0)==(xa|0))break;else h=ya}}f[z>>2]=0;z=pa-na>>2;if(z>>>0>2){na=oa;do{Ko(f[na>>2]|0);na=(f[y>>2]|0)+4|0;f[y>>2]=na;Aa=f[q>>2]|0;Ba=Aa-na>>2}while(Ba>>>0>2);Ca=Ba;Da=na;Ea=Aa}else{Ca=z;Da=oa;Ea=a}switch(Ca|0){case 1:{Fa=170;O=107;break}case 2:{Fa=341;O=107;break}default:{}}if((O|0)==107)f[B>>2]=Fa;if((Da|0)!=(Ea|0)){Fa=Da;do{Ko(f[Fa>>2]|0);Fa=Fa+4|0}while((Fa|0)!=(Ea|0));Ea=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ea|0))f[q>>2]=y+(~((y+-4-Ea|0)>>>2)<<2)}Ea=f[g>>2]|0;if(!Ea){u=e;return D|0}Ko(Ea);u=e;return D|0}function eb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;e=u;u=u+32|0;g=e;h=a+12|0;i=f[h>>2]|0;f[g>>2]=0;j=g+4|0;f[j>>2]=0;k=g+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(g);else{l=i<<2;m=wk(l)|0;f[g>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[g>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[g>>2]=0;k=g+4|0;f[k>>2]=0;q=g+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(g);else{t=v<<2;r=wk(t)|0;f[g>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[g>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=c;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=d+16|0;r=d+20|0;A=d+28|0;w=a+8|0;s=d+12|0;x=a+616|0;t=a+4|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;G=(f[v>>2]|0)+(N*12|0)|0;if(K>>>0>c>>>0){D=0;break a}J=Pk(a,K,G,I)|0;if(J>>>0>=(f[h>>2]|0)>>>0){D=0;break a}I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;while(1){P=f[k>>2]|0;c:do if((f[r>>2]|0)!=(P|0)){Q=0;R=P;do{S=R;T=f[S+(Q*20|0)>>2]|0;U=S+(Q*20|0)+12|0;V=S+(Q*20|0)+16|0;X=(f[M>>2]|0)+(f[S+(Q*20|0)+4>>2]<<2)|0;S=f[U>>2]|0;if((S|0)==4)Y=X;else{if(f[V>>2]|0){_=f[s>>2]|0;$=0;aa=S;while(1){Bf(_|0,X+($<<2)|0,aa|0)|0;$=$+1|0;S=f[U>>2]|0;if($>>>0>=(f[V>>2]|0)>>>0)break;else{_=_+S|0;aa=S}}}Y=f[s>>2]|0}aa=f[A>>2]|0;if(!(b[T+84>>0]|0))ba=f[(f[T+68>>2]|0)+(aa<<2)>>2]|0;else ba=aa;if(ba>>>0>=(f[T+80>>2]|0)>>>0)break c;aa=f[T+40>>2]|0;Bf((f[f[T+64>>2]>>2]|0)+(W(ba,aa)|0)|0,Y|0,aa|0)|0;Q=Q+1|0;R=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-R|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;L=L+1|0;if((L|0)==(K|0)){O=19;break}}}else{if(K>>>0>=3){if((f[w>>2]|0)>>>0>(f[t>>2]|0)>>>0){D=0;break a}L=N+1|0;P=f[m>>2]|0;R=P+(L*12|0)|0;if((R|0)==(M|0))ca=P;else{Df(R,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);ca=f[m>>2]|0}R=(f[ca+(L*12|0)>>2]|0)+(J<<2)|0;f[R>>2]=(f[R>>2]|0)+(1<<I+-1);R=(Z(K|0)|0)^31;if(!R)da=0;else{P=0;Q=0;while(1){aa=Q<<1|(pi(a+16+(P<<4)|0)|0)&1;P=P+1|0;if((P|0)==(R|0)){da=aa;break}else Q=aa}}Q=(K>>>1)-da|0;R=K-Q|0;d:do if((Q|0)==(R|0)){ea=Q;fa=Q}else{P=f[o>>2]|0;aa=f[E>>2]|0;do if((aa|0)!=(f[p>>2]|0)){_=(f[aa>>2]&1<<31-P|0)!=0;V=P+1|0;f[o>>2]=V;if((V|0)==32){f[E>>2]=aa+4;f[o>>2]=0;if(_){ea=Q;fa=R;break d}else break}else if(_){ea=Q;fa=R;break d}else break}while(0);ea=R;fa=Q}while(0);Q=f[v>>2]|0;R=f[Q+(N*12|0)>>2]|0;aa=R+(J<<2)|0;f[aa>>2]=(f[aa>>2]|0)+1;Df(Q+(L*12|0)|0,R,f[Q+(N*12|0)+4>>2]|0);if(ea|0){Q=f[q>>2]|0;R=f[y>>2]|0;aa=Q-R|0;P=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((aa|0)==0?0:((aa>>2)*341|0)+-1|0)|0)==(P|0)){cc(g);ga=(f[B>>2]|0)+(f[z>>2]|0)|0;ha=f[q>>2]|0;ia=f[y>>2]|0}else{ga=P;ha=Q;ia=R}if((ha|0)==(ia|0))ja=0;else{R=(ga>>>0)/341|0;ja=(f[ia+(R<<2)>>2]|0)+((ga-(R*341|0)|0)*12|0)|0}f[ja>>2]=ea;f[ja+4>>2]=J;f[ja+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!fa){O=19;break}R=f[q>>2]|0;Q=f[y>>2]|0;P=R-Q|0;aa=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)==(aa|0)){cc(g);ka=(f[B>>2]|0)+(f[z>>2]|0)|0;la=f[q>>2]|0;ma=f[y>>2]|0}else{ka=aa;la=R;ma=Q}if((la|0)==(ma|0))na=0;else{Q=(ka>>>0)/341|0;na=(f[ma+(Q<<2)>>2]|0)+((ka-(Q*341|0)|0)*12|0)|0}f[na>>2]=fa;f[na+4>>2]=J;f[na+8>>2]=L;Q=(f[z>>2]|0)+1|0;f[z>>2]=Q;oa=Q;break}Q=f[x>>2]|0;f[Q>>2]=J;R=f[h>>2]|0;if(R>>>0>1){aa=1;P=R;_=J;while(1){_=(_|0)==(P+-1|0)?0:_+1|0;f[Q+(aa<<2)>>2]=_;aa=aa+1|0;V=f[h>>2]|0;if(aa>>>0>=V>>>0){pa=V;break}else P=V}}else pa=R;if(!K)O=19;else{P=0;aa=pa;while(1){if(aa|0){_=f[x>>2]|0;Q=f[n>>2]|0;L=f[G>>2]|0;V=0;do{$=_+(V<<2)|0;f[Q+(f[$>>2]<<2)>>2]=0;U=f[$>>2]|0;X=(f[a>>2]|0)-(f[L+(U<<2)>>2]|0)|0;do if(X|0){S=Q+(U<<2)|0;qa=f[j>>2]|0;ra=32-qa|0;if((X|0)>(ra|0)){sa=f[i>>2]|0;ta=sa+4|0;if((ta|0)==(f[l>>2]|0)){f[S>>2]=0;break}else{ua=f[sa>>2]<<qa;sa=X-ra|0;f[j>>2]=sa;f[i>>2]=ta;va=32-sa|0;f[S>>2]=(f[ta>>2]|0)>>>va|ua>>>(va-ra|0);break}}ra=f[i>>2]|0;if((ra|0)==(f[l>>2]|0)){f[S>>2]=0;break}f[S>>2]=f[ra>>2]<<qa>>>(32-X|0);qa=(f[j>>2]|0)+X|0;f[j>>2]=qa;if((qa|0)!=32)break;f[i>>2]=ra+4;f[j>>2]=0}while(0);X=f[$>>2]|0;U=Q+(X<<2)|0;f[U>>2]=f[U>>2]|f[(f[M>>2]|0)+(X<<2)>>2];V=V+1|0}while(V>>>0<(f[h>>2]|0)>>>0)}V=f[k>>2]|0;e:do if((f[r>>2]|0)!=(V|0)){Q=0;L=V;do{_=L;X=f[_+(Q*20|0)>>2]|0;U=_+(Q*20|0)+12|0;ra=_+(Q*20|0)+16|0;qa=(f[n>>2]|0)+(f[_+(Q*20|0)+4>>2]<<2)|0;_=f[U>>2]|0;if((_|0)==4)wa=qa;else{if(f[ra>>2]|0){S=f[s>>2]|0;va=0;ua=_;while(1){Bf(S|0,qa+(va<<2)|0,ua|0)|0;va=va+1|0;_=f[U>>2]|0;if(va>>>0>=(f[ra>>2]|0)>>>0)break;else{S=S+_|0;ua=_}}}wa=f[s>>2]|0}ua=f[A>>2]|0;if(!(b[X+84>>0]|0))xa=f[(f[X+68>>2]|0)+(ua<<2)>>2]|0;else xa=ua;if(xa>>>0>=(f[X+80>>2]|0)>>>0)break e;ua=f[X+40>>2]|0;Bf((f[f[X+64>>2]>>2]|0)+(W(xa,ua)|0)|0,wa|0,ua|0)|0;Q=Q+1|0;L=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-L|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;V=P+1|0;if((V|0)==(K|0)){O=19;break b}P=V;aa=f[h>>2]|0}}}while(0);if((O|0)==19){O=0;oa=f[z>>2]|0}if(!oa){D=1;break}else F=oa}}while(0);oa=f[y>>2]|0;h=f[B>>2]|0;wa=(h>>>0)/341|0;xa=oa+(wa<<2)|0;a=f[q>>2]|0;pa=a;na=oa;if((a|0)!=(oa|0)?(fa=(f[xa>>2]|0)+((h-(wa*341|0)|0)*12|0)|0,wa=(f[z>>2]|0)+h|0,h=(wa>>>0)/341|0,ka=(f[oa+(h<<2)>>2]|0)+((wa-(h*341|0)|0)*12|0)|0,(ka|0)!=(fa|0)):0){h=xa;xa=fa;while(1){fa=xa+12|0;if((fa-(f[h>>2]|0)|0)==4092){wa=h+4|0;ya=wa;za=f[wa>>2]|0}else{ya=h;za=fa}xa=za;if((ka|0)==(xa|0))break;else h=ya}}f[z>>2]=0;z=pa-na>>2;if(z>>>0>2){na=oa;do{Ko(f[na>>2]|0);na=(f[y>>2]|0)+4|0;f[y>>2]=na;Aa=f[q>>2]|0;Ba=Aa-na>>2}while(Ba>>>0>2);Ca=Ba;Da=na;Ea=Aa}else{Ca=z;Da=oa;Ea=a}switch(Ca|0){case 1:{Fa=170;O=107;break}case 2:{Fa=341;O=107;break}default:{}}if((O|0)==107)f[B>>2]=Fa;if((Da|0)!=(Ea|0)){Fa=Da;do{Ko(f[Fa>>2]|0);Fa=Fa+4|0}while((Fa|0)!=(Ea|0));Ea=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ea|0))f[q>>2]=y+(~((y+-4-Ea|0)>>>2)<<2)}Ea=f[g>>2]|0;if(!Ea){u=e;return D|0}Ko(Ea);u=e;return D|0}function fb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;e=u;u=u+32|0;g=e;h=a+12|0;i=f[h>>2]|0;f[g>>2]=0;j=g+4|0;f[j>>2]=0;k=g+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(g);else{l=i<<2;m=wk(l)|0;f[g>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[g>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[g>>2]=0;k=g+4|0;f[k>>2]=0;q=g+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(g);else{t=v<<2;r=wk(t)|0;f[g>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[g>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=c;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=d+16|0;r=d+20|0;A=d+28|0;w=a+8|0;s=d+12|0;x=a+616|0;t=a+4|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;if(K>>>0>c>>>0){D=0;break a}G=f[h>>2]|0;J=(G+-1|0)==(I|0)?0:I+1|0;if(J>>>0>=G>>>0){D=0;break a}G=(f[v>>2]|0)+(N*12|0)|0;I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;while(1){P=f[k>>2]|0;c:do if((f[r>>2]|0)!=(P|0)){Q=0;R=P;do{S=R;T=f[S+(Q*20|0)>>2]|0;U=S+(Q*20|0)+12|0;V=S+(Q*20|0)+16|0;X=(f[M>>2]|0)+(f[S+(Q*20|0)+4>>2]<<2)|0;S=f[U>>2]|0;if((S|0)==4)Y=X;else{if(f[V>>2]|0){_=f[s>>2]|0;$=0;aa=S;while(1){Bf(_|0,X+($<<2)|0,aa|0)|0;$=$+1|0;S=f[U>>2]|0;if($>>>0>=(f[V>>2]|0)>>>0)break;else{_=_+S|0;aa=S}}}Y=f[s>>2]|0}aa=f[A>>2]|0;if(!(b[T+84>>0]|0))ba=f[(f[T+68>>2]|0)+(aa<<2)>>2]|0;else ba=aa;if(ba>>>0>=(f[T+80>>2]|0)>>>0)break c;aa=f[T+40>>2]|0;Bf((f[f[T+64>>2]>>2]|0)+(W(ba,aa)|0)|0,Y|0,aa|0)|0;Q=Q+1|0;R=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-R|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;L=L+1|0;if((L|0)==(K|0)){O=19;break}}}else{if(K>>>0>=3){if((f[w>>2]|0)>>>0>(f[t>>2]|0)>>>0){D=0;break a}L=N+1|0;Df(H+(L*12|0)|0,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);P=(f[(f[m>>2]|0)+(L*12|0)>>2]|0)+(J<<2)|0;f[P>>2]=(f[P>>2]|0)+(1<<I+-1);P=(Z(K|0)|0)^31;if(!P)ca=0;else{R=0;Q=0;while(1){aa=Q<<1|(pi(a+16+(R<<4)|0)|0)&1;R=R+1|0;if((R|0)==(P|0)){ca=aa;break}else Q=aa}}Q=(K>>>1)-ca|0;P=K-Q|0;d:do if((Q|0)==(P|0)){da=Q;ea=Q}else{R=f[o>>2]|0;aa=f[E>>2]|0;do if((aa|0)!=(f[p>>2]|0)){_=(f[aa>>2]&1<<31-R|0)!=0;V=R+1|0;f[o>>2]=V;if((V|0)==32){f[E>>2]=aa+4;f[o>>2]=0;if(_){da=Q;ea=P;break d}else break}else if(_){da=Q;ea=P;break d}else break}while(0);da=P;ea=Q}while(0);Q=f[v>>2]|0;P=f[Q+(N*12|0)>>2]|0;aa=P+(J<<2)|0;f[aa>>2]=(f[aa>>2]|0)+1;Df(Q+(L*12|0)|0,P,f[Q+(N*12|0)+4>>2]|0);if(da|0){Q=f[q>>2]|0;P=f[y>>2]|0;aa=Q-P|0;R=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((aa|0)==0?0:((aa>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);fa=(f[B>>2]|0)+(f[z>>2]|0)|0;ga=f[q>>2]|0;ha=f[y>>2]|0}else{fa=R;ga=Q;ha=P}if((ga|0)==(ha|0))ia=0;else{P=(fa>>>0)/341|0;ia=(f[ha+(P<<2)>>2]|0)+((fa-(P*341|0)|0)*12|0)|0}f[ia>>2]=da;f[ia+4>>2]=J;f[ia+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!ea){O=19;break}P=f[q>>2]|0;Q=f[y>>2]|0;R=P-Q|0;aa=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(aa|0)){cc(g);ja=(f[B>>2]|0)+(f[z>>2]|0)|0;ka=f[q>>2]|0;la=f[y>>2]|0}else{ja=aa;ka=P;la=Q}if((ka|0)==(la|0))ma=0;else{Q=(ja>>>0)/341|0;ma=(f[la+(Q<<2)>>2]|0)+((ja-(Q*341|0)|0)*12|0)|0}f[ma>>2]=ea;f[ma+4>>2]=J;f[ma+8>>2]=L;Q=(f[z>>2]|0)+1|0;f[z>>2]=Q;na=Q;break}Q=f[x>>2]|0;f[Q>>2]=J;P=f[h>>2]|0;if(P>>>0>1){aa=1;R=P;_=J;while(1){_=(_|0)==(R+-1|0)?0:_+1|0;f[Q+(aa<<2)>>2]=_;aa=aa+1|0;V=f[h>>2]|0;if(aa>>>0>=V>>>0){oa=V;break}else R=V}}else oa=P;if(!K)O=19;else{R=0;aa=oa;while(1){if(aa|0){_=f[x>>2]|0;Q=f[n>>2]|0;L=f[G>>2]|0;V=0;do{$=_+(V<<2)|0;f[Q+(f[$>>2]<<2)>>2]=0;U=f[$>>2]|0;X=(f[a>>2]|0)-(f[L+(U<<2)>>2]|0)|0;do if(X|0){S=Q+(U<<2)|0;pa=f[j>>2]|0;qa=32-pa|0;if((X|0)>(qa|0)){ra=f[i>>2]|0;sa=ra+4|0;if((sa|0)==(f[l>>2]|0)){f[S>>2]=0;break}else{ta=f[ra>>2]<<pa;ra=X-qa|0;f[j>>2]=ra;f[i>>2]=sa;ua=32-ra|0;f[S>>2]=(f[sa>>2]|0)>>>ua|ta>>>(ua-qa|0);break}}qa=f[i>>2]|0;if((qa|0)==(f[l>>2]|0)){f[S>>2]=0;break}f[S>>2]=f[qa>>2]<<pa>>>(32-X|0);pa=(f[j>>2]|0)+X|0;f[j>>2]=pa;if((pa|0)!=32)break;f[i>>2]=qa+4;f[j>>2]=0}while(0);X=f[$>>2]|0;U=Q+(X<<2)|0;f[U>>2]=f[U>>2]|f[(f[M>>2]|0)+(X<<2)>>2];V=V+1|0}while(V>>>0<(f[h>>2]|0)>>>0)}V=f[k>>2]|0;e:do if((f[r>>2]|0)!=(V|0)){Q=0;L=V;do{_=L;X=f[_+(Q*20|0)>>2]|0;U=_+(Q*20|0)+12|0;qa=_+(Q*20|0)+16|0;pa=(f[n>>2]|0)+(f[_+(Q*20|0)+4>>2]<<2)|0;_=f[U>>2]|0;if((_|0)==4)va=pa;else{if(f[qa>>2]|0){S=f[s>>2]|0;ua=0;ta=_;while(1){Bf(S|0,pa+(ua<<2)|0,ta|0)|0;ua=ua+1|0;_=f[U>>2]|0;if(ua>>>0>=(f[qa>>2]|0)>>>0)break;else{S=S+_|0;ta=_}}}va=f[s>>2]|0}ta=f[A>>2]|0;if(!(b[X+84>>0]|0))wa=f[(f[X+68>>2]|0)+(ta<<2)>>2]|0;else wa=ta;if(wa>>>0>=(f[X+80>>2]|0)>>>0)break e;ta=f[X+40>>2]|0;Bf((f[f[X+64>>2]>>2]|0)+(W(wa,ta)|0)|0,va|0,ta|0)|0;Q=Q+1|0;L=f[k>>2]|0}while(Q>>>0<(((f[r>>2]|0)-L|0)/20|0)>>>0)}while(0);f[A>>2]=(f[A>>2]|0)+1;f[w>>2]=(f[w>>2]|0)+1;V=R+1|0;if((V|0)==(K|0)){O=19;break b}R=V;aa=f[h>>2]|0}}}while(0);if((O|0)==19){O=0;na=f[z>>2]|0}if(!na){D=1;break}else F=na}}while(0);na=f[y>>2]|0;h=f[B>>2]|0;va=(h>>>0)/341|0;wa=na+(va<<2)|0;a=f[q>>2]|0;oa=a;ma=na;if((a|0)!=(na|0)?(ea=(f[wa>>2]|0)+((h-(va*341|0)|0)*12|0)|0,va=(f[z>>2]|0)+h|0,h=(va>>>0)/341|0,ja=(f[na+(h<<2)>>2]|0)+((va-(h*341|0)|0)*12|0)|0,(ja|0)!=(ea|0)):0){h=wa;wa=ea;while(1){ea=wa+12|0;if((ea-(f[h>>2]|0)|0)==4092){va=h+4|0;xa=va;ya=f[va>>2]|0}else{xa=h;ya=ea}wa=ya;if((ja|0)==(wa|0))break;else h=xa}}f[z>>2]=0;z=oa-ma>>2;if(z>>>0>2){ma=na;do{Ko(f[ma>>2]|0);ma=(f[y>>2]|0)+4|0;f[y>>2]=ma;za=f[q>>2]|0;Aa=za-ma>>2}while(Aa>>>0>2);Ba=Aa;Ca=ma;Da=za}else{Ba=z;Ca=na;Da=a}switch(Ba|0){case 1:{Ea=170;O=105;break}case 2:{Ea=341;O=105;break}default:{}}if((O|0)==105)f[B>>2]=Ea;if((Ca|0)!=(Da|0)){Ea=Ca;do{Ko(f[Ea>>2]|0);Ea=Ea+4|0}while((Ea|0)!=(Da|0));Da=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Da|0))f[q>>2]=y+(~((y+-4-Da|0)>>>2)<<2)}Da=f[g>>2]|0;if(!Da){u=e;return D|0}Ko(Da);u=e;return D|0}function gb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0;e=u;u=u+32|0;g=e+8|0;h=e;i=a+12|0;j=f[i>>2]|0;f[g>>2]=0;k=g+4|0;f[k>>2]=0;l=g+8|0;f[l>>2]=0;do if(j)if(j>>>0>1073741823)$n(g);else{m=j<<2;n=wk(m)|0;f[g>>2]=n;o=n+(j<<2)|0;f[l>>2]=o;oh(n|0,0,m|0)|0;f[k>>2]=o;p=o;q=n;break}else{p=0;q=0}while(0);n=a+116|0;o=f[n>>2]|0;m=f[o>>2]|0;if(!m){r=o+8|0;s=o+4|0;t=q;v=p;w=j}else{j=o+4|0;f[j>>2]=m;Ko(m);m=o+8|0;f[m>>2]=0;f[j>>2]=0;f[o>>2]=0;r=m;s=j;t=f[g>>2]|0;v=f[k>>2]|0;w=f[i>>2]|0}f[o>>2]=t;f[s>>2]=v;f[r>>2]=f[l>>2];f[g>>2]=0;l=g+4|0;f[l>>2]=0;r=g+8|0;f[r>>2]=0;do if(w)if(w>>>0>1073741823)$n(g);else{v=w<<2;s=wk(v)|0;f[g>>2]=s;t=s+(w<<2)|0;f[r>>2]=t;oh(s|0,0,v|0)|0;f[l>>2]=t;x=t;y=s;break}else{x=0;y=0}while(0);w=a+128|0;s=f[w>>2]|0;t=f[s>>2]|0;if(!t){z=s+8|0;A=s+4|0;B=y;C=x}else{x=s+4|0;f[x>>2]=t;Ko(t);t=s+8|0;f[t>>2]=0;f[x>>2]=0;f[s>>2]=0;z=t;A=x;B=f[g>>2]|0;C=f[l>>2]|0}f[s>>2]=B;f[A>>2]=C;f[z>>2]=f[r>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;r=g+8|0;z=g+4|0;C=g+16|0;A=g+20|0;cc(g);B=f[z>>2]|0;s=(f[C>>2]|0)+(f[A>>2]|0)|0;if((f[r>>2]|0)==(B|0))D=0;else{l=(s>>>0)/341|0;D=(f[B+(l<<2)>>2]|0)+((s-(l*341|0)|0)*12|0)|0}f[D>>2]=c;f[D+4>>2]=0;f[D+8>>2]=0;D=(f[A>>2]|0)+1|0;f[A>>2]=D;a:do if(!D)E=1;else{l=d+16|0;s=d+20|0;B=d+28|0;x=a+8|0;t=d+12|0;y=a+104|0;v=a+4|0;o=a+92|0;k=a+48|0;j=a+44|0;m=a+36|0;p=a+16|0;q=a+88|0;F=a+76|0;G=a+84|0;H=D;while(1){I=f[C>>2]|0;J=H+-1|0;K=I+J|0;L=f[z>>2]|0;M=(K>>>0)/341|0;N=f[L+(M<<2)>>2]|0;O=K-(M*341|0)|0;M=f[N+(O*12|0)>>2]|0;K=f[N+(O*12|0)+4>>2]|0;P=f[N+(O*12|0)+8>>2]|0;f[A>>2]=J;J=f[r>>2]|0;O=J-L|0;if((1-H-I+((O|0)==0?0:((O>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[J+-4>>2]|0);f[r>>2]=(f[r>>2]|0)+-4}J=f[n>>2]|0;O=J+(P*12|0)|0;I=(f[w>>2]|0)+(P*12|0)|0;if(M>>>0>c>>>0){E=0;break a}L=Pk(a,M,I,K)|0;if(L>>>0>=(f[i>>2]|0)>>>0){E=0;break a}K=(f[a>>2]|0)-(f[(f[I>>2]|0)+(L<<2)>>2]|0)|0;b:do if(!K){if(M|0){N=0;do{Q=f[l>>2]|0;c:do if((f[s>>2]|0)!=(Q|0)){R=0;S=Q;do{T=S;U=f[T+(R*20|0)>>2]|0;V=T+(R*20|0)+12|0;X=T+(R*20|0)+16|0;Y=(f[O>>2]|0)+(f[T+(R*20|0)+4>>2]<<2)|0;T=f[V>>2]|0;if((T|0)==4)_=Y;else{if(f[X>>2]|0){$=f[t>>2]|0;aa=0;ba=T;while(1){Bf($|0,Y+(aa<<2)|0,ba|0)|0;aa=aa+1|0;T=f[V>>2]|0;if(aa>>>0>=(f[X>>2]|0)>>>0)break;else{$=$+T|0;ba=T}}}_=f[t>>2]|0}ba=f[B>>2]|0;if(!(b[U+84>>0]|0))ca=f[(f[U+68>>2]|0)+(ba<<2)>>2]|0;else ca=ba;if(ca>>>0>=(f[U+80>>2]|0)>>>0)break c;ba=f[U+40>>2]|0;Bf((f[f[U+64>>2]>>2]|0)+(W(ca,ba)|0)|0,_|0,ba|0)|0;R=R+1|0;S=f[l>>2]|0}while(R>>>0<(((f[s>>2]|0)-S|0)/20|0)>>>0)}while(0);f[B>>2]=(f[B>>2]|0)+1;f[x>>2]=(f[x>>2]|0)+1;N=N+1|0}while((N|0)!=(M|0))}}else{if(M>>>0>=3){if((f[x>>2]|0)>>>0>(f[v>>2]|0)>>>0){E=0;break a}N=P+1|0;Q=f[n>>2]|0;S=Q+(N*12|0)|0;if((S|0)==(O|0))da=Q;else{Df(S,f[O>>2]|0,f[J+(P*12|0)+4>>2]|0);da=f[n>>2]|0}S=(f[da+(N*12|0)>>2]|0)+(L<<2)|0;f[S>>2]=(f[S>>2]|0)+(1<<K+-1);S=(Z(M|0)|0)^31;f[h>>2]=0;ph(p,S,h);S=(M>>>1)-(f[h>>2]|0)|0;Q=M-S|0;d:do if((S|0)==(Q|0)){ea=S;fa=S}else{R=f[q>>2]|0;ba=f[G>>2]|0;do if((ba|0)!=(f[F>>2]|0)){$=(f[ba>>2]&1<<31-R|0)!=0;X=R+1|0;f[q>>2]=X;if((X|0)==32){f[G>>2]=ba+4;f[q>>2]=0;if($){ea=S;fa=Q;break d}else break}else if($){ea=S;fa=Q;break d}else break}while(0);ea=Q;fa=S}while(0);S=f[w>>2]|0;Q=f[S+(P*12|0)>>2]|0;ba=Q+(L<<2)|0;f[ba>>2]=(f[ba>>2]|0)+1;Df(S+(N*12|0)|0,Q,f[S+(P*12|0)+4>>2]|0);if(ea|0){S=f[r>>2]|0;Q=f[z>>2]|0;ba=S-Q|0;R=(f[A>>2]|0)+(f[C>>2]|0)|0;if((((ba|0)==0?0:((ba>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);ga=(f[C>>2]|0)+(f[A>>2]|0)|0;ha=f[r>>2]|0;ia=f[z>>2]|0}else{ga=R;ha=S;ia=Q}if((ha|0)==(ia|0))ja=0;else{Q=(ga>>>0)/341|0;ja=(f[ia+(Q<<2)>>2]|0)+((ga-(Q*341|0)|0)*12|0)|0}f[ja>>2]=ea;f[ja+4>>2]=L;f[ja+8>>2]=P;f[A>>2]=(f[A>>2]|0)+1}if(fa|0){Q=f[r>>2]|0;S=f[z>>2]|0;R=Q-S|0;ba=(f[A>>2]|0)+(f[C>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(ba|0)){cc(g);ka=(f[C>>2]|0)+(f[A>>2]|0)|0;la=f[r>>2]|0;ma=f[z>>2]|0}else{ka=ba;la=Q;ma=S}if((la|0)==(ma|0))na=0;else{S=(ka>>>0)/341|0;na=(f[ma+(S<<2)>>2]|0)+((ka-(S*341|0)|0)*12|0)|0}f[na>>2]=fa;f[na+4>>2]=L;f[na+8>>2]=N;f[A>>2]=(f[A>>2]|0)+1}break}S=f[y>>2]|0;f[S>>2]=L;Q=f[i>>2]|0;if(Q>>>0>1){ba=1;R=Q;$=L;while(1){$=($|0)==(R+-1|0)?0:$+1|0;f[S+(ba<<2)>>2]=$;ba=ba+1|0;X=f[i>>2]|0;if(ba>>>0>=X>>>0){oa=X;break}else R=X}}else oa=Q;if(M|0){R=0;ba=oa;while(1){if(ba|0){$=f[y>>2]|0;S=f[o>>2]|0;N=f[I>>2]|0;X=0;do{aa=$+(X<<2)|0;f[S+(f[aa>>2]<<2)>>2]=0;V=f[aa>>2]|0;Y=(f[a>>2]|0)-(f[N+(V<<2)>>2]|0)|0;do if(Y|0){T=S+(V<<2)|0;pa=f[k>>2]|0;qa=32-pa|0;if((Y|0)>(qa|0)){ra=f[j>>2]|0;sa=ra+4|0;if((sa|0)==(f[m>>2]|0)){f[T>>2]=0;break}else{ta=f[ra>>2]<<pa;ra=Y-qa|0;f[k>>2]=ra;f[j>>2]=sa;ua=32-ra|0;f[T>>2]=(f[sa>>2]|0)>>>ua|ta>>>(ua-qa|0);break}}qa=f[j>>2]|0;if((qa|0)==(f[m>>2]|0)){f[T>>2]=0;break}f[T>>2]=f[qa>>2]<<pa>>>(32-Y|0);pa=(f[k>>2]|0)+Y|0;f[k>>2]=pa;if((pa|0)!=32)break;f[j>>2]=qa+4;f[k>>2]=0}while(0);Y=f[aa>>2]|0;V=S+(Y<<2)|0;f[V>>2]=f[V>>2]|f[(f[O>>2]|0)+(Y<<2)>>2];X=X+1|0}while(X>>>0<(f[i>>2]|0)>>>0)}X=f[l>>2]|0;e:do if((f[s>>2]|0)!=(X|0)){S=0;N=X;do{$=N;Y=f[$+(S*20|0)>>2]|0;V=$+(S*20|0)+12|0;qa=$+(S*20|0)+16|0;pa=(f[o>>2]|0)+(f[$+(S*20|0)+4>>2]<<2)|0;$=f[V>>2]|0;if(($|0)==4)va=pa;else{if(f[qa>>2]|0){T=f[t>>2]|0;ua=0;ta=$;while(1){Bf(T|0,pa+(ua<<2)|0,ta|0)|0;ua=ua+1|0;$=f[V>>2]|0;if(ua>>>0>=(f[qa>>2]|0)>>>0)break;else{T=T+$|0;ta=$}}}va=f[t>>2]|0}ta=f[B>>2]|0;if(!(b[Y+84>>0]|0))wa=f[(f[Y+68>>2]|0)+(ta<<2)>>2]|0;else wa=ta;if(wa>>>0>=(f[Y+80>>2]|0)>>>0)break e;ta=f[Y+40>>2]|0;Bf((f[f[Y+64>>2]>>2]|0)+(W(wa,ta)|0)|0,va|0,ta|0)|0;S=S+1|0;N=f[l>>2]|0}while(S>>>0<(((f[s>>2]|0)-N|0)/20|0)>>>0)}while(0);f[B>>2]=(f[B>>2]|0)+1;f[x>>2]=(f[x>>2]|0)+1;X=R+1|0;if((X|0)==(M|0))break b;R=X;ba=f[i>>2]|0}}}while(0);H=f[A>>2]|0;if(!H){E=1;break}}}while(0);i=f[z>>2]|0;va=f[C>>2]|0;wa=(va>>>0)/341|0;a=i+(wa<<2)|0;oa=f[r>>2]|0;na=oa;fa=i;if((oa|0)!=(i|0)?(ka=(f[a>>2]|0)+((va-(wa*341|0)|0)*12|0)|0,wa=(f[A>>2]|0)+va|0,va=(wa>>>0)/341|0,ma=(f[i+(va<<2)>>2]|0)+((wa-(va*341|0)|0)*12|0)|0,(ma|0)!=(ka|0)):0){va=a;a=ka;while(1){ka=a+12|0;if((ka-(f[va>>2]|0)|0)==4092){wa=va+4|0;xa=wa;ya=f[wa>>2]|0}else{xa=va;ya=ka}a=ya;if((ma|0)==(a|0))break;else va=xa}}f[A>>2]=0;A=na-fa>>2;if(A>>>0>2){fa=i;do{Ko(f[fa>>2]|0);fa=(f[z>>2]|0)+4|0;f[z>>2]=fa;za=f[r>>2]|0;Aa=za-fa>>2}while(Aa>>>0>2);Ba=Aa;Ca=fa;Da=za}else{Ba=A;Ca=i;Da=oa}switch(Ba|0){case 1:{Ea=170;Fa=104;break}case 2:{Ea=341;Fa=104;break}default:{}}if((Fa|0)==104)f[C>>2]=Ea;if((Ca|0)!=(Da|0)){Ea=Ca;do{Ko(f[Ea>>2]|0);Ea=Ea+4|0}while((Ea|0)!=(Da|0));Da=f[z>>2]|0;z=f[r>>2]|0;if((z|0)!=(Da|0))f[r>>2]=z+(~((z+-4-Da|0)>>>2)<<2)}Da=f[g>>2]|0;if(!Da){u=e;return E|0}Ko(Da);u=e;return E|0}function hb(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0;e=u;u=u+32|0;g=e+8|0;h=e;i=a+12|0;j=f[i>>2]|0;f[g>>2]=0;k=g+4|0;f[k>>2]=0;l=g+8|0;f[l>>2]=0;do if(j)if(j>>>0>1073741823)$n(g);else{m=j<<2;n=wk(m)|0;f[g>>2]=n;o=n+(j<<2)|0;f[l>>2]=o;oh(n|0,0,m|0)|0;f[k>>2]=o;p=o;q=n;break}else{p=0;q=0}while(0);n=a+116|0;o=f[n>>2]|0;m=f[o>>2]|0;if(!m){r=o+8|0;s=o+4|0;t=q;v=p;w=j}else{j=o+4|0;f[j>>2]=m;Ko(m);m=o+8|0;f[m>>2]=0;f[j>>2]=0;f[o>>2]=0;r=m;s=j;t=f[g>>2]|0;v=f[k>>2]|0;w=f[i>>2]|0}f[o>>2]=t;f[s>>2]=v;f[r>>2]=f[l>>2];f[g>>2]=0;l=g+4|0;f[l>>2]=0;r=g+8|0;f[r>>2]=0;do if(w)if(w>>>0>1073741823)$n(g);else{v=w<<2;s=wk(v)|0;f[g>>2]=s;t=s+(w<<2)|0;f[r>>2]=t;oh(s|0,0,v|0)|0;f[l>>2]=t;x=t;y=s;break}else{x=0;y=0}while(0);w=a+128|0;s=f[w>>2]|0;t=f[s>>2]|0;if(!t){z=s+8|0;A=s+4|0;B=y;C=x}else{x=s+4|0;f[x>>2]=t;Ko(t);t=s+8|0;f[t>>2]=0;f[x>>2]=0;f[s>>2]=0;z=t;A=x;B=f[g>>2]|0;C=f[l>>2]|0}f[s>>2]=B;f[A>>2]=C;f[z>>2]=f[r>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;r=g+8|0;z=g+4|0;C=g+16|0;A=g+20|0;cc(g);B=f[z>>2]|0;s=(f[C>>2]|0)+(f[A>>2]|0)|0;if((f[r>>2]|0)==(B|0))D=0;else{l=(s>>>0)/341|0;D=(f[B+(l<<2)>>2]|0)+((s-(l*341|0)|0)*12|0)|0}f[D>>2]=c;f[D+4>>2]=0;f[D+8>>2]=0;D=(f[A>>2]|0)+1|0;f[A>>2]=D;a:do if(!D)E=1;else{l=d+16|0;s=d+20|0;B=d+28|0;x=a+8|0;t=d+12|0;y=a+104|0;v=a+4|0;o=a+92|0;k=a+48|0;j=a+44|0;m=a+36|0;p=a+16|0;q=a+88|0;F=a+76|0;G=a+84|0;H=D;while(1){I=f[C>>2]|0;J=H+-1|0;K=I+J|0;L=f[z>>2]|0;M=(K>>>0)/341|0;N=f[L+(M<<2)>>2]|0;O=K-(M*341|0)|0;M=f[N+(O*12|0)>>2]|0;K=f[N+(O*12|0)+4>>2]|0;P=f[N+(O*12|0)+8>>2]|0;f[A>>2]=J;J=f[r>>2]|0;O=J-L|0;if((1-H-I+((O|0)==0?0:((O>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[J+-4>>2]|0);f[r>>2]=(f[r>>2]|0)+-4}J=f[n>>2]|0;O=J+(P*12|0)|0;if(M>>>0>c>>>0){E=0;break a}I=f[i>>2]|0;L=(I+-1|0)==(K|0)?0:K+1|0;if(L>>>0>=I>>>0){E=0;break a}I=(f[w>>2]|0)+(P*12|0)|0;K=(f[a>>2]|0)-(f[(f[I>>2]|0)+(L<<2)>>2]|0)|0;b:do if(!K){if(M|0){N=0;do{Q=f[l>>2]|0;c:do if((f[s>>2]|0)!=(Q|0)){R=0;S=Q;do{T=S;U=f[T+(R*20|0)>>2]|0;V=T+(R*20|0)+12|0;X=T+(R*20|0)+16|0;Y=(f[O>>2]|0)+(f[T+(R*20|0)+4>>2]<<2)|0;T=f[V>>2]|0;if((T|0)==4)_=Y;else{if(f[X>>2]|0){$=f[t>>2]|0;aa=0;ba=T;while(1){Bf($|0,Y+(aa<<2)|0,ba|0)|0;aa=aa+1|0;T=f[V>>2]|0;if(aa>>>0>=(f[X>>2]|0)>>>0)break;else{$=$+T|0;ba=T}}}_=f[t>>2]|0}ba=f[B>>2]|0;if(!(b[U+84>>0]|0))ca=f[(f[U+68>>2]|0)+(ba<<2)>>2]|0;else ca=ba;if(ca>>>0>=(f[U+80>>2]|0)>>>0)break c;ba=f[U+40>>2]|0;Bf((f[f[U+64>>2]>>2]|0)+(W(ca,ba)|0)|0,_|0,ba|0)|0;R=R+1|0;S=f[l>>2]|0}while(R>>>0<(((f[s>>2]|0)-S|0)/20|0)>>>0)}while(0);f[B>>2]=(f[B>>2]|0)+1;f[x>>2]=(f[x>>2]|0)+1;N=N+1|0}while((N|0)!=(M|0))}}else{if(M>>>0>=3){if((f[x>>2]|0)>>>0>(f[v>>2]|0)>>>0){E=0;break a}N=P+1|0;Df(J+(N*12|0)|0,f[O>>2]|0,f[J+(P*12|0)+4>>2]|0);Q=(f[(f[n>>2]|0)+(N*12|0)>>2]|0)+(L<<2)|0;f[Q>>2]=(f[Q>>2]|0)+(1<<K+-1);Q=(Z(M|0)|0)^31;f[h>>2]=0;ph(p,Q,h);Q=(M>>>1)-(f[h>>2]|0)|0;S=M-Q|0;d:do if((Q|0)==(S|0)){da=Q;ea=Q}else{R=f[q>>2]|0;ba=f[G>>2]|0;do if((ba|0)!=(f[F>>2]|0)){$=(f[ba>>2]&1<<31-R|0)!=0;X=R+1|0;f[q>>2]=X;if((X|0)==32){f[G>>2]=ba+4;f[q>>2]=0;if($){da=Q;ea=S;break d}else break}else if($){da=Q;ea=S;break d}else break}while(0);da=S;ea=Q}while(0);Q=f[w>>2]|0;S=f[Q+(P*12|0)>>2]|0;ba=S+(L<<2)|0;f[ba>>2]=(f[ba>>2]|0)+1;Df(Q+(N*12|0)|0,S,f[Q+(P*12|0)+4>>2]|0);if(da|0){Q=f[r>>2]|0;S=f[z>>2]|0;ba=Q-S|0;R=(f[A>>2]|0)+(f[C>>2]|0)|0;if((((ba|0)==0?0:((ba>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);fa=(f[C>>2]|0)+(f[A>>2]|0)|0;ga=f[r>>2]|0;ha=f[z>>2]|0}else{fa=R;ga=Q;ha=S}if((ga|0)==(ha|0))ia=0;else{S=(fa>>>0)/341|0;ia=(f[ha+(S<<2)>>2]|0)+((fa-(S*341|0)|0)*12|0)|0}f[ia>>2]=da;f[ia+4>>2]=L;f[ia+8>>2]=P;f[A>>2]=(f[A>>2]|0)+1}if(ea|0){S=f[r>>2]|0;Q=f[z>>2]|0;R=S-Q|0;ba=(f[A>>2]|0)+(f[C>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(ba|0)){cc(g);ja=(f[C>>2]|0)+(f[A>>2]|0)|0;ka=f[r>>2]|0;la=f[z>>2]|0}else{ja=ba;ka=S;la=Q}if((ka|0)==(la|0))ma=0;else{Q=(ja>>>0)/341|0;ma=(f[la+(Q<<2)>>2]|0)+((ja-(Q*341|0)|0)*12|0)|0}f[ma>>2]=ea;f[ma+4>>2]=L;f[ma+8>>2]=N;f[A>>2]=(f[A>>2]|0)+1}break}Q=f[y>>2]|0;f[Q>>2]=L;S=f[i>>2]|0;if(S>>>0>1){ba=1;R=S;$=L;while(1){$=($|0)==(R+-1|0)?0:$+1|0;f[Q+(ba<<2)>>2]=$;ba=ba+1|0;X=f[i>>2]|0;if(ba>>>0>=X>>>0){na=X;break}else R=X}}else na=S;if(M|0){R=0;ba=na;while(1){if(ba|0){$=f[y>>2]|0;Q=f[o>>2]|0;N=f[I>>2]|0;X=0;do{aa=$+(X<<2)|0;f[Q+(f[aa>>2]<<2)>>2]=0;V=f[aa>>2]|0;Y=(f[a>>2]|0)-(f[N+(V<<2)>>2]|0)|0;do if(Y|0){T=Q+(V<<2)|0;oa=f[k>>2]|0;pa=32-oa|0;if((Y|0)>(pa|0)){qa=f[j>>2]|0;ra=qa+4|0;if((ra|0)==(f[m>>2]|0)){f[T>>2]=0;break}else{sa=f[qa>>2]<<oa;qa=Y-pa|0;f[k>>2]=qa;f[j>>2]=ra;ta=32-qa|0;f[T>>2]=(f[ra>>2]|0)>>>ta|sa>>>(ta-pa|0);break}}pa=f[j>>2]|0;if((pa|0)==(f[m>>2]|0)){f[T>>2]=0;break}f[T>>2]=f[pa>>2]<<oa>>>(32-Y|0);oa=(f[k>>2]|0)+Y|0;f[k>>2]=oa;if((oa|0)!=32)break;f[j>>2]=pa+4;f[k>>2]=0}while(0);Y=f[aa>>2]|0;V=Q+(Y<<2)|0;f[V>>2]=f[V>>2]|f[(f[O>>2]|0)+(Y<<2)>>2];X=X+1|0}while(X>>>0<(f[i>>2]|0)>>>0)}X=f[l>>2]|0;e:do if((f[s>>2]|0)!=(X|0)){Q=0;N=X;do{$=N;Y=f[$+(Q*20|0)>>2]|0;V=$+(Q*20|0)+12|0;pa=$+(Q*20|0)+16|0;oa=(f[o>>2]|0)+(f[$+(Q*20|0)+4>>2]<<2)|0;$=f[V>>2]|0;if(($|0)==4)ua=oa;else{if(f[pa>>2]|0){T=f[t>>2]|0;ta=0;sa=$;while(1){Bf(T|0,oa+(ta<<2)|0,sa|0)|0;ta=ta+1|0;$=f[V>>2]|0;if(ta>>>0>=(f[pa>>2]|0)>>>0)break;else{T=T+$|0;sa=$}}}ua=f[t>>2]|0}sa=f[B>>2]|0;if(!(b[Y+84>>0]|0))va=f[(f[Y+68>>2]|0)+(sa<<2)>>2]|0;else va=sa;if(va>>>0>=(f[Y+80>>2]|0)>>>0)break e;sa=f[Y+40>>2]|0;Bf((f[f[Y+64>>2]>>2]|0)+(W(va,sa)|0)|0,ua|0,sa|0)|0;Q=Q+1|0;N=f[l>>2]|0}while(Q>>>0<(((f[s>>2]|0)-N|0)/20|0)>>>0)}while(0);f[B>>2]=(f[B>>2]|0)+1;f[x>>2]=(f[x>>2]|0)+1;X=R+1|0;if((X|0)==(M|0))break b;R=X;ba=f[i>>2]|0}}}while(0);H=f[A>>2]|0;if(!H){E=1;break}}}while(0);i=f[z>>2]|0;ua=f[C>>2]|0;va=(ua>>>0)/341|0;a=i+(va<<2)|0;na=f[r>>2]|0;ma=na;ea=i;if((na|0)!=(i|0)?(ja=(f[a>>2]|0)+((ua-(va*341|0)|0)*12|0)|0,va=(f[A>>2]|0)+ua|0,ua=(va>>>0)/341|0,la=(f[i+(ua<<2)>>2]|0)+((va-(ua*341|0)|0)*12|0)|0,(la|0)!=(ja|0)):0){ua=a;a=ja;while(1){ja=a+12|0;if((ja-(f[ua>>2]|0)|0)==4092){va=ua+4|0;wa=va;xa=f[va>>2]|0}else{wa=ua;xa=ja}a=xa;if((la|0)==(a|0))break;else ua=wa}}f[A>>2]=0;A=ma-ea>>2;if(A>>>0>2){ea=i;do{Ko(f[ea>>2]|0);ea=(f[z>>2]|0)+4|0;f[z>>2]=ea;ya=f[r>>2]|0;za=ya-ea>>2}while(za>>>0>2);Aa=za;Ba=ea;Ca=ya}else{Aa=A;Ba=i;Ca=na}switch(Aa|0){case 1:{Da=170;Ea=102;break}case 2:{Da=341;Ea=102;break}default:{}}if((Ea|0)==102)f[C>>2]=Da;if((Ba|0)!=(Ca|0)){Da=Ba;do{Ko(f[Da>>2]|0);Da=Da+4|0}while((Da|0)!=(Ca|0));Ca=f[z>>2]|0;z=f[r>>2]|0;if((z|0)!=(Ca|0))f[r>>2]=z+(~((z+-4-Ca|0)>>>2)<<2)}Ca=f[g>>2]|0;if(!Ca){u=e;return E|0}Ko(Ca);u=e;return E|0}function ib(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+120|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+132|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+108|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+96|0;j=a+52|0;i=a+48|0;l=a+40|0;o=a+32|0;p=a+28|0;E=a+20|0;F=a+92|0;G=a+80|0;H=a+88|0;I=C;while(1){J=f[B>>2]|0;K=I+-1|0;L=J+K|0;M=f[y>>2]|0;N=(L>>>0)/341|0;O=f[M+(N<<2)>>2]|0;P=L-(N*341|0)|0;N=f[O+(P*12|0)>>2]|0;L=f[O+(P*12|0)+4>>2]|0;Q=f[O+(P*12|0)+8>>2]|0;f[z>>2]=K;K=f[q>>2]|0;P=K-M|0;if((1-I-J+((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[K+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}K=f[m>>2]|0;P=K+(Q*12|0)|0;J=(f[v>>2]|0)+(Q*12|0)|0;if(N>>>0>b>>>0){D=0;break a}M=Pk(a,N,J,L)|0;if(M>>>0>=(f[h>>2]|0)>>>0){D=0;break a}L=(f[a>>2]|0)-(f[(f[J>>2]|0)+(M<<2)>>2]|0)|0;b:do if(!L)if(!N)R=19;else{O=0;do{S=f[P>>2]|0;T=f[S>>2]|0;f[e>>2]=T;f[k>>2]=f[S+4>>2];f[r>>2]=f[S+8>>2];S=f[c>>2]|0;U=S+4|0;V=f[U>>2]|0;if(V>>>0<(f[S+8>>2]|0)>>>0){f[V>>2]=T;f[V+4>>2]=f[k>>2];f[V+8>>2]=f[r>>2];f[U>>2]=V+12}else If(S,e);f[A>>2]=(f[A>>2]|0)+1;O=O+1|0}while(O>>>0<N>>>0);R=19}else{if(N>>>0<3){O=f[w>>2]|0;f[O>>2]=M;S=f[h>>2]|0;if(S>>>0>1){V=1;U=S;T=M;while(1){T=(T|0)==(U+-1|0)?0:T+1|0;f[O+(V<<2)>>2]=T;V=V+1|0;W=f[h>>2]|0;if(V>>>0>=W>>>0){X=W;break}else U=W}}else X=S;if(!N){R=19;break}U=0;V=X;while(1){if(!V)Y=f[n>>2]|0;else{T=f[w>>2]|0;O=f[n>>2]|0;W=f[J>>2]|0;_=0;do{$=T+(_<<2)|0;f[O+(f[$>>2]<<2)>>2]=0;aa=f[$>>2]|0;ba=(f[a>>2]|0)-(f[W+(aa<<2)>>2]|0)|0;do if(ba|0){ca=O+(aa<<2)|0;da=f[j>>2]|0;ea=32-da|0;if((ba|0)>(ea|0)){fa=f[i>>2]|0;ga=fa+4|0;if((ga|0)==(f[l>>2]|0)){f[ca>>2]=0;break}else{ha=f[fa>>2]<<da;fa=ba-ea|0;f[j>>2]=fa;f[i>>2]=ga;ia=32-fa|0;f[ca>>2]=(f[ga>>2]|0)>>>ia|ha>>>(ia-ea|0);break}}ea=f[i>>2]|0;if((ea|0)==(f[l>>2]|0)){f[ca>>2]=0;break}f[ca>>2]=f[ea>>2]<<da>>>(32-ba|0);da=(f[j>>2]|0)+ba|0;f[j>>2]=da;if((da|0)!=32)break;f[i>>2]=ea+4;f[j>>2]=0}while(0);ba=f[$>>2]|0;aa=O+(ba<<2)|0;f[aa>>2]=f[aa>>2]|f[(f[P>>2]|0)+(ba<<2)>>2];_=_+1|0}while(_>>>0<(f[h>>2]|0)>>>0);Y=O}O=f[Y>>2]|0;f[e>>2]=O;f[x>>2]=f[Y+4>>2];f[t>>2]=f[Y+8>>2];_=f[c>>2]|0;W=_+4|0;T=f[W>>2]|0;if(T>>>0<(f[_+8>>2]|0)>>>0){f[T>>2]=O;f[T+4>>2]=f[x>>2];f[T+8>>2]=f[t>>2];f[W>>2]=T+12}else If(_,e);f[A>>2]=(f[A>>2]|0)+1;_=U+1|0;if(_>>>0>=N>>>0){R=19;break b}U=_;V=f[h>>2]|0}}if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}V=Q+1|0;U=f[m>>2]|0;S=U+(V*12|0)|0;if((S|0)==(P|0))ja=U;else{Df(S,f[P>>2]|0,f[K+(Q*12|0)+4>>2]|0);ja=f[m>>2]|0}S=(f[ja+(V*12|0)>>2]|0)+(M<<2)|0;f[S>>2]=(f[S>>2]|0)+(1<<L+-1);S=(Z(N|0)|0)^31;U=f[o>>2]|0;_=32-U|0;if((S|0)>(_|0)){T=f[p>>2]|0;W=T+4|0;if((W|0)==(f[E>>2]|0))ka=0;else{O=f[T>>2]<<U;T=S-_|0;f[o>>2]=T;f[p>>2]=W;ba=32-T|0;ka=(f[W>>2]|0)>>>ba|O>>>(ba-_|0)}}else{_=f[p>>2]|0;if((_|0)!=(f[E>>2]|0)){ba=f[_>>2]<<U>>>(32-S|0);O=U+S|0;f[o>>2]=O;if((O|0)==32){f[p>>2]=_+4;f[o>>2]=0;ka=ba}else ka=ba}else ka=0}ba=(N>>>1)-ka|0;_=N-ba|0;c:do if((ba|0)==(_|0)){la=ba;ma=ba}else{O=f[F>>2]|0;S=f[H>>2]|0;do if((S|0)!=(f[G>>2]|0)){U=(f[S>>2]&1<<31-O|0)!=0;W=O+1|0;f[F>>2]=W;if((W|0)==32){f[H>>2]=S+4;f[F>>2]=0;if(U){la=ba;ma=_;break c}else break}else if(U){la=ba;ma=_;break c}else break}while(0);la=_;ma=ba}while(0);ba=f[v>>2]|0;_=f[ba+(Q*12|0)>>2]|0;S=_+(M<<2)|0;f[S>>2]=(f[S>>2]|0)+1;Df(ba+(V*12|0)|0,_,f[ba+(Q*12|0)+4>>2]|0);if(la|0){ba=f[q>>2]|0;_=f[y>>2]|0;S=ba-_|0;O=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((S|0)==0?0:((S>>2)*341|0)+-1|0)|0)==(O|0)){cc(g);na=(f[B>>2]|0)+(f[z>>2]|0)|0;oa=f[q>>2]|0;pa=f[y>>2]|0}else{na=O;oa=ba;pa=_}if((oa|0)==(pa|0))qa=0;else{_=(na>>>0)/341|0;qa=(f[pa+(_<<2)>>2]|0)+((na-(_*341|0)|0)*12|0)|0}f[qa>>2]=la;f[qa+4>>2]=M;f[qa+8>>2]=Q;f[z>>2]=(f[z>>2]|0)+1}if(!ma)R=19;else{_=f[q>>2]|0;ba=f[y>>2]|0;O=_-ba|0;S=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((O|0)==0?0:((O>>2)*341|0)+-1|0)|0)==(S|0)){cc(g);ra=(f[B>>2]|0)+(f[z>>2]|0)|0;sa=f[q>>2]|0;ta=f[y>>2]|0}else{ra=S;sa=_;ta=ba}if((sa|0)==(ta|0))ua=0;else{ba=(ra>>>0)/341|0;ua=(f[ta+(ba<<2)>>2]|0)+((ra-(ba*341|0)|0)*12|0)|0}f[ua>>2]=ma;f[ua+4>>2]=M;f[ua+8>>2]=V;ba=(f[z>>2]|0)+1|0;f[z>>2]=ba;va=ba}}while(0);if((R|0)==19){R=0;va=f[z>>2]|0}if(!va){D=1;break}else I=va}}while(0);va=f[y>>2]|0;ua=f[B>>2]|0;ma=(ua>>>0)/341|0;ra=va+(ma<<2)|0;ta=f[q>>2]|0;sa=ta;qa=va;if((ta|0)!=(va|0)?(la=(f[ra>>2]|0)+((ua-(ma*341|0)|0)*12|0)|0,ma=(f[z>>2]|0)+ua|0,ua=(ma>>>0)/341|0,na=(f[va+(ua<<2)>>2]|0)+((ma-(ua*341|0)|0)*12|0)|0,(na|0)!=(la|0)):0){ua=ra;ra=la;while(1){la=ra+12|0;if((la-(f[ua>>2]|0)|0)==4092){ma=ua+4|0;wa=ma;xa=f[ma>>2]|0}else{wa=ua;xa=la}ra=xa;if((na|0)==(ra|0))break;else ua=wa}}f[z>>2]=0;z=sa-qa>>2;if(z>>>0>2){qa=va;do{Ko(f[qa>>2]|0);qa=(f[y>>2]|0)+4|0;f[y>>2]=qa;ya=f[q>>2]|0;za=ya-qa>>2}while(za>>>0>2);Aa=za;Ba=qa;Ca=ya}else{Aa=z;Ba=va;Ca=ta}switch(Aa|0){case 1:{Da=170;R=95;break}case 2:{Da=341;R=95;break}default:{}}if((R|0)==95)f[B>>2]=Da;if((Ba|0)!=(Ca|0)){Da=Ba;do{Ko(f[Da>>2]|0);Da=Da+4|0}while((Da|0)!=(Ca|0));Ca=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ca|0))f[q>>2]=y+(~((y+-4-Ca|0)>>>2)<<2)}Ca=f[g>>2]|0;if(!Ca){u=d;return D|0}Ko(Ca);u=d;return D|0}function jb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+120|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+132|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+108|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+96|0;j=a+52|0;i=a+48|0;l=a+40|0;o=a+32|0;p=a+28|0;E=a+20|0;F=a+92|0;G=a+80|0;H=a+88|0;I=C;while(1){J=f[B>>2]|0;K=I+-1|0;L=J+K|0;M=f[y>>2]|0;N=(L>>>0)/341|0;O=f[M+(N<<2)>>2]|0;P=L-(N*341|0)|0;N=f[O+(P*12|0)>>2]|0;L=f[O+(P*12|0)+4>>2]|0;Q=f[O+(P*12|0)+8>>2]|0;f[z>>2]=K;K=f[q>>2]|0;P=K-M|0;if((1-I-J+((P|0)==0?0:((P>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[K+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}K=f[m>>2]|0;P=K+(Q*12|0)|0;if(N>>>0>b>>>0){D=0;break a}J=f[h>>2]|0;M=(J+-1|0)==(L|0)?0:L+1|0;if(M>>>0>=J>>>0){D=0;break a}J=(f[v>>2]|0)+(Q*12|0)|0;L=(f[a>>2]|0)-(f[(f[J>>2]|0)+(M<<2)>>2]|0)|0;b:do if(!L)if(!N)R=19;else{O=0;do{S=f[P>>2]|0;T=f[S>>2]|0;f[e>>2]=T;f[k>>2]=f[S+4>>2];f[r>>2]=f[S+8>>2];S=f[c>>2]|0;U=S+4|0;V=f[U>>2]|0;if(V>>>0<(f[S+8>>2]|0)>>>0){f[V>>2]=T;f[V+4>>2]=f[k>>2];f[V+8>>2]=f[r>>2];f[U>>2]=V+12}else If(S,e);f[A>>2]=(f[A>>2]|0)+1;O=O+1|0}while(O>>>0<N>>>0);R=19}else{if(N>>>0<3){O=f[w>>2]|0;f[O>>2]=M;S=f[h>>2]|0;if(S>>>0>1){V=1;U=S;T=M;while(1){T=(T|0)==(U+-1|0)?0:T+1|0;f[O+(V<<2)>>2]=T;V=V+1|0;W=f[h>>2]|0;if(V>>>0>=W>>>0){X=W;break}else U=W}}else X=S;if(!N){R=19;break}U=0;V=X;while(1){if(!V)Y=f[n>>2]|0;else{T=f[w>>2]|0;O=f[n>>2]|0;W=f[J>>2]|0;_=0;do{$=T+(_<<2)|0;f[O+(f[$>>2]<<2)>>2]=0;aa=f[$>>2]|0;ba=(f[a>>2]|0)-(f[W+(aa<<2)>>2]|0)|0;do if(ba|0){ca=O+(aa<<2)|0;da=f[j>>2]|0;ea=32-da|0;if((ba|0)>(ea|0)){fa=f[i>>2]|0;ga=fa+4|0;if((ga|0)==(f[l>>2]|0)){f[ca>>2]=0;break}else{ha=f[fa>>2]<<da;fa=ba-ea|0;f[j>>2]=fa;f[i>>2]=ga;ia=32-fa|0;f[ca>>2]=(f[ga>>2]|0)>>>ia|ha>>>(ia-ea|0);break}}ea=f[i>>2]|0;if((ea|0)==(f[l>>2]|0)){f[ca>>2]=0;break}f[ca>>2]=f[ea>>2]<<da>>>(32-ba|0);da=(f[j>>2]|0)+ba|0;f[j>>2]=da;if((da|0)!=32)break;f[i>>2]=ea+4;f[j>>2]=0}while(0);ba=f[$>>2]|0;aa=O+(ba<<2)|0;f[aa>>2]=f[aa>>2]|f[(f[P>>2]|0)+(ba<<2)>>2];_=_+1|0}while(_>>>0<(f[h>>2]|0)>>>0);Y=O}O=f[Y>>2]|0;f[e>>2]=O;f[x>>2]=f[Y+4>>2];f[t>>2]=f[Y+8>>2];_=f[c>>2]|0;W=_+4|0;T=f[W>>2]|0;if(T>>>0<(f[_+8>>2]|0)>>>0){f[T>>2]=O;f[T+4>>2]=f[x>>2];f[T+8>>2]=f[t>>2];f[W>>2]=T+12}else If(_,e);f[A>>2]=(f[A>>2]|0)+1;_=U+1|0;if(_>>>0>=N>>>0){R=19;break b}U=_;V=f[h>>2]|0}}if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}V=Q+1|0;Df(K+(V*12|0)|0,f[P>>2]|0,f[K+(Q*12|0)+4>>2]|0);U=(f[(f[m>>2]|0)+(V*12|0)>>2]|0)+(M<<2)|0;f[U>>2]=(f[U>>2]|0)+(1<<L+-1);U=(Z(N|0)|0)^31;S=f[o>>2]|0;_=32-S|0;if((U|0)>(_|0)){T=f[p>>2]|0;W=T+4|0;if((W|0)==(f[E>>2]|0))ja=0;else{O=f[T>>2]<<S;T=U-_|0;f[o>>2]=T;f[p>>2]=W;ba=32-T|0;ja=(f[W>>2]|0)>>>ba|O>>>(ba-_|0)}}else{_=f[p>>2]|0;if((_|0)!=(f[E>>2]|0)){ba=f[_>>2]<<S>>>(32-U|0);O=S+U|0;f[o>>2]=O;if((O|0)==32){f[p>>2]=_+4;f[o>>2]=0;ja=ba}else ja=ba}else ja=0}ba=(N>>>1)-ja|0;_=N-ba|0;c:do if((ba|0)==(_|0)){ka=ba;la=ba}else{O=f[F>>2]|0;U=f[H>>2]|0;do if((U|0)!=(f[G>>2]|0)){S=(f[U>>2]&1<<31-O|0)!=0;W=O+1|0;f[F>>2]=W;if((W|0)==32){f[H>>2]=U+4;f[F>>2]=0;if(S){ka=ba;la=_;break c}else break}else if(S){ka=ba;la=_;break c}else break}while(0);ka=_;la=ba}while(0);ba=f[v>>2]|0;_=f[ba+(Q*12|0)>>2]|0;U=_+(M<<2)|0;f[U>>2]=(f[U>>2]|0)+1;Df(ba+(V*12|0)|0,_,f[ba+(Q*12|0)+4>>2]|0);if(ka|0){ba=f[q>>2]|0;_=f[y>>2]|0;U=ba-_|0;O=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((U|0)==0?0:((U>>2)*341|0)+-1|0)|0)==(O|0)){cc(g);ma=(f[B>>2]|0)+(f[z>>2]|0)|0;na=f[q>>2]|0;oa=f[y>>2]|0}else{ma=O;na=ba;oa=_}if((na|0)==(oa|0))pa=0;else{_=(ma>>>0)/341|0;pa=(f[oa+(_<<2)>>2]|0)+((ma-(_*341|0)|0)*12|0)|0}f[pa>>2]=ka;f[pa+4>>2]=M;f[pa+8>>2]=Q;f[z>>2]=(f[z>>2]|0)+1}if(!la)R=19;else{_=f[q>>2]|0;ba=f[y>>2]|0;O=_-ba|0;U=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((O|0)==0?0:((O>>2)*341|0)+-1|0)|0)==(U|0)){cc(g);qa=(f[B>>2]|0)+(f[z>>2]|0)|0;ra=f[q>>2]|0;sa=f[y>>2]|0}else{qa=U;ra=_;sa=ba}if((ra|0)==(sa|0))ta=0;else{ba=(qa>>>0)/341|0;ta=(f[sa+(ba<<2)>>2]|0)+((qa-(ba*341|0)|0)*12|0)|0}f[ta>>2]=la;f[ta+4>>2]=M;f[ta+8>>2]=V;ba=(f[z>>2]|0)+1|0;f[z>>2]=ba;ua=ba}}while(0);if((R|0)==19){R=0;ua=f[z>>2]|0}if(!ua){D=1;break}else I=ua}}while(0);ua=f[y>>2]|0;ta=f[B>>2]|0;la=(ta>>>0)/341|0;qa=ua+(la<<2)|0;sa=f[q>>2]|0;ra=sa;pa=ua;if((sa|0)!=(ua|0)?(ka=(f[qa>>2]|0)+((ta-(la*341|0)|0)*12|0)|0,la=(f[z>>2]|0)+ta|0,ta=(la>>>0)/341|0,ma=(f[ua+(ta<<2)>>2]|0)+((la-(ta*341|0)|0)*12|0)|0,(ma|0)!=(ka|0)):0){ta=qa;qa=ka;while(1){ka=qa+12|0;if((ka-(f[ta>>2]|0)|0)==4092){la=ta+4|0;va=la;wa=f[la>>2]|0}else{va=ta;wa=ka}qa=wa;if((ma|0)==(qa|0))break;else ta=va}}f[z>>2]=0;z=ra-pa>>2;if(z>>>0>2){pa=ua;do{Ko(f[pa>>2]|0);pa=(f[y>>2]|0)+4|0;f[y>>2]=pa;xa=f[q>>2]|0;ya=xa-pa>>2}while(ya>>>0>2);za=ya;Aa=pa;Ba=xa}else{za=z;Aa=ua;Ba=sa}switch(za|0){case 1:{Ca=170;R=93;break}case 2:{Ca=341;R=93;break}default:{}}if((R|0)==93)f[B>>2]=Ca;if((Aa|0)!=(Ba|0)){Ca=Aa;do{Ko(f[Ca>>2]|0);Ca=Ca+4|0}while((Ca|0)!=(Ba|0));Ba=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(Ba|0))f[q>>2]=y+(~((y+-4-Ba|0)>>>2)<<2)}Ba=f[g>>2]|0;if(!Ba){u=d;return D|0}Ko(Ba);u=d;return D|0}function kb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+616|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;G=(f[v>>2]|0)+(N*12|0)|0;if(K>>>0>b>>>0){D=0;break a}J=tg(a,K,G,I)|0;if(J>>>0>=(f[h>>2]|0)>>>0){D=0;break a}I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;do{P=f[M>>2]|0;Q=f[P>>2]|0;f[e>>2]=Q;f[k>>2]=f[P+4>>2];f[r>>2]=f[P+8>>2];P=f[c>>2]|0;R=P+4|0;S=f[R>>2]|0;if(S>>>0<(f[P+8>>2]|0)>>>0){f[S>>2]=Q;f[S+4>>2]=f[k>>2];f[S+8>>2]=f[r>>2];f[R>>2]=S+12}else If(P,e);f[A>>2]=(f[A>>2]|0)+1;L=L+1|0}while(L>>>0<K>>>0);O=19}else{if(K>>>0<3){L=f[w>>2]|0;f[L>>2]=J;P=f[h>>2]|0;if(P>>>0>1){S=1;R=P;Q=J;while(1){Q=(Q|0)==(R+-1|0)?0:Q+1|0;f[L+(S<<2)>>2]=Q;S=S+1|0;T=f[h>>2]|0;if(S>>>0>=T>>>0){U=T;break}else R=T}}else U=P;if(!K){O=19;break}R=0;S=U;while(1){if(!S)V=f[n>>2]|0;else{Q=f[w>>2]|0;L=f[n>>2]|0;T=f[G>>2]|0;W=0;do{X=Q+(W<<2)|0;f[L+(f[X>>2]<<2)>>2]=0;Y=f[X>>2]|0;_=(f[a>>2]|0)-(f[T+(Y<<2)>>2]|0)|0;do if(_|0){$=L+(Y<<2)|0;aa=f[j>>2]|0;ba=32-aa|0;if((_|0)>(ba|0)){ca=f[i>>2]|0;da=ca+4|0;if((da|0)==(f[l>>2]|0)){f[$>>2]=0;break}else{ea=f[ca>>2]<<aa;ca=_-ba|0;f[j>>2]=ca;f[i>>2]=da;fa=32-ca|0;f[$>>2]=(f[da>>2]|0)>>>fa|ea>>>(fa-ba|0);break}}ba=f[i>>2]|0;if((ba|0)==(f[l>>2]|0)){f[$>>2]=0;break}f[$>>2]=f[ba>>2]<<aa>>>(32-_|0);aa=(f[j>>2]|0)+_|0;f[j>>2]=aa;if((aa|0)!=32)break;f[i>>2]=ba+4;f[j>>2]=0}while(0);_=f[X>>2]|0;Y=L+(_<<2)|0;f[Y>>2]=f[Y>>2]|f[(f[M>>2]|0)+(_<<2)>>2];W=W+1|0}while(W>>>0<(f[h>>2]|0)>>>0);V=L}L=f[V>>2]|0;f[e>>2]=L;f[x>>2]=f[V+4>>2];f[t>>2]=f[V+8>>2];W=f[c>>2]|0;T=W+4|0;Q=f[T>>2]|0;if(Q>>>0<(f[W+8>>2]|0)>>>0){f[Q>>2]=L;f[Q+4>>2]=f[x>>2];f[Q+8>>2]=f[t>>2];f[T>>2]=Q+12}else If(W,e);f[A>>2]=(f[A>>2]|0)+1;W=R+1|0;if(W>>>0>=K>>>0){O=19;break b}R=W;S=f[h>>2]|0}}if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}S=N+1|0;R=f[m>>2]|0;P=R+(S*12|0)|0;if((P|0)==(M|0))ga=R;else{Df(P,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);ga=f[m>>2]|0}P=(f[ga+(S*12|0)>>2]|0)+(J<<2)|0;f[P>>2]=(f[P>>2]|0)+(1<<I+-1);P=(Z(K|0)|0)^31;if(!P)ha=0;else{R=0;W=0;while(1){Q=W<<1|(pi(a+16+(R<<4)|0)|0)&1;R=R+1|0;if((R|0)==(P|0)){ha=Q;break}else W=Q}}W=(K>>>1)-ha|0;P=K-W|0;c:do if((W|0)==(P|0)){ia=W;ja=W}else{R=f[o>>2]|0;Q=f[E>>2]|0;do if((Q|0)!=(f[p>>2]|0)){T=(f[Q>>2]&1<<31-R|0)!=0;L=R+1|0;f[o>>2]=L;if((L|0)==32){f[E>>2]=Q+4;f[o>>2]=0;if(T){ia=W;ja=P;break c}else break}else if(T){ia=W;ja=P;break c}else break}while(0);ia=P;ja=W}while(0);W=f[v>>2]|0;P=f[W+(N*12|0)>>2]|0;Q=P+(J<<2)|0;f[Q>>2]=(f[Q>>2]|0)+1;Df(W+(S*12|0)|0,P,f[W+(N*12|0)+4>>2]|0);if(ia|0){W=f[q>>2]|0;P=f[y>>2]|0;Q=W-P|0;R=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((Q|0)==0?0:((Q>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);ka=(f[B>>2]|0)+(f[z>>2]|0)|0;la=f[q>>2]|0;ma=f[y>>2]|0}else{ka=R;la=W;ma=P}if((la|0)==(ma|0))na=0;else{P=(ka>>>0)/341|0;na=(f[ma+(P<<2)>>2]|0)+((ka-(P*341|0)|0)*12|0)|0}f[na>>2]=ia;f[na+4>>2]=J;f[na+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!ja)O=19;else{P=f[q>>2]|0;W=f[y>>2]|0;R=P-W|0;Q=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(Q|0)){cc(g);oa=(f[B>>2]|0)+(f[z>>2]|0)|0;pa=f[q>>2]|0;qa=f[y>>2]|0}else{oa=Q;pa=P;qa=W}if((pa|0)==(qa|0))ra=0;else{W=(oa>>>0)/341|0;ra=(f[qa+(W<<2)>>2]|0)+((oa-(W*341|0)|0)*12|0)|0}f[ra>>2]=ja;f[ra+4>>2]=J;f[ra+8>>2]=S;W=(f[z>>2]|0)+1|0;f[z>>2]=W;sa=W}}while(0);if((O|0)==19){O=0;sa=f[z>>2]|0}if(!sa){D=1;break}else F=sa}}while(0);sa=f[y>>2]|0;ra=f[B>>2]|0;ja=(ra>>>0)/341|0;oa=sa+(ja<<2)|0;qa=f[q>>2]|0;pa=qa;na=sa;if((qa|0)!=(sa|0)?(ia=(f[oa>>2]|0)+((ra-(ja*341|0)|0)*12|0)|0,ja=(f[z>>2]|0)+ra|0,ra=(ja>>>0)/341|0,ka=(f[sa+(ra<<2)>>2]|0)+((ja-(ra*341|0)|0)*12|0)|0,(ka|0)!=(ia|0)):0){ra=oa;oa=ia;while(1){ia=oa+12|0;if((ia-(f[ra>>2]|0)|0)==4092){ja=ra+4|0;ta=ja;ua=f[ja>>2]|0}else{ta=ra;ua=ia}oa=ua;if((ka|0)==(oa|0))break;else ra=ta}}f[z>>2]=0;z=pa-na>>2;if(z>>>0>2){na=sa;do{Ko(f[na>>2]|0);na=(f[y>>2]|0)+4|0;f[y>>2]=na;va=f[q>>2]|0;wa=va-na>>2}while(wa>>>0>2);xa=wa;ya=na;za=va}else{xa=z;ya=sa;za=qa}switch(xa|0){case 1:{Aa=170;O=92;break}case 2:{Aa=341;O=92;break}default:{}}if((O|0)==92)f[B>>2]=Aa;if((ya|0)!=(za|0)){Aa=ya;do{Ko(f[Aa>>2]|0);Aa=Aa+4|0}while((Aa|0)!=(za|0));za=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(za|0))f[q>>2]=y+(~((y+-4-za|0)>>>2)<<2)}za=f[g>>2]|0;if(!za){u=d;return D|0}Ko(za);u=d;return D|0}function lb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+616|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;G=(f[v>>2]|0)+(N*12|0)|0;if(K>>>0>b>>>0){D=0;break a}J=Pk(a,K,G,I)|0;if(J>>>0>=(f[h>>2]|0)>>>0){D=0;break a}I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;do{P=f[M>>2]|0;Q=f[P>>2]|0;f[e>>2]=Q;f[k>>2]=f[P+4>>2];f[r>>2]=f[P+8>>2];P=f[c>>2]|0;R=P+4|0;S=f[R>>2]|0;if(S>>>0<(f[P+8>>2]|0)>>>0){f[S>>2]=Q;f[S+4>>2]=f[k>>2];f[S+8>>2]=f[r>>2];f[R>>2]=S+12}else If(P,e);f[A>>2]=(f[A>>2]|0)+1;L=L+1|0}while(L>>>0<K>>>0);O=19}else{if(K>>>0<3){L=f[w>>2]|0;f[L>>2]=J;P=f[h>>2]|0;if(P>>>0>1){S=1;R=P;Q=J;while(1){Q=(Q|0)==(R+-1|0)?0:Q+1|0;f[L+(S<<2)>>2]=Q;S=S+1|0;T=f[h>>2]|0;if(S>>>0>=T>>>0){U=T;break}else R=T}}else U=P;if(!K){O=19;break}R=0;S=U;while(1){if(!S)V=f[n>>2]|0;else{Q=f[w>>2]|0;L=f[n>>2]|0;T=f[G>>2]|0;W=0;do{X=Q+(W<<2)|0;f[L+(f[X>>2]<<2)>>2]=0;Y=f[X>>2]|0;_=(f[a>>2]|0)-(f[T+(Y<<2)>>2]|0)|0;do if(_|0){$=L+(Y<<2)|0;aa=f[j>>2]|0;ba=32-aa|0;if((_|0)>(ba|0)){ca=f[i>>2]|0;da=ca+4|0;if((da|0)==(f[l>>2]|0)){f[$>>2]=0;break}else{ea=f[ca>>2]<<aa;ca=_-ba|0;f[j>>2]=ca;f[i>>2]=da;fa=32-ca|0;f[$>>2]=(f[da>>2]|0)>>>fa|ea>>>(fa-ba|0);break}}ba=f[i>>2]|0;if((ba|0)==(f[l>>2]|0)){f[$>>2]=0;break}f[$>>2]=f[ba>>2]<<aa>>>(32-_|0);aa=(f[j>>2]|0)+_|0;f[j>>2]=aa;if((aa|0)!=32)break;f[i>>2]=ba+4;f[j>>2]=0}while(0);_=f[X>>2]|0;Y=L+(_<<2)|0;f[Y>>2]=f[Y>>2]|f[(f[M>>2]|0)+(_<<2)>>2];W=W+1|0}while(W>>>0<(f[h>>2]|0)>>>0);V=L}L=f[V>>2]|0;f[e>>2]=L;f[x>>2]=f[V+4>>2];f[t>>2]=f[V+8>>2];W=f[c>>2]|0;T=W+4|0;Q=f[T>>2]|0;if(Q>>>0<(f[W+8>>2]|0)>>>0){f[Q>>2]=L;f[Q+4>>2]=f[x>>2];f[Q+8>>2]=f[t>>2];f[T>>2]=Q+12}else If(W,e);f[A>>2]=(f[A>>2]|0)+1;W=R+1|0;if(W>>>0>=K>>>0){O=19;break b}R=W;S=f[h>>2]|0}}if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}S=N+1|0;R=f[m>>2]|0;P=R+(S*12|0)|0;if((P|0)==(M|0))ga=R;else{Df(P,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);ga=f[m>>2]|0}P=(f[ga+(S*12|0)>>2]|0)+(J<<2)|0;f[P>>2]=(f[P>>2]|0)+(1<<I+-1);P=(Z(K|0)|0)^31;if(!P)ha=0;else{R=0;W=0;while(1){Q=W<<1|(pi(a+16+(R<<4)|0)|0)&1;R=R+1|0;if((R|0)==(P|0)){ha=Q;break}else W=Q}}W=(K>>>1)-ha|0;P=K-W|0;c:do if((W|0)==(P|0)){ia=W;ja=W}else{R=f[o>>2]|0;Q=f[E>>2]|0;do if((Q|0)!=(f[p>>2]|0)){T=(f[Q>>2]&1<<31-R|0)!=0;L=R+1|0;f[o>>2]=L;if((L|0)==32){f[E>>2]=Q+4;f[o>>2]=0;if(T){ia=W;ja=P;break c}else break}else if(T){ia=W;ja=P;break c}else break}while(0);ia=P;ja=W}while(0);W=f[v>>2]|0;P=f[W+(N*12|0)>>2]|0;Q=P+(J<<2)|0;f[Q>>2]=(f[Q>>2]|0)+1;Df(W+(S*12|0)|0,P,f[W+(N*12|0)+4>>2]|0);if(ia|0){W=f[q>>2]|0;P=f[y>>2]|0;Q=W-P|0;R=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((Q|0)==0?0:((Q>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);ka=(f[B>>2]|0)+(f[z>>2]|0)|0;la=f[q>>2]|0;ma=f[y>>2]|0}else{ka=R;la=W;ma=P}if((la|0)==(ma|0))na=0;else{P=(ka>>>0)/341|0;na=(f[ma+(P<<2)>>2]|0)+((ka-(P*341|0)|0)*12|0)|0}f[na>>2]=ia;f[na+4>>2]=J;f[na+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!ja)O=19;else{P=f[q>>2]|0;W=f[y>>2]|0;R=P-W|0;Q=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(Q|0)){cc(g);oa=(f[B>>2]|0)+(f[z>>2]|0)|0;pa=f[q>>2]|0;qa=f[y>>2]|0}else{oa=Q;pa=P;qa=W}if((pa|0)==(qa|0))ra=0;else{W=(oa>>>0)/341|0;ra=(f[qa+(W<<2)>>2]|0)+((oa-(W*341|0)|0)*12|0)|0}f[ra>>2]=ja;f[ra+4>>2]=J;f[ra+8>>2]=S;W=(f[z>>2]|0)+1|0;f[z>>2]=W;sa=W}}while(0);if((O|0)==19){O=0;sa=f[z>>2]|0}if(!sa){D=1;break}else F=sa}}while(0);sa=f[y>>2]|0;ra=f[B>>2]|0;ja=(ra>>>0)/341|0;oa=sa+(ja<<2)|0;qa=f[q>>2]|0;pa=qa;na=sa;if((qa|0)!=(sa|0)?(ia=(f[oa>>2]|0)+((ra-(ja*341|0)|0)*12|0)|0,ja=(f[z>>2]|0)+ra|0,ra=(ja>>>0)/341|0,ka=(f[sa+(ra<<2)>>2]|0)+((ja-(ra*341|0)|0)*12|0)|0,(ka|0)!=(ia|0)):0){ra=oa;oa=ia;while(1){ia=oa+12|0;if((ia-(f[ra>>2]|0)|0)==4092){ja=ra+4|0;ta=ja;ua=f[ja>>2]|0}else{ta=ra;ua=ia}oa=ua;if((ka|0)==(oa|0))break;else ra=ta}}f[z>>2]=0;z=pa-na>>2;if(z>>>0>2){na=sa;do{Ko(f[na>>2]|0);na=(f[y>>2]|0)+4|0;f[y>>2]=na;va=f[q>>2]|0;wa=va-na>>2}while(wa>>>0>2);xa=wa;ya=na;za=va}else{xa=z;ya=sa;za=qa}switch(xa|0){case 1:{Aa=170;O=92;break}case 2:{Aa=341;O=92;break}default:{}}if((O|0)==92)f[B>>2]=Aa;if((ya|0)!=(za|0)){Aa=ya;do{Ko(f[Aa>>2]|0);Aa=Aa+4|0}while((Aa|0)!=(za|0));za=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(za|0))f[q>>2]=y+(~((y+-4-za|0)>>>2)<<2)}za=f[g>>2]|0;if(!za){u=d;return D|0}Ko(za);u=d;return D|0}function mb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+628|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+640|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+616|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+604|0;j=a+560|0;i=a+556|0;l=a+548|0;o=a+600|0;p=a+588|0;E=a+596|0;F=C;while(1){G=f[B>>2]|0;H=F+-1|0;I=G+H|0;J=f[y>>2]|0;K=(I>>>0)/341|0;L=f[J+(K<<2)>>2]|0;M=I-(K*341|0)|0;K=f[L+(M*12|0)>>2]|0;I=f[L+(M*12|0)+4>>2]|0;N=f[L+(M*12|0)+8>>2]|0;f[z>>2]=H;H=f[q>>2]|0;M=H-J|0;if((1-F-G+((M|0)==0?0:((M>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[H+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}H=f[m>>2]|0;M=H+(N*12|0)|0;if(K>>>0>b>>>0){D=0;break a}G=f[h>>2]|0;J=(G+-1|0)==(I|0)?0:I+1|0;if(J>>>0>=G>>>0){D=0;break a}G=(f[v>>2]|0)+(N*12|0)|0;I=(f[a>>2]|0)-(f[(f[G>>2]|0)+(J<<2)>>2]|0)|0;b:do if(!I)if(!K)O=19;else{L=0;do{P=f[M>>2]|0;Q=f[P>>2]|0;f[e>>2]=Q;f[k>>2]=f[P+4>>2];f[r>>2]=f[P+8>>2];P=f[c>>2]|0;R=P+4|0;S=f[R>>2]|0;if(S>>>0<(f[P+8>>2]|0)>>>0){f[S>>2]=Q;f[S+4>>2]=f[k>>2];f[S+8>>2]=f[r>>2];f[R>>2]=S+12}else If(P,e);f[A>>2]=(f[A>>2]|0)+1;L=L+1|0}while(L>>>0<K>>>0);O=19}else{if(K>>>0>=3){if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}L=N+1|0;Df(H+(L*12|0)|0,f[M>>2]|0,f[H+(N*12|0)+4>>2]|0);P=(f[(f[m>>2]|0)+(L*12|0)>>2]|0)+(J<<2)|0;f[P>>2]=(f[P>>2]|0)+(1<<I+-1);P=(Z(K|0)|0)^31;if(!P)T=0;else{S=0;R=0;while(1){Q=R<<1|(pi(a+16+(S<<4)|0)|0)&1;S=S+1|0;if((S|0)==(P|0)){T=Q;break}else R=Q}}R=(K>>>1)-T|0;P=K-R|0;c:do if((R|0)==(P|0)){U=R;V=R}else{S=f[o>>2]|0;Q=f[E>>2]|0;do if((Q|0)!=(f[p>>2]|0)){W=(f[Q>>2]&1<<31-S|0)!=0;X=S+1|0;f[o>>2]=X;if((X|0)==32){f[E>>2]=Q+4;f[o>>2]=0;if(W){U=R;V=P;break c}else break}else if(W){U=R;V=P;break c}else break}while(0);U=P;V=R}while(0);R=f[v>>2]|0;P=f[R+(N*12|0)>>2]|0;Q=P+(J<<2)|0;f[Q>>2]=(f[Q>>2]|0)+1;Df(R+(L*12|0)|0,P,f[R+(N*12|0)+4>>2]|0);if(U|0){R=f[q>>2]|0;P=f[y>>2]|0;Q=R-P|0;S=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((Q|0)==0?0:((Q>>2)*341|0)+-1|0)|0)==(S|0)){cc(g);Y=(f[B>>2]|0)+(f[z>>2]|0)|0;_=f[q>>2]|0;$=f[y>>2]|0}else{Y=S;_=R;$=P}if((_|0)==($|0))aa=0;else{P=(Y>>>0)/341|0;aa=(f[$+(P<<2)>>2]|0)+((Y-(P*341|0)|0)*12|0)|0}f[aa>>2]=U;f[aa+4>>2]=J;f[aa+8>>2]=N;f[z>>2]=(f[z>>2]|0)+1}if(!V){O=19;break}P=f[q>>2]|0;R=f[y>>2]|0;S=P-R|0;Q=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((S|0)==0?0:((S>>2)*341|0)+-1|0)|0)==(Q|0)){cc(g);ba=(f[B>>2]|0)+(f[z>>2]|0)|0;ca=f[q>>2]|0;da=f[y>>2]|0}else{ba=Q;ca=P;da=R}if((ca|0)==(da|0))ea=0;else{R=(ba>>>0)/341|0;ea=(f[da+(R<<2)>>2]|0)+((ba-(R*341|0)|0)*12|0)|0}f[ea>>2]=V;f[ea+4>>2]=J;f[ea+8>>2]=L;R=(f[z>>2]|0)+1|0;f[z>>2]=R;fa=R;break}R=f[w>>2]|0;f[R>>2]=J;P=f[h>>2]|0;if(P>>>0>1){Q=1;S=P;W=J;while(1){W=(W|0)==(S+-1|0)?0:W+1|0;f[R+(Q<<2)>>2]=W;Q=Q+1|0;X=f[h>>2]|0;if(Q>>>0>=X>>>0){ga=X;break}else S=X}}else ga=P;if(!K)O=19;else{S=0;Q=ga;while(1){if(!Q)ha=f[n>>2]|0;else{W=f[w>>2]|0;R=f[n>>2]|0;L=f[G>>2]|0;X=0;do{ia=W+(X<<2)|0;f[R+(f[ia>>2]<<2)>>2]=0;ja=f[ia>>2]|0;ka=(f[a>>2]|0)-(f[L+(ja<<2)>>2]|0)|0;do if(ka|0){la=R+(ja<<2)|0;ma=f[j>>2]|0;na=32-ma|0;if((ka|0)>(na|0)){oa=f[i>>2]|0;pa=oa+4|0;if((pa|0)==(f[l>>2]|0)){f[la>>2]=0;break}else{qa=f[oa>>2]<<ma;oa=ka-na|0;f[j>>2]=oa;f[i>>2]=pa;ra=32-oa|0;f[la>>2]=(f[pa>>2]|0)>>>ra|qa>>>(ra-na|0);break}}na=f[i>>2]|0;if((na|0)==(f[l>>2]|0)){f[la>>2]=0;break}f[la>>2]=f[na>>2]<<ma>>>(32-ka|0);ma=(f[j>>2]|0)+ka|0;f[j>>2]=ma;if((ma|0)!=32)break;f[i>>2]=na+4;f[j>>2]=0}while(0);ka=f[ia>>2]|0;ja=R+(ka<<2)|0;f[ja>>2]=f[ja>>2]|f[(f[M>>2]|0)+(ka<<2)>>2];X=X+1|0}while(X>>>0<(f[h>>2]|0)>>>0);ha=R}R=f[ha>>2]|0;f[e>>2]=R;f[x>>2]=f[ha+4>>2];f[t>>2]=f[ha+8>>2];X=f[c>>2]|0;L=X+4|0;W=f[L>>2]|0;if(W>>>0<(f[X+8>>2]|0)>>>0){f[W>>2]=R;f[W+4>>2]=f[x>>2];f[W+8>>2]=f[t>>2];f[L>>2]=W+12}else If(X,e);f[A>>2]=(f[A>>2]|0)+1;X=S+1|0;if(X>>>0>=K>>>0){O=19;break b}S=X;Q=f[h>>2]|0}}}while(0);if((O|0)==19){O=0;fa=f[z>>2]|0}if(!fa){D=1;break}else F=fa}}while(0);fa=f[y>>2]|0;h=f[B>>2]|0;e=(h>>>0)/341|0;c=fa+(e<<2)|0;ha=f[q>>2]|0;a=ha;ga=fa;if((ha|0)!=(fa|0)?(ea=(f[c>>2]|0)+((h-(e*341|0)|0)*12|0)|0,e=(f[z>>2]|0)+h|0,h=(e>>>0)/341|0,V=(f[fa+(h<<2)>>2]|0)+((e-(h*341|0)|0)*12|0)|0,(V|0)!=(ea|0)):0){h=c;c=ea;while(1){ea=c+12|0;if((ea-(f[h>>2]|0)|0)==4092){e=h+4|0;sa=e;ta=f[e>>2]|0}else{sa=h;ta=ea}c=ta;if((V|0)==(c|0))break;else h=sa}}f[z>>2]=0;z=a-ga>>2;if(z>>>0>2){ga=fa;do{Ko(f[ga>>2]|0);ga=(f[y>>2]|0)+4|0;f[y>>2]=ga;ua=f[q>>2]|0;va=ua-ga>>2}while(va>>>0>2);wa=va;xa=ga;ya=ua}else{wa=z;xa=fa;ya=ha}switch(wa|0){case 1:{za=170;O=90;break}case 2:{za=341;O=90;break}default:{}}if((O|0)==90)f[B>>2]=za;if((xa|0)!=(ya|0)){za=xa;do{Ko(f[za>>2]|0);za=za+4|0}while((za|0)!=(ya|0));ya=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(ya|0))f[q>>2]=y+(~((y+-4-ya|0)>>>2)<<2)}ya=f[g>>2]|0;if(!ya){u=d;return D|0}Ko(ya);u=d;return D|0}function nb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+116|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+128|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+104|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+92|0;j=a+48|0;i=a+44|0;l=a+36|0;o=a+16|0;p=a+88|0;E=a+76|0;F=a+84|0;G=C;while(1){H=f[B>>2]|0;I=G+-1|0;J=H+I|0;K=f[y>>2]|0;L=(J>>>0)/341|0;M=f[K+(L<<2)>>2]|0;N=J-(L*341|0)|0;L=f[M+(N*12|0)>>2]|0;J=f[M+(N*12|0)+4>>2]|0;O=f[M+(N*12|0)+8>>2]|0;f[z>>2]=I;I=f[q>>2]|0;N=I-K|0;if((1-G-H+((N|0)==0?0:((N>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[I+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}I=f[m>>2]|0;N=I+(O*12|0)|0;H=(f[v>>2]|0)+(O*12|0)|0;if(L>>>0>b>>>0){D=0;break a}K=Pk(a,L,H,J)|0;if(K>>>0>=(f[h>>2]|0)>>>0){D=0;break a}J=(f[a>>2]|0)-(f[(f[H>>2]|0)+(K<<2)>>2]|0)|0;b:do if(!J){if(L|0){M=0;do{P=f[N>>2]|0;Q=f[P>>2]|0;f[e>>2]=Q;f[k>>2]=f[P+4>>2];f[r>>2]=f[P+8>>2];P=f[c>>2]|0;R=P+4|0;S=f[R>>2]|0;if(S>>>0<(f[P+8>>2]|0)>>>0){f[S>>2]=Q;f[S+4>>2]=f[k>>2];f[S+8>>2]=f[r>>2];f[R>>2]=S+12}else If(P,e);f[A>>2]=(f[A>>2]|0)+1;M=M+1|0}while(M>>>0<L>>>0)}}else{if(L>>>0>=3){if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}M=O+1|0;P=f[m>>2]|0;S=P+(M*12|0)|0;if((S|0)==(N|0))T=P;else{Df(S,f[N>>2]|0,f[I+(O*12|0)+4>>2]|0);T=f[m>>2]|0}S=(f[T+(M*12|0)>>2]|0)+(K<<2)|0;f[S>>2]=(f[S>>2]|0)+(1<<J+-1);S=(Z(L|0)|0)^31;f[e>>2]=0;ph(o,S,e);S=(L>>>1)-(f[e>>2]|0)|0;P=L-S|0;c:do if((S|0)==(P|0)){U=S;V=S}else{R=f[p>>2]|0;Q=f[F>>2]|0;do if((Q|0)!=(f[E>>2]|0)){W=(f[Q>>2]&1<<31-R|0)!=0;X=R+1|0;f[p>>2]=X;if((X|0)==32){f[F>>2]=Q+4;f[p>>2]=0;if(W){U=S;V=P;break c}else break}else if(W){U=S;V=P;break c}else break}while(0);U=P;V=S}while(0);S=f[v>>2]|0;P=f[S+(O*12|0)>>2]|0;Q=P+(K<<2)|0;f[Q>>2]=(f[Q>>2]|0)+1;Df(S+(M*12|0)|0,P,f[S+(O*12|0)+4>>2]|0);if(U|0){S=f[q>>2]|0;P=f[y>>2]|0;Q=S-P|0;R=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((Q|0)==0?0:((Q>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);Y=(f[B>>2]|0)+(f[z>>2]|0)|0;_=f[q>>2]|0;$=f[y>>2]|0}else{Y=R;_=S;$=P}if((_|0)==($|0))aa=0;else{P=(Y>>>0)/341|0;aa=(f[$+(P<<2)>>2]|0)+((Y-(P*341|0)|0)*12|0)|0}f[aa>>2]=U;f[aa+4>>2]=K;f[aa+8>>2]=O;f[z>>2]=(f[z>>2]|0)+1}if(V|0){P=f[q>>2]|0;S=f[y>>2]|0;R=P-S|0;Q=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(Q|0)){cc(g);ba=(f[B>>2]|0)+(f[z>>2]|0)|0;ca=f[q>>2]|0;da=f[y>>2]|0}else{ba=Q;ca=P;da=S}if((ca|0)==(da|0))ea=0;else{S=(ba>>>0)/341|0;ea=(f[da+(S<<2)>>2]|0)+((ba-(S*341|0)|0)*12|0)|0}f[ea>>2]=V;f[ea+4>>2]=K;f[ea+8>>2]=M;f[z>>2]=(f[z>>2]|0)+1}break}S=f[w>>2]|0;f[S>>2]=K;P=f[h>>2]|0;if(P>>>0>1){Q=1;R=P;W=K;while(1){W=(W|0)==(R+-1|0)?0:W+1|0;f[S+(Q<<2)>>2]=W;Q=Q+1|0;X=f[h>>2]|0;if(Q>>>0>=X>>>0){fa=X;break}else R=X}}else fa=P;if(L|0){R=0;Q=fa;while(1){if(!Q)ga=f[n>>2]|0;else{W=f[w>>2]|0;S=f[n>>2]|0;M=f[H>>2]|0;X=0;do{ha=W+(X<<2)|0;f[S+(f[ha>>2]<<2)>>2]=0;ia=f[ha>>2]|0;ja=(f[a>>2]|0)-(f[M+(ia<<2)>>2]|0)|0;do if(ja|0){ka=S+(ia<<2)|0;la=f[j>>2]|0;ma=32-la|0;if((ja|0)>(ma|0)){na=f[i>>2]|0;oa=na+4|0;if((oa|0)==(f[l>>2]|0)){f[ka>>2]=0;break}else{pa=f[na>>2]<<la;na=ja-ma|0;f[j>>2]=na;f[i>>2]=oa;qa=32-na|0;f[ka>>2]=(f[oa>>2]|0)>>>qa|pa>>>(qa-ma|0);break}}ma=f[i>>2]|0;if((ma|0)==(f[l>>2]|0)){f[ka>>2]=0;break}f[ka>>2]=f[ma>>2]<<la>>>(32-ja|0);la=(f[j>>2]|0)+ja|0;f[j>>2]=la;if((la|0)!=32)break;f[i>>2]=ma+4;f[j>>2]=0}while(0);ja=f[ha>>2]|0;ia=S+(ja<<2)|0;f[ia>>2]=f[ia>>2]|f[(f[N>>2]|0)+(ja<<2)>>2];X=X+1|0}while(X>>>0<(f[h>>2]|0)>>>0);ga=S}S=f[ga>>2]|0;f[e>>2]=S;f[x>>2]=f[ga+4>>2];f[t>>2]=f[ga+8>>2];X=f[c>>2]|0;M=X+4|0;W=f[M>>2]|0;if(W>>>0<(f[X+8>>2]|0)>>>0){f[W>>2]=S;f[W+4>>2]=f[x>>2];f[W+8>>2]=f[t>>2];f[M>>2]=W+12}else If(X,e);f[A>>2]=(f[A>>2]|0)+1;X=R+1|0;if(X>>>0>=L>>>0)break b;R=X;Q=f[h>>2]|0}}}while(0);G=f[z>>2]|0;if(!G){D=1;break}}}while(0);h=f[y>>2]|0;e=f[B>>2]|0;c=(e>>>0)/341|0;ga=h+(c<<2)|0;a=f[q>>2]|0;fa=a;ea=h;if((a|0)!=(h|0)?(V=(f[ga>>2]|0)+((e-(c*341|0)|0)*12|0)|0,c=(f[z>>2]|0)+e|0,e=(c>>>0)/341|0,ba=(f[h+(e<<2)>>2]|0)+((c-(e*341|0)|0)*12|0)|0,(ba|0)!=(V|0)):0){e=ga;ga=V;while(1){V=ga+12|0;if((V-(f[e>>2]|0)|0)==4092){c=e+4|0;ra=c;sa=f[c>>2]|0}else{ra=e;sa=V}ga=sa;if((ba|0)==(ga|0))break;else e=ra}}f[z>>2]=0;z=fa-ea>>2;if(z>>>0>2){ea=h;do{Ko(f[ea>>2]|0);ea=(f[y>>2]|0)+4|0;f[y>>2]=ea;ta=f[q>>2]|0;ua=ta-ea>>2}while(ua>>>0>2);va=ua;wa=ea;xa=ta}else{va=z;wa=h;xa=a}switch(va|0){case 1:{ya=170;za=89;break}case 2:{ya=341;za=89;break}default:{}}if((za|0)==89)f[B>>2]=ya;if((wa|0)!=(xa|0)){ya=wa;do{Ko(f[ya>>2]|0);ya=ya+4|0}while((ya|0)!=(xa|0));xa=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(xa|0))f[q>>2]=y+(~((y+-4-xa|0)>>>2)<<2)}xa=f[g>>2]|0;if(!xa){u=d;return D|0}Ko(xa);u=d;return D|0}function ob(a,c,e,g){a=a|0;c=c|0;e=e|0;g=g|0;var i=0,k=0,l=0,m=0,o=0,q=0,r=0,s=Ia,t=0,u=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0;if(!g){i=0;return i|0}do switch(f[a+28>>2]|0){case 1:{k=a+24|0;l=b[k>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){m=f[f[a>>2]>>2]|0;o=a+40|0;q=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;r=vl(q|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=m+r|0;if(!(b[a+32>>0]|0)){r=o;m=0;while(1){s=_(b[r>>0]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}else{r=o;m=0;while(1){s=_(_(b[r>>0]|0)/_(127.0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[k>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){t=q;break}else r=r+1|0}}}else t=l;r=t<<24>>24;if(t<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(r<<2)|0,0,(e<<24>>24)-r<<2|0)|0;i=1;return i|0}case 2:{r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0){k=f[f[a>>2]>>2]|0;o=a+40|0;q=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;u=vl(q|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=k+u|0;if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=_(h[u>>0]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){v=q;break}else u=u+1|0}}else{u=o;k=0;while(1){s=_(_(h[u>>0]|0)/_(255.0));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){v=l;break}else u=u+1|0}}}else v=m;u=v<<24>>24;if(v<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 3:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=_(d[u>>1]|0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){w=q;break}else u=u+2|0}}else{u=o;l=0;while(1){s=_(_(d[u>>1]|0)/_(32767.0));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){w=m;break}else u=u+2|0}}else w=k;u=w<<24>>24;if(w<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 4:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){s=_(j[u>>1]|0);n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){x=q;break}else u=u+2|0}}else{u=o;m=0;while(1){s=_(_(j[u>>1]|0)/_(65535.0));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){x=k;break}else u=u+2|0}}else x=l;u=x<<24>>24;if(x<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 5:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){s=_(f[u>>2]|0);n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){y=q;break}else u=u+4|0}}else{u=o;k=0;while(1){s=_(_(f[u>>2]|0)*_(4.65661287e-10));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){y=l;break}else u=u+4|0}}else y=m;u=y<<24>>24;if(y<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 6:{u=a+48|0;k=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,k|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;k=b[r>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;l=0;while(1){s=_((f[u>>2]|0)>>>0);n[g+(l<<2)>>2]=s;l=l+1|0;q=b[r>>0]|0;if((l|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){z=q;break}else u=u+4|0}}else{u=o;l=0;while(1){s=_(_((f[u>>2]|0)>>>0)*_(2.32830644e-10));n[g+(l<<2)>>2]=s;l=l+1|0;m=b[r>>0]|0;if((l|0)>=((m<<24>>24>e<<24>>24?e:m)<<24>>24|0)){z=m;break}else u=u+4|0}}else z=k;u=z<<24>>24;if(z<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 7:{u=a+48|0;l=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,l|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;l=b[r>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;m=0;while(1){q=u;s=_(+((f[q>>2]|0)>>>0)+4294967296.0*+(f[q+4>>2]|0));n[g+(m<<2)>>2]=s;m=m+1|0;q=b[r>>0]|0;if((m|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){A=q;break}else u=u+8|0}}else{u=o;m=0;while(1){k=u;s=_(_(+((f[k>>2]|0)>>>0)+4294967296.0*+(f[k+4>>2]|0))*_(1.08420217e-19));n[g+(m<<2)>>2]=s;m=m+1|0;k=b[r>>0]|0;if((m|0)>=((k<<24>>24>e<<24>>24?e:k)<<24>>24|0)){A=k;break}else u=u+8|0}}else A=l;u=A<<24>>24;if(A<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 8:{u=a+48|0;m=f[u>>2]|0;r=f[u+4>>2]|0;u=a+40|0;o=(vl(Bk(f[u>>2]|0,f[u+4>>2]|0,f[c>>2]|0,0)|0,H|0,m|0,r|0)|0)+(f[f[a>>2]>>2]|0)|0;r=a+24|0;m=b[r>>0]|0;if((m<<24>>24>e<<24>>24?e:m)<<24>>24>0)if(!(b[a+32>>0]|0)){u=o;k=0;while(1){q=u;s=_(+((f[q>>2]|0)>>>0)+4294967296.0*+((f[q+4>>2]|0)>>>0));n[g+(k<<2)>>2]=s;k=k+1|0;q=b[r>>0]|0;if((k|0)>=((q<<24>>24>e<<24>>24?e:q)<<24>>24|0)){B=q;break}else u=u+8|0}}else{u=o;k=0;while(1){l=u;s=_(_(+((f[l>>2]|0)>>>0)+4294967296.0*+((f[l+4>>2]|0)>>>0))*_(5.42101086e-20));n[g+(k<<2)>>2]=s;k=k+1|0;l=b[r>>0]|0;if((k|0)>=((l<<24>>24>e<<24>>24?e:l)<<24>>24|0)){B=l;break}else u=u+8|0}}else B=m;u=B<<24>>24;if(B<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(u<<2)|0,0,(e<<24>>24)-u<<2|0)|0;i=1;return i|0}case 9:{u=a+24|0;k=b[u>>0]|0;if((k<<24>>24>e<<24>>24?e:k)<<24>>24>0){r=f[f[a>>2]>>2]|0;o=a+40|0;l=Bk(f[o>>2]|0,f[o+4>>2]|0,f[c>>2]|0,0)|0;o=a+48|0;q=vl(l|0,H|0,f[o>>2]|0,f[o+4>>2]|0)|0;o=r+q|0;q=0;while(1){f[g+(q<<2)>>2]=f[o>>2];q=q+1|0;r=b[u>>0]|0;if((q|0)>=((r<<24>>24>e<<24>>24?e:r)<<24>>24|0)){C=r;break}else o=o+4|0}}else C=k;o=C<<24>>24;if(C<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(o<<2)|0,0,(e<<24>>24)-o<<2|0)|0;i=1;return i|0}case 10:{o=a+24|0;q=b[o>>0]|0;if((q<<24>>24>e<<24>>24?e:q)<<24>>24>0){u=f[f[a>>2]>>2]|0;m=a+40|0;r=Bk(f[m>>2]|0,f[m+4>>2]|0,f[c>>2]|0,0)|0;m=a+48|0;l=vl(r|0,H|0,f[m>>2]|0,f[m+4>>2]|0)|0;m=u+l|0;l=0;while(1){s=_(+p[m>>3]);n[g+(l<<2)>>2]=s;l=l+1|0;u=b[o>>0]|0;if((l|0)>=((u<<24>>24>e<<24>>24?e:u)<<24>>24|0)){D=u;break}else m=m+8|0}}else D=q;m=D<<24>>24;if(D<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(m<<2)|0,0,(e<<24>>24)-m<<2|0)|0;i=1;return i|0}case 11:{m=a+24|0;l=b[m>>0]|0;if((l<<24>>24>e<<24>>24?e:l)<<24>>24>0){o=f[f[a>>2]>>2]|0;k=a+40|0;u=Bk(f[k>>2]|0,f[k+4>>2]|0,f[c>>2]|0,0)|0;k=a+48|0;r=vl(u|0,H|0,f[k>>2]|0,f[k+4>>2]|0)|0;k=o+r|0;r=0;while(1){s=_((b[k>>0]|0)!=0&1);n[g+(r<<2)>>2]=s;r=r+1|0;o=b[m>>0]|0;if((r|0)>=((o<<24>>24>e<<24>>24?e:o)<<24>>24|0)){E=o;break}else k=k+1|0}}else E=l;k=E<<24>>24;if(E<<24>>24>=e<<24>>24){i=1;return i|0}oh(g+(k<<2)|0,0,(e<<24>>24)-k<<2|0)|0;i=1;return i|0}default:{i=0;return i|0}}while(0);return 0}function pb(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,W=0,X=0,Y=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0;d=u;u=u+48|0;e=d+24|0;g=d;h=a+12|0;i=f[h>>2]|0;f[e>>2]=0;j=e+4|0;f[j>>2]=0;k=e+8|0;f[k>>2]=0;do if(i)if(i>>>0>1073741823)$n(e);else{l=i<<2;m=wk(l)|0;f[e>>2]=m;n=m+(i<<2)|0;f[k>>2]=n;oh(m|0,0,l|0)|0;f[j>>2]=n;o=n;p=m;break}else{o=0;p=0}while(0);m=a+116|0;n=f[m>>2]|0;l=f[n>>2]|0;if(!l){q=n+8|0;r=n+4|0;s=p;t=o;v=i}else{i=n+4|0;f[i>>2]=l;Ko(l);l=n+8|0;f[l>>2]=0;f[i>>2]=0;f[n>>2]=0;q=l;r=i;s=f[e>>2]|0;t=f[j>>2]|0;v=f[h>>2]|0}f[n>>2]=s;f[r>>2]=t;f[q>>2]=f[k>>2];f[e>>2]=0;k=e+4|0;f[k>>2]=0;q=e+8|0;f[q>>2]=0;do if(v)if(v>>>0>1073741823)$n(e);else{t=v<<2;r=wk(t)|0;f[e>>2]=r;s=r+(v<<2)|0;f[q>>2]=s;oh(r|0,0,t|0)|0;f[k>>2]=s;w=s;x=r;break}else{w=0;x=0}while(0);v=a+128|0;r=f[v>>2]|0;s=f[r>>2]|0;if(!s){y=r+8|0;z=r+4|0;A=x;B=w}else{w=r+4|0;f[w>>2]=s;Ko(s);s=r+8|0;f[s>>2]=0;f[w>>2]=0;f[r>>2]=0;y=s;z=w;A=f[e>>2]|0;B=f[k>>2]|0}f[r>>2]=A;f[z>>2]=B;f[y>>2]=f[q>>2];f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;f[g+16>>2]=0;f[g+20>>2]=0;q=g+8|0;y=g+4|0;B=g+16|0;z=g+20|0;cc(g);A=f[y>>2]|0;r=(f[B>>2]|0)+(f[z>>2]|0)|0;if((f[q>>2]|0)==(A|0))C=0;else{k=(r>>>0)/341|0;C=(f[A+(k<<2)>>2]|0)+((r-(k*341|0)|0)*12|0)|0}f[C>>2]=b;f[C+4>>2]=0;f[C+8>>2]=0;C=(f[z>>2]|0)+1|0;f[z>>2]=C;a:do if(!C)D=1;else{k=e+4|0;r=e+8|0;A=a+8|0;w=a+104|0;s=a+4|0;x=e+4|0;t=e+8|0;n=a+92|0;j=a+48|0;i=a+44|0;l=a+36|0;o=a+16|0;p=a+88|0;E=a+76|0;F=a+84|0;G=C;while(1){H=f[B>>2]|0;I=G+-1|0;J=H+I|0;K=f[y>>2]|0;L=(J>>>0)/341|0;M=f[K+(L<<2)>>2]|0;N=J-(L*341|0)|0;L=f[M+(N*12|0)>>2]|0;J=f[M+(N*12|0)+4>>2]|0;O=f[M+(N*12|0)+8>>2]|0;f[z>>2]=I;I=f[q>>2]|0;N=I-K|0;if((1-G-H+((N|0)==0?0:((N>>2)*341|0)+-1|0)|0)>>>0>681){Ko(f[I+-4>>2]|0);f[q>>2]=(f[q>>2]|0)+-4}I=f[m>>2]|0;N=I+(O*12|0)|0;if(L>>>0>b>>>0){D=0;break a}H=f[h>>2]|0;K=(H+-1|0)==(J|0)?0:J+1|0;if(K>>>0>=H>>>0){D=0;break a}H=(f[v>>2]|0)+(O*12|0)|0;J=(f[a>>2]|0)-(f[(f[H>>2]|0)+(K<<2)>>2]|0)|0;b:do if(!J){if(L|0){M=0;do{P=f[N>>2]|0;Q=f[P>>2]|0;f[e>>2]=Q;f[k>>2]=f[P+4>>2];f[r>>2]=f[P+8>>2];P=f[c>>2]|0;R=P+4|0;S=f[R>>2]|0;if(S>>>0<(f[P+8>>2]|0)>>>0){f[S>>2]=Q;f[S+4>>2]=f[k>>2];f[S+8>>2]=f[r>>2];f[R>>2]=S+12}else If(P,e);f[A>>2]=(f[A>>2]|0)+1;M=M+1|0}while(M>>>0<L>>>0)}}else{if(L>>>0>=3){if((f[A>>2]|0)>>>0>(f[s>>2]|0)>>>0){D=0;break a}M=O+1|0;Df(I+(M*12|0)|0,f[N>>2]|0,f[I+(O*12|0)+4>>2]|0);P=(f[(f[m>>2]|0)+(M*12|0)>>2]|0)+(K<<2)|0;f[P>>2]=(f[P>>2]|0)+(1<<J+-1);P=(Z(L|0)|0)^31;f[e>>2]=0;ph(o,P,e);P=(L>>>1)-(f[e>>2]|0)|0;S=L-P|0;c:do if((P|0)==(S|0)){T=P;U=P}else{R=f[p>>2]|0;Q=f[F>>2]|0;do if((Q|0)!=(f[E>>2]|0)){V=(f[Q>>2]&1<<31-R|0)!=0;W=R+1|0;f[p>>2]=W;if((W|0)==32){f[F>>2]=Q+4;f[p>>2]=0;if(V){T=P;U=S;break c}else break}else if(V){T=P;U=S;break c}else break}while(0);T=S;U=P}while(0);P=f[v>>2]|0;S=f[P+(O*12|0)>>2]|0;Q=S+(K<<2)|0;f[Q>>2]=(f[Q>>2]|0)+1;Df(P+(M*12|0)|0,S,f[P+(O*12|0)+4>>2]|0);if(T|0){P=f[q>>2]|0;S=f[y>>2]|0;Q=P-S|0;R=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((Q|0)==0?0:((Q>>2)*341|0)+-1|0)|0)==(R|0)){cc(g);X=(f[B>>2]|0)+(f[z>>2]|0)|0;Y=f[q>>2]|0;_=f[y>>2]|0}else{X=R;Y=P;_=S}if((Y|0)==(_|0))$=0;else{S=(X>>>0)/341|0;$=(f[_+(S<<2)>>2]|0)+((X-(S*341|0)|0)*12|0)|0}f[$>>2]=T;f[$+4>>2]=K;f[$+8>>2]=O;f[z>>2]=(f[z>>2]|0)+1}if(U|0){S=f[q>>2]|0;P=f[y>>2]|0;R=S-P|0;Q=(f[z>>2]|0)+(f[B>>2]|0)|0;if((((R|0)==0?0:((R>>2)*341|0)+-1|0)|0)==(Q|0)){cc(g);aa=(f[B>>2]|0)+(f[z>>2]|0)|0;ba=f[q>>2]|0;ca=f[y>>2]|0}else{aa=Q;ba=S;ca=P}if((ba|0)==(ca|0))da=0;else{P=(aa>>>0)/341|0;da=(f[ca+(P<<2)>>2]|0)+((aa-(P*341|0)|0)*12|0)|0}f[da>>2]=U;f[da+4>>2]=K;f[da+8>>2]=M;f[z>>2]=(f[z>>2]|0)+1}break}P=f[w>>2]|0;f[P>>2]=K;S=f[h>>2]|0;if(S>>>0>1){Q=1;R=S;V=K;while(1){V=(V|0)==(R+-1|0)?0:V+1|0;f[P+(Q<<2)>>2]=V;Q=Q+1|0;W=f[h>>2]|0;if(Q>>>0>=W>>>0){ea=W;break}else R=W}}else ea=S;if(L|0){R=0;Q=ea;while(1){if(!Q)fa=f[n>>2]|0;else{V=f[w>>2]|0;P=f[n>>2]|0;M=f[H>>2]|0;W=0;do{ga=V+(W<<2)|0;f[P+(f[ga>>2]<<2)>>2]=0;ha=f[ga>>2]|0;ia=(f[a>>2]|0)-(f[M+(ha<<2)>>2]|0)|0;do if(ia|0){ja=P+(ha<<2)|0;ka=f[j>>2]|0;la=32-ka|0;if((ia|0)>(la|0)){ma=f[i>>2]|0;na=ma+4|0;if((na|0)==(f[l>>2]|0)){f[ja>>2]=0;break}else{oa=f[ma>>2]<<ka;ma=ia-la|0;f[j>>2]=ma;f[i>>2]=na;pa=32-ma|0;f[ja>>2]=(f[na>>2]|0)>>>pa|oa>>>(pa-la|0);break}}la=f[i>>2]|0;if((la|0)==(f[l>>2]|0)){f[ja>>2]=0;break}f[ja>>2]=f[la>>2]<<ka>>>(32-ia|0);ka=(f[j>>2]|0)+ia|0;f[j>>2]=ka;if((ka|0)!=32)break;f[i>>2]=la+4;f[j>>2]=0}while(0);ia=f[ga>>2]|0;ha=P+(ia<<2)|0;f[ha>>2]=f[ha>>2]|f[(f[N>>2]|0)+(ia<<2)>>2];W=W+1|0}while(W>>>0<(f[h>>2]|0)>>>0);fa=P}P=f[fa>>2]|0;f[e>>2]=P;f[x>>2]=f[fa+4>>2];f[t>>2]=f[fa+8>>2];W=f[c>>2]|0;M=W+4|0;V=f[M>>2]|0;if(V>>>0<(f[W+8>>2]|0)>>>0){f[V>>2]=P;f[V+4>>2]=f[x>>2];f[V+8>>2]=f[t>>2];f[M>>2]=V+12}else If(W,e);f[A>>2]=(f[A>>2]|0)+1;W=R+1|0;if(W>>>0>=L>>>0)break b;R=W;Q=f[h>>2]|0}}}while(0);G=f[z>>2]|0;if(!G){D=1;break}}}while(0);h=f[y>>2]|0;e=f[B>>2]|0;c=(e>>>0)/341|0;fa=h+(c<<2)|0;a=f[q>>2]|0;ea=a;da=h;if((a|0)!=(h|0)?(U=(f[fa>>2]|0)+((e-(c*341|0)|0)*12|0)|0,c=(f[z>>2]|0)+e|0,e=(c>>>0)/341|0,aa=(f[h+(e<<2)>>2]|0)+((c-(e*341|0)|0)*12|0)|0,(aa|0)!=(U|0)):0){e=fa;fa=U;while(1){U=fa+12|0;if((U-(f[e>>2]|0)|0)==4092){c=e+4|0;qa=c;ra=f[c>>2]|0}else{qa=e;ra=U}fa=ra;if((aa|0)==(fa|0))break;else e=qa}}f[z>>2]=0;z=ea-da>>2;if(z>>>0>2){da=h;do{Ko(f[da>>2]|0);da=(f[y>>2]|0)+4|0;f[y>>2]=da;sa=f[q>>2]|0;ta=sa-da>>2}while(ta>>>0>2);ua=ta;va=da;wa=sa}else{ua=z;va=h;wa=a}switch(ua|0){case 1:{xa=170;ya=87;break}case 2:{xa=341;ya=87;break}default:{}}if((ya|0)==87)f[B>>2]=xa;if((va|0)!=(wa|0)){xa=va;do{Ko(f[xa>>2]|0);xa=xa+4|0}while((xa|0)!=(wa|0));wa=f[y>>2]|0;y=f[q>>2]|0;if((y|0)!=(wa|0))f[q>>2]=y+(~((y+-4-wa|0)>>>2)<<2)}wa=f[g>>2]|0;if(!wa){u=d;return D|0}Ko(wa);u=d;return D|0}function qb(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0,t=0,v=0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0,F=0,G=0,H=0,I=0,J=0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0,ia=0,ja=0,ka=0,la=0;g=u;u=u+64|0;d=g+16|0;h=g;i=a+8|0;f[i>>2]=e;j=a+32|0;k=a+36|0;l=f[j>>2]|0;m=(f[k>>2]|0)-l>>2;if(m>>>0>=e>>>0){if(m>>>0>e>>>0)f[k>>2]=l+(e<<2)}else Eg(j,e-m|0);m=d;j=m+48|0;do{f[m>>2]=0;m=m+4|0}while((m|0)<(j|0));f[h>>2]=0;if(!e){n=0;o=0}else{Of(d,e,h);n=f[d+12>>2]|0;o=f[d+16>>2]|0}f[h>>2]=0;m=d+16|0;j=o-n>>2;if(j>>>0>=e>>>0){if(j>>>0>e>>>0)f[m>>2]=n+(e<<2)}else Of(d+12|0,e-j|0,h);j=d+24|0;f[h>>2]=0;n=d+28|0;m=f[j>>2]|0;o=(f[n>>2]|0)-m>>2;if(o>>>0>=e>>>0){if(o>>>0>e>>>0)f[n>>2]=m+(e<<2)}else Of(j,e-o|0,h);o=d+36|0;f[h>>2]=0;j=d+40|0;m=f[o>>2]|0;n=(f[j>>2]|0)-m>>2;if(n>>>0>=e>>>0){if(n>>>0>e>>>0)f[j>>2]=m+(e<<2)}else Of(o,e-n|0,h);n=f[d>>2]|0;if((f[i>>2]|0)>0){o=a+16|0;m=a+32|0;j=a+12|0;l=0;do{k=f[n+(l<<2)>>2]|0;p=f[o>>2]|0;do if((k|0)<=(p|0)){q=f[j>>2]|0;r=f[m>>2]|0;s=r+(l<<2)|0;if((k|0)<(q|0)){f[s>>2]=q;t=r;break}else{f[s>>2]=k;t=r;break}}else{r=f[m>>2]|0;f[r+(l<<2)>>2]=p;t=r}while(0);l=l+1|0;v=f[i>>2]|0}while((l|0)<(v|0));if((v|0)>0){v=a+20|0;l=0;do{m=(f[b+(l<<2)>>2]|0)+(f[t+(l<<2)>>2]|0)|0;n=c+(l<<2)|0;f[n>>2]=m;if((m|0)<=(f[o>>2]|0)){if((m|0)<(f[j>>2]|0)){w=(f[v>>2]|0)+m|0;x=19}}else{w=m-(f[v>>2]|0)|0;x=19}if((x|0)==19){x=0;f[n>>2]=w}l=l+1|0}while((l|0)<(f[i>>2]|0))}}l=f[a+48>>2]|0;w=f[a+52>>2]|0;v=wk(16)|0;f[v>>2]=0;f[v+4>>2]=0;f[v+8>>2]=0;f[v+12>>2]=0;f[h>>2]=0;j=h+4|0;f[j>>2]=0;o=h+8|0;f[o>>2]=0;do if(e)if(e>>>0>1073741823)$n(h);else{t=e<<2;n=wk(t)|0;f[h>>2]=n;m=n+(e<<2)|0;f[o>>2]=m;oh(n|0,0,t|0)|0;f[j>>2]=m;y=n;break}else y=0;while(0);o=f[a+56>>2]|0;n=f[o>>2]|0;m=(f[o+4>>2]|0)-n|0;t=m>>2;a:do if((m|0)>4){p=n;k=(e|0)>0;r=l+64|0;s=l+28|0;q=a+16|0;z=a+32|0;A=a+12|0;B=a+20|0;C=e<<2;D=(e|0)==1;E=1;while(1){if(t>>>0<=E>>>0){x=30;break}F=f[p+(E<<2)>>2]|0;do if((F|0)!=-1){G=(((F>>>0)%3|0|0)==0?2:-1)+F|0;H=(G|0)==-1;I=G>>>5;J=1<<(G&31);K=1;L=0;M=F;N=f[l>>2]|0;b:while(1){O=f[d+(L*12|0)>>2]|0;if(((f[N+(M>>>5<<2)>>2]&1<<(M&31)|0)==0?(P=f[(f[(f[r>>2]|0)+12>>2]|0)+(M<<2)>>2]|0,(P|0)!=-1):0)?(Q=f[s>>2]|0,R=f[w>>2]|0,S=f[R+(f[Q+(P<<2)>>2]<<2)>>2]|0,T=P+1|0,U=f[R+(f[Q+((((T>>>0)%3|0|0)==0?P+-2|0:T)<<2)>>2]<<2)>>2]|0,T=f[R+(f[Q+((((P>>>0)%3|0|0)==0?2:-1)+P<<2)>>2]<<2)>>2]|0,(S|0)<(E|0)&(U|0)<(E|0)&(T|0)<(E|0)):0){P=W(S,e)|0;S=W(U,e)|0;U=W(T,e)|0;if(k){T=0;do{f[O+(T<<2)>>2]=(f[c+(T+U<<2)>>2]|0)+(f[c+(T+S<<2)>>2]|0)-(f[c+(T+P<<2)>>2]|0);T=T+1|0}while((T|0)!=(e|0))}T=L+1|0;if((T|0)==4){V=4;break}else X=T}else X=L;do if(K){T=M+1|0;P=((T>>>0)%3|0|0)==0?M+-2|0:T;if((P|0)!=-1){T=f[l>>2]|0;if((f[T+(P>>>5<<2)>>2]&1<<(P&31)|0)==0?(S=f[(f[(f[r>>2]|0)+12>>2]|0)+(P<<2)>>2]|0,P=S+1|0,(S|0)!=-1):0){Y=((P>>>0)%3|0|0)==0?S+-2|0:P;Z=T}else{Y=-1;Z=T}}else{Y=-1;Z=N}}else{T=(((M>>>0)%3|0|0)==0?2:-1)+M|0;if(((T|0)!=-1?(f[N+(T>>>5<<2)>>2]&1<<(T&31)|0)==0:0)?(P=f[(f[(f[r>>2]|0)+12>>2]|0)+(T<<2)>>2]|0,(P|0)!=-1):0)if(!((P>>>0)%3|0)){Y=P+2|0;Z=N;break}else{Y=P+-1|0;Z=N;break}else{Y=-1;Z=N}}while(0);if((Y|0)==(F|0)){x=59;break}P=(Y|0)!=-1;T=P|K^1;do if(!(T|H)){S=f[l>>2]|0;if(f[S+(I<<2)>>2]&J|0){x=59;break b}U=f[(f[(f[r>>2]|0)+12>>2]|0)+(G<<2)>>2]|0;if((U|0)==-1){x=59;break b}if(!((U>>>0)%3|0)){_=0;$=U+2|0;aa=S;break}else{_=0;$=U+-1|0;aa=S;break}}else{_=P&K;$=T?Y:-1;aa=Z}while(0);if(($|0)==-1){x=59;break}else{K=_;L=X;M=$;N=aa}}if((x|0)==59){x=0;if((X|0)>0)V=X;else{x=60;break}}if(k){oh(f[h>>2]|0,0,C|0)|0;N=V+-1|0;M=v+(N<<2)|0;L=a+60+(N*12|0)+4|0;K=a+60+(N*12|0)|0;N=f[h>>2]|0;G=0;J=0;while(1){I=f[M>>2]|0;f[M>>2]=I+1;if((f[L>>2]|0)>>>0<=I>>>0){ba=N;ca=0;break a}if(!(f[(f[K>>2]|0)+(I>>>5<<2)>>2]&1<<(I&31))){I=f[d+(G*12|0)>>2]|0;H=0;do{T=N+(H<<2)|0;f[T>>2]=(f[T>>2]|0)+(f[I+(H<<2)>>2]|0);H=H+1|0}while((H|0)!=(e|0));da=J+1|0}else da=J;G=G+1|0;if((G|0)>=(V|0)){ea=da;break}else J=da}}else{J=V+-1|0;G=v+(J<<2)|0;N=a+60+(J*12|0)|0;K=f[h>>2]|0;L=f[a+60+(J*12|0)+4>>2]|0;J=0;M=0;H=f[G>>2]|0;while(1){I=H;H=H+1|0;f[G>>2]=H;if(L>>>0<=I>>>0){ba=K;ca=0;break a}T=M+((f[(f[N>>2]|0)+(I>>>5<<2)>>2]&1<<(I&31)|0)==0&1)|0;J=J+1|0;if((J|0)>=(V|0)){ea=T;break}else M=T}}M=W(E,e)|0;if(ea){J=f[h>>2]|0;if(k?(f[J>>2]=(f[J>>2]|0)/(ea|0)|0,!D):0){N=1;do{K=J+(N<<2)|0;f[K>>2]=(f[K>>2]|0)/(ea|0)|0;N=N+1|0}while((N|0)!=(e|0))}N=b+(M<<2)|0;K=c+(M<<2)|0;if((f[i>>2]|0)>0){L=0;do{H=f[J+(L<<2)>>2]|0;G=f[q>>2]|0;do if((H|0)<=(G|0)){T=f[A>>2]|0;I=f[z>>2]|0;P=I+(L<<2)|0;if((H|0)<(T|0)){f[P>>2]=T;fa=I;break}else{f[P>>2]=H;fa=I;break}}else{I=f[z>>2]|0;f[I+(L<<2)>>2]=G;fa=I}while(0);L=L+1|0;ga=f[i>>2]|0}while((L|0)<(ga|0));if((ga|0)>0){L=0;do{J=(f[N+(L<<2)>>2]|0)+(f[fa+(L<<2)>>2]|0)|0;G=K+(L<<2)|0;f[G>>2]=J;do if((J|0)>(f[q>>2]|0)){ha=J-(f[B>>2]|0)|0;x=106}else{if((J|0)>=(f[A>>2]|0))break;ha=(f[B>>2]|0)+J|0;x=106}while(0);if((x|0)==106){x=0;f[G>>2]=ha}L=L+1|0}while((L|0)<(f[i>>2]|0))}}}else{ia=M;x=73}}else x=60;while(0);if((x|0)==60){x=0;ia=W(E,e)|0;x=73}if((x|0)==73?(x=0,F=c+((W(E+-1|0,e)|0)<<2)|0,L=b+(ia<<2)|0,K=c+(ia<<2)|0,(f[i>>2]|0)>0):0){N=0;do{J=f[F+(N<<2)>>2]|0;H=f[q>>2]|0;do if((J|0)<=(H|0)){I=f[A>>2]|0;P=f[z>>2]|0;T=P+(N<<2)|0;if((J|0)<(I|0)){f[T>>2]=I;ja=P;break}else{f[T>>2]=J;ja=P;break}}else{P=f[z>>2]|0;f[P+(N<<2)>>2]=H;ja=P}while(0);N=N+1|0;ka=f[i>>2]|0}while((N|0)<(ka|0));if((ka|0)>0){N=0;do{F=(f[L+(N<<2)>>2]|0)+(f[ja+(N<<2)>>2]|0)|0;H=K+(N<<2)|0;f[H>>2]=F;if((F|0)<=(f[q>>2]|0)){if((F|0)<(f[A>>2]|0)){la=(f[B>>2]|0)+F|0;x=87}}else{la=F-(f[B>>2]|0)|0;x=87}if((x|0)==87){x=0;f[H>>2]=la}N=N+1|0}while((N|0)<(f[i>>2]|0))}}E=E+1|0;if((E|0)>=(t|0)){x=110;break}}if((x|0)==30)$n(o);else if((x|0)==110){ba=f[h>>2]|0;ca=1;break}}else{ba=y;ca=1}while(0);if(ba|0){f[j>>2]=ba;Ko(ba)}Ko(v);v=f[d+36>>2]|0;if(v|0){f[d+40>>2]=v;Ko(v)}v=f[d+24>>2]|0;if(v|0){f[d+28>>2]=v;Ko(v)}v=f[d+12>>2]|0;if(v|0){f[d+16>>2]=v;Ko(v)}v=f[d>>2]|0;if(!v){u=g;return ca|0}f[d+4>>2]=v;Ko(v);u=g;return ca|0}function rb(a,c,d,e,g,i){a=a|0;c=+c;d=d|0;e=e|0;g=g|0;i=i|0;var j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0,r=0,s=0.0,t=0,v=0.0,w=0,x=0,y=0,z=0,A=0,B=0,C=0,D=0,E=0.0,F=0,G=0,I=0,J=0.0,K=0,L=0,M=0,N=0,O=0,P=0,Q=0.0,R=0,S=0,T=0,U=0,V=0,X=0,Y=0,Z=0,_=0,$=0,aa=0,ba=0,ca=0,da=0,ea=0,fa=0,ga=0,ha=0.0,ia=0.0,ja=0,ka=0,la=0,ma=0,na=0,oa=0,pa=0,qa=0,ra=0,sa=0,ta=0,ua=0,va=0,wa=0,xa=0,ya=0,za=0,Aa=0,Ba=0,Ca=0,Da=0,Ea=0,Fa=0,Ga=0,Ha=0;j=u;u=u+560|0;k=j+8|0;l=j;m=j+524|0;n=m;o=j+512|0;f[l>>2]=0;p=o+12|0;q=em(c)|0;r=H;if((r|0)<0){s=-c;t=em(s)|0;v=s;w=1;x=14101;y=H;z=t}else{v=c;w=(g&2049|0)!=0&1;x=(g&2048|0)==0?((g&1|0)==0?14102:14107):14104;y=r;z=q}do if(0==0&(y&2146435072|0)==2146435072){q=(i&32|0)!=0;z=w+3|0;vi(a,32,d,z,g&-65537);Pm(a,x,w);Pm(a,v!=v|0.0!=0.0?(q?14128:14132):q?14120:14124,3);vi(a,32,d,z,g^8192);A=z}else{c=+oo(v,l)*2.0;z=c!=0.0;if(z)f[l>>2]=(f[l>>2]|0)+-1;q=i|32;if((q|0)==97){r=i&32;t=(r|0)==0?x:x+9|0;B=w|2;C=12-e|0;do if(!(e>>>0>11|(C|0)==0)){s=8.0;D=C;do{D=D+-1|0;s=s*16.0}while((D|0)!=0);if((b[t>>0]|0)==45){E=-(s+(-c-s));break}else{E=c+s-s;break}}else E=c;while(0);C=f[l>>2]|0;D=(C|0)<0?0-C|0:C;F=xh(D,((D|0)<0)<<31>>31,p)|0;if((F|0)==(p|0)){D=o+11|0;b[D>>0]=48;G=D}else G=F;b[G+-1>>0]=(C>>31&2)+43;C=G+-2|0;b[C>>0]=i+15;F=(e|0)<1;D=(g&8|0)==0;I=m;J=E;while(1){K=~~J;L=I+1|0;b[I>>0]=r|h[14136+K>>0];J=(J-+(K|0))*16.0;if((L-n|0)==1?!(D&(F&J==0.0)):0){b[L>>0]=46;M=I+2|0}else M=L;if(!(J!=0.0))break;else I=M}I=M;if((e|0)!=0?(-2-n+I|0)<(e|0):0){F=p;D=C;N=e+2+F-D|0;O=F;P=D}else{D=p;F=C;N=D-n-F+I|0;O=D;P=F}F=N+B|0;vi(a,32,d,F,g);Pm(a,t,B);vi(a,48,d,F,g^65536);D=I-n|0;Pm(a,m,D);I=O-P|0;vi(a,48,N-(D+I)|0,0,0);Pm(a,C,I);vi(a,32,d,F,g^8192);A=F;break}F=(e|0)<0?6:e;if(z){I=(f[l>>2]|0)+-28|0;f[l>>2]=I;Q=c*268435456.0;R=I}else{Q=c;R=f[l>>2]|0}I=(R|0)<0?k:k+288|0;D=I;J=Q;do{r=~~J>>>0;f[D>>2]=r;D=D+4|0;J=(J-+(r>>>0))*1.0e9}while(J!=0.0);if((R|0)>0){z=I;C=D;B=R;while(1){t=(B|0)<29?B:29;r=C+-4|0;if(r>>>0>=z>>>0){L=r;r=0;do{K=rl(f[L>>2]|0,0,t|0)|0;S=vl(K|0,H|0,r|0,0)|0;K=H;r=ln(S|0,K|0,1e9,0)|0;T=Bk(r|0,H|0,1e9,0)|0;U=wl(S|0,K|0,T|0,H|0)|0;f[L>>2]=U;L=L+-4|0}while(L>>>0>=z>>>0);if(r){L=z+-4|0;f[L>>2]=r;V=L}else V=z}else V=z;a:do if(C>>>0>V>>>0){L=C;while(1){U=L+-4|0;if(f[U>>2]|0){X=L;break a}if(U>>>0>V>>>0)L=U;else{X=U;break}}}else X=C;while(0);r=(f[l>>2]|0)-t|0;f[l>>2]=r;if((r|0)>0){z=V;C=X;B=r}else{Y=V;Z=X;_=r;break}}}else{Y=I;Z=D;_=R}if((_|0)<0){B=((F+25|0)/9|0)+1|0;C=(q|0)==102;z=Y;r=Z;L=_;while(1){U=0-L|0;T=(U|0)<9?U:9;if(z>>>0<r>>>0){U=(1<<T)+-1|0;K=1e9>>>T;S=0;$=z;do{aa=f[$>>2]|0;f[$>>2]=(aa>>>T)+S;S=W(aa&U,K)|0;$=$+4|0}while($>>>0<r>>>0);$=(f[z>>2]|0)==0?z+4|0:z;if(!S){ba=r;ca=$}else{f[r>>2]=S;ba=r+4|0;ca=$}}else{ba=r;ca=(f[z>>2]|0)==0?z+4|0:z}$=C?I:ca;K=(ba-$>>2|0)>(B|0)?$+(B<<2)|0:ba;L=(f[l>>2]|0)+T|0;f[l>>2]=L;if((L|0)>=0){da=ca;ea=K;break}else{z=ca;r=K}}}else{da=Y;ea=Z}r=I;if(da>>>0<ea>>>0){z=(r-da>>2)*9|0;L=f[da>>2]|0;if(L>>>0<10)fa=z;else{B=z;z=10;while(1){z=z*10|0;C=B+1|0;if(L>>>0<z>>>0){fa=C;break}else B=C}}}else fa=0;B=(q|0)==103;z=(F|0)!=0;L=F-((q|0)==102?0:fa)+((z&B)<<31>>31)|0;if((L|0)<(((ea-r>>2)*9|0)+-9|0)){C=L+9216|0;L=(C|0)/9|0;D=I+4+(L+-1024<<2)|0;K=C-(L*9|0)|0;if((K|0)<8){L=K;K=10;while(1){C=K*10|0;if((L|0)<7){L=L+1|0;K=C}else{ga=C;break}}}else ga=10;K=f[D>>2]|0;L=(K>>>0)/(ga>>>0)|0;q=K-(W(L,ga)|0)|0;C=(D+4|0)==(ea|0);if(!(C&(q|0)==0)){s=(L&1|0)==0?9007199254740992.0:9007199254740994.0;L=ga>>>1;J=q>>>0<L>>>0?.5:C&(q|0)==(L|0)?1.0:1.5;if(!w){ha=J;ia=s}else{L=(b[x>>0]|0)==45;ha=L?-J:J;ia=L?-s:s}L=K-q|0;f[D>>2]=L;if(ia+ha!=ia){q=L+ga|0;f[D>>2]=q;if(q>>>0>999999999){q=D;L=da;while(1){K=q+-4|0;f[q>>2]=0;if(K>>>0<L>>>0){C=L+-4|0;f[C>>2]=0;ja=C}else ja=L;C=(f[K>>2]|0)+1|0;f[K>>2]=C;if(C>>>0>999999999){q=K;L=ja}else{ka=K;la=ja;break}}}else{ka=D;la=da}L=(r-la>>2)*9|0;q=f[la>>2]|0;if(q>>>0<10){ma=ka;na=L;oa=la}else{K=L;L=10;while(1){L=L*10|0;C=K+1|0;if(q>>>0<L>>>0){ma=ka;na=C;oa=la;break}else K=C}}}else{ma=D;na=fa;oa=da}}else{ma=D;na=fa;oa=da}K=ma+4|0;pa=na;qa=ea>>>0>K>>>0?K:ea;ra=oa}else{pa=fa;qa=ea;ra=da}K=0-pa|0;b:do if(qa>>>0>ra>>>0){L=qa;while(1){q=L+-4|0;if(f[q>>2]|0){sa=L;ta=1;break b}if(q>>>0>ra>>>0)L=q;else{sa=q;ta=0;break}}}else{sa=qa;ta=0}while(0);do if(B){D=F+((z^1)&1)|0;if((D|0)>(pa|0)&(pa|0)>-5){ua=i+-1|0;va=D+-1-pa|0}else{ua=i+-2|0;va=D+-1|0}if(!(g&8)){if(ta?(D=f[sa+-4>>2]|0,(D|0)!=0):0)if(!((D>>>0)%10|0)){L=0;T=10;while(1){T=T*10|0;S=L+1|0;if((D>>>0)%(T>>>0)|0|0){wa=S;break}else L=S}}else wa=0;else wa=9;L=((sa-r>>2)*9|0)+-9|0;if((ua|32|0)==102){T=L-wa|0;D=(T|0)>0?T:0;xa=ua;ya=(va|0)<(D|0)?va:D;break}else{D=L+pa-wa|0;L=(D|0)>0?D:0;xa=ua;ya=(va|0)<(L|0)?va:L;break}}else{xa=ua;ya=va}}else{xa=i;ya=F}while(0);F=(ya|0)!=0;r=F?1:g>>>3&1;z=(xa|32|0)==102;if(z){za=0;Aa=(pa|0)>0?pa:0}else{B=(pa|0)<0?K:pa;L=xh(B,((B|0)<0)<<31>>31,p)|0;B=p;if((B-L|0)<2){D=L;while(1){T=D+-1|0;b[T>>0]=48;if((B-T|0)<2)D=T;else{Ba=T;break}}}else Ba=L;b[Ba+-1>>0]=(pa>>31&2)+43;D=Ba+-2|0;b[D>>0]=xa;za=D;Aa=B-D|0}D=w+1+ya+r+Aa|0;vi(a,32,d,D,g);Pm(a,x,w);vi(a,48,d,D,g^65536);if(z){K=ra>>>0>I>>>0?I:ra;T=m+9|0;S=T;q=m+8|0;C=K;do{$=xh(f[C>>2]|0,0,T)|0;if((C|0)==(K|0))if(($|0)==(T|0)){b[q>>0]=48;Ca=q}else Ca=$;else if($>>>0>m>>>0){oh(m|0,48,$-n|0)|0;U=$;while(1){t=U+-1|0;if(t>>>0>m>>>0)U=t;else{Ca=t;break}}}else Ca=$;Pm(a,Ca,S-Ca|0);C=C+4|0}while(C>>>0<=I>>>0);if(!((g&8|0)==0&(F^1)))Pm(a,14152,1);if(C>>>0<sa>>>0&(ya|0)>0){I=ya;S=C;while(1){q=xh(f[S>>2]|0,0,T)|0;if(q>>>0>m>>>0){oh(m|0,48,q-n|0)|0;K=q;while(1){z=K+-1|0;if(z>>>0>m>>>0)K=z;else{Da=z;break}}}else Da=q;Pm(a,Da,(I|0)<9?I:9);S=S+4|0;K=I+-9|0;if(!(S>>>0<sa>>>0&(I|0)>9)){Ea=K;break}else I=K}}else Ea=ya;vi(a,48,Ea+9|0,9,0)}else{I=ta?sa:ra+4|0;if(ra>>>0<I>>>0&(ya|0)>-1){S=m+9|0;T=(g&8|0)==0;C=S;F=0-n|0;K=m+8|0;$=ya;z=ra;while(1){r=xh(f[z>>2]|0,0,S)|0;if((r|0)==(S|0)){b[K>>0]=48;Fa=K}else Fa=r;do if((z|0)==(ra|0)){r=Fa+1|0;Pm(a,Fa,1);if(T&($|0)<1){Ga=r;break}Pm(a,14152,1);Ga=r}else{if(Fa>>>0<=m>>>0){Ga=Fa;break}oh(m|0,48,Fa+F|0)|0;r=Fa;while(1){B=r+-1|0;if(B>>>0>m>>>0)r=B;else{Ga=B;break}}}while(0);q=C-Ga|0;Pm(a,Ga,($|0)>(q|0)?q:$);r=$-q|0;z=z+4|0;if(!(z>>>0<I>>>0&(r|0)>-1)){Ha=r;break}else $=r}}else Ha=ya;vi(a,48,Ha+18|0,18,0);Pm(a,za,p-za|0)}vi(a,32,d,D,g^8192);A=D}while(0);u=j;return ((A|0)<(d|0)?d:A)|0} -function Wf(a){a=a|0;ym(a);ym(a+16|0);ym(a+32|0);ym(a+48|0);ym(a+64|0);ym(a+80|0);ym(a+96|0);ym(a+112|0);ym(a+128|0);ym(a+144|0);ym(a+160|0);ym(a+176|0);ym(a+192|0);ym(a+208|0);ym(a+224|0);ym(a+240|0);ym(a+256|0);ym(a+272|0);ym(a+288|0);ym(a+304|0);ym(a+320|0);ym(a+336|0);ym(a+352|0);ym(a+368|0);ym(a+384|0);ym(a+400|0);ym(a+416|0);ym(a+432|0);ym(a+448|0);ym(a+464|0);ym(a+480|0);ym(a+496|0);return}function Xf(a,b){a=a|0;b=b|0;var c=0,d=Ia,e=0,g=0,h=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=Za(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Hc(a,c);return}if(c>>>0>=b>>>0)return;d=_((f[a+12>>2]|0)>>>0);e=~~_(V(_(d/_(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0){g=1<<32-(Z(e+-1|0)|0);h=e>>>0<2?e:g}else h=Za(e)|0;e=c>>>0<h>>>0?h:c;if(e>>>0>=b>>>0)return;Hc(a,e);return}function Yf(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=u;u=u+80|0;g=e;h=e+64|0;oj(g);i=f[(f[a+8>>2]|0)+56>>2]|0;j=W(Bj(5)|0,d)|0;Ih(g,i,0,d&255,5,0,j,((j|0)<0)<<31>>31,0,0);j=wk(96)|0;$i(j,g);b[j+84>>0]=1;f[j+72>>2]=f[j+68>>2];Fh(j,c)|0;f[h>>2]=j;Lh(a,h);a=f[h>>2]|0;f[h>>2]=0;if(!a){u=e;return}h=a+88|0;j=f[h>>2]|0;f[h>>2]=0;if(j|0){h=f[j+8>>2]|0;if(h|0){f[j+12>>2]=h;Ko(h)}Ko(j)}j=f[a+68>>2]|0;if(j|0){f[a+72>>2]=j;Ko(j)}j=a+64|0;h=f[j>>2]|0;f[j>>2]=0;if(h|0){j=f[h>>2]|0;if(j|0){f[h+4>>2]=j;Ko(j)}Ko(h)}Ko(a);u=e;return}function Zf(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+32|0;e=d+16|0;g=d;switch(c<<24>>24){case 0:{c=wk(48)|0;wn(c);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=c;u=d;return}case 1:{c=wk(52)|0;Am(c);f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=c;u=d;return}default:{c=wk(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=28;h=c;i=11853;j=h+28|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+28>>0]=0;f[e>>2]=-1;c=e+4|0;Yi(c,g);f[a>>2]=f[e>>2];Yi(a+4|0,c);f[a+16>>2]=0;if((b[c+11>>0]|0)<0)Ko(f[c>>2]|0);if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);u=d;return}}}function _f(a,c){a=a|0;c=c|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;e=a+8|0;g=f[e>>2]|0;h=b[g+24>>0]|0;i=h<<24>>24;j=i<<1;k=Ho(i>>>0>2147483647?-1:i<<1)|0;l=f[a+16>>2]|0;if(!(f[l+80>>2]|0))m=0;else m=(f[f[l>>2]>>2]|0)+(f[l+48>>2]|0)|0;if(!c){Io(k);return}if(h<<24>>24>0){h=0;l=0;a=0;while(1){n=0;o=a;while(1){d[k+(n<<1)>>1]=f[m+(o<<2)>>2];n=n+1|0;if((n|0)==(i|0))break;else o=o+1|0}Bf((f[f[(f[e>>2]|0)+64>>2]>>2]|0)+l|0,k|0,j|0)|0;h=h+1|0;if((h|0)==(c|0))break;else{l=l+j|0;a=a+i|0}}Io(k);return}else{Bf(f[f[g+64>>2]>>2]|0,k|0,j|0)|0;if((c|0)==1){Io(k);return}g=0;i=1;do{g=g+j|0;Bf((f[f[(f[e>>2]|0)+64>>2]>>2]|0)+g|0,k|0,j|0)|0;i=i+1|0}while((i|0)!=(c|0));Io(k);return}}function $f(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;d=a+8|0;e=f[d>>2]|0;g=b[e+24>>0]|0;h=g<<24>>24;i=h<<2;j=Ho(h>>>0>1073741823?-1:h<<2)|0;k=f[a+16>>2]|0;if(!(f[k+80>>2]|0))l=0;else l=(f[f[k>>2]>>2]|0)+(f[k+48>>2]|0)|0;if(!c){Io(j);return}if(g<<24>>24>0){g=0;k=0;a=0;while(1){m=0;n=a;while(1){f[j+(m<<2)>>2]=f[l+(n<<2)>>2];m=m+1|0;if((m|0)==(h|0))break;else n=n+1|0}Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+k|0,j|0,i|0)|0;g=g+1|0;if((g|0)==(c|0))break;else{k=k+i|0;a=a+h|0}}Io(j);return}else{Bf(f[f[e+64>>2]>>2]|0,j|0,i|0)|0;if((c|0)==1){Io(j);return}e=0;h=1;do{e=e+i|0;Bf((f[f[(f[d>>2]|0)+64>>2]>>2]|0)+e|0,j|0,i|0)|0;h=h+1|0}while((h|0)!=(c|0));Io(j);return}}function ag(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,k=0,l=0,m=0,n=0,o=0;c=b+8|0;d=f[c>>2]|0;e=f[c+4>>2]|0;c=b+16|0;g=c;i=f[g>>2]|0;k=f[g+4>>2]|0;g=vl(i|0,k|0,4,0)|0;l=H;if((e|0)<(l|0)|(e|0)==(l|0)&d>>>0<g>>>0){m=0;return m|0}n=(f[b>>2]|0)+i|0;o=h[n>>0]|h[n+1>>0]<<8|h[n+2>>0]<<16|h[n+3>>0]<<24;n=c;f[n>>2]=g;f[n+4>>2]=l;do if((j[b+38>>1]|0)<514){l=vl(i|0,k|0,8,0)|0;n=H;if((e|0)<(n|0)|(e|0)==(n|0)&d>>>0<l>>>0){m=0;return m|0}else{g=c;f[g>>2]=l;f[g+4>>2]=n;break}}while(0);if(!(o&1)){m=0;return m|0}c=(Z(o|0)|0)^31;if((c+-1|0)>>>0>28){m=0;return m|0}f[a+8>>2]=c+1;o=2<<c;f[a+12>>2]=o+-1;c=o+-2|0;f[a+16>>2]=c;f[a+20>>2]=(c|0)/2|0;m=1;return m|0}function bg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+16|0;e=d;g=f[c>>2]|0;f[c>>2]=0;f[e>>2]=g;Ef(a,b,e);g=f[e>>2]|0;f[e>>2]=0;if(g|0){e=g+88|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0){e=f[c+8>>2]|0;if(e|0){f[c+12>>2]=e;Ko(e)}Ko(c)}c=f[g+68>>2]|0;if(c|0){f[g+72>>2]=c;Ko(c)}c=g+64|0;e=f[c>>2]|0;f[c>>2]=0;if(e|0){c=f[e>>2]|0;if(c|0){f[e+4>>2]=c;Ko(c)}Ko(e)}Ko(g)}g=a+84|0;e=a+88|0;a=f[g>>2]|0;c=(f[e>>2]|0)-a>>2;if((c|0)>(b|0)){u=d;return}h=b+1|0;if(h>>>0>c>>>0){Sf(g,h-c|0);u=d;return}if(h>>>0>=c>>>0){u=d;return}f[e>>2]=a+(h<<2);u=d;return}function cg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>3>>>0>=b>>>0){h=b;i=g;do{j=i;f[j>>2]=0;f[j+4>>2]=0;i=(f[e>>2]|0)+8|0;f[e>>2]=i;h=h+-1|0}while((h|0)!=0);return}h=f[a>>2]|0;i=g-h|0;g=i>>3;j=g+b|0;if(j>>>0>536870911)$n(a);k=d-h|0;d=k>>2;l=k>>3>>>0<268435455?(d>>>0<j>>>0?j:d):536870911;do if(l)if(l>>>0>536870911){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{d=wk(l<<3)|0;m=d;n=d;break}else{m=0;n=0}while(0);oh(m+(g<<3)|0,0,b<<3|0)|0;if((i|0)>0)Bf(n|0,h|0,i|0)|0;f[a>>2]=m;f[e>>2]=m+(j<<3);f[c>>2]=m+(l<<3);if(!h)return;Ko(h);return}function dg(a,b){a=a|0;b=b|0;var c=0,d=Ia,e=0,g=0,h=0;if((b|0)!=1)if(!(b+-1&b))c=b;else c=Za(b)|0;else c=2;b=f[a+4>>2]|0;if(c>>>0>b>>>0){Oc(a,c);return}if(c>>>0>=b>>>0)return;d=_((f[a+12>>2]|0)>>>0);e=~~_(V(_(d/_(n[a+16>>2]))))>>>0;if(b>>>0>2&(b+-1&b|0)==0){g=1<<32-(Z(e+-1|0)|0);h=e>>>0<2?e:g}else h=Za(e)|0;e=c>>>0<h>>>0?h:c;if(e>>>0>=b>>>0)return;Oc(a,e);return}function eg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;d=a+4|0;e=f[d>>2]|0;g=f[a>>2]|0;h=e-g|0;i=g;a:do if(h>>>0<c>>>0){j=c-h|0;k=a+8|0;l=f[k>>2]|0;if((l-e|0)>>>0>=j>>>0){m=j;n=e;while(1){b[n>>0]=0;n=(f[d>>2]|0)+1|0;f[d>>2]=n;m=m+-1|0;if(!m)break a}}if((c|0)<0)$n(a);m=l-g|0;n=m<<1;o=m>>>0<1073741823?(n>>>0<c>>>0?c:n):2147483647;if(!o)p=0;else p=wk(o)|0;oh(p+h|0,0,j|0)|0;if((h|0)>0)Bf(p|0,i|0,h|0)|0;f[a>>2]=p;f[d>>2]=p+c;f[k>>2]=p+o;if(g|0)Ko(i)}else if(h>>>0>c>>>0)f[d>>2]=i+c;while(0);c=a+24|0;a=c;i=vl(f[a>>2]|0,f[a+4>>2]|0,1,0)|0;a=c;f[a>>2]=i;f[a+4>>2]=H;return}function fg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;f[a>>2]=0;d=a+4|0;f[d>>2]=0;e=a+8|0;f[e>>2]=0;if(!b)return;if(b>>>0>357913941)$n(a);g=wk(b*12|0)|0;f[d>>2]=g;f[a>>2]=g;f[e>>2]=g+(b*12|0);e=c+4|0;a=b;b=g;while(1){f[b>>2]=0;g=b+4|0;f[g>>2]=0;h=b+8|0;f[h>>2]=0;i=(f[e>>2]|0)-(f[c>>2]|0)|0;j=i>>2;if(i|0){if(j>>>0>1073741823){k=7;break}l=wk(i)|0;f[g>>2]=l;f[b>>2]=l;f[h>>2]=l+(j<<2);j=f[c>>2]|0;h=(f[e>>2]|0)-j|0;if((h|0)>0){Bf(l|0,j|0,h|0)|0;f[g>>2]=l+(h>>>2<<2)}}h=(f[d>>2]|0)+12|0;f[d>>2]=h;a=a+-1|0;if(!a){k=11;break}else b=h}if((k|0)==7)$n(b);else if((k|0)==11)return}function gg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0;d=u;u=u+16|0;e=d;if(!c){g=0;u=d;return g|0}h=a+84|0;i=f[h>>2]|0;f[h>>2]=0;f[a+88>>2]=0;f[a+92>>2]=0;if(i|0)Ko(i);i=a+72|0;h=f[i>>2]|0;f[i>>2]=0;f[a+76>>2]=0;f[a+80>>2]=0;if(h|0)Ko(h);h=c+4|0;i=(f[h>>2]|0)-(f[c>>2]|0)>>2;b[e>>0]=0;Gf(a,i,e);i=c+24|0;j=c+28|0;k=(f[j>>2]|0)-(f[i>>2]|0)>>2;b[e>>0]=0;Gf(a+12|0,k,e);nf(a+28|0,(f[h>>2]|0)-(f[c>>2]|0)>>2,3764);Wh(a+52|0,(f[j>>2]|0)-(f[i>>2]|0)>>2);Wh(a+40|0,(f[j>>2]|0)-(f[i>>2]|0)>>2);f[a+64>>2]=c;b[a+24>>0]=1;g=1;u=d;return g|0}function hg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=f[a+40>>2]|0;d=c;e=a+44|0;a=f[e>>2]|0;if((a|0)==(c|0))return;g=d;h=c;while(1){if((f[(f[h>>2]|0)+40>>2]|0)==(b|0))break;i=h+4|0;if((a|0)==(i|0)){j=16;break}else{g=i;h=i}}if((j|0)==16)return;h=c+(g-d>>2<<2)|0;d=h+4|0;if((d|0)!=(a|0)){g=d;d=h;do{c=f[g>>2]|0;f[g>>2]=0;b=f[d>>2]|0;f[d>>2]=c;if(b|0){eh(b);Ko(b)}g=g+4|0;d=d+4|0}while((g|0)!=(a|0));g=f[e>>2]|0;if((g|0)==(d|0))k=d;else{l=d;m=g;j=10}}else{l=h;m=a;j=10}if((j|0)==10){j=m;do{j=j+-4|0;m=f[j>>2]|0;f[j>>2]=0;if(m|0){eh(m);Ko(m)}}while((j|0)!=(l|0));k=l}f[e>>2]=k;return}function ig(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=u;u=u+16|0;d=c;e=f[(f[a>>2]|0)+8>>2]|0;g=a+8|0;h=a+12|0;i=(f[h>>2]|0)-(f[g>>2]|0)>>2;j=f[b>>2]|0;f[b>>2]=0;f[d>>2]=j;Ra[e&15](a,i,d);i=f[d>>2]|0;f[d>>2]=0;if(!i){k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}d=i+88|0;a=f[d>>2]|0;f[d>>2]=0;if(a|0){d=f[a+8>>2]|0;if(d|0){f[a+12>>2]=d;Ko(d)}Ko(a)}a=f[i+68>>2]|0;if(a|0){f[i+72>>2]=a;Ko(a)}a=i+64|0;d=f[a>>2]|0;f[a>>2]=0;if(d|0){a=f[d>>2]|0;if(a|0){f[d+4>>2]=a;Ko(a)}Ko(d)}Ko(i);k=f[h>>2]|0;l=f[g>>2]|0;m=k-l|0;n=m>>2;o=n+-1|0;u=c;return o|0}function jg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=a+640|0;c=f[b>>2]|0;if(c|0){d=a+644|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{e=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[e+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}g=a+628|0;c=f[g>>2]|0;if(c|0){d=a+632|0;b=f[d>>2]|0;if((b|0)==(c|0))j=c;else{h=b;do{b=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[b+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));j=f[g>>2]|0}f[d>>2]=c;Ko(j)}j=f[a+616>>2]|0;if(j|0){f[a+620>>2]=j;Ko(j)}j=f[a+604>>2]|0;if(j|0){f[a+608>>2]=j;Ko(j)}zk(a+584|0);zk(a+564|0);zk(a+544|0);Oo(a+16|0);return}function kg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=wk(72)|0;Gk(c);d=c;if((b|0)<0){Pa[f[(f[c>>2]|0)+4>>2]&127](c);e=0;return e|0}c=a+8|0;g=a+12|0;a=f[g>>2]|0;h=f[c>>2]|0;i=a-h>>2;do if((i|0)<=(b|0)){j=b+1|0;k=a;if(j>>>0>i>>>0){Se(c,j-i|0);break}if(j>>>0<i>>>0){l=h+(j<<2)|0;if((l|0)!=(k|0)){j=k;do{j=j+-4|0;k=f[j>>2]|0;f[j>>2]=0;if(k|0)Pa[f[(f[k>>2]|0)+4>>2]&127](k)}while((j|0)!=(l|0))}f[g>>2]=l}}while(0);g=(f[c>>2]|0)+(b<<2)|0;b=f[g>>2]|0;f[g>>2]=d;if(!b){e=1;return e|0}Pa[f[(f[b>>2]|0)+4>>2]&127](b);e=1;return e|0}function lg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;e=d+16|0;g=f[e>>2]|0;if(!g)if(!(bj(d)|0)){h=f[e>>2]|0;i=5}else j=0;else{h=g;i=5}a:do if((i|0)==5){g=d+20|0;e=f[g>>2]|0;k=e;if((h-e|0)>>>0<c>>>0){j=Ma[f[d+36>>2]&31](d,a,c)|0;break}b:do if((b[d+75>>0]|0)<0|(c|0)==0){l=0;m=a;n=c;o=k}else{e=c;while(1){p=e+-1|0;if((b[a+p>>0]|0)==10)break;if(!p){l=0;m=a;n=c;o=k;break b}else e=p}p=Ma[f[d+36>>2]&31](d,a,e)|0;if(p>>>0<e>>>0){j=p;break a}l=e;m=a+e|0;n=c-e|0;o=f[g>>2]|0}while(0);Bf(o|0,m|0,n|0)|0;f[g>>2]=(f[g>>2]|0)+n;j=l+n|0}while(0);return j|0}function mg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=a+60|0;d=f[c>>2]|0;if(!d){e=0;return e|0}f[d+4>>2]=a+48;if(!(Ka[f[(f[d>>2]|0)+12>>2]&127](d)|0)){e=0;return e|0}d=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;a:do if((d|0)>0){g=0;while(1){h=(Ka[f[(f[a>>2]|0)+28>>2]&127](a)|0)+4|0;i=f[h>>2]|0;h=La[f[(f[a>>2]|0)+20>>2]&127](a,g)|0;j=f[c>>2]|0;g=g+1|0;if(!(La[f[(f[j>>2]|0)+8>>2]&127](j,f[(f[i+8>>2]|0)+(h<<2)>>2]|0)|0)){e=0;break}if((g|0)>=(d|0))break a}return e|0}while(0);if(!(La[f[(f[a>>2]|0)+36>>2]&127](a,b)|0)){e=0;return e|0}if(!(La[f[(f[a>>2]|0)+40>>2]&127](a,b)|0)){e=0;return e|0}e=Ka[f[(f[a>>2]|0)+44>>2]&127](a)|0;return e|0}function ng(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;a=u;u=u+32|0;e=a+12|0;g=a;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;lh(c,g,e)|0;c=e+11|0;h=b[c>>0]|0;i=h<<24>>24<0?f[e>>2]|0:e;if((b[g+11>>0]|0)<0){Ko(f[g>>2]|0);n=b[c>>0]|0}else n=h;if(n<<24>>24>=0){u=a;return i|0}Ko(f[e>>2]|0);u=a;return i|0}function og(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=wk(88)|0;d=c+60|0;e=c;g=e+60|0;do{f[e>>2]=0;e=e+4|0}while((e|0)<(g|0));f[d>>2]=c;d=c+64|0;f[d>>2]=0;f[d+4>>2]=0;f[d+8>>2]=0;f[d+12>>2]=0;f[d+16>>2]=0;f[d+20>>2]=0;d=jf(c,b)|0;b=d?0:c;f[a>>2]=d?c:0;if(d)return;a=f[b+76>>2]|0;if(a|0){f[b+80>>2]=a;Ko(a)}a=f[b+64>>2]|0;if(a|0){f[b+68>>2]=a;Ko(a)}a=f[b+48>>2]|0;if(a|0){f[b+52>>2]=a;Ko(a)}a=f[b+24>>2]|0;if(a|0){f[b+28>>2]=a;Ko(a)}a=f[b+12>>2]|0;if(a|0){f[b+16>>2]=a;Ko(a)}a=f[b>>2]|0;if(a|0){f[b+4>>2]=a;Ko(a)}Ko(d?0:c);return}function pg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0;c=a+4|0;if((Ka[f[(f[b>>2]|0)+20>>2]&127](b)|0)<=0){d=1;return d|0}a=0;while(1){e=f[(f[c>>2]|0)+4>>2]|0;g=Kj(e,La[f[(f[b>>2]|0)+24>>2]&127](b,a)|0)|0;if((g|0)==-1){d=0;i=9;break}e=f[c>>2]|0;if(((h[e+36>>0]|0)<<8&65535)<512){if(!(La[f[(f[b>>2]|0)+28>>2]&127](b,f[(f[(f[e+4>>2]|0)+8>>2]|0)+(g<<2)>>2]|0)|0)){d=0;i=9;break}}else{j=Qi(e,g)|0;if(!j){d=0;i=9;break}if(!(La[f[(f[b>>2]|0)+28>>2]&127](b,j)|0)){d=0;i=9;break}}a=a+1|0;if((a|0)>=(Ka[f[(f[b>>2]|0)+20>>2]&127](b)|0)){d=1;i=9;break}}if((i|0)==9)return d|0;return 0}function qg(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;d=(f[b+4>>2]|0)-(f[b>>2]|0)|0;b=d>>2;e=a+8|0;a=f[(f[e>>2]|0)+40>>2]|0;g=Ho((a|0)>-1?a:-1)|0;h=c+8|0;if((d|0)<=0){i=1;Io(g);return i|0}d=c+16|0;j=0;k=0;while(1){l=h;m=f[l>>2]|0;n=f[l+4>>2]|0;l=d;o=f[l>>2]|0;p=vl(o|0,f[l+4>>2]|0,a|0,0)|0;l=H;if((n|0)<(l|0)|(n|0)==(l|0)&m>>>0<p>>>0){i=0;q=5;break}Bf(g|0,(f[c>>2]|0)+o|0,a|0)|0;o=d;f[o>>2]=p;f[o+4>>2]=l;Bf((f[f[(f[e>>2]|0)+64>>2]>>2]|0)+j|0,g|0,a|0)|0;k=k+1|0;if((k|0)>=(b|0)){i=1;q=5;break}else j=j+a|0}if((q|0)==5){Io(g);return i|0}return 0}function rg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=a+216|0;e=a+220|0;g=f[d>>2]|0;if((f[e>>2]|0)==(g|0))return 0;h=a+4|0;a=0;i=g;a:while(1){g=f[i+(a*144|0)>>2]|0;if(((g|0)>=0?(j=f[h>>2]|0,k=f[j+8>>2]|0,(g|0)<((f[j+12>>2]|0)-k>>2|0)):0)?(j=f[k+(g<<2)>>2]|0,(Ka[f[(f[j>>2]|0)+24>>2]&127](j)|0)>0):0){g=0;do{if((La[f[(f[j>>2]|0)+20>>2]&127](j,g)|0)==(c|0)){l=9;break a}g=g+1|0}while((g|0)<(Ka[f[(f[j>>2]|0)+24>>2]&127](j)|0))}j=a+1|0;i=f[d>>2]|0;if(j>>>0>=(((f[e>>2]|0)-i|0)/144|0)>>>0){l=11;break}else a=j}if((l|0)==9){i=f[d>>2]|0;return ((b[i+(a*144|0)+100>>0]|0)==0?0:i+(a*144|0)+4|0)|0}else if((l|0)==11)return 0;return 0}function sg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0,l=0,m=0;c=b+8|0;d=f[c>>2]|0;e=f[c+4>>2]|0;c=b+16|0;g=c;i=f[g>>2]|0;j=f[g+4>>2]|0;g=vl(i|0,j|0,4,0)|0;k=H;if((e|0)<(k|0)|(e|0)==(k|0)&d>>>0<g>>>0){l=0;return l|0}m=(f[b>>2]|0)+i|0;b=h[m>>0]|h[m+1>>0]<<8|h[m+2>>0]<<16|h[m+3>>0]<<24;m=c;f[m>>2]=g;f[m+4>>2]=k;k=vl(i|0,j|0,8,0)|0;j=H;if((e|0)<(j|0)|(e|0)==(j|0)&d>>>0<k>>>0){l=0;return l|0}d=c;f[d>>2]=k;f[d+4>>2]=j;if(!(b&1)){l=0;return l|0}j=(Z(b|0)|0)^31;if((j+-1|0)>>>0>28){l=0;return l|0}f[a+8>>2]=j+1;b=2<<j;f[a+12>>2]=b+-1;j=b+-2|0;f[a+16>>2]=j;f[a+20>>2]=(j|0)/2|0;l=1;return l|0}function tg(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;if(b>>>0<64){b=f[a+12>>2]|0;if(b>>>0<=1){e=0;return e|0}d=f[c>>2]|0;c=0;g=1;while(1){h=(f[d+(c<<2)>>2]|0)>>>0>(f[d+(g<<2)>>2]|0)>>>0?g:c;g=g+1|0;if(g>>>0>=b>>>0){e=h;break}else c=h}return e|0}c=a+580|0;b=f[c>>2]|0;g=32-b|0;d=a+576|0;if((g|0)<4){h=f[d>>2]|0;i=h+4|0;if((i|0)==(f[a+568>>2]|0)){e=0;return e|0}j=f[h>>2]<<b;h=4-g|0;f[c>>2]=h;f[d>>2]=i;k=32-h|0;e=(f[i>>2]|0)>>>k|j>>>(k-g|0);return e|0}g=f[d>>2]|0;if((g|0)==(f[a+568>>2]|0)){e=0;return e|0}a=f[g>>2]<<b>>>28;k=b+4|0;f[c>>2]=k;if((k|0)!=32){e=a;return e|0}f[d>>2]=g+4;f[c>>2]=0;e=a;return e|0}function ug(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=a+216|0;d=a+220|0;e=f[c>>2]|0;a:do if((f[d>>2]|0)!=(e|0)){g=a+4|0;h=0;i=e;b:while(1){j=f[i+(h*144|0)>>2]|0;if(((j|0)>=0?(k=f[g>>2]|0,l=f[k+8>>2]|0,(j|0)<((f[k+12>>2]|0)-l>>2|0)):0)?(k=f[l+(j<<2)>>2]|0,(Ka[f[(f[k>>2]|0)+24>>2]&127](k)|0)>0):0){j=0;do{if((La[f[(f[k>>2]|0)+20>>2]&127](k,j)|0)==(b|0))break b;j=j+1|0}while((j|0)<(Ka[f[(f[k>>2]|0)+24>>2]&127](k)|0))}k=h+1|0;i=f[c>>2]|0;if(k>>>0>=(((f[d>>2]|0)-i|0)/144|0)>>>0)break a;else h=k}m=(f[c>>2]|0)+(h*144|0)+104|0;return m|0}while(0);m=a+184|0;return m|0}function vg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+32|0;d=c+16|0;e=c+8|0;g=c;h=a+8|0;if(f[h>>2]<<5>>>0>=b>>>0){u=c;return}f[d>>2]=0;i=d+4|0;f[i>>2]=0;j=d+8|0;f[j>>2]=0;if((b|0)<0)$n(d);k=((b+-1|0)>>>5)+1|0;b=wk(k<<2)|0;f[d>>2]=b;f[i>>2]=0;f[j>>2]=k;k=f[a>>2]|0;f[e>>2]=k;f[e+4>>2]=0;b=a+4|0;l=f[b>>2]|0;f[g>>2]=k+(l>>>5<<2);f[g+4>>2]=l&31;Xe(d,e,g);g=f[a>>2]|0;f[a>>2]=f[d>>2];f[d>>2]=g;d=f[b>>2]|0;f[b>>2]=f[i>>2];f[i>>2]=d;d=f[h>>2]|0;f[h>>2]=f[j>>2];f[j>>2]=d;if(g|0)Ko(g);u=c;return}function wg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;c=u;u=u+16|0;e=c;do if(((h[(f[a+4>>2]|0)+36>>0]|0)<<8&65535)>511){g=d+8|0;i=f[g+4>>2]|0;j=d+16|0;k=j;l=f[k>>2]|0;m=f[k+4>>2]|0;if((i|0)>(m|0)|((i|0)==(m|0)?(f[g>>2]|0)>>>0>l>>>0:0)){g=b[(f[d>>2]|0)+l>>0]|0;i=vl(l|0,m|0,1,0)|0;m=j;f[m>>2]=i;f[m+4>>2]=H;m=g&255;f[a+24>>2]=m;n=m;break}else{o=0;u=c;return o|0}}else n=f[a+24>>2]|0;while(0);f[e>>2]=1200;f[e+4>>2]=-1;kn(e,n);o=Si(e,f[a+16>>2]|0)|0;u=c;return o|0}function xg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=d-e>>2;h=d;if(g>>>0<b>>>0){de(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b<<2)|0;if((g|0)!=(h|0)){b=h;do{b=b+-4|0;h=f[b>>2]|0;f[b>>2]=0;if(h|0){e=h+88|0;a=f[e>>2]|0;f[e>>2]=0;if(a|0){e=f[a+8>>2]|0;if(e|0){f[a+12>>2]=e;Ko(e)}Ko(a)}a=f[h+68>>2]|0;if(a|0){f[h+72>>2]=a;Ko(a)}a=h+64|0;e=f[a>>2]|0;f[a>>2]=0;if(e|0){a=f[e>>2]|0;if(a|0){f[e+4>>2]=a;Ko(a)}Ko(e)}Ko(h)}}while((b|0)!=(g|0))}f[c>>2]=g;return}function yg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=(e|0)/12|0;h=g+1|0;if(h>>>0>357913941)$n(a);i=a+8|0;j=((f[i>>2]|0)-d|0)/12|0;k=j<<1;l=j>>>0<178956970?(k>>>0<h>>>0?h:k):357913941;do if(l)if(l>>>0>357913941){k=qa(8)|0;Dm(k,13552);f[k>>2]=4908;ta(k|0,1128,105)}else{m=wk(l*12|0)|0;break}else m=0;while(0);k=m+(g*12|0)|0;f[k>>2]=f[b>>2];f[k+4>>2]=f[b+4>>2];f[k+8>>2]=f[b+8>>2];b=k+(((e|0)/-12|0)*12|0)|0;if((e|0)>0)Bf(b|0,d|0,e|0)|0;f[a>>2]=b;f[c>>2]=k+12;f[i>>2]=m+(l*12|0);if(!d)return;Ko(d);return}function zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0;c=u;u=u+16|0;d=c;e=Le(a,d,b)|0;g=f[e>>2]|0;if(g|0){h=g;i=h+28|0;u=c;return i|0}g=wk(40)|0;Yi(g+16|0,b);b=g+28|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;b=f[d>>2]|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=b;f[e>>2]=g;b=f[f[a>>2]>>2]|0;if(!b)j=g;else{f[a>>2]=b;j=f[e>>2]|0}vd(f[a+4>>2]|0,j);j=a+8|0;f[j>>2]=(f[j>>2]|0)+1;h=g;i=h+28|0;u=c;return i|0}function Ag(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=3776;b=f[a+68>>2]|0;if(b|0){f[a+72>>2]=b;Ko(b)}b=f[a+56>>2]|0;if(b|0){f[a+60>>2]=b;Ko(b)}b=f[a+44>>2]|0;if(b|0){f[a+48>>2]=b;Ko(b)}b=f[a+32>>2]|0;if(b|0){f[a+36>>2]=b;Ko(b)}b=f[a+20>>2]|0;if(b|0){f[a+24>>2]=b;Ko(b)}Pg(a+8|0);b=a+4|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=a+40|0;c=f[b>>2]|0;if(c|0){d=a+44|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{h=h+-4|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0){eh(e);Ko(e)}}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}eh(a);Ko(a);return}function Bg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=u;u=u+112|0;d=c+96|0;e=c+16|0;g=c+4|0;h=c;i=e+76|0;j=e;k=j+76|0;do{f[j>>2]=0;j=j+4|0}while((j|0)<(k|0));f[i>>2]=-1;f[g>>2]=0;i=g+4|0;f[i>>2]=0;f[g+8>>2]=0;f[h>>2]=g;f[d>>2]=f[h>>2];if(Pc(e,a,d)|0){d=f[g>>2]|0;Ye(b,d,d+((f[i>>2]|0)-d>>2<<2)|0);l=f[e+68>>2]|0}else l=0;d=f[g>>2]|0;if(!d){hh(e);u=c;return l|0}f[i>>2]=d;Ko(d);hh(e);u=c;return l|0}function Cg(a,c,d,e,g,h,i,j){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;var k=0,l=0,m=0,n=0,o=0,p=0;k=u;u=u+16|0;l=k;if((-18-c|0)>>>0<d>>>0)$n(a);if((b[a+11>>0]|0)<0)m=f[a>>2]|0;else m=a;if(c>>>0<2147483623){n=d+c|0;d=c<<1;o=n>>>0<d>>>0?d:n;p=o>>>0<11?11:o+16&-16}else p=-17;o=wk(p)|0;if(g|0)um(o,m,g)|0;if(i|0)um(o+g|0,j,i)|0;j=e-h|0;e=j-g|0;if(e|0)um(o+g+i|0,m+g+h|0,e)|0;if((c|0)!=10)Ko(m);f[a>>2]=o;f[a+8>>2]=p|-2147483648;p=j+i|0;f[a+4>>2]=p;b[l>>0]=0;xn(o+p|0,l);u=k;return}function Dg(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=a+12|0;d=f[c>>2]|0;f[c>>2]=0;if(d|0){c=f[d+28>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;Dg(c+8|0);Ko(c)}while((e|0)!=0)}e=d+20|0;c=f[e>>2]|0;f[e>>2]=0;if(c|0)Ko(c);c=f[d+8>>2]|0;if(c|0){e=c;do{c=e;e=f[e>>2]|0;g=c+8|0;h=f[c+20>>2]|0;if(h|0){f[c+24>>2]=h;Ko(h)}if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);Ko(c)}while((e|0)!=0)}e=f[d>>2]|0;f[d>>2]=0;if(e|0)Ko(e);Ko(d)}if((b[a+11>>0]|0)>=0)return;Ko(f[a>>2]|0);return}function Eg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+8|0;d=f[c>>2]|0;e=a+4|0;g=f[e>>2]|0;if(d-g>>2>>>0>=b>>>0){oh(g|0,0,b<<2|0)|0;f[e>>2]=g+(b<<2);return}h=f[a>>2]|0;i=g-h|0;g=i>>2;j=g+b|0;if(j>>>0>1073741823)$n(a);k=d-h|0;d=k>>1;l=k>>2>>>0<536870911?(d>>>0<j>>>0?j:d):1073741823;do if(l)if(l>>>0>1073741823){d=qa(8)|0;Dm(d,13552);f[d>>2]=4908;ta(d|0,1128,105)}else{d=wk(l<<2)|0;m=d;n=d;break}else{m=0;n=0}while(0);d=m+(g<<2)|0;oh(d|0,0,b<<2|0)|0;if((i|0)>0)Bf(n|0,h|0,i|0)|0;f[a>>2]=m;f[e>>2]=d+(b<<2);f[c>>2]=m+(l<<2);if(!h)return;Ko(h);return}function Fg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0;a=u;u=u+16|0;e=a;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;g=Dh(d)|0;if(g>>>0>4294967279)$n(e);if(g>>>0<11){b[e+11>>0]=g;if(!g)h=e;else{i=e;j=6}}else{k=g+16&-16;l=wk(k)|0;f[e>>2]=l;f[e+8>>2]=k|-2147483648;f[e+4>>2]=g;i=l;j=6}if((j|0)==6){Bf(i|0,d|0,g|0)|0;h=i}b[h+g>>0]=0;g=(Dc(c,e)|0)!=0;if((b[e+11>>0]|0)>=0){u=a;return g|0}Ko(f[e>>2]|0);u=a;return g|0}function Gg(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3456;b=a+84|0;c=a+4|0;d=c+80|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+88>>2]=-1;f[a+92>>2]=-1;b=a+152|0;c=a+96|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=1065353216;b=a+212|0;c=a+156|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+216>>2]=0;f[a+220>>2]=0;f[a+224>>2]=0;ak(a+232|0);b=a+380|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[a+400>>2]=-1;f[a+404>>2]=-1;f[a+408>>2]=2;f[a+412>>2]=7;b=a+416|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;return}function Hg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=u;u=u+32|0;e=a+12|0;g=a;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;h=lh(c,g,e)|0;if((b[g+11>>0]|0)<0)Ko(f[g>>2]|0);if((b[e+11>>0]|0)>=0){u=a;return h|0}Ko(f[e>>2]|0);u=a;return h|0}function Ig(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;e=u;u=u+16|0;g=e;h=c+11|0;i=b[h>>0]|0;if(i<<24>>24<0)j=f[c+4>>2]|0;else j=i&255;k=j;j=i;while(1){if(j<<24>>24<0)l=f[c>>2]|0;else l=c;f[g>>2]=d;m=Qk(l,k+1|0,16046,g)|0;if((m|0)>-1)if(m>>>0>k>>>0)n=m;else break;else n=k<<1|1;Gh(c,n,0);k=n;j=b[h>>0]|0}Gh(c,m,0);f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2];a=0;while(1){if((a|0)==3)break;f[c+(a<<2)>>2]=0;a=a+1|0}u=e;return}function Jg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0;b=a+140|0;c=f[b>>2]|0;if((c|0)<=0){d=1;return d|0}e=c<<4;g=Ho(c>>>0>268435455|e>>>0>4294967291?-1:e+4|0)|0;f[g>>2]=c;e=g+4|0;g=e+(c<<4)|0;c=e;do{ym(c);c=c+16|0}while((c|0)!=(g|0));g=a+136|0;c=f[g>>2]|0;f[g>>2]=e;if(c|0){e=c+-4|0;h=f[e>>2]|0;if(h|0){i=c+(h<<4)|0;do i=i+-16|0;while((i|0)!=(c|0))}Io(e)}if((f[b>>2]|0)<=0){d=1;return d|0}e=0;while(1){if(!(rd((f[g>>2]|0)+(e<<4)|0,a)|0)){d=0;j=13;break}e=e+1|0;if((e|0)>=(f[b>>2]|0)){d=1;j=13;break}}if((j|0)==13)return d|0;return 0}function Kg(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0;d=a+4|0;e=f[d>>2]|0;g=f[a>>2]|0;h=e-g|0;i=g;if(h>>>0>=c>>>0){if(h>>>0<=c>>>0)return;f[d>>2]=i+c;return}j=c-h|0;k=a+8|0;l=f[k>>2]|0;if((l-e|0)>>>0>=j>>>0){m=j;n=e;do{b[n>>0]=0;n=(f[d>>2]|0)+1|0;f[d>>2]=n;m=m+-1|0}while((m|0)!=0);return}if((c|0)<0)$n(a);m=l-g|0;l=m<<1;n=m>>>0<1073741823?(l>>>0<c>>>0?c:l):2147483647;if(!n)o=0;else o=wk(n)|0;oh(o+h|0,0,j|0)|0;if((h|0)>0)Bf(o|0,i|0,h|0)|0;f[a>>2]=o;f[d>>2]=o+c;f[k>>2]=o+n;if(!g)return;Ko(i);return}function Lg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=Dc(a,c)|0;if(!e){g=0;return g|0}c=f[e+20>>2]|0;if(((f[e+24>>2]|0)-c|0)!=8){g=0;return g|0}e=c;c=e;a=h[c>>0]|h[c+1>>0]<<8|h[c+2>>0]<<16|h[c+3>>0]<<24;c=e+4|0;e=h[c>>0]|h[c+1>>0]<<8|h[c+2>>0]<<16|h[c+3>>0]<<24;c=d;d=c;b[d>>0]=a;b[d+1>>0]=a>>8;b[d+2>>0]=a>>16;b[d+3>>0]=a>>24;a=c+4|0;b[a>>0]=e;b[a+1>>0]=e>>8;b[a+2>>0]=e>>16;b[a+3>>0]=e>>24;g=1;return g|0}function Mg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;do if(a){if(c>>>0<128){b[a>>0]=c;e=1;break}d=(Eo()|0)+188|0;if(!(f[f[d>>2]>>2]|0))if((c&-128|0)==57216){b[a>>0]=c;e=1;break}else{d=Ro()|0;f[d>>2]=84;e=-1;break}if(c>>>0<2048){b[a>>0]=c>>>6|192;b[a+1>>0]=c&63|128;e=2;break}if(c>>>0<55296|(c&-8192|0)==57344){b[a>>0]=c>>>12|224;b[a+1>>0]=c>>>6&63|128;b[a+2>>0]=c&63|128;e=3;break}if((c+-65536|0)>>>0<1048576){b[a>>0]=c>>>18|240;b[a+1>>0]=c>>>12&63|128;b[a+2>>0]=c>>>6&63|128;b[a+3>>0]=c&63|128;e=4;break}else{d=Ro()|0;f[d>>2]=84;e=-1;break}}else e=1;while(0);return e|0}function Ng(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0;c=a+4|0;d=f[a>>2]|0;e=(f[c>>2]|0)-d|0;g=e>>2;h=g+1|0;if(h>>>0>1073741823)$n(a);i=a+8|0;j=(f[i>>2]|0)-d|0;k=j>>1;l=j>>2>>>0<536870911?(k>>>0<h>>>0?h:k):1073741823;do if(l)if(l>>>0>1073741823){k=qa(8)|0;Dm(k,13552);f[k>>2]=4908;ta(k|0,1128,105)}else{k=wk(l<<2)|0;m=k;n=k;break}else{m=0;n=0}while(0);k=m+(g<<2)|0;f[k>>2]=f[b>>2];if((e|0)>0)Bf(n|0,d|0,e|0)|0;f[a>>2]=m;f[c>>2]=k+4;f[i>>2]=m+(l<<2);if(!d)return;Ko(d);return}function Og(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;b=f[a+4>>2]|0;c=a+8|0;d=f[c>>2]|0;if((d|0)!=(b|0)){e=d;do{d=e+-4|0;f[c>>2]=d;g=f[d>>2]|0;f[d>>2]=0;if(g|0){d=g+88|0;h=f[d>>2]|0;f[d>>2]=0;if(h|0){d=f[h+8>>2]|0;if(d|0){f[h+12>>2]=d;Ko(d)}Ko(h)}h=f[g+68>>2]|0;if(h|0){f[g+72>>2]=h;Ko(h)}h=g+64|0;d=f[h>>2]|0;f[h>>2]=0;if(d|0){h=f[d>>2]|0;if(h|0){f[d+4>>2]=h;Ko(h)}Ko(d)}Ko(g)}e=f[c>>2]|0}while((e|0)!=(b|0))}b=f[a>>2]|0;if(!b)return;Ko(b);return}function Pg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{g=g+-4|0;d=f[g>>2]|0;f[g>>2]=0;if(d|0){h=d+88|0;i=f[h>>2]|0;f[h>>2]=0;if(i|0){h=f[i+8>>2]|0;if(h|0){f[i+12>>2]=h;Ko(h)}Ko(i)}i=f[d+68>>2]|0;if(i|0){f[d+72>>2]=i;Ko(i)}i=d+64|0;h=f[i>>2]|0;f[i>>2]=0;if(h|0){i=f[h>>2]|0;if(i|0){f[h+4>>2]=i;Ko(i)}Ko(h)}Ko(d)}}while((g|0)!=(b|0));e=f[a>>2]|0}f[c>>2]=b;Ko(e);return}function Qg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0.0;a=u;u=u+32|0;e=a;g=a+8|0;p[e>>3]=0.0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;Lg(c,g,e)|0;n=+p[e>>3];if((b[g+11>>0]|0)>=0){u=a;return +n}Ko(f[g>>2]|0);u=a;return +n}function Rg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0;d=u;u=u+32|0;c=d;if((h[(f[a+4>>2]|0)+36>>0]<<8&65535)>511?!(Ka[f[(f[a>>2]|0)+52>>2]&127](a)|0):0){e=0;u=d;return e|0}f[c>>2]=1228;f[c+4>>2]=-1;g=c+8|0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;f[g+12>>2]=0;kj(c,f[a+24>>2]|0,f[a+28>>2]|0,b[(f[a+8>>2]|0)+24>>0]|0,_(n[a+32>>2]));i=Si(c,f[a+16>>2]|0)|0;f[c>>2]=1228;a=f[g>>2]|0;if(a|0){f[c+12>>2]=a;Ko(a)}e=i;u=d;return e|0}function Sg(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0;g=u;u=u+128|0;h=g+124|0;i=g;j=i;k=4048;l=j+124|0;do{f[j>>2]=f[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(l|0));if((c+-1|0)>>>0>2147483646)if(!c){m=h;n=1;o=4}else{h=Ro()|0;f[h>>2]=75;p=-1}else{m=a;n=c;o=4}if((o|0)==4){o=-2-m|0;c=n>>>0>o>>>0?o:n;f[i+48>>2]=c;n=i+20|0;f[n>>2]=m;f[i+44>>2]=m;o=m+c|0;m=i+16|0;f[m>>2]=o;f[i+28>>2]=o;o=Mf(i,d,e)|0;if(!c)p=o;else{c=f[n>>2]|0;b[c+(((c|0)==(f[m>>2]|0))<<31>>31)>>0]=0;p=o}}u=g;return p|0}function Tg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;c=a+8|0;d=f[a>>2]|0;e=d;if((((f[c>>2]|0)-d|0)/12|0)>>>0>=b>>>0)return;g=a+4|0;if(b>>>0>357913941){h=qa(8)|0;Dm(h,13552);f[h>>2]=4908;ta(h|0,1128,105)}h=f[g>>2]|0;i=wk(b*12|0)|0;j=i+(((h-d|0)/12|0)*12|0)|0;k=j;l=i+(b*12|0)|0;b=h;if((b|0)==(e|0))m=k;else{h=b;b=j;do{j=b;b=b+-12|0;i=h;h=h+-12|0;f[b>>2]=f[h>>2];f[j+-8>>2]=f[i+-8>>2];f[j+-4>>2]=f[i+-4>>2]}while((h|0)!=(e|0));m=b}f[a>>2]=m;f[g>>2]=k;f[c>>2]=l;if(!d)return;Ko(d);return}function Ug(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=u;u=u+16|0;e=a+12|0;g=a;f[e>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;yh(c,g,e)|0;c=f[e>>2]|0;if((b[g+11>>0]|0)>=0){u=a;return c|0}Ko(f[g>>2]|0);u=a;return c|0}function Vg(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1416;b=a+60|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);c=f[a+48>>2]|0;if(c|0){f[a+52>>2]=c;Ko(c)}c=a+36|0;b=f[c>>2]|0;if(b|0){d=a+40|0;e=f[d>>2]|0;if((e|0)==(b|0))g=b;else{h=e;do{h=h+-4|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0)Pa[f[(f[e>>2]|0)+4>>2]&127](e)}while((h|0)!=(b|0));g=f[c>>2]|0}f[d>>2]=b;Ko(g)}f[a>>2]=1256;g=f[a+16>>2]|0;if(g|0){f[a+20>>2]=g;Ko(g)}g=f[a+4>>2]|0;if(!g){Ko(a);return}f[a+8>>2]=g;Ko(g);Ko(a);return}function Wg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=u;u=u+32|0;e=a;g=a+8|0;p[e>>3]=0.0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;h=Lg(c,g,e)|0;if((b[g+11>>0]|0)>=0){u=a;return h|0}Ko(f[g>>2]|0);u=a;return h|0}function Xg(a){a=a|0;var c=0,d=0,e=0,g=0;c=f[a>>2]|0;f[a>>2]=0;if(!c)return;a=f[c+28>>2]|0;if(a|0){d=a;do{a=d;d=f[d>>2]|0;e=a+8|0;Xg(a+20|0);if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);Ko(a)}while((d|0)!=0)}d=c+20|0;a=f[d>>2]|0;f[d>>2]=0;if(a|0)Ko(a);a=f[c+8>>2]|0;if(a|0){d=a;do{a=d;d=f[d>>2]|0;e=a+8|0;g=f[a+20>>2]|0;if(g|0){f[a+24>>2]=g;Ko(g)}if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);Ko(a)}while((d|0)!=0)}d=f[c>>2]|0;f[c>>2]=0;if(d|0)Ko(d);Ko(c);return}function Yg(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;a=u;u=u+16|0;e=a+12|0;g=a;f[e>>2]=0;f[g>>2]=0;f[g+4>>2]=0;f[g+8>>2]=0;h=Dh(d)|0;if(h>>>0>4294967279)$n(g);if(h>>>0<11){b[g+11>>0]=h;if(!h)i=g;else{j=g;k=6}}else{l=h+16&-16;m=wk(l)|0;f[g>>2]=m;f[g+8>>2]=l|-2147483648;f[g+4>>2]=h;j=m;k=6}if((k|0)==6){Bf(j|0,d|0,h|0)|0;i=j}b[i+h>>0]=0;h=yh(c,g,e)|0;if((b[g+11>>0]|0)>=0){u=a;return h|0}Ko(f[g>>2]|0);u=a;return h|0}function Zg(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+4|0;d=f[c>>2]|0;e=f[a>>2]|0;g=(d-e|0)/144|0;h=d;if(g>>>0<b>>>0){Ad(a,b-g|0);return}if(g>>>0<=b>>>0)return;g=e+(b*144|0)|0;if((g|0)!=(h|0)){b=h;do{h=f[b+-12>>2]|0;if(h|0){f[b+-8>>2]=h;Ko(h)}h=f[b+-28>>2]|0;if(h|0){f[b+-24>>2]=h;Ko(h)}h=f[b+-40>>2]|0;if(h|0){f[b+-36>>2]=h;Ko(h)}di(b+-140|0);b=b+-144|0}while((b|0)!=(g|0))}f[c>>2]=g;return}function _g(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0;b=a+8|0;c=f[b>>2]|0;if((c|0)<0){d=0;return d|0}e=a+4|0;a=f[e>>2]|0;g=a+4|0;h=f[a>>2]|0;i=(f[g>>2]|0)-h>>2;if(c>>>0<=i>>>0)if(c>>>0<i>>>0){f[g>>2]=h+(c<<2);j=c}else j=c;else{Eg(a,c-i|0);j=f[b>>2]|0}if((j|0)<=0){d=1;return d|0}b=f[e>>2]|0;e=f[b>>2]|0;i=(f[b+4>>2]|0)-e>>2;c=e;e=0;while(1){if(i>>>0<=e>>>0){k=9;break}f[c+(e<<2)>>2]=e;e=e+1|0;if((e|0)>=(j|0)){d=1;k=11;break}}if((k|0)==9)$n(b);else if((k|0)==11)return d|0;return 0}function $g(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1416;b=a+60|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);c=f[a+48>>2]|0;if(c|0){f[a+52>>2]=c;Ko(c)}c=a+36|0;b=f[c>>2]|0;if(b|0){d=a+40|0;e=f[d>>2]|0;if((e|0)==(b|0))g=b;else{h=e;do{h=h+-4|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0)Pa[f[(f[e>>2]|0)+4>>2]&127](e)}while((h|0)!=(b|0));g=f[c>>2]|0}f[d>>2]=b;Ko(g)}f[a>>2]=1256;g=f[a+16>>2]|0;if(g|0){f[a+20>>2]=g;Ko(g)}g=f[a+4>>2]|0;if(!g)return;f[a+8>>2]=g;Ko(g);return}function ah(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;d=c+8|0;e=f[d+4>>2]|0;g=c+16|0;h=g;i=f[h>>2]|0;j=f[h+4>>2]|0;if(!((e|0)>(j|0)|((e|0)==(j|0)?(f[d>>2]|0)>>>0>i>>>0:0))){k=0;return k|0}d=b[(f[c>>2]|0)+i>>0]|0;e=vl(i|0,j|0,1,0)|0;j=g;f[j>>2]=e;f[j+4>>2]=H;do if(d<<24>>24<0)if(ah(a,c)|0){j=a;e=rl(f[j>>2]|0,f[j+4>>2]|0,7)|0;j=H;g=a;f[g>>2]=e;f[g+4>>2]=j;l=e|d&127;m=j;break}else{k=0;return k|0}else{l=d&255;m=0}while(0);d=a;f[d>>2]=l;f[d+4>>2]=m;k=1;return k|0}function bh(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3408;b=a+84|0;c=a+4|0;d=c+80|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+88>>2]=-1;f[a+92>>2]=-1;b=a+152|0;c=a+96|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=1065353216;b=a+212|0;c=a+156|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+216>>2]=0;f[a+220>>2]=0;f[a+224>>2]=0;ak(a+232|0);b=a+380|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;ym(a+400|0);f[a+416>>2]=-1;f[a+420>>2]=-1;return}function ch(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0;do if(((h[(f[a+4>>2]|0)+36>>0]|0)<<8&65535)<512){e=d+8|0;g=f[e+4>>2]|0;i=d+16|0;j=i;k=f[j>>2]|0;l=f[j+4>>2]|0;if((g|0)>(l|0)|((g|0)==(l|0)?(f[e>>2]|0)>>>0>k>>>0:0)){e=b[(f[d>>2]|0)+k>>0]|0;g=vl(k|0,l|0,1,0)|0;l=i;f[l>>2]=g;f[l+4>>2]=H;f[a+24>>2]=e&255;break}else{m=0;return m|0}}while(0);m=rc(a,c,d)|0;return m|0}function dh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;if(c|0){h=a+11|0;i=b[h>>0]|0;if(i<<24>>24<0){j=f[a+4>>2]|0;k=(f[a+8>>2]&2147483647)+-1|0}else{j=i&255;k=10}if((k-j|0)>>>0<c>>>0){th(a,k,j+c-k|0,j,j,0,0);l=b[h>>0]|0}else l=i;if(l<<24>>24<0)m=f[a>>2]|0;else m=a;ol(m+j|0,c,d)|0;d=j+c|0;if((b[h>>0]|0)<0)f[a+4>>2]=d;else b[h>>0]=d;b[g>>0]=0;xn(m+d|0,g)}u=e;return a|0}function eh(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+28>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;g=c+20|0;h=f[g>>2]|0;f[g>>2]=0;if(h|0){eh(h);Ko(h)}if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);Ko(c)}while((d|0)!=0)}d=a+20|0;c=f[d>>2]|0;f[d>>2]=0;if(c|0)Ko(c);c=f[a+8>>2]|0;if(c|0){d=c;do{c=d;d=f[d>>2]|0;e=c+8|0;h=f[c+20>>2]|0;if(h|0){f[c+24>>2]=h;Ko(h)}if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);Ko(c)}while((d|0)!=0)}d=f[a>>2]|0;f[a>>2]=0;if(!d)return;Ko(d);return}function fh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=(f[a+8>>2]&2147483647)+-1|0;else k=10;do if(k>>>0>=d>>>0){if(j)l=f[a>>2]|0;else l=a;sm(l,c,d)|0;b[g>>0]=0;xn(l+d|0,g);if((b[h>>0]|0)<0){f[a+4>>2]=d;break}else{b[h>>0]=d;break}}else{if(j)m=f[a+4>>2]|0;else m=i&255;Cg(a,k,d-k|0,m,0,m,d,c)}while(0);u=e;return a|0}function gh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0,i=0;b=f[a+196>>2]|0;if(b|0){f[a+200>>2]=b;Ko(b)}b=a+184|0;c=f[b>>2]|0;if(c|0){d=a+188|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{e=h;h=h+-12|0;i=f[h>>2]|0;if(i|0){f[e+-8>>2]=i;Ko(i)}}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}g=f[a+156>>2]|0;if(g|0){f[a+160>>2]=g;Ko(g)}g=a+136|0;a=f[g>>2]|0;f[g>>2]=0;if(!a)return;g=a+-4|0;c=f[g>>2]|0;if(c|0){d=a+(c<<4)|0;do d=d+-16|0;while((d|0)!=(a|0))}Io(g);return}function hh(a){a=a|0;var b=0;b=f[a+56>>2]|0;if(b|0)Ko(b);b=f[a+32>>2]|0;if(b|0){f[a+36>>2]=b;Ko(b)}b=f[a+20>>2]|0;if(b|0){f[a+24>>2]=b;Ko(b)}b=f[a+8>>2]|0;if(b|0){f[a+12>>2]=b;Ko(b)}b=a+4|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=f[a+76>>2]|0;if(b|0){f[a+80>>2]=b;Ko(b)}b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=f[a+24>>2]|0;if(b|0){f[a+28>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0){f[a+16>>2]=b;Ko(b)}b=f[a>>2]|0;if(b|0){f[a+4>>2]=b;Ko(b)}Ko(a);return}function ih(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0,k=0;d=u;u=u+80|0;e=d;g=d+56|0;i=d+40|0;j=e;k=c;c=j+40|0;do{f[j>>2]=f[k>>2];j=j+4|0;k=k+4|0}while((j|0)<(c|0));fc(i,e,g);e=f[i>>2]|0;if(!e){k=i+4|0;if((b[k+11>>0]|0)<0)Ko(f[k>>2]|0);k=h[g+7>>0]|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=k;u=d;return}else{f[a>>2]=e;e=i+4|0;Yi(a+4|0,e);if((b[e+11>>0]|0)<0)Ko(f[e>>2]|0);u=d;return}}function jh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;d=f[a>>2]|0;if(!d){e=0;return e|0}g=f[c>>2]|0;if(!g){e=0;return e|0}h=f[g>>2]|0;yf(d,h,(f[g+4>>2]|0)-h|0,0)|0;b[a+24>>0]=b[c+24>>0]|0;f[a+28>>2]=f[c+28>>2];b[a+32>>0]=b[c+32>>0]|0;h=c+40|0;g=f[h+4>>2]|0;d=a+40|0;f[d>>2]=f[h>>2];f[d+4>>2]=g;g=c+48|0;d=f[g+4>>2]|0;h=a+48|0;f[h>>2]=f[g>>2];f[h+4>>2]=d;f[a+56>>2]=f[c+56>>2];d=c+8|0;c=a+8|0;f[c>>2]=f[d>>2];f[c+4>>2]=f[d+4>>2];f[c+8>>2]=f[d+8>>2];f[c+12>>2]=f[d+12>>2];e=1;return e|0}function kh(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(!a){g=1;return g|0}h=d+8|0;i=f[h+4>>2]|0;j=d+16|0;k=j;l=f[k>>2]|0;m=f[k+4>>2]|0;if(!((i|0)>(m|0)|((i|0)==(m|0)?(f[h>>2]|0)>>>0>l>>>0:0))){g=0;return g|0}h=b[(f[d>>2]|0)+l>>0]|0;i=vl(l|0,m|0,1,0)|0;m=j;f[m>>2]=i;f[m+4>>2]=H;switch(h<<24>>24){case 0:{g=Jc(a,c,d,e)|0;return g|0}case 1:{g=fd(a,d,e)|0;return g|0}default:{g=0;return g|0}}return 0}function lh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=Dc(a,b)|0;if(!d){e=0;return e|0}b=d+20|0;a=f[b>>2]|0;g=d+24|0;d=f[g>>2]|0;if((a|0)==(d|0)){e=0;return e|0}Gh(c,d-a|0,0);a=gj(c,0)|0;c=f[b>>2]|0;Bf(a|0,c|0,(f[g>>2]|0)-c|0)|0;e=1;return e|0}function mh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1312;Pg(a+60|0);b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=a+36|0;c=f[b>>2]|0;if(c|0){d=a+40|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{h=h+-24|0;Pa[f[f[h>>2]>>2]&127](h)}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}f[a>>2]=1256;g=f[a+16>>2]|0;if(g|0){f[a+20>>2]=g;Ko(g)}g=f[a+4>>2]|0;if(!g){Ko(a);return}f[a+8>>2]=g;Ko(g);Ko(a);return}function nh(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0;b[c+53>>0]=1;do if((f[c+4>>2]|0)==(e|0)){b[c+52>>0]=1;a=c+16|0;h=f[a>>2]|0;if(!h){f[a>>2]=d;f[c+24>>2]=g;f[c+36>>2]=1;if(!((g|0)==1?(f[c+48>>2]|0)==1:0))break;b[c+54>>0]=1;break}if((h|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;b[c+54>>0]=1;break}h=c+24|0;a=f[h>>2]|0;if((a|0)==2){f[h>>2]=g;i=g}else i=a;if((i|0)==1?(f[c+48>>2]|0)==1:0)b[c+54>>0]=1}while(0);return}function oh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0;e=a+d|0;c=c&255;if((d|0)>=67){while(a&3){b[a>>0]=c;a=a+1|0}g=e&-4|0;h=g-64|0;i=c|c<<8|c<<16|c<<24;while((a|0)<=(h|0)){f[a>>2]=i;f[a+4>>2]=i;f[a+8>>2]=i;f[a+12>>2]=i;f[a+16>>2]=i;f[a+20>>2]=i;f[a+24>>2]=i;f[a+28>>2]=i;f[a+32>>2]=i;f[a+36>>2]=i;f[a+40>>2]=i;f[a+44>>2]=i;f[a+48>>2]=i;f[a+52>>2]=i;f[a+56>>2]=i;f[a+60>>2]=i;a=a+64|0}while((a|0)<(g|0)){f[a>>2]=i;a=a+4|0}}while((a|0)<(e|0)){b[a>>0]=c;a=a+1|0}return e-d|0}function ph(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,i=0,j=0,k=0,l=0,m=0,n=0,o=0,p=0,q=0;if(!c){e=0;f[d>>2]=e;return}g=a+8|0;i=a+4|0;j=0-(b[a+12>>0]|0)&255;k=c;c=0;l=f[g>>2]|0;while(1){m=c<<1;if(l>>>0<4096?(n=f[i>>2]|0,(n|0)>0):0){o=f[a>>2]|0;p=n+-1|0;f[i>>2]=p;n=l<<8|(h[o+p>>0]|0);f[g>>2]=n;q=n}else q=l;n=q&255;p=W(q>>>8,j)|0;o=n>>>0<j>>>0;l=o?p+n|0:q-j-p|0;f[g>>2]=l;p=m|o&1;k=k+-1|0;if(!k){e=p;break}else c=p}f[d>>2]=e;return}function qh(a,c,d,e,g){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;do if(!(en(a,f[c+8>>2]|0,g)|0)){if(en(a,f[c>>2]|0,g)|0){if((f[c+16>>2]|0)!=(d|0)?(h=c+20|0,(f[h>>2]|0)!=(d|0)):0){f[c+32>>2]=e;f[h>>2]=d;h=c+40|0;f[h>>2]=(f[h>>2]|0)+1;if((f[c+36>>2]|0)==1?(f[c+24>>2]|0)==2:0)b[c+54>>0]=1;f[c+44>>2]=4;break}if((e|0)==1)f[c+32>>2]=1}}else nk(0,c,d,e);while(0);return}function rh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=1312;Pg(a+60|0);b=f[a+48>>2]|0;if(b|0){f[a+52>>2]=b;Ko(b)}b=a+36|0;c=f[b>>2]|0;if(c|0){d=a+40|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{h=h+-24|0;Pa[f[f[h>>2]>>2]&127](h)}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g)}f[a>>2]=1256;g=f[a+16>>2]|0;if(g|0){f[a+20>>2]=g;Ko(g)}g=f[a+4>>2]|0;if(!g)return;f[a+8>>2]=g;Ko(g);return}function sh(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=u;u=u+48|0;g=e+4|0;h=e;if((d|0)!=1){f[a>>2]=0;u=e;return}d=f[b+12>>2]|0;i=f[b+4>>2]|0;b=g;j=b+36|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(j|0));Te(h,c,d,i,g);i=f[g+24>>2]|0;if(i|0){f[g+28>>2]=i;Ko(i)}f[a>>2]=f[h>>2];u=e;return}function th(a,c,d,e,g,h,i){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;var j=0,k=0,l=0,m=0;if((-17-c|0)>>>0<d>>>0)$n(a);if((b[a+11>>0]|0)<0)j=f[a>>2]|0;else j=a;if(c>>>0<2147483623){k=d+c|0;d=c<<1;l=k>>>0<d>>>0?d:k;m=l>>>0<11?11:l+16&-16}else m=-17;l=wk(m)|0;if(g|0)um(l,j,g)|0;k=e-h-g|0;if(k|0)um(l+g+i|0,j+g+h|0,k)|0;if((c|0)!=10)Ko(j);f[a>>2]=l;f[a+8>>2]=m|-2147483648;return}function uh(a,b){a=a|0;b=b|0;if(!b)return;else{uh(a,f[b>>2]|0);uh(a,f[b+4>>2]|0);Bh(b+20|0,f[b+24>>2]|0);Ko(b);return}}function vh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+32|0;g=e+20|0;h=e+16|0;i=e;j=b[a+24>>0]|0;f[i>>2]=f[294];f[i+4>>2]=f[295];f[i+8>>2]=f[296];f[i+12>>2]=f[297];f[h>>2]=c;f[g>>2]=f[h>>2];if(!(ob(a,g,j,i)|0)){k=0;u=e;return k|0}Ye(d,i,i+(j<<24>>24<<2)|0);k=1;u=e;return k|0}function wh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+64|0;e=d;if(!(en(a,b,0)|0))if((b|0)!=0?(g=Pf(b,1072,1056,0)|0,(g|0)!=0):0){b=e+4|0;h=b+52|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(h|0));f[e>>2]=g;f[e+8>>2]=a;f[e+12>>2]=-1;f[e+48>>2]=1;Sa[f[(f[g>>2]|0)+28>>2]&7](g,e,f[c>>2]|0,1);if((f[e+24>>2]|0)==1){f[c>>2]=f[e+16>>2];i=1}else i=0;j=i}else j=0;else j=1;u=d;return j|0}function xh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0,k=0,l=0,m=0;if(c>>>0>0|(c|0)==0&a>>>0>4294967295){e=d;f=a;g=c;do{c=f;f=ln(f|0,g|0,10,0)|0;h=g;g=H;i=Bk(f|0,g|0,10,0)|0;j=wl(c|0,h|0,i|0,H|0)|0;e=e+-1|0;b[e>>0]=j&255|48}while(h>>>0>9|(h|0)==9&c>>>0>4294967295);k=f;l=e}else{k=a;l=d}if(!k)m=l;else{d=k;k=l;while(1){l=d;d=(d>>>0)/10|0;a=k+-1|0;b[a>>0]=l-(d*10|0)|48;if(l>>>0<10){m=a;break}else k=a}}return m|0}function yh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=Dc(a,c)|0;if(!e){g=0;return g|0}c=f[e+20>>2]|0;if(((f[e+24>>2]|0)-c|0)!=4){g=0;return g|0}e=c;c=h[e>>0]|h[e+1>>0]<<8|h[e+2>>0]<<16|h[e+3>>0]<<24;b[d>>0]=c;b[d+1>>0]=c>>8;b[d+2>>0]=c>>16;b[d+3>>0]=c>>24;g=1;return g|0}function zh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;d=c+8|0;e=f[d+4>>2]|0;g=c+16|0;h=g;i=f[h>>2]|0;j=f[h+4>>2]|0;if(!((e|0)>(j|0)|((e|0)==(j|0)?(f[d>>2]|0)>>>0>i>>>0:0))){k=0;return k|0}d=b[(f[c>>2]|0)+i>>0]|0;e=vl(i|0,j|0,1,0)|0;j=g;f[j>>2]=e;f[j+4>>2]=H;j=d&255;do if(j&128)if(zh(a,c)|0){e=f[a>>2]<<7;f[a>>2]=e;l=e|d&127;break}else{k=0;return k|0}else l=j;while(0);f[a>>2]=l;k=1;return k|0}function Ah(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=3180;b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);f[a>>2]=3608;c=f[a+20>>2]|0;if(c|0){f[a+24>>2]=c;Ko(c)}c=a+8|0;b=f[c>>2]|0;if(!b){Ko(a);return}d=a+12|0;e=f[d>>2]|0;if((e|0)==(b|0))g=b;else{h=e;do{h=h+-4|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0)Pa[f[(f[e>>2]|0)+4>>2]&127](e)}while((h|0)!=(b|0));g=f[c>>2]|0}f[d>>2]=b;Ko(g);Ko(a);return}function Bh(a,c){a=a|0;c=c|0;var d=0;if(!c)return;Bh(a,f[c>>2]|0);Bh(a,f[c+4>>2]|0);a=c+16|0;d=c+28|0;if((b[d+11>>0]|0)<0)Ko(f[d>>2]|0);if((b[a+11>>0]|0)<0)Ko(f[a>>2]|0);Ko(c);return}function Ch(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=f[a>>2]|0;if(!b)return;c=a+4|0;d=f[c>>2]|0;if((d|0)==(b|0))e=b;else{g=d;do{d=f[g+-12>>2]|0;if(d|0){f[g+-8>>2]=d;Ko(d)}d=f[g+-28>>2]|0;if(d|0){f[g+-24>>2]=d;Ko(d)}d=f[g+-40>>2]|0;if(d|0){f[g+-36>>2]=d;Ko(d)}di(g+-140|0);g=g+-144|0}while((g|0)!=(b|0));e=f[a>>2]|0}f[c>>2]=b;Ko(e);return}function Dh(a){a=a|0;var c=0,d=0,e=0,g=0,h=0,i=0,j=0,k=0,l=0;c=a;a:do if(!(c&3)){d=a;e=5}else{g=a;h=c;while(1){if(!(b[g>>0]|0)){i=h;break a}j=g+1|0;h=j;if(!(h&3)){d=j;e=5;break}else g=j}}while(0);if((e|0)==5){e=d;while(1){k=f[e>>2]|0;if(!((k&-2139062144^-2139062144)&k+-16843009))e=e+4|0;else break}if(!((k&255)<<24>>24))l=e;else{k=e;while(1){e=k+1|0;if(!(b[e>>0]|0)){l=e;break}else k=e}}i=l}return i-c|0}function Eh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=3180;b=a+48|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);f[a>>2]=3608;c=f[a+20>>2]|0;if(c|0){f[a+24>>2]=c;Ko(c)}c=a+8|0;b=f[c>>2]|0;if(!b)return;d=a+12|0;a=f[d>>2]|0;if((a|0)==(b|0))e=b;else{g=a;do{g=g+-4|0;a=f[g>>2]|0;f[g>>2]=0;if(a|0)Pa[f[(f[a>>2]|0)+4>>2]&127](a)}while((g|0)!=(b|0));e=f[c>>2]|0}f[d>>2]=b;Ko(e);return}function Fh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=a+64|0;if((f[d>>2]|0)==0?(e=wk(32)|0,Kk(e),g=f[d>>2]|0,f[d>>2]=e,g|0):0){e=f[g>>2]|0;if(e|0){f[g+4>>2]=e;Ko(e)}Ko(g)}g=Bj(f[a+28>>2]|0)|0;e=W(g,b[a+24>>0]|0)|0;g=((e|0)<0)<<31>>31;h=f[d>>2]|0;i=Bk(e|0,g|0,c|0,0)|0;if(!(yf(h,0,i,H)|0)){j=0;return j|0}oi(a,f[d>>2]|0,e,g,0,0);f[a+80>>2]=c;j=1;return j|0}function Gh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0,k=0;e=u;u=u+16|0;g=e;h=a+11|0;i=b[h>>0]|0;j=i<<24>>24<0;if(j)k=f[a+4>>2]|0;else k=i&255;do if(k>>>0>=c>>>0)if(j){i=(f[a>>2]|0)+c|0;b[g>>0]=0;xn(i,g);f[a+4>>2]=c;break}else{b[g>>0]=0;xn(a+c|0,g);b[h>>0]=c;break}else dh(a,c-k|0,d)|0;while(0);u=e;return}function Hh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if(b>>>0>1431655765|(c|b|0)<0){d=0;return d|0}e=b*3|0;nf(a,e,3736);nf(a+12|0,e,3732);Wh(a+24|0,c);c=a+76|0;e=f[c>>2]|0;f[c>>2]=0;f[a+80>>2]=0;f[a+84>>2]=0;if(e|0)Ko(e);e=a+64|0;c=f[e>>2]|0;f[e>>2]=0;f[a+68>>2]=0;f[a+72>>2]=0;if(!c){d=1;return d|0}Ko(c);d=1;return d|0}function Ih(a,c,d,e,g,h,i,j,k,l){a=a|0;c=c|0;d=d|0;e=e|0;g=g|0;h=h|0;i=i|0;j=j|0;k=k|0;l=l|0;var m=0,n=0,o=0;f[a>>2]=d;if(d|0){m=d+16|0;n=f[m+4>>2]|0;o=a+8|0;f[o>>2]=f[m>>2];f[o+4>>2]=n;n=d+24|0;d=f[n+4>>2]|0;o=a+16|0;f[o>>2]=f[n>>2];f[o+4>>2]=d}b[a+24>>0]=e;f[a+28>>2]=g;b[a+32>>0]=h&1;h=a+40|0;f[h>>2]=i;f[h+4>>2]=j;j=a+48|0;f[j>>2]=k;f[j+4>>2]=l;f[a+56>>2]=c;return}function Jh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0,i=0,j=0;d=u;u=u+16|0;e=d;g=d+4|0;f[e>>2]=c;c=wk(32)|0;f[g>>2]=c;f[g+8>>2]=-2147483616;f[g+4>>2]=24;h=c;i=11931;j=h+24|0;do{b[h>>0]=b[i>>0]|0;h=h+1|0;i=i+1|0}while((h|0)<(j|0));b[c+24>>0]=0;Ph(Fc(a,e)|0,g,1);if((b[g+11>>0]|0)>=0){u=d;return}Ko(f[g>>2]|0);u=d;return}function Kh(a){a=a|0;var b=0,c=0,d=0;f[a>>2]=3240;b=a+84|0;c=a+4|0;d=c+80|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+88>>2]=-1;f[a+92>>2]=-1;b=a+152|0;c=a+96|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=1065353216;b=a+212|0;c=a+156|0;d=c+56|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=-1;f[a+216>>2]=0;f[a+220>>2]=0;f[a+224>>2]=0;ak(a+232|0);return}function Lh(a,b){a=a|0;b=b|0;var c=0;c=a+16|0;a=f[b>>2]|0;f[b>>2]=0;b=f[c>>2]|0;f[c>>2]=a;if(!b)return;a=b+88|0;c=f[a>>2]|0;f[a>>2]=0;if(c|0){a=f[c+8>>2]|0;if(a|0){f[c+12>>2]=a;Ko(a)}Ko(c)}c=f[b+68>>2]|0;if(c|0){f[b+72>>2]=c;Ko(c)}c=b+64|0;a=f[c>>2]|0;f[c>>2]=0;if(a|0){c=f[a>>2]|0;if(c|0){f[a+4>>2]=c;Ko(c)}Ko(a)}Ko(b);return}function Mh(a){a=a|0;var b=0;f[a>>2]=3340;b=f[a+100>>2]|0;if(b|0){f[a+104>>2]=b;Ko(b)}b=f[a+84>>2]|0;if(b|0){f[a+88>>2]=b;Ko(b)}b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+60>>2]|0;if(b|0){f[a+64>>2]=b;Ko(b)}f[a+12>>2]=3364;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b){Ko(a);return}Ko(b);Ko(a);return}function Nh(a){a=a|0;var c=0,d=0,e=0,f=0,g=0,h=0,i=0,j=0;c=a;while(1){d=c+1|0;if(!(bo(b[c>>0]|0)|0))break;else c=d}a=b[c>>0]|0;switch(a|0){case 45:{e=1;f=5;break}case 43:{e=0;f=5;break}default:{g=0;h=c;i=a}}if((f|0)==5){g=e;h=d;i=b[d>>0]|0}if(!(to(i)|0))j=0;else{i=0;d=h;while(1){h=(i*10|0)+48-(b[d>>0]|0)|0;d=d+1|0;if(!(to(b[d>>0]|0)|0)){j=h;break}else i=h}}return ((g|0)==0?0-j|0:j)|0}function Oh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,i=0,j=0,k=0;b=f[a+32>>2]|0;c=b+8|0;d=f[c>>2]|0;e=f[c+4>>2]|0;c=b+16|0;g=c;i=f[g>>2]|0;j=vl(i|0,f[g+4>>2]|0,4,0)|0;g=H;if((e|0)<(g|0)|(e|0)==(g|0)&d>>>0<j>>>0){k=0;return k|0}d=(f[b>>2]|0)+i|0;i=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=c;f[d>>2]=j;f[d+4>>2]=g;if((i|0)<0){k=0;return k|0}f[(f[a+4>>2]|0)+80>>2]=i;k=1;return k|0}function Ph(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;Ti(g,d&1);d=zg(a,c)|0;c=d+11|0;if((b[c>>0]|0)<0){b[f[d>>2]>>0]=0;f[d+4>>2]=0}else{b[d>>0]=0;b[c>>0]=0}xf(d,0);f[d>>2]=f[g>>2];f[d+4>>2]=f[g+4>>2];f[d+8>>2]=f[g+8>>2];u=e;return}function Qh(a){a=a|0;var b=0;f[a>>2]=3340;b=f[a+100>>2]|0;if(b|0){f[a+104>>2]=b;Ko(b)}b=f[a+84>>2]|0;if(b|0){f[a+88>>2]=b;Ko(b)}b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+60>>2]|0;if(b|0){f[a+64>>2]=b;Ko(b)}f[a+12>>2]=3364;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b)return;Ko(b);return}function Rh(a,b){a=+a;b=b|0;var c=0,d=0,e=0,g=0.0,h=0.0,i=0,j=0.0;p[s>>3]=a;c=f[s>>2]|0;d=f[s+4>>2]|0;e=xl(c|0,d|0,52)|0;switch(e&2047){case 0:{if(a!=0.0){g=+Rh(a*18446744073709551616.0,b);h=g;i=(f[b>>2]|0)+-64|0}else{h=a;i=0}f[b>>2]=i;j=h;break}case 2047:{j=a;break}default:{f[b>>2]=(e&2047)+-1022;f[s>>2]=c;f[s+4>>2]=d&-2146435073|1071644672;j=+p[s>>3]}}return +j}function Sh(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,i=0,j=0,k=0;b=f[a+32>>2]|0;c=b+8|0;d=f[c>>2]|0;e=f[c+4>>2]|0;c=b+16|0;g=c;i=f[g>>2]|0;j=vl(i|0,f[g+4>>2]|0,4,0)|0;g=H;if((e|0)<(g|0)|(e|0)==(g|0)&d>>>0<j>>>0){k=0;return k|0}d=(f[b>>2]|0)+i|0;i=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;d=c;f[d>>2]=j;f[d+4>>2]=g;f[(f[a+4>>2]|0)+80>>2]=i;k=1;return k|0}function Th(a){a=a|0;var b=0,c=0,d=0,e=0,g=0,h=0;f[a>>2]=3608;b=f[a+20>>2]|0;if(b|0){f[a+24>>2]=b;Ko(b)}b=a+8|0;c=f[b>>2]|0;if(!c){Ko(a);return}d=a+12|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{h=h+-4|0;e=f[h>>2]|0;f[h>>2]=0;if(e|0)Pa[f[(f[e>>2]|0)+4>>2]&127](e)}while((h|0)!=(c|0));g=f[b>>2]|0}f[d>>2]=c;Ko(g);Ko(a);return}function Uh(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0,j=0;d=0;while(1){if((h[14154+d>>0]|0)==(a|0)){e=4;break}g=d+1|0;if((g|0)==87){i=87;e=5;break}else d=g}if((e|0)==4)if(!d)j=14242;else{i=d;e=5}if((e|0)==5){e=14242;d=i;while(1){i=e;do{a=i;i=i+1|0}while((b[a>>0]|0)!=0);d=d+-1|0;if(!d){j=i;break}else e=i}}return ho(j,f[c+20>>2]|0)|0}function Vh(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=u;u=u+16|0;g=e;if(d>>>0>4294967279)$n(a);if(d>>>0<11){b[a+11>>0]=d;h=a}else{i=d+16&-16;j=wk(i)|0;f[a>>2]=j;f[a+8>>2]=i|-2147483648;f[a+4>>2]=d;h=j}um(h,c,d)|0;b[g>>0]=0;xn(h+d|0,g);u=e;return}function Wh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=a+8|0;d=f[a>>2]|0;if((f[c>>2]|0)-d>>2>>>0>=b>>>0)return;e=a+4|0;if(b>>>0>1073741823){g=qa(8)|0;Dm(g,13552);f[g>>2]=4908;ta(g|0,1128,105)}g=(f[e>>2]|0)-d|0;h=wk(b<<2)|0;if((g|0)>0)Bf(h|0,d|0,g|0)|0;f[a>>2]=h;f[e>>2]=h+(g>>2<<2);f[c>>2]=h+(b<<2);if(!d)return;Ko(d);return}function Xh(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;if((c|0)<=0){d=1;return d|0}e=a+36|0;g=a+48|0;a=0;while(1){h=f[(f[e>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(!(Ma[f[(f[h>>2]|0)+20>>2]&31](h,g,b)|0)){d=0;i=5;break}if((a|0)>=(c|0)){d=1;i=5;break}}if((i|0)==5)return d|0;return 0}function Yh(a){a=a|0;var b=0,c=0;f[a>>2]=1368;b=a+16|0;a=f[b>>2]|0;f[b>>2]=0;if(!a)return;b=a+88|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=f[c+8>>2]|0;if(b|0){f[c+12>>2]=b;Ko(b)}Ko(c)}c=f[a+68>>2]|0;if(c|0){f[a+72>>2]=c;Ko(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){f[b+4>>2]=c;Ko(c)}Ko(b)}Ko(a);return}function Zh(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;switch(c<<24>>24){case 0:{c=wk(20)|0;Jl(c);d=c;break}case 1:{c=wk(24)|0;jm(c);d=c;break}case 2:{c=wk(36)|0;Lk(c);d=c;break}case 3:{c=wk(28)|0;am(c);d=c;break}default:d=0}f[a>>2]=d;return}function _h(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;f[a>>2]=3608;b=f[a+20>>2]|0;if(b|0){f[a+24>>2]=b;Ko(b)}b=a+8|0;c=f[b>>2]|0;if(!c)return;d=a+12|0;a=f[d>>2]|0;if((a|0)==(c|0))e=c;else{g=a;do{g=g+-4|0;a=f[g>>2]|0;f[g>>2]=0;if(a|0)Pa[f[(f[a>>2]|0)+4>>2]&127](a)}while((g|0)!=(c|0));e=f[b>>2]|0}f[d>>2]=c;Ko(e);return}function $h(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;a=f[b+4>>2]|0;if(!a){d=0;return d|0}e=f[(f[(f[b+8>>2]|0)+(c<<2)>>2]|0)+60>>2]|0;c=f[a+40>>2]|0;b=f[a+44>>2]|0;if((c|0)==(b|0)){d=0;return d|0}a=c;while(1){c=f[a>>2]|0;a=a+4|0;if((f[c+40>>2]|0)==(e|0)){d=c;g=6;break}if((a|0)==(b|0)){d=0;g=6;break}}if((g|0)==6)return d|0;return 0}function ai(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0,i=0;c=Ka[f[(f[a>>2]|0)+24>>2]&127](a)|0;if((c|0)<=0){d=1;return d|0}e=a+36|0;g=a+48|0;a=0;while(1){h=f[(f[e>>2]|0)+(a<<2)>>2]|0;a=a+1|0;if(!(Ma[f[(f[h>>2]|0)+16>>2]&31](h,g,b)|0)){d=0;i=5;break}if((a|0)>=(c|0)){d=1;i=5;break}}if((i|0)==5)return d|0;return 0}function bi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0;c=f[b>>2]|0;if(!c){d=0;return d|0}e=a+44|0;g=f[e>>2]|0;if(g>>>0<(f[a+48>>2]|0)>>>0){f[b>>2]=0;f[g>>2]=c;f[e>>2]=(f[e>>2]|0)+4;d=1;return d|0}else{ef(a+40|0,b);d=1;return d|0}return 0}function ci(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0,h=0;e=Jf(a,c)|0;if((e|0)!=(a+4|0)){a=e+28|0;if((b[a+11>>0]|0)<0)g=f[a>>2]|0;else g=a;a=Nh(g)|0;if((a|0)!=-1){h=(a|0)!=0;return h|0}}h=d;return h|0}function di(a){a=a|0;var b=0;b=f[a+84>>2]|0;if(b|0){f[a+88>>2]=b;Ko(b)}b=f[a+72>>2]|0;if(b|0){f[a+76>>2]=b;Ko(b)}b=f[a+52>>2]|0;if(b|0){f[a+56>>2]=b;Ko(b)}b=f[a+40>>2]|0;if(b|0){f[a+44>>2]=b;Ko(b)}b=f[a+28>>2]|0;if(b|0){f[a+32>>2]=b;Ko(b)}b=f[a+12>>2]|0;if(b|0)Ko(b);b=f[a>>2]|0;if(!b)return;Ko(b);return}function ei(a){a=a|0;var b=0;if(!(f[a+44>>2]|0)){b=0;return b|0}if(!(f[a+48>>2]|0)){b=0;return b|0}if(!(f[a+24>>2]|0)){b=0;return b|0}if(!(f[a+28>>2]|0)){b=0;return b|0}if(!(f[a+32>>2]|0)){b=0;return b|0}if(!(f[a+36>>2]|0)){b=0;return b|0}b=(f[a+72>>2]|0)!=-1;return b|0}function fi(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,i=0;f[c>>2]=2;d=a+4|0;a=c+8|0;e=f[a>>2]|0;g=(f[c+12>>2]|0)-e|0;if(g>>>0<4294967292){eg(a,g+4|0,0);i=f[a>>2]|0}else i=e;e=i+g|0;g=h[d>>0]|h[d+1>>0]<<8|h[d+2>>0]<<16|h[d+3>>0]<<24;b[e>>0]=g;b[e+1>>0]=g>>8;b[e+2>>0]=g>>16;b[e+3>>0]=g>>24;return}function gi(a){a=a|0;var b=0;if(!(f[a+64>>2]|0)){b=0;return b|0}if(!(f[a+68>>2]|0)){b=0;return b|0}if(!(f[a+44>>2]|0)){b=0;return b|0}if(!(f[a+48>>2]|0)){b=0;return b|0}if(!(f[a+52>>2]|0)){b=0;return b|0}if(!(f[a+56>>2]|0)){b=0;return b|0}b=(f[a+92>>2]|0)!=-1;return b|0}function hi(a){a=a|0;var c=0;if(!a)return;c=a+28|0;if((b[c+11>>0]|0)<0)Ko(f[c>>2]|0);uh(a+12|0,f[a+16>>2]|0);Bh(a,f[a+4>>2]|0);Ko(a);return}function ii(a){a=a|0;var b=0;f[a>>2]=2208;b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+84>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0)Ko(b);b=f[a+60>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function ji(a){a=a|0;var b=0;f[a>>2]=1760;b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+84>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0)Ko(b);b=f[a+60>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function ki(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var g=0,h=0;a=c+16|0;g=f[a>>2]|0;do if(g){if((g|0)!=(d|0)){h=c+36|0;f[h>>2]=(f[h>>2]|0)+1;f[c+24>>2]=2;b[c+54>>0]=1;break}h=c+24|0;if((f[h>>2]|0)==2)f[h>>2]=e}else{f[a>>2]=d;f[c+24>>2]=e;f[c+36>>2]=1}while(0);return}function li(a){a=a|0;var b=0;f[a>>2]=2208;b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+84>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0)Ko(b);b=f[a+60>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function mi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(((h[(f[a+4>>2]|0)+36>>0]|0)<<8&65535)<512?!(Ka[f[(f[a>>2]|0)+52>>2]&127](a)|0):0){d=0;return d|0}d=rc(a,b,c)|0;return d|0}function ni(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0;e=b>>31|((b|0)<0?-1:0)<<1;f=((b|0)<0?-1:0)>>31|((b|0)<0?-1:0)<<1;g=d>>31|((d|0)<0?-1:0)<<1;h=((d|0)<0?-1:0)>>31|((d|0)<0?-1:0)<<1;i=wl(e^a|0,f^b|0,e|0,f|0)|0;b=H;a=g^e;e=h^f;return wl((Gc(i,b,wl(g^c|0,h^d|0,g|0,h|0)|0,H,0)|0)^a|0,H^e|0,a|0,e|0)|0}function oi(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0,i=0,j=0;f[a>>2]=b;h=b+16|0;i=f[h+4>>2]|0;j=a+8|0;f[j>>2]=f[h>>2];f[j+4>>2]=i;i=b+24|0;b=f[i+4>>2]|0;j=a+16|0;f[j>>2]=f[i>>2];f[j+4>>2]=b;b=a+40|0;f[b>>2]=c;f[b+4>>2]=d;d=a+48|0;f[d>>2]=e;f[d+4>>2]=g;return}function pi(a){a=a|0;var c=0,d=0,e=0,g=0,i=0,j=0,k=0;c=b[a+12>>0]|0;d=a+8|0;e=f[d>>2]|0;if(e>>>0<4096?(g=a+4|0,i=f[g>>2]|0,(i|0)>0):0){j=f[a>>2]|0;a=i+-1|0;f[g>>2]=a;g=e<<8|(h[j+a>>0]|0);f[d>>2]=g;k=g}else k=e;e=k&255;g=0-c&255;c=W(k>>>8,g)|0;a=e>>>0<g>>>0;f[d>>2]=a?c+e|0:k-g-c|0;return a|0}function qi(a){a=a|0;var b=0;f[a>>2]=1760;b=f[a+96>>2]|0;if(b|0)Ko(b);b=f[a+84>>2]|0;if(b|0)Ko(b);b=f[a+72>>2]|0;if(b|0)Ko(b);b=f[a+60>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function ri(a){a=a|0;var b=0,c=0;if(!a)return;b=a+88|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0){b=f[c+8>>2]|0;if(b|0){f[c+12>>2]=b;Ko(b)}Ko(c)}c=f[a+68>>2]|0;if(c|0){f[a+72>>2]=c;Ko(c)}c=a+64|0;b=f[c>>2]|0;f[c>>2]=0;if(b|0){c=f[b>>2]|0;if(c|0){f[b+4>>2]=c;Ko(c)}Ko(b)}Ko(a);return}function si(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;ne(g,a,c,d);d=a+24|0;f[d>>2]=f[g>>2];c=g+4|0;Hj(a+28|0,c)|0;if((b[c+11>>0]|0)>=0){u=e;return d|0}Ko(f[c>>2]|0);u=e;return d|0}function ti(a){a=a|0;var c=0,d=0,e=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;f[a+20>>2]=0;b[a+24>>0]=1;c=a+68|0;d=a+28|0;e=d+40|0;do{f[d>>2]=0;d=d+4|0}while((d|0)<(e|0));f[c>>2]=a;c=a+72|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;return}function ui(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;se(g,a,c,d);d=a+24|0;f[d>>2]=f[g>>2];c=g+4|0;Hj(a+28|0,c)|0;if((b[c+11>>0]|0)>=0){u=e;return d|0}Ko(f[c>>2]|0);u=e;return d|0}function vi(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;var f=0,g=0,h=0;f=u;u=u+256|0;g=f;if((c|0)>(d|0)&(e&73728|0)==0){e=c-d|0;oh(g|0,b<<24>>24|0,(e>>>0<256?e:256)|0)|0;if(e>>>0>255){b=c-d|0;d=e;do{Pm(a,g,256);d=d+-256|0}while(d>>>0>255);h=b&255}else h=e;Pm(a,g,h)}u=f;return}function wi(a){a=a|0;var b=0,c=0,d=0,e=0,g=0;b=f[a+8>>2]|0;c=f[a+12>>2]|0;if((b|0)==(c|0)){d=1;return d|0}e=a+32|0;a=b;while(1){b=f[a>>2]|0;a=a+4|0;if(!(La[f[(f[b>>2]|0)+16>>2]&127](b,f[e>>2]|0)|0)){d=0;g=5;break}if((a|0)==(c|0)){d=1;g=5;break}}if((g|0)==5)return d|0;return 0}function xi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=f[a+8>>2]|0;if((b[e+24>>0]|0)<1){g=0;return g|0}if(!(Fh(e,(f[c+4>>2]|0)-(f[c>>2]|0)>>2)|0)){g=0;return g|0}g=Ma[f[(f[a>>2]|0)+32>>2]&31](a,c,d)|0;return g|0}function yi(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;var h=0;if(en(a,f[b+8>>2]|0,g)|0)nh(0,b,c,d,e);else{h=f[a+8>>2]|0;Ua[f[(f[h>>2]|0)+20>>2]&3](h,b,c,d,e,g)}return}function zi(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;if(!a)return;c=f[a>>2]|0;if(c|0){d=a+4|0;e=f[d>>2]|0;if((e|0)==(c|0))g=c;else{h=e;do{h=h+-12|0;if((b[h+11>>0]|0)<0)Ko(f[h>>2]|0)}while((h|0)!=(c|0));g=f[a>>2]|0}f[d>>2]=c;Ko(g)}Ko(a);return}function Ai(a){a=a|0;var b=0;f[a>>2]=3292;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}f[a+12>>2]=3316;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b){Ko(a);return}Ko(b);Ko(a);return}function Bi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+12>>2]|0;d=f[a+8>>2]|0;a=d;if((c|0)==(d|0)){e=0;return e|0}g=c-d>>2;d=0;while(1){c=f[a+(d<<2)>>2]|0;if((f[c+60>>2]|0)==(b|0)){e=c;h=5;break}d=d+1|0;if(d>>>0>=g>>>0){e=0;h=5;break}}if((h|0)==5)return e|0;return 0}function Ci(a){a=a|0;var b=0,c=0;f[a>>2]=2264;b=f[a+76>>2]|0;if(b|0)Ko(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1536;c=f[a+32>>2]|0;if(!c){Ko(a);return}f[a+36>>2]=c;Ko(c);Ko(a);return}function Di(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,g=0,h=0;c=f[a+12>>2]|0;d=f[a+8>>2]|0;a=d;if((c|0)==(d|0)){e=-1;return e|0}g=c-d>>2;d=0;while(1){if((f[(f[a+(d<<2)>>2]|0)+60>>2]|0)==(b|0)){e=d;h=5;break}d=d+1|0;if(d>>>0>=g>>>0){e=-1;h=5;break}}if((h|0)==5)return e|0;return 0}function Ei(a){a=a|0;var b=0;f[a>>2]=3384;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}f[a+12>>2]=3364;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b){Ko(a);return}Ko(b);Ko(a);return}function Fi(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0,g=0,h=0,i=0,j=0;a:do if(!d)e=0;else{f=a;g=d;h=c;while(1){i=b[f>>0]|0;j=b[h>>0]|0;if(i<<24>>24!=j<<24>>24)break;g=g+-1|0;if(!g){e=0;break a}else{f=f+1|0;h=h+1|0}}e=(i&255)-(j&255)|0}while(0);return e|0}function Gi(a){a=a|0;var b=0,c=0;f[a>>2]=3052;b=a+28|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1476;c=a+20|0;b=f[c>>2]|0;f[c>>2]=0;if(!b){Yh(a);Ko(a);return}Pa[f[(f[b>>2]|0)+4>>2]&127](b);Yh(a);Ko(a);return}function Hi(a){a=a|0;var b=0,c=0;f[a>>2]=1816;b=f[a+76>>2]|0;if(b|0)Ko(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1536;c=f[a+32>>2]|0;if(!c){Ko(a);return}f[a+36>>2]=c;Ko(c);Ko(a);return}function Ii(a){a=a|0;var c=0,d=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;c=0;while(1){if((c|0)==3)break;f[a+(c<<2)>>2]=0;c=c+1|0}if((b[a+11>>0]|0)<0)d=(f[a+8>>2]&2147483647)+-1|0;else d=10;Gh(a,d,0);return}function Ji(a){a=a|0;var b=0;f[a>>2]=3292;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}f[a+12>>2]=3316;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b)return;Ko(b);return}function Ki(a){a=a|0;var b=0,c=0;f[a>>2]=2264;b=f[a+76>>2]|0;if(b|0)Ko(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1536;c=f[a+32>>2]|0;if(!c)return;f[a+36>>2]=c;Ko(c);return}function Li(a){a=a|0;var b=0;f[a>>2]=3384;b=f[a+64>>2]|0;if(b|0){f[a+68>>2]=b;Ko(b)}f[a+12>>2]=3364;b=f[a+32>>2]|0;if(b|0)Ko(b);b=f[a+20>>2]|0;if(!b)return;Ko(b);return}function Mi(a){a=a|0;var b=0,c=0;f[a>>2]=3052;b=a+28|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1476;c=a+20|0;b=f[c>>2]|0;f[c>>2]=0;if(!b){Yh(a);return}Pa[f[(f[b>>2]|0)+4>>2]&127](b);Yh(a);return}function Ni(a){a=a|0;var b=0,c=0;f[a>>2]=1816;b=f[a+76>>2]|0;if(b|0)Ko(b);b=a+68|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Io(c);f[a>>2]=1536;c=f[a+32>>2]|0;if(!c)return;f[a+36>>2]=c;Ko(c);return}function Oi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;if(en(a,f[b+8>>2]|0,0)|0)ki(0,b,c,d);else{e=f[a+8>>2]|0;Sa[f[(f[e>>2]|0)+28>>2]&7](e,b,c,d)}return}function Pi(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0,h=0,i=0,j=0;e=W(c,b)|0;g=(b|0)==0?0:c;if((f[d+76>>2]|0)>-1){c=(Po(d)|0)==0;h=lg(a,e,d)|0;if(c)i=h;else{Oo(d);i=h}}else i=lg(a,e,d)|0;if((i|0)==(e|0))j=g;else j=(i>>>0)/(b>>>0)|0;return j|0}function Qi(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)<0){c=0;return c|0}d=f[a+4>>2]|0;if(((f[d+12>>2]|0)-(f[d+8>>2]|0)>>2|0)<=(b|0)){c=0;return c|0}d=f[(f[a+8>>2]|0)+(f[(f[a+20>>2]|0)+(b<<2)>>2]<<2)>>2]|0;c=La[f[(f[d>>2]|0)+32>>2]&127](d,b)|0;return c|0}function Ri(a,c){a=a|0;c=c|0;var d=0,e=0,f=0,g=0;d=b[a>>0]|0;e=b[c>>0]|0;if(d<<24>>24==0?1:d<<24>>24!=e<<24>>24){f=e;g=d}else{d=c;c=a;do{c=c+1|0;d=d+1|0;a=b[c>>0]|0;e=b[d>>0]|0}while(!(a<<24>>24==0?1:a<<24>>24!=e<<24>>24));f=e;g=a}return (g&255)-(f&255)|0}function Si(a,b){a=a|0;b=b|0;var c=0;c=wk(40)|0;f[c>>2]=-1;Kk(c+8|0);Qa[f[(f[a>>2]|0)+16>>2]&7](a,c);a=b+88|0;b=f[a>>2]|0;f[a>>2]=c;if(!b)return 1;c=f[b+8>>2]|0;if(c|0){f[b+12>>2]=c;Ko(c)}Ko(b);return 1}function Ti(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;Ii(d);Ig(a,d,b);om(d);u=c;return}function Ui(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[a+4>>2]|0;if(c|0?((h[c+36>>0]|0)<<8&65535)<512:0){d=1;return d|0}d=La[f[(f[a>>2]|0)+48>>2]&127](a,(f[b+4>>2]|0)-(f[b>>2]|0)>>2)|0;return d|0}function Vi(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0,h=0;d=u;u=u+32|0;e=d;g=d+20|0;f[e>>2]=f[a+60>>2];f[e+4>>2]=0;f[e+8>>2]=b;f[e+12>>2]=g;f[e+16>>2]=c;if((Ol(xa(140,e|0)|0)|0)<0){f[g>>2]=-1;h=-1}else h=f[g>>2]|0;u=d;return h|0}function Wi(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=0;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=0;return c|0}b=f[d>>2]|0;if((b|0)==-1){c=0;return c|0}c=f[(f[a+8>>2]|0)+(b<<2)>>2]|0;return c|0}function Xi(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=f[a+16>>2]|0;if(((f[a+20>>2]|0)-c>>2|0)<=(b|0)){d=0;return d|0}e=f[c+(b<<2)>>2]|0;if((e|0)<0){d=0;return d|0}d=Nf(f[(f[a+36>>2]|0)+(e<<2)>>2]|0)|0;return d|0}function Yi(a,c){a=a|0;c=c|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;if((b[c+11>>0]|0)<0)Vh(a,f[c>>2]|0,f[c+4>>2]|0);else{f[a>>2]=f[c>>2];f[a+4>>2]=f[c+4>>2];f[a+8>>2]=f[c+8>>2]}return}function Zi(a,b){a=a|0;b=b|0;var c=0;ek(a);f[a>>2]=1416;c=a+36|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;c=f[b>>2]|0;f[b>>2]=0;f[a+60>>2]=c;return}function _i(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;zc(a,b);if((b|0)<=-1)return;c=a+88|0;d=f[c>>2]|0;e=f[a+84>>2]|0;if((d-e>>2|0)<=(b|0))return;a=e+(b<<2)|0;b=a+4|0;e=d-b|0;if(e|0)Rj(a|0,b|0,e|0)|0;f[c>>2]=a+(e>>2<<2);return}function $i(a,c){a=a|0;c=c|0;var d=0,e=0;d=a;e=c;c=d+64|0;do{f[d>>2]=f[e>>2];d=d+4|0;e=e+4|0}while((d|0)<(c|0));e=a+64|0;f[a+88>>2]=0;f[e>>2]=0;f[e+4>>2]=0;f[e+8>>2]=0;f[e+12>>2]=0;f[e+16>>2]=0;b[e+20>>0]=0;return}function aj(a,c,d,e){a=a|0;c=c|0;d=d|0;e=e|0;var f=0,g=0;if((a|0)==0&(c|0)==0)f=d;else{g=d;d=c;c=a;while(1){a=g+-1|0;b[a>>0]=h[14136+(c&15)>>0]|0|e;c=xl(c|0,d|0,4)|0;d=H;if((c|0)==0&(d|0)==0){f=a;break}else g=a}}return f|0}function bj(a){a=a|0;var c=0,d=0,e=0;c=a+74|0;d=b[c>>0]|0;b[c>>0]=d+255|d;d=f[a>>2]|0;if(!(d&8)){f[a+8>>2]=0;f[a+4>>2]=0;c=f[a+44>>2]|0;f[a+28>>2]=c;f[a+20>>2]=c;f[a+16>>2]=c+(f[a+48>>2]|0);e=0}else{f[a>>2]=d|32;e=-1}return e|0}function cj(a){a=a|0;if(!(f[a+60>>2]|0))return 0;if(!(f[a+44>>2]|0))return 0;if(!(f[a+48>>2]|0))return 0;if(!(f[a+52>>2]|0))return 0;else return (f[a+56>>2]|0)!=0|0;return 0}function dj(a,b){a=a|0;b=b|0;var c=0,d=0;c=f[b+88>>2]|0;if(!c){d=0;return d|0}if((f[c>>2]|0)!=2){d=0;return d|0}b=f[c+8>>2]|0;f[a+4>>2]=h[b>>0]|h[b+1>>0]<<8|h[b+2>>0]<<16|h[b+3>>0]<<24;d=1;return d|0}function ej(a){a=a|0;var b=0;if(!(f[a+44>>2]|0)){b=0;return b|0}if(!(f[a+48>>2]|0)){b=0;return b|0}if(!(f[a+52>>2]|0)){b=0;return b|0}b=(f[a+56>>2]|0)!=0;return b|0}function fj(a){a=a|0;var b=0;f[a>>2]=2488;b=f[a+76>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function gj(a,c){a=a|0;c=c|0;var d=0,e=0,g=0,h=0;d=b[a+11>>0]|0;e=d<<24>>24<0;if(e)g=f[a+4>>2]|0;else g=d&255;if(g>>>0<=c>>>0)$n(a);if(e)h=f[a>>2]|0;else h=a;return h+c|0}function hj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+32|0;g=e;f[a+36>>2]=15;if((f[a>>2]&64|0)==0?(f[g>>2]=f[a+60>>2],f[g+4>>2]=21523,f[g+8>>2]=e+16,za(54,g|0)|0):0)b[a+75>>0]=-1;g=hf(a,c,d)|0;u=e;return g|0}function ij(a){a=a|0;var b=0;f[a>>2]=2040;b=f[a+76>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function jj(a,b,c){a=a|0;b=b|0;c=c|0;if((b|0)!=0&(c|0)!=0){jc(a,b,c);return}else{qc(a,0,0);return}}function kj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=_(e);f[a+4>>2]=b;Ye(a+8|0,c,c+(d<<2)|0);n[a+20>>2]=e;return}function lj(a,b){a=a|0;b=b|0;var c=0;if(!(La[f[(f[a>>2]|0)+36>>2]&127](a,b)|0)){c=0;return c|0}if(!(La[f[(f[a>>2]|0)+40>>2]&127](a,b)|0)){c=0;return c|0}c=Ka[f[(f[a>>2]|0)+44>>2]&127](a)|0;return c|0}function mj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;d=f[c>>2]|0;c=a;e=b-a>>2;while(1){if(!e)break;a=(e|0)/2|0;b=c+(a<<2)|0;g=(f[b>>2]|0)>>>0<d>>>0;c=g?b+4|0:c;e=g?e+-1-a|0:a}return c|0}function nj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if(!(Wk(a,c,d)|0)){e=0;return e|0}d=f[a+8>>2]|0;if((b[d+24>>0]|0)!=3){e=0;return e|0}e=(f[d+28>>2]|0)==9;return e|0}function oj(a){a=a|0;var c=0;f[a>>2]=0;c=a+8|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;b[a+24>>0]=1;f[a+28>>2]=9;c=a+40|0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[a+56>>2]=-1;f[a+60>>2]=0;return}function pj(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+44>>2]=c;d=1;return d|0}function qj(a,c){a=a|0;c=c|0;var d=0,e=0;a=u;u=u+32|0;d=a;ih(d,c);c=f[d+16>>2]|0;e=d+4|0;if((b[e+11>>0]|0)>=0){u=a;return c|0}Ko(f[e>>2]|0);u=a;return c|0}function rj(a){a=a|0;var b=0;f[a>>2]=2488;b=f[a+76>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function sj(a){a=a|0;var c=0,d=0,e=0,g=0,h=0;if(!(to(b[f[a>>2]>>0]|0)|0))c=0;else{d=0;while(1){e=f[a>>2]|0;g=(d*10|0)+-48+(b[e>>0]|0)|0;h=e+1|0;f[a>>2]=h;if(!(to(b[h>>0]|0)|0)){c=g;break}else d=g}}return c|0}function tj(a,c){a=a|0;c=c|0;var d=0;if(f[c+56>>2]|0){d=0;return d|0}if((b[c+24>>0]|0)!=3){d=0;return d|0}f[a+64>>2]=c;d=1;return d|0}function uj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;if(!(Wk(a,b,c)|0)){d=0;return d|0}d=(f[(f[(f[(f[b+4>>2]|0)+8>>2]|0)+(c<<2)>>2]|0)+28>>2]|0)==9;return d|0}function vj(a){a=a|0;var b=0,c=0;b=f[r>>2]|0;c=b+a|0;if((a|0)>0&(c|0)<(b|0)|(c|0)<0){da()|0;wa(12);return -1}f[r>>2]=c;if((c|0)>(ca()|0)?(ba()|0)==0:0){f[r>>2]=b;wa(12);return -1}return b|0}function wj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0,f=0;if((a|0)==0&(c|0)==0)e=d;else{f=d;d=c;c=a;while(1){a=f+-1|0;b[a>>0]=c&7|48;c=xl(c|0,d|0,3)|0;d=H;if((c|0)==0&(d|0)==0){e=a;break}else f=a}}return e|0}function xj(a,b,c,d,e,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;g=g|0;if(en(a,f[b+8>>2]|0,g)|0)nh(0,b,c,d,e);return}function yj(a){a=a|0;var b=0;f[a>>2]=2040;b=f[a+76>>2]|0;if(b|0)Ko(b);f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function zj(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+56>>2]|0)-(f[e+52>>2]|0)>>2;b[d>>0]=0;Gf(a+20|0,g,d);u=c;return}function Aj(a,c){a=a|0;c=c|0;var d=0;if(((c|0)!=0?(f[c+56>>2]|0)==0:0)?(b[c+24>>0]|0)==3:0){f[a+60>>2]=c;d=1}else d=0;return d|0}function Bj(a){a=a|0;var b=0;switch(a|0){case 11:case 2:case 1:{b=1;break}case 4:case 3:{b=2;break}case 6:case 5:{b=4;break}case 8:case 7:{b=8;break}case 9:{b=4;break}case 10:{b=8;break}default:b=-1}return b|0}function Cj(a){a=a|0;var c=0,d=0,e=0;b[a+36>>0]=0;c=vl(f[a+32>>2]|0,0,7,0)|0;d=xl(c|0,H|0,3)|0;c=a+16|0;a=c;e=vl(d|0,H|0,f[a>>2]|0,f[a+4>>2]|0)|0;a=c;f[a>>2]=e;f[a+4>>2]=H;return}function Dj(a){a=a|0;var c=0,d=0,e=0,g=0;c=u;u=u+16|0;d=c;e=f[a+4>>2]|0;g=(f[e+28>>2]|0)-(f[e+24>>2]|0)>>2;b[d>>0]=0;Gf(a+20|0,g,d);u=c;return}function Ej(a){a=a|0;var b=0,c=0,d=0;b=a+60|0;c=a;d=c+60|0;do{f[c>>2]=0;c=c+4|0}while((c|0)<(d|0));f[b>>2]=a;b=a+64|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;return}function Fj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0;d=(f[a+96>>2]|0)+(b*12|0)|0;Ye(c,d,d+12|0);return 1}function Gj(a){a=a|0;var b=0;f[a>>2]=2376;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function Hj(a,c){a=a|0;c=c|0;var d=0,e=0;if((a|0)!=(c|0)){d=b[c+11>>0]|0;e=d<<24>>24<0;fh(a,e?f[c>>2]|0:c,e?f[c+4>>2]|0:d&255)|0}return a|0}function Ij(a,b){a=a|0;b=b|0;var c=0,d=0,e=0,f=0;c=a&65535;d=b&65535;e=W(d,c)|0;f=a>>>16;a=(e>>>16)+(W(d,f)|0)|0;d=b>>>16;b=W(d,c)|0;return (H=(a>>>16)+(W(d,f)|0)+(((a&65535)+b|0)>>>16)|0,a+b<<16|e&65535|0)|0}function Jj(a,b){a=a|0;b=b|0;var c=0,d=0,e=0;c=Dh(b)|0;d=wk(c+13|0)|0;f[d>>2]=c;f[d+4>>2]=c;f[d+8>>2]=0;e=Fn(d)|0;Bf(e|0,b|0,c+1|0)|0;f[a>>2]=e;return}function Kj(a,b){a=a|0;b=b|0;var c=0,d=0;if((b|0)==-1|(b|0)>4){c=-1;return c|0}d=f[a+20+(b*12|0)>>2]|0;if(((f[a+20+(b*12|0)+4>>2]|0)-d|0)<=0){c=-1;return c|0}c=f[d>>2]|0;return c|0}function Lj(){var a=0,b=0;a=wk(40)|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=1065353216;b=a+20|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[a+36>>2]=1065353216;return a|0}function Mj(a){a=a|0;var b=0;f[a>>2]=1928;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function Nj(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f[b+44>>2]=e;Bc(a,b,c,d,e);return}function Oj(a){a=a|0;var b=0;f[a>>2]=3748;b=f[a+96>>2]|0;if(b|0){f[a+100>>2]=b;Ko(b)}b=f[a+84>>2]|0;if(!b){Ag(a);Ko(a);return}f[a+88>>2]=b;Ko(b);Ag(a);Ko(a);return}function Pj(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if(en(a,f[b+8>>2]|0,0)|0)ki(0,b,c,d);return}function Qj(a){a=a|0;var b=0;f[a>>2]=3608;b=a+4|0;f[a+40>>2]=0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;d[b+32>>1]=0;return}function Rj(a,c,d){a=a|0;c=c|0;d=d|0;var e=0;if((c|0)<(a|0)&(a|0)<(c+d|0)){e=a;c=c+d|0;a=a+d|0;while((d|0)>0){a=a-1|0;c=c-1|0;d=d-1|0;b[a>>0]=b[c>>0]|0}a=e}else Bf(a,c,d)|0;return a|0}function Sj(a){a=a|0;var b=0;f[a>>2]=2376;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function Tj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=u;u=u+16|0;e=d;f[e>>2]=f[c>>2];g=Ma[f[(f[a>>2]|0)+16>>2]&31](a,b,e)|0;if(g)f[c>>2]=f[e>>2];u=d;return g&1|0}function Uj(a,b){a=a|0;b=b|0;var c=0;if(b>>>0>=2){c=0;return c|0}f[a+28>>2]=b;c=1;return c|0}function Vj(a){a=a|0;var b=0;f[a>>2]=1928;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function Wj(a){a=a|0;var b=0;f[a>>2]=3748;b=f[a+96>>2]|0;if(b|0){f[a+100>>2]=b;Ko(b)}b=f[a+84>>2]|0;if(!b){Ag(a);return}f[a+88>>2]=b;Ko(b);Ag(a);return}function Xj(a){a=a|0;var b=0,c=0;if(no(a)|0?(b=Ln(f[a>>2]|0)|0,a=b+8|0,c=f[a>>2]|0,f[a>>2]=c+-1,(c+-1|0)<0):0)Ko(b);return}function Yj(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0;if((b|0)<=0)return;d=0;do{e=f[a+(d<<2)>>2]|0;f[c+(d<<2)>>2]=e<<31>>31^e>>>1;d=d+1|0}while((d|0)!=(b|0));return}function Zj(a){a=a|0;var c=0;f[a>>2]=0;c=a+8|0;d[a+38>>1]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;f[c+20>>2]=0;f[c+24>>2]=0;b[c+28>>0]=0;return}function _j(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+20|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);Yh(a);Ko(a);return}function $j(a,b,c){a=a|0;b=b|0;c=c|0;zb(a,b,c);return}function ak(a){a=a|0;Zj(a);Zj(a+40|0);ym(a+80|0);Zj(a+96|0);f[a+136>>2]=0;f[a+140>>2]=0;f[a+144>>2]=0;return}function bk(a){a=a|0;var b=0,c=0;f[a>>2]=1476;b=a+20|0;c=f[b>>2]|0;f[b>>2]=0;if(c|0)Pa[f[(f[c>>2]|0)+4>>2]&127](c);Yh(a);return}function ck(a,b,c){a=a|0;b=b|0;c=c|0;return md(a,b,5,6,c)|0}function dk(a,b,c){a=a|0;b=b|0;c=c|0;return kd(a,b,3,4,c)|0}function ek(a){a=a|0;var b=0;f[a>>2]=1256;b=a+4|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;f[b+24>>2]=0;f[b+28>>2]=0;return}function fk(a,b,c){a=a|0;b=b|0;c=c|0;return pd(a,b,1,2,c)|0}function gk(a,b,c){a=a|0;b=b|0;c=c|0;return ld(a,b,3,4,c)|0}function hk(a,b,c){a=a|0;b=b|0;c=c|0;return od(a,b,5,6,c)|0}function ik(a,b,c){a=a|0;b=b|0;c=c|0;var d=0,e=0,g=0;d=a+20|0;e=f[d>>2]|0;g=(f[a+16>>2]|0)-e|0;a=g>>>0>c>>>0?c:g;Bf(e|0,b|0,a|0)|0;f[d>>2]=(f[d>>2]|0)+a;return c|0}function jk(a,b,c){a=a|0;b=b|0;c=c|0;return qd(a,b,1,2,c)|0}function kk(a){a=a|0;var b=0;f[a>>2]=3316;b=f[a+20>>2]|0;if(b|0)Ko(b);b=f[a+8>>2]|0;if(!b){Ko(a);return}Ko(b);Ko(a);return}function lk(){var a=0,b=0;a=wk(24)|0;f[a>>2]=1228;f[a+4>>2]=-1;b=a+8|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return a|0}function mk(a){a=a|0;var c=0;oj(a);c=a+64|0;f[a+88>>2]=0;f[c>>2]=0;f[c+4>>2]=0;f[c+8>>2]=0;f[c+12>>2]=0;f[c+16>>2]=0;b[c+20>>0]=0;return}function nk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;if((f[b+4>>2]|0)==(c|0)?(c=b+28|0,(f[c>>2]|0)!=1):0)f[c>>2]=d;return}function ok(a){a=a|0;var b=0;f[a>>2]=3364;b=f[a+20>>2]|0;if(b|0)Ko(b);b=f[a+8>>2]|0;if(!b){Ko(a);return}Ko(b);Ko(a);return}function pk(a,b,c,e){a=a|0;b=b|0;c=c|0;e=e|0;f[a>>2]=b;b=a+8|0;f[b>>2]=c;f[b+4>>2]=0;d[a+38>>1]=e;e=a+16|0;f[e>>2]=0;f[e+4>>2]=0;return}function qk(a,b,c){a=a|0;b=_(b);c=c|0;var d=0,e=Ia;if((c|0)<1){d=0;return d|0}e=_(_(1.0)/_(c|0));n[a+4>>2]=e;n[a>>2]=b;d=1;return d|0}function rk(a){a=a|0;var b=0;f[a>>2]=1256;b=f[a+16>>2]|0;if(b|0){f[a+20>>2]=b;Ko(b)}b=f[a+4>>2]|0;if(!b)return;f[a+8>>2]=b;Ko(b);return}function sk(a){a=a|0;var b=0;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b){Ko(a);return}f[a+36>>2]=b;Ko(b);Ko(a);return}function tk(a,b,c){a=a|0;b=b|0;c=c|0;f[a+4>>2]=b;f[a+8>>2]=f[(f[(f[b+4>>2]|0)+8>>2]|0)+(c<<2)>>2];f[a+12>>2]=c;return 1}function uk(a){a=a|0;var b=0;mn(a);f[a+16>>2]=0;f[a+20>>2]=0;f[a+12>>2]=a+16;b=a+24|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function vk(a){a=a|0;var b=0;Bl(a);f[a>>2]=3748;b=a+84|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;f[b+16>>2]=0;f[b+20>>2]=0;return}function wk(a){a=a|0;var b=0,c=0;b=(a|0)==0?1:a;while(1){a=Va(b)|0;if(a|0){c=a;break}a=Nn()|0;if(!a){c=0;break}Oa[a&1]()}return c|0}function xk(a){a=a|0;var b=0;f[a>>2]=3316;b=f[a+20>>2]|0;if(b|0)Ko(b);b=f[a+8>>2]|0;if(!b)return;Ko(b);return}function yk(a){a=a|0;var b=0,c=0,d=0;b=u;u=u+16|0;c=b;d=Mo(f[a+60>>2]|0)|0;f[c>>2]=d;d=Ol(Aa(6,c|0)|0)|0;u=b;return d|0}function zk(a){a=a|0;var b=0,c=0;b=f[a>>2]|0;c=a+4|0;f[c>>2]=b;f[a+16>>2]=0;f[a+12>>2]=b;if(!b)return;f[c>>2]=b;Ko(b);return}function Ak(a){a=a|0;var b=0;f[a>>2]=3364;b=f[a+20>>2]|0;if(b|0)Ko(b);b=f[a+8>>2]|0;if(!b)return;Ko(b);return}function Bk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,f=0;e=a;a=c;c=Ij(e,a)|0;f=H;return (H=(W(b,a)|0)+(W(d,e)|0)+f|f&0,c|0|0)|0}function Ck(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ck(b,c,d)|0}function Dk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return dk(b,c,d)|0}function Ek(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return ce(b,c,d)|0}function Fk(a){a=a|0;var b=0;f[a>>2]=1536;b=f[a+32>>2]|0;if(!b)return;f[a+36>>2]=b;Ko(b);return}function Gk(a){a=a|0;var b=0;ek(a);f[a>>2]=1312;b=a+36|0;a=b+36|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Hk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return fk(b,c,d)|0}function Ik(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return gk(b,c,d)|0}function Jk(a){a=a|0;f[a>>2]=2716;Ko(a);return}function Kk(a){a=a|0;var b=0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;f[b+8>>2]=0;f[b+12>>2]=0;return}function Lk(a){a=a|0;jm(a);f[a>>2]=3052;f[a+24>>2]=-1;f[a+28>>2]=0;n[a+32>>2]=_(0.0);return}function Mk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return jk(b,c,d)|0}function Nk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return hk(b,c,d)|0}function Ok(a,b,c){a=a|0;b=b|0;c=c|0;f[a>>2]=b;b=a+8|0;f[b>>2]=c;f[b+4>>2]=0;b=a+16|0;f[b>>2]=0;f[b+4>>2]=0;return}function Pk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return (((f[a+12>>2]|0)+-1|0)==(d|0)?0:d+1|0)|0}function Qk(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0,g=0;e=u;u=u+16|0;g=e;f[g>>2]=d;d=Sg(a,b,c,g)|0;u=e;return d|0}function Rk(a){a=a|0;var b=0;f[a>>2]=1228;b=f[a+8>>2]|0;if(!b){Ko(a);return}f[a+12>>2]=b;Ko(b);Ko(a);return}function Sk(a){a=a|0;f[a>>2]=2800;Ko(a);return}function Tk(a){a=a|0;f[a>>2]=2884;Ko(a);return}function Uk(a){a=a|0;f[a>>2]=2716;return}function Vk(a,b,c){a=a|0;b=b|0;c=c|0;return 1}function Wk(a,b,c){a=a|0;b=b|0;c=c|0;return tk(a,b,c)|0}function Xk(a){a=a|0;var b=0;if(!a)return;b=f[a+8>>2]|0;if(b|0){f[a+12>>2]=b;Ko(b)}Ko(a);return}function Yk(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;return Na[a&31](b|0,c|0,d|0,e|0,f|0,g|0)|0}function Zk(a){a=a|0;f[a>>2]=2968;Ko(a);return}function _k(a){a=a|0;f[a>>2]=2800;return}function $k(a){a=a|0;f[a>>2]=2884;return}function al(a,b){a=a|0;b=b|0;var c=0;c=f[a+48>>2]|0;return La[f[(f[c>>2]|0)+16>>2]&127](c,b)|0}function bl(a,b,c){a=a|0;b=b|0;c=c|0;return Kj(b,c)|0}function cl(a,b){a=a|0;b=b|0;var c=0;c=f[a+48>>2]|0;return La[f[(f[c>>2]|0)+12>>2]&127](c,b)|0}function dl(a){a=a|0;Pd(a);Ko(a);return}function el(a,b){a=a|0;b=b|0;var c=0;c=f[a+48>>2]|0;return La[f[(f[c>>2]|0)+20>>2]&127](c,b)|0}function fl(a){a=a|0;var c=0,d=0;c=a+4|0;if((b[c+11>>0]|0)<0){d=f[c>>2]|0;return d|0}else{d=c;return d|0}return 0}function gl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ve(b,c,d)|0}function hl(a){a=a|0;me(a);Ko(a);return}function il(a,b){a=a|0;b=b|0;var c=0;if(!b)c=0;else c=Rf(f[b>>2]|0,f[b+4>>2]|0,a)|0;return ((c|0)==0?a:c)|0}function jl(a,b,c,d,e,f,g){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;g=g|0;Ua[a&3](b|0,c|0,d|0,e|0,f|0,g|0)}function kl(a,b){a=a|0;b=b|0;var c=0,d=0;c=u;u=u+16|0;d=c;f[d>>2]=b;b=Mf(f[980]|0,a,d)|0;u=c;return b|0}function ll(a){a=a|0;var b=0;if(!a)return;b=f[a>>2]|0;if(b|0){f[a+4>>2]=b;Ko(b)}Ko(a);return}function ml(a){a=a|0;if(!(f[a+44>>2]|0))return 0;else return Ka[f[(f[a>>2]|0)+48>>2]&127](a)|0;return 0}function nl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return vh(b,c,d)|0}function ol(a,b,c){a=a|0;b=b|0;c=c|0;if(b|0)oh(a|0,(io(c)|0)&255|0,b|0)|0;return a|0}function pl(a){a=a|0;return 4}function ql(a){a=a|0;f[a>>2]=2968;return}function rl(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b<<c|(a&(1<<c)-1<<32-c)>>>32-c;return a<<c}H=a<<c-32;return 0}function sl(a){a=a|0;var b=0;f[a>>2]=1228;b=f[a+8>>2]|0;if(!b)return;f[a+12>>2]=b;Ko(b);return}function tl(a){a=a|0;var c=0;if(!a)return;c=a+4|0;if((b[c+11>>0]|0)<0)Ko(f[c>>2]|0);Ko(a);return}function ul(){}function vl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=a+c>>>0;return (H=b+d+(e>>>0<a>>>0|0)>>>0,e|0)|0}function wl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;var e=0;e=b-d>>>0;e=b-d-(c>>>0>a>>>0|0)>>>0;return (H=e,a-c>>>0|0)|0}function xl(a,b,c){a=a|0;b=b|0;c=c|0;if((c|0)<32){H=b>>>c;return a>>>c|(b&(1<<c)-1)<<32-c}H=0;return b>>>c-32|0}function yl(a,b,c){a=a|0;b=b|0;c=c|0;return si(a,b,c)|0}function zl(a){a=a|0;_d(a);Ko(a);return}function Al(a){a=a|0;return 5}function Bl(a){a=a|0;var b=0;f[a>>2]=3776;b=a+4|0;a=b+80|0;do{f[b>>2]=0;b=b+4|0}while((b|0)<(a|0));return}function Cl(a){a=a|0;return 6}function Dl(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Fj(b,c,d)|0}function El(a,b,c){a=a|0;b=b|0;c=c|0;f[a+28>>2]=b;f[a+32>>2]=c;return 1}function Fl(a,c){a=a|0;c=c|0;b[c+84>>0]=1;f[c+72>>2]=f[c+68>>2];return 1}function Gl(a,b,c){a=a|0;b=b|0;c=c|0;return bl(a,b,c)|0}function Hl(a){a=a|0;var b=0;b=f[a+48>>2]|0;return Ka[f[(f[b>>2]|0)+28>>2]&127](b)|0}function Il(a,b,c){a=a|0;b=b|0;c=c|0;return Bg(b,c)|0}function Jl(a){a=a|0;f[a>>2]=1368;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=-1;f[a+16>>2]=0;return}function Kl(a){a=a|0;var b=0;b=f[a+48>>2]|0;return Ka[f[(f[b>>2]|0)+24>>2]&127](b)|0}function Ll(a,b){a=a|0;b=b|0;Jh(a,b);return}function Ml(a){a=a|0;var b=0;b=f[a+48>>2]|0;return Ka[f[(f[b>>2]|0)+36>>2]&127](b)|0}function Nl(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;Ta[a&3](b|0,c|0,d|0,e|0,f|0)}function Ol(a){a=a|0;var b=0,c=0;if(a>>>0>4294963200){b=Ro()|0;f[b>>2]=0-a;c=-1}else c=a;return c|0}function Pl(a,b,c){a=a|0;b=b|0;c=c|0;return ui(a,b,c)|0}function Ql(a,b,c){a=a|0;b=b|0;c=c|0;return Hg(a,b,c)|0}function Rl(a,b,c){a=a|0;b=b|0;c=c|0;return Wg(a,b,c)|0}function Sl(a,b,c){a=a|0;b=b|0;c=c|0;return ng(a,b,c)|0}function Tl(a,b,c){a=a|0;b=b|0;c=c|0;return +(+Qg(a,b,c))}function Ul(a,b){a=a|0;b=b|0;return La[f[(f[a>>2]|0)+12>>2]&127](a,b)|0}function Vl(a,b){a=a|0;b=b|0;return La[f[(f[a>>2]|0)+56>>2]&127](a,b)|0}function Wl(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;f[a+16>>2]=0;return}function Xl(a,b,c){a=a|0;b=b|0;c=c|0;return $h(a,b,c)|0}function Yl(a,b){a=a|0;b=b|0;f[a+4>>2]=b;return 1}function Zl(a,b,c){a=a|0;b=b|0;c=c|0;return qm(b,c)|0}function _l(a,b,c){a=a|0;b=b|0;c=c|0;return Yg(a,b,c)|0}function $l(a,b,c){a=a|0;b=b|0;c=c|0;return Ug(a,b,c)|0}function am(a){a=a|0;jm(a);f[a>>2]=2544;f[a+24>>2]=-1;return}function bm(a,b){a=a|0;b=b|0;f[a+8>>2]=b;f[a+12>>2]=-1;return 1}function cm(a,b,c){a=a|0;b=b|0;c=c|0;return Uf(a,b,c)|0}function dm(a,b,c){a=a|0;b=b|0;c=c|0;return Vf(b,c)|0}function em(a){a=+a;var b=0;p[s>>3]=a;b=f[s>>2]|0;H=f[s+4>>2]|0;return b|0}function fm(a){a=a|0;f[a+12>>2]=0;f[a+16>>2]=0;f[a>>2]=0;n[a+4>>2]=_(0.0);return}function gm(){var a=0;a=wk(40)|0;f[a>>2]=-1;Kk(a+8|0);return a|0}function hm(){var a=0;a=wk(8)|0;f[a>>2]=1200;f[a+4>>2]=-1;return a|0}function im(a,b,c){a=a|0;b=b|0;c=c|0;return Fg(a,b,c)|0}function jm(a){a=a|0;Jl(a);f[a>>2]=1476;f[a+20>>2]=0;return}function km(a,b){a=a|0;b=b|0;Ll(a,b);return}function lm(a){a=a|0;var b=0;if(!a)b=0;else b=(Pf(a,1072,1160,0)|0)!=0&1;return b|0}function mm(a,b){a=a|0;b=b|0;return _(n[(f[a+8>>2]|0)+(b<<2)>>2])}function nm(a,b){a=a|0;b=b|0;return qj(a,b)|0}function om(a){a=a|0;if((b[a+11>>0]|0)<0)Ko(f[a>>2]|0);return}function pm(a){a=a|0;if(!a)return;Pa[f[(f[a>>2]|0)+4>>2]&127](a);return}function qm(a,b){a=a|0;b=b|0;return Bi(a,b)|0}function rm(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;Sa[a&7](b|0,c|0,d|0,e|0)}function sm(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)Rj(a|0,b|0,c|0)|0;return a|0}function tm(a,b,c){a=a|0;b=b|0;c=c|0;return Em(b,c)|0}function um(a,b,c){a=a|0;b=b|0;c=c|0;if(c|0)Bf(a|0,b|0,c|0)|0;return a|0}function vm(a,b){a=a|0;b=b|0;return -1}function wm(a){a=a|0;return 3}function xm(a,b){a=a|0;b=b|0;return sn(a,b)|0}function ym(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;b[a+12>>0]=0;return}function zm(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;f[a+12>>2]=0;return}function Am(a){a=a|0;Km(a);f[a>>2]=3180;f[a+48>>2]=0;return}function Bm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Ma[a&31](b|0,c|0,d|0)|0}function Cm(a,b,c){a=a|0;b=b|0;c=c|0;Ok(a,b,c);return}function Dm(a,b){a=a|0;b=b|0;f[a>>2]=4888;Jj(a+4|0,b);return}function Em(a,b){a=a|0;b=b|0;return f[(f[a+8>>2]|0)+(b<<2)>>2]|0}function Fm(a,b){a=a|0;b=b|0;var c=0;if(!a)c=0;else c=Mg(a,b,0)|0;return c|0}function Gm(a,b){a=a|0;b=b|0;return f[(f[a+4>>2]|0)+(b<<2)>>2]|0}function Hm(){var a=0;a=wk(64)|0;oj(a);return a|0}function Im(a,b){a=a|0;b=b|0;return _(Om(a,b))}function Jm(a){a=a|0;return f[a+8>>2]|0}function Km(a){a=a|0;Qj(a);f[a>>2]=3120;f[a+44>>2]=0;return}function Lm(a){a=a|0;if(!a)return;eh(a);Ko(a);return}function Mm(a,b){a=a|0;b=b|0;return An(a,b)|0}function Nm(a){a=a|0;return b[(f[a+8>>2]|0)+24>>0]|0}function Om(a,b){a=a|0;b=b|0;return _(n[(f[a>>2]|0)+(b<<2)>>2])}function Pm(a,b,c){a=a|0;b=b|0;c=c|0;if(!(f[a>>2]&32))lg(b,c,a)|0;return}function Qm(a){a=a|0;return (f[a+8>>2]|0)-(f[a+4>>2]|0)>>2|0}function Rm(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;Ra[a&15](b|0,c|0,d|0)}function Sm(){var a=0;a=wk(96)|0;mk(a);return a|0}function Tm(a){a=a|0;var b=0;b=u;u=u+a|0;u=u+15&-16;return b|0}function Um(a){a=a|0;var b=0;b=(Eo()|0)+188|0;return Uh(a,f[b>>2]|0)|0}function Vm(a){a=a|0;return ((f[a+100>>2]|0)-(f[a+96>>2]|0)|0)/12|0|0}function Wm(){var a=0;a=wk(16)|0;zm(a);return a|0}function Xm(){var a=0;a=wk(40)|0;Zj(a);return a|0}function Ym(a,b){a=a|0;b=b|0;return 1}function Zm(a,b){a=a|0;b=b|0;return hn(a,b)|0}function _m(a,b){a=a|0;b=b|0;return jn(a,b)|0}function $m(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;$(3);return 0}function an(a,b){a=a|0;b=b|0;return yn(a,b)|0}function bn(){var a=0;a=wk(12)|0;qn(a);return a|0}function cn(a){a=a|0;Yh(a);Ko(a);return}function dn(a){a=a|0;n[a>>2]=_(1.0);n[a+4>>2]=_(1.0);return}function en(a,b,c){a=a|0;b=b|0;c=c|0;return (a|0)==(b|0)|0}function fn(a,b){a=a|0;b=b|0;var c=0;c=vn(a|0)|0;return ((b|0)==0?a:c)|0}function gn(a){a=a|0;return (f[a+12>>2]|0)-(f[a+8>>2]|0)>>2|0}function hn(a,b){a=a|0;b=b|0;return f[(f[a>>2]|0)+(b<<2)>>2]|0}function jn(a,b){a=a|0;b=b|0;return d[(f[a>>2]|0)+(b<<1)>>1]|0}function kn(a,b){a=a|0;b=b|0;f[a+4>>2]=b;return}function ln(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;return Gc(a,b,c,d,0)|0}function mn(a){a=a|0;f[a+4>>2]=0;f[a+8>>2]=0;f[a>>2]=a+4;return}function nn(){var a=0;a=wk(84)|0;Bl(a);return a|0}function on(a){a=a|0;return (f[a+4>>2]|0)-(f[a>>2]|0)>>2|0}function pn(a){a=a|0;return (f[a+4>>2]|0)-(f[a>>2]|0)>>1|0}function qn(a){a=a|0;f[a>>2]=0;f[a+4>>2]=0;f[a+8>>2]=0;return}function rn(a){a=a|0;f[a>>2]=4888;Xj(a+4|0);return}function sn(a,b){a=a|0;b=b|0;return f[b+12>>2]|0}function tn(a,b,c){a=a|0;b=b|0;c=c|0;return La[a&127](b|0,c|0)|0}function un(a,b,c,d,e,f){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;f=f|0;$(10)}function vn(a){a=a|0;return (a&255)<<24|(a>>8&255)<<16|(a>>16&255)<<8|a>>>24|0}function wn(a){a=a|0;Km(a);f[a>>2]=3524;return}function xn(a,c){a=a|0;c=c|0;b[a>>0]=b[c>>0]|0;return}function yn(a,c){a=a|0;c=c|0;return b[(f[a>>2]|0)+c>>0]|0}function zn(a){a=a|0;return (f[a+4>>2]|0)-(f[a>>2]|0)|0}function An(a,b){a=a|0;b=b|0;return f[b+4>>2]|0}function Bn(a){a=a|0;return _(n[a+20>>2])}function Cn(a){a=a|0;return f[a+4>>2]|0}function Dn(a){a=a|0;if(!a)return;Ko(a);return}function En(a,b){a=a|0;b=b|0;if(!w){w=a;x=b}}function Fn(a){a=a|0;return a+12|0}function Gn(a){a=a|0;return f[a+88>>2]|0}function Hn(a,b,c){a=a|0;b=b|0;c=c|0;Qa[a&7](b|0,c|0)}function In(){var a=0;a=wk(40)|0;uk(a);return a|0}function Jn(){var a=0;a=wk(108)|0;vk(a);return a|0}function Kn(a){a=a|0;return (b[a+32>>0]|0)!=0|0}function Ln(a){a=a|0;return a+-12|0}function Mn(a,b,c,d,e){a=a|0;b=b|0;c=c|0;d=d|0;e=e|0;$(9)}function Nn(){var a=0;a=f[4213]|0;f[4213]=a+0;return a|0}function On(a){a=a|0;return lo(a+4|0)|0}function Pn(a){a=a|0;return f[a+56>>2]|0}function Qn(a){a=a|0;Ag(a);Ko(a);return}function Rn(a){a=a|0;Oo(a);Ko(a);return}function Sn(a){a=a|0;return b[a+24>>0]|0}function Tn(a,b){a=a|0;b=b|0;return 0}function Un(a){a=a|0;return f[a+40>>2]|0}function Vn(a){a=a|0;return f[a+48>>2]|0}function Wn(a){a=a|0;return (a?31-(Z(a^a-1)|0)|0:32)|0}function Xn(a,b){a=a|0;b=b|0;return Ka[a&127](b|0)|0}function Yn(a){a=a|0;return f[a+60>>2]|0}function Zn(a){a=a|0;return f[a+28>>2]|0}function _n(a){a=a|0;rn(a);Ko(a);return}function $n(a){a=a|0;Ba()}function ao(a,b){a=a|0;b=b|0;u=a;v=b}function bo(a){a=a|0;return ((a|0)==32|(a+-9|0)>>>0<5)&1|0}function co(a){a=a|0;return (f[a>>2]|0)==0|0}function eo(a){a=a|0;return f[a+80>>2]|0}function fo(a,b,c,d){a=a|0;b=b|0;c=c|0;d=d|0;$(8)}function go(a,b){a=a|0;b=b|0;Pa[a&127](b|0)}function ho(a,b){a=a|0;b=b|0;return il(a,b)|0}function io(a){a=a|0;return a&255|0}function jo(a){a=a|0;f[a>>2]=0;return}function ko(a,b,c){a=a|0;b=b|0;c=c|0;$(2);return 0}function lo(a){a=a|0;return f[a>>2]|0}function mo(a){a=a|0;return 2}function no(a){a=a|0;return 1}function oo(a,b){a=+a;b=b|0;return +(+Rh(a,b))}function po(){return 3}function qo(a,b,c){a=a|0;b=b|0;c=c|0;$(7)}function ro(){return -4}function so(){return 4}function to(a){a=a|0;return (a+-48|0)>>>0<10|0}function uo(){return -3}function vo(){return 1}function wo(){return 2}function xo(){return -5}function yo(a,b){a=a|0;b=b|0;$(1);return 0}function zo(a){a=a|0;Fa()}function Ao(a){a=a|0;Oa[a&1]()}function Bo(){return -2}function Co(){sa()}function Do(){return -1}function Eo(){return Uo()|0}function Fo(a,b){a=a|0;b=b|0;$(6)}function Go(){return 0}function Ho(a){a=a|0;return wk(a)|0}function Io(a){a=a|0;Ko(a);return}function Jo(a){a=a|0;u=a}function Ko(a){a=a|0;Rb(a);return}function Lo(a){a=a|0;H=a}function Mo(a){a=a|0;return a|0}function No(a){a=a|0;$(0);return 0}function Oo(a){a=a|0;return}function Po(a){a=a|0;return 0}function Qo(){return H|0}function Ro(){return 16848}function So(){return u|0}function To(a){a=a|0;$(5)}function Uo(){return 4172}function Vo(){$(4)} - -// EMSCRIPTEN_END_FUNCS -var Ka=[No,mo,no,Qm,Zn,no,Lb,Ic,Nm,Cn,Po,Po,no,Po,no,no,ej,mo,ej,pl,ej,wm,cj,no,Cl,gi,no,Zn,Al,cj,no,no,ej,mo,ej,pl,ej,wm,cj,no,Cl,gi,no,Zn,Al,cj,no,mo,Po,Cn,no,Po,no,mo,Po,Cn,no,Po,no,wm,Cl,ei,no,Zn,Cl,ei,no,Zn,Cl,ei,no,Zn,Cl,ei,no,Zn,qe,no,no,ml,ud,wi,no,Po,Ue,Hl,Ml,Kl,ab,no,Cn,Jm,Me,$d,Oe,_a,no,Cn,Jm,$a,no,Cn,Jm,vb,_g,Po,no,Oh,Sh,yk,On,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No,No];var La=[yo,dj,Kf,kc,lj,Gm,Tn,Ym,Tb,tb,bm,Ym,pg,Fd,mg,Xi,ai,Xh,Ui,hd,vm,Tn,Hf,pc,Tn,Aj,nd,Tn,tj,fe,Uj,Tn,Aj,zd,pc,Tn,Aj,nd,Tn,tj,fe,Uj,Tn,Aj,zd,Qf,vm,Tn,ag,vm,Tn,sg,Tn,pj,Ne,Uj,Tn,pj,Ne,Uj,Tn,pj,te,Uj,Tn,pj,te,Uj,Vl,he,Tn,Tn,el,cl,al,Yl,rg,ug,Sb,ye,ee,be,Yl,rg,ug,Sb,Yl,rg,ug,Sb,bf,Fl,kg,bf,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo,yo];var Ma=[ko,El,tk,xi,Vk,qg,Wk,ie,rc,nj,wg,ch,uj,Rg,mi,hf,Vi,hj,ik,wh,ko,ko,ko,ko,ko,ko,ko,ko,ko,ko,ko,ko];var Na=[$m,Lc,Xb,Pb,sb,Sc,ec,dd,Yb,Qb,qb,Rc,dc,cd,wf,sf,lc,mc,nc,oc,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m,$m];var Oa=[Vo,Co];var Pa=[To,Oo,Io,sl,Rk,rk,zo,rh,mh,Yh,cn,$g,Vg,bk,_j,Fk,zo,sk,sk,sk,qi,ji,Ni,Hi,zo,Vj,Mj,Oo,zo,Io,yj,ij,sk,sk,li,ii,Ki,Ci,zo,Sj,Gj,Oo,zo,Io,rj,fj,_j,Oo,Io,Io,Uk,Jk,Oo,Io,_k,Sk,Oo,Io,$k,Tk,Oo,Io,ql,Zk,Oo,Io,Mi,Gi,_h,zo,Eh,Ah,_d,zl,Ji,Ai,xk,kk,zj,Qh,Mh,Ak,ok,Dj,Li,Ei,Pd,dl,me,hl,Th,Oo,Io,zo,Th,Th,Wj,Oj,Ag,Qn,Oo,Rn,Oo,Oo,Rn,rn,_n,_n,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To,To];var Qa=[Fo,fi,Je,_i,zc,Fo,Fo,Fo];var Ra=[qo,Zh,Mb,Ob,Ob,Mb,Ob,Mb,bg,Ef,qo,qo,qo,qo,qo,qo];var Sa=[fo,sh,sd,Pj,Oi,fo,fo,fo];var Ta=[Mn,qh,ff,Mn];var Ua=[un,xj,yi,un];return{___cxa_can_catch:Tj,___cxa_is_pointer_type:lm,___divdi3:ni,___muldi3:Bk,___udivdi3:ln,_bitshift64Lshr:xl,_bitshift64Shl:rl,_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0:hm,_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1:Ul,_emscripten_bind_AttributeOctahedronTransform___destroy___0:pm,_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0:Cn,_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0:lk,_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1:Ul,_emscripten_bind_AttributeQuantizationTransform___destroy___0:pm,_emscripten_bind_AttributeQuantizationTransform_min_value_1:mm,_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0:Cn,_emscripten_bind_AttributeQuantizationTransform_range_0:Bn,_emscripten_bind_AttributeTransformData_AttributeTransformData_0:gm,_emscripten_bind_AttributeTransformData___destroy___0:Xk,_emscripten_bind_AttributeTransformData_transform_type_0:lo,_emscripten_bind_DecoderBuffer_DecoderBuffer_0:Xm,_emscripten_bind_DecoderBuffer_Init_2:Cm,_emscripten_bind_DecoderBuffer___destroy___0:Dn,_emscripten_bind_Decoder_DecodeBufferToMesh_2:Pl,_emscripten_bind_Decoder_DecodeBufferToPointCloud_2:yl,_emscripten_bind_Decoder_Decoder_0:In,_emscripten_bind_Decoder_GetAttributeByUniqueId_2:Zl,_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3:Ek,_emscripten_bind_Decoder_GetAttributeFloat_3:nl,_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3:gl,_emscripten_bind_Decoder_GetAttributeIdByName_2:dm,_emscripten_bind_Decoder_GetAttributeId_2:Gl,_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3:Ik,_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3:Nk,_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3:Mk,_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3:Nk,_emscripten_bind_Decoder_GetAttributeMetadata_2:Xl,_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3:Dk,_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3:Ck,_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3:Hk,_emscripten_bind_Decoder_GetAttribute_2:tm,_emscripten_bind_Decoder_GetEncodedGeometryType_1:nm,_emscripten_bind_Decoder_GetFaceFromMesh_3:Dl,_emscripten_bind_Decoder_GetMetadata_1:Mm,_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2:Il,_emscripten_bind_Decoder_SkipAttributeTransform_1:km,_emscripten_bind_Decoder___destroy___0:hi,_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0:bn,_emscripten_bind_DracoFloat32Array_GetValue_1:Im,_emscripten_bind_DracoFloat32Array___destroy___0:ll,_emscripten_bind_DracoFloat32Array_size_0:on,_emscripten_bind_DracoInt16Array_DracoInt16Array_0:bn,_emscripten_bind_DracoInt16Array_GetValue_1:_m,_emscripten_bind_DracoInt16Array___destroy___0:ll,_emscripten_bind_DracoInt16Array_size_0:pn,_emscripten_bind_DracoInt32Array_DracoInt32Array_0:bn,_emscripten_bind_DracoInt32Array_GetValue_1:Zm,_emscripten_bind_DracoInt32Array___destroy___0:ll,_emscripten_bind_DracoInt32Array_size_0:on,_emscripten_bind_DracoInt8Array_DracoInt8Array_0:bn,_emscripten_bind_DracoInt8Array_GetValue_1:an,_emscripten_bind_DracoInt8Array___destroy___0:ll,_emscripten_bind_DracoInt8Array_size_0:zn,_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0:bn,_emscripten_bind_DracoUInt16Array_GetValue_1:_m,_emscripten_bind_DracoUInt16Array___destroy___0:ll,_emscripten_bind_DracoUInt16Array_size_0:pn,_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0:bn,_emscripten_bind_DracoUInt32Array_GetValue_1:Zm,_emscripten_bind_DracoUInt32Array___destroy___0:ll,_emscripten_bind_DracoUInt32Array_size_0:on,_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0:bn,_emscripten_bind_DracoUInt8Array_GetValue_1:an,_emscripten_bind_DracoUInt8Array___destroy___0:ll,_emscripten_bind_DracoUInt8Array_size_0:zn,_emscripten_bind_GeometryAttribute_GeometryAttribute_0:Hm,_emscripten_bind_GeometryAttribute___destroy___0:Dn,_emscripten_bind_Mesh_Mesh_0:Jn,_emscripten_bind_Mesh___destroy___0:pm,_emscripten_bind_Mesh_num_attributes_0:gn,_emscripten_bind_Mesh_num_faces_0:Vm,_emscripten_bind_Mesh_num_points_0:eo,_emscripten_bind_MetadataQuerier_GetDoubleEntry_2:Tl,_emscripten_bind_MetadataQuerier_GetEntryName_2:cm,_emscripten_bind_MetadataQuerier_GetIntEntry_2:$l,_emscripten_bind_MetadataQuerier_GetStringEntry_2:Sl,_emscripten_bind_MetadataQuerier_HasDoubleEntry_2:Rl,_emscripten_bind_MetadataQuerier_HasEntry_2:im,_emscripten_bind_MetadataQuerier_HasIntEntry_2:_l,_emscripten_bind_MetadataQuerier_HasStringEntry_2:Ql,_emscripten_bind_MetadataQuerier_MetadataQuerier_0:Wm,_emscripten_bind_MetadataQuerier_NumEntries_1:xm,_emscripten_bind_MetadataQuerier___destroy___0:zi,_emscripten_bind_Metadata_Metadata_0:Lj,_emscripten_bind_Metadata___destroy___0:Lm,_emscripten_bind_PointAttribute_GetAttributeTransformData_0:Gn,_emscripten_bind_PointAttribute_PointAttribute_0:Sm,_emscripten_bind_PointAttribute___destroy___0:ri,_emscripten_bind_PointAttribute_attribute_type_0:Pn,_emscripten_bind_PointAttribute_byte_offset_0:Vn,_emscripten_bind_PointAttribute_byte_stride_0:Un,_emscripten_bind_PointAttribute_data_type_0:Zn,_emscripten_bind_PointAttribute_normalized_0:Kn,_emscripten_bind_PointAttribute_num_components_0:Sn,_emscripten_bind_PointAttribute_size_0:eo,_emscripten_bind_PointAttribute_unique_id_0:Yn,_emscripten_bind_PointCloud_PointCloud_0:nn,_emscripten_bind_PointCloud___destroy___0:pm,_emscripten_bind_PointCloud_num_attributes_0:gn,_emscripten_bind_PointCloud_num_points_0:eo,_emscripten_bind_Status___destroy___0:tl,_emscripten_bind_Status_code_0:lo,_emscripten_bind_Status_error_msg_0:fl,_emscripten_bind_Status_ok_0:co,_emscripten_bind_VoidPtr___destroy___0:Dn,_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM:Do,_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM:Go,_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM:wo,_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM:vo,_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE:Do,_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD:Go,_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH:vo,_emscripten_enum_draco_GeometryAttribute_Type_COLOR:wo,_emscripten_enum_draco_GeometryAttribute_Type_GENERIC:so,_emscripten_enum_draco_GeometryAttribute_Type_INVALID:Do,_emscripten_enum_draco_GeometryAttribute_Type_NORMAL:vo,_emscripten_enum_draco_GeometryAttribute_Type_POSITION:Go,_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD:po,_emscripten_enum_draco_StatusCode_ERROR:Do,_emscripten_enum_draco_StatusCode_INVALID_PARAMETER:uo,_emscripten_enum_draco_StatusCode_IO_ERROR:Bo,_emscripten_enum_draco_StatusCode_OK:Go,_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION:xo,_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION:ro,_emscripten_replace_memory:Ja,_free:Rb,_i64Add:vl,_i64Subtract:wl,_llvm_bswap_i32:vn,_malloc:Va,_memcpy:Bf,_memmove:Rj,_memset:oh,_sbrk:vj,dynCall_ii:Xn,dynCall_iii:tn,dynCall_iiii:Bm,dynCall_iiiiiii:Yk,dynCall_v:Ao,dynCall_vi:go,dynCall_vii:Hn,dynCall_viii:Rm,dynCall_viiii:rm,dynCall_viiiii:Nl,dynCall_viiiiii:jl,establishStackSpace:ao,getTempRet0:Qo,runPostSets:ul,setTempRet0:Lo,setThrew:En,stackAlloc:Tm,stackRestore:Jo,stackSave:So}}) - - -// EMSCRIPTEN_END_ASM -(Module.asmGlobalArg,Module.asmLibraryArg,buffer);var ___cxa_can_catch=Module["___cxa_can_catch"]=asm["___cxa_can_catch"];var ___cxa_is_pointer_type=Module["___cxa_is_pointer_type"]=asm["___cxa_is_pointer_type"];var ___divdi3=Module["___divdi3"]=asm["___divdi3"];var ___muldi3=Module["___muldi3"]=asm["___muldi3"];var ___udivdi3=Module["___udivdi3"]=asm["___udivdi3"];var _bitshift64Lshr=Module["_bitshift64Lshr"]=asm["_bitshift64Lshr"];var _bitshift64Shl=Module["_bitshift64Shl"]=asm["_bitshift64Shl"];var _emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=Module["_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0"]=asm["_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0"];var _emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=Module["_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1"]=asm["_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1"];var _emscripten_bind_AttributeOctahedronTransform___destroy___0=Module["_emscripten_bind_AttributeOctahedronTransform___destroy___0"]=asm["_emscripten_bind_AttributeOctahedronTransform___destroy___0"];var _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=Module["_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0"]=asm["_emscripten_bind_AttributeOctahedronTransform_quantization_bits_0"];var _emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=Module["_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0"]=asm["_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0"];var _emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=Module["_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1"]=asm["_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1"];var _emscripten_bind_AttributeQuantizationTransform___destroy___0=Module["_emscripten_bind_AttributeQuantizationTransform___destroy___0"]=asm["_emscripten_bind_AttributeQuantizationTransform___destroy___0"];var _emscripten_bind_AttributeQuantizationTransform_min_value_1=Module["_emscripten_bind_AttributeQuantizationTransform_min_value_1"]=asm["_emscripten_bind_AttributeQuantizationTransform_min_value_1"];var _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=Module["_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0"]=asm["_emscripten_bind_AttributeQuantizationTransform_quantization_bits_0"];var _emscripten_bind_AttributeQuantizationTransform_range_0=Module["_emscripten_bind_AttributeQuantizationTransform_range_0"]=asm["_emscripten_bind_AttributeQuantizationTransform_range_0"];var _emscripten_bind_AttributeTransformData_AttributeTransformData_0=Module["_emscripten_bind_AttributeTransformData_AttributeTransformData_0"]=asm["_emscripten_bind_AttributeTransformData_AttributeTransformData_0"];var _emscripten_bind_AttributeTransformData___destroy___0=Module["_emscripten_bind_AttributeTransformData___destroy___0"]=asm["_emscripten_bind_AttributeTransformData___destroy___0"];var _emscripten_bind_AttributeTransformData_transform_type_0=Module["_emscripten_bind_AttributeTransformData_transform_type_0"]=asm["_emscripten_bind_AttributeTransformData_transform_type_0"];var _emscripten_bind_DecoderBuffer_DecoderBuffer_0=Module["_emscripten_bind_DecoderBuffer_DecoderBuffer_0"]=asm["_emscripten_bind_DecoderBuffer_DecoderBuffer_0"];var _emscripten_bind_DecoderBuffer_Init_2=Module["_emscripten_bind_DecoderBuffer_Init_2"]=asm["_emscripten_bind_DecoderBuffer_Init_2"];var _emscripten_bind_DecoderBuffer___destroy___0=Module["_emscripten_bind_DecoderBuffer___destroy___0"]=asm["_emscripten_bind_DecoderBuffer___destroy___0"];var _emscripten_bind_Decoder_DecodeBufferToMesh_2=Module["_emscripten_bind_Decoder_DecodeBufferToMesh_2"]=asm["_emscripten_bind_Decoder_DecodeBufferToMesh_2"];var _emscripten_bind_Decoder_DecodeBufferToPointCloud_2=Module["_emscripten_bind_Decoder_DecodeBufferToPointCloud_2"]=asm["_emscripten_bind_Decoder_DecodeBufferToPointCloud_2"];var _emscripten_bind_Decoder_Decoder_0=Module["_emscripten_bind_Decoder_Decoder_0"]=asm["_emscripten_bind_Decoder_Decoder_0"];var _emscripten_bind_Decoder_GetAttributeByUniqueId_2=Module["_emscripten_bind_Decoder_GetAttributeByUniqueId_2"]=asm["_emscripten_bind_Decoder_GetAttributeByUniqueId_2"];var _emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeFloat_3=Module["_emscripten_bind_Decoder_GetAttributeFloat_3"]=asm["_emscripten_bind_Decoder_GetAttributeFloat_3"];var _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=Module["_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3"]=asm["_emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3"];var _emscripten_bind_Decoder_GetAttributeIdByName_2=Module["_emscripten_bind_Decoder_GetAttributeIdByName_2"]=asm["_emscripten_bind_Decoder_GetAttributeIdByName_2"];var _emscripten_bind_Decoder_GetAttributeId_2=Module["_emscripten_bind_Decoder_GetAttributeId_2"]=asm["_emscripten_bind_Decoder_GetAttributeId_2"];var _emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeMetadata_2=Module["_emscripten_bind_Decoder_GetAttributeMetadata_2"]=asm["_emscripten_bind_Decoder_GetAttributeMetadata_2"];var _emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=Module["_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3"]=asm["_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3"];var _emscripten_bind_Decoder_GetAttribute_2=Module["_emscripten_bind_Decoder_GetAttribute_2"]=asm["_emscripten_bind_Decoder_GetAttribute_2"];var _emscripten_bind_Decoder_GetEncodedGeometryType_1=Module["_emscripten_bind_Decoder_GetEncodedGeometryType_1"]=asm["_emscripten_bind_Decoder_GetEncodedGeometryType_1"];var _emscripten_bind_Decoder_GetFaceFromMesh_3=Module["_emscripten_bind_Decoder_GetFaceFromMesh_3"]=asm["_emscripten_bind_Decoder_GetFaceFromMesh_3"];var _emscripten_bind_Decoder_GetMetadata_1=Module["_emscripten_bind_Decoder_GetMetadata_1"]=asm["_emscripten_bind_Decoder_GetMetadata_1"];var _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=Module["_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2"]=asm["_emscripten_bind_Decoder_GetTriangleStripsFromMesh_2"];var _emscripten_bind_Decoder_SkipAttributeTransform_1=Module["_emscripten_bind_Decoder_SkipAttributeTransform_1"]=asm["_emscripten_bind_Decoder_SkipAttributeTransform_1"];var _emscripten_bind_Decoder___destroy___0=Module["_emscripten_bind_Decoder___destroy___0"]=asm["_emscripten_bind_Decoder___destroy___0"];var _emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=Module["_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0"]=asm["_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0"];var _emscripten_bind_DracoFloat32Array_GetValue_1=Module["_emscripten_bind_DracoFloat32Array_GetValue_1"]=asm["_emscripten_bind_DracoFloat32Array_GetValue_1"];var _emscripten_bind_DracoFloat32Array___destroy___0=Module["_emscripten_bind_DracoFloat32Array___destroy___0"]=asm["_emscripten_bind_DracoFloat32Array___destroy___0"];var _emscripten_bind_DracoFloat32Array_size_0=Module["_emscripten_bind_DracoFloat32Array_size_0"]=asm["_emscripten_bind_DracoFloat32Array_size_0"];var _emscripten_bind_DracoInt16Array_DracoInt16Array_0=Module["_emscripten_bind_DracoInt16Array_DracoInt16Array_0"]=asm["_emscripten_bind_DracoInt16Array_DracoInt16Array_0"];var _emscripten_bind_DracoInt16Array_GetValue_1=Module["_emscripten_bind_DracoInt16Array_GetValue_1"]=asm["_emscripten_bind_DracoInt16Array_GetValue_1"];var _emscripten_bind_DracoInt16Array___destroy___0=Module["_emscripten_bind_DracoInt16Array___destroy___0"]=asm["_emscripten_bind_DracoInt16Array___destroy___0"];var _emscripten_bind_DracoInt16Array_size_0=Module["_emscripten_bind_DracoInt16Array_size_0"]=asm["_emscripten_bind_DracoInt16Array_size_0"];var _emscripten_bind_DracoInt32Array_DracoInt32Array_0=Module["_emscripten_bind_DracoInt32Array_DracoInt32Array_0"]=asm["_emscripten_bind_DracoInt32Array_DracoInt32Array_0"];var _emscripten_bind_DracoInt32Array_GetValue_1=Module["_emscripten_bind_DracoInt32Array_GetValue_1"]=asm["_emscripten_bind_DracoInt32Array_GetValue_1"];var _emscripten_bind_DracoInt32Array___destroy___0=Module["_emscripten_bind_DracoInt32Array___destroy___0"]=asm["_emscripten_bind_DracoInt32Array___destroy___0"];var _emscripten_bind_DracoInt32Array_size_0=Module["_emscripten_bind_DracoInt32Array_size_0"]=asm["_emscripten_bind_DracoInt32Array_size_0"];var _emscripten_bind_DracoInt8Array_DracoInt8Array_0=Module["_emscripten_bind_DracoInt8Array_DracoInt8Array_0"]=asm["_emscripten_bind_DracoInt8Array_DracoInt8Array_0"];var _emscripten_bind_DracoInt8Array_GetValue_1=Module["_emscripten_bind_DracoInt8Array_GetValue_1"]=asm["_emscripten_bind_DracoInt8Array_GetValue_1"];var _emscripten_bind_DracoInt8Array___destroy___0=Module["_emscripten_bind_DracoInt8Array___destroy___0"]=asm["_emscripten_bind_DracoInt8Array___destroy___0"];var _emscripten_bind_DracoInt8Array_size_0=Module["_emscripten_bind_DracoInt8Array_size_0"]=asm["_emscripten_bind_DracoInt8Array_size_0"];var _emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=Module["_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0"]=asm["_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0"];var _emscripten_bind_DracoUInt16Array_GetValue_1=Module["_emscripten_bind_DracoUInt16Array_GetValue_1"]=asm["_emscripten_bind_DracoUInt16Array_GetValue_1"];var _emscripten_bind_DracoUInt16Array___destroy___0=Module["_emscripten_bind_DracoUInt16Array___destroy___0"]=asm["_emscripten_bind_DracoUInt16Array___destroy___0"];var _emscripten_bind_DracoUInt16Array_size_0=Module["_emscripten_bind_DracoUInt16Array_size_0"]=asm["_emscripten_bind_DracoUInt16Array_size_0"];var _emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=Module["_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0"]=asm["_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0"];var _emscripten_bind_DracoUInt32Array_GetValue_1=Module["_emscripten_bind_DracoUInt32Array_GetValue_1"]=asm["_emscripten_bind_DracoUInt32Array_GetValue_1"];var _emscripten_bind_DracoUInt32Array___destroy___0=Module["_emscripten_bind_DracoUInt32Array___destroy___0"]=asm["_emscripten_bind_DracoUInt32Array___destroy___0"];var _emscripten_bind_DracoUInt32Array_size_0=Module["_emscripten_bind_DracoUInt32Array_size_0"]=asm["_emscripten_bind_DracoUInt32Array_size_0"];var _emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=Module["_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0"]=asm["_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0"];var _emscripten_bind_DracoUInt8Array_GetValue_1=Module["_emscripten_bind_DracoUInt8Array_GetValue_1"]=asm["_emscripten_bind_DracoUInt8Array_GetValue_1"];var _emscripten_bind_DracoUInt8Array___destroy___0=Module["_emscripten_bind_DracoUInt8Array___destroy___0"]=asm["_emscripten_bind_DracoUInt8Array___destroy___0"];var _emscripten_bind_DracoUInt8Array_size_0=Module["_emscripten_bind_DracoUInt8Array_size_0"]=asm["_emscripten_bind_DracoUInt8Array_size_0"];var _emscripten_bind_GeometryAttribute_GeometryAttribute_0=Module["_emscripten_bind_GeometryAttribute_GeometryAttribute_0"]=asm["_emscripten_bind_GeometryAttribute_GeometryAttribute_0"];var _emscripten_bind_GeometryAttribute___destroy___0=Module["_emscripten_bind_GeometryAttribute___destroy___0"]=asm["_emscripten_bind_GeometryAttribute___destroy___0"];var _emscripten_bind_Mesh_Mesh_0=Module["_emscripten_bind_Mesh_Mesh_0"]=asm["_emscripten_bind_Mesh_Mesh_0"];var _emscripten_bind_Mesh___destroy___0=Module["_emscripten_bind_Mesh___destroy___0"]=asm["_emscripten_bind_Mesh___destroy___0"];var _emscripten_bind_Mesh_num_attributes_0=Module["_emscripten_bind_Mesh_num_attributes_0"]=asm["_emscripten_bind_Mesh_num_attributes_0"];var _emscripten_bind_Mesh_num_faces_0=Module["_emscripten_bind_Mesh_num_faces_0"]=asm["_emscripten_bind_Mesh_num_faces_0"];var _emscripten_bind_Mesh_num_points_0=Module["_emscripten_bind_Mesh_num_points_0"]=asm["_emscripten_bind_Mesh_num_points_0"];var _emscripten_bind_MetadataQuerier_GetDoubleEntry_2=Module["_emscripten_bind_MetadataQuerier_GetDoubleEntry_2"]=asm["_emscripten_bind_MetadataQuerier_GetDoubleEntry_2"];var _emscripten_bind_MetadataQuerier_GetEntryName_2=Module["_emscripten_bind_MetadataQuerier_GetEntryName_2"]=asm["_emscripten_bind_MetadataQuerier_GetEntryName_2"];var _emscripten_bind_MetadataQuerier_GetIntEntry_2=Module["_emscripten_bind_MetadataQuerier_GetIntEntry_2"]=asm["_emscripten_bind_MetadataQuerier_GetIntEntry_2"];var _emscripten_bind_MetadataQuerier_GetStringEntry_2=Module["_emscripten_bind_MetadataQuerier_GetStringEntry_2"]=asm["_emscripten_bind_MetadataQuerier_GetStringEntry_2"];var _emscripten_bind_MetadataQuerier_HasDoubleEntry_2=Module["_emscripten_bind_MetadataQuerier_HasDoubleEntry_2"]=asm["_emscripten_bind_MetadataQuerier_HasDoubleEntry_2"];var _emscripten_bind_MetadataQuerier_HasEntry_2=Module["_emscripten_bind_MetadataQuerier_HasEntry_2"]=asm["_emscripten_bind_MetadataQuerier_HasEntry_2"];var _emscripten_bind_MetadataQuerier_HasIntEntry_2=Module["_emscripten_bind_MetadataQuerier_HasIntEntry_2"]=asm["_emscripten_bind_MetadataQuerier_HasIntEntry_2"];var _emscripten_bind_MetadataQuerier_HasStringEntry_2=Module["_emscripten_bind_MetadataQuerier_HasStringEntry_2"]=asm["_emscripten_bind_MetadataQuerier_HasStringEntry_2"];var _emscripten_bind_MetadataQuerier_MetadataQuerier_0=Module["_emscripten_bind_MetadataQuerier_MetadataQuerier_0"]=asm["_emscripten_bind_MetadataQuerier_MetadataQuerier_0"];var _emscripten_bind_MetadataQuerier_NumEntries_1=Module["_emscripten_bind_MetadataQuerier_NumEntries_1"]=asm["_emscripten_bind_MetadataQuerier_NumEntries_1"];var _emscripten_bind_MetadataQuerier___destroy___0=Module["_emscripten_bind_MetadataQuerier___destroy___0"]=asm["_emscripten_bind_MetadataQuerier___destroy___0"];var _emscripten_bind_Metadata_Metadata_0=Module["_emscripten_bind_Metadata_Metadata_0"]=asm["_emscripten_bind_Metadata_Metadata_0"];var _emscripten_bind_Metadata___destroy___0=Module["_emscripten_bind_Metadata___destroy___0"]=asm["_emscripten_bind_Metadata___destroy___0"];var _emscripten_bind_PointAttribute_GetAttributeTransformData_0=Module["_emscripten_bind_PointAttribute_GetAttributeTransformData_0"]=asm["_emscripten_bind_PointAttribute_GetAttributeTransformData_0"];var _emscripten_bind_PointAttribute_PointAttribute_0=Module["_emscripten_bind_PointAttribute_PointAttribute_0"]=asm["_emscripten_bind_PointAttribute_PointAttribute_0"];var _emscripten_bind_PointAttribute___destroy___0=Module["_emscripten_bind_PointAttribute___destroy___0"]=asm["_emscripten_bind_PointAttribute___destroy___0"];var _emscripten_bind_PointAttribute_attribute_type_0=Module["_emscripten_bind_PointAttribute_attribute_type_0"]=asm["_emscripten_bind_PointAttribute_attribute_type_0"];var _emscripten_bind_PointAttribute_byte_offset_0=Module["_emscripten_bind_PointAttribute_byte_offset_0"]=asm["_emscripten_bind_PointAttribute_byte_offset_0"];var _emscripten_bind_PointAttribute_byte_stride_0=Module["_emscripten_bind_PointAttribute_byte_stride_0"]=asm["_emscripten_bind_PointAttribute_byte_stride_0"];var _emscripten_bind_PointAttribute_data_type_0=Module["_emscripten_bind_PointAttribute_data_type_0"]=asm["_emscripten_bind_PointAttribute_data_type_0"];var _emscripten_bind_PointAttribute_normalized_0=Module["_emscripten_bind_PointAttribute_normalized_0"]=asm["_emscripten_bind_PointAttribute_normalized_0"];var _emscripten_bind_PointAttribute_num_components_0=Module["_emscripten_bind_PointAttribute_num_components_0"]=asm["_emscripten_bind_PointAttribute_num_components_0"];var _emscripten_bind_PointAttribute_size_0=Module["_emscripten_bind_PointAttribute_size_0"]=asm["_emscripten_bind_PointAttribute_size_0"];var _emscripten_bind_PointAttribute_unique_id_0=Module["_emscripten_bind_PointAttribute_unique_id_0"]=asm["_emscripten_bind_PointAttribute_unique_id_0"];var _emscripten_bind_PointCloud_PointCloud_0=Module["_emscripten_bind_PointCloud_PointCloud_0"]=asm["_emscripten_bind_PointCloud_PointCloud_0"];var _emscripten_bind_PointCloud___destroy___0=Module["_emscripten_bind_PointCloud___destroy___0"]=asm["_emscripten_bind_PointCloud___destroy___0"];var _emscripten_bind_PointCloud_num_attributes_0=Module["_emscripten_bind_PointCloud_num_attributes_0"]=asm["_emscripten_bind_PointCloud_num_attributes_0"];var _emscripten_bind_PointCloud_num_points_0=Module["_emscripten_bind_PointCloud_num_points_0"]=asm["_emscripten_bind_PointCloud_num_points_0"];var _emscripten_bind_Status___destroy___0=Module["_emscripten_bind_Status___destroy___0"]=asm["_emscripten_bind_Status___destroy___0"];var _emscripten_bind_Status_code_0=Module["_emscripten_bind_Status_code_0"]=asm["_emscripten_bind_Status_code_0"];var _emscripten_bind_Status_error_msg_0=Module["_emscripten_bind_Status_error_msg_0"]=asm["_emscripten_bind_Status_error_msg_0"];var _emscripten_bind_Status_ok_0=Module["_emscripten_bind_Status_ok_0"]=asm["_emscripten_bind_Status_ok_0"];var _emscripten_bind_VoidPtr___destroy___0=Module["_emscripten_bind_VoidPtr___destroy___0"]=asm["_emscripten_bind_VoidPtr___destroy___0"];var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=Module["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM"]=asm["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM"];var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=Module["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM"]=asm["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM"];var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=Module["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM"]=asm["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM"];var _emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=Module["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM"]=asm["_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM"];var _emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=Module["_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"]=asm["_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE"];var _emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=Module["_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"]=asm["_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD"];var _emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=Module["_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"]=asm["_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH"];var _emscripten_enum_draco_GeometryAttribute_Type_COLOR=Module["_emscripten_enum_draco_GeometryAttribute_Type_COLOR"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_COLOR"];var _emscripten_enum_draco_GeometryAttribute_Type_GENERIC=Module["_emscripten_enum_draco_GeometryAttribute_Type_GENERIC"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_GENERIC"];var _emscripten_enum_draco_GeometryAttribute_Type_INVALID=Module["_emscripten_enum_draco_GeometryAttribute_Type_INVALID"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_INVALID"];var _emscripten_enum_draco_GeometryAttribute_Type_NORMAL=Module["_emscripten_enum_draco_GeometryAttribute_Type_NORMAL"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_NORMAL"];var _emscripten_enum_draco_GeometryAttribute_Type_POSITION=Module["_emscripten_enum_draco_GeometryAttribute_Type_POSITION"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_POSITION"];var _emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=Module["_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"]=asm["_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD"];var _emscripten_enum_draco_StatusCode_ERROR=Module["_emscripten_enum_draco_StatusCode_ERROR"]=asm["_emscripten_enum_draco_StatusCode_ERROR"];var _emscripten_enum_draco_StatusCode_INVALID_PARAMETER=Module["_emscripten_enum_draco_StatusCode_INVALID_PARAMETER"]=asm["_emscripten_enum_draco_StatusCode_INVALID_PARAMETER"];var _emscripten_enum_draco_StatusCode_IO_ERROR=Module["_emscripten_enum_draco_StatusCode_IO_ERROR"]=asm["_emscripten_enum_draco_StatusCode_IO_ERROR"];var _emscripten_enum_draco_StatusCode_OK=Module["_emscripten_enum_draco_StatusCode_OK"]=asm["_emscripten_enum_draco_StatusCode_OK"];var _emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=Module["_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION"]=asm["_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION"];var _emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=Module["_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION"]=asm["_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION"];var _emscripten_replace_memory=Module["_emscripten_replace_memory"]=asm["_emscripten_replace_memory"];var _free=Module["_free"]=asm["_free"];var _i64Add=Module["_i64Add"]=asm["_i64Add"];var _i64Subtract=Module["_i64Subtract"]=asm["_i64Subtract"];var _llvm_bswap_i32=Module["_llvm_bswap_i32"]=asm["_llvm_bswap_i32"];var _malloc=Module["_malloc"]=asm["_malloc"];var _memcpy=Module["_memcpy"]=asm["_memcpy"];var _memmove=Module["_memmove"]=asm["_memmove"];var _memset=Module["_memset"]=asm["_memset"];var _sbrk=Module["_sbrk"]=asm["_sbrk"];var establishStackSpace=Module["establishStackSpace"]=asm["establishStackSpace"];var getTempRet0=Module["getTempRet0"]=asm["getTempRet0"];var runPostSets=Module["runPostSets"]=asm["runPostSets"];var setTempRet0=Module["setTempRet0"]=asm["setTempRet0"];var setThrew=Module["setThrew"]=asm["setThrew"];var stackAlloc=Module["stackAlloc"]=asm["stackAlloc"];var stackRestore=Module["stackRestore"]=asm["stackRestore"];var stackSave=Module["stackSave"]=asm["stackSave"];var dynCall_ii=Module["dynCall_ii"]=asm["dynCall_ii"];var dynCall_iii=Module["dynCall_iii"]=asm["dynCall_iii"];var dynCall_iiii=Module["dynCall_iiii"]=asm["dynCall_iiii"];var dynCall_iiiiiii=Module["dynCall_iiiiiii"]=asm["dynCall_iiiiiii"];var dynCall_v=Module["dynCall_v"]=asm["dynCall_v"];var dynCall_vi=Module["dynCall_vi"]=asm["dynCall_vi"];var dynCall_vii=Module["dynCall_vii"]=asm["dynCall_vii"];var dynCall_viii=Module["dynCall_viii"]=asm["dynCall_viii"];var dynCall_viiii=Module["dynCall_viiii"]=asm["dynCall_viiii"];var dynCall_viiiii=Module["dynCall_viiiii"]=asm["dynCall_viiiii"];var dynCall_viiiiii=Module["dynCall_viiiiii"]=asm["dynCall_viiiiii"];Module["asm"]=asm;if(memoryInitializer){if(!isDataURI(memoryInitializer)){if(typeof Module["locateFile"]==="function"){memoryInitializer=Module["locateFile"](memoryInitializer)}else if(Module["memoryInitializerPrefixURL"]){memoryInitializer=Module["memoryInitializerPrefixURL"]+memoryInitializer}}if(ENVIRONMENT_IS_NODE||ENVIRONMENT_IS_SHELL){var data=Module["readBinary"](memoryInitializer);HEAPU8.set(data,GLOBAL_BASE)}else{addRunDependency("memory initializer");var applyMemoryInitializer=(function(data){if(data.byteLength)data=new Uint8Array(data);HEAPU8.set(data,GLOBAL_BASE);if(Module["memoryInitializerRequest"])delete Module["memoryInitializerRequest"].response;removeRunDependency("memory initializer")});function doBrowserLoad(){Module["readAsync"](memoryInitializer,applyMemoryInitializer,(function(){throw"could not load memory initializer "+memoryInitializer}))}var memoryInitializerBytes=tryParseAsDataURI(memoryInitializer);if(memoryInitializerBytes){applyMemoryInitializer(memoryInitializerBytes.buffer)}else if(Module["memoryInitializerRequest"]){function useRequest(){var request=Module["memoryInitializerRequest"];var response=request.response;if(request.status!==200&&request.status!==0){var data=tryParseAsDataURI(Module["memoryInitializerRequestURL"]);if(data){response=data.buffer}else{console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+request.status+", retrying "+memoryInitializer);doBrowserLoad();return}}applyMemoryInitializer(response)}if(Module["memoryInitializerRequest"].response){setTimeout(useRequest,0)}else{Module["memoryInitializerRequest"].addEventListener("load",useRequest)}}else{doBrowserLoad()}}}Module["then"]=(function(func){if(Module["calledRun"]){func(Module)}else{var old=Module["onRuntimeInitialized"];Module["onRuntimeInitialized"]=(function(){if(old)old();func(Module)})}return Module});function ExitStatus(status){this.name="ExitStatus";this.message="Program terminated with exit("+status+")";this.status=status}ExitStatus.prototype=new Error;ExitStatus.prototype.constructor=ExitStatus;var initialStackTop;dependenciesFulfilled=function runCaller(){if(!Module["calledRun"])run();if(!Module["calledRun"])dependenciesFulfilled=runCaller};function run(args){args=args||Module["arguments"];if(runDependencies>0){return}preRun();if(runDependencies>0)return;if(Module["calledRun"])return;function doRun(){if(Module["calledRun"])return;Module["calledRun"]=true;if(ABORT)return;ensureInitRuntime();preMain();if(Module["onRuntimeInitialized"])Module["onRuntimeInitialized"]();postRun()}if(Module["setStatus"]){Module["setStatus"]("Running...");setTimeout((function(){setTimeout((function(){Module["setStatus"]("")}),1);doRun()}),1)}else{doRun()}}Module["run"]=run;function exit(status,implicit){if(implicit&&Module["noExitRuntime"]&&status===0){return}if(Module["noExitRuntime"]){}else{ABORT=true;EXITSTATUS=status;STACKTOP=initialStackTop;exitRuntime();if(Module["onExit"])Module["onExit"](status)}if(ENVIRONMENT_IS_NODE){process["exit"](status)}Module["quit"](status,new ExitStatus(status))}Module["exit"]=exit;function abort(what){if(Module["onAbort"]){Module["onAbort"](what)}if(what!==undefined){Module.print(what);Module.printErr(what);what=JSON.stringify(what)}else{what=""}ABORT=true;EXITSTATUS=1;throw"abort("+what+"). Build with -s ASSERTIONS=1 for more info."}Module["abort"]=abort;if(Module["preInit"]){if(typeof Module["preInit"]=="function")Module["preInit"]=[Module["preInit"]];while(Module["preInit"].length>0){Module["preInit"].pop()()}}Module["noExitRuntime"]=true;run();function WrapperObject(){}WrapperObject.prototype=Object.create(WrapperObject.prototype);WrapperObject.prototype.constructor=WrapperObject;WrapperObject.prototype.__class__=WrapperObject;WrapperObject.__cache__={};Module["WrapperObject"]=WrapperObject;function getCache(__class__){return(__class__||WrapperObject).__cache__}Module["getCache"]=getCache;function wrapPointer(ptr,__class__){var cache=getCache(__class__);var ret=cache[ptr];if(ret)return ret;ret=Object.create((__class__||WrapperObject).prototype);ret.ptr=ptr;return cache[ptr]=ret}Module["wrapPointer"]=wrapPointer;function castObject(obj,__class__){return wrapPointer(obj.ptr,__class__)}Module["castObject"]=castObject;Module["NULL"]=wrapPointer(0);function destroy(obj){if(!obj["__destroy__"])throw"Error: Cannot destroy object. (Did you create it yourself?)";obj["__destroy__"]();delete getCache(obj.__class__)[obj.ptr]}Module["destroy"]=destroy;function compare(obj1,obj2){return obj1.ptr===obj2.ptr}Module["compare"]=compare;function getPointer(obj){return obj.ptr}Module["getPointer"]=getPointer;function getClass(obj){return obj.__class__}Module["getClass"]=getClass;var ensureCache={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:(function(){if(ensureCache.needed){for(var i=0;i<ensureCache.temps.length;i++){Module["_free"](ensureCache.temps[i])}ensureCache.temps.length=0;Module["_free"](ensureCache.buffer);ensureCache.buffer=0;ensureCache.size+=ensureCache.needed;ensureCache.needed=0}if(!ensureCache.buffer){ensureCache.size+=128;ensureCache.buffer=Module["_malloc"](ensureCache.size);assert(ensureCache.buffer)}ensureCache.pos=0}),alloc:(function(array,view){assert(ensureCache.buffer);var bytes=view.BYTES_PER_ELEMENT;var len=array.length*bytes;len=len+7&-8;var ret;if(ensureCache.pos+len>=ensureCache.size){assert(len>0);ensureCache.needed+=len;ret=Module["_malloc"](len);ensureCache.temps.push(ret)}else{ret=ensureCache.buffer+ensureCache.pos;ensureCache.pos+=len}return ret}),copy:(function(array,view,offset){var offsetShifted=offset;var bytes=view.BYTES_PER_ELEMENT;switch(bytes){case 2:offsetShifted>>=1;break;case 4:offsetShifted>>=2;break;case 8:offsetShifted>>=3;break}for(var i=0;i<array.length;i++){view[offsetShifted+i]=array[i]}})};function ensureString(value){if(typeof value==="string"){var intArray=intArrayFromString(value);var offset=ensureCache.alloc(intArray,HEAP8);ensureCache.copy(intArray,HEAP8,offset);return offset}return value}function ensureInt8(value){if(typeof value==="object"){var offset=ensureCache.alloc(value,HEAP8);ensureCache.copy(value,HEAP8,offset);return offset}return value}function Status(){throw"cannot construct a Status, no constructor in IDL"}Status.prototype=Object.create(WrapperObject.prototype);Status.prototype.constructor=Status;Status.prototype.__class__=Status;Status.__cache__={};Module["Status"]=Status;Status.prototype["code"]=Status.prototype.code=(function(){var self=this.ptr;return _emscripten_bind_Status_code_0(self)});Status.prototype["ok"]=Status.prototype.ok=(function(){var self=this.ptr;return!!_emscripten_bind_Status_ok_0(self)});Status.prototype["error_msg"]=Status.prototype.error_msg=(function(){var self=this.ptr;return Pointer_stringify(_emscripten_bind_Status_error_msg_0(self))});Status.prototype["__destroy__"]=Status.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Status___destroy___0(self)});function DracoUInt16Array(){this.ptr=_emscripten_bind_DracoUInt16Array_DracoUInt16Array_0();getCache(DracoUInt16Array)[this.ptr]=this}DracoUInt16Array.prototype=Object.create(WrapperObject.prototype);DracoUInt16Array.prototype.constructor=DracoUInt16Array;DracoUInt16Array.prototype.__class__=DracoUInt16Array;DracoUInt16Array.__cache__={};Module["DracoUInt16Array"]=DracoUInt16Array;DracoUInt16Array.prototype["GetValue"]=DracoUInt16Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoUInt16Array_GetValue_1(self,arg0)});DracoUInt16Array.prototype["size"]=DracoUInt16Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoUInt16Array_size_0(self)});DracoUInt16Array.prototype["__destroy__"]=DracoUInt16Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoUInt16Array___destroy___0(self)});function PointCloud(){this.ptr=_emscripten_bind_PointCloud_PointCloud_0();getCache(PointCloud)[this.ptr]=this}PointCloud.prototype=Object.create(WrapperObject.prototype);PointCloud.prototype.constructor=PointCloud;PointCloud.prototype.__class__=PointCloud;PointCloud.__cache__={};Module["PointCloud"]=PointCloud;PointCloud.prototype["num_attributes"]=PointCloud.prototype.num_attributes=(function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_attributes_0(self)});PointCloud.prototype["num_points"]=PointCloud.prototype.num_points=(function(){var self=this.ptr;return _emscripten_bind_PointCloud_num_points_0(self)});PointCloud.prototype["__destroy__"]=PointCloud.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_PointCloud___destroy___0(self)});function DracoUInt8Array(){this.ptr=_emscripten_bind_DracoUInt8Array_DracoUInt8Array_0();getCache(DracoUInt8Array)[this.ptr]=this}DracoUInt8Array.prototype=Object.create(WrapperObject.prototype);DracoUInt8Array.prototype.constructor=DracoUInt8Array;DracoUInt8Array.prototype.__class__=DracoUInt8Array;DracoUInt8Array.__cache__={};Module["DracoUInt8Array"]=DracoUInt8Array;DracoUInt8Array.prototype["GetValue"]=DracoUInt8Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoUInt8Array_GetValue_1(self,arg0)});DracoUInt8Array.prototype["size"]=DracoUInt8Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoUInt8Array_size_0(self)});DracoUInt8Array.prototype["__destroy__"]=DracoUInt8Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoUInt8Array___destroy___0(self)});function DracoUInt32Array(){this.ptr=_emscripten_bind_DracoUInt32Array_DracoUInt32Array_0();getCache(DracoUInt32Array)[this.ptr]=this}DracoUInt32Array.prototype=Object.create(WrapperObject.prototype);DracoUInt32Array.prototype.constructor=DracoUInt32Array;DracoUInt32Array.prototype.__class__=DracoUInt32Array;DracoUInt32Array.__cache__={};Module["DracoUInt32Array"]=DracoUInt32Array;DracoUInt32Array.prototype["GetValue"]=DracoUInt32Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoUInt32Array_GetValue_1(self,arg0)});DracoUInt32Array.prototype["size"]=DracoUInt32Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoUInt32Array_size_0(self)});DracoUInt32Array.prototype["__destroy__"]=DracoUInt32Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoUInt32Array___destroy___0(self)});function AttributeOctahedronTransform(){this.ptr=_emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0();getCache(AttributeOctahedronTransform)[this.ptr]=this}AttributeOctahedronTransform.prototype=Object.create(WrapperObject.prototype);AttributeOctahedronTransform.prototype.constructor=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype.__class__=AttributeOctahedronTransform;AttributeOctahedronTransform.__cache__={};Module["AttributeOctahedronTransform"]=AttributeOctahedronTransform;AttributeOctahedronTransform.prototype["InitFromAttribute"]=AttributeOctahedronTransform.prototype.InitFromAttribute=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return!!_emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1(self,arg0)});AttributeOctahedronTransform.prototype["quantization_bits"]=AttributeOctahedronTransform.prototype.quantization_bits=(function(){var self=this.ptr;return _emscripten_bind_AttributeOctahedronTransform_quantization_bits_0(self)});AttributeOctahedronTransform.prototype["__destroy__"]=AttributeOctahedronTransform.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_AttributeOctahedronTransform___destroy___0(self)});function PointAttribute(){this.ptr=_emscripten_bind_PointAttribute_PointAttribute_0();getCache(PointAttribute)[this.ptr]=this}PointAttribute.prototype=Object.create(WrapperObject.prototype);PointAttribute.prototype.constructor=PointAttribute;PointAttribute.prototype.__class__=PointAttribute;PointAttribute.__cache__={};Module["PointAttribute"]=PointAttribute;PointAttribute.prototype["size"]=PointAttribute.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_size_0(self)});PointAttribute.prototype["GetAttributeTransformData"]=PointAttribute.prototype.GetAttributeTransformData=(function(){var self=this.ptr;return wrapPointer(_emscripten_bind_PointAttribute_GetAttributeTransformData_0(self),AttributeTransformData)});PointAttribute.prototype["attribute_type"]=PointAttribute.prototype.attribute_type=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_attribute_type_0(self)});PointAttribute.prototype["data_type"]=PointAttribute.prototype.data_type=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_data_type_0(self)});PointAttribute.prototype["num_components"]=PointAttribute.prototype.num_components=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_num_components_0(self)});PointAttribute.prototype["normalized"]=PointAttribute.prototype.normalized=(function(){var self=this.ptr;return!!_emscripten_bind_PointAttribute_normalized_0(self)});PointAttribute.prototype["byte_stride"]=PointAttribute.prototype.byte_stride=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_stride_0(self)});PointAttribute.prototype["byte_offset"]=PointAttribute.prototype.byte_offset=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_byte_offset_0(self)});PointAttribute.prototype["unique_id"]=PointAttribute.prototype.unique_id=(function(){var self=this.ptr;return _emscripten_bind_PointAttribute_unique_id_0(self)});PointAttribute.prototype["__destroy__"]=PointAttribute.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_PointAttribute___destroy___0(self)});function AttributeTransformData(){this.ptr=_emscripten_bind_AttributeTransformData_AttributeTransformData_0();getCache(AttributeTransformData)[this.ptr]=this}AttributeTransformData.prototype=Object.create(WrapperObject.prototype);AttributeTransformData.prototype.constructor=AttributeTransformData;AttributeTransformData.prototype.__class__=AttributeTransformData;AttributeTransformData.__cache__={};Module["AttributeTransformData"]=AttributeTransformData;AttributeTransformData.prototype["transform_type"]=AttributeTransformData.prototype.transform_type=(function(){var self=this.ptr;return _emscripten_bind_AttributeTransformData_transform_type_0(self)});AttributeTransformData.prototype["__destroy__"]=AttributeTransformData.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_AttributeTransformData___destroy___0(self)});function AttributeQuantizationTransform(){this.ptr=_emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0();getCache(AttributeQuantizationTransform)[this.ptr]=this}AttributeQuantizationTransform.prototype=Object.create(WrapperObject.prototype);AttributeQuantizationTransform.prototype.constructor=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype.__class__=AttributeQuantizationTransform;AttributeQuantizationTransform.__cache__={};Module["AttributeQuantizationTransform"]=AttributeQuantizationTransform;AttributeQuantizationTransform.prototype["InitFromAttribute"]=AttributeQuantizationTransform.prototype.InitFromAttribute=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return!!_emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1(self,arg0)});AttributeQuantizationTransform.prototype["quantization_bits"]=AttributeQuantizationTransform.prototype.quantization_bits=(function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_quantization_bits_0(self)});AttributeQuantizationTransform.prototype["min_value"]=AttributeQuantizationTransform.prototype.min_value=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_AttributeQuantizationTransform_min_value_1(self,arg0)});AttributeQuantizationTransform.prototype["range"]=AttributeQuantizationTransform.prototype.range=(function(){var self=this.ptr;return _emscripten_bind_AttributeQuantizationTransform_range_0(self)});AttributeQuantizationTransform.prototype["__destroy__"]=AttributeQuantizationTransform.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_AttributeQuantizationTransform___destroy___0(self)});function DracoInt8Array(){this.ptr=_emscripten_bind_DracoInt8Array_DracoInt8Array_0();getCache(DracoInt8Array)[this.ptr]=this}DracoInt8Array.prototype=Object.create(WrapperObject.prototype);DracoInt8Array.prototype.constructor=DracoInt8Array;DracoInt8Array.prototype.__class__=DracoInt8Array;DracoInt8Array.__cache__={};Module["DracoInt8Array"]=DracoInt8Array;DracoInt8Array.prototype["GetValue"]=DracoInt8Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoInt8Array_GetValue_1(self,arg0)});DracoInt8Array.prototype["size"]=DracoInt8Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoInt8Array_size_0(self)});DracoInt8Array.prototype["__destroy__"]=DracoInt8Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoInt8Array___destroy___0(self)});function MetadataQuerier(){this.ptr=_emscripten_bind_MetadataQuerier_MetadataQuerier_0();getCache(MetadataQuerier)[this.ptr]=this}MetadataQuerier.prototype=Object.create(WrapperObject.prototype);MetadataQuerier.prototype.constructor=MetadataQuerier;MetadataQuerier.prototype.__class__=MetadataQuerier;MetadataQuerier.__cache__={};Module["MetadataQuerier"]=MetadataQuerier;MetadataQuerier.prototype["HasEntry"]=MetadataQuerier.prototype.HasEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return!!_emscripten_bind_MetadataQuerier_HasEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["HasIntEntry"]=MetadataQuerier.prototype.HasIntEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return!!_emscripten_bind_MetadataQuerier_HasIntEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["GetIntEntry"]=MetadataQuerier.prototype.GetIntEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return _emscripten_bind_MetadataQuerier_GetIntEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["HasDoubleEntry"]=MetadataQuerier.prototype.HasDoubleEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return!!_emscripten_bind_MetadataQuerier_HasDoubleEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["GetDoubleEntry"]=MetadataQuerier.prototype.GetDoubleEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return _emscripten_bind_MetadataQuerier_GetDoubleEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["HasStringEntry"]=MetadataQuerier.prototype.HasStringEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return!!_emscripten_bind_MetadataQuerier_HasStringEntry_2(self,arg0,arg1)});MetadataQuerier.prototype["GetStringEntry"]=MetadataQuerier.prototype.GetStringEntry=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return Pointer_stringify(_emscripten_bind_MetadataQuerier_GetStringEntry_2(self,arg0,arg1))});MetadataQuerier.prototype["NumEntries"]=MetadataQuerier.prototype.NumEntries=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_MetadataQuerier_NumEntries_1(self,arg0)});MetadataQuerier.prototype["GetEntryName"]=MetadataQuerier.prototype.GetEntryName=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return Pointer_stringify(_emscripten_bind_MetadataQuerier_GetEntryName_2(self,arg0,arg1))});MetadataQuerier.prototype["__destroy__"]=MetadataQuerier.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_MetadataQuerier___destroy___0(self)});function DracoInt16Array(){this.ptr=_emscripten_bind_DracoInt16Array_DracoInt16Array_0();getCache(DracoInt16Array)[this.ptr]=this}DracoInt16Array.prototype=Object.create(WrapperObject.prototype);DracoInt16Array.prototype.constructor=DracoInt16Array;DracoInt16Array.prototype.__class__=DracoInt16Array;DracoInt16Array.__cache__={};Module["DracoInt16Array"]=DracoInt16Array;DracoInt16Array.prototype["GetValue"]=DracoInt16Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoInt16Array_GetValue_1(self,arg0)});DracoInt16Array.prototype["size"]=DracoInt16Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoInt16Array_size_0(self)});DracoInt16Array.prototype["__destroy__"]=DracoInt16Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoInt16Array___destroy___0(self)});function DracoFloat32Array(){this.ptr=_emscripten_bind_DracoFloat32Array_DracoFloat32Array_0();getCache(DracoFloat32Array)[this.ptr]=this}DracoFloat32Array.prototype=Object.create(WrapperObject.prototype);DracoFloat32Array.prototype.constructor=DracoFloat32Array;DracoFloat32Array.prototype.__class__=DracoFloat32Array;DracoFloat32Array.__cache__={};Module["DracoFloat32Array"]=DracoFloat32Array;DracoFloat32Array.prototype["GetValue"]=DracoFloat32Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoFloat32Array_GetValue_1(self,arg0)});DracoFloat32Array.prototype["size"]=DracoFloat32Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoFloat32Array_size_0(self)});DracoFloat32Array.prototype["__destroy__"]=DracoFloat32Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoFloat32Array___destroy___0(self)});function GeometryAttribute(){this.ptr=_emscripten_bind_GeometryAttribute_GeometryAttribute_0();getCache(GeometryAttribute)[this.ptr]=this}GeometryAttribute.prototype=Object.create(WrapperObject.prototype);GeometryAttribute.prototype.constructor=GeometryAttribute;GeometryAttribute.prototype.__class__=GeometryAttribute;GeometryAttribute.__cache__={};Module["GeometryAttribute"]=GeometryAttribute;GeometryAttribute.prototype["__destroy__"]=GeometryAttribute.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_GeometryAttribute___destroy___0(self)});function DecoderBuffer(){this.ptr=_emscripten_bind_DecoderBuffer_DecoderBuffer_0();getCache(DecoderBuffer)[this.ptr]=this}DecoderBuffer.prototype=Object.create(WrapperObject.prototype);DecoderBuffer.prototype.constructor=DecoderBuffer;DecoderBuffer.prototype.__class__=DecoderBuffer;DecoderBuffer.__cache__={};Module["DecoderBuffer"]=DecoderBuffer;DecoderBuffer.prototype["Init"]=DecoderBuffer.prototype.Init=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(typeof arg0=="object"){arg0=ensureInt8(arg0)}if(arg1&&typeof arg1==="object")arg1=arg1.ptr;_emscripten_bind_DecoderBuffer_Init_2(self,arg0,arg1)});DecoderBuffer.prototype["__destroy__"]=DecoderBuffer.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DecoderBuffer___destroy___0(self)});function Decoder(){this.ptr=_emscripten_bind_Decoder_Decoder_0();getCache(Decoder)[this.ptr]=this}Decoder.prototype=Object.create(WrapperObject.prototype);Decoder.prototype.constructor=Decoder;Decoder.prototype.__class__=Decoder;Decoder.__cache__={};Module["Decoder"]=Decoder;Decoder.prototype["GetEncodedGeometryType"]=Decoder.prototype.GetEncodedGeometryType=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_Decoder_GetEncodedGeometryType_1(self,arg0)});Decoder.prototype["DecodeBufferToPointCloud"]=Decoder.prototype.DecodeBufferToPointCloud=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToPointCloud_2(self,arg0,arg1),Status)});Decoder.prototype["DecodeBufferToMesh"]=Decoder.prototype.DecodeBufferToMesh=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return wrapPointer(_emscripten_bind_Decoder_DecodeBufferToMesh_2(self,arg0,arg1),Status)});Decoder.prototype["GetAttributeId"]=Decoder.prototype.GetAttributeId=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return _emscripten_bind_Decoder_GetAttributeId_2(self,arg0,arg1)});Decoder.prototype["GetAttributeIdByName"]=Decoder.prototype.GetAttributeIdByName=(function(arg0,arg1){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);return _emscripten_bind_Decoder_GetAttributeIdByName_2(self,arg0,arg1)});Decoder.prototype["GetAttributeIdByMetadataEntry"]=Decoder.prototype.GetAttributeIdByMetadataEntry=(function(arg0,arg1,arg2){var self=this.ptr;ensureCache.prepare();if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;else arg1=ensureString(arg1);if(arg2&&typeof arg2==="object")arg2=arg2.ptr;else arg2=ensureString(arg2);return _emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttribute"]=Decoder.prototype.GetAttribute=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttribute_2(self,arg0,arg1),PointAttribute)});Decoder.prototype["GetAttributeByUniqueId"]=Decoder.prototype.GetAttributeByUniqueId=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeByUniqueId_2(self,arg0,arg1),PointAttribute)});Decoder.prototype["GetMetadata"]=Decoder.prototype.GetMetadata=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return wrapPointer(_emscripten_bind_Decoder_GetMetadata_1(self,arg0),Metadata)});Decoder.prototype["GetAttributeMetadata"]=Decoder.prototype.GetAttributeMetadata=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return wrapPointer(_emscripten_bind_Decoder_GetAttributeMetadata_2(self,arg0,arg1),Metadata)});Decoder.prototype["GetFaceFromMesh"]=Decoder.prototype.GetFaceFromMesh=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetFaceFromMesh_3(self,arg0,arg1,arg2)});Decoder.prototype["GetTriangleStripsFromMesh"]=Decoder.prototype.GetTriangleStripsFromMesh=(function(arg0,arg1){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;return _emscripten_bind_Decoder_GetTriangleStripsFromMesh_2(self,arg0,arg1)});Decoder.prototype["GetAttributeFloat"]=Decoder.prototype.GetAttributeFloat=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloat_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeFloatForAllPoints"]=Decoder.prototype.GetAttributeFloatForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeIntForAllPoints"]=Decoder.prototype.GetAttributeIntForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeIntForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeInt8ForAllPoints"]=Decoder.prototype.GetAttributeInt8ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeUInt8ForAllPoints"]=Decoder.prototype.GetAttributeUInt8ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeInt16ForAllPoints"]=Decoder.prototype.GetAttributeInt16ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeUInt16ForAllPoints"]=Decoder.prototype.GetAttributeUInt16ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeInt32ForAllPoints"]=Decoder.prototype.GetAttributeInt32ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["GetAttributeUInt32ForAllPoints"]=Decoder.prototype.GetAttributeUInt32ForAllPoints=(function(arg0,arg1,arg2){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;if(arg1&&typeof arg1==="object")arg1=arg1.ptr;if(arg2&&typeof arg2==="object")arg2=arg2.ptr;return!!_emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3(self,arg0,arg1,arg2)});Decoder.prototype["SkipAttributeTransform"]=Decoder.prototype.SkipAttributeTransform=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;_emscripten_bind_Decoder_SkipAttributeTransform_1(self,arg0)});Decoder.prototype["__destroy__"]=Decoder.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Decoder___destroy___0(self)});function Mesh(){this.ptr=_emscripten_bind_Mesh_Mesh_0();getCache(Mesh)[this.ptr]=this}Mesh.prototype=Object.create(WrapperObject.prototype);Mesh.prototype.constructor=Mesh;Mesh.prototype.__class__=Mesh;Mesh.__cache__={};Module["Mesh"]=Mesh;Mesh.prototype["num_faces"]=Mesh.prototype.num_faces=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_faces_0(self)});Mesh.prototype["num_attributes"]=Mesh.prototype.num_attributes=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_attributes_0(self)});Mesh.prototype["num_points"]=Mesh.prototype.num_points=(function(){var self=this.ptr;return _emscripten_bind_Mesh_num_points_0(self)});Mesh.prototype["__destroy__"]=Mesh.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Mesh___destroy___0(self)});function VoidPtr(){throw"cannot construct a VoidPtr, no constructor in IDL"}VoidPtr.prototype=Object.create(WrapperObject.prototype);VoidPtr.prototype.constructor=VoidPtr;VoidPtr.prototype.__class__=VoidPtr;VoidPtr.__cache__={};Module["VoidPtr"]=VoidPtr;VoidPtr.prototype["__destroy__"]=VoidPtr.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_VoidPtr___destroy___0(self)});function DracoInt32Array(){this.ptr=_emscripten_bind_DracoInt32Array_DracoInt32Array_0();getCache(DracoInt32Array)[this.ptr]=this}DracoInt32Array.prototype=Object.create(WrapperObject.prototype);DracoInt32Array.prototype.constructor=DracoInt32Array;DracoInt32Array.prototype.__class__=DracoInt32Array;DracoInt32Array.__cache__={};Module["DracoInt32Array"]=DracoInt32Array;DracoInt32Array.prototype["GetValue"]=DracoInt32Array.prototype.GetValue=(function(arg0){var self=this.ptr;if(arg0&&typeof arg0==="object")arg0=arg0.ptr;return _emscripten_bind_DracoInt32Array_GetValue_1(self,arg0)});DracoInt32Array.prototype["size"]=DracoInt32Array.prototype.size=(function(){var self=this.ptr;return _emscripten_bind_DracoInt32Array_size_0(self)});DracoInt32Array.prototype["__destroy__"]=DracoInt32Array.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_DracoInt32Array___destroy___0(self)});function Metadata(){this.ptr=_emscripten_bind_Metadata_Metadata_0();getCache(Metadata)[this.ptr]=this}Metadata.prototype=Object.create(WrapperObject.prototype);Metadata.prototype.constructor=Metadata;Metadata.prototype.__class__=Metadata;Metadata.__cache__={};Module["Metadata"]=Metadata;Metadata.prototype["__destroy__"]=Metadata.prototype.__destroy__=(function(){var self=this.ptr;_emscripten_bind_Metadata___destroy___0(self)});((function(){function setupEnums(){Module["OK"]=_emscripten_enum_draco_StatusCode_OK();Module["ERROR"]=_emscripten_enum_draco_StatusCode_ERROR();Module["IO_ERROR"]=_emscripten_enum_draco_StatusCode_IO_ERROR();Module["INVALID_PARAMETER"]=_emscripten_enum_draco_StatusCode_INVALID_PARAMETER();Module["UNSUPPORTED_VERSION"]=_emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION();Module["UNKNOWN_VERSION"]=_emscripten_enum_draco_StatusCode_UNKNOWN_VERSION();Module["INVALID_GEOMETRY_TYPE"]=_emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE();Module["POINT_CLOUD"]=_emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD();Module["TRIANGULAR_MESH"]=_emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH();Module["ATTRIBUTE_INVALID_TRANSFORM"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM();Module["ATTRIBUTE_NO_TRANSFORM"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM();Module["ATTRIBUTE_QUANTIZATION_TRANSFORM"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM();Module["ATTRIBUTE_OCTAHEDRON_TRANSFORM"]=_emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM();Module["INVALID"]=_emscripten_enum_draco_GeometryAttribute_Type_INVALID();Module["POSITION"]=_emscripten_enum_draco_GeometryAttribute_Type_POSITION();Module["NORMAL"]=_emscripten_enum_draco_GeometryAttribute_Type_NORMAL();Module["COLOR"]=_emscripten_enum_draco_GeometryAttribute_Type_COLOR();Module["TEX_COORD"]=_emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD();Module["GENERIC"]=_emscripten_enum_draco_GeometryAttribute_Type_GENERIC()}if(Module["calledRun"])setupEnums();else addOnPreMain(setupEnums)}))();if(typeof Module["onModuleParsed"]==="function"){Module["onModuleParsed"]()} - - - - - - - return DracoDecoderModule; -}; -if (typeof exports === 'object' && typeof module === 'object') - module.exports = DracoDecoderModule; - else if (typeof define === 'function' && define['amd']) - define([], function() { return DracoDecoderModule; }); - else if (typeof exports === 'object') - exports["DracoDecoderModule"] = DracoDecoderModule; - \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_wasm_wrapper.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_wasm_wrapper.js deleted file mode 100644 index faad42180..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/draco_wasm_wrapper.js +++ /dev/null @@ -1,151 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(d,f,n){d!=Array.prototype&&d!=Object.prototype&&(d[f]=n.value)};$jscomp.getGlobal=function(d){return"undefined"!=typeof window&&window===d?d:"undefined"!=typeof global&&null!=global?global:d};$jscomp.global=$jscomp.getGlobal(this); -$jscomp.polyfill=function(d,f,n,w){if(f){n=$jscomp.global;d=d.split(".");for(w=0;w<d.length-1;w++){var g=d[w];g in n||(n[g]={});n=n[g]}d=d[d.length-1];w=n[d];f=f(w);f!=w&&null!=f&&$jscomp.defineProperty(n,d,{configurable:!0,writable:!0,value:f})}};$jscomp.polyfill("Math.imul",function(d){return d?d:function(f,d){f=Number(f);d=Number(d);var n=f&65535,g=d&65535;return n*g+((f>>>16&65535)*g+n*(d>>>16&65535)<<16>>>0)|0}},"es6","es3"); -$jscomp.polyfill("Math.clz32",function(d){return d?d:function(f){f=Number(f)>>>0;if(0===f)return 32;var d=0;0===(f&4294901760)&&(f<<=16,d+=16);0===(f&4278190080)&&(f<<=8,d+=8);0===(f&4026531840)&&(f<<=4,d+=4);0===(f&3221225472)&&(f<<=2,d+=2);0===(f&2147483648)&&d++;return d}},"es6","es3");$jscomp.polyfill("Math.trunc",function(d){return d?d:function(d){d=Number(d);if(isNaN(d)||Infinity===d||-Infinity===d||0===d)return d;var f=Math.floor(Math.abs(d));return 0>d?-f:f}},"es6","es3"); -$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.symbolCounter_=0;$jscomp.Symbol=function(d){return $jscomp.SYMBOL_PREFIX+(d||"")+$jscomp.symbolCounter_++}; -$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var d=$jscomp.global.Symbol.iterator;d||(d=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[d]&&$jscomp.defineProperty(Array.prototype,d,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(d){var f=0;return $jscomp.iteratorPrototype(function(){return f<d.length?{done:!1,value:d[f++]}:{done:!0}})}; -$jscomp.iteratorPrototype=function(d){$jscomp.initSymbolIterator();d={next:d};d[$jscomp.global.Symbol.iterator]=function(){return this};return d};$jscomp.makeIterator=function(d){$jscomp.initSymbolIterator();var f=d[Symbol.iterator];return f?f.call(d):$jscomp.arrayIterator(d)};$jscomp.FORCE_POLYFILL_PROMISE=!1; -$jscomp.polyfill("Promise",function(d){function f(){this.batch_=null}function n(d){return d instanceof g?d:new g(function(f,D){f(d)})}if(d&&!$jscomp.FORCE_POLYFILL_PROMISE)return d;f.prototype.asyncExecute=function(d){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(d);return this};f.prototype.asyncExecuteBatch_=function(){var d=this;this.asyncExecuteFunction(function(){d.executeBatch_()})};var w=$jscomp.global.setTimeout;f.prototype.asyncExecuteFunction=function(d){w(d, -0)};f.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var d=this.batch_;this.batch_=[];for(var f=0;f<d.length;++f){var g=d[f];delete d[f];try{g()}catch(la){this.asyncThrow_(la)}}}this.batch_=null};f.prototype.asyncThrow_=function(d){this.asyncExecuteFunction(function(){throw d;})};var g=function(d){this.state_=0;this.result_=void 0;this.onSettledCallbacks_=[];var f=this.createResolveAndReject_();try{d(f.resolve,f.reject)}catch(u){f.reject(u)}};g.prototype.createResolveAndReject_= -function(){function d(d){return function(D){g||(g=!0,d.call(f,D))}}var f=this,g=!1;return{resolve:d(this.resolveTo_),reject:d(this.reject_)}};g.prototype.resolveTo_=function(d){if(d===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(d instanceof g)this.settleSameAsPromise_(d);else{a:switch(typeof d){case "object":var f=null!=d;break a;case "function":f=!0;break a;default:f=!1}f?this.resolveToNonPromiseObj_(d):this.fulfill_(d)}};g.prototype.resolveToNonPromiseObj_=function(d){var f= -void 0;try{f=d.then}catch(u){this.reject_(u);return}"function"==typeof f?this.settleSameAsThenable_(f,d):this.fulfill_(d)};g.prototype.reject_=function(d){this.settle_(2,d)};g.prototype.fulfill_=function(d){this.settle_(1,d)};g.prototype.settle_=function(d,f){if(0!=this.state_)throw Error("Cannot settle("+d+", "+f|"): Promise already settled in state"+this.state_);this.state_=d;this.result_=f;this.executeOnSettledCallbacks_()};g.prototype.executeOnSettledCallbacks_=function(){if(null!=this.onSettledCallbacks_){for(var d= -this.onSettledCallbacks_,f=0;f<d.length;++f)d[f].call(),d[f]=null;this.onSettledCallbacks_=null}};var ma=new f;g.prototype.settleSameAsPromise_=function(d){var f=this.createResolveAndReject_();d.callWhenSettled_(f.resolve,f.reject)};g.prototype.settleSameAsThenable_=function(d,f){var g=this.createResolveAndReject_();try{d.call(f,g.resolve,g.reject)}catch(la){g.reject(la)}};g.prototype.then=function(d,f){function u(d,f){return"function"==typeof d?function(f){try{n(d(f))}catch(ea){D(ea)}}:f}var n,D, -w=new g(function(d,f){n=d;D=f});this.callWhenSettled_(u(d,n),u(f,D));return w};g.prototype.catch=function(d){return this.then(void 0,d)};g.prototype.callWhenSettled_=function(d,f){function g(){switch(n.state_){case 1:d(n.result_);break;case 2:f(n.result_);break;default:throw Error("Unexpected state: "+n.state_);}}var n=this;null==this.onSettledCallbacks_?ma.asyncExecute(g):this.onSettledCallbacks_.push(function(){ma.asyncExecute(g)})};g.resolve=n;g.reject=function(d){return new g(function(f,g){g(d)})}; -g.race=function(d){return new g(function(f,g){for(var u=$jscomp.makeIterator(d),w=u.next();!w.done;w=u.next())n(w.value).callWhenSettled_(f,g)})};g.all=function(d){var f=$jscomp.makeIterator(d),u=f.next();return u.done?n([]):new g(function(d,g){function w(f){return function(g){D[f]=g;Q--;0==Q&&d(D)}}var D=[],Q=0;do D.push(void 0),Q++,n(u.value).callWhenSettled_(w(D.length-1),g),u=f.next();while(!u.done)})};return g},"es6","es3"); -var DracoDecoderModule=function(d){function f(a,b){a||W("Assertion failed: "+b)}function n(e,b){if(0===b||!e)return"";for(var c=0,l,d=0;;){l=T[e+d>>0];c|=l;if(0==l&&!b)break;d++;if(b&&d==b)break}b||(b=d);l="";if(128>c){for(;0<b;)c=String.fromCharCode.apply(String,T.subarray(e,e+Math.min(b,1024))),l=l?l+c:c,e+=1024,b-=1024;return l}return a.UTF8ToString(e)}function w(a){return a.replace(/__Z[\w\d_]+/g,function(a){return a===a?a:a+" ["+a+"]"})}function g(){a:{var e=Error();if(!e.stack){try{throw Error(0); -}catch(b){e=b}if(!e.stack){e="(no stack trace available)";break a}}e=e.stack.toString()}a.extraStackTrace&&(e+="\n"+a.extraStackTrace());return w(e)}function ma(a,b){0<a%b&&(a+=b-a%b);return a}function D(){a.HEAP8=fa=new Int8Array(F);a.HEAP16=za=new Int16Array(F);a.HEAP32=x=new Int32Array(F);a.HEAPU8=T=new Uint8Array(F);a.HEAPU16=Oa=new Uint16Array(F);a.HEAPU32=Pa=new Uint32Array(F);a.HEAPF32=Qa=new Float32Array(F);a.HEAPF64=Ra=new Float64Array(F)}function Ma(){var e=a.usingWasm?Aa:Sa,b=2147483648- -e;if(x[ba>>2]>b)return!1;var c=y;for(y=Math.max(y,ib);y<x[ba>>2];)y=536870912>=y?ma(2*y,e):Math.min(ma((3*y+2147483648)/4,e),b);e=a.reallocBuffer(y);if(!e||e.byteLength!=y)return y=c,!1;a.buffer=F=e;D();return!0}function u(e){for(;0<e.length;){var b=e.shift();if("function"==typeof b)b();else{var c=b.func;"number"===typeof c?void 0===b.arg?a.dynCall_v(c):a.dynCall_vi(c,b.arg):c(void 0===b.arg?null:b.arg)}}}function la(e){ha++;a.monitorRunDependencies&&a.monitorRunDependencies(ha)}function Na(e){ha--; -a.monitorRunDependencies&&a.monitorRunDependencies(ha);0==ha&&(null!==Ba&&(clearInterval(Ba),Ba=null),sa&&(e=sa,sa=null,e()))}function na(){return!!na.uncaught_exception}function qa(){var e=A.last;if(!e)return(m.setTempRet0(0),0)|0;var b=A.infos[e],c=b.type;if(!c)return(m.setTempRet0(0),e)|0;var l=Array.prototype.slice.call(arguments);a.___cxa_is_pointer_type(c);qa.buffer||(qa.buffer=Ta(4));x[qa.buffer>>2]=e;e=qa.buffer;for(var d=0;d<l.length;d++)if(l[d]&&a.___cxa_can_catch(l[d],c,e))return e=x[e>> -2],b.adjusted=e,(m.setTempRet0(l[d]),e)|0;e=x[e>>2];return(m.setTempRet0(c),e)|0}function Q(e,b){v.varargs=b;try{var c=v.get(),l=v.get(),d=v.get();e=0;Q.buffer||(Q.buffers=[null,[],[]],Q.printChar=function(b,c){var e=Q.buffers[b];f(e);if(0===c||10===c){b=1===b?a.print:a.printErr;a:{for(var l=c=0;e[l];)++l;if(16<l-c&&e.subarray&&Ua)c=Ua.decode(e.subarray(c,l));else for(l="";;){var d=e[c++];if(!d){c=l;break a}if(d&128){var g=e[c++]&63;if(192==(d&224))l+=String.fromCharCode((d&31)<<6|g);else{var h=e[c++]& -63;if(224==(d&240))d=(d&15)<<12|g<<6|h;else{var E=e[c++]&63;if(240==(d&248))d=(d&7)<<18|g<<12|h<<6|E;else{var k=e[c++]&63;if(248==(d&252))d=(d&3)<<24|g<<18|h<<12|E<<6|k;else{var ta=e[c++]&63;d=(d&1)<<30|g<<24|h<<18|E<<12|k<<6|ta}}}65536>d?l+=String.fromCharCode(d):(d-=65536,l+=String.fromCharCode(55296|d>>10,56320|d&1023))}}else l+=String.fromCharCode(d)}}b(c);e.length=0}else e.push(c)});for(b=0;b<d;b++){for(var h=x[l+8*b>>2],g=x[l+(8*b+4)>>2],k=0;k<g;k++)Q.printChar(c,T[h+k]);e+=g}return e}catch(Ca){return"undefined"!== -typeof FS&&Ca instanceof FS.ErrnoError||W(Ca),-Ca.errno}}function ra(e,b){ra.seen||(ra.seen={});e in ra.seen||(a.dynCall_v(b),ra.seen[e]=1)}function ea(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}function Da(e){function b(){if(!a.calledRun&&(a.calledRun=!0,!ua)){Va||(Va=!0,u(Wa));u(Xa);if(a.onRuntimeInitialized)a.onRuntimeInitialized();if(a.postRun)for("function"==typeof a.postRun&&(a.postRun=[a.postRun]);a.postRun.length;)Ya.unshift(a.postRun.shift()); -u(Ya)}}null===Za&&(Za=Date.now());if(!(0<ha)){if(a.preRun)for("function"==typeof a.preRun&&(a.preRun=[a.preRun]);a.preRun.length;)$a.unshift(a.preRun.shift());u($a);0<ha||a.calledRun||(a.setStatus?(a.setStatus("Running..."),setTimeout(function(){setTimeout(function(){a.setStatus("")},1);b()},1)):b())}}function W(e){if(a.onAbort)a.onAbort(e);void 0!==e?(a.print(e),a.printErr(e),e=JSON.stringify(e)):e="";ua=!0;var b="abort("+e+") at "+g()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information."; -ab&&ab.forEach(function(a){b=a(b,e)});throw b;}function p(){}function t(a){return(a||p).__cache__}function X(a,b){var c=t(b),e=c[a];if(e)return e;e=Object.create((b||p).prototype);e.ptr=a;return c[a]=e}function Y(a){if("string"===typeof a){for(var b=0,c=0;c<a.length;++c){var e=a.charCodeAt(c);55296<=e&&57343>=e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++c)&1023);127>=e?++b:b=2047>=e?b+2:65535>=e?b+3:2097151>=e?b+4:67108863>=e?b+5:b+6}b=Array(b+1);c=0;e=b.length;if(0<e){e=c+e-1;for(var d=0;d<a.length;++d){var f= -a.charCodeAt(d);55296<=f&&57343>=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++d)&1023);if(127>=f){if(c>=e)break;b[c++]=f}else{if(2047>=f){if(c+1>=e)break;b[c++]=192|f>>6}else{if(65535>=f){if(c+2>=e)break;b[c++]=224|f>>12}else{if(2097151>=f){if(c+3>=e)break;b[c++]=240|f>>18}else{if(67108863>=f){if(c+4>=e)break;b[c++]=248|f>>24}else{if(c+5>=e)break;b[c++]=252|f>>30;b[c++]=128|f>>24&63}b[c++]=128|f>>18&63}b[c++]=128|f>>12&63}b[c++]=128|f>>6&63}b[c++]=128|f&63}}b[c]=0}a=k.alloc(b,fa);k.copy(b,fa,a)}return a} -function B(){throw"cannot construct a Status, no constructor in IDL";}function G(){this.ptr=lb();t(G)[this.ptr]=this}function H(){this.ptr=mb();t(H)[this.ptr]=this}function I(){this.ptr=nb();t(I)[this.ptr]=this}function J(){this.ptr=ob();t(J)[this.ptr]=this}function K(){this.ptr=pb();t(K)[this.ptr]=this}function q(){this.ptr=qb();t(q)[this.ptr]=this}function P(){this.ptr=rb();t(P)[this.ptr]=this}function z(){this.ptr=sb();t(z)[this.ptr]=this}function L(){this.ptr=tb();t(L)[this.ptr]=this}function r(){this.ptr= -ub();t(r)[this.ptr]=this}function M(){this.ptr=vb();t(M)[this.ptr]=this}function N(){this.ptr=wb();t(N)[this.ptr]=this}function Z(){this.ptr=xb();t(Z)[this.ptr]=this}function R(){this.ptr=yb();t(R)[this.ptr]=this}function h(){this.ptr=zb();t(h)[this.ptr]=this}function C(){this.ptr=Ab();t(C)[this.ptr]=this}function ca(){throw"cannot construct a VoidPtr, no constructor in IDL";}function O(){this.ptr=Bb();t(O)[this.ptr]=this}function S(){this.ptr=Cb();t(S)[this.ptr]=this}var a=d=d||{},bb=!1,cb=!1;a.onRuntimeInitialized= -function(){bb=!0;if(cb&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.onModuleParsed=function(){cb=!0;if(bb&&"function"===typeof a.onModuleLoaded)a.onModuleLoaded(a)};a.isVersionSupported=function(a){if("string"!==typeof a)return!1;a=a.split(".");return 2>a.length||3<a.length?!1:1==a[0]&&0<=a[1]&&3>=a[1]?!0:0!=a[0]||10<a[1]?!1:!0};a||(a=("undefined"!==typeof d?d:null)||{});var va={},da;for(da in a)a.hasOwnProperty(da)&&(va[da]=a[da]);var oa=!1,ka=!1,pa=!1,wa=!1;if(a.ENVIRONMENT)if("WEB"=== -a.ENVIRONMENT)oa=!0;else if("WORKER"===a.ENVIRONMENT)ka=!0;else if("NODE"===a.ENVIRONMENT)pa=!0;else if("SHELL"===a.ENVIRONMENT)wa=!0;else throw Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");else oa="object"===typeof window,ka="function"===typeof importScripts,pa="object"===typeof process&&"function"===typeof require&&!oa&&!ka,wa=!oa&&!pa&&!ka;if(pa){a.print||(a.print=console.log);a.printErr||(a.printErr=console.warn);var Ea,Fa;a.read=function(a, -b){Ea||(Ea=require("fs"));Fa||(Fa=require("path"));a=Fa.normalize(a);a=Ea.readFileSync(a);return b?a:a.toString()};a.readBinary=function(e){e=a.read(e,!0);e.buffer||(e=new Uint8Array(e));f(e.buffer);return e};a.thisProgram||(a.thisProgram=1<process.argv.length?process.argv[1].replace(/\\/g,"/"):"unknown-program");a.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof ea))throw a;});a.inspect=function(){return"[Emscripten Module object]"}}else if(wa)a.print|| -(a.print=print),"undefined"!=typeof printErr&&(a.printErr=printErr),a.read="undefined"!=typeof read?function(a){return read(a)}:function(){throw"no read() available";},a.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");f("object"===typeof a);return a},"undefined"!=typeof scriptArgs?a.arguments=scriptArgs:"undefined"!=typeof arguments&&(a.arguments=arguments),"function"===typeof quit&&(a.quit=function(a,b){quit(a)});else if(oa||ka)a.read= -function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},ka&&(a.readBinary=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),a.readAsync=function(a,b,c){var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?b(e.response):c()};e.onerror=c;e.send(null)},"undefined"!=typeof arguments&&(a.arguments=arguments), -"undefined"!==typeof console?(a.print||(a.print=function(a){console.log(a)}),a.printErr||(a.printErr=function(a){console.warn(a)})):a.print||(a.print=function(a){}),"undefined"===typeof a.setWindowTitle&&(a.setWindowTitle=function(a){document.title=a});else throw Error("Unknown runtime environment. Where are we?");a.print||(a.print=function(){});a.printErr||(a.printErr=a.print);a.arguments||(a.arguments=[]);a.thisProgram||(a.thisProgram="./this.program");a.quit||(a.quit=function(a,b){throw b;});a.print= -a.print;a.printErr=a.printErr;a.preRun=[];a.postRun=[];for(da in va)va.hasOwnProperty(da)&&(a[da]=va[da]);va=void 0;var m={setTempRet0:function(a){return tempRet0=a},getTempRet0:function(){return tempRet0},stackSave:function(){return U},stackRestore:function(a){U=a},getNativeTypeSize:function(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;case "double":return 8;default:return"*"===a[a.length-1]?m.QUANTUM_SIZE:"i"===a[0]? -(a=parseInt(a.substr(1)),f(0===a%8),a/8):0}},getNativeFieldSize:function(a){return Math.max(m.getNativeTypeSize(a),m.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(a,b){"double"===b||"i64"===b?a&7&&(f(4===(a&7)),a+=4):f(0===(a&3));return a},getAlignSize:function(a,b,c){return c||"i64"!=a&&"double"!=a?a?Math.min(b||(a?m.getNativeFieldSize(a):0),m.QUANTUM_SIZE):Math.min(b,8):8},dynCall:function(e,b,c){return c&&c.length?a["dynCall_"+e].apply(null,[b].concat(c)):a["dynCall_"+e].call(null,b)},functionPointers:[], -addFunction:function(a){for(var b=0;b<m.functionPointers.length;b++)if(!m.functionPointers[b])return m.functionPointers[b]=a,2*(1+b);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";},removeFunction:function(a){m.functionPointers[(a-2)/2]=null},warnOnce:function(e){m.warnOnce.shown||(m.warnOnce.shown={});m.warnOnce.shown[e]||(m.warnOnce.shown[e]=1,a.printErr(e))},funcWrappers:{},getFuncWrapper:function(a,b){if(a){f(b);m.funcWrappers[b]||(m.funcWrappers[b]= -{});var c=m.funcWrappers[b];c[a]||(c[a]=1===b.length?function(){return m.dynCall(b,a)}:2===b.length?function(c){return m.dynCall(b,a,[c])}:function(){return m.dynCall(b,a,Array.prototype.slice.call(arguments))});return c[a]}},getCompilerSetting:function(a){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work";},stackAlloc:function(a){var b=U;U=U+a|0;U=U+15&-16;return b},staticAlloc:function(a){var b=aa;aa=aa+a|0;aa=aa+15& --16;return b},dynamicAlloc:function(a){var b=x[ba>>2];a=(b+a+15|0)&-16;x[ba>>2]=a;return a>=y&&!Ma()?(x[ba>>2]=b,0):b},alignMemory:function(a,b){return Math.ceil(a/(b?b:16))*(b?b:16)},makeBigInt:function(a,b,c){return c?+(a>>>0)+4294967296*+(b>>>0):+(a>>>0)+4294967296*+(b|0)},GLOBAL_BASE:1024,QUANTUM_SIZE:4,__dummy__:0},ua=0,Ua="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var Aa=65536,Sa=16777216,ib=16777216,fa,T,za, -Oa,x,Pa,Qa,Ra,aa,Ga,U,xa,Ha,ba;var Ia=aa=Ga=U=xa=Ha=ba=0;a.reallocBuffer||(a.reallocBuffer=function(a){try{if(ArrayBuffer.transfer)var b=ArrayBuffer.transfer(F,a);else{var c=fa;b=new ArrayBuffer(a);(new Int8Array(b)).set(c)}}catch(l){return!1}return Db(b)?b:!1});try{var Ja=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get);Ja(new ArrayBuffer(4))}catch(e){Ja=function(a){return a.byteLength}}var Ka=a.TOTAL_STACK||5242880,y=a.TOTAL_MEMORY||16777216; -y<Ka&&a.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+y+"! (TOTAL_STACK="+Ka+")");if(a.buffer)var F=a.buffer;else"object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(a.wasmMemory=new WebAssembly.Memory({initial:y/Aa}),F=a.wasmMemory.buffer):F=new ArrayBuffer(y);D();x[0]=1668509029;za[1]=25459;if(115!==T[2]||99!==T[3])throw"Runtime error: expected the system to be little-endian!";a.HEAP=void 0;a.buffer=F;a.HEAP8=fa;a.HEAP16=za;a.HEAP32=x;a.HEAPU8=T;a.HEAPU16=Oa; -a.HEAPU32=Pa;a.HEAPF32=Qa;a.HEAPF64=Ra;var $a=[],Wa=[],Xa=[],db=[],Ya=[],Va=!1;f(Math.imul&&Math.fround&&Math.clz32&&Math.trunc,"this is a legacy browser, build with LEGACY_VM_SUPPORT");var ha=0,Ba=null,sa=null;a.preloadedImages={};a.preloadedAudios={};var V=null;(function(){function e(){try{if(a.wasmBinary)return new Uint8Array(a.wasmBinary);if(a.readBinary)return a.readBinary(d);throw"on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)"; -}catch(jb){W(jb)}}function b(){return a.wasmBinary||!oa&&!ka||"function"!==typeof fetch?new Promise(function(a,b){a(e())}):fetch(d,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+d+"'";return a.arrayBuffer()}).catch(function(){return e()})}function c(c,e,l){function f(b,c){h=b.exports;if(h.memory){b=h.memory;c=a.buffer;b.byteLength<c.byteLength&&a.printErr("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here"); -c=new Int8Array(c);var e=new Int8Array(b);V||c.set(e.subarray(a.STATIC_BASE,a.STATIC_BASE+a.STATIC_BUMP),a.STATIC_BASE);e.set(c);a.buffer=F=b;D()}a.asm=h;a.usingWasm=!0;Na("wasm-instantiate")}function E(a){f(a.instance,a.module)}function k(c){b().then(function(a){return WebAssembly.instantiate(a,g)}).then(c).catch(function(b){a.printErr("failed to asynchronously prepare wasm: "+b);W(b)})}if("object"!==typeof WebAssembly)return a.printErr("no native wasm support detected"),!1;if(!(a.wasmMemory instanceof -WebAssembly.Memory))return a.printErr("no native wasm Memory in use"),!1;e.memory=a.wasmMemory;g.global={NaN:NaN,Infinity:Infinity};g["global.Math"]=c.Math;g.env=e;la("wasm-instantiate");if(a.instantiateWasm)try{return a.instantiateWasm(g,f)}catch(kb){return a.printErr("Module.instantiateWasm callback failed with error: "+kb),!1}a.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||0===d.indexOf("data:")||"function"!==typeof fetch?k(E):WebAssembly.instantiateStreaming(fetch(d,{credentials:"same-origin"}), -g).then(E).catch(function(b){a.printErr("wasm streaming compile failed: "+b);a.printErr("falling back to ArrayBuffer instantiation");k(E)});return{}}var d="draco_decoder.wasm",f="draco_decoder.temp.asm.js";"function"===typeof a.locateFile&&(a.locateFile("draco_decoder.wast"),d=a.locateFile(d),f=a.locateFile(f));var g={global:null,env:null,asm2wasm:{"f64-rem":function(a,b){return a%b},"debugger":function(){debugger}},parent:a},h=null;a.asmPreload=a.asm;var k=a.reallocBuffer;a.reallocBuffer=function(b){if("asmjs"=== -m)var c=k(b);else a:{b=ma(b,a.usingWasm?Aa:Sa);var e=a.buffer.byteLength;if(a.usingWasm)try{c=-1!==a.wasmMemory.grow((b-e)/65536)?a.buffer=a.wasmMemory.buffer:null;break a}catch(Jd){c=null;break a}c=void 0}return c};var m="";a.asm=function(b,e,d){if(!e.table){var l=a.wasmTableSize;void 0===l&&(l=1024);var f=a.wasmMaxTableSize;e.table="object"===typeof WebAssembly&&"function"===typeof WebAssembly.Table?void 0!==f?new WebAssembly.Table({initial:l,maximum:f,element:"anyfunc"}):new WebAssembly.Table({initial:l, -element:"anyfunc"}):Array(l);a.wasmTable=e.table}e.memoryBase||(e.memoryBase=a.STATIC_BASE);e.tableBase||(e.tableBase=0);(b=c(b,e,d))||W("no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods");return b}})();Ia=m.GLOBAL_BASE;aa=Ia+19104;Wa.push();V=null;a.STATIC_BASE=Ia;a.STATIC_BUMP=19104;var Eb=aa;aa+=16;var A={last:0,caught:[],infos:{},deAdjust:function(a){if(!a||A.infos[a])return a; -for(var b in A.infos)if(A.infos[b].adjusted===a)return b;return a},addRef:function(a){a&&A.infos[a].refcount++},decRef:function(e){if(e){var b=A.infos[e];f(0<b.refcount);b.refcount--;0!==b.refcount||b.rethrown||(b.destructor&&a.dynCall_vi(b.destructor,e),delete A.infos[e],___cxa_free_exception(e))}},clearRef:function(a){a&&(A.infos[a].refcount=0)}},v={varargs:0,get:function(a){v.varargs+=4;return x[v.varargs-4>>2]},getStr:function(){return n(v.get())},get64:function(){var a=v.get(),b=v.get();0<=a? -f(0===b):f(-1===b);return a},getZero:function(){f(0===v.get())}},ya={},La=1;db.push(function(){var e=a._fflush;e&&e(0);if(e=Q.printChar){var b=Q.buffers;b[1].length&&e(1,10);b[2].length&&e(2,10)}});ba=m.staticAlloc(4);Ga=U=m.alignMemory(aa);xa=Ga+Ka;Ha=m.alignMemory(xa);x[ba>>2]=Ha;a.wasmTableSize=492;a.wasmMaxTableSize=492;a.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array, -Float64Array:Float64Array,NaN:NaN,Infinity:Infinity,byteLength:Ja};a.asmLibraryArg={abort:W,assert:f,enlargeMemory:Ma,getTotalMemory:function(){return y},abortOnCannotGrowMemory:function(){W("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+y+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}, -invoke_ii:function(e,b){try{return a.dynCall_ii(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_iii:function(e,b,c){try{return a.dynCall_iii(e,b,c)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;a.setThrew(1,0)}},invoke_iiii:function(e,b,c,d){try{return a.dynCall_iiii(e,b,c,d)}catch(E){if("number"!==typeof E&&"longjmp"!==E)throw E;a.setThrew(1,0)}},invoke_iiiiiii:function(e,b,c,d,f,g,h){try{return a.dynCall_iiiiiii(e,b,c,d,f,g,h)}catch(ja){if("number"!== -typeof ja&&"longjmp"!==ja)throw ja;a.setThrew(1,0)}},invoke_v:function(e){try{a.dynCall_v(e)}catch(b){if("number"!==typeof b&&"longjmp"!==b)throw b;a.setThrew(1,0)}},invoke_vi:function(e,b){try{a.dynCall_vi(e,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;a.setThrew(1,0)}},invoke_vii:function(e,b,c){try{a.dynCall_vii(e,b,c)}catch(l){if("number"!==typeof l&&"longjmp"!==l)throw l;a.setThrew(1,0)}},invoke_viii:function(e,b,c,d){try{a.dynCall_viii(e,b,c,d)}catch(E){if("number"!==typeof E&& -"longjmp"!==E)throw E;a.setThrew(1,0)}},invoke_viiii:function(e,b,c,d,f){try{a.dynCall_viiii(e,b,c,d,f)}catch(ta){if("number"!==typeof ta&&"longjmp"!==ta)throw ta;a.setThrew(1,0)}},invoke_viiiii:function(e,b,c,d,f,g){try{a.dynCall_viiiii(e,b,c,d,f,g)}catch(ia){if("number"!==typeof ia&&"longjmp"!==ia)throw ia;a.setThrew(1,0)}},invoke_viiiiii:function(e,b,c,d,f,g,h){try{a.dynCall_viiiiii(e,b,c,d,f,g,h)}catch(ja){if("number"!==typeof ja&&"longjmp"!==ja)throw ja;a.setThrew(1,0)}},__ZSt18uncaught_exceptionv:na, -___cxa_allocate_exception:function(a){return Ta(a)},___cxa_begin_catch:function(a){var b=A.infos[a];b&&!b.caught&&(b.caught=!0,na.uncaught_exception--);b&&(b.rethrown=!1);A.caught.push(a);A.addRef(A.deAdjust(a));return a},___cxa_find_matching_catch:qa,___cxa_pure_virtual:function(){ua=!0;throw"Pure virtual function called!";},___cxa_throw:function(a,b,c){A.infos[a]={ptr:a,adjusted:a,type:b,destructor:c,refcount:0,caught:!1,rethrown:!1};A.last=a;"uncaught_exception"in na?na.uncaught_exception++:na.uncaught_exception= -1;throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},___gxx_personality_v0:function(){},___resumeException:function(a){A.last||(A.last=a);throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";},___setErrNo:function(e){a.___errno_location&&(x[a.___errno_location()>>2]=e);return e}, -___syscall140:function(a,b){v.varargs=b;try{var c=v.getStreamFromFD();v.get();var e=v.get(),d=v.get(),f=v.get();FS.llseek(c,e,f);x[d>>2]=c.position;c.getdents&&0===e&&0===f&&(c.getdents=null);return 0}catch(ia){return"undefined"!==typeof FS&&ia instanceof FS.ErrnoError||W(ia),-ia.errno}},___syscall146:Q,___syscall54:function(a,b){v.varargs=b;return 0},___syscall6:function(a,b){v.varargs=b;try{var c=v.getStreamFromFD();FS.close(c);return 0}catch(l){return"undefined"!==typeof FS&&l instanceof FS.ErrnoError|| -W(l),-l.errno}},_abort:function(){a.abort()},_emscripten_memcpy_big:function(a,b,c){T.set(T.subarray(b,b+c),a);return a},_pthread_getspecific:function(a){return ya[a]||0},_pthread_key_create:function(a,b){if(0==a)return 22;x[a>>2]=La;ya[La]=0;La++;return 0},_pthread_once:ra,_pthread_setspecific:function(a,b){if(!(a in ya))return 22;ya[a]=b;return 0},DYNAMICTOP_PTR:ba,tempDoublePtr:Eb,ABORT:ua,STACKTOP:U,STACK_MAX:xa};var eb=a.asm(a.asmGlobalArg,a.asmLibraryArg,F);a.asm=eb;a.___cxa_can_catch=function(){return a.asm.___cxa_can_catch.apply(null, -arguments)};a.___cxa_is_pointer_type=function(){return a.asm.___cxa_is_pointer_type.apply(null,arguments)};var pb=a._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0.apply(null,arguments)},Fb=a._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1.apply(null,arguments)}, -Gb=a._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform___destroy___0.apply(null,arguments)},Hb=a._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0.apply(null,arguments)},sb=a._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0.apply(null, -arguments)},Ib=a._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1.apply(null,arguments)},Jb=a._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform___destroy___0.apply(null,arguments)},Kb=a._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_min_value_1.apply(null, -arguments)},Lb=a._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0.apply(null,arguments)},Mb=a._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return a.asm._emscripten_bind_AttributeQuantizationTransform_range_0.apply(null,arguments)},rb=a._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return a.asm._emscripten_bind_AttributeTransformData_AttributeTransformData_0.apply(null, -arguments)},Nb=a._emscripten_bind_AttributeTransformData___destroy___0=function(){return a.asm._emscripten_bind_AttributeTransformData___destroy___0.apply(null,arguments)},Ob=a._emscripten_bind_AttributeTransformData_transform_type_0=function(){return a.asm._emscripten_bind_AttributeTransformData_transform_type_0.apply(null,arguments)},yb=a._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return a.asm._emscripten_bind_DecoderBuffer_DecoderBuffer_0.apply(null,arguments)},Pb=a._emscripten_bind_DecoderBuffer_Init_2= -function(){return a.asm._emscripten_bind_DecoderBuffer_Init_2.apply(null,arguments)},Qb=a._emscripten_bind_DecoderBuffer___destroy___0=function(){return a.asm._emscripten_bind_DecoderBuffer___destroy___0.apply(null,arguments)},Rb=a._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToMesh_2.apply(null,arguments)},Sb=a._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return a.asm._emscripten_bind_Decoder_DecodeBufferToPointCloud_2.apply(null, -arguments)},zb=a._emscripten_bind_Decoder_Decoder_0=function(){return a.asm._emscripten_bind_Decoder_Decoder_0.apply(null,arguments)},Tb=a._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeByUniqueId_2.apply(null,arguments)},Ub=a._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3.apply(null,arguments)},Vb=a._emscripten_bind_Decoder_GetAttributeFloat_3= -function(){return a.asm._emscripten_bind_Decoder_GetAttributeFloat_3.apply(null,arguments)},Wb=a._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3.apply(null,arguments)},Xb=a._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIdByName_2.apply(null,arguments)},Yb=a._emscripten_bind_Decoder_GetAttributeId_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeId_2.apply(null, -arguments)},Zb=a._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3.apply(null,arguments)},$b=a._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3.apply(null,arguments)},ac=a._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3.apply(null,arguments)}, -bc=a._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3.apply(null,arguments)},cc=a._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return a.asm._emscripten_bind_Decoder_GetAttributeMetadata_2.apply(null,arguments)},dc=a._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3.apply(null,arguments)},ec=a._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3= -function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3.apply(null,arguments)},fc=a._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return a.asm._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3.apply(null,arguments)},gc=a._emscripten_bind_Decoder_GetAttribute_2=function(){return a.asm._emscripten_bind_Decoder_GetAttribute_2.apply(null,arguments)},hc=a._emscripten_bind_Decoder_GetEncodedGeometryType_1=function(){return a.asm._emscripten_bind_Decoder_GetEncodedGeometryType_1.apply(null, -arguments)},ic=a._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return a.asm._emscripten_bind_Decoder_GetFaceFromMesh_3.apply(null,arguments)},jc=a._emscripten_bind_Decoder_GetMetadata_1=function(){return a.asm._emscripten_bind_Decoder_GetMetadata_1.apply(null,arguments)},kc=a._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return a.asm._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2.apply(null,arguments)},lc=a._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return a.asm._emscripten_bind_Decoder_SkipAttributeTransform_1.apply(null, -arguments)},mc=a._emscripten_bind_Decoder___destroy___0=function(){return a.asm._emscripten_bind_Decoder___destroy___0.apply(null,arguments)},wb=a._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0.apply(null,arguments)},nc=a._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoFloat32Array_GetValue_1.apply(null,arguments)},oc=a._emscripten_bind_DracoFloat32Array___destroy___0= -function(){return a.asm._emscripten_bind_DracoFloat32Array___destroy___0.apply(null,arguments)},pc=a._emscripten_bind_DracoFloat32Array_size_0=function(){return a.asm._emscripten_bind_DracoFloat32Array_size_0.apply(null,arguments)},vb=a._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return a.asm._emscripten_bind_DracoInt16Array_DracoInt16Array_0.apply(null,arguments)},qc=a._emscripten_bind_DracoInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt16Array_GetValue_1.apply(null, -arguments)},rc=a._emscripten_bind_DracoInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt16Array___destroy___0.apply(null,arguments)},sc=a._emscripten_bind_DracoInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoInt16Array_size_0.apply(null,arguments)},Bb=a._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return a.asm._emscripten_bind_DracoInt32Array_DracoInt32Array_0.apply(null,arguments)},tc=a._emscripten_bind_DracoInt32Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt32Array_GetValue_1.apply(null, -arguments)},uc=a._emscripten_bind_DracoInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt32Array___destroy___0.apply(null,arguments)},vc=a._emscripten_bind_DracoInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoInt32Array_size_0.apply(null,arguments)},tb=a._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return a.asm._emscripten_bind_DracoInt8Array_DracoInt8Array_0.apply(null,arguments)},wc=a._emscripten_bind_DracoInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoInt8Array_GetValue_1.apply(null, -arguments)},xc=a._emscripten_bind_DracoInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoInt8Array___destroy___0.apply(null,arguments)},yc=a._emscripten_bind_DracoInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoInt8Array_size_0.apply(null,arguments)},lb=a._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0.apply(null,arguments)},zc=a._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt16Array_GetValue_1.apply(null, -arguments)},Ac=a._emscripten_bind_DracoUInt16Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt16Array___destroy___0.apply(null,arguments)},Bc=a._emscripten_bind_DracoUInt16Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt16Array_size_0.apply(null,arguments)},ob=a._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0.apply(null,arguments)},Cc=a._emscripten_bind_DracoUInt32Array_GetValue_1= -function(){return a.asm._emscripten_bind_DracoUInt32Array_GetValue_1.apply(null,arguments)},Dc=a._emscripten_bind_DracoUInt32Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt32Array___destroy___0.apply(null,arguments)},Ec=a._emscripten_bind_DracoUInt32Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt32Array_size_0.apply(null,arguments)},nb=a._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0.apply(null, -arguments)},Fc=a._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return a.asm._emscripten_bind_DracoUInt8Array_GetValue_1.apply(null,arguments)},Gc=a._emscripten_bind_DracoUInt8Array___destroy___0=function(){return a.asm._emscripten_bind_DracoUInt8Array___destroy___0.apply(null,arguments)},Hc=a._emscripten_bind_DracoUInt8Array_size_0=function(){return a.asm._emscripten_bind_DracoUInt8Array_size_0.apply(null,arguments)},xb=a._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return a.asm._emscripten_bind_GeometryAttribute_GeometryAttribute_0.apply(null, -arguments)},Ic=a._emscripten_bind_GeometryAttribute___destroy___0=function(){return a.asm._emscripten_bind_GeometryAttribute___destroy___0.apply(null,arguments)},Ab=a._emscripten_bind_Mesh_Mesh_0=function(){return a.asm._emscripten_bind_Mesh_Mesh_0.apply(null,arguments)},Jc=a._emscripten_bind_Mesh___destroy___0=function(){return a.asm._emscripten_bind_Mesh___destroy___0.apply(null,arguments)},Kc=a._emscripten_bind_Mesh_num_attributes_0=function(){return a.asm._emscripten_bind_Mesh_num_attributes_0.apply(null, -arguments)},Lc=a._emscripten_bind_Mesh_num_faces_0=function(){return a.asm._emscripten_bind_Mesh_num_faces_0.apply(null,arguments)},Mc=a._emscripten_bind_Mesh_num_points_0=function(){return a.asm._emscripten_bind_Mesh_num_points_0.apply(null,arguments)},Nc=a._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetDoubleEntry_2.apply(null,arguments)},Oc=a._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetEntryName_2.apply(null, -arguments)},Pc=a._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetIntEntry_2.apply(null,arguments)},Qc=a._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_GetStringEntry_2.apply(null,arguments)},Rc=a._emscripten_bind_MetadataQuerier_HasDoubleEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_HasDoubleEntry_2.apply(null,arguments)},Sc=a._emscripten_bind_MetadataQuerier_HasEntry_2= -function(){return a.asm._emscripten_bind_MetadataQuerier_HasEntry_2.apply(null,arguments)},Tc=a._emscripten_bind_MetadataQuerier_HasIntEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_HasIntEntry_2.apply(null,arguments)},Uc=a._emscripten_bind_MetadataQuerier_HasStringEntry_2=function(){return a.asm._emscripten_bind_MetadataQuerier_HasStringEntry_2.apply(null,arguments)},ub=a._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return a.asm._emscripten_bind_MetadataQuerier_MetadataQuerier_0.apply(null, -arguments)},Vc=a._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return a.asm._emscripten_bind_MetadataQuerier_NumEntries_1.apply(null,arguments)},Wc=a._emscripten_bind_MetadataQuerier___destroy___0=function(){return a.asm._emscripten_bind_MetadataQuerier___destroy___0.apply(null,arguments)},Cb=a._emscripten_bind_Metadata_Metadata_0=function(){return a.asm._emscripten_bind_Metadata_Metadata_0.apply(null,arguments)},Xc=a._emscripten_bind_Metadata___destroy___0=function(){return a.asm._emscripten_bind_Metadata___destroy___0.apply(null, -arguments)},Yc=a._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return a.asm._emscripten_bind_PointAttribute_GetAttributeTransformData_0.apply(null,arguments)},qb=a._emscripten_bind_PointAttribute_PointAttribute_0=function(){return a.asm._emscripten_bind_PointAttribute_PointAttribute_0.apply(null,arguments)},Zc=a._emscripten_bind_PointAttribute___destroy___0=function(){return a.asm._emscripten_bind_PointAttribute___destroy___0.apply(null,arguments)},$c=a._emscripten_bind_PointAttribute_attribute_type_0= -function(){return a.asm._emscripten_bind_PointAttribute_attribute_type_0.apply(null,arguments)},ad=a._emscripten_bind_PointAttribute_byte_offset_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_offset_0.apply(null,arguments)},bd=a._emscripten_bind_PointAttribute_byte_stride_0=function(){return a.asm._emscripten_bind_PointAttribute_byte_stride_0.apply(null,arguments)},cd=a._emscripten_bind_PointAttribute_data_type_0=function(){return a.asm._emscripten_bind_PointAttribute_data_type_0.apply(null, -arguments)},dd=a._emscripten_bind_PointAttribute_normalized_0=function(){return a.asm._emscripten_bind_PointAttribute_normalized_0.apply(null,arguments)},ed=a._emscripten_bind_PointAttribute_num_components_0=function(){return a.asm._emscripten_bind_PointAttribute_num_components_0.apply(null,arguments)},fd=a._emscripten_bind_PointAttribute_size_0=function(){return a.asm._emscripten_bind_PointAttribute_size_0.apply(null,arguments)},gd=a._emscripten_bind_PointAttribute_unique_id_0=function(){return a.asm._emscripten_bind_PointAttribute_unique_id_0.apply(null, -arguments)},mb=a._emscripten_bind_PointCloud_PointCloud_0=function(){return a.asm._emscripten_bind_PointCloud_PointCloud_0.apply(null,arguments)},hd=a._emscripten_bind_PointCloud___destroy___0=function(){return a.asm._emscripten_bind_PointCloud___destroy___0.apply(null,arguments)},id=a._emscripten_bind_PointCloud_num_attributes_0=function(){return a.asm._emscripten_bind_PointCloud_num_attributes_0.apply(null,arguments)},jd=a._emscripten_bind_PointCloud_num_points_0=function(){return a.asm._emscripten_bind_PointCloud_num_points_0.apply(null, -arguments)},kd=a._emscripten_bind_Status___destroy___0=function(){return a.asm._emscripten_bind_Status___destroy___0.apply(null,arguments)},ld=a._emscripten_bind_Status_code_0=function(){return a.asm._emscripten_bind_Status_code_0.apply(null,arguments)},md=a._emscripten_bind_Status_error_msg_0=function(){return a.asm._emscripten_bind_Status_error_msg_0.apply(null,arguments)},nd=a._emscripten_bind_Status_ok_0=function(){return a.asm._emscripten_bind_Status_ok_0.apply(null,arguments)},od=a._emscripten_bind_VoidPtr___destroy___0= -function(){return a.asm._emscripten_bind_VoidPtr___destroy___0.apply(null,arguments)},pd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM.apply(null,arguments)},qd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM.apply(null,arguments)},rd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM= -function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM.apply(null,arguments)},sd=a._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return a.asm._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM.apply(null,arguments)},td=a._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE.apply(null, -arguments)},ud=a._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD.apply(null,arguments)},vd=a._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return a.asm._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH.apply(null,arguments)},wd=a._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_COLOR.apply(null,arguments)},xd= -a._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_GENERIC.apply(null,arguments)},yd=a._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_INVALID.apply(null,arguments)},zd=a._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_NORMAL.apply(null,arguments)},Ad=a._emscripten_enum_draco_GeometryAttribute_Type_POSITION= -function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_POSITION.apply(null,arguments)},Bd=a._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return a.asm._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD.apply(null,arguments)},Cd=a._emscripten_enum_draco_StatusCode_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_ERROR.apply(null,arguments)},Dd=a._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return a.asm._emscripten_enum_draco_StatusCode_INVALID_PARAMETER.apply(null, -arguments)},Ed=a._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return a.asm._emscripten_enum_draco_StatusCode_IO_ERROR.apply(null,arguments)},Fd=a._emscripten_enum_draco_StatusCode_OK=function(){return a.asm._emscripten_enum_draco_StatusCode_OK.apply(null,arguments)},Gd=a._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION.apply(null,arguments)},Hd=a._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return a.asm._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION.apply(null, -arguments)};a._emscripten_get_global_libc=function(){return a.asm._emscripten_get_global_libc.apply(null,arguments)};var Db=a._emscripten_replace_memory=function(){return a.asm._emscripten_replace_memory.apply(null,arguments)};a._free=function(){return a.asm._free.apply(null,arguments)};a._llvm_bswap_i32=function(){return a.asm._llvm_bswap_i32.apply(null,arguments)};var Ta=a._malloc=function(){return a.asm._malloc.apply(null,arguments)};a._memcpy=function(){return a.asm._memcpy.apply(null,arguments)}; -a._memmove=function(){return a.asm._memmove.apply(null,arguments)};a._memset=function(){return a.asm._memset.apply(null,arguments)};a._sbrk=function(){return a.asm._sbrk.apply(null,arguments)};a.establishStackSpace=function(){return a.asm.establishStackSpace.apply(null,arguments)};a.getTempRet0=function(){return a.asm.getTempRet0.apply(null,arguments)};a.runPostSets=function(){return a.asm.runPostSets.apply(null,arguments)};a.setTempRet0=function(){return a.asm.setTempRet0.apply(null,arguments)}; -a.setThrew=function(){return a.asm.setThrew.apply(null,arguments)};a.stackAlloc=function(){return a.asm.stackAlloc.apply(null,arguments)};a.stackRestore=function(){return a.asm.stackRestore.apply(null,arguments)};a.stackSave=function(){return a.asm.stackSave.apply(null,arguments)};a.dynCall_ii=function(){return a.asm.dynCall_ii.apply(null,arguments)};a.dynCall_iii=function(){return a.asm.dynCall_iii.apply(null,arguments)};a.dynCall_iiii=function(){return a.asm.dynCall_iiii.apply(null,arguments)}; -a.dynCall_iiiiiii=function(){return a.asm.dynCall_iiiiiii.apply(null,arguments)};a.dynCall_v=function(){return a.asm.dynCall_v.apply(null,arguments)};a.dynCall_vi=function(){return a.asm.dynCall_vi.apply(null,arguments)};a.dynCall_vii=function(){return a.asm.dynCall_vii.apply(null,arguments)};a.dynCall_viii=function(){return a.asm.dynCall_viii.apply(null,arguments)};a.dynCall_viiii=function(){return a.asm.dynCall_viiii.apply(null,arguments)};a.dynCall_viiiii=function(){return a.asm.dynCall_viiiii.apply(null, -arguments)};a.dynCall_viiiiii=function(){return a.asm.dynCall_viiiiii.apply(null,arguments)};m.stackAlloc=a.stackAlloc;m.stackSave=a.stackSave;m.stackRestore=a.stackRestore;m.establishStackSpace=a.establishStackSpace;m.setTempRet0=a.setTempRet0;m.getTempRet0=a.getTempRet0;a.asm=eb;if(V)if("function"===typeof a.locateFile?V=a.locateFile(V):a.memoryInitializerPrefixURL&&(V=a.memoryInitializerPrefixURL+V),pa||wa){var Id=a.readBinary(V);T.set(Id,m.GLOBAL_BASE)}else{var gb=function(){a.readAsync(V,fb, -function(){throw"could not load memory initializer "+V;})};la("memory initializer");var fb=function(d){d.byteLength&&(d=new Uint8Array(d));T.set(d,m.GLOBAL_BASE);a.memoryInitializerRequest&&delete a.memoryInitializerRequest.response;Na("memory initializer")};if(a.memoryInitializerRequest){var hb=function(){var d=a.memoryInitializerRequest,b=d.response;200!==d.status&&0!==d.status?(console.warn("a problem seems to have happened with Module.memoryInitializerRequest, status: "+d.status+", retrying "+ -V),gb()):fb(b)};a.memoryInitializerRequest.response?setTimeout(hb,0):a.memoryInitializerRequest.addEventListener("load",hb)}else gb()}a.then=function(d){if(a.calledRun)d(a);else{var b=a.onRuntimeInitialized;a.onRuntimeInitialized=function(){b&&b();d(a)}}return a};ea.prototype=Error();ea.prototype.constructor=ea;var Za=null;sa=function b(){a.calledRun||Da();a.calledRun||(sa=b)};a.run=Da;a.exit=function(b,c){if(!c||!a.noExitRuntime){if(!a.noExitRuntime&&(ua=!0,U=void 0,u(db),a.onExit))a.onExit(b);pa&& -process.exit(b);a.quit(b,new ea(b))}};var ab=[];a.abort=W;if(a.preInit)for("function"==typeof a.preInit&&(a.preInit=[a.preInit]);0<a.preInit.length;)a.preInit.pop()();Da();p.prototype=Object.create(p.prototype);p.prototype.constructor=p;p.prototype.__class__=p;p.__cache__={};a.WrapperObject=p;a.getCache=t;a.wrapPointer=X;a.castObject=function(a,c){return X(a.ptr,c)};a.NULL=X(0);a.destroy=function(a){if(!a.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";a.__destroy__(); -delete t(a.__class__)[a.ptr]};a.compare=function(a,c){return a.ptr===c.ptr};a.getPointer=function(a){return a.ptr};a.getClass=function(a){return a.__class__};var k={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(k.needed){for(var b=0;b<k.temps.length;b++)a._free(k.temps[b]);k.temps.length=0;a._free(k.buffer);k.buffer=0;k.size+=k.needed;k.needed=0}k.buffer||(k.size+=128,k.buffer=a._malloc(k.size),f(k.buffer));k.pos=0},alloc:function(b,c){f(k.buffer);b=b.length*c.BYTES_PER_ELEMENT;b= -b+7&-8;k.pos+b>=k.size?(f(0<b),k.needed+=b,c=a._malloc(b),k.temps.push(c)):(c=k.buffer+k.pos,k.pos+=b);return c},copy:function(a,c,d){switch(c.BYTES_PER_ELEMENT){case 2:d>>=1;break;case 4:d>>=2;break;case 8:d>>=3}for(var b=0;b<a.length;b++)c[d+b]=a[b]}};B.prototype=Object.create(p.prototype);B.prototype.constructor=B;B.prototype.__class__=B;B.__cache__={};a.Status=B;B.prototype.code=B.prototype.code=function(){return ld(this.ptr)};B.prototype.ok=B.prototype.ok=function(){return!!nd(this.ptr)};B.prototype.error_msg= -B.prototype.error_msg=function(){return n(md(this.ptr))};B.prototype.__destroy__=B.prototype.__destroy__=function(){kd(this.ptr)};G.prototype=Object.create(p.prototype);G.prototype.constructor=G;G.prototype.__class__=G;G.__cache__={};a.DracoUInt16Array=G;G.prototype.GetValue=G.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return zc(b,a)};G.prototype.size=G.prototype.size=function(){return Bc(this.ptr)};G.prototype.__destroy__=G.prototype.__destroy__=function(){Ac(this.ptr)}; -H.prototype=Object.create(p.prototype);H.prototype.constructor=H;H.prototype.__class__=H;H.__cache__={};a.PointCloud=H;H.prototype.num_attributes=H.prototype.num_attributes=function(){return id(this.ptr)};H.prototype.num_points=H.prototype.num_points=function(){return jd(this.ptr)};H.prototype.__destroy__=H.prototype.__destroy__=function(){hd(this.ptr)};I.prototype=Object.create(p.prototype);I.prototype.constructor=I;I.prototype.__class__=I;I.__cache__={};a.DracoUInt8Array=I;I.prototype.GetValue= -I.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Fc(b,a)};I.prototype.size=I.prototype.size=function(){return Hc(this.ptr)};I.prototype.__destroy__=I.prototype.__destroy__=function(){Gc(this.ptr)};J.prototype=Object.create(p.prototype);J.prototype.constructor=J;J.prototype.__class__=J;J.__cache__={};a.DracoUInt32Array=J;J.prototype.GetValue=J.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Cc(b,a)};J.prototype.size=J.prototype.size= -function(){return Ec(this.ptr)};J.prototype.__destroy__=J.prototype.__destroy__=function(){Dc(this.ptr)};K.prototype=Object.create(p.prototype);K.prototype.constructor=K;K.prototype.__class__=K;K.__cache__={};a.AttributeOctahedronTransform=K;K.prototype.InitFromAttribute=K.prototype.InitFromAttribute=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return!!Fb(b,a)};K.prototype.quantization_bits=K.prototype.quantization_bits=function(){return Hb(this.ptr)};K.prototype.__destroy__=K.prototype.__destroy__= -function(){Gb(this.ptr)};q.prototype=Object.create(p.prototype);q.prototype.constructor=q;q.prototype.__class__=q;q.__cache__={};a.PointAttribute=q;q.prototype.size=q.prototype.size=function(){return fd(this.ptr)};q.prototype.GetAttributeTransformData=q.prototype.GetAttributeTransformData=function(){return X(Yc(this.ptr),P)};q.prototype.attribute_type=q.prototype.attribute_type=function(){return $c(this.ptr)};q.prototype.data_type=q.prototype.data_type=function(){return cd(this.ptr)};q.prototype.num_components= -q.prototype.num_components=function(){return ed(this.ptr)};q.prototype.normalized=q.prototype.normalized=function(){return!!dd(this.ptr)};q.prototype.byte_stride=q.prototype.byte_stride=function(){return bd(this.ptr)};q.prototype.byte_offset=q.prototype.byte_offset=function(){return ad(this.ptr)};q.prototype.unique_id=q.prototype.unique_id=function(){return gd(this.ptr)};q.prototype.__destroy__=q.prototype.__destroy__=function(){Zc(this.ptr)};P.prototype=Object.create(p.prototype);P.prototype.constructor= -P;P.prototype.__class__=P;P.__cache__={};a.AttributeTransformData=P;P.prototype.transform_type=P.prototype.transform_type=function(){return Ob(this.ptr)};P.prototype.__destroy__=P.prototype.__destroy__=function(){Nb(this.ptr)};z.prototype=Object.create(p.prototype);z.prototype.constructor=z;z.prototype.__class__=z;z.__cache__={};a.AttributeQuantizationTransform=z;z.prototype.InitFromAttribute=z.prototype.InitFromAttribute=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return!!Ib(b,a)}; -z.prototype.quantization_bits=z.prototype.quantization_bits=function(){return Lb(this.ptr)};z.prototype.min_value=z.prototype.min_value=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Kb(b,a)};z.prototype.range=z.prototype.range=function(){return Mb(this.ptr)};z.prototype.__destroy__=z.prototype.__destroy__=function(){Jb(this.ptr)};L.prototype=Object.create(p.prototype);L.prototype.constructor=L;L.prototype.__class__=L;L.__cache__={};a.DracoInt8Array=L;L.prototype.GetValue=L.prototype.GetValue= -function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return wc(b,a)};L.prototype.size=L.prototype.size=function(){return yc(this.ptr)};L.prototype.__destroy__=L.prototype.__destroy__=function(){xc(this.ptr)};r.prototype=Object.create(p.prototype);r.prototype.constructor=r;r.prototype.__class__=r;r.__cache__={};a.MetadataQuerier=r;r.prototype.HasEntry=r.prototype.HasEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return!!Sc(b, -a,c)};r.prototype.HasIntEntry=r.prototype.HasIntEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return!!Tc(b,a,c)};r.prototype.GetIntEntry=r.prototype.GetIntEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return Pc(b,a,c)};r.prototype.HasDoubleEntry=r.prototype.HasDoubleEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"=== -typeof c?c.ptr:Y(c);return!!Rc(b,a,c)};r.prototype.GetDoubleEntry=r.prototype.GetDoubleEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return Nc(b,a,c)};r.prototype.HasStringEntry=r.prototype.HasStringEntry=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return!!Uc(b,a,c)};r.prototype.GetStringEntry=r.prototype.GetStringEntry=function(a,c){var b=this.ptr;k.prepare(); -a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return n(Qc(b,a,c))};r.prototype.NumEntries=r.prototype.NumEntries=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return Vc(b,a)};r.prototype.GetEntryName=r.prototype.GetEntryName=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return n(Oc(b,a,c))};r.prototype.__destroy__=r.prototype.__destroy__=function(){Wc(this.ptr)};M.prototype=Object.create(p.prototype);M.prototype.constructor= -M;M.prototype.__class__=M;M.__cache__={};a.DracoInt16Array=M;M.prototype.GetValue=M.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return qc(b,a)};M.prototype.size=M.prototype.size=function(){return sc(this.ptr)};M.prototype.__destroy__=M.prototype.__destroy__=function(){rc(this.ptr)};N.prototype=Object.create(p.prototype);N.prototype.constructor=N;N.prototype.__class__=N;N.__cache__={};a.DracoFloat32Array=N;N.prototype.GetValue=N.prototype.GetValue=function(a){var b= -this.ptr;a&&"object"===typeof a&&(a=a.ptr);return nc(b,a)};N.prototype.size=N.prototype.size=function(){return pc(this.ptr)};N.prototype.__destroy__=N.prototype.__destroy__=function(){oc(this.ptr)};Z.prototype=Object.create(p.prototype);Z.prototype.constructor=Z;Z.prototype.__class__=Z;Z.__cache__={};a.GeometryAttribute=Z;Z.prototype.__destroy__=Z.prototype.__destroy__=function(){Ic(this.ptr)};R.prototype=Object.create(p.prototype);R.prototype.constructor=R;R.prototype.__class__=R;R.__cache__={}; -a.DecoderBuffer=R;R.prototype.Init=R.prototype.Init=function(a,c){var b=this.ptr;k.prepare();if("object"==typeof a&&"object"===typeof a){var d=k.alloc(a,fa);k.copy(a,fa,d);a=d}c&&"object"===typeof c&&(c=c.ptr);Pb(b,a,c)};R.prototype.__destroy__=R.prototype.__destroy__=function(){Qb(this.ptr)};h.prototype=Object.create(p.prototype);h.prototype.constructor=h;h.prototype.__class__=h;h.__cache__={};a.Decoder=h;h.prototype.GetEncodedGeometryType=h.prototype.GetEncodedGeometryType=function(a){var b=this.ptr; -a&&"object"===typeof a&&(a=a.ptr);return hc(b,a)};h.prototype.DecodeBufferToPointCloud=h.prototype.DecodeBufferToPointCloud=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return X(Sb(b,a,c),B)};h.prototype.DecodeBufferToMesh=h.prototype.DecodeBufferToMesh=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return X(Rb(b,a,c),B)};h.prototype.GetAttributeId=h.prototype.GetAttributeId=function(a,c){var b=this.ptr; -a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return Yb(b,a,c)};h.prototype.GetAttributeIdByName=h.prototype.GetAttributeIdByName=function(a,c){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);return Xb(b,a,c)};h.prototype.GetAttributeIdByMetadataEntry=h.prototype.GetAttributeIdByMetadataEntry=function(a,c,d){var b=this.ptr;k.prepare();a&&"object"===typeof a&&(a=a.ptr);c=c&&"object"===typeof c?c.ptr:Y(c);d=d&&"object"===typeof d? -d.ptr:Y(d);return Wb(b,a,c,d)};h.prototype.GetAttribute=h.prototype.GetAttribute=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return X(gc(b,a,c),q)};h.prototype.GetAttributeByUniqueId=h.prototype.GetAttributeByUniqueId=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return X(Tb(b,a,c),q)};h.prototype.GetMetadata=h.prototype.GetMetadata=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return X(jc(b, -a),S)};h.prototype.GetAttributeMetadata=h.prototype.GetAttributeMetadata=function(a,c){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return X(cc(b,a,c),S)};h.prototype.GetFaceFromMesh=h.prototype.GetFaceFromMesh=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!ic(b,a,c,d)};h.prototype.GetTriangleStripsFromMesh=h.prototype.GetTriangleStripsFromMesh=function(a,c){var b=this.ptr; -a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);return kc(b,a,c)};h.prototype.GetAttributeFloat=h.prototype.GetAttributeFloat=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Vb(b,a,c,d)};h.prototype.GetAttributeFloatForAllPoints=h.prototype.GetAttributeFloatForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&& -(d=d.ptr);return!!Ub(b,a,c,d)};h.prototype.GetAttributeIntForAllPoints=h.prototype.GetAttributeIntForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!bc(b,a,c,d)};h.prototype.GetAttributeInt8ForAllPoints=h.prototype.GetAttributeInt8ForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!ac(b,a,c,d)}; -h.prototype.GetAttributeUInt8ForAllPoints=h.prototype.GetAttributeUInt8ForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!fc(b,a,c,d)};h.prototype.GetAttributeInt16ForAllPoints=h.prototype.GetAttributeInt16ForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!Zb(b,a,c,d)};h.prototype.GetAttributeUInt16ForAllPoints= -h.prototype.GetAttributeUInt16ForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!dc(b,a,c,d)};h.prototype.GetAttributeInt32ForAllPoints=h.prototype.GetAttributeInt32ForAllPoints=function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!$b(b,a,c,d)};h.prototype.GetAttributeUInt32ForAllPoints=h.prototype.GetAttributeUInt32ForAllPoints= -function(a,c,d){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);c&&"object"===typeof c&&(c=c.ptr);d&&"object"===typeof d&&(d=d.ptr);return!!ec(b,a,c,d)};h.prototype.SkipAttributeTransform=h.prototype.SkipAttributeTransform=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);lc(b,a)};h.prototype.__destroy__=h.prototype.__destroy__=function(){mc(this.ptr)};C.prototype=Object.create(p.prototype);C.prototype.constructor=C;C.prototype.__class__=C;C.__cache__={};a.Mesh=C;C.prototype.num_faces= -C.prototype.num_faces=function(){return Lc(this.ptr)};C.prototype.num_attributes=C.prototype.num_attributes=function(){return Kc(this.ptr)};C.prototype.num_points=C.prototype.num_points=function(){return Mc(this.ptr)};C.prototype.__destroy__=C.prototype.__destroy__=function(){Jc(this.ptr)};ca.prototype=Object.create(p.prototype);ca.prototype.constructor=ca;ca.prototype.__class__=ca;ca.__cache__={};a.VoidPtr=ca;ca.prototype.__destroy__=ca.prototype.__destroy__=function(){od(this.ptr)};O.prototype= -Object.create(p.prototype);O.prototype.constructor=O;O.prototype.__class__=O;O.__cache__={};a.DracoInt32Array=O;O.prototype.GetValue=O.prototype.GetValue=function(a){var b=this.ptr;a&&"object"===typeof a&&(a=a.ptr);return tc(b,a)};O.prototype.size=O.prototype.size=function(){return vc(this.ptr)};O.prototype.__destroy__=O.prototype.__destroy__=function(){uc(this.ptr)};S.prototype=Object.create(p.prototype);S.prototype.constructor=S;S.prototype.__class__=S;S.__cache__={};a.Metadata=S;S.prototype.__destroy__= -S.prototype.__destroy__=function(){Xc(this.ptr)};(function(){function b(){a.OK=Fd();a.ERROR=Cd();a.IO_ERROR=Ed();a.INVALID_PARAMETER=Dd();a.UNSUPPORTED_VERSION=Hd();a.UNKNOWN_VERSION=Gd();a.INVALID_GEOMETRY_TYPE=td();a.POINT_CLOUD=ud();a.TRIANGULAR_MESH=vd();a.ATTRIBUTE_INVALID_TRANSFORM=pd();a.ATTRIBUTE_NO_TRANSFORM=qd();a.ATTRIBUTE_QUANTIZATION_TRANSFORM=sd();a.ATTRIBUTE_OCTAHEDRON_TRANSFORM=rd();a.INVALID=yd();a.POSITION=Ad();a.NORMAL=zd();a.COLOR=wd();a.TEX_COORD=Bd();a.GENERIC=xd()}a.calledRun? -b():Xa.unshift(b)})();if("function"===typeof a.onModuleParsed)a.onModuleParsed();return d};"object"===typeof module&&module.exports&&(module.exports=DracoDecoderModule); diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/inflate.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/inflate.js deleted file mode 100644 index 0a8f3301e..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/inflate.js +++ /dev/null @@ -1,51 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/* - Copyright (c) 2013 Gildas Lormeau. All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: - - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in - the documentation and/or other materials provided with the distribution. - - 3. The names of the authors may not be used to endorse or promote products - derived from this software without specific prior written permission. - - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND - FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL JCRAFT, - INC. OR ANY CONTRIBUTORS TO THIS SOFTWARE BE LIABLE FOR ANY DIRECT, INDIRECT, - INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT - LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, - OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, - EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -!function(i){function e(){function i(i,e,t,n,s,o,b,x,c,v,h){var k,m,y,g,p,I,E,S,U,z,D,M,L,P,j;z=0,p=t;do{a[i[e+z]]++,z++,p--}while(0!==p);if(a[0]==t)return b[0]=-1,x[0]=0,l;for(S=x[0],I=1;I<=A&&0===a[I];I++);for(E=I,S<I&&(S=I),p=A;0!==p&&0===a[p];p--);for(y=p,S>p&&(S=p),x[0]=S,P=1<<I;I<p;I++,P<<=1)if((P-=a[I])<0)return f;if((P-=a[p])<0)return f;for(a[p]+=P,d[1]=I=0,z=1,L=2;0!=--p;)d[L]=I+=a[z],L++,z++;p=0,z=0;do{0!==(I=i[e+z])&&(h[d[I]++]=p),z++}while(++p<t);for(t=d[y],d[0]=p=0,z=0,g=-1,M=-S,_[0]=0,D=0,j=0;E<=y;E++)for(k=a[E];0!=k--;){for(;E>M+S;){if(g++,M+=S,j=y-M,j=j>S?S:j,(m=1<<(I=E-M))>k+1&&(m-=k+1,L=E,I<j))for(;++I<j&&!((m<<=1)<=a[++L]);)m-=a[L];if(j=1<<I,v[0]+j>w)return f;_[g]=D=v[0],v[0]+=j,0!==g?(d[g]=p,r[0]=I,r[1]=S,I=p>>>M-S,r[2]=D-_[g-1]-I,c.set(r,3*(_[g-1]+I))):b[0]=D}for(r[1]=E-M,z>=t?r[0]=192:h[z]<n?(r[0]=h[z]<256?0:96,r[2]=h[z++]):(r[0]=o[h[z]-n]+16+64,r[2]=s[h[z++]-n]),m=1<<E-M,I=p>>>M;I<j;I+=m)c.set(r,3*(D+I));for(I=1<<E-1;0!=(p&I);I>>>=1)p^=I;for(p^=I,U=(1<<M)-1;(p&U)!=d[g];)g--,M-=S,U=(1<<M)-1}return 0!==P&&1!=y?u:l}function e(i){var e;for(t||(t=[],n=[],a=new Int32Array(A+1),r=[],_=new Int32Array(A),d=new Int32Array(A+1)),n.length<i&&(n=[]),e=0;e<i;e++)n[e]=0;for(e=0;e<A+1;e++)a[e]=0;for(e=0;e<3;e++)r[e]=0;_.set(a.subarray(0,A),0),d.set(a.subarray(0,A+1),0)}var t,n,a,r,_,d,s=this;s.inflate_trees_bits=function(a,r,_,l,d){var s;return e(19),t[0]=0,s=i(a,0,19,19,null,null,_,r,l,t,n),s==f?d.msg="oversubscribed dynamic bit lengths tree":s!=u&&0!==r[0]||(d.msg="incomplete dynamic bit lengths tree",s=f),s},s.inflate_trees_dynamic=function(a,r,_,d,s,o,x,w,c){var v;return e(288),t[0]=0,(v=i(_,0,a,257,m,y,o,d,w,t,n))!=l||0===d[0]?(v==f?c.msg="oversubscribed literal/length tree":v!=b&&(c.msg="incomplete literal/length tree",v=f),v):(e(288),v=i(_,a,r,0,g,p,x,s,w,t,n),v!=l||0===s[0]&&a>257?(v==f?c.msg="oversubscribed distance tree":v==u?(c.msg="incomplete distance tree",v=f):v!=b&&(c.msg="empty distance tree with lengths",v=f),v):l)}}function t(){function i(i,e,t,n,a,r,_,s){var o,b,u,w,c,v,h,k,m,y,g,p,A,I,E,S;h=s.next_in_index,k=s.avail_in,c=_.bitb,v=_.bitk,m=_.write,y=m<_.read?_.read-m-1:_.end-m,g=x[i],p=x[e];do{for(;v<20;)k--,c|=(255&s.read_byte(h++))<<v,v+=8;if(o=c&g,b=t,u=n,S=3*(u+o),0!==(w=b[S]))for(;;){if(c>>=b[S+1],v-=b[S+1],0!=(16&w)){for(w&=15,A=b[S+2]+(c&x[w]),c>>=w,v-=w;v<15;)k--,c|=(255&s.read_byte(h++))<<v,v+=8;for(o=c&p,b=a,u=r,S=3*(u+o),w=b[S];;){if(c>>=b[S+1],v-=b[S+1],0!=(16&w)){for(w&=15;v<w;)k--,c|=(255&s.read_byte(h++))<<v,v+=8;if(I=b[S+2]+(c&x[w]),c>>=w,v-=w,y-=A,m>=I)E=m-I,m-E>0&&2>m-E?(_.window[m++]=_.window[E++],_.window[m++]=_.window[E++],A-=2):(_.window.set(_.window.subarray(E,E+2),m),m+=2,E+=2,A-=2);else{E=m-I;do{E+=_.end}while(E<0);if(w=_.end-E,A>w){if(A-=w,m-E>0&&w>m-E)do{_.window[m++]=_.window[E++]}while(0!=--w);else _.window.set(_.window.subarray(E,E+w),m),m+=w,E+=w,w=0;E=0}}if(m-E>0&&A>m-E)do{_.window[m++]=_.window[E++]}while(0!=--A);else _.window.set(_.window.subarray(E,E+A),m),m+=A,E+=A,A=0;break}if(0!=(64&w))return s.msg="invalid distance code",A=s.avail_in-k,A=v>>3<A?v>>3:A,k+=A,h-=A,v-=A<<3,_.bitb=c,_.bitk=v,s.avail_in=k,s.total_in+=h-s.next_in_index,s.next_in_index=h,_.write=m,f;o+=b[S+2],o+=c&x[w],S=3*(u+o),w=b[S]}break}if(0!=(64&w))return 0!=(32&w)?(A=s.avail_in-k,A=v>>3<A?v>>3:A,k+=A,h-=A,v-=A<<3,_.bitb=c,_.bitk=v,s.avail_in=k,s.total_in+=h-s.next_in_index,s.next_in_index=h,_.write=m,d):(s.msg="invalid literal/length code",A=s.avail_in-k,A=v>>3<A?v>>3:A,k+=A,h-=A,v-=A<<3,_.bitb=c,_.bitk=v,s.avail_in=k,s.total_in+=h-s.next_in_index,s.next_in_index=h,_.write=m,f);if(o+=b[S+2],o+=c&x[w],S=3*(u+o),0===(w=b[S])){c>>=b[S+1],v-=b[S+1],_.window[m++]=b[S+2],y--;break}}else c>>=b[S+1],v-=b[S+1],_.window[m++]=b[S+2],y--}while(y>=258&&k>=10);return A=s.avail_in-k,A=v>>3<A?v>>3:A,k+=A,h-=A,v-=A<<3,_.bitb=c,_.bitk=v,s.avail_in=k,s.total_in+=h-s.next_in_index,s.next_in_index=h,_.write=m,l}var e,t,n,a,r=this,_=0,s=0,b=0,u=0,w=0,c=0,v=0,h=0,k=0,m=0;r.init=function(i,r,_,l,d,s){e=I,v=i,h=r,n=_,k=l,a=d,m=s,t=null},r.proc=function(r,y,g){var p,A,q,B,C,F,G,H=0,J=0,K=0;for(K=y.next_in_index,B=y.avail_in,H=r.bitb,J=r.bitk,C=r.write,F=C<r.read?r.read-C-1:r.end-C;;)switch(e){case I:if(F>=258&&B>=10&&(r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,g=i(v,h,n,k,a,m,r,y),K=y.next_in_index,B=y.avail_in,H=r.bitb,J=r.bitk,C=r.write,F=C<r.read?r.read-C-1:r.end-C,g!=l)){e=g==d?L:j;break}b=v,t=n,s=k,e=E;case E:for(p=b;J<p;){if(0===B)return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);g=l,B--,H|=(255&y.read_byte(K++))<<J,J+=8}if(A=3*(s+(H&x[p])),H>>>=t[A+1],J-=t[A+1],0===(q=t[A])){u=t[A+2],e=M;break}if(0!=(16&q)){w=15&q,_=t[A+2],e=S;break}if(0==(64&q)){b=q,s=A/3+t[A+2];break}if(0!=(32&q)){e=L;break}return e=j,y.msg="invalid literal/length code",g=f,r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);case S:for(p=w;J<p;){if(0===B)return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);g=l,B--,H|=(255&y.read_byte(K++))<<J,J+=8}_+=H&x[p],H>>=p,J-=p,b=h,t=a,s=m,e=U;case U:for(p=b;J<p;){if(0===B)return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);g=l,B--,H|=(255&y.read_byte(K++))<<J,J+=8}if(A=3*(s+(H&x[p])),H>>=t[A+1],J-=t[A+1],0!=(16&(q=t[A]))){w=15&q,c=t[A+2],e=z;break}if(0==(64&q)){b=q,s=A/3+t[A+2];break}return e=j,y.msg="invalid distance code",g=f,r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);case z:for(p=w;J<p;){if(0===B)return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);g=l,B--,H|=(255&y.read_byte(K++))<<J,J+=8}c+=H&x[p],H>>=p,J-=p,e=D;case D:for(G=C-c;G<0;)G+=r.end;for(;0!==_;){if(0===F&&(C==r.end&&0!==r.read&&(C=0,F=C<r.read?r.read-C-1:r.end-C),0===F&&(r.write=C,g=r.inflate_flush(y,g),C=r.write,F=C<r.read?r.read-C-1:r.end-C,C==r.end&&0!==r.read&&(C=0,F=C<r.read?r.read-C-1:r.end-C),0===F)))return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);r.window[C++]=r.window[G++],F--,G==r.end&&(G=0),_--}e=I;break;case M:if(0===F&&(C==r.end&&0!==r.read&&(C=0,F=C<r.read?r.read-C-1:r.end-C),0===F&&(r.write=C,g=r.inflate_flush(y,g),C=r.write,F=C<r.read?r.read-C-1:r.end-C,C==r.end&&0!==r.read&&(C=0,F=C<r.read?r.read-C-1:r.end-C),0===F)))return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);g=l,r.window[C++]=u,F--,e=I;break;case L:if(J>7&&(J-=8,B++,K--),r.write=C,g=r.inflate_flush(y,g),C=r.write,F=C<r.read?r.read-C-1:r.end-C,r.read!=r.write)return r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);e=P;case P:return g=d,r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);case j:return g=f,r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g);default:return g=o,r.bitb=H,r.bitk=J,y.avail_in=B,y.total_in+=K-y.next_in_index,y.next_in_index=K,r.write=C,r.inflate_flush(y,g)}},r.free=function(){}}function n(i,n){var a,r=this,_=B,s=0,b=0,c=0,v=[0],h=[0],k=new t,m=0,y=new Int32Array(3*w),g=new e;r.bitk=0,r.bitb=0,r.window=new Uint8Array(n),r.end=n,r.read=0,r.write=0,r.reset=function(i,e){e&&(e[0]=0),_==K&&k.free(i),_=B,r.bitk=0,r.bitb=0,r.read=r.write=0},r.reset(i,null),r.inflate_flush=function(i,e){var t,n,a;return n=i.next_out_index,a=r.read,t=(a<=r.write?r.write:r.end)-a,t>i.avail_out&&(t=i.avail_out),0!==t&&e==u&&(e=l),i.avail_out-=t,i.total_out+=t,i.next_out.set(r.window.subarray(a,a+t),n),n+=t,a+=t,a==r.end&&(a=0,r.write==r.end&&(r.write=0),t=r.write-a,t>i.avail_out&&(t=i.avail_out),0!==t&&e==u&&(e=l),i.avail_out-=t,i.total_out+=t,i.next_out.set(r.window.subarray(a,a+t),n),n+=t,a+=t),i.next_out_index=n,r.read=a,e},r.proc=function(i,t){var n,u,w,p,A,I,E,S;for(p=i.next_in_index,A=i.avail_in,u=r.bitb,w=r.bitk,I=r.write,E=I<r.read?r.read-I-1:r.end-I;;)switch(_){case B:for(;w<3;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}switch(n=7&u,m=1&n,n>>>1){case 0:u>>>=3,w-=3,n=7&w,u>>>=n,w-=n,_=C;break;case 1:var U=[],z=[],D=[[]],M=[[]];e.inflate_trees_fixed(U,z,D,M),k.init(U[0],z[0],D[0],0,M[0],0),u>>>=3,w-=3,_=K;break;case 2:u>>>=3,w-=3,_=G;break;case 3:return u>>>=3,w-=3,_=Q,i.msg="invalid block type",t=f,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t)}break;case C:for(;w<32;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}if((~u>>>16&65535)!=(65535&u))return _=Q,i.msg="invalid stored block lengths",t=f,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);s=65535&u,u=w=0,_=0!==s?F:0!==m?N:B;break;case F:if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);if(0===E&&(I==r.end&&0!==r.read&&(I=0,E=I<r.read?r.read-I-1:r.end-I),0===E&&(r.write=I,t=r.inflate_flush(i,t),I=r.write,E=I<r.read?r.read-I-1:r.end-I,I==r.end&&0!==r.read&&(I=0,E=I<r.read?r.read-I-1:r.end-I),0===E)))return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);if(t=l,n=s,n>A&&(n=A),n>E&&(n=E),r.window.set(i.read_buf(p,n),I),p+=n,A-=n,I+=n,E-=n,0!=(s-=n))break;_=0!==m?N:B;break;case G:for(;w<14;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}if(b=n=16383&u,(31&n)>29||(n>>5&31)>29)return _=Q,i.msg="too many length or distance symbols",t=f,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);if(n=258+(31&n)+(n>>5&31),!a||a.length<n)a=[];else for(S=0;S<n;S++)a[S]=0;u>>>=14,w-=14,c=0,_=H;case H:for(;c<4+(b>>>10);){for(;w<3;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}a[q[c++]]=7&u,u>>>=3,w-=3}for(;c<19;)a[q[c++]]=0;if(v[0]=7,(n=g.inflate_trees_bits(a,v,h,y,i))!=l)return t=n,t==f&&(a=null,_=Q),r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);c=0,_=J;case J:for(;;){if(n=b,!(c<258+(31&n)+(n>>5&31)))break;var L,P;for(n=v[0];w<n;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}if(n=y[3*(h[0]+(u&x[n]))+1],(P=y[3*(h[0]+(u&x[n]))+2])<16)u>>>=n,w-=n,a[c++]=P;else{for(S=18==P?7:P-14,L=18==P?11:3;w<n+S;){if(0===A)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);t=l,A--,u|=(255&i.read_byte(p++))<<w,w+=8}if(u>>>=n,w-=n,L+=u&x[S],u>>>=S,w-=S,S=c,n=b,S+L>258+(31&n)+(n>>5&31)||16==P&&S<1)return a=null,_=Q,i.msg="invalid bit length repeat",t=f,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);P=16==P?a[S-1]:0;do{a[S++]=P}while(0!=--L);c=S}}h[0]=-1;var j=[],R=[],T=[],V=[];if(j[0]=9,R[0]=6,n=b,(n=g.inflate_trees_dynamic(257+(31&n),1+(n>>5&31),a,j,R,T,V,y,i))!=l)return n==f&&(a=null,_=Q),t=n,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);k.init(j[0],R[0],y,T[0],y,V[0]),_=K;case K:if(r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,(t=k.proc(r,i,t))!=d)return r.inflate_flush(i,t);if(t=l,k.free(i),p=i.next_in_index,A=i.avail_in,u=r.bitb,w=r.bitk,I=r.write,E=I<r.read?r.read-I-1:r.end-I,0===m){_=B;break}_=N;case N:if(r.write=I,t=r.inflate_flush(i,t),I=r.write,E=I<r.read?r.read-I-1:r.end-I,r.read!=r.write)return r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);_=O;case O:return t=d,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);case Q:return t=f,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t);default:return t=o,r.bitb=u,r.bitk=w,i.avail_in=A,i.total_in+=p-i.next_in_index,i.next_in_index=p,r.write=I,r.inflate_flush(i,t)}},r.free=function(i){r.reset(i,null),r.window=null,y=null},r.set_dictionary=function(i,e,t){r.window.set(i.subarray(e,e+t),0),r.read=r.write=t},r.sync_point=function(){return _==C?1:0}}function a(){function i(i){return i&&i.istate?(i.total_in=i.total_out=0,i.msg=null,i.istate.mode=ei,i.istate.blocks.reset(i,null),l):o}var e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0,e.inflateEnd=function(i){return e.blocks&&e.blocks.free(i),e.blocks=null,l},e.inflateInit=function(t,a){return t.msg=null,e.blocks=null,a<8||a>15?(e.inflateEnd(t),o):(e.wbits=a,t.istate.blocks=new n(t,1<<a),i(t),l)},e.inflate=function(i,e){var t,n;if(!i||!i.istate||!i.next_in)return o;for(e=e==v?u:l,t=u;;)switch(i.istate.mode){case V:if(0===i.avail_in)return t;if(t=e,i.avail_in--,i.total_in++,(15&(i.istate.method=i.read_byte(i.next_in_index++)))!=T){i.istate.mode=ni,i.msg="unknown compression method",i.istate.marker=5;break}if(8+(i.istate.method>>4)>i.istate.wbits){i.istate.mode=ni,i.msg="invalid window size",i.istate.marker=5;break}i.istate.mode=W;case W:if(0===i.avail_in)return t;if(t=e,i.avail_in--,i.total_in++,n=255&i.read_byte(i.next_in_index++),((i.istate.method<<8)+n)%31!=0){i.istate.mode=ni,i.msg="incorrect header check",i.istate.marker=5;break}if(0==(n&R)){i.istate.mode=ei;break}i.istate.mode=X;case X:if(0===i.avail_in)return t;t=e,i.avail_in--,i.total_in++,i.istate.need=(255&i.read_byte(i.next_in_index++))<<24&4278190080,i.istate.mode=Y;case Y:if(0===i.avail_in)return t;t=e,i.avail_in--,i.total_in++,i.istate.need+=(255&i.read_byte(i.next_in_index++))<<16&16711680,i.istate.mode=Z;case Z:if(0===i.avail_in)return t;t=e,i.avail_in--,i.total_in++,i.istate.need+=(255&i.read_byte(i.next_in_index++))<<8&65280,i.istate.mode=$;case $:return 0===i.avail_in?t:(t=e,i.avail_in--,i.total_in++,i.istate.need+=255&i.read_byte(i.next_in_index++),i.istate.mode=ii,s);case ii:return i.istate.mode=ni,i.msg="need dictionary",i.istate.marker=0,o;case ei:if((t=i.istate.blocks.proc(i,t))==f){i.istate.mode=ni,i.istate.marker=0;break}if(t==l&&(t=e),t!=d)return t;t=e,i.istate.blocks.reset(i,i.istate.was),i.istate.mode=ti;case ti:return d;case ni:return f;default:return o}},e.inflateSetDictionary=function(i,e,t){var n=0,a=t;return i&&i.istate&&i.istate.mode==ii?(a>=1<<i.istate.wbits&&(a=(1<<i.istate.wbits)-1,n=t-a),i.istate.blocks.set_dictionary(e,n,a),i.istate.mode=ei,l):o},e.inflateSync=function(e){var t,n,a,r,_;if(!e||!e.istate)return o;if(e.istate.mode!=ni&&(e.istate.mode=ni,e.istate.marker=0),0===(t=e.avail_in))return u;for(n=e.next_in_index,a=e.istate.marker;0!==t&&a<4;)e.read_byte(n)==ai[a]?a++:a=0!==e.read_byte(n)?0:4-a,n++,t--;return e.total_in+=n-e.next_in_index,e.next_in_index=n,e.avail_in=t,e.istate.marker=a,4!=a?f:(r=e.total_in,_=e.total_out,i(e),e.total_in=r,e.total_out=_,e.istate.mode=ei,l)},e.inflateSyncPoint=function(i){return i&&i.istate&&i.istate.blocks?i.istate.blocks.sync_point():o}}function r(){}function _(){var i=this,e=new r,t=c,n=new Uint8Array(512),a=!1;e.inflateInit(),e.next_out=n,i.append=function(i,r){var _,s,o=[],f=0,b=0,x=0;if(0!==i.length){e.next_in_index=0,e.next_in=i,e.avail_in=i.length;do{if(e.next_out_index=0,e.avail_out=512,0!==e.avail_in||a||(e.next_in_index=0,a=!0),_=e.inflate(t),a&&_==u)return-1;if(_!=l&&_!=d)throw"inflating: "+e.msg;if((a||_==d)&&e.avail_in==i.length)return-1;e.next_out_index&&(512==e.next_out_index?o.push(new Uint8Array(n)):o.push(new Uint8Array(n.subarray(0,e.next_out_index)))),x+=e.next_out_index,r&&e.next_in_index>0&&e.next_in_index!=f&&(r(e.next_in_index),f=e.next_in_index)}while(e.avail_in>0||0===e.avail_out);return s=new Uint8Array(x),o.forEach(function(i){s.set(i,b),b+=i.length}),s}},i.flush=function(){e.inflateEnd()}}var l=0,d=1,s=2,o=-2,f=-3,b=-4,u=-5,x=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],w=1440,c=0,v=4,h=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],k=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],m=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],y=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],g=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],p=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],A=15;e.inflate_trees_fixed=function(i,e,t,n){return i[0]=9,e[0]=5,t[0]=h,n[0]=k,l};var I=0,E=1,S=2,U=3,z=4,D=5,M=6,L=7,P=8,j=9,q=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],B=0,C=1,F=2,G=3,H=4,J=5,K=6,N=7,O=8,Q=9,R=32,T=8,V=0,W=1,X=2,Y=3,Z=4,$=5,ii=6,ei=7,ti=12,ni=13,ai=[0,0,255,255];r.prototype={inflateInit:function(i){var e=this;return e.istate=new a,i||(i=15),e.istate.inflateInit(e,i)},inflate:function(i){var e=this;return e.istate?e.istate.inflate(e,i):o},inflateEnd:function(){var i=this;if(!i.istate)return o;var e=i.istate.inflateEnd(i);return i.istate=null,e},inflateSync:function(){var i=this;return i.istate?i.istate.inflateSync(i):o},inflateSetDictionary:function(i,e){var t=this;return t.istate?t.istate.inflateSetDictionary(t,i,e):o},read_byte:function(i){return this.next_in.subarray(i,i+1)[0]},read_buf:function(i,e){return this.next_in.subarray(i,i+e)}};var ri;i.zip?i.zip.Inflater=_:(ri=new _,i.addEventListener("message",function(e){var t=e.data;t.append&&i.postMessage({onappend:!0,data:ri.append(t.data,function(e){i.postMessage({progress:!0,current:e})})}),t.flush&&(ri.flush(),i.postMessage({onflush:!0}))},!1))}(this); \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/package.json b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/package.json new file mode 100644 index 000000000..0292b9956 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/package.json @@ -0,0 +1 @@ +{"type":"commonjs"} \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_deflate.min.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_deflate.min.js new file mode 100644 index 000000000..71416d2af --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_deflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(v,z){typeof exports=="object"&&typeof module<"u"?z(exports):typeof define=="function"&&define.amd?define(["exports"],z):z((v=typeof globalThis<"u"?globalThis:v||self).pako={})})(this,function(v){"use strict";function z(e){let s=e.length;for(;--s>=0;)e[s]=0}const oe=256,Ae=286,H=30,M=15,de=new Uint8Array([0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0]),ae=new Uint8Array([0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13]),ra=new Uint8Array([0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7]),Ee=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]),Z=new Array(576);z(Z);const P=new Array(60);z(P);const j=new Array(512);z(j);const K=new Array(256);z(K);const ue=new Array(29);z(ue);const se=new Array(H);function fe(e,s,a,r,n){this.static_tree=e,this.extra_bits=s,this.extra_base=a,this.elems=r,this.max_length=n,this.has_stree=e&&e.length}let Ze,Ue,Re;function ce(e,s){this.dyn_tree=e,this.max_code=0,this.stat_desc=s}z(se);const Se=e=>e<256?j[e]:j[256+(e>>>7)],Y=(e,s)=>{e.pending_buf[e.pending++]=255&s,e.pending_buf[e.pending++]=s>>>8&255},p=(e,s,a)=>{e.bi_valid>16-a?(e.bi_buf|=s<<e.bi_valid&65535,Y(e,e.bi_buf),e.bi_buf=s>>16-e.bi_valid,e.bi_valid+=a-16):(e.bi_buf|=s<<e.bi_valid&65535,e.bi_valid+=a)},k=(e,s,a)=>{p(e,a[2*s],a[2*s+1])},Te=(e,s)=>{let a=0;do a|=1&e,e>>>=1,a<<=1;while(--s>0);return a>>>1},Le=(e,s,a)=>{const r=new Array(16);let n,i,_=0;for(n=1;n<=M;n++)_=_+a[n-1]<<1,r[n]=_;for(i=0;i<=s;i++){let t=e[2*i+1];t!==0&&(e[2*i]=Te(r[t]++,t))}},Fe=e=>{let s;for(s=0;s<Ae;s++)e.dyn_ltree[2*s]=0;for(s=0;s<H;s++)e.dyn_dtree[2*s]=0;for(s=0;s<19;s++)e.bl_tree[2*s]=0;e.dyn_ltree[512]=1,e.opt_len=e.static_len=0,e.sym_next=e.matches=0},Oe=e=>{e.bi_valid>8?Y(e,e.bi_buf):e.bi_valid>0&&(e.pending_buf[e.pending++]=e.bi_buf),e.bi_buf=0,e.bi_valid=0},De=(e,s,a,r)=>{const n=2*s,i=2*a;return e[n]<e[i]||e[n]===e[i]&&r[s]<=r[a]},pe=(e,s,a)=>{const r=e.heap[a];let n=a<<1;for(;n<=e.heap_len&&(n<e.heap_len&&De(s,e.heap[n+1],e.heap[n],e.depth)&&n++,!De(s,r,e.heap[n],e.depth));)e.heap[a]=e.heap[n],a=n,n<<=1;e.heap[a]=r},Ne=(e,s,a)=>{let r,n,i,_,t=0;if(e.sym_next!==0)do r=255&e.pending_buf[e.sym_buf+t++],r+=(255&e.pending_buf[e.sym_buf+t++])<<8,n=e.pending_buf[e.sym_buf+t++],r===0?k(e,n,s):(i=K[n],k(e,i+oe+1,s),_=de[i],_!==0&&(n-=ue[i],p(e,n,_)),r--,i=Se(r),k(e,i,a),_=ae[i],_!==0&&(r-=se[i],p(e,r,_)));while(t<e.sym_next);k(e,256,s)},ge=(e,s)=>{const a=s.dyn_tree,r=s.stat_desc.static_tree,n=s.stat_desc.has_stree,i=s.stat_desc.elems;let _,t,h,l=-1;for(e.heap_len=0,e.heap_max=573,_=0;_<i;_++)a[2*_]!==0?(e.heap[++e.heap_len]=l=_,e.depth[_]=0):a[2*_+1]=0;for(;e.heap_len<2;)h=e.heap[++e.heap_len]=l<2?++l:0,a[2*h]=1,e.depth[h]=0,e.opt_len--,n&&(e.static_len-=r[2*h+1]);for(s.max_code=l,_=e.heap_len>>1;_>=1;_--)pe(e,a,_);h=i;do _=e.heap[1],e.heap[1]=e.heap[e.heap_len--],pe(e,a,1),t=e.heap[1],e.heap[--e.heap_max]=_,e.heap[--e.heap_max]=t,a[2*h]=a[2*_]+a[2*t],e.depth[h]=(e.depth[_]>=e.depth[t]?e.depth[_]:e.depth[t])+1,a[2*_+1]=a[2*t+1]=h,e.heap[1]=h++,pe(e,a,1);while(e.heap_len>=2);e.heap[--e.heap_max]=e.heap[1],((u,d)=>{const m=d.dyn_tree,V=d.max_code,_e=d.stat_desc.static_tree,Na=d.stat_desc.has_stree,Ia=d.stat_desc.extra_bits,na=d.stat_desc.extra_base,$=d.stat_desc.max_length;let ee,y,B,f,le,xe,he=0;for(f=0;f<=M;f++)u.bl_count[f]=0;for(m[2*u.heap[u.heap_max]+1]=0,ee=u.heap_max+1;ee<573;ee++)y=u.heap[ee],f=m[2*m[2*y+1]+1]+1,f>$&&(f=$,he++),m[2*y+1]=f,y>V||(u.bl_count[f]++,le=0,y>=na&&(le=Ia[y-na]),xe=m[2*y],u.opt_len+=xe*(f+le),Na&&(u.static_len+=xe*(_e[2*y+1]+le)));if(he!==0){do{for(f=$-1;u.bl_count[f]===0;)f--;u.bl_count[f]--,u.bl_count[f+1]+=2,u.bl_count[$]--,he-=2}while(he>0);for(f=$;f!==0;f--)for(y=u.bl_count[f];y!==0;)B=u.heap[--ee],B>V||(m[2*B+1]!==f&&(u.opt_len+=(f-m[2*B+1])*m[2*B],m[2*B+1]=f),y--)}})(e,s),Le(a,l,e.bl_count)},Ie=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),s[2*(a+1)+1]=65535,r=0;r<=a;r++)n=_,_=s[2*(r+1)+1],++t<h&&n===_||(t<l?e.bl_tree[2*n]+=t:n!==0?(n!==i&&e.bl_tree[2*n]++,e.bl_tree[32]++):t<=10?e.bl_tree[34]++:e.bl_tree[36]++,t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4))},Ce=(e,s,a)=>{let r,n,i=-1,_=s[1],t=0,h=7,l=4;for(_===0&&(h=138,l=3),r=0;r<=a;r++)if(n=_,_=s[2*(r+1)+1],!(++t<h&&n===_)){if(t<l)do k(e,n,e.bl_tree);while(--t!=0);else n!==0?(n!==i&&(k(e,n,e.bl_tree),t--),k(e,16,e.bl_tree),p(e,t-3,2)):t<=10?(k(e,17,e.bl_tree),p(e,t-3,3)):(k(e,18,e.bl_tree),p(e,t-11,7));t=0,i=n,_===0?(h=138,l=3):n===_?(h=6,l=3):(h=7,l=4)}};let Be=!1;const He=(e,s,a,r)=>{p(e,0+(r?1:0),3),Oe(e),Y(e,a),Y(e,~a),a&&e.pending_buf.set(e.window.subarray(s,s+a),e.pending),e.pending+=a};var ia=(e,s,a,r)=>{let n,i,_=0;e.level>0?(e.strm.data_type===2&&(e.strm.data_type=(t=>{let h,l=4093624447;for(h=0;h<=31;h++,l>>>=1)if(1&l&&t.dyn_ltree[2*h]!==0)return 0;if(t.dyn_ltree[18]!==0||t.dyn_ltree[20]!==0||t.dyn_ltree[26]!==0)return 1;for(h=32;h<oe;h++)if(t.dyn_ltree[2*h]!==0)return 1;return 0})(e)),ge(e,e.l_desc),ge(e,e.d_desc),_=(t=>{let h;for(Ie(t,t.dyn_ltree,t.l_desc.max_code),Ie(t,t.dyn_dtree,t.d_desc.max_code),ge(t,t.bl_desc),h=18;h>=3&&t.bl_tree[2*Ee[h]+1]===0;h--);return t.opt_len+=3*(h+1)+5+5+4,h})(e),n=e.opt_len+3+7>>>3,i=e.static_len+3+7>>>3,i<=n&&(n=i)):n=i=a+5,a+4<=n&&s!==-1?He(e,s,a,r):e.strategy===4||i===n?(p(e,2+(r?1:0),3),Ne(e,Z,P)):(p(e,4+(r?1:0),3),((t,h,l,u)=>{let d;for(p(t,h-257,5),p(t,l-1,5),p(t,u-4,4),d=0;d<u;d++)p(t,t.bl_tree[2*Ee[d]+1],3);Ce(t,t.dyn_ltree,h-1),Ce(t,t.dyn_dtree,l-1)})(e,e.l_desc.max_code+1,e.d_desc.max_code+1,_+1),Ne(e,e.dyn_ltree,e.dyn_dtree)),Fe(e),r&&Oe(e)},ta={_tr_init:e=>{Be||((()=>{let s,a,r,n,i;const _=new Array(16);for(r=0,n=0;n<28;n++)for(ue[n]=r,s=0;s<1<<de[n];s++)K[r++]=n;for(K[r-1]=n,i=0,n=0;n<16;n++)for(se[n]=i,s=0;s<1<<ae[n];s++)j[i++]=n;for(i>>=7;n<H;n++)for(se[n]=i<<7,s=0;s<1<<ae[n]-7;s++)j[256+i++]=n;for(a=0;a<=M;a++)_[a]=0;for(s=0;s<=143;)Z[2*s+1]=8,s++,_[8]++;for(;s<=255;)Z[2*s+1]=9,s++,_[9]++;for(;s<=279;)Z[2*s+1]=7,s++,_[7]++;for(;s<=287;)Z[2*s+1]=8,s++,_[8]++;for(Le(Z,287,_),s=0;s<H;s++)P[2*s+1]=5,P[2*s]=Te(s,5);Ze=new fe(Z,de,257,Ae,M),Ue=new fe(P,ae,0,H,M),Re=new fe(new Array(0),ra,0,19,7)})(),Be=!0),e.l_desc=new ce(e.dyn_ltree,Ze),e.d_desc=new ce(e.dyn_dtree,Ue),e.bl_desc=new ce(e.bl_tree,Re),e.bi_buf=0,e.bi_valid=0,Fe(e)},_tr_stored_block:He,_tr_flush_block:ia,_tr_tally:(e,s,a)=>(e.pending_buf[e.sym_buf+e.sym_next++]=s,e.pending_buf[e.sym_buf+e.sym_next++]=s>>8,e.pending_buf[e.sym_buf+e.sym_next++]=a,s===0?e.dyn_ltree[2*a]++:(e.matches++,s--,e.dyn_ltree[2*(K[a]+oe+1)]++,e.dyn_dtree[2*Se(s)]++),e.sym_next===e.sym_end),_tr_align:e=>{p(e,2,3),k(e,256,Z),(s=>{s.bi_valid===16?(Y(s,s.bi_buf),s.bi_buf=0,s.bi_valid=0):s.bi_valid>=8&&(s.pending_buf[s.pending++]=255&s.bi_buf,s.bi_buf>>=8,s.bi_valid-=8)})(e)}},Me=(e,s,a,r)=>{let n=65535&e|0,i=e>>>16&65535|0,_=0;for(;a!==0;){_=a>2e3?2e3:a,a-=_;do n=n+s[r++]|0,i=i+n|0;while(--_);n%=65521,i%=65521}return n|i<<16|0};const _a=new Uint32Array((()=>{let e,s=[];for(var a=0;a<256;a++){e=a;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;s[a]=e}return s})());var U=(e,s,a,r)=>{const n=_a,i=r+a;e^=-1;for(let _=r;_<i;_++)e=e>>>8^n[255&(e^s[_])];return-1^e},ne={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},we={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{_tr_init:la,_tr_stored_block:me,_tr_flush_block:ha,_tr_tally:R,_tr_align:oa}=ta,{Z_NO_FLUSH:S,Z_PARTIAL_FLUSH:da,Z_FULL_FLUSH:ua,Z_FINISH:b,Z_BLOCK:Pe,Z_OK:c,Z_STREAM_END:je,Z_STREAM_ERROR:x,Z_DATA_ERROR:fa,Z_BUF_ERROR:be,Z_DEFAULT_COMPRESSION:ca,Z_FILTERED:pa,Z_HUFFMAN_ONLY:re,Z_RLE:ga,Z_FIXED:wa,Z_DEFAULT_STRATEGY:ma,Z_UNKNOWN:ba,Z_DEFLATED:ie}=we,F=258,A=262,N=42,O=113,G=666,D=(e,s)=>(e.msg=ne[s],s),Ke=e=>2*e-(e>4?9:0),T=e=>{let s=e.length;for(;--s>=0;)e[s]=0},ya=e=>{let s,a,r,n=e.w_size;s=e.hash_size,r=s;do a=e.head[--r],e.head[r]=a>=n?a-n:0;while(--s);s=n,r=s;do a=e.prev[--r],e.prev[r]=a>=n?a-n:0;while(--s)};let L=(e,s,a)=>(s<<e.hash_shift^a)&e.hash_mask;const g=e=>{const s=e.state;let a=s.pending;a>e.avail_out&&(a=e.avail_out),a!==0&&(e.output.set(s.pending_buf.subarray(s.pending_out,s.pending_out+a),e.next_out),e.next_out+=a,s.pending_out+=a,e.total_out+=a,e.avail_out-=a,s.pending-=a,s.pending===0&&(s.pending_out=0))},w=(e,s)=>{ha(e,e.block_start>=0?e.block_start:-1,e.strstart-e.block_start,s),e.block_start=e.strstart,g(e.strm)},o=(e,s)=>{e.pending_buf[e.pending++]=s},X=(e,s)=>{e.pending_buf[e.pending++]=s>>>8&255,e.pending_buf[e.pending++]=255&s},ye=(e,s,a,r)=>{let n=e.avail_in;return n>r&&(n=r),n===0?0:(e.avail_in-=n,s.set(e.input.subarray(e.next_in,e.next_in+n),a),e.state.wrap===1?e.adler=Me(e.adler,s,n,a):e.state.wrap===2&&(e.adler=U(e.adler,s,n,a)),e.next_in+=n,e.total_in+=n,n)},Ye=(e,s)=>{let a,r,n=e.max_chain_length,i=e.strstart,_=e.prev_length,t=e.nice_match;const h=e.strstart>e.w_size-A?e.strstart-(e.w_size-A):0,l=e.window,u=e.w_mask,d=e.prev,m=e.strstart+F;let V=l[i+_-1],_e=l[i+_];e.prev_length>=e.good_match&&(n>>=2),t>e.lookahead&&(t=e.lookahead);do if(a=s,l[a+_]===_e&&l[a+_-1]===V&&l[a]===l[i]&&l[++a]===l[i+1]){i+=2,a++;do;while(l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&l[++i]===l[++a]&&i<m);if(r=F-(m-i),i=m-F,r>_){if(e.match_start=s,_=r,r>=t)break;V=l[i+_-1],_e=l[i+_]}}while((s=d[s&u])>h&&--n!=0);return _<=e.lookahead?_:e.lookahead},I=e=>{const s=e.w_size;let a,r,n;do{if(r=e.window_size-e.lookahead-e.strstart,e.strstart>=s+(s-A)&&(e.window.set(e.window.subarray(s,s+s-r),0),e.match_start-=s,e.strstart-=s,e.block_start-=s,e.insert>e.strstart&&(e.insert=e.strstart),ya(e),r+=s),e.strm.avail_in===0)break;if(a=ye(e.strm,e.window,e.strstart+e.lookahead,r),e.lookahead+=a,e.lookahead+e.insert>=3)for(n=e.strstart-e.insert,e.ins_h=e.window[n],e.ins_h=L(e,e.ins_h,e.window[n+1]);e.insert&&(e.ins_h=L(e,e.ins_h,e.window[n+3-1]),e.prev[n&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=n,n++,e.insert--,!(e.lookahead+e.insert<3)););}while(e.lookahead<A&&e.strm.avail_in!==0)},Ge=(e,s)=>{let a,r,n,i=e.pending_buf_size-5>e.w_size?e.w_size:e.pending_buf_size-5,_=0,t=e.strm.avail_in;do{if(a=65535,n=e.bi_valid+42>>3,e.strm.avail_out<n||(n=e.strm.avail_out-n,r=e.strstart-e.block_start,a>r+e.strm.avail_in&&(a=r+e.strm.avail_in),a>n&&(a=n),a<i&&(a===0&&s!==b||s===S||a!==r+e.strm.avail_in)))break;_=s===b&&a===r+e.strm.avail_in?1:0,me(e,0,0,_),e.pending_buf[e.pending-4]=a,e.pending_buf[e.pending-3]=a>>8,e.pending_buf[e.pending-2]=~a,e.pending_buf[e.pending-1]=~a>>8,g(e.strm),r&&(r>a&&(r=a),e.strm.output.set(e.window.subarray(e.block_start,e.block_start+r),e.strm.next_out),e.strm.next_out+=r,e.strm.avail_out-=r,e.strm.total_out+=r,e.block_start+=r,a-=r),a&&(ye(e.strm,e.strm.output,e.strm.next_out,a),e.strm.next_out+=a,e.strm.avail_out-=a,e.strm.total_out+=a)}while(_===0);return t-=e.strm.avail_in,t&&(t>=e.w_size?(e.matches=2,e.window.set(e.strm.input.subarray(e.strm.next_in-e.w_size,e.strm.next_in),0),e.strstart=e.w_size,e.insert=e.strstart):(e.window_size-e.strstart<=t&&(e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,e.insert>e.strstart&&(e.insert=e.strstart)),e.window.set(e.strm.input.subarray(e.strm.next_in-t,e.strm.next_in),e.strstart),e.strstart+=t,e.insert+=t>e.w_size-e.insert?e.w_size-e.insert:t),e.block_start=e.strstart),e.high_water<e.strstart&&(e.high_water=e.strstart),_?4:s!==S&&s!==b&&e.strm.avail_in===0&&e.strstart===e.block_start?2:(n=e.window_size-e.strstart,e.strm.avail_in>n&&e.block_start>=e.w_size&&(e.block_start-=e.w_size,e.strstart-=e.w_size,e.window.set(e.window.subarray(e.w_size,e.w_size+e.strstart),0),e.matches<2&&e.matches++,n+=e.w_size,e.insert>e.strstart&&(e.insert=e.strstart)),n>e.strm.avail_in&&(n=e.strm.avail_in),n&&(ye(e.strm,e.window,e.strstart,n),e.strstart+=n,e.insert+=n>e.w_size-e.insert?e.w_size-e.insert:n),e.high_water<e.strstart&&(e.high_water=e.strstart),n=e.bi_valid+42>>3,n=e.pending_buf_size-n>65535?65535:e.pending_buf_size-n,i=n>e.w_size?e.w_size:n,r=e.strstart-e.block_start,(r>=i||(r||s===b)&&s!==S&&e.strm.avail_in===0&&r<=n)&&(a=r>n?n:r,_=s===b&&e.strm.avail_in===0&&a===r?1:0,me(e,e.block_start,a,_),e.block_start+=a,g(e.strm)),_?3:1)},ve=(e,s)=>{let a,r;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),a!==0&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a)),e.match_length>=3)if(r=R(e,e.strstart-e.match_start,e.match_length-3),e.lookahead-=e.match_length,e.match_length<=e.max_lazy_match&&e.lookahead>=3){e.match_length--;do e.strstart++,e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart;while(--e.match_length!=0);e.strstart++}else e.strstart+=e.match_length,e.match_length=0,e.ins_h=e.window[e.strstart],e.ins_h=L(e,e.ins_h,e.window[e.strstart+1]);else r=R(e,0,e.window[e.strstart]),e.lookahead--,e.strstart++;if(r&&(w(e,!1),e.strm.avail_out===0))return 1}return e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2},C=(e,s)=>{let a,r,n;for(;;){if(e.lookahead<A){if(I(e),e.lookahead<A&&s===S)return 1;if(e.lookahead===0)break}if(a=0,e.lookahead>=3&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart),e.prev_length=e.match_length,e.prev_match=e.match_start,e.match_length=2,a!==0&&e.prev_length<e.max_lazy_match&&e.strstart-a<=e.w_size-A&&(e.match_length=Ye(e,a),e.match_length<=5&&(e.strategy===pa||e.match_length===3&&e.strstart-e.match_start>4096)&&(e.match_length=2)),e.prev_length>=3&&e.match_length<=e.prev_length){n=e.strstart+e.lookahead-3,r=R(e,e.strstart-1-e.prev_match,e.prev_length-3),e.lookahead-=e.prev_length-1,e.prev_length-=2;do++e.strstart<=n&&(e.ins_h=L(e,e.ins_h,e.window[e.strstart+3-1]),a=e.prev[e.strstart&e.w_mask]=e.head[e.ins_h],e.head[e.ins_h]=e.strstart);while(--e.prev_length!=0);if(e.match_available=0,e.match_length=2,e.strstart++,r&&(w(e,!1),e.strm.avail_out===0))return 1}else if(e.match_available){if(r=R(e,0,e.window[e.strstart-1]),r&&w(e,!1),e.strstart++,e.lookahead--,e.strm.avail_out===0)return 1}else e.match_available=1,e.strstart++,e.lookahead--}return e.match_available&&(r=R(e,0,e.window[e.strstart-1]),e.match_available=0),e.insert=e.strstart<2?e.strstart:2,s===b?(w(e,!0),e.strm.avail_out===0?3:4):e.sym_next&&(w(e,!1),e.strm.avail_out===0)?1:2};function E(e,s,a,r,n){this.good_length=e,this.max_lazy=s,this.nice_length=a,this.max_chain=r,this.func=n}const W=[new E(0,0,0,0,Ge),new E(4,4,8,4,ve),new E(4,5,16,8,ve),new E(4,6,32,32,ve),new E(4,4,16,16,C),new E(8,16,32,32,C),new E(8,16,128,128,C),new E(8,32,128,256,C),new E(32,128,258,1024,C),new E(32,258,258,4096,C)];function va(){this.strm=null,this.status=0,this.pending_buf=null,this.pending_buf_size=0,this.pending_out=0,this.pending=0,this.wrap=0,this.gzhead=null,this.gzindex=0,this.method=ie,this.last_flush=-1,this.w_size=0,this.w_bits=0,this.w_mask=0,this.window=null,this.window_size=0,this.prev=null,this.head=null,this.ins_h=0,this.hash_size=0,this.hash_bits=0,this.hash_mask=0,this.hash_shift=0,this.block_start=0,this.match_length=0,this.prev_match=0,this.match_available=0,this.strstart=0,this.match_start=0,this.lookahead=0,this.prev_length=0,this.max_chain_length=0,this.max_lazy_match=0,this.level=0,this.strategy=0,this.good_match=0,this.nice_match=0,this.dyn_ltree=new Uint16Array(1146),this.dyn_dtree=new Uint16Array(122),this.bl_tree=new Uint16Array(78),T(this.dyn_ltree),T(this.dyn_dtree),T(this.bl_tree),this.l_desc=null,this.d_desc=null,this.bl_desc=null,this.bl_count=new Uint16Array(16),this.heap=new Uint16Array(573),T(this.heap),this.heap_len=0,this.heap_max=0,this.depth=new Uint16Array(573),T(this.depth),this.sym_buf=0,this.lit_bufsize=0,this.sym_next=0,this.sym_end=0,this.opt_len=0,this.static_len=0,this.matches=0,this.insert=0,this.bi_buf=0,this.bi_valid=0}const q=e=>{if(!e)return 1;const s=e.state;return!s||s.strm!==e||s.status!==N&&s.status!==57&&s.status!==69&&s.status!==73&&s.status!==91&&s.status!==103&&s.status!==O&&s.status!==G?1:0},Xe=e=>{if(q(e))return D(e,x);e.total_in=e.total_out=0,e.data_type=ba;const s=e.state;return s.pending=0,s.pending_out=0,s.wrap<0&&(s.wrap=-s.wrap),s.status=s.wrap===2?57:s.wrap?N:O,e.adler=s.wrap===2?0:1,s.last_flush=-2,la(s),c},We=e=>{const s=Xe(e);var a;return s===c&&((a=e.state).window_size=2*a.w_size,T(a.head),a.max_lazy_match=W[a.level].max_lazy,a.good_match=W[a.level].good_length,a.nice_match=W[a.level].nice_length,a.max_chain_length=W[a.level].max_chain,a.strstart=0,a.block_start=0,a.lookahead=0,a.insert=0,a.match_length=a.prev_length=2,a.match_available=0,a.ins_h=0),s},qe=(e,s,a,r,n,i)=>{if(!e)return x;let _=1;if(s===ca&&(s=6),r<0?(_=0,r=-r):r>15&&(_=2,r-=16),n<1||n>9||a!==ie||r<8||r>15||s<0||s>9||i<0||i>wa||r===8&&_!==1)return D(e,x);r===8&&(r=9);const t=new va;return e.state=t,t.strm=e,t.status=N,t.wrap=_,t.gzhead=null,t.w_bits=r,t.w_size=1<<t.w_bits,t.w_mask=t.w_size-1,t.hash_bits=n+7,t.hash_size=1<<t.hash_bits,t.hash_mask=t.hash_size-1,t.hash_shift=~~((t.hash_bits+3-1)/3),t.window=new Uint8Array(2*t.w_size),t.head=new Uint16Array(t.hash_size),t.prev=new Uint16Array(t.w_size),t.lit_bufsize=1<<n+6,t.pending_buf_size=4*t.lit_bufsize,t.pending_buf=new Uint8Array(t.pending_buf_size),t.sym_buf=t.lit_bufsize,t.sym_end=3*(t.lit_bufsize-1),t.level=s,t.strategy=i,t.method=a,We(e)};var J={deflateInit:(e,s)=>qe(e,s,ie,15,8,ma),deflateInit2:qe,deflateReset:We,deflateResetKeep:Xe,deflateSetHeader:(e,s)=>q(e)||e.state.wrap!==2?x:(e.state.gzhead=s,c),deflate:(e,s)=>{if(q(e)||s>Pe||s<0)return e?D(e,x):x;const a=e.state;if(!e.output||e.avail_in!==0&&!e.input||a.status===G&&s!==b)return D(e,e.avail_out===0?be:x);const r=a.last_flush;if(a.last_flush=s,a.pending!==0){if(g(e),e.avail_out===0)return a.last_flush=-1,c}else if(e.avail_in===0&&Ke(s)<=Ke(r)&&s!==b)return D(e,be);if(a.status===G&&e.avail_in!==0)return D(e,be);if(a.status===N&&a.wrap===0&&(a.status=O),a.status===N){let n=ie+(a.w_bits-8<<4)<<8,i=-1;if(i=a.strategy>=re||a.level<2?0:a.level<6?1:a.level===6?2:3,n|=i<<6,a.strstart!==0&&(n|=32),n+=31-n%31,X(a,n),a.strstart!==0&&(X(a,e.adler>>>16),X(a,65535&e.adler)),e.adler=1,a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===57){if(e.adler=0,o(a,31),o(a,139),o(a,8),a.gzhead)o(a,(a.gzhead.text?1:0)+(a.gzhead.hcrc?2:0)+(a.gzhead.extra?4:0)+(a.gzhead.name?8:0)+(a.gzhead.comment?16:0)),o(a,255&a.gzhead.time),o(a,a.gzhead.time>>8&255),o(a,a.gzhead.time>>16&255),o(a,a.gzhead.time>>24&255),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,255&a.gzhead.os),a.gzhead.extra&&a.gzhead.extra.length&&(o(a,255&a.gzhead.extra.length),o(a,a.gzhead.extra.length>>8&255)),a.gzhead.hcrc&&(e.adler=U(e.adler,a.pending_buf,a.pending,0)),a.gzindex=0,a.status=69;else if(o(a,0),o(a,0),o(a,0),o(a,0),o(a,0),o(a,a.level===9?2:a.strategy>=re||a.level<2?4:0),o(a,3),a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(a.status===69){if(a.gzhead.extra){let n=a.pending,i=(65535&a.gzhead.extra.length)-a.gzindex;for(;a.pending+i>a.pending_buf_size;){let t=a.pending_buf_size-a.pending;if(a.pending_buf.set(a.gzhead.extra.subarray(a.gzindex,a.gzindex+t),a.pending),a.pending=a.pending_buf_size,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex+=t,g(e),a.pending!==0)return a.last_flush=-1,c;n=0,i-=t}let _=new Uint8Array(a.gzhead.extra);a.pending_buf.set(_.subarray(a.gzindex,a.gzindex+i),a.pending),a.pending+=i,a.gzhead.hcrc&&a.pending>n&&(e.adler=U(e.adler,a.pending_buf,a.pending-n,n)),a.gzindex=0}a.status=73}if(a.status===73){if(a.gzhead.name){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.name.length?255&a.gzhead.name.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),a.gzindex=0}a.status=91}if(a.status===91){if(a.gzhead.comment){let n,i=a.pending;do{if(a.pending===a.pending_buf_size){if(a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i)),g(e),a.pending!==0)return a.last_flush=-1,c;i=0}n=a.gzindex<a.gzhead.comment.length?255&a.gzhead.comment.charCodeAt(a.gzindex++):0,o(a,n)}while(n!==0);a.gzhead.hcrc&&a.pending>i&&(e.adler=U(e.adler,a.pending_buf,a.pending-i,i))}a.status=103}if(a.status===103){if(a.gzhead.hcrc){if(a.pending+2>a.pending_buf_size&&(g(e),a.pending!==0))return a.last_flush=-1,c;o(a,255&e.adler),o(a,e.adler>>8&255),e.adler=0}if(a.status=O,g(e),a.pending!==0)return a.last_flush=-1,c}if(e.avail_in!==0||a.lookahead!==0||s!==S&&a.status!==G){let n=a.level===0?Ge(a,s):a.strategy===re?((i,_)=>{let t;for(;;){if(i.lookahead===0&&(I(i),i.lookahead===0)){if(_===S)return 1;break}if(i.match_length=0,t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++,t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):a.strategy===ga?((i,_)=>{let t,h,l,u;const d=i.window;for(;;){if(i.lookahead<=F){if(I(i),i.lookahead<=F&&_===S)return 1;if(i.lookahead===0)break}if(i.match_length=0,i.lookahead>=3&&i.strstart>0&&(l=i.strstart-1,h=d[l],h===d[++l]&&h===d[++l]&&h===d[++l])){u=i.strstart+F;do;while(h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&h===d[++l]&&l<u);i.match_length=F-(u-l),i.match_length>i.lookahead&&(i.match_length=i.lookahead)}if(i.match_length>=3?(t=R(i,1,i.match_length-3),i.lookahead-=i.match_length,i.strstart+=i.match_length,i.match_length=0):(t=R(i,0,i.window[i.strstart]),i.lookahead--,i.strstart++),t&&(w(i,!1),i.strm.avail_out===0))return 1}return i.insert=0,_===b?(w(i,!0),i.strm.avail_out===0?3:4):i.sym_next&&(w(i,!1),i.strm.avail_out===0)?1:2})(a,s):W[a.level].func(a,s);if(n!==3&&n!==4||(a.status=G),n===1||n===3)return e.avail_out===0&&(a.last_flush=-1),c;if(n===2&&(s===da?oa(a):s!==Pe&&(me(a,0,0,!1),s===ua&&(T(a.head),a.lookahead===0&&(a.strstart=0,a.block_start=0,a.insert=0))),g(e),e.avail_out===0))return a.last_flush=-1,c}return s!==b?c:a.wrap<=0?je:(a.wrap===2?(o(a,255&e.adler),o(a,e.adler>>8&255),o(a,e.adler>>16&255),o(a,e.adler>>24&255),o(a,255&e.total_in),o(a,e.total_in>>8&255),o(a,e.total_in>>16&255),o(a,e.total_in>>24&255)):(X(a,e.adler>>>16),X(a,65535&e.adler)),g(e),a.wrap>0&&(a.wrap=-a.wrap),a.pending!==0?c:je)},deflateEnd:e=>{if(q(e))return x;const s=e.state.status;return e.state=null,s===O?D(e,fa):c},deflateSetDictionary:(e,s)=>{let a=s.length;if(q(e))return x;const r=e.state,n=r.wrap;if(n===2||n===1&&r.status!==N||r.lookahead)return x;if(n===1&&(e.adler=Me(e.adler,s,a,0)),r.wrap=0,a>=r.w_size){n===0&&(T(r.head),r.strstart=0,r.block_start=0,r.insert=0);let h=new Uint8Array(r.w_size);h.set(s.subarray(a-r.w_size,a),0),s=h,a=r.w_size}const i=e.avail_in,_=e.next_in,t=e.input;for(e.avail_in=a,e.next_in=0,e.input=s,I(r);r.lookahead>=3;){let h=r.strstart,l=r.lookahead-2;do r.ins_h=L(r,r.ins_h,r.window[h+3-1]),r.prev[h&r.w_mask]=r.head[r.ins_h],r.head[r.ins_h]=h,h++;while(--l);r.strstart=h,r.lookahead=2,I(r)}return r.strstart+=r.lookahead,r.block_start=r.strstart,r.insert=r.lookahead,r.lookahead=0,r.match_length=r.prev_length=2,r.match_available=0,e.next_in=_,e.input=t,e.avail_in=i,r.wrap=n,c},deflateInfo:"pako deflate (from Nodeca project)"};const za=(e,s)=>Object.prototype.hasOwnProperty.call(e,s);var ka=function(e){const s=Array.prototype.slice.call(arguments,1);for(;s.length;){const a=s.shift();if(a){if(typeof a!="object")throw new TypeError(a+"must be non-object");for(const r in a)za(a,r)&&(e[r]=a[r])}}return e},xa=e=>{let s=0;for(let r=0,n=e.length;r<n;r++)s+=e[r].length;const a=new Uint8Array(s);for(let r=0,n=0,i=e.length;r<i;r++){let _=e[r];a.set(_,n),n+=_.length}return a};let Aa=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{Aa=!1}const ze=new Uint8Array(256);for(let e=0;e<256;e++)ze[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;ze[254]=ze[254]=1;var Je=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let s,a,r,n,i,_=e.length,t=0;for(n=0;n<_;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),t+=a<128?1:a<2048?2:a<65536?3:4;for(s=new Uint8Array(t),i=0,n=0;i<t;n++)a=e.charCodeAt(n),(64512&a)==55296&&n+1<_&&(r=e.charCodeAt(n+1),(64512&r)==56320&&(a=65536+(a-55296<<10)+(r-56320),n++)),a<128?s[i++]=a:a<2048?(s[i++]=192|a>>>6,s[i++]=128|63&a):a<65536?(s[i++]=224|a>>>12,s[i++]=128|a>>>6&63,s[i++]=128|63&a):(s[i++]=240|a>>>18,s[i++]=128|a>>>12&63,s[i++]=128|a>>>6&63,s[i++]=128|63&a);return s},Ea=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0};const Qe=Object.prototype.toString,{Z_NO_FLUSH:Za,Z_SYNC_FLUSH:Ua,Z_FULL_FLUSH:Ra,Z_FINISH:Sa,Z_OK:te,Z_STREAM_END:Ta,Z_DEFAULT_COMPRESSION:La,Z_DEFAULT_STRATEGY:Fa,Z_DEFLATED:Oa}=we;function Q(e){this.options=ka({level:La,method:Oa,chunkSize:16384,windowBits:15,memLevel:8,strategy:Fa},e||{});let s=this.options;s.raw&&s.windowBits>0?s.windowBits=-s.windowBits:s.gzip&&s.windowBits>0&&s.windowBits<16&&(s.windowBits+=16),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Ea,this.strm.avail_out=0;let a=J.deflateInit2(this.strm,s.level,s.method,s.windowBits,s.memLevel,s.strategy);if(a!==te)throw new Error(ne[a]);if(s.header&&J.deflateSetHeader(this.strm,s.header),s.dictionary){let r;if(r=typeof s.dictionary=="string"?Je(s.dictionary):Qe.call(s.dictionary)==="[object ArrayBuffer]"?new Uint8Array(s.dictionary):s.dictionary,a=J.deflateSetDictionary(this.strm,r),a!==te)throw new Error(ne[a]);this._dict_set=!0}}function ke(e,s){const a=new Q(s);if(a.push(e,!0),a.err)throw a.msg||ne[a.err];return a.result}Q.prototype.push=function(e,s){const a=this.strm,r=this.options.chunkSize;let n,i;if(this.ended)return!1;for(i=s===~~s?s:s===!0?Sa:Za,typeof e=="string"?a.input=Je(e):Qe.call(e)==="[object ArrayBuffer]"?a.input=new Uint8Array(e):a.input=e,a.next_in=0,a.avail_in=a.input.length;;)if(a.avail_out===0&&(a.output=new Uint8Array(r),a.next_out=0,a.avail_out=r),(i===Ua||i===Ra)&&a.avail_out<=6)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else{if(n=J.deflate(a,i),n===Ta)return a.next_out>0&&this.onData(a.output.subarray(0,a.next_out)),n=J.deflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===te;if(a.avail_out!==0){if(i>0&&a.next_out>0)this.onData(a.output.subarray(0,a.next_out)),a.avail_out=0;else if(a.avail_in===0)break}else this.onData(a.output)}return!0},Q.prototype.onData=function(e){this.chunks.push(e)},Q.prototype.onEnd=function(e){e===te&&(this.result=xa(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var Ve=Q,$e=ke,ea=function(e,s){return(s=s||{}).raw=!0,ke(e,s)},aa=function(e,s){return(s=s||{}).gzip=!0,ke(e,s)},sa=we,Da={Deflate:Ve,deflate:$e,deflateRaw:ea,gzip:aa,constants:sa};v.Deflate=Ve,v.constants=sa,v.default=Da,v.deflate=$e,v.deflateRaw=ea,v.gzip=aa,Object.defineProperty(v,"__esModule",{value:!0})}); diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_inflate.min.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_inflate.min.js new file mode 100644 index 000000000..420318f13 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/pako_inflate.min.js @@ -0,0 +1 @@ +/*! pako 2.1.0 https://github.com/nodeca/pako @license (MIT AND Zlib) */(function(O,I){typeof exports=="object"&&typeof module<"u"?I(exports):typeof define=="function"&&define.amd?define(["exports"],I):I((O=typeof globalThis<"u"?globalThis:O||self).pako={})})(this,function(O){"use strict";var I=(e,i,t,o)=>{let s=65535&e|0,r=e>>>16&65535|0,h=0;for(;t!==0;){h=t>2e3?2e3:t,t-=h;do s=s+i[o++]|0,r=r+s|0;while(--h);s%=65521,r%=65521}return s|r<<16|0};const Zt=new Uint32Array((()=>{let e,i=[];for(var t=0;t<256;t++){e=t;for(var o=0;o<8;o++)e=1&e?3988292384^e>>>1:e>>>1;i[t]=e}return i})());var U=(e,i,t,o)=>{const s=Zt,r=o+t;e^=-1;for(let h=o;h<r;h++)e=e>>>8^s[255&(e^i[h])];return-1^e};const j=16209;var St=function(e,i){let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m,b;const _=e.state;t=e.next_in,m=e.input,o=t+(e.avail_in-5),s=e.next_out,b=e.output,r=s-(i-e.avail_out),h=s+(e.avail_out-257),l=_.dmax,p=_.wsize,n=_.whave,a=_.wnext,A=_.window,w=_.hold,d=_.bits,Z=_.lencode,v=_.distcode,u=(1<<_.lenbits)-1,y=(1<<_.distbits)-1;t:do{d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=Z[w&u];e:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,f===0)b[s++]=65535&k;else{if(!(16&f)){if(!(64&f)){k=Z[(65535&k)+(w&(1<<f)-1)];continue e}if(32&f){_.mode=16191;break t}e.msg="invalid literal/length code",_.mode=j;break t}g=65535&k,f&=15,f&&(d<f&&(w+=m[t++]<<d,d+=8),g+=w&(1<<f)-1,w>>>=f,d-=f),d<15&&(w+=m[t++]<<d,d+=8,w+=m[t++]<<d,d+=8),k=v[w&y];i:for(;;){if(f=k>>>24,w>>>=f,d-=f,f=k>>>16&255,!(16&f)){if(!(64&f)){k=v[(65535&k)+(w&(1<<f)-1)];continue i}e.msg="invalid distance code",_.mode=j;break t}if(E=65535&k,f&=15,d<f&&(w+=m[t++]<<d,d+=8,d<f&&(w+=m[t++]<<d,d+=8)),E+=w&(1<<f)-1,E>l){e.msg="invalid distance too far back",_.mode=j;break t}if(w>>>=f,d-=f,f=s-r,E>f){if(f=E-f,f>n&&_.sane){e.msg="invalid distance too far back",_.mode=j;break t}if(c=0,x=A,a===0){if(c+=p-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}else if(a<f){if(c+=p+a-f,f-=a,f<g){g-=f;do b[s++]=A[c++];while(--f);if(c=0,a<g){f=a,g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}}}else if(c+=a-f,f<g){g-=f;do b[s++]=A[c++];while(--f);c=s-E,x=b}for(;g>2;)b[s++]=x[c++],b[s++]=x[c++],b[s++]=x[c++],g-=3;g&&(b[s++]=x[c++],g>1&&(b[s++]=x[c++]))}else{c=s-E;do b[s++]=b[c++],b[s++]=b[c++],b[s++]=b[c++],g-=3;while(g>2);g&&(b[s++]=b[c++],g>1&&(b[s++]=b[c++]))}break}}break}}while(t<o&&s<h);g=d>>3,t-=g,d-=g<<3,w&=(1<<d)-1,e.next_in=t,e.next_out=s,e.avail_in=t<o?o-t+5:5-(t-o),e.avail_out=s<h?h-s+257:257-(s-h),_.hold=w,_.bits=d};const K=15,Tt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Ot=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Ut=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),Dt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]);var z=(e,i,t,o,s,r,h,l)=>{const p=l.bits;let n,a,A,w,d,Z,v=0,u=0,y=0,k=0,f=0,g=0,E=0,c=0,x=0,m=0,b=null;const _=new Uint16Array(16),S=new Uint16Array(16);let H,q,J,Q=null;for(v=0;v<=K;v++)_[v]=0;for(u=0;u<o;u++)_[i[t+u]]++;for(f=p,k=K;k>=1&&_[k]===0;k--);if(f>k&&(f=k),k===0)return s[r++]=20971520,s[r++]=20971520,l.bits=1,0;for(y=1;y<k&&_[y]===0;y++);for(f<y&&(f=y),c=1,v=1;v<=K;v++)if(c<<=1,c-=_[v],c<0)return-1;if(c>0&&(e===0||k!==1))return-1;for(S[1]=0,v=1;v<K;v++)S[v+1]=S[v]+_[v];for(u=0;u<o;u++)i[t+u]!==0&&(h[S[i[t+u]]++]=u);if(e===0?(b=Q=h,Z=20):e===1?(b=Tt,Q=Ot,Z=257):(b=Ut,Q=Dt,Z=0),m=0,u=0,v=y,d=r,g=f,E=0,A=-1,x=1<<f,w=x-1,e===1&&x>852||e===2&&x>592)return 1;for(;;){H=v-E,h[u]+1<Z?(q=0,J=h[u]):h[u]>=Z?(q=Q[h[u]-Z],J=b[h[u]-Z]):(q=96,J=0),n=1<<v-E,a=1<<g,y=a;do a-=n,s[d+(m>>E)+a]=H<<24|q<<16|J|0;while(a!==0);for(n=1<<v-1;m&n;)n>>=1;if(n!==0?(m&=n-1,m+=n):m=0,u++,--_[v]==0){if(v===k)break;v=i[t+h[u]]}if(v>f&&(m&w)!==A){for(E===0&&(E=f),d+=y,g=v-E,c=1<<g;g+E<k&&(c-=_[g+E],!(c<=0));)g++,c<<=1;if(x+=1<<g,e===1&&x>852||e===2&&x>592)return 1;A=m&w,s[A]=f<<24|g<<16|d-r|0}}return m!==0&&(s[d+m]=v-E<<24|64<<16|0),l.bits=f,0},V={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8};const{Z_FINISH:lt,Z_BLOCK:Bt,Z_TREES:P,Z_OK:C,Z_STREAM_END:It,Z_NEED_DICT:Ct,Z_STREAM_ERROR:T,Z_DATA_ERROR:dt,Z_MEM_ERROR:ft,Z_BUF_ERROR:Nt,Z_DEFLATED:ht}=V,Y=16180,G=16190,D=16191,$=16192,tt=16194,X=16199,W=16200,et=16206,R=16209,ct=e=>(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24);function zt(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}const N=e=>{if(!e)return 1;const i=e.state;return!i||i.strm!==e||i.mode<Y||i.mode>16211?1:0},ut=e=>{if(N(e))return T;const i=e.state;return e.total_in=e.total_out=i.total=0,e.msg="",i.wrap&&(e.adler=1&i.wrap),i.mode=Y,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(852),i.distcode=i.distdyn=new Int32Array(592),i.sane=1,i.back=-1,C},wt=e=>{if(N(e))return T;const i=e.state;return i.wsize=0,i.whave=0,i.wnext=0,ut(e)},bt=(e,i)=>{let t;if(N(e))return T;const o=e.state;return i<0?(t=0,i=-i):(t=5+(i>>4),i<48&&(i&=15)),i&&(i<8||i>15)?T:(o.window!==null&&o.wbits!==i&&(o.window=null),o.wrap=t,o.wbits=i,wt(e))},mt=(e,i)=>{if(!e)return T;const t=new zt;e.state=t,t.strm=e,t.window=null,t.mode=Y;const o=bt(e,i);return o!==C&&(e.state=null),o};let it,nt,kt=!0;const Ft=e=>{if(kt){it=new Int32Array(512),nt=new Int32Array(32);let i=0;for(;i<144;)e.lens[i++]=8;for(;i<256;)e.lens[i++]=9;for(;i<280;)e.lens[i++]=7;for(;i<288;)e.lens[i++]=8;for(z(1,e.lens,0,288,it,0,e.work,{bits:9}),i=0;i<32;)e.lens[i++]=5;z(2,e.lens,0,32,nt,0,e.work,{bits:5}),kt=!1}e.lencode=it,e.lenbits=9,e.distcode=nt,e.distbits=5},_t=(e,i,t,o)=>{let s;const r=e.state;return r.window===null&&(r.wsize=1<<r.wbits,r.wnext=0,r.whave=0,r.window=new Uint8Array(r.wsize)),o>=r.wsize?(r.window.set(i.subarray(t-r.wsize,t),0),r.wnext=0,r.whave=r.wsize):(s=r.wsize-r.wnext,s>o&&(s=o),r.window.set(i.subarray(t-o,t-o+s),r.wnext),(o-=s)?(r.window.set(i.subarray(t-o,t),0),r.wnext=o,r.whave=r.wsize):(r.wnext+=s,r.wnext===r.wsize&&(r.wnext=0),r.whave<r.wsize&&(r.whave+=s))),0};var B={inflateReset:wt,inflateReset2:bt,inflateResetKeep:ut,inflateInit:e=>mt(e,15),inflateInit2:mt,inflate:(e,i)=>{let t,o,s,r,h,l,p,n,a,A,w,d,Z,v,u,y,k,f,g,E,c,x,m=0;const b=new Uint8Array(4);let _,S;const H=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(N(e)||!e.output||!e.input&&e.avail_in!==0)return T;t=e.state,t.mode===D&&(t.mode=$),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,A=l,w=p,x=C;t:for(;;)switch(t.mode){case Y:if(t.wrap===0){t.mode=$;break}for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(2&t.wrap&&n===35615){t.wbits===0&&(t.wbits=15),t.check=0,b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0),n=0,a=0,t.mode=16181;break}if(t.head&&(t.head.done=!1),!(1&t.wrap)||(((255&n)<<8)+(n>>8))%31){e.msg="incorrect header check",t.mode=R;break}if((15&n)!==ht){e.msg="unknown compression method",t.mode=R;break}if(n>>>=4,a-=4,c=8+(15&n),t.wbits===0&&(t.wbits=c),c>15||c>t.wbits){e.msg="invalid window size",t.mode=R;break}t.dmax=1<<t.wbits,t.flags=0,e.adler=t.check=1,t.mode=512&n?16189:D,n=0,a=0;break;case 16181:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.flags=n,(255&t.flags)!==ht){e.msg="unknown compression method",t.mode=R;break}if(57344&t.flags){e.msg="unknown header flags set",t.mode=R;break}t.head&&(t.head.text=n>>8&1),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16182;case 16182:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.time=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,b[2]=n>>>16&255,b[3]=n>>>24&255,t.check=U(t.check,b,4,0)),n=0,a=0,t.mode=16183;case 16183:for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.head&&(t.head.xflags=255&n,t.head.os=n>>8),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0,t.mode=16184;case 16184:if(1024&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length=n,t.head&&(t.head.extra_len=n),512&t.flags&&4&t.wrap&&(b[0]=255&n,b[1]=n>>>8&255,t.check=U(t.check,b,2,0)),n=0,a=0}else t.head&&(t.head.extra=null);t.mode=16185;case 16185:if(1024&t.flags&&(d=t.length,d>l&&(d=l),d&&(t.head&&(c=t.head.extra_len-t.length,t.head.extra||(t.head.extra=new Uint8Array(t.head.extra_len)),t.head.extra.set(o.subarray(r,r+d),c)),512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,t.length-=d),t.length))break t;t.length=0,t.mode=16186;case 16186:if(2048&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.name+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.name=null);t.length=0,t.mode=16187;case 16187:if(4096&t.flags){if(l===0)break t;d=0;do c=o[r+d++],t.head&&c&&t.length<65536&&(t.head.comment+=String.fromCharCode(c));while(c&&d<l);if(512&t.flags&&4&t.wrap&&(t.check=U(t.check,o,d,r)),l-=d,r+=d,c)break t}else t.head&&(t.head.comment=null);t.mode=16188;case 16188:if(512&t.flags){for(;a<16;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(65535&t.check)){e.msg="header crc mismatch",t.mode=R;break}n=0,a=0}t.head&&(t.head.hcrc=t.flags>>9&1,t.head.done=!0),e.adler=t.check=0,t.mode=D;break;case 16189:for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}e.adler=t.check=ct(n),n=0,a=0,t.mode=G;case G:if(t.havedict===0)return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,Ct;e.adler=t.check=1,t.mode=D;case D:if(i===Bt||i===P)break t;case $:if(t.last){n>>>=7&a,a-=7&a,t.mode=et;break}for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}switch(t.last=1&n,n>>>=1,a-=1,3&n){case 0:t.mode=16193;break;case 1:if(Ft(t),t.mode=X,i===P){n>>>=2,a-=2;break t}break;case 2:t.mode=16196;break;case 3:e.msg="invalid block type",t.mode=R}n>>>=2,a-=2;break;case 16193:for(n>>>=7&a,a-=7&a;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if((65535&n)!=(n>>>16^65535)){e.msg="invalid stored block lengths",t.mode=R;break}if(t.length=65535&n,n=0,a=0,t.mode=tt,i===P)break t;case tt:t.mode=16195;case 16195:if(d=t.length,d){if(d>l&&(d=l),d>p&&(d=p),d===0)break t;s.set(o.subarray(r,r+d),h),l-=d,r+=d,p-=d,h+=d,t.length-=d;break}t.mode=D;break;case 16196:for(;a<14;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(t.nlen=257+(31&n),n>>>=5,a-=5,t.ndist=1+(31&n),n>>>=5,a-=5,t.ncode=4+(15&n),n>>>=4,a-=4,t.nlen>286||t.ndist>30){e.msg="too many length or distance symbols",t.mode=R;break}t.have=0,t.mode=16197;case 16197:for(;t.have<t.ncode;){for(;a<3;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.lens[H[t.have++]]=7&n,n>>>=3,a-=3}for(;t.have<19;)t.lens[H[t.have++]]=0;if(t.lencode=t.lendyn,t.lenbits=7,_={bits:t.lenbits},x=z(0,t.lens,0,19,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid code lengths set",t.mode=R;break}t.have=0,t.mode=16198;case 16198:for(;t.have<t.nlen+t.ndist;){for(;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(k<16)n>>>=u,a-=u,t.lens[t.have++]=k;else{if(k===16){for(S=u+2;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(n>>>=u,a-=u,t.have===0){e.msg="invalid bit length repeat",t.mode=R;break}c=t.lens[t.have-1],d=3+(3&n),n>>>=2,a-=2}else if(k===17){for(S=u+3;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=3+(7&n),n>>>=3,a-=3}else{for(S=u+7;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=u,a-=u,c=0,d=11+(127&n),n>>>=7,a-=7}if(t.have+d>t.nlen+t.ndist){e.msg="invalid bit length repeat",t.mode=R;break}for(;d--;)t.lens[t.have++]=c}}if(t.mode===R)break;if(t.lens[256]===0){e.msg="invalid code -- missing end-of-block",t.mode=R;break}if(t.lenbits=9,_={bits:t.lenbits},x=z(1,t.lens,0,t.nlen,t.lencode,0,t.work,_),t.lenbits=_.bits,x){e.msg="invalid literal/lengths set",t.mode=R;break}if(t.distbits=6,t.distcode=t.distdyn,_={bits:t.distbits},x=z(2,t.lens,t.nlen,t.ndist,t.distcode,0,t.work,_),t.distbits=_.bits,x){e.msg="invalid distances set",t.mode=R;break}if(t.mode=X,i===P)break t;case X:t.mode=W;case W:if(l>=6&&p>=258){e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,St(e,w),h=e.next_out,s=e.output,p=e.avail_out,r=e.next_in,o=e.input,l=e.avail_in,n=t.hold,a=t.bits,t.mode===D&&(t.back=-1);break}for(t.back=0;m=t.lencode[n&(1<<t.lenbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(y&&!(240&y)){for(f=u,g=y,E=k;m=t.lencode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,t.length=k,y===0){t.mode=16205;break}if(32&y){t.back=-1,t.mode=D;break}if(64&y){e.msg="invalid literal/length code",t.mode=R;break}t.extra=15&y,t.mode=16201;case 16201:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.length+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}t.was=t.length,t.mode=16202;case 16202:for(;m=t.distcode[n&(1<<t.distbits)-1],u=m>>>24,y=m>>>16&255,k=65535&m,!(u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(!(240&y)){for(f=u,g=y,E=k;m=t.distcode[E+((n&(1<<f+g)-1)>>f)],u=m>>>24,y=m>>>16&255,k=65535&m,!(f+u<=a);){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}n>>>=f,a-=f,t.back+=f}if(n>>>=u,a-=u,t.back+=u,64&y){e.msg="invalid distance code",t.mode=R;break}t.offset=k,t.extra=15&y,t.mode=16203;case 16203:if(t.extra){for(S=t.extra;a<S;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}t.offset+=n&(1<<t.extra)-1,n>>>=t.extra,a-=t.extra,t.back+=t.extra}if(t.offset>t.dmax){e.msg="invalid distance too far back",t.mode=R;break}t.mode=16204;case 16204:if(p===0)break t;if(d=w-p,t.offset>d){if(d=t.offset-d,d>t.whave&&t.sane){e.msg="invalid distance too far back",t.mode=R;break}d>t.wnext?(d-=t.wnext,Z=t.wsize-d):Z=t.wnext-d,d>t.length&&(d=t.length),v=t.window}else v=s,Z=h-t.offset,d=t.length;d>p&&(d=p),p-=d,t.length-=d;do s[h++]=v[Z++];while(--d);t.length===0&&(t.mode=W);break;case 16205:if(p===0)break t;s[h++]=t.length,p--,t.mode=W;break;case et:if(t.wrap){for(;a<32;){if(l===0)break t;l--,n|=o[r++]<<a,a+=8}if(w-=p,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,h-w):I(t.check,s,w,h-w)),w=p,4&t.wrap&&(t.flags?n:ct(n))!==t.check){e.msg="incorrect data check",t.mode=R;break}n=0,a=0}t.mode=16207;case 16207:if(t.wrap&&t.flags){for(;a<32;){if(l===0)break t;l--,n+=o[r++]<<a,a+=8}if(4&t.wrap&&n!==(4294967295&t.total)){e.msg="incorrect length check",t.mode=R;break}n=0,a=0}t.mode=16208;case 16208:x=It;break t;case R:x=dt;break t;case 16210:return ft;default:return T}return e.next_out=h,e.avail_out=p,e.next_in=r,e.avail_in=l,t.hold=n,t.bits=a,(t.wsize||w!==e.avail_out&&t.mode<R&&(t.mode<et||i!==lt))&&_t(e,e.output,e.next_out,w-e.avail_out),A-=e.avail_in,w-=e.avail_out,e.total_in+=A,e.total_out+=w,t.total+=w,4&t.wrap&&w&&(e.adler=t.check=t.flags?U(t.check,s,w,e.next_out-w):I(t.check,s,w,e.next_out-w)),e.data_type=t.bits+(t.last?64:0)+(t.mode===D?128:0)+(t.mode===X||t.mode===tt?256:0),(A===0&&w===0||i===lt)&&x===C&&(x=Nt),x},inflateEnd:e=>{if(N(e))return T;let i=e.state;return i.window&&(i.window=null),e.state=null,C},inflateGetHeader:(e,i)=>{if(N(e))return T;const t=e.state;return 2&t.wrap?(t.head=i,i.done=!1,C):T},inflateSetDictionary:(e,i)=>{const t=i.length;let o,s,r;return N(e)?T:(o=e.state,o.wrap!==0&&o.mode!==G?T:o.mode===G&&(s=1,s=I(s,i,t,0),s!==o.check)?dt:(r=_t(e,i,t,t),r?(o.mode=16210,ft):(o.havedict=1,C)))},inflateInfo:"pako inflate (from Nodeca project)"};const Lt=(e,i)=>Object.prototype.hasOwnProperty.call(e,i);var Mt=function(e){const i=Array.prototype.slice.call(arguments,1);for(;i.length;){const t=i.shift();if(t){if(typeof t!="object")throw new TypeError(t+"must be non-object");for(const o in t)Lt(t,o)&&(e[o]=t[o])}}return e},Ht=e=>{let i=0;for(let o=0,s=e.length;o<s;o++)i+=e[o].length;const t=new Uint8Array(i);for(let o=0,s=0,r=e.length;o<r;o++){let h=e[o];t.set(h,s),s+=h.length}return t};let gt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{gt=!1}const F=new Uint8Array(256);for(let e=0;e<256;e++)F[e]=e>=252?6:e>=248?5:e>=240?4:e>=224?3:e>=192?2:1;F[254]=F[254]=1;var jt=e=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(e);let i,t,o,s,r,h=e.length,l=0;for(s=0;s<h;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),l+=t<128?1:t<2048?2:t<65536?3:4;for(i=new Uint8Array(l),r=0,s=0;r<l;s++)t=e.charCodeAt(s),(64512&t)==55296&&s+1<h&&(o=e.charCodeAt(s+1),(64512&o)==56320&&(t=65536+(t-55296<<10)+(o-56320),s++)),t<128?i[r++]=t:t<2048?(i[r++]=192|t>>>6,i[r++]=128|63&t):t<65536?(i[r++]=224|t>>>12,i[r++]=128|t>>>6&63,i[r++]=128|63&t):(i[r++]=240|t>>>18,i[r++]=128|t>>>12&63,i[r++]=128|t>>>6&63,i[r++]=128|63&t);return i},Kt=(e,i)=>{const t=i||e.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(e.subarray(0,i));let o,s;const r=new Array(2*t);for(s=0,o=0;o<t;){let h=e[o++];if(h<128){r[s++]=h;continue}let l=F[h];if(l>4)r[s++]=65533,o+=l-1;else{for(h&=l===2?31:l===3?15:7;l>1&&o<t;)h=h<<6|63&e[o++],l--;l>1?r[s++]=65533:h<65536?r[s++]=h:(h-=65536,r[s++]=55296|h>>10&1023,r[s++]=56320|1023&h)}}return((h,l)=>{if(l<65534&&h.subarray&>)return String.fromCharCode.apply(null,h.length===l?h:h.subarray(0,l));let p="";for(let n=0;n<l;n++)p+=String.fromCharCode(h[n]);return p})(r,s)},Pt=(e,i)=>{(i=i||e.length)>e.length&&(i=e.length);let t=i-1;for(;t>=0&&(192&e[t])==128;)t--;return t<0||t===0?i:t+F[e[t]]>i?t:i},at={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"},Yt=function(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0},Gt=function(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1};const pt=Object.prototype.toString,{Z_NO_FLUSH:Xt,Z_FINISH:Wt,Z_OK:L,Z_STREAM_END:rt,Z_NEED_DICT:ot,Z_STREAM_ERROR:qt,Z_DATA_ERROR:vt,Z_MEM_ERROR:Jt}=V;function M(e){this.options=Mt({chunkSize:65536,windowBits:15,to:""},e||{});const i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),!(i.windowBits>=0&&i.windowBits<16)||e&&e.windowBits||(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&!(15&i.windowBits)&&(i.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new Yt,this.strm.avail_out=0;let t=B.inflateInit2(this.strm,i.windowBits);if(t!==L)throw new Error(at[t]);if(this.header=new Gt,B.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=jt(i.dictionary):pt.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(t=B.inflateSetDictionary(this.strm,i.dictionary),t!==L)))throw new Error(at[t])}function st(e,i){const t=new M(i);if(t.push(e),t.err)throw t.msg||at[t.err];return t.result}M.prototype.push=function(e,i){const t=this.strm,o=this.options.chunkSize,s=this.options.dictionary;let r,h,l;if(this.ended)return!1;for(h=i===~~i?i:i===!0?Wt:Xt,pt.call(e)==="[object ArrayBuffer]"?t.input=new Uint8Array(e):t.input=e,t.next_in=0,t.avail_in=t.input.length;;){for(t.avail_out===0&&(t.output=new Uint8Array(o),t.next_out=0,t.avail_out=o),r=B.inflate(t,h),r===ot&&s&&(r=B.inflateSetDictionary(t,s),r===L?r=B.inflate(t,h):r===vt&&(r=ot));t.avail_in>0&&r===rt&&t.state.wrap>0&&e[t.next_in]!==0;)B.inflateReset(t),r=B.inflate(t,h);switch(r){case qt:case vt:case ot:case Jt:return this.onEnd(r),this.ended=!0,!1}if(l=t.avail_out,t.next_out&&(t.avail_out===0||r===rt))if(this.options.to==="string"){let p=Pt(t.output,t.next_out),n=t.next_out-p,a=Kt(t.output,p);t.next_out=n,t.avail_out=o-n,n&&t.output.set(t.output.subarray(p,p+n),0),this.onData(a)}else this.onData(t.output.length===t.next_out?t.output:t.output.subarray(0,t.next_out));if(r!==L||l!==0){if(r===rt)return r=B.inflateEnd(this.strm),this.onEnd(r),this.ended=!0,!0;if(t.avail_in===0)break}}return!0},M.prototype.onData=function(e){this.chunks.push(e)},M.prototype.onEnd=function(e){e===L&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=Ht(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg};var xt=M,yt=st,Et=function(e,i){return(i=i||{}).raw=!0,st(e,i)},Rt=st,At=V,Qt={Inflate:xt,inflate:yt,inflateRaw:Et,ungzip:Rt,constants:At};O.Inflate=xt,O.constants=At,O.default=Qt,O.inflate=yt,O.inflateRaw=Et,O.ungzip=Rt,Object.defineProperty(O,"__esModule",{value:!0})}); diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/z-worker-pako.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/z-worker-pako.js new file mode 100644 index 000000000..73fb4afe8 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/Workers/z-worker-pako.js @@ -0,0 +1 @@ +(function(){"use strict";const{Array:te,Object:m,Number:ne,Math:A,Error:v,Uint8Array:w,Uint16Array:nt,Uint32Array:se,Int32Array:st,Map:re,DataView:W,Promise:M,TextEncoder:ae,crypto:B,postMessage:K,TransformStream:b,ReadableStream:Ve,WritableStream:xe,CompressionStream:rt,DecompressionStream:at}=self,j=void 0,N="undefined",O="function";class oe{constructor(e){return class extends b{constructor(n,s){const r=new e(s);super({transform(a,o){o.enqueue(r.append(a))},flush(a){const o=r.flush();o&&a.enqueue(o)}})}}}}const ie=[];for(let t=0;256>t;t++){let e=t;for(let n=0;8>n;n++)1&e?e=e>>>1^3988292384:e>>>=1;ie[t]=e}class G{constructor(e){this.crc=e||-1}append(e){let n=0|this.crc;for(let s=0,r=0|e.length;r>s;s++)n=n>>>8^ie[255&(n^e[s])];this.crc=n}get(){return~this.crc}}class ce extends b{constructor(){let e;const n=new G;super({transform(s,r){n.append(s),r.enqueue(s)},flush(){const s=new w(4);new W(s.buffer).setUint32(0,n.get()),e.value=s}}),e=this}}const _={concat(t,e){if(t.length===0||e.length===0)return t.concat(e);const n=t[t.length-1],s=_.getPartial(n);return s===32?t.concat(e):_._shiftRight(e,s,0|n,t.slice(0,t.length-1))},bitLength(t){const e=t.length;if(e===0)return 0;const n=t[e-1];return 32*(e-1)+_.getPartial(n)},clamp(t,e){if(32*t.length<e)return t;const n=(t=t.slice(0,A.ceil(e/32))).length;return e&=31,n>0&&e&&(t[n-1]=_.partial(e,t[n-1]&2147483648>>e-1,1)),t},partial:(t,e,n)=>t===32?e:(n?0|e:e<<32-t)+1099511627776*t,getPartial:t=>A.round(t/1099511627776)||32,_shiftRight(t,e,n,s){for(s===void 0&&(s=[]);e>=32;e-=32)s.push(n),n=0;if(e===0)return s.concat(t);for(let o=0;o<t.length;o++)s.push(n|t[o]>>>e),n=t[o]<<32-e;const r=t.length?t[t.length-1]:0,a=_.getPartial(r);return s.push(_.partial(e+a&31,e+a>32?n:s.pop(),1)),s}},L={bytes:{fromBits(t){const e=_.bitLength(t)/8,n=new w(e);let s;for(let r=0;e>r;r++)3&r||(s=t[r/4]),n[r]=s>>>24,s<<=8;return n},toBits(t){const e=[];let n,s=0;for(n=0;n<t.length;n++)s=s<<8|t[n],3&~n||(e.push(s),s=0);return 3&n&&e.push(_.partial(8*(3&n),s)),e}}},Ee=class{constructor(t){const e=this;e.blockSize=512,e._init=[1732584193,4023233417,2562383102,271733878,3285377520],e._key=[1518500249,1859775393,2400959708,3395469782],t?(e._h=t._h.slice(0),e._buffer=t._buffer.slice(0),e._length=t._length):e.reset()}reset(){const t=this;return t._h=t._init.slice(0),t._buffer=[],t._length=0,t}update(t){const e=this;typeof t=="string"&&(t=L.utf8String.toBits(t));const n=e._buffer=_.concat(e._buffer,t),s=e._length,r=e._length=s+_.bitLength(t);if(r>9007199254740991)throw new v("Cannot hash more than 2^53 - 1 bits");const a=new se(n);let o=0;for(let l=e.blockSize+s-(e.blockSize+s&e.blockSize-1);r>=l;l+=e.blockSize)e._block(a.subarray(16*o,16*(o+1))),o+=1;return n.splice(0,16*o),e}finalize(){const t=this;let e=t._buffer;const n=t._h;e=_.concat(e,[_.partial(1,1)]);for(let s=e.length+2;15&s;s++)e.push(0);for(e.push(A.floor(t._length/4294967296)),e.push(0|t._length);e.length;)t._block(e.splice(0,16));return t.reset(),n}_f(t,e,n,s){return t>19?t>39?t>59?t>79?void 0:e^n^s:e&n|e&s|n&s:e^n^s:e&n|~e&s}_S(t,e){return e<<t|e>>>32-t}_block(t){const e=this,n=e._h,s=te(80);for(let c=0;16>c;c++)s[c]=t[c];let r=n[0],a=n[1],o=n[2],l=n[3],u=n[4];for(let c=0;79>=c;c++){16>c||(s[c]=e._S(1,s[c-3]^s[c-8]^s[c-14]^s[c-16]));const i=e._S(5,r)+e._f(c,a,o,l)+u+s[c]+e._key[A.floor(c/20)]|0;u=l,l=o,o=e._S(30,a),a=r,r=i}n[0]=n[0]+r|0,n[1]=n[1]+a|0,n[2]=n[2]+o|0,n[3]=n[3]+l|0,n[4]=n[4]+u|0}},Ue={getRandomValues(t){const e=new se(t.buffer),n=s=>{let r=987654321;const a=4294967295;return()=>(r=36969*(65535&r)+(r>>16)&a,(((r<<16)+(s=18e3*(65535&s)+(s>>16)&a)&a)/4294967296+.5)*(A.random()>.5?1:-1))};for(let s,r=0;r<t.length;r+=4){const a=n(4294967296*(s||A.random()));s=987654071*a(),e[r/4]=4294967296*a()|0}return t}},H={importKey:t=>new H.hmacSha1(L.bytes.toBits(t)),pbkdf2(t,e,n,s){if(n=n||1e4,0>s||0>n)throw new v("invalid params to pbkdf2");const r=1+(s>>5)<<2;let a,o,l,u,c;const i=new ArrayBuffer(r),f=new W(i);let h=0;const p=_;for(e=L.bytes.toBits(e),c=1;(r||1)>h;c++){for(a=o=t.encrypt(p.concat(e,[c])),l=1;n>l;l++)for(o=t.encrypt(o),u=0;u<o.length;u++)a[u]^=o[u];for(l=0;(r||1)>h&&l<a.length;l++)f.setInt32(h,a[l]),h+=4}return i.slice(0,s/8)},hmacSha1:class{constructor(t){const e=this,n=e._hash=Ee,s=[[],[]];e._baseHash=[new n,new n];const r=e._baseHash[0].blockSize/32;t.length>r&&(t=new n().update(t).finalize());for(let a=0;r>a;a++)s[0][a]=909522486^t[a],s[1][a]=1549556828^t[a];e._baseHash[0].update(s[0]),e._baseHash[1].update(s[1]),e._resultHash=new n(e._baseHash[0])}reset(){const t=this;t._resultHash=new t._hash(t._baseHash[0]),t._updated=!1}update(t){this._updated=!0,this._resultHash.update(t)}digest(){const t=this,e=t._resultHash.finalize(),n=new t._hash(t._baseHash[1]).update(e).finalize();return t.reset(),n}encrypt(t){if(this._updated)throw new v("encrypt on already updated hmac called!");return this.update(t),this.digest(t)}}},We=typeof B!=N&&typeof B.getRandomValues==O,le="Invalid password",ue="Invalid signature",he="zipjs-abort-check-password";function fe(t){return We?B.getRandomValues(t):Ue.getRandomValues(t)}const P=16,pe={name:"PBKDF2"},Me=m.assign({hash:{name:"HMAC"}},pe),X=m.assign({iterations:1e3,hash:{name:"SHA-1"}},pe),Ne=["deriveBits"],T=[8,12,16],V=[16,24,32],q=10,Oe=[0,0,0,0],F=typeof B!=N,x=F&&B.subtle,de=F&&typeof x!=N,z=L.bytes,Le=class{constructor(t){const e=this;e._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],e._tables[0][0][0]||e._precompute();const n=e._tables[0][4],s=e._tables[1],r=t.length;let a,o,l,u=1;if(r!==4&&r!==6&&r!==8)throw new v("invalid aes key size");for(e._key=[o=t.slice(0),l=[]],a=r;4*r+28>a;a++){let c=o[a-1];(a%r==0||r===8&&a%r==4)&&(c=n[c>>>24]<<24^n[c>>16&255]<<16^n[c>>8&255]<<8^n[255&c],a%r==0&&(c=c<<8^c>>>24^u<<24,u=u<<1^283*(u>>7))),o[a]=o[a-r]^c}for(let c=0;a;c++,a--){const i=o[3&c?a:a-4];l[c]=4>=a||4>c?i:s[0][n[i>>>24]]^s[1][n[i>>16&255]]^s[2][n[i>>8&255]]^s[3][n[255&i]]}}encrypt(t){return this._crypt(t,0)}decrypt(t){return this._crypt(t,1)}_precompute(){const t=this._tables[0],e=this._tables[1],n=t[4],s=e[4],r=[],a=[];let o,l,u,c;for(let i=0;256>i;i++)a[(r[i]=i<<1^283*(i>>7))^i]=i;for(let i=o=0;!n[i];i^=l||1,o=a[o]||1){let f=o^o<<1^o<<2^o<<3^o<<4;f=f>>8^255&f^99,n[i]=f,s[f]=i,c=r[u=r[l=r[i]]];let h=16843009*c^65537*u^257*l^16843008*i,p=257*r[f]^16843008*f;for(let d=0;4>d;d++)t[d][i]=p=p<<24^p>>>8,e[d][f]=h=h<<24^h>>>8}for(let i=0;5>i;i++)t[i]=t[i].slice(0),e[i]=e[i].slice(0)}_crypt(t,e){if(t.length!==4)throw new v("invalid aes block size");const n=this._key[e],s=n.length/4-2,r=[0,0,0,0],a=this._tables[e],o=a[0],l=a[1],u=a[2],c=a[3],i=a[4];let f,h,p,d=t[0]^n[0],g=t[e?3:1]^n[1],y=t[2]^n[2],S=t[e?1:3]^n[3],I=4;for(let C=0;s>C;C++)f=o[d>>>24]^l[g>>16&255]^u[y>>8&255]^c[255&S]^n[I],h=o[g>>>24]^l[y>>16&255]^u[S>>8&255]^c[255&d]^n[I+1],p=o[y>>>24]^l[S>>16&255]^u[d>>8&255]^c[255&g]^n[I+2],S=o[S>>>24]^l[d>>16&255]^u[g>>8&255]^c[255&y]^n[I+3],I+=4,d=f,g=h,y=p;for(let C=0;4>C;C++)r[e?3&-C:C]=i[d>>>24]<<24^i[g>>16&255]<<16^i[y>>8&255]<<8^i[255&S]^n[I++],f=d,d=g,g=y,y=S,S=f;return r}},Fe=class{constructor(t,e){this._prf=t,this._initIv=e,this._iv=e}reset(){this._iv=this._initIv}update(t){return this.calculate(this._prf,t,this._iv)}incWord(t){if(255&~(t>>24))t+=1<<24;else{let e=t>>16&255,n=t>>8&255,s=255&t;e===255?(e=0,n===255?(n=0,s===255?s=0:++s):++n):++e,t=0,t+=e<<16,t+=n<<8,t+=s}return t}incCounter(t){(t[0]=this.incWord(t[0]))===0&&(t[1]=this.incWord(t[1]))}calculate(t,e,n){let s;if(!(s=e.length))return[];const r=_.bitLength(e);for(let a=0;s>a;a+=4){this.incCounter(n);const o=t.encrypt(n);e[a]^=o[0],e[a+1]^=o[1],e[a+2]^=o[2],e[a+3]^=o[3]}return _.clamp(e,r)}},je=H.hmacSha1;let ge=F&&de&&typeof x.importKey==O,we=F&&de&&typeof x.deriveBits==O;class Ge extends b{constructor({password:e,rawPassword:n,signed:s,encryptionStrength:r,checkPasswordOnly:a}){super({start(){m.assign(this,{ready:new M(o=>this.resolveReady=o),password:_e(e,n),signed:s,strength:r-1,pending:new w})},async transform(o,l){const u=this,{password:c,strength:i,resolveReady:f,ready:h}=u;c?(await(async(d,g,y,S)=>{const I=await me(d,g,y,k(S,0,T[g])),C=k(S,T[g]);if(I[0]!=C[0]||I[1]!=C[1])throw new v(le)})(u,i,c,k(o,0,T[i]+2)),o=k(o,T[i]+2),a?l.error(new v(he)):f()):await h;const p=new w(o.length-q-(o.length-q)%P);l.enqueue(ye(u,o,p,0,q,!0))},async flush(o){const{signed:l,ctr:u,hmac:c,pending:i,ready:f}=this;if(c&&u){await f;const h=k(i,0,i.length-q),p=k(i,i.length-q);let d=new w;if(h.length){const g=U(z,h);c.update(g);const y=u.update(g);d=E(z,y)}if(l){const g=k(E(z,c.digest()),0,q);for(let y=0;q>y;y++)if(g[y]!=p[y])throw new v(ue)}o.enqueue(d)}}})}}class Xe extends b{constructor({password:e,rawPassword:n,encryptionStrength:s}){let r;super({start(){m.assign(this,{ready:new M(a=>this.resolveReady=a),password:_e(e,n),strength:s-1,pending:new w})},async transform(a,o){const l=this,{password:u,strength:c,resolveReady:i,ready:f}=l;let h=new w;u?(h=await(async(d,g,y)=>{const S=fe(new w(T[g]));return J(S,await me(d,g,y,S))})(l,c,u),i()):await f;const p=new w(h.length+a.length-a.length%P);p.set(h,0),o.enqueue(ye(l,a,p,h.length,0))},async flush(a){const{ctr:o,hmac:l,pending:u,ready:c}=this;if(l&&o){await c;let i=new w;if(u.length){const f=o.update(U(z,u));l.update(f),i=E(z,f)}r.signature=E(z,l.digest()).slice(0,q),a.enqueue(J(i,r.signature))}}}),r=this}}function ye(t,e,n,s,r,a){const{ctr:o,hmac:l,pending:u}=t,c=e.length-r;let i;for(u.length&&(e=J(u,e),n=((f,h)=>{if(h&&h>f.length){const p=f;(f=new w(h)).set(p,0)}return f})(n,c-c%P)),i=0;c-P>=i;i+=P){const f=U(z,k(e,i,i+P));a&&l.update(f);const h=o.update(f);a||l.update(h),n.set(E(z,h),i+s)}return t.pending=k(e,i),n}async function me(t,e,n,s){t.password=null;const r=await(async(i,f,h,p,d)=>{if(!ge)return H.importKey(f);try{return await x.importKey("raw",f,h,!1,d)}catch{return ge=!1,H.importKey(f)}})(0,n,Me,0,Ne),a=await(async(i,f,h)=>{if(!we)return H.pbkdf2(f,i.salt,X.iterations,h);try{return await x.deriveBits(i,f,h)}catch{return we=!1,H.pbkdf2(f,i.salt,X.iterations,h)}})(m.assign({salt:s},X),r,8*(2*V[e]+2)),o=new w(a),l=U(z,k(o,0,V[e])),u=U(z,k(o,V[e],2*V[e])),c=k(o,2*V[e]);return m.assign(t,{keys:{key:l,authentication:u,passwordVerification:c},ctr:new Fe(new Le(l),te.from(Oe)),hmac:new je(u)}),c}function _e(t,e){return e===j?(n=>{if(typeof ae==N){const s=new w((n=unescape(encodeURIComponent(n))).length);for(let r=0;r<s.length;r++)s[r]=n.charCodeAt(r);return s}return new ae().encode(n)})(t):e}function J(t,e){let n=t;return t.length+e.length&&(n=new w(t.length+e.length),n.set(t,0),n.set(e,t.length)),n}function k(t,e,n){return t.subarray(e,n)}function E(t,e){return t.fromBits(e)}function U(t,e){return t.toBits(e)}class Je extends b{constructor({password:e,passwordVerification:n,checkPasswordOnly:s}){super({start(){m.assign(this,{password:e,passwordVerification:n}),ve(this,e)},transform(r,a){const o=this;if(o.password){const l=be(o,r.subarray(0,12));if(o.password=null,l[11]!=o.passwordVerification)throw new v(le);r=r.subarray(12)}s?a.error(new v(he)):a.enqueue(be(o,r))}})}}class Qe extends b{constructor({password:e,passwordVerification:n}){super({start(){m.assign(this,{password:e,passwordVerification:n}),ve(this,e)},transform(s,r){const a=this;let o,l;if(a.password){a.password=null;const u=fe(new w(12));u[11]=a.passwordVerification,o=new w(s.length+u.length),o.set(Se(a,u),0),l=12}else o=new w(s.length),l=0;o.set(Se(a,s),l),r.enqueue(o)}})}}function be(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=ke(t)^e[s],Q(t,n[s]);return n}function Se(t,e){const n=new w(e.length);for(let s=0;s<e.length;s++)n[s]=ke(t)^e[s],Q(t,e[s]);return n}function ve(t,e){const n=[305419896,591751049,878082192];m.assign(t,{keys:n,crcKey0:new G(n[0]),crcKey2:new G(n[2])});for(let s=0;s<e.length;s++)Q(t,e.charCodeAt(s))}function Q(t,e){let[n,s,r]=t.keys;t.crcKey0.append([e]),n=~t.crcKey0.get(),s=De(A.imul(De(s+ze(n)),134775813)+1),t.crcKey2.append([s>>>24]),r=~t.crcKey2.get(),t.keys=[n,s,r]}function ke(t){const e=2|t.keys[2];return ze(A.imul(e,1^e)>>>8)}function ze(t){return 255&t}function De(t){return 4294967295&t}const Ce="deflate-raw";class Ye extends b{constructor(e,{chunkSize:n,CompressionStream:s,CompressionStreamNative:r}){super({});const{compressed:a,encrypted:o,useCompressionStream:l,zipCrypto:u,signed:c,level:i}=e,f=this;let h,p,d=Ie(super.readable);o&&!u||!c||(h=new ce,d=D(d,h)),a&&(d=qe(d,l,{level:i,chunkSize:n},r,s)),o&&(u?d=D(d,new Qe(e)):(p=new Xe(e),d=D(d,p))),Ae(f,d,()=>{let g;o&&!u&&(g=p.signature),o&&!u||!c||(g=new W(h.value.buffer).getUint32(0)),f.signature=g})}}class Ze extends b{constructor(e,{chunkSize:n,DecompressionStream:s,DecompressionStreamNative:r}){super({});const{zipCrypto:a,encrypted:o,signed:l,signature:u,compressed:c,useCompressionStream:i}=e;let f,h,p=Ie(super.readable);o&&(a?p=D(p,new Je(e)):(h=new Ge(e),p=D(p,h))),c&&(p=qe(p,i,{chunkSize:n},r,s)),o&&!a||!l||(f=new ce,p=D(p,f)),Ae(this,p,()=>{if((!o||a)&&l){const d=new W(f.value.buffer);if(u!=d.getUint32(0,!1))throw new v(ue)}})}}function Ie(t){return D(t,new b({transform(e,n){e&&e.length&&n.enqueue(e)}}))}function Ae(t,e,n){e=D(e,new b({flush:n})),m.defineProperty(t,"readable",{get:()=>e})}function qe(t,e,n,s,r){try{t=D(t,new(e&&s?s:r)(Ce,n))}catch{if(!e)return t;try{t=D(t,new r(Ce,n))}catch{return t}}return t}function D(t,e){return t.pipeThrough(e)}const Re="data",He="close";class $e extends b{constructor(e,n){super({});const s=this,{codecType:r}=e;let a;r.startsWith("deflate")?a=Ye:r.startsWith("inflate")&&(a=Ze);let o=0,l=0;const u=new a(e,n),c=super.readable,i=new b({transform(h,p){h&&h.length&&(l+=h.length,p.enqueue(h))},flush(){m.assign(s,{inputSize:l})}}),f=new b({transform(h,p){h&&h.length&&(o+=h.length,p.enqueue(h))},flush(){const{signature:h}=u;m.assign(s,{signature:h,outputSize:o,inputSize:l})}});m.defineProperty(s,"readable",{get:()=>c.pipeThrough(i).pipeThrough(u).pipeThrough(f)})}}class et extends b{constructor(e){let n;super({transform:function s(r,a){if(n){const o=new w(n.length+r.length);o.set(n),o.set(r,n.length),r=o,n=null}r.length>e?(a.enqueue(r.slice(0,e)),s(r.slice(e),a)):n=r},flush(s){n&&n.length&&s.enqueue(n)}})}}const Y=new re,Z=new re;let $,R=0,Pe=!0;async function tt(t){try{const{options:e,scripts:n,config:s}=t;if(n&&n.length)try{Pe?importScripts.apply(j,n):await Be(n)}catch{Pe=!1,await Be(n)}self.initCodec&&self.initCodec(),s.CompressionStreamNative=self.CompressionStream,s.DecompressionStreamNative=self.DecompressionStream,self.Deflate&&(s.CompressionStream=new oe(self.Deflate)),self.Inflate&&(s.DecompressionStream=new oe(self.Inflate));const r={highWaterMark:1},a=t.readable||new Ve({async pull(h){const p=new M(y=>Y.set(R,y));ee({type:"pull",messageId:R}),R=(R+1)%ne.MAX_SAFE_INTEGER;const{value:d,done:g}=await p;h.enqueue(d),g&&h.close()}},r),o=t.writable||new xe({async write(h){let p;const d=new M(g=>p=g);Z.set(R,p),ee({type:Re,value:h,messageId:R}),R=(R+1)%ne.MAX_SAFE_INTEGER,await d}},r),l=new $e(e,s);$=new AbortController;const{signal:u}=$;await a.pipeThrough(l).pipeThrough(new et(s.chunkSize)).pipeTo(o,{signal:u,preventClose:!0,preventAbort:!0}),await o.getWriter().close();const{signature:c,inputSize:i,outputSize:f}=l;ee({type:He,result:{signature:c,inputSize:i,outputSize:f}})}catch(e){Ke(e)}}async function Be(t){for(const e of t)await import(e)}function ee(t){let{value:e}=t;if(e)if(e.length)try{e=new w(e),t.value=e.buffer,K(t,[t.value])}catch{K(t)}else K(t);else K(t)}function Ke(t=new v("Unknown error")){const{message:e,stack:n,code:s,name:r}=t;K({error:{message:e,stack:n,code:s,name:r}})}function Te(t,e,n){return class{constructor(r){const a=this;var o,l;o=r,l="level",(typeof m.hasOwn===O?m.hasOwn(o,l):o.hasOwnProperty(l))&&r.level===j&&delete r.level,a.codec=new t(m.assign({},e,r)),n(a.codec,u=>{if(a.pendingData){const c=a.pendingData;a.pendingData=new w(c.length+u.length);const{pendingData:i}=a;i.set(c,0),i.set(u,c.length)}else a.pendingData=new w(u)})}append(r){return this.codec.push(r),s(this)}flush(){return this.codec.push(new w,!0),s(this)}};function s(r){if(r.pendingData){const a=r.pendingData;return r.pendingData=null,a}return new w}}addEventListener("message",({data:t})=>{const{type:e,messageId:n,value:s,done:r}=t;try{if(e=="start"&&tt(t),e==Re){const a=Y.get(n);Y.delete(n),a({value:new w(s),done:r})}if(e=="ack"){const a=Z.get(n);Z.delete(n),a()}e==He&&$.abort()}catch(a){Ke(a)}}),self.initCodec=()=>{const{Deflate:t,Inflate:e}=((n,s={},r)=>({Deflate:Te(n.Deflate,s.deflate,r),Inflate:Te(n.Inflate,s.inflate,r)}))(pako,{deflate:{raw:!0},inflate:{raw:!0}},(n,s)=>n.onData=s);self.Deflate=t,self.Inflate=e}})(); diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/basis_transcoder.wasm new file mode 100644 index 0000000000000000000000000000000000000000..71328587dfdfaa13f30072ca2bd8d658938ab415 GIT binary patch literal 500839 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%0AE8r7Pddr!xOz@H2nYEofc!|_CNZ^S$^2Sx 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ⅅ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%0A|_Zcaav1H>G(>H(G9d3Np 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%0Dn%99V!O$F<Zp5@}68;qG|0yo@O|_FS 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 literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/draco_decoder.wasm index 4b438284515d70d6b911330c97df5bf6125915e0..4138f55900cb8b31a7112def7269112a66a846e7 100644 GIT binary patch literal 285948 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 X14Mx@pyM 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%0DfH>;*FvR@= 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 literal 330634 zcmeFa34mo+UFUzdw^ZG#>eoq=bUF>W@1+Bk0Maamh&c95x|6h!bWA#eGyeabCMlrz zt-2*nlFqOwD$Xzv6bHnB&IDN$S=`a6C@4{b5Jd!xf;(c|7Z{n(_xC&Zz58Chs;=sE zLTJ*Jyt|$CcYf!$o!|MLXy=iAaTG=I-^RTglH<qY<2S^|Bi%*Z@RT06m%2nZWc+ez z>SC{>{zG&_!(K)=L{+X^!YiIFBUjaMs|vo=zug+$(6(&HZ@bNk*QMoetiD@s<wE7R zS!O<_$8WV}-DdSCx9OpI{1#>5F1{tc?S|x*<MAz3xoU4!U}(TCYQQbYE3<Rbx&6mx zHh=5Y<yBiR+rI6Z9oKBXHa#BcZTq_I<z>&|U3i|b=N(s-&krveJ6~|%@O%_2@$}sO zy*m%TXzr@HeFqNT9OYK*i{|FHADG{{xBl{M%d~C(WjpupKQMpA;RD}Z|9Z}j9XoD( z$<7@+_wGG#<IefH9dj?aaqi&!t^@m{R7IW{z8^e#cy7nBU5Dq7?%W%-^<^r2nSU`w zMh(5nd39uNe#_y*S04zi)SH`++(_|Hea6Pfx;b5ccd@@yVIkeuKEq#GVV*T4YVPp< zTlHt{nA>;c#>2Y~&d=@Nv2SkQjR$Yu@q%41iZV51&5naKYi{RFJAlZMgL60Tdf~1c zs}5D4_RQV9<3<wA&sFWJz8u(pV|X_xh<^18vTih~6v!vh?TM;v%<p``-nsZ-{JHdV z2DwT9e(BC5bJciSlIq2MjgL0cJWi50&-gdR{|)}dQI`3C*);#MI7*VJ(MTH2WJdpT z0GqGs<oq_`EXy<AW%e_ZMKe)GajW8#M9eRW&(kzj(fUVLWs7;Gf4a&0|I`pN`OoU8 z5uXvA$-71r#~E{#;<#hhrW8bzvMjFupT!N{@naPwNt1H;=RJv2WmF*~@|R6&N|MP5 zRT;I`tce;kBv17aE;9{%Yc=h$)oSq=^Q}cXz0{k8{%6hTF%uJ>&N8>`Ud8aA+6pYF zs@Y7UnFMgEF%+z-LbK8|i4$vI)Sy)<sbc^hHK>Mv6yTi+cPdaN*jtsNK6yGyO@YBA zFVpy}v*TvQ7{rvC#cLZHCjS>PO8h_aA2m@!!<v$*w+1YRo@;~V(HWtFzBehSVIWT& zuro7p=Ah?GxJhG%iUH0*fthT&kv7g*w=SEE&RzdlhK0&gutqn0O#r>16lIS~8rd4U z)@bK|cVe=cHJg(&T-&rLjkB~Z1W2Q7=DZl3oSaz0eXH&FMYl+s=QWSV=SMj|v3?SM zN<CITt=pgZLve@sF0ymu&i(v9f8&dzUu~Qf-t9WF<KTf^`{(Bl@0h>&;9T^9#&hd) z{RO-B-?XEgpFh0o1xM%Sw%s_t^Tl&F9X_ys`{AAYkG$}};eAVg+!$>sS61BC{k!Hb zKYU<czs?;`jV}NCm6fq$$4zrb<_{mZnLcieu2^9U4jtXOe}30@>=aps$ju+2j4Q8M zyanG}OFsrI<3DeVwqCZ<BFBQ}8&+D%2ym7F?f91O+qHkkv7LL5&M`25+*olZ#zOa* zEA0f>_o6w*<xd)$7SGxrjLkdecMkA$`1Qu<xnH~7B8EYC)g{Z#H{YKunqoBj>aSUl zb@SYf2X2}>eCg2_zL2Rn{IoIJcEJfU2sd^-ExP7OCrCHkg>QcHV#z}bygAzsTs3#( z#T0+-)0dh48j+OC_8vHT6S=PIogmj?K(hU*izd2aZoW?qF1`8s{kskwo!hE{uU|L< z0dPC&c`o03VCVeh2M(8e_gcG-?09<gEsFwbVOEkqZ+SIsz3I}MubP|Rc@qe?W&ix) zo5}k8r!1>u%6j$AeRFi{TQ6K@4$}VTWj1X8{8KL;0l|M+cGjmqZ6xcrEu6690Kawr z{3Rnf|G$fu*SGzn1NLpp17ih!K=c29-Lk5>o>ne|&GPdu0M3r(!BzDxfX)+^)nqz% z!;;fw%YG4)o35BUux}15+%Br~)M)2LOO<~4&Ku{%cx|dbJ$k|8mrC3R^HZZ6pRrWJ z?T2?ks`t)ahXir(NWc82MK>+pf$R3{I@q7^eQHey<`!?$FkO4$7%V%y^Tq>437-D6 z^6=rEH}BZI;LXP9MPmr!f@IK^ZwU<WGmVW4d%qyVaN~B3ncfSs9NG09VidcdHokbn z*;+Sh&vfF6C(Kmq!k#g_NX@AgIo$reV~}(tLumcJ#all#2vk))FWLGkQLXj+7jJ!) zdbstw7H@r(p@RJ)LrZHf83uiLr0rv7SO85(Q)~KxMR09U{&33=j=}!n!b8IkjhT^3 z=#;M3^!f`LKZYfaW~()S&lrL{ntZqeduPYvWxW{{<}A^LYM5;PDsS~-=`K{MYF*gB zL>H>$!(G_5L>H<Y75XfK{AzI>e`?Q*BY!PXt^EfULH=6m;pQJ)1o>+jDjZr!K`U<3 zC(TGo&R+&^Hb#dR&YFeEhFf)H{Q|r&CS*Swqxtj4e;zL6iiNYo^6x*oZ^zC`f0ZhC zv^%~yC43<~P-%`Wlvw+PnYOG%-@cH8Rc!H_kIo(5g&5CRZ9Z@mOO*?QPm5l%5aY(= zvD85rym{dmkI4Z}RaJb)vYI7+y#Ga2p8tB{JXh{KGTfD07IK-<hLNYL;nov(gVeQd z+_tPH4R_=C!YMb}q|xV%(e3d<Iy{={>ZAMAkzF9iQ=|VDpSUl>xcSm}!x)@%HDO0p z7Z~-jc;Wo)e;zLK<?%wr-ISZbTm<?04}B@hRN;-$E8>OIbR_%8<HqPa#{g<1(Qq5T z>%^7xXQmmS0KqFyT*(V=#&CY%g)hWLOos1XW(Mp*yKa(5^*!-I#2x8|)VHcZ-y1Jv zizCVRV+Px~7lG|2ihtFKJ1t6c<AHq#5A2`YZ`P&nix(2Fkvald{`M2L{ivzOJ9eop z|2<yFuB=?w%xkwBqyG^v6iaIfhDY{_MPTCPE+n~2Hbcn|%3feZb)li-y7`^+M~`62 zs~h!R9Y1ctlnM!@`q25S7qX3zVD9kY1BZ9)JMtn@{m*zI^9jig?BV-s#thB39N2Z! zHS>o@T6AP<y+L#8)lHIz#u%PVA1k+Szjo`T*KgmlW9!x5Qa*R<<{jIwEw8@r@@>~% z6}>jze6odIy{%Tx9r1Hdww!I3Z7;9fviaI=SJ%pWU3~S)miNuqmsfA!`k%|~TZc;g z{&>iMR|DHP9kznh6<fAlwPpLY-@0S_w_dXaXblM~Cn)2ZZCkJ2zT>jzZo7VSbVvNG zMfx+YcE+o``ikqHTVA{4sx8-D8GU~|WDcv<yHMh>A-`<fbGKa^y)GUyIG#A$6<e;} za_!d3q90gk#sDq=G$c-+xW=nN!t%Lva52Cx(!p!CUAI*O3}A;WL?^Cs`<CbLxNO_D zYd1%)A7+BJtUfO<)AZhQ?X^JiwTliwEop@_*Ob?mAkCI*qaTci)U@$6Y~2<r`Cr4# zdwl9`&!Njh63h5>*I)gdtG7Mx>K)&*<=X26r#CD*q_rMgfAw|OUvtg2YqxLN+|T&N z_}n_?z6f6UqP+)RuygN@y}Mp;WArasW5){*&&@@Do2}Zhcki)%J6>?)+jkz^vFqti zi+;V)+5x{}1v>hC#;vX9Mjvdnb-VAtvAO6&O2LBf+<f#KjmC~6FF3p>`pw4VO*gZw zy?5`9UAv+WH}b*LuIQe|RPAwB^jnQp_2*sW`0d6-_3BvkJA=ZG?TYRl6n2c19~l(J z<F4p;8`J%qJnxD=+L#%7u`Bx6pgv_$qWc<WvIfK|@vb8;29`JOx$Ypsee{?dP;H;v zcktS|`Hj)q{P5BJ*Bm%9e;w=1(XTafy4?SGc3V#@Y=3)n)+9yUxCa9=Ks#f~9<HVM z1Bd6LH52xD-A({^CM#_(VuAj7_*`7&t^%KJOnkf*N9Skx=hEM6yd}OX{)PB^`Te!{ zza_6qu6$kcy5z1{|KAn=O!5}~|LNpslAla|j5lw!-!~_3;a*vm{{9w9xzdZO-Tq|q z=H!no|6<pFwz|JF{Y?7VRN22LeO3B>>8sNp;OWZOr$3$ka{9sa9)I|#U;ZfllT=Oq zYZl)h$bPx;dnf$+{l<^PZ;gL8{<-+)<M+qE82@Vgf%qS|{&W1r`2WWL5q~MZJ$YsF zeaZJH?~i{V`B{G7mb}}3-_GxkBtM$GVUf4LXL<h2em_Cl`;$K=ZT<S!;aS&zO8$j! z?~lJX{qO1jNMD=Yk-jed{`9BPyVGCqKUHr(o&It9SLvtI-)}tlzmGS5CjR^QALD<D z|0Vve<hzsaNq#r^X!5b-?~{K>{xSKx?C-OG&R*U4$;QVQ`TK*$>yuwdem?oR<UPqd zlK-9jcJf=vJ;{fX4<x^w{CV<+$)6^FlKgG*x#SNT<NrR<XuPxW{>C3R?u_3Y|L^$! z#6K1Pbo|Tlufz|;e;5CI{Dt@x$#*8NP3{PP?@N9v`HAFR$^S|2N`5%GGf^&m`_1IT z$*(6LOnxQ#)#R6wyY2mV+V7j=&m^C<yH6#bw(H*{pSSB@CVyqu2a>-_UY@=peP#OH z>Hkb$lfE~7U;2~jyVLiiznK0~`t#{8r0-8Zkp5cwo9TzskEFj#O4a%buCGYnnf-Y7 z?(BE6JL7lJ1O5I|<8J<bksht&?~{!mjejhDSN4(YlMVfSs`1j~jmi7@)9)LTpUCdb zKE>PW@6(O%P3}wH+xUgXr|s{L8t-ZReB+NA_cz|%_&I(j|K#2?KH4}pj*p+;?8fIe zi)i<T=K0NX)$a1(p$*LfXOrmsX5Ng7XhSofv`Z0hXyu*g{Pvb?6R+DmPvo9tQpqRt zU&WO|1vV(DLxDx37hM`XGa-8!U7WOwr1NiCFD(x|M<sOL(8!Zb$)+ML^R0SOq|b`- zBGqj-n@SqG<ouGLqjvS0oi{dm*~KcaXqLD0?<I#-EGaHdvZ*-dzalG=BJF&zu}-(? z?lO8-6csVmU0g<2bh&v_l$X)f)Y4E#SLH=Cn?#*AHT*gM9b78ZiLB~GR!;5iHPwNr z$WFRL4ewB6s6#DvsNo%IE!LsNphJy%hl*zBH?yG*Wg{K3=ls5}s1B_wnheJ>y7haZ zTSB(Nk*&Eo3je+?jfzIu-rY+b|I!-%WsZMoAOAAPzqH7Ne;JsOb|VcJ7lw=X0sm~c z3=h(xK3t?2;9taWWsZN~OCSGIhU>#w7gQa>zX<$GYxo!CpT<cBAHXn;zG8aDxIHnA zy6utvwMY8b&i}H8j@CPyUkx9phL6+9PqU^^v*yBS);z&9YYwJab7-11I`<5w*_EPB zK3;jz=nrKz^BQ3&edhfD4pJf|qO8`{rbtQVUCq3!%|{YN$>{1j&^_PXqi>ppnI>Zr zh~|~q@v8Icd(?nWfYJDD=?fDk%QbP!we#iLqfTR+fh4IM(O7%V|4ob{0g{4;U{=Ie z2(V=aczEokR!^_V+jNuYcsb8p)(HCa(J)lg#+sNijf&<K(^1Z_6tPmqvq`%bTe0ok z-IQ`-C_<MuSk}w+rD$}XsTYmTn`yoEmL`!qSN5nEZ<%ItbJuN7MLC7%MWWtrDm8II zgv=Wn?J1}B70FfA2U1P#-Q9CuQ-KXumgld|;<iJv*XT}yb8&BCPnjI;!GlGxTHgJJ z-ccNFGpOiwVJ~~pbC_iUb27gh=(jZ}@QA#ZQO3lc-h@gM7X=Q*MCU`|gp)u}$>YMf zw^ag!fC1fT0f(r(Wp@!%>9O+o5hVo%e1e&Jnnd55_B{reg_Xdx5L68W264uZDy+ef zL5&85YxMdBHo95SurXn%+uqknjXi{ebX1~F)*3+@gf}hC7CP&f$S!5nW!RhLm-v_V zMGDn+)ZWEg8SJ!-kM^>nDG39n4t4;qtl^n@Sw5QE8sB6NB=cg<hI3$@DsLGp@UGD7 zI%G72$4VeWXS)$VG4!)0t3ZY+7H*TtfC2_u4Tfp2N#ka~h<3MS7?JJifh<A?F+*lU zdyo3pt^g<0FIoZ{BSF&uvrR6CPP!0C&{d;c;(36?AhuPFE#rBLZwNXKK{Eq7sY9pL zOA(X?*$grOv?hd^EC#Tkmp1+m6J`>O(}4h$ko<*kMUw$g&tMYkE&zj1jxp*g9Tk2H zb0a}bgXPE#!1naSn_GO#9IL@C;afujspSp`jaWx>#CfVga+!iAQEq5b)3R7Y)OK&2 zk58VzGK(ihW+^S35H5vzn)|?jt?{^dN<#WEq51%^x-!x4ismV$wN+X*Puqies^m;u zb!yx^z0KxnY*U1!-qG4T<$H6_f*JZXarE`EurTo%nlKVWGn4}3-D;{AI5bbK8EIkj zRFfbrsYE@mH6qMYFh<Y}(>1aupQjUbT+*zpuuu{f)AM-I<SsY*(4V0#&CpRC)a;BG z%ubEA-q$fv)S9NY_tfWQ00s0@!y<@Os3^{$GHRgs3a8f#@BpmU_=p;TWaB8cb^i3H z*L92tKv{xP*MO2g1Fac#@}H4Wgx(#$tT86q0sE$Su@;<iG0!gTe6y?CDAg_rMm;!x z=L<=Z%qAU1A`yE?`tl@Nx2dLlHL=N_^Zybj5+~D2GfiP^j3sLI7ZK5{QWI7*!cn<? zH@HlxQRgj<bv3m&9nli)d5N<B?}IM;tqB}%fgGGTfD!=_fu?2}NQ_Ovt&>d&EY8(4 zwED_CkaSI(=7N~d`?`8&+H^9co{?gpo{6;t^8n-~sAt0>xy!#L+8_#C`T1XY-`h=h z$Ye?|c`xfBzETcUw{y2YFbuQFZ0F-h7RPh_4{4Ez?8GZbzmTK;2ulzai>gN0p7WPU z764MM3Qt-lArC1>2C1eiu?>S%tD736nhq%hT0yD_1A&Z7A>sn0cpo6u?(^^lBGtf< zLW%*TGJ4po3@Ob3sgu>GW7ntSA${8HIVP*a0cy>F2oIV8dRO{15D(3e<Q)b<63G&S zus~m^t8J|?2$kAq&-r>yaFBjBxdB2cIbJMpYIkQt8Dk9h5t7;AfynF*0JT>kvqlO# zmo6Q@to2Lbms!7T^vflF*(9an;^ay$$1hHvi{*l83%Y3@+Z3*>Pd-(UN(CSgth_%$ zV=#3_&$Jmq@X3ywl20H5E*PPoAQVH@I~#;?n~?{Fp{8p|MG9i3X<=f5CW()z1E@p@ znTD~K0Q*gY$HE?yazkHxvw{!{PgKyFkP~`oZAo1bTt-e;?NGB;m{XvY_zcZW9m26B zE!hG!9plc|TEF~7{-H*^wxV2S(PW-?zRu*$4GfAhl%Hh`rUh+Ciw($(9wdrN+bv~b zY)bJ2#}V(FG@vUMamnuPDlU8w2btR4UCm|9?(P{}*6!|}$)(ucg{=VA?qj%o0Ezf4 zuJ>>~+vo-YDTTF*36+96T7HO6lf^`LZPDn0Qr$+nsaQp8z?8-@4L|oK0&{uZq4`55 zU~-@C?Ipq<SL$>Zl{|HRE-O|mZ-*bDPcPe2o;P2fcNEZ}rXVhk<`QKk*O|(7MwRQF zB70769g1<>#X75u$%2fs*pl%v%D5(EEY^X?=g6jj>Qg4ld={U|=$im+TAa<j+k#Dt zObQ9)Qe&VNY8R6b;BeO{CMf+IB_2lQlMtQ*9C}Q)%d_L<anuj8YO*I~x=-_6HwQwp z+<{}2Wc^B@{9cKsXT6fiVp5GnrnFWdOdhi4dU9*?vI{W)V{w=&)~d3!m?FRKKtj6o ztU`#!U<moT33N@$j2I#lcWU3(X@(j-%uFs(e%MX(k{!$xg&MS0>M?ZY)vGT|%u1h? zulHM&aS=7wqqtuq5m_{%s-0o!Y!U(?JlHe<>ijhXv`*LF#!{kYG<o_KT7Y~_Z;}yU zx=+I#dwFkWZ&%9%?Li~jgGOMI1H5h$fx1zDFLg|mHk=@?XL~xA$bOTB1q7xSE$F3E zjr(Q|<*8c~0O@3y^ENvh^iOIBU1oyD<;R#stGH^ybqe$kFpkMI#s3o!&Tf=$N>uzR zx&V%XVVWXf7gckUyU{=$WX@-%#0hSa7trJlZYrfbqnm2Mf?<*}Ho0{gwb)<N!n8a? z6eQ54e7MSqP$j0GP^FEGRS8ues*<U&ph|%ff-yyHv@zXeZD1hO7)q2eCX{T5rv|3Q zjDXt2G9J^snF5M61?Az>#L{ht)%<!EPYsDRh6&S-2{Xb3P+%{l3n6Mfut+X1!1v1! zQ(^q1Xge2#5!x&;#}}p>?-IZO+3rrSfM;tIAuZJ+jYuq{(LiFHvu!4)U;}BI$TR^| zFz<MpqPi4qCUd)JcN2q&nJy-Z397X*5-^||aC@^ewuCU$E8;x`qozTf9+)w$W{+SI zl{*$C8v1}mHl@Iksl`#r=!PJK5tad?C5}q4VMss;8mqi1>{<bhro+6SN-<Z`3$uJQ zma4*RTUJFnQU!*gPDy8yZb~f;Yc=IkY6?6UF7a%HXse`X?53G!>=CdKEQK$VhU2-& z@ow3X4UR?CNF?PL5(SN-AQJ@yYnK7AozT@v=y1vGQ-PxN#bd*xsTv+dy$Mki!z1dv zT&R3PJOY6rTj$qMNh3SyBP+zB=K{OQWz*F?uULAdkC6-clEo!tGbgaA3A=3YM3D6g zbEh&e{tVo2ppi`%yin&eUa1M4^Ff{|3LHfqDj0)25?Vo?e0j(-X>7-lM`q`=bLm3l znHoVJt3qU9X;K%EXSfQ)ok0~?7Okw+ZcINTpj5L$rFL<Ka0=41+CZ^87-;~D*wBPf zsU1*hVhEM0CihWE^%yFdOa?Pl-f4PlrXX13u+_?C+J_jups5Jn14{Ma&?{MpUQ}=b z^unCI;bBFu%N~04>Q}Km^b%(idT|9uG!;%QdM#W*d6=lzS0j3De(2GwU&U7jdhNtI zD8`3}jlo9BDNCTxJxBQ2<k>QMVy5cBf@YH^^%5jZN$<%f=&*#V9vNnf?DFXtriKuO zxWjrCyk8<;oZm|T5L*>_t`XR%ycgA1%CwA`BD1WwP~GD5fI2pXtO(aViJ_j6{Njbd zq(HKbA=xulT*2CqbNz~QPKBIkJ}c}LfCJ<JJQCDQQR#OKL3MG6yrG3)Y@)5!yf6-; zl}1<E02VRkO&iZ{3{bxmAL=FvipSs&S1Ix$U-aU<WC8Sef!0qpj40iV5lv>JsC?Z= zKltg!UPR-y$BO2W@CdK<_eV%99gBP!twb42pQBY<nKF26mbV=0P4e9rHl=Y*?lE&B zRZtbGP8si+Au>*+wZkVzN!gh%k|W&&F>xvh|LFru@BYD(fmc;iq_{HPSx*bou1c2E z#|Ga4$SOS|)Cof|S0aBSIvv{5OXzX4m_8&0upJhVxI38VwApdK7gePy^WZ7og5aLW zxd5JMC1=bAl$?a}ipk3lTefagUPxDBCWyPGX+>5BMH?kqab}Y#=2RFRWH&8bu@rAB z>t>eYYk14j)`UrSIsH_zjP8U0-MOPNo!T3u`069KnZ~?mJUNO?5%eK7?L&=I2~DYq z(#;UONzPry-Q`kF<f-6YMyrgxBfLt=3so3%9;-*UWoo4m3K+1+huh8N(rpUByiLgf zrYs03Hq7p-7>2eWkyO`~03w@qF9L1pAB9YTQjwvnuX(1_6aZpsXKE{<yiK&$H$gS@ zxo8DgtKSt+u;Pce)L2i%BWu`0z;PuO)X;$U^T}E%u+T(EUInTEAk&h2twrF2*80W7 zTs1VMrJp!FF(ypyW1gtg^1ip-_qO;sRA|nObQ^G(2IHyHlJECL!3{wR?TNsenz064 zNg7^4-fQqWJWyQO?tqTvhaQMJcLJyK<xiHdl9cy%%0G=dER!~{QlVflfYQlY3<Se3 zLp3ro8c!^57E`IrijAENLzghK-Ho9Oaf!4TQy!Njn0|PKSD1q0iw%j?9N7VsR#c+M z+;ss+FmA#vbM|r92&Nrcuv!TYSo7=wt-Y6sG2jqD#gPiDd}4T{46`WHH<b;RFnD5H zdi%49Ex}hHg~b?g^|feOfr{9GSwd-<?WR&`aoX&Aw1jd%M5^dDwAL>BWudt;>hO`U zk`1s2J|k#HTA4>hQu*k<n2P{kTKSBmLd8KbCmbx9QZ!ijq%l~`S*>3~o~X3ebUkEr zi^cy8V49UvGojsgB@}ecJw%Bd)R^k42RT8|<%U4_Gc^~x%4)3)k;ZhhU#`TL6$;+@ zS;&`$RD8f>VuNz98c@FS8FpeASK%Y6<-d^fDOJ6~Rh8lTJPj)FgEN|rTyc|l*$tXK zUE!Wt3S<Q@c<Ow;rHu2}G~;O*iY75rddp>n!<ZngjyY$&V2HtWC=ESn%b;sd(H_P& zdM=etZfF9DNm(};*6y?+PIrb&u(``j4rLH-w8i{d02~YY1Sw=(SGhGqaaRO1Ni}cM z{lLi#>M_RSUQ_1d9;6IM8Mm*4W3q{q*k@&9$2&PHpk4jOC!)3R9qcid8QRD<UuX)p zXKESPo*n$b{YdSFVseqS6H!j3Yvu<NG-fW@xf5*8f_)Q0a=aVMHWcFpLCf9krc4j& zbBa(0i>{K1<EICCPtR}-n4(v5jnEy2B-u5V-(Z`g%V??E1Ge{z4$VXeIVgG+AUkTM zPb(`uH+@J2qw8{O?t|Yttwn%RTwCN}CDk$VHU=6QtQ28n!mRPN9=<b)ZDin>Vwyr7 zUw4rGUT9n`NkC95hE+^oDLD*O&R?5C2!k0t%n5NMpRLv6m8L!;tO?<6by?Y%XK64N zsxU9q%v79gvbq<m3T3$c%6V9;a?257HRpS3?|Hk+8xHj{kwbX4=xWROi6v!Ez_SgD z#TEKXkzs|>=m?e|_sGNxQSH!L3T<WGiW|LPfkqd3cgfigZ1W722t&y+6O6%0=8*%% z%}E-Sh<`@*HQO5Vc#a9Lv6ur4W``&vY!0eJ%Cab;J;!W5l7MLkxm{sq93u~@ndHy& z|CJycFerod6hU6-M@s@{vWD0~3gk{XZ8am<5)-Ab2GIw=-5wyy%s|l-(9t;C8_lO7 z<m<1=XrP_H`FfYCpx5-6anMNHg6c#dOsXEIGKi8=B_<?%gAZHGu!$C03w@xJwab7Q z*|k2qiCq2TJ(wNRBRX5jz}*dLtOw=qO9|-+Y-(=LENE&vU{!5%F<J|e_jXFxf*i|| z$yhP#_oz8pZ;Ev|K8Z`|g5@rq?@c=k;6>4=xp+4yH+}0x5;nkkH40%seMJG*Q@fbb z(}b@MLhAK|iC1XY`A=FT18bzzOcgX>8ac&zuym{l>`C|ZVsqq$E=q6>EXmwJ_OQBC zr1OUuE^x$JUBrhB*=)!YIuA7W!1&~4oT_l=7x1Wvc2lO3h|}cE4BTBof<j^@q5}@R z%4X=?0QwBDVLOSn6k0WeHpY82N302+USLYCAy6ua3&l`??&!LW97`?&1l`YH(PY>{ z;|1`R0B%De9t%R5%Ok=PSSvO=nCx~37G{931qd5_ZPFgnW`Y^>4bSivKw@difYq3H zFdgbnlFkT|*==!OCW&-8q}5hVS*D4LVp#6Pa!<@3QZE^WwhyOUo>_>pLZ<c{gXvE) zk`sI8;rk4IF(LJMrcq2o8f;)hf0P<yGGGqed%|%&6Dr9#&p0HsNPs>L>WE$$Daq7~ zBOwjTU&i4n=~&Tr664L1#H~IABBVK~LK7xI#%px0JzZea?|!$P0}XjA(%JUB&6V>s z#wfi<m?HQOq?>Gnm^*HwP!IA$h%PKLSlKj2-I^~ZLN^@){hQ_!sxxUar-g%-*(7O| zH$cS7^S(*ErwJ5HTwOTas=<d_B^pSYdyZkC@K!m=^>)~>fndS|;L*gPlaw}mAh~%j z>q7gj*`d))6g3rywW_hPIW0$UkuZoi^JyF=4w@GFCelyiRHKxbzysvy6cu$84jJ?B z40;E33+)1lRb8kMEfM8`?7u+oqfHNoDglc`CPljyJWQ1^8fk-Eg0-$kuw?HfLM$P8 zazQ?nN>)LW8o_EIV9+Qs7^s-1nD9%_kv*|8B}#A|_b2eImklV7;v~%)%~pG2Qnm-J z@yh{@`JDKM5Y3@Pl%U!lBFuL27bstt&RQSdd7JJx-f|bBr<@iGGdv&wbR%#du|jP% zC+>G&7DfMY>FX}h7%?mmHaCHo-yLjlxLQnPwk-v*N@W=U$Ci4M<vDG&j%)WzRXh6( z&Bq`WMDzjDPX`#J&^*KvUPz3wbPqM$uqFv^$1gjja8s#YX1Fm`ZMKfbqvc}bqWH#o zByjtWFI^tsX1?PO8sAi^!)?Xoohp2Lh~f4WgWH#mUvWy|rczIDxG^l6r_shcyq{Pp zP62&WsV7<9R|vk*!}kEU+n;i(;r5=>8*Ue-(R+n&MSvSB+9|*{mFjR?ad}@M_(l)k zCwx2aRKx9kUuL*1k7FW*`dR?<ZmbM9B(#ypq;5pdm136^*N02ET3M&q_5M>QIaa2Q zKQeoT<W9JZlNIVtNyo5-y!?!ZK?hmxaJ$wa2gj39H<pXQ!>Ykb^@6X`z92{YxU5)= zUN)vaY~yk|^#y|O<MPlE{D*B^PN%*gwLIJC*owunN8Wrno%(W7620}bnJ@@OZ}ZNa z23UqX<b7GWq4B|Sex#s3e<Vpk=A@5Z*1}0Vl!A~d8a9)%Lt=$y(&dUn-YKk@iji@8 zbqaC9JN3|sMi2i;otB+K!0?fJ=!B(*f22;!P9bu9gAs~{j<G%bBXwGKN&?mCH>o69 zd9O|<1pG3y-$$IFRjqTo$@HO<J5R-W^s)sl>l7n>`gIDK#5?s63R<VYb6{m7#X{@p z*C}KY@6<ymXg%yBby{``ndCp2d(T72=N|TvIxRaTLF@FJR1&njSEmyKewo?tqk@(> z0-l`X-^$qcmwBY+^SB%@(3N%SQ9*0ik#)KD<%eI+KP_dF)3Q^irA%^Kb_zl3$4*N@ z>+O#UT5FH?cPE?*qK=@oj!?F2P*<e8@~x{K!i1Q`XD>g8m9By<7SJ>Hpq5{X4wbjZ zyH`h1{y4t)Mi6f7GodK>{DEZm>Nv_<_BP9(jBi%C*316DP}$nrI28Vx>N=K-*aTuj zAh8v5QL@IHIP1mGG?J0M^EYgm$S;=nSJjlkX&!`pwT(;`a)#YiWMb={_N=fUhhJ|X zRjTt|a_0e+x0b?v{|nnM-ucXw{gVVcNIUsid<Z>8V(HuoSX9uYrDuEk?BMnZ`Kns6 z7f|Yiz?gJ?KT{&^*bD!Z!R^-!ZZFE)p7g>h&wW`wW3Ni~fRXR1)nlV%6LIHh)gwUT zapRyBn5!lw(o?7A8R`%zWA>O6i>{SyTk?Xawx@gy}viT)$WzmZN2U_k5~1*7q8 zsoKruz$L_k5Tet069Cd(*7@N8s-BQxN~0KqYQet3MSD@XFzx{ZsIS6+Z?b4Y0q#`N zi?tz0I}KM9en)L{>~dFB#fGR=#xgPzW4@Bg79O!MgkQsz#r4X-Z90-GgbG(Sl(SGi zipI5mE{VooNa$0(T3B~?Wb>r+PM|IfsE}45umqnA3ErU@?(LjXQ`$A4+@u#4h#}0B zYX*4r*uiZvxIK4pd*0x7{owYT!R@-i?c?%ug%urZ^8$k4$T*e1coYj19$|n5OepsB zrrP@DaZ5xZ79gkXJJhyTCD-OffnQ-(631NqZc<~M9C(NmO@1&llK=KMUSfg#*DN4h z;o}D2d1ejZKNRrZY0dK;`u7Lu|D=ZJqj9}s<;MwQp_!!Zpgup;PY|FM$XaM$1=6Zh zwa^LTb`$eRz#)Kz&k=`?U_+_I-AWkedZ^o~|6tA{)jKxYCeagAFBp1vFEQ$(IIQ7j z_O9^7ae`e`I1k$^q6~*m&vqDnEWqev!qC|vs>8%zFtCB7TS#_8iYkRi&C+IUYXgwm zl4op1)la0KL_a#mu*~#B)Rw5cRX?}s=fCRbmi!B`BKd<X>w6F%u*`-?s0Jq3E_emT zGID0a)nVLyG<23!IIuxS<Y*=vs)-L-u&9*K88lAr-IOKRb`__<$`YXq3@ac&t?Joi zjSaJfNmd(d2C#)wTXZXoUP1L<Gf=Ua<K)&Ve=^7>bh1u6O&5F6o%*lWYenEKaegi7 zDycwFGSYAS#L{rw#JJEtF?;^Uz8A34C^qEKJ;RaYPZ2&)`15-SRe3ZpswzbS><L%^ zFyflQSs2{S5)j}g)-#W!p-~|V;R1RDu~+m9SSLK?ot?iW#Erp1R3a58i?WNOD8EvL z5MJFy7#ok!Px#$Rg1KF56MnQH6D8PGs~GPqU~Ddd0F^j@z3oUguvFV|joy_KfC5-j zp`!&UPaQgd1>4I6{0EM#C<D|!DZnuAl-44ph+J@@ks??TwTW%gol6R30aHClhsAyI zXftfk7UTAKPHZ4&UW_3);5!Y-*cC$kehi$p`C8xzMU=63gaXLA>`jIi`VnFZ97NeJ zn-MNVGC*@T9ibtKwp<emOz}|UeF~8W6E9BI0GXF1aZ3nbdzy&@<a3r6E5-r`kecb> zF;F^uEkL%<L&47iAOyrxLkEau`>~t!0)(SC8i$A-=C)<rAYedMAdBQEfp!CFpo@dT zi829Ma;z1(>la=`nvYf@<fZnM>l_CIhz~62E`+Ck;;^%Y>k>rlmq>On&SwWqFo^(= ziP)qSr$nYJTL}2+?$rPw9xy8&JbZ>E4d0+#aV*0qO{lRE9GTLL&)+2Rq~=!GOW#Yi zTS$YWK-OSoDo}W|6a}Ur&KPvi=C~0nW#o0Lpm(XbI&l+d9ercMGo^ro%4vo(?<U8_ z_YztwkVfrHI7o-0fmwX7O!2*R%vc)YdsV^Ms#E1GzE@fWV@pFYwzM9M&EtF3g0W4i zjXi}4@h*9cEm0{2YvT2wO9<J-R8)Fq!-VhGS7?ZdD(+W^UINhy9VeQFLaaFyil)=5 zrfBF@BA<~HdIPhRuoSrJf}m5z&x+P^AyUM8F0(G|)Dxh9UE(D?JKrX}vf54PD3S}) zjuoT3wNjh-&Y3)vsBjmQNUP#Q&x#7}n$KiEKamKYnQr95{JbQ8O>Bf#Bi5(xVkCob zr68_-)di64d1vSIDJK_6+*|AQkbb>a#k<0*A|U*%*QU_$p~BhZ67LGgMghV(z8W-m zyfAIk6A<)?VeZ(a-#@;qf7G0K!6~KYPc!J6>@5&KA2^v*<-(+&^F&R2>ge*UXia{r zWl?>@HLFino9gh|1V!$OXQl!lcMJP;VS33k(=a?$?TOcJ7ioW1I~Udd((0(mO_FgM zWg$U4v3YMTH~B^<6xbkJBsT*;^jaL#59So>g*7NiC3`5=o5%4+zy?N_B1m`M6(i4C zM7f_BhzZ2*e^#_z{o&+?i<4_~r}FGD6TRH5pDR1>mE>NreZKaEWzq+94lH@u)Mr)h z6c74Er%XT)5;VLx;}viqe~*aL@_Rc^#=?GxL|QCIhzBjsTo?B9mWVwfP+HI`h?ojd z<UtRpVYwA4Mx26dVt)$hV`l<0u|qnjzj0{A-Gfmxr3^)QbmR<BFo^{i2eZXWp^*Po z+COeou^|&3ztJa{5)0_1i2}sZ5iyo1(1sHAkD9bFk`OEn8~t{!ucQmqj3U4=fYs>` zOrC&YfwZb{k1|%L$BOA;@fO1=lpvLYE)g8lNN_J1e?}*03k~d#1Ei=L2a_fA068U4 zkui$c2`U{R{-_$?XCeXu$X*9RFA7IcDisXKPND1(yM(5>(Mh5Yrz|p>-6*9~!d^qB zz_Nx;`;<UKjqz?P4t676*8mnoniRhejif_Bhl9&OrXYy)+esri$H4ls_^~E$iiwCD z6F;RtyFnM9^{HmP&38mDhg48MA-}Z5^gj!^V*~9-%{YjwxWdCshxT^<DV5MhXUj-I zSUB8j?>h*67r*m1Xtk;nUxpu$qG$%PAl$tMV*66ph|BvcNxRcC{i6)}k*J5z3^b)d zOGc6A@UJixgut34y+B%kAplr3^Q%sE8yK=THB7vxA%T4@qZgJfKZCXkI^vyB*a9Fu z&`#DIPj3tH{s^$m!Bh<kOG%_2!ag<ZkS9$km=B>U8+J^Mf?J}1>CmMoM;nN>T;5LP ztxe)1GPy$FL|}SnU7Fp}TYDWJ2x7-j>1-rnZgJLK5?4cbssiRGS(|U2U(yJPnso`@ z<e8vciW5{lflo$7Lf>sNDMY5?hgHhODiXPJ!G|g@hqgc!{bXL`d#C`jt(Og9fFh#S z35`)rd@;mf?X;fB^4WG))@)Mr)_@CkQWjsPX%wgWtQP%AHYJ;wq#Z$EZP7A7JWr^~ z!70o}0RZd)1T2?BBU{B;m&UjB&X(k~wm7?%GAho#OBOw*fD$E3CnCHTiPEJLiF0UF zRGE&J2}%>ejmt?mN7cqji5)t`Ss$2Lq~(qY6Jcm!g8q|e3~%<ngE{x(v7Nrv3#d?V zz2I>9vP1|WAOsMo{cEqAX3_xwb^j^!OzqL|7tCVlZ%Rl#C~1R7;ler#bk;=@;CM3L zm-o9hhl6k49V3?-30zZ5b^ZYT&Q7bLz^T$HBegqc7p4Hh)ZYg>)DCnA9nLtY(IMgw zQ_Bz?5*ezS!AwzuVhC+WPN`$G(jhb0*y?L!@C4NxNwky7pz3DsHK1IaJli9~dVnem zFV?gJ)EFf@ibR2)IPjN<P{oYS`C}NR8q#R-MM9dR4iz(<cZ37I06K4iDo6x4O%4Of z>WVx{dm5e`BE8nC5PwePhd8W+@sGjxgkY}ynag}eXfrt<>5WmDO*YgPf(GQg`Z_!I ztLJ=@zO9CEROWHhS12^RK>t9h7Yt<UF%w;!A4?K(tPwJm*_?x@8fIob=fo8<CZ>?n z<^hq`Znx9bAfZmDpr+JUw&r_o5Ky}4(BUqk1Z+vbkr)e+eX=V`ff0%Q4=-2Q6EsG` z_1gT$5;GE(uRlYB7C~`3pErn{>>&mHgA#@NriU5vL{tTfQ!&7}d@*fOb+G|K-5M;x zxtgTpQi`3eSHd}S^2^9xr+`oAmjRAu$y=vjWwBV<6ycojZ-|w}Pl+F2zRY;jlpowR zI{0TX_=Ubnl9=kYpdaFNsL}vIWJ&~Bb3jyD$iN?86o$?b5G+I6(BX>V!`koxnln}2 z(?BtI%9Cs0r>lF26bck|C*?gq_?|zDG%0gC(h1O(YxedUeOXhM2fe}!!4xeK<}3{D zG_M;nO$gPj(PGOwMNVfrI-e?^;paUPiCRZHZiHb$;}KN5ZD&&n>~=xRuZBu1Os;oy zjiG`s*3ze{n?wB{tOOEuepTmvknU9K|8_1~J&>#iVFK?q_nM-e2)Fdf#M)u1qGtJ@ zQd_LQi8#_<nkKN%w5!7&C>AYdlCfc0O6Q?R4Ny7g1UeuOF;QnbilPM-p~FpxUHupi zF8#(r`L$|Oon+|TP?kThN2-C&ErkDyA)<7l=L7$wq{Ol*Hi$fGEHJPprGzyF9XD|h z5L&+i0U2r_2<)RdLRbNfgV0X)OpLplQIzf=Fl3HGKvNTThSq>rqBITIWY+my><2Z{ zcmY^>T!bEEHQn2^-YW3A7unFjNaZD#H$Vv{+`<NI(n44grqdXb#eMhTR3;x}v-cuC zYJ5o!v>9K{Z6D$q7S&zjCu7Fg>KQq!o?fZMC8}3bSoC1*?Rbbp0`dCZq_hT93XL3x ziBSYNIidLzEDzy<h^wxi>C2?et?&i<t>}?DfiBkp+f{bBY=<Q5jhUc(NPlfDxhTkX zi@Ez@>`fK!4z9)OnN}2gtV)Py(eC_?@B?h>{8rpWb?N*z^lKW#oobJKzqj@sgqz~v z1?B%}mH#9D{dbk0rs{l-q3<87eb4xgZl&+PU**5gzyF@{r+l}=FlygFUi+T#U8-a~ z{~y%8$9zX~);PfM=oc!b>su`Z<1v~FFvl{zW<P;aowUJPe2vOfW9b2y?OoX#WAgPV z_omP-Ja}#KvLW<{Aorb_o`upA-wLl-1+Tc*c*UynT@3|{URA!DE82*7$4fIAR3Mm| zYZGcvASU)o$_{9-+SLPM{E`6bYvKJxj5qkfy0fkzK$3N^?vr$`t|eK+g~J>txu86p z4Ibx?IO(PYZctRDw&EyPPh*1CdvKa%yOq&pz`DMiK&dZU%#5A~)rKaU?Z^bB-jtY- zPSlvPb56OsJV=b>fwF`$;FNoevb0*_ei{@Xvh<R7_RhHl1yJN!(f?JMbJn$YF&)kP z02NfWb5IY&UsXnLU9ncW<2kjgrZ*)8`7VNLpUb2?N6FU}=eWvb<tN2Cu2(@FDWVY+ z9jP&jY+N;?9ahcGaKU)St(tb>I8M4p25)PtIJfgQ8Is$6T(FSMP8{A-uH6>|^3K~O zumv>Kp}_+3naq^mjBQp>p0D;fDHqvE%n%j`xd?60S`xkL*rC3DGO;Zs^g0ySar@MB zrqOiVAZXE@QDlXhva@v5o}ui$&K{W>g~EJ><jCAZZjEPUlY-YJcDylbT&M-=2E3Ir z%SdY~3MgHH%lMJZlSb*O*(p8tBT@QMe4vqL&gp}lIV;*Jf@w!Vv=DbhJR_tOTm9y4 zqst0Fu;f50s9G10bfZ+-RuH>Q1tW~P&W0vOeC$XU+F=rg<RoC=iXq$=^5M22Tlw+R zCL3BLH>8i~iP;+=fa(e2A`_XONOh`fIxb%pt7IE7dy`MVYFZ*RwtXly|0@yCUbTzX zmfj3yhbapW#zG)8R4C=X;McZ8Vo5B)&y2m|=fXsL#b^jA#Vq_JPkN;h>X&LI3Rb`= zLbh@Tx*)P)FbN4qL^e|$8E$8rx!5KaMzKvOlHL<`-q@xI8r1_W!z>%Vz#g?o=E<Op zVw=s1ZC39m4JX4fnv@IaLcR_{SBp_8SQQgoii9B3!Uu@R%81*fOIniySCvFa8iY;I z0`QFyHj7nY_bL(XR4e;fuX^VgE$=mrh+R*2jPB&3JCYVT$pgBAy=EQ6r{eO()Jy`8 zhy4}j6ziThovpJ}7(A59-mbm0Y32_;<;6NPe{~UU-1spGf=Oha=zLNVNgGi@)-dd$ z_rx?1sixBtvZi9C(!Y8EV<kt#CF~B29cHEO9YW41<ODHIqcKb;JLm(XHA87%vV}Gq z|Mm{B3}&rVk0r^imGMS>DJIP%)D%Sl!g>&;_{Fb*mVZAnr6oiR^|vYsbDzUbh0K_$ zAF$PD=m<N5OOMCd$_RpVKV>k(s3A3@X(Mk03K_LO@-y@!A3O4iQwO1+=z#%!to$}v zm*3F1B)_3CGgv0SrIq{^OMV;rZt`3BPBSIH={xe9=QsH+?F9KPw)55M-%WlC-&wPe z{HFZKZ=T=ex3m-FH#>P}=)1{p;XB<mwW*%p<hSr0rv{C`e25TwK}{&6%Wp`|0qKIh zTnh(@kZuwA&1kFHaYYSfEFUAkfg}i>>#RDfSVTkh8sSmym56ns%u)WQdD1<eN~oJb zs4JxZOAqdu^$e=BNqm_rOT@FuGxRXyHUZ8TmmJ2K<K2mbBmwm*`Yy7j$p@KO#RY-y zEE5GW3s30jY`?7aZ|6`ca-S4nz9FY5-+C_j?(Sp#>2Z+iGx<N`|LKZ|q^kJLQ1y^( z7gtI8EgK=^mFWv!k5yg}ED4c65heOd5-1aFq}m!~6vf%qD!-iN7YQ*4ELTpWJ2AjW zZ%vsX%q#>|v{$ZZDp@$rW|iwy3carp<VX^CxiRMgv8aw0j&Q4|SQG<b_PuqkM4aI? ziQ(GTE>>H|YRl{M)DTA9Z6s-&M(8N$9>sL$*JE@Vn-l*0!FW3HIpEJ9iaCi-IFIN+ z<2iz*i)}_{%o+Ylt2HYEen^rHsF_wSq0fraDwC~6giHWu$xK4?xVw645{}*V<FO1^ zE5;1%T}QbP&I%<513wF|Mx?)_D_z=_+HIiDE$_Vj_S;_~Sg$YFI>`UwGtq@n^h`P# zmtP3?(p+BlS%0t94OZ~i3ak)PR&RU~Zh<qmWmZWxft+xUPLbOx4<;{ZUQ;YlHoAUd zS6J7OK?}L9NO%osd0VtO{}3vy?6%!N<OB-V`HfiRb5};4e@`U`B7E4r2H~-ciLZf+ zhnXM=3EWN50$Pg|fcJ1{ht(p1wp^<d+5n;}H%TuCqtNC0Yq>gei_=j$Kg7X!RQ?5& zjw&C!0?N3E=UEQvd@<bu`dj8ROv<J5Vp6WBySwKBok=@`R^qQ(QOZ)dh9MS#U@jwS zcM<!#vE)`@YG-K52&GaomT-$ROace-1OpYb4V5k{&cNU}70Ff}`XbU%0Q7<+-EQ$X zb})2%MXJmBlnW)cvd{BXEE1tW9RH^5)?(`2MemN{{5u-O`9<&2sF-@kt?#|#j#uT~ z4I~AAEP&Bo$;cauuHRAUYZOs9QLB<7H!Cj#rV}x$#&hmn)p*WMmzLa8YQ}-OjfKiG z^kyFthEnKUoT(&Gv=MS@C`5mOQUda~=r$csr3^?z3`&7YE14XeoIxru30hsOE|bgi zyR+oX<B9CNc}3=P2G!gfbZ~qx150u#RiKk*fGBXKVA(4~)-Ao34Vg@#ll<S7&>X30 zYKSPHT%KGOx1)Iw%j^|KDapJHbCAZTWINJCnV^xuIA9)y!PIN7fEQ=5Ifl>#oj5iq z-^6RMGL+vkQ&hkFX+N}v^IYZ7s3VX?muP4#bFNGev%5KUC^lr2<(Ic8pI!6-b9&6u zO$>o#KmIFbB-fr*Wbf>qeVeJ;oP2_n+tAX0x2801cP5F=RveLCd{iid^#Ungw<-$z zaJY3{M57%QYc$EJ9bjmAxK`)cw^3DERVHji!BAghWI*+R1dvHI6n`_(TzU?gjib5l zC@_H-S>(a2KUqvD52L{(CC|jD4%dc=c<P4_gW`o4#Qu;|he1{OH4IYuk4y}rWn(ai zw@-<q-5y`+p}`>b*I<Q?O{1qeW~<1JY!i!P5P86$;XE}A`pYbtavC&I(IBHgwjz;2 zWhX>`>eK+<ATklCfjo{<r#DU0{V}HW*LxrZmXygNHNVXaB(36sx~Gn2j;rMIRL!&~ zr+Q8PVqHXT&}u>DeAW>8gI=jj(l~W-F)XC^hPbmCw6Wh1_shYau%ICjKql_OhQKzA zM9JZn*=Qtc+DR0;s*xz!MIlkB8RmX#2ABbT%0!=#vftV3+*VBUAo{e*>61EH8g(+) zAzAjFgXspZgJ`#4WT|2?<hUCFI!lW?vn8+7FV$Q`^1`ru)*H`mD?o4@5-3e*Q%Cg6 z%uG?$qSPQ@o(E!rel{MouTbX&AvY|s7Hvr9a*X#_v}+>JE?K-iCEiy3l>Rw?yE&cH z5RS_xldV(YjjFTIqbnr|NbbRGAjujPM!v34Q=P&}snrYof^(DNB8hhhyx~l7D7&mN z67H2faZN*KuU03$7ui-=r9Eb3qHuu#0RR^eUc)!dW$O-HJ^7Z<rs)h#Q%eQ$wrM+p zRE6r%&e`k5+C(GK&&t8~m{KH2O1ahH<hWW%E-WKE%c`qo3kioU^_>yLz#t0|I+ego zQ+g4;29YtGD1T$7Lk0EOJnTFHhRL=202k9H@guSao`DgPmYp;x^ChV=9g%&}R^$m7 z6x7>~(B}9&c)K;!3&?Gas@X5?gr_n$kx-de*taAb(pe^zgw|f0v8(K>;hhbstZd<# zCISy!=s$ye<=K>EjSRLz9fURm1Ri_xD~J2W;Jw!LgWcIoL{iyFEGiI}2WzLXiXl05 zh|8Dk_B*L$N)s~RIan%LKmSWG-jmoI>s4YfUx#wSa*1ydgBgcxnRyw|-$XaqwM^1f z4?t7(K!QKhO$ExNYF6k%pc3><$N)urM@VXOJ5oVR9rE&@nGAi`FvW~H<NK9K+^Bi1 zgCs@|DZt61O%7&M=Pzl8UadE8-kuI5rvmm#6|u|)Mg&CVRco)=O&C%X8M$ccpm{Tl z?DHKb`l7+$t1aP6iR#}@VeGYqT}jJ{;V1rSqUQ{>iVij4wrNf~j2uoooxh@WRyAvr z@-yM3&dR0B_JXNK6HqYB+)=$`)(NhjDF3S@X}jBBR`D;}DgYZ|YG;}hsbhi(&w-KI zt9E566<vpzOo(DnX|*Q5PBJbPsp*Yk%B`FTW<_2%ma<!6&rA|W2`m5^FE@KBqL~|5 z<p($w7H*&s;#OFSy(@II^Qp|%Dp?x%;@6aCmvMRL2CD14#*B{*GzkhdIFWKourS^6 zlydDzN|{7tShe}UA+h03=d%K$&R?T@m^sQUsCMcxXNwo|5i#-&fF*7ES{QOo%t7O} zl*!rPfSECov}sxLe~R5t)^-KRuIz9#uF?W-@{bfE33vF$UD0y?$W$A8Ft(FN@MU)c zC8uQp`7$<OWRTgRGOLn|s#1~<!}yZC93!Y&&KMv+&AwC4mZ9_wbZqE_j!z$Y!TII( z2EyY69oYSa)ZaY6Cykq$Y%d2D9cJoh`AQxQx8XT}Fl9CY4~UCNGzRXB(nN}U)tJ?4 zfts1mO9cC|%S<+1pp6)yeB#?MiE4+<tmVH3cLQTnQTat4zYNWoP4@O=z=+BRXn^%L zpb|s@5<vezrQyXVUlj*KZZI!o@&fhF56chsl5pJ+t{q)%NI$!x;!jv+{^5+RZ>ZcY z$VE66+@_8pkD9`hrVc~~YZXa4Z_-;DW>*?&SGC-3?x%f;Q<$h!W9yXo#cciTwI#@4 zFXW#QKOI+X#I>)N8^%P!4C$eAfq5~rgBfG1WTe$h6n=lMUYP)2uWY`sniz&93Z7qB zaM7wdU=BEeL|UJaj@9^3<iL>&mKWLzkE^?KA#E7dh=isjY0Q`LVMu7w`4jLNieTQV zHj9w-obo^ygf8hQx&$YBhwTZPHW2j(O=ASTX%0pVE1_vjWajFiNk$c0c96BTjKTMo zMSy%UL@vniRYwv3+$rK$79)5|jS&>1bpIKnFYs_%zzF_qm=UlXU1tR13tt8bT>c~T zzs8Tm7rqS5m`z?B7=eh>3K_w-Rg3_rJ0o~TxE2FOa3>ocn1~{@%P*b`OP6^PjNr{; z1T@U(J`J_2YO$M7(!M?;P-E+~`KFU)1UD_D*8;|0)GHI<>y;fGqS^z}IK*KNE-d(= zVFaM*Bb5;_k-sV#!GouWf9e$RUCCF1Mu6&?CYzE?i0BgNK>SRaPA7l?Qw-vDY8J4v zkjYGD8fi#T`Dzxs`U&mLo%W`#T)cO|n-7IIb!FnS4zbS$W#V?+>1)LM<ve~Fh<Evq zm=0>q_*YpHB&9vPI?ZhI7q$)yz&}R|mQUpwqS@q=zNwMSz}>kBL*h4#mftXt7M@H3 z{U-uLSy5FhDL((iij|B%#uOrK>ll+!vyG{!BhF^3n@`f}0h`fyRmum7%V#l8o}9u# z&aoQDU(~D9;MA*o0E=HuKUjp*kZM8E4-u=;ynAHo9L)Dq#A+U;xy+R1(cJqV<x+hU z*zzFuhYqnfBvO4JNCVBhzq+}%y1Bc$c~^CFXLa-H>gM+9=7FRtr@Fbfy1Bc$c~^CF zXLa-H>gM+9=7G2>r@Fbfy1Bc$c~^CFXLa-H>IP}gSpbF;zd=g(8=MjR=I-idV|Y=7 zD{SLVNHjnBKb(_X;M?=gtxV1q(??zcxHg>I3#$ebTD%Fq6ZQ%NFvgTxOb5A$$V_Y= z6fLb*+LFNprc%9v6Uu~<VF_wg8|7refCP7;s9G9}jDxQi%hs}Bm+d=RQ6ka}HCeDA z_GQbMp}jx0#aFw_hg`y2=1w3(d05#EOCZ>vsmz?nSRjxSBZ~*#M|q{-*Ml1<t7A$; z>AJL(+MG=4APB`S0|co+;Q9MbDr{A9Clws6EX0F$2pb46RCV!GjY`Q<j}r)NM<+|X z0s%Hu0b8$Gh876qt71F3##)+&)(QfX%W5FN@kJnL%DslZ`xYW~nqqZfYgN^E--I!t zOS`ZO{*|3i;*eLa32Sr{$RWMe6ewp+`Ci%r6n8=y>k3O?Wkh9++I`7>VFR!2;b4hv zo>fy{2LTam`<E`biP`F~iLx{**<?UKT?8QKVU_L3<CEnZxq2qJSmIx!bwhLg!f%vV zIwkT&x8V9NuG-}D4zBV9{ZX!6u3XON@^P+@<$4d-4O~CQ6~8WXg|-faJ=}8lXKkMm zVnMRs4;rt>gS@0Kf-7qnyt0Q3chvqv8`nV=&II9r&e~*16e_asrDPVTkX82-?LCF8 z?dGz-yZo_+7Dk2dlr8+8vfMmVP+n-h0C(XG>&~qrwsi<L!3C#FIfT;`mhU^AKg@bK zijk6)DIuIYAKUkCM_Pp~dH5D~+iXr!4}H@rZ8b}tXT|yaRFyDoY{IG*Oh>D%s%Ft~ zo1^@Q=)P6Jf_Udsu{T#M0C@O2xL8vZdBD(4Y5<S{3G)XjS}!WkJEF)tv{f`BNoinT z>FN9ki@}E&l6aoo-2jOC0kxJdMO17p34gd_K(v?aQ3MDo&9oZJ!uDgS3#j$DFr~Cu zWi7TAl;>f;ohQV?6-+!i2diM47G<F&uO2hccX~Y5=aeX6LTM~Wvk=ZI&(Jf*?kv|F z^J!f{L-l&k$zb)`T59HSVR~m(N`spSfFVuOeXzCQa<tc}FlWZ14A9;{IXiT71~6zr zt+89Jwn?j5I!L7QSW`E02>n$`K2mdkzBX!j4jBi_HE20Ypau{`X5V)*IW%7lFWJ4o zR%>b?u}vaTs-w{5fa{aqV&4l&wQ^^ev=-BZkrww8S&J(IZfnp?8qt-|Vnx6h%uIXe zQy48gfQ;5+wnGoK*mmk_Hk_vhvskaRnkc9znou^p?Jf`I;mK9?ihP2)pj8Uah9)%e z$58IzN@s<nEFX)WfC{ZGcsMilKxMgRsJ`w6MWIX6CSLdPLS8;Miwi(*O$|d2ZVcP1 zN&5J(7#*l7i_sJZEc6VIOUuIc#`Pxm^k(EKe~x<d1kvPmMVEWwL}n#Uu`u}r-V~Gb z5U9rhqZvw5AJ{izT``Ae3QT!_3|~H_IChv%fD9C~qGv`+WddgAtwXt%_n69hjPKY> z2UF^b>6nUU!jxhsJjnnQ;8lxLg8<7aYM|4T&|}rF*)P%|D4WA8&^cQvwc*cv5&&i< zSkqT_6!VrYh6izw83TRw1{!7HYfwy;2#+zjd(#l39mqIqRZ3!A^TBLd1)!}mvl_1b ze2KxVmnxzkWF5<dWiUSi6~GQYd~sD0^pOy0QavZxA;Z8?h`pEZ4X>`*#zf+}iI?(v zp6$)zi6ytEq?mOdtbl8^p0o34p8-TsT2u{95WLoy^Kf_|_#Lh;MeA}Z5CkD#c>OXJ z`#8E%aKdEN%09Hmg46Z`EdZxn^p^ss=c<8I86J_~6bAx<jS`E~S=5y_Oesdh%bgg; z9u+34s1;aXw35|Hqa$4?AxrSVKW<py0F?tFhHT2d1XHXia~I$<`{OP+=|;k$aXAyr zgnDQYsrQs$JkNZ57y|rss2RIc)YT?&ZObx2S&^DVtwBbpALuOy2+1B{D=HbyamCsk z+3NUFNM-UIF<)BX)J_tG|7o7$UJ}K)m%J?o&$!-~a5Y!7f=C{k^absN4cDp*A=Dyk zZ>Y?ei7jffrcKAjENWI;Nj0g?#Y3bmYp0rT5BV!5<0&nh_dV6!#fUD_;g6}uU~pQ# z{Z^YY5)*yzg#;9~pi2zol~H+vt2HbI?B=&-&R@;0Xb8f(`N&ww-B_i1;Ylw5jTu<p zwvP=uqT2YHvuCgunM_C{<b4ozJ_I$9*P;l9OO~Xyh)ilpVOfEm?7j><?y*PN@?vok zi22*!YO%?j;o>TUX&geB##IPYm?>?L&N8Vx+lSnP+fhRkj4U#+kp{AbfZ?HGG)VNs z1}Ih63?zhw00SJM(t?l!bRc-*R~}>rHaUcwR;V%zUDRETkSQiYqGs3J1PbDmN*U98 zs?Y<@<&3B4hD;DuA)Uj(4lY-twFfqCqXX%ze75%Vn)1nl0m~r*Y{MT|+h8Hk;5xlb znWVjR1ZY_Wv@8HE8vqUGrvNrnoXnd@yE*9GQH^QOnr~1-Id+J_Q52~{8LdAF6B5AN zM^^Gb&2||ZZUD_LZ?)c3KEe1F(5~}G7E|1TjQ5kxP0ws?Kr<(gUO*jmagYK-@ld@0 zQFReu7&%<Q!h3eN>OCVOVVG0^Xq+=cldm3e#D@ZDLmA>hKWLQt;h#s||55Cnve`5> zG@ERwG?8pDzk=tGnL$qF95U3wd}8Bi)KcTN+&MJm*#y<W9Lj$y?S}<zLe@MiC?cM4 zw};QOW|g5|;09MQ#(E9y6NUvAL6}Uot?^nEj7=uYA~+WWE~gAiLj-^|2xCZ<iJEC+ zuL-swUz-n;MQaZfFhsz#qJ=+_qFglsvz#E&4Z;<gTu2H?D|A5adE=PCDoLhINncc9 zjkcv2T=0dfP%_vk$SpoMWI~c_8j6|Ckkl`cT_j0Dfd{@%OGGhk$$_*bihc4?O!4<| zFlq1*2L@408wML@oyNZ(G2&-ZkF(9FX`&<88TpeK(lfIe!^FKxb8*^H0T80t7&Yl> z8=iqm6ai)0Ee}Q73xgfFmC3ot9^?w#O5+Q)3EWD#-Kazwqk>lJ1PLswn!xytZww(& zjE6}dY>6DVM#ynek>ezg<77aN6%oaGSQSg7m(VA)KJhT@UBogFQb1Z=bW&4{bv1y2 z2}GnF@Gvr<y3^Q6C4_1_^o*>szXNOtG`t~E1CBSoPYTTB8qBx^`FEw}A1|0Ayd?o$ zjRt}Opt+Bvi5Y6A%}k?}FdAW+JYJhU1;{w6Axh*iFXoe!0(3Q{wfV~CD5g!#Qrg=v z>B1NRBd^}N;-~NeRs{W(V1YnygQD5p)}XXkFetKeXiz}3GNpA+7bhgVO15Aq6jyYD zj&Z}tFc1|OMQZ>_H8OSS0x6>)(1m0JW1XBvpr@%q)r3(omR?B}R3S5rR>vhWhAM(& z;l{Mj_pRaU##zJH4OzoyoH#7Q6x>$t7qf=9%@jOita>SHxVFt=mxN&gF_$>ORNVtc z>(YXN%)T|s$hfz4tTkMU6*z7RAlj{2!!bo8O*%Xc*|Ggr7U8Pfl8UQ)=J(PI0%i@j z*(1>hvITb9hPWmu>eg@+Q7SYLXv;2fv)mdkQ{7_La5#)WfY``X94D%nOj-AwhmfjU zS!lWXj((s^t8NXqrc$iZo`f}ATJRWaxaqJ1>)NTZhCdDxwoGgIc>r~sHN4=xS-ssF zelCx)hM&(>*6?nT8qu^4w0sY~Xgk*M)x*l^LTkAASl=2hS{xqS8g6ka13G)K;J!5+ z<E^aWjXh=!hZjWo@~q)WW!{D3p>GM9WZRP&2HU(@<YZ(v#ioQgGR|PT+r%wpu$gyP zCz}$8FM~<5-Ha|%v6Fpn+~@{XlU8B2aT%1WDk(IW#iwO8HI3iinBBW?4KM6#zu18x zTt-FL5ZVvY5Uxe1MGWERQZci?%LNnF`CK%i<VM5ZjJhFQF*8OC;ax!LD%rU{orVqH ziyFdxMpx!-)oXkdg-xOzwb%@GxQG!|DMt<AKApt%daE%f*b<6cpx`ZLerXr0;aIDL zI$DGqn3Xj_2Z@A#kO8BF$aqRAIbkJ+a3}>*l}9Xe+mH7H9H<$>t;MOexLvh)(xwyD zTZ@rBY4I3CxV5;S$Xe{?RY_VjcEyHpYjIjkk2i$dVg&=Ep|BZ~3=H82wk4(kv1*@E zL0Ayy9vH$~OB=%5HDezbXX{rNxIMgO3o_luGjS6tX%!bxkvN8-2RDXo)y#anD+DI4 zFpfSaQFfKXM2CSPe0tarzRHZhl0Y&maiJl6n$iS;bF^L{xmiZXvXDp>4B^uY4B^wG zrJ7+zR;y(h!l%QO>Knq5Z^+v-a{+59W(e0h4zQ+&+?*0a__TqZ5e#;62cL{sHAA?C zQCVQQRo8qlTPD3hPSvu$A>4DxatlR=?VAPk5oNgz26}>`3>(4+I0_tU)^$iExaqR$ z_;rQpirRlQgHw9c0z-Jy4B<`Q8!?Psn0V+6;o#(hGK9NO!d!!`gWl2`q*2UR^O>us z)DRv*DPbvDh9TVH=PCeto@q6(mbx{gZU|q8AzX%2YrZ|?<{IT*n)n308H=B`1lSdy zA-l?n$Zq6TWH)j&vKzS`*^Qi$>_+ZMb|Z%+yO9f%-P~Q>+*{q;U)?-V-N-r0%c*YU zK;`9BH+NSza=Wrm_g6O$R5x<g@^Y#hIdpkB)y>`2joiSzoa*KQyUCCHk$|Qyxc$h5 zoJbcWOEi9<8Eb3$+iZ>4?Lim;koNi-A524>L%c)p5pA&Ibt5n-!q)p4?8m0<DlmoB z6icR#HF4e$d&K!g8zAHpYcQO|$3b$Cwg=HFLQPgX^r}`RYLc&6xc!j&ok^PRR+ZD^ z%tU(V#wJ!5Ko=R}Y$-yx1!1Q@kNS;On)0K5V?uA_PhCzzQ-0KM3|pNkgpXjqu}?he zHzxb>qkdy>2`nf<U6$N$OCl$sE<frw_Nd?3qkdySUA9HBzPjw*W;I7A$@z~cb@@@h zv4_MBZ>+lfsNdKl$8YR6&Pkr&n`O=(S{^hv&dK8J+De<9IS^I|ZI!HDOk!swHhZO) z>2v{%y}Tl#sYN3(MG@`LUe)%?_`y<RR|wfGZ^rasIu0v@GQ)=@6${zfUm+ZO?2oPZ zRa+s4R|sugtg<q@w<=MQZH16vX~Qdo^d+nihE+iW0hV_u2Fn1!V1<ytPXPp2pLr-z zEJE-YnWINm2(c)-W4)viEiSQKg@>|$%^Ufk$U?$WJ=Vu%tq@Lnle5rr70ZgHE(=!( zDc1F#e&2n+OxyR%*rh`hd-ludG#TF*(`K=*zhCBT8mnVxdZO~&q0^ha^dwga!`_gv zP?Kz`_RO#v8TQO@S}QGK8;tFl(fMQSnRyIP?3v-5?UK+B-GVF8AkX6RBt=V)2pQDv zatTX<EH-Z7i4&TMp>C0nx)*T$7|*@JR|>5YE%$N_D}`sAXr)jN&*N7Li9S}?!Fy)& zVjGw(p{#JFFqrJZz8TvAlK8qq3NDXXDb&11J6n3CkeH%-IbH}*hjl`G(R;jx)9m2f z_?krS>x33eTnla0Iw33F3e3)!`8uJNTkOqXoluQk#yVj@-3>*q1;b*p^P?F(%eD5W z$uMRgOxQi7WlNUfF5t4r@}FYm2dv_5WFO3WpDW8;{tNqH3{GC}36}pt%Kq}7A%X9f z==naFGpfb3j$s^&cc!Bd?HIMKW6OUmlG*Z~O~$YfCL~gM%yFTt^ckf*$>l%X^xD<_ zEL+B8XrVsVU|&4y`RbqCpKZNz!W$e8N`<)6;0bH6*7USCHE3`@ku})MI~A*ceWD@i zDt8~-1rrwkY!W07a`Dd!sqKQveN|raFFmwPFi-GJFs(u}r#stU`+LGtYk#vRUi-71 zAQO9fw)Ush?%stWvYkRp-otBu7xJc<n8z3LEGSX6_IGa45smk#*kuvc{^ZOywDxC3 zPmh*5So@o(ZGt(=_NNphn_$jmhWm25pZ&lR$+)#YBM;-&{sd&(^8qc=mK@utvdAVF zJTM`(?1+)$h_6^yZx-1EqxI)r+TR3YM<Dp2wo9%3d9HD5e<}dy?cDq(VB8a76AXSv zqnluOWt(8Q+9nu+Th8__>TiO%XlN5mt>?8(Fhl!Zd=C=jOye5X{_@L-`7a2vDIvmj zR5NiCNZ3p_tsI<zf-kl9ce;bql^Kps5Zd?_n8C`Q2?t}gz!;tEZ-IfEX$y=>C=hhT z?fZL&2U}o}^(+BjeXCy==GoO2n8C{5<Vv={1Q8e~bQ3Zbto*HVCxB|@&)Uoyj3s6b z<{{kz6Do7~iBl7|8^KHdj0;x&B)nU2>f-GB%AY;tzrB<ylP^?d!q)#F$1^pMDi)|R zxl|cDo~EzL=v7UXX)eC?zfxs_GwP&dP0sbACPN`yMSZ0+I6E%z+t!8z)CMGJ6b4P~ zFpfbc3aX6REW<=+jw`)94g1cc=Ivn)fwl#-uF8aBmjMD(WlS-^rx8F21Qs(Fzs8`- zpizj~!sxZrOVI~#c0|51&MOy>N|liZIl$If;x8)@$lIr}JXNOJ%~exn{DeuJbT`=g zZ%w6GK@IokN{w5tDkEwqXUDU<a=m2$%-7|iRAmZe0{GT)R2gY43sjjNFF`NqFcc%z zMXJo>xDpDr`*^NWWzH{B^FOlL)^IPV7B#a#+Z-lG3!NUJN&{79_27X6Nste1u}n~s zk3AE&76Jh0YB@c&-09H{yB*{77`EZnRhiVqC_D};Ri-7UN1To-T>_bBb%&*#mhm}v zceFH$+8`wccSl!Z#GGo%iybamQ(oi)>B>t>$D^4AB4{uj6$GZP7N&AhL815%0KoMw zsXUgpU(>+vaS#9?;O_;+r0Fxc^ckHbf<B`eF-D&;H?q|H7-@w>Noxq#A$P`R@wkQh z%=t_!m%lg)%tQnFP~X=tVl;S0JoA11K4%?<R7Ab5&){xh^#*rF>n<>{V<_xkB*jC} z>^4kj7+VSYOy8Yx#{IH`<j<aY)C1qwkBk05J<t?HgE4(((#k`Dsq`78lnJBe&bZhv zc|7gaad@A*GcKafSc8Z3naP1ZV{Hiv7>1m_K0^ye8r)B$@?hE4U^(i#0!CwOFRb<n zEEb3WzXYdR*5Fj4`iKH1eWuW`EKi>?w@*=Q5VYpZ*cf(Z9MxyA?TLy9eMZ%FpJ1v0 z!=TC3*Js#iAM_c+4eBvet0vy8p^Wd|Ae-9_M5;*$fYP$?o$cr|wyA%h&#bpt7E9?f z)u#S)i}gOn()}sWeHo?C3~lPSqGv`+HGM`>2zrv`wN3qt=`+=){=Pl~bjjN@?d62N zj3=$ncqoEVeWnSJE2Rf-8w*<!^cgk=1${<cbA6_v!4xVQGE|%TJ(u(u2(<{EGT7qG zBSoJHK9-2QBl=7qM}b34NrFCtx+A`fL+YX1R4Uk2>fs1DO)^~oPT~Gi;PhNIa4N$i z5}af7nU;Anw%`LUkGq6W_hd9W+1F>_X3NlL5cq%rBFF-L28;}zj3}!yDdaO|sh8Z+ z-`8hc(m0VmV{Lx$`pg;2+R`5?bNGo<PZ#R?GW3~N<;f_0rj<XiE}8YEne{_UGl3bc ze|UFpDSWkAIc;6$t8(X-0*NnBX5i$EvAMH9x^s(2*WJPunG?k^!{xRsMdleE#teN% zQOstw+G2`~G?>DdZ-|4Y^%_=q&gY`V97Q(6dDqk$sW}^p)YKZIy^rL*TqesWuGXNI zR%*?u+spL?5!&H3n)+TYt%kUo)6^-^C)&%U<}PE6#`khbl9R-Myx&W-E5*buI~2}$ zVFk%obEU}Uk^RgEH*7~a*EL8JAu9n6=@7;7*kNp{#5qyXRY9BJ@4QoLilX9l&oKm; zb%^;j3$#Q>$_*M2hlV30%6or_y<?`zrM6jz${tVoBH`Am;k{#Hf~aliSGBSrYC+iw zA>|(3J7(HNe_PliWA9j9-4X-FHN781t<~k>6z?4~eQVbBt(Ju{>s~0FM}lt^vq9g| zOp+)+q;Fk#;`Jjf*D8qGVDH#P%n`yVYRz<5-@1r5gCJ_v`q9evj*XN$SU*}$5VdOk z=waVGrnR(D1>q6CckGG%^`j>atsm94dDYgB77wEK=-x4NhC9{Z9P11>SV1!3<<Y%k zD2c3BdJwgTa_`vs`U;Xg<X`A(T#sF-aW#v_4ryG&k)vftZ4Q=?s>soDgY6ARjyBI& zZNWWJ<mh3I>tTr;jnU}jBS$X<g5k)~4gy;~V(BR?A9>7^{_>GUj+Vw{oVUJwM7)I{ zl3}Z|<s%t_m$`ftR=hH|hO_z}5$Z`{X@-}NY^981-4IJMdokh5M|OFHM2?om)m^^E zCFN>?#wD$ar6a8o6{8xL){~@hDaeL2t|xGn#&toFnlNJ44qp`Mg;>%jTu4Gs9xNm+ zh$U?cNnw3-{6bQD>4l`>Skhtj#N??H#gcwddx8|SD1@9aWEqtb+rv`g@{ICUNX^NJ zFs2D&U^`glRbO}3#I|a2q>>UFeJRnDmxWTIUN32tucX95s9lp1*V{_eQc_}Nl|N^! zRbI=8Lst0^YFF-qwNeLG`Q=E7l~ukkC62SoORr$P0Z?#rN+JySTEeK5IATT~vC1z9 zwYyTQ{DTd(d#c2m!Ip^-X(@!-wV*N5oZZmSmZ8Bchr!z50o7SVvSmzLO9Cb80oC0~ zBJ;!v1F9$JLl#M9y!Ao4KU_kqyTSS(v>#`EFj8*{)#BENs-R77eF%n(#jFok5P9KT z_>!-`4y+II+Fm4bjVu9p9bCYLR?C)SFycD0)JqhbQP<TA`c<9h%uW1wu(ZpB7<%q6 z^*Vp8;IDcu))>|gBOF!a8XE~MxK=6quB%3?38Sk<j}PG<ba@PO{iR-fHf-f|5W>Bm z$X0y4Jl~49@}*t~@G>ITSc~0vbu@%KauD5Ng?SLdT`RbvPlFcs6IqJ~A>5S`a*Qcz z`D?w_;;|vzap{5T6H8K5A9SxNb07z=N7lLI8_{=z93Q-Tgg}j~a|HsW1&kG~b1B0q z+0%8Z2^4x4E9QP|oDD0y<>Vq*BRwu7f;9pvpg>SsV!5lilI5<-=P5YWELiUP%8OwA zSd_1R1Z#W9-yDy|hRB?bMY>=rH&QOZ#{6JnCLBDpGV$mTX?f2NzUR-xa)|Em26plg z<#}9mh*S>3D$a<vO6t|4L$J!QUxgNN2oj-S(IHQizdqq?YQ`0RFpFfFa1VbmNh;k_ z#0r^~b|Zu{+Wf2tN8E~rjs(JBp)WPJq+Ww)vISaBT1Hp)+s;b7`e)9FTcISF7w7RM zvXE?0bllpYqr`Pq0zy(*Xly!**IkYfPKz>Z;aNA8l;{mHZXssSkHrCvpnZm?0SL(+ z`D2hlwtE@{011;JcPn#!1goVD>EQZ?x&KtrLU2;dzb8#6S*y%$B?Ng^>CVYTN!DFe zQV=!F<6|bGsEtC+&KK}~ELIV#^NT4PbkqPJRucgIq-P+DV_60qxPhq2tr4)vyN%6X zIvhv7DH9h#rdJhBT{`aR1?=#0`KIjFqC*wwyYILIS)*8WDYD-?Zhh|^cf2a^u2xD8 zaXN9zGnA4ZpE%_zFlF^6Kxnc!Ll>6NburyCM8Y?Q(+*DI_#|$oA1;k*P<gRQ<I$EY zI9ubwc?e`OUzuXYZF(WPr}O2oU@knCb*acW^!l|KL34*g!GjV~bqzio93$^Mv+<<^ zi-pgc91O7CQ!Tsn<hjZc41+)zR-s$G6@3|eB>r&?AHgL>A2%N>_J$3xGtDhda=>K? zgzZko@O<b2j_N{t58-apD%`Db-6E@Y8*T~EL^jb(o8aVHh?ND9`6*OvtOA*Mr%aBM zv=`jBXy`!FJ*g~KCU{E;!eBw7$Nbi%A%p`lxOY|G>YA`ob8NTp;pV`rk=2CJdm_u~ z0*enXvd-VcAvU;PnQk1j=-<=O0J6{`g**3?SVD{(ML$<banY~=RI8XKW|*Ljl`GhT zZC3u4ByI-MCCUdRsVVEp0hw8(kx*N$C2D~Pg+m1Rq|*3%n#5h^vcHdcPuJQuyhH(l z=J36WvaT+{V?`N=daYl8vbm>BjJ+J+)dt2%;;l%m!DZCnyUJSLy;${>p>_y0PEfry zBJ|us?n2kphRE560!ZaQ>M+u4#XgodhDvtw&iELpAcJ2Gpz3#8RK<}Jwj(HgT^xf* zox8!#^7XcXQClf{vD?P%0=ny|<CnFLOGW<qI8KFw_l8_>0-GIRzav#O7|X&pO*6+g zcbFW;H=6AD#;LPlj}lk-CicD*zD3Kzw-Zz^NKHX-I}ZRSJ<Rf;vk0KCnmC}V=%`bF z$s;z^r^+}#BP3L;^W#ueUTrmyYqq6Niq@7fl0q4o455--9)du3-Y1r9U#Np#YTRa% zqCD?VNgT4(S(IlH#r>O&Lu~nGlQrd+qC>0G$O2@Qe)KLJH!Y)XWWHJIsa4}G=YFlS z$hUuW6m{+si#`q=RR(#c8mzM?M;prae0h5&v4$x5BV7)audkJ4ZKsG7jR%_0`OCB? z;m(SMJ*q=Om)T@|Ce2m^DfQfwRUPBR=rZow$s746;-q;zy-g_s+#qR@1UezS81KYg zJ(C_xz&f6Hey9OU1V4!$MyUTc#|9yS_aE)bZyuRM!-z}*&AwC&a@EVagwO7hBY+Qf z9u*CKIE7^5mR^3{08;dlT8l}}J#uGEG|Fd^T5So!0Ee@~WGr48Y-)Fx?x~lYr!nZ3 znpH&k<3XJM+=6(ElXI!?$e%j-k0*9Sg4!IqZnA8ISfY`lYA{O|gMRfQ(e?qMpXO-w zl15%BB-<>B0tlooY>FRi(rJH6k3N<k2=u$>%63yyIx?=J;{W3rop;a~Qg$PZ_(fA@ zRC<gtLu}s6`-&f62OB8+P$)pge5l#|28Ei0KUHHLDK>XAjZCUaB2^(lygv;ELBpZM z6j^1-|2T;oqFT3~Def4R&mPMPtrn2V@c9Eww%F<BMq_$1y04H1K~jxfiNVP)%Cj>G zoDGRV!?8^=7wcmz>6r0vb$M)aY+|Ye(R3BAt%}a1qw;=>S`7d@p~Y)f*kU^03o3z4 zD517yqgXtoh)#@gfpivcg!13PMiI(8vP7x`0&ELKqO%)Kky1K8tFnvM22^k{=0Mww z5<$GMS{aZ6+cJ)1a-JKc6zEb%iy+E&UX}>Y65$!k5CP8uR0DG#KvfGB13Ab@+vp&N zDh;Y~E<y_vtx!uvOj|}ipcCw2(VV0GI_(|=WR01rF2XSNya7!R&J|O4?PjJS$g=<8 z()bq91o4fEqHio$9V+ihcdu@^G|R*Tlc7Y035d+zX3am!z*kdvAw=>6DMx!?xnwl5 zo-UrwR0yj|L))j#LLy$ko<s}#Lt|8$q2YxIn<Oxb9QX#}c%Lm*R9?(O^N-m-pl$#X z;`XK>zcTv_jlFi@ONDHP61A&3Hx(F~mAWcVHuam-#}>MZlFLXW>89HEs>uKdYBqp( zz1`RZtpT=;S&=-Pg&PS21Y`JFOe57RAbjO?40{88SLugo3Q+iO!)PwU@apUA*sq@R zNujU#<{%;v{6bUMbi5)45pB9iBl33YP?}17P|f`hoqvn-?=TC@=+sK;lEDV;inHx! zz_1(j1q9xO3dFq8W~^hKv144(*ufY_r@rbn%dYzNEbd5OZVbqc1GkSZlRl*zVM>d- zfCdHy<~!mK(|d|RMr@kql5+-QHOrGtWASTt3#Vs_a`@EcMxt<Aw1R=?t<vX;#tpD? z7MX*|dWp##h0I%~u}zhC-hTV-FVQ5QF4r0lDF5Lz(S=d;%m^eazYy-Fg}&^w{vO#} z%zABdoc6UKOlBZ}fK%~=Ov*O0v<Y?IBse4Q*`_I|XVw)KOP~_5>UAJ2xW5%0UUM9% zB(;glDTeCE&LC42%ml{M`3)<dyE5whdy10><|Mz*yKylC&2uxD=!tj%5oyUj1Sg<W ztm?c+=Y<V_paO5uuzXt47C$A$h|A;v@fcEw%ONI@2CDj_O>5`NwMS>NC{EHWFV`5X zJO3JU7H+xLA3l-*gmOdpV#oijw})QZ`G|~$ciTau2$L5lYiTVQL6ZRn1C+mgaIleV z3sT3WYPwZX(v%w$fepaJAmT@BhiOa!PWY7585}*=(IpZ<?Kr+*1I2&_2b1k;V7`%< zrlaACwpd_$#GHu1rorpMA?PPG*ho;L-)uRC^J(KT3pt_%R9b6%%J{OM(uEg4^o`bo zHFQxJYp1;!-!-|WO5WE#{rofuEDk{s2Me<5QEm(~&dBuuo$a~Q(T&ng02Vn(6B<?s zdRYp3SaFLHi4A#$I$@#U4M5I>g`14Fy2e{cfrw{`YrJ-W@db_7D`Ik~A{ujX^6Y$z zhh6@KAVD%2gy4dRCo|DTsv<SUV?;MoBlF8nREp-|nB0J@uZ8An6ZLlfKBhb=@|xGi z^6LtlBo~7;U#&z#NvDb%YwRe0cbYVgClc2B)DwLvVI~#Hg=w2Z0i_)EOv-6rFR;_` zqV3|1Y`|^An_gQ2PFmi^vAMz_5e7|fj-?#UVx#U7ky5g<EV(H4=?WdQX&V^WZ2AA# zd-GsVuIs+9m*4W<>-XOLX6DTTV1Vgga{vyNp@ctR8bz^$X$Z@}+87yjs1(a$l~`qa zX2@WMph{Jl!9WyCViH=RK*%YJlnhY|WNIL>C`zFm$z<7#L)of0N=Xr&FcnrL$4pAH zshE!Gh%xi|e$Vax_3tgSU?C|OSYG$9w|noo=brtXJH60;7Aa|h^dxv|1BI9t(IZh6 zcv(uJR7g>n<QTF?7(#r!d3`ZZmTi4oU_;Q+4&QW)&e6&ajkOjh>1BXUsyng7vASmj z{>2=CGkk8B8S}J8W5Wpoi@OieGc&O2UE^X^Ixwi<&UG>b^rN>dfF#3a<rJR%6RjUj zCT~dyd!tD!C@Xo0|LXEJ<=xLh#JcN+^lC}DShI}=qlK``Ykc!OVwNxhYLrCYRbVEO zx7h$E#GDEQcMU?u+<H3ucV+sz%GGaJZdMQKjc3okHq(6S^}-S}#_jw9A$#N5zb+q| z2e&}0R{z=kk5<pY#4ElXw4*7ZhnAKsm`7i+!Z#b2tg^F9AIwVQq^n6KM=zBSzoGWb z68RQt#`#8SZ2zrh!;dxVm+Q%M@hwKLEmYja=R#V5RBez)zj^6<=n^4PqHT-zR@44? zZg2BavrdZ(X<3^*sMqri7kcs6nO>o}W=8vHw|S4>brKpk3cNeWv4HjeD_e6^XW3-< zktF5mP2sUbYb~IY#cragR*oOd_?EtAzP~^&q<l)=@1M$WV5FyZSM`w`Qy^4BzM{LO z;?ceoMVc1f#El_Rc(ParL4=9SR5$>F=9W6J2~*HqACB?~-mOLa=`WT9=IF-&G2(y; zoLoksQeyyATQEZ2K`E86JTxnGI<Z>rx>K!rL^yAbR)0McS}y+8@X@u7wd@Bx$umge z2sX$Pn*C@I2DRnW|8jA4aQeQ*)i`Aqez6E!O|nll1<g0?yC(OR_OETjK;^lbX{z7I zWlaYE)tIwbj*!U;dC@GU#89M#*J(dfNN83vE7Er61sF&l<aI*<!%e|2aF9>Qm6>vb zM}i#t+CiT+L?m96R5y6qZOWc9GOnhi-HsFc1$DqH-Vb+AV$qTt#=WDNc}9ndirx%9 z3<knA7hlh$Q2}DxGW2FueX8g;i?rp*z@jt+&Qr!0n_N!6ZFHr*f&svWz3ajaogJ)= zp0QN)B_U!`9%bj_$8I1LNn$9hV0kVBir<{~Q1srFWHlKmxY}gbQ=gO3Z=`Wf(uybg zMdcM3E_>Pb!yQ5~p4=0PgAX%T35xN~%|NkOKoJr1g+P%n-3$~(2NzHjc}TeUbqvM7 zn@hOL+b6;<4$?!1prMO31xj}EhK&YTN@5vgTo(ny2pS@pj(1+1Jr!~SVySFhA#1d! ztZ}qovSf+YEjx%eZ07yf6c9-yP@S!aT>5NgzYKxC;PKJ3+N~pRKe8psh2?DB<R8n_ zlFV<lXtUHqh{BXv6D`&#%$-2k`C1{Oapi0~d4yhzU~)V07shje)ze+Jm4jh6)q`AP zkbc<GM;pF`X63<)ybz<41x-w#e{#rt#L=MeeBzW40$Q(;BTmW<EyX~aU}O1)8>@PZ zZjEPuD<G&99ZkTp-HMpS;!{}5uKTH<*y~ePix&f^&V<k&69jDPg^g4y1R!Wc#pn`W zq+5I1NWVLLXWKqxlPOTj<bsnNc4JPiu(aX~vPbAj_1k$-*exQN9au=rLz;vA-#@z4 zj60b{GbS_Evu96c*<3R-mgLT2zJKLXGwL3L`^FP+-+H7cz-Qar)KejucDYA0BE92k zonO67GtykA|8WwU;49CH;PIr2xgMo6^ocEC?JB3&u<X|r$GDb*U}mxKbg&RyK)CqO zB;Sz59<GUgAp9_RQk-H2?mMobiDGE<{t>vQk>uR$UI+dOAx026$wsUbC{QycmQOpz zuXD}026}rSHBdMQ9iXaM*LuOqMpDP2m9Zfs&ZLIY1;|^{=YtK?H&)jghgud~1$4|w zEpc$mI!iBj2a{qu!Kz|&%-zJ%L>aY<HZqrHrn@wWSj^Qk^mvt_$oy;W#V9<yW`YF- zf!K_UCdsTO4<l;5#An58`o;x?)DNV8J|@uz2&qTv59^IHr0I3&Tr@6|kuJJSkE}wW z&*|lzJ*m+i0iOO!pDVwUm)BwGnpmJUI;Y5<U7!>_N8W~eVz4c>hQe*MpF&IkXTHfO zd}U4?Psg^WJh<79sDtdj9<t1jA*=225@fqe39|bHS;+8pAe%tCKfZ?&bf9k){J#!J zWo+L8Qd{5^4%>lr(^=EIf>iY$Cvz#JV5EYeOHX<Lw)*JQvp5i95&aNfv%D-u<4M)N zVVSd-zTP}%IR%Zw`Pp$I&diDO_IHl}-5>@i!Y_4e@3mFbq(`k0d?edx&o*D|!F?(j zVR2RzQc<8+I>3Q-fa>W$r8gbwIGluj!PD<vfaJ3;aVNigy-un>#BM+)Fe+YnUGb(x z-#-5m_w8f12s?81;0<v&9fxm^!yDu9C<lio?Sf+cWPkZ3?&}{d`kFfV0Ns-Rdw0zL zS<J#36wK{S97wJLNv;Hva6naSN$T?cZI;K(-7W5Yt=H`5B_=MA;3cLI&m3B6?WJC` zpK)`!-TPXXUzcn4eTQRR>`7R@hHLiIsc(N4*6fq!KBg}>v}Qlf^UrV19)=FJg$q-5 z!Y_8B>R+uDN3U$iZa%>R_PI=ImZa-BdcSE060(Hw$O+e^6Z0&+WL;A2!3f1BH0<@6 zVxg}*gww_vxxUdWXB9%IZGf&tWfOP=Vnt=&dios*S|dlxTUd5}+(PV2A|G<TeN(D? z*^E-~G9MF_3*mGwR~%A0;wwQLoZgMCf;EKT??a@@mNV{%T4PkvfcVr=zCAGoq+BhZ z_vKnT-|Flq3+>#1$xi8H56Y)dkJa7zf%~)hG5)`u|L;IPlk@cu1`-a3`GqijgkKzv zB4Tmz77qNP)(m1|IVUo4ew_bn{%8O1`M5Z(f6LPa;yn!zATOQ$3K3ja5X7%2q76M> zMi^)|I!RkTrpJ_;M1Y<$e6Gxy0&3o3SITr3-Gh1LrlP_SA>&u!UnmF&$>aE-?HFZz zu+#^~@j9PMuOht0YjV?J_LCCAIMlV8dbb*qP=x<NP2og$XoXxNe%Rni*Kx;VtF{+s z<2yF;NV+3qDa~Lvk)yP^MVe*adSLNg`lro5m{lJrqN86kX-=BBvF1~IGjuaaFdNeR zif2+d8W`Gjx3eHfVOroP`l5R3II(*C9hkKvX%ol<u5~>vqo+&w*nLv4nnq83Ai=xq zDQhTUUODKgdd&tL?y1A|sK%Z(Coa#M`jG7VhxK!QdH$;Uczug5%r7^0)<<-9RJV>_ zZti;Ga($~VaQ^E0RZm<ZV|uFJCoVVh`mQJH`cnPsx_RRAye27d&J&mGJNbPHBwU~U zRN<2G4>D^m!wCY|B8u8_ob5<z3SQkdzhj;Be9#0{D&t=a8Xp)-t?~-4s{6D0*k!(U z?EWkAnjM?prc1Y97Pi-SsNLIj=ZX6EaebVO%=p0ys;f)&ZR*DXUc2L2Q0n$)S(wM3 zr8l=d+Y(yvWTA*Aw0S`fC$tC=<_cL@CN|O>t8csi_V?UB{h{WzD|(IYa?GhntE1l8 z{nhb~_U?Cc_;vPt2QnJX-DF!;^)C*{7}GhBV%_ijEBm=k`Bj$V{2x!IE30cVcFPU{ zl0yWM)$M4M5nk~S!~`f@pi?kAuU{q;{7KXG=Ww@Sj=%IQmfrF-$Tn(Aly{;Rv#VNB z8Kea`jYMHst!gFT)(Q~>Zp8r==ykNqUv*1ucMqdGCwoY`(Lj<^A*g$x&dzZ`1_(d* zl8g#Z+;cC#QGH|H%@s8HWiwably`IWavBw^FRd#)R4<#kVpM5ey_`k`mkeTou=cW< zs+Z-UNV5E;n5vf({{07K_K}w#0)DM|aGO<s)aTQo7g)ozhe{fjWAT){iKJr>JK^b} zz*+-Bm1?DT;o|QV2NVM-#i0fau6HUII+OIT;w&MkRU=&zNl_|WsCdfw4@FKc0c&ZP zfQc@tXn|Y)e5cV8((8+b^fdXo3JGRKyjH|(l7$(HTz9!-Mny)@BASkymSi61(k*m< zN1xLuQHfv3DAAxZ0yL`c2~T5~HZt1~pP^&P$V~^Hx9joy!u5E)FTYS<<fQs;1YtrT zKnTZ9asI&I{M6w5?!oyzgY$a_=Wk|msuN5S5!305IXY^qoTB)?G#SL@>L&`K7}1P! zxj!RMqjCJ#irk;m&aY|rCl-g!xk*f_=mwiz%Kf?8J%+a|o<Pd4SM>zy&%*tQ4--6= zLPY7St9U>!H`DFz&#B#?Jek~|6A%#hr<JG-S-!OU6QsPrcyYObX!3o6@86W))xOI) zcVwG&;c?`qMR**(TROYy@Hld^^9yYuPo0zleqfNsC+Wyfp$|bz9~xDkS}l%5gy$NT zD#rt$>%R`eK-S)Swo$PVIiAtkIXj05XiavjF$y>9gU?Ax#JMO1axKNr_m4O12#PY~ zU1JIH!e6$I`9P`t`|CBk?A{>z4Pn0T#D1enIx=p^s3S+|=LwsU{-Y9TxAB?`V|ql} zcm5&Q*hfl_?&E;{N07wBdWZuaR&4`{*Yil2esIi@Xp=~b*7bhZz1P_-oU@Z{0nnAw z&@e=scBJ}Y+9|86bBg_T#c!~F*%Lb<Kx@9r^@)6!t~nx=FGX$D)9Pw{`z7KUuhgjY zv+C-l25Z)T2rR~PKFVjWHh0w7Rdn?$&zh7G8hA%NN*82q;oEW#a=<-G9G7TJe4h_Y zs&h-N5deM;61+0UASZ;OG=!tKj8C`Ceum$X55{M-Har{#%2{}Jl_sSIyT15E(v9dy zD%3+bIp9e~F#$(|#<yBZro)*IZRT@lx*ki;0~+cISUXXtWEj$z_&w5-`~lC2IRUwa zJrkS2_;MLLRB#hB7mVdWMH4+pfQr7L+$xYfQydAevOi2Sy+9NQ;CZN-UC`xHFrIMY zF7k-;Vd!Q_z?Q&S66IgjN^9tzP*0cdP8WCW1NU9^UcmMHnq9w-QvbLHCUW2+A9Mh} zw(JHBNhTdRX%9w40rn&n+Ob6(Z#A}PF+2!}u#+*$RMw{Wv$E9Em3_1ssfRAureW}C znj2qYZTb?1EIm7w_nLiwGsOkO1kiiMScDx;6afo!S`PCJPUa~w33E{qz^S`L6KHlg z<FoXnJB_qNEiFc@?s=kJxCk^<kif`2QA4g~#G)N_9&O?+=$3eA-zE92=>ia8x8eHM z@7%~^8%X$rN;GjGUdOi0b#|)bL%iP68YM!sS@pfa9K%P!3*X-4G#;f1UJMrb*Mmjg z*!N#3qa+6(aGxyRFkp6jGDqf`NAGR3hXse~6u8AD^TaDc!eEKAD{}`gN2?J0O1T_W z_3LG^PFPTi({(DQLjYtRMfMS$=d9Tjm)r;YQ{1jOtKATr!39;HW1qMnw>0D3Gv1g? z7iYf&TcSwnPs2~mbLb0~g*35w8R=K^qRowZGSmJHE9xEZU_Hsw4C@+yzp>GajTm;W z9KY~5fi_p(aRGk8-bokX7hn|MU4dK~?fIS@v<`$J(?G+RMV59qnt%>1@K_oOl4A^I zR&R>sZ~jGuR$xe-x=tp5HfgMM0wSn;obQZx+6;#OsG+`j<FQUxm>o#jBGk##6te~C zna-ZU!Q+&sf0vTlszp*8Oj{6zO%ji;rJpHi%u!Kd9(79Cj+&b+L#GF^RHsBmA=4-z z3MvQ)A|UG8+px1<Eg#rxB!&;Mkc6OuM@by0k~l!j_(BXIkBHe`)eg^4h4ngoScm}! zLJWXRikpl7!_CFw;pSrTaPwK><|0e0i7aWHgi+D5&JJ)+7Simw!b=C*CM^T@Fgl-T z?N(1~519)Z59yJji!vp$!wG}n!Q9O2*Mz8IJrGdetJi2McvOEW?d-fJ(#v-9DR3yo zvAQhKFeEFrcPPGxM7q_tstHIPSc=6`SJaV-9VUI?kSMwqoxLc-z#%fG=%qYPtb^d; ziOi-@<Ab&&2ZXvw6t%VR7SwhXYFn3cz9K3sg@-9sZY#9obF0O^E1R8zlghEWqbZB* z09Gf8ncSJlgN7zWY+Y-0YaKmnE;O^2Mm&Gg(n3SjNcj)?6Z4?V!SH@cWkjd6^Tf(z z_h<((<OMvUWWBmH0Zs4#qK#MwR`*=)&=p3ah^g-D;1(-jacAP~6gMDHM0kLIa(2R& z?fwL&_ES=H>I{r(5j6*CDbFYrRvQGu*1P^Ripixw*5h~;6H@Jem`hB`#qNTr3tDXd z`@q8&B`qPNMu01|RET&@OUaH}A$!k@0nV<jSb?yC8$7CyK{=Pbxx~$Bxo}@D+6|+( zFL2&DXWh)c)J>jR3y+%*XaV7Idm+uN*&pX-9L-0MX=W77_<#gDXl9y5!yCJfhWpE- znR+xMH-oxIr=|ZLy4>7S-||Fc_BeZK>vD5zed`mKbP0DSf0~1ro7?K!p19N;Ms7zQ zfq|^lym?G-nmzK;5x>N*S<Ul@{QS{+<!ZhEsy?vw1bcEH!~=MHeY755tq=I>9o<#A z?Y3~+iKxZD_`Qzm`-iVwCIsN%6ZH{(-@5pHsXoMo+lChoKhYeyKjZQH>-Rj1H}&AN zn+0wyJcILtL_go3b70*bnQ!S78h7yi{D<cU>#h5X_n<3n-9P=y;K!l)mW05H`$y`7 zPu2%7-JicFb>S~NUGiXk#}lYn2kZI?t5_r+Ikwpe<w_!EeIsEeR?SSdSXIQPFCdsO ztKlGw5g){Tn4^tvjq8KeC3=<tS^9L`R}c9rFyIOR;^bS<FthsLx2RN(_#upt_23+P z7~VSl*AknHbDElS$R9VQ5%tf&AU=>*5Wl_NVl~DJ^ZGlR5WQb*)dwaBM}3`&P>hws zE1?9s?_z){)FC3-9gTo5S|Y2susQE)JBA*xs7eX}J`(Kp+_znns3P4N1x(+BqQ<$H zcbw-TO+}(_O4oe^nP|10_=D~7v+Y|hH15V&5gG*T^Hm_^Q0r>;21KIN*QkpoYROc1 z$&OWkF3pw*Wcj$KOH*hzBS}d2P0D7UCYqTm0#UQdC&Z)1k1Ori53jnMS$n0e8Rhpk zs}jtJ!0o7Dy?Q~#n3+1ML;edJGXa9#I2a%COiVs?(0teMh^I7)x$H2K0Ck;N)WKz0 zIhc{_!bV(Qi2nPY<-L7c8whH=+>hCxa~FiA6;q~!;FOXuk)K|mQr@iH$u;^%gD$0z zabm>5L6F9d-&S%pdl+$?JnnI_6qwPR7VsmZ57Aj}js(mM2s$(zMbQA1n9}D#=q{#0 zchtbt)<_x_=*4XCC;+~(erN{t<}O{KThFg6-8bn?Rb38!E8^9F?6SVq)dLa;6E-u> zTv=QUd|Qfx!lops-bAj%kL00_y%^2EP-U&G{zXYan_i1Dp@@7&=}&3+3$vYUkjxAB zoPe<*-D-WITgf_P?TUm~k}x78g6vt84onH$n|(s)EnC%Gp$VaoQGrC5w4{1T_z2}| zBGro(hq({@)vGcB&5O2Exh4yhOGJYAlFH>0JM3M|6{%cPt6Y$kdU_E_3o`-V!_rU< zRW5yB)s+yu#ctPQuw;uTMRFr4RT^bOQHai#TGUDjW;I*&0wkfJDf2h7Q3^u=;*<BP z7t}+xRu(cG=&I^}HtR#xYu&0BPbE96n9|NPlTv9WR=qUPF3Uu$hJSQmEl(Dz*VS>p zU-?tAm!|SXs9R^~hcz%~hhPipiZxhLEuD`D<&cWeNNR_~P#;x`RH;tRaOAGo#z1+q z$_p)ee#)C16Hb7Y1UyJ(k+H?fTWkrutMb;_S9Vw4ywg2+020`EEATF~Hf3|5wNZq% zMQb}yoGwn6khyJI8!=pfK>!dzm)7<%gk?d-GU!5OJ0$5rv=OVWNWPg4_$!r7=3?$} zwNux;n}O7!UN_sM4Xm)kOOuE$+myPtxm{f|-`+)CI~;AHT_?qjFParb2li0cw8KNM zu1V37x~7XusWT`X^s-mi)P-erZA(_MZoc-=({{CtJ-t>;udJ(XugYyX7u$txA|91g zV>!^k)}fv@3O!8<8v5K0Z(8VSk-W>|OA{bH4I8v?qN!mdOy2~)3`ZljVSy9$G-RZc z#XUR27ol3#(-i!MRkHs&A4iCjo)&jl$!CzOpljXyBmbO{yQJU|5yLWs6S+=YxCU%g z(7wn{xGO?xqZ<!E3bT0zIuZ1y&jr!W08PXActLX!d|E3<pRuiDH2e^KJx?$FJ#P4W z;`4k@-^JOPdTNx9Z|f_IZ|gBC?nzap!a#cZqX<TJ>zoImfoUH_G~f4TUF9qNHPTK1 z#^A!%n?sXifDGf{FT_%taYW;FSYOtDlA$b>{X(#z$_C?;*bI6L6f(vTk#1p<&^4=+ zQ27TSmeHX(a`sd_9EnG*I8;<0I?1ANX#rn_0I-s0r*E~qIGoxk^kSP&$*qy%?beVD zmQ_ALq)#dZ9GEZK00anT<Gu~3lc|G-)t4}hF}Z=IV$H+hq>-o|0Piju00|jHt_E_# zCF(JMnvM6*;dWHR*3VJ1|NTl#`v%~~&z0uD`&H0d5A)oH&IrSOKje|Km72Q;pnuiV z-<t8yQ^?JmPd^10Tz~qh=8&)b6=B7j+IJOaE>iP)Ll4&*i^uo-@dNxl^y5wS^!uTb z70t*L#xK~(`qTKhHvL2Gpp+g?Z$G7Xer)Vk<{Lg#bILa`-&k~v<5KI`81n)i4x~Kh zEF=T)_QHbz24<{znAKbFN292oZr0z6Lu?<4;=cE@-{1zlD(LjOykJi?>%S4o3AII^ zeDcfA)mJ#^4`3PkZywO_v+Q&CJ@dg2i<Ios*Q)mdI;|)vTxzI9Bcv|K;<FW>t@iwE zwftGRw~YJMd-D)rBP)a!-ZFF;oGcz){&{Bk=NpDUUj%vfZzg&6CFsoy6>mq?H)fiF zJ^c?-OB9L0Gjc*yKQbz+kcP|7pFD6{FQi`!geve-mm$OUVlN>hSPl^fqYjXx_R}+R z8zE<)HWH4{Q%SUtZ2O7)R`VIx0ujA}I<B9`<_(py3t}uOSOWBiMk>uBo)ls*bbl-# zDdmW`#^Xu&HG!D28bbIbjs$-Lw&uE$@QeFBgx~d{@T;$e@H<9elv@oRLS+*Xc^P7K zbunPc$NN}QC<6{hurh$tVHqa)Cwdup6z&IBmi!Zl(u+rXFNU~<MQM62lW_-MSkO*S z#YP{RFnDfbo5uobyNlS2)lxQ3eO^^Zn6i+a<4W~6kLGiU$wxo~*o^JNh_|zWcq;*r zmAzfO<y)O^qOxy-3%mFxa5#VtB-HOB-X0N5Wf)~beOPSgri(}8VjYK*^^wj3BL!)d zp;W3`3uBxi8*x|{wpkM>aa>qvbqWg9Tmlm4fP!u_GlIYRz6wL*GvzsdiJLJ3ZLSdB z6&JqU0GXy5f!^IFp!dy?A|t#6POD<fb|z@V@5JNcw($1g!$}S8?#4kj+7ncLLon;U zA$a+V-jL)BxSj;@HhKRRI)gHqQf9p5dV(?%=Z3AgR|ka331NJ%R+VvV@By2+1Z&XG z1Cr|x;G)se?1gG;0Gk%KDBq~hSwB%JM>V;~El;K{z6991e&7w~V<I?AntJ5^*m6#Q zhMeA*o4G9U-k}atHn2b<_p&ENe0xvS59whii@O!kf-p>=$xM068-cby;MWXvle?_B zr8~D!=F&}_mU)`_{{R_7A~|eH>HQexr{V(nJA!3{vZ?4D24x%6E!IA5kXuXopm*_- z18B*aM{v$@Mvb8|hHT_(bFD~u^YS^F@`~{xZ$nd9(_Ho!i083NC=VW9A?bqLQ<gp| z;ZgT!KJUqQ=VoZu&>85X978F3ZtZN-aPi{&Rj8XdP81BIAdvW%d4oc~V}61Y`Gp|t z3SNNlGZphY>zV^1P&bLVCLPeXA_a#HKXvzD?G4<vq{&)V>=5s^dfyoY89dHso4eel z`mP2`+(Z$Dp#yF8>POWJ>`1)(&Rp<|gJD4VXuE%{YpddFv<jo*HDG!hnlH9*M9%YA z+@TleAu+d_RZSS>ozW!dihr_`{{3sK`z3v2QXlMoo)a2KGmtDE)elSkDqDqTwIk3J ziyjiZCNuyOUc(skcroVFN`q60j7~YhzJ>az`f3a<-SsDclHNXDyXb=~SHn3S51n{} z*;#n@I-L`aqIVtiN%;uK?3(772Oq9aT$EP!s%RIaU=iXUteXy?i%xYn{Z%6hI&WNz zuXn#9@v3aSxXU@FE!>0W3HV_hYYuFIZnJvs6$JT~cpSC~`6!HdVs?^RC4%?@lPNpS zTwxA!ewWN5F>}H_flsp|eV=qV8d#gN#o_$$Iv#Rq`;4>~xRFH0cBx3al}j>V`4%sT zfUOBotaBV!dUN4Zb`vqBfdKT2X(Nj+VTEeVGe=9~*=+><7zyG8H`QxHt{au662vmy zp?P~%7vqWCx7|mis>6L}3<mj|0lMLjyq924A(dDP!vV*RId%CqfpR!b`TmWnFld&9 zpu<|~8PGD^7z_)<j{bEKx^RjIOzU+%opwP@EP)l~%{$k{YtV0&UH;}ZyV#IqP0<`- zL5(xb)R4(U`4v8{jwsG<;#jD2G~o8S;3%v|GNNpA^Q+llEIi-W*_03Z3gXCl0|1{D z^Dj^cC>`?t82}1Ar~`}66q(u^)-)C3yt=q#Slbgopq6lTUwvF4?Ks~y%i6x35fC&0 zO6T*#EEp|TomKTA+V(!D_%aDUCag4r0wCEP+9ui6hg|n~gTE3iPc#`%ugXvo{?yt# zLfX5e*GcAE5)7@*5znNehw&!j;Z44|p58=4zR5Q;Z>LiqL6$#^#J?(;<i<Y{?^RE3 z=0|awT`Nw>t0!b!SeE2zv<6&Xic{jkF1i2)7El?0>8)*&w4@)%%g`X-5MyeSyvsF( zJXETB(+uJsKP^a>ZITlaRFfnlV;GXmzC=6*+$#|e#|tGv+KWBK3oTu`xp*O(L~6oe zyd<b<A-e(L{7xFOZMmrVez|mEL%Mja<zgU+jES0n@cNr%RwAs?_#17^+bGDhqn(cb z8Y!T6hQF_`^Ar;9QKoN6d_-77pv&icd($E$;?O$@2_FG?NVP>sMSmees)QDR@4O22 zVg0%_B+1*7B)N*X3}vG`(&p)ds&U;WW?ktCFjjJkgyi#c;$Fw~t$Orey*g*6=UGX7 zL{LNzC}hQnM51v-q!NyxJBNaoaGF{pE~GjG$2AMP-J%Y=$s;O_7qa5QX+R0??mYx{ zWJSF=kQJ%nNPu~g6&GzSiI}{`K#pl3a9SOBPzR(!%Zg%<L_De?$UIZmiG%)isQVQ+ zd(qLd;*f<7zLrp(iI$b4`#7gN<O|^l#C0wwU^yIFDQT%2*#Ojwi}5&bN$`U?DceV? zub~mkmT8gT=Sjq)1{h+*lB-lLgAr5SOxk9hStKY$=pg_h`=&($f+UR(kfBq+@<D;Y zH+UZhgH}p2l{{c`5DU!^l{yFg*Uj!y5)ZoQ>v8CwsckPLZF(VXbkG)(jr(h7s?OZ& zxX7uMw#=v-T~SBI76i`Ck&r+z%PC@g_9<y&+D_?2!l0L$0S~|LLOo_;c+-EU-Ff#` z!4g^s3n~+5BnL=EIy<-wF6mp*@s}Q431v`E6X3oU-~#mo(W<^hl7j=>Ej6yfdfr)A zDrzBRBvY9BG7S`oYqRQCtNdW%fJ0}mQ7u`+VzTr>DQ&7>C@YURpr!7_2FaBG0g`sl z3Q=qd!HG=BPEJTR0*|_Ih;0tu`0^g8hS{UOGN@)~$|ZhCFcLOPRWmG&wx9s4Fj3^h z3OfVJk}uYSSyVGj>}godu)CDl=C*2vi3aWP#nORYSfS9gqp5qbLiI??XInKxO`Vp{ z4pxYU<>j-zCuV{JR(NkCMGX$YLBXcbZnM9QRN)ZX4oh41kf*rj)ff%gNaAIOnFF}q z5mqLXIERAD&H+)|s!P>$fr6c%2Or~pzviH)@MrO*9t36|V%ovFoFu}or97gQliut; zpx9OE5yEMb=TzQ?8q`ayYoV(wu`c|resM3>wP<UJb;(Uj=Md@6!_>{Yw4Tkoj`X}M zVbd<WYr4$4*1DfNc$d^a%L6ncvIdpHPnQ{yq4naBOE_x@&9vU@Il<GWyA<x-T_XP6 zz?ANXkziT(+kvyGEs=h@z!W4+T~oH0v_0Ynq=xo#n_3mJ>f(~z1_1X$R?+$iRNjV2 zDSQj+E(tQgB2{o#04=%-Au@nwT0~0#nwc3cT}l9&2|%-(1<;am{2~Epn;zKDkwKFH z)U(PhGwOZ;9}Kenn`^}_yVmrQkwGy5gdfW7U_dwlgFqHJ95<xvY=r}JBWikyia87@ zA|RlJA|B;AaS$?<Rr(fGVV0ZGBIdz5lXN4If^<I}aF}J1#KUNjyyjSPm&-djiXBuz zvQ{WaBhLsSS3Ybj;)Qg@tk$Lc-wLu&8N>BH0F!_;*wLVfmq-jzlZe>L{suux*YR=< zuluw4amC7$t9cj+oWl`*!A9`H=%55pF5b$4U$@oyJmY^Nzg@#?&Jl1d>UcTm%wa3U zn<Qb9WWp%Yg_0mvhQyA;Sj3DD$<RdzrX@%}h>=;5SSEFHHFDGH1sDB`LMeO)!4o1F zpE3^^e$SRfV(I!fS=#BXIlgO6+%i|t#0oJqw>|C7`chr$PfU0>p(Ft4D@=eRAUv1d zGpyz)d6mVXFM!2B`&q-PxHMlp>qvNaPC<HrXn=KH=hjjO8amfk=js~1(ax;|V)@Y5 z5xaKhqK=qLYB^i$PL<<QVJ_F<YMRUQ6LlRWxEjiFxiFWDbu~2=xu~{vo1W$TWPO5| z`&!#<XZ4+zo2GvC6ZQO3eNr{K=5utWh9@r9ck%lYsI@WsdxcXg!QV)>48w5^3fHR4 zHJ{%>wXNf-&IM{>mb7Fiq7WWkJRh#kMJcXhQG@Gref#{Fs&lC<7l-3&cUX|CJ|5M% zSQm4ua~)GZRGsViv*11@x^k818d0LFReVIM&gBJ(Wk@6i5mVlrsLpjeHNm1f*D<Pb zjmRX{F(;s2M?BiGmUp~Lov>}~-S6h2I@fiYYi_Qss`{PMJ5&eanUq23hyZ0}5=bK5 zzONR+_`<*9CD(a^kWad0jB3ccyfie9XEu(<i`+haGxa1Yg@!1M;l>L}xCeuHm^SBS zWjr9;bj|lv9M`y{v{Y|Gu5w0G1PQu!y$L9rdnR0qbB?m6+*rMdmjq7mgJDUEsF3?o zl%%-cmtRnH%PW-+Q0;!RXpykA5Ro#ae7c4KO!Sq?2d`8<u)d7>h~U3-@R3(49}uSn zF}6MK>#XuYR8)s8EN9}p@LZcz`QXOB|AOf8D=F=v0Z4-1nbQ8>D#Hg$!Ye85$si{a zY52NPBax<7>lc{P{tx?<c4bNoQrZcB6oZt73^QNnno$91{c=jX^}*BiSc#b7%h7YV zFtE1a!r(OtyC{E+V=2Q$h0O~MGA5lTxP8LL14MVUF&>mTfES$h5bm)Q&%n2^5%RW- z194~S#C65tD{);r%iOJC2L<!v>X<GP*ZVzFG^V{0*JbU0F%s9wGe~7<F-~a4dgYfv z?y4mMg{)aiS}zWk2au{0h#cO7`a>#c#QhWQ!_&S{%h(q>q?_p?%4lX+E5{3IChQ(= z=7tj2H_~W$W7pAeUs()`(J00r<HjO!UFqk`iR;#pmlM~Oh`u9n9W8i~xNeoWPh98M zQsVmLmBe+hsa15$OP09Kdgv0@H(9zjkhq>!5XKXhWVaOdNL=@`U2bmd{{o&bO9Wr7 z+}szV`4=QkyppC#AT2d^Ui380-+CoYbKnzP7D1kOn&y{RpLd$(Q1<9*>R9%`M<Ce) z0Rp-v*#iS+$4gbUtMefsCU83?W8z3%$R7AW7w(5#qDc2XY_(n)+^bVM<{+H;WtEQE z$!Ry0jwv)r0Q+e3lB8o&U)SydX7~Y&ib+t~mX66oN@8?6W(cAZnS=q?O2?c;8Um(1 z=M6|KyTNqKMH>n{LS%ih(=itf5Kk+%*r#JozJYEo(lPltOvmKsE9sbD&*_-4u^z<e z>mnWVCFsoyl4ySZmi$%9s5|<#$f!Fi*S1tCNQV#C&Zs;3N=BWdx*am1)V&k0WYjsh zF@=4>PF~84Izlm&QFlBt>NW#yeOS(@J0|Xy5&B{#_X0EOj_u5-tHn0)!R^SXn-_$f zT|c94!`Vdp2_d0qc7w!5fY|MLX$X{1E*)XfWEw;uv;*Tv9zzJ2zbeH;6K0-d0%z9Y z;MtyAw}J~*SqyXrr58^(g`V+MUYwt(*Y-}gyR*dBC70$>y4_t)faJ!|E4xTpQapov zvYjZUC^h9u*o1btJ}yv^zNG`{Z>is1_g`I;jJHmBwybc?$?%+>9M^{(wZuE!gNJ$W zLV9v3Fm2lhoux<XuU6pMIz<sUq^!Hc_3bvbP8j7~(G!FWavnNi&cFKnI)zYEUc9?` z1L<~C0tWWZx5H@IMBMo4$hWhlX*a0SODE**fUE>hB6b%Ua4C{S_DBcCL|UE$Tn0c| z%FElkRaZ3HrOhs|dk`F>b{)fw33NGo?@nj$orob|*LL=v+dPzJs=k8|cMY(++cnwi z7>n_Bk94|_;&Re^(S`2UH8cE}_AbNkRStU9HqtMChMyAlj@(R!pHc!9t(b!Gs2#6- zr9l~@9TE80u)u&F8GcLSxo(EvA)8kXIkbQj8*kOu8Ga-*NC8}#_v3kyGW=ro4F~*U zX81+co`M*iu+@bjM~2_hrHRu+nwKiWPaTO2KjmwlV{N)U1(iF2^Q)QR_w@l3cw%HZ zMx3_6((O90OdW;3CeSRlNZ%IOxk!QRGyLWPX~&6gEW>ZB&F4oTk82>e&Z>Hgww)+W zX05muIs0&4;_SEZ(hM`s>MdvZZT?x#@H>i``pEOh@bi1sFKy<xr2Gb)RFbc<?Ul$y z$|)5t|CaL`RPh1p(pMqFZ-0vq%EaA)kR=iovuTM+@w-S=DXoE2Koi}ez!K#pZZN~o zS&X|^1b5TJ^k7=vC9UB`GW^6cW4TDx=p)6w3>cU$E=7uOTP}T1>d77%exx&`ZD1%; z7t==30;f3a-<jcei$dx(uWc$2G05<nEHeC*w}&Vj5z~e^fKPP;iM<st$hEWZdxRsx zZ<1_}CCPRv({F=;D%0=SH8TB_Ac4%h$n-k^j~oiB;q_5&y;6E4sP=KX$QfGl4hB9L zY-7`eh)lpvn(gGz+sWvoM3rtJsNNBRD!Z^A+%Bk66#zjso?Mc_wh5|E5v29oC82I2 z0dwH%A+Iv>gr=!t3bH6|b+V{`ZOirB>~8MJm#7zC>vH|5MkWMWlw;W;X$*4xu9fV! zJG3KMa|gVyoep^Ye83n-iNy50@&OMZ^=VD@GS31LA_c-ZB3|CfpPh0<mM*3Az}@o! zBM5tEKA^ya5tkg1MOqz<rt82`KA@JiR{q#g%Y8l|K65ilZOl?%BOkEuLLHfa@pnpW zITEwOOj5?k?)iWRz%46X;N%jx79GdmVDraI2QC${4sa#FY0O`3aP|3s{mwN(CwI#S zT&9>Jh;3H=y(-^&B_FU8#9zq=R6d}J$Q<Sf=Q|R-l05{jkry~|P~y(KKneD+q9LOT ziwx1|Vu?!z8Jl$UI5ADr*ludg+>m6~?R+k!4eADb?v~(lw~*(vozGFG&3S@)^4ffE zIWdq*W~4g?qnp-8dqy`*4D3?@&FHF*vqe(-wG#tvU~*z$oGC{r5q)W%uOtR`VCf3y zs6yKSKwr(oz?6SV)tm($LgqV^d_kF$+vMTrlNk7eCEH-&ml^e8gCh#CJ*SLa))y?0 z!k9Q`wH+hmz8%m0HCsHLzj{AqDf9MonQFet5&O|xX(6xA9_65PLPzEEB(B|NV)>H~ zI<;Hd^DL>Ha)JIT1u#dV8x7yF(#6I9fjg}7d4}iTmTvFHN}YI=yR7{T537F5TrK-{ zjy%B&E3TrMD<{VZB!!x%D}0tx-PUi@-fHTcUK&(Irpfd;UqwMy7~@iJyKULj*Ik>( z)2x0-@wiU&QnDFM^~GHETs>5pPeYZ*svCU*3F7_BXXMpkgq_)!a)AFE2Sd$f61S>v z%5%gC9Ph>KM<QxiW7e!HowM!tM+LUW+SP}u59CD|JDmuFUD94VM)Jn!wb_Yw<?;3_ z+TXOMWUH#F0#$DdH~CAtCjK&s-A4%>sVAvus}K%^ZwS{s>M2r@SjV^$>L^9w7uerO zk{a1fB)+l$oY&@7XR}|-!C2;%EX?mI3i>we%#+^!bkP~_qcH9}Gmg&i(R$o>1}nr- z)}Hr1HDLbpqWW}Nwi5>JT^lA!L&XZw<(ksF;#};fBh*?4CLBhrmeKuJ<OlU(r2q=; z6RLm5LL%OQM}W0njxb*~y)$NVvHePRVSh=Cp;BZO8o|29?vV$Wb-eT9>@%ovK()zT z=uXSBYLALY<We(unr;HG(Q67jV|})wJ#O;$%eQ)k@?{^H1Ob_W>k!F;U&Vp^)8{{s zkKK0Nfn@!ts$VbIfg@Lqdm*srG82%b3Mux*csCQRc_aDgLRn!g7<BiuXC;7RfPiAh zociE^C@O3r2(`ylZmQc^1N;;y%QmmG$CZwVJ`AR*F%i@!m>Ay&BMNHIu=#}y3VPcm za^<&MHQ%yToguiK<)jpKRZ@1K%tya9%bvWiE<XC>4aK{4z26_~qbldUI{W>?#b=!5 zNMi3<)Wz}azoSeCxJ8;|Ed*;>L>Lbks)B!{3c4Tzjv<xSOUvt@mql@Td`YPI{>GKS z@B7{dYoC1LEf4DQQ_YC(WcTq)C!gg0#fuk5mx{~&o!$4nqsxAPFU;f7I)6WF-VeWJ zblS)6<|pstCbec#6TDj&dixVkvGQ_%=P5#Z;-tIuiKp<FF$ga`eMvz-Bi?v`H~Hra zpBQ&%_f^Prqps|CcKSojq`UQrXXY#Ed<8@EPphE8_d#dI!>6a+)Av223PFQg-HlH? z^J^%!<EQI<kDH@<^mM(}J$_$3{b{N5-#5CXQW2}o6hz^iY~qz>Ql-n2>O;TAnl7Gx z>ZykB{*6EW)o1?AKm5qId>_bD3KrSD!n$+@!lg5|yM!zA18m8E?8lq@X+I~D!kI~+ z&sM7HCr4>t&}HHzf_~*}J9(tug-Ch#X^<3@hJ$nuoJdrxSrvYmCbFJR>1z9Aes+I` zW%ogC#5;Jid+OxiDbNvObPB3EmIs@ZgLd)|#C6K6h!pJq97J#B+C)!VNFAjk&_?P6 zs18QWfzn4OAc#-juH|Tf;8Yy$R-a#2+!Jry8*jWJ-k{y~w|V0vM=0k593+SpK^c4y zl|^h)EpfhUz(8$pzPGEp_4f1E>Md{V?Cmpm+-z?}rcA?@4*#B_#~+E!FrxtE2GQeZ zkKHW5Up(~qByI26+g;J)OE=xyJ<#Jrd684qKelv&x=09g1^-g}SB<Gd?@a($&ycCb zhD~FY7l90^Sbf<&gv_JMDj)BZHj$RU+8%$0N&y7B^|$;4>{ad<q(kkYDQ=6`npa`8 zEIu3toQu)orK|pFk#9;3TkT{3R~LcwN~|MV4X)wf7#vQ+T2~O_iFRiqLIxSho+0E0 z?ck-+V1eK;B0_}P+5FZFz>r0f;H~;aJ!JiodTc3xkkr{{A?5w{Mm|FTg)h`4yRO!2 za+|D%OhB9LNY2+4s;@osIPAlq%7Fq&^9;$L5CE_Vr!DMN<7I>=BTtv*03vdQ!w7%M zipz$mUz;wFPWP-Duw#HOvUvfIxPw%^OXG<>Wz|7CBk7^EVS3Tc>VKN%RR~VN8>P_u zQmvkYKQmCNX;Pc(Rcc>7cYpoE_2{{GBOb@l1oX5MJV7l$m}==El%RR*4kd17H9|hA z*S@`xD+d8w&hXJizu2neH}zliq5O<wp)(gGu*n#qO}pAF+VzzHg~d-;D+o#C2!r(r z0XOuN_a7&QVtT&WJlDWgGTZ}vPS?h4xO2|Qy?|(ZK6+eu1ge{^v8<e%!*2PCUL5J$ za<#~t^0s(UD55HhZ}S@nSPYF`o?%kyG9tr+6-X5^X869ChW7Y7RW?TEjhsqJZH9$R z^2>^Z#<lrWmiPz#pa)m-n8vCxAviLoi6Ky&?*0XF@^hPIhC&BGRc%_>HD)K!IMao( zE)=@J8U0ZmK{`91ctD=NiRZ6IoDSg_jL`ft&tX{5j8lLQjAPasxM}7YZ9oUP=vl4Y zIyWx>m)q4vU8)(ZDrqBo>m3>g)qqmyRp(UjQ61JLKVGT^B=sMy#Rw?fI19>_v*$rO z`cDSq&F6ZZEf@0`FK4=t>w?G28PXEJ7;mBA7;bvJWsJAfK1M=7uGgz)eTx9Mv%YHq zsOV9WshCqlwh&4}$v{a;Xf5L)Y-NFx>}zgJq}4c~XpG<>^aG0Lo9Vd#E@UUJm2CKQ zE`|;i5=v$skgvvAfib-WnjQ_Bfbh@oQVQqDKV#DPna1S7X@yn?Gl)pA6<dSYouoRt z^O~cUtMBH<-W$Oj?PxjA92=b1gYy%E^E3EVs}uAc^O*2i@LjS_cvz>v_%F&l(eWN+ zM)4l&{F5EL2Moj(aWa#}gIFmx18ETV=~+~|4B&h2Q<(c$4wkZ)xDQYC+=m?%bUSUI z(uSHR?h|SrwY?S_JhGZ8pyQ7)v0;o*ZzlJzUQ&m`5a@-HejsUfwh76WnC(6^s(yK; zIDDnh2HPv}v$Ss;3`TCfrlbq)vF|Xdvi#04i%7L>``}J~I~~&#TA6S3xme_*!VqZL z-8_8aY~!MUUcy@2BFZb<cHqLRr!u}PNqOy`ZM1EGcYJ^(yP`d)ydn`^wRum<Z!skR zK!ps&#^g$d0gFHWE=~=3_ZcL`zr4v5%x*>7njFxhsszU59@M$Yfz=dK(|K3kcRwVf zb1#U1Z1&9VFz4gh2MZR(Ud2oZ^>sWOs|r5pZ9~L==Br$XDY5Z0aDYIVUAdIzMs=0a zOy1`Q7B#D`UTTi99W;X<&of9f`%N|k<6eD2b(UN}2!?{2K3x!_;M<DH;GkAHU_hWz z2pk`nROgmjV?$lB)ae{n%1QyauC^?7C998Wiz1L$o#ZpZFb^k)oQ9)!!6O>%`r;Sy zqwqdbN(@g=rcG(p4GmhfoMOGA$0E3}tggp&TfJ3RATSekN^WD91A%AgN&Zl`4n_j* z30)LMV%7(B^t0tT=b%v@j_*H+Qmv~l6^FbbHIY~A(L>F~1^K+|?4f3ML6=Lxc*2Rh z$RltO*dDE!J~Hlg%9+-)!4vA~@?BB$^ghHm-33w%EWNK?ocx5P18&h$Z3j9XfJ=ho z6+;3p{FD+*@z=*=E51hIFbs%;#6<$KHBq<3d{I<dzu1&YhfRuj9;gq7VCcNNhKsze zo0O>b8QTs)b1)<wQNWrPs0>wnnuDUFSXFgJNqX2B)6p$VZ4uojS{@3`GA&=e7PR~o z>T>hc<(j3EUZE~p)F!L1P?wh>b@}BSKTIctVbbUg03!)ulTNosnq%;bEuAOU^cTVr z)Kt>gD4w@E#S_p~$aXJ}m0x$(0MTHW#Asm+u<g>+dm8#byh^m(Mgg|Lh0WU<fNDGY zysQC=gwg{(yPh?``hRZ?ux(&3Yk<{%5`@${ZJZpo0>VB<7zL&-`Wy_%W&p~?>sPV{ zkPAhJ-N7jCt9#eC2K@3kU)x~~Slez5SUcB@cUS`u0Xl(Vl2p)S4Ujr)!3aekYry1e zy(0Mpgz0rInE?>QYzDAS4euQdl`JXJ1D%T^#E1-6q}j&FzzjfTob%1bxyDRdA}V?q z>ic<uk~=fNWZ4Xm#5t@UtDPCZMumD~Xac|w)9YMFE8%}ZR-6}f9=n800EjSNCQ(g{ z8AF}MUnm}5Bz4-tnDk(5ZCpn+W}rv_y=p8;4e_Vb8BwDVZsJ+#rDb~hbf-vLl%x^O z@R(=mL%r6ixSU8GL<K`p>A?-0<<Dego{^r4ifes-q0^$h55bMm-QY&MjuVMzQgHw+ z^KKPawiMuOAq`FUJQ8mVfpHF0+#(cT1|e&OR9x$@=<fO=w*G~h3*I2TO6%>_+%&FS z16-)NVO(Dpjh3&4X!PZr;-ej<8>*WtJ18CM=E_3dT%vW2fQ(KhYL}=Z{jBv2Pyr@A zwR;h?&uDA1P&<=DKGe?qX4KAK{P#%h?9|Joc3K6M+KD=974#Lg^A)x8>s0O3ZpE7p zGZsO;C3MZCfU;MIE*`YXxf#+&r*f(&xo*CQDrdM@m+9*AwV<o7P?npgEU&1XuNbr} zD`7nhbJt65(E9qIEN2zYNmwJ{4G=4$;CBlY#f^$M*vCGyqsF#q(g!8z&c2|~t6YMx z%xDfk`BZUsf6j-wS3UlsHf36Ot@eT#zD6XN;Hp7@rsRCZ4dPO8++YgM{GFWs;RPr< zueJuU6qd=SJhXdKT#iOvV6=C%BgN(0Pg&=~eJ&TTqX)|<h~WbfE&2fVcv{q-72Gg& z_6=<Q@L`~)D-OuitMMgiFHJ@(eSk2biQcyo4TOut{O+-DCEY@6`E%}ZH;5-4&biAV zVgLaq!ZmLRkkK9fyLS*rRQ*~}jB%B8eP_g!z`zMP@baU%$j6U`e1S~(0>hcB&1K7k zOsHZqv7apJrj(6i#4Zx3Z1|hd4*4XWp!~UJdZ{ybIR4e@95Oea8^z$^=-1v8Q_J1@ znj9GhT5mStles^MPSJgek@9SEV7)G@>7GI?ctS>$J>KtR{_fS+X4xFP>f>-7h1(v- z_APJ<=@gbr#1xLTe_R&(u9OO!9D`hr`_)$V3|{5JY`~CZ9CT<#q<jKYtOQFyb>M`| zezQO2kCCRO^~Z5T&Awa;5e3(J9N1`7x<(Wx=8L6Qv~JyOQu7(Y9HW6<P6do%Uhscb zhJ`<cLgGH7+D?Q*;_sYW|Aa6QlfIF)x!f3CmsE(ePL>v7#e5&1vU6fqZ&F7Lch*#g z1GIu>?v|9W8q1TNLorueuGc?W?|-^J@HD&f)%)+qCv)}k$DV%ry%p9M+EWK`DCivo zGHf_H<D*Y0P7ehe1glrPogoV!=eS)FX(*ULx}jjnP=H)=59~IS>eVcd+3#rDI-<#P zmy->7k7Z4apn?eN>OU*<QuL(k=!wvr@s;x;yz5}d(Z}1P?~K6b_LPJ0pcmj^t^@Q! zhglqmywk6mw`k}jE8w3&1lmu&%7mL+j5E^#i<tb>qzx(g;CX)b>FazJ;#s@DYQ1Qm zVLOu_Py|uY5(p&%_H%!by(Y{4d`4f|=h8U?YJWAIGphDC{~*JI{5psrV|snY9-H2R zg9F4tH2bGzkWfA6U``{gdtDO*_`oT-jZ(-%=3EKt=A}y_7rq1(s!tX-Hx+k#XbnsQ z($zlQTnEJWEIs}k#{(wx5fAX56Z2;ag1?_f=8cd!3U)h_0IDf;Wzj=pg|R-H32A+H z^v{<^<E$3ymfC)q70$`MkpJ2L!HQ*`BCjPv=w+h|1jszq{e+4g#T;WcAbdjTEn}Tf zrGH4o*$<6hn@#8W?%*#LAE>JTVw6v{N*9&Lr+8__4m2>Id0;;Cz<lO``OE{;lT-Gg zk1?sMP-JZarjAl9SPa3&$F`!j+o=o;7T(HK?e3~#q@2p9GR5SwBbQe5NNBG3tHnwi zEmqp7C8Sa-?e_;O?SC7rw0}NWY5(#MvTw|?Z}v+2lRtpbu-tBqRd*XbgMi6cI1<E1 zJuo#j?%nc0+|8BQzlEpsfX#1M57QSIBp=bdz|zIjFl7?%=LLlQPz<x2eZCZfa)Q(@ zuvl6$ws7)dhzdiQ662m5(Ue2`O%<VlfRDdiTb4leFqp!~6MfJl+Xq*DrTnTR0|nNv zfeft^ylxO5wgMmi{s15T(EuO*$3$&Kd6|Cgllgq+{r|oGyleAB=AC#C&HI=Q1F(~v zVqUa+=r#n{W&B@51bAN_j6ynq#k2x)<sdHyU*@qCZS~0)OA$UU(3kDM>Oo(&f7*k- zY=7tvgBik;1$u-9*4kH~kZnHu5?tI^seo0)c1T5{V)|A6FXM={6@5yvNfMTUaHQ@D z)QI}38C9Gv`2tErJrQx?Y@}z_iCjbGAXLu=alJX#ZKO$@B}6#LOwOLoT!WzTx;mor z=|#JBmOL(rZqy86YXgaHM0ILuSF`^IIh6Da_0_W+#7YSU+RHXBvEm{qsj<t>!K{kw z;QFT9bE&JfFr%$nB-4xQLKL-vTt0iUgixiS(CM5ps!flcpUSY2mlPkMSbigt>ZF`{ zMLw0m3)=h8S&DwJUQuinw-uDBL9!J@Y+LOre=7xKSl?4FheLs+&>+8+A-mBF5CdQ} zjxUQIJxCr|1S{5~@7xe=W}sFliU&6c)=_u8rCsjn;8_-fV<zJivdI;qV9>VxMG5u^ z<=hENb<7GYs@spDlo1`0j5gV<33z3c&e<nnbRR<`Nk?3S09@TgS=AwCh$U*hOip26 z_5nne6G+;s5nT`!ByiTiBkcQ8=RhhtYE1*F><1y~>R8ZT#BExEb^`$0PG^6cX?GZo z&V*bgPgnmWsoaZf$N@%;gi5G1w52XHtI%+!Fql4=@h(IVbu4F;N?}BcX-`@dW1^&d z2rrIt#)tI7(<qtQ-}8Yv(jYCjxDmdmPnL`oQ0kJJ;6s%ZHPDcDJytq09BXu-`r}bP zCZv{siLNSMpRKdM-sye3PQYuAIDC-=QH_pz(b<MljWsL}MSqw8Z7~gyN6kn$Wk|r6 zGo3ShkZEv@b9IjR>epuilG`rbc3diXTo`B6vj$yg@s+|(<G6+_#7n+Et&4z)Ar_uM z0V%r3YdkCzNd1(`9}!szWJu@+CKQHGvko0~pdOj?a0v9aNED>ZkaojR+m%qC0g8a{ z=@DGiVc3dCK-wMA%*<(Oxueo<84?=9bogW_^t-m@slVAlGCk_;^#>{Vdi5vxdRc)` zH!@5b5rDg4j(PwGGx9L2>R(QjEnrfyGGBvaDH?)S*EPS6@I=1Sme7O`qT!z`wpg(f z*(HFZ1igmP(=&5+JO|fcBU9g+3RCM!C<uTXW^aRYgl#0_>XBv|Hzw>*t=*+Hf8<k` z=M(L~%}u^dsTR(_{8gyH?CEhliz(sEMyaT9R_h}h-J0+(HPO&uUg@hzgh(IPw-74% z*5doQzMAV<kcu!q7+F2#r(@3RL<-{oJ}9!IaVRR(qGKU8M?rthLKf`7kT-iMVGrHI zimeUy;rnCbR?j{FSY8|KW?TllMhn=Po-Og(0DBKxA#Vdym}t*=ek{Qg4j5q7c-MP) z0@*#`Sqh#t=!IzUL#6VsnQ!GluvUeyIg^3aL#NYy76nAu=M#Dk)^Mr;t<9lz6HX=_ zqa|IJp8z63sk;sZ<DKBNzAGU^oD@<6MG|g#{BRiImWo&i?L-1#>}<r7a4*3J<Qm|f zLq!RsB_Y9h<VclfO^^aZ))MA9AcyUdH4I`~0#X|aLGfPU;NUXmc^nzBtU{4B5HMYc z*xv=*$n^kHLBc>Afz3HA<aYj_MZO|)c}F=Ns0&{bR7Xk4WB4*d#PFF94PWuXvFfb# zU>-#pP`{xfvcwh2a+%DbpPCT;3)*>)>#06f3X?obTaez;pGtxVIV$uP;5W?v=#fT) z=jVu*_^xA+fxVwvbG%Qfb>lhJVw70Odv)<$8vsRU&`4IPK@6Z|WaXv+k1Q!duLb9? zmi{J)tBfMJB46cA#;et+mkF)j5P24`T+Xf&g0l4xf)a=&@W!cS-*j4iTowo3{(M+p zSVWB&eI|KFsAo%~W{~N*cJ&L^t#AZlk!n)Fc?J9i^o39YX=WQ+dgRyW+jAx&q=dco z$^Hu)2s*|=hU|hHe?ONH@FMlxJhu>zNL@9G(R~9Tuf@mdzGND@A6TgFOHv9UhxdZn zf`tQzOfX1RS7DQ=Ss?hMf+KFHx+4=ZoYD*!D^3=7C#MIix{7)j*dMd@Nn5)zHFv7| z<1}Ys0?V}Xxv`vfuGgOz30z;*iT*cfqQ7>-{TgA%e_yzci7=za2?Rk`nh;dZu9ne~ ztArR;Bv+9w>{<~aWyJ70L;AiBVu%EF|JFsyxNDy*E$7evXM|@VyuKci5eN@G;My|6 zi|UW6_7~E7pS|Jt%1SwIA5ZW7uQ&W&QAx87*;9lkd~6Upi)%>5L%&+>Ix?&=5w+C& zt>FW=_78Nc`B++x)y`Wdx?8(_c76ES-5!_?AK3Zvqus}UeS)b30`R3o0KPy(r6f`5 z1~I1=bWK;eY~rn3qsPyN4ADNu3$l+g;?TT1*Wl+0+fB3f<K4+GbSF=CC!fjB&VCC5 zbh7wVo*2WYaq^fj(u@_H>v4vY#mBpMf8*xgz1qF|k(+<_neN@6z4>?F=XW9d9kfNX z4eJon#B$%mXLq5zHh2QEA27uF!cym#f4*h;=a~fF-=;vrO@j9g%U`-Xed(T?{?Li^ z=E>dO#N(HrYuDf2UU^5mem*P@{n(DCHwkRG$<D8*H$~lqz&DCjot`jfsmDT)h$qfH z`*Xou*WszN9|L(c9~D1DyYNv~A1v~T*3@U2K8Z}6g6AQ<U=uJA;Tmc%wf^QA?ovyE z<>}%yA1T}S<>$|;tMF(W@pR5~udpWJ>#9IlD7DGfK_t?`;SaL1@gTnFw6qm!OjGj= z978hNg&raHW8TW-Rps`!*JGbHtNcLD<{!&P4WSC}%is3M22hzRv&wR~T*JY%Q~xzO z0Fr*4%HApriv&9TmFq=t`#P)-G(;DTE6hRq7!9~mad^gT>af&~*PJz5$oi0L+W zQn<E*30FFp1fAarlLDAX;uJ<8k`8EPz@!jN#Es&C4x}ASk|WxEk6w2$u^g^Tsml~) zk@1xgeLO!~J+)pOAXFMZm1<}~a4>gitc|?r4Z0#h6nNm8!+;HZt>DJZA=q$DDJq8} z7=zd9L&1zojB$rx#?6+TT!-te;iGHyRy?)tr;79xS%=Q+V|0xCv$_6$CMU;JllonQ zrqCA*bQ7R>DfI#zY=2kqq0>t@(0xR*!0L%i&8VQr5)**{t!L8yA;%4XZVtbiN_cU+ z^J4phg*wFuRF%v<S6l|(cg9yP!m*Vh-*p1)K-2|hr{-(~%WI;YJ)BUA7C*_KMb6-J zF;)!K9+^AFTGHy)Xs_1N{|Z_3X6>iak557_DS;k$I6M%~pW(m^E%`XYO-Yus{C+qG zbf|$9Z=Gb=6u<a(4ivw5V|?RL)-H2@Ahk7?Gj%hX8p{dUIbL+>G|!>{-FSPW^i})I z6rH{My9a@Gf`%T^FuMyUsZ<EQg$YY*t1aKoYQxkd1Ep-ZtdHsJn^8Np@;g~5g^I}y z`J7^0R&+qU<V*UxhphL035UQmb&{J~&6=j(tc{;5*r(8Y{S$msaU$0ZImrP)p5lNB z`)&+EF;UQit;SlOU*YG<;AhlTlLZpjjax3-Qw*2hoPfBc!f=q@*Ay-c$JwcD_WEo_ zA#d07mKkUEG3jH`90MLU$IoGNdd02lwFU+unx<S`7o*%G)T>7WsMVnB(317R&q9`+ zQrIm915GhQ&;stJk=c1GQ?fvDvT+xZw`>l>a1|zq!Onh>8KJMH=jqbb{t^mtx2|mE zNI$CflU`PMDni-kWcKdDehWx{@*a6kwD9<ES#@>fkVHu@)sEB-pXr(f`@JgFMJBD# zN(crZv}EYH5~*|1Y)mF9Kc^&@(Ye_V$uFi;*@$?N`G#3Ga+1LS7`nt-yFx5w>C;{U zdv`i@VPr{HW-|4IruA71a^`tL^d3}-%Hrn^2zYdP^}eIUR`7(iJ}4t=->tEv&a_YS zLzG{GfO0_@1PIJ13}R2|F;NfNeQ$0ro5e|G?^|xyC!*icilMg<;e8SFTFdsw5b-tU zT6BF4x&$p>YwuB=f;AQq6nzb+;u^$DB>}XF`hE_?K^!R5U8qV}jZS4qe@4HR#~W-E zru*-T(v&d1KvJBFU-?Q&Su|gF5aECm64}=r{vMzZG)Zibz@t=8r9KQ3WV)Gc5c(59 z$1+PJ?;M`l6LVHCV<s#(i7c!m=1B;$)(3y8BZXEApwUX9lxK8>ND{nDBKa=mdB|OH zAfgr|rA!3QVSm_ZtLqPUqd#6^Axdd$P<4s-Xc6Bo(}F=p_O`73AX7}Gc6xX1u1H&N zwsnPG4!UAiTQ0i7-RO$Y7CmFwZr=Xhhkx(GV;A($piKDkwmjco@kD}%wMtn@N-;pD z?nPHllobdV#J!bGY3bw$fbc-d6owlhJ<Q$lrRGo%MSRTlk-?PmI&apRz*2o>YT?#{ z{=-an4ujcdwF{iE2&S=od!3)%IfOLL%UxQ`@@}9-b{T-yWMcqY?nc*a&)%zReMkDR z+QuT-(MDBf)nU3!Jg|h>VGZCAVF+dWISK60KjRWU*yPFO-5k9{`jRQRO%;%H8^v3x zr|P@fYM)8eq!}-@s7*+QEyAvZB(uK-|B|S>_`ucY@c}fxt^+5F6T`ux_A%IHwJ(Fd z44%Jx`1~%wp@SBYvR2CNqMb9>e~-|aM|qvYo8#~%4$|9Fki$ST(Jn?1T&%<G7oL!M z%1P3^1pW30k{FL(A;3~v9wtn0rK>FgHr0b}-)bdKVr$<1wVQqUO@o);e6ufq@rkpu zpFn#El-LTh4TaCZuMY&<556W;HXS%S`|zkkDG27`x~OWnr!gU^6c1wGH$y&6D)LzG zNI;w+<p;HgW7YGVXK;WlXuVC2y$!OXY8!mdEUu%i1A-<(pR?p1)I)UC;TCozKIi5| zr{b%xDQB1elDv_#F9h{Xw`S}MLx_q73C#-qwPXyU^@lFk<#U&xt@Cfp@0$GyYk;>u z2pJ+AD#8It4|vFxMMP@WaiD+?e3yr~5d>&`M2dEJ(=v%jUqS<EKd;rp!yypVNm*Bq zEK01<S^Bc;ef3NC>DDgy`;J1HzDVsV21`zeBBFniIEa=vOfF|XRVozwp$*EPYnIe9 zPYVdEe7g}OI1vP%t&8;0VBtw+GwW{3G@UHBT6_`v0gRx|uS#9R<z(z~tbta8<tE@0 zv-$8`hJhb6lV|=4K$x?%2x-%@8r9kthBNnhH2d2n9w>!5mdIG~B^pIz<0%P%kKnq& z;k@|H{_Z>4HEZ#mXKvs-66vy2*~hdhk+m>Wei7$x_D%VZ7HPa$`{{I5%O?d>Fhs^s zGKS9Lf#Bn=&OSD}H6DVCS?xSoygO$ci=XewU9O&&DN-0c1_s)QLeS`*(+5Yhk2^*P z)faFeS`h{ii+Au;3*2V^wKM=@+Mt)oNP(Qe^ms;K=Er2?I4U>_En8V%WAXCiQ~VHC zHnul4Nwh8{THlNKRF7~sGGa9@0k{CE6a+xucA<NcY*1Jb&R{8nUIpw5!Hyn;(cxtA z20q`N-|OB{=t*4xLX@rTx}3`xG-8c0B0!&B5h-d!q@)&g*S^R#Yi6zs)U3dYNeRvC z6%U4^27|qV-fJ)u4Tg{k=o^FCzJmaEvF^K=H=sj|sR*OdU}y_~*DSu-PnR};%~@$d zM8Gz}-oPBDgnuN6)>$?6;$EqKRfaNv2Di6GNfbkd8j2d_SZYu!5K{T4lu)rU!?W9d z`U~0Y8RVY!-LEz7w4a-`|16tP(4m*anLHjW-ia!&fyx1c71Be-;%31E)4oO%1)zXH zq4W?w5fL-wwCLNCdJQT45Oa_PP|Ekm6s0fn_NY`88m4;L&6!?L7DHpTmU(yrKzbTW z?pd{PPig_fiS#3A(2aTwPNp}p0^H=A$I_eiO}`nI=-#A_D%%;9f!fa(;U{NNhegp0 zqCqsmE+-W?R9G<d-0T;K3t?Jv>e+EpG)xRrA*-=V&F!mLOYoykOv#d%60?Dra#JHt zVoJP>m~wM3hnNyCBc|Nk%SlWzJiswix?iq}S*Xi{vbF4fN5&5e1)Jk4bdflfRSM;0 zB9T%Nmh_H=q#=gY9FQt^5GABmh1n~F*FXV;at8*gNKqdYSM$A)@<k(6I3!*&MRhcW zrj6Y|hWrT?M6@P7X(rsjL$y&vrv?|YRx0`xby`A@BTX2`%w|6foS8Ig87$DaH#wX@ z&4z9i<!K1thQ`4@cl~g-{vy&2EKzG>B@M*Ow6>-AV10lx8+vAjr35pv(svj!Oh@H6 z(lcBC5fAvb9KYD}xEmE2i3;OV`@{vzZ~29bG6$M8uUJ-8022G(&7KWeOF+ULlWc5` zK7@WyPR8$GZ1s{(w3Fzk+*Rs2V98wQaWi~rJ`7*MaSR{((!3N1q*{XTYZeBvDLVd` z<S>n>zbHsVvRG5m2Ef4}>ka)RI%1Cyn^Vu($B3R|WbC`l8B?k*!wYz->v9?VRfr%7 z#Gx|AAkpOv9{hh};WR5<@#Lz{+^IDXLd`WS#kG2Jxu@+jHJ%A$A+Cz@f1yJ*n+a7o z_A<01NeuJN5L=73{C<{Ki1hm%67^c9rD&%YzMnaQp3A}wJD1ujj)PRQ$rawJ{dnBg zT!7{M=XZX5?@#w1hLK5t!{Uz{PuvU9FyTwt;R|7|u-JM<kP|^i$^y<(<1)=BNUe3- zB=x-Jc;`h#&L=};lz3`gVR;23Y-fby?X`SuLFko^hl#@F(OAtQF|rIvUZ+Dc3Lz|p zz`Wdv_FaWU4r!=NP$sjN@Dj5Z8*0v(_K1b|NYDZG{aZmp89OPv6SgXGGzKqZ63Ssn zo82eU;(%0z0FPo(WC9Wkndg8Lof7X8k>I-`5|Y<;?}o`jO4!*avE25IMCuq9>p~q$ zB#xZ`#6m>kEL88-H$Ssi-(;L&*TcD^HleSxXMv&!9@5M|DxGYcGANymAz}tnWOU3; z>MW(5ahB4~I7?|~oH;uS{H@Do#JbW1Sl!U;KJ)87^XoqI>pt`ACXXVaVB|zFabTX! zc`KLS#3x0koP!MZA@SeU3;dr$fO&r1eW9IoKX>b*4LhXH;T068CzlU5^oJyd)p1qg zWH$Tx$SL-7;7$*6pBZL8Gt7KunEA{w)3>l+vl{e?>XWa@Pb$mqNN=e=B6OqxCz|vT z`LB|zY`-~gECOFz;r5BM&EZIi^I@ev{H+-qaokI$%MpbG-V)E>qIZvV=THPkOn!z= z$zS=<e9m~0@8^v!T$<mS=tbUIUd`H%kr(_b_P~X4obYVJFmF*e@2vOha0eGZ!ZXVC zB_L&f7ssm{U(FFZe4N9{v-8_oVpq=2PqLt=iNjD%jiqPe^ePc(*3n(Dl8@>zG6^o~ zSL?@EbP^^HIjE1yL=u#@h5+(wdg1X4+*fW+kZnH>kpo*76kG2RjWeLw-3uszj^*rM zfCiDENh?~(wDx#gT!5NV?o9Q`_?cfs=pR2cCn2W$*G;vQKc8l0&c6jQQYZ@2nUjnn zGY0mHb%Jpfn#m0ZmzU?EeAc88=hl%;iCt|Wo!GAF?wVAI$WoE>S3lNFU&QjHl^#nH zE)FqF2O@x^L)NqVOy?|8MM7JMa;BImGLsTMhAqk;UxF->YHW4rRz*6bo{CyxgpO`t z{RqvLxs1|vq8%fI#I9c&8k1i#2qsKyQDmT?K$=D&Q;urtSwC{O+AC1%cCatwL_?Ov zXX!DqA-}}YT~V(L2OgF|L_QTYA)3$nnzU>oiNGX80g)b~RYJD;24s~ksMYjAK13Ni zvkI|DYubE6EK4a~<#_?ya8iOSa3YsG3EmEr7(!g)xP9sYakbCd6T(H7PgnxVkSe0T z#A5JLDC9j*m02oxzgjYL!`+|eb{uo7t6+`9Aq#}jAQ9P%2C1*d=na(c*Qybk(0HU% zBlrc<sWD|9b&Ua-)YxR$7!d1PvC}z*r6JR5n&9ZsprH<}RnUP)k42<Sed}M?NM#pG zum1?h4=nOjkn*n85<&#BWmGUww-<|&Szzu7@0aiy4?qqyzLsEn<VT5+$(G^~(@Rf< zMWLd;gRcqC_Sco<1q4_w2s(;k2$4Y_A&~oaZm{%^>jk2~F`AtdF)I-*3+&Xo%Sx2l zK#K<S<JZH40%?^)*??{lIwR<FyU*3k$e!Bnm4tk5iNPbyg1n+?1!EGO@Yf6aDb$wa z09Hfuh}r-EWS<D9p?^Yk)r!}T;;go<5+a{uWvk7@jP++QM(BJnDpWz#1TCCh$Q5}< z8c0|9oxVY8)TvP*5J-5mxlQ>6>VgWt)4hJtsmF^&CxlhUZ0Kj*dD>#kd{BM%ykF5O zN&{t23JsKa6Rm4e$h5beS0}`RCGNdNR`8K`BtSIBKUihZM-3NMDHel%s2|vAVhuWw zq62gKh&z&Cx`4Nmah3;!!)P%Yfz|lD3NI@?7l5Rd^vgnKXk1o}Q1x>0V)B>=9lI^{ zTU|B+r{}%&s=5*UMrk`;P*QZjEb#aRik`fK!YUbM*F+eF{F+RZ7~{J#bBt?BOwe?i zgschK-Rt^<9$p2~+LjlJ4uxmanhOuIC5kc}r|clYUN+*BY$L|mV@#j<k>2yJBIyKi zk1A2D4Jg})oXjb;)$t3gT&O1xU3_q3qPx1sH(5==i<%J_IH@w_75O#Y96ly4vZ{D0 z4v)=2Nl4<u8;pggX+GYTK(DMoQR%e2uduvFFhhX?h9FRYS$<2f!bhsZSj$8r9!p~Y zr^KbHJ#*zDat>)-^h^PRP&}isC(U3b4JOf3?%RXUJFn3@^5*aMG$08~fXOsl!c(L1 zYQjKU1=G7V`wN|Iyjj$0eVgCX97mmd1Ar%J!&pLhq<2BmP07W*eUs)y9TG+&wVTMs zqU9SvE_%td>f0+?$Ot2989pew!o-t7BWUo0Y#p`abVHtFg3|lC2Hm0Vf9k41T-C4P zrBMuS&`<I6LATaet)>A>kIFX{i<^d0GqI|9SnMC(!v55{<9&vhi#2s$p%rxBB!nI} zY@oB!5hDSKpY&FPOhbnvY3%wOFC(w$<2uoou~?+%ct#fT)VK@>40mjXkc__}v6&c3 zNTU-$52SGkiXsNMiTW>kGMv;(x3Mnhjh==k!NmqUVZQkwJqmt2r;Epg1Z90E2Q8ah z#L|rHBBUX3Xk0ia5@!pVUQ--_HG}>ugW10MbUkO+1Oh0=ETxQ2!p^k!fRwyBv2@&l zBSO#2*U@<wt^;^_A~1Zy6sPo}Q+IL<Z^axG$=V-9IAqU?_K!G9bND>RRgRzIC{^JP zIo`&RxESe{3X_rHQDHM19C1i9VX<?E6b`n>o2z64A@TEhUCwjbF$oT-9BLvJ-?FyG zuROa;5(46Oefu}%SyD^yunLl!$=iJg!Im<Sdvk>EVrueUJ&*+m&n2YV;>Nh1vpI$@ z(i;BL1fMnG1x5vz?zSgDF@N8=5k;8^RD|W(h;|ff;{mTKq2vK!E(3`*M*%g=Djm{l zGVLYc)6m}zZ;1r*x8y|C3a3OBAJR5uJ3nN`y~~3Oo(+L)jG^%<B^L@KV~Idll+Q@V z55}?(=DB&9;ZpOQ^v(BJ9OIz*gS$OAst?A15B3Wr2^4+PYW84#i0Ou4YNuHNRtnRt zUY-YZ1*@um`1Z(~SZFE5MT<QW%e0!)<J#szv^Op$hp9mvQc@WkVfYFR*Q8N%kVI=& zHTRr^sBNm<!2v*Oo|psiZQjm1&Yeu3IadapyXgD7_`+bm0rU9#)pv$0w%6|dI)k~+ z>%H8t)VhPF@zJ@f?f7x8T#b{2NX@N%V~>E)?32lUL|m!Qwr^pJWwGT#;R4V;Xgph@ z>CtI5dqb2n<BlwBp-qce@*@poxhEGjgH|~6S~dXnV5>eP={)u$@qOMN81&|rbiVd| z@1(CC-M4a)_sWIVMRcDqYk@j9nd~HRVst;C{nFwn$r%z%TC4~zR5Y8{@U~h8;c)9) z*DBvGNOA3${@D2p&fTJ~7r`1PdZ5tCn;(Gu&;!V5C91xU0}|7LdN$7>mzD~lypriv z5(g=;Tlret66<skEYMx{cv`wE3M>}FLDCd1X5j{wvzWM4e@^|fmPbsFZa@g-^N=>@ z254Nrv`B3xt!6(J29kMZgleq!Nn24j>B`hy>xh&TVqMewiEi0ZMpFoQ!85%c)t$gY z4`<pTrL66cR@6K#PJ|x>>v;{|onC|~5%SD^?v8wSbRh(z*o-m4Zn>3Yal;Dycby!l zM>ow#4nPW-Q)0R%DyF8Y4+1YUa|$R+_Mmhg^bU{tL1ua>?CGE*vk}%ED$TqIZ1ddd zGj-0Zxt9h|l0XmW4u=ge<5tvovU=dS+9Q~j58(Su2<ZT8*P~F&y9QX-ex>@sQNAGy zrebYvi(Z32tbtxAS9X_~pjvzo?=_Q>pT-g-fK`G|$11=U;ABA)p=Cr^x~PtS3yfMg zQfQ?v$!A513pniPGDJ1JvxopVgytn;%BVao4zJmk&ZS{VYBx@C9#<V7q~!{nc_%B; zTlmGNNXCPq11H@Dq{)>4Z0!|x9+_i?A%f|e!h&t143w5^;8iZlmEIx-nf*QQ6WRiZ z1_@iOsfk5ggV4bdBDmDJ(WJf=^euG)9gT0xIqhy(5W_c+u65l2(Y3NRz0^6w_}9Ia zx)EcGPKb6F>XXN_=#8|gkVA!v2=rQ00*S0E5$Bs%&y1oJ(*OmeSc3vMl{5x(U84Xo zok9WWa?*xfPX=uwA%XS%oO_+P4(yBs9a0zx;L}0^@Jb&k-#%xk7Ca4CAq8F%g&bO} z6jDfTMXxkMBqdz)EQB!AH=F|{kSyL_SE5-C;F6VKfgA!gpYD-EcTs#mT7g<#tA18I zZfH-s*3Am6Q;*_y>5!v)LILWK`~h<G9T-f9u)}x<O1jt4IoY97FKmcf^uuhCS`aiC zNpOLrq4UF(*BAXr2@a_rVOhispfS>FDLg<F5ixMK8q`;I1mSV(P+Kj*gdIf<zy}!e z4-Vu<L?re@BvP?1v`=F$>;`#^MiL+MiUxJG%OI&pP0`{kVn+AN+p!Ve4rfAuCCnZv zP${4)08$e9N_2<9113B$I!6k{hhPVsro~C0@uEf`D+t6l#3i-`%rdn7vWl)TCNRoo zTTT_n+WED;4I)dFE}ksj3TQaI#mm*W4_2;;yB<I*oPd9;Own3&-)=<v4KT7G$R_56 z9UI($EsS^^J#{VF8n758xTbw!1aqt4FxGen<x{K#J}a2=U$4&!+jw0HJeE?Bbk3Xe zk?@Gq{_(B_)!#S}Wjg}!`vS%=Ct>=k7B7|`xGM7npx3ohsLfF?&kQ>fX$IIvxL%JL z2sv<6FQA4hDTeh{I4_5{%%M;`tx3X>OP@7KE*yiFfu6x6tq&$CycohjZLXu9@qENl zbw9$Gi=dotM*JT<yz9N%n$A}xu26v3=qzM}u)ML}AAY)eKg0EWp=yYt;gc3fV+swv zhNaF+0G-_v6$Vy-I_tzc$CEDVMgd>F<xAik?Xm|a|HxvDqW%HuxUj+$IhHIXLT%Pk za60@>-25#fHV>G5R25;UG}x)$$xSC09@%F?I%06`IXBU>j0D!l+LUGh(SS8-Ck8Hu z{KI(*$B{szePLoT6|(+tN60Pu&%uk|?(%`j27H`BKFvgn@^q_DNy!R|^MKmvR8~Ml z6N9@d{nvNl!p7>YyvO&7dY?S>GD)-U5Kj-WC?IqGa!1RSzg(m*cXzQk48BbF7eufo z)uQVWyM%h9!=v@A1JTg*8`8*-@xUShhK5N4NEg+u7}YyIQXdhZ(1q|CFiXL>5O8Dy zwvHM4G18y?i)l{$9l{!R;dAmhs@$^BvlL`XLx!I$_a3q#w?#aT2&u3QQAmdfMGoTU z3%zqgBxVCEk!Z#oI0t5MSe{xsr!lce2kbIk6!}~{EgkyG!?c(`EWbr=bC~(mD7kr! zO-S96$v6ZyDNqM_4RX<CCD+X%J{-V7-S4C}sW2gr)HCccW-x|<pA8t`^kO&*7?|JU zwdA5;kQlHe!6cn6!9a9TUu-%Xfp8}J0W2jWG2wO^FYKsHtEEh&j-iOzT~yM-5JZT( z4}*#UBK)J!VUI*JDte|lMyl2F=8si5XGsU?MDsW$it|>X1!S|aid>p{G9p&yR0QB4 zM0o^QR{-lYxDIKil9<Bl27f5eYhYww6)via^)dxz<>t5q@;bj*8mBC~7N^87gYdgL z7qr)Rv1f`@Eb{<%B^7m}0vfTt=E8w!*rEks4<wr-PlyMY6}&~G;Azd1%*m$dj^q}u zF!S&L!iM|I7R!}}S?ULc7c-azI|0KBWM&ZlcfTbGNulU|$3`?b6BrYzI_qy!vtn{% zKC(Jr5q4R>92v0&X!XXHs)tZ>4MS>{7>ie_&iR_02CBTUtgS_us*uw!S<wnoA`i?p zUxFFcS@owyAH8f5P?94Y$?MBvkAs+*c<C{$`!unfrHO@&(z<w)0V9>F$)PN$edfXV z3Cz?{&xF!SUduIw+TK+>HtvpEuK!;42w1^dWFy+Tln_9rRgf1=xE#lu6#C+F`oU)$ zP+fKb)ny8(F1vtgIhWVZE316P0o-=*gcLAkQl_RQtjaVh%Z!d8EHxln7x{|ufa4md zFbh~KIQ#Lp2_^VU(VAJZ{1!3Tw)ZF93XhEYAqz2v+=vO6n*Hmef*K2#&F7U_8L&4w z8$Z}g%=(Zc)FdB}&7>aVIa5tQ0EFj^lx=y=Y?&C#bJp=6r;<)>_K+CdPz}t38=*j# z4>6X}1xhI3Hj5$4ugsK+UTZ2Hn%uo-8FZu>5y7Sho|t<4n8Z4foQ){2hWm8eM+i2X zN&Mhd5s8s#g|!B)82`!`v-B!}Z7j;q{t9~N_*ZK7>6kTZPyZF|n5?mvj~D<9zs(-L z$a((wMNC}yv3~q-{GG-n(@^g7YWA~)h<JtsF0NSa$RPy)3+uX^3{0wkri%d1hdO@@ zb1K*(f1Nct!`#q}XlO0T5XhKB33pm3s2dW|Jgp($@@@UH_fW5Jo3sZogx&y1Gcd}( z=}uidh6+Rn+%XdcutVf?VZuS;;dA(>W08faQ?AJBsa*TJVET}Ngk->XXoK<U)3g6- z%%>emM*EEgLcTrwIYp$?9_@3&5Z43Jzz|?ae=NR@KYXXW@E``LHg9Y9{jZ*T9BRyG z5gY_N!CEEox-W6>=gR6iZ=fmqp|45c6BHSK7Luv~V)Ihr3+hZSv0i5->rtmcu-^Pt zh)V)F?UeCV10M!eh*r@weFvP;cp(-j(g<yesgu2pg%Q#DnkVIyFi%8XvdAhvi_PhR zw&vu9ri{a5C<bY&!g*(Vh?k0kO)wJf1A)rZ#c66J(lOK_*fITqA@i3f2`Re3Dx4(o zCn;hsJ0p-ysRamOEJEUj1L|G%bj(eWXtPuaEqF?$p9!HY;0It})gfB&s8G>x=&psK zzzYP5pt^yyq>oeO7D^DERlz{nT9<mxc+__-DS?8+W2&MEY$SEL5i0}zIAG(uj{~X{ z<A9gC?kAME8;9+(X&jwyF&syCZ8#1>(KRQ#4#S@Nuvx`@+GaY;g{vovs2uoS5F-|B zn^B=ak(4092w#LSnH6mu&AyE}`A@&?V)7no+Z~~kK%A_wdPmQ*8ksZp&VXJh<&Jfg zkWPi7WPjr!mXlspoSV{5BOXf&MD6WXwaedNnBLGw-R(OI!skLco8IDWxT~W~x#f^E z=!E*A*AV;K96}EkSMMwGRi!S$@a;d*G?Kc6V;e18(pj^EVVmd~4Uw~Xs^}Q^8eo8N zLsNwx02xz-SyM3Xru1^?`Tun?p}@byxF=@ZsN+e*63`R7<}3*zkoS%qOW!m*mbN(V zQldOh7_%Uq0z2}c8}N@|R@A%4)cD1wRAE!9qwWtx-eQ#qekU1)#u`fjt_kchv3Rxd z$n012D87fcav<$&_mVD|1n9o}Od{~A8nG-!)s>6XTa-n<wQeILxU`}_`S=Gnk%5vZ zRn29#Mod=*M0&7nKmNfVojwB1EHydcrY5I^%Lz*2#z^6+b3QUr_ZOp<Y1w`K1||xP zTq4%0XG$e=W8X%X!Xd>6iX@#q47QH(gVYFEE?;lMk00O?fP_`*p4OBA2~r7=g#lTF z(%}QtNx#s?1CTz{D4!CB`Ce*oA-`Fqg%=6Op*x6BEJLjbpo3w|XN5aJ-ng(#iCNUl z`#Y@2w3$)rw_b!Wn<vlXi*j6d{3r(JowYre@Dq(lNHpir>kzoZ3<W!Wd^Y=Vsrjz{ zuc>qMEEnnqyj!Rz5+>0}Kfy}zFZ(R`DQVR|rA_;@WgJFv&@0OR^)qN+{M_okK%fIZ ziR_LqC_;JnFPzGbY2ToXl>zqonM?-M)KsQRC($~P8oH*k8tC~Mw;V$`*)>J@;8Iil zM^6nJxO=&Qd)$B?NMBR~dS=kTJzWF$?9~7<@O@)%SZ)9m<coS>(14y9H1J7QbwCT| zyz3A&cMqrz6|f~y@^!@-;O4pq9pFd?Sc2T6ZnrCqplR30{M4Z3-|bs|bdQ#u$k`9> zv)fvEi(65y=Wuv_YS7B(`c~euM=L7U^40~3>)ZRIZS6hg_Cy7T?fI!edtd0=du)&P zTIB`ztzea0g54#z;z!a~1v@`AXywa&E0^|YMRWBetMy4%wTt`oEsAvy@%+8W?=*p5 zV`*T1Y|x}+3sIcc;m6~X!*vy(u6{UGA!I?@HD^jc>Qc>RvQ1?yQmk(yAwl86A+s>f zP|H#oi#;p^#UMYlP#FthFZ|#JUtZ*g7VVpF_T^!IX!xone5idniKU20djH?k)+;M; zUh0@&oM0~K<*E5vs;Yv+!={$@J#(!N^44TI|6(0Kv?Nn8D?j)E5AggM4iLUFIEN1? zs=+yYI2yldI3$msL@-!W1vt!cve^3@k7E4siWd>yOf8N?B9b|NG^hh-av-W83Vp+^ zGFH_{TtR`40h!=y7r$m4AMpV@LUbK1J_RaDp%7{6JYAG>vj-RcuILAG3e^2E1>kZ) z6u3t*+^zszTidBV`v;Oqr#c`u@liq5Rq6KevZ}z1Q_r}$)yzP`nUyYnu7pv>KdtMZ z;2VGs@-ASW;y`@U-N*qkHe}5$8z`d0iu8cN&&aqFV_UEHx#fwfz$uPQyr!4^ICB*^ zB+gU?ZX;~hl1^0x4iwQKdWbF;gA>G?jA2C3g6(elskaf8<)B4$0cLx~D&QCEa6w@$ zi*JFo6oZp8w-TF?0U4cY`?D2Em)c$k31xueEA5w6r47m3I6iJaYqSoSBc<u`TjTK8 z;&7hB4I;Ks=47Dx-Ep`#4v2!fcP6C3$2c%+kH`0afawA?Mjm1^*StB%X5tBNy>TSJ zeh<<Dm@Y4XRV{#t-exj&AZAvF8B<e6JTYS3@&eGt8Y07Z)A|L#qTXu(;K*afJ8Va7 z6RvN^Vq|1tF>3bR0BJP)^%Cr|(tS<r5(<oFf0wAC1s-(2t6wWa)fntpiEo&N&9oxJ zmlEaaho$-`XJ}D^g(<y~o9i$Xh)h>OPUO(!3L#6F!T1CHxo+$Z524HWt=c=N*o`Y^ z<<1fp3-gLzNnb&uGgy)vC_uzFfdjlRKAC)Bx+hk3oJ;|vX>!~P&l!X#oyi6|o&9nY zx<d5qdwR6*scUT|ifVaO5<{#b@*2e_oY_LKi!8@78}^;g7M)MS=IQ7>h(!&^rOu;W z_{&S3&#uvVR8Mza`IXhLl=&J;v)PkI%bBb(nLEg|Nb=x-lb;h{A6#AfRm_VtZNea> zxQTAt&_pPjG+uYpE)~rozgYP^B6Y2Zv6r4W)Q`p3)5OJUNN=UE4Zl26B9kylU$P!8 z4T-fI&|_CyG_6nL2iDUN8b?A2x3+A?(?QtYYX}G+7#_KQEE#QMEC#7;RAY^W?h54n zEc1&zN%a6<SRP}ciWM$uNm2bgCL3SFdP@*E%0ydz^2?~0b&exijYYPGMuksj`&jg} z$HKcP+12ls#RhvRLwi-y*U=)A|DU~g0k-Ta?>qP7yzV{sak|x#T0)}t*=nG%8;>f3 zu>z{1H_&<*GG=Os<D{q*RmoIR-GZo_rpuE-w6L*59x#f-%Qj5Jgjm>?D#Ru+DLb*^ zFgBj?0~@eCHnEwE?J&e($JjM^#xe8z|G%~O+2`JK`=u5SacOk-K6|gd9^d-b_g>%9 z{?T>1SZQnQC|1-+YMo*<v`@<G&`Q5y2R8tjYj#az(SZQXUR1sL5ma)!59$N{wZ%UD zN93j{&(+(uE=bU!gW-*?hs2WcEw~mz9UB#!dYO#sfG%V2GT;KZ1{HC0Y4LEXSh^!f z9~E~z`v98&y(V%LPm&OxuC@_0!|>tbv>F7O(>43>K~*Rg)@>H3W*8qa^y4%!e^q(z z4D_9lLc<f6fCFX2ngtvHwfDlOzC(!QW)EaIt$7$=UII0uZV{!5AQ`PhV-pyLA(9b; zJKPV?orbpCGSha1KGKmIgR{C2<pr(M9gzuA_VG<B&>d^gI7RrEpu_N|?-}JAtSfyZ z(Wb_aSCXs)j({bczxA4ISu*N@z?ws&mF`4ES+Hw>XGk|FM{W=9!N(~ArxxqFVYGIR z{Y8AqVLAe-_>mTHJq5Ux&&a_~xi0lz^*fHo5H9@n^xPRod737waUHgozCRBtY%rZ` zr_ZtVSrfbVQo6vYLu}+7cq$MGU0P25Hm0;Dc1@U~Fws~i&}lj&&|aVtwNRWoZ~EL^ zpw9#K<h3!ke5SAI@<d%G-pdSD&qN{^$!Vq;i+49rtp|#_9!2?7gLAAFLOPTQnn0n~ z;v60}uM$BYo`>h)(cP2`t@(yS87N|~)U$?xeaMRA_?;3mp@&-(9aP((p}H^vlLZ_i zIXwL691p7L8D34!pH**S2+lY{f7SFly^&R4Dw((QgsDku)IU}ChOO1RaY5|`E(nbb zu;J<RXWID`S}|z%iYtlTs-X}CgAv<)rj+#jLZgzfN&ku{o@Ovop;a(yLC8zO^h^Xs z>{5(#vJy=fUCWK$ZRgY?jQ|dP4U5&KkKgIT>G3?5bvFqQ;)Bv1yUa$DCH?Dpmns|% z9f&*Y#tAGfIN!PB2v5k}Ku)nc)aB<&DS<?=*(8K9F%_9L5XN-e=HH4#Eh3{gU!HIW z>2Zdj59DQqlN?SBaFo6M-!Vpb78{J0#|Z21>6rh+m!Q4XVERl54d@(}=Vaxvq5+?J zIRG+vULnY6>yeN0wFOduu%N}xU^2fs_Cfw02;E1k*`qi>1*MW@0l27$g&UC$;2>*Q z^mi-(vgiVUs;3|BjV4YPkmQdQuaZxD<JID>fXrTy*bs&N(i^2*^i^Ucgpru|XLdW} z;24f@dcxR{hZ>>}C6wq1NS{KuB84xHq#OzPQvoDhY|?O&*c<O}peVeJz`L&Yfom_I zFx{t1bxZMGStnFyMRl=5kA8O5AydhjntCE<L8>l%8tsd=It#}c-KpX4gq1aU@~Zr* zLMo6n7RTB`WVH&ICM^#j1T_%-TV5!U!&L@8o2oPBEsCq8BXU?XniqPKmnVu70yc9K zy%Z5Zcc*O7lydeVA81P1W*y+dKwYhf!(5-yanmL$5pwCIh&;;5JkzX8sHMS*27_U1 zeRdr(J}Ryme8`%D9A_$=dY84m0~Ic#UkQl$Js0T$gP#7|S$?Q>&UjaVsIw#(brrjL z!dYZ)2i&tm>@^@_7YEqDA0WBT>9Ht{Wj7WP!@!~w;lrW)CzBe^o^H)VbP%h_dkAZV z`>1i^nqsfN`Iz*ob}Nyf&9YWU6@&!}5Xd3#0}J++T9I05H}D+v1J2r8XIbJFtaI%i zH%TRFnt9pAu_N^A1MkL{qvXO}LVy-&75}T~35`^`iFf57WjOj6rOUff)Oun{Mh?2j z6YWkJM8GD@DR{9*P{s%l*tAeCnBJ(vsiz<$Za)dA_KJfmx3gvu+pyw6Um!^3YeXq@ zbAQ`ULyX0M$y2h3$vz?olv032^Acd`Mc|RxK6gUUV`&XpR1w~j4~ehiC`sjN3K0XE zxNyZtxK9;OG({fL9pEAMuQni*+%Zu75Rl}_)V`ktC$|J3cp^9zh7<I+D$I@{mg<UW zN!sVXJJ@pp9@zNB!PCYU;CUB#)HeiA;N@`wU4e(@qw6x*Ex_ZhTAWW%<!gV2a0__! zTKjmBqPSB9m;l=fD2k^_lLSKS0iLuUHDW<)9huWxg~wwDEg848vl3P7Kw=hhcWV?D zTfpVl%m;;tnbrlN1ZnB+#L9M86eS#jZ(xI1aK99@ETAWX9VDTF&JpXY%Jok)iDopV ztddl}s3C|a1x2$tRQL?+)SJzY$$;5bnI@D?h$ux+Le<i>7eT@aqoQWsD^zKU3=FfY zhJEDlWGOtD#Z2ZtZuVRqi|P03@bs@(9clWz+4B~xy=UH83obhI9{1ieFPv@Z8iUZe zE`plv6ee;CPU^1#Q8g(KEPQBRI^9wep5M%4p(n*V$hB1HjItjGv=>pru~kduK^+c$ zgR!Y4c2aw%PgzaeHtek>l*<`<)D5*)F16<fa<|7zW_Pixi}nQGOT=Bf%DslrR@ov9 z8;(`K`p<<OOWP4ug6=tD^9;|~>#pYq<2iXG#zx-lv_R@@2w5Lo(k0HF;qAfATstI| zUYb&!Av?2Rb&!4HUSq4u@NNTYt}wU?JQqz6NskZO(LsMS+IEtR*-Vl*4lFN1!d|=x zCyK-Ijx5U|=C_vTIc0~5^rnGeqmVPpv|=qR4w_MkV5qS>Lt|KT8HLTLi)k0D;+=Wp zXqtEoaMgo+u4otdAf}2(@=yT~z|bvH^@=}4Ai@kL+ixas11wwKhSux?gX_EvVeQk$ z-}b!XRf@T|)7FOP>d_r`JV=PwuM_(7l6Zt%r(ZAApO=Swf;&|~4Qx2l^H=K6t7iY6 zu&j3$?kLZ!&}0gqzA~MNw$i7q5BajyDM@-#6|X`QyZUUu$<Y91iBse{JvDqOGOwb1 zwn}Yyk|=yRO6}f-S8Ho~DYfn1n2Rd42Q%On?i&gEnE$6Y?s^nsdB;E}iZh6bjrsC| z$J*FiE0mdShgPVwKq^N8?$8P?M<%V%sq3_>a7inaUk9~%g;ofsA?n6jA@Qct3Kb@m zBy1e*h>@*Us8T2naNES;J9QA*1`QyDp%bPA(3KQS)zU(!bYJa~C=wc?l{S7!tlOy} zBKKG{2?rmoSpU@CvqE~!veGG`F9`<AFM3+&avQ6wpSb#VzfCtDiQcJtbG+`wo*HCZ z{hk`+FPFsSp+U+uWJL#%B(>3EI#gnTic%YQKSj~7U~JDJR2HqR*n`2odAxModm zEF5BvK?Mx>kLHpo$J)D)Lx#hU>&;piUzvAMrmqx<218*>xS4Z4MsUFj{WayO1QYV| z1k{o8)E2-KormTpl8nSO`>CYAX3aJc(GYiW9a~@L`fR2C>az4DZ??ryXi$zBOHA2C zmDfervbJkUdA&rZ;4iWOB;|E=`%+&2)xrG0lJd%&Li!=_%W^Y1s7(XFhV=T<6qP+z z`enteESMJeA*&Phj<^u{+t<VG!k3cHT#vRkF)<d2mBIyY3zNGtg^To3y|p;j&Wo)3 zA-1IrXVOBnWEVwS{I^(RJ#&Pfi5EkPgJcccvXaDY45U*`ktA*c&6y`WhGf7r3b?rX zEZsEenTV<>Ya2q7vbKS0OmgyaG1}WfcV;^2nUV~xXKEW+yEa3Zk)9dJ4AqV|B3dKD zuYCE66jY{Dq}W{DDN<pq*C-G|mlP=jlQ94f)~;n50KgpsRe1qPG8dwBlH3xn2TmJ? zQ*2}aCRJ`Yd1n;{q;4ki5Uu4*!#5MV*@M6cJW4ijQSi7ZJz}E=J$El<fJoy6x&jZ) ztG7so?dUS8;ldYsvQST{$52H{20VJL4GK^c?o@%$F)6AP-C&5&06M(~c&0$XxV#vx zFr5Euppo;BSv5L^s5)t(D0)%{?0{Utu>`xX7U%@4+Z#F%QgKaYpj5goNwYX*B*t2* zKm!*amIls+NWb|(QMghiMOc#U)}$CVDkGQ)tuof}R%Es*$u0#2mZpW!EugYI9pl5U z<?zpf9maeRax<e#&JiH>1|wXnZu1>eX;s_HzMSW+W-i25(N4*rWm;oSy-tMlJh&tl zY#9sKHAqv{R*MBjP&VJ-w>A<dn^qqWM3&}SB@$0WnO72#t6U{k#}^9(<zi`pSRHrI z77L_XVO}6x7hfQT3tl=cagqYi_k}(zC^Cm8oM_rL?c|HJUx=GZppq65R8%C>q`eV2 z(%iSCen(N;{AB$VXQ{V>9l(lW%6YCwG$uTt*1odpX$|X$Hfr-Zp($cbY;Fc~6sI!V z#1-pL+ni2R0|J<7$Vfu~+QwKJjWSUONzK$0!=TSX8>2w)Ywc&sNQ0)L9<hlW{S642 zE;VwZ(rX4k1&)exlNV9T>t&lIhpQkbsvs(<mW|d5^CSM2o|t8yh?V6cK{x@5K2uAH z?y1UZO-@uI<atLj{!Ow4FqQ<$mcq3bDDCaL7Q>>iYWth96QrmByCVhbxwi~U(o%`o zESKD^n!^5o6%pbm{Q>(y%PDNI?QsfKiNm3YA$uVe%(!K>63f3+r6;qz9L(MY;NMpi zDV0<`tuT79A1U?ajFd|5-3ZqOpHEz^QNgBx%XaTRsqL*c80=8wJNGV}axeGpSA-&u zWoTcKZ!-J@aJwf#k^lG=xq_E<dQNXgN4I9bLX}=PTk{fWj?OQHVX+#^?iRL@cxE5D z#;)Lts?v+DWo_4zDt(Dg!QgwUwB6RQhh<l^ROz=SKd_FLTKIv(E2-m57Jgs}b0LDR zl0aa-i_-Xk&7x!}fvtzy8nF|}O4c`d?BNF{JBswA#O{f@XxY65GbArD!Q`-3({jvO z7nerVm(ry1E~GSxz0}o8X%@W}Qd+B!$7ocgKw+7%`^b&T9o)9Mrg%s4RLlin^e(%D zCA%dx-IBH(V|I+xW6SGurH-wBhSWos=Tgmgsp<B-;L@|2jvQ&3X{S4QrG#yZ9*ygm zJO*a}98Glkc5(;181j1uU+JM<E2}?K-eSEDf2Trf)TLepw2)jrj0bo~$5D~p?qI9w ztws|L*%COl4n&zVfMfFbVTq!mp1~yKYr(8br6191V94z#RSS3UO7PfeiaL|P;}N5k zFN251)pcamCGdDk4W3<}2|Ri&@RSZ6+);tSa|x$lxQUW{8Sdc4^17ru*z%%6Hs-^^ z1P!dhpXC+Y=93D=R9NYpQn+g=A<Iv=R~Mi@VVX`}3a`6T73v>4uT;V1Rgpq|)*|o2 zvU}Ko;y{@+yIX3H8hqqS#5WaQ0}F2_8c&$2+)3$D1PZpRS>8@olu)f*%|;EmIg|5J z_3_LfYBEFw&_%rRsx7a*7N;~t_96>wS}*cStnq4DV2u~m3am+ss>7Ov7kMSZv|i+^ zMwm1^ULxpWL#-Umx)aH*@E}7tDbRyYm(n@;iAgTf5=lp~Yo_I7l}cmyDh}5*bgtnx zYkKIfo|>+Xh)RvgNXF0B`rjHq7ZWMht<g7Ztv#16L9Rw?E_=9i?GoAU>=mFWXkt^w zWxI5}PWEu=j?n9qOINEbTrj{Pk@^+x+;%1H;lMScv;)^DvvA;UDjp@YN8x<uzzt3q zOw;<M%h;CW4%z<cX(x6_kF72%V6K!|6v+%@RFluq-wRouLQ}=vYp3p;V+*AS?GW-S zPoa2+kruRqiL>yPU+XEdld>C_Q<;ctD-(yDqaPcFd;8(JhyyO4{M78D=;}&0Ir~{| zjujuylNR<7$s2+h77)ofvMqZ~^Ip80XQ%VTeyIKSC$9Y4N84}N+<B$#KHPr$zAOLs zA%6=32&ZN3@%9vv8atINU~0RV82&s50%rS5fzsb@h;>l7Z~5n|mVfro#JxiB-nm@U z?fxkv?UlmoX!^3X%`eTcEbXN3cnx9XGU+VOaJb&Rx918wzmeM1p2RD`D#gNjYNWpy z_FcsGH-?vd15BR%Zy>KQ{6mL}LvgUI5(A^ZiUN2WcJg#)&D#=^FvpPy!aj9o^kPWR z?xIspU2jIsw25%e<9W_^HZa<1nD9ev2y9Ve7s=b|IA$})N$bq8$5E`6<CF6ybXdr9 zwJTyhEb{9Z7S~ZRNV~qS11S%1!8m`gP<K1Bbv$Ddn=j^PIDWQ<d-YEhCCXjd!uViH zYMSy)^Ptb$<nTys8)O2eI%4+v7ja_l4SyLZKt-96iX-EXWyH&gG?2ZU4M%9b4jx>b zm0RapA~eoYkQYFwZALb6WD!1;p1dB43!PF&3U{RKYU&CHeu~l36`zV2UE%OviDk;j zs>Qa{pW&iEyp8@yOo7-3wTmuAi#h<5ilSdx^KPbsEl~9C;$89Knmf8;S6<f@TSCi4 zS9lv;3GcvCySY=@DE1--rNCh@xV*1>5<-)<BnTWN2Q@&(o}0fY0>l^fP+)jYrbO-I z>iQSuudi=pVmy#?={)2ccsqQ3eSHT-j=-&M>`f`3YY&+wu(a)#IIpGtvpGf(B?np$ ze9Sg({ul!H2rA^3**%0b&C6X{%<?MGA{q%K3G1u^_CU+q0IdWUy1cq;T}Moj46s~G z>~LgSro(iZXoPYH%Ssso$Vw)49tvYz!X23$m_R?DePi$fy+Udb2yBDS8gZGnt>)oG zO=`&zu*lRRX$!lcaIbxYa4L!zezCZ&f=92S0tk2e{juU`f3Q$*2D?nX%_0`%Z||31 z0URI#xe~RJopSNrJ(vCtqx>uQj>{|K@@-s{zuKErm>TD`wxW3`#4d$mB(W=x!|F_3 zb0x5_ix9CxfaS~vOMbfoOTZJzKDGSyQ@}TU{5P-k<49m3&r+@g7FX7CN??)3cqnN8 zu)3~h2P=``bjx!ex~k~Fso4)XT1qGd!L)4d=c1}{Dun}OK&HX$1x$rWMIP&2v4=fs z4{xmIIc2&dk>%uFoQ~dKdh+R5&S_U&kD!Ur>zHHC5emwVPQ(ug#$#??bSi4)Y~Kg| zA}`ive-P9+y_ylp%^p|{mqqPL>Jni>wEp@Bs`9Z1*!lVm`7>w#8D7oT?}iNFCp&y< z_OKR>)Ony0>x_UE)l^Z47iskk@cM*HDAQKYFW^;^1Peg;O|z75zL=dkQ0mU1Ow~lE z7@u1GUj5R0y0zl_uA}X{qp9xa6@Mys-eS^72csT9!TyL)cYuPnk5_Q^^K7(j_}a8< z_6sG+NEjokyk=89jKKJ6jXu<Z7&n5{BUO<a57yQ{W4<oaxlt_3O8gU<T!$d%kG>w_ zj)@{tTxf-9)d=?_J;kiwJ(s!ejdA$)$;|>#=OwPvw1L{8@6amuc`*CO9G%UsZ%Do* z8P`Oks9Myim@u|9Asv7sZ9NCtdZhR->UsDw>T%NB<Jkwb0FlXxQ#wh!;`HXX7HPa$ z^O5va%Pcwi86smS8G{C<Bw`3i?&|D=gV?YRfZEjDZ^{|R;^&+5Hi^zbBP~5<2}Hhj zX0un}VD=$zsjzw=5sWy1SmeD@4RD+Nn4;>8k-c6njxJz&3`fK*jzoh^364VFM#@$! za(;Z69}a_(Mfr7ct^kr7J9TGw$o@9?7S?DC1(R=GfK;fjiShKU&|*ANc0a@^52aX7 zuU7%PLa?I;g`tPDmg?L4JEHXti5BjMI@jUpBrX-g0s8cb6Drv-4j9^J#Dd1ADfT2X zm<cRf+o7t72g6l^k&P~wX{IJ!BxgbKz=5awW@$U(qF$mEp;wHlu*Ii8v<1K`*6HlM zCGre5GH6Z^8?cSTOTiqT@;?czgns{*yqH7^fNo<R>uUBMxkkKqO_uWoUG+KS>yn|T zh+K;T!p?PzT@HbnO6Dq4LW5+{XTpya@5<|;peS#MYUb=SYY9kgnT3kL6n;p4H9Ev0 z$lm11He)5Y9yk<}TZLjO62U>S^}uVN2eOqY;rTKUg%a-vC32EL0u_3|@c-G@=f@R) zc&JmG4oL}F=McxEiWfS>p%RB=MfXAA8OIH<5YoW}euRxt1nK(7#^MXq?8R9+8~l*U zAC4g&*8S7kduWBN+KaQnpFsz8u)u8s)a&OrN!%5tHBJv;qCZz4{`<-}%}-~AKa<}N z^IQ4nbT0UfTy-w^v$*P9@MBzYX>3*3)A;<^{CX3mzpgs0r(e%-xE$drgRQuraiz1v zkMrvxiarN~nUv~>GGESTsZ%=6H*(cKCl2qq#YcdK(Vir#g@i^vdL{?`F-gy&I1$S? z>Vi3tlm3e8n0`0_I~_HCqoe@dh$KNz_;q<ljq5vEAo)({4GDGDcp8CzDKGEfIT`b< zv&k`?-RPxbvPbgA-A9dMMAL4)IKy2^0jh(3TSk_ZPITUUuwE03*3nX&jJhWK++0Hv z>sCGsfvbOL?@^9o4FhTHW{mLB-maf`D|$#5lUIu)GSe;Q@5}Nl@x68um->u3BhZ}i znNzio&Kp<P`LUH<q<;UH3V3#n$nm4EJOif7?2PmiyCK{GC4GrX?BMc%QWR>OEWYc| zUa7p@XjHYadQ(0F8}yS6d2whjtK5w)K1^s82zNB~TV3`(r&QjtG1KZc!EfP+GUGNf z5hkP@0h;-FoFBIBS);t3tvj$vcQ>;S@E4U0mxefXejF(8UIPM-oX^XQe+7uPzy+IP zg$wKYtUYgD@JEgF_E|Wej!)F#(ZVW<p&)pmHW$MT{KJVXwD(eGUS*T9-oOqXL?6W- z4w{Fb*m?6ewMU22Q`fDt=``(7($nV5c;R-RH?MwaXb=^odpd&2nF^#l#$k-!MSx$2 zUQ?TALt)c_6={+=Z{Ge}oS?m8+H4v4n!2K8WH?Y*M4hZJ(L?n?S!ukx7LS(_fY>Q? zdFRcuHWj3=NiMz4J%I=U5^L-3&}JoT)pC~1H&^bEz}o8BDz!#`<X-}J026sy)1l35 zv?ujEzGG1w9erC}{-Mp2IJ9}Z`_Sge-iJ2Rpz#4OCwH4{4WlzkWXt9LIV6dV92Y;d z*+;C?+p9ga88{_WueGmw`OxMzxwdD}RC1lE>sA8hK4C(ARC0#ygG4NsR+3y{rpXvo zhX4f4U3+M=^J1rOAxdC_4g71>++P`kl){&#qo{V1t%R34j~LgKQbXt^YO6mP_bJj? z*ww~)s+jmpimMK%pzx3tt(NJcyqZdxJ2f=;F(e(t(xJ^QOmJMnW3Yh^QddoW*Q=v^ zl+Ir6^;3&Nm8Uf{g(Rq3S{6>^;-XSy{fn!~r-vnIQCMq;0qi)md8+PnMv1!LdH%+r zk(VgV2}t~;w;E&`Ivh#0ex2%1TZOR1TEtfRohaq-eYHsa(1j4pg1%w@<<nG-nj|Hp zE=t@3C~>s2jJBG4L;6WM+Ii6vL$G=VP<on%RaRfmMG!vhE#YB|W6s=ljs9tLE<#pg z2~=jUI>4(t{dgBYfm*H`lU0G&fkG<4pF&jLXo%dhOy%`-UWkY~@Dsy>WJr;tw3N)H zqhE=c;ArI|6LPRG5ppN*QZ=+Bs-~GsEe(U8nAVYpR1J!hM1v$uSu|K0RXi#94^tyF zq48)=nd?~I8kWK=+Qz)d%)CbZ#+0VP!&35wZde+!uq~KM^hl#g4YdU1unf9VD6K74 zH+}PFKq0vReCz-uS{P($$1C}S#6x5{^ju?VpkjM|1j_)~?e0yP|JwqR;us%7pacTT z1PLz#i^EZ5_EGpWYhew(3;ew;)<k5nfF!qgJ5H)HQ6%-;MbV~`&dAtdy0-!u<mQSC z3#x<zV=mM)1O=IdC4F#|3%?kHQ4!&riAX7O!L(a_udWQNo3)>)tAV*lnMkkf`{96X zMp7_*YM8io!7W5r^K|TUl8oVWA-G0F07VutJiG_z$q{*4ZC(#p{t23^?)zhrvxq?N z%EzM5I1Pw~X0T@+NESfiL8vjzpM-HE0S2ChZVmz@2oP%G>F6Jbj+0?ts}3EAE>%ef zqU&IE9f-ck^;2ARK)Mb@mpWtzm6Mt17-0Laq*-AZh8RZvA5Q7>f#^4J)q&_$RnBwT zv3MIIBU7}F`qq&I?J4LVh<?lBK=fOgD%l{VSJ`sLM8tvUV$!P)M33V=f#tBORvw5h z=NwoAyOjN^^cso-(S^G3D5lo7xWnw57ypiF9BYahNbs|Z9*EvDZCrA$tKAjxB{>jX zd;NpiMDvOqjxoe$zH}aYCm(_rEIInA)3J9IB;8sJc)N?932<O{O3i?ze0z}TMyK+L z=KywbAbL8aBLtRoAiB(IGzqLlhm80l_xh2FyM&ZiKeS<51L=yFapF~2i6DkrJ0%4o z-BY#Q{!Zl5B2PO!mMiURr{ZmzaQU%z#<qC#M5`4QZcF`L)S$Kk%GzmhIiE9_OMDJ( zGF+&-r;|C<G7l30de>DPh>pa7{KPhu?m%?aiMdX+g<%O+5-}EVSni3#$gC0NUG9aO zs)Gt$%{vPz_t0>vk~s-%%ES}C{C#ida98)?MC!hlyvD!ie%f-LFCU0LA^Rxy4+56B z7D0Up7!<*s-%w@q8tPl?jO&39x=utzOpj-`=udkfx{j0w=PXd!Nw^N&?ES~&Bqu-n z@u+E@iIJ&#Tf+`xB?5gUc?a5QsfyR>A=FH7FL@67L|V{#<i$kL=~i$!`Pp10NYvqR z632G~*xXoJUU|;5y52hn-ScbNK<XzYbq;zu7B&$GXMN(CR&IJ^na-HPr)tv6P~C}j z<l%ICGA+s7(7^7!S&!N|2mK(&T~5x5A6rl1ZJY5Ybd7^v@K`+6c|@ErZx~iGFj(3k z)GM9tiMS;{cSHzie#D;(VC6~5!sYlhIEK$a-)T}$E=P1<QY3aDgM}yp#nr(4SPekP z@s}|Cuys;6qEtfLmRq?xg!NS?3MI+OZX3iSx{QJ@>9ueFju!mM^v6de3#WsGvmnqQ z11M1uB8&749<kY2bUQQ`+X)0vv?uJBq6DptO4!6&kVp*g<__Xs1lMl=(g+@eNC%K_ zO|WAYgM3g%`0Ts$T0F94ni9D+1)ZfU2s-#5q|USl@Po?|CFx+XF_dW$R7sz<N}Jv& zF%0#&5swEAEEQ{+9_e?4Yv?MP`$XNYwo90D+$CI%+;(mCx+Gcb$?j6I3QBk}_JEQ$ zIbLCxqJ=Af(o&aNC}F+Z14;#55<gH2nw;DSO1faJe#>Jy>aPA(`PL}Q`Ck@Vg`)?4 zLMuWOtwj|>3v?EmS}JR;3_JF#3dtahK{0#h9X2DfvNj-E2A%kceEMT~1VZ8lk@q>F zn3iYL1#}=L*j&&q#(d{uOc8(1Ca?8JXK_(zgd!zcz@g0M`o*hN$9A<5Vm`LZUJv(2 zk!x{7q*&b8Pu@jve$)mYyFzCF2eR#c1Sgo3=3qgEl@>&N%2Q<CDunbDX;Qk7&HV^Y zv{7TMVn3HzP6wnXIfC<-z~cP~P6uazsnvc2r`+@6A^Q=WDJXY8f|HPRSi3Zd{RmFW z6i5~O5u6VH+>hXtb80_=a}fdh#3MLAz7)aviTwypDRPcWLqb`O1htsGAHj(c25oXb zg7eD~!TDR$Vk06rbx5Q$KTPH$OboHjOXi_uheEzibfPBY?kIbxmUd7n{Ew0uk<|*{ z^xfo}v}H-pIFX4{g>`rMn@Uc@)m`;XWrhAk9PaE7b!ImorH_5*kA3HledmvT=Z{C) z_p_zCF#kHTTMxD$_%<64*!-&iZwKUYQlKJ6v7abH`k7sTv@!s@Ghex#PA)?fJs&@= zLk~R^g#6hLIM6mdsaQn`fW9*TeP;mr&H(hC00=ZLdxC9uT3LE&OVuLS*PAG|6zsdL z4Rcs*WoO!o-BtExmDRT9M;>$D#?~c=5EQMMnW=HqZ{f75nr0ul993(-S6ioi)e5oL zVz-yjPkWX@37Yu;qiyh)eK5x|DvBG>5>%JoMoV@O7j|#AfW~?j_9?!QolBND45y)C z*%_*ROAa}|fZqV$|7kG#QJOtQqnMVtegIoBFBIHGA_<UQ_C13BE;Qpg?mZ6o=6Qsd zEt?YJJ%QIQhnZP>ue4Lx4FjHql^Gu`Ifa!nmIkoH5>Im)%P#)?sp7|#h<18<_G>B7 zfj0RaA<*1v*J^}7m-E7&XZiiZ<>5&m(siGZn^3?`na%*RYv+~^tWzHqtHcT$IQHLW zC57!LAA1meMgP=}Inn6Uds{p8Xyetynhex^1*9pKKVn6q#GKlB+77~g(%4c)+K~X~ z&W_OofF_TV&>+rzDH(6zUu-jxe<FIItqK4}DIfXF_i~CjTt5X0C{X-$wNw47)L31# ztu{r&&_$lAivl<}2UHzuuC0cO6Vxm%8IKI4yu#=fEdrg{pOHh|K~gr`JI+Q59R&bp z%&1!x#M)zXG(uw3AAENHj4x@7dc-~xBhISX5u;uK0L7@!wI=q6QCFk{K0c_r!paq9 zL0GxA)ZlZeBM|*44;6_1j0i-3W(1-?z1bOSUfnqRmD0Q0t|k;$sKWdJe#Nlhw#QW6 z#t(gEh2qlF{ZL#Hk)5HqicywF!B*^EDDF`eUSmx@MM7~E_X9Jz>QLN8)cIwF;);uQ zE1?a=y=|{hT$R4!P~4~4=T$vT^fJQjztTf-qpK+t_ckV@A79)0l)nN)ai5{JApf^G z(^Df9w_;`A67=AiUKx9b;<BYM1>^*^zi24#jf5cnYDr`vVxAa+aMbHyKNR;`hT@Xz zgIW7>hT;Z2y|PeTwoL31iW_KyK-Y%i-YncK9L2h4C@#Ar9EyvG4F{8Y(+|Z}YBSsP zk=%9oIP@jo;FBje6t_lJ70&lVar<LYDDJSgt7+E`w}_8dz|D#sZny34aEk<M*0isF zhudx7hPdV)JKW|VA6S!uG20L$p7f$ApLWq5Zh_Bm^(Q;%`iPWt1zk%EP|&r4touRN zM4LJ2T6)D*1YOrvIY-T!XM%YAv+8@1pzB)~LDx@DLDxd+<)G_|CzlAiuJ?nk9f6l( z;P!*A+gL!UDhj&RGKEK6Ueq*30QBSb_!vH7{i~k+plh)!;xm(s2buWV3%Wi6r9N^c zLDv?Y_X@hErY~F2^^q@q(6yK0S7Ok$Ckd;hqAl5z1ZHb*@(xqtS4PnFXCjqo(<SXP ztvVqapb|;ihTn58rIby*giS<jAJ1NfO3fE1Y6%58&|RUf1WLy~C*HiICZh*CI7ru^ zC}gA{kwp;ztfc&MItcAB&;1R%0c<#?I8Vs#z@D}Aoi?HHT}lVhet<z&^();(e1JVr zyKQ1?2(5MLAjs}=RzLHzik*%Ba@p`9?DSswLitYmb{YewO=9yS6%Z9kpkLc|$q!K% z<CGPeOMIo@#kuASbK52f)@1tW@B68A`j1BWunlmh;{hV%Z7C0qc^^5zoq%n5AsiL# zJx*)~R)9O;)IMbG!UGm^S}4GsJ9!>j87ZzB$NN`DwtKgvb34c^seZTnF%WP)?pEw{ zXfvIO$ab1#qogC-V~eOhwZ)qoz3Inndmxz5Qwy$_`;{$d<3r0H+Yc_MOT|38<jD4w zU0RB4f0DWsVdOiY<jD4wU0RB4zq~HBk?ofarKK*lP;zAZ$}TM;+dZ3U&6E0pRR;EI zufj!Vs1<1NWl{J85Dn#P1M7*reO~dX0^h+gz58HZ>$ssR!`nh6z28pX6Gwu|b>o~s z@{Y;L5N;?ah1@1pu6;j6qeZrH-|S~e<E8vjKFW)3D%+46faKUMg~Leu-aqj}pZK9% z{;7;DPZYubmg-{<67N2d-HQj1%ru<-UJcd4K#7IfmQjJ{{+bQ{JRWydHItbRCjZDE zWV46mB6`zvM8k&7r)JIXWV4ZWSJS_D59e#n$As3uhV@SVyAi%KoRy0Kl+{%HVPuz{ z9eRW0%T%hsbg-f93-J_#gPeXMN@{YQpDLDqsvJ*}Ib8(+mdmBD<1$ng1wFyNsKz<# zSOMjR9Td~M^w}cDi1e-YCbb}DhqLU&j6`oRe1tErw7ik2TGKO!3aDcyo)mN|RA?5c zovKT_f67R8=#<q}-tI9fuvTkI_3|BMJ~D6lFo;EuBePiYb6)0l2JQ9n9xUx*2oJ3Y z4VW$tjaDfx!U(*1%vH;t?Tn571^#Oo;2RHDI0eaC#WpEbX@{z+#o7`Z?zIiegY-g5 zL%1e8GQx?D$L^y0D+EWOMGS;dT*kf)V05W!r*AFtT)gZHM}!Z~<C{mKEMJHP&@YS- zx*U#66_;aixjim-#N|X>?x89+)TNx8O18-_rQTF5$Q3t`y*P8Su6O0spsZt8UW3~I zxISk!DW8|FpG?<J>H29l-26s4{qq1p=_BP4jjJ}iyjNajx*kvX^v&the~_*Z<<p-^ zkbF38fPoNRaX0<JQv;F!>`x`*EhCe_uI>8dEeoJBEe{LYT;Eqte>=gj-9)qx!;8QW zkUf+@_cmRLw0W1V#NoVKSCY=vS%BXc;sm^wr*BNBG!IiSTJv}&R>vuLx|qd7_I3W( zK=Y-Phaas)9^hRHHyE-5IMR&~gYzcDOuorwB1fq8Zc1V>6~)$kxHxqnXQ>Sf(d&&~ zSPyc6Sf2R2B0H-5Wso$9`8C@^#p-eXD9+<M6{S>_b1^Xoc)$>G3rVa`G=Ghnp^NmB zl}nWtJN!#LEcRY5_Xl3Crl~2#%iwC_0nMvg*TJfe5$0kbNqJft6MNVtuM=0NHnTQ< z$vbC<Y3FQoXu0vqFQ=d1C^jz)-auMIO+uw)@WbYif?$S(*kQR>x)nJ2P@zq{cb;Ne zQ@ln^GHWEObNqM)@Z!hW6l$lqFfv6re9LJd9T_%L8c3RTHb)X%XsjthETuIgbS=ZN zvh||L>+7vWY31Q|X)@Iw%M4Sp<xv&~1obE<Z?EP}2ha3!V<SbSR<)^DVwewnZ+jB? zILYDr*o(?Hd~2^Fhbnmt<eklw3_>w!+kdH7#J$>n#4a0-p{%xvNUPN|5N(}ugXY0P zisy(lhk%JQe3YpUi0X(@0$+$Ai-l1L!6$rW(9NnX;@t>w86!+s4r08K<y=B4NhCSl zL`^BA4n!ogaqet&GrC7hq^RghQ?N({i96e?APa|rrNimg>2|8m5_Imf&Mkn^`my3~ zDxxYE8$uL$B*HM}02v|f*#+DgDNU=7t?|lQrSDjBEDI!IEiBy6-?B-fDxND}@{H)8 zB_J$75ZPYZc><OXI{fR3fw|4V9GAEYqW@K<b($c$047HQXc;pNifBCW-?bo3#j67X zyP?@DITFsg<bg*{sia}5k_Koh`DKNuG2t&SgH>2*=^9E4gdbEk`>I{pv8dlT(3zuv zoq4?|@<Kno?tt?M%q1lhlPpM*I*dClQ~-qBzv}UN_t>ZwSZ6U4;cpk#DQjMfZrmkw zOIzF%x;g7#97y~vo1CaltB|f`WQ#5@fdneSa4$a6v`n{kqJSb^`<O*wYNWSK0j#+r zU&Sw4q=LK|sfdZ~O14PV71~JnM0TPmBz-}&MY@`5x*RY?YAF`yrJ;3Yi!(xfm*9pC z3qJfQM=7@i*Qy}FF`n?3n-1sGw-54dMJej|L9?7SG)NBnRcbt=iw~Gj8mk`(lBCix zCw0yiWwCPR5sgebWj#P<h~%FP6+$N-3R~ev1E{RxuRAG@6=^Z^1~!H%5+e3zsyMVk zNVIq#BwD;rv58D=#(%IaYu3Xc*ckevatv+TwBU6u-H3J>ta2uuuglXA0qO8$$Rb8a z+FV6mODFWPv2Dhegc7tL(WUeC;4}t2yUg_wQ-^JX{DS((rDwZKb9hHI(Umqsb>Qu| z`E67kuOpuyZ|XfZ^&UdKrMeFj+2(HLI>JyW86Xq&&Z<0OP6_00aw4b!gmQxfT@xSH zkx~U}qU9=zOVuUA3ZJ9uuG~BwpOA404G`Ju`PnPD$m%Qqm|B#*H@Dd^EHf+XLJs=< zJReJmM5+sgJmMu}&ta~a)KJ?8y7Mlbw1`6bGfs(Umx}9E1+w7sQxs8bHUu+U;gN=- z6Z*7og24EZH`uRF_zX>32?YB&Oi??67Lm`O<vc4+=wFGTP-TB%6WT<jAW-C^Y2kg( zCU@8}WLP6hIoWo!=XYBNd47JthK~FVe1&M1hOC_Tl2?$KB(H2DuUO)e98qnCtfH1S z5g<fOeDaJ^*OIEfmZ^k}<t5#!cxO@eSTVC0{a}9T0J+Cp!pV#*DCgC<J$;%^dDDd^ zAP_>|Z^W?}g8zKriq#cl_kg}7SMZLQ1f-=?2L{V6NcB>hx;WojEmUnM6YSJd%#Ero zJ##js)AWjdgRF~wM-mPph$;n+$i8$;X$he}UhuBITi3beG1B_9+hfS^t$cEXvU_Md zONU+lSaGP=lR7O9yb|iM)&x5WWG__Kv6|q0QMVC{(n0W+?3Ij156qpJ7w0RC;Bwdj z>wkqENx_&obqb?U%CN$zdSqtn8_+6#!J|X_U^b+3keVrt%<~Lj+UM<tpy_|_%plAd z6XWTPv*lD2G?Y9g#0IHVpC*q>g4!xPVq9LDnf0KCk7Yodz98&DpSHr6iP|2EayvA6 ztCC^t!7S8dFJQ#qy<QAspHr(^qQFSb1246Wh&xt^HIoS(T$)DNaFoWdbs;^BAoT5` z?`3mq9D@FLKbt)}%f2boxBoERi}QSMx>w$?_kK2$dXlLh|MauCv9jl9<Q;6dD5&KP zngR`#Mf_fP!SReGEZepKWSbsbQ<!LARg*_Vq*Nb}sm8~%!Sgf3=}O&}*ujn;UNnz< zHfx5nw+$~gh66E%$9iM<7rin3>(p0`fxaG~lj!u9)mKAvB9-VX5`dlpu{Z+_g~>qs zYUnhUjjz5=<NWyQ>$H_r)>OSFje3C~YiNzy%eGjK-;iZ5$WZ2DjD@-9vSBM0@K?%G zn10^?X9t4zC>hwQ(Y$P)Ye6}g9dtoNPIhf}ZNdQSLA>;3@$x7yO@)0q9=~p{WOTzL z1z$ntwe)V5S0Psaq*Cj`>n(4I=Zgl1Ju4*nV@V7vOh1wy3dcw$HCgj8so8fF;usvv zO-NSf<dK{|I@>BVp|GP_i*&X+zbaKK+(OG!H9Cs0T*gRC)hc4Y2M-`er~2}fJ^J}G zJ^J~J>0b2nS3jE>P0Wj)pXm^eOViRq+i6356T(R&7f+~RHsMezsRl^c*r~zJ5uE}O z+P;=)jKM*=&(O@02#XA0NE9k1-%-WTr_&!^3*6}Je!LWq%_T|#3o!ss7NRKv#!yo{ znEft2p?w++R5#}?8xoDLL2GxiGX+f?&&D_(u_sZRa6pn?oIxeUpa`39@Lhhie79)+ zT)_O-doceGJ(z!{2lGEn_k#KVo9-*_zvFYkvo)x{_qmuCyhP%0f3BSuOd4XwMaPV# za~NJRKtOOj!_fTv?5MzTJR8;H=V#9V<u9CS4xeidzfNOoa#=`<9{v=~!;7)p5My~u z>JNZz-k$CyL%ip6AvaitNc}t%{UniQ^FL}TF4a%AblioaNnbFqtrPcwgT9=;G%_<U z(0Wz3-q-8aqrGl@u-B~*U1hf{4r{}SfHXOG*2ituqZj1Q<k@!=g4*C4azyRq<DdP< z9SF7?tt`|ACRx1aG&70rMRR*6z!l907Qn|1rp5c?y;1(V-YEa~bT8n4EZqx{e&cf? zzzLB+nEB-+O!UnHf7iD?X5dKl?cewM_B*}4eYV%PKTfluzWqs>4GEY3U+U-6qn}5v zw4bda0|=K1WD-XA0xNR4!1`Z$UH`7%kM$;;eoML+Sl^!R)%ExMeyqa;*7~x#JAGxC z2E6-0${JK;AnO2mK%pnnpX|A@o+}EY0$M?6J}l?fV8XgH^-A$)P3W`Jzf)i}z}_JA zDQCYAnM!mlDUnP57FsWWl&GOC2-4VFZ8x?D!~Qxa65bRWsw!?;CsG0N=4Tic(orr} z<VpfVsBOuKr0UJ_#3ENYwXh8_!Ww?iIgu9na19tx=0(6w&ZW{Reug3PV%Z^t`Q%%R z0<B3Pst6`db_Aq>!Ry7iWlShhl@`W?LD(f>990>Xgrx~moZ8E&_N7m-T6MIo>v(8| z28kg9cM9h1ln~MlOQu<u$@IZoZZqt?ZLf<*w9zOmeF6gMHfQL=;;xt(f&m*t>e1;q zRZfH#CHym1zq!?{=`1-N`6vFxWCK|gZ7H#bWgb&jhOn$K^j9iCFMk9rd(lD=xLyk| zNwokIYSnuTXh;B2zh-V__0#7s!$LIGxVQv_fQ42eFw+8rmfbQvLO<PeF2!R?+`&Ly zfgm@VeqWyFZ)hPEDKvZ(8&bySOPyz^H7JA#s7rb-aoPo(H4q_QRX%d6)tQAp86}vV z7z|dvqfv@_W;I2Hr^c}d9<i~J{#JAg_#W290c5uT)4vTmVe&FQ8cUrZVz6Z90y7au zsD>$v$$&p}Jm&L~K7oL`H2&^-Ae14HOJd1mZ<-VT$M6`0c-CWcCGo9Pgr=XBAnv}0 z8%~Smu@{YB|Dy8E9-~Kicg8|G(f<daI1Xx>WqDo{WjPpTBWyhz{80|yX23qfW<v53 z?h4)I<kOx`Z>E!)w*`{(J5q}OOW`)6ec6ikfE!fKXWv<-KvTw8$`s4l8rTYtS?Z_H z6p_566E|8*N-UrxVFM@83SR(<;4cly_9M+I|F5;I68=aUr8;?_dBr-Ny-~{vl1Sfq zhmA?qwLO`h$&00K(_7lg&&+;E?t^^x|CDtmaWe13N!J3_wy>a_keI^0XyIkEf2yws z$&Sq(Jirn?lJ4&oq=7C@7;<5il=w>hIxsD}2PA<Q5~vqmPqZ0Z0v)+0D%n2Bg$a|e zjF!wT^+6#=s-{#mkZyR6P)>N0HZ)@U7X^aE)CKuB6bA^bY7YE_2dHv<VLV+!CifOV z>^Sj~D*qc!##59ok%XHv_|nNb!$zFj6zm7YEeMn6ERJ|6T%Cw+xO1{F)rC5TNmHGp zoI6K!Gp&l^)YR;Q@AxsKFrP|=U^H+h%5cUHK8r&AG6$lvO|Vf`SddL7OWpHpGW}~A zjpwsJDQi#xES0_f0+UHVvL0l2!}m;&nX0LnkWdgAD;dEw&6xh6FkfJttG}AwKpQX4 z9D}vE8%&Q1UmZzp!sHTF@gr})Lo27s?<g`B?@2IEI1|>|a=1M$PXOIA4DNBI4<N;n zbIp<0fe!ik*BW<aCxro;!Tyb)KDJSdl`f9(wmEUsk|C)P)hNi23{ayWLqQX&;Z~95 zGJIA{3F_$=OA%DxJ~*&t|EEX!jan${tnbG&#bvDT(95l!&!BG(i1Ve2U&lf@yq)oa z&9m=U^r3Fvt()v*En8vHXxaQ>c{9{b%Vh)at~Q#cr;$@<poj%BRVgdSK`umuT*u{> zQ*)~)-^_W&g%Wq*!I$M%TVgSs>zsCq=&Z%tPt`tHLC!PIz)Uvs5q@U7ndKIAj02W~ zm*E-K5f?;AY@*2Mz%&7Wrhprr?~cBJ{vem0ZdE}zA7|Ae%^K$w8sg0tkDS4c7=mBT z7JN&9e6ex<zG}i@8rZ}AY;d|hOkD+eApi$R7<i#Gr7#R^L4Hoo@ja@0KxneL#&NkI z0!vBCF!cwWOkPvRC=*1p!8+1Kq2d_`#;2}ob8@p!L73m<V=KsUq7$^qJx>Gtw*e~N zM77%AuvXnHDPv7zW*b55RUov4AF|%lXMN>J;PJU?<1GHl)QPDul%di~2{qp3Uu_6r z6Mc$UE-j1kDMpty%X!3{R$66h?r`_C;Ar87u%g(^pi^N%k6WPmCzw!d12!>0G(~36 zN}23$w_mTc8w}XeU~6;W%USvoyVCA2_wop~CLJkuK75wtVJp(*SCI~_{mEjbxG-$j zsYrY^jCD#_SvBmh(^##0|D{iG^@A*BIQnQjSzDiOY;JAO4jfENd-g_FbLCZjZEwG0 zQSWyyZr`-H{jSCBcQ0=L&K2H*1mCZC`eZ{4LNr3wi!dKuPzrS6sEi;)zEtt+7*rK$ z;&v7p^izcBgy@fsb{Cu3kUo;Zxpa!EfS*I6&^+?jo~1xON3bX(W~vkg!p|iNB+otM zg{)5^FOe#rT9Rk6B`s2dL~d9$CN1(t!_`>cA}uy4!h5TsNehl4NQ)$S7{r3Kti_oV z5xl}1krp4EM_mN%C(=Un0i<P9q$NFrw74$hc{3Nc<^yYCN379?p>^jg3lOooO06zd z3|u`{7c~2#tBWsVb(OZ-?)q}?)#YX6s5xwbV&MQ24QO}cdsQJDB5eE`BFDQfjU3;5 z4Uog(cuxd5io|zzA;$|>Bgf{~EONa2+EI?TUm7{yaSf1TB2M^3kYlnJa>y>bigax6 zV@D_8UNv9&o=aoLKe`6kF?*ueG20V6%GKC0`<lg$|M}X{j{oV>*zwRcz>dc)Mn4ha zK@FkO>|!ln++K|z2lw&giBpe%aB2K_%Qe7{(0HE+esn7DZv5CoFuiUcKb|;#y!q1j z@prEUemr5x^uawv(=YBJn;!a_#gBhHDAwfb$~gm}j(Acj>bUhV@L(imw?^}zj~d$H zXPDv*Yuy~|W=7|#rgno7d!A+Ju<}MwMve|lL8!DpDa(nCy}0CUIZfUmJMNM<D7g;h zER-1#XW<>~H~J~b16Kw;!|)VQpJTPPI_fh5WbNp~5RXAkZW5GVw!)(*7sUzG;)#4V zSdMg=+8AOBvPXmoiZRK7qLj;1EF$$(J`#>gMT{kd#2IvPRNM3YG!asM&uk5FZ)6xY z=_*=wRbnBwhL3q$2HqGzgGq^jpm91ZpB;ZXM>O`1QyO#Wyrhd8Ro5|MeB38&V%X#R zeezZ%E8flM>^X9A%w?XFp{!aba2mtHqFsAIG1=;MWNfZWv0Pirqg*-rdp40wf3qZn zwA9A9&cjmDbS`Ju0x^J;T~I@Tajb1?6OcpR4rW?rUn9uaez1CM7*>if12yC-u_LOh zKof-n44;5Z$#a?BW3wDSUWPw;K%3LjBUe1nF~VaWbs*XpFQaYXT@jg`6hunY(6NOL z%UC262tF3T*^JI_4Kf+90E4#aAD3$+YhHK;gP=_RP2mvLG$PI58?f+kP&YHI^Hr%t z=9A{ZKg$U5p~kcR5U8?kVCSa~EIxgp`!v4N-=djO(Sv`QpHU@_cUOZt2s<^1b3Bz( z`BD)$M0$LoJabmRZO4h~=E68kpu7bWWrPx3m}wq7IJkHEp9{HW<)?@}0n6)<QX$W& z{Nuod^{Dg=`Vn?d?M740-pMbU@Lp@to|ty2D{R0q->moYb>L|14vZE5_Xjjl6`}#L z)-f>k*E(iaebzU#0%Y6J<c~3lk)d6Se4q(u4Jn%u)qn{$McKzKGgtc@@3MD&Wb$ao z_-LOBwB3MiM3@3AH_Y^m5(1P$__T~DVYdj?^9!61r6Sf^7G`;`WLk=9@6x8~c6Wxv zAiiCIpKTN+F&uIz74wXaXJKL-d02KQhIJ0i%~`Tk8%}1n%LF8~roA<&m!ShNo~}#Y z`vuuKl=OmFd(75qsho>a;S+%{>mcYHk06gBDf%HeC_6{dX6GnUc8+3^okPIIu{s}n z8w^=NlMS#|xH)u<f!H1@EXE~DgV2jK1mMCvh$xCeu?xUGWi;n(zHj7^03Q^+_%p+s z)9TdB*%iyOkEu0SKms7*IKO?)w$ItTx^{84x9)Scrx<60=I!8Y#l6$tyA)@uM5D#n zsvcjfdTdRUTtA;eY^{1yxLS4Bbf4VrliStg_8;z(+ou+}#rwUJ+~$`-ZtXS@xt;aM z?QB7ARqa!a+|Hg9ay#26xBGS*t4u5GHg5}Z`^kN~%~Ql~Lv-!3a9iCw{ZE&YZ5^O5 zVvALyv)QC<i!#|z=~Io?Dp|m_H`omJY3)9(-HX<~bD!2ewM1KO*H|)<&n|=3+SV&t z8~&=Wj~5HUmP(&$v{uIXYfo#7eOkLuYxknH-?vX|pIWqbmpc+~<fY`=&KcSFMfP2h zPd!iM<JprzYah?{Y3)9(-HX<~XP?$SwP@`w2O0jc-@Swlp>>b-ykkA**i+9p_N2JR z@QmF^U_%6P_@Z0^=oqu<-|hl$ybFnJT8d(G3<QUOkjtY@r#UBRrBZG|LPFS9$@VZ} z9f*T)H5JiK&r|-76#C$tQ7S`#1=aQI@mD@H<JXH~ouDqNAneD<*Hhe%TOTjCuH*q@ zwLYG+ft!TginJhvPCdYkl+x2W69~a54#QB4hjMS$Tl9i5N;Fq*Dpl@An}WgtVPxSX zu^-VWBqvr-*nr*9ism?T@=OZnsRobLo7Gme@qiP76WpPAJGO8VR-$w#weyN(+Rx@t zK^kI5ob!HeDJCpM46@<P5rfvsNLU?FN-J`f(o(gV0vj2iqEg(`jYo*~QTz#Ab=tg5 z2b)C^jXA);_UhhrYl1x8&(Aidzup;SyDVhR!>AayfRgh!IENsc%A8t)Gi)@!>IDI8 zkR&Qn=LOEO!V%Yinj)Mc9`8FGsOkOJgvBT~;@IGxvw_gN`$^W_#%NL{)5_<>H~DSE zXR2x<BprB1$}?IfC{gj6+NtMl_>U3mNA1kVg@$_Dz&@fC3x(bJVdisgda-tTNw^Q# zMs%8E?MlVk0Y1f05dxUVt&*EkRH1fOFCDxVk#-m|_l~r4T9Syf^LNBaD%40}cImrI zh1ul{&Y!wd?0#eqVw%1$e({Abjd207YE2W*JagCpi!iqTy+8L_eonSQxRaAUL=F{d zi5LS0E?6qjf})v(S93ZDG6NN_8Rcy#dYdq5ThOJA_^WEqH%yvhPft4lHNVfTITp3b z?+sizU6E{Ab4!w0g+&&GbwM<;saNgv=W~)kkl>b16hcqMrHKk?i+7bV09WnQudHEj zDlGxapd^4Rjm9x+U_>{Ny>^q9-c1^LTNr764jgg!*`z*l3|cj!yNs(Ek<<FLHny_I zok0=#Nw>+#yk3{?IFoo*QKwzZ7@(u`)4%FOB+JxQzc|uF7ZRrEQpM$1TyAH;jQkD& z&gD*i$@AFe08x43PhH9MojJJ@nqPB9q(YCFqbT4DX#(}@a9pam9E%GH0izYRuBw&7 zt)w70U%Cy$KAB4kboK}tA3X3T<|}hJ8;=_H!ZMfB**B8DfJ}d%Ec113MjjK^KT}eK ztl?Okz%gOq&&ii6g!74(qTmk8+{F#RN8?3Y43}3_Ly%+W)NfhyVJZ@PN>GZ8v0>U0 z+KL>z29QJ*xrTc{I?&5C=n&F$vWQ6q)6B7BO?jVDjCVf%fbGEUtSCCszXL*lOLK(@ zx)1X-swSfD-n$%xtR^&CVddVbxCWkklYitQQjGMPm|xywqUtQcp@2fY_W}f<3MAcl z^;{^PgW@bTx<;g<gFE>VClG366ehBB`GwOE>ID(NOJ6v5eNOqBs6}sPs>bZ+js%Fz z^ZUK?dz`3zQ25yo4sNdWD4+iPW`0DoJ7acl*X(+|&f4PQs0N$j=Lw|s0pkn=*bz?M z0yeRA1J*BLnr4<yGqY@d`?lGmc>rSI16Tym#4rg8PYiP;XbEgS2yL_*pfhb1*r;Yo z`b3I&foe;0PL_+f=Q4qTD+HAu&c2t`t+@tEbs0#oV6MqDVGO8Yc}#{<l5muopsL5) zK3`n}P#r#ylI+dVf=*<aFz9W8Tc_0Y<bo{{t`ARF8yczVheQTROXG&XgoH4Hu&=AN zSTF|||7ex?Bn+Z0()<YdoUfh;dXaWo*LX*uuaj3RXxJl;Kwu6%P*Mz`VCwgVpmalw z!H*=<5T=WKgH!_*NU^wD0UJJN?*<c5XJ=DWNCN3XQG#Wi=Z6uJ*Fq2lg2jt2h-3}4 z`2iVA#B)S#16VpescxXb^d$^~tR<!RJW2dH_Ob=IXN4qSWcqj=sZVCC4bN+#-rv&R zdyYrs^f*ZM2OT!-B=Y238ETacyH1M~9W<b?bAKCFmN!4#Qt?3DAmji1R)-O9(wpn} z?^d$vR6<1VOa3bun$88#k~8nTDSj{uuuvdS3KeK4R-W;!Bn^x4t|b6Ur0{f+17Xy> zsy63h|1ciD*BTnk0i0=()>KK8RFLqItR-tYMigPdNZ0uM(Dj;~3S;tB-37hoq|qCz zaVkG0P0SjFPSzwjQbNiLkSIyci=sw81~8ppuasHUSecOyRoCBD-CP~gpX={Bdsfe$ zUOjz*ZFERS=qLw0-`rGPpBk)>G%1bCI*Ye`s?c?c=^O^og<9&v^nk-m4$}k^M`D-u z)xfXXaU5>PQ6DD%Ji*<Jn!&Go@YRtv>pfCoR1DmJSNEE#SzmhPD|2J4qXS+s-K+G} z0wIaMQzx4XB0*Z^tUQEO5SMdQ^fKt_L{NmHGjAMD!GB2HbFj`-k@c>=$B859psH$3 z&F&}<3`xE*1%`)O7>)%)I4>1%c2DOSBNK<EeeYn1?rHghFohsO*MW!-3QPvUyc}8F zl77?(K)7B#faw_~bccgMD7`>Eu|T7p&dPvqwV1Y6S)LrvHRIHjR|i$oCgZ=Z+7z5v zM%8tqT$|u^t3Xm_THOjijyxXQ%HX8{{~Lq@bVMJLV3q!?*jiC-n~|FkAdduLfN|&} z66e4qrM2#CEmFsdW#!ZN9>{NM*_n?yf#E%`I7)LQzEZX#K<1=@N_%A8lT!c?XldXe z4M0WBs{lylJq^$kTJ4DSbuD+=Dct~|nR#W9DRRnnY>Cuzr|RqDxpHyk<nyArsp+gz za*@<_$l=J$CJl*tnb(u%N$_Uap1_8IP)x+}oQW7>s`_Q}ft<px;W=n04W#`W7n%x& zq<QhdN+L9Q@N6BG465-Ts-M`)3`!`;yuJ~rBxZS<)Y4F^HO9q@q<OFFzKpS~Yh1x# z3Q{LAB(PW`TldH~nrksKaW9R`>7_QRZ4C+LtP3Ael983|$k=7)k!b@~=}{?n;Mhqw z8;z>$Mg?taym`mF2)7voDY1~mo98MeR@U5c3PzD3*g!@}5hbeYEjm!h`{=uu`v5Kp zAQ?HRzad(Sg+SB6CKjF5T-M~K8ZBt8xLcH;x}*w0gB$j>ARv_;q4mBO*DD@}8X_!4 z-Mxzm8r*f(MhEZkk*LWFJ{|}WqV7h!hmM>%C*uS(L5zh5@vhb4ilyR(i__tR=7;%2 z)asy6`h^l5Efa#mOd^nnDN};=a8oLHbG7Mm>Exh{b=nm@5Jj)oMVO|FMS+x?4&6Q2 z@V&re*o@9;j};Tqyy{HtJwI&9nZg^C+YW}LjXvY)>`t$4y*c2TgbR{1`4K>%7HPHs z!Xs<(m?KtHGzWikr$oz7X<kW=rs=S(s^(K2xix{dj<fob-V`Um*h36qU{RbUco&(_ zJP%rA0y8{ax(Hw9f~&t2%`kA7Wr{>cJToQ{DdDRysHFao$peS-8iAKglVTs7!Oc2U zDzd<HZUSrk##_Kt1=4(ngs_2mBEn8Nt7V**YT^nzzUX%TCFrJ&I6CqgSprMjVx2%l z-1RKLVCV@9>7ii0DBYDk#8P0;%hQA@lP{O1ssFLEttBWK;>%5mZuU#NEPLyi1eS+p z*0Sw#iz^UA)&e0!9J!S()!FqRUo}|TUn<@9K&+c7hdMF<BoJ?_<)MYZHRrQy=`>Wj zDPQBAM+E|jR_c69wk>fOmIBX)^DP<P(w(d@$3<)`6QMAH@^z*Guz)hmqVpW|m2O3f zgDs^6+X`ZpS*FV^91Hzqoe|`NNJ++^v#L~F4Iu^aHb+GDin&Z)<~o=B?ueFRtQ{s| z#6%#Hi|rtnBS5m~^9|+sBd_HN);;~zQs8f~=uy%3DC!A%!6%Rm?el}4s8<jI^{T5~ zn<_<0GD+vud8zT$D0<$A*`B*aogs^u3MpM>WvN7VFG)lpqI@ckq?mCiCIUr%7Agvu zZH6`S+y~Bn`nK5*3#1#+8BuWmIIQCzQET@y!8k!6av-#0g-wD*=qWGa0_b!~GjNPu zjMOR<j5JJcWvGgjWu8G3JEY9rHQZy9LFBk*ln7zJ*`D{!fm0HZB`A0|E__rfP{>;& zjBg`>Op_Z1q{yQxE9y}F-)REynGzBhG@)rM9t3}M=sVfs_@A}GI4xe9q@Q82l)RK{ z8>)r9Tt0;`{KZEY|8{=uj>(MJlgemUjl;(M+<N$cf#h=*2XGhgRG?%~JSL|qD?;1d zhjTuqhgxNj|EQb7NS}rYM|0)(N@vsQb8L#ufXu|Y;NF!=jK_*e$&%Vhk&Q-g#D$5b zeyAP2Q$Mta*Zn~EZ~IZA?z&Sx>y7R6>gNjd3HC!p3~m|;!Dk;Adj8RE8gABn9CTS} z*L-X4qpRA2$BI|g!nmyIj>uyL2*nsDD^qM0JK1Ys_vxT|=G9sO<oFe}ty9_TN9;7l zTAFZlsftyYuPRuCKQfrU>&fYlSGWz_SJ9~;8xNI{Ub^$yXcEEOv|LAsYDPXybus%W zFZ5pI%qTYmhC_qI&jDvV_pvYJX7)boQbs(z4^1qYwsAM<NS8RW1)=LDKJ{_9I1dnP z4=Rv6hq7cWX?*EZQ;n6)gXo%Lt@TSZACujm+rTc92q}Ns!|$^{aEJi$pz)RMjjS+q zp4mTVQN=qFIn!+XK=VtuZn-!f2G;FXEA`D3++{)X)$EtFb}w+oKsUu<o)!~+MQy{5 zk09W6!3q)yPRq(8);@Ea+D>Th0Q5)j?x_Ztjp}FOAPlhvS=BtsRuS<3SYV3h6+kpS zElgsdu4XtOL{Qh*XHT`}iCJTTIZ*=p#tKmaB{Oj!S-|Rc$P>fU%H;bxCE1Wdx`UuX zL}Mrms#*qBUAeix>~HQDUA~OX{U)|#k`O1xCC7<;2F<#OY*7k_Jf1{h7vn)it=0el z1Xk7;`;4T%Pui{g)~7Kgb)&9Sy-A^H*bsgV9PEvFybOo=Lq|>Bv?79N>4Z#k#mk~N zmLcy*pWb=JUmj0i-hRbjR_V*5SN!Fn^d%<tD;g&}e)hRMaMOab>@22BDO#Yw3i_ox zZ)tjJZ*QGWJC%(9i_j{L6%IL$ZIHjM(o%e0@e+z_>N7p#i7p5>y3D4(RqQzNt4;D6 z0^J^z%-*t&`s}nPwc<?~Ff=G%x#TUA+s%|TdS-Hzh_v0HZ4E`QhL=}n2Bxs~mT8Ku zA&YRZY(~-woc14jFqpl7r2>>hYq$d?q>!hgZ9xgBQC1MO(%jY9yy<Ajt<NP>uPSN3 z4;l8@s;3e$P5^FC5=0nz@<-S5LpwZ>l1`<T2}y5JqlaaYz@^0s9)pW$GGmE8SedbH z<;|xuWlXnSNEy?SR^~c*4S9F2qZhFgNh`WjDc5aElJSUy$JcSecz=kC4=J`O30vMA zsM_$XmLWC}9d!m4AvP)dC2f|kmIR}lzm*C=!)C`xa!whkX(2*#BViOrifB!u<T5qL zC<){BQ)bgf8w>}W_xwT?Hx-0R@*aT6mP1GS_9LC{dQOK?g|5#9k{)_^HE0bI>aW%- zed&K&`df8WP}ZS85`#TR=&xKn7`iOA*^U62U9MQ2mMM&b3rdNk^f2}KVx5tpV9(C* zZdYGA<AQ81?!>Mkc0G}&%4#UgR+cdG#iRViJvUBeZ+;ktS0Ch@SF(5swGIjF$Q=%2 zRGk~ZGuhD!K_qwYu>8oS;(SBcKQ*AWo-ISJnAB%5X9J)mpr(hiJNGRmlvZ23C040g zyW2-vODmv_QjkYfh{<Ez(NMKkW60-dlm2vuDUo3qHOm$?x#>`|SVm3RqBY$z&}{}p zjGDN*cq-I{cByaD2|LupfEWT9vta-h34j*>;BfXri6n}(fG<-^fHBz^;}vI`q^VE= z^&wi(%xi|Zv;geGi3pVT@s+?;ijX0z`MUee$xYnis8qHJ1Y)SOrR`YlZw~CBBaB0a z1E7w#r6ob4jJCr-ho=8zlFvl6CX29%j%Y!*Z;|wFqBSwmngr33rDHB9vs6Tk*s{wn zh?6K7E^yH(h?C6S5GUeKdc;X5KEO2QYvl>I5aN@-CNr3(P3mW#*c3(zz1j>MXNF>8 zJL~Uw2eGjsR7U%RBu!2;ePV-jv_xziP!a^g_}bcM=@;LI<+@L7TI@ptHL*d;v;HBJ zmrU0Y8&|B}QbNS0m<O>*JvOn~qca_`S=E^yvFZAf*63i-i9WGe?g@VTixHcJEpkCm zJV)jWnu}RA4tgWL84IPOH>SXe-h?gN+CbO8h3!=9!ekf#?I7Z&O&~YRcTt|wYD=`8 zHv{O65T-D_QD_{PpXQID69XszNRe1c9~**w@NpvgCLJpf%{)wYxkO2YHBiz-I>aLb z7LbmWL<72QP<F&Z3t1yDy$CAP0-!%mWnQ~_xCq*&7J^NWSoG)w9ZRO#ZmpX-01`}3 zVRnQ_+$K4JIMjkaf;B%;?f->5u?_!b{}LYc>4h~7tfpxIAF!@-|87^1eH2X33EK<+ zBovxeQR8<}jDY7)UIouuSwjX0Lu|tWBtO!ZAo_TLb9x|mRy<Dabsm|8Ph=zvp-}Uu zsEQy(W&~k_B8PdaL&#&UBakKe$=Eq#YUF+`x6F%+Hb#AXK-g{SY9ebq240fufl*sS z>I+a3aWZ&J5J2!4Rv(EoV7>z!SqqLjYpZMnaA>WqGS#(MMADpfm{Ne<!&^}ky%N|2 z=Ty`5dj|PNE9csI4Q|YS1yN0;k>LrklZeX{^Z8$g`*3-c64`NB?5pwCjx}qzbyar6 zvf?<NbkBv-1U?R_ZLN{{*)Hyp-2`~<<e)W6hj>u{*;QYFnkj5XHiDr&htkdAe?I?6 z(ut}@BB6RwX^E=vFNXrb9gk<P=sX4kYv0sdm+9Ov<im7sn8>u`WdTgRZ-0lR0BKL} z<#q5-#9?4Oa9q3{7&NHpCFXsw013`*TLN<uvwSd*h@Ol9G{*T}>6KbkR8;q(6Y4kn zopA+iPj>c<lCq|D-HP~;(d-8>N6`t}bWI7FbO8!ciQ<Sj=v2!V&u}A1jQG8AepooM z)`=0(b4{~|90qOK*W+RBW0@Rdq4?I7=`l64(stG)a9m%l*-y@d5n1Z$n({Ru*P2jA zLVt(Gj*Yc2g20jbK!#i5q2?gK{6KL+|I8^4H2Gb%0!6NO1z7&P&|AubE!tM~Q`2c2 z3PacsO$*G3ld~T;AH)4kw2)<7QGT&JBs`O@L5*8$=>EvZjb4XrCgwj3i8xZxMp=R> zEDZZS!tYLzTjDlsO-)2L&0S5nZWbazUFCeMIXFKUp)ER<%jZZD%Ql}7M92a-*c^mk zQT8C}0U<`OsU2vhfT9}_*S09fg1=4+o_W(LUHnMoPH10`#017Duf)wD1d36B$w+G^ zUTMBtfBhk1^<ax3X$yKftS2#2MJQ6mc4IRbLvzJ?h{GUFD$Pt3g~j-3K?4`F$L2Pf zDn4@)-cFR6esrHWXiH3AhlS}!!6fPvOb7Hp+BTI+oxQ;iKyfLiv4Uc9+tb7(jN%H% z+c5~xRtnGnyb*V$E}yJ6buN*ppJC<kYv+nUwb=sh=IUmC1J_N#wG9(kXFip~7P<gB zDj3H(bw_g@_Q>`E$QR6!_w<48#=V%xajhlk9hQXLWD&=mSr%Edw4Tj#cS$T(t5?Po zrago3pc_z2qBpHVP87O?20Ce_yzL|p#4(*iyrSmm9~Ky#b!47KD9qE!p=v?~#KK|j zW`4F7Q-od^=b_80sa;?ZzuhfeNo+6)##n|$f}2+Dn}Ual73Zwu)D9+#g|nWDB}UMb zOeIA7L+jkLPE;hwTXO-X%pzFSMEYab1a<b@^J9ZJPzH#1`eMBl1fT~68CfrCJ_tI~ z)&w|Wyxer-)m944+1*hV|L^w<iVf0|Lt~Y7+I+Wc4oM4RyFgevAdd>FQ#cYvFlIU- zG=OC*%gwBO(N3@YQ7J+Ift>wo1zrm&w1{;;94<Z;yLVGNPheLHrB@Q+<j@=&1gSn@ z3ur&!SWX9vQtdLkbz!<fe6|u{&$rYG9p$>k<|VgNZACtD=}TL2!Wy&$lRo*x3EP_e z07Q?Xf|j{;Hv7RL`X;pzFra$Zwe?5G4D!We^|p5^q4z4ZfMR^67N9}eskC0HbhYgq z?CIdsu$2~JD=l7}`3Ol_-44;`c<Bo=MtXS^7HkP5Lkj*0xo5@f!<;XWrww7+qqa8t z1(fx**}oYynS9PF#1C%4CSo5jvqdzT=&B8#4A!$DTU*SAfQ<COCvyDjZ<>|qpOsEk z4^C*;gK<KF6<9C^`Nx9JC`MpW3sW#v#cX(2lR{)Y8`Ew!Qg(M(nX|jIu?M;yv$3{g zHgt@jX9I%n(|Oxju0^Ok8ym524CG=s6r*|Nj|U){4cMb*W5crn$uYi0C&4dhs-UGF zmnW;jkq2{VH;@#Nedb@-72^@8pFrurJ~&P%DS}V_gcVgvS_DgrFd(<80?S1u5G0^a zayuDP-p%Kob3D)xVLI;5W3@&Gsi8X>lS+GFPRL9%`X~klogLM5w=QNs54X^|HV>7f z#@K0L6eWlDp&P=16y5;>_y|-TuZ)bPRcHZ?BJq3rC%GMeG!BW)0xq)ZQxMX8izGRQ z>ZJoM0ii)Xu6W{f{%b%>b7I7E?1z?GVOju^<yr!w1@sws2|!xyQJe-QI~w2|S$kw1 zxoWuB(vOVmv4!*X3Yw3W^Ia{gyKhO}j6o}K%70T0(uNSr_C!BGF`#kkxWxQU;Q-8{ zhph>eAaa&mUWz0x$Xjz<_*2IE@dXU)$b)EaJ&BjTEM6XE?P$%CTc6fTD1@Ta!AJE2 zGB^9TkOWOVY&jut_&eT%+Uu!E!nvezkzrAaa+cmUCe&0!y+$Ts#`Li=%y>EzHg-Q9 zD~_RdG55#o&5-txyb^fUVcJk^Nu=-$c^dd7lE*Ju<}yjhoOfw2lDjxD;)Bb>+0QAO zLnoKcr-%S0)K9hz1S%p^bh@z(v<ShO4nB667h4GYO50bmd+H57L7pOD6{f;HM;s5P zFz$c}C)mWZ;S~AQ*as=o<Q59j9-W+znWhbX>tT}-5RK@`Da4y(LT6#b!!<Qn4cJ+E zH_t0JfH0s~-JE8dC@W*2XK=g$ci7ngtpmAYmCv d!yDWLRmvXyP<Up-51tj<(41 zJj-QQk-(P1z%~iGYB0hwc{-=GYzhk}VB~cA-zwO|(vy_tMk`w)ofjLSHq6@X+R~Fy zKNgUv3T=nzOxO4V&s0A9DN&W_ca`~C@6ZA-`nr_J$5dE0+TkPjI@JCT;*@JT*F_*P zGdq3d3fC?oBo<%!5ZI?5m*Xp!6v#^IC&ITjTO)uQ22lAl(8N})g+j3CoOVMYQz74L zeS)E{PZVjrrAQ98U)R!-9$Dv9ijt&&HxtVw1lm#*D^UBmtbV|!m6N~lv9usjZg~)* zk<pR@8){QdX|ASyI~FNR&|!6sD-*>PR(ww$QFFPLTp=4aVk@&Gy(XW%b2wKdU#_8H zFNvLe`Ru0^CdAq&AVP?M`uC$%_I1VV?Qi)(!A7X_QvOhnwt>TT@}^?=7f$_+)8~+m zs1{K+Z2@Bt5Q|h3?|ynP{p0mwcA<D6V2#}g((mP2n`Gupj9z(XPb||w?e?$t%c6k| zYScpdj8+9%odDR0Os=fjENkBWv7h<P;e8O;!|YsrZTiXLis!GTut^QQ^$b!^#CA;d zlYM1`U^6MwaFI4nOF>IbFtUb&bju>o5Fv(f5J)wkMnno$Tl`-y*gAgBFI<e3-FCx! zJDSb&izf_!TR-RPkP@vZA4OfSovaU7`a-SL)MH*i9N4VZ&YYBW5&>rOjP}Q^3D)br zyC35~YnzE<(1o;GA(NBP*AX{cS}uYVZLxrv_iFtvSi~mu$?^4IT)8npW@6$I-HPMc zb;QyJEk)>N1GyC7aw;w&3Q!m9rO`KIa7kjS<Kc?X?cD+=f-8J~xdo=V5EDe^oJz93 zM}%KZY9E1G+n|HnGzM+nfQo^^cJuOnn_KM%oQTX8%?soFmyv1g7#gdhsMH_>n-ws~ zh^DC!!CJBNPn0&K*`TzjwjS?dEF&I_nir}j4~d_v04IACJ2D(PRIS}Fow$q`u>j&# zKv6BPgd!8H=1B0M=D6Ii=uH-ao-W`oxk4Zne^8<Yfpo~Y1yTvvVrN)_XvH8EapS!h z7-+r&q>xqE)&itMK#H}ON$Y{M10-t-%0Ao+qzIDBAf@X7EdEZX&0)*OpahiZy;_-2 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 LJxJVTA;o_O^!4_c diff --git a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js index 1443077b5..648bf66db 100644 --- a/app/plot_app/static/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js +++ b/app/plot_app/static/cesium/Build/Cesium/ThirdParty/google-earth-dbroot-parser.js @@ -1 +1 @@ -window.cesiumGoogleEarthDbRootParser=function(i){"use strict";var e,r,l=i.Reader,s=(i.Writer,i.util),p=[],c=i.roots.default||(i.roots.default={});function t(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function o(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function a(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function n(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function d(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function u(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function b(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function y(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function f(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function h(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function m(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function v(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function g(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function P(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function O(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}return c.keyhole=((r={}).dbroot=((e={}).StringEntryProto=(t.prototype.stringId=0,t.prototype.stringValue="",t.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.StringEntryProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.stringId=e.fixed32();break;case 2:o.stringValue=e.string();break;default:e.skipType(7&a)}}return o},t.verify=function(e){return"object"!=typeof e||null===e?"object expected":s.isInteger(e.stringId)?s.isString(e.stringValue)?null:"stringValue: string expected":"stringId: integer expected"},t.from=t.fromObject=function(e){if(e instanceof c.keyhole.dbroot.StringEntryProto)return e;var r=new c.keyhole.dbroot.StringEntryProto;return void 0!==e.stringId&&null!==e.stringId&&(r.stringId=e.stringId>>>0),void 0!==e.stringValue&&null!==e.stringValue&&(r.stringValue=String(e.stringValue)),r},t.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.stringId=0,t.stringValue=""),void 0!==e.stringId&&null!==e.stringId&&e.hasOwnProperty("stringId")&&(t.stringId=e.stringId),void 0!==e.stringValue&&null!==e.stringValue&&e.hasOwnProperty("stringValue")&&(t.stringValue=e.stringValue),t},t.prototype.toObject=function(e){return this.constructor.toObject(this,e)},t.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},t),e.StringIdOrValueProto=(o.prototype.stringId=0,o.prototype.value="",o.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.StringIdOrValueProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.stringId=e.fixed32();break;case 2:o.value=e.string();break;default:e.skipType(7&a)}}return o},o.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.stringId||s.isInteger(e.stringId)?void 0===e.value||s.isString(e.value)?null:"value: string expected":"stringId: integer expected"},o.from=o.fromObject=function(e){if(e instanceof c.keyhole.dbroot.StringIdOrValueProto)return e;var r=new c.keyhole.dbroot.StringIdOrValueProto;return void 0!==e.stringId&&null!==e.stringId&&(r.stringId=e.stringId>>>0),void 0!==e.value&&null!==e.value&&(r.value=String(e.value)),r},o.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.stringId=0,t.value=""),void 0!==e.stringId&&null!==e.stringId&&e.hasOwnProperty("stringId")&&(t.stringId=e.stringId),void 0!==e.value&&null!==e.value&&e.hasOwnProperty("value")&&(t.value=e.value),t},o.prototype.toObject=function(e){return this.constructor.toObject(this,e)},o.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},o),e.PlanetModelProto=(a.prototype.radius=6378.137,a.prototype.flattening=.00335281066474748,a.prototype.elevationBias=0,a.prototype.negativeAltitudeExponentBias=0,a.prototype.compressedNegativeAltitudeThreshold=0,a.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.PlanetModelProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.radius=e.double();break;case 2:o.flattening=e.double();break;case 4:o.elevationBias=e.double();break;case 5:o.negativeAltitudeExponentBias=e.int32();break;case 6:o.compressedNegativeAltitudeThreshold=e.double();break;default:e.skipType(7&a)}}return o},a.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.radius&&"number"!=typeof e.radius?"radius: number expected":void 0!==e.flattening&&"number"!=typeof e.flattening?"flattening: number expected":void 0!==e.elevationBias&&"number"!=typeof e.elevationBias?"elevationBias: number expected":void 0===e.negativeAltitudeExponentBias||s.isInteger(e.negativeAltitudeExponentBias)?void 0!==e.compressedNegativeAltitudeThreshold&&"number"!=typeof e.compressedNegativeAltitudeThreshold?"compressedNegativeAltitudeThreshold: number expected":null:"negativeAltitudeExponentBias: integer expected"},a.from=a.fromObject=function(e){if(e instanceof c.keyhole.dbroot.PlanetModelProto)return e;var r=new c.keyhole.dbroot.PlanetModelProto;return void 0!==e.radius&&null!==e.radius&&(r.radius=Number(e.radius)),void 0!==e.flattening&&null!==e.flattening&&(r.flattening=Number(e.flattening)),void 0!==e.elevationBias&&null!==e.elevationBias&&(r.elevationBias=Number(e.elevationBias)),void 0!==e.negativeAltitudeExponentBias&&null!==e.negativeAltitudeExponentBias&&(r.negativeAltitudeExponentBias=0|e.negativeAltitudeExponentBias),void 0!==e.compressedNegativeAltitudeThreshold&&null!==e.compressedNegativeAltitudeThreshold&&(r.compressedNegativeAltitudeThreshold=Number(e.compressedNegativeAltitudeThreshold)),r},a.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.radius=6378.137,t.flattening=.00335281066474748,t.elevationBias=0,t.negativeAltitudeExponentBias=0,t.compressedNegativeAltitudeThreshold=0),void 0!==e.radius&&null!==e.radius&&e.hasOwnProperty("radius")&&(t.radius=e.radius),void 0!==e.flattening&&null!==e.flattening&&e.hasOwnProperty("flattening")&&(t.flattening=e.flattening),void 0!==e.elevationBias&&null!==e.elevationBias&&e.hasOwnProperty("elevationBias")&&(t.elevationBias=e.elevationBias),void 0!==e.negativeAltitudeExponentBias&&null!==e.negativeAltitudeExponentBias&&e.hasOwnProperty("negativeAltitudeExponentBias")&&(t.negativeAltitudeExponentBias=e.negativeAltitudeExponentBias),void 0!==e.compressedNegativeAltitudeThreshold&&null!==e.compressedNegativeAltitudeThreshold&&e.hasOwnProperty("compressedNegativeAltitudeThreshold")&&(t.compressedNegativeAltitudeThreshold=e.compressedNegativeAltitudeThreshold),t},a.prototype.toObject=function(e){return this.constructor.toObject(this,e)},a.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},a),e.ProviderInfoProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.providerId=0,e.prototype.copyrightString=null,e.prototype.verticalPixelOffset=-1;var n={1:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ProviderInfoProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.providerId=e.int32();break;case 2:o.copyrightString=n[1].decode(e,e.uint32());break;case 3:o.verticalPixelOffset=e.int32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isInteger(e.providerId))return"providerId: integer expected";if(void 0!==e.copyrightString&&null!==e.copyrightString){var r=n[1].verify(e.copyrightString);if(r)return"copyrightString."+r}return void 0===e.verticalPixelOffset||s.isInteger(e.verticalPixelOffset)?null:"verticalPixelOffset: integer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ProviderInfoProto)return e;var r=new c.keyhole.dbroot.ProviderInfoProto;if(void 0!==e.providerId&&null!==e.providerId&&(r.providerId=0|e.providerId),void 0!==e.copyrightString&&null!==e.copyrightString){if("object"!=typeof e.copyrightString)throw TypeError(".keyhole.dbroot.ProviderInfoProto.copyrightString: object expected");r.copyrightString=n[1].fromObject(e.copyrightString)}return void 0!==e.verticalPixelOffset&&null!==e.verticalPixelOffset&&(r.verticalPixelOffset=0|e.verticalPixelOffset),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.providerId=0,t.copyrightString=null,t.verticalPixelOffset=-1),void 0!==e.providerId&&null!==e.providerId&&e.hasOwnProperty("providerId")&&(t.providerId=e.providerId),void 0!==e.copyrightString&&null!==e.copyrightString&&e.hasOwnProperty("copyrightString")&&(t.copyrightString=n[1].toObject(e.copyrightString,r)),void 0!==e.verticalPixelOffset&&null!==e.verticalPixelOffset&&e.hasOwnProperty("verticalPixelOffset")&&(t.verticalPixelOffset=e.verticalPixelOffset),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.PopUpProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.isBalloonStyle=!1,e.prototype.text=null,e.prototype.backgroundColorAbgr=4294967295,e.prototype.textColorAbgr=4278190080;var n={1:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.PopUpProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.isBalloonStyle=e.bool();break;case 2:o.text=n[1].decode(e,e.uint32());break;case 3:o.backgroundColorAbgr=e.fixed32();break;case 4:o.textColorAbgr=e.fixed32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.isBalloonStyle&&"boolean"!=typeof e.isBalloonStyle)return"isBalloonStyle: boolean expected";if(void 0!==e.text&&null!==e.text){var r=n[1].verify(e.text);if(r)return"text."+r}return void 0===e.backgroundColorAbgr||s.isInteger(e.backgroundColorAbgr)?void 0===e.textColorAbgr||s.isInteger(e.textColorAbgr)?null:"textColorAbgr: integer expected":"backgroundColorAbgr: integer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.PopUpProto)return e;var r=new c.keyhole.dbroot.PopUpProto;if(void 0!==e.isBalloonStyle&&null!==e.isBalloonStyle&&(r.isBalloonStyle=Boolean(e.isBalloonStyle)),void 0!==e.text&&null!==e.text){if("object"!=typeof e.text)throw TypeError(".keyhole.dbroot.PopUpProto.text: object expected");r.text=n[1].fromObject(e.text)}return void 0!==e.backgroundColorAbgr&&null!==e.backgroundColorAbgr&&(r.backgroundColorAbgr=e.backgroundColorAbgr>>>0),void 0!==e.textColorAbgr&&null!==e.textColorAbgr&&(r.textColorAbgr=e.textColorAbgr>>>0),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.isBalloonStyle=!1,t.text=null,t.backgroundColorAbgr=4294967295,t.textColorAbgr=4278190080),void 0!==e.isBalloonStyle&&null!==e.isBalloonStyle&&e.hasOwnProperty("isBalloonStyle")&&(t.isBalloonStyle=e.isBalloonStyle),void 0!==e.text&&null!==e.text&&e.hasOwnProperty("text")&&(t.text=n[1].toObject(e.text,r)),void 0!==e.backgroundColorAbgr&&null!==e.backgroundColorAbgr&&e.hasOwnProperty("backgroundColorAbgr")&&(t.backgroundColorAbgr=e.backgroundColorAbgr),void 0!==e.textColorAbgr&&null!==e.textColorAbgr&&e.hasOwnProperty("textColorAbgr")&&(t.textColorAbgr=e.textColorAbgr),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.StyleAttributeProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.styleId="",e.prototype.providerId=0,e.prototype.polyColorAbgr=4294967295,e.prototype.lineColorAbgr=4294967295,e.prototype.lineWidth=1,e.prototype.labelColorAbgr=4294967295,e.prototype.labelScale=1,e.prototype.placemarkIconColorAbgr=4294967295,e.prototype.placemarkIconScale=1,e.prototype.placemarkIconPath=null,e.prototype.placemarkIconX=0,e.prototype.placemarkIconY=0,e.prototype.placemarkIconWidth=32,e.prototype.placemarkIconHeight=32,e.prototype.popUp=null,e.prototype.drawFlag=s.emptyArray;var n={9:"keyhole.dbroot.StringIdOrValueProto",14:"keyhole.dbroot.PopUpProto",15:"keyhole.dbroot.DrawFlagProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.StyleAttributeProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.styleId=e.string();break;case 3:o.providerId=e.int32();break;case 4:o.polyColorAbgr=e.fixed32();break;case 5:o.lineColorAbgr=e.fixed32();break;case 6:o.lineWidth=e.float();break;case 7:o.labelColorAbgr=e.fixed32();break;case 8:o.labelScale=e.float();break;case 9:o.placemarkIconColorAbgr=e.fixed32();break;case 10:o.placemarkIconScale=e.float();break;case 11:o.placemarkIconPath=n[9].decode(e,e.uint32());break;case 12:o.placemarkIconX=e.int32();break;case 13:o.placemarkIconY=e.int32();break;case 14:o.placemarkIconWidth=e.int32();break;case 15:o.placemarkIconHeight=e.int32();break;case 16:o.popUp=n[14].decode(e,e.uint32());break;case 17:o.drawFlag&&o.drawFlag.length||(o.drawFlag=[]),o.drawFlag.push(n[15].decode(e,e.uint32()));break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isString(e.styleId))return"styleId: string expected";if(void 0!==e.providerId&&!s.isInteger(e.providerId))return"providerId: integer expected";if(void 0!==e.polyColorAbgr&&!s.isInteger(e.polyColorAbgr))return"polyColorAbgr: integer expected";if(void 0!==e.lineColorAbgr&&!s.isInteger(e.lineColorAbgr))return"lineColorAbgr: integer expected";if(void 0!==e.lineWidth&&"number"!=typeof e.lineWidth)return"lineWidth: number expected";if(void 0!==e.labelColorAbgr&&!s.isInteger(e.labelColorAbgr))return"labelColorAbgr: integer expected";if(void 0!==e.labelScale&&"number"!=typeof e.labelScale)return"labelScale: number expected";if(void 0!==e.placemarkIconColorAbgr&&!s.isInteger(e.placemarkIconColorAbgr))return"placemarkIconColorAbgr: integer expected";if(void 0!==e.placemarkIconScale&&"number"!=typeof e.placemarkIconScale)return"placemarkIconScale: number expected";if(void 0!==e.placemarkIconPath&&null!==e.placemarkIconPath&&(t=n[9].verify(e.placemarkIconPath)))return"placemarkIconPath."+t;if(void 0!==e.placemarkIconX&&!s.isInteger(e.placemarkIconX))return"placemarkIconX: integer expected";if(void 0!==e.placemarkIconY&&!s.isInteger(e.placemarkIconY))return"placemarkIconY: integer expected";if(void 0!==e.placemarkIconWidth&&!s.isInteger(e.placemarkIconWidth))return"placemarkIconWidth: integer expected";if(void 0!==e.placemarkIconHeight&&!s.isInteger(e.placemarkIconHeight))return"placemarkIconHeight: integer expected";if(void 0!==e.popUp&&null!==e.popUp&&(t=n[14].verify(e.popUp)))return"popUp."+t;if(void 0!==e.drawFlag){if(!Array.isArray(e.drawFlag))return"drawFlag: array expected";for(var r=0;r<e.drawFlag.length;++r){var t;if(t=n[15].verify(e.drawFlag[r]))return"drawFlag."+t}}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.StyleAttributeProto)return e;var r=new c.keyhole.dbroot.StyleAttributeProto;if(void 0!==e.styleId&&null!==e.styleId&&(r.styleId=String(e.styleId)),void 0!==e.providerId&&null!==e.providerId&&(r.providerId=0|e.providerId),void 0!==e.polyColorAbgr&&null!==e.polyColorAbgr&&(r.polyColorAbgr=e.polyColorAbgr>>>0),void 0!==e.lineColorAbgr&&null!==e.lineColorAbgr&&(r.lineColorAbgr=e.lineColorAbgr>>>0),void 0!==e.lineWidth&&null!==e.lineWidth&&(r.lineWidth=Number(e.lineWidth)),void 0!==e.labelColorAbgr&&null!==e.labelColorAbgr&&(r.labelColorAbgr=e.labelColorAbgr>>>0),void 0!==e.labelScale&&null!==e.labelScale&&(r.labelScale=Number(e.labelScale)),void 0!==e.placemarkIconColorAbgr&&null!==e.placemarkIconColorAbgr&&(r.placemarkIconColorAbgr=e.placemarkIconColorAbgr>>>0),void 0!==e.placemarkIconScale&&null!==e.placemarkIconScale&&(r.placemarkIconScale=Number(e.placemarkIconScale)),void 0!==e.placemarkIconPath&&null!==e.placemarkIconPath){if("object"!=typeof e.placemarkIconPath)throw TypeError(".keyhole.dbroot.StyleAttributeProto.placemarkIconPath: object expected");r.placemarkIconPath=n[9].fromObject(e.placemarkIconPath)}if(void 0!==e.placemarkIconX&&null!==e.placemarkIconX&&(r.placemarkIconX=0|e.placemarkIconX),void 0!==e.placemarkIconY&&null!==e.placemarkIconY&&(r.placemarkIconY=0|e.placemarkIconY),void 0!==e.placemarkIconWidth&&null!==e.placemarkIconWidth&&(r.placemarkIconWidth=0|e.placemarkIconWidth),void 0!==e.placemarkIconHeight&&null!==e.placemarkIconHeight&&(r.placemarkIconHeight=0|e.placemarkIconHeight),void 0!==e.popUp&&null!==e.popUp){if("object"!=typeof e.popUp)throw TypeError(".keyhole.dbroot.StyleAttributeProto.popUp: object expected");r.popUp=n[14].fromObject(e.popUp)}if(e.drawFlag){if(!Array.isArray(e.drawFlag))throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: array expected");r.drawFlag=[];for(var t=0;t<e.drawFlag.length;++t){if("object"!=typeof e.drawFlag[t])throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: object expected");r.drawFlag[t]=n[15].fromObject(e.drawFlag[t])}}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.drawFlag=[]),r.defaults&&(t.styleId="",t.providerId=0,t.polyColorAbgr=4294967295,t.lineColorAbgr=4294967295,t.lineWidth=1,t.labelColorAbgr=4294967295,t.labelScale=1,t.placemarkIconColorAbgr=4294967295,t.placemarkIconScale=1,t.placemarkIconPath=null,t.placemarkIconX=0,t.placemarkIconY=0,t.placemarkIconWidth=32,t.placemarkIconHeight=32,t.popUp=null),void 0!==e.styleId&&null!==e.styleId&&e.hasOwnProperty("styleId")&&(t.styleId=e.styleId),void 0!==e.providerId&&null!==e.providerId&&e.hasOwnProperty("providerId")&&(t.providerId=e.providerId),void 0!==e.polyColorAbgr&&null!==e.polyColorAbgr&&e.hasOwnProperty("polyColorAbgr")&&(t.polyColorAbgr=e.polyColorAbgr),void 0!==e.lineColorAbgr&&null!==e.lineColorAbgr&&e.hasOwnProperty("lineColorAbgr")&&(t.lineColorAbgr=e.lineColorAbgr),void 0!==e.lineWidth&&null!==e.lineWidth&&e.hasOwnProperty("lineWidth")&&(t.lineWidth=e.lineWidth),void 0!==e.labelColorAbgr&&null!==e.labelColorAbgr&&e.hasOwnProperty("labelColorAbgr")&&(t.labelColorAbgr=e.labelColorAbgr),void 0!==e.labelScale&&null!==e.labelScale&&e.hasOwnProperty("labelScale")&&(t.labelScale=e.labelScale),void 0!==e.placemarkIconColorAbgr&&null!==e.placemarkIconColorAbgr&&e.hasOwnProperty("placemarkIconColorAbgr")&&(t.placemarkIconColorAbgr=e.placemarkIconColorAbgr),void 0!==e.placemarkIconScale&&null!==e.placemarkIconScale&&e.hasOwnProperty("placemarkIconScale")&&(t.placemarkIconScale=e.placemarkIconScale),void 0!==e.placemarkIconPath&&null!==e.placemarkIconPath&&e.hasOwnProperty("placemarkIconPath")&&(t.placemarkIconPath=n[9].toObject(e.placemarkIconPath,r)),void 0!==e.placemarkIconX&&null!==e.placemarkIconX&&e.hasOwnProperty("placemarkIconX")&&(t.placemarkIconX=e.placemarkIconX),void 0!==e.placemarkIconY&&null!==e.placemarkIconY&&e.hasOwnProperty("placemarkIconY")&&(t.placemarkIconY=e.placemarkIconY),void 0!==e.placemarkIconWidth&&null!==e.placemarkIconWidth&&e.hasOwnProperty("placemarkIconWidth")&&(t.placemarkIconWidth=e.placemarkIconWidth),void 0!==e.placemarkIconHeight&&null!==e.placemarkIconHeight&&e.hasOwnProperty("placemarkIconHeight")&&(t.placemarkIconHeight=e.placemarkIconHeight),void 0!==e.popUp&&null!==e.popUp&&e.hasOwnProperty("popUp")&&(t.popUp=n[14].toObject(e.popUp,r)),void 0!==e.drawFlag&&null!==e.drawFlag&&e.hasOwnProperty("drawFlag")){t.drawFlag=[];for(var o=0;o<e.drawFlag.length;++o)t.drawFlag[o]=n[15].toObject(e.drawFlag[o],r)}return t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.StyleMapProto=(n.prototype.styleMapId=0,n.prototype.channelId=s.emptyArray,n.prototype.normalStyleAttribute=0,n.prototype.highlightStyleAttribute=0,n.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.StyleMapProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.styleMapId=e.int32();break;case 2:if(o.channelId&&o.channelId.length||(o.channelId=[]),2==(7&a))for(var n=e.uint32()+e.pos;e.pos<n;)o.channelId.push(e.int32());else o.channelId.push(e.int32());break;case 3:o.normalStyleAttribute=e.int32();break;case 4:o.highlightStyleAttribute=e.int32();break;default:e.skipType(7&a)}}return o},n.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isInteger(e.styleMapId))return"styleMapId: integer expected";if(void 0!==e.channelId){if(!Array.isArray(e.channelId))return"channelId: array expected";for(var r=0;r<e.channelId.length;++r)if(!s.isInteger(e.channelId[r]))return"channelId: integer[] expected"}return void 0===e.normalStyleAttribute||s.isInteger(e.normalStyleAttribute)?void 0===e.highlightStyleAttribute||s.isInteger(e.highlightStyleAttribute)?null:"highlightStyleAttribute: integer expected":"normalStyleAttribute: integer expected"},n.from=n.fromObject=function(e){if(e instanceof c.keyhole.dbroot.StyleMapProto)return e;var r=new c.keyhole.dbroot.StyleMapProto;if(void 0!==e.styleMapId&&null!==e.styleMapId&&(r.styleMapId=0|e.styleMapId),e.channelId){if(!Array.isArray(e.channelId))throw TypeError(".keyhole.dbroot.StyleMapProto.channelId: array expected");r.channelId=[];for(var t=0;t<e.channelId.length;++t)r.channelId[t]=0|e.channelId[t]}return void 0!==e.normalStyleAttribute&&null!==e.normalStyleAttribute&&(r.normalStyleAttribute=0|e.normalStyleAttribute),void 0!==e.highlightStyleAttribute&&null!==e.highlightStyleAttribute&&(r.highlightStyleAttribute=0|e.highlightStyleAttribute),r},n.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.channelId=[]),r.defaults&&(t.styleMapId=0,t.normalStyleAttribute=0,t.highlightStyleAttribute=0),void 0!==e.styleMapId&&null!==e.styleMapId&&e.hasOwnProperty("styleMapId")&&(t.styleMapId=e.styleMapId),void 0!==e.channelId&&null!==e.channelId&&e.hasOwnProperty("channelId")){t.channelId=[];for(var o=0;o<e.channelId.length;++o)t.channelId[o]=e.channelId[o]}return void 0!==e.normalStyleAttribute&&null!==e.normalStyleAttribute&&e.hasOwnProperty("normalStyleAttribute")&&(t.normalStyleAttribute=e.normalStyleAttribute),void 0!==e.highlightStyleAttribute&&null!==e.highlightStyleAttribute&&e.hasOwnProperty("highlightStyleAttribute")&&(t.highlightStyleAttribute=e.highlightStyleAttribute),t},n.prototype.toObject=function(e){return this.constructor.toObject(this,e)},n.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},n),e.ZoomRangeProto=(d.prototype.minZoom=0,d.prototype.maxZoom=0,d.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ZoomRangeProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.minZoom=e.int32();break;case 2:o.maxZoom=e.int32();break;default:e.skipType(7&a)}}return o},d.verify=function(e){return"object"!=typeof e||null===e?"object expected":s.isInteger(e.minZoom)?s.isInteger(e.maxZoom)?null:"maxZoom: integer expected":"minZoom: integer expected"},d.from=d.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ZoomRangeProto)return e;var r=new c.keyhole.dbroot.ZoomRangeProto;return void 0!==e.minZoom&&null!==e.minZoom&&(r.minZoom=0|e.minZoom),void 0!==e.maxZoom&&null!==e.maxZoom&&(r.maxZoom=0|e.maxZoom),r},d.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.minZoom=0,t.maxZoom=0),void 0!==e.minZoom&&null!==e.minZoom&&e.hasOwnProperty("minZoom")&&(t.minZoom=e.minZoom),void 0!==e.maxZoom&&null!==e.maxZoom&&e.hasOwnProperty("maxZoom")&&(t.maxZoom=e.maxZoom),t},d.prototype.toObject=function(e){return this.constructor.toObject(this,e)},d.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},d),e.DrawFlagProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.drawFlagType=1;var r,o={0:"keyhole.dbroot.DrawFlagProto.DrawFlagType"};return p.push(o),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.DrawFlagProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.drawFlagType=e.uint32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";switch(e.drawFlagType){default:return"drawFlagType: enum value expected";case 1:case 2:case 3:case 4:case 5:}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.DrawFlagProto)return e;var r=new c.keyhole.dbroot.DrawFlagProto;switch(e.drawFlagType){case"TYPE_FILL_ONLY":case 1:r.drawFlagType=1;break;case"TYPE_OUTLINE_ONLY":case 2:r.drawFlagType=2;break;case"TYPE_FILL_AND_OUTLINE":case 3:r.drawFlagType=3;break;case"TYPE_ANTIALIASING":case 4:r.drawFlagType=4;break;case"TYPE_CENTER_LABEL":case 5:r.drawFlagType=5}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.drawFlagType=r.enums===String?"TYPE_FILL_ONLY":1),void 0!==e.drawFlagType&&null!==e.drawFlagType&&e.hasOwnProperty("drawFlagType")&&(t.drawFlagType=r.enums===String?o[0][e.drawFlagType]:e.drawFlagType),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.DrawFlagType=((r=Object.create({})).TYPE_FILL_ONLY=1,r.TYPE_OUTLINE_ONLY=2,r.TYPE_FILL_AND_OUTLINE=3,r.TYPE_ANTIALIASING=4,r.TYPE_CENTER_LABEL=5,r),e}(),e.LayerProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.zoomRange=s.emptyArray,e.prototype.preserveTextLevel=30,e.prototype.lodBeginTransition=!1,e.prototype.lodEndTransition=!1;var n={0:"keyhole.dbroot.ZoomRangeProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.LayerProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.zoomRange&&o.zoomRange.length||(o.zoomRange=[]),o.zoomRange.push(n[0].decode(e,e.uint32()));break;case 2:o.preserveTextLevel=e.int32();break;case 4:o.lodBeginTransition=e.bool();break;case 5:o.lodEndTransition=e.bool();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.zoomRange){if(!Array.isArray(e.zoomRange))return"zoomRange: array expected";for(var r=0;r<e.zoomRange.length;++r){var t=n[0].verify(e.zoomRange[r]);if(t)return"zoomRange."+t}}return void 0===e.preserveTextLevel||s.isInteger(e.preserveTextLevel)?void 0!==e.lodBeginTransition&&"boolean"!=typeof e.lodBeginTransition?"lodBeginTransition: boolean expected":void 0!==e.lodEndTransition&&"boolean"!=typeof e.lodEndTransition?"lodEndTransition: boolean expected":null:"preserveTextLevel: integer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.LayerProto)return e;var r=new c.keyhole.dbroot.LayerProto;if(e.zoomRange){if(!Array.isArray(e.zoomRange))throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: array expected");r.zoomRange=[];for(var t=0;t<e.zoomRange.length;++t){if("object"!=typeof e.zoomRange[t])throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: object expected");r.zoomRange[t]=n[0].fromObject(e.zoomRange[t])}}return void 0!==e.preserveTextLevel&&null!==e.preserveTextLevel&&(r.preserveTextLevel=0|e.preserveTextLevel),void 0!==e.lodBeginTransition&&null!==e.lodBeginTransition&&(r.lodBeginTransition=Boolean(e.lodBeginTransition)),void 0!==e.lodEndTransition&&null!==e.lodEndTransition&&(r.lodEndTransition=Boolean(e.lodEndTransition)),r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.zoomRange=[]),r.defaults&&(t.preserveTextLevel=30,t.lodBeginTransition=!1,t.lodEndTransition=!1),void 0!==e.zoomRange&&null!==e.zoomRange&&e.hasOwnProperty("zoomRange")){t.zoomRange=[];for(var o=0;o<e.zoomRange.length;++o)t.zoomRange[o]=n[0].toObject(e.zoomRange[o],r)}return void 0!==e.preserveTextLevel&&null!==e.preserveTextLevel&&e.hasOwnProperty("preserveTextLevel")&&(t.preserveTextLevel=e.preserveTextLevel),void 0!==e.lodBeginTransition&&null!==e.lodBeginTransition&&e.hasOwnProperty("lodBeginTransition")&&(t.lodBeginTransition=e.lodBeginTransition),void 0!==e.lodEndTransition&&null!==e.lodEndTransition&&e.hasOwnProperty("lodEndTransition")&&(t.lodEndTransition=e.lodEndTransition),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.FolderProto=(u.prototype.isExpandable=!0,u.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.FolderProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.isExpandable=e.bool();break;default:e.skipType(7&a)}}return o},u.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.isExpandable&&"boolean"!=typeof e.isExpandable?"isExpandable: boolean expected":null},u.from=u.fromObject=function(e){if(e instanceof c.keyhole.dbroot.FolderProto)return e;var r=new c.keyhole.dbroot.FolderProto;return void 0!==e.isExpandable&&null!==e.isExpandable&&(r.isExpandable=Boolean(e.isExpandable)),r},u.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.isExpandable=!0),void 0!==e.isExpandable&&null!==e.isExpandable&&e.hasOwnProperty("isExpandable")&&(t.isExpandable=e.isExpandable),t},u.prototype.toObject=function(e){return this.constructor.toObject(this,e)},u.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},u),e.RequirementProto=(b.prototype.requiredVram="",b.prototype.requiredClientVer="",b.prototype.probability="",b.prototype.requiredUserAgent="",b.prototype.requiredClientCapabilities="",b.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.RequirementProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 3:o.requiredVram=e.string();break;case 4:o.requiredClientVer=e.string();break;case 5:o.probability=e.string();break;case 6:o.requiredUserAgent=e.string();break;case 7:o.requiredClientCapabilities=e.string();break;default:e.skipType(7&a)}}return o},b.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.requiredVram||s.isString(e.requiredVram)?void 0===e.requiredClientVer||s.isString(e.requiredClientVer)?void 0===e.probability||s.isString(e.probability)?void 0===e.requiredUserAgent||s.isString(e.requiredUserAgent)?void 0===e.requiredClientCapabilities||s.isString(e.requiredClientCapabilities)?null:"requiredClientCapabilities: string expected":"requiredUserAgent: string expected":"probability: string expected":"requiredClientVer: string expected":"requiredVram: string expected"},b.from=b.fromObject=function(e){if(e instanceof c.keyhole.dbroot.RequirementProto)return e;var r=new c.keyhole.dbroot.RequirementProto;return void 0!==e.requiredVram&&null!==e.requiredVram&&(r.requiredVram=String(e.requiredVram)),void 0!==e.requiredClientVer&&null!==e.requiredClientVer&&(r.requiredClientVer=String(e.requiredClientVer)),void 0!==e.probability&&null!==e.probability&&(r.probability=String(e.probability)),void 0!==e.requiredUserAgent&&null!==e.requiredUserAgent&&(r.requiredUserAgent=String(e.requiredUserAgent)),void 0!==e.requiredClientCapabilities&&null!==e.requiredClientCapabilities&&(r.requiredClientCapabilities=String(e.requiredClientCapabilities)),r},b.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.requiredVram="",t.requiredClientVer="",t.probability="",t.requiredUserAgent="",t.requiredClientCapabilities=""),void 0!==e.requiredVram&&null!==e.requiredVram&&e.hasOwnProperty("requiredVram")&&(t.requiredVram=e.requiredVram),void 0!==e.requiredClientVer&&null!==e.requiredClientVer&&e.hasOwnProperty("requiredClientVer")&&(t.requiredClientVer=e.requiredClientVer),void 0!==e.probability&&null!==e.probability&&e.hasOwnProperty("probability")&&(t.probability=e.probability),void 0!==e.requiredUserAgent&&null!==e.requiredUserAgent&&e.hasOwnProperty("requiredUserAgent")&&(t.requiredUserAgent=e.requiredUserAgent),void 0!==e.requiredClientCapabilities&&null!==e.requiredClientCapabilities&&e.hasOwnProperty("requiredClientCapabilities")&&(t.requiredClientCapabilities=e.requiredClientCapabilities),t},b.prototype.toObject=function(e){return this.constructor.toObject(this,e)},b.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},b),e.LookAtProto=(y.prototype.longitude=0,y.prototype.latitude=0,y.prototype.range=0,y.prototype.tilt=0,y.prototype.heading=0,y.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.LookAtProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.longitude=e.float();break;case 2:o.latitude=e.float();break;case 3:o.range=e.float();break;case 4:o.tilt=e.float();break;case 5:o.heading=e.float();break;default:e.skipType(7&a)}}return o},y.verify=function(e){return"object"!=typeof e||null===e?"object expected":"number"!=typeof e.longitude?"longitude: number expected":"number"!=typeof e.latitude?"latitude: number expected":void 0!==e.range&&"number"!=typeof e.range?"range: number expected":void 0!==e.tilt&&"number"!=typeof e.tilt?"tilt: number expected":void 0!==e.heading&&"number"!=typeof e.heading?"heading: number expected":null},y.from=y.fromObject=function(e){if(e instanceof c.keyhole.dbroot.LookAtProto)return e;var r=new c.keyhole.dbroot.LookAtProto;return void 0!==e.longitude&&null!==e.longitude&&(r.longitude=Number(e.longitude)),void 0!==e.latitude&&null!==e.latitude&&(r.latitude=Number(e.latitude)),void 0!==e.range&&null!==e.range&&(r.range=Number(e.range)),void 0!==e.tilt&&null!==e.tilt&&(r.tilt=Number(e.tilt)),void 0!==e.heading&&null!==e.heading&&(r.heading=Number(e.heading)),r},y.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.longitude=0,t.latitude=0,t.range=0,t.tilt=0,t.heading=0),void 0!==e.longitude&&null!==e.longitude&&e.hasOwnProperty("longitude")&&(t.longitude=e.longitude),void 0!==e.latitude&&null!==e.latitude&&e.hasOwnProperty("latitude")&&(t.latitude=e.latitude),void 0!==e.range&&null!==e.range&&e.hasOwnProperty("range")&&(t.range=e.range),void 0!==e.tilt&&null!==e.tilt&&e.hasOwnProperty("tilt")&&(t.tilt=e.tilt),void 0!==e.heading&&null!==e.heading&&e.hasOwnProperty("heading")&&(t.heading=e.heading),t},y.prototype.toObject=function(e){return this.constructor.toObject(this,e)},y.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},y),e.NestedFeatureProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.featureType=1,e.prototype.kmlUrl=null,e.prototype.databaseUrl="",e.prototype.layer=null,e.prototype.folder=null,e.prototype.requirement=null,e.prototype.channelId=0,e.prototype.displayName=null,e.prototype.isVisible=!0,e.prototype.isEnabled=!0,e.prototype.isChecked=!1,e.prototype.layerMenuIconPath="icons/773_l.png",e.prototype.description=null,e.prototype.lookAt=null,e.prototype.assetUuid="",e.prototype.isSaveLocked=!0,e.prototype.children=s.emptyArray,e.prototype.clientConfigScriptName="",e.prototype.dioramaDataChannelBase=-1,e.prototype.replicaDataChannelBase=-1;var r,n={0:"keyhole.dbroot.NestedFeatureProto.FeatureType",1:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.LayerProto",4:"keyhole.dbroot.FolderProto",5:"keyhole.dbroot.RequirementProto",7:"keyhole.dbroot.StringIdOrValueProto",12:"keyhole.dbroot.StringIdOrValueProto",13:"keyhole.dbroot.LookAtProto",16:"keyhole.dbroot.NestedFeatureProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.NestedFeatureProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.featureType=e.uint32();break;case 2:o.kmlUrl=n[1].decode(e,e.uint32());break;case 21:o.databaseUrl=e.string();break;case 3:o.layer=n[3].decode(e,e.uint32());break;case 4:o.folder=n[4].decode(e,e.uint32());break;case 5:o.requirement=n[5].decode(e,e.uint32());break;case 6:o.channelId=e.int32();break;case 7:o.displayName=n[7].decode(e,e.uint32());break;case 8:o.isVisible=e.bool();break;case 9:o.isEnabled=e.bool();break;case 10:o.isChecked=e.bool();break;case 11:o.layerMenuIconPath=e.string();break;case 12:o.description=n[12].decode(e,e.uint32());break;case 13:o.lookAt=n[13].decode(e,e.uint32());break;case 15:o.assetUuid=e.string();break;case 16:o.isSaveLocked=e.bool();break;case 17:o.children&&o.children.length||(o.children=[]),o.children.push(n[16].decode(e,e.uint32()));break;case 18:o.clientConfigScriptName=e.string();break;case 19:o.dioramaDataChannelBase=e.int32();break;case 20:o.replicaDataChannelBase=e.int32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.featureType)switch(e.featureType){default:return"featureType: enum value expected";case 1:case 2:case 3:case 4:}if(void 0!==e.kmlUrl&&null!==e.kmlUrl&&(t=n[1].verify(e.kmlUrl)))return"kmlUrl."+t;if(void 0!==e.databaseUrl&&!s.isString(e.databaseUrl))return"databaseUrl: string expected";if(void 0!==e.layer&&null!==e.layer&&(t=n[3].verify(e.layer)))return"layer."+t;if(void 0!==e.folder&&null!==e.folder&&(t=n[4].verify(e.folder)))return"folder."+t;if(void 0!==e.requirement&&null!==e.requirement&&(t=n[5].verify(e.requirement)))return"requirement."+t;if(!s.isInteger(e.channelId))return"channelId: integer expected";if(void 0!==e.displayName&&null!==e.displayName&&(t=n[7].verify(e.displayName)))return"displayName."+t;if(void 0!==e.isVisible&&"boolean"!=typeof e.isVisible)return"isVisible: boolean expected";if(void 0!==e.isEnabled&&"boolean"!=typeof e.isEnabled)return"isEnabled: boolean expected";if(void 0!==e.isChecked&&"boolean"!=typeof e.isChecked)return"isChecked: boolean expected";if(void 0!==e.layerMenuIconPath&&!s.isString(e.layerMenuIconPath))return"layerMenuIconPath: string expected";if(void 0!==e.description&&null!==e.description&&(t=n[12].verify(e.description)))return"description."+t;if(void 0!==e.lookAt&&null!==e.lookAt&&(t=n[13].verify(e.lookAt)))return"lookAt."+t;if(void 0!==e.assetUuid&&!s.isString(e.assetUuid))return"assetUuid: string expected";if(void 0!==e.isSaveLocked&&"boolean"!=typeof e.isSaveLocked)return"isSaveLocked: boolean expected";if(void 0!==e.children){if(!Array.isArray(e.children))return"children: array expected";for(var r=0;r<e.children.length;++r){var t;if(t=n[16].verify(e.children[r]))return"children."+t}}return void 0===e.clientConfigScriptName||s.isString(e.clientConfigScriptName)?void 0===e.dioramaDataChannelBase||s.isInteger(e.dioramaDataChannelBase)?void 0===e.replicaDataChannelBase||s.isInteger(e.replicaDataChannelBase)?null:"replicaDataChannelBase: integer expected":"dioramaDataChannelBase: integer expected":"clientConfigScriptName: string expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.NestedFeatureProto)return e;var r=new c.keyhole.dbroot.NestedFeatureProto;switch(e.featureType){case"TYPE_POINT_Z":case 1:r.featureType=1;break;case"TYPE_POLYGON_Z":case 2:r.featureType=2;break;case"TYPE_LINE_Z":case 3:r.featureType=3;break;case"TYPE_TERRAIN":case 4:r.featureType=4}if(void 0!==e.kmlUrl&&null!==e.kmlUrl){if("object"!=typeof e.kmlUrl)throw TypeError(".keyhole.dbroot.NestedFeatureProto.kmlUrl: object expected");r.kmlUrl=n[1].fromObject(e.kmlUrl)}if(void 0!==e.databaseUrl&&null!==e.databaseUrl&&(r.databaseUrl=String(e.databaseUrl)),void 0!==e.layer&&null!==e.layer){if("object"!=typeof e.layer)throw TypeError(".keyhole.dbroot.NestedFeatureProto.layer: object expected");r.layer=n[3].fromObject(e.layer)}if(void 0!==e.folder&&null!==e.folder){if("object"!=typeof e.folder)throw TypeError(".keyhole.dbroot.NestedFeatureProto.folder: object expected");r.folder=n[4].fromObject(e.folder)}if(void 0!==e.requirement&&null!==e.requirement){if("object"!=typeof e.requirement)throw TypeError(".keyhole.dbroot.NestedFeatureProto.requirement: object expected");r.requirement=n[5].fromObject(e.requirement)}if(void 0!==e.channelId&&null!==e.channelId&&(r.channelId=0|e.channelId),void 0!==e.displayName&&null!==e.displayName){if("object"!=typeof e.displayName)throw TypeError(".keyhole.dbroot.NestedFeatureProto.displayName: object expected");r.displayName=n[7].fromObject(e.displayName)}if(void 0!==e.isVisible&&null!==e.isVisible&&(r.isVisible=Boolean(e.isVisible)),void 0!==e.isEnabled&&null!==e.isEnabled&&(r.isEnabled=Boolean(e.isEnabled)),void 0!==e.isChecked&&null!==e.isChecked&&(r.isChecked=Boolean(e.isChecked)),void 0!==e.layerMenuIconPath&&null!==e.layerMenuIconPath&&(r.layerMenuIconPath=String(e.layerMenuIconPath)),void 0!==e.description&&null!==e.description){if("object"!=typeof e.description)throw TypeError(".keyhole.dbroot.NestedFeatureProto.description: object expected");r.description=n[12].fromObject(e.description)}if(void 0!==e.lookAt&&null!==e.lookAt){if("object"!=typeof e.lookAt)throw TypeError(".keyhole.dbroot.NestedFeatureProto.lookAt: object expected");r.lookAt=n[13].fromObject(e.lookAt)}if(void 0!==e.assetUuid&&null!==e.assetUuid&&(r.assetUuid=String(e.assetUuid)),void 0!==e.isSaveLocked&&null!==e.isSaveLocked&&(r.isSaveLocked=Boolean(e.isSaveLocked)),e.children){if(!Array.isArray(e.children))throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: array expected");r.children=[];for(var t=0;t<e.children.length;++t){if("object"!=typeof e.children[t])throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: object expected");r.children[t]=n[16].fromObject(e.children[t])}}return void 0!==e.clientConfigScriptName&&null!==e.clientConfigScriptName&&(r.clientConfigScriptName=String(e.clientConfigScriptName)),void 0!==e.dioramaDataChannelBase&&null!==e.dioramaDataChannelBase&&(r.dioramaDataChannelBase=0|e.dioramaDataChannelBase),void 0!==e.replicaDataChannelBase&&null!==e.replicaDataChannelBase&&(r.replicaDataChannelBase=0|e.replicaDataChannelBase),r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.children=[]),r.defaults&&(t.featureType=r.enums===String?"TYPE_POINT_Z":1,t.kmlUrl=null,t.databaseUrl="",t.layer=null,t.folder=null,t.requirement=null,t.channelId=0,t.displayName=null,t.isVisible=!0,t.isEnabled=!0,t.isChecked=!1,t.layerMenuIconPath="icons/773_l.png",t.description=null,t.lookAt=null,t.assetUuid="",t.isSaveLocked=!0,t.clientConfigScriptName="",t.dioramaDataChannelBase=-1,t.replicaDataChannelBase=-1),void 0!==e.featureType&&null!==e.featureType&&e.hasOwnProperty("featureType")&&(t.featureType=r.enums===String?n[0][e.featureType]:e.featureType),void 0!==e.kmlUrl&&null!==e.kmlUrl&&e.hasOwnProperty("kmlUrl")&&(t.kmlUrl=n[1].toObject(e.kmlUrl,r)),void 0!==e.databaseUrl&&null!==e.databaseUrl&&e.hasOwnProperty("databaseUrl")&&(t.databaseUrl=e.databaseUrl),void 0!==e.layer&&null!==e.layer&&e.hasOwnProperty("layer")&&(t.layer=n[3].toObject(e.layer,r)),void 0!==e.folder&&null!==e.folder&&e.hasOwnProperty("folder")&&(t.folder=n[4].toObject(e.folder,r)),void 0!==e.requirement&&null!==e.requirement&&e.hasOwnProperty("requirement")&&(t.requirement=n[5].toObject(e.requirement,r)),void 0!==e.channelId&&null!==e.channelId&&e.hasOwnProperty("channelId")&&(t.channelId=e.channelId),void 0!==e.displayName&&null!==e.displayName&&e.hasOwnProperty("displayName")&&(t.displayName=n[7].toObject(e.displayName,r)),void 0!==e.isVisible&&null!==e.isVisible&&e.hasOwnProperty("isVisible")&&(t.isVisible=e.isVisible),void 0!==e.isEnabled&&null!==e.isEnabled&&e.hasOwnProperty("isEnabled")&&(t.isEnabled=e.isEnabled),void 0!==e.isChecked&&null!==e.isChecked&&e.hasOwnProperty("isChecked")&&(t.isChecked=e.isChecked),void 0!==e.layerMenuIconPath&&null!==e.layerMenuIconPath&&e.hasOwnProperty("layerMenuIconPath")&&(t.layerMenuIconPath=e.layerMenuIconPath),void 0!==e.description&&null!==e.description&&e.hasOwnProperty("description")&&(t.description=n[12].toObject(e.description,r)),void 0!==e.lookAt&&null!==e.lookAt&&e.hasOwnProperty("lookAt")&&(t.lookAt=n[13].toObject(e.lookAt,r)),void 0!==e.assetUuid&&null!==e.assetUuid&&e.hasOwnProperty("assetUuid")&&(t.assetUuid=e.assetUuid),void 0!==e.isSaveLocked&&null!==e.isSaveLocked&&e.hasOwnProperty("isSaveLocked")&&(t.isSaveLocked=e.isSaveLocked),void 0!==e.children&&null!==e.children&&e.hasOwnProperty("children")){t.children=[];for(var o=0;o<e.children.length;++o)t.children[o]=n[16].toObject(e.children[o],r)}return void 0!==e.clientConfigScriptName&&null!==e.clientConfigScriptName&&e.hasOwnProperty("clientConfigScriptName")&&(t.clientConfigScriptName=e.clientConfigScriptName),void 0!==e.dioramaDataChannelBase&&null!==e.dioramaDataChannelBase&&e.hasOwnProperty("dioramaDataChannelBase")&&(t.dioramaDataChannelBase=e.dioramaDataChannelBase),void 0!==e.replicaDataChannelBase&&null!==e.replicaDataChannelBase&&e.hasOwnProperty("replicaDataChannelBase")&&(t.replicaDataChannelBase=e.replicaDataChannelBase),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.FeatureType=((r=Object.create({})).TYPE_POINT_Z=1,r.TYPE_POLYGON_Z=2,r.TYPE_LINE_Z=3,r.TYPE_TERRAIN=4,r),e}(),e.MfeDomainFeaturesProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.countryCode="",e.prototype.domainName="",e.prototype.supportedFeatures=s.emptyArray;var r,a={2:"keyhole.dbroot.MfeDomainFeaturesProto.SupportedFeature"};return p.push(a),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.MfeDomainFeaturesProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.countryCode=e.string();break;case 2:o.domainName=e.string();break;case 3:if(o.supportedFeatures&&o.supportedFeatures.length||(o.supportedFeatures=[]),2==(7&a))for(var n=e.uint32()+e.pos;e.pos<n;)o.supportedFeatures.push(e.uint32());else o.supportedFeatures.push(e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isString(e.countryCode))return"countryCode: string expected";if(!s.isString(e.domainName))return"domainName: string expected";if(void 0!==e.supportedFeatures){if(!Array.isArray(e.supportedFeatures))return"supportedFeatures: array expected";for(var r=0;r<e.supportedFeatures.length;++r)switch(e.supportedFeatures[r]){default:return"supportedFeatures: enum value[] expected";case 0:case 1:case 2:}}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.MfeDomainFeaturesProto)return e;var r=new c.keyhole.dbroot.MfeDomainFeaturesProto;if(void 0!==e.countryCode&&null!==e.countryCode&&(r.countryCode=String(e.countryCode)),void 0!==e.domainName&&null!==e.domainName&&(r.domainName=String(e.domainName)),e.supportedFeatures){if(!Array.isArray(e.supportedFeatures))throw TypeError(".keyhole.dbroot.MfeDomainFeaturesProto.supportedFeatures: array expected");r.supportedFeatures=[];for(var t=0;t<e.supportedFeatures.length;++t)switch(e.supportedFeatures[t]){default:case"GEOCODING":case 0:r.supportedFeatures[t]=0;break;case"LOCAL_SEARCH":case 1:r.supportedFeatures[t]=1;break;case"DRIVING_DIRECTIONS":case 2:r.supportedFeatures[t]=2}}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.supportedFeatures=[]),r.defaults&&(t.countryCode="",t.domainName=""),void 0!==e.countryCode&&null!==e.countryCode&&e.hasOwnProperty("countryCode")&&(t.countryCode=e.countryCode),void 0!==e.domainName&&null!==e.domainName&&e.hasOwnProperty("domainName")&&(t.domainName=e.domainName),void 0!==e.supportedFeatures&&null!==e.supportedFeatures&&e.hasOwnProperty("supportedFeatures")){t.supportedFeatures=[];for(var o=0;o<e.supportedFeatures.length;++o)t.supportedFeatures[o]=r.enums===String?a[2][e.supportedFeatures[o]]:e.supportedFeatures[o]}return t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.SupportedFeature=((r=Object.create({})).GEOCODING=0,r.LOCAL_SEARCH=1,r.DRIVING_DIRECTIONS=2,r),e}(),e.ClientOptionsProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.disableDiskCache=!1,e.prototype.disableEmbeddedBrowserVista=!1,e.prototype.drawAtmosphere=!0,e.prototype.drawStars=!0,e.prototype.shaderFilePrefix="",e.prototype.useProtobufQuadtreePackets=!1,e.prototype.useExtendedCopyrightIds=!0,e.prototype.precipitationsOptions=null,e.prototype.captureOptions=null,e.prototype.show_2dMapsIcon=!0,e.prototype.disableInternalBrowser=!1,e.prototype.internalBrowserBlacklist="",e.prototype.internalBrowserOriginWhitelist="*",e.prototype.polarTileMergingLevel=0,e.prototype.jsBridgeRequestWhitelist="http://*.google.com/*",e.prototype.mapsOptions=null;var n={7:"keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions",8:"keyhole.dbroot.ClientOptionsProto.CaptureOptions",15:"keyhole.dbroot.ClientOptionsProto.MapsOptions"};function r(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}function t(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ClientOptionsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.disableDiskCache=e.bool();break;case 2:o.disableEmbeddedBrowserVista=e.bool();break;case 3:o.drawAtmosphere=e.bool();break;case 4:o.drawStars=e.bool();break;case 5:o.shaderFilePrefix=e.string();break;case 6:o.useProtobufQuadtreePackets=e.bool();break;case 7:o.useExtendedCopyrightIds=e.bool();break;case 8:o.precipitationsOptions=n[7].decode(e,e.uint32());break;case 9:o.captureOptions=n[8].decode(e,e.uint32());break;case 10:o.show_2dMapsIcon=e.bool();break;case 11:o.disableInternalBrowser=e.bool();break;case 12:o.internalBrowserBlacklist=e.string();break;case 13:o.internalBrowserOriginWhitelist=e.string();break;case 14:o.polarTileMergingLevel=e.int32();break;case 15:o.jsBridgeRequestWhitelist=e.string();break;case 16:o.mapsOptions=n[15].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.disableDiskCache&&"boolean"!=typeof e.disableDiskCache?"disableDiskCache: boolean expected":void 0!==e.disableEmbeddedBrowserVista&&"boolean"!=typeof e.disableEmbeddedBrowserVista?"disableEmbeddedBrowserVista: boolean expected":void 0!==e.drawAtmosphere&&"boolean"!=typeof e.drawAtmosphere?"drawAtmosphere: boolean expected":void 0!==e.drawStars&&"boolean"!=typeof e.drawStars?"drawStars: boolean expected":void 0===e.shaderFilePrefix||s.isString(e.shaderFilePrefix)?void 0!==e.useProtobufQuadtreePackets&&"boolean"!=typeof e.useProtobufQuadtreePackets?"useProtobufQuadtreePackets: boolean expected":void 0!==e.useExtendedCopyrightIds&&"boolean"!=typeof e.useExtendedCopyrightIds?"useExtendedCopyrightIds: boolean expected":void 0!==e.precipitationsOptions&&null!==e.precipitationsOptions&&(r=n[7].verify(e.precipitationsOptions))?"precipitationsOptions."+r:void 0!==e.captureOptions&&null!==e.captureOptions&&(r=n[8].verify(e.captureOptions))?"captureOptions."+r:void 0!==e.show_2dMapsIcon&&"boolean"!=typeof e.show_2dMapsIcon?"show_2dMapsIcon: boolean expected":void 0!==e.disableInternalBrowser&&"boolean"!=typeof e.disableInternalBrowser?"disableInternalBrowser: boolean expected":void 0===e.internalBrowserBlacklist||s.isString(e.internalBrowserBlacklist)?void 0===e.internalBrowserOriginWhitelist||s.isString(e.internalBrowserOriginWhitelist)?void 0===e.polarTileMergingLevel||s.isInteger(e.polarTileMergingLevel)?void 0===e.jsBridgeRequestWhitelist||s.isString(e.jsBridgeRequestWhitelist)?void 0!==e.mapsOptions&&null!==e.mapsOptions&&(r=n[15].verify(e.mapsOptions))?"mapsOptions."+r:null:"jsBridgeRequestWhitelist: string expected":"polarTileMergingLevel: integer expected":"internalBrowserOriginWhitelist: string expected":"internalBrowserBlacklist: string expected":"shaderFilePrefix: string expected";var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ClientOptionsProto)return e;var r=new c.keyhole.dbroot.ClientOptionsProto;if(void 0!==e.disableDiskCache&&null!==e.disableDiskCache&&(r.disableDiskCache=Boolean(e.disableDiskCache)),void 0!==e.disableEmbeddedBrowserVista&&null!==e.disableEmbeddedBrowserVista&&(r.disableEmbeddedBrowserVista=Boolean(e.disableEmbeddedBrowserVista)),void 0!==e.drawAtmosphere&&null!==e.drawAtmosphere&&(r.drawAtmosphere=Boolean(e.drawAtmosphere)),void 0!==e.drawStars&&null!==e.drawStars&&(r.drawStars=Boolean(e.drawStars)),void 0!==e.shaderFilePrefix&&null!==e.shaderFilePrefix&&(r.shaderFilePrefix=String(e.shaderFilePrefix)),void 0!==e.useProtobufQuadtreePackets&&null!==e.useProtobufQuadtreePackets&&(r.useProtobufQuadtreePackets=Boolean(e.useProtobufQuadtreePackets)),void 0!==e.useExtendedCopyrightIds&&null!==e.useExtendedCopyrightIds&&(r.useExtendedCopyrightIds=Boolean(e.useExtendedCopyrightIds)),void 0!==e.precipitationsOptions&&null!==e.precipitationsOptions){if("object"!=typeof e.precipitationsOptions)throw TypeError(".keyhole.dbroot.ClientOptionsProto.precipitationsOptions: object expected");r.precipitationsOptions=n[7].fromObject(e.precipitationsOptions)}if(void 0!==e.captureOptions&&null!==e.captureOptions){if("object"!=typeof e.captureOptions)throw TypeError(".keyhole.dbroot.ClientOptionsProto.captureOptions: object expected");r.captureOptions=n[8].fromObject(e.captureOptions)}if(void 0!==e.show_2dMapsIcon&&null!==e.show_2dMapsIcon&&(r.show_2dMapsIcon=Boolean(e.show_2dMapsIcon)),void 0!==e.disableInternalBrowser&&null!==e.disableInternalBrowser&&(r.disableInternalBrowser=Boolean(e.disableInternalBrowser)),void 0!==e.internalBrowserBlacklist&&null!==e.internalBrowserBlacklist&&(r.internalBrowserBlacklist=String(e.internalBrowserBlacklist)),void 0!==e.internalBrowserOriginWhitelist&&null!==e.internalBrowserOriginWhitelist&&(r.internalBrowserOriginWhitelist=String(e.internalBrowserOriginWhitelist)),void 0!==e.polarTileMergingLevel&&null!==e.polarTileMergingLevel&&(r.polarTileMergingLevel=0|e.polarTileMergingLevel),void 0!==e.jsBridgeRequestWhitelist&&null!==e.jsBridgeRequestWhitelist&&(r.jsBridgeRequestWhitelist=String(e.jsBridgeRequestWhitelist)),void 0!==e.mapsOptions&&null!==e.mapsOptions){if("object"!=typeof e.mapsOptions)throw TypeError(".keyhole.dbroot.ClientOptionsProto.mapsOptions: object expected");r.mapsOptions=n[15].fromObject(e.mapsOptions)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.disableDiskCache=!1,t.disableEmbeddedBrowserVista=!1,t.drawAtmosphere=!0,t.drawStars=!0,t.shaderFilePrefix="",t.useProtobufQuadtreePackets=!1,t.useExtendedCopyrightIds=!0,t.precipitationsOptions=null,t.captureOptions=null,t.show_2dMapsIcon=!0,t.disableInternalBrowser=!1,t.internalBrowserBlacklist="",t.internalBrowserOriginWhitelist="*",t.polarTileMergingLevel=0,t.jsBridgeRequestWhitelist="http://*.google.com/*",t.mapsOptions=null),void 0!==e.disableDiskCache&&null!==e.disableDiskCache&&e.hasOwnProperty("disableDiskCache")&&(t.disableDiskCache=e.disableDiskCache),void 0!==e.disableEmbeddedBrowserVista&&null!==e.disableEmbeddedBrowserVista&&e.hasOwnProperty("disableEmbeddedBrowserVista")&&(t.disableEmbeddedBrowserVista=e.disableEmbeddedBrowserVista),void 0!==e.drawAtmosphere&&null!==e.drawAtmosphere&&e.hasOwnProperty("drawAtmosphere")&&(t.drawAtmosphere=e.drawAtmosphere),void 0!==e.drawStars&&null!==e.drawStars&&e.hasOwnProperty("drawStars")&&(t.drawStars=e.drawStars),void 0!==e.shaderFilePrefix&&null!==e.shaderFilePrefix&&e.hasOwnProperty("shaderFilePrefix")&&(t.shaderFilePrefix=e.shaderFilePrefix),void 0!==e.useProtobufQuadtreePackets&&null!==e.useProtobufQuadtreePackets&&e.hasOwnProperty("useProtobufQuadtreePackets")&&(t.useProtobufQuadtreePackets=e.useProtobufQuadtreePackets),void 0!==e.useExtendedCopyrightIds&&null!==e.useExtendedCopyrightIds&&e.hasOwnProperty("useExtendedCopyrightIds")&&(t.useExtendedCopyrightIds=e.useExtendedCopyrightIds),void 0!==e.precipitationsOptions&&null!==e.precipitationsOptions&&e.hasOwnProperty("precipitationsOptions")&&(t.precipitationsOptions=n[7].toObject(e.precipitationsOptions,r)),void 0!==e.captureOptions&&null!==e.captureOptions&&e.hasOwnProperty("captureOptions")&&(t.captureOptions=n[8].toObject(e.captureOptions,r)),void 0!==e.show_2dMapsIcon&&null!==e.show_2dMapsIcon&&e.hasOwnProperty("show_2dMapsIcon")&&(t.show_2dMapsIcon=e.show_2dMapsIcon),void 0!==e.disableInternalBrowser&&null!==e.disableInternalBrowser&&e.hasOwnProperty("disableInternalBrowser")&&(t.disableInternalBrowser=e.disableInternalBrowser),void 0!==e.internalBrowserBlacklist&&null!==e.internalBrowserBlacklist&&e.hasOwnProperty("internalBrowserBlacklist")&&(t.internalBrowserBlacklist=e.internalBrowserBlacklist),void 0!==e.internalBrowserOriginWhitelist&&null!==e.internalBrowserOriginWhitelist&&e.hasOwnProperty("internalBrowserOriginWhitelist")&&(t.internalBrowserOriginWhitelist=e.internalBrowserOriginWhitelist),void 0!==e.polarTileMergingLevel&&null!==e.polarTileMergingLevel&&e.hasOwnProperty("polarTileMergingLevel")&&(t.polarTileMergingLevel=e.polarTileMergingLevel),void 0!==e.jsBridgeRequestWhitelist&&null!==e.jsBridgeRequestWhitelist&&e.hasOwnProperty("jsBridgeRequestWhitelist")&&(t.jsBridgeRequestWhitelist=e.jsBridgeRequestWhitelist),void 0!==e.mapsOptions&&null!==e.mapsOptions&&e.hasOwnProperty("mapsOptions")&&(t.mapsOptions=n[15].toObject(e.mapsOptions,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.PrecipitationsOptions=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.imageUrl="",e.prototype.imageExpireTime=900,e.prototype.maxColorDistance=20,e.prototype.imageLevel=5,e.prototype.weatherMapping=s.emptyArray,e.prototype.cloudsLayerUrl="",e.prototype.animationDecelerationDelay=20;var n={4:"keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.imageUrl=e.string();break;case 2:o.imageExpireTime=e.int32();break;case 3:o.maxColorDistance=e.int32();break;case 4:o.imageLevel=e.int32();break;case 5:o.weatherMapping&&o.weatherMapping.length||(o.weatherMapping=[]),o.weatherMapping.push(n[4].decode(e,e.uint32()));break;case 6:o.cloudsLayerUrl=e.string();break;case 7:o.animationDecelerationDelay=e.float();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.imageUrl&&!s.isString(e.imageUrl))return"imageUrl: string expected";if(void 0!==e.imageExpireTime&&!s.isInteger(e.imageExpireTime))return"imageExpireTime: integer expected";if(void 0!==e.maxColorDistance&&!s.isInteger(e.maxColorDistance))return"maxColorDistance: integer expected";if(void 0!==e.imageLevel&&!s.isInteger(e.imageLevel))return"imageLevel: integer expected";if(void 0!==e.weatherMapping){if(!Array.isArray(e.weatherMapping))return"weatherMapping: array expected";for(var r=0;r<e.weatherMapping.length;++r){var t=n[4].verify(e.weatherMapping[r]);if(t)return"weatherMapping."+t}}return void 0===e.cloudsLayerUrl||s.isString(e.cloudsLayerUrl)?void 0!==e.animationDecelerationDelay&&"number"!=typeof e.animationDecelerationDelay?"animationDecelerationDelay: number expected":null:"cloudsLayerUrl: string expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions)return e;var r=new c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;if(void 0!==e.imageUrl&&null!==e.imageUrl&&(r.imageUrl=String(e.imageUrl)),void 0!==e.imageExpireTime&&null!==e.imageExpireTime&&(r.imageExpireTime=0|e.imageExpireTime),void 0!==e.maxColorDistance&&null!==e.maxColorDistance&&(r.maxColorDistance=0|e.maxColorDistance),void 0!==e.imageLevel&&null!==e.imageLevel&&(r.imageLevel=0|e.imageLevel),e.weatherMapping){if(!Array.isArray(e.weatherMapping))throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: array expected");r.weatherMapping=[];for(var t=0;t<e.weatherMapping.length;++t){if("object"!=typeof e.weatherMapping[t])throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: object expected");r.weatherMapping[t]=n[4].fromObject(e.weatherMapping[t])}}return void 0!==e.cloudsLayerUrl&&null!==e.cloudsLayerUrl&&(r.cloudsLayerUrl=String(e.cloudsLayerUrl)),void 0!==e.animationDecelerationDelay&&null!==e.animationDecelerationDelay&&(r.animationDecelerationDelay=Number(e.animationDecelerationDelay)),r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.weatherMapping=[]),r.defaults&&(t.imageUrl="",t.imageExpireTime=900,t.maxColorDistance=20,t.imageLevel=5,t.cloudsLayerUrl="",t.animationDecelerationDelay=20),void 0!==e.imageUrl&&null!==e.imageUrl&&e.hasOwnProperty("imageUrl")&&(t.imageUrl=e.imageUrl),void 0!==e.imageExpireTime&&null!==e.imageExpireTime&&e.hasOwnProperty("imageExpireTime")&&(t.imageExpireTime=e.imageExpireTime),void 0!==e.maxColorDistance&&null!==e.maxColorDistance&&e.hasOwnProperty("maxColorDistance")&&(t.maxColorDistance=e.maxColorDistance),void 0!==e.imageLevel&&null!==e.imageLevel&&e.hasOwnProperty("imageLevel")&&(t.imageLevel=e.imageLevel),void 0!==e.weatherMapping&&null!==e.weatherMapping&&e.hasOwnProperty("weatherMapping")){t.weatherMapping=[];for(var o=0;o<e.weatherMapping.length;++o)t.weatherMapping[o]=n[4].toObject(e.weatherMapping[o],r)}return void 0!==e.cloudsLayerUrl&&null!==e.cloudsLayerUrl&&e.hasOwnProperty("cloudsLayerUrl")&&(t.cloudsLayerUrl=e.cloudsLayerUrl),void 0!==e.animationDecelerationDelay&&null!==e.animationDecelerationDelay&&e.hasOwnProperty("animationDecelerationDelay")&&(t.animationDecelerationDelay=e.animationDecelerationDelay),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.WeatherMapping=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.colorAbgr=0,e.prototype.weatherType=0,e.prototype.elongation=1,e.prototype.opacity=0,e.prototype.fogDensity=0,e.prototype.speed0=0,e.prototype.speed1=0,e.prototype.speed2=0,e.prototype.speed3=0;var r,o={1:"keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.WeatherType"};return p.push(o),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.colorAbgr=e.uint32();break;case 2:o.weatherType=e.uint32();break;case 3:o.elongation=e.float();break;case 4:o.opacity=e.float();break;case 5:o.fogDensity=e.float();break;case 6:o.speed0=e.float();break;case 7:o.speed1=e.float();break;case 8:o.speed2=e.float();break;case 9:o.speed3=e.float();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isInteger(e.colorAbgr))return"colorAbgr: integer expected";switch(e.weatherType){default:return"weatherType: enum value expected";case 0:case 1:case 2:}return void 0!==e.elongation&&"number"!=typeof e.elongation?"elongation: number expected":void 0!==e.opacity&&"number"!=typeof e.opacity?"opacity: number expected":void 0!==e.fogDensity&&"number"!=typeof e.fogDensity?"fogDensity: number expected":void 0!==e.speed0&&"number"!=typeof e.speed0?"speed0: number expected":void 0!==e.speed1&&"number"!=typeof e.speed1?"speed1: number expected":void 0!==e.speed2&&"number"!=typeof e.speed2?"speed2: number expected":void 0!==e.speed3&&"number"!=typeof e.speed3?"speed3: number expected":null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping)return e;var r=new c.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;switch(void 0!==e.colorAbgr&&null!==e.colorAbgr&&(r.colorAbgr=e.colorAbgr>>>0),e.weatherType){case"NO_PRECIPITATION":case 0:r.weatherType=0;break;case"RAIN":case 1:r.weatherType=1;break;case"SNOW":case 2:r.weatherType=2}return void 0!==e.elongation&&null!==e.elongation&&(r.elongation=Number(e.elongation)),void 0!==e.opacity&&null!==e.opacity&&(r.opacity=Number(e.opacity)),void 0!==e.fogDensity&&null!==e.fogDensity&&(r.fogDensity=Number(e.fogDensity)),void 0!==e.speed0&&null!==e.speed0&&(r.speed0=Number(e.speed0)),void 0!==e.speed1&&null!==e.speed1&&(r.speed1=Number(e.speed1)),void 0!==e.speed2&&null!==e.speed2&&(r.speed2=Number(e.speed2)),void 0!==e.speed3&&null!==e.speed3&&(r.speed3=Number(e.speed3)),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.colorAbgr=0,t.weatherType=r.enums===String?"NO_PRECIPITATION":0,t.elongation=1,t.opacity=0,t.fogDensity=0,t.speed0=0,t.speed1=0,t.speed2=0,t.speed3=0),void 0!==e.colorAbgr&&null!==e.colorAbgr&&e.hasOwnProperty("colorAbgr")&&(t.colorAbgr=e.colorAbgr),void 0!==e.weatherType&&null!==e.weatherType&&e.hasOwnProperty("weatherType")&&(t.weatherType=r.enums===String?o[1][e.weatherType]:e.weatherType),void 0!==e.elongation&&null!==e.elongation&&e.hasOwnProperty("elongation")&&(t.elongation=e.elongation),void 0!==e.opacity&&null!==e.opacity&&e.hasOwnProperty("opacity")&&(t.opacity=e.opacity),void 0!==e.fogDensity&&null!==e.fogDensity&&e.hasOwnProperty("fogDensity")&&(t.fogDensity=e.fogDensity),void 0!==e.speed0&&null!==e.speed0&&e.hasOwnProperty("speed0")&&(t.speed0=e.speed0),void 0!==e.speed1&&null!==e.speed1&&e.hasOwnProperty("speed1")&&(t.speed1=e.speed1),void 0!==e.speed2&&null!==e.speed2&&e.hasOwnProperty("speed2")&&(t.speed2=e.speed2),void 0!==e.speed3&&null!==e.speed3&&e.hasOwnProperty("speed3")&&(t.speed3=e.speed3),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.WeatherType=((r=Object.create({})).NO_PRECIPITATION=0,r.RAIN=1,r.SNOW=2,r),e}(),e}(),e.CaptureOptions=(r.prototype.allowSaveAsImage=!0,r.prototype.maxFreeCaptureRes=2400,r.prototype.maxPremiumCaptureRes=4800,r.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ClientOptionsProto.CaptureOptions;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.allowSaveAsImage=e.bool();break;case 2:o.maxFreeCaptureRes=e.int32();break;case 3:o.maxPremiumCaptureRes=e.int32();break;default:e.skipType(7&a)}}return o},r.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.allowSaveAsImage&&"boolean"!=typeof e.allowSaveAsImage?"allowSaveAsImage: boolean expected":void 0===e.maxFreeCaptureRes||s.isInteger(e.maxFreeCaptureRes)?void 0===e.maxPremiumCaptureRes||s.isInteger(e.maxPremiumCaptureRes)?null:"maxPremiumCaptureRes: integer expected":"maxFreeCaptureRes: integer expected"},r.from=r.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ClientOptionsProto.CaptureOptions)return e;var r=new c.keyhole.dbroot.ClientOptionsProto.CaptureOptions;return void 0!==e.allowSaveAsImage&&null!==e.allowSaveAsImage&&(r.allowSaveAsImage=Boolean(e.allowSaveAsImage)),void 0!==e.maxFreeCaptureRes&&null!==e.maxFreeCaptureRes&&(r.maxFreeCaptureRes=0|e.maxFreeCaptureRes),void 0!==e.maxPremiumCaptureRes&&null!==e.maxPremiumCaptureRes&&(r.maxPremiumCaptureRes=0|e.maxPremiumCaptureRes),r},r.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.allowSaveAsImage=!0,t.maxFreeCaptureRes=2400,t.maxPremiumCaptureRes=4800),void 0!==e.allowSaveAsImage&&null!==e.allowSaveAsImage&&e.hasOwnProperty("allowSaveAsImage")&&(t.allowSaveAsImage=e.allowSaveAsImage),void 0!==e.maxFreeCaptureRes&&null!==e.maxFreeCaptureRes&&e.hasOwnProperty("maxFreeCaptureRes")&&(t.maxFreeCaptureRes=e.maxFreeCaptureRes),void 0!==e.maxPremiumCaptureRes&&null!==e.maxPremiumCaptureRes&&e.hasOwnProperty("maxPremiumCaptureRes")&&(t.maxPremiumCaptureRes=e.maxPremiumCaptureRes),t},r.prototype.toObject=function(e){return this.constructor.toObject(this,e)},r.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},r),e.MapsOptions=(t.prototype.enableMaps=!1,t.prototype.docsAutoDownloadEnabled=!1,t.prototype.docsAutoDownloadInterval=0,t.prototype.docsAutoUploadEnabled=!1,t.prototype.docsAutoUploadDelay=0,t.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ClientOptionsProto.MapsOptions;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.enableMaps=e.bool();break;case 2:o.docsAutoDownloadEnabled=e.bool();break;case 3:o.docsAutoDownloadInterval=e.int32();break;case 4:o.docsAutoUploadEnabled=e.bool();break;case 5:o.docsAutoUploadDelay=e.int32();break;default:e.skipType(7&a)}}return o},t.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.enableMaps&&"boolean"!=typeof e.enableMaps?"enableMaps: boolean expected":void 0!==e.docsAutoDownloadEnabled&&"boolean"!=typeof e.docsAutoDownloadEnabled?"docsAutoDownloadEnabled: boolean expected":void 0===e.docsAutoDownloadInterval||s.isInteger(e.docsAutoDownloadInterval)?void 0!==e.docsAutoUploadEnabled&&"boolean"!=typeof e.docsAutoUploadEnabled?"docsAutoUploadEnabled: boolean expected":void 0===e.docsAutoUploadDelay||s.isInteger(e.docsAutoUploadDelay)?null:"docsAutoUploadDelay: integer expected":"docsAutoDownloadInterval: integer expected"},t.from=t.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ClientOptionsProto.MapsOptions)return e;var r=new c.keyhole.dbroot.ClientOptionsProto.MapsOptions;return void 0!==e.enableMaps&&null!==e.enableMaps&&(r.enableMaps=Boolean(e.enableMaps)),void 0!==e.docsAutoDownloadEnabled&&null!==e.docsAutoDownloadEnabled&&(r.docsAutoDownloadEnabled=Boolean(e.docsAutoDownloadEnabled)),void 0!==e.docsAutoDownloadInterval&&null!==e.docsAutoDownloadInterval&&(r.docsAutoDownloadInterval=0|e.docsAutoDownloadInterval),void 0!==e.docsAutoUploadEnabled&&null!==e.docsAutoUploadEnabled&&(r.docsAutoUploadEnabled=Boolean(e.docsAutoUploadEnabled)),void 0!==e.docsAutoUploadDelay&&null!==e.docsAutoUploadDelay&&(r.docsAutoUploadDelay=0|e.docsAutoUploadDelay),r},t.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.enableMaps=!1,t.docsAutoDownloadEnabled=!1,t.docsAutoDownloadInterval=0,t.docsAutoUploadEnabled=!1,t.docsAutoUploadDelay=0),void 0!==e.enableMaps&&null!==e.enableMaps&&e.hasOwnProperty("enableMaps")&&(t.enableMaps=e.enableMaps),void 0!==e.docsAutoDownloadEnabled&&null!==e.docsAutoDownloadEnabled&&e.hasOwnProperty("docsAutoDownloadEnabled")&&(t.docsAutoDownloadEnabled=e.docsAutoDownloadEnabled),void 0!==e.docsAutoDownloadInterval&&null!==e.docsAutoDownloadInterval&&e.hasOwnProperty("docsAutoDownloadInterval")&&(t.docsAutoDownloadInterval=e.docsAutoDownloadInterval),void 0!==e.docsAutoUploadEnabled&&null!==e.docsAutoUploadEnabled&&e.hasOwnProperty("docsAutoUploadEnabled")&&(t.docsAutoUploadEnabled=e.docsAutoUploadEnabled),void 0!==e.docsAutoUploadDelay&&null!==e.docsAutoUploadDelay&&e.hasOwnProperty("docsAutoUploadDelay")&&(t.docsAutoUploadDelay=e.docsAutoUploadDelay),t},t.prototype.toObject=function(e){return this.constructor.toObject(this,e)},t.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},t),e}(),e.FetchingOptionsProto=(f.prototype.maxRequestsPerQuery=1,f.prototype.forceMaxRequestsPerQuery=!1,f.prototype.sortBatches=!1,f.prototype.maxDrawable=2,f.prototype.maxImagery=2,f.prototype.maxTerrain=5,f.prototype.maxQuadtree=5,f.prototype.maxDioramaMetadata=1,f.prototype.maxDioramaData=0,f.prototype.maxConsumerFetchRatio=1,f.prototype.maxProEcFetchRatio=0,f.prototype.safeOverallQps=0,f.prototype.safeImageryQps=0,f.prototype.domainsForHttps="google.com gstatic.com",f.prototype.hostsForHttp="",f.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.FetchingOptionsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.maxRequestsPerQuery=e.int32();break;case 12:o.forceMaxRequestsPerQuery=e.bool();break;case 13:o.sortBatches=e.bool();break;case 2:o.maxDrawable=e.int32();break;case 3:o.maxImagery=e.int32();break;case 4:o.maxTerrain=e.int32();break;case 5:o.maxQuadtree=e.int32();break;case 6:o.maxDioramaMetadata=e.int32();break;case 7:o.maxDioramaData=e.int32();break;case 8:o.maxConsumerFetchRatio=e.float();break;case 9:o.maxProEcFetchRatio=e.float();break;case 10:o.safeOverallQps=e.float();break;case 11:o.safeImageryQps=e.float();break;case 14:o.domainsForHttps=e.string();break;case 15:o.hostsForHttp=e.string();break;default:e.skipType(7&a)}}return o},f.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.maxRequestsPerQuery||s.isInteger(e.maxRequestsPerQuery)?void 0!==e.forceMaxRequestsPerQuery&&"boolean"!=typeof e.forceMaxRequestsPerQuery?"forceMaxRequestsPerQuery: boolean expected":void 0!==e.sortBatches&&"boolean"!=typeof e.sortBatches?"sortBatches: boolean expected":void 0===e.maxDrawable||s.isInteger(e.maxDrawable)?void 0===e.maxImagery||s.isInteger(e.maxImagery)?void 0===e.maxTerrain||s.isInteger(e.maxTerrain)?void 0===e.maxQuadtree||s.isInteger(e.maxQuadtree)?void 0===e.maxDioramaMetadata||s.isInteger(e.maxDioramaMetadata)?void 0===e.maxDioramaData||s.isInteger(e.maxDioramaData)?void 0!==e.maxConsumerFetchRatio&&"number"!=typeof e.maxConsumerFetchRatio?"maxConsumerFetchRatio: number expected":void 0!==e.maxProEcFetchRatio&&"number"!=typeof e.maxProEcFetchRatio?"maxProEcFetchRatio: number expected":void 0!==e.safeOverallQps&&"number"!=typeof e.safeOverallQps?"safeOverallQps: number expected":void 0!==e.safeImageryQps&&"number"!=typeof e.safeImageryQps?"safeImageryQps: number expected":void 0===e.domainsForHttps||s.isString(e.domainsForHttps)?void 0===e.hostsForHttp||s.isString(e.hostsForHttp)?null:"hostsForHttp: string expected":"domainsForHttps: string expected":"maxDioramaData: integer expected":"maxDioramaMetadata: integer expected":"maxQuadtree: integer expected":"maxTerrain: integer expected":"maxImagery: integer expected":"maxDrawable: integer expected":"maxRequestsPerQuery: integer expected"},f.from=f.fromObject=function(e){if(e instanceof c.keyhole.dbroot.FetchingOptionsProto)return e;var r=new c.keyhole.dbroot.FetchingOptionsProto;return void 0!==e.maxRequestsPerQuery&&null!==e.maxRequestsPerQuery&&(r.maxRequestsPerQuery=0|e.maxRequestsPerQuery),void 0!==e.forceMaxRequestsPerQuery&&null!==e.forceMaxRequestsPerQuery&&(r.forceMaxRequestsPerQuery=Boolean(e.forceMaxRequestsPerQuery)),void 0!==e.sortBatches&&null!==e.sortBatches&&(r.sortBatches=Boolean(e.sortBatches)),void 0!==e.maxDrawable&&null!==e.maxDrawable&&(r.maxDrawable=0|e.maxDrawable),void 0!==e.maxImagery&&null!==e.maxImagery&&(r.maxImagery=0|e.maxImagery),void 0!==e.maxTerrain&&null!==e.maxTerrain&&(r.maxTerrain=0|e.maxTerrain),void 0!==e.maxQuadtree&&null!==e.maxQuadtree&&(r.maxQuadtree=0|e.maxQuadtree),void 0!==e.maxDioramaMetadata&&null!==e.maxDioramaMetadata&&(r.maxDioramaMetadata=0|e.maxDioramaMetadata),void 0!==e.maxDioramaData&&null!==e.maxDioramaData&&(r.maxDioramaData=0|e.maxDioramaData),void 0!==e.maxConsumerFetchRatio&&null!==e.maxConsumerFetchRatio&&(r.maxConsumerFetchRatio=Number(e.maxConsumerFetchRatio)),void 0!==e.maxProEcFetchRatio&&null!==e.maxProEcFetchRatio&&(r.maxProEcFetchRatio=Number(e.maxProEcFetchRatio)),void 0!==e.safeOverallQps&&null!==e.safeOverallQps&&(r.safeOverallQps=Number(e.safeOverallQps)),void 0!==e.safeImageryQps&&null!==e.safeImageryQps&&(r.safeImageryQps=Number(e.safeImageryQps)),void 0!==e.domainsForHttps&&null!==e.domainsForHttps&&(r.domainsForHttps=String(e.domainsForHttps)),void 0!==e.hostsForHttp&&null!==e.hostsForHttp&&(r.hostsForHttp=String(e.hostsForHttp)),r},f.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.maxRequestsPerQuery=1,t.forceMaxRequestsPerQuery=!1,t.sortBatches=!1,t.maxDrawable=2,t.maxImagery=2,t.maxTerrain=5,t.maxQuadtree=5,t.maxDioramaMetadata=1,t.maxDioramaData=0,t.maxConsumerFetchRatio=1,t.maxProEcFetchRatio=0,t.safeOverallQps=0,t.safeImageryQps=0,t.domainsForHttps="google.com gstatic.com",t.hostsForHttp=""),void 0!==e.maxRequestsPerQuery&&null!==e.maxRequestsPerQuery&&e.hasOwnProperty("maxRequestsPerQuery")&&(t.maxRequestsPerQuery=e.maxRequestsPerQuery),void 0!==e.forceMaxRequestsPerQuery&&null!==e.forceMaxRequestsPerQuery&&e.hasOwnProperty("forceMaxRequestsPerQuery")&&(t.forceMaxRequestsPerQuery=e.forceMaxRequestsPerQuery),void 0!==e.sortBatches&&null!==e.sortBatches&&e.hasOwnProperty("sortBatches")&&(t.sortBatches=e.sortBatches),void 0!==e.maxDrawable&&null!==e.maxDrawable&&e.hasOwnProperty("maxDrawable")&&(t.maxDrawable=e.maxDrawable),void 0!==e.maxImagery&&null!==e.maxImagery&&e.hasOwnProperty("maxImagery")&&(t.maxImagery=e.maxImagery),void 0!==e.maxTerrain&&null!==e.maxTerrain&&e.hasOwnProperty("maxTerrain")&&(t.maxTerrain=e.maxTerrain),void 0!==e.maxQuadtree&&null!==e.maxQuadtree&&e.hasOwnProperty("maxQuadtree")&&(t.maxQuadtree=e.maxQuadtree),void 0!==e.maxDioramaMetadata&&null!==e.maxDioramaMetadata&&e.hasOwnProperty("maxDioramaMetadata")&&(t.maxDioramaMetadata=e.maxDioramaMetadata),void 0!==e.maxDioramaData&&null!==e.maxDioramaData&&e.hasOwnProperty("maxDioramaData")&&(t.maxDioramaData=e.maxDioramaData),void 0!==e.maxConsumerFetchRatio&&null!==e.maxConsumerFetchRatio&&e.hasOwnProperty("maxConsumerFetchRatio")&&(t.maxConsumerFetchRatio=e.maxConsumerFetchRatio),void 0!==e.maxProEcFetchRatio&&null!==e.maxProEcFetchRatio&&e.hasOwnProperty("maxProEcFetchRatio")&&(t.maxProEcFetchRatio=e.maxProEcFetchRatio),void 0!==e.safeOverallQps&&null!==e.safeOverallQps&&e.hasOwnProperty("safeOverallQps")&&(t.safeOverallQps=e.safeOverallQps),void 0!==e.safeImageryQps&&null!==e.safeImageryQps&&e.hasOwnProperty("safeImageryQps")&&(t.safeImageryQps=e.safeImageryQps),void 0!==e.domainsForHttps&&null!==e.domainsForHttps&&e.hasOwnProperty("domainsForHttps")&&(t.domainsForHttps=e.domainsForHttps),void 0!==e.hostsForHttp&&null!==e.hostsForHttp&&e.hasOwnProperty("hostsForHttp")&&(t.hostsForHttp=e.hostsForHttp),t},f.prototype.toObject=function(e){return this.constructor.toObject(this,e)},f.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},f),e.TimeMachineOptionsProto=(h.prototype.serverUrl="",h.prototype.isTimemachine=!1,h.prototype.dwellTimeMs=500,h.prototype.discoverabilityAltitudeMeters=15e3,h.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.TimeMachineOptionsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.serverUrl=e.string();break;case 2:o.isTimemachine=e.bool();break;case 3:o.dwellTimeMs=e.int32();break;case 4:o.discoverabilityAltitudeMeters=e.int32();break;default:e.skipType(7&a)}}return o},h.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.serverUrl||s.isString(e.serverUrl)?void 0!==e.isTimemachine&&"boolean"!=typeof e.isTimemachine?"isTimemachine: boolean expected":void 0===e.dwellTimeMs||s.isInteger(e.dwellTimeMs)?void 0===e.discoverabilityAltitudeMeters||s.isInteger(e.discoverabilityAltitudeMeters)?null:"discoverabilityAltitudeMeters: integer expected":"dwellTimeMs: integer expected":"serverUrl: string expected"},h.from=h.fromObject=function(e){if(e instanceof c.keyhole.dbroot.TimeMachineOptionsProto)return e;var r=new c.keyhole.dbroot.TimeMachineOptionsProto;return void 0!==e.serverUrl&&null!==e.serverUrl&&(r.serverUrl=String(e.serverUrl)),void 0!==e.isTimemachine&&null!==e.isTimemachine&&(r.isTimemachine=Boolean(e.isTimemachine)),void 0!==e.dwellTimeMs&&null!==e.dwellTimeMs&&(r.dwellTimeMs=0|e.dwellTimeMs),void 0!==e.discoverabilityAltitudeMeters&&null!==e.discoverabilityAltitudeMeters&&(r.discoverabilityAltitudeMeters=0|e.discoverabilityAltitudeMeters),r},h.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.serverUrl="",t.isTimemachine=!1,t.dwellTimeMs=500,t.discoverabilityAltitudeMeters=15e3),void 0!==e.serverUrl&&null!==e.serverUrl&&e.hasOwnProperty("serverUrl")&&(t.serverUrl=e.serverUrl),void 0!==e.isTimemachine&&null!==e.isTimemachine&&e.hasOwnProperty("isTimemachine")&&(t.isTimemachine=e.isTimemachine),void 0!==e.dwellTimeMs&&null!==e.dwellTimeMs&&e.hasOwnProperty("dwellTimeMs")&&(t.dwellTimeMs=e.dwellTimeMs),void 0!==e.discoverabilityAltitudeMeters&&null!==e.discoverabilityAltitudeMeters&&e.hasOwnProperty("discoverabilityAltitudeMeters")&&(t.discoverabilityAltitudeMeters=e.discoverabilityAltitudeMeters),t},h.prototype.toObject=function(e){return this.constructor.toObject(this,e)},h.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},h),e.AutopiaOptionsProto=(m.prototype.metadataServerUrl="http://cbk0.google.com/cbk",m.prototype.depthmapServerUrl="http://cbk0.google.com/cbk",m.prototype.coverageOverlayUrl="",m.prototype.maxImageryQps=0,m.prototype.maxMetadataDepthmapQps=0,m.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.AutopiaOptionsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.metadataServerUrl=e.string();break;case 2:o.depthmapServerUrl=e.string();break;case 3:o.coverageOverlayUrl=e.string();break;case 4:o.maxImageryQps=e.float();break;case 5:o.maxMetadataDepthmapQps=e.float();break;default:e.skipType(7&a)}}return o},m.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.metadataServerUrl||s.isString(e.metadataServerUrl)?void 0===e.depthmapServerUrl||s.isString(e.depthmapServerUrl)?void 0===e.coverageOverlayUrl||s.isString(e.coverageOverlayUrl)?void 0!==e.maxImageryQps&&"number"!=typeof e.maxImageryQps?"maxImageryQps: number expected":void 0!==e.maxMetadataDepthmapQps&&"number"!=typeof e.maxMetadataDepthmapQps?"maxMetadataDepthmapQps: number expected":null:"coverageOverlayUrl: string expected":"depthmapServerUrl: string expected":"metadataServerUrl: string expected"},m.from=m.fromObject=function(e){if(e instanceof c.keyhole.dbroot.AutopiaOptionsProto)return e;var r=new c.keyhole.dbroot.AutopiaOptionsProto;return void 0!==e.metadataServerUrl&&null!==e.metadataServerUrl&&(r.metadataServerUrl=String(e.metadataServerUrl)),void 0!==e.depthmapServerUrl&&null!==e.depthmapServerUrl&&(r.depthmapServerUrl=String(e.depthmapServerUrl)),void 0!==e.coverageOverlayUrl&&null!==e.coverageOverlayUrl&&(r.coverageOverlayUrl=String(e.coverageOverlayUrl)),void 0!==e.maxImageryQps&&null!==e.maxImageryQps&&(r.maxImageryQps=Number(e.maxImageryQps)),void 0!==e.maxMetadataDepthmapQps&&null!==e.maxMetadataDepthmapQps&&(r.maxMetadataDepthmapQps=Number(e.maxMetadataDepthmapQps)),r},m.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.metadataServerUrl="http://cbk0.google.com/cbk",t.depthmapServerUrl="http://cbk0.google.com/cbk",t.coverageOverlayUrl="",t.maxImageryQps=0,t.maxMetadataDepthmapQps=0),void 0!==e.metadataServerUrl&&null!==e.metadataServerUrl&&e.hasOwnProperty("metadataServerUrl")&&(t.metadataServerUrl=e.metadataServerUrl),void 0!==e.depthmapServerUrl&&null!==e.depthmapServerUrl&&e.hasOwnProperty("depthmapServerUrl")&&(t.depthmapServerUrl=e.depthmapServerUrl),void 0!==e.coverageOverlayUrl&&null!==e.coverageOverlayUrl&&e.hasOwnProperty("coverageOverlayUrl")&&(t.coverageOverlayUrl=e.coverageOverlayUrl),void 0!==e.maxImageryQps&&null!==e.maxImageryQps&&e.hasOwnProperty("maxImageryQps")&&(t.maxImageryQps=e.maxImageryQps),void 0!==e.maxMetadataDepthmapQps&&null!==e.maxMetadataDepthmapQps&&e.hasOwnProperty("maxMetadataDepthmapQps")&&(t.maxMetadataDepthmapQps=e.maxMetadataDepthmapQps),t},m.prototype.toObject=function(e){return this.constructor.toObject(this,e)},m.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},m),e.CSIOptionsProto=(v.prototype.samplingPercentage=0,v.prototype.experimentId="",v.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.CSIOptionsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.samplingPercentage=e.int32();break;case 2:o.experimentId=e.string();break;default:e.skipType(7&a)}}return o},v.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.samplingPercentage||s.isInteger(e.samplingPercentage)?void 0===e.experimentId||s.isString(e.experimentId)?null:"experimentId: string expected":"samplingPercentage: integer expected"},v.from=v.fromObject=function(e){if(e instanceof c.keyhole.dbroot.CSIOptionsProto)return e;var r=new c.keyhole.dbroot.CSIOptionsProto;return void 0!==e.samplingPercentage&&null!==e.samplingPercentage&&(r.samplingPercentage=0|e.samplingPercentage),void 0!==e.experimentId&&null!==e.experimentId&&(r.experimentId=String(e.experimentId)),r},v.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.samplingPercentage=0,t.experimentId=""),void 0!==e.samplingPercentage&&null!==e.samplingPercentage&&e.hasOwnProperty("samplingPercentage")&&(t.samplingPercentage=e.samplingPercentage),void 0!==e.experimentId&&null!==e.experimentId&&e.hasOwnProperty("experimentId")&&(t.experimentId=e.experimentId),t},v.prototype.toObject=function(e){return this.constructor.toObject(this,e)},v.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},v),e.SearchTabProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.isVisible=!1,e.prototype.tabLabel=null,e.prototype.baseUrl="",e.prototype.viewportPrefix="",e.prototype.inputBox=s.emptyArray,e.prototype.requirement=null;var n={1:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.SearchTabProto.InputBoxInfo",5:"keyhole.dbroot.RequirementProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.SearchTabProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.isVisible=e.bool();break;case 2:o.tabLabel=n[1].decode(e,e.uint32());break;case 3:o.baseUrl=e.string();break;case 4:o.viewportPrefix=e.string();break;case 5:o.inputBox&&o.inputBox.length||(o.inputBox=[]),o.inputBox.push(n[4].decode(e,e.uint32()));break;case 6:o.requirement=n[5].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if("boolean"!=typeof e.isVisible)return"isVisible: boolean expected";if(void 0!==e.tabLabel&&null!==e.tabLabel&&(t=n[1].verify(e.tabLabel)))return"tabLabel."+t;if(void 0!==e.baseUrl&&!s.isString(e.baseUrl))return"baseUrl: string expected";if(void 0!==e.viewportPrefix&&!s.isString(e.viewportPrefix))return"viewportPrefix: string expected";if(void 0!==e.inputBox){if(!Array.isArray(e.inputBox))return"inputBox: array expected";for(var r=0;r<e.inputBox.length;++r){var t;if(t=n[4].verify(e.inputBox[r]))return"inputBox."+t}}return void 0!==e.requirement&&null!==e.requirement&&(t=n[5].verify(e.requirement))?"requirement."+t:null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.SearchTabProto)return e;var r=new c.keyhole.dbroot.SearchTabProto;if(void 0!==e.isVisible&&null!==e.isVisible&&(r.isVisible=Boolean(e.isVisible)),void 0!==e.tabLabel&&null!==e.tabLabel){if("object"!=typeof e.tabLabel)throw TypeError(".keyhole.dbroot.SearchTabProto.tabLabel: object expected");r.tabLabel=n[1].fromObject(e.tabLabel)}if(void 0!==e.baseUrl&&null!==e.baseUrl&&(r.baseUrl=String(e.baseUrl)),void 0!==e.viewportPrefix&&null!==e.viewportPrefix&&(r.viewportPrefix=String(e.viewportPrefix)),e.inputBox){if(!Array.isArray(e.inputBox))throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: array expected");r.inputBox=[];for(var t=0;t<e.inputBox.length;++t){if("object"!=typeof e.inputBox[t])throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: object expected");r.inputBox[t]=n[4].fromObject(e.inputBox[t])}}if(void 0!==e.requirement&&null!==e.requirement){if("object"!=typeof e.requirement)throw TypeError(".keyhole.dbroot.SearchTabProto.requirement: object expected");r.requirement=n[5].fromObject(e.requirement)}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.inputBox=[]),r.defaults&&(t.isVisible=!1,t.tabLabel=null,t.baseUrl="",t.viewportPrefix="",t.requirement=null),void 0!==e.isVisible&&null!==e.isVisible&&e.hasOwnProperty("isVisible")&&(t.isVisible=e.isVisible),void 0!==e.tabLabel&&null!==e.tabLabel&&e.hasOwnProperty("tabLabel")&&(t.tabLabel=n[1].toObject(e.tabLabel,r)),void 0!==e.baseUrl&&null!==e.baseUrl&&e.hasOwnProperty("baseUrl")&&(t.baseUrl=e.baseUrl),void 0!==e.viewportPrefix&&null!==e.viewportPrefix&&e.hasOwnProperty("viewportPrefix")&&(t.viewportPrefix=e.viewportPrefix),void 0!==e.inputBox&&null!==e.inputBox&&e.hasOwnProperty("inputBox")){t.inputBox=[];for(var o=0;o<e.inputBox.length;++o)t.inputBox[o]=n[4].toObject(e.inputBox[o],r)}return void 0!==e.requirement&&null!==e.requirement&&e.hasOwnProperty("requirement")&&(t.requirement=n[5].toObject(e.requirement,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.InputBoxInfo=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.label=null,e.prototype.queryVerb="",e.prototype.queryPrepend="";var n={0:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.SearchTabProto.InputBoxInfo;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.label=n[0].decode(e,e.uint32());break;case 2:o.queryVerb=e.string();break;case 3:o.queryPrepend=e.string();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";var r=n[0].verify(e.label);return r?"label."+r:s.isString(e.queryVerb)?void 0===e.queryPrepend||s.isString(e.queryPrepend)?null:"queryPrepend: string expected":"queryVerb: string expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.SearchTabProto.InputBoxInfo)return e;var r=new c.keyhole.dbroot.SearchTabProto.InputBoxInfo;if(void 0!==e.label&&null!==e.label){if("object"!=typeof e.label)throw TypeError(".keyhole.dbroot.SearchTabProto.InputBoxInfo.label: object expected");r.label=n[0].fromObject(e.label)}return void 0!==e.queryVerb&&null!==e.queryVerb&&(r.queryVerb=String(e.queryVerb)),void 0!==e.queryPrepend&&null!==e.queryPrepend&&(r.queryPrepend=String(e.queryPrepend)),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.label=null,t.queryVerb="",t.queryPrepend=""),void 0!==e.label&&null!==e.label&&e.hasOwnProperty("label")&&(t.label=n[0].toObject(e.label,r)),void 0!==e.queryVerb&&null!==e.queryVerb&&e.hasOwnProperty("queryVerb")&&(t.queryVerb=e.queryVerb),void 0!==e.queryPrepend&&null!==e.queryPrepend&&e.hasOwnProperty("queryPrepend")&&(t.queryPrepend=e.queryPrepend),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e}(),e.CobrandProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.logoUrl="",e.prototype.xCoord=null,e.prototype.yCoord=null,e.prototype.tiePoint=6,e.prototype.screenSize=0;var r,n={1:"keyhole.dbroot.CobrandProto.Coord",2:"keyhole.dbroot.CobrandProto.Coord",3:"keyhole.dbroot.CobrandProto.TiePoint"};function t(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.CobrandProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.logoUrl=e.string();break;case 2:o.xCoord=n[1].decode(e,e.uint32());break;case 3:o.yCoord=n[2].decode(e,e.uint32());break;case 4:o.tiePoint=e.uint32();break;case 5:o.screenSize=e.double();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isString(e.logoUrl))return"logoUrl: string expected";var r;if(void 0!==e.xCoord&&null!==e.xCoord&&(r=n[1].verify(e.xCoord)))return"xCoord."+r;if(void 0!==e.yCoord&&null!==e.yCoord&&(r=n[2].verify(e.yCoord)))return"yCoord."+r;if(void 0!==e.tiePoint)switch(e.tiePoint){default:return"tiePoint: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:}return void 0!==e.screenSize&&"number"!=typeof e.screenSize?"screenSize: number expected":null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.CobrandProto)return e;var r=new c.keyhole.dbroot.CobrandProto;if(void 0!==e.logoUrl&&null!==e.logoUrl&&(r.logoUrl=String(e.logoUrl)),void 0!==e.xCoord&&null!==e.xCoord){if("object"!=typeof e.xCoord)throw TypeError(".keyhole.dbroot.CobrandProto.xCoord: object expected");r.xCoord=n[1].fromObject(e.xCoord)}if(void 0!==e.yCoord&&null!==e.yCoord){if("object"!=typeof e.yCoord)throw TypeError(".keyhole.dbroot.CobrandProto.yCoord: object expected");r.yCoord=n[2].fromObject(e.yCoord)}switch(e.tiePoint){case"TOP_LEFT":case 0:r.tiePoint=0;break;case"TOP_CENTER":case 1:r.tiePoint=1;break;case"TOP_RIGHT":case 2:r.tiePoint=2;break;case"MID_LEFT":case 3:r.tiePoint=3;break;case"MID_CENTER":case 4:r.tiePoint=4;break;case"MID_RIGHT":case 5:r.tiePoint=5;break;case"BOTTOM_LEFT":case 6:r.tiePoint=6;break;case"BOTTOM_CENTER":case 7:r.tiePoint=7;break;case"BOTTOM_RIGHT":case 8:r.tiePoint=8}return void 0!==e.screenSize&&null!==e.screenSize&&(r.screenSize=Number(e.screenSize)),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.logoUrl="",t.xCoord=null,t.yCoord=null,t.tiePoint=r.enums===String?"BOTTOM_LEFT":6,t.screenSize=0),void 0!==e.logoUrl&&null!==e.logoUrl&&e.hasOwnProperty("logoUrl")&&(t.logoUrl=e.logoUrl),void 0!==e.xCoord&&null!==e.xCoord&&e.hasOwnProperty("xCoord")&&(t.xCoord=n[1].toObject(e.xCoord,r)),void 0!==e.yCoord&&null!==e.yCoord&&e.hasOwnProperty("yCoord")&&(t.yCoord=n[2].toObject(e.yCoord,r)),void 0!==e.tiePoint&&null!==e.tiePoint&&e.hasOwnProperty("tiePoint")&&(t.tiePoint=r.enums===String?n[3][e.tiePoint]:e.tiePoint),void 0!==e.screenSize&&null!==e.screenSize&&e.hasOwnProperty("screenSize")&&(t.screenSize=e.screenSize),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.Coord=(t.prototype.value=0,t.prototype.isRelative=!1,t.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.CobrandProto.Coord;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.value=e.double();break;case 2:o.isRelative=e.bool();break;default:e.skipType(7&a)}}return o},t.verify=function(e){return"object"!=typeof e||null===e?"object expected":"number"!=typeof e.value?"value: number expected":void 0!==e.isRelative&&"boolean"!=typeof e.isRelative?"isRelative: boolean expected":null},t.from=t.fromObject=function(e){if(e instanceof c.keyhole.dbroot.CobrandProto.Coord)return e;var r=new c.keyhole.dbroot.CobrandProto.Coord;return void 0!==e.value&&null!==e.value&&(r.value=Number(e.value)),void 0!==e.isRelative&&null!==e.isRelative&&(r.isRelative=Boolean(e.isRelative)),r},t.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.value=0,t.isRelative=!1),void 0!==e.value&&null!==e.value&&e.hasOwnProperty("value")&&(t.value=e.value),void 0!==e.isRelative&&null!==e.isRelative&&e.hasOwnProperty("isRelative")&&(t.isRelative=e.isRelative),t},t.prototype.toObject=function(e){return this.constructor.toObject(this,e)},t.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},t),e.TiePoint=((r=Object.create({})).TOP_LEFT=0,r.TOP_CENTER=1,r.TOP_RIGHT=2,r.MID_LEFT=3,r.MID_CENTER=4,r.MID_RIGHT=5,r.BOTTOM_LEFT=6,r.BOTTOM_CENTER=7,r.BOTTOM_RIGHT=8,r),e}(),e.DatabaseDescriptionProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.databaseName=null,e.prototype.databaseUrl="";var n={0:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.DatabaseDescriptionProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.databaseName=n[0].decode(e,e.uint32());break;case 2:o.databaseUrl=e.string();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.databaseName&&null!==e.databaseName){var r=n[0].verify(e.databaseName);if(r)return"databaseName."+r}return s.isString(e.databaseUrl)?null:"databaseUrl: string expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.DatabaseDescriptionProto)return e;var r=new c.keyhole.dbroot.DatabaseDescriptionProto;if(void 0!==e.databaseName&&null!==e.databaseName){if("object"!=typeof e.databaseName)throw TypeError(".keyhole.dbroot.DatabaseDescriptionProto.databaseName: object expected");r.databaseName=n[0].fromObject(e.databaseName)}return void 0!==e.databaseUrl&&null!==e.databaseUrl&&(r.databaseUrl=String(e.databaseUrl)),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.databaseName=null,t.databaseUrl=""),void 0!==e.databaseName&&null!==e.databaseName&&e.hasOwnProperty("databaseName")&&(t.databaseName=n[0].toObject(e.databaseName,r)),void 0!==e.databaseUrl&&null!==e.databaseUrl&&e.hasOwnProperty("databaseUrl")&&(t.databaseUrl=e.databaseUrl),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.ConfigScriptProto=(g.prototype.scriptName="",g.prototype.scriptData="",g.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.ConfigScriptProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.scriptName=e.string();break;case 2:o.scriptData=e.string();break;default:e.skipType(7&a)}}return o},g.verify=function(e){return"object"!=typeof e||null===e?"object expected":s.isString(e.scriptName)?s.isString(e.scriptData)?null:"scriptData: string expected":"scriptName: string expected"},g.from=g.fromObject=function(e){if(e instanceof c.keyhole.dbroot.ConfigScriptProto)return e;var r=new c.keyhole.dbroot.ConfigScriptProto;return void 0!==e.scriptName&&null!==e.scriptName&&(r.scriptName=String(e.scriptName)),void 0!==e.scriptData&&null!==e.scriptData&&(r.scriptData=String(e.scriptData)),r},g.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.scriptName="",t.scriptData=""),void 0!==e.scriptName&&null!==e.scriptName&&e.hasOwnProperty("scriptName")&&(t.scriptName=e.scriptName),void 0!==e.scriptData&&null!==e.scriptData&&e.hasOwnProperty("scriptData")&&(t.scriptData=e.scriptData),t},g.prototype.toObject=function(e){return this.constructor.toObject(this,e)},g.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},g),e.SwoopParamsProto=(P.prototype.startDistInMeters=0,P.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.SwoopParamsProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.startDistInMeters=e.double();break;default:e.skipType(7&a)}}return o},P.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.startDistInMeters&&"number"!=typeof e.startDistInMeters?"startDistInMeters: number expected":null},P.from=P.fromObject=function(e){if(e instanceof c.keyhole.dbroot.SwoopParamsProto)return e;var r=new c.keyhole.dbroot.SwoopParamsProto;return void 0!==e.startDistInMeters&&null!==e.startDistInMeters&&(r.startDistInMeters=Number(e.startDistInMeters)),r},P.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.startDistInMeters=0),void 0!==e.startDistInMeters&&null!==e.startDistInMeters&&e.hasOwnProperty("startDistInMeters")&&(t.startDistInMeters=e.startDistInMeters),t},P.prototype.toObject=function(e){return this.constructor.toObject(this,e)},P.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},P),e.PostingServerProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.name=null,e.prototype.baseUrl=null,e.prototype.postWizardPath=null,e.prototype.fileSubmitPath=null;var n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.StringIdOrValueProto",2:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.PostingServerProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.name=n[0].decode(e,e.uint32());break;case 2:o.baseUrl=n[1].decode(e,e.uint32());break;case 3:o.postWizardPath=n[2].decode(e,e.uint32());break;case 4:o.fileSubmitPath=n[3].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.name&&null!==e.name&&(r=n[0].verify(e.name))?"name."+r:void 0!==e.baseUrl&&null!==e.baseUrl&&(r=n[1].verify(e.baseUrl))?"baseUrl."+r:void 0!==e.postWizardPath&&null!==e.postWizardPath&&(r=n[2].verify(e.postWizardPath))?"postWizardPath."+r:void 0!==e.fileSubmitPath&&null!==e.fileSubmitPath&&(r=n[3].verify(e.fileSubmitPath))?"fileSubmitPath."+r:null;var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.PostingServerProto)return e;var r=new c.keyhole.dbroot.PostingServerProto;if(void 0!==e.name&&null!==e.name){if("object"!=typeof e.name)throw TypeError(".keyhole.dbroot.PostingServerProto.name: object expected");r.name=n[0].fromObject(e.name)}if(void 0!==e.baseUrl&&null!==e.baseUrl){if("object"!=typeof e.baseUrl)throw TypeError(".keyhole.dbroot.PostingServerProto.baseUrl: object expected");r.baseUrl=n[1].fromObject(e.baseUrl)}if(void 0!==e.postWizardPath&&null!==e.postWizardPath){if("object"!=typeof e.postWizardPath)throw TypeError(".keyhole.dbroot.PostingServerProto.postWizardPath: object expected");r.postWizardPath=n[2].fromObject(e.postWizardPath)}if(void 0!==e.fileSubmitPath&&null!==e.fileSubmitPath){if("object"!=typeof e.fileSubmitPath)throw TypeError(".keyhole.dbroot.PostingServerProto.fileSubmitPath: object expected");r.fileSubmitPath=n[3].fromObject(e.fileSubmitPath)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.name=null,t.baseUrl=null,t.postWizardPath=null,t.fileSubmitPath=null),void 0!==e.name&&null!==e.name&&e.hasOwnProperty("name")&&(t.name=n[0].toObject(e.name,r)),void 0!==e.baseUrl&&null!==e.baseUrl&&e.hasOwnProperty("baseUrl")&&(t.baseUrl=n[1].toObject(e.baseUrl,r)),void 0!==e.postWizardPath&&null!==e.postWizardPath&&e.hasOwnProperty("postWizardPath")&&(t.postWizardPath=n[2].toObject(e.postWizardPath,r)),void 0!==e.fileSubmitPath&&null!==e.fileSubmitPath&&e.hasOwnProperty("fileSubmitPath")&&(t.fileSubmitPath=n[3].toObject(e.fileSubmitPath,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.PlanetaryDatabaseProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null,e.prototype.name=null;var n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.PlanetaryDatabaseProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;case 2:o.name=n[1].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":(r=n[0].verify(e.url))?"url."+r:(r=n[1].verify(e.name))?"name."+r:null;var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.PlanetaryDatabaseProto)return e;var r=new c.keyhole.dbroot.PlanetaryDatabaseProto;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.url: object expected");r.url=n[0].fromObject(e.url)}if(void 0!==e.name&&null!==e.name){if("object"!=typeof e.name)throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.name: object expected");r.name=n[1].fromObject(e.name)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null,t.name=null),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),void 0!==e.name&&null!==e.name&&e.hasOwnProperty("name")&&(t.name=n[1].toObject(e.name,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.LogServerProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null,e.prototype.enable=!1,e.prototype.throttlingFactor=1;var n={0:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.LogServerProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;case 2:o.enable=e.bool();break;case 3:o.throttlingFactor=e.int32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.url&&null!==e.url){var r=n[0].verify(e.url);if(r)return"url."+r}return void 0!==e.enable&&"boolean"!=typeof e.enable?"enable: boolean expected":void 0===e.throttlingFactor||s.isInteger(e.throttlingFactor)?null:"throttlingFactor: integer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.LogServerProto)return e;var r=new c.keyhole.dbroot.LogServerProto;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.LogServerProto.url: object expected");r.url=n[0].fromObject(e.url)}return void 0!==e.enable&&null!==e.enable&&(r.enable=Boolean(e.enable)),void 0!==e.throttlingFactor&&null!==e.throttlingFactor&&(r.throttlingFactor=0|e.throttlingFactor),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null,t.enable=!1,t.throttlingFactor=1),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),void 0!==e.enable&&null!==e.enable&&e.hasOwnProperty("enable")&&(t.enable=e.enable),void 0!==e.throttlingFactor&&null!==e.throttlingFactor&&e.hasOwnProperty("throttlingFactor")&&(t.throttlingFactor=e.throttlingFactor),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.EndSnippetProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.model=null,e.prototype.authServerUrl=null,e.prototype.disableAuthentication=!1,e.prototype.mfeDomains=s.emptyArray,e.prototype.mfeLangParam="hl=$5Bhl5D",e.prototype.adsUrlPatterns="",e.prototype.reverseGeocoderUrl=null,e.prototype.reverseGeocoderProtocolVersion=3,e.prototype.skyDatabaseIsAvailable=!0,e.prototype.skyDatabaseUrl=null,e.prototype.defaultWebPageIntlUrl=null,e.prototype.numStartUpTips=17,e.prototype.startUpTipsUrl=null,e.prototype.numProStartUpTips=0,e.prototype.proStartUpTipsUrl=null,e.prototype.startupTipsIntlUrl=null,e.prototype.userGuideIntlUrl=null,e.prototype.supportCenterIntlUrl=null,e.prototype.businessListingIntlUrl=null,e.prototype.supportAnswerIntlUrl=null,e.prototype.supportTopicIntlUrl=null,e.prototype.supportRequestIntlUrl=null,e.prototype.earthIntlUrl=null,e.prototype.addContentUrl=null,e.prototype.sketchupNotInstalledUrl=null,e.prototype.sketchupErrorUrl=null,e.prototype.freeLicenseUrl=null,e.prototype.proLicenseUrl=null,e.prototype.tutorialUrl=null,e.prototype.keyboardShortcutsUrl=null,e.prototype.releaseNotesUrl=null,e.prototype.hideUserData=!1,e.prototype.useGeLogo=!0,e.prototype.dioramaDescriptionUrlBase=null,e.prototype.dioramaDefaultColor=4291281607,e.prototype.dioramaBlacklistUrl=null,e.prototype.clientOptions=null,e.prototype.fetchingOptions=null,e.prototype.timeMachineOptions=null,e.prototype.csiOptions=null,e.prototype.searchTab=s.emptyArray,e.prototype.cobrandInfo=s.emptyArray,e.prototype.validDatabase=s.emptyArray,e.prototype.configScript=s.emptyArray,e.prototype.deauthServerUrl=null,e.prototype.swoopParameters=null,e.prototype.bbsServerInfo=null,e.prototype.dataErrorServerInfo=null,e.prototype.planetaryDatabase=s.emptyArray,e.prototype.logServer=null,e.prototype.autopiaOptions=null,e.prototype.searchConfig=null,e.prototype.searchInfo=null,e.prototype.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",e.prototype.elevationProfileQueryDelay=500,e.prototype.proUpgradeUrl=null,e.prototype.earthCommunityUrl=null,e.prototype.googleMapsUrl=null,e.prototype.sharingUrl=null,e.prototype.privacyPolicyUrl=null,e.prototype.doGplusUserCheck=!1,e.prototype.rocktreeDataProto=null,e.prototype.filmstripConfig=s.emptyArray,e.prototype.showSigninButton=!1,e.prototype.proMeasureUpsellUrl=null,e.prototype.proPrintUpsellUrl=null,e.prototype.starDataProto=null,e.prototype.feedbackUrl=null,e.prototype.oauth2LoginUrl=null;var n={0:"keyhole.dbroot.PlanetModelProto",1:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.MfeDomainFeaturesProto",6:"keyhole.dbroot.StringIdOrValueProto",9:"keyhole.dbroot.StringIdOrValueProto",10:"keyhole.dbroot.StringIdOrValueProto",12:"keyhole.dbroot.StringIdOrValueProto",14:"keyhole.dbroot.StringIdOrValueProto",15:"keyhole.dbroot.StringIdOrValueProto",16:"keyhole.dbroot.StringIdOrValueProto",17:"keyhole.dbroot.StringIdOrValueProto",18:"keyhole.dbroot.StringIdOrValueProto",19:"keyhole.dbroot.StringIdOrValueProto",20:"keyhole.dbroot.StringIdOrValueProto",21:"keyhole.dbroot.StringIdOrValueProto",22:"keyhole.dbroot.StringIdOrValueProto",23:"keyhole.dbroot.StringIdOrValueProto",24:"keyhole.dbroot.StringIdOrValueProto",25:"keyhole.dbroot.StringIdOrValueProto",26:"keyhole.dbroot.StringIdOrValueProto",27:"keyhole.dbroot.StringIdOrValueProto",28:"keyhole.dbroot.StringIdOrValueProto",29:"keyhole.dbroot.StringIdOrValueProto",30:"keyhole.dbroot.StringIdOrValueProto",33:"keyhole.dbroot.StringIdOrValueProto",35:"keyhole.dbroot.StringIdOrValueProto",36:"keyhole.dbroot.ClientOptionsProto",37:"keyhole.dbroot.FetchingOptionsProto",38:"keyhole.dbroot.TimeMachineOptionsProto",39:"keyhole.dbroot.CSIOptionsProto",40:"keyhole.dbroot.SearchTabProto",41:"keyhole.dbroot.CobrandProto",42:"keyhole.dbroot.DatabaseDescriptionProto",43:"keyhole.dbroot.ConfigScriptProto",44:"keyhole.dbroot.StringIdOrValueProto",45:"keyhole.dbroot.SwoopParamsProto",46:"keyhole.dbroot.PostingServerProto",47:"keyhole.dbroot.PostingServerProto",48:"keyhole.dbroot.PlanetaryDatabaseProto",49:"keyhole.dbroot.LogServerProto",50:"keyhole.dbroot.AutopiaOptionsProto",51:"keyhole.dbroot.EndSnippetProto.SearchConfigProto",52:"keyhole.dbroot.EndSnippetProto.SearchInfoProto",55:"keyhole.dbroot.StringIdOrValueProto",56:"keyhole.dbroot.StringIdOrValueProto",57:"keyhole.dbroot.StringIdOrValueProto",58:"keyhole.dbroot.StringIdOrValueProto",59:"keyhole.dbroot.StringIdOrValueProto",61:"keyhole.dbroot.EndSnippetProto.RockTreeDataProto",62:"keyhole.dbroot.EndSnippetProto.FilmstripConfigProto",64:"keyhole.dbroot.StringIdOrValueProto",65:"keyhole.dbroot.StringIdOrValueProto",66:"keyhole.dbroot.EndSnippetProto.StarDataProto",67:"keyhole.dbroot.StringIdOrValueProto",68:"keyhole.dbroot.StringIdOrValueProto"};function r(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.model=n[0].decode(e,e.uint32());break;case 2:o.authServerUrl=n[1].decode(e,e.uint32());break;case 3:o.disableAuthentication=e.bool();break;case 4:o.mfeDomains&&o.mfeDomains.length||(o.mfeDomains=[]),o.mfeDomains.push(n[3].decode(e,e.uint32()));break;case 5:o.mfeLangParam=e.string();break;case 6:o.adsUrlPatterns=e.string();break;case 7:o.reverseGeocoderUrl=n[6].decode(e,e.uint32());break;case 8:o.reverseGeocoderProtocolVersion=e.int32();break;case 9:o.skyDatabaseIsAvailable=e.bool();break;case 10:o.skyDatabaseUrl=n[9].decode(e,e.uint32());break;case 11:o.defaultWebPageIntlUrl=n[10].decode(e,e.uint32());break;case 12:o.numStartUpTips=e.int32();break;case 13:o.startUpTipsUrl=n[12].decode(e,e.uint32());break;case 51:o.numProStartUpTips=e.int32();break;case 52:o.proStartUpTipsUrl=n[14].decode(e,e.uint32());break;case 64:o.startupTipsIntlUrl=n[15].decode(e,e.uint32());break;case 14:o.userGuideIntlUrl=n[16].decode(e,e.uint32());break;case 15:o.supportCenterIntlUrl=n[17].decode(e,e.uint32());break;case 16:o.businessListingIntlUrl=n[18].decode(e,e.uint32());break;case 17:o.supportAnswerIntlUrl=n[19].decode(e,e.uint32());break;case 18:o.supportTopicIntlUrl=n[20].decode(e,e.uint32());break;case 19:o.supportRequestIntlUrl=n[21].decode(e,e.uint32());break;case 20:o.earthIntlUrl=n[22].decode(e,e.uint32());break;case 21:o.addContentUrl=n[23].decode(e,e.uint32());break;case 22:o.sketchupNotInstalledUrl=n[24].decode(e,e.uint32());break;case 23:o.sketchupErrorUrl=n[25].decode(e,e.uint32());break;case 24:o.freeLicenseUrl=n[26].decode(e,e.uint32());break;case 25:o.proLicenseUrl=n[27].decode(e,e.uint32());break;case 48:o.tutorialUrl=n[28].decode(e,e.uint32());break;case 49:o.keyboardShortcutsUrl=n[29].decode(e,e.uint32());break;case 50:o.releaseNotesUrl=n[30].decode(e,e.uint32());break;case 26:o.hideUserData=e.bool();break;case 27:o.useGeLogo=e.bool();break;case 28:o.dioramaDescriptionUrlBase=n[33].decode(e,e.uint32());break;case 29:o.dioramaDefaultColor=e.uint32();break;case 53:o.dioramaBlacklistUrl=n[35].decode(e,e.uint32());break;case 30:o.clientOptions=n[36].decode(e,e.uint32());break;case 31:o.fetchingOptions=n[37].decode(e,e.uint32());break;case 32:o.timeMachineOptions=n[38].decode(e,e.uint32());break;case 33:o.csiOptions=n[39].decode(e,e.uint32());break;case 34:o.searchTab&&o.searchTab.length||(o.searchTab=[]),o.searchTab.push(n[40].decode(e,e.uint32()));break;case 35:o.cobrandInfo&&o.cobrandInfo.length||(o.cobrandInfo=[]),o.cobrandInfo.push(n[41].decode(e,e.uint32()));break;case 36:o.validDatabase&&o.validDatabase.length||(o.validDatabase=[]),o.validDatabase.push(n[42].decode(e,e.uint32()));break;case 37:o.configScript&&o.configScript.length||(o.configScript=[]),o.configScript.push(n[43].decode(e,e.uint32()));break;case 38:o.deauthServerUrl=n[44].decode(e,e.uint32());break;case 39:o.swoopParameters=n[45].decode(e,e.uint32());break;case 40:o.bbsServerInfo=n[46].decode(e,e.uint32());break;case 41:o.dataErrorServerInfo=n[47].decode(e,e.uint32());break;case 42:o.planetaryDatabase&&o.planetaryDatabase.length||(o.planetaryDatabase=[]),o.planetaryDatabase.push(n[48].decode(e,e.uint32()));break;case 43:o.logServer=n[49].decode(e,e.uint32());break;case 44:o.autopiaOptions=n[50].decode(e,e.uint32());break;case 54:o.searchConfig=n[51].decode(e,e.uint32());break;case 45:o.searchInfo=n[52].decode(e,e.uint32());break;case 46:o.elevationServiceBaseUrl=e.string();break;case 47:o.elevationProfileQueryDelay=e.int32();break;case 55:o.proUpgradeUrl=n[55].decode(e,e.uint32());break;case 56:o.earthCommunityUrl=n[56].decode(e,e.uint32());break;case 57:o.googleMapsUrl=n[57].decode(e,e.uint32());break;case 58:o.sharingUrl=n[58].decode(e,e.uint32());break;case 59:o.privacyPolicyUrl=n[59].decode(e,e.uint32());break;case 60:o.doGplusUserCheck=e.bool();break;case 61:o.rocktreeDataProto=n[61].decode(e,e.uint32());break;case 62:o.filmstripConfig&&o.filmstripConfig.length||(o.filmstripConfig=[]),o.filmstripConfig.push(n[62].decode(e,e.uint32()));break;case 63:o.showSigninButton=e.bool();break;case 65:o.proMeasureUpsellUrl=n[64].decode(e,e.uint32());break;case 66:o.proPrintUpsellUrl=n[65].decode(e,e.uint32());break;case 67:o.starDataProto=n[66].decode(e,e.uint32());break;case 68:o.feedbackUrl=n[67].decode(e,e.uint32());break;case 69:o.oauth2LoginUrl=n[68].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.model&&null!==e.model&&(t=n[0].verify(e.model)))return"model."+t;if(void 0!==e.authServerUrl&&null!==e.authServerUrl&&(t=n[1].verify(e.authServerUrl)))return"authServerUrl."+t;if(void 0!==e.disableAuthentication&&"boolean"!=typeof e.disableAuthentication)return"disableAuthentication: boolean expected";if(void 0!==e.mfeDomains){if(!Array.isArray(e.mfeDomains))return"mfeDomains: array expected";for(var r=0;r<e.mfeDomains.length;++r)if(t=n[3].verify(e.mfeDomains[r]))return"mfeDomains."+t}if(void 0!==e.mfeLangParam&&!s.isString(e.mfeLangParam))return"mfeLangParam: string expected";if(void 0!==e.adsUrlPatterns&&!s.isString(e.adsUrlPatterns))return"adsUrlPatterns: string expected";if(void 0!==e.reverseGeocoderUrl&&null!==e.reverseGeocoderUrl&&(t=n[6].verify(e.reverseGeocoderUrl)))return"reverseGeocoderUrl."+t;if(void 0!==e.reverseGeocoderProtocolVersion&&!s.isInteger(e.reverseGeocoderProtocolVersion))return"reverseGeocoderProtocolVersion: integer expected";if(void 0!==e.skyDatabaseIsAvailable&&"boolean"!=typeof e.skyDatabaseIsAvailable)return"skyDatabaseIsAvailable: boolean expected";if(void 0!==e.skyDatabaseUrl&&null!==e.skyDatabaseUrl&&(t=n[9].verify(e.skyDatabaseUrl)))return"skyDatabaseUrl."+t;if(void 0!==e.defaultWebPageIntlUrl&&null!==e.defaultWebPageIntlUrl&&(t=n[10].verify(e.defaultWebPageIntlUrl)))return"defaultWebPageIntlUrl."+t;if(void 0!==e.numStartUpTips&&!s.isInteger(e.numStartUpTips))return"numStartUpTips: integer expected";if(void 0!==e.startUpTipsUrl&&null!==e.startUpTipsUrl&&(t=n[12].verify(e.startUpTipsUrl)))return"startUpTipsUrl."+t;if(void 0!==e.numProStartUpTips&&!s.isInteger(e.numProStartUpTips))return"numProStartUpTips: integer expected";if(void 0!==e.proStartUpTipsUrl&&null!==e.proStartUpTipsUrl&&(t=n[14].verify(e.proStartUpTipsUrl)))return"proStartUpTipsUrl."+t;if(void 0!==e.startupTipsIntlUrl&&null!==e.startupTipsIntlUrl&&(t=n[15].verify(e.startupTipsIntlUrl)))return"startupTipsIntlUrl."+t;if(void 0!==e.userGuideIntlUrl&&null!==e.userGuideIntlUrl&&(t=n[16].verify(e.userGuideIntlUrl)))return"userGuideIntlUrl."+t;if(void 0!==e.supportCenterIntlUrl&&null!==e.supportCenterIntlUrl&&(t=n[17].verify(e.supportCenterIntlUrl)))return"supportCenterIntlUrl."+t;if(void 0!==e.businessListingIntlUrl&&null!==e.businessListingIntlUrl&&(t=n[18].verify(e.businessListingIntlUrl)))return"businessListingIntlUrl."+t;if(void 0!==e.supportAnswerIntlUrl&&null!==e.supportAnswerIntlUrl&&(t=n[19].verify(e.supportAnswerIntlUrl)))return"supportAnswerIntlUrl."+t;if(void 0!==e.supportTopicIntlUrl&&null!==e.supportTopicIntlUrl&&(t=n[20].verify(e.supportTopicIntlUrl)))return"supportTopicIntlUrl."+t;if(void 0!==e.supportRequestIntlUrl&&null!==e.supportRequestIntlUrl&&(t=n[21].verify(e.supportRequestIntlUrl)))return"supportRequestIntlUrl."+t;if(void 0!==e.earthIntlUrl&&null!==e.earthIntlUrl&&(t=n[22].verify(e.earthIntlUrl)))return"earthIntlUrl."+t;if(void 0!==e.addContentUrl&&null!==e.addContentUrl&&(t=n[23].verify(e.addContentUrl)))return"addContentUrl."+t;if(void 0!==e.sketchupNotInstalledUrl&&null!==e.sketchupNotInstalledUrl&&(t=n[24].verify(e.sketchupNotInstalledUrl)))return"sketchupNotInstalledUrl."+t;if(void 0!==e.sketchupErrorUrl&&null!==e.sketchupErrorUrl&&(t=n[25].verify(e.sketchupErrorUrl)))return"sketchupErrorUrl."+t;if(void 0!==e.freeLicenseUrl&&null!==e.freeLicenseUrl&&(t=n[26].verify(e.freeLicenseUrl)))return"freeLicenseUrl."+t;if(void 0!==e.proLicenseUrl&&null!==e.proLicenseUrl&&(t=n[27].verify(e.proLicenseUrl)))return"proLicenseUrl."+t;if(void 0!==e.tutorialUrl&&null!==e.tutorialUrl&&(t=n[28].verify(e.tutorialUrl)))return"tutorialUrl."+t;if(void 0!==e.keyboardShortcutsUrl&&null!==e.keyboardShortcutsUrl&&(t=n[29].verify(e.keyboardShortcutsUrl)))return"keyboardShortcutsUrl."+t;if(void 0!==e.releaseNotesUrl&&null!==e.releaseNotesUrl&&(t=n[30].verify(e.releaseNotesUrl)))return"releaseNotesUrl."+t;if(void 0!==e.hideUserData&&"boolean"!=typeof e.hideUserData)return"hideUserData: boolean expected";if(void 0!==e.useGeLogo&&"boolean"!=typeof e.useGeLogo)return"useGeLogo: boolean expected";if(void 0!==e.dioramaDescriptionUrlBase&&null!==e.dioramaDescriptionUrlBase&&(t=n[33].verify(e.dioramaDescriptionUrlBase)))return"dioramaDescriptionUrlBase."+t;if(void 0!==e.dioramaDefaultColor&&!s.isInteger(e.dioramaDefaultColor))return"dioramaDefaultColor: integer expected";if(void 0!==e.dioramaBlacklistUrl&&null!==e.dioramaBlacklistUrl&&(t=n[35].verify(e.dioramaBlacklistUrl)))return"dioramaBlacklistUrl."+t;if(void 0!==e.clientOptions&&null!==e.clientOptions&&(t=n[36].verify(e.clientOptions)))return"clientOptions."+t;if(void 0!==e.fetchingOptions&&null!==e.fetchingOptions&&(t=n[37].verify(e.fetchingOptions)))return"fetchingOptions."+t;if(void 0!==e.timeMachineOptions&&null!==e.timeMachineOptions&&(t=n[38].verify(e.timeMachineOptions)))return"timeMachineOptions."+t;if(void 0!==e.csiOptions&&null!==e.csiOptions&&(t=n[39].verify(e.csiOptions)))return"csiOptions."+t;if(void 0!==e.searchTab){if(!Array.isArray(e.searchTab))return"searchTab: array expected";for(r=0;r<e.searchTab.length;++r)if(t=n[40].verify(e.searchTab[r]))return"searchTab."+t}if(void 0!==e.cobrandInfo){if(!Array.isArray(e.cobrandInfo))return"cobrandInfo: array expected";for(r=0;r<e.cobrandInfo.length;++r)if(t=n[41].verify(e.cobrandInfo[r]))return"cobrandInfo."+t}if(void 0!==e.validDatabase){if(!Array.isArray(e.validDatabase))return"validDatabase: array expected";for(r=0;r<e.validDatabase.length;++r)if(t=n[42].verify(e.validDatabase[r]))return"validDatabase."+t}if(void 0!==e.configScript){if(!Array.isArray(e.configScript))return"configScript: array expected";for(r=0;r<e.configScript.length;++r)if(t=n[43].verify(e.configScript[r]))return"configScript."+t}if(void 0!==e.deauthServerUrl&&null!==e.deauthServerUrl&&(t=n[44].verify(e.deauthServerUrl)))return"deauthServerUrl."+t;if(void 0!==e.swoopParameters&&null!==e.swoopParameters&&(t=n[45].verify(e.swoopParameters)))return"swoopParameters."+t;if(void 0!==e.bbsServerInfo&&null!==e.bbsServerInfo&&(t=n[46].verify(e.bbsServerInfo)))return"bbsServerInfo."+t;if(void 0!==e.dataErrorServerInfo&&null!==e.dataErrorServerInfo&&(t=n[47].verify(e.dataErrorServerInfo)))return"dataErrorServerInfo."+t;if(void 0!==e.planetaryDatabase){if(!Array.isArray(e.planetaryDatabase))return"planetaryDatabase: array expected";for(r=0;r<e.planetaryDatabase.length;++r)if(t=n[48].verify(e.planetaryDatabase[r]))return"planetaryDatabase."+t}if(void 0!==e.logServer&&null!==e.logServer&&(t=n[49].verify(e.logServer)))return"logServer."+t;if(void 0!==e.autopiaOptions&&null!==e.autopiaOptions&&(t=n[50].verify(e.autopiaOptions)))return"autopiaOptions."+t;if(void 0!==e.searchConfig&&null!==e.searchConfig&&(t=n[51].verify(e.searchConfig)))return"searchConfig."+t;if(void 0!==e.searchInfo&&null!==e.searchInfo&&(t=n[52].verify(e.searchInfo)))return"searchInfo."+t;if(void 0!==e.elevationServiceBaseUrl&&!s.isString(e.elevationServiceBaseUrl))return"elevationServiceBaseUrl: string expected";if(void 0!==e.elevationProfileQueryDelay&&!s.isInteger(e.elevationProfileQueryDelay))return"elevationProfileQueryDelay: integer expected";if(void 0!==e.proUpgradeUrl&&null!==e.proUpgradeUrl&&(t=n[55].verify(e.proUpgradeUrl)))return"proUpgradeUrl."+t;if(void 0!==e.earthCommunityUrl&&null!==e.earthCommunityUrl&&(t=n[56].verify(e.earthCommunityUrl)))return"earthCommunityUrl."+t;if(void 0!==e.googleMapsUrl&&null!==e.googleMapsUrl&&(t=n[57].verify(e.googleMapsUrl)))return"googleMapsUrl."+t;if(void 0!==e.sharingUrl&&null!==e.sharingUrl&&(t=n[58].verify(e.sharingUrl)))return"sharingUrl."+t;if(void 0!==e.privacyPolicyUrl&&null!==e.privacyPolicyUrl&&(t=n[59].verify(e.privacyPolicyUrl)))return"privacyPolicyUrl."+t;if(void 0!==e.doGplusUserCheck&&"boolean"!=typeof e.doGplusUserCheck)return"doGplusUserCheck: boolean expected";if(void 0!==e.rocktreeDataProto&&null!==e.rocktreeDataProto&&(t=n[61].verify(e.rocktreeDataProto)))return"rocktreeDataProto."+t;if(void 0!==e.filmstripConfig){if(!Array.isArray(e.filmstripConfig))return"filmstripConfig: array expected";for(r=0;r<e.filmstripConfig.length;++r){var t;if(t=n[62].verify(e.filmstripConfig[r]))return"filmstripConfig."+t}}return void 0!==e.showSigninButton&&"boolean"!=typeof e.showSigninButton?"showSigninButton: boolean expected":void 0!==e.proMeasureUpsellUrl&&null!==e.proMeasureUpsellUrl&&(t=n[64].verify(e.proMeasureUpsellUrl))?"proMeasureUpsellUrl."+t:void 0!==e.proPrintUpsellUrl&&null!==e.proPrintUpsellUrl&&(t=n[65].verify(e.proPrintUpsellUrl))?"proPrintUpsellUrl."+t:void 0!==e.starDataProto&&null!==e.starDataProto&&(t=n[66].verify(e.starDataProto))?"starDataProto."+t:void 0!==e.feedbackUrl&&null!==e.feedbackUrl&&(t=n[67].verify(e.feedbackUrl))?"feedbackUrl."+t:void 0!==e.oauth2LoginUrl&&null!==e.oauth2LoginUrl&&(t=n[68].verify(e.oauth2LoginUrl))?"oauth2LoginUrl."+t:null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto;if(void 0!==e.model&&null!==e.model){if("object"!=typeof e.model)throw TypeError(".keyhole.dbroot.EndSnippetProto.model: object expected");r.model=n[0].fromObject(e.model)}if(void 0!==e.authServerUrl&&null!==e.authServerUrl){if("object"!=typeof e.authServerUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.authServerUrl: object expected");r.authServerUrl=n[1].fromObject(e.authServerUrl)}if(void 0!==e.disableAuthentication&&null!==e.disableAuthentication&&(r.disableAuthentication=Boolean(e.disableAuthentication)),e.mfeDomains){if(!Array.isArray(e.mfeDomains))throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: array expected");r.mfeDomains=[];for(var t=0;t<e.mfeDomains.length;++t){if("object"!=typeof e.mfeDomains[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: object expected");r.mfeDomains[t]=n[3].fromObject(e.mfeDomains[t])}}if(void 0!==e.mfeLangParam&&null!==e.mfeLangParam&&(r.mfeLangParam=String(e.mfeLangParam)),void 0!==e.adsUrlPatterns&&null!==e.adsUrlPatterns&&(r.adsUrlPatterns=String(e.adsUrlPatterns)),void 0!==e.reverseGeocoderUrl&&null!==e.reverseGeocoderUrl){if("object"!=typeof e.reverseGeocoderUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.reverseGeocoderUrl: object expected");r.reverseGeocoderUrl=n[6].fromObject(e.reverseGeocoderUrl)}if(void 0!==e.reverseGeocoderProtocolVersion&&null!==e.reverseGeocoderProtocolVersion&&(r.reverseGeocoderProtocolVersion=0|e.reverseGeocoderProtocolVersion),void 0!==e.skyDatabaseIsAvailable&&null!==e.skyDatabaseIsAvailable&&(r.skyDatabaseIsAvailable=Boolean(e.skyDatabaseIsAvailable)),void 0!==e.skyDatabaseUrl&&null!==e.skyDatabaseUrl){if("object"!=typeof e.skyDatabaseUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.skyDatabaseUrl: object expected");r.skyDatabaseUrl=n[9].fromObject(e.skyDatabaseUrl)}if(void 0!==e.defaultWebPageIntlUrl&&null!==e.defaultWebPageIntlUrl){if("object"!=typeof e.defaultWebPageIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.defaultWebPageIntlUrl: object expected");r.defaultWebPageIntlUrl=n[10].fromObject(e.defaultWebPageIntlUrl)}if(void 0!==e.numStartUpTips&&null!==e.numStartUpTips&&(r.numStartUpTips=0|e.numStartUpTips),void 0!==e.startUpTipsUrl&&null!==e.startUpTipsUrl){if("object"!=typeof e.startUpTipsUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.startUpTipsUrl: object expected");r.startUpTipsUrl=n[12].fromObject(e.startUpTipsUrl)}if(void 0!==e.numProStartUpTips&&null!==e.numProStartUpTips&&(r.numProStartUpTips=0|e.numProStartUpTips),void 0!==e.proStartUpTipsUrl&&null!==e.proStartUpTipsUrl){if("object"!=typeof e.proStartUpTipsUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.proStartUpTipsUrl: object expected");r.proStartUpTipsUrl=n[14].fromObject(e.proStartUpTipsUrl)}if(void 0!==e.startupTipsIntlUrl&&null!==e.startupTipsIntlUrl){if("object"!=typeof e.startupTipsIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.startupTipsIntlUrl: object expected");r.startupTipsIntlUrl=n[15].fromObject(e.startupTipsIntlUrl)}if(void 0!==e.userGuideIntlUrl&&null!==e.userGuideIntlUrl){if("object"!=typeof e.userGuideIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.userGuideIntlUrl: object expected");r.userGuideIntlUrl=n[16].fromObject(e.userGuideIntlUrl)}if(void 0!==e.supportCenterIntlUrl&&null!==e.supportCenterIntlUrl){if("object"!=typeof e.supportCenterIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.supportCenterIntlUrl: object expected");r.supportCenterIntlUrl=n[17].fromObject(e.supportCenterIntlUrl)}if(void 0!==e.businessListingIntlUrl&&null!==e.businessListingIntlUrl){if("object"!=typeof e.businessListingIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.businessListingIntlUrl: object expected");r.businessListingIntlUrl=n[18].fromObject(e.businessListingIntlUrl)}if(void 0!==e.supportAnswerIntlUrl&&null!==e.supportAnswerIntlUrl){if("object"!=typeof e.supportAnswerIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.supportAnswerIntlUrl: object expected");r.supportAnswerIntlUrl=n[19].fromObject(e.supportAnswerIntlUrl)}if(void 0!==e.supportTopicIntlUrl&&null!==e.supportTopicIntlUrl){if("object"!=typeof e.supportTopicIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.supportTopicIntlUrl: object expected");r.supportTopicIntlUrl=n[20].fromObject(e.supportTopicIntlUrl)}if(void 0!==e.supportRequestIntlUrl&&null!==e.supportRequestIntlUrl){if("object"!=typeof e.supportRequestIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.supportRequestIntlUrl: object expected");r.supportRequestIntlUrl=n[21].fromObject(e.supportRequestIntlUrl)}if(void 0!==e.earthIntlUrl&&null!==e.earthIntlUrl){if("object"!=typeof e.earthIntlUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.earthIntlUrl: object expected");r.earthIntlUrl=n[22].fromObject(e.earthIntlUrl)}if(void 0!==e.addContentUrl&&null!==e.addContentUrl){if("object"!=typeof e.addContentUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.addContentUrl: object expected");r.addContentUrl=n[23].fromObject(e.addContentUrl)}if(void 0!==e.sketchupNotInstalledUrl&&null!==e.sketchupNotInstalledUrl){if("object"!=typeof e.sketchupNotInstalledUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupNotInstalledUrl: object expected");r.sketchupNotInstalledUrl=n[24].fromObject(e.sketchupNotInstalledUrl)}if(void 0!==e.sketchupErrorUrl&&null!==e.sketchupErrorUrl){if("object"!=typeof e.sketchupErrorUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupErrorUrl: object expected");r.sketchupErrorUrl=n[25].fromObject(e.sketchupErrorUrl)}if(void 0!==e.freeLicenseUrl&&null!==e.freeLicenseUrl){if("object"!=typeof e.freeLicenseUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.freeLicenseUrl: object expected");r.freeLicenseUrl=n[26].fromObject(e.freeLicenseUrl)}if(void 0!==e.proLicenseUrl&&null!==e.proLicenseUrl){if("object"!=typeof e.proLicenseUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.proLicenseUrl: object expected");r.proLicenseUrl=n[27].fromObject(e.proLicenseUrl)}if(void 0!==e.tutorialUrl&&null!==e.tutorialUrl){if("object"!=typeof e.tutorialUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.tutorialUrl: object expected");r.tutorialUrl=n[28].fromObject(e.tutorialUrl)}if(void 0!==e.keyboardShortcutsUrl&&null!==e.keyboardShortcutsUrl){if("object"!=typeof e.keyboardShortcutsUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.keyboardShortcutsUrl: object expected");r.keyboardShortcutsUrl=n[29].fromObject(e.keyboardShortcutsUrl)}if(void 0!==e.releaseNotesUrl&&null!==e.releaseNotesUrl){if("object"!=typeof e.releaseNotesUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.releaseNotesUrl: object expected");r.releaseNotesUrl=n[30].fromObject(e.releaseNotesUrl)}if(void 0!==e.hideUserData&&null!==e.hideUserData&&(r.hideUserData=Boolean(e.hideUserData)),void 0!==e.useGeLogo&&null!==e.useGeLogo&&(r.useGeLogo=Boolean(e.useGeLogo)),void 0!==e.dioramaDescriptionUrlBase&&null!==e.dioramaDescriptionUrlBase){if("object"!=typeof e.dioramaDescriptionUrlBase)throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaDescriptionUrlBase: object expected");r.dioramaDescriptionUrlBase=n[33].fromObject(e.dioramaDescriptionUrlBase)}if(void 0!==e.dioramaDefaultColor&&null!==e.dioramaDefaultColor&&(r.dioramaDefaultColor=e.dioramaDefaultColor>>>0),void 0!==e.dioramaBlacklistUrl&&null!==e.dioramaBlacklistUrl){if("object"!=typeof e.dioramaBlacklistUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaBlacklistUrl: object expected");r.dioramaBlacklistUrl=n[35].fromObject(e.dioramaBlacklistUrl)}if(void 0!==e.clientOptions&&null!==e.clientOptions){if("object"!=typeof e.clientOptions)throw TypeError(".keyhole.dbroot.EndSnippetProto.clientOptions: object expected");r.clientOptions=n[36].fromObject(e.clientOptions)}if(void 0!==e.fetchingOptions&&null!==e.fetchingOptions){if("object"!=typeof e.fetchingOptions)throw TypeError(".keyhole.dbroot.EndSnippetProto.fetchingOptions: object expected");r.fetchingOptions=n[37].fromObject(e.fetchingOptions)}if(void 0!==e.timeMachineOptions&&null!==e.timeMachineOptions){if("object"!=typeof e.timeMachineOptions)throw TypeError(".keyhole.dbroot.EndSnippetProto.timeMachineOptions: object expected");r.timeMachineOptions=n[38].fromObject(e.timeMachineOptions)}if(void 0!==e.csiOptions&&null!==e.csiOptions){if("object"!=typeof e.csiOptions)throw TypeError(".keyhole.dbroot.EndSnippetProto.csiOptions: object expected");r.csiOptions=n[39].fromObject(e.csiOptions)}if(e.searchTab){if(!Array.isArray(e.searchTab))throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: array expected");for(r.searchTab=[],t=0;t<e.searchTab.length;++t){if("object"!=typeof e.searchTab[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: object expected");r.searchTab[t]=n[40].fromObject(e.searchTab[t])}}if(e.cobrandInfo){if(!Array.isArray(e.cobrandInfo))throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: array expected");for(r.cobrandInfo=[],t=0;t<e.cobrandInfo.length;++t){if("object"!=typeof e.cobrandInfo[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: object expected");r.cobrandInfo[t]=n[41].fromObject(e.cobrandInfo[t])}}if(e.validDatabase){if(!Array.isArray(e.validDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: array expected");for(r.validDatabase=[],t=0;t<e.validDatabase.length;++t){if("object"!=typeof e.validDatabase[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: object expected");r.validDatabase[t]=n[42].fromObject(e.validDatabase[t])}}if(e.configScript){if(!Array.isArray(e.configScript))throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: array expected");for(r.configScript=[],t=0;t<e.configScript.length;++t){if("object"!=typeof e.configScript[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: object expected");r.configScript[t]=n[43].fromObject(e.configScript[t])}}if(void 0!==e.deauthServerUrl&&null!==e.deauthServerUrl){if("object"!=typeof e.deauthServerUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.deauthServerUrl: object expected");r.deauthServerUrl=n[44].fromObject(e.deauthServerUrl)}if(void 0!==e.swoopParameters&&null!==e.swoopParameters){if("object"!=typeof e.swoopParameters)throw TypeError(".keyhole.dbroot.EndSnippetProto.swoopParameters: object expected");r.swoopParameters=n[45].fromObject(e.swoopParameters)}if(void 0!==e.bbsServerInfo&&null!==e.bbsServerInfo){if("object"!=typeof e.bbsServerInfo)throw TypeError(".keyhole.dbroot.EndSnippetProto.bbsServerInfo: object expected");r.bbsServerInfo=n[46].fromObject(e.bbsServerInfo)}if(void 0!==e.dataErrorServerInfo&&null!==e.dataErrorServerInfo){if("object"!=typeof e.dataErrorServerInfo)throw TypeError(".keyhole.dbroot.EndSnippetProto.dataErrorServerInfo: object expected");r.dataErrorServerInfo=n[47].fromObject(e.dataErrorServerInfo)}if(e.planetaryDatabase){if(!Array.isArray(e.planetaryDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: array expected");for(r.planetaryDatabase=[],t=0;t<e.planetaryDatabase.length;++t){if("object"!=typeof e.planetaryDatabase[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: object expected");r.planetaryDatabase[t]=n[48].fromObject(e.planetaryDatabase[t])}}if(void 0!==e.logServer&&null!==e.logServer){if("object"!=typeof e.logServer)throw TypeError(".keyhole.dbroot.EndSnippetProto.logServer: object expected");r.logServer=n[49].fromObject(e.logServer)}if(void 0!==e.autopiaOptions&&null!==e.autopiaOptions){if("object"!=typeof e.autopiaOptions)throw TypeError(".keyhole.dbroot.EndSnippetProto.autopiaOptions: object expected");r.autopiaOptions=n[50].fromObject(e.autopiaOptions)}if(void 0!==e.searchConfig&&null!==e.searchConfig){if("object"!=typeof e.searchConfig)throw TypeError(".keyhole.dbroot.EndSnippetProto.searchConfig: object expected");r.searchConfig=n[51].fromObject(e.searchConfig)}if(void 0!==e.searchInfo&&null!==e.searchInfo){if("object"!=typeof e.searchInfo)throw TypeError(".keyhole.dbroot.EndSnippetProto.searchInfo: object expected");r.searchInfo=n[52].fromObject(e.searchInfo)}if(void 0!==e.elevationServiceBaseUrl&&null!==e.elevationServiceBaseUrl&&(r.elevationServiceBaseUrl=String(e.elevationServiceBaseUrl)),void 0!==e.elevationProfileQueryDelay&&null!==e.elevationProfileQueryDelay&&(r.elevationProfileQueryDelay=0|e.elevationProfileQueryDelay),void 0!==e.proUpgradeUrl&&null!==e.proUpgradeUrl){if("object"!=typeof e.proUpgradeUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.proUpgradeUrl: object expected");r.proUpgradeUrl=n[55].fromObject(e.proUpgradeUrl)}if(void 0!==e.earthCommunityUrl&&null!==e.earthCommunityUrl){if("object"!=typeof e.earthCommunityUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.earthCommunityUrl: object expected");r.earthCommunityUrl=n[56].fromObject(e.earthCommunityUrl)}if(void 0!==e.googleMapsUrl&&null!==e.googleMapsUrl){if("object"!=typeof e.googleMapsUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.googleMapsUrl: object expected");r.googleMapsUrl=n[57].fromObject(e.googleMapsUrl)}if(void 0!==e.sharingUrl&&null!==e.sharingUrl){if("object"!=typeof e.sharingUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.sharingUrl: object expected");r.sharingUrl=n[58].fromObject(e.sharingUrl)}if(void 0!==e.privacyPolicyUrl&&null!==e.privacyPolicyUrl){if("object"!=typeof e.privacyPolicyUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.privacyPolicyUrl: object expected");r.privacyPolicyUrl=n[59].fromObject(e.privacyPolicyUrl)}if(void 0!==e.doGplusUserCheck&&null!==e.doGplusUserCheck&&(r.doGplusUserCheck=Boolean(e.doGplusUserCheck)),void 0!==e.rocktreeDataProto&&null!==e.rocktreeDataProto){if("object"!=typeof e.rocktreeDataProto)throw TypeError(".keyhole.dbroot.EndSnippetProto.rocktreeDataProto: object expected");r.rocktreeDataProto=n[61].fromObject(e.rocktreeDataProto)}if(e.filmstripConfig){if(!Array.isArray(e.filmstripConfig))throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: array expected");for(r.filmstripConfig=[],t=0;t<e.filmstripConfig.length;++t){if("object"!=typeof e.filmstripConfig[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: object expected");r.filmstripConfig[t]=n[62].fromObject(e.filmstripConfig[t])}}if(void 0!==e.showSigninButton&&null!==e.showSigninButton&&(r.showSigninButton=Boolean(e.showSigninButton)),void 0!==e.proMeasureUpsellUrl&&null!==e.proMeasureUpsellUrl){if("object"!=typeof e.proMeasureUpsellUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.proMeasureUpsellUrl: object expected");r.proMeasureUpsellUrl=n[64].fromObject(e.proMeasureUpsellUrl)}if(void 0!==e.proPrintUpsellUrl&&null!==e.proPrintUpsellUrl){if("object"!=typeof e.proPrintUpsellUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.proPrintUpsellUrl: object expected");r.proPrintUpsellUrl=n[65].fromObject(e.proPrintUpsellUrl)}if(void 0!==e.starDataProto&&null!==e.starDataProto){if("object"!=typeof e.starDataProto)throw TypeError(".keyhole.dbroot.EndSnippetProto.starDataProto: object expected");r.starDataProto=n[66].fromObject(e.starDataProto)}if(void 0!==e.feedbackUrl&&null!==e.feedbackUrl){if("object"!=typeof e.feedbackUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.feedbackUrl: object expected");r.feedbackUrl=n[67].fromObject(e.feedbackUrl)}if(void 0!==e.oauth2LoginUrl&&null!==e.oauth2LoginUrl){if("object"!=typeof e.oauth2LoginUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.oauth2LoginUrl: object expected");r.oauth2LoginUrl=n[68].fromObject(e.oauth2LoginUrl)}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.mfeDomains=[],t.searchTab=[],t.cobrandInfo=[],t.validDatabase=[],t.configScript=[],t.planetaryDatabase=[],t.filmstripConfig=[]),r.defaults&&(t.model=null,t.authServerUrl=null,t.disableAuthentication=!1,t.mfeLangParam="hl=$5Bhl5D",t.adsUrlPatterns="",t.reverseGeocoderUrl=null,t.reverseGeocoderProtocolVersion=3,t.skyDatabaseIsAvailable=!0,t.skyDatabaseUrl=null,t.defaultWebPageIntlUrl=null,t.numStartUpTips=17,t.startUpTipsUrl=null,t.numProStartUpTips=0,t.proStartUpTipsUrl=null,t.startupTipsIntlUrl=null,t.userGuideIntlUrl=null,t.supportCenterIntlUrl=null,t.businessListingIntlUrl=null,t.supportAnswerIntlUrl=null,t.supportTopicIntlUrl=null,t.supportRequestIntlUrl=null,t.earthIntlUrl=null,t.addContentUrl=null,t.sketchupNotInstalledUrl=null,t.sketchupErrorUrl=null,t.freeLicenseUrl=null,t.proLicenseUrl=null,t.tutorialUrl=null,t.keyboardShortcutsUrl=null,t.releaseNotesUrl=null,t.hideUserData=!1,t.useGeLogo=!0,t.dioramaDescriptionUrlBase=null,t.dioramaDefaultColor=4291281607,t.dioramaBlacklistUrl=null,t.clientOptions=null,t.fetchingOptions=null,t.timeMachineOptions=null,t.csiOptions=null,t.deauthServerUrl=null,t.swoopParameters=null,t.bbsServerInfo=null,t.dataErrorServerInfo=null,t.logServer=null,t.autopiaOptions=null,t.searchConfig=null,t.searchInfo=null,t.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",t.elevationProfileQueryDelay=500,t.proUpgradeUrl=null,t.earthCommunityUrl=null,t.googleMapsUrl=null,t.sharingUrl=null,t.privacyPolicyUrl=null,t.doGplusUserCheck=!1,t.rocktreeDataProto=null,t.showSigninButton=!1,t.proMeasureUpsellUrl=null,t.proPrintUpsellUrl=null,t.starDataProto=null,t.feedbackUrl=null,t.oauth2LoginUrl=null),void 0!==e.model&&null!==e.model&&e.hasOwnProperty("model")&&(t.model=n[0].toObject(e.model,r)),void 0!==e.authServerUrl&&null!==e.authServerUrl&&e.hasOwnProperty("authServerUrl")&&(t.authServerUrl=n[1].toObject(e.authServerUrl,r)),void 0!==e.disableAuthentication&&null!==e.disableAuthentication&&e.hasOwnProperty("disableAuthentication")&&(t.disableAuthentication=e.disableAuthentication),void 0!==e.mfeDomains&&null!==e.mfeDomains&&e.hasOwnProperty("mfeDomains")){t.mfeDomains=[];for(var o=0;o<e.mfeDomains.length;++o)t.mfeDomains[o]=n[3].toObject(e.mfeDomains[o],r)}if(void 0!==e.mfeLangParam&&null!==e.mfeLangParam&&e.hasOwnProperty("mfeLangParam")&&(t.mfeLangParam=e.mfeLangParam),void 0!==e.adsUrlPatterns&&null!==e.adsUrlPatterns&&e.hasOwnProperty("adsUrlPatterns")&&(t.adsUrlPatterns=e.adsUrlPatterns),void 0!==e.reverseGeocoderUrl&&null!==e.reverseGeocoderUrl&&e.hasOwnProperty("reverseGeocoderUrl")&&(t.reverseGeocoderUrl=n[6].toObject(e.reverseGeocoderUrl,r)),void 0!==e.reverseGeocoderProtocolVersion&&null!==e.reverseGeocoderProtocolVersion&&e.hasOwnProperty("reverseGeocoderProtocolVersion")&&(t.reverseGeocoderProtocolVersion=e.reverseGeocoderProtocolVersion),void 0!==e.skyDatabaseIsAvailable&&null!==e.skyDatabaseIsAvailable&&e.hasOwnProperty("skyDatabaseIsAvailable")&&(t.skyDatabaseIsAvailable=e.skyDatabaseIsAvailable),void 0!==e.skyDatabaseUrl&&null!==e.skyDatabaseUrl&&e.hasOwnProperty("skyDatabaseUrl")&&(t.skyDatabaseUrl=n[9].toObject(e.skyDatabaseUrl,r)),void 0!==e.defaultWebPageIntlUrl&&null!==e.defaultWebPageIntlUrl&&e.hasOwnProperty("defaultWebPageIntlUrl")&&(t.defaultWebPageIntlUrl=n[10].toObject(e.defaultWebPageIntlUrl,r)),void 0!==e.numStartUpTips&&null!==e.numStartUpTips&&e.hasOwnProperty("numStartUpTips")&&(t.numStartUpTips=e.numStartUpTips),void 0!==e.startUpTipsUrl&&null!==e.startUpTipsUrl&&e.hasOwnProperty("startUpTipsUrl")&&(t.startUpTipsUrl=n[12].toObject(e.startUpTipsUrl,r)),void 0!==e.numProStartUpTips&&null!==e.numProStartUpTips&&e.hasOwnProperty("numProStartUpTips")&&(t.numProStartUpTips=e.numProStartUpTips),void 0!==e.proStartUpTipsUrl&&null!==e.proStartUpTipsUrl&&e.hasOwnProperty("proStartUpTipsUrl")&&(t.proStartUpTipsUrl=n[14].toObject(e.proStartUpTipsUrl,r)),void 0!==e.startupTipsIntlUrl&&null!==e.startupTipsIntlUrl&&e.hasOwnProperty("startupTipsIntlUrl")&&(t.startupTipsIntlUrl=n[15].toObject(e.startupTipsIntlUrl,r)),void 0!==e.userGuideIntlUrl&&null!==e.userGuideIntlUrl&&e.hasOwnProperty("userGuideIntlUrl")&&(t.userGuideIntlUrl=n[16].toObject(e.userGuideIntlUrl,r)),void 0!==e.supportCenterIntlUrl&&null!==e.supportCenterIntlUrl&&e.hasOwnProperty("supportCenterIntlUrl")&&(t.supportCenterIntlUrl=n[17].toObject(e.supportCenterIntlUrl,r)),void 0!==e.businessListingIntlUrl&&null!==e.businessListingIntlUrl&&e.hasOwnProperty("businessListingIntlUrl")&&(t.businessListingIntlUrl=n[18].toObject(e.businessListingIntlUrl,r)),void 0!==e.supportAnswerIntlUrl&&null!==e.supportAnswerIntlUrl&&e.hasOwnProperty("supportAnswerIntlUrl")&&(t.supportAnswerIntlUrl=n[19].toObject(e.supportAnswerIntlUrl,r)),void 0!==e.supportTopicIntlUrl&&null!==e.supportTopicIntlUrl&&e.hasOwnProperty("supportTopicIntlUrl")&&(t.supportTopicIntlUrl=n[20].toObject(e.supportTopicIntlUrl,r)),void 0!==e.supportRequestIntlUrl&&null!==e.supportRequestIntlUrl&&e.hasOwnProperty("supportRequestIntlUrl")&&(t.supportRequestIntlUrl=n[21].toObject(e.supportRequestIntlUrl,r)),void 0!==e.earthIntlUrl&&null!==e.earthIntlUrl&&e.hasOwnProperty("earthIntlUrl")&&(t.earthIntlUrl=n[22].toObject(e.earthIntlUrl,r)),void 0!==e.addContentUrl&&null!==e.addContentUrl&&e.hasOwnProperty("addContentUrl")&&(t.addContentUrl=n[23].toObject(e.addContentUrl,r)),void 0!==e.sketchupNotInstalledUrl&&null!==e.sketchupNotInstalledUrl&&e.hasOwnProperty("sketchupNotInstalledUrl")&&(t.sketchupNotInstalledUrl=n[24].toObject(e.sketchupNotInstalledUrl,r)),void 0!==e.sketchupErrorUrl&&null!==e.sketchupErrorUrl&&e.hasOwnProperty("sketchupErrorUrl")&&(t.sketchupErrorUrl=n[25].toObject(e.sketchupErrorUrl,r)),void 0!==e.freeLicenseUrl&&null!==e.freeLicenseUrl&&e.hasOwnProperty("freeLicenseUrl")&&(t.freeLicenseUrl=n[26].toObject(e.freeLicenseUrl,r)),void 0!==e.proLicenseUrl&&null!==e.proLicenseUrl&&e.hasOwnProperty("proLicenseUrl")&&(t.proLicenseUrl=n[27].toObject(e.proLicenseUrl,r)),void 0!==e.tutorialUrl&&null!==e.tutorialUrl&&e.hasOwnProperty("tutorialUrl")&&(t.tutorialUrl=n[28].toObject(e.tutorialUrl,r)),void 0!==e.keyboardShortcutsUrl&&null!==e.keyboardShortcutsUrl&&e.hasOwnProperty("keyboardShortcutsUrl")&&(t.keyboardShortcutsUrl=n[29].toObject(e.keyboardShortcutsUrl,r)),void 0!==e.releaseNotesUrl&&null!==e.releaseNotesUrl&&e.hasOwnProperty("releaseNotesUrl")&&(t.releaseNotesUrl=n[30].toObject(e.releaseNotesUrl,r)),void 0!==e.hideUserData&&null!==e.hideUserData&&e.hasOwnProperty("hideUserData")&&(t.hideUserData=e.hideUserData),void 0!==e.useGeLogo&&null!==e.useGeLogo&&e.hasOwnProperty("useGeLogo")&&(t.useGeLogo=e.useGeLogo),void 0!==e.dioramaDescriptionUrlBase&&null!==e.dioramaDescriptionUrlBase&&e.hasOwnProperty("dioramaDescriptionUrlBase")&&(t.dioramaDescriptionUrlBase=n[33].toObject(e.dioramaDescriptionUrlBase,r)),void 0!==e.dioramaDefaultColor&&null!==e.dioramaDefaultColor&&e.hasOwnProperty("dioramaDefaultColor")&&(t.dioramaDefaultColor=e.dioramaDefaultColor),void 0!==e.dioramaBlacklistUrl&&null!==e.dioramaBlacklistUrl&&e.hasOwnProperty("dioramaBlacklistUrl")&&(t.dioramaBlacklistUrl=n[35].toObject(e.dioramaBlacklistUrl,r)),void 0!==e.clientOptions&&null!==e.clientOptions&&e.hasOwnProperty("clientOptions")&&(t.clientOptions=n[36].toObject(e.clientOptions,r)),void 0!==e.fetchingOptions&&null!==e.fetchingOptions&&e.hasOwnProperty("fetchingOptions")&&(t.fetchingOptions=n[37].toObject(e.fetchingOptions,r)),void 0!==e.timeMachineOptions&&null!==e.timeMachineOptions&&e.hasOwnProperty("timeMachineOptions")&&(t.timeMachineOptions=n[38].toObject(e.timeMachineOptions,r)),void 0!==e.csiOptions&&null!==e.csiOptions&&e.hasOwnProperty("csiOptions")&&(t.csiOptions=n[39].toObject(e.csiOptions,r)),void 0!==e.searchTab&&null!==e.searchTab&&e.hasOwnProperty("searchTab"))for(t.searchTab=[],o=0;o<e.searchTab.length;++o)t.searchTab[o]=n[40].toObject(e.searchTab[o],r);if(void 0!==e.cobrandInfo&&null!==e.cobrandInfo&&e.hasOwnProperty("cobrandInfo"))for(t.cobrandInfo=[],o=0;o<e.cobrandInfo.length;++o)t.cobrandInfo[o]=n[41].toObject(e.cobrandInfo[o],r);if(void 0!==e.validDatabase&&null!==e.validDatabase&&e.hasOwnProperty("validDatabase"))for(t.validDatabase=[],o=0;o<e.validDatabase.length;++o)t.validDatabase[o]=n[42].toObject(e.validDatabase[o],r);if(void 0!==e.configScript&&null!==e.configScript&&e.hasOwnProperty("configScript"))for(t.configScript=[],o=0;o<e.configScript.length;++o)t.configScript[o]=n[43].toObject(e.configScript[o],r);if(void 0!==e.deauthServerUrl&&null!==e.deauthServerUrl&&e.hasOwnProperty("deauthServerUrl")&&(t.deauthServerUrl=n[44].toObject(e.deauthServerUrl,r)),void 0!==e.swoopParameters&&null!==e.swoopParameters&&e.hasOwnProperty("swoopParameters")&&(t.swoopParameters=n[45].toObject(e.swoopParameters,r)),void 0!==e.bbsServerInfo&&null!==e.bbsServerInfo&&e.hasOwnProperty("bbsServerInfo")&&(t.bbsServerInfo=n[46].toObject(e.bbsServerInfo,r)),void 0!==e.dataErrorServerInfo&&null!==e.dataErrorServerInfo&&e.hasOwnProperty("dataErrorServerInfo")&&(t.dataErrorServerInfo=n[47].toObject(e.dataErrorServerInfo,r)),void 0!==e.planetaryDatabase&&null!==e.planetaryDatabase&&e.hasOwnProperty("planetaryDatabase"))for(t.planetaryDatabase=[],o=0;o<e.planetaryDatabase.length;++o)t.planetaryDatabase[o]=n[48].toObject(e.planetaryDatabase[o],r);if(void 0!==e.logServer&&null!==e.logServer&&e.hasOwnProperty("logServer")&&(t.logServer=n[49].toObject(e.logServer,r)),void 0!==e.autopiaOptions&&null!==e.autopiaOptions&&e.hasOwnProperty("autopiaOptions")&&(t.autopiaOptions=n[50].toObject(e.autopiaOptions,r)),void 0!==e.searchConfig&&null!==e.searchConfig&&e.hasOwnProperty("searchConfig")&&(t.searchConfig=n[51].toObject(e.searchConfig,r)),void 0!==e.searchInfo&&null!==e.searchInfo&&e.hasOwnProperty("searchInfo")&&(t.searchInfo=n[52].toObject(e.searchInfo,r)),void 0!==e.elevationServiceBaseUrl&&null!==e.elevationServiceBaseUrl&&e.hasOwnProperty("elevationServiceBaseUrl")&&(t.elevationServiceBaseUrl=e.elevationServiceBaseUrl),void 0!==e.elevationProfileQueryDelay&&null!==e.elevationProfileQueryDelay&&e.hasOwnProperty("elevationProfileQueryDelay")&&(t.elevationProfileQueryDelay=e.elevationProfileQueryDelay),void 0!==e.proUpgradeUrl&&null!==e.proUpgradeUrl&&e.hasOwnProperty("proUpgradeUrl")&&(t.proUpgradeUrl=n[55].toObject(e.proUpgradeUrl,r)),void 0!==e.earthCommunityUrl&&null!==e.earthCommunityUrl&&e.hasOwnProperty("earthCommunityUrl")&&(t.earthCommunityUrl=n[56].toObject(e.earthCommunityUrl,r)),void 0!==e.googleMapsUrl&&null!==e.googleMapsUrl&&e.hasOwnProperty("googleMapsUrl")&&(t.googleMapsUrl=n[57].toObject(e.googleMapsUrl,r)),void 0!==e.sharingUrl&&null!==e.sharingUrl&&e.hasOwnProperty("sharingUrl")&&(t.sharingUrl=n[58].toObject(e.sharingUrl,r)),void 0!==e.privacyPolicyUrl&&null!==e.privacyPolicyUrl&&e.hasOwnProperty("privacyPolicyUrl")&&(t.privacyPolicyUrl=n[59].toObject(e.privacyPolicyUrl,r)),void 0!==e.doGplusUserCheck&&null!==e.doGplusUserCheck&&e.hasOwnProperty("doGplusUserCheck")&&(t.doGplusUserCheck=e.doGplusUserCheck),void 0!==e.rocktreeDataProto&&null!==e.rocktreeDataProto&&e.hasOwnProperty("rocktreeDataProto")&&(t.rocktreeDataProto=n[61].toObject(e.rocktreeDataProto,r)),void 0!==e.filmstripConfig&&null!==e.filmstripConfig&&e.hasOwnProperty("filmstripConfig"))for(t.filmstripConfig=[],o=0;o<e.filmstripConfig.length;++o)t.filmstripConfig[o]=n[62].toObject(e.filmstripConfig[o],r);return void 0!==e.showSigninButton&&null!==e.showSigninButton&&e.hasOwnProperty("showSigninButton")&&(t.showSigninButton=e.showSigninButton),void 0!==e.proMeasureUpsellUrl&&null!==e.proMeasureUpsellUrl&&e.hasOwnProperty("proMeasureUpsellUrl")&&(t.proMeasureUpsellUrl=n[64].toObject(e.proMeasureUpsellUrl,r)),void 0!==e.proPrintUpsellUrl&&null!==e.proPrintUpsellUrl&&e.hasOwnProperty("proPrintUpsellUrl")&&(t.proPrintUpsellUrl=n[65].toObject(e.proPrintUpsellUrl,r)),void 0!==e.starDataProto&&null!==e.starDataProto&&e.hasOwnProperty("starDataProto")&&(t.starDataProto=n[66].toObject(e.starDataProto,r)),void 0!==e.feedbackUrl&&null!==e.feedbackUrl&&e.hasOwnProperty("feedbackUrl")&&(t.feedbackUrl=n[67].toObject(e.feedbackUrl,r)),void 0!==e.oauth2LoginUrl&&null!==e.oauth2LoginUrl&&e.hasOwnProperty("oauth2LoginUrl")&&(t.oauth2LoginUrl=n[68].toObject(e.oauth2LoginUrl,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.SearchConfigProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.searchServer=s.emptyArray,e.prototype.oneboxService=s.emptyArray,e.prototype.kmlSearchUrl=null,e.prototype.kmlRenderUrl=null,e.prototype.searchHistoryUrl=null,e.prototype.errorPageUrl=null;var n={0:"keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer",1:"keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto",2:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.StringIdOrValueProto",5:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.searchServer&&o.searchServer.length||(o.searchServer=[]),o.searchServer.push(n[0].decode(e,e.uint32()));break;case 2:o.oneboxService&&o.oneboxService.length||(o.oneboxService=[]),o.oneboxService.push(n[1].decode(e,e.uint32()));break;case 3:o.kmlSearchUrl=n[2].decode(e,e.uint32());break;case 4:o.kmlRenderUrl=n[3].decode(e,e.uint32());break;case 6:o.searchHistoryUrl=n[4].decode(e,e.uint32());break;case 5:o.errorPageUrl=n[5].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.searchServer){if(!Array.isArray(e.searchServer))return"searchServer: array expected";for(var r=0;r<e.searchServer.length;++r)if(t=n[0].verify(e.searchServer[r]))return"searchServer."+t}if(void 0!==e.oneboxService){if(!Array.isArray(e.oneboxService))return"oneboxService: array expected";for(r=0;r<e.oneboxService.length;++r)if(t=n[1].verify(e.oneboxService[r]))return"oneboxService."+t}var t;return void 0!==e.kmlSearchUrl&&null!==e.kmlSearchUrl&&(t=n[2].verify(e.kmlSearchUrl))?"kmlSearchUrl."+t:void 0!==e.kmlRenderUrl&&null!==e.kmlRenderUrl&&(t=n[3].verify(e.kmlRenderUrl))?"kmlRenderUrl."+t:void 0!==e.searchHistoryUrl&&null!==e.searchHistoryUrl&&(t=n[4].verify(e.searchHistoryUrl))?"searchHistoryUrl."+t:void 0!==e.errorPageUrl&&null!==e.errorPageUrl&&(t=n[5].verify(e.errorPageUrl))?"errorPageUrl."+t:null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchConfigProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto;if(e.searchServer){if(!Array.isArray(e.searchServer))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: array expected");r.searchServer=[];for(var t=0;t<e.searchServer.length;++t){if("object"!=typeof e.searchServer[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: object expected");r.searchServer[t]=n[0].fromObject(e.searchServer[t])}}if(e.oneboxService){if(!Array.isArray(e.oneboxService))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: array expected");for(r.oneboxService=[],t=0;t<e.oneboxService.length;++t){if("object"!=typeof e.oneboxService[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: object expected");r.oneboxService[t]=n[1].fromObject(e.oneboxService[t])}}if(void 0!==e.kmlSearchUrl&&null!==e.kmlSearchUrl){if("object"!=typeof e.kmlSearchUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlSearchUrl: object expected");r.kmlSearchUrl=n[2].fromObject(e.kmlSearchUrl)}if(void 0!==e.kmlRenderUrl&&null!==e.kmlRenderUrl){if("object"!=typeof e.kmlRenderUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlRenderUrl: object expected");r.kmlRenderUrl=n[3].fromObject(e.kmlRenderUrl)}if(void 0!==e.searchHistoryUrl&&null!==e.searchHistoryUrl){if("object"!=typeof e.searchHistoryUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchHistoryUrl: object expected");r.searchHistoryUrl=n[4].fromObject(e.searchHistoryUrl)}if(void 0!==e.errorPageUrl&&null!==e.errorPageUrl){if("object"!=typeof e.errorPageUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.errorPageUrl: object expected");r.errorPageUrl=n[5].fromObject(e.errorPageUrl)}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.searchServer=[],t.oneboxService=[]),r.defaults&&(t.kmlSearchUrl=null,t.kmlRenderUrl=null,t.searchHistoryUrl=null,t.errorPageUrl=null),void 0!==e.searchServer&&null!==e.searchServer&&e.hasOwnProperty("searchServer")){t.searchServer=[];for(var o=0;o<e.searchServer.length;++o)t.searchServer[o]=n[0].toObject(e.searchServer[o],r)}if(void 0!==e.oneboxService&&null!==e.oneboxService&&e.hasOwnProperty("oneboxService"))for(t.oneboxService=[],o=0;o<e.oneboxService.length;++o)t.oneboxService[o]=n[1].toObject(e.oneboxService[o],r);return void 0!==e.kmlSearchUrl&&null!==e.kmlSearchUrl&&e.hasOwnProperty("kmlSearchUrl")&&(t.kmlSearchUrl=n[2].toObject(e.kmlSearchUrl,r)),void 0!==e.kmlRenderUrl&&null!==e.kmlRenderUrl&&e.hasOwnProperty("kmlRenderUrl")&&(t.kmlRenderUrl=n[3].toObject(e.kmlRenderUrl,r)),void 0!==e.searchHistoryUrl&&null!==e.searchHistoryUrl&&e.hasOwnProperty("searchHistoryUrl")&&(t.searchHistoryUrl=n[4].toObject(e.searchHistoryUrl,r)),void 0!==e.errorPageUrl&&null!==e.errorPageUrl&&e.hasOwnProperty("errorPageUrl")&&(t.errorPageUrl=n[5].toObject(e.errorPageUrl,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.SearchServer=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.name=null,e.prototype.url=null,e.prototype.type=0,e.prototype.htmlTransformUrl=null,e.prototype.kmlTransformUrl=null,e.prototype.supplementalUi=null,e.prototype.suggestion=s.emptyArray,e.prototype.searchlet=s.emptyArray,e.prototype.requirements=null,e.prototype.suggestServer=null;var r,n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.StringIdOrValueProto",2:"keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.ResultType",3:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.StringIdOrValueProto",5:"keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi",6:"keyhole.dbroot.StringIdOrValueProto",7:"keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto",8:"keyhole.dbroot.RequirementProto",9:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.name=n[0].decode(e,e.uint32());break;case 2:o.url=n[1].decode(e,e.uint32());break;case 3:o.type=e.uint32();break;case 4:o.htmlTransformUrl=n[3].decode(e,e.uint32());break;case 5:o.kmlTransformUrl=n[4].decode(e,e.uint32());break;case 6:o.supplementalUi=n[5].decode(e,e.uint32());break;case 9:o.suggestion&&o.suggestion.length||(o.suggestion=[]),o.suggestion.push(n[6].decode(e,e.uint32()));break;case 7:o.searchlet&&o.searchlet.length||(o.searchlet=[]),o.searchlet.push(n[7].decode(e,e.uint32()));break;case 8:o.requirements=n[8].decode(e,e.uint32());break;case 10:o.suggestServer=n[9].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.name&&null!==e.name&&(t=n[0].verify(e.name)))return"name."+t;if(void 0!==e.url&&null!==e.url&&(t=n[1].verify(e.url)))return"url."+t;if(void 0!==e.type)switch(e.type){default:return"type: enum value expected";case 0:case 1:}if(void 0!==e.htmlTransformUrl&&null!==e.htmlTransformUrl&&(t=n[3].verify(e.htmlTransformUrl)))return"htmlTransformUrl."+t;if(void 0!==e.kmlTransformUrl&&null!==e.kmlTransformUrl&&(t=n[4].verify(e.kmlTransformUrl)))return"kmlTransformUrl."+t;if(void 0!==e.supplementalUi&&null!==e.supplementalUi&&(t=n[5].verify(e.supplementalUi)))return"supplementalUi."+t;if(void 0!==e.suggestion){if(!Array.isArray(e.suggestion))return"suggestion: array expected";for(var r=0;r<e.suggestion.length;++r)if(t=n[6].verify(e.suggestion[r]))return"suggestion."+t}if(void 0!==e.searchlet){if(!Array.isArray(e.searchlet))return"searchlet: array expected";for(r=0;r<e.searchlet.length;++r){var t;if(t=n[7].verify(e.searchlet[r]))return"searchlet."+t}}return void 0!==e.requirements&&null!==e.requirements&&(t=n[8].verify(e.requirements))?"requirements."+t:void 0!==e.suggestServer&&null!==e.suggestServer&&(t=n[9].verify(e.suggestServer))?"suggestServer."+t:null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;if(void 0!==e.name&&null!==e.name){if("object"!=typeof e.name)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.name: object expected");r.name=n[0].fromObject(e.name)}if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.url: object expected");r.url=n[1].fromObject(e.url)}switch(e.type){case"RESULT_TYPE_KML":case 0:r.type=0;break;case"RESULT_TYPE_XML":case 1:r.type=1}if(void 0!==e.htmlTransformUrl&&null!==e.htmlTransformUrl){if("object"!=typeof e.htmlTransformUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.htmlTransformUrl: object expected");r.htmlTransformUrl=n[3].fromObject(e.htmlTransformUrl)}if(void 0!==e.kmlTransformUrl&&null!==e.kmlTransformUrl){if("object"!=typeof e.kmlTransformUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.kmlTransformUrl: object expected");r.kmlTransformUrl=n[4].fromObject(e.kmlTransformUrl)}if(void 0!==e.supplementalUi&&null!==e.supplementalUi){if("object"!=typeof e.supplementalUi)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.supplementalUi: object expected");r.supplementalUi=n[5].fromObject(e.supplementalUi)}if(e.suggestion){if(!Array.isArray(e.suggestion))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: array expected");r.suggestion=[];for(var t=0;t<e.suggestion.length;++t){if("object"!=typeof e.suggestion[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: object expected");r.suggestion[t]=n[6].fromObject(e.suggestion[t])}}if(e.searchlet){if(!Array.isArray(e.searchlet))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: array expected");for(r.searchlet=[],t=0;t<e.searchlet.length;++t){if("object"!=typeof e.searchlet[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: object expected");r.searchlet[t]=n[7].fromObject(e.searchlet[t])}}if(void 0!==e.requirements&&null!==e.requirements){if("object"!=typeof e.requirements)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.requirements: object expected");r.requirements=n[8].fromObject(e.requirements)}if(void 0!==e.suggestServer&&null!==e.suggestServer){if("object"!=typeof e.suggestServer)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestServer: object expected");r.suggestServer=n[9].fromObject(e.suggestServer)}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.suggestion=[],t.searchlet=[]),r.defaults&&(t.name=null,t.url=null,t.type=r.enums===String?"RESULT_TYPE_KML":0,t.htmlTransformUrl=null,t.kmlTransformUrl=null,t.supplementalUi=null,t.requirements=null,t.suggestServer=null),void 0!==e.name&&null!==e.name&&e.hasOwnProperty("name")&&(t.name=n[0].toObject(e.name,r)),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[1].toObject(e.url,r)),void 0!==e.type&&null!==e.type&&e.hasOwnProperty("type")&&(t.type=r.enums===String?n[2][e.type]:e.type),void 0!==e.htmlTransformUrl&&null!==e.htmlTransformUrl&&e.hasOwnProperty("htmlTransformUrl")&&(t.htmlTransformUrl=n[3].toObject(e.htmlTransformUrl,r)),void 0!==e.kmlTransformUrl&&null!==e.kmlTransformUrl&&e.hasOwnProperty("kmlTransformUrl")&&(t.kmlTransformUrl=n[4].toObject(e.kmlTransformUrl,r)),void 0!==e.supplementalUi&&null!==e.supplementalUi&&e.hasOwnProperty("supplementalUi")&&(t.supplementalUi=n[5].toObject(e.supplementalUi,r)),void 0!==e.suggestion&&null!==e.suggestion&&e.hasOwnProperty("suggestion")){t.suggestion=[];for(var o=0;o<e.suggestion.length;++o)t.suggestion[o]=n[6].toObject(e.suggestion[o],r)}if(void 0!==e.searchlet&&null!==e.searchlet&&e.hasOwnProperty("searchlet"))for(t.searchlet=[],o=0;o<e.searchlet.length;++o)t.searchlet[o]=n[7].toObject(e.searchlet[o],r);return void 0!==e.requirements&&null!==e.requirements&&e.hasOwnProperty("requirements")&&(t.requirements=n[8].toObject(e.requirements,r)),void 0!==e.suggestServer&&null!==e.suggestServer&&e.hasOwnProperty("suggestServer")&&(t.suggestServer=n[9].toObject(e.suggestServer,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.ResultType=((r=Object.create({})).RESULT_TYPE_KML=0,r.RESULT_TYPE_XML=1,r),e.SupplementalUi=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null,e.prototype.label=null,e.prototype.height=160;var n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;case 2:o.label=n[1].decode(e,e.uint32());break;case 3:o.height=e.int32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.url&&null!==e.url&&(r=n[0].verify(e.url))?"url."+r:void 0!==e.label&&null!==e.label&&(r=n[1].verify(e.label))?"label."+r:void 0===e.height||s.isInteger(e.height)?null:"height: integer expected";var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.url: object expected");r.url=n[0].fromObject(e.url)}if(void 0!==e.label&&null!==e.label){if("object"!=typeof e.label)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.label: object expected");r.label=n[1].fromObject(e.label)}return void 0!==e.height&&null!==e.height&&(r.height=0|e.height),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null,t.label=null,t.height=160),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),void 0!==e.label&&null!==e.label&&e.hasOwnProperty("label")&&(t.label=n[1].toObject(e.label,r)),void 0!==e.height&&null!==e.height&&e.hasOwnProperty("height")&&(t.height=e.height),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.SearchletProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null,e.prototype.name=null,e.prototype.requirements=null;var n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.StringIdOrValueProto",2:"keyhole.dbroot.RequirementProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;case 2:o.name=n[1].decode(e,e.uint32());break;case 3:o.requirements=n[2].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.url&&null!==e.url&&(r=n[0].verify(e.url))?"url."+r:void 0!==e.name&&null!==e.name&&(r=n[1].verify(e.name))?"name."+r:void 0!==e.requirements&&null!==e.requirements&&(r=n[2].verify(e.requirements))?"requirements."+r:null;var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.url: object expected");r.url=n[0].fromObject(e.url)}if(void 0!==e.name&&null!==e.name){if("object"!=typeof e.name)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.name: object expected");r.name=n[1].fromObject(e.name)}if(void 0!==e.requirements&&null!==e.requirements){if("object"!=typeof e.requirements)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.requirements: object expected");r.requirements=n[2].fromObject(e.requirements)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null,t.name=null,t.requirements=null),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),void 0!==e.name&&null!==e.name&&e.hasOwnProperty("name")&&(t.name=n[1].toObject(e.name,r)),void 0!==e.requirements&&null!==e.requirements&&e.hasOwnProperty("requirements")&&(t.requirements=n[2].toObject(e.requirements,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e}(),e.OneboxServiceProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.serviceUrl=null,e.prototype.requirements=null;var n={0:"keyhole.dbroot.StringIdOrValueProto",1:"keyhole.dbroot.RequirementProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.serviceUrl=n[0].decode(e,e.uint32());break;case 2:o.requirements=n[1].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0!==e.serviceUrl&&null!==e.serviceUrl&&(r=n[0].verify(e.serviceUrl))?"serviceUrl."+r:void 0!==e.requirements&&null!==e.requirements&&(r=n[1].verify(e.requirements))?"requirements."+r:null;var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;if(void 0!==e.serviceUrl&&null!==e.serviceUrl){if("object"!=typeof e.serviceUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.serviceUrl: object expected");r.serviceUrl=n[0].fromObject(e.serviceUrl)}if(void 0!==e.requirements&&null!==e.requirements){if("object"!=typeof e.requirements)throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.requirements: object expected");r.requirements=n[1].fromObject(e.requirements)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.serviceUrl=null,t.requirements=null),void 0!==e.serviceUrl&&null!==e.serviceUrl&&e.hasOwnProperty("serviceUrl")&&(t.serviceUrl=n[0].toObject(e.serviceUrl,r)),void 0!==e.requirements&&null!==e.requirements&&e.hasOwnProperty("requirements")&&(t.requirements=n[1].toObject(e.requirements,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e}(),e.SearchInfoProto=(r.prototype.defaultUrl="http://maps.google.com/maps",r.prototype.geocodeParam="q",r.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.SearchInfoProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.defaultUrl=e.string();break;case 2:o.geocodeParam=e.string();break;default:e.skipType(7&a)}}return o},r.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.defaultUrl||s.isString(e.defaultUrl)?void 0===e.geocodeParam||s.isString(e.geocodeParam)?null:"geocodeParam: string expected":"defaultUrl: string expected"},r.from=r.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.SearchInfoProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.SearchInfoProto;return void 0!==e.defaultUrl&&null!==e.defaultUrl&&(r.defaultUrl=String(e.defaultUrl)),void 0!==e.geocodeParam&&null!==e.geocodeParam&&(r.geocodeParam=String(e.geocodeParam)),r},r.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.defaultUrl="http://maps.google.com/maps",t.geocodeParam="q"),void 0!==e.defaultUrl&&null!==e.defaultUrl&&e.hasOwnProperty("defaultUrl")&&(t.defaultUrl=e.defaultUrl),void 0!==e.geocodeParam&&null!==e.geocodeParam&&e.hasOwnProperty("geocodeParam")&&(t.geocodeParam=e.geocodeParam),t},r.prototype.toObject=function(e){return this.constructor.toObject(this,e)},r.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},r),e.RockTreeDataProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null;var n={0:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.url&&null!==e.url){var r=n[0].verify(e.url);if(r)return"url."+r}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.RockTreeDataProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.EndSnippetProto.RockTreeDataProto.url: object expected");r.url=n[0].fromObject(e.url)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.FilmstripConfigProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.requirements=null,e.prototype.alleycatUrlTemplate=null,e.prototype.fallbackAlleycatUrlTemplate=null,e.prototype.metadataUrlTemplate=null,e.prototype.thumbnailUrlTemplate=null,e.prototype.kmlUrlTemplate=null,e.prototype.featuredToursUrl=null,e.prototype.enableViewportFallback=!1,e.prototype.viewportFallbackDistance=0,e.prototype.imageryType=s.emptyArray;var n={0:"keyhole.dbroot.RequirementProto",1:"keyhole.dbroot.StringIdOrValueProto",2:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.StringIdOrValueProto",5:"keyhole.dbroot.StringIdOrValueProto",6:"keyhole.dbroot.StringIdOrValueProto",9:"keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.requirements=n[0].decode(e,e.uint32());break;case 2:o.alleycatUrlTemplate=n[1].decode(e,e.uint32());break;case 9:o.fallbackAlleycatUrlTemplate=n[2].decode(e,e.uint32());break;case 3:o.metadataUrlTemplate=n[3].decode(e,e.uint32());break;case 4:o.thumbnailUrlTemplate=n[4].decode(e,e.uint32());break;case 5:o.kmlUrlTemplate=n[5].decode(e,e.uint32());break;case 6:o.featuredToursUrl=n[6].decode(e,e.uint32());break;case 7:o.enableViewportFallback=e.bool();break;case 8:o.viewportFallbackDistance=e.uint32();break;case 10:o.imageryType&&o.imageryType.length||(o.imageryType=[]),o.imageryType.push(n[9].decode(e,e.uint32()));break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.requirements&&null!==e.requirements&&(t=n[0].verify(e.requirements)))return"requirements."+t;if(void 0!==e.alleycatUrlTemplate&&null!==e.alleycatUrlTemplate&&(t=n[1].verify(e.alleycatUrlTemplate)))return"alleycatUrlTemplate."+t;if(void 0!==e.fallbackAlleycatUrlTemplate&&null!==e.fallbackAlleycatUrlTemplate&&(t=n[2].verify(e.fallbackAlleycatUrlTemplate)))return"fallbackAlleycatUrlTemplate."+t;if(void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate&&(t=n[3].verify(e.metadataUrlTemplate)))return"metadataUrlTemplate."+t;if(void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate&&(t=n[4].verify(e.thumbnailUrlTemplate)))return"thumbnailUrlTemplate."+t;if(void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate&&(t=n[5].verify(e.kmlUrlTemplate)))return"kmlUrlTemplate."+t;if(void 0!==e.featuredToursUrl&&null!==e.featuredToursUrl&&(t=n[6].verify(e.featuredToursUrl)))return"featuredToursUrl."+t;if(void 0!==e.enableViewportFallback&&"boolean"!=typeof e.enableViewportFallback)return"enableViewportFallback: boolean expected";if(void 0!==e.viewportFallbackDistance&&!s.isInteger(e.viewportFallbackDistance))return"viewportFallbackDistance: integer expected";if(void 0!==e.imageryType){if(!Array.isArray(e.imageryType))return"imageryType: array expected";for(var r=0;r<e.imageryType.length;++r){var t;if(t=n[9].verify(e.imageryType[r]))return"imageryType."+t}}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;if(void 0!==e.requirements&&null!==e.requirements){if("object"!=typeof e.requirements)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.requirements: object expected");r.requirements=n[0].fromObject(e.requirements)}if(void 0!==e.alleycatUrlTemplate&&null!==e.alleycatUrlTemplate){if("object"!=typeof e.alleycatUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.alleycatUrlTemplate: object expected");r.alleycatUrlTemplate=n[1].fromObject(e.alleycatUrlTemplate)}if(void 0!==e.fallbackAlleycatUrlTemplate&&null!==e.fallbackAlleycatUrlTemplate){if("object"!=typeof e.fallbackAlleycatUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fallbackAlleycatUrlTemplate: object expected");r.fallbackAlleycatUrlTemplate=n[2].fromObject(e.fallbackAlleycatUrlTemplate)}if(void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate){if("object"!=typeof e.metadataUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.metadataUrlTemplate: object expected");r.metadataUrlTemplate=n[3].fromObject(e.metadataUrlTemplate)}if(void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate){if("object"!=typeof e.thumbnailUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.thumbnailUrlTemplate: object expected");r.thumbnailUrlTemplate=n[4].fromObject(e.thumbnailUrlTemplate)}if(void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate){if("object"!=typeof e.kmlUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.kmlUrlTemplate: object expected");r.kmlUrlTemplate=n[5].fromObject(e.kmlUrlTemplate)}if(void 0!==e.featuredToursUrl&&null!==e.featuredToursUrl){if("object"!=typeof e.featuredToursUrl)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.featuredToursUrl: object expected");r.featuredToursUrl=n[6].fromObject(e.featuredToursUrl)}if(void 0!==e.enableViewportFallback&&null!==e.enableViewportFallback&&(r.enableViewportFallback=Boolean(e.enableViewportFallback)),void 0!==e.viewportFallbackDistance&&null!==e.viewportFallbackDistance&&(r.viewportFallbackDistance=e.viewportFallbackDistance>>>0),e.imageryType){if(!Array.isArray(e.imageryType))throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: array expected");r.imageryType=[];for(var t=0;t<e.imageryType.length;++t){if("object"!=typeof e.imageryType[t])throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: object expected");r.imageryType[t]=n[9].fromObject(e.imageryType[t])}}return r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.imageryType=[]),r.defaults&&(t.requirements=null,t.alleycatUrlTemplate=null,t.fallbackAlleycatUrlTemplate=null,t.metadataUrlTemplate=null,t.thumbnailUrlTemplate=null,t.kmlUrlTemplate=null,t.featuredToursUrl=null,t.enableViewportFallback=!1,t.viewportFallbackDistance=0),void 0!==e.requirements&&null!==e.requirements&&e.hasOwnProperty("requirements")&&(t.requirements=n[0].toObject(e.requirements,r)),void 0!==e.alleycatUrlTemplate&&null!==e.alleycatUrlTemplate&&e.hasOwnProperty("alleycatUrlTemplate")&&(t.alleycatUrlTemplate=n[1].toObject(e.alleycatUrlTemplate,r)),void 0!==e.fallbackAlleycatUrlTemplate&&null!==e.fallbackAlleycatUrlTemplate&&e.hasOwnProperty("fallbackAlleycatUrlTemplate")&&(t.fallbackAlleycatUrlTemplate=n[2].toObject(e.fallbackAlleycatUrlTemplate,r)),void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate&&e.hasOwnProperty("metadataUrlTemplate")&&(t.metadataUrlTemplate=n[3].toObject(e.metadataUrlTemplate,r)),void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate&&e.hasOwnProperty("thumbnailUrlTemplate")&&(t.thumbnailUrlTemplate=n[4].toObject(e.thumbnailUrlTemplate,r)),void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate&&e.hasOwnProperty("kmlUrlTemplate")&&(t.kmlUrlTemplate=n[5].toObject(e.kmlUrlTemplate,r)),void 0!==e.featuredToursUrl&&null!==e.featuredToursUrl&&e.hasOwnProperty("featuredToursUrl")&&(t.featuredToursUrl=n[6].toObject(e.featuredToursUrl,r)),void 0!==e.enableViewportFallback&&null!==e.enableViewportFallback&&e.hasOwnProperty("enableViewportFallback")&&(t.enableViewportFallback=e.enableViewportFallback),void 0!==e.viewportFallbackDistance&&null!==e.viewportFallbackDistance&&e.hasOwnProperty("viewportFallbackDistance")&&(t.viewportFallbackDistance=e.viewportFallbackDistance),void 0!==e.imageryType&&null!==e.imageryType&&e.hasOwnProperty("imageryType")){t.imageryType=[];for(var o=0;o<e.imageryType.length;++o)t.imageryType[o]=n[9].toObject(e.imageryType[o],r)}return t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.AlleycatImageryTypeProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.imageryTypeId=0,e.prototype.imageryTypeLabel="",e.prototype.metadataUrlTemplate=null,e.prototype.thumbnailUrlTemplate=null,e.prototype.kmlUrlTemplate=null;var n={2:"keyhole.dbroot.StringIdOrValueProto",3:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.imageryTypeId=e.int32();break;case 2:o.imageryTypeLabel=e.string();break;case 3:o.metadataUrlTemplate=n[2].decode(e,e.uint32());break;case 4:o.thumbnailUrlTemplate=n[3].decode(e,e.uint32());break;case 5:o.kmlUrlTemplate=n[4].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){return"object"!=typeof e||null===e?"object expected":void 0===e.imageryTypeId||s.isInteger(e.imageryTypeId)?void 0===e.imageryTypeLabel||s.isString(e.imageryTypeLabel)?void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate&&(r=n[2].verify(e.metadataUrlTemplate))?"metadataUrlTemplate."+r:void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate&&(r=n[3].verify(e.thumbnailUrlTemplate))?"thumbnailUrlTemplate."+r:void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate&&(r=n[4].verify(e.kmlUrlTemplate))?"kmlUrlTemplate."+r:null:"imageryTypeLabel: string expected":"imageryTypeId: integer expected";var r},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;if(void 0!==e.imageryTypeId&&null!==e.imageryTypeId&&(r.imageryTypeId=0|e.imageryTypeId),void 0!==e.imageryTypeLabel&&null!==e.imageryTypeLabel&&(r.imageryTypeLabel=String(e.imageryTypeLabel)),void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate){if("object"!=typeof e.metadataUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.metadataUrlTemplate: object expected");r.metadataUrlTemplate=n[2].fromObject(e.metadataUrlTemplate)}if(void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate){if("object"!=typeof e.thumbnailUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.thumbnailUrlTemplate: object expected");r.thumbnailUrlTemplate=n[3].fromObject(e.thumbnailUrlTemplate)}if(void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate){if("object"!=typeof e.kmlUrlTemplate)throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.kmlUrlTemplate: object expected");r.kmlUrlTemplate=n[4].fromObject(e.kmlUrlTemplate)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.imageryTypeId=0,t.imageryTypeLabel="",t.metadataUrlTemplate=null,t.thumbnailUrlTemplate=null,t.kmlUrlTemplate=null),void 0!==e.imageryTypeId&&null!==e.imageryTypeId&&e.hasOwnProperty("imageryTypeId")&&(t.imageryTypeId=e.imageryTypeId),void 0!==e.imageryTypeLabel&&null!==e.imageryTypeLabel&&e.hasOwnProperty("imageryTypeLabel")&&(t.imageryTypeLabel=e.imageryTypeLabel),void 0!==e.metadataUrlTemplate&&null!==e.metadataUrlTemplate&&e.hasOwnProperty("metadataUrlTemplate")&&(t.metadataUrlTemplate=n[2].toObject(e.metadataUrlTemplate,r)),void 0!==e.thumbnailUrlTemplate&&null!==e.thumbnailUrlTemplate&&e.hasOwnProperty("thumbnailUrlTemplate")&&(t.thumbnailUrlTemplate=n[3].toObject(e.thumbnailUrlTemplate,r)),void 0!==e.kmlUrlTemplate&&null!==e.kmlUrlTemplate&&e.hasOwnProperty("kmlUrlTemplate")&&(t.kmlUrlTemplate=n[4].toObject(e.kmlUrlTemplate,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e}(),e.StarDataProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url=null;var n={0:"keyhole.dbroot.StringIdOrValueProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EndSnippetProto.StarDataProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.url=n[0].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.url&&null!==e.url){var r=n[0].verify(e.url);if(r)return"url."+r}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EndSnippetProto.StarDataProto)return e;var r=new c.keyhole.dbroot.EndSnippetProto.StarDataProto;if(void 0!==e.url&&null!==e.url){if("object"!=typeof e.url)throw TypeError(".keyhole.dbroot.EndSnippetProto.StarDataProto.url: object expected");r.url=n[0].fromObject(e.url)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url=null),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=n[0].toObject(e.url,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e}(),e.DbRootRefProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.url="",e.prototype.isCritical=!1,e.prototype.requirements=null;var n={2:"keyhole.dbroot.RequirementProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.DbRootRefProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 2:o.url=e.string();break;case 1:o.isCritical=e.bool();break;case 3:o.requirements=n[2].decode(e,e.uint32());break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(!s.isString(e.url))return"url: string expected";if(void 0!==e.isCritical&&"boolean"!=typeof e.isCritical)return"isCritical: boolean expected";if(void 0!==e.requirements&&null!==e.requirements){var r=n[2].verify(e.requirements);if(r)return"requirements."+r}return null},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.DbRootRefProto)return e;var r=new c.keyhole.dbroot.DbRootRefProto;if(void 0!==e.url&&null!==e.url&&(r.url=String(e.url)),void 0!==e.isCritical&&null!==e.isCritical&&(r.isCritical=Boolean(e.isCritical)),void 0!==e.requirements&&null!==e.requirements){if("object"!=typeof e.requirements)throw TypeError(".keyhole.dbroot.DbRootRefProto.requirements: object expected");r.requirements=n[2].fromObject(e.requirements)}return r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.url="",t.isCritical=!1,t.requirements=null),void 0!==e.url&&null!==e.url&&e.hasOwnProperty("url")&&(t.url=e.url),void 0!==e.isCritical&&null!==e.isCritical&&e.hasOwnProperty("isCritical")&&(t.isCritical=e.isCritical),void 0!==e.requirements&&null!==e.requirements&&e.hasOwnProperty("requirements")&&(t.requirements=n[2].toObject(e.requirements,r)),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.DatabaseVersionProto=(O.prototype.quadtreeVersion=0,O.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.DatabaseVersionProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.quadtreeVersion=e.uint32();break;default:e.skipType(7&a)}}return o},O.verify=function(e){return"object"!=typeof e||null===e?"object expected":s.isInteger(e.quadtreeVersion)?null:"quadtreeVersion: integer expected"},O.from=O.fromObject=function(e){if(e instanceof c.keyhole.dbroot.DatabaseVersionProto)return e;var r=new c.keyhole.dbroot.DatabaseVersionProto;return void 0!==e.quadtreeVersion&&null!==e.quadtreeVersion&&(r.quadtreeVersion=e.quadtreeVersion>>>0),r},O.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.quadtreeVersion=0),void 0!==e.quadtreeVersion&&null!==e.quadtreeVersion&&e.hasOwnProperty("quadtreeVersion")&&(t.quadtreeVersion=e.quadtreeVersion),t},O.prototype.toObject=function(e){return this.constructor.toObject(this,e)},O.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},O),e.DbRootProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.databaseName=null,e.prototype.imageryPresent=!0,e.prototype.protoImagery=!1,e.prototype.terrainPresent=!1,e.prototype.providerInfo=s.emptyArray,e.prototype.nestedFeature=s.emptyArray,e.prototype.styleAttribute=s.emptyArray,e.prototype.styleMap=s.emptyArray,e.prototype.endSnippet=null,e.prototype.translationEntry=s.emptyArray,e.prototype.language="en",e.prototype.version=5,e.prototype.dbrootReference=s.emptyArray,e.prototype.databaseVersion=null,e.prototype.refreshTimeout=0;var n={0:"keyhole.dbroot.StringIdOrValueProto",4:"keyhole.dbroot.ProviderInfoProto",5:"keyhole.dbroot.NestedFeatureProto",6:"keyhole.dbroot.StyleAttributeProto",7:"keyhole.dbroot.StyleMapProto",8:"keyhole.dbroot.EndSnippetProto",9:"keyhole.dbroot.StringEntryProto",12:"keyhole.dbroot.DbRootRefProto",13:"keyhole.dbroot.DatabaseVersionProto"};return p.push(n),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.DbRootProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 15:o.databaseName=n[0].decode(e,e.uint32());break;case 1:o.imageryPresent=e.bool();break;case 14:o.protoImagery=e.bool();break;case 2:o.terrainPresent=e.bool();break;case 3:o.providerInfo&&o.providerInfo.length||(o.providerInfo=[]),o.providerInfo.push(n[4].decode(e,e.uint32()));break;case 4:o.nestedFeature&&o.nestedFeature.length||(o.nestedFeature=[]),o.nestedFeature.push(n[5].decode(e,e.uint32()));break;case 5:o.styleAttribute&&o.styleAttribute.length||(o.styleAttribute=[]),o.styleAttribute.push(n[6].decode(e,e.uint32()));break;case 6:o.styleMap&&o.styleMap.length||(o.styleMap=[]),o.styleMap.push(n[7].decode(e,e.uint32()));break;case 7:o.endSnippet=n[8].decode(e,e.uint32());break;case 8:o.translationEntry&&o.translationEntry.length||(o.translationEntry=[]),o.translationEntry.push(n[9].decode(e,e.uint32()));break;case 9:o.language=e.string();break;case 10:o.version=e.int32();break;case 11:o.dbrootReference&&o.dbrootReference.length||(o.dbrootReference=[]),o.dbrootReference.push(n[12].decode(e,e.uint32()));break;case 13:o.databaseVersion=n[13].decode(e,e.uint32());break;case 16:o.refreshTimeout=e.int32();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.databaseName&&null!==e.databaseName&&(t=n[0].verify(e.databaseName)))return"databaseName."+t;if(void 0!==e.imageryPresent&&"boolean"!=typeof e.imageryPresent)return"imageryPresent: boolean expected";if(void 0!==e.protoImagery&&"boolean"!=typeof e.protoImagery)return"protoImagery: boolean expected";if(void 0!==e.terrainPresent&&"boolean"!=typeof e.terrainPresent)return"terrainPresent: boolean expected";if(void 0!==e.providerInfo){if(!Array.isArray(e.providerInfo))return"providerInfo: array expected";for(var r=0;r<e.providerInfo.length;++r)if(t=n[4].verify(e.providerInfo[r]))return"providerInfo."+t}if(void 0!==e.nestedFeature){if(!Array.isArray(e.nestedFeature))return"nestedFeature: array expected";for(r=0;r<e.nestedFeature.length;++r)if(t=n[5].verify(e.nestedFeature[r]))return"nestedFeature."+t}if(void 0!==e.styleAttribute){if(!Array.isArray(e.styleAttribute))return"styleAttribute: array expected";for(r=0;r<e.styleAttribute.length;++r)if(t=n[6].verify(e.styleAttribute[r]))return"styleAttribute."+t}if(void 0!==e.styleMap){if(!Array.isArray(e.styleMap))return"styleMap: array expected";for(r=0;r<e.styleMap.length;++r)if(t=n[7].verify(e.styleMap[r]))return"styleMap."+t}if(void 0!==e.endSnippet&&null!==e.endSnippet&&(t=n[8].verify(e.endSnippet)))return"endSnippet."+t;if(void 0!==e.translationEntry){if(!Array.isArray(e.translationEntry))return"translationEntry: array expected";for(r=0;r<e.translationEntry.length;++r)if(t=n[9].verify(e.translationEntry[r]))return"translationEntry."+t}if(void 0!==e.language&&!s.isString(e.language))return"language: string expected";if(void 0!==e.version&&!s.isInteger(e.version))return"version: integer expected";if(void 0!==e.dbrootReference){if(!Array.isArray(e.dbrootReference))return"dbrootReference: array expected";for(r=0;r<e.dbrootReference.length;++r){var t;if(t=n[12].verify(e.dbrootReference[r]))return"dbrootReference."+t}}return void 0!==e.databaseVersion&&null!==e.databaseVersion&&(t=n[13].verify(e.databaseVersion))?"databaseVersion."+t:void 0===e.refreshTimeout||s.isInteger(e.refreshTimeout)?null:"refreshTimeout: integer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.DbRootProto)return e;var r=new c.keyhole.dbroot.DbRootProto;if(void 0!==e.databaseName&&null!==e.databaseName){if("object"!=typeof e.databaseName)throw TypeError(".keyhole.dbroot.DbRootProto.databaseName: object expected");r.databaseName=n[0].fromObject(e.databaseName)}if(void 0!==e.imageryPresent&&null!==e.imageryPresent&&(r.imageryPresent=Boolean(e.imageryPresent)),void 0!==e.protoImagery&&null!==e.protoImagery&&(r.protoImagery=Boolean(e.protoImagery)),void 0!==e.terrainPresent&&null!==e.terrainPresent&&(r.terrainPresent=Boolean(e.terrainPresent)),e.providerInfo){if(!Array.isArray(e.providerInfo))throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: array expected");r.providerInfo=[];for(var t=0;t<e.providerInfo.length;++t){if("object"!=typeof e.providerInfo[t])throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: object expected");r.providerInfo[t]=n[4].fromObject(e.providerInfo[t])}}if(e.nestedFeature){if(!Array.isArray(e.nestedFeature))throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: array expected");for(r.nestedFeature=[],t=0;t<e.nestedFeature.length;++t){if("object"!=typeof e.nestedFeature[t])throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: object expected");r.nestedFeature[t]=n[5].fromObject(e.nestedFeature[t])}}if(e.styleAttribute){if(!Array.isArray(e.styleAttribute))throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: array expected");for(r.styleAttribute=[],t=0;t<e.styleAttribute.length;++t){if("object"!=typeof e.styleAttribute[t])throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: object expected");r.styleAttribute[t]=n[6].fromObject(e.styleAttribute[t])}}if(e.styleMap){if(!Array.isArray(e.styleMap))throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: array expected");for(r.styleMap=[],t=0;t<e.styleMap.length;++t){if("object"!=typeof e.styleMap[t])throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: object expected");r.styleMap[t]=n[7].fromObject(e.styleMap[t])}}if(void 0!==e.endSnippet&&null!==e.endSnippet){if("object"!=typeof e.endSnippet)throw TypeError(".keyhole.dbroot.DbRootProto.endSnippet: object expected");r.endSnippet=n[8].fromObject(e.endSnippet)}if(e.translationEntry){if(!Array.isArray(e.translationEntry))throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: array expected");for(r.translationEntry=[],t=0;t<e.translationEntry.length;++t){if("object"!=typeof e.translationEntry[t])throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: object expected");r.translationEntry[t]=n[9].fromObject(e.translationEntry[t])}}if(void 0!==e.language&&null!==e.language&&(r.language=String(e.language)),void 0!==e.version&&null!==e.version&&(r.version=0|e.version),e.dbrootReference){if(!Array.isArray(e.dbrootReference))throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: array expected");for(r.dbrootReference=[],t=0;t<e.dbrootReference.length;++t){if("object"!=typeof e.dbrootReference[t])throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: object expected");r.dbrootReference[t]=n[12].fromObject(e.dbrootReference[t])}}if(void 0!==e.databaseVersion&&null!==e.databaseVersion){if("object"!=typeof e.databaseVersion)throw TypeError(".keyhole.dbroot.DbRootProto.databaseVersion: object expected");r.databaseVersion=n[13].fromObject(e.databaseVersion)}return void 0!==e.refreshTimeout&&null!==e.refreshTimeout&&(r.refreshTimeout=0|e.refreshTimeout),r},e.toObject=function(e,r){var t={};if(((r=r||{}).arrays||r.defaults)&&(t.providerInfo=[],t.nestedFeature=[],t.styleAttribute=[],t.styleMap=[],t.translationEntry=[],t.dbrootReference=[]),r.defaults&&(t.databaseName=null,t.imageryPresent=!0,t.protoImagery=!1,t.terrainPresent=!1,t.endSnippet=null,t.language="en",t.version=5,t.databaseVersion=null,t.refreshTimeout=0),void 0!==e.databaseName&&null!==e.databaseName&&e.hasOwnProperty("databaseName")&&(t.databaseName=n[0].toObject(e.databaseName,r)),void 0!==e.imageryPresent&&null!==e.imageryPresent&&e.hasOwnProperty("imageryPresent")&&(t.imageryPresent=e.imageryPresent),void 0!==e.protoImagery&&null!==e.protoImagery&&e.hasOwnProperty("protoImagery")&&(t.protoImagery=e.protoImagery),void 0!==e.terrainPresent&&null!==e.terrainPresent&&e.hasOwnProperty("terrainPresent")&&(t.terrainPresent=e.terrainPresent),void 0!==e.providerInfo&&null!==e.providerInfo&&e.hasOwnProperty("providerInfo")){t.providerInfo=[];for(var o=0;o<e.providerInfo.length;++o)t.providerInfo[o]=n[4].toObject(e.providerInfo[o],r)}if(void 0!==e.nestedFeature&&null!==e.nestedFeature&&e.hasOwnProperty("nestedFeature"))for(t.nestedFeature=[],o=0;o<e.nestedFeature.length;++o)t.nestedFeature[o]=n[5].toObject(e.nestedFeature[o],r);if(void 0!==e.styleAttribute&&null!==e.styleAttribute&&e.hasOwnProperty("styleAttribute"))for(t.styleAttribute=[],o=0;o<e.styleAttribute.length;++o)t.styleAttribute[o]=n[6].toObject(e.styleAttribute[o],r);if(void 0!==e.styleMap&&null!==e.styleMap&&e.hasOwnProperty("styleMap"))for(t.styleMap=[],o=0;o<e.styleMap.length;++o)t.styleMap[o]=n[7].toObject(e.styleMap[o],r);if(void 0!==e.endSnippet&&null!==e.endSnippet&&e.hasOwnProperty("endSnippet")&&(t.endSnippet=n[8].toObject(e.endSnippet,r)),void 0!==e.translationEntry&&null!==e.translationEntry&&e.hasOwnProperty("translationEntry"))for(t.translationEntry=[],o=0;o<e.translationEntry.length;++o)t.translationEntry[o]=n[9].toObject(e.translationEntry[o],r);if(void 0!==e.language&&null!==e.language&&e.hasOwnProperty("language")&&(t.language=e.language),void 0!==e.version&&null!==e.version&&e.hasOwnProperty("version")&&(t.version=e.version),void 0!==e.dbrootReference&&null!==e.dbrootReference&&e.hasOwnProperty("dbrootReference"))for(t.dbrootReference=[],o=0;o<e.dbrootReference.length;++o)t.dbrootReference[o]=n[12].toObject(e.dbrootReference[o],r);return void 0!==e.databaseVersion&&null!==e.databaseVersion&&e.hasOwnProperty("databaseVersion")&&(t.databaseVersion=n[13].toObject(e.databaseVersion,r)),void 0!==e.refreshTimeout&&null!==e.refreshTimeout&&e.hasOwnProperty("refreshTimeout")&&(t.refreshTimeout=e.refreshTimeout),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e}(),e.EncryptedDbRootProto=function(){function e(e){if(e)for(var r=Object.keys(e),t=0;t<r.length;++t)this[r[t]]=e[r[t]]}e.prototype.encryptionType=0,e.prototype.encryptionData=s.newBuffer([]),e.prototype.dbrootData=s.newBuffer([]);var r,o={0:"keyhole.dbroot.EncryptedDbRootProto.EncryptionType"};return p.push(o),e.decode=function(e,r){e instanceof l||(e=l.create(e));for(var t=void 0===r?e.len:e.pos+r,o=new c.keyhole.dbroot.EncryptedDbRootProto;e.pos<t;){var a=e.uint32();switch(a>>>3){case 1:o.encryptionType=e.uint32();break;case 2:o.encryptionData=e.bytes();break;case 3:o.dbrootData=e.bytes();break;default:e.skipType(7&a)}}return o},e.verify=function(e){if("object"!=typeof e||null===e)return"object expected";if(void 0!==e.encryptionType)switch(e.encryptionType){default:return"encryptionType: enum value expected";case 0:}return void 0===e.encryptionData||e.encryptionData&&"number"==typeof e.encryptionData.length||s.isString(e.encryptionData)?void 0===e.dbrootData||e.dbrootData&&"number"==typeof e.dbrootData.length||s.isString(e.dbrootData)?null:"dbrootData: buffer expected":"encryptionData: buffer expected"},e.from=e.fromObject=function(e){if(e instanceof c.keyhole.dbroot.EncryptedDbRootProto)return e;var r=new c.keyhole.dbroot.EncryptedDbRootProto;switch(e.encryptionType){case"ENCRYPTION_XOR":case 0:r.encryptionType=0}return void 0!==e.encryptionData&&null!==e.encryptionData&&("string"==typeof e.encryptionData?s.base64.decode(e.encryptionData,r.encryptionData=s.newBuffer(s.base64.length(e.encryptionData)),0):e.encryptionData.length&&(r.encryptionData=e.encryptionData)),void 0!==e.dbrootData&&null!==e.dbrootData&&("string"==typeof e.dbrootData?s.base64.decode(e.dbrootData,r.dbrootData=s.newBuffer(s.base64.length(e.dbrootData)),0):e.dbrootData.length&&(r.dbrootData=e.dbrootData)),r},e.toObject=function(e,r){var t={};return(r=r||{}).defaults&&(t.encryptionType=r.enums===String?"ENCRYPTION_XOR":0,t.encryptionData=r.bytes===String?"":[],t.dbrootData=r.bytes===String?"":[]),void 0!==e.encryptionType&&null!==e.encryptionType&&e.hasOwnProperty("encryptionType")&&(t.encryptionType=r.enums===String?o[0][e.encryptionType]:e.encryptionType),void 0!==e.encryptionData&&null!==e.encryptionData&&e.hasOwnProperty("encryptionData")&&(t.encryptionData=r.bytes===String?s.base64.encode(e.encryptionData,0,e.encryptionData.length):r.bytes===Array?Array.prototype.slice.call(e.encryptionData):e.encryptionData),void 0!==e.dbrootData&&null!==e.dbrootData&&e.hasOwnProperty("dbrootData")&&(t.dbrootData=r.bytes===String?s.base64.encode(e.dbrootData,0,e.dbrootData.length):r.bytes===Array?Array.prototype.slice.call(e.dbrootData):e.dbrootData),t},e.prototype.toObject=function(e){return this.constructor.toObject(this,e)},e.prototype.toJSON=function(){return this.constructor.toObject(this,i.util.toJSONOptions)},e.EncryptionType=((r=Object.create({})).ENCRYPTION_XOR=0,r),e}(),e),r),s.lazyResolve(c,p),c.keyhole.dbroot}; \ No newline at end of file +(()=>{window.cesiumGoogleEarthDbRootParser=function(d){"use strict";var f=d.Reader,u=d.util,n=d.roots.default||(d.roots.default={});return n.keyhole=function(){var b={};return b.dbroot=function(){var c={};return c.StringEntryProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.stringValue="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringEntryProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.stringValue=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("stringId"))throw u.ProtocolError("missing required 'stringId'",{instance:o});if(!o.hasOwnProperty("stringValue"))throw u.ProtocolError("missing required 'stringValue'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.stringId)?u.isString(r.stringValue)?null:"stringValue: string expected":"stringId: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringEntryProto)return r;var t=new n.keyhole.dbroot.StringEntryProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.stringValue!=null&&(t.stringValue=String(r.stringValue)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.stringValue=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.stringValue!=null&&r.hasOwnProperty("stringValue")&&(e.stringValue=r.stringValue),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringEntryProto"},i}(),c.StringIdOrValueProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.stringId=0,i.prototype.value="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StringIdOrValueProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.stringId=r.fixed32();break}case 2:{o.value=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.stringId!=null&&r.hasOwnProperty("stringId")&&!u.isInteger(r.stringId)?"stringId: integer expected":r.value!=null&&r.hasOwnProperty("value")&&!u.isString(r.value)?"value: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StringIdOrValueProto)return r;var t=new n.keyhole.dbroot.StringIdOrValueProto;return r.stringId!=null&&(t.stringId=r.stringId>>>0),r.value!=null&&(t.value=String(r.value)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.stringId=0,e.value=""),r.stringId!=null&&r.hasOwnProperty("stringId")&&(e.stringId=r.stringId),r.value!=null&&r.hasOwnProperty("value")&&(e.value=r.value),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StringIdOrValueProto"},i}(),c.PlanetModelProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.radius=6378.137,i.prototype.flattening=.00335281066474748,i.prototype.elevationBias=0,i.prototype.negativeAltitudeExponentBias=0,i.prototype.compressedNegativeAltitudeThreshold=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetModelProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.radius=r.double();break}case 2:{o.flattening=r.double();break}case 4:{o.elevationBias=r.double();break}case 5:{o.negativeAltitudeExponentBias=r.int32();break}case 6:{o.compressedNegativeAltitudeThreshold=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.radius!=null&&r.hasOwnProperty("radius")&&typeof r.radius!="number"?"radius: number expected":r.flattening!=null&&r.hasOwnProperty("flattening")&&typeof r.flattening!="number"?"flattening: number expected":r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&typeof r.elevationBias!="number"?"elevationBias: number expected":r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&!u.isInteger(r.negativeAltitudeExponentBias)?"negativeAltitudeExponentBias: integer expected":r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&typeof r.compressedNegativeAltitudeThreshold!="number"?"compressedNegativeAltitudeThreshold: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetModelProto)return r;var t=new n.keyhole.dbroot.PlanetModelProto;return r.radius!=null&&(t.radius=Number(r.radius)),r.flattening!=null&&(t.flattening=Number(r.flattening)),r.elevationBias!=null&&(t.elevationBias=Number(r.elevationBias)),r.negativeAltitudeExponentBias!=null&&(t.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias|0),r.compressedNegativeAltitudeThreshold!=null&&(t.compressedNegativeAltitudeThreshold=Number(r.compressedNegativeAltitudeThreshold)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.radius=6378.137,e.flattening=.00335281066474748,e.elevationBias=0,e.negativeAltitudeExponentBias=0,e.compressedNegativeAltitudeThreshold=0),r.radius!=null&&r.hasOwnProperty("radius")&&(e.radius=t.json&&!isFinite(r.radius)?String(r.radius):r.radius),r.flattening!=null&&r.hasOwnProperty("flattening")&&(e.flattening=t.json&&!isFinite(r.flattening)?String(r.flattening):r.flattening),r.elevationBias!=null&&r.hasOwnProperty("elevationBias")&&(e.elevationBias=t.json&&!isFinite(r.elevationBias)?String(r.elevationBias):r.elevationBias),r.negativeAltitudeExponentBias!=null&&r.hasOwnProperty("negativeAltitudeExponentBias")&&(e.negativeAltitudeExponentBias=r.negativeAltitudeExponentBias),r.compressedNegativeAltitudeThreshold!=null&&r.hasOwnProperty("compressedNegativeAltitudeThreshold")&&(e.compressedNegativeAltitudeThreshold=t.json&&!isFinite(r.compressedNegativeAltitudeThreshold)?String(r.compressedNegativeAltitudeThreshold):r.compressedNegativeAltitudeThreshold),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetModelProto"},i}(),c.ProviderInfoProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.providerId=0,i.prototype.copyrightString=null,i.prototype.verticalPixelOffset=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ProviderInfoProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.providerId=r.int32();break}case 2:{o.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.verticalPixelOffset=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("providerId"))throw u.ProtocolError("missing required 'providerId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.providerId))return"providerId: integer expected";if(r.copyrightString!=null&&r.hasOwnProperty("copyrightString")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.copyrightString);if(t)return"copyrightString."+t}return r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&!u.isInteger(r.verticalPixelOffset)?"verticalPixelOffset: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ProviderInfoProto)return r;var t=new n.keyhole.dbroot.ProviderInfoProto;if(r.providerId!=null&&(t.providerId=r.providerId|0),r.copyrightString!=null){if(typeof r.copyrightString!="object")throw TypeError(".keyhole.dbroot.ProviderInfoProto.copyrightString: object expected");t.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.copyrightString)}return r.verticalPixelOffset!=null&&(t.verticalPixelOffset=r.verticalPixelOffset|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.providerId=0,e.copyrightString=null,e.verticalPixelOffset=-1),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.copyrightString!=null&&r.hasOwnProperty("copyrightString")&&(e.copyrightString=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.copyrightString,t)),r.verticalPixelOffset!=null&&r.hasOwnProperty("verticalPixelOffset")&&(e.verticalPixelOffset=r.verticalPixelOffset),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ProviderInfoProto"},i}(),c.PopUpProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isBalloonStyle=!1,i.prototype.text=null,i.prototype.backgroundColorAbgr=4294967295,i.prototype.textColorAbgr=4278190080,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PopUpProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isBalloonStyle=r.bool();break}case 2:{o.text=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.backgroundColorAbgr=r.fixed32();break}case 4:{o.textColorAbgr=r.fixed32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&typeof r.isBalloonStyle!="boolean")return"isBalloonStyle: boolean expected";if(r.text!=null&&r.hasOwnProperty("text")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.text);if(t)return"text."+t}return r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&!u.isInteger(r.backgroundColorAbgr)?"backgroundColorAbgr: integer expected":r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&!u.isInteger(r.textColorAbgr)?"textColorAbgr: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PopUpProto)return r;var t=new n.keyhole.dbroot.PopUpProto;if(r.isBalloonStyle!=null&&(t.isBalloonStyle=!!r.isBalloonStyle),r.text!=null){if(typeof r.text!="object")throw TypeError(".keyhole.dbroot.PopUpProto.text: object expected");t.text=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.text)}return r.backgroundColorAbgr!=null&&(t.backgroundColorAbgr=r.backgroundColorAbgr>>>0),r.textColorAbgr!=null&&(t.textColorAbgr=r.textColorAbgr>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isBalloonStyle=!1,e.text=null,e.backgroundColorAbgr=4294967295,e.textColorAbgr=4278190080),r.isBalloonStyle!=null&&r.hasOwnProperty("isBalloonStyle")&&(e.isBalloonStyle=r.isBalloonStyle),r.text!=null&&r.hasOwnProperty("text")&&(e.text=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.text,t)),r.backgroundColorAbgr!=null&&r.hasOwnProperty("backgroundColorAbgr")&&(e.backgroundColorAbgr=r.backgroundColorAbgr),r.textColorAbgr!=null&&r.hasOwnProperty("textColorAbgr")&&(e.textColorAbgr=r.textColorAbgr),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PopUpProto"},i}(),c.StyleAttributeProto=function(){function i(l){if(this.drawFlag=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleId="",i.prototype.providerId=0,i.prototype.polyColorAbgr=4294967295,i.prototype.lineColorAbgr=4294967295,i.prototype.lineWidth=1,i.prototype.labelColorAbgr=4294967295,i.prototype.labelScale=1,i.prototype.placemarkIconColorAbgr=4294967295,i.prototype.placemarkIconScale=1,i.prototype.placemarkIconPath=null,i.prototype.placemarkIconX=0,i.prototype.placemarkIconY=0,i.prototype.placemarkIconWidth=32,i.prototype.placemarkIconHeight=32,i.prototype.popUp=null,i.prototype.drawFlag=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleAttributeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleId=r.string();break}case 3:{o.providerId=r.int32();break}case 4:{o.polyColorAbgr=r.fixed32();break}case 5:{o.lineColorAbgr=r.fixed32();break}case 6:{o.lineWidth=r.float();break}case 7:{o.labelColorAbgr=r.fixed32();break}case 8:{o.labelScale=r.float();break}case 9:{o.placemarkIconColorAbgr=r.fixed32();break}case 10:{o.placemarkIconScale=r.float();break}case 11:{o.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.placemarkIconX=r.int32();break}case 13:{o.placemarkIconY=r.int32();break}case 14:{o.placemarkIconWidth=r.int32();break}case 15:{o.placemarkIconHeight=r.int32();break}case 16:{o.popUp=n.keyhole.dbroot.PopUpProto.decode(r,r.uint32());break}case 17:{o.drawFlag&&o.drawFlag.length||(o.drawFlag=[]),o.drawFlag.push(n.keyhole.dbroot.DrawFlagProto.decode(r,r.uint32()));break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleId"))throw u.ProtocolError("missing required 'styleId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.styleId))return"styleId: string expected";if(r.providerId!=null&&r.hasOwnProperty("providerId")&&!u.isInteger(r.providerId))return"providerId: integer expected";if(r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&!u.isInteger(r.polyColorAbgr))return"polyColorAbgr: integer expected";if(r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&!u.isInteger(r.lineColorAbgr))return"lineColorAbgr: integer expected";if(r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&typeof r.lineWidth!="number")return"lineWidth: number expected";if(r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&!u.isInteger(r.labelColorAbgr))return"labelColorAbgr: integer expected";if(r.labelScale!=null&&r.hasOwnProperty("labelScale")&&typeof r.labelScale!="number")return"labelScale: number expected";if(r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&!u.isInteger(r.placemarkIconColorAbgr))return"placemarkIconColorAbgr: integer expected";if(r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&typeof r.placemarkIconScale!="number")return"placemarkIconScale: number expected";if(r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.placemarkIconPath);if(t)return"placemarkIconPath."+t}if(r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&!u.isInteger(r.placemarkIconX))return"placemarkIconX: integer expected";if(r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&!u.isInteger(r.placemarkIconY))return"placemarkIconY: integer expected";if(r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&!u.isInteger(r.placemarkIconWidth))return"placemarkIconWidth: integer expected";if(r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&!u.isInteger(r.placemarkIconHeight))return"placemarkIconHeight: integer expected";if(r.popUp!=null&&r.hasOwnProperty("popUp")){var t=n.keyhole.dbroot.PopUpProto.verify(r.popUp);if(t)return"popUp."+t}if(r.drawFlag!=null&&r.hasOwnProperty("drawFlag")){if(!Array.isArray(r.drawFlag))return"drawFlag: array expected";for(var e=0;e<r.drawFlag.length;++e){var t=n.keyhole.dbroot.DrawFlagProto.verify(r.drawFlag[e]);if(t)return"drawFlag."+t}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleAttributeProto)return r;var t=new n.keyhole.dbroot.StyleAttributeProto;if(r.styleId!=null&&(t.styleId=String(r.styleId)),r.providerId!=null&&(t.providerId=r.providerId|0),r.polyColorAbgr!=null&&(t.polyColorAbgr=r.polyColorAbgr>>>0),r.lineColorAbgr!=null&&(t.lineColorAbgr=r.lineColorAbgr>>>0),r.lineWidth!=null&&(t.lineWidth=Number(r.lineWidth)),r.labelColorAbgr!=null&&(t.labelColorAbgr=r.labelColorAbgr>>>0),r.labelScale!=null&&(t.labelScale=Number(r.labelScale)),r.placemarkIconColorAbgr!=null&&(t.placemarkIconColorAbgr=r.placemarkIconColorAbgr>>>0),r.placemarkIconScale!=null&&(t.placemarkIconScale=Number(r.placemarkIconScale)),r.placemarkIconPath!=null){if(typeof r.placemarkIconPath!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.placemarkIconPath: object expected");t.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.placemarkIconPath)}if(r.placemarkIconX!=null&&(t.placemarkIconX=r.placemarkIconX|0),r.placemarkIconY!=null&&(t.placemarkIconY=r.placemarkIconY|0),r.placemarkIconWidth!=null&&(t.placemarkIconWidth=r.placemarkIconWidth|0),r.placemarkIconHeight!=null&&(t.placemarkIconHeight=r.placemarkIconHeight|0),r.popUp!=null){if(typeof r.popUp!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.popUp: object expected");t.popUp=n.keyhole.dbroot.PopUpProto.fromObject(r.popUp)}if(r.drawFlag){if(!Array.isArray(r.drawFlag))throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: array expected");t.drawFlag=[];for(var e=0;e<r.drawFlag.length;++e){if(typeof r.drawFlag[e]!="object")throw TypeError(".keyhole.dbroot.StyleAttributeProto.drawFlag: object expected");t.drawFlag[e]=n.keyhole.dbroot.DrawFlagProto.fromObject(r.drawFlag[e])}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.drawFlag=[]),t.defaults&&(e.styleId="",e.providerId=0,e.polyColorAbgr=4294967295,e.lineColorAbgr=4294967295,e.lineWidth=1,e.labelColorAbgr=4294967295,e.labelScale=1,e.placemarkIconColorAbgr=4294967295,e.placemarkIconScale=1,e.placemarkIconPath=null,e.placemarkIconX=0,e.placemarkIconY=0,e.placemarkIconWidth=32,e.placemarkIconHeight=32,e.popUp=null),r.styleId!=null&&r.hasOwnProperty("styleId")&&(e.styleId=r.styleId),r.providerId!=null&&r.hasOwnProperty("providerId")&&(e.providerId=r.providerId),r.polyColorAbgr!=null&&r.hasOwnProperty("polyColorAbgr")&&(e.polyColorAbgr=r.polyColorAbgr),r.lineColorAbgr!=null&&r.hasOwnProperty("lineColorAbgr")&&(e.lineColorAbgr=r.lineColorAbgr),r.lineWidth!=null&&r.hasOwnProperty("lineWidth")&&(e.lineWidth=t.json&&!isFinite(r.lineWidth)?String(r.lineWidth):r.lineWidth),r.labelColorAbgr!=null&&r.hasOwnProperty("labelColorAbgr")&&(e.labelColorAbgr=r.labelColorAbgr),r.labelScale!=null&&r.hasOwnProperty("labelScale")&&(e.labelScale=t.json&&!isFinite(r.labelScale)?String(r.labelScale):r.labelScale),r.placemarkIconColorAbgr!=null&&r.hasOwnProperty("placemarkIconColorAbgr")&&(e.placemarkIconColorAbgr=r.placemarkIconColorAbgr),r.placemarkIconScale!=null&&r.hasOwnProperty("placemarkIconScale")&&(e.placemarkIconScale=t.json&&!isFinite(r.placemarkIconScale)?String(r.placemarkIconScale):r.placemarkIconScale),r.placemarkIconPath!=null&&r.hasOwnProperty("placemarkIconPath")&&(e.placemarkIconPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.placemarkIconPath,t)),r.placemarkIconX!=null&&r.hasOwnProperty("placemarkIconX")&&(e.placemarkIconX=r.placemarkIconX),r.placemarkIconY!=null&&r.hasOwnProperty("placemarkIconY")&&(e.placemarkIconY=r.placemarkIconY),r.placemarkIconWidth!=null&&r.hasOwnProperty("placemarkIconWidth")&&(e.placemarkIconWidth=r.placemarkIconWidth),r.placemarkIconHeight!=null&&r.hasOwnProperty("placemarkIconHeight")&&(e.placemarkIconHeight=r.placemarkIconHeight),r.popUp!=null&&r.hasOwnProperty("popUp")&&(e.popUp=n.keyhole.dbroot.PopUpProto.toObject(r.popUp,t)),r.drawFlag&&r.drawFlag.length){e.drawFlag=[];for(var o=0;o<r.drawFlag.length;++o)e.drawFlag[o]=n.keyhole.dbroot.DrawFlagProto.toObject(r.drawFlag[o],t)}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleAttributeProto"},i}(),c.StyleMapProto=function(){function i(l){if(this.channelId=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.styleMapId=0,i.prototype.channelId=u.emptyArray,i.prototype.normalStyleAttribute=0,i.prototype.highlightStyleAttribute=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.StyleMapProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.styleMapId=r.int32();break}case 2:{if(o.channelId&&o.channelId.length||(o.channelId=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.channelId.push(r.int32());else o.channelId.push(r.int32());break}case 3:{o.normalStyleAttribute=r.int32();break}case 4:{o.highlightStyleAttribute=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("styleMapId"))throw u.ProtocolError("missing required 'styleMapId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isInteger(r.styleMapId))return"styleMapId: integer expected";if(r.channelId!=null&&r.hasOwnProperty("channelId")){if(!Array.isArray(r.channelId))return"channelId: array expected";for(var t=0;t<r.channelId.length;++t)if(!u.isInteger(r.channelId[t]))return"channelId: integer[] expected"}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&!u.isInteger(r.normalStyleAttribute)?"normalStyleAttribute: integer expected":r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&!u.isInteger(r.highlightStyleAttribute)?"highlightStyleAttribute: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.StyleMapProto)return r;var t=new n.keyhole.dbroot.StyleMapProto;if(r.styleMapId!=null&&(t.styleMapId=r.styleMapId|0),r.channelId){if(!Array.isArray(r.channelId))throw TypeError(".keyhole.dbroot.StyleMapProto.channelId: array expected");t.channelId=[];for(var e=0;e<r.channelId.length;++e)t.channelId[e]=r.channelId[e]|0}return r.normalStyleAttribute!=null&&(t.normalStyleAttribute=r.normalStyleAttribute|0),r.highlightStyleAttribute!=null&&(t.highlightStyleAttribute=r.highlightStyleAttribute|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.channelId=[]),t.defaults&&(e.styleMapId=0,e.normalStyleAttribute=0,e.highlightStyleAttribute=0),r.styleMapId!=null&&r.hasOwnProperty("styleMapId")&&(e.styleMapId=r.styleMapId),r.channelId&&r.channelId.length){e.channelId=[];for(var o=0;o<r.channelId.length;++o)e.channelId[o]=r.channelId[o]}return r.normalStyleAttribute!=null&&r.hasOwnProperty("normalStyleAttribute")&&(e.normalStyleAttribute=r.normalStyleAttribute),r.highlightStyleAttribute!=null&&r.hasOwnProperty("highlightStyleAttribute")&&(e.highlightStyleAttribute=r.highlightStyleAttribute),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.StyleMapProto"},i}(),c.ZoomRangeProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.minZoom=0,i.prototype.maxZoom=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ZoomRangeProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.minZoom=r.int32();break}case 2:{o.maxZoom=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("minZoom"))throw u.ProtocolError("missing required 'minZoom'",{instance:o});if(!o.hasOwnProperty("maxZoom"))throw u.ProtocolError("missing required 'maxZoom'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.minZoom)?u.isInteger(r.maxZoom)?null:"maxZoom: integer expected":"minZoom: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ZoomRangeProto)return r;var t=new n.keyhole.dbroot.ZoomRangeProto;return r.minZoom!=null&&(t.minZoom=r.minZoom|0),r.maxZoom!=null&&(t.maxZoom=r.maxZoom|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.minZoom=0,e.maxZoom=0),r.minZoom!=null&&r.hasOwnProperty("minZoom")&&(e.minZoom=r.minZoom),r.maxZoom!=null&&r.hasOwnProperty("maxZoom")&&(e.maxZoom=r.maxZoom),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ZoomRangeProto"},i}(),c.DrawFlagProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.drawFlagType=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DrawFlagProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.drawFlagType=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("drawFlagType"))throw u.ProtocolError("missing required 'drawFlagType'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";switch(r.drawFlagType){default:return"drawFlagType: enum value expected";case 1:case 2:case 3:case 4:case 5:break}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DrawFlagProto)return r;var t=new n.keyhole.dbroot.DrawFlagProto;switch(r.drawFlagType){case"TYPE_FILL_ONLY":case 1:t.drawFlagType=1;break;case"TYPE_OUTLINE_ONLY":case 2:t.drawFlagType=2;break;case"TYPE_FILL_AND_OUTLINE":case 3:t.drawFlagType=3;break;case"TYPE_ANTIALIASING":case 4:t.drawFlagType=4;break;case"TYPE_CENTER_LABEL":case 5:t.drawFlagType=5;break}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.drawFlagType=t.enums===String?"TYPE_FILL_ONLY":1),r.drawFlagType!=null&&r.hasOwnProperty("drawFlagType")&&(e.drawFlagType=t.enums===String?n.keyhole.dbroot.DrawFlagProto.DrawFlagType[r.drawFlagType]:r.drawFlagType),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DrawFlagProto"},i.DrawFlagType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_FILL_ONLY"]=1,r[l[2]="TYPE_OUTLINE_ONLY"]=2,r[l[3]="TYPE_FILL_AND_OUTLINE"]=3,r[l[4]="TYPE_ANTIALIASING"]=4,r[l[5]="TYPE_CENTER_LABEL"]=5,r}(),i}(),c.LayerProto=function(){function i(l){if(this.zoomRange=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.zoomRange=u.emptyArray,i.prototype.preserveTextLevel=30,i.prototype.lodBeginTransition=!1,i.prototype.lodEndTransition=!1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LayerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.zoomRange&&o.zoomRange.length||(o.zoomRange=[]),o.zoomRange.push(n.keyhole.dbroot.ZoomRangeProto.decode(r,r.uint32()));break}case 2:{o.preserveTextLevel=r.int32();break}case 4:{o.lodBeginTransition=r.bool();break}case 5:{o.lodEndTransition=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.zoomRange!=null&&r.hasOwnProperty("zoomRange")){if(!Array.isArray(r.zoomRange))return"zoomRange: array expected";for(var t=0;t<r.zoomRange.length;++t){var e=n.keyhole.dbroot.ZoomRangeProto.verify(r.zoomRange[t]);if(e)return"zoomRange."+e}}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&!u.isInteger(r.preserveTextLevel)?"preserveTextLevel: integer expected":r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&typeof r.lodBeginTransition!="boolean"?"lodBeginTransition: boolean expected":r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&typeof r.lodEndTransition!="boolean"?"lodEndTransition: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LayerProto)return r;var t=new n.keyhole.dbroot.LayerProto;if(r.zoomRange){if(!Array.isArray(r.zoomRange))throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: array expected");t.zoomRange=[];for(var e=0;e<r.zoomRange.length;++e){if(typeof r.zoomRange[e]!="object")throw TypeError(".keyhole.dbroot.LayerProto.zoomRange: object expected");t.zoomRange[e]=n.keyhole.dbroot.ZoomRangeProto.fromObject(r.zoomRange[e])}}return r.preserveTextLevel!=null&&(t.preserveTextLevel=r.preserveTextLevel|0),r.lodBeginTransition!=null&&(t.lodBeginTransition=!!r.lodBeginTransition),r.lodEndTransition!=null&&(t.lodEndTransition=!!r.lodEndTransition),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.zoomRange=[]),t.defaults&&(e.preserveTextLevel=30,e.lodBeginTransition=!1,e.lodEndTransition=!1),r.zoomRange&&r.zoomRange.length){e.zoomRange=[];for(var o=0;o<r.zoomRange.length;++o)e.zoomRange[o]=n.keyhole.dbroot.ZoomRangeProto.toObject(r.zoomRange[o],t)}return r.preserveTextLevel!=null&&r.hasOwnProperty("preserveTextLevel")&&(e.preserveTextLevel=r.preserveTextLevel),r.lodBeginTransition!=null&&r.hasOwnProperty("lodBeginTransition")&&(e.lodBeginTransition=r.lodBeginTransition),r.lodEndTransition!=null&&r.hasOwnProperty("lodEndTransition")&&(e.lodEndTransition=r.lodEndTransition),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LayerProto"},i}(),c.FolderProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isExpandable=!0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FolderProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isExpandable=r.bool();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&typeof r.isExpandable!="boolean"?"isExpandable: boolean expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FolderProto)return r;var t=new n.keyhole.dbroot.FolderProto;return r.isExpandable!=null&&(t.isExpandable=!!r.isExpandable),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isExpandable=!0),r.isExpandable!=null&&r.hasOwnProperty("isExpandable")&&(e.isExpandable=r.isExpandable),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FolderProto"},i}(),c.RequirementProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.requiredVram="",i.prototype.requiredClientVer="",i.prototype.probability="",i.prototype.requiredUserAgent="",i.prototype.requiredClientCapabilities="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.RequirementProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 3:{o.requiredVram=r.string();break}case 4:{o.requiredClientVer=r.string();break}case 5:{o.probability=r.string();break}case 6:{o.requiredUserAgent=r.string();break}case 7:{o.requiredClientCapabilities=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&!u.isString(r.requiredVram)?"requiredVram: string expected":r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&!u.isString(r.requiredClientVer)?"requiredClientVer: string expected":r.probability!=null&&r.hasOwnProperty("probability")&&!u.isString(r.probability)?"probability: string expected":r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&!u.isString(r.requiredUserAgent)?"requiredUserAgent: string expected":r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&!u.isString(r.requiredClientCapabilities)?"requiredClientCapabilities: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.RequirementProto)return r;var t=new n.keyhole.dbroot.RequirementProto;return r.requiredVram!=null&&(t.requiredVram=String(r.requiredVram)),r.requiredClientVer!=null&&(t.requiredClientVer=String(r.requiredClientVer)),r.probability!=null&&(t.probability=String(r.probability)),r.requiredUserAgent!=null&&(t.requiredUserAgent=String(r.requiredUserAgent)),r.requiredClientCapabilities!=null&&(t.requiredClientCapabilities=String(r.requiredClientCapabilities)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.requiredVram="",e.requiredClientVer="",e.probability="",e.requiredUserAgent="",e.requiredClientCapabilities=""),r.requiredVram!=null&&r.hasOwnProperty("requiredVram")&&(e.requiredVram=r.requiredVram),r.requiredClientVer!=null&&r.hasOwnProperty("requiredClientVer")&&(e.requiredClientVer=r.requiredClientVer),r.probability!=null&&r.hasOwnProperty("probability")&&(e.probability=r.probability),r.requiredUserAgent!=null&&r.hasOwnProperty("requiredUserAgent")&&(e.requiredUserAgent=r.requiredUserAgent),r.requiredClientCapabilities!=null&&r.hasOwnProperty("requiredClientCapabilities")&&(e.requiredClientCapabilities=r.requiredClientCapabilities),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.RequirementProto"},i}(),c.LookAtProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.longitude=0,i.prototype.latitude=0,i.prototype.range=0,i.prototype.tilt=0,i.prototype.heading=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LookAtProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.longitude=r.float();break}case 2:{o.latitude=r.float();break}case 3:{o.range=r.float();break}case 4:{o.tilt=r.float();break}case 5:{o.heading=r.float();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("longitude"))throw u.ProtocolError("missing required 'longitude'",{instance:o});if(!o.hasOwnProperty("latitude"))throw u.ProtocolError("missing required 'latitude'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":typeof r.longitude!="number"?"longitude: number expected":typeof r.latitude!="number"?"latitude: number expected":r.range!=null&&r.hasOwnProperty("range")&&typeof r.range!="number"?"range: number expected":r.tilt!=null&&r.hasOwnProperty("tilt")&&typeof r.tilt!="number"?"tilt: number expected":r.heading!=null&&r.hasOwnProperty("heading")&&typeof r.heading!="number"?"heading: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LookAtProto)return r;var t=new n.keyhole.dbroot.LookAtProto;return r.longitude!=null&&(t.longitude=Number(r.longitude)),r.latitude!=null&&(t.latitude=Number(r.latitude)),r.range!=null&&(t.range=Number(r.range)),r.tilt!=null&&(t.tilt=Number(r.tilt)),r.heading!=null&&(t.heading=Number(r.heading)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.longitude=0,e.latitude=0,e.range=0,e.tilt=0,e.heading=0),r.longitude!=null&&r.hasOwnProperty("longitude")&&(e.longitude=t.json&&!isFinite(r.longitude)?String(r.longitude):r.longitude),r.latitude!=null&&r.hasOwnProperty("latitude")&&(e.latitude=t.json&&!isFinite(r.latitude)?String(r.latitude):r.latitude),r.range!=null&&r.hasOwnProperty("range")&&(e.range=t.json&&!isFinite(r.range)?String(r.range):r.range),r.tilt!=null&&r.hasOwnProperty("tilt")&&(e.tilt=t.json&&!isFinite(r.tilt)?String(r.tilt):r.tilt),r.heading!=null&&r.hasOwnProperty("heading")&&(e.heading=t.json&&!isFinite(r.heading)?String(r.heading):r.heading),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LookAtProto"},i}(),c.NestedFeatureProto=function(){function i(l){if(this.children=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.featureType=1,i.prototype.kmlUrl=null,i.prototype.databaseUrl="",i.prototype.layer=null,i.prototype.folder=null,i.prototype.requirement=null,i.prototype.channelId=0,i.prototype.displayName=null,i.prototype.isVisible=!0,i.prototype.isEnabled=!0,i.prototype.isChecked=!1,i.prototype.layerMenuIconPath="icons/773_l.png",i.prototype.description=null,i.prototype.lookAt=null,i.prototype.assetUuid="",i.prototype.isSaveLocked=!0,i.prototype.children=u.emptyArray,i.prototype.clientConfigScriptName="",i.prototype.dioramaDataChannelBase=-1,i.prototype.replicaDataChannelBase=-1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.NestedFeatureProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.featureType=r.int32();break}case 2:{o.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.databaseUrl=r.string();break}case 3:{o.layer=n.keyhole.dbroot.LayerProto.decode(r,r.uint32());break}case 4:{o.folder=n.keyhole.dbroot.FolderProto.decode(r,r.uint32());break}case 5:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}case 6:{o.channelId=r.int32();break}case 7:{o.displayName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.isVisible=r.bool();break}case 9:{o.isEnabled=r.bool();break}case 10:{o.isChecked=r.bool();break}case 11:{o.layerMenuIconPath=r.string();break}case 12:{o.description=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 13:{o.lookAt=n.keyhole.dbroot.LookAtProto.decode(r,r.uint32());break}case 15:{o.assetUuid=r.string();break}case 16:{o.isSaveLocked=r.bool();break}case 17:{o.children&&o.children.length||(o.children=[]),o.children.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 18:{o.clientConfigScriptName=r.string();break}case 19:{o.dioramaDataChannelBase=r.int32();break}case 20:{o.replicaDataChannelBase=r.int32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("channelId"))throw u.ProtocolError("missing required 'channelId'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.featureType!=null&&r.hasOwnProperty("featureType"))switch(r.featureType){default:return"featureType: enum value expected";case 1:case 2:case 3:case 4:break}if(r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.kmlUrl);if(t)return"kmlUrl."+t}if(r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&!u.isString(r.databaseUrl))return"databaseUrl: string expected";if(r.layer!=null&&r.hasOwnProperty("layer")){var t=n.keyhole.dbroot.LayerProto.verify(r.layer);if(t)return"layer."+t}if(r.folder!=null&&r.hasOwnProperty("folder")){var t=n.keyhole.dbroot.FolderProto.verify(r.folder);if(t)return"folder."+t}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}if(!u.isInteger(r.channelId))return"channelId: integer expected";if(r.displayName!=null&&r.hasOwnProperty("displayName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.displayName);if(t)return"displayName."+t}if(r.isVisible!=null&&r.hasOwnProperty("isVisible")&&typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&typeof r.isEnabled!="boolean")return"isEnabled: boolean expected";if(r.isChecked!=null&&r.hasOwnProperty("isChecked")&&typeof r.isChecked!="boolean")return"isChecked: boolean expected";if(r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&!u.isString(r.layerMenuIconPath))return"layerMenuIconPath: string expected";if(r.description!=null&&r.hasOwnProperty("description")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.description);if(t)return"description."+t}if(r.lookAt!=null&&r.hasOwnProperty("lookAt")){var t=n.keyhole.dbroot.LookAtProto.verify(r.lookAt);if(t)return"lookAt."+t}if(r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&!u.isString(r.assetUuid))return"assetUuid: string expected";if(r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&typeof r.isSaveLocked!="boolean")return"isSaveLocked: boolean expected";if(r.children!=null&&r.hasOwnProperty("children")){if(!Array.isArray(r.children))return"children: array expected";for(var e=0;e<r.children.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.children[e]);if(t)return"children."+t}}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&!u.isString(r.clientConfigScriptName)?"clientConfigScriptName: string expected":r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&!u.isInteger(r.dioramaDataChannelBase)?"dioramaDataChannelBase: integer expected":r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&!u.isInteger(r.replicaDataChannelBase)?"replicaDataChannelBase: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.NestedFeatureProto)return r;var t=new n.keyhole.dbroot.NestedFeatureProto;switch(r.featureType){case"TYPE_POINT_Z":case 1:t.featureType=1;break;case"TYPE_POLYGON_Z":case 2:t.featureType=2;break;case"TYPE_LINE_Z":case 3:t.featureType=3;break;case"TYPE_TERRAIN":case 4:t.featureType=4;break}if(r.kmlUrl!=null){if(typeof r.kmlUrl!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.kmlUrl: object expected");t.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.kmlUrl)}if(r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),r.layer!=null){if(typeof r.layer!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.layer: object expected");t.layer=n.keyhole.dbroot.LayerProto.fromObject(r.layer)}if(r.folder!=null){if(typeof r.folder!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.folder: object expected");t.folder=n.keyhole.dbroot.FolderProto.fromObject(r.folder)}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}if(r.channelId!=null&&(t.channelId=r.channelId|0),r.displayName!=null){if(typeof r.displayName!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.displayName: object expected");t.displayName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.displayName)}if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.isEnabled!=null&&(t.isEnabled=!!r.isEnabled),r.isChecked!=null&&(t.isChecked=!!r.isChecked),r.layerMenuIconPath!=null&&(t.layerMenuIconPath=String(r.layerMenuIconPath)),r.description!=null){if(typeof r.description!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.description: object expected");t.description=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.description)}if(r.lookAt!=null){if(typeof r.lookAt!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.lookAt: object expected");t.lookAt=n.keyhole.dbroot.LookAtProto.fromObject(r.lookAt)}if(r.assetUuid!=null&&(t.assetUuid=String(r.assetUuid)),r.isSaveLocked!=null&&(t.isSaveLocked=!!r.isSaveLocked),r.children){if(!Array.isArray(r.children))throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: array expected");t.children=[];for(var e=0;e<r.children.length;++e){if(typeof r.children[e]!="object")throw TypeError(".keyhole.dbroot.NestedFeatureProto.children: object expected");t.children[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.children[e])}}return r.clientConfigScriptName!=null&&(t.clientConfigScriptName=String(r.clientConfigScriptName)),r.dioramaDataChannelBase!=null&&(t.dioramaDataChannelBase=r.dioramaDataChannelBase|0),r.replicaDataChannelBase!=null&&(t.replicaDataChannelBase=r.replicaDataChannelBase|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.children=[]),t.defaults&&(e.featureType=t.enums===String?"TYPE_POINT_Z":1,e.kmlUrl=null,e.layer=null,e.folder=null,e.requirement=null,e.channelId=0,e.displayName=null,e.isVisible=!0,e.isEnabled=!0,e.isChecked=!1,e.layerMenuIconPath="icons/773_l.png",e.description=null,e.lookAt=null,e.assetUuid="",e.isSaveLocked=!0,e.clientConfigScriptName="",e.dioramaDataChannelBase=-1,e.replicaDataChannelBase=-1,e.databaseUrl=""),r.featureType!=null&&r.hasOwnProperty("featureType")&&(e.featureType=t.enums===String?n.keyhole.dbroot.NestedFeatureProto.FeatureType[r.featureType]:r.featureType),r.kmlUrl!=null&&r.hasOwnProperty("kmlUrl")&&(e.kmlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.kmlUrl,t)),r.layer!=null&&r.hasOwnProperty("layer")&&(e.layer=n.keyhole.dbroot.LayerProto.toObject(r.layer,t)),r.folder!=null&&r.hasOwnProperty("folder")&&(e.folder=n.keyhole.dbroot.FolderProto.toObject(r.folder,t)),r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),r.channelId!=null&&r.hasOwnProperty("channelId")&&(e.channelId=r.channelId),r.displayName!=null&&r.hasOwnProperty("displayName")&&(e.displayName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.displayName,t)),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.isEnabled!=null&&r.hasOwnProperty("isEnabled")&&(e.isEnabled=r.isEnabled),r.isChecked!=null&&r.hasOwnProperty("isChecked")&&(e.isChecked=r.isChecked),r.layerMenuIconPath!=null&&r.hasOwnProperty("layerMenuIconPath")&&(e.layerMenuIconPath=r.layerMenuIconPath),r.description!=null&&r.hasOwnProperty("description")&&(e.description=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.description,t)),r.lookAt!=null&&r.hasOwnProperty("lookAt")&&(e.lookAt=n.keyhole.dbroot.LookAtProto.toObject(r.lookAt,t)),r.assetUuid!=null&&r.hasOwnProperty("assetUuid")&&(e.assetUuid=r.assetUuid),r.isSaveLocked!=null&&r.hasOwnProperty("isSaveLocked")&&(e.isSaveLocked=r.isSaveLocked),r.children&&r.children.length){e.children=[];for(var o=0;o<r.children.length;++o)e.children[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.children[o],t)}return r.clientConfigScriptName!=null&&r.hasOwnProperty("clientConfigScriptName")&&(e.clientConfigScriptName=r.clientConfigScriptName),r.dioramaDataChannelBase!=null&&r.hasOwnProperty("dioramaDataChannelBase")&&(e.dioramaDataChannelBase=r.dioramaDataChannelBase),r.replicaDataChannelBase!=null&&r.hasOwnProperty("replicaDataChannelBase")&&(e.replicaDataChannelBase=r.replicaDataChannelBase),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.NestedFeatureProto"},i.FeatureType=function(){var l={},r=Object.create(l);return r[l[1]="TYPE_POINT_Z"]=1,r[l[2]="TYPE_POLYGON_Z"]=2,r[l[3]="TYPE_LINE_Z"]=3,r[l[4]="TYPE_TERRAIN"]=4,r}(),i}(),c.MfeDomainFeaturesProto=function(){function i(l){if(this.supportedFeatures=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.countryCode="",i.prototype.domainName="",i.prototype.supportedFeatures=u.emptyArray,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.MfeDomainFeaturesProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.countryCode=r.string();break}case 2:{o.domainName=r.string();break}case 3:{if(o.supportedFeatures&&o.supportedFeatures.length||(o.supportedFeatures=[]),(a&7)===2)for(var p=r.uint32()+r.pos;r.pos<p;)o.supportedFeatures.push(r.int32());else o.supportedFeatures.push(r.int32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("countryCode"))throw u.ProtocolError("missing required 'countryCode'",{instance:o});if(!o.hasOwnProperty("domainName"))throw u.ProtocolError("missing required 'domainName'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.countryCode))return"countryCode: string expected";if(!u.isString(r.domainName))return"domainName: string expected";if(r.supportedFeatures!=null&&r.hasOwnProperty("supportedFeatures")){if(!Array.isArray(r.supportedFeatures))return"supportedFeatures: array expected";for(var t=0;t<r.supportedFeatures.length;++t)switch(r.supportedFeatures[t]){default:return"supportedFeatures: enum value[] expected";case 0:case 1:case 2:break}}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.MfeDomainFeaturesProto)return r;var t=new n.keyhole.dbroot.MfeDomainFeaturesProto;if(r.countryCode!=null&&(t.countryCode=String(r.countryCode)),r.domainName!=null&&(t.domainName=String(r.domainName)),r.supportedFeatures){if(!Array.isArray(r.supportedFeatures))throw TypeError(".keyhole.dbroot.MfeDomainFeaturesProto.supportedFeatures: array expected");t.supportedFeatures=[];for(var e=0;e<r.supportedFeatures.length;++e)switch(r.supportedFeatures[e]){default:case"GEOCODING":case 0:t.supportedFeatures[e]=0;break;case"LOCAL_SEARCH":case 1:t.supportedFeatures[e]=1;break;case"DRIVING_DIRECTIONS":case 2:t.supportedFeatures[e]=2;break}}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.supportedFeatures=[]),t.defaults&&(e.countryCode="",e.domainName=""),r.countryCode!=null&&r.hasOwnProperty("countryCode")&&(e.countryCode=r.countryCode),r.domainName!=null&&r.hasOwnProperty("domainName")&&(e.domainName=r.domainName),r.supportedFeatures&&r.supportedFeatures.length){e.supportedFeatures=[];for(var o=0;o<r.supportedFeatures.length;++o)e.supportedFeatures[o]=t.enums===String?n.keyhole.dbroot.MfeDomainFeaturesProto.SupportedFeature[r.supportedFeatures[o]]:r.supportedFeatures[o]}return e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.MfeDomainFeaturesProto"},i.SupportedFeature=function(){var l={},r=Object.create(l);return r[l[0]="GEOCODING"]=0,r[l[1]="LOCAL_SEARCH"]=1,r[l[2]="DRIVING_DIRECTIONS"]=2,r}(),i}(),c.ClientOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.disableDiskCache=!1,i.prototype.disableEmbeddedBrowserVista=!1,i.prototype.drawAtmosphere=!0,i.prototype.drawStars=!0,i.prototype.shaderFilePrefix="",i.prototype.useProtobufQuadtreePackets=!1,i.prototype.useExtendedCopyrightIds=!0,i.prototype.precipitationsOptions=null,i.prototype.captureOptions=null,i.prototype.show_2dMapsIcon=!0,i.prototype.disableInternalBrowser=!1,i.prototype.internalBrowserBlacklist="",i.prototype.internalBrowserOriginWhitelist="*",i.prototype.polarTileMergingLevel=0,i.prototype.jsBridgeRequestWhitelist="http://*.google.com/*",i.prototype.mapsOptions=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ClientOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.disableDiskCache=r.bool();break}case 2:{o.disableEmbeddedBrowserVista=r.bool();break}case 3:{o.drawAtmosphere=r.bool();break}case 4:{o.drawStars=r.bool();break}case 5:{o.shaderFilePrefix=r.string();break}case 6:{o.useProtobufQuadtreePackets=r.bool();break}case 7:{o.useExtendedCopyrightIds=r.bool();break}case 8:{o.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.decode(r,r.uint32());break}case 9:{o.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.decode(r,r.uint32());break}case 10:{o.show_2dMapsIcon=r.bool();break}case 11:{o.disableInternalBrowser=r.bool();break}case 12:{o.internalBrowserBlacklist=r.string();break}case 13:{o.internalBrowserOriginWhitelist=r.string();break}case 14:{o.polarTileMergingLevel=r.int32();break}case 15:{o.jsBridgeRequestWhitelist=r.string();break}case 16:{o.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&typeof r.disableDiskCache!="boolean")return"disableDiskCache: boolean expected";if(r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&typeof r.disableEmbeddedBrowserVista!="boolean")return"disableEmbeddedBrowserVista: boolean expected";if(r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&typeof r.drawAtmosphere!="boolean")return"drawAtmosphere: boolean expected";if(r.drawStars!=null&&r.hasOwnProperty("drawStars")&&typeof r.drawStars!="boolean")return"drawStars: boolean expected";if(r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&!u.isString(r.shaderFilePrefix))return"shaderFilePrefix: string expected";if(r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&typeof r.useProtobufQuadtreePackets!="boolean")return"useProtobufQuadtreePackets: boolean expected";if(r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&typeof r.useExtendedCopyrightIds!="boolean")return"useExtendedCopyrightIds: boolean expected";if(r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.verify(r.precipitationsOptions);if(t)return"precipitationsOptions."+t}if(r.captureOptions!=null&&r.hasOwnProperty("captureOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.verify(r.captureOptions);if(t)return"captureOptions."+t}if(r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&typeof r.show_2dMapsIcon!="boolean")return"show_2dMapsIcon: boolean expected";if(r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&typeof r.disableInternalBrowser!="boolean")return"disableInternalBrowser: boolean expected";if(r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&!u.isString(r.internalBrowserBlacklist))return"internalBrowserBlacklist: string expected";if(r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&!u.isString(r.internalBrowserOriginWhitelist))return"internalBrowserOriginWhitelist: string expected";if(r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&!u.isInteger(r.polarTileMergingLevel))return"polarTileMergingLevel: integer expected";if(r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&!u.isString(r.jsBridgeRequestWhitelist))return"jsBridgeRequestWhitelist: string expected";if(r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.verify(r.mapsOptions);if(t)return"mapsOptions."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ClientOptionsProto)return r;var t=new n.keyhole.dbroot.ClientOptionsProto;if(r.disableDiskCache!=null&&(t.disableDiskCache=!!r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&(t.disableEmbeddedBrowserVista=!!r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&(t.drawAtmosphere=!!r.drawAtmosphere),r.drawStars!=null&&(t.drawStars=!!r.drawStars),r.shaderFilePrefix!=null&&(t.shaderFilePrefix=String(r.shaderFilePrefix)),r.useProtobufQuadtreePackets!=null&&(t.useProtobufQuadtreePackets=!!r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&(t.useExtendedCopyrightIds=!!r.useExtendedCopyrightIds),r.precipitationsOptions!=null){if(typeof r.precipitationsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.precipitationsOptions: object expected");t.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.fromObject(r.precipitationsOptions)}if(r.captureOptions!=null){if(typeof r.captureOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.captureOptions: object expected");t.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.fromObject(r.captureOptions)}if(r.show_2dMapsIcon!=null&&(t.show_2dMapsIcon=!!r.show_2dMapsIcon),r.disableInternalBrowser!=null&&(t.disableInternalBrowser=!!r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&(t.internalBrowserBlacklist=String(r.internalBrowserBlacklist)),r.internalBrowserOriginWhitelist!=null&&(t.internalBrowserOriginWhitelist=String(r.internalBrowserOriginWhitelist)),r.polarTileMergingLevel!=null&&(t.polarTileMergingLevel=r.polarTileMergingLevel|0),r.jsBridgeRequestWhitelist!=null&&(t.jsBridgeRequestWhitelist=String(r.jsBridgeRequestWhitelist)),r.mapsOptions!=null){if(typeof r.mapsOptions!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.mapsOptions: object expected");t.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.fromObject(r.mapsOptions)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.disableDiskCache=!1,e.disableEmbeddedBrowserVista=!1,e.drawAtmosphere=!0,e.drawStars=!0,e.shaderFilePrefix="",e.useProtobufQuadtreePackets=!1,e.useExtendedCopyrightIds=!0,e.precipitationsOptions=null,e.captureOptions=null,e.show_2dMapsIcon=!0,e.disableInternalBrowser=!1,e.internalBrowserBlacklist="",e.internalBrowserOriginWhitelist="*",e.polarTileMergingLevel=0,e.jsBridgeRequestWhitelist="http://*.google.com/*",e.mapsOptions=null),r.disableDiskCache!=null&&r.hasOwnProperty("disableDiskCache")&&(e.disableDiskCache=r.disableDiskCache),r.disableEmbeddedBrowserVista!=null&&r.hasOwnProperty("disableEmbeddedBrowserVista")&&(e.disableEmbeddedBrowserVista=r.disableEmbeddedBrowserVista),r.drawAtmosphere!=null&&r.hasOwnProperty("drawAtmosphere")&&(e.drawAtmosphere=r.drawAtmosphere),r.drawStars!=null&&r.hasOwnProperty("drawStars")&&(e.drawStars=r.drawStars),r.shaderFilePrefix!=null&&r.hasOwnProperty("shaderFilePrefix")&&(e.shaderFilePrefix=r.shaderFilePrefix),r.useProtobufQuadtreePackets!=null&&r.hasOwnProperty("useProtobufQuadtreePackets")&&(e.useProtobufQuadtreePackets=r.useProtobufQuadtreePackets),r.useExtendedCopyrightIds!=null&&r.hasOwnProperty("useExtendedCopyrightIds")&&(e.useExtendedCopyrightIds=r.useExtendedCopyrightIds),r.precipitationsOptions!=null&&r.hasOwnProperty("precipitationsOptions")&&(e.precipitationsOptions=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.toObject(r.precipitationsOptions,t)),r.captureOptions!=null&&r.hasOwnProperty("captureOptions")&&(e.captureOptions=n.keyhole.dbroot.ClientOptionsProto.CaptureOptions.toObject(r.captureOptions,t)),r.show_2dMapsIcon!=null&&r.hasOwnProperty("show_2dMapsIcon")&&(e.show_2dMapsIcon=r.show_2dMapsIcon),r.disableInternalBrowser!=null&&r.hasOwnProperty("disableInternalBrowser")&&(e.disableInternalBrowser=r.disableInternalBrowser),r.internalBrowserBlacklist!=null&&r.hasOwnProperty("internalBrowserBlacklist")&&(e.internalBrowserBlacklist=r.internalBrowserBlacklist),r.internalBrowserOriginWhitelist!=null&&r.hasOwnProperty("internalBrowserOriginWhitelist")&&(e.internalBrowserOriginWhitelist=r.internalBrowserOriginWhitelist),r.polarTileMergingLevel!=null&&r.hasOwnProperty("polarTileMergingLevel")&&(e.polarTileMergingLevel=r.polarTileMergingLevel),r.jsBridgeRequestWhitelist!=null&&r.hasOwnProperty("jsBridgeRequestWhitelist")&&(e.jsBridgeRequestWhitelist=r.jsBridgeRequestWhitelist),r.mapsOptions!=null&&r.hasOwnProperty("mapsOptions")&&(e.mapsOptions=n.keyhole.dbroot.ClientOptionsProto.MapsOptions.toObject(r.mapsOptions,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ClientOptionsProto"},i.PrecipitationsOptions=function(){function l(r){if(this.weatherMapping=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.imageUrl="",l.prototype.imageExpireTime=900,l.prototype.maxColorDistance=20,l.prototype.imageLevel=5,l.prototype.weatherMapping=u.emptyArray,l.prototype.cloudsLayerUrl="",l.prototype.animationDecelerationDelay=20,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.imageUrl=t.string();break}case 2:{a.imageExpireTime=t.int32();break}case 3:{a.maxColorDistance=t.int32();break}case 4:{a.imageLevel=t.int32();break}case 5:{a.weatherMapping&&a.weatherMapping.length||(a.weatherMapping=[]),a.weatherMapping.push(n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.decode(t,t.uint32()));break}case 6:{a.cloudsLayerUrl=t.string();break}case 7:{a.animationDecelerationDelay=t.float();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&!u.isString(t.imageUrl))return"imageUrl: string expected";if(t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&!u.isInteger(t.imageExpireTime))return"imageExpireTime: integer expected";if(t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&!u.isInteger(t.maxColorDistance))return"maxColorDistance: integer expected";if(t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&!u.isInteger(t.imageLevel))return"imageLevel: integer expected";if(t.weatherMapping!=null&&t.hasOwnProperty("weatherMapping")){if(!Array.isArray(t.weatherMapping))return"weatherMapping: array expected";for(var e=0;e<t.weatherMapping.length;++e){var o=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.verify(t.weatherMapping[e]);if(o)return"weatherMapping."+o}}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&!u.isString(t.cloudsLayerUrl)?"cloudsLayerUrl: string expected":t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&typeof t.animationDecelerationDelay!="number"?"animationDecelerationDelay: number expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions;if(t.imageUrl!=null&&(e.imageUrl=String(t.imageUrl)),t.imageExpireTime!=null&&(e.imageExpireTime=t.imageExpireTime|0),t.maxColorDistance!=null&&(e.maxColorDistance=t.maxColorDistance|0),t.imageLevel!=null&&(e.imageLevel=t.imageLevel|0),t.weatherMapping){if(!Array.isArray(t.weatherMapping))throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: array expected");e.weatherMapping=[];for(var o=0;o<t.weatherMapping.length;++o){if(typeof t.weatherMapping[o]!="object")throw TypeError(".keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.weatherMapping: object expected");e.weatherMapping[o]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.fromObject(t.weatherMapping[o])}}return t.cloudsLayerUrl!=null&&(e.cloudsLayerUrl=String(t.cloudsLayerUrl)),t.animationDecelerationDelay!=null&&(e.animationDecelerationDelay=Number(t.animationDecelerationDelay)),e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.weatherMapping=[]),e.defaults&&(o.imageUrl="",o.imageExpireTime=900,o.maxColorDistance=20,o.imageLevel=5,o.cloudsLayerUrl="",o.animationDecelerationDelay=20),t.imageUrl!=null&&t.hasOwnProperty("imageUrl")&&(o.imageUrl=t.imageUrl),t.imageExpireTime!=null&&t.hasOwnProperty("imageExpireTime")&&(o.imageExpireTime=t.imageExpireTime),t.maxColorDistance!=null&&t.hasOwnProperty("maxColorDistance")&&(o.maxColorDistance=t.maxColorDistance),t.imageLevel!=null&&t.hasOwnProperty("imageLevel")&&(o.imageLevel=t.imageLevel),t.weatherMapping&&t.weatherMapping.length){o.weatherMapping=[];for(var a=0;a<t.weatherMapping.length;++a)o.weatherMapping[a]=n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.toObject(t.weatherMapping[a],e)}return t.cloudsLayerUrl!=null&&t.hasOwnProperty("cloudsLayerUrl")&&(o.cloudsLayerUrl=t.cloudsLayerUrl),t.animationDecelerationDelay!=null&&t.hasOwnProperty("animationDecelerationDelay")&&(o.animationDecelerationDelay=e.json&&!isFinite(t.animationDecelerationDelay)?String(t.animationDecelerationDelay):t.animationDecelerationDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions"},l.WeatherMapping=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.colorAbgr=0,r.prototype.weatherType=0,r.prototype.elongation=1,r.prototype.opacity=0,r.prototype.fogDensity=0,r.prototype.speed0=0,r.prototype.speed1=0,r.prototype.speed2=0,r.prototype.speed3=0,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.colorAbgr=e.uint32();break}case 2:{p.weatherType=e.int32();break}case 3:{p.elongation=e.float();break}case 4:{p.opacity=e.float();break}case 5:{p.fogDensity=e.float();break}case 6:{p.speed0=e.float();break}case 7:{p.speed1=e.float();break}case 8:{p.speed2=e.float();break}case 9:{p.speed3=e.float();break}default:e.skipType(y&7);break}}if(!p.hasOwnProperty("colorAbgr"))throw u.ProtocolError("missing required 'colorAbgr'",{instance:p});if(!p.hasOwnProperty("weatherType"))throw u.ProtocolError("missing required 'weatherType'",{instance:p});return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(!u.isInteger(e.colorAbgr))return"colorAbgr: integer expected";switch(e.weatherType){default:return"weatherType: enum value expected";case 0:case 1:case 2:break}return e.elongation!=null&&e.hasOwnProperty("elongation")&&typeof e.elongation!="number"?"elongation: number expected":e.opacity!=null&&e.hasOwnProperty("opacity")&&typeof e.opacity!="number"?"opacity: number expected":e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&typeof e.fogDensity!="number"?"fogDensity: number expected":e.speed0!=null&&e.hasOwnProperty("speed0")&&typeof e.speed0!="number"?"speed0: number expected":e.speed1!=null&&e.hasOwnProperty("speed1")&&typeof e.speed1!="number"?"speed1: number expected":e.speed2!=null&&e.hasOwnProperty("speed2")&&typeof e.speed2!="number"?"speed2: number expected":e.speed3!=null&&e.hasOwnProperty("speed3")&&typeof e.speed3!="number"?"speed3: number expected":null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping)return e;var o=new n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping;switch(e.colorAbgr!=null&&(o.colorAbgr=e.colorAbgr>>>0),e.weatherType){case"NO_PRECIPITATION":case 0:o.weatherType=0;break;case"RAIN":case 1:o.weatherType=1;break;case"SNOW":case 2:o.weatherType=2;break}return e.elongation!=null&&(o.elongation=Number(e.elongation)),e.opacity!=null&&(o.opacity=Number(e.opacity)),e.fogDensity!=null&&(o.fogDensity=Number(e.fogDensity)),e.speed0!=null&&(o.speed0=Number(e.speed0)),e.speed1!=null&&(o.speed1=Number(e.speed1)),e.speed2!=null&&(o.speed2=Number(e.speed2)),e.speed3!=null&&(o.speed3=Number(e.speed3)),o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.colorAbgr=0,a.weatherType=o.enums===String?"NO_PRECIPITATION":0,a.elongation=1,a.opacity=0,a.fogDensity=0,a.speed0=0,a.speed1=0,a.speed2=0,a.speed3=0),e.colorAbgr!=null&&e.hasOwnProperty("colorAbgr")&&(a.colorAbgr=e.colorAbgr),e.weatherType!=null&&e.hasOwnProperty("weatherType")&&(a.weatherType=o.enums===String?n.keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping.WeatherType[e.weatherType]:e.weatherType),e.elongation!=null&&e.hasOwnProperty("elongation")&&(a.elongation=o.json&&!isFinite(e.elongation)?String(e.elongation):e.elongation),e.opacity!=null&&e.hasOwnProperty("opacity")&&(a.opacity=o.json&&!isFinite(e.opacity)?String(e.opacity):e.opacity),e.fogDensity!=null&&e.hasOwnProperty("fogDensity")&&(a.fogDensity=o.json&&!isFinite(e.fogDensity)?String(e.fogDensity):e.fogDensity),e.speed0!=null&&e.hasOwnProperty("speed0")&&(a.speed0=o.json&&!isFinite(e.speed0)?String(e.speed0):e.speed0),e.speed1!=null&&e.hasOwnProperty("speed1")&&(a.speed1=o.json&&!isFinite(e.speed1)?String(e.speed1):e.speed1),e.speed2!=null&&e.hasOwnProperty("speed2")&&(a.speed2=o.json&&!isFinite(e.speed2)?String(e.speed2):e.speed2),e.speed3!=null&&e.hasOwnProperty("speed3")&&(a.speed3=o.json&&!isFinite(e.speed3)?String(e.speed3):e.speed3),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.ClientOptionsProto.PrecipitationsOptions.WeatherMapping"},r.WeatherType=function(){var t={},e=Object.create(t);return e[t[0]="NO_PRECIPITATION"]=0,e[t[1]="RAIN"]=1,e[t[2]="SNOW"]=2,e}(),r}(),l}(),i.CaptureOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.allowSaveAsImage=!0,l.prototype.maxFreeCaptureRes=2400,l.prototype.maxPremiumCaptureRes=4800,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.allowSaveAsImage=t.bool();break}case 2:{a.maxFreeCaptureRes=t.int32();break}case 3:{a.maxPremiumCaptureRes=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&typeof t.allowSaveAsImage!="boolean"?"allowSaveAsImage: boolean expected":t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&!u.isInteger(t.maxFreeCaptureRes)?"maxFreeCaptureRes: integer expected":t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&!u.isInteger(t.maxPremiumCaptureRes)?"maxPremiumCaptureRes: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.CaptureOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.CaptureOptions;return t.allowSaveAsImage!=null&&(e.allowSaveAsImage=!!t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&(e.maxFreeCaptureRes=t.maxFreeCaptureRes|0),t.maxPremiumCaptureRes!=null&&(e.maxPremiumCaptureRes=t.maxPremiumCaptureRes|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.allowSaveAsImage=!0,o.maxFreeCaptureRes=2400,o.maxPremiumCaptureRes=4800),t.allowSaveAsImage!=null&&t.hasOwnProperty("allowSaveAsImage")&&(o.allowSaveAsImage=t.allowSaveAsImage),t.maxFreeCaptureRes!=null&&t.hasOwnProperty("maxFreeCaptureRes")&&(o.maxFreeCaptureRes=t.maxFreeCaptureRes),t.maxPremiumCaptureRes!=null&&t.hasOwnProperty("maxPremiumCaptureRes")&&(o.maxPremiumCaptureRes=t.maxPremiumCaptureRes),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.CaptureOptions"},l}(),i.MapsOptions=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.enableMaps=!1,l.prototype.docsAutoDownloadEnabled=!1,l.prototype.docsAutoDownloadInterval=0,l.prototype.docsAutoUploadEnabled=!1,l.prototype.docsAutoUploadDelay=0,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.enableMaps=t.bool();break}case 2:{a.docsAutoDownloadEnabled=t.bool();break}case 3:{a.docsAutoDownloadInterval=t.int32();break}case 4:{a.docsAutoUploadEnabled=t.bool();break}case 5:{a.docsAutoUploadDelay=t.int32();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&typeof t.enableMaps!="boolean"?"enableMaps: boolean expected":t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&typeof t.docsAutoDownloadEnabled!="boolean"?"docsAutoDownloadEnabled: boolean expected":t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&!u.isInteger(t.docsAutoDownloadInterval)?"docsAutoDownloadInterval: integer expected":t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&typeof t.docsAutoUploadEnabled!="boolean"?"docsAutoUploadEnabled: boolean expected":t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&!u.isInteger(t.docsAutoUploadDelay)?"docsAutoUploadDelay: integer expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.ClientOptionsProto.MapsOptions)return t;var e=new n.keyhole.dbroot.ClientOptionsProto.MapsOptions;return t.enableMaps!=null&&(e.enableMaps=!!t.enableMaps),t.docsAutoDownloadEnabled!=null&&(e.docsAutoDownloadEnabled=!!t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&(e.docsAutoDownloadInterval=t.docsAutoDownloadInterval|0),t.docsAutoUploadEnabled!=null&&(e.docsAutoUploadEnabled=!!t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&(e.docsAutoUploadDelay=t.docsAutoUploadDelay|0),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.enableMaps=!1,o.docsAutoDownloadEnabled=!1,o.docsAutoDownloadInterval=0,o.docsAutoUploadEnabled=!1,o.docsAutoUploadDelay=0),t.enableMaps!=null&&t.hasOwnProperty("enableMaps")&&(o.enableMaps=t.enableMaps),t.docsAutoDownloadEnabled!=null&&t.hasOwnProperty("docsAutoDownloadEnabled")&&(o.docsAutoDownloadEnabled=t.docsAutoDownloadEnabled),t.docsAutoDownloadInterval!=null&&t.hasOwnProperty("docsAutoDownloadInterval")&&(o.docsAutoDownloadInterval=t.docsAutoDownloadInterval),t.docsAutoUploadEnabled!=null&&t.hasOwnProperty("docsAutoUploadEnabled")&&(o.docsAutoUploadEnabled=t.docsAutoUploadEnabled),t.docsAutoUploadDelay!=null&&t.hasOwnProperty("docsAutoUploadDelay")&&(o.docsAutoUploadDelay=t.docsAutoUploadDelay),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.ClientOptionsProto.MapsOptions"},l}(),i}(),c.FetchingOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.maxRequestsPerQuery=1,i.prototype.forceMaxRequestsPerQuery=!1,i.prototype.sortBatches=!1,i.prototype.maxDrawable=2,i.prototype.maxImagery=2,i.prototype.maxTerrain=5,i.prototype.maxQuadtree=5,i.prototype.maxDioramaMetadata=1,i.prototype.maxDioramaData=0,i.prototype.maxConsumerFetchRatio=1,i.prototype.maxProEcFetchRatio=0,i.prototype.safeOverallQps=0,i.prototype.safeImageryQps=0,i.prototype.domainsForHttps="google.com gstatic.com",i.prototype.hostsForHttp="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.FetchingOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.maxRequestsPerQuery=r.int32();break}case 12:{o.forceMaxRequestsPerQuery=r.bool();break}case 13:{o.sortBatches=r.bool();break}case 2:{o.maxDrawable=r.int32();break}case 3:{o.maxImagery=r.int32();break}case 4:{o.maxTerrain=r.int32();break}case 5:{o.maxQuadtree=r.int32();break}case 6:{o.maxDioramaMetadata=r.int32();break}case 7:{o.maxDioramaData=r.int32();break}case 8:{o.maxConsumerFetchRatio=r.float();break}case 9:{o.maxProEcFetchRatio=r.float();break}case 10:{o.safeOverallQps=r.float();break}case 11:{o.safeImageryQps=r.float();break}case 14:{o.domainsForHttps=r.string();break}case 15:{o.hostsForHttp=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&!u.isInteger(r.maxRequestsPerQuery)?"maxRequestsPerQuery: integer expected":r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&typeof r.forceMaxRequestsPerQuery!="boolean"?"forceMaxRequestsPerQuery: boolean expected":r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&typeof r.sortBatches!="boolean"?"sortBatches: boolean expected":r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&!u.isInteger(r.maxDrawable)?"maxDrawable: integer expected":r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&!u.isInteger(r.maxImagery)?"maxImagery: integer expected":r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&!u.isInteger(r.maxTerrain)?"maxTerrain: integer expected":r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&!u.isInteger(r.maxQuadtree)?"maxQuadtree: integer expected":r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&!u.isInteger(r.maxDioramaMetadata)?"maxDioramaMetadata: integer expected":r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&!u.isInteger(r.maxDioramaData)?"maxDioramaData: integer expected":r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&typeof r.maxConsumerFetchRatio!="number"?"maxConsumerFetchRatio: number expected":r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&typeof r.maxProEcFetchRatio!="number"?"maxProEcFetchRatio: number expected":r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&typeof r.safeOverallQps!="number"?"safeOverallQps: number expected":r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&typeof r.safeImageryQps!="number"?"safeImageryQps: number expected":r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&!u.isString(r.domainsForHttps)?"domainsForHttps: string expected":r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&!u.isString(r.hostsForHttp)?"hostsForHttp: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.FetchingOptionsProto)return r;var t=new n.keyhole.dbroot.FetchingOptionsProto;return r.maxRequestsPerQuery!=null&&(t.maxRequestsPerQuery=r.maxRequestsPerQuery|0),r.forceMaxRequestsPerQuery!=null&&(t.forceMaxRequestsPerQuery=!!r.forceMaxRequestsPerQuery),r.sortBatches!=null&&(t.sortBatches=!!r.sortBatches),r.maxDrawable!=null&&(t.maxDrawable=r.maxDrawable|0),r.maxImagery!=null&&(t.maxImagery=r.maxImagery|0),r.maxTerrain!=null&&(t.maxTerrain=r.maxTerrain|0),r.maxQuadtree!=null&&(t.maxQuadtree=r.maxQuadtree|0),r.maxDioramaMetadata!=null&&(t.maxDioramaMetadata=r.maxDioramaMetadata|0),r.maxDioramaData!=null&&(t.maxDioramaData=r.maxDioramaData|0),r.maxConsumerFetchRatio!=null&&(t.maxConsumerFetchRatio=Number(r.maxConsumerFetchRatio)),r.maxProEcFetchRatio!=null&&(t.maxProEcFetchRatio=Number(r.maxProEcFetchRatio)),r.safeOverallQps!=null&&(t.safeOverallQps=Number(r.safeOverallQps)),r.safeImageryQps!=null&&(t.safeImageryQps=Number(r.safeImageryQps)),r.domainsForHttps!=null&&(t.domainsForHttps=String(r.domainsForHttps)),r.hostsForHttp!=null&&(t.hostsForHttp=String(r.hostsForHttp)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.maxRequestsPerQuery=1,e.maxDrawable=2,e.maxImagery=2,e.maxTerrain=5,e.maxQuadtree=5,e.maxDioramaMetadata=1,e.maxDioramaData=0,e.maxConsumerFetchRatio=1,e.maxProEcFetchRatio=0,e.safeOverallQps=0,e.safeImageryQps=0,e.forceMaxRequestsPerQuery=!1,e.sortBatches=!1,e.domainsForHttps="google.com gstatic.com",e.hostsForHttp=""),r.maxRequestsPerQuery!=null&&r.hasOwnProperty("maxRequestsPerQuery")&&(e.maxRequestsPerQuery=r.maxRequestsPerQuery),r.maxDrawable!=null&&r.hasOwnProperty("maxDrawable")&&(e.maxDrawable=r.maxDrawable),r.maxImagery!=null&&r.hasOwnProperty("maxImagery")&&(e.maxImagery=r.maxImagery),r.maxTerrain!=null&&r.hasOwnProperty("maxTerrain")&&(e.maxTerrain=r.maxTerrain),r.maxQuadtree!=null&&r.hasOwnProperty("maxQuadtree")&&(e.maxQuadtree=r.maxQuadtree),r.maxDioramaMetadata!=null&&r.hasOwnProperty("maxDioramaMetadata")&&(e.maxDioramaMetadata=r.maxDioramaMetadata),r.maxDioramaData!=null&&r.hasOwnProperty("maxDioramaData")&&(e.maxDioramaData=r.maxDioramaData),r.maxConsumerFetchRatio!=null&&r.hasOwnProperty("maxConsumerFetchRatio")&&(e.maxConsumerFetchRatio=t.json&&!isFinite(r.maxConsumerFetchRatio)?String(r.maxConsumerFetchRatio):r.maxConsumerFetchRatio),r.maxProEcFetchRatio!=null&&r.hasOwnProperty("maxProEcFetchRatio")&&(e.maxProEcFetchRatio=t.json&&!isFinite(r.maxProEcFetchRatio)?String(r.maxProEcFetchRatio):r.maxProEcFetchRatio),r.safeOverallQps!=null&&r.hasOwnProperty("safeOverallQps")&&(e.safeOverallQps=t.json&&!isFinite(r.safeOverallQps)?String(r.safeOverallQps):r.safeOverallQps),r.safeImageryQps!=null&&r.hasOwnProperty("safeImageryQps")&&(e.safeImageryQps=t.json&&!isFinite(r.safeImageryQps)?String(r.safeImageryQps):r.safeImageryQps),r.forceMaxRequestsPerQuery!=null&&r.hasOwnProperty("forceMaxRequestsPerQuery")&&(e.forceMaxRequestsPerQuery=r.forceMaxRequestsPerQuery),r.sortBatches!=null&&r.hasOwnProperty("sortBatches")&&(e.sortBatches=r.sortBatches),r.domainsForHttps!=null&&r.hasOwnProperty("domainsForHttps")&&(e.domainsForHttps=r.domainsForHttps),r.hostsForHttp!=null&&r.hasOwnProperty("hostsForHttp")&&(e.hostsForHttp=r.hostsForHttp),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.FetchingOptionsProto"},i}(),c.TimeMachineOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.serverUrl="",i.prototype.isTimemachine=!1,i.prototype.dwellTimeMs=500,i.prototype.discoverabilityAltitudeMeters=15e3,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.TimeMachineOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.serverUrl=r.string();break}case 2:{o.isTimemachine=r.bool();break}case 3:{o.dwellTimeMs=r.int32();break}case 4:{o.discoverabilityAltitudeMeters=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&!u.isString(r.serverUrl)?"serverUrl: string expected":r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&typeof r.isTimemachine!="boolean"?"isTimemachine: boolean expected":r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&!u.isInteger(r.dwellTimeMs)?"dwellTimeMs: integer expected":r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&!u.isInteger(r.discoverabilityAltitudeMeters)?"discoverabilityAltitudeMeters: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.TimeMachineOptionsProto)return r;var t=new n.keyhole.dbroot.TimeMachineOptionsProto;return r.serverUrl!=null&&(t.serverUrl=String(r.serverUrl)),r.isTimemachine!=null&&(t.isTimemachine=!!r.isTimemachine),r.dwellTimeMs!=null&&(t.dwellTimeMs=r.dwellTimeMs|0),r.discoverabilityAltitudeMeters!=null&&(t.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.serverUrl="",e.isTimemachine=!1,e.dwellTimeMs=500,e.discoverabilityAltitudeMeters=15e3),r.serverUrl!=null&&r.hasOwnProperty("serverUrl")&&(e.serverUrl=r.serverUrl),r.isTimemachine!=null&&r.hasOwnProperty("isTimemachine")&&(e.isTimemachine=r.isTimemachine),r.dwellTimeMs!=null&&r.hasOwnProperty("dwellTimeMs")&&(e.dwellTimeMs=r.dwellTimeMs),r.discoverabilityAltitudeMeters!=null&&r.hasOwnProperty("discoverabilityAltitudeMeters")&&(e.discoverabilityAltitudeMeters=r.discoverabilityAltitudeMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.TimeMachineOptionsProto"},i}(),c.AutopiaOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.metadataServerUrl="http://cbk0.google.com/cbk",i.prototype.depthmapServerUrl="http://cbk0.google.com/cbk",i.prototype.coverageOverlayUrl="",i.prototype.maxImageryQps=0,i.prototype.maxMetadataDepthmapQps=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.AutopiaOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.metadataServerUrl=r.string();break}case 2:{o.depthmapServerUrl=r.string();break}case 3:{o.coverageOverlayUrl=r.string();break}case 4:{o.maxImageryQps=r.float();break}case 5:{o.maxMetadataDepthmapQps=r.float();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&!u.isString(r.metadataServerUrl)?"metadataServerUrl: string expected":r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&!u.isString(r.depthmapServerUrl)?"depthmapServerUrl: string expected":r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&!u.isString(r.coverageOverlayUrl)?"coverageOverlayUrl: string expected":r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&typeof r.maxImageryQps!="number"?"maxImageryQps: number expected":r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&typeof r.maxMetadataDepthmapQps!="number"?"maxMetadataDepthmapQps: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.AutopiaOptionsProto)return r;var t=new n.keyhole.dbroot.AutopiaOptionsProto;return r.metadataServerUrl!=null&&(t.metadataServerUrl=String(r.metadataServerUrl)),r.depthmapServerUrl!=null&&(t.depthmapServerUrl=String(r.depthmapServerUrl)),r.coverageOverlayUrl!=null&&(t.coverageOverlayUrl=String(r.coverageOverlayUrl)),r.maxImageryQps!=null&&(t.maxImageryQps=Number(r.maxImageryQps)),r.maxMetadataDepthmapQps!=null&&(t.maxMetadataDepthmapQps=Number(r.maxMetadataDepthmapQps)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.metadataServerUrl="http://cbk0.google.com/cbk",e.depthmapServerUrl="http://cbk0.google.com/cbk",e.coverageOverlayUrl="",e.maxImageryQps=0,e.maxMetadataDepthmapQps=0),r.metadataServerUrl!=null&&r.hasOwnProperty("metadataServerUrl")&&(e.metadataServerUrl=r.metadataServerUrl),r.depthmapServerUrl!=null&&r.hasOwnProperty("depthmapServerUrl")&&(e.depthmapServerUrl=r.depthmapServerUrl),r.coverageOverlayUrl!=null&&r.hasOwnProperty("coverageOverlayUrl")&&(e.coverageOverlayUrl=r.coverageOverlayUrl),r.maxImageryQps!=null&&r.hasOwnProperty("maxImageryQps")&&(e.maxImageryQps=t.json&&!isFinite(r.maxImageryQps)?String(r.maxImageryQps):r.maxImageryQps),r.maxMetadataDepthmapQps!=null&&r.hasOwnProperty("maxMetadataDepthmapQps")&&(e.maxMetadataDepthmapQps=t.json&&!isFinite(r.maxMetadataDepthmapQps)?String(r.maxMetadataDepthmapQps):r.maxMetadataDepthmapQps),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.AutopiaOptionsProto"},i}(),c.CSIOptionsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.samplingPercentage=0,i.prototype.experimentId="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CSIOptionsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.samplingPercentage=r.int32();break}case 2:{o.experimentId=r.string();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&!u.isInteger(r.samplingPercentage)?"samplingPercentage: integer expected":r.experimentId!=null&&r.hasOwnProperty("experimentId")&&!u.isString(r.experimentId)?"experimentId: string expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CSIOptionsProto)return r;var t=new n.keyhole.dbroot.CSIOptionsProto;return r.samplingPercentage!=null&&(t.samplingPercentage=r.samplingPercentage|0),r.experimentId!=null&&(t.experimentId=String(r.experimentId)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.samplingPercentage=0,e.experimentId=""),r.samplingPercentage!=null&&r.hasOwnProperty("samplingPercentage")&&(e.samplingPercentage=r.samplingPercentage),r.experimentId!=null&&r.hasOwnProperty("experimentId")&&(e.experimentId=r.experimentId),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CSIOptionsProto"},i}(),c.SearchTabProto=function(){function i(l){if(this.inputBox=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.isVisible=!1,i.prototype.tabLabel=null,i.prototype.baseUrl="",i.prototype.viewportPrefix="",i.prototype.inputBox=u.emptyArray,i.prototype.requirement=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SearchTabProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.isVisible=r.bool();break}case 2:{o.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.baseUrl=r.string();break}case 4:{o.viewportPrefix=r.string();break}case 5:{o.inputBox&&o.inputBox.length||(o.inputBox=[]),o.inputBox.push(n.keyhole.dbroot.SearchTabProto.InputBoxInfo.decode(r,r.uint32()));break}case 6:{o.requirement=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("isVisible"))throw u.ProtocolError("missing required 'isVisible'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(typeof r.isVisible!="boolean")return"isVisible: boolean expected";if(r.tabLabel!=null&&r.hasOwnProperty("tabLabel")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tabLabel);if(t)return"tabLabel."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&!u.isString(r.baseUrl))return"baseUrl: string expected";if(r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&!u.isString(r.viewportPrefix))return"viewportPrefix: string expected";if(r.inputBox!=null&&r.hasOwnProperty("inputBox")){if(!Array.isArray(r.inputBox))return"inputBox: array expected";for(var e=0;e<r.inputBox.length;++e){var t=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.verify(r.inputBox[e]);if(t)return"inputBox."+t}}if(r.requirement!=null&&r.hasOwnProperty("requirement")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirement);if(t)return"requirement."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SearchTabProto)return r;var t=new n.keyhole.dbroot.SearchTabProto;if(r.isVisible!=null&&(t.isVisible=!!r.isVisible),r.tabLabel!=null){if(typeof r.tabLabel!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.tabLabel: object expected");t.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tabLabel)}if(r.baseUrl!=null&&(t.baseUrl=String(r.baseUrl)),r.viewportPrefix!=null&&(t.viewportPrefix=String(r.viewportPrefix)),r.inputBox){if(!Array.isArray(r.inputBox))throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: array expected");t.inputBox=[];for(var e=0;e<r.inputBox.length;++e){if(typeof r.inputBox[e]!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.inputBox: object expected");t.inputBox[e]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.fromObject(r.inputBox[e])}}if(r.requirement!=null){if(typeof r.requirement!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.requirement: object expected");t.requirement=n.keyhole.dbroot.RequirementProto.fromObject(r.requirement)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.inputBox=[]),t.defaults&&(e.isVisible=!1,e.tabLabel=null,e.baseUrl="",e.viewportPrefix="",e.requirement=null),r.isVisible!=null&&r.hasOwnProperty("isVisible")&&(e.isVisible=r.isVisible),r.tabLabel!=null&&r.hasOwnProperty("tabLabel")&&(e.tabLabel=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tabLabel,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=r.baseUrl),r.viewportPrefix!=null&&r.hasOwnProperty("viewportPrefix")&&(e.viewportPrefix=r.viewportPrefix),r.inputBox&&r.inputBox.length){e.inputBox=[];for(var o=0;o<r.inputBox.length;++o)e.inputBox[o]=n.keyhole.dbroot.SearchTabProto.InputBoxInfo.toObject(r.inputBox[o],t)}return r.requirement!=null&&r.hasOwnProperty("requirement")&&(e.requirement=n.keyhole.dbroot.RequirementProto.toObject(r.requirement,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SearchTabProto"},i.InputBoxInfo=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.label=null,l.prototype.queryVerb="",l.prototype.queryPrepend="",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.label=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 2:{a.queryVerb=t.string();break}case 3:{a.queryPrepend=t.string();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("label"))throw u.ProtocolError("missing required 'label'",{instance:a});if(!a.hasOwnProperty("queryVerb"))throw u.ProtocolError("missing required 'queryVerb'",{instance:a});return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";{var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.label);if(e)return"label."+e}return u.isString(t.queryVerb)?t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&!u.isString(t.queryPrepend)?"queryPrepend: string expected":null:"queryVerb: string expected"},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.SearchTabProto.InputBoxInfo)return t;var e=new n.keyhole.dbroot.SearchTabProto.InputBoxInfo;if(t.label!=null){if(typeof t.label!="object")throw TypeError(".keyhole.dbroot.SearchTabProto.InputBoxInfo.label: object expected");e.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.label)}return t.queryVerb!=null&&(e.queryVerb=String(t.queryVerb)),t.queryPrepend!=null&&(e.queryPrepend=String(t.queryPrepend)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.label=null,o.queryVerb="",o.queryPrepend=""),t.label!=null&&t.hasOwnProperty("label")&&(o.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.label,e)),t.queryVerb!=null&&t.hasOwnProperty("queryVerb")&&(o.queryVerb=t.queryVerb),t.queryPrepend!=null&&t.hasOwnProperty("queryPrepend")&&(o.queryPrepend=t.queryPrepend),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.SearchTabProto.InputBoxInfo"},l}(),i}(),c.CobrandProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.logoUrl="",i.prototype.xCoord=null,i.prototype.yCoord=null,i.prototype.tiePoint=6,i.prototype.screenSize=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.CobrandProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.logoUrl=r.string();break}case 2:{o.xCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 3:{o.yCoord=n.keyhole.dbroot.CobrandProto.Coord.decode(r,r.uint32());break}case 4:{o.tiePoint=r.int32();break}case 5:{o.screenSize=r.double();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("logoUrl"))throw u.ProtocolError("missing required 'logoUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.logoUrl))return"logoUrl: string expected";if(r.xCoord!=null&&r.hasOwnProperty("xCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.xCoord);if(t)return"xCoord."+t}if(r.yCoord!=null&&r.hasOwnProperty("yCoord")){var t=n.keyhole.dbroot.CobrandProto.Coord.verify(r.yCoord);if(t)return"yCoord."+t}if(r.tiePoint!=null&&r.hasOwnProperty("tiePoint"))switch(r.tiePoint){default:return"tiePoint: enum value expected";case 0:case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:break}return r.screenSize!=null&&r.hasOwnProperty("screenSize")&&typeof r.screenSize!="number"?"screenSize: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.CobrandProto)return r;var t=new n.keyhole.dbroot.CobrandProto;if(r.logoUrl!=null&&(t.logoUrl=String(r.logoUrl)),r.xCoord!=null){if(typeof r.xCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.xCoord: object expected");t.xCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.xCoord)}if(r.yCoord!=null){if(typeof r.yCoord!="object")throw TypeError(".keyhole.dbroot.CobrandProto.yCoord: object expected");t.yCoord=n.keyhole.dbroot.CobrandProto.Coord.fromObject(r.yCoord)}switch(r.tiePoint){case"TOP_LEFT":case 0:t.tiePoint=0;break;case"TOP_CENTER":case 1:t.tiePoint=1;break;case"TOP_RIGHT":case 2:t.tiePoint=2;break;case"MID_LEFT":case 3:t.tiePoint=3;break;case"MID_CENTER":case 4:t.tiePoint=4;break;case"MID_RIGHT":case 5:t.tiePoint=5;break;case"BOTTOM_LEFT":case 6:t.tiePoint=6;break;case"BOTTOM_CENTER":case 7:t.tiePoint=7;break;case"BOTTOM_RIGHT":case 8:t.tiePoint=8;break}return r.screenSize!=null&&(t.screenSize=Number(r.screenSize)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.logoUrl="",e.xCoord=null,e.yCoord=null,e.tiePoint=t.enums===String?"BOTTOM_LEFT":6,e.screenSize=0),r.logoUrl!=null&&r.hasOwnProperty("logoUrl")&&(e.logoUrl=r.logoUrl),r.xCoord!=null&&r.hasOwnProperty("xCoord")&&(e.xCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.xCoord,t)),r.yCoord!=null&&r.hasOwnProperty("yCoord")&&(e.yCoord=n.keyhole.dbroot.CobrandProto.Coord.toObject(r.yCoord,t)),r.tiePoint!=null&&r.hasOwnProperty("tiePoint")&&(e.tiePoint=t.enums===String?n.keyhole.dbroot.CobrandProto.TiePoint[r.tiePoint]:r.tiePoint),r.screenSize!=null&&r.hasOwnProperty("screenSize")&&(e.screenSize=t.json&&!isFinite(r.screenSize)?String(r.screenSize):r.screenSize),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.CobrandProto"},i.Coord=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.value=0,l.prototype.isRelative=!1,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.CobrandProto.Coord;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.value=t.double();break}case 2:{a.isRelative=t.bool();break}default:t.skipType(p&7);break}}if(!a.hasOwnProperty("value"))throw u.ProtocolError("missing required 'value'",{instance:a});return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":typeof t.value!="number"?"value: number expected":t.isRelative!=null&&t.hasOwnProperty("isRelative")&&typeof t.isRelative!="boolean"?"isRelative: boolean expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.CobrandProto.Coord)return t;var e=new n.keyhole.dbroot.CobrandProto.Coord;return t.value!=null&&(e.value=Number(t.value)),t.isRelative!=null&&(e.isRelative=!!t.isRelative),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.value=0,o.isRelative=!1),t.value!=null&&t.hasOwnProperty("value")&&(o.value=e.json&&!isFinite(t.value)?String(t.value):t.value),t.isRelative!=null&&t.hasOwnProperty("isRelative")&&(o.isRelative=t.isRelative),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.CobrandProto.Coord"},l}(),i.TiePoint=function(){var l={},r=Object.create(l);return r[l[0]="TOP_LEFT"]=0,r[l[1]="TOP_CENTER"]=1,r[l[2]="TOP_RIGHT"]=2,r[l[3]="MID_LEFT"]=3,r[l[4]="MID_CENTER"]=4,r[l[5]="MID_RIGHT"]=5,r[l[6]="BOTTOM_LEFT"]=6,r[l[7]="BOTTOM_CENTER"]=7,r[l[8]="BOTTOM_RIGHT"]=8,r}(),i}(),c.DatabaseDescriptionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.databaseUrl="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseDescriptionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.databaseUrl=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("databaseUrl"))throw u.ProtocolError("missing required 'databaseUrl'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}return u.isString(r.databaseUrl)?null:"databaseUrl: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseDescriptionProto)return r;var t=new n.keyhole.dbroot.DatabaseDescriptionProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DatabaseDescriptionProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}return r.databaseUrl!=null&&(t.databaseUrl=String(r.databaseUrl)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.databaseName=null,e.databaseUrl=""),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.databaseUrl!=null&&r.hasOwnProperty("databaseUrl")&&(e.databaseUrl=r.databaseUrl),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseDescriptionProto"},i}(),c.ConfigScriptProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.scriptName="",i.prototype.scriptData="",i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.ConfigScriptProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.scriptName=r.string();break}case 2:{o.scriptData=r.string();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("scriptName"))throw u.ProtocolError("missing required 'scriptName'",{instance:o});if(!o.hasOwnProperty("scriptData"))throw u.ProtocolError("missing required 'scriptData'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isString(r.scriptName)?u.isString(r.scriptData)?null:"scriptData: string expected":"scriptName: string expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.ConfigScriptProto)return r;var t=new n.keyhole.dbroot.ConfigScriptProto;return r.scriptName!=null&&(t.scriptName=String(r.scriptName)),r.scriptData!=null&&(t.scriptData=String(r.scriptData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.scriptName="",e.scriptData=""),r.scriptName!=null&&r.hasOwnProperty("scriptName")&&(e.scriptName=r.scriptName),r.scriptData!=null&&r.hasOwnProperty("scriptData")&&(e.scriptData=r.scriptData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.ConfigScriptProto"},i}(),c.SwoopParamsProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.startDistInMeters=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.SwoopParamsProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.startDistInMeters=r.double();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&typeof r.startDistInMeters!="number"?"startDistInMeters: number expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.SwoopParamsProto)return r;var t=new n.keyhole.dbroot.SwoopParamsProto;return r.startDistInMeters!=null&&(t.startDistInMeters=Number(r.startDistInMeters)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.startDistInMeters=0),r.startDistInMeters!=null&&r.hasOwnProperty("startDistInMeters")&&(e.startDistInMeters=t.json&&!isFinite(r.startDistInMeters)?String(r.startDistInMeters):r.startDistInMeters),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.SwoopParamsProto"},i}(),c.PostingServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.name=null,i.prototype.baseUrl=null,i.prototype.postWizardPath=null,i.prototype.fileSubmitPath=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PostingServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 4:{o.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.name!=null&&r.hasOwnProperty("name")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}if(r.baseUrl!=null&&r.hasOwnProperty("baseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.baseUrl);if(t)return"baseUrl."+t}if(r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.postWizardPath);if(t)return"postWizardPath."+t}if(r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.fileSubmitPath);if(t)return"fileSubmitPath."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PostingServerProto)return r;var t=new n.keyhole.dbroot.PostingServerProto;if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}if(r.baseUrl!=null){if(typeof r.baseUrl!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.baseUrl: object expected");t.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.baseUrl)}if(r.postWizardPath!=null){if(typeof r.postWizardPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.postWizardPath: object expected");t.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.postWizardPath)}if(r.fileSubmitPath!=null){if(typeof r.fileSubmitPath!="object")throw TypeError(".keyhole.dbroot.PostingServerProto.fileSubmitPath: object expected");t.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.fileSubmitPath)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.name=null,e.baseUrl=null,e.postWizardPath=null,e.fileSubmitPath=null),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),r.baseUrl!=null&&r.hasOwnProperty("baseUrl")&&(e.baseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.baseUrl,t)),r.postWizardPath!=null&&r.hasOwnProperty("postWizardPath")&&(e.postWizardPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.postWizardPath,t)),r.fileSubmitPath!=null&&r.hasOwnProperty("fileSubmitPath")&&(e.fileSubmitPath=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.fileSubmitPath,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PostingServerProto"},i}(),c.PlanetaryDatabaseProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.name=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.PlanetaryDatabaseProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.name=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});if(!o.hasOwnProperty("name"))throw u.ProtocolError("missing required 'name'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}{var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.name);if(t)return"name."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.PlanetaryDatabaseProto)return r;var t=new n.keyhole.dbroot.PlanetaryDatabaseProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}if(r.name!=null){if(typeof r.name!="object")throw TypeError(".keyhole.dbroot.PlanetaryDatabaseProto.name: object expected");t.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.name)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.name=null),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.name!=null&&r.hasOwnProperty("name")&&(e.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.name,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.PlanetaryDatabaseProto"},i}(),c.LogServerProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url=null,i.prototype.enable=!1,i.prototype.throttlingFactor=1,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.LogServerProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.url=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 2:{o.enable=r.bool();break}case 3:{o.throttlingFactor=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.url!=null&&r.hasOwnProperty("url")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.url);if(t)return"url."+t}return r.enable!=null&&r.hasOwnProperty("enable")&&typeof r.enable!="boolean"?"enable: boolean expected":r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&!u.isInteger(r.throttlingFactor)?"throttlingFactor: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.LogServerProto)return r;var t=new n.keyhole.dbroot.LogServerProto;if(r.url!=null){if(typeof r.url!="object")throw TypeError(".keyhole.dbroot.LogServerProto.url: object expected");t.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.url)}return r.enable!=null&&(t.enable=!!r.enable),r.throttlingFactor!=null&&(t.throttlingFactor=r.throttlingFactor|0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.url=null,e.enable=!1,e.throttlingFactor=1),r.url!=null&&r.hasOwnProperty("url")&&(e.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.url,t)),r.enable!=null&&r.hasOwnProperty("enable")&&(e.enable=r.enable),r.throttlingFactor!=null&&r.hasOwnProperty("throttlingFactor")&&(e.throttlingFactor=r.throttlingFactor),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.LogServerProto"},i}(),c.EndSnippetProto=function(){function i(l){if(this.mfeDomains=[],this.searchTab=[],this.cobrandInfo=[],this.validDatabase=[],this.configScript=[],this.planetaryDatabase=[],this.filmstripConfig=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.model=null,i.prototype.authServerUrl=null,i.prototype.disableAuthentication=!1,i.prototype.mfeDomains=u.emptyArray,i.prototype.mfeLangParam="hl=$5Bhl5D",i.prototype.adsUrlPatterns="",i.prototype.reverseGeocoderUrl=null,i.prototype.reverseGeocoderProtocolVersion=3,i.prototype.skyDatabaseIsAvailable=!0,i.prototype.skyDatabaseUrl=null,i.prototype.defaultWebPageIntlUrl=null,i.prototype.numStartUpTips=17,i.prototype.startUpTipsUrl=null,i.prototype.numProStartUpTips=0,i.prototype.proStartUpTipsUrl=null,i.prototype.startupTipsIntlUrl=null,i.prototype.userGuideIntlUrl=null,i.prototype.supportCenterIntlUrl=null,i.prototype.businessListingIntlUrl=null,i.prototype.supportAnswerIntlUrl=null,i.prototype.supportTopicIntlUrl=null,i.prototype.supportRequestIntlUrl=null,i.prototype.earthIntlUrl=null,i.prototype.addContentUrl=null,i.prototype.sketchupNotInstalledUrl=null,i.prototype.sketchupErrorUrl=null,i.prototype.freeLicenseUrl=null,i.prototype.proLicenseUrl=null,i.prototype.tutorialUrl=null,i.prototype.keyboardShortcutsUrl=null,i.prototype.releaseNotesUrl=null,i.prototype.hideUserData=!1,i.prototype.useGeLogo=!0,i.prototype.dioramaDescriptionUrlBase=null,i.prototype.dioramaDefaultColor=4291281607,i.prototype.dioramaBlacklistUrl=null,i.prototype.clientOptions=null,i.prototype.fetchingOptions=null,i.prototype.timeMachineOptions=null,i.prototype.csiOptions=null,i.prototype.searchTab=u.emptyArray,i.prototype.cobrandInfo=u.emptyArray,i.prototype.validDatabase=u.emptyArray,i.prototype.configScript=u.emptyArray,i.prototype.deauthServerUrl=null,i.prototype.swoopParameters=null,i.prototype.bbsServerInfo=null,i.prototype.dataErrorServerInfo=null,i.prototype.planetaryDatabase=u.emptyArray,i.prototype.logServer=null,i.prototype.autopiaOptions=null,i.prototype.searchConfig=null,i.prototype.searchInfo=null,i.prototype.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",i.prototype.elevationProfileQueryDelay=500,i.prototype.proUpgradeUrl=null,i.prototype.earthCommunityUrl=null,i.prototype.googleMapsUrl=null,i.prototype.sharingUrl=null,i.prototype.privacyPolicyUrl=null,i.prototype.doGplusUserCheck=!1,i.prototype.rocktreeDataProto=null,i.prototype.filmstripConfig=u.emptyArray,i.prototype.showSigninButton=!1,i.prototype.proMeasureUpsellUrl=null,i.prototype.proPrintUpsellUrl=null,i.prototype.starDataProto=null,i.prototype.feedbackUrl=null,i.prototype.oauth2LoginUrl=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EndSnippetProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.model=n.keyhole.dbroot.PlanetModelProto.decode(r,r.uint32());break}case 2:{o.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 3:{o.disableAuthentication=r.bool();break}case 4:{o.mfeDomains&&o.mfeDomains.length||(o.mfeDomains=[]),o.mfeDomains.push(n.keyhole.dbroot.MfeDomainFeaturesProto.decode(r,r.uint32()));break}case 5:{o.mfeLangParam=r.string();break}case 6:{o.adsUrlPatterns=r.string();break}case 7:{o.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 8:{o.reverseGeocoderProtocolVersion=r.int32();break}case 9:{o.skyDatabaseIsAvailable=r.bool();break}case 10:{o.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 11:{o.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 12:{o.numStartUpTips=r.int32();break}case 13:{o.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 51:{o.numProStartUpTips=r.int32();break}case 52:{o.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 64:{o.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 14:{o.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 15:{o.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 16:{o.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 17:{o.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 18:{o.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 19:{o.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 20:{o.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 21:{o.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 22:{o.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 23:{o.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 24:{o.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 25:{o.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 48:{o.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 49:{o.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 50:{o.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 26:{o.hideUserData=r.bool();break}case 27:{o.useGeLogo=r.bool();break}case 28:{o.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 29:{o.dioramaDefaultColor=r.uint32();break}case 53:{o.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 30:{o.clientOptions=n.keyhole.dbroot.ClientOptionsProto.decode(r,r.uint32());break}case 31:{o.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.decode(r,r.uint32());break}case 32:{o.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.decode(r,r.uint32());break}case 33:{o.csiOptions=n.keyhole.dbroot.CSIOptionsProto.decode(r,r.uint32());break}case 34:{o.searchTab&&o.searchTab.length||(o.searchTab=[]),o.searchTab.push(n.keyhole.dbroot.SearchTabProto.decode(r,r.uint32()));break}case 35:{o.cobrandInfo&&o.cobrandInfo.length||(o.cobrandInfo=[]),o.cobrandInfo.push(n.keyhole.dbroot.CobrandProto.decode(r,r.uint32()));break}case 36:{o.validDatabase&&o.validDatabase.length||(o.validDatabase=[]),o.validDatabase.push(n.keyhole.dbroot.DatabaseDescriptionProto.decode(r,r.uint32()));break}case 37:{o.configScript&&o.configScript.length||(o.configScript=[]),o.configScript.push(n.keyhole.dbroot.ConfigScriptProto.decode(r,r.uint32()));break}case 38:{o.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 39:{o.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.decode(r,r.uint32());break}case 40:{o.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 41:{o.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.decode(r,r.uint32());break}case 42:{o.planetaryDatabase&&o.planetaryDatabase.length||(o.planetaryDatabase=[]),o.planetaryDatabase.push(n.keyhole.dbroot.PlanetaryDatabaseProto.decode(r,r.uint32()));break}case 43:{o.logServer=n.keyhole.dbroot.LogServerProto.decode(r,r.uint32());break}case 44:{o.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.decode(r,r.uint32());break}case 54:{o.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.decode(r,r.uint32());break}case 45:{o.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.decode(r,r.uint32());break}case 46:{o.elevationServiceBaseUrl=r.string();break}case 47:{o.elevationProfileQueryDelay=r.int32();break}case 55:{o.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 56:{o.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 57:{o.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 58:{o.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 59:{o.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 60:{o.doGplusUserCheck=r.bool();break}case 61:{o.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.decode(r,r.uint32());break}case 62:{o.filmstripConfig&&o.filmstripConfig.length||(o.filmstripConfig=[]),o.filmstripConfig.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.decode(r,r.uint32()));break}case 63:{o.showSigninButton=r.bool();break}case 65:{o.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 66:{o.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 67:{o.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.decode(r,r.uint32());break}case 68:{o.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 69:{o.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.model!=null&&r.hasOwnProperty("model")){var t=n.keyhole.dbroot.PlanetModelProto.verify(r.model);if(t)return"model."+t}if(r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.authServerUrl);if(t)return"authServerUrl."+t}if(r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&typeof r.disableAuthentication!="boolean")return"disableAuthentication: boolean expected";if(r.mfeDomains!=null&&r.hasOwnProperty("mfeDomains")){if(!Array.isArray(r.mfeDomains))return"mfeDomains: array expected";for(var e=0;e<r.mfeDomains.length;++e){var t=n.keyhole.dbroot.MfeDomainFeaturesProto.verify(r.mfeDomains[e]);if(t)return"mfeDomains."+t}}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&!u.isString(r.mfeLangParam))return"mfeLangParam: string expected";if(r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&!u.isString(r.adsUrlPatterns))return"adsUrlPatterns: string expected";if(r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.reverseGeocoderUrl);if(t)return"reverseGeocoderUrl."+t}if(r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&!u.isInteger(r.reverseGeocoderProtocolVersion))return"reverseGeocoderProtocolVersion: integer expected";if(r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&typeof r.skyDatabaseIsAvailable!="boolean")return"skyDatabaseIsAvailable: boolean expected";if(r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.skyDatabaseUrl);if(t)return"skyDatabaseUrl."+t}if(r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.defaultWebPageIntlUrl);if(t)return"defaultWebPageIntlUrl."+t}if(r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&!u.isInteger(r.numStartUpTips))return"numStartUpTips: integer expected";if(r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startUpTipsUrl);if(t)return"startUpTipsUrl."+t}if(r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&!u.isInteger(r.numProStartUpTips))return"numProStartUpTips: integer expected";if(r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proStartUpTipsUrl);if(t)return"proStartUpTipsUrl."+t}if(r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.startupTipsIntlUrl);if(t)return"startupTipsIntlUrl."+t}if(r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.userGuideIntlUrl);if(t)return"userGuideIntlUrl."+t}if(r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportCenterIntlUrl);if(t)return"supportCenterIntlUrl."+t}if(r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.businessListingIntlUrl);if(t)return"businessListingIntlUrl."+t}if(r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportAnswerIntlUrl);if(t)return"supportAnswerIntlUrl."+t}if(r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportTopicIntlUrl);if(t)return"supportTopicIntlUrl."+t}if(r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.supportRequestIntlUrl);if(t)return"supportRequestIntlUrl."+t}if(r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthIntlUrl);if(t)return"earthIntlUrl."+t}if(r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.addContentUrl);if(t)return"addContentUrl."+t}if(r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupNotInstalledUrl);if(t)return"sketchupNotInstalledUrl."+t}if(r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sketchupErrorUrl);if(t)return"sketchupErrorUrl."+t}if(r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.freeLicenseUrl);if(t)return"freeLicenseUrl."+t}if(r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proLicenseUrl);if(t)return"proLicenseUrl."+t}if(r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.tutorialUrl);if(t)return"tutorialUrl."+t}if(r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.keyboardShortcutsUrl);if(t)return"keyboardShortcutsUrl."+t}if(r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.releaseNotesUrl);if(t)return"releaseNotesUrl."+t}if(r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&typeof r.hideUserData!="boolean")return"hideUserData: boolean expected";if(r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&typeof r.useGeLogo!="boolean")return"useGeLogo: boolean expected";if(r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaDescriptionUrlBase);if(t)return"dioramaDescriptionUrlBase."+t}if(r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&!u.isInteger(r.dioramaDefaultColor))return"dioramaDefaultColor: integer expected";if(r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.dioramaBlacklistUrl);if(t)return"dioramaBlacklistUrl."+t}if(r.clientOptions!=null&&r.hasOwnProperty("clientOptions")){var t=n.keyhole.dbroot.ClientOptionsProto.verify(r.clientOptions);if(t)return"clientOptions."+t}if(r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")){var t=n.keyhole.dbroot.FetchingOptionsProto.verify(r.fetchingOptions);if(t)return"fetchingOptions."+t}if(r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")){var t=n.keyhole.dbroot.TimeMachineOptionsProto.verify(r.timeMachineOptions);if(t)return"timeMachineOptions."+t}if(r.csiOptions!=null&&r.hasOwnProperty("csiOptions")){var t=n.keyhole.dbroot.CSIOptionsProto.verify(r.csiOptions);if(t)return"csiOptions."+t}if(r.searchTab!=null&&r.hasOwnProperty("searchTab")){if(!Array.isArray(r.searchTab))return"searchTab: array expected";for(var e=0;e<r.searchTab.length;++e){var t=n.keyhole.dbroot.SearchTabProto.verify(r.searchTab[e]);if(t)return"searchTab."+t}}if(r.cobrandInfo!=null&&r.hasOwnProperty("cobrandInfo")){if(!Array.isArray(r.cobrandInfo))return"cobrandInfo: array expected";for(var e=0;e<r.cobrandInfo.length;++e){var t=n.keyhole.dbroot.CobrandProto.verify(r.cobrandInfo[e]);if(t)return"cobrandInfo."+t}}if(r.validDatabase!=null&&r.hasOwnProperty("validDatabase")){if(!Array.isArray(r.validDatabase))return"validDatabase: array expected";for(var e=0;e<r.validDatabase.length;++e){var t=n.keyhole.dbroot.DatabaseDescriptionProto.verify(r.validDatabase[e]);if(t)return"validDatabase."+t}}if(r.configScript!=null&&r.hasOwnProperty("configScript")){if(!Array.isArray(r.configScript))return"configScript: array expected";for(var e=0;e<r.configScript.length;++e){var t=n.keyhole.dbroot.ConfigScriptProto.verify(r.configScript[e]);if(t)return"configScript."+t}}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.deauthServerUrl);if(t)return"deauthServerUrl."+t}if(r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")){var t=n.keyhole.dbroot.SwoopParamsProto.verify(r.swoopParameters);if(t)return"swoopParameters."+t}if(r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.bbsServerInfo);if(t)return"bbsServerInfo."+t}if(r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")){var t=n.keyhole.dbroot.PostingServerProto.verify(r.dataErrorServerInfo);if(t)return"dataErrorServerInfo."+t}if(r.planetaryDatabase!=null&&r.hasOwnProperty("planetaryDatabase")){if(!Array.isArray(r.planetaryDatabase))return"planetaryDatabase: array expected";for(var e=0;e<r.planetaryDatabase.length;++e){var t=n.keyhole.dbroot.PlanetaryDatabaseProto.verify(r.planetaryDatabase[e]);if(t)return"planetaryDatabase."+t}}if(r.logServer!=null&&r.hasOwnProperty("logServer")){var t=n.keyhole.dbroot.LogServerProto.verify(r.logServer);if(t)return"logServer."+t}if(r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")){var t=n.keyhole.dbroot.AutopiaOptionsProto.verify(r.autopiaOptions);if(t)return"autopiaOptions."+t}if(r.searchConfig!=null&&r.hasOwnProperty("searchConfig")){var t=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.verify(r.searchConfig);if(t)return"searchConfig."+t}if(r.searchInfo!=null&&r.hasOwnProperty("searchInfo")){var t=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.verify(r.searchInfo);if(t)return"searchInfo."+t}if(r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&!u.isString(r.elevationServiceBaseUrl))return"elevationServiceBaseUrl: string expected";if(r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&!u.isInteger(r.elevationProfileQueryDelay))return"elevationProfileQueryDelay: integer expected";if(r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proUpgradeUrl);if(t)return"proUpgradeUrl."+t}if(r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.earthCommunityUrl);if(t)return"earthCommunityUrl."+t}if(r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.googleMapsUrl);if(t)return"googleMapsUrl."+t}if(r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.sharingUrl);if(t)return"sharingUrl."+t}if(r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.privacyPolicyUrl);if(t)return"privacyPolicyUrl."+t}if(r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&typeof r.doGplusUserCheck!="boolean")return"doGplusUserCheck: boolean expected";if(r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.verify(r.rocktreeDataProto);if(t)return"rocktreeDataProto."+t}if(r.filmstripConfig!=null&&r.hasOwnProperty("filmstripConfig")){if(!Array.isArray(r.filmstripConfig))return"filmstripConfig: array expected";for(var e=0;e<r.filmstripConfig.length;++e){var t=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.verify(r.filmstripConfig[e]);if(t)return"filmstripConfig."+t}}if(r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&typeof r.showSigninButton!="boolean")return"showSigninButton: boolean expected";if(r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proMeasureUpsellUrl);if(t)return"proMeasureUpsellUrl."+t}if(r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.proPrintUpsellUrl);if(t)return"proPrintUpsellUrl."+t}if(r.starDataProto!=null&&r.hasOwnProperty("starDataProto")){var t=n.keyhole.dbroot.EndSnippetProto.StarDataProto.verify(r.starDataProto);if(t)return"starDataProto."+t}if(r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.feedbackUrl);if(t)return"feedbackUrl."+t}if(r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.oauth2LoginUrl);if(t)return"oauth2LoginUrl."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EndSnippetProto)return r;var t=new n.keyhole.dbroot.EndSnippetProto;if(r.model!=null){if(typeof r.model!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.model: object expected");t.model=n.keyhole.dbroot.PlanetModelProto.fromObject(r.model)}if(r.authServerUrl!=null){if(typeof r.authServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.authServerUrl: object expected");t.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.authServerUrl)}if(r.disableAuthentication!=null&&(t.disableAuthentication=!!r.disableAuthentication),r.mfeDomains){if(!Array.isArray(r.mfeDomains))throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: array expected");t.mfeDomains=[];for(var e=0;e<r.mfeDomains.length;++e){if(typeof r.mfeDomains[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.mfeDomains: object expected");t.mfeDomains[e]=n.keyhole.dbroot.MfeDomainFeaturesProto.fromObject(r.mfeDomains[e])}}if(r.mfeLangParam!=null&&(t.mfeLangParam=String(r.mfeLangParam)),r.adsUrlPatterns!=null&&(t.adsUrlPatterns=String(r.adsUrlPatterns)),r.reverseGeocoderUrl!=null){if(typeof r.reverseGeocoderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.reverseGeocoderUrl: object expected");t.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.reverseGeocoderUrl)}if(r.reverseGeocoderProtocolVersion!=null&&(t.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion|0),r.skyDatabaseIsAvailable!=null&&(t.skyDatabaseIsAvailable=!!r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null){if(typeof r.skyDatabaseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.skyDatabaseUrl: object expected");t.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.skyDatabaseUrl)}if(r.defaultWebPageIntlUrl!=null){if(typeof r.defaultWebPageIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.defaultWebPageIntlUrl: object expected");t.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.defaultWebPageIntlUrl)}if(r.numStartUpTips!=null&&(t.numStartUpTips=r.numStartUpTips|0),r.startUpTipsUrl!=null){if(typeof r.startUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startUpTipsUrl: object expected");t.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startUpTipsUrl)}if(r.numProStartUpTips!=null&&(t.numProStartUpTips=r.numProStartUpTips|0),r.proStartUpTipsUrl!=null){if(typeof r.proStartUpTipsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proStartUpTipsUrl: object expected");t.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proStartUpTipsUrl)}if(r.startupTipsIntlUrl!=null){if(typeof r.startupTipsIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.startupTipsIntlUrl: object expected");t.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.startupTipsIntlUrl)}if(r.userGuideIntlUrl!=null){if(typeof r.userGuideIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.userGuideIntlUrl: object expected");t.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.userGuideIntlUrl)}if(r.supportCenterIntlUrl!=null){if(typeof r.supportCenterIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportCenterIntlUrl: object expected");t.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportCenterIntlUrl)}if(r.businessListingIntlUrl!=null){if(typeof r.businessListingIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.businessListingIntlUrl: object expected");t.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.businessListingIntlUrl)}if(r.supportAnswerIntlUrl!=null){if(typeof r.supportAnswerIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportAnswerIntlUrl: object expected");t.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportAnswerIntlUrl)}if(r.supportTopicIntlUrl!=null){if(typeof r.supportTopicIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportTopicIntlUrl: object expected");t.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportTopicIntlUrl)}if(r.supportRequestIntlUrl!=null){if(typeof r.supportRequestIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.supportRequestIntlUrl: object expected");t.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.supportRequestIntlUrl)}if(r.earthIntlUrl!=null){if(typeof r.earthIntlUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthIntlUrl: object expected");t.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthIntlUrl)}if(r.addContentUrl!=null){if(typeof r.addContentUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.addContentUrl: object expected");t.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.addContentUrl)}if(r.sketchupNotInstalledUrl!=null){if(typeof r.sketchupNotInstalledUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupNotInstalledUrl: object expected");t.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupNotInstalledUrl)}if(r.sketchupErrorUrl!=null){if(typeof r.sketchupErrorUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sketchupErrorUrl: object expected");t.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sketchupErrorUrl)}if(r.freeLicenseUrl!=null){if(typeof r.freeLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.freeLicenseUrl: object expected");t.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.freeLicenseUrl)}if(r.proLicenseUrl!=null){if(typeof r.proLicenseUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proLicenseUrl: object expected");t.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proLicenseUrl)}if(r.tutorialUrl!=null){if(typeof r.tutorialUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.tutorialUrl: object expected");t.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.tutorialUrl)}if(r.keyboardShortcutsUrl!=null){if(typeof r.keyboardShortcutsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.keyboardShortcutsUrl: object expected");t.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.keyboardShortcutsUrl)}if(r.releaseNotesUrl!=null){if(typeof r.releaseNotesUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.releaseNotesUrl: object expected");t.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.releaseNotesUrl)}if(r.hideUserData!=null&&(t.hideUserData=!!r.hideUserData),r.useGeLogo!=null&&(t.useGeLogo=!!r.useGeLogo),r.dioramaDescriptionUrlBase!=null){if(typeof r.dioramaDescriptionUrlBase!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaDescriptionUrlBase: object expected");t.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaDescriptionUrlBase)}if(r.dioramaDefaultColor!=null&&(t.dioramaDefaultColor=r.dioramaDefaultColor>>>0),r.dioramaBlacklistUrl!=null){if(typeof r.dioramaBlacklistUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dioramaBlacklistUrl: object expected");t.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.dioramaBlacklistUrl)}if(r.clientOptions!=null){if(typeof r.clientOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.clientOptions: object expected");t.clientOptions=n.keyhole.dbroot.ClientOptionsProto.fromObject(r.clientOptions)}if(r.fetchingOptions!=null){if(typeof r.fetchingOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.fetchingOptions: object expected");t.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.fromObject(r.fetchingOptions)}if(r.timeMachineOptions!=null){if(typeof r.timeMachineOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.timeMachineOptions: object expected");t.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.fromObject(r.timeMachineOptions)}if(r.csiOptions!=null){if(typeof r.csiOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.csiOptions: object expected");t.csiOptions=n.keyhole.dbroot.CSIOptionsProto.fromObject(r.csiOptions)}if(r.searchTab){if(!Array.isArray(r.searchTab))throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: array expected");t.searchTab=[];for(var e=0;e<r.searchTab.length;++e){if(typeof r.searchTab[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchTab: object expected");t.searchTab[e]=n.keyhole.dbroot.SearchTabProto.fromObject(r.searchTab[e])}}if(r.cobrandInfo){if(!Array.isArray(r.cobrandInfo))throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: array expected");t.cobrandInfo=[];for(var e=0;e<r.cobrandInfo.length;++e){if(typeof r.cobrandInfo[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.cobrandInfo: object expected");t.cobrandInfo[e]=n.keyhole.dbroot.CobrandProto.fromObject(r.cobrandInfo[e])}}if(r.validDatabase){if(!Array.isArray(r.validDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: array expected");t.validDatabase=[];for(var e=0;e<r.validDatabase.length;++e){if(typeof r.validDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.validDatabase: object expected");t.validDatabase[e]=n.keyhole.dbroot.DatabaseDescriptionProto.fromObject(r.validDatabase[e])}}if(r.configScript){if(!Array.isArray(r.configScript))throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: array expected");t.configScript=[];for(var e=0;e<r.configScript.length;++e){if(typeof r.configScript[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.configScript: object expected");t.configScript[e]=n.keyhole.dbroot.ConfigScriptProto.fromObject(r.configScript[e])}}if(r.deauthServerUrl!=null){if(typeof r.deauthServerUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.deauthServerUrl: object expected");t.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.deauthServerUrl)}if(r.swoopParameters!=null){if(typeof r.swoopParameters!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.swoopParameters: object expected");t.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.fromObject(r.swoopParameters)}if(r.bbsServerInfo!=null){if(typeof r.bbsServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.bbsServerInfo: object expected");t.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.bbsServerInfo)}if(r.dataErrorServerInfo!=null){if(typeof r.dataErrorServerInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.dataErrorServerInfo: object expected");t.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.fromObject(r.dataErrorServerInfo)}if(r.planetaryDatabase){if(!Array.isArray(r.planetaryDatabase))throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: array expected");t.planetaryDatabase=[];for(var e=0;e<r.planetaryDatabase.length;++e){if(typeof r.planetaryDatabase[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.planetaryDatabase: object expected");t.planetaryDatabase[e]=n.keyhole.dbroot.PlanetaryDatabaseProto.fromObject(r.planetaryDatabase[e])}}if(r.logServer!=null){if(typeof r.logServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.logServer: object expected");t.logServer=n.keyhole.dbroot.LogServerProto.fromObject(r.logServer)}if(r.autopiaOptions!=null){if(typeof r.autopiaOptions!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.autopiaOptions: object expected");t.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.fromObject(r.autopiaOptions)}if(r.searchConfig!=null){if(typeof r.searchConfig!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchConfig: object expected");t.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.fromObject(r.searchConfig)}if(r.searchInfo!=null){if(typeof r.searchInfo!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.searchInfo: object expected");t.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.fromObject(r.searchInfo)}if(r.elevationServiceBaseUrl!=null&&(t.elevationServiceBaseUrl=String(r.elevationServiceBaseUrl)),r.elevationProfileQueryDelay!=null&&(t.elevationProfileQueryDelay=r.elevationProfileQueryDelay|0),r.proUpgradeUrl!=null){if(typeof r.proUpgradeUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proUpgradeUrl: object expected");t.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proUpgradeUrl)}if(r.earthCommunityUrl!=null){if(typeof r.earthCommunityUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.earthCommunityUrl: object expected");t.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.earthCommunityUrl)}if(r.googleMapsUrl!=null){if(typeof r.googleMapsUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.googleMapsUrl: object expected");t.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.googleMapsUrl)}if(r.sharingUrl!=null){if(typeof r.sharingUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.sharingUrl: object expected");t.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.sharingUrl)}if(r.privacyPolicyUrl!=null){if(typeof r.privacyPolicyUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.privacyPolicyUrl: object expected");t.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.privacyPolicyUrl)}if(r.doGplusUserCheck!=null&&(t.doGplusUserCheck=!!r.doGplusUserCheck),r.rocktreeDataProto!=null){if(typeof r.rocktreeDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.rocktreeDataProto: object expected");t.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.fromObject(r.rocktreeDataProto)}if(r.filmstripConfig){if(!Array.isArray(r.filmstripConfig))throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: array expected");t.filmstripConfig=[];for(var e=0;e<r.filmstripConfig.length;++e){if(typeof r.filmstripConfig[e]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.filmstripConfig: object expected");t.filmstripConfig[e]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fromObject(r.filmstripConfig[e])}}if(r.showSigninButton!=null&&(t.showSigninButton=!!r.showSigninButton),r.proMeasureUpsellUrl!=null){if(typeof r.proMeasureUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proMeasureUpsellUrl: object expected");t.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proMeasureUpsellUrl)}if(r.proPrintUpsellUrl!=null){if(typeof r.proPrintUpsellUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.proPrintUpsellUrl: object expected");t.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.proPrintUpsellUrl)}if(r.starDataProto!=null){if(typeof r.starDataProto!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.starDataProto: object expected");t.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.fromObject(r.starDataProto)}if(r.feedbackUrl!=null){if(typeof r.feedbackUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.feedbackUrl: object expected");t.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.feedbackUrl)}if(r.oauth2LoginUrl!=null){if(typeof r.oauth2LoginUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.oauth2LoginUrl: object expected");t.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.oauth2LoginUrl)}return t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.mfeDomains=[],e.searchTab=[],e.cobrandInfo=[],e.validDatabase=[],e.configScript=[],e.planetaryDatabase=[],e.filmstripConfig=[]),t.defaults&&(e.model=null,e.authServerUrl=null,e.disableAuthentication=!1,e.mfeLangParam="hl=$5Bhl5D",e.adsUrlPatterns="",e.reverseGeocoderUrl=null,e.reverseGeocoderProtocolVersion=3,e.skyDatabaseIsAvailable=!0,e.skyDatabaseUrl=null,e.defaultWebPageIntlUrl=null,e.numStartUpTips=17,e.startUpTipsUrl=null,e.userGuideIntlUrl=null,e.supportCenterIntlUrl=null,e.businessListingIntlUrl=null,e.supportAnswerIntlUrl=null,e.supportTopicIntlUrl=null,e.supportRequestIntlUrl=null,e.earthIntlUrl=null,e.addContentUrl=null,e.sketchupNotInstalledUrl=null,e.sketchupErrorUrl=null,e.freeLicenseUrl=null,e.proLicenseUrl=null,e.hideUserData=!1,e.useGeLogo=!0,e.dioramaDescriptionUrlBase=null,e.dioramaDefaultColor=4291281607,e.clientOptions=null,e.fetchingOptions=null,e.timeMachineOptions=null,e.csiOptions=null,e.deauthServerUrl=null,e.swoopParameters=null,e.bbsServerInfo=null,e.dataErrorServerInfo=null,e.logServer=null,e.autopiaOptions=null,e.searchInfo=null,e.elevationServiceBaseUrl="http://maps.google.com/maps/api/elevation/",e.elevationProfileQueryDelay=500,e.tutorialUrl=null,e.keyboardShortcutsUrl=null,e.releaseNotesUrl=null,e.numProStartUpTips=0,e.proStartUpTipsUrl=null,e.dioramaBlacklistUrl=null,e.searchConfig=null,e.proUpgradeUrl=null,e.earthCommunityUrl=null,e.googleMapsUrl=null,e.sharingUrl=null,e.privacyPolicyUrl=null,e.doGplusUserCheck=!1,e.rocktreeDataProto=null,e.showSigninButton=!1,e.startupTipsIntlUrl=null,e.proMeasureUpsellUrl=null,e.proPrintUpsellUrl=null,e.starDataProto=null,e.feedbackUrl=null,e.oauth2LoginUrl=null),r.model!=null&&r.hasOwnProperty("model")&&(e.model=n.keyhole.dbroot.PlanetModelProto.toObject(r.model,t)),r.authServerUrl!=null&&r.hasOwnProperty("authServerUrl")&&(e.authServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.authServerUrl,t)),r.disableAuthentication!=null&&r.hasOwnProperty("disableAuthentication")&&(e.disableAuthentication=r.disableAuthentication),r.mfeDomains&&r.mfeDomains.length){e.mfeDomains=[];for(var o=0;o<r.mfeDomains.length;++o)e.mfeDomains[o]=n.keyhole.dbroot.MfeDomainFeaturesProto.toObject(r.mfeDomains[o],t)}if(r.mfeLangParam!=null&&r.hasOwnProperty("mfeLangParam")&&(e.mfeLangParam=r.mfeLangParam),r.adsUrlPatterns!=null&&r.hasOwnProperty("adsUrlPatterns")&&(e.adsUrlPatterns=r.adsUrlPatterns),r.reverseGeocoderUrl!=null&&r.hasOwnProperty("reverseGeocoderUrl")&&(e.reverseGeocoderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.reverseGeocoderUrl,t)),r.reverseGeocoderProtocolVersion!=null&&r.hasOwnProperty("reverseGeocoderProtocolVersion")&&(e.reverseGeocoderProtocolVersion=r.reverseGeocoderProtocolVersion),r.skyDatabaseIsAvailable!=null&&r.hasOwnProperty("skyDatabaseIsAvailable")&&(e.skyDatabaseIsAvailable=r.skyDatabaseIsAvailable),r.skyDatabaseUrl!=null&&r.hasOwnProperty("skyDatabaseUrl")&&(e.skyDatabaseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.skyDatabaseUrl,t)),r.defaultWebPageIntlUrl!=null&&r.hasOwnProperty("defaultWebPageIntlUrl")&&(e.defaultWebPageIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.defaultWebPageIntlUrl,t)),r.numStartUpTips!=null&&r.hasOwnProperty("numStartUpTips")&&(e.numStartUpTips=r.numStartUpTips),r.startUpTipsUrl!=null&&r.hasOwnProperty("startUpTipsUrl")&&(e.startUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startUpTipsUrl,t)),r.userGuideIntlUrl!=null&&r.hasOwnProperty("userGuideIntlUrl")&&(e.userGuideIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.userGuideIntlUrl,t)),r.supportCenterIntlUrl!=null&&r.hasOwnProperty("supportCenterIntlUrl")&&(e.supportCenterIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportCenterIntlUrl,t)),r.businessListingIntlUrl!=null&&r.hasOwnProperty("businessListingIntlUrl")&&(e.businessListingIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.businessListingIntlUrl,t)),r.supportAnswerIntlUrl!=null&&r.hasOwnProperty("supportAnswerIntlUrl")&&(e.supportAnswerIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportAnswerIntlUrl,t)),r.supportTopicIntlUrl!=null&&r.hasOwnProperty("supportTopicIntlUrl")&&(e.supportTopicIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportTopicIntlUrl,t)),r.supportRequestIntlUrl!=null&&r.hasOwnProperty("supportRequestIntlUrl")&&(e.supportRequestIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.supportRequestIntlUrl,t)),r.earthIntlUrl!=null&&r.hasOwnProperty("earthIntlUrl")&&(e.earthIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthIntlUrl,t)),r.addContentUrl!=null&&r.hasOwnProperty("addContentUrl")&&(e.addContentUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.addContentUrl,t)),r.sketchupNotInstalledUrl!=null&&r.hasOwnProperty("sketchupNotInstalledUrl")&&(e.sketchupNotInstalledUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupNotInstalledUrl,t)),r.sketchupErrorUrl!=null&&r.hasOwnProperty("sketchupErrorUrl")&&(e.sketchupErrorUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sketchupErrorUrl,t)),r.freeLicenseUrl!=null&&r.hasOwnProperty("freeLicenseUrl")&&(e.freeLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.freeLicenseUrl,t)),r.proLicenseUrl!=null&&r.hasOwnProperty("proLicenseUrl")&&(e.proLicenseUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proLicenseUrl,t)),r.hideUserData!=null&&r.hasOwnProperty("hideUserData")&&(e.hideUserData=r.hideUserData),r.useGeLogo!=null&&r.hasOwnProperty("useGeLogo")&&(e.useGeLogo=r.useGeLogo),r.dioramaDescriptionUrlBase!=null&&r.hasOwnProperty("dioramaDescriptionUrlBase")&&(e.dioramaDescriptionUrlBase=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaDescriptionUrlBase,t)),r.dioramaDefaultColor!=null&&r.hasOwnProperty("dioramaDefaultColor")&&(e.dioramaDefaultColor=r.dioramaDefaultColor),r.clientOptions!=null&&r.hasOwnProperty("clientOptions")&&(e.clientOptions=n.keyhole.dbroot.ClientOptionsProto.toObject(r.clientOptions,t)),r.fetchingOptions!=null&&r.hasOwnProperty("fetchingOptions")&&(e.fetchingOptions=n.keyhole.dbroot.FetchingOptionsProto.toObject(r.fetchingOptions,t)),r.timeMachineOptions!=null&&r.hasOwnProperty("timeMachineOptions")&&(e.timeMachineOptions=n.keyhole.dbroot.TimeMachineOptionsProto.toObject(r.timeMachineOptions,t)),r.csiOptions!=null&&r.hasOwnProperty("csiOptions")&&(e.csiOptions=n.keyhole.dbroot.CSIOptionsProto.toObject(r.csiOptions,t)),r.searchTab&&r.searchTab.length){e.searchTab=[];for(var o=0;o<r.searchTab.length;++o)e.searchTab[o]=n.keyhole.dbroot.SearchTabProto.toObject(r.searchTab[o],t)}if(r.cobrandInfo&&r.cobrandInfo.length){e.cobrandInfo=[];for(var o=0;o<r.cobrandInfo.length;++o)e.cobrandInfo[o]=n.keyhole.dbroot.CobrandProto.toObject(r.cobrandInfo[o],t)}if(r.validDatabase&&r.validDatabase.length){e.validDatabase=[];for(var o=0;o<r.validDatabase.length;++o)e.validDatabase[o]=n.keyhole.dbroot.DatabaseDescriptionProto.toObject(r.validDatabase[o],t)}if(r.configScript&&r.configScript.length){e.configScript=[];for(var o=0;o<r.configScript.length;++o)e.configScript[o]=n.keyhole.dbroot.ConfigScriptProto.toObject(r.configScript[o],t)}if(r.deauthServerUrl!=null&&r.hasOwnProperty("deauthServerUrl")&&(e.deauthServerUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.deauthServerUrl,t)),r.swoopParameters!=null&&r.hasOwnProperty("swoopParameters")&&(e.swoopParameters=n.keyhole.dbroot.SwoopParamsProto.toObject(r.swoopParameters,t)),r.bbsServerInfo!=null&&r.hasOwnProperty("bbsServerInfo")&&(e.bbsServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.bbsServerInfo,t)),r.dataErrorServerInfo!=null&&r.hasOwnProperty("dataErrorServerInfo")&&(e.dataErrorServerInfo=n.keyhole.dbroot.PostingServerProto.toObject(r.dataErrorServerInfo,t)),r.planetaryDatabase&&r.planetaryDatabase.length){e.planetaryDatabase=[];for(var o=0;o<r.planetaryDatabase.length;++o)e.planetaryDatabase[o]=n.keyhole.dbroot.PlanetaryDatabaseProto.toObject(r.planetaryDatabase[o],t)}if(r.logServer!=null&&r.hasOwnProperty("logServer")&&(e.logServer=n.keyhole.dbroot.LogServerProto.toObject(r.logServer,t)),r.autopiaOptions!=null&&r.hasOwnProperty("autopiaOptions")&&(e.autopiaOptions=n.keyhole.dbroot.AutopiaOptionsProto.toObject(r.autopiaOptions,t)),r.searchInfo!=null&&r.hasOwnProperty("searchInfo")&&(e.searchInfo=n.keyhole.dbroot.EndSnippetProto.SearchInfoProto.toObject(r.searchInfo,t)),r.elevationServiceBaseUrl!=null&&r.hasOwnProperty("elevationServiceBaseUrl")&&(e.elevationServiceBaseUrl=r.elevationServiceBaseUrl),r.elevationProfileQueryDelay!=null&&r.hasOwnProperty("elevationProfileQueryDelay")&&(e.elevationProfileQueryDelay=r.elevationProfileQueryDelay),r.tutorialUrl!=null&&r.hasOwnProperty("tutorialUrl")&&(e.tutorialUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.tutorialUrl,t)),r.keyboardShortcutsUrl!=null&&r.hasOwnProperty("keyboardShortcutsUrl")&&(e.keyboardShortcutsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.keyboardShortcutsUrl,t)),r.releaseNotesUrl!=null&&r.hasOwnProperty("releaseNotesUrl")&&(e.releaseNotesUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.releaseNotesUrl,t)),r.numProStartUpTips!=null&&r.hasOwnProperty("numProStartUpTips")&&(e.numProStartUpTips=r.numProStartUpTips),r.proStartUpTipsUrl!=null&&r.hasOwnProperty("proStartUpTipsUrl")&&(e.proStartUpTipsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proStartUpTipsUrl,t)),r.dioramaBlacklistUrl!=null&&r.hasOwnProperty("dioramaBlacklistUrl")&&(e.dioramaBlacklistUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.dioramaBlacklistUrl,t)),r.searchConfig!=null&&r.hasOwnProperty("searchConfig")&&(e.searchConfig=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.toObject(r.searchConfig,t)),r.proUpgradeUrl!=null&&r.hasOwnProperty("proUpgradeUrl")&&(e.proUpgradeUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proUpgradeUrl,t)),r.earthCommunityUrl!=null&&r.hasOwnProperty("earthCommunityUrl")&&(e.earthCommunityUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.earthCommunityUrl,t)),r.googleMapsUrl!=null&&r.hasOwnProperty("googleMapsUrl")&&(e.googleMapsUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.googleMapsUrl,t)),r.sharingUrl!=null&&r.hasOwnProperty("sharingUrl")&&(e.sharingUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.sharingUrl,t)),r.privacyPolicyUrl!=null&&r.hasOwnProperty("privacyPolicyUrl")&&(e.privacyPolicyUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.privacyPolicyUrl,t)),r.doGplusUserCheck!=null&&r.hasOwnProperty("doGplusUserCheck")&&(e.doGplusUserCheck=r.doGplusUserCheck),r.rocktreeDataProto!=null&&r.hasOwnProperty("rocktreeDataProto")&&(e.rocktreeDataProto=n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto.toObject(r.rocktreeDataProto,t)),r.filmstripConfig&&r.filmstripConfig.length){e.filmstripConfig=[];for(var o=0;o<r.filmstripConfig.length;++o)e.filmstripConfig[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.toObject(r.filmstripConfig[o],t)}return r.showSigninButton!=null&&r.hasOwnProperty("showSigninButton")&&(e.showSigninButton=r.showSigninButton),r.startupTipsIntlUrl!=null&&r.hasOwnProperty("startupTipsIntlUrl")&&(e.startupTipsIntlUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.startupTipsIntlUrl,t)),r.proMeasureUpsellUrl!=null&&r.hasOwnProperty("proMeasureUpsellUrl")&&(e.proMeasureUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proMeasureUpsellUrl,t)),r.proPrintUpsellUrl!=null&&r.hasOwnProperty("proPrintUpsellUrl")&&(e.proPrintUpsellUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.proPrintUpsellUrl,t)),r.starDataProto!=null&&r.hasOwnProperty("starDataProto")&&(e.starDataProto=n.keyhole.dbroot.EndSnippetProto.StarDataProto.toObject(r.starDataProto,t)),r.feedbackUrl!=null&&r.hasOwnProperty("feedbackUrl")&&(e.feedbackUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.feedbackUrl,t)),r.oauth2LoginUrl!=null&&r.hasOwnProperty("oauth2LoginUrl")&&(e.oauth2LoginUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.oauth2LoginUrl,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EndSnippetProto"},i.SearchConfigProto=function(){function l(r){if(this.searchServer=[],this.oneboxService=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.searchServer=u.emptyArray,l.prototype.oneboxService=u.emptyArray,l.prototype.kmlSearchUrl=null,l.prototype.kmlRenderUrl=null,l.prototype.searchHistoryUrl=null,l.prototype.errorPageUrl=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.searchServer&&a.searchServer.length||(a.searchServer=[]),a.searchServer.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.decode(t,t.uint32()));break}case 2:{a.oneboxService&&a.oneboxService.length||(a.oneboxService=[]),a.oneboxService.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.decode(t,t.uint32()));break}case 3:{a.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.searchServer!=null&&t.hasOwnProperty("searchServer")){if(!Array.isArray(t.searchServer))return"searchServer: array expected";for(var e=0;e<t.searchServer.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.verify(t.searchServer[e]);if(o)return"searchServer."+o}}if(t.oneboxService!=null&&t.hasOwnProperty("oneboxService")){if(!Array.isArray(t.oneboxService))return"oneboxService: array expected";for(var e=0;e<t.oneboxService.length;++e){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.verify(t.oneboxService[e]);if(o)return"oneboxService."+o}}if(t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlSearchUrl);if(o)return"kmlSearchUrl."+o}if(t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlRenderUrl);if(o)return"kmlRenderUrl."+o}if(t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.searchHistoryUrl);if(o)return"searchHistoryUrl."+o}if(t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(t.errorPageUrl);if(o)return"errorPageUrl."+o}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto;if(t.searchServer){if(!Array.isArray(t.searchServer))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: array expected");e.searchServer=[];for(var o=0;o<t.searchServer.length;++o){if(typeof t.searchServer[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchServer: object expected");e.searchServer[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.fromObject(t.searchServer[o])}}if(t.oneboxService){if(!Array.isArray(t.oneboxService))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: array expected");e.oneboxService=[];for(var o=0;o<t.oneboxService.length;++o){if(typeof t.oneboxService[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.oneboxService: object expected");e.oneboxService[o]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.fromObject(t.oneboxService[o])}}if(t.kmlSearchUrl!=null){if(typeof t.kmlSearchUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlSearchUrl: object expected");e.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlSearchUrl)}if(t.kmlRenderUrl!=null){if(typeof t.kmlRenderUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.kmlRenderUrl: object expected");e.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlRenderUrl)}if(t.searchHistoryUrl!=null){if(typeof t.searchHistoryUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.searchHistoryUrl: object expected");e.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.searchHistoryUrl)}if(t.errorPageUrl!=null){if(typeof t.errorPageUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.errorPageUrl: object expected");e.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.errorPageUrl)}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.searchServer=[],o.oneboxService=[]),e.defaults&&(o.kmlSearchUrl=null,o.kmlRenderUrl=null,o.errorPageUrl=null,o.searchHistoryUrl=null),t.searchServer&&t.searchServer.length){o.searchServer=[];for(var a=0;a<t.searchServer.length;++a)o.searchServer[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.toObject(t.searchServer[a],e)}if(t.oneboxService&&t.oneboxService.length){o.oneboxService=[];for(var a=0;a<t.oneboxService.length;++a)o.oneboxService[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.toObject(t.oneboxService[a],e)}return t.kmlSearchUrl!=null&&t.hasOwnProperty("kmlSearchUrl")&&(o.kmlSearchUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlSearchUrl,e)),t.kmlRenderUrl!=null&&t.hasOwnProperty("kmlRenderUrl")&&(o.kmlRenderUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlRenderUrl,e)),t.errorPageUrl!=null&&t.hasOwnProperty("errorPageUrl")&&(o.errorPageUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.errorPageUrl,e)),t.searchHistoryUrl!=null&&t.hasOwnProperty("searchHistoryUrl")&&(o.searchHistoryUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.searchHistoryUrl,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto"},l.SearchServer=function(){function r(t){if(this.suggestion=[],this.searchlet=[],t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.name=null,r.prototype.url=null,r.prototype.type=0,r.prototype.htmlTransformUrl=null,r.prototype.kmlTransformUrl=null,r.prototype.supplementalUi=null,r.prototype.suggestion=u.emptyArray,r.prototype.searchlet=u.emptyArray,r.prototype.requirements=null,r.prototype.suggestServer=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.name=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.url=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 3:{p.type=e.int32();break}case 4:{p.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 6:{p.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.decode(e,e.uint32());break}case 9:{p.suggestion&&p.suggestion.length||(p.suggestion=[]),p.suggestion.push(n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32()));break}case 7:{p.searchlet&&p.searchlet.length||(p.searchlet=[]),p.searchlet.push(n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.decode(e,e.uint32()));break}case 8:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}case 10:{p.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.name!=null&&e.hasOwnProperty("name")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.name);if(o)return"name."+o}if(e.url!=null&&e.hasOwnProperty("url")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.url);if(o)return"url."+o}if(e.type!=null&&e.hasOwnProperty("type"))switch(e.type){default:return"type: enum value expected";case 0:case 1:break}if(e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.htmlTransformUrl);if(o)return"htmlTransformUrl."+o}if(e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlTransformUrl);if(o)return"kmlTransformUrl."+o}if(e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.verify(e.supplementalUi);if(o)return"supplementalUi."+o}if(e.suggestion!=null&&e.hasOwnProperty("suggestion")){if(!Array.isArray(e.suggestion))return"suggestion: array expected";for(var a=0;a<e.suggestion.length;++a){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestion[a]);if(o)return"suggestion."+o}}if(e.searchlet!=null&&e.hasOwnProperty("searchlet")){if(!Array.isArray(e.searchlet))return"searchlet: array expected";for(var a=0;a<e.searchlet.length;++a){var o=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.verify(e.searchlet[a]);if(o)return"searchlet."+o}}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}if(e.suggestServer!=null&&e.hasOwnProperty("suggestServer")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.suggestServer);if(o)return"suggestServer."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer;if(e.name!=null){if(typeof e.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.name: object expected");o.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.name)}if(e.url!=null){if(typeof e.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.url: object expected");o.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.url)}switch(e.type){case"RESULT_TYPE_KML":case 0:o.type=0;break;case"RESULT_TYPE_XML":case 1:o.type=1;break}if(e.htmlTransformUrl!=null){if(typeof e.htmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.htmlTransformUrl: object expected");o.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.htmlTransformUrl)}if(e.kmlTransformUrl!=null){if(typeof e.kmlTransformUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.kmlTransformUrl: object expected");o.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlTransformUrl)}if(e.supplementalUi!=null){if(typeof e.supplementalUi!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.supplementalUi: object expected");o.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.fromObject(e.supplementalUi)}if(e.suggestion){if(!Array.isArray(e.suggestion))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: array expected");o.suggestion=[];for(var a=0;a<e.suggestion.length;++a){if(typeof e.suggestion[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestion: object expected");o.suggestion[a]=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestion[a])}}if(e.searchlet){if(!Array.isArray(e.searchlet))throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: array expected");o.searchlet=[];for(var a=0;a<e.searchlet.length;++a){if(typeof e.searchlet[a]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.searchlet: object expected");o.searchlet[a]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.fromObject(e.searchlet[a])}}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}if(e.suggestServer!=null){if(typeof e.suggestServer!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.suggestServer: object expected");o.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.suggestServer)}return o},r.toObject=function(e,o){o||(o={});var a={};if((o.arrays||o.defaults)&&(a.searchlet=[],a.suggestion=[]),o.defaults&&(a.name=null,a.url=null,a.type=o.enums===String?"RESULT_TYPE_KML":0,a.htmlTransformUrl=null,a.kmlTransformUrl=null,a.supplementalUi=null,a.requirements=null,a.suggestServer=null),e.name!=null&&e.hasOwnProperty("name")&&(a.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.name,o)),e.url!=null&&e.hasOwnProperty("url")&&(a.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.url,o)),e.type!=null&&e.hasOwnProperty("type")&&(a.type=o.enums===String?n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.ResultType[e.type]:e.type),e.htmlTransformUrl!=null&&e.hasOwnProperty("htmlTransformUrl")&&(a.htmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.htmlTransformUrl,o)),e.kmlTransformUrl!=null&&e.hasOwnProperty("kmlTransformUrl")&&(a.kmlTransformUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlTransformUrl,o)),e.supplementalUi!=null&&e.hasOwnProperty("supplementalUi")&&(a.supplementalUi=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.toObject(e.supplementalUi,o)),e.searchlet&&e.searchlet.length){a.searchlet=[];for(var p=0;p<e.searchlet.length;++p)a.searchlet[p]=n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.toObject(e.searchlet[p],o)}if(e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),e.suggestion&&e.suggestion.length){a.suggestion=[];for(var p=0;p<e.suggestion.length;++p)a.suggestion[p]=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestion[p],o)}return e.suggestServer!=null&&e.hasOwnProperty("suggestServer")&&(a.suggestServer=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.suggestServer,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer"},r.ResultType=function(){var t={},e=Object.create(t);return e[t[0]="RESULT_TYPE_KML"]=0,e[t[1]="RESULT_TYPE_XML"]=1,e}(),r.SupplementalUi=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.label=null,t.prototype.height=160,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.label=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.height=o.int32();break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.label!=null&&o.hasOwnProperty("label")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.label);if(a)return"label."+a}return o.height!=null&&o.hasOwnProperty("height")&&!u.isInteger(o.height)?"height: integer expected":null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.label!=null){if(typeof o.label!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi.label: object expected");a.label=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.label)}return o.height!=null&&(a.height=o.height|0),a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.label=null,p.height=160),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.label!=null&&o.hasOwnProperty("label")&&(p.label=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.label,a)),o.height!=null&&o.hasOwnProperty("height")&&(p.height=o.height),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SupplementalUi"},t}(),r.SearchletProto=function(){function t(e){if(e)for(var o=Object.keys(e),a=0;a<o.length;++a)e[o[a]]!=null&&(this[o[a]]=e[o[a]])}return t.prototype.url=null,t.prototype.name=null,t.prototype.requirements=null,t.decode=function(o,a){o instanceof f||(o=f.create(o));for(var p=a===void 0?o.len:o.pos+a,y=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;o.pos<p;){var h=o.uint32();switch(h>>>3){case 1:{y.url=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 2:{y.name=n.keyhole.dbroot.StringIdOrValueProto.decode(o,o.uint32());break}case 3:{y.requirements=n.keyhole.dbroot.RequirementProto.decode(o,o.uint32());break}default:o.skipType(h&7);break}}return y},t.verify=function(o){if(typeof o!="object"||o===null)return"object expected";if(o.url!=null&&o.hasOwnProperty("url")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.url);if(a)return"url."+a}if(o.name!=null&&o.hasOwnProperty("name")){var a=n.keyhole.dbroot.StringIdOrValueProto.verify(o.name);if(a)return"name."+a}if(o.requirements!=null&&o.hasOwnProperty("requirements")){var a=n.keyhole.dbroot.RequirementProto.verify(o.requirements);if(a)return"requirements."+a}return null},t.fromObject=function(o){if(o instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto)return o;var a=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto;if(o.url!=null){if(typeof o.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.url: object expected");a.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.url)}if(o.name!=null){if(typeof o.name!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.name: object expected");a.name=n.keyhole.dbroot.StringIdOrValueProto.fromObject(o.name)}if(o.requirements!=null){if(typeof o.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto.requirements: object expected");a.requirements=n.keyhole.dbroot.RequirementProto.fromObject(o.requirements)}return a},t.toObject=function(o,a){a||(a={});var p={};return a.defaults&&(p.url=null,p.name=null,p.requirements=null),o.url!=null&&o.hasOwnProperty("url")&&(p.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.url,a)),o.name!=null&&o.hasOwnProperty("name")&&(p.name=n.keyhole.dbroot.StringIdOrValueProto.toObject(o.name,a)),o.requirements!=null&&o.hasOwnProperty("requirements")&&(p.requirements=n.keyhole.dbroot.RequirementProto.toObject(o.requirements,a)),p},t.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},t.getTypeUrl=function(o){return o===void 0&&(o="type.googleapis.com"),o+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.SearchServer.SearchletProto"},t}(),r}(),l.OneboxServiceProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.serviceUrl=null,r.prototype.requirements=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 2:{p.requirements=n.keyhole.dbroot.RequirementProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.serviceUrl);if(o)return"serviceUrl."+o}if(e.requirements!=null&&e.hasOwnProperty("requirements")){var o=n.keyhole.dbroot.RequirementProto.verify(e.requirements);if(o)return"requirements."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto;if(e.serviceUrl!=null){if(typeof e.serviceUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.serviceUrl: object expected");o.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.serviceUrl)}if(e.requirements!=null){if(typeof e.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto.requirements: object expected");o.requirements=n.keyhole.dbroot.RequirementProto.fromObject(e.requirements)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.serviceUrl=null,a.requirements=null),e.serviceUrl!=null&&e.hasOwnProperty("serviceUrl")&&(a.serviceUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.serviceUrl,o)),e.requirements!=null&&e.hasOwnProperty("requirements")&&(a.requirements=n.keyhole.dbroot.RequirementProto.toObject(e.requirements,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.SearchConfigProto.OneboxServiceProto"},r}(),l}(),i.SearchInfoProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.defaultUrl="http://maps.google.com/maps",l.prototype.geocodeParam="q",l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.defaultUrl=t.string();break}case 2:{a.geocodeParam=t.string();break}default:t.skipType(p&7);break}}return a},l.verify=function(t){return typeof t!="object"||t===null?"object expected":t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&!u.isString(t.defaultUrl)?"defaultUrl: string expected":t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&!u.isString(t.geocodeParam)?"geocodeParam: string expected":null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.SearchInfoProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.SearchInfoProto;return t.defaultUrl!=null&&(e.defaultUrl=String(t.defaultUrl)),t.geocodeParam!=null&&(e.geocodeParam=String(t.geocodeParam)),e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.defaultUrl="http://maps.google.com/maps",o.geocodeParam="q"),t.defaultUrl!=null&&t.hasOwnProperty("defaultUrl")&&(o.defaultUrl=t.defaultUrl),t.geocodeParam!=null&&t.hasOwnProperty("geocodeParam")&&(o.geocodeParam=t.geocodeParam),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.SearchInfoProto"},l}(),i.RockTreeDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.RockTreeDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.RockTreeDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.RockTreeDataProto"},l}(),i.FilmstripConfigProto=function(){function l(r){if(this.imageryType=[],r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.requirements=null,l.prototype.alleycatUrlTemplate=null,l.prototype.fallbackAlleycatUrlTemplate=null,l.prototype.metadataUrlTemplate=null,l.prototype.thumbnailUrlTemplate=null,l.prototype.kmlUrlTemplate=null,l.prototype.featuredToursUrl=null,l.prototype.enableViewportFallback=!1,l.prototype.viewportFallbackDistance=0,l.prototype.imageryType=u.emptyArray,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.requirements=n.keyhole.dbroot.RequirementProto.decode(t,t.uint32());break}case 2:{a.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 9:{a.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 3:{a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 4:{a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 5:{a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 6:{a.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}case 7:{a.enableViewportFallback=t.bool();break}case 8:{a.viewportFallbackDistance=t.uint32();break}case 10:{a.imageryType&&a.imageryType.length||(a.imageryType=[]),a.imageryType.push(n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.decode(t,t.uint32()));break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.requirements!=null&&t.hasOwnProperty("requirements")){var e=n.keyhole.dbroot.RequirementProto.verify(t.requirements);if(e)return"requirements."+e}if(t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.alleycatUrlTemplate);if(e)return"alleycatUrlTemplate."+e}if(t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.fallbackAlleycatUrlTemplate);if(e)return"fallbackAlleycatUrlTemplate."+e}if(t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.metadataUrlTemplate);if(e)return"metadataUrlTemplate."+e}if(t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.thumbnailUrlTemplate);if(e)return"thumbnailUrlTemplate."+e}if(t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.kmlUrlTemplate);if(e)return"kmlUrlTemplate."+e}if(t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.featuredToursUrl);if(e)return"featuredToursUrl."+e}if(t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&typeof t.enableViewportFallback!="boolean")return"enableViewportFallback: boolean expected";if(t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&!u.isInteger(t.viewportFallbackDistance))return"viewportFallbackDistance: integer expected";if(t.imageryType!=null&&t.hasOwnProperty("imageryType")){if(!Array.isArray(t.imageryType))return"imageryType: array expected";for(var o=0;o<t.imageryType.length;++o){var e=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.verify(t.imageryType[o]);if(e)return"imageryType."+e}}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto;if(t.requirements!=null){if(typeof t.requirements!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.requirements: object expected");e.requirements=n.keyhole.dbroot.RequirementProto.fromObject(t.requirements)}if(t.alleycatUrlTemplate!=null){if(typeof t.alleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.alleycatUrlTemplate: object expected");e.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.alleycatUrlTemplate)}if(t.fallbackAlleycatUrlTemplate!=null){if(typeof t.fallbackAlleycatUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.fallbackAlleycatUrlTemplate: object expected");e.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.fallbackAlleycatUrlTemplate)}if(t.metadataUrlTemplate!=null){if(typeof t.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.metadataUrlTemplate: object expected");e.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.metadataUrlTemplate)}if(t.thumbnailUrlTemplate!=null){if(typeof t.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.thumbnailUrlTemplate: object expected");e.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.thumbnailUrlTemplate)}if(t.kmlUrlTemplate!=null){if(typeof t.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.kmlUrlTemplate: object expected");e.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.kmlUrlTemplate)}if(t.featuredToursUrl!=null){if(typeof t.featuredToursUrl!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.featuredToursUrl: object expected");e.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.featuredToursUrl)}if(t.enableViewportFallback!=null&&(e.enableViewportFallback=!!t.enableViewportFallback),t.viewportFallbackDistance!=null&&(e.viewportFallbackDistance=t.viewportFallbackDistance>>>0),t.imageryType){if(!Array.isArray(t.imageryType))throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: array expected");e.imageryType=[];for(var o=0;o<t.imageryType.length;++o){if(typeof t.imageryType[o]!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.imageryType: object expected");e.imageryType[o]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.fromObject(t.imageryType[o])}}return e},l.toObject=function(t,e){e||(e={});var o={};if((e.arrays||e.defaults)&&(o.imageryType=[]),e.defaults&&(o.requirements=null,o.alleycatUrlTemplate=null,o.metadataUrlTemplate=null,o.thumbnailUrlTemplate=null,o.kmlUrlTemplate=null,o.featuredToursUrl=null,o.enableViewportFallback=!1,o.viewportFallbackDistance=0,o.fallbackAlleycatUrlTemplate=null),t.requirements!=null&&t.hasOwnProperty("requirements")&&(o.requirements=n.keyhole.dbroot.RequirementProto.toObject(t.requirements,e)),t.alleycatUrlTemplate!=null&&t.hasOwnProperty("alleycatUrlTemplate")&&(o.alleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.alleycatUrlTemplate,e)),t.metadataUrlTemplate!=null&&t.hasOwnProperty("metadataUrlTemplate")&&(o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.metadataUrlTemplate,e)),t.thumbnailUrlTemplate!=null&&t.hasOwnProperty("thumbnailUrlTemplate")&&(o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.thumbnailUrlTemplate,e)),t.kmlUrlTemplate!=null&&t.hasOwnProperty("kmlUrlTemplate")&&(o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.kmlUrlTemplate,e)),t.featuredToursUrl!=null&&t.hasOwnProperty("featuredToursUrl")&&(o.featuredToursUrl=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.featuredToursUrl,e)),t.enableViewportFallback!=null&&t.hasOwnProperty("enableViewportFallback")&&(o.enableViewportFallback=t.enableViewportFallback),t.viewportFallbackDistance!=null&&t.hasOwnProperty("viewportFallbackDistance")&&(o.viewportFallbackDistance=t.viewportFallbackDistance),t.fallbackAlleycatUrlTemplate!=null&&t.hasOwnProperty("fallbackAlleycatUrlTemplate")&&(o.fallbackAlleycatUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.fallbackAlleycatUrlTemplate,e)),t.imageryType&&t.imageryType.length){o.imageryType=[];for(var a=0;a<t.imageryType.length;++a)o.imageryType[a]=n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.toObject(t.imageryType[a],e)}return o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto"},l.AlleycatImageryTypeProto=function(){function r(t){if(t)for(var e=Object.keys(t),o=0;o<e.length;++o)t[e[o]]!=null&&(this[e[o]]=t[e[o]])}return r.prototype.imageryTypeId=0,r.prototype.imageryTypeLabel="",r.prototype.metadataUrlTemplate=null,r.prototype.thumbnailUrlTemplate=null,r.prototype.kmlUrlTemplate=null,r.decode=function(e,o){e instanceof f||(e=f.create(e));for(var a=o===void 0?e.len:e.pos+o,p=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;e.pos<a;){var y=e.uint32();switch(y>>>3){case 1:{p.imageryTypeId=e.int32();break}case 2:{p.imageryTypeLabel=e.string();break}case 3:{p.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 4:{p.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}case 5:{p.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.decode(e,e.uint32());break}default:e.skipType(y&7);break}}return p},r.verify=function(e){if(typeof e!="object"||e===null)return"object expected";if(e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&!u.isInteger(e.imageryTypeId))return"imageryTypeId: integer expected";if(e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&!u.isString(e.imageryTypeLabel))return"imageryTypeLabel: string expected";if(e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.metadataUrlTemplate);if(o)return"metadataUrlTemplate."+o}if(e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.thumbnailUrlTemplate);if(o)return"thumbnailUrlTemplate."+o}if(e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")){var o=n.keyhole.dbroot.StringIdOrValueProto.verify(e.kmlUrlTemplate);if(o)return"kmlUrlTemplate."+o}return null},r.fromObject=function(e){if(e instanceof n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto)return e;var o=new n.keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto;if(e.imageryTypeId!=null&&(o.imageryTypeId=e.imageryTypeId|0),e.imageryTypeLabel!=null&&(o.imageryTypeLabel=String(e.imageryTypeLabel)),e.metadataUrlTemplate!=null){if(typeof e.metadataUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.metadataUrlTemplate: object expected");o.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.metadataUrlTemplate)}if(e.thumbnailUrlTemplate!=null){if(typeof e.thumbnailUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.thumbnailUrlTemplate: object expected");o.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.thumbnailUrlTemplate)}if(e.kmlUrlTemplate!=null){if(typeof e.kmlUrlTemplate!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto.kmlUrlTemplate: object expected");o.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.fromObject(e.kmlUrlTemplate)}return o},r.toObject=function(e,o){o||(o={});var a={};return o.defaults&&(a.imageryTypeId=0,a.imageryTypeLabel="",a.metadataUrlTemplate=null,a.thumbnailUrlTemplate=null,a.kmlUrlTemplate=null),e.imageryTypeId!=null&&e.hasOwnProperty("imageryTypeId")&&(a.imageryTypeId=e.imageryTypeId),e.imageryTypeLabel!=null&&e.hasOwnProperty("imageryTypeLabel")&&(a.imageryTypeLabel=e.imageryTypeLabel),e.metadataUrlTemplate!=null&&e.hasOwnProperty("metadataUrlTemplate")&&(a.metadataUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.metadataUrlTemplate,o)),e.thumbnailUrlTemplate!=null&&e.hasOwnProperty("thumbnailUrlTemplate")&&(a.thumbnailUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.thumbnailUrlTemplate,o)),e.kmlUrlTemplate!=null&&e.hasOwnProperty("kmlUrlTemplate")&&(a.kmlUrlTemplate=n.keyhole.dbroot.StringIdOrValueProto.toObject(e.kmlUrlTemplate,o)),a},r.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},r.getTypeUrl=function(e){return e===void 0&&(e="type.googleapis.com"),e+"/keyhole.dbroot.EndSnippetProto.FilmstripConfigProto.AlleycatImageryTypeProto"},r}(),l}(),i.StarDataProto=function(){function l(r){if(r)for(var t=Object.keys(r),e=0;e<t.length;++e)r[t[e]]!=null&&(this[t[e]]=r[t[e]])}return l.prototype.url=null,l.decode=function(t,e){t instanceof f||(t=f.create(t));for(var o=e===void 0?t.len:t.pos+e,a=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;t.pos<o;){var p=t.uint32();switch(p>>>3){case 1:{a.url=n.keyhole.dbroot.StringIdOrValueProto.decode(t,t.uint32());break}default:t.skipType(p&7);break}}return a},l.verify=function(t){if(typeof t!="object"||t===null)return"object expected";if(t.url!=null&&t.hasOwnProperty("url")){var e=n.keyhole.dbroot.StringIdOrValueProto.verify(t.url);if(e)return"url."+e}return null},l.fromObject=function(t){if(t instanceof n.keyhole.dbroot.EndSnippetProto.StarDataProto)return t;var e=new n.keyhole.dbroot.EndSnippetProto.StarDataProto;if(t.url!=null){if(typeof t.url!="object")throw TypeError(".keyhole.dbroot.EndSnippetProto.StarDataProto.url: object expected");e.url=n.keyhole.dbroot.StringIdOrValueProto.fromObject(t.url)}return e},l.toObject=function(t,e){e||(e={});var o={};return e.defaults&&(o.url=null),t.url!=null&&t.hasOwnProperty("url")&&(o.url=n.keyhole.dbroot.StringIdOrValueProto.toObject(t.url,e)),o},l.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},l.getTypeUrl=function(t){return t===void 0&&(t="type.googleapis.com"),t+"/keyhole.dbroot.EndSnippetProto.StarDataProto"},l}(),i}(),c.DbRootRefProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.url="",i.prototype.isCritical=!1,i.prototype.requirements=null,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootRefProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 2:{o.url=r.string();break}case 1:{o.isCritical=r.bool();break}case 3:{o.requirements=n.keyhole.dbroot.RequirementProto.decode(r,r.uint32());break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("url"))throw u.ProtocolError("missing required 'url'",{instance:o});return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(!u.isString(r.url))return"url: string expected";if(r.isCritical!=null&&r.hasOwnProperty("isCritical")&&typeof r.isCritical!="boolean")return"isCritical: boolean expected";if(r.requirements!=null&&r.hasOwnProperty("requirements")){var t=n.keyhole.dbroot.RequirementProto.verify(r.requirements);if(t)return"requirements."+t}return null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootRefProto)return r;var t=new n.keyhole.dbroot.DbRootRefProto;if(r.url!=null&&(t.url=String(r.url)),r.isCritical!=null&&(t.isCritical=!!r.isCritical),r.requirements!=null){if(typeof r.requirements!="object")throw TypeError(".keyhole.dbroot.DbRootRefProto.requirements: object expected");t.requirements=n.keyhole.dbroot.RequirementProto.fromObject(r.requirements)}return t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.isCritical=!1,e.url="",e.requirements=null),r.isCritical!=null&&r.hasOwnProperty("isCritical")&&(e.isCritical=r.isCritical),r.url!=null&&r.hasOwnProperty("url")&&(e.url=r.url),r.requirements!=null&&r.hasOwnProperty("requirements")&&(e.requirements=n.keyhole.dbroot.RequirementProto.toObject(r.requirements,t)),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootRefProto"},i}(),c.DatabaseVersionProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.quadtreeVersion=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DatabaseVersionProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.quadtreeVersion=r.uint32();break}default:r.skipType(a&7);break}}if(!o.hasOwnProperty("quadtreeVersion"))throw u.ProtocolError("missing required 'quadtreeVersion'",{instance:o});return o},i.verify=function(r){return typeof r!="object"||r===null?"object expected":u.isInteger(r.quadtreeVersion)?null:"quadtreeVersion: integer expected"},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DatabaseVersionProto)return r;var t=new n.keyhole.dbroot.DatabaseVersionProto;return r.quadtreeVersion!=null&&(t.quadtreeVersion=r.quadtreeVersion>>>0),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.quadtreeVersion=0),r.quadtreeVersion!=null&&r.hasOwnProperty("quadtreeVersion")&&(e.quadtreeVersion=r.quadtreeVersion),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DatabaseVersionProto"},i}(),c.DbRootProto=function(){function i(l){if(this.providerInfo=[],this.nestedFeature=[],this.styleAttribute=[],this.styleMap=[],this.translationEntry=[],this.dbrootReference=[],l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.databaseName=null,i.prototype.imageryPresent=!0,i.prototype.protoImagery=!1,i.prototype.terrainPresent=!1,i.prototype.providerInfo=u.emptyArray,i.prototype.nestedFeature=u.emptyArray,i.prototype.styleAttribute=u.emptyArray,i.prototype.styleMap=u.emptyArray,i.prototype.endSnippet=null,i.prototype.translationEntry=u.emptyArray,i.prototype.language="en",i.prototype.version=5,i.prototype.dbrootReference=u.emptyArray,i.prototype.databaseVersion=null,i.prototype.refreshTimeout=0,i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.DbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 15:{o.databaseName=n.keyhole.dbroot.StringIdOrValueProto.decode(r,r.uint32());break}case 1:{o.imageryPresent=r.bool();break}case 14:{o.protoImagery=r.bool();break}case 2:{o.terrainPresent=r.bool();break}case 3:{o.providerInfo&&o.providerInfo.length||(o.providerInfo=[]),o.providerInfo.push(n.keyhole.dbroot.ProviderInfoProto.decode(r,r.uint32()));break}case 4:{o.nestedFeature&&o.nestedFeature.length||(o.nestedFeature=[]),o.nestedFeature.push(n.keyhole.dbroot.NestedFeatureProto.decode(r,r.uint32()));break}case 5:{o.styleAttribute&&o.styleAttribute.length||(o.styleAttribute=[]),o.styleAttribute.push(n.keyhole.dbroot.StyleAttributeProto.decode(r,r.uint32()));break}case 6:{o.styleMap&&o.styleMap.length||(o.styleMap=[]),o.styleMap.push(n.keyhole.dbroot.StyleMapProto.decode(r,r.uint32()));break}case 7:{o.endSnippet=n.keyhole.dbroot.EndSnippetProto.decode(r,r.uint32());break}case 8:{o.translationEntry&&o.translationEntry.length||(o.translationEntry=[]),o.translationEntry.push(n.keyhole.dbroot.StringEntryProto.decode(r,r.uint32()));break}case 9:{o.language=r.string();break}case 10:{o.version=r.int32();break}case 11:{o.dbrootReference&&o.dbrootReference.length||(o.dbrootReference=[]),o.dbrootReference.push(n.keyhole.dbroot.DbRootRefProto.decode(r,r.uint32()));break}case 13:{o.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.decode(r,r.uint32());break}case 16:{o.refreshTimeout=r.int32();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.databaseName!=null&&r.hasOwnProperty("databaseName")){var t=n.keyhole.dbroot.StringIdOrValueProto.verify(r.databaseName);if(t)return"databaseName."+t}if(r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&typeof r.imageryPresent!="boolean")return"imageryPresent: boolean expected";if(r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&typeof r.protoImagery!="boolean")return"protoImagery: boolean expected";if(r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&typeof r.terrainPresent!="boolean")return"terrainPresent: boolean expected";if(r.providerInfo!=null&&r.hasOwnProperty("providerInfo")){if(!Array.isArray(r.providerInfo))return"providerInfo: array expected";for(var e=0;e<r.providerInfo.length;++e){var t=n.keyhole.dbroot.ProviderInfoProto.verify(r.providerInfo[e]);if(t)return"providerInfo."+t}}if(r.nestedFeature!=null&&r.hasOwnProperty("nestedFeature")){if(!Array.isArray(r.nestedFeature))return"nestedFeature: array expected";for(var e=0;e<r.nestedFeature.length;++e){var t=n.keyhole.dbroot.NestedFeatureProto.verify(r.nestedFeature[e]);if(t)return"nestedFeature."+t}}if(r.styleAttribute!=null&&r.hasOwnProperty("styleAttribute")){if(!Array.isArray(r.styleAttribute))return"styleAttribute: array expected";for(var e=0;e<r.styleAttribute.length;++e){var t=n.keyhole.dbroot.StyleAttributeProto.verify(r.styleAttribute[e]);if(t)return"styleAttribute."+t}}if(r.styleMap!=null&&r.hasOwnProperty("styleMap")){if(!Array.isArray(r.styleMap))return"styleMap: array expected";for(var e=0;e<r.styleMap.length;++e){var t=n.keyhole.dbroot.StyleMapProto.verify(r.styleMap[e]);if(t)return"styleMap."+t}}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")){var t=n.keyhole.dbroot.EndSnippetProto.verify(r.endSnippet);if(t)return"endSnippet."+t}if(r.translationEntry!=null&&r.hasOwnProperty("translationEntry")){if(!Array.isArray(r.translationEntry))return"translationEntry: array expected";for(var e=0;e<r.translationEntry.length;++e){var t=n.keyhole.dbroot.StringEntryProto.verify(r.translationEntry[e]);if(t)return"translationEntry."+t}}if(r.language!=null&&r.hasOwnProperty("language")&&!u.isString(r.language))return"language: string expected";if(r.version!=null&&r.hasOwnProperty("version")&&!u.isInteger(r.version))return"version: integer expected";if(r.dbrootReference!=null&&r.hasOwnProperty("dbrootReference")){if(!Array.isArray(r.dbrootReference))return"dbrootReference: array expected";for(var e=0;e<r.dbrootReference.length;++e){var t=n.keyhole.dbroot.DbRootRefProto.verify(r.dbrootReference[e]);if(t)return"dbrootReference."+t}}if(r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")){var t=n.keyhole.dbroot.DatabaseVersionProto.verify(r.databaseVersion);if(t)return"databaseVersion."+t}return r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&!u.isInteger(r.refreshTimeout)?"refreshTimeout: integer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.DbRootProto)return r;var t=new n.keyhole.dbroot.DbRootProto;if(r.databaseName!=null){if(typeof r.databaseName!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseName: object expected");t.databaseName=n.keyhole.dbroot.StringIdOrValueProto.fromObject(r.databaseName)}if(r.imageryPresent!=null&&(t.imageryPresent=!!r.imageryPresent),r.protoImagery!=null&&(t.protoImagery=!!r.protoImagery),r.terrainPresent!=null&&(t.terrainPresent=!!r.terrainPresent),r.providerInfo){if(!Array.isArray(r.providerInfo))throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: array expected");t.providerInfo=[];for(var e=0;e<r.providerInfo.length;++e){if(typeof r.providerInfo[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.providerInfo: object expected");t.providerInfo[e]=n.keyhole.dbroot.ProviderInfoProto.fromObject(r.providerInfo[e])}}if(r.nestedFeature){if(!Array.isArray(r.nestedFeature))throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: array expected");t.nestedFeature=[];for(var e=0;e<r.nestedFeature.length;++e){if(typeof r.nestedFeature[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.nestedFeature: object expected");t.nestedFeature[e]=n.keyhole.dbroot.NestedFeatureProto.fromObject(r.nestedFeature[e])}}if(r.styleAttribute){if(!Array.isArray(r.styleAttribute))throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: array expected");t.styleAttribute=[];for(var e=0;e<r.styleAttribute.length;++e){if(typeof r.styleAttribute[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleAttribute: object expected");t.styleAttribute[e]=n.keyhole.dbroot.StyleAttributeProto.fromObject(r.styleAttribute[e])}}if(r.styleMap){if(!Array.isArray(r.styleMap))throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: array expected");t.styleMap=[];for(var e=0;e<r.styleMap.length;++e){if(typeof r.styleMap[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.styleMap: object expected");t.styleMap[e]=n.keyhole.dbroot.StyleMapProto.fromObject(r.styleMap[e])}}if(r.endSnippet!=null){if(typeof r.endSnippet!="object")throw TypeError(".keyhole.dbroot.DbRootProto.endSnippet: object expected");t.endSnippet=n.keyhole.dbroot.EndSnippetProto.fromObject(r.endSnippet)}if(r.translationEntry){if(!Array.isArray(r.translationEntry))throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: array expected");t.translationEntry=[];for(var e=0;e<r.translationEntry.length;++e){if(typeof r.translationEntry[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.translationEntry: object expected");t.translationEntry[e]=n.keyhole.dbroot.StringEntryProto.fromObject(r.translationEntry[e])}}if(r.language!=null&&(t.language=String(r.language)),r.version!=null&&(t.version=r.version|0),r.dbrootReference){if(!Array.isArray(r.dbrootReference))throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: array expected");t.dbrootReference=[];for(var e=0;e<r.dbrootReference.length;++e){if(typeof r.dbrootReference[e]!="object")throw TypeError(".keyhole.dbroot.DbRootProto.dbrootReference: object expected");t.dbrootReference[e]=n.keyhole.dbroot.DbRootRefProto.fromObject(r.dbrootReference[e])}}if(r.databaseVersion!=null){if(typeof r.databaseVersion!="object")throw TypeError(".keyhole.dbroot.DbRootProto.databaseVersion: object expected");t.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.fromObject(r.databaseVersion)}return r.refreshTimeout!=null&&(t.refreshTimeout=r.refreshTimeout|0),t},i.toObject=function(r,t){t||(t={});var e={};if((t.arrays||t.defaults)&&(e.providerInfo=[],e.nestedFeature=[],e.styleAttribute=[],e.styleMap=[],e.translationEntry=[],e.dbrootReference=[]),t.defaults&&(e.imageryPresent=!0,e.terrainPresent=!1,e.endSnippet=null,e.language="en",e.version=5,e.databaseVersion=null,e.protoImagery=!1,e.databaseName=null,e.refreshTimeout=0),r.imageryPresent!=null&&r.hasOwnProperty("imageryPresent")&&(e.imageryPresent=r.imageryPresent),r.terrainPresent!=null&&r.hasOwnProperty("terrainPresent")&&(e.terrainPresent=r.terrainPresent),r.providerInfo&&r.providerInfo.length){e.providerInfo=[];for(var o=0;o<r.providerInfo.length;++o)e.providerInfo[o]=n.keyhole.dbroot.ProviderInfoProto.toObject(r.providerInfo[o],t)}if(r.nestedFeature&&r.nestedFeature.length){e.nestedFeature=[];for(var o=0;o<r.nestedFeature.length;++o)e.nestedFeature[o]=n.keyhole.dbroot.NestedFeatureProto.toObject(r.nestedFeature[o],t)}if(r.styleAttribute&&r.styleAttribute.length){e.styleAttribute=[];for(var o=0;o<r.styleAttribute.length;++o)e.styleAttribute[o]=n.keyhole.dbroot.StyleAttributeProto.toObject(r.styleAttribute[o],t)}if(r.styleMap&&r.styleMap.length){e.styleMap=[];for(var o=0;o<r.styleMap.length;++o)e.styleMap[o]=n.keyhole.dbroot.StyleMapProto.toObject(r.styleMap[o],t)}if(r.endSnippet!=null&&r.hasOwnProperty("endSnippet")&&(e.endSnippet=n.keyhole.dbroot.EndSnippetProto.toObject(r.endSnippet,t)),r.translationEntry&&r.translationEntry.length){e.translationEntry=[];for(var o=0;o<r.translationEntry.length;++o)e.translationEntry[o]=n.keyhole.dbroot.StringEntryProto.toObject(r.translationEntry[o],t)}if(r.language!=null&&r.hasOwnProperty("language")&&(e.language=r.language),r.version!=null&&r.hasOwnProperty("version")&&(e.version=r.version),r.dbrootReference&&r.dbrootReference.length){e.dbrootReference=[];for(var o=0;o<r.dbrootReference.length;++o)e.dbrootReference[o]=n.keyhole.dbroot.DbRootRefProto.toObject(r.dbrootReference[o],t)}return r.databaseVersion!=null&&r.hasOwnProperty("databaseVersion")&&(e.databaseVersion=n.keyhole.dbroot.DatabaseVersionProto.toObject(r.databaseVersion,t)),r.protoImagery!=null&&r.hasOwnProperty("protoImagery")&&(e.protoImagery=r.protoImagery),r.databaseName!=null&&r.hasOwnProperty("databaseName")&&(e.databaseName=n.keyhole.dbroot.StringIdOrValueProto.toObject(r.databaseName,t)),r.refreshTimeout!=null&&r.hasOwnProperty("refreshTimeout")&&(e.refreshTimeout=r.refreshTimeout),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.DbRootProto"},i}(),c.EncryptedDbRootProto=function(){function i(l){if(l)for(var r=Object.keys(l),t=0;t<r.length;++t)l[r[t]]!=null&&(this[r[t]]=l[r[t]])}return i.prototype.encryptionType=0,i.prototype.encryptionData=u.newBuffer([]),i.prototype.dbrootData=u.newBuffer([]),i.decode=function(r,t){r instanceof f||(r=f.create(r));for(var e=t===void 0?r.len:r.pos+t,o=new n.keyhole.dbroot.EncryptedDbRootProto;r.pos<e;){var a=r.uint32();switch(a>>>3){case 1:{o.encryptionType=r.int32();break}case 2:{o.encryptionData=r.bytes();break}case 3:{o.dbrootData=r.bytes();break}default:r.skipType(a&7);break}}return o},i.verify=function(r){if(typeof r!="object"||r===null)return"object expected";if(r.encryptionType!=null&&r.hasOwnProperty("encryptionType"))switch(r.encryptionType){default:return"encryptionType: enum value expected";case 0:break}return r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&!(r.encryptionData&&typeof r.encryptionData.length=="number"||u.isString(r.encryptionData))?"encryptionData: buffer expected":r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&!(r.dbrootData&&typeof r.dbrootData.length=="number"||u.isString(r.dbrootData))?"dbrootData: buffer expected":null},i.fromObject=function(r){if(r instanceof n.keyhole.dbroot.EncryptedDbRootProto)return r;var t=new n.keyhole.dbroot.EncryptedDbRootProto;switch(r.encryptionType){case"ENCRYPTION_XOR":case 0:t.encryptionType=0;break}return r.encryptionData!=null&&(typeof r.encryptionData=="string"?u.base64.decode(r.encryptionData,t.encryptionData=u.newBuffer(u.base64.length(r.encryptionData)),0):r.encryptionData.length>=0&&(t.encryptionData=r.encryptionData)),r.dbrootData!=null&&(typeof r.dbrootData=="string"?u.base64.decode(r.dbrootData,t.dbrootData=u.newBuffer(u.base64.length(r.dbrootData)),0):r.dbrootData.length>=0&&(t.dbrootData=r.dbrootData)),t},i.toObject=function(r,t){t||(t={});var e={};return t.defaults&&(e.encryptionType=t.enums===String?"ENCRYPTION_XOR":0,t.bytes===String?e.encryptionData="":(e.encryptionData=[],t.bytes!==Array&&(e.encryptionData=u.newBuffer(e.encryptionData))),t.bytes===String?e.dbrootData="":(e.dbrootData=[],t.bytes!==Array&&(e.dbrootData=u.newBuffer(e.dbrootData)))),r.encryptionType!=null&&r.hasOwnProperty("encryptionType")&&(e.encryptionType=t.enums===String?n.keyhole.dbroot.EncryptedDbRootProto.EncryptionType[r.encryptionType]:r.encryptionType),r.encryptionData!=null&&r.hasOwnProperty("encryptionData")&&(e.encryptionData=t.bytes===String?u.base64.encode(r.encryptionData,0,r.encryptionData.length):t.bytes===Array?Array.prototype.slice.call(r.encryptionData):r.encryptionData),r.dbrootData!=null&&r.hasOwnProperty("dbrootData")&&(e.dbrootData=t.bytes===String?u.base64.encode(r.dbrootData,0,r.dbrootData.length):t.bytes===Array?Array.prototype.slice.call(r.dbrootData):r.dbrootData),e},i.prototype.toJSON=function(){return this.constructor.toObject(this,d.util.toJSONOptions)},i.getTypeUrl=function(r){return r===void 0&&(r="type.googleapis.com"),r+"/keyhole.dbroot.EncryptedDbRootProto"},i.EncryptionType=function(){var l={},r=Object.create(l);return r[l[0]="ENCRYPTION_XOR"]=0,r}(),i}(),c}(),b}(),n.keyhole.dbroot};})(); diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/Animation.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/Animation.css index e5873b644..0f18c52e2 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/Animation.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/Animation.css @@ -1 +1,127 @@ -.cesium-animation-theme{visibility:hidden;display:block;position:absolute;z-index:-100;}.cesium-animation-themeNormal{color:#222;}.cesium-animation-themeHover{color:#4488B0;}.cesium-animation-themeSelect{color:#242;}.cesium-animation-themeDisabled{color:#333;}.cesium-animation-themeKnob{color:#222;}.cesium-animation-themePointer{color:#2E2;}.cesium-animation-themeSwoosh{color:#8AC;}.cesium-animation-themeSwooshHover{color:#AEF;}.cesium-animation-svgText{fill:#edffff;font-family:Sans-Serif;font-size:15px;text-anchor:middle;}.cesium-animation-blank{fill:#000;fill-opacity:0.01;stroke:none;}.cesium-animation-rectButton{cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-animation-rectButton .cesium-animation-buttonGlow{fill:#fff;stroke:none;display:none;}.cesium-animation-rectButton:hover .cesium-animation-buttonGlow{display:block;}.cesium-animation-rectButton .cesium-animation-buttonPath{fill:#edffff;}.cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#444;stroke-width:1.2;}.cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#AEF;}.cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#ABD6FF;}.cesium-animation-buttonDisabled{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#555;}.cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181;}.cesium-animation-buttonDisabled .cesium-animation-buttonGlow{display:none;}.cesium-animation-buttonToggled .cesium-animation-buttonGlow{display:block;fill:#2E2;}.cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#2E2;}.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff;}.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#2E2;}.cesium-animation-shuttleRingG{cursor:pointer;}.cesium-animation-shuttleRingPointer{cursor:pointer;}.cesium-animation-shuttleRingPausePointer{cursor:pointer;}.cesium-animation-shuttleRingBack{fill:#181818;fill-opacity:0.8;stroke:#333;stroke-width:1.2;}.cesium-animation-shuttleRingSwoosh line{stroke:#8AC;stroke-width:3;stroke-opacity:0.2;stroke-linecap:round;}.cesium-animation-knobOuter{cursor:pointer;stroke:#444;stroke-width:1.2;}.cesium-animation-knobInner{cursor:pointer;} \ No newline at end of file +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/lighter.css index d3a6d71c2..466ddb603 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Animation/lighter.css @@ -1 +1,70 @@ -.cesium-lighter .cesium-animation-themeNormal{color:#E5F2FE;}.cesium-lighter .cesium-animation-themeHover{color:#ABD6FF;}.cesium-lighter .cesium-animation-themeSelect{color:#E5F2FE;}.cesium-lighter .cesium-animation-themeDisabled{color:#EFEFEF;}.cesium-lighter .cesium-animation-themeKnob{color:#E1E2E3;}.cesium-lighter .cesium-animation-themePointer{color:#FA5;}.cesium-lighter .cesium-animation-themeSwoosh{color:#ACE;}.cesium-lighter .cesium-animation-themeSwooshHover{color:#BDF;}.cesium-lighter .cesium-animation-svgText{fill:#111;}.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath{fill:#111;}.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#759DC0;}.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow{fill:#FFAA2A;}.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#EA0;}.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#759DC0;}.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff;}.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#EA0;}.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#ABD6FF;}.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#D3D3D3;}.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181;}.cesium-lighter .cesium-animation-shuttleRingBack{fill:#FAFAFA;fill-opacity:1;stroke:#AEAEAE;stroke-width:1.2;}.cesium-lighter .cesium-animation-shuttleRingSwoosh line{stroke:#8AC;}.cesium-lighter .cesium-animation-knobOuter{stroke:#A5A5A5;} \ No newline at end of file +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css index cc8c26c66..ac37d16e0 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/BaseLayerPicker.css @@ -1 +1,108 @@ -.cesium-baseLayerPicker-selected{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}.cesium-baseLayerPicker-dropDown{display:block;position:absolute;box-sizing:content-box;top:auto;right:0;width:320px;max-height:500px;margin-top:5px;background-color:rgba(38,38,38,0.75);border:1px solid #444;padding:6px;overflow:auto;border-radius:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;transform:translate(0,-20%);visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in,transform 0.2s ease-in;}.cesium-baseLayerPicker-dropDown-visible{transform:translate(0,0);visibility:visible;opacity:1;transition:opacity 0.2s ease-out,transform 0.2s ease-out;}.cesium-baseLayerPicker-sectionTitle{display:block;font-family:sans-serif;font-size:16pt;text-align:left;color:#edffff;margin-bottom:4px;}.cesium-baseLayerPicker-choices{margin-bottom:5px;}.cesium-baseLayerPicker-categoryTitle{color:#edffff;font-size:11pt;}.cesium-baseLayerPicker-choices{display:block;border:1px solid #888;border-radius:5px;padding:5px 0;}.cesium-baseLayerPicker-item{display:inline-block;vertical-align:top;margin:2px 5px;width:64px;text-align:center;cursor:pointer;}.cesium-baseLayerPicker-itemLabel{display:block;font-family:sans-serif;font-size:8pt;text-align:center;vertical-align:middle;color:#edffff;cursor:pointer;word-wrap:break-word;}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel,.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel{text-decoration:underline;}.cesium-baseLayerPicker-itemIcon{display:inline-block;position:relative;width:inherit;height:auto;background-size:100% 100%;border:solid 1px #444;border-radius:9px;color:#edffff;margin:0;padding:0;cursor:pointer;box-sizing:border-box;}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#fff;box-shadow:0 0 8px #fff,0 0 8px #fff;}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:rgb(189,236,248);}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:double 4px rgb(189,236,248);} \ No newline at end of file +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css index 522217688..d43cd3d96 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/BaseLayerPicker/lighter.css @@ -1 +1,22 @@ -.cesium-lighter .cesium-baseLayerPicker-itemIcon{border-color:#759dc0;}.cesium-lighter .cesium-baseLayerPicker-dropDown{background-color:rgba(240,240,240,0.75);}.cesium-lighter .cesium-baseLayerPicker-sectionTitle{color:black;}.cesium-lighter .cesium-baseLayerPicker-itemLabel{color:black;}.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#000;}.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:rgb(0,61,168);}.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:double 4px rgb(0,61,168);} \ No newline at end of file +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css index 85ed1d389..5b6295b40 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Cesium3DTilesInspector/Cesium3DTilesInspector.css @@ -1 +1,102 @@ -ul.cesium-cesiumInspector-statistics{margin:0;padding-top:3px;padding-bottom:3px;}ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics{border-top:1px solid #aaa;}.cesium-cesiumInspector-slider{margin-top:5px;}.cesium-cesiumInspector-slider input[type=number]{text-align:left;background-color:#222;outline:none;border:1px solid #444;color:#edffff;width:100px;border-radius:3px;padding:1px;margin-left:10px;cursor:auto;}.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button,.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}.cesium-cesiumInspector-slider input[type=range]{margin-left:5px;vertical-align:middle;}.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor{display:none;}.cesium-cesiumInspector-styleEditor{padding:10px;border-radius:5px;background:rgba(48,51,54,0.8);border:1px solid #444;}.cesium-cesiumInspector-styleEditor textarea{width:100%;height:300px;background:transparent;color:#edffff;border:none;padding:0;white-space:pre;overflow-wrap:normal;overflow-x:auto;}.cesium-3DTilesInspector{width:300px;pointer-events:all;}.cesium-3DTilesInspector-statistics{font-size:11px;}.cesium-3DTilesInspector div,.cesium-3DTilesInspector input[type=range]{width:100%;box-sizing:border-box;}.cesium-cesiumInspector-error{color:#ff9e9e;overflow:auto;}.cesium-3DTilesInspector .cesium-cesiumInspector-section{margin-top:3px;}.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show{border-top:1px solid white;}input.cesium-cesiumInspector-url{overflow:hidden;white-space:nowrap;overflow-x:scroll;background-color:transparent;color:white;outline:none;border:none;height:1em;width:100%;}.cesium-cesiumInspector .field-group{display:table;}.cesium-cesiumInspector .field-group > label{display:table-cell;font-weight:bold;}.cesium-cesiumInspector .field-group > .field{display:table-cell;width:100%;} \ No newline at end of file +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css index 3c56bb722..aeb7700e9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumInspector/CesiumInspector.css @@ -1 +1,113 @@ -.cesium-cesiumInspector{border-radius:5px;transition:width ease-in-out 0.25s;background:rgba(48,51,54,0.8);border:1px solid #444;color:#edffff;display:inline-block;position:relative;padding:4px 12px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;}.cesium-cesiumInspector-button{text-align:center;font-size:11pt;}.cesium-cesiumInspector-visible .cesium-cesiumInspector-button{border-bottom:1px solid #aaa;padding-bottom:3px;}.cesium-cesiumInspector input:enabled,.cesium-cesiumInspector-button{cursor:pointer;}.cesium-cesiumInspector-visible{width:185px;height:auto;}.cesium-cesiumInspector-hidden{width:122px;height:17px;}.cesium-cesiumInspector-sectionContent{max-height:500px;}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent{max-height:0;padding:0 !important;overflow:hidden;}.cesium-cesiumInspector-dropDown{margin:5px 0;font-family:sans-serif;font-size:10pt;width:185px;}.cesium-cesiumInspector-frustumStatistics{padding-left:10px;padding:5px;background-color:rgba(80,80,80,0.75);}.cesium-cesiumInspector-pickButton{background-color:rgba(0,0,0,0.3);border:1px solid #444;color:#edffff;border-radius:5px;padding:3px 7px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;margin:0 auto;}.cesium-cesiumInspector-pickButton:focus{outline:none;}.cesium-cesiumInspector-pickButton:active,.cesium-cesiumInspector-pickButtonHighlight{color:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff;}.cesium-cesiumInspector-center{text-align:center;}.cesium-cesiumInspector-sectionHeader{font-weight:bold;font-size:10pt;margin:0;cursor:pointer;}.cesium-cesiumInspector-pickSection{border:1px solid #aaa;border-radius:5px;padding:3px;margin-bottom:5px;}.cesium-cesiumInspector-sectionContent{margin-bottom:10px;transition:max-height 0.25s;}.cesium-cesiumInspector-tileText{padding-bottom:10px;border-bottom:1px solid #aaa;}.cesium-cesiumInspector-relativeText{padding-top:10px;}.cesium-cesiumInspector-sectionHeader::before{margin-right:5px;content:'-';width:1ch;display:inline-block;}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before{content:'+';} \ No newline at end of file +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css index 9290f1a78..0763b6496 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/CesiumWidget.css @@ -1 +1,119 @@ -.cesium-widget{position:relative;}.cesium-widget,.cesium-widget canvas{width:100%;height:100%;touch-action:none;}.cesium-widget-credits{display:block;position:absolute;bottom:0;left:0;color:#fff;font-size:10px;text-shadow:0px 0px 2px #000000;padding-right:5px;}.cesium-widget-credits a,.cesium-widget-credits a:visited{color:#fff;}.cesium-widget-errorPanel{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;background:rgba(0,0,0,0.7);z-index:99999;}.cesium-widget-errorPanel:before{display:inline-block;vertical-align:middle;height:100%;content:"";}.cesium-widget-errorPanel-content{width:75%;display:inline-block;text-align:left;vertical-align:middle;border:1px solid #526F82;border-radius:7px;background-color:black;color:white;font-size:10pt;padding:1em;}.cesium-widget-errorPanel-header{font-size:120%;color:#fe4;}.cesium-widget-errorPanel-scroll{overflow:auto;font-family:monospace;white-space:pre-wrap;padding:0;margin:10px 0;}.cesium-widget-errorPanel-buttonPanel{text-align:center;} \ No newline at end of file +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} + +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} + +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} + +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} + +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} + +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} + +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} + +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} + +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: "Open Sans", Verdana, Geneva, sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} + +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} + +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} + +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} + +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css index b20dcf7b5..899e024cb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/CesiumWidget/lighter.css @@ -1 +1,14 @@ -.cesium-lighter .cesium-widget-errorPanel{background:rgba(255,255,255,0.7);}.cesium-lighter .cesium-widget-errorPanel-content{border:1px solid #526F82;border-radius:7px;background-color:white;color:black;}.cesium-lighter .cesium-widget-errorPanel-header{color:#B87D00;} \ No newline at end of file +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} + +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} + +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css index 2bbe8910d..fdb0a411a 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/FullscreenButton/FullscreenButton.css @@ -1 +1,8 @@ -.cesium-button.cesium-fullscreenButton{display:block;width:100%;height:100%;margin:0;border-radius:0;} \ No newline at end of file +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css index c5fa0e8c7..a0b478fc4 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/Geocoder.css @@ -1 +1,70 @@ -.cesium-viewer-geocoderContainer .cesium-geocoder-input{border:solid 1px #444;background-color:rgba(40,40,40,0.7);color:white;display:inline-block;vertical-align:middle;width:0;height:32px;margin:0;padding:0 32px 0 0;border-radius:0;box-sizing:border-box;transition:width ease-in-out 0.25s,background-color 0.2s ease-in-out;-webkit-appearance:none;}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus{border-color:#ea4;background-color:rgba(15,15,15,0.9);box-shadow:none;outline:none;}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input,.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus,.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide{padding-left:4px;width:250px;}.cesium-viewer-geocoderContainer .search-results{position:absolute;background-color:#000;color:#eee;overflow-y:auto;opacity:0.8;width:100%;}.cesium-viewer-geocoderContainer .search-results ul{list-style-type:none;margin:0;padding:0;}.cesium-viewer-geocoderContainer .search-results ul li{font-size:14px;padding:3px 10px;}.cesium-viewer-geocoderContainer .search-results ul li:hover{cursor:pointer;}.cesium-viewer-geocoderContainer .search-results ul li.active{background:#48b;}.cesium-geocoder-searchButton{background-color:#303336;display:inline-block;position:absolute;cursor:pointer;width:32px;top:1px;right:1px;height:30px;vertical-align:middle;fill:#edffff;}.cesium-geocoder-searchButton:hover{background-color:#48b;} \ No newline at end of file +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/lighter.css index f54fbea6b..b15c18924 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Geocoder/lighter.css @@ -1 +1,17 @@ -.cesium-lighter .cesium-geocoder-input{border:solid 1px #759dc0;background-color:rgba(240,240,240,0.9);color:black;}.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-lighter .cesium-geocoder-searchButton{background-color:#e2f0ff;fill:#111;}.cesium-lighter .cesium-geocoder-searchButton:hover{background-color:#a6d2ff;} \ No newline at end of file +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css new file mode 100644 index 000000000..49b623064 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css @@ -0,0 +1,27 @@ +/* packages/widgets/Source/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css */ +.cesium-viewer-i3s-explorer ul { + list-style-type: none; +} +.cesium-viewer-i3s-explorer .layersList { + padding: 0; +} +.cesium-viewer-i3s-explorer input { + margin: 0 3px 0 0; +} +.cesium-viewer-i3s-explorer .expandItem { + cursor: pointer; + user-select: none; + width: 20px; +} +.cesium-viewer-i3s-explorer .nested, +.cesium-viewer-i3s-explorer #bsl-wrapper { + display: none; +} +.cesium-viewer-i3s-explorer .active { + display: block; +} +.cesium-viewer-i3s-explorer .li-wrapper { + display: flex; + flex-direction: row; + align-content: center; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png new file mode 100644 index 0000000000000000000000000000000000000000..bd5976d24d5687ad29a2760511656d4158c63016 GIT binary patch literal 8624 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 A0RR91 literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png new file mode 100644 index 0000000000000000000000000000000000000000..46ffe9c6f21dcf1ce2ac0de44b62bbb59ed89c35 GIT binary patch literal 12290 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�mL;W<>miSO$#?GD`$6G7mrvZ)W$yo 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 literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png new file mode 100644 index 0000000000000000000000000000000000000000..286f3a0574bae93ff2d8a0d6c578dce0c3a904f7 GIT binary patch literal 9905 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 W7%D<lzVpw2TXND$Qq>a1!T$%Pri0@E literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriNationalGeographic.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriNationalGeographic.png deleted file mode 100644 index bcfdd0b28d3ebd7fd4df1e8fe632d6ce2c8c38be..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11555 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 Vu;WKwORfL_002ovPDHLkV1hsqiJAZa diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldImagery.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldImagery.png deleted file mode 100644 index a9429daf31d7ddbef690cca8388521bd04294713..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 11575 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≥%k22x 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 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldStreetMap.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/esriWorldStreetMap.png deleted file mode 100644 index dfbc1f42d3add0290b2a1a85ff54aa58e305af31..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 8501 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 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png new file mode 100644 index 0000000000000000000000000000000000000000..0520e17c706f233fccb3ce9e09f171949945e6ed GIT binary patch literal 7302 zcmY*;byO7I*7ktJ0MgxE5<?7KLxYrn($d{9#30=rf;57(wDiz0qaZSXgOo^$4j|If z_4>Q_e)oIdv(`RmpM9SFJbRzN&RQq=iM}Q=Ap;=*03g=ZQZxFyLjExz-ru?2&2RPZ zf(13wQ~@+kG41@_5cq1DLjeF9?tctR+lcG%FTmXGsab%Tp02EekC(8WqmR9lFwD#M zFB$-lhspkRy_^E<*kE3s-cVVX0>{4)vVZ-5!XOT|e?bB~6gbTEp0KI<_&c#l2!n-1 zI1~xl*x2O#9i3&3)HME+{&%Oq;TjO&D+>Yz2L}rWiwpbsyMRPxWMn`hVjwXwp}z<r zXoz=!9Zbj@%K2}S|Hq@|1a<It^9^wG@n-vn*UsK2FhGHW;~$~_j(^t~;O6}QmAs+< zY3px;pnpz4qQWAe|8oCLmH#IyYvAwZ^jG;GennCFe<A-*>_0m4pnt^wS26$Y^k31x zttt}AgZ_JMiiEldUUL9|VN_d9`6&!5_uGz-)j|mVx*T#t*r?BGqRU=R-{^xL0~m5L zcCL!X<<FADjgj=F8Ef_2qfk$#I&T`<Qh<JJ?SG>%i+UZJ7rZvrV_LbzXfUmzdZ$sT zEGH+|V6gH-=YD*ATtupn5yN}3v&~6s>Tz~<mZ+0&lGwDjfIOR8JzSNOO5EJcfx>Cq z8Bs_ia^qqfR!~;Ps^8ACIDS)wi4BJN!Uk!GPl!&C+Uv}$td&8)TqI1sd3tBZ4V^aH z)6--AH2v%kGcyY@CQvaG+r`N#gl;$L^BV(au(RqS;=2l#AO?Exg+eA|U6KuTcS~9I z^qcs0*&NJUyj%0UqM@Nl@B?x#YrO&Pz7I^86we4DX6CNy;UT+iR}sKcfBQibWBD!D zgGJV5N7N^b<_AL+oi!kULN85|+e?@8?ApQw2w`}!J36;<i7{c{)g9<rE&8y|7|$n7 zW{D`6v0qVctP)>b_#)CUqU*ES<0neUb0auCHz2woJWB+_l!A!>f9#Krd;<c&zxVg4 zZxrWWhOgzmfg?W67%37VM==ct9Wf*>6is4V{_#0xwhZ4#%%4B!-w4LLVlWM_EwqUt z;;eP4t(JbwWfpMV|Fu^I_-=WMYl-9|z+=#n94E>Db_jf8MzXQDcR(uDV#B<z0F$?} zwrslF-||7Y?^E7q;70k8t!Ym9$4RHu1viK!ylNLo@k>L^;F0Wgh3IYid>7-{hx-#F zQW!H5dju6zs2)hXKW@LYb8~A2AMs=z^x?z&{QRVKhqZm_o1a^=mJYzEq3KbE_sr>q z$7?z8C&9`p@{3CFLzm6ghbRx<T$<Rix!TNd{Gt;-kE6#)n+u|+TOjLEtL_9%gHqDI zP<$k<jUrP}(D{U#`*E=HO<qJCFsYB43>5$Q%SK=u;=IRbL8A~Vs9Xs^I6kwTp^3RA zNN6AQ8k8C19g8s0byFI=TWQCk6=xkhiq$kooXodGp6$N23kmUq9sgFxE9MSkMcd$q z`)S(#oF-@{Tj>u9gpprd_1&L-y=7t7%{iOg)jbcnCERzkGpbp=Wqdf2zsrm}I-=Z& zxj^JLdBu2`!iPyK+IrEknxs<~%s+I4okI9)U^MCJi9cN-gW$7!xAMC01Xv$C4N86T zik}blu5uhay-HH<UpH5CW;Z3Hl8aqSpuPF>nXlV&tOs5q-OjpDcVT!->#e!TaM8&F ztwy7FUz@r_?FhC5(ZC59c_M^zDDzE>{0VNJ3ceM&dFbKA<>A?+2lwKwtM-+Xo4T2= z=+VCS;V%AG|D`#&&YXerHAZnPTwu^hoC{vbtZT}e5~RdRG)$Sw;N>+WFHonOT;93K zi39#Y!{%)FG9>8fTDTXAH9pJi%csZej(RO!)|zto$j*j*Rb9gJ_XHu<yJ^$&j5ucJ z?6L1eqV%J8`mCyS**BN5paX%*2&4*Tlz*7xeF`^T^+>NicgE%5M{57OxocTlQ%L%x z#=1VlCiGod43ElkDjpCTp}15?NF%PJ9dbpg3QK&jzdyC_8%8&jv0l*Ud{;cbh-+pj zhYe_mdnUk;4ug<lswaNJd!uCSym?Og#+R#rpKGa+aTNAsh9eGmZ$p3@kQ>*6G>SJW zZ$g38;xR_K{b+lqwK_<#2todJCr8aZZfO)SqX0)!{eVpP*uyse85a_6fzP5&LBdl^ zR5LrtfbDjHFvh&|pMR!I{SucgDpNz76o?~o{%Q84;f@TS4e(Pk3-iVDU>BPTfQvS` zKYmttvyyr6r!KIQYJYVY(TI^kWO7D*_`{!4uS7+C_vec(c>$L1ls?DBXV<2{4?1z` zd;?mKc0U$qWKpV<C8G^|asYs;D1Cx}>5fF_WOb{uwU$mKk#BaqmI6TLqesI8(x{Da zBdU7t6x-|c6a;UgR=dqxLYW><At0;L2+`X1C{g%WB^9i^aHetZCaS@2C3(Annqq_p zhvBXCXCby!IlzKFp`kAMcW}7QQG<6cnLv}NX<mW=e`31Jjub<Jebw5wkF(qyMK^<# zv64(0z+n_j>@51}kt%c=z^AfcWl#K}O}9g`H_?KVE`#HZ_U><8NA4ykEdGY?vp6?> zL0<IEqDeL67|q@S4H0TcV@X03eae}n#xEkMihlPJ>i!H5&zWo`z7cefh?90;WG-s6 zibPw$&9y1<Mv^R-<H&e6mw8!!x=b;Uq;z$5>LBAXKc#|KrBrFIUCGS&7PTxhIA5UO z+vMjMgtB>Bcnmhs$vnie)Q+@F#`IkdWFH4f_$g1eNHo-!#n*~{6`Uv_Euhno*1-Ms zkZK_Pvb4NHE?#d`Htf^fFrRunZ}jQ*n?3OE=bsDrr+wlf41U4>DVxFCQc+;77lid0 zg&+sA8Kb(&!J>oXp|R<<ZfWWIB#-?DrtIY@^N~r9{3GLcABcJN*3I^pl;)-FDm-ZX zvMtIwg%am`_!<d|j9wucUSIsFpHskEul+JEWRCgu%bfssrE)Bj^>w<~j=7|2OB*Zv zdgGcM<}Zwcke)(t91>%6<k*L)DayoF$gZUOAWOaBC+_ODHE&5Sey_%EjOKQ3T;-lp zU~`B_5V10$6vBE%`<IuduFT9alj_p=bi~XH{>MMgRWQ%3ZJ6in%^#umGsNPlCbCC( zTvM#3<p0o|#0?zX>=Z&iqV^TSB<1y2?oL=EpAeBF`mw$&KfpZhHPSf<mXQ3kcw+hu zY0`0fM7r8!F<j7-Qf`XgzO4l%l-(U>>~lP96jl>S$-_5D*!%r7GGOcMT|voYCPA=b zz#y#WdEJ#o+=Y8+ts=hROq1DswFsP6Su2`Qu)|(4e|ds0{_IAeRf1RKs0j%ef?i_| z^}%Obp`;T9li%fV;<PB{K6P9;S<n)u|MZ6SANj*rup@o1o3h1n<fY}`4!5%snHj9N zI!m2ua`?v0iveOpoAE9Mzxgc<T%)gXRZAY}pibG)ckXnwq-JBCW?%3RRvCo1AZG^U z*CLxULKXyR&&cZcPK#0bh~K!flyoYy1D-EWv6gjg^PUJrSl}9jW%V41CY4}$tDSJ% z?R7Wj6Nrm@xdcm%_(;T&t-@do>;oT{N!P;VE{d+1T=t!@YbbxtIi`L4DovgMKw&$w zM@$+G`-XS5njb-I)z7!iS#tqEZ;<l&Ttkzcmse9vkW|Q{-?%fo@G!3gErcCncVGeQ z_eH3%nm4HqQL1{<+h1w##8la`1|>TB$i0*zFY9NPEf<=pjxef8TDv%9r>C71?zp{S zb|z1Lh~cOf(3y&isJ``;b_){0rYWF8V(&f%%Am|s&#EoMhYaQ}rvjU^B*YS=$z&xq z*Wa+7Y_kr8oqm7F5j)*gN@{A-@-X#8Mu5mLv(#%;B11rK)<kR=^^7RX(fo12<@!oD zM`QeBrRq}@!LWbXK#8CoF!n0tTcg+Md-FyI&`K>bw=Qb<^`we_$XbTLOch}~*$auI z<i5t*MGDt4?|!-<`FwbIgX;%D+$4O4)S0bP?sOK#P~RX}n6#C(HEY*dmkwZH(ayw1 zA;QEtL?Dqqh2ELJmU61vb+__-RXE1uo@|idZB-7DT^9JBQfHQ;sdH94=M$Af<kfF$ z{Yps+^g=>e*p2f3&|BmBPLZHp%xP~vv10#;H$fWPD(SwdUv;`8lL}YT(7^T4;kD8Y zx34hqL4SC=6-?;}j|AIj0v7c}$X!KNvsM#{nQ}%CbaqP!PJ(y_1ZOoc1Avh1usb$> z0<5Oj+{8kpra38HL0tk#k^=6EAOJc`LCSblZbgnZEh02?F22A^H!BMVaXk(hy7{nD z!stm_c6W4Q$Lo?4c|LCN9oc}iQM_*hpEcOrd0x~;-s+i8r!y`jd_z~+KBB?dIP|$c zQbMkjh0We5eZ{I2BUN@-p2KUh?BCt~dcy0{m)M6yn}`00V=EdO3>v6<kKY|^!|VSZ zEMAjL?oz4tRcu`B6R^djJDCr`qES1^V3L<pnL~g&>Xz=7ZbXeOa00N&U)^0U3^^(C zKP5>lTe;mhOjL>_hg5D%g?3ZS(I(vA{b_fsvvi71^Yrs`yZCCL#KNK}YV-5rIgS6e z{Xr|4Izc_uZ-Uf#nc$5sD^eh2UgX>8B&`vuWGTC2CP(IgdEXQe+Sx9_lxdXjGOhR+ zb0U-BOrY8+m7me8(Gamv2${n5r%hHzl**SnS>KKJTz%v_qZ~*kUEbVMx<wy04Bc1J zwGrJU+C+#g-yUf?aqprr+S@8EU`=3-8?L$23%VO+D|>G2i?PVd>5a1{#$5KnBqCEQ z!nO}^j#SzQpV^A_B)e=LCi3o8;rSUp(Kdb^7FHCll7SGR3!Ciz)>6T2A1Oig-MO${ z(Sg8BE>T;GPneC|_AbNUv8zDPK_WVp(k3jVjGMH3EyUyE*Imv=YUp|5<b~MUpx^DM z!xMuD`I~E>2-7>%c`mYJ7i`(<{4$a<`t~e1QZOg-evc7ZTNWvCBe7$c^*n|9lRq7~ z_#^Mz(~Ye^+0jo-ml(LIm47`kUee}<IlC;<c?#Nyq@$+_TC;G%M8kqgLN0;|(0RJG zwIYQcMS`?IO8fX2O@PVnkp7-;(F2lALM~oub<T_OI&qXyff82eV6<Ute2qj=M4o2A z^d^g@jJ3GWh@_0K`Rw-UEoh2~Pa61hp<?qG;SZeR;q$Y*=i}ADdiv>Pj()^!H-5{q zn3AEX40AzzbhCW(PRv{}a<SatwRK?VVScj4#h#jsAA5AhWzkp`AvD5v)Z{e}`uPU~ zx^TI8vyn71Dmzn<jc`8qkHm5Cd70<afg^qF9mh}~DWX_;BkQ3yFjF;~?AOTWFN^9_ zjHFYq%)mP1L+gTEy%OHXHAJ%zTC<gomP;x=peGFvkVgY&2+rZ2N>IH)mL}?ut5OSd zE5DXVa^>pCg(HHxR$ERCnU@|kVjL}q+u!Ti+X;S8Os4K`6L2!m(ecnJT&E91y}jdb z(#1~u0!B@JcpMZ&0yPRPV9w<Podz1DYF*LjizhOI`Ecto+_UqZDE2`qb>b0M@s+uS zm4@lPT^unF&#o$)zV};oMDOwWr!!{VPQJ(=EotBSbB-PBY)~5#Hjm$xK61;Bnw659 zOq8q8*JUs4Fhh6vDZ^!6ANn+VIM9)K<T+gFyP$ZZd@K{;Q|p5LQjzB}9i${WFA-bD ze-^o$@js7`M^O8xl7F70g1Top(6a?5faSlgII*BzY1|gE8-X6r=gOKdTz|zfHUu6t z9FR=Q)hNjt@5w%@xjaXdcm<>6=mBUSN$fg@j-z;|K%Nbk!1i}N(e^qGYpp+Co4sVN zHRdCA^6F}?DX`y{G%kV=3DXufwt$FFHsgP<dBwSMUHZ!eVhQ~KvDeV(sZ%0~TO*&} zdp%w_4x`JuR|vDMFq-}}<4^8JVox4LUpB>cGg=RV_r!_T)E|K3sd<(dQruzc;W0v1 zb_H@)nRQUkk!OdMr!i#@5km0GPv0Ng4<A==%(OMR2U+t+WMmVc1!tVtf(2cS<~}E- zN0MW+DM&&x>6CSiqlIeHOqO2cf&Ar~0$FTJGZVCxNgSd-lgNvyNw3uAHYq=aHnrwm z2JMx1M}AIfMt)&xiN}LF;ei)INiV&;2kSF!b?8Qv49^++dLu&MVe?&$DQwe60OL2a z-^tMA9IjpDNf1>^3%86OjKL6}t}14y@}+Q=J{?2-`Y~sdxD!(=cNFlaJj7tD(1Qdz z4{WwHbK;KSM1j3c(=@R#7YaT3mAqTf)&0k<7K%wvG)HO3V#e1NF6@ZZn%IskH`>Y| z4n(_g@Yfhgd-C_MzVT1S6Aef6nUERP+gV)~4cFI(pZW#+_JYdieM1vQxc>wzu5X)& zbd4-(mmi7vBpy=YbLO}jB@+bNJUw(CtO=kNgNp2lezQJ1CsF=kS<F<NITImRL8$=% zYkMRWI$;wQU2E9*{y7zQEb(}{R{ZYwxoC^|M7^vPxI9!)mNF)%V9cOw>*1tmAZbiz z7mX;Y<|mI`VDvn<z}C`R2)v}o5?3Rt+VI<V;9JWkiCa<g1vRYVh@(LI8u8!1SVnGR zX@)%HSUr9@uP#Ih+@ZQC!gx6zY!@%`5NZkPzg)-pC?Mp4W>U#5dekw=WD}A;dh%c- z<MPonoi;RwMyH<`Btf;r)R5^#O;n0Htm2Dxg{S6o?l@rDoY^-5{MbOIT!U_i$+yGL z71^7m&*?Ei0?hIFt??=Z35?M@!QBr{zB1kj2K?b``6!a;omT*TFX)>~)&6n39`N%w zvvH8iFYl0^U#EarltV`|dyySA{aeanIT_oZm3r;z4?WhSCgh@%W`?QbCemw!V@CHU z=KWX=Sq9naB=&D5==9hzk6@@AiWSod^)N=S!R3!R<uu$NpzGkVSRQ2AJvfcwARAdg ziuXtizo(;y0U4Ix+dcJrwPfn;v>b^VRilU&0LUeBcoWnqxA%dR!3B4?-|dp?-IjQQ z7b@_g**<yQgZag92VPh>j!2M0+lTfVzO1h<a+MAyozfAtqS_%QN)_rMMnSB$5}Hhg zz!j9D^+ILIa!0=n@)Vc%Mu@S5<XecVN_$sR!PszdKu;}IOb<+`8Fz6iZ0y~-uT(VY z9?rZ&R7gbMd>=wLjJMihO|`osQSICOD-(j+NG(!k0H+z`5h8~EA%^h6u9V3BYOiE! z(F?&THcdfTBQYO4hU}roqgLQv1kw^0bvj)&Um9PV+U$4g<2N)8D7*3-lZFM<>o~%_ zPaWRNw#Vvv*Ieee99w~aZV6t`tc4GSgnIF*$RaF$I&)d!Gwe`Wb<7xPD`hsdokzS9 zgp!q$sraM_!#)(es9?f&!HsiGuXd&50vs?;(&$SRv<!Cr$|wxYi&`~uwte%}D$whi z94pItucpFIS9WGUGtZekfIrxAlq|^)r2VR^Mul%uLyJU`U}H5_6AjZbpx$oFI2@^X z$p0!2Xy9NMH%l;|NFOjE*bb(v6p{AO57dnp`w3;=N_re%0)bO9aM7n0O@H`(GX{L8 z@=DuZnxm7XALG&_6XCJ9_z0z@N-updmImKwTwP8KaXHlJs%aP1RBC^1K<w*3Q@YvS z_JW-A-Q*mqfvs2oZbJ#V(t6XEdU>&Fam82HSKGPiIWZPfSm|?c_So<^!YAv6@B(<Y z;~^ctN0lJU>;WpiifEErKHY}Xs&ue~;`-B1om0Nj_0(wHUBo*L<y>6uu-)~esCl1{ zlXa6*uQKL+wmAxr4S_GNLu{QIC7;5_Bt@{P*^)NK!27`t70+yZIpIODLgU&|yCk)6 zviBCw;ho#WVk3lMtcTwyzZV1-z7XVzq~-Z`n4<LT!ci|%d>LZf1RbvEF~=!Uw)r#V z&U))4Q_d{3O<I3qLW7=A$L#99&U*-10)+M*+nP-~6I5ELZ=jN?bJ+@{?lsxG7KW+P zdsf0~pQ}F<SVYA>o2&i9?<Khee6taCaJc<0V;cRSLn8~vq|D5^b|KE(3e)=eJ7)l# zm&%kFl?;C1`z44m?!q&pPU1fLZLJot_v?dz>_nbQdB9E*z=?pFARXmiJs(#vha+bY zZT*A1%fZ(-9Ziw1T2W8+94FR!Na6&@6z(civoi`$-Xd1ggR~X3>gRVZxjJlqrH>Ka z5e?AvC*f2Q;eHlP90gp8(Mnxae{$6*gi#$7YP+K_sSKrYyw!m7wNM0T97quzXFo8* zX{W=jQz59POg9*uJbs#Qr4Bg25Vt&SAbi#~;dz>8an<9V>ULP|T$jY`|2Soh&2Nc( zRCKvm;f^nJ1fKcI1fP9U?vp})*+TqM@-GjUmPax;bvzTlju~lCUm;(iuxjVF;@Bx* z4B*qPSf<f$Ejd-Hw~N0R#xfVr{ywy2ZocPa?v^Kqk{aJim70X(tzj^u=7qskl>xUV zM8NMX0<sS(+Ax>l3pZA%mvv|k`-y=XB0_Ip+t0xciU*WiO-;EUsO)uT%`jxc=1F@! zFM_X(ILl)|*3$k^Z^Jq<IF(sUJ<PsgphW7~&4R)Kp=)Z$`)=C&hSwmSj|}gBT-p;U zS}T7+3t_Vl%pLTe=DwjBnpx1x?g%en=hx)0abRJB3J}u9J@pUajplzL+yk@EhZ&x? z7abQ36I7IlPc3-2rm*jtL#!TF+AeweQPZ4=86?~UvmQApj$Pnj=gqpyWhliowj=%+ z0FVOMgvvaB*z%9u3r<ZDqEbNf^fYCz(Ghk!Vnk7~<&c1?+OQ_?SB@>Npo4b<Am4&b zKT2SW=o~gB-LoNs6>quL5py-sV%%nTtn2(2dkPoNnyqs}wwf5Dzp|`^R&}wK*i;{4 zmo+rId|O$ws*aLRuFz&k$8!TUflGHA6H>?RYink$Pz^+2U|4_B+wA@%`Wsp4<ETK7 zU^y4!5Or?E8AHZa21}g>w`0-vkc)jrRE^qxj974X%F71n&&qjAL)d}#6bnbJlB0h4 zyZI&*e9%LRlk*Z=ftau>`*y;9*)_6gAxE09341i%lcKZc$TQTX5VPn2&08QoXD$Xc zE*oBG5+ec%pe_0B$rx*wvLnt2QlNcbx1Mq`b(6;SxdP*JSlk(8XX!9OWUXXw@1^&| zP`}y`DN~$QA*@c;?QP{IA7{PGgDT((<>GmM&KsimM*7!?HrcCsHVC8|VbwD^E*%;V zEI-@Y`SPm7_S8AuWEU#L!+~8Sa9%_x#bN>Scy;KI8)HH`CB9BLPvwZ#zSzbL-s<`G zr;m9J*()o|j&pPrndZGGRSQ4`aj5EO^NLShyXqjb<E=1hRJG~2c4|Ko;XDizRt90A z4{%xf+H`beUQ93F!5Tz<5S>_jNMie4WApk82ntX5lNj<RUxX8O`Y`w`1vEj7sOVl0 z#+-Lge}9a%K6ehru_cR6A15N#zm#gS=y^a}h^Kg>ZYA9QZe65`8Cn=dXWtt&e0Dc- z^*9uWY_lMlzO?#`hK)sL^C}3|4E<DxKBtSw56qio(A)R=RrN%fiiv!bs#C{YyV=$^ ccrOymyUr7?jE`^e&*z}Fy1rVoifzpQ0Aq#91ONa4 literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png new file mode 100644 index 0000000000000000000000000000000000000000..1546494ca34e9e2c08d62f36d71aa89ad0aad762 GIT binary patch literal 7289 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 TQThHq|ACrnda9q5Z6p5&?MckJ literal 0 HcmV?d00001 diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg index b71ed51d3..7fae028c0 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Mouse.svg @@ -1,84 +1,84 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Layer_1" - x="0px" - y="0px" - width="29.6875" - height="40.625095" - viewBox="0 0 29.6875 40.625095" - enable-background="new 0 0 64 64" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="Mouse.svg"><metadata - id="metadata21"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs19" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="747" - inkscape:window-height="596" - id="namedview17" - showgrid="false" - inkscape:zoom="1.84375" - inkscape:cx="-37.919388" - inkscape:cy="92.305679" - inkscape:window-x="266" - inkscape:window-y="72" - inkscape:window-maximized="0" - inkscape:current-layer="Layer_1" - inkscape:snap-center="false" - inkscape:snap-page="false" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> -<g - id="g3" - transform="translate(-17.15625,-19.531154)"> - <g - id="g5" - style="fill:#4d4d4d;stroke:#4d4d4d"> - <path - d="M 31.9335,20.041 C 24.639,20.034 17.653,20.318 17.653,44.617 c 0,10.951 8.799,15.032 14.347,15.032 5.545,0 14.347,-4.081 14.347,-15.032 0,-24.27 -7.119,-24.569 -14.4135,-24.576 z m 0.7515,1.358 c 5.643,0.012 10.927,0.236 12.063,16.153 -3.86,1.805 -7.916,2.765 -12.063,2.86 l 0,-2.966 c 0.845,-0.162 1.481,-0.909 1.481,-1.782 l 0,-8.956 c 0,-0.876 -0.637,-1.621 -1.481,-1.784 z m -1.027,4.855 0.685,0 c 0.249,0 0.453,0.205 0.453,0.454 l 0,8.956 c 0,0.249 -0.204,0.449 -0.453,0.449 l -0.685,0 c -0.249,0 -0.452,-0.2 -0.452,-0.449 l 0,-8.956 c 0,-0.249 0.203,-0.454 0.452,-0.454 z m -0.345,-4.855 0,3.525 c -0.845,0.163 -1.479,0.91 -1.479,1.784 l 0,8.956 c 0,0.873 0.634,1.62 1.479,1.782 l 0,2.966 C 25.002,40.264 20.408,38.16 19.25,37.573 20.381,21.633 25.668,21.411 31.313,21.399 z M 32,58.274 c -5.016,0 -12.976,-3.707 -12.976,-13.658 0,-1.983 0.045,-3.853 0.134,-5.563 2.003,0.929 6.696,2.74 12.868,2.74 4.394,0 8.704,-0.934 12.813,-2.771 0.089,1.718 0.135,3.6 0.135,5.595 0,9.95 -7.958,13.657 -12.974,13.657 z" - id="path7" - style="fill:#4d4d4d;stroke:#4d4d4d" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cssscccccssccsssssssssccssccccsscscss" /> - </g> - - -<path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" - id="path3768" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" - id="path3770" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" - id="path3772" - inkscape:connector-curvature="0" /></g> -<path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644;stroke-opacity:1" - d="M 11.584306,20.532528 C 9.1265112,20.247533 6.2927846,19.555647 4.1047676,18.706316 c -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.5226316 4.304477,-8.0618496 9.1542404,-8.0618496 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.5275241 -0.422157,5.7217066 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" - id="path3766" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="29.6875" + height="40.625095" + viewBox="0 0 29.6875 40.625095" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Mouse.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="747" + inkscape:window-height="596" + id="namedview17" + showgrid="false" + inkscape:zoom="1.84375" + inkscape:cx="-37.919388" + inkscape:cy="92.305679" + inkscape:window-x="266" + inkscape:window-y="72" + inkscape:window-maximized="0" + inkscape:current-layer="Layer_1" + inkscape:snap-center="false" + inkscape:snap-page="false" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3" + transform="translate(-17.15625,-19.531154)"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + d="M 31.9335,20.041 C 24.639,20.034 17.653,20.318 17.653,44.617 c 0,10.951 8.799,15.032 14.347,15.032 5.545,0 14.347,-4.081 14.347,-15.032 0,-24.27 -7.119,-24.569 -14.4135,-24.576 z m 0.7515,1.358 c 5.643,0.012 10.927,0.236 12.063,16.153 -3.86,1.805 -7.916,2.765 -12.063,2.86 l 0,-2.966 c 0.845,-0.162 1.481,-0.909 1.481,-1.782 l 0,-8.956 c 0,-0.876 -0.637,-1.621 -1.481,-1.784 z m -1.027,4.855 0.685,0 c 0.249,0 0.453,0.205 0.453,0.454 l 0,8.956 c 0,0.249 -0.204,0.449 -0.453,0.449 l -0.685,0 c -0.249,0 -0.452,-0.2 -0.452,-0.449 l 0,-8.956 c 0,-0.249 0.203,-0.454 0.452,-0.454 z m -0.345,-4.855 0,3.525 c -0.845,0.163 -1.479,0.91 -1.479,1.784 l 0,8.956 c 0,0.873 0.634,1.62 1.479,1.782 l 0,2.966 C 25.002,40.264 20.408,38.16 19.25,37.573 20.381,21.633 25.668,21.411 31.313,21.399 z M 32,58.274 c -5.016,0 -12.976,-3.707 -12.976,-13.658 0,-1.983 0.045,-3.853 0.134,-5.563 2.003,0.929 6.696,2.74 12.868,2.74 4.394,0 8.704,-0.934 12.813,-2.771 0.089,1.718 0.135,3.6 0.135,5.595 0,9.95 -7.958,13.657 -12.974,13.657 z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cssscccccssccsssssssssccssccccsscscss" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644;stroke-opacity:1" + d="M 11.584306,20.532528 C 9.1265112,20.247533 6.2927846,19.555647 4.1047676,18.706316 c -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.5226316 4.304477,-8.0618496 9.1542404,-8.0618496 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.5275241 -0.422157,5.7217066 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg index 4cb117d69..0c49c15fb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseLeft.svg @@ -1,76 +1,76 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Layer_1" - x="0px" - y="0px" - width="64px" - height="64px" - viewBox="0 0 64 64" - enable-background="new 0 0 64 64" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="MouseLeft.svg"><metadata - id="metadata21"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs19" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1282" - inkscape:window-height="886" - id="namedview17" - showgrid="false" - inkscape:zoom="3.6875" - inkscape:cx="-10.305085" - inkscape:cy="32" - inkscape:window-x="104" - inkscape:window-y="136" - inkscape:window-maximized="0" - inkscape:current-layer="g3" /> -<g - id="g3"> - <g - id="g5" - style="fill:#4d4d4d;stroke:#4d4d4d"> - <path - fill="#020202" - d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" - id="path7" - style="fill:#4d4d4d;stroke:#4d4d4d" /> - </g> - - -<path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" - id="path3768" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" - id="path3770" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" - id="path3772" - inkscape:connector-curvature="0" /></g> -<path - style="fill:#66CCFF;stroke:#66CCFF;stroke-width:0.27118643999999997" - d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" - id="path3766" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseLeft.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="104" + inkscape:window-y="136" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="fill:#4d4d4d;stroke:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="fill:#4d4d4d;stroke:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /></g> +<path + style="fill:#66CCFF;stroke:#66CCFF;stroke-width:0.27118643999999997" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3766" inkscape:connector-curvature="0" /></svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg index 303ab908a..9dd533d58 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseMiddle.svg @@ -1,76 +1,76 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Layer_1" - x="0px" - y="0px" - width="64px" - height="64px" - viewBox="0 0 64 64" - enable-background="new 0 0 64 64" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="MouseMiddle.svg"><metadata - id="metadata21"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs19" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1282" - inkscape:window-height="886" - id="namedview17" - showgrid="false" - inkscape:zoom="3.6875" - inkscape:cx="-10.305085" - inkscape:cy="32" - inkscape:window-x="31" - inkscape:window-y="15" - inkscape:window-maximized="0" - inkscape:current-layer="g3" /> -<g - id="g3"> - <g - id="g5" - style="stroke:#4d4d4d;fill:#4d4d4d"> - <path - fill="#020202" - d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" - id="path7" - style="stroke:#4d4d4d;fill:#4d4d4d" /> - </g> - - -<path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118643999999997" - d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" - id="path3768" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" - id="path3772" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" - id="path3778" - inkscape:connector-curvature="0" /><path - style="fill:#ffd800;stroke:#ffd800;stroke-width:0.33870965" - d="m 31.356243,35.809264 c -0.164314,-0.103856 -0.298753,-2.215682 -0.298753,-4.692945 0,-3.956026 0.08644,-4.52508 0.710296,-4.676395 0.390663,-0.09475 0.87474,-0.06834 1.075729,0.0587 0.200991,0.127038 0.312719,2.28036 0.248288,4.785159 -0.09927,3.859122 -0.217853,4.566401 -0.776977,4.634247 -0.362909,0.04404 -0.79427,-0.0049 -0.958583,-0.108765 l 0,0 z" - id="path3770" - inkscape:connector-curvature="0" /></g> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseMiddle.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="-10.305085" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /><path + style="fill:#ffd800;stroke:#ffd800;stroke-width:0.33870965" + d="m 31.356243,35.809264 c -0.164314,-0.103856 -0.298753,-2.215682 -0.298753,-4.692945 0,-3.956026 0.08644,-4.52508 0.710296,-4.676395 0.390663,-0.09475 0.87474,-0.06834 1.075729,0.0587 0.200991,0.127038 0.312719,2.28036 0.248288,4.785159 -0.09927,3.859122 -0.217853,4.566401 -0.776977,4.634247 -0.362909,0.04404 -0.79427,-0.0049 -0.958583,-0.108765 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /></g> </svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg index 1c6f34d65..2662ad18d 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/MouseRight.svg @@ -1,76 +1,76 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Layer_1" - x="0px" - y="0px" - width="64px" - height="64px" - viewBox="0 0 64 64" - enable-background="new 0 0 64 64" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="MouseRight.svg"><metadata - id="metadata21"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs19" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1282" - inkscape:window-height="886" - id="namedview17" - showgrid="false" - inkscape:zoom="3.6875" - inkscape:cx="32" - inkscape:cy="32" - inkscape:window-x="31" - inkscape:window-y="15" - inkscape:window-maximized="0" - inkscape:current-layer="g3" /> -<g - id="g3"> - <g - id="g5" - style="stroke:#4d4d4d;fill:#4d4d4d"> - <path - fill="#020202" - d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" - id="path7" - style="stroke:#4d4d4d;fill:#4d4d4d" /> - </g> - - -<path - style="fill:#65FD00;stroke:#65FD00;stroke-width:0.27118643999999997" - d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" - id="path3768" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" - id="path3770" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" - id="path3772" - inkscape:connector-curvature="0" /><path - style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" - d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" - id="path3778" - inkscape:connector-curvature="0" /></g> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 15.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Layer_1" + x="0px" + y="0px" + width="64px" + height="64px" + viewBox="0 0 64 64" + enable-background="new 0 0 64 64" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="MouseRight.svg"><metadata + id="metadata21"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs19" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1282" + inkscape:window-height="886" + id="namedview17" + showgrid="false" + inkscape:zoom="3.6875" + inkscape:cx="32" + inkscape:cy="32" + inkscape:window-x="31" + inkscape:window-y="15" + inkscape:window-maximized="0" + inkscape:current-layer="g3" /> +<g + id="g3"> + <g + id="g5" + style="stroke:#4d4d4d;fill:#4d4d4d"> + <path + fill="#020202" + d="M32.854,20.028c-0.015-1.274,0.576-2.269,1.151-3.236c0.758-1.278,1.543-2.6,0.997-4.417 c-0.555-1.667-1.607-2.485-2.539-3.212c-1.254-0.973-2.159-1.676-1.687-4.343l0.041-0.229l-1.35-0.238L29.427,4.58 c-0.615,3.484,0.878,4.643,2.195,5.666c0.85,0.663,1.653,1.288,2.072,2.542c0.366,1.224-0.18,2.143-0.869,3.306 c-0.641,1.081-1.366,2.3-1.349,3.933c-6.837,0.007-13.823,0.291-13.823,24.59c0,10.951,8.799,15.032,14.347,15.032 c5.545,0,14.347-4.081,14.347-15.032C46.347,20.347,39.228,20.048,32.854,20.028z M32.685,21.399 c5.643,0.012,10.927,0.236,12.063,16.153c-3.86,1.805-7.916,2.765-12.063,2.86v-2.966c0.845-0.162,1.481-0.909,1.481-1.782v-8.956 c0-0.876-0.637-1.621-1.481-1.784V21.399z M31.658,26.254h0.685c0.249,0,0.453,0.205,0.453,0.454v8.956 c0,0.249-0.204,0.449-0.453,0.449h-0.685c-0.249,0-0.452-0.2-0.452-0.449v-8.956C31.206,26.459,31.409,26.254,31.658,26.254z M31.313,21.399v3.525c-0.845,0.163-1.479,0.91-1.479,1.784v8.956c0,0.873,0.634,1.62,1.479,1.782v2.966 c-6.311-0.148-10.905-2.252-12.063-2.839C20.381,21.633,25.668,21.411,31.313,21.399z M32,58.274 c-5.016,0-12.976-3.707-12.976-13.658c0-1.983,0.045-3.853,0.134-5.563c2.003,0.929,6.696,2.74,12.868,2.74 c4.394,0,8.704-0.934,12.813-2.771c0.089,1.718,0.135,3.6,0.135,5.595C44.974,54.567,37.016,58.274,32,58.274z" + id="path7" + style="stroke:#4d4d4d;fill:#4d4d4d" /> + </g> + + +<path + style="fill:#65FD00;stroke:#65FD00;stroke-width:0.27118643999999997" + d="m 32.922034,38.950793 c 0,-1.135825 0.114919,-1.458045 0.677966,-1.900938 l 0.677966,-0.533288 0,-5.28078 c 0,-5.271249 -0.0012,-5.282003 -0.677966,-5.958745 -0.557439,-0.557439 -0.677966,-0.940935 -0.677966,-2.157165 l 0,-1.479199 1.535487,0 c 5.657554,0 8.584338,3.728529 9.71855,12.380791 0.498434,3.802265 0.50348,3.525731 -0.0676,3.704572 -0.261017,0.08174 -1.528694,0.512016 -2.817059,0.956167 -2.037206,0.702306 -4.048032,1.113044 -7.488026,1.529528 l -0.881356,0.106707 0,-1.36765 z" + id="path3768" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 31.485081,35.842143 c -0.104591,-0.104591 -0.190166,-2.231347 -0.190166,-4.726123 0,-3.983994 0.05502,-4.557071 0.452127,-4.709456 0.24867,-0.09542 0.556802,-0.06882 0.684738,0.05912 0.127937,0.127936 0.199056,2.296481 0.158043,4.818988 -0.06319,3.886405 -0.13867,4.598683 -0.494572,4.667009 -0.231003,0.04435 -0.505579,-0.0049 -0.61017,-0.109533 l 0,0 z" + id="path3770" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 30.440433,57.945316 c -3.064053,-0.42113 -6.77723,-2.474953 -8.457621,-4.67806 -2.1588,-2.830333 -3.113918,-6.737716 -2.769592,-11.330385 l 0.193121,-2.575872 2.07988,0.735628 c 3.527026,1.247466 6.337701,1.719068 10.215474,1.71405 4.171771,-0.0054 6.642981,-0.38868 10.25836,-1.591058 2.178973,-0.724668 2.692193,-0.815856 2.813444,-0.499883 0.08157,0.21256 0.08664,2.119864 0.01127,4.238453 -0.106217,2.98581 -0.266531,4.212938 -0.712935,5.457208 -1.450217,4.042206 -4.401118,6.844156 -8.437938,8.012017 -2.314747,0.669661 -3.34314,0.772215 -5.193465,0.517902 z" + id="path3772" + inkscape:connector-curvature="0" /><path + style="fill:#ffffff;stroke:#ffffff;stroke-width:0.27118644" + d="m 28.740556,40.063682 c -2.457795,-0.284995 -5.291522,-0.976881 -7.479539,-1.826212 -0.969492,-0.376332 -1.792939,-0.704961 -1.829884,-0.730287 -0.152564,-0.104584 0.766016,-6.242541 1.16801,-7.804656 1.421191,-5.522631 4.304477,-8.061849 9.154241,-8.061849 l 1.541531,0 0,1.627119 c 0,1.237125 -0.09381,1.627118 -0.391402,1.627118 -0.215271,0 -0.581373,0.271221 -0.813559,0.602714 -0.345889,0.493826 -0.422157,1.527524 -0.422157,5.721706 l 0,5.118992 0.813559,0.759978 c 0.675846,0.631335 0.813559,0.971083 0.813559,2.007108 0,0.835921 -0.111771,1.235378 -0.338983,1.211489 -0.18644,-0.0196 -1.18336,-0.133551 -2.215376,-0.25322 l 0,0 z" + id="path3778" + inkscape:connector-curvature="0" /></g> </svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg index 6e31dbc3a..e682b3019 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/Touch.svg @@ -1,120 +1,120 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Capa_1" - x="0px" - y="0px" - width="76.664284" - height="128.25087" - viewBox="0 0 76.664283 128.25086" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="Touch.svg"><metadata - id="metadata3468"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs3466" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="920" - inkscape:window-height="780" - id="namedview3464" - showgrid="false" - inkscape:zoom="1.7688899" - inkscape:cx="-0.07794217" - inkscape:cy="94.239301" - inkscape:window-x="1529" - inkscape:window-y="186" - inkscape:window-maximized="0" - inkscape:current-layer="g3428" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> -<g - id="g3428" - transform="translate(-7.9878665e-4,-5.1661327)"> - - <path - d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" - id="path3432" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccc" - style="fill:#ffffff;fill-opacity:1" /> -</g> -<g - id="g3434" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3436" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3438" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3440" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3442" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3444" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3446" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3448" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3450" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3452" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3454" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3456" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3458" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3460" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> -<g - id="g3462" - transform="translate(-7.9878665e-4,-5.1661327)"> -</g> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="128.25087" + viewBox="0 0 76.664283 128.25086" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="Touch.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.07794217" + inkscape:cy="94.239301" + inkscape:window-x="1529" + inkscape:window-y="186" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-5.1661327)"> + + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +</g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-5.1661327)"> +</g> </svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg index 1d0947484..f0509e855 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchDrag.svg @@ -1,129 +1,129 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Capa_1" - x="0px" - y="0px" - width="76.664284" - height="133.41701" - viewBox="0 0 76.664283 133.417" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="TouchDrag.svg"><metadata - id="metadata3468"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs3466" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="920" - inkscape:window-height="780" - id="namedview3464" - showgrid="false" - inkscape:zoom="1.7688899" - inkscape:cx="-0.077942171" - inkscape:cy="94.239298" - inkscape:window-x="161" - inkscape:window-y="225" - inkscape:window-maximized="0" - inkscape:current-layer="g3428" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> -<g - id="g3428" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="M 18.653,0 C 12.359,0 7.258,5.102 7.258,11.395 c 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 30.048,5.102 24.946,0 18.653,0 z m 0,20.43 c -4.989,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.047,-9.035 9.036,-9.035 4.989,0 9.035,4.046 9.035,9.035 0,4.99 -4.045,9.036 -9.035,9.036 z" - id="path3430" - inkscape:connector-curvature="0" /> - <path - d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" - id="path3432" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccc" - style="fill:#ffffff;fill-opacity:1" /> -<path - d="m 65.247258,98.823749 c -0.681067,0.71969 -7.149935,7.376421 -7.149935,7.376421 0,0 -0.86404,0.92222 -0.86404,-0.29705 0.0013,-1.22468 0.0013,-3.17039 0.0013,-3.17039 0,0 -0.498094,0.003 -1.261753,0.002 -2.35324,0.002 -6.936466,0.002 -8.692502,0.002 0,0 -0.07751,-0.007 -0.162642,-0.0472 0,0.0378 0,0.0972 0,0.13232 0.01652,0.0891 0.0013,0.16068 0,0.16608 0,0.0149 0,0.0419 0,0.0554 0,0 0.01779,0.077 0,0.17013 0,2.02673 0,6.49066 0,8.99672 0.0013,0.90332 0,1.49203 0,1.49203 0,0 2.283354,0.002 3.229986,0 0.942821,0 0.07751,0.87225 0.07751,0.87225 l -7.121981,7.36157 c 0,0 -0.470139,0.5833 -0.963151,0.0607 -0.677255,-0.72374 -6.941548,-7.59515 -6.941548,-7.59515 0,0 -0.867853,-0.91952 0.280812,-0.91952 1.151207,0.002 2.983481,0.002 2.983481,0.002 0,0 -0.0026,-0.52929 -0.0013,-1.34079 -0.0013,-2.50067 -0.0013,-7.37102 -0.0013,-9.23572 l 0,-0.004 c 0,-0.0567 0,-0.14582 0,-0.21333 -0.08259,0.0392 -0.15883,0.0459 -0.15883,0.0459 -1.756036,0 -6.339262,0 -8.696314,-0.002 -0.759847,0.002 -1.260482,0 -1.260482,0 0,0 0.0026,1.94706 0.0026,3.17039 -0.0013,1.21793 -0.864041,0.29975 -0.864041,0.29975 0,0 -6.467597,-6.655381 -7.147393,-7.377761 -0.493012,-0.52525 0.05464,-1.02484 0.05464,-1.02484 l 6.927571,-7.566801 c 0,0 0.82338,-0.92357 0.82211,0.08236 0.0026,1.004586 0.0026,3.432334 0.0026,3.432334 0,0 0.552732,-0.0014 1.402796,-0.0041 2.439643,0.0041 6.872933,0.0027 8.678524,0.0014 0,0 0.116899,-0.03106 0.23634,0.027 0,-4.084505 0,-8.204115 0.0013,-9.436893 -0.0013,-0.807449 0,-1.339448 0,-1.339448 0,0 -1.832274,0.0027 -2.983481,0.0027 -1.146124,-0.0014 -0.280813,-0.918169 -0.280813,-0.918169 0,0 6.261752,-6.872771 6.942819,-7.596505 0.494283,-0.522547 0.964422,0.05806 0.964422,0.05806 l 7.12071,7.361561 c 0,0 0.869123,0.874963 -0.07624,0.872261 -0.945362,0.0027 -3.229987,0.0027 -3.229987,0.0027 0,0 0.0013,0.587358 0.0038,1.492025 -0.0013,1.284087 -0.0026,5.419901 -0.0026,9.503056 0.120712,-0.06211 0.240153,-0.02835 0.240153,-0.02835 1.804319,0 6.237609,0 8.675982,0 0.851334,-0.0014 1.404066,0 1.404066,0 0,0 0.0013,-2.426399 0,-3.430985 0,-1.003235 0.820838,-0.08236 0.820838,-0.08236 l 6.927572,7.566803 c 0,0.001 0.546378,0.50094 0.05845,1.02484 z" - id="path3238" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccccccccccsscccccccccccccccccccccccccccccccc" - style="fill:#66ccff;fill-opacity:1" /></g> -<g - id="g3434" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3436" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3438" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3440" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3442" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3444" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3446" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3448" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3450" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3452" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3454" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3456" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3458" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3460" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> -<g - id="g3462" - transform="translate(-7.9878665e-4,-2.9265169e-6)"> -</g> +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.664284" + height="133.41701" + viewBox="0 0 76.664283 133.417" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchDrag.svg"><metadata + id="metadata3468"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3466" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="920" + inkscape:window-height="780" + id="namedview3464" + showgrid="false" + inkscape:zoom="1.7688899" + inkscape:cx="-0.077942171" + inkscape:cy="94.239298" + inkscape:window-x="161" + inkscape:window-y="225" + inkscape:window-maximized="0" + inkscape:current-layer="g3428" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3428" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="M 18.653,0 C 12.359,0 7.258,5.102 7.258,11.395 c 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 30.048,5.102 24.946,0 18.653,0 z m 0,20.43 c -4.989,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.047,-9.035 9.036,-9.035 4.989,0 9.035,4.046 9.035,9.035 0,4.99 -4.045,9.036 -9.035,9.036 z" + id="path3430" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,80.896 C 77.465,66.89 62.145,65.577 62.145,65.577 57.771,52.885 46.39,59.45 46.39,59.45 40.701,46.758 29.322,55.511 29.322,55.511 27.912,55.092 25.613,11.796 24.414,11.604 23.44,7.068 14.011,-1.728 12.511,14.772 c 0,36.5 -1.135,47.304 -1.135,47.304 C 9.188,67.328 5.31,80.458 5.31,80.458 -3.006,89.649 0.933,96.214 0.933,96.214 c 7.002,12.255 21.385,28.449 21.385,28.449 6.129,5.252 2.627,8.316 2.627,8.316 l 42.455,0.438 2.334,-7.878 c 9.628,-18.382 6.417,-44.643 6.417,-44.643 z" + id="path3432" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccc" + style="fill:#ffffff;fill-opacity:1" /> +<path + d="m 65.247258,98.823749 c -0.681067,0.71969 -7.149935,7.376421 -7.149935,7.376421 0,0 -0.86404,0.92222 -0.86404,-0.29705 0.0013,-1.22468 0.0013,-3.17039 0.0013,-3.17039 0,0 -0.498094,0.003 -1.261753,0.002 -2.35324,0.002 -6.936466,0.002 -8.692502,0.002 0,0 -0.07751,-0.007 -0.162642,-0.0472 0,0.0378 0,0.0972 0,0.13232 0.01652,0.0891 0.0013,0.16068 0,0.16608 0,0.0149 0,0.0419 0,0.0554 0,0 0.01779,0.077 0,0.17013 0,2.02673 0,6.49066 0,8.99672 0.0013,0.90332 0,1.49203 0,1.49203 0,0 2.283354,0.002 3.229986,0 0.942821,0 0.07751,0.87225 0.07751,0.87225 l -7.121981,7.36157 c 0,0 -0.470139,0.5833 -0.963151,0.0607 -0.677255,-0.72374 -6.941548,-7.59515 -6.941548,-7.59515 0,0 -0.867853,-0.91952 0.280812,-0.91952 1.151207,0.002 2.983481,0.002 2.983481,0.002 0,0 -0.0026,-0.52929 -0.0013,-1.34079 -0.0013,-2.50067 -0.0013,-7.37102 -0.0013,-9.23572 l 0,-0.004 c 0,-0.0567 0,-0.14582 0,-0.21333 -0.08259,0.0392 -0.15883,0.0459 -0.15883,0.0459 -1.756036,0 -6.339262,0 -8.696314,-0.002 -0.759847,0.002 -1.260482,0 -1.260482,0 0,0 0.0026,1.94706 0.0026,3.17039 -0.0013,1.21793 -0.864041,0.29975 -0.864041,0.29975 0,0 -6.467597,-6.655381 -7.147393,-7.377761 -0.493012,-0.52525 0.05464,-1.02484 0.05464,-1.02484 l 6.927571,-7.566801 c 0,0 0.82338,-0.92357 0.82211,0.08236 0.0026,1.004586 0.0026,3.432334 0.0026,3.432334 0,0 0.552732,-0.0014 1.402796,-0.0041 2.439643,0.0041 6.872933,0.0027 8.678524,0.0014 0,0 0.116899,-0.03106 0.23634,0.027 0,-4.084505 0,-8.204115 0.0013,-9.436893 -0.0013,-0.807449 0,-1.339448 0,-1.339448 0,0 -1.832274,0.0027 -2.983481,0.0027 -1.146124,-0.0014 -0.280813,-0.918169 -0.280813,-0.918169 0,0 6.261752,-6.872771 6.942819,-7.596505 0.494283,-0.522547 0.964422,0.05806 0.964422,0.05806 l 7.12071,7.361561 c 0,0 0.869123,0.874963 -0.07624,0.872261 -0.945362,0.0027 -3.229987,0.0027 -3.229987,0.0027 0,0 0.0013,0.587358 0.0038,1.492025 -0.0013,1.284087 -0.0026,5.419901 -0.0026,9.503056 0.120712,-0.06211 0.240153,-0.02835 0.240153,-0.02835 1.804319,0 6.237609,0 8.675982,0 0.851334,-0.0014 1.404066,0 1.404066,0 0,0 0.0013,-2.426399 0,-3.430985 0,-1.003235 0.820838,-0.08236 0.820838,-0.08236 l 6.927572,7.566803 c 0,0.001 0.546378,0.50094 0.05845,1.02484 z" + id="path3238" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccccccsscccccccccccccccccccccccccccccccc" + style="fill:#66ccff;fill-opacity:1" /></g> +<g + id="g3434" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3436" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3438" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3440" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3442" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3444" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3446" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3448" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3450" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3452" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3454" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3456" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3458" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3460" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> +<g + id="g3462" + transform="translate(-7.9878665e-4,-2.9265169e-6)"> +</g> </svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg index 0b5264f47..fe968ff45 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchRotate.svg @@ -1,76 +1,76 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Capa_1" - x="0px" - y="0px" - width="99.001816" - height="101.57817" - viewBox="0 0 99.001814 101.57817" - enable-background="new 0 0 100.775 118.638" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="TouchRotate.svg"><metadata - id="metadata3382"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs3380" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1105" - inkscape:window-height="739" - id="namedview3378" - showgrid="false" - inkscape:zoom="1.9873603" - inkscape:cx="11.856691" - inkscape:cy="15.112094" - inkscape:window-x="67" - inkscape:window-y="152" - inkscape:window-maximized="0" - inkscape:current-layer="Capa_1" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> - -<path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 48.832974,0 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 C 59.42425,4.862311 54.682106,0 48.832974,0 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" - id="path3430" /><path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 27.154761,39.321738 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" - id="path3430-5" /><path - d="M 93.394891,94.930552 91.5074,101.57817 52.728925,101.21032 c 8.08e-4,-8.5e-4 2.829619,-2.585988 -2.124439,-7.016318 0,0 -10.822746,-5.22596 -18.506953,-18.0968 0,0 -6.310236,-6.742109 -6.091889,-9.206596 -0.583067,-4.408398 -1.209805,-6.954724 -1.715239,-8.534999 -1.063849,-4.039774 -1.553525,-2.844172 -1.553525,-7.228104 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.595085,22.156743 -5.191814,37.665865 z" - id="path3376" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccccccc" - style="fill:#ffffff" /><path - d="m 36.857901,10.534807 -5.731265,12.511815 c 0,0 -0.666487,1.516584 -1.19043,0.316343 -0.52908,-1.19559 -1.800413,-4.092683 -1.800413,-4.092683 0,0 -0.774356,0.279126 -1.962218,0.711771 -3.412049,1.225827 -9.61846,3.462323 -12.145716,4.370646 0,0 -0.609983,0.412873 -1.019633,-0.532666 -0.419926,-0.944375 -3.7806092,-8.602891 -4.0798222,-9.279772 -0.294076,-0.674552 0.288938,-0.867615 0.288938,-0.867615 2.4553422,-0.886224 8.8659382,-3.19599 12.1688342,-4.381112 1.05816,-0.382636 1.763171,-0.631523 1.763171,-0.631523 0,0 -1.02734,-2.324887 -1.664289,-3.782156 -0.636951,-1.454944 1.049169,-0.79202 1.049169,-0.79202 0,0 12.534822,4.676522 13.866509,5.195231 0.963131,0.382636 0.457165,1.253741 0.457165,1.253741 z" - id="path9" - style="fill:#d800d8;fill-opacity:1" - inkscape:connector-curvature="0" /><g - id="g2997" - transform="matrix(0,-1,1,0,-0.01316643,45.882166)" - inkscape:transform-center-x="-4.9812271" - inkscape:transform-center-y="-4.2696251"><path - id="path2999" - d="M 6.6614176,0.14173229 19.48819,5.5984253 c 0,0 1.559055,0.6377953 0.354331,1.1338583 -1.240158,0.5314961 -4.181103,1.7716536 -4.181103,1.7716536 0,0 0.283465,0.7440945 0.744095,1.9133858 1.27559,3.259843 3.57874,9.248032 4.535433,11.692914 0,0 0.425197,0.566929 -0.566929,0.992126 -0.956693,0.389764 -8.751969,3.685039 -9.460631,4.003937 -0.673228,0.283464 -0.885827,-0.283465 -0.885827,-0.283465 C 9.1062996,24.448819 6.6968507,18.283465 5.4921262,15.094489 5.0669294,14.066929 4.8188979,13.393701 4.8188979,13.393701 c 0,0 -2.3740159,0.992126 -3.86220494,1.629921 -1.48818905,0.637796 -0.81496067,-0.992126 -0.81496067,-0.992126 0,0 4.71259861,-12.1535432 5.24409471,-13.42913378 0.3897638,-0.95669294 1.2755906,-0.46062993 1.2755906,-0.46062993 z" - style="fill:#d800d8;fill-opacity:1;fill-rule:nonzero;stroke:none" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="99.001816" + height="101.57817" + viewBox="0 0 99.001814 101.57817" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchRotate.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="1.9873603" + inkscape:cx="11.856691" + inkscape:cy="15.112094" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 48.832974,0 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 C 59.42425,4.862311 54.682106,0 48.832974,0 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 27.154761,39.321738 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="M 93.394891,94.930552 91.5074,101.57817 52.728925,101.21032 c 8.08e-4,-8.5e-4 2.829619,-2.585988 -2.124439,-7.016318 0,0 -10.822746,-5.22596 -18.506953,-18.0968 0,0 -6.310236,-6.742109 -6.091889,-9.206596 -0.583067,-4.408398 -1.209805,-6.954724 -1.715239,-8.534999 -1.063849,-4.039774 -1.553525,-2.844172 -1.553525,-7.228104 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.595085,22.156743 -5.191814,37.665865 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 36.857901,10.534807 -5.731265,12.511815 c 0,0 -0.666487,1.516584 -1.19043,0.316343 -0.52908,-1.19559 -1.800413,-4.092683 -1.800413,-4.092683 0,0 -0.774356,0.279126 -1.962218,0.711771 -3.412049,1.225827 -9.61846,3.462323 -12.145716,4.370646 0,0 -0.609983,0.412873 -1.019633,-0.532666 -0.419926,-0.944375 -3.7806092,-8.602891 -4.0798222,-9.279772 -0.294076,-0.674552 0.288938,-0.867615 0.288938,-0.867615 2.4553422,-0.886224 8.8659382,-3.19599 12.1688342,-4.381112 1.05816,-0.382636 1.763171,-0.631523 1.763171,-0.631523 0,0 -1.02734,-2.324887 -1.664289,-3.782156 -0.636951,-1.454944 1.049169,-0.79202 1.049169,-0.79202 0,0 12.534822,4.676522 13.866509,5.195231 0.963131,0.382636 0.457165,1.253741 0.457165,1.253741 z" + id="path9" + style="fill:#d800d8;fill-opacity:1" + inkscape:connector-curvature="0" /><g + id="g2997" + transform="matrix(0,-1,1,0,-0.01316643,45.882166)" + inkscape:transform-center-x="-4.9812271" + inkscape:transform-center-y="-4.2696251"><path + id="path2999" + d="M 6.6614176,0.14173229 19.48819,5.5984253 c 0,0 1.559055,0.6377953 0.354331,1.1338583 -1.240158,0.5314961 -4.181103,1.7716536 -4.181103,1.7716536 0,0 0.283465,0.7440945 0.744095,1.9133858 1.27559,3.259843 3.57874,9.248032 4.535433,11.692914 0,0 0.425197,0.566929 -0.566929,0.992126 -0.956693,0.389764 -8.751969,3.685039 -9.460631,4.003937 -0.673228,0.283464 -0.885827,-0.283465 -0.885827,-0.283465 C 9.1062996,24.448819 6.6968507,18.283465 5.4921262,15.094489 5.0669294,14.066929 4.8188979,13.393701 4.8188979,13.393701 c 0,0 -2.3740159,0.992126 -3.86220494,1.629921 -1.48818905,0.637796 -0.81496067,-0.992126 -0.81496067,-0.992126 0,0 4.71259861,-12.1535432 5.24409471,-13.42913378 0.3897638,-0.95669294 1.2755906,-0.46062993 1.2755906,-0.46062993 z" + style="fill:#d800d8;fill-opacity:1;fill-rule:nonzero;stroke:none" inkscape:connector-curvature="0" /></g></svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg index 804f836fd..e1206c5d6 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchTilt.svg @@ -1,135 +1,135 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Capa_1" - x="0px" - y="0px" - width="76.663582" - height="140.44" - viewBox="0 0 76.663581 140.44" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="TouchTilt.svg"><metadata - id="metadata3364"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs3362" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="766" - inkscape:window-height="480" - id="namedview3360" - showgrid="false" - inkscape:zoom="1.6804329" - inkscape:cx="6.1930652" - inkscape:cy="74.717535" - inkscape:window-x="343" - inkscape:window-y="203" - inkscape:window-maximized="0" - inkscape:current-layer="Capa_1" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> -<g - id="g3322" - style="fill:#ffffff" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 12.622,5.815 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 0,-6.293 -5.102,-11.395 -11.395,-11.395 z m 0,20.431 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" - id="path3324" - inkscape:connector-curvature="0" /> - <path - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 43.793,0 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 55.188,5.102 50.086,0 43.793,0 z m 0,20.43 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" - id="path3326" - inkscape:connector-curvature="0" /> - <path - d="M 76.151,87.918 C 77.464,73.913 62.146,72.6 62.146,72.6 57.769,59.907 47.556,66.472 47.556,66.472 c 0,0 2.262,-49.025 1.395,-54.713 -0.51,-3.331 -6.383,-10.562 -9.998,-1.684 -2.137,6.166 -5.59,60.75 -9.465,56.874 C 24.984,62.447 20.611,18.817 19.414,18.626 18.438,14.09 9.011,5.294 7.511,21.794 c 3,39.5 3.865,47.304 3.865,47.304 C 9.187,74.35 5.31,87.481 5.31,87.481 c -8.316,9.191 -4.377,15.756 -4.377,15.756 7.002,12.255 21.385,28.449 21.385,28.449 6.127,5.252 2.625,8.316 2.625,8.316 l 42.455,0.438 2.334,-7.879 c 9.628,-18.382 6.419,-44.643 6.419,-44.643 z" - id="path3328" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccccc" - style="fill:#ffffff" /> -</g> -<g - id="g3330" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3332" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3334" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3336" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3338" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3340" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3342" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3344" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3346" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3348" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3350" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3352" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3354" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3356" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<g - id="g3358" - transform="translate(-7.9878665e-4,-3.8214145e-7)"> -</g> -<path - inkscape:connector-curvature="0" - d="m 52.342987,124.78465 -8.980622,9.44613 c 0,0 -0.592129,0.74692 -1.214412,0.0786 -0.853927,-0.92772 -8.753091,-9.74549 -8.753091,-9.74549 0,0 -1.096535,-1.17966 0.352262,-1.17818 1.454279,10e-4 3.762485,10e-4 3.762485,10e-4 0,0 -0.0027,-0.67875 -0.0014,-1.72058 -0.0014,-3.20848 -0.0014,-9.4565 -0.0027,-11.8499 0,0 -0.01233,-0.56315 0.655179,-0.56019 0.672999,0 8.298029,0 9.238308,-0.003 0.937537,0.003 0.774428,0.66985 0.774428,0.66985 0,2.45861 0,8.50359 -0.0027,11.82767 0.0041,1.16039 0.0027,1.91472 0.0027,1.91472 0,0 2.879775,0.003 4.070886,0 1.192483,-10e-4 0.09869,1.11889 0.09869,1.11889 z m -0.09869,-37.828986 c -1.191111,0.003 -4.073627,0.003 -4.073627,0.003 0,0 0.0027,0.752845 0.0041,1.914716 -0.0041,3.327041 -0.0041,9.370556 -0.0014,11.83064 0,0 0.16174,0.66393 -0.774427,0.66096 -0.943021,0.006 -8.563939,0.003 -9.235567,0.004 -0.670257,-0.003 -0.65655,-0.56167 -0.65655,-0.56167 -0.0014,-2.393393 -0.0014,-8.642902 0.0014,-11.855831 -0.0014,-1.034421 0,-1.717613 0,-1.717613 0,0 -2.312318,0.003 -3.762486,0.0044 -1.444685,-0.003 -0.355003,-1.178173 -0.355003,-1.178173 0,0 7.896422,-8.81777 8.755832,-9.745488 0.622284,-0.671338 1.215783,0.07558 1.215783,0.07558 l 8.979252,9.444648 c 0,0 1.096534,1.121857 -0.09732,1.120375 z" - id="path3432" - sodipodi:nodetypes="ccccsccccccccccccccccccccccccc" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 16.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="76.663582" + height="140.44" + viewBox="0 0 76.663581 140.44" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchTilt.svg"><metadata + id="metadata3364"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3362" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="766" + inkscape:window-height="480" + id="namedview3360" + showgrid="false" + inkscape:zoom="1.6804329" + inkscape:cx="6.1930652" + inkscape:cy="74.717535" + inkscape:window-x="343" + inkscape:window-y="203" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> +<g + id="g3322" + style="fill:#ffffff" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 12.622,5.815 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 0,-6.293 -5.102,-11.395 -11.395,-11.395 z m 0,20.431 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3324" + inkscape:connector-curvature="0" /> + <path + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 43.793,0 c -6.294,0 -11.396,5.102 -11.396,11.395 0,6.293 5.102,11.395 11.396,11.395 6.293,0 11.395,-5.102 11.395,-11.395 C 55.188,5.102 50.086,0 43.793,0 z m 0,20.43 c -4.99,0 -9.036,-4.046 -9.036,-9.036 0,-4.989 4.046,-9.035 9.036,-9.035 4.988,0 9.035,4.046 9.035,9.035 0,4.99 -4.047,9.036 -9.035,9.036 z" + id="path3326" + inkscape:connector-curvature="0" /> + <path + d="M 76.151,87.918 C 77.464,73.913 62.146,72.6 62.146,72.6 57.769,59.907 47.556,66.472 47.556,66.472 c 0,0 2.262,-49.025 1.395,-54.713 -0.51,-3.331 -6.383,-10.562 -9.998,-1.684 -2.137,6.166 -5.59,60.75 -9.465,56.874 C 24.984,62.447 20.611,18.817 19.414,18.626 18.438,14.09 9.011,5.294 7.511,21.794 c 3,39.5 3.865,47.304 3.865,47.304 C 9.187,74.35 5.31,87.481 5.31,87.481 c -8.316,9.191 -4.377,15.756 -4.377,15.756 7.002,12.255 21.385,28.449 21.385,28.449 6.127,5.252 2.625,8.316 2.625,8.316 l 42.455,0.438 2.334,-7.879 c 9.628,-18.382 6.419,-44.643 6.419,-44.643 z" + id="path3328" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccc" + style="fill:#ffffff" /> +</g> +<g + id="g3330" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3332" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3334" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3336" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3338" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3340" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3342" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3344" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3346" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3348" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3350" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3352" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3354" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3356" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<g + id="g3358" + transform="translate(-7.9878665e-4,-3.8214145e-7)"> +</g> +<path + inkscape:connector-curvature="0" + d="m 52.342987,124.78465 -8.980622,9.44613 c 0,0 -0.592129,0.74692 -1.214412,0.0786 -0.853927,-0.92772 -8.753091,-9.74549 -8.753091,-9.74549 0,0 -1.096535,-1.17966 0.352262,-1.17818 1.454279,10e-4 3.762485,10e-4 3.762485,10e-4 0,0 -0.0027,-0.67875 -0.0014,-1.72058 -0.0014,-3.20848 -0.0014,-9.4565 -0.0027,-11.8499 0,0 -0.01233,-0.56315 0.655179,-0.56019 0.672999,0 8.298029,0 9.238308,-0.003 0.937537,0.003 0.774428,0.66985 0.774428,0.66985 0,2.45861 0,8.50359 -0.0027,11.82767 0.0041,1.16039 0.0027,1.91472 0.0027,1.91472 0,0 2.879775,0.003 4.070886,0 1.192483,-10e-4 0.09869,1.11889 0.09869,1.11889 z m -0.09869,-37.828986 c -1.191111,0.003 -4.073627,0.003 -4.073627,0.003 0,0 0.0027,0.752845 0.0041,1.914716 -0.0041,3.327041 -0.0041,9.370556 -0.0014,11.83064 0,0 0.16174,0.66393 -0.774427,0.66096 -0.943021,0.006 -8.563939,0.003 -9.235567,0.004 -0.670257,-0.003 -0.65655,-0.56167 -0.65655,-0.56167 -0.0014,-2.393393 -0.0014,-8.642902 0.0014,-11.855831 -0.0014,-1.034421 0,-1.717613 0,-1.717613 0,0 -2.312318,0.003 -3.762486,0.0044 -1.444685,-0.003 -0.355003,-1.178173 -0.355003,-1.178173 0,0 7.896422,-8.81777 8.755832,-9.745488 0.622284,-0.671338 1.215783,0.07558 1.215783,0.07558 l 8.979252,9.444648 c 0,0 1.096534,1.121857 -0.09732,1.120375 z" + id="path3432" + sodipodi:nodetypes="ccccsccccccccccccccccccccccccc" style="fill:#ffd800;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg index 84f7e6e85..74e55d7cb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Images/NavigationHelp/TouchZoom.svg @@ -1,74 +1,74 @@ -<?xml version="1.0" encoding="UTF-8" standalone="no"?> -<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> - -<svg - xmlns:dc="http://purl.org/dc/elements/1.1/" - xmlns:cc="http://creativecommons.org/ns#" - xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" - xmlns:svg="http://www.w3.org/2000/svg" - xmlns="http://www.w3.org/2000/svg" - xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" - xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" - version="1.1" - id="Capa_1" - x="0px" - y="0px" - width="95.087433" - height="118.43173" - viewBox="0 0 95.087431 118.43173" - enable-background="new 0 0 100.775 118.638" - xml:space="preserve" - inkscape:version="0.48.4 r9939" - sodipodi:docname="TouchZoom.svg"><metadata - id="metadata3382"><rdf:RDF><cc:Work - rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type - rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs - id="defs3380" /><sodipodi:namedview - pagecolor="#ffffff" - bordercolor="#666666" - borderopacity="1" - objecttolerance="10" - gridtolerance="10" - guidetolerance="10" - inkscape:pageopacity="0" - inkscape:pageshadow="2" - inkscape:window-width="1105" - inkscape:window-height="739" - id="namedview3378" - showgrid="false" - inkscape:zoom="2.8132167" - inkscape:cx="10.565593" - inkscape:cy="72.192791" - inkscape:window-x="67" - inkscape:window-y="152" - inkscape:window-maximized="0" - inkscape:current-layer="Capa_1" - fit-margin-top="0" - fit-margin-left="0" - fit-margin-right="0" - fit-margin-bottom="0" /> - -<path - d="m 0.0436199,84.941029 c 0,0 -0.2799964,-1.323641 0.578786,-0.720397 0.8621957,0.601498 2.9536375,2.059778 2.9536375,2.059778 0,0 0.3431801,-0.517567 0.8707286,-1.316651 1.521209,-2.28009 4.281925,-6.427623 5.405325,-8.116707 0,0 0.187721,-0.53855 0.863902,-0.06295 0.682926,0.472104 6.206065,4.329377 6.692655,4.668591 0.483157,0.340966 0.220227,0.718649 0.220227,0.718649 -1.094368,1.641877 -3.948985,5.929292 -5.418977,8.132449 -0.469526,0.711655 -0.783654,1.178514 -0.783654,1.178514 0,0 1.678274,1.168023 2.728271,1.900661 1.043172,0.732637 -0.28341,0.987925 -0.28341,0.987925 0,0 -9.7470195,2.05628 -10.7936043,2.25911 -0.756328,0.145111 -0.8468168,-0.666198 -0.8468168,-0.666198 z" - id="path3376-4" - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccccc" - style="fill:#65ff00;fill-opacity:1" /><path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 44.918594,16.853557 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 -9.23e-4,-5.997359 -4.743067,-10.85967 -10.592199,-10.85967 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" - id="path3430" /><path - inkscape:connector-curvature="0" - style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" - d="m 23.240381,56.175295 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" - id="path3430-5" /><path - d="m 89.480511,111.78411 -1.887491,6.64762 -38.778475,-0.36785 c 8.08e-4,-8.5e-4 2.829619,-2.58599 -2.124439,-7.01632 0,0 -10.822746,-5.22596 -18.506953,-18.096801 0,0 -6.310236,-6.742109 -6.091889,-9.206596 C 21.508197,79.335765 20.881459,76.789439 20.376025,75.209164 19.312176,71.16939 18.8225,72.364992 18.8225,67.98106 c 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.59509,22.156743 -5.191814,37.665866 z" - id="path3376" - inkscape:connector-curvature="0" - sodipodi:nodetypes="cccccccccccccccccc" - style="fill:#ffffff" /><path - d="m 49.854025,14.903508 c 0.696314,0.466948 6.359531,4.268019 6.858144,4.604015 0.491619,0.334273 0.748797,-0.05343 0.748797,-0.05343 1.121449,-1.617954 4.044902,-5.844621 5.545997,-8.013953 0.488115,-0.703007 0.803031,-1.164787 0.803031,-1.164787 0,0 1.714536,1.152726 2.792243,1.876411 1.07596,0.721961 0.813533,-0.620302 0.813533,-0.620302 0,0 -1.732034,-9.8989818 -1.933227,-10.95349441 -0.150463,-0.7615853 -0.939496,-0.5513731 -0.939496,-0.5513731 L 53.458049,1.9374693 c 0,0 -1.336636,0.2136595 -0.454876,0.8046693 0.88876,0.5927325 3.02493,2.0297666 3.02493,2.0297666 0,0 -0.355152,0.5083037 -0.895757,1.2940169 -1.558825,2.2468717 -4.387811,6.3339699 -5.538999,7.9984459 -0.0018,0.0017 -0.433883,0.370456 0.260678,0.83914 z" - id="path3376-7-4" - inkscape:connector-curvature="0" - sodipodi:nodetypes="ccccccccccccccc" +<?xml version="1.0" encoding="UTF-8" standalone="no"?> +<!-- Generator: Adobe Illustrator 17.0.0, SVG Export Plug-In . SVG Version: 6.00 Build 0) --> + +<svg + xmlns:dc="http://purl.org/dc/elements/1.1/" + xmlns:cc="http://creativecommons.org/ns#" + xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" + xmlns:svg="http://www.w3.org/2000/svg" + xmlns="http://www.w3.org/2000/svg" + xmlns:sodipodi="http://sodipodi.sourceforge.net/DTD/sodipodi-0.dtd" + xmlns:inkscape="http://www.inkscape.org/namespaces/inkscape" + version="1.1" + id="Capa_1" + x="0px" + y="0px" + width="95.087433" + height="118.43173" + viewBox="0 0 95.087431 118.43173" + enable-background="new 0 0 100.775 118.638" + xml:space="preserve" + inkscape:version="0.48.4 r9939" + sodipodi:docname="TouchZoom.svg"><metadata + id="metadata3382"><rdf:RDF><cc:Work + rdf:about=""><dc:format>image/svg+xml</dc:format><dc:type + rdf:resource="http://purl.org/dc/dcmitype/StillImage" /><dc:title /></cc:Work></rdf:RDF></metadata><defs + id="defs3380" /><sodipodi:namedview + pagecolor="#ffffff" + bordercolor="#666666" + borderopacity="1" + objecttolerance="10" + gridtolerance="10" + guidetolerance="10" + inkscape:pageopacity="0" + inkscape:pageshadow="2" + inkscape:window-width="1105" + inkscape:window-height="739" + id="namedview3378" + showgrid="false" + inkscape:zoom="2.8132167" + inkscape:cx="10.565593" + inkscape:cy="72.192791" + inkscape:window-x="67" + inkscape:window-y="152" + inkscape:window-maximized="0" + inkscape:current-layer="Capa_1" + fit-margin-top="0" + fit-margin-left="0" + fit-margin-right="0" + fit-margin-bottom="0" /> + +<path + d="m 0.0436199,84.941029 c 0,0 -0.2799964,-1.323641 0.578786,-0.720397 0.8621957,0.601498 2.9536375,2.059778 2.9536375,2.059778 0,0 0.3431801,-0.517567 0.8707286,-1.316651 1.521209,-2.28009 4.281925,-6.427623 5.405325,-8.116707 0,0 0.187721,-0.53855 0.863902,-0.06295 0.682926,0.472104 6.206065,4.329377 6.692655,4.668591 0.483157,0.340966 0.220227,0.718649 0.220227,0.718649 -1.094368,1.641877 -3.948985,5.929292 -5.418977,8.132449 -0.469526,0.711655 -0.783654,1.178514 -0.783654,1.178514 0,0 1.678274,1.168023 2.728271,1.900661 1.043172,0.732637 -0.28341,0.987925 -0.28341,0.987925 0,0 -9.7470195,2.05628 -10.7936043,2.25911 -0.756328,0.145111 -0.8468168,-0.666198 -0.8468168,-0.666198 z" + id="path3376-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" + style="fill:#65ff00;fill-opacity:1" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 44.918594,16.853557 c -5.85006,0 -10.591269,4.862311 -10.591269,10.85967 0,5.997358 4.742138,10.859669 10.592198,10.859669 5.849132,0 10.59127,-4.862311 10.59127,-10.859669 -9.23e-4,-5.997359 -4.743067,-10.85967 -10.592199,-10.85967 z m 0,19.47021 c -4.637107,0 -8.398657,-3.855921 -8.398657,-8.611493 0,-4.754621 3.76155,-8.610543 8.398657,-8.610543 4.637107,0 8.397729,3.855922 8.397729,8.610543 0,4.755572 -3.759691,8.611493 -8.397729,8.611493 z" + id="path3430" /><path + inkscape:connector-curvature="0" + style="fill:#ffffff;fill-opacity:1;fill-rule:evenodd" + d="m 23.240381,56.175295 c -5.457398,0 -9.88037,4.703155 -9.88037,10.504205 0,5.801049 4.423839,10.504204 9.881237,10.504204 5.456532,0 9.880371,-4.703155 9.880371,-10.504204 -8.67e-4,-5.80105 -4.424707,-10.504205 -9.881238,-10.504205 z m 0,18.8329 c -4.325859,0 -7.834929,-3.729707 -7.834929,-8.329617 0,-4.598989 3.50907,-8.328696 7.834929,-8.328696 4.32586,0 7.834063,3.729707 7.834063,8.328696 0,4.59991 -3.507336,8.329617 -7.834063,8.329617 z" + id="path3430-5" /><path + d="m 89.480511,111.78411 -1.887491,6.64762 -38.778475,-0.36785 c 8.08e-4,-8.5e-4 2.829619,-2.58599 -2.124439,-7.01632 0,0 -10.822746,-5.22596 -18.506953,-18.096801 0,0 -6.310236,-6.742109 -6.091889,-9.206596 C 21.508197,79.335765 20.881459,76.789439 20.376025,75.209164 19.312176,71.16939 18.8225,72.364992 18.8225,67.98106 c 2.452812,-14.333817 10.869455,1.810623 12.764445,5.488368 0,0 6.305384,7.578229 9.063029,9.283373 8.851152,-2.291524 3.039071,-22.109494 3.660956,-23.668675 0,0 -1.25024,-10.043558 -2.822341,-23.064577 -3.9949,-15.561935 8.286796,-19.626706 11.636292,-3.093053 1.545414,7.344522 3.686834,19.52689 4.483397,19.774098 0,0 8.395048,-7.385018 12.995707,3.323385 0,0 9.202125,-5.538975 12.741777,5.170273 0,0 12.387573,1.10695 11.326563,12.923992 0,0 2.59509,22.156743 -5.191814,37.665866 z" + id="path3376" + inkscape:connector-curvature="0" + sodipodi:nodetypes="cccccccccccccccccc" + style="fill:#ffffff" /><path + d="m 49.854025,14.903508 c 0.696314,0.466948 6.359531,4.268019 6.858144,4.604015 0.491619,0.334273 0.748797,-0.05343 0.748797,-0.05343 1.121449,-1.617954 4.044902,-5.844621 5.545997,-8.013953 0.488115,-0.703007 0.803031,-1.164787 0.803031,-1.164787 0,0 1.714536,1.152726 2.792243,1.876411 1.07596,0.721961 0.813533,-0.620302 0.813533,-0.620302 0,0 -1.732034,-9.8989818 -1.933227,-10.95349441 -0.150463,-0.7615853 -0.939496,-0.5513731 -0.939496,-0.5513731 L 53.458049,1.9374693 c 0,0 -1.336636,0.2136595 -0.454876,0.8046693 0.88876,0.5927325 3.02493,2.0297666 3.02493,2.0297666 0,0 -0.355152,0.5083037 -0.895757,1.2940169 -1.558825,2.2468717 -4.387811,6.3339699 -5.538999,7.9984459 -0.0018,0.0017 -0.433883,0.370456 0.260678,0.83914 z" + id="path3376-7-4" + inkscape:connector-curvature="0" + sodipodi:nodetypes="ccccccccccccccc" style="fill:#65ff00;fill-opacity:1" /></svg> \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css index ae80f745d..42a7b2201 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBox.css @@ -1 +1,92 @@ -.cesium-infoBox{display:block;position:absolute;top:50px;right:0;width:40%;max-width:480px;background:rgba(38,38,38,0.95);color:#edffff;border:1px solid #444;border-right:none;border-top-left-radius:7px;border-bottom-left-radius:7px;box-shadow:0 0 10px 1px #000;transform:translate(100%,0);visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in,transform 0.2s ease-in;}.cesium-infoBox-visible{transform:translate(0,0);visibility:visible;opacity:1;transition:opacity 0.2s ease-out,transform 0.2s ease-out;}.cesium-infoBox-title{display:block;height:20px;padding:5px 30px 5px 25px;background:rgba(84,84,84,1.0);border-top-left-radius:7px;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;box-sizing:content-box;}.cesium-infoBox-bodyless .cesium-infoBox-title{border-bottom-left-radius:7px;}button.cesium-infoBox-camera{display:block;position:absolute;top:4px;left:4px;width:22px;height:22px;background:transparent;border-color:transparent;border-radius:3px;padding:0 5px;margin:0;}button.cesium-infoBox-close{display:block;position:absolute;top:5px;right:5px;height:20px;background:transparent;border:none;border-radius:2px;font-weight:bold;font-size:16px;padding:0 5px;margin:0;color:#edffff;}button.cesium-infoBox-close:focus{background:rgba(238,136,0,0.44);outline:none;}button.cesium-infoBox-close:hover{background:#888;color:#000;}button.cesium-infoBox-close:active{background:#a00;color:#000;}.cesium-infoBox-bodyless .cesium-infoBox-iframe{display:none;}.cesium-infoBox-iframe{border:none;width:100%;width:calc(100% - 2px);} \ No newline at end of file +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css index 05a9e7b6e..04ee3dbc0 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/InfoBox/InfoBoxDescription.css @@ -1 +1,178 @@ -.cesium-svgPath-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;}.cesium-button{display:inline-block;position:relative;background:#303336;border:1px solid #444;color:#edffff;fill:#edffff;border-radius:4px;padding:5px 12px;margin:2px 3px;cursor:pointer;overflow:hidden;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-button:focus{color:#fff;fill:#fff;border-color:#ea4;outline:none;}.cesium-button:hover{color:#fff;fill:#fff;background:#48b;border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-button:active{color:#000;fill:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff;}.cesium-button:disabled,.cesium-button-disabled,.cesium-button-disabled:focus,.cesium-button-disabled:hover,.cesium-button-disabled:active{background:#303336;border-color:#444;color:#646464;fill:#646464;box-shadow:none;cursor:default;}.cesium-button option{background-color:#000;color:#eee;}.cesium-button option:disabled{color:#777;}.cesium-button input,.cesium-button label{cursor:pointer;}.cesium-button input{vertical-align:sub;}.cesium-toolbar-button{box-sizing:border-box;width:32px;height:32px;border-radius:14%;padding:0;vertical-align:middle;z-index:0;}.cesium-performanceDisplay-defaultContainer{position:absolute;top:50px;right:10px;text-align:right;}.cesium-performanceDisplay{background-color:rgba(40,40,40,0.7);padding:7px;border-radius:5px;border:1px solid #444;font:bold 12px sans-serif;}.cesium-performanceDisplay-fps{color:#e52;}.cesium-performanceDisplay-throttled{color:#a42;}.cesium-performanceDisplay-ms{color:#de3;}body{margin:0;padding:0;}.cesium-infoBox-description{font-family:sans-serif;font-size:13px;padding:4px 10px;margin-right:4px;color:#edffff;}.cesium-infoBox-description a:link,.cesium-infoBox-description a:visited,.cesium-infoBox-description a:hover,.cesium-infoBox-description a:active{color:#edffff;}.cesium-infoBox-description table{color:#edffff;}.cesium-infoBox-defaultTable{width:100%;color:#edffff;}.cesium-infoBox-defaultTable tr:nth-child(odd){background-color:rgba(84,84,84,0.8);}.cesium-infoBox-defaultTable tr:nth-child(even){background-color:rgba(84,84,84,0.25);}.cesium-infoBox-defaultTable th{font-weight:normal;padding:3px;vertical-align:middle;text-align:center;}.cesium-infoBox-defaultTable td{padding:3px;vertical-align:middle;text-align:left;}.cesium-infoBox-description-lighter{color:#000000;}.cesium-infoBox-description-lighter a:link,.cesium-infoBox-description-lighter a:visited,.cesium-infoBox-description-lighter a:hover,.cesium-infoBox-description-lighter a:active{color:#000000;}.cesium-infoBox-description-lighter table{color:#000000;}.cesium-infoBox-defaultTable-lighter{width:100%;color:#000000;}.cesium-infoBox-defaultTable-lighter tr:nth-child(odd){background-color:rgba(179,179,179,0.8);}.cesium-infoBox-defaultTable-lighter tr:nth-child(even){background-color:rgba(179,179,179,0.25);}.cesium-infoBox-loadingContainer{margin:5px;text-align:center;}.cesium-infoBox-loading{display:inline-block;background-image:url(../Images/info-loading.gif);width:16px;height:11px;} \ No newline at end of file +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/InfoBox/InfoBoxDescription.css */ +body { + margin: 0; + padding: 0; +} +.cesium-infoBox-description { + font-family: sans-serif; + font-size: 13px; + padding: 4px 10px; + margin-right: 4px; + color: #edffff; +} +.cesium-infoBox-description a:link, +.cesium-infoBox-description a:visited, +.cesium-infoBox-description a:hover, +.cesium-infoBox-description a:active { + color: #edffff; +} +.cesium-infoBox-description table { + color: #edffff; +} +.cesium-infoBox-defaultTable { + width: 100%; + color: #edffff; +} +.cesium-infoBox-defaultTable tr:nth-child(odd) { + background-color: rgba(84, 84, 84, 0.8); +} +.cesium-infoBox-defaultTable tr:nth-child(even) { + background-color: rgba(84, 84, 84, 0.25); +} +.cesium-infoBox-defaultTable th { + font-weight: normal; + padding: 3px; + vertical-align: middle; + text-align: center; +} +.cesium-infoBox-defaultTable td { + padding: 3px; + vertical-align: middle; + text-align: left; +} +.cesium-infoBox-description-lighter { + color: #000000; +} +.cesium-infoBox-description-lighter a:link, +.cesium-infoBox-description-lighter a:visited, +.cesium-infoBox-description-lighter a:hover, +.cesium-infoBox-description-lighter a:active { + color: #000000; +} +.cesium-infoBox-description-lighter table { + color: #000000; +} +.cesium-infoBox-defaultTable-lighter { + width: 100%; + color: #000000; +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(odd) { + background-color: rgba(179, 179, 179, 0.8); +} +.cesium-infoBox-defaultTable-lighter tr:nth-child(even) { + background-color: rgba(179, 179, 179, 0.25); +} +.cesium-infoBox-loadingContainer { + margin: 5px; + text-align: center; +} +.cesium-infoBox-loading { + display: inline-block; + background-image: url(data:text/plain;base64,R0lGODlhEAALAPQAAAAAAOLTlyAdFSgmGxEQC9zOk+LTl7mse25nSYyDXTw4KMO2gqCVa2dgRIl/Wzg1JsCzgN7PlJySaBUTDiEfFggIBbCkdR4cFAoJB0A7KlNONy4rHg4NCQAAAAAAAAAAACH/C05FVFNDQVBFMi4wAwEAAAAh/hpDcmVhdGVkIHdpdGggYWpheGxvYWQuaW5mbwAh+QQJCwAAACwAAAAAEAALAAAFLSAgjmRpnqSgCuLKAq5AEIM4zDVw03ve27ifDgfkEYe04kDIDC5zrtYKRa2WQgAh+QQJCwAAACwAAAAAEAALAAAFJGBhGAVgnqhpHIeRvsDawqns0qeN5+y967tYLyicBYE7EYkYAgAh+QQJCwAAACwAAAAAEAALAAAFNiAgjothLOOIJAkiGgxjpGKiKMkbz7SN6zIawJcDwIK9W/HISxGBzdHTuBNOmcJVCyoUlk7CEAAh+QQJCwAAACwAAAAAEAALAAAFNSAgjqQIRRFUAo3jNGIkSdHqPI8Tz3V55zuaDacDyIQ+YrBH+hWPzJFzOQQaeavWi7oqnVIhACH5BAkLAAAALAAAAAAQAAsAAAUyICCOZGme1rJY5kRRk7hI0mJSVUXJtF3iOl7tltsBZsNfUegjAY3I5sgFY55KqdX1GgIAIfkECQsAAAAsAAAAABAACwAABTcgII5kaZ4kcV2EqLJipmnZhWGXaOOitm2aXQ4g7P2Ct2ER4AMul00kj5g0Al8tADY2y6C+4FIIACH5BAkLAAAALAAAAAAQAAsAAAUvICCOZGme5ERRk6iy7qpyHCVStA3gNa/7txxwlwv2isSacYUc+l4tADQGQ1mvpBAAIfkECQsAAAAsAAAAABAACwAABS8gII5kaZ7kRFGTqLLuqnIcJVK0DeA1r/u3HHCXC/aKxJpxhRz6Xi0ANAZDWa+kEAA7AAAAAAAAAAAA); + width: 16px; + height: 11px; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css index 9ce3b5e63..60f7a5bf1 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/NavigationHelpButton.css @@ -1 +1,93 @@ -.cesium-navigationHelpButton-wrapper{position:relative;display:inline-block;}.cesium-navigation-help{visibility:hidden;position:absolute;top:38px;right:2px;width:250px;border-radius:10px;transform:scale(0.01);transform-origin:234px -10px;transition:visibility 0s 0.25s,transform 0.25s ease-in;}.cesium-navigation-help-visible{visibility:visible;transform:scale(1);transition:transform 0.25s ease-out;}.cesium-navigation-help-instructions{border:1px solid #444;background-color:rgba(38,38,38,0.75);padding-bottom:5px;border-radius:0 0 10px 10px;}.cesium-click-navigation-help{display:none;}.cesium-touch-navigation-help{display:none;padding-top:5px;}.cesium-click-navigation-help-visible{display:block;}.cesium-touch-navigation-help-visible{display:block;}.cesium-navigation-help-pan{color:#66ccff;font-weight:bold;}.cesium-navigation-help-zoom{color:#65fd00;font-weight:bold;}.cesium-navigation-help-rotate{color:#ffd800;font-weight:bold;}.cesium-navigation-help-tilt{color:#d800d8;font-weight:bold;}.cesium-navigation-help-details{color:#ffffff;}.cesium-navigation-button{color:#fff;background-color:transparent;border-bottom:none;border-top:1px solid #444;border-right:1px solid #444;margin:0;width:50%;cursor:pointer;}.cesium-navigation-button-icon{vertical-align:middle;padding:5px 1px;}.cesium-navigation-button:focus{outline:none;}.cesium-navigation-button-left{border-radius:10px 0 0 0;border-left:1px solid #444;}.cesium-navigation-button-right{border-radius:0 10px 0 0;border-left:none;}.cesium-navigation-button-selected{background-color:rgba(38,38,38,0.75);}.cesium-navigation-button-unselected{background-color:rgba(0,0,0,0.75);}.cesium-navigation-button-unselected:hover{background-color:rgba(76,76,76,0.75);} \ No newline at end of file +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css index 97bf08a07..7cf654b32 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/NavigationHelpButton/lighter.css @@ -1 +1,38 @@ -.cesium-lighter .cesium-navigation-help-instructions{border:1px solid #759dc0;background-color:rgba(255,255,255,0.9);}.cesium-lighter .cesium-navigation-help-pan{color:#66ccee;font-weight:bold;}.cesium-lighter .cesium-navigation-help-zoom{color:#65ec00;font-weight:bold;}.cesium-lighter .cesium-navigation-help-rotate{color:#eec722;font-weight:bold;}.cesium-lighter .cesium-navigation-help-tilt{color:#d800d8;font-weight:bold;}.cesium-lighter .cesium-navigation-help-details{color:#222222;}.cesium-lighter .cesium-navigation-button{color:#222222;border-top:1px solid #759dc0;border-right:1px solid #759dc0;}.cesium-lighter .cesium-navigation-button-selected{background-color:rgba(196,225,255,0.9);}.cesium-lighter .cesium-navigation-button-unselected{background-color:rgba(226,240,255,0.9);}.cesium-lighter .cesium-navigation-button-unselected:hover{background-color:rgba(166,210,255,0.9);} \ No newline at end of file +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css index aca8e2a95..f8f770ad9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/PerformanceWatchdog/PerformanceWatchdog.css @@ -1 +1,15 @@ -.cesium-performance-watchdog-message-area{position:relative;background-color:yellow;color:black;padding:10px;}.cesium-performance-watchdog-message{margin-right:30px;}.cesium-performance-watchdog-message-dismiss{position:absolute;right:0;margin:0 10px 0 0;} \ No newline at end of file +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css index a92377eb6..57b6f6fd4 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/ProjectionPicker/ProjectionPicker.css @@ -1 +1,38 @@ -span.cesium-projectionPicker-wrapper{display:inline-block;position:relative;margin:0 3px;}.cesium-projectionPicker-visible{visibility:visible;opacity:1;transition:opacity 0.25s linear;}.cesium-projectionPicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s 0.25s,opacity 0.25s linear;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-none{display:none;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective,.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic{margin:0 0 3px 0;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic{left:100%;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective{left:-100%;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff;} \ No newline at end of file +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css index 1807a67c1..51e4c67f7 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/SceneModePicker/SceneModePicker.css @@ -1 +1,56 @@ -span.cesium-sceneModePicker-wrapper{display:inline-block;position:relative;margin:0 3px;}.cesium-sceneModePicker-visible{visibility:visible;opacity:1;transition:opacity 0.25s linear;}.cesium-sceneModePicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s 0.25s,opacity 0.25s linear;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none{display:none;}.cesium-sceneModePicker-slide-svg{transition:left 2s;top:0;left:0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D{margin:0 0 3px 0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D{left:100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView{left:200%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D{left:-200%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D{left:-100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D{left:-100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView{left:100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff;} \ No newline at end of file +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css index e4ad1e8d9..148ff4a87 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/SelectionIndicator/SelectionIndicator.css @@ -1 +1,20 @@ -.cesium-selection-wrapper{position:absolute;width:160px;height:160px;pointer-events:none;visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in;}.cesium-selection-wrapper-visible{visibility:visible;opacity:1;transition:opacity 0.2s ease-out;}.cesium-selection-wrapper svg{fill:#2e2;stroke:#000;stroke-width:1.1px;} \ No newline at end of file +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/Timeline.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/Timeline.css index 4c6d600d2..adb8b99e2 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/Timeline.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/Timeline.css @@ -1 +1,103 @@ -.cesium-timeline-main{position:relative;left:0;bottom:0;overflow:hidden;border:solid 1px #888;}.cesium-timeline-trackContainer{width:100%;overflow:auto;border-top:solid 1px #888;position:relative;top:0;left:0;}.cesium-timeline-tracks{position:absolute;top:0;left:0;width:100%;}.cesium-timeline-needle{position:absolute;left:0;top:1.7em;bottom:0;width:1px;background:#F00;}.cesium-timeline-bar{position:relative;left:0;top:0;overflow:hidden;cursor:pointer;width:100%;height:1.7em;background:linear-gradient(to bottom,rgba(116,117,119,0.8) 0%,rgba(58,68,82,0.8) 11%,rgba(46,50,56,0.8) 46%,rgba(53,53,53,0.8) 81%,rgba(53,53,53,0.8) 100%);}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;font-size:80%;z-index:-200;}.cesium-timeline-highlight{position:absolute;bottom:0;left:0;background:#08F;}.cesium-timeline-ticLabel{position:absolute;top:0;left:0;white-space:nowrap;font-size:80%;color:#eee;}.cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#eee;}.cesium-timeline-ticSub{position:absolute;bottom:0;left:0;width:1px;height:33%;background:#aaa;}.cesium-timeline-ticTiny{position:absolute;bottom:0;left:0;width:1px;height:25%;background:#888;}.cesium-timeline-icon16{display:block;position:absolute;width:16px;height:16px;background-image:url("../Images/TimelineIcons.png");background-repeat:no-repeat;} \ No newline at end of file +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: + linear-gradient( + to bottom, + rgba(116, 117, 119, 0.8) 0%, + rgba(58, 68, 82, 0.8) 11%, + rgba(46, 50, 56, 0.8) 46%, + rgba(53, 53, 53, 0.8) 81%, + rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/lighter.css index ab90493c9..f2acaa211 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Timeline/lighter.css @@ -1 +1,23 @@ -.cesium-lighter .cesium-timeline-bar{background:linear-gradient(to bottom,#eeeeee 0%,#ffffff 50%,#fafafa 100%);}.cesium-lighter .cesium-timeline-ticLabel{color:#000;}.cesium-lighter .cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#000;}.cesium-lighter .cesium-timeline-ticSub{background:#444;} \ No newline at end of file +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: + linear-gradient( + to bottom, + #eeeeee 0%, + #ffffff 50%, + #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/VRButton/VRButton.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/VRButton/VRButton.css index 8abd1d0f3..1005bd4a0 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/VRButton/VRButton.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/VRButton/VRButton.css @@ -1 +1,8 @@ -.cesium-button.cesium-vrButton{display:block;width:100%;height:100%;margin:0;border-radius:0;} \ No newline at end of file +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/Viewer/Viewer.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/Viewer/Viewer.css index a135c8285..5884a8697 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/Viewer/Viewer.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/Viewer/Viewer.css @@ -1 +1,107 @@ -.cesium-viewer{font-family:sans-serif;font-size:16px;overflow:hidden;display:block;position:relative;top:0;left:0;width:100%;height:100%;}.cesium-viewer-cesiumWidgetContainer{width:100%;height:100%;}.cesium-viewer-bottom{display:block;position:absolute;bottom:0;left:0;right:0;padding-right:5px;}.cesium-viewer .cesium-widget-credits{display:inline;position:static;bottom:auto;left:auto;padding-right:0;color:#ffffff;font-size:10px;text-shadow:0 0 2px #000000;}.cesium-viewer-timelineContainer{position:absolute;bottom:0;left:169px;right:29px;height:27px;padding:0;margin:0;overflow:hidden;font-size:14px;}.cesium-viewer-animationContainer{position:absolute;bottom:0;left:0;padding:0;width:169px;height:112px;}.cesium-viewer-fullscreenContainer{position:absolute;bottom:0;right:0;padding:0;width:29px;height:29px;overflow:hidden;}.cesium-viewer-vrContainer{position:absolute;bottom:0;right:0;padding:0;width:29px;height:29px;overflow:hidden;}.cesium-viewer-toolbar{display:block;position:absolute;top:5px;right:5px;}.cesium-viewer-cesiumInspectorContainer{display:block;position:absolute;top:50px;right:10px;}.cesium-viewer-geocoderContainer{position:relative;display:inline-block;margin:0 3px;}.cesium-viewer-cesium3DTilesInspectorContainer{display:block;position:absolute;top:50px;right:10px;max-height:calc(100% - 120px);box-sizing:border-box;overflow-y:auto;overflow-x:hidden;} \ No newline at end of file +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css new file mode 100644 index 000000000..a0a31024b --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/VoxelInspector/VoxelInspector.css @@ -0,0 +1,16 @@ +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/lighter.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/lighter.css index d5bdd58e9..c6cc48d45 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/lighter.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/lighter.css @@ -1 +1,237 @@ -.cesium-lighter .cesium-button{color:#111;fill:#111;background:#e2f0ff;border:1px solid #759dc0;}.cesium-lighter .cesium-button:focus{color:#000;fill:#000;border-color:#ea4;}.cesium-lighter .cesium-button:hover{color:#000;fill:#000;background:#a6d2ff;border-color:#aef;box-shadow:0 0 8px #777;}.cesium-lighter .cesium-button:active{color:#fff;fill:#fff;background:#48b;border-color:#ea0;}.cesium-lighter .cesium-button:disabled,.cesium-lighter .cesium-button-disabled,.cesium-lighter .cesium-button-disabled:focus,.cesium-lighter .cesium-button-disabled:hover,.cesium-lighter .cesium-button-disabled:active{background:#ccc;border-color:#999;color:#999;fill:#999;box-shadow:none;}.cesium-lighter .cesium-performanceDisplay{background-color:#e2f0ff;border-color:#759dc0;}.cesium-lighter .cesium-performanceDisplay-fps{color:#e52;}.cesium-lighter .cesium-performanceDisplay-ms{color:#ea4;}.cesium-lighter .cesium-animation-themeNormal{color:#E5F2FE;}.cesium-lighter .cesium-animation-themeHover{color:#ABD6FF;}.cesium-lighter .cesium-animation-themeSelect{color:#E5F2FE;}.cesium-lighter .cesium-animation-themeDisabled{color:#EFEFEF;}.cesium-lighter .cesium-animation-themeKnob{color:#E1E2E3;}.cesium-lighter .cesium-animation-themePointer{color:#FA5;}.cesium-lighter .cesium-animation-themeSwoosh{color:#ACE;}.cesium-lighter .cesium-animation-themeSwooshHover{color:#BDF;}.cesium-lighter .cesium-animation-svgText{fill:#111;}.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath{fill:#111;}.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#759DC0;}.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow{fill:#FFAA2A;}.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#EA0;}.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#759DC0;}.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff;}.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#EA0;}.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#ABD6FF;}.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#D3D3D3;}.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181;}.cesium-lighter .cesium-animation-shuttleRingBack{fill:#FAFAFA;fill-opacity:1;stroke:#AEAEAE;stroke-width:1.2;}.cesium-lighter .cesium-animation-shuttleRingSwoosh line{stroke:#8AC;}.cesium-lighter .cesium-animation-knobOuter{stroke:#A5A5A5;}.cesium-lighter .cesium-baseLayerPicker-itemIcon{border-color:#759dc0;}.cesium-lighter .cesium-baseLayerPicker-dropDown{background-color:rgba(240,240,240,0.75);}.cesium-lighter .cesium-baseLayerPicker-sectionTitle{color:black;}.cesium-lighter .cesium-baseLayerPicker-itemLabel{color:black;}.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#000;}.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:rgb(0,61,168);}.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:double 4px rgb(0,61,168);}.cesium-lighter .cesium-widget-errorPanel{background:rgba(255,255,255,0.7);}.cesium-lighter .cesium-widget-errorPanel-content{border:1px solid #526F82;border-radius:7px;background-color:white;color:black;}.cesium-lighter .cesium-widget-errorPanel-header{color:#B87D00;}.cesium-lighter .cesium-geocoder-input{border:solid 1px #759dc0;background-color:rgba(240,240,240,0.9);color:black;}.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-lighter .cesium-geocoder-searchButton{background-color:#e2f0ff;fill:#111;}.cesium-lighter .cesium-geocoder-searchButton:hover{background-color:#a6d2ff;}.cesium-lighter .cesium-timeline-bar{background:linear-gradient(to bottom,#eeeeee 0%,#ffffff 50%,#fafafa 100%);}.cesium-lighter .cesium-timeline-ticLabel{color:#000;}.cesium-lighter .cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#000;}.cesium-lighter .cesium-timeline-ticSub{background:#444;}.cesium-lighter .cesium-navigation-help-instructions{border:1px solid #759dc0;background-color:rgba(255,255,255,0.9);}.cesium-lighter .cesium-navigation-help-pan{color:#66ccee;font-weight:bold;}.cesium-lighter .cesium-navigation-help-zoom{color:#65ec00;font-weight:bold;}.cesium-lighter .cesium-navigation-help-rotate{color:#eec722;font-weight:bold;}.cesium-lighter .cesium-navigation-help-tilt{color:#d800d8;font-weight:bold;}.cesium-lighter .cesium-navigation-help-details{color:#222222;}.cesium-lighter .cesium-navigation-button{color:#222222;border-top:1px solid #759dc0;border-right:1px solid #759dc0;}.cesium-lighter .cesium-navigation-button-selected{background-color:rgba(196,225,255,0.9);}.cesium-lighter .cesium-navigation-button-unselected{background-color:rgba(226,240,255,0.9);}.cesium-lighter .cesium-navigation-button-unselected:hover{background-color:rgba(166,210,255,0.9);} \ No newline at end of file +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} + +/* packages/widgets/Source/Animation/lighter.css */ +.cesium-lighter .cesium-animation-themeNormal { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeHover { + color: #abd6ff; +} +.cesium-lighter .cesium-animation-themeSelect { + color: #e5f2fe; +} +.cesium-lighter .cesium-animation-themeDisabled { + color: #efefef; +} +.cesium-lighter .cesium-animation-themeKnob { + color: #e1e2e3; +} +.cesium-lighter .cesium-animation-themePointer { + color: #fa5; +} +.cesium-lighter .cesium-animation-themeSwoosh { + color: #ace; +} +.cesium-lighter .cesium-animation-themeSwooshHover { + color: #bdf; +} +.cesium-lighter .cesium-animation-svgText { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #111; +} +.cesium-lighter .cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonGlow { + fill: #ffaa2a; +} +.cesium-lighter .cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #759dc0; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-lighter .cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #ea0; +} +.cesium-lighter .cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #d3d3d3; +} +.cesium-lighter .cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-lighter .cesium-animation-shuttleRingBack { + fill: #fafafa; + fill-opacity: 1; + stroke: #aeaeae; + stroke-width: 1.2; +} +.cesium-lighter .cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; +} +.cesium-lighter .cesium-animation-knobOuter { + stroke: #a5a5a5; +} + +/* packages/widgets/Source/BaseLayerPicker/lighter.css */ +.cesium-lighter .cesium-baseLayerPicker-itemIcon { + border-color: #759dc0; +} +.cesium-lighter .cesium-baseLayerPicker-dropDown { + background-color: rgba(240, 240, 240, 0.75); +} +.cesium-lighter .cesium-baseLayerPicker-sectionTitle { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-itemLabel { + color: black; +} +.cesium-lighter .cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #000; +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(0, 61, 168); +} +.cesium-lighter .cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(0, 61, 168); +} + +/* packages/engine/Source/Widget/lighter.css */ +.cesium-lighter .cesium-widget-errorPanel { + background: rgba(255, 255, 255, 0.7); +} +.cesium-lighter .cesium-widget-errorPanel-content { + border: 1px solid #526f82; + border-radius: 7px; + background-color: white; + color: black; +} +.cesium-lighter .cesium-widget-errorPanel-header { + color: #b87d00; +} + +/* packages/widgets/Source/Geocoder/lighter.css */ +.cesium-lighter .cesium-geocoder-input { + border: solid 1px #759dc0; + background-color: rgba(240, 240, 240, 0.9); + color: black; +} +.cesium-lighter .cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-lighter .cesium-geocoder-searchButton { + background-color: #e2f0ff; + fill: #111; +} +.cesium-lighter .cesium-geocoder-searchButton:hover { + background-color: #a6d2ff; +} + +/* packages/widgets/Source/Timeline/lighter.css */ +.cesium-lighter .cesium-timeline-bar { + background: + linear-gradient( + to bottom, + #eeeeee 0%, + #ffffff 50%, + #fafafa 100%); +} +.cesium-lighter .cesium-timeline-ticLabel { + color: #000; +} +.cesium-lighter .cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #000; +} +.cesium-lighter .cesium-timeline-ticSub { + background: #444; +} + +/* packages/widgets/Source/NavigationHelpButton/lighter.css */ +.cesium-lighter .cesium-navigation-help-instructions { + border: 1px solid #759dc0; + background-color: rgba(255, 255, 255, 0.9); +} +.cesium-lighter .cesium-navigation-help-pan { + color: #66ccee; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-zoom { + color: #65ec00; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-rotate { + color: #eec722; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-lighter .cesium-navigation-help-details { + color: #222222; +} +.cesium-lighter .cesium-navigation-button { + color: #222222; + border-top: 1px solid #759dc0; + border-right: 1px solid #759dc0; +} +.cesium-lighter .cesium-navigation-button-selected { + background-color: rgba(196, 225, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected { + background-color: rgba(226, 240, 255, 0.9); +} +.cesium-lighter .cesium-navigation-button-unselected:hover { + background-color: rgba(166, 210, 255, 0.9); +} + +/* packages/widgets/Source/lighter.css */ diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/lighterShared.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/lighterShared.css index 238d3bc61..7d3b4ddd3 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/lighterShared.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/lighterShared.css @@ -1 +1,46 @@ -.cesium-lighter .cesium-button{color:#111;fill:#111;background:#e2f0ff;border:1px solid #759dc0;}.cesium-lighter .cesium-button:focus{color:#000;fill:#000;border-color:#ea4;}.cesium-lighter .cesium-button:hover{color:#000;fill:#000;background:#a6d2ff;border-color:#aef;box-shadow:0 0 8px #777;}.cesium-lighter .cesium-button:active{color:#fff;fill:#fff;background:#48b;border-color:#ea0;}.cesium-lighter .cesium-button:disabled,.cesium-lighter .cesium-button-disabled,.cesium-lighter .cesium-button-disabled:focus,.cesium-lighter .cesium-button-disabled:hover,.cesium-lighter .cesium-button-disabled:active{background:#ccc;border-color:#999;color:#999;fill:#999;box-shadow:none;}.cesium-lighter .cesium-performanceDisplay{background-color:#e2f0ff;border-color:#759dc0;}.cesium-lighter .cesium-performanceDisplay-fps{color:#e52;}.cesium-lighter .cesium-performanceDisplay-ms{color:#ea4;} \ No newline at end of file +/* packages/widgets/Source/lighterShared.css */ +.cesium-lighter .cesium-button { + color: #111; + fill: #111; + background: #e2f0ff; + border: 1px solid #759dc0; +} +.cesium-lighter .cesium-button:focus { + color: #000; + fill: #000; + border-color: #ea4; +} +.cesium-lighter .cesium-button:hover { + color: #000; + fill: #000; + background: #a6d2ff; + border-color: #aef; + box-shadow: 0 0 8px #777; +} +.cesium-lighter .cesium-button:active { + color: #fff; + fill: #fff; + background: #48b; + border-color: #ea0; +} +.cesium-lighter .cesium-button:disabled, +.cesium-lighter .cesium-button-disabled, +.cesium-lighter .cesium-button-disabled:focus, +.cesium-lighter .cesium-button-disabled:hover, +.cesium-lighter .cesium-button-disabled:active { + background: #ccc; + border-color: #999; + color: #999; + fill: #999; + box-shadow: none; +} +.cesium-lighter .cesium-performanceDisplay { + background-color: #e2f0ff; + border-color: #759dc0; +} +.cesium-lighter .cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-lighter .cesium-performanceDisplay-ms { + color: #ea4; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/shared.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/shared.css index 5d2a1c448..2c9b949e9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/shared.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/shared.css @@ -1 +1,103 @@ -.cesium-svgPath-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;}.cesium-button{display:inline-block;position:relative;background:#303336;border:1px solid #444;color:#edffff;fill:#edffff;border-radius:4px;padding:5px 12px;margin:2px 3px;cursor:pointer;overflow:hidden;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-button:focus{color:#fff;fill:#fff;border-color:#ea4;outline:none;}.cesium-button:hover{color:#fff;fill:#fff;background:#48b;border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-button:active{color:#000;fill:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff;}.cesium-button:disabled,.cesium-button-disabled,.cesium-button-disabled:focus,.cesium-button-disabled:hover,.cesium-button-disabled:active{background:#303336;border-color:#444;color:#646464;fill:#646464;box-shadow:none;cursor:default;}.cesium-button option{background-color:#000;color:#eee;}.cesium-button option:disabled{color:#777;}.cesium-button input,.cesium-button label{cursor:pointer;}.cesium-button input{vertical-align:sub;}.cesium-toolbar-button{box-sizing:border-box;width:32px;height:32px;border-radius:14%;padding:0;vertical-align:middle;z-index:0;}.cesium-performanceDisplay-defaultContainer{position:absolute;top:50px;right:10px;text-align:right;}.cesium-performanceDisplay{background-color:rgba(40,40,40,0.7);padding:7px;border-radius:5px;border:1px solid #444;font:bold 12px sans-serif;}.cesium-performanceDisplay-fps{color:#e52;}.cesium-performanceDisplay-throttled{color:#a42;}.cesium-performanceDisplay-ms{color:#de3;} \ No newline at end of file +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} diff --git a/app/plot_app/static/cesium/Build/Cesium/Widgets/widgets.css b/app/plot_app/static/cesium/Build/Cesium/Widgets/widgets.css index 4a8b6e3b3..df675d599 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Widgets/widgets.css +++ b/app/plot_app/static/cesium/Build/Cesium/Widgets/widgets.css @@ -1 +1,1342 @@ -.cesium-svgPath-svg{position:absolute;top:0;left:0;width:100%;height:100%;overflow:hidden;}.cesium-button{display:inline-block;position:relative;background:#303336;border:1px solid #444;color:#edffff;fill:#edffff;border-radius:4px;padding:5px 12px;margin:2px 3px;cursor:pointer;overflow:hidden;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-button:focus{color:#fff;fill:#fff;border-color:#ea4;outline:none;}.cesium-button:hover{color:#fff;fill:#fff;background:#48b;border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-button:active{color:#000;fill:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff;}.cesium-button:disabled,.cesium-button-disabled,.cesium-button-disabled:focus,.cesium-button-disabled:hover,.cesium-button-disabled:active{background:#303336;border-color:#444;color:#646464;fill:#646464;box-shadow:none;cursor:default;}.cesium-button option{background-color:#000;color:#eee;}.cesium-button option:disabled{color:#777;}.cesium-button input,.cesium-button label{cursor:pointer;}.cesium-button input{vertical-align:sub;}.cesium-toolbar-button{box-sizing:border-box;width:32px;height:32px;border-radius:14%;padding:0;vertical-align:middle;z-index:0;}.cesium-performanceDisplay-defaultContainer{position:absolute;top:50px;right:10px;text-align:right;}.cesium-performanceDisplay{background-color:rgba(40,40,40,0.7);padding:7px;border-radius:5px;border:1px solid #444;font:bold 12px sans-serif;}.cesium-performanceDisplay-fps{color:#e52;}.cesium-performanceDisplay-throttled{color:#a42;}.cesium-performanceDisplay-ms{color:#de3;}.cesium-animation-theme{visibility:hidden;display:block;position:absolute;z-index:-100;}.cesium-animation-themeNormal{color:#222;}.cesium-animation-themeHover{color:#4488B0;}.cesium-animation-themeSelect{color:#242;}.cesium-animation-themeDisabled{color:#333;}.cesium-animation-themeKnob{color:#222;}.cesium-animation-themePointer{color:#2E2;}.cesium-animation-themeSwoosh{color:#8AC;}.cesium-animation-themeSwooshHover{color:#AEF;}.cesium-animation-svgText{fill:#edffff;font-family:Sans-Serif;font-size:15px;text-anchor:middle;}.cesium-animation-blank{fill:#000;fill-opacity:0.01;stroke:none;}.cesium-animation-rectButton{cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-animation-rectButton .cesium-animation-buttonGlow{fill:#fff;stroke:none;display:none;}.cesium-animation-rectButton:hover .cesium-animation-buttonGlow{display:block;}.cesium-animation-rectButton .cesium-animation-buttonPath{fill:#edffff;}.cesium-animation-rectButton .cesium-animation-buttonMain{stroke:#444;stroke-width:1.2;}.cesium-animation-rectButton:hover .cesium-animation-buttonMain{stroke:#AEF;}.cesium-animation-rectButton:active .cesium-animation-buttonMain{fill:#ABD6FF;}.cesium-animation-buttonDisabled{-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;}.cesium-animation-buttonDisabled .cesium-animation-buttonMain{stroke:#555;}.cesium-animation-buttonDisabled .cesium-animation-buttonPath{fill:#818181;}.cesium-animation-buttonDisabled .cesium-animation-buttonGlow{display:none;}.cesium-animation-buttonToggled .cesium-animation-buttonGlow{display:block;fill:#2E2;}.cesium-animation-buttonToggled .cesium-animation-buttonMain{stroke:#2E2;}.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow{fill:#fff;}.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain{stroke:#2E2;}.cesium-animation-shuttleRingG{cursor:pointer;}.cesium-animation-shuttleRingPointer{cursor:pointer;}.cesium-animation-shuttleRingPausePointer{cursor:pointer;}.cesium-animation-shuttleRingBack{fill:#181818;fill-opacity:0.8;stroke:#333;stroke-width:1.2;}.cesium-animation-shuttleRingSwoosh line{stroke:#8AC;stroke-width:3;stroke-opacity:0.2;stroke-linecap:round;}.cesium-animation-knobOuter{cursor:pointer;stroke:#444;stroke-width:1.2;}.cesium-animation-knobInner{cursor:pointer;}.cesium-baseLayerPicker-selected{position:absolute;top:0;left:0;width:100%;height:100%;border:none;}.cesium-baseLayerPicker-dropDown{display:block;position:absolute;box-sizing:content-box;top:auto;right:0;width:320px;max-height:500px;margin-top:5px;background-color:rgba(38,38,38,0.75);border:1px solid #444;padding:6px;overflow:auto;border-radius:10px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;transform:translate(0,-20%);visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in,transform 0.2s ease-in;}.cesium-baseLayerPicker-dropDown-visible{transform:translate(0,0);visibility:visible;opacity:1;transition:opacity 0.2s ease-out,transform 0.2s ease-out;}.cesium-baseLayerPicker-sectionTitle{display:block;font-family:sans-serif;font-size:16pt;text-align:left;color:#edffff;margin-bottom:4px;}.cesium-baseLayerPicker-choices{margin-bottom:5px;}.cesium-baseLayerPicker-categoryTitle{color:#edffff;font-size:11pt;}.cesium-baseLayerPicker-choices{display:block;border:1px solid #888;border-radius:5px;padding:5px 0;}.cesium-baseLayerPicker-item{display:inline-block;vertical-align:top;margin:2px 5px;width:64px;text-align:center;cursor:pointer;}.cesium-baseLayerPicker-itemLabel{display:block;font-family:sans-serif;font-size:8pt;text-align:center;vertical-align:middle;color:#edffff;cursor:pointer;word-wrap:break-word;}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel,.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel{text-decoration:underline;}.cesium-baseLayerPicker-itemIcon{display:inline-block;position:relative;width:inherit;height:auto;background-size:100% 100%;border:solid 1px #444;border-radius:9px;color:#edffff;margin:0;padding:0;cursor:pointer;box-sizing:border-box;}.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon{border-color:#fff;box-shadow:0 0 8px #fff,0 0 8px #fff;}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel{color:rgb(189,236,248);}.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon{border:double 4px rgb(189,236,248);}.cesium-widget{position:relative;}.cesium-widget,.cesium-widget canvas{width:100%;height:100%;touch-action:none;}.cesium-widget-credits{display:block;position:absolute;bottom:0;left:0;color:#fff;font-size:10px;text-shadow:0px 0px 2px #000000;padding-right:5px;}.cesium-widget-credits a,.cesium-widget-credits a:visited{color:#fff;}.cesium-widget-errorPanel{position:absolute;top:0;right:0;bottom:0;left:0;text-align:center;background:rgba(0,0,0,0.7);z-index:99999;}.cesium-widget-errorPanel:before{display:inline-block;vertical-align:middle;height:100%;content:"";}.cesium-widget-errorPanel-content{width:75%;display:inline-block;text-align:left;vertical-align:middle;border:1px solid #526F82;border-radius:7px;background-color:black;color:white;font-size:10pt;padding:1em;}.cesium-widget-errorPanel-header{font-size:120%;color:#fe4;}.cesium-widget-errorPanel-scroll{overflow:auto;font-family:monospace;white-space:pre-wrap;padding:0;margin:10px 0;}.cesium-widget-errorPanel-buttonPanel{text-align:center;}.cesium-cesiumInspector{border-radius:5px;transition:width ease-in-out 0.25s;background:rgba(48,51,54,0.8);border:1px solid #444;color:#edffff;display:inline-block;position:relative;padding:4px 12px;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;overflow:hidden;}.cesium-cesiumInspector-button{text-align:center;font-size:11pt;}.cesium-cesiumInspector-visible .cesium-cesiumInspector-button{border-bottom:1px solid #aaa;padding-bottom:3px;}.cesium-cesiumInspector input:enabled,.cesium-cesiumInspector-button{cursor:pointer;}.cesium-cesiumInspector-visible{width:185px;height:auto;}.cesium-cesiumInspector-hidden{width:122px;height:17px;}.cesium-cesiumInspector-sectionContent{max-height:500px;}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent{max-height:0;padding:0 !important;overflow:hidden;}.cesium-cesiumInspector-dropDown{margin:5px 0;font-family:sans-serif;font-size:10pt;width:185px;}.cesium-cesiumInspector-frustumStatistics{padding-left:10px;padding:5px;background-color:rgba(80,80,80,0.75);}.cesium-cesiumInspector-pickButton{background-color:rgba(0,0,0,0.3);border:1px solid #444;color:#edffff;border-radius:5px;padding:3px 7px;cursor:pointer;-moz-user-select:none;-webkit-user-select:none;-ms-user-select:none;user-select:none;margin:0 auto;}.cesium-cesiumInspector-pickButton:focus{outline:none;}.cesium-cesiumInspector-pickButton:active,.cesium-cesiumInspector-pickButtonHighlight{color:#000;background:#adf;border-color:#fff;box-shadow:0 0 8px #fff;}.cesium-cesiumInspector-center{text-align:center;}.cesium-cesiumInspector-sectionHeader{font-weight:bold;font-size:10pt;margin:0;cursor:pointer;}.cesium-cesiumInspector-pickSection{border:1px solid #aaa;border-radius:5px;padding:3px;margin-bottom:5px;}.cesium-cesiumInspector-sectionContent{margin-bottom:10px;transition:max-height 0.25s;}.cesium-cesiumInspector-tileText{padding-bottom:10px;border-bottom:1px solid #aaa;}.cesium-cesiumInspector-relativeText{padding-top:10px;}.cesium-cesiumInspector-sectionHeader::before{margin-right:5px;content:'-';width:1ch;display:inline-block;}.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before{content:'+';}ul.cesium-cesiumInspector-statistics{margin:0;padding-top:3px;padding-bottom:3px;}ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics{border-top:1px solid #aaa;}.cesium-cesiumInspector-slider{margin-top:5px;}.cesium-cesiumInspector-slider input[type=number]{text-align:left;background-color:#222;outline:none;border:1px solid #444;color:#edffff;width:100px;border-radius:3px;padding:1px;margin-left:10px;cursor:auto;}.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button,.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button{-webkit-appearance:none;margin:0;}.cesium-cesiumInspector-slider input[type=range]{margin-left:5px;vertical-align:middle;}.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor{display:none;}.cesium-cesiumInspector-styleEditor{padding:10px;border-radius:5px;background:rgba(48,51,54,0.8);border:1px solid #444;}.cesium-cesiumInspector-styleEditor textarea{width:100%;height:300px;background:transparent;color:#edffff;border:none;padding:0;white-space:pre;overflow-wrap:normal;overflow-x:auto;}.cesium-3DTilesInspector{width:300px;pointer-events:all;}.cesium-3DTilesInspector-statistics{font-size:11px;}.cesium-3DTilesInspector div,.cesium-3DTilesInspector input[type=range]{width:100%;box-sizing:border-box;}.cesium-cesiumInspector-error{color:#ff9e9e;overflow:auto;}.cesium-3DTilesInspector .cesium-cesiumInspector-section{margin-top:3px;}.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show{border-top:1px solid white;}input.cesium-cesiumInspector-url{overflow:hidden;white-space:nowrap;overflow-x:scroll;background-color:transparent;color:white;outline:none;border:none;height:1em;width:100%;}.cesium-cesiumInspector .field-group{display:table;}.cesium-cesiumInspector .field-group > label{display:table-cell;font-weight:bold;}.cesium-cesiumInspector .field-group > .field{display:table-cell;width:100%;}.cesium-button.cesium-fullscreenButton{display:block;width:100%;height:100%;margin:0;border-radius:0;}.cesium-button.cesium-vrButton{display:block;width:100%;height:100%;margin:0;border-radius:0;}.cesium-viewer-geocoderContainer .cesium-geocoder-input{border:solid 1px #444;background-color:rgba(40,40,40,0.7);color:white;display:inline-block;vertical-align:middle;width:0;height:32px;margin:0;padding:0 32px 0 0;border-radius:0;box-sizing:border-box;transition:width ease-in-out 0.25s,background-color 0.2s ease-in-out;-webkit-appearance:none;}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input{border-color:#aef;box-shadow:0 0 8px #fff;}.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus{border-color:#ea4;background-color:rgba(15,15,15,0.9);box-shadow:none;outline:none;}.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input,.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus,.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide{padding-left:4px;width:250px;}.cesium-viewer-geocoderContainer .search-results{position:absolute;background-color:#000;color:#eee;overflow-y:auto;opacity:0.8;width:100%;}.cesium-viewer-geocoderContainer .search-results ul{list-style-type:none;margin:0;padding:0;}.cesium-viewer-geocoderContainer .search-results ul li{font-size:14px;padding:3px 10px;}.cesium-viewer-geocoderContainer .search-results ul li:hover{cursor:pointer;}.cesium-viewer-geocoderContainer .search-results ul li.active{background:#48b;}.cesium-geocoder-searchButton{background-color:#303336;display:inline-block;position:absolute;cursor:pointer;width:32px;top:1px;right:1px;height:30px;vertical-align:middle;fill:#edffff;}.cesium-geocoder-searchButton:hover{background-color:#48b;}.cesium-infoBox{display:block;position:absolute;top:50px;right:0;width:40%;max-width:480px;background:rgba(38,38,38,0.95);color:#edffff;border:1px solid #444;border-right:none;border-top-left-radius:7px;border-bottom-left-radius:7px;box-shadow:0 0 10px 1px #000;transform:translate(100%,0);visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in,transform 0.2s ease-in;}.cesium-infoBox-visible{transform:translate(0,0);visibility:visible;opacity:1;transition:opacity 0.2s ease-out,transform 0.2s ease-out;}.cesium-infoBox-title{display:block;height:20px;padding:5px 30px 5px 25px;background:rgba(84,84,84,1.0);border-top-left-radius:7px;text-align:center;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;box-sizing:content-box;}.cesium-infoBox-bodyless .cesium-infoBox-title{border-bottom-left-radius:7px;}button.cesium-infoBox-camera{display:block;position:absolute;top:4px;left:4px;width:22px;height:22px;background:transparent;border-color:transparent;border-radius:3px;padding:0 5px;margin:0;}button.cesium-infoBox-close{display:block;position:absolute;top:5px;right:5px;height:20px;background:transparent;border:none;border-radius:2px;font-weight:bold;font-size:16px;padding:0 5px;margin:0;color:#edffff;}button.cesium-infoBox-close:focus{background:rgba(238,136,0,0.44);outline:none;}button.cesium-infoBox-close:hover{background:#888;color:#000;}button.cesium-infoBox-close:active{background:#a00;color:#000;}.cesium-infoBox-bodyless .cesium-infoBox-iframe{display:none;}.cesium-infoBox-iframe{border:none;width:100%;width:calc(100% - 2px);}span.cesium-sceneModePicker-wrapper{display:inline-block;position:relative;margin:0 3px;}.cesium-sceneModePicker-visible{visibility:visible;opacity:1;transition:opacity 0.25s linear;}.cesium-sceneModePicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s 0.25s,opacity 0.25s linear;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none{display:none;}.cesium-sceneModePicker-slide-svg{transition:left 2s;top:0;left:0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView,.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D{margin:0 0 3px 0;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D{left:100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView{left:200%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D{left:-200%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D{left:-100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D{left:-100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView{left:100%;}.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff;}span.cesium-projectionPicker-wrapper{display:inline-block;position:relative;margin:0 3px;}.cesium-projectionPicker-visible{visibility:visible;opacity:1;transition:opacity 0.25s linear;}.cesium-projectionPicker-hidden{visibility:hidden;opacity:0;transition:visibility 0s 0.25s,opacity 0.25s linear;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-none{display:none;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon{box-sizing:border-box;padding:0;margin:3px 0;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective,.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic{margin:0 0 3px 0;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic{left:100%;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective{left:-100%;}.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected{border-color:#2e2;box-shadow:0 0 8px #fff,0 0 8px #fff;}.cesium-performance-watchdog-message-area{position:relative;background-color:yellow;color:black;padding:10px;}.cesium-performance-watchdog-message{margin-right:30px;}.cesium-performance-watchdog-message-dismiss{position:absolute;right:0;margin:0 10px 0 0;}.cesium-navigationHelpButton-wrapper{position:relative;display:inline-block;}.cesium-navigation-help{visibility:hidden;position:absolute;top:38px;right:2px;width:250px;border-radius:10px;transform:scale(0.01);transform-origin:234px -10px;transition:visibility 0s 0.25s,transform 0.25s ease-in;}.cesium-navigation-help-visible{visibility:visible;transform:scale(1);transition:transform 0.25s ease-out;}.cesium-navigation-help-instructions{border:1px solid #444;background-color:rgba(38,38,38,0.75);padding-bottom:5px;border-radius:0 0 10px 10px;}.cesium-click-navigation-help{display:none;}.cesium-touch-navigation-help{display:none;padding-top:5px;}.cesium-click-navigation-help-visible{display:block;}.cesium-touch-navigation-help-visible{display:block;}.cesium-navigation-help-pan{color:#66ccff;font-weight:bold;}.cesium-navigation-help-zoom{color:#65fd00;font-weight:bold;}.cesium-navigation-help-rotate{color:#ffd800;font-weight:bold;}.cesium-navigation-help-tilt{color:#d800d8;font-weight:bold;}.cesium-navigation-help-details{color:#ffffff;}.cesium-navigation-button{color:#fff;background-color:transparent;border-bottom:none;border-top:1px solid #444;border-right:1px solid #444;margin:0;width:50%;cursor:pointer;}.cesium-navigation-button-icon{vertical-align:middle;padding:5px 1px;}.cesium-navigation-button:focus{outline:none;}.cesium-navigation-button-left{border-radius:10px 0 0 0;border-left:1px solid #444;}.cesium-navigation-button-right{border-radius:0 10px 0 0;border-left:none;}.cesium-navigation-button-selected{background-color:rgba(38,38,38,0.75);}.cesium-navigation-button-unselected{background-color:rgba(0,0,0,0.75);}.cesium-navigation-button-unselected:hover{background-color:rgba(76,76,76,0.75);}.cesium-selection-wrapper{position:absolute;width:160px;height:160px;pointer-events:none;visibility:hidden;opacity:0;transition:visibility 0s 0.2s,opacity 0.2s ease-in;}.cesium-selection-wrapper-visible{visibility:visible;opacity:1;transition:opacity 0.2s ease-out;}.cesium-selection-wrapper svg{fill:#2e2;stroke:#000;stroke-width:1.1px;}.cesium-timeline-main{position:relative;left:0;bottom:0;overflow:hidden;border:solid 1px #888;}.cesium-timeline-trackContainer{width:100%;overflow:auto;border-top:solid 1px #888;position:relative;top:0;left:0;}.cesium-timeline-tracks{position:absolute;top:0;left:0;width:100%;}.cesium-timeline-needle{position:absolute;left:0;top:1.7em;bottom:0;width:1px;background:#F00;}.cesium-timeline-bar{position:relative;left:0;top:0;overflow:hidden;cursor:pointer;width:100%;height:1.7em;background:linear-gradient(to bottom,rgba(116,117,119,0.8) 0%,rgba(58,68,82,0.8) 11%,rgba(46,50,56,0.8) 46%,rgba(53,53,53,0.8) 81%,rgba(53,53,53,0.8) 100%);}.cesium-timeline-ruler{visibility:hidden;white-space:nowrap;font-size:80%;z-index:-200;}.cesium-timeline-highlight{position:absolute;bottom:0;left:0;background:#08F;}.cesium-timeline-ticLabel{position:absolute;top:0;left:0;white-space:nowrap;font-size:80%;color:#eee;}.cesium-timeline-ticMain{position:absolute;bottom:0;left:0;width:1px;height:50%;background:#eee;}.cesium-timeline-ticSub{position:absolute;bottom:0;left:0;width:1px;height:33%;background:#aaa;}.cesium-timeline-ticTiny{position:absolute;bottom:0;left:0;width:1px;height:25%;background:#888;}.cesium-timeline-icon16{display:block;position:absolute;width:16px;height:16px;background-image:url(Images/TimelineIcons.png);background-repeat:no-repeat;}.cesium-viewer{font-family:sans-serif;font-size:16px;overflow:hidden;display:block;position:relative;top:0;left:0;width:100%;height:100%;}.cesium-viewer-cesiumWidgetContainer{width:100%;height:100%;}.cesium-viewer-bottom{display:block;position:absolute;bottom:0;left:0;right:0;padding-right:5px;}.cesium-viewer .cesium-widget-credits{display:inline;position:static;bottom:auto;left:auto;padding-right:0;color:#ffffff;font-size:10px;text-shadow:0 0 2px #000000;}.cesium-viewer-timelineContainer{position:absolute;bottom:0;left:169px;right:29px;height:27px;padding:0;margin:0;overflow:hidden;font-size:14px;}.cesium-viewer-animationContainer{position:absolute;bottom:0;left:0;padding:0;width:169px;height:112px;}.cesium-viewer-fullscreenContainer{position:absolute;bottom:0;right:0;padding:0;width:29px;height:29px;overflow:hidden;}.cesium-viewer-vrContainer{position:absolute;bottom:0;right:0;padding:0;width:29px;height:29px;overflow:hidden;}.cesium-viewer-toolbar{display:block;position:absolute;top:5px;right:5px;}.cesium-viewer-cesiumInspectorContainer{display:block;position:absolute;top:50px;right:10px;}.cesium-viewer-geocoderContainer{position:relative;display:inline-block;margin:0 3px;}.cesium-viewer-cesium3DTilesInspectorContainer{display:block;position:absolute;top:50px;right:10px;max-height:calc(100% - 120px);box-sizing:border-box;overflow-y:auto;overflow-x:hidden;} \ No newline at end of file +/* packages/widgets/Source/shared.css */ +.cesium-svgPath-svg { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + overflow: hidden; +} +.cesium-button { + display: inline-block; + position: relative; + background: #303336; + border: 1px solid #444; + color: #edffff; + fill: #edffff; + border-radius: 4px; + padding: 5px 12px; + margin: 2px 3px; + cursor: pointer; + overflow: hidden; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-button:focus { + color: #fff; + fill: #fff; + border-color: #ea4; + outline: none; +} +.cesium-button:hover { + color: #fff; + fill: #fff; + background: #48b; + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-button:active { + color: #000; + fill: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-button:disabled, +.cesium-button-disabled, +.cesium-button-disabled:focus, +.cesium-button-disabled:hover, +.cesium-button-disabled:active { + background: #303336; + border-color: #444; + color: #646464; + fill: #646464; + box-shadow: none; + cursor: default; +} +.cesium-button option { + background-color: #000; + color: #eee; +} +.cesium-button option:disabled { + color: #777; +} +.cesium-button input, +.cesium-button label { + cursor: pointer; +} +.cesium-button input { + vertical-align: sub; +} +.cesium-toolbar-button { + box-sizing: border-box; + width: 32px; + height: 32px; + border-radius: 14%; + padding: 0; + vertical-align: middle; + z-index: 0; +} +.cesium-performanceDisplay-defaultContainer { + position: absolute; + top: 50px; + right: 10px; + text-align: right; +} +.cesium-performanceDisplay { + background-color: rgba(40, 40, 40, 0.7); + padding: 7px; + border-radius: 5px; + border: 1px solid #444; + font: bold 12px sans-serif; +} +.cesium-performanceDisplay-fps { + color: #e52; +} +.cesium-performanceDisplay-throttled { + color: #a42; +} +.cesium-performanceDisplay-ms { + color: #de3; +} + +/* packages/widgets/Source/Animation/Animation.css */ +.cesium-animation-theme { + visibility: hidden; + display: block; + position: absolute; + z-index: -100; +} +.cesium-animation-themeNormal { + color: #222; +} +.cesium-animation-themeHover { + color: #4488b0; +} +.cesium-animation-themeSelect { + color: #242; +} +.cesium-animation-themeDisabled { + color: #333; +} +.cesium-animation-themeKnob { + color: #222; +} +.cesium-animation-themePointer { + color: #2e2; +} +.cesium-animation-themeSwoosh { + color: #8ac; +} +.cesium-animation-themeSwooshHover { + color: #aef; +} +.cesium-animation-svgText { + fill: #edffff; + font-family: Sans-Serif; + font-size: 15px; + text-anchor: middle; +} +.cesium-animation-blank { + fill: #000; + fill-opacity: 0.01; + stroke: none; +} +.cesium-animation-rectButton { + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-rectButton .cesium-animation-buttonGlow { + fill: #fff; + stroke: none; + display: none; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonGlow { + display: block; +} +.cesium-animation-rectButton .cesium-animation-buttonPath { + fill: #edffff; +} +.cesium-animation-rectButton .cesium-animation-buttonMain { + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-rectButton:hover .cesium-animation-buttonMain { + stroke: #aef; +} +.cesium-animation-rectButton:active .cesium-animation-buttonMain { + fill: #abd6ff; +} +.cesium-animation-buttonDisabled { + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonMain { + stroke: #555; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonPath { + fill: #818181; +} +.cesium-animation-buttonDisabled .cesium-animation-buttonGlow { + display: none; +} +.cesium-animation-buttonToggled .cesium-animation-buttonGlow { + display: block; + fill: #2e2; +} +.cesium-animation-buttonToggled .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonGlow { + fill: #fff; +} +.cesium-animation-buttonToggled:hover .cesium-animation-buttonMain { + stroke: #2e2; +} +.cesium-animation-shuttleRingG { + cursor: pointer; +} +.cesium-animation-shuttleRingPointer { + cursor: pointer; +} +.cesium-animation-shuttleRingPausePointer { + cursor: pointer; +} +.cesium-animation-shuttleRingBack { + fill: #181818; + fill-opacity: 0.8; + stroke: #333; + stroke-width: 1.2; +} +.cesium-animation-shuttleRingSwoosh line { + stroke: #8ac; + stroke-width: 3; + stroke-opacity: 0.2; + stroke-linecap: round; +} +.cesium-animation-knobOuter { + cursor: pointer; + stroke: #444; + stroke-width: 1.2; +} +.cesium-animation-knobInner { + cursor: pointer; +} + +/* packages/widgets/Source/BaseLayerPicker/BaseLayerPicker.css */ +.cesium-baseLayerPicker-selected { + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + border: none; +} +.cesium-baseLayerPicker-dropDown { + display: block; + position: absolute; + box-sizing: content-box; + top: auto; + right: 0; + width: 320px; + max-height: 500px; + margin-top: 5px; + background-color: rgba(38, 38, 38, 0.75); + border: 1px solid #444; + padding: 6px; + overflow: auto; + border-radius: 10px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + transform: translate(0, -20%); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-baseLayerPicker-dropDown-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-baseLayerPicker-sectionTitle { + display: block; + font-family: sans-serif; + font-size: 16pt; + text-align: left; + color: #edffff; + margin-bottom: 4px; +} +.cesium-baseLayerPicker-choices { + margin-bottom: 5px; +} +.cesium-baseLayerPicker-categoryTitle { + color: #edffff; + font-size: 11pt; +} +.cesium-baseLayerPicker-choices { + display: block; + border: 1px solid #888; + border-radius: 5px; + padding: 5px 0; +} +.cesium-baseLayerPicker-item { + display: inline-block; + vertical-align: top; + margin: 2px 5px; + width: 64px; + text-align: center; + cursor: pointer; +} +.cesium-baseLayerPicker-itemLabel { + display: block; + font-family: sans-serif; + font-size: 8pt; + text-align: center; + vertical-align: middle; + color: #edffff; + cursor: pointer; + word-wrap: break-word; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemLabel, +.cesium-baseLayerPicker-item:focus .cesium-baseLayerPicker-itemLabel { + text-decoration: underline; +} +.cesium-baseLayerPicker-itemIcon { + display: inline-block; + position: relative; + width: inherit; + height: auto; + background-size: 100% 100%; + border: solid 1px #444; + border-radius: 9px; + color: #edffff; + margin: 0; + padding: 0; + cursor: pointer; + box-sizing: border-box; +} +.cesium-baseLayerPicker-item:hover .cesium-baseLayerPicker-itemIcon { + border-color: #fff; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemLabel { + color: rgb(189, 236, 248); +} +.cesium-baseLayerPicker-selectedItem .cesium-baseLayerPicker-itemIcon { + border: double 4px rgb(189, 236, 248); +} + +/* packages/engine/Source/Widget/CesiumWidget.css */ +.cesium-widget { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-widget, +.cesium-widget canvas { + width: 100%; + height: 100%; + touch-action: none; +} +.cesium-widget-credits { + display: block; + position: absolute; + bottom: 0; + left: 0; + color: #fff; + font-size: 10px; + text-shadow: 0px 0px 2px #000000; + padding-right: 5px; +} +.cesium-widget-errorPanel { + position: absolute; + top: 0; + right: 0; + bottom: 0; + left: 0; + text-align: center; + background: rgba(0, 0, 0, 0.7); + z-index: 99999; +} +.cesium-widget-errorPanel:before { + display: inline-block; + vertical-align: middle; + height: 100%; + content: ""; +} +.cesium-widget-errorPanel-content { + width: 75%; + max-width: 500px; + display: inline-block; + text-align: left; + vertical-align: middle; + border: 1px solid #510c00; + border-radius: 7px; + background-color: #f0d9d5; + font-size: 14px; + color: #510c00; +} +.cesium-widget-errorPanel-content.expanded { + max-width: 75%; +} +.cesium-widget-errorPanel-header { + font-size: 18px; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + background: #d69d93; + border-bottom: 2px solid #510c00; + padding-bottom: 10px; + border-radius: 3px 3px 0 0; + padding: 15px; +} +.cesium-widget-errorPanel-scroll { + overflow: auto; + font-family: + "Open Sans", + Verdana, + Geneva, + sans-serif; + white-space: pre-wrap; + padding: 0 15px; + margin: 10px 0 20px 0; +} +.cesium-widget-errorPanel-buttonPanel { + padding: 0 15px; + margin: 10px 0 20px 0; + text-align: right; +} +.cesium-widget-errorPanel-buttonPanel button { + border-color: #510c00; + background: #d69d93; + color: #202020; + margin: 0; +} +.cesium-widget-errorPanel-buttonPanel button:focus { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:hover { + border-color: #510c00; + background: #f0d9d5; + color: #510c00; +} +.cesium-widget-errorPanel-buttonPanel button:active { + border-color: #510c00; + background: #b17b72; + color: #510c00; +} +.cesium-widget-errorPanel-more-details { + text-decoration: underline; + cursor: pointer; +} +.cesium-widget-errorPanel-more-details:hover { + color: #2b0700; +} + +/* packages/widgets/Source/CesiumInspector/CesiumInspector.css */ +.cesium-cesiumInspector { + border-radius: 5px; + transition: width ease-in-out 0.25s; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; + color: #edffff; + display: inline-block; + position: relative; + padding: 4px 12px; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + overflow: hidden; +} +.cesium-cesiumInspector-button { + text-align: center; + font-size: 11pt; +} +.cesium-cesiumInspector-visible .cesium-cesiumInspector-button { + border-bottom: 1px solid #aaa; + padding-bottom: 3px; +} +.cesium-cesiumInspector input:enabled, +.cesium-cesiumInspector-button { + cursor: pointer; +} +.cesium-cesiumInspector-visible { + width: 185px; + height: auto; +} +.cesium-cesiumInspector-hidden { + width: 122px; + height: 17px; +} +.cesium-cesiumInspector-sectionContent { + max-height: 600px; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionContent { + max-height: 0; + padding: 0 !important; + overflow: hidden; +} +.cesium-cesiumInspector-dropDown { + margin: 5px 0; + font-family: sans-serif; + font-size: 10pt; + width: 185px; +} +.cesium-cesiumInspector-frustumStatistics { + padding-left: 10px; + padding: 5px; + background-color: rgba(80, 80, 80, 0.75); +} +.cesium-cesiumInspector-pickButton { + background-color: rgba(0, 0, 0, 0.3); + border: 1px solid #444; + color: #edffff; + border-radius: 5px; + padding: 3px 7px; + cursor: pointer; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; + margin: 0 auto; +} +.cesium-cesiumInspector-pickButton:focus { + outline: none; +} +.cesium-cesiumInspector-pickButton:active, +.cesium-cesiumInspector-pickButtonHighlight { + color: #000; + background: #adf; + border-color: #fff; + box-shadow: 0 0 8px #fff; +} +.cesium-cesiumInspector-center { + text-align: center; +} +.cesium-cesiumInspector-sectionHeader { + font-weight: bold; + font-size: 10pt; + margin: 0; + cursor: pointer; +} +.cesium-cesiumInspector-pickSection { + border: 1px solid #aaa; + border-radius: 5px; + padding: 3px; + margin-bottom: 5px; +} +.cesium-cesiumInspector-sectionContent { + margin-bottom: 10px; + transition: max-height 0.25s; +} +.cesium-cesiumInspector-tileText { + padding-bottom: 10px; + border-bottom: 1px solid #aaa; +} +.cesium-cesiumInspector-relativeText { + padding-top: 10px; +} +.cesium-cesiumInspector-sectionHeader::before { + margin-right: 5px; + content: "-"; + width: 1ch; + display: inline-block; +} +.cesium-cesiumInspector-section-collapsed .cesium-cesiumInspector-sectionHeader::before { + content: "+"; +} + +/* packages/widgets/Source/Cesium3DTilesInspector/Cesium3DTilesInspector.css */ +ul.cesium-cesiumInspector-statistics { + margin: 0; + padding-top: 3px; + padding-bottom: 3px; +} +ul.cesium-cesiumInspector-statistics + ul.cesium-cesiumInspector-statistics { + border-top: 1px solid #aaa; +} +.cesium-cesiumInspector-slider { + margin-top: 5px; +} +.cesium-cesiumInspector-slider input[type=number] { + text-align: left; + background-color: #222; + outline: none; + border: 1px solid #444; + color: #edffff; + width: 100px; + border-radius: 3px; + padding: 1px; + margin-left: 10px; + cursor: auto; +} +.cesium-cesiumInspector-slider input[type=number]::-webkit-outer-spin-button, +.cesium-cesiumInspector-slider input[type=number]::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} +.cesium-cesiumInspector-slider input[type=range] { + margin-left: 5px; + vertical-align: middle; +} +.cesium-cesiumInspector-hide .cesium-cesiumInspector-styleEditor { + display: none; +} +.cesium-cesiumInspector-styleEditor { + padding: 10px; + border-radius: 5px; + background: rgba(48, 51, 54, 0.8); + border: 1px solid #444; +} +.cesium-cesiumInspector-styleEditor textarea { + width: 100%; + height: 300px; + background: transparent; + color: #edffff; + border: none; + padding: 0; + white-space: pre; + overflow-wrap: normal; + overflow-x: auto; +} +.cesium-3DTilesInspector { + width: 300px; + pointer-events: all; +} +.cesium-3DTilesInspector-statistics { + font-size: 11px; +} +.cesium-3DTilesInspector-disabledElementsInfo { + margin: 5px 0 0 0; + padding: 0 0 0 20px; + color: #eed202; +} +.cesium-3DTilesInspector div, +.cesium-3DTilesInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-cesiumInspector-error { + color: #ff9e9e; + overflow: auto; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-3DTilesInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} +input.cesium-cesiumInspector-url { + overflow: hidden; + white-space: nowrap; + overflow-x: scroll; + background-color: transparent; + color: white; + outline: none; + border: none; + height: 1em; + width: 100%; +} +.cesium-cesiumInspector .field-group { + display: table; +} +.cesium-cesiumInspector .field-group > label { + display: table-cell; + font-weight: bold; +} +.cesium-cesiumInspector .field-group > .field { + display: table-cell; + width: 100%; +} + +/* packages/widgets/Source/VoxelInspector/VoxelInspector.css */ +.cesium-VoxelInspector { + width: 300px; + pointer-events: all; +} +.cesium-VoxelInspector div, +.cesium-VoxelInspector input[type=range] { + width: 100%; + box-sizing: border-box; +} +.cesium-VoxelInspector .cesium-cesiumInspector-section { + margin-top: 3px; +} +.cesium-VoxelInspector .cesium-cesiumInspector-sectionHeader + .cesium-cesiumInspector-show { + border-top: 1px solid white; +} + +/* packages/widgets/Source/FullscreenButton/FullscreenButton.css */ +.cesium-button.cesium-fullscreenButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/VRButton/VRButton.css */ +.cesium-button.cesium-vrButton { + display: block; + width: 100%; + height: 100%; + margin: 0; + border-radius: 0; +} + +/* packages/widgets/Source/Geocoder/Geocoder.css */ +.cesium-viewer-geocoderContainer .cesium-geocoder-input { + border: solid 1px #444; + background-color: rgba(40, 40, 40, 0.7); + color: white; + display: inline-block; + vertical-align: middle; + width: 0; + height: 32px; + margin: 0; + padding: 0 32px 0 0; + border-radius: 0; + box-sizing: border-box; + transition: width ease-in-out 0.25s, background-color 0.2s ease-in-out; + -webkit-appearance: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input { + border-color: #aef; + box-shadow: 0 0 8px #fff; +} +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus { + border-color: #ea4; + background-color: rgba(15, 15, 15, 0.9); + box-shadow: none; + outline: none; +} +.cesium-viewer-geocoderContainer:hover .cesium-geocoder-input, +.cesium-viewer-geocoderContainer .cesium-geocoder-input:focus, +.cesium-viewer-geocoderContainer .cesium-geocoder-input-wide { + padding-left: 4px; + width: 250px; +} +.cesium-viewer-geocoderContainer .search-results { + position: absolute; + background-color: #000; + color: #eee; + overflow-y: auto; + opacity: 0.8; + width: 100%; +} +.cesium-viewer-geocoderContainer .search-results ul { + list-style-type: none; + margin: 0; + padding: 0; +} +.cesium-viewer-geocoderContainer .search-results ul li { + font-size: 14px; + padding: 3px 10px; +} +.cesium-viewer-geocoderContainer .search-results ul li:hover { + cursor: pointer; +} +.cesium-viewer-geocoderContainer .search-results ul li.active { + background: #48b; +} +.cesium-geocoder-searchButton { + background-color: #303336; + display: inline-block; + position: absolute; + cursor: pointer; + width: 32px; + top: 1px; + right: 1px; + height: 30px; + vertical-align: middle; + fill: #edffff; +} +.cesium-geocoder-searchButton:hover { + background-color: #48b; +} + +/* packages/widgets/Source/InfoBox/InfoBox.css */ +.cesium-infoBox { + display: block; + position: absolute; + top: 50px; + right: 0; + width: 40%; + max-width: 480px; + background: rgba(38, 38, 38, 0.95); + color: #edffff; + border: 1px solid #444; + border-right: none; + border-top-left-radius: 7px; + border-bottom-left-radius: 7px; + box-shadow: 0 0 10px 1px #000; + transform: translate(100%, 0); + visibility: hidden; + opacity: 0; + transition: + visibility 0s 0.2s, + opacity 0.2s ease-in, + transform 0.2s ease-in; +} +.cesium-infoBox-visible { + transform: translate(0, 0); + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out, transform 0.2s ease-out; +} +.cesium-infoBox-title { + display: block; + height: 20px; + padding: 5px 30px 5px 25px; + background: rgba(84, 84, 84, 1); + border-top-left-radius: 7px; + text-align: center; + text-overflow: ellipsis; + white-space: nowrap; + overflow: hidden; + box-sizing: content-box; +} +.cesium-infoBox-bodyless .cesium-infoBox-title { + border-bottom-left-radius: 7px; +} +button.cesium-infoBox-camera { + display: block; + position: absolute; + top: 4px; + left: 4px; + width: 22px; + height: 22px; + background: transparent; + border-color: transparent; + border-radius: 3px; + padding: 0 5px; + margin: 0; +} +button.cesium-infoBox-close { + display: block; + position: absolute; + top: 5px; + right: 5px; + height: 20px; + background: transparent; + border: none; + border-radius: 2px; + font-weight: bold; + font-size: 16px; + padding: 0 5px; + margin: 0; + color: #edffff; +} +button.cesium-infoBox-close:focus { + background: rgba(238, 136, 0, 0.44); + outline: none; +} +button.cesium-infoBox-close:hover { + background: #888; + color: #000; +} +button.cesium-infoBox-close:active { + background: #a00; + color: #000; +} +.cesium-infoBox-bodyless .cesium-infoBox-iframe { + display: none; +} +.cesium-infoBox-iframe { + border: none; + width: 100%; + width: calc(100% - 2px); +} + +/* packages/widgets/Source/SceneModePicker/SceneModePicker.css */ +span.cesium-sceneModePicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-sceneModePicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-sceneModePicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-none { + display: none; +} +.cesium-sceneModePicker-slide-svg { + transition: left 2s; + top: 0; + left: 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView, +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D { + margin: 0 0 3px 0; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-icon2D { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button3D .cesium-sceneModePicker-iconColumbusView { + left: 200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon3D { + left: -200%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-buttonColumbusView .cesium-sceneModePicker-icon2D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-icon3D { + left: -100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-button2D .cesium-sceneModePicker-iconColumbusView { + left: 100%; +} +.cesium-sceneModePicker-wrapper .cesium-sceneModePicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/ProjectionPicker/ProjectionPicker.css */ +span.cesium-projectionPicker-wrapper { + display: inline-block; + position: relative; + margin: 0 3px; +} +.cesium-projectionPicker-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.25s linear; +} +.cesium-projectionPicker-hidden { + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.25s, opacity 0.25s linear; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-none { + display: none; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-dropDown-icon { + box-sizing: border-box; + padding: 0; + margin: 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective, +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic { + margin: 0 0 3px 0; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonPerspective .cesium-projectionPicker-iconOrthographic { + left: 100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-buttonOrthographic .cesium-projectionPicker-iconPerspective { + left: -100%; +} +.cesium-projectionPicker-wrapper .cesium-projectionPicker-selected { + border-color: #2e2; + box-shadow: 0 0 8px #fff, 0 0 8px #fff; +} + +/* packages/widgets/Source/PerformanceWatchdog/PerformanceWatchdog.css */ +.cesium-performance-watchdog-message-area { + position: relative; + background-color: yellow; + color: black; + padding: 10px; +} +.cesium-performance-watchdog-message { + margin-right: 30px; +} +.cesium-performance-watchdog-message-dismiss { + position: absolute; + right: 0; + margin: 0 10px 0 0; +} + +/* packages/widgets/Source/NavigationHelpButton/NavigationHelpButton.css */ +.cesium-navigationHelpButton-wrapper { + position: relative; + display: inline-block; +} +.cesium-navigation-help { + visibility: hidden; + position: absolute; + top: 38px; + right: 2px; + width: 250px; + border-radius: 10px; + transform: scale(0.01); + transform-origin: 234px -10px; + transition: visibility 0s 0.25s, transform 0.25s ease-in; +} +.cesium-navigation-help-visible { + visibility: visible; + transform: scale(1); + transition: transform 0.25s ease-out; +} +.cesium-navigation-help-instructions { + border: 1px solid #444; + background-color: rgba(38, 38, 38, 0.75); + padding-bottom: 5px; + border-radius: 0 0 10px 10px; +} +.cesium-click-navigation-help { + display: none; +} +.cesium-touch-navigation-help { + display: none; + padding-top: 5px; +} +.cesium-click-navigation-help-visible { + display: block; +} +.cesium-touch-navigation-help-visible { + display: block; +} +.cesium-navigation-help-pan { + color: #66ccff; + font-weight: bold; +} +.cesium-navigation-help-zoom { + color: #65fd00; + font-weight: bold; +} +.cesium-navigation-help-rotate { + color: #ffd800; + font-weight: bold; +} +.cesium-navigation-help-tilt { + color: #d800d8; + font-weight: bold; +} +.cesium-navigation-help-details { + color: #ffffff; +} +.cesium-navigation-button { + color: #fff; + background-color: transparent; + border-bottom: none; + border-top: 1px solid #444; + border-right: 1px solid #444; + margin: 0; + width: 50%; + cursor: pointer; +} +.cesium-navigation-button-icon { + vertical-align: middle; + padding: 5px 1px; +} +.cesium-navigation-button:focus { + outline: none; +} +.cesium-navigation-button-left { + border-radius: 10px 0 0 0; + border-left: 1px solid #444; +} +.cesium-navigation-button-right { + border-radius: 0 10px 0 0; + border-left: none; +} +.cesium-navigation-button-selected { + background-color: rgba(38, 38, 38, 0.75); +} +.cesium-navigation-button-unselected { + background-color: rgba(0, 0, 0, 0.75); +} +.cesium-navigation-button-unselected:hover { + background-color: rgba(76, 76, 76, 0.75); +} + +/* packages/widgets/Source/SelectionIndicator/SelectionIndicator.css */ +.cesium-selection-wrapper { + position: absolute; + width: 160px; + height: 160px; + pointer-events: none; + visibility: hidden; + opacity: 0; + transition: visibility 0s 0.2s, opacity 0.2s ease-in; +} +.cesium-selection-wrapper-visible { + visibility: visible; + opacity: 1; + transition: opacity 0.2s ease-out; +} +.cesium-selection-wrapper svg { + fill: #2e2; + stroke: #000; + stroke-width: 1.1px; +} + +/* packages/widgets/Source/Timeline/Timeline.css */ +.cesium-timeline-main { + position: relative; + left: 0; + bottom: 0; + overflow: hidden; + border: solid 1px #888; + -moz-user-select: none; + -webkit-user-select: none; + -ms-user-select: none; + user-select: none; +} +.cesium-timeline-trackContainer { + width: 100%; + overflow: auto; + border-top: solid 1px #888; + position: relative; + top: 0; + left: 0; +} +.cesium-timeline-tracks { + position: absolute; + top: 0; + left: 0; + width: 100%; +} +.cesium-timeline-needle { + position: absolute; + left: 0; + top: 1.7em; + bottom: 0; + width: 1px; + background: #f00; +} +.cesium-timeline-bar { + position: relative; + left: 0; + top: 0; + overflow: hidden; + cursor: pointer; + width: 100%; + height: 1.7em; + background: + linear-gradient( + to bottom, + rgba(116, 117, 119, 0.8) 0%, + rgba(58, 68, 82, 0.8) 11%, + rgba(46, 50, 56, 0.8) 46%, + rgba(53, 53, 53, 0.8) 81%, + rgba(53, 53, 53, 0.8) 100%); +} +.cesium-timeline-ruler { + visibility: hidden; + white-space: nowrap; + font-size: 80%; + z-index: -200; +} +.cesium-timeline-highlight { + position: absolute; + bottom: 0; + left: 0; + background: #08f; +} +.cesium-timeline-ticLabel { + position: absolute; + top: 0; + left: 0; + white-space: nowrap; + font-size: 80%; + color: #eee; +} +.cesium-timeline-ticMain { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 50%; + background: #eee; +} +.cesium-timeline-ticSub { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 33%; + background: #aaa; +} +.cesium-timeline-ticTiny { + position: absolute; + bottom: 0; + left: 0; + width: 1px; + height: 25%; + background: #888; +} +.cesium-timeline-icon16 { + display: block; + position: absolute; + width: 16px; + height: 16px; + background-image: url(data:text/plain;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAQCAYAAAB3AH1ZAAAAAXNSR0IArs4c6QAAAAZiS0dEAP8A/wD/oL2nkwAAAAlwSFlzAAALEwAACxMBAJqcGAAAAAd0SU1FB9sIDBITKIVzLEMAAAKNSURBVEjHxdXNSxRhHAfw7zzrqhuoWJnSkrippUVSEKsHI9BTUYdAJA/RoYMREV26rAdn6tAfUARi16hQqkOBQRgUEYFWEC3OwczMjdZd92VmdWfmeelgTjO7q7gb0VzmmZnn85vvPPPMM8B/3qTcE2PPpuTZKB1eWuUQACgXYACYwVFbCTTVeZXB/i55o4LFelcAZfStYD4vpAoPGAGo4GBcQEgSOAUMQyAezwK6iQfDPXnhS/FkHZ+/8VLMWxxqWkfH3gbMRNOYi2roavbja0zHQmoFPYf8ED4Ko4aivm9MOG/u9I8mwrafeK7a/tVrNc/bARYN5noadeq7q0342vXw9CIMU6BmW8rVP9cPBPe52uu+v3O/y9sB4gkTWs6Qsk0mj5ExXMelejvA8WafYmkmGPHanTijdtvif8rx5RiCjdWKs2Cp3jWRDl96KhrbqlBeJqBOLyLQXg0IgbkZDS0dO8EZxZfPSTA9jvDDK3mT0OmP1FXh3XwEEAKdTX5MRWLgjCK4pwH3xt/YnjgLHAv4lHTCAKMMu/wV+KZGob6PoKyMQ0+sgBpZVJZn0NterxQaVqef/DRn+/EXYds/mZx2eVeAW9d65dhCEsaKCb7K8HH0gqTevyh9GDkn0VULRiaLzJKGBu9swfdaiie5RVo9ESURN8E8BE0n7ggACJy8KzghSCzp6DmwWxkaCm24EBXr8wI8Hrkq06QBiRC0t24HALS11IBTCyJl4vb1AXmzpbVYTwoVOXN0h7L8Mwtm8bXPybIQ/5FCX3dA2cr6XowvGCA02CvztAnz9+JiZk1AMxG6fEreSoBiPNmoyNnuWiWVzAIAtISO08E6pZi/3N96AIDn4E3h3P8L/wshP+txtEs4JAAAAABJRU5ErkJggg==); + background-repeat: no-repeat; +} + +/* packages/widgets/Source/Viewer/Viewer.css */ +.cesium-viewer { + font-family: sans-serif; + font-size: 16px; + overflow: hidden; + display: block; + position: relative; + top: 0; + left: 0; + width: 100%; + height: 100%; +} +.cesium-viewer-cesiumWidgetContainer { + width: 100%; + height: 100%; +} +.cesium-viewer-bottom { + display: block; + position: absolute; + bottom: 0; + left: 0; + padding-right: 5px; +} +.cesium-viewer .cesium-widget-credits { + display: inline; + position: static; + bottom: auto; + left: auto; + padding-right: 0; + color: #ffffff; + font-size: 10px; + text-shadow: 0 0 2px #000000; +} +.cesium-viewer-timelineContainer { + position: absolute; + bottom: 0; + left: 169px; + right: 29px; + height: 27px; + padding: 0; + margin: 0; + overflow: hidden; + font-size: 14px; +} +.cesium-viewer-animationContainer { + position: absolute; + bottom: 0; + left: 0; + padding: 0; + width: 169px; + height: 112px; +} +.cesium-viewer-fullscreenContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-vrContainer { + position: absolute; + bottom: 0; + right: 0; + padding: 0; + width: 29px; + height: 29px; + overflow: hidden; +} +.cesium-viewer-toolbar { + display: block; + position: absolute; + top: 5px; + right: 5px; +} +.cesium-viewer-cesiumInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; +} +.cesium-viewer-geocoderContainer { + position: relative; + display: inline-block; + margin: 0 3px; +} +.cesium-viewer-cesium3DTilesInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} +.cesium-viewer-voxelInspectorContainer { + display: block; + position: absolute; + top: 50px; + right: 10px; + max-height: calc(100% - 120px); + box-sizing: border-box; + overflow-y: auto; + overflow-x: hidden; +} + +/* packages/widgets/Source/I3SBuildingSceneLayerExplorer/I3SBuildingSceneLayerExplorer.css */ +.cesium-viewer-i3s-explorer ul { + list-style-type: none; +} +.cesium-viewer-i3s-explorer .layersList { + padding: 0; +} +.cesium-viewer-i3s-explorer input { + margin: 0 3px 0 0; +} +.cesium-viewer-i3s-explorer .expandItem { + cursor: pointer; + user-select: none; + width: 20px; +} +.cesium-viewer-i3s-explorer .nested, +.cesium-viewer-i3s-explorer #bsl-wrapper { + display: none; +} +.cesium-viewer-i3s-explorer .active { + display: block; +} +.cesium-viewer-i3s-explorer .li-wrapper { + display: flex; + flex-direction: row; + align-content: center; +} + +/* packages/widgets/Source/widgets.css */ diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/cesiumWorkerBootstrapper.js b/app/plot_app/static/cesium/Build/Cesium/Workers/cesiumWorkerBootstrapper.js deleted file mode 100644 index d25ae80e2..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/cesiumWorkerBootstrapper.js +++ /dev/null @@ -1,29 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** vim: et:ts=4:sw=4:sts=4 - * @license RequireJS 2.1.20 Copyright (c) 2010-2015, The Dojo Foundation All Rights Reserved. - * Available via the MIT or new BSD license. - * see: http://github.com/jrburke/requirejs for details - */ - -function setTimeout(e){e()}"undefined"==typeof self&&(self={}),self.onmessage=function(e){var t=e.data;require(t.loaderConfig,[t.workerModule],function(e){self.onmessage=e,CESIUM_BASE_URL=t.loaderConfig.baseUrl})};var requirejs,require,define;!function(global){function isFunction(e){return"[object Function]"===ostring.call(e)}function isArray(e){return"[object Array]"===ostring.call(e)}function each(e,t){if(e){var i;for(i=0;i<e.length&&(!e[i]||!t(e[i],i,e));i+=1);}}function eachReverse(e,t){if(e){var i;for(i=e.length-1;i>-1&&(!e[i]||!t(e[i],i,e));i-=1);}}function hasProp(e,t){return hasOwn.call(e,t)}function getOwn(e,t){return hasProp(e,t)&&e[t]}function eachProp(e,t){var i;for(i in e)if(hasProp(e,i)&&t(e[i],i))break}function mixin(e,t,i,r){return t&&eachProp(t,function(t,n){!i&&hasProp(e,n)||(!r||"object"!=typeof t||!t||isArray(t)||isFunction(t)||t instanceof RegExp?e[n]=t:(e[n]||(e[n]={}),mixin(e[n],t,i,r)))}),e}function bind(e,t){return function(){return t.apply(e,arguments)}}function scripts(){return document.getElementsByTagName("script")}function defaultOnError(e){throw e}function getGlobal(e){if(!e)return e;var t=global;return each(e.split("."),function(e){t=t[e]}),t}function makeError(e,t,i,r){var n=new Error(t+"\nhttp://requirejs.org/docs/errors.html#"+e);return n.requireType=e,n.requireModules=r,i&&(n.originalError=i),n}function newContext(e){function t(e){var t,i;for(t=0;t<e.length;t++)if("."===(i=e[t]))e.splice(t,1),t-=1;else if(".."===i){if(0===t||1===t&&".."===e[2]||".."===e[t-1])continue;t>0&&(e.splice(t-1,2),t-=2)}}function i(e,i,r){var n,o,a,s,u,c,d,p,f,l,h,m=i&&i.split("/"),g=y.map,v=g&&g["*"];if(e&&(e=e.split("/"),c=e.length-1,y.nodeIdCompat&&jsSuffixRegExp.test(e[c])&&(e[c]=e[c].replace(jsSuffixRegExp,"")),"."===e[0].charAt(0)&&m&&(h=m.slice(0,m.length-1),e=h.concat(e)),t(e),e=e.join("/")),r&&g&&(m||v)){o=e.split("/");e:for(a=o.length;a>0;a-=1){if(u=o.slice(0,a).join("/"),m)for(s=m.length;s>0;s-=1)if((n=getOwn(g,m.slice(0,s).join("/")))&&(n=getOwn(n,u))){d=n,p=a;break e}!f&&v&&getOwn(v,u)&&(f=getOwn(v,u),l=a)}!d&&f&&(d=f,p=l),d&&(o.splice(0,p,d),e=o.join("/"))}return getOwn(y.pkgs,e)||e}function r(e){isBrowser&&each(scripts(),function(t){if(t.getAttribute("data-requiremodule")===e&&t.getAttribute("data-requirecontext")===q.contextName)return t.parentNode.removeChild(t),!0})}function n(e){var t=getOwn(y.paths,e);if(t&&isArray(t)&&t.length>1)return t.shift(),q.require.undef(e),q.makeRequire(null,{skipMap:!0})([e]),!0}function o(e){var t,i=e?e.indexOf("!"):-1;return i>-1&&(t=e.substring(0,i),e=e.substring(i+1,e.length)),[t,e]}function a(e,t,r,n){var a,s,u,c,d=null,p=t?t.name:null,f=e,l=!0,h="";return e||(l=!1,e="_@r"+(A+=1)),c=o(e),d=c[0],e=c[1],d&&(d=i(d,p,n),s=getOwn(j,d)),e&&(d?h=s&&s.normalize?s.normalize(e,function(e){return i(e,p,n)}):-1===e.indexOf("!")?i(e,p,n):e:(h=i(e,p,n),c=o(h),d=c[0],h=c[1],r=!0,a=q.nameToUrl(h))),u=!d||s||r?"":"_unnormalized"+(T+=1),{prefix:d,name:h,parentMap:t,unnormalized:!!u,url:a,originalName:f,isDefine:l,id:(d?d+"!"+h:h)+u}}function s(e){var t=e.id,i=getOwn(S,t);return i||(i=S[t]=new q.Module(e)),i}function u(e,t,i){var r=e.id,n=getOwn(S,r);!hasProp(j,r)||n&&!n.defineEmitComplete?(n=s(e),n.error&&"error"===t?i(n.error):n.on(t,i)):"defined"===t&&i(j[r])}function c(e,t){var i=e.requireModules,r=!1;t?t(e):(each(i,function(t){var i=getOwn(S,t);i&&(i.error=e,i.events.error&&(r=!0,i.emit("error",e)))}),r||req.onError(e))}function d(){globalDefQueue.length&&(each(globalDefQueue,function(e){var t=e[0];"string"==typeof t&&(q.defQueueMap[t]=!0),O.push(e)}),globalDefQueue=[])}function p(e){delete S[e],delete k[e]}function f(e,t,i){var r=e.map.id;e.error?e.emit("error",e.error):(t[r]=!0,each(e.depMaps,function(r,n){var o=r.id,a=getOwn(S,o);!a||e.depMatched[n]||i[o]||(getOwn(t,o)?(e.defineDep(n,j[o]),e.check()):f(a,t,i))}),i[r]=!0)}function l(){var e,t,i=1e3*y.waitSeconds,o=i&&q.startTime+i<(new Date).getTime(),a=[],s=[],u=!1,d=!0;if(!x){if(x=!0,eachProp(k,function(e){var i=e.map,c=i.id;if(e.enabled&&(i.isDefine||s.push(e),!e.error))if(!e.inited&&o)n(c)?(t=!0,u=!0):(a.push(c),r(c));else if(!e.inited&&e.fetched&&i.isDefine&&(u=!0,!i.prefix))return d=!1}),o&&a.length)return e=makeError("timeout","Load timeout for modules: "+a,null,a),e.contextName=q.contextName,c(e);d&&each(s,function(e){f(e,{},{})}),o&&!t||!u||!isBrowser&&!isWebWorker||w||(w=setTimeout(function(){w=0,l()},50)),x=!1}}function h(e){hasProp(j,e[0])||s(a(e[0],null,!0)).init(e[1],e[2])}function m(e,t,i,r){e.detachEvent&&!isOpera?r&&e.detachEvent(r,t):e.removeEventListener(i,t,!1)}function g(e){var t=e.currentTarget||e.srcElement;return m(t,q.onScriptLoad,"load","onreadystatechange"),m(t,q.onScriptError,"error"),{node:t,id:t&&t.getAttribute("data-requiremodule")}}function v(){var e;for(d();O.length;){if(e=O.shift(),null===e[0])return c(makeError("mismatch","Mismatched anonymous define() module: "+e[e.length-1]));h(e)}q.defQueueMap={}}var x,b,q,E,w,y={waitSeconds:7,baseUrl:"./",paths:{},bundles:{},pkgs:{},shim:{},config:{}},S={},k={},M={},O=[],j={},P={},R={},A=1,T=1;return E={require:function(e){return e.require?e.require:e.require=q.makeRequire(e.map)},exports:function(e){if(e.usingExports=!0,e.map.isDefine)return e.exports?j[e.map.id]=e.exports:e.exports=j[e.map.id]={}},module:function(e){return e.module?e.module:e.module={id:e.map.id,uri:e.map.url,config:function(){return getOwn(y.config,e.map.id)||{}},exports:e.exports||(e.exports={})}}},b=function(e){this.events=getOwn(M,e.id)||{},this.map=e,this.shim=getOwn(y.shim,e.id),this.depExports=[],this.depMaps=[],this.depMatched=[],this.pluginMaps={},this.depCount=0},b.prototype={init:function(e,t,i,r){r=r||{},this.inited||(this.factory=t,i?this.on("error",i):this.events.error&&(i=bind(this,function(e){this.emit("error",e)})),this.depMaps=e&&e.slice(0),this.errback=i,this.inited=!0,this.ignore=r.ignore,r.enabled||this.enabled?this.enable():this.check())},defineDep:function(e,t){this.depMatched[e]||(this.depMatched[e]=!0,this.depCount-=1,this.depExports[e]=t)},fetch:function(){if(!this.fetched){this.fetched=!0,q.startTime=(new Date).getTime();var e=this.map;if(!this.shim)return e.prefix?this.callPlugin():this.load();q.makeRequire(this.map,{enableBuildCallback:!0})(this.shim.deps||[],bind(this,function(){return e.prefix?this.callPlugin():this.load()}))}},load:function(){var e=this.map.url;P[e]||(P[e]=!0,q.load(this.map.id,e))},check:function(){if(this.enabled&&!this.enabling){var e,t,i=this.map.id,r=this.depExports,n=this.exports,o=this.factory;if(this.inited){if(this.error)this.emit("error",this.error);else if(!this.defining){if(this.defining=!0,this.depCount<1&&!this.defined){if(isFunction(o)){if(this.events.error&&this.map.isDefine||req.onError!==defaultOnError)try{n=q.execCb(i,o,r,n)}catch(t){e=t}else n=q.execCb(i,o,r,n);if(this.map.isDefine&&void 0===n&&(t=this.module,t?n=t.exports:this.usingExports&&(n=this.exports)),e)return e.requireMap=this.map,e.requireModules=this.map.isDefine?[this.map.id]:null,e.requireType=this.map.isDefine?"define":"require",c(this.error=e)}else n=o;this.exports=n,this.map.isDefine&&!this.ignore&&(j[i]=n,req.onResourceLoad&&req.onResourceLoad(q,this.map,this.depMaps)),p(i),this.defined=!0}this.defining=!1,this.defined&&!this.defineEmitted&&(this.defineEmitted=!0,this.emit("defined",this.exports),this.defineEmitComplete=!0)}}else hasProp(q.defQueueMap,i)||this.fetch()}},callPlugin:function(){var e=this.map,t=e.id,r=a(e.prefix);this.depMaps.push(r),u(r,"defined",bind(this,function(r){var n,o,d,f=getOwn(R,this.map.id),l=this.map.name,h=this.map.parentMap?this.map.parentMap.name:null,m=q.makeRequire(e.parentMap,{enableBuildCallback:!0});return this.map.unnormalized?(r.normalize&&(l=r.normalize(l,function(e){return i(e,h,!0)})||""),o=a(e.prefix+"!"+l,this.map.parentMap),u(o,"defined",bind(this,function(e){this.init([],function(){return e},null,{enabled:!0,ignore:!0})})),void((d=getOwn(S,o.id))&&(this.depMaps.push(o),this.events.error&&d.on("error",bind(this,function(e){this.emit("error",e)})),d.enable()))):f?(this.map.url=q.nameToUrl(f),void this.load()):(n=bind(this,function(e){this.init([],function(){return e},null,{enabled:!0})}),n.error=bind(this,function(e){this.inited=!0,this.error=e,e.requireModules=[t],eachProp(S,function(e){0===e.map.id.indexOf(t+"_unnormalized")&&p(e.map.id)}),c(e)}),n.fromText=bind(this,function(i,r){var o=e.name,u=a(o),d=useInteractive;r&&(i=r),d&&(useInteractive=!1),s(u),hasProp(y.config,t)&&(y.config[o]=y.config[t]);try{req.exec(i)}catch(e){return c(makeError("fromtexteval","fromText eval for "+t+" failed: "+e,e,[t]))}d&&(useInteractive=!0),this.depMaps.push(u),q.completeLoad(o),m([o],n)}),void r.load(e.name,m,n,y))})),q.enable(r,this),this.pluginMaps[r.id]=r},enable:function(){k[this.map.id]=this,this.enabled=!0,this.enabling=!0,each(this.depMaps,bind(this,function(e,t){var i,r,n;if("string"==typeof e){if(e=a(e,this.map.isDefine?this.map:this.map.parentMap,!1,!this.skipMap),this.depMaps[t]=e,n=getOwn(E,e.id))return void(this.depExports[t]=n(this));this.depCount+=1,u(e,"defined",bind(this,function(e){this.undefed||(this.defineDep(t,e),this.check())})),this.errback?u(e,"error",bind(this,this.errback)):this.events.error&&u(e,"error",bind(this,function(e){this.emit("error",e)}))}i=e.id,r=S[i],hasProp(E,i)||!r||r.enabled||q.enable(e,this)})),eachProp(this.pluginMaps,bind(this,function(e){var t=getOwn(S,e.id);t&&!t.enabled&&q.enable(e,this)})),this.enabling=!1,this.check()},on:function(e,t){var i=this.events[e];i||(i=this.events[e]=[]),i.push(t)},emit:function(e,t){each(this.events[e],function(e){e(t)}),"error"===e&&delete this.events[e]}},q={config:y,contextName:e,registry:S,defined:j,urlFetched:P,defQueue:O,defQueueMap:{},Module:b,makeModuleMap:a,nextTick:req.nextTick,onError:c,configure:function(e){e.baseUrl&&"/"!==e.baseUrl.charAt(e.baseUrl.length-1)&&(e.baseUrl+="/");var t=y.shim,i={paths:!0,bundles:!0,config:!0,map:!0};eachProp(e,function(e,t){i[t]?(y[t]||(y[t]={}),mixin(y[t],e,!0,!0)):y[t]=e}),e.bundles&&eachProp(e.bundles,function(e,t){each(e,function(e){e!==t&&(R[e]=t)})}),e.shim&&(eachProp(e.shim,function(e,i){isArray(e)&&(e={deps:e}),!e.exports&&!e.init||e.exportsFn||(e.exportsFn=q.makeShimExports(e)),t[i]=e}),y.shim=t),e.packages&&each(e.packages,function(e){var t,i;e="string"==typeof e?{name:e}:e,i=e.name,t=e.location,t&&(y.paths[i]=e.location),y.pkgs[i]=e.name+"/"+(e.main||"main").replace(currDirRegExp,"").replace(jsSuffixRegExp,"")}),eachProp(S,function(e,t){e.inited||e.map.unnormalized||(e.map=a(t,null,!0))}),(e.deps||e.callback)&&q.require(e.deps||[],e.callback)},makeShimExports:function(e){function t(){var t;return e.init&&(t=e.init.apply(global,arguments)),t||e.exports&&getGlobal(e.exports)}return t},makeRequire:function(t,n){function o(i,r,u){var d,p,f;return n.enableBuildCallback&&r&&isFunction(r)&&(r.__requireJsBuild=!0),"string"==typeof i?isFunction(r)?c(makeError("requireargs","Invalid require call"),u):t&&hasProp(E,i)?E[i](S[t.id]):req.get?req.get(q,i,t,o):(p=a(i,t,!1,!0),d=p.id,hasProp(j,d)?j[d]:c(makeError("notloaded",'Module name "'+d+'" has not been loaded yet for context: '+e+(t?"":". Use require([])")))):(v(),q.nextTick(function(){v(),f=s(a(null,t)),f.skipMap=n.skipMap,f.init(i,r,u,{enabled:!0}),l()}),o)}return n=n||{},mixin(o,{isBrowser:isBrowser,toUrl:function(e){var r,n=e.lastIndexOf("."),o=e.split("/")[0],a="."===o||".."===o;return-1!==n&&(!a||n>1)&&(r=e.substring(n,e.length),e=e.substring(0,n)),q.nameToUrl(i(e,t&&t.id,!0),r,!0)},defined:function(e){return hasProp(j,a(e,t,!1,!0).id)},specified:function(e){return e=a(e,t,!1,!0).id,hasProp(j,e)||hasProp(S,e)}}),t||(o.undef=function(e){d();var i=a(e,t,!0),n=getOwn(S,e);n.undefed=!0,r(e),delete j[e],delete P[i.url],delete M[e],eachReverse(O,function(t,i){t[0]===e&&O.splice(i,1)}),delete q.defQueueMap[e],n&&(n.events.defined&&(M[e]=n.events),p(e))}),o},enable:function(e){getOwn(S,e.id)&&s(e).enable()},completeLoad:function(e){var t,i,r,o=getOwn(y.shim,e)||{},a=o.exports;for(d();O.length;){if(i=O.shift(),null===i[0]){if(i[0]=e,t)break;t=!0}else i[0]===e&&(t=!0);h(i)}if(q.defQueueMap={},r=getOwn(S,e),!t&&!hasProp(j,e)&&r&&!r.inited){if(!(!y.enforceDefine||a&&getGlobal(a)))return n(e)?void 0:c(makeError("nodefine","No define call for "+e,null,[e]));h([e,o.deps||[],o.exportsFn])}l()},nameToUrl:function(e,t,i){var r,n,o,a,s,u,c,d=getOwn(y.pkgs,e);if(d&&(e=d),c=getOwn(R,e))return q.nameToUrl(c,t,i);if(req.jsExtRegExp.test(e))s=e+(t||"");else{for(r=y.paths,n=e.split("/"),o=n.length;o>0;o-=1)if(a=n.slice(0,o).join("/"),u=getOwn(r,a)){isArray(u)&&(u=u[0]),n.splice(0,o,u);break}s=n.join("/"),s+=t||(/^data\:|\?/.test(s)||i?"":".js"),s=("/"===s.charAt(0)||s.match(/^[\w\+\.\-]+:/)?"":y.baseUrl)+s}return y.urlArgs?s+(-1===s.indexOf("?")?"?":"&")+y.urlArgs:s},load:function(e,t){req.load(q,e,t)},execCb:function(e,t,i,r){return t.apply(r,i)},onScriptLoad:function(e){if("load"===e.type||readyRegExp.test((e.currentTarget||e.srcElement).readyState)){interactiveScript=null;var t=g(e);q.completeLoad(t.id)}},onScriptError:function(e){var t=g(e);if(!n(t.id))return c(makeError("scripterror","Script error for: "+t.id,e,[t.id]))}},q.require=q.makeRequire(),q}function getInteractiveScript(){return interactiveScript&&"interactive"===interactiveScript.readyState?interactiveScript:(eachReverse(scripts(),function(e){if("interactive"===e.readyState)return interactiveScript=e}),interactiveScript)}var req,s,head,baseElement,dataMain,src,interactiveScript,currentlyAddingScript,mainScript,subPath,version="2.1.20",commentRegExp=/(\/\*([\s\S]*?)\*\/|([^:]|^)\/\/(.*)$)/gm,cjsRequireRegExp=/[^.]\s*require\s*\(\s*["']([^'"\s]+)["']\s*\)/g,jsSuffixRegExp=/\.js$/,currDirRegExp=/^\.\//,op=Object.prototype,ostring=op.toString,hasOwn=op.hasOwnProperty,ap=Array.prototype,isBrowser=!("undefined"==typeof window||"undefined"==typeof navigator||!window.document),isWebWorker=!isBrowser&&"undefined"!=typeof importScripts,readyRegExp=isBrowser&&"PLAYSTATION 3"===navigator.platform?/^complete$/:/^(complete|loaded)$/,defContextName="_",isOpera="undefined"!=typeof opera&&"[object Opera]"===opera.toString(),contexts={},cfg={},globalDefQueue=[],useInteractive=!1;if(void 0===define){if(void 0!==requirejs){if(isFunction(requirejs))return;cfg=requirejs,requirejs=void 0}void 0===require||isFunction(require)||(cfg=require,require=void 0),req=requirejs=function(e,t,i,r){var n,o,a=defContextName;return isArray(e)||"string"==typeof e||(o=e,isArray(t)?(e=t,t=i,i=r):e=[]),o&&o.context&&(a=o.context),n=getOwn(contexts,a),n||(n=contexts[a]=req.s.newContext(a)),o&&n.configure(o),n.require(e,t,i)},req.config=function(e){return req(e)},req.nextTick=void 0!==setTimeout?function(e){setTimeout(e,4)}:function(e){e()},require||(require=req),req.version=version,req.jsExtRegExp=/^\/|:|\?|\.js$/,req.isBrowser=isBrowser,s=req.s={contexts:contexts,newContext:newContext},req({}),each(["toUrl","undef","defined","specified"],function(e){req[e]=function(){var t=contexts[defContextName];return t.require[e].apply(t,arguments)}}),isBrowser&&(head=s.head=document.getElementsByTagName("head")[0],(baseElement=document.getElementsByTagName("base")[0])&&(head=s.head=baseElement.parentNode)),req.onError=defaultOnError,req.createNode=function(e,t,i){var r=e.xhtml?document.createElementNS("http://www.w3.org/1999/xhtml","html:script"):document.createElement("script");return r.type=e.scriptType||"text/javascript",r.charset="utf-8",r.async=!0,r},req.load=function(e,t,i){var r,n=e&&e.config||{};if(isBrowser)return r=req.createNode(n,t,i),n.onNodeCreated&&n.onNodeCreated(r,n,t,i),r.setAttribute("data-requirecontext",e.contextName),r.setAttribute("data-requiremodule",t),!r.attachEvent||r.attachEvent.toString&&r.attachEvent.toString().indexOf("[native code")<0||isOpera?(r.addEventListener("load",e.onScriptLoad,!1),r.addEventListener("error",e.onScriptError,!1)):(useInteractive=!0,r.attachEvent("onreadystatechange",e.onScriptLoad)),r.src=i,currentlyAddingScript=r,baseElement?head.insertBefore(r,baseElement):head.appendChild(r),currentlyAddingScript=null,r;if(isWebWorker)try{importScripts(i),e.completeLoad(t)}catch(r){e.onError(makeError("importscripts","importScripts failed for "+t+" at "+i,r,[t]))}},isBrowser&&!cfg.skipDataMain&&eachReverse(scripts(),function(e){if(head||(head=e.parentNode),dataMain=e.getAttribute("data-main"))return mainScript=dataMain,cfg.baseUrl||(src=mainScript.split("/"),mainScript=src.pop(),subPath=src.length?src.join("/")+"/":"./",cfg.baseUrl=subPath),mainScript=mainScript.replace(jsSuffixRegExp,""),req.jsExtRegExp.test(mainScript)&&(mainScript=dataMain),cfg.deps=cfg.deps?cfg.deps.concat(mainScript):[mainScript],!0}),define=function(e,t,i){var r,n;"string"!=typeof e&&(i=t,t=e,e=null),isArray(t)||(i=t,t=null),!t&&isFunction(i)&&(t=[],i.length&&(i.toString().replace(commentRegExp,"").replace(cjsRequireRegExp,function(e,i){t.push(i)}),t=(1===i.length?["require"]:["require","exports","module"]).concat(t))),useInteractive&&(r=currentlyAddingScript||getInteractiveScript())&&(e||(e=r.getAttribute("data-requiremodule")),n=contexts[r.getAttribute("data-requirecontext")]),n?(n.defQueue.push([e,t,i]),n.defQueueMap[e]=!0):globalDefQueue.push([e,t,i])},define.amd={jQuery:!0},req.exec=function(text){return eval(text)},req(cfg)}}(this); \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2HSPJH3C.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2HSPJH3C.js new file mode 100644 index 000000000..27dfba93a --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2HSPJH3C.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as l,f as O,g as R,i as G,j as L}from"./chunk-Y5B6Y3WD.js";import{a as A,b as h,c as a,e as y}from"./chunk-AODSXSC5.js";import{a as c}from"./chunk-MOE32UQS.js";import{a as s}from"./chunk-WHQYJFDH.js";import{a as N,b as w}from"./chunk-OYWUGDKS.js";import{e as I}from"./chunk-DRYFJEFT.js";var U={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},M=Object.freeze(U);var r={POINTS:c.POINTS,LINES:c.LINES,LINE_LOOP:c.LINE_LOOP,LINE_STRIP:c.LINE_STRIP,TRIANGLES:c.TRIANGLES,TRIANGLE_STRIP:c.TRIANGLE_STRIP,TRIANGLE_FAN:c.TRIANGLE_FAN};r.isLines=function(t){return t===r.LINES||t===r.LINE_LOOP||t===r.LINE_STRIP};r.isTriangles=function(t){return t===r.TRIANGLES||t===r.TRIANGLE_STRIP||t===r.TRIANGLE_FAN};r.validate=function(t){return t===r.POINTS||t===r.LINES||t===r.LINE_LOOP||t===r.LINE_STRIP||t===r.TRIANGLES||t===r.TRIANGLE_STRIP||t===r.TRIANGLE_FAN};var F=Object.freeze(r);function _(t){t=s(t,s.EMPTY_OBJECT),w.typeOf.object("options.attributes",t.attributes),this.attributes=t.attributes,this.indices=t.indices,this.primitiveType=s(t.primitiveType,F.TRIANGLES),this.boundingSphere=t.boundingSphere,this.geometryType=s(t.geometryType,M.NONE),this.boundingSphereCV=t.boundingSphereCV,this.offsetAttribute=t.offsetAttribute}_.computeNumberOfVertices=function(t){w.typeOf.object("geometry",t);let m=-1;for(let u in t.attributes)if(t.attributes.hasOwnProperty(u)&&I(t.attributes[u])&&I(t.attributes[u].values)){let o=t.attributes[u],e=o.values.length/o.componentsPerAttribute;if(m!==e&&m!==-1)throw new N("All attribute lists must have the same number of attributes.");m=e}return m};var W=new h,H=new A,V=new l,Z=[new h,new h,new h],K=[new a,new a,new a],$=[new a,new a,new a],tt=new A,et=new O,rt=new l,nt=new L;_._textureCoordinateRotationPoints=function(t,m,u,o){let e,g=G.center(o,W),D=h.toCartesian(g,u,H),Y=R.eastNorthUpToFixedFrame(D,u,V),C=l.inverse(Y,V),b=K,f=Z;f[0].longitude=o.west,f[0].latitude=o.south,f[1].longitude=o.west,f[1].latitude=o.north,f[2].longitude=o.east,f[2].latitude=o.south;let n=tt;for(e=0;e<3;e++)h.toCartesian(f[e],u,n),n=l.multiplyByPointAsVector(C,n,n),b[e].x=n.x,b[e].y=n.y;let B=O.fromAxisAngle(A.UNIT_Z,-m,et),v=y.fromQuaternion(B,rt),j=t.length,T=Number.POSITIVE_INFINITY,p=Number.POSITIVE_INFINITY,d=Number.NEGATIVE_INFINITY,x=Number.NEGATIVE_INFINITY;for(e=0;e<j;e++)n=l.multiplyByPointAsVector(C,t[e],n),n=y.multiplyByVector(v,n,n),T=Math.min(T,n.x),p=Math.min(p,n.y),d=Math.max(d,n.x),x=Math.max(x,n.y);let k=L.fromRotation(m,nt),i=$;i[0].x=T,i[0].y=p,i[1].x=T,i[1].y=x,i[2].x=d,i[2].y=p;let P=b[0],z=b[2].x-P.x,X=b[1].y-P.y;for(e=0;e<3;e++){let E=i[e];L.multiplyByVector(k,E,E),E.x=(E.x-P.x)/z,E.y=(E.y-P.y)/X}let q=i[0],J=i[1],Q=i[2],S=new Array(6);return a.pack(q,S),a.pack(J,S,2),a.pack(Q,S,4),S};var Lt=_;function ot(t){if(t=s(t,s.EMPTY_OBJECT),!I(t.componentDatatype))throw new N("options.componentDatatype is required.");if(!I(t.componentsPerAttribute))throw new N("options.componentsPerAttribute is required.");if(t.componentsPerAttribute<1||t.componentsPerAttribute>4)throw new N("options.componentsPerAttribute must be between 1 and 4.");if(!I(t.values))throw new N("options.values is required.");this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=s(t.normalize,!1),this.values=t.values}var Ot=ot;export{M as a,F as b,Lt as c,Ot as d}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2QX3ZRAN.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2QX3ZRAN.js new file mode 100644 index 000000000..b036c366d --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-2QX3ZRAN.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as L,b as x}from"./chunk-T5AUOWE7.js";import{i as R}from"./chunk-Y5B6Y3WD.js";import{b as d,c as O,d as g}from"./chunk-AODSXSC5.js";import{a as w}from"./chunk-WHQYJFDH.js";import{b as m}from"./chunk-OYWUGDKS.js";import{e as f}from"./chunk-DRYFJEFT.js";function t(i,h,o,n){this.x=w(i,0),this.y=w(h,0),this.width=w(o,0),this.height=w(n,0)}t.packedLength=4;t.pack=function(i,h,o){return m.typeOf.object("value",i),m.defined("array",h),o=w(o,0),h[o++]=i.x,h[o++]=i.y,h[o++]=i.width,h[o]=i.height,h};t.unpack=function(i,h,o){return m.defined("array",i),h=w(h,0),f(o)||(o=new t),o.x=i[h++],o.y=i[h++],o.width=i[h++],o.height=i[h],o};t.fromPoints=function(i,h){if(f(h)||(h=new t),!f(i)||i.length===0)return h.x=0,h.y=0,h.width=0,h.height=0,h;let o=i.length,n=i[0].x,c=i[0].y,e=i[0].x,y=i[0].y;for(let p=1;p<o;p++){let b=i[p],j=b.x,M=b.y;n=Math.min(j,n),e=Math.max(j,e),c=Math.min(M,c),y=Math.max(M,y)}return h.x=n,h.y=c,h.width=e-n,h.height=y-c,h};var X=new L,Y=new d,k=new d;t.fromRectangle=function(i,h,o){if(f(o)||(o=new t),!f(i))return o.x=0,o.y=0,o.width=0,o.height=0,o;X._ellipsoid=g.default,h=w(h,X);let n=h.project(R.southwest(i,Y)),c=h.project(R.northeast(i,k));return O.subtract(c,n,c),o.x=n.x,o.y=n.y,o.width=c.x,o.height=c.y,o};t.clone=function(i,h){if(f(i))return f(h)?(h.x=i.x,h.y=i.y,h.width=i.width,h.height=i.height,h):new t(i.x,i.y,i.width,i.height)};t.union=function(i,h,o){m.typeOf.object("left",i),m.typeOf.object("right",h),f(o)||(o=new t);let n=Math.min(i.x,h.x),c=Math.min(i.y,h.y),e=Math.max(i.x+i.width,h.x+h.width),y=Math.max(i.y+i.height,h.y+h.height);return o.x=n,o.y=c,o.width=e-n,o.height=y-c,o};t.expand=function(i,h,o){m.typeOf.object("rectangle",i),m.typeOf.object("point",h),o=t.clone(i,o);let n=h.x-o.x,c=h.y-o.y;return n>o.width?o.width=n:n<0&&(o.width-=n,o.x=h.x),c>o.height?o.height=c:c<0&&(o.height-=c,o.y=h.y),o};t.intersect=function(i,h){m.typeOf.object("left",i),m.typeOf.object("right",h);let o=i.x,n=i.y,c=h.x,e=h.y;return o>c+h.width||o+i.width<c||n+i.height<e||n>e+h.height?x.OUTSIDE:x.INTERSECTING};t.equals=function(i,h){return i===h||f(i)&&f(h)&&i.x===h.x&&i.y===h.y&&i.width===h.width&&i.height===h.height};t.prototype.clone=function(i){return t.clone(this,i)};t.prototype.intersect=function(i){return t.intersect(this,i)};t.prototype.equals=function(i){return t.equals(this,i)};var a=t;export{a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3EKULFHC.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3EKULFHC.js new file mode 100644 index 000000000..a49af2590 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3EKULFHC.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c}from"./chunk-AODSXSC5.js";import{b as t}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";function f(){this.high=c.clone(c.ZERO),this.low=c.clone(c.ZERO)}f.encode=function(n,o){t.typeOf.number("value",n),g(o)||(o={high:0,low:0});let h;return n>=0?(h=Math.floor(n/65536)*65536,o.high=h,o.low=n-h):(h=Math.floor(-n/65536)*65536,o.high=-h,o.low=n+h),o};var e={high:0,low:0};f.fromCartesian=function(n,o){t.typeOf.object("cartesian",n),g(o)||(o=new f);let h=o.high,i=o.low;return f.encode(n.x,e),h.x=e.high,i.x=e.low,f.encode(n.y,e),h.y=e.high,i.y=e.low,f.encode(n.z,e),h.z=e.high,i.z=e.low,o};var m=new f;f.writeElements=function(n,o,h){t.defined("cartesianArray",o),t.typeOf.number("index",h),t.typeOf.number.greaterThanOrEquals("index",h,0),f.fromCartesian(n,m);let i=m.high,w=m.low;o[h]=i.x,o[h+1]=i.y,o[h+2]=i.z,o[h+3]=w.x,o[h+4]=w.y,o[h+5]=w.z};var O=f;export{O as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3R25OJXK.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3R25OJXK.js new file mode 100644 index 000000000..1915c8462 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-3R25OJXK.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e as f}from"./chunk-DRYFJEFT.js";function c(t){let n,a=t.name,e=t.message;f(a)&&f(e)?n=`${a}: ${e}`:n=t.toString();let o=t.stack;return f(o)&&(n+=` +${o}`),n}var i=c;function l(t){async function n({data:e}){let o=[],s={id:e.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=e.baseUrl;try{let r=await t(e.parameters,o);s.result=r}catch(r){r instanceof Error?s.error={name:r.name,message:r.message,stack:r.stack}:s.error=r}e.canTransferArrayBuffer||(o.length=0);try{postMessage(s,o)}catch(r){s.result=void 0,s.error=`postMessage failed with error: ${i(r)} + with responseMessage: ${JSON.stringify(s)}`,postMessage(s)}}function a(e){postMessage({id:e.data?.id,error:`postMessage failed with error: ${JSON.stringify(e)}`})}return self.onmessage=n,self.onmessageerror=a,self}var d=l;export{d as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-56S3WY3H.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-56S3WY3H.js new file mode 100644 index 000000000..185b82e9f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-56S3WY3H.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y}from"./chunk-H3L4SJP4.js";import{d as j}from"./chunk-T5AUOWE7.js";import{b as d,i as L}from"./chunk-Y5B6Y3WD.js";import{a as R}from"./chunk-6QVIJ7JA.js";import{a as s,b as W,c as T,d as q}from"./chunk-AODSXSC5.js";import{a as w}from"./chunk-IISQCXJ5.js";import{a as P}from"./chunk-WHQYJFDH.js";import{a as A,b as z}from"./chunk-OYWUGDKS.js";import{e as l}from"./chunk-DRYFJEFT.js";function x(o,t){z.typeOf.object("ellipsoid",o),this._ellipsoid=o,this._cameraPosition=new s,this._cameraPositionInScaledSpace=new s,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(x.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(o){let e=this._ellipsoid.transformPositionToScaledSpace(o,this._cameraPositionInScaledSpace),a=s.magnitudeSquared(e)-1;s.clone(o,this._cameraPosition),this._cameraPositionInScaledSpace=e,this._distanceToLimbInScaledSpaceSquared=a}}});var U=new s;x.prototype.isPointVisible=function(o){let e=this._ellipsoid.transformPositionToScaledSpace(o,U);return F(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};x.prototype.isScaledSpacePointVisible=function(o){return F(o,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var at=new s;x.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(o,t){let e=this._ellipsoid,a,i;return l(t)&&t<0&&e.minimumRadius>-t?(i=at,i.x=this._cameraPosition.x/(e.radii.x+t),i.y=this._cameraPosition.y/(e.radii.y+t),i.z=this._cameraPosition.z/(e.radii.z+t),a=i.x*i.x+i.y*i.y+i.z*i.z-1):(i=this._cameraPositionInScaledSpace,a=this._distanceToLimbInScaledSpaceSquared),F(o,i,a)};x.prototype.computeHorizonCullingPoint=function(o,t,e){return Q(this._ellipsoid,o,t,e)};var v=q.clone(q.UNIT_SPHERE);x.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(o,t,e,a){let i=Z(this._ellipsoid,e,v);return Q(i,o,t,a)};x.prototype.computeHorizonCullingPointFromVertices=function(o,t,e,a,i){return J(this._ellipsoid,o,t,e,a,i)};x.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(o,t,e,a,i,c){let n=Z(this._ellipsoid,i,v);return J(n,o,t,e,a,c)};var nt=[];x.prototype.computeHorizonCullingPointFromRectangle=function(o,t,e){z.typeOf.object("rectangle",o);let a=L.subsample(o,t,0,nt),i=j.fromPoints(a);if(!(s.magnitude(i.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(i.center,a,e)};var st=new s;function Z(o,t,e){if(l(t)&&t<0&&o.minimumRadius>-t){let a=s.fromElements(o.radii.x+t,o.radii.y+t,o.radii.z+t,st);o=q.fromCartesian3(a,e)}return o}function Q(o,t,e,a){z.typeOf.object("directionToPoint",t),z.defined("positions",e),l(a)||(a=new s);let i=Y(o,t),c=0;for(let n=0,r=e.length;n<r;++n){let m=e[n],h=K(o,m,i);if(h<0)return;c=Math.max(c,h)}return X(i,c,a)}var M=new s;function J(o,t,e,a,i,c){z.typeOf.object("directionToPoint",t),z.defined("vertices",e),z.typeOf.number("stride",a),l(c)||(c=new s),a=P(a,3),i=P(i,s.ZERO);let n=Y(o,t),r=0;for(let m=0,h=e.length;m<h;m+=a){M.x=e[m]+i.x,M.y=e[m+1]+i.y,M.z=e[m+2]+i.z;let u=K(o,M,n);if(u<0)return;r=Math.max(r,u)}return X(n,r,c)}function F(o,t,e){let a=t,i=e,c=s.subtract(o,a,U),n=-s.dot(c,a);return!(i<0?n>0:n>i&&n*n/s.magnitudeSquared(c)>i)}var ct=new s,rt=new s;function K(o,t,e){let a=o.transformPositionToScaledSpace(t,ct),i=s.magnitudeSquared(a),c=Math.sqrt(i),n=s.divideByScalar(a,c,rt);i=Math.max(1,i),c=Math.max(1,c);let r=s.dot(n,e),m=s.magnitude(s.cross(n,e,n)),h=1/c,u=Math.sqrt(i-1)*h;return 1/(r*h-m*u)}function X(o,t,e){if(!(t<=0||t===1/0||t!==t))return s.multiplyByScalar(o,t,e)}var D=new s;function Y(o,t){return s.equals(t,s.ZERO)?t:(o.transformPositionToScaledSpace(t,D),s.normalize(D,D))}var Pt=x;var O={};O.getHeight=function(o,t,e){if(!Number.isFinite(t))throw new A("scale must be a finite number.");if(!Number.isFinite(e))throw new A("relativeHeight must be a finite number.");return(o-e)*t+e};var mt=new W;O.getPosition=function(o,t,e,a,i){let c=t.cartesianToCartographic(o,mt);if(!l(c))return s.clone(o,i);let n=O.getHeight(c.height,e,a);return s.fromRadians(c.longitude,c.latitude,n,t,i)};var $=O;var dt={NONE:0,BITS12:1},S=Object.freeze(dt);var C=new s,lt=new s,f=new T,V=new d,ht=new d,pt=Math.pow(2,12);function p(o,t,e,a,i,c,n,r,m,h){let u=S.NONE,g,N;if(l(t)&&l(e)&&l(a)&&l(i)){let E=t.minimum,I=t.maximum,_=s.subtract(I,E,lt),tt=a-e;Math.max(s.maximumComponent(_),tt)<pt-1?u=S.BITS12:u=S.NONE,g=d.inverseTransformation(i,new d);let ot=s.negate(E,C);d.multiply(d.fromTranslation(ot,V),g,g);let b=C;b.x=1/_.x,b.y=1/_.y,b.z=1/_.z,d.multiply(d.fromScale(b,V),g,g),N=d.clone(i),d.setTranslation(N,s.ZERO,N),i=d.clone(i,new d);let et=d.fromTranslation(E,V),it=d.fromScale(_,ht),k=d.multiply(et,it,V);d.multiply(i,k,i),d.multiply(N,k,N)}this.quantization=u,this.minimumHeight=e,this.maximumHeight=a,this.center=s.clone(o),this.toScaledENU=g,this.fromScaledENU=i,this.matrix=N,this.hasVertexNormals=c,this.hasWebMercatorT=P(n,!1),this.hasGeodeticSurfaceNormals=P(r,!1),this.exaggeration=P(m,1),this.exaggerationRelativeHeight=P(h,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}p.prototype.encode=function(o,t,e,a,i,c,n,r){let m=a.x,h=a.y;if(this.quantization===S.BITS12){e=d.multiplyByPoint(this.toScaledENU,e,C),e.x=w.clamp(e.x,0,1),e.y=w.clamp(e.y,0,1),e.z=w.clamp(e.z,0,1);let u=this.maximumHeight-this.minimumHeight,g=w.clamp((i-this.minimumHeight)/u,0,1);T.fromElements(e.x,e.y,f);let N=y.compressTextureCoordinates(f);T.fromElements(e.z,g,f);let E=y.compressTextureCoordinates(f);T.fromElements(m,h,f);let I=y.compressTextureCoordinates(f);if(o[t++]=N,o[t++]=E,o[t++]=I,this.hasWebMercatorT){T.fromElements(n,0,f);let _=y.compressTextureCoordinates(f);o[t++]=_}}else s.subtract(e,this.center,C),o[t++]=C.x,o[t++]=C.y,o[t++]=C.z,o[t++]=i,o[t++]=m,o[t++]=h,this.hasWebMercatorT&&(o[t++]=n);return this.hasVertexNormals&&(o[t++]=y.octPackFloat(c)),this.hasGeodeticSurfaceNormals&&(o[t++]=r.x,o[t++]=r.y,o[t++]=r.z),t};var ut=new s,B=new s;p.prototype.addGeodeticSurfaceNormals=function(o,t,e){if(this.hasGeodeticSurfaceNormals)return;let a=this.stride,i=o.length/a;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let c=this.stride;for(let n=0;n<i;n++){for(let u=0;u<a;u++){let g=n*a+u,N=n*c+u;t[N]=o[g]}let r=this.decodePosition(t,n,ut),m=e.geodeticSurfaceNormal(r,B),h=n*c+this._offsetGeodeticSurfaceNormal;t[h]=m.x,t[h+1]=m.y,t[h+2]=m.z}};p.prototype.removeGeodeticSurfaceNormals=function(o,t){if(!this.hasGeodeticSurfaceNormals)return;let e=this.stride,a=o.length/e;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let i=this.stride;for(let c=0;c<a;c++)for(let n=0;n<i;n++){let r=c*e+n,m=c*i+n;t[m]=o[r]}};p.prototype.decodePosition=function(o,t,e){if(l(e)||(e=new s),t*=this.stride,this.quantization===S.BITS12){let a=y.decompressTextureCoordinates(o[t],f);e.x=a.x,e.y=a.y;let i=y.decompressTextureCoordinates(o[t+1],f);return e.z=i.x,d.multiplyByPoint(this.fromScaledENU,e,e)}return e.x=o[t],e.y=o[t+1],e.z=o[t+2],s.add(e,this.center,e)};p.prototype.getExaggeratedPosition=function(o,t,e){e=this.decodePosition(o,t,e);let a=this.exaggeration,i=this.exaggerationRelativeHeight;if(a!==1&&this.hasGeodeticSurfaceNormals){let n=this.decodeGeodeticSurfaceNormal(o,t,B),r=this.decodeHeight(o,t),m=$.getHeight(r,a,i)-r;e.x+=n.x*m,e.y+=n.y*m,e.z+=n.z*m}return e};p.prototype.decodeTextureCoordinates=function(o,t,e){return l(e)||(e=new T),t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+2],e):T.fromElements(o[t+4],o[t+5],e)};p.prototype.decodeHeight=function(o,t){return t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+1],f).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:o[t+3]};p.prototype.decodeWebMercatorT=function(o,t){return t*=this.stride,this.quantization===S.BITS12?y.decompressTextureCoordinates(o[t+3],f).x:o[t+6]};p.prototype.getOctEncodedNormal=function(o,t,e){t=t*this.stride+this._offsetVertexNormal;let a=o[t]/256,i=Math.floor(a),c=(a-i)*256;return T.fromElements(i,c,e)};p.prototype.decodeGeodeticSurfaceNormal=function(o,t,e){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,e.x=o[t],e.y=o[t+1],e.z=o[t+2],e};p.prototype._calculateStrideAndOffsets=function(){let o=0;switch(this.quantization){case S.BITS12:o+=3;break;default:o+=6}this.hasWebMercatorT&&(o+=1),this.hasVertexNormals&&(this._offsetVertexNormal=o,o+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=o,o+=3),this.stride=o};var G={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},H={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};p.prototype.getAttributes=function(o){let t=R.FLOAT,e=R.getSizeInBytes(t),a=this.stride*e,i=0,c=[];function n(r,m){c.push({index:r,vertexBuffer:o,componentDatatype:t,componentsPerAttribute:m,offsetInBytes:i,strideInBytes:a}),i+=m*e}if(this.quantization===S.NONE){n(G.position3DAndHeight,4);let r=2;r+=this.hasWebMercatorT?1:0,r+=this.hasVertexNormals?1:0,n(G.textureCoordAndEncodedNormals,r),this.hasGeodeticSurfaceNormals&&n(G.geodeticSurfaceNormal,3)}else{let r=this.hasWebMercatorT||this.hasVertexNormals,m=this.hasWebMercatorT&&this.hasVertexNormals;n(H.compressed0,r?4:3),m&&n(H.compressed1,1),this.hasGeodeticSurfaceNormals&&n(H.geodeticSurfaceNormal,3)}return c};p.prototype.getAttributeLocations=function(){return this.quantization===S.NONE?G:H};p.clone=function(o,t){if(l(o))return l(t)||(t=new p),t.quantization=o.quantization,t.minimumHeight=o.minimumHeight,t.maximumHeight=o.maximumHeight,t.center=s.clone(o.center),t.toScaledENU=d.clone(o.toScaledENU),t.fromScaledENU=d.clone(o.fromScaledENU),t.matrix=d.clone(o.matrix),t.hasVertexNormals=o.hasVertexNormals,t.hasWebMercatorT=o.hasWebMercatorT,t.hasGeodeticSurfaceNormals=o.hasGeodeticSurfaceNormals,t.exaggeration=o.exaggeration,t.exaggerationRelativeHeight=o.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var Wt=p;export{Pt as a,Wt as b}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-5NCMUEUX.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-5NCMUEUX.js new file mode 100644 index 000000000..44fa94518 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-5NCMUEUX.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as W}from"./chunk-6UMNSGJM.js";import{a as Z}from"./chunk-T53UE6JF.js";import{a as X}from"./chunk-RYO6NY7F.js";import{b as K,c as Q,d as V}from"./chunk-2HSPJH3C.js";import{d as H}from"./chunk-T5AUOWE7.js";import{a as U}from"./chunk-6QVIJ7JA.js";import{a as r,d as J}from"./chunk-AODSXSC5.js";import{a as B}from"./chunk-IISQCXJ5.js";import{a as u}from"./chunk-WHQYJFDH.js";import{a as P}from"./chunk-OYWUGDKS.js";import{e as T}from"./chunk-DRYFJEFT.js";var ii=new r(1,1,1),S=Math.cos,q=Math.sin;function x(t){t=u(t,u.EMPTY_OBJECT);let o=u(t.radii,ii),n=u(t.innerRadii,o),k=u(t.minimumClock,0),w=u(t.maximumClock,B.TWO_PI),d=u(t.minimumCone,0),l=u(t.maximumCone,B.PI),s=Math.round(u(t.stackPartitions,10)),A=Math.round(u(t.slicePartitions,8)),m=Math.round(u(t.subdivisions,128));if(s<1)throw new P("options.stackPartitions cannot be less than 1");if(A<0)throw new P("options.slicePartitions cannot be less than 0");if(m<0)throw new P("options.subdivisions must be greater than or equal to zero.");if(T(t.offsetAttribute)&&t.offsetAttribute===W.TOP)throw new P("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._radii=r.clone(o),this._innerRadii=r.clone(n),this._minimumClock=k,this._maximumClock=w,this._minimumCone=d,this._maximumCone=l,this._stackPartitions=s,this._slicePartitions=A,this._subdivisions=m,this._offsetAttribute=t.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}x.packedLength=2*r.packedLength+8;x.pack=function(t,o,n){if(!T(t))throw new P("value is required");if(!T(o))throw new P("array is required");return n=u(n,0),r.pack(t._radii,o,n),n+=r.packedLength,r.pack(t._innerRadii,o,n),n+=r.packedLength,o[n++]=t._minimumClock,o[n++]=t._maximumClock,o[n++]=t._minimumCone,o[n++]=t._maximumCone,o[n++]=t._stackPartitions,o[n++]=t._slicePartitions,o[n++]=t._subdivisions,o[n]=u(t._offsetAttribute,-1),o};var $=new r,G=new r,b={radii:$,innerRadii:G,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};x.unpack=function(t,o,n){if(!T(t))throw new P("array is required");o=u(o,0);let k=r.unpack(t,o,$);o+=r.packedLength;let w=r.unpack(t,o,G);o+=r.packedLength;let d=t[o++],l=t[o++],s=t[o++],A=t[o++],m=t[o++],f=t[o++],E=t[o++],h=t[o];return T(n)?(n._radii=r.clone(k,n._radii),n._innerRadii=r.clone(w,n._innerRadii),n._minimumClock=d,n._maximumClock=l,n._minimumCone=s,n._maximumCone=A,n._stackPartitions=m,n._slicePartitions=f,n._subdivisions=E,n._offsetAttribute=h===-1?void 0:h,n):(b.minimumClock=d,b.maximumClock=l,b.minimumCone=s,b.maximumCone=A,b.stackPartitions=m,b.slicePartitions=f,b.subdivisions=E,b.offsetAttribute=h===-1?void 0:h,new x(b))};x.createGeometry=function(t){let o=t._radii;if(o.x<=0||o.y<=0||o.z<=0)return;let n=t._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let k=t._minimumClock,w=t._maximumClock,d=t._minimumCone,l=t._maximumCone,s=t._subdivisions,A=J.fromCartesian3(o),m=t._slicePartitions+1,f=t._stackPartitions+1;m=Math.round(m*Math.abs(w-k)/B.TWO_PI),f=Math.round(f*Math.abs(l-d)/B.PI),m<2&&(m=2),f<2&&(f=2);let E=0,h=1,L=n.x!==o.x||n.y!==o.y||n.z!==o.z,Y=!1,j=!1;L&&(h=2,d>0&&(Y=!0,E+=m),l<Math.PI&&(j=!0,E+=m));let y=s*h*(f+m),a=new Float64Array(y*3),g=2*(y+E-(m+f)*h),_=Z.createTypedArray(y,g),i,e,v,z,c=0,C=new Array(f),O=new Array(f);for(i=0;i<f;i++)z=d+i*(l-d)/(f-1),C[i]=q(z),O[i]=S(z);let M=new Array(s),R=new Array(s);for(i=0;i<s;i++)v=k+i*(w-k)/(s-1),M[i]=q(v),R[i]=S(v);for(i=0;i<f;i++)for(e=0;e<s;e++)a[c++]=o.x*C[i]*R[e],a[c++]=o.y*C[i]*M[e],a[c++]=o.z*O[i];if(L)for(i=0;i<f;i++)for(e=0;e<s;e++)a[c++]=n.x*C[i]*R[e],a[c++]=n.y*C[i]*M[e],a[c++]=n.z*O[i];for(C.length=s,O.length=s,i=0;i<s;i++)z=d+i*(l-d)/(s-1),C[i]=q(z),O[i]=S(z);for(M.length=m,R.length=m,i=0;i<m;i++)v=k+i*(w-k)/(m-1),M[i]=q(v),R[i]=S(v);for(i=0;i<s;i++)for(e=0;e<m;e++)a[c++]=o.x*C[i]*R[e],a[c++]=o.y*C[i]*M[e],a[c++]=o.z*O[i];if(L)for(i=0;i<s;i++)for(e=0;e<m;e++)a[c++]=n.x*C[i]*R[e],a[c++]=n.y*C[i]*M[e],a[c++]=n.z*O[i];for(c=0,i=0;i<f*h;i++){let p=i*s;for(e=0;e<s-1;e++)_[c++]=p+e,_[c++]=p+e+1}let D=f*s*h;for(i=0;i<m;i++)for(e=0;e<s-1;e++)_[c++]=D+i+e*m,_[c++]=D+i+(e+1)*m;if(L)for(D=f*s*h+m*s,i=0;i<m;i++)for(e=0;e<s-1;e++)_[c++]=D+i+e*m,_[c++]=D+i+(e+1)*m;if(L){let p=f*s*h,N=p+s*m;if(Y)for(i=0;i<m;i++)_[c++]=p+i,_[c++]=N+i;if(j)for(p+=s*m-m,N+=s*m-m,i=0;i<m;i++)_[c++]=p+i,_[c++]=N+i}let F=new X({position:new V({componentDatatype:U.DOUBLE,componentsPerAttribute:3,values:a})});if(T(t._offsetAttribute)){let p=a.length,N=t._offsetAttribute===W.NONE?0:1,I=new Uint8Array(p/3).fill(N);F.applyOffset=new V({componentDatatype:U.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}return new Q({attributes:F,indices:_,primitiveType:K.LINES,boundingSphere:H.fromEllipsoid(A),offsetAttribute:t._offsetAttribute})};var Ci=x;export{Ci as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6A5E2WLP.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6A5E2WLP.js new file mode 100644 index 000000000..e7eb5b131 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6A5E2WLP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as tt}from"./chunk-E5APRSR6.js";import{a as At}from"./chunk-7GU2ORNB.js";import{a as yt}from"./chunk-UBAKWGRR.js";import{a as G}from"./chunk-6UMNSGJM.js";import{a as z}from"./chunk-QNEABTP2.js";import{a as at}from"./chunk-T53UE6JF.js";import{a as ht}from"./chunk-RYO6NY7F.js";import{b as mt,c as st,d as S}from"./chunk-2HSPJH3C.js";import{a as dt,d as rt}from"./chunk-T5AUOWE7.js";import{f as it,i as bt}from"./chunk-Y5B6Y3WD.js";import{a as F}from"./chunk-6QVIJ7JA.js";import{a,b as _t,c as W,d as v,e as R}from"./chunk-AODSXSC5.js";import{a as I}from"./chunk-IISQCXJ5.js";import{a as T}from"./chunk-WHQYJFDH.js";import{a as nt,b as H}from"./chunk-OYWUGDKS.js";import{e as K}from"./chunk-DRYFJEFT.js";var et=new a,pt=new a,xt=new a,wt=new a,w=new W,Mt=new R,Vt=new R,gt=new it,Tt=new a,Nt=new a,Et=new a,lt=new _t,Pt=new a,Ft=new W,St=new W;function Ot(o,e,t){let n=e.vertexFormat,s=e.center,i=e.semiMajorAxis,r=e.semiMinorAxis,f=e.ellipsoid,h=e.stRotation,E=t?o.length/3*2:o.length/3,g=e.shadowVolume,c=n.st?new Float32Array(E*2):void 0,l=n.normal?new Float32Array(E*3):void 0,A=n.tangent?new Float32Array(E*3):void 0,x=n.bitangent?new Float32Array(E*3):void 0,O=g?new Float32Array(E*3):void 0,B=0,b=Tt,M=Nt,d=Et,_=new dt(f),L=_.project(f.cartesianToCartographic(s,lt),Pt),J=f.scaleToGeodeticSurface(s,et);f.geodeticSurfaceNormal(J,J);let Z=Mt,q=Vt;if(h!==0){let m=it.fromAxisAngle(J,h,gt);Z=R.fromQuaternion(m,Z),m=it.fromAxisAngle(J,-h,gt),q=R.fromQuaternion(m,q)}else Z=R.clone(R.IDENTITY,Z),q=R.clone(R.IDENTITY,q);let k=W.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Ft),Q=W.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,St),j=o.length,y=t?j:0,p=y/3*2;for(let m=0;m<j;m+=3){let u=m+1,N=m+2,D=a.fromArray(o,m,et);if(n.st){let P=R.multiplyByVector(Z,D,pt),C=_.project(f.cartesianToCartographic(P,lt),xt);a.subtract(C,L,C),w.x=(C.x+i)/(2*i),w.y=(C.y+r)/(2*r),k.x=Math.min(w.x,k.x),k.y=Math.min(w.y,k.y),Q.x=Math.max(w.x,Q.x),Q.y=Math.max(w.y,Q.y),t&&(c[B+p]=w.x,c[B+1+p]=w.y),c[B++]=w.x,c[B++]=w.y}(n.normal||n.tangent||n.bitangent||g)&&(b=f.geodeticSurfaceNormal(D,b),g&&(O[m+y]=-b.x,O[u+y]=-b.y,O[N+y]=-b.z),(n.normal||n.tangent||n.bitangent)&&((n.tangent||n.bitangent)&&(M=a.normalize(a.cross(a.UNIT_Z,b,M),M),R.multiplyByVector(q,M,M)),n.normal&&(l[m]=b.x,l[u]=b.y,l[N]=b.z,t&&(l[m+y]=-b.x,l[u+y]=-b.y,l[N+y]=-b.z)),n.tangent&&(A[m]=M.x,A[u]=M.y,A[N]=M.z,t&&(A[m+y]=-M.x,A[u+y]=-M.y,A[N+y]=-M.z)),n.bitangent&&(d=a.normalize(a.cross(b,M,d),d),x[m]=d.x,x[u]=d.y,x[N]=d.z,t&&(x[m+y]=d.x,x[u+y]=d.y,x[N+y]=d.z))))}if(n.st){j=c.length;for(let m=0;m<j;m+=2)c[m]=(c[m]-k.x)/(Q.x-k.x),c[m+1]=(c[m+1]-k.y)/(Q.y-k.y)}let V=new ht;if(n.position){let m=tt.raisePositionsToHeight(o,e,t);V.position=new S({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:m})}if(n.st&&(V.st=new S({componentDatatype:F.FLOAT,componentsPerAttribute:2,values:c})),n.normal&&(V.normal=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:l})),n.tangent&&(V.tangent=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:A})),n.bitangent&&(V.bitangent=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:x})),g&&(V.extrudeDirection=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:O})),t&&K(e.offsetAttribute)){let m=new Uint8Array(E);if(e.offsetAttribute===G.TOP)m=m.fill(1,0,E/2);else{let u=e.offsetAttribute===G.NONE?0:1;m=m.fill(u)}V.applyOffset=new S({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}return V}function jt(o){let e=new Array(12*(o*(o+1))-6),t=0,n,s,i,r,f;for(n=0,i=1,r=0;r<3;r++)e[t++]=i++,e[t++]=n,e[t++]=i;for(r=2;r<o+1;++r){for(i=r*(r+1)-1,n=(r-1)*r-1,e[t++]=i++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=i++,e[t++]=n,e[t++]=i}for(s=o*2,++i,++n,r=0;r<s-1;++r)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;for(e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n++,e[t++]=n,++n,r=o-1;r>1;--r){for(e[t++]=n++,e[t++]=n,e[t++]=i,s=2*r,f=0;f<s-1;++f)e[t++]=i,e[t++]=n++,e[t++]=n,e[t++]=i++,e[t++]=n,e[t++]=i;e[t++]=n++,e[t++]=n++,e[t++]=i++}for(r=0;r<3;r++)e[t++]=n++,e[t++]=n,e[t++]=i;return e}var X=new a;function Dt(o){let e=o.center;X=a.multiplyByScalar(o.ellipsoid.geodeticSurfaceNormal(e,X),o.height,X),X=a.add(e,X,X);let t=new rt(X,o.semiMajorAxis),n=tt.computeEllipsePositions(o,!0,!1),s=n.positions,i=n.numPts,r=Ot(s,o,!1),f=jt(i);return f=at.createTypedArray(s.length/3,f),{boundingSphere:t,attributes:r,indices:f}}function vt(o,e){let t=e.vertexFormat,n=e.center,s=e.semiMajorAxis,i=e.semiMinorAxis,r=e.ellipsoid,f=e.height,h=e.extrudedHeight,E=e.stRotation,g=o.length/3*2,c=new Float64Array(g*3),l=t.st?new Float32Array(g*2):void 0,A=t.normal?new Float32Array(g*3):void 0,x=t.tangent?new Float32Array(g*3):void 0,O=t.bitangent?new Float32Array(g*3):void 0,B=e.shadowVolume,b=B?new Float32Array(g*3):void 0,M=0,d=Tt,_=Nt,L=Et,J=new dt(r),Z=J.project(r.cartesianToCartographic(n,lt),Pt),q=r.scaleToGeodeticSurface(n,et);r.geodeticSurfaceNormal(q,q);let k=it.fromAxisAngle(q,E,gt),Q=R.fromQuaternion(k,Mt),j=W.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Ft),y=W.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,St),p=o.length,V=p/3*2;for(let u=0;u<p;u+=3){let N=u+1,D=u+2,P=a.fromArray(o,u,et),C;if(t.st){let ot=R.multiplyByVector(Q,P,pt),$=J.project(r.cartesianToCartographic(ot,lt),xt);a.subtract($,Z,$),w.x=($.x+s)/(2*s),w.y=($.y+i)/(2*i),j.x=Math.min(w.x,j.x),j.y=Math.min(w.y,j.y),y.x=Math.max(w.x,y.x),y.y=Math.max(w.y,y.y),l[M+V]=w.x,l[M+1+V]=w.y,l[M++]=w.x,l[M++]=w.y}P=r.scaleToGeodeticSurface(P,P),C=a.clone(P,pt),d=r.geodeticSurfaceNormal(P,d),B&&(b[u+p]=-d.x,b[N+p]=-d.y,b[D+p]=-d.z);let ct=a.multiplyByScalar(d,f,wt);if(P=a.add(P,ct,P),ct=a.multiplyByScalar(d,h,ct),C=a.add(C,ct,C),t.position&&(c[u+p]=C.x,c[N+p]=C.y,c[D+p]=C.z,c[u]=P.x,c[N]=P.y,c[D]=P.z),t.normal||t.tangent||t.bitangent){L=a.clone(d,L);let ot=a.fromArray(o,(u+3)%p,wt);a.subtract(ot,P,ot);let $=a.subtract(C,P,xt);d=a.normalize(a.cross($,ot,d),d),t.normal&&(A[u]=d.x,A[N]=d.y,A[D]=d.z,A[u+p]=d.x,A[N+p]=d.y,A[D+p]=d.z),t.tangent&&(_=a.normalize(a.cross(L,d,_),_),x[u]=_.x,x[N]=_.y,x[D]=_.z,x[u+p]=_.x,x[u+1+p]=_.y,x[u+2+p]=_.z),t.bitangent&&(O[u]=L.x,O[N]=L.y,O[D]=L.z,O[u+p]=L.x,O[N+p]=L.y,O[D+p]=L.z)}}if(t.st){p=l.length;for(let u=0;u<p;u+=2)l[u]=(l[u]-j.x)/(y.x-j.x),l[u+1]=(l[u+1]-j.y)/(y.y-j.y)}let m=new ht;if(t.position&&(m.position=new S({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:c})),t.st&&(m.st=new S({componentDatatype:F.FLOAT,componentsPerAttribute:2,values:l})),t.normal&&(m.normal=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(m.tangent=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:x})),t.bitangent&&(m.bitangent=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:O})),B&&(m.extrudeDirection=new S({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:b})),K(e.offsetAttribute)){let u=new Uint8Array(g);if(e.offsetAttribute===G.TOP)u=u.fill(1,0,g/2);else{let N=e.offsetAttribute===G.NONE?0:1;u=u.fill(N)}m.applyOffset=new S({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:u})}return m}function zt(o){let e=o.length/3,t=at.createTypedArray(e,e*6),n=0;for(let s=0;s<e;s++){let i=s,r=s+e,f=(i+1)%e,h=f+e;t[n++]=i,t[n++]=r,t[n++]=f,t[n++]=f,t[n++]=r,t[n++]=h}return t}var ut=new rt,ft=new rt;function Bt(o){let e=o.center,t=o.ellipsoid,n=o.semiMajorAxis,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,et),o.height,et);ut.center=a.add(e,s,ut.center),ut.radius=n,s=a.multiplyByScalar(t.geodeticSurfaceNormal(e,s),o.extrudedHeight,s),ft.center=a.add(e,s,ft.center),ft.radius=n;let i=tt.computeEllipsePositions(o,!0,!0),r=i.positions,f=i.numPts,h=i.outerPositions,E=rt.union(ut,ft),g=Ot(r,o,!0),c=jt(f),l=c.length;c.length=l*2;let A=r.length/3;for(let _=0;_<l;_+=3)c[_+l]=c[_+2]+A,c[_+1+l]=c[_+1]+A,c[_+2+l]=c[_]+A;let x=at.createTypedArray(A*2/3,c),O=new st({attributes:g,indices:x,primitiveType:mt.TRIANGLES}),B=vt(h,o);c=zt(h);let b=at.createTypedArray(h.length*2/3,c),M=new st({attributes:B,indices:b,primitiveType:mt.TRIANGLES}),d=yt.combineInstances([new At({geometry:O}),new At({geometry:M})]);return{boundingSphere:E,attributes:d[0].attributes,indices:d[0].indices}}function Ct(o,e,t,n,s,i,r){let h=tt.computeEllipsePositions({center:o,semiMajorAxis:e,semiMinorAxis:t,rotation:n,granularity:s},!1,!0).outerPositions,E=h.length/3,g=new Array(E);for(let l=0;l<E;++l)g[l]=a.fromArray(h,l*3);let c=bt.fromCartesianArray(g,i,r);return c.width>I.PI&&(c.north=c.north>0?I.PI_OVER_TWO-I.EPSILON7:c.north,c.south=c.south<0?I.EPSILON7-I.PI_OVER_TWO:c.south,c.east=I.PI,c.west=-I.PI),c}function U(o){o=T(o,T.EMPTY_OBJECT);let e=o.center,t=T(o.ellipsoid,v.default),n=o.semiMajorAxis,s=o.semiMinorAxis,i=T(o.granularity,I.RADIANS_PER_DEGREE),r=T(o.vertexFormat,z.DEFAULT);if(H.defined("options.center",e),H.typeOf.number("options.semiMajorAxis",n),H.typeOf.number("options.semiMinorAxis",s),n<s)throw new nt("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(i<=0)throw new nt("granularity must be greater than zero.");let f=T(o.height,0),h=T(o.extrudedHeight,f);this._center=a.clone(e),this._semiMajorAxis=n,this._semiMinorAxis=s,this._ellipsoid=v.clone(t),this._rotation=T(o.rotation,0),this._stRotation=T(o.stRotation,0),this._height=Math.max(h,f),this._granularity=i,this._vertexFormat=z.clone(r),this._extrudedHeight=Math.min(h,f),this._shadowVolume=T(o.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=o.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}U.packedLength=a.packedLength+v.packedLength+z.packedLength+9;U.pack=function(o,e,t){return H.defined("value",o),H.defined("array",e),t=T(t,0),a.pack(o._center,e,t),t+=a.packedLength,v.pack(o._ellipsoid,e,t),t+=v.packedLength,z.pack(o._vertexFormat,e,t),t+=z.packedLength,e[t++]=o._semiMajorAxis,e[t++]=o._semiMinorAxis,e[t++]=o._rotation,e[t++]=o._stRotation,e[t++]=o._height,e[t++]=o._granularity,e[t++]=o._extrudedHeight,e[t++]=o._shadowVolume?1:0,e[t]=T(o._offsetAttribute,-1),e};var Rt=new a,It=new v,Lt=new z,Y={center:Rt,ellipsoid:It,vertexFormat:Lt,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};U.unpack=function(o,e,t){H.defined("array",o),e=T(e,0);let n=a.unpack(o,e,Rt);e+=a.packedLength;let s=v.unpack(o,e,It);e+=v.packedLength;let i=z.unpack(o,e,Lt);e+=z.packedLength;let r=o[e++],f=o[e++],h=o[e++],E=o[e++],g=o[e++],c=o[e++],l=o[e++],A=o[e++]===1,x=o[e];return K(t)?(t._center=a.clone(n,t._center),t._ellipsoid=v.clone(s,t._ellipsoid),t._vertexFormat=z.clone(i,t._vertexFormat),t._semiMajorAxis=r,t._semiMinorAxis=f,t._rotation=h,t._stRotation=E,t._height=g,t._granularity=c,t._extrudedHeight=l,t._shadowVolume=A,t._offsetAttribute=x===-1?void 0:x,t):(Y.height=g,Y.extrudedHeight=l,Y.granularity=c,Y.stRotation=E,Y.rotation=h,Y.semiMajorAxis=r,Y.semiMinorAxis=f,Y.shadowVolume=A,Y.offsetAttribute=x===-1?void 0:x,new U(Y))};U.computeRectangle=function(o,e){o=T(o,T.EMPTY_OBJECT);let t=o.center,n=T(o.ellipsoid,v.default),s=o.semiMajorAxis,i=o.semiMinorAxis,r=T(o.granularity,I.RADIANS_PER_DEGREE),f=T(o.rotation,0);if(H.defined("options.center",t),H.typeOf.number("options.semiMajorAxis",s),H.typeOf.number("options.semiMinorAxis",i),s<i)throw new nt("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new nt("granularity must be greater than zero.");return Ct(t,s,i,f,r,n,e)};U.createGeometry=function(o){if(o._semiMajorAxis<=0||o._semiMinorAxis<=0)return;let e=o._height,t=o._extrudedHeight,n=!I.equalsEpsilon(e,t,0,I.EPSILON2);o._center=o._ellipsoid.scaleToGeodeticSurface(o._center,o._center);let s={center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:o._ellipsoid,rotation:o._rotation,height:e,granularity:o._granularity,vertexFormat:o._vertexFormat,stRotation:o._stRotation},i;if(n)s.extrudedHeight=t,s.shadowVolume=o._shadowVolume,s.offsetAttribute=o._offsetAttribute,i=Bt(s);else if(i=Dt(s),K(o._offsetAttribute)){let r=i.attributes.position.values.length,f=o._offsetAttribute===G.NONE?0:1,h=new Uint8Array(r/3).fill(f);i.attributes.applyOffset=new S({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:h})}return new st({attributes:i.attributes,indices:i.indices,primitiveType:mt.TRIANGLES,boundingSphere:i.boundingSphere,offsetAttribute:o._offsetAttribute})};U.createShadowVolume=function(o,e,t){let n=o._granularity,s=o._ellipsoid,i=e(n,s),r=t(n,s);return new U({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,ellipsoid:s,rotation:o._rotation,stRotation:o._stRotation,granularity:n,extrudedHeight:i,height:r,vertexFormat:z.POSITION_ONLY,shadowVolume:!0})};function kt(o){let e=-o._stRotation;if(e===0)return[0,0,0,1,1,0];let n=tt.computeEllipsePositions({center:o._center,semiMajorAxis:o._semiMajorAxis,semiMinorAxis:o._semiMinorAxis,rotation:o._rotation,granularity:o._granularity},!1,!0).outerPositions,s=n.length/3,i=new Array(s);for(let h=0;h<s;++h)i[h]=a.fromArray(n,h*3);let r=o._ellipsoid,f=o.rectangle;return st._textureCoordinateRotationPoints(i,e,r,f)}Object.defineProperties(U.prototype,{rectangle:{get:function(){return K(this._rectangle)||(this._rectangle=Ct(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return K(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=kt(this)),this._textureCoordinateRotationPoints}}});var de=U;export{de as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6DBAMVE2.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6DBAMVE2.js new file mode 100644 index 000000000..1a4751435 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6DBAMVE2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as y,b as P,d as k}from"./chunk-AODSXSC5.js";import{a as L}from"./chunk-IISQCXJ5.js";import{a as B}from"./chunk-WHQYJFDH.js";import{b as q}from"./chunk-OYWUGDKS.js";import{e as T}from"./chunk-DRYFJEFT.js";function Y(n){let a=n._uSquared,t=n._ellipsoid.maximumRadius,e=n._ellipsoid.minimumRadius,f=(t-e)/t,m=Math.cos(n._startHeading),_=Math.sin(n._startHeading),r=(1-f)*Math.tan(n._start.latitude),p=1/Math.sqrt(1+r*r),R=p*r,M=Math.atan2(r,m),l=p*_,U=l*l,i=1-U,A=Math.sqrt(i),c=a/4,o=c*c,h=o*c,S=o*o,u=1+c-3*o/4+5*h/4-175*S/64,C=1-c+15*o/8-35*h/8,d=1-3*c+35*o/4,g=1-5*c,w=u*M-C*Math.sin(2*M)*c/2-d*Math.sin(4*M)*o/16-g*Math.sin(6*M)*h/48-Math.sin(8*M)*5*S/512,s=n._constants;s.a=t,s.b=e,s.f=f,s.cosineHeading=m,s.sineHeading=_,s.tanU=r,s.cosineU=p,s.sineU=R,s.sigma=M,s.sineAlpha=l,s.sineSquaredAlpha=U,s.cosineSquaredAlpha=i,s.cosineAlpha=A,s.u2Over4=c,s.u4Over16=o,s.u6Over64=h,s.u8Over256=S,s.a0=u,s.a1=C,s.a2=d,s.a3=g,s.distanceRatio=w}function Z(n,a){return n*a*(4+n*(4-3*a))/16}function N(n,a,t,e,f,m,_){let r=Z(n,t);return(1-r)*n*a*(e+r*f*(_+r*m*(2*_*_-1)))}function $(n,a,t,e,f,m,_){let r=(a-t)/a,p=m-e,R=Math.atan((1-r)*Math.tan(f)),M=Math.atan((1-r)*Math.tan(_)),l=Math.cos(R),U=Math.sin(R),i=Math.cos(M),A=Math.sin(M),c=l*i,o=l*A,h=U*A,S=U*i,u=p,C=L.TWO_PI,d=Math.cos(u),g=Math.sin(u),w,s,O,H,b;do{d=Math.cos(u),g=Math.sin(u);let z=o-S*d;O=Math.sqrt(i*i*g*g+z*z),s=h+c*d,w=Math.atan2(O,s);let D;O===0?(D=0,H=1):(D=c*g/O,H=1-D*D),C=u,b=s-2*h/H,isFinite(b)||(b=0),u=p+N(r,D,H,w,O,s,b)}while(Math.abs(u-C)>L.EPSILON12);let v=H*(a*a-t*t)/(t*t),W=1+v*(4096+v*(v*(320-175*v)-768))/16384,I=v*(256+v*(v*(74-47*v)-128))/1024,F=b*b,J=I*O*(b+I*(s*(2*F-1)-I*b*(4*O*O-3)*(4*F-3)/6)/4),K=t*W*(w-J),Q=Math.atan2(i*g,o-S*d),X=Math.atan2(l*g,o*d-S);n._distance=K,n._startHeading=Q,n._endHeading=X,n._uSquared=v}var j=new y,x=new y;function V(n,a,t,e){let f=y.normalize(e.cartographicToCartesian(a,x),j),m=y.normalize(e.cartographicToCartesian(t,x),x);q.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(y.angleBetween(f,m))-Math.PI),.0125),$(n,e.maximumRadius,e.minimumRadius,a.longitude,a.latitude,t.longitude,t.latitude),n._start=P.clone(a,n._start),n._end=P.clone(t,n._end),n._start.height=0,n._end.height=0,Y(n)}function E(n,a,t){let e=B(t,k.default);this._ellipsoid=e,this._start=new P,this._end=new P,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,T(n)&&T(a)&&V(this,n,a,e)}Object.defineProperties(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return q.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return q.defined("distance",this._distance),this._startHeading}},endHeading:{get:function(){return q.defined("distance",this._distance),this._endHeading}}});E.prototype.setEndPoints=function(n,a){q.defined("start",n),q.defined("end",a),V(this,n,a,this._ellipsoid)};E.prototype.interpolateUsingFraction=function(n,a){return this.interpolateUsingSurfaceDistance(this._distance*n,a)};E.prototype.interpolateUsingSurfaceDistance=function(n,a){q.defined("distance",this._distance);let t=this._constants,e=t.distanceRatio+n/t.b,f=Math.cos(2*e),m=Math.cos(4*e),_=Math.cos(6*e),r=Math.sin(2*e),p=Math.sin(4*e),R=Math.sin(6*e),M=Math.sin(8*e),l=e*e,U=e*l,i=t.u8Over256,A=t.u2Over4,c=t.u6Over64,o=t.u4Over16,h=2*U*i*f/3+e*(1-A+7*o/4-15*c/4+579*i/64-(o-15*c/4+187*i/16)*f-(5*c/4-115*i/16)*m-29*i*_/16)+(A/2-o+71*c/32-85*i/16)*r+(5*o/16-5*c/4+383*i/96)*p-l*((c-11*i/2)*r+5*i*p/2)+(29*c/96-29*i/16)*R+539*i*M/1536,S=Math.asin(Math.sin(h)*t.cosineAlpha),u=Math.atan(t.a/t.b*Math.tan(S));h=h-t.sigma;let C=Math.cos(2*t.sigma+h),d=Math.sin(h),g=Math.cos(h),w=t.cosineU*g,s=t.sineU*d,H=Math.atan2(d*t.sineHeading,w-s*t.cosineHeading)-N(t.f,t.sineAlpha,t.cosineSquaredAlpha,h,d,g,C);return T(a)?(a.longitude=this._start.longitude+H,a.latitude=u,a.height=0,a):new P(this._start.longitude+H,u,0)};var ct=E;export{ct as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6QVIJ7JA.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6QVIJ7JA.js new file mode 100644 index 000000000..d189aa35a --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6QVIJ7JA.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as N}from"./chunk-MOE32UQS.js";import{a as i}from"./chunk-WHQYJFDH.js";import{a}from"./chunk-OYWUGDKS.js";import{e as T}from"./chunk-DRYFJEFT.js";var r={BYTE:N.BYTE,UNSIGNED_BYTE:N.UNSIGNED_BYTE,SHORT:N.SHORT,UNSIGNED_SHORT:N.UNSIGNED_SHORT,INT:N.INT,UNSIGNED_INT:N.UNSIGNED_INT,FLOAT:N.FLOAT,DOUBLE:N.DOUBLE};r.getSizeInBytes=function(n){if(!T(n))throw new a("value is required.");switch(n){case r.BYTE:return Int8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.SHORT:return Int16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.INT:return Int32Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case r.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case r.DOUBLE:return Float64Array.BYTES_PER_ELEMENT;default:throw new a("componentDatatype is not a valid value.")}};r.fromTypedArray=function(n){if(n instanceof Int8Array)return r.BYTE;if(n instanceof Uint8Array)return r.UNSIGNED_BYTE;if(n instanceof Int16Array)return r.SHORT;if(n instanceof Uint16Array)return r.UNSIGNED_SHORT;if(n instanceof Int32Array)return r.INT;if(n instanceof Uint32Array)return r.UNSIGNED_INT;if(n instanceof Float32Array)return r.FLOAT;if(n instanceof Float64Array)return r.DOUBLE;throw new a("array must be an Int8Array, Uint8Array, Int16Array, Uint16Array, Int32Array, Uint32Array, Float32Array, or Float64Array.")};r.validate=function(n){return T(n)&&(n===r.BYTE||n===r.UNSIGNED_BYTE||n===r.SHORT||n===r.UNSIGNED_SHORT||n===r.INT||n===r.UNSIGNED_INT||n===r.FLOAT||n===r.DOUBLE)};r.createTypedArray=function(n,e){if(!T(n))throw new a("componentDatatype is required.");if(!T(e))throw new a("valuesOrLength is required.");switch(n){case r.BYTE:return new Int8Array(e);case r.UNSIGNED_BYTE:return new Uint8Array(e);case r.SHORT:return new Int16Array(e);case r.UNSIGNED_SHORT:return new Uint16Array(e);case r.INT:return new Int32Array(e);case r.UNSIGNED_INT:return new Uint32Array(e);case r.FLOAT:return new Float32Array(e);case r.DOUBLE:return new Float64Array(e);default:throw new a("componentDatatype is not a valid value.")}};r.createArrayBufferView=function(n,e,E,t){if(!T(n))throw new a("componentDatatype is required.");if(!T(e))throw new a("buffer is required.");switch(E=i(E,0),t=i(t,(e.byteLength-E)/r.getSizeInBytes(n)),n){case r.BYTE:return new Int8Array(e,E,t);case r.UNSIGNED_BYTE:return new Uint8Array(e,E,t);case r.SHORT:return new Int16Array(e,E,t);case r.UNSIGNED_SHORT:return new Uint16Array(e,E,t);case r.INT:return new Int32Array(e,E,t);case r.UNSIGNED_INT:return new Uint32Array(e,E,t);case r.FLOAT:return new Float32Array(e,E,t);case r.DOUBLE:return new Float64Array(e,E,t);default:throw new a("componentDatatype is not a valid value.")}};r.fromName=function(n){switch(n){case"BYTE":return r.BYTE;case"UNSIGNED_BYTE":return r.UNSIGNED_BYTE;case"SHORT":return r.SHORT;case"UNSIGNED_SHORT":return r.UNSIGNED_SHORT;case"INT":return r.INT;case"UNSIGNED_INT":return r.UNSIGNED_INT;case"FLOAT":return r.FLOAT;case"DOUBLE":return r.DOUBLE;default:throw new a("name is not a valid value.")}};var U=Object.freeze(r);export{U as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6UMNSGJM.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6UMNSGJM.js new file mode 100644 index 000000000..1f5c47d1e --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-6UMNSGJM.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,TOP:1,ALL:2},t=Object.freeze(e);export{t as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7GU2ORNB.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7GU2ORNB.js new file mode 100644 index 000000000..21b086c82 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7GU2ORNB.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as t}from"./chunk-Y5B6Y3WD.js";import{a as r}from"./chunk-WHQYJFDH.js";import{a as m}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";function d(e){if(e=r(e,r.EMPTY_OBJECT),!i(e.geometry))throw new m("options.geometry is required.");this.geometry=e.geometry,this.modelMatrix=t.clone(r(e.modelMatrix,t.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=r(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var s=d;export{s as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7MCGOXW3.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7MCGOXW3.js new file mode 100644 index 000000000..ce9428b41 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-7MCGOXW3.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as K}from"./chunk-BSHGEEYG.js";import{a as L}from"./chunk-LNO7O274.js";import{b as v,c as J,d as Z}from"./chunk-T5AUOWE7.js";import{b as B,i as k}from"./chunk-Y5B6Y3WD.js";import{a as t,b as S,c as I,d as G,e as d}from"./chunk-AODSXSC5.js";import{a as g}from"./chunk-IISQCXJ5.js";import{a as W}from"./chunk-WHQYJFDH.js";import{a as b,b as z}from"./chunk-OYWUGDKS.js";import{e as p}from"./chunk-DRYFJEFT.js";function m(n,e){this.center=t.clone(W(n,t.ZERO)),this.halfAxes=d.clone(W(e,d.ZERO))}m.packedLength=t.packedLength+d.packedLength;m.pack=function(n,e,c){return z.typeOf.object("value",n),z.defined("array",e),c=W(c,0),t.pack(n.center,e,c),d.pack(n.halfAxes,e,c+t.packedLength),e};m.unpack=function(n,e,c){return z.defined("array",n),e=W(e,0),p(c)||(c=new m),t.unpack(n,e,c.center),d.unpack(n,e+t.packedLength,c.halfAxes),c};var Ct=new t,ut=new t,Pt=new t,xt=new t,yt=new t,At=new t,Nt=new d,Mt={unitary:new d,diagonal:new d};m.fromPoints=function(n,e){if(p(e)||(e=new m),!p(n)||n.length===0)return e.halfAxes=d.ZERO,e.center=t.ZERO,e;let c,h=n.length,r=t.clone(n[0],Ct);for(c=1;c<h;c++)t.add(r,n[c],r);let o=1/h;t.multiplyByScalar(r,o,r);let i=0,C=0,w=0,l=0,u=0,a=0,s;for(c=0;c<h;c++)s=t.subtract(n[c],r,ut),i+=s.x*s.x,C+=s.x*s.y,w+=s.x*s.z,l+=s.y*s.y,u+=s.y*s.z,a+=s.z*s.z;i*=o,C*=o,w*=o,l*=o,u*=o,a*=o;let f=Nt;f[0]=i,f[1]=C,f[2]=w,f[3]=C,f[4]=l,f[5]=u,f[6]=w,f[7]=u,f[8]=a;let A=d.computeEigenDecomposition(f,Mt),M=d.clone(A.unitary,e.halfAxes),x=d.getColumn(M,0,xt),y=d.getColumn(M,1,yt),N=d.getColumn(M,2,At),P=-Number.MAX_VALUE,O=-Number.MAX_VALUE,U=-Number.MAX_VALUE,q=Number.MAX_VALUE,R=Number.MAX_VALUE,j=Number.MAX_VALUE;for(c=0;c<h;c++)s=n[c],P=Math.max(t.dot(x,s),P),O=Math.max(t.dot(y,s),O),U=Math.max(t.dot(N,s),U),q=Math.min(t.dot(x,s),q),R=Math.min(t.dot(y,s),R),j=Math.min(t.dot(N,s),j);x=t.multiplyByScalar(x,.5*(q+P),x),y=t.multiplyByScalar(y,.5*(R+O),y),N=t.multiplyByScalar(N,.5*(j+U),N);let T=t.add(x,y,e.center);t.add(T,N,T);let E=Pt;return E.x=P-q,E.y=O-R,E.z=U-j,t.multiplyByScalar(E,.5,E),d.multiplyByScale(e.halfAxes,E,e.halfAxes),e};var nt=new t,Ot=new t;function Q(n,e,c,h,r,o,i,C,w,l,u){if(!p(r)||!p(o)||!p(i)||!p(C)||!p(w)||!p(l))throw new b("all extents (minimum/maximum X/Y/Z) are required.");p(u)||(u=new m);let a=u.halfAxes;d.setColumn(a,0,e,a),d.setColumn(a,1,c,a),d.setColumn(a,2,h,a);let s=nt;s.x=(r+o)/2,s.y=(i+C)/2,s.z=(w+l)/2;let f=Ot;f.x=(o-r)/2,f.y=(C-i)/2,f.z=(l-w)/2;let A=u.center;return s=d.multiplyByVector(a,s,s),t.add(n,s,A),d.multiplyByScale(a,f,a),u}var $=new S,bt=new t,Tt=new S,St=new S,gt=new S,Et=new S,Rt=new S,Wt=new t,H=new t,zt=new t,tt=new t,It=new t,Lt=new I,Ut=new I,qt=new I,jt=new I,Bt=new I,vt=new t,Vt=new t,_t=new t,Dt=new t,Xt=new I,kt=new t,Zt=new t,Yt=new t,Ft=new L(t.UNIT_X,0);m.fromRectangle=function(n,e,c,h,r){if(!p(n))throw new b("rectangle is required");if(n.width<0||n.width>g.TWO_PI)throw new b("Rectangle width must be between 0 and 2 * pi");if(n.height<0||n.height>g.PI)throw new b("Rectangle height must be between 0 and pi");if(p(h)&&!g.equalsEpsilon(h.radii.x,h.radii.y,g.EPSILON15))throw new b("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");e=W(e,0),c=W(c,0),h=W(h,G.default);let o,i,C,w,l,u,a;if(n.width<=g.PI){let R=k.center(n,$),j=h.cartographicToCartesian(R,bt),T=new K(j,h);a=T.plane;let E=R.longitude,ot=n.south<0&&n.north>0?0:R.latitude,st=S.fromRadians(E,n.north,c,Tt),V=S.fromRadians(n.west,n.north,c,St),it=S.fromRadians(n.west,ot,c,gt),_=S.fromRadians(n.west,n.south,c,Et),ht=S.fromRadians(E,n.south,c,Rt),ft=h.cartographicToCartesian(st,Wt),D=h.cartographicToCartesian(V,H),dt=h.cartographicToCartesian(it,zt),X=h.cartographicToCartesian(_,tt),mt=h.cartographicToCartesian(ht,It),wt=T.projectPointToNearestOnPlane(ft,Lt),Y=T.projectPointToNearestOnPlane(D,Ut),lt=T.projectPointToNearestOnPlane(dt,qt),F=T.projectPointToNearestOnPlane(X,jt),pt=T.projectPointToNearestOnPlane(mt,Bt);return o=Math.min(Y.x,lt.x,F.x),i=-o,w=Math.max(Y.y,wt.y),C=Math.min(F.y,pt.y),V.height=_.height=e,D=h.cartographicToCartesian(V,H),X=h.cartographicToCartesian(_,tt),l=Math.min(L.getPointDistance(a,D),L.getPointDistance(a,X)),u=c,Q(T.origin,T.xAxis,T.yAxis,T.zAxis,o,i,C,w,l,u,r)}let s=n.south>0,f=n.north<0,A=s?n.south:f?n.north:0,M=k.center(n,$).longitude,x=t.fromRadians(M,A,c,h,vt);x.z=0;let N=Math.abs(x.x)<g.EPSILON10&&Math.abs(x.y)<g.EPSILON10?t.UNIT_X:t.normalize(x,Vt),P=t.UNIT_Z,O=t.cross(N,P,_t);a=L.fromPointNormal(x,N,Ft);let U=t.fromRadians(M+g.PI_OVER_TWO,A,c,h,Dt);i=t.dot(L.projectPointOntoPlane(a,U,Xt),O),o=-i,w=t.fromRadians(0,n.north,f?e:c,h,kt).z,C=t.fromRadians(0,n.south,s?e:c,h,Zt).z;let q=t.fromRadians(n.east,A,c,h,Yt);return l=L.getPointDistance(a,q),u=0,Q(x,O,P,N,o,i,C,w,l,u,r)};m.fromTransformation=function(n,e){return z.typeOf.object("transformation",n),p(e)||(e=new m),e.center=B.getTranslation(n,e.center),e.halfAxes=B.getMatrix3(n,e.halfAxes),e.halfAxes=d.multiplyByScalar(e.halfAxes,.5,e.halfAxes),e};m.clone=function(n,e){if(p(n))return p(e)?(t.clone(n.center,e.center),d.clone(n.halfAxes,e.halfAxes),e):new m(n.center,n.halfAxes)};m.intersectPlane=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("plane is required.");let c=n.center,h=e.normal,r=n.halfAxes,o=h.x,i=h.y,C=h.z,w=Math.abs(o*r[d.COLUMN0ROW0]+i*r[d.COLUMN0ROW1]+C*r[d.COLUMN0ROW2])+Math.abs(o*r[d.COLUMN1ROW0]+i*r[d.COLUMN1ROW1]+C*r[d.COLUMN1ROW2])+Math.abs(o*r[d.COLUMN2ROW0]+i*r[d.COLUMN2ROW1]+C*r[d.COLUMN2ROW2]),l=t.dot(h,c)+e.distance;return l<=-w?v.OUTSIDE:l>=w?v.INSIDE:v.INTERSECTING};var at=new t,ct=new t,rt=new t,Gt=new t,et=new t,Jt=new t;m.distanceSquaredTo=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("cartesian is required.");let c=t.subtract(e,n.center,nt),h=n.halfAxes,r=d.getColumn(h,0,at),o=d.getColumn(h,1,ct),i=d.getColumn(h,2,rt),C=t.magnitude(r),w=t.magnitude(o),l=t.magnitude(i),u=!0,a=!0,s=!0;C>0?t.divideByScalar(r,C,r):u=!1,w>0?t.divideByScalar(o,w,o):a=!1,l>0?t.divideByScalar(i,l,i):s=!1;let f=!u+!a+!s,A,M,x;if(f===1){let O=r;A=o,M=i,a?s||(O=i,M=r):(O=o,A=r),x=t.cross(A,M,et),O===r?r=x:O===o?o=x:O===i&&(i=x)}else if(f===2){A=r,a?A=o:s&&(A=i);let O=t.UNIT_Y;O.equalsEpsilon(A,g.EPSILON3)&&(O=t.UNIT_X),M=t.cross(A,O,Gt),t.normalize(M,M),x=t.cross(A,M,et),t.normalize(x,x),A===r?(o=M,i=x):A===o?(i=M,r=x):A===i&&(r=M,o=x)}else f===3&&(r=t.UNIT_X,o=t.UNIT_Y,i=t.UNIT_Z);let y=Jt;y.x=t.dot(c,r),y.y=t.dot(c,o),y.z=t.dot(c,i);let N=0,P;return y.x<-C?(P=y.x+C,N+=P*P):y.x>C&&(P=y.x-C,N+=P*P),y.y<-w?(P=y.y+w,N+=P*P):y.y>w&&(P=y.y-w,N+=P*P),y.z<-l?(P=y.z+l,N+=P*P):y.z>l&&(P=y.z-l,N+=P*P),N};var Kt=new t,Qt=new t;m.computePlaneDistances=function(n,e,c,h){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("position is required.");if(!p(c))throw new b("direction is required.");p(h)||(h=new J);let r=Number.POSITIVE_INFINITY,o=Number.NEGATIVE_INFINITY,i=n.center,C=n.halfAxes,w=d.getColumn(C,0,at),l=d.getColumn(C,1,ct),u=d.getColumn(C,2,rt),a=t.add(w,l,Kt);t.add(a,u,a),t.add(a,i,a);let s=t.subtract(a,e,Qt),f=t.dot(c,s);return r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.add(i,w,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.add(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.add(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.subtract(a,l,a),t.add(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),t.subtract(i,w,a),t.subtract(a,l,a),t.subtract(a,u,a),t.subtract(a,e,s),f=t.dot(c,s),r=Math.min(f,r),o=Math.max(f,o),h.start=r,h.stop=o,h};var $t=new t,Ht=new t,te=new t;m.computeCorners=function(n,e){z.typeOf.object("box",n),p(e)||(e=[new t,new t,new t,new t,new t,new t,new t,new t]);let c=n.center,h=n.halfAxes,r=d.getColumn(h,0,$t),o=d.getColumn(h,1,Ht),i=d.getColumn(h,2,te);return t.clone(c,e[0]),t.subtract(e[0],r,e[0]),t.subtract(e[0],o,e[0]),t.subtract(e[0],i,e[0]),t.clone(c,e[1]),t.subtract(e[1],r,e[1]),t.subtract(e[1],o,e[1]),t.add(e[1],i,e[1]),t.clone(c,e[2]),t.subtract(e[2],r,e[2]),t.add(e[2],o,e[2]),t.subtract(e[2],i,e[2]),t.clone(c,e[3]),t.subtract(e[3],r,e[3]),t.add(e[3],o,e[3]),t.add(e[3],i,e[3]),t.clone(c,e[4]),t.add(e[4],r,e[4]),t.subtract(e[4],o,e[4]),t.subtract(e[4],i,e[4]),t.clone(c,e[5]),t.add(e[5],r,e[5]),t.subtract(e[5],o,e[5]),t.add(e[5],i,e[5]),t.clone(c,e[6]),t.add(e[6],r,e[6]),t.add(e[6],o,e[6]),t.subtract(e[6],i,e[6]),t.clone(c,e[7]),t.add(e[7],r,e[7]),t.add(e[7],o,e[7]),t.add(e[7],i,e[7]),e};var ee=new d;m.computeTransformation=function(n,e){z.typeOf.object("box",n),p(e)||(e=new B);let c=n.center,h=d.multiplyByUniformScale(n.halfAxes,2,ee);return B.fromRotationTranslation(h,c,e)};var ne=new Z;m.isOccluded=function(n,e){if(!p(n))throw new b("box is required.");if(!p(e))throw new b("occluder is required.");let c=Z.fromOrientedBoundingBox(n,ne);return!e.isBoundingSphereVisible(c)};m.prototype.intersectPlane=function(n){return m.intersectPlane(this,n)};m.prototype.distanceSquaredTo=function(n){return m.distanceSquaredTo(this,n)};m.prototype.computePlaneDistances=function(n,e,c){return m.computePlaneDistances(this,n,e,c)};m.prototype.computeCorners=function(n){return m.computeCorners(this,n)};m.prototype.computeTransformation=function(n){return m.computeTransformation(this,n)};m.prototype.isOccluded=function(n){return m.isOccluded(this,n)};m.equals=function(n,e){return n===e||p(n)&&p(e)&&t.equals(n.center,e.center)&&d.equals(n.halfAxes,e.halfAxes)};m.prototype.clone=function(n){return m.clone(this,n)};m.prototype.equals=function(n){return m.equals(this,n)};var ye=m;export{ye as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-A2ZU5ON6.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-A2ZU5ON6.js new file mode 100644 index 000000000..6ea60dff6 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-A2ZU5ON6.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-BLYOACVP.js";import{a as P}from"./chunk-BRFVOFKF.js";import{a as O,b as L}from"./chunk-AODSXSC5.js";import{a as y}from"./chunk-IISQCXJ5.js";import{e as S}from"./chunk-DRYFJEFT.js";var T={};function b(a,e){return y.equalsEpsilon(a.latitude,e.latitude,y.EPSILON10)&&y.equalsEpsilon(a.longitude,e.longitude,y.EPSILON10)}var q=new L,v=new L;function w(a,e,i,h){e=P(e,O.equalsEpsilon);let p=e.length;if(p<2)return;let E=S(h),u=S(i),l=new Array(p),g=new Array(p),r=new Array(p),d=e[0];l[0]=d;let f=a.cartesianToCartographic(d,q);u&&(f.height=i[0]),g[0]=f.height,E?r[0]=h[0]:r[0]=0;let o=g[0],m=r[0],t=o===m,n=1;for(let c=1;c<p;++c){let A=e[c],s=a.cartesianToCartographic(A,v);u&&(s.height=i[c]),t=t&&s.height===0,b(f,s)?f.height<s.height&&(g[n-1]=s.height):(l[n]=A,g[n]=s.height,E?r[n]=h[c]:r[n]=0,t=t&&g[n]===r[n],L.clone(s,f),++n)}if(!(t||n<2))return l.length=n,g.length=n,r.length=n,{positions:l,topHeights:g,bottomHeights:r}}var D=new Array(2),F=new Array(2),B={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};T.computePositions=function(a,e,i,h,p,E){let u=w(a,e,i,h);if(!S(u))return;e=u.positions,i=u.topHeights,h=u.bottomHeights;let l=e.length,g=l-2,r,d,f=y.chordLength(p,a.maximumRadius),o=B;if(o.minDistance=f,o.ellipsoid=a,E){let m=0,t;for(t=0;t<l-1;t++)m+=C.numberOfPoints(e[t],e[t+1],f)+1;r=new Float64Array(m*3),d=new Float64Array(m*3);let n=D,c=F;o.positions=n,o.height=c;let A=0;for(t=0;t<l-1;t++){n[0]=e[t],n[1]=e[t+1],c[0]=i[t],c[1]=i[t+1];let s=C.generateArc(o);r.set(s,A),c[0]=h[t],c[1]=h[t+1],d.set(C.generateArc(o),A),A+=s.length}}else o.positions=e,o.height=i,r=new Float64Array(C.generateArc(o)),o.height=h,d=new Float64Array(C.generateArc(o));return{bottomPositions:d,topPositions:r,numCorners:g}};var j=T;export{j as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AODSXSC5.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AODSXSC5.js new file mode 100644 index 000000000..e61b6c31f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AODSXSC5.js @@ -0,0 +1,28 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-IISQCXJ5.js";import{a as O}from"./chunk-WHQYJFDH.js";import{a as S,b as c}from"./chunk-OYWUGDKS.js";import{e as u}from"./chunk-DRYFJEFT.js";function f(n,e,o){this.x=O(n,0),this.y=O(e,0),this.z=O(o,0)}f.fromSpherical=function(n,e){c.typeOf.object("spherical",n),u(e)||(e=new f);let o=n.clock,t=n.cone,i=O(n.magnitude,1),p=i*Math.sin(t);return e.x=p*Math.cos(o),e.y=p*Math.sin(o),e.z=i*Math.cos(t),e};f.fromElements=function(n,e,o,t){return u(t)?(t.x=n,t.y=e,t.z=o,t):new f(n,e,o)};f.clone=function(n,e){if(u(n))return u(e)?(e.x=n.x,e.y=n.y,e.z=n.z,e):new f(n.x,n.y,n.z)};f.fromCartesian4=f.clone;f.packedLength=3;f.pack=function(n,e,o){return c.typeOf.object("value",n),c.defined("array",e),o=O(o,0),e[o++]=n.x,e[o++]=n.y,e[o]=n.z,e};f.unpack=function(n,e,o){return c.defined("array",n),e=O(e,0),u(o)||(o=new f),o.x=n[e++],o.y=n[e++],o.z=n[e],o};f.packArray=function(n,e){c.defined("array",n);let o=n.length,t=o*3;if(!u(e))e=new Array(t);else{if(!Array.isArray(e)&&e.length!==t)throw new S("If result is a typed array, it must have exactly array.length * 3 elements");e.length!==t&&(e.length=t)}for(let i=0;i<o;++i)f.pack(n[i],e,i*3);return e};f.unpackArray=function(n,e){if(c.defined("array",n),c.typeOf.number.greaterThanOrEquals("array.length",n.length,3),n.length%3!==0)throw new S("array length must be a multiple of 3.");let o=n.length;u(e)?e.length=o/3:e=new Array(o/3);for(let t=0;t<o;t+=3){let i=t/3;e[i]=f.unpack(n,t,e[i])}return e};f.fromArray=f.unpack;f.maximumComponent=function(n){return c.typeOf.object("cartesian",n),Math.max(n.x,n.y,n.z)};f.minimumComponent=function(n){return c.typeOf.object("cartesian",n),Math.min(n.x,n.y,n.z)};f.minimumByComponent=function(n,e,o){return c.typeOf.object("first",n),c.typeOf.object("second",e),c.typeOf.object("result",o),o.x=Math.min(n.x,e.x),o.y=Math.min(n.y,e.y),o.z=Math.min(n.z,e.z),o};f.maximumByComponent=function(n,e,o){return c.typeOf.object("first",n),c.typeOf.object("second",e),c.typeOf.object("result",o),o.x=Math.max(n.x,e.x),o.y=Math.max(n.y,e.y),o.z=Math.max(n.z,e.z),o};f.clamp=function(n,e,o,t){c.typeOf.object("value",n),c.typeOf.object("min",e),c.typeOf.object("max",o),c.typeOf.object("result",t);let i=w.clamp(n.x,e.x,o.x),p=w.clamp(n.y,e.y,o.y),d=w.clamp(n.z,e.z,o.z);return t.x=i,t.y=p,t.z=d,t};f.magnitudeSquared=function(n){return c.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y+n.z*n.z};f.magnitude=function(n){return Math.sqrt(f.magnitudeSquared(n))};var G=new f;f.distance=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),f.subtract(n,e,G),f.magnitude(G)};f.distanceSquared=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),f.subtract(n,e,G),f.magnitudeSquared(G)};f.normalize=function(n,e){c.typeOf.object("cartesian",n),c.typeOf.object("result",e);let o=f.magnitude(n);if(e.x=n.x/o,e.y=n.y/o,e.z=n.z/o,isNaN(e.x)||isNaN(e.y)||isNaN(e.z))throw new S("normalized result is not a number");return e};f.dot=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),n.x*e.x+n.y*e.y+n.z*e.z};f.multiplyComponents=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x*e.x,o.y=n.y*e.y,o.z=n.z*e.z,o};f.divideComponents=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x/e.x,o.y=n.y/e.y,o.z=n.z/e.z,o};f.add=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x+e.x,o.y=n.y+e.y,o.z=n.z+e.z,o};f.subtract=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x-e.x,o.y=n.y-e.y,o.z=n.z-e.z,o};f.multiplyByScalar=function(n,e,o){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",e),c.typeOf.object("result",o),o.x=n.x*e,o.y=n.y*e,o.z=n.z*e,o};f.divideByScalar=function(n,e,o){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",e),c.typeOf.object("result",o),o.x=n.x/e,o.y=n.y/e,o.z=n.z/e,o};f.negate=function(n,e){return c.typeOf.object("cartesian",n),c.typeOf.object("result",e),e.x=-n.x,e.y=-n.y,e.z=-n.z,e};f.abs=function(n,e){return c.typeOf.object("cartesian",n),c.typeOf.object("result",e),e.x=Math.abs(n.x),e.y=Math.abs(n.y),e.z=Math.abs(n.z),e};var ln=new f;f.lerp=function(n,e,o,t){return c.typeOf.object("start",n),c.typeOf.object("end",e),c.typeOf.number("t",o),c.typeOf.object("result",t),f.multiplyByScalar(e,o,ln),t=f.multiplyByScalar(n,1-o,t),f.add(ln,t,t)};var Y=new f,yn=new f;f.angleBetween=function(n,e){c.typeOf.object("left",n),c.typeOf.object("right",e),f.normalize(n,Y),f.normalize(e,yn);let o=f.dot(Y,yn),t=f.magnitude(f.cross(Y,yn,Y));return Math.atan2(t,o)};var Xn=new f;f.mostOrthogonalAxis=function(n,e){c.typeOf.object("cartesian",n),c.typeOf.object("result",e);let o=f.normalize(n,Xn);return f.abs(o,o),o.x<=o.y?o.x<=o.z?e=f.clone(f.UNIT_X,e):e=f.clone(f.UNIT_Z,e):o.y<=o.z?e=f.clone(f.UNIT_Y,e):e=f.clone(f.UNIT_Z,e),e};f.projectVector=function(n,e,o){c.defined("a",n),c.defined("b",e),c.defined("result",o);let t=f.dot(n,e)/f.dot(e,e);return f.multiplyByScalar(e,t,o)};f.equals=function(n,e){return n===e||u(n)&&u(e)&&n.x===e.x&&n.y===e.y&&n.z===e.z};f.equalsArray=function(n,e,o){return n.x===e[o]&&n.y===e[o+1]&&n.z===e[o+2]};f.equalsEpsilon=function(n,e,o,t){return n===e||u(n)&&u(e)&&w.equalsEpsilon(n.x,e.x,o,t)&&w.equalsEpsilon(n.y,e.y,o,t)&&w.equalsEpsilon(n.z,e.z,o,t)};f.cross=function(n,e,o){c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o);let t=n.x,i=n.y,p=n.z,d=e.x,m=e.y,s=e.z,h=i*s-p*m,j=p*d-t*s,z=t*m-i*d;return o.x=h,o.y=j,o.z=z,o};f.midpoint=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=(n.x+e.x)*.5,o.y=(n.y+e.y)*.5,o.z=(n.z+e.z)*.5,o};f.fromDegrees=function(n,e,o,t,i){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",e),n=w.toRadians(n),e=w.toRadians(e),f.fromRadians(n,e,o,t,i)};var C=new f,v=new f;f._ellipsoidRadiiSquared=new f(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);f.fromRadians=function(n,e,o,t,i){c.typeOf.number("longitude",n),c.typeOf.number("latitude",e),o=O(o,0);let p=u(t)?t.radiiSquared:f._ellipsoidRadiiSquared,d=Math.cos(e);C.x=d*Math.cos(n),C.y=d*Math.sin(n),C.z=Math.sin(e),C=f.normalize(C,C),f.multiplyComponents(p,C,v);let m=Math.sqrt(f.dot(C,v));return v=f.divideByScalar(v,m,v),C=f.multiplyByScalar(C,o,C),u(i)||(i=new f),f.add(v,C,i)};f.fromDegreesArray=function(n,e,o){if(c.defined("coordinates",n),n.length<2||n.length%2!==0)throw new S("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;u(o)?o.length=t/2:o=new Array(t/2);for(let i=0;i<t;i+=2){let p=n[i],d=n[i+1],m=i/2;o[m]=f.fromDegrees(p,d,0,e,o[m])}return o};f.fromRadiansArray=function(n,e,o){if(c.defined("coordinates",n),n.length<2||n.length%2!==0)throw new S("the number of coordinates must be a multiple of 2 and at least 2");let t=n.length;u(o)?o.length=t/2:o=new Array(t/2);for(let i=0;i<t;i+=2){let p=n[i],d=n[i+1],m=i/2;o[m]=f.fromRadians(p,d,0,e,o[m])}return o};f.fromDegreesArrayHeights=function(n,e,o){if(c.defined("coordinates",n),n.length<3||n.length%3!==0)throw new S("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;u(o)?o.length=t/3:o=new Array(t/3);for(let i=0;i<t;i+=3){let p=n[i],d=n[i+1],m=n[i+2],s=i/3;o[s]=f.fromDegrees(p,d,m,e,o[s])}return o};f.fromRadiansArrayHeights=function(n,e,o){if(c.defined("coordinates",n),n.length<3||n.length%3!==0)throw new S("the number of coordinates must be a multiple of 3 and at least 3");let t=n.length;u(o)?o.length=t/3:o=new Array(t/3);for(let i=0;i<t;i+=3){let p=n[i],d=n[i+1],m=n[i+2],s=i/3;o[s]=f.fromRadians(p,d,m,e,o[s])}return o};f.ZERO=Object.freeze(new f(0,0,0));f.ONE=Object.freeze(new f(1,1,1));f.UNIT_X=Object.freeze(new f(1,0,0));f.UNIT_Y=Object.freeze(new f(0,1,0));f.UNIT_Z=Object.freeze(new f(0,0,1));f.prototype.clone=function(n){return f.clone(this,n)};f.prototype.equals=function(n){return f.equals(this,n)};f.prototype.equalsEpsilon=function(n,e,o){return f.equalsEpsilon(this,n,e,o)};f.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var y=f;var Yn=new y,Gn=new y;function Hn(n,e,o,t,i){if(!u(n))throw new S("cartesian is required.");if(!u(e))throw new S("oneOverRadii is required.");if(!u(o))throw new S("oneOverRadiiSquared is required.");if(!u(t))throw new S("centerToleranceSquared is required.");let p=n.x,d=n.y,m=n.z,s=e.x,h=e.y,j=e.z,z=p*p*s*s,M=d*d*h*h,q=m*m*j*j,N=z+M+q,l=Math.sqrt(1/N),x=y.multiplyByScalar(n,l,Yn);if(N<t)return isFinite(l)?y.clone(x,i):void 0;let U=o.x,I=o.y,P=o.z,k=Gn;k.x=x.x*U*2,k.y=x.y*I*2,k.z=x.z*P*2;let X=(1-l)*y.magnitude(n)/(.5*y.magnitude(k)),Mn=0,pn,qn,L,V,W,un,an,dn,En,An,_n;do{X-=Mn,L=1/(1+X*U),V=1/(1+X*I),W=1/(1+X*P),un=L*L,an=V*V,dn=W*W,En=un*L,An=an*V,_n=dn*W,pn=z*un+M*an+q*dn-1,qn=z*En*U+M*An*I+q*_n*P;let Zn=-2*qn;Mn=pn/Zn}while(Math.abs(pn)>w.EPSILON12);return u(i)?(i.x=p*L,i.y=d*V,i.z=m*W,i):new y(p*L,d*V,m*W)}var H=Hn;function g(n,e,o){this.longitude=O(n,0),this.latitude=O(e,0),this.height=O(o,0)}g.fromRadians=function(n,e,o,t){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",e),o=O(o,0),u(t)?(t.longitude=n,t.latitude=e,t.height=o,t):new g(n,e,o)};g.fromDegrees=function(n,e,o,t){return c.typeOf.number("longitude",n),c.typeOf.number("latitude",e),n=w.toRadians(n),e=w.toRadians(e),g.fromRadians(n,e,o,t)};var Qn=new y,Kn=new y,Jn=new y;g._ellipsoidOneOverRadii=new y(1/6378137,1/6378137,1/6356752314245179e-9);g._ellipsoidOneOverRadiiSquared=new y(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9));g._ellipsoidCenterToleranceSquared=w.EPSILON1;g.fromCartesian=function(n,e,o){let t=u(e)?e.oneOverRadii:g._ellipsoidOneOverRadii,i=u(e)?e.oneOverRadiiSquared:g._ellipsoidOneOverRadiiSquared,p=u(e)?e._centerToleranceSquared:g._ellipsoidCenterToleranceSquared,d=H(n,t,i,p,Kn);if(!u(d))return;let m=y.multiplyComponents(d,i,Qn);m=y.normalize(m,m);let s=y.subtract(n,d,Jn),h=Math.atan2(m.y,m.x),j=Math.asin(m.z),z=w.sign(y.dot(s,n))*y.magnitude(s);return u(o)?(o.longitude=h,o.latitude=j,o.height=z,o):new g(h,j,z)};g.toCartesian=function(n,e,o){return c.defined("cartographic",n),y.fromRadians(n.longitude,n.latitude,n.height,e,o)};g.clone=function(n,e){if(u(n))return u(e)?(e.longitude=n.longitude,e.latitude=n.latitude,e.height=n.height,e):new g(n.longitude,n.latitude,n.height)};g.equals=function(n,e){return n===e||u(n)&&u(e)&&n.longitude===e.longitude&&n.latitude===e.latitude&&n.height===e.height};g.equalsEpsilon=function(n,e,o){return o=O(o,0),n===e||u(n)&&u(e)&&Math.abs(n.longitude-e.longitude)<=o&&Math.abs(n.latitude-e.latitude)<=o&&Math.abs(n.height-e.height)<=o};g.ZERO=Object.freeze(new g(0,0,0));g.prototype.clone=function(n){return g.clone(this,n)};g.prototype.equals=function(n){return g.equals(this,n)};g.prototype.equalsEpsilon=function(n,e){return g.equalsEpsilon(this,n,e)};g.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var D=g;function a(n,e){this.x=O(n,0),this.y=O(e,0)}a.fromElements=function(n,e,o){return u(o)?(o.x=n,o.y=e,o):new a(n,e)};a.clone=function(n,e){if(u(n))return u(e)?(e.x=n.x,e.y=n.y,e):new a(n.x,n.y)};a.fromCartesian3=a.clone;a.fromCartesian4=a.clone;a.packedLength=2;a.pack=function(n,e,o){return c.typeOf.object("value",n),c.defined("array",e),o=O(o,0),e[o++]=n.x,e[o]=n.y,e};a.unpack=function(n,e,o){return c.defined("array",n),e=O(e,0),u(o)||(o=new a),o.x=n[e++],o.y=n[e],o};a.packArray=function(n,e){c.defined("array",n);let o=n.length,t=o*2;if(!u(e))e=new Array(t);else{if(!Array.isArray(e)&&e.length!==t)throw new S("If result is a typed array, it must have exactly array.length * 2 elements");e.length!==t&&(e.length=t)}for(let i=0;i<o;++i)a.pack(n[i],e,i*2);return e};a.unpackArray=function(n,e){if(c.defined("array",n),c.typeOf.number.greaterThanOrEquals("array.length",n.length,2),n.length%2!==0)throw new S("array length must be a multiple of 2.");let o=n.length;u(e)?e.length=o/2:e=new Array(o/2);for(let t=0;t<o;t+=2){let i=t/2;e[i]=a.unpack(n,t,e[i])}return e};a.fromArray=a.unpack;a.maximumComponent=function(n){return c.typeOf.object("cartesian",n),Math.max(n.x,n.y)};a.minimumComponent=function(n){return c.typeOf.object("cartesian",n),Math.min(n.x,n.y)};a.minimumByComponent=function(n,e,o){return c.typeOf.object("first",n),c.typeOf.object("second",e),c.typeOf.object("result",o),o.x=Math.min(n.x,e.x),o.y=Math.min(n.y,e.y),o};a.maximumByComponent=function(n,e,o){return c.typeOf.object("first",n),c.typeOf.object("second",e),c.typeOf.object("result",o),o.x=Math.max(n.x,e.x),o.y=Math.max(n.y,e.y),o};a.clamp=function(n,e,o,t){c.typeOf.object("value",n),c.typeOf.object("min",e),c.typeOf.object("max",o),c.typeOf.object("result",t);let i=w.clamp(n.x,e.x,o.x),p=w.clamp(n.y,e.y,o.y);return t.x=i,t.y=p,t};a.magnitudeSquared=function(n){return c.typeOf.object("cartesian",n),n.x*n.x+n.y*n.y};a.magnitude=function(n){return Math.sqrt(a.magnitudeSquared(n))};var Q=new a;a.distance=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),a.subtract(n,e,Q),a.magnitude(Q)};a.distanceSquared=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),a.subtract(n,e,Q),a.magnitudeSquared(Q)};a.normalize=function(n,e){c.typeOf.object("cartesian",n),c.typeOf.object("result",e);let o=a.magnitude(n);if(e.x=n.x/o,e.y=n.y/o,isNaN(e.x)||isNaN(e.y))throw new S("normalized result is not a number");return e};a.dot=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),n.x*e.x+n.y*e.y};a.cross=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),n.x*e.y-n.y*e.x};a.multiplyComponents=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x*e.x,o.y=n.y*e.y,o};a.divideComponents=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x/e.x,o.y=n.y/e.y,o};a.add=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x+e.x,o.y=n.y+e.y,o};a.subtract=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o.x=n.x-e.x,o.y=n.y-e.y,o};a.multiplyByScalar=function(n,e,o){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",e),c.typeOf.object("result",o),o.x=n.x*e,o.y=n.y*e,o};a.divideByScalar=function(n,e,o){return c.typeOf.object("cartesian",n),c.typeOf.number("scalar",e),c.typeOf.object("result",o),o.x=n.x/e,o.y=n.y/e,o};a.negate=function(n,e){return c.typeOf.object("cartesian",n),c.typeOf.object("result",e),e.x=-n.x,e.y=-n.y,e};a.abs=function(n,e){return c.typeOf.object("cartesian",n),c.typeOf.object("result",e),e.x=Math.abs(n.x),e.y=Math.abs(n.y),e};var Cn=new a;a.lerp=function(n,e,o,t){return c.typeOf.object("start",n),c.typeOf.object("end",e),c.typeOf.number("t",o),c.typeOf.object("result",t),a.multiplyByScalar(e,o,Cn),t=a.multiplyByScalar(n,1-o,t),a.add(Cn,t,t)};var Tn=new a,Nn=new a;a.angleBetween=function(n,e){return c.typeOf.object("left",n),c.typeOf.object("right",e),a.normalize(n,Tn),a.normalize(e,Nn),w.acosClamped(a.dot(Tn,Nn))};var ne=new a;a.mostOrthogonalAxis=function(n,e){c.typeOf.object("cartesian",n),c.typeOf.object("result",e);let o=a.normalize(n,ne);return a.abs(o,o),o.x<=o.y?e=a.clone(a.UNIT_X,e):e=a.clone(a.UNIT_Y,e),e};a.equals=function(n,e){return n===e||u(n)&&u(e)&&n.x===e.x&&n.y===e.y};a.equalsArray=function(n,e,o){return n.x===e[o]&&n.y===e[o+1]};a.equalsEpsilon=function(n,e,o,t){return n===e||u(n)&&u(e)&&w.equalsEpsilon(n.x,e.x,o,t)&&w.equalsEpsilon(n.y,e.y,o,t)};a.ZERO=Object.freeze(new a(0,0));a.ONE=Object.freeze(new a(1,1));a.UNIT_X=Object.freeze(new a(1,0));a.UNIT_Y=Object.freeze(new a(0,1));a.prototype.clone=function(n){return a.clone(this,n)};a.prototype.equals=function(n){return a.equals(this,n)};a.prototype.equalsEpsilon=function(n,e,o){return a.equalsEpsilon(this,n,e,o)};a.prototype.toString=function(){return`(${this.x}, ${this.y})`};var mn=a;function Fn(n,e,o,t){e=O(e,0),o=O(o,0),t=O(t,0),c.typeOf.number.greaterThanOrEquals("x",e,0),c.typeOf.number.greaterThanOrEquals("y",o,0),c.typeOf.number.greaterThanOrEquals("z",t,0),n._radii=new y(e,o,t),n._radiiSquared=new y(e*e,o*o,t*t),n._radiiToTheFourth=new y(e*e*e*e,o*o*o*o,t*t*t*t),n._oneOverRadii=new y(e===0?0:1/e,o===0?0:1/o,t===0?0:1/t),n._oneOverRadiiSquared=new y(e===0?0:1/(e*e),o===0?0:1/(o*o),t===0?0:1/(t*t)),n._minimumRadius=Math.min(e,o,t),n._maximumRadius=Math.max(e,o,t),n._centerToleranceSquared=w.EPSILON1,n._radiiSquared.z!==0&&(n._squaredXOverSquaredZ=n._radiiSquared.x/n._radiiSquared.z)}function b(n,e,o){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,Fn(this,n,e,o)}Object.defineProperties(b.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});b.clone=function(n,e){if(!u(n))return;let o=n._radii;return u(e)?(y.clone(o,e._radii),y.clone(n._radiiSquared,e._radiiSquared),y.clone(n._radiiToTheFourth,e._radiiToTheFourth),y.clone(n._oneOverRadii,e._oneOverRadii),y.clone(n._oneOverRadiiSquared,e._oneOverRadiiSquared),e._minimumRadius=n._minimumRadius,e._maximumRadius=n._maximumRadius,e._centerToleranceSquared=n._centerToleranceSquared,e):new b(o.x,o.y,o.z)};b.fromCartesian3=function(n,e){return u(e)||(e=new b),u(n)&&Fn(e,n.x,n.y,n.z),e};b.WGS84=Object.freeze(new b(6378137,6378137,6356752314245179e-9));b.UNIT_SPHERE=Object.freeze(new b(1,1,1));b.MOON=Object.freeze(new b(w.LUNAR_RADIUS,w.LUNAR_RADIUS,w.LUNAR_RADIUS));b._default=b.WGS84;Object.defineProperties(b,{default:{get:function(){return b._default},set:function(n){c.typeOf.object("value",n),b._default=n,y._ellipsoidRadiiSquared=n.radiiSquared,D._ellipsoidOneOverRadii=n.oneOverRadii,D._ellipsoidOneOverRadiiSquared=n.oneOverRadiiSquared,D._ellipsoidCenterToleranceSquared=n._centerToleranceSquared}}});b.prototype.clone=function(n){return b.clone(this,n)};b.packedLength=y.packedLength;b.pack=function(n,e,o){return c.typeOf.object("value",n),c.defined("array",e),o=O(o,0),y.pack(n._radii,e,o),e};b.unpack=function(n,e,o){c.defined("array",n),e=O(e,0);let t=y.unpack(n,e);return b.fromCartesian3(t,o)};b.prototype.geocentricSurfaceNormal=y.normalize;b.prototype.geodeticSurfaceNormalCartographic=function(n,e){c.typeOf.object("cartographic",n);let o=n.longitude,t=n.latitude,i=Math.cos(t),p=i*Math.cos(o),d=i*Math.sin(o),m=Math.sin(t);return u(e)||(e=new y),e.x=p,e.y=d,e.z=m,y.normalize(e,e)};b.prototype.geodeticSurfaceNormal=function(n,e){if(c.typeOf.object("cartesian",n),isNaN(n.x)||isNaN(n.y)||isNaN(n.z))throw new S("cartesian has a NaN component");if(!y.equalsEpsilon(n,y.ZERO,w.EPSILON14))return u(e)||(e=new y),e=y.multiplyComponents(n,this._oneOverRadiiSquared,e),y.normalize(e,e)};var ee=new y,oe=new y;b.prototype.cartographicToCartesian=function(n,e){let o=ee,t=oe;this.geodeticSurfaceNormalCartographic(n,o),y.multiplyComponents(this._radiiSquared,o,t);let i=Math.sqrt(y.dot(o,t));return y.divideByScalar(t,i,t),y.multiplyByScalar(o,n.height,o),u(e)||(e=new y),y.add(t,o,e)};b.prototype.cartographicArrayToCartesianArray=function(n,e){c.defined("cartographics",n);let o=n.length;u(e)?e.length=o:e=new Array(o);for(let t=0;t<o;t++)e[t]=this.cartographicToCartesian(n[t],e[t]);return e};var te=new y,ce=new y,ie=new y;b.prototype.cartesianToCartographic=function(n,e){let o=this.scaleToGeodeticSurface(n,ce);if(!u(o))return;let t=this.geodeticSurfaceNormal(o,te),i=y.subtract(n,o,ie),p=Math.atan2(t.y,t.x),d=Math.asin(t.z),m=w.sign(y.dot(i,n))*y.magnitude(i);return u(e)?(e.longitude=p,e.latitude=d,e.height=m,e):new D(p,d,m)};b.prototype.cartesianArrayToCartographicArray=function(n,e){c.defined("cartesians",n);let o=n.length;u(e)?e.length=o:e=new Array(o);for(let t=0;t<o;++t)e[t]=this.cartesianToCartographic(n[t],e[t]);return e};b.prototype.scaleToGeodeticSurface=function(n,e){return H(n,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,e)};b.prototype.scaleToGeocentricSurface=function(n,e){c.typeOf.object("cartesian",n),u(e)||(e=new y);let o=n.x,t=n.y,i=n.z,p=this._oneOverRadiiSquared,d=1/Math.sqrt(o*o*p.x+t*t*p.y+i*i*p.z);return y.multiplyByScalar(n,d,e)};b.prototype.transformPositionToScaledSpace=function(n,e){return u(e)||(e=new y),y.multiplyComponents(n,this._oneOverRadii,e)};b.prototype.transformPositionFromScaledSpace=function(n,e){return u(e)||(e=new y),y.multiplyComponents(n,this._radii,e)};b.prototype.equals=function(n){return this===n||u(n)&&y.equals(this._radii,n._radii)};b.prototype.toString=function(){return this._radii.toString()};b.prototype.getSurfaceNormalIntersectionWithZAxis=function(n,e,o){if(c.typeOf.object("position",n),!w.equalsEpsilon(this._radii.x,this._radii.y,w.EPSILON15))throw new S("Ellipsoid must be an ellipsoid of revolution (radii.x == radii.y)");c.typeOf.number.greaterThan("Ellipsoid.radii.z",this._radii.z,0),e=O(e,0);let t=this._squaredXOverSquaredZ;if(u(o)||(o=new y),o.x=0,o.y=0,o.z=n.z*(1-t),!(Math.abs(o.z)>=this._radii.z-e))return o};var fe=new y;b.prototype.getLocalCurvature=function(n,e){c.typeOf.object("surfacePosition",n),u(e)||(e=new mn);let o=this.getSurfaceNormalIntersectionWithZAxis(n,0,fe),t=y.distance(n,o),i=this.minimumRadius*t/this.maximumRadius**2,p=t*i**2;return mn.fromElements(1/t,1/p,e)};var re=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],pe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function xn(n,e,o){c.typeOf.number("a",n),c.typeOf.number("b",e),c.typeOf.func("func",o);let t=.5*(e+n),i=.5*(e-n),p=0;for(let d=0;d<5;d++){let m=i*re[d];p+=pe[d]*(o(t+m)+o(t-m))}return p*=i,p}b.prototype.surfaceArea=function(n){c.typeOf.object("rectangle",n);let e=n.west,o=n.east,t=n.south,i=n.north;for(;o<e;)o+=w.TWO_PI;let p=this._radiiSquared,d=p.x,m=p.y,s=p.z,h=d*m;return xn(t,i,function(j){let z=Math.cos(j),M=Math.sin(j);return Math.cos(j)*xn(e,o,function(q){let N=Math.cos(q),l=Math.sin(q);return Math.sqrt(h*M*M+s*(m*N*N+d*l*l)*z*z)})})};var fo=b;function r(n,e,o,t,i,p,d,m,s){this[0]=O(n,0),this[1]=O(t,0),this[2]=O(d,0),this[3]=O(e,0),this[4]=O(i,0),this[5]=O(m,0),this[6]=O(o,0),this[7]=O(p,0),this[8]=O(s,0)}r.packedLength=9;r.pack=function(n,e,o){return c.typeOf.object("value",n),c.defined("array",e),o=O(o,0),e[o++]=n[0],e[o++]=n[1],e[o++]=n[2],e[o++]=n[3],e[o++]=n[4],e[o++]=n[5],e[o++]=n[6],e[o++]=n[7],e[o++]=n[8],e};r.unpack=function(n,e,o){return c.defined("array",n),e=O(e,0),u(o)||(o=new r),o[0]=n[e++],o[1]=n[e++],o[2]=n[e++],o[3]=n[e++],o[4]=n[e++],o[5]=n[e++],o[6]=n[e++],o[7]=n[e++],o[8]=n[e++],o};r.packArray=function(n,e){c.defined("array",n);let o=n.length,t=o*9;if(!u(e))e=new Array(t);else{if(!Array.isArray(e)&&e.length!==t)throw new S("If result is a typed array, it must have exactly array.length * 9 elements");e.length!==t&&(e.length=t)}for(let i=0;i<o;++i)r.pack(n[i],e,i*9);return e};r.unpackArray=function(n,e){if(c.defined("array",n),c.typeOf.number.greaterThanOrEquals("array.length",n.length,9),n.length%9!==0)throw new S("array length must be a multiple of 9.");let o=n.length;u(e)?e.length=o/9:e=new Array(o/9);for(let t=0;t<o;t+=9){let i=t/9;e[i]=r.unpack(n,t,e[i])}return e};r.clone=function(n,e){if(u(n))return u(e)?(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e):new r(n[0],n[3],n[6],n[1],n[4],n[7],n[2],n[5],n[8])};r.fromArray=r.unpack;r.fromColumnMajorArray=function(n,e){return c.defined("values",n),r.clone(n,e)};r.fromRowMajorArray=function(n,e){return c.defined("values",n),u(e)?(e[0]=n[0],e[1]=n[3],e[2]=n[6],e[3]=n[1],e[4]=n[4],e[5]=n[7],e[6]=n[2],e[7]=n[5],e[8]=n[8],e):new r(n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8])};r.fromQuaternion=function(n,e){c.typeOf.object("quaternion",n);let o=n.x*n.x,t=n.x*n.y,i=n.x*n.z,p=n.x*n.w,d=n.y*n.y,m=n.y*n.z,s=n.y*n.w,h=n.z*n.z,j=n.z*n.w,z=n.w*n.w,M=o-d-h+z,q=2*(t-j),N=2*(i+s),l=2*(t+j),x=-o+d-h+z,U=2*(m-p),I=2*(i-s),P=2*(m+p),k=-o-d+h+z;return u(e)?(e[0]=M,e[1]=l,e[2]=I,e[3]=q,e[4]=x,e[5]=P,e[6]=N,e[7]=U,e[8]=k,e):new r(M,q,N,l,x,U,I,P,k)};r.fromHeadingPitchRoll=function(n,e){c.typeOf.object("headingPitchRoll",n);let o=Math.cos(-n.pitch),t=Math.cos(-n.heading),i=Math.cos(n.roll),p=Math.sin(-n.pitch),d=Math.sin(-n.heading),m=Math.sin(n.roll),s=o*t,h=-i*d+m*p*t,j=m*d+i*p*t,z=o*d,M=i*t+m*p*d,q=-m*t+i*p*d,N=-p,l=m*o,x=i*o;return u(e)?(e[0]=s,e[1]=z,e[2]=N,e[3]=h,e[4]=M,e[5]=l,e[6]=j,e[7]=q,e[8]=x,e):new r(s,h,j,z,M,q,N,l,x)};r.fromScale=function(n,e){return c.typeOf.object("scale",n),u(e)?(e[0]=n.x,e[1]=0,e[2]=0,e[3]=0,e[4]=n.y,e[5]=0,e[6]=0,e[7]=0,e[8]=n.z,e):new r(n.x,0,0,0,n.y,0,0,0,n.z)};r.fromUniformScale=function(n,e){return c.typeOf.number("scale",n),u(e)?(e[0]=n,e[1]=0,e[2]=0,e[3]=0,e[4]=n,e[5]=0,e[6]=0,e[7]=0,e[8]=n,e):new r(n,0,0,0,n,0,0,0,n)};r.fromCrossProduct=function(n,e){return c.typeOf.object("vector",n),u(e)?(e[0]=0,e[1]=n.z,e[2]=-n.y,e[3]=-n.z,e[4]=0,e[5]=n.x,e[6]=n.y,e[7]=-n.x,e[8]=0,e):new r(0,-n.z,n.y,n.z,0,-n.x,-n.y,n.x,0)};r.fromRotationX=function(n,e){c.typeOf.number("angle",n);let o=Math.cos(n),t=Math.sin(n);return u(e)?(e[0]=1,e[1]=0,e[2]=0,e[3]=0,e[4]=o,e[5]=t,e[6]=0,e[7]=-t,e[8]=o,e):new r(1,0,0,0,o,-t,0,t,o)};r.fromRotationY=function(n,e){c.typeOf.number("angle",n);let o=Math.cos(n),t=Math.sin(n);return u(e)?(e[0]=o,e[1]=0,e[2]=-t,e[3]=0,e[4]=1,e[5]=0,e[6]=t,e[7]=0,e[8]=o,e):new r(o,0,t,0,1,0,-t,0,o)};r.fromRotationZ=function(n,e){c.typeOf.number("angle",n);let o=Math.cos(n),t=Math.sin(n);return u(e)?(e[0]=o,e[1]=t,e[2]=0,e[3]=-t,e[4]=o,e[5]=0,e[6]=0,e[7]=0,e[8]=1,e):new r(o,-t,0,t,o,0,0,0,1)};r.toArray=function(n,e){return c.typeOf.object("matrix",n),u(e)?(e[0]=n[0],e[1]=n[1],e[2]=n[2],e[3]=n[3],e[4]=n[4],e[5]=n[5],e[6]=n[6],e[7]=n[7],e[8]=n[8],e):[n[0],n[1],n[2],n[3],n[4],n[5],n[6],n[7],n[8]]};r.getElementIndex=function(n,e){return c.typeOf.number.greaterThanOrEquals("row",e,0),c.typeOf.number.lessThanOrEquals("row",e,2),c.typeOf.number.greaterThanOrEquals("column",n,0),c.typeOf.number.lessThanOrEquals("column",n,2),n*3+e};r.getColumn=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",e,0),c.typeOf.number.lessThanOrEquals("index",e,2),c.typeOf.object("result",o);let t=e*3,i=n[t],p=n[t+1],d=n[t+2];return o.x=i,o.y=p,o.z=d,o};r.setColumn=function(n,e,o,t){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",e,0),c.typeOf.number.lessThanOrEquals("index",e,2),c.typeOf.object("cartesian",o),c.typeOf.object("result",t),t=r.clone(n,t);let i=e*3;return t[i]=o.x,t[i+1]=o.y,t[i+2]=o.z,t};r.getRow=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",e,0),c.typeOf.number.lessThanOrEquals("index",e,2),c.typeOf.object("result",o);let t=n[e],i=n[e+3],p=n[e+6];return o.x=t,o.y=i,o.z=p,o};r.setRow=function(n,e,o,t){return c.typeOf.object("matrix",n),c.typeOf.number.greaterThanOrEquals("index",e,0),c.typeOf.number.lessThanOrEquals("index",e,2),c.typeOf.object("cartesian",o),c.typeOf.object("result",t),t=r.clone(n,t),t[e]=o.x,t[e+3]=o.y,t[e+6]=o.z,t};var ue=new y;r.setScale=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.object("scale",e),c.typeOf.object("result",o);let t=r.getScale(n,ue),i=e.x/t.x,p=e.y/t.y,d=e.z/t.z;return o[0]=n[0]*i,o[1]=n[1]*i,o[2]=n[2]*i,o[3]=n[3]*p,o[4]=n[4]*p,o[5]=n[5]*p,o[6]=n[6]*d,o[7]=n[7]*d,o[8]=n[8]*d,o};var ae=new y;r.setUniformScale=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.number("scale",e),c.typeOf.object("result",o);let t=r.getScale(n,ae),i=e/t.x,p=e/t.y,d=e/t.z;return o[0]=n[0]*i,o[1]=n[1]*i,o[2]=n[2]*i,o[3]=n[3]*p,o[4]=n[4]*p,o[5]=n[5]*p,o[6]=n[6]*d,o[7]=n[7]*d,o[8]=n[8]*d,o};var sn=new y;r.getScale=function(n,e){return c.typeOf.object("matrix",n),c.typeOf.object("result",e),e.x=y.magnitude(y.fromElements(n[0],n[1],n[2],sn)),e.y=y.magnitude(y.fromElements(n[3],n[4],n[5],sn)),e.z=y.magnitude(y.fromElements(n[6],n[7],n[8],sn)),e};var kn=new y;r.getMaximumScale=function(n){return r.getScale(n,kn),y.maximumComponent(kn)};var de=new y;r.setRotation=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.object("result",o);let t=r.getScale(n,de);return o[0]=e[0]*t.x,o[1]=e[1]*t.x,o[2]=e[2]*t.x,o[3]=e[3]*t.y,o[4]=e[4]*t.y,o[5]=e[5]*t.y,o[6]=e[6]*t.z,o[7]=e[7]*t.z,o[8]=e[8]*t.z,o};var ye=new y;r.getRotation=function(n,e){c.typeOf.object("matrix",n),c.typeOf.object("result",e);let o=r.getScale(n,ye);return e[0]=n[0]/o.x,e[1]=n[1]/o.x,e[2]=n[2]/o.x,e[3]=n[3]/o.y,e[4]=n[4]/o.y,e[5]=n[5]/o.y,e[6]=n[6]/o.z,e[7]=n[7]/o.z,e[8]=n[8]/o.z,e};r.multiply=function(n,e,o){c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o);let t=n[0]*e[0]+n[3]*e[1]+n[6]*e[2],i=n[1]*e[0]+n[4]*e[1]+n[7]*e[2],p=n[2]*e[0]+n[5]*e[1]+n[8]*e[2],d=n[0]*e[3]+n[3]*e[4]+n[6]*e[5],m=n[1]*e[3]+n[4]*e[4]+n[7]*e[5],s=n[2]*e[3]+n[5]*e[4]+n[8]*e[5],h=n[0]*e[6]+n[3]*e[7]+n[6]*e[8],j=n[1]*e[6]+n[4]*e[7]+n[7]*e[8],z=n[2]*e[6]+n[5]*e[7]+n[8]*e[8];return o[0]=t,o[1]=i,o[2]=p,o[3]=d,o[4]=m,o[5]=s,o[6]=h,o[7]=j,o[8]=z,o};r.add=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o[0]=n[0]+e[0],o[1]=n[1]+e[1],o[2]=n[2]+e[2],o[3]=n[3]+e[3],o[4]=n[4]+e[4],o[5]=n[5]+e[5],o[6]=n[6]+e[6],o[7]=n[7]+e[7],o[8]=n[8]+e[8],o};r.subtract=function(n,e,o){return c.typeOf.object("left",n),c.typeOf.object("right",e),c.typeOf.object("result",o),o[0]=n[0]-e[0],o[1]=n[1]-e[1],o[2]=n[2]-e[2],o[3]=n[3]-e[3],o[4]=n[4]-e[4],o[5]=n[5]-e[5],o[6]=n[6]-e[6],o[7]=n[7]-e[7],o[8]=n[8]-e[8],o};r.multiplyByVector=function(n,e,o){c.typeOf.object("matrix",n),c.typeOf.object("cartesian",e),c.typeOf.object("result",o);let t=e.x,i=e.y,p=e.z,d=n[0]*t+n[3]*i+n[6]*p,m=n[1]*t+n[4]*i+n[7]*p,s=n[2]*t+n[5]*i+n[8]*p;return o.x=d,o.y=m,o.z=s,o};r.multiplyByScalar=function(n,e,o){return c.typeOf.object("matrix",n),c.typeOf.number("scalar",e),c.typeOf.object("result",o),o[0]=n[0]*e,o[1]=n[1]*e,o[2]=n[2]*e,o[3]=n[3]*e,o[4]=n[4]*e,o[5]=n[5]*e,o[6]=n[6]*e,o[7]=n[7]*e,o[8]=n[8]*e,o};r.multiplyByScale=function(n,e,o){return c.typeOf.object("matrix",n),c.typeOf.object("scale",e),c.typeOf.object("result",o),o[0]=n[0]*e.x,o[1]=n[1]*e.x,o[2]=n[2]*e.x,o[3]=n[3]*e.y,o[4]=n[4]*e.y,o[5]=n[5]*e.y,o[6]=n[6]*e.z,o[7]=n[7]*e.z,o[8]=n[8]*e.z,o};r.multiplyByUniformScale=function(n,e,o){return c.typeOf.object("matrix",n),c.typeOf.number("scale",e),c.typeOf.object("result",o),o[0]=n[0]*e,o[1]=n[1]*e,o[2]=n[2]*e,o[3]=n[3]*e,o[4]=n[4]*e,o[5]=n[5]*e,o[6]=n[6]*e,o[7]=n[7]*e,o[8]=n[8]*e,o};r.negate=function(n,e){return c.typeOf.object("matrix",n),c.typeOf.object("result",e),e[0]=-n[0],e[1]=-n[1],e[2]=-n[2],e[3]=-n[3],e[4]=-n[4],e[5]=-n[5],e[6]=-n[6],e[7]=-n[7],e[8]=-n[8],e};r.transpose=function(n,e){c.typeOf.object("matrix",n),c.typeOf.object("result",e);let o=n[0],t=n[3],i=n[6],p=n[1],d=n[4],m=n[7],s=n[2],h=n[5],j=n[8];return e[0]=o,e[1]=t,e[2]=i,e[3]=p,e[4]=d,e[5]=m,e[6]=s,e[7]=h,e[8]=j,e};function me(n){let e=0;for(let o=0;o<9;++o){let t=n[o];e+=t*t}return Math.sqrt(e)}var On=[1,0,0],bn=[2,2,1];function se(n){let e=0;for(let o=0;o<3;++o){let t=n[r.getElementIndex(bn[o],On[o])];e+=2*t*t}return Math.sqrt(e)}function Oe(n,e){let o=w.EPSILON15,t=0,i=1;for(let h=0;h<3;++h){let j=Math.abs(n[r.getElementIndex(bn[h],On[h])]);j>t&&(i=h,t=j)}let p=1,d=0,m=On[i],s=bn[i];if(Math.abs(n[r.getElementIndex(s,m)])>o){let h=n[r.getElementIndex(s,s)],j=n[r.getElementIndex(m,m)],z=n[r.getElementIndex(s,m)],M=(h-j)/2/z,q;M<0?q=-1/(-M+Math.sqrt(1+M*M)):q=1/(M+Math.sqrt(1+M*M)),p=1/Math.sqrt(1+q*q),d=q*p}return e=r.clone(r.IDENTITY,e),e[r.getElementIndex(m,m)]=e[r.getElementIndex(s,s)]=p,e[r.getElementIndex(s,m)]=d,e[r.getElementIndex(m,s)]=-d,e}var K=new r,Bn=new r;r.computeEigenDecomposition=function(n,e){c.typeOf.object("matrix",n);let o=w.EPSILON20,t=10,i=0,p=0;u(e)||(e={});let d=e.unitary=r.clone(r.IDENTITY,e.unitary),m=e.diagonal=r.clone(n,e.diagonal),s=o*me(m);for(;p<t&&se(m)>s;)Oe(m,K),r.transpose(K,Bn),r.multiply(m,K,m),r.multiply(Bn,m,m),r.multiply(d,K,d),++i>2&&(++p,i=0);return e};r.abs=function(n,e){return c.typeOf.object("matrix",n),c.typeOf.object("result",e),e[0]=Math.abs(n[0]),e[1]=Math.abs(n[1]),e[2]=Math.abs(n[2]),e[3]=Math.abs(n[3]),e[4]=Math.abs(n[4]),e[5]=Math.abs(n[5]),e[6]=Math.abs(n[6]),e[7]=Math.abs(n[7]),e[8]=Math.abs(n[8]),e};r.determinant=function(n){c.typeOf.object("matrix",n);let e=n[0],o=n[3],t=n[6],i=n[1],p=n[4],d=n[7],m=n[2],s=n[5],h=n[8];return e*(p*h-s*d)+i*(s*t-o*h)+m*(o*d-p*t)};r.inverse=function(n,e){c.typeOf.object("matrix",n),c.typeOf.object("result",e);let o=n[0],t=n[1],i=n[2],p=n[3],d=n[4],m=n[5],s=n[6],h=n[7],j=n[8],z=r.determinant(n);if(Math.abs(z)<=w.EPSILON15)throw new S("matrix is not invertible");e[0]=d*j-h*m,e[1]=h*i-t*j,e[2]=t*m-d*i,e[3]=s*m-p*j,e[4]=o*j-s*i,e[5]=p*i-o*m,e[6]=p*h-s*d,e[7]=s*t-o*h,e[8]=o*d-p*t;let M=1/z;return r.multiplyByScalar(e,M,e)};var be=new r;r.inverseTranspose=function(n,e){return c.typeOf.object("matrix",n),c.typeOf.object("result",e),r.inverse(r.transpose(n,be),e)};r.equals=function(n,e){return n===e||u(n)&&u(e)&&n[0]===e[0]&&n[1]===e[1]&&n[2]===e[2]&&n[3]===e[3]&&n[4]===e[4]&&n[5]===e[5]&&n[6]===e[6]&&n[7]===e[7]&&n[8]===e[8]};r.equalsEpsilon=function(n,e,o){return o=O(o,0),n===e||u(n)&&u(e)&&Math.abs(n[0]-e[0])<=o&&Math.abs(n[1]-e[1])<=o&&Math.abs(n[2]-e[2])<=o&&Math.abs(n[3]-e[3])<=o&&Math.abs(n[4]-e[4])<=o&&Math.abs(n[5]-e[5])<=o&&Math.abs(n[6]-e[6])<=o&&Math.abs(n[7]-e[7])<=o&&Math.abs(n[8]-e[8])<=o};r.IDENTITY=Object.freeze(new r(1,0,0,0,1,0,0,0,1));r.ZERO=Object.freeze(new r(0,0,0,0,0,0,0,0,0));r.COLUMN0ROW0=0;r.COLUMN0ROW1=1;r.COLUMN0ROW2=2;r.COLUMN1ROW0=3;r.COLUMN1ROW1=4;r.COLUMN1ROW2=5;r.COLUMN2ROW0=6;r.COLUMN2ROW1=7;r.COLUMN2ROW2=8;Object.defineProperties(r.prototype,{length:{get:function(){return r.packedLength}}});r.prototype.clone=function(n){return r.clone(this,n)};r.prototype.equals=function(n){return r.equals(this,n)};r.equalsArray=function(n,e,o){return n[0]===e[o]&&n[1]===e[o+1]&&n[2]===e[o+2]&&n[3]===e[o+3]&&n[4]===e[o+4]&&n[5]===e[o+5]&&n[6]===e[o+6]&&n[7]===e[o+7]&&n[8]===e[o+8]};r.prototype.equalsEpsilon=function(n,e){return r.equalsEpsilon(this,n,e)};r.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var Oo=r;var F,R={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},_={};Object.defineProperties(_,{element:{get:function(){if(_.supportsFullscreen())return document[R.fullscreenElement]}},changeEventName:{get:function(){if(_.supportsFullscreen())return R.fullscreenchange}},errorEventName:{get:function(){if(_.supportsFullscreen())return R.fullscreenerror}},enabled:{get:function(){if(_.supportsFullscreen())return document[R.fullscreenEnabled]}},fullscreen:{get:function(){if(_.supportsFullscreen())return _.element!==null}}});_.supportsFullscreen=function(){if(u(F))return F;F=!1;let n=document.body;if(typeof n.requestFullscreen=="function")return R.requestFullscreen="requestFullscreen",R.exitFullscreen="exitFullscreen",R.fullscreenEnabled="fullscreenEnabled",R.fullscreenElement="fullscreenElement",R.fullscreenchange="fullscreenchange",R.fullscreenerror="fullscreenerror",F=!0,F;let e=["webkit","moz","o","ms","khtml"],o;for(let t=0,i=e.length;t<i;++t){let p=e[t];o=`${p}RequestFullscreen`,typeof n[o]=="function"?(R.requestFullscreen=o,F=!0):(o=`${p}RequestFullScreen`,typeof n[o]=="function"&&(R.requestFullscreen=o,F=!0)),o=`${p}ExitFullscreen`,typeof document[o]=="function"?R.exitFullscreen=o:(o=`${p}CancelFullScreen`,typeof document[o]=="function"&&(R.exitFullscreen=o)),o=`${p}FullscreenEnabled`,document[o]!==void 0?R.fullscreenEnabled=o:(o=`${p}FullScreenEnabled`,document[o]!==void 0&&(R.fullscreenEnabled=o)),o=`${p}FullscreenElement`,document[o]!==void 0?R.fullscreenElement=o:(o=`${p}FullScreenElement`,document[o]!==void 0&&(R.fullscreenElement=o)),o=`${p}fullscreenchange`,document[`on${o}`]!==void 0&&(p==="ms"&&(o="MSFullscreenChange"),R.fullscreenchange=o),o=`${p}fullscreenerror`,document[`on${o}`]!==void 0&&(p==="ms"&&(o="MSFullscreenError"),R.fullscreenerror=o)}return F};_.requestFullscreen=function(n,e){_.supportsFullscreen()&&n[R.requestFullscreen]({vrDisplay:e})};_.exitFullscreen=function(){_.supportsFullscreen()&&document[R.exitFullscreen]()};_._names=R;var Un=_;var A;typeof navigator<"u"?A=navigator:A={};function B(n){let e=n.split(".");for(let o=0,t=e.length;o<t;++o)e[o]=parseInt(e[o],10);return e}var J,In;function zn(){if(!u(J)&&(J=!1,!fn())){let n=/ Chrome\/([\.0-9]+)/.exec(A.userAgent);n!==null&&(J=!0,In=B(n[1]))}return J}function he(){return zn()&&In}var nn,Pn;function Ln(){if(!u(nn)&&(nn=!1,!zn()&&!fn()&&/ Safari\/[\.0-9]+/.test(A.userAgent))){let n=/ Version\/([\.0-9]+)/.exec(A.userAgent);n!==null&&(nn=!0,Pn=B(n[1]))}return nn}function we(){return Ln()&&Pn}var en,gn;function Vn(){if(!u(en)){en=!1;let n=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(A.userAgent);n!==null&&(en=!0,gn=B(n[1]),gn.isNightly=!!n[2])}return en}function je(){return Vn()&&gn}var Z,Sn;function Wn(){if(!u(Z)){Z=!1;let n;A.appName==="Microsoft Internet Explorer"?(n=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(A.userAgent),n!==null&&(Z=!0,Sn=B(n[1]))):A.appName==="Netscape"&&(n=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(A.userAgent),n!==null&&(Z=!0,Sn=B(n[1])))}return Z}function ge(){return Wn()&&Sn}var on,vn;function fn(){if(!u(on)){on=!1;let n=/ Edg\/([\.0-9]+)/.exec(A.userAgent);n!==null&&(on=!0,vn=B(n[1]))}return on}function Se(){return fn()&&vn}var tn,Rn;function rn(){if(!u(tn)){tn=!1;let n=/Firefox\/([\.0-9]+)/.exec(A.userAgent);n!==null&&(tn=!0,Rn=B(n[1]))}return tn}var hn;function ze(){return u(hn)||(hn=/Windows/i.test(A.appVersion)),hn}var wn;function Re(){return u(wn)||(wn=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),wn}function Me(){return rn()&&Rn}var jn;function qe(){return u(jn)||(jn=!rn()&&typeof PointerEvent<"u"&&(!u(A.pointerEnabled)||A.pointerEnabled)),jn}var $n,cn;function Dn(){if(!u(cn)){let n=document.createElement("canvas");n.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let e=n.style.imageRendering;cn=u(e)&&e!=="",cn&&($n=e)}return cn}function Ee(){return Dn()?$n:void 0}function E(){if(!E.initialized)throw new S("You must call FeatureDetection.supportsWebP.initialize and wait for the promise to resolve before calling FeatureDetection.supportsWebP");return E._result}E._promise=void 0;E._result=void 0;E.initialize=function(){return u(E._promise)||(E._promise=new Promise(n=>{let e=new Image;e.onload=function(){E._result=e.width>0&&e.height>0,n(E._result)},e.onerror=function(){E._result=!1,n(E._result)},e.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),E._promise};Object.defineProperties(E,{initialized:{get:function(){return u(E._result)}}});var $=[];typeof ArrayBuffer<"u"&&($.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&$.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&$.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&$.push(BigInt64Array),typeof BigUint64Array<"u"&&$.push(BigUint64Array));var T={isChrome:zn,chromeVersion:he,isSafari:Ln,safariVersion:we,isWebkit:Vn,webkitVersion:je,isInternetExplorer:Wn,internetExplorerVersion:ge,isEdge:fn,edgeVersion:Se,isFirefox:rn,firefoxVersion:Me,isWindows:ze,isIPadOrIOS:Re,hardwareConcurrency:O(A.hardwareConcurrency,3),supportsPointerEvents:qe,supportsImageRenderingPixelated:Dn,supportsWebP:E,imageRenderingValue:Ee,typedArrayTypes:$};T.supportsBasis=function(n){return T.supportsWebAssembly()&&n.context.supportsBasis};T.supportsFullscreen=function(){return Un.supportsFullscreen()};T.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};T.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};T.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};T.supportsBigInt=function(){return typeof BigInt<"u"};T.supportsWebWorkers=function(){return typeof Worker<"u"};T.supportsWebAssembly=function(){return typeof WebAssembly<"u"};T.supportsWebgl2=function(n){return c.defined("scene",n),n.context.webgl2};T.supportsEsmWebWorkers=function(){return!rn()||parseInt(Rn)>=114};var Mo=T;export{y as a,D as b,mn as c,fo as d,Oo as e,Mo as f}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AXIFPJHM.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AXIFPJHM.js new file mode 100644 index 000000000..9b3a799d1 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-AXIFPJHM.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as S}from"./chunk-E5APRSR6.js";import{a as j}from"./chunk-6UMNSGJM.js";import{a as D}from"./chunk-T53UE6JF.js";import{a as V}from"./chunk-RYO6NY7F.js";import{b as T,c as B,d as L}from"./chunk-2HSPJH3C.js";import{d as O}from"./chunk-T5AUOWE7.js";import{a as x}from"./chunk-6QVIJ7JA.js";import{a as c,d as l}from"./chunk-AODSXSC5.js";import{a as E}from"./chunk-IISQCXJ5.js";import{a as m}from"./chunk-WHQYJFDH.js";import{a as _}from"./chunk-OYWUGDKS.js";import{e as d}from"./chunk-DRYFJEFT.js";var q=new c,M=new c;function U(e){let t=e.center;M=c.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,M),e.height,M),M=c.add(t,M,M);let i=new O(M,e.semiMajorAxis),f=S.computeEllipsePositions(e,!1,!0).outerPositions,o=new V({position:new L({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:S.raisePositionsToHeight(f,e,!1)})}),r=f.length/3,u=D.createTypedArray(r,r*2),h=0;for(let n=0;n<r;++n)u[h++]=n,u[h++]=(n+1)%r;return{boundingSphere:i,attributes:o,indices:u}}var N=new O,P=new O;function R(e){let t=e.center,i=e.ellipsoid,f=e.semiMajorAxis,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,q),e.height,q);N.center=c.add(t,o,N.center),N.radius=f,o=c.multiplyByScalar(i.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),P.center=c.add(t,o,P.center),P.radius=f;let r=S.computeEllipsePositions(e,!1,!0).outerPositions,u=new V({position:new L({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:S.raisePositionsToHeight(r,e,!0)})});r=u.position.values;let h=O.union(N,P),n=r.length/3;if(d(e.offsetAttribute)){let g=new Uint8Array(n);if(e.offsetAttribute===j.TOP)g=g.fill(1,0,n/2);else{let H=e.offsetAttribute===j.NONE?0:1;g=g.fill(H)}u.applyOffset=new L({componentDatatype:x.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let p=m(e.numberOfVerticalLines,16);p=E.clamp(p,0,n/2);let a=D.createTypedArray(n,n*2+p*2);n/=2;let A=0,s;for(s=0;s<n;++s)a[A++]=s,a[A++]=(s+1)%n,a[A++]=s+n,a[A++]=(s+1)%n+n;let k;if(p>0){let g=Math.min(p,n);k=Math.round(n/g);let H=Math.min(k*p,n);for(s=0;s<H;s+=k)a[A++]=s,a[A++]=s+n}return{boundingSphere:h,attributes:u,indices:a}}function w(e){e=m(e,m.EMPTY_OBJECT);let t=e.center,i=m(e.ellipsoid,l.default),f=e.semiMajorAxis,o=e.semiMinorAxis,r=m(e.granularity,E.RADIANS_PER_DEGREE);if(!d(t))throw new _("center is required.");if(!d(f))throw new _("semiMajorAxis is required.");if(!d(o))throw new _("semiMinorAxis is required.");if(f<o)throw new _("semiMajorAxis must be greater than or equal to the semiMinorAxis.");if(r<=0)throw new _("granularity must be greater than zero.");let u=m(e.height,0),h=m(e.extrudedHeight,u);this._center=c.clone(t),this._semiMajorAxis=f,this._semiMinorAxis=o,this._ellipsoid=l.clone(i),this._rotation=m(e.rotation,0),this._height=Math.max(h,u),this._granularity=r,this._extrudedHeight=Math.min(h,u),this._numberOfVerticalLines=Math.max(m(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}w.packedLength=c.packedLength+l.packedLength+8;w.pack=function(e,t,i){if(!d(e))throw new _("value is required");if(!d(t))throw new _("array is required");return i=m(i,0),c.pack(e._center,t,i),i+=c.packedLength,l.pack(e._ellipsoid,t,i),i+=l.packedLength,t[i++]=e._semiMajorAxis,t[i++]=e._semiMinorAxis,t[i++]=e._rotation,t[i++]=e._height,t[i++]=e._granularity,t[i++]=e._extrudedHeight,t[i++]=e._numberOfVerticalLines,t[i]=m(e._offsetAttribute,-1),t};var y=new c,C=new l,b={center:y,ellipsoid:C,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};w.unpack=function(e,t,i){if(!d(e))throw new _("array is required");t=m(t,0);let f=c.unpack(e,t,y);t+=c.packedLength;let o=l.unpack(e,t,C);t+=l.packedLength;let r=e[t++],u=e[t++],h=e[t++],n=e[t++],p=e[t++],a=e[t++],A=e[t++],s=e[t];return d(i)?(i._center=c.clone(f,i._center),i._ellipsoid=l.clone(o,i._ellipsoid),i._semiMajorAxis=r,i._semiMinorAxis=u,i._rotation=h,i._height=n,i._granularity=p,i._extrudedHeight=a,i._numberOfVerticalLines=A,i._offsetAttribute=s===-1?void 0:s,i):(b.height=n,b.extrudedHeight=a,b.granularity=p,b.rotation=h,b.semiMajorAxis=r,b.semiMinorAxis=u,b.numberOfVerticalLines=A,b.offsetAttribute=s===-1?void 0:s,new w(b))};w.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,i=e._extrudedHeight,f=!E.equalsEpsilon(t,i,0,E.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(f)o.extrudedHeight=i,o.offsetAttribute=e._offsetAttribute,r=R(o);else if(r=U(o),d(e._offsetAttribute)){let u=r.attributes.position.values.length,h=e._offsetAttribute===j.NONE?0:1,n=new Uint8Array(u/3).fill(h);r.attributes.applyOffset=new L({componentDatatype:x.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}return new B({attributes:r.attributes,indices:r.indices,primitiveType:T.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var ie=w;export{ie as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-B4L3YPI4.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-B4L3YPI4.js new file mode 100644 index 000000000..e54e9368e --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-B4L3YPI4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z}from"./chunk-T5AUOWE7.js";import{i as I,j as b}from"./chunk-Y5B6Y3WD.js";import{a as W,b as O,d as L}from"./chunk-AODSXSC5.js";import{a as m}from"./chunk-IISQCXJ5.js";import{a as v}from"./chunk-OYWUGDKS.js";import{e as k}from"./chunk-DRYFJEFT.js";var Z=Math.cos,B=Math.sin,p=Math.sqrt,N={};N.computePosition=function(t,M,g,u,G,h,a){let e=M.radiiSquared,i=t.nwCorner,r=t.boundingRectangle,n=i.latitude-t.granYCos*u+G*t.granXSin,d=Z(n),X=B(n),Y=e.z*X,s=i.longitude+u*t.granYSin+G*t.granXCos,S=d*Z(s),f=d*B(s),w=e.x*S,R=e.y*f,_=p(w*S+R*f+Y*X);if(h.x=w/_,h.y=R/_,h.z=Y/_,g){let o=t.stNwCorner;k(o)?(n=o.latitude-t.stGranYCos*u+G*t.stGranXSin,s=o.longitude+u*t.stGranYSin+G*t.stGranXCos,a.x=(s-t.stWest)*t.lonScalar,a.y=(n-t.stSouth)*t.latScalar):(a.x=(s-r.west)*t.lonScalar,a.y=(n-r.south)*t.latScalar)}};var A=new b,l=new W,F=new O,j=new W,y=new z;function D(t,M,g,u,G,h,a){let e=Math.cos(M),i=u*e,r=g*e,n=Math.sin(M),d=u*n,X=g*n;y._ellipsoid=L.default,l=y.project(t,l),l=W.subtract(l,j,l);let Y=b.fromRotation(M,A);l=b.multiplyByVector(Y,l,l),l=W.add(l,j,l),t=y.unproject(l,t),h-=1,a-=1;let s=t.latitude,S=s+h*X,f=s-i*a,w=s-i*a+h*X,R=Math.max(s,S,f,w),_=Math.min(s,S,f,w),o=t.longitude,E=o+h*r,T=o+a*d,V=o+a*d+h*r,q=Math.max(o,E,T,V),x=Math.min(o,E,T,V);return{north:R,south:_,east:q,west:x,granYCos:i,granYSin:d,granXCos:r,granXSin:X,nwCorner:t}}N.computeOptions=function(t,M,g,u,G,h,a){let e=t.east,i=t.west,r=t.north,n=t.south,d=!1,X=!1;r===m.PI_OVER_TWO&&(d=!0),n===-m.PI_OVER_TWO&&(X=!0);let Y,s=r-n;i>e?Y=m.TWO_PI-i+e:Y=e-i;let S=Math.ceil(Y/M)+1,f=Math.ceil(s/M)+1,w=Y/(S-1),R=s/(f-1),_=I.northwest(t,h),o=I.center(t,F);(g!==0||u!==0)&&(o.longitude<_.longitude&&(o.longitude+=m.TWO_PI),y._ellipsoid=L.default,j=y.project(o,j));let E=R,T=w,V=0,q=0,x=I.clone(t,G),c={granYCos:E,granYSin:V,granXCos:T,granXSin:q,nwCorner:_,boundingRectangle:x,width:S,height:f,northCap:d,southCap:X};if(g!==0){let C=D(_,g,w,R,o,S,f);if(r=C.north,n=C.south,e=C.east,i=C.west,r<-m.PI_OVER_TWO||r>m.PI_OVER_TWO||n<-m.PI_OVER_TWO||n>m.PI_OVER_TWO)throw new v("Rotated rectangle is invalid. It crosses over either the north or south pole.");c.granYCos=C.granYCos,c.granYSin=C.granYSin,c.granXCos=C.granXCos,c.granXSin=C.granXSin,x.north=r,x.south=n,x.east=e,x.west=i}if(u!==0){g=g-u;let C=I.northwest(x,a),P=D(C,g,w,R,o,S,f);c.stGranYCos=P.granYCos,c.stGranXCos=P.granXCos,c.stGranYSin=P.granYSin,c.stGranXSin=P.granXSin,c.stNwCorner=C,c.stWest=P.west,c.stSouth=P.south}return c};var st=N;export{st as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BLYOACVP.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BLYOACVP.js new file mode 100644 index 000000000..6ddecdb39 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BLYOACVP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _}from"./chunk-6DBAMVE2.js";import{a as M}from"./chunk-XDFUUQMZ.js";import{b as G}from"./chunk-UKQRKTK2.js";import{a as b}from"./chunk-LNO7O274.js";import{b as R}from"./chunk-Y5B6Y3WD.js";import{a,b as L,d as z}from"./chunk-AODSXSC5.js";import{a as E}from"./chunk-IISQCXJ5.js";import{a as C}from"./chunk-WHQYJFDH.js";import{a as I}from"./chunk-OYWUGDKS.js";import{e as T}from"./chunk-DRYFJEFT.js";var p={};p.numberOfPoints=function(r,n,o){let e=a.distance(r,n);return Math.ceil(e/o)};p.numberOfPointsRhumbLine=function(r,n,o){let e=Math.pow(r.longitude-n.longitude,2)+Math.pow(r.latitude-n.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(e/(o*o))))};var V=new L;p.extractHeights=function(r,n){let o=r.length,e=new Array(o);for(let t=0;t<o;t++){let l=r[t];e[t]=n.cartesianToCartographic(l,V).height}return e};var Y=new R,F=new a,v=new a,j=new b(a.UNIT_X,0),H=new a,J=new b(a.UNIT_X,0),K=new a,Q=new a,k=[];function q(r,n,o){let e=k;e.length=r;let t;if(n===o){for(t=0;t<r;t++)e[t]=n;return e}let u=(o-n)/r;for(t=0;t<r;t++){let d=n+t*u;e[t]=d}return e}var x=new L,N=new L,D=new a,B=new a,W=new a,O=new _,S=new M;function $(r,n,o,e,t,l,u,d){let i=e.scaleToGeodeticSurface(r,B),w=e.scaleToGeodeticSurface(n,W),h=p.numberOfPoints(r,n,o),f=e.cartesianToCartographic(i,x),y=e.cartesianToCartographic(w,N),g=q(h,t,l);O.setEndPoints(f,y);let P=O.surfaceDistance/h,c=d;f.height=t;let s=e.cartographicToCartesian(f,D);a.pack(s,u,c),c+=3;for(let m=1;m<h;m++){let A=O.interpolateUsingSurfaceDistance(m*P,N);A.height=g[m],s=e.cartographicToCartesian(A,D),a.pack(s,u,c),c+=3}return c}function tt(r,n,o,e,t,l,u,d){let i=e.cartesianToCartographic(r,x),w=e.cartesianToCartographic(n,N),h=p.numberOfPointsRhumbLine(i,w,o);i.height=0,w.height=0;let f=q(h,t,l);S.ellipsoid.equals(e)||(S=new M(void 0,void 0,e)),S.setEndPoints(i,w);let y=S.surfaceDistance/h,g=d;i.height=t;let P=e.cartographicToCartesian(i,D);a.pack(P,u,g),g+=3;for(let c=1;c<h;c++){let s=S.interpolateUsingSurfaceDistance(c*y,N);s.height=f[c],P=e.cartographicToCartesian(s,D),a.pack(P,u,g),g+=3}return g}p.wrapLongitude=function(r,n){let o=[],e=[];if(T(r)&&r.length>0){n=C(n,R.IDENTITY);let t=R.inverseTransformation(n,Y),l=R.multiplyByPoint(t,a.ZERO,F),u=a.normalize(R.multiplyByPointAsVector(t,a.UNIT_Y,v),v),d=b.fromPointNormal(l,u,j),i=a.normalize(R.multiplyByPointAsVector(t,a.UNIT_X,H),H),w=b.fromPointNormal(l,i,J),h=1;o.push(a.clone(r[0]));let f=o[0],y=r.length;for(let g=1;g<y;++g){let P=r[g];if(b.getPointDistance(w,f)<0||b.getPointDistance(w,P)<0){let c=G.lineSegmentPlane(f,P,d,K);if(T(c)){let s=a.multiplyByScalar(u,5e-9,Q);b.getPointDistance(d,f)<0&&a.negate(s,s),o.push(a.add(c,s,new a)),e.push(h+1),a.negate(s,s),o.push(a.add(c,s,new a)),h=1}}o.push(a.clone(r[g])),h++,f=P}e.push(h)}return{positions:o,lengths:e}};p.generateArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new I("options.positions is required.");let o=n.length,e=C(r.ellipsoid,z.default),t=C(r.height,0),l=Array.isArray(t);if(o<1)return[];if(o===1){let c=e.scaleToGeodeticSurface(n[0],B);if(t=l?t[0]:t,t!==0){let s=e.geodeticSurfaceNormal(c,D);a.multiplyByScalar(s,t,s),a.add(c,s,c)}return[c.x,c.y,c.z]}let u=r.minDistance;if(!T(u)){let c=C(r.granularity,E.RADIANS_PER_DEGREE);u=E.chordLength(c,e.maximumRadius)}let d=0,i;for(i=0;i<o-1;i++)d+=p.numberOfPoints(n[i],n[i+1],u);let w=(d+1)*3,h=new Array(w),f=0;for(i=0;i<o-1;i++){let c=n[i],s=n[i+1],m=l?t[i]:t,A=l?t[i+1]:t;f=$(c,s,u,e,m,A,h,f)}k.length=0;let y=n[o-1],g=e.cartesianToCartographic(y,x);g.height=l?t[o-1]:t;let P=e.cartographicToCartesian(g,D);return a.pack(P,h,w-3),h};var U=new L,et=new L;p.generateRhumbArc=function(r){T(r)||(r={});let n=r.positions;if(!T(n))throw new I("options.positions is required.");let o=n.length,e=C(r.ellipsoid,z.default),t=C(r.height,0),l=Array.isArray(t);if(o<1)return[];if(o===1){let m=e.scaleToGeodeticSurface(n[0],B);if(t=l?t[0]:t,t!==0){let A=e.geodeticSurfaceNormal(m,D);a.multiplyByScalar(A,t,A),a.add(m,A,m)}return[m.x,m.y,m.z]}let u=C(r.granularity,E.RADIANS_PER_DEGREE),d=0,i,w=e.cartesianToCartographic(n[0],U),h;for(i=0;i<o-1;i++)h=e.cartesianToCartographic(n[i+1],et),d+=p.numberOfPointsRhumbLine(w,h,u),w=L.clone(h,U);let f=(d+1)*3,y=new Array(f),g=0;for(i=0;i<o-1;i++){let m=n[i],A=n[i+1],X=l?t[i]:t,Z=l?t[i+1]:t;g=tt(m,A,u,e,X,Z,y,g)}k.length=0;let P=n[o-1],c=e.cartesianToCartographic(P,x);c.height=l?t[o-1]:t;let s=e.cartographicToCartesian(c,D);return a.pack(s,y,f-3),y};p.generateCartesianArc=function(r){let n=p.generateArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};p.generateCartesianRhumbArc=function(r){let n=p.generateRhumbArc(r),o=n.length/3,e=new Array(o);for(let t=0;t<o;t++)e[t]=a.unpack(n,t*3);return e};var mt=p;export{mt as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BRFVOFKF.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BRFVOFKF.js new file mode 100644 index 000000000..50bdfd127 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BRFVOFKF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-IISQCXJ5.js";import{a as g}from"./chunk-WHQYJFDH.js";import{b as d}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";var u=C.EPSILON10;function x(e,r,h,l){if(d.defined("equalsEpsilon",r),!i(e))return;h=g(h,!1);let m=i(l),n=e.length;if(n<2)return e;let f,s=e[0],o,t,p=0,c=-1;for(f=1;f<n;++f)o=e[f],r(s,o,u)?(i(t)||(t=e.slice(0,f),p=f-1,c=0),m&&l.push(f)):(i(t)&&(t.push(o),p=f,m&&(c=l.length)),s=o);return h&&r(e[0],e[n-1],u)&&(m&&(i(t)?l.splice(c,0,p):l.push(n-1)),i(t)?t.length-=1:t=e.slice(0,-1)),i(t)?t:e}var a=x;export{a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BSHGEEYG.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BSHGEEYG.js new file mode 100644 index 000000000..dd1e4c40f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-BSHGEEYG.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-CHGCLMPO.js";import{a as j,b as d}from"./chunk-UKQRKTK2.js";import{a as O}from"./chunk-LNO7O274.js";import{a as A,b as m,g as u}from"./chunk-Y5B6Y3WD.js";import{a as e,c as l,d as _}from"./chunk-AODSXSC5.js";import{a as g}from"./chunk-WHQYJFDH.js";import{a as y,b as p}from"./chunk-OYWUGDKS.js";import{e as r}from"./chunk-DRYFJEFT.js";var x=new A;function s(n,t){if(p.defined("origin",n),t=g(t,_.default),n=t.scaleToGeodeticSurface(n),!r(n))throw new y("origin must not be at the center of the ellipsoid.");let o=u.eastNorthUpToFixedFrame(n,t);this._ellipsoid=t,this._origin=n,this._xAxis=e.fromCartesian4(m.getColumn(o,0,x)),this._yAxis=e.fromCartesian4(m.getColumn(o,1,x));let i=e.fromCartesian4(m.getColumn(o,2,x));this._plane=O.fromPointNormal(n,i)}Object.defineProperties(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var C=new P;s.fromPoints=function(n,t){p.defined("cartesians",n);let o=P.fromPoints(n,C);return new s(o.center,t)};var w=new j,h=new e;s.prototype.projectPointOntoPlane=function(n,t){p.defined("cartesian",n);let o=w;o.origin=n,e.normalize(n,o.direction);let i=d.rayPlane(o,this._plane,h);if(r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,h)),r(i)){let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return r(t)?(t.x=a,t.y=f,t):new l(a,f)}};s.prototype.projectPointsOntoPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=0,i=n.length;for(let c=0;c<i;c++){let a=this.projectPointOntoPlane(n[c],t[o]);r(a)&&(t[o]=a,o++)}return t.length=o,t};s.prototype.projectPointToNearestOnPlane=function(n,t){p.defined("cartesian",n),r(t)||(t=new l);let o=w;o.origin=n,e.clone(this._plane.normal,o.direction);let i=d.rayPlane(o,this._plane,h);r(i)||(e.negate(o.direction,o.direction),i=d.rayPlane(o,this._plane,h));let c=e.subtract(i,this._origin,i),a=e.dot(this._xAxis,c),f=e.dot(this._yAxis,c);return t.x=a,t.y=f,t};s.prototype.projectPointsToNearestOnPlane=function(n,t){p.defined("cartesians",n),r(t)||(t=[]);let o=n.length;t.length=o;for(let i=0;i<o;i++)t[i]=this.projectPointToNearestOnPlane(n[i],t[i]);return t};var T=new e;s.prototype.projectPointOntoEllipsoid=function(n,t){p.defined("cartesian",n),r(t)||(t=new e);let o=this._ellipsoid,i=this._origin,c=this._xAxis,a=this._yAxis,f=T;return e.multiplyByScalar(c,n.x,f),t=e.add(i,f,t),e.multiplyByScalar(a,n.y,f),e.add(t,f,t),o.scaleToGeocentricSurface(t,t),t};s.prototype.projectPointsOntoEllipsoid=function(n,t){p.defined("cartesians",n);let o=n.length;r(t)?t.length=o:t=new Array(o);for(let i=0;i<o;++i)t[i]=this.projectPointOntoEllipsoid(n[i],t[i]);return t};var M=s;export{M as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-C6CGQVLL.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-C6CGQVLL.js new file mode 100644 index 000000000..dc11c653f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-C6CGQVLL.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-IISQCXJ5.js";var C={};C.computePositions=function(I,f,b,n,e){let m=I*.5,i=-m,s=n+n,P=e?2*s:s,t=new Float64Array(P*3),r,c=0,o=0,p=e?s*3:0,a=e?(s+n)*3:n*3;for(r=0;r<n;r++){let y=r/n*w.TWO_PI,x=Math.cos(y),h=Math.sin(y),u=x*b,M=h*b,O=x*f,d=h*f;t[o+p]=u,t[o+p+1]=M,t[o+p+2]=i,t[o+a]=O,t[o+a+1]=d,t[o+a+2]=m,o+=3,e&&(t[c++]=u,t[c++]=M,t[c++]=i,t[c++]=O,t[c++]=d,t[c++]=m)}return t};var Y=C;export{Y as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-CHGCLMPO.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-CHGCLMPO.js new file mode 100644 index 000000000..8236551c0 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-CHGCLMPO.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as d}from"./chunk-T5AUOWE7.js";import{a as i}from"./chunk-AODSXSC5.js";import{a as z}from"./chunk-WHQYJFDH.js";import{b as r}from"./chunk-OYWUGDKS.js";import{e as c}from"./chunk-DRYFJEFT.js";function t(m,n,e){this.minimum=i.clone(z(m,i.ZERO)),this.maximum=i.clone(z(n,i.ZERO)),c(e)?e=i.clone(e):e=i.midpoint(this.minimum,this.maximum,new i),this.center=e}t.fromCorners=function(m,n,e){return r.defined("minimum",m),r.defined("maximum",n),c(e)||(e=new t),e.minimum=i.clone(m,e.minimum),e.maximum=i.clone(n,e.maximum),e.center=i.midpoint(m,n,e.center),e};t.fromPoints=function(m,n){if(c(n)||(n=new t),!c(m)||m.length===0)return n.minimum=i.clone(i.ZERO,n.minimum),n.maximum=i.clone(i.ZERO,n.maximum),n.center=i.clone(i.ZERO,n.center),n;let e=m[0].x,a=m[0].y,u=m[0].z,o=m[0].x,y=m[0].y,l=m[0].z,I=m.length;for(let E=1;E<I;E++){let M=m[E],p=M.x,Z=M.y,q=M.z;e=Math.min(p,e),o=Math.max(p,o),a=Math.min(Z,a),y=Math.max(Z,y),u=Math.min(q,u),l=Math.max(q,l)}let f=n.minimum;f.x=e,f.y=a,f.z=u;let x=n.maximum;return x.x=o,x.y=y,x.z=l,n.center=i.midpoint(f,x,n.center),n};t.clone=function(m,n){if(c(m))return c(n)?(n.minimum=i.clone(m.minimum,n.minimum),n.maximum=i.clone(m.maximum,n.maximum),n.center=i.clone(m.center,n.center),n):new t(m.minimum,m.maximum,m.center)};t.equals=function(m,n){return m===n||c(m)&&c(n)&&i.equals(m.center,n.center)&&i.equals(m.minimum,n.minimum)&&i.equals(m.maximum,n.maximum)};var h=new i;t.intersectPlane=function(m,n){r.defined("box",m),r.defined("plane",n),h=i.subtract(m.maximum,m.minimum,h);let e=i.multiplyByScalar(h,.5,h),a=n.normal,u=e.x*Math.abs(a.x)+e.y*Math.abs(a.y)+e.z*Math.abs(a.z),o=i.dot(m.center,a)+n.distance;return o-u>0?d.INSIDE:o+u<0?d.OUTSIDE:d.INTERSECTING};t.prototype.clone=function(m){return t.clone(this,m)};t.prototype.intersectPlane=function(m){return t.intersectPlane(this,m)};t.prototype.equals=function(m){return t.equals(this,m)};var P=t;export{P as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-DRYFJEFT.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-DRYFJEFT.js new file mode 100644 index 000000000..e530d3077 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-DRYFJEFT.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var i=Object.create;var u=Object.defineProperty;var r=Object.getOwnPropertyDescriptor;var l=Object.getOwnPropertyNames;var o=Object.getPrototypeOf,c=Object.prototype.hasOwnProperty;var a=(n=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(n,{get:(e,d)=>(typeof require<"u"?require:e)[d]}):n)(function(n){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+n+'" is not supported')}),b=n=>e=>{var d=n[e];if(d)return d();throw new Error("Module not found in bundle: "+e)};var g=(n,e)=>()=>(e||n((e={exports:{}}).exports,e),e.exports);var p=(n,e,d,t)=>{if(e&&typeof e=="object"||typeof e=="function")for(let f of l(e))!c.call(n,f)&&f!==d&&u(n,f,{get:()=>e[f],enumerable:!(t=r(e,f))||t.enumerable});return n};var h=(n,e,d)=>(d=n!=null?i(o(n)):{},p(e||!n||!n.__esModule?u(d,"default",{value:n,enumerable:!0}):d,n));function x(n){return n!=null}var k=x;export{a,b,g as c,h as d,k as e}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E3BAMNKM.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E3BAMNKM.js new file mode 100644 index 000000000..16faf6428 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E3BAMNKM.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var e={NONE:0,GEODESIC:1,RHUMB:2},t=Object.freeze(e);export{t as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E5APRSR6.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E5APRSR6.js new file mode 100644 index 000000000..068149710 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-E5APRSR6.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as C}from"./chunk-Y5B6Y3WD.js";import{a as n,e as b}from"./chunk-AODSXSC5.js";import{a as w}from"./chunk-IISQCXJ5.js";var j={},q=new n,L=new n,Q=new C,G=new b;function W(m,O,p,S,g,_,d,f,M,s){let a=m+O;n.multiplyByScalar(S,Math.cos(a),q),n.multiplyByScalar(p,Math.sin(a),L),n.add(q,L,q);let u=Math.cos(m);u=u*u;let l=Math.sin(m);l=l*l;let h=_/Math.sqrt(d*u+g*l)/f;return C.fromAxisAngle(q,h,Q),b.fromQuaternion(Q,G),b.multiplyByVector(G,M,s),n.normalize(s,s),n.multiplyByScalar(s,f,s),s}var U=new n,Z=new n,N=new n,v=new n;j.raisePositionsToHeight=function(m,O,p){let S=O.ellipsoid,g=O.height,_=O.extrudedHeight,d=p?m.length/3*2:m.length/3,f=new Float64Array(d*3),M=m.length,s=p?M:0;for(let a=0;a<M;a+=3){let u=a+1,l=a+2,r=n.fromArray(m,a,U);S.scaleToGeodeticSurface(r,r);let h=n.clone(r,Z),x=S.geodeticSurfaceNormal(r,v),P=n.multiplyByScalar(x,g,N);n.add(r,P,r),p&&(n.multiplyByScalar(x,_,P),n.add(h,P,h),f[a+s]=h.x,f[u+s]=h.y,f[l+s]=h.z),f[a]=r.x,f[u]=r.y,f[l]=r.z}return f};var D=new n,J=new n,K=new n;j.computeEllipsePositions=function(m,O,p){let S=m.semiMinorAxis,g=m.semiMajorAxis,_=m.rotation,d=m.center,f=m.granularity*8,M=S*S,s=g*g,a=g*S,u=n.magnitude(d),l=n.normalize(d,D),r=n.cross(n.UNIT_Z,d,J);r=n.normalize(r,r);let h=n.cross(l,r,K),x=1+Math.ceil(w.PI_OVER_TWO/f),P=w.PI_OVER_TWO/(x-1),y=w.PI_OVER_TWO-x*P;y<0&&(x-=Math.ceil(Math.abs(y)/P));let k=2*(x*(x+2)),e=O?new Array(k*3):void 0,o=0,t=U,i=Z,H=x*4*3,z=H-1,A=0,c=p?new Array(H):void 0,I,T,R,E,V;for(y=w.PI_OVER_TWO,t=W(y,_,h,r,M,a,s,u,l,t),O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x),y=w.PI_OVER_TWO-P,I=1;I<x+1;++I){if(t=W(y,_,h,r,M,a,s,u,l,t),i=W(Math.PI-y,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*I+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z),y=w.PI_OVER_TWO-(I+1)*P}for(I=x;I>1;--I){if(y=w.PI_OVER_TWO-(I-1)*P,t=W(-y,_,h,r,M,a,s,u,l,t),i=W(y+Math.PI,_,h,r,M,a,s,u,l,i),O){for(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,R=2*(I-1)+2,T=1;T<R-1;++T)E=T/(R-1),V=n.lerp(t,i,E,N),e[o++]=V.x,e[o++]=V.y,e[o++]=V.z;e[o++]=i.x,e[o++]=i.y,e[o++]=i.z}p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,c[A++]=i.x,c[A++]=i.y,c[A++]=i.z)}y=w.PI_OVER_TWO,t=W(-y,_,h,r,M,a,s,u,l,t);let B={};return O&&(e[o++]=t.x,e[o++]=t.y,e[o++]=t.z,B.positions=e,B.numPts=x),p&&(c[z--]=t.z,c[z--]=t.y,c[z--]=t.x,B.outerPositions=c),B};var tt=j;export{tt as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-EEABWYUP.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-EEABWYUP.js new file mode 100644 index 000000000..69141c4fa --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-EEABWYUP.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as E}from"./chunk-QNEABTP2.js";import{a as Q}from"./chunk-LNO7O274.js";import{a as ae}from"./chunk-RYO6NY7F.js";import{b as oe,c as re,d as J}from"./chunk-2HSPJH3C.js";import{b as A,d as ie}from"./chunk-T5AUOWE7.js";import{a as b,b as F,f as N}from"./chunk-Y5B6Y3WD.js";import{a as H}from"./chunk-6QVIJ7JA.js";import{a as r,e as G}from"./chunk-AODSXSC5.js";import{a as P}from"./chunk-IISQCXJ5.js";import{a as m}from"./chunk-WHQYJFDH.js";import{a as w,b as O}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function T(e){this.planes=m(e,[])}var X=[new r,new r,new r];r.clone(r.UNIT_X,X[0]);r.clone(r.UNIT_Y,X[1]);r.clone(r.UNIT_Z,X[2]);var V=new r,_e=new r,fe=new Q(new r(1,0,0),0);T.fromBoundingSphere=function(e,t){if(!a(e))throw new w("boundingSphere is required.");a(t)||(t=new T);let n=X.length,f=t.planes;f.length=2*n;let p=e.center,d=e.radius,s=0;for(let y=0;y<n;++y){let i=X[y],c=f[s],_=f[s+1];a(c)||(c=f[s]=new b),a(_)||(_=f[s+1]=new b),r.multiplyByScalar(i,-d,V),r.add(p,V,V),c.x=i.x,c.y=i.y,c.z=i.z,c.w=-r.dot(i,V),r.multiplyByScalar(i,d,V),r.add(p,V,V),_.x=-i.x,_.y=-i.y,_.z=-i.z,_.w=-r.dot(r.negate(i,_e),V),s+=2}return t};T.prototype.computeVisibility=function(e){if(!a(e))throw new w("boundingVolume is required.");let t=this.planes,n=!1;for(let f=0,p=t.length;f<p;++f){let d=e.intersectPlane(Q.fromCartesian4(t[f],fe));if(d===A.OUTSIDE)return A.OUTSIDE;d===A.INTERSECTING&&(n=!0)}return n?A.INTERSECTING:A.INSIDE};T.prototype.computeVisibilityWithPlaneMask=function(e,t){if(!a(e))throw new w("boundingVolume is required.");if(!a(t))throw new w("parentPlaneMask is required.");if(t===T.MASK_OUTSIDE||t===T.MASK_INSIDE)return t;let n=T.MASK_INSIDE,f=this.planes;for(let p=0,d=f.length;p<d;++p){let s=p<31?1<<p:0;if(p<31&&!(t&s))continue;let y=e.intersectPlane(Q.fromCartesian4(f[p],fe));if(y===A.OUTSIDE)return T.MASK_OUTSIDE;y===A.INTERSECTING&&(n|=s)}return n};T.MASK_OUTSIDE=4294967295;T.MASK_INSIDE=0;T.MASK_INDETERMINATE=2147483647;var $=T;function k(e){e=m(e,m.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this._cullingVolume=new $,this._orthographicMatrix=new F}function ce(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");if(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far){if(e.left>e.right)throw new w("right must be greater than left.");if(e.bottom>e.top)throw new w("top must be greater than bottom.");if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix)}}Object.defineProperties(k.prototype,{projectionMatrix:{get:function(){return ce(this),this._orthographicMatrix}}});var me=new r,ye=new r,ge=new r,ee=new r;k.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,p=this.top,d=this.bottom,s=this.right,y=this.left,i=this.near,c=this.far,_=r.cross(t,n,me);r.normalize(_,_);let g=ye;r.multiplyByScalar(t,i,g),r.add(e,g,g);let l=ge;r.multiplyByScalar(_,y,l),r.add(g,l,l);let o=f[0];return a(o)||(o=f[0]=new b),o.x=_.x,o.y=_.y,o.z=_.z,o.w=-r.dot(_,l),r.multiplyByScalar(_,s,l),r.add(g,l,l),o=f[1],a(o)||(o=f[1]=new b),o.x=-_.x,o.y=-_.y,o.z=-_.z,o.w=-r.dot(r.negate(_,ee),l),r.multiplyByScalar(n,d,l),r.add(g,l,l),o=f[2],a(o)||(o=f[2]=new b),o.x=n.x,o.y=n.y,o.z=n.z,o.w=-r.dot(n,l),r.multiplyByScalar(n,p,l),r.add(g,l,l),o=f[3],a(o)||(o=f[3]=new b),o.x=-n.x,o.y=-n.y,o.z=-n.z,o.w=-r.dot(r.negate(n,ee),l),o=f[4],a(o)||(o=f[4]=new b),o.x=t.x,o.y=t.y,o.z=t.z,o.w=-r.dot(t,g),r.multiplyByScalar(t,c,l),r.add(e,l,l),o=f[5],a(o)||(o=f[5]=new b),o.x=-t.x,o.y=-t.y,o.z=-t.z,o.w=-r.dot(r.negate(t,ee),l),this._cullingVolume};k.prototype.getPixelDimensions=function(e,t,n,f,p){if(ce(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required.");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(p))throw new w("A result object is required.");let d=this.right-this.left,s=this.top-this.bottom,y=f*d/e,i=f*s/t;return p.x=y,p.y=i,p};k.prototype.clone=function(e){return a(e)||(e=new k),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};k.prototype.equals=function(e){return a(e)&&e instanceof k&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};k.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof k&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var he=k;function z(e){e=m(e,m.EMPTY_OBJECT),this._offCenterFrustum=new he,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far}z.packedLength=4;z.pack=function(e,t,n){return O.typeOf.object("value",e),O.defined("array",t),n=m(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};z.unpack=function(e,t,n){return O.defined("array",e),t=m(t,0),a(n)||(n=new z),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function j(e){if(!a(e.width)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("width, aspectRatio, near, or far parameters are not set.");let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){if(e.aspectRatio<0)throw new w("aspectRatio must be positive.");if(e.near<0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(z.prototype,{projectionMatrix:{get:function(){return j(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return j(this),this._offCenterFrustum}}});z.prototype.computeCullingVolume=function(e,t,n){return j(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};z.prototype.getPixelDimensions=function(e,t,n,f,p){return j(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,p)};z.prototype.clone=function(e){return a(e)||(e=new z),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};z.prototype.equals=function(e){return!a(e)||!(e instanceof z)?!1:(j(this),j(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};z.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof z)?!1:(j(this),j(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var B=z;function S(e){e=m(e,m.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this._cullingVolume=new $,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function te(e){if(!a(e.right)||!a(e.left)||!a(e.top)||!a(e.bottom)||!a(e.near)||!a(e.far))throw new w("right, left, top, bottom, near, or far parameters are not set.");let{top:t,bottom:n,right:f,left:p,near:d,far:s}=e;if(t!==e._top||n!==e._bottom||p!==e._left||f!==e._right||d!==e._near||s!==e._far){if(e.near<=0||e.near>e.far)throw new w("near must be greater than zero and less than far.");e._left=p,e._right=f,e._top=t,e._bottom=n,e._near=d,e._far=s,e._perspectiveMatrix=F.computePerspectiveOffCenter(p,f,n,t,d,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(p,f,n,t,d,e._infinitePerspective)}}Object.defineProperties(S.prototype,{projectionMatrix:{get:function(){return te(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return te(this),this._infinitePerspective}}});var Ce=new r,be=new r,Oe=new r,Pe=new r;S.prototype.computeCullingVolume=function(e,t,n){if(!a(e))throw new w("position is required.");if(!a(t))throw new w("direction is required.");if(!a(n))throw new w("up is required.");let f=this._cullingVolume.planes,p=this.top,d=this.bottom,s=this.right,y=this.left,i=this.near,c=this.far,_=r.cross(t,n,Ce),g=be;r.multiplyByScalar(t,i,g),r.add(e,g,g);let l=Oe;r.multiplyByScalar(t,c,l),r.add(e,l,l);let o=Pe;r.multiplyByScalar(_,y,o),r.add(g,o,o),r.subtract(o,e,o),r.normalize(o,o),r.cross(o,n,o),r.normalize(o,o);let h=f[0];return a(h)||(h=f[0]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(_,s,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(n,o,o),r.normalize(o,o),h=f[1],a(h)||(h=f[1]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,d,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(_,o,o),r.normalize(o,o),h=f[2],a(h)||(h=f[2]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),r.multiplyByScalar(n,p,o),r.add(g,o,o),r.subtract(o,e,o),r.cross(o,_,o),r.normalize(o,o),h=f[3],a(h)||(h=f[3]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,e),h=f[4],a(h)||(h=f[4]=new b),h.x=t.x,h.y=t.y,h.z=t.z,h.w=-r.dot(t,g),r.negate(t,o),h=f[5],a(h)||(h=f[5]=new b),h.x=o.x,h.y=o.y,h.z=o.z,h.w=-r.dot(o,l),this._cullingVolume};S.prototype.getPixelDimensions=function(e,t,n,f,p){if(te(this),!a(e)||!a(t))throw new w("Both drawingBufferWidth and drawingBufferHeight are required.");if(e<=0)throw new w("drawingBufferWidth must be greater than zero.");if(t<=0)throw new w("drawingBufferHeight must be greater than zero.");if(!a(n))throw new w("distance is required.");if(!a(f))throw new w("pixelRatio is required");if(f<=0)throw new w("pixelRatio must be greater than zero.");if(!a(p))throw new w("A result object is required.");let d=1/this.near,s=this.top*d,y=2*f*n*s/t;s=this.right*d;let i=2*f*n*s/e;return p.x=i,p.y=y,p};S.prototype.clone=function(e){return a(e)||(e=new S),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};S.prototype.equals=function(e){return a(e)&&e instanceof S&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};S.prototype.equalsEpsilon=function(e,t,n){return e===this||a(e)&&e instanceof S&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var pe=S;function R(e){e=m(e,m.EMPTY_OBJECT),this._offCenterFrustum=new pe,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=m(e.near,1),this._near=this.near,this.far=m(e.far,5e8),this._far=this.far,this.xOffset=m(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=m(e.yOffset,0),this._yOffset=this.yOffset}R.packedLength=6;R.pack=function(e,t,n){return O.typeOf.object("value",e),O.defined("array",t),n=m(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};R.unpack=function(e,t,n){return O.defined("array",e),t=m(t,0),a(n)||(n=new R),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function q(e){if(!a(e.fov)||!a(e.aspectRatio)||!a(e.near)||!a(e.far))throw new w("fov, aspectRatio, near, or far parameters are not set.");if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;if(O.typeOf.number.greaterThanOrEquals("fov",e.fov,0),O.typeOf.number.lessThan("fov",e.fov,Math.PI),O.typeOf.number.greaterThanOrEquals("aspectRatio",e.aspectRatio,0),O.typeOf.number.greaterThanOrEquals("near",e.near,0),e.near>e.far)throw new w("near must be less than far.");e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(R.prototype,{projectionMatrix:{get:function(){return q(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return q(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return q(this),this._fovy}},sseDenominator:{get:function(){return q(this),this._sseDenominator}},offCenterFrustum:{get:function(){return q(this),this._offCenterFrustum}}});R.prototype.computeCullingVolume=function(e,t,n){return q(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};R.prototype.getPixelDimensions=function(e,t,n,f,p){return q(this),this._offCenterFrustum.getPixelDimensions(e,t,n,f,p)};R.prototype.clone=function(e){return a(e)||(e=new R),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};R.prototype.equals=function(e){return!a(e)||!(e instanceof R)?!1:(q(this),q(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};R.prototype.equalsEpsilon=function(e,t,n){return!a(e)||!(e instanceof R)?!1:(q(this),q(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var L=R;var I=0,Fe=1;function U(e){O.typeOf.object("options",e),O.typeOf.object("options.frustum",e.frustum),O.typeOf.object("options.origin",e.origin),O.typeOf.object("options.orientation",e.orientation);let t=e.frustum,n=e.orientation,f=e.origin,p=m(e.vertexFormat,E.DEFAULT),d=m(e._drawNearPlane,!0),s,y;t instanceof L?(s=I,y=L.packedLength):t instanceof B&&(s=Fe,y=B.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=r.clone(f),this._orientation=N.clone(n),this._drawNearPlane=d,this._vertexFormat=p,this._workerName="createFrustumGeometry",this.packedLength=2+y+r.packedLength+N.packedLength+E.packedLength}U.pack=function(e,t,n){O.typeOf.object("value",e),O.defined("array",t),n=m(n,0);let f=e._frustumType,p=e._frustum;return t[n++]=f,f===I?(L.pack(p,t,n),n+=L.packedLength):(B.pack(p,t,n),n+=B.packedLength),r.pack(e._origin,t,n),n+=r.packedLength,N.pack(e._orientation,t,n),n+=N.packedLength,E.pack(e._vertexFormat,t,n),n+=E.packedLength,t[n]=e._drawNearPlane?1:0,t};var xe=new L,ve=new B,ze=new N,Re=new r,Te=new E;U.unpack=function(e,t,n){O.defined("array",e),t=m(t,0);let f=e[t++],p;f===I?(p=L.unpack(e,t,xe),t+=L.packedLength):(p=B.unpack(e,t,ve),t+=B.packedLength);let d=r.unpack(e,t,Re);t+=r.packedLength;let s=N.unpack(e,t,ze);t+=N.packedLength;let y=E.unpack(e,t,Te);t+=E.packedLength;let i=e[t]===1;if(!a(n))return new U({frustum:p,origin:d,orientation:s,vertexFormat:y,_drawNearPlane:i});let c=f===n._frustumType?n._frustum:void 0;return n._frustum=p.clone(c),n._frustumType=f,n._origin=r.clone(d,n._origin),n._orientation=N.clone(s,n._orientation),n._vertexFormat=E.clone(y,n._vertexFormat),n._drawNearPlane=i,n};function W(e,t,n,f,p,d,s,y){let i=e/3*2;for(let c=0;c<4;++c)a(t)&&(t[e]=d.x,t[e+1]=d.y,t[e+2]=d.z),a(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),a(f)&&(f[e]=y.x,f[e+1]=y.y,f[e+2]=y.z),e+=3;p[i]=0,p[i+1]=0,p[i+2]=1,p[i+3]=0,p[i+4]=1,p[i+5]=1,p[i+6]=0,p[i+7]=1}var qe=new G,Me=new F,ne=new F,se=new r,le=new r,we=new r,ke=new r,Se=new r,De=new r,u=new Array(3),Z=new Array(4);Z[0]=new b(-1,-1,1,1);Z[1]=new b(1,-1,1,1);Z[2]=new b(1,1,1,1);Z[3]=new b(-1,1,1,1);var de=new Array(4);for(let e=0;e<4;++e)de[e]=new b;U._computeNearFarPlanes=function(e,t,n,f,p,d,s,y){let i=G.fromQuaternion(t,qe),c=m(d,se),_=m(s,le),g=m(y,we);c=G.getColumn(i,0,c),_=G.getColumn(i,1,_),g=G.getColumn(i,2,g),r.normalize(c,c),r.normalize(_,_),r.normalize(g,g),r.negate(c,c);let l=F.computeView(e,g,_,c,Me),o,h,M=f.projectionMatrix;if(n===I){let x=F.multiply(M,l,ne);h=F.inverse(x,ne)}else o=F.inverseTransformation(l,ne);a(h)?(u[0]=f.near,u[1]=f.far):(u[0]=0,u[1]=f.near,u[2]=f.far);for(let x=0;x<2;++x)for(let v=0;v<4;++v){let C=b.clone(Z[v],de[v]);if(a(h)){C=F.multiplyByVector(h,C,C);let D=1/C.w;r.multiplyByScalar(C,D,C),r.subtract(C,e,C),r.normalize(C,C);let Y=r.dot(g,C);r.multiplyByScalar(C,u[x]/Y,C),r.add(C,e,C)}else{let D=f.offCenterFrustum;a(D)&&(f=D);let Y=u[x],K=u[x+1];C.x=(C.x*(f.right-f.left)+f.left+f.right)*.5,C.y=(C.y*(f.top-f.bottom)+f.bottom+f.top)*.5,C.z=(C.z*(Y-K)-Y-K)*.5,C.w=1,F.multiplyByVector(o,C,C)}p[12*x+v*3]=C.x,p[12*x+v*3+1]=C.y,p[12*x+v*3+2]=C.z}};U.createGeometry=function(e){let t=e._frustumType,n=e._frustum,f=e._origin,p=e._orientation,d=e._drawNearPlane,s=e._vertexFormat,y=d?6:5,i=new Float64Array(3*4*6);U._computeNearFarPlanes(f,p,t,n,i);let c=3*4*2;i[c]=i[3*4],i[c+1]=i[3*4+1],i[c+2]=i[3*4+2],i[c+3]=i[0],i[c+4]=i[1],i[c+5]=i[2],i[c+6]=i[3*3],i[c+7]=i[3*3+1],i[c+8]=i[3*3+2],i[c+9]=i[3*7],i[c+10]=i[3*7+1],i[c+11]=i[3*7+2],c+=3*4,i[c]=i[3*5],i[c+1]=i[3*5+1],i[c+2]=i[3*5+2],i[c+3]=i[3],i[c+4]=i[4],i[c+5]=i[5],i[c+6]=i[0],i[c+7]=i[1],i[c+8]=i[2],i[c+9]=i[3*4],i[c+10]=i[3*4+1],i[c+11]=i[3*4+2],c+=3*4,i[c]=i[3],i[c+1]=i[4],i[c+2]=i[5],i[c+3]=i[3*5],i[c+4]=i[3*5+1],i[c+5]=i[3*5+2],i[c+6]=i[3*6],i[c+7]=i[3*6+1],i[c+8]=i[3*6+2],i[c+9]=i[3*2],i[c+10]=i[3*2+1],i[c+11]=i[3*2+2],c+=3*4,i[c]=i[3*2],i[c+1]=i[3*2+1],i[c+2]=i[3*2+2],i[c+3]=i[3*6],i[c+4]=i[3*6+1],i[c+5]=i[3*6+2],i[c+6]=i[3*7],i[c+7]=i[3*7+1],i[c+8]=i[3*7+2],i[c+9]=i[3*3],i[c+10]=i[3*3+1],i[c+11]=i[3*3+2],d||(i=i.subarray(3*4));let _=new ae({position:new J({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:i})});if(a(s.normal)||a(s.tangent)||a(s.bitangent)||a(s.st)){let l=a(s.normal)?new Float32Array(12*y):void 0,o=a(s.tangent)?new Float32Array(3*4*y):void 0,h=a(s.bitangent)?new Float32Array(3*4*y):void 0,M=a(s.st)?new Float32Array(2*4*y):void 0,x=se,v=le,C=we,D=r.negate(x,ke),Y=r.negate(v,Se),K=r.negate(C,De);c=0,d&&(W(c,l,o,h,M,K,x,v),c+=3*4),W(c,l,o,h,M,C,D,v),c+=3*4,W(c,l,o,h,M,D,K,v),c+=3*4,W(c,l,o,h,M,Y,K,D),c+=3*4,W(c,l,o,h,M,x,C,v),c+=3*4,W(c,l,o,h,M,v,C,D),a(l)&&(_.normal=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:l})),a(o)&&(_.tangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:o})),a(h)&&(_.bitangent=new J({componentDatatype:H.FLOAT,componentsPerAttribute:3,values:h})),a(M)&&(_.st=new J({componentDatatype:H.FLOAT,componentsPerAttribute:2,values:M}))}let g=new Uint16Array(6*y);for(let l=0;l<y;++l){let o=l*6,h=l*4;g[o]=h,g[o+1]=h+1,g[o+2]=h+2,g[o+3]=h,g[o+4]=h+2,g[o+5]=h+3}return new re({attributes:_,indices:g,primitiveType:oe.TRIANGLES,boundingSphere:ie.fromVertices(i)})};var Vt=U;export{B as a,L as b,Vt as c}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-GCC64MRJ.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-GCC64MRJ.js new file mode 100644 index 000000000..3c0ff614d --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-GCC64MRJ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Z}from"./chunk-BLYOACVP.js";import{a as R}from"./chunk-BSHGEEYG.js";import{a as ae,b as v,f as _,g as se,h as le}from"./chunk-Y5B6Y3WD.js";import{a as e,b as ce,c as $,e as j}from"./chunk-AODSXSC5.js";import{a as Q}from"./chunk-IISQCXJ5.js";var we={ROUNDED:0,MITERED:1,BEVELED:2},L=Object.freeze(we);var g=[new e,new e],ge=new e,pe=new e,xe=new e,Se=new e,Te=new e,Ee=new e,Be=new e,Ce=new e,ze=new e,P=new e,W=new e,I={},ee=new ce;function Ae(o,c){let a=new Array(o.length);for(let r=0;r<o.length;r++){let t=o[r];ee=c.cartesianToCartographic(t,ee),a[r]=ee.height,o[r]=c.scaleToGeodeticSurface(t,t)}return a}function te(o,c,a,r){let t=o[0],n=o[1],f=e.angleBetween(t,n),s=Math.ceil(f/r),m=new Array(s),l;if(c===a){for(l=0;l<s;l++)m[l]=c;return m.push(a),m}let y=(a-c)/s;for(l=1;l<s;l++){let x=c+l*y;m[l]=x}return m[0]=c,m.push(a),m}var X=new e,Y=new e;function Oe(o,c,a,r){let t=new R(a,r),n=t.projectPointOntoPlane(e.add(a,o,X),X),f=t.projectPointOntoPlane(e.add(a,c,Y),Y),s=$.angleBetween(n,f);return f.x*n.y-f.y*n.x>=0?-s:s}var je=new e(-1,0,0),N=new v,De=new v,re=new j,Me=j.IDENTITY.clone(),ve=new e,Ne=new ae,ie=new e;function D(o,c,a,r,t,n,f,s){let m=ve,l=Ne;N=se.eastNorthUpToFixedFrame(o,t,N),m=v.multiplyByPointAsVector(N,je,m),m=e.normalize(m,m);let T=Oe(m,c,o,t);re=j.fromRotationZ(T,re),ie.z=n,N=v.multiplyTransformation(N,v.fromRotationTranslation(re,ie,De),N);let y=Me;y[0]=f;for(let x=0;x<s;x++)for(let i=0;i<a.length;i+=3)l=e.fromArray(a,i,l),l=j.multiplyByVector(y,l,l),l=v.multiplyByPoint(N,l,l),r.push(l.x,l.y,l.z);return r}var Ve=new e;function ne(o,c,a,r,t,n,f){for(let s=0;s<o.length;s+=3){let m=e.fromArray(o,s,Ve);r=D(m,c,a,r,t,n[s/3],f,1)}return r}function be(o,c){let a=o.length,r=new Array(a*6),t=0,n=c.x+c.width/2,f=c.y+c.height/2,s=o[0];r[t++]=s.x-n,r[t++]=0,r[t++]=s.y-f;for(let m=1;m<a;m++){s=o[m];let l=s.x-n,T=s.y-f;r[t++]=l,r[t++]=0,r[t++]=T,r[t++]=l,r[t++]=0,r[t++]=T}return s=o[0],r[t++]=s.x-n,r[t++]=0,r[t++]=s.y-f,r}function fe(o,c){let a=o.length,r=new Array(a*3),t=0,n=c.x+c.width/2,f=c.y+c.height/2;for(let s=0;s<a;s++)r[t++]=o[s].x-n,r[t++]=0,r[t++]=o[s].y-f;return r}var me=new _,ue=new e,he=new j;function ye(o,c,a,r,t,n,f,s,m,l){let T=e.angleBetween(e.subtract(c,o,P),e.subtract(a,o,W)),y=r===L.BEVELED?0:Math.ceil(T/Q.toRadians(5)),x;t?x=j.fromQuaternion(_.fromAxisAngle(e.negate(o,P),T/(y+1),me),he):x=j.fromQuaternion(_.fromAxisAngle(o,T/(y+1),me),he);let i,d;if(c=e.clone(c,ue),y>0){let M=l?2:1;for(let w=0;w<y;w++)c=j.multiplyByVector(x,c,c),i=e.subtract(c,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(c,W),f=D(d,i,s,f,n,m,1,M)}else i=e.subtract(c,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(c,W),f=D(d,i,s,f,n,m,1,1),a=e.clone(a,ue),i=e.subtract(a,o,P),i=e.normalize(i,i),t||(i=e.negate(i,i)),d=n.scaleToGeodeticSurface(a,W),f=D(d,i,s,f,n,m,1,1);return f}I.removeDuplicatesFromShape=function(o){let c=o.length,a=[];for(let r=c-1,t=0;t<c;r=t++){let n=o[r],f=o[t];$.equals(n,f)||a.push(f)}return a};I.angleIsGreaterThanPi=function(o,c,a,r){let t=new R(a,r),n=t.projectPointOntoPlane(e.add(a,o,X),X),f=t.projectPointOntoPlane(e.add(a,c,Y),Y);return f.x*n.y-f.y*n.x>=0};var Fe=new e,Ge=new e;I.computePositions=function(o,c,a,r,t){let n=r._ellipsoid,f=Ae(o,n),s=r._granularity,m=r._cornerType,l=t?be(c,a):fe(c,a),T=t?fe(c,a):void 0,y=a.height/2,x=a.width/2,i=o.length,d=[],M=t?[]:void 0,w=ge,O=pe,h=xe,S=Se,B=Te,C=Ee,z=Be,u=Ce,E=ze,p=o[0],V=o[1];S=n.geodeticSurfaceNormal(p,S),w=e.subtract(V,p,w),w=e.normalize(w,w),u=e.cross(S,w,u),u=e.normalize(u,u);let b=f[0],A=f[1];t&&(M=D(p,u,T,M,n,b+y,1,1)),E=e.clone(p,E),p=V,O=e.negate(w,O);let F,G;for(let U=1;U<i-1;U++){let oe=t?2:1;if(V=o[U+1],p.equals(V)){le("Positions are too close and are considered equivalent with rounding error.");continue}w=e.subtract(V,p,w),w=e.normalize(w,w),S=n.geodeticSurfaceNormal(p,S);let q=e.multiplyByScalar(S,e.dot(w,S),Fe);e.subtract(w,q,q),e.normalize(q,q);let H=e.multiplyByScalar(S,e.dot(O,S),Ge);if(e.subtract(O,H,H),e.normalize(H,H),!Q.equalsEpsilon(Math.abs(e.dot(q,H)),1,Q.EPSILON7)){h=e.add(w,O,h),h=e.normalize(h,h),h=e.cross(h,S,h),h=e.cross(S,h,h),h=e.normalize(h,h);let k=1/Math.max(.25,e.magnitude(e.cross(h,O,P))),K=I.angleIsGreaterThanPi(w,O,p,n);K?(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,x,C),C),g[0]=e.clone(E,g[0]),g[1]=e.clone(C,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),u=e.cross(S,w,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,x,z),z),m===L.ROUNDED||m===L.BEVELED?ye(B,C,z,m,K,n,d,l,A+y,t):(h=e.negate(h,h),d=D(p,h,l,d,n,A+y,k,oe)),E=e.clone(z,E)):(B=e.add(p,e.multiplyByScalar(h,k*x,h),B),C=e.add(B,e.multiplyByScalar(u,-x,C),C),g[0]=e.clone(E,g[0]),g[1]=e.clone(C,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),u=e.cross(S,w,u),u=e.normalize(u,u),z=e.add(B,e.multiplyByScalar(u,-x,z),z),m===L.ROUNDED||m===L.BEVELED?ye(B,C,z,m,K,n,d,l,A+y,t):d=D(p,h,l,d,n,A+y,k,oe),E=e.clone(z,E)),O=e.negate(w,O)}else d=D(E,u,l,d,n,b+y,1,1),E=p;b=A,A=f[U+1],p=V}g[0]=e.clone(E,g[0]),g[1]=e.clone(p,g[1]),F=te(g,b+y,A+y,s),G=Z.generateArc({positions:g,granularity:s,ellipsoid:n}),d=ne(G,u,l,d,n,F,1),t&&(M=D(p,u,T,M,n,A+y,1,1)),i=d.length;let de=t?i+M.length:i,J=new Float64Array(de);return J.set(d),t&&J.set(M,i),J};var $e=I;export{L as a,$e as b}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-H3L4SJP4.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-H3L4SJP4.js new file mode 100644 index 000000000..1d2d57b4b --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-H3L4SJP4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w,b as z,j as S}from"./chunk-Y5B6Y3WD.js";import{a as y}from"./chunk-6QVIJ7JA.js";import{a as C,c as T,e as x}from"./chunk-AODSXSC5.js";import{a as h}from"./chunk-IISQCXJ5.js";import{a as u,b as a}from"./chunk-OYWUGDKS.js";import{e as b}from"./chunk-DRYFJEFT.js";var c={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};c.getMathType=function(e){switch(e){case c.SCALAR:return Number;case c.VEC2:return T;case c.VEC3:return C;case c.VEC4:return w;case c.MAT2:return S;case c.MAT3:return x;case c.MAT4:return z;default:throw new u("attributeType is not a valid value.")}};c.getNumberOfComponents=function(e){switch(e){case c.SCALAR:return 1;case c.VEC2:return 2;case c.VEC3:return 3;case c.VEC4:case c.MAT2:return 4;case c.MAT3:return 9;case c.MAT4:return 16;default:throw new u("attributeType is not a valid value.")}};c.getAttributeLocationCount=function(e){switch(e){case c.SCALAR:case c.VEC2:case c.VEC3:case c.VEC4:return 1;case c.MAT2:return 2;case c.MAT3:return 3;case c.MAT4:return 4;default:throw new u("attributeType is not a valid value.")}};c.getGlslType=function(e){switch(a.typeOf.string("attributeType",e),e){case c.SCALAR:return"float";case c.VEC2:return"vec2";case c.VEC3:return"vec3";case c.VEC4:return"vec4";case c.MAT2:return"mat2";case c.MAT3:return"mat3";case c.MAT4:return"mat4";default:throw new u("attributeType is not a valid value.")}};var N=Object.freeze(c);var V=1/256,D=256,r={};r.octEncodeInRange=function(e,t,n){a.defined("vector",e),a.defined("result",n);let o=C.magnitudeSquared(e);if(Math.abs(o-1)>h.EPSILON6)throw new u("vector must be normalized.");if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,d=n.y;n.x=(1-Math.abs(d))*h.signNotZero(i),n.y=(1-Math.abs(i))*h.signNotZero(d)}return n.x=h.toSNorm(n.x,t),n.y=h.toSNorm(n.y,t),n};r.octEncode=function(e,t){return r.octEncodeInRange(e,255,t)};var A=new T,F=new Uint8Array(1);function E(e){return F[0]=e,F[0]}r.octEncodeToCartesian4=function(e,t){return r.octEncodeInRange(e,65535,A),t.x=E(A.x*V),t.y=E(A.x),t.z=E(A.y*V),t.w=E(A.y),t};r.octDecodeInRange=function(e,t,n,o){if(a.defined("result",o),e<0||e>n||t<0||t>n)throw new u(`x and y must be unsigned normalized integers between 0 and ${n}`);if(o.x=h.fromSNorm(e,n),o.y=h.fromSNorm(t,n),o.z=1-(Math.abs(o.x)+Math.abs(o.y)),o.z<0){let i=o.x;o.x=(1-Math.abs(o.y))*h.signNotZero(i),o.y=(1-Math.abs(i))*h.signNotZero(o.y)}return C.normalize(o,o)};r.octDecode=function(e,t,n){return r.octDecodeInRange(e,t,255,n)};r.octDecodeFromCartesian4=function(e,t){a.typeOf.object("encoded",e),a.typeOf.object("result",t);let n=e.x,o=e.y,i=e.z,d=e.w;if(n<0||n>255||o<0||o>255||i<0||i>255||d<0||d>255)throw new u("x, y, z, and w must be unsigned normalized integers between 0 and 255");let f=n*D+o,s=i*D+d;return r.octDecodeInRange(f,s,65535,t)};r.octPackFloat=function(e){return a.defined("encoded",e),256*e.x+e.y};var l=new T;r.octEncodeFloat=function(e){return r.octEncode(e,l),r.octPackFloat(l)};r.octDecodeFloat=function(e,t){a.defined("value",e);let n=e/256,o=Math.floor(n),i=(n-o)*256;return r.octDecode(o,i,t)};r.octPack=function(e,t,n,o){a.defined("v1",e),a.defined("v2",t),a.defined("v3",n),a.defined("result",o);let i=r.octEncodeFloat(e),d=r.octEncodeFloat(t),f=r.octEncode(n,l);return o.x=65536*f.x+i,o.y=65536*f.y+d,o};r.octUnpack=function(e,t,n,o){a.defined("packed",e),a.defined("v1",t),a.defined("v2",n),a.defined("v3",o);let i=e.x/65536,d=Math.floor(i),f=(i-d)*65536;i=e.y/65536;let s=Math.floor(i),m=(i-s)*65536;r.octDecodeFloat(f,t),r.octDecodeFloat(m,n),r.octDecode(d,s,o)};r.compressTextureCoordinates=function(e){a.defined("textureCoordinates",e);let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};r.decompressTextureCoordinates=function(e,t){a.defined("compressed",e),a.defined("result",t);let n=e/4096,o=Math.floor(n);return t.x=o/4095,t.y=(e-o*4096)/4095,t};function g(e){return e>>1^-(e&1)}r.zigZagDeltaDecode=function(e,t,n){a.defined("uBuffer",e),a.defined("vBuffer",t),a.typeOf.number.equals("uBuffer.length","vBuffer.length",e.length,t.length),b(n)&&a.typeOf.number.equals("uBuffer.length","heightBuffer.length",e.length,n.length);let o=e.length,i=0,d=0,f=0;for(let s=0;s<o;++s)i+=g(e[s]),d+=g(t[s]),e[s]=i,t[s]=d,b(n)&&(f+=g(n[s]),n[s]=f)};r.dequantize=function(e,t,n,o){a.defined("typedArray",e),a.defined("componentDatatype",t),a.defined("type",n),a.defined("count",o);let i=N.getNumberOfComponents(n),d;switch(t){case y.BYTE:d=127;break;case y.UNSIGNED_BYTE:d=255;break;case y.SHORT:d=32767;break;case y.UNSIGNED_SHORT:d=65535;break;case y.INT:d=2147483647;break;case y.UNSIGNED_INT:d=4294967295;break;default:throw new u(`Cannot dequantize component datatype: ${t}`)}let f=new Float32Array(o*i);for(let s=0;s<o;s++)for(let m=0;m<i;m++){let p=s*i+m;f[p]=Math.max(e[p]/d,-1)}return f};r.decodeRGB565=function(e,t){a.defined("typedArray",e);let n=e.length*3;b(t)&&a.typeOf.number.equals("result.length","typedArray.length * 3",t.length,n);let o=e.length;b(t)||(t=new Float32Array(o*3));let i=31,d=63,f=1/31,s=1/63;for(let m=0;m<o;m++){let p=e[m],R=p>>11,I=p>>5&d,O=p&i,M=3*m;t[M]=R*f,t[M+1]=I*s,t[M+2]=O*f}return t};var W=r;export{W as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IIPSFM7Z.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IIPSFM7Z.js new file mode 100644 index 000000000..614aeb6b2 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IIPSFM7Z.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e}from"./chunk-DRYFJEFT.js";function t(r){this.name="RuntimeError",this.message=r;let o;try{throw new Error}catch(s){o=s.stack}this.stack=o}e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t);t.prototype.toString=function(){let r=`${this.name}: ${this.message}`;return e(this.stack)&&(r+=` +${this.stack.toString()}`),r};var c=t;export{c as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IISQCXJ5.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IISQCXJ5.js new file mode 100644 index 000000000..c0d065f34 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IISQCXJ5.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as f}from"./chunk-WHQYJFDH.js";import{a as n,b as c}from"./chunk-OYWUGDKS.js";import{c as I,d as _,e as o}from"./chunk-DRYFJEFT.js";var P=I((O,d)=>{var u=function(t){t==null&&(t=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,t.constructor==Array?this.init_by_array(t,t.length):this.init_seed(t)};u.prototype.init_seed=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){var t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((t&4294901760)>>>16)*1812433253<<16)+(t&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};u.prototype.init_by_array=function(t,i){var e,s,h;for(this.init_seed(19650218),e=1,s=0,h=this.N>i?this.N:i;h;h--){var a=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((a&4294901760)>>>16)*1664525<<16)+(a&65535)*1664525)+t[s]+s,this.mt[e]>>>=0,e++,s++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1),s>=i&&(s=0)}for(h=this.N-1;h;h--){var a=this.mt[e-1]^this.mt[e-1]>>>30;this.mt[e]=(this.mt[e]^(((a&4294901760)>>>16)*1566083941<<16)+(a&65535)*1566083941)-e,this.mt[e]>>>=0,e++,e>=this.N&&(this.mt[0]=this.mt[this.N-1],e=1)}this.mt[0]=2147483648};u.prototype.random_int=function(){var t,i=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var e;for(this.mti==this.N+1&&this.init_seed(5489),e=0;e<this.N-this.M;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+this.M]^t>>>1^i[t&1];for(;e<this.N-1;e++)t=this.mt[e]&this.UPPER_MASK|this.mt[e+1]&this.LOWER_MASK,this.mt[e]=this.mt[e+(this.M-this.N)]^t>>>1^i[t&1];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^i[t&1],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,t^=t>>>18,t>>>0};u.prototype.random_int31=function(){return this.random_int()>>>1};u.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};u.prototype.random=function(){return this.random_int()*(1/4294967296)};u.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};u.prototype.random_long=function(){var t=this.random_int()>>>5,i=this.random_int()>>>6;return(t*67108864+i)*(1/9007199254740992)};d.exports=u});var m=_(P(),1);var r={};r.EPSILON1=.1;r.EPSILON2=.01;r.EPSILON3=.001;r.EPSILON4=1e-4;r.EPSILON5=1e-5;r.EPSILON6=1e-6;r.EPSILON7=1e-7;r.EPSILON8=1e-8;r.EPSILON9=1e-9;r.EPSILON10=1e-10;r.EPSILON11=1e-11;r.EPSILON12=1e-12;r.EPSILON13=1e-13;r.EPSILON14=1e-14;r.EPSILON15=1e-15;r.EPSILON16=1e-16;r.EPSILON17=1e-17;r.EPSILON18=1e-18;r.EPSILON19=1e-19;r.EPSILON20=1e-20;r.EPSILON21=1e-21;r.GRAVITATIONALPARAMETER=3986004418e5;r.SOLAR_RADIUS=6955e5;r.LUNAR_RADIUS=1737400;r.SIXTY_FOUR_KILOBYTES=64*1024;r.FOUR_GIGABYTES=4*1024*1024*1024;r.sign=f(Math.sign,function(i){return i=+i,i===0||i!==i?i:i>0?1:-1});r.signNotZero=function(t){return t<0?-1:1};r.toSNorm=function(t,i){return i=f(i,255),Math.round((r.clamp(t,-1,1)*.5+.5)*i)};r.fromSNorm=function(t,i){return i=f(i,255),r.clamp(t,0,i)/i*2-1};r.normalize=function(t,i,e){return e=Math.max(e-i,0),e===0?0:r.clamp((t-i)/e,0,1)};r.sinh=f(Math.sinh,function(i){return(Math.exp(i)-Math.exp(-i))/2});r.cosh=f(Math.cosh,function(i){return(Math.exp(i)+Math.exp(-i))/2});r.lerp=function(t,i,e){return(1-e)*t+e*i};r.PI=Math.PI;r.ONE_OVER_PI=1/Math.PI;r.PI_OVER_TWO=Math.PI/2;r.PI_OVER_THREE=Math.PI/3;r.PI_OVER_FOUR=Math.PI/4;r.PI_OVER_SIX=Math.PI/6;r.THREE_PI_OVER_TWO=3*Math.PI/2;r.TWO_PI=2*Math.PI;r.ONE_OVER_TWO_PI=1/(2*Math.PI);r.RADIANS_PER_DEGREE=Math.PI/180;r.DEGREES_PER_RADIAN=180/Math.PI;r.RADIANS_PER_ARCSECOND=r.RADIANS_PER_DEGREE/3600;r.toRadians=function(t){if(!o(t))throw new n("degrees is required.");return t*r.RADIANS_PER_DEGREE};r.toDegrees=function(t){if(!o(t))throw new n("radians is required.");return t*r.DEGREES_PER_RADIAN};r.convertLongitudeRange=function(t){if(!o(t))throw new n("angle is required.");let i=r.TWO_PI,e=t-Math.floor(t/i)*i;return e<-Math.PI?e+i:e>=Math.PI?e-i:e};r.clampToLatitudeRange=function(t){if(!o(t))throw new n("angle is required.");return r.clamp(t,-1*r.PI_OVER_TWO,r.PI_OVER_TWO)};r.negativePiToPi=function(t){if(!o(t))throw new n("angle is required.");return t>=-r.PI&&t<=r.PI?t:r.zeroToTwoPi(t+r.PI)-r.PI};r.zeroToTwoPi=function(t){if(!o(t))throw new n("angle is required.");if(t>=0&&t<=r.TWO_PI)return t;let i=r.mod(t,r.TWO_PI);return Math.abs(i)<r.EPSILON14&&Math.abs(t)>r.EPSILON14?r.TWO_PI:i};r.mod=function(t,i){if(!o(t))throw new n("m is required.");if(!o(i))throw new n("n is required.");if(i===0)throw new n("divisor cannot be 0.");return r.sign(t)===r.sign(i)&&Math.abs(t)<Math.abs(i)?t:(t%i+i)%i};r.equalsEpsilon=function(t,i,e,s){if(!o(t))throw new n("left is required.");if(!o(i))throw new n("right is required.");e=f(e,0),s=f(s,e);let h=Math.abs(t-i);return h<=s||h<=e*Math.max(Math.abs(t),Math.abs(i))};r.lessThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<-e};r.lessThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i<e};r.greaterThan=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>e};r.greaterThanOrEquals=function(t,i,e){if(!o(t))throw new n("first is required.");if(!o(i))throw new n("second is required.");if(!o(e))throw new n("absoluteEpsilon is required.");return t-i>-e};var w=[1];r.factorial=function(t){if(typeof t!="number"||t<0)throw new n("A number greater than or equal to 0 is required.");let i=w.length;if(t>=i){let e=w[i-1];for(let s=i;s<=t;s++){let h=e*s;w.push(h),e=h}}return w[t]};r.incrementWrap=function(t,i,e){if(e=f(e,0),!o(t))throw new n("n is required.");if(i<=e)throw new n("maximumValue must be greater than minimumValue.");return++t,t>i&&(t=e),t};r.isPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t!==0&&(t&t-1)===0};r.nextPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>2147483648)throw new n("A number between 0 and 2^31 is required.");return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t,t};r.previousPowerOfTwo=function(t){if(typeof t!="number"||t<0||t>4294967295)throw new n("A number between 0 and (2^32)-1 is required.");return t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,t|=t>>32,t=(t>>>0)-(t>>>1),t};r.clamp=function(t,i,e){return c.typeOf.number("value",t),c.typeOf.number("min",i),c.typeOf.number("max",e),t<i?i:t>e?e:t};var E=new m.default;r.setRandomNumberSeed=function(t){if(!o(t))throw new n("seed is required.");E=new m.default(t)};r.nextRandomNumber=function(){return E.random()};r.randomBetween=function(t,i){return r.nextRandomNumber()*(i-t)+t};r.acosClamped=function(t){if(!o(t))throw new n("value is required.");return Math.acos(r.clamp(t,-1,1))};r.asinClamped=function(t){if(!o(t))throw new n("value is required.");return Math.asin(r.clamp(t,-1,1))};r.chordLength=function(t,i){if(!o(t))throw new n("angle is required.");if(!o(i))throw new n("radius is required.");return 2*i*Math.sin(t*.5)};r.logBase=function(t,i){if(!o(t))throw new n("number is required.");if(!o(i))throw new n("base is required.");return Math.log(t)/Math.log(i)};r.cbrt=f(Math.cbrt,function(i){let e=Math.pow(Math.abs(i),.3333333333333333);return i<0?-e:e});r.log2=f(Math.log2,function(i){return Math.log(i)*Math.LOG2E});r.fog=function(t,i){let e=t*i;return 1-Math.exp(-(e*e))};r.fastApproximateAtan=function(t){return c.typeOf.number("x",t),t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)};r.fastApproximateAtan2=function(t,i){c.typeOf.number("x",t),c.typeOf.number("y",i);let e,s=Math.abs(t);e=Math.abs(i);let h=Math.max(s,e);e=Math.min(s,e);let a=e/h;if(isNaN(a))throw new n("either x or y must be nonzero");return s=r.fastApproximateAtan(a),s=Math.abs(i)>Math.abs(t)?r.PI_OVER_TWO-s:s,s=t<0?r.PI-s:s,s=i<0?-s:s,s};var A=r;export{A as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IY45XUGY.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IY45XUGY.js new file mode 100644 index 000000000..96847807a --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-IY45XUGY.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-E3BAMNKM.js";import{a as st}from"./chunk-UBAKWGRR.js";import{a as Z,b as H}from"./chunk-M243PNMW.js";import{a as V}from"./chunk-BRFVOFKF.js";import{a as U}from"./chunk-XDFUUQMZ.js";import{b as it}from"./chunk-UKQRKTK2.js";import{a as ct}from"./chunk-LNO7O274.js";import{a as ot}from"./chunk-T53UE6JF.js";import{a as nt}from"./chunk-RYO6NY7F.js";import{b as J,c as X,d as z}from"./chunk-2HSPJH3C.js";import{f as K}from"./chunk-Y5B6Y3WD.js";import{a as k}from"./chunk-6QVIJ7JA.js";import{a as w,b as q,c as M,d as et,e as F}from"./chunk-AODSXSC5.js";import{a as I}from"./chunk-IISQCXJ5.js";import{a as tt}from"./chunk-WHQYJFDH.js";import{e as x}from"./chunk-DRYFJEFT.js";function dt(n,i){this.positions=x(n)?n:[],this.holes=x(i)?i:[]}var rt=dt;function S(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(S.prototype,{length:{get:function(){return this._length}}});S.prototype.enqueue=function(n){this._array.push(n),this._length++};S.prototype.dequeue=function(){if(this._length===0)return;let n=this._array,i=this._offset,u=n[i];return n[i]=void 0,i++,i>10&&i*2>n.length&&(this._array=n.slice(i),i=0),this._offset=i,this._length--,u};S.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};S.prototype.contains=function(n){return this._array.indexOf(n)!==-1};S.prototype.clear=function(){this._array.length=this._offset=this._length=0};S.prototype.sort=function(n){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(n)};var $=S;var b={};b.computeHierarchyPackedLength=function(n,i){let u=0,c=[n];for(;c.length>0;){let r=c.pop();if(!x(r))continue;u+=2;let a=r.positions,t=r.holes;if(x(a)&&a.length>0&&(u+=a.length*i.packedLength),x(t)){let o=t.length;for(let e=0;e<o;++e)c.push(t[e])}}return u};b.packPolygonHierarchy=function(n,i,u,c){let r=[n];for(;r.length>0;){let a=r.pop();if(!x(a))continue;let t=a.positions,o=a.holes;if(i[u++]=x(t)?t.length:0,i[u++]=x(o)?o.length:0,x(t)){let e=t.length;for(let s=0;s<e;++s,u+=c.packedLength)c.pack(t[s],i,u)}if(x(o)){let e=o.length;for(let s=0;s<e;++s)r.push(o[s])}}return u};b.unpackPolygonHierarchy=function(n,i,u){let c=n[i++],r=n[i++],a=new Array(c),t=r>0?new Array(r):void 0;for(let o=0;o<c;++o,i+=u.packedLength)a[o]=u.unpack(n,i);for(let o=0;o<r;++o)t[o]=b.unpackPolygonHierarchy(n,i,u),i=t[o].startingIndex,delete t[o].startingIndex;return{positions:a,holes:t,startingIndex:i}};var O=new M;function ht(n,i,u,c){return M.subtract(i,n,O),M.multiplyByScalar(O,u/c,O),M.add(n,O,O),[O.x,O.y]}var G=new w;function gt(n,i,u,c){return w.subtract(i,n,G),w.multiplyByScalar(G,u/c,G),w.add(n,G,G),[G.x,G.y,G.z]}b.subdivideLineCount=function(n,i,u){let r=w.distance(n,i)/u,a=Math.max(0,Math.ceil(I.log2(r)));return Math.pow(2,a)};var j=new q,Q=new q,pt=new q,mt=new w,Y=new U;b.subdivideRhumbLineCount=function(n,i,u,c){let r=n.cartesianToCartographic(i,j),a=n.cartesianToCartographic(u,Q),o=new U(r,a,n).surfaceDistance/c,e=Math.max(0,Math.ceil(I.log2(o)));return Math.pow(2,e)};b.subdivideTexcoordLine=function(n,i,u,c,r,a){let t=b.subdivideLineCount(u,c,r),o=M.distance(n,i),e=o/t,s=a;s.length=t*2;let l=0;for(let h=0;h<t;h++){let f=ht(n,i,h*e,o);s[l++]=f[0],s[l++]=f[1]}return s};b.subdivideLine=function(n,i,u,c){let r=b.subdivideLineCount(n,i,u),a=w.distance(n,i),t=a/r;x(c)||(c=[]);let o=c;o.length=r*3;let e=0;for(let s=0;s<r;s++){let l=gt(n,i,s*t,a);o[e++]=l[0],o[e++]=l[1],o[e++]=l[2]}return o};b.subdivideTexcoordRhumbLine=function(n,i,u,c,r,a,t){let o=u.cartesianToCartographic(c,j),e=u.cartesianToCartographic(r,Q);Y.setEndPoints(o,e);let s=Y.surfaceDistance/a,l=Math.max(0,Math.ceil(I.log2(s))),h=Math.pow(2,l),f=M.distance(n,i),g=f/h,m=t;m.length=h*2;let p=0;for(let d=0;d<h;d++){let y=ht(n,i,d*g,f);m[p++]=y[0],m[p++]=y[1]}return m};b.subdivideRhumbLine=function(n,i,u,c,r){let a=n.cartesianToCartographic(i,j),t=n.cartesianToCartographic(u,Q),o=new U(a,t,n),e=o.surfaceDistance/c,s=Math.max(0,Math.ceil(I.log2(e))),l=Math.pow(2,s),h=o.surfaceDistance/l;x(r)||(r=[]);let f=r;f.length=l*3;let g=0;for(let m=0;m<l;m++){let p=o.interpolateUsingSurfaceDistance(m*h,pt),d=n.cartographicToCartesian(p,mt);f[g++]=d.x,f[g++]=d.y,f[g++]=d.z}return f};var yt=new w,xt=new w,wt=new w,bt=new w;b.scaleToGeodeticHeightExtruded=function(n,i,u,c,r){c=tt(c,et.default);let a=yt,t=xt,o=wt,e=bt;if(x(n)&&x(n.attributes)&&x(n.attributes.position)){let s=n.attributes.position.values,l=s.length/2;for(let h=0;h<l;h+=3)w.fromArray(s,h,o),c.geodeticSurfaceNormal(o,a),e=c.scaleToGeodeticSurface(o,e),t=w.multiplyByScalar(a,u,t),t=w.add(e,t,t),s[h+l]=t.x,s[h+1+l]=t.y,s[h+2+l]=t.z,r&&(e=w.clone(o,e)),t=w.multiplyByScalar(a,i,t),t=w.add(e,t,t),s[h]=t.x,s[h+1]=t.y,s[h+2]=t.z}return n};b.polygonOutlinesFromHierarchy=function(n,i,u){let c=[],r=new $;r.enqueue(n);let a,t,o;for(;r.length!==0;){let e=r.dequeue(),s=e.positions;if(i)for(o=s.length,a=0;a<o;a++)u.scaleToGeodeticSurface(s[a],s[a]);if(s=V(s,w.equalsEpsilon,!0),s.length<3)continue;let l=e.holes?e.holes.length:0;for(a=0;a<l;a++){let h=e.holes[a],f=h.positions;if(i)for(o=f.length,t=0;t<o;++t)u.scaleToGeodeticSurface(f[t],f[t]);if(f=V(f,w.equalsEpsilon,!0),f.length<3)continue;c.push(f);let g=0;for(x(h.holes)&&(g=h.holes.length),t=0;t<g;t++)r.enqueue(h.holes[t])}c.push(s)}return c};var Lt=new q;function Tt(n,i,u){let c=u.cartesianToCartographic(n,j),r=u.cartesianToCartographic(i,Q);if(Math.sign(c.latitude)===Math.sign(r.latitude))return;Y.setEndPoints(c,r);let a=Y.findIntersectionWithLatitude(0,Lt);if(!x(a))return;let t=Math.min(c.longitude,r.longitude),o=Math.max(c.longitude,r.longitude);if(Math.abs(o-t)>I.PI){let e=t;t=o,o=e}if(!(a.longitude<t||a.longitude>o))return u.cartographicToCartesian(a)}function Et(n,i,u,c){if(c===R.RHUMB)return Tt(n,i,u);let r=it.lineSegmentPlane(n,i,ct.ORIGIN_XY_PLANE);if(x(r))return u.scaleToGeodeticSurface(r,r)}var vt=new q;function Ct(n,i,u){let c=[],r,a,t,o,e,s=0;for(;s<n.length;){r=n[s],a=n[(s+1)%n.length],t=I.sign(r.z),o=I.sign(a.z);let l=h=>i.cartesianToCartographic(h,vt).longitude;if(t===0)c.push({position:s,type:t,visited:!1,next:o,theta:l(r)});else if(o!==0){if(e=Et(r,a,i,u),++s,!x(e))continue;n.splice(s,0,e),c.push({position:s,type:t,visited:!1,next:o,theta:l(e)})}++s}return c}function lt(n,i,u,c,r,a,t){let o=[],e=a,s=h=>f=>f.position===h,l=[];do{let h=u[e];o.push(h);let f=c.findIndex(s(e)),g=c[f];if(!x(g)){++e;continue}let{visited:m,type:p,next:d}=g;if(g.visited=!0,p===0){if(d===0){let C=c[f-(t?1:-1)];if(C?.position===e+1)C.visited=!0;else{++e;continue}}if(!m&&t&&d>0||a===e&&!t&&d<0){++e;continue}}if(!(t?p>=0:p<=0)){++e;continue}m||l.push(e);let L=f+(t?1:-1),_=c[L];if(!x(_)){++e;continue}e=_.position}while(e<u.length&&e>=0&&e!==a&&o.length<u.length);n.splice(i,r,o);for(let h of l)i=lt(n,++i,u,c,0,h,!t);return i}b.splitPolygonsOnEquator=function(n,i,u,c){x(c)||(c=[]),c.splice(0,0,...n),c.length=n.length;let r=0;for(;r<c.length;){let a=c[r],t=a.slice();if(a.length<3){c[r]=t,++r;continue}let o=Ct(t,i,u);if(t.length===a.length||o.length<=1){c[r]=t,++r;continue}o.sort((s,l)=>s.theta-l.theta);let e=t[0].z>=0;r=lt(c,r,t,o,1,0,e)}return c};b.polygonsFromHierarchy=function(n,i,u,c,r,a){let t=[],o=[],e=new $;e.enqueue(n);let s=x(a);for(;e.length!==0;){let l=e.dequeue(),h=l.positions,f=l.holes,g,m;if(c)for(m=h.length,g=0;g<m;g++)r.scaleToGeodeticSurface(h[g],h[g]);if(i||(h=V(h,w.equalsEpsilon,!0)),h.length<3)continue;let p=u(h);if(!x(p))continue;let d=[],y=H.computeWindingOrder2D(p);if(y===Z.CLOCKWISE&&(p.reverse(),h=h.slice().reverse()),s){s=!1;let P=[h];if(P=a(P,P),P.length>1){for(let v of P)e.enqueue(new rt(v,f));continue}}let L=h.slice(),_=x(f)?f.length:0,C=[],T;for(g=0;g<_;g++){let P=f[g],v=P.positions;if(c)for(m=v.length,T=0;T<m;++T)r.scaleToGeodeticSurface(v[T],v[T]);if(i||(v=V(v,w.equalsEpsilon,!0)),v.length<3)continue;let E=u(v);if(!x(E))continue;y=H.computeWindingOrder2D(E),y===Z.CLOCKWISE&&(E.reverse(),v=v.slice().reverse()),C.push(v),d.push(L.length),L=L.concat(v),p=p.concat(E);let D=0;for(x(P.holes)&&(D=P.holes.length),T=0;T<D;T++)e.enqueue(P.holes[T])}t.push({outerRing:h,holes:C}),o.push({positions:L,positions2D:p,holes:d})}return{hierarchy:t,polygons:o}};var Pt=new M,Dt=new w,It=new K,_t=new F;b.computeBoundingRectangle=function(n,i,u,c,r){let a=K.fromAxisAngle(n,c,It),t=F.fromQuaternion(a,_t),o=Number.POSITIVE_INFINITY,e=Number.NEGATIVE_INFINITY,s=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,h=u.length;for(let f=0;f<h;++f){let g=w.clone(u[f],Dt);F.multiplyByVector(t,g,g);let m=i(g,Pt);x(m)&&(o=Math.min(o,m.x),e=Math.max(e,m.x),s=Math.min(s,m.y),l=Math.max(l,m.y))}return r.x=o,r.y=s,r.width=e-o,r.height=l-s,r};b.createGeometryFromPositions=function(n,i,u,c,r,a,t){let o=H.triangulate(i.positions2D,i.holes);o.length<3&&(o=[0,1,2]);let e=i.positions,s=x(u),l=s?u.positions:void 0;if(r){let h=e.length,f=new Array(h*3),g=0;for(let d=0;d<h;d++){let y=e[d];f[g++]=y.x,f[g++]=y.y,f[g++]=y.z}let m={attributes:{position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:f})},indices:o,primitiveType:J.TRIANGLES};s&&(m.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:M.packArray(l)}));let p=new X(m);return a.normal?st.computeNormal(p):p}if(t===R.GEODESIC)return H.computeSubdivision(n,e,o,l,c);if(t===R.RHUMB)return H.computeRhumbLineSubdivision(n,e,o,l,c)};var ut=[],at=[],At=new w,Mt=new w;b.computeWallGeometry=function(n,i,u,c,r,a){let t,o,e,s,l,h,f,g,m,p=n.length,d=0,y=0,L=x(i),_=L?i.positions:void 0;if(r)for(o=p*3*2,t=new Array(o*2),L&&(m=p*2*2,g=new Array(m*2)),e=0;e<p;e++)s=n[e],l=n[(e+1)%p],t[d]=t[d+o]=s.x,++d,t[d]=t[d+o]=s.y,++d,t[d]=t[d+o]=s.z,++d,t[d]=t[d+o]=l.x,++d,t[d]=t[d+o]=l.y,++d,t[d]=t[d+o]=l.z,++d,L&&(h=_[e],f=_[(e+1)%p],g[y]=g[y+m]=h.x,++y,g[y]=g[y+m]=h.y,++y,g[y]=g[y+m]=f.x,++y,g[y]=g[y+m]=f.y,++y);else{let E=I.chordLength(c,u.maximumRadius),D=0;if(a===R.GEODESIC)for(e=0;e<p;e++)D+=b.subdivideLineCount(n[e],n[(e+1)%p],E);else if(a===R.RHUMB)for(e=0;e<p;e++)D+=b.subdivideRhumbLineCount(u,n[e],n[(e+1)%p],E);for(o=(D+p)*3,t=new Array(o*2),L&&(m=(D+p)*2,g=new Array(m*2)),e=0;e<p;e++){s=n[e],l=n[(e+1)%p];let A,N;L&&(h=_[e],f=_[(e+1)%p]),a===R.GEODESIC?(A=b.subdivideLine(s,l,E,at),L&&(N=b.subdivideTexcoordLine(h,f,s,l,E,ut))):a===R.RHUMB&&(A=b.subdivideRhumbLine(u,s,l,E,at),L&&(N=b.subdivideTexcoordRhumbLine(h,f,u,s,l,E,ut)));let ft=A.length;for(let B=0;B<ft;++B,++d)t[d]=A[B],t[d+o]=A[B];if(t[d]=l.x,t[d+o]=l.x,++d,t[d]=l.y,t[d+o]=l.y,++d,t[d]=l.z,t[d+o]=l.z,++d,L){let B=N.length;for(let W=0;W<B;++W,++y)g[y]=N[W],g[y+m]=N[W];g[y]=f.x,g[y+m]=f.x,++y,g[y]=f.y,g[y+m]=f.y,++y}}}p=t.length;let C=ot.createTypedArray(p/3,p-n.length*6),T=0;for(p/=6,e=0;e<p;e++){let E=e,D=E+1,A=E+p,N=A+1;s=w.fromArray(t,E*3,At),l=w.fromArray(t,D*3,Mt),!w.equalsEpsilon(s,l,I.EPSILON10,I.EPSILON10)&&(C[T++]=E,C[T++]=A,C[T++]=D,C[T++]=D,C[T++]=A,C[T++]=N)}let P={attributes:new nt({position:new z({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:t})}),indices:C,primitiveType:J.TRIANGLES};return L&&(P.attributes.st=new z({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:g})),new X(P)};var se=b;export{se as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-K4YWEDY2.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-K4YWEDY2.js new file mode 100644 index 000000000..1cf4c852c --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-K4YWEDY2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as b}from"./chunk-6UMNSGJM.js";import{a as u}from"./chunk-QNEABTP2.js";import{a as O}from"./chunk-RYO6NY7F.js";import{b as w,c as h,d as x}from"./chunk-2HSPJH3C.js";import{d}from"./chunk-T5AUOWE7.js";import{a as y}from"./chunk-6QVIJ7JA.js";import{a as i}from"./chunk-AODSXSC5.js";import{a as p}from"./chunk-WHQYJFDH.js";import{a as z,b as c}from"./chunk-OYWUGDKS.js";import{e as A}from"./chunk-DRYFJEFT.js";var D=new i;function f(r){r=p(r,p.EMPTY_OBJECT);let o=r.minimum,m=r.maximum;if(c.typeOf.object("min",o),c.typeOf.object("max",m),A(r.offsetAttribute)&&r.offsetAttribute===b.TOP)throw new z("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");let a=p(r.vertexFormat,u.DEFAULT);this._minimum=i.clone(o),this._maximum=i.clone(m),this._vertexFormat=a,this._offsetAttribute=r.offsetAttribute,this._workerName="createBoxGeometry"}f.fromDimensions=function(r){r=p(r,p.EMPTY_OBJECT);let o=r.dimensions;c.typeOf.object("dimensions",o),c.typeOf.number.greaterThanOrEquals("dimensions.x",o.x,0),c.typeOf.number.greaterThanOrEquals("dimensions.y",o.y,0),c.typeOf.number.greaterThanOrEquals("dimensions.z",o.z,0);let m=i.multiplyByScalar(o,.5,new i);return new f({minimum:i.negate(m,new i),maximum:m,vertexFormat:r.vertexFormat,offsetAttribute:r.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(r){return c.typeOf.object("boundingBox",r),new f({minimum:r.minimum,maximum:r.maximum})};f.packedLength=2*i.packedLength+u.packedLength+1;f.pack=function(r,o,m){return c.typeOf.object("value",r),c.defined("array",o),m=p(m,0),i.pack(r._minimum,o,m),i.pack(r._maximum,o,m+i.packedLength),u.pack(r._vertexFormat,o,m+2*i.packedLength),o[m+2*i.packedLength+u.packedLength]=p(r._offsetAttribute,-1),o};var _=new i,g=new i,k=new u,F={minimum:_,maximum:g,vertexFormat:k,offsetAttribute:void 0};f.unpack=function(r,o,m){c.defined("array",r),o=p(o,0);let a=i.unpack(r,o,_),s=i.unpack(r,o+i.packedLength,g),n=u.unpack(r,o+2*i.packedLength,k),e=r[o+2*i.packedLength+u.packedLength];return A(m)?(m._minimum=i.clone(a,m._minimum),m._maximum=i.clone(s,m._maximum),m._vertexFormat=u.clone(n,m._vertexFormat),m._offsetAttribute=e===-1?void 0:e,m):(F.offsetAttribute=e===-1?void 0:e,new f(F))};f.createGeometry=function(r){let o=r._minimum,m=r._maximum,a=r._vertexFormat;if(i.equals(o,m))return;let s=new O,n,e;if(a.position&&(a.st||a.normal||a.tangent||a.bitangent)){if(a.position&&(e=new Float64Array(6*4*3),e[0]=o.x,e[1]=o.y,e[2]=m.z,e[3]=m.x,e[4]=o.y,e[5]=m.z,e[6]=m.x,e[7]=m.y,e[8]=m.z,e[9]=o.x,e[10]=m.y,e[11]=m.z,e[12]=o.x,e[13]=o.y,e[14]=o.z,e[15]=m.x,e[16]=o.y,e[17]=o.z,e[18]=m.x,e[19]=m.y,e[20]=o.z,e[21]=o.x,e[22]=m.y,e[23]=o.z,e[24]=m.x,e[25]=o.y,e[26]=o.z,e[27]=m.x,e[28]=m.y,e[29]=o.z,e[30]=m.x,e[31]=m.y,e[32]=m.z,e[33]=m.x,e[34]=o.y,e[35]=m.z,e[36]=o.x,e[37]=o.y,e[38]=o.z,e[39]=o.x,e[40]=m.y,e[41]=o.z,e[42]=o.x,e[43]=m.y,e[44]=m.z,e[45]=o.x,e[46]=o.y,e[47]=m.z,e[48]=o.x,e[49]=m.y,e[50]=o.z,e[51]=m.x,e[52]=m.y,e[53]=o.z,e[54]=m.x,e[55]=m.y,e[56]=m.z,e[57]=o.x,e[58]=m.y,e[59]=m.z,e[60]=o.x,e[61]=o.y,e[62]=o.z,e[63]=m.x,e[64]=o.y,e[65]=o.z,e[66]=m.x,e[67]=o.y,e[68]=m.z,e[69]=o.x,e[70]=o.y,e[71]=m.z,s.position=new x({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:e})),a.normal){let t=new Float32Array(72);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,t[12]=0,t[13]=0,t[14]=-1,t[15]=0,t[16]=0,t[17]=-1,t[18]=0,t[19]=0,t[20]=-1,t[21]=0,t[22]=0,t[23]=-1,t[24]=1,t[25]=0,t[26]=0,t[27]=1,t[28]=0,t[29]=0,t[30]=1,t[31]=0,t[32]=0,t[33]=1,t[34]=0,t[35]=0,t[36]=-1,t[37]=0,t[38]=0,t[39]=-1,t[40]=0,t[41]=0,t[42]=-1,t[43]=0,t[44]=0,t[45]=-1,t[46]=0,t[47]=0,t[48]=0,t[49]=1,t[50]=0,t[51]=0,t[52]=1,t[53]=0,t[54]=0,t[55]=1,t[56]=0,t[57]=0,t[58]=1,t[59]=0,t[60]=0,t[61]=-1,t[62]=0,t[63]=0,t[64]=-1,t[65]=0,t[66]=0,t[67]=-1,t[68]=0,t[69]=0,t[70]=-1,t[71]=0,s.normal=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}if(a.st){let t=new Float32Array(48);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,t[8]=1,t[9]=0,t[10]=0,t[11]=0,t[12]=0,t[13]=1,t[14]=1,t[15]=1,t[16]=0,t[17]=0,t[18]=1,t[19]=0,t[20]=1,t[21]=1,t[22]=0,t[23]=1,t[24]=1,t[25]=0,t[26]=0,t[27]=0,t[28]=0,t[29]=1,t[30]=1,t[31]=1,t[32]=1,t[33]=0,t[34]=0,t[35]=0,t[36]=0,t[37]=1,t[38]=1,t[39]=1,t[40]=0,t[41]=0,t[42]=1,t[43]=0,t[44]=1,t[45]=1,t[46]=0,t[47]=1,s.st=new x({componentDatatype:y.FLOAT,componentsPerAttribute:2,values:t})}if(a.tangent){let t=new Float32Array(72);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,t[12]=-1,t[13]=0,t[14]=0,t[15]=-1,t[16]=0,t[17]=0,t[18]=-1,t[19]=0,t[20]=0,t[21]=-1,t[22]=0,t[23]=0,t[24]=0,t[25]=1,t[26]=0,t[27]=0,t[28]=1,t[29]=0,t[30]=0,t[31]=1,t[32]=0,t[33]=0,t[34]=1,t[35]=0,t[36]=0,t[37]=-1,t[38]=0,t[39]=0,t[40]=-1,t[41]=0,t[42]=0,t[43]=-1,t[44]=0,t[45]=0,t[46]=-1,t[47]=0,t[48]=-1,t[49]=0,t[50]=0,t[51]=-1,t[52]=0,t[53]=0,t[54]=-1,t[55]=0,t[56]=0,t[57]=-1,t[58]=0,t[59]=0,t[60]=1,t[61]=0,t[62]=0,t[63]=1,t[64]=0,t[65]=0,t[66]=1,t[67]=0,t[68]=0,t[69]=1,t[70]=0,t[71]=0,s.tangent=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}if(a.bitangent){let t=new Float32Array(72);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,t[12]=0,t[13]=1,t[14]=0,t[15]=0,t[16]=1,t[17]=0,t[18]=0,t[19]=1,t[20]=0,t[21]=0,t[22]=1,t[23]=0,t[24]=0,t[25]=0,t[26]=1,t[27]=0,t[28]=0,t[29]=1,t[30]=0,t[31]=0,t[32]=1,t[33]=0,t[34]=0,t[35]=1,t[36]=0,t[37]=0,t[38]=1,t[39]=0,t[40]=0,t[41]=1,t[42]=0,t[43]=0,t[44]=1,t[45]=0,t[46]=0,t[47]=1,t[48]=0,t[49]=0,t[50]=1,t[51]=0,t[52]=0,t[53]=1,t[54]=0,t[55]=0,t[56]=1,t[57]=0,t[58]=0,t[59]=1,t[60]=0,t[61]=0,t[62]=1,t[63]=0,t[64]=0,t[65]=1,t[66]=0,t[67]=0,t[68]=1,t[69]=0,t[70]=0,t[71]=1,s.bitangent=new x({componentDatatype:y.FLOAT,componentsPerAttribute:3,values:t})}n=new Uint16Array(6*2*3),n[0]=0,n[1]=1,n[2]=2,n[3]=0,n[4]=2,n[5]=3,n[6]=6,n[7]=5,n[8]=4,n[9]=7,n[10]=6,n[11]=4,n[12]=8,n[13]=9,n[14]=10,n[15]=8,n[16]=10,n[17]=11,n[18]=14,n[19]=13,n[20]=12,n[21]=15,n[22]=14,n[23]=12,n[24]=18,n[25]=17,n[26]=16,n[27]=19,n[28]=18,n[29]=16,n[30]=20,n[31]=21,n[32]=22,n[33]=20,n[34]=22,n[35]=23}else e=new Float64Array(8*3),e[0]=o.x,e[1]=o.y,e[2]=o.z,e[3]=m.x,e[4]=o.y,e[5]=o.z,e[6]=m.x,e[7]=m.y,e[8]=o.z,e[9]=o.x,e[10]=m.y,e[11]=o.z,e[12]=o.x,e[13]=o.y,e[14]=m.z,e[15]=m.x,e[16]=o.y,e[17]=m.z,e[18]=m.x,e[19]=m.y,e[20]=m.z,e[21]=o.x,e[22]=m.y,e[23]=m.z,s.position=new x({componentDatatype:y.DOUBLE,componentsPerAttribute:3,values:e}),n=new Uint16Array(6*2*3),n[0]=4,n[1]=5,n[2]=6,n[3]=4,n[4]=6,n[5]=7,n[6]=1,n[7]=0,n[8]=3,n[9]=1,n[10]=3,n[11]=2,n[12]=1,n[13]=6,n[14]=5,n[15]=1,n[16]=2,n[17]=6,n[18]=2,n[19]=3,n[20]=7,n[21]=2,n[22]=7,n[23]=6,n[24]=3,n[25]=0,n[26]=4,n[27]=3,n[28]=4,n[29]=7,n[30]=0,n[31]=1,n[32]=5,n[33]=0,n[34]=5,n[35]=4;let v=i.subtract(m,o,D),L=i.magnitude(v)*.5;if(A(r._offsetAttribute)){let t=e.length,T=r._offsetAttribute===b.NONE?0:1,E=new Uint8Array(t/3).fill(T);s.applyOffset=new x({componentDatatype:y.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}return new h({attributes:s,indices:n,primitiveType:w.TRIANGLES,boundingSphere:new d(i.ZERO,L),offsetAttribute:r._offsetAttribute})};var l;f.getUnitBox=function(){return A(l)||(l=f.createGeometry(f.fromDimensions({dimensions:new i(1,1,1),vertexFormat:u.POSITION_ONLY}))),l};var R=f;export{R as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-KYVZRNFI.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-KYVZRNFI.js new file mode 100644 index 000000000..657b42558 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-KYVZRNFI.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as $}from"./chunk-ZEP44EYN.js";import{a as b}from"./chunk-UBAKWGRR.js";import{a as U}from"./chunk-T53UE6JF.js";import{a as E}from"./chunk-RYO6NY7F.js";import{c as z,d as L}from"./chunk-2HSPJH3C.js";import{a as D,d as y}from"./chunk-T5AUOWE7.js";import{b as G}from"./chunk-Y5B6Y3WD.js";import{a as k}from"./chunk-6QVIJ7JA.js";import{d as B}from"./chunk-AODSXSC5.js";import{a as v}from"./chunk-WHQYJFDH.js";import{a as F,b as I}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function w(e,n,t){e=v(e,0),n=v(n,0),t=v(t,0),this.value=new Float32Array([e,n,t])}Object.defineProperties(w.prototype,{componentDatatype:{get:function(){return k.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});w.fromCartesian3=function(e){return I.defined("offset",e),new w(e.x,e.y,e.z)};w.toValue=function(e,n){return I.defined("offset",e),a(n)||(n=new Float32Array([e.x,e.y,e.z])),n[0]=e.x,n[1]=e.y,n[2]=e.z,n};var j=w;function K(e,n,t){let i=!t,r=e.length,c;if(!i&&r>1){let o=e[0].modelMatrix;for(c=1;c<r;++c)if(!G.equals(o,e[c].modelMatrix)){i=!0;break}}if(i)for(c=0;c<r;++c)a(e[c].geometry)&&b.transformToWorldCoordinates(e[c]);else G.multiplyTransformation(n,e[0].modelMatrix,n)}function P(e,n){let t=e.attributes,i=t.position,r=i.values.length/i.componentsPerAttribute;t.batchId=new L({componentDatatype:k.FLOAT,componentsPerAttribute:1,values:new Float32Array(r)});let c=t.batchId.values;for(let o=0;o<r;++o)c[o]=n}function N(e){let n=e.length;for(let t=0;t<n;++t){let i=e[t];a(i.geometry)?P(i.geometry,t):a(i.westHemisphereGeometry)&&a(i.eastHemisphereGeometry)&&(P(i.westHemisphereGeometry,t),P(i.eastHemisphereGeometry,t))}}function Q(e){let n=e.instances,t=e.projection,i=e.elementIndexUintSupported,r=e.scene3DOnly,c=e.vertexCacheOptimize,o=e.compressVertices,g=e.modelMatrix,s,u,m,p=n.length;for(s=0;s<p;++s)if(a(n[s].geometry)){m=n[s].geometry.primitiveType;break}for(s=1;s<p;++s)if(a(n[s].geometry)&&n[s].geometry.primitiveType!==m)throw new F("All instance geometries must have the same primitiveType.");if(K(n,g,r),!r)for(s=0;s<p;++s)a(n[s].geometry)&&b.splitLongitude(n[s]);if(N(n),c)for(s=0;s<p;++s){let f=n[s];a(f.geometry)?(b.reorderForPostVertexCache(f.geometry),b.reorderForPreVertexCache(f.geometry)):a(f.westHemisphereGeometry)&&a(f.eastHemisphereGeometry)&&(b.reorderForPostVertexCache(f.westHemisphereGeometry),b.reorderForPreVertexCache(f.westHemisphereGeometry),b.reorderForPostVertexCache(f.eastHemisphereGeometry),b.reorderForPreVertexCache(f.eastHemisphereGeometry))}let l=b.combineInstances(n);for(p=l.length,s=0;s<p;++s){u=l[s];let f=u.attributes;if(r)for(let d in f)f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE&&b.encodeAttribute(u,d,`${d}3DHigh`,`${d}3DLow`);else for(let d in f)if(f.hasOwnProperty(d)&&f[d].componentDatatype===k.DOUBLE){let h=`${d}3D`,x=`${d}2D`;b.projectTo2D(u,d,h,x,t),a(u.boundingSphere)&&d==="position"&&(u.boundingSphereCV=y.fromVertices(u.attributes.position2D.values)),b.encodeAttribute(u,h,`${h}High`,`${h}Low`),b.encodeAttribute(u,x,`${x}High`,`${x}Low`)}o&&b.compressVertices(u)}if(!i){let f=[];for(p=l.length,s=0;s<p;++s)u=l[s],f=f.concat(b.fitToUnsignedShortIndices(u));l=f}return l}function T(e,n,t,i){let r,c,o,g=i.length-1;if(g>=0){let u=i[g];r=u.offset+u.count,o=u.index,c=t[o].indices.length}else r=0,o=0,c=t[o].indices.length;let s=e.length;for(let u=0;u<s;++u){let p=e[u][n];if(!a(p))continue;let l=p.indices.length;r+l>c&&(r=0,c=t[++o].indices.length),i.push({index:o,offset:r,count:l}),r+=l}}function X(e,n){let t=[];return T(e,"geometry",n,t),T(e,"westHemisphereGeometry",n,t),T(e,"eastHemisphereGeometry",n,t),t}var S={};S.combineGeometry=function(e){let n,t,i=e.instances,r=i.length,c,o,g=!1;r>0&&(n=Q(e),n.length>0&&(t=b.createAttributeLocations(n[0]),e.createPickOffsets&&(c=X(i,n))),a(i[0].attributes)&&a(i[0].attributes.offset)&&(o=new Array(r),g=!0));let s=new Array(r),u=new Array(r);for(let m=0;m<r;++m){let p=i[m],l=p.geometry;a(l)&&(s[m]=l.boundingSphere,u[m]=l.boundingSphereCV,g&&(o[m]=p.geometry.offsetAttribute));let f=p.eastHemisphereGeometry,d=p.westHemisphereGeometry;a(f)&&a(d)&&(a(f.boundingSphere)&&a(d.boundingSphere)&&(s[m]=y.union(f.boundingSphere,d.boundingSphere)),a(f.boundingSphereCV)&&a(d.boundingSphereCV)&&(u[m]=y.union(f.boundingSphereCV,d.boundingSphereCV)))}return{geometries:n,modelMatrix:e.modelMatrix,attributeLocations:t,pickOffsets:c,offsetInstanceExtend:o,boundingSpheres:s,boundingSpheresCV:u}};function Y(e,n){let t=e.attributes;for(let i in t)if(t.hasOwnProperty(i)){let r=t[i];a(r)&&a(r.values)&&n.push(r.values.buffer)}a(e.indices)&&n.push(e.indices.buffer)}function Z(e,n){let t=e.length;for(let i=0;i<t;++i)Y(e[i],n)}function _(e){let n=1,t=e.length;for(let i=0;i<t;i++){let r=e[i];if(++n,!a(r))continue;let c=r.attributes;n+=7+2*y.packedLength+(a(r.indices)?r.indices.length:0);for(let o in c)if(c.hasOwnProperty(o)&&a(c[o])){let g=c[o];n+=5+g.values.length}}return n}S.packCreateGeometryResults=function(e,n){let t=new Float64Array(_(e)),i=[],r={},c=e.length,o=0;t[o++]=c;for(let g=0;g<c;g++){let s=e[g],u=a(s);if(t[o++]=u?1:0,!u)continue;t[o++]=s.primitiveType,t[o++]=s.geometryType,t[o++]=v(s.offsetAttribute,-1);let m=a(s.boundingSphere)?1:0;t[o++]=m,m&&y.pack(s.boundingSphere,t,o),o+=y.packedLength;let p=a(s.boundingSphereCV)?1:0;t[o++]=p,p&&y.pack(s.boundingSphereCV,t,o),o+=y.packedLength;let l=s.attributes,f=[];for(let h in l)l.hasOwnProperty(h)&&a(l[h])&&(f.push(h),a(r[h])||(r[h]=i.length,i.push(h)));t[o++]=f.length;for(let h=0;h<f.length;h++){let x=f[h],C=l[x];t[o++]=r[x],t[o++]=C.componentDatatype,t[o++]=C.componentsPerAttribute,t[o++]=C.normalize?1:0,t[o++]=C.values.length,t.set(C.values,o),o+=C.values.length}let d=a(s.indices)?s.indices.length:0;t[o++]=d,d>0&&(t.set(s.indices,o),o+=d)}return n.push(t.buffer),{stringTable:i,packedData:t}};S.unpackCreateGeometryResults=function(e){let n=e.stringTable,t=e.packedData,i,r=new Array(t[0]),c=0,o=1;for(;o<t.length;){if(!(t[o++]===1)){r[c++]=void 0;continue}let s=t[o++],u=t[o++],m=t[o++];m===-1&&(m=void 0);let p,l;t[o++]===1&&(p=y.unpack(t,o)),o+=y.packedLength,t[o++]===1&&(l=y.unpack(t,o)),o+=y.packedLength;let h,x,C,H=new E,q=t[o++];for(i=0;i<q;i++){let A=n[t[o++]],M=t[o++];C=t[o++];let J=t[o++]!==0;h=t[o++],x=k.createTypedArray(M,h);for(let O=0;O<h;O++)x[O]=t[o++];H[A]=new L({componentDatatype:M,componentsPerAttribute:C,normalize:J,values:x})}let V;if(h=t[o++],h>0){let A=x.length/C;for(V=U.createTypedArray(A,h),i=0;i<h;i++)V[i]=t[o++]}r[c++]=new z({primitiveType:s,geometryType:u,boundingSphere:p,boundingSphereCV:l,indices:V,attributes:H,offsetAttribute:m})}return r};function ee(e,n){let t=e.length,i=new Float64Array(1+t*19),r=0;i[r++]=t;for(let c=0;c<t;c++){let o=e[c];if(G.pack(o.modelMatrix,i,r),r+=G.packedLength,a(o.attributes)&&a(o.attributes.offset)){let g=o.attributes.offset.value;i[r]=g[0],i[r+1]=g[1],i[r+2]=g[2]}r+=3}return n.push(i.buffer),i}function te(e){let n=e,t=new Array(n[0]),i=0,r=1;for(;r<n.length;){let c=G.unpack(n,r),o;r+=G.packedLength,a(n[r])&&(o={offset:new j(n[r],n[r+1],n[r+2])}),r+=3,t[i++]={modelMatrix:c,attributes:o}}return t}S.packCombineGeometryParameters=function(e,n){let t=e.createGeometryResults,i=t.length;for(let r=0;r<i;r++)n.push(t[r].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:ee(e.instances,n),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof D,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};S.unpackCombineGeometryParameters=function(e){let n=te(e.packedInstances),t=e.createGeometryResults,i=t.length,r=0;for(let g=0;g<i;g++){let s=S.unpackCreateGeometryResults(t[g]),u=s.length;for(let m=0;m<u;m++){let p=s[m],l=n[r];l.geometry=p,++r}}let c=B.clone(e.ellipsoid),o=e.isGeographic?new D(c):new $(c);return{instances:n,ellipsoid:c,projection:o,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:G.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function R(e){let n=e.length,t=1+(y.packedLength+1)*n,i=new Float32Array(t),r=0;i[r++]=n;for(let c=0;c<n;++c){let o=e[c];a(o)?(i[r++]=1,y.pack(e[c],i,r)):i[r++]=0,r+=y.packedLength}return i}function W(e){let n=new Array(e[0]),t=0,i=1;for(;i<e.length;)e[i++]===1&&(n[t]=y.unpack(e,i)),++t,i+=y.packedLength;return n}S.packCombineGeometryResults=function(e,n){a(e.geometries)&&Z(e.geometries,n);let t=R(e.boundingSpheres),i=R(e.boundingSpheresCV);return n.push(t.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:t,boundingSpheresCV:i}};S.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:W(e.boundingSpheres),boundingSpheresCV:W(e.boundingSpheresCV)}};var Ge=S;export{Ge as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-LNO7O274.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-LNO7O274.js new file mode 100644 index 000000000..19012670d --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-LNO7O274.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l,b as d}from"./chunk-Y5B6Y3WD.js";import{a as t}from"./chunk-AODSXSC5.js";import{a as s}from"./chunk-IISQCXJ5.js";import{a as f,b as r}from"./chunk-OYWUGDKS.js";import{e as m}from"./chunk-DRYFJEFT.js";function o(e,n){if(r.typeOf.object("normal",e),!s.equalsEpsilon(t.magnitude(e),1,s.EPSILON6))throw new f("normal must be normalized.");r.typeOf.number("distance",n),this.normal=t.clone(e),this.distance=n}o.fromPointNormal=function(e,n,a){if(r.typeOf.object("point",e),r.typeOf.object("normal",n),!s.equalsEpsilon(t.magnitude(n),1,s.EPSILON6))throw new f("normal must be normalized.");let c=-t.dot(n,e);return m(a)?(t.clone(n,a.normal),a.distance=c,a):new o(n,c)};var b=new t;o.fromCartesian4=function(e,n){r.typeOf.object("coefficients",e);let a=t.fromCartesian4(e,b),c=e.w;if(!s.equalsEpsilon(t.magnitude(a),1,s.EPSILON6))throw new f("normal must be normalized.");return m(n)?(t.clone(a,n.normal),n.distance=c,n):new o(a,c)};o.getPointDistance=function(e,n){return r.typeOf.object("plane",e),r.typeOf.object("point",n),t.dot(e.normal,n)+e.distance};var y=new t;o.projectPointOntoPlane=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("point",n),m(a)||(a=new t);let c=o.getPointDistance(e,n),p=t.multiplyByScalar(e.normal,c,y);return t.subtract(n,p,a)};var w=new d,j=new l,N=new t;o.transform=function(e,n,a){r.typeOf.object("plane",e),r.typeOf.object("transform",n);let c=e.normal,p=e.distance,u=d.inverseTranspose(n,w),i=l.fromElements(c.x,c.y,c.z,p,j);i=d.multiplyByVector(u,i,i);let O=t.fromCartesian4(i,N);return i=l.divideByScalar(i,t.magnitude(O),i),o.fromCartesian4(i,a)};o.clone=function(e,n){return r.typeOf.object("plane",e),m(n)?(t.clone(e.normal,n.normal),n.distance=e.distance,n):new o(e.normal,e.distance)};o.equals=function(e,n){return r.typeOf.object("left",e),r.typeOf.object("right",n),e.distance===n.distance&&t.equals(e.normal,n.normal)};o.ORIGIN_XY_PLANE=Object.freeze(new o(t.UNIT_Z,0));o.ORIGIN_YZ_PLANE=Object.freeze(new o(t.UNIT_X,0));o.ORIGIN_ZX_PLANE=Object.freeze(new o(t.UNIT_Y,0));var T=o;export{T as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-M243PNMW.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-M243PNMW.js new file mode 100644 index 000000000..5815163b0 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-M243PNMW.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as st}from"./chunk-XDFUUQMZ.js";import{b as at,c as ht,d as nt}from"./chunk-2HSPJH3C.js";import{a as et}from"./chunk-6QVIJ7JA.js";import{a as h,b as tt,c as v,d as vt}from"./chunk-AODSXSC5.js";import{a as Y}from"./chunk-IISQCXJ5.js";import{a as xt}from"./chunk-MOE32UQS.js";import{a as K}from"./chunk-WHQYJFDH.js";import{b as C}from"./chunk-OYWUGDKS.js";import{e as D}from"./chunk-DRYFJEFT.js";var ct={CLOCKWISE:xt.CW,COUNTER_CLOCKWISE:xt.CCW};ct.validate=function(t){return t===ct.CLOCKWISE||t===ct.COUNTER_CLOCKWISE};var pt=Object.freeze(ct);function dt(t,n,e=2){let c=n&&n.length,r=c?n[0]*e:t.length,o=bt(t,0,r,e,!0),i=[];if(!o||o.next===o.prev)return i;let s,f,u;if(c&&(o=It(t,n,o,e)),t.length>80*e){s=1/0,f=1/0;let a=-1/0,y=-1/0;for(let d=e;d<r;d+=e){let S=t[d],p=t[d+1];S<s&&(s=S),p<f&&(f=p),S>a&&(a=S),p>y&&(y=p)}u=Math.max(a-s,y-f),u=u!==0?32767/u:0}return rt(o,i,e,s,f,u,0),i}function bt(t,n,e,c,r){let o;if(r===jt(t,n,e,c)>0)for(let i=n;i<e;i+=c)o=wt(i/c|0,t[i],t[i+1],o);else for(let i=e-c;i>=n;i-=c)o=wt(i/c|0,t[i],t[i+1],o);return o&&ft(o,o.next)&&(ot(o),o=o.next),o}function N(t,n){if(!t)return t;n||(n=t);let e=t,c;do if(c=!1,!e.steiner&&(ft(e,e.next)||b(e.prev,e,e.next)===0)){if(ot(e),e=n=e.prev,e===e.next)break;c=!0}else e=e.next;while(c||e!==n);return n}function rt(t,n,e,c,r,o,i){if(!t)return;!i&&o&&Nt(t,c,r,o);let s=t;for(;t.prev!==t.next;){let f=t.prev,u=t.next;if(o?Rt(t,c,r,o):Pt(t)){n.push(f.i,t.i,u.i),ot(t),t=u.next,s=u.next;continue}if(t=u,t===s){i?i===1?(t=zt(N(t),n),rt(t,n,e,c,r,o,2)):i===2&&Bt(t,n,e,c,r,o):rt(N(t),n,e,c,r,o,1);break}}}function Pt(t){let n=t.prev,e=t,c=t.next;if(b(n,e,c)>=0)return!1;let r=n.x,o=e.x,i=c.x,s=n.y,f=e.y,u=c.y,a=r<o?r<i?r:i:o<i?o:i,y=s<f?s<u?s:u:f<u?f:u,d=r>o?r>i?r:i:o>i?o:i,S=s>f?s>u?s:u:f>u?f:u,p=c.next;for(;p!==n;){if(p.x>=a&&p.x<=d&&p.y>=y&&p.y<=S&&V(r,s,o,f,i,u,p.x,p.y)&&b(p.prev,p,p.next)>=0)return!1;p=p.next}return!0}function Rt(t,n,e,c){let r=t.prev,o=t,i=t.next;if(b(r,o,i)>=0)return!1;let s=r.x,f=o.x,u=i.x,a=r.y,y=o.y,d=i.y,S=s<f?s<u?s:u:f<u?f:u,p=a<y?a<d?a:d:y<d?y:d,T=s>f?s>u?s:u:f>u?f:u,L=a>y?a>d?a:d:y>d?y:d,z=yt(S,p,n,e,c),F=yt(T,L,n,e,c),l=t.prevZ,x=t.nextZ;for(;l&&l.z>=z&&x&&x.z<=F;){if(l.x>=S&&l.x<=T&&l.y>=p&&l.y<=L&&l!==r&&l!==i&&V(s,a,f,y,u,d,l.x,l.y)&&b(l.prev,l,l.next)>=0||(l=l.prevZ,x.x>=S&&x.x<=T&&x.y>=p&&x.y<=L&&x!==r&&x!==i&&V(s,a,f,y,u,d,x.x,x.y)&&b(x.prev,x,x.next)>=0))return!1;x=x.nextZ}for(;l&&l.z>=z;){if(l.x>=S&&l.x<=T&&l.y>=p&&l.y<=L&&l!==r&&l!==i&&V(s,a,f,y,u,d,l.x,l.y)&&b(l.prev,l,l.next)>=0)return!1;l=l.prevZ}for(;x&&x.z<=F;){if(x.x>=S&&x.x<=T&&x.y>=p&&x.y<=L&&x!==r&&x!==i&&V(s,a,f,y,u,d,x.x,x.y)&&b(x.prev,x,x.next)>=0)return!1;x=x.nextZ}return!0}function zt(t,n){let e=t;do{let c=e.prev,r=e.next.next;!ft(c,r)&&St(c,e,e.next,r)&&it(c,r)&&it(r,c)&&(n.push(c.i,e.i,r.i),ot(e),ot(e.next),e=t=r),e=e.next}while(e!==t);return N(e)}function Bt(t,n,e,c,r,o){let i=t;do{let s=i.next.next;for(;s!==i.prev;){if(i.i!==s.i&&_t(i,s)){let f=At(i,s);i=N(i,i.next),f=N(f,f.next),rt(i,n,e,c,r,o,0),rt(f,n,e,c,r,o,0);return}s=s.next}i=i.next}while(i!==t)}function It(t,n,e,c){let r=[];for(let o=0,i=n.length;o<i;o++){let s=n[o]*c,f=o<i-1?n[o+1]*c:t.length,u=bt(t,s,f,c,!1);u===u.next&&(u.steiner=!0),r.push(Ut(u))}r.sort(Wt);for(let o=0;o<r.length;o++)e=$t(r[o],e);return e}function Wt(t,n){return t.x-n.x}function $t(t,n){let e=Gt(t,n);if(!e)return n;let c=At(e,t);return N(c,c.next),N(e,e.next)}function Gt(t,n){let e=n,c=t.x,r=t.y,o=-1/0,i;do{if(r<=e.y&&r>=e.next.y&&e.next.y!==e.y){let y=e.x+(r-e.y)*(e.next.x-e.x)/(e.next.y-e.y);if(y<=c&&y>o&&(o=y,i=e.x<e.next.x?e:e.next,y===c))return i}e=e.next}while(e!==n);if(!i)return null;let s=i,f=i.x,u=i.y,a=1/0;e=i;do{if(c>=e.x&&e.x>=f&&c!==e.x&&V(r<u?c:o,r,f,u,r<u?o:c,r,e.x,e.y)){let y=Math.abs(r-e.y)/(c-e.x);it(e,t)&&(y<a||y===a&&(e.x>i.x||e.x===i.x&&Ht(i,e)))&&(i=e,a=y)}e=e.next}while(e!==s);return i}function Ht(t,n){return b(t.prev,t,n.prev)<0&&b(n.next,t,t.next)<0}function Nt(t,n,e,c){let r=t;do r.z===0&&(r.z=yt(r.x,r.y,n,e,c)),r.prevZ=r.prev,r.nextZ=r.next,r=r.next;while(r!==t);r.prevZ.nextZ=null,r.prevZ=null,kt(r)}function kt(t){let n,e=1;do{let c=t,r;t=null;let o=null;for(n=0;c;){n++;let i=c,s=0;for(let u=0;u<e&&(s++,i=i.nextZ,!!i);u++);let f=e;for(;s>0||f>0&&i;)s!==0&&(f===0||!i||c.z<=i.z)?(r=c,c=c.nextZ,s--):(r=i,i=i.nextZ,f--),o?o.nextZ=r:t=r,r.prevZ=o,o=r;c=i}o.nextZ=null,e*=2}while(n>1);return t}function yt(t,n,e,c,r){return t=(t-e)*r|0,n=(n-c)*r|0,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,n=(n|n<<8)&16711935,n=(n|n<<4)&252645135,n=(n|n<<2)&858993459,n=(n|n<<1)&1431655765,t|n<<1}function Ut(t){let n=t,e=t;do(n.x<e.x||n.x===e.x&&n.y<e.y)&&(e=n),n=n.next;while(n!==t);return e}function V(t,n,e,c,r,o,i,s){return(r-i)*(n-s)>=(t-i)*(o-s)&&(t-i)*(c-s)>=(e-i)*(n-s)&&(e-i)*(o-s)>=(r-i)*(c-s)}function _t(t,n){return t.next.i!==n.i&&t.prev.i!==n.i&&!Kt(t,n)&&(it(t,n)&&it(n,t)&&Vt(t,n)&&(b(t.prev,t,n.prev)||b(t,n.prev,n))||ft(t,n)&&b(t.prev,t,t.next)>0&&b(n.prev,n,n.next)>0)}function b(t,n,e){return(n.y-t.y)*(e.x-n.x)-(n.x-t.x)*(e.y-n.y)}function ft(t,n){return t.x===n.x&&t.y===n.y}function St(t,n,e,c){let r=lt(b(t,n,e)),o=lt(b(t,n,c)),i=lt(b(e,c,t)),s=lt(b(e,c,n));return!!(r!==o&&i!==s||r===0&&ut(t,e,n)||o===0&&ut(t,c,n)||i===0&&ut(e,t,c)||s===0&&ut(e,n,c))}function ut(t,n,e){return n.x<=Math.max(t.x,e.x)&&n.x>=Math.min(t.x,e.x)&&n.y<=Math.max(t.y,e.y)&&n.y>=Math.min(t.y,e.y)}function lt(t){return t>0?1:t<0?-1:0}function Kt(t,n){let e=t;do{if(e.i!==t.i&&e.next.i!==t.i&&e.i!==n.i&&e.next.i!==n.i&&St(e,e.next,t,n))return!0;e=e.next}while(e!==t);return!1}function it(t,n){return b(t.prev,t,t.next)<0?b(t,n,t.next)>=0&&b(t,t.prev,n)>=0:b(t,n,t.prev)<0||b(t,t.next,n)<0}function Vt(t,n){let e=t,c=!1,r=(t.x+n.x)/2,o=(t.y+n.y)/2;do e.y>o!=e.next.y>o&&e.next.y!==e.y&&r<(e.next.x-e.x)*(o-e.y)/(e.next.y-e.y)+e.x&&(c=!c),e=e.next;while(e!==t);return c}function At(t,n){let e=mt(t.i,t.x,t.y),c=mt(n.i,n.x,n.y),r=t.next,o=n.prev;return t.next=n,n.prev=t,e.next=r,r.prev=e,c.next=e,e.prev=c,o.next=c,c.prev=o,c}function wt(t,n,e,c){let r=mt(t,n,e);return c?(r.next=c.next,r.prev=c,c.next.prev=r,c.next=r):(r.prev=r,r.next=r),r}function ot(t){t.next.prev=t.prev,t.prev.next=t.next,t.prevZ&&(t.prevZ.nextZ=t.nextZ),t.nextZ&&(t.nextZ.prevZ=t.prevZ)}function mt(t,n,e){return{i:t,x:n,y:e,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function jt(t,n,e,c){let r=0;for(let o=n,i=e-c;o<e;o+=c)r+=(t[i]-t[o])*(t[o+1]+t[i+1]),i=o;return r}var qt=new h,Jt=new h,B={};B.computeArea2D=function(t){C.defined("positions",t),C.typeOf.number.greaterThanOrEquals("positions.length",t.length,3);let n=t.length,e=0;for(let c=n-1,r=0;r<n;c=r++){let o=t[c],i=t[r];e+=o.x*i.y-i.x*o.y}return e*.5};B.computeWindingOrder2D=function(t){return B.computeArea2D(t)>0?pt.COUNTER_CLOCKWISE:pt.CLOCKWISE};B.triangulate=function(t,n){C.defined("positions",t);let e=v.packArray(t);return dt(e,n,2)};var Tt=new h,Mt=new h,Zt=new h,Ct=new h,Et=new h,Ot=new h,R=new h,Lt=new v,Dt=new v,Ft=new v,j=new v;B.computeSubdivision=function(t,n,e,c,r){r=K(r,Y.RADIANS_PER_DEGREE);let o=D(c);C.typeOf.object("ellipsoid",t),C.defined("positions",n),C.defined("indices",e),C.typeOf.number.greaterThanOrEquals("indices.length",e.length,3),C.typeOf.number.equals("indices.length % 3","0",e.length%3,0),C.typeOf.number.greaterThan("granularity",r,0);let i=e.slice(0),s,f=n.length,u=new Array(f*3),a=new Array(f*2),y=0,d=0;for(s=0;s<f;s++){let l=n[s];if(u[y++]=l.x,u[y++]=l.y,u[y++]=l.z,o){let x=c[s];a[d++]=x.x,a[d++]=x.y}}let S=[],p={},T=t.maximumRadius,L=Y.chordLength(r,T),z=L*L;for(;i.length>0;){let l=i.pop(),x=i.pop(),m=i.pop(),A=h.fromArray(u,m*3,Tt),E=h.fromArray(u,x*3,Mt),q=h.fromArray(u,l*3,Zt),J,Q,I;o&&(J=v.fromArray(a,m*2,Lt),Q=v.fromArray(a,x*2,Dt),I=v.fromArray(a,l*2,Ft));let k=h.multiplyByScalar(h.normalize(A,Ct),T,Ct),U=h.multiplyByScalar(h.normalize(E,Et),T,Et),W=h.multiplyByScalar(h.normalize(q,Ot),T,Ot),$=h.magnitudeSquared(h.subtract(k,U,R)),G=h.magnitudeSquared(h.subtract(U,W,R)),X=h.magnitudeSquared(h.subtract(W,k,R)),H=Math.max($,G,X),M,w,g;H>z?$===H?(M=`${Math.min(m,x)} ${Math.max(m,x)}`,s=p[M],D(s)||(w=h.add(A,E,R),h.multiplyByScalar(w,.5,w),u.push(w.x,w.y,w.z),s=u.length/3-1,p[M]=s,o&&(g=v.add(J,Q,j),v.multiplyByScalar(g,.5,g),a.push(g.x,g.y))),i.push(m,s,l),i.push(s,x,l)):G===H?(M=`${Math.min(x,l)} ${Math.max(x,l)}`,s=p[M],D(s)||(w=h.add(E,q,R),h.multiplyByScalar(w,.5,w),u.push(w.x,w.y,w.z),s=u.length/3-1,p[M]=s,o&&(g=v.add(Q,I,j),v.multiplyByScalar(g,.5,g),a.push(g.x,g.y))),i.push(x,s,m),i.push(s,l,m)):X===H&&(M=`${Math.min(l,m)} ${Math.max(l,m)}`,s=p[M],D(s)||(w=h.add(q,A,R),h.multiplyByScalar(w,.5,w),u.push(w.x,w.y,w.z),s=u.length/3-1,p[M]=s,o&&(g=v.add(I,J,j),v.multiplyByScalar(g,.5,g),a.push(g.x,g.y))),i.push(l,s,x),i.push(s,m,x)):(S.push(m),S.push(x),S.push(l))}let F={attributes:{position:new nt({componentDatatype:et.DOUBLE,componentsPerAttribute:3,values:u})},indices:S,primitiveType:at.TRIANGLES};return o&&(F.attributes.st=new nt({componentDatatype:et.FLOAT,componentsPerAttribute:2,values:a})),new ht(F)};var Qt=new tt,Xt=new tt,Yt=new tt,gt=new tt;B.computeRhumbLineSubdivision=function(t,n,e,c,r){r=K(r,Y.RADIANS_PER_DEGREE);let o=D(c);C.typeOf.object("ellipsoid",t),C.defined("positions",n),C.defined("indices",e),C.typeOf.number.greaterThanOrEquals("indices.length",e.length,3),C.typeOf.number.equals("indices.length % 3","0",e.length%3,0),C.typeOf.number.greaterThan("granularity",r,0);let i=e.slice(0),s,f=n.length,u=new Array(f*3),a=new Array(f*2),y=0,d=0;for(s=0;s<f;s++){let m=n[s];if(u[y++]=m.x,u[y++]=m.y,u[y++]=m.z,o){let A=c[s];a[d++]=A.x,a[d++]=A.y}}let S=[],p={},T=t.maximumRadius,L=Y.chordLength(r,T),z=new st(void 0,void 0,t),F=new st(void 0,void 0,t),l=new st(void 0,void 0,t);for(;i.length>0;){let m=i.pop(),A=i.pop(),E=i.pop(),q=h.fromArray(u,E*3,Tt),J=h.fromArray(u,A*3,Mt),Q=h.fromArray(u,m*3,Zt),I,k,U;o&&(I=v.fromArray(a,E*2,Lt),k=v.fromArray(a,A*2,Dt),U=v.fromArray(a,m*2,Ft));let W=t.cartesianToCartographic(q,Qt),$=t.cartesianToCartographic(J,Xt),G=t.cartesianToCartographic(Q,Yt);z.setEndPoints(W,$);let X=z.surfaceDistance;F.setEndPoints($,G);let H=F.surfaceDistance;l.setEndPoints(G,W);let M=l.surfaceDistance,w=Math.max(X,H,M),g,P,_,Z,O;w>L?X===w?(g=`${Math.min(E,A)} ${Math.max(E,A)}`,s=p[g],D(s)||(P=z.interpolateUsingFraction(.5,gt),_=(W.height+$.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),s=u.length/3-1,p[g]=s,o&&(O=v.add(I,k,j),v.multiplyByScalar(O,.5,O),a.push(O.x,O.y))),i.push(E,s,m),i.push(s,A,m)):H===w?(g=`${Math.min(A,m)} ${Math.max(A,m)}`,s=p[g],D(s)||(P=F.interpolateUsingFraction(.5,gt),_=($.height+G.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),s=u.length/3-1,p[g]=s,o&&(O=v.add(k,U,j),v.multiplyByScalar(O,.5,O),a.push(O.x,O.y))),i.push(A,s,E),i.push(s,m,E)):M===w&&(g=`${Math.min(m,E)} ${Math.max(m,E)}`,s=p[g],D(s)||(P=l.interpolateUsingFraction(.5,gt),_=(G.height+W.height)*.5,Z=h.fromRadians(P.longitude,P.latitude,_,t,R),u.push(Z.x,Z.y,Z.z),s=u.length/3-1,p[g]=s,o&&(O=v.add(U,I,j),v.multiplyByScalar(O,.5,O),a.push(O.x,O.y))),i.push(m,s,A),i.push(s,E,A)):(S.push(E),S.push(A),S.push(m))}let x={attributes:{position:new nt({componentDatatype:et.DOUBLE,componentsPerAttribute:3,values:u})},indices:S,primitiveType:at.TRIANGLES};return o&&(x.attributes.st=new nt({componentDatatype:et.FLOAT,componentsPerAttribute:2,values:a})),new ht(x)};B.scaleToGeodeticHeight=function(t,n,e,c){e=K(e,vt.default);let r=qt,o=Jt;if(n=K(n,0),c=K(c,!0),D(t)){let i=t.length;for(let s=0;s<i;s+=3)h.fromArray(t,s,o),c&&(o=e.scaleToGeodeticSurface(o,o)),n!==0&&(r=e.geodeticSurfaceNormal(o,r),h.multiplyByScalar(r,n,r),h.add(o,r,o)),t[s]=o.x,t[s+1]=o.y,t[s+2]=o.z}return t};var ge=B;export{pt as a,ge as b}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-MOE32UQS.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-MOE32UQS.js new file mode 100644 index 000000000..c643e9dab --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-MOE32UQS.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var E={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},_=Object.freeze(E);export{_ as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-NYU5F26A.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-NYU5F26A.js new file mode 100644 index 000000000..a14afdeaa --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-NYU5F26A.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{f as j}from"./chunk-AODSXSC5.js";import{a as E}from"./chunk-IISQCXJ5.js";import{a as C}from"./chunk-WHQYJFDH.js";import{b as n}from"./chunk-OYWUGDKS.js";import{e as O}from"./chunk-DRYFJEFT.js";function l(r,o,t){return t<0&&(t+=1),t>1&&(t-=1),t*6<1?r+(o-r)*6*t:t*2<1?o:t*3<2?r+(o-r)*(2/3-t)*6:r}function e(r,o,t,f){this.red=C(r,1),this.green=C(o,1),this.blue=C(t,1),this.alpha=C(f,1)}e.fromCartesian4=function(r,o){return n.typeOf.object("cartesian",r),O(o)?(o.red=r.x,o.green=r.y,o.blue=r.z,o.alpha=r.w,o):new e(r.x,r.y,r.z,r.w)};e.fromBytes=function(r,o,t,f,s){return r=e.byteToFloat(C(r,255)),o=e.byteToFloat(C(o,255)),t=e.byteToFloat(C(t,255)),f=e.byteToFloat(C(f,255)),O(s)?(s.red=r,s.green=o,s.blue=t,s.alpha=f,s):new e(r,o,t,f)};e.fromAlpha=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("alpha",o),O(t)?(t.red=r.red,t.green=r.green,t.blue=r.blue,t.alpha=o,t):new e(r.red,r.green,r.blue,o)};var A,g,m;j.supportsTypedArrays()&&(A=new ArrayBuffer(4),g=new Uint32Array(A),m=new Uint8Array(A));e.fromRgba=function(r,o){return g[0]=r,e.fromBytes(m[0],m[1],m[2],m[3],o)};e.fromHsl=function(r,o,t,f,s){r=C(r,0)%1,o=C(o,0),t=C(t,0),f=C(f,1);let c=t,b=t,i=t;if(o!==0){let S;t<.5?S=t*(1+o):S=t+o-t*o;let F=2*t-S;c=l(F,S,r+1/3),b=l(F,S,r),i=l(F,S,r-1/3)}return O(s)?(s.red=c,s.green=b,s.blue=i,s.alpha=f,s):new e(c,b,i,f)};e.fromRandom=function(r,o){r=C(r,C.EMPTY_OBJECT);let t=r.red;if(!O(t)){let b=C(r.minimumRed,0),i=C(r.maximumRed,1);n.typeOf.number.lessThanOrEquals("minimumRed",b,i),t=b+E.nextRandomNumber()*(i-b)}let f=r.green;if(!O(f)){let b=C(r.minimumGreen,0),i=C(r.maximumGreen,1);n.typeOf.number.lessThanOrEquals("minimumGreen",b,i),f=b+E.nextRandomNumber()*(i-b)}let s=r.blue;if(!O(s)){let b=C(r.minimumBlue,0),i=C(r.maximumBlue,1);n.typeOf.number.lessThanOrEquals("minimumBlue",b,i),s=b+E.nextRandomNumber()*(i-b)}let c=r.alpha;if(!O(c)){let b=C(r.minimumAlpha,0),i=C(r.maximumAlpha,1);n.typeOf.number.lessThanOrEquals("minimumAlpha",b,i),c=b+E.nextRandomNumber()*(i-b)}return O(o)?(o.red=t,o.green=f,o.blue=s,o.alpha=c,o):new e(t,f,s,c)};var a=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,z=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,p=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,R=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;e.fromCssColorString=function(r,o){n.typeOf.string("color",r),O(o)||(o=new e),r=r.trim();let t=e[r.toUpperCase()];if(O(t))return e.clone(t,o),o;let f=a.exec(r);return f!==null?(o.red=parseInt(f[1],16)/15,o.green=parseInt(f[2],16)/15,o.blue=parseInt(f[3],16)/15,o.alpha=parseInt(C(f[4],"f"),16)/15,o):(f=z.exec(r),f!==null?(o.red=parseInt(f[1],16)/255,o.green=parseInt(f[2],16)/255,o.blue=parseInt(f[3],16)/255,o.alpha=parseInt(C(f[4],"ff"),16)/255,o):(f=p.exec(r),f!==null?(o.red=parseFloat(f[1])/(f[1].substr(-1)==="%"?100:255),o.green=parseFloat(f[2])/(f[2].substr(-1)==="%"?100:255),o.blue=parseFloat(f[3])/(f[3].substr(-1)==="%"?100:255),o.alpha=parseFloat(C(f[4],"1.0")),o):(f=R.exec(r),f!==null?e.fromHsl(parseFloat(f[1])/360,parseFloat(f[2])/100,parseFloat(f[3])/100,parseFloat(C(f[4],"1.0")),o):(o=void 0,o))))};e.packedLength=4;e.pack=function(r,o,t){return n.typeOf.object("value",r),n.defined("array",o),t=C(t,0),o[t++]=r.red,o[t++]=r.green,o[t++]=r.blue,o[t]=r.alpha,o};e.unpack=function(r,o,t){return n.defined("array",r),o=C(o,0),O(t)||(t=new e),t.red=r[o++],t.green=r[o++],t.blue=r[o++],t.alpha=r[o],t};e.byteToFloat=function(r){return r/255};e.floatToByte=function(r){return r===1?255:r*256|0};e.clone=function(r,o){if(O(r))return O(o)?(o.red=r.red,o.green=r.green,o.blue=r.blue,o.alpha=r.alpha,o):new e(r.red,r.green,r.blue,r.alpha)};e.equals=function(r,o){return r===o||O(r)&&O(o)&&r.red===o.red&&r.green===o.green&&r.blue===o.blue&&r.alpha===o.alpha};e.equalsArray=function(r,o,t){return r.red===o[t]&&r.green===o[t+1]&&r.blue===o[t+2]&&r.alpha===o[t+3]};e.prototype.clone=function(r){return e.clone(this,r)};e.prototype.equals=function(r){return e.equals(this,r)};e.prototype.equalsEpsilon=function(r,o){return this===r||O(r)&&Math.abs(this.red-r.red)<=o&&Math.abs(this.green-r.green)<=o&&Math.abs(this.blue-r.blue)<=o&&Math.abs(this.alpha-r.alpha)<=o};e.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};e.prototype.toCssColorString=function(){let r=e.floatToByte(this.red),o=e.floatToByte(this.green),t=e.floatToByte(this.blue);return this.alpha===1?`rgb(${r},${o},${t})`:`rgba(${r},${o},${t},${this.alpha})`};e.prototype.toCssHexString=function(){let r=e.floatToByte(this.red).toString(16);r.length<2&&(r=`0${r}`);let o=e.floatToByte(this.green).toString(16);o.length<2&&(o=`0${o}`);let t=e.floatToByte(this.blue).toString(16);if(t.length<2&&(t=`0${t}`),this.alpha<1){let f=e.floatToByte(this.alpha).toString(16);return f.length<2&&(f=`0${f}`),`#${r}${o}${t}${f}`}return`#${r}${o}${t}`};e.prototype.toBytes=function(r){let o=e.floatToByte(this.red),t=e.floatToByte(this.green),f=e.floatToByte(this.blue),s=e.floatToByte(this.alpha);return O(r)?(r[0]=o,r[1]=t,r[2]=f,r[3]=s,r):[o,t,f,s]};e.prototype.toRgba=function(){return m[0]=e.floatToByte(this.red),m[1]=e.floatToByte(this.green),m[2]=e.floatToByte(this.blue),m[3]=e.floatToByte(this.alpha),g[0]};e.prototype.brighten=function(r,o){return n.typeOf.number("magnitude",r),n.typeOf.number.greaterThanOrEquals("magnitude",r,0),n.typeOf.object("result",o),r=1-r,o.red=1-(1-this.red)*r,o.green=1-(1-this.green)*r,o.blue=1-(1-this.blue)*r,o.alpha=this.alpha,o};e.prototype.darken=function(r,o){return n.typeOf.number("magnitude",r),n.typeOf.number.greaterThanOrEquals("magnitude",r,0),n.typeOf.object("result",o),r=1-r,o.red=this.red*r,o.green=this.green*r,o.blue=this.blue*r,o.alpha=this.alpha,o};e.prototype.withAlpha=function(r,o){return e.fromAlpha(this,r,o)};e.add=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red+o.red,t.green=r.green+o.green,t.blue=r.blue+o.blue,t.alpha=r.alpha+o.alpha,t};e.subtract=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red-o.red,t.green=r.green-o.green,t.blue=r.blue-o.blue,t.alpha=r.alpha-o.alpha,t};e.multiply=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red*o.red,t.green=r.green*o.green,t.blue=r.blue*o.blue,t.alpha=r.alpha*o.alpha,t};e.divide=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red/o.red,t.green=r.green/o.green,t.blue=r.blue/o.blue,t.alpha=r.alpha/o.alpha,t};e.mod=function(r,o,t){return n.typeOf.object("left",r),n.typeOf.object("right",o),n.typeOf.object("result",t),t.red=r.red%o.red,t.green=r.green%o.green,t.blue=r.blue%o.blue,t.alpha=r.alpha%o.alpha,t};e.lerp=function(r,o,t,f){return n.typeOf.object("start",r),n.typeOf.object("end",o),n.typeOf.number("t",t),n.typeOf.object("result",f),f.red=E.lerp(r.red,o.red,t),f.green=E.lerp(r.green,o.green,t),f.blue=E.lerp(r.blue,o.blue,t),f.alpha=E.lerp(r.alpha,o.alpha,t),f};e.multiplyByScalar=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("scalar",o),n.typeOf.object("result",t),t.red=r.red*o,t.green=r.green*o,t.blue=r.blue*o,t.alpha=r.alpha*o,t};e.divideByScalar=function(r,o,t){return n.typeOf.object("color",r),n.typeOf.number("scalar",o),n.typeOf.object("result",t),t.red=r.red/o,t.green=r.green/o,t.blue=r.blue/o,t.alpha=r.alpha/o,t};e.ALICEBLUE=Object.freeze(e.fromCssColorString("#F0F8FF"));e.ANTIQUEWHITE=Object.freeze(e.fromCssColorString("#FAEBD7"));e.AQUA=Object.freeze(e.fromCssColorString("#00FFFF"));e.AQUAMARINE=Object.freeze(e.fromCssColorString("#7FFFD4"));e.AZURE=Object.freeze(e.fromCssColorString("#F0FFFF"));e.BEIGE=Object.freeze(e.fromCssColorString("#F5F5DC"));e.BISQUE=Object.freeze(e.fromCssColorString("#FFE4C4"));e.BLACK=Object.freeze(e.fromCssColorString("#000000"));e.BLANCHEDALMOND=Object.freeze(e.fromCssColorString("#FFEBCD"));e.BLUE=Object.freeze(e.fromCssColorString("#0000FF"));e.BLUEVIOLET=Object.freeze(e.fromCssColorString("#8A2BE2"));e.BROWN=Object.freeze(e.fromCssColorString("#A52A2A"));e.BURLYWOOD=Object.freeze(e.fromCssColorString("#DEB887"));e.CADETBLUE=Object.freeze(e.fromCssColorString("#5F9EA0"));e.CHARTREUSE=Object.freeze(e.fromCssColorString("#7FFF00"));e.CHOCOLATE=Object.freeze(e.fromCssColorString("#D2691E"));e.CORAL=Object.freeze(e.fromCssColorString("#FF7F50"));e.CORNFLOWERBLUE=Object.freeze(e.fromCssColorString("#6495ED"));e.CORNSILK=Object.freeze(e.fromCssColorString("#FFF8DC"));e.CRIMSON=Object.freeze(e.fromCssColorString("#DC143C"));e.CYAN=Object.freeze(e.fromCssColorString("#00FFFF"));e.DARKBLUE=Object.freeze(e.fromCssColorString("#00008B"));e.DARKCYAN=Object.freeze(e.fromCssColorString("#008B8B"));e.DARKGOLDENROD=Object.freeze(e.fromCssColorString("#B8860B"));e.DARKGRAY=Object.freeze(e.fromCssColorString("#A9A9A9"));e.DARKGREEN=Object.freeze(e.fromCssColorString("#006400"));e.DARKGREY=e.DARKGRAY;e.DARKKHAKI=Object.freeze(e.fromCssColorString("#BDB76B"));e.DARKMAGENTA=Object.freeze(e.fromCssColorString("#8B008B"));e.DARKOLIVEGREEN=Object.freeze(e.fromCssColorString("#556B2F"));e.DARKORANGE=Object.freeze(e.fromCssColorString("#FF8C00"));e.DARKORCHID=Object.freeze(e.fromCssColorString("#9932CC"));e.DARKRED=Object.freeze(e.fromCssColorString("#8B0000"));e.DARKSALMON=Object.freeze(e.fromCssColorString("#E9967A"));e.DARKSEAGREEN=Object.freeze(e.fromCssColorString("#8FBC8F"));e.DARKSLATEBLUE=Object.freeze(e.fromCssColorString("#483D8B"));e.DARKSLATEGRAY=Object.freeze(e.fromCssColorString("#2F4F4F"));e.DARKSLATEGREY=e.DARKSLATEGRAY;e.DARKTURQUOISE=Object.freeze(e.fromCssColorString("#00CED1"));e.DARKVIOLET=Object.freeze(e.fromCssColorString("#9400D3"));e.DEEPPINK=Object.freeze(e.fromCssColorString("#FF1493"));e.DEEPSKYBLUE=Object.freeze(e.fromCssColorString("#00BFFF"));e.DIMGRAY=Object.freeze(e.fromCssColorString("#696969"));e.DIMGREY=e.DIMGRAY;e.DODGERBLUE=Object.freeze(e.fromCssColorString("#1E90FF"));e.FIREBRICK=Object.freeze(e.fromCssColorString("#B22222"));e.FLORALWHITE=Object.freeze(e.fromCssColorString("#FFFAF0"));e.FORESTGREEN=Object.freeze(e.fromCssColorString("#228B22"));e.FUCHSIA=Object.freeze(e.fromCssColorString("#FF00FF"));e.GAINSBORO=Object.freeze(e.fromCssColorString("#DCDCDC"));e.GHOSTWHITE=Object.freeze(e.fromCssColorString("#F8F8FF"));e.GOLD=Object.freeze(e.fromCssColorString("#FFD700"));e.GOLDENROD=Object.freeze(e.fromCssColorString("#DAA520"));e.GRAY=Object.freeze(e.fromCssColorString("#808080"));e.GREEN=Object.freeze(e.fromCssColorString("#008000"));e.GREENYELLOW=Object.freeze(e.fromCssColorString("#ADFF2F"));e.GREY=e.GRAY;e.HONEYDEW=Object.freeze(e.fromCssColorString("#F0FFF0"));e.HOTPINK=Object.freeze(e.fromCssColorString("#FF69B4"));e.INDIANRED=Object.freeze(e.fromCssColorString("#CD5C5C"));e.INDIGO=Object.freeze(e.fromCssColorString("#4B0082"));e.IVORY=Object.freeze(e.fromCssColorString("#FFFFF0"));e.KHAKI=Object.freeze(e.fromCssColorString("#F0E68C"));e.LAVENDER=Object.freeze(e.fromCssColorString("#E6E6FA"));e.LAVENDAR_BLUSH=Object.freeze(e.fromCssColorString("#FFF0F5"));e.LAWNGREEN=Object.freeze(e.fromCssColorString("#7CFC00"));e.LEMONCHIFFON=Object.freeze(e.fromCssColorString("#FFFACD"));e.LIGHTBLUE=Object.freeze(e.fromCssColorString("#ADD8E6"));e.LIGHTCORAL=Object.freeze(e.fromCssColorString("#F08080"));e.LIGHTCYAN=Object.freeze(e.fromCssColorString("#E0FFFF"));e.LIGHTGOLDENRODYELLOW=Object.freeze(e.fromCssColorString("#FAFAD2"));e.LIGHTGRAY=Object.freeze(e.fromCssColorString("#D3D3D3"));e.LIGHTGREEN=Object.freeze(e.fromCssColorString("#90EE90"));e.LIGHTGREY=e.LIGHTGRAY;e.LIGHTPINK=Object.freeze(e.fromCssColorString("#FFB6C1"));e.LIGHTSEAGREEN=Object.freeze(e.fromCssColorString("#20B2AA"));e.LIGHTSKYBLUE=Object.freeze(e.fromCssColorString("#87CEFA"));e.LIGHTSLATEGRAY=Object.freeze(e.fromCssColorString("#778899"));e.LIGHTSLATEGREY=e.LIGHTSLATEGRAY;e.LIGHTSTEELBLUE=Object.freeze(e.fromCssColorString("#B0C4DE"));e.LIGHTYELLOW=Object.freeze(e.fromCssColorString("#FFFFE0"));e.LIME=Object.freeze(e.fromCssColorString("#00FF00"));e.LIMEGREEN=Object.freeze(e.fromCssColorString("#32CD32"));e.LINEN=Object.freeze(e.fromCssColorString("#FAF0E6"));e.MAGENTA=Object.freeze(e.fromCssColorString("#FF00FF"));e.MAROON=Object.freeze(e.fromCssColorString("#800000"));e.MEDIUMAQUAMARINE=Object.freeze(e.fromCssColorString("#66CDAA"));e.MEDIUMBLUE=Object.freeze(e.fromCssColorString("#0000CD"));e.MEDIUMORCHID=Object.freeze(e.fromCssColorString("#BA55D3"));e.MEDIUMPURPLE=Object.freeze(e.fromCssColorString("#9370DB"));e.MEDIUMSEAGREEN=Object.freeze(e.fromCssColorString("#3CB371"));e.MEDIUMSLATEBLUE=Object.freeze(e.fromCssColorString("#7B68EE"));e.MEDIUMSPRINGGREEN=Object.freeze(e.fromCssColorString("#00FA9A"));e.MEDIUMTURQUOISE=Object.freeze(e.fromCssColorString("#48D1CC"));e.MEDIUMVIOLETRED=Object.freeze(e.fromCssColorString("#C71585"));e.MIDNIGHTBLUE=Object.freeze(e.fromCssColorString("#191970"));e.MINTCREAM=Object.freeze(e.fromCssColorString("#F5FFFA"));e.MISTYROSE=Object.freeze(e.fromCssColorString("#FFE4E1"));e.MOCCASIN=Object.freeze(e.fromCssColorString("#FFE4B5"));e.NAVAJOWHITE=Object.freeze(e.fromCssColorString("#FFDEAD"));e.NAVY=Object.freeze(e.fromCssColorString("#000080"));e.OLDLACE=Object.freeze(e.fromCssColorString("#FDF5E6"));e.OLIVE=Object.freeze(e.fromCssColorString("#808000"));e.OLIVEDRAB=Object.freeze(e.fromCssColorString("#6B8E23"));e.ORANGE=Object.freeze(e.fromCssColorString("#FFA500"));e.ORANGERED=Object.freeze(e.fromCssColorString("#FF4500"));e.ORCHID=Object.freeze(e.fromCssColorString("#DA70D6"));e.PALEGOLDENROD=Object.freeze(e.fromCssColorString("#EEE8AA"));e.PALEGREEN=Object.freeze(e.fromCssColorString("#98FB98"));e.PALETURQUOISE=Object.freeze(e.fromCssColorString("#AFEEEE"));e.PALEVIOLETRED=Object.freeze(e.fromCssColorString("#DB7093"));e.PAPAYAWHIP=Object.freeze(e.fromCssColorString("#FFEFD5"));e.PEACHPUFF=Object.freeze(e.fromCssColorString("#FFDAB9"));e.PERU=Object.freeze(e.fromCssColorString("#CD853F"));e.PINK=Object.freeze(e.fromCssColorString("#FFC0CB"));e.PLUM=Object.freeze(e.fromCssColorString("#DDA0DD"));e.POWDERBLUE=Object.freeze(e.fromCssColorString("#B0E0E6"));e.PURPLE=Object.freeze(e.fromCssColorString("#800080"));e.RED=Object.freeze(e.fromCssColorString("#FF0000"));e.ROSYBROWN=Object.freeze(e.fromCssColorString("#BC8F8F"));e.ROYALBLUE=Object.freeze(e.fromCssColorString("#4169E1"));e.SADDLEBROWN=Object.freeze(e.fromCssColorString("#8B4513"));e.SALMON=Object.freeze(e.fromCssColorString("#FA8072"));e.SANDYBROWN=Object.freeze(e.fromCssColorString("#F4A460"));e.SEAGREEN=Object.freeze(e.fromCssColorString("#2E8B57"));e.SEASHELL=Object.freeze(e.fromCssColorString("#FFF5EE"));e.SIENNA=Object.freeze(e.fromCssColorString("#A0522D"));e.SILVER=Object.freeze(e.fromCssColorString("#C0C0C0"));e.SKYBLUE=Object.freeze(e.fromCssColorString("#87CEEB"));e.SLATEBLUE=Object.freeze(e.fromCssColorString("#6A5ACD"));e.SLATEGRAY=Object.freeze(e.fromCssColorString("#708090"));e.SLATEGREY=e.SLATEGRAY;e.SNOW=Object.freeze(e.fromCssColorString("#FFFAFA"));e.SPRINGGREEN=Object.freeze(e.fromCssColorString("#00FF7F"));e.STEELBLUE=Object.freeze(e.fromCssColorString("#4682B4"));e.TAN=Object.freeze(e.fromCssColorString("#D2B48C"));e.TEAL=Object.freeze(e.fromCssColorString("#008080"));e.THISTLE=Object.freeze(e.fromCssColorString("#D8BFD8"));e.TOMATO=Object.freeze(e.fromCssColorString("#FF6347"));e.TURQUOISE=Object.freeze(e.fromCssColorString("#40E0D0"));e.VIOLET=Object.freeze(e.fromCssColorString("#EE82EE"));e.WHEAT=Object.freeze(e.fromCssColorString("#F5DEB3"));e.WHITE=Object.freeze(e.fromCssColorString("#FFFFFF"));e.WHITESMOKE=Object.freeze(e.fromCssColorString("#F5F5F5"));e.YELLOW=Object.freeze(e.fromCssColorString("#FFFF00"));e.YELLOWGREEN=Object.freeze(e.fromCssColorString("#9ACD32"));e.TRANSPARENT=Object.freeze(new e(0,0,0,0));var h=e;export{h as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ONYACCBZ.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ONYACCBZ.js new file mode 100644 index 000000000..9a10e3a09 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ONYACCBZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as h}from"./chunk-7MCGOXW3.js";import{a as n,c as y,e as a}from"./chunk-AODSXSC5.js";import{b as f}from"./chunk-OYWUGDKS.js";var x={},b=new n,P=new n,B=new n,M=new n,w=new h;x.validOutline=function(i){f.defined("positions",i);let o=h.fromPoints(i,w).halfAxes,e=a.getColumn(o,0,P),r=a.getColumn(o,1,B),t=a.getColumn(o,2,M),u=n.magnitude(e),s=n.magnitude(r),l=n.magnitude(t);return!(u===0&&(s===0||l===0)||s===0&&l===0)};x.computeProjectTo2DArguments=function(i,c,o,e){f.defined("positions",i),f.defined("centerResult",c),f.defined("planeAxis1Result",o),f.defined("planeAxis2Result",e);let r=h.fromPoints(i,w),t=r.halfAxes,u=a.getColumn(t,0,P),s=a.getColumn(t,1,B),l=a.getColumn(t,2,M),A=n.magnitude(u),d=n.magnitude(s),g=n.magnitude(l),m=Math.min(A,d,g);if(A===0&&(d===0||g===0)||d===0&&g===0)return!1;let p,C;return(m===d||m===g)&&(p=u),m===A?p=s:m===g&&(C=s),(m===A||m===d)&&(C=l),n.normalize(p,o),n.normalize(C,e),n.clone(r.center,c),!0};function z(i,c,o,e,r){let t=n.subtract(i,c,b),u=n.dot(o,t),s=n.dot(e,t);return y.fromElements(u,s,r)}x.createProjectPointsTo2DFunction=function(i,c,o){return function(e){let r=new Array(e.length);for(let t=0;t<e.length;t++)r[t]=z(e[t],i,c,o);return r}};x.createProjectPointTo2DFunction=function(i,c,o){return function(e,r){return z(e,i,c,o,r)}};var O=x;export{O as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-OYWUGDKS.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-OYWUGDKS.js new file mode 100644 index 000000000..d129052cc --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-OYWUGDKS.js @@ -0,0 +1,27 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{e as u}from"./chunk-DRYFJEFT.js";function f(t){this.name="DeveloperError",this.message=t;let e;try{throw new Error}catch(o){e=o.stack}this.stack=e}u(Object.create)&&(f.prototype=Object.create(Error.prototype),f.prototype.constructor=f);f.prototype.toString=function(){let t=`${this.name}: ${this.message}`;return u(this.stack)&&(t+=` +${this.stack.toString()}`),t};f.throwInstantiationError=function(){throw new f("This function defines an interface and should not be called directly.")};var r=f;var n={};n.typeOf={};function c(t){return`${t} is required, actual value was undefined`}function a(t,e,o){return`Expected ${o} to be typeof ${e}, actual typeof was ${t}`}n.defined=function(t,e){if(!u(e))throw new r(c(t))};n.typeOf.func=function(t,e){if(typeof e!="function")throw new r(a(typeof e,"function",t))};n.typeOf.string=function(t,e){if(typeof e!="string")throw new r(a(typeof e,"string",t))};n.typeOf.number=function(t,e){if(typeof e!="number")throw new r(a(typeof e,"number",t))};n.typeOf.number.lessThan=function(t,e,o){if(n.typeOf.number(t,e),e>=o)throw new r(`Expected ${t} to be less than ${o}, actual value was ${e}`)};n.typeOf.number.lessThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e>o)throw new r(`Expected ${t} to be less than or equal to ${o}, actual value was ${e}`)};n.typeOf.number.greaterThan=function(t,e,o){if(n.typeOf.number(t,e),e<=o)throw new r(`Expected ${t} to be greater than ${o}, actual value was ${e}`)};n.typeOf.number.greaterThanOrEquals=function(t,e,o){if(n.typeOf.number(t,e),e<o)throw new r(`Expected ${t} to be greater than or equal to ${o}, actual value was ${e}`)};n.typeOf.object=function(t,e){if(typeof e!="object")throw new r(a(typeof e,"object",t))};n.typeOf.bool=function(t,e){if(typeof e!="boolean")throw new r(a(typeof e,"boolean",t))};n.typeOf.bigint=function(t,e){if(typeof e!="bigint")throw new r(a(typeof e,"bigint",t))};n.typeOf.number.equals=function(t,e,o,i){if(n.typeOf.number(t,o),n.typeOf.number(e,i),o!==i)throw new r(`${t} must be equal to ${e}, the actual values are ${o} and ${i}`)};var l=n;export{r as a,l as b}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-QNEABTP2.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-QNEABTP2.js new file mode 100644 index 000000000..cc313e1c7 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-QNEABTP2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-WHQYJFDH.js";import{a as O}from"./chunk-OYWUGDKS.js";import{e as f}from"./chunk-DRYFJEFT.js";function n(e){e=t(e,t.EMPTY_OBJECT),this.position=t(e.position,!1),this.normal=t(e.normal,!1),this.st=t(e.st,!1),this.bitangent=t(e.bitangent,!1),this.tangent=t(e.tangent,!1),this.color=t(e.color,!1)}n.POSITION_ONLY=Object.freeze(new n({position:!0}));n.POSITION_AND_NORMAL=Object.freeze(new n({position:!0,normal:!0}));n.POSITION_NORMAL_AND_ST=Object.freeze(new n({position:!0,normal:!0,st:!0}));n.POSITION_AND_ST=Object.freeze(new n({position:!0,st:!0}));n.POSITION_AND_COLOR=Object.freeze(new n({position:!0,color:!0}));n.ALL=Object.freeze(new n({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));n.DEFAULT=n.POSITION_NORMAL_AND_ST;n.packedLength=6;n.pack=function(e,o,i){if(!f(e))throw new O("value is required");if(!f(o))throw new O("array is required");return i=t(i,0),o[i++]=e.position?1:0,o[i++]=e.normal?1:0,o[i++]=e.st?1:0,o[i++]=e.tangent?1:0,o[i++]=e.bitangent?1:0,o[i]=e.color?1:0,o};n.unpack=function(e,o,i){if(!f(e))throw new O("array is required");return o=t(o,0),f(i)||(i=new n),i.position=e[o++]===1,i.normal=e[o++]===1,i.st=e[o++]===1,i.tangent=e[o++]===1,i.bitangent=e[o++]===1,i.color=e[o]===1,i};n.clone=function(e,o){if(f(e))return f(o)||(o=new n),o.position=e.position,o.normal=e.normal,o.st=e.st,o.tangent=e.tangent,o.bitangent=e.bitangent,o.color=e.color,o};var _=n;export{_ as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RCNUJLF4.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RCNUJLF4.js new file mode 100644 index 000000000..666374fb2 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RCNUJLF4.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Q}from"./chunk-C6CGQVLL.js";import{a as z}from"./chunk-6UMNSGJM.js";import{a as _}from"./chunk-QNEABTP2.js";import{a as K}from"./chunk-T53UE6JF.js";import{a as H}from"./chunk-RYO6NY7F.js";import{b as J,c as W,d as P}from"./chunk-2HSPJH3C.js";import{d as j}from"./chunk-T5AUOWE7.js";import{a as L}from"./chunk-6QVIJ7JA.js";import{a as b,c as k}from"./chunk-AODSXSC5.js";import{a as Z}from"./chunk-IISQCXJ5.js";import{a as x}from"./chunk-WHQYJFDH.js";import{a as F}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";var M=new k,ot=new b,nt=new b,it=new b,st=new b;function O(t){t=x(t,x.EMPTY_OBJECT);let n=t.length,e=t.topRadius,h=t.bottomRadius,o=x(t.vertexFormat,_.DEFAULT),r=x(t.slices,128);if(!g(n))throw new F("options.length must be defined.");if(!g(e))throw new F("options.topRadius must be defined.");if(!g(h))throw new F("options.bottomRadius must be defined.");if(r<3)throw new F("options.slices must be greater than or equal to 3.");if(g(t.offsetAttribute)&&t.offsetAttribute===z.TOP)throw new F("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=n,this._topRadius=e,this._bottomRadius=h,this._vertexFormat=_.clone(o),this._slices=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderGeometry"}O.packedLength=_.packedLength+5;O.pack=function(t,n,e){if(!g(t))throw new F("value is required");if(!g(n))throw new F("array is required");return e=x(e,0),_.pack(t._vertexFormat,n,e),e+=_.packedLength,n[e++]=t._length,n[e++]=t._topRadius,n[e++]=t._bottomRadius,n[e++]=t._slices,n[e]=x(t._offsetAttribute,-1),n};var X=new _,C={vertexFormat:X,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};O.unpack=function(t,n,e){if(!g(t))throw new F("array is required");n=x(n,0);let h=_.unpack(t,n,X);n+=_.packedLength;let o=t[n++],r=t[n++],p=t[n++],D=t[n++],w=t[n];return g(e)?(e._vertexFormat=_.clone(h,e._vertexFormat),e._length=o,e._topRadius=r,e._bottomRadius=p,e._slices=D,e._offsetAttribute=w===-1?void 0:w,e):(C.length=o,C.topRadius=r,C.bottomRadius=p,C.slices=D,C.offsetAttribute=w===-1?void 0:w,new O(C))};O.createGeometry=function(t){let n=t._length,e=t._topRadius,h=t._bottomRadius,o=t._vertexFormat,r=t._slices;if(n<=0||e<0||h<0||e===0&&h===0)return;let p=r+r,D=r+p,w=p+p,E=Q.computePositions(n,e,h,r,!0),N=o.st?new Float32Array(w*2):void 0,c=o.normal?new Float32Array(w*3):void 0,m=o.tangent?new Float32Array(w*3):void 0,u=o.bitangent?new Float32Array(w*3):void 0,i,U=o.normal||o.tangent||o.bitangent;if(U){let T=o.tangent||o.bitangent,f=0,d=0,l=0,q=Math.atan2(h-e,n),A=ot;A.z=Math.sin(q);let B=Math.cos(q),R=it,y=nt;for(i=0;i<r;i++){let Y=i/r*Z.TWO_PI,tt=B*Math.cos(Y),et=B*Math.sin(Y);U&&(A.x=tt,A.y=et,T&&(R=b.normalize(b.cross(b.UNIT_Z,A,R),R)),o.normal&&(c[f++]=A.x,c[f++]=A.y,c[f++]=A.z,c[f++]=A.x,c[f++]=A.y,c[f++]=A.z),o.tangent&&(m[d++]=R.x,m[d++]=R.y,m[d++]=R.z,m[d++]=R.x,m[d++]=R.y,m[d++]=R.z),o.bitangent&&(y=b.normalize(b.cross(A,R,y),y),u[l++]=y.x,u[l++]=y.y,u[l++]=y.z,u[l++]=y.x,u[l++]=y.y,u[l++]=y.z))}for(i=0;i<r;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=-1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=-1,u[l++]=0);for(i=0;i<r;i++)o.normal&&(c[f++]=0,c[f++]=0,c[f++]=1),o.tangent&&(m[d++]=1,m[d++]=0,m[d++]=0),o.bitangent&&(u[l++]=0,u[l++]=1,u[l++]=0)}let $=12*r-12,s=K.createTypedArray(w,$),a=0,v=0;for(i=0;i<r-1;i++)s[a++]=v,s[a++]=v+2,s[a++]=v+3,s[a++]=v,s[a++]=v+3,s[a++]=v+1,v+=2;for(s[a++]=p-2,s[a++]=0,s[a++]=1,s[a++]=p-2,s[a++]=1,s[a++]=p-1,i=1;i<r-1;i++)s[a++]=p+i+1,s[a++]=p+i,s[a++]=p;for(i=1;i<r-1;i++)s[a++]=D,s[a++]=D+i,s[a++]=D+i+1;let V=0;if(o.st){let T=Math.max(e,h);for(i=0;i<w;i++){let f=b.fromArray(E,i*3,st);N[V++]=(f.x+T)/(2*T),N[V++]=(f.y+T)/(2*T)}}let S=new H;o.position&&(S.position=new P({componentDatatype:L.DOUBLE,componentsPerAttribute:3,values:E})),o.normal&&(S.normal=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:c})),o.tangent&&(S.tangent=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:m})),o.bitangent&&(S.bitangent=new P({componentDatatype:L.FLOAT,componentsPerAttribute:3,values:u})),o.st&&(S.st=new P({componentDatatype:L.FLOAT,componentsPerAttribute:2,values:N})),M.x=n*.5,M.y=Math.max(h,e);let I=new j(b.ZERO,k.magnitude(M));if(g(t._offsetAttribute)){n=E.length;let T=t._offsetAttribute===z.NONE?0:1,f=new Uint8Array(n/3).fill(T);S.applyOffset=new P({componentDatatype:L.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new W({attributes:S,indices:s,primitiveType:J.TRIANGLES,boundingSphere:I,offsetAttribute:t._offsetAttribute})};var G;O.getUnitCylinder=function(){return g(G)||(G=O.createGeometry(new O({topRadius:1,bottomRadius:1,length:1,vertexFormat:_.POSITION_ONLY}))),G};var yt=O;export{yt as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RYO6NY7F.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RYO6NY7F.js new file mode 100644 index 000000000..0de4873c4 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-RYO6NY7F.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-WHQYJFDH.js";function a(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}var i=a;export{i as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T53UE6JF.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T53UE6JF.js new file mode 100644 index 000000000..428db3831 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T53UE6JF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-IISQCXJ5.js";import{a as N}from"./chunk-MOE32UQS.js";import{a as t}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";var r={UNSIGNED_BYTE:N.UNSIGNED_BYTE,UNSIGNED_SHORT:N.UNSIGNED_SHORT,UNSIGNED_INT:N.UNSIGNED_INT};r.getSizeInBytes=function(e){switch(e){case r.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case r.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case r.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}throw new t("indexDatatype is required and must be a valid IndexDatatype constant.")};r.fromSizeInBytes=function(e){switch(e){case 2:return r.UNSIGNED_SHORT;case 4:return r.UNSIGNED_INT;case 1:return r.UNSIGNED_BYTE;default:throw new t("Size in bytes cannot be mapped to an IndexDatatype")}};r.validate=function(e){return i(e)&&(e===r.UNSIGNED_BYTE||e===r.UNSIGNED_SHORT||e===r.UNSIGNED_INT)};r.createTypedArray=function(e,n){if(!i(e))throw new t("numberOfVertices is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n):new Uint16Array(n)};r.createTypedArrayFromArrayBuffer=function(e,n,E,o){if(!i(e))throw new t("numberOfVertices is required.");if(!i(n))throw new t("sourceArray is required.");if(!i(E))throw new t("byteOffset is required.");return e>=a.SIXTY_FOUR_KILOBYTES?new Uint32Array(n,E,o):new Uint16Array(n,E,o)};r.fromTypedArray=function(e){if(e instanceof Uint8Array)return r.UNSIGNED_BYTE;if(e instanceof Uint16Array)return r.UNSIGNED_SHORT;if(e instanceof Uint32Array)return r.UNSIGNED_INT;throw new t("array must be a Uint8Array, Uint16Array, or Uint32Array.")};var u=Object.freeze(r);export{u as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T5AUOWE7.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T5AUOWE7.js new file mode 100644 index 000000000..9a65a3073 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-T5AUOWE7.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{b as _,i as I}from"./chunk-Y5B6Y3WD.js";import{a as n,b as N,d as Z,e as A}from"./chunk-AODSXSC5.js";import{a as cn}from"./chunk-IISQCXJ5.js";import{a as T}from"./chunk-WHQYJFDH.js";import{a as on,b as h}from"./chunk-OYWUGDKS.js";import{e as x}from"./chunk-DRYFJEFT.js";function V(e){this._ellipsoid=T(e,Z.default),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(V.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});V.prototype.project=function(e,t){let o=this._semimajorAxis,c=e.longitude*o,r=e.latitude*o,d=e.height;return x(t)?(t.x=c,t.y=r,t.z=d,t):new n(c,r,d)};V.prototype.unproject=function(e,t){if(!x(e))throw new on("cartesian is required");let o=this._oneOverSemimajorAxis,c=e.x*o,r=e.y*o,d=e.z;return x(t)?(t.longitude=c,t.latitude=r,t.height=d,t):new N(c,r,d)};var k=V;var mn={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},U=Object.freeze(mn);function un(e,t){this.start=T(e,0),this.stop=T(t,0)}var rn=un;function a(e,t){this.center=n.clone(T(e,n.ZERO)),this.radius=T(t,0)}var F=new n,Y=new n,J=new n,K=new n,Q=new n,$=new n,L=new n,b=new n,H=new n,nn=new n,tn=new n,en=new n,xn=4/3*cn.PI;a.fromPoints=function(e,t){if(x(t)||(t=new a),!x(e)||e.length===0)return t.center=n.clone(n.ZERO,t.center),t.radius=0,t;let o=n.clone(e[0],L),c=n.clone(o,F),r=n.clone(o,Y),d=n.clone(o,J),f=n.clone(o,K),s=n.clone(o,Q),m=n.clone(o,$),z=e.length,y;for(y=1;y<z;y++){n.clone(e[y],o);let R=o.x,M=o.y,w=o.z;R<c.x&&n.clone(o,c),R>f.x&&n.clone(o,f),M<r.y&&n.clone(o,r),M>s.y&&n.clone(o,s),w<d.z&&n.clone(o,d),w>m.z&&n.clone(o,m)}let u=n.magnitudeSquared(n.subtract(f,c,b)),i=n.magnitudeSquared(n.subtract(s,r,b)),v=n.magnitudeSquared(n.subtract(m,d,b)),C=c,q=f,O=u;i>O&&(O=i,C=r,q=s),v>O&&(O=v,C=d,q=m);let p=H;p.x=(C.x+q.x)*.5,p.y=(C.y+q.y)*.5,p.z=(C.z+q.z)*.5;let S=n.magnitudeSquared(n.subtract(q,p,b)),l=Math.sqrt(S),j=nn;j.x=c.x,j.y=r.y,j.z=d.z;let P=tn;P.x=f.x,P.y=s.y,P.z=m.z;let D=n.midpoint(j,P,en),B=0;for(y=0;y<z;y++){n.clone(e[y],o);let R=n.magnitude(n.subtract(o,D,b));R>B&&(B=R);let M=n.magnitudeSquared(n.subtract(o,p,b));if(M>S){let w=Math.sqrt(M);l=(l+w)*.5,S=l*l;let g=w-l;p.x=(l*p.x+g*o.x)/w,p.y=(l*p.y+g*o.y)/w,p.z=(l*p.z+g*o.z)/w}}return l<B?(n.clone(p,t.center),t.radius=l):(n.clone(D,t.center),t.radius=B),t};var an=new k,yn=new n,ln=new n,G=new N,X=new N;a.fromRectangle2D=function(e,t,o){return a.fromRectangleWithHeights2D(e,t,0,0,o)};a.fromRectangleWithHeights2D=function(e,t,o,c,r){if(x(r)||(r=new a),!x(e))return r.center=n.clone(n.ZERO,r.center),r.radius=0,r;an._ellipsoid=Z.default,t=T(t,an),I.southwest(e,G),G.height=o,I.northeast(e,X),X.height=c;let d=t.project(G,yn),f=t.project(X,ln),s=f.x-d.x,m=f.y-d.y,z=f.z-d.z;r.radius=Math.sqrt(s*s+m*m+z*z)*.5;let y=r.center;return y.x=d.x+s*.5,y.y=d.y+m*.5,y.z=d.z+z*.5,r};var pn=[];a.fromRectangle3D=function(e,t,o,c){if(t=T(t,Z.default),o=T(o,0),x(c)||(c=new a),!x(e))return c.center=n.clone(n.ZERO,c.center),c.radius=0,c;let r=I.subsample(e,t,o,pn);return a.fromPoints(r,c)};a.fromVertices=function(e,t,o,c){if(x(c)||(c=new a),!x(e)||e.length===0)return c.center=n.clone(n.ZERO,c.center),c.radius=0,c;t=T(t,n.ZERO),o=T(o,3),h.typeOf.number.greaterThanOrEquals("stride",o,3);let r=L;r.x=e[0]+t.x,r.y=e[1]+t.y,r.z=e[2]+t.z;let d=n.clone(r,F),f=n.clone(r,Y),s=n.clone(r,J),m=n.clone(r,K),z=n.clone(r,Q),y=n.clone(r,$),u=e.length,i;for(i=0;i<u;i+=o){let w=e[i]+t.x,g=e[i+1]+t.y,E=e[i+2]+t.z;r.x=w,r.y=g,r.z=E,w<d.x&&n.clone(r,d),w>m.x&&n.clone(r,m),g<f.y&&n.clone(r,f),g>z.y&&n.clone(r,z),E<s.z&&n.clone(r,s),E>y.z&&n.clone(r,y)}let v=n.magnitudeSquared(n.subtract(m,d,b)),C=n.magnitudeSquared(n.subtract(z,f,b)),q=n.magnitudeSquared(n.subtract(y,s,b)),O=d,p=m,S=v;C>S&&(S=C,O=f,p=z),q>S&&(S=q,O=s,p=y);let l=H;l.x=(O.x+p.x)*.5,l.y=(O.y+p.y)*.5,l.z=(O.z+p.z)*.5;let j=n.magnitudeSquared(n.subtract(p,l,b)),P=Math.sqrt(j),D=nn;D.x=d.x,D.y=f.y,D.z=s.z;let B=tn;B.x=m.x,B.y=z.y,B.z=y.z;let R=n.midpoint(D,B,en),M=0;for(i=0;i<u;i+=o){r.x=e[i]+t.x,r.y=e[i+1]+t.y,r.z=e[i+2]+t.z;let w=n.magnitude(n.subtract(r,R,b));w>M&&(M=w);let g=n.magnitudeSquared(n.subtract(r,l,b));if(g>j){let E=Math.sqrt(g);P=(P+E)*.5,j=P*P;let W=E-P;l.x=(P*l.x+W*r.x)/E,l.y=(P*l.y+W*r.y)/E,l.z=(P*l.z+W*r.z)/E}}return P<M?(n.clone(l,c.center),c.radius=P):(n.clone(R,c.center),c.radius=M),c};a.fromEncodedCartesianVertices=function(e,t,o){if(x(o)||(o=new a),!x(e)||!x(t)||e.length!==t.length||e.length===0)return o.center=n.clone(n.ZERO,o.center),o.radius=0,o;let c=L;c.x=e[0]+t[0],c.y=e[1]+t[1],c.z=e[2]+t[2];let r=n.clone(c,F),d=n.clone(c,Y),f=n.clone(c,J),s=n.clone(c,K),m=n.clone(c,Q),z=n.clone(c,$),y=e.length,u;for(u=0;u<y;u+=3){let M=e[u]+t[u],w=e[u+1]+t[u+1],g=e[u+2]+t[u+2];c.x=M,c.y=w,c.z=g,M<r.x&&n.clone(c,r),M>s.x&&n.clone(c,s),w<d.y&&n.clone(c,d),w>m.y&&n.clone(c,m),g<f.z&&n.clone(c,f),g>z.z&&n.clone(c,z)}let i=n.magnitudeSquared(n.subtract(s,r,b)),v=n.magnitudeSquared(n.subtract(m,d,b)),C=n.magnitudeSquared(n.subtract(z,f,b)),q=r,O=s,p=i;v>p&&(p=v,q=d,O=m),C>p&&(p=C,q=f,O=z);let S=H;S.x=(q.x+O.x)*.5,S.y=(q.y+O.y)*.5,S.z=(q.z+O.z)*.5;let l=n.magnitudeSquared(n.subtract(O,S,b)),j=Math.sqrt(l),P=nn;P.x=r.x,P.y=d.y,P.z=f.z;let D=tn;D.x=s.x,D.y=m.y,D.z=z.z;let B=n.midpoint(P,D,en),R=0;for(u=0;u<y;u+=3){c.x=e[u]+t[u],c.y=e[u+1]+t[u+1],c.z=e[u+2]+t[u+2];let M=n.magnitude(n.subtract(c,B,b));M>R&&(R=M);let w=n.magnitudeSquared(n.subtract(c,S,b));if(w>l){let g=Math.sqrt(w);j=(j+g)*.5,l=j*j;let E=g-j;S.x=(j*S.x+E*c.x)/g,S.y=(j*S.y+E*c.y)/g,S.z=(j*S.z+E*c.z)/g}}return j<R?(n.clone(S,o.center),o.radius=j):(n.clone(B,o.center),o.radius=R),o};a.fromCornerPoints=function(e,t,o){h.typeOf.object("corner",e),h.typeOf.object("oppositeCorner",t),x(o)||(o=new a);let c=n.midpoint(e,t,o.center);return o.radius=n.distance(c,t),o};a.fromEllipsoid=function(e,t){return h.typeOf.object("ellipsoid",e),x(t)||(t=new a),n.clone(n.ZERO,t.center),t.radius=e.maximumRadius,t};var hn=new n;a.fromBoundingSpheres=function(e,t){if(x(t)||(t=new a),!x(e)||e.length===0)return t.center=n.clone(n.ZERO,t.center),t.radius=0,t;let o=e.length;if(o===1)return a.clone(e[0],t);if(o===2)return a.union(e[0],e[1],t);let c=[],r;for(r=0;r<o;r++)c.push(e[r].center);t=a.fromPoints(c,t);let d=t.center,f=t.radius;for(r=0;r<o;r++){let s=e[r];f=Math.max(f,n.distance(d,s.center,hn)+s.radius)}return t.radius=f,t};var zn=new n,Sn=new n,wn=new n;a.fromOrientedBoundingBox=function(e,t){h.defined("orientedBoundingBox",e),x(t)||(t=new a);let o=e.halfAxes,c=A.getColumn(o,0,zn),r=A.getColumn(o,1,Sn),d=A.getColumn(o,2,wn);return n.add(c,r,c),n.add(c,d,c),t.center=n.clone(e.center,t.center),t.radius=n.magnitude(c),t};var Pn=new n,gn=new n;a.fromTransformation=function(e,t){h.typeOf.object("transformation",e),x(t)||(t=new a);let o=_.getTranslation(e,Pn),c=_.getScale(e,gn),r=.5*n.magnitude(c);return t.center=n.clone(o,t.center),t.radius=r,t};a.clone=function(e,t){if(x(e))return x(t)?(t.center=n.clone(e.center,t.center),t.radius=e.radius,t):new a(e.center,e.radius)};a.packedLength=4;a.pack=function(e,t,o){h.typeOf.object("value",e),h.defined("array",t),o=T(o,0);let c=e.center;return t[o++]=c.x,t[o++]=c.y,t[o++]=c.z,t[o]=e.radius,t};a.unpack=function(e,t,o){h.defined("array",e),t=T(t,0),x(o)||(o=new a);let c=o.center;return c.x=e[t++],c.y=e[t++],c.z=e[t++],o.radius=e[t],o};var On=new n,jn=new n;a.union=function(e,t,o){h.typeOf.object("left",e),h.typeOf.object("right",t),x(o)||(o=new a);let c=e.center,r=e.radius,d=t.center,f=t.radius,s=n.subtract(d,c,On),m=n.magnitude(s);if(r>=m+f)return e.clone(o),o;if(f>=m+r)return t.clone(o),o;let z=(r+m+f)*.5,y=n.multiplyByScalar(s,(-r+z)/m,jn);return n.add(y,c,y),n.clone(y,o.center),o.radius=z,o};var bn=new n;a.expand=function(e,t,o){h.typeOf.object("sphere",e),h.typeOf.object("point",t),o=a.clone(e,o);let c=n.magnitude(n.subtract(t,o.center,bn));return c>o.radius&&(o.radius=c),o};a.intersectPlane=function(e,t){h.typeOf.object("sphere",e),h.typeOf.object("plane",t);let o=e.center,c=e.radius,r=t.normal,d=n.dot(r,o)+t.distance;return d<-c?U.OUTSIDE:d<c?U.INTERSECTING:U.INSIDE};a.transform=function(e,t,o){return h.typeOf.object("sphere",e),h.typeOf.object("transform",t),x(o)||(o=new a),o.center=_.multiplyByPoint(t,e.center,o.center),o.radius=_.getMaximumScale(t)*e.radius,o};var qn=new n;a.distanceSquaredTo=function(e,t){h.typeOf.object("sphere",e),h.typeOf.object("cartesian",t);let o=n.subtract(e.center,t,qn),c=n.magnitude(o)-e.radius;return c<=0?0:c*c};a.transformWithoutScale=function(e,t,o){return h.typeOf.object("sphere",e),h.typeOf.object("transform",t),x(o)||(o=new a),o.center=_.multiplyByPoint(t,e.center,o.center),o.radius=e.radius,o};var Mn=new n;a.computePlaneDistances=function(e,t,o,c){h.typeOf.object("sphere",e),h.typeOf.object("position",t),h.typeOf.object("direction",o),x(c)||(c=new rn);let r=n.subtract(e.center,t,Mn),d=n.dot(o,r);return c.start=d-e.radius,c.stop=d+e.radius,c};var dn=new n,Tn=new n,Cn=new n,Rn=new n,En=new n,Dn=new N,sn=new Array(8);for(let e=0;e<8;++e)sn[e]=new n;var fn=new k;a.projectTo2D=function(e,t,o){h.typeOf.object("sphere",e),fn._ellipsoid=Z.default,t=T(t,fn);let c=t.ellipsoid,r=e.center,d=e.radius,f;n.equals(r,n.ZERO)?f=n.clone(n.UNIT_X,dn):f=c.geodeticSurfaceNormal(r,dn);let s=n.cross(n.UNIT_Z,f,Tn);n.normalize(s,s);let m=n.cross(f,s,Cn);n.normalize(m,m),n.multiplyByScalar(f,d,f),n.multiplyByScalar(m,d,m),n.multiplyByScalar(s,d,s);let z=n.negate(m,En),y=n.negate(s,Rn),u=sn,i=u[0];n.add(f,m,i),n.add(i,s,i),i=u[1],n.add(f,m,i),n.add(i,y,i),i=u[2],n.add(f,z,i),n.add(i,y,i),i=u[3],n.add(f,z,i),n.add(i,s,i),n.negate(f,f),i=u[4],n.add(f,m,i),n.add(i,s,i),i=u[5],n.add(f,m,i),n.add(i,y,i),i=u[6],n.add(f,z,i),n.add(i,y,i),i=u[7],n.add(f,z,i),n.add(i,s,i);let v=u.length;for(let p=0;p<v;++p){let S=u[p];n.add(r,S,S);let l=c.cartesianToCartographic(S,Dn);t.project(l,S)}o=a.fromPoints(u,o),r=o.center;let C=r.x,q=r.y,O=r.z;return r.x=O,r.y=C,r.z=q,o};a.isOccluded=function(e,t){return h.typeOf.object("sphere",e),h.typeOf.object("occluder",t),!t.isBoundingSphereVisible(e)};a.equals=function(e,t){return e===t||x(e)&&x(t)&&n.equals(e.center,t.center)&&e.radius===t.radius};a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)};a.prototype.distanceSquaredTo=function(e){return a.distanceSquaredTo(this,e)};a.prototype.computePlaneDistances=function(e,t,o){return a.computePlaneDistances(this,e,t,o)};a.prototype.isOccluded=function(e){return a.isOccluded(this,e)};a.prototype.equals=function(e){return a.equals(this,e)};a.prototype.clone=function(e){return a.clone(this,e)};a.prototype.volume=function(){let e=this.radius;return xn*e*e*e};var et=a;export{k as a,U as b,rn as c,et as d}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TC4O6KYE.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TC4O6KYE.js new file mode 100644 index 000000000..d0b613fb8 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TC4O6KYE.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as z,b as q}from"./chunk-GCC64MRJ.js";import{a as U}from"./chunk-BLYOACVP.js";import{f as I}from"./chunk-Y5B6Y3WD.js";import{a as e,e as C}from"./chunk-AODSXSC5.js";import{a as O}from"./chunk-IISQCXJ5.js";import{e as j}from"./chunk-DRYFJEFT.js";var G={},B=new e,J=new e,_=new e,v=new e,g=[new e,new e],K=new e,W=new e,X=new e,$=new e,ee=new e,te=new e,ne=new e,oe=new e,re=new e,se=new e,F=new I,k=new C;function V(o,s,a,c,r){let d=e.angleBetween(e.subtract(s,o,B),e.subtract(a,o,J)),y=c===z.BEVELED?1:Math.ceil(d/O.toRadians(5))+1,n=y*3,l=new Array(n);l[n-3]=a.x,l[n-2]=a.y,l[n-1]=a.z;let m;r?m=C.fromQuaternion(I.fromAxisAngle(e.negate(o,B),d/y,F),k):m=C.fromQuaternion(I.fromAxisAngle(o,d/y,F),k);let t=0;s=e.clone(s,B);for(let i=0;i<y;i++)s=C.multiplyByVector(m,s,s),l[t++]=s.x,l[t++]=s.y,l[t++]=s.z;return l}function ae(o){let s=K,a=W,c=X,r=o[1];a=e.fromArray(o[1],r.length-3,a),c=e.fromArray(o[0],0,c),s=e.midpoint(a,c,s);let d=V(s,a,c,z.ROUNDED,!1),y=o.length-1,n=o[y-1];r=o[y],a=e.fromArray(n,n.length-3,a),c=e.fromArray(r,0,c),s=e.midpoint(a,c,s);let l=V(s,a,c,z.ROUNDED,!1);return[d,l]}function H(o,s,a,c){let r=B;return c?r=e.add(o,s,r):(s=e.negate(s,s),r=e.add(o,s,r)),[r.x,r.y,r.z,a.x,a.y,a.z]}function T(o,s,a,c){let r=new Array(o.length),d=new Array(o.length),y=e.multiplyByScalar(s,a,B),n=e.negate(y,J),l=0,m=o.length-1;for(let t=0;t<o.length;t+=3){let i=e.fromArray(o,t,_),w=e.add(i,n,v);r[l++]=w.x,r[l++]=w.y,r[l++]=w.z;let f=e.add(i,y,v);d[m--]=f.z,d[m--]=f.y,d[m--]=f.x}return c.push(r,d),c}G.addAttribute=function(o,s,a,c){let r=s.x,d=s.y,y=s.z;j(a)&&(o[a]=r,o[a+1]=d,o[a+2]=y),j(c)&&(o[c]=y,o[c-1]=d,o[c-2]=r)};var le=new e,ce=new e;G.computePositions=function(o){let s=o.granularity,a=o.positions,c=o.ellipsoid,r=o.width/2,d=o.cornerType,y=o.saveAttributes,n=K,l=W,m=X,t=$,i=ee,w=te,f=ne,u=oe,p=re,x=se,E=[],S=y?[]:void 0,D=y?[]:void 0,h=a[0],N=a[1];l=e.normalize(e.subtract(N,h,l),l),n=c.geodeticSurfaceNormal(h,n),t=e.normalize(e.cross(n,l,t),t),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),f=e.clone(h,f),h=N,m=e.negate(l,m);let A,P=[],M,Y=a.length;for(M=1;M<Y-1;M++){n=c.geodeticSurfaceNormal(h,n),N=a[M+1],l=e.normalize(e.subtract(N,h,l),l);let L=e.multiplyByScalar(n,e.dot(l,n),le);e.subtract(l,L,L),e.normalize(L,L);let R=e.multiplyByScalar(n,e.dot(m,n),ce);if(e.subtract(m,R,R),e.normalize(R,R),!O.equalsEpsilon(Math.abs(e.dot(L,R)),1,O.EPSILON7)){i=e.normalize(e.add(l,m,i),i),i=e.cross(i,n,i),i=e.cross(n,i,i),i=e.normalize(i,i);let Z=r/Math.max(.25,e.magnitude(e.cross(i,m,B))),b=q.angleIsGreaterThanPi(l,m,h,c);i=e.multiplyByScalar(i,Z,i),b?(u=e.add(h,i,u),x=e.add(u,e.multiplyByScalar(t,r,x),x),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(p,w),t=e.normalize(e.cross(n,l,t),t),p=e.add(u,e.multiplyByScalar(t,r*2,p),p),f=e.add(u,e.multiplyByScalar(t,r,f),f),d===z.ROUNDED||d===z.BEVELED?P.push({leftPositions:V(u,w,p,d,b)}):P.push({leftPositions:H(h,e.negate(i,i),p,b)})):(p=e.add(h,i,p),x=e.add(p,e.negate(e.multiplyByScalar(t,r,x),x),x),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),g[0]=e.clone(f,g[0]),g[1]=e.clone(x,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z)),w=e.clone(u,w),t=e.normalize(e.cross(n,l,t),t),u=e.add(p,e.negate(e.multiplyByScalar(t,r*2,u),u),u),f=e.add(p,e.negate(e.multiplyByScalar(t,r,f),f),f),d===z.ROUNDED||d===z.BEVELED?P.push({rightPositions:V(p,w,u,d,b)}):P.push({rightPositions:H(h,i,u,b)})),m=e.negate(l,m)}h=N}n=c.geodeticSurfaceNormal(h,n),g[0]=e.clone(f,g[0]),g[1]=e.clone(h,g[1]),A=U.generateArc({positions:g,granularity:s,ellipsoid:c}),E=T(A,t,r,E),y&&(S.push(t.x,t.y,t.z),D.push(n.x,n.y,n.z));let Q;return d===z.ROUNDED&&(Q=ae(E)),{positions:E,corners:P,lefts:S,normals:D,endPositions:Q}};var we=G;export{we as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TRPXTCDK.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TRPXTCDK.js new file mode 100644 index 000000000..f22810844 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-TRPXTCDK.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as fn,c as Tn}from"./chunk-DRYFJEFT.js";var Dn=Tn((nt,bt)=>{var _=_||{};_.scope={};_.arrayIteratorImpl=function(p){var c=0;return function(){return c<p.length?{done:!1,value:p[c++]}:{done:!0}}};_.arrayIterator=function(p){return{next:_.arrayIteratorImpl(p)}};_.makeIterator=function(p){var c=typeof Symbol<"u"&&Symbol.iterator&&p[Symbol.iterator];return c?c.call(p):_.arrayIterator(p)};_.ASSUME_ES5=!1;_.ASSUME_NO_NATIVE_MAP=!1;_.ASSUME_NO_NATIVE_SET=!1;_.SIMPLE_FROUND_POLYFILL=!1;_.ISOLATE_POLYFILLS=!1;_.FORCE_POLYFILL_PROMISE=!1;_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION=!1;_.getGlobal=function(p){p=[typeof globalThis=="object"&&globalThis,p,typeof window=="object"&&window,typeof self=="object"&&self,typeof global=="object"&&global];for(var c=0;c<p.length;++c){var s=p[c];if(s&&s.Math==Math)return s}throw Error("Cannot find global object")};_.global=_.getGlobal(nt);_.defineProperty=_.ASSUME_ES5||typeof Object.defineProperties=="function"?Object.defineProperty:function(p,c,s){return p==Array.prototype||p==Object.prototype||(p[c]=s.value),p};_.IS_SYMBOL_NATIVE=typeof Symbol=="function"&&typeof Symbol("x")=="symbol";_.TRUST_ES6_POLYFILLS=!_.ISOLATE_POLYFILLS||_.IS_SYMBOL_NATIVE;_.polyfills={};_.propertyToPolyfillSymbol={};_.POLYFILL_PREFIX="$jscp$";_.polyfill=function(p,c,s,y){c&&(_.ISOLATE_POLYFILLS?_.polyfillIsolated(p,c,s,y):_.polyfillUnisolated(p,c,s,y))};_.polyfillUnisolated=function(p,c,s,y){for(s=_.global,p=p.split("."),y=0;y<p.length-1;y++){var a=p[y];if(!(a in s))return;s=s[a]}p=p[p.length-1],y=s[p],c=c(y),c!=y&&c!=null&&_.defineProperty(s,p,{configurable:!0,writable:!0,value:c})};_.polyfillIsolated=function(p,c,s,y){var a=p.split(".");p=a.length===1,y=a[0],y=!p&&y in _.polyfills?_.polyfills:_.global;for(var g=0;g<a.length-1;g++){var i=a[g];if(!(i in y))return;y=y[i]}a=a[a.length-1],s=_.IS_SYMBOL_NATIVE&&s==="es6"?y[a]:null,c=c(s),c!=null&&(p?_.defineProperty(_.polyfills,a,{configurable:!0,writable:!0,value:c}):c!==s&&(_.propertyToPolyfillSymbol[a]===void 0&&(s=1e9*Math.random()>>>0,_.propertyToPolyfillSymbol[a]=_.IS_SYMBOL_NATIVE?_.global.Symbol(a):_.POLYFILL_PREFIX+s+"$"+a),_.defineProperty(y,_.propertyToPolyfillSymbol[a],{configurable:!0,writable:!0,value:c})))};_.polyfill("Promise",function(p){function c(){this.batch_=null}function s(i){return i instanceof a?i:new a(function(l,h){l(i)})}if(p&&(!(_.FORCE_POLYFILL_PROMISE||_.FORCE_POLYFILL_PROMISE_WHEN_NO_UNHANDLED_REJECTION&&typeof _.global.PromiseRejectionEvent>"u")||!_.global.Promise||_.global.Promise.toString().indexOf("[native code]")===-1))return p;c.prototype.asyncExecute=function(i){if(this.batch_==null){this.batch_=[];var l=this;this.asyncExecuteFunction(function(){l.executeBatch_()})}this.batch_.push(i)};var y=_.global.setTimeout;c.prototype.asyncExecuteFunction=function(i){y(i,0)},c.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var i=this.batch_;this.batch_=[];for(var l=0;l<i.length;++l){var h=i[l];i[l]=null;try{h()}catch(I){this.asyncThrow_(I)}}}this.batch_=null},c.prototype.asyncThrow_=function(i){this.asyncExecuteFunction(function(){throw i})};var a=function(i){this.state_=0,this.result_=void 0,this.onSettledCallbacks_=[],this.isRejectionHandled_=!1;var l=this.createResolveAndReject_();try{i(l.resolve,l.reject)}catch(h){l.reject(h)}};a.prototype.createResolveAndReject_=function(){function i(I){return function(C){h||(h=!0,I.call(l,C))}}var l=this,h=!1;return{resolve:i(this.resolveTo_),reject:i(this.reject_)}},a.prototype.resolveTo_=function(i){if(i===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(i instanceof a)this.settleSameAsPromise_(i);else{t:switch(typeof i){case"object":var l=i!=null;break t;case"function":l=!0;break t;default:l=!1}l?this.resolveToNonPromiseObj_(i):this.fulfill_(i)}},a.prototype.resolveToNonPromiseObj_=function(i){var l=void 0;try{l=i.then}catch(h){this.reject_(h);return}typeof l=="function"?this.settleSameAsThenable_(l,i):this.fulfill_(i)},a.prototype.reject_=function(i){this.settle_(2,i)},a.prototype.fulfill_=function(i){this.settle_(1,i)},a.prototype.settle_=function(i,l){if(this.state_!=0)throw Error("Cannot settle("+i+", "+l+"): Promise already settled in state"+this.state_);this.state_=i,this.result_=l,this.state_===2&&this.scheduleUnhandledRejectionCheck_(),this.executeOnSettledCallbacks_()},a.prototype.scheduleUnhandledRejectionCheck_=function(){var i=this;y(function(){if(i.notifyUnhandledRejection_()){var l=_.global.console;typeof l<"u"&&l.error(i.result_)}},1)},a.prototype.notifyUnhandledRejection_=function(){if(this.isRejectionHandled_)return!1;var i=_.global.CustomEvent,l=_.global.Event,h=_.global.dispatchEvent;return typeof h>"u"?!0:(typeof i=="function"?i=new i("unhandledrejection",{cancelable:!0}):typeof l=="function"?i=new l("unhandledrejection",{cancelable:!0}):(i=_.global.document.createEvent("CustomEvent"),i.initCustomEvent("unhandledrejection",!1,!0,i)),i.promise=this,i.reason=this.result_,h(i))},a.prototype.executeOnSettledCallbacks_=function(){if(this.onSettledCallbacks_!=null){for(var i=0;i<this.onSettledCallbacks_.length;++i)g.asyncExecute(this.onSettledCallbacks_[i]);this.onSettledCallbacks_=null}};var g=new c;return a.prototype.settleSameAsPromise_=function(i){var l=this.createResolveAndReject_();i.callWhenSettled_(l.resolve,l.reject)},a.prototype.settleSameAsThenable_=function(i,l){var h=this.createResolveAndReject_();try{i.call(l,h.resolve,h.reject)}catch(I){h.reject(I)}},a.prototype.then=function(i,l){function h(f,T){return typeof f=="function"?function(G){try{I(f(G))}catch(V){C(V)}}:T}var I,C,K=new a(function(f,T){I=f,C=T});return this.callWhenSettled_(h(i,I),h(l,C)),K},a.prototype.catch=function(i){return this.then(void 0,i)},a.prototype.callWhenSettled_=function(i,l){function h(){switch(I.state_){case 1:i(I.result_);break;case 2:l(I.result_);break;default:throw Error("Unexpected state: "+I.state_)}}var I=this;this.onSettledCallbacks_==null?g.asyncExecute(h):this.onSettledCallbacks_.push(h),this.isRejectionHandled_=!0},a.resolve=s,a.reject=function(i){return new a(function(l,h){h(i)})},a.race=function(i){return new a(function(l,h){for(var I=_.makeIterator(i),C=I.next();!C.done;C=I.next())s(C.value).callWhenSettled_(l,h)})},a.all=function(i){var l=_.makeIterator(i),h=l.next();return h.done?s([]):new a(function(I,C){function K(G){return function(V){f[G]=V,T--,T==0&&I(f)}}var f=[],T=0;do f.push(void 0),T++,s(h.value).callWhenSettled_(K(f.length-1),C),h=l.next();while(!h.done)})},a},"es6","es3");_.owns=function(p,c){return Object.prototype.hasOwnProperty.call(p,c)};_.assign=_.TRUST_ES6_POLYFILLS&&typeof Object.assign=="function"?Object.assign:function(p,c){for(var s=1;s<arguments.length;s++){var y=arguments[s];if(y)for(var a in y)_.owns(y,a)&&(p[a]=y[a])}return p};_.polyfill("Object.assign",function(p){return p||_.assign},"es6","es3");_.checkStringArgs=function(p,c,s){if(p==null)throw new TypeError("The 'this' value for String.prototype."+s+" must not be null or undefined");if(c instanceof RegExp)throw new TypeError("First argument to String.prototype."+s+" must not be a regular expression");return p+""};_.polyfill("String.prototype.startsWith",function(p){return p||function(c,s){var y=_.checkStringArgs(this,c,"startsWith");c+="";var a=y.length,g=c.length;s=Math.max(0,Math.min(s|0,y.length));for(var i=0;i<g&&s<a;)if(y[s++]!=c[i++])return!1;return i>=g}},"es6","es3");_.polyfill("Array.prototype.copyWithin",function(p){function c(s){return s=Number(s),s===1/0||s===-1/0?s:s|0}return p||function(s,y,a){var g=this.length;if(s=c(s),y=c(y),a=a===void 0?g:c(a),s=0>s?Math.max(g+s,0):Math.min(s,g),y=0>y?Math.max(g+y,0):Math.min(y,g),a=0>a?Math.max(g+a,0):Math.min(a,g),s<y)for(;y<a;)y in this?this[s++]=this[y++]:(delete this[s++],y++);else for(a=Math.min(a,g+y-s),s+=a-y;a>y;)--a in this?this[--s]=this[a]:delete this[--s];return this}},"es6","es3");_.typedArrayCopyWithin=function(p){return p||Array.prototype.copyWithin};_.polyfill("Int8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint8ClampedArray.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint16Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Int32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Uint32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float32Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");_.polyfill("Float64Array.prototype.copyWithin",_.typedArrayCopyWithin,"es6","es5");var dt=function(){var p=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(p=p||__filename),function(c){function s(e){return t.locateFile?t.locateFile(e,Q):Q+e}function y(e,r,n){var o=r+n;for(n=r;e[n]&&!(n>=o);)++n;if(16<n-r&&e.buffer&&Ot)return Ot.decode(e.subarray(r,n));for(o="";r<n;){var m=e[r++];if(m&128){var b=e[r++]&63;if((m&224)==192)o+=String.fromCharCode((m&31)<<6|b);else{var X=e[r++]&63;m=(m&240)==224?(m&15)<<12|b<<6|X:(m&7)<<18|b<<12|X<<6|e[r++]&63,65536>m?o+=String.fromCharCode(m):(m-=65536,o+=String.fromCharCode(55296|m>>10,56320|m&1023))}}else o+=String.fromCharCode(m)}return o}function a(e,r){return e?y(tt,e,r):""}function g(){var e=_t.buffer;t.HEAP8=q=new Int8Array(e),t.HEAP16=new Int16Array(e),t.HEAP32=et=new Int32Array(e),t.HEAPU8=tt=new Uint8Array(e),t.HEAPU16=new Uint16Array(e),t.HEAPU32=x=new Uint32Array(e),t.HEAPF32=new Float32Array(e),t.HEAPF64=new Float64Array(e)}function i(e){throw t.onAbort&&t.onAbort(e),e="Aborted("+e+")",J(e),Gt=!0,e=new WebAssembly.RuntimeError(e+". Build with -sASSERTIONS for more info."),ot(e),e}function l(e){try{if(e==z&&Z)return new Uint8Array(Z);if(ut)return ut(e);throw"both async and sync fetching of the wasm failed"}catch(r){i(r)}}function h(){if(!Z&&(It||$)){if(typeof fetch=="function"&&!z.startsWith("file://"))return fetch(z,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+z+"'";return e.arrayBuffer()}).catch(function(){return l(z)});if(st)return new Promise(function(e,r){st(z,function(n){e(new Uint8Array(n))},r)})}return Promise.resolve().then(function(){return l(z)})}function I(e){for(;0<e.length;)e.shift()(t)}function C(e){this.excPtr=e,this.ptr=e-24,this.set_type=function(r){x[this.ptr+4>>2]=r},this.get_type=function(){return x[this.ptr+4>>2]},this.set_destructor=function(r){x[this.ptr+8>>2]=r},this.get_destructor=function(){return x[this.ptr+8>>2]},this.set_refcount=function(r){et[this.ptr>>2]=r},this.set_caught=function(r){q[this.ptr+12>>0]=r?1:0},this.get_caught=function(){return q[this.ptr+12>>0]!=0},this.set_rethrown=function(r){q[this.ptr+13>>0]=r?1:0},this.get_rethrown=function(){return q[this.ptr+13>>0]!=0},this.init=function(r,n){this.set_adjusted_ptr(0),this.set_type(r),this.set_destructor(n),this.set_refcount(0),this.set_caught(!1),this.set_rethrown(!1)},this.add_ref=function(){et[this.ptr>>2]+=1},this.release_ref=function(){var r=et[this.ptr>>2];return et[this.ptr>>2]=r-1,r===1},this.set_adjusted_ptr=function(r){x[this.ptr+16>>2]=r},this.get_adjusted_ptr=function(){return x[this.ptr+16>>2]},this.get_exception_ptr=function(){if(ln(this.get_type()))return x[this.excPtr>>2];var r=this.get_adjusted_ptr();return r!==0?r:this.excPtr}}function K(){function e(){if(!it&&(it=!0,t.calledRun=!0,!Gt)){if(Rt=!0,I(ct),ht(t),t.onRuntimeInitialized&&t.onRuntimeInitialized(),t.postRun)for(typeof t.postRun=="function"&&(t.postRun=[t.postRun]);t.postRun.length;)Pt.unshift(t.postRun.shift());I(Pt)}}if(!(0<k)){if(t.preRun)for(typeof t.preRun=="function"&&(t.preRun=[t.preRun]);t.preRun.length;)jt.unshift(t.preRun.shift());I(jt),0<k||(t.setStatus?(t.setStatus("Running..."),setTimeout(function(){setTimeout(function(){t.setStatus("")},1),e()},1)):e())}}function f(){}function T(e){return(e||f).__cache__}function G(e,r){var n=T(r),o=n[e];return o||(o=Object.create((r||f).prototype),o.ptr=e,n[e]=o)}function V(e){if(typeof e=="string"){for(var r=0,n=0;n<e.length;++n){var o=e.charCodeAt(n);127>=o?r++:2047>=o?r+=2:55296<=o&&57343>=o?(r+=4,++n):r+=3}if(r=Array(r+1),n=0,o=r.length,0<o){o=n+o-1;for(var m=0;m<e.length;++m){var b=e.charCodeAt(m);if(55296<=b&&57343>=b){var X=e.charCodeAt(++m);b=65536+((b&1023)<<10)|X&1023}if(127>=b){if(n>=o)break;r[n++]=b}else{if(2047>=b){if(n+1>=o)break;r[n++]=192|b>>6}else{if(65535>=b){if(n+2>=o)break;r[n++]=224|b>>12}else{if(n+3>=o)break;r[n++]=240|b>>18,r[n++]=128|b>>12&63}r[n++]=128|b>>6&63}r[n++]=128|b&63}}r[n]=0}return e=d.alloc(r,q),d.copy(r,q,e),e}return e}function at(e){if(typeof e=="object"){var r=d.alloc(e,q);return d.copy(e,q,r),r}return e}function H(){throw"cannot construct a VoidPtr, no constructor in IDL"}function B(){this.ptr=Mt(),T(B)[this.ptr]=this}function w(){this.ptr=Ft(),T(w)[this.ptr]=this}function Y(){this.ptr=wt(),T(Y)[this.ptr]=this}function A(){this.ptr=Vt(),T(A)[this.ptr]=this}function E(){this.ptr=Jt(),T(E)[this.ptr]=this}function j(){this.ptr=ne(),T(j)[this.ptr]=this}function P(){this.ptr=ae(),T(P)[this.ptr]=this}function O(){this.ptr=ce(),T(O)[this.ptr]=this}function W(){this.ptr=de(),T(W)[this.ptr]=this}function v(){throw"cannot construct a Status, no constructor in IDL"}function R(){this.ptr=Ie(),T(R)[this.ptr]=this}function S(){this.ptr=Ge(),T(S)[this.ptr]=this}function M(){this.ptr=Re(),T(M)[this.ptr]=this}function N(){this.ptr=Ue(),T(N)[this.ptr]=this}function U(){this.ptr=we(),T(U)[this.ptr]=this}function F(){this.ptr=We(),T(F)[this.ptr]=this}function L(){this.ptr=He(),T(L)[this.ptr]=this}function D(){this.ptr=Ke(),T(D)[this.ptr]=this}function u(){this.ptr=_r(),T(u)[this.ptr]=this}c=c===void 0?{}:c;var t=typeof c<"u"?c:{},ht,ot;t.ready=new Promise(function(e,r){ht=e,ot=r});var At=!1,Tt=!1;t.onRuntimeInitialized=function(){At=!0,Tt&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.onModuleParsed=function(){Tt=!0,At&&typeof t.onModuleLoaded=="function"&&t.onModuleLoaded(t)},t.isVersionSupported=function(e){return typeof e!="string"?!1:(e=e.split("."),2>e.length||3<e.length?!1:e[0]==1&&0<=e[1]&&5>=e[1]?!0:!(e[0]!=0||10<e[1]))};var Dt=Object.assign({},t),It=typeof window=="object",$=typeof importScripts=="function",gt=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Q="";if(gt){var vt=fn("fs"),pt=fn("path");Q=$?pt.dirname(Q)+"/":__dirname+"/";var Et=function(e,r){return e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFileSync(e,r?void 0:"utf8")},ut=function(e){return e=Et(e,!0),e.buffer||(e=new Uint8Array(e)),e},st=function(e,r,n){e=e.startsWith("file://")?new URL(e):pt.normalize(e),vt.readFile(e,function(o,m){o?n(o):r(m.buffer)})};1<process.argv.length&&process.argv[1].replace(/\\/g,"/"),process.argv.slice(2),t.inspect=function(){return"[Emscripten Module object]"}}else(It||$)&&($?Q=self.location.href:typeof document<"u"&&document.currentScript&&(Q=document.currentScript.src),p&&(Q=p),Q=Q.indexOf("blob:")!==0?Q.substr(0,Q.replace(/[?#].*/,"").lastIndexOf("/")+1):"",Et=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},$&&(ut=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),st=function(e,r,n){var o=new XMLHttpRequest;o.open("GET",e,!0),o.responseType="arraybuffer",o.onload=function(){o.status==200||o.status==0&&o.response?r(o.response):n()},o.onerror=n,o.send(null)});var dn=t.print||console.log.bind(console),J=t.printErr||console.warn.bind(console);Object.assign(t,Dt),Dt=null;var Z;t.wasmBinary&&(Z=t.wasmBinary),typeof WebAssembly!="object"&&i("no native wasm support detected");var _t,Gt=!1,Ot=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0,q,tt,et,x,jt=[],ct=[],Pt=[],Rt=!1,k=0,yt=null,rt=null,z="draco_decoder.wasm";z.startsWith("data:application/octet-stream;base64,")||(z=s(z));var bn=0,hn=[null,[],[]],An={b:function(e,r,n){throw new C(e).init(r,n),bn++,e},a:function(){i("")},g:function(e,r,n){tt.copyWithin(e,r,r+n)},e:function(e){var r=tt.length;if(e>>>=0,2147483648<e)return!1;for(var n=1;4>=n;n*=2){var o=r*(1+.2/n);o=Math.min(o,e+100663296);var m=Math;o=Math.max(e,o),m=m.min.call(m,2147483648,o+(65536-o%65536)%65536);t:{o=_t.buffer;try{_t.grow(m-o.byteLength+65535>>>16),g();var b=1;break t}catch{}b=void 0}if(b)return!0}return!1},f:function(e){return 52},d:function(e,r,n,o,m){return 70},c:function(e,r,n,o){for(var m=0,b=0;b<n;b++){var X=x[r>>2],mn=x[r+4>>2];r+=8;for(var lt=0;lt<mn;lt++){var mt=tt[X+lt],ft=hn[e];mt===0||mt===10?((e===1?dn:J)(y(ft,0)),ft.length=0):ft.push(mt)}m+=mn}return x[o>>2]=m,0}};(function(){function e(m,b){t.asm=m.exports,_t=t.asm.h,g(),ct.unshift(t.asm.i),k--,t.monitorRunDependencies&&t.monitorRunDependencies(k),k==0&&(yt!==null&&(clearInterval(yt),yt=null),rt&&(m=rt,rt=null,m()))}function r(m){e(m.instance)}function n(m){return h().then(function(b){return WebAssembly.instantiate(b,o)}).then(function(b){return b}).then(m,function(b){J("failed to asynchronously prepare wasm: "+b),i(b)})}var o={a:An};if(k++,t.monitorRunDependencies&&t.monitorRunDependencies(k),t.instantiateWasm)try{return t.instantiateWasm(o,e)}catch(m){J("Module.instantiateWasm callback failed with error: "+m),ot(m)}return function(){return Z||typeof WebAssembly.instantiateStreaming!="function"||z.startsWith("data:application/octet-stream;base64,")||z.startsWith("file://")||gt||typeof fetch!="function"?n(r):fetch(z,{credentials:"same-origin"}).then(function(m){return WebAssembly.instantiateStreaming(m,o).then(r,function(b){return J("wasm streaming compile failed: "+b),J("falling back to ArrayBuffer instantiation"),n(r)})})}().catch(ot),{}})();var St=t._emscripten_bind_VoidPtr___destroy___0=function(){return(St=t._emscripten_bind_VoidPtr___destroy___0=t.asm.k).apply(null,arguments)},Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=function(){return(Mt=t._emscripten_bind_DecoderBuffer_DecoderBuffer_0=t.asm.l).apply(null,arguments)},Nt=t._emscripten_bind_DecoderBuffer_Init_2=function(){return(Nt=t._emscripten_bind_DecoderBuffer_Init_2=t.asm.m).apply(null,arguments)},Ut=t._emscripten_bind_DecoderBuffer___destroy___0=function(){return(Ut=t._emscripten_bind_DecoderBuffer___destroy___0=t.asm.n).apply(null,arguments)},Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=function(){return(Ft=t._emscripten_bind_AttributeTransformData_AttributeTransformData_0=t.asm.o).apply(null,arguments)},Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=function(){return(Lt=t._emscripten_bind_AttributeTransformData_transform_type_0=t.asm.p).apply(null,arguments)},Ct=t._emscripten_bind_AttributeTransformData___destroy___0=function(){return(Ct=t._emscripten_bind_AttributeTransformData___destroy___0=t.asm.q).apply(null,arguments)},wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=function(){return(wt=t._emscripten_bind_GeometryAttribute_GeometryAttribute_0=t.asm.r).apply(null,arguments)},zt=t._emscripten_bind_GeometryAttribute___destroy___0=function(){return(zt=t._emscripten_bind_GeometryAttribute___destroy___0=t.asm.s).apply(null,arguments)},Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=function(){return(Vt=t._emscripten_bind_PointAttribute_PointAttribute_0=t.asm.t).apply(null,arguments)},Bt=t._emscripten_bind_PointAttribute_size_0=function(){return(Bt=t._emscripten_bind_PointAttribute_size_0=t.asm.u).apply(null,arguments)},Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=function(){return(Wt=t._emscripten_bind_PointAttribute_GetAttributeTransformData_0=t.asm.v).apply(null,arguments)},Qt=t._emscripten_bind_PointAttribute_attribute_type_0=function(){return(Qt=t._emscripten_bind_PointAttribute_attribute_type_0=t.asm.w).apply(null,arguments)},xt=t._emscripten_bind_PointAttribute_data_type_0=function(){return(xt=t._emscripten_bind_PointAttribute_data_type_0=t.asm.x).apply(null,arguments)},Yt=t._emscripten_bind_PointAttribute_num_components_0=function(){return(Yt=t._emscripten_bind_PointAttribute_num_components_0=t.asm.y).apply(null,arguments)},Ht=t._emscripten_bind_PointAttribute_normalized_0=function(){return(Ht=t._emscripten_bind_PointAttribute_normalized_0=t.asm.z).apply(null,arguments)},qt=t._emscripten_bind_PointAttribute_byte_stride_0=function(){return(qt=t._emscripten_bind_PointAttribute_byte_stride_0=t.asm.A).apply(null,arguments)},kt=t._emscripten_bind_PointAttribute_byte_offset_0=function(){return(kt=t._emscripten_bind_PointAttribute_byte_offset_0=t.asm.B).apply(null,arguments)},Xt=t._emscripten_bind_PointAttribute_unique_id_0=function(){return(Xt=t._emscripten_bind_PointAttribute_unique_id_0=t.asm.C).apply(null,arguments)},Kt=t._emscripten_bind_PointAttribute___destroy___0=function(){return(Kt=t._emscripten_bind_PointAttribute___destroy___0=t.asm.D).apply(null,arguments)},Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=function(){return(Jt=t._emscripten_bind_AttributeQuantizationTransform_AttributeQuantizationTransform_0=t.asm.E).apply(null,arguments)},$t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=function(){return($t=t._emscripten_bind_AttributeQuantizationTransform_InitFromAttribute_1=t.asm.F).apply(null,arguments)},Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=function(){return(Zt=t._emscripten_bind_AttributeQuantizationTransform_quantization_bits_0=t.asm.G).apply(null,arguments)},te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=function(){return(te=t._emscripten_bind_AttributeQuantizationTransform_min_value_1=t.asm.H).apply(null,arguments)},ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=function(){return(ee=t._emscripten_bind_AttributeQuantizationTransform_range_0=t.asm.I).apply(null,arguments)},re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=function(){return(re=t._emscripten_bind_AttributeQuantizationTransform___destroy___0=t.asm.J).apply(null,arguments)},ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=function(){return(ne=t._emscripten_bind_AttributeOctahedronTransform_AttributeOctahedronTransform_0=t.asm.K).apply(null,arguments)},oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=function(){return(oe=t._emscripten_bind_AttributeOctahedronTransform_InitFromAttribute_1=t.asm.L).apply(null,arguments)},_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=function(){return(_e=t._emscripten_bind_AttributeOctahedronTransform_quantization_bits_0=t.asm.M).apply(null,arguments)},ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=function(){return(ie=t._emscripten_bind_AttributeOctahedronTransform___destroy___0=t.asm.N).apply(null,arguments)},ae=t._emscripten_bind_PointCloud_PointCloud_0=function(){return(ae=t._emscripten_bind_PointCloud_PointCloud_0=t.asm.O).apply(null,arguments)},pe=t._emscripten_bind_PointCloud_num_attributes_0=function(){return(pe=t._emscripten_bind_PointCloud_num_attributes_0=t.asm.P).apply(null,arguments)},ue=t._emscripten_bind_PointCloud_num_points_0=function(){return(ue=t._emscripten_bind_PointCloud_num_points_0=t.asm.Q).apply(null,arguments)},se=t._emscripten_bind_PointCloud___destroy___0=function(){return(se=t._emscripten_bind_PointCloud___destroy___0=t.asm.R).apply(null,arguments)},ce=t._emscripten_bind_Mesh_Mesh_0=function(){return(ce=t._emscripten_bind_Mesh_Mesh_0=t.asm.S).apply(null,arguments)},ye=t._emscripten_bind_Mesh_num_faces_0=function(){return(ye=t._emscripten_bind_Mesh_num_faces_0=t.asm.T).apply(null,arguments)},le=t._emscripten_bind_Mesh_num_attributes_0=function(){return(le=t._emscripten_bind_Mesh_num_attributes_0=t.asm.U).apply(null,arguments)},me=t._emscripten_bind_Mesh_num_points_0=function(){return(me=t._emscripten_bind_Mesh_num_points_0=t.asm.V).apply(null,arguments)},fe=t._emscripten_bind_Mesh___destroy___0=function(){return(fe=t._emscripten_bind_Mesh___destroy___0=t.asm.W).apply(null,arguments)},de=t._emscripten_bind_Metadata_Metadata_0=function(){return(de=t._emscripten_bind_Metadata_Metadata_0=t.asm.X).apply(null,arguments)},be=t._emscripten_bind_Metadata___destroy___0=function(){return(be=t._emscripten_bind_Metadata___destroy___0=t.asm.Y).apply(null,arguments)},he=t._emscripten_bind_Status_code_0=function(){return(he=t._emscripten_bind_Status_code_0=t.asm.Z).apply(null,arguments)},Ae=t._emscripten_bind_Status_ok_0=function(){return(Ae=t._emscripten_bind_Status_ok_0=t.asm._).apply(null,arguments)},Te=t._emscripten_bind_Status_error_msg_0=function(){return(Te=t._emscripten_bind_Status_error_msg_0=t.asm.$).apply(null,arguments)},De=t._emscripten_bind_Status___destroy___0=function(){return(De=t._emscripten_bind_Status___destroy___0=t.asm.aa).apply(null,arguments)},Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=function(){return(Ie=t._emscripten_bind_DracoFloat32Array_DracoFloat32Array_0=t.asm.ba).apply(null,arguments)},ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=function(){return(ge=t._emscripten_bind_DracoFloat32Array_GetValue_1=t.asm.ca).apply(null,arguments)},ve=t._emscripten_bind_DracoFloat32Array_size_0=function(){return(ve=t._emscripten_bind_DracoFloat32Array_size_0=t.asm.da).apply(null,arguments)},Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=function(){return(Ee=t._emscripten_bind_DracoFloat32Array___destroy___0=t.asm.ea).apply(null,arguments)},Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=function(){return(Ge=t._emscripten_bind_DracoInt8Array_DracoInt8Array_0=t.asm.fa).apply(null,arguments)},Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=function(){return(Oe=t._emscripten_bind_DracoInt8Array_GetValue_1=t.asm.ga).apply(null,arguments)},je=t._emscripten_bind_DracoInt8Array_size_0=function(){return(je=t._emscripten_bind_DracoInt8Array_size_0=t.asm.ha).apply(null,arguments)},Pe=t._emscripten_bind_DracoInt8Array___destroy___0=function(){return(Pe=t._emscripten_bind_DracoInt8Array___destroy___0=t.asm.ia).apply(null,arguments)},Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=function(){return(Re=t._emscripten_bind_DracoUInt8Array_DracoUInt8Array_0=t.asm.ja).apply(null,arguments)},Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=function(){return(Se=t._emscripten_bind_DracoUInt8Array_GetValue_1=t.asm.ka).apply(null,arguments)},Me=t._emscripten_bind_DracoUInt8Array_size_0=function(){return(Me=t._emscripten_bind_DracoUInt8Array_size_0=t.asm.la).apply(null,arguments)},Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=function(){return(Ne=t._emscripten_bind_DracoUInt8Array___destroy___0=t.asm.ma).apply(null,arguments)},Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=function(){return(Ue=t._emscripten_bind_DracoInt16Array_DracoInt16Array_0=t.asm.na).apply(null,arguments)},Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=function(){return(Fe=t._emscripten_bind_DracoInt16Array_GetValue_1=t.asm.oa).apply(null,arguments)},Le=t._emscripten_bind_DracoInt16Array_size_0=function(){return(Le=t._emscripten_bind_DracoInt16Array_size_0=t.asm.pa).apply(null,arguments)},Ce=t._emscripten_bind_DracoInt16Array___destroy___0=function(){return(Ce=t._emscripten_bind_DracoInt16Array___destroy___0=t.asm.qa).apply(null,arguments)},we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=function(){return(we=t._emscripten_bind_DracoUInt16Array_DracoUInt16Array_0=t.asm.ra).apply(null,arguments)},ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=function(){return(ze=t._emscripten_bind_DracoUInt16Array_GetValue_1=t.asm.sa).apply(null,arguments)},Ve=t._emscripten_bind_DracoUInt16Array_size_0=function(){return(Ve=t._emscripten_bind_DracoUInt16Array_size_0=t.asm.ta).apply(null,arguments)},Be=t._emscripten_bind_DracoUInt16Array___destroy___0=function(){return(Be=t._emscripten_bind_DracoUInt16Array___destroy___0=t.asm.ua).apply(null,arguments)},We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=function(){return(We=t._emscripten_bind_DracoInt32Array_DracoInt32Array_0=t.asm.va).apply(null,arguments)},Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=function(){return(Qe=t._emscripten_bind_DracoInt32Array_GetValue_1=t.asm.wa).apply(null,arguments)},xe=t._emscripten_bind_DracoInt32Array_size_0=function(){return(xe=t._emscripten_bind_DracoInt32Array_size_0=t.asm.xa).apply(null,arguments)},Ye=t._emscripten_bind_DracoInt32Array___destroy___0=function(){return(Ye=t._emscripten_bind_DracoInt32Array___destroy___0=t.asm.ya).apply(null,arguments)},He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=function(){return(He=t._emscripten_bind_DracoUInt32Array_DracoUInt32Array_0=t.asm.za).apply(null,arguments)},qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=function(){return(qe=t._emscripten_bind_DracoUInt32Array_GetValue_1=t.asm.Aa).apply(null,arguments)},ke=t._emscripten_bind_DracoUInt32Array_size_0=function(){return(ke=t._emscripten_bind_DracoUInt32Array_size_0=t.asm.Ba).apply(null,arguments)},Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=function(){return(Xe=t._emscripten_bind_DracoUInt32Array___destroy___0=t.asm.Ca).apply(null,arguments)},Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=function(){return(Ke=t._emscripten_bind_MetadataQuerier_MetadataQuerier_0=t.asm.Da).apply(null,arguments)},Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=function(){return(Je=t._emscripten_bind_MetadataQuerier_HasEntry_2=t.asm.Ea).apply(null,arguments)},$e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=function(){return($e=t._emscripten_bind_MetadataQuerier_GetIntEntry_2=t.asm.Fa).apply(null,arguments)},Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=function(){return(Ze=t._emscripten_bind_MetadataQuerier_GetIntEntryArray_3=t.asm.Ga).apply(null,arguments)},tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=function(){return(tr=t._emscripten_bind_MetadataQuerier_GetDoubleEntry_2=t.asm.Ha).apply(null,arguments)},er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=function(){return(er=t._emscripten_bind_MetadataQuerier_GetStringEntry_2=t.asm.Ia).apply(null,arguments)},rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=function(){return(rr=t._emscripten_bind_MetadataQuerier_NumEntries_1=t.asm.Ja).apply(null,arguments)},nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=function(){return(nr=t._emscripten_bind_MetadataQuerier_GetEntryName_2=t.asm.Ka).apply(null,arguments)},or=t._emscripten_bind_MetadataQuerier___destroy___0=function(){return(or=t._emscripten_bind_MetadataQuerier___destroy___0=t.asm.La).apply(null,arguments)},_r=t._emscripten_bind_Decoder_Decoder_0=function(){return(_r=t._emscripten_bind_Decoder_Decoder_0=t.asm.Ma).apply(null,arguments)},ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=function(){return(ir=t._emscripten_bind_Decoder_DecodeArrayToPointCloud_3=t.asm.Na).apply(null,arguments)},ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=function(){return(ar=t._emscripten_bind_Decoder_DecodeArrayToMesh_3=t.asm.Oa).apply(null,arguments)},pr=t._emscripten_bind_Decoder_GetAttributeId_2=function(){return(pr=t._emscripten_bind_Decoder_GetAttributeId_2=t.asm.Pa).apply(null,arguments)},ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=function(){return(ur=t._emscripten_bind_Decoder_GetAttributeIdByName_2=t.asm.Qa).apply(null,arguments)},sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=function(){return(sr=t._emscripten_bind_Decoder_GetAttributeIdByMetadataEntry_3=t.asm.Ra).apply(null,arguments)},cr=t._emscripten_bind_Decoder_GetAttribute_2=function(){return(cr=t._emscripten_bind_Decoder_GetAttribute_2=t.asm.Sa).apply(null,arguments)},yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=function(){return(yr=t._emscripten_bind_Decoder_GetAttributeByUniqueId_2=t.asm.Ta).apply(null,arguments)},lr=t._emscripten_bind_Decoder_GetMetadata_1=function(){return(lr=t._emscripten_bind_Decoder_GetMetadata_1=t.asm.Ua).apply(null,arguments)},mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=function(){return(mr=t._emscripten_bind_Decoder_GetAttributeMetadata_2=t.asm.Va).apply(null,arguments)},fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=function(){return(fr=t._emscripten_bind_Decoder_GetFaceFromMesh_3=t.asm.Wa).apply(null,arguments)},dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=function(){return(dr=t._emscripten_bind_Decoder_GetTriangleStripsFromMesh_2=t.asm.Xa).apply(null,arguments)},br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=function(){return(br=t._emscripten_bind_Decoder_GetTrianglesUInt16Array_3=t.asm.Ya).apply(null,arguments)},hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=function(){return(hr=t._emscripten_bind_Decoder_GetTrianglesUInt32Array_3=t.asm.Za).apply(null,arguments)},Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=function(){return(Ar=t._emscripten_bind_Decoder_GetAttributeFloat_3=t.asm._a).apply(null,arguments)},Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=function(){return(Tr=t._emscripten_bind_Decoder_GetAttributeFloatForAllPoints_3=t.asm.$a).apply(null,arguments)},Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=function(){return(Dr=t._emscripten_bind_Decoder_GetAttributeIntForAllPoints_3=t.asm.ab).apply(null,arguments)},Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=function(){return(Ir=t._emscripten_bind_Decoder_GetAttributeInt8ForAllPoints_3=t.asm.bb).apply(null,arguments)},gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=function(){return(gr=t._emscripten_bind_Decoder_GetAttributeUInt8ForAllPoints_3=t.asm.cb).apply(null,arguments)},vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=function(){return(vr=t._emscripten_bind_Decoder_GetAttributeInt16ForAllPoints_3=t.asm.db).apply(null,arguments)},Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=function(){return(Er=t._emscripten_bind_Decoder_GetAttributeUInt16ForAllPoints_3=t.asm.eb).apply(null,arguments)},Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=function(){return(Gr=t._emscripten_bind_Decoder_GetAttributeInt32ForAllPoints_3=t.asm.fb).apply(null,arguments)},Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=function(){return(Or=t._emscripten_bind_Decoder_GetAttributeUInt32ForAllPoints_3=t.asm.gb).apply(null,arguments)},jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=function(){return(jr=t._emscripten_bind_Decoder_GetAttributeDataArrayForAllPoints_5=t.asm.hb).apply(null,arguments)},Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=function(){return(Pr=t._emscripten_bind_Decoder_SkipAttributeTransform_1=t.asm.ib).apply(null,arguments)},Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=function(){return(Rr=t._emscripten_bind_Decoder_GetEncodedGeometryType_Deprecated_1=t.asm.jb).apply(null,arguments)},Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=function(){return(Sr=t._emscripten_bind_Decoder_DecodeBufferToPointCloud_2=t.asm.kb).apply(null,arguments)},Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=function(){return(Mr=t._emscripten_bind_Decoder_DecodeBufferToMesh_2=t.asm.lb).apply(null,arguments)},Nr=t._emscripten_bind_Decoder___destroy___0=function(){return(Nr=t._emscripten_bind_Decoder___destroy___0=t.asm.mb).apply(null,arguments)},Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=function(){return(Ur=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_INVALID_TRANSFORM=t.asm.nb).apply(null,arguments)},Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=function(){return(Fr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_NO_TRANSFORM=t.asm.ob).apply(null,arguments)},Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=function(){return(Lr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_QUANTIZATION_TRANSFORM=t.asm.pb).apply(null,arguments)},Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=function(){return(Cr=t._emscripten_enum_draco_AttributeTransformType_ATTRIBUTE_OCTAHEDRON_TRANSFORM=t.asm.qb).apply(null,arguments)},wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=function(){return(wr=t._emscripten_enum_draco_GeometryAttribute_Type_INVALID=t.asm.rb).apply(null,arguments)},zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=function(){return(zr=t._emscripten_enum_draco_GeometryAttribute_Type_POSITION=t.asm.sb).apply(null,arguments)},Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=function(){return(Vr=t._emscripten_enum_draco_GeometryAttribute_Type_NORMAL=t.asm.tb).apply(null,arguments)},Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=function(){return(Br=t._emscripten_enum_draco_GeometryAttribute_Type_COLOR=t.asm.ub).apply(null,arguments)},Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=function(){return(Wr=t._emscripten_enum_draco_GeometryAttribute_Type_TEX_COORD=t.asm.vb).apply(null,arguments)},Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=function(){return(Qr=t._emscripten_enum_draco_GeometryAttribute_Type_GENERIC=t.asm.wb).apply(null,arguments)},xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=function(){return(xr=t._emscripten_enum_draco_EncodedGeometryType_INVALID_GEOMETRY_TYPE=t.asm.xb).apply(null,arguments)},Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=function(){return(Yr=t._emscripten_enum_draco_EncodedGeometryType_POINT_CLOUD=t.asm.yb).apply(null,arguments)},Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=function(){return(Hr=t._emscripten_enum_draco_EncodedGeometryType_TRIANGULAR_MESH=t.asm.zb).apply(null,arguments)},qr=t._emscripten_enum_draco_DataType_DT_INVALID=function(){return(qr=t._emscripten_enum_draco_DataType_DT_INVALID=t.asm.Ab).apply(null,arguments)},kr=t._emscripten_enum_draco_DataType_DT_INT8=function(){return(kr=t._emscripten_enum_draco_DataType_DT_INT8=t.asm.Bb).apply(null,arguments)},Xr=t._emscripten_enum_draco_DataType_DT_UINT8=function(){return(Xr=t._emscripten_enum_draco_DataType_DT_UINT8=t.asm.Cb).apply(null,arguments)},Kr=t._emscripten_enum_draco_DataType_DT_INT16=function(){return(Kr=t._emscripten_enum_draco_DataType_DT_INT16=t.asm.Db).apply(null,arguments)},Jr=t._emscripten_enum_draco_DataType_DT_UINT16=function(){return(Jr=t._emscripten_enum_draco_DataType_DT_UINT16=t.asm.Eb).apply(null,arguments)},$r=t._emscripten_enum_draco_DataType_DT_INT32=function(){return($r=t._emscripten_enum_draco_DataType_DT_INT32=t.asm.Fb).apply(null,arguments)},Zr=t._emscripten_enum_draco_DataType_DT_UINT32=function(){return(Zr=t._emscripten_enum_draco_DataType_DT_UINT32=t.asm.Gb).apply(null,arguments)},tn=t._emscripten_enum_draco_DataType_DT_INT64=function(){return(tn=t._emscripten_enum_draco_DataType_DT_INT64=t.asm.Hb).apply(null,arguments)},en=t._emscripten_enum_draco_DataType_DT_UINT64=function(){return(en=t._emscripten_enum_draco_DataType_DT_UINT64=t.asm.Ib).apply(null,arguments)},rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=function(){return(rn=t._emscripten_enum_draco_DataType_DT_FLOAT32=t.asm.Jb).apply(null,arguments)},nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=function(){return(nn=t._emscripten_enum_draco_DataType_DT_FLOAT64=t.asm.Kb).apply(null,arguments)},on=t._emscripten_enum_draco_DataType_DT_BOOL=function(){return(on=t._emscripten_enum_draco_DataType_DT_BOOL=t.asm.Lb).apply(null,arguments)},_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=function(){return(_n=t._emscripten_enum_draco_DataType_DT_TYPES_COUNT=t.asm.Mb).apply(null,arguments)},an=t._emscripten_enum_draco_StatusCode_OK=function(){return(an=t._emscripten_enum_draco_StatusCode_OK=t.asm.Nb).apply(null,arguments)},pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=function(){return(pn=t._emscripten_enum_draco_StatusCode_DRACO_ERROR=t.asm.Ob).apply(null,arguments)},un=t._emscripten_enum_draco_StatusCode_IO_ERROR=function(){return(un=t._emscripten_enum_draco_StatusCode_IO_ERROR=t.asm.Pb).apply(null,arguments)},sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=function(){return(sn=t._emscripten_enum_draco_StatusCode_INVALID_PARAMETER=t.asm.Qb).apply(null,arguments)},cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=function(){return(cn=t._emscripten_enum_draco_StatusCode_UNSUPPORTED_VERSION=t.asm.Rb).apply(null,arguments)},yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=function(){return(yn=t._emscripten_enum_draco_StatusCode_UNKNOWN_VERSION=t.asm.Sb).apply(null,arguments)};t._malloc=function(){return(t._malloc=t.asm.Tb).apply(null,arguments)},t._free=function(){return(t._free=t.asm.Ub).apply(null,arguments)};var ln=function(){return(ln=t.asm.Vb).apply(null,arguments)};t.___start_em_js=15856,t.___stop_em_js=15954;var it;if(rt=function e(){it||K(),it||(rt=e)},t.preInit)for(typeof t.preInit=="function"&&(t.preInit=[t.preInit]);0<t.preInit.length;)t.preInit.pop()();K(),f.prototype=Object.create(f.prototype),f.prototype.constructor=f,f.prototype.__class__=f,f.__cache__={},t.WrapperObject=f,t.getCache=T,t.wrapPointer=G,t.castObject=function(e,r){return G(e.ptr,r)},t.NULL=G(0),t.destroy=function(e){if(!e.__destroy__)throw"Error: Cannot destroy object. (Did you create it yourself?)";e.__destroy__(),delete T(e.__class__)[e.ptr]},t.compare=function(e,r){return e.ptr===r.ptr},t.getPointer=function(e){return e.ptr},t.getClass=function(e){return e.__class__};var d={buffer:0,size:0,pos:0,temps:[],needed:0,prepare:function(){if(d.needed){for(var e=0;e<d.temps.length;e++)t._free(d.temps[e]);d.temps.length=0,t._free(d.buffer),d.buffer=0,d.size+=d.needed,d.needed=0}d.buffer||(d.size+=128,d.buffer=t._malloc(d.size),d.buffer||i(void 0)),d.pos=0},alloc:function(e,r){return d.buffer||i(void 0),e=e.length*r.BYTES_PER_ELEMENT,e=e+7&-8,d.pos+e>=d.size?(0<e||i(void 0),d.needed+=e,r=t._malloc(e),d.temps.push(r)):(r=d.buffer+d.pos,d.pos+=e),r},copy:function(e,r,n){switch(n>>>=0,r.BYTES_PER_ELEMENT){case 2:n>>>=1;break;case 4:n>>>=2;break;case 8:n>>>=3}for(var o=0;o<e.length;o++)r[n+o]=e[o]}};return H.prototype=Object.create(f.prototype),H.prototype.constructor=H,H.prototype.__class__=H,H.__cache__={},t.VoidPtr=H,H.prototype.__destroy__=H.prototype.__destroy__=function(){St(this.ptr)},B.prototype=Object.create(f.prototype),B.prototype.constructor=B,B.prototype.__class__=B,B.__cache__={},t.DecoderBuffer=B,B.prototype.Init=B.prototype.Init=function(e,r){var n=this.ptr;d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),Nt(n,e,r)},B.prototype.__destroy__=B.prototype.__destroy__=function(){Ut(this.ptr)},w.prototype=Object.create(f.prototype),w.prototype.constructor=w,w.prototype.__class__=w,w.__cache__={},t.AttributeTransformData=w,w.prototype.transform_type=w.prototype.transform_type=function(){return Lt(this.ptr)},w.prototype.__destroy__=w.prototype.__destroy__=function(){Ct(this.ptr)},Y.prototype=Object.create(f.prototype),Y.prototype.constructor=Y,Y.prototype.__class__=Y,Y.__cache__={},t.GeometryAttribute=Y,Y.prototype.__destroy__=Y.prototype.__destroy__=function(){zt(this.ptr)},A.prototype=Object.create(f.prototype),A.prototype.constructor=A,A.prototype.__class__=A,A.__cache__={},t.PointAttribute=A,A.prototype.size=A.prototype.size=function(){return Bt(this.ptr)},A.prototype.GetAttributeTransformData=A.prototype.GetAttributeTransformData=function(){return G(Wt(this.ptr),w)},A.prototype.attribute_type=A.prototype.attribute_type=function(){return Qt(this.ptr)},A.prototype.data_type=A.prototype.data_type=function(){return xt(this.ptr)},A.prototype.num_components=A.prototype.num_components=function(){return Yt(this.ptr)},A.prototype.normalized=A.prototype.normalized=function(){return!!Ht(this.ptr)},A.prototype.byte_stride=A.prototype.byte_stride=function(){return qt(this.ptr)},A.prototype.byte_offset=A.prototype.byte_offset=function(){return kt(this.ptr)},A.prototype.unique_id=A.prototype.unique_id=function(){return Xt(this.ptr)},A.prototype.__destroy__=A.prototype.__destroy__=function(){Kt(this.ptr)},E.prototype=Object.create(f.prototype),E.prototype.constructor=E,E.prototype.__class__=E,E.__cache__={},t.AttributeQuantizationTransform=E,E.prototype.InitFromAttribute=E.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!$t(r,e)},E.prototype.quantization_bits=E.prototype.quantization_bits=function(){return Zt(this.ptr)},E.prototype.min_value=E.prototype.min_value=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),te(r,e)},E.prototype.range=E.prototype.range=function(){return ee(this.ptr)},E.prototype.__destroy__=E.prototype.__destroy__=function(){re(this.ptr)},j.prototype=Object.create(f.prototype),j.prototype.constructor=j,j.prototype.__class__=j,j.__cache__={},t.AttributeOctahedronTransform=j,j.prototype.InitFromAttribute=j.prototype.InitFromAttribute=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),!!oe(r,e)},j.prototype.quantization_bits=j.prototype.quantization_bits=function(){return _e(this.ptr)},j.prototype.__destroy__=j.prototype.__destroy__=function(){ie(this.ptr)},P.prototype=Object.create(f.prototype),P.prototype.constructor=P,P.prototype.__class__=P,P.__cache__={},t.PointCloud=P,P.prototype.num_attributes=P.prototype.num_attributes=function(){return pe(this.ptr)},P.prototype.num_points=P.prototype.num_points=function(){return ue(this.ptr)},P.prototype.__destroy__=P.prototype.__destroy__=function(){se(this.ptr)},O.prototype=Object.create(f.prototype),O.prototype.constructor=O,O.prototype.__class__=O,O.__cache__={},t.Mesh=O,O.prototype.num_faces=O.prototype.num_faces=function(){return ye(this.ptr)},O.prototype.num_attributes=O.prototype.num_attributes=function(){return le(this.ptr)},O.prototype.num_points=O.prototype.num_points=function(){return me(this.ptr)},O.prototype.__destroy__=O.prototype.__destroy__=function(){fe(this.ptr)},W.prototype=Object.create(f.prototype),W.prototype.constructor=W,W.prototype.__class__=W,W.__cache__={},t.Metadata=W,W.prototype.__destroy__=W.prototype.__destroy__=function(){be(this.ptr)},v.prototype=Object.create(f.prototype),v.prototype.constructor=v,v.prototype.__class__=v,v.__cache__={},t.Status=v,v.prototype.code=v.prototype.code=function(){return he(this.ptr)},v.prototype.ok=v.prototype.ok=function(){return!!Ae(this.ptr)},v.prototype.error_msg=v.prototype.error_msg=function(){return a(Te(this.ptr))},v.prototype.__destroy__=v.prototype.__destroy__=function(){De(this.ptr)},R.prototype=Object.create(f.prototype),R.prototype.constructor=R,R.prototype.__class__=R,R.__cache__={},t.DracoFloat32Array=R,R.prototype.GetValue=R.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ge(r,e)},R.prototype.size=R.prototype.size=function(){return ve(this.ptr)},R.prototype.__destroy__=R.prototype.__destroy__=function(){Ee(this.ptr)},S.prototype=Object.create(f.prototype),S.prototype.constructor=S,S.prototype.__class__=S,S.__cache__={},t.DracoInt8Array=S,S.prototype.GetValue=S.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Oe(r,e)},S.prototype.size=S.prototype.size=function(){return je(this.ptr)},S.prototype.__destroy__=S.prototype.__destroy__=function(){Pe(this.ptr)},M.prototype=Object.create(f.prototype),M.prototype.constructor=M,M.prototype.__class__=M,M.__cache__={},t.DracoUInt8Array=M,M.prototype.GetValue=M.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Se(r,e)},M.prototype.size=M.prototype.size=function(){return Me(this.ptr)},M.prototype.__destroy__=M.prototype.__destroy__=function(){Ne(this.ptr)},N.prototype=Object.create(f.prototype),N.prototype.constructor=N,N.prototype.__class__=N,N.__cache__={},t.DracoInt16Array=N,N.prototype.GetValue=N.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Fe(r,e)},N.prototype.size=N.prototype.size=function(){return Le(this.ptr)},N.prototype.__destroy__=N.prototype.__destroy__=function(){Ce(this.ptr)},U.prototype=Object.create(f.prototype),U.prototype.constructor=U,U.prototype.__class__=U,U.__cache__={},t.DracoUInt16Array=U,U.prototype.GetValue=U.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),ze(r,e)},U.prototype.size=U.prototype.size=function(){return Ve(this.ptr)},U.prototype.__destroy__=U.prototype.__destroy__=function(){Be(this.ptr)},F.prototype=Object.create(f.prototype),F.prototype.constructor=F,F.prototype.__class__=F,F.__cache__={},t.DracoInt32Array=F,F.prototype.GetValue=F.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Qe(r,e)},F.prototype.size=F.prototype.size=function(){return xe(this.ptr)},F.prototype.__destroy__=F.prototype.__destroy__=function(){Ye(this.ptr)},L.prototype=Object.create(f.prototype),L.prototype.constructor=L,L.prototype.__class__=L,L.__cache__={},t.DracoUInt32Array=L,L.prototype.GetValue=L.prototype.GetValue=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),qe(r,e)},L.prototype.size=L.prototype.size=function(){return ke(this.ptr)},L.prototype.__destroy__=L.prototype.__destroy__=function(){Xe(this.ptr)},D.prototype=Object.create(f.prototype),D.prototype.constructor=D,D.prototype.__class__=D,D.__cache__={},t.MetadataQuerier=D,D.prototype.HasEntry=D.prototype.HasEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),!!Je(n,e,r)},D.prototype.GetIntEntry=D.prototype.GetIntEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),$e(n,e,r)},D.prototype.GetIntEntryArray=D.prototype.GetIntEntryArray=function(e,r,n){var o=this.ptr;d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n&&typeof n=="object"&&(n=n.ptr),Ze(o,e,r,n)},D.prototype.GetDoubleEntry=D.prototype.GetDoubleEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),tr(n,e,r)},D.prototype.GetStringEntry=D.prototype.GetStringEntry=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),a(er(n,e,r))},D.prototype.NumEntries=D.prototype.NumEntries=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),rr(r,e)},D.prototype.GetEntryName=D.prototype.GetEntryName=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),a(nr(n,e,r))},D.prototype.__destroy__=D.prototype.__destroy__=function(){or(this.ptr)},u.prototype=Object.create(f.prototype),u.prototype.constructor=u,u.prototype.__class__=u,u.__cache__={},t.Decoder=u,u.prototype.DecodeArrayToPointCloud=u.prototype.DecodeArrayToPointCloud=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ir(o,e,r,n),v)},u.prototype.DecodeArrayToMesh=u.prototype.DecodeArrayToMesh=function(e,r,n){var o=this.ptr;return d.prepare(),typeof e=="object"&&(e=at(e)),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),G(ar(o,e,r,n),v)},u.prototype.GetAttributeId=u.prototype.GetAttributeId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),pr(n,e,r)},u.prototype.GetAttributeIdByName=u.prototype.GetAttributeIdByName=function(e,r){var n=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),ur(n,e,r)},u.prototype.GetAttributeIdByMetadataEntry=u.prototype.GetAttributeIdByMetadataEntry=function(e,r,n){var o=this.ptr;return d.prepare(),e&&typeof e=="object"&&(e=e.ptr),r=r&&typeof r=="object"?r.ptr:V(r),n=n&&typeof n=="object"?n.ptr:V(n),sr(o,e,r,n)},u.prototype.GetAttribute=u.prototype.GetAttribute=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(cr(n,e,r),A)},u.prototype.GetAttributeByUniqueId=u.prototype.GetAttributeByUniqueId=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(yr(n,e,r),A)},u.prototype.GetMetadata=u.prototype.GetMetadata=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),G(lr(r,e),W)},u.prototype.GetAttributeMetadata=u.prototype.GetAttributeMetadata=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(mr(n,e,r),W)},u.prototype.GetFaceFromMesh=u.prototype.GetFaceFromMesh=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!fr(o,e,r,n)},u.prototype.GetTriangleStripsFromMesh=u.prototype.GetTriangleStripsFromMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),dr(n,e,r)},u.prototype.GetTrianglesUInt16Array=u.prototype.GetTrianglesUInt16Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!br(o,e,r,n)},u.prototype.GetTrianglesUInt32Array=u.prototype.GetTrianglesUInt32Array=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!hr(o,e,r,n)},u.prototype.GetAttributeFloat=u.prototype.GetAttributeFloat=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ar(o,e,r,n)},u.prototype.GetAttributeFloatForAllPoints=u.prototype.GetAttributeFloatForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Tr(o,e,r,n)},u.prototype.GetAttributeIntForAllPoints=u.prototype.GetAttributeIntForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Dr(o,e,r,n)},u.prototype.GetAttributeInt8ForAllPoints=u.prototype.GetAttributeInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Ir(o,e,r,n)},u.prototype.GetAttributeUInt8ForAllPoints=u.prototype.GetAttributeUInt8ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!gr(o,e,r,n)},u.prototype.GetAttributeInt16ForAllPoints=u.prototype.GetAttributeInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!vr(o,e,r,n)},u.prototype.GetAttributeUInt16ForAllPoints=u.prototype.GetAttributeUInt16ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Er(o,e,r,n)},u.prototype.GetAttributeInt32ForAllPoints=u.prototype.GetAttributeInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Gr(o,e,r,n)},u.prototype.GetAttributeUInt32ForAllPoints=u.prototype.GetAttributeUInt32ForAllPoints=function(e,r,n){var o=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),!!Or(o,e,r,n)},u.prototype.GetAttributeDataArrayForAllPoints=u.prototype.GetAttributeDataArrayForAllPoints=function(e,r,n,o,m){var b=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),n&&typeof n=="object"&&(n=n.ptr),o&&typeof o=="object"&&(o=o.ptr),m&&typeof m=="object"&&(m=m.ptr),!!jr(b,e,r,n,o,m)},u.prototype.SkipAttributeTransform=u.prototype.SkipAttributeTransform=function(e){var r=this.ptr;e&&typeof e=="object"&&(e=e.ptr),Pr(r,e)},u.prototype.GetEncodedGeometryType_Deprecated=u.prototype.GetEncodedGeometryType_Deprecated=function(e){var r=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),Rr(r,e)},u.prototype.DecodeBufferToPointCloud=u.prototype.DecodeBufferToPointCloud=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Sr(n,e,r),v)},u.prototype.DecodeBufferToMesh=u.prototype.DecodeBufferToMesh=function(e,r){var n=this.ptr;return e&&typeof e=="object"&&(e=e.ptr),r&&typeof r=="object"&&(r=r.ptr),G(Mr(n,e,r),v)},u.prototype.__destroy__=u.prototype.__destroy__=function(){Nr(this.ptr)},function(){function e(){t.ATTRIBUTE_INVALID_TRANSFORM=Ur(),t.ATTRIBUTE_NO_TRANSFORM=Fr(),t.ATTRIBUTE_QUANTIZATION_TRANSFORM=Lr(),t.ATTRIBUTE_OCTAHEDRON_TRANSFORM=Cr(),t.INVALID=wr(),t.POSITION=zr(),t.NORMAL=Vr(),t.COLOR=Br(),t.TEX_COORD=Wr(),t.GENERIC=Qr(),t.INVALID_GEOMETRY_TYPE=xr(),t.POINT_CLOUD=Yr(),t.TRIANGULAR_MESH=Hr(),t.DT_INVALID=qr(),t.DT_INT8=kr(),t.DT_UINT8=Xr(),t.DT_INT16=Kr(),t.DT_UINT16=Jr(),t.DT_INT32=$r(),t.DT_UINT32=Zr(),t.DT_INT64=tn(),t.DT_UINT64=en(),t.DT_FLOAT32=rn(),t.DT_FLOAT64=nn(),t.DT_BOOL=on(),t.DT_TYPES_COUNT=_n(),t.OK=an(),t.DRACO_ERROR=pn(),t.IO_ERROR=un(),t.INVALID_PARAMETER=sn(),t.UNSUPPORTED_VERSION=cn(),t.UNKNOWN_VERSION=yn()}Rt?e():ct.unshift(e)}(),typeof t.onModuleParsed=="function"&&t.onModuleParsed(),t.Decoder.prototype.GetEncodedGeometryType=function(e){if(e.__class__&&e.__class__===t.DecoderBuffer)return t.Decoder.prototype.GetEncodedGeometryType_Deprecated(e);if(8>e.byteLength)return t.INVALID_GEOMETRY_TYPE;switch(e[7]){case 0:return t.POINT_CLOUD;case 1:return t.TRIANGULAR_MESH;default:return t.INVALID_GEOMETRY_TYPE}},c.ready}}();typeof nt=="object"&&typeof bt=="object"?bt.exports=dt:typeof define=="function"&&define.amd?define([],function(){return dt}):typeof nt=="object"&&(nt.DracoDecoderModule=dt)});export{Dn as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UBAKWGRR.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UBAKWGRR.js new file mode 100644 index 000000000..e7695ed69 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UBAKWGRR.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as et}from"./chunk-H3L4SJP4.js";import{a as jt}from"./chunk-3EKULFHC.js";import{b as Lt}from"./chunk-UKQRKTK2.js";import{a as Et}from"./chunk-LNO7O274.js";import{a as j}from"./chunk-T53UE6JF.js";import{a as mt,b as D,c as B,d as U}from"./chunk-2HSPJH3C.js";import{a as _t,b as Ut,d as rt}from"./chunk-T5AUOWE7.js";import{a as dt,b as H}from"./chunk-Y5B6Y3WD.js";import{a as k}from"./chunk-6QVIJ7JA.js";import{a as r,b as Mt,c as R,e as Ot}from"./chunk-AODSXSC5.js";import{a as N}from"./chunk-IISQCXJ5.js";import{a as K}from"./chunk-WHQYJFDH.js";import{a as I,b as pt}from"./chunk-OYWUGDKS.js";import{e as f}from"./chunk-DRYFJEFT.js";var Yt=new r,Zt=new r,Xt=new r;function pe(t,e,n,s,i){pt.defined("point",t),pt.defined("p0",e),pt.defined("p1",n),pt.defined("p2",s),f(i)||(i=new r);let c,o,a,p,u,d,m,l;if(f(e.z)){if(r.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(r.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(r.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=r.subtract(n,e,Yt),o=r.subtract(s,e,Zt),a=r.subtract(t,e,Xt),p=r.dot(c,c),u=r.dot(c,o),d=r.dot(c,a),m=r.dot(o,o),l=r.dot(o,a)}else{if(R.equalsEpsilon(t,e,N.EPSILON14))return r.clone(r.UNIT_X,i);if(R.equalsEpsilon(t,n,N.EPSILON14))return r.clone(r.UNIT_Y,i);if(R.equalsEpsilon(t,s,N.EPSILON14))return r.clone(r.UNIT_Z,i);c=R.subtract(n,e,Yt),o=R.subtract(s,e,Zt),a=R.subtract(t,e,Xt),p=R.dot(c,c),u=R.dot(c,o),d=R.dot(c,a),m=R.dot(o,o),l=R.dot(o,a)}i.y=m*d-u*l,i.z=p*l-u*d;let h=p*m-u*u;if(h!==0)return i.y/=h,i.z/=h,i.x=1-i.y-i.z,i}var Ht=pe;var Nt={};Nt.calculateACMR=function(t){t=K(t,K.EMPTY_OBJECT);let e=t.indices,n=t.maximumIndex,s=K(t.cacheSize,24);if(!f(e))throw new I("indices is required.");let i=e.length;if(i<3||i%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");if(!f(n)){n=0;let a=0,p=e[a];for(;a<i;)p>n&&(n=p),++a,p=e[a]}let c=[];for(let a=0;a<n+1;a++)c[a]=0;let o=s+1;for(let a=0;a<i;++a)o-c[e[a]]>s&&(c[e[a]]=o,++o);return(o-s+1)/(i/3)};Nt.tipsify=function(t){t=K(t,K.EMPTY_OBJECT);let e=t.indices,n=t.maximumIndex,s=K(t.cacheSize,24),i;function c(C,z,q,V){for(;z.length>=1;){let G=z[z.length-1];if(z.splice(z.length-1,1),C[G].numLiveTriangles>0)return G}for(;i<V;){if(C[i].numLiveTriangles>0)return++i,i-1;++i}return-1}function o(C,z,q,V,G,M,J){let Y=-1,_,Pt=-1,gt=0;for(;gt<q.length;){let ft=q[gt];V[ft].numLiveTriangles&&(_=0,G-V[ft].timeStamp+2*V[ft].numLiveTriangles<=z&&(_=G-V[ft].timeStamp),(_>Pt||Pt===-1)&&(Pt=_,Y=ft)),++gt}return Y===-1?c(V,M,C,J):Y}if(!f(e))throw new I("indices is required.");let a=e.length;if(a<3||a%3!==0)throw new I("indices length must be a multiple of three.");if(n<=0)throw new I("maximumIndex must be greater than zero.");if(s<3)throw new I("cacheSize must be greater than two.");let p=0,u=0,d=e[u],m=a;if(f(n))p=n+1;else{for(;u<m;)d>p&&(p=d),++u,d=e[u];if(p===-1)return 0;++p}let l=[],h;for(h=0;h<p;h++)l[h]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let y=0;for(;u<m;)l[e[u]].vertexTriangles.push(y),++l[e[u]].numLiveTriangles,l[e[u+1]].vertexTriangles.push(y),++l[e[u+1]].numLiveTriangles,l[e[u+2]].vertexTriangles.push(y),++l[e[u+2]].numLiveTriangles,++y,u+=3;let v=0,b=s+1;i=1;let S=[],x=[],w,A,E=0,P=[],O=a/3,L=[];for(h=0;h<O;h++)L[h]=!1;let g,T;for(;v!==-1;){S=[],A=l[v],T=A.vertexTriangles.length;for(let C=0;C<T;++C)if(y=A.vertexTriangles[C],!L[y]){L[y]=!0,u=y+y+y;for(let z=0;z<3;++z)g=e[u],S.push(g),x.push(g),P[E]=g,++E,w=l[g],--w.numLiveTriangles,b-w.timeStamp>s&&(w.timeStamp=b,++b),++u}v=o(e,s,S,l,b,x,p)}return P};var Wt=Nt;var F={};function St(t,e,n,s,i){t[e++]=n,t[e++]=s,t[e++]=s,t[e++]=i,t[e++]=i,t[e]=n}function de(t){let e=t.length,n=e/3*6,s=j.createTypedArray(e,n),i=0;for(let c=0;c<e;c+=3,i+=6)St(s,i,t[c],t[c+1],t[c+2]);return s}function me(t){let e=t.length;if(e>=3){let n=(e-2)*6,s=j.createTypedArray(e,n);St(s,0,t[0],t[1],t[2]);let i=6;for(let c=3;c<e;++c,i+=6)St(s,i,t[c-1],t[c],t[c-2]);return s}return new Uint16Array}function he(t){if(t.length>0){let e=t.length-1,n=(e-1)*6,s=j.createTypedArray(e,n),i=t[0],c=0;for(let o=1;o<e;++o,c+=6)St(s,c,i,t[o],t[o+1]);return s}return new Uint16Array}F.toWireframe=function(t){if(!f(t))throw new I("geometry is required.");let e=t.indices;if(f(e)){switch(t.primitiveType){case D.TRIANGLES:t.indices=de(e);break;case D.TRIANGLE_STRIP:t.indices=me(e);break;case D.TRIANGLE_FAN:t.indices=he(e);break;default:throw new I("geometry.primitiveType must be TRIANGLES, TRIANGLE_STRIP, or TRIANGLE_FAN.")}t.primitiveType=D.LINES}return t};F.createLineSegmentsForVectors=function(t,e,n){if(e=K(e,"normal"),!f(t))throw new I("geometry is required.");if(!f(t.attributes.position))throw new I("geometry.attributes.position is required.");if(!f(t.attributes[e]))throw new I(`geometry.attributes must have an attribute with the same name as the attributeName parameter, ${e}.`);n=K(n,1e4);let s=t.attributes.position.values,i=t.attributes[e].values,c=s.length,o=new Float64Array(2*c),a=0;for(let d=0;d<c;d+=3)o[a++]=s[d],o[a++]=s[d+1],o[a++]=s[d+2],o[a++]=s[d]+i[d]*n,o[a++]=s[d+1]+i[d+1]*n,o[a++]=s[d+2]+i[d+2]*n;let p,u=t.boundingSphere;return f(u)&&(p=new rt(u.center,u.radius+n)),new B({attributes:{position:new U({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:o})},primitiveType:D.LINES,boundingSphere:p})};F.createAttributeLocations=function(t){if(!f(t))throw new I("geometry is required.");let e=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=t.attributes,s={},i=0,c,o=e.length;for(c=0;c<o;++c){let a=e[c];f(n[a])&&(s[a]=i++)}for(let a in n)n.hasOwnProperty(a)&&!f(s[a])&&(s[a]=i++);return s};F.reorderForPreVertexCache=function(t){if(!f(t))throw new I("geometry is required.");let e=B.computeNumberOfVertices(t),n=t.indices;if(f(n)){let s=new Int32Array(e);for(let l=0;l<e;l++)s[l]=-1;let i=n,c=i.length,o=j.createTypedArray(e,c),a=0,p=0,u=0,d;for(;a<c;)d=s[i[a]],d!==-1?o[p]=d:(d=i[a],s[d]=u,o[p]=u,++u),++a,++p;t.indices=o;let m=t.attributes;for(let l in m)if(m.hasOwnProperty(l)&&f(m[l])&&f(m[l].values)){let h=m[l],y=h.values,v=0,b=h.componentsPerAttribute,S=k.createTypedArray(h.componentDatatype,u*b);for(;v<e;){let x=s[v];if(x!==-1)for(let w=0;w<b;w++)S[b*x+w]=y[b*v+w];++v}h.values=S}}return t};F.reorderForPostVertexCache=function(t,e){if(!f(t))throw new I("geometry is required.");let n=t.indices;if(t.primitiveType===D.TRIANGLES&&f(n)){let s=n.length,i=0;for(let c=0;c<s;c++)n[c]>i&&(i=n[c]);t.indices=Wt.tipsify({indices:n,maximumIndex:i,cacheSize:e})}return t};function $t(t){let e={};for(let n in t)if(t.hasOwnProperty(n)&&f(t[n])&&f(t[n].values)){let s=t[n];e[n]=new U({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:[]})}return e}function be(t,e,n){for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];for(let c=0;c<i.componentsPerAttribute;++c)t[s].values.push(i.values[n*i.componentsPerAttribute+c])}}F.fitToUnsignedShortIndices=function(t){if(!f(t))throw new I("geometry is required.");if(f(t.indices)&&t.primitiveType!==D.TRIANGLES&&t.primitiveType!==D.LINES&&t.primitiveType!==D.POINTS)throw new I("geometry.primitiveType must equal to PrimitiveType.TRIANGLES, PrimitiveType.LINES, or PrimitiveType.POINTS.");let e=[],n=B.computeNumberOfVertices(t);if(f(t.indices)&&n>=N.SIXTY_FOUR_KILOBYTES){let s=[],i=[],c=0,o=$t(t.attributes),a=t.indices,p=a.length,u;t.primitiveType===D.TRIANGLES?u=3:t.primitiveType===D.LINES?u=2:t.primitiveType===D.POINTS&&(u=1);for(let d=0;d<p;d+=u){for(let m=0;m<u;++m){let l=a[d+m],h=s[l];f(h)||(h=c++,s[l]=h,be(o,t.attributes,l)),i.push(h)}c+u>=N.SIXTY_FOUR_KILOBYTES&&(e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV})),s=[],i=[],c=0,o=$t(t.attributes))}i.length!==0&&e.push(new B({attributes:o,indices:i,primitiveType:t.primitiveType,boundingSphere:t.boundingSphere,boundingSphereCV:t.boundingSphereCV}))}else e.push(t);return e};var Jt=new r,we=new Mt;F.projectTo2D=function(t,e,n,s,i){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeName3D is required.");if(!f(s))throw new I("attributeName2D is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==k.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let c=t.attributes[e];i=f(i)?i:new _t;let o=i.ellipsoid,a=c.values,p=new Float64Array(a.length),u=0;for(let d=0;d<a.length;d+=3){let m=r.fromArray(a,d,Jt),l=o.cartesianToCartographic(m,we);if(!f(l))throw new I(`Could not project point (${m.x}, ${m.y}, ${m.z}) to 2D.`);let h=i.project(l,Jt);p[u++]=h.x,p[u++]=h.y,p[u++]=h.z}return t.attributes[n]=c,t.attributes[s]=new U({componentDatatype:k.DOUBLE,componentsPerAttribute:3,values:p}),delete t.attributes[e],t};var zt={high:0,low:0};F.encodeAttribute=function(t,e,n,s){if(!f(t))throw new I("geometry is required.");if(!f(e))throw new I("attributeName is required.");if(!f(n))throw new I("attributeHighName is required.");if(!f(s))throw new I("attributeLowName is required.");if(!f(t.attributes[e]))throw new I(`geometry must have attribute matching the attributeName argument: ${e}.`);if(t.attributes[e].componentDatatype!==k.DOUBLE)throw new I("The attribute componentDatatype must be ComponentDatatype.DOUBLE.");let i=t.attributes[e],c=i.values,o=c.length,a=new Float32Array(o),p=new Float32Array(o);for(let d=0;d<o;++d)jt.encode(c[d],zt),a[d]=zt.high,p[d]=zt.low;let u=i.componentsPerAttribute;return t.attributes[n]=new U({componentDatatype:k.FLOAT,componentsPerAttribute:u,values:a}),t.attributes[s]=new U({componentDatatype:k.FLOAT,componentsPerAttribute:u,values:p}),delete t.attributes[e],t};var $=new r;function Dt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),H.multiplyByPoint(t,$,$),r.pack($,n,i)}}function qt(t,e){if(f(e)){let n=e.values,s=n.length;for(let i=0;i<s;i+=3)r.unpack(n,i,$),Ot.multiplyByVector(t,$,$),$=r.normalize($,$),r.pack($,n,i)}}var vt=new H,yt=new Ot;F.transformToWorldCoordinates=function(t){if(!f(t))throw new I("instance is required.");let e=t.modelMatrix;if(H.equals(e,H.IDENTITY))return t;let n=t.geometry.attributes;Dt(e,n.position),Dt(e,n.prevPosition),Dt(e,n.nextPosition),(f(n.normal)||f(n.tangent)||f(n.bitangent))&&(H.inverse(e,vt),H.transpose(vt,vt),H.getMatrix3(vt,yt),qt(yt,n.normal),qt(yt,n.tangent),qt(yt,n.bitangent));let s=t.geometry.boundingSphere;return f(s)&&(t.geometry.boundingSphere=rt.transform(s,e,s)),t.modelMatrix=H.clone(H.IDENTITY),t};function ve(t,e){let n=t.length,s={},i=t[0][e].attributes,c;for(c in i)if(i.hasOwnProperty(c)&&f(i[c])&&f(i[c].values)){let o=i[c],a=o.values.length,p=!0;for(let u=1;u<n;++u){let d=t[u][e].attributes[c];if(!f(d)||o.componentDatatype!==d.componentDatatype||o.componentsPerAttribute!==d.componentsPerAttribute||o.normalize!==d.normalize){p=!1;break}a+=d.values.length}p&&(s[c]=new U({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:k.createTypedArray(o.componentDatatype,a)}))}return s}var ye=new r;function Vt(t,e){let n=t.length,s,i,c,o,a=t[0].modelMatrix,p=f(t[0][e].indices),u=t[0][e].primitiveType;for(i=1;i<n;++i){if(!H.equals(t[i].modelMatrix,a))throw new I("All instances must have the same modelMatrix.");if(f(t[i][e].indices)!==p)throw new I("All instance geometries must have an indices or not have one.");if(t[i][e].primitiveType!==u)throw new I("All instance geometries must have the same primitiveType.")}let d=ve(t,e),m,l,h;for(s in d)if(d.hasOwnProperty(s))for(m=d[s].values,o=0,i=0;i<n;++i)for(l=t[i][e].attributes[s].values,h=l.length,c=0;c<h;++c)m[o++]=l[c];let y;if(p){let x=0;for(i=0;i<n;++i)x+=t[i][e].indices.length;let w=B.computeNumberOfVertices(new B({attributes:d,primitiveType:D.POINTS})),A=j.createTypedArray(w,x),E=0,P=0;for(i=0;i<n;++i){let O=t[i][e].indices,L=O.length;for(o=0;o<L;++o)A[E++]=P+O[o];P+=B.computeNumberOfVertices(t[i][e])}y=A}let v=new r,b=0,S;for(i=0;i<n;++i){if(S=t[i][e].boundingSphere,!f(S)){v=void 0;break}r.add(S.center,v,v)}if(f(v))for(r.divideByScalar(v,n,v),i=0;i<n;++i){S=t[i][e].boundingSphere;let x=r.magnitude(r.subtract(S.center,v,ye))+S.radius;x>b&&(b=x)}return new B({attributes:d,indices:y,primitiveType:u,boundingSphere:f(v)?new rt(v,b):void 0})}F.combineInstances=function(t){if(!f(t)||t.length<1)throw new I("instances is required and must have length greater than zero.");let e=[],n=[],s=t.length;for(let c=0;c<s;++c){let o=t[c];f(o.geometry)?e.push(o):f(o.westHemisphereGeometry)&&f(o.eastHemisphereGeometry)&&n.push(o)}let i=[];return e.length>0&&i.push(Vt(e,"geometry")),n.length>0&&(i.push(Vt(n,"westHemisphereGeometry")),i.push(Vt(n,"eastHemisphereGeometry"))),i};var Z=new r,ht=new r,ct=new r,at=new r;F.computeNormal=function(t){if(!f(t))throw new I("geometry is required.");if(!f(t.attributes.position)||!f(t.attributes.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(t.indices))throw new I("geometry.indices is required.");if(t.indices.length<2||t.indices.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let e=t.indices,n=t.attributes,s=n.position.values,i=n.position.values.length/3,c=e.length,o=new Array(i),a=new Array(c/3),p=new Array(c),u;for(u=0;u<i;u++)o[u]={indexOffset:0,count:0,currentCount:0};let d=0;for(u=0;u<c;u+=3){let y=e[u],v=e[u+1],b=e[u+2],S=y*3,x=v*3,w=b*3;ht.x=s[S],ht.y=s[S+1],ht.z=s[S+2],ct.x=s[x],ct.y=s[x+1],ct.z=s[x+2],at.x=s[w],at.y=s[w+1],at.z=s[w+2],o[y].count++,o[v].count++,o[b].count++,r.subtract(ct,ht,ct),r.subtract(at,ht,at),a[d]=r.cross(ct,at,new r),d++}let m=0;for(u=0;u<i;u++)o[u].indexOffset+=m,m+=o[u].count;d=0;let l;for(u=0;u<c;u+=3){l=o[e[u]];let y=l.indexOffset+l.currentCount;p[y]=d,l.currentCount++,l=o[e[u+1]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,l=o[e[u+2]],y=l.indexOffset+l.currentCount,p[y]=d,l.currentCount++,d++}let h=new Float32Array(i*3);for(u=0;u<i;u++){let y=u*3;if(l=o[u],r.clone(r.ZERO,Z),l.count>0){for(d=0;d<l.count;d++)r.add(Z,a[p[l.indexOffset+d]],Z);r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&r.clone(a[p[l.indexOffset]],Z)}r.equalsEpsilon(r.ZERO,Z,N.EPSILON10)&&(Z.z=1),r.normalize(Z,Z),h[y]=Z.x,h[y+1]=Z.y,h[y+2]=Z.z}return t.attributes.normal=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:h}),t};var xe=new r,Kt=new r,Te=new r;F.computeTangentAndBitangent=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes,n=t.indices;if(!f(e.position)||!f(e.position.values))throw new I("geometry.attributes.position.values is required.");if(!f(e.normal)||!f(e.normal.values))throw new I("geometry.attributes.normal.values is required.");if(!f(e.st)||!f(e.st.values))throw new I("geometry.attributes.st.values is required.");if(!f(n))throw new I("geometry.indices is required.");if(n.length<2||n.length%3!==0)throw new I("geometry.indices length must be greater than 0 and be a multiple of 3.");if(t.primitiveType!==D.TRIANGLES)throw new I("geometry.primitiveType must be PrimitiveType.TRIANGLES.");let s=t.attributes.position.values,i=t.attributes.normal.values,c=t.attributes.st.values,o=t.attributes.position.values.length/3,a=n.length,p=new Array(o*3),u;for(u=0;u<p.length;u++)p[u]=0;let d,m,l;for(u=0;u<a;u+=3){let v=n[u],b=n[u+1],S=n[u+2];d=v*3,m=b*3,l=S*3;let x=v*2,w=b*2,A=S*2,E=s[d],P=s[d+1],O=s[d+2],L=c[x],g=c[x+1],T=c[w+1]-g,C=c[A+1]-g,z=1/((c[w]-L)*C-(c[A]-L)*T),q=(C*(s[m]-E)-T*(s[l]-E))*z,V=(C*(s[m+1]-P)-T*(s[l+1]-P))*z,G=(C*(s[m+2]-O)-T*(s[l+2]-O))*z;p[d]+=q,p[d+1]+=V,p[d+2]+=G,p[m]+=q,p[m+1]+=V,p[m+2]+=G,p[l]+=q,p[l+1]+=V,p[l+2]+=G}let h=new Float32Array(o*3),y=new Float32Array(o*3);for(u=0;u<o;u++){d=u*3,m=d+1,l=d+2;let v=r.fromArray(i,d,xe),b=r.fromArray(p,d,Te),S=r.dot(v,b);r.multiplyByScalar(v,S,Kt),r.normalize(r.subtract(b,Kt,b),b),h[d]=b.x,h[m]=b.y,h[l]=b.z,r.normalize(r.cross(v,b,b),b),y[d]=b.x,y[m]=b.y,y[l]=b.z}return t.attributes.tangent=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:h}),t.attributes.bitangent=new U({componentDatatype:k.FLOAT,componentsPerAttribute:3,values:y}),t};var bt=new R,W=new r,Qt=new r,te=new r,xt=new R;F.compressVertices=function(t){if(!f(t))throw new I("geometry is required.");let e=t.attributes.extrudeDirection,n,s;if(f(e)){let P=e.values;s=P.length/3;let O=new Float32Array(s*2),L=0;for(n=0;n<s;++n){if(r.fromArray(P,n*3,W),r.equals(W,r.ZERO)){L+=2;continue}xt=et.octEncodeInRange(W,65535,xt),O[L++]=xt.x,O[L++]=xt.y}return t.attributes.compressedAttributes=new U({componentDatatype:k.FLOAT,componentsPerAttribute:2,values:O}),delete t.attributes.extrudeDirection,t}let i=t.attributes.normal,c=t.attributes.st,o=f(i),a=f(c);if(!o&&!a)return t;let p=t.attributes.tangent,u=t.attributes.bitangent,d=f(p),m=f(u),l,h,y,v;o&&(l=i.values),a&&(h=c.values),d&&(y=p.values),m&&(v=u.values),s=(o?l.length:h.length)/(o?3:2);let x=s,w=a&&o?2:1;w+=d||m?1:0,x*=w;let A=new Float32Array(x),E=0;for(n=0;n<s;++n){a&&(R.fromArray(h,n*2,bt),A[E++]=et.compressTextureCoordinates(bt));let P=n*3;o&&f(y)&&f(v)?(r.fromArray(l,P,W),r.fromArray(y,P,Qt),r.fromArray(v,P,te),et.octPack(W,Qt,te,bt),A[E++]=bt.x,A[E++]=bt.y):(o&&(r.fromArray(l,P,W),A[E++]=et.octEncodeFloat(W)),d&&(r.fromArray(y,P,W),A[E++]=et.octEncodeFloat(W)),m&&(r.fromArray(v,P,W),A[E++]=et.octEncodeFloat(W)))}return t.attributes.compressedAttributes=new U({componentDatatype:k.FLOAT,componentsPerAttribute:w,values:A}),o&&delete t.attributes.normal,a&&delete t.attributes.st,m&&delete t.attributes.bitangent,d&&delete t.attributes.tangent,t};function Ae(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");if(e%3!==0)throw new I("The number of vertices must be a multiple of three.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function Ie(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least three.");let n=j.createTypedArray(e,(e-2)*3);n[0]=1,n[1]=0,n[2]=2;let s=3;for(let i=3;i<e;++i)n[s++]=i-1,n[s++]=0,n[s++]=i;return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Se(t){let e=B.computeNumberOfVertices(t);if(e<3)throw new I("The number of vertices must be at least 3.");let n=j.createTypedArray(e,(e-2)*3);n[0]=0,n[1]=1,n[2]=2,e>3&&(n[3]=0,n[4]=2,n[5]=3);let s=6;for(let i=3;i<e-1;i+=2)n[s++]=i,n[s++]=i-1,n[s++]=i+1,i+2<e&&(n[s++]=i,n[s++]=i+1,n[s++]=i+2);return t.indices=n,t.primitiveType=D.TRIANGLES,t}function Pe(t){if(f(t.indices))return t;let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");if(e%2!==0)throw new I("The number of vertices must be a multiple of 2.");let n=j.createTypedArray(e,e);for(let s=0;s<e;++s)n[s]=s;return t.indices=n,t}function ge(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,(e-1)*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return t.indices=n,t.primitiveType=D.LINES,t}function Oe(t){let e=B.computeNumberOfVertices(t);if(e<2)throw new I("The number of vertices must be at least two.");let n=j.createTypedArray(e,e*2);n[0]=0,n[1]=1;let s=2;for(let i=2;i<e;++i)n[s++]=i-1,n[s++]=i;return n[s++]=e-1,n[s]=0,t.indices=n,t.primitiveType=D.LINES,t}function Le(t){switch(t.primitiveType){case D.TRIANGLE_FAN:return Ie(t);case D.TRIANGLE_STRIP:return Se(t);case D.TRIANGLES:return Ae(t);case D.LINE_STRIP:return ge(t);case D.LINE_LOOP:return Oe(t);case D.LINES:return Pe(t)}return t}function tt(t,e){Math.abs(t.y)<N.EPSILON6&&(e?t.y=-N.EPSILON6:t.y=N.EPSILON6)}function Ee(t,e,n){if(t.y!==0&&e.y!==0&&n.y!==0){tt(t,t.y<0),tt(e,e.y<0),tt(n,n.y<0);return}let s=Math.abs(t.y),i=Math.abs(e.y),c=Math.abs(n.y),o;s>i?s>c?o=N.sign(t.y):o=N.sign(n.y):i>c?o=N.sign(e.y):o=N.sign(n.y);let a=o<0;tt(t,a),tt(e,a),tt(n,a)}var ee=new r;function X(t,e,n,s){r.add(t,r.multiplyByScalar(r.subtract(e,t,ee),t.y/(t.y-e.y),ee),n),r.clone(n,s),tt(n,!0),tt(s,!1)}var nt=new r,it=new r,st=new r,ot=new r,Rt={positions:new Array(7),indices:new Array(3*3)};function Ne(t,e,n){if(t.x>=0||e.x>=0||n.x>=0)return;Ee(t,e,n);let s=t.y<0,i=e.y<0,c=n.y<0,o=0;o+=s?1:0,o+=i?1:0,o+=c?1:0;let a=Rt.indices;o===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,s?(X(t,e,nt,st),X(t,n,it,ot),a[0]=0,a[3]=1,a[4]=2,a[6]=1):i?(X(e,n,nt,st),X(e,t,it,ot),a[0]=1,a[3]=2,a[4]=0,a[6]=2):c&&(X(n,t,nt,st),X(n,e,it,ot),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):o===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,s?i?c||(X(n,t,nt,st),X(n,e,it,ot),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(X(e,n,nt,st),X(e,t,it,ot),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(X(t,e,nt,st),X(t,n,it,ot),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let p=Rt.positions;return p[0]=t,p[1]=e,p[2]=n,p.length=3,(o===1||o===2)&&(p[3]=nt,p[4]=it,p[5]=st,p[6]=ot,p.length=7),Rt}function ne(t,e){let n=t.attributes;if(n.position.values.length===0)return;for(let i in n)if(n.hasOwnProperty(i)&&f(n[i])&&f(n[i].values)){let c=n[i];c.values=k.createTypedArray(c.componentDatatype,c.values)}let s=B.computeNumberOfVertices(t);return t.indices=j.createTypedArray(s,t.indices),e&&(t.boundingSphere=rt.fromVertices(n.position.values)),t}function lt(t){let e=t.attributes,n={};for(let s in e)if(e.hasOwnProperty(s)&&f(e[s])&&f(e[s].values)){let i=e[s];n[s]=new U({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new B({attributes:n,indices:[],primitiveType:t.primitiveType})}function kt(t,e,n){let s=f(t.geometry.boundingSphere);e=ne(e,s),n=ne(n,s),f(n)&&!f(e)?t.geometry=n:!f(n)&&f(e)?t.geometry=e:(t.westHemisphereGeometry=e,t.eastHemisphereGeometry=n,t.geometry=void 0)}function Ft(t,e){let n=new t,s=new t,i=new t;return function(c,o,a,p,u,d,m,l){let h=t.fromArray(u,c*e,n),y=t.fromArray(u,o*e,s),v=t.fromArray(u,a*e,i);t.multiplyByScalar(h,p.x,h),t.multiplyByScalar(y,p.y,y),t.multiplyByScalar(v,p.z,v);let b=t.add(h,y,h);t.add(b,v,b),l&&t.normalize(b,b),t.pack(b,d,m*e)}}var ze=Ft(dt,4),It=Ft(r,3),ae=Ft(R,2),De=function(t,e,n,s,i,c,o){let a=i[t]*s.x,p=i[e]*s.y,u=i[n]*s.z;c[o]=a+p+u>N.EPSILON6?1:0},wt=new r,Gt=new r,Ct=new r,qe=new r;function Tt(t,e,n,s,i,c,o,a,p,u,d,m,l,h,y,v){if(!f(c)&&!f(o)&&!f(a)&&!f(p)&&!f(u)&&h===0)return;let b=r.fromArray(i,t*3,wt),S=r.fromArray(i,e*3,Gt),x=r.fromArray(i,n*3,Ct),w=Ht(s,b,S,x,qe);if(f(w)){if(f(c)&&It(t,e,n,w,c,m.normal.values,v,!0),f(u)){let A=r.fromArray(u,t*3,wt),E=r.fromArray(u,e*3,Gt),P=r.fromArray(u,n*3,Ct);r.multiplyByScalar(A,w.x,A),r.multiplyByScalar(E,w.y,E),r.multiplyByScalar(P,w.z,P);let O;!r.equals(A,r.ZERO)||!r.equals(E,r.ZERO)||!r.equals(P,r.ZERO)?(O=r.add(A,E,A),r.add(O,P,O),r.normalize(O,O)):(O=wt,O.x=0,O.y=0,O.z=0),r.pack(O,m.extrudeDirection.values,v*3)}if(f(d)&&De(t,e,n,w,d,m.applyOffset.values,v),f(o)&&It(t,e,n,w,o,m.tangent.values,v,!0),f(a)&&It(t,e,n,w,a,m.bitangent.values,v,!0),f(p)&&ae(t,e,n,w,p,m.st.values,v),h>0)for(let A=0;A<h;A++){let E=l[A];Ve(t,e,n,w,v,y[E],m[E])}}}function Ve(t,e,n,s,i,c,o){let a=c.componentsPerAttribute,p=c.values,u=o.values;switch(a){case 4:ze(t,e,n,s,p,u,i,!1);break;case 3:It(t,e,n,s,p,u,i,!1);break;case 2:ae(t,e,n,s,p,u,i,!1);break;default:u[i]=p[t]*s.x+p[e]*s.y+p[n]*s.z}}function Q(t,e,n,s,i,c){let o=t.position.values.length/3;if(i!==-1){let a=s[i],p=n[a];return p===-1?(n[a]=o,t.position.values.push(c.x,c.y,c.z),e.push(o),o):(e.push(p),p)}return t.position.values.push(c.x,c.y,c.z),e.push(o),o}var Re={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function ie(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.normal)?n.normal.values:void 0,c=f(n.bitangent)?n.bitangent.values:void 0,o=f(n.tangent)?n.tangent.values:void 0,a=f(n.st)?n.st.values:void 0,p=f(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=f(n.applyOffset)?n.applyOffset.values:void 0,d=e.indices,m=[];for(let O in n)n.hasOwnProperty(O)&&!Re[O]&&f(n[O])&&m.push(O);let l=m.length,h=lt(e),y=lt(e),v,b,S,x,w,A=[];A.length=s.length/3;let E=[];for(E.length=s.length/3,w=0;w<A.length;++w)A[w]=-1,E[w]=-1;let P=d.length;for(w=0;w<P;w+=3){let O=d[w],L=d[w+1],g=d[w+2],T=r.fromArray(s,O*3),C=r.fromArray(s,L*3),z=r.fromArray(s,g*3),q=Ne(T,C,z);if(f(q)&&q.positions.length>3){let V=q.positions,G=q.indices,M=G.length;for(let J=0;J<M;++J){let Y=G[J],_=V[Y];_.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=Q(v,b,S,d,Y<3?w+Y:-1,_),Tt(O,L,g,_,s,i,o,c,a,p,u,v,m,l,n,x)}}else f(q)&&(T=q.positions[0],C=q.positions[1],z=q.positions[2]),T.y<0?(v=y.attributes,b=y.indices,S=A):(v=h.attributes,b=h.indices,S=E),x=Q(v,b,S,d,w,T),Tt(O,L,g,T,s,i,o,c,a,p,u,v,m,l,n,x),x=Q(v,b,S,d,w+1,C),Tt(O,L,g,C,s,i,o,c,a,p,u,v,m,l,n,x),x=Q(v,b,S,d,w+2,z),Tt(O,L,g,z,s,i,o,c,a,p,u,v,m,l,n,x)}kt(t,y,h)}var ue=Et.fromPointNormal(r.ZERO,r.UNIT_Y),Ge=new r,Ce=new r;function ut(t,e,n,s,i,c,o){if(!f(o))return;let a=r.fromArray(s,t*3,wt);r.equalsEpsilon(a,n,N.EPSILON10)?c.applyOffset.values[i]=o[t]:c.applyOffset.values[i]=o[e]}function se(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=f(n.applyOffset)?n.applyOffset.values:void 0,c=e.indices,o=lt(e),a=lt(e),p,u=c.length,d=[];d.length=s.length/3;let m=[];for(m.length=s.length/3,p=0;p<d.length;++p)d[p]=-1,m[p]=-1;for(p=0;p<u;p+=2){let l=c[p],h=c[p+1],y=r.fromArray(s,l*3,wt),v=r.fromArray(s,h*3,Gt),b;Math.abs(y.y)<N.EPSILON6&&(y.y<0?y.y=-N.EPSILON6:y.y=N.EPSILON6),Math.abs(v.y)<N.EPSILON6&&(v.y<0?v.y=-N.EPSILON6:v.y=N.EPSILON6);let S=o.attributes,x=o.indices,w=m,A=a.attributes,E=a.indices,P=d,O=Lt.lineSegmentPlane(y,v,ue,Ct);if(f(O)){let L=r.multiplyByScalar(r.UNIT_Y,5*N.EPSILON9,Ge);y.y<0&&(r.negate(L,L),S=a.attributes,x=a.indices,w=d,A=o.attributes,E=o.indices,P=m);let g=r.add(O,L,Ce);b=Q(S,x,w,c,p,y),ut(l,h,y,s,b,S,i),b=Q(S,x,w,c,-1,g),ut(l,h,g,s,b,S,i),r.negate(L,L),r.add(O,L,g),b=Q(A,E,P,c,-1,g),ut(l,h,g,s,b,A,i),b=Q(A,E,P,c,p+1,v),ut(l,h,v,s,b,A,i)}else{let L,g,T;y.y<0?(L=a.attributes,g=a.indices,T=d):(L=o.attributes,g=o.indices,T=m),b=Q(L,g,T,c,p,y),ut(l,h,y,s,b,L,i),b=Q(L,g,T,c,p+1,v),ut(l,h,v,s,b,L,i)}}kt(t,a,o)}var oe=new R,Be=new R,le=new r,fe=new r,Bt=new r,ke=new r,Fe=new r,Me=new r,re=new dt;function ce(t){let e=t.attributes,n=e.position.values,s=e.prevPosition.values,i=e.nextPosition.values,c=n.length;for(let o=0;o<c;o+=3){let a=r.unpack(n,o,le);if(a.x>0)continue;let p=r.unpack(s,o,fe);(a.y<0&&p.y>0||a.y>0&&p.y<0)&&(o-3>0?(s[o]=n[o-3],s[o+1]=n[o-2],s[o+2]=n[o-1]):r.pack(a,s,o));let u=r.unpack(i,o,Bt);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(o+3<c?(i[o]=n[o+3],i[o+1]=n[o+4],i[o+2]=n[o+5]):r.pack(a,i,o))}}var _e=5*N.EPSILON9,At=N.EPSILON6;function Ue(t){let e=t.geometry,n=e.attributes,s=n.position.values,i=n.prevPosition.values,c=n.nextPosition.values,o=n.expandAndWidth.values,a=f(n.st)?n.st.values:void 0,p=f(n.color)?n.color.values:void 0,u=lt(e),d=lt(e),m,l,h,y=!1,v=s.length/3;for(m=0;m<v;m+=4){let b=m,S=m+2,x=r.fromArray(s,b*3,le),w=r.fromArray(s,S*3,fe);if(Math.abs(x.y)<At)for(x.y=At*(w.y<0?-1:1),s[m*3+1]=x.y,s[(m+1)*3+1]=x.y,l=b*3;l<b*3+4*3;l+=3)i[l]=s[m*3],i[l+1]=s[m*3+1],i[l+2]=s[m*3+2];if(Math.abs(w.y)<At)for(w.y=At*(x.y<0?-1:1),s[(m+2)*3+1]=w.y,s[(m+3)*3+1]=w.y,l=b*3;l<b*3+4*3;l+=3)c[l]=s[(m+2)*3],c[l+1]=s[(m+2)*3+1],c[l+2]=s[(m+2)*3+2];let A=u.attributes,E=u.indices,P=d.attributes,O=d.indices,L=Lt.lineSegmentPlane(x,w,ue,ke);if(f(L)){y=!0;let g=r.multiplyByScalar(r.UNIT_Y,_e,Fe);x.y<0&&(r.negate(g,g),A=d.attributes,E=d.indices,P=u.attributes,O=u.indices);let T=r.add(L,g,Me);A.position.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.position.values.push(T.x,T.y,T.z),A.position.values.push(T.x,T.y,T.z),A.prevPosition.values.push(i[b*3],i[b*3+1],i[b*3+2]),A.prevPosition.values.push(i[b*3+3],i[b*3+4],i[b*3+5]),A.prevPosition.values.push(x.x,x.y,x.z,x.x,x.y,x.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),A.nextPosition.values.push(T.x,T.y,T.z),r.negate(g,g),r.add(L,g,T),P.position.values.push(T.x,T.y,T.z),P.position.values.push(T.x,T.y,T.z),P.position.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.prevPosition.values.push(T.x,T.y,T.z),P.nextPosition.values.push(w.x,w.y,w.z,w.x,w.y,w.z),P.nextPosition.values.push(c[S*3],c[S*3+1],c[S*3+2]),P.nextPosition.values.push(c[S*3+3],c[S*3+4],c[S*3+5]);let C=R.fromArray(o,b*2,oe),z=Math.abs(C.y);A.expandAndWidth.values.push(-1,z,1,z),A.expandAndWidth.values.push(-1,-z,1,-z),P.expandAndWidth.values.push(-1,z,1,z),P.expandAndWidth.values.push(-1,-z,1,-z);let q=r.magnitudeSquared(r.subtract(L,x,Bt));if(q/=r.magnitudeSquared(r.subtract(w,x,Bt)),f(p)){let V=dt.fromArray(p,b*4,re),G=dt.fromArray(p,S*4,re),M=N.lerp(V.x,G.x,q),J=N.lerp(V.y,G.y,q),Y=N.lerp(V.z,G.z,q),_=N.lerp(V.w,G.w,q);for(l=b*4;l<b*4+2*4;++l)A.color.values.push(p[l]);for(A.color.values.push(M,J,Y,_),A.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),P.color.values.push(M,J,Y,_),l=S*4;l<S*4+2*4;++l)P.color.values.push(p[l])}if(f(a)){let V=R.fromArray(a,b*2,oe),G=R.fromArray(a,(m+3)*2,Be),M=N.lerp(V.x,G.x,q);for(l=b*2;l<b*2+2*2;++l)A.st.values.push(a[l]);for(A.st.values.push(M,V.y),A.st.values.push(M,G.y),P.st.values.push(M,V.y),P.st.values.push(M,G.y),l=S*2;l<S*2+2*2;++l)P.st.values.push(a[l])}h=A.position.values.length/3-4,E.push(h,h+2,h+1),E.push(h+1,h+2,h+3),h=P.position.values.length/3-4,O.push(h,h+2,h+1),O.push(h+1,h+2,h+3)}else{let g,T;for(x.y<0?(g=d.attributes,T=d.indices):(g=u.attributes,T=u.indices),g.position.values.push(x.x,x.y,x.z),g.position.values.push(x.x,x.y,x.z),g.position.values.push(w.x,w.y,w.z),g.position.values.push(w.x,w.y,w.z),l=m*3;l<m*3+4*3;++l)g.prevPosition.values.push(i[l]),g.nextPosition.values.push(c[l]);for(l=m*2;l<m*2+4*2;++l)g.expandAndWidth.values.push(o[l]),f(a)&&g.st.values.push(a[l]);if(f(p))for(l=m*4;l<m*4+4*4;++l)g.color.values.push(p[l]);h=g.position.values.length/3-4,T.push(h,h+2,h+1),T.push(h+1,h+2,h+3)}}y&&(ce(d),ce(u)),kt(t,d,u)}F.splitLongitude=function(t){if(!f(t))throw new I("instance is required.");let e=t.geometry,n=e.boundingSphere;if(f(n)&&(n.center.x-n.radius>0||rt.intersectPlane(n,Et.ORIGIN_ZX_PLANE)!==Ut.INTERSECTING))return t;if(e.geometryType!==mt.NONE)switch(e.geometryType){case mt.POLYLINES:Ue(t);break;case mt.TRIANGLES:ie(t);break;case mt.LINES:se(t);break}else Le(e),e.primitiveType===D.TRIANGLES?ie(t):e.primitiveType===D.LINES&&se(t);return t};var gn=F;export{gn as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UKQRKTK2.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UKQRKTK2.js new file mode 100644 index 000000000..5e283a7b4 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-UKQRKTK2.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as Z}from"./chunk-T5AUOWE7.js";import{a as o,b as ft,e as b}from"./chunk-AODSXSC5.js";import{a as R}from"./chunk-IISQCXJ5.js";import{a as H}from"./chunk-WHQYJFDH.js";import{a as w,b as et}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";var nt={};nt.computeDiscriminant=function(t,e,r){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");return e*e-4*t*r};function mt(t,e,r){let n=t+e;return R.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}nt.computeRealRoots=function(t,e,r){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");let n;if(t===0)return e===0?[]:[-r/e];if(e===0){if(r===0)return[0,0];let a=Math.abs(r),f=Math.abs(t);if(a<f&&a/f<R.EPSILON14)return[0,0];if(a>f&&f/a<R.EPSILON14)return[];if(n=-r/t,n<0)return[];let l=Math.sqrt(n);return[-l,l]}else if(r===0)return n=-e/t,n<0?[n,0]:[0,n];let i=e*e,c=4*t*r,s=mt(i,-c,R.EPSILON14);if(s<0)return[];let u=-.5*mt(e,R.sign(e)*Math.sqrt(s),R.EPSILON14);return e>0?[u/t,r/u]:[r/u,u/t]};var T=nt;var ot={};ot.computeDiscriminant=function(t,e,r,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let i=t*t,c=e*e,s=r*r,u=n*n;return 18*t*e*r*n+c*s-27*i*u-4*(t*s*r+c*e*n)};function rt(t,e,r,n){let i=t,c=e/3,s=r/3,u=n,a=i*s,f=c*u,l=c*c,d=s*s,p=i*s-l,q=i*u-c*s,m=c*u-d,h=4*p*m-q*q,E,D;if(h<0){let X,k,G;l*f>=a*d?(X=i,k=p,G=-2*c*p+i*q):(X=u,k=m,G=-u*q+2*s*m);let at=-(G<0?-1:1)*Math.abs(X)*Math.sqrt(-h);D=-G+at;let $=D/2,j=$<0?-Math.pow(-$,1/3):Math.pow($,1/3),tt=D===at?-j:-k/j;return E=k<=0?j+tt:-G/(j*j+tt*tt+k),l*f>=a*d?[(E-c)/i]:[-u/(E+s)]}let W=p,V=-2*c*p+i*q,L=m,B=-u*q+2*s*m,I=Math.sqrt(h),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(i*I,-V)/3);E=2*Math.sqrt(-W);let y=Math.cos(P);D=E*y;let S=E*(-y/2-C*Math.sin(P)),M=D+S>2*c?D-c:S-c,N=i,x=M/N;P=Math.abs(Math.atan2(u*I,-B)/3),E=2*Math.sqrt(-L),y=Math.cos(P),D=E*y,S=E*(-y/2-C*Math.sin(P));let _=-u,A=D+S<2*s?D+s:S+s,v=_/A,yt=N*A,ut=-M*A-N*_,bt=M*_,U=(s*ut-c*bt)/(-c*ut+s*yt);return x<=U?x<=v?U<=v?[x,U,v]:[x,v,U]:[v,x,U]:x<=v?[U,x,v]:U<=v?[U,v,x]:[v,U,x]}ot.computeRealRoots=function(t,e,r,n){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");let i,c;if(t===0)return T.computeRealRoots(e,r,n);if(e===0){if(r===0){if(n===0)return[0,0,0];c=-n/t;let s=c<0?-Math.pow(-c,1/3):Math.pow(c,1/3);return[s,s,s]}else if(n===0)return i=T.computeRealRoots(t,0,r),i.Length===0?[0]:[i[0],0,i[1]];return rt(t,0,r,n)}else{if(r===0)return n===0?(c=-e/t,c<0?[c,0,0]:[0,0,c]):rt(t,e,0,n);if(n===0)return i=T.computeRealRoots(t,e,r),i.length===0?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]}return rt(t,e,r,n)};var F=ot;var it={};it.computeDiscriminant=function(t,e,r,n,i){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof i!="number")throw new w("e is a required number.");let c=t*t,s=c*t,u=e*e,a=u*e,f=r*r,l=f*r,d=n*n,p=d*n,q=i*i,m=q*i;return u*f*d-4*a*p-4*t*l*d+18*t*e*r*p-27*c*d*d+256*s*m+i*(18*a*r*n-4*u*l+16*t*f*f-80*t*e*f*n-6*t*u*d+144*c*r*d)+q*(144*t*u*r-27*u*u-128*c*f-192*c*e*n)};function z(t,e,r,n){let i=t*t,c=e-3*i/8,s=r-e*t/2+i*t/8,u=n-r*t/4+e*i/16-3*i*i/256,a=F.computeRealRoots(1,2*c,c*c-4*u,-s*s);if(a.length>0){let f=-t/4,l=a[a.length-1];if(Math.abs(l)<R.EPSILON14){let d=T.computeRealRoots(1,c,u);if(d.length===2){let p=d[0],q=d[1],m;if(p>=0&&q>=0){let h=Math.sqrt(p),E=Math.sqrt(q);return[f-E,f-h,f+h,f+E]}else{if(p>=0&&q<0)return m=Math.sqrt(p),[f-m,f+m];if(p<0&&q>=0)return m=Math.sqrt(q),[f-m,f+m]}}return[]}else if(l>0){let d=Math.sqrt(l),p=(c+l-s/d)/2,q=(c+l+s/d)/2,m=T.computeRealRoots(1,d,p),h=T.computeRealRoots(1,-d,q);return m.length!==0?(m[0]+=f,m[1]+=f,h.length!==0?(h[0]+=f,h[1]+=f,m[1]<=h[0]?[m[0],m[1],h[0],h[1]]:h[1]<=m[0]?[h[0],h[1],m[0],m[1]]:m[0]>=h[0]&&m[1]<=h[1]?[h[0],m[0],m[1],h[1]]:h[0]>=m[0]&&h[1]<=m[1]?[m[0],h[0],h[1],m[1]]:m[0]>h[0]&&m[0]<h[1]?[h[0],m[0],h[1],m[1]]:[m[0],h[0],m[1],h[1]]):m):h.length!==0?(h[0]+=f,h[1]+=f,h):[]}}return[]}function Y(t,e,r,n){let i=r*r,c=e*e,s=t*t,u=-2*e,a=r*t+c-4*n,f=s*n-r*e*t+i,l=F.computeRealRoots(1,u,a,f);if(l.length>0){let d=l[0],p=e-d,q=p*p,m=t/2,h=p/2,E=q-4*n,D=q+4*Math.abs(n),W=s-4*d,V=s+4*Math.abs(d),L,B;if(d<0||E*V<W*D){let N=Math.sqrt(W);L=N/2,B=N===0?0:(t*h-r)/N}else{let N=Math.sqrt(E);L=N===0?0:(t*h-r)/N,B=N/2}let I,C;m===0&&L===0?(I=0,C=0):R.sign(m)===R.sign(L)?(I=m+L,C=d/I):(C=m-L,I=d/C);let P,y;h===0&&B===0?(P=0,y=0):R.sign(h)===R.sign(B)?(P=h+B,y=n/P):(y=h-B,P=n/y);let S=T.computeRealRoots(1,I,P),M=T.computeRealRoots(1,C,y);if(S.length!==0)return M.length!==0?S[1]<=M[0]?[S[0],S[1],M[0],M[1]]:M[1]<=S[0]?[M[0],M[1],S[0],S[1]]:S[0]>=M[0]&&S[1]<=M[1]?[M[0],S[0],S[1],M[1]]:M[0]>=S[0]&&M[1]<=S[1]?[S[0],M[0],M[1],S[1]]:S[0]>M[0]&&S[0]<M[1]?[M[0],S[0],M[1],S[1]]:[S[0],M[0],S[1],M[1]]:S;if(M.length!==0)return M}return[]}it.computeRealRoots=function(t,e,r,n,i){if(typeof t!="number")throw new w("a is a required number.");if(typeof e!="number")throw new w("b is a required number.");if(typeof r!="number")throw new w("c is a required number.");if(typeof n!="number")throw new w("d is a required number.");if(typeof i!="number")throw new w("e is a required number.");if(Math.abs(t)<R.EPSILON15)return F.computeRealRoots(e,r,n,i);let c=e/t,s=r/t,u=n/t,a=i/t,f=c<0?1:0;switch(f+=s<0?f+1:f,f+=u<0?f+1:f,f+=a<0?f+1:f,f){case 0:return z(c,s,u,a);case 1:return Y(c,s,u,a);case 2:return Y(c,s,u,a);case 3:return z(c,s,u,a);case 4:return z(c,s,u,a);case 5:return Y(c,s,u,a);case 6:return z(c,s,u,a);case 7:return z(c,s,u,a);case 8:return Y(c,s,u,a);case 9:return z(c,s,u,a);case 10:return z(c,s,u,a);case 11:return Y(c,s,u,a);case 12:return z(c,s,u,a);case 13:return z(c,s,u,a);case 14:return z(c,s,u,a);case 15:return z(c,s,u,a);default:return}};var dt=it;function J(t,e){e=o.clone(H(e,o.ZERO)),o.equals(e,o.ZERO)||o.normalize(e,e),this.origin=o.clone(H(t,o.ZERO)),this.direction=e}J.clone=function(t,e){if(g(t))return g(e)?(e.origin=o.clone(t.origin),e.direction=o.clone(t.direction),e):new J(t.origin,t.direction)};J.getPoint=function(t,e,r){return et.typeOf.object("ray",t),et.typeOf.number("t",e),g(r)||(r=new o),r=o.multiplyByScalar(t.direction,e,r),o.add(t.origin,r,r)};var st=J;var O={};O.rayPlane=function(t,e,r){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("plane is required.");g(r)||(r=new o);let n=t.origin,i=t.direction,c=e.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON15)return;let u=(-e.distance-o.dot(c,n))/s;if(!(u<0))return r=o.multiplyByScalar(i,u,r),o.add(n,r,r)};var Ot=new o,Pt=new o,Mt=new o,lt=new o,ht=new o;O.rayTriangleParametric=function(t,e,r,n,i){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("p0 is required.");if(!g(r))throw new w("p1 is required.");if(!g(n))throw new w("p2 is required.");i=H(i,!1);let c=t.origin,s=t.direction,u=o.subtract(r,e,Ot),a=o.subtract(n,e,Pt),f=o.cross(s,a,Mt),l=o.dot(u,f),d,p,q,m,h;if(i){if(l<R.EPSILON6||(d=o.subtract(c,e,lt),q=o.dot(d,f),q<0||q>l)||(p=o.cross(d,u,ht),m=o.dot(s,p),m<0||q+m>l))return;h=o.dot(a,p)/l}else{if(Math.abs(l)<R.EPSILON6)return;let E=1/l;if(d=o.subtract(c,e,lt),q=o.dot(d,f)*E,q<0||q>1||(p=o.cross(d,u,ht),m=o.dot(s,p)*E,m<0||q+m>1))return;h=o.dot(a,p)*E}return h};O.rayTriangle=function(t,e,r,n,i,c){let s=O.rayTriangleParametric(t,e,r,n,i);if(!(!g(s)||s<0))return g(c)||(c=new o),o.multiplyByScalar(t.direction,s,c),o.add(t.origin,c,c)};var Et=new st;O.lineSegmentTriangle=function(t,e,r,n,i,c,s){if(!g(t))throw new w("v0 is required.");if(!g(e))throw new w("v1 is required.");if(!g(r))throw new w("p0 is required.");if(!g(n))throw new w("p1 is required.");if(!g(i))throw new w("p2 is required.");let u=Et;o.clone(t,u.origin),o.subtract(e,t,u.direction),o.normalize(u.direction,u.direction);let a=O.rayTriangleParametric(u,r,n,i,c);if(!(!g(a)||a<0||a>o.distance(t,e)))return g(s)||(s=new o),o.multiplyByScalar(u.direction,a,s),o.add(u.origin,s,s)};function Ct(t,e,r,n){let i=e*e-4*t*r;if(i<0)return;if(i>0){let s=1/(2*t),u=Math.sqrt(i),a=(-e+u)*s,f=(-e-u)*s;return a<f?(n.root0=a,n.root1=f):(n.root0=f,n.root1=a),n}let c=-e/(2*t);if(c!==0)return n.root0=n.root1=c,n}var Nt={root0:0,root1:0};function Rt(t,e,r){g(r)||(r=new Z);let n=t.origin,i=t.direction,c=e.center,s=e.radius*e.radius,u=o.subtract(n,c,Mt),a=o.dot(i,i),f=2*o.dot(i,u),l=o.magnitudeSquared(u)-s,d=Ct(a,f,l,Nt);if(g(d))return r.start=d.root0,r.stop=d.root1,r}O.raySphere=function(t,e,r){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("sphere is required.");if(r=Rt(t,e,r),!(!g(r)||r.stop<0))return r.start=Math.max(r.start,0),r};var Lt=new st;O.lineSegmentSphere=function(t,e,r,n){if(!g(t))throw new w("p0 is required.");if(!g(e))throw new w("p1 is required.");if(!g(r))throw new w("sphere is required.");let i=Lt;o.clone(t,i.origin);let c=o.subtract(e,t,i.direction),s=o.magnitude(c);if(o.normalize(c,c),n=Rt(i,r,n),!(!g(n)||n.stop<0||n.start>s))return n.start=Math.max(n.start,0),n.stop=Math.min(n.stop,s),n};var It=new o,Dt=new o;O.rayEllipsoid=function(t,e){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("ellipsoid is required.");let r=e.oneOverRadii,n=o.multiplyComponents(r,t.origin,It),i=o.multiplyComponents(r,t.direction,Dt),c=o.magnitudeSquared(n),s=o.dot(n,i),u,a,f,l,d;if(c>1){if(s>=0)return;let p=s*s;if(u=c-1,a=o.magnitudeSquared(i),f=a*u,p<f)return;if(p>f){l=s*s-f,d=-s+Math.sqrt(l);let m=d/a,h=u/d;return m<h?new Z(m,h):{start:h,stop:m}}let q=Math.sqrt(u/a);return new Z(q,q)}else if(c<1)return u=c-1,a=o.magnitudeSquared(i),f=a*u,l=s*s-f,d=-s+Math.sqrt(l),new Z(0,d/a);if(s<0)return a=o.magnitudeSquared(i),new Z(0,-s/a)};function Q(t,e,r){let n=t+e;return R.sign(t)!==R.sign(e)&&Math.abs(n/Math.max(Math.abs(t),Math.abs(e)))<r?0:n}O.quadraticVectorExpression=function(t,e,r,n,i){let c=n*n,s=i*i,u=(t[b.COLUMN1ROW1]-t[b.COLUMN2ROW2])*s,a=i*(n*Q(t[b.COLUMN1ROW0],t[b.COLUMN0ROW1],R.EPSILON15)+e.y),f=t[b.COLUMN0ROW0]*c+t[b.COLUMN2ROW2]*s+n*e.x+r,l=s*Q(t[b.COLUMN2ROW1],t[b.COLUMN1ROW2],R.EPSILON15),d=i*(n*Q(t[b.COLUMN2ROW0],t[b.COLUMN0ROW2])+e.z),p,q=[];if(d===0&&l===0){if(p=T.computeRealRoots(u,a,f),p.length===0)return q;let P=p[0],y=Math.sqrt(Math.max(1-P*P,0));if(q.push(new o(n,i*P,i*-y)),q.push(new o(n,i*P,i*y)),p.length===2){let S=p[1],M=Math.sqrt(Math.max(1-S*S,0));q.push(new o(n,i*S,i*-M)),q.push(new o(n,i*S,i*M))}return q}let m=d*d,h=l*l,E=u*u,D=d*l,W=E+h,V=2*(a*u+D),L=2*f*u+a*a-h+m,B=2*(f*a-D),I=f*f-m;if(W===0&&V===0&&L===0&&B===0)return q;p=dt.computeRealRoots(W,V,L,B,I);let C=p.length;if(C===0)return q;for(let P=0;P<C;++P){let y=p[P],S=y*y,M=Math.max(1-S,0),N=Math.sqrt(M),x;R.sign(u)===R.sign(f)?x=Q(u*S+f,a*y,R.EPSILON12):R.sign(f)===R.sign(a*y)?x=Q(u*S,a*y+f,R.EPSILON12):x=Q(u*S+a*y,f,R.EPSILON12);let _=Q(l*y,d,R.EPSILON15),A=x*_;A<0?q.push(new o(n,i*y,i*N)):A>0?q.push(new o(n,i*y,i*-N)):N!==0?(q.push(new o(n,i*y,i*-N)),q.push(new o(n,i*y,i*N)),++P):q.push(new o(n,i*y,i*N))}return q};var ct=new o,wt=new o,qt=new o,K=new o,Bt=new o,xt=new b,Tt=new b,zt=new b,Wt=new b,Vt=new b,gt=new b,pt=new b,St=new o,vt=new o,Ut=new ft;O.grazingAltitudeLocation=function(t,e){if(!g(t))throw new w("ray is required.");if(!g(e))throw new w("ellipsoid is required.");let r=t.origin,n=t.direction;if(!o.equals(r,o.ZERO)){let I=e.geodeticSurfaceNormal(r,ct);if(o.dot(n,I)>=0)return r}let i=g(this.rayEllipsoid(t,e)),c=e.transformPositionToScaledSpace(n,ct),s=o.normalize(c,c),u=o.mostOrthogonalAxis(c,K),a=o.normalize(o.cross(u,s,wt),wt),f=o.normalize(o.cross(s,a,qt),qt),l=xt;l[0]=s.x,l[1]=s.y,l[2]=s.z,l[3]=a.x,l[4]=a.y,l[5]=a.z,l[6]=f.x,l[7]=f.y,l[8]=f.z;let d=b.transpose(l,Tt),p=b.fromScale(e.radii,zt),q=b.fromScale(e.oneOverRadii,Wt),m=Vt;m[0]=0,m[1]=-n.z,m[2]=n.y,m[3]=n.z,m[4]=0,m[5]=-n.x,m[6]=-n.y,m[7]=n.x,m[8]=0;let h=b.multiply(b.multiply(d,q,gt),m,gt),E=b.multiply(b.multiply(h,p,pt),l,pt),D=b.multiplyByVector(h,r,Bt),W=O.quadraticVectorExpression(E,o.negate(D,ct),0,0,1),V,L,B=W.length;if(B>0){let I=o.clone(o.ZERO,vt),C=Number.NEGATIVE_INFINITY;for(let y=0;y<B;++y){V=b.multiplyByVector(p,b.multiplyByVector(l,W[y],St),St);let S=o.normalize(o.subtract(V,r,K),K),M=o.dot(S,n);M>C&&(C=M,I=o.clone(V,I))}let P=e.cartesianToCartographic(I,Ut);return C=R.clamp(C,0,1),L=o.magnitude(o.subtract(I,r,K))*Math.sqrt(1-C*C),L=i?-L:L,P.height=L,e.cartographicToCartesian(P,new o)}};var Qt=new o;O.lineSegmentPlane=function(t,e,r,n){if(!g(t))throw new w("endPoint0 is required.");if(!g(e))throw new w("endPoint1 is required.");if(!g(r))throw new w("plane is required.");g(n)||(n=new o);let i=o.subtract(e,t,Qt),c=r.normal,s=o.dot(c,i);if(Math.abs(s)<R.EPSILON6)return;let u=o.dot(c,t),a=-(r.distance+u)/s;if(!(a<0||a>1))return o.multiplyByScalar(i,a,n),o.add(t,n,n),n};O.trianglePlaneIntersection=function(t,e,r,n){if(!g(t)||!g(e)||!g(r)||!g(n))throw new w("p0, p1, p2, and plane are required.");let i=n.normal,c=n.distance,s=o.dot(i,t)+c<0,u=o.dot(i,e)+c<0,a=o.dot(i,r)+c<0,f=0;f+=s?1:0,f+=u?1:0,f+=a?1:0;let l,d;if((f===1||f===2)&&(l=new o,d=new o),f===1){if(s)return O.lineSegmentPlane(t,e,n,l),O.lineSegmentPlane(t,r,n,d),{positions:[t,e,r,l,d],indices:[0,3,4,1,2,4,1,4,3]};if(u)return O.lineSegmentPlane(e,r,n,l),O.lineSegmentPlane(e,t,n,d),{positions:[t,e,r,l,d],indices:[1,3,4,2,0,4,2,4,3]};if(a)return O.lineSegmentPlane(r,t,n,l),O.lineSegmentPlane(r,e,n,d),{positions:[t,e,r,l,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(f===2)if(s)if(u){if(!a)return O.lineSegmentPlane(t,r,n,l),O.lineSegmentPlane(e,r,n,d),{positions:[t,e,r,l,d],indices:[0,1,4,0,4,3,2,3,4]}}else return O.lineSegmentPlane(r,e,n,l),O.lineSegmentPlane(t,e,n,d),{positions:[t,e,r,l,d],indices:[2,0,4,2,4,3,1,3,4]};else return O.lineSegmentPlane(e,t,n,l),O.lineSegmentPlane(r,t,n,d),{positions:[t,e,r,l,d],indices:[1,2,4,1,4,3,0,3,4]}};var we=O;export{st as a,we as b}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-WHQYJFDH.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-WHQYJFDH.js new file mode 100644 index 000000000..4a478dfa1 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-WHQYJFDH.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +function u(e,n){return e??n}u.EMPTY_OBJECT=Object.freeze({});var t=u;export{t as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XDFUUQMZ.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XDFUUQMZ.js new file mode 100644 index 000000000..80f0903c8 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XDFUUQMZ.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as p,b as P,d as q}from"./chunk-AODSXSC5.js";import{a}from"./chunk-IISQCXJ5.js";import{a as T}from"./chunk-WHQYJFDH.js";import{a as I,b as g}from"./chunk-OYWUGDKS.js";import{e as l}from"./chunk-DRYFJEFT.js";function y(n,i,o){if(n===0)return i*o;let t=n*n,e=t*t,c=e*t,r=c*t,h=r*t,s=h*t,d=o,u=Math.sin(2*d),f=Math.sin(4*d),M=Math.sin(6*d),_=Math.sin(8*d),E=Math.sin(10*d),S=Math.sin(12*d);return i*((1-t/4-3*e/64-5*c/256-175*r/16384-441*h/65536-4851*s/1048576)*d-(3*t/8+3*e/32+45*c/1024+105*r/4096+2205*h/131072+6237*s/524288)*u+(15*e/256+45*c/1024+525*r/16384+1575*h/65536+155925*s/8388608)*f-(35*c/3072+175*r/12288+3675*h/262144+13475*s/1048576)*M+(315*r/131072+2205*h/524288+43659*s/8388608)*_-(693*h/1310720+6237*s/5242880)*E+1001*s/8388608*S)}function z(n,i,o){let t=n/o;if(i===0)return t;let e=t*t,c=e*t,r=c*t,h=i,s=h*h,d=s*s,u=d*s,f=u*s,M=f*s,_=M*s,E=Math.sin(2*t),S=Math.cos(2*t),W=Math.sin(4*t),V=Math.cos(4*t),C=Math.sin(6*t),N=Math.cos(6*t),R=Math.sin(8*t),b=Math.cos(8*t),x=Math.sin(10*t),U=Math.cos(10*t),H=Math.sin(12*t);return t+t*s/4+7*t*d/64+15*t*u/256+579*t*f/16384+1515*t*M/65536+16837*t*_/1048576+(3*t*d/16+45*t*u/256-t*(32*e-561)*f/4096-t*(232*e-1677)*M/16384+t*(399985-90560*e+512*r)*_/5242880)*S+(21*t*u/256+483*t*f/4096-t*(224*e-1969)*M/16384-t*(33152*e-112599)*_/1048576)*V+(151*t*f/4096+4681*t*M/65536+1479*t*_/16384-453*c*_/32768)*N+(1097*t*M/65536+42783*t*_/1048576)*b+8011*t*_/1048576*U+(3*s/8+3*d/16+213*u/2048-3*e*u/64+255*f/4096-33*e*f/512+20861*M/524288-33*e*M/512+r*M/1024+28273*_/1048576-471*e*_/8192+9*r*_/4096)*E+(21*d/256+21*u/256+533*f/8192-21*e*f/512+197*M/4096-315*e*M/4096+584039*_/16777216-12517*e*_/131072+7*r*_/2048)*W+(151*u/6144+151*f/4096+5019*M/131072-453*e*M/16384+26965*_/786432-8607*e*_/131072)*C+(1097*f/131072+1097*M/65536+225797*_/10485760-1097*e*_/65536)*R+(8011*M/2621440+8011*_/1048576)*x+293393*_/251658240*H}function O(n,i){if(n===0)return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)));let o=n*Math.sin(i);return Math.log(Math.tan(.5*(a.PI_OVER_TWO+i)))-n/2*Math.log((1+o)/(1-o))}function k(n,i,o,t,e){let c=O(n._ellipticity,o),r=O(n._ellipticity,e);return Math.atan2(a.negativePiToPi(t-i),r-c)}function A(n,i,o,t,e,c,r){let h=n._heading,s=c-t,d=0;if(a.equalsEpsilon(Math.abs(h),a.PI_OVER_TWO,a.EPSILON8))if(i===o)d=i*Math.cos(e)*a.negativePiToPi(s);else{let u=Math.sin(e);d=i*Math.cos(e)*a.negativePiToPi(s)/Math.sqrt(1-n._ellipticitySquared*u*u)}else{let u=y(n._ellipticity,i,e);d=(y(n._ellipticity,i,r)-u)/Math.cos(h)}return Math.abs(d)}var B=new p,w=new p;function D(n,i,o,t){let e=p.normalize(t.cartographicToCartesian(i,w),B),c=p.normalize(t.cartographicToCartesian(o,w),w);g.typeOf.number.greaterThanOrEquals("value",Math.abs(Math.abs(p.angleBetween(e,c))-Math.PI),.0125);let r=t.maximumRadius,h=t.minimumRadius,s=r*r,d=h*h;n._ellipticitySquared=(s-d)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=P.clone(i,n._start),n._start.height=0,n._end=P.clone(o,n._end),n._end.height=0,n._heading=k(n,i.longitude,i.latitude,o.longitude,o.latitude),n._distance=A(n,t.maximumRadius,t.minimumRadius,i.longitude,i.latitude,o.longitude,o.latitude)}function v(n,i,o,t,e,c){if(o===0)return P.clone(n,c);let r=e*e,h,s,d;if(Math.abs(a.PI_OVER_TWO-Math.abs(i))>a.EPSILON8){let u=y(e,t,n.latitude),f=o*Math.cos(i),M=u+f;if(s=z(M,e,t),Math.abs(i)<a.EPSILON10)h=a.negativePiToPi(n.longitude);else{let _=O(e,n.latitude),E=O(e,s);d=Math.tan(i)*(E-_),h=a.negativePiToPi(n.longitude+d)}}else{s=n.latitude;let u;if(e===0)u=t*Math.cos(n.latitude);else{let f=Math.sin(n.latitude);u=t*Math.cos(n.latitude)/Math.sqrt(1-r*f*f)}d=o/u,i>0?h=a.negativePiToPi(n.longitude+d):h=a.negativePiToPi(n.longitude-d)}return l(c)?(c.longitude=h,c.latitude=s,c.height=0,c):new P(h,s,0)}function m(n,i,o){let t=T(o,q.default);this._ellipsoid=t,this._start=new P,this._end=new P,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(n)&&l(i)&&D(this,n,i,t)}Object.defineProperties(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return g.defined("distance",this._distance),this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return g.defined("distance",this._distance),this._heading}}});m.fromStartHeadingDistance=function(n,i,o,t,e){g.defined("start",n),g.defined("heading",i),g.defined("distance",o),g.typeOf.number.greaterThan("distance",o,0);let c=T(t,q.default),r=c.maximumRadius,h=c.minimumRadius,s=r*r,d=h*h,u=Math.sqrt((s-d)/s);i=a.negativePiToPi(i);let f=v(n,i,o,c.maximumRadius,u);return!l(e)||l(t)&&!t.equals(e.ellipsoid)?new m(n,f,c):(e.setEndPoints(n,f),e)};m.prototype.setEndPoints=function(n,i){g.defined("start",n),g.defined("end",i),D(this,n,i,this._ellipsoid)};m.prototype.interpolateUsingFraction=function(n,i){return this.interpolateUsingSurfaceDistance(n*this._distance,i)};m.prototype.interpolateUsingSurfaceDistance=function(n,i){if(g.typeOf.number("distance",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");return v(this._start,this._heading,n,this._ellipsoid.maximumRadius,this._ellipticity,i)};m.prototype.findIntersectionWithLongitude=function(n,i){if(g.typeOf.number("intersectionLongitude",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=Math.abs(t),c=this._start;if(n=a.negativePiToPi(n),a.equalsEpsilon(Math.abs(n),Math.PI,a.EPSILON14)&&(n=a.sign(c.longitude)*Math.PI),l(i)||(i=new P),Math.abs(a.PI_OVER_TWO-e)<=a.EPSILON8)return i.longitude=n,i.latitude=c.latitude,i.height=0,i;if(a.equalsEpsilon(Math.abs(a.PI_OVER_TWO-e),a.PI_OVER_TWO,a.EPSILON8))return a.equalsEpsilon(n,c.longitude,a.EPSILON12)?void 0:(i.longitude=n,i.latitude=a.PI_OVER_TWO*a.sign(a.PI_OVER_TWO-t),i.height=0,i);let r=c.latitude,h=o*Math.sin(r),s=Math.tan(.5*(a.PI_OVER_TWO+r))*Math.exp((n-c.longitude)/Math.tan(t)),d=(1+h)/(1-h),u=c.latitude,f;do{f=u;let M=o*Math.sin(f),_=(1+M)/(1-M);u=2*Math.atan(s*Math.pow(_/d,o/2))-a.PI_OVER_TWO}while(!a.equalsEpsilon(u,f,a.EPSILON12));return i.longitude=n,i.latitude=u,i.height=0,i};m.prototype.findIntersectionWithLatitude=function(n,i){if(g.typeOf.number("intersectionLatitude",n),!l(this._distance)||this._distance===0)throw new I("EllipsoidRhumbLine must have distinct start and end set.");let o=this._ellipticity,t=this._heading,e=this._start;if(a.equalsEpsilon(Math.abs(t),a.PI_OVER_TWO,a.EPSILON8))return;let c=O(o,e.latitude),r=O(o,n),h=Math.tan(t)*(r-c),s=a.negativePiToPi(e.longitude+h);return l(i)?(i.longitude=s,i.latitude=n,i.height=0,i):new P(s,n,0)};var $=m;export{$ as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XQG25LEF.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XQG25LEF.js new file mode 100644 index 000000000..b1aad53ea --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-XQG25LEF.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as wt}from"./chunk-6UMNSGJM.js";import{a as k}from"./chunk-QNEABTP2.js";import{a as kt}from"./chunk-T53UE6JF.js";import{a as Ct}from"./chunk-RYO6NY7F.js";import{b as dt,c as _t,d as R}from"./chunk-2HSPJH3C.js";import{d as ht}from"./chunk-T5AUOWE7.js";import{a as N}from"./chunk-6QVIJ7JA.js";import{a as s,c as pt,d as ot}from"./chunk-AODSXSC5.js";import{a as M}from"./chunk-IISQCXJ5.js";import{a as p}from"./chunk-WHQYJFDH.js";import{a as z}from"./chunk-OYWUGDKS.js";import{e as E}from"./chunk-DRYFJEFT.js";var yt=new s,vt=new s,Et=new s,Mt=new s,Nt=new s,Rt=new s(1,1,1),Pt=Math.cos,At=Math.sin;function O(n){n=p(n,p.EMPTY_OBJECT);let m=p(n.radii,Rt),i=p(n.innerRadii,m),P=p(n.minimumClock,0),T=p(n.maximumClock,M.TWO_PI),A=p(n.minimumCone,0),b=p(n.maximumCone,M.PI),a=Math.round(p(n.stackPartitions,64)),u=Math.round(p(n.slicePartitions,64)),h=p(n.vertexFormat,k.DEFAULT);if(u<3)throw new z("options.slicePartitions cannot be less than three.");if(a<3)throw new z("options.stackPartitions cannot be less than three.");this._radii=s.clone(m),this._innerRadii=s.clone(i),this._minimumClock=P,this._maximumClock=T,this._minimumCone=A,this._maximumCone=b,this._stackPartitions=a,this._slicePartitions=u,this._vertexFormat=k.clone(h),this._offsetAttribute=n.offsetAttribute,this._workerName="createEllipsoidGeometry"}O.packedLength=2*s.packedLength+k.packedLength+7;O.pack=function(n,m,i){if(!E(n))throw new z("value is required");if(!E(m))throw new z("array is required");return i=p(i,0),s.pack(n._radii,m,i),i+=s.packedLength,s.pack(n._innerRadii,m,i),i+=s.packedLength,k.pack(n._vertexFormat,m,i),i+=k.packedLength,m[i++]=n._minimumClock,m[i++]=n._maximumClock,m[i++]=n._minimumCone,m[i++]=n._maximumCone,m[i++]=n._stackPartitions,m[i++]=n._slicePartitions,m[i]=p(n._offsetAttribute,-1),m};var bt=new s,xt=new s,Ot=new k,y={radii:bt,innerRadii:xt,vertexFormat:Ot,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};O.unpack=function(n,m,i){if(!E(n))throw new z("array is required");m=p(m,0);let P=s.unpack(n,m,bt);m+=s.packedLength;let T=s.unpack(n,m,xt);m+=s.packedLength;let A=k.unpack(n,m,Ot);m+=k.packedLength;let b=n[m++],a=n[m++],u=n[m++],h=n[m++],t=n[m++],o=n[m++],e=n[m];return E(i)?(i._radii=s.clone(P,i._radii),i._innerRadii=s.clone(T,i._innerRadii),i._vertexFormat=k.clone(A,i._vertexFormat),i._minimumClock=b,i._maximumClock=a,i._minimumCone=u,i._maximumCone=h,i._stackPartitions=t,i._slicePartitions=o,i._offsetAttribute=e===-1?void 0:e,i):(y.minimumClock=b,y.maximumClock=a,y.minimumCone=u,y.maximumCone=h,y.stackPartitions=t,y.slicePartitions=o,y.offsetAttribute=e===-1?void 0:e,new O(y))};O.createGeometry=function(n){let m=n._radii;if(m.x<=0||m.y<=0||m.z<=0)return;let i=n._innerRadii;if(i.x<=0||i.y<=0||i.z<=0)return;let P=n._minimumClock,T=n._maximumClock,A=n._minimumCone,b=n._maximumCone,a=n._vertexFormat,u=n._slicePartitions+1,h=n._stackPartitions+1;u=Math.round(u*Math.abs(T-P)/M.TWO_PI),h=Math.round(h*Math.abs(b-A)/M.PI),u<2&&(u=2),h<2&&(h=2);let t,o,e=0,D=[A],S=[P];for(t=0;t<h;t++)D.push(A+t*(b-A)/(h-1));for(D.push(b),o=0;o<u;o++)S.push(P+o*(T-P)/(u-1));S.push(T);let f=D.length,c=S.length,U=0,B=1,q=i.x!==m.x||i.y!==m.y||i.z!==m.z,J=!1,rt=!1,ct=!1;q&&(B=2,A>0&&(J=!0,U+=u-1),b<Math.PI&&(rt=!0,U+=u-1),(T-P)%M.TWO_PI?(ct=!0,U+=(h-1)*2+1):U+=1);let w=c*f*B,x=new Float64Array(w*3),X=new Array(w).fill(!1),st=new Array(w).fill(!1),at=u*h*B,Tt=6*(at+U+1-(u+h)*B),r=kt.createTypedArray(at,Tt),Y=a.normal?new Float32Array(w*3):void 0,j=a.tangent?new Float32Array(w*3):void 0,H=a.bitangent?new Float32Array(w*3):void 0,Z=a.st?new Float32Array(w*2):void 0,V=new Array(f),G=new Array(f);for(t=0;t<f;t++)V[t]=At(D[t]),G[t]=Pt(D[t]);let K=new Array(c),Q=new Array(c);for(o=0;o<c;o++)Q[o]=Pt(S[o]),K[o]=At(S[o]);for(t=0;t<f;t++)for(o=0;o<c;o++)x[e++]=m.x*V[t]*Q[o],x[e++]=m.y*V[t]*K[o],x[e++]=m.z*G[t];let $=w/2;if(q)for(t=0;t<f;t++)for(o=0;o<c;o++)x[e++]=i.x*V[t]*Q[o],x[e++]=i.y*V[t]*K[o],x[e++]=i.z*G[t],X[$]=!0,t>0&&t!==f-1&&o!==0&&o!==c-1&&(st[$]=!0),$++;e=0;let F,L;for(t=1;t<f-2;t++)for(F=t*c,L=(t+1)*c,o=1;o<c-2;o++)r[e++]=L+o,r[e++]=L+o+1,r[e++]=F+o+1,r[e++]=L+o,r[e++]=F+o+1,r[e++]=F+o;if(q){let g=f*c;for(t=1;t<f-2;t++)for(F=g+t*c,L=g+(t+1)*c,o=1;o<c-2;o++)r[e++]=L+o,r[e++]=F+o,r[e++]=F+o+1,r[e++]=L+o,r[e++]=F+o+1,r[e++]=L+o+1}let d,l;if(q){if(J)for(l=f*c,t=1;t<c-2;t++)r[e++]=t,r[e++]=t+1,r[e++]=l+t+1,r[e++]=t,r[e++]=l+t+1,r[e++]=l+t;if(rt)for(d=f*c-c,l=f*c*B-c,t=1;t<c-2;t++)r[e++]=d+t+1,r[e++]=d+t,r[e++]=l+t,r[e++]=d+t+1,r[e++]=l+t,r[e++]=l+t+1}if(ct){for(t=1;t<f-2;t++)l=c*f+c*t,d=c*t,r[e++]=l,r[e++]=d+c,r[e++]=d,r[e++]=l,r[e++]=l+c,r[e++]=d+c;for(t=1;t<f-2;t++)l=c*f+c*(t+1)-1,d=c*(t+1)-1,r[e++]=d+c,r[e++]=l,r[e++]=d,r[e++]=d+c,r[e++]=l+c,r[e++]=l}let v=new Ct;a.position&&(v.position=new R({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:x}));let ft=0,I=0,tt=0,nt=0,Ft=w/2,ut,lt=ot.fromCartesian3(m),Lt=ot.fromCartesian3(i);if(a.st||a.normal||a.tangent||a.bitangent){for(t=0;t<w;t++){ut=X[t]?Lt:lt;let g=s.fromArray(x,t*3,yt),C=ut.geodeticSurfaceNormal(g,vt);if(st[t]&&s.negate(C,C),a.st){let _=pt.negate(C,Nt);Z[ft++]=Math.atan2(_.y,_.x)/M.TWO_PI+.5,Z[ft++]=Math.asin(C.z)/Math.PI+.5}if(a.normal&&(Y[I++]=C.x,Y[I++]=C.y,Y[I++]=C.z),a.tangent||a.bitangent){let _=Et,et=0,it;if(X[t]&&(et=Ft),!J&&t>=et&&t<et+c*2?it=s.UNIT_X:it=s.UNIT_Z,s.cross(it,C,_),s.normalize(_,_),a.tangent&&(j[tt++]=_.x,j[tt++]=_.y,j[tt++]=_.z),a.bitangent){let W=s.cross(C,_,Mt);s.normalize(W,W),H[nt++]=W.x,H[nt++]=W.y,H[nt++]=W.z}}}a.st&&(v.st=new R({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:Z})),a.normal&&(v.normal=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:Y})),a.tangent&&(v.tangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:j})),a.bitangent&&(v.bitangent=new R({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:H}))}if(E(n._offsetAttribute)){let g=x.length,C=n._offsetAttribute===wt.NONE?0:1,_=new Uint8Array(g/3).fill(C);v.applyOffset=new R({componentDatatype:N.UNSIGNED_BYTE,componentsPerAttribute:1,values:_})}return new _t({attributes:v,indices:r,primitiveType:dt.TRIANGLES,boundingSphere:ht.fromEllipsoid(lt),offsetAttribute:n._offsetAttribute})};var mt;O.getUnitEllipsoid=function(){return E(mt)||(mt=O.createGeometry(new O({radii:new s(1,1,1),vertexFormat:k.POSITION_ONLY}))),mt};var Kt=O;export{Kt as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-Y5B6Y3WD.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-Y5B6Y3WD.js new file mode 100644 index 000000000..8045de20f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-Y5B6Y3WD.js @@ -0,0 +1,66 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _,b as Me,c as Oe,d as ze,e as W,f as ft}from"./chunk-AODSXSC5.js";import{a as E}from"./chunk-IISQCXJ5.js";import{a as Se}from"./chunk-IIPSFM7Z.js";import{a as O}from"./chunk-WHQYJFDH.js";import{a as A,b as s}from"./chunk-OYWUGDKS.js";import{a as St,c as Rt,d as Ze,e as p}from"./chunk-DRYFJEFT.js";var Un=Rt((et,tt)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof et=="object"&&et&&!et.nodeType&&et,n=typeof tt=="object"&&tt&&!tt.nodeType&&tt,o=typeof global=="object"&&global;(o.global===o||o.window===o||o.self===o)&&(e=o);var i,r=2147483647,a=36,u=1,d=26,m=38,l=700,w=72,T=128,v="-",P=/^xn--/,j=/[^\x20-\x7E]/,q=/[\x2E\u3002\uFF0E\uFF61]/g,k={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},x=a-u,F=Math.floor,B=String.fromCharCode,Q;function H(b){throw new RangeError(k[b])}function ee(b,z){for(var N=b.length,Y=[];N--;)Y[N]=z(b[N]);return Y}function re(b,z){var N=b.split("@"),Y="";N.length>1&&(Y=N[0]+"@",b=N[1]),b=b.replace(q,".");var ie=b.split("."),ae=ee(ie,z).join(".");return Y+ae}function Z(b){for(var z=[],N=0,Y=b.length,ie,ae;N<Y;)ie=b.charCodeAt(N++),ie>=55296&&ie<=56319&&N<Y?(ae=b.charCodeAt(N++),(ae&64512)==56320?z.push(((ie&1023)<<10)+(ae&1023)+65536):(z.push(ie),N--)):z.push(ie);return z}function oe(b){return ee(b,function(z){var N="";return z>65535&&(z-=65536,N+=B(z>>>10&1023|55296),z=56320|z&1023),N+=B(z),N}).join("")}function J(b){return b-48<10?b-22:b-65<26?b-65:b-97<26?b-97:a}function c(b,z){return b+22+75*(b<26)-((z!=0)<<5)}function f(b,z,N){var Y=0;for(b=N?F(b/l):b>>1,b+=F(b/z);b>x*d>>1;Y+=a)b=F(b/x);return F(Y+(x+1)*b/(b+m))}function h(b){var z=[],N=b.length,Y,ie=0,ae=T,te=w,ue,de,ye,me,he,X,_e,Te,je;for(ue=b.lastIndexOf(v),ue<0&&(ue=0),de=0;de<ue;++de)b.charCodeAt(de)>=128&&H("not-basic"),z.push(b.charCodeAt(de));for(ye=ue>0?ue+1:0;ye<N;){for(me=ie,he=1,X=a;ye>=N&&H("invalid-input"),_e=J(b.charCodeAt(ye++)),(_e>=a||_e>F((r-ie)/he))&&H("overflow"),ie+=_e*he,Te=X<=te?u:X>=te+d?d:X-te,!(_e<Te);X+=a)je=a-Te,he>F(r/je)&&H("overflow"),he*=je;Y=z.length+1,te=f(ie-me,Y,me==0),F(ie/Y)>r-ae&&H("overflow"),ae+=F(ie/Y),ie%=Y,z.splice(ie++,0,ae)}return oe(z)}function y(b){var z,N,Y,ie,ae,te,ue,de,ye,me,he,X=[],_e,Te,je,at;for(b=Z(b),_e=b.length,z=T,N=0,ae=w,te=0;te<_e;++te)he=b[te],he<128&&X.push(B(he));for(Y=ie=X.length,ie&&X.push(v);Y<_e;){for(ue=r,te=0;te<_e;++te)he=b[te],he>=z&&he<ue&&(ue=he);for(Te=Y+1,ue-z>F((r-N)/Te)&&H("overflow"),N+=(ue-z)*Te,z=ue,te=0;te<_e;++te)if(he=b[te],he<z&&++N>r&&H("overflow"),he==z){for(de=N,ye=a;me=ye<=ae?u:ye>=ae+d?d:ye-ae,!(de<me);ye+=a)at=de-me,je=a-me,X.push(B(c(me+at%je,0))),de=F(at/je);X.push(B(c(de,0))),ae=f(N,Te,Y==ie),N=0,++Y}++N,++z}return X.join("")}function g(b){return re(b,function(z){return P.test(z)?h(z.slice(4).toLowerCase()):z})}function C(b){return re(b,function(z){return j.test(z)?"xn--"+y(z):z})}if(i={version:"1.3.2",ucs2:{decode:Z,encode:oe},decode:h,encode:y,toASCII:C,toUnicode:g},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return i});else if(t&&n)if(tt.exports==t)n.exports=i;else for(Q in i)i.hasOwnProperty(Q)&&(t[Q]=i[Q]);else e.punycode=i})(et)});var zn=Rt((In,Mt)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof Mt=="object"&&Mt.exports?Mt.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(In,function(e){"use strict";var t=e&&e.IPv6;function n(i){var r=i.toLowerCase(),a=r.split(":"),u=a.length,d=8;a[0]===""&&a[1]===""&&a[2]===""?(a.shift(),a.shift()):a[0]===""&&a[1]===""?a.shift():a[u-1]===""&&a[u-2]===""&&a.pop(),u=a.length,a[u-1].indexOf(".")!==-1&&(d=7);var m;for(m=0;m<u&&a[m]!=="";m++);if(m<d)for(a.splice(m,1,"0000");a.length<d;)a.splice(m,0,"0000");for(var l,w=0;w<d;w++){l=a[w].split("");for(var T=0;T<3&&(l[0]==="0"&&l.length>1);T++)l.splice(0,1);a[w]=l.join("")}var v=-1,P=0,j=0,q=-1,k=!1;for(w=0;w<d;w++)k?a[w]==="0"?j+=1:(k=!1,j>P&&(v=q,P=j)):a[w]==="0"&&(k=!0,q=w,j=1);j>P&&(v=q,P=j),P>1&&a.splice(v,P,""),u=a.length;var x="";for(a[0]===""&&(x=":"),w=0;w<u&&(x+=a[w],w!==u-1);w++)x+=":";return a[u-1]===""&&(x+=":"),x}function o(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:o}})});var Dn=Rt((qn,Pt)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof Pt=="object"&&Pt.exports?Pt.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(qn,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(o){var i=o.lastIndexOf(".");if(i<=0||i>=o.length-1)return!1;var r=o.lastIndexOf(".",i-1);if(r<=0||r>=i-1)return!1;var a=n.list[o.slice(i+1)];return a?a.indexOf(" "+o.slice(r+1,i)+" ")>=0:!1},is:function(o){var i=o.lastIndexOf(".");if(i<=0||i>=o.length-1)return!1;var r=o.lastIndexOf(".",i-1);if(r>=0)return!1;var a=n.list[o.slice(i+1)];return a?a.indexOf(" "+o.slice(0,i)+" ")>=0:!1},get:function(o){var i=o.lastIndexOf(".");if(i<=0||i>=o.length-1)return null;var r=o.lastIndexOf(".",i-1);if(r<=0||r>=i-1)return null;var a=n.list[o.slice(i+1)];return!a||a.indexOf(" "+o.slice(r+1,i)+" ")<0?null:o.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var We=Rt((Nn,Ut)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof Ut=="object"&&Ut.exports?Ut.exports=t(Un(),zn(),Dn()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(Nn,function(e,t,n,o){"use strict";var i=o&&o.URI;function r(c,f){var h=arguments.length>=1,y=arguments.length>=2;if(!(this instanceof r))return h?y?new r(c,f):new r(c):new r;if(c===void 0){if(h)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?c=location.href+"":c=""}if(c===null&&h)throw new TypeError("null is not a valid argument for URI");return this.href(c),f!==void 0?this.absoluteTo(f):this}function a(c){return/^[0-9]+$/.test(c)}r.version="1.19.11";var u=r.prototype,d=Object.prototype.hasOwnProperty;function m(c){return c.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function l(c){return c===void 0?"Undefined":String(Object.prototype.toString.call(c)).slice(8,-1)}function w(c){return l(c)==="Array"}function T(c,f){var h={},y,g;if(l(f)==="RegExp")h=null;else if(w(f))for(y=0,g=f.length;y<g;y++)h[f[y]]=!0;else h[f]=!0;for(y=0,g=c.length;y<g;y++){var C=h&&h[c[y]]!==void 0||!h&&f.test(c[y]);C&&(c.splice(y,1),g--,y--)}return c}function v(c,f){var h,y;if(w(f)){for(h=0,y=f.length;h<y;h++)if(!v(c,f[h]))return!1;return!0}var g=l(f);for(h=0,y=c.length;h<y;h++)if(g==="RegExp"){if(typeof c[h]=="string"&&c[h].match(f))return!0}else if(c[h]===f)return!0;return!1}function P(c,f){if(!w(c)||!w(f)||c.length!==f.length)return!1;c.sort(),f.sort();for(var h=0,y=c.length;h<y;h++)if(c[h]!==f[h])return!1;return!0}function j(c){var f=/^\/+|\/+$/g;return c.replace(f,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(c){if(!(!c||!c.nodeName)){var f=c.nodeName.toLowerCase();if(!(f==="input"&&c.type!=="image"))return r.domAttributes[f]}};function q(c){return escape(c)}function k(c){return encodeURIComponent(c).replace(/[!'()*]/g,q).replace(/\*/g,"%2A")}r.encode=k,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=k,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(c,f){var h=r.encode(c+"");return f===void 0&&(f=r.escapeQuerySpace),f?h.replace(/%20/g,"+"):h},r.decodeQuery=function(c,f){c+="",f===void 0&&(f=r.escapeQuerySpace);try{return r.decode(f?c.replace(/\+/g,"%20"):c)}catch{return c}};var x={encode:"encode",decode:"decode"},F,B=function(c,f){return function(h){try{return r[f](h+"").replace(r.characters[c][f].expression,function(y){return r.characters[c][f].map[y]})}catch{return h}}};for(F in x)r[F+"PathSegment"]=B("pathname",x[F]),r[F+"UrnPathSegment"]=B("urnpath",x[F]);var Q=function(c,f,h){return function(y){var g;h?g=function(N){return r[f](r[h](N))}:g=r[f];for(var C=(y+"").split(c),b=0,z=C.length;b<z;b++)C[b]=g(C[b]);return C.join(c)}};r.decodePath=Q("/","decodePathSegment"),r.decodeUrnPath=Q(":","decodeUrnPathSegment"),r.recodePath=Q("/","encodePathSegment","decode"),r.recodeUrnPath=Q(":","encodeUrnPathSegment","decode"),r.encodeReserved=B("reserved","encode"),r.parse=function(c,f){var h;return f||(f={preventInvalidHostname:r.preventInvalidHostname}),c=c.replace(r.leading_whitespace_expression,""),c=c.replace(r.ascii_tab_whitespace,""),h=c.indexOf("#"),h>-1&&(f.fragment=c.substring(h+1)||null,c=c.substring(0,h)),h=c.indexOf("?"),h>-1&&(f.query=c.substring(h+1)||null,c=c.substring(0,h)),c=c.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),c=c.replace(/^[/\\]{2,}/i,"//"),c.substring(0,2)==="//"?(f.protocol=null,c=c.substring(2),c=r.parseAuthority(c,f)):(h=c.indexOf(":"),h>-1&&(f.protocol=c.substring(0,h)||null,f.protocol&&!f.protocol.match(r.protocol_expression)?f.protocol=void 0:c.substring(h+1,h+3).replace(/\\/g,"/")==="//"?(c=c.substring(h+3),c=r.parseAuthority(c,f)):(c=c.substring(h+1),f.urn=!0))),f.path=c,f},r.parseHost=function(c,f){c||(c=""),c=c.replace(/\\/g,"/");var h=c.indexOf("/"),y,g;if(h===-1&&(h=c.length),c.charAt(0)==="[")y=c.indexOf("]"),f.hostname=c.substring(1,y)||null,f.port=c.substring(y+2,h)||null,f.port==="/"&&(f.port=null);else{var C=c.indexOf(":"),b=c.indexOf("/"),z=c.indexOf(":",C+1);z!==-1&&(b===-1||z<b)?(f.hostname=c.substring(0,h)||null,f.port=null):(g=c.substring(0,h).split(":"),f.hostname=g[0]||null,f.port=g[1]||null)}return f.hostname&&c.substring(h).charAt(0)!=="/"&&(h++,c="/"+c),f.preventInvalidHostname&&r.ensureValidHostname(f.hostname,f.protocol),f.port&&r.ensureValidPort(f.port),c.substring(h)||"/"},r.parseAuthority=function(c,f){return c=r.parseUserinfo(c,f),r.parseHost(c,f)},r.parseUserinfo=function(c,f){var h=c,y=c.indexOf("\\");y!==-1&&(c=c.replace(/\\/g,"/"));var g=c.indexOf("/"),C=c.lastIndexOf("@",g>-1?g:c.length-1),b;return C>-1&&(g===-1||C<g)?(b=c.substring(0,C).split(":"),f.username=b[0]?r.decode(b[0]):null,b.shift(),f.password=b[0]?r.decode(b.join(":")):null,c=h.substring(C+1)):(f.username=null,f.password=null),c},r.parseQuery=function(c,f){if(!c)return{};if(c=c.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!c)return{};for(var h={},y=c.split("&"),g=y.length,C,b,z,N=0;N<g;N++)C=y[N].split("="),b=r.decodeQuery(C.shift(),f),z=C.length?r.decodeQuery(C.join("="),f):null,b!=="__proto__"&&(d.call(h,b)?((typeof h[b]=="string"||h[b]===null)&&(h[b]=[h[b]]),h[b].push(z)):h[b]=z);return h},r.build=function(c){var f="",h=!1;return c.protocol&&(f+=c.protocol+":"),!c.urn&&(f||c.hostname)&&(f+="//",h=!0),f+=r.buildAuthority(c)||"",typeof c.path=="string"&&(c.path.charAt(0)!=="/"&&h&&(f+="/"),f+=c.path),typeof c.query=="string"&&c.query&&(f+="?"+c.query),typeof c.fragment=="string"&&c.fragment&&(f+="#"+c.fragment),f},r.buildHost=function(c){var f="";if(c.hostname)r.ip6_expression.test(c.hostname)?f+="["+c.hostname+"]":f+=c.hostname;else return"";return c.port&&(f+=":"+c.port),f},r.buildAuthority=function(c){return r.buildUserinfo(c)+r.buildHost(c)},r.buildUserinfo=function(c){var f="";return c.username&&(f+=r.encode(c.username)),c.password&&(f+=":"+r.encode(c.password)),f&&(f+="@"),f},r.buildQuery=function(c,f,h){var y="",g,C,b,z;for(C in c)if(C!=="__proto__"&&d.call(c,C))if(w(c[C]))for(g={},b=0,z=c[C].length;b<z;b++)c[C][b]!==void 0&&g[c[C][b]+""]===void 0&&(y+="&"+r.buildQueryParameter(C,c[C][b],h),f!==!0&&(g[c[C][b]+""]=!0));else c[C]!==void 0&&(y+="&"+r.buildQueryParameter(C,c[C],h));return y.substring(1)},r.buildQueryParameter=function(c,f,h){return r.encodeQuery(c,h)+(f!==null?"="+r.encodeQuery(f,h):"")},r.addQuery=function(c,f,h){if(typeof f=="object")for(var y in f)d.call(f,y)&&r.addQuery(c,y,f[y]);else if(typeof f=="string"){if(c[f]===void 0){c[f]=h;return}else typeof c[f]=="string"&&(c[f]=[c[f]]);w(h)||(h=[h]),c[f]=(c[f]||[]).concat(h)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(c,f,h){if(typeof f=="object")for(var y in f)d.call(f,y)&&r.setQuery(c,y,f[y]);else if(typeof f=="string")c[f]=h===void 0?null:h;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(c,f,h){var y,g,C;if(w(f))for(y=0,g=f.length;y<g;y++)c[f[y]]=void 0;else if(l(f)==="RegExp")for(C in c)f.test(C)&&(c[C]=void 0);else if(typeof f=="object")for(C in f)d.call(f,C)&&r.removeQuery(c,C,f[C]);else if(typeof f=="string")h!==void 0?l(h)==="RegExp"?!w(c[f])&&h.test(c[f])?c[f]=void 0:c[f]=T(c[f],h):c[f]===String(h)&&(!w(h)||h.length===1)?c[f]=void 0:w(c[f])&&(c[f]=T(c[f],h)):c[f]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(c,f,h,y){switch(l(f)){case"String":break;case"RegExp":for(var g in c)if(d.call(c,g)&&f.test(g)&&(h===void 0||r.hasQuery(c,g,h)))return!0;return!1;case"Object":for(var C in f)if(d.call(f,C)&&!r.hasQuery(c,C,f[C]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(l(h)){case"Undefined":return f in c;case"Boolean":var b=!!(w(c[f])?c[f].length:c[f]);return h===b;case"Function":return!!h(c[f],f,c);case"Array":if(!w(c[f]))return!1;var z=y?v:P;return z(c[f],h);case"RegExp":return w(c[f])?y?v(c[f],h):!1:!!(c[f]&&c[f].match(h));case"Number":h=String(h);case"String":return w(c[f])?y?v(c[f],h):!1:c[f]===h;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var c=[],f=[],h=0,y=0;y<arguments.length;y++){var g=new r(arguments[y]);c.push(g);for(var C=g.segment(),b=0;b<C.length;b++)typeof C[b]=="string"&&f.push(C[b]),C[b]&&h++}if(!f.length||!h)return new r("");var z=new r("").segment(f);return(c[0].path()===""||c[0].path().slice(0,1)==="/")&&z.path("/"+z.path()),z.normalize()},r.commonPath=function(c,f){var h=Math.min(c.length,f.length),y;for(y=0;y<h;y++)if(c.charAt(y)!==f.charAt(y)){y--;break}return y<1?c.charAt(0)===f.charAt(0)&&c.charAt(0)==="/"?"/":"":((c.charAt(y)!=="/"||f.charAt(y)!=="/")&&(y=c.substring(0,y).lastIndexOf("/")),c.substring(0,y+1))},r.withinString=function(c,f,h){h||(h={});var y=h.start||r.findUri.start,g=h.end||r.findUri.end,C=h.trim||r.findUri.trim,b=h.parens||r.findUri.parens,z=/[a-z0-9-]=["']?$/i;for(y.lastIndex=0;;){var N=y.exec(c);if(!N)break;var Y=N.index;if(h.ignoreHtml){var ie=c.slice(Math.max(Y-3,0),Y);if(ie&&z.test(ie))continue}for(var ae=Y+c.slice(Y).search(g),te=c.slice(Y,ae),ue=-1;;){var de=b.exec(te);if(!de)break;var ye=de.index+de[0].length;ue=Math.max(ue,ye)}if(ue>-1?te=te.slice(0,ue)+te.slice(ue).replace(C,""):te=te.replace(C,""),!(te.length<=N[0].length)&&!(h.ignore&&h.ignore.test(te))){ae=Y+te.length;var me=f(te,Y,ae,c);if(me===void 0){y.lastIndex=ae;continue}me=String(me),c=c.slice(0,Y)+me+c.slice(ae),y.lastIndex=Y+me.length}}return y.lastIndex=0,c},r.ensureValidHostname=function(c,f){var h=!!c,y=!!f,g=!1;if(y&&(g=v(r.hostProtocols,f)),g&&!h)throw new TypeError("Hostname cannot be empty, if protocol is "+f);if(c&&c.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+c+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(c).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+c+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(c){if(c){var f=Number(c);if(!(a(f)&&f>0&&f<65536))throw new TypeError('Port "'+c+'" is not a valid port')}},r.noConflict=function(c){if(c){var f={URI:this.noConflict()};return o.URITemplate&&typeof o.URITemplate.noConflict=="function"&&(f.URITemplate=o.URITemplate.noConflict()),o.IPv6&&typeof o.IPv6.noConflict=="function"&&(f.IPv6=o.IPv6.noConflict()),o.SecondLevelDomains&&typeof o.SecondLevelDomains.noConflict=="function"&&(f.SecondLevelDomains=o.SecondLevelDomains.noConflict()),f}else o.URI===this&&(o.URI=i);return this},u.build=function(c){return c===!0?this._deferred_build=!0:(c===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},u.clone=function(){return new r(this)},u.valueOf=u.toString=function(){return this.build(!1)._string};function H(c){return function(f,h){return f===void 0?this._parts[c]||"":(this._parts[c]=f||null,this.build(!h),this)}}function ee(c,f){return function(h,y){return h===void 0?this._parts[c]||"":(h!==null&&(h=h+"",h.charAt(0)===f&&(h=h.substring(1))),this._parts[c]=h,this.build(!y),this)}}u.protocol=H("protocol"),u.username=H("username"),u.password=H("password"),u.hostname=H("hostname"),u.port=H("port"),u.query=ee("query","?"),u.fragment=ee("fragment","#"),u.search=function(c,f){var h=this.query(c,f);return typeof h=="string"&&h.length?"?"+h:h},u.hash=function(c,f){var h=this.fragment(c,f);return typeof h=="string"&&h.length?"#"+h:h},u.pathname=function(c,f){if(c===void 0||c===!0){var h=this._parts.path||(this._parts.hostname?"/":"");return c?(this._parts.urn?r.decodeUrnPath:r.decodePath)(h):h}else return this._parts.urn?this._parts.path=c?r.recodeUrnPath(c):"":this._parts.path=c?r.recodePath(c):"/",this.build(!f),this},u.path=u.pathname,u.href=function(c,f){var h;if(c===void 0)return this.toString();this._string="",this._parts=r._parts();var y=c instanceof r,g=typeof c=="object"&&(c.hostname||c.path||c.pathname);if(c.nodeName){var C=r.getDomAttribute(c);c=c[C]||"",g=!1}if(!y&&g&&c.pathname!==void 0&&(c=c.toString()),typeof c=="string"||c instanceof String)this._parts=r.parse(String(c),this._parts);else if(y||g){var b=y?c._parts:c;for(h in b)h!=="query"&&d.call(this._parts,h)&&(this._parts[h]=b[h]);b.query&&this.query(b.query,!1)}else throw new TypeError("invalid input");return this.build(!f),this},u.is=function(c){var f=!1,h=!1,y=!1,g=!1,C=!1,b=!1,z=!1,N=!this._parts.urn;switch(this._parts.hostname&&(N=!1,h=r.ip4_expression.test(this._parts.hostname),y=r.ip6_expression.test(this._parts.hostname),f=h||y,g=!f,C=g&&n&&n.has(this._parts.hostname),b=g&&r.idn_expression.test(this._parts.hostname),z=g&&r.punycode_expression.test(this._parts.hostname)),c.toLowerCase()){case"relative":return N;case"absolute":return!N;case"domain":case"name":return g;case"sld":return C;case"ip":return f;case"ip4":case"ipv4":case"inet4":return h;case"ip6":case"ipv6":case"inet6":return y;case"idn":return b;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return z}return null};var re=u.protocol,Z=u.port,oe=u.hostname;u.protocol=function(c,f){if(c&&(c=c.replace(/:(\/\/)?$/,""),!c.match(r.protocol_expression)))throw new TypeError('Protocol "'+c+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return re.call(this,c,f)},u.scheme=u.protocol,u.port=function(c,f){return this._parts.urn?c===void 0?"":this:(c!==void 0&&(c===0&&(c=null),c&&(c+="",c.charAt(0)===":"&&(c=c.substring(1)),r.ensureValidPort(c))),Z.call(this,c,f))},u.hostname=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c!==void 0){var h={preventInvalidHostname:this._parts.preventInvalidHostname},y=r.parseHost(c,h);if(y!=="/")throw new TypeError('Hostname "'+c+'" contains characters other than [A-Z0-9.-]');c=h.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(c,this._parts.protocol)}return oe.call(this,c,f)},u.origin=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0){var h=this.protocol(),y=this.authority();return y?(h?h+"://":"")+this.authority():""}else{var g=r(c);return this.protocol(g.protocol()).authority(g.authority()).build(!f),this}},u.host=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var h=r.parseHost(c,this._parts);if(h!=="/")throw new TypeError('Hostname "'+c+'" contains characters other than [A-Z0-9.-]');return this.build(!f),this},u.authority=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var h=r.parseAuthority(c,this._parts);if(h!=="/")throw new TypeError('Hostname "'+c+'" contains characters other than [A-Z0-9.-]');return this.build(!f),this},u.userinfo=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0){var h=r.buildUserinfo(this._parts);return h&&h.substring(0,h.length-1)}else return c[c.length-1]!=="@"&&(c+="@"),r.parseUserinfo(c,this._parts),this.build(!f),this},u.resource=function(c,f){var h;return c===void 0?this.path()+this.search()+this.hash():(h=r.parse(c),this._parts.path=h.path,this._parts.query=h.query,this._parts.fragment=h.fragment,this.build(!f),this)},u.subdomain=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0){if(!this._parts.hostname||this.is("IP"))return"";var h=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,h)||""}else{var y=this._parts.hostname.length-this.domain().length,g=this._parts.hostname.substring(0,y),C=new RegExp("^"+m(g));if(c&&c.charAt(c.length-1)!=="."&&(c+="."),c.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return c&&r.ensureValidHostname(c,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(C,c),this.build(!f),this}},u.domain=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(typeof c=="boolean"&&(f=c,c=void 0),c===void 0){if(!this._parts.hostname||this.is("IP"))return"";var h=this._parts.hostname.match(/\./g);if(h&&h.length<2)return this._parts.hostname;var y=this._parts.hostname.length-this.tld(f).length-1;return y=this._parts.hostname.lastIndexOf(".",y-1)+1,this._parts.hostname.substring(y)||""}else{if(!c)throw new TypeError("cannot set domain empty");if(c.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(c,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=c;else{var g=new RegExp(m(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(g,c)}return this.build(!f),this}},u.tld=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(typeof c=="boolean"&&(f=c,c=void 0),c===void 0){if(!this._parts.hostname||this.is("IP"))return"";var h=this._parts.hostname.lastIndexOf("."),y=this._parts.hostname.substring(h+1);return f!==!0&&n&&n.list[y.toLowerCase()]&&n.get(this._parts.hostname)||y}else{var g;if(c)if(c.match(/[^a-zA-Z0-9-]/))if(n&&n.is(c))g=new RegExp(m(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(g,c);else throw new TypeError('TLD "'+c+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");g=new RegExp(m(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(g,c)}else throw new TypeError("cannot set TLD empty");return this.build(!f),this}},u.directory=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0||c===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var h=this._parts.path.length-this.filename().length-1,y=this._parts.path.substring(0,h)||(this._parts.hostname?"/":"");return c?r.decodePath(y):y}else{var g=this._parts.path.length-this.filename().length,C=this._parts.path.substring(0,g),b=new RegExp("^"+m(C));return this.is("relative")||(c||(c="/"),c.charAt(0)!=="/"&&(c="/"+c)),c&&c.charAt(c.length-1)!=="/"&&(c+="/"),c=r.recodePath(c),this._parts.path=this._parts.path.replace(b,c),this.build(!f),this}},u.filename=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(typeof c!="string"){if(!this._parts.path||this._parts.path==="/")return"";var h=this._parts.path.lastIndexOf("/"),y=this._parts.path.substring(h+1);return c?r.decodePathSegment(y):y}else{var g=!1;c.charAt(0)==="/"&&(c=c.substring(1)),c.match(/\.?\//)&&(g=!0);var C=new RegExp(m(this.filename())+"$");return c=r.recodePath(c),this._parts.path=this._parts.path.replace(C,c),g?this.normalizePath(f):this.build(!f),this}},u.suffix=function(c,f){if(this._parts.urn)return c===void 0?"":this;if(c===void 0||c===!0){if(!this._parts.path||this._parts.path==="/")return"";var h=this.filename(),y=h.lastIndexOf("."),g,C;return y===-1?"":(g=h.substring(y+1),C=/^[a-z0-9%]+$/i.test(g)?g:"",c?r.decodePathSegment(C):C)}else{c.charAt(0)==="."&&(c=c.substring(1));var b=this.suffix(),z;if(b)c?z=new RegExp(m(b)+"$"):z=new RegExp(m("."+b)+"$");else{if(!c)return this;this._parts.path+="."+r.recodePath(c)}return z&&(c=r.recodePath(c),this._parts.path=this._parts.path.replace(z,c)),this.build(!f),this}},u.segment=function(c,f,h){var y=this._parts.urn?":":"/",g=this.path(),C=g.substring(0,1)==="/",b=g.split(y);if(c!==void 0&&typeof c!="number"&&(h=f,f=c,c=void 0),c!==void 0&&typeof c!="number")throw new Error('Bad segment "'+c+'", must be 0-based integer');if(C&&b.shift(),c<0&&(c=Math.max(b.length+c,0)),f===void 0)return c===void 0?b:b[c];if(c===null||b[c]===void 0)if(w(f)){b=[];for(var z=0,N=f.length;z<N;z++)!f[z].length&&(!b.length||!b[b.length-1].length)||(b.length&&!b[b.length-1].length&&b.pop(),b.push(j(f[z])))}else(f||typeof f=="string")&&(f=j(f),b[b.length-1]===""?b[b.length-1]=f:b.push(f));else f?b[c]=j(f):b.splice(c,1);return C&&b.unshift(""),this.path(b.join(y),h)},u.segmentCoded=function(c,f,h){var y,g,C;if(typeof c!="number"&&(h=f,f=c,c=void 0),f===void 0){if(y=this.segment(c,f,h),!w(y))y=y!==void 0?r.decode(y):void 0;else for(g=0,C=y.length;g<C;g++)y[g]=r.decode(y[g]);return y}if(!w(f))f=typeof f=="string"||f instanceof String?r.encode(f):f;else for(g=0,C=f.length;g<C;g++)f[g]=r.encode(f[g]);return this.segment(c,f,h)};var J=u.query;return u.query=function(c,f){if(c===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof c=="function"){var h=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),y=c.call(this,h);return this._parts.query=r.buildQuery(y||h,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!f),this}else return c!==void 0&&typeof c!="string"?(this._parts.query=r.buildQuery(c,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!f),this):J.call(this,c,f)},u.setQuery=function(c,f,h){var y=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof c=="string"||c instanceof String)y[c]=f!==void 0?f:null;else if(typeof c=="object")for(var g in c)d.call(c,g)&&(y[g]=c[g]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(y,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof c!="string"&&(h=f),this.build(!h),this},u.addQuery=function(c,f,h){var y=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(y,c,f===void 0?null:f),this._parts.query=r.buildQuery(y,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof c!="string"&&(h=f),this.build(!h),this},u.removeQuery=function(c,f,h){var y=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(y,c,f),this._parts.query=r.buildQuery(y,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof c!="string"&&(h=f),this.build(!h),this},u.hasQuery=function(c,f,h){var y=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(y,c,f,h)},u.setSearch=u.setQuery,u.addSearch=u.addQuery,u.removeSearch=u.removeQuery,u.hasSearch=u.hasQuery,u.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},u.normalizeProtocol=function(c){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!c)),this},u.normalizeHostname=function(c){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!c)),this},u.normalizePort=function(c){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!c)),this},u.normalizePath=function(c){var f=this._parts.path;if(!f)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!c),this;if(this._parts.path==="/")return this;f=r.recodePath(f);var h,y="",g,C;for(f.charAt(0)!=="/"&&(h=!0,f="/"+f),(f.slice(-3)==="/.."||f.slice(-2)==="/.")&&(f+="/"),f=f.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),h&&(y=f.substring(1).match(/^(\.\.\/)+/)||"",y&&(y=y[0]));g=f.search(/\/\.\.(\/|$)/),g!==-1;){if(g===0){f=f.substring(3);continue}C=f.substring(0,g).lastIndexOf("/"),C===-1&&(C=g),f=f.substring(0,C)+f.substring(g+3)}return h&&this.is("relative")&&(f=y+f.substring(1)),this._parts.path=f,this.build(!c),this},u.normalizePathname=u.normalizePath,u.normalizeQuery=function(c){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!c)),this},u.normalizeFragment=function(c){return this._parts.fragment||(this._parts.fragment=null,this.build(!c)),this},u.normalizeSearch=u.normalizeQuery,u.normalizeHash=u.normalizeFragment,u.iso8859=function(){var c=r.encode,f=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=c,r.decode=f}return this},u.unicode=function(){var c=r.encode,f=r.decode;r.encode=k,r.decode=unescape;try{this.normalize()}finally{r.encode=c,r.decode=f}return this},u.readable=function(){var c=this.clone();c.username("").password("").normalize();var f="";if(c._parts.protocol&&(f+=c._parts.protocol+"://"),c._parts.hostname&&(c.is("punycode")&&e?(f+=e.toUnicode(c._parts.hostname),c._parts.port&&(f+=":"+c._parts.port)):f+=c.host()),c._parts.hostname&&c._parts.path&&c._parts.path.charAt(0)!=="/"&&(f+="/"),f+=c.path(!0),c._parts.query){for(var h="",y=0,g=c._parts.query.split("&"),C=g.length;y<C;y++){var b=(g[y]||"").split("=");h+="&"+r.decodeQuery(b[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),b[1]!==void 0&&(h+="="+r.decodeQuery(b[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}f+="?"+h.substring(1)}return f+=r.decodeQuery(c.hash(),!0),f},u.absoluteTo=function(c){var f=this.clone(),h=["protocol","username","password","hostname","port"],y,g,C;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(c instanceof r||(c=new r(c)),f._parts.protocol||(f._parts.protocol=c._parts.protocol,this._parts.hostname))return f;for(g=0;C=h[g];g++)f._parts[C]=c._parts[C];return f._parts.path?(f._parts.path.substring(-2)===".."&&(f._parts.path+="/"),f.path().charAt(0)!=="/"&&(y=c.directory(),y=y||(c.path().indexOf("/")===0?"/":""),f._parts.path=(y?y+"/":"")+f._parts.path,f.normalizePath())):(f._parts.path=c._parts.path,f._parts.query||(f._parts.query=c._parts.query)),f.build(),f},u.relativeTo=function(c){var f=this.clone().normalize(),h,y,g,C,b;if(f._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(c=new r(c).normalize(),h=f._parts,y=c._parts,C=f.path(),b=c.path(),C.charAt(0)!=="/")throw new Error("URI is already relative");if(b.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(h.protocol===y.protocol&&(h.protocol=null),h.username!==y.username||h.password!==y.password||h.protocol!==null||h.username!==null||h.password!==null)return f.build();if(h.hostname===y.hostname&&h.port===y.port)h.hostname=null,h.port=null;else return f.build();if(C===b)return h.path="",f.build();if(g=r.commonPath(C,b),!g)return f.build();var z=y.path.substring(g.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return h.path=z+h.path.substring(g.length)||"./",f.build()},u.equals=function(c){var f=this.clone(),h=new r(c),y={},g={},C={},b,z,N;if(f.normalize(),h.normalize(),f.toString()===h.toString())return!0;if(b=f.query(),z=h.query(),f.query(""),h.query(""),f.toString()!==h.toString()||b.length!==z.length)return!1;y=r.parseQuery(b,this._parts.escapeQuerySpace),g=r.parseQuery(z,this._parts.escapeQuerySpace);for(N in y)if(d.call(y,N)){if(w(y[N])){if(!P(y[N],g[N]))return!1}else if(y[N]!==g[N])return!1;C[N]=!0}for(N in g)if(d.call(g,N)&&!C[N])return!1;return!0},u.preventInvalidHostname=function(c){return this._parts.preventInvalidHostname=!!c,this},u.duplicateQueryParameters=function(c){return this._parts.duplicateQueryParameters=!!c,this},u.escapeQuerySpace=function(c){return this._parts.escapeQuerySpace=!!c,this},r})});function M(e,t,n,o){this.x=O(e,0),this.y=O(t,0),this.z=O(n,0),this.w=O(o,0)}M.fromElements=function(e,t,n,o,i){return p(i)?(i.x=e,i.y=t,i.z=n,i.w=o,i):new M(e,t,n,o)};M.fromColor=function(e,t){return s.typeOf.object("color",e),p(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new M(e.red,e.green,e.blue,e.alpha)};M.clone=function(e,t){if(p(e))return p(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new M(e.x,e.y,e.z,e.w)};M.packedLength=4;M.pack=function(e,t,n){return s.typeOf.object("value",e),s.defined("array",t),n=O(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};M.unpack=function(e,t,n){return s.defined("array",e),t=O(t,0),p(n)||(n=new M),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};M.packArray=function(e,t){s.defined("array",e);let n=e.length,o=n*4;if(!p(t))t=new Array(o);else{if(!Array.isArray(t)&&t.length!==o)throw new A("If result is a typed array, it must have exactly array.length * 4 elements");t.length!==o&&(t.length=o)}for(let i=0;i<n;++i)M.pack(e[i],t,i*4);return t};M.unpackArray=function(e,t){if(s.defined("array",e),s.typeOf.number.greaterThanOrEquals("array.length",e.length,4),e.length%4!==0)throw new A("array length must be a multiple of 4.");let n=e.length;p(t)?t.length=n/4:t=new Array(n/4);for(let o=0;o<n;o+=4){let i=o/4;t[i]=M.unpack(e,o,t[i])}return t};M.fromArray=M.unpack;M.maximumComponent=function(e){return s.typeOf.object("cartesian",e),Math.max(e.x,e.y,e.z,e.w)};M.minimumComponent=function(e){return s.typeOf.object("cartesian",e),Math.min(e.x,e.y,e.z,e.w)};M.minimumByComponent=function(e,t,n){return s.typeOf.object("first",e),s.typeOf.object("second",t),s.typeOf.object("result",n),n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};M.maximumByComponent=function(e,t,n){return s.typeOf.object("first",e),s.typeOf.object("second",t),s.typeOf.object("result",n),n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};M.clamp=function(e,t,n,o){s.typeOf.object("value",e),s.typeOf.object("min",t),s.typeOf.object("max",n),s.typeOf.object("result",o);let i=E.clamp(e.x,t.x,n.x),r=E.clamp(e.y,t.y,n.y),a=E.clamp(e.z,t.z,n.z),u=E.clamp(e.w,t.w,n.w);return o.x=i,o.y=r,o.z=a,o.w=u,o};M.magnitudeSquared=function(e){return s.typeOf.object("cartesian",e),e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};M.magnitude=function(e){return Math.sqrt(M.magnitudeSquared(e))};var Et=new M;M.distance=function(e,t){return s.typeOf.object("left",e),s.typeOf.object("right",t),M.subtract(e,t,Et),M.magnitude(Et)};M.distanceSquared=function(e,t){return s.typeOf.object("left",e),s.typeOf.object("right",t),M.subtract(e,t,Et),M.magnitudeSquared(Et)};M.normalize=function(e,t){s.typeOf.object("cartesian",e),s.typeOf.object("result",t);let n=M.magnitude(e);if(t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,isNaN(t.x)||isNaN(t.y)||isNaN(t.z)||isNaN(t.w))throw new A("normalized result is not a number");return t};M.dot=function(e,t){return s.typeOf.object("left",e),s.typeOf.object("right",t),e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};M.multiplyComponents=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};M.divideComponents=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};M.add=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};M.subtract=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};M.multiplyByScalar=function(e,t,n){return s.typeOf.object("cartesian",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};M.divideByScalar=function(e,t,n){return s.typeOf.object("cartesian",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};M.negate=function(e,t){return s.typeOf.object("cartesian",e),s.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};M.abs=function(e,t){return s.typeOf.object("cartesian",e),s.typeOf.object("result",t),t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var Tn=new M;M.lerp=function(e,t,n,o){return s.typeOf.object("start",e),s.typeOf.object("end",t),s.typeOf.number("t",n),s.typeOf.object("result",o),M.multiplyByScalar(t,n,Tn),o=M.multiplyByScalar(e,1-n,o),M.add(Tn,o,o)};var No=new M;M.mostOrthogonalAxis=function(e,t){s.typeOf.object("cartesian",e),s.typeOf.object("result",t);let n=M.normalize(e,No);return M.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=M.clone(M.UNIT_X,t):t=M.clone(M.UNIT_W,t):n.z<=n.w?t=M.clone(M.UNIT_Z,t):t=M.clone(M.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=M.clone(M.UNIT_Y,t):t=M.clone(M.UNIT_W,t):n.z<=n.w?t=M.clone(M.UNIT_Z,t):t=M.clone(M.UNIT_W,t),t};M.equals=function(e,t){return e===t||p(e)&&p(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};M.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};M.equalsEpsilon=function(e,t,n,o){return e===t||p(e)&&p(t)&&E.equalsEpsilon(e.x,t.x,n,o)&&E.equalsEpsilon(e.y,t.y,n,o)&&E.equalsEpsilon(e.z,t.z,n,o)&&E.equalsEpsilon(e.w,t.w,n,o)};M.ZERO=Object.freeze(new M(0,0,0,0));M.ONE=Object.freeze(new M(1,1,1,1));M.UNIT_X=Object.freeze(new M(1,0,0,0));M.UNIT_Y=Object.freeze(new M(0,1,0,0));M.UNIT_Z=Object.freeze(new M(0,0,1,0));M.UNIT_W=Object.freeze(new M(0,0,0,1));M.prototype.clone=function(e){return M.clone(this,e)};M.prototype.equals=function(e){return M.equals(this,e)};M.prototype.equalsEpsilon=function(e,t,n){return M.equalsEpsilon(this,e,t,n)};M.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Jt=new Float32Array(1),le=new Uint8Array(Jt.buffer),ko=new Uint32Array([287454020]),Fo=new Uint8Array(ko.buffer),vn=Fo[0]===68;M.packFloat=function(e,t){return s.typeOf.number("value",e),p(t)||(t=new M),Jt[0]=e,vn?(t.x=le[0],t.y=le[1],t.z=le[2],t.w=le[3]):(t.x=le[3],t.y=le[2],t.z=le[1],t.w=le[0]),t};M.unpackFloat=function(e){return s.typeOf.object("packedFloat",e),vn?(le[0]=e.x,le[1]=e.y,le[2]=e.z,le[3]=e.w):(le[0]=e.w,le[1]=e.z,le[2]=e.y,le[3]=e.x),Jt[0]};var qe=M;function S(e,t,n,o,i,r,a,u,d,m,l,w,T,v,P,j){this[0]=O(e,0),this[1]=O(i,0),this[2]=O(d,0),this[3]=O(T,0),this[4]=O(t,0),this[5]=O(r,0),this[6]=O(m,0),this[7]=O(v,0),this[8]=O(n,0),this[9]=O(a,0),this[10]=O(l,0),this[11]=O(P,0),this[12]=O(o,0),this[13]=O(u,0),this[14]=O(w,0),this[15]=O(j,0)}S.packedLength=16;S.pack=function(e,t,n){return s.typeOf.object("value",e),s.defined("array",t),n=O(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};S.unpack=function(e,t,n){return s.defined("array",e),t=O(t,0),p(n)||(n=new S),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};S.packArray=function(e,t){s.defined("array",e);let n=e.length,o=n*16;if(!p(t))t=new Array(o);else{if(!Array.isArray(t)&&t.length!==o)throw new A("If result is a typed array, it must have exactly array.length * 16 elements");t.length!==o&&(t.length=o)}for(let i=0;i<n;++i)S.pack(e[i],t,i*16);return t};S.unpackArray=function(e,t){if(s.defined("array",e),s.typeOf.number.greaterThanOrEquals("array.length",e.length,16),e.length%16!==0)throw new A("array length must be a multiple of 16.");let n=e.length;p(t)?t.length=n/16:t=new Array(n/16);for(let o=0;o<n;o+=16){let i=o/16;t[i]=S.unpack(e,o,t[i])}return t};S.clone=function(e,t){if(p(e))return p(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new S(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};S.fromArray=S.unpack;S.fromColumnMajorArray=function(e,t){return s.defined("values",e),S.clone(e,t)};S.fromRowMajorArray=function(e,t){return s.defined("values",e),p(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new S(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};S.fromRotationTranslation=function(e,t,n){return s.typeOf.object("rotation",e),t=O(t,_.ZERO),p(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new S(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};S.fromTranslationQuaternionRotationScale=function(e,t,n,o){s.typeOf.object("translation",e),s.typeOf.object("rotation",t),s.typeOf.object("scale",n),p(o)||(o=new S);let i=n.x,r=n.y,a=n.z,u=t.x*t.x,d=t.x*t.y,m=t.x*t.z,l=t.x*t.w,w=t.y*t.y,T=t.y*t.z,v=t.y*t.w,P=t.z*t.z,j=t.z*t.w,q=t.w*t.w,k=u-w-P+q,x=2*(d-j),F=2*(m+v),B=2*(d+j),Q=-u+w-P+q,H=2*(T-l),ee=2*(m-v),re=2*(T+l),Z=-u-w+P+q;return o[0]=k*i,o[1]=B*i,o[2]=ee*i,o[3]=0,o[4]=x*r,o[5]=Q*r,o[6]=re*r,o[7]=0,o[8]=F*a,o[9]=H*a,o[10]=Z*a,o[11]=0,o[12]=e.x,o[13]=e.y,o[14]=e.z,o[15]=1,o};S.fromTranslationRotationScale=function(e,t){return s.typeOf.object("translationRotationScale",e),S.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};S.fromTranslation=function(e,t){return s.typeOf.object("translation",e),S.fromRotationTranslation(W.IDENTITY,e,t)};S.fromScale=function(e,t){return s.typeOf.object("scale",e),p(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new S(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};S.fromUniformScale=function(e,t){return s.typeOf.number("scale",e),p(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new S(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};S.fromRotation=function(e,t){return s.typeOf.object("rotation",e),p(t)||(t=new S),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var Je=new _,Ge=new _,ut=new _;S.fromCamera=function(e,t){s.typeOf.object("camera",e);let n=e.position,o=e.direction,i=e.up;s.typeOf.object("camera.position",n),s.typeOf.object("camera.direction",o),s.typeOf.object("camera.up",i),_.normalize(o,Je),_.normalize(_.cross(Je,i,Ge),Ge),_.normalize(_.cross(Ge,Je,ut),ut);let r=Ge.x,a=Ge.y,u=Ge.z,d=Je.x,m=Je.y,l=Je.z,w=ut.x,T=ut.y,v=ut.z,P=n.x,j=n.y,q=n.z,k=r*-P+a*-j+u*-q,x=w*-P+T*-j+v*-q,F=d*P+m*j+l*q;return p(t)?(t[0]=r,t[1]=w,t[2]=-d,t[3]=0,t[4]=a,t[5]=T,t[6]=-m,t[7]=0,t[8]=u,t[9]=v,t[10]=-l,t[11]=0,t[12]=k,t[13]=x,t[14]=F,t[15]=1,t):new S(r,a,u,k,w,T,v,x,-d,-m,-l,F,0,0,0,1)};S.computePerspectiveFieldOfView=function(e,t,n,o,i){s.typeOf.number.greaterThan("fovY",e,0),s.typeOf.number.lessThan("fovY",e,Math.PI),s.typeOf.number.greaterThan("near",n,0),s.typeOf.number.greaterThan("far",o,0),s.typeOf.object("result",i);let a=1/Math.tan(e*.5),u=a/t,d=(o+n)/(n-o),m=2*o*n/(n-o);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=a,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=-1,i[12]=0,i[13]=0,i[14]=m,i[15]=0,i};S.computeOrthographicOffCenter=function(e,t,n,o,i,r,a){s.typeOf.number("left",e),s.typeOf.number("right",t),s.typeOf.number("bottom",n),s.typeOf.number("top",o),s.typeOf.number("near",i),s.typeOf.number("far",r),s.typeOf.object("result",a);let u=1/(t-e),d=1/(o-n),m=1/(r-i),l=-(t+e)*u,w=-(o+n)*d,T=-(r+i)*m;return u*=2,d*=2,m*=-2,a[0]=u,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=d,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=m,a[11]=0,a[12]=l,a[13]=w,a[14]=T,a[15]=1,a};S.computePerspectiveOffCenter=function(e,t,n,o,i,r,a){s.typeOf.number("left",e),s.typeOf.number("right",t),s.typeOf.number("bottom",n),s.typeOf.number("top",o),s.typeOf.number("near",i),s.typeOf.number("far",r),s.typeOf.object("result",a);let u=2*i/(t-e),d=2*i/(o-n),m=(t+e)/(t-e),l=(o+n)/(o-n),w=-(r+i)/(r-i),T=-1,v=-2*r*i/(r-i);return a[0]=u,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=d,a[6]=0,a[7]=0,a[8]=m,a[9]=l,a[10]=w,a[11]=T,a[12]=0,a[13]=0,a[14]=v,a[15]=0,a};S.computeInfinitePerspectiveOffCenter=function(e,t,n,o,i,r){s.typeOf.number("left",e),s.typeOf.number("right",t),s.typeOf.number("bottom",n),s.typeOf.number("top",o),s.typeOf.number("near",i),s.typeOf.object("result",r);let a=2*i/(t-e),u=2*i/(o-n),d=(t+e)/(t-e),m=(o+n)/(o-n),l=-1,w=-1,T=-2*i;return r[0]=a,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=u,r[6]=0,r[7]=0,r[8]=d,r[9]=m,r[10]=l,r[11]=w,r[12]=0,r[13]=0,r[14]=T,r[15]=0,r};S.computeViewportTransformation=function(e,t,n,o){p(o)||(o=new S),e=O(e,O.EMPTY_OBJECT);let i=O(e.x,0),r=O(e.y,0),a=O(e.width,0),u=O(e.height,0);t=O(t,0),n=O(n,1);let d=a*.5,m=u*.5,l=(n-t)*.5,w=d,T=m,v=l,P=i+d,j=r+m,q=t+l,k=1;return o[0]=w,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=T,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=v,o[11]=0,o[12]=P,o[13]=j,o[14]=q,o[15]=k,o};S.computeView=function(e,t,n,o,i){return s.typeOf.object("position",e),s.typeOf.object("direction",t),s.typeOf.object("up",n),s.typeOf.object("right",o),s.typeOf.object("result",i),i[0]=o.x,i[1]=n.x,i[2]=-t.x,i[3]=0,i[4]=o.y,i[5]=n.y,i[6]=-t.y,i[7]=0,i[8]=o.z,i[9]=n.z,i[10]=-t.z,i[11]=0,i[12]=-_.dot(o,e),i[13]=-_.dot(n,e),i[14]=_.dot(t,e),i[15]=1,i};S.toArray=function(e,t){return s.typeOf.object("matrix",e),p(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};S.getElementIndex=function(e,t){return s.typeOf.number.greaterThanOrEquals("row",t,0),s.typeOf.number.lessThanOrEquals("row",t,3),s.typeOf.number.greaterThanOrEquals("column",e,0),s.typeOf.number.lessThanOrEquals("column",e,3),e*4+t};S.getColumn=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,3),s.typeOf.object("result",n);let o=t*4,i=e[o],r=e[o+1],a=e[o+2],u=e[o+3];return n.x=i,n.y=r,n.z=a,n.w=u,n};S.setColumn=function(e,t,n,o){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,3),s.typeOf.object("cartesian",n),s.typeOf.object("result",o),o=S.clone(e,o);let i=t*4;return o[i]=n.x,o[i+1]=n.y,o[i+2]=n.z,o[i+3]=n.w,o};S.getRow=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,3),s.typeOf.object("result",n);let o=e[t],i=e[t+4],r=e[t+8],a=e[t+12];return n.x=o,n.y=i,n.z=r,n.w=a,n};S.setRow=function(e,t,n,o){return s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,3),s.typeOf.object("cartesian",n),s.typeOf.object("result",o),o=S.clone(e,o),o[t]=n.x,o[t+4]=n.y,o[t+8]=n.z,o[t+12]=n.w,o};S.setTranslation=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.object("translation",t),s.typeOf.object("result",n),n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var xo=new _;S.setScale=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("scale",t),s.typeOf.object("result",n);let o=S.getScale(e,xo),i=t.x/o.x,r=t.y/o.y,a=t.z/o.z;return n[0]=e[0]*i,n[1]=e[1]*i,n[2]=e[2]*i,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*a,n[9]=e[9]*a,n[10]=e[10]*a,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Lo=new _;S.setUniformScale=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number("scale",t),s.typeOf.object("result",n);let o=S.getScale(e,Lo),i=t/o.x,r=t/o.y,a=t/o.z;return n[0]=e[0]*i,n[1]=e[1]*i,n[2]=e[2]*i,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*a,n[9]=e[9]*a,n[10]=e[10]*a,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Gt=new _;S.getScale=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t.x=_.magnitude(_.fromElements(e[0],e[1],e[2],Gt)),t.y=_.magnitude(_.fromElements(e[4],e[5],e[6],Gt)),t.z=_.magnitude(_.fromElements(e[8],e[9],e[10],Gt)),t};var Cn=new _;S.getMaximumScale=function(e){return S.getScale(e,Cn),_.maximumComponent(Cn)};var Bo=new _;S.setRotation=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("result",n);let o=S.getScale(e,Bo);return n[0]=t[0]*o.x,n[1]=t[1]*o.x,n[2]=t[2]*o.x,n[3]=e[3],n[4]=t[3]*o.y,n[5]=t[4]*o.y,n[6]=t[5]*o.y,n[7]=e[7],n[8]=t[6]*o.z,n[9]=t[7]*o.z,n[10]=t[8]*o.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var Wo=new _;S.getRotation=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=S.getScale(e,Wo);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};S.multiply=function(e,t,n){s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n);let o=e[0],i=e[1],r=e[2],a=e[3],u=e[4],d=e[5],m=e[6],l=e[7],w=e[8],T=e[9],v=e[10],P=e[11],j=e[12],q=e[13],k=e[14],x=e[15],F=t[0],B=t[1],Q=t[2],H=t[3],ee=t[4],re=t[5],Z=t[6],oe=t[7],J=t[8],c=t[9],f=t[10],h=t[11],y=t[12],g=t[13],C=t[14],b=t[15],z=o*F+u*B+w*Q+j*H,N=i*F+d*B+T*Q+q*H,Y=r*F+m*B+v*Q+k*H,ie=a*F+l*B+P*Q+x*H,ae=o*ee+u*re+w*Z+j*oe,te=i*ee+d*re+T*Z+q*oe,ue=r*ee+m*re+v*Z+k*oe,de=a*ee+l*re+P*Z+x*oe,ye=o*J+u*c+w*f+j*h,me=i*J+d*c+T*f+q*h,he=r*J+m*c+v*f+k*h,X=a*J+l*c+P*f+x*h,_e=o*y+u*g+w*C+j*b,Te=i*y+d*g+T*C+q*b,je=r*y+m*g+v*C+k*b,at=a*y+l*g+P*C+x*b;return n[0]=z,n[1]=N,n[2]=Y,n[3]=ie,n[4]=ae,n[5]=te,n[6]=ue,n[7]=de,n[8]=ye,n[9]=me,n[10]=he,n[11]=X,n[12]=_e,n[13]=Te,n[14]=je,n[15]=at,n};S.add=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};S.subtract=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};S.multiplyTransformation=function(e,t,n){s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n);let o=e[0],i=e[1],r=e[2],a=e[4],u=e[5],d=e[6],m=e[8],l=e[9],w=e[10],T=e[12],v=e[13],P=e[14],j=t[0],q=t[1],k=t[2],x=t[4],F=t[5],B=t[6],Q=t[8],H=t[9],ee=t[10],re=t[12],Z=t[13],oe=t[14],J=o*j+a*q+m*k,c=i*j+u*q+l*k,f=r*j+d*q+w*k,h=o*x+a*F+m*B,y=i*x+u*F+l*B,g=r*x+d*F+w*B,C=o*Q+a*H+m*ee,b=i*Q+u*H+l*ee,z=r*Q+d*H+w*ee,N=o*re+a*Z+m*oe+T,Y=i*re+u*Z+l*oe+v,ie=r*re+d*Z+w*oe+P;return n[0]=J,n[1]=c,n[2]=f,n[3]=0,n[4]=h,n[5]=y,n[6]=g,n[7]=0,n[8]=C,n[9]=b,n[10]=z,n[11]=0,n[12]=N,n[13]=Y,n[14]=ie,n[15]=1,n};S.multiplyByMatrix3=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("rotation",t),s.typeOf.object("result",n);let o=e[0],i=e[1],r=e[2],a=e[4],u=e[5],d=e[6],m=e[8],l=e[9],w=e[10],T=t[0],v=t[1],P=t[2],j=t[3],q=t[4],k=t[5],x=t[6],F=t[7],B=t[8],Q=o*T+a*v+m*P,H=i*T+u*v+l*P,ee=r*T+d*v+w*P,re=o*j+a*q+m*k,Z=i*j+u*q+l*k,oe=r*j+d*q+w*k,J=o*x+a*F+m*B,c=i*x+u*F+l*B,f=r*x+d*F+w*B;return n[0]=Q,n[1]=H,n[2]=ee,n[3]=0,n[4]=re,n[5]=Z,n[6]=oe,n[7]=0,n[8]=J,n[9]=c,n[10]=f,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};S.multiplyByTranslation=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("translation",t),s.typeOf.object("result",n);let o=t.x,i=t.y,r=t.z,a=o*e[0]+i*e[4]+r*e[8]+e[12],u=o*e[1]+i*e[5]+r*e[9]+e[13],d=o*e[2]+i*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=a,n[13]=u,n[14]=d,n[15]=e[15],n};S.multiplyByScale=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("scale",t),s.typeOf.object("result",n);let o=t.x,i=t.y,r=t.z;return o===1&&i===1&&r===1?S.clone(e,n):(n[0]=o*e[0],n[1]=o*e[1],n[2]=o*e[2],n[3]=e[3],n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};S.multiplyByUniformScale=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.number("scale",t),s.typeOf.object("result",n),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};S.multiplyByVector=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("cartesian",t),s.typeOf.object("result",n);let o=t.x,i=t.y,r=t.z,a=t.w,u=e[0]*o+e[4]*i+e[8]*r+e[12]*a,d=e[1]*o+e[5]*i+e[9]*r+e[13]*a,m=e[2]*o+e[6]*i+e[10]*r+e[14]*a,l=e[3]*o+e[7]*i+e[11]*r+e[15]*a;return n.x=u,n.y=d,n.z=m,n.w=l,n};S.multiplyByPointAsVector=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("cartesian",t),s.typeOf.object("result",n);let o=t.x,i=t.y,r=t.z,a=e[0]*o+e[4]*i+e[8]*r,u=e[1]*o+e[5]*i+e[9]*r,d=e[2]*o+e[6]*i+e[10]*r;return n.x=a,n.y=u,n.z=d,n};S.multiplyByPoint=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("cartesian",t),s.typeOf.object("result",n);let o=t.x,i=t.y,r=t.z,a=e[0]*o+e[4]*i+e[8]*r+e[12],u=e[1]*o+e[5]*i+e[9]*r+e[13],d=e[2]*o+e[6]*i+e[10]*r+e[14];return n.x=a,n.y=u,n.z=d,n};S.multiplyByScalar=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};S.negate=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};S.transpose=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=e[1],o=e[2],i=e[3],r=e[6],a=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=o,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=a,t[14]=u,t[15]=e[15],t};S.abs=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};S.equals=function(e,t){return e===t||p(e)&&p(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};S.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||p(e)&&p(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};S.getTranslation=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t.x=e[12],t.y=e[13],t.z=e[14],t};S.getMatrix3=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var Qo=new W,Ho=new W,$o=new qe,Vo=new qe(0,0,0,1);S.inverse=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=e[0],o=e[4],i=e[8],r=e[12],a=e[1],u=e[5],d=e[9],m=e[13],l=e[2],w=e[6],T=e[10],v=e[14],P=e[3],j=e[7],q=e[11],k=e[15],x=T*k,F=v*q,B=w*k,Q=v*j,H=w*q,ee=T*j,re=l*k,Z=v*P,oe=l*q,J=T*P,c=l*j,f=w*P,h=x*u+Q*d+H*m-(F*u+B*d+ee*m),y=F*a+re*d+J*m-(x*a+Z*d+oe*m),g=B*a+Z*u+c*m-(Q*a+re*u+f*m),C=ee*a+oe*u+f*d-(H*a+J*u+c*d),b=F*o+B*i+ee*r-(x*o+Q*i+H*r),z=x*n+Z*i+oe*r-(F*n+re*i+J*r),N=Q*n+re*o+f*r-(B*n+Z*o+c*r),Y=H*n+J*o+c*i-(ee*n+oe*o+f*i);x=i*m,F=r*d,B=o*m,Q=r*u,H=o*d,ee=i*u,re=n*m,Z=r*a,oe=n*d,J=i*a,c=n*u,f=o*a;let ie=x*j+Q*q+H*k-(F*j+B*q+ee*k),ae=F*P+re*q+J*k-(x*P+Z*q+oe*k),te=B*P+Z*j+c*k-(Q*P+re*j+f*k),ue=ee*P+oe*j+f*q-(H*P+J*j+c*q),de=B*T+ee*v+F*w-(H*v+x*w+Q*T),ye=oe*v+x*l+Z*T-(re*T+J*v+F*l),me=re*w+f*v+Q*l-(c*v+B*l+Z*w),he=c*T+H*l+J*w-(oe*w+f*T+ee*l),X=n*h+o*y+i*g+r*C;if(Math.abs(X)<E.EPSILON21){if(W.equalsEpsilon(S.getMatrix3(e,Qo),Ho,E.EPSILON7)&&qe.equals(S.getRow(e,3,$o),Vo))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new Se("matrix is not invertible because its determinate is zero.")}return X=1/X,t[0]=h*X,t[1]=y*X,t[2]=g*X,t[3]=C*X,t[4]=b*X,t[5]=z*X,t[6]=N*X,t[7]=Y*X,t[8]=ie*X,t[9]=ae*X,t[10]=te*X,t[11]=ue*X,t[12]=de*X,t[13]=ye*X,t[14]=me*X,t[15]=he*X,t};S.inverseTransformation=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=e[0],o=e[1],i=e[2],r=e[4],a=e[5],u=e[6],d=e[8],m=e[9],l=e[10],w=e[12],T=e[13],v=e[14],P=-n*w-o*T-i*v,j=-r*w-a*T-u*v,q=-d*w-m*T-l*v;return t[0]=n,t[1]=r,t[2]=d,t[3]=0,t[4]=o,t[5]=a,t[6]=m,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=P,t[13]=j,t[14]=q,t[15]=1,t};var Yo=new S;S.inverseTranspose=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),S.inverse(S.transpose(e,Yo),t)};S.IDENTITY=Object.freeze(new S(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));S.ZERO=Object.freeze(new S(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));S.COLUMN0ROW0=0;S.COLUMN0ROW1=1;S.COLUMN0ROW2=2;S.COLUMN0ROW3=3;S.COLUMN1ROW0=4;S.COLUMN1ROW1=5;S.COLUMN1ROW2=6;S.COLUMN1ROW3=7;S.COLUMN2ROW0=8;S.COLUMN2ROW1=9;S.COLUMN2ROW2=10;S.COLUMN2ROW3=11;S.COLUMN3ROW0=12;S.COLUMN3ROW1=13;S.COLUMN3ROW2=14;S.COLUMN3ROW3=15;Object.defineProperties(S.prototype,{length:{get:function(){return S.packedLength}}});S.prototype.clone=function(e){return S.clone(this,e)};S.prototype.equals=function(e){return S.equals(this,e)};S.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};S.prototype.equalsEpsilon=function(e,t){return S.equalsEpsilon(this,e,t)};S.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var G=S;function An(e,t,n){n=O(n,!1);let o={},i=p(e),r=p(t),a,u,d;if(i)for(a in e)e.hasOwnProperty(a)&&(u=e[a],r&&n&&typeof u=="object"&&t.hasOwnProperty(a)?(d=t[a],typeof d=="object"?o[a]=An(u,d,n):o[a]=u):o[a]=u);if(r)for(a in t)t.hasOwnProperty(a)&&!o.hasOwnProperty(a)&&(d=t[a],o[a]=d);return o}var De=An;function Xo(e,t,n){s.defined("array",e),s.defined("itemToFind",t),s.defined("comparator",n);let o=0,i=e.length-1,r,a;for(;o<=i;){if(r=~~((o+i)/2),a=n(e[r],t),a<0){o=r+1;continue}if(a>0){i=r-1;continue}return r}return~(i+1)}var Be=Xo;function Zo(e,t,n,o,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=o,this.ut1MinusUtc=i}var pt=Zo;function Jo(e){if(e===null||isNaN(e))throw new A("year is required and must be a number.");return e%4===0&&e%100!==0||e%400===0}var ht=Jo;var jn=[31,28,31,30,31,30,31,31,30,31,30,31];function Go(e,t,n,o,i,r,a,u){e=O(e,1),t=O(t,1),n=O(n,1),o=O(o,0),i=O(i,0),r=O(r,0),a=O(a,0),u=O(u,!1),j(),q(),this.year=e,this.month=t,this.day=n,this.hour=o,this.minute=i,this.second=r,this.millisecond=a,this.isLeapSecond=u;function j(){s.typeOf.number.greaterThanOrEquals("Year",e,1),s.typeOf.number.lessThanOrEquals("Year",e,9999),s.typeOf.number.greaterThanOrEquals("Month",t,1),s.typeOf.number.lessThanOrEquals("Month",t,12),s.typeOf.number.greaterThanOrEquals("Day",n,1),s.typeOf.number.lessThanOrEquals("Day",n,31),s.typeOf.number.greaterThanOrEquals("Hour",o,0),s.typeOf.number.lessThanOrEquals("Hour",o,23),s.typeOf.number.greaterThanOrEquals("Minute",i,0),s.typeOf.number.lessThanOrEquals("Minute",i,59),s.typeOf.bool("IsLeapSecond",u),s.typeOf.number.greaterThanOrEquals("Second",r,0),s.typeOf.number.lessThanOrEquals("Second",r,u?60:59),s.typeOf.number.greaterThanOrEquals("Millisecond",a,0),s.typeOf.number.lessThan("Millisecond",a,1e3)}function q(){let k=t===2&&ht(e)?jn[t-1]+1:jn[t-1];if(n>k)throw new A("Month and Day represents invalid date")}}var Tt=Go;function Ko(e,t){this.julianDate=e,this.offset=t}var ne=Ko;var er={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},ce=Object.freeze(er);var tr={UTC:0,TAI:1},$=Object.freeze(tr);var Pn=new Tt,vt=[31,28,31,30,31,30,31,31,30,31,30,31],Ct=29;function Kt(e,t){return I.compare(e.julianDate,t.julianDate)}var Ke=new ne;function jt(e){Ke.julianDate=e;let t=I.leapSeconds,n=Be(t,Ke,Kt);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let o=t[n].offset;n>0&&I.secondsDifference(t[n].julianDate,e)>o&&(n--,o=t[n].offset),I.addSeconds(e,o,e)}function Mn(e,t){Ke.julianDate=e;let n=I.leapSeconds,o=Be(n,Ke,Kt);if(o<0&&(o=~o),o===0)return I.addSeconds(e,-n[0].offset,t);if(o>=n.length)return I.addSeconds(e,-n[o-1].offset,t);let i=I.secondsDifference(n[o].julianDate,e);if(i===0)return I.addSeconds(e,-n[o].offset,t);if(!(i<=1))return I.addSeconds(e,-n[--o].offset,t)}function Ne(e,t,n){let o=t/ce.SECONDS_PER_DAY|0;return e+=o,t-=ce.SECONDS_PER_DAY*o,t<0&&(e--,t+=ce.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function en(e,t,n,o,i,r,a){let u=(t-14)/12|0,d=e+4800+u,m=(1461*d/4|0)+(367*(t-2-12*u)/12|0)-(3*((d+100)/100|0)/4|0)+n-32075;o=o-12,o<0&&(o+=24);let l=r+(o*ce.SECONDS_PER_HOUR+i*ce.SECONDS_PER_MINUTE+a*ce.SECONDS_PER_MILLISECOND);return l>=43200&&(m-=1),[m,l]}var nr=/^(\d{4})$/,or=/^(\d{4})-(\d{2})$/,rr=/^(\d{4})-?(\d{3})$/,ir=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,cr=/^(\d{4})-?(\d{2})-?(\d{2})$/,tn=/([Z+\-])?(\d{2})?:?(\d{2})?$/,sr=/^(\d{2})(\.\d+)?/.source+tn.source,ar=/^(\d{2}):?(\d{2})(\.\d+)?/.source+tn.source,fr=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+tn.source,Re="Invalid ISO 8601 date.";function I(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=O(e,0),t=O(t,0),n=O(n,$.UTC);let o=e|0;t=t+(e-o)*ce.SECONDS_PER_DAY,Ne(o,t,this),n===$.UTC&&jt(this)}I.fromGregorianDate=function(e,t){if(!(e instanceof Tt))throw new A("date must be a valid GregorianDate.");let n=en(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return p(t)?(Ne(n[0],n[1],t),jt(t),t):new I(n[0],n[1],$.UTC)};I.fromDate=function(e,t){if(!(e instanceof Date)||isNaN(e.getTime()))throw new A("date must be a valid JavaScript Date.");let n=en(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return p(t)?(Ne(n[0],n[1],t),jt(t),t):new I(n[0],n[1],$.UTC)};I.fromIso8601=function(e,t){if(typeof e!="string")throw new A(Re);e=e.replace(",",".");let n=e.split("T"),o,i=1,r=1,a=0,u=0,d=0,m=0,l=n[0],w=n[1],T,v;if(!p(l))throw new A(Re);let P;if(n=l.match(cr),n!==null){if(P=l.split("-").length-1,P>0&&P!==2)throw new A(Re);o=+n[1],i=+n[2],r=+n[3]}else if(n=l.match(or),n!==null)o=+n[1],i=+n[2];else if(n=l.match(nr),n!==null)o=+n[1];else{let x;if(n=l.match(rr),n!==null){if(o=+n[1],x=+n[2],v=ht(o),x<1||v&&x>366||!v&&x>365)throw new A(Re)}else if(n=l.match(ir),n!==null){o=+n[1];let F=+n[2],B=+n[3]||0;if(P=l.split("-").length-1,P>0&&(!p(n[3])&&P!==1||p(n[3])&&P!==2))throw new A(Re);let Q=new Date(Date.UTC(o,0,4));x=F*7+B-Q.getUTCDay()-3}else throw new A(Re);T=new Date(Date.UTC(o,0,1)),T.setUTCDate(x),i=T.getUTCMonth()+1,r=T.getUTCDate()}if(v=ht(o),i<1||i>12||r<1||(i!==2||!v)&&r>vt[i-1]||v&&i===2&&r>Ct)throw new A(Re);let j;if(p(w)){if(n=w.match(fr),n!==null){if(P=w.split(":").length-1,P>0&&P!==2&&P!==3)throw new A(Re);a=+n[1],u=+n[2],d=+n[3],m=+(n[4]||0)*1e3,j=5}else if(n=w.match(ar),n!==null){if(P=w.split(":").length-1,P>2)throw new A(Re);a=+n[1],u=+n[2],d=+(n[3]||0)*60,j=4}else if(n=w.match(sr),n!==null)a=+n[1],u=+(n[2]||0)*60,j=3;else throw new A(Re);if(u>=60||d>=61||a>24||a===24&&(u>0||d>0||m>0))throw new A(Re);let x=n[j],F=+n[j+1],B=+(n[j+2]||0);switch(x){case"+":a=a-F,u=u-B;break;case"-":a=a+F,u=u+B;break;case"Z":break;default:u=u+new Date(Date.UTC(o,i-1,r,a,u)).getTimezoneOffset();break}}let q=d===60;for(q&&d--;u>=60;)u-=60,a++;for(;a>=24;)a-=24,r++;for(T=v&&i===2?Ct:vt[i-1];r>T;)r-=T,i++,i>12&&(i-=12,o++),T=v&&i===2?Ct:vt[i-1];for(;u<0;)u+=60,a--;for(;a<0;)a+=24,r--;for(;r<1;)i--,i<1&&(i+=12,o--),T=v&&i===2?Ct:vt[i-1],r+=T;let k=en(o,i,r,a,u,d,m);return p(t)?(Ne(k[0],k[1],t),jt(t)):t=new I(k[0],k[1],$.UTC),q&&I.addSeconds(t,1,t),t};I.now=function(e){return I.fromDate(new Date,e)};var At=new I(0,0,$.TAI);I.toGregorianDate=function(e,t){if(!p(e))throw new A("julianDate is required.");let n=!1,o=Mn(e,At);p(o)||(I.addSeconds(e,-1,At),o=Mn(At,At),n=!0);let i=o.dayNumber,r=o.secondsOfDay;r>=43200&&(i+=1);let a=i+68569|0,u=4*a/146097|0;a=a-((146097*u+3)/4|0)|0;let d=4e3*(a+1)/1461001|0;a=a-(1461*d/4|0)+31|0;let m=80*a/2447|0,l=a-(2447*m/80|0)|0;a=m/11|0;let w=m+2-12*a|0,T=100*(u-49)+d+a|0,v=r/ce.SECONDS_PER_HOUR|0,P=r-v*ce.SECONDS_PER_HOUR,j=P/ce.SECONDS_PER_MINUTE|0;P=P-j*ce.SECONDS_PER_MINUTE;let q=P|0,k=(P-q)/ce.SECONDS_PER_MILLISECOND;return v+=12,v>23&&(v-=24),n&&(q+=1),p(t)?(t.year=T,t.month=w,t.day=l,t.hour=v,t.minute=j,t.second=q,t.millisecond=k,t.isLeapSecond=n,t):new Tt(T,w,l,v,j,q,k,n)};I.toDate=function(e){if(!p(e))throw new A("julianDate is required.");let t=I.toGregorianDate(e,Pn),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};I.toIso8601=function(e,t){if(!p(e))throw new A("julianDate is required.");let n=I.toGregorianDate(e,Pn),o=n.year,i=n.month,r=n.day,a=n.hour,u=n.minute,d=n.second,m=n.millisecond;o===1e4&&i===1&&r===1&&a===0&&u===0&&d===0&&m===0&&(o=9999,i=12,r=31,a=24);let l;return!p(t)&&m!==0?(l=(m*.01).toString().replace(".",""),`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}.${l}Z`):!p(t)||t===0?`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}Z`:(l=(m*.01).toFixed(t).replace(".","").slice(0,t),`${o.toString().padStart(4,"0")}-${i.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${a.toString().padStart(2,"0")}:${u.toString().padStart(2,"0")}:${d.toString().padStart(2,"0")}.${l}Z`)};I.clone=function(e,t){if(p(e))return p(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new I(e.dayNumber,e.secondsOfDay,$.TAI)};I.compare=function(e,t){if(!p(e))throw new A("left is required.");if(!p(t))throw new A("right is required.");let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};I.equals=function(e,t){return e===t||p(e)&&p(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};I.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||p(e)&&p(t)&&Math.abs(I.secondsDifference(e,t))<=n};I.totalDays=function(e){if(!p(e))throw new A("julianDate is required.");return e.dayNumber+e.secondsOfDay/ce.SECONDS_PER_DAY};I.secondsDifference=function(e,t){if(!p(e))throw new A("left is required.");if(!p(t))throw new A("right is required.");return(e.dayNumber-t.dayNumber)*ce.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};I.daysDifference=function(e,t){if(!p(e))throw new A("left is required.");if(!p(t))throw new A("right is required.");let n=e.dayNumber-t.dayNumber,o=(e.secondsOfDay-t.secondsOfDay)/ce.SECONDS_PER_DAY;return n+o};I.computeTaiMinusUtc=function(e){Ke.julianDate=e;let t=I.leapSeconds,n=Be(t,Ke,Kt);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};I.addSeconds=function(e,t,n){if(!p(e))throw new A("julianDate is required.");if(!p(t))throw new A("seconds is required.");if(!p(n))throw new A("result is required.");return Ne(e.dayNumber,e.secondsOfDay+t,n)};I.addMinutes=function(e,t,n){if(!p(e))throw new A("julianDate is required.");if(!p(t))throw new A("minutes is required.");if(!p(n))throw new A("result is required.");let o=e.secondsOfDay+t*ce.SECONDS_PER_MINUTE;return Ne(e.dayNumber,o,n)};I.addHours=function(e,t,n){if(!p(e))throw new A("julianDate is required.");if(!p(t))throw new A("hours is required.");if(!p(n))throw new A("result is required.");let o=e.secondsOfDay+t*ce.SECONDS_PER_HOUR;return Ne(e.dayNumber,o,n)};I.addDays=function(e,t,n){if(!p(e))throw new A("julianDate is required.");if(!p(t))throw new A("days is required.");if(!p(n))throw new A("result is required.");let o=e.dayNumber+t;return Ne(o,e.secondsOfDay,n)};I.lessThan=function(e,t){return I.compare(e,t)<0};I.lessThanOrEquals=function(e,t){return I.compare(e,t)<=0};I.greaterThan=function(e,t){return I.compare(e,t)>0};I.greaterThanOrEquals=function(e,t){return I.compare(e,t)>=0};I.prototype.clone=function(e){return I.clone(this,e)};I.prototype.equals=function(e){return I.equals(this,e)};I.prototype.equalsEpsilon=function(e,t){return I.equalsEpsilon(this,e,t)};I.prototype.toString=function(){return I.toIso8601(this)};I.leapSeconds=[new ne(new I(2441317,43210,$.TAI),10),new ne(new I(2441499,43211,$.TAI),11),new ne(new I(2441683,43212,$.TAI),12),new ne(new I(2442048,43213,$.TAI),13),new ne(new I(2442413,43214,$.TAI),14),new ne(new I(2442778,43215,$.TAI),15),new ne(new I(2443144,43216,$.TAI),16),new ne(new I(2443509,43217,$.TAI),17),new ne(new I(2443874,43218,$.TAI),18),new ne(new I(2444239,43219,$.TAI),19),new ne(new I(2444786,43220,$.TAI),20),new ne(new I(2445151,43221,$.TAI),21),new ne(new I(2445516,43222,$.TAI),22),new ne(new I(2446247,43223,$.TAI),23),new ne(new I(2447161,43224,$.TAI),24),new ne(new I(2447892,43225,$.TAI),25),new ne(new I(2448257,43226,$.TAI),26),new ne(new I(2448804,43227,$.TAI),27),new ne(new I(2449169,43228,$.TAI),28),new ne(new I(2449534,43229,$.TAI),29),new ne(new I(2450083,43230,$.TAI),30),new ne(new I(2450630,43231,$.TAI),31),new ne(new I(2451179,43232,$.TAI),32),new ne(new I(2453736,43233,$.TAI),33),new ne(new I(2454832,43234,$.TAI),34),new ne(new I(2456109,43235,$.TAI),35),new ne(new I(2457204,43236,$.TAI),36),new ne(new I(2457754,43237,$.TAI),37)];var pe=I;var so=Ze(We(),1);function ur(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var kn=ur;function Fn(e,t){if(e===null||typeof e!="object")return e;t=O(t,!1);let n=new e.constructor;for(let o in e)if(e.hasOwnProperty(o)){let i=e[o];t&&(i=Fn(i,t)),n[o]=i}return n}var nt=Fn;function pr(){let e,t,n=new Promise(function(o,i){e=o,t=i});return{resolve:e,reject:t,promise:n}}var Qe=pr;var xn=Ze(We(),1);function nn(e,t){let n;return typeof document<"u"&&(n=document),nn._implementation(e,t,n)}nn._implementation=function(e,t,n){if(!p(e))throw new A("relative uri is required.");if(!p(t)){if(typeof n>"u")return e;t=O(n.baseURI,n.location.href)}let o=new xn.default(e);return o.scheme()!==""?o.toString():o.absoluteTo(t).toString()};var dt=nn;var Ln=Ze(We(),1);function hr(e,t){if(!p(e))throw new A("uri is required.");let n="",o=e.lastIndexOf("/");return o!==-1&&(n=e.substring(0,o+1)),t&&(e=new Ln.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var Bn=hr;var Wn=Ze(We(),1);function dr(e){if(!p(e))throw new A("uri is required.");let t=new Wn.default(e);t.normalize();let n=t.path(),o=n.lastIndexOf("/");return o!==-1&&(n=n.substr(o+1)),o=n.lastIndexOf("."),o===-1?n="":n=n.substr(o+1),n}var Qn=dr;var Hn={};function mr(e,t,n){p(t)||(t=e.width),p(n)||(n=e.height);let o=Hn[t];p(o)||(o={},Hn[t]=o);let i=o[n];if(!p(i)){let r=document.createElement("canvas");r.width=t,r.height=n,i=r.getContext("2d",{willReadFrequently:!0}),i.globalCompositeOperation="copy",o[n]=i}return i.drawImage(e,0,0,t,n),i.getImageData(0,0,t,n).data}var on=mr;var yr=/^blob:/i;function lr(e){return s.typeOf.string("uri",e),yr.test(e)}var It=lr;var ve;function wr(e){p(ve)||(ve=document.createElement("a")),ve.href=window.location.href;let t=ve.host,n=ve.protocol;return ve.href=e,ve.href=ve.href,n!==ve.protocol||t!==ve.host}var $n=wr;var br=/^data:/i;function Or(e){return s.typeOf.string("uri",e),br.test(e)}var zt=Or;function gr(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,o)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let i=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,i.removeChild(t),n()},t.onerror=function(r){o(r)},i.appendChild(t)})}var Vn=gr;function _r(e){if(!p(e))throw new A("obj is required.");let t="";for(let n in e)if(e.hasOwnProperty(n)){let o=e[n],i=`${encodeURIComponent(n)}=`;if(Array.isArray(o))for(let r=0,a=o.length;r<a;++r)t+=`${i+encodeURIComponent(o[r])}&`;else t+=`${i+encodeURIComponent(o)}&`}return t=t.slice(0,-1),t}var Yn=_r;function Sr(e){if(!p(e))throw new A("queryString is required.");let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let o=0,i=n.length;o<i;++o){let r=n[o].split("="),a=decodeURIComponent(r[0]),u=r[1];p(u)?u=decodeURIComponent(u):u="";let d=t[a];typeof d=="string"?t[a]=[d,u]:Array.isArray(d)?d.push(u):t[a]=u}return t}var Xn=Sr;var Rr={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},fe=Object.freeze(Rr);var Er={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},Zn=Object.freeze(Er);function qt(e){e=O(e,O.EMPTY_OBJECT);let t=O(e.throttleByServer,!1),n=O(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=O(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=O(e.type,Zn.OTHER),this.serverKey=e.serverKey,this.state=fe.UNISSUED,this.deferred=void 0,this.cancelled=!1}qt.prototype.cancel=function(){this.cancelled=!0};qt.prototype.clone=function(e){return p(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=fe.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new qt(this)};var Jn=qt;function Tr(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let o=0;o<n.length;++o){let i=n[o],r=i.indexOf(": ");if(r>0){let a=i.substring(0,r),u=i.substring(r+2);t[a]=u}}return t}var Gn=Tr;function Kn(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Gn(this.responseHeaders))}Kn.prototype.toString=function(){let e="Request has failed.";return p(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var mt=Kn;var Dt=Ze(We(),1);function yt(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(yt.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});yt.prototype.addEventListener=function(e,t){s.typeOf.func("listener",e),this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};yt.prototype.removeEventListener=function(e,t){s.typeOf.func("listener",e);let n=this._listeners,o=this._scopes,i=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&o[r]===t){i=r;break}return i!==-1?(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,o[i]=void 0):(n.splice(i,1),o.splice(i,1)),!0):!1};function vr(e,t){return t-e}yt.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,o=t.length;for(e=0;e<o;e++){let r=t[e];p(r)&&t[e].apply(n[e],arguments)}let i=this._toRemove;if(o=i.length,o>0){for(i.sort(vr),e=0;e<o;e++){let r=i[e];t.splice(r,1),n.splice(r,1)}i.length=0}this._insideRaiseEvent=!1};var eo=yt;function He(e){s.typeOf.object("options",e),s.defined("options.comparator",e.comparator),this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(He.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){s.typeOf.number.greaterThanOrEquals("maximumLength",e,0);let t=this._length;if(e<t){let n=this._array;for(let o=e;o<t;++o)n[o]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function rn(e,t,n){let o=e[t];e[t]=e[n],e[n]=o}He.prototype.reserve=function(e){e=O(e,this._length),this._array.length=e};He.prototype.heapify=function(e){e=O(e,0);let t=this._length,n=this._comparator,o=this._array,i=-1,r=!0;for(;r;){let a=2*(e+1),u=a-1;u<t&&n(o[u],o[e])<0?i=u:i=e,a<t&&n(o[a],o[i])<0&&(i=a),i!==e?(rn(o,i,e),e=i):r=!1}};He.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};He.prototype.insert=function(e){s.defined("element",e);let t=this._array,n=this._comparator,o=this._maximumLength,i=this._length++;for(i<t.length?t[i]=e:t.push(e);i!==0;){let a=Math.floor((i-1)/2);if(n(t[i],t[a])<0)rn(t,i,a),i=a;else break}let r;return p(o)&&this._length>o&&(r=t[o],this._length=o),r};He.prototype.pop=function(e){if(e=O(e,0),this._length===0)return;s.typeOf.number.lessThan("index",e,this._length);let t=this._array,n=t[e];return rn(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var to=He;function Cr(e,t){return e.priority-t.priority}var K={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},ot=20,we=new to({comparator:Cr});we.maximumLength=ot;we.reserve(ot);var Ce=[],Pe={},Ar=typeof document<"u"?new Dt.default(document.location.href):new Dt.default,Nt=new eo;function se(){}se.maximumRequests=50;se.maximumRequestsPerServer=18;se.requestsByServer={};se.throttleRequests=!0;se.debugShowStatistics=!1;se.requestCompletedEvent=Nt;Object.defineProperties(se,{statistics:{get:function(){return K}},priorityHeapLength:{get:function(){return ot},set:function(e){if(e<ot)for(;we.length>e;){let t=we.pop();$e(t)}ot=e,we.maximumLength=e,we.reserve(e)}}});function no(e){p(e.priorityFunction)&&(e.priority=e.priorityFunction())}se.serverHasOpenSlots=function(e,t){t=O(t,1);let n=O(se.requestsByServer[e],se.maximumRequestsPerServer);return Pe[e]+t<=n};se.heapHasOpenSlots=function(e){return we.length+e<=ot};function oo(e){return e.state===fe.UNISSUED&&(e.state=fe.ISSUED,e.deferred=Qe()),e.deferred.promise}function jr(e){return function(t){if(e.state===fe.CANCELLED)return;let n=e.deferred;--K.numberOfActiveRequests,--Pe[e.serverKey],Nt.raiseEvent(),e.state=fe.RECEIVED,e.deferred=void 0,n.resolve(t)}}function Mr(e){return function(t){e.state!==fe.CANCELLED&&(++K.numberOfFailedRequests,--K.numberOfActiveRequests,--Pe[e.serverKey],Nt.raiseEvent(t),e.state=fe.FAILED,e.deferred.reject(t))}}function ro(e){let t=oo(e);return e.state=fe.ACTIVE,Ce.push(e),++K.numberOfActiveRequests,++K.numberOfActiveRequestsEver,++Pe[e.serverKey],e.requestFunction().then(jr(e)).catch(Mr(e)),t}function $e(e){let t=e.state===fe.ACTIVE;if(e.state=fe.CANCELLED,++K.numberOfCancelledRequests,p(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--K.numberOfActiveRequests,--Pe[e.serverKey],++K.numberOfCancelledActiveRequests),p(e.cancelFunction)&&e.cancelFunction()}se.update=function(){let e,t,n=0,o=Ce.length;for(e=0;e<o;++e){if(t=Ce[e],t.cancelled&&$e(t),t.state!==fe.ACTIVE){++n;continue}n>0&&(Ce[e-n]=t)}Ce.length-=n;let i=we.internalArray,r=we.length;for(e=0;e<r;++e)no(i[e]);we.resort();let a=Math.max(se.maximumRequests-Ce.length,0),u=0;for(;u<a&&we.length>0;){if(t=we.pop(),t.cancelled){$e(t);continue}if(t.throttleByServer&&!se.serverHasOpenSlots(t.serverKey)){$e(t);continue}ro(t),++u}Pr()};se.getServerKey=function(e){s.typeOf.string("url",e);let t=new Dt.default(e);t.scheme()===""&&(t=t.absoluteTo(Ar),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let o=Pe[n];return p(o)||(Pe[n]=0),n};se.request=function(e){if(s.typeOf.object("request",e),s.typeOf.string("request.url",e.url),s.typeOf.func("request.requestFunction",e.requestFunction),zt(e.url)||It(e.url))return Nt.raiseEvent(),e.state=fe.RECEIVED,e.requestFunction();if(++K.numberOfAttemptedRequests,p(e.serverKey)||(e.serverKey=se.getServerKey(e.url)),se.throttleRequests&&e.throttleByServer&&!se.serverHasOpenSlots(e.serverKey))return;if(!se.throttleRequests||!e.throttle)return ro(e);if(Ce.length>=se.maximumRequests)return;no(e);let t=we.insert(e);if(p(t)){if(t===e)return;$e(t)}return oo(e)};function Pr(){se.debugShowStatistics&&(K.numberOfActiveRequests===0&&K.lastNumberOfActiveRequests>0&&(K.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${K.numberOfAttemptedRequests}`),K.numberOfAttemptedRequests=0),K.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${K.numberOfCancelledRequests}`),K.numberOfCancelledRequests=0),K.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${K.numberOfCancelledActiveRequests}`),K.numberOfCancelledActiveRequests=0),K.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${K.numberOfFailedRequests}`),K.numberOfFailedRequests=0)),K.lastNumberOfActiveRequests=K.numberOfActiveRequests)}se.clearForSpecs=function(){for(;we.length>0;){let t=we.pop();$e(t)}let e=Ce.length;for(let t=0;t<e;++t)$e(Ce[t]);Ce.length=0,Pe={},K.numberOfAttemptedRequests=0,K.numberOfActiveRequests=0,K.numberOfCancelledRequests=0,K.numberOfCancelledActiveRequests=0,K.numberOfFailedRequests=0,K.numberOfActiveRequestsEver=0,K.lastNumberOfActiveRequests=0};se.numberOfActiveRequestsByServer=function(e){return Pe[e]};se.requestHeap=we;var kt=se;var io=Ze(We(),1);var lt={},rt={};lt.add=function(e,t){if(!p(e))throw new A("host is required.");if(!p(t)||t<=0)throw new A("port is required to be greater than 0.");let n=`${e.toLowerCase()}:${t}`;p(rt[n])||(rt[n]=!0)};lt.remove=function(e,t){if(!p(e))throw new A("host is required.");if(!p(t)||t<=0)throw new A("port is required to be greater than 0.");let n=`${e.toLowerCase()}:${t}`;p(rt[n])&&delete rt[n]};function Ur(e){let t=new io.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let o=t.scheme();if(o.length===0&&(o=window.location.protocol,o=o.substring(0,o.length-1)),o==="http")n+=":80";else if(o==="https")n+=":443";else return}return n}}lt.contains=function(e){if(!p(e))throw new A("url is required.");let t=Ur(e);return!!(p(t)&&p(rt[t]))};lt.clear=function(){rt={}};var cn=lt;var ao=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function U(e){e=O(e,O.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),s.typeOf.string("options.url",e.url),this._url=void 0,this._templateValues=Ae(e.templateValues,{}),this._queryParameters=Ae(e.queryParameters,{}),this.headers=Ae(e.headers,{}),this.request=O(e.request,new Jn),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=O(e.retryAttempts,0),this._retryCount=0,O(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function Ae(e,t){return p(e)?nt(e):t}U.createIfNeeded=function(e){return e instanceof U?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new U({url:e})};var it;U.supportsImageBitmapOptions=function(){return p(it)?it:typeof createImageBitmap!="function"?(it=Promise.resolve(!1),it):(it=U.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=on(t[0]),o=on(t[1]);return n[1]!==o[1]}).catch(function(){return!1}),it)};Object.defineProperties(U,{isBlobSupported:{get:function(){return ao}}});Object.defineProperties(U.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return Qn(this._url)}},isDataUri:{get:function(){return zt(this._url)}},isBlobUri:{get:function(){return It(this._url)}},isCrossOriginUrl:{get:function(){return $n(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});U.prototype.toString=function(){return this.getUrlComponent(!0,!0)};U.prototype.parseUrl=function(e,t,n,o){let i=new so.default(e),r=Ir(i.query());this._queryParameters=t?xt(r,this.queryParameters,n):r,i.search(""),i.fragment(""),p(o)&&i.scheme()===""&&(i=i.absoluteTo(dt(o))),this._url=i.toString()};function Ir(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Xn(e)}function xt(e,t,n){if(!n)return De(e,t);let o=nt(e,!0);for(let i in t)if(t.hasOwnProperty(i)){let r=o[i],a=t[i];p(r)?(Array.isArray(r)||(r=o[i]=[r]),o[i]=r.concat(a)):o[i]=Array.isArray(a)?a.slice():a}return o}U.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${zr(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let o=this._templateValues;return Object.keys(o).length>0&&(n=n.replace(/{(.*?)}/g,function(i,r){let a=o[r];return p(a)?encodeURIComponent(a):i})),t&&p(this.proxy)&&(n=this.proxy.getURL(n)),n};function zr(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!p(e[t[0]])?`?${t[0]}`:`?${Yn(e)}`}U.prototype.setQueryParameters=function(e,t){t?this._queryParameters=xt(this._queryParameters,e,!1):this._queryParameters=xt(e,this._queryParameters,!1)};U.prototype.appendQueryParameters=function(e){this._queryParameters=xt(e,this._queryParameters,!0)};U.prototype.setTemplateValues=function(e,t){t?this._templateValues=De(this._templateValues,e):this._templateValues=De(e,this._templateValues)};U.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,p(e.url)){let n=O(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return p(e.queryParameters)&&(t._queryParameters=De(e.queryParameters,t.queryParameters)),p(e.templateValues)&&(t._templateValues=De(e.templateValues,t.templateValues)),p(e.headers)&&(t.headers=De(e.headers,t.headers)),p(e.proxy)&&(t.proxy=e.proxy),p(e.request)&&(t.request=e.request),p(e.retryCallback)&&(t.retryCallback=e.retryCallback),p(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};U.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(o){return++n._retryCount,o})};U.prototype.clone=function(e){return p(e)?(e._url=this._url,e._queryParameters=nt(this._queryParameters),e._templateValues=nt(this._templateValues),e.headers=nt(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new U({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:p(this.credits)?this.credits.slice():void 0})};U.prototype.getBaseUri=function(e){return Bn(this.getUrlComponent(e),e)};U.prototype.appendForwardSlash=function(){this._url=kn(this._url)};U.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};U.fetchArrayBuffer=function(e){return new U(e).fetchArrayBuffer()};U.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};U.fetchBlob=function(e){return new U(e).fetchBlob()};U.prototype.fetchImage=function(e){e=O(e,O.EMPTY_OBJECT);let t=O(e.preferImageBitmap,!1),n=O(e.preferBlob,!1),o=O(e.flipY,!1),i=O(e.skipColorSpaceConversion,!1);if(an(this.request),!ao||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return sn({resource:this,flipY:o,skipColorSpaceConversion:i,preferImageBitmap:t});let r=this.fetchBlob();if(!p(r))return;let a,u,d,m;return U.supportsImageBitmapOptions().then(function(l){return a=l,u=a&&t,r}).then(function(l){if(!p(l))return;if(m=l,u)return U.createImageBitmapFromBlob(l,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:i});let w=window.URL.createObjectURL(l);return d=new U({url:w}),sn({resource:d,flipY:o,skipColorSpaceConversion:i,preferImageBitmap:!1})}).then(function(l){if(p(l))return l.blob=m,u||window.URL.revokeObjectURL(d.url),l}).catch(function(l){return p(d)&&window.URL.revokeObjectURL(d.url),l.blob=m,Promise.reject(l)})};function sn(e){let t=e.resource,n=e.flipY,o=e.skipColorSpaceConversion,i=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let u=!1;!t.isDataUri&&!t.isBlobUri&&(u=t.isCrossOriginUrl);let d=Qe();return U._Implementations.createImage(r,u,d,n,o,i),d.promise};let a=kt.request(r);if(p(a))return a.catch(function(u){return r.state!==fe.FAILED?Promise.reject(u):t.retryOnError(u).then(function(d){return d?(r.state=fe.UNISSUED,r.deferred=void 0,sn({resource:t,flipY:n,skipColorSpaceConversion:o,preferImageBitmap:i})):Promise.reject(u)})})}U.fetchImage=function(e){return new U(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};U.prototype.fetchText=function(){return this.fetch({responseType:"text"})};U.fetchText=function(e){return new U(e).fetchText()};U.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(p(e))return e.then(function(t){if(p(t))return JSON.parse(t)})};U.fetchJson=function(e){return new U(e).fetchJson()};U.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};U.fetchXML=function(e){return new U(e).fetchXML()};U.prototype.fetchJsonp=function(e){e=O(e,"callback"),an(this.request);let t;do t=`loadJsonp${E.nextRandomNumber().toString().substring(2,8)}`;while(p(window[t]));return fo(this,e,t)};function fo(e,t,n){let o={};o[t]=n,e.setQueryParameters(o);let i=e.request,r=e.url;i.url=r,i.requestFunction=function(){let u=Qe();return window[n]=function(d){u.resolve(d);try{delete window[n]}catch{window[n]=void 0}},U._Implementations.loadAndExecuteScript(r,n,u),u.promise};let a=kt.request(i);if(p(a))return a.catch(function(u){return i.state!==fe.FAILED?Promise.reject(u):e.retryOnError(u).then(function(d){return d?(i.state=fe.UNISSUED,i.deferred=void 0,fo(e,t,n)):Promise.reject(u)})})}U.fetchJsonp=function(e){return new U(e).fetchJsonp(e.callbackParameterName)};U.prototype._makeRequest=function(e){let t=this;an(t.request);let n=t.request,o=t.url;n.url=o,n.requestFunction=function(){let r=e.responseType,a=De(e.headers,t.headers),u=e.overrideMimeType,d=e.method,m=e.data,l=Qe(),w=U._Implementations.loadWithXhr(o,r,d,m,a,l,u);return p(w)&&p(w.abort)&&(n.cancelFunction=function(){w.abort()}),l.promise};let i=kt.request(n);if(p(i))return i.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==fe.FAILED?Promise.reject(r):t.retryOnError(r).then(function(a){return a?(n.state=fe.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function an(e){if(e.state===fe.ISSUED||e.state===fe.ACTIVE)throw new Se("The Resource is already being fetched.");e.state=fe.UNISSUED,e.deferred=void 0}var qr=/^data:(.*?)(;base64)?,(.*)$/;function Ft(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function co(e,t){let n=Ft(e,t),o=new ArrayBuffer(n.length),i=new Uint8Array(o);for(let r=0;r<n.length;r++)i[r]=n.charCodeAt(r);return o}function Dr(e,t){t=O(t,"");let n=e[1],o=!!e[2],i=e[3],r,a;switch(t){case"":case"text":return Ft(o,i);case"arraybuffer":return co(o,i);case"blob":return r=co(o,i),new Blob([r],{type:n});case"document":return a=new DOMParser,a.parseFromString(Ft(o,i),n);case"json":return JSON.parse(Ft(o,i));default:throw new A(`Unhandled responseType: ${t}`)}}U.prototype.fetch=function(e){return e=Ae(e,{}),e.method="GET",this._makeRequest(e)};U.fetch=function(e){return new U(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U.prototype.delete=function(e){return e=Ae(e,{}),e.method="DELETE",this._makeRequest(e)};U.delete=function(e){return new U(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};U.prototype.head=function(e){return e=Ae(e,{}),e.method="HEAD",this._makeRequest(e)};U.head=function(e){return new U(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U.prototype.options=function(e){return e=Ae(e,{}),e.method="OPTIONS",this._makeRequest(e)};U.options=function(e){return new U(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U.prototype.post=function(e,t){return s.defined("data",e),t=Ae(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};U.post=function(e){return new U(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U.prototype.put=function(e,t){return s.defined("data",e),t=Ae(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};U.put=function(e){return new U(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U.prototype.patch=function(e,t){return s.defined("data",e),t=Ae(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};U.patch=function(e){return new U(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};U._Implementations={};U._Implementations.loadImageElement=function(e,t,n){let o=new Image;o.onload=function(){o.naturalWidth===0&&o.naturalHeight===0&&o.width===0&&o.height===0&&(o.width=300,o.height=150),n.resolve(o)},o.onerror=function(i){n.reject(i)},t&&(cn.contains(e)?o.crossOrigin="use-credentials":o.crossOrigin=""),o.src=e};U._Implementations.createImage=function(e,t,n,o,i,r){let a=e.url;U.supportsImageBitmapOptions().then(function(u){if(!(u&&r)){U._Implementations.loadImageElement(a,t,n);return}let d="blob",m="GET",l=Qe(),w=U._Implementations.loadWithXhr(a,d,m,void 0,void 0,l,void 0,void 0,void 0);return p(w)&&p(w.abort)&&(e.cancelFunction=function(){w.abort()}),l.promise.then(function(T){if(!p(T)){n.reject(new Se(`Successfully retrieved ${a} but it contained no content.`));return}return U.createImageBitmapFromBlob(T,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:i})}).then(function(T){n.resolve(T)})}).catch(function(u){n.reject(u)})};U.createImageBitmapFromBlob=function(e,t){return s.defined("options",t),s.typeOf.bool("options.flipY",t.flipY),s.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),s.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function Nr(e,t,n,o,i,r,a){fetch(e,{method:n,headers:i}).then(async u=>{if(!u.ok){let d={};u.headers.forEach((m,l)=>{d[l]=m}),r.reject(new mt(u.status,u,d));return}switch(t){case"text":r.resolve(u.text());break;case"json":r.resolve(u.json());break;default:r.resolve(new Uint8Array(await u.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new mt)})}var kr=typeof XMLHttpRequest>"u";U._Implementations.loadWithXhr=function(e,t,n,o,i,r,a){let u=qr.exec(e);if(u!==null){r.resolve(Dr(u,t));return}if(kr){Nr(e,t,n,o,i,r,a);return}let d=new XMLHttpRequest;if(cn.contains(e)&&(d.withCredentials=!0),d.open(n,e,!0),p(a)&&p(d.overrideMimeType)&&d.overrideMimeType(a),p(i))for(let l in i)i.hasOwnProperty(l)&&d.setRequestHeader(l,i[l]);p(t)&&(d.responseType=t);let m=!1;return typeof e=="string"&&(m=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),d.onload=function(){if((d.status<200||d.status>=300)&&!(m&&d.status===0)){r.reject(new mt(d.status,d.response,d.getAllResponseHeaders()));return}let l=d.response,w=d.responseType;if(n==="HEAD"||n==="OPTIONS"){let v=d.getAllResponseHeaders().trim().split(/[\r\n]+/),P={};v.forEach(function(j){let q=j.split(": "),k=q.shift();P[k]=q.join(": ")}),r.resolve(P);return}if(d.status===204)r.resolve(void 0);else if(p(l)&&(!p(t)||w===t))r.resolve(l);else if(t==="json"&&typeof l=="string")try{r.resolve(JSON.parse(l))}catch(T){r.reject(T)}else(w===""||w==="document")&&p(d.responseXML)&&d.responseXML.hasChildNodes()?r.resolve(d.responseXML):(w===""||w==="text")&&p(d.responseText)?r.resolve(d.responseText):r.reject(new Se("Invalid XMLHttpRequest response type."))},d.onerror=function(l){r.reject(new mt)},d.send(o),d};U._Implementations.loadAndExecuteScript=function(e,t,n){return Vn(e,t).catch(function(o){n.reject(o)})};U._DefaultImplementations={};U._DefaultImplementations.createImage=U._Implementations.createImage;U._DefaultImplementations.loadWithXhr=U._Implementations.loadWithXhr;U._DefaultImplementations.loadAndExecuteScript=U._Implementations.loadAndExecuteScript;U.DEFAULT=Object.freeze(new U({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var ke=U;function bt(e){e=O(e,O.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=O(e.addNewLeapSeconds,!0),p(e.data)?uo(this,e.data):uo(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}bt.fromUrl=async function(e,t){s.defined("url",e),t=O(t,O.EMPTY_OBJECT);let n=ke.createIfNeeded(e),o;try{o=await n.fetchJson()}catch{throw new Se(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new bt({addNewLeapSeconds:t.addNewLeapSeconds,data:o})};bt.NONE=Object.freeze({compute:function(e,t){return p(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new pt(0,0,0,0,0),t}});bt.prototype.compute=function(e,t){if(!p(this._samples))return;if(p(t)||(t=new pt(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,o=this._lastIndex,i=0,r=0;if(p(o)){let u=n[o],d=n[o+1],m=pe.lessThanOrEquals(u,e),l=!p(d),w=l||pe.greaterThanOrEquals(d,e);if(m&&w)return i=o,!l&&d.equals(e)&&++i,r=i+1,ho(this,n,this._samples,e,i,r,t),t}let a=Be(n,e,pe.compare,this._dateColumn);return a>=0?(a<n.length-1&&n[a+1].equals(e)&&++a,i=a,r=a):(r=~a,i=r-1,i<0&&(i=0)),this._lastIndex=i,ho(this,n,this._samples,e,i,r,t),t};function Fr(e,t){return pe.compare(e.julianDate,t)}function uo(e,t){if(!p(t.columnNames))throw new Se("Error in loaded EOP data: The columnNames property is required.");if(!p(t.samples))throw new Se("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),o=t.columnNames.indexOf("xPoleWanderRadians"),i=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),a=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),u=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),d=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||o<0||i<0||r<0||a<0||u<0||d<0)throw new Se("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let m=e._samples=t.samples,l=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=o,e._yPoleWanderRadiansColumn=i,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=a,e._yCelestialPoleOffsetRadiansColumn=u,e._taiMinusUtcSecondsColumn=d,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let w,T=e._addNewLeapSeconds;for(let v=0,P=m.length;v<P;v+=e._columnCount){let j=m[v+n],q=m[v+d],k=j+ce.MODIFIED_JULIAN_DATE_DIFFERENCE,x=new pe(k,q,$.TAI);if(l.push(x),T){if(q!==w&&p(w)){let F=pe.leapSeconds,B=Be(F,x,Fr);if(B<0){let Q=new ne(x,q);F.splice(~B,0,Q)}}w=q}}}function po(e,t,n,o,i){let r=n*o;i.xPoleWander=t[r+e._xPoleWanderRadiansColumn],i.yPoleWander=t[r+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function wt(e,t,n){return t+e*(n-t)}function ho(e,t,n,o,i,r,a){let u=e._columnCount;if(r>t.length-1)return a.xPoleWander=0,a.yPoleWander=0,a.xPoleOffset=0,a.yPoleOffset=0,a.ut1MinusUtc=0,a;let d=t[i],m=t[r];if(d.equals(m)||o.equals(d))return po(e,n,i,u,a),a;if(o.equals(m))return po(e,n,r,u,a),a;let l=pe.secondsDifference(o,d)/pe.secondsDifference(m,d),w=i*u,T=r*u,v=n[w+e._ut1MinusUtcSecondsColumn],P=n[T+e._ut1MinusUtcSecondsColumn],j=P-v;if(j>.5||j<-.5){let q=n[w+e._taiMinusUtcSecondsColumn],k=n[T+e._taiMinusUtcSecondsColumn];q!==k&&(m.equals(o)?v=P:P-=k-q)}return a.xPoleWander=wt(l,n[w+e._xPoleWanderRadiansColumn],n[T+e._xPoleWanderRadiansColumn]),a.yPoleWander=wt(l,n[w+e._yPoleWanderRadiansColumn],n[T+e._yPoleWanderRadiansColumn]),a.xPoleOffset=wt(l,n[w+e._xCelestialPoleOffsetRadiansColumn],n[T+e._xCelestialPoleOffsetRadiansColumn]),a.yPoleOffset=wt(l,n[w+e._yCelestialPoleOffsetRadiansColumn],n[T+e._yCelestialPoleOffsetRadiansColumn]),a.ut1MinusUtc=wt(l,v,P),a}var mo=bt;function be(e,t,n){this.heading=O(e,0),this.pitch=O(t,0),this.roll=O(n,0)}be.fromQuaternion=function(e,t){if(!p(e))throw new A("quaternion is required");p(t)||(t=new be);let n=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),i=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),a=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(a,r),t.roll=Math.atan2(i,o),t.pitch=-E.asinClamped(n),t};be.fromDegrees=function(e,t,n,o){if(!p(e))throw new A("heading is required");if(!p(t))throw new A("pitch is required");if(!p(n))throw new A("roll is required");return p(o)||(o=new be),o.heading=e*E.RADIANS_PER_DEGREE,o.pitch=t*E.RADIANS_PER_DEGREE,o.roll=n*E.RADIANS_PER_DEGREE,o};be.clone=function(e,t){if(p(e))return p(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new be(e.heading,e.pitch,e.roll)};be.equals=function(e,t){return e===t||p(e)&&p(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};be.equalsEpsilon=function(e,t,n,o){return e===t||p(e)&&p(t)&&E.equalsEpsilon(e.heading,t.heading,n,o)&&E.equalsEpsilon(e.pitch,t.pitch,n,o)&&E.equalsEpsilon(e.roll,t.roll,n,o)};be.prototype.clone=function(e){return be.clone(this,e)};be.prototype.equals=function(e){return be.equals(this,e)};be.prototype.equalsEpsilon=function(e,t,n){return be.equalsEpsilon(this,e,t,n)};be.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Lt=be;var yo=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function xr(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let o=e[t].getAttribute("src"),i=yo.exec(o);if(i!==null)return i[1]}}var Bt;function lo(e){return typeof document>"u"?e:(p(Bt)||(Bt=document.createElement("a")),Bt.href=e,Bt.href)}var Ve;function wo(){if(p(Ve))return Ve;let e;if(typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:p(import.meta?.url)?e=dt(".",import.meta.url):typeof define=="object"&&p(define.amd)&&!define.amd.toUrlUndefined&&p(St.toUrl)?e=dt("..",Ye("Core/buildModuleUrl.js")):e=xr(),!p(e))throw new A("Unable to determine Cesium base URL automatically, try defining a global variable called CESIUM_BASE_URL.");return Ve=new ke({url:lo(e)}),Ve.appendForwardSlash(),Ve}function Lr(e){return lo(St.toUrl(`../${e}`))}function bo(e){return wo().getDerivedResource({url:e}).url}var Wt;function Ye(e){return p(Wt)||(typeof define=="object"&&p(define.amd)&&!define.amd.toUrlUndefined&&p(St.toUrl)?Wt=Lr:Wt=bo),Wt(e)}Ye._cesiumScriptRegex=yo;Ye._buildModuleUrlFromBaseUrl=bo;Ye._clearBaseResource=function(){Ve=void 0};Ye.setBaseUrl=function(e){Ve=ke.DEFAULT.getDerivedResource({url:e})};Ye.getCesiumBaseUrl=wo;var Oo=Ye;function Br(e,t,n){this.x=e,this.y=t,this.s=n}var Qt=Br;function pn(e){e=O(e,O.EMPTY_OBJECT),this._xysFileUrlTemplate=ke.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=O(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=O(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new pe(this._sampleZeroJulianEphemerisDate,0,$.TAI),this._stepSizeDays=O(e.stepSizeDays,1),this._samplesPerXysFile=O(e.samplesPerXysFile,1e3),this._totalSamples=O(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),o=this._xTable=new Array(t+1),i=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=i,o[r]=r*this._stepSizeDays;for(let a=0;a<=t;++a)a!==r&&(n[r]*=r-a);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var Wr=new pe(0,0,$.TAI);function fn(e,t,n){let o=Wr;return o.dayNumber=t,o.secondsOfDay=n,pe.daysDifference(o,e._sampleZeroDateTT)}pn.prototype.preload=function(e,t,n,o){let i=fn(this,e,t),r=fn(this,n,o),a=i/this._stepSizeDays-this._interpolationOrder/2|0;a<0&&(a=0);let u=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);let d=a/this._samplesPerXysFile|0,m=u/this._samplesPerXysFile|0,l=[];for(let w=d;w<=m;++w)l.push(un(this,w));return Promise.all(l)};pn.prototype.computeXysRadians=function(e,t,n){let o=fn(this,e,t);if(o<0)return;let i=o/this._stepSizeDays|0;if(i>=this._totalSamples)return;let r=this._interpolationOrder,a=i-(r/2|0);a<0&&(a=0);let u=a+r;u>=this._totalSamples&&(u=this._totalSamples-1,a=u-r,a<0&&(a=0));let d=!1,m=this._samples;if(p(m[a*3])||(un(this,a/this._samplesPerXysFile|0),d=!0),p(m[u*3])||(un(this,u/this._samplesPerXysFile|0),d=!0),d)return;p(n)?(n.x=0,n.y=0,n.s=0):n=new Qt(0,0,0);let l=o-a*this._stepSizeDays,w=this._work,T=this._denominators,v=this._coef,P=this._xTable,j,q;for(j=0;j<=r;++j)w[j]=l-P[j];for(j=0;j<=r;++j){for(v[j]=1,q=0;q<=r;++q)q!==j&&(v[j]*=w[q]);v[j]*=T[j];let k=(a+j)*3;n.x+=v[j]*m[k++],n.y+=v[j]*m[k++],n.s+=v[j]*m[k]}return n};function un(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,o=e._xysFileUrlTemplate;p(o)?n=o.getDerivedResource({templateValues:{0:t}}):n=new ke({url:Oo(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let i=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let a=e._samples,u=r.samples,d=t*e._samplesPerXysFile*3;for(let m=0,l=u.length;m<l;++m)a[d+m]=u[m]});return e._chunkDownloadsInProgress[t]=i,i}var go=pn;function R(e,t,n,o){this.x=O(e,0),this.y=O(t,0),this.z=O(n,0),this.w=O(o,0)}var Ot=new _;R.fromAxisAngle=function(e,t,n){s.typeOf.object("axis",e),s.typeOf.number("angle",t);let o=t/2,i=Math.sin(o);Ot=_.normalize(e,Ot);let r=Ot.x*i,a=Ot.y*i,u=Ot.z*i,d=Math.cos(o);return p(n)?(n.x=r,n.y=a,n.z=u,n.w=d,n):new R(r,a,u,d)};var Qr=[1,2,0],Hr=new Array(3);R.fromRotationMatrix=function(e,t){s.typeOf.object("matrix",e);let n,o,i,r,a,u=e[W.COLUMN0ROW0],d=e[W.COLUMN1ROW1],m=e[W.COLUMN2ROW2],l=u+d+m;if(l>0)n=Math.sqrt(l+1),a=.5*n,n=.5/n,o=(e[W.COLUMN1ROW2]-e[W.COLUMN2ROW1])*n,i=(e[W.COLUMN2ROW0]-e[W.COLUMN0ROW2])*n,r=(e[W.COLUMN0ROW1]-e[W.COLUMN1ROW0])*n;else{let w=Qr,T=0;d>u&&(T=1),m>u&&m>d&&(T=2);let v=w[T],P=w[v];n=Math.sqrt(e[W.getElementIndex(T,T)]-e[W.getElementIndex(v,v)]-e[W.getElementIndex(P,P)]+1);let j=Hr;j[T]=.5*n,n=.5/n,a=(e[W.getElementIndex(P,v)]-e[W.getElementIndex(v,P)])*n,j[v]=(e[W.getElementIndex(v,T)]+e[W.getElementIndex(T,v)])*n,j[P]=(e[W.getElementIndex(P,T)]+e[W.getElementIndex(T,P)])*n,o=-j[0],i=-j[1],r=-j[2]}return p(t)?(t.x=o,t.y=i,t.z=r,t.w=a,t):new R(o,i,r,a)};var _o=new R,So=new R,hn=new R,Ro=new R;R.fromHeadingPitchRoll=function(e,t){return s.typeOf.object("headingPitchRoll",e),Ro=R.fromAxisAngle(_.UNIT_X,e.roll,_o),hn=R.fromAxisAngle(_.UNIT_Y,-e.pitch,t),t=R.multiply(hn,Ro,hn),So=R.fromAxisAngle(_.UNIT_Z,-e.heading,_o),R.multiply(So,t,t)};var Ht=new _,dn=new _,Ee=new R,Eo=new R,$t=new R;R.packedLength=4;R.pack=function(e,t,n){return s.typeOf.object("value",e),s.defined("array",t),n=O(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};R.unpack=function(e,t,n){return s.defined("array",e),t=O(t,0),p(n)||(n=new R),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};R.packedInterpolationLength=3;R.convertPackedArrayForInterpolation=function(e,t,n,o){R.unpack(e,n*4,$t),R.conjugate($t,$t);for(let i=0,r=n-t+1;i<r;i++){let a=i*3;R.unpack(e,(t+i)*4,Ee),R.multiply(Ee,$t,Ee),Ee.w<0&&R.negate(Ee,Ee),R.computeAxis(Ee,Ht);let u=R.computeAngle(Ee);p(o)||(o=[]),o[a]=Ht.x*u,o[a+1]=Ht.y*u,o[a+2]=Ht.z*u}};R.unpackInterpolationResult=function(e,t,n,o,i){p(i)||(i=new R),_.fromArray(e,0,dn);let r=_.magnitude(dn);return R.unpack(t,o*4,Eo),r===0?R.clone(R.IDENTITY,Ee):R.fromAxisAngle(dn,r,Ee),R.multiply(Ee,Eo,i)};R.clone=function(e,t){if(p(e))return p(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new R(e.x,e.y,e.z,e.w)};R.conjugate=function(e,t){return s.typeOf.object("quaternion",e),s.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};R.magnitudeSquared=function(e){return s.typeOf.object("quaternion",e),e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};R.magnitude=function(e){return Math.sqrt(R.magnitudeSquared(e))};R.normalize=function(e,t){s.typeOf.object("result",t);let n=1/R.magnitude(e),o=e.x*n,i=e.y*n,r=e.z*n,a=e.w*n;return t.x=o,t.y=i,t.z=r,t.w=a,t};R.inverse=function(e,t){s.typeOf.object("result",t);let n=R.magnitudeSquared(e);return t=R.conjugate(e,t),R.multiplyByScalar(t,1/n,t)};R.add=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};R.subtract=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};R.negate=function(e,t){return s.typeOf.object("quaternion",e),s.typeOf.object("result",t),t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};R.dot=function(e,t){return s.typeOf.object("left",e),s.typeOf.object("right",t),e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};R.multiply=function(e,t,n){s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n);let o=e.x,i=e.y,r=e.z,a=e.w,u=t.x,d=t.y,m=t.z,l=t.w,w=a*u+o*l+i*m-r*d,T=a*d-o*m+i*l+r*u,v=a*m+o*d-i*u+r*l,P=a*l-o*u-i*d-r*m;return n.x=w,n.y=T,n.z=v,n.w=P,n};R.multiplyByScalar=function(e,t,n){return s.typeOf.object("quaternion",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};R.divideByScalar=function(e,t,n){return s.typeOf.object("quaternion",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};R.computeAxis=function(e,t){s.typeOf.object("quaternion",e),s.typeOf.object("result",t);let n=e.w;if(Math.abs(n-1)<E.EPSILON6||Math.abs(n+1)<E.EPSILON6)return t.x=1,t.y=t.z=0,t;let o=1/Math.sqrt(1-n*n);return t.x=e.x*o,t.y=e.y*o,t.z=e.z*o,t};R.computeAngle=function(e){return s.typeOf.object("quaternion",e),Math.abs(e.w-1)<E.EPSILON6?0:2*Math.acos(e.w)};var mn=new R;R.lerp=function(e,t,n,o){return s.typeOf.object("start",e),s.typeOf.object("end",t),s.typeOf.number("t",n),s.typeOf.object("result",o),mn=R.multiplyByScalar(t,n,mn),o=R.multiplyByScalar(e,1-n,o),R.add(mn,o,o)};var To=new R,yn=new R,ln=new R;R.slerp=function(e,t,n,o){s.typeOf.object("start",e),s.typeOf.object("end",t),s.typeOf.number("t",n),s.typeOf.object("result",o);let i=R.dot(e,t),r=t;if(i<0&&(i=-i,r=To=R.negate(t,To)),1-i<E.EPSILON6)return R.lerp(e,r,n,o);let a=Math.acos(i);return yn=R.multiplyByScalar(e,Math.sin((1-n)*a),yn),ln=R.multiplyByScalar(r,Math.sin(n*a),ln),o=R.add(yn,ln,o),R.multiplyByScalar(o,1/Math.sin(a),o)};R.log=function(e,t){s.typeOf.object("quaternion",e),s.typeOf.object("result",t);let n=E.acosClamped(e.w),o=0;return n!==0&&(o=n/Math.sin(n)),_.multiplyByScalar(e,o,t)};R.exp=function(e,t){s.typeOf.object("cartesian",e),s.typeOf.object("result",t);let n=_.magnitude(e),o=0;return n!==0&&(o=Math.sin(n)/n),t.x=e.x*o,t.y=e.y*o,t.z=e.z*o,t.w=Math.cos(n),t};var $r=new _,Vr=new _,gt=new R,ct=new R;R.computeInnerQuadrangle=function(e,t,n,o){s.typeOf.object("q0",e),s.typeOf.object("q1",t),s.typeOf.object("q2",n),s.typeOf.object("result",o);let i=R.conjugate(t,gt);R.multiply(i,n,ct);let r=R.log(ct,$r);R.multiply(i,e,ct);let a=R.log(ct,Vr);return _.add(r,a,r),_.multiplyByScalar(r,.25,r),_.negate(r,r),R.exp(r,gt),R.multiply(t,gt,o)};R.squad=function(e,t,n,o,i,r){s.typeOf.object("q0",e),s.typeOf.object("q1",t),s.typeOf.object("s0",n),s.typeOf.object("s1",o),s.typeOf.number("t",i),s.typeOf.object("result",r);let a=R.slerp(e,t,i,gt),u=R.slerp(n,o,i,ct);return R.slerp(a,u,2*i*(1-i),r)};var Yr=new R,vo=1.9011074535173003,Vt=ft.supportsTypedArrays()?new Float32Array(8):[],Yt=ft.supportsTypedArrays()?new Float32Array(8):[],Ue=ft.supportsTypedArrays()?new Float32Array(8):[],Ie=ft.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;Vt[e]=1/(t*n),Yt[e]=t/n}Vt[7]=vo/(8*17);Yt[7]=vo*8/17;R.fastSlerp=function(e,t,n,o){s.typeOf.object("start",e),s.typeOf.object("end",t),s.typeOf.number("t",n),s.typeOf.object("result",o);let i=R.dot(e,t),r;i>=0?r=1:(r=-1,i=-i);let a=i-1,u=1-n,d=n*n,m=u*u;for(let v=7;v>=0;--v)Ue[v]=(Vt[v]*d-Yt[v])*a,Ie[v]=(Vt[v]*m-Yt[v])*a;let l=r*n*(1+Ue[0]*(1+Ue[1]*(1+Ue[2]*(1+Ue[3]*(1+Ue[4]*(1+Ue[5]*(1+Ue[6]*(1+Ue[7])))))))),w=u*(1+Ie[0]*(1+Ie[1]*(1+Ie[2]*(1+Ie[3]*(1+Ie[4]*(1+Ie[5]*(1+Ie[6]*(1+Ie[7])))))))),T=R.multiplyByScalar(e,w,Yr);return R.multiplyByScalar(t,l,o),R.add(T,o,o)};R.fastSquad=function(e,t,n,o,i,r){s.typeOf.object("q0",e),s.typeOf.object("q1",t),s.typeOf.object("s0",n),s.typeOf.object("s1",o),s.typeOf.number("t",i),s.typeOf.object("result",r);let a=R.fastSlerp(e,t,i,gt),u=R.fastSlerp(n,o,i,ct);return R.fastSlerp(a,u,2*i*(1-i),r)};R.equals=function(e,t){return e===t||p(e)&&p(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};R.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||p(e)&&p(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};R.ZERO=Object.freeze(new R(0,0,0,0));R.IDENTITY=Object.freeze(new R(0,0,0,1));R.prototype.clone=function(e){return R.clone(this,e)};R.prototype.equals=function(e){return R.equals(this,e)};R.prototype.equalsEpsilon=function(e,t){return R.equalsEpsilon(this,e,t)};R.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Xe=R;var V={},wn={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},st={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},bn={},ge={east:new _,north:new _,up:new _,west:new _,south:new _,down:new _},Fe=new _,xe=new _,Le=new _;V.localFrameToFixedFrameGenerator=function(e,t){if(!wn.hasOwnProperty(e)||!wn[e].hasOwnProperty(t))throw new A("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=wn[e][t],o,i=e+t;return p(bn[i])?o=bn[i]:(o=function(r,a,u){if(!p(r))throw new A("origin is required.");if(isNaN(r.x)||isNaN(r.y)||isNaN(r.z))throw new A("origin has a NaN component");if(p(u)||(u=new G),_.equalsEpsilon(r,_.ZERO,E.EPSILON14))_.unpack(st[e],0,Fe),_.unpack(st[t],0,xe),_.unpack(st[n],0,Le);else if(E.equalsEpsilon(r.x,0,E.EPSILON14)&&E.equalsEpsilon(r.y,0,E.EPSILON14)){let d=E.sign(r.z);_.unpack(st[e],0,Fe),e!=="east"&&e!=="west"&&_.multiplyByScalar(Fe,d,Fe),_.unpack(st[t],0,xe),t!=="east"&&t!=="west"&&_.multiplyByScalar(xe,d,xe),_.unpack(st[n],0,Le),n!=="east"&&n!=="west"&&_.multiplyByScalar(Le,d,Le)}else{a=O(a,ze.default),a.geodeticSurfaceNormal(r,ge.up);let d=ge.up,m=ge.east;m.x=-r.y,m.y=r.x,m.z=0,_.normalize(m,ge.east),_.cross(d,m,ge.north),_.multiplyByScalar(ge.up,-1,ge.down),_.multiplyByScalar(ge.east,-1,ge.west),_.multiplyByScalar(ge.north,-1,ge.south),Fe=ge[e],xe=ge[t],Le=ge[n]}return u[0]=Fe.x,u[1]=Fe.y,u[2]=Fe.z,u[3]=0,u[4]=xe.x,u[5]=xe.y,u[6]=xe.z,u[7]=0,u[8]=Le.x,u[9]=Le.y,u[10]=Le.z,u[11]=0,u[12]=r.x,u[13]=r.y,u[14]=r.z,u[15]=1,u},bn[i]=o),o};V.eastNorthUpToFixedFrame=V.localFrameToFixedFrameGenerator("east","north");V.northEastDownToFixedFrame=V.localFrameToFixedFrameGenerator("north","east");V.northUpEastToFixedFrame=V.localFrameToFixedFrameGenerator("north","up");V.northWestUpToFixedFrame=V.localFrameToFixedFrameGenerator("north","west");var Xr=new Xe,Zr=new _(1,1,1),Jr=new G;V.headingPitchRollToFixedFrame=function(e,t,n,o,i){s.typeOf.object("HeadingPitchRoll",t),o=O(o,V.eastNorthUpToFixedFrame);let r=Xe.fromHeadingPitchRoll(t,Xr),a=G.fromTranslationQuaternionRotationScale(_.ZERO,r,Zr,Jr);return i=o(e,n,i),G.multiply(i,a,i)};var Gr=new G,Kr=new W;V.headingPitchRollQuaternion=function(e,t,n,o,i){s.typeOf.object("HeadingPitchRoll",t);let r=V.headingPitchRollToFixedFrame(e,t,n,o,Gr),a=G.getMatrix3(r,Kr);return Xe.fromRotationMatrix(a,i)};var ei=new _(1,1,1),ti=new _,Co=new G,ni=new G,oi=new W,ri=new Xe;V.fixedFrameToHeadingPitchRoll=function(e,t,n,o){s.defined("transform",e),t=O(t,ze.default),n=O(n,V.eastNorthUpToFixedFrame),p(o)||(o=new Lt);let i=G.getTranslation(e,ti);if(_.equals(i,_.ZERO))return o.heading=0,o.pitch=0,o.roll=0,o;let r=G.inverseTransformation(n(i,t,Co),Co),a=G.setScale(e,ei,ni);a=G.setTranslation(a,_.ZERO,a),r=G.multiply(r,a,r);let u=Xe.fromRotationMatrix(G.getMatrix3(r,oi),ri);return u=Xe.normalize(u,u),Lt.fromQuaternion(u,o)};var ii=6*3600+41*60+50.54841,ci=8640184812866e-6,si=.093104,ai=-62e-7,fi=11772758384668e-32,ui=72921158553e-15,pi=E.TWO_PI/86400,Xt=new pe;V.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=V.computeIcrfToFixedMatrix(e,t);return p(n)||(n=V.computeTemeToPseudoFixedMatrix(e,t)),n};V.computeTemeToPseudoFixedMatrix=function(e,t){if(!p(e))throw new A("date is required.");Xt=pe.addSeconds(e,-pe.computeTaiMinusUtc(e),Xt);let n=Xt.dayNumber,o=Xt.secondsOfDay,i,r=n-2451545;o>=43200?i=(r+.5)/ce.DAYS_PER_JULIAN_CENTURY:i=(r-.5)/ce.DAYS_PER_JULIAN_CENTURY;let u=(ii+i*(ci+i*(si+i*ai)))*pi%E.TWO_PI,d=ui+fi*(n-24515455e-1),m=(o+ce.SECONDS_PER_DAY*.5)%ce.SECONDS_PER_DAY,l=u+d*m,w=Math.cos(l),T=Math.sin(l);return p(t)?(t[0]=w,t[1]=-T,t[2]=0,t[3]=T,t[4]=w,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new W(w,T,0,-T,w,0,0,0,1)};V.iau2006XysData=new go;V.earthOrientationParameters=mo.NONE;var _n=32.184,hi=2451545;V.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+_n,o=e.stop.dayNumber,i=e.stop.secondsOfDay+_n;return V.iau2006XysData.preload(t,n,o,i)};V.computeIcrfToFixedMatrix=function(e,t){if(!p(e))throw new A("date is required.");p(t)||(t=new W);let n=V.computeFixedToIcrfMatrix(e,t);if(p(n))return W.transpose(n,t)};var di=32.184,mi=2451545,Zt=new Lt,yi=new W,li=new pe;V.computeMoonFixedToIcrfMatrix=function(e,t){if(!p(e))throw new A("date is required.");p(t)||(t=new W);let n=pe.addSeconds(e,di,li),o=pe.totalDays(n)-mi,i=E.toRadians(12.112)-E.toRadians(.052992)*o,r=E.toRadians(24.224)-E.toRadians(.105984)*o,a=E.toRadians(227.645)+E.toRadians(13.012)*o,u=E.toRadians(261.105)+E.toRadians(13.340716)*o,d=E.toRadians(358)+E.toRadians(.9856)*o;return Zt.pitch=E.toRadians(180)-E.toRadians(3.878)*Math.sin(i)-E.toRadians(.12)*Math.sin(r)+E.toRadians(.07)*Math.sin(a)-E.toRadians(.017)*Math.sin(u),Zt.roll=E.toRadians(66.53-90)+E.toRadians(1.543)*Math.cos(i)+E.toRadians(.24)*Math.cos(r)-E.toRadians(.028)*Math.cos(a)+E.toRadians(.007)*Math.cos(u),Zt.heading=E.toRadians(244.375-90)+E.toRadians(13.17635831)*o+E.toRadians(3.558)*Math.sin(i)+E.toRadians(.121)*Math.sin(r)-E.toRadians(.064)*Math.sin(a)+E.toRadians(.016)*Math.sin(u)+E.toRadians(.025)*Math.sin(d),W.fromHeadingPitchRoll(Zt,yi)};V.computeIcrfToMoonFixedMatrix=function(e,t){if(!p(e))throw new A("date is required.");p(t)||(t=new W);let n=V.computeMoonFixedToIcrfMatrix(e,t);if(p(n))return W.transpose(n,t)};var wi=new Qt(0,0,0),bi=new pt(0,0,0,0,0,0),On=new W,gn=new W;V.computeFixedToIcrfMatrix=function(e,t){if(!p(e))throw new A("date is required.");p(t)||(t=new W);let n=V.earthOrientationParameters.compute(e,bi);if(!p(n))return;let o=e.dayNumber,i=e.secondsOfDay+_n,r=V.iau2006XysData.computeXysRadians(o,i,wi);if(!p(r))return;let a=r.x+n.xPoleOffset,u=r.y+n.yPoleOffset,d=1/(1+Math.sqrt(1-a*a-u*u)),m=On;m[0]=1-d*a*a,m[3]=-d*a*u,m[6]=a,m[1]=-d*a*u,m[4]=1-d*u*u,m[7]=u,m[2]=-a,m[5]=-u,m[8]=1-d*(a*a+u*u);let l=W.fromRotationZ(-r.s,gn),w=W.multiply(m,l,On),T=e.dayNumber,v=e.secondsOfDay-pe.computeTaiMinusUtc(e)+n.ut1MinusUtc,P=T-2451545,j=v/ce.SECONDS_PER_DAY,q=.779057273264+j+.00273781191135448*(P+j);q=q%1*E.TWO_PI;let k=W.fromRotationZ(q,gn),x=W.multiply(w,k,On),F=Math.cos(n.xPoleWander),B=Math.cos(n.yPoleWander),Q=Math.sin(n.xPoleWander),H=Math.sin(n.yPoleWander),ee=o-hi+i/ce.SECONDS_PER_DAY;ee/=36525;let re=-47e-6*ee*E.RADIANS_PER_DEGREE/3600,Z=Math.cos(re),oe=Math.sin(re),J=gn;return J[0]=F*Z,J[1]=F*oe,J[2]=Q,J[3]=-B*oe+H*Q*Z,J[4]=B*Z+H*Q*oe,J[5]=-H*F,J[6]=-H*oe-B*Q*Z,J[7]=H*Z-B*Q*oe,J[8]=B*F,W.multiply(x,J,t)};var Oi=new qe;V.pointToWindowCoordinates=function(e,t,n,o){return o=V.pointToGLWindowCoordinates(e,t,n,o),o.y=2*t[5]-o.y,o};V.pointToGLWindowCoordinates=function(e,t,n,o){if(!p(e))throw new A("modelViewProjectionMatrix is required.");if(!p(t))throw new A("viewportTransformation is required.");if(!p(n))throw new A("point is required.");p(o)||(o=new Oe);let i=Oi;return G.multiplyByVector(e,qe.fromElements(n.x,n.y,n.z,1,i),i),qe.multiplyByScalar(i,1/i.w,i),G.multiplyByVector(t,i,i),Oe.fromCartesian4(i,o)};var gi=new _,_i=new _,Si=new _;V.rotationMatrixFromPositionVelocity=function(e,t,n,o){if(!p(e))throw new A("position is required.");if(!p(t))throw new A("velocity is required.");let i=O(n,ze.default).geodeticSurfaceNormal(e,gi),r=_.cross(t,i,_i);_.equalsEpsilon(r,_.ZERO,E.EPSILON6)&&(r=_.clone(_.UNIT_X,r));let a=_.cross(r,t,Si);return _.normalize(a,a),_.cross(t,a,r),_.negate(r,r),_.normalize(r,r),p(o)||(o=new W),o[0]=t.x,o[1]=t.y,o[2]=t.z,o[3]=r.x,o[4]=r.y,o[5]=r.z,o[6]=a.x,o[7]=a.y,o[8]=a.z,o};var Ao=new G(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),jo=new Me,Sn=new _,Ri=new _,Ei=new W,Rn=new G,Mo=new G;V.basisTo2D=function(e,t,n){if(!p(e))throw new A("projection is required.");if(!p(t))throw new A("matrix is required.");if(!p(n))throw new A("result is required.");let o=G.getTranslation(t,Ri),i=e.ellipsoid,r;if(_.equals(o,_.ZERO))r=_.clone(_.ZERO,Sn);else{let l=i.cartesianToCartographic(o,jo);r=e.project(l,Sn),_.fromElements(r.z,r.x,r.y,r)}let a=V.eastNorthUpToFixedFrame(o,i,Rn),u=G.inverseTransformation(a,Mo),d=G.getMatrix3(t,Ei),m=G.multiplyByMatrix3(u,d,n);return G.multiply(Ao,m,n),G.setTranslation(n,r,n),n};V.ellipsoidTo2DModelMatrix=function(e,t,n){if(!p(e))throw new A("projection is required.");if(!p(t))throw new A("center is required.");if(!p(n))throw new A("result is required.");let o=e.ellipsoid,i=V.eastNorthUpToFixedFrame(t,o,Rn),r=G.inverseTransformation(i,Mo),a=o.cartesianToCartographic(t,jo),u=e.project(a,Sn);_.fromElements(u.z,u.x,u.y,u);let d=G.fromTranslation(u,Rn);return G.multiply(Ao,r,n),G.multiply(d,n,n),n};var Po=V;var Uo={};function _t(e,t){if(!p(e))throw new A("identifier is required.");p(Uo[e])||(Uo[e]=!0,console.warn(O(t,e)))}_t.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";_t.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";_t.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";_t.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var Io=_t;function Ti(e,t){if(!p(e)||!p(t))throw new A("identifier and message are required.");Io(e,t)}var zo=Ti;function L(e,t,n,o){this.west=O(e,0),this.south=O(t,0),this.east=O(n,0),this.north=O(o,0)}Object.defineProperties(L.prototype,{width:{get:function(){return L.computeWidth(this)}},height:{get:function(){return L.computeHeight(this)}}});L.packedLength=4;L.pack=function(e,t,n){return s.typeOf.object("value",e),s.defined("array",t),n=O(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};L.unpack=function(e,t,n){return s.defined("array",e),t=O(t,0),p(n)||(n=new L),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};L.computeWidth=function(e){s.typeOf.object("rectangle",e);let t=e.east,n=e.west;return t<n&&(t+=E.TWO_PI),t-n};L.computeHeight=function(e){return s.typeOf.object("rectangle",e),e.north-e.south};L.fromDegrees=function(e,t,n,o,i){return e=E.toRadians(O(e,0)),t=E.toRadians(O(t,0)),n=E.toRadians(O(n,0)),o=E.toRadians(O(o,0)),p(i)?(i.west=e,i.south=t,i.east=n,i.north=o,i):new L(e,t,n,o)};L.fromRadians=function(e,t,n,o,i){return p(i)?(i.west=O(e,0),i.south=O(t,0),i.east=O(n,0),i.north=O(o,0),i):new L(e,t,n,o)};L.fromCartographicArray=function(e,t){s.defined("cartographics",e);let n=Number.MAX_VALUE,o=-Number.MAX_VALUE,i=Number.MAX_VALUE,r=-Number.MAX_VALUE,a=Number.MAX_VALUE,u=-Number.MAX_VALUE;for(let d=0,m=e.length;d<m;d++){let l=e[d];n=Math.min(n,l.longitude),o=Math.max(o,l.longitude),a=Math.min(a,l.latitude),u=Math.max(u,l.latitude);let w=l.longitude>=0?l.longitude:l.longitude+E.TWO_PI;i=Math.min(i,w),r=Math.max(r,w)}return o-n>r-i&&(n=i,o=r,o>E.PI&&(o=o-E.TWO_PI),n>E.PI&&(n=n-E.TWO_PI)),p(t)?(t.west=n,t.south=a,t.east=o,t.north=u,t):new L(n,a,o,u)};L.fromCartesianArray=function(e,t,n){s.defined("cartesians",e),t=O(t,ze.default);let o=Number.MAX_VALUE,i=-Number.MAX_VALUE,r=Number.MAX_VALUE,a=-Number.MAX_VALUE,u=Number.MAX_VALUE,d=-Number.MAX_VALUE;for(let m=0,l=e.length;m<l;m++){let w=t.cartesianToCartographic(e[m]);o=Math.min(o,w.longitude),i=Math.max(i,w.longitude),u=Math.min(u,w.latitude),d=Math.max(d,w.latitude);let T=w.longitude>=0?w.longitude:w.longitude+E.TWO_PI;r=Math.min(r,T),a=Math.max(a,T)}return i-o>a-r&&(o=r,i=a,i>E.PI&&(i=i-E.TWO_PI),o>E.PI&&(o=o-E.TWO_PI)),p(n)?(n.west=o,n.south=u,n.east=i,n.north=d,n):new L(o,u,i,d)};var vi=new _,Ci=new _,Ai=new _,ji=new _,Mi=new _,En=new Array(5);for(let e=0;e<En.length;++e)En[e]=new _;L.fromBoundingSphere=function(e,t,n){s.typeOf.object("boundingSphere",e);let o=e.center,i=e.radius;if(p(t)||(t=ze.default),p(n)||(n=new L),_.equals(o,_.ZERO))return L.clone(L.MAX_VALUE,n),n;let r=Po.eastNorthUpToFixedFrame(o,t,vi),a=G.multiplyByPointAsVector(r,_.UNIT_X,Ci);_.normalize(a,a);let u=G.multiplyByPointAsVector(r,_.UNIT_Y,Ai);_.normalize(u,u),_.multiplyByScalar(u,i,u),_.multiplyByScalar(a,i,a);let d=_.negate(u,Mi),m=_.negate(a,ji),l=En,w=l[0];return _.add(o,u,w),w=l[1],_.add(o,m,w),w=l[2],_.add(o,d,w),w=l[3],_.add(o,a,w),l[4]=o,L.fromCartesianArray(l,t,n)};L.clone=function(e,t){if(p(e))return p(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new L(e.west,e.south,e.east,e.north)};L.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||p(e)&&p(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};L.prototype.clone=function(e){return L.clone(this,e)};L.prototype.equals=function(e){return L.equals(this,e)};L.equals=function(e,t){return e===t||p(e)&&p(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};L.prototype.equalsEpsilon=function(e,t){return L.equalsEpsilon(this,e,t)};L.validate=function(e){return zo("Rectangle.validate","Rectangle.validate is a no-op and has been deprecated. It will be removed in Cesium 1.124."),L._validate(e)};L._validate=function(e){s.typeOf.object("rectangle",e);let t=e.north;s.typeOf.number.greaterThanOrEquals("north",t,-E.PI_OVER_TWO),s.typeOf.number.lessThanOrEquals("north",t,E.PI_OVER_TWO);let n=e.south;s.typeOf.number.greaterThanOrEquals("south",n,-E.PI_OVER_TWO),s.typeOf.number.lessThanOrEquals("south",n,E.PI_OVER_TWO);let o=e.west;s.typeOf.number.greaterThanOrEquals("west",o,-Math.PI),s.typeOf.number.lessThanOrEquals("west",o,Math.PI);let i=e.east;s.typeOf.number.greaterThanOrEquals("east",i,-Math.PI),s.typeOf.number.lessThanOrEquals("east",i,Math.PI)};L.southwest=function(e,t){return s.typeOf.object("rectangle",e),p(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new Me(e.west,e.south)};L.northwest=function(e,t){return s.typeOf.object("rectangle",e),p(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new Me(e.west,e.north)};L.northeast=function(e,t){return s.typeOf.object("rectangle",e),p(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new Me(e.east,e.north)};L.southeast=function(e,t){return s.typeOf.object("rectangle",e),p(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new Me(e.east,e.south)};L.center=function(e,t){s.typeOf.object("rectangle",e);let n=e.east,o=e.west;n<o&&(n+=E.TWO_PI);let i=E.negativePiToPi((o+n)*.5),r=(e.south+e.north)*.5;return p(t)?(t.longitude=i,t.latitude=r,t.height=0,t):new Me(i,r)};L.intersection=function(e,t,n){s.typeOf.object("rectangle",e),s.typeOf.object("otherRectangle",t);let o=e.east,i=e.west,r=t.east,a=t.west;o<i&&r>0?o+=E.TWO_PI:r<a&&o>0&&(r+=E.TWO_PI),o<i&&a<0?a+=E.TWO_PI:r<a&&i<0&&(i+=E.TWO_PI);let u=E.negativePiToPi(Math.max(i,a)),d=E.negativePiToPi(Math.min(o,r));if((e.west<e.east||t.west<t.east)&&d<=u)return;let m=Math.max(e.south,t.south),l=Math.min(e.north,t.north);if(!(m>=l))return p(n)?(n.west=u,n.south=m,n.east=d,n.north=l,n):new L(u,m,d,l)};L.simpleIntersection=function(e,t,n){s.typeOf.object("rectangle",e),s.typeOf.object("otherRectangle",t);let o=Math.max(e.west,t.west),i=Math.max(e.south,t.south),r=Math.min(e.east,t.east),a=Math.min(e.north,t.north);if(!(i>=a||o>=r))return p(n)?(n.west=o,n.south=i,n.east=r,n.north=a,n):new L(o,i,r,a)};L.union=function(e,t,n){s.typeOf.object("rectangle",e),s.typeOf.object("otherRectangle",t),p(n)||(n=new L);let o=e.east,i=e.west,r=t.east,a=t.west;o<i&&r>0?o+=E.TWO_PI:r<a&&o>0&&(r+=E.TWO_PI),o<i&&a<0?a+=E.TWO_PI:r<a&&i<0&&(i+=E.TWO_PI);let u=E.negativePiToPi(Math.min(i,a)),d=E.negativePiToPi(Math.max(o,r));return n.west=u,n.south=Math.min(e.south,t.south),n.east=d,n.north=Math.max(e.north,t.north),n};L.expand=function(e,t,n){return s.typeOf.object("rectangle",e),s.typeOf.object("cartographic",t),p(n)||(n=new L),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};L.contains=function(e,t){s.typeOf.object("rectangle",e),s.typeOf.object("cartographic",t);let n=t.longitude,o=t.latitude,i=e.west,r=e.east;return r<i&&(r+=E.TWO_PI,n<0&&(n+=E.TWO_PI)),(n>i||E.equalsEpsilon(n,i,E.EPSILON14))&&(n<r||E.equalsEpsilon(n,r,E.EPSILON14))&&o>=e.south&&o<=e.north};var Pi=new Me;L.subsample=function(e,t,n,o){s.typeOf.object("rectangle",e),t=O(t,ze.default),n=O(n,0),p(o)||(o=[]);let i=0,r=e.north,a=e.south,u=e.east,d=e.west,m=Pi;m.height=n,m.longitude=d,m.latitude=r,o[i]=t.cartographicToCartesian(m,o[i]),i++,m.longitude=u,o[i]=t.cartographicToCartesian(m,o[i]),i++,m.latitude=a,o[i]=t.cartographicToCartesian(m,o[i]),i++,m.longitude=d,o[i]=t.cartographicToCartesian(m,o[i]),i++,r<0?m.latitude=r:a>0?m.latitude=a:m.latitude=0;for(let l=1;l<8;++l)m.longitude=-Math.PI+l*E.PI_OVER_TWO,L.contains(e,m)&&(o[i]=t.cartographicToCartesian(m,o[i]),i++);return m.latitude===0&&(m.longitude=d,o[i]=t.cartographicToCartesian(m,o[i]),i++,m.longitude=u,o[i]=t.cartographicToCartesian(m,o[i]),i++),o.length=i,o};L.subsection=function(e,t,n,o,i,r){if(s.typeOf.object("rectangle",e),s.typeOf.number.greaterThanOrEquals("westLerp",t,0),s.typeOf.number.lessThanOrEquals("westLerp",t,1),s.typeOf.number.greaterThanOrEquals("southLerp",n,0),s.typeOf.number.lessThanOrEquals("southLerp",n,1),s.typeOf.number.greaterThanOrEquals("eastLerp",o,0),s.typeOf.number.lessThanOrEquals("eastLerp",o,1),s.typeOf.number.greaterThanOrEquals("northLerp",i,0),s.typeOf.number.lessThanOrEquals("northLerp",i,1),s.typeOf.number.lessThanOrEquals("westLerp",t,o),s.typeOf.number.lessThanOrEquals("southLerp",n,i),p(r)||(r=new L),e.west<=e.east){let u=e.east-e.west;r.west=e.west+t*u,r.east=e.west+o*u}else{let u=E.TWO_PI+e.east-e.west;r.west=E.negativePiToPi(e.west+t*u),r.east=E.negativePiToPi(e.west+o*u)}let a=e.north-e.south;return r.south=e.south+n*a,r.north=e.south+i*a,t===1&&(r.west=e.east),o===1&&(r.east=e.east),n===1&&(r.south=e.north),i===1&&(r.north=e.north),r};L.MAX_VALUE=Object.freeze(new L(-Math.PI,-E.PI_OVER_TWO,Math.PI,E.PI_OVER_TWO));var Af=L;function D(e,t,n,o){this[0]=O(e,0),this[1]=O(n,0),this[2]=O(t,0),this[3]=O(o,0)}D.packedLength=4;D.pack=function(e,t,n){return s.typeOf.object("value",e),s.defined("array",t),n=O(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};D.unpack=function(e,t,n){return s.defined("array",e),t=O(t,0),p(n)||(n=new D),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};D.packArray=function(e,t){s.defined("array",e);let n=e.length,o=n*4;if(!p(t))t=new Array(o);else{if(!Array.isArray(t)&&t.length!==o)throw new A("If result is a typed array, it must have exactly array.length * 4 elements");t.length!==o&&(t.length=o)}for(let i=0;i<n;++i)D.pack(e[i],t,i*4);return t};D.unpackArray=function(e,t){if(s.defined("array",e),s.typeOf.number.greaterThanOrEquals("array.length",e.length,4),e.length%4!==0)throw new A("array length must be a multiple of 4.");let n=e.length;p(t)?t.length=n/4:t=new Array(n/4);for(let o=0;o<n;o+=4){let i=o/4;t[i]=D.unpack(e,o,t[i])}return t};D.clone=function(e,t){if(p(e))return p(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new D(e[0],e[2],e[1],e[3])};D.fromArray=D.unpack;D.fromColumnMajorArray=function(e,t){return s.defined("values",e),D.clone(e,t)};D.fromRowMajorArray=function(e,t){return s.defined("values",e),p(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new D(e[0],e[1],e[2],e[3])};D.fromScale=function(e,t){return s.typeOf.object("scale",e),p(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new D(e.x,0,0,e.y)};D.fromUniformScale=function(e,t){return s.typeOf.number("scale",e),p(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new D(e,0,0,e)};D.fromRotation=function(e,t){s.typeOf.number("angle",e);let n=Math.cos(e),o=Math.sin(e);return p(t)?(t[0]=n,t[1]=o,t[2]=-o,t[3]=n,t):new D(n,-o,o,n)};D.toArray=function(e,t){return s.typeOf.object("matrix",e),p(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};D.getElementIndex=function(e,t){return s.typeOf.number.greaterThanOrEquals("row",t,0),s.typeOf.number.lessThanOrEquals("row",t,1),s.typeOf.number.greaterThanOrEquals("column",e,0),s.typeOf.number.lessThanOrEquals("column",e,1),e*2+t};D.getColumn=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,1),s.typeOf.object("result",n);let o=t*2,i=e[o],r=e[o+1];return n.x=i,n.y=r,n};D.setColumn=function(e,t,n,o){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,1),s.typeOf.object("cartesian",n),s.typeOf.object("result",o),o=D.clone(e,o);let i=t*2;return o[i]=n.x,o[i+1]=n.y,o};D.getRow=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,1),s.typeOf.object("result",n);let o=e[t],i=e[t+2];return n.x=o,n.y=i,n};D.setRow=function(e,t,n,o){return s.typeOf.object("matrix",e),s.typeOf.number.greaterThanOrEquals("index",t,0),s.typeOf.number.lessThanOrEquals("index",t,1),s.typeOf.object("cartesian",n),s.typeOf.object("result",o),o=D.clone(e,o),o[t]=n.x,o[t+2]=n.y,o};var Ui=new Oe;D.setScale=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("scale",t),s.typeOf.object("result",n);let o=D.getScale(e,Ui),i=t.x/o.x,r=t.y/o.y;return n[0]=e[0]*i,n[1]=e[1]*i,n[2]=e[2]*r,n[3]=e[3]*r,n};var Ii=new Oe;D.setUniformScale=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.number("scale",t),s.typeOf.object("result",n);let o=D.getScale(e,Ii),i=t/o.x,r=t/o.y;return n[0]=e[0]*i,n[1]=e[1]*i,n[2]=e[2]*r,n[3]=e[3]*r,n};var qo=new Oe;D.getScale=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t.x=Oe.magnitude(Oe.fromElements(e[0],e[1],qo)),t.y=Oe.magnitude(Oe.fromElements(e[2],e[3],qo)),t};var Do=new Oe;D.getMaximumScale=function(e){return D.getScale(e,Do),Oe.maximumComponent(Do)};var zi=new Oe;D.setRotation=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("result",n);let o=D.getScale(e,zi);return n[0]=t[0]*o.x,n[1]=t[1]*o.x,n[2]=t[2]*o.y,n[3]=t[3]*o.y,n};var qi=new Oe;D.getRotation=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=D.getScale(e,qi);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};D.multiply=function(e,t,n){s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n);let o=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],a=e[1]*t[2]+e[3]*t[3];return n[0]=o,n[1]=r,n[2]=i,n[3]=a,n};D.add=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};D.subtract=function(e,t,n){return s.typeOf.object("left",e),s.typeOf.object("right",t),s.typeOf.object("result",n),n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};D.multiplyByVector=function(e,t,n){s.typeOf.object("matrix",e),s.typeOf.object("cartesian",t),s.typeOf.object("result",n);let o=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=o,n.y=i,n};D.multiplyByScalar=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.number("scalar",t),s.typeOf.object("result",n),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};D.multiplyByScale=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.object("scale",t),s.typeOf.object("result",n),n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};D.multiplyByUniformScale=function(e,t,n){return s.typeOf.object("matrix",e),s.typeOf.number("scale",t),s.typeOf.object("result",n),n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};D.negate=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};D.transpose=function(e,t){s.typeOf.object("matrix",e),s.typeOf.object("result",t);let n=e[0],o=e[2],i=e[1],r=e[3];return t[0]=n,t[1]=o,t[2]=i,t[3]=r,t};D.abs=function(e,t){return s.typeOf.object("matrix",e),s.typeOf.object("result",t),t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};D.equals=function(e,t){return e===t||p(e)&&p(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};D.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};D.equalsEpsilon=function(e,t,n){return n=O(n,0),e===t||p(e)&&p(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};D.IDENTITY=Object.freeze(new D(1,0,0,1));D.ZERO=Object.freeze(new D(0,0,0,0));D.COLUMN0ROW0=0;D.COLUMN0ROW1=1;D.COLUMN1ROW0=2;D.COLUMN1ROW1=3;Object.defineProperties(D.prototype,{length:{get:function(){return D.packedLength}}});D.prototype.clone=function(e){return D.clone(this,e)};D.prototype.equals=function(e){return D.equals(this,e)};D.prototype.equalsEpsilon=function(e,t){return D.equalsEpsilon(this,e,t)};D.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var qf=D;export{qe as a,G as b,De as c,ke as d,Oo as e,Xe as f,Po as g,Io as h,Af as i,qf as j}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ZEP44EYN.js b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ZEP44EYN.js new file mode 100644 index 000000000..32fcdcb76 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/chunk-ZEP44EYN.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as c,b as p,d as f}from"./chunk-AODSXSC5.js";import{a as d}from"./chunk-IISQCXJ5.js";import{a as u}from"./chunk-WHQYJFDH.js";import{a as s}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function e(t){this._ellipsoid=u(t,f.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});e.mercatorAngleToGeodeticLatitude=function(t){return d.PI_OVER_TWO-2*Math.atan(Math.exp(-t))};e.geodeticLatitudeToMercatorAngle=function(t){t>e.MaximumLatitude?t=e.MaximumLatitude:t<-e.MaximumLatitude&&(t=-e.MaximumLatitude);let i=Math.sin(t);return .5*Math.log((1+i)/(1-i))};e.MaximumLatitude=e.mercatorAngleToGeodeticLatitude(Math.PI);e.prototype.project=function(t,i){let o=this._semimajorAxis,r=t.longitude*o,n=e.geodeticLatitudeToMercatorAngle(t.latitude)*o,m=t.height;return a(i)?(i.x=r,i.y=n,i.z=m,i):new c(r,n,m)};e.prototype.unproject=function(t,i){if(!a(t))throw new s("cartesian is required");let o=this._oneOverSemimajorAxis,r=t.x*o,n=e.mercatorAngleToGeodeticLatitude(t.y*o),m=t.z;return a(i)?(i.longitude=r,i.latitude=n,i.height=m,i):new p(r,n,m)};var L=e;export{L as a}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/combineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/combineGeometry.js index 92ff3a424..32a30fc75 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/combineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/combineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,v=E+y+_,T=Math.sqrt(1/v),R=e.multiplyByScalar(r,T,a);if(v<s)return isFinite(T)?e.clone(R,c):void 0;var A=u.x,S=u.y,g=u.z,I=o;I.x=R.x*A*2,I.y=R.y*S*2,I.z=R.z*g*2;var O,N,w,M,C,x,P,b,U,D,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,w=1/(1+F*A),M=1/(1+F*S),C=1/(1+F*g),x=w*w,P=M*M,b=C*C,U=x*w,D=P*M,L=b*C,O=E*x+y*P+_*b-1,N=E*U*A+y*D*S+_*L*g;B=O/(-2*N)}while(Math.abs(O)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*M,c.z=h*C,c):new e(l*w,f*M,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,E=n(r)?r._centerToleranceSquared:d,y=o(t,p,m,E,c);if(n(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var v=e.subtract(t,y,l),T=Math.atan2(_.y,_.x),R=Math.asin(_.z),A=a.sign(e.dot(v,t))*e.magnitude(v);return n(i)?(i.longitude=T,i.latitude=R,i.height=A,i):new u(T,R,A)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(E-y)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-r+u-f+d,v=2*(c-o),T=2*(a-l),R=2*(c+o),A=-r-u+f+d;return n(t)?(t[0]=p,t[1]=y,t[2]=T,t[3]=m,t[4]=_,t[5]=R,t[6]=E,t[7]=v,t[8]=A,t):new s(p,m,E,y,_,v,T,R,A)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(E,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,v=s-d-E+_,T=2*(c-y),R=2*(f+m),A=2*(c+y),S=-s+d-E+_,g=2*(p-h),I=2*(f-m),O=2*(p+h),N=-s-d+E+_;return n[0]=v*a,n[1]=A*a,n[2]=I*a,n[3]=0,n[4]=T*o,n[5]=S*o,n[6]=O*o,n[7]=0,n[8]=R*u,n[9]=g*u,n[10]=N*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,v=d.z,T=n.x,R=n.y,A=n.z,S=u*-T+s*-R+c*-A,g=y*-T+_*-R+v*-A,I=p*T+m*R+E*A;return i(r)?(r[0]=u,r[1]=y,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=v,r[10]=-E,r[11]=0,r[12]=S,r[13]=g,r[14]=I,r[15]=1,r):new l(u,s,c,S,y,_,v,g,-p,-m,-E,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],v=t[0],T=t[1],R=t[2],A=t[3],S=t[4],g=t[5],I=t[6],O=t[7],N=t[8],w=t[9],M=t[10],C=t[11],x=t[12],P=t[13],b=t[14],U=t[15],D=n*v+u*T+f*R+m*A,L=i*v+s*T+h*R+E*A,F=a*v+c*T+d*R+y*A,B=o*v+l*T+p*R+_*A,z=n*S+u*g+f*I+m*O,q=i*S+s*g+h*I+E*O,G=a*S+c*g+d*I+y*O,V=o*S+l*g+p*I+_*O,W=n*N+u*w+f*M+m*C,X=i*N+s*w+h*M+E*C,k=a*N+c*w+d*M+y*C,H=o*N+l*w+p*M+_*C,Y=n*x+u*P+f*b+m*U,j=i*x+s*P+h*b+E*U,Z=a*x+c*P+d*b+y*U,K=o*x+l*P+p*b+_*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=k,r[11]=H,r[12]=Y,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],v=t[5],T=t[6],R=t[8],A=t[9],S=t[10],g=t[12],I=t[13],O=t[14],N=n*m+o*E+c*y,w=i*m+u*E+l*y,M=a*m+s*E+f*y,C=n*_+o*v+c*T,x=i*_+u*v+l*T,P=a*_+s*v+f*T,b=n*R+o*A+c*S,U=i*R+u*A+l*S,D=a*R+s*A+f*S,L=n*g+o*I+c*O+h,F=i*g+u*I+l*O+d,B=a*g+s*I+f*O+p;return r[0]=N,r[1]=w,r[2]=M,r[3]=0,r[4]=C,r[5]=x,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],v=t[7],T=t[8],R=n*h+o*d+c*p,A=i*h+u*d+l*p,S=a*h+s*d+f*p,g=n*m+o*E+c*y,I=i*m+u*E+l*y,O=a*m+s*E+f*y,N=n*_+o*v+c*T,w=i*_+u*v+l*T,M=a*_+s*v+f*T;return r[0]=R,r[1]=A,r[2]=S,r[3]=0,r[4]=g,r[5]=I,r[6]=O,r[7]=0,r[8]=N,r[9]=w,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],A=e[14],S=e[3],g=e[7],I=e[11],O=e[15],N=y*O,w=A*I,M=E*O,C=A*g,x=E*I,P=y*g,b=m*O,U=A*S,D=m*I,L=y*S,F=m*g,B=E*S,z=N*h+C*d+x*p-(w*h+M*d+P*p),q=w*f+b*d+L*p-(N*f+U*d+D*p),G=M*f+U*h+F*p-(C*f+b*h+B*p),V=P*f+D*h+B*d-(x*f+L*h+F*d),W=w*i+M*a+P*o-(N*i+C*a+x*o),X=N*n+U*a+D*o-(w*n+b*a+L*o),k=C*n+b*i+B*o-(M*n+U*i+F*o),H=x*n+L*i+F*a-(P*n+D*i+B*a);N=a*p,w=o*d,M=i*p,C=o*h,x=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var Y=N*g+C*I+x*O-(w*g+M*I+P*O),j=w*S+b*I+L*O-(N*S+U*I+D*O),Z=M*S+U*g+F*O-(C*S+b*g+B*O),K=P*S+D*g+B*I-(x*S+L*g+F*I),J=M*y+P*A+w*E-(x*A+N*E+C*y),Q=D*A+N*m+U*y-(b*y+L*A+w*m),$=b*E+B*A+C*m-(F*A+M*m+U*E),ee=F*y+x*m+L*E-(D*E+B*y+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=k*te,r[7]=H*te,r[8]=Y*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,v=new e,T=new e,R=new e,A=new e,S=new e,g=new e,I=new e,O=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var O=a.x,N=a.y,w=a.z;O<o.x&&e.clone(a,o),O>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,R)),C=e.magnitudeSquared(e.subtract(l,u,R)),x=e.magnitudeSquared(e.subtract(f,s,R)),P=o,b=c,U=M;C>U&&(U=C,P=u,b=l),x>U&&(U=x,P=s,b=f);var D=A;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,R)),F=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,R));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var k=X-F;D.x=(F*D.x+k*a.x)/X,D.y=(F*D.y+k*a.y)/X,D.z=(F*D.z+k*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var N=new o,w=new e,M=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,N),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,w),c=r.project(x,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),O=e.clone(u,_),N=e.clone(u,v),w=t.length;for(s=0;s<w;s+=a){var M=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=M,u.y=C,u.z=x,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>O.y&&e.clone(u,O),x<f.z&&e.clone(u,f),x>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,R)),b=e.magnitudeSquared(e.subtract(O,l,R)),U=e.magnitudeSquared(e.subtract(N,f,R)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=O),U>F&&(F=U,D=f,L=N);var B=A;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=O.y,V.z=N.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var k=e.magnitude(e.subtract(u,W,R));k>X&&(X=k);var H=e.magnitudeSquared(e.subtract(u,B,R));if(H>z){var Y=Math.sqrt(H);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,v),O=t.length;for(o=0;o<O;o+=3){var N=t[o]+r[o],w=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=N,a.y=w,a.z=M,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,R)),x=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),b=u,U=l,D=C;x>D&&(D=x,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=A;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,R)),B=Math.sqrt(F),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<O;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,R));if(X>F){var k=Math.sqrt(X);B=.5*(B+k),F=B*B;var H=k-B;L.x=(B*L.x+H*a.x)/k,L.y=(B*L.y+H*a.y)/k,L.z=(B*L.z+H*a.z)/k}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,k=new e,H=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,k),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var v=a.cartesianToCartographic(_,Y);r.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,R=o.y,A=o.z;return o.x=A,o.y=T,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return O*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,E);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return E(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},v.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function E(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var v,T,R;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,v=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,O=o(e[1]))}return I}function s(){return u()&&O}function c(){if(!t(N)&&(N=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(N=!0,w=o(e[1]))}return N}function l(){return c()&&w}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(M=!0,C=o(e[1]),C.isNightly=!!e[2])}return M}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1]))}return x}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function E(){return m()&&U}function y(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function _(){return t(F)||(F=/Windows/i.test(g.appVersion)),F}function v(){return y()&&L}function T(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function A(){return R()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,O,N,w,M,C,x,P,b,U,D,L,F,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,m())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:S,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],v=E[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*r,T[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r,T[v]=(e[u.getElementIndex(v,y)]+e[u.getElementIndex(y,v)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,r,r)};var E=new e,y=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);n[o]=E.x*u,n[o+1]=E.y*u,n[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,r,n){return R=s.multiplyByScalar(t,r,R),n=s.multiplyByScalar(e,1-r,n),s.add(R,n,n)};var A=new s,S=new s,g=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),g=s.multiplyByScalar(a,Math.sin(r*u),g),n=s.add(S,g,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,O=new e,N=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,N);s.multiply(a,n,w);var o=s.log(w,I);s.multiply(a,t,w);var u=s.log(w,O);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(r,N,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;x[D]=1/(L*F),P[D]=L/F}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(x[f]*c-P[f])*o,U[f]=(x[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,v="",T=!1,R=!1,A=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":A=s.charAt(g+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,T,A);case"c":return u(String.fromCharCode(+y),_,c,f,T);case"b":return o(y,2,R,_,c,f,T);case"o":return o(y,8,R,_,c,f,T);case"x":return o(y,16,R,_,c,f,T);case"X":return o(y,16,R,_,c,f,T).toUpperCase();case"u":return o(y,10,R,_,c,f,T);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":v,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,T)[E]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,g=0,w=u[0],M=u[1];if(null!==(u=w.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(T)))r=+u[1],s=+u[2];else if(null!==(u=w.match(v)))r=+u[1];else{var C;if(null!==(u=w.match(R)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=w.match(A))){r=+u[1];var x=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));C=7*x+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(M)){u=M.match(N),null!==u?(h=+u[1],E=+u[2],_=+u[3],g=1e3*+(u[4]||0),U=5):(u=M.match(O),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),U=4):null!==(u=M.match(I))&&(h=+u[1],E=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(r,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=p(r,s,l,h,E,_,g);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(m.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var R=0|v,A=(v-R)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(R+=1),n(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=T,t.second=R,t.millisecond=A,t.isLeapSecond=r,t):new a(y,E,p,_,T,R,A,r)},m.toDate=function(e){var t=m.toGregorianDate(e,E),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--I[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,S=new u({comparator:f});S.maximumLength=A,S.reserve(A);var g=[],I={},O="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;S.length>e;){var t=S.pop();v(t)}A=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=g.length;for(e=0;e<n;++e)t=g[e],t.cancelled&&v(t),t.state===l.ACTIVE?r>0&&(g[e-r]=t):++r;g.length-=r;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(O);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(g.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;S.length>0;){v(S.pop())}for(var e=g.length,t=0;t<e;++t)v(g[t]);g.length=0,I={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,S,g,I){"use strict";function O(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function N(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var r=new e(t.url);O(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new g("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);O(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&N(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);O(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,R=E.length;T<R;T+=e._columnCount){var A=E[T+i],S=E[T+m],g=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,S,f.TAI);if(y.push(I),v){if(S!==_&&n(_)){var O=o.leapSeconds,N=t(O,I,d);if(N<0){var w=new u(I,S);O.splice(~N,0,w)}}_=S}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var v=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(n)?p=y:y-=T-v)}return u.xPoleWander=E(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)y[p]=E-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=y[m]);v[p]*=_[p];var R=3*(s+p);r.x+=v[p]*d[R++],r.y+=v[p]*d[R++],r.s+=v[p]*d[R]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},O=new r,N=new r,w=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=A[e][t],a=e+t;return u(g[a])?n=g[a]:(n=function(n,a,s){if(u(s)||(s=new _),E.equalsEpsilon(n.x,0,E.EPSILON14)&&E.equalsEpsilon(n.y,0,E.EPSILON14)){var c=E.sign(n.z);r.unpack(S[e],0,O),"east"!==e&&"west"!==e&&r.multiplyByScalar(O,c,O),r.unpack(S[t],0,N),"east"!==t&&"west"!==t&&r.multiplyByScalar(N,c,N),r.unpack(S[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),O=I[e],N=I[t],w=I[i]}return s[0]=O.x,s[1]=O.y,s[2]=O.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},g[a]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var M=new v,C=new r(1,1,1),x=new _;R.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new y;R.headingPitchRollQuaternion=function(e,t,r,n,i){var a=R.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new _,F=new _,B=new y,z=new v;R.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,U,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(r,n,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=R.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,k=new y;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=R.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,k),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,A=.779057273264+v+.00273781191135448*(_+v);A=A%1*E.TWO_PI;var S=y.fromRotationZ(A,k),g=y.multiply(h,S,X),I=Math.cos(r.xPoleWander),O=Math.cos(r.yPoleWander),N=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),M=n-2451545+i/T.SECONDS_PER_DAY;M/=36525;var C=-47e-6*M*E.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),b=k;return b[0]=I*x,b[1]=I*P,b[2]=N,b[3]=-O*P+w*N*x,b[4]=O*x+w*N*P,b[5]=-w*I,b[6]=-w*P-O*N*x,b[7]=w*x-O*N*P,b[8]=O*I,y.multiply(g,b,t)}}};var H=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=H;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,Z=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,E.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return R.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},R}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var y=new r,_=new t,v=new f,T=[new r,new r,new r],R=[new e,new e,new e],A=[new e,new e,new e],S=new t,g=new d,I=new f,O=new c;return E._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,y),h=r.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,v),N=f.inverse(E,v),w=R,M=T;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var C=S;for(u=0;u<3;u++)r.toCartesian(M[u],a,C),C=f.multiplyByPointAsVector(N,C,C),w[u].x=C.x,w[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,g),P=l.fromQuaternion(x,I),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)C=f.multiplyByPointAsVector(N,n[u],C),C=l.multiplyByVector(P,C,C),U=Math.min(U,C.x),D=Math.min(D,C.y),L=Math.max(L,C.x),F=Math.max(F,C.y);var B=c.fromRotation(i,O),z=A;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],k=z[1],H=z[2],Y=new Array(6);return e.pack(X,Y),e.pack(k,Y,2),e.pack(H,Y,4),Y},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){ -if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,E,y,_,v;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),E=t.dot(h,d),y=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),E=e.dot(h,d),y=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-E*E,R=1/T;return f.y=(_*y-E*v)*R,f.z=(m*v-E*y)*R,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=E,T=-c*m+2*s*E);var R=T<0?-1:1,A=-R*Math.abs(_)*Math.sqrt(-y);a=-T+A;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),I=a===A?-g:-v/g;return i=v<=0?g+I:-T/(g*g+I*I+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var O=p,N=-2*u*p+o*m,w=E,M=-c*m+2*s*E,C=Math.sqrt(y),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-N)/3);i=2*Math.sqrt(-O);var b=Math.cos(P);a=i*b;var U=i*(-b/2-x*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*C,-M)/3),i=2*Math.sqrt(-w),b=Math.cos(P),a=i*b,U=i*(-b/2-x*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),v=Math.sqrt(y);return[h-v,h-_,h+_,h+v]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),R=(s+d-c/T)/2,A=(s+d+c/T)/2,S=n.computeRealRoots(1,T,R),g=n.computeRealRoots(1,-T,A);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,v=t/2,T=y/2,R=_-4*o,A=_+4*Math.abs(o),S=c-4*E,g=c+4*Math.abs(E);if(E<0||R*g<S*A){var I=Math.sqrt(S);p=I/2,m=0===I?0:(t*T-a)/I}else{var O=Math.sqrt(R);p=0===O?0:(t*T-a)/O,m=O/2}var N,w;0===v&&0===p?(N=0,w=0):r.sign(v)===r.sign(p)?(N=v+p,w=E/N):(w=v-p,N=E/w);var M,C;0===T&&0===m?(M=0,C=0):r.sign(T)===r.sign(m)?(M=T+m,C=o/M):(C=T-m,M=o/C);var x=n.computeRealRoots(1,N,M),P=n.computeRealRoots(1,w,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),v=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return v;var T=l[0],R=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-R)),v.push(new e(i,a*T,a*R)),2===l.length){var A=l[1],S=Math.sqrt(Math.max(1-A*A,0));v.push(new e(i,a*A,a*-S)),v.push(new e(i,a*A,a*S))}return v}var g=_*_,I=y*y,O=p*p,N=_*y,w=O+I,M=2*(m*p+N),C=2*E*p+m*m-I+g,x=2*(E*m-N),P=E*E-g;if(0===w&&0===M&&0===C&&0===x)return v;l=c.computeRealRoots(w,M,C,x,P);var b=l.length;if(0===b)return v;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=D*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++U):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,E),R=e.subtract(a,n,y),A=e.cross(p,R,_),S=e.dot(m,A);if(u){if(S<o.EPSILON6)return;if(s=e.subtract(d,n,v),(l=e.dot(s,A))<0||l>S)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>S)return;h=e.dot(R,c)/S}else{if(Math.abs(S)<o.EPSILON6)return;var g=1/S;if(s=e.subtract(d,n,v),(l=e.dot(s,A)*g)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*g)<0||l+f>1)return;h=e.dot(R,c)*g}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var S=new l;m.lineSegmentSphere=function(t,r,i,a){var o=S;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=n/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var O=new e,N=new e,w=new e,M=new e,C=new e,x=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,O);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,O),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,N),N),m=e.normalize(e.cross(f,d,w),w),E=x;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(r.radii,b),v=u.fromScale(r.oneOverRadii,U),T=D;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var R,A,S=u.multiply(u.multiply(y,v,L),T,L),g=u.multiply(u.multiply(S,_,F),E,F),I=u.multiplyByVector(S,i,C),G=p(g,e.negate(I,O),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,k=0;k<V;++k){R=u.multiplyByVector(_,u.multiplyByVector(E,G[k],B),B);var H=e.normalize(e.subtract(R,i,M),M),Y=e.dot(H,a);Y>X&&(X=Y,W=e.clone(R,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var E=0,y=u+1;i=1;var _,v,T=[],R=[],A=0,S=[],g=s/3,I=[];for(d=0;d<g;d++)I[d]=!1;for(var O,N;-1!==E;){T=[],v=p[E],N=v.vertexTriangles.length;for(var w=0;w<N;++w)if(m=v.vertexTriangles[w],!I[m]){I[m]=!0,l=m+m+m;for(var M=0;M<3;++M)O=a[l],T.push(O),R.push(O),S[A]=O,++A,_=p[O],--_.numLiveTriangles,y-_.timeStamp>u&&(_.timeStamp=y,++y),++l}E=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,y,R,c)}return S},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,S,g){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function O(e){for(var t=e.length,r=t/3*6,n=E.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function N(e){var t=e.length;if(t>=3){var r=6*(t-2),n=E.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function w(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=E.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function M(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function C(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function x(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),R.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,y=b(e,t);for(n in y)if(y.hasOwnProperty(n))for(s=y[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:y,primitiveType:S.POINTS})),R=E.createTypedArray(T,v),A=0,g=0;for(a=0;a<h;++a){var I=e[a][t].indices,O=I.length;for(u=0;u<O;++u)R[A++]=g+I[u];g+=d.computeNumberOfVertices(e[a][t])}_=R}var N,w=new i,M=0;for(a=0;a<h;++a){if(N=e[a][t].boundingSphere,!c(N)){w=void 0;break}i.add(N.center,w,w)}if(c(w))for(i.divideByScalar(w,h,w),a=0;a<h;++a){N=e[a][t].boundingSphere;var C=i.magnitude(i.subtract(N.center,w,fe))+N.radius;C>M&&(M=C)}return new d({attributes:y,indices:_,primitiveType:m,boundingSphere:c(w)?new r(w,M):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=S.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=S.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=S.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=S.LINES,e}function G(e){switch(e.primitiveType){case S.TRIANGLE_FAN:return L(e);case S.TRIANGLE_STRIP:return F(e);case S.TRIANGLES:return D(e);case S.LINE_STRIP:return z(e);case S.LINE_LOOP:return q(e);case S.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?v.sign(e.y):v.sign(r.y):a>o?v.sign(t.y):v.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,ge),e.y/(e.y-t.y),ge),r),i.clone(r,n),V(r,!0),V(n,!1)}function k(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=Me.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Ie,Ne),X(e,r,Oe,we),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Ie,Ne),X(t,e,Oe,we),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Ie,Ne),X(r,t,Oe,we),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Ie,Ne),X(r,t,Oe,we),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Ie,Ne),X(t,e,Oe,we),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Ie,Ne),X(e,r,Oe,we),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Me.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=Oe,s[5]=Ne,s[6]=we,s.length=7),Me}}function H(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=E.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function Y(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=H(t,n),r=H(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var E=e.add(d,p,d);e.add(E,m,E),h&&e.normalize(E,E),e.pack(E,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,E,y,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==E){var v=i.fromArray(o,3*e,Ue),T=i.fromArray(o,3*r,De),R=i.fromArray(o,3*n,Le),A=t(a,v,T,R,Fe);if(c(u)&&xe(e,r,n,A,u,p.normal.values,_,!0),c(h)){var S=i.fromArray(h,3*e,Ue),g=i.fromArray(h,3*r,De),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(S,A.x,S),i.multiplyByScalar(g,A.y,g),i.multiplyByScalar(I,A.z,I);var O;i.equals(S,i.ZERO)&&i.equals(g,i.ZERO)&&i.equals(I,i.ZERO)?(O=Ue,O.x=0,O.y=0,O.z=0):(O=i.add(S,g,S),i.add(O,I,O),i.normalize(O,O)),i.pack(O,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,A,d,p.applyOffset.values,_),c(s)&&xe(e,r,n,A,s,p.tangent.values,_,!0),c(l)&&xe(e,r,n,A,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,A,f,p.st.values,_),E>0)for(var N=0;N<E;N++){var w=m[N];J(e,r,n,A,_,y[w],p[w])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Ce(e,t,r,n,s,c,i,!1);break;case 3:xe(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,E,y,_,v,T=d.length,R=Y(t),A=Y(t),S=[];S.length=n.length/3;var g=[];for(g.length=n.length/3,v=0;v<S.length;++v)S[v]=-1,g[v]=-1;var I=h.length;for(v=0;v<I;v+=3){var O=h[v],N=h[v+1],w=h[v+2],M=i.fromArray(n,3*O),C=i.fromArray(n,3*N),x=i.fromArray(n,3*w),P=k(M,C,x);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=A.attributes,E=A.indices,y=S):(m=R.attributes,E=R.indices,y=g),_=Q(m,E,y,h,F<3?v+F:-1,B),K(O,N,w,B,n,a,u,o,s,l,f,m,d,T,r,_)}else c(P)&&(M=P.positions[0],C=P.positions[1],x=P.positions[2]),M.y<0?(m=A.attributes,E=A.indices,y=S):(m=R.attributes,E=R.indices,y=g),_=Q(m,E,y,h,v,M),K(O,N,w,M,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+1,C),K(O,N,w,C,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+2,x),K(O,N,w,x,n,a,u,o,s,l,f,m,d,T,r,_)}j(e,A,R)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=Y(r),l=Y(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],E=u[t+1],y=i.fromArray(a,3*m,Ue),T=i.fromArray(a,3*E,De);Math.abs(y.y)<v.EPSILON6&&(y.y<0?y.y=-v.EPSILON6:y.y=v.EPSILON6),Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var R=s.attributes,A=s.indices,S=d,g=l.attributes,I=l.indices,O=h,N=_.lineSegmentPlane(y,T,ze,Le);if(c(N)){var w=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);y.y<0&&(i.negate(w,w),R=l.attributes,A=l.indices,S=h,g=s.attributes,I=s.indices,O=d);var M=i.add(N,w,Ge);p=Q(R,A,S,u,t,y),ee(m,E,y,a,p,R,o),p=Q(R,A,S,u,-1,M),ee(m,E,M,a,p,R,o),i.negate(w,w),i.add(N,w,M),p=Q(g,I,O,u,-1,M),ee(m,E,M,a,p,g,o),p=Q(g,I,O,u,t+1,T),ee(m,E,T,a,p,g,o)}else{var C,x,P;y.y<0?(C=l.attributes,x=l.indices,P=h):(C=s.attributes,x=s.indices,P=d),p=Q(C,x,P,u,t,y),ee(m,E,y,a,p,C,o),p=Q(C,x,P,u,t+1,T),ee(m,E,T,a,p,C,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,ke);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,He);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,E=Y(u),y=Y(u),T=!1,R=l.length/3;for(t=0;t<R;t+=4){var A=t,S=t+2,g=i.fromArray(l,3*A,Xe),I=i.fromArray(l,3*S,ke);if(Math.abs(g.y)<Qe)for(g.y=Qe*(I.y<0?-1:1),l[3*t+1]=g.y,l[3*(t+1)+1]=g.y,r=3*A;r<3*A+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(g.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*A;r<3*A+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var O=E.attributes,N=E.indices,w=y.attributes,M=y.indices,C=_.lineSegmentPlane(g,I,ze,Ye);if(c(C)){T=!0;var x=i.multiplyByScalar(i.UNIT_Y,Je,je);g.y<0&&(i.negate(x,x),O=y.attributes,N=y.indices,w=E.attributes,M=E.indices);var P=i.add(C,x,Ze);O.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),O.position.values.push(P.x,P.y,P.z),O.position.values.push(P.x,P.y,P.z),O.prevPosition.values.push(f[3*A],f[3*A+1],f[3*A+2]),O.prevPosition.values.push(f[3*A+3],f[3*A+4],f[3*A+5]),O.prevPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),i.negate(x,x),i.add(C,x,P),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.nextPosition.values.push(h[3*S],h[3*S+1],h[3*S+2]),w.nextPosition.values.push(h[3*S+3],h[3*S+4],h[3*S+5]);var b=n.fromArray(d,2*A,Ve),U=Math.abs(b.y) -;O.expandAndWidth.values.push(-1,U,1,U),O.expandAndWidth.values.push(-1,-U,1,-U),w.expandAndWidth.values.push(-1,U,1,U),w.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(C,g,He));if(D/=i.magnitudeSquared(i.subtract(I,g,He)),c(m)){var L=a.fromArray(m,4*A,Ke),F=a.fromArray(m,4*S,Ke),B=v.lerp(L.x,F.x,D),z=v.lerp(L.y,F.y,D),q=v.lerp(L.z,F.z,D),G=v.lerp(L.w,F.w,D);for(r=4*A;r<4*A+8;++r)O.color.values.push(m[r]);for(O.color.values.push(B,z,q,G),O.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),r=4*S;r<4*S+8;++r)w.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*A,Ve),W=n.fromArray(p,2*(t+3),We),X=v.lerp(V.x,W.x,D);for(r=2*A;r<2*A+4;++r)O.st.values.push(p[r]);for(O.st.values.push(X,V.y),O.st.values.push(X,W.y),w.st.values.push(X,V.y),w.st.values.push(X,W.y),r=2*S;r<2*S+4;++r)w.st.values.push(p[r])}o=O.position.values.length/3-4,N.push(o,o+2,o+1),N.push(o+1,o+2,o+3),o=w.position.values.length/3-4,M.push(o,o+2,o+1),M.push(o+1,o+2,o+3)}else{var k,H;for(g.y<0?(k=y.attributes,H=y.indices):(k=E.attributes,H=E.indices),k.position.values.push(g.x,g.y,g.z),k.position.values.push(g.x,g.y,g.z),k.position.values.push(I.x,I.y,I.z),k.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)k.prevPosition.values.push(f[r]),k.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)k.expandAndWidth.values.push(d[r]),c(p)&&k.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)k.color.values.push(m[r]);o=k.position.values.length/3-4,H.push(o,o+2,o+1),H.push(o+1,o+2,o+3)}}T&&(re(y),re(E)),j(e,y,E)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case S.TRIANGLES:e.indices=O(t);break;case S.TRIANGLE_STRIP:e.indices=N(t);break;case S.TRIANGLE_FAN:e.indices=w(t)}e.primitiveType=S.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,E=e.boundingSphere;return c(E)&&(m=new r(E.center,E.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:S.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=E.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var y in m)if(m.hasOwnProperty(y)&&c(m[y])&&c(m[y].values)){for(var _=m[y],v=_.values,T=0,R=_.componentsPerAttribute,A=u.createTypedArray(_.componentDatatype,p*R);T<t;){var S=n[T];if(-1!==S)for(var g=0;g<R;g++)A[R*S+g]=v[R*T+g];++T}_.values=A}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===S.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=g.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=v.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=M(e.attributes),s=e.indices,l=s.length;e.primitiveType===S.TRIANGLES?n=3:e.primitiveType===S.LINES?n=2:e.primitiveType===S.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,C(u,e.attributes,p)),a.push(m)}o+n>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=M(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var E=i.fromArray(l,m,ae),y=s.cartesianToCartographic(E,oe),_=a.project(y,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new R,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(R.equals(t,R.IDENTITY))return e;var n=e.geometry.attributes;x(t,n.position),x(t,n.prevPosition),x(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(R.inverse(t,ce),R.transpose(ce,ce),R.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=R.clone(R.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],E=r[t+2],y=3*d,_=3*m,T=3*E;de.x=a[y],de.y=a[y+1],de.z=a[y+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[E].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var R=0;for(t=0;t<o;t++)c[t].indexOffset+=R,R+=c[t].count;h=0;var A;for(t=0;t<s;t+=3){A=c[r[t]];var S=A.indexOffset+A.currentCount;f[S]=h,A.currentCount++,A=c[r[t+1]],S=A.indexOffset+A.currentCount,f[S]=h,A.currentCount++,A=c[r[t+2]],S=A.indexOffset+A.currentCount,f[S]=h,A.currentCount++,h++}var g=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(A=c[t],i.clone(i.ZERO,he),A.count>0){for(h=0;h<A.count;h++)i.add(he,l[f[A.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[A.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),g[I]=he.x,g[I+1]=he.y,g[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:g}),e};var Ee=new i,ye=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],E=r[t+1],y=r[t+2];f=3*m,h=3*E,d=3*y;var _=2*m,v=2*E,T=2*y,R=n[f],A=n[f+1],S=n[f+2],g=o[_],I=o[_+1],O=o[v+1]-I,N=o[T+1]-I,w=1/((o[v]-g)*N-(o[T]-g)*O),M=(N*(n[h]-R)-O*(n[d]-R))*w,C=(N*(n[h+1]-A)-O*(n[d+1]-A))*w,x=(N*(n[h+2]-S)-O*(n[d+2]-S))*w;l[f]+=M,l[f+1]+=C,l[f+2]+=x,l[h]+=M,l[h+1]+=C,l[h+2]+=x,l[d]+=M,l[d+1]+=C,l[d+2]+=x}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,Ee),D=i.fromArray(l,f,_e),L=i.dot(U,D);i.multiplyByScalar(U,L,ye),i.normalize(i.subtract(D,ye,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new n,Te=new i,Re=new i,Ae=new i,Se=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(Se=e.octEncodeInRange(Te,65535,Se),l[f++]=Se.x,l[f++]=Se.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),E=c(d);if(!m&&!E)return t;var y,_,v,T,R=t.attributes.tangent,A=t.attributes.bitangent,S=c(R),g=c(A);m&&(y=h.values),E&&(_=d.values),S&&(v=R.values),g&&(T=A.values),a=(m?y.length:_.length)/(m?3:2);var I=a,O=E&&m?2:1;O+=S||g?1:0,I*=O;var N=new Float32Array(I),w=0;for(r=0;r<a;++r){E&&(n.fromArray(_,2*r,ve),N[w++]=e.compressTextureCoordinates(ve));var M=3*r;m&&c(v)&&c(T)?(i.fromArray(y,M,Te),i.fromArray(v,M,Re),i.fromArray(T,M,Ae),e.octPack(Te,Re,Ae,ve),N[w++]=ve.x,N[w++]=ve.y):(m&&(i.fromArray(y,M,Te),N[w++]=e.octEncodeFloat(Te)),S&&(i.fromArray(v,M,Te),N[w++]=e.octEncodeFloat(Te)),g&&(i.fromArray(T,M,Te),N[w++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:O,values:N}),m&&delete t.attributes.normal,E&&delete t.attributes.st,g&&delete t.attributes.bitangent,S&&delete t.attributes.tangent,t};var ge=new i,Ie=new i,Oe=new i,Ne=new i,we=new i,Me={positions:new Array(7),indices:new Array(9)},Ce=Z(a,4),xe=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>v.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=A.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,ke=new i,He=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,A.ORIGIN_ZX_PLANE)!==y.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===S.TRIANGLES?$(e):t.primitiveType===S.LINES&&te(e);return e},ie}),define("Core/OffsetGeometryInstanceAttribute",["./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties"],function(e,t,r,n,i){"use strict";function a(e,t,n){e=r(e,0),t=r(t,0),n=r(n,0),this.value=new Float32Array([e,t,n])}return i(a.prototype,{componentDatatype:{get:function(){return t.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}}),a.fromCartesian3=function(e){return new a(e.x,e.y,e.z)},a.toValue=function(e,t){return n(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t},a}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},s.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},s}),define("Scene/PrimitivePipeline",["../Core/BoundingSphere","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/GeographicProjection","../Core/Geometry","../Core/GeometryAttribute","../Core/GeometryAttributes","../Core/GeometryPipeline","../Core/IndexDatatype","../Core/Matrix4","../Core/OffsetGeometryInstanceAttribute","../Core/WebMercatorProjection"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e,t,r){var i,a=!r,o=e.length;if(!a&&o>1){var u=e[0].modelMatrix;for(i=1;i<o;++i)if(!d.equals(u,e[i].modelMatrix)){a=!0;break}}if(a)for(i=0;i<o;++i)n(e[i].geometry)&&f.transformToWorldCoordinates(e[i]);else d.multiplyTransformation(t,e[0].modelMatrix,t)}function y(e,r){var n=e.attributes,i=n.position,a=i.values.length/i.componentsPerAttribute;n.batchId=new c({componentDatatype:t.FLOAT,componentsPerAttribute:1,values:new Float32Array(a)});for(var o=n.batchId.values,u=0;u<a;++u)o[u]=r}function _(e){for(var t=e.length,r=0;r<t;++r){var i=e[r];n(i.geometry)?y(i.geometry,r):n(i.westHemisphereGeometry)&&n(i.eastHemisphereGeometry)&&(y(i.westHemisphereGeometry,r),y(i.eastHemisphereGeometry,r))}}function v(r){var i,a,o=r.instances,u=r.projection,s=r.elementIndexUintSupported,c=r.scene3DOnly,l=r.vertexCacheOptimize,h=r.compressVertices,d=r.modelMatrix,p=o.length;for(i=0;i<p;++i)if(n(o[i].geometry)){o[i].geometry.primitiveType;break}if(E(o,d,c),!c)for(i=0;i<p;++i)n(o[i].geometry)&&f.splitLongitude(o[i]);if(_(o),l)for(i=0;i<p;++i){var m=o[i];n(m.geometry)?(f.reorderForPostVertexCache(m.geometry),f.reorderForPreVertexCache(m.geometry)):n(m.westHemisphereGeometry)&&n(m.eastHemisphereGeometry)&&(f.reorderForPostVertexCache(m.westHemisphereGeometry),f.reorderForPreVertexCache(m.westHemisphereGeometry),f.reorderForPostVertexCache(m.eastHemisphereGeometry),f.reorderForPreVertexCache(m.eastHemisphereGeometry))}var y=f.combineInstances(o);for(p=y.length,i=0;i<p;++i){a=y[i];var v,T=a.attributes;if(c)for(v in T)T.hasOwnProperty(v)&&T[v].componentDatatype===t.DOUBLE&&f.encodeAttribute(a,v,v+"3DHigh",v+"3DLow");else for(v in T)if(T.hasOwnProperty(v)&&T[v].componentDatatype===t.DOUBLE){var R=v+"3D",A=v+"2D";f.projectTo2D(a,v,R,A,u),n(a.boundingSphere)&&"position"===v&&(a.boundingSphereCV=e.fromVertices(a.attributes.position2D.values)),f.encodeAttribute(a,R,R+"High",R+"Low"),f.encodeAttribute(a,A,A+"High",A+"Low")}h&&f.compressVertices(a)}if(!s){var S=[];for(p=y.length,i=0;i<p;++i)a=y[i],S=S.concat(f.fitToUnsignedShortIndices(a));y=S}return y}function T(e,t,r,i){var a,o,u,s=i.length-1;if(s>=0){var c=i[s];a=c.offset+c.count,u=c.index,o=r[u].indices.length}else a=0,u=0,o=r[u].indices.length;for(var l=e.length,f=0;f<l;++f){var h=e[f],d=h[t];if(n(d)){var p=d.indices.length;a+p>o&&(a=0,o=r[++u].indices.length),i.push({index:u,offset:a,count:p}),a+=p}}}function R(e,t){var r=[];return T(e,"geometry",t,r),T(e,"westHemisphereGeometry",t,r),T(e,"eastHemisphereGeometry",t,r),r}function A(e,t){var r=e.attributes;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];n(a)&&n(a.values)&&t.push(a.values.buffer)}n(e.indices)&&t.push(e.indices.buffer)}function S(e,t){for(var r=e.length,n=0;n<r;++n)A(e[n],t)}function g(t){for(var r=1,i=t.length,a=0;a<i;a++){var o=t[a];if(++r,n(o)){var u=o.attributes;r+=7+2*e.packedLength+(n(o.indices)?o.indices.length:0);for(var s in u)if(u.hasOwnProperty(s)&&n(u[s])){var c=u[s];r+=5+c.values.length}}}return r}function I(e,t){var r=e.length,i=new Float64Array(1+19*r),a=0;i[a++]=r;for(var o=0;o<r;o++){var u=e[o];if(d.pack(u.modelMatrix,i,a),a+=d.packedLength,n(u.attributes)&&n(u.attributes.offset)){var s=u.attributes.offset.value;i[a]=s[0],i[a+1]=s[1],i[a+2]=s[2]}a+=3}return t.push(i.buffer),i}function O(e){for(var t=e,r=new Array(t[0]),i=0,a=1;a<t.length;){var o,u=d.unpack(t,a);a+=d.packedLength,n(t[a])&&(o={offset:new p(t[a],t[a+1],t[a+2])}),a+=3,r[i++]={modelMatrix:u,attributes:o}}return r}function N(t){var r=t.length,i=1+(e.packedLength+1)*r,a=new Float32Array(i),o=0;a[o++]=r;for(var u=0;u<r;++u){var s=t[u];n(s)?(a[o++]=1,e.pack(t[u],a,o)):a[o++]=0,o+=e.packedLength}return a}function w(t){for(var r=new Array(t[0]),n=0,i=1;i<t.length;)1===t[i++]&&(r[n]=e.unpack(t,i)),++n,i+=e.packedLength;return r}if(!o.supportsTypedArrays())return{};var M={};return M.combineGeometry=function(t){var r,i,a,o,u=t.instances,s=u.length,c=!1;s>0&&(r=v(t),r.length>0&&(i=f.createAttributeLocations(r[0]),t.createPickOffsets&&(a=R(u,r))),n(u[0].attributes)&&n(u[0].attributes.offset)&&(o=new Array(s),c=!0));for(var l=new Array(s),h=new Array(s),d=0;d<s;++d){var p=u[d],m=p.geometry;n(m)&&(l[d]=m.boundingSphere,h[d]=m.boundingSphereCV,c&&(o[d]=p.geometry.offsetAttribute));var E=p.eastHemisphereGeometry,y=p.westHemisphereGeometry;n(E)&&n(y)&&(n(E.boundingSphere)&&n(y.boundingSphere)&&(l[d]=e.union(E.boundingSphere,y.boundingSphere)),n(E.boundingSphereCV)&&n(y.boundingSphereCV)&&(h[d]=e.union(E.boundingSphereCV,y.boundingSphereCV)))}return{geometries:r,modelMatrix:t.modelMatrix,attributeLocations:i,pickOffsets:a,offsetInstanceExtend:o,boundingSpheres:l,boundingSpheresCV:h}},M.packCreateGeometryResults=function(t,i){var a=new Float64Array(g(t)),o=[],u={},s=t.length,c=0;a[c++]=s;for(var l=0;l<s;l++){var f=t[l],h=n(f);if(a[c++]=h?1:0,h){a[c++]=f.primitiveType,a[c++]=f.geometryType,a[c++]=r(f.offsetAttribute,-1);var d=n(f.boundingSphere)?1:0;a[c++]=d,d&&e.pack(f.boundingSphere,a,c),c+=e.packedLength;var p=n(f.boundingSphereCV)?1:0;a[c++]=p,p&&e.pack(f.boundingSphereCV,a,c),c+=e.packedLength;var m=f.attributes,E=[];for(var y in m)m.hasOwnProperty(y)&&n(m[y])&&(E.push(y),n(u[y])||(u[y]=o.length,o.push(y)));a[c++]=E.length;for(var _=0;_<E.length;_++){var v=E[_],T=m[v];a[c++]=u[v],a[c++]=T.componentDatatype,a[c++]=T.componentsPerAttribute,a[c++]=T.normalize?1:0,a[c++]=T.values.length,a.set(T.values,c),c+=T.values.length}var R=n(f.indices)?f.indices.length:0;a[c++]=R,R>0&&(a.set(f.indices,c),c+=R)}}return i.push(a.buffer),{stringTable:o,packedData:a}},M.unpackCreateGeometryResults=function(r){for(var n,i=r.stringTable,a=r.packedData,o=new Array(a[0]),u=0,f=1;f<a.length;){if(1===a[f++]){var d=a[f++],p=a[f++],m=a[f++];-1===m&&(m=void 0);var E,y;1===a[f++]&&(E=e.unpack(a,f)),f+=e.packedLength;1===a[f++]&&(y=e.unpack(a,f)),f+=e.packedLength;var _,v,T,R=new l,A=a[f++];for(n=0;n<A;n++){var S=i[a[f++]],g=a[f++];T=a[f++];var I=0!==a[f++];_=a[f++],v=t.createTypedArray(g,_);for(var O=0;O<_;O++)v[O]=a[f++];R[S]=new c({componentDatatype:g,componentsPerAttribute:T,normalize:I,values:v})}var N;if((_=a[f++])>0){var w=v.length/T;for(N=h.createTypedArray(w,_),n=0;n<_;n++)N[n]=a[f++]}o[u++]=new s({primitiveType:d,geometryType:p,boundingSphere:E,boundingSphereCV:y,indices:N,attributes:R,offsetAttribute:m})}else o[u++]=void 0}return o},M.packCombineGeometryParameters=function(e,t){for(var r=e.createGeometryResults,n=r.length,i=0;i<n;i++)t.push(r[i].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:I(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof u,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}},M.unpackCombineGeometryParameters=function(e){for(var t=O(e.packedInstances),r=e.createGeometryResults,n=r.length,i=0,o=0;o<n;o++)for(var s=M.unpackCreateGeometryResults(r[o]),c=s.length,l=0;l<c;l++){var f=s[l],h=t[i];h.geometry=f,++i}var p=a.clone(e.ellipsoid);return{instances:t,ellipsoid:p,projection:e.isGeographic?new u(p):new m(p),elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:d.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}},M.packCombineGeometryResults=function(e,t){n(e.geometries)&&S(e.geometries,t);var r=N(e.boundingSpheres),i=N(e.boundingSpheresCV);return t.push(r.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:r,boundingSpheresCV:i}},M.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:w(e.boundingSpheres),boundingSpheresCV:w(e.boundingSpheresCV)}},M}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var r,n=t.name,i=t.message;r=e(n)&&e(i)?n+": "+i:t.toString();var a=t.stack;return e(a)&&(r+="\n"+a),r}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,r,n){"use strict";function i(t,r,n){try{return t(r,n)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){r(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+n(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/combineGeometry",["../Scene/PrimitivePipeline","./createTaskProcessorWorker"],function(e,t){"use strict";function r(t,r){var n=e.unpackCombineGeometryParameters(t),i=e.combineGeometry(n);return e.packCombineGeometryResults(i,r)}return t(r)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-KYVZRNFI.js";import{a as r}from"./chunk-3R25OJXK.js";import"./chunk-ZEP44EYN.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";function n(o,t){let m=e.unpackCombineGeometryParameters(o),i=e.combineGeometry(m);return e.packCombineGeometryResults(i,t)}var c=r(n);export{c as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxGeometry.js index 9d659f5db..7f88af002 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:E,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,E=i.y,p=i.z,m=l*l*d*d,_=f*f*E*E,y=h*h*p*p,T=m+_+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,O=u.z,N=o;N.x=A.x*S*2,N.y=A.y*I*2,N.z=A.z*O*2;var v,w,M,C,g,x,P,U,D,F,L,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(N)),B=0;do{b-=B,M=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*O),x=M*M,P=C*C,U=g*g,D=x*M,F=P*C,L=U*g,v=m*x+_*P+y*U-1,w=m*D*S+_*F*I+y*L*O;B=v/(-2*w)}while(Math.abs(v)>r.EPSILON12);return t(c)?(c.x=l*M,c.y=f*C,c.z=h*g,c):new e(l*M,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var E=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,_=o(t,E,p,m,c);if(r(_)){var y=e.multiplyComponents(_,p,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var E=new e,p=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],E[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(m-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=n-u-f+d,p=2*(i-h),m=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+d;return r(t)?(t[0]=E,t[1]=_,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=m,t[7]=T,t[8]=S,t):new s(E,p,m,_,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,E=a*i+c*o*u,p=-c*i+a*o*u,m=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=E,t[5]=_,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,m,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],m=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,_),s.multiply(h,m,h),s.multiply(_,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c) -;return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,E,p,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(E,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-m+y,R=2*(c-_),A=2*(f+p),S=2*(c+_),I=-s+d-m+y,O=2*(E-h),N=2*(f-p),v=2*(E+h),w=-s-d+m+y;return r[0]=T*a,r[1]=S*a,r[2]=N*a,r[3]=0,r[4]=R*o,r[5]=I*o,r[6]=v*o,r[7]=0,r[8]=A*u,r[9]=O*u,r[10]=w*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,m=f.z,_=d.x,y=d.y,T=d.z,R=r.x,A=r.y,S=r.z,I=u*-R+s*-A+c*-S,O=_*-R+y*-A+T*-S,N=E*R+p*A+m*S;return i(n)?(n[0]=u,n[1]=_,n[2]=-E,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=I,n[13]=O,n[14]=N,n[15]=1,n):new l(u,s,c,I,_,y,T,O,-E,-p,-m,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,E=f,p=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var E=new e;l.setScale=function(t,n,r){var i=l.getScale(t,E),a=e.divideComponents(n,i,E);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],m=e[13],_=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],O=t[5],N=t[6],v=t[7],w=t[8],M=t[9],C=t[10],g=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=r*T+u*R+f*A+p*S,L=i*T+s*R+h*A+m*S,b=a*T+c*R+d*A+_*S,B=o*T+l*R+E*A+y*S,z=r*I+u*O+f*N+p*v,q=i*I+s*O+h*N+m*v,G=a*I+c*O+d*N+_*v,V=o*I+l*O+E*N+y*v,X=r*w+u*M+f*C+p*g,W=i*w+s*M+h*C+m*g,H=a*w+c*M+d*C+_*g,Y=o*w+l*M+E*C+y*g,k=r*x+u*P+f*U+p*D,j=i*x+s*P+h*U+m*D,K=a*x+c*P+d*U+_*D,Z=o*x+l*P+E*U+y*D;return n[0]=F,n[1]=L,n[2]=b,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=X,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=K,n[15]=Z,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],m=t[1],_=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],O=t[12],N=t[13],v=t[14],w=r*p+o*m+c*_,M=i*p+u*m+l*_,C=a*p+s*m+f*_,g=r*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=r*O+o*N+c*v+h,b=i*O+u*N+l*v+d,B=a*O+s*N+f*v+E;return n[0]=w,n[1]=M,n[2]=C,n[3]=0,n[4]=g,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],m=t[4],_=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,O=r*p+o*m+c*_,N=i*p+u*m+l*_,v=a*p+s*m+f*_,w=r*y+o*T+c*R,M=i*y+u*T+l*R,C=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=I,n[3]=0,n[4]=O,n[5]=N,n[6]=v,n[7]=0,n[8]=w,n[9]=M,n[10]=C,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],m=e[6],_=e[10],S=e[14],I=e[3],O=e[7],N=e[11],v=e[15],w=_*v,M=S*N,C=m*v,g=S*O,x=m*N,P=_*O,U=p*v,D=S*I,F=p*N,L=_*I,b=p*O,B=m*I,z=w*h+g*d+x*E-(M*h+C*d+P*E),q=M*f+U*d+L*E-(w*f+D*d+F*E),G=C*f+D*h+b*E-(g*f+U*h+B*E),V=P*f+F*h+B*d-(x*f+L*h+b*d),X=M*i+C*a+P*o-(w*i+g*a+x*o),W=w*r+D*a+F*o-(M*r+U*a+L*o),H=g*r+U*i+B*o-(C*r+D*i+b*o),Y=x*r+L*i+b*a-(P*r+F*i+B*a);w=a*E,M=o*d,C=i*E,g=o*h,x=i*d,P=a*h,U=r*E,D=o*f,F=r*d,L=a*f,b=r*h,B=i*f;var k=w*O+g*N+x*v-(M*O+C*N+P*v),j=M*I+U*N+L*v-(w*I+D*N+F*v),K=C*I+D*O+b*v-(g*I+U*O+B*v),Z=P*I+F*O+B*N-(x*I+L*O+b*N),J=C*_+P*S+M*m-(x*S+w*m+g*_),Q=F*S+w*p+D*_-(U*_+L*S+M*p),$=U*m+B*S+g*p-(b*S+C*p+D*m),ee=b*_+x*p+L*m-(F*m+B*_+P*p),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=X*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=K*te,n[11]=Z*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-n*f-r*h-i*d,p=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var m=t.cartesianToCartographic(e[E]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)p.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var E=new e,p=new e,m=new e,_=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,O=new e,N=new e,v=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var v=a.x,w=a.y,M=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),w<u.y&&e.clone(a,u),w>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=C;g>D&&(D=g,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=S;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=O;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,N),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,n.center),n.radius=b):(e.clone(q,n.center),n.radius=G),n};var w=new o,M=new e,C=new e,g=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,w),h.southwest(t,g),g.height=a,h.northeast(t,x),x.height=o;var s=n.project(g,M),c=n.project(x,C),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,m),h=e.clone(u,_),v=e.clone(u,y),w=e.clone(u,T),M=t.length;for(s=0;s<M;s+=a){var C=t[s]+n.x,g=t[s+1]+n.y,x=t[s+2]+n.z;u.x=C,u.y=g,u.z=x,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>w.z&&e.clone(u,w)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(w,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=v),D>b&&(b=D,F=f,L=w);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=O;V.x=h.x,V.y=v.y,V.z=w.z;var X=e.midpoint(G,V,N),W=0;for(s=0;s<M;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var w=t[o]+n[o],M=t[o+1]+n[o+1],C=t[o+2]+n[o+2];a.x=w,a.y=M,a.z=C,w<u.x&&e.clone(a,u),w>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=g;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=O;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,N),V=0;for(o=0;o<v;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,n,i){n=r(n,Z);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var m=E.length,_=0;_<m;++_){var y=E[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen", -r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=_,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,m,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,p=function(e){h.push(e),--l||(E=p=_,d.reject(h))},E=function(e){f.push(e),--c||(E=p=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function E(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(N)&&(N=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(N=!0,v=o(e[1]))}return N}function s(){return u()&&v}function c(){if(!t(w)&&(w=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(w=!0,M=o(e[1]))}return w}function l(){return c()&&M}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1]))}return x}function E(){return d()&&P}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function m(){return p()&&D}function _(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(O.appVersion)),b}function T(){return _()&&L}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function S(){return A()?z:void 0}function I(){return I._result}var O;O="undefined"!=typeof navigator?navigator:{};var N,v,w,M,C,g,x,P,U,D,F,L,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var n=new Image;return n.onload=function(){I._result=n.width>0&&n.height>0,e.resolve(I._result)},n.onerror=function(){I._result=!1,e.resolve(I._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:m,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,_=0;d>h&&(_=1),E>h&&E>d&&(_=2);var y=m[_],T=m[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]} -return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var m=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,m);var u=s.computeAngle(y);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,E=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=E,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,I=new s,O=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-n)*u),I),O=s.multiplyByScalar(a,Math.sin(n*u),O),r=s.add(I,O,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var N=new e,v=new e,w=new s,M=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,w);s.multiply(a,r,M);var o=s.log(M,N);s.multiply(a,t,M);var u=s.log(M,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,w),s.multiply(n,w,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,w),u=s.slerp(n,r,i,M);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=g/136,P[7]=8*g/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,C);return s.multiplyByScalar(t,h,r),s.add(E,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,w),u=s.fastSlerp(n,r,i,M);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,E,p,m,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,O=0;s&&O<I;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,S);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,A,y,c,f,R);case"o":return o(_,8,A,y,c,f,R);case"x":return o(_,16,A,y,c,f,R);case"X":return o(_,16,A,y,c,f,R).toUpperCase();case"u":return o(_,10,A,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),E=d<0?"-":T,_=E+i(String(Math.abs(d)),f,"0",!1),a(_,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=E+Math.abs(d)[p](f),a(_,E,y,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function E(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+O.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,w=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;p.fromGregorianDate=function(e,t){var n=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,y=0,O=0,M=u[0],C=u[1];if(null!==(u=M.match(I)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(R)))n=+u[1],s=+u[2];else if(null!==(u=M.match(T)))n=+u[1];else{var g;if(null!==(u=M.match(A)))n=+u[1],g=+u[2],a=o(n);else if(null!==(u=M.match(S))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));g=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(C)){u=C.match(w),null!==u?(h=+u[1],m=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],m=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(N))&&(h=+u[1],m=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,m-=b;break;case"-":h+=L,m+=b;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var B=60===y;for(B&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var z=E(n,s,l,h,m,y,O);return r(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var M=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,M);r(i)||(p.addSeconds(e,-1,M),i=h(M,M),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=_,t.month=m,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(_,m,E,y,R,A,S,n)},p.toDate=function(e){var t=p.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},p.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],w.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],w.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var O=[],N={},v="undefined"!=typeof document?new e(document.location.href):new e,w=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=w,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,n=0,r=O.length;for(e=0;e<r;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(O[e-n]=t):++n;O.length-=n;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-O.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(v);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=N[r];return i(a)||(N[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return w.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){d(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,m,_,y,T,R,A,S,I,O,N){"use strict";function v(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?g(a,t._queryParameters,r):a,e.query=void 0}function w(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new O("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}), -this._url=void 0,this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);v(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(N.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new O("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);v(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&w(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);v(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;C(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==I.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=I.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new O("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))E(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=m.length;R<A;R+=e._columnCount){var S=m[R+i],I=m[R+p],O=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(O,I,f.TAI);if(_.push(N),T){if(I!==y&&r(y)){var v=o.leapSeconds,w=t(v,N,d);if(w<0){var M=new u(N,I);v.splice(~w,0,M)}}y=I}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-E;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?E=_:_-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,E,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!r(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=E.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var E,p,m=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)_[E]=m-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=_[p]);T[E]*=y[E];var A=3*(s+E);n.x+=T[E]*d[A++],n.y+=T[E]*d[A++],n.s+=T[E]*d[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,m,_,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},N={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},v=new n,w=new n,M=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(O[a])?r=O[a]:(r=function(r,a,s){if(u(s)||(s=new y),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(I[e],0,v),"east"!==e&&"west"!==e&&n.multiplyByScalar(v,c,v),n.unpack(I[t],0,w),"east"!==t&&"west"!==t&&n.multiplyByScalar(w,c,w),n.unpack(I[i],0,M),"east"!==i&&"west"!==i&&n.multiplyByScalar(M,c,M)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,N.up);var l=N.up,h=N.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,N.east),n.cross(l,h,N.north),n.multiplyByScalar(N.up,-1,N.down),n.multiplyByScalar(N.east,-1,N.west),n.multiplyByScalar(N.north,-1,N.south),v=N[e],w=N[t],M=N[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=w.x,s[5]=w.y,s[6]=w.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},O[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,g,x);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,b=new y,B=new _,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=m.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new _,H=new _;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*m.TWO_PI;var I=_.fromRotationZ(S,H),O=_.multiply(h,I,W),N=Math.cos(n.xPoleWander),v=Math.cos(n.yPoleWander),w=Math.sin(n.xPoleWander),M=Math.sin(n.yPoleWander),C=r-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*m.RADIANS_PER_DEGREE/3600,x=Math.cos(g),P=Math.sin(g),U=H;return U[0]=N*x,U[1]=N*P,U[2]=w,U[3]=-v*P+M*w*x,U[4]=v*x+M*w*P,U[5]=-M*N,U[6]=-M*P-v*w*x,U[7]=M*x-v*w*P,U[8]=v*N,_.multiply(O,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,K=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,K);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(Z,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var _=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,O=new d,N=new f,v=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=E.center(o,_),h=n.toCartesian(s,a,y),m=p.eastNorthUpToFixedFrame(h,a,T),w=f.inverse(m,T),M=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)n.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(w,g,g),M[u].x=g.x,M[u].y=g.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,O),P=l.fromQuaternion(x,N),U=r.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)g=f.multiplyByPointAsVector(w,r[u],g),g=l.multiplyByVector(P,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=M[0],G=M[2].x-q.x,V=M[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/BoxGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./PrimitiveType","./VertexFormat"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d){"use strict";function E(e){e=a(e,a.EMPTY_OBJECT);var t=e.minimum,r=e.maximum,i=a(e.vertexFormat,d.DEFAULT);this._minimum=n.clone(t),this._maximum=n.clone(r),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}var p=new n;E.fromDimensions=function(e){e=a(e,a.EMPTY_OBJECT);var t=e.dimensions,r=n.multiplyByScalar(t,.5,new n);return new E({minimum:n.negate(r,new n),maximum:r,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})},E.fromAxisAlignedBoundingBox=function(e){return new E({minimum:e.minimum,maximum:e.maximum})},E.packedLength=2*n.packedLength+d.packedLength+1,E.pack=function(e,t,r){return r=a(r,0),n.pack(e._minimum,t,r),n.pack(e._maximum,t,r+n.packedLength),d.pack(e._vertexFormat,t,r+2*n.packedLength),t[r+2*n.packedLength+d.packedLength]=a(e._offsetAttribute,-1),t};var m=new n,_=new n,y=new d,T={minimum:m,maximum:_,vertexFormat:y,offsetAttribute:void 0};E.unpack=function(e,t,r){t=a(t,0);var i=n.unpack(e,t,m),u=n.unpack(e,t+n.packedLength,_),s=d.unpack(e,t+2*n.packedLength,y),c=e[t+2*n.packedLength+d.packedLength];return o(r)?(r._minimum=n.clone(i,r._minimum),r._maximum=n.clone(u,r._maximum),r._vertexFormat=d.clone(s,r._vertexFormat),r._offsetAttribute=-1===c?void 0:c,r):(T.offsetAttribute=-1===c?void 0:c,new E(T))},E.createGeometry=function(r){var a=r._minimum,u=r._maximum,d=r._vertexFormat;if(!n.equals(a,u)){var E,m,_=new l;if(d.position&&(d.st||d.normal||d.tangent||d.bitangent)){if(d.position&&(m=new Float64Array(72),m[0]=a.x,m[1]=a.y,m[2]=u.z,m[3]=u.x,m[4]=a.y,m[5]=u.z,m[6]=u.x,m[7]=u.y,m[8]=u.z,m[9]=a.x,m[10]=u.y,m[11]=u.z,m[12]=a.x,m[13]=a.y,m[14]=a.z,m[15]=u.x,m[16]=a.y,m[17]=a.z,m[18]=u.x,m[19]=u.y,m[20]=a.z,m[21]=a.x,m[22]=u.y,m[23]=a.z,m[24]=u.x,m[25]=a.y,m[26]=a.z,m[27]=u.x,m[28]=u.y,m[29]=a.z,m[30]=u.x,m[31]=u.y,m[32]=u.z,m[33]=u.x,m[34]=a.y,m[35]=u.z,m[36]=a.x,m[37]=a.y,m[38]=a.z,m[39]=a.x,m[40]=u.y,m[41]=a.z,m[42]=a.x,m[43]=u.y,m[44]=u.z,m[45]=a.x,m[46]=a.y,m[47]=u.z,m[48]=a.x,m[49]=u.y,m[50]=a.z,m[51]=u.x,m[52]=u.y,m[53]=a.z,m[54]=u.x,m[55]=u.y,m[56]=u.z,m[57]=a.x,m[58]=u.y,m[59]=u.z,m[60]=a.x,m[61]=a.y,m[62]=a.z,m[63]=u.x,m[64]=a.y,m[65]=a.z,m[66]=u.x,m[67]=a.y,m[68]=u.z,m[69]=a.x,m[70]=a.y,m[71]=u.z,_.position=new c({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:m})),d.normal){var y=new Float32Array(72);y[0]=0,y[1]=0,y[2]=1,y[3]=0,y[4]=0,y[5]=1,y[6]=0,y[7]=0,y[8]=1,y[9]=0,y[10]=0,y[11]=1,y[12]=0,y[13]=0,y[14]=-1,y[15]=0,y[16]=0,y[17]=-1,y[18]=0,y[19]=0,y[20]=-1,y[21]=0,y[22]=0,y[23]=-1,y[24]=1,y[25]=0,y[26]=0,y[27]=1,y[28]=0,y[29]=0,y[30]=1,y[31]=0,y[32]=0,y[33]=1,y[34]=0,y[35]=0,y[36]=-1,y[37]=0,y[38]=0,y[39]=-1,y[40]=0,y[41]=0,y[42]=-1,y[43]=0,y[44]=0,y[45]=-1,y[46]=0,y[47]=0,y[48]=0,y[49]=1,y[50]=0,y[51]=0,y[52]=1,y[53]=0,y[54]=0,y[55]=1,y[56]=0,y[57]=0,y[58]=1,y[59]=0,y[60]=0,y[61]=-1,y[62]=0,y[63]=0,y[64]=-1,y[65]=0,y[66]=0,y[67]=-1,y[68]=0,y[69]=0,y[70]=-1,y[71]=0,_.normal=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:y})}if(d.st){var T=new Float32Array(48);T[0]=0,T[1]=0,T[2]=1,T[3]=0,T[4]=1,T[5]=1,T[6]=0,T[7]=1,T[8]=1,T[9]=0,T[10]=0,T[11]=0,T[12]=0,T[13]=1,T[14]=1,T[15]=1,T[16]=0,T[17]=0,T[18]=1,T[19]=0,T[20]=1,T[21]=1,T[22]=0,T[23]=1,T[24]=1,T[25]=0,T[26]=0,T[27]=0,T[28]=0,T[29]=1,T[30]=1,T[31]=1,T[32]=1,T[33]=0,T[34]=0,T[35]=0,T[36]=0,T[37]=1,T[38]=1,T[39]=1,T[40]=0,T[41]=0,T[42]=1,T[43]=0,T[44]=1,T[45]=1,T[46]=0,T[47]=1,_.st=new c({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:T})}if(d.tangent){var R=new Float32Array(72);R[0]=1,R[1]=0,R[2]=0,R[3]=1,R[4]=0,R[5]=0,R[6]=1,R[7]=0,R[8]=0,R[9]=1,R[10]=0,R[11]=0,R[12]=-1,R[13]=0,R[14]=0,R[15]=-1,R[16]=0,R[17]=0,R[18]=-1,R[19]=0,R[20]=0,R[21]=-1,R[22]=0,R[23]=0,R[24]=0,R[25]=1,R[26]=0,R[27]=0,R[28]=1,R[29]=0,R[30]=0,R[31]=1,R[32]=0,R[33]=0,R[34]=1,R[35]=0,R[36]=0,R[37]=-1,R[38]=0,R[39]=0,R[40]=-1,R[41]=0,R[42]=0,R[43]=-1,R[44]=0,R[45]=0,R[46]=-1,R[47]=0,R[48]=-1,R[49]=0,R[50]=0,R[51]=-1,R[52]=0,R[53]=0,R[54]=-1,R[55]=0,R[56]=0,R[57]=-1,R[58]=0,R[59]=0,R[60]=1,R[61]=0,R[62]=0,R[63]=1,R[64]=0,R[65]=0,R[66]=1,R[67]=0,R[68]=0,R[69]=1,R[70]=0,R[71]=0,_.tangent=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:R})}if(d.bitangent){var A=new Float32Array(72);A[0]=0,A[1]=1,A[2]=0,A[3]=0,A[4]=1,A[5]=0,A[6]=0,A[7]=1,A[8]=0,A[9]=0,A[10]=1,A[11]=0,A[12]=0,A[13]=1,A[14]=0,A[15]=0,A[16]=1,A[17]=0,A[18]=0,A[19]=1,A[20]=0,A[21]=0,A[22]=1,A[23]=0,A[24]=0,A[25]=0,A[26]=1,A[27]=0,A[28]=0,A[29]=1,A[30]=0,A[31]=0,A[32]=1,A[33]=0,A[34]=0,A[35]=1,A[36]=0,A[37]=0,A[38]=1,A[39]=0,A[40]=0,A[41]=1,A[42]=0,A[43]=0,A[44]=1,A[45]=0,A[46]=0,A[47]=1,A[48]=0,A[49]=0,A[50]=1,A[51]=0,A[52]=0,A[53]=1,A[54]=0,A[55]=0,A[56]=1,A[57]=0,A[58]=0,A[59]=1,A[60]=0,A[61]=0,A[62]=1,A[63]=0,A[64]=0,A[65]=1,A[66]=0,A[67]=0,A[68]=1,A[69]=0,A[70]=0,A[71]=1,_.bitangent=new c({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:A})}E=new Uint16Array(36),E[0]=0,E[1]=1,E[2]=2,E[3]=0,E[4]=2,E[5]=3,E[6]=6,E[7]=5,E[8]=4,E[9]=7,E[10]=6,E[11]=4,E[12]=8,E[13]=9,E[14]=10,E[15]=8,E[16]=10,E[17]=11,E[18]=14,E[19]=13,E[20]=12,E[21]=15,E[22]=14,E[23]=12,E[24]=18,E[25]=17,E[26]=16,E[27]=19,E[28]=18,E[29]=16,E[30]=20,E[31]=21,E[32]=22,E[33]=20,E[34]=22,E[35]=23}else m=new Float64Array(24),m[0]=a.x,m[1]=a.y,m[2]=a.z,m[3]=u.x,m[4]=a.y,m[5]=a.z,m[6]=u.x,m[7]=u.y,m[8]=a.z,m[9]=a.x,m[10]=u.y,m[11]=a.z,m[12]=a.x,m[13]=a.y,m[14]=u.z,m[15]=u.x,m[16]=a.y,m[17]=u.z,m[18]=u.x,m[19]=u.y,m[20]=u.z,m[21]=a.x,m[22]=u.y,m[23]=u.z,_.position=new c({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:m}),E=new Uint16Array(36),E[0]=4,E[1]=5,E[2]=6,E[3]=4,E[4]=6,E[5]=7,E[6]=1,E[7]=0,E[8]=3,E[9]=1,E[10]=3,E[11]=2,E[12]=1,E[13]=6,E[14]=5,E[15]=1,E[16]=2,E[17]=6,E[18]=2,E[19]=3,E[20]=7,E[21]=2,E[22]=7,E[23]=6,E[24]=3,E[25]=0,E[26]=4,E[27]=3,E[28]=4,E[29]=7,E[30]=0,E[31]=1,E[32]=5,E[33]=0,E[34]=5,E[35]=4;var S=n.subtract(u,a,p),I=.5*n.magnitude(S);if(o(r._offsetAttribute)){var O=m.length,N=new Uint8Array(O/3),v=r._offsetAttribute===f.NONE?0:1;e(N,v),_.applyOffset=new c({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}return new s({attributes:_,indices:E,primitiveType:h.TRIANGLES,boundingSphere:new t(n.ZERO,I),offsetAttribute:r._offsetAttribute})}};var R;return E.getUnitBox=function(){return o(R)||(R=E.createGeometry(E.fromDimensions({dimensions:new n(1,1,1),vertexFormat:d.POSITION_ONLY}))),R},E}),define("Workers/createBoxGeometry",["../Core/BoxGeometry","../Core/defined"],function(e,t){"use strict";return function(n,r){return t(r)&&(n=e.unpack(n,r)),e.createGeometry(n)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-K4YWEDY2.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js index b3650921c..c8cef41bb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createBoxOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:E,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,E=i.y,p=i.z,m=l*l*d*d,_=f*f*E*E,y=h*h*p*p,T=m+_+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,O=u.z,N=o;N.x=A.x*S*2,N.y=A.y*I*2,N.z=A.z*O*2;var v,M,w,C,g,x,U,P,D,F,L,B=(1-R)*e.magnitude(n)/(.5*e.magnitude(N)),b=0;do{B-=b,w=1/(1+B*S),C=1/(1+B*I),g=1/(1+B*O),x=w*w,U=C*C,P=g*g,D=x*w,F=U*C,L=P*g,v=m*x+_*U+y*P-1,M=m*D*S+_*F*I+y*L*O;b=v/(-2*M)}while(Math.abs(v)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var E=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,_=o(t,E,p,m,c);if(r(_)){var y=e.multiplyComponents(_,p,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var E=new e,p=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],E[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(m-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=n-u-f+d,p=2*(i-h),m=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+d;return r(t)?(t[0]=E,t[1]=_,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=m,t[7]=T,t[8]=S,t):new s(E,p,m,_,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,E=a*i+c*o*u,p=-c*i+a*o*u,m=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=E,t[5]=_,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,m,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],m=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,_),s.multiply(h,m,h),s.multiply(_,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c) -;return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,E,p,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(E,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-m+y,R=2*(c-_),A=2*(f+p),S=2*(c+_),I=-s+d-m+y,O=2*(E-h),N=2*(f-p),v=2*(E+h),M=-s-d+m+y;return r[0]=T*a,r[1]=S*a,r[2]=N*a,r[3]=0,r[4]=R*o,r[5]=I*o,r[6]=v*o,r[7]=0,r[8]=A*u,r[9]=O*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,m=f.z,_=d.x,y=d.y,T=d.z,R=r.x,A=r.y,S=r.z,I=u*-R+s*-A+c*-S,O=_*-R+y*-A+T*-S,N=E*R+p*A+m*S;return i(n)?(n[0]=u,n[1]=_,n[2]=-E,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=I,n[13]=O,n[14]=N,n[15]=1,n):new l(u,s,c,I,_,y,T,O,-E,-p,-m,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,E=f,p=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var E=new e;l.setScale=function(t,n,r){var i=l.getScale(t,E),a=e.divideComponents(n,i,E);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],m=e[13],_=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],O=t[5],N=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],x=t[12],U=t[13],P=t[14],D=t[15],F=r*T+u*R+f*A+p*S,L=i*T+s*R+h*A+m*S,B=a*T+c*R+d*A+_*S,b=o*T+l*R+E*A+y*S,z=r*I+u*O+f*N+p*v,q=i*I+s*O+h*N+m*v,G=a*I+c*O+d*N+_*v,V=o*I+l*O+E*N+y*v,X=r*M+u*w+f*C+p*g,W=i*M+s*w+h*C+m*g,H=a*M+c*w+d*C+_*g,Y=o*M+l*w+E*C+y*g,k=r*x+u*U+f*P+p*D,j=i*x+s*U+h*P+m*D,K=a*x+c*U+d*P+_*D,Z=o*x+l*U+E*P+y*D;return n[0]=F,n[1]=L,n[2]=B,n[3]=b,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=X,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=K,n[15]=Z,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],m=t[1],_=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],O=t[12],N=t[13],v=t[14],M=r*p+o*m+c*_,w=i*p+u*m+l*_,C=a*p+s*m+f*_,g=r*y+o*T+c*R,x=i*y+u*T+l*R,U=a*y+s*T+f*R,P=r*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=r*O+o*N+c*v+h,B=i*O+u*N+l*v+d,b=a*O+s*N+f*v+E;return n[0]=M,n[1]=w,n[2]=C,n[3]=0,n[4]=g,n[5]=x,n[6]=U,n[7]=0,n[8]=P,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=B,n[14]=b,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],m=t[4],_=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,O=r*p+o*m+c*_,N=i*p+u*m+l*_,v=a*p+s*m+f*_,M=r*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=I,n[3]=0,n[4]=O,n[5]=N,n[6]=v,n[7]=0,n[8]=M,n[9]=w,n[10]=C,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],m=e[6],_=e[10],S=e[14],I=e[3],O=e[7],N=e[11],v=e[15],M=_*v,w=S*N,C=m*v,g=S*O,x=m*N,U=_*O,P=p*v,D=S*I,F=p*N,L=_*I,B=p*O,b=m*I,z=M*h+g*d+x*E-(w*h+C*d+U*E),q=w*f+P*d+L*E-(M*f+D*d+F*E),G=C*f+D*h+B*E-(g*f+P*h+b*E),V=U*f+F*h+b*d-(x*f+L*h+B*d),X=w*i+C*a+U*o-(M*i+g*a+x*o),W=M*r+D*a+F*o-(w*r+P*a+L*o),H=g*r+P*i+b*o-(C*r+D*i+B*o),Y=x*r+L*i+B*a-(U*r+F*i+b*a);M=a*E,w=o*d,C=i*E,g=o*h,x=i*d,U=a*h,P=r*E,D=o*f,F=r*d,L=a*f,B=r*h,b=i*f;var k=M*O+g*N+x*v-(w*O+C*N+U*v),j=w*I+P*N+L*v-(M*I+D*N+F*v),K=C*I+D*O+B*v-(g*I+P*O+b*v),Z=U*I+F*O+b*N-(x*I+L*O+B*N),J=C*_+U*S+w*m-(x*S+M*m+g*_),Q=F*S+M*p+D*_-(P*_+L*S+w*p),$=P*m+b*S+g*p-(B*S+C*p+D*m),ee=B*_+x*p+L*m-(F*m+b*_+U*p),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=X*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=K*te,n[11]=Z*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-n*f-r*h-i*d,p=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var m=t.cartesianToCartographic(e[E]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)p.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var E=new e,p=new e,m=new e,_=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,O=new e,N=new e,v=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=o,P=c,D=C;g>D&&(D=g,U=u,P=l),x>D&&(D=x,U=s,P=f);var F=S;F.x=.5*(U.x+P.x),F.y=.5*(U.y+P.y),F.z=.5*(U.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),B=Math.sqrt(L),b=I;b.x=o.x,b.y=u.y,b.z=s.z;var z=O;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(b,z,N),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);B=.5*(B+W),L=B*B;var H=W-B;F.x=(B*F.x+H*a.x)/W,F.y=(B*F.y+H*a.y)/W,F.z=(B*F.z+H*a.z)/W}}return B<G?(e.clone(F,n.center),n.radius=B):(e.clone(q,n.center),n.radius=G),n};var M=new o,w=new e,C=new e,g=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,g),g.height=a,h.northeast(t,x),x.height=o;var s=n.project(g,w),c=n.project(x,C),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var U=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,U);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,m),h=e.clone(u,_),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+n.x,g=t[s+1]+n.y,x=t[s+2]+n.z;u.x=C,u.y=g,u.z=x,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var U=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,B=U;P>B&&(B=P,F=l,L=v),D>B&&(B=D,F=f,L=M);var b=S;b.x=.5*(F.x+L.x),b.y=.5*(F.y+L.y),b.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,b,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=O;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,N),W=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,b,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;b.x=(q*b.x+j*u.x)/k,b.y=(q*b.y+j*u.y)/k,b.z=(q*b.z+j*u.z)/k}}return q<W?(e.clone(b,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+n[o],w=t[o+1]+n[o+1],C=t[o+2]+n[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;x>F&&(F=x,P=s,D=f),U>F&&(F=U,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var B=e.magnitudeSquared(e.subtract(D,L,A)),b=Math.sqrt(B),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=O;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,N),V=0;for(o=0;o<v;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>B){var H=Math.sqrt(W);b=.5*(b+H),B=b*b;var Y=H-b;L.x=(b*L.x+Y*a.x)/H,L.y=(b*L.y+Y*a.y)/H,L.z=(b*L.z+Y*a.z)/H}}return b<V?(e.clone(L,r.center),r.radius=b):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var P=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var B=new e,b=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,B),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,n,i){n=r(n,Z);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var m=E.length,_=0;_<m;++_){var y=E[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen", -r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=_,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,m,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,p=function(e){h.push(e),--l||(E=p=_,d.reject(h))},E=function(e){f.push(e),--c||(E=p=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function E(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(N)&&(N=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(N=!0,v=o(e[1]))}return N}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,U=o(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,U=o(e[1]))}return x}function E(){return d()&&U}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function m(){return p()&&D}function _(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(B)||(B=/Windows/i.test(O.appVersion)),B}function T(){return _()&&L}function R(){return t(b)||(b=!_()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),b}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function S(){return A()?z:void 0}function I(){return I._result}var O;O="undefined"!=typeof navigator?navigator:{};var N,v,M,w,C,g,x,U,P,D,F,L,B,b,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var n=new Image;return n.onload=function(){I._result=n.width>0&&n.height>0,e.resolve(I._result)},n.onerror=function(){I._result=!1,e.resolve(I._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:m,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,_=0;d>h&&(_=1),E>h&&E>d&&(_=2);var y=m[_],T=m[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]} -return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var m=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,m);var u=s.computeAngle(y);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,E=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=E,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,I=new s,O=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-n)*u),I),O=s.multiplyByScalar(a,Math.sin(n*u),O),r=s.add(I,O,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var N=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,w);var o=s.log(w,N);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,B=2*L+1;x[F]=1/(L*B),U[F]=L/B}return x[7]=g/136,U[7]=8*g/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)P[f]=(x[f]*c-U[f])*o,D[f]=(x[f]*l-U[f])*o;var h=i*n*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,C);return s.multiplyByScalar(t,h,r),s.add(E,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,E,p,m,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,O=0;s&&O<I;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,S);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,A,y,c,f,R);case"o":return o(_,8,A,y,c,f,R);case"x":return o(_,16,A,y,c,f,R);case"X":return o(_,16,A,y,c,f,R).toUpperCase();case"u":return o(_,10,A,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),E=d<0?"-":T,_=E+i(String(Math.abs(d)),f,"0",!1),a(_,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=E+Math.abs(d)[p](f),a(_,E,y,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function E(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+O.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;p.fromGregorianDate=function(e,t){var n=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,y=0,O=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var g;if(null!==(u=w.match(A)))n=+u[1],g=+u[2],a=o(n);else if(null!==(u=w.match(S))){n=+u[1];var x=+u[2],U=+u[3]||0,P=new Date(Date.UTC(n,0,4));g=7*x+U-P.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(C)){u=C.match(M),null!==u?(h=+u[1],m=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],m=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(N))&&(h=+u[1],m=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],B=+(u[D+2]||0);switch(F){case"+":h-=L,m-=B;break;case"-":h+=L,m+=B;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var b=60===y;for(b&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var z=E(n,s,l,h,m,y,O);return r(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),b&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(p.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=_,t.month=m,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(_,m,E,y,R,A,S,n)},p.toDate=function(e){var t=p.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},p.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var O=[],N={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,n=0,r=O.length;for(e=0;e<r;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(O[e-n]=t):++n;O.length-=n;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-O.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(v);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=N[r];return i(a)||(N[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){d(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,m,_,y,T,R,A,S,I,O,N){"use strict";function v(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?g(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new O("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}), -this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);v(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function U(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function P(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function B(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(N.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new O("Error decompressing response.")):a.resolve(b(n,t))}):a.resolve(b(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);v(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);v(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return U({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),U({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;C(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==I.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=I.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void B(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new O("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))E(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=m.length;R<A;R+=e._columnCount){var S=m[R+i],I=m[R+p],O=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(O,I,f.TAI);if(_.push(N),T){if(I!==y&&r(y)){var v=o.leapSeconds,M=t(v,N,d);if(M<0){var w=new u(N,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-E;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?E=_:_-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,E,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!r(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=E.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var E,p,m=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)_[E]=m-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=_[p]);T[E]*=y[E];var A=3*(s+E);n.x+=T[E]*d[A++],n.y+=T[E]*d[A++],n.s+=T[E]*d[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,m,_,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},N={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},v=new n,M=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(O[a])?r=O[a]:(r=function(r,a,s){if(u(s)||(s=new y),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(I[e],0,v),"east"!==e&&"west"!==e&&n.multiplyByScalar(v,c,v),n.unpack(I[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(I[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,N.up);var l=N.up,h=N.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,N.east),n.cross(l,h,N.north),n.multiplyByScalar(N.up,-1,N.down),n.multiplyByScalar(N.east,-1,N.west),n.multiplyByScalar(N.north,-1,N.south),v=N[e],M=N[t],w=N[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},O[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,g,x);return a=i(e,r,a),y.multiply(a,s,a)};var U=new y,P=new _;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,U),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,B=new y,b=new _,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,B);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,b),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=m.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new _,H=new _;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*m.TWO_PI;var I=_.fromRotationZ(S,H),O=_.multiply(h,I,W),N=Math.cos(n.xPoleWander),v=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),C=r-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*m.RADIANS_PER_DEGREE/3600,x=Math.cos(g),U=Math.sin(g),P=H;return P[0]=N*x,P[1]=N*U,P[2]=M,P[3]=-v*U+w*M*x,P[4]=v*x+w*M*U,P[5]=-w*N,P[6]=-w*U-v*M*x,P[7]=w*x-v*M*U,P[8]=v*N,_.multiply(O,P,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,K=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,K);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(Z,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var _=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,O=new d,N=new f,v=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=E.center(o,_),h=n.toCartesian(s,a,y),m=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(m,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)n.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,O),U=l.fromQuaternion(x,N),P=r.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,r[u],g),g=l.multiplyByVector(U,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),B=Math.max(B,g.y);var b=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=B,z[2].x=L,z[2].y=F;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(b,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/BoxOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./PrimitiveType"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e){e=a(e,a.EMPTY_OBJECT);var t=e.minimum,r=e.maximum;this._min=n.clone(t),this._max=n.clone(r),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}var E=new n;d.fromDimensions=function(e){e=a(e,a.EMPTY_OBJECT);var t=e.dimensions,r=n.multiplyByScalar(t,.5,new n);return new d({minimum:n.negate(r,new n),maximum:r,offsetAttribute:e.offsetAttribute})},d.fromAxisAlignedBoundingBox=function(e){return new d({minimum:e.minimum,maximum:e.maximum})},d.packedLength=2*n.packedLength+1,d.pack=function(e,t,r){return r=a(r,0),n.pack(e._min,t,r),n.pack(e._max,t,r+n.packedLength),t[r+2*n.packedLength]=a(e._offsetAttribute,-1),t};var p=new n,m=new n,_={minimum:p,maximum:m,offsetAttribute:void 0};return d.unpack=function(e,t,r){t=a(t,0);var i=n.unpack(e,t,p),u=n.unpack(e,t+n.packedLength,m),s=e[t+2*n.packedLength];return o(r)?(r._min=n.clone(i,r._min),r._max=n.clone(u,r._max),r._offsetAttribute=-1===s?void 0:s,r):(_.offsetAttribute=-1===s?void 0:s,new d(_))},d.createGeometry=function(r){var a=r._min,u=r._max;if(!n.equals(a,u)){var d=new l,p=new Uint16Array(24),m=new Float64Array(24);m[0]=a.x,m[1]=a.y,m[2]=a.z,m[3]=u.x,m[4]=a.y,m[5]=a.z,m[6]=u.x,m[7]=u.y,m[8]=a.z,m[9]=a.x,m[10]=u.y,m[11]=a.z,m[12]=a.x,m[13]=a.y,m[14]=u.z,m[15]=u.x,m[16]=a.y,m[17]=u.z,m[18]=u.x,m[19]=u.y,m[20]=u.z,m[21]=a.x,m[22]=u.y,m[23]=u.z,d.position=new c({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:m}),p[0]=4,p[1]=5,p[2]=5,p[3]=6,p[4]=6,p[5]=7,p[6]=7,p[7]=4,p[8]=0,p[9]=1,p[10]=1,p[11]=2,p[12]=2,p[13]=3,p[14]=3,p[15]=0,p[16]=0,p[17]=4,p[18]=1,p[19]=5,p[20]=2,p[21]=6,p[22]=3,p[23]=7;var _=n.subtract(u,a,E),y=.5*n.magnitude(_);if(o(r._offsetAttribute)){var T=m.length,R=new Uint8Array(T/3),A=r._offsetAttribute===f.NONE?0:1;e(R,A),d.applyOffset=new c({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new s({attributes:d,indices:p,primitiveType:h.LINES,boundingSphere:new t(n.ZERO,y),offsetAttribute:r._offsetAttribute})}},d}),define("Workers/createBoxOutlineGeometry",["../Core/BoxOutlineGeometry","../Core/defined"],function(e,t){"use strict";return function(n,r){return t(r)&&(n=e.unpack(n,r)),e.createGeometry(n)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as d}from"./chunk-6UMNSGJM.js";import{a as l}from"./chunk-RYO6NY7F.js";import{b as O,c as h,d as p}from"./chunk-2HSPJH3C.js";import{d as A}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a}from"./chunk-6QVIJ7JA.js";import{a as m}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as u}from"./chunk-WHQYJFDH.js";import{a as b,b as r}from"./chunk-OYWUGDKS.js";import{e as c}from"./chunk-DRYFJEFT.js";var g=new m;function f(e){e=u(e,u.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;if(r.typeOf.object("min",t),r.typeOf.object("max",n),c(e.offsetAttribute)&&e.offsetAttribute===d.TOP)throw new b("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._min=m.clone(t),this._max=m.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}f.fromDimensions=function(e){e=u(e,u.EMPTY_OBJECT);let t=e.dimensions;r.typeOf.object("dimensions",t),r.typeOf.number.greaterThanOrEquals("dimensions.x",t.x,0),r.typeOf.number.greaterThanOrEquals("dimensions.y",t.y,0),r.typeOf.number.greaterThanOrEquals("dimensions.z",t.z,0);let n=m.multiplyByScalar(t,.5,new m);return new f({minimum:m.negate(n,new m),maximum:n,offsetAttribute:e.offsetAttribute})};f.fromAxisAlignedBoundingBox=function(e){return r.typeOf.object("boundindBox",e),new f({minimum:e.minimum,maximum:e.maximum})};f.packedLength=2*m.packedLength+1;f.pack=function(e,t,n){return r.typeOf.object("value",e),r.defined("array",t),n=u(n,0),m.pack(e._min,t,n),m.pack(e._max,t,n+m.packedLength),t[n+m.packedLength*2]=u(e._offsetAttribute,-1),t};var w=new m,x=new m,_={minimum:w,maximum:x,offsetAttribute:void 0};f.unpack=function(e,t,n){r.defined("array",e),t=u(t,0);let s=m.unpack(e,t,w),o=m.unpack(e,t+m.packedLength,x),i=e[t+m.packedLength*2];return c(n)?(n._min=m.clone(s,n._min),n._max=m.clone(o,n._max),n._offsetAttribute=i===-1?void 0:i,n):(_.offsetAttribute=i===-1?void 0:i,new f(_))};f.createGeometry=function(e){let t=e._min,n=e._max;if(m.equals(t,n))return;let s=new l,o=new Uint16Array(12*2),i=new Float64Array(8*3);i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=n.x,i[4]=t.y,i[5]=t.z,i[6]=n.x,i[7]=n.y,i[8]=t.z,i[9]=t.x,i[10]=n.y,i[11]=t.z,i[12]=t.x,i[13]=t.y,i[14]=n.z,i[15]=n.x,i[16]=t.y,i[17]=n.z,i[18]=n.x,i[19]=n.y,i[20]=n.z,i[21]=t.x,i[22]=n.y,i[23]=n.z,s.position=new p({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:i}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let k=m.subtract(n,t,g),E=m.magnitude(k)*.5;if(c(e._offsetAttribute)){let T=i.length,B=e._offsetAttribute===d.NONE?0:1,z=new Uint8Array(T/3).fill(B);s.applyOffset=new p({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:z})}return new h({attributes:s,indices:o,primitiveType:O.LINES,boundingSphere:new A(m.ZERO,E),offsetAttribute:e._offsetAttribute})};var y=f;function L(e,t){return c(t)&&(e=y.unpack(e,t)),y.createGeometry(e)}var R=L;export{R as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleGeometry.js index 1f3243903..584dc6f69 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,T=E+y+_,v=Math.sqrt(1/T),A=e.multiplyByScalar(r,v,a);if(T<s)return isFinite(v)?e.clone(A,c):void 0;var R=u.x,S=u.y,g=u.z,I=o;I.x=A.x*R*2,I.y=A.y*S*2,I.z=A.z*g*2;var N,O,w,M,x,C,P,b,U,D,L,F=(1-v)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,w=1/(1+F*R),M=1/(1+F*S),x=1/(1+F*g),C=w*w,P=M*M,b=x*x,U=C*w,D=P*M,L=b*x,N=E*C+y*P+_*b-1,O=E*U*R+y*D*S+_*L*g;B=N/(-2*O)}while(Math.abs(N)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*M,c.z=h*x,c):new e(l*w,f*M,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,E=n(r)?r._centerToleranceSquared:d,y=o(t,p,m,E,c);if(n(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),v=Math.atan2(_.y,_.x),A=Math.asin(_.z),R=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=v,i.latitude=A,i.height=R,i):new u(v,A,R)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(E-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-r+u-f+d,T=2*(c-o),v=2*(a-l),A=2*(c+o),R=-r-u+f+d;return n(t)?(t[0]=p,t[1]=y,t[2]=v,t[3]=m,t[4]=_,t[5]=A,t[6]=E,t[7]=T,t[8]=R,t):new s(p,m,E,y,_,T,v,A,R)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(E,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-E+_,v=2*(c-y),A=2*(f+m),R=2*(c+y),S=-s+d-E+_,g=2*(p-h),I=2*(f-m),N=2*(p+h),O=-s-d+E+_;return n[0]=T*a,n[1]=R*a,n[2]=I*a,n[3]=0,n[4]=v*o,n[5]=S*o,n[6]=N*o,n[7]=0,n[8]=A*u,n[9]=g*u,n[10]=O*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,T=d.z,v=n.x,A=n.y,R=n.z,S=u*-v+s*-A+c*-R,g=y*-v+_*-A+T*-R,I=p*v+m*A+E*R;return i(r)?(r[0]=u,r[1]=y,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=T,r[10]=-E,r[11]=0,r[12]=S,r[13]=g,r[14]=I,r[15]=1,r):new l(u,s,c,S,y,_,T,g,-p,-m,-E,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],T=t[0],v=t[1],A=t[2],R=t[3],S=t[4],g=t[5],I=t[6],N=t[7],O=t[8],w=t[9],M=t[10],x=t[11],C=t[12],P=t[13],b=t[14],U=t[15],D=n*T+u*v+f*A+m*R,L=i*T+s*v+h*A+E*R,F=a*T+c*v+d*A+y*R,B=o*T+l*v+p*A+_*R,z=n*S+u*g+f*I+m*N,q=i*S+s*g+h*I+E*N,G=a*S+c*g+d*I+y*N,V=o*S+l*g+p*I+_*N,W=n*O+u*w+f*M+m*x,X=i*O+s*w+h*M+E*x,H=a*O+c*w+d*M+y*x,Y=o*O+l*w+p*M+_*x,k=n*C+u*P+f*b+m*U,j=i*C+s*P+h*b+E*U,Z=a*C+c*P+d*b+y*U,K=o*C+l*P+p*b+_*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],T=t[5],v=t[6],A=t[8],R=t[9],S=t[10],g=t[12],I=t[13],N=t[14],O=n*m+o*E+c*y,w=i*m+u*E+l*y,M=a*m+s*E+f*y,x=n*_+o*T+c*v,C=i*_+u*T+l*v,P=a*_+s*T+f*v,b=n*A+o*R+c*S,U=i*A+u*R+l*S,D=a*A+s*R+f*S,L=n*g+o*I+c*N+h,F=i*g+u*I+l*N+d,B=a*g+s*I+f*N+p;return r[0]=O,r[1]=w,r[2]=M,r[3]=0,r[4]=x,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],T=t[7],v=t[8],A=n*h+o*d+c*p,R=i*h+u*d+l*p,S=a*h+s*d+f*p,g=n*m+o*E+c*y,I=i*m+u*E+l*y,N=a*m+s*E+f*y,O=n*_+o*T+c*v,w=i*_+u*T+l*v,M=a*_+s*T+f*v;return r[0]=A,r[1]=R,r[2]=S,r[3]=0,r[4]=g,r[5]=I,r[6]=N,r[7]=0,r[8]=O,r[9]=w,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,v=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],R=e[14],S=e[3],g=e[7],I=e[11],N=e[15],O=y*N,w=R*I,M=E*N,x=R*g,C=E*I,P=y*g,b=m*N,U=R*S,D=m*I,L=y*S,F=m*g,B=E*S,z=O*h+x*d+C*p-(w*h+M*d+P*p),q=w*f+b*d+L*p-(O*f+U*d+D*p),G=M*f+U*h+F*p-(x*f+b*h+B*p),V=P*f+D*h+B*d-(C*f+L*h+F*d),W=w*i+M*a+P*o-(O*i+x*a+C*o),X=O*n+U*a+D*o-(w*n+b*a+L*o),H=x*n+b*i+B*o-(M*n+U*i+F*o),Y=C*n+L*i+F*a-(P*n+D*i+B*a);O=a*p,w=o*d,M=i*p,x=o*h,C=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var k=O*g+x*I+C*N-(w*g+M*I+P*N),j=w*S+b*I+L*N-(O*S+U*I+D*N),Z=M*S+U*g+F*N-(x*S+b*g+B*N),K=P*S+D*g+B*I-(C*S+L*g+F*I),J=M*y+P*R+w*E-(C*R+O*E+x*y),Q=D*R+O*m+U*y-(b*y+L*R+w*m),$=b*E+B*R+x*m-(F*R+M*m+U*E),ee=F*y+C*m+L*E-(D*E+B*y+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,v),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,T=new e,v=new e,A=new e,R=new e,S=new e,g=new e,I=new e,N=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],v),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var N=a.x,O=a.y,w=a.z;N<o.x&&e.clone(a,o),N>c.x&&e.clone(a,c),O<u.y&&e.clone(a,u),O>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),x=e.magnitudeSquared(e.subtract(l,u,A)),C=e.magnitudeSquared(e.subtract(f,s,A)),P=o,b=c,U=M;x>U&&(U=x,P=u,b=l),C>U&&(U=C,P=s,b=f);var D=R;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,A)),F=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,A));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var H=X-F;D.x=(F*D.x+H*a.x)/X,D.y=(F*D.y+H*a.y)/X,D.z=(F*D.z+H*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var O=new o,w=new e,M=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,O),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=r.project(x,w),c=r.project(C,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=v;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),N=e.clone(u,_),O=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var M=t[s]+r.x,x=t[s+1]+r.y,C=t[s+2]+r.z;u.x=M,u.y=x,u.z=C,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>N.y&&e.clone(u,N),C<f.z&&e.clone(u,f),C>O.z&&e.clone(u,O)}var P=e.magnitudeSquared(e.subtract(h,c,A)),b=e.magnitudeSquared(e.subtract(N,l,A)),U=e.magnitudeSquared(e.subtract(O,f,A)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=N),U>F&&(F=U,D=f,L=O);var B=R;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=N.y,V.z=O.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,W,A));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=v;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),N=t.length;for(o=0;o<N;o+=3){var O=t[o]+r[o],w=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=O,a.y=w,a.z=M,O<u.x&&e.clone(a,u),O>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,A)),C=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),b=u,U=l,D=x;C>D&&(D=C,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=R;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,A)),B=Math.sqrt(F),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<N;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>F){var H=Math.sqrt(X);B=.5*(B+H),F=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);r.project(T,_)}i=d.fromPoints(p,i),o=i.center;var v=o.x,A=o.y,R=o.z;return o.x=R,o.y=v,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return E(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=v.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function E(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var T,v,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},v=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function s(){return u()&&N}function c(){if(!t(O)&&(O=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(O=!0,w=o(e[1]))}return O}function l(){return c()&&w}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(M=!0,x=o(e[1]),x.isNightly=!!e[2])}return M}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function E(){return m()&&U}function y(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function _(){return t(F)||(F=/Windows/i.test(g.appVersion)),F}function T(){return y()&&L}function v(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function R(){return A()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,N,O,w,M,x,C,P,b,U,D,L,F,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,m())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:v,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:R,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],T=E[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var v=f;v[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*r,v[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r,v[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*r,i=-v[0],a=-v[1],o=-v[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var E=new e,y=new e,_=new s,T=new s,v=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,v),s.conjugate(v,v);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,v,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);n[o]=E.x*u,n[o+1]=E.y*u,n[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var R=new s,S=new s,g=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=R=s.negate(t,R)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),g=s.multiplyByScalar(a,Math.sin(r*u),g),n=s.add(S,g,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,N=new e,O=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,O);s.multiply(a,n,w);var o=s.log(w,I);s.multiply(a,t,w);var u=s.log(w,N);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,O),s.multiply(r,O,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,O),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;C[D]=1/(L*F),P[D]=L/F}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,U[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){ -var o=s.fastSlerp(e,t,i,O),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/EllipseGeometryLibrary",["./Cartesian3","./Math","./Matrix3","./Quaternion"],function(e,t,r,n){"use strict";function i(t,i,a,l,f,h,d,p,m,E){var y=t+i;e.multiplyByScalar(l,Math.cos(y),o),e.multiplyByScalar(a,Math.sin(y),u),e.add(o,u,o);var _=Math.cos(t);_*=_;var T=Math.sin(t);T*=T;var v=h/Math.sqrt(d*_+f*T),A=v/p;return n.fromAxisAngle(o,A,s),r.fromQuaternion(s,c),r.multiplyByVector(c,m,E),e.normalize(E,E),e.multiplyByScalar(E,p,E),E}var a={},o=new e,u=new e,s=new n,c=new r,l=new e,f=new e,h=new e,d=new e;a.raisePositionsToHeight=function(t,r,n){for(var i=r.ellipsoid,a=r.height,o=r.extrudedHeight,u=n?t.length/3*2:t.length/3,s=new Float64Array(3*u),c=t.length,p=n?c:0,m=0;m<c;m+=3){var E=m+1,y=m+2,_=e.fromArray(t,m,l);i.scaleToGeodeticSurface(_,_);var T=e.clone(_,f),v=i.geodeticSurfaceNormal(_,d),A=e.multiplyByScalar(v,a,h);e.add(_,A,_),n&&(e.multiplyByScalar(v,o,A),e.add(T,A,T),s[m+p]=T.x,s[E+p]=T.y,s[y+p]=T.z),s[m]=_.x,s[E]=_.y,s[y]=_.z}return s};var p=new e,m=new e,E=new e;return a.computeEllipsePositions=function(r,n,a){var o=r.semiMinorAxis,u=r.semiMajorAxis,s=r.rotation,c=r.center,d=8*r.granularity,y=o*o,_=u*u,T=u*o,v=e.magnitude(c),A=e.normalize(c,p),R=e.cross(e.UNIT_Z,c,m);R=e.normalize(R,R);var S=e.cross(A,R,E),g=1+Math.ceil(t.PI_OVER_TWO/d),I=t.PI_OVER_TWO/(g-1),N=t.PI_OVER_TWO-g*I;N<0&&(g-=Math.ceil(Math.abs(N)/I));var O,w,M,x,C,P=g*(g+2)*2,b=n?new Array(3*P):void 0,U=0,D=l,L=f,F=4*g*3,B=F-1,z=0,q=a?new Array(F):void 0;for(N=t.PI_OVER_TWO,D=i(N,s,S,R,y,T,_,v,A,D),n&&(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z),a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x),N=t.PI_OVER_TWO-I,O=1;O<g+1;++O){if(D=i(N,s,S,R,y,T,_,v,A,D),L=i(Math.PI-N,s,S,R,y,T,_,v,A,L),n){for(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,M=2*O+2,w=1;w<M-1;++w)x=w/(M-1),C=e.lerp(D,L,x,h),b[U++]=C.x,b[U++]=C.y,b[U++]=C.z;b[U++]=L.x,b[U++]=L.y,b[U++]=L.z}a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,q[z++]=L.x,q[z++]=L.y,q[z++]=L.z),N=t.PI_OVER_TWO-(O+1)*I}for(O=g;O>1;--O){if(N=t.PI_OVER_TWO-(O-1)*I,D=i(-N,s,S,R,y,T,_,v,A,D),L=i(N+Math.PI,s,S,R,y,T,_,v,A,L),n){for(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,M=2*(O-1)+2,w=1;w<M-1;++w)x=w/(M-1),C=e.lerp(D,L,x,h),b[U++]=C.x,b[U++]=C.y,b[U++]=C.z;b[U++]=L.x,b[U++]=L.y,b[U++]=L.z}a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,q[z++]=L.x,q[z++]=L.y,q[z++]=L.z)}N=t.PI_OVER_TWO,D=i(-N,s,S,R,y,T,_,v,A,D);var G={};return n&&(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,G.positions=b,G.numPts=g),a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,G.outerPositions=q),G},a}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,T="",v=!1,A=!1,R=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":R=s.charAt(g+1);break;case"0":v=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,v,R);case"c":return u(String.fromCharCode(+y),_,c,f,v);case"b":return o(y,2,A,_,c,f,v);case"o":return o(y,8,A,_,c,f,v);case"x":return o(y,16,A,_,c,f,v);case"X":return o(y,16,A,_,c,f,v).toUpperCase();case"u":return o(y,10,A,_,c,f,v);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,v);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,v)[E]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,v=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,R=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,g=0,w=u[0],M=u[1];if(null!==(u=w.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(v)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var x;if(null!==(u=w.match(A)))r=+u[1],x=+u[2],a=o(r);else if(null!==(u=w.match(R))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));x=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(M)){u=M.match(O),null!==u?(h=+u[1],E=+u[2],_=+u[3],g=1e3*+(u[4]||0),U=5):(u=M.match(N),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),U=4):null!==(u=M.match(I))&&(h=+u[1],E=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(r,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=p(r,s,l,h,E,_,g);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(m.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,v=T/s.SECONDS_PER_MINUTE|0;T-=v*s.SECONDS_PER_MINUTE;var A=0|T,R=(T-A)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(A+=1),n(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=v,t.second=A,t.millisecond=R,t.isLeapSecond=r,t):new a(y,E,p,_,v,A,R,r)},m.toDate=function(e){var t=m.toGregorianDate(e,E),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function v(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},R=20,S=new u({comparator:f});S.maximumLength=R,S.reserve(R);var g=[],I={},N="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return R},set:function(e){if(e<R)for(;S.length>e;){var t=S.pop();T(t)}R=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=g.length;for(e=0;e<n;++e)t=g[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(g[e-r]=t):++r;g.length-=r;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);v()},h.getServerKey=function(t){var r=new e(t).resolve(N);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(g.length>=h.maximumRequests)){ -d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return m(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=g.length,t=0;t<e;++t)T(g[t]);g.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g,I){"use strict";function N(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?x(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function x(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new v),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);N(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=R.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=R.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new g("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);N(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);N(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=R.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,v=0,A=E.length;v<A;v+=e._columnCount){var R=E[v+i],S=E[v+m],g=R+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,S,f.TAI);if(y.push(I),T){if(S!==_&&n(_)){var N=o.leapSeconds,O=t(N,I,d);if(O<0){var w=new u(I,S);N.splice(~O,0,w)}}_=S}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],v=r[d+e._taiMinusUtcSecondsColumn];T!==v&&(l.equals(n)?p=y:y-=v-T)}return u.xPoleWander=E(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,v=this._xTable;for(p=0;p<=u;++p)y[p]=E-v[p];for(p=0;p<=u;++p){for(T[p]=1,m=0;m<=u;++m)m!==p&&(T[p]*=y[m]);T[p]*=_[p];var A=3*(s+p);r.x+=T[p]*d[A++],r.y+=T[p]*d[A++],r.s+=T[p]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v){"use strict";var A={},R={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},N=new r,O=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!R.hasOwnProperty(e)||!R[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=R[e][t],a=e+t;return u(g[a])?n=g[a]:(n=function(n,a,s){if(u(s)||(s=new _),E.equalsEpsilon(n.x,0,E.EPSILON14)&&E.equalsEpsilon(n.y,0,E.EPSILON14)){var c=E.sign(n.z);r.unpack(S[e],0,N),"east"!==e&&"west"!==e&&r.multiplyByScalar(N,c,N),r.unpack(S[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(S[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),N=I[e],O=I[t],w=I[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=O.x,s[5]=O.y,s[6]=O.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},g[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new T,x=new r(1,1,1),C=new _;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,x,C);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new y;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return T.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new _,F=new _,B=new y,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,U,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;A.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/v.DAYS_PER_JULIAN_CENTURY:(a-.5)/v.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*v.SECONDS_PER_DAY)%v.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,H=new y;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=A.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,T=p/v.SECONDS_PER_DAY,R=.779057273264+T+.00273781191135448*(_+T);R=R%1*E.TWO_PI;var S=y.fromRotationZ(R,H),g=y.multiply(h,S,X),I=Math.cos(r.xPoleWander),N=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),M=n-2451545+i/v.SECONDS_PER_DAY;M/=36525;var x=-47e-6*M*E.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),b=H;return b[0]=I*C,b[1]=I*P,b[2]=O,b[3]=-N*P+w*O*C,b[4]=N*C+w*O*P,b[5]=-w*I,b[6]=-w*P-N*O*C,b[7]=w*C-N*O*P,b[8]=N*I,y.multiply(g,b,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,Z=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,E.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return A.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},A}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var y=new r,_=new t,T=new f,v=[new r,new r,new r],A=[new e,new e,new e],R=[new e,new e,new e],S=new t,g=new d,I=new f,N=new c;return E._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,y),h=r.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,T),O=f.inverse(E,T),w=A,M=v;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var x=S;for(u=0;u<3;u++)r.toCartesian(M[u],a,x),x=f.multiplyByPointAsVector(O,x,x),w[u].x=x.x,w[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,g),P=l.fromQuaternion(C,I),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)x=f.multiplyByPointAsVector(O,n[u],x),x=l.multiplyByVector(P,x,x),U=Math.min(U,x.x),D=Math.min(D,x.y),L=Math.max(L,x.x),F=Math.max(F,x.y);var B=c.fromRotation(i,N),z=R;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,E,y,_,T;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),E=t.dot(h,d),y=t.dot(h,p),_=t.dot(d,d),T=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),E=e.dot(h,d),y=e.dot(h,p),_=e.dot(d,d),T=e.dot(d,p)}var v=m*_-E*E,A=1/v;return f.y=(_*y-E*T)*A,f.z=(m*T-E*y)*A,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,T,v;h*f>=l*d?(_=o,T=p,v=-2*u*p+o*m):(_=c,T=E,v=-c*m+2*s*E);var A=v<0?-1:1,R=-A*Math.abs(_)*Math.sqrt(-y);a=-v+R;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),I=a===R?-g:-T/g;return i=T<=0?g+I:-v/(g*g+I*I+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var N=p,O=-2*u*p+o*m,w=E,M=-c*m+2*s*E,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-O)/3);i=2*Math.sqrt(-N);var b=Math.cos(P);a=i*b;var U=i*(-b/2-C*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*x,-M)/3),i=2*Math.sqrt(-w),b=Math.cos(P),a=i*b,U=i*(-b/2-C*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var v=Math.sqrt(d),A=(s+d-c/v)/2,R=(s+d+c/v)/2,S=n.computeRealRoots(1,v,A),g=n.computeRealRoots(1,-v,R);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,T=t/2,v=y/2,A=_-4*o,R=_+4*Math.abs(o),S=c-4*E,g=c+4*Math.abs(E);if(E<0||A*g<S*R){var I=Math.sqrt(S);p=I/2,m=0===I?0:(t*v-a)/I}else{var N=Math.sqrt(A);p=0===N?0:(t*v-a)/N,m=N/2}var O,w;0===T&&0===p?(O=0,w=0):r.sign(T)===r.sign(p)?(O=T+p,w=E/O):(w=T-p,O=E/w);var M,x;0===v&&0===m?(M=0,x=0):r.sign(v)===r.sign(m)?(M=v+m,x=o/M):(x=v-m,M=o/x);var C=n.computeRealRoots(1,O,M),P=n.computeRealRoots(1,w,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,R);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return T;var v=l[0],A=Math.sqrt(Math.max(1-v*v,0));if(T.push(new e(i,a*v,a*-A)),T.push(new e(i,a*v,a*A)),2===l.length){var R=l[1],S=Math.sqrt(Math.max(1-R*R,0));T.push(new e(i,a*R,a*-S)),T.push(new e(i,a*R,a*S))}return T}var g=_*_,I=y*y,N=p*p,O=_*y,w=N+I,M=2*(m*p+O),x=2*E*p+m*m-I+g,C=2*(E*m-O),P=E*E-g;if(0===w&&0===M&&0===x&&0===C)return T;l=c.computeRealRoots(w,M,x,C,P);var b=l.length;if(0===b)return T;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=D*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++U):T.push(new e(i,a*L,a*z))}return T}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,T=new e,v=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,E),A=e.subtract(a,n,y),R=e.cross(p,A,_),S=e.dot(m,R);if(u){if(S<o.EPSILON6)return;if(s=e.subtract(d,n,T),(l=e.dot(s,R))<0||l>S)return;if(c=e.cross(s,m,v),(f=e.dot(p,c))<0||l+f>S)return;h=e.dot(A,c)/S}else{if(Math.abs(S)<o.EPSILON6)return;var g=1/S;if(s=e.subtract(d,n,T),(l=e.dot(s,R)*g)<0||l>1)return;if(c=e.cross(s,m,v),(f=e.dot(p,c)*g)<0||l+f>1)return;h=e.dot(A,c)*g}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var R={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var S=new l;m.lineSegmentSphere=function(t,r,i,a){var o=S;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=n/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var N=new e,O=new e,w=new e,M=new e,x=new e,C=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,N);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,N),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,O),O),m=e.normalize(e.cross(f,d,w),w),E=C;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(r.radii,b),T=u.fromScale(r.oneOverRadii,U),v=D;v[0]=0,v[1]=-a.z,v[2]=a.y,v[3]=a.z,v[4]=0,v[5]=-a.x,v[6]=-a.y,v[7]=a.x,v[8]=0;var A,R,S=u.multiply(u.multiply(y,T,L),v,L),g=u.multiply(u.multiply(S,_,F),E,F),I=u.multiplyByVector(S,i,x),G=p(g,e.negate(I,N),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(_,u.multiplyByVector(E,G[H],B),B);var Y=e.normalize(e.subtract(A,i,M),M),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(A,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),R=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-X*X),R=c?-R:R,j.height=R,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var E=0,y=u+1;i=1;var _,T,v=[],A=[],R=0,S=[],g=s/3,I=[];for(d=0;d<g;d++)I[d]=!1;for(var N,O;-1!==E;){v=[],T=p[E],O=T.vertexTriangles.length;for(var w=0;w<O;++w)if(m=T.vertexTriangles[w],!I[m]){I[m]=!0,l=m+m+m;for(var M=0;M<3;++M)N=a[l],v.push(N),A.push(N),S[R]=N,++R,_=p[N],--_.numLiveTriangles,y-_.timeStamp>u&&(_.timeStamp=y,++y),++l}E=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,v,p,y,A,c)}return S},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function N(e){for(var t=e.length,r=t/3*6,n=E.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function O(e){var t=e.length;if(t>=3){var r=6*(t-2),n=E.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function w(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=E.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function M(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function x(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),A.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),v.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,y=b(e,t);for(n in y)if(y.hasOwnProperty(n))for(s=y[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var T=0;for(a=0;a<h;++a)T+=e[a][t].indices.length;var v=d.computeNumberOfVertices(new d({attributes:y,primitiveType:S.POINTS})),A=E.createTypedArray(v,T),R=0,g=0;for(a=0;a<h;++a){var I=e[a][t].indices,N=I.length;for(u=0;u<N;++u)A[R++]=g+I[u];g+=d.computeNumberOfVertices(e[a][t])}_=A}var O,w=new i,M=0;for(a=0;a<h;++a){if(O=e[a][t].boundingSphere,!c(O)){w=void 0;break}i.add(O.center,w,w)}if(c(w))for(i.divideByScalar(w,h,w),a=0;a<h;++a){O=e[a][t].boundingSphere;var x=i.magnitude(i.subtract(O.center,w,fe))+O.radius;x>M&&(M=x)}return new d({attributes:y,indices:_,primitiveType:m,boundingSphere:c(w)?new r(w,M):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=S.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=S.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=S.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=S.LINES,e}function G(e){switch(e.primitiveType){case S.TRIANGLE_FAN:return L(e);case S.TRIANGLE_STRIP:return F(e);case S.TRIANGLES:return D(e);case S.LINE_STRIP:return z(e);case S.LINE_LOOP:return q(e);case S.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<T.EPSILON6&&(e.y=t?-T.EPSILON6:T.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?T.sign(e.y):T.sign(r.y):a>o?T.sign(t.y):T.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,ge),e.y/(e.y-t.y),ge),r),i.clone(r,n),V(r,!0),V(n,!1)}function H(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=Me.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Ie,Oe),X(e,r,Ne,we),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Ie,Oe),X(t,e,Ne,we),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Ie,Oe),X(r,t,Ne,we),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Ie,Oe),X(r,t,Ne,we),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Ie,Oe),X(t,e,Ne,we),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Ie,Oe),X(e,r,Ne,we),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Me.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=Ne,s[5]=Oe,s[6]=we,s.length=7),Me}}function Y(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=E.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function k(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=Y(t,n),r=Y(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var E=e.add(d,p,d);e.add(E,m,E),h&&e.normalize(E,E),e.pack(E,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,E,y,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==E){var T=i.fromArray(o,3*e,Ue),v=i.fromArray(o,3*r,De),A=i.fromArray(o,3*n,Le),R=t(a,T,v,A,Fe);if(c(u)&&Ce(e,r,n,R,u,p.normal.values,_,!0),c(h)){var S=i.fromArray(h,3*e,Ue),g=i.fromArray(h,3*r,De),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(S,R.x,S),i.multiplyByScalar(g,R.y,g),i.multiplyByScalar(I,R.z,I);var N;i.equals(S,i.ZERO)&&i.equals(g,i.ZERO)&&i.equals(I,i.ZERO)?(N=Ue,N.x=0,N.y=0,N.z=0):(N=i.add(S,g,S),i.add(N,I,N),i.normalize(N,N)),i.pack(N,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,R,d,p.applyOffset.values,_),c(s)&&Ce(e,r,n,R,s,p.tangent.values,_,!0),c(l)&&Ce(e,r,n,R,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,R,f,p.st.values,_),E>0)for(var O=0;O<E;O++){var w=m[O];J(e,r,n,R,_,y[w],p[w])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:xe(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,E,y,_,T,v=d.length,A=k(t),R=k(t),S=[];S.length=n.length/3;var g=[];for(g.length=n.length/3,T=0;T<S.length;++T)S[T]=-1,g[T]=-1;var I=h.length;for(T=0;T<I;T+=3){var N=h[T],O=h[T+1],w=h[T+2],M=i.fromArray(n,3*N),x=i.fromArray(n,3*O),C=i.fromArray(n,3*w),P=H(M,x,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=R.attributes,E=R.indices,y=S):(m=A.attributes,E=A.indices,y=g),_=Q(m,E,y,h,F<3?T+F:-1,B),K(N,O,w,B,n,a,u,o,s,l,f,m,d,v,r,_)}else c(P)&&(M=P.positions[0],x=P.positions[1],C=P.positions[2]),M.y<0?(m=R.attributes,E=R.indices,y=S):(m=A.attributes,E=A.indices,y=g),_=Q(m,E,y,h,T,M),K(N,O,w,M,n,a,u,o,s,l,f,m,d,v,r,_),_=Q(m,E,y,h,T+1,x),K(N,O,w,x,n,a,u,o,s,l,f,m,d,v,r,_),_=Q(m,E,y,h,T+2,C),K(N,O,w,C,n,a,u,o,s,l,f,m,d,v,r,_)}j(e,R,A)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,T.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){ -var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=k(r),l=k(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],E=u[t+1],y=i.fromArray(a,3*m,Ue),v=i.fromArray(a,3*E,De);Math.abs(y.y)<T.EPSILON6&&(y.y<0?y.y=-T.EPSILON6:y.y=T.EPSILON6),Math.abs(v.y)<T.EPSILON6&&(v.y<0?v.y=-T.EPSILON6:v.y=T.EPSILON6);var A=s.attributes,R=s.indices,S=d,g=l.attributes,I=l.indices,N=h,O=_.lineSegmentPlane(y,v,ze,Le);if(c(O)){var w=i.multiplyByScalar(i.UNIT_Y,5*T.EPSILON9,qe);y.y<0&&(i.negate(w,w),A=l.attributes,R=l.indices,S=h,g=s.attributes,I=s.indices,N=d);var M=i.add(O,w,Ge);p=Q(A,R,S,u,t,y),ee(m,E,y,a,p,A,o),p=Q(A,R,S,u,-1,M),ee(m,E,M,a,p,A,o),i.negate(w,w),i.add(O,w,M),p=Q(g,I,N,u,-1,M),ee(m,E,M,a,p,g,o),p=Q(g,I,N,u,t+1,v),ee(m,E,v,a,p,g,o)}else{var x,C,P;y.y<0?(x=l.attributes,C=l.indices,P=h):(x=s.attributes,C=s.indices,P=d),p=Q(x,C,P,u,t,y),ee(m,E,y,a,p,x,o),p=Q(x,C,P,u,t+1,v),ee(m,E,v,a,p,x,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,He);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,Ye);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,E=k(u),y=k(u),v=!1,A=l.length/3;for(t=0;t<A;t+=4){var R=t,S=t+2,g=i.fromArray(l,3*R,Xe),I=i.fromArray(l,3*S,He);if(Math.abs(g.y)<Qe)for(g.y=Qe*(I.y<0?-1:1),l[3*t+1]=g.y,l[3*(t+1)+1]=g.y,r=3*R;r<3*R+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(g.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*R;r<3*R+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var N=E.attributes,O=E.indices,w=y.attributes,M=y.indices,x=_.lineSegmentPlane(g,I,ze,ke);if(c(x)){v=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);g.y<0&&(i.negate(C,C),N=y.attributes,O=y.indices,w=E.attributes,M=E.indices);var P=i.add(x,C,Ze);N.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.prevPosition.values.push(f[3*R],f[3*R+1],f[3*R+2]),N.prevPosition.values.push(f[3*R+3],f[3*R+4],f[3*R+5]),N.prevPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(x,C,P),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.nextPosition.values.push(h[3*S],h[3*S+1],h[3*S+2]),w.nextPosition.values.push(h[3*S+3],h[3*S+4],h[3*S+5]);var b=n.fromArray(d,2*R,Ve),U=Math.abs(b.y);N.expandAndWidth.values.push(-1,U,1,U),N.expandAndWidth.values.push(-1,-U,1,-U),w.expandAndWidth.values.push(-1,U,1,U),w.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(x,g,Ye));if(D/=i.magnitudeSquared(i.subtract(I,g,Ye)),c(m)){var L=a.fromArray(m,4*R,Ke),F=a.fromArray(m,4*S,Ke),B=T.lerp(L.x,F.x,D),z=T.lerp(L.y,F.y,D),q=T.lerp(L.z,F.z,D),G=T.lerp(L.w,F.w,D);for(r=4*R;r<4*R+8;++r)N.color.values.push(m[r]);for(N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),r=4*S;r<4*S+8;++r)w.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*R,Ve),W=n.fromArray(p,2*(t+3),We),X=T.lerp(V.x,W.x,D);for(r=2*R;r<2*R+4;++r)N.st.values.push(p[r]);for(N.st.values.push(X,V.y),N.st.values.push(X,W.y),w.st.values.push(X,V.y),w.st.values.push(X,W.y),r=2*S;r<2*S+4;++r)w.st.values.push(p[r])}o=N.position.values.length/3-4,O.push(o,o+2,o+1),O.push(o+1,o+2,o+3),o=w.position.values.length/3-4,M.push(o,o+2,o+1),M.push(o+1,o+2,o+3)}else{var H,Y;for(g.y<0?(H=y.attributes,Y=y.indices):(H=E.attributes,Y=E.indices),H.position.values.push(g.x,g.y,g.z),H.position.values.push(g.x,g.y,g.z),H.position.values.push(I.x,I.y,I.z),H.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)H.prevPosition.values.push(f[r]),H.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)H.expandAndWidth.values.push(d[r]),c(p)&&H.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)H.color.values.push(m[r]);o=H.position.values.length/3-4,Y.push(o,o+2,o+1),Y.push(o+1,o+2,o+3)}}v&&(re(y),re(E)),j(e,y,E)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case S.TRIANGLES:e.indices=N(t);break;case S.TRIANGLE_STRIP:e.indices=O(t);break;case S.TRIANGLE_FAN:e.indices=w(t)}e.primitiveType=S.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,E=e.boundingSphere;return c(E)&&(m=new r(E.center,E.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:S.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=E.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var y in m)if(m.hasOwnProperty(y)&&c(m[y])&&c(m[y].values)){for(var _=m[y],T=_.values,v=0,A=_.componentsPerAttribute,R=u.createTypedArray(_.componentDatatype,p*A);v<t;){var S=n[v];if(-1!==S)for(var g=0;g<A;g++)R[A*S+g]=T[A*v+g];++v}_.values=R}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===S.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=g.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=T.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=M(e.attributes),s=e.indices,l=s.length;e.primitiveType===S.TRIANGLES?n=3:e.primitiveType===S.LINES?n=2:e.primitiveType===S.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,x(u,e.attributes,p)),a.push(m)}o+n>=T.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=M(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var E=i.fromArray(l,m,ae),y=s.cartesianToCartographic(E,oe),_=a.project(y,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new A,le=new v;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(A.equals(t,A.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(A.inverse(t,ce),A.transpose(ce,ce),A.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=A.clone(A.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],E=r[t+2],y=3*d,_=3*m,v=3*E;de.x=a[y],de.y=a[y+1],de.z=a[y+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[v],me.y=a[v+1],me.z=a[v+2],c[d].count++,c[m].count++,c[E].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var A=0;for(t=0;t<o;t++)c[t].indexOffset+=A,A+=c[t].count;h=0;var R;for(t=0;t<s;t+=3){R=c[r[t]];var S=R.indexOffset+R.currentCount;f[S]=h,R.currentCount++,R=c[r[t+1]],S=R.indexOffset+R.currentCount,f[S]=h,R.currentCount++,R=c[r[t+2]],S=R.indexOffset+R.currentCount,f[S]=h,R.currentCount++,h++}var g=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(R=c[t],i.clone(i.ZERO,he),R.count>0){for(h=0;h<R.count;h++)i.add(he,l[f[R.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,T.EPSILON10)&&i.clone(l[f[R.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,T.EPSILON10)&&(he.z=1),i.normalize(he,he),g[I]=he.x,g[I+1]=he.y,g[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:g}),e};var Ee=new i,ye=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],E=r[t+1],y=r[t+2];f=3*m,h=3*E,d=3*y;var _=2*m,T=2*E,v=2*y,A=n[f],R=n[f+1],S=n[f+2],g=o[_],I=o[_+1],N=o[T+1]-I,O=o[v+1]-I,w=1/((o[T]-g)*O-(o[v]-g)*N),M=(O*(n[h]-A)-N*(n[d]-A))*w,x=(O*(n[h+1]-R)-N*(n[d+1]-R))*w,C=(O*(n[h+2]-S)-N*(n[d+2]-S))*w;l[f]+=M,l[f+1]+=x,l[f+2]+=C,l[h]+=M,l[h+1]+=x,l[h+2]+=C,l[d]+=M,l[d+1]+=x,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,Ee),D=i.fromArray(l,f,_e),L=i.dot(U,D);i.multiplyByScalar(U,L,ye),i.normalize(i.subtract(D,ye,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var Te=new n,ve=new i,Ae=new i,Re=new i,Se=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,ve),i.equals(ve,i.ZERO)?f+=2:(Se=e.octEncodeInRange(ve,65535,Se),l[f++]=Se.x,l[f++]=Se.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),E=c(d);if(!m&&!E)return t;var y,_,T,v,A=t.attributes.tangent,R=t.attributes.bitangent,S=c(A),g=c(R);m&&(y=h.values),E&&(_=d.values),S&&(T=A.values),g&&(v=R.values),a=(m?y.length:_.length)/(m?3:2);var I=a,N=E&&m?2:1;N+=S||g?1:0,I*=N;var O=new Float32Array(I),w=0;for(r=0;r<a;++r){E&&(n.fromArray(_,2*r,Te),O[w++]=e.compressTextureCoordinates(Te));var M=3*r;m&&c(T)&&c(v)?(i.fromArray(y,M,ve),i.fromArray(T,M,Ae),i.fromArray(v,M,Re),e.octPack(ve,Ae,Re,Te),O[w++]=Te.x,O[w++]=Te.y):(m&&(i.fromArray(y,M,ve),O[w++]=e.octEncodeFloat(ve)),S&&(i.fromArray(T,M,ve),O[w++]=e.octEncodeFloat(ve)),g&&(i.fromArray(v,M,ve),O[w++]=e.octEncodeFloat(ve)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:N,values:O}),m&&delete t.attributes.normal,E&&delete t.attributes.st,g&&delete t.attributes.bitangent,S&&delete t.attributes.tangent,t};var ge=new i,Ie=new i,Ne=new i,Oe=new i,we=new i,Me={positions:new Array(7),indices:new Array(9)},xe=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>T.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=R.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,He=new i,Ye=new i,ke=new i,je=new i,Ze=new i,Ke=new a,Je=5*T.EPSILON9,Qe=T.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,R.ORIGIN_ZX_PLANE)!==y.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===S.TRIANGLES?$(e):t.primitiveType===S.LINES&&te(e);return e},ie}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/EllipseGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PrimitiveType","./Quaternion","./Rectangle","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g,I,N){"use strict";function O(t,i,a){var u=i.vertexFormat,c=i.center,l=i.semiMajorAxis,h=i.semiMinorAxis,p=i.ellipsoid,y=i.stRotation,T=a?t.length/3*2:t.length/3,v=i.shadowVolume,A=u.st?new Float32Array(2*T):void 0,S=u.normal?new Float32Array(3*T):void 0,I=u.tangent?new Float32Array(3*T):void 0,N=u.bitangent?new Float32Array(3*T):void 0,O=v?new Float32Array(3*T):void 0,w=0,M=X,x=H,C=Y,P=new d(p),b=P.project(p.cartesianToCartographic(c,k),j),U=p.scaleToGeodeticSurface(c,L);p.geodeticSurfaceNormal(U,U);var D=G,z=V;if(0!==y){var J=g.fromAxisAngle(U,y,W);D=R.fromQuaternion(J,D),J=g.fromAxisAngle(U,-y,W),z=R.fromQuaternion(J,z)}else D=R.clone(R.IDENTITY,D),z=R.clone(R.IDENTITY,z);for(var Q=r.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Z),$=r.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=a?ee:0,re=te/3*2,ne=0;ne<ee;ne+=3){var ie=ne+1,ae=ne+2,oe=n.fromArray(t,ne,L);if(u.st){var ue=R.multiplyByVector(D,oe,F),se=P.project(p.cartesianToCartographic(ue,k),B);n.subtract(se,b,se),q.x=(se.x+l)/(2*l),q.y=(se.y+h)/(2*h),Q.x=Math.min(q.x,Q.x),Q.y=Math.min(q.y,Q.y),$.x=Math.max(q.x,$.x),$.y=Math.max(q.y,$.y),a&&(A[w+re]=q.x,A[w+1+re]=q.y),A[w++]=q.x,A[w++]=q.y}(u.normal||u.tangent||u.bitangent||v)&&(M=p.geodeticSurfaceNormal(oe,M),v&&(O[ne+te]=-M.x,O[ie+te]=-M.y,O[ae+te]=-M.z),(u.normal||u.tangent||u.bitangent)&&((u.tangent||u.bitangent)&&(x=n.normalize(n.cross(n.UNIT_Z,M,x),x),R.multiplyByVector(z,x,x)),u.normal&&(S[ne]=M.x,S[ie]=M.y,S[ae]=M.z,a&&(S[ne+te]=-M.x,S[ie+te]=-M.y,S[ae+te]=-M.z)),u.tangent&&(I[ne]=x.x,I[ie]=x.y,I[ae]=x.z,a&&(I[ne+te]=-x.x,I[ie+te]=-x.y,I[ae+te]=-x.z)),u.bitangent&&(C=n.normalize(n.cross(M,x,C),C),N[ne]=C.x,N[ie]=C.y,N[ae]=C.z,a&&(N[ne+te]=C.x,N[ie+te]=C.y,N[ae+te]=C.z))))}if(u.st){ee=A.length;for(var ce=0;ce<ee;ce+=2)A[ce]=(A[ce]-Q.x)/($.x-Q.x),A[ce+1]=(A[ce+1]-Q.y)/($.y-Q.y)}var le=new E;if(u.position){var fe=f.raisePositionsToHeight(t,i,a);le.position=new m({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:fe})}if(u.st&&(le.st=new m({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:A})),u.normal&&(le.normal=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:S})),u.tangent&&(le.tangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:I})),u.bitangent&&(le.bitangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:N})),v&&(le.extrudeDirection=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:O})),a&&s(i.offsetAttribute)){var he=new Uint8Array(T);if(i.offsetAttribute===_.TOP)he=e(he,1,0,T/2);else{var de=i.offsetAttribute===_.NONE?0:1;he=e(he,de)}le.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:he})}return le}function w(e){var t,r,n,i,a,o=new Array(e*(e+1)*12-6),u=0;for(t=0,n=1,i=0;i<3;i++)o[u++]=n++,o[u++]=t,o[u++]=n;for(i=2;i<e+1;++i){for(n=i*(i+1)-1,t=(i-1)*i-1,o[u++]=n++,o[u++]=t,o[u++]=n,r=2*i,a=0;a<r-1;++a)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;o[u++]=n++,o[u++]=t,o[u++]=n}for(r=2*e,++n,++t,i=0;i<r-1;++i)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;for(o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t++,o[u++]=t,++t,i=e-1;i>1;--i){for(o[u++]=t++,o[u++]=t,o[u++]=n,r=2*i,a=0;a<r-1;++a)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;o[u++]=t++,o[u++]=t++,o[u++]=n++}for(i=0;i<3;i++)o[u++]=t++,o[u++]=t,o[u++]=n;return o}function M(e){var r=e.center;J=n.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(r,J),e.height,J),J=n.add(r,J,J);var i=new t(J,e.semiMajorAxis),a=f.computeEllipsePositions(e,!0,!1),o=a.positions,u=a.numPts,s=O(o,e,!1),c=w(u);return c=v.createTypedArray(o.length/3,c),{boundingSphere:i,attributes:s,indices:c}}function x(t,i){var a=i.vertexFormat,u=i.center,c=i.semiMajorAxis,l=i.semiMinorAxis,f=i.ellipsoid,h=i.height,p=i.extrudedHeight,y=i.stRotation,T=t.length/3*2,v=new Float64Array(3*T),A=a.st?new Float32Array(2*T):void 0,S=a.normal?new Float32Array(3*T):void 0,I=a.tangent?new Float32Array(3*T):void 0,N=a.bitangent?new Float32Array(3*T):void 0,O=i.shadowVolume,w=O?new Float32Array(3*T):void 0,M=0,x=X,C=H,P=Y,b=new d(f),U=b.project(f.cartesianToCartographic(u,k),j),D=f.scaleToGeodeticSurface(u,L);f.geodeticSurfaceNormal(D,D);for(var V=g.fromAxisAngle(D,y,W),J=R.fromQuaternion(V,G),Q=r.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Z),$=r.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=ee/3*2,re=0;re<ee;re+=3){var ne,ie=re+1,ae=re+2,oe=n.fromArray(t,re,L);if(a.st){var ue=R.multiplyByVector(J,oe,F),se=b.project(f.cartesianToCartographic(ue,k),B);n.subtract(se,U,se),q.x=(se.x+c)/(2*c),q.y=(se.y+l)/(2*l),Q.x=Math.min(q.x,Q.x),Q.y=Math.min(q.y,Q.y),$.x=Math.max(q.x,$.x),$.y=Math.max(q.y,$.y),A[M+te]=q.x,A[M+1+te]=q.y,A[M++]=q.x,A[M++]=q.y}oe=f.scaleToGeodeticSurface(oe,oe),ne=n.clone(oe,F),x=f.geodeticSurfaceNormal(oe,x),O&&(w[re+ee]=-x.x,w[ie+ee]=-x.y,w[ae+ee]=-x.z);var ce=n.multiplyByScalar(x,h,z);if(oe=n.add(oe,ce,oe),ce=n.multiplyByScalar(x,p,ce),ne=n.add(ne,ce,ne),a.position&&(v[re+ee]=ne.x,v[ie+ee]=ne.y,v[ae+ee]=ne.z,v[re]=oe.x,v[ie]=oe.y,v[ae]=oe.z),a.normal||a.tangent||a.bitangent){P=n.clone(x,P);var le=n.fromArray(t,(re+3)%ee,z);n.subtract(le,oe,le);var fe=n.subtract(ne,oe,B);x=n.normalize(n.cross(fe,le,x),x),a.normal&&(S[re]=x.x,S[ie]=x.y,S[ae]=x.z,S[re+ee]=x.x,S[ie+ee]=x.y,S[ae+ee]=x.z),a.tangent&&(C=n.normalize(n.cross(P,x,C),C),I[re]=C.x,I[ie]=C.y,I[ae]=C.z,I[re+ee]=C.x,I[re+1+ee]=C.y,I[re+2+ee]=C.z),a.bitangent&&(N[re]=P.x,N[ie]=P.y,N[ae]=P.z,N[re+ee]=P.x,N[ie+ee]=P.y,N[ae+ee]=P.z)}}if(a.st){ee=A.length;for(var he=0;he<ee;he+=2)A[he]=(A[he]-Q.x)/($.x-Q.x),A[he+1]=(A[he+1]-Q.y)/($.y-Q.y)}var de=new E;if(a.position&&(de.position=new m({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:v})),a.st&&(de.st=new m({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:A})),a.normal&&(de.normal=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:S})),a.tangent&&(de.tangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:I})),a.bitangent&&(de.bitangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:N})),O&&(de.extrudeDirection=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:w})),s(i.offsetAttribute)){var pe=new Uint8Array(T);if(i.offsetAttribute===_.TOP)pe=e(pe,1,0,T/2);else{var me=i.offsetAttribute===_.NONE?0:1;pe=e(pe,me)}de.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:pe})}return de}function C(e){for(var t=e.length/3,r=v.createTypedArray(t,6*t),n=0,i=0;i<t;i++){var a=i,o=i+t,u=(a+1)%t,s=u+t;r[n++]=a,r[n++]=o,r[n++]=u,r[n++]=u,r[n++]=o,r[n++]=s}return r}function P(e){var r=e.center,i=e.ellipsoid,a=e.semiMajorAxis,o=n.multiplyByScalar(i.geodeticSurfaceNormal(r,L),e.height,L);Q.center=n.add(r,o,Q.center),Q.radius=a,o=n.multiplyByScalar(i.geodeticSurfaceNormal(r,o),e.extrudedHeight,o),$.center=n.add(r,o,$.center),$.radius=a;var u=f.computeEllipsePositions(e,!0,!0),s=u.positions,c=u.numPts,l=u.outerPositions,h=t.union(Q,$),d=O(s,e,!0),m=w(c),E=m.length;m.length=2*E;for(var _=s.length/3,A=0;A<E;A+=3)m[A+E]=m[A+2]+_,m[A+1+E]=m[A+1]+_,m[A+2+E]=m[A]+_;var R=v.createTypedArray(2*_/3,m),g=new p({attributes:d,indices:R,primitiveType:S.TRIANGLES}),I=x(l,e);m=C(l);var N=v.createTypedArray(2*l.length/3,m),M=new p({attributes:I,indices:N,primitiveType:S.TRIANGLES}),P=T.combineInstances([new y({geometry:g}),new y({geometry:M})]);return{boundingSphere:h,attributes:P[0].attributes,indices:P[0].indices}}function b(e,t,r,i,a,o,u){for(var s=f.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:r,rotation:i,granularity:a},!1,!0),c=s.outerPositions,l=c.length/3,h=new Array(l),d=0;d<l;++d)h[d]=n.fromArray(c,3*d);var p=I.fromCartesianArray(h,o,u);return p.width>A.PI&&(p.north=p.north>0?A.PI_OVER_TWO-A.EPSILON7:p.north,p.south=p.south<0?A.EPSILON7-A.PI_OVER_TWO:p.south,p.east=A.PI,p.west=-A.PI),p}function U(e){e=u(e,u.EMPTY_OBJECT);var t=e.center,r=u(e.ellipsoid,h.WGS84),i=e.semiMajorAxis,a=e.semiMinorAxis,o=u(e.granularity,A.RADIANS_PER_DEGREE),s=u(e.vertexFormat,N.DEFAULT),c=u(e.height,0),l=u(e.extrudedHeight,c);this._center=n.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=a,this._ellipsoid=h.clone(r),this._rotation=u(e.rotation,0),this._stRotation=u(e.stRotation,0),this._height=Math.max(l,c),this._granularity=o,this._vertexFormat=N.clone(s),this._extrudedHeight=Math.min(l,c),this._shadowVolume=u(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}function D(e){var t=-e._stRotation;if(0===t)return[0,0,0,1,1,0];for(var r=f.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0),i=r.outerPositions,a=i.length/3,o=new Array(a),u=0;u<a;++u)o[u]=n.fromArray(i,3*u);var s=e._ellipsoid,c=e.rectangle;return p._textureCoordinateRotationPoints(o,t,s,c)}var L=new n,F=new n,B=new n,z=new n,q=new r,G=new R,V=new R,W=new g,X=new n,H=new n,Y=new n,k=new i,j=new n,Z=new r,K=new r,J=new n,Q=new t,$=new t;U.packedLength=n.packedLength+h.packedLength+N.packedLength+9,U.pack=function(e,t,r){return r=u(r,0),n.pack(e._center,t,r),r+=n.packedLength,h.pack(e._ellipsoid,t,r),r+=h.packedLength,N.pack(e._vertexFormat,t,r),r+=N.packedLength,t[r++]=e._semiMajorAxis,t[r++]=e._semiMinorAxis,t[r++]=e._rotation,t[r++]=e._stRotation,t[r++]=e._height,t[r++]=e._granularity,t[r++]=e._extrudedHeight,t[r++]=e._shadowVolume?1:0,t[r]=u(e._offsetAttribute,-1),t};var ee=new n,te=new h,re=new N,ne={center:ee,ellipsoid:te,vertexFormat:re,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};return U.unpack=function(e,t,r){t=u(t,0);var i=n.unpack(e,t,ee);t+=n.packedLength;var a=h.unpack(e,t,te);t+=h.packedLength;var o=N.unpack(e,t,re);t+=N.packedLength;var c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++],m=e[t++],E=e[t++],y=1===e[t++],_=e[t];return s(r)?(r._center=n.clone(i,r._center),r._ellipsoid=h.clone(a,r._ellipsoid),r._vertexFormat=N.clone(o,r._vertexFormat),r._semiMajorAxis=c,r._semiMinorAxis=l,r._rotation=f,r._stRotation=d,r._height=p,r._granularity=m,r._extrudedHeight=E,r._shadowVolume=y,r._offsetAttribute=-1===_?void 0:_,r):(ne.height=p,ne.extrudedHeight=E,ne.granularity=m,ne.stRotation=d,ne.rotation=f,ne.semiMajorAxis=c,ne.semiMinorAxis=l,ne.shadowVolume=y,ne.offsetAttribute=-1===_?void 0:_,new U(ne))},U.computeRectangle=function(e,t){e=u(e,u.EMPTY_OBJECT);var r=e.center,n=u(e.ellipsoid,h.WGS84),i=e.semiMajorAxis,a=e.semiMinorAxis,o=u(e.granularity,A.RADIANS_PER_DEGREE);return b(r,i,a,u(e.rotation,0),o,n,t)},U.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var r=t._height,n=t._extrudedHeight,i=!A.equalsEpsilon(r,n,0,A.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var a,u={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:r,granularity:t._granularity,vertexFormat:t._vertexFormat,stRotation:t._stRotation};if(i)u.extrudedHeight=n,u.shadowVolume=t._shadowVolume,u.offsetAttribute=t._offsetAttribute,a=P(u);else if(a=M(u),s(t._offsetAttribute)){var c=a.attributes.position.values.length,l=new Uint8Array(c/3),f=t._offsetAttribute===_.NONE?0:1;e(l,f),a.attributes.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:l})}return new p({attributes:a.attributes,indices:a.indices,primitiveType:S.TRIANGLES,boundingSphere:a.boundingSphere,offsetAttribute:t._offsetAttribute})}},U.createShadowVolume=function(e,t,r){var n=e._granularity,i=e._ellipsoid,a=t(n,i),o=r(n,i);return new U({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:i,rotation:e._rotation,stRotation:e._stRotation,granularity:n,extrudedHeight:a,height:o,vertexFormat:N.POSITION_ONLY,shadowVolume:!0})},c(U.prototype,{rectangle:{get:function(){return s(this._rectangle)||(this._rectangle=b(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return s(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=D(this)),this._textureCoordinateRotationPoints}}}),U}),define("Core/CircleGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./EllipseGeometry","./Ellipsoid","./VertexFormat"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT);var t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new a(n),this._workerName="createCircleGeometry"}s.packedLength=a.packedLength,s.pack=function(e,t,r){return a.pack(e._ellipseGeometry,t,r)};var c=new a({center:new e,semiMajorAxis:1,semiMinorAxis:1}),l={center:new e,radius:void 0,ellipsoid:o.clone(o.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new u,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};return s.unpack=function(t,r,i){var f=a.unpack(t,r,c);return l.center=e.clone(f._center,l.center),l.ellipsoid=o.clone(f._ellipsoid,l.ellipsoid),l.height=f._height,l.extrudedHeight=f._extrudedHeight,l.granularity=f._granularity,l.vertexFormat=u.clone(f._vertexFormat,l.vertexFormat),l.stRotation=f._stRotation,l.shadowVolume=f._shadowVolume,n(i)?(l.semiMajorAxis=f._semiMajorAxis,l.semiMinorAxis=f._semiMinorAxis,i._ellipseGeometry=new a(l),i):(l.radius=f._semiMajorAxis,new s(l))},s.createGeometry=function(e){return a.createGeometry(e._ellipseGeometry)},s.createShadowVolume=function(e,t,r){var n=e._ellipseGeometry._granularity,i=e._ellipseGeometry._ellipsoid,a=t(n,i),o=r(n,i);return new s({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:i,stRotation:e._ellipseGeometry._stRotation,granularity:n,extrudedHeight:a,height:o,vertexFormat:u.POSITION_ONLY,shadowVolume:!0})},i(s.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}}),s}),define("Workers/createCircleGeometry",["../Core/Cartesian3","../Core/CircleGeometry","../Core/defined","../Core/Ellipsoid"],function(e,t,r,n){"use strict";function i(i,a){return r(a)&&(i=t.unpack(i,a)),i._ellipseGeometry._center=e.clone(i._ellipseGeometry._center),i._ellipseGeometry._ellipsoid=n.clone(i._ellipseGeometry._ellipsoid),t.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l}from"./chunk-6A5E2WLP.js";import"./chunk-E5APRSR6.js";import"./chunk-7GU2ORNB.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-6UMNSGJM.js";import{a as m}from"./chunk-QNEABTP2.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a,d as s}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as c}from"./chunk-WHQYJFDH.js";import{b as p}from"./chunk-OYWUGDKS.js";import{e as d}from"./chunk-DRYFJEFT.js";function n(e){e=c(e,c.EMPTY_OBJECT);let r=e.radius;p.typeOf.number("radius",r);let o={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new l(o),this._workerName="createCircleGeometry"}n.packedLength=l.packedLength;n.pack=function(e,r,o){return p.typeOf.object("value",e),l.pack(e._ellipseGeometry,r,o)};var f=new l({center:new a,semiMajorAxis:1,semiMinorAxis:1}),t={center:new a,radius:void 0,ellipsoid:s.clone(s.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new m,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};n.unpack=function(e,r,o){let i=l.unpack(e,r,f);return t.center=a.clone(i._center,t.center),t.ellipsoid=s.clone(i._ellipsoid,t.ellipsoid),t.ellipsoid=s.clone(i._ellipsoid,f._ellipsoid),t.height=i._height,t.extrudedHeight=i._extrudedHeight,t.granularity=i._granularity,t.vertexFormat=m.clone(i._vertexFormat,t.vertexFormat),t.stRotation=i._stRotation,t.shadowVolume=i._shadowVolume,d(o)?(t.semiMajorAxis=i._semiMajorAxis,t.semiMinorAxis=i._semiMinorAxis,o._ellipseGeometry=new l(t),o):(t.radius=i._semiMajorAxis,new n(t))};n.createGeometry=function(e){return l.createGeometry(e._ellipseGeometry)};n.createShadowVolume=function(e,r,o){let i=e._ellipseGeometry._granularity,u=e._ellipseGeometry._ellipsoid,h=r(i,u),x=o(i,u);return new n({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:u,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:h,height:x,vertexFormat:m.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(n.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var _=n;function g(e,r){return d(r)&&(e=_.unpack(e,r)),e._ellipseGeometry._center=a.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),_.createGeometry(e)}var H=g;export{H as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js index ab59189cc..1fa50b4fb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCircleOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,g,C,x,U,P,D,L,F,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*S),g=1/(1+b*I),C=1/(1+b*N),x=w*w,U=g*g,P=C*C,D=x*w,L=U*g,F=P*C,v=_*x+m*U+y*P-1,M=_*D*S+m*L*I+y*F*N;B=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*g,c.z=h*C,c):new e(l*w,f*g,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=o(t,E,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+d;return n(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(E,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+d-_+y,N=2*(E-h),O=2*(f-p),v=2*(E+h),M=-s-d+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=E*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-E,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],g=t[10],C=t[11],x=t[12],U=t[13],P=t[14],D=t[15],L=n*T+u*R+f*A+p*S,F=i*T+s*R+h*A+_*S,b=a*T+c*R+d*A+m*S,B=o*T+l*R+E*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+d*O+m*v,V=o*I+l*N+E*O+y*v,X=n*M+u*w+f*g+p*C,W=i*M+s*w+h*g+_*C,H=a*M+c*w+d*g+m*C,Y=o*M+l*w+E*g+y*C,k=n*x+u*U+f*P+p*D,j=i*x+s*U+h*P+_*D,K=a*x+c*U+d*P+m*D,Z=o*x+l*U+E*P+y*D;return r[0]=L,r[1]=F,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,g=a*p+s*_+f*m,C=n*y+o*T+c*R,x=i*y+u*T+l*R,U=a*y+s*T+f*R,P=n*A+o*S+c*I,D=i*A+u*S+l*I,L=a*A+s*S+f*I,F=n*N+o*O+c*v+h,b=i*N+u*O+l*v+d,B=a*N+s*O+f*v+E;return r[0]=M,r[1]=w,r[2]=g,r[3]=0,r[4]=C,r[5]=x,r[6]=U,r[7]=0,r[8]=P,r[9]=D,r[10]=L,r[11]=0,r[12]=F,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,g=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=g,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,g=_*v,C=S*N,x=_*O,U=m*N,P=p*v,D=S*I,L=p*O,F=m*I,b=p*N,B=_*I,z=M*h+C*d+x*E-(w*h+g*d+U*E),q=w*f+P*d+F*E-(M*f+D*d+L*E),G=g*f+D*h+b*E-(C*f+P*h+B*E),V=U*f+L*h+B*d-(x*f+F*h+b*d),X=w*i+g*a+U*o-(M*i+C*a+x*o),W=M*n+D*a+L*o-(w*n+P*a+F*o),H=C*n+P*i+B*o-(g*n+D*i+b*o),Y=x*n+F*i+b*a-(U*n+L*i+B*a);M=a*E,w=o*d,g=i*E,C=o*h,x=i*d,U=a*h,P=n*E,D=o*f,L=n*d,F=a*f,b=n*h,B=i*f;var k=M*N+C*O+x*v-(w*N+g*O+U*v),j=w*I+P*O+F*v-(M*I+D*O+L*v),K=g*I+D*N+b*v-(C*I+P*N+B*v),Z=U*I+L*N+B*O-(x*I+F*N+b*O),J=g*m+U*S+w*_-(x*S+M*_+C*m),Q=L*S+M*p+D*m-(P*m+F*S+w*p),$=P*_+B*S+C*p-(b*S+g*p+D*_),ee=b*m+x*p+F*_-(L*_+B*m+U*p),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var g=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=o,P=c,D=g;C>D&&(D=C,U=u,P=l),x>D&&(D=x,U=s,P=f);var L=S;L.x=.5*(U.x+P.x),L.y=.5*(U.y+P.y),L.z=.5*(U.z+P.z);var F=e.magnitudeSquared(e.subtract(P,L,A)),b=Math.sqrt(F),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>F){var W=Math.sqrt(X);b=.5*(b+W),F=b*b;var H=W-b;L.x=(b*L.x+H*a.x)/W,L.y=(b*L.y+H*a.y)/W,L.z=(b*L.z+H*a.z)/W}}return b<G?(e.clone(L,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var M=new o,w=new e,g=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,w),c=r.project(x,g),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var U=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,U);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var g=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=g,u.y=C,u.z=x,g<c.x&&e.clone(u,c),g>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var U=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),L=c,F=h,b=U;P>b&&(b=P,L=l,F=v),D>b&&(b=D,L=f,F=M);var B=S;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var z=e.magnitudeSquared(e.subtract(F,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],g=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=g,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),g<c.z&&e.clone(a,c),g>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,L=C;x>L&&(L=x,P=s,D=f),U>L&&(L=U,P=c,D=h);var F=S;F.x=.5*(P.x+D.x),F.y=.5*(P.y+D.y),F.z=.5*(P.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,F,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<V?(e.clone(F,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var P=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return r.radius=s,r};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,L),u=l.getColumn(n,2,F);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen", -n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(g)){g=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(g=!0,C=o(e[1]),C.isNightly=!!e[2])}return g}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1]))}return x}function E(){return d()&&U}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&F}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,g,C,x,U,P,D,L,F,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,E=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var g=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;x[L]=1/(F*b),U[L]=F/b}return x[7]=C/136,U[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)P[f]=(x[f]*c-U[f])*o,D[f]=(x[f]*l-U[f])*o;var h=i*r*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,g);return s.multiplyByScalar(t,h,n),s.add(E,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/EllipseGeometryLibrary",["./Cartesian3","./Math","./Matrix3","./Quaternion"],function(e,t,r,n){"use strict";function i(t,i,a,l,f,h,d,E,p,_){var m=t+i;e.multiplyByScalar(l,Math.cos(m),o),e.multiplyByScalar(a,Math.sin(m),u),e.add(o,u,o);var y=Math.cos(t);y*=y;var T=Math.sin(t);T*=T;var R=h/Math.sqrt(d*y+f*T),A=R/E;return n.fromAxisAngle(o,A,s),r.fromQuaternion(s,c),r.multiplyByVector(c,p,_),e.normalize(_,_),e.multiplyByScalar(_,E,_),_}var a={},o=new e,u=new e,s=new n,c=new r,l=new e,f=new e,h=new e,d=new e;a.raisePositionsToHeight=function(t,r,n){for(var i=r.ellipsoid,a=r.height,o=r.extrudedHeight,u=n?t.length/3*2:t.length/3,s=new Float64Array(3*u),c=t.length,E=n?c:0,p=0;p<c;p+=3){var _=p+1,m=p+2,y=e.fromArray(t,p,l);i.scaleToGeodeticSurface(y,y);var T=e.clone(y,f),R=i.geodeticSurfaceNormal(y,d),A=e.multiplyByScalar(R,a,h);e.add(y,A,y),n&&(e.multiplyByScalar(R,o,A),e.add(T,A,T),s[p+E]=T.x,s[_+E]=T.y,s[m+E]=T.z),s[p]=y.x,s[_]=y.y,s[m]=y.z}return s};var E=new e,p=new e,_=new e;return a.computeEllipsePositions=function(r,n,a){var o=r.semiMinorAxis,u=r.semiMajorAxis,s=r.rotation,c=r.center,d=8*r.granularity,m=o*o,y=u*u,T=u*o,R=e.magnitude(c),A=e.normalize(c,E),S=e.cross(e.UNIT_Z,c,p);S=e.normalize(S,S);var I=e.cross(A,S,_),N=1+Math.ceil(t.PI_OVER_TWO/d),O=t.PI_OVER_TWO/(N-1),v=t.PI_OVER_TWO-N*O;v<0&&(N-=Math.ceil(Math.abs(v)/O));var M,w,g,C,x,U=N*(N+2)*2,P=n?new Array(3*U):void 0,D=0,L=l,F=f,b=4*N*3,B=b-1,z=0,q=a?new Array(b):void 0;for(v=t.PI_OVER_TWO,L=i(v,s,I,S,m,T,y,R,A,L),n&&(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z),a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x),v=t.PI_OVER_TWO-O,M=1;M<N+1;++M){if(L=i(v,s,I,S,m,T,y,R,A,L),F=i(Math.PI-v,s,I,S,m,T,y,R,A,F),n){for(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z,g=2*M+2,w=1;w<g-1;++w)C=w/(g-1),x=e.lerp(L,F,C,h),P[D++]=x.x,P[D++]=x.y,P[D++]=x.z;P[D++]=F.x,P[D++]=F.y,P[D++]=F.z}a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,q[z++]=F.x,q[z++]=F.y,q[z++]=F.z),v=t.PI_OVER_TWO-(M+1)*O}for(M=N;M>1;--M){if(v=t.PI_OVER_TWO-(M-1)*O,L=i(-v,s,I,S,m,T,y,R,A,L),F=i(v+Math.PI,s,I,S,m,T,y,R,A,F),n){for(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z,g=2*(M-1)+2,w=1;w<g-1;++w)C=w/(g-1),x=e.lerp(L,F,C,h),P[D++]=x.x,P[D++]=x.y,P[D++]=x.z;P[D++]=F.x,P[D++]=F.y,P[D++]=F.z}a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,q[z++]=F.x,q[z++]=F.y,q[z++]=F.z)}v=t.PI_OVER_TWO,L=i(-v,s,I,S,m,T,y,R,A,L);var G={};return n&&(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z, -G.positions=P,G.numPts=N),a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,G.outerPositions=q),G},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],g=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var C;if(null!==(u=w.match(A)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var x=+u[2],U=+u[3]||0,P=new Date(Date.UTC(r,0,4));C=7*x+U-P.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(g)){u=g.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=g.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=g.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,_-=b;break;case"-":h+=F,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=E(r,s,l,h,_,y,N);return n(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,E,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){d(e);var t=I.insert(e) -;if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function g(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function U(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function P(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function L(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function F(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return L(n,i);case"blob":var a=L(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(g(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return U({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),U({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),g(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;g(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(F(s,t));if(X)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,d);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?E=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);r.x+=T[E]*d[A++],r.y+=T[E]*d[A++],r.s+=T[E]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var g=new T,C=new r(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,g),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),y.multiply(a,s,a)};var U=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,U),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),L=new r,F=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),g=n-2451545+i/R.SECONDS_PER_DAY;g/=36525;var C=-47e-6*g*_.RADIANS_PER_DEGREE/3600,x=Math.cos(C),U=Math.sin(C),P=H;return P[0]=O*x,P[1]=O*U,P[2]=M,P[3]=-v*U+w*M*x,P[4]=v*x+w*M*U,P[5]=-w*O,P[6]=-w*U-v*M*x,P[7]=w*x-v*M*U,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new d,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=E.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,g=R;g[0].longitude=o.west,g[0].latitude=o.south,g[1].longitude=o.west,g[1].latitude=o.north,g[2].longitude=o.east,g[2].latitude=o.south;var C=I;for(u=0;u<3;u++)r.toCartesian(g[u],a,C),C=f.multiplyByPointAsVector(M,C,C),w[u].x=C.x,w[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,N),U=l.fromQuaternion(x,O),P=n.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)C=f.multiplyByPointAsVector(M,n[u],C),C=l.multiplyByVector(U,C,C),D=Math.min(D,C.x),L=Math.min(L,C.y),F=Math.max(F,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=L,z[1].x=D,z[1].y=b,z[2].x=F,z[2].y=L;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipseOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){var i=e.center;R=r.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(i,R),e.height,R),R=r.add(i,R,R);for(var a=new t(R,e.semiMajorAxis),o=u.computeEllipsePositions(e,!1,!0).outerPositions,s=new f({position:new l({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:u.raisePositionsToHeight(o,e,!1)})}),c=o.length/3,h=d.createTypedArray(c,2*c),E=0,p=0;p<c;++p)h[E++]=p,h[E++]=(p+1)%c;return{boundingSphere:a,attributes:s,indices:h}}function m(o){var s=o.center,c=o.ellipsoid,p=o.semiMajorAxis,_=r.multiplyByScalar(c.geodeticSurfaceNormal(s,T),o.height,T);A.center=r.add(s,_,A.center),A.radius=p,_=r.multiplyByScalar(c.geodeticSurfaceNormal(s,_),o.extrudedHeight,_),S.center=r.add(s,_,S.center),S.radius=p;var m=u.computeEllipsePositions(o,!1,!0).outerPositions,y=new f({position:new l({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:u.raisePositionsToHeight(m,o,!0)})});m=y.position.values;var R=t.union(A,S),I=m.length/3;if(a(o.offsetAttribute)){var N=new Uint8Array(I);if(o.offsetAttribute===h.TOP)N=e(N,1,0,I/2);else{var O=o.offsetAttribute===h.NONE?0:1;N=e(N,O)}y.applyOffset=new l({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}var v=i(o.numberOfVerticalLines,16);v=E.clamp(v,0,I/2);var M=d.createTypedArray(I,2*I+2*v);I/=2;var w,g=0;for(w=0;w<I;++w)M[g++]=w,M[g++]=(w+1)%I,M[g++]=w+I,M[g++]=(w+1)%I+I;var C;if(v>0){var x=Math.min(v,I);C=Math.round(I/x);var U=Math.min(C*v,I);for(w=0;w<U;w+=C)M[g++]=w,M[g++]=w+I}return{boundingSphere:R,attributes:y,indices:M}}function y(e){e=i(e,i.EMPTY_OBJECT);var t=e.center,n=i(e.ellipsoid,s.WGS84),a=e.semiMajorAxis,o=e.semiMinorAxis,u=i(e.granularity,E.RADIANS_PER_DEGREE),c=i(e.height,0),l=i(e.extrudedHeight,c);this._center=r.clone(t),this._semiMajorAxis=a,this._semiMinorAxis=o,this._ellipsoid=s.clone(n),this._rotation=i(e.rotation,0),this._height=Math.max(l,c),this._granularity=u,this._extrudedHeight=Math.min(l,c),this._numberOfVerticalLines=Math.max(i(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}var T=new r,R=new r,A=new t,S=new t;y.packedLength=r.packedLength+s.packedLength+8,y.pack=function(e,t,n){return n=i(n,0),r.pack(e._center,t,n),n+=r.packedLength,s.pack(e._ellipsoid,t,n),n+=s.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=i(e._offsetAttribute,-1),t};var I=new r,N=new s,O={center:I,ellipsoid:N,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return y.unpack=function(e,t,n){t=i(t,0);var o=r.unpack(e,t,I);t+=r.packedLength;var u=s.unpack(e,t,N);t+=s.packedLength;var c=e[t++],l=e[t++],f=e[t++],h=e[t++],d=e[t++],E=e[t++],p=e[t++],_=e[t];return a(n)?(n._center=r.clone(o,n._center),n._ellipsoid=s.clone(u,n._ellipsoid),n._semiMajorAxis=c,n._semiMinorAxis=l,n._rotation=f,n._height=h,n._granularity=d,n._extrudedHeight=E,n._numberOfVerticalLines=p,n._offsetAttribute=-1===_?void 0:_,n):(O.height=h,O.extrudedHeight=E,O.granularity=d,O.rotation=f,O.semiMajorAxis=c,O.semiMinorAxis=l,O.numberOfVerticalLines=p,O.offsetAttribute=-1===_?void 0:_,new y(O))},y.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var r=t._height,i=t._extrudedHeight,o=!E.equalsEpsilon(r,i,0,E.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var u,s={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:r,granularity:t._granularity,numberOfVerticalLines:t._numberOfVerticalLines};if(o)s.extrudedHeight=i,s.offsetAttribute=t._offsetAttribute,u=m(s);else if(u=_(s),a(t._offsetAttribute)){var f=u.attributes.position.values.length,d=new Uint8Array(f/3),y=t._offsetAttribute===h.NONE?0:1;e(d,y),u.attributes.applyOffset=new l({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new c({attributes:u.attributes,indices:u.indices,primitiveType:p.LINES,boundingSphere:u.boundingSphere,offsetAttribute:t._offsetAttribute})}},y}),define("Core/CircleOutlineGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipseOutlineGeometry","./Ellipsoid"],function(e,t,r,n,i,a){"use strict";function o(e){e=r(e,r.EMPTY_OBJECT);var t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new i(n),this._workerName="createCircleOutlineGeometry"}o.packedLength=i.packedLength,o.pack=function(e,t,r){return i.pack(e._ellipseGeometry,t,r)};var u=new i({center:new e,semiMajorAxis:1,semiMinorAxis:1}),s={center:new e,radius:void 0,ellipsoid:a.clone(a.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};return o.unpack=function(t,r,c){var l=i.unpack(t,r,u);return s.center=e.clone(l._center,s.center),s.ellipsoid=a.clone(l._ellipsoid,s.ellipsoid),s.height=l._height,s.extrudedHeight=l._extrudedHeight,s.granularity=l._granularity,s.numberOfVerticalLines=l._numberOfVerticalLines,n(c)?(s.semiMajorAxis=l._semiMajorAxis,s.semiMinorAxis=l._semiMinorAxis,c._ellipseGeometry=new i(s),c):(s.radius=l._semiMajorAxis,new o(s))},o.createGeometry=function(e){return i.createGeometry(e._ellipseGeometry)},o}),define("Workers/createCircleOutlineGeometry",["../Core/Cartesian3","../Core/CircleOutlineGeometry","../Core/defined","../Core/Ellipsoid"],function(e,t,r,n){"use strict";function i(i,a){return r(a)&&(i=t.unpack(i,a)),i._ellipseGeometry._center=e.clone(i._ellipseGeometry._center),i._ellipseGeometry._ellipsoid=n.clone(i._ellipseGeometry._ellipsoid),t.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as n}from"./chunk-AXIFPJHM.js";import"./chunk-E5APRSR6.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as o,d as s}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as u}from"./chunk-WHQYJFDH.js";import{b as d}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function m(e){e=u(e,u.EMPTY_OBJECT);let r=e.radius;d.typeOf.number("radius",r);let l={center:e.center,semiMajorAxis:r,semiMinorAxis:r,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new n(l),this._workerName="createCircleOutlineGeometry"}m.packedLength=n.packedLength;m.pack=function(e,r,l){return d.typeOf.object("value",e),n.pack(e._ellipseGeometry,r,l)};var p=new n({center:new o,semiMajorAxis:1,semiMinorAxis:1}),i={center:new o,radius:void 0,ellipsoid:s.clone(s.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};m.unpack=function(e,r,l){let t=n.unpack(e,r,p);return i.center=o.clone(t._center,i.center),i.ellipsoid=s.clone(t._ellipsoid,i.ellipsoid),i.height=t._height,i.extrudedHeight=t._extrudedHeight,i.granularity=t._granularity,i.numberOfVerticalLines=t._numberOfVerticalLines,a(l)?(i.semiMajorAxis=t._semiMajorAxis,i.semiMinorAxis=t._semiMinorAxis,l._ellipseGeometry=new n(i),l):(i.radius=t._semiMajorAxis,new m(i))};m.createGeometry=function(e){return n.createGeometry(e._ellipseGeometry)};var c=m;function f(e,r){return a(r)&&(e=c.unpack(e,r)),e._ellipseGeometry._center=o.clone(e._ellipseGeometry._center),e._ellipseGeometry._ellipsoid=s.clone(e._ellipseGeometry._ellipsoid),c.createGeometry(e)}var E=f;export{E as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js index a81ccc298..963b149bb 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,m=i.z,y=l*l*d*d,E=f*f*p*p,v=h*h*m*m,_=y+E+v,T=Math.sqrt(1/_),g=e.multiplyByScalar(n,T,a);if(_<s)return isFinite(T)?e.clone(g,c):void 0;var R=u.x,A=u.y,S=u.z,w=o;w.x=g.x*R*2,w.y=g.y*A*2,w.z=g.z*S*2;var O,I,x,N,M,C,P,b,D,U,L,F=(1-T)*e.magnitude(n)/(.5*e.magnitude(w)),B=0;do{F-=B,x=1/(1+F*R),N=1/(1+F*A),M=1/(1+F*S),C=x*x,P=N*N,b=M*M,D=C*x,U=P*N,L=b*M,O=y*C+E*P+v*b-1,I=y*D*R+E*U*A+v*L*S;B=O/(-2*I)}while(Math.abs(O)>r.EPSILON12);return t(c)?(c.x=l*x,c.y=f*N,c.z=h*M,c):new e(l*x,f*N,h*M)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,m=r(n)?n.oneOverRadiiSquared:h,y=r(n)?n._centerToleranceSquared:d,E=o(t,p,m,y,c);if(r(E)){var v=e.multiplyComponents(E,m,s);v=e.normalize(v,v);var _=e.subtract(t,E,l),T=Math.atan2(v.y,v.x),g=Math.asin(v.z),R=a.sign(e.dot(_,t))*e.magnitude(_);return r(i)?(i.longitude=T,i.latitude=g,i.height=R,i):new u(T,g,R)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,m=new e,y=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,y),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var y=t.cartesianToCartographic(e[p]);o=Math.min(o,y.longitude),c=Math.max(c,y.longitude),h=Math.min(h,y.latitude),d=Math.max(d,y.latitude);var E=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;l=Math.min(l,E),f=Math.max(f,E)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var y=1;y<8;++y)m.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingRectangle",["./Cartesian2","./Cartographic","./Check","./defaultValue","./defined","./GeographicProjection","./Intersect","./Rectangle"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.width=r(n,0),this.height=r(i,0)}s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t},s.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new s),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n},s.fromPoints=function(e,t){if(i(t)||(t=new s),!i(e)||0===e.length)return t.x=0,t.y=0,t.width=0,t.height=0,t;for(var n=e.length,r=e[0].x,a=e[0].y,o=e[0].x,u=e[0].y,c=1;c<n;c++){var l=e[c],f=l.x,h=l.y;r=Math.min(f,r),o=Math.max(f,o),a=Math.min(h,a),u=Math.max(h,u)}return t.x=r,t.y=a,t.width=o-r,t.height=u-a,t};var c=new a,l=new t,f=new t;return s.fromRectangle=function(t,n,a){if(i(a)||(a=new s),!i(t))return a.x=0,a.y=0,a.width=0,a.height=0,a;n=r(n,c);var o=n.project(u.southwest(t,l)),h=n.project(u.northeast(t,f));return e.subtract(h,o,h),a.x=o.x,a.y=o.y,a.width=h.x,a.height=h.y,a},s.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new s(e.x,e.y,e.width,e.height)},s.union=function(e,t,n){i(n)||(n=new s);var r=Math.min(e.x,t.x),a=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),u=Math.max(e.y+e.height,t.y+t.height);return n.x=r,n.y=a,n.width=o-r,n.height=u-a,n},s.expand=function(e,t,n){n=s.clone(e,n);var r=t.x-n.x,i=t.y-n.y;return r>n.width?n.width=r:r<0&&(n.width-=r,n.x=t.x),i>n.height?n.height=i:i<0&&(n.height-=i,n.y=t.y),n},s.intersect=function(e,t){var n=e.x,r=e.y,i=t.x,a=t.y;return n>i+t.width||n+e.width<i||r+e.height<a||r>a+t.height?o.OUTSIDE:o.INTERSECTING},s.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.intersect=function(e){return s.intersect(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict" -;function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(m[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,y=e[s.getElementIndex(h,h)],E=e[s.getElementIndex(f,f)],v=e[s.getElementIndex(h,f)],_=(y-E)/2/v;d=_<0?-1/(-_+Math.sqrt(1+_*_)):1/(_+Math.sqrt(1+_*_)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,m=2*(i-h),y=2*(a+l),E=2*(i+h),v=-n+u-f+d,_=2*(c-o),T=2*(a-l),g=2*(c+o),R=-n-u+f+d;return r(t)?(t[0]=p,t[1]=E,t[2]=T,t[3]=m,t[4]=v,t[5]=g,t[6]=y,t[7]=_,t[8]=R,t):new s(p,m,y,E,v,_,T,g,R)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,m=-c*i+a*o*u,y=-o,E=c*n,v=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=y,t[3]=f,t[4]=p,t[5]=E,t[6]=h,t[7]=m,t[8]=v,t):new s(l,f,h,d,p,m,y,E,v)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],y=new s,E=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,y),s.transpose(y,E),s.multiply(h,y,h),s.multiply(E,h,h),s.multiply(o,y,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,m,y){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(m,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(y,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,y=t.z*t.z,E=t.z*t.w,v=t.w*t.w,_=s-d-y+v,T=2*(c-E),g=2*(f+m),R=2*(c+E),A=-s+d-y+v,S=2*(p-h),w=2*(f-m),O=2*(p+h),I=-s-d+y+v;return r[0]=_*a,r[1]=R*a,r[2]=w*a,r[3]=0,r[4]=T*o,r[5]=A*o,r[6]=O*o,r[7]=0,r[8]=g*u,r[9]=S*u,r[10]=I*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,y=f.z,E=d.x,v=d.y,_=d.z,T=r.x,g=r.y,R=r.z,A=u*-T+s*-g+c*-R,S=E*-T+v*-g+_*-R,w=p*T+m*g+y*R;return i(n)?(n[0]=u,n[1]=E,n[2]=-p,n[3]=0,n[4]=s,n[5]=v,n[6]=-m,n[7]=0,n[8]=c,n[9]=_,n[10]=-y,n[11]=0,n[12]=A,n[13]=S,n[14]=w,n[15]=1,n):new l(u,s,c,A,E,v,_,S,-p,-m,-y,w,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,m=a+c,y=o+l,E=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=y,i[14]=E,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var m=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),n};var y=new e;l.getMaximumScale=function(t){return l.getScale(t,y),e.maximumComponent(y)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],y=e[13],E=e[14],v=e[15],_=t[0],T=t[1],g=t[2],R=t[3],A=t[4],S=t[5],w=t[6],O=t[7],I=t[8],x=t[9],N=t[10],M=t[11],C=t[12],P=t[13],b=t[14],D=t[15],U=r*_+u*T+f*g+m*R,L=i*_+s*T+h*g+y*R,F=a*_+c*T+d*g+E*R,B=o*_+l*T+p*g+v*R,z=r*A+u*S+f*w+m*O,q=i*A+s*S+h*w+y*O,G=a*A+c*S+d*w+E*O,V=o*A+l*S+p*w+v*O,W=r*I+u*x+f*N+m*M,X=i*I+s*x+h*N+y*M,k=a*I+c*x+d*N+E*M,H=o*I+l*x+p*N+v*M,Y=r*C+u*P+f*b+m*D,j=i*C+s*P+h*b+y*D,Z=a*C+c*P+d*b+E*D,K=o*C+l*P+p*b+v*D;return n[0]=U,n[1]=L,n[2]=F,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=k,n[11]=H,n[12]=Y,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],y=t[1],E=t[2],v=t[4],_=t[5],T=t[6],g=t[8],R=t[9],A=t[10],S=t[12],w=t[13],O=t[14],I=r*m+o*y+c*E,x=i*m+u*y+l*E,N=a*m+s*y+f*E,M=r*v+o*_+c*T,C=i*v+u*_+l*T,P=a*v+s*_+f*T,b=r*g+o*R+c*A,D=i*g+u*R+l*A,U=a*g+s*R+f*A,L=r*S+o*w+c*O+h,F=i*S+u*w+l*O+d,B=a*S+s*w+f*O+p;return n[0]=I,n[1]=x,n[2]=N,n[3]=0,n[4]=M,n[5]=C,n[6]=P,n[7]=0,n[8]=b,n[9]=D,n[10]=U,n[11]=0,n[12]=L,n[13]=F,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],y=t[4],E=t[5],v=t[6],_=t[7],T=t[8],g=r*h+o*d+c*p,R=i*h+u*d+l*p,A=a*h+s*d+f*p,S=r*m+o*y+c*E,w=i*m+u*y+l*E,O=a*m+s*y+f*E,I=r*v+o*_+c*T,x=i*v+u*_+l*T,N=a*v+s*_+f*T;return n[0]=g,n[1]=R,n[2]=A,n[3]=0,n[4]=S,n[5]=w,n[6]=O,n[7]=0,n[8]=I,n[9]=x,n[10]=N,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var E=new e;l.multiplyByUniformScale=function(e,t,n){return E.x=t,E.y=t,E.z=t,l.multiplyByScale(e,E,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var v=new s,_=new s,T=new t,g=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],y=e[6],E=e[10],R=e[14],A=e[3],S=e[7],w=e[11],O=e[15],I=E*O,x=R*w,N=y*O,M=R*S,C=y*w,P=E*S,b=m*O,D=R*A,U=m*w,L=E*A,F=m*S,B=y*A,z=I*h+M*d+C*p-(x*h+N*d+P*p),q=x*f+b*d+L*p-(I*f+D*d+U*p),G=N*f+D*h+F*p-(M*f+b*h+B*p),V=P*f+U*h+B*d-(C*f+L*h+F*d),W=x*i+N*a+P*o-(I*i+M*a+C*o),X=I*r+D*a+U*o-(x*r+b*a+L*o),k=M*r+b*i+B*o-(N*r+D*i+F*o),H=C*r+L*i+F*a-(P*r+U*i+B*a);I=a*p,x=o*d,N=i*p,M=o*h,C=i*d,P=a*h,b=r*p,D=o*f,U=r*d,L=a*f,F=r*h,B=i*f;var Y=I*S+M*w+C*O-(x*S+N*w+P*O),j=x*A+b*w+L*O-(I*A+D*w+U*O),Z=N*A+D*S+F*O-(M*A+b*S+B*O),K=P*A+U*S+B*w-(C*A+L*S+F*w),J=N*E+P*R+x*y-(C*R+I*y+M*E),Q=U*R+I*m+D*E-(b*E+L*R+x*m),$=b*y+B*R+M*m-(F*R+N*m+D*y),ee=F*E+C*m+L*y-(U*y+B*E+P*m),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,v),_,u.EPSILON7)&&t.equals(l.getRow(e,3,T),g))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=k*te,n[7]=H*te,n[8]=Y*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,m=-a*f-o*h-u*d,y=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=y,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,m=new e,y=new e,E=new e,v=new e,_=new e,T=new e,g=new e,R=new e,A=new e,S=new e,w=new e,O=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,y),c=e.clone(a,E),l=e.clone(a,v),f=e.clone(a,_),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var O=a.x,I=a.y,x=a.z;O<o.x&&e.clone(a,o),O>c.x&&e.clone(a,c),I<u.y&&e.clone(a,u),I>l.y&&e.clone(a,l),x<s.z&&e.clone(a,s),x>f.z&&e.clone(a,f)}var N=e.magnitudeSquared(e.subtract(c,o,g)),M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=o,b=c,D=N;M>D&&(D=M,P=u,b=l),C>D&&(D=C,P=s,b=f);var U=R;U.x=.5*(P.x+b.x),U.y=.5*(P.y+b.y),U.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,U,g)),F=Math.sqrt(L),B=A;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,w),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,g));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,U,g));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var k=X-F;U.x=(F*U.x+k*a.x)/X,U.y=(F*U.y+k*a.y)/X,U.z=(F*U.z+k*a.z)/X}}return F<G?(e.clone(U,n.center),n.radius=F):(e.clone(q,n.center),n.radius=G),n};var I=new o,x=new e,N=new e,M=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,I),h.southwest(t,M),M.height=a,h.northeast(t,C),C.height=o;var s=n.project(M,x),c=n.project(C,N),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=T;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,y),h=e.clone(u,E),O=e.clone(u,v),I=e.clone(u,_),x=t.length;for(s=0;s<x;s+=a){var N=t[s]+n.x,M=t[s+1]+n.y,C=t[s+2]+n.z;u.x=N,u.y=M,u.z=C,N<c.x&&e.clone(u,c),N>h.x&&e.clone(u,h),M<l.y&&e.clone(u,l),M>O.y&&e.clone(u,O),C<f.z&&e.clone(u,f),C>I.z&&e.clone(u,I)}var P=e.magnitudeSquared(e.subtract(h,c,g)),b=e.magnitudeSquared(e.subtract(O,l,g)),D=e.magnitudeSquared(e.subtract(I,f,g)),U=c,L=h,F=P;b>F&&(F=b,U=l,L=O),D>F&&(F=D,U=f,L=I);var B=R;B.x=.5*(U.x+L.x),B.y=.5*(U.y+L.y),B.z=.5*(U.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,g)),q=Math.sqrt(z),G=A;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=O.y,V.z=I.z;var W=e.midpoint(G,V,w),X=0;for(s=0;s<x;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var k=e.magnitude(e.subtract(u,W,g));k>X&&(X=k);var H=e.magnitudeSquared(e.subtract(u,B,g));if(H>z){var Y=Math.sqrt(H);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=T;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,E),f=e.clone(a,v),h=e.clone(a,_),O=t.length;for(o=0;o<O;o+=3){var I=t[o]+n[o],x=t[o+1]+n[o+1],N=t[o+2]+n[o+2];a.x=I,a.y=x,a.z=N,I<u.x&&e.clone(a,u),I>l.x&&e.clone(a,l),x<s.y&&e.clone(a,s),x>f.y&&e.clone(a,f),N<c.z&&e.clone(a,c),N>h.z&&e.clone(a,h)}var M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=e.magnitudeSquared(e.subtract(h,c,g)),b=u,D=l,U=M;C>U&&(U=C,b=s,D=f),P>U&&(U=P,b=c,D=h);var L=R;L.x=.5*(b.x+D.x),L.y=.5*(b.y+D.y),L.z=.5*(b.z+D.z);var F=e.magnitudeSquared(e.subtract(D,L,g)),B=Math.sqrt(F),z=A;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,w),V=0;for(o=0;o<O;o+=3){a.x=t[o]+n[o], -a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,g));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,g));if(X>F){var k=Math.sqrt(X);B=.5*(B+k),F=B*B;var H=k-B;L.x=(B*L.x+H*a.x)/k,L.y=(B*L.y+H*a.y)/k,L.z=(B*L.z+H*a.z)/k}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var b=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return n.radius=s,n};var D=new e,U=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,U),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var F=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,k=new e,H=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,k),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var y=p.length,E=0;E<y;++E){var v=p[E];e.add(o,v,v);var _=a.cartesianToCartographic(v,Y);n.project(_,v)}i=d.fromPoints(p,i),o=i.center;var T=o.x,g=o.y,R=o.z;return o.x=R,o.y=T,o.z=g,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return O*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=E,m(l,e),f=l=g,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return y(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,y,v,_;if(v=t.length>>>0,c=Math.max(0,Math.min(n,v)),f=[],l=v-c+1,h=[],d=o(),c)for(y=d.progress,m=function(e){h.push(e),--l||(p=m=E,d.reject(h))},p=function(e){f.push(e),--c||(p=m=E,d.resolve(f))},_=0;_<v;++_)_ in t&&e(t[_],s,u,y);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return y(1,arguments),h(e,v).then(t,n,r)}function f(){return h(arguments,v)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},_.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function m(e,t){for(var n,r=0;n=e[r++];)n(t)}function y(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function E(){}function v(e){return e}var _,T,g;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(g,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(g,t)})})}},T=[].slice,_=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(w)&&(w=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(w=!0,O=o(e[1]))}return w}function s(){return u()&&O}function c(){if(!t(I)&&(I=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,x=o(e[1]))}return I}function l(){return c()&&x}function f(){if(!t(N)){N=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(N=!0,M=o(e[1]),M.isNightly=!!e[2])}return N}function h(){return f()&&M}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,D=o(e[1]))}return b}function y(){return m()&&D}function E(){if(!t(U)){U=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,L=o(e[1]))}return U}function v(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function _(){return E()&&L}function T(){return t(B)||(B=!E()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function g(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function R(){return g()?z:void 0}function A(){return A._result}var S;S="undefined"!=typeof navigator?navigator:{};var w,O,I,x,N,M,C,P,b,D,U,L,F,B,z,q;A._promise=void 0,A._result=void 0,A.initialize=function(){if(t(A._promise))return A._promise;var e=a.defer();if(A._promise=e.promise,m())return A._result=!1,e.resolve(A._result),e.promise;var n=new Image;return n.onload=function(){A._result=n.width>0&&n.height>0,e.resolve(A._result)},n.onerror=function(){A._result=!1,e.resolve(A._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(A,{initialized:{get:function(){return t(A._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:y,isFirefox:E,firefoxVersion:_,isWindows:v,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:g,supportsWebP:A,imageRenderingValue:R,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,y=u*c-d,E=4*p*y-m*m;if(E<0){var v,_,T;h*f>=l*d?(v=o,_=p,T=-2*u*p+o*m):(v=c,_=y,T=-c*m+2*s*y);var g=T<0?-1:1,R=-g*Math.abs(v)*Math.sqrt(-E);a=-T+R;var A=a/2,S=A<0?-Math.pow(-A,1/3):Math.pow(A,1/3),w=a===R?-S:-_/S;return i=_<=0?S+w:-T/(S*S+w*w+_),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var O=p,I=-2*u*p+o*m,x=y,N=-c*m+2*s*y,M=Math.sqrt(E),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*M,-I)/3);i=2*Math.sqrt(-O);var b=Math.cos(P);a=i*b;var D=i*(-b/2-C*Math.sin(P)),U=a+D>2*u?a-u:D-u,L=o,F=U/L;P=Math.abs(Math.atan2(c*M,-N)/3),i=2*Math.sqrt(-x),b=Math.cos(P),a=i*b,D=i*(-b/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-U*z-L*B,W=U*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var m,y=p[0],E=p[1];if(y>=0&&E>=0){var v=Math.sqrt(y),_=Math.sqrt(E);return[h-_,h-v,h+v,h+_]}if(y>=0&&E<0)return m=Math.sqrt(y),[h-m,h+m];if(y<0&&E>=0)return m=Math.sqrt(E),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),g=(s+d-c/T)/2,R=(s+d+c/T)/2,A=r.computeRealRoots(1,T,g),S=r.computeRealRoots(1,-T,R);return 0!==A.length?(A[0]+=h,A[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h, -A[1]<=S[0]?[A[0],A[1],S[0],S[1]]:S[1]<=A[0]?[S[0],S[1],A[0],A[1]]:A[0]>=S[0]&&A[1]<=S[1]?[S[0],A[0],A[1],S[1]]:S[0]>=A[0]&&S[1]<=A[1]?[A[0],S[0],S[1],A[1]]:A[0]>S[0]&&A[0]<S[1]?[S[0],A[0],S[1],A[1]]:[A[0],S[0],A[1],S[1]]):A):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,y=d[0],E=i-y,v=E*E,_=t/2,T=E/2,g=v-4*o,R=v+4*Math.abs(o),A=c-4*y,S=c+4*Math.abs(y);if(y<0||g*S<A*R){var w=Math.sqrt(A);p=w/2,m=0===w?0:(t*T-a)/w}else{var O=Math.sqrt(g);p=0===O?0:(t*T-a)/O,m=O/2}var I,x;0===_&&0===p?(I=0,x=0):n.sign(_)===n.sign(p)?(I=_+p,x=y/I):(x=_-p,I=y/x);var N,M;0===T&&0===m?(N=0,M=0):n.sign(T)===n.sign(m)?(N=T+m,M=o/N):(M=T-m,N=o/M);var C=r.computeRealRoots(1,I,N),P=r.computeRealRoots(1,x,M);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,v),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,R);if(r(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),y=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,E=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),v=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),_=[];if(0===v&&0===E){if(l=s.computeRealRoots(p,m,y),0===l.length)return _;var T=l[0],g=Math.sqrt(Math.max(1-T*T,0));if(_.push(new e(i,a*T,a*-g)),_.push(new e(i,a*T,a*g)),2===l.length){var R=l[1],A=Math.sqrt(Math.max(1-R*R,0));_.push(new e(i,a*R,a*-A)),_.push(new e(i,a*R,a*A))}return _}var S=v*v,w=E*E,O=p*p,I=v*E,x=O+w,N=2*(m*p+I),M=2*y*p+m*m-w+S,C=2*(y*m-I),P=y*y-S;if(0===x&&0===N&&0===M&&0===C)return _;l=c.computeRealRoots(x,N,M,C,P);var b=l.length;if(0===b)return _;for(var D=0;D<b;++D){var U,L=l[D],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);U=o.sign(p)===o.sign(y)?d(p*F+y,m*L,o.EPSILON12):o.sign(y)===o.sign(m*L)?d(p*F,m*L+y,o.EPSILON12):d(p*F+m*L,y,o.EPSILON12);var q=d(E*L,v,o.EPSILON15),G=U*q;G<0?_.push(new e(i,a*L,a*z)):G>0?_.push(new e(i,a*L,a*-z)):0!==z?(_.push(new e(i,a*L,a*-z)),_.push(new e(i,a*L,a*z)),++D):_.push(new e(i,a*L,a*z))}return _}var m={};m.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var y=new e,E=new e,v=new e,_=new e,T=new e;m.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,r,y),g=e.subtract(a,r,E),R=e.cross(p,g,v),A=e.dot(m,R);if(u){if(A<o.EPSILON6)return;if(s=e.subtract(d,r,_),(l=e.dot(s,R))<0||l>A)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>A)return;h=e.dot(g,c)/A}else{if(Math.abs(A)<o.EPSILON6)return;var S=1/A;if(s=e.subtract(d,r,_),(l=e.dot(s,R)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(g,c)*S}return h},m.rayTriangle=function(t,n,i,a,o,u){var s=m.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var g=new l;m.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=g;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var R={root0:0,root1:0};m.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var A=new l;m.lineSegmentSphere=function(t,n,i,a){var o=A;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,w=new e;m.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,w),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,y=r/s;return m<y?new a(m,y):{start:y,stop:m}}var E=Math.sqrt(r/i);return new a(E,E)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var O=new e,I=new e,x=new e,N=new e,M=new e,C=new u,P=new u,b=new u,D=new u,U=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,O);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,O),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,N),d=e.normalize(e.cross(h,f,I),I),m=e.normalize(e.cross(f,d,x),x),y=C;y[0]=f.x,y[1]=f.y,y[2]=f.z,y[3]=d.x,y[4]=d.y,y[5]=d.z,y[6]=m.x,y[7]=m.y,y[8]=m.z;var E=u.transpose(y,P),v=u.fromScale(n.radii,b),_=u.fromScale(n.oneOverRadii,D),T=U;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var g,R,A=u.multiply(u.multiply(E,_,L),T,L),S=u.multiply(u.multiply(A,v,F),y,F),w=u.multiplyByVector(A,i,M),G=p(S,e.negate(w,O),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,k=0;k<V;++k){g=u.multiplyByVector(v,u.multiplyByVector(y,G[k],B),B);var H=e.normalize(e.subtract(g,i,N),N),Y=e.dot(H,a);Y>X&&(X=Y,W=e.clone(g,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),R=e.magnitude(e.subtract(W,i,N))*Math.sqrt(1-X*X),R=c?-R:R,j.height=R,n.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,y=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(y,u),l=Math.max(y,l)}var E=n.minimum;E.x=i,E.y=o,E.z=u;var v=n.maximum;return v.x=s,v.y=c,v.z=l,n.center=e.midpoint(E,v,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,m,y,E;if("%%"==e)return"%";for(var v=!1,_="",T=!1,g=!1,R=" ",A=s.length,S=0;s&&S<A;S++)switch(s.charAt(S)){case" ":_=" ";break;case"+":_="+";break;case"-":v=!0;break;case"'":R=s.charAt(S+1);break;case"0":T=!0;break;case"#":g=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,v=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,E=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(E),v,c,f,T,R);case"c":return u(String.fromCharCode(+E),v,c,f,T);case"b":return o(E,2,g,v,c,f,T);case"o":return o(E,8,g,v,c,f,T);case"x":return o(E,16,g,v,c,f,T);case"X":return o(E,16,g,v,c,f,T).toUpperCase();case"u":return o(E,10,g,v,c,f,T);case"i":case"d":return d=+E||0,d=Math.round(d-d%1),p=d<0?"-":_,E=p+i(String(Math.abs(d)),f,"0",!1),a(E,p,v,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+E,p=d<0?"-":_,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],y=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],E=p+Math.abs(d)[m](f),a(E,p,v,c,T)[y]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){v.julianDate=e;var n=m.leapSeconds,r=t(n,v,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){m.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}m.addSeconds(e,i,e)}function h(e,n){v.julianDate=e;var r=m.leapSeconds,i=t(r,v,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-r[0].offset,n);if(i>=r.length)return m.addSeconds(e,-r[i-1].offset,n);var a=m.secondsDifference(r[i].julianDate,e);return 0===a?m.addSeconds(e,-r[i].offset,n):a<=1?void 0:m.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var y=new a,E=[31,28,31,30,31,30,31,31,30,31,30,31],v=new u,_=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,g=/^(\d{4})-?(\d{3})$/,R=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,A=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,w=/^(\d{2})(\.\d+)?/.source+S.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,y=0,v=0,S=0,x=u[0],N=u[1];if(null!==(u=x.match(A)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=x.match(T)))n=+u[1],s=+u[2];else if(null!==(u=x.match(_)))n=+u[1];else{var M;if(null!==(u=x.match(g)))n=+u[1],M=+u[2],a=o(n);else if(null!==(u=x.match(R))){n=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(n,0,4));M=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(M),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(N)){u=N.match(I),null!==u?(h=+u[1],y=+u[2],v=+u[3],S=1e3*+(u[4]||0),D=5):(u=N.match(O),null!==u?(h=+u[1],y=+u[2],v=60*+(u[3]||0),D=4):null!==(u=N.match(w))&&(h=+u[1],y=60*+(u[2]||0),D=3));var U=u[D],L=+u[D+1],F=+(u[D+2]||0);switch(U){case"+":h-=L,y-=F;break;case"-":h+=L,y+=F;break;case"Z":break;default:y+=new Date(Date.UTC(n,s-1,l,h,y)).getTimezoneOffset()}}var B=60===v;for(B&&v--;y>=60;)y-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:E[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:E[s-1];for(;y<0;)y+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:E[s-1],l+=i;var z=p(n,s,l,h,y,v,S);return r(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var x=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var n=!1,i=h(e,x);r(i)||(m.addSeconds(e,-1,x),i=h(x,x),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var y=d+2-12*c|0,E=100*(l-49)+f+c|0,v=u/s.SECONDS_PER_HOUR|0,_=u-v*s.SECONDS_PER_HOUR,T=_/s.SECONDS_PER_MINUTE|0;_-=T*s.SECONDS_PER_MINUTE;var g=0|_,R=(_-g)/s.SECONDS_PER_MILLISECOND;return v+=12,v>23&&(v-=24),n&&(g+=1),r(t)?(t.year=E,t.month=y,t.day=p,t.hour=v,t.minute=T,t.second=g,t.millisecond=R,t.isLeapSecond=n,t):new a(E,y,p,v,T,g,R,n)},m.toDate=function(e){var t=m.toGregorianDate(e,y),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},m.toIso8601=function(t,n){var i=m.toGregorianDate(t,y),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=n},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){v.julianDate=e;var n=m.leapSeconds,r=t(n,v,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},m.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},m.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},m.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},m.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){ -e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return w[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function y(e){return function(t){e.state!==l.CANCELLED&&(--g.numberOfActiveRequests,--w[e.serverKey],I.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function E(e){return function(t){e.state!==l.CANCELLED&&(++g.numberOfFailedRequests,--g.numberOfActiveRequests,--w[e.serverKey],I.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function v(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++g.numberOfActiveRequests,++g.numberOfActiveRequestsEver,++w[e.serverKey],e.requestFunction().then(y(e)).otherwise(E(e)),t}function _(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++g.numberOfCancelledRequests,e.deferred.reject(),t&&(--g.numberOfActiveRequests,--w[e.serverKey],++g.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===g.numberOfActiveRequests&&g.lastNumberOfActiveRequests>0&&(g.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+g.numberOfAttemptedRequests),g.numberOfAttemptedRequests=0),g.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+g.numberOfCancelledRequests),g.numberOfCancelledRequests=0),g.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+g.numberOfCancelledActiveRequests),g.numberOfCancelledActiveRequests=0),g.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+g.numberOfFailedRequests),g.numberOfFailedRequests=0)),g.lastNumberOfActiveRequests=g.numberOfActiveRequests)}var g={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},R=20,A=new u({comparator:f});A.maximumLength=R,A.reserve(R);var S=[],w={},O="undefined"!=typeof document?new e(document.location.href):new e,I=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=I,a(h,{statistics:{get:function(){return g}},priorityHeapLength:{get:function(){return R},set:function(e){if(e<R)for(;A.length>e;){var t=A.pop();_(t)}R=e,A.maximumLength=e,A.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&_(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=A.internalArray,a=A.length;for(e=0;e<a;++e)d(i[e]);A.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&A.length>0;)t=A.pop(),t.cancelled?_(t):!t.throttleByServer||p(t.serverKey)?(v(t),++u):_(t);T()},h.getServerKey=function(t){var n=new e(t).resolve(O);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=w[r];return i(a)||(w[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return I.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++g.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return v(e);if(!(S.length>=h.maximumRequests)){d(e);var t=A.insert(e);if(i(t)){if(t===e)return;_(t)}return m(e)}}},h.clearForSpecs=function(){for(;A.length>0;){_(A.pop())}for(var e=S.length,t=0;t<e;++t)_(S[t]);S.length=0,w={},g.numberOfAttemptedRequests=0,g.numberOfActiveRequests=0,g.numberOfCancelledRequests=0,g.numberOfCancelledActiveRequests=0,g.numberOfFailedRequests=0,g.numberOfActiveRequestsEver=0,g.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return w[e]},h.requestHeap=A,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,g,R,A,S,w){"use strict";function O(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=_(i);t._queryParameters=n?M(a,t._queryParameters,r):a,e.query=void 0}function I(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=v(n):e.query=r[0]}function x(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function N(e){if(e.state===A.ISSUED||e.state===A.ACTIVE)throw new S("The Resource is already being fetched.");e.state=A.UNISSUED,e.deferred=void 0}function M(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=x(t.templateValues,{}),this._queryParameters=x(t.queryParameters,{}),this.headers=x(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);O(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=R.request(a);if(u(o))return o.otherwise(function(e){return a.state!==A.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function b(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=R.request(a);if(u(o))return o.otherwise(function(i){return a.state!==A.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,b(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function U(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return U(r,i);case"blob":var a=U(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function F(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(w.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new g(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new g)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);O(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return y(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&I(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);O(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(N(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),N(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;N(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=R.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==A.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=A.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=x(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=x(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=x(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=x(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=x(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=x(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=x(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void F(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(w.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new g(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new g)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return E(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var y=e._samples=n.samples,E=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var v,_=e._addNewLeapSeconds,T=0,g=y.length;T<g;T+=e._columnCount){var R=y[T+i],A=y[T+m],S=R+l.MODIFIED_JULIAN_DATE_DIFFERENCE,w=new o(S,A,f.TAI);if(E.push(w),_){if(A!==v&&r(v)){var O=o.leapSeconds,I=t(O,w,d);if(I<0){var x=new u(w,A);O.splice(~I,0,x)}}v=A}}}function m(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function y(e,t,n){return t+e*(n-t)}function E(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return m(e,n,i,s,u),u;if(r.equals(l))return m(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],E=n[d+e._ut1MinusUtcSecondsColumn],v=E-p;if(v>.5||v<-.5){var _=n[h+e._taiMinusUtcSecondsColumn],T=n[d+e._taiMinusUtcSecondsColumn];_!==T&&(l.equals(r)?p=E:E-=T-_)}return u.xPoleWander=y(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=y(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=y(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=y(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=y(f,p,E),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,E(this,a,this._samples,e,s,l,n),n}var y=t(a,e,o.compare,this._dateColumn);return y>=0?(y<a.length-1&&a[y+1].equals(e)&&++y,s=y,l=y):(l=~y,(s=l-1)<0&&(s=0)),this._lastIndex=s,E(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,m,y=a-s*this._stepSizeDays,E=this._work,v=this._denominators,_=this._coef,T=this._xTable;for(p=0;p<=u;++p)E[p]=y-T[p];for(p=0;p<=u;++p){for(_[p]=1,m=0;m<=u;++m)m!==p&&(_[p]*=E[m]);_[p]*=v[p];var g=3*(s+p);n.x+=_[p]*d[g++],n.y+=_[p]*d[g++],n.s+=_[p]*d[g]}return n}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)n=Math.sqrt(m+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var y=l,E=0;d>h&&(E=1),p>h&&p>d&&(E=2);var v=y[E],_=y[v];n=Math.sqrt(e[u.getElementIndex(E,E)]-e[u.getElementIndex(v,v)]-e[u.getElementIndex(_,_)]+1);var T=f;T[E]=.5*n,n=.5/n,c=(e[u.getElementIndex(_,v)]-e[u.getElementIndex(v,_)])*n,T[v]=(e[u.getElementIndex(v,E)]+e[u.getElementIndex(E,v)])*n,T[_]=(e[u.getElementIndex(_,E)]+e[u.getElementIndex(E,_)])*n,i=-T[0],a=-T[1],o=-T[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,n){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var y=new e,E=new e,v=new s,_=new s,T=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,T),s.conjugate(T,T);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),v),s.multiply(v,T,v),v.w<0&&s.negate(v,v),s.computeAxis(v,y);var u=s.computeAngle(v);r[o]=y.x*u,r[o+1]=y.y*u,r[o+2]=y.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,E);var u=e.magnitude(E);return s.unpack(n,4*a,_),0===u?s.clone(s.IDENTITY,v):s.fromAxisAngle(E,u,v),s.multiply(v,_,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w}, -s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var g=new s;s.lerp=function(e,t,n,r){return g=s.multiplyByScalar(t,n,g),r=s.multiplyByScalar(e,1-n,r),s.add(g,r,r)};var R=new s,A=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=R=s.negate(t,R)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return A=s.multiplyByScalar(e,Math.sin((1-n)*u),A),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(A,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var w=new e,O=new e,I=new s,x=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,I);s.multiply(a,r,x);var o=s.log(x,w);s.multiply(a,t,x);var u=s.log(x,O);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,I),s.multiply(n,I,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,I),u=s.slerp(n,r,i,x);return s.slerp(o,u,2*i*(1-i),a)};for(var N=new s,M=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=0;U<7;++U){var L=U+1,F=2*L+1;C[U]=1/(L*F),P[U]=L/F}return C[7]=M/136,P[7]=8*M/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,N);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,I),u=s.fastSlerp(n,r,i,x);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T){"use strict";var g={},R={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},A={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},w={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},O=new n,I=new n,x=new n;g.localFrameToFixedFrameGenerator=function(e,t){if(!R.hasOwnProperty(e)||!R[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=R[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new v),y.equalsEpsilon(r.x,0,y.EPSILON14)&&y.equalsEpsilon(r.y,0,y.EPSILON14)){var c=y.sign(r.z);n.unpack(A[e],0,O),"east"!==e&&"west"!==e&&n.multiplyByScalar(O,c,O),n.unpack(A[t],0,I),"east"!==t&&"west"!==t&&n.multiplyByScalar(I,c,I),n.unpack(A[i],0,x),"east"!==i&&"west"!==i&&n.multiplyByScalar(x,c,x)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,w.up);var l=w.up,h=w.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,w.east),n.cross(l,h,w.north),n.multiplyByScalar(w.up,-1,w.down),n.multiplyByScalar(w.east,-1,w.west),n.multiplyByScalar(w.north,-1,w.south),O=w[e],I=w[t],x=w[i]}return s[0]=O.x,s[1]=O.y,s[2]=O.z,s[3]=0,s[4]=I.x,s[5]=I.y,s[6]=I.z,s[7]=0,s[8]=x.x,s[9]=x.y,s[10]=x.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},g.eastNorthUpToFixedFrame=g.localFrameToFixedFrameGenerator("east","north"),g.northEastDownToFixedFrame=g.localFrameToFixedFrameGenerator("north","east"),g.northUpEastToFixedFrame=g.localFrameToFixedFrameGenerator("north","up"),g.northWestUpToFixedFrame=g.localFrameToFixedFrameGenerator("north","west");var N=new _,M=new n(1,1,1),C=new v;g.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,g.eastNorthUpToFixedFrame);var u=_.fromHeadingPitchRoll(t,N),s=v.fromTranslationQuaternionRotationScale(n.ZERO,u,M,C);return a=i(e,r,a),v.multiply(a,s,a)};var P=new v,b=new E;g.headingPitchRollQuaternion=function(e,t,n,r,i){var a=g.headingPitchRollToFixedFrame(e,t,n,r,P),o=v.getRotation(a,b);return _.fromRotationMatrix(o,i)};var D=new n(1,1,1),U=new n,L=new v,F=new v,B=new E,z=new _;g.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,g.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=v.getTranslation(e,U);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=v.inverseTransformation(r(a,t,L),L),c=v.setScale(e,D,F);c=v.setTranslation(c,n.ZERO,c),s=v.multiply(s,c,s);var l=_.fromRotationMatrix(v.getRotation(s,B),z);return l=_.normalize(l,l),h.fromQuaternion(l,i)};var q=y.TWO_PI/86400,G=new m;g.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%y.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new E(h,d,0,-d,h,0,0,0,1)},g.iau2006XysData=new d,g.earthOrientationParameters=c.NONE;g.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=g.iau2006XysData.preload(n,r,i,a),u=g.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},g.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new E);var n=g.computeFixedToIcrfMatrix(e,t);if(u(n))return E.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new E,k=new E;g.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new E);var n=g.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=g.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=E.fromRotationZ(-a.s,k),h=E.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+n.ut1MinusUtc,v=d-2451545,_=p/T.SECONDS_PER_DAY,R=.779057273264+_+.00273781191135448*(v+_);R=R%1*y.TWO_PI;var A=E.fromRotationZ(R,k),S=E.multiply(h,A,X),w=Math.cos(n.xPoleWander),O=Math.cos(n.yPoleWander),I=Math.sin(n.xPoleWander),x=Math.sin(n.yPoleWander),N=r-2451545+i/T.SECONDS_PER_DAY;N/=36525;var M=-47e-6*N*y.RADIANS_PER_DEGREE/3600,C=Math.cos(M),P=Math.sin(M),b=k;return b[0]=w*C,b[1]=w*P,b[2]=I,b[3]=-O*P+x*I*C,b[4]=O*C+x*I*P,b[5]=-x*w,b[6]=-x*P-O*I*C,b[7]=x*C-O*I*P,b[8]=O*w,E.multiply(S,b,t)}}};var H=new r;g.pointToWindowCoordinates=function(e,t,n,r){return r=g.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},g.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=H;return v.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),v.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var Y=new n,j=new n,Z=new n;g.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,Y),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,y.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new E),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new v(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new E,te=new v,ne=new v;return g.basisTo2D=function(e,t,r){var i=v.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=g.eastNorthUpToFixedFrame(i,a,te),c=v.inverseTransformation(s,ne),l=v.getRotation(t,ee),f=v.multiplyByMatrix3(c,l,r);return v.multiply(K,f,r),v.setTranslation(r,u,r),r},g.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=g.eastNorthUpToFixedFrame(t,i,te),o=v.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=v.fromTranslation(s,te);return v.multiply(K,o,r),v.multiply(c,r,r),r},g}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,y)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,y));var i=n.fromCartesian4(f.getColumn(r,2,y));this._plane=h.fromPointNormal(e,i)}var y=new r;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var E=new e;m.fromPoints=function(t,n){return new m(e.fromPoints(t,E).center,n)};var v=new d,_=new n;m.prototype.projectPointOntoPlane=function(e,r){var i=v;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,_);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,_)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},m.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=v;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,_);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,_));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var T=new n;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=T;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e,t){this.center=n.clone(a(e,n.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function E(e,t,r,i,a,u,s,c){o(c)||(c=new y);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=O;f.x=(t+r)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=I;h.x=(r-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var p=c.center;return f=d.multiplyByVector(l,f,f),n.add(e.origin,f,p),d.multiplyByScale(l,h,l),c}y.packedLength=n.packedLength+d.packedLength,y.pack=function(e,t,r){return r=a(r,0),n.pack(e.center,t,r),d.pack(e.halfAxes,t,r+n.packedLength),t},y.unpack=function(e,t,r){return t=a(t,0),o(r)||(r=new y),n.unpack(e,t,r.center),d.unpack(e,t+n.packedLength,r.halfAxes),r};var v=new n,_=new n,T=new n,g=new n,R=new n,A=new n,S=new d,w={unitary:new d,diagonal:new d};y.fromPoints=function(e,t){if(o(t)||(t=new y),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=n.ZERO,t;var r,i=e.length,a=n.clone(e[0],v);for(r=1;r<i;r++)n.add(a,e[r],a);var u=1/i;n.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,p=0,m=0;for(r=0;r<i;r++)s=n.subtract(e[r],a,_),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,p+=s.y*s.z,m+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,p*=u,m*=u;var E=S;E[0]=c,E[1]=l,E[2]=f,E[3]=l,E[4]=h,E[5]=p,E[6]=f,E[7]=p,E[8]=m;var O=d.computeEigenDecomposition(E,w),I=d.clone(O.unitary,t.halfAxes),x=d.getColumn(I,0,g),N=d.getColumn(I,1,R),M=d.getColumn(I,2,A),C=-Number.MAX_VALUE,P=-Number.MAX_VALUE,b=-Number.MAX_VALUE,D=Number.MAX_VALUE,U=Number.MAX_VALUE,L=Number.MAX_VALUE;for(r=0;r<i;r++)s=e[r],C=Math.max(n.dot(x,s),C),P=Math.max(n.dot(N,s),P),b=Math.max(n.dot(M,s),b),D=Math.min(n.dot(x,s),D),U=Math.min(n.dot(N,s),U),L=Math.min(n.dot(M,s),L);x=n.multiplyByScalar(x,.5*(D+C),x),N=n.multiplyByScalar(N,.5*(U+P),N),M=n.multiplyByScalar(M,.5*(L+b),M);var F=n.add(x,N,t.center);n.add(F,M,F);var B=T;return B.x=C-D,B.y=P-U,B.z=b-L,n.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var O=new n,I=new n,x=new r,N=new n,M=[new r,new r,new r,new r,new r,new r,new r,new r],C=[new n,new n,new n,new n,new n,new n,new n,new n],P=[new t,new t,new t,new t,new t,new t,new t,new t];y.fromRectangle=function(e,t,n,r,i){t=a(t,0),n=a(n,0),r=a(r,s.WGS84);var o=m.center(e,x),u=r.cartographicToCartesian(o,N),l=new c(u,r),f=l.plane,h=M[0],d=M[1],y=M[2],v=M[3],_=M[4],T=M[5],g=M[6],R=M[7],A=o.longitude,S=e.south<0&&e.north>0?0:o.latitude;g.latitude=T.latitude=_.latitude=e.south,R.latitude=v.latitude=S,h.latitude=d.latitude=y.latitude=e.north,g.longitude=R.longitude=h.longitude=e.west,T.longitude=d.longitude=A,_.longitude=v.longitude=y.longitude=e.east,y.height=d.height=h.height=R.height=g.height=T.height=_.height=v.height=n,r.cartographicArrayToCartesianArray(M,C),l.projectPointsToNearestOnPlane(C,P);var w=Math.min(P[6].x,P[7].x,P[0].x),O=Math.max(P[2].x,P[3].x,P[4].x),I=Math.min(P[4].y,P[5].y,P[6].y),b=Math.max(P[0].y,P[1].y,P[2].y);return y.height=h.height=_.height=g.height=t,r.cartographicArrayToCartesianArray(M,C),E(l,w,O,I,b,Math.min(p.getPointDistance(f,C[0]),p.getPointDistance(f,C[2]),p.getPointDistance(f,C[4]),p.getPointDistance(f,C[6])),n,i)},y.clone=function(e,t){if(o(e))return o(t)?(n.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new y(e.center,e.halfAxes)},y.intersectPlane=function(e,t){var r=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=n.dot(i,r)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var b=new n,D=new n,U=new n,L=new n;y.distanceSquaredTo=function(e,t){var r=n.subtract(t,e.center,O),i=e.halfAxes,a=d.getColumn(i,0,b),o=d.getColumn(i,1,D),u=d.getColumn(i,2,U),s=n.magnitude(a),c=n.magnitude(o),l=n.magnitude(u);n.normalize(a,a),n.normalize(o,o),n.normalize(u,u);var f=L;f.x=n.dot(r,a),f.y=n.dot(r,o),f.z=n.dot(r,u);var h,p=0;return f.x<-s?(h=f.x+s,p+=h*h):f.x>s&&(h=f.x-s,p+=h*h),f.y<-c?(h=f.y+c,p+=h*h):f.y>c&&(h=f.y-c,p+=h*h),f.z<-l?(h=f.z+l,p+=h*h):f.z>l&&(h=f.z-l,p+=h*h),p};var F=new n,B=new n;y.computePlaneDistances=function(e,t,r,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,b),h=d.getColumn(c,1,D),p=d.getColumn(c,2,U),m=n.add(l,h,F);n.add(m,p,m),n.add(m,s,m);var y=n.subtract(m,t,B),E=n.dot(r,y);return a=Math.min(E,a),u=Math.max(E,u),n.add(s,l,m),n.add(m,h,m),n.subtract(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.add(s,l,m),n.subtract(m,h,m),n.add(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.add(s,l,m),n.subtract(m,h,m),n.subtract(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.subtract(s,l,m),n.add(m,h,m),n.add(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.subtract(s,l,m),n.add(m,h,m),n.subtract(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.subtract(s,l,m),n.subtract(m,h,m),n.add(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),n.subtract(s,l,m),n.subtract(m,h,m),n.subtract(m,p,m),n.subtract(m,t,y),E=n.dot(r,y),a=Math.min(E,a),u=Math.max(E,u),i.start=a,i.stop=u,i};var z=new e;return y.isOccluded=function(t,n){var r=e.fromOrientedBoundingBox(t,z);return!n.isBoundingSphereVisible(r)},y.prototype.intersectPlane=function(e){return y.intersectPlane(this,e)},y.prototype.distanceSquaredTo=function(e){return y.distanceSquaredTo(this,e)},y.prototype.computePlaneDistances=function(e,t,n){return y.computePlaneDistances(this,e,t,n)},y.prototype.isOccluded=function(e){return y.isOccluded(this,e)},y.equals=function(e,t){return e===t||o(e)&&o(t)&&n.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},y.prototype.clone=function(e){return y.clone(this,e)},y.prototype.equals=function(e){return y.equals(this,e)},y}),define("Core/CoplanarPolygonGeometryLibrary",["./defined","./Cartesian2","./Cartesian3","./Check","./IntersectionTests","./Math","./Matrix3","./OrientedBoundingBox"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,r,i,a,o){var u=n.subtract(e,r,l),s=n.dot(i,u),c=n.dot(a,u);return t.fromElements(s,c,o)}var c={},l=new n,f=new n,h=new n,d=new n,p=new u;return c.validOutline=function(e){var t=u.fromPoints(e,p),r=t.halfAxes,i=o.getColumn(r,0,f),a=o.getColumn(r,1,h),s=o.getColumn(r,2,d),c=n.magnitude(i),l=n.magnitude(a),m=n.magnitude(s);return!(0===c&&(0===l||0===m)||0===l&&0===m)},c.computeProjectTo2DArguments=function(e,t,r,i){var a=u.fromPoints(e,p),s=a.halfAxes,c=o.getColumn(s,0,f),l=o.getColumn(s,1,h),m=o.getColumn(s,2,d),y=n.magnitude(c),E=n.magnitude(l),v=n.magnitude(m),_=Math.min(y,E,v);if(0===y&&(0===E||0===v)||0===E&&0===v)return!1;var T,g;return _!==E&&_!==v||(T=c),_===y?T=l:_===v&&(g=l),_!==y&&_!==E||(g=m),n.normalize(T,r),n.normalize(g,i),n.clone(a.center,t),!0},c.createProjectPointsTo2DFunction=function(e,t,n){return function(r){for(var i=new Array(r.length),a=0;a<r.length;a++)i[a]=s(r[a],e,t,n);return i}},c.createProjectPointTo2DFunction=function(e,t,n){return function(r,i){return s(r,e,t,n,i)}},c}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}y.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var E=new n,v=new t,_=new f,T=[new n,new n,new n],g=[new e,new e,new e],R=[new e,new e,new e],A=new t,S=new d,w=new f,O=new c;return y._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,E),h=n.toCartesian(s,a,v),y=m.eastNorthUpToFixedFrame(h,a,_),I=f.inverse(y,_),x=g,N=T;N[0].longitude=o.west,N[0].latitude=o.south,N[1].longitude=o.west,N[1].latitude=o.north,N[2].longitude=o.east,N[2].latitude=o.south;var M=A;for(u=0;u<3;u++)n.toCartesian(N[u],a,M),M=f.multiplyByPointAsVector(I,M,M),x[u].x=M.x,x[u].y=M.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,w),b=r.length,D=Number.POSITIVE_INFINITY,U=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)M=f.multiplyByPointAsVector(I,r[u],M),M=l.multiplyByVector(P,M,M),D=Math.min(D,M.x),U=Math.min(U,M.y),L=Math.max(L,M.x),F=Math.max(F,M.y);var B=c.fromRotation(i,O),z=R;z[0].x=D,z[0].y=U,z[1].x=D,z[1].y=F,z[2].x=L,z[2].y=U;var q=x[0],G=x[2].x-q.x,V=x[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],k=z[1],H=z[2],Y=new Array(6);return e.pack(X,Y),e.pack(k,Y,2),e.pack(H,Y,4),Y},y}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=r.clone(e(t.modelMatrix,r.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,n,r,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*a.signNotZero(r),n.y=(1-Math.abs(r))*a.signNotZero(i)}return n.x=a.toSNorm(n.x,t),n.y=a.toSNorm(n.y,t),n},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,n,r,i){if(i.x=a.fromSNorm(e,r),i.y=a.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,n){return s.octDecodeInRange(e,t,255,n)},s.octDecodeFromCartesian4=function(e,t){var n=e.x,r=e.y,i=e.z,a=e.w,o=256*n+r,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var n=e/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,t)},s.octPack=function(e,t,n,r){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(n,f);return r.x=65536*o.x+i,r.y=65536*o.y+a,r},s.octUnpack=function(e,t,n,r){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,n),s.octDecode(a,u,r)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var n=e/4096,r=Math.floor(n);return t.x=r/4095,t.y=(e-4096*r)/4095,t},s.zigZagDeltaDecode=function(e,t,n){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,n,r,i){"use strict";function a(n,a,c,l,f){r(f)||(f=new t);var h,d,p,m,y,E,v,_;if(r(a.z)){if(t.equalsEpsilon(n,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(n,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(n,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(n,a,s),m=t.dot(h,h),y=t.dot(h,d),E=t.dot(h,p),v=t.dot(d,d),_=t.dot(d,p)}else{if(e.equalsEpsilon(n,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(n,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(n,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(n,a,s),m=e.dot(h,h),y=e.dot(h,d),E=e.dot(h,p),v=e.dot(d,d),_=e.dot(d,p)}var T=m*v-y*y,g=1/T;return f.y=(v*E-y*_)*g,f.z=(m*_-y*E)*g,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,n){"use strict";function r(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}r.encode=function(e,t){n(t)||(t={high:0,low:0});var r;return e>=0?(r=65536*Math.floor(e/65536),t.high=r,t.low=e-r):(r=65536*Math.floor(-e/65536),t.high=-r,t.low=e+r),t};var i={high:0,low:0};r.fromCartesian=function(e,t){n(t)||(t=new r);var a=t.high,o=t.low;return r.encode(e.x,i),a.x=i.high,o.x=i.low,r.encode(e.y,i),a.y=i.high,o.y=i.low,r.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new r;return r.writeElements=function(e,t,n){r.fromCartesian(e,a);var i=a.high,o=a.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z},r}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)}, -a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";var r={};return r.calculateACMR=function(n){n=e(n,e.EMPTY_OBJECT);var r=n.indices,i=n.maximumIndex,a=e(n.cacheSize,24),o=r.length;if(!t(i)){i=0;for(var u=0,s=r[u];u<o;)s>i&&(i=s),++u,s=r[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[r[h]]>a&&(c[r[h]]=f,++f);return(f-a+1)/(o/3)},r.tipsify=function(n){function r(e,t,n,r){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<r;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}n=e(n,e.EMPTY_OBJECT);var i,a=n.indices,o=n.maximumIndex,u=e(n.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var y=0,E=u+1;i=1;var v,_,T=[],g=[],R=0,A=[],S=s/3,w=[];for(d=0;d<S;d++)w[d]=!1;for(var O,I;-1!==y;){T=[],_=p[y],I=_.vertexTriangles.length;for(var x=0;x<I;++x)if(m=_.vertexTriangles[x],!w[m]){w[m]=!0,l=m+m+m;for(var N=0;N<3;++N)O=a[l],T.push(O),g.push(O),A[R]=O,++R,v=p[O],--v.numLiveTriangles,E-v.timeStamp>u&&(v.timeStamp=E,++E),++l}y=function(e,t,n,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<n.length;){var h=n[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?r(i,o,e,u):c}(a,u,T,p,E,g,c)}return A},r}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,g,R,A,S){"use strict";function w(e,t,n,r,i){e[t++]=n,e[t++]=r,e[t++]=r,e[t++]=i,e[t++]=i,e[t]=n}function O(e){for(var t=e.length,n=t/3*6,r=y.createTypedArray(t,n),i=0,a=0;a<t;a+=3,i+=6)w(r,i,e[a],e[a+1],e[a+2]);return r}function I(e){var t=e.length;if(t>=3){var n=6*(t-2),r=y.createTypedArray(t,n);w(r,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)w(r,i,e[a-1],e[a],e[a-2]);return r}return new Uint16Array}function x(e){if(e.length>0){for(var t=e.length-1,n=6*(t-1),r=y.createTypedArray(t,n),i=e[0],a=0,o=1;o<t;++o,a+=6)w(r,a,i,e[o],e[o+1]);return r}return new Uint16Array}function N(e){var t={};for(var n in e)if(e.hasOwnProperty(n)&&c(e[n])&&c(e[n].values)){var r=e[n];t[n]=new p({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]})}return t}function M(e,t,n){for(var r in t)if(t.hasOwnProperty(r)&&c(t[r])&&c(t[r].values))for(var i=t[r],a=0;a<i.componentsPerAttribute;++a)e[r].values.push(i.values[n*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var n=t.values,r=n.length,a=0;a<r;a+=3)i.unpack(n,a,se),g.multiplyByPoint(e,se,se),i.pack(se,n,a)}function P(e,t){if(c(t))for(var n=t.values,r=n.length,a=0;a<r;a+=3)i.unpack(n,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,n,a)}function b(e,t){var n,r=e.length,i={},a=e[0][t].attributes;for(n in a)if(a.hasOwnProperty(n)&&c(a[n])&&c(a[n].values)){for(var o=a[n],s=o.values.length,l=!0,f=1;f<r;++f){var h=e[f][t].attributes[n];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[n]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function D(e,t){var r,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,E=b(e,t);for(r in E)if(E.hasOwnProperty(r))for(s=E[r].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[r].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var v;if(p){var _=0;for(a=0;a<h;++a)_+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:E,primitiveType:A.POINTS})),g=y.createTypedArray(T,_),R=0,S=0;for(a=0;a<h;++a){var w=e[a][t].indices,O=w.length;for(u=0;u<O;++u)g[R++]=S+w[u];S+=d.computeNumberOfVertices(e[a][t])}v=g}var I,x=new i,N=0;for(a=0;a<h;++a){if(I=e[a][t].boundingSphere,!c(I)){x=void 0;break}i.add(I.center,x,x)}if(c(x))for(i.divideByScalar(x,h,x),a=0;a<h;++a){I=e[a][t].boundingSphere;var M=i.magnitude(i.subtract(I.center,x,fe))+I.radius;M>N&&(N=M)}return new d({attributes:E,indices:v,primitiveType:m,boundingSphere:c(x)?new n(x,N):void 0})}function U(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,t),r=0;r<t;++r)n[r]=r;return e.indices=n,e}function L(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,3*(t-2));n[0]=1,n[1]=0,n[2]=2;for(var r=3,i=3;i<t;++i)n[r++]=i-1,n[r++]=0,n[r++]=i;return e.indices=n,e.primitiveType=A.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,3*(t-2));n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);for(var r=6,i=3;i<t-1;i+=2)n[r++]=i,n[r++]=i-1,n[r++]=i+1,i+2<t&&(n[r++]=i,n[r++]=i+1,n[r++]=i+2);return e.indices=n,e.primitiveType=A.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,t),r=0;r<t;++r)n[r]=r;return e.indices=n,e}function z(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,2*(t-1));n[0]=0,n[1]=1;for(var r=2,i=2;i<t;++i)n[r++]=i-1,n[r++]=i;return e.indices=n,e.primitiveType=A.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,2*t);n[0]=0,n[1]=1;for(var r=2,i=2;i<t;++i)n[r++]=i-1,n[r++]=i;return n[r++]=t-1,n[r]=0,e.indices=n,e.primitiveType=A.LINES,e}function G(e){switch(e.primitiveType){case A.TRIANGLE_FAN:return L(e);case A.TRIANGLE_STRIP:return F(e);case A.TRIANGLES:return U(e);case A.LINE_STRIP:return z(e);case A.LINE_LOOP:return q(e);case A.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<_.EPSILON6&&(e.y=t?-_.EPSILON6:_.EPSILON6)}function W(e,t,n){if(0!==e.y&&0!==t.y&&0!==n.y)return V(e,e.y<0),V(t,t.y<0),void V(n,n.y<0);var r,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(n.y);r=i>a?i>o?_.sign(e.y):_.sign(n.y):a>o?_.sign(t.y):_.sign(n.y);var u=r<0;V(e,u),V(t,u),V(n,u)}function X(e,t,n,r){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),n),i.clone(n,r),V(n,!0),V(r,!1)}function k(e,t,n){if(!(e.x>=0||t.x>=0||n.x>=0)){W(e,t,n);var r=e.y<0,i=t.y<0,a=n.y<0,o=0;o+=r?1:0,o+=i?1:0,o+=a?1:0;var u=Ne.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,r?(X(e,t,we,Ie),X(e,n,Oe,xe),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,n,we,Ie),X(t,e,Oe,xe),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(n,e,we,Ie),X(n,t,Oe,xe),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,r?i?a||(X(n,e,we,Ie),X(n,t,Oe,xe),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,n,we,Ie),X(t,e,Oe,xe),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,we,Ie),X(e,n,Oe,xe),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Ne.positions;return s[0]=e,s[1]=t,s[2]=n,s.length=3,1!==o&&2!==o||(s[3]=we,s[4]=Oe,s[5]=Ie,s[6]=xe,s.length=7),Ne}}function H(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var i in r)if(r.hasOwnProperty(i)&&c(r[i])&&c(r[i].values)){var a=r[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=y.createTypedArray(o,e.indices),t&&(e.boundingSphere=n.fromVertices(r.position.values)),e}}function Y(e){var t=e.attributes,n={};for(var r in t)if(t.hasOwnProperty(r)&&c(t[r])&&c(t[r].values)){var i=t[r];n[r]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:n,indices:[],primitiveType:e.primitiveType})}function j(e,t,n){var r=c(e.geometry.boundingSphere);t=H(t,r),n=H(n,r),c(n)&&!c(t)?e.geometry=n:!c(n)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function Z(e,t){var n=new e,r=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,n),p=e.fromArray(c,o*t,r),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var y=e.add(d,p,d);e.add(y,m,y),h&&e.normalize(y,y),e.pack(y,l,f*t)}}function K(e,n,r,a,o,u,s,l,f,h,d,p,m,y,E,v){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==y){var _=i.fromArray(o,3*e,De),T=i.fromArray(o,3*n,Ue),g=i.fromArray(o,3*r,Le),R=t(a,_,T,g,Fe);if(c(u)&&Ce(e,n,r,R,u,p.normal.values,v,!0),c(h)){var A=i.fromArray(h,3*e,De),S=i.fromArray(h,3*n,Ue),w=i.fromArray(h,3*r,Le);i.multiplyByScalar(A,R.x,A),i.multiplyByScalar(S,R.y,S),i.multiplyByScalar(w,R.z,w);var O;i.equals(A,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(w,i.ZERO)?(O=De,O.x=0,O.y=0,O.z=0):(O=i.add(A,S,A),i.add(O,w,O),i.normalize(O,O)),i.pack(O,p.extrudeDirection.values,3*v)}if(c(d)&&be(e,n,r,R,d,p.applyOffset.values,v),c(s)&&Ce(e,n,r,R,s,p.tangent.values,v,!0),c(l)&&Ce(e,n,r,R,l,p.bitangent.values,v,!0),c(f)&&Pe(e,n,r,R,f,p.st.values,v),y>0)for(var I=0;I<y;I++){var x=m[I];J(e,n,r,R,v,E[x],p[x])}}}function J(e,t,n,r,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Me(e,t,n,r,s,c,i,!1);break;case 3:Ce(e,t,n,r,s,c,i,!1);break;case 2:Pe(e,t,n,r,s,c,i,!1);break;default:c[i]=s[e]*r.x+s[t]*r.y+s[n]*r.z}}function Q(e,t,n,r,i,a){var o=e.position.values.length/3;if(-1!==i){var u=r[i],s=n[u];return-1===s?(n[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,n=t.attributes,r=n.position.values,a=c(n.normal)?n.normal.values:void 0,o=c(n.bitangent)?n.bitangent.values:void 0,u=c(n.tangent)?n.tangent.values:void 0,s=c(n.st)?n.st.values:void 0,l=c(n.extrudeDirection)?n.extrudeDirection.values:void 0,f=c(n.applyOffset)?n.applyOffset.values:void 0,h=t.indices,d=[];for(var p in n)n.hasOwnProperty(p)&&!Be[p]&&c(n[p])&&d.push(p);var m,y,E,v,_,T=d.length,g=Y(t),R=Y(t),A=[];A.length=r.length/3;var S=[];for(S.length=r.length/3,_=0;_<A.length;++_)A[_]=-1,S[_]=-1;var w=h.length;for(_=0;_<w;_+=3){var O=h[_],I=h[_+1],x=h[_+2],N=i.fromArray(r,3*O),M=i.fromArray(r,3*I),C=i.fromArray(r,3*x),P=k(N,M,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,D=P.indices,U=D.length,L=0;L<U;++L){var F=D[L],B=b[F];B.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),v=Q(m,y,E,h,F<3?_+F:-1,B),K(O,I,x,B,r,a,u,o,s,l,f,m,d,T,n,v)}else c(P)&&(N=P.positions[0],M=P.positions[1],C=P.positions[2]),N.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),v=Q(m,y,E,h,_,N),K(O,I,x,N,r,a,u,o,s,l,f,m,d,T,n,v),v=Q(m,y,E,h,_+1,M),K(O,I,x,M,r,a,u,o,s,l,f,m,d,T,n,v),v=Q(m,y,E,h,_+2,C),K(O,I,x,C,r,a,u,o,s,l,f,m,d,T,n,v)}j(e,R,g)}function ee(e,t,n,r,a,o,u){if(c(u)){var s=i.fromArray(r,3*e,De);i.equalsEpsilon(s,n,_.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,n=e.geometry,r=n.attributes,a=r.position.values,o=c(r.applyOffset)?r.applyOffset.values:void 0,u=n.indices,s=Y(n),l=Y(n),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],y=u[t+1],E=i.fromArray(a,3*m,De),T=i.fromArray(a,3*y,Ue);Math.abs(E.y)<_.EPSILON6&&(E.y<0?E.y=-_.EPSILON6:E.y=_.EPSILON6),Math.abs(T.y)<_.EPSILON6&&(T.y<0?T.y=-_.EPSILON6:T.y=_.EPSILON6);var g=s.attributes,R=s.indices,A=d,S=l.attributes,w=l.indices,O=h,I=v.lineSegmentPlane(E,T,ze,Le);if(c(I)){var x=i.multiplyByScalar(i.UNIT_Y,5*_.EPSILON9,qe);E.y<0&&(i.negate(x,x),g=l.attributes,R=l.indices,A=h,S=s.attributes,w=s.indices,O=d);var N=i.add(I,x,Ge);p=Q(g,R,A,u,t,E),ee(m,y,E,a,p,g,o),p=Q(g,R,A,u,-1,N),ee(m,y,N,a,p,g,o),i.negate(x,x),i.add(I,x,N),p=Q(S,w,O,u,-1,N),ee(m,y,N,a,p,S,o),p=Q(S,w,O,u,t+1,T),ee(m,y,T,a,p,S,o)}else{var M,C,P;E.y<0?(M=l.attributes,C=l.indices,P=h):(M=s.attributes,C=s.indices,P=d),p=Q(M,C,P,u,t,E),ee(m,y,E,a,p,M,o),p=Q(M,C,P,u,t+1,T),ee(m,y,T,a,p,M,o)}}j(e,l,s)}function ne(e){for(var t=e.attributes,n=t.position.values,r=t.prevPosition.values,a=t.nextPosition.values,o=n.length,u=0;u<o;u+=3){var s=i.unpack(n,u,Xe);if(!(s.x>0)){var c=i.unpack(r,u,ke);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(r[u]=n[u-3],r[u+1]=n[u-2],r[u+2]=n[u-1]):i.pack(s,r,u));var l=i.unpack(a,u,He);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=n[u+3],a[u+1]=n[u+4],a[u+2]=n[u+5]):i.pack(s,a,u))}}}function re(e){var t,n,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,y=Y(u),E=Y(u),T=!1,g=l.length/3;for(t=0;t<g;t+=4){var R=t,A=t+2,S=i.fromArray(l,3*R,Xe),w=i.fromArray(l,3*A,ke);if(Math.abs(S.y)<Qe)for(S.y=Qe*(w.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,n=3*R;n<3*R+12;n+=3)f[n]=l[3*t],f[n+1]=l[3*t+1],f[n+2]=l[3*t+2];if(Math.abs(w.y)<Qe)for(w.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=w.y,l[3*(t+3)+1]=w.y,n=3*R;n<3*R+12;n+=3)h[n]=l[3*(t+2)],h[n+1]=l[3*(t+2)+1],h[n+2]=l[3*(t+2)+2];var O=y.attributes,I=y.indices,x=E.attributes,N=E.indices,M=v.lineSegmentPlane(S,w,ze,Ye);if(c(M)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),O=E.attributes,I=E.indices,x=y.attributes,N=y.indices);var P=i.add(M,C,Ze);O.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.position.values.push(P.x,P.y,P.z),O.position.values.push(P.x,P.y,P.z),O.prevPosition.values.push(f[3*R],f[3*R+1],f[3*R+2]),O.prevPosition.values.push(f[3*R+3],f[3*R+4],f[3*R+5]),O.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(M,C,P),x.position.values.push(P.x,P.y,P.z),x.position.values.push(P.x,P.y,P.z),x.position.values.push(w.x,w.y,w.z,w.x,w.y,w.z),x.prevPosition.values.push(P.x,P.y,P.z),x.prevPosition.values.push(P.x,P.y,P.z),x.prevPosition.values.push(P.x,P.y,P.z),x.prevPosition.values.push(P.x,P.y,P.z),x.nextPosition.values.push(w.x,w.y,w.z,w.x,w.y,w.z),x.nextPosition.values.push(h[3*A],h[3*A+1],h[3*A+2]),x.nextPosition.values.push(h[3*A+3],h[3*A+4],h[3*A+5]);var b=r.fromArray(d,2*R,Ve),D=Math.abs(b.y);O.expandAndWidth.values.push(-1,D,1,D),O.expandAndWidth.values.push(-1,-D,1,-D),x.expandAndWidth.values.push(-1,D,1,D),x.expandAndWidth.values.push(-1,-D,1,-D);var U=i.magnitudeSquared(i.subtract(M,S,He));if(U/=i.magnitudeSquared(i.subtract(w,S,He)),c(m)){var L=a.fromArray(m,4*R,Ke),F=a.fromArray(m,4*A,Ke),B=_.lerp(L.x,F.x,U),z=_.lerp(L.y,F.y,U),q=_.lerp(L.z,F.z,U),G=_.lerp(L.w,F.w,U);for(n=4*R;n<4*R+8;++n)O.color.values.push(m[n]);for(O.color.values.push(B,z,q,G),O.color.values.push(B,z,q,G),x.color.values.push(B,z,q,G),x.color.values.push(B,z,q,G),n=4*A;n<4*A+8;++n)x.color.values.push(m[n])}if(c(p)){var V=r.fromArray(p,2*R,Ve),W=r.fromArray(p,2*(t+3),We),X=_.lerp(V.x,W.x,U);for(n=2*R;n<2*R+4;++n)O.st.values.push(p[n]);for(O.st.values.push(X,V.y),O.st.values.push(X,W.y),x.st.values.push(X,V.y),x.st.values.push(X,W.y),n=2*A;n<2*A+4;++n)x.st.values.push(p[n])}o=O.position.values.length/3-4,I.push(o,o+2,o+1),I.push(o+1,o+2,o+3),o=x.position.values.length/3-4,N.push(o,o+2,o+1),N.push(o+1,o+2,o+3)}else{var k,H;for(S.y<0?(k=E.attributes,H=E.indices):(k=y.attributes,H=y.indices),k.position.values.push(S.x,S.y,S.z),k.position.values.push(S.x,S.y,S.z),k.position.values.push(w.x,w.y,w.z),k.position.values.push(w.x,w.y,w.z),n=3*t;n<3*t+12;++n)k.prevPosition.values.push(f[n]),k.nextPosition.values.push(h[n]);for(n=2*t;n<2*t+8;++n)k.expandAndWidth.values.push(d[n]),c(p)&&k.st.values.push(p[n]);if(c(m))for(n=4*t;n<4*t+16;++n)k.color.values.push(m[n]);o=k.position.values.length/3-4,H.push(o,o+2,o+1),H.push(o+1,o+2,o+3)}}T&&(ne(E),ne(y)),j(e,E,y)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case A.TRIANGLES:e.indices=O(t);break;case A.TRIANGLE_STRIP:e.indices=I(t);break;case A.TRIANGLE_FAN:e.indices=x(t)}e.primitiveType=A.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,r){t=s(t,"normal"),r=s(r,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*r,l[f++]=i[h+1]+a[h+1]*r,l[f++]=i[h+2]+a[h+2]*r;var m,y=e.boundingSphere;return c(y)&&(m=new n(y.center,y.radius+r)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:A.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,n=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],r=e.attributes,i={},a=0,o=n.length;for(t=0;t<o;++t){var u=n[t];c(r[u])&&(i[u]=a++)}for(var s in r)r.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),n=e.indices;if(c(n)){for(var r=new Int32Array(t),i=0;i<t;i++)r[i]=-1;for(var a,o=n,s=o.length,l=y.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=r[o[f]],-1!==a?l[h]=a:(a=o[f],r[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var E in m)if(m.hasOwnProperty(E)&&c(m[E])&&c(m[E].values)){for(var v=m[E],_=v.values,T=0,g=v.componentsPerAttribute,R=u.createTypedArray(v.componentDatatype,p*g);T<t;){var A=r[T];if(-1!==A)for(var S=0;S<g;S++)R[g*A+S]=_[g*T+S];++T}v.values=R}}return e},ie.reorderForPostVertexCache=function(e,t){var n=e.indices;if(e.primitiveType===A.TRIANGLES&&c(n)){for(var r=n.length,i=0,a=0;a<r;a++)n[a]>i&&(i=n[a]);e.indices=S.tipsify({indices:n,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],n=d.computeNumberOfVertices(e);if(c(e.indices)&&n>=_.SIXTY_FOUR_KILOBYTES){var r,i=[],a=[],o=0,u=N(e.attributes),s=e.indices,l=s.length;e.primitiveType===A.TRIANGLES?r=3:e.primitiveType===A.LINES?r=2:e.primitiveType===A.POINTS&&(r=1);for(var f=0;f<l;f+=r){for(var h=0;h<r;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,M(u,e.attributes,p)),a.push(m)}o+r>=_.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=N(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,n,r,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var y=i.fromArray(l,m,ae),E=s.cartesianToCartographic(y,oe),v=a.project(E,ae);f[d++]=v.x,f[d++]=v.y,f[d++]=v.z}return e.attributes[n]=o,e.attributes[r]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,n,r){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new g,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(g.equals(t,g.IDENTITY))return e;var r=e.geometry.attributes;C(t,r.position),C(t,r.prevPosition),C(t,r.nextPosition),(c(r.normal)||c(r.tangent)||c(r.bitangent))&&(g.inverse(t,ce),g.transpose(ce,ce),g.getRotation(ce,le),P(le,r.normal),P(le,r.tangent),P(le,r.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=n.transform(i,t,i)),e.modelMatrix=g.clone(g.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],n=[],r=e.length,i=0;i<r;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&n.push(a)}var o=[];return t.length>0&&o.push(D(t,"geometry")),n.length>0&&(o.push(D(n,"westHemisphereGeometry")),o.push(D(n,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,n=e.indices,r=e.attributes,a=r.position.values,o=r.position.values.length/3,s=n.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=n[t],m=n[t+1],y=n[t+2],E=3*d,v=3*m,T=3*y;de.x=a[E],de.y=a[E+1],de.z=a[E+2],pe.x=a[v],pe.y=a[v+1],pe.z=a[v+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[y].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var g=0;for(t=0;t<o;t++)c[t].indexOffset+=g,g+=c[t].count;h=0;var R;for(t=0;t<s;t+=3){R=c[n[t]];var A=R.indexOffset+R.currentCount;f[A]=h,R.currentCount++,R=c[n[t+1]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,R=c[n[t+2]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var w=3*t;if(R=c[t],i.clone(i.ZERO,he),R.count>0){for(h=0;h<R.count;h++)i.add(he,l[f[R.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,_.EPSILON10)&&i.clone(l[f[R.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,_.EPSILON10)&&(he.z=1),i.normalize(he,he),S[w]=he.x,S[w+1]=he.y,S[w+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var ye=new i,Ee=new i,ve=new i;ie.computeTangentAndBitangent=function(e){var t,n=(e.attributes,e.indices),r=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=n.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=n[t],y=n[t+1],E=n[t+2];f=3*m,h=3*y,d=3*E;var v=2*m,_=2*y,T=2*E,g=r[f],R=r[f+1],A=r[f+2],S=o[v],w=o[v+1],O=o[_+1]-w,I=o[T+1]-w,x=1/((o[_]-S)*I-(o[T]-S)*O),N=(I*(r[h]-g)-O*(r[d]-g))*x,M=(I*(r[h+1]-R)-O*(r[d+1]-R))*x,C=(I*(r[h+2]-A)-O*(r[d+2]-A))*x;l[f]+=N,l[f+1]+=M,l[f+2]+=C,l[h]+=N,l[h+1]+=M,l[h+2]+=C,l[d]+=N,l[d+1]+=M,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var D=i.fromArray(a,f,ye),U=i.fromArray(l,f,ve),L=i.dot(D,U);i.multiplyByScalar(D,L,Ee),i.normalize(i.subtract(U,Ee,U),U),P[f]=U.x,P[h]=U.y,P[d]=U.z,i.normalize(i.cross(D,U,U),U),b[f]=U.x,b[h]=U.y,b[d]=U.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var _e=new r,Te=new i,ge=new i,Re=new i,Ae=new r;ie.compressVertices=function(t){var n,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(n=0;n<a;++n)i.fromArray(s,3*n,Te),i.equals(Te,i.ZERO)?f+=2:(Ae=e.octEncodeInRange(Te,65535,Ae),l[f++]=Ae.x,l[f++]=Ae.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),y=c(d);if(!m&&!y)return t;var E,v,_,T,g=t.attributes.tangent,R=t.attributes.bitangent,A=c(g),S=c(R);m&&(E=h.values),y&&(v=d.values),A&&(_=g.values),S&&(T=R.values),a=(m?E.length:v.length)/(m?3:2);var w=a,O=y&&m?2:1;O+=A||S?1:0,w*=O;var I=new Float32Array(w),x=0;for(n=0;n<a;++n){y&&(r.fromArray(v,2*n,_e),I[x++]=e.compressTextureCoordinates(_e));var N=3*n;m&&c(_)&&c(T)?(i.fromArray(E,N,Te),i.fromArray(_,N,ge),i.fromArray(T,N,Re),e.octPack(Te,ge,Re,_e),I[x++]=_e.x,I[x++]=_e.y):(m&&(i.fromArray(E,N,Te),I[x++]=e.octEncodeFloat(Te)),A&&(i.fromArray(_,N,Te),I[x++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,N,Te),I[x++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:O,values:I}),m&&delete t.attributes.normal,y&&delete t.attributes.st,S&&delete t.attributes.bitangent,A&&delete t.attributes.tangent,t};var Se=new i,we=new i,Oe=new i,Ie=new i,xe=new i,Ne={positions:new Array(7),indices:new Array(9)},Me=Z(a,4),Ce=Z(i,3),Pe=Z(r,2),be=function(e,t,n,r,i,a,o){var u=i[e]*r.x,s=i[t]*r.y,c=i[n]*r.z;a[o]=u+s+c>_.EPSILON6?1:0},De=new i,Ue=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=R.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new r,We=new r,Xe=new i,ke=new i,He=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*_.EPSILON9,Qe=_.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,r=t.boundingSphere;if(c(r)){if(r.center.x-r.radius>0||n.intersectPlane(r,R.ORIGIN_ZX_PLANE)!==E.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:re(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===A.TRIANGLES?$(e):t.primitiveType===A.LINES&&te(e);return e},ie}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),m=Math.cos(2*r),y=Math.sin(4*r),E=Math.cos(4*r),v=Math.sin(6*r),_=Math.cos(6*r),T=Math.sin(8*r),g=Math.cos(8*r),R=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*m+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*E+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*_+(1097*r*h/65536+42783*r*d/1048576)*g+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*y+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*v+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*R+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,v),E),e.normalize(a.cartographicToCartesian(i,v),v),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function m(e,n,r,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var y=f(o,e.latitude),E=f(o,d);p=Math.tan(n)*(E-y),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var v;if(0===o)v=a*Math.cos(e.latitude);else{var _=Math.sin(e.latitude);v=a*Math.cos(e.latitude)/Math.sqrt(1-m*_*_)}p=r/v,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function y(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var E=new e,v=new e;return a(y.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),y.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var E=m(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new y(e,E,c):(o.setEndPoints(e,E),o)},y.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},y.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},y.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},y.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=r*Math.sin(c),y=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(y/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},y.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},y}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,y;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var E=i;E<o;E+=i)p=e[E],m=e[E+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);y=Math.max(h-l,d-f)}return r(u,c,i,l,f,y),c}function t(e,t,n,r,i){var a,o;if(i===x(e,t,n,r)>0)for(a=t;a<n;a+=r)o=w(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=w(a,e[a],e[a+1],o);return o&&_(o,o.next)&&(O(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!_(r,r.next)&&0!==v(r.prev,r,r.next))r=r.next;else{if(O(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,y=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),O(e),e=m.next, -y=m.next;else if((e=m)===y){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(v(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&v(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(v(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!_(i,a)&&T(i,r,r.next,a)&&R(i,a)&&R(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),O(r),O(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&E(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&y(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&R(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function y(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!g(e,t)&&R(e,t)&&R(t,e)&&A(e,t)}function v(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function _(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,n,r){return!!(_(e,t)&&_(n,r)||_(e,r)&&_(n,t))||v(e,t,n)>0!=v(e,t,r)>0&&v(n,r,e)>0!=v(n,r,t)>0}function g(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&T(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function R(e,t){return v(e.prev,e,e.next)<0?v(e,t,e.next)>=0&&v(e,e.prev,t)>=0:v(e,t,e.prev)<0||v(e,e.next,t)<0}function A(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new I(e.i,e.x,e.y),r=new I(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function w(e,t,n,r){var i=new I(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function O(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function I(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function x(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(x(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(x(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new n,y=new n,E={};E.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},E.computeWindingOrder2D=function(e){return E.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},E.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var v=new n,_=new n,T=new n,g=new n,R=new n,A=new n,S=new n;E.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,m=new Array(3*p),y=0;for(s=0;s<p;s++){var E=t[s];m[y++]=E.x,m[y++]=E.y,m[y++]=E.z}for(var w=[],O={},I=e.maximumRadius,x=h.chordLength(i,I),N=x*x;c.length>0;){var M,C,P=c.pop(),b=c.pop(),D=c.pop(),U=n.fromArray(m,3*D,v),L=n.fromArray(m,3*b,_),F=n.fromArray(m,3*P,T),B=n.multiplyByScalar(n.normalize(U,g),I,g),z=n.multiplyByScalar(n.normalize(L,R),I,R),q=n.multiplyByScalar(n.normalize(F,A),I,A),G=n.magnitudeSquared(n.subtract(B,z,S)),V=n.magnitudeSquared(n.subtract(z,q,S)),W=n.magnitudeSquared(n.subtract(q,B,S)),X=Math.max(G,V,W);X>N?G===X?(M=Math.min(D,b)+" "+Math.max(D,b),s=O[M],u(s)||(C=n.add(U,L,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(D,s,P),c.push(s,b,P)):V===X?(M=Math.min(b,P)+" "+Math.max(b,P),s=O[M],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(b,s,D),c.push(s,P,D)):W===X&&(M=Math.min(P,D)+" "+Math.max(P,D),s=O[M],u(s)||(C=n.add(F,U,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(P,s,b),c.push(s,D,b)):(w.push(D),w.push(b),w.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:w,primitiveType:d.TRIANGLES})};var w=new r,O=new r,I=new r,x=new r;return E.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),m=t.length,y=new Array(3*m),E=0;for(s=0;s<m;s++){var g=t[s];y[E++]=g.x,y[E++]=g.y,y[E++]=g.z}for(var R=[],A={},N=e.maximumRadius,M=h.chordLength(i,N),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),U=p.pop(),L=p.pop(),F=n.fromArray(y,3*L,v),B=n.fromArray(y,3*U,_),z=n.fromArray(y,3*D,T),q=e.cartesianToCartographic(F,w),G=e.cartesianToCartographic(B,O),V=e.cartesianToCartographic(z,I);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;b.setEndPoints(V,q);var k,H,Y,j,Z=b.surfaceDistance,K=Math.max(W,X,Z);K>M?W===K?(k=Math.min(L,U)+" "+Math.max(L,U),s=A[k],u(s)||(H=C.interpolateUsingFraction(.5,x),Y=.5*(q.height+G.height),j=n.fromRadians(H.longitude,H.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[k]=s),p.push(L,s,D),p.push(s,U,D)):X===K?(k=Math.min(U,D)+" "+Math.max(U,D),s=A[k],u(s)||(H=P.interpolateUsingFraction(.5,x),Y=.5*(G.height+V.height),j=n.fromRadians(H.longitude,H.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[k]=s),p.push(U,s,L),p.push(s,D,L)):Z===K&&(k=Math.min(D,L)+" "+Math.max(D,L),s=A[k],u(s)||(H=b.interpolateUsingFraction(.5,x),Y=.5*(V.height+q.height),j=n.fromRadians(H.longitude,H.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[k]=s),p.push(D,s,U),p.push(s,L,U)):(R.push(L),R.push(U),R.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:y})},indices:R,primitiveType:d.TRIANGLES})},E.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=m,c=y;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},E}),define("Core/Queue",["./defineProperties"],function(e){"use strict";function t(){this._array=[],this._offset=0,this._length=0}return e(t.prototype,{length:{get:function(){return this._length}}}),t.prototype.enqueue=function(e){this._array.push(e),this._length++},t.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n}},t.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},t.prototype.contains=function(e){return-1!==this._array.indexOf(e)},t.prototype.clear=function(){this._array.length=this._offset=this._length=0},t.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)},t}),define("Core/PolygonGeometryLibrary",["./ArcType","./arrayRemoveDuplicates","./Cartesian2","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Queue","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,g,R){"use strict";function A(e,t,n,i){return r.subtract(t,e,w),r.multiplyByScalar(w,n/i,w),r.add(e,w,w),[w.x,w.y,w.z]}var S={};S.computeHierarchyPackedLength=function(e){for(var t=0,n=[e];n.length>0;){var i=n.pop();if(u(i)){t+=2;var a=i.positions,o=i.holes;if(u(a)&&(t+=a.length*r.packedLength),u(o))for(var s=o.length,c=0;c<s;++c)n.push(o[c])}}return t},S.packPolygonHierarchy=function(e,t,n){for(var i=[e];i.length>0;){var a=i.pop();if(u(a)){var o=a.positions,s=a.holes;if(t[n++]=u(o)?o.length:0,t[n++]=u(s)?s.length:0,u(o))for(var c=o.length,l=0;l<c;++l,n+=3)r.pack(o[l],t,n);if(u(s))for(var f=s.length,h=0;h<f;++h)i.push(s[h])}}return n},S.unpackPolygonHierarchy=function(e,t){for(var n=e[t++],i=e[t++],a=new Array(n),o=i>0?new Array(i):void 0,u=0;u<n;++u,t+=r.packedLength)a[u]=r.unpack(e,t);for(var s=0;s<i;++s)o[s]=S.unpackPolygonHierarchy(e,t),t=o[s].startingIndex,delete o[s].startingIndex;return{positions:a,holes:o,startingIndex:t}};var w=new r;S.subdivideLineCount=function(e,t,n){var i=r.distance(e,t),a=i/n,o=Math.max(0,Math.ceil(y.log2(a)));return Math.pow(2,o)};var O=new i,I=new i,x=new i,N=new r;S.subdivideRhumbLineCount=function(e,t,n,r){var i=e.cartesianToCartographic(t,O),a=e.cartesianToCartographic(n,I),o=new l(i,a,e),u=o.surfaceDistance/r,s=Math.max(0,Math.ceil(y.log2(u)));return Math.pow(2,s)},S.subdivideLine=function(e,t,n,i){var a=S.subdivideLineCount(e,t,n),o=r.distance(e,t),s=o/a;u(i)||(i=[]);var c=i;c.length=3*a;for(var l=0,f=0;f<a;f++){var h=A(e,t,f*s,o);c[l++]=h[0],c[l++]=h[1],c[l++]=h[2]}return c},S.subdivideRhumbLine=function(e,t,n,r,i){var a=e.cartesianToCartographic(t,O),o=e.cartesianToCartographic(n,I),s=new l(a,o,e),c=s.surfaceDistance/r,f=Math.max(0,Math.ceil(y.log2(c))),h=Math.pow(2,f),d=s.surfaceDistance/h;u(i)||(i=[]);var p=i;p.length=3*h;for(var m=0,E=0;E<h;E++){var v=s.interpolateUsingSurfaceDistance(E*d,x),_=e.cartographicToCartesian(v,N);p[m++]=_.x,p[m++]=_.y,p[m++]=_.z}return p};var M=new r,C=new r,P=new r,b=new r;S.scaleToGeodeticHeightExtruded=function(e,t,n,i,a){i=o(i,c.WGS84);var s=M,l=C,f=P,h=b;if(u(e)&&u(e.attributes)&&u(e.attributes.position))for(var d=e.attributes.position.values,p=d.length/2,m=0;m<p;m+=3)r.fromArray(d,m,f),i.geodeticSurfaceNormal(f,s),h=i.scaleToGeodeticSurface(f,h),l=r.multiplyByScalar(s,n,l),l=r.add(h,l,l),d[m+p]=l.x,d[m+1+p]=l.y,d[m+2+p]=l.z,a&&(h=r.clone(f,h)),l=r.multiplyByScalar(s,t,l),l=r.add(h,l,l),d[m]=l.x,d[m+1]=l.y,d[m+2]=l.z;return e},S.polygonOutlinesFromHierarchy=function(e,n,i){var a=[],o=new g;o.enqueue(e);for(var s,c,l;0!==o.length;){var f=o.dequeue(),h=f.positions;if(n)for(l=h.length,s=0;s<l;s++)i.scaleToGeodeticSurface(h[s],h[s]);if(h=t(h,r.equalsEpsilon,!0),!(h.length<3)){var d=f.holes?f.holes.length:0;for(s=0;s<d;s++){var p=f.holes[s],m=p.positions;if(n)for(l=m.length,c=0;c<l;++c)i.scaleToGeodeticSurface(m[c],m[c]);if(m=t(m,r.equalsEpsilon,!0),!(m.length<3)){a.push(m);var y=0;for(u(p.holes)&&(y=p.holes.length),c=0;c<y;c++)o.enqueue(p.holes[c])}}a.push(h)}}return a},S.polygonsFromHierarchy=function(e,n,i,a){var o=[],s=[],c=new g;for(c.enqueue(e);0!==c.length;){var l,f,h=c.dequeue(),d=h.positions,p=h.holes;if(i)for(f=d.length,l=0;l<f;l++)a.scaleToGeodeticSurface(d[l],d[l]);if(d=t(d,r.equalsEpsilon,!0),!(d.length<3)){var m=n(d);if(u(m)){var y=[],E=v.computeWindingOrder2D(m);E===R.CLOCKWISE&&(m.reverse(),d=d.slice().reverse());var _,T=d.slice(),A=u(p)?p.length:0,S=[];for(l=0;l<A;l++){var w=p[l],O=w.positions;if(i)for(f=O.length,_=0;_<f;++_)a.scaleToGeodeticSurface(O[_],O[_]);if(O=t(O,r.equalsEpsilon,!0),!(O.length<3)){var I=n(O);if(u(I)){E=v.computeWindingOrder2D(I),E===R.CLOCKWISE&&(I.reverse(),O=O.slice().reverse()),S.push(O),y.push(T.length),T=T.concat(O),m=m.concat(I);var x=0;for(u(w.holes)&&(x=w.holes.length),_=0;_<x;_++)c.enqueue(w.holes[_])}}}o.push({outerRing:d,holes:S}),s.push({positions:T,positions2D:m,holes:y})}}}return{hierarchy:o,polygons:s}};var D=new n,U=new r,L=new T,F=new E;S.computeBoundingRectangle=function(e,t,n,i,a){for(var o=T.fromAxisAngle(e,i,L),s=E.fromQuaternion(o,F),c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,f=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,d=n.length,p=0;p<d;++p){var m=r.clone(n[p],U);E.multiplyByVector(s,m,m);var y=t(m,D);u(y)&&(c=Math.min(c,y.x),l=Math.max(l,y.x),f=Math.min(f,y.y),h=Math.max(h,y.y))}return a.x=c,a.y=f,a.width=l-c,a.height=h-f,a},S.createGeometryFromPositions=function(t,n,r,i,o,u){var s=v.triangulate(n.positions2D,n.holes);s.length<3&&(s=[0,1,2]);var c=n.positions;if(i){for(var l=c.length,d=new Array(3*l),m=0,y=0;y<l;y++){var E=c[y];d[m++]=E.x,d[m++]=E.y,d[m++]=E.z}var T=new f({attributes:{position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:d})},indices:s,primitiveType:_.TRIANGLES});return o.normal?p.computeNormal(T):T}return u===e.GEODESIC?v.computeSubdivision(t,c,s,r):u===e.RHUMB?v.computeRhumbLineSubdivision(t,c,s,r):void 0};var B=[],z=new r,q=new r;return S.computeWallGeometry=function(t,n,i,o,u){var s,c,l,p,E,v=t.length,T=0;if(o)for(c=3*v*2,s=new Array(2*c),l=0;l<v;l++)p=t[l],E=t[(l+1)%v],s[T]=s[T+c]=p.x,++T,s[T]=s[T+c]=p.y,++T,s[T]=s[T+c]=p.z,++T,s[T]=s[T+c]=E.x,++T,s[T]=s[T+c]=E.y,++T,s[T]=s[T+c]=E.z,++T;else{var g=y.chordLength(i,n.maximumRadius),R=0;if(u===e.GEODESIC)for(l=0;l<v;l++)R+=S.subdivideLineCount(t[l],t[(l+1)%v],g);else if(u===e.RHUMB)for(l=0;l<v;l++)R+=S.subdivideRhumbLineCount(n,t[l],t[(l+1)%v],g);for(c=3*(R+v),s=new Array(2*c),l=0;l<v;l++){p=t[l],E=t[(l+1)%v];var A;u===e.GEODESIC?A=S.subdivideLine(p,E,g,B):u===e.RHUMB&&(A=S.subdivideRhumbLine(n,p,E,g,B));for(var w=A.length,O=0;O<w;++O,++T)s[T]=A[O],s[T+c]=A[O];s[T]=E.x,s[T+c]=E.x,++T,s[T]=E.y,s[T+c]=E.y,++T,s[T]=E.z,s[T+c]=E.z,++T}}v=s.length;var I=m.createTypedArray(v/3,v-6*t.length),x=0;for(v/=6,l=0;l<v;l++){var N=l,M=N+1,C=N+v,P=C+1;p=r.fromArray(s,3*N,z),E=r.fromArray(s,3*M,q),r.equalsEpsilon(p,E,y.EPSILON14,y.EPSILON6)||(I[x++]=N,I[x++]=C,I[x++]=M,I[x++]=M,I[x++]=C,I[x++]=P)}return new f({attributes:new d({position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:s})}),indices:I,primitiveType:_.TRIANGLES})},S}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/CoplanarPolygonGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./Check","./ComponentDatatype","./CoplanarPolygonGeometryLibrary","./defaultValue","./defined","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType","./Quaternion","./VertexFormat"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,g,R,A){"use strict";function S(e,t,n,a,u,s,c,l){var p=e.positions,m=T.triangulate(e.positions2D,e.holes);m.length<3&&(m=[0,1,2]);var _=y.createTypedArray(p.length,m.length);_.set(m);var A=F;if(0!==a){var S=R.fromAxisAngle(s,a,L);if(A=v.fromQuaternion(S,A),t.tangent||t.bitangent){S=R.fromAxisAngle(s,-a,L);var w=v.fromQuaternion(S,B);c=i.normalize(v.multiplyByVector(w,c,c),c),t.bitangent&&(l=i.normalize(i.cross(s,c,l),l))}}else A=v.clone(v.IDENTITY,A);var I=N;t.st&&(I.x=n.x,I.y=n.y);for(var M=p.length,C=3*M,P=new Float64Array(C),b=t.normal?new Float32Array(C):void 0,D=t.tangent?new Float32Array(C):void 0,U=t.bitangent?new Float32Array(C):void 0,z=t.st?new Float32Array(2*M):void 0,q=0,G=0,V=0,W=0,X=0,k=0;k<M;k++){var H=p[k];if(P[q++]=H.x,P[q++]=H.y,P[q++]=H.z,t.st){var Y=v.multiplyByVector(A,H,O),j=u(Y,x);r.subtract(j,I,j);var Z=E.clamp(j.x/n.width,0,1),K=E.clamp(j.y/n.height,0,1);z[X++]=Z,z[X++]=K}t.normal&&(b[G++]=s.x,b[G++]=s.y,b[G++]=s.z),t.tangent&&(D[W++]=c.x,D[W++]=c.y,D[W++]=c.z),t.bitangent&&(U[V++]=l.x,U[V++]=l.y,U[V++]=l.z)}var J=new d;return t.position&&(J.position=new h({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:P})),t.normal&&(J.normal=new h({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:b})),t.tangent&&(J.tangent=new h({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:D})),t.bitangent&&(J.bitangent=new h({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:U})),t.st&&(J.st=new h({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:z})),new f({attributes:J,indices:_,primitiveType:g.TRIANGLES})}function w(e){e=s(e,s.EMPTY_OBJECT);var t=e.polygonHierarchy,n=s(e.vertexFormat,A.DEFAULT);this._vertexFormat=A.clone(n),this._polygonHierarchy=t,this._stRotation=s(e.stRotation,0),this._ellipsoid=l.clone(s(e.ellipsoid,l.WGS84)),this._workerName="createCoplanarPolygonGeometry",this.packedLength=_.computeHierarchyPackedLength(t)+A.packedLength+l.packedLength+2}var O=new i,I=new t,x=new r,N=new r,M=new i,C=new i,P=new i,b=new i,D=new i,U=new i,L=new R,F=new v,B=new v,z=new i;w.fromPositions=function(e){return e=s(e,s.EMPTY_OBJECT),new w({polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid})},w.pack=function(e,t,n){return n=s(n,0),n=_.packPolygonHierarchy(e._polygonHierarchy,t,n),l.pack(e._ellipsoid,t,n),n+=l.packedLength,A.pack(e._vertexFormat,t,n),n+=A.packedLength,t[n++]=e._stRotation,t[n]=e.packedLength,t};var q=l.clone(l.UNIT_SPHERE),G=new A,V={polygonHierarchy:{}};return w.unpack=function(e,t,n){t=s(t,0);var r=_.unpackPolygonHierarchy(e,t);t=r.startingIndex,delete r.startingIndex;var i=l.unpack(e,t,q);t+=l.packedLength;var a=A.unpack(e,t,G);t+=A.packedLength;var o=e[t++],u=e[t];return c(n)||(n=new w(V)),n._polygonHierarchy=r,n._ellipsoid=l.clone(i,n._ellipsoid),n._vertexFormat=A.clone(a,n._vertexFormat),n._stRotation=o,n.packedLength=u,n},w.createGeometry=function(t){var r=t._vertexFormat,a=t._polygonHierarchy,o=t._stRotation,s=a.positions;if(s=e(s,i.equalsEpsilon,!0),!(s.length<3)){var c=M,l=C,h=P,d=D,v=U;if(u.computeProjectTo2DArguments(s,b,d,v)){if(c=i.cross(d,v,c),c=i.normalize(c,c),!i.equalsEpsilon(b,i.ZERO,E.EPSILON6)){var T=t._ellipsoid.geodeticSurfaceNormal(b,z);i.dot(c,T)<0&&(c=i.negate(c,c),d=i.negate(d,d))}var g=u.createProjectPointsTo2DFunction(b,d,v),R=u.createProjectPointTo2DFunction(b,d,v);r.tangent&&(l=i.clone(d,l)),r.bitangent&&(h=i.clone(v,h));var A=_.polygonsFromHierarchy(a,g,!1),w=A.hierarchy,O=A.polygons;if(0!==w.length){s=w[0].outerRing;for(var x=n.fromPoints(s),N=_.computeBoundingRectangle(c,R,s,o,I),L=[],F=0;F<O.length;F++){var B=new p({geometry:S(O[F],r,N,o,R,c,l,h)});L.push(B)}var q=m.combineInstances(L)[0];q.attributes.position.values=new Float64Array(q.attributes.position.values),q.indices=y.createTypedArray(q.attributes.position.values.length/3,q.indices);var G=q.attributes;return r.position||delete G.position,new f({attributes:G,indices:q.indices,primitiveType:q.primitiveType,boundingSphere:x})}}}},w}),define("Workers/createCoplanarPolygonGeometry",["../Core/defined","../Core/CoplanarPolygonGeometry"],function(e,t){"use strict";function n(n,r){return e(r)&&(n=t.unpack(n,r)),t.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as et}from"./chunk-2QX3ZRAN.js";import{a as U}from"./chunk-ONYACCBZ.js";import"./chunk-7MCGOXW3.js";import{a as y}from"./chunk-IY45XUGY.js";import"./chunk-E3BAMNKM.js";import{a as I}from"./chunk-7GU2ORNB.js";import{a as $}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import{a as u}from"./chunk-QNEABTP2.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{b as ot}from"./chunk-M243PNMW.js";import{a as tt}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as J}from"./chunk-T53UE6JF.js";import{a as X}from"./chunk-RYO6NY7F.js";import{b as W,c as Y,d as z}from"./chunk-2HSPJH3C.js";import{d as K}from"./chunk-T5AUOWE7.js";import{f as Q}from"./chunk-Y5B6Y3WD.js";import{a as N}from"./chunk-6QVIJ7JA.js";import{a as i,c as x,d as m,e as P}from"./chunk-AODSXSC5.js";import{a as q}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as f}from"./chunk-WHQYJFDH.js";import{b as B}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";var st=new i,at=new et,pt=new x,lt=new x,mt=new i,ft=new i,ut=new i,V=new i,yt=new i,ht=new i,nt=new Q,dt=new P,gt=new P,Pt=new i;function wt(e,t,o,a,h,A,r,n,p){let b=e.positions,c=ot.triangulate(e.positions2D,e.holes);c.length<3&&(c=[0,1,2]);let w=J.createTypedArray(b.length,c.length);w.set(c);let D=dt;if(a!==0){let d=Q.fromAxisAngle(r,a,nt);if(D=P.fromQuaternion(d,D),t.tangent||t.bitangent){d=Q.fromAxisAngle(r,-a,nt);let G=P.fromQuaternion(d,gt);n=i.normalize(P.multiplyByVector(G,n,n),n),t.bitangent&&(p=i.normalize(i.cross(r,n,p),p))}}else D=P.clone(P.IDENTITY,D);let j=lt;t.st&&(j.x=o.x,j.y=o.y);let k=b.length,C=k*3,L=new Float64Array(C),T=t.normal?new Float32Array(C):void 0,R=t.tangent?new Float32Array(C):void 0,S=t.bitangent?new Float32Array(C):void 0,H=t.st?new Float32Array(k*2):void 0,M=0,F=0,l=0,O=0,s=0;for(let d=0;d<k;d++){let G=b[d];if(L[M++]=G.x,L[M++]=G.y,L[M++]=G.z,t.st)if(g(h)&&h.positions.length===k)H[s++]=h.positions[d].x,H[s++]=h.positions[d].y;else{let it=P.multiplyByVector(D,G,st),v=A(it,pt);x.subtract(v,j,v);let rt=q.clamp(v.x/o.width,0,1),ct=q.clamp(v.y/o.height,0,1);H[s++]=rt,H[s++]=ct}t.normal&&(T[F++]=r.x,T[F++]=r.y,T[F++]=r.z),t.tangent&&(R[O++]=n.x,R[O++]=n.y,R[O++]=n.z),t.bitangent&&(S[l++]=p.x,S[l++]=p.y,S[l++]=p.z)}let _=new X;return t.position&&(_.position=new z({componentDatatype:N.DOUBLE,componentsPerAttribute:3,values:L})),t.normal&&(_.normal=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(_.tangent=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:R})),t.bitangent&&(_.bitangent=new z({componentDatatype:N.FLOAT,componentsPerAttribute:3,values:S})),t.st&&(_.st=new z({componentDatatype:N.FLOAT,componentsPerAttribute:2,values:H})),new Y({attributes:_,indices:w,primitiveType:W.TRIANGLES})}function E(e){e=f(e,f.EMPTY_OBJECT);let t=e.polygonHierarchy,o=e.textureCoordinates;B.defined("options.polygonHierarchy",t);let a=f(e.vertexFormat,u.DEFAULT);this._vertexFormat=u.clone(a),this._polygonHierarchy=t,this._stRotation=f(e.stRotation,0),this._ellipsoid=m.clone(f(e.ellipsoid,m.default)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=o,this.packedLength=y.computeHierarchyPackedLength(t,i)+u.packedLength+m.packedLength+(g(o)?y.computeHierarchyPackedLength(o,x):1)+2}E.fromPositions=function(e){e=f(e,f.EMPTY_OBJECT),B.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new E(t)};E.pack=function(e,t,o){return B.typeOf.object("value",e),B.defined("array",t),o=f(o,0),o=y.packPolygonHierarchy(e._polygonHierarchy,t,o,i),m.pack(e._ellipsoid,t,o),o+=m.packedLength,u.pack(e._vertexFormat,t,o),o+=u.packedLength,t[o++]=e._stRotation,g(e._textureCoordinates)?o=y.packPolygonHierarchy(e._textureCoordinates,t,o,x):t[o++]=-1,t[o++]=e.packedLength,t};var _t=m.clone(m.UNIT_SPHERE),At=new u,bt={polygonHierarchy:{}};E.unpack=function(e,t,o){B.defined("array",e),t=f(t,0);let a=y.unpackPolygonHierarchy(e,t,i);t=a.startingIndex,delete a.startingIndex;let h=m.unpack(e,t,_t);t+=m.packedLength;let A=u.unpack(e,t,At);t+=u.packedLength;let r=e[t++],n=e[t]===-1?void 0:y.unpackPolygonHierarchy(e,t,x);g(n)?(t=n.startingIndex,delete n.startingIndex):t++;let p=e[t++];return g(o)||(o=new E(bt)),o._polygonHierarchy=a,o._ellipsoid=m.clone(h,o._ellipsoid),o._vertexFormat=u.clone(A,o._vertexFormat),o._stRotation=r,o._textureCoordinates=n,o.packedLength=p,o};E.createGeometry=function(e){let t=e._vertexFormat,o=e._polygonHierarchy,a=e._stRotation,h=e._textureCoordinates,A=g(h),r=o.positions;if(r=tt(r,i.equalsEpsilon,!0),r.length<3)return;let n=mt,p=ft,b=ut,c=yt,w=ht;if(!U.computeProjectTo2DArguments(r,V,c,w))return;if(n=i.cross(c,w,n),n=i.normalize(n,n),!i.equalsEpsilon(V,i.ZERO,q.EPSILON6)){let s=e._ellipsoid.geodeticSurfaceNormal(V,Pt);i.dot(n,s)<0&&(n=i.negate(n,n),c=i.negate(c,c))}let j=U.createProjectPointsTo2DFunction(V,c,w),k=U.createProjectPointTo2DFunction(V,c,w);t.tangent&&(p=i.clone(c,p)),t.bitangent&&(b=i.clone(w,b));let C=y.polygonsFromHierarchy(o,A,j,!1),L=C.hierarchy,T=C.polygons,R=function(s){return s},S=A?y.polygonsFromHierarchy(h,!0,R,!1).polygons:void 0;if(L.length===0)return;r=L[0].outerRing;let H=K.fromPoints(r),M=y.computeBoundingRectangle(n,k,r,a,at),F=[];for(let s=0;s<T.length;s++){let _=new I({geometry:wt(T[s],t,M,a,A?S[s]:void 0,k,n,p,b)});F.push(_)}let l=$.combineInstances(F)[0];l.attributes.position.values=new Float64Array(l.attributes.position.values),l.indices=J.createTypedArray(l.attributes.position.values.length/3,l.indices);let O=l.attributes;return t.position||delete O.position,new Y({attributes:O,indices:l.indices,primitiveType:l.primitiveType,boundingSphere:H})};var Z=E;function kt(e,t){return g(t)&&(e=Z.unpack(e,t)),Z.createGeometry(e)}var Xt=kt;export{Xt as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js index 25fccdb8c..4b46a0e4b 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCoplanarPolygonOutlineGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,r,n){"use strict";function i(e,n,i){if(r(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!n(s,c,a));++u);if(u===o)return i&&n(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],n(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&n(l[0],l[l.length-1],a)&&l.shift(),l}}var a=n.EPSILON10;return i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,y=l*l*d*d,E=f*f*p*p,v=h*h*m*m,_=y+E+v,T=Math.sqrt(1/_),R=e.multiplyByScalar(r,T,a);if(_<s)return isFinite(T)?e.clone(R,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=R.x*A*2,O.y=R.y*g*2,O.z=R.z*S*2;var I,w,N,x,M,C,P,b,U,D,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{F-=B,N=1/(1+F*A),x=1/(1+F*g),M=1/(1+F*S),C=N*N,P=x*x,b=M*M,U=C*N,D=P*x,L=b*M,I=y*C+E*P+v*b-1,w=y*U*A+E*D*g+v*L*S;B=I/(-2*w)}while(Math.abs(I)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*x,c.z=h*M,c):new e(l*N,f*x,h*M)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,y=n(r)?r._centerToleranceSquared:d,E=o(t,p,m,y,c);if(n(E)){var v=e.multiplyComponents(E,m,s);v=e.normalize(v,v);var _=e.subtract(t,E,l),T=Math.atan2(v.y,v.x),R=Math.asin(v.z),A=a.sign(e.dot(_,t))*e.magnitude(_);return n(i)?(i.longitude=T,i.latitude=R,i.height=A,i):new u(T,R,A)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,y=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,y),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,y=e[s.getElementIndex(h,h)],E=e[s.getElementIndex(f,f)],v=e[s.getElementIndex(h,f)],_=(y-E)/2/v;d=_<0?-1/(-_+Math.sqrt(1+_*_)):1/(_+Math.sqrt(1+_*_)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),y=2*(a+l),E=2*(i+h),v=-r+u-f+d,_=2*(c-o),T=2*(a-l),R=2*(c+o),A=-r-u+f+d;return n(t)?(t[0]=p,t[1]=E,t[2]=T,t[3]=m,t[4]=v,t[5]=R,t[6]=y,t[7]=_,t[8]=A,t):new s(p,m,y,E,v,_,T,R,A)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,y=-o,E=c*r,v=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=y,t[3]=f,t[4]=p,t[5]=E,t[6]=h,t[7]=m,t[8]=v,t):new s(l,f,h,d,p,m,y,E,v)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],y=new s,E=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,y),s.transpose(y,E),s.multiply(h,y,h),s.multiply(E,h,h),s.multiply(o,y,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){ -return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,y){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(y,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,y=t.z*t.z,E=t.z*t.w,v=t.w*t.w,_=s-d-y+v,T=2*(c-E),R=2*(f+m),A=2*(c+E),g=-s+d-y+v,S=2*(p-h),O=2*(f-m),I=2*(p+h),w=-s-d+y+v;return n[0]=_*a,n[1]=A*a,n[2]=O*a,n[3]=0,n[4]=T*o,n[5]=g*o,n[6]=I*o,n[7]=0,n[8]=R*u,n[9]=S*u,n[10]=w*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,y=f.z,E=d.x,v=d.y,_=d.z,T=n.x,R=n.y,A=n.z,g=u*-T+s*-R+c*-A,S=E*-T+v*-R+_*-A,O=p*T+m*R+y*A;return i(r)?(r[0]=u,r[1]=E,r[2]=-p,r[3]=0,r[4]=s,r[5]=v,r[6]=-m,r[7]=0,r[8]=c,r[9]=_,r[10]=-y,r[11]=0,r[12]=g,r[13]=S,r[14]=O,r[15]=1,r):new l(u,s,c,g,E,v,_,S,-p,-m,-y,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,y=o+l,E=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=y,i[14]=E,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var y=new e;l.getMaximumScale=function(t){return l.getScale(t,y),e.maximumComponent(y)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],y=e[13],E=e[14],v=e[15],_=t[0],T=t[1],R=t[2],A=t[3],g=t[4],S=t[5],O=t[6],I=t[7],w=t[8],N=t[9],x=t[10],M=t[11],C=t[12],P=t[13],b=t[14],U=t[15],D=n*_+u*T+f*R+m*A,L=i*_+s*T+h*R+y*A,F=a*_+c*T+d*R+E*A,B=o*_+l*T+p*R+v*A,z=n*g+u*S+f*O+m*I,q=i*g+s*S+h*O+y*I,G=a*g+c*S+d*O+E*I,V=o*g+l*S+p*O+v*I,W=n*w+u*N+f*x+m*M,X=i*w+s*N+h*x+y*M,H=a*w+c*N+d*x+E*M,k=o*w+l*N+p*x+v*M,Y=n*C+u*P+f*b+m*U,j=i*C+s*P+h*b+y*U,Z=a*C+c*P+d*b+E*U,K=o*C+l*P+p*b+v*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=H,r[11]=k,r[12]=Y,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],y=t[1],E=t[2],v=t[4],_=t[5],T=t[6],R=t[8],A=t[9],g=t[10],S=t[12],O=t[13],I=t[14],w=n*m+o*y+c*E,N=i*m+u*y+l*E,x=a*m+s*y+f*E,M=n*v+o*_+c*T,C=i*v+u*_+l*T,P=a*v+s*_+f*T,b=n*R+o*A+c*g,U=i*R+u*A+l*g,D=a*R+s*A+f*g,L=n*S+o*O+c*I+h,F=i*S+u*O+l*I+d,B=a*S+s*O+f*I+p;return r[0]=w,r[1]=N,r[2]=x,r[3]=0,r[4]=M,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],y=t[4],E=t[5],v=t[6],_=t[7],T=t[8],R=n*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=n*m+o*y+c*E,O=i*m+u*y+l*E,I=a*m+s*y+f*E,w=n*v+o*_+c*T,N=i*v+u*_+l*T,x=a*v+s*_+f*T;return r[0]=R,r[1]=A,r[2]=g,r[3]=0,r[4]=S,r[5]=O,r[6]=I,r[7]=0,r[8]=w,r[9]=N,r[10]=x,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var E=new e;l.multiplyByUniformScale=function(e,t,r){return E.x=t,E.y=t,E.z=t,l.multiplyByScale(e,E,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var v=new s,_=new s,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],y=e[6],E=e[10],A=e[14],g=e[3],S=e[7],O=e[11],I=e[15],w=E*I,N=A*O,x=y*I,M=A*S,C=y*O,P=E*S,b=m*I,U=A*g,D=m*O,L=E*g,F=m*S,B=y*g,z=w*h+M*d+C*p-(N*h+x*d+P*p),q=N*f+b*d+L*p-(w*f+U*d+D*p),G=x*f+U*h+F*p-(M*f+b*h+B*p),V=P*f+D*h+B*d-(C*f+L*h+F*d),W=N*i+x*a+P*o-(w*i+M*a+C*o),X=w*n+U*a+D*o-(N*n+b*a+L*o),H=M*n+b*i+B*o-(x*n+U*i+F*o),k=C*n+L*i+F*a-(P*n+D*i+B*a);w=a*p,N=o*d,x=i*p,M=o*h,C=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var Y=w*S+M*O+C*I-(N*S+x*O+P*I),j=N*g+b*O+L*I-(w*g+U*O+D*I),Z=x*g+U*S+F*I-(M*g+b*S+B*I),K=P*g+D*S+B*O-(C*g+L*S+F*O),J=x*E+P*A+N*y-(C*A+w*y+M*E),Q=D*A+w*m+U*E-(b*E+L*A+N*m),$=b*y+B*A+M*m-(F*A+x*m+U*y),ee=F*E+C*m+L*y-(D*y+B*E+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,v),_,u.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=H*te,r[7]=k*te,r[8]=Y*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,y=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=y,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var y=t.cartesianToCartographic(e[p]);o=Math.min(o,y.longitude),c=Math.max(c,y.longitude),h=Math.min(h,y.latitude),d=Math.max(d,y.latitude);var E=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;l=Math.min(l,E),f=Math.max(f,E)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var y=1;y<8;++y)m.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,y=new e,E=new e,v=new e,_=new e,T=new e,R=new e,A=new e,g=new e,S=new e,O=new e,I=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,y),c=e.clone(a,E),l=e.clone(a,v),f=e.clone(a,_),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var I=a.x,w=a.y,N=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),w<u.y&&e.clone(a,u),w>l.y&&e.clone(a,l),N<s.z&&e.clone(a,s),N>f.z&&e.clone(a,f)}var x=e.magnitudeSquared(e.subtract(c,o,R)),M=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=o,b=c,U=x;M>U&&(U=M,P=u,b=l),C>U&&(U=C,P=s,b=f);var D=A;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,R)),F=Math.sqrt(L),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,R));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var H=X-F;D.x=(F*D.x+H*a.x)/X,D.y=(F*D.y+H*a.y)/X,D.z=(F*D.z+H*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var w=new o,N=new e,x=new e,M=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,w),h.southwest(t,M),M.height=a,h.northeast(t,C),C.height=o;var s=r.project(M,N),c=r.project(C,x),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,y),h=e.clone(u,E),I=e.clone(u,v),w=e.clone(u,_),N=t.length;for(s=0;s<N;s+=a){var x=t[s]+r.x,M=t[s+1]+r.y,C=t[s+2]+r.z;u.x=x,u.y=M,u.z=C,x<c.x&&e.clone(u,c),x>h.x&&e.clone(u,h),M<l.y&&e.clone(u,l),M>I.y&&e.clone(u,I),C<f.z&&e.clone(u,f),C>w.z&&e.clone(u,w)}var P=e.magnitudeSquared(e.subtract(h,c,R)),b=e.magnitudeSquared(e.subtract(I,l,R)),U=e.magnitudeSquared(e.subtract(w,f,R)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=I),U>F&&(F=U,D=f,L=w);var B=A;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=I.y,V.z=w.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<N;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,W,R));H>X&&(X=H);var k=e.magnitudeSquared(e.subtract(u,B,R));if(k>z){var Y=Math.sqrt(k);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,E),f=e.clone(a,v),h=e.clone(a,_),I=t.length;for(o=0;o<I;o+=3){var w=t[o]+r[o],N=t[o+1]+r[o+1],x=t[o+2]+r[o+2];a.x=w,a.y=N,a.z=x,w<u.x&&e.clone(a,u),w>l.x&&e.clone(a,l),N<s.y&&e.clone(a,s),N>f.y&&e.clone(a,f),x<c.z&&e.clone(a,c),x>h.z&&e.clone(a,h)}var M=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),b=u,U=l,D=M;C>D&&(D=C,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=A;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,R)),B=Math.sqrt(F),z=g;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<I;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,R));if(X>F){var H=Math.sqrt(X);B=.5*(B+H),F=B*B;var k=H-B;L.x=(B*L.x+k*a.x)/H,L.y=(B*L.y+k*a.y)/H,L.z=(B*L.z+k*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,k=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,k),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var y=p.length,E=0;E<y;++E){var v=p[E];e.add(o,v,v);var _=a.cartesianToCartographic(v,Y);r.project(_,v)}i=d.fromPoints(p,i),o=i.center;var T=o.x,R=o.y,A=o.z;return o.x=A,o.y=T,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1 -;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=E,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return y(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,y,v,_;if(v=t.length>>>0,c=Math.max(0,Math.min(r,v)),f=[],l=v-c+1,h=[],d=o(),c)for(y=d.progress,m=function(e){h.push(e),--l||(p=m=E,d.reject(h))},p=function(e){f.push(e),--c||(p=m=E,d.resolve(f))},_=0;_<v;++_)_ in t&&e(t[_],s,u,y);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return y(1,arguments),h(e,v).then(t,r,n)}function f(){return h(arguments,v)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},_.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function y(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function E(){}function v(e){return e}var _,T,R;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,_=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,I=o(e[1]))}return O}function s(){return u()&&I}function c(){if(!t(w)&&(w=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(w=!0,N=o(e[1]))}return w}function l(){return c()&&N}function f(){if(!t(x)){x=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(x=!0,M=o(e[1]),M.isNightly=!!e[2])}return x}function h(){return f()&&M}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function y(){return m()&&U}function E(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function v(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function _(){return E()&&L}function T(){return t(B)||(B=!E()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function A(){return R()?z:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,I,w,N,x,M,C,P,b,U,D,L,F,B,z,q;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,m())return g._result=!1,e.resolve(g._result),e.promise;var r=new Image;return r.onload=function(){g._result=r.width>0&&r.height>0,e.resolve(g._result)},r.onerror=function(){g._result=!1,e.resolve(g._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:y,isFirefox:E,firefoxVersion:_,isWindows:v,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,y=u*c-d,E=4*p*y-m*m;if(E<0){var v,_,T;h*f>=l*d?(v=o,_=p,T=-2*u*p+o*m):(v=c,_=y,T=-c*m+2*s*y);var R=T<0?-1:1,A=-R*Math.abs(v)*Math.sqrt(-E);a=-T+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-_/S;return i=_<=0?S+O:-T/(S*S+O*O+_),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var I=p,w=-2*u*p+o*m,N=y,x=-c*m+2*s*y,M=Math.sqrt(E),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*M,-w)/3);i=2*Math.sqrt(-I);var b=Math.cos(P);a=i*b;var U=i*(-b/2-C*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*M,-x)/3),i=2*Math.sqrt(-N),b=Math.cos(P),a=i*b,U=i*(-b/2-C*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,y=p[0],E=p[1];if(y>=0&&E>=0){var v=Math.sqrt(y),_=Math.sqrt(E);return[h-_,h-v,h+v,h+_]}if(y>=0&&E<0)return m=Math.sqrt(y),[h-m,h+m];if(y<0&&E>=0)return m=Math.sqrt(E),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),R=(s+d-c/T)/2,A=(s+d+c/T)/2,g=n.computeRealRoots(1,T,R),S=n.computeRealRoots(1,-T,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,y=d[0],E=i-y,v=E*E,_=t/2,T=E/2,R=v-4*o,A=v+4*Math.abs(o),g=c-4*y,S=c+4*Math.abs(y);if(y<0||R*S<g*A){var O=Math.sqrt(g);p=O/2,m=0===O?0:(t*T-a)/O}else{var I=Math.sqrt(R);p=0===I?0:(t*T-a)/I,m=I/2}var w,N;0===_&&0===p?(w=0,N=0):r.sign(_)===r.sign(p)?(w=_+p,N=y/w):(N=_-p,w=y/N);var x,M;0===T&&0===m?(x=0,M=0):r.sign(T)===r.sign(m)?(x=T+m,M=o/x):(M=T-m,x=o/M);var C=n.computeRealRoots(1,w,x),P=n.computeRealRoots(1,N,M);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction), -r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,v),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),y=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,E=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),v=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),_=[];if(0===v&&0===E){if(l=s.computeRealRoots(p,m,y),0===l.length)return _;var T=l[0],R=Math.sqrt(Math.max(1-T*T,0));if(_.push(new e(i,a*T,a*-R)),_.push(new e(i,a*T,a*R)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));_.push(new e(i,a*A,a*-g)),_.push(new e(i,a*A,a*g))}return _}var S=v*v,O=E*E,I=p*p,w=v*E,N=I+O,x=2*(m*p+w),M=2*y*p+m*m-O+S,C=2*(y*m-w),P=y*y-S;if(0===N&&0===x&&0===M&&0===C)return _;l=c.computeRealRoots(N,x,M,C,P);var b=l.length;if(0===b)return _;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(y)?d(p*F+y,m*L,o.EPSILON12):o.sign(y)===o.sign(m*L)?d(p*F,m*L+y,o.EPSILON12):d(p*F+m*L,y,o.EPSILON12);var q=d(E*L,v,o.EPSILON15),G=D*q;G<0?_.push(new e(i,a*L,a*z)):G>0?_.push(new e(i,a*L,a*-z)):0!==z?(_.push(new e(i,a*L,a*-z)),_.push(new e(i,a*L,a*z)),++U):_.push(new e(i,a*L,a*z))}return _}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var y=new e,E=new e,v=new e,_=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,y),R=e.subtract(a,n,E),A=e.cross(p,R,v),g=e.dot(m,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,n,_),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(R,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,n,_),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(R,c)*S}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var g=new l;m.lineSegmentSphere=function(t,r,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,y=n/s;return m<y?new a(m,y):{start:y,stop:m}}var E=Math.sqrt(n/i);return new a(E,E)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,w=new e,N=new e,x=new e,M=new e,C=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,I);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,x),d=e.normalize(e.cross(h,f,w),w),m=e.normalize(e.cross(f,d,N),N),y=C;y[0]=f.x,y[1]=f.y,y[2]=f.z,y[3]=d.x,y[4]=d.y,y[5]=d.z,y[6]=m.x,y[7]=m.y,y[8]=m.z;var E=u.transpose(y,P),v=u.fromScale(r.radii,b),_=u.fromScale(r.oneOverRadii,U),T=D;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var R,A,g=u.multiply(u.multiply(E,_,L),T,L),S=u.multiply(u.multiply(g,v,F),y,F),O=u.multiplyByVector(g,i,M),G=p(S,e.negate(O,I),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){R=u.multiplyByVector(v,u.multiplyByVector(y,G[H],B),B);var k=e.normalize(e.subtract(R,i,x),x),Y=e.dot(k,a);Y>X&&(X=Y,W=e.clone(R,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,x))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,r,n,i){"use strict";function a(t,i,a){this.minimum=e.clone(r(t,e.ZERO)),this.maximum=e.clone(r(i,e.ZERO)),a=n(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,r){if(n(r)||(r=new a),!n(t)||0===t.length)return r.minimum=e.clone(e.ZERO,r.minimum),r.maximum=e.clone(e.ZERO,r.maximum),r.center=e.clone(e.ZERO,r.center),r;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,y=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(y,u),l=Math.max(y,l)}var E=r.minimum;E.x=i,E.y=o,E.z=u;var v=r.maximum;return v.x=s,v.y=c,v.z=l,r.center=e.midpoint(E,v,r.center),r},a.clone=function(t,r){if(n(t))return n(r)?(r.minimum=e.clone(t.minimum,r.minimum),r.maximum=e.clone(t.maximum,r.maximum),r.center=e.clone(t.center,r.center),r):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,r){return t===r||n(t)&&n(r)&&e.equals(t.center,r.center)&&e.equals(t.minimum,r.minimum)&&e.equals(t.maximum,r.maximum)};var o=new e;return a.intersectPlane=function(t,r){o=e.subtract(t.maximum,t.minimum,o);var n=e.multiplyByScalar(o,.5,o),a=r.normal,u=n.x*Math.abs(a.x)+n.y*Math.abs(a.y)+n.z*Math.abs(a.z),s=e.dot(t.center,a)+r.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,y,E;if("%%"==e)return"%";for(var v=!1,_="",T=!1,R=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":_=" ";break;case"+":_="+";break;case"-":v=!0;break;case"'":A=s.charAt(S+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,v=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,E=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(E),v,c,f,T,A);case"c":return u(String.fromCharCode(+E),v,c,f,T);case"b":return o(E,2,R,v,c,f,T);case"o":return o(E,8,R,v,c,f,T);case"x":return o(E,16,R,v,c,f,T);case"X":return o(E,16,R,v,c,f,T).toUpperCase();case"u":return o(E,10,R,v,c,f,T);case"i":case"d":return d=+E||0,d=Math.round(d-d%1),p=d<0?"-":_,E=p+i(String(Math.abs(d)),f,"0",!1),a(E,p,v,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+E,p=d<0?"-":_,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],y=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],E=p+Math.abs(d)[m](f),a(E,p,v,c,T)[y]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){v.julianDate=e;var r=m.leapSeconds,n=t(r,v,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){v.julianDate=e;var n=m.leapSeconds,i=t(n,v,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var y=new a,E=[31,28,31,30,31,30,31,31,30,31,30,31],v=new u,_=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,w=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,y=0,v=0,S=0,N=u[0],x=u[1];if(null!==(u=N.match(g)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=N.match(T)))r=+u[1],s=+u[2];else if(null!==(u=N.match(_)))r=+u[1];else{var M;if(null!==(u=N.match(R)))r=+u[1],M=+u[2],a=o(r);else if(null!==(u=N.match(A))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));M=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(M),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(x)){u=x.match(w),null!==u?(h=+u[1],y=+u[2],v=+u[3],S=1e3*+(u[4]||0),U=5):(u=x.match(I),null!==u?(h=+u[1],y=+u[2],v=60*+(u[3]||0),U=4):null!==(u=x.match(O))&&(h=+u[1],y=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,y-=F;break;case"-":h+=L,y+=F;break;case"Z":break;default:y+=new Date(Date.UTC(r,s-1,l,h,y)).getTimezoneOffset()}}var B=60===v;for(B&&v--;y>=60;)y-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:E[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:E[s-1];for(;y<0;)y+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:E[s-1],l+=i;var z=p(r,s,l,h,y,v,S);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var N=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,N);n(i)||(m.addSeconds(e,-1,N),i=h(N,N),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var y=d+2-12*c|0,E=100*(l-49)+f+c|0,v=u/s.SECONDS_PER_HOUR|0,_=u-v*s.SECONDS_PER_HOUR,T=_/s.SECONDS_PER_MINUTE|0;_-=T*s.SECONDS_PER_MINUTE;var R=0|_,A=(_-R)/s.SECONDS_PER_MILLISECOND;return v+=12,v>23&&(v-=24),r&&(R+=1),n(t)?(t.year=E,t.month=y,t.day=p,t.hour=v,t.minute=T,t.second=R,t.millisecond=A,t.isLeapSecond=r,t):new a(E,y,p,v,T,R,A,r)},m.toDate=function(e){var t=m.toGregorianDate(e,y),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,y),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){v.julianDate=e;var r=m.leapSeconds,n=t(r,v,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function y(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--O[e.serverKey],w.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function E(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--O[e.serverKey],w.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function v(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(y(e)).otherwise(E(e)),t}function _(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--O[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){ -h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},I="undefined"!=typeof document?new e(document.location.href):new e,w=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=w,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();_(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,r=0,n=S.length;for(e=0;e<n;++e)t=S[e],t.cancelled&&_(t),t.state===l.ACTIVE?r>0&&(S[e-r]=t):++r;S.length-=r;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?_(t):!t.throttleByServer||p(t.serverKey)?(v(t),++u):_(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(I);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return w.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return v(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;_(t)}return m(e)}}},h.clearForSpecs=function(){for(;g.length>0;){_(g.pop())}for(var e=S.length,t=0;t<e;++t)_(S[t]);S.length=0,O={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,R,A,g,S,O){"use strict";function I(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=_(i);t._queryParameters=r?M(a,t._queryParameters,n):a,e.query=void 0}function w(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=v(r):e.query=n[0]}function N(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function x(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function M(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);I(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new S("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);I(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return y(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&w(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);I(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(x(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),x(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;x(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==g.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=g.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return E(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var y=e._samples=r.samples,E=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var v,_=e._addNewLeapSeconds,T=0,R=y.length;T<R;T+=e._columnCount){var A=y[T+i],g=y[T+m],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(E.push(O),_){if(g!==v&&n(v)){var I=o.leapSeconds,w=t(I,O,d);if(w<0){var N=new u(O,g);I.splice(~w,0,N)}}v=g}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function y(e,t,r){return t+e*(r-t)}function E(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],E=r[d+e._ut1MinusUtcSecondsColumn],v=E-p;if(v>.5||v<-.5){var _=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];_!==T&&(l.equals(n)?p=E:E-=T-_)}return u.xPoleWander=y(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=y(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=y(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=y(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=y(f,p,E),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,E(this,a,this._samples,e,s,l,r),r}var y=t(a,e,o.compare,this._dateColumn);return y>=0?(y<a.length-1&&a[y+1].equals(e)&&++y,s=y,l=y):(l=~y,(s=l-1)<0&&(s=0)),this._lastIndex=s,E(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,y=a-s*this._stepSizeDays,E=this._work,v=this._denominators,_=this._coef,T=this._xTable;for(p=0;p<=u;++p)E[p]=y-T[p];for(p=0;p<=u;++p){for(_[p]=1,m=0;m<=u;++m)m!==p&&(_[p]*=E[m]);_[p]*=v[p];var R=3*(s+p);r.x+=_[p]*d[R++],r.y+=_[p]*d[R++],r.s+=_[p]*d[R]}return r}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var y=l,E=0;d>h&&(E=1),p>h&&p>d&&(E=2);var v=y[E],_=y[v];r=Math.sqrt(e[u.getElementIndex(E,E)]-e[u.getElementIndex(v,v)]-e[u.getElementIndex(_,_)]+1);var T=f;T[E]=.5*r,r=.5/r,c=(e[u.getElementIndex(_,v)]-e[u.getElementIndex(v,_)])*r,T[v]=(e[u.getElementIndex(v,E)]+e[u.getElementIndex(E,v)])*r,T[_]=(e[u.getElementIndex(_,E)]+e[u.getElementIndex(E,_)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var y=new e,E=new e,v=new s,_=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),v),s.multiply(v,T,v),v.w<0&&s.negate(v,v),s.computeAxis(v,y);var u=s.computeAngle(v);n[o]=y.x*u,n[o+1]=y.y*u,n[o+2]=y.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,E);var u=e.magnitude(E);return s.unpack(r,4*a,_),0===u?s.clone(s.IDENTITY,v):s.fromAxisAngle(E,u,v),s.multiply(v,_,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,r,n){return R=s.multiplyByScalar(t,r,R),n=s.multiplyByScalar(e,1-r,n),s.add(R,n,n)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-r)*u),g),S=s.multiplyByScalar(a,Math.sin(r*u),S),n=s.add(g,S,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,I=new e,w=new s,N=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,w);s.multiply(a,n,N);var o=s.log(N,O);s.multiply(a,t,N);var u=s.log(N,I);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,w),s.multiply(r,w,i)}, -s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,w),u=s.slerp(r,n,i,N);return s.slerp(o,u,2*i*(1-i),a)};for(var x=new s,M=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;C[D]=1/(L*F),P[D]=L/F}return C[7]=M/136,P[7]=8*M/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,U[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,x);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,w),u=s.fastSlerp(r,n,i,N);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},I=new r,w=new r,N=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=A[e][t],a=e+t;return u(S[a])?n=S[a]:(n=function(n,a,s){if(u(s)||(s=new v),y.equalsEpsilon(n.x,0,y.EPSILON14)&&y.equalsEpsilon(n.y,0,y.EPSILON14)){var c=y.sign(n.z);r.unpack(g[e],0,I),"east"!==e&&"west"!==e&&r.multiplyByScalar(I,c,I),r.unpack(g[t],0,w),"east"!==t&&"west"!==t&&r.multiplyByScalar(w,c,w),r.unpack(g[i],0,N),"east"!==i&&"west"!==i&&r.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),I=O[e],w=O[t],N=O[i]}return s[0]=I.x,s[1]=I.y,s[2]=I.z,s[3]=0,s[4]=w.x,s[5]=w.y,s[6]=w.z,s[7]=0,s[8]=N.x,s[9]=N.y,s[10]=N.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},S[a]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var x=new _,M=new r(1,1,1),C=new v;R.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=_.fromHeadingPitchRoll(t,x),s=v.fromTranslationQuaternionRotationScale(r.ZERO,u,M,C);return a=i(e,n,a),v.multiply(a,s,a)};var P=new v,b=new E;R.headingPitchRollQuaternion=function(e,t,r,n,i){var a=R.headingPitchRollToFixedFrame(e,t,r,n,P),o=v.getRotation(a,b);return _.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new v,F=new v,B=new E,z=new _;R.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=v.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=v.inverseTransformation(n(a,t,L),L),c=v.setScale(e,U,F);c=v.setTranslation(c,r.ZERO,c),s=v.multiply(s,c,s);var l=_.fromRotationMatrix(v.getRotation(s,B),z);return l=_.normalize(l,l),h.fromQuaternion(l,i)};var q=y.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%y.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new E(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(r,n,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new E);var r=R.computeFixedToIcrfMatrix(e,t);if(u(r))return E.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new E,H=new E;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new E);var r=R.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=E.fromRotationZ(-a.s,H),h=E.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,v=d-2451545,_=p/T.SECONDS_PER_DAY,A=.779057273264+_+.00273781191135448*(v+_);A=A%1*y.TWO_PI;var g=E.fromRotationZ(A,H),S=E.multiply(h,g,X),O=Math.cos(r.xPoleWander),I=Math.cos(r.yPoleWander),w=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),x=n-2451545+i/T.SECONDS_PER_DAY;x/=36525;var M=-47e-6*x*y.RADIANS_PER_DEGREE/3600,C=Math.cos(M),P=Math.sin(M),b=H;return b[0]=O*C,b[1]=O*P,b[2]=w,b[3]=-I*P+N*w*C,b[4]=I*C+N*w*P,b[5]=-N*O,b[6]=-N*P-I*w*C,b[7]=N*C-I*w*P,b[8]=I*O,E.multiply(S,b,t)}}};var k=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=k;return v.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),v.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,Z=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,y.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new E),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new v(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new E,te=new v,re=new v;return R.basisTo2D=function(e,t,n){var i=v.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=v.inverseTransformation(s,re),l=v.getRotation(t,ee),f=v.multiplyByMatrix3(c,l,n);return v.multiply(K,f,n),v.setTranslation(n,u,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=v.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=v.fromTranslation(s,te);return v.multiply(K,o,n),v.multiply(c,n,n),n},R}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var n=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=r.fromCartesian4(f.getColumn(n,0,y)),this._yAxis=r.fromCartesian4(f.getColumn(n,1,y));var i=r.fromCartesian4(f.getColumn(n,2,y));this._plane=h.fromPointNormal(e,i)}var y=new n;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var E=new e;m.fromPoints=function(t,r){return new m(e.fromPoints(t,E).center,r)};var v=new d,_=new r;m.prototype.projectPointOntoPlane=function(e,n){var i=v;i.origin=e,r.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,_);if(o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,_)),o(a)){var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return o(n)?(n.x=s,n.y=c,n):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var r=0,n=e.length,i=0;i<n;i++){var a=this.projectPointOntoPlane(e[i],t[r]);o(a)&&(t[r]=a,r++)}return t.length=r,t},m.prototype.projectPointToNearestOnPlane=function(e,n){o(n)||(n=new t);var i=v;i.origin=e,r.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,_);o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,_));var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return n.x=s,n.y=c,n},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var r=e.length;t.length=r;for(var n=0;n<r;n++)t[n]=this.projectPointToNearestOnPlane(e[n],t[n]);return t};var T=new r;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new r);var n=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=T;return r.multiplyByScalar(a,e.x,s),t=r.add(i,s,t),r.multiplyByScalar(u,e.y,s),r.add(t,s,t),n.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.projectPointOntoEllipsoid(e[n],t[n]);return t},m}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e,t){this.center=r.clone(a(e,r.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function E(e,t,n,i,a,u,s,c){o(c)||(c=new y);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=I;f.x=(t+n)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=w;h.x=(n-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var p=c.center;return f=d.multiplyByVector(l,f,f),r.add(e.origin,f,p),d.multiplyByScale(l,h,l),c}y.packedLength=r.packedLength+d.packedLength,y.pack=function(e,t,n){return n=a(n,0),r.pack(e.center,t,n),d.pack(e.halfAxes,t,n+r.packedLength),t},y.unpack=function(e,t,n){return t=a(t,0),o(n)||(n=new y),r.unpack(e,t,n.center),d.unpack(e,t+r.packedLength,n.halfAxes),n};var v=new r,_=new r,T=new r,R=new r,A=new r,g=new r,S=new d,O={unitary:new d,diagonal:new d};y.fromPoints=function(e,t){if(o(t)||(t=new y),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=r.ZERO,t;var n,i=e.length,a=r.clone(e[0],v);for(n=1;n<i;n++)r.add(a,e[n],a);var u=1/i;r.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,p=0,m=0;for(n=0;n<i;n++)s=r.subtract(e[n],a,_),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,p+=s.y*s.z,m+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,p*=u,m*=u;var E=S;E[0]=c,E[1]=l,E[2]=f,E[3]=l,E[4]=h,E[5]=p,E[6]=f,E[7]=p,E[8]=m;var I=d.computeEigenDecomposition(E,O),w=d.clone(I.unitary,t.halfAxes),N=d.getColumn(w,0,R),x=d.getColumn(w,1,A),M=d.getColumn(w,2,g),C=-Number.MAX_VALUE,P=-Number.MAX_VALUE,b=-Number.MAX_VALUE,U=Number.MAX_VALUE,D=Number.MAX_VALUE,L=Number.MAX_VALUE;for(n=0;n<i;n++)s=e[n],C=Math.max(r.dot(N,s),C),P=Math.max(r.dot(x,s),P),b=Math.max(r.dot(M,s),b),U=Math.min(r.dot(N,s),U),D=Math.min(r.dot(x,s),D),L=Math.min(r.dot(M,s),L);N=r.multiplyByScalar(N,.5*(U+C),N),x=r.multiplyByScalar(x,.5*(D+P),x),M=r.multiplyByScalar(M,.5*(L+b),M);var F=r.add(N,x,t.center);r.add(F,M,F);var B=T;return B.x=C-U,B.y=P-D,B.z=b-L,r.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var I=new r,w=new r,N=new n,x=new r,M=[new n,new n,new n,new n,new n,new n,new n,new n],C=[new r,new r,new r,new r,new r,new r,new r,new r],P=[new t,new t,new t,new t,new t,new t,new t,new t];y.fromRectangle=function(e,t,r,n,i){t=a(t,0),r=a(r,0),n=a(n,s.WGS84);var o=m.center(e,N),u=n.cartographicToCartesian(o,x),l=new c(u,n),f=l.plane,h=M[0],d=M[1],y=M[2],v=M[3],_=M[4],T=M[5],R=M[6],A=M[7],g=o.longitude,S=e.south<0&&e.north>0?0:o.latitude;R.latitude=T.latitude=_.latitude=e.south,A.latitude=v.latitude=S,h.latitude=d.latitude=y.latitude=e.north,R.longitude=A.longitude=h.longitude=e.west,T.longitude=d.longitude=g,_.longitude=v.longitude=y.longitude=e.east,y.height=d.height=h.height=A.height=R.height=T.height=_.height=v.height=r,n.cartographicArrayToCartesianArray(M,C),l.projectPointsToNearestOnPlane(C,P);var O=Math.min(P[6].x,P[7].x,P[0].x),I=Math.max(P[2].x,P[3].x,P[4].x),w=Math.min(P[4].y,P[5].y,P[6].y),b=Math.max(P[0].y,P[1].y,P[2].y);return y.height=h.height=_.height=R.height=t,n.cartographicArrayToCartesianArray(M,C),E(l,O,I,w,b,Math.min(p.getPointDistance(f,C[0]),p.getPointDistance(f,C[2]),p.getPointDistance(f,C[4]),p.getPointDistance(f,C[6])),r,i)},y.clone=function(e,t){if(o(e))return o(t)?(r.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new y(e.center,e.halfAxes)},y.intersectPlane=function(e,t){var n=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=r.dot(i,n)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var b=new r,U=new r,D=new r,L=new r;y.distanceSquaredTo=function(e,t){var n=r.subtract(t,e.center,I),i=e.halfAxes,a=d.getColumn(i,0,b),o=d.getColumn(i,1,U),u=d.getColumn(i,2,D),s=r.magnitude(a),c=r.magnitude(o),l=r.magnitude(u);r.normalize(a,a),r.normalize(o,o),r.normalize(u,u);var f=L;f.x=r.dot(n,a),f.y=r.dot(n,o),f.z=r.dot(n,u);var h,p=0;return f.x<-s?(h=f.x+s,p+=h*h):f.x>s&&(h=f.x-s,p+=h*h),f.y<-c?(h=f.y+c,p+=h*h):f.y>c&&(h=f.y-c,p+=h*h),f.z<-l?(h=f.z+l,p+=h*h):f.z>l&&(h=f.z-l,p+=h*h),p};var F=new r,B=new r;y.computePlaneDistances=function(e,t,n,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,b),h=d.getColumn(c,1,U),p=d.getColumn(c,2,D),m=r.add(l,h,F);r.add(m,p,m),r.add(m,s,m);var y=r.subtract(m,t,B),E=r.dot(n,y);return a=Math.min(E,a),u=Math.max(E,u),r.add(s,l,m),r.add(m,h,m),r.subtract(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.add(s,l,m),r.subtract(m,h,m),r.add(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.add(s,l,m),r.subtract(m,h,m),r.subtract(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.subtract(s,l,m),r.add(m,h,m),r.add(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.subtract(s,l,m),r.add(m,h,m),r.subtract(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.subtract(s,l,m),r.subtract(m,h,m),r.add(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),r.subtract(s,l,m),r.subtract(m,h,m),r.subtract(m,p,m),r.subtract(m,t,y),E=r.dot(n,y),a=Math.min(E,a),u=Math.max(E,u),i.start=a,i.stop=u,i};var z=new e;return y.isOccluded=function(t,r){var n=e.fromOrientedBoundingBox(t,z);return!r.isBoundingSphereVisible(n)},y.prototype.intersectPlane=function(e){return y.intersectPlane(this,e)},y.prototype.distanceSquaredTo=function(e){return y.distanceSquaredTo(this,e)},y.prototype.computePlaneDistances=function(e,t,r){return y.computePlaneDistances(this,e,t,r)},y.prototype.isOccluded=function(e){return y.isOccluded(this,e)},y.equals=function(e,t){return e===t||o(e)&&o(t)&&r.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},y.prototype.clone=function(e){return y.clone(this,e)},y.prototype.equals=function(e){return y.equals(this,e)},y}),define("Core/CoplanarPolygonGeometryLibrary",["./defined","./Cartesian2","./Cartesian3","./Check","./IntersectionTests","./Math","./Matrix3","./OrientedBoundingBox"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,n,i,a,o){var u=r.subtract(e,n,l),s=r.dot(i,u),c=r.dot(a,u);return t.fromElements(s,c,o)}var c={},l=new r,f=new r,h=new r,d=new r,p=new u;return c.validOutline=function(e){var t=u.fromPoints(e,p),n=t.halfAxes,i=o.getColumn(n,0,f),a=o.getColumn(n,1,h),s=o.getColumn(n,2,d),c=r.magnitude(i),l=r.magnitude(a),m=r.magnitude(s);return!(0===c&&(0===l||0===m)||0===l&&0===m)},c.computeProjectTo2DArguments=function(e,t,n,i){var a=u.fromPoints(e,p),s=a.halfAxes,c=o.getColumn(s,0,f),l=o.getColumn(s,1,h),m=o.getColumn(s,2,d),y=r.magnitude(c),E=r.magnitude(l),v=r.magnitude(m),_=Math.min(y,E,v);if(0===y&&(0===E||0===v)||0===E&&0===v)return!1;var T,R;return _!==E&&_!==v||(T=c),_===y?T=l:_===v&&(R=l),_!==y&&_!==E||(R=m),r.normalize(T,n),r.normalize(R,i),r.clone(a.center,t),!0},c.createProjectPointsTo2DFunction=function(e,t,r){return function(n){for(var i=new Array(n.length),a=0;a<n.length;a++)i[a]=s(n[a],e,t,r);return i}},c.createProjectPointTo2DFunction=function(e,t,r){return function(n,i){return s(n,e,t,r,i)}},c}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}y.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var E=new r,v=new t,_=new f,T=[new r,new r,new r],R=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,I=new c;return y._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,E),h=r.toCartesian(s,a,v),y=m.eastNorthUpToFixedFrame(h,a,_),w=f.inverse(y,_),N=R,x=T;x[0].longitude=o.west,x[0].latitude=o.south,x[1].longitude=o.west,x[1].latitude=o.north,x[2].longitude=o.east,x[2].latitude=o.south;var M=g;for(u=0;u<3;u++)r.toCartesian(x[u],a,M),M=f.multiplyByPointAsVector(w,M,M),N[u].x=M.x,N[u].y=M.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)M=f.multiplyByPointAsVector(w,n[u],M),M=l.multiplyByVector(P,M,M),U=Math.min(U,M.x),D=Math.min(D,M.y),L=Math.max(L,M.x),F=Math.max(F,M.y);var B=c.fromRotation(i,I),z=A;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=N[0],G=N[2].x-q.x,V=N[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],H=z[1],k=z[2],Y=new Array(6);return e.pack(X,Y),e.pack(H,Y,2),e.pack(k,Y,4),Y},y}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,y,E,v,_;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),y=t.dot(h,d),E=t.dot(h,p),v=t.dot(d,d),_=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),y=e.dot(h,d),E=e.dot(h,p),v=e.dot(d,d),_=e.dot(d,p)}var T=m*v-y*y,R=1/T;return f.y=(v*E-y*_)*R,f.z=(m*_-y*E)*R,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var y=0,E=u+1;i=1;var v,_,T=[],R=[],A=0,g=[],S=s/3,O=[];for(d=0;d<S;d++)O[d]=!1;for(var I,w;-1!==y;){T=[],_=p[y],w=_.vertexTriangles.length;for(var N=0;N<w;++N)if(m=_.vertexTriangles[N],!O[m]){O[m]=!0,l=m+m+m;for(var x=0;x<3;++x)I=a[l],T.push(I),R.push(I),g[A]=I,++A,v=p[I],--v.numLiveTriangles,E-v.timeStamp>u&&(v.timeStamp=E,++E),++l}y=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,E,R,c)}return g},n}), -define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,R,A,g,S){"use strict";function O(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function I(e){for(var t=e.length,r=t/3*6,n=y.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)O(n,i,e[a],e[a+1],e[a+2]);return n}function w(e){var t=e.length;if(t>=3){var r=6*(t-2),n=y.createTypedArray(t,r);O(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)O(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function N(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=y.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)O(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function x(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function M(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),R.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,E=b(e,t);for(n in E)if(E.hasOwnProperty(n))for(s=E[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var v;if(p){var _=0;for(a=0;a<h;++a)_+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:E,primitiveType:g.POINTS})),R=y.createTypedArray(T,_),A=0,S=0;for(a=0;a<h;++a){var O=e[a][t].indices,I=O.length;for(u=0;u<I;++u)R[A++]=S+O[u];S+=d.computeNumberOfVertices(e[a][t])}v=R}var w,N=new i,x=0;for(a=0;a<h;++a){if(w=e[a][t].boundingSphere,!c(w)){N=void 0;break}i.add(w.center,N,N)}if(c(N))for(i.divideByScalar(N,h,N),a=0;a<h;++a){w=e[a][t].boundingSphere;var M=i.magnitude(i.subtract(w.center,N,fe))+w.radius;M>x&&(x=M)}return new d({attributes:E,indices:v,primitiveType:m,boundingSphere:c(N)?new r(N,x):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=g.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=g.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=g.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=g.LINES,e}function G(e){switch(e.primitiveType){case g.TRIANGLE_FAN:return L(e);case g.TRIANGLE_STRIP:return F(e);case g.TRIANGLES:return D(e);case g.LINE_STRIP:return z(e);case g.LINE_LOOP:return q(e);case g.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<_.EPSILON6&&(e.y=t?-_.EPSILON6:_.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?_.sign(e.y):_.sign(r.y):a>o?_.sign(t.y):_.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),r),i.clone(r,n),V(r,!0),V(n,!1)}function H(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=xe.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Oe,we),X(e,r,Ie,Ne),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Oe,we),X(t,e,Ie,Ne),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Oe,we),X(r,t,Ie,Ne),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Oe,we),X(r,t,Ie,Ne),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Oe,we),X(t,e,Ie,Ne),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Oe,we),X(e,r,Ie,Ne),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=xe.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Oe,s[4]=Ie,s[5]=we,s[6]=Ne,s.length=7),xe}}function k(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=y.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function Y(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=k(t,n),r=k(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var y=e.add(d,p,d);e.add(y,m,y),h&&e.normalize(y,y),e.pack(y,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,y,E,v){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==y){var _=i.fromArray(o,3*e,Ue),T=i.fromArray(o,3*r,De),R=i.fromArray(o,3*n,Le),A=t(a,_,T,R,Fe);if(c(u)&&Ce(e,r,n,A,u,p.normal.values,v,!0),c(h)){var g=i.fromArray(h,3*e,Ue),S=i.fromArray(h,3*r,De),O=i.fromArray(h,3*n,Le);i.multiplyByScalar(g,A.x,g),i.multiplyByScalar(S,A.y,S),i.multiplyByScalar(O,A.z,O);var I;i.equals(g,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(O,i.ZERO)?(I=Ue,I.x=0,I.y=0,I.z=0):(I=i.add(g,S,g),i.add(I,O,I),i.normalize(I,I)),i.pack(I,p.extrudeDirection.values,3*v)}if(c(d)&&be(e,r,n,A,d,p.applyOffset.values,v),c(s)&&Ce(e,r,n,A,s,p.tangent.values,v,!0),c(l)&&Ce(e,r,n,A,l,p.bitangent.values,v,!0),c(f)&&Pe(e,r,n,A,f,p.st.values,v),y>0)for(var w=0;w<y;w++){var N=m[w];J(e,r,n,A,v,E[N],p[N])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Me(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,y,E,v,_,T=d.length,R=Y(t),A=Y(t),g=[];g.length=n.length/3;var S=[];for(S.length=n.length/3,_=0;_<g.length;++_)g[_]=-1,S[_]=-1;var O=h.length;for(_=0;_<O;_+=3){var I=h[_],w=h[_+1],N=h[_+2],x=i.fromArray(n,3*I),M=i.fromArray(n,3*w),C=i.fromArray(n,3*N),P=H(x,M,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=A.attributes,y=A.indices,E=g):(m=R.attributes,y=R.indices,E=S),v=Q(m,y,E,h,F<3?_+F:-1,B),K(I,w,N,B,n,a,u,o,s,l,f,m,d,T,r,v)}else c(P)&&(x=P.positions[0],M=P.positions[1],C=P.positions[2]),x.y<0?(m=A.attributes,y=A.indices,E=g):(m=R.attributes,y=R.indices,E=S),v=Q(m,y,E,h,_,x),K(I,w,N,x,n,a,u,o,s,l,f,m,d,T,r,v),v=Q(m,y,E,h,_+1,M),K(I,w,N,M,n,a,u,o,s,l,f,m,d,T,r,v),v=Q(m,y,E,h,_+2,C),K(I,w,N,C,n,a,u,o,s,l,f,m,d,T,r,v)}j(e,A,R)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,_.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=Y(r),l=Y(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],y=u[t+1],E=i.fromArray(a,3*m,Ue),T=i.fromArray(a,3*y,De);Math.abs(E.y)<_.EPSILON6&&(E.y<0?E.y=-_.EPSILON6:E.y=_.EPSILON6),Math.abs(T.y)<_.EPSILON6&&(T.y<0?T.y=-_.EPSILON6:T.y=_.EPSILON6);var R=s.attributes,A=s.indices,g=d,S=l.attributes,O=l.indices,I=h,w=v.lineSegmentPlane(E,T,ze,Le);if(c(w)){var N=i.multiplyByScalar(i.UNIT_Y,5*_.EPSILON9,qe);E.y<0&&(i.negate(N,N),R=l.attributes,A=l.indices,g=h,S=s.attributes,O=s.indices,I=d);var x=i.add(w,N,Ge);p=Q(R,A,g,u,t,E),ee(m,y,E,a,p,R,o),p=Q(R,A,g,u,-1,x),ee(m,y,x,a,p,R,o),i.negate(N,N),i.add(w,N,x),p=Q(S,O,I,u,-1,x),ee(m,y,x,a,p,S,o),p=Q(S,O,I,u,t+1,T),ee(m,y,T,a,p,S,o)}else{var M,C,P;E.y<0?(M=l.attributes,C=l.indices,P=h):(M=s.attributes,C=s.indices,P=d),p=Q(M,C,P,u,t,E),ee(m,y,E,a,p,M,o),p=Q(M,C,P,u,t+1,T),ee(m,y,T,a,p,M,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,He);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,ke);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,y=Y(u),E=Y(u),T=!1,R=l.length/3;for(t=0;t<R;t+=4){var A=t,g=t+2,S=i.fromArray(l,3*A,Xe),O=i.fromArray(l,3*g,He);if(Math.abs(S.y)<Qe)for(S.y=Qe*(O.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,r=3*A;r<3*A+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(O.y)<Qe)for(O.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=O.y,l[3*(t+3)+1]=O.y,r=3*A;r<3*A+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var I=y.attributes,w=y.indices,N=E.attributes,x=E.indices,M=v.lineSegmentPlane(S,O,ze,Ye);if(c(M)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),I=E.attributes,w=E.indices,N=y.attributes,x=y.indices);var P=i.add(M,C,Ze);I.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),I.position.values.push(P.x,P.y,P.z),I.position.values.push(P.x,P.y,P.z),I.prevPosition.values.push(f[3*A],f[3*A+1],f[3*A+2]),I.prevPosition.values.push(f[3*A+3],f[3*A+4],f[3*A+5]),I.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),I.nextPosition.values.push(P.x,P.y,P.z),I.nextPosition.values.push(P.x,P.y,P.z),I.nextPosition.values.push(P.x,P.y,P.z),I.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(M,C,P),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(O.x,O.y,O.z,O.x,O.y,O.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(O.x,O.y,O.z,O.x,O.y,O.z),N.nextPosition.values.push(h[3*g],h[3*g+1],h[3*g+2]),N.nextPosition.values.push(h[3*g+3],h[3*g+4],h[3*g+5]);var b=n.fromArray(d,2*A,Ve),U=Math.abs(b.y);I.expandAndWidth.values.push(-1,U,1,U),I.expandAndWidth.values.push(-1,-U,1,-U),N.expandAndWidth.values.push(-1,U,1,U),N.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(M,S,ke));if(D/=i.magnitudeSquared(i.subtract(O,S,ke)),c(m)){var L=a.fromArray(m,4*A,Ke),F=a.fromArray(m,4*g,Ke),B=_.lerp(L.x,F.x,D),z=_.lerp(L.y,F.y,D),q=_.lerp(L.z,F.z,D),G=_.lerp(L.w,F.w,D);for(r=4*A;r<4*A+8;++r)I.color.values.push(m[r]);for(I.color.values.push(B,z,q,G),I.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),r=4*g;r<4*g+8;++r)N.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*A,Ve),W=n.fromArray(p,2*(t+3),We),X=_.lerp(V.x,W.x,D);for(r=2*A;r<2*A+4;++r)I.st.values.push(p[r]);for(I.st.values.push(X,V.y),I.st.values.push(X,W.y),N.st.values.push(X,V.y),N.st.values.push(X,W.y),r=2*g;r<2*g+4;++r)N.st.values.push(p[r])}o=I.position.values.length/3-4,w.push(o,o+2,o+1),w.push(o+1,o+2,o+3),o=N.position.values.length/3-4,x.push(o,o+2,o+1),x.push(o+1,o+2,o+3)}else{var H,k;for(S.y<0?(H=E.attributes,k=E.indices):(H=y.attributes,k=y.indices),H.position.values.push(S.x,S.y,S.z),H.position.values.push(S.x,S.y,S.z),H.position.values.push(O.x,O.y,O.z),H.position.values.push(O.x,O.y,O.z),r=3*t;r<3*t+12;++r)H.prevPosition.values.push(f[r]),H.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)H.expandAndWidth.values.push(d[r]),c(p)&&H.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)H.color.values.push(m[r]);o=H.position.values.length/3-4,k.push(o,o+2,o+1),k.push(o+1,o+2,o+3)}}T&&(re(E),re(y)),j(e,E,y)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case g.TRIANGLES:e.indices=I(t);break;case g.TRIANGLE_STRIP:e.indices=w(t);break;case g.TRIANGLE_FAN:e.indices=N(t)}e.primitiveType=g.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,y=e.boundingSphere;return c(y)&&(m=new r(y.center,y.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:g.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=y.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var E in m)if(m.hasOwnProperty(E)&&c(m[E])&&c(m[E].values)){for(var v=m[E],_=v.values,T=0,R=v.componentsPerAttribute,A=u.createTypedArray(v.componentDatatype,p*R);T<t;){var g=n[T];if(-1!==g)for(var S=0;S<R;S++)A[R*g+S]=_[R*T+S];++T}v.values=A}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===g.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=S.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=_.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=x(e.attributes),s=e.indices,l=s.length;e.primitiveType===g.TRIANGLES?n=3:e.primitiveType===g.LINES?n=2:e.primitiveType===g.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,M(u,e.attributes,p)),a.push(m)}o+n>=_.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=x(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var y=i.fromArray(l,m,ae),E=s.cartesianToCartographic(y,oe),v=a.project(E,ae);f[d++]=v.x,f[d++]=v.y,f[d++]=v.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new R,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(R.equals(t,R.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(R.inverse(t,ce),R.transpose(ce,ce),R.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=R.clone(R.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],y=r[t+2],E=3*d,v=3*m,T=3*y;de.x=a[E],de.y=a[E+1],de.z=a[E+2],pe.x=a[v],pe.y=a[v+1],pe.z=a[v+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[y].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var R=0;for(t=0;t<o;t++)c[t].indexOffset+=R,R+=c[t].count;h=0;var A;for(t=0;t<s;t+=3){A=c[r[t]];var g=A.indexOffset+A.currentCount;f[g]=h,A.currentCount++,A=c[r[t+1]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,A=c[r[t+2]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var O=3*t;if(A=c[t],i.clone(i.ZERO,he),A.count>0){for(h=0;h<A.count;h++)i.add(he,l[f[A.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,_.EPSILON10)&&i.clone(l[f[A.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,_.EPSILON10)&&(he.z=1),i.normalize(he,he),S[O]=he.x,S[O+1]=he.y,S[O+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var ye=new i,Ee=new i,ve=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],y=r[t+1],E=r[t+2];f=3*m,h=3*y,d=3*E;var v=2*m,_=2*y,T=2*E,R=n[f],A=n[f+1],g=n[f+2],S=o[v],O=o[v+1],I=o[_+1]-O,w=o[T+1]-O,N=1/((o[_]-S)*w-(o[T]-S)*I),x=(w*(n[h]-R)-I*(n[d]-R))*N,M=(w*(n[h+1]-A)-I*(n[d+1]-A))*N,C=(w*(n[h+2]-g)-I*(n[d+2]-g))*N;l[f]+=x,l[f+1]+=M,l[f+2]+=C,l[h]+=x,l[h+1]+=M,l[h+2]+=C,l[d]+=x,l[d+1]+=M,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,ye),D=i.fromArray(l,f,ve),L=i.dot(U,D);i.multiplyByScalar(U,L,Ee),i.normalize(i.subtract(D,Ee,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var _e=new n,Te=new i,Re=new i,Ae=new i,ge=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(ge=e.octEncodeInRange(Te,65535,ge),l[f++]=ge.x,l[f++]=ge.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),y=c(d);if(!m&&!y)return t;var E,v,_,T,R=t.attributes.tangent,A=t.attributes.bitangent,g=c(R),S=c(A);m&&(E=h.values),y&&(v=d.values),g&&(_=R.values),S&&(T=A.values),a=(m?E.length:v.length)/(m?3:2);var O=a,I=y&&m?2:1;I+=g||S?1:0,O*=I;var w=new Float32Array(O),N=0;for(r=0;r<a;++r){y&&(n.fromArray(v,2*r,_e),w[N++]=e.compressTextureCoordinates(_e));var x=3*r;m&&c(_)&&c(T)?(i.fromArray(E,x,Te),i.fromArray(_,x,Re),i.fromArray(T,x,Ae),e.octPack(Te,Re,Ae,_e),w[N++]=_e.x,w[N++]=_e.y):(m&&(i.fromArray(E,x,Te),w[N++]=e.octEncodeFloat(Te)),g&&(i.fromArray(_,x,Te),w[N++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,x,Te),w[N++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:I,values:w}),m&&delete t.attributes.normal,y&&delete t.attributes.st,S&&delete t.attributes.bitangent,g&&delete t.attributes.tangent,t};var Se=new i,Oe=new i,Ie=new i,we=new i,Ne=new i,xe={positions:new Array(7),indices:new Array(9)},Me=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>_.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=A.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,He=new i,ke=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*_.EPSILON9,Qe=_.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,A.ORIGIN_ZX_PLANE)!==E.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===g.TRIANGLES?$(e):t.primitiveType===g.LINES&&te(e);return e},ie}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,u=o*n,s=u*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*n),m=Math.cos(2*n),y=Math.sin(4*n),E=Math.cos(4*n),v=Math.sin(6*n),_=Math.cos(6*n),T=Math.sin(8*n),R=Math.cos(8*n),A=Math.sin(10*n);return n+n*s/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*m+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*E+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*_+(1097*n*h/65536+42783*n*d/1048576)*R+8011*n*d/1048576*Math.cos(10*n)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*y+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*v+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var u=e._heading,l=a-n,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===r)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,v),E),e.normalize(a.cartographicToCartesian(i,v),v),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;r._ellipticitySquared=(s-c)/s,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function m(e,r,n,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(r))>s.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var y=f(o,e.latitude),E=f(o,d);p=Math.tan(r)*(E-y),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var v;if(0===o)v=a*Math.cos(e.latitude);else{var _=Math.sin(e.latitude);v=a*Math.cos(e.latitude)/Math.sqrt(1-m*_*_)}p=n/v,h=r>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function y(e,r,a){var o=n(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&p(this,e,r,o)}var E=new e,v=new e;return a(y.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),y.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var E=m(e,t,r,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new y(e,E,c):(o.setEndPoints(e,E),o)},y.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},y.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},y.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},y.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(r)||(r=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return r.longitude=e,r.latitude=u.latitude,r.height=0,r;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return r.longitude=e,r.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),r.height=0,r}var c,l=u.latitude,f=n*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=n*Math.sin(c),y=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(y/d,n/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return r.longitude=e,r.latitude=p,r.height=0,r},y.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},y}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,r,i){i=i||2;var a=r&&r.length,o=a?r[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,y;if(a&&(u=s(e,r,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var E=i;E<o;E+=i)p=e[E],m=e[E+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);y=Math.max(h-l,d-f)}return n(u,c,i,l,f,y),c}function t(e,t,r,n,i){var a,o;if(i===N(e,t,r,n)>0)for(a=t;a<r;a+=n)o=O(a,e[a],e[a+1],o);else for(a=r-n;a>=t;a-=n)o=O(a,e[a],e[a+1],o);return o&&_(o,o.next)&&(I(o),o=o.next),o}function r(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!_(n,n.next)&&0!==v(n.prev,n,n.next))n=n.next;else{if(I(n),(n=t=n.prev)===n.next)return null;r=!0}}while(r||n!==t);return t}function n(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,y=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),I(e),e=m.next,y=m.next;else if((e=m)===y){d?1===d?(e=o(e,t,s),n(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):n(r(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,r=e,n=e.next;if(v(t,r,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&v(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,r,n){var i=e.prev,a=e,o=e.next;if(v(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,r,n),h=p(c,l,t,r,n),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&v(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!_(i,a)&&T(i,n,n.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(a.i/r),I(n),I(n.next),n=e=a),n=n.next}while(n!==e);return n}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&E(s,c)){var l=S(s,c);return s=r(s,s.next),l=r(l,l.next),n(s,t,i,a,o,u),void n(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,n,i,a){var o,u,s,f,h,d=[];for(o=0,u=n.length;o<u;o++)s=n[o]*a,f=o<u-1?n[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=r(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var n=S(t,e);r(n,n.next)}}function f(e,t){var r,n=t,i=e.x,a=e.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y){var u=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(u<=i&&u>o){if(o=u,u===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null -;if(i===o)return r.prev;var s,c=r,l=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=l&&y(a<f?i:o,a,l,f,a<f?o:i,a,n.x,n.y)&&((s=Math.abs(a-n.y)/(i-n.x))<h||s===h&&n.x>r.x)&&A(n,e)&&(r=n,h=s),n=n.next;return r}function h(e,t,r,n){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,r,n,i,a,o,u,s,c=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,n=r,u=0,t=0;t<c&&(u++,n=n.nextZ);t++);for(s=c;u>0||s>0&&n;)0===u?(i=n,n=n.nextZ,s--):0!==s&&n?r.z<=n.z?(i=r,r=r.nextZ,u--):(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,r,n,i){return e=32767*(e-r)/i,t=32767*(t-n)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}function y(e,t,r,n,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(n-u)-(r-o)*(t-u)>=0&&(r-o)*(a-u)-(i-o)*(n-u)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!R(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function v(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function _(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,r,n){return!!(_(e,t)&&_(r,n)||_(e,n)&&_(r,t))||v(e,t,r)>0!=v(e,t,n)>0&&v(r,n,e)>0!=v(r,n,t)>0}function R(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&T(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function A(e,t){return v(e.prev,e,e.next)<0?v(e,t,e.next)>=0&&v(e,e.prev,t)>=0:v(e,t,e.prev)<0||v(e,e.next,t)<0}function g(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!=r.next.y>a&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}function S(e,t){var r=new w(e.i,e.x,e.y),n=new w(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function O(e,t,r,n){var i=new w(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function I(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function w(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function N(e,t,r,n){for(var i=0,a=t,o=r-n;a<r;a+=n)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,r,n){var i=t&&t.length,a=i?t[0]*r:e.length,o=Math.abs(N(e,0,a,r));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*r,l=u<s-1?t[u+1]*r:e.length;o-=Math.abs(N(e,c,l,r))}var f=0;for(u=0;u<n.length;u+=3){var h=n[u]*r,d=n[u+1]*r,p=n[u+2]*r;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)r.vertices.push(e[i][a][o]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===r.CLOCKWISE||e===r.COUNTER_CLOCKWISE}};return e(r)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new r,y=new r,E={};E.computeArea2D=function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++){var a=e[n],o=e[i];r+=a.x*o.y-o.x*a.y}return.5*r},E.computeWindingOrder2D=function(e){return E.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},E.triangulate=function(r,n){var i=t.packArray(r);return e(i,n,2)};var v=new r,_=new r,T=new r,R=new r,A=new r,g=new r,S=new r;E.computeSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=n.slice(0),p=t.length,m=new Array(3*p),y=0;for(s=0;s<p;s++){var E=t[s];m[y++]=E.x,m[y++]=E.y,m[y++]=E.z}for(var O=[],I={},w=e.maximumRadius,N=h.chordLength(i,w),x=N*N;c.length>0;){var M,C,P=c.pop(),b=c.pop(),U=c.pop(),D=r.fromArray(m,3*U,v),L=r.fromArray(m,3*b,_),F=r.fromArray(m,3*P,T),B=r.multiplyByScalar(r.normalize(D,R),w,R),z=r.multiplyByScalar(r.normalize(L,A),w,A),q=r.multiplyByScalar(r.normalize(F,g),w,g),G=r.magnitudeSquared(r.subtract(B,z,S)),V=r.magnitudeSquared(r.subtract(z,q,S)),W=r.magnitudeSquared(r.subtract(q,B,S)),X=Math.max(G,V,W);X>x?G===X?(M=Math.min(U,b)+" "+Math.max(U,b),s=I[M],u(s)||(C=r.add(D,L,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[M]=s),c.push(U,s,P),c.push(s,b,P)):V===X?(M=Math.min(b,P)+" "+Math.max(b,P),s=I[M],u(s)||(C=r.add(L,F,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[M]=s),c.push(b,s,U),c.push(s,P,U)):W===X&&(M=Math.min(P,U)+" "+Math.max(P,U),s=I[M],u(s)||(C=r.add(F,D,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[M]=s),c.push(P,s,b),c.push(s,U,b)):(O.push(U),O.push(b),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:O,primitiveType:d.TRIANGLES})};var O=new n,I=new n,w=new n,N=new n;return E.computeRhumbLineSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=n.slice(0),m=t.length,y=new Array(3*m),E=0;for(s=0;s<m;s++){var R=t[s];y[E++]=R.x,y[E++]=R.y,y[E++]=R.z}for(var A=[],g={},x=e.maximumRadius,M=h.chordLength(i,x),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var U=p.pop(),D=p.pop(),L=p.pop(),F=r.fromArray(y,3*L,v),B=r.fromArray(y,3*D,_),z=r.fromArray(y,3*U,T),q=e.cartesianToCartographic(F,O),G=e.cartesianToCartographic(B,I),V=e.cartesianToCartographic(z,w);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;b.setEndPoints(V,q);var H,k,Y,j,Z=b.surfaceDistance,K=Math.max(W,X,Z);K>M?W===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=g[H],u(s)||(k=C.interpolateUsingFraction(.5,N),Y=.5*(q.height+G.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[H]=s),p.push(L,s,U),p.push(s,D,U)):X===K?(H=Math.min(D,U)+" "+Math.max(D,U),s=g[H],u(s)||(k=P.interpolateUsingFraction(.5,N),Y=.5*(G.height+V.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[H]=s),p.push(D,s,L),p.push(s,U,L)):Z===K&&(H=Math.min(U,L)+" "+Math.max(U,L),s=g[H],u(s)||(k=b.interpolateUsingFraction(.5,N),Y=.5*(V.height+q.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[H]=s),p.push(U,s,D),p.push(s,L,D)):(A.push(L),A.push(D),A.push(U))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:y})},indices:A,primitiveType:d.TRIANGLES})},E.scaleToGeodeticHeight=function(e,t,n,i){n=o(n,s.WGS84);var a=m,c=y;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)r.fromArray(e,f,c),i&&(c=n.scaleToGeodeticSurface(c,c)),0!==t&&(a=n.geodeticSurfaceNormal(c,a),r.multiplyByScalar(a,t,a),r.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},E}),define("Core/Queue",["./defineProperties"],function(e){"use strict";function t(){this._array=[],this._offset=0,this._length=0}return e(t.prototype,{length:{get:function(){return this._length}}}),t.prototype.enqueue=function(e){this._array.push(e),this._length++},t.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,r=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,r}},t.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},t.prototype.contains=function(e){return-1!==this._array.indexOf(e)},t.prototype.clear=function(){this._array.length=this._offset=this._length=0},t.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)},t}),define("Core/PolygonGeometryLibrary",["./ArcType","./arrayRemoveDuplicates","./Cartesian2","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Queue","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,v,_,T,R,A){"use strict";function g(e,t,r,i){return n.subtract(t,e,O),n.multiplyByScalar(O,r/i,O),n.add(e,O,O),[O.x,O.y,O.z]}var S={};S.computeHierarchyPackedLength=function(e){for(var t=0,r=[e];r.length>0;){var i=r.pop();if(u(i)){t+=2;var a=i.positions,o=i.holes;if(u(a)&&(t+=a.length*n.packedLength),u(o))for(var s=o.length,c=0;c<s;++c)r.push(o[c])}}return t},S.packPolygonHierarchy=function(e,t,r){for(var i=[e];i.length>0;){var a=i.pop();if(u(a)){var o=a.positions,s=a.holes;if(t[r++]=u(o)?o.length:0,t[r++]=u(s)?s.length:0,u(o))for(var c=o.length,l=0;l<c;++l,r+=3)n.pack(o[l],t,r);if(u(s))for(var f=s.length,h=0;h<f;++h)i.push(s[h])}}return r},S.unpackPolygonHierarchy=function(e,t){for(var r=e[t++],i=e[t++],a=new Array(r),o=i>0?new Array(i):void 0,u=0;u<r;++u,t+=n.packedLength)a[u]=n.unpack(e,t);for(var s=0;s<i;++s)o[s]=S.unpackPolygonHierarchy(e,t),t=o[s].startingIndex,delete o[s].startingIndex;return{positions:a,holes:o,startingIndex:t}};var O=new n;S.subdivideLineCount=function(e,t,r){var i=n.distance(e,t),a=i/r,o=Math.max(0,Math.ceil(y.log2(a)));return Math.pow(2,o)};var I=new i,w=new i,N=new i,x=new n;S.subdivideRhumbLineCount=function(e,t,r,n){var i=e.cartesianToCartographic(t,I),a=e.cartesianToCartographic(r,w),o=new l(i,a,e),u=o.surfaceDistance/n,s=Math.max(0,Math.ceil(y.log2(u)));return Math.pow(2,s)},S.subdivideLine=function(e,t,r,i){var a=S.subdivideLineCount(e,t,r),o=n.distance(e,t),s=o/a;u(i)||(i=[]);var c=i;c.length=3*a;for(var l=0,f=0;f<a;f++){var h=g(e,t,f*s,o);c[l++]=h[0],c[l++]=h[1],c[l++]=h[2]}return c},S.subdivideRhumbLine=function(e,t,r,n,i){var a=e.cartesianToCartographic(t,I),o=e.cartesianToCartographic(r,w),s=new l(a,o,e),c=s.surfaceDistance/n,f=Math.max(0,Math.ceil(y.log2(c))),h=Math.pow(2,f),d=s.surfaceDistance/h;u(i)||(i=[]);var p=i;p.length=3*h;for(var m=0,E=0;E<h;E++){var v=s.interpolateUsingSurfaceDistance(E*d,N),_=e.cartographicToCartesian(v,x);p[m++]=_.x,p[m++]=_.y,p[m++]=_.z}return p};var M=new n,C=new n,P=new n,b=new n;S.scaleToGeodeticHeightExtruded=function(e,t,r,i,a){i=o(i,c.WGS84);var s=M,l=C,f=P,h=b;if(u(e)&&u(e.attributes)&&u(e.attributes.position))for(var d=e.attributes.position.values,p=d.length/2,m=0;m<p;m+=3)n.fromArray(d,m,f),i.geodeticSurfaceNormal(f,s),h=i.scaleToGeodeticSurface(f,h),l=n.multiplyByScalar(s,r,l),l=n.add(h,l,l),d[m+p]=l.x,d[m+1+p]=l.y,d[m+2+p]=l.z,a&&(h=n.clone(f,h)),l=n.multiplyByScalar(s,t,l),l=n.add(h,l,l),d[m]=l.x,d[m+1]=l.y,d[m+2]=l.z;return e},S.polygonOutlinesFromHierarchy=function(e,r,i){var a=[],o=new R;o.enqueue(e);for(var s,c,l;0!==o.length;){var f=o.dequeue(),h=f.positions;if(r)for(l=h.length,s=0;s<l;s++)i.scaleToGeodeticSurface(h[s],h[s]);if(h=t(h,n.equalsEpsilon,!0),!(h.length<3)){var d=f.holes?f.holes.length:0;for(s=0;s<d;s++){var p=f.holes[s],m=p.positions;if(r)for(l=m.length,c=0;c<l;++c)i.scaleToGeodeticSurface(m[c],m[c]);if(m=t(m,n.equalsEpsilon,!0),!(m.length<3)){a.push(m);var y=0;for(u(p.holes)&&(y=p.holes.length),c=0;c<y;c++)o.enqueue(p.holes[c])}}a.push(h)}}return a},S.polygonsFromHierarchy=function(e,r,i,a){var o=[],s=[],c=new R;for(c.enqueue(e);0!==c.length;){var l,f,h=c.dequeue(),d=h.positions,p=h.holes;if(i)for(f=d.length,l=0;l<f;l++)a.scaleToGeodeticSurface(d[l],d[l]);if(d=t(d,n.equalsEpsilon,!0),!(d.length<3)){var m=r(d);if(u(m)){var y=[],E=v.computeWindingOrder2D(m);E===A.CLOCKWISE&&(m.reverse(),d=d.slice().reverse());var _,T=d.slice(),g=u(p)?p.length:0,S=[];for(l=0;l<g;l++){var O=p[l],I=O.positions;if(i)for(f=I.length,_=0;_<f;++_)a.scaleToGeodeticSurface(I[_],I[_]);if(I=t(I,n.equalsEpsilon,!0),!(I.length<3)){var w=r(I);if(u(w)){E=v.computeWindingOrder2D(w),E===A.CLOCKWISE&&(w.reverse(),I=I.slice().reverse()),S.push(I),y.push(T.length),T=T.concat(I),m=m.concat(w);var N=0;for(u(O.holes)&&(N=O.holes.length),_=0;_<N;_++)c.enqueue(O.holes[_])}}}o.push({outerRing:d,holes:S}),s.push({positions:T,positions2D:m,holes:y})}}}return{hierarchy:o,polygons:s}};var U=new r,D=new n,L=new T,F=new E;S.computeBoundingRectangle=function(e,t,r,i,a){for(var o=T.fromAxisAngle(e,i,L),s=E.fromQuaternion(o,F),c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,f=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,d=r.length,p=0;p<d;++p){var m=n.clone(r[p],D);E.multiplyByVector(s,m,m);var y=t(m,U);u(y)&&(c=Math.min(c,y.x),l=Math.max(l,y.x),f=Math.min(f,y.y),h=Math.max(h,y.y))}return a.x=c,a.y=f,a.width=l-c,a.height=h-f,a},S.createGeometryFromPositions=function(t,r,n,i,o,u){var s=v.triangulate(r.positions2D,r.holes);s.length<3&&(s=[0,1,2]);var c=r.positions;if(i){for(var l=c.length,d=new Array(3*l),m=0,y=0;y<l;y++){var E=c[y];d[m++]=E.x,d[m++]=E.y,d[m++]=E.z}var T=new f({attributes:{position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:d})},indices:s,primitiveType:_.TRIANGLES});return o.normal?p.computeNormal(T):T}return u===e.GEODESIC?v.computeSubdivision(t,c,s,n):u===e.RHUMB?v.computeRhumbLineSubdivision(t,c,s,n):void 0};var B=[],z=new n,q=new n;return S.computeWallGeometry=function(t,r,i,o,u){var s,c,l,p,E,v=t.length,T=0;if(o)for(c=3*v*2,s=new Array(2*c),l=0;l<v;l++)p=t[l],E=t[(l+1)%v],s[T]=s[T+c]=p.x,++T,s[T]=s[T+c]=p.y,++T,s[T]=s[T+c]=p.z,++T,s[T]=s[T+c]=E.x,++T,s[T]=s[T+c]=E.y,++T,s[T]=s[T+c]=E.z,++T;else{var R=y.chordLength(i,r.maximumRadius),A=0;if(u===e.GEODESIC)for(l=0;l<v;l++)A+=S.subdivideLineCount(t[l],t[(l+1)%v],R);else if(u===e.RHUMB)for(l=0;l<v;l++)A+=S.subdivideRhumbLineCount(r,t[l],t[(l+1)%v],R);for(c=3*(A+v),s=new Array(2*c),l=0;l<v;l++){p=t[l],E=t[(l+1)%v];var g;u===e.GEODESIC?g=S.subdivideLine(p,E,R,B):u===e.RHUMB&&(g=S.subdivideRhumbLine(r,p,E,R,B));for(var O=g.length,I=0;I<O;++I,++T)s[T]=g[I],s[T+c]=g[I];s[T]=E.x,s[T+c]=E.x,++T,s[T]=E.y,s[T+c]=E.y,++T,s[T]=E.z,s[T+c]=E.z,++T}}v=s.length;var w=m.createTypedArray(v/3,v-6*t.length),N=0;for(v/=6,l=0;l<v;l++){var x=l,M=x+1,C=x+v,P=C+1;p=n.fromArray(s,3*x,z),E=n.fromArray(s,3*M,q),n.equalsEpsilon(p,E,y.EPSILON14,y.EPSILON6)||(w[N++]=x,w[N++]=C,w[N++]=M,w[N++]=M,w[N++]=C,w[N++]=P)}return new f({attributes:new d({position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:s})}),indices:w,primitiveType:_.TRIANGLES})},S}),define("Core/CoplanarPolygonOutlineGeometry",["./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./CoplanarPolygonGeometryLibrary","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryPipeline","./IndexDatatype","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y){"use strict";function E(e){for(var t=e.length,r=new Float64Array(3*t),n=d.createTypedArray(t,2*t),a=0,o=0,u=0;u<t;u++){var f=e[u];r[a++]=f.x,r[a++]=f.y,r[a++]=f.z,n[o++]=u,n[o++]=(u+1)%t}var h=new l({position:new c({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:r})});return new s({attributes:h,indices:n,primitiveType:y.LINES})}function v(e){e=o(e,o.EMPTY_OBJECT);var t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=p.computeHierarchyPackedLength(t)+1}v.fromPositions=function(e){return e=o(e,o.EMPTY_OBJECT),new v({polygonHierarchy:{positions:e.positions}})},v.pack=function(e,t,r){return r=o(r,0),r=p.packPolygonHierarchy(e._polygonHierarchy,t,r),t[r]=e.packedLength,t};var _={polygonHierarchy:{}};return v.unpack=function(e,t,r){t=o(t,0);var n=p.unpackPolygonHierarchy(e,t);t=n.startingIndex,delete n.startingIndex;var i=e[t];return u(r)||(r=new v(_)),r._polygonHierarchy=n,r.packedLength=i,r},v.createGeometry=function(n){var i=n._polygonHierarchy,o=i.positions;if(o=e(o,r.equalsEpsilon,!0),!(o.length<3)){if(a.validOutline(o)){var u=p.polygonOutlinesFromHierarchy(i,!1);if(0!==u.length){for(var c=[],l=0;l<u.length;l++){var d=new f({geometry:E(u[l])});c.push(d)}var m=h.combineInstances(c)[0],y=t.fromPoints(i.positions);return new s({attributes:m.attributes,indices:m.indices,primitiveType:m.primitiveType,boundingSphere:y})}}}},v}),define("Workers/createCoplanarPolygonOutlineGeometry",["../Core/defined","../Core/CoplanarPolygonOutlineGeometry","../Core/Ellipsoid"],function(e,t,r){"use strict";function n(n,i){return e(i)&&(n=t.unpack(n,i)),n._ellipsoid=r.clone(n._ellipsoid),t.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as T}from"./chunk-ONYACCBZ.js";import"./chunk-7MCGOXW3.js";import{a as f}from"./chunk-IY45XUGY.js";import"./chunk-E3BAMNKM.js";import{a as G}from"./chunk-7GU2ORNB.js";import{a as C}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import"./chunk-M243PNMW.js";import{a as L}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as w}from"./chunk-T53UE6JF.js";import{a as O}from"./chunk-RYO6NY7F.js";import{b,c as d,d as k}from"./chunk-2HSPJH3C.js";import{d as P}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as H}from"./chunk-6QVIJ7JA.js";import{a as l,d as g}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as c}from"./chunk-WHQYJFDH.js";import{b as a}from"./chunk-OYWUGDKS.js";import{e as u}from"./chunk-DRYFJEFT.js";function E(o){let e=o.length,t=new Float64Array(e*3),r=w.createTypedArray(e,e*2),i=0,s=0;for(let n=0;n<e;n++){let p=o[n];t[i++]=p.x,t[i++]=p.y,t[i++]=p.z,r[s++]=n,r[s++]=(n+1)%e}let y=new O({position:new k({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:t})});return new d({attributes:y,indices:r,primitiveType:b.LINES})}function m(o){o=c(o,c.EMPTY_OBJECT);let e=o.polygonHierarchy;a.defined("options.polygonHierarchy",e),this._polygonHierarchy=e,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=f.computeHierarchyPackedLength(e,l)+1}m.fromPositions=function(o){o=c(o,c.EMPTY_OBJECT),a.defined("options.positions",o.positions);let e={polygonHierarchy:{positions:o.positions}};return new m(e)};m.pack=function(o,e,t){return a.typeOf.object("value",o),a.defined("array",e),t=c(t,0),t=f.packPolygonHierarchy(o._polygonHierarchy,e,t,l),e[t]=o.packedLength,e};var v={polygonHierarchy:{}};m.unpack=function(o,e,t){a.defined("array",o),e=c(e,0);let r=f.unpackPolygonHierarchy(o,e,l);e=r.startingIndex,delete r.startingIndex;let i=o[e];return u(t)||(t=new m(v)),t._polygonHierarchy=r,t.packedLength=i,t};m.createGeometry=function(o){let e=o._polygonHierarchy,t=e.positions;if(t=L(t,l.equalsEpsilon,!0),t.length<3||!T.validOutline(t))return;let i=f.polygonOutlinesFromHierarchy(e,!1);if(i.length===0)return;let s=[];for(let p=0;p<i.length;p++){let _=new G({geometry:E(i[p])});s.push(_)}let y=C.combineInstances(s)[0],n=P.fromPoints(e.positions);return new d({attributes:y.attributes,indices:y.indices,primitiveType:y.primitiveType,boundingSphere:n})};var h=m;function A(o,e){return u(e)&&(o=h.unpack(o,e)),o._ellipsoid=g.clone(o._ellipsoid),h.createGeometry(o)}var Z=A;export{Z as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorGeometry.js index 789e8f67f..4e8a88ce6 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,T=E+y+_,v=Math.sqrt(1/T),R=e.multiplyByScalar(n,v,a);if(T<s)return isFinite(v)?e.clone(R,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=R.x*A*2,O.y=R.y*g*2,O.z=R.z*S*2;var w,N,M,I,x,C,P,U,D,b,L,F=(1-v)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{F-=B,M=1/(1+F*A),I=1/(1+F*g),x=1/(1+F*S),C=M*M,P=I*I,U=x*x,D=C*M,b=P*I,L=U*x,w=E*C+y*P+_*U-1,N=E*D*A+y*b*g+_*L*S;B=w/(-2*N)}while(Math.abs(w)>r.EPSILON12);return t(c)?(c.x=l*M,c.y=f*I,c.z=h*x,c):new e(l*M,f*I,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,m=r(n)?n.oneOverRadiiSquared:h,E=r(n)?n._centerToleranceSquared:d,y=o(t,p,m,E,c);if(r(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),v=Math.atan2(_.y,_.x),R=Math.asin(_.z),A=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=v,i.latitude=R,i.height=A,i):new u(v,R,A)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(m[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(E-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-n+u-f+d,T=2*(c-o),v=2*(a-l),R=2*(c+o),A=-n-u+f+d;return r(t)?(t[0]=p,t[1]=y,t[2]=v,t[3]=m,t[4]=_,t[5]=R,t[6]=E,t[7]=T,t[8]=A,t):new s(p,m,E,y,_,T,v,R,A)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*n,_=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n -},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(m,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(E,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-E+_,v=2*(c-y),R=2*(f+m),A=2*(c+y),g=-s+d-E+_,S=2*(p-h),O=2*(f-m),w=2*(p+h),N=-s-d+E+_;return r[0]=T*a,r[1]=A*a,r[2]=O*a,r[3]=0,r[4]=v*o,r[5]=g*o,r[6]=w*o,r[7]=0,r[8]=R*u,r[9]=S*u,r[10]=N*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,T=d.z,v=r.x,R=r.y,A=r.z,g=u*-v+s*-R+c*-A,S=y*-v+_*-R+T*-A,O=p*v+m*R+E*A;return i(n)?(n[0]=u,n[1]=y,n[2]=-p,n[3]=0,n[4]=s,n[5]=_,n[6]=-m,n[7]=0,n[8]=c,n[9]=T,n[10]=-E,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,y,_,T,S,-p,-m,-E,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var m=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),n};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],T=t[0],v=t[1],R=t[2],A=t[3],g=t[4],S=t[5],O=t[6],w=t[7],N=t[8],M=t[9],I=t[10],x=t[11],C=t[12],P=t[13],U=t[14],D=t[15],b=r*T+u*v+f*R+m*A,L=i*T+s*v+h*R+E*A,F=a*T+c*v+d*R+y*A,B=o*T+l*v+p*R+_*A,z=r*g+u*S+f*O+m*w,q=i*g+s*S+h*O+E*w,G=a*g+c*S+d*O+y*w,V=o*g+l*S+p*O+_*w,W=r*N+u*M+f*I+m*x,X=i*N+s*M+h*I+E*x,H=a*N+c*M+d*I+y*x,Y=o*N+l*M+p*I+_*x,k=r*C+u*P+f*U+m*D,j=i*C+s*P+h*U+E*D,Z=a*C+c*P+d*U+y*D,K=o*C+l*P+p*U+_*D;return n[0]=b,n[1]=L,n[2]=F,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],T=t[5],v=t[6],R=t[8],A=t[9],g=t[10],S=t[12],O=t[13],w=t[14],N=r*m+o*E+c*y,M=i*m+u*E+l*y,I=a*m+s*E+f*y,x=r*_+o*T+c*v,C=i*_+u*T+l*v,P=a*_+s*T+f*v,U=r*R+o*A+c*g,D=i*R+u*A+l*g,b=a*R+s*A+f*g,L=r*S+o*O+c*w+h,F=i*S+u*O+l*w+d,B=a*S+s*O+f*w+p;return n[0]=N,n[1]=M,n[2]=I,n[3]=0,n[4]=x,n[5]=C,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=b,n[11]=0,n[12]=L,n[13]=F,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],T=t[7],v=t[8],R=r*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*m+o*E+c*y,O=i*m+u*E+l*y,w=a*m+s*E+f*y,N=r*_+o*T+c*v,M=i*_+u*T+l*v,I=a*_+s*T+f*v;return n[0]=R,n[1]=A,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=w,n[7]=0,n[8]=N,n[9]=M,n[10]=I,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var y=new e;l.multiplyByUniformScale=function(e,t,n){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,v=new t,R=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],A=e[14],g=e[3],S=e[7],O=e[11],w=e[15],N=y*w,M=A*O,I=E*w,x=A*S,C=E*O,P=y*S,U=m*w,D=A*g,b=m*O,L=y*g,F=m*S,B=E*g,z=N*h+x*d+C*p-(M*h+I*d+P*p),q=M*f+U*d+L*p-(N*f+D*d+b*p),G=I*f+D*h+F*p-(x*f+U*h+B*p),V=P*f+b*h+B*d-(C*f+L*h+F*d),W=M*i+I*a+P*o-(N*i+x*a+C*o),X=N*r+D*a+b*o-(M*r+U*a+L*o),H=x*r+U*i+B*o-(I*r+D*i+F*o),Y=C*r+L*i+F*a-(P*r+b*i+B*a);N=a*p,M=o*d,I=i*p,x=o*h,C=i*d,P=a*h,U=r*p,D=o*f,b=r*d,L=a*f,F=r*h,B=i*f;var k=N*S+x*O+C*w-(M*S+I*O+P*w),j=M*g+U*O+L*w-(N*g+D*O+b*w),Z=I*g+D*S+F*w-(x*g+U*S+B*w),K=P*g+b*S+B*O-(C*g+L*S+F*O),J=I*y+P*A+M*E-(C*A+N*E+x*y),Q=b*A+N*m+D*y-(U*y+L*A+M*m),$=U*E+B*A+x*m-(F*A+I*m+D*E),ee=F*y+C*m+L*E-(b*E+B*y+P*m),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,v),R))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,T=new e,v=new e,R=new e,A=new e,g=new e,S=new e,O=new e,w=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],v),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var w=a.x,N=a.y,M=a.z;w<o.x&&e.clone(a,o),w>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var I=e.magnitudeSquared(e.subtract(c,o,R)),x=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=o,U=c,D=I;x>D&&(D=x,P=u,U=l),C>D&&(D=C,P=s,U=f);var b=A;b.x=.5*(P.x+U.x),b.y=.5*(P.y+U.y),b.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,b,R)),F=Math.sqrt(L),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,b,R));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var H=X-F;b.x=(F*b.x+H*a.x)/X,b.y=(F*b.y+H*a.y)/X,b.z=(F*b.z+H*a.z)/X}}return F<G?(e.clone(b,n.center),n.radius=F):(e.clone(q,n.center),n.radius=G),n};var N=new o,M=new e,I=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,N),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=n.project(x,M),c=n.project(C,I),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=v;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),w=e.clone(u,_),N=e.clone(u,T),M=t.length;for(s=0;s<M;s+=a){var I=t[s]+n.x,x=t[s+1]+n.y,C=t[s+2]+n.z;u.x=I,u.y=x,u.z=C,I<c.x&&e.clone(u,c),I>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>w.y&&e.clone(u,w),C<f.z&&e.clone(u,f),C>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,R)),U=e.magnitudeSquared(e.subtract(w,l,R)),D=e.magnitudeSquared(e.subtract(N,f,R)),b=c,L=h,F=P;U>F&&(F=U,b=l,L=w),D>F&&(F=D,b=f,L=N);var B=A;B.x=.5*(b.x+L.x),B.y=.5*(b.y+L.y),B.z=.5*(b.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=w.y,V.z=N.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<M;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,R));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,R));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=v;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),w=t.length;for(o=0;o<w;o+=3){var N=t[o]+n[o],M=t[o+1]+n[o+1],I=t[o+2]+n[o+2];a.x=N,a.y=M,a.z=I,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),I<c.z&&e.clone(a,c),I>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),U=u,D=l,b=x;C>b&&(b=C,U=s,D=f),P>b&&(b=P,U=c,D=h);var L=A;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var F=e.magnitudeSquared(e.subtract(D,L,R)),B=Math.sqrt(F),z=g;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<w;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,R));if(X>F){var H=Math.sqrt(X);B=.5*(B+H),F=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,b=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,b),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var F=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);n.project(T,_)}i=d.fromPoints(p,i),o=i.center;var v=o.x,R=o.y,A=o.z;return o.x=A,o.y=v,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return w*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{ -get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(n,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return E(1,arguments),h(e,_).then(t,n,r)}function f(){return h(arguments,_)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=v.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function m(e,t){for(var n,r=0;n=e[r++];)n(t)}function E(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function y(){}function _(e){return e}var T,v,R;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},v=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,w=o(e[1]))}return O}function s(){return u()&&w}function c(){if(!t(N)&&(N=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(N=!0,M=o(e[1]))}return N}function l(){return c()&&M}function f(){if(!t(I)){I=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(I=!0,x=o(e[1]),x.isNightly=!!e[2])}return I}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function E(){return m()&&D}function y(){if(!t(b)){b=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,L=o(e[1]))}return b}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function T(){return y()&&L}function v(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function A(){return R()?z:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,w,N,M,I,x,C,P,U,D,b,L,F,B,z,q;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,m())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:v,supportsImageRenderingPixelated:R,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CornerType",["./freezeObject"],function(e){"use strict";return e({ROUNDED:0,MITERED:1,BEVELED:2})}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),m=t/4,E=m*m,y=E*m,_=E*E,T=1+m-3*E/4+5*y/4-175*_/64,v=1-m+15*E/8-35*y/8,R=1-3*m+35*E/4,A=1-5*m,g=T*l-v*Math.sin(2*l)*m/2-R*Math.sin(4*l)*E/16-A*Math.sin(6*l)*y/48-5*Math.sin(8*l)*_/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=m,S.u4Over16=E,S.u6Over64=y,S.u8Over256=_,S.a0=T,S.a1=v,S.a2=R,S.a3=A,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,m=a-r,E=Math.atan((1-p)*Math.tan(i)),y=Math.atan((1-p)*Math.tan(o)),_=Math.cos(E),T=Math.sin(E),v=Math.cos(y),R=Math.sin(y),A=_*v,g=_*R,S=T*R,O=T*v,w=m,N=u.TWO_PI,M=Math.cos(w),I=Math.sin(w);do{M=Math.cos(w),I=Math.sin(w);var x=g-O*M;f=Math.sqrt(v*v*I*I+x*x),c=S+A*M,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=A*I/f,h=1-C*C),N=w,d=c-2*S/h,isNaN(d)&&(d=0),w=m+l(p,C,h,s,f,c,d)}while(Math.abs(w-N)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),U=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,b=d*d,L=D*f*(d+D*(c*(2*b-1)-D*d*(4*f*f-3)*(4*b-3)/6)/4),F=n*U*(s-L),B=Math.atan2(v*I,g-O*M),z=Math.atan2(_*I,g*M-O);e._distance=F,e._startHeading=B,e._endHeading=z,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,m),p),e.normalize(a.cartographicToCartesian(i,m),m);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,m=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,m=a*p,E=r.u8Over256,y=r.u2Over4,_=r.u6Over64,T=r.u4Over16,v=2*m*E*o/3+a*(1-y+7*T/4-15*_/4+579*E/64-(T-15*_/4+187*E/16)*o-(5*_/4-115*E/16)*u-29*E*s/16)+(y/2-T+71*_/32-85*E/16)*c+(5*T/16-5*_/4+383*E/96)*f-p*((_-11*E/2)*c+5*E*f/2)+(29*_/96-29*E/16)*h+539*E*d/1536,R=Math.asin(Math.sin(v)*r.cosineAlpha),A=Math.atan(r.a/r.b*Math.tan(R));v-=r.sigma;var g=Math.cos(2*r.sigma+v),S=Math.sin(v),O=Math.cos(v),w=r.cosineU*O,N=r.sineU*S,M=Math.atan2(S*r.sineHeading,w-N*r.cosineHeading),I=M-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,v,S,O,g);return i(n)?(n.longitude=this._start.longitude+I,n.latitude=A,n.height=0,n):new t(this._start.longitude+I,A,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),m=Math.cos(2*r),E=Math.sin(4*r),y=Math.cos(4*r),_=Math.sin(6*r),T=Math.cos(6*r),v=Math.sin(8*r),R=Math.cos(8*r),A=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*m+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*y+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*R+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*E+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*v+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,_),y),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function m(e,n,r,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var E=f(o,e.latitude),y=f(o,d);p=Math.tan(n)*(y-E),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-m*T*T)}p=r/_,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function E(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var y=new e,_=new e;return a(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),E.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t) -;var y=m(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new E(e,y,c):(o.setEndPoints(e,y),o)},E.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},E.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},E.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},E.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=r*Math.sin(c),E=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(E/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},E.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},E}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,T,v;h*f>=l*d?(_=o,T=p,v=-2*u*p+o*m):(_=c,T=E,v=-c*m+2*s*E);var R=v<0?-1:1,A=-R*Math.abs(_)*Math.sqrt(-y);a=-v+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-T/S;return i=T<=0?S+O:-v/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var w=p,N=-2*u*p+o*m,M=E,I=-c*m+2*s*E,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-N)/3);i=2*Math.sqrt(-w);var U=Math.cos(P);a=i*U;var D=i*(-U/2-C*Math.sin(P)),b=a+D>2*u?a-u:D-u,L=o,F=b/L;P=Math.abs(Math.atan2(c*x,-I)/3),i=2*Math.sqrt(-M),U=Math.cos(P),a=i*U,D=i*(-U/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-b*z-L*B,W=b*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var v=Math.sqrt(d),R=(s+d-c/v)/2,A=(s+d+c/v)/2,g=r.computeRealRoots(1,v,R),S=r.computeRealRoots(1,-v,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,T=t/2,v=y/2,R=_-4*o,A=_+4*Math.abs(o),g=c-4*E,S=c+4*Math.abs(E);if(E<0||R*S<g*A){var O=Math.sqrt(g);p=O/2,m=0===O?0:(t*v-a)/O}else{var w=Math.sqrt(R);p=0===w?0:(t*v-a)/w,m=w/2}var N,M;0===T&&0===p?(N=0,M=0):n.sign(T)===n.sign(p)?(N=T+p,M=E/N):(M=T-p,N=E/M);var I,x;0===v&&0===m?(I=0,x=0):n.sign(v)===n.sign(m)?(I=v+m,x=o/I):(x=v-m,I=o/x);var C=r.computeRealRoots(1,N,I),P=r.computeRealRoots(1,M,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(r(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return T;var v=l[0],R=Math.sqrt(Math.max(1-v*v,0));if(T.push(new e(i,a*v,a*-R)),T.push(new e(i,a*v,a*R)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));T.push(new e(i,a*A,a*-g)),T.push(new e(i,a*A,a*g))}return T}var S=_*_,O=y*y,w=p*p,N=_*y,M=w+O,I=2*(m*p+N),x=2*E*p+m*m-O+S,C=2*(E*m-N),P=E*E-S;if(0===M&&0===I&&0===x&&0===C)return T;l=c.computeRealRoots(M,I,x,C,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var b,L=l[D],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);b=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=b*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++D):T.push(new e(i,a*L,a*z))}return T}var m={};m.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,T=new e,v=new e;m.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,r,E),R=e.subtract(a,r,y),A=e.cross(p,R,_),g=e.dot(m,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,m,v),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(R,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,m,v),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(R,c)*S}return h},m.rayTriangle=function(t,n,i,a,o,u){var s=m.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;m.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;m.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=r/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(r/i);return new a(y,y)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var w=new e,N=new e,M=new e,I=new e,x=new e,C=new u,P=new u,U=new u,D=new u,b=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,w);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,w),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,I),d=e.normalize(e.cross(h,f,N),N),m=e.normalize(e.cross(f,d,M),M),E=C;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),v=b;v[0]=0,v[1]=-a.z,v[2]=a.y,v[3]=a.z,v[4]=0,v[5]=-a.x,v[6]=-a.y,v[7]=a.x,v[8]=0;var R,A,g=u.multiply(u.multiply(y,T,L),v,L),S=u.multiply(u.multiply(g,_,F),E,F),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,w),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){R=u.multiplyByVector(_,u.multiplyByVector(E,G[H],B),B);var Y=e.normalize(e.subtract(R,i,I),I),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(R,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,I))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,n.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=w;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,x),l=i.scaleToGeodeticSurface(n,C),f=E.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,N),p=i.cartesianToCartographic(l,M),m=d(f,a,o);P.setEndPoints(h,p);var y=P.surfaceDistance/f,_=s;h.height=a;var T=i.cartographicToCartesian(h,I);e.pack(T,u,_),_+=3;for(var v=1;v<f;v++){var R=P.interpolateUsingSurfaceDistance(v*y,M);R.height=m[v],T=i.cartographicToCartesian(R,I),e.pack(T,u,_),_+=3}return _}function m(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,x),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,N),p=i.cartesianToCartographic(f,M),m=E.numberOfPointsRhumbLine(h,p,r),y=d(m,a,o);U.ellipsoid.equals(i)||(U=new u(void 0,void 0,i)),U.setEndPoints(h,p);var _=U.surfaceDistance/m,T=c;h.height=a;var v=i.cartographicToCartesian(h,I);e.pack(v,s,T),T+=3;for(var R=1;R<m;R++){var A=U.interpolateUsingSurfaceDistance(R*_,M);A.height=y[R],v=i.cartographicToCartesian(A,I),e.pack(v,s,T),T+=3}return T}var E={};E.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},E.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var y=new t;E.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,y).height}return r};var _=new f,T=new e,v=new e,R=new h(e.UNIT_X,0),A=new e,g=new h(e.UNIT_X,0),S=new e,O=new e,w=[],N=new t,M=new t,I=new e,x=new e,C=new e,P=new o,U=new u;E.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,_),c=f.multiplyByPoint(u,e.ZERO,T),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,v),v),d=h.fromPointNormal(c,l,R),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,A),A),m=h.fromPointNormal(c,p,g),E=1;a.push(e.clone(t[0]));for(var y=a[0],w=t.length,N=1;N<w;++N){var M=t[N];if(h.getPointDistance(m,y)<0||h.getPointDistance(m,M)<0){var I=s.lineSegmentPlane(y,M,d,S);if(r(I)){var x=e.multiplyByScalar(l,5e-9,O);h.getPointDistance(d,y)<0&&e.negate(x,x),a.push(e.add(I,x,new e)),o.push(E+1),e.negate(x,x),a.push(e.add(I,x,new e)),E=1}}a.push(e.clone(t[N])),E++,y=M}o.push(E)}return{positions:a,lengths:o}},E.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],x);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,I);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var m=t.minDistance;if(!r(m)){var y=n(t.granularity,l.RADIANS_PER_DEGREE);m=l.chordLength(y,u.maximumRadius)}var _,T=0;for(_=0;_<o-1;_++)T+=E.numberOfPoints(i[_],i[_+1],m);var v=3*(T+1),R=new Array(v),A=0;for(_=0;_<o-1;_++){A=p(i[_],i[_+1],m,u,f?s[_]:s,f?s[_+1]:s,R,A)}w.length=0;var g=i[o-1],S=u.cartesianToCartographic(g,N);S.height=f?s[o-1]:s;var O=u.cartographicToCartesian(S,I);return e.pack(O,R,v-3),R};var D=new t,b=new t;return E.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],x);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,I);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var y,_,T=n(i.granularity,l.RADIANS_PER_DEGREE),v=0,R=s.cartesianToCartographic(o[0],D);for(y=0;y<u-1;y++)_=s.cartesianToCartographic(o[y+1],b),v+=E.numberOfPointsRhumbLine(R,_,T),R=t.clone(_,D);var A=3*(v+1),g=new Array(A),S=0;for(y=0;y<u-1;y++){S=m(o[y],o[y+1],T,s,h?f[y]:f,h?f[y+1]:f,g,S)}w.length=0;var O=o[u-1],M=s.cartesianToCartographic(O,N);M.height=h?f[u-1]:f;var C=s.cartographicToCartesian(M,I);return e.pack(C,g,A-3),g},E.generateCartesianArc=function(t){for(var n=E.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},E.generateCartesianRhumbArc=function(t){for(var n=E.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},E}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,E=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(E,u),l=Math.max(E,l)}var y=n.minimum;y.x=i,y.y=o,y.z=u;var _=n.maximum;return _.x=s,_.y=c,_.z=l,n.center=e.midpoint(y,_,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,T="",v=!1,R=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":A=s.charAt(S+1);break;case"0":v=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(y),_,c,f,v,A);case"c":return u(String.fromCharCode(+y),_,c,f,v);case"b":return o(y,2,R,_,c,f,v);case"o":return o(y,8,R,_,c,f,v);case"x":return o(y,16,R,_,c,f,v);case"X":return o(y,16,R,_,c,f,v).toUpperCase();case"u":return o(y,10,R,_,c,f,v);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,v);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,v)[E]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){m.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}m.addSeconds(e,i,e)}function h(e,n){_.julianDate=e;var r=m.leapSeconds,i=t(r,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-r[0].offset,n);if(i>=r.length)return m.addSeconds(e,-r[i-1].offset,n);var a=m.secondsDifference(r[i].julianDate,e);return 0===a?m.addSeconds(e,-r[i].offset,n):a<=1?void 0:m.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,v=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,w=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,S=0,M=u[0],I=u[1];if(null!==(u=M.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(v)))n=+u[1],s=+u[2];else if(null!==(u=M.match(T)))n=+u[1];else{var x;if(null!==(u=M.match(R)))n=+u[1],x=+u[2],a=o(n);else if(null!==(u=M.match(A))){n=+u[1];var C=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));x=7*C+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(I)){u=I.match(N),null!==u?(h=+u[1],E=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=I.match(w),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),D=4):null!==(u=I.match(O))&&(h=+u[1],E=60*+(u[2]||0),D=3));var b=u[D],L=+u[D+1],F=+(u[D+2]||0);switch(b){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(n,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:y[s-1],l+=i;var z=p(n,s,l,h,E,_,S);return r(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var M=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var n=!1,i=h(e,M);r(i)||(m.addSeconds(e,-1,M),i=h(M,M),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,v=T/s.SECONDS_PER_MINUTE|0;T-=v*s.SECONDS_PER_MINUTE;var R=0|T,A=(T-R)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),n&&(R+=1),r(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=v,t.second=R,t.millisecond=A,t.isLeapSecond=n,t):new a(y,E,p,_,v,R,A,n)},m.toDate=function(e){var t=m.toGregorianDate(e,E),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},m.toIso8601=function(t,n){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var n=e.dayNumber-t.dayNumber -;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=n},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},m.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},m.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},m.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},m.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--O[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function v(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},w="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();T(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);v()},h.getServerKey=function(t){var n=new e(t).resolve(w);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return m(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())}for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,R,A,g,S,O){"use strict";function w(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?x(a,t._queryParameters,r):a,e.query=void 0}function N(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=_(n):e.query=r[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function I(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=o(t.request,new v),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);w(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function b(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return b(r,i);case"blob":var a=b(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function F(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);w(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&N(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);w(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(I(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),I(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;I(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void F(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return y(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1, -this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=n.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,v=0,R=E.length;v<R;v+=e._columnCount){var A=E[v+i],g=E[v+m],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(y.push(O),T){if(g!==_&&r(_)){var w=o.leapSeconds,N=t(w,O,d);if(N<0){var M=new u(O,g);w.splice(~N,0,M)}}_=g}}}function m(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,n){return t+e*(n-t)}function y(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return m(e,n,i,s,u),u;if(r.equals(l))return m(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],y=n[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],v=n[d+e._taiMinusUtcSecondsColumn];T!==v&&(l.equals(r)?p=y:y-=v-T)}return u.xPoleWander=E(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,n),n}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,v=this._xTable;for(p=0;p<=u;++p)y[p]=E-v[p];for(p=0;p<=u;++p){for(T[p]=1,m=0;m<=u;++m)m!==p&&(T[p]*=y[m]);T[p]*=_[p];var R=3*(s+p);n.x+=T[p]*d[R++],n.y+=T[p]*d[R++],n.s+=T[p]*d[R]}return n}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)n=Math.sqrt(m+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],T=E[_];n=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var v=f;v[y]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*n,v[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*n,v[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*n,i=-v[0],a=-v[1],o=-v[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,n){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var E=new e,y=new e,_=new s,T=new s,v=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,v),s.conjugate(v,v);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,v,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);r[o]=E.x*u,r[o+1]=E.y*u,r[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,n,r){return R=s.multiplyByScalar(t,n,R),r=s.multiplyByScalar(e,1-n,r),s.add(R,r,r)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,w=new e,N=new s,M=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,N);s.multiply(a,r,M);var o=s.log(M,O);s.multiply(a,t,M);var u=s.log(M,w);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(n,N,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(n,r,i,M);return s.slerp(o,u,2*i*(1-i),a)};for(var I=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],b=0;b<7;++b){var L=b+1,F=2*L+1;C[b]=1/(L*F),P[b]=L/F}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,I);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(n,r,i,M);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},w=new n,N=new n,M=new n;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=A[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new _),E.equalsEpsilon(r.x,0,E.EPSILON14)&&E.equalsEpsilon(r.y,0,E.EPSILON14)){var c=E.sign(r.z);n.unpack(g[e],0,w),"east"!==e&&"west"!==e&&n.multiplyByScalar(w,c,w),n.unpack(g[t],0,N),"east"!==t&&"west"!==t&&n.multiplyByScalar(N,c,N),n.unpack(g[i],0,M),"east"!==i&&"west"!==i&&n.multiplyByScalar(M,c,M)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),w=O[e],N=O[t],M=O[i]}return s[0]=w.x,s[1]=w.y,s[2]=w.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var I=new T,x=new n(1,1,1),C=new _;R.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,I),s=_.fromTranslationQuaternionRotationScale(n.ZERO,u,x,C);return a=i(e,r,a),_.multiply(a,s,a)};var P=new _,U=new y;R.headingPitchRollQuaternion=function(e,t,n,r,i){var a=R.headingPitchRollToFixedFrame(e,t,n,r,P),o=_.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),b=new n,L=new _,F=new _,B=new y,z=new T;R.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,b);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(r(a,t,L),L),c=_.setScale(e,D,F);c=_.setTranslation(c,n.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/v.DAYS_PER_JULIAN_CENTURY:(a-.5)/v.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*v.SECONDS_PER_DAY)%v.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(n,r,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var n=R.computeFixedToIcrfMatrix(e,t);if(u(n))return y.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,H=new y;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var n=R.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+n.ut1MinusUtc,_=d-2451545,T=p/v.SECONDS_PER_DAY,A=.779057273264+T+.00273781191135448*(_+T);A=A%1*E.TWO_PI;var g=y.fromRotationZ(A,H),S=y.multiply(h,g,X),O=Math.cos(n.xPoleWander),w=Math.cos(n.yPoleWander),N=Math.sin(n.xPoleWander),M=Math.sin(n.yPoleWander),I=r-2451545+i/v.SECONDS_PER_DAY;I/=36525;var x=-47e-6*I*E.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),U=H;return U[0]=O*C,U[1]=O*P,U[2]=N,U[3]=-w*P+M*N*C,U[4]=w*C+M*N*P,U[5]=-M*O,U[6]=-M*P-w*N*C,U[7]=M*C-w*N*P,U[8]=w*O,y.multiply(S,U,t)}}};var Y=new r;R.pointToWindowCoordinates=function(e,t,n,r){return r=R.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},R.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;R.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,E.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new y,te=new _,ne=new _;return R.basisTo2D=function(e,t,r){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,ne),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,r);return _.multiply(K,f,r),_.setTranslation(r,u,r),r},R.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,r),_.multiply(c,r,r),r},R}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,E)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,E));var i=n.fromCartesian4(f.getColumn(r,2,E));this._plane=h.fromPointNormal(e,i)}var E=new r;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var y=new e;m.fromPoints=function(t,n){return new m(e.fromPoints(t,y).center,n)};var _=new d,T=new n;m.prototype.projectPointOntoPlane=function(e,r){var i=_;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},m.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=_;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var v=new n;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=v;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("Core/PolylineVolumeGeometryLibrary",["./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./CornerType","./EllipsoidTangentPlane","./Math","./Matrix3","./Matrix4","./PolylinePipeline","./Quaternion","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++){var i=e[r];U=t.cartesianToCartographic(i,U),n[r]=U.height,e[r]=t.scaleToGeodeticSurface(i,i)}return n}function d(e,n,r,i){var a,o=e[0],u=e[1],s=t.angleBetween(o,u),c=Math.ceil(s/i),l=new Array(c);if(n===r){for(a=0;a<c;a++)l[a]=n;return l.push(r),l}var f=r-n,h=f/c;for(a=1;a<c;a++){var d=n+a*h;l[a]=d}return l[0]=n,l.push(r),l}function p(n,r,i,o){var u=new a(i,o),s=u.projectPointOntoPlane(t.add(i,n,D),D),c=u.projectPointOntoPlane(t.add(i,r,b),b),l=e.angleBetween(s,c);return c.x*s.y-c.y*s.x>=0?-l:l}function m(e,n,r,i,a,o,c,l){var h=G,d=V;F=f.eastNorthUpToFixedFrame(e,a,F),h=s.multiplyByPointAsVector(F,L,h),h=t.normalize(h,h);var m=p(h,n,e,a);z=u.fromRotationZ(m,z),W.z=o,F=s.multiplyTransformation(F,s.fromRotationTranslation(z,W,B),F);var E=q;E[0]=c;for(var y=0;y<l;y++)for(var _=0;_<r.length;_+=3)d=t.fromArray(r,_,d),d=u.multiplyByVector(E,d,d),d=s.multiplyByPoint(F,d,d),i.push(d.x,d.y,d.z);return i}function E(e,n,r,i,a,o,u){for(var s=0;s<e.length;s+=3){i=m(t.fromArray(e,s,X),n,r,i,a,o[s/3],u,1)}return i}function y(e,t){var n=e.length,r=new Array(6*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=e[0];r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o;for(var s=1;s<n;s++){u=e[s];var c=u.x-a,l=u.y-o;r[i++]=c,r[i++]=0,r[i++]=l,r[i++]=c,r[i++]=0,r[i++]=l}return u=e[0],r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o,r}function _(e,t){for(var n=e.length,r=new Array(3*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=0;u<n;u++)r[i++]=e[u].x-a,r[i++]=0,r[i++]=e[u].y-o;return r}function T(e,n,r,a,s,c,f,h,d,p){var E,y=t.angleBetween(t.subtract(n,e,x),t.subtract(r,e,C)),_=a===i.BEVELED?0:Math.ceil(y/o.toRadians(5));E=s?u.fromQuaternion(l.fromAxisAngle(t.negate(e,x),y/(_+1),H),k):u.fromQuaternion(l.fromAxisAngle(e,y/(_+1),H),k);var T,v;if(n=t.clone(n,Y),_>0)for(var R=p?2:1,A=0;A<_;A++)n=u.multiplyByVector(E,n,n),T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),v=c.scaleToGeodeticSurface(n,C),f=m(v,T,h,f,c,d,1,R);else T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),v=c.scaleToGeodeticSurface(n,C),f=m(v,T,h,f,c,d,1,1),r=t.clone(r,Y),T=t.subtract(r,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),v=c.scaleToGeodeticSurface(r,C),f=m(v,T,h,f,c,d,1,1);return f}var v=[new t,new t],R=new t,A=new t,g=new t,S=new t,O=new t,w=new t,N=new t,M=new t,I=new t,x=new t,C=new t,P={},U=new r,D=new t,b=new t,L=new t(-1,0,0),F=new s,B=new s,z=new u,q=u.IDENTITY.clone(),G=new t,V=new n,W=new t,X=new t,H=new l,Y=new t,k=new u;P.removeDuplicatesFromShape=function(t){for(var n=t.length,r=[],i=n-1,a=0;a<n;i=a++){var o=t[i],u=t[a];e.equals(o,u)||r.push(u)}return r},P.angleIsGreaterThanPi=function(e,n,r,i){var o=new a(r,i),u=o.projectPointOntoPlane(t.add(r,e,D),D),s=o.projectPointOntoPlane(t.add(r,n,b),b);return s.x*u.y-s.y*u.x>=0};var j=new t,Z=new t;return P.computePositions=function(e,n,r,a,u){var s=a._ellipsoid,l=h(e,s),f=a._granularity,p=a._cornerType,C=u?y(n,r):_(n,r),U=u?_(n,r):void 0,D=r.height/2,b=r.width/2,L=e.length,F=[],B=u?[]:void 0,z=R,q=A,G=g,V=S,W=O,X=w,H=N,Y=M,k=I,K=e[0],J=e[1];V=s.geodeticSurfaceNormal(K,V),z=t.subtract(J,K,z),z=t.normalize(z,z),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y);var Q=l[0],$=l[1];u&&(B=m(K,Y,U,B,s,Q+D,1,1)),k=t.clone(K,k),K=J,q=t.negate(z,q);for(var ee,te,ne=1;ne<L-1;ne++){var re=u?2:1;J=e[ne+1],z=t.subtract(J,K,z),z=t.normalize(z,z),G=t.add(z,q,G),G=t.normalize(G,G),V=s.geodeticSurfaceNormal(K,V);var ie=t.multiplyByScalar(V,t.dot(z,V),j);t.subtract(z,ie,ie),t.normalize(ie,ie);var ae=t.multiplyByScalar(V,t.dot(q,V),Z);t.subtract(q,ae,ae),t.normalize(ae,ae);if(!o.equalsEpsilon(Math.abs(t.dot(ie,ae)),1,o.EPSILON7)){G=t.cross(G,V,G),G=t.cross(V,G,G),G=t.normalize(G,G);var oe=1/Math.max(.25,t.magnitude(t.cross(G,q,x))),ue=P.angleIsGreaterThanPi(z,q,K,s);ue?(W=t.add(K,t.multiplyByScalar(G,oe*b,G),W),X=t.add(W,t.multiplyByScalar(Y,b,X),X),v[0]=t.clone(k,v[0]),v[1]=t.clone(X,v[1]),ee=d(v,Q+D,$+D,f),te=c.generateArc({positions:v,granularity:f,ellipsoid:s}),F=E(te,Y,C,F,s,ee,1),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,b,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,F,C,$+D,u):(G=t.negate(G,G),F=m(K,G,C,F,s,$+D,oe,re)),k=t.clone(H,k)):(W=t.add(K,t.multiplyByScalar(G,oe*b,G),W),X=t.add(W,t.multiplyByScalar(Y,-b,X),X),v[0]=t.clone(k,v[0]),v[1]=t.clone(X,v[1]),ee=d(v,Q+D,$+D,f),te=c.generateArc({positions:v,granularity:f,ellipsoid:s}),F=E(te,Y,C,F,s,ee,1),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,-b,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,F,C,$+D,u):F=m(K,G,C,F,s,$+D,oe,re),k=t.clone(H,k)),q=t.negate(z,q)}else F=m(k,Y,C,F,s,Q+D,1,1),k=K;Q=$,$=l[ne+1],K=J}v[0]=t.clone(k,v[0]),v[1]=t.clone(K,v[1]),ee=d(v,Q+D,$+D,f),te=c.generateArc({positions:v,granularity:f,ellipsoid:s}),F=E(te,Y,C,F,s,ee,1),u&&(B=m(K,Y,U,B,s,$+D,1,1)),L=F.length;var se=u?L+B.length:L,ce=new Float64Array(se);return ce.set(F),u&&ce.set(B,L),ce},P}),define("Core/CorridorGeometryLibrary",["./Cartesian3","./CornerType","./defined","./Math","./Matrix3","./PolylinePipeline","./PolylineVolumeGeometryLibrary","./Quaternion"],function(e,t,n,r,i,a,o,u){"use strict";function s(n,a,o,s,c){var l=e.angleBetween(e.subtract(a,n,d),e.subtract(o,n,p)),f=s===t.BEVELED?1:Math.ceil(l/r.toRadians(5))+1,h=3*f,m=new Array(h);m[h-3]=o.x,m[h-2]=o.y,m[h-1]=o.z;var E;E=c?i.fromQuaternion(u.fromAxisAngle(e.negate(n,d),l/f,M),I):i.fromQuaternion(u.fromAxisAngle(n,l/f,M),I);var y=0;a=e.clone(a,d);for(var _=0;_<f;_++)a=i.multiplyByVector(E,a,a),m[y++]=a.x,m[y++]=a.y,m[y++]=a.z;return m}function c(n){var r=_,i=T,a=v,o=n[1];i=e.fromArray(n[1],o.length-3,i),a=e.fromArray(n[0],0,a),r=e.midpoint(i,a,r);var u=s(r,i,a,t.ROUNDED,!1),c=n.length-1,l=n[c-1];return o=n[c],i=e.fromArray(l,l.length-3,i),a=e.fromArray(o,0,a),r=e.midpoint(i,a,r),[u,s(r,i,a,t.ROUNDED,!1)]}function l(t,n,r,i){var a=d;return i?a=e.add(t,n,a):(n=e.negate(n,n),a=e.add(t,n,a)),[a.x,a.y,a.z,r.x,r.y,r.z]}function f(t,n,r,i){for(var a=new Array(t.length),o=new Array(t.length),u=e.multiplyByScalar(n,r,d),s=e.negate(u,p),c=0,l=t.length-1,f=0;f<t.length;f+=3){var h=e.fromArray(t,f,m),y=e.add(h,s,E);a[c++]=y.x,a[c++]=y.y,a[c++]=y.z;var _=e.add(h,u,E);o[l--]=_.z,o[l--]=_.y,o[l--]=_.x}return i.push(a,o),i}var h={},d=new e,p=new e,m=new e,E=new e,y=[new e,new e],_=new e,T=new e,v=new e,R=new e,A=new e,g=new e,S=new e,O=new e,w=new e,N=new e,M=new u,I=new i;h.addAttribute=function(e,t,r,i){var a=t.x,o=t.y,u=t.z;n(r)&&(e[r]=a,e[r+1]=o,e[r+2]=u),n(i)&&(e[i]=u,e[i-1]=o,e[i-2]=a)};var x=new e,C=new e;return h.computePositions=function(n){var i=n.granularity,u=n.positions,h=n.ellipsoid,p=n.width/2,m=n.cornerType,E=n.saveAttributes,M=_,I=T,P=v,U=R,D=A,b=g,L=S,F=O,B=w,z=N,q=[],G=E?[]:void 0,V=E?[]:void 0,W=u[0],X=u[1];I=e.normalize(e.subtract(X,W,I),I),M=h.geodeticSurfaceNormal(W,M),U=e.normalize(e.cross(M,I,U),U),E&&(G.push(U.x,U.y,U.z),V.push(M.x,M.y,M.z)), -L=e.clone(W,L),W=X,P=e.negate(I,P);var H,Y,k=[],j=u.length;for(Y=1;Y<j-1;Y++){M=h.geodeticSurfaceNormal(W,M),X=u[Y+1],I=e.normalize(e.subtract(X,W,I),I),D=e.normalize(e.add(I,P,D),D);var Z=e.multiplyByScalar(M,e.dot(I,M),x);e.subtract(I,Z,Z),e.normalize(Z,Z);var K=e.multiplyByScalar(M,e.dot(P,M),C);e.subtract(P,K,K),e.normalize(K,K);if(!r.equalsEpsilon(Math.abs(e.dot(Z,K)),1,r.EPSILON7)){D=e.cross(D,M,D),D=e.cross(M,D,D),D=e.normalize(D,D);var J=p/Math.max(.25,e.magnitude(e.cross(D,P,d))),Q=o.angleIsGreaterThanPi(I,P,W,h);D=e.multiplyByScalar(D,J,D),Q?(F=e.add(W,D,F),z=e.add(F,e.multiplyByScalar(U,p,z),z),B=e.add(F,e.multiplyByScalar(U,2*p,B),B),y[0]=e.clone(L,y[0]),y[1]=e.clone(z,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),E&&(G.push(U.x,U.y,U.z),V.push(M.x,M.y,M.z)),b=e.clone(B,b),U=e.normalize(e.cross(M,I,U),U),B=e.add(F,e.multiplyByScalar(U,2*p,B),B),L=e.add(F,e.multiplyByScalar(U,p,L),L),m===t.ROUNDED||m===t.BEVELED?k.push({leftPositions:s(F,b,B,m,Q)}):k.push({leftPositions:l(W,e.negate(D,D),B,Q)})):(B=e.add(W,D,B),z=e.add(B,e.negate(e.multiplyByScalar(U,p,z),z),z),F=e.add(B,e.negate(e.multiplyByScalar(U,2*p,F),F),F),y[0]=e.clone(L,y[0]),y[1]=e.clone(z,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),E&&(G.push(U.x,U.y,U.z),V.push(M.x,M.y,M.z)),b=e.clone(F,b),U=e.normalize(e.cross(M,I,U),U),F=e.add(B,e.negate(e.multiplyByScalar(U,2*p,F),F),F),L=e.add(B,e.negate(e.multiplyByScalar(U,p,L),L),L),m===t.ROUNDED||m===t.BEVELED?k.push({rightPositions:s(B,b,F,m,Q)}):k.push({rightPositions:l(W,D,F,Q)})),P=e.negate(I,P)}W=X}M=h.geodeticSurfaceNormal(W,M),y[0]=e.clone(L,y[0]),y[1]=e.clone(W,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),E&&(G.push(U.x,U.y,U.z),V.push(M.x,M.y,M.z));var $;return m===t.ROUNDED&&($=c(q)),{positions:q,corners:k,lefts:G,normals:V,endPositions:$}},h}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var y=new n,_=new t,T=new f,v=[new n,new n,new n],R=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,w=new c;return E._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,y),h=n.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,T),N=f.inverse(E,T),M=R,I=v;I[0].longitude=o.west,I[0].latitude=o.south,I[1].longitude=o.west,I[1].latitude=o.north,I[2].longitude=o.east,I[2].latitude=o.south;var x=g;for(u=0;u<3;u++)n.toCartesian(I[u],a,x),x=f.multiplyByPointAsVector(N,x,x),M[u].x=x.x,M[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),U=r.length,D=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)x=f.multiplyByPointAsVector(N,r[u],x),x=l.multiplyByVector(P,x,x),D=Math.min(D,x.x),b=Math.min(b,x.y),L=Math.max(L,x.x),F=Math.max(F,x.y);var B=c.fromRotation(i,w),z=A;z[0].x=D,z[0].y=b,z[1].x=D,z[1].y=F,z[2].x=L,z[2].y=b;var q=M[0],G=M[2].x-q.x,V=M[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,E;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var y=i;y<o;y+=i)p=e[y],m=e[y+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);E=Math.max(h-l,d-f)}return r(u,c,i,l,f,E),c}function t(e,t,n,r,i){var a,o;if(i===M(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(w(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==_(r.prev,r,r.next))r=r.next;else{if(w(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,E=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),w(e),e=m.next,E=m.next;else if((e=m)===E){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(_(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(E(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&v(i,r,r.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),w(r),w(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&y(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&E(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&A(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function E(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function y(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!R(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function _(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function v(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||_(e,t,n)>0!=_(e,t,r)>0&&_(n,r,e)>0!=_(n,r,t)>0}function R(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&v(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function A(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function g(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new N(e.i,e.x,e.y),r=new N(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new N(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function w(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function N(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(M(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(M(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new n,E=new n,y={};y.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},y.computeWindingOrder2D=function(e){return y.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},y.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var _=new n,T=new n,v=new n,R=new n,A=new n,g=new n,S=new n;y.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,m=new Array(3*p),E=0;for(s=0;s<p;s++){var y=t[s];m[E++]=y.x,m[E++]=y.y,m[E++]=y.z}for(var O=[],w={},N=e.maximumRadius,M=h.chordLength(i,N),I=M*M;c.length>0;){var x,C,P=c.pop(),U=c.pop(),D=c.pop(),b=n.fromArray(m,3*D,_),L=n.fromArray(m,3*U,T),F=n.fromArray(m,3*P,v),B=n.multiplyByScalar(n.normalize(b,R),N,R),z=n.multiplyByScalar(n.normalize(L,A),N,A),q=n.multiplyByScalar(n.normalize(F,g),N,g),G=n.magnitudeSquared(n.subtract(B,z,S)),V=n.magnitudeSquared(n.subtract(z,q,S)),W=n.magnitudeSquared(n.subtract(q,B,S)),X=Math.max(G,V,W);X>I?G===X?(x=Math.min(D,U)+" "+Math.max(D,U),s=w[x],u(s)||(C=n.add(b,L,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(D,s,P),c.push(s,U,P)):V===X?(x=Math.min(U,P)+" "+Math.max(U,P),s=w[x],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(U,s,D),c.push(s,P,D)):W===X&&(x=Math.min(P,D)+" "+Math.max(P,D),s=w[x],u(s)||(C=n.add(F,b,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,w=new r,N=new r,M=new r;return y.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),m=t.length,E=new Array(3*m),y=0;for(s=0;s<m;s++){var R=t[s];E[y++]=R.x,E[y++]=R.y,E[y++]=R.z}for(var A=[],g={},I=e.maximumRadius,x=h.chordLength(i,I),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),b=p.pop(),L=p.pop(),F=n.fromArray(E,3*L,_),B=n.fromArray(E,3*b,T),z=n.fromArray(E,3*D,v),q=e.cartesianToCartographic(F,O),G=e.cartesianToCartographic(B,w),V=e.cartesianToCartographic(z,N);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;U.setEndPoints(V,q);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(W,X,Z);K>x?W===K?(H=Math.min(L,b)+" "+Math.max(L,b),s=g[H],u(s)||(Y=C.interpolateUsingFraction(.5,M),k=.5*(q.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(L,s,D),p.push(s,b,D)):X===K?(H=Math.min(b,D)+" "+Math.max(b,D),s=g[H],u(s)||(Y=P.interpolateUsingFraction(.5,M),k=.5*(G.height+V.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(b,s,L),p.push(s,D,L)):Z===K&&(H=Math.min(D,L)+" "+Math.max(D,L),s=g[H],u(s)||(Y=U.interpolateUsingFraction(.5,M),k=.5*(V.height+q.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(D,s,b),p.push(s,L,b)):(A.push(L),A.push(b),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:A,primitiveType:d.TRIANGLES})},y.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=m,c=E;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},y}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/CorridorGeometry",["./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./CornerType","./CorridorGeometryLibrary","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType","./Rectangle","./VertexFormat"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,R,A){"use strict";function g(e,t){for(var n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function S(e,t,n,i,a,o){var u=e.normals,c=e.tangents,l=e.bitangents,f=r.normalize(r.cross(n,t,B),B);o.normal&&s.addAttribute(u,t,i,a),o.tangent&&s.addAttribute(c,f,i,a),o.bitangent&&s.addAttribute(l,n,i,a)}function O(e,t,n){var i,a,u,c=e.positions,f=e.corners,h=e.endPositions,d=e.lefts,E=e.normals,T=new m,v=0,R=0,A=0;for(a=0;a<c.length;a+=2)u=c[a].length-3,v+=u,A+=2*u,R+=c[a+1].length-3;for(v+=3,R+=3,a=0;a<f.length;a++){i=f[a];var g=f[a].leftPositions;l(g)?(u=g.length,v+=u,A+=u):(u=f[a].rightPositions.length,R+=u,A+=u)}var O,w=l(h);w&&(O=h[0].length-3,v+=O,R+=O,O/=3,A+=6*O);var N,M,I,x,C,L,q=v+R,G=new Float64Array(q),V=t.normal?new Float32Array(q):void 0,W=t.tangent?new Float32Array(q):void 0,X=t.bitangent?new Float32Array(q):void 0,H={normals:V,tangents:W,bitangents:X},Y=0,k=q-1,j=P,Z=U,K=O/2,J=y.createTypedArray(q/3,A),Q=0;if(w){L=D,C=b;var $=h[0];for(j=r.fromArray(E,0,j),Z=r.fromArray(d,0,Z),a=0;a<K;a++)L=r.fromArray($,3*(K-1-a),L),C=r.fromArray($,3*(K+a),C),s.addAttribute(G,C,Y),s.addAttribute(G,L,void 0,k),S(H,j,Z,Y,k,t),M=Y/3,x=M+1,N=(k-2)/3,I=N-1,J[Q++]=N,J[Q++]=M,J[Q++]=I,J[Q++]=I,J[Q++]=M,J[Q++]=x,Y+=3,k-=3}var ee=0,te=0,ne=c[ee++],re=c[ee++];G.set(ne,Y),G.set(re,k-re.length+1),Z=r.fromArray(d,te,Z);var ie,ae;for(u=re.length-3,a=0;a<u;a+=3)ie=n.geodeticSurfaceNormal(r.fromArray(ne,a,B),B),ae=n.geodeticSurfaceNormal(r.fromArray(re,u-a,z),z),j=r.normalize(r.add(ie,ae,j),j),S(H,j,Z,Y,k,t),M=Y/3,x=M+1,N=(k-2)/3,I=N-1,J[Q++]=N,J[Q++]=M,J[Q++]=I,J[Q++]=I,J[Q++]=M,J[Q++]=x,Y+=3,k-=3;for(ie=n.geodeticSurfaceNormal(r.fromArray(ne,u,B),B),ae=n.geodeticSurfaceNormal(r.fromArray(re,u,z),z),j=r.normalize(r.add(ie,ae,j),j),te+=3,a=0;a<f.length;a++){var oe;i=f[a];var ue,se,ce=i.leftPositions,le=i.rightPositions,fe=F,he=D,de=b;if(j=r.fromArray(E,te,j),l(ce)){for(S(H,j,Z,void 0,k,t),k-=3,ue=x,se=I,oe=0;oe<ce.length/3;oe++)fe=r.fromArray(ce,3*oe,fe),J[Q++]=ue,J[Q++]=se-oe-1,J[Q++]=se-oe,s.addAttribute(G,fe,void 0,k),he=r.fromArray(G,3*(se-oe-1),he),de=r.fromArray(G,3*ue,de),Z=r.normalize(r.subtract(he,de,Z),Z),S(H,j,Z,void 0,k,t),k-=3;fe=r.fromArray(G,3*ue,fe),he=r.subtract(r.fromArray(G,3*se,he),fe,he),de=r.subtract(r.fromArray(G,3*(se-oe),de),fe,de),Z=r.normalize(r.add(he,de,Z),Z),S(H,j,Z,Y,void 0,t),Y+=3}else{for(S(H,j,Z,Y,void 0,t),Y+=3,ue=I,se=x,oe=0;oe<le.length/3;oe++)fe=r.fromArray(le,3*oe,fe),J[Q++]=ue,J[Q++]=se+oe,J[Q++]=se+oe+1,s.addAttribute(G,fe,Y),he=r.fromArray(G,3*ue,he),de=r.fromArray(G,3*(se+oe),de),Z=r.normalize(r.subtract(he,de,Z),Z),S(H,j,Z,Y,void 0,t),Y+=3;fe=r.fromArray(G,3*ue,fe),he=r.subtract(r.fromArray(G,3*(se+oe),he),fe,he),de=r.subtract(r.fromArray(G,3*se,de),fe,de),Z=r.normalize(r.negate(r.add(de,he,Z),Z),Z),S(H,j,Z,void 0,k,t),k-=3}for(ne=c[ee++],re=c[ee++],ne.splice(0,3),re.splice(re.length-3,3),G.set(ne,Y),G.set(re,k-re.length+1),u=re.length-3,te+=3,Z=r.fromArray(d,te,Z),oe=0;oe<re.length;oe+=3)ie=n.geodeticSurfaceNormal(r.fromArray(ne,oe,B),B),ae=n.geodeticSurfaceNormal(r.fromArray(re,u-oe,z),z),j=r.normalize(r.add(ie,ae,j),j),S(H,j,Z,Y,k,t),x=Y/3,M=x-1,I=(k-2)/3,N=I+1,J[Q++]=N,J[Q++]=M,J[Q++]=I,J[Q++]=I,J[Q++]=M,J[Q++]=x,Y+=3,k-=3;Y-=3,k+=3}if(j=r.fromArray(E,E.length-3,j),S(H,j,Z,Y,k,t),w){Y+=3,k-=3,L=D,C=b;var pe=h[1];for(a=0;a<K;a++)L=r.fromArray(pe,3*(O-a-1),L),C=r.fromArray(pe,3*a,C),s.addAttribute(G,L,void 0,k),s.addAttribute(G,C,Y),S(H,j,Z,Y,k,t),x=Y/3,M=x-1,I=(k-2)/3,N=I+1,J[Q++]=N,J[Q++]=M,J[Q++]=I,J[Q++]=I,J[Q++]=M,J[Q++]=x,Y+=3,k-=3}if(T.position=new p({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:G}),t.st){var me,Ee,ye=new Float32Array(q/3*2),_e=0;if(w){v/=3,R/=3;var Te=Math.PI/(O+1);Ee=1/(v-O+1),me=1/(R-O+1);var ve,Re=O/2;for(a=Re+1;a<O+1;a++)ve=_.PI_OVER_TWO+Te*a,ye[_e++]=me*(1+Math.cos(ve)),ye[_e++]=.5*(1+Math.sin(ve));for(a=1;a<R-O+1;a++)ye[_e++]=a*me,ye[_e++]=0;for(a=O;a>Re;a--)ve=_.PI_OVER_TWO-a*Te,ye[_e++]=1-me*(1+Math.cos(ve)),ye[_e++]=.5*(1+Math.sin(ve));for(a=Re;a>0;a--)ve=_.PI_OVER_TWO-Te*a,ye[_e++]=1-Ee*(1+Math.cos(ve)),ye[_e++]=.5*(1+Math.sin(ve));for(a=v-O;a>0;a--)ye[_e++]=a*Ee,ye[_e++]=1;for(a=1;a<Re+1;a++)ve=_.PI_OVER_TWO+Te*a,ye[_e++]=Ee*(1+Math.cos(ve)),ye[_e++]=.5*(1+Math.sin(ve))}else{for(v/=3,R/=3,Ee=1/(v-1),me=1/(R-1),a=0;a<R;a++)ye[_e++]=a*me,ye[_e++]=0;for(a=v;a>0;a--)ye[_e++]=(a-1)*Ee,ye[_e++]=1}T.st=new p({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:ye})}return t.normal&&(T.normal=new p({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:H.normals})),t.tangent&&(T.tangent=new p({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:H.tangents})),t.bitangent&&(T.bitangent=new p({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:H.bitangents})),{attributes:T,indices:J}}function w(e,t){if(!(t.normal||t.tangent||t.bitangent||t.st))return e;var n,i,a=e.position.values;(t.normal||t.bitangent)&&(n=e.normal.values,i=e.bitangent.values);var o,u=e.position.values.length/18,c=3*u,l=2*u,f=2*c;if(t.normal||t.bitangent||t.tangent){var h=t.normal?new Float32Array(6*c):void 0,d=t.tangent?new Float32Array(6*c):void 0,p=t.bitangent?new Float32Array(6*c):void 0,m=P,E=U,y=D,_=b,T=L,v=F,R=f;for(o=0;o<c;o+=3){var A=R+f;m=r.fromArray(a,o,m),E=r.fromArray(a,o+c,E),y=r.fromArray(a,(o+3)%c,y),E=r.subtract(E,m,E),y=r.subtract(y,m,y),_=r.normalize(r.cross(E,y,_),_),t.normal&&(s.addAttribute(h,_,A),s.addAttribute(h,_,A+3),s.addAttribute(h,_,R),s.addAttribute(h,_,R+3)),(t.tangent||t.bitangent)&&(v=r.fromArray(n,o,v),t.bitangent&&(s.addAttribute(p,v,A),s.addAttribute(p,v,A+3),s.addAttribute(p,v,R),s.addAttribute(p,v,R+3)),t.tangent&&(T=r.normalize(r.cross(v,_,T),T),s.addAttribute(d,T,A),s.addAttribute(d,T,A+3),s.addAttribute(d,T,R),s.addAttribute(d,T,R+3))),R+=6}if(t.normal){for(h.set(n),o=0;o<c;o+=3)h[o+c]=-n[o],h[o+c+1]=-n[o+1],h[o+c+2]=-n[o+2];e.normal.values=h}else e.normal=void 0;if(t.bitangent?(p.set(i),p.set(i,c),e.bitangent.values=p):e.bitangent=void 0,t.tangent){var g=e.tangent.values;d.set(g),d.set(g,c),e.tangent.values=d}}if(t.st){var S=e.st.values,O=new Float32Array(6*l);O.set(S),O.set(S,l);for(var w=2*l,N=0;N<2;N++){for(O[w++]=S[0],O[w++]=S[1],o=2;o<l;o+=2){var M=S[o],I=S[o+1];O[w++]=M,O[w++]=I,O[w++]=M,O[w++]=I}O[w++]=S[0],O[w++]=S[1]}e.st.values=O}return e}function N(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(var r=3;r<e.length;r+=3){var i=e[r],a=e[r+1],o=e[r+2];n[t++]=i,n[t++]=a,n[t++]=o,n[t++]=i,n[t++]=a,n[t++]=o}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function M(t,n){var r=new A({position:n.position,normal:n.normal||n.bitangent||t.shadowVolume,tangent:n.tangent,bitangent:n.normal||n.bitangent,st:n.st}),i=t.ellipsoid,a=s.computePositions(t),u=O(a,r,i),c=t.height,f=t.extrudedHeight,h=u.attributes,d=u.indices,m=h.position.values,_=m.length,v=new Float64Array(6*_),R=new Float64Array(_);R.set(m);var g=new Float64Array(4*_);m=T.scaleToGeodeticHeight(m,c,i),g=N(m,0,g),R=T.scaleToGeodeticHeight(R,f,i),g=N(R,2*_,g),v.set(m),v.set(R,_),v.set(g,2*_),h.position.values=v,h=w(h,n);var S,M=_/3;if(t.shadowVolume){var I=h.normal.values;_=I.length;var x=new Float32Array(6*_);for(S=0;S<_;S++)I[S]=-I[S];x.set(I,_),x=N(I,4*_,x),h.extrudeDirection=new p({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:x}),n.normal||(h.normal=void 0)}if(l(t.offsetAttribute)){var C=new Uint8Array(6*M);if(t.offsetAttribute===E.TOP)C=e(C,1,0,M),C=e(C,1,2*M,4*M);else{var P=t.offsetAttribute===E.NONE?0:1;C=e(C,P)}h.applyOffset=new p({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}var U=d.length,D=M+M,b=y.createTypedArray(v.length/3,2*U+3*D);b.set(d);var L=U;for(S=0;S<U;S+=3){var F=d[S],B=d[S+1],z=d[S+2];b[L++]=z+M,b[L++]=B+M,b[L++]=F+M}var q,G,V,W;for(S=0;S<D;S+=2)q=S+D,G=q+D,V=q+1,W=G+1,b[L++]=q,b[L++]=G,b[L++]=V,b[L++]=V,b[L++]=G,b[L++]=W;return{attributes:h,indices:b}}function I(e,t,n,i,a,o){var u=r.subtract(t,e,q);r.normalize(u,u);var s=n.geodeticSurfaceNormal(e,G),c=r.cross(u,s,q);r.multiplyByScalar(c,i,c);var l=a.latitude,f=a.longitude,h=o.latitude,d=o.longitude;r.add(e,c,G),n.cartesianToCartographic(G,V);var p=V.latitude,m=V.longitude;l=Math.min(l,p),f=Math.min(f,m),h=Math.max(h,p),d=Math.max(d,m),r.subtract(e,c,G),n.cartesianToCartographic(G,V),p=V.latitude,m=V.longitude,l=Math.min(l,p),f=Math.min(f,m),h=Math.max(h,p),d=Math.max(d,m),a.latitude=l,a.longitude=f,o.latitude=h,o.longitude=d}function x(e,n,i,a,o){e=g(e,n);var s=t(e,r.equalsEpsilon),c=s.length;if(c<2||i<=0)return new R;var f=.5*i;H.latitude=Number.POSITIVE_INFINITY,H.longitude=Number.POSITIVE_INFINITY,Y.latitude=Number.NEGATIVE_INFINITY,Y.longitude=Number.NEGATIVE_INFINITY;var h,d;if(a===u.ROUNDED){var p=s[0];r.subtract(p,s[1],W),r.normalize(W,W),r.multiplyByScalar(W,f,W),r.add(p,W,X),n.cartesianToCartographic(X,V),h=V.latitude,d=V.longitude,H.latitude=Math.min(H.latitude,h),H.longitude=Math.min(H.longitude,d),Y.latitude=Math.max(Y.latitude,h),Y.longitude=Math.max(Y.longitude,d)}for(var m=0;m<c-1;++m)I(s[m],s[m+1],n,f,H,Y);var E=s[c-1];r.subtract(E,s[c-2],W),r.normalize(W,W),r.multiplyByScalar(W,f,W),r.add(E,W,X),I(E,X,n,f,H,Y),a===u.ROUNDED&&(n.cartesianToCartographic(X,V),h=V.latitude,d=V.longitude,H.latitude=Math.min(H.latitude,h),H.longitude=Math.min(H.longitude,d),Y.latitude=Math.max(Y.latitude,h),Y.longitude=Math.max(Y.longitude,d));var y=l(o)?o:new R;return y.north=Y.latitude,y.south=H.latitude,y.east=Y.longitude,y.west=H.longitude,y}function C(e){e=c(e,c.EMPTY_OBJECT);var t=e.positions,n=e.width,i=c(e.height,0),a=c(e.extrudedHeight,i);this._positions=t,this._ellipsoid=h.clone(c(e.ellipsoid,h.WGS84)),this._vertexFormat=A.clone(c(e.vertexFormat,A.DEFAULT)),this._width=n,this._height=Math.max(i,a),this._extrudedHeight=Math.min(i,a),this._cornerType=c(e.cornerType,u.ROUNDED),this._granularity=c(e.granularity,_.RADIANS_PER_DEGREE),this._shadowVolume=c(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*r.packedLength+h.packedLength+A.packedLength+7}var P=new r,U=new r,D=new r,b=new r,L=new r,F=new r,B=new r,z=new r,q=new r,G=new r,V=new i,W=new r,X=new r,H=new i,Y=new i;C.pack=function(e,t,n){n=c(n,0);var i=e._positions,a=i.length;t[n++]=a;for(var o=0;o<a;++o,n+=r.packedLength)r.pack(i[o],t,n);return h.pack(e._ellipsoid,t,n),n+=h.packedLength,A.pack(e._vertexFormat,t,n),n+=A.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=c(e._offsetAttribute,-1),t};var k=h.clone(h.UNIT_SPHERE),j=new A,Z={positions:void 0,ellipsoid:k,vertexFormat:j,width:void 0,height:void 0,extrudedHeight:void 0, -cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};return C.unpack=function(e,t,n){t=c(t,0);for(var i=e[t++],a=new Array(i),o=0;o<i;++o,t+=r.packedLength)a[o]=r.unpack(e,t);var u=h.unpack(e,t,k);t+=h.packedLength;var s=A.unpack(e,t,j);t+=A.packedLength;var f=e[t++],d=e[t++],p=e[t++],m=e[t++],E=e[t++],y=1===e[t++],_=e[t];return l(n)?(n._positions=a,n._ellipsoid=h.clone(u,n._ellipsoid),n._vertexFormat=A.clone(s,n._vertexFormat),n._width=f,n._height=d,n._extrudedHeight=p,n._cornerType=m,n._granularity=E,n._shadowVolume=y,n._offsetAttribute=-1===_?void 0:_,n):(Z.positions=a,Z.width=f,Z.height=d,Z.extrudedHeight=p,Z.cornerType=m,Z.granularity=E,Z.shadowVolume=y,Z.offsetAttribute=-1===_?void 0:_,new C(Z))},C.computeRectangle=function(e,t){e=c(e,c.EMPTY_OBJECT);var n=e.positions,r=e.width;return x(n,c(e.ellipsoid,h.WGS84),r,c(e.cornerType,u.ROUNDED),t)},C.createGeometry=function(i){var a=i._positions,u=i._width,c=i._ellipsoid;a=g(a,c);var f=t(a,r.equalsEpsilon);if(!(f.length<2||u<=0)){var h,m=i._height,y=i._extrudedHeight,R=!_.equalsEpsilon(m,y,0,_.EPSILON2),A=i._vertexFormat,S={ellipsoid:c,positions:f,width:u,cornerType:i._cornerType,granularity:i._granularity,saveAttributes:!0};if(R)S.height=m,S.extrudedHeight=y,S.shadowVolume=i._shadowVolume,S.offsetAttribute=i._offsetAttribute,h=M(S,A);else{if(h=O(s.computePositions(S),A,c),h.attributes.position.values=T.scaleToGeodeticHeight(h.attributes.position.values,m,c),l(i._offsetAttribute)){var w=i._offsetAttribute===E.NONE?0:1,N=h.attributes.position.values.length,I=new Uint8Array(N/3);e(I,w),h.attributes.applyOffset=new p({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:I})}}var x=h.attributes,C=n.fromVertices(x.position.values,void 0,3);return A.position||(h.attributes.position.values=void 0),new d({attributes:x,indices:h.indices,primitiveType:v.TRIANGLES,boundingSphere:C,offsetAttribute:i._offsetAttribute})}},C.createShadowVolume=function(e,t,n){var r=e._granularity,i=e._ellipsoid,a=t(r,i),o=n(r,i);return new C({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:i,granularity:r,extrudedHeight:a,height:o,vertexFormat:A.POSITION_ONLY,shadowVolume:!0})},f(C.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=x(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}}),C}),define("Workers/createCorridorGeometry",["../Core/CorridorGeometry","../Core/defined","../Core/Ellipsoid"],function(e,t,n){"use strict";function r(r,i){return t(i)&&(r=e.unpack(r,i)),r._ellipsoid=n.clone(r._ellipsoid),e.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-TC4O6KYE.js";import{a as ht}from"./chunk-GCC64MRJ.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import{a as _t}from"./chunk-6UMNSGJM.js";import{a as G}from"./chunk-QNEABTP2.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{b as yt}from"./chunk-M243PNMW.js";import{a as Pt}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as Nt}from"./chunk-T53UE6JF.js";import{a as Ct}from"./chunk-RYO6NY7F.js";import{b as Mt,c as Vt,d as x}from"./chunk-2HSPJH3C.js";import{d as St}from"./chunk-T5AUOWE7.js";import{i as Et}from"./chunk-Y5B6Y3WD.js";import{a as F}from"./chunk-6QVIJ7JA.js";import{a as o,b as bt,d as I}from"./chunk-AODSXSC5.js";import{a as st}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as B}from"./chunk-WHQYJFDH.js";import{b as it}from"./chunk-OYWUGDKS.js";import{e as X}from"./chunk-DRYFJEFT.js";var zt=new o,kt=new o,wt=new o,Tt=new o,jt=new o,Ht=new o,at=new o,ft=new o;function Ut(t,e){for(let i=0;i<t.length;i++)t[i]=e.scaleToGeodeticSurface(t[i],t[i]);return t}function Z(t,e,i,l,d,f){let h=t.normals,O=t.tangents,g=t.bitangents,r=o.normalize(o.cross(i,e,at),at);f.normal&&M.addAttribute(h,e,l,d),f.tangent&&M.addAttribute(O,r,l,d),f.bitangent&&M.addAttribute(g,i,l,d)}function Bt(t,e,i){let l=t.positions,d=t.corners,f=t.endPositions,h=t.lefts,O=t.normals,g=new Ct,r,a=0,s=0,n,A=0,u;for(n=0;n<l.length;n+=2)u=l[n].length-3,a+=u,A+=u*2,s+=l[n+1].length-3;for(a+=3,s+=3,n=0;n<d.length;n++){r=d[n];let c=d[n].leftPositions;X(c)?(u=c.length,a+=u,A+=u):(u=d[n].rightPositions.length,s+=u,A+=u)}let b=X(f),p;b&&(p=f[0].length-3,a+=p,s+=p,p/=3,A+=p*6);let R=a+s,m=new Float64Array(R),C=e.normal?new Float32Array(R):void 0,D=e.tangent?new Float32Array(R):void 0,lt=e.bitangent?new Float32Array(R):void 0,z={normals:C,tangents:D,bitangents:lt},y=0,E=R-1,S,V,H,J,P=zt,w=kt,nt,ot,mt=p/2,_=Nt.createTypedArray(R/3,A),T=0;if(b){ot=wt,nt=Tt;let c=f[0];for(P=o.fromArray(O,0,P),w=o.fromArray(h,0,w),n=0;n<mt;n++)ot=o.fromArray(c,(mt-1-n)*3,ot),nt=o.fromArray(c,(mt+n)*3,nt),M.addAttribute(m,nt,y),M.addAttribute(m,ot,void 0,E),Z(z,P,w,y,E,e),V=y/3,J=V+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=J,y+=3,E-=3}let At=0,ut=0,rt=l[At++],q=l[At++];m.set(rt,y),m.set(q,E-q.length+1),w=o.fromArray(h,ut,w);let ct,dt;for(u=q.length-3,n=0;n<u;n+=3)ct=i.geodeticSurfaceNormal(o.fromArray(rt,n,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u-n,ft),ft),P=o.normalize(o.add(ct,dt,P),P),Z(z,P,w,y,E,e),V=y/3,J=V+1,S=(E-2)/3,H=S-1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=J,y+=3,E-=3;for(ct=i.geodeticSurfaceNormal(o.fromArray(rt,u,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u,ft),ft),P=o.normalize(o.add(ct,dt,P),P),ut+=3,n=0;n<d.length;n++){let c;r=d[n];let $=r.leftPositions,v=r.rightPositions,L,U,N=Ht,k=wt,Y=Tt;if(P=o.fromArray(O,ut,P),X($)){for(Z(z,P,w,void 0,E,e),E-=3,L=J,U=H,c=0;c<$.length/3;c++)N=o.fromArray($,c*3,N),_[T++]=L,_[T++]=U-c-1,_[T++]=U-c,M.addAttribute(m,N,void 0,E),k=o.fromArray(m,(U-c-1)*3,k),Y=o.fromArray(m,L*3,Y),w=o.normalize(o.subtract(k,Y,w),w),Z(z,P,w,void 0,E,e),E-=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,U*3,k),N,k),Y=o.subtract(o.fromArray(m,(U-c)*3,Y),N,Y),w=o.normalize(o.add(k,Y,w),w),Z(z,P,w,y,void 0,e),y+=3}else{for(Z(z,P,w,y,void 0,e),y+=3,L=H,U=J,c=0;c<v.length/3;c++)N=o.fromArray(v,c*3,N),_[T++]=L,_[T++]=U+c,_[T++]=U+c+1,M.addAttribute(m,N,y),k=o.fromArray(m,L*3,k),Y=o.fromArray(m,(U+c)*3,Y),w=o.normalize(o.subtract(k,Y,w),w),Z(z,P,w,y,void 0,e),y+=3;N=o.fromArray(m,L*3,N),k=o.subtract(o.fromArray(m,(U+c)*3,k),N,k),Y=o.subtract(o.fromArray(m,U*3,Y),N,Y),w=o.normalize(o.negate(o.add(Y,k,w),w),w),Z(z,P,w,void 0,E,e),E-=3}for(rt=l[At++],q=l[At++],rt.splice(0,3),q.splice(q.length-3,3),m.set(rt,y),m.set(q,E-q.length+1),u=q.length-3,ut+=3,w=o.fromArray(h,ut,w),c=0;c<q.length;c+=3)ct=i.geodeticSurfaceNormal(o.fromArray(rt,c,at),at),dt=i.geodeticSurfaceNormal(o.fromArray(q,u-c,ft),ft),P=o.normalize(o.add(ct,dt,P),P),Z(z,P,w,y,E,e),J=y/3,V=J-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=J,y+=3,E-=3;y-=3,E+=3}if(P=o.fromArray(O,O.length-3,P),Z(z,P,w,y,E,e),b){y+=3,E-=3,ot=wt,nt=Tt;let c=f[1];for(n=0;n<mt;n++)ot=o.fromArray(c,(p-n-1)*3,ot),nt=o.fromArray(c,n*3,nt),M.addAttribute(m,ot,void 0,E),M.addAttribute(m,nt,y),Z(z,P,w,y,E,e),J=y/3,V=J-1,H=(E-2)/3,S=H+1,_[T++]=S,_[T++]=V,_[T++]=H,_[T++]=H,_[T++]=V,_[T++]=J,y+=3,E-=3}if(g.position=new x({componentDatatype:F.DOUBLE,componentsPerAttribute:3,values:m}),e.st){let c=new Float32Array(R/3*2),$,v,L=0;if(b){a/=3,s/=3;let U=Math.PI/(p+1);v=1/(a-p+1),$=1/(s-p+1);let N,k=p/2;for(n=k+1;n<p+1;n++)N=st.PI_OVER_TWO+U*n,c[L++]=$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=1;n<s-p+1;n++)c[L++]=n*$,c[L++]=0;for(n=p;n>k;n--)N=st.PI_OVER_TWO-n*U,c[L++]=1-$*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=k;n>0;n--)N=st.PI_OVER_TWO-U*n,c[L++]=1-v*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N));for(n=a-p;n>0;n--)c[L++]=n*v,c[L++]=1;for(n=1;n<k+1;n++)N=st.PI_OVER_TWO+U*n,c[L++]=v*(1+Math.cos(N)),c[L++]=.5*(1+Math.sin(N))}else{for(a/=3,s/=3,v=1/(a-1),$=1/(s-1),n=0;n<s;n++)c[L++]=n*$,c[L++]=0;for(n=a;n>0;n--)c[L++]=(n-1)*v,c[L++]=1}g.st=new x({componentDatatype:F.FLOAT,componentsPerAttribute:2,values:c})}return e.normal&&(g.normal=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.normals})),e.tangent&&(g.tangent=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.tangents})),e.bitangent&&(g.bitangent=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:z.bitangents})),{attributes:g,indices:_}}function qt(t,e){if(!e.normal&&!e.tangent&&!e.bitangent&&!e.st)return t;let i=t.position.values,l,d;(e.normal||e.bitangent)&&(l=t.normal.values,d=t.bitangent.values);let f=t.position.values.length/18,h=f*3,O=f*2,g=h*2,r;if(e.normal||e.bitangent||e.tangent){let a=e.normal?new Float32Array(h*6):void 0,s=e.tangent?new Float32Array(h*6):void 0,n=e.bitangent?new Float32Array(h*6):void 0,A=zt,u=kt,b=wt,p=Tt,R=jt,m=Ht,C=g;for(r=0;r<h;r+=3){let D=C+g;A=o.fromArray(i,r,A),u=o.fromArray(i,r+h,u),b=o.fromArray(i,(r+3)%h,b),u=o.subtract(u,A,u),b=o.subtract(b,A,b),p=o.normalize(o.cross(u,b,p),p),e.normal&&(M.addAttribute(a,p,D),M.addAttribute(a,p,D+3),M.addAttribute(a,p,C),M.addAttribute(a,p,C+3)),(e.tangent||e.bitangent)&&(m=o.fromArray(l,r,m),e.bitangent&&(M.addAttribute(n,m,D),M.addAttribute(n,m,D+3),M.addAttribute(n,m,C),M.addAttribute(n,m,C+3)),e.tangent&&(R=o.normalize(o.cross(m,p,R),R),M.addAttribute(s,R,D),M.addAttribute(s,R,D+3),M.addAttribute(s,R,C),M.addAttribute(s,R,C+3))),C+=6}if(e.normal){for(a.set(l),r=0;r<h;r+=3)a[r+h]=-l[r],a[r+h+1]=-l[r+1],a[r+h+2]=-l[r+2];t.normal.values=a}else t.normal=void 0;if(e.bitangent?(n.set(d),n.set(d,h),t.bitangent.values=n):t.bitangent=void 0,e.tangent){let D=t.tangent.values;s.set(D),s.set(D,h),t.tangent.values=s}}if(e.st){let a=t.st.values,s=new Float32Array(O*6);s.set(a),s.set(a,O);let n=O*2;for(let A=0;A<2;A++){for(s[n++]=a[0],s[n++]=a[1],r=2;r<O;r+=2){let u=a[r],b=a[r+1];s[n++]=u,s[n++]=b,s[n++]=u,s[n++]=b}s[n++]=a[0],s[n++]=a[1]}t.st.values=s}return t}function Ot(t,e,i){i[e++]=t[0],i[e++]=t[1],i[e++]=t[2];for(let l=3;l<t.length;l+=3){let d=t[l],f=t[l+1],h=t[l+2];i[e++]=d,i[e++]=f,i[e++]=h,i[e++]=d,i[e++]=f,i[e++]=h}return i[e++]=t[0],i[e++]=t[1],i[e++]=t[2],i}function Jt(t,e){let i=new G({position:e.position,normal:e.normal||e.bitangent||t.shadowVolume,tangent:e.tangent,bitangent:e.normal||e.bitangent,st:e.st}),l=t.ellipsoid,d=M.computePositions(t),f=Bt(d,i,l),h=t.height,O=t.extrudedHeight,g=f.attributes,r=f.indices,a=g.position.values,s=a.length,n=new Float64Array(s*6),A=new Float64Array(s);A.set(a);let u=new Float64Array(s*4);a=yt.scaleToGeodeticHeight(a,h,l),u=Ot(a,0,u),A=yt.scaleToGeodeticHeight(A,O,l),u=Ot(A,s*2,u),n.set(a),n.set(A,s),n.set(u,s*2),g.position.values=n,g=qt(g,e);let b,p=s/3;if(t.shadowVolume){let S=g.normal.values;s=S.length;let V=new Float32Array(s*6);for(b=0;b<s;b++)S[b]=-S[b];V.set(S,s),V=Ot(S,s*4,V),g.extrudeDirection=new x({componentDatatype:F.FLOAT,componentsPerAttribute:3,values:V}),e.normal||(g.normal=void 0)}if(X(t.offsetAttribute)){let S=new Uint8Array(p*6);if(t.offsetAttribute===_t.TOP)S=S.fill(1,0,p).fill(1,p*2,p*4);else{let V=t.offsetAttribute===_t.NONE?0:1;S=S.fill(V)}g.applyOffset=new x({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:S})}let R=r.length,m=p+p,C=Nt.createTypedArray(n.length/3,R*2+m*3);C.set(r);let D=R;for(b=0;b<R;b+=3){let S=r[b],V=r[b+1],H=r[b+2];C[D++]=H+p,C[D++]=V+p,C[D++]=S+p}let lt,z,y,E;for(b=0;b<m;b+=2)lt=b+m,z=lt+m,y=lt+1,E=z+1,C[D++]=lt,C[D++]=z,C[D++]=y,C[D++]=y,C[D++]=z,C[D++]=E;return{attributes:g,indices:C}}var Dt=new o,gt=new o,Q=new bt;function Rt(t,e,i,l,d,f){let h=o.subtract(e,t,Dt);o.normalize(h,h);let O=i.geodeticSurfaceNormal(t,gt),g=o.cross(h,O,Dt);o.multiplyByScalar(g,l,g);let r=d.latitude,a=d.longitude,s=f.latitude,n=f.longitude;o.add(t,g,gt),i.cartesianToCartographic(gt,Q);let A=Q.latitude,u=Q.longitude;r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),o.subtract(t,g,gt),i.cartesianToCartographic(gt,Q),A=Q.latitude,u=Q.longitude,r=Math.min(r,A),a=Math.min(a,u),s=Math.max(s,A),n=Math.max(n,u),d.latitude=r,d.longitude=a,f.latitude=s,f.longitude=n}var K=new o,pt=new o,W=new bt,j=new bt;function Yt(t,e,i,l,d){t=Ut(t,e);let f=Pt(t,o.equalsEpsilon),h=f.length;if(h<2||i<=0)return new Et;let O=i*.5;W.latitude=Number.POSITIVE_INFINITY,W.longitude=Number.POSITIVE_INFINITY,j.latitude=Number.NEGATIVE_INFINITY,j.longitude=Number.NEGATIVE_INFINITY;let g,r;if(l===ht.ROUNDED){let n=f[0];o.subtract(n,f[1],K),o.normalize(K,K),o.multiplyByScalar(K,O,K),o.add(n,K,pt),e.cartesianToCartographic(pt,Q),g=Q.latitude,r=Q.longitude,W.latitude=Math.min(W.latitude,g),W.longitude=Math.min(W.longitude,r),j.latitude=Math.max(j.latitude,g),j.longitude=Math.max(j.longitude,r)}for(let n=0;n<h-1;++n)Rt(f[n],f[n+1],e,O,W,j);let a=f[h-1];o.subtract(a,f[h-2],K),o.normalize(K,K),o.multiplyByScalar(K,O,K),o.add(a,K,pt),Rt(a,pt,e,O,W,j),l===ht.ROUNDED&&(e.cartesianToCartographic(pt,Q),g=Q.latitude,r=Q.longitude,W.latitude=Math.min(W.latitude,g),W.longitude=Math.min(W.longitude,r),j.latitude=Math.max(j.latitude,g),j.longitude=Math.max(j.longitude,r));let s=X(d)?d:new Et;return s.north=j.latitude,s.south=W.latitude,s.east=j.longitude,s.west=W.longitude,s}function et(t){t=B(t,B.EMPTY_OBJECT);let e=t.positions,i=t.width;it.defined("options.positions",e),it.defined("options.width",i);let l=B(t.height,0),d=B(t.extrudedHeight,l);this._positions=e,this._ellipsoid=I.clone(B(t.ellipsoid,I.default)),this._vertexFormat=G.clone(B(t.vertexFormat,G.DEFAULT)),this._width=i,this._height=Math.max(l,d),this._extrudedHeight=Math.min(l,d),this._cornerType=B(t.cornerType,ht.ROUNDED),this._granularity=B(t.granularity,st.RADIANS_PER_DEGREE),this._shadowVolume=B(t.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=t.offsetAttribute,this._rectangle=void 0,this.packedLength=1+e.length*o.packedLength+I.packedLength+G.packedLength+7}et.pack=function(t,e,i){it.defined("value",t),it.defined("array",e),i=B(i,0);let l=t._positions,d=l.length;e[i++]=d;for(let f=0;f<d;++f,i+=o.packedLength)o.pack(l[f],e,i);return I.pack(t._ellipsoid,e,i),i+=I.packedLength,G.pack(t._vertexFormat,e,i),i+=G.packedLength,e[i++]=t._width,e[i++]=t._height,e[i++]=t._extrudedHeight,e[i++]=t._cornerType,e[i++]=t._granularity,e[i++]=t._shadowVolume?1:0,e[i]=B(t._offsetAttribute,-1),e};var It=I.clone(I.UNIT_SPHERE),Wt=new G,tt={positions:void 0,ellipsoid:It,vertexFormat:Wt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};et.unpack=function(t,e,i){it.defined("array",t),e=B(e,0);let l=t[e++],d=new Array(l);for(let u=0;u<l;++u,e+=o.packedLength)d[u]=o.unpack(t,e);let f=I.unpack(t,e,It);e+=I.packedLength;let h=G.unpack(t,e,Wt);e+=G.packedLength;let O=t[e++],g=t[e++],r=t[e++],a=t[e++],s=t[e++],n=t[e++]===1,A=t[e];return X(i)?(i._positions=d,i._ellipsoid=I.clone(f,i._ellipsoid),i._vertexFormat=G.clone(h,i._vertexFormat),i._width=O,i._height=g,i._extrudedHeight=r,i._cornerType=a,i._granularity=s,i._shadowVolume=n,i._offsetAttribute=A===-1?void 0:A,i):(tt.positions=d,tt.width=O,tt.height=g,tt.extrudedHeight=r,tt.cornerType=a,tt.granularity=s,tt.shadowVolume=n,tt.offsetAttribute=A===-1?void 0:A,new et(tt))};et.computeRectangle=function(t,e){t=B(t,B.EMPTY_OBJECT);let i=t.positions,l=t.width;it.defined("options.positions",i),it.defined("options.width",l);let d=B(t.ellipsoid,I.default),f=B(t.cornerType,ht.ROUNDED);return Yt(i,d,l,f,e)};et.createGeometry=function(t){let e=t._positions,i=t._width,l=t._ellipsoid;e=Ut(e,l);let d=Pt(e,o.equalsEpsilon);if(d.length<2||i<=0)return;let f=t._height,h=t._extrudedHeight,O=!st.equalsEpsilon(f,h,0,st.EPSILON2),g=t._vertexFormat,r={ellipsoid:l,positions:d,width:i,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!0},a;if(O)r.height=f,r.extrudedHeight=h,r.shadowVolume=t._shadowVolume,r.offsetAttribute=t._offsetAttribute,a=Jt(r,g);else{let A=M.computePositions(r);if(a=Bt(A,g,l),a.attributes.position.values=yt.scaleToGeodeticHeight(a.attributes.position.values,f,l),X(t._offsetAttribute)){let u=t._offsetAttribute===_t.NONE?0:1,b=a.attributes.position.values.length,p=new Uint8Array(b/3).fill(u);a.attributes.applyOffset=new x({componentDatatype:F.UNSIGNED_BYTE,componentsPerAttribute:1,values:p})}}let s=a.attributes,n=St.fromVertices(s.position.values,void 0,3);return g.position||(a.attributes.position.values=void 0),new Vt({attributes:s,indices:a.indices,primitiveType:Mt.TRIANGLES,boundingSphere:n,offsetAttribute:t._offsetAttribute})};et.createShadowVolume=function(t,e,i){let l=t._granularity,d=t._ellipsoid,f=e(l,d),h=i(l,d);return new et({positions:t._positions,width:t._width,cornerType:t._cornerType,ellipsoid:d,granularity:l,extrudedHeight:f,height:h,vertexFormat:G.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(et.prototype,{rectangle:{get:function(){return X(this._rectangle)||(this._rectangle=Yt(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var Lt=et;function Gt(t,e){return X(e)&&(t=Lt.unpack(t,e)),t._ellipsoid=I.clone(t._ellipsoid),Lt.createGeometry(t)}var Ae=Gt;export{Ae as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js index a195e2450..5b2636236 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCorridorOutlineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,E=i.z,m=l*l*d*d,y=f*f*p*p,_=h*h*E*E,T=m+y+_,R=Math.sqrt(1/T),v=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(v,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=v.x*A*2,O.y=v.y*g*2,O.z=v.z*S*2;var M,N,w,I,x,C,P,U,D,L,b,F=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{F-=B,w=1/(1+F*A),I=1/(1+F*g),x=1/(1+F*S),C=w*w,P=I*I,U=x*x,D=C*w,L=P*I,b=U*x,M=m*C+y*P+_*U-1,N=m*D*A+y*L*g+_*b*S;B=M/(-2*N)}while(Math.abs(M)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*I,c.z=h*x,c):new e(l*w,f*I,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,E=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,y=o(t,p,E,m,c);if(r(y)){var _=e.multiplyComponents(y,E,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),R=Math.atan2(_.y,_.x),v=Math.asin(_.z),A=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=v,i.height=A,i):new u(R,v,A)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,E=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(E[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(m-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,E=2*(i-h),m=2*(a+l),y=2*(i+h),_=-n+u-f+d,T=2*(c-o),R=2*(a-l),v=2*(c+o),A=-n-u+f+d;return r(t)?(t[0]=p,t[1]=y,t[2]=R,t[3]=E,t[4]=_,t[5]=v,t[6]=m,t[7]=T,t[8]=A,t):new s(p,E,m,y,_,T,R,v,A)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,E=-c*i+a*o*u,m=-o,y=c*n,_=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=E,t[8]=_,t):new s(l,f,h,d,p,E,m,y,_)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],m=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,y),s.multiply(h,m,h),s.multiply(y,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n -},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,E,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(E,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,m=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-m+_,R=2*(c-y),v=2*(f+E),A=2*(c+y),g=-s+d-m+_,S=2*(p-h),O=2*(f-E),M=2*(p+h),N=-s-d+m+_;return r[0]=T*a,r[1]=A*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=g*o,r[6]=M*o,r[7]=0,r[8]=v*u,r[9]=S*u,r[10]=N*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,m=f.z,y=d.x,_=d.y,T=d.z,R=r.x,v=r.y,A=r.z,g=u*-R+s*-v+c*-A,S=y*-R+_*-v+T*-A,O=p*R+E*v+m*A;return i(n)?(n[0]=u,n[1]=y,n[2]=-p,n[3]=0,n[4]=s,n[5]=_,n[6]=-E,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,y,_,T,S,-p,-E,-m,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,E=a+c,m=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=m,i[14]=y,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var E=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],m=e[13],y=e[14],_=e[15],T=t[0],R=t[1],v=t[2],A=t[3],g=t[4],S=t[5],O=t[6],M=t[7],N=t[8],w=t[9],I=t[10],x=t[11],C=t[12],P=t[13],U=t[14],D=t[15],L=r*T+u*R+f*v+E*A,b=i*T+s*R+h*v+m*A,F=a*T+c*R+d*v+y*A,B=o*T+l*R+p*v+_*A,z=r*g+u*S+f*O+E*M,q=i*g+s*S+h*O+m*M,G=a*g+c*S+d*O+y*M,V=o*g+l*S+p*O+_*M,W=r*N+u*w+f*I+E*x,X=i*N+s*w+h*I+m*x,H=a*N+c*w+d*I+y*x,Y=o*N+l*w+p*I+_*x,k=r*C+u*P+f*U+E*D,j=i*C+s*P+h*U+m*D,Z=a*C+c*P+d*U+y*D,K=o*C+l*P+p*U+_*D;return n[0]=L,n[1]=b,n[2]=F,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],m=t[1],y=t[2],_=t[4],T=t[5],R=t[6],v=t[8],A=t[9],g=t[10],S=t[12],O=t[13],M=t[14],N=r*E+o*m+c*y,w=i*E+u*m+l*y,I=a*E+s*m+f*y,x=r*_+o*T+c*R,C=i*_+u*T+l*R,P=a*_+s*T+f*R,U=r*v+o*A+c*g,D=i*v+u*A+l*g,L=a*v+s*A+f*g,b=r*S+o*O+c*M+h,F=i*S+u*O+l*M+d,B=a*S+s*O+f*M+p;return n[0]=N,n[1]=w,n[2]=I,n[3]=0,n[4]=x,n[5]=C,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=b,n[13]=F,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],m=t[4],y=t[5],_=t[6],T=t[7],R=t[8],v=r*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*E+o*m+c*y,O=i*E+u*m+l*y,M=a*E+s*m+f*y,N=r*_+o*T+c*R,w=i*_+u*T+l*R,I=a*_+s*T+f*R;return n[0]=v,n[1]=A,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=M,n[7]=0,n[8]=N,n[9]=w,n[10]=I,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var y=new e;l.multiplyByUniformScale=function(e,t,n){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,R=new t,v=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],m=e[6],y=e[10],A=e[14],g=e[3],S=e[7],O=e[11],M=e[15],N=y*M,w=A*O,I=m*M,x=A*S,C=m*O,P=y*S,U=E*M,D=A*g,L=E*O,b=y*g,F=E*S,B=m*g,z=N*h+x*d+C*p-(w*h+I*d+P*p),q=w*f+U*d+b*p-(N*f+D*d+L*p),G=I*f+D*h+F*p-(x*f+U*h+B*p),V=P*f+L*h+B*d-(C*f+b*h+F*d),W=w*i+I*a+P*o-(N*i+x*a+C*o),X=N*r+D*a+L*o-(w*r+U*a+b*o),H=x*r+U*i+B*o-(I*r+D*i+F*o),Y=C*r+b*i+F*a-(P*r+L*i+B*a);N=a*p,w=o*d,I=i*p,x=o*h,C=i*d,P=a*h,U=r*p,D=o*f,L=r*d,b=a*f,F=r*h,B=i*f;var k=N*S+x*O+C*M-(w*S+I*O+P*M),j=w*g+U*O+b*M-(N*g+D*O+L*M),Z=I*g+D*S+F*M-(x*g+U*S+B*M),K=P*g+L*S+B*O-(C*g+b*S+F*O),J=I*y+P*A+w*m-(C*A+N*m+x*y),Q=L*A+N*E+D*y-(U*y+b*A+w*E),$=U*m+B*A+x*E-(F*A+I*E+D*m),ee=F*y+C*E+b*m-(L*m+B*y+P*E),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),v))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,E=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var m=t.cartesianToCartographic(e[p]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var y=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)E.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,E=new e,m=new e,y=new e,_=new e,T=new e,R=new e,v=new e,A=new e,g=new e,S=new e,O=new e,M=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,E),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var M=a.x,N=a.y,w=a.z;M<o.x&&e.clone(a,o),M>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var I=e.magnitudeSquared(e.subtract(c,o,v)),x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=o,U=c,D=I;x>D&&(D=x,P=u,U=l),C>D&&(D=C,P=s,U=f);var L=A;L.x=.5*(P.x+U.x),L.y=.5*(P.y+U.y),L.z=.5*(P.z+U.z);var b=e.magnitudeSquared(e.subtract(U,L,v)),F=Math.sqrt(b),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,v));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,L,v));if(W>b){var X=Math.sqrt(W);F=.5*(F+X),b=F*F;var H=X-F;L.x=(F*L.x+H*a.x)/X,L.y=(F*L.y+H*a.y)/X,L.z=(F*L.z+H*a.z)/X}}return F<G?(e.clone(L,n.center),n.radius=F):(e.clone(q,n.center),n.radius=G),n};var N=new o,w=new e,I=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,N),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=n.project(x,w),c=n.project(C,I),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,m),h=e.clone(u,y),M=e.clone(u,_),N=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var I=t[s]+n.x,x=t[s+1]+n.y,C=t[s+2]+n.z;u.x=I,u.y=x,u.z=C,I<c.x&&e.clone(u,c),I>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>M.y&&e.clone(u,M),C<f.z&&e.clone(u,f),C>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,v)),U=e.magnitudeSquared(e.subtract(M,l,v)),D=e.magnitudeSquared(e.subtract(N,f,v)),L=c,b=h,F=P;U>F&&(F=U,L=l,b=M),D>F&&(F=D,L=f,b=N);var B=A;B.x=.5*(L.x+b.x),B.y=.5*(L.y+b.y),B.z=.5*(L.z+b.z);var z=e.magnitudeSquared(e.subtract(b,B,v)),q=Math.sqrt(z),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=M.y,V.z=N.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,v));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,v));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),M=t.length;for(o=0;o<M;o+=3){var N=t[o]+n[o],w=t[o+1]+n[o+1],I=t[o+2]+n[o+2];a.x=N,a.y=w,a.z=I,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),I<c.z&&e.clone(a,c),I>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=e.magnitudeSquared(e.subtract(h,c,v)),U=u,D=l,L=x;C>L&&(L=C,U=s,D=f),P>L&&(L=P,U=c,D=h);var b=A;b.x=.5*(U.x+D.x),b.y=.5*(U.y+D.y),b.z=.5*(U.z+D.z);var F=e.magnitudeSquared(e.subtract(D,b,v)),B=Math.sqrt(F),z=g;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<M;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,v));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,b,v));if(X>F){var H=Math.sqrt(X);B=.5*(B+H),F=B*B;var Y=H-B;b.x=(B*b.x+Y*a.x)/H,b.y=(B*b.y+Y*a.y)/H,b.z=(B*b.z+Y*a.z)/H}}return B<V?(e.clone(b,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,b=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,b);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var F=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var m=p.length,y=0;y<m;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);n.project(T,_)}i=d.fromPoints(p,i),o=i.center;var R=o.x,v=o.y,A=o.z;return o.x=A,o.y=R,o.z=v,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return M*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{ -get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,E(l,e),f=l=v,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,m,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(n,_)),f=[],l=_-c+1,h=[],d=o(),c)for(m=d.progress,E=function(e){h.push(e),--l||(p=E=y,d.reject(h))},p=function(e){f.push(e),--c||(p=E=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,_).then(t,n,r)}function f(){return h(arguments,_)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function E(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function y(){}function _(e){return e}var T,R,v;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(v,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(v,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,M=o(e[1]))}return O}function s(){return u()&&M}function c(){if(!t(N)&&(N=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(N=!0,w=o(e[1]))}return N}function l(){return c()&&w}function f(){if(!t(I)){I=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(I=!0,x=o(e[1]),x.isNightly=!!e[2])}return I}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function m(){return E()&&D}function y(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(L=!0,b=o(e[1]))}return L}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function T(){return y()&&b}function R(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function v(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function A(){return v()?z:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,M,N,w,I,x,C,P,U,D,L,b,F,B,z,q;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,E())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:m,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:v,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CornerType",["./freezeObject"],function(e){"use strict";return e({ROUNDED:0,MITERED:1,BEVELED:2})}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),E=t/4,m=E*E,y=m*E,_=m*m,T=1+E-3*m/4+5*y/4-175*_/64,R=1-E+15*m/8-35*y/8,v=1-3*E+35*m/4,A=1-5*E,g=T*l-R*Math.sin(2*l)*E/2-v*Math.sin(4*l)*m/16-A*Math.sin(6*l)*y/48-5*Math.sin(8*l)*_/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=E,S.u4Over16=m,S.u6Over64=y,S.u8Over256=_,S.a0=T,S.a1=R,S.a2=v,S.a3=A,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,E=a-r,m=Math.atan((1-p)*Math.tan(i)),y=Math.atan((1-p)*Math.tan(o)),_=Math.cos(m),T=Math.sin(m),R=Math.cos(y),v=Math.sin(y),A=_*R,g=_*v,S=T*v,O=T*R,M=E,N=u.TWO_PI,w=Math.cos(M),I=Math.sin(M);do{w=Math.cos(M),I=Math.sin(M);var x=g-O*w;f=Math.sqrt(R*R*I*I+x*x),c=S+A*w,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=A*I/f,h=1-C*C),N=M,d=c-2*S/h,isNaN(d)&&(d=0),M=E+l(p,C,h,s,f,c,d)}while(Math.abs(M-N)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),U=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,L=d*d,b=D*f*(d+D*(c*(2*L-1)-D*d*(4*f*f-3)*(4*L-3)/6)/4),F=n*U*(s-b),B=Math.atan2(R*I,g-O*w),z=Math.atan2(_*I,g*w-O);e._distance=F,e._startHeading=B,e._endHeading=z,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,E),p),e.normalize(a.cartographicToCartesian(i,E),E);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,E=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,E=a*p,m=r.u8Over256,y=r.u2Over4,_=r.u6Over64,T=r.u4Over16,R=2*E*m*o/3+a*(1-y+7*T/4-15*_/4+579*m/64-(T-15*_/4+187*m/16)*o-(5*_/4-115*m/16)*u-29*m*s/16)+(y/2-T+71*_/32-85*m/16)*c+(5*T/16-5*_/4+383*m/96)*f-p*((_-11*m/2)*c+5*m*f/2)+(29*_/96-29*m/16)*h+539*m*d/1536,v=Math.asin(Math.sin(R)*r.cosineAlpha),A=Math.atan(r.a/r.b*Math.tan(v));R-=r.sigma;var g=Math.cos(2*r.sigma+R),S=Math.sin(R),O=Math.cos(R),M=r.cosineU*O,N=r.sineU*S,w=Math.atan2(S*r.sineHeading,M-N*r.cosineHeading),I=w-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,R,S,O,g);return i(n)?(n.longitude=this._start.longitude+I,n.latitude=A,n.height=0,n):new t(this._start.longitude+I,A,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),E=Math.cos(2*r),m=Math.sin(4*r),y=Math.cos(4*r),_=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),v=Math.cos(8*r),A=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*E+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*y+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*v+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,_),y),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function E(e,n,r,a,o,u){var h,d,p,E=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var m=f(o,e.latitude),y=f(o,d);p=Math.tan(n)*(y-m),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-E*T*T)}p=r/_,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function m(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var y=new e,_=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t) -;var y=E(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,y,c):(o.setEndPoints(e,y),o)},m.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return E(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var E=r*Math.sin(c),m=(1+E)/(1-E);p=2*Math.atan(h*Math.pow(m/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},m.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},m}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,E=o*c-u*s,m=u*c-d,y=4*p*m-E*E;if(y<0){var _,T,R;h*f>=l*d?(_=o,T=p,R=-2*u*p+o*E):(_=c,T=m,R=-c*E+2*s*m);var v=R<0?-1:1,A=-v*Math.abs(_)*Math.sqrt(-y);a=-R+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-T/S;return i=T<=0?S+O:-R/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var M=p,N=-2*u*p+o*E,w=m,I=-c*E+2*s*m,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-N)/3);i=2*Math.sqrt(-M);var U=Math.cos(P);a=i*U;var D=i*(-U/2-C*Math.sin(P)),L=a+D>2*u?a-u:D-u,b=o,F=L/b;P=Math.abs(Math.atan2(c*x,-I)/3),i=2*Math.sqrt(-w),U=Math.cos(P),a=i*U,D=i*(-U/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=b*z,V=-L*z-b*B,W=L*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var E,m=p[0],y=p[1];if(m>=0&&y>=0){var _=Math.sqrt(m),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(m>=0&&y<0)return E=Math.sqrt(m),[h-E,h+E];if(m<0&&y>=0)return E=Math.sqrt(y),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),v=(s+d-c/R)/2,A=(s+d+c/R)/2,g=r.computeRealRoots(1,R,v),S=r.computeRealRoots(1,-R,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,E,m=d[0],y=i-m,_=y*y,T=t/2,R=y/2,v=_-4*o,A=_+4*Math.abs(o),g=c-4*m,S=c+4*Math.abs(m);if(m<0||v*S<g*A){var O=Math.sqrt(g);p=O/2,E=0===O?0:(t*R-a)/O}else{var M=Math.sqrt(v);p=0===M?0:(t*R-a)/M,E=M/2}var N,w;0===T&&0===p?(N=0,w=0):n.sign(T)===n.sign(p)?(N=T+p,w=m/N):(w=T-p,N=m/w);var I,x;0===R&&0===E?(I=0,x=0):n.sign(R)===n.sign(E)?(I=R+E,x=o/I):(x=R-E,I=o/x);var C=r.computeRealRoots(1,N,I),P=r.computeRealRoots(1,w,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,E=f(h,d,p,A);if(r(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),m=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,E,m),0===l.length)return T;var R=l[0],v=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-v)),T.push(new e(i,a*R,a*v)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));T.push(new e(i,a*A,a*-g)),T.push(new e(i,a*A,a*g))}return T}var S=_*_,O=y*y,M=p*p,N=_*y,w=M+O,I=2*(E*p+N),x=2*m*p+E*E-O+S,C=2*(m*E-N),P=m*m-S;if(0===w&&0===I&&0===x&&0===C)return T;l=c.computeRealRoots(w,I,x,C,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var L,b=l[D],F=b*b,B=Math.max(1-F,0),z=Math.sqrt(B);L=o.sign(p)===o.sign(m)?d(p*F+m,E*b,o.EPSILON12):o.sign(m)===o.sign(E*b)?d(p*F,E*b+m,o.EPSILON12):d(p*F+E*b,m,o.EPSILON12);var q=d(y*b,_,o.EPSILON15),G=L*q;G<0?T.push(new e(i,a*b,a*z)):G>0?T.push(new e(i,a*b,a*-z)):0!==z?(T.push(new e(i,a*b,a*-z)),T.push(new e(i,a*b,a*z)),++D):T.push(new e(i,a*b,a*z))}return T}var E={};E.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var m=new e,y=new e,_=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,E=e.subtract(i,r,m),v=e.subtract(a,r,y),A=e.cross(p,v,_),g=e.dot(E,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,E,R),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(v,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(v,c)*S}return h},E.rayTriangle=function(t,n,i,a,o,u){var s=E.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var v=new l;E.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=v;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};E.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;E.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;E.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,m=r/s;return E<m?new a(E,m):{start:m,stop:E}}var y=Math.sqrt(r/i);return new a(y,y)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var M=new e,N=new e,w=new e,I=new e,x=new e,C=new u,P=new u,U=new u,D=new u,L=new u,b=new u,F=new u,B=new e,z=new e,q=new t;E.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,M);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,M),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,I),d=e.normalize(e.cross(h,f,N),N),E=e.normalize(e.cross(f,d,w),w),m=C;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=E.x,m[7]=E.y,m[8]=E.z;var y=u.transpose(m,P),_=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=L;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var v,A,g=u.multiply(u.multiply(y,T,b),R,b),S=u.multiply(u.multiply(g,_,F),m,F),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,M),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){v=u.multiplyByVector(_,u.multiplyByVector(m,G[H],B),B);var Y=e.normalize(e.subtract(v,i,I),I),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(v,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,I))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,n.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=M;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,x),l=i.scaleToGeodeticSurface(n,C),f=m.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,N),p=i.cartesianToCartographic(l,w),E=d(f,a,o);P.setEndPoints(h,p);var y=P.surfaceDistance/f,_=s;h.height=a;var T=i.cartographicToCartesian(h,I);e.pack(T,u,_),_+=3;for(var R=1;R<f;R++){var v=P.interpolateUsingSurfaceDistance(R*y,w);v.height=E[R],T=i.cartographicToCartesian(v,I),e.pack(T,u,_),_+=3}return _}function E(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,x),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,N),p=i.cartesianToCartographic(f,w),E=m.numberOfPointsRhumbLine(h,p,r),y=d(E,a,o);U.ellipsoid.equals(i)||(U=new u(void 0,void 0,i)),U.setEndPoints(h,p);var _=U.surfaceDistance/E,T=c;h.height=a;var R=i.cartographicToCartesian(h,I);e.pack(R,s,T),T+=3;for(var v=1;v<E;v++){var A=U.interpolateUsingSurfaceDistance(v*_,w);A.height=y[v],R=i.cartographicToCartesian(A,I),e.pack(R,s,T),T+=3}return T}var m={};m.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},m.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var y=new t;m.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,y).height}return r};var _=new f,T=new e,R=new e,v=new h(e.UNIT_X,0),A=new e,g=new h(e.UNIT_X,0),S=new e,O=new e,M=[],N=new t,w=new t,I=new e,x=new e,C=new e,P=new o,U=new u;m.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,_),c=f.multiplyByPoint(u,e.ZERO,T),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,R),R),d=h.fromPointNormal(c,l,v),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,A),A),E=h.fromPointNormal(c,p,g),m=1;a.push(e.clone(t[0]));for(var y=a[0],M=t.length,N=1;N<M;++N){var w=t[N];if(h.getPointDistance(E,y)<0||h.getPointDistance(E,w)<0){var I=s.lineSegmentPlane(y,w,d,S);if(r(I)){var x=e.multiplyByScalar(l,5e-9,O);h.getPointDistance(d,y)<0&&e.negate(x,x),a.push(e.add(I,x,new e)),o.push(m+1),e.negate(x,x),a.push(e.add(I,x,new e)),m=1}}a.push(e.clone(t[N])),m++,y=w}o.push(m)}return{positions:a,lengths:o}},m.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],x);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,I);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var E=t.minDistance;if(!r(E)){var y=n(t.granularity,l.RADIANS_PER_DEGREE);E=l.chordLength(y,u.maximumRadius)}var _,T=0;for(_=0;_<o-1;_++)T+=m.numberOfPoints(i[_],i[_+1],E);var R=3*(T+1),v=new Array(R),A=0;for(_=0;_<o-1;_++){A=p(i[_],i[_+1],E,u,f?s[_]:s,f?s[_+1]:s,v,A)}M.length=0;var g=i[o-1],S=u.cartesianToCartographic(g,N);S.height=f?s[o-1]:s;var O=u.cartographicToCartesian(S,I);return e.pack(O,v,R-3),v};var D=new t,L=new t;return m.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],x);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,I);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var y,_,T=n(i.granularity,l.RADIANS_PER_DEGREE),R=0,v=s.cartesianToCartographic(o[0],D);for(y=0;y<u-1;y++)_=s.cartesianToCartographic(o[y+1],L),R+=m.numberOfPointsRhumbLine(v,_,T),v=t.clone(_,D);var A=3*(R+1),g=new Array(A),S=0;for(y=0;y<u-1;y++){S=E(o[y],o[y+1],T,s,h?f[y]:f,h?f[y+1]:f,g,S)}M.length=0;var O=o[u-1],w=s.cartesianToCartographic(O,N);w.height=h?f[u-1]:f;var C=s.cartographicToCartesian(w,I);return e.pack(C,g,A-3),g},m.generateCartesianArc=function(t){for(var n=m.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m.generateCartesianRhumbArc=function(t){for(var n=m.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,E=d.y,m=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(E,o),c=Math.max(E,c),u=Math.min(m,u),l=Math.max(m,l)}var y=n.minimum;y.x=i,y.y=o,y.z=u;var _=n.maximum;return _.x=s,_.y=c,_.z=l,n.center=e.midpoint(y,_,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,E,m,y;if("%%"==e)return"%";for(var _=!1,T="",R=!1,v=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":A=s.charAt(S+1);break;case"0":R=!0;break;case"#":v=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(y),_,c,f,R,A);case"c":return u(String.fromCharCode(+y),_,c,f,R);case"b":return o(y,2,v,_,c,f,R);case"o":return o(y,8,v,_,c,f,R);case"x":return o(y,16,v,_,c,f,R);case"X":return o(y,16,v,_,c,f,R).toUpperCase();case"u":return o(y,10,v,_,c,f,R);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[E](f),a(y,p,_,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var n=E.leapSeconds,r=t(n,_,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){E.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}E.addSeconds(e,i,e)}function h(e,n){_.julianDate=e;var r=E.leapSeconds,i=t(r,_,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-r[0].offset,n);if(i>=r.length)return E.addSeconds(e,-r[i-1].offset,n);var a=E.secondsDifference(r[i].julianDate,e);return 0===a?E.addSeconds(e,-r[i].offset,n):a<=1?void 0:E.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,v=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,M=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;E.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,_=0,S=0,w=u[0],I=u[1];if(null!==(u=w.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var x;if(null!==(u=w.match(v)))n=+u[1],x=+u[2],a=o(n);else if(null!==(u=w.match(A))){n=+u[1];var C=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));x=7*C+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(I)){u=I.match(N),null!==u?(h=+u[1],m=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=I.match(M),null!==u?(h=+u[1],m=+u[2],_=60*+(u[3]||0),D=4):null!==(u=I.match(O))&&(h=+u[1],m=60*+(u[2]||0),D=3));var L=u[D],b=+u[D+1],F=+(u[D+2]||0);switch(L){case"+":h-=b,m-=F;break;case"-":h+=b,m+=F;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var B=60===_;for(B&&_--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:y[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:y[s-1],l+=i;var z=p(n,s,l,h,m,_,S);return r(t)?(d(z[0],z[1],t),f(t)):t=new E(z[0],z[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var w=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(E.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var v=0|T,A=(T-v)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),n&&(v+=1),r(t)?(t.year=y,t.month=m,t.day=p,t.hour=_,t.minute=R,t.second=v,t.millisecond=A,t.isLeapSecond=n,t):new a(y,m,p,_,R,v,A,n)},E.toDate=function(e){var t=E.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},E.toIso8601=function(t,n){var i=E.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var n=e.dayNumber-t.dayNumber -;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(E.secondsDifference(e,t))<=n},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){_.julianDate=e;var n=E.leapSeconds,r=t(n,_,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},E.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},E.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},E.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},E.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--v.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++v.numberOfFailedRequests,--v.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=E(e);return e.state=l.ACTIVE,S.push(e),++v.numberOfActiveRequests,++v.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(m(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++v.numberOfCancelledRequests,e.deferred.reject(),t&&(--v.numberOfActiveRequests,--O[e.serverKey],++v.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===v.numberOfActiveRequests&&v.lastNumberOfActiveRequests>0&&(v.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+v.numberOfAttemptedRequests),v.numberOfAttemptedRequests=0),v.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+v.numberOfCancelledRequests),v.numberOfCancelledRequests=0),v.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+v.numberOfCancelledActiveRequests),v.numberOfCancelledActiveRequests=0),v.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+v.numberOfFailedRequests),v.numberOfFailedRequests=0)),v.lastNumberOfActiveRequests=v.numberOfActiveRequests)}var v={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},M="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return v}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();T(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(M);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++v.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())}for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},v.numberOfAttemptedRequests=0,v.numberOfActiveRequests=0,v.numberOfCancelledRequests=0,v.numberOfCancelledActiveRequests=0,v.numberOfFailedRequests=0,v.numberOfActiveRequestsEver=0,v.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_,T,R,v,A,g,S,O){"use strict";function M(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?x(a,t._queryParameters,r):a,e.query=void 0}function N(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=_(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function I(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);M(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function b(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function F(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new v(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new v)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);M(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&N(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);M(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(I(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),I(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;I(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void F(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(b(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new v(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new v)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return y(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1, -this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,R=0,v=m.length;R<v;R+=e._columnCount){var A=m[R+i],g=m[R+E],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(y.push(O),T){if(g!==_&&r(_)){var M=o.leapSeconds,N=t(M,O,d);if(N<0){var w=new u(O,g);M.splice(~N,0,w)}}_=g}}}function E(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function y(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return E(e,n,i,s,u),u;if(r.equals(l))return E(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],y=n[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=y:y-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),E=p||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,E,m=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)y[p]=m-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=y[E]);T[p]*=_[p];var v=3*(s+p);n.x+=T[p]*d[v++],n.y+=T[p]*d[v++],n.s+=T[p]*d[v]}return n}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)n=Math.sqrt(E+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=m[y],T=m[_];n=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var R=f;R[y]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*n,R[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*n,R[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,n){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var m=new e,y=new e,_=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,R,_),_.w<0&&s.negate(_,_),s.computeAxis(_,m);var u=s.computeAngle(_);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var v=new s;s.lerp=function(e,t,n,r){return v=s.multiplyByScalar(t,n,v),r=s.multiplyByScalar(e,1-n,r),s.add(v,r,r)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,M=new e,N=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,N);s.multiply(a,r,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,M);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(n,N,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var I=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var b=L+1,F=2*b+1;C[L]=1/(b*F),P[L]=b/F}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,I);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_,T,R){"use strict";var v={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},M=new n,N=new n,w=new n;v.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=A[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new _),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(g[e],0,M),"east"!==e&&"west"!==e&&n.multiplyByScalar(M,c,M),n.unpack(g[t],0,N),"east"!==t&&"west"!==t&&n.multiplyByScalar(N,c,N),n.unpack(g[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),M=O[e],N=O[t],w=O[i]}return s[0]=M.x,s[1]=M.y,s[2]=M.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},v.eastNorthUpToFixedFrame=v.localFrameToFixedFrameGenerator("east","north"),v.northEastDownToFixedFrame=v.localFrameToFixedFrameGenerator("north","east"),v.northUpEastToFixedFrame=v.localFrameToFixedFrameGenerator("north","up"),v.northWestUpToFixedFrame=v.localFrameToFixedFrameGenerator("north","west");var I=new T,x=new n(1,1,1),C=new _;v.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,v.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,I),s=_.fromTranslationQuaternionRotationScale(n.ZERO,u,x,C);return a=i(e,r,a),_.multiply(a,s,a)};var P=new _,U=new y;v.headingPitchRollQuaternion=function(e,t,n,r,i){var a=v.headingPitchRollToFixedFrame(e,t,n,r,P),o=_.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,b=new _,F=new _,B=new y,z=new T;v.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,v.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(r(a,t,b),b),c=_.setScale(e,D,F);c=_.setTranslation(c,n.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=m.TWO_PI/86400,G=new E;v.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},v.iau2006XysData=new d,v.earthOrientationParameters=c.NONE;v.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=v.iau2006XysData.preload(n,r,i,a),u=v.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},v.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var n=v.computeFixedToIcrfMatrix(e,t);if(u(n))return y.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,H=new y;v.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var n=v.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=v.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+n.ut1MinusUtc,_=d-2451545,T=p/R.SECONDS_PER_DAY,A=.779057273264+T+.00273781191135448*(_+T);A=A%1*m.TWO_PI;var g=y.fromRotationZ(A,H),S=y.multiply(h,g,X),O=Math.cos(n.xPoleWander),M=Math.cos(n.yPoleWander),N=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),I=r-2451545+i/R.SECONDS_PER_DAY;I/=36525;var x=-47e-6*I*m.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),U=H;return U[0]=O*C,U[1]=O*P,U[2]=N,U[3]=-M*P+w*N*C,U[4]=M*C+w*N*P,U[5]=-w*O,U[6]=-w*P-M*N*C,U[7]=w*C-M*N*P,U[8]=M*O,y.multiply(S,U,t)}}};var Y=new r;v.pointToWindowCoordinates=function(e,t,n,r){return r=v.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},v.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;v.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new y,te=new _,ne=new _;return v.basisTo2D=function(e,t,r){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=v.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,ne),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,r);return _.multiply(K,f,r),_.setTranslation(r,u,r),r},v.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=v.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,r),_.multiply(c,r,r),r},v}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function E(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,m)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,m));var i=n.fromCartesian4(f.getColumn(r,2,m));this._plane=h.fromPointNormal(e,i)}var m=new r;u(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var y=new e;E.fromPoints=function(t,n){return new E(e.fromPoints(t,y).center,n)};var _=new d,T=new n;E.prototype.projectPointOntoPlane=function(e,r){var i=_;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},E.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},E.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=_;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},E.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return E.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},E.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},E}),define("Core/PolylineVolumeGeometryLibrary",["./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./CornerType","./EllipsoidTangentPlane","./Math","./Matrix3","./Matrix4","./PolylinePipeline","./Quaternion","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++){var i=e[r];U=t.cartesianToCartographic(i,U),n[r]=U.height,e[r]=t.scaleToGeodeticSurface(i,i)}return n}function d(e,n,r,i){var a,o=e[0],u=e[1],s=t.angleBetween(o,u),c=Math.ceil(s/i),l=new Array(c);if(n===r){for(a=0;a<c;a++)l[a]=n;return l.push(r),l}var f=r-n,h=f/c;for(a=1;a<c;a++){var d=n+a*h;l[a]=d}return l[0]=n,l.push(r),l}function p(n,r,i,o){var u=new a(i,o),s=u.projectPointOntoPlane(t.add(i,n,D),D),c=u.projectPointOntoPlane(t.add(i,r,L),L),l=e.angleBetween(s,c);return c.x*s.y-c.y*s.x>=0?-l:l}function E(e,n,r,i,a,o,c,l){var h=G,d=V;F=f.eastNorthUpToFixedFrame(e,a,F),h=s.multiplyByPointAsVector(F,b,h),h=t.normalize(h,h);var E=p(h,n,e,a);z=u.fromRotationZ(E,z),W.z=o,F=s.multiplyTransformation(F,s.fromRotationTranslation(z,W,B),F);var m=q;m[0]=c;for(var y=0;y<l;y++)for(var _=0;_<r.length;_+=3)d=t.fromArray(r,_,d),d=u.multiplyByVector(m,d,d),d=s.multiplyByPoint(F,d,d),i.push(d.x,d.y,d.z);return i}function m(e,n,r,i,a,o,u){for(var s=0;s<e.length;s+=3){i=E(t.fromArray(e,s,X),n,r,i,a,o[s/3],u,1)}return i}function y(e,t){var n=e.length,r=new Array(6*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=e[0];r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o;for(var s=1;s<n;s++){u=e[s];var c=u.x-a,l=u.y-o;r[i++]=c,r[i++]=0,r[i++]=l,r[i++]=c,r[i++]=0,r[i++]=l}return u=e[0],r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o,r}function _(e,t){for(var n=e.length,r=new Array(3*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=0;u<n;u++)r[i++]=e[u].x-a,r[i++]=0,r[i++]=e[u].y-o;return r}function T(e,n,r,a,s,c,f,h,d,p){var m,y=t.angleBetween(t.subtract(n,e,x),t.subtract(r,e,C)),_=a===i.BEVELED?0:Math.ceil(y/o.toRadians(5));m=s?u.fromQuaternion(l.fromAxisAngle(t.negate(e,x),y/(_+1),H),k):u.fromQuaternion(l.fromAxisAngle(e,y/(_+1),H),k);var T,R;if(n=t.clone(n,Y),_>0)for(var v=p?2:1,A=0;A<_;A++)n=u.multiplyByVector(m,n,n),T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(n,C),f=E(R,T,h,f,c,d,1,v);else T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(n,C),f=E(R,T,h,f,c,d,1,1),r=t.clone(r,Y),T=t.subtract(r,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(r,C),f=E(R,T,h,f,c,d,1,1);return f}var R=[new t,new t],v=new t,A=new t,g=new t,S=new t,O=new t,M=new t,N=new t,w=new t,I=new t,x=new t,C=new t,P={},U=new r,D=new t,L=new t,b=new t(-1,0,0),F=new s,B=new s,z=new u,q=u.IDENTITY.clone(),G=new t,V=new n,W=new t,X=new t,H=new l,Y=new t,k=new u;P.removeDuplicatesFromShape=function(t){for(var n=t.length,r=[],i=n-1,a=0;a<n;i=a++){var o=t[i],u=t[a];e.equals(o,u)||r.push(u)}return r},P.angleIsGreaterThanPi=function(e,n,r,i){var o=new a(r,i),u=o.projectPointOntoPlane(t.add(r,e,D),D),s=o.projectPointOntoPlane(t.add(r,n,L),L);return s.x*u.y-s.y*u.x>=0};var j=new t,Z=new t;return P.computePositions=function(e,n,r,a,u){var s=a._ellipsoid,l=h(e,s),f=a._granularity,p=a._cornerType,C=u?y(n,r):_(n,r),U=u?_(n,r):void 0,D=r.height/2,L=r.width/2,b=e.length,F=[],B=u?[]:void 0,z=v,q=A,G=g,V=S,W=O,X=M,H=N,Y=w,k=I,K=e[0],J=e[1];V=s.geodeticSurfaceNormal(K,V),z=t.subtract(J,K,z),z=t.normalize(z,z),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y);var Q=l[0],$=l[1];u&&(B=E(K,Y,U,B,s,Q+D,1,1)),k=t.clone(K,k),K=J,q=t.negate(z,q);for(var ee,te,ne=1;ne<b-1;ne++){var re=u?2:1;J=e[ne+1],z=t.subtract(J,K,z),z=t.normalize(z,z),G=t.add(z,q,G),G=t.normalize(G,G),V=s.geodeticSurfaceNormal(K,V);var ie=t.multiplyByScalar(V,t.dot(z,V),j);t.subtract(z,ie,ie),t.normalize(ie,ie);var ae=t.multiplyByScalar(V,t.dot(q,V),Z);t.subtract(q,ae,ae),t.normalize(ae,ae);if(!o.equalsEpsilon(Math.abs(t.dot(ie,ae)),1,o.EPSILON7)){G=t.cross(G,V,G),G=t.cross(V,G,G),G=t.normalize(G,G);var oe=1/Math.max(.25,t.magnitude(t.cross(G,q,x))),ue=P.angleIsGreaterThanPi(z,q,K,s);ue?(W=t.add(K,t.multiplyByScalar(G,oe*L,G),W),X=t.add(W,t.multiplyByScalar(Y,L,X),X),R[0]=t.clone(k,R[0]),R[1]=t.clone(X,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),F=m(te,Y,C,F,s,ee,1),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,L,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,F,C,$+D,u):(G=t.negate(G,G),F=E(K,G,C,F,s,$+D,oe,re)),k=t.clone(H,k)):(W=t.add(K,t.multiplyByScalar(G,oe*L,G),W),X=t.add(W,t.multiplyByScalar(Y,-L,X),X),R[0]=t.clone(k,R[0]),R[1]=t.clone(X,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),F=m(te,Y,C,F,s,ee,1),Y=t.cross(V,z,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,-L,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,F,C,$+D,u):F=E(K,G,C,F,s,$+D,oe,re),k=t.clone(H,k)),q=t.negate(z,q)}else F=E(k,Y,C,F,s,Q+D,1,1),k=K;Q=$,$=l[ne+1],K=J}R[0]=t.clone(k,R[0]),R[1]=t.clone(K,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),F=m(te,Y,C,F,s,ee,1),u&&(B=E(K,Y,U,B,s,$+D,1,1)),b=F.length;var se=u?b+B.length:b,ce=new Float64Array(se);return ce.set(F),u&&ce.set(B,b),ce},P}),define("Core/CorridorGeometryLibrary",["./Cartesian3","./CornerType","./defined","./Math","./Matrix3","./PolylinePipeline","./PolylineVolumeGeometryLibrary","./Quaternion"],function(e,t,n,r,i,a,o,u){"use strict";function s(n,a,o,s,c){var l=e.angleBetween(e.subtract(a,n,d),e.subtract(o,n,p)),f=s===t.BEVELED?1:Math.ceil(l/r.toRadians(5))+1,h=3*f,E=new Array(h);E[h-3]=o.x,E[h-2]=o.y,E[h-1]=o.z;var m;m=c?i.fromQuaternion(u.fromAxisAngle(e.negate(n,d),l/f,w),I):i.fromQuaternion(u.fromAxisAngle(n,l/f,w),I);var y=0;a=e.clone(a,d);for(var _=0;_<f;_++)a=i.multiplyByVector(m,a,a),E[y++]=a.x,E[y++]=a.y,E[y++]=a.z;return E}function c(n){var r=_,i=T,a=R,o=n[1];i=e.fromArray(n[1],o.length-3,i),a=e.fromArray(n[0],0,a),r=e.midpoint(i,a,r);var u=s(r,i,a,t.ROUNDED,!1),c=n.length-1,l=n[c-1];return o=n[c],i=e.fromArray(l,l.length-3,i),a=e.fromArray(o,0,a),r=e.midpoint(i,a,r),[u,s(r,i,a,t.ROUNDED,!1)]}function l(t,n,r,i){var a=d;return i?a=e.add(t,n,a):(n=e.negate(n,n),a=e.add(t,n,a)),[a.x,a.y,a.z,r.x,r.y,r.z]}function f(t,n,r,i){for(var a=new Array(t.length),o=new Array(t.length),u=e.multiplyByScalar(n,r,d),s=e.negate(u,p),c=0,l=t.length-1,f=0;f<t.length;f+=3){var h=e.fromArray(t,f,E),y=e.add(h,s,m);a[c++]=y.x,a[c++]=y.y,a[c++]=y.z;var _=e.add(h,u,m);o[l--]=_.z,o[l--]=_.y,o[l--]=_.x}return i.push(a,o),i}var h={},d=new e,p=new e,E=new e,m=new e,y=[new e,new e],_=new e,T=new e,R=new e,v=new e,A=new e,g=new e,S=new e,O=new e,M=new e,N=new e,w=new u,I=new i;h.addAttribute=function(e,t,r,i){var a=t.x,o=t.y,u=t.z;n(r)&&(e[r]=a,e[r+1]=o,e[r+2]=u),n(i)&&(e[i]=u,e[i-1]=o,e[i-2]=a)};var x=new e,C=new e;return h.computePositions=function(n){var i=n.granularity,u=n.positions,h=n.ellipsoid,p=n.width/2,E=n.cornerType,m=n.saveAttributes,w=_,I=T,P=R,U=v,D=A,L=g,b=S,F=O,B=M,z=N,q=[],G=m?[]:void 0,V=m?[]:void 0,W=u[0],X=u[1];I=e.normalize(e.subtract(X,W,I),I),w=h.geodeticSurfaceNormal(W,w),U=e.normalize(e.cross(w,I,U),U),m&&(G.push(U.x,U.y,U.z),V.push(w.x,w.y,w.z)), -b=e.clone(W,b),W=X,P=e.negate(I,P);var H,Y,k=[],j=u.length;for(Y=1;Y<j-1;Y++){w=h.geodeticSurfaceNormal(W,w),X=u[Y+1],I=e.normalize(e.subtract(X,W,I),I),D=e.normalize(e.add(I,P,D),D);var Z=e.multiplyByScalar(w,e.dot(I,w),x);e.subtract(I,Z,Z),e.normalize(Z,Z);var K=e.multiplyByScalar(w,e.dot(P,w),C);e.subtract(P,K,K),e.normalize(K,K);if(!r.equalsEpsilon(Math.abs(e.dot(Z,K)),1,r.EPSILON7)){D=e.cross(D,w,D),D=e.cross(w,D,D),D=e.normalize(D,D);var J=p/Math.max(.25,e.magnitude(e.cross(D,P,d))),Q=o.angleIsGreaterThanPi(I,P,W,h);D=e.multiplyByScalar(D,J,D),Q?(F=e.add(W,D,F),z=e.add(F,e.multiplyByScalar(U,p,z),z),B=e.add(F,e.multiplyByScalar(U,2*p,B),B),y[0]=e.clone(b,y[0]),y[1]=e.clone(z,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),m&&(G.push(U.x,U.y,U.z),V.push(w.x,w.y,w.z)),L=e.clone(B,L),U=e.normalize(e.cross(w,I,U),U),B=e.add(F,e.multiplyByScalar(U,2*p,B),B),b=e.add(F,e.multiplyByScalar(U,p,b),b),E===t.ROUNDED||E===t.BEVELED?k.push({leftPositions:s(F,L,B,E,Q)}):k.push({leftPositions:l(W,e.negate(D,D),B,Q)})):(B=e.add(W,D,B),z=e.add(B,e.negate(e.multiplyByScalar(U,p,z),z),z),F=e.add(B,e.negate(e.multiplyByScalar(U,2*p,F),F),F),y[0]=e.clone(b,y[0]),y[1]=e.clone(z,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),m&&(G.push(U.x,U.y,U.z),V.push(w.x,w.y,w.z)),L=e.clone(F,L),U=e.normalize(e.cross(w,I,U),U),F=e.add(B,e.negate(e.multiplyByScalar(U,2*p,F),F),F),b=e.add(B,e.negate(e.multiplyByScalar(U,p,b),b),b),E===t.ROUNDED||E===t.BEVELED?k.push({rightPositions:s(B,L,F,E,Q)}):k.push({rightPositions:l(W,D,F,Q)})),P=e.negate(I,P)}W=X}w=h.geodeticSurfaceNormal(W,w),y[0]=e.clone(b,y[0]),y[1]=e.clone(W,y[1]),H=a.generateArc({positions:y,granularity:i,ellipsoid:h}),q=f(H,U,p,q),m&&(G.push(U.x,U.y,U.z),V.push(w.x,w.y,w.z));var $;return E===t.ROUNDED&&($=c(q)),{positions:q,corners:k,lefts:G,normals:V,endPositions:$}},h}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var y=new n,_=new t,T=new f,R=[new n,new n,new n],v=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,M=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,y),h=n.toCartesian(s,a,_),m=E.eastNorthUpToFixedFrame(h,a,T),N=f.inverse(m,T),w=v,I=R;I[0].longitude=o.west,I[0].latitude=o.south,I[1].longitude=o.west,I[1].latitude=o.north,I[2].longitude=o.east,I[2].latitude=o.south;var x=g;for(u=0;u<3;u++)n.toCartesian(I[u],a,x),x=f.multiplyByPointAsVector(N,x,x),w[u].x=x.x,w[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,b=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)x=f.multiplyByPointAsVector(N,r[u],x),x=l.multiplyByVector(P,x,x),D=Math.min(D,x.x),L=Math.min(L,x.y),b=Math.max(b,x.x),F=Math.max(F,x.y);var B=c.fromRotation(i,M),z=A;z[0].x=D,z[0].y=L,z[1].x=D,z[1].y=F,z[2].x=b,z[2].y=L;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,E,m;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var y=i;y<o;y+=i)p=e[y],E=e[y+1],p<l&&(l=p),E<f&&(f=E),p>h&&(h=p),E>d&&(d=E);m=Math.max(h-l,d-f)}return r(u,c,i,l,f,m),c}function t(e,t,n,r,i){var a,o;if(i===w(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(M(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==_(r.prev,r,r.next))r=r.next;else{if(M(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,E,m=e;e.prev!==e.next;)if(p=e.prev,E=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(E.i/s),M(e),e=E.next,m=E.next;else if((e=E)===m){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(_(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(m(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&R(i,r,r.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),M(r),M(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&y(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(E(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&m(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&A(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function E(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function m(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function y(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!v(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function _(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||_(e,t,n)>0!=_(e,t,r)>0&&_(n,r,e)>0!=_(n,r,t)>0}function v(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function A(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function g(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new N(e.i,e.x,e.y),r=new N(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new N(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function M(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function N(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function w(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(w(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(w(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var E=new n,m=new n,y={};y.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},y.computeWindingOrder2D=function(e){return y.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},y.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var _=new n,T=new n,R=new n,v=new n,A=new n,g=new n,S=new n;y.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,E=new Array(3*p),m=0;for(s=0;s<p;s++){var y=t[s];E[m++]=y.x,E[m++]=y.y,E[m++]=y.z}for(var O=[],M={},N=e.maximumRadius,w=h.chordLength(i,N),I=w*w;c.length>0;){var x,C,P=c.pop(),U=c.pop(),D=c.pop(),L=n.fromArray(E,3*D,_),b=n.fromArray(E,3*U,T),F=n.fromArray(E,3*P,R),B=n.multiplyByScalar(n.normalize(L,v),N,v),z=n.multiplyByScalar(n.normalize(b,A),N,A),q=n.multiplyByScalar(n.normalize(F,g),N,g),G=n.magnitudeSquared(n.subtract(B,z,S)),V=n.magnitudeSquared(n.subtract(z,q,S)),W=n.magnitudeSquared(n.subtract(q,B,S)),X=Math.max(G,V,W);X>I?G===X?(x=Math.min(D,U)+" "+Math.max(D,U),s=M[x],u(s)||(C=n.add(L,b,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(D,s,P),c.push(s,U,P)):V===X?(x=Math.min(U,P)+" "+Math.max(U,P),s=M[x],u(s)||(C=n.add(b,F,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(U,s,D),c.push(s,P,D)):W===X&&(x=Math.min(P,D)+" "+Math.max(P,D),s=M[x],u(s)||(C=n.add(F,L,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,M=new r,N=new r,w=new r;return y.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),E=t.length,m=new Array(3*E),y=0;for(s=0;s<E;s++){var v=t[s];m[y++]=v.x,m[y++]=v.y,m[y++]=v.z}for(var A=[],g={},I=e.maximumRadius,x=h.chordLength(i,I),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),L=p.pop(),b=p.pop(),F=n.fromArray(m,3*b,_),B=n.fromArray(m,3*L,T),z=n.fromArray(m,3*D,R),q=e.cartesianToCartographic(F,O),G=e.cartesianToCartographic(B,M),V=e.cartesianToCartographic(z,N);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;U.setEndPoints(V,q);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(W,X,Z);K>x?W===K?(H=Math.min(b,L)+" "+Math.max(b,L),s=g[H],u(s)||(Y=C.interpolateUsingFraction(.5,w),k=.5*(q.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(b,s,D),p.push(s,L,D)):X===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=g[H],u(s)||(Y=P.interpolateUsingFraction(.5,w),k=.5*(G.height+V.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(L,s,b),p.push(s,D,b)):Z===K&&(H=Math.min(D,b)+" "+Math.max(D,b),s=g[H],u(s)||(Y=U.interpolateUsingFraction(.5,w),k=.5*(V.height+q.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(D,s,L),p.push(s,b,L)):(A.push(b),A.push(L),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:A,primitiveType:d.TRIANGLES})},y.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=E,c=m;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},y}),define("Core/CorridorOutlineGeometry",["./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./CornerType","./CorridorGeometryLibrary","./defaultValue","./defined","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_){"use strict";function T(e,t){for(var n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function R(e,t){var n,i,s,l=[],f=e.positions,p=e.corners,m=e.endPositions,y=new d,_=0,T=0,R=0;for(i=0;i<f.length;i+=2)s=f[i].length-3,_+=s,R+=s/3*4,T+=f[i+1].length-3;for(_+=3,T+=3,i=0;i<p.length;i++){n=p[i];var v=p[i].leftPositions;c(v)?(s=v.length,_+=s,R+=s/3*2):(s=p[i].rightPositions.length,T+=s,R+=s/3*2)}var A,M=c(m);M&&(A=m[0].length-3,_+=A,T+=A,A/=3,R+=4*A);var N,w,I,x,C,P,U=_+T,D=new Float64Array(U),L=0,b=U-1,F=A/2,B=E.createTypedArray(U/3,R+4),z=0;if(B[z++]=L/3,B[z++]=(b-2)/3,M){l.push(L/3),P=g,C=S;var q=m[0];for(i=0;i<F;i++)P=r.fromArray(q,3*(F-1-i),P),C=r.fromArray(q,3*(F+i),C),u.addAttribute(D,C,L),u.addAttribute(D,P,void 0,b),w=L/3,x=w+1,N=(b-2)/3,I=N-1,B[z++]=N,B[z++]=I,B[z++]=w,B[z++]=x,L+=3,b-=3}var G=0,V=f[G++],W=f[G++];for(D.set(V,L),D.set(W,b-W.length+1),s=W.length-3,l.push(L/3,(b-2)/3),i=0;i<s;i+=3)w=L/3,x=w+1,N=(b-2)/3,I=N-1,B[z++]=N,B[z++]=I,B[z++]=w,B[z++]=x,L+=3,b-=3;for(i=0;i<p.length;i++){var X;n=p[i];var H,Y=n.leftPositions,k=n.rightPositions,j=O;if(c(Y)){for(b-=3,H=I,l.push(x),X=0;X<Y.length/3;X++)j=r.fromArray(Y,3*X,j),B[z++]=H-X-1,B[z++]=H-X,u.addAttribute(D,j,void 0,b),b-=3;l.push(H-Math.floor(Y.length/6)),t===o.BEVELED&&l.push((b-2)/3+1),L+=3}else{for(L+=3,H=x,l.push(I),X=0;X<k.length/3;X++)j=r.fromArray(k,3*X,j),B[z++]=H+X,B[z++]=H+X+1,u.addAttribute(D,j,L),L+=3;l.push(H+Math.floor(k.length/6)),t===o.BEVELED&&l.push(L/3-1),b-=3}for(V=f[G++],W=f[G++],V.splice(0,3),W.splice(W.length-3,3),D.set(V,L),D.set(W,b-W.length+1),s=W.length-3,X=0;X<W.length;X+=3)x=L/3,w=x-1,I=(b-2)/3,N=I+1,B[z++]=N,B[z++]=I,B[z++]=w,B[z++]=x,L+=3,b-=3;L-=3,b+=3,l.push(L/3,(b-2)/3)}if(M){L+=3,b-=3,P=g,C=S;var Z=m[1];for(i=0;i<F;i++)P=r.fromArray(Z,3*(A-i-1),P),C=r.fromArray(Z,3*i,C),u.addAttribute(D,P,void 0,b),u.addAttribute(D,C,L),x=L/3,w=x-1,I=(b-2)/3,N=I+1,B[z++]=N,B[z++]=I,B[z++]=w,B[z++]=x,L+=3,b-=3;l.push(L/3)}else l.push(L/3,(b-2)/3);return B[z++]=L/3,B[z++]=(b-2)/3,y.position=new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:D}),{attributes:y,indices:B,wallIndices:l}}function v(t){var n=t.ellipsoid,r=u.computePositions(t),i=R(r,t.cornerType),o=i.wallIndices,s=t.height,l=t.extrudedHeight,f=i.attributes,d=i.indices,m=f.position.values,_=m.length,T=new Float64Array(_);T.set(m);var v=new Float64Array(2*_);if(m=y.scaleToGeodeticHeight(m,s,n),T=y.scaleToGeodeticHeight(T,l,n),v.set(m),v.set(T,_),f.position.values=v,_/=3,c(t.offsetAttribute)){var A=new Uint8Array(2*_);if(t.offsetAttribute===p.TOP)A=e(A,1,0,_);else{var g=t.offsetAttribute===p.NONE?0:1;A=e(A,g)}f.applyOffset=new h({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}var S,O=d.length,M=E.createTypedArray(v.length/3,2*(O+o.length));M.set(d);var N=O;for(S=0;S<O;S+=2){var w=d[S],I=d[S+1];M[N++]=w+_,M[N++]=I+_}var x,C;for(S=0;S<o.length;S++)x=o[S],C=x+_,M[N++]=x,M[N++]=C;return{attributes:f,indices:M}}function A(e){e=s(e,s.EMPTY_OBJECT);var t=e.positions,n=e.width,i=s(e.height,0),a=s(e.extrudedHeight,i);this._positions=t,this._ellipsoid=l.clone(s(e.ellipsoid,l.WGS84)),this._width=n,this._height=Math.max(i,a),this._extrudedHeight=Math.min(i,a),this._cornerType=s(e.cornerType,o.ROUNDED),this._granularity=s(e.granularity,m.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*r.packedLength+l.packedLength+6}var g=new r,S=new r,O=new r;A.pack=function(e,t,n){n=s(n,0);var i=e._positions,a=i.length;t[n++]=a;for(var o=0;o<a;++o,n+=r.packedLength)r.pack(i[o],t,n);return l.pack(e._ellipsoid,t,n),n+=l.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=s(e._offsetAttribute,-1),t};var M=l.clone(l.UNIT_SPHERE),N={positions:void 0,ellipsoid:M,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};return A.unpack=function(e,t,n){t=s(t,0);for(var i=e[t++],a=new Array(i),o=0;o<i;++o,t+=r.packedLength)a[o]=r.unpack(e,t);var u=l.unpack(e,t,M);t+=l.packedLength;var f=e[t++],h=e[t++],d=e[t++],p=e[t++],E=e[t++],m=e[t];return c(n)?(n._positions=a,n._ellipsoid=l.clone(u,n._ellipsoid),n._width=f,n._height=h,n._extrudedHeight=d,n._cornerType=p,n._granularity=E,n._offsetAttribute=-1===m?void 0:m,n):(N.positions=a,N.width=f,N.height=h,N.extrudedHeight=d,N.cornerType=p,N.granularity=E,N.offsetAttribute=-1===m?void 0:m,new A(N))},A.createGeometry=function(i){var o=i._positions,s=i._width,l=i._ellipsoid;o=T(o,l);var d=t(o,r.equalsEpsilon);if(!(d.length<2||s<=0)){var E,A=i._height,g=i._extrudedHeight,S=!m.equalsEpsilon(A,g,0,m.EPSILON2),O={ellipsoid:l,positions:d,width:s,cornerType:i._cornerType,granularity:i._granularity,saveAttributes:!1};if(S)O.height=A,O.extrudedHeight=g,O.offsetAttribute=i._offsetAttribute,E=v(O);else{if(E=R(u.computePositions(O),O.cornerType),E.attributes.position.values=y.scaleToGeodeticHeight(E.attributes.position.values,A,l),c(i._offsetAttribute)){var M=E.attributes.position.values.length,N=new Uint8Array(M/3),w=i._offsetAttribute===p.NONE?0:1;e(N,w),E.attributes.applyOffset=new h({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}}var I=E.attributes,x=n.fromVertices(I.position.values,void 0,3);return new f({attributes:I,indices:E.indices,primitiveType:_.LINES,boundingSphere:x,offsetAttribute:i._offsetAttribute})}},A}),define("Workers/createCorridorOutlineGeometry",["../Core/CorridorOutlineGeometry","../Core/defined","../Core/Ellipsoid"],function(e,t,n){"use strict";function r(r,i){return t(i)&&(r=e.unpack(r,i)),r._ellipsoid=n.clone(r._ellipsoid),e.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as S}from"./chunk-TC4O6KYE.js";import{a as W}from"./chunk-GCC64MRJ.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import{a as K}from"./chunk-6UMNSGJM.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{b as Q}from"./chunk-M243PNMW.js";import{a as it}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as Z}from"./chunk-T53UE6JF.js";import{a as et}from"./chunk-RYO6NY7F.js";import{b as I,c as tt,d as J}from"./chunk-2HSPJH3C.js";import{d as x}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as z}from"./chunk-6QVIJ7JA.js";import{a as A,d as P}from"./chunk-AODSXSC5.js";import{a as q}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as H}from"./chunk-WHQYJFDH.js";import{b as M}from"./chunk-OYWUGDKS.js";import{e as C}from"./chunk-DRYFJEFT.js";var ot=new A,nt=new A,rt=new A;function ft(t,i){for(let e=0;e<t.length;e++)t[e]=i.scaleToGeodeticSurface(t[e],t[e]);return t}function st(t,i){let e=[],l=t.positions,h=t.corners,m=t.endPositions,D=new et,y,u=0,p=0,o,g=0,d;for(o=0;o<l.length;o+=2)d=l[o].length-3,u+=d,g+=d/3*4,p+=l[o+1].length-3;for(u+=3,p+=3,o=0;o<h.length;o++){y=h[o];let c=h[o].leftPositions;C(c)?(d=c.length,u+=d,g+=d/3*2):(d=h[o].rightPositions.length,p+=d,g+=d/3*2)}let _=C(m),w;_&&(w=m[0].length-3,u+=w,p+=w,w/=3,g+=w*4);let T=u+p,b=new Float64Array(T),n=0,s=T-1,a,E,L,k,U,O,j=w/2,r=Z.createTypedArray(T/3,g+4),f=0;if(r[f++]=n/3,r[f++]=(s-2)/3,_){e.push(n/3),O=ot,U=nt;let c=m[0];for(o=0;o<j;o++)O=A.fromArray(c,(j-1-o)*3,O),U=A.fromArray(c,(j+o)*3,U),S.addAttribute(b,U,n),S.addAttribute(b,O,void 0,s),E=n/3,k=E+1,a=(s-2)/3,L=a-1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3}let G=0,F=l[G++],N=l[G++];for(b.set(F,n),b.set(N,s-N.length+1),d=N.length-3,e.push(n/3,(s-2)/3),o=0;o<d;o+=3)E=n/3,k=E+1,a=(s-2)/3,L=a-1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;for(o=0;o<h.length;o++){let c;y=h[o];let Y=y.leftPositions,X=y.rightPositions,v,B=rt;if(C(Y)){for(s-=3,v=L,e.push(k),c=0;c<Y.length/3;c++)B=A.fromArray(Y,c*3,B),r[f++]=v-c-1,r[f++]=v-c,S.addAttribute(b,B,void 0,s),s-=3;e.push(v-Math.floor(Y.length/6)),i===W.BEVELED&&e.push((s-2)/3+1),n+=3}else{for(n+=3,v=k,e.push(L),c=0;c<X.length/3;c++)B=A.fromArray(X,c*3,B),r[f++]=v+c,r[f++]=v+c+1,S.addAttribute(b,B,n),n+=3;e.push(v+Math.floor(X.length/6)),i===W.BEVELED&&e.push(n/3-1),s-=3}for(F=l[G++],N=l[G++],F.splice(0,3),N.splice(N.length-3,3),b.set(F,n),b.set(N,s-N.length+1),d=N.length-3,c=0;c<N.length;c+=3)k=n/3,E=k-1,L=(s-2)/3,a=L+1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;n-=3,s+=3,e.push(n/3,(s-2)/3)}if(_){n+=3,s-=3,O=ot,U=nt;let c=m[1];for(o=0;o<j;o++)O=A.fromArray(c,(w-o-1)*3,O),U=A.fromArray(c,o*3,U),S.addAttribute(b,O,void 0,s),S.addAttribute(b,U,n),k=n/3,E=k-1,L=(s-2)/3,a=L+1,r[f++]=a,r[f++]=L,r[f++]=E,r[f++]=k,n+=3,s-=3;e.push(n/3)}else e.push(n/3,(s-2)/3);return r[f++]=n/3,r[f++]=(s-2)/3,D.position=new J({componentDatatype:z.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:D,indices:r,wallIndices:e}}function ct(t){let i=t.ellipsoid,e=S.computePositions(t),l=st(e,t.cornerType),h=l.wallIndices,m=t.height,D=t.extrudedHeight,y=l.attributes,u=l.indices,p=y.position.values,o=p.length,g=new Float64Array(o);g.set(p);let d=new Float64Array(o*2);if(p=Q.scaleToGeodeticHeight(p,m,i),g=Q.scaleToGeodeticHeight(g,D,i),d.set(p),d.set(g,o),y.position.values=d,o/=3,C(t.offsetAttribute)){let a=new Uint8Array(o*2);if(t.offsetAttribute===K.TOP)a=a.fill(1,0,o);else{let E=t.offsetAttribute===K.NONE?0:1;a=a.fill(E)}y.applyOffset=new J({componentDatatype:z.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}let _,w=u.length,T=Z.createTypedArray(d.length/3,(w+h.length)*2);T.set(u);let b=w;for(_=0;_<w;_+=2){let a=u[_],E=u[_+1];T[b++]=a+o,T[b++]=E+o}let n,s;for(_=0;_<h.length;_++)n=h[_],s=n+o,T[b++]=n,T[b++]=s;return{attributes:y,indices:T}}function V(t){t=H(t,H.EMPTY_OBJECT);let i=t.positions,e=t.width;M.typeOf.object("options.positions",i),M.typeOf.number("options.width",e);let l=H(t.height,0),h=H(t.extrudedHeight,l);this._positions=i,this._ellipsoid=P.clone(H(t.ellipsoid,P.default)),this._width=e,this._height=Math.max(l,h),this._extrudedHeight=Math.min(l,h),this._cornerType=H(t.cornerType,W.ROUNDED),this._granularity=H(t.granularity,q.RADIANS_PER_DEGREE),this._offsetAttribute=t.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+i.length*A.packedLength+P.packedLength+6}V.pack=function(t,i,e){M.typeOf.object("value",t),M.typeOf.object("array",i),e=H(e,0);let l=t._positions,h=l.length;i[e++]=h;for(let m=0;m<h;++m,e+=A.packedLength)A.pack(l[m],i,e);return P.pack(t._ellipsoid,i,e),e+=P.packedLength,i[e++]=t._width,i[e++]=t._height,i[e++]=t._extrudedHeight,i[e++]=t._cornerType,i[e++]=t._granularity,i[e]=H(t._offsetAttribute,-1),i};var lt=P.clone(P.UNIT_SPHERE),R={positions:void 0,ellipsoid:lt,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};V.unpack=function(t,i,e){M.typeOf.object("array",t),i=H(i,0);let l=t[i++],h=new Array(l);for(let d=0;d<l;++d,i+=A.packedLength)h[d]=A.unpack(t,i);let m=P.unpack(t,i,lt);i+=P.packedLength;let D=t[i++],y=t[i++],u=t[i++],p=t[i++],o=t[i++],g=t[i];return C(e)?(e._positions=h,e._ellipsoid=P.clone(m,e._ellipsoid),e._width=D,e._height=y,e._extrudedHeight=u,e._cornerType=p,e._granularity=o,e._offsetAttribute=g===-1?void 0:g,e):(R.positions=h,R.width=D,R.height=y,R.extrudedHeight=u,R.cornerType=p,R.granularity=o,R.offsetAttribute=g===-1?void 0:g,new V(R))};V.createGeometry=function(t){let i=t._positions,e=t._width,l=t._ellipsoid;i=ft(i,l);let h=it(i,A.equalsEpsilon);if(h.length<2||e<=0)return;let m=t._height,D=t._extrudedHeight,y=!q.equalsEpsilon(m,D,0,q.EPSILON2),u={ellipsoid:l,positions:h,width:e,cornerType:t._cornerType,granularity:t._granularity,saveAttributes:!1},p;if(y)u.height=m,u.extrudedHeight=D,u.offsetAttribute=t._offsetAttribute,p=ct(u);else{let d=S.computePositions(u);if(p=st(d,u.cornerType),p.attributes.position.values=Q.scaleToGeodeticHeight(p.attributes.position.values,m,l),C(t._offsetAttribute)){let _=p.attributes.position.values.length,w=t._offsetAttribute===K.NONE?0:1,T=new Uint8Array(_/3).fill(w);p.attributes.applyOffset=new J({componentDatatype:z.UNSIGNED_BYTE,componentsPerAttribute:1,values:T})}}let o=p.attributes,g=x.fromVertices(o.position.values,void 0,3);return new tt({attributes:o,indices:p.indices,primitiveType:I.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var $=V;function ht(t,i){return C(i)&&(t=$.unpack(t,i)),t._ellipsoid=P.clone(t._ellipsoid),$.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderGeometry.js index cd6eeeecc..d40537024 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:E,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,C,g,x,U,P,D,F,L,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*N),x=w*w,U=C*C,P=g*g,D=x*w,F=U*C,L=P*g,v=_*x+m*U+y*P-1,M=_*D*S+m*F*I+y*L*N;B=v/(-2*M)}while(Math.abs(v)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var E=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,_=r(n)?n._centerToleranceSquared:d,m=o(t,E,p,_,c);if(r(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(n,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],E[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=n-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+d;return r(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(E,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c) -;return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(E,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(_,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+d-_+y,N=2*(E-h),O=2*(f-p),v=2*(E+h),M=-s-d+_+y;return r[0]=T*a,r[1]=S*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=I*o,r[6]=v*o,r[7]=0,r[8]=A*u,r[9]=N*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=r.x,A=r.y,S=r.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=E*R+p*A+_*S;return i(n)?(n[0]=u,n[1]=m,n[2]=-E,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-_,n[11]=0,n[12]=I,n[13]=N,n[14]=O,n[15]=1,n):new l(u,s,c,I,m,y,T,N,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var E=new e;l.setScale=function(t,n,r){var i=l.getScale(t,E),a=e.divideComponents(n,i,E);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],x=t[12],U=t[13],P=t[14],D=t[15],F=r*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,b=a*T+c*R+d*A+m*S,B=o*T+l*R+E*A+y*S,z=r*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+d*O+m*v,V=o*I+l*N+E*O+y*v,X=r*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+d*C+m*g,Y=o*M+l*w+E*C+y*g,k=r*x+u*U+f*P+p*D,j=i*x+s*U+h*P+_*D,K=a*x+c*U+d*P+m*D,Z=o*x+l*U+E*P+y*D;return n[0]=F,n[1]=L,n[2]=b,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=X,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=K,n[15]=Z,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=r*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=r*y+o*T+c*R,x=i*y+u*T+l*R,U=a*y+s*T+f*R,P=r*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=r*N+o*O+c*v+h,b=i*N+u*O+l*v+d,B=a*N+s*O+f*v+E;return n[0]=M,n[1]=w,n[2]=C,n[3]=0,n[4]=g,n[5]=x,n[6]=U,n[7]=0,n[8]=P,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,N=r*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=r*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=I,n[3]=0,n[4]=N,n[5]=O,n[6]=v,n[7]=0,n[8]=M,n[9]=w,n[10]=C,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var m=new e;l.multiplyByUniformScale=function(e,t,n){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,C=_*v,g=S*N,x=_*O,U=m*N,P=p*v,D=S*I,F=p*O,L=m*I,b=p*N,B=_*I,z=M*h+g*d+x*E-(w*h+C*d+U*E),q=w*f+P*d+L*E-(M*f+D*d+F*E),G=C*f+D*h+b*E-(g*f+P*h+B*E),V=U*f+F*h+B*d-(x*f+L*h+b*d),X=w*i+C*a+U*o-(M*i+g*a+x*o),W=M*r+D*a+F*o-(w*r+P*a+L*o),H=g*r+P*i+B*o-(C*r+D*i+b*o),Y=x*r+L*i+b*a-(U*r+F*i+B*a);M=a*E,w=o*d,C=i*E,g=o*h,x=i*d,U=a*h,P=r*E,D=o*f,F=r*d,L=a*f,b=r*h,B=i*f;var k=M*N+g*O+x*v-(w*N+C*O+U*v),j=w*I+P*O+L*v-(M*I+D*O+F*v),K=C*I+D*N+b*v-(g*I+P*N+B*v),Z=U*I+F*N+B*O-(x*I+L*N+b*O),J=C*m+U*S+w*_-(x*S+M*_+g*m),Q=F*S+M*p+D*m-(P*m+L*S+w*p),$=P*_+B*S+g*p-(b*S+C*p+D*_),ee=b*m+x*p+L*_-(F*_+B*m+U*p),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=X*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=K*te,n[11]=Z*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-n*f-r*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=o,P=c,D=C;g>D&&(D=g,U=u,P=l),x>D&&(D=x,U=s,P=f);var F=S;F.x=.5*(U.x+P.x),F.y=.5*(U.y+P.y),F.z=.5*(U.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,n.center),n.radius=b):(e.clone(q,n.center),n.radius=G),n};var M=new o,w=new e,C=new e,g=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,g),g.height=a,h.northeast(t,x),x.height=o;var s=n.project(g,w),c=n.project(x,C),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var U=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,U);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+n.x,g=t[s+1]+n.y,x=t[s+2]+n.z;u.x=C,u.y=g,u.z=x,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var U=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=U;P>b&&(b=P,F=l,L=v),D>b&&(b=D,F=f,L=M);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+n[o],w=t[o+1]+n[o+1],C=t[o+2]+n[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;x>F&&(F=x,P=s,D=f),U>F&&(F=U,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var P=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,n,i){n=r(n,Z);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return _(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function E(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function _(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1]))}return x}function E(){return d()&&U}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,C,g,x,U,P,D,F,L,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var n=new Image;return n.onload=function(){I._result=n.width>0&&n.height>0,e.resolve(I._result)},n.onerror=function(){I._result=!1,e.resolve(I._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CylinderGeometryLibrary",["./Math"],function(e){"use strict";var t={};return t.computePositions=function(t,n,r,i,a){var o,u=.5*t,s=-u,c=i+i,l=a?2*c:c,f=new Float64Array(3*l),h=0,d=0,E=a?3*c:0,p=a?3*(c+i):3*i;for(o=0;o<i;o++){var _=o/i*e.TWO_PI,m=Math.cos(_),y=Math.sin(_),T=m*r,R=y*r,A=m*n,S=y*n;f[d+E]=T,f[d+E+1]=R,f[d+E+2]=s,f[d+p]=A,f[d+p+1]=S,f[d+p+2]=u,d+=3,a&&(f[h++]=T,f[h++]=R,f[h++]=s,f[h++]=A,f[h++]=S,f[h++]=u)}return f},t}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n, -a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];n=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*n,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);r[o]=_.x*u,r[o+1]=_.y*u,r[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,E=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=E,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-n)*u),I),N=s.multiplyByScalar(a,Math.sin(n*u),N),r=s.add(I,N,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),U[F]=L/b}return x[7]=g/136,U[7]=8*g/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)P[f]=(x[f]*c-U[f])*o,D[f]=(x[f]*l-U[f])*o;var h=i*n*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,C);return s.multiplyByScalar(t,h,r),s.add(E,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function E(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var n=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var g;if(null!==(u=w.match(A)))n=+u[1],g=+u[2],a=o(n);else if(null!==(u=w.match(S))){n=+u[1];var x=+u[2],U=+u[3]||0,P=new Date(Date.UTC(n,0,4));g=7*x+U-P.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(n,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:m[s-1],l+=i;var z=E(n,s,l,h,_,y,N);return r(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(p.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(m,_,E,y,R,A,S,n)},p.toDate=function(e){var t=p.toGregorianDate(e,_),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},p.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,n=0,r=N.length;for(e=0;e<r;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(N[e-n]=t):++n;N.length-=n;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(v);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){d(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?g(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]} -function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);v(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function U(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function P(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new N("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);v(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);v(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return U({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),U({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;C(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==I.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=I.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return m(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))E(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=n.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&r(y)){var v=o.leapSeconds,M=t(v,O,d);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,n){return t+e*(n-t)}function m(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=n[h+e._ut1MinusUtcSecondsColumn],m=n[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?E=m:m-=R-T)}return u.xPoleWander=_(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!r(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,n),n}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=E.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);n.x+=T[E]*d[A++],n.y+=T[E]*d[A++],n.s+=T[E]*d[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},v=new n,M=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(N[a])?r=N[a]:(r=function(r,a,s){if(u(s)||(s=new y),_.equalsEpsilon(r.x,0,_.EPSILON14)&&_.equalsEpsilon(r.y,0,_.EPSILON14)){var c=_.sign(r.z);n.unpack(I[e],0,v),"east"!==e&&"west"!==e&&n.multiplyByScalar(v,c,v),n.unpack(I[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(I[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},N[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,g,x);return a=i(e,r,a),y.multiply(a,s,a)};var U=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,U),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return m.transpose(n,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(n.xPoleWander),v=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),C=r-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,x=Math.cos(g),U=Math.sin(g),P=H;return P[0]=O*x,P[1]=O*U,P[2]=M,P[3]=-v*U+w*M*x,P[4]=v*x+w*M*U,P[5]=-w*O,P[6]=-w*U-v*M*x,P[7]=w*x-v*M*U,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,K=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,_.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,K);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new m,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(Z,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var m=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new d,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=E.center(o,m),h=n.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)n.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,N),U=l.fromQuaternion(x,O),P=r.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,r[u],g),g=l.multiplyByVector(U,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict" -;function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/CylinderGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CylinderGeometryLibrary","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_){"use strict";function m(e){e=o(e,o.EMPTY_OBJECT);var t=e.length,n=e.topRadius,r=e.bottomRadius,i=o(e.vertexFormat,_.DEFAULT),a=o(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=r,this._vertexFormat=_.clone(i),this._slices=a,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}var y=new n,T=new r,R=new r,A=new r,S=new r;m.packedLength=_.packedLength+5,m.pack=function(e,t,n){return n=o(n,0),_.pack(e._vertexFormat,t,n),n+=_.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=o(e._offsetAttribute,-1),t};var I=new _,N={vertexFormat:I,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};m.unpack=function(e,t,n){t=o(t,0);var r=_.unpack(e,t,I);t+=_.packedLength;var i=e[t++],a=e[t++],s=e[t++],c=e[t++],l=e[t];return u(n)?(n._vertexFormat=_.clone(r,n._vertexFormat),n._length=i,n._topRadius=a,n._bottomRadius=s,n._slices=c,n._offsetAttribute=-1===l?void 0:l,n):(N.length=i,N.topRadius=a,N.bottomRadius=s,N.slices=c,N.offsetAttribute=-1===l?void 0:l,new m(N))},m.createGeometry=function(o){var s=o._length,_=o._topRadius,m=o._bottomRadius,I=o._vertexFormat,N=o._slices;if(!(s<=0||_<0||m<0||0===_&&0===m)){var O,v=N+N,M=N+v,w=v+v,C=a.computePositions(s,_,m,N,!0),g=I.st?new Float32Array(2*w):void 0,x=I.normal?new Float32Array(3*w):void 0,U=I.tangent?new Float32Array(3*w):void 0,P=I.bitangent?new Float32Array(3*w):void 0,D=I.normal||I.tangent||I.bitangent;if(D){var F=I.tangent||I.bitangent,L=0,b=0,B=0,z=Math.atan2(m-_,s),q=T;q.z=Math.sin(z);var G=Math.cos(z),V=A,X=R;for(O=0;O<N;O++){var W=O/N*E.TWO_PI,H=G*Math.cos(W),Y=G*Math.sin(W);D&&(q.x=H,q.y=Y,F&&(V=r.normalize(r.cross(r.UNIT_Z,q,V),V)),I.normal&&(x[L++]=q.x,x[L++]=q.y,x[L++]=q.z,x[L++]=q.x,x[L++]=q.y,x[L++]=q.z),I.tangent&&(U[b++]=V.x,U[b++]=V.y,U[b++]=V.z,U[b++]=V.x,U[b++]=V.y,U[b++]=V.z),I.bitangent&&(X=r.normalize(r.cross(q,V,X),X),P[B++]=X.x,P[B++]=X.y,P[B++]=X.z,P[B++]=X.x,P[B++]=X.y,P[B++]=X.z))}for(O=0;O<N;O++)I.normal&&(x[L++]=0,x[L++]=0,x[L++]=-1),I.tangent&&(U[b++]=1,U[b++]=0,U[b++]=0),I.bitangent&&(P[B++]=0,P[B++]=-1,P[B++]=0);for(O=0;O<N;O++)I.normal&&(x[L++]=0,x[L++]=0,x[L++]=1),I.tangent&&(U[b++]=1,U[b++]=0,U[b++]=0),I.bitangent&&(P[B++]=0,P[B++]=1,P[B++]=0)}var k=12*N-12,j=d.createTypedArray(w,k),K=0,Z=0;for(O=0;O<N-1;O++)j[K++]=Z,j[K++]=Z+2,j[K++]=Z+3,j[K++]=Z,j[K++]=Z+3,j[K++]=Z+1,Z+=2;for(j[K++]=v-2,j[K++]=0,j[K++]=1,j[K++]=v-2,j[K++]=1,j[K++]=v-1,O=1;O<N-1;O++)j[K++]=v+O+1,j[K++]=v+O,j[K++]=v;for(O=1;O<N-1;O++)j[K++]=M,j[K++]=M+O,j[K++]=M+O+1;var J=0;if(I.st){var Q=Math.max(_,m);for(O=0;O<w;O++){var $=r.fromArray(C,3*O,S);g[J++]=($.x+Q)/(2*Q),g[J++]=($.y+Q)/(2*Q)}}var ee=new f;I.position&&(ee.position=new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:C})),I.normal&&(ee.normal=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:x})),I.tangent&&(ee.tangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:U})),I.bitangent&&(ee.bitangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:P})),I.st&&(ee.st=new l({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:g})),y.x=.5*s,y.y=Math.max(m,_);var te=new t(r.ZERO,n.magnitude(y));if(u(o._offsetAttribute)){s=C.length;var ne=new Uint8Array(s/3),re=o._offsetAttribute===h.NONE?0:1;e(ne,re),ee.applyOffset=new l({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:ne})}return new c({attributes:ee,indices:j,primitiveType:p.TRIANGLES,boundingSphere:te,offsetAttribute:o._offsetAttribute})}};var O;return m.getUnitCylinder=function(){return u(O)||(O=m.createGeometry(new m({topRadius:1,bottomRadius:1,length:1,vertexFormat:_.POSITION_ONLY}))),O},m}),define("Workers/createCylinderGeometry",["../Core/CylinderGeometry","../Core/defined"],function(e,t){"use strict";return function(n,r){return t(r)&&(n=e.unpack(n,r)),e.createGeometry(n)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-RCNUJLF4.js";import"./chunk-C6CGQVLL.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js index 04abab50e..ec2a95042 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createCylinderOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,E=new o,d=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:d,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,E);var l=Math.sqrt(o.dot(h,E));return E=o.divideByScalar(E,l,E),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(E,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,E=i.x,d=i.y,p=i.z,_=l*l*E*E,m=f*f*d*d,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,C,g,U,x,P,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*N),U=w*w,x=C*C,P=g*g,D=U*w,F=x*C,L=P*g,v=_*U+m*x+y*P-1,M=_*D*S+m*F*I+y*L*N;B=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=a.EPSILON1;return u.fromCartesian=function(t,r,i){var d=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:E,m=o(t,d,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=E;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var d=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,d),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],d[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],d[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=d[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var E,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;E=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+E*E),l=E*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=r-u-f+E,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+E,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+E;return n(t)?(t[0]=d,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(d,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,E=r*u,d=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=E,t[2]=_,t[3]=f,t[4]=d,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,E,d,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var E=new e;s.getMaximumScale=function(t){return s.getScale(t,E),e.maximumComponent(E)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var d=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),E=r*c(h);a<10&&l(h)>E;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var E=1/h;return s.multiplyByScalar(t,E,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,E,d,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(E,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(d,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-E-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+E-_+y,N=2*(d-h),O=2*(f-p),v=2*(d+h),M=-s-E+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,E),E);var u=h.x,s=h.y,c=h.z,d=f.x,p=f.y,_=f.z,m=E.x,y=E.y,T=E.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=d*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-d,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-d,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,E=l,d=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=E,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var d=new e;l.setScale=function(t,r,n){var i=l.getScale(t,d),a=e.divideComponents(r,i,d);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],U=t[12],x=t[13],P=t[14],D=t[15],F=n*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,b=a*T+c*R+E*A+m*S,B=o*T+l*R+d*A+y*S,q=n*I+u*N+f*O+p*v,z=i*I+s*N+h*O+_*v,G=a*I+c*N+E*O+m*v,V=o*I+l*N+d*O+y*v,X=n*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+E*C+m*g,Y=o*M+l*w+d*C+y*g,k=n*U+u*x+f*P+p*D,j=i*U+s*x+h*P+_*D,K=a*U+c*x+E*P+m*D,Z=o*U+l*x+d*P+y*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=q,r[5]=z,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=n*y+o*T+c*R,U=i*y+u*T+l*R,x=a*y+s*T+f*R,P=n*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=n*N+o*O+c*v+h,b=i*N+u*O+l*v+E,B=a*N+s*O+f*v+d;return r[0]=M,r[1]=w,r[2]=C,r[3]=0,r[4]=g,r[5]=U,r[6]=x,r[7]=0,r[8]=P,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*E+c*d,S=i*h+u*E+l*d,I=a*h+s*E+f*d,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=C,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],E=e[9],d=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,C=_*v,g=S*N,U=_*O,x=m*N,P=p*v,D=S*I,F=p*O,L=m*I,b=p*N,B=_*I,q=M*h+g*E+U*d-(w*h+C*E+x*d),z=w*f+P*E+L*d-(M*f+D*E+F*d),G=C*f+D*h+b*d-(g*f+P*h+B*d),V=x*f+F*h+B*E-(U*f+L*h+b*E),X=w*i+C*a+x*o-(M*i+g*a+U*o),W=M*n+D*a+F*o-(w*n+P*a+L*o),H=g*n+P*i+B*o-(C*n+D*i+b*o),Y=U*n+L*i+b*a-(x*n+F*i+B*a);M=a*d,w=o*E,C=i*d,g=o*h,U=i*E,x=a*h,P=n*d,D=o*f,F=n*E,L=a*f,b=n*h,B=i*f;var k=M*N+g*O+U*v-(w*N+C*O+x*v),j=w*I+P*O+L*v-(M*I+D*O+F*v),K=C*I+D*N+b*v-(g*I+P*N+B*v),Z=x*I+F*N+B*O-(U*I+L*N+b*O),J=C*m+x*S+w*_-(U*S+M*_+g*m),Q=F*S+M*p+D*m-(P*m+L*S+w*p),$=P*_+B*S+g*p-(b*S+C*p+D*_),ee=b*m+U*p+L*_-(F*_+B*m+x*p),te=n*q+i*z+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=q*te,r[1]=z*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-r*f-n*h-i*E,p=-a*f-o*h-u*E,_=-s*f-c*h-l*E;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=d,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];r=Math.min(r,E.longitude),i=Math.max(i,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;a=Math.min(a,d),o=Math.max(o,d)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,p=e.length;d<p;d++){var _=t.cartesianToCartographic(e[d]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),E=Math.max(E,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=E,i):new s(o,h,c,E)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=E,r):new s(l,h,f,E)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,p=c;p.height=i,p.longitude=d,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function E(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var d=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;E.fromPoints=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,d),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=o,P=c,D=C;g>D&&(D=g,x=u,P=l),U>D&&(D=U,x=s,P=f);var F=S;F.x=.5*(x.x+P.x),F.y=.5*(x.y+P.y),F.z=.5*(x.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var q=N;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,z,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(z,r.center),r.radius=G),r};var M=new o,w=new e,C=new e,g=new t,U=new t;E.fromRectangle2D=function(e,t,r){return E.fromRectangleWithHeights2D(e,t,0,0,r)},E.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,g),g.height=a,h.northeast(t,U),U.height=o;var s=r.project(g,w),c=r.project(U,C),l=c.x-s.x,f=c.y-s.y,d=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+d*d);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*d,u};var x=[];E.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,x);return E.fromPoints(s,u)},E.fromVertices=function(t,r,a,o){if(i(o)||(o=new E),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,d),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+r.x,g=t[s+1]+r.y,U=t[s+2]+r.z;u.x=C,u.y=g,u.z=U,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),U<f.z&&e.clone(u,f),U>M.z&&e.clone(u,M)}var x=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=x;P>b&&(b=P,F=l,L=v),D>b&&(b=D,F=f,L=M);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var q=e.magnitudeSquared(e.subtract(L,B,A)),z=Math.sqrt(q),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;B.x=(z*B.x+j*u.x)/k,B.y=(z*B.y+j*u.y)/k,B.z=(z*B.z+j*u.z)/k}}return z<W?(e.clone(B,o.center),o.radius=z):(e.clone(X,o.center),o.radius=W),o},E.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new E),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,d),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],C=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;U>F&&(F=U,P=s,D=f),x>F&&(F=x,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),q=I;q.x=u.x,q.y=s.y,q.z=c.z;var z=N;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},E.fromCornerPoints=function(t,r,n){i(n)||(n=new E);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},E.fromEllipsoid=function(t,r){return i(r)||(r=new E),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var P=new e;E.fromBoundingSpheres=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return E.clone(t[0],r);if(2===n)return E.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=E.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;E.fromOrientedBoundingBox=function(t,r){i(r)||(r=new E);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},E.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},E.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new E);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;E.union=function(t,r,n){i(n)||(n=new E);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var q=new e;E.expand=function(t,r,n){n=E.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,q));return i>n.radius&&(n.radius=i),n},E.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},E.transform=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var z=new e;E.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,z);return e.magnitudeSquared(n)-t.radius*t.radius},E.transformWithoutScale=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;E.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return E.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),d=j,p=d[0];e.add(s,l,p),e.add(p,c,p),p=d[1],e.add(s,l,p),e.add(p,h,p),p=d[2],e.add(s,f,p),e.add(p,h,p),p=d[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=d[4],e.add(s,l,p),e.add(p,c,p),p=d[5],e.add(s,l,p),e.add(p,h,p),p=d[6],e.add(s,f,p),e.add(p,h,p),p=d[7],e.add(s,f,p),e.add(p,c,p);for(var _=d.length,m=0;m<_;++m){var y=d[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=E.fromPoints(d,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,r){return E.computePlaneDistances(this,e,t,r)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return v*e*e*e},E}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return d(e)}function i(e){return d(a(e))}function u(e){return E(e)}var s,c,l,f,h,E,d;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},E=function(e){return p(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){d(e)}var c,l,f,h,E,d,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],E=o(),c)for(_=E.progress,p=function(e){h.push(e),--l||(d=p=m,E.reject(h))},d=function(e){f.push(e),--c||(d=p=m,E.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else E.resolve(f);return E.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function E(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function d(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=s,e.chain=d,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function E(){if(!t(U)){U=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1]))}return U}function d(){return E()&&x}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;z=t(r)&&""!==r,z&&(q=r)}return z}function S(){return A()?q:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,C,g,U,x,P,D,F,L,b,B,q,z;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CylinderGeometryLibrary",["./Math"],function(e){"use strict";var t={};return t.computePositions=function(t,r,n,i,a){var o,u=.5*t,s=-u,c=i+i,l=a?2*c:c,f=new Float64Array(3*l),h=0,E=0,d=a?3*c:0,p=a?3*(c+i):3*i;for(o=0;o<i;o++){var _=o/i*e.TWO_PI,m=Math.cos(_),y=Math.sin(_),T=m*n,R=y*n,A=m*r,S=y*r;f[E+d]=T,f[E+d+1]=R,f[E+d+2]=s,f[E+p]=A,f[E+p+1]=S,f[E+p+2]=u,E+=3,a&&(f[h++]=T,f[h++]=R,f[h++]=s,f[h++]=A,f[h++]=S,f[h++]=u)}return f},t}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],E=e[u.COLUMN1ROW1],d=e[u.COLUMN2ROW2],p=h+E+d;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r, -a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;E>h&&(m=1),d>h&&d>E&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,E=new s,d=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),d=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(d,p,d),E=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(E,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,E=o*c+n*s-i*u+a*l,d=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=E,r.w=d,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,U=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;U[F]=1/(L*b),x[F]=L/b}return U[7]=g/136,x[7]=8*g/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)P[f]=(U[f]*c-x[f])*o,D[f]=(U[f]*l-x[f])*o;var h=i*r*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),E=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),d=s.multiplyByScalar(e,E,C);return s.multiplyByScalar(t,h,n),s.add(d,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var E,d,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return E=+m||0,E=Math.round(E-E%1),d=E<0?"-":T,m=d+i(String(Math.abs(E)),f,"0",!1),a(m,d,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return E=+m,d=E<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=d+Math.abs(E)[p](f),a(m,d,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function E(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function d(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,E(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var g;if(null!==(u=w.match(A)))r=+u[1],g=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var U=+u[2],x=+u[3]||0,P=new Date(Date.UTC(r,0,4));g=7*U+x-P.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var q=d(r,s,l,h,_,y,N);return n(t)?(E(q[0],q[1],t),f(t)):t=new p(q[0],q[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var _=E+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=d,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,d,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return E(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return E(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return E(e.dayNumber,n,r)},p.addDays=function(e,t,r){return E(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)E(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||d(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){E(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?g(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]} -function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function U(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function x(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return U._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,x({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function P(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},U._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();U.createIfNeeded=function(e){return e instanceof U?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new U({url:e})};var G;U.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=U.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(U,{isBlobSupported:{get:function(){return z}}}),s(U.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),U.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},U.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},U.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},U.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},U.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},U.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},U.prototype.clone=function(e){return u(e)||(e=new U({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},U.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},U.prototype.appendForwardSlash=function(){this._url=r(this._url)},U.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},U.fetchArrayBuffer=function(e){return new U(e).fetchArrayBuffer()},U.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},U.fetchBlob=function(e){return new U(e).fetchBlob()},U.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return x({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return U.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return U.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new U({url:t}),x({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},U.fetchImage=function(e){return new U(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},U.prototype.fetchText=function(){return this.fetch({responseType:"text"})},U.fetchText=function(e){return new U(e).fetchText()},U.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},U.fetchJson=function(e){return new U(e).fetchJson()},U.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},U.fetchXML=function(e){return new U(e).fetchXML()},U.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},U.fetchJsonp=function(e){return new U(e).fetchJsonp(e.callbackParameterName)},U.prototype._makeRequest=function(e){var r=this;C(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=U._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;U.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},U.fetch=function(e){return new U(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},U.delete=function(e){return new U(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},U.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},U.head=function(e){return new U(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},U.options=function(e){return new U(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},U.post=function(e){return new U(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},U.put=function(e){return new U(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},U.patch=function(e){return new U(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U._Implementations={},U._Implementations.createImage=function(e,t,r,n,i){U.supportsImageBitmapOptions().then(function(n){return n&&i?U.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return U.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},U.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return U._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void q(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},U._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},U._DefaultImplementations={},U._DefaultImplementations.createImage=U._Implementations.createImage,U._DefaultImplementations.loadWithXhr=U._Implementations.loadWithXhr,U._DefaultImplementations.loadAndExecuteScript=U._Implementations.loadAndExecuteScript,U.DEFAULT=l(new U({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),U}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))d(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){d(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return o.compare(e.julianDate,t)}function d(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||d<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,E);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,E=a*s,d=r[h+e._ut1MinusUtcSecondsColumn],m=r[E+e._ut1MinusUtcSecondsColumn],y=m-d;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[E+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?d=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[E+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[E+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[E+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[E+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,d,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],E=o.lessThanOrEquals(f,e),d=!n(h),p=d||o.greaterThanOrEquals(h,e);if(E&&p)return s=u,!d&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=d.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,E=this._samples;if(n(E[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var d,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(d=0;d<=u;++d)m[d]=_-R[d];for(d=0;d<=u;++d){for(T[d]=1,p=0;p<=u;++p)p!==d&&(T[d]*=m[p]);T[d]*=y[d];var A=3*(s+d);r.x+=T[d]*E[A++],r.y+=T[d]*E[A++],r.s+=T[d]*E[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new r(1,1,1),U=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,g,U);return a=i(e,n,a),y.multiply(a,s,a)};var x=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,x),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,b=new y,B=new m,q=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*z%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),E=Math.sin(f);return u(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,E,0,-E,h,0,0,0,1)},A.iau2006XysData=new E,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new d(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),E=e.dayNumber,d=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=E-2451545,T=d/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),C=n-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,U=Math.cos(g),x=Math.sin(g),P=H;return P[0]=O*U,P[1]=O*x,P[2]=M,P[3]=-v*x+w*M*U,P[4]=v*U+w*M*x,P[5]=-w*O,P[6]=-w*x-v*M*U,P[7]=w*U-v*M*x,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new E,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=d.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)r.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var U=E.fromAxisAngle(t.UNIT_Z,-i,N),x=l.fromQuaternion(U,O),P=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,n[u],g),g=l.multiplyByVector(x,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),q=S;q[0].x=D,q[0].y=F,q[1].x=D,q[1].y=b,q[2].x=L,q[2].y=F;var z=w[0],G=w[2].x-z.x,V=w[1].y-z.y;for(u=0;u<3;u++){var X=q[u];c.multiplyByVector(B,X,X),X.x=(X.x-z.x)/G,X.y=(X.y-z.y)/V}var W=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict" -;function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/CylinderOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Check","./ComponentDatatype","./CylinderGeometryLibrary","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=u(e,u.EMPTY_OBJECT);var t=e.length,r=e.topRadius,n=e.bottomRadius,i=u(e.slices,128),a=Math.max(u(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=r,this._bottomRadius=n,this._slices=i,this._numberOfVerticalLines=a,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}var m=new r;_.packedLength=6,_.pack=function(e,t,r){return r=u(r,0),t[r++]=e._length,t[r++]=e._topRadius,t[r++]=e._bottomRadius,t[r++]=e._slices,t[r++]=e._numberOfVerticalLines,t[r]=u(e._offsetAttribute,-1),t};var y={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return _.unpack=function(e,t,r){t=u(t,0);var n=e[t++],i=e[t++],a=e[t++],o=e[t++],c=e[t++],l=e[t];return s(r)?(r._length=n,r._topRadius=i,r._bottomRadius=a,r._slices=o,r._numberOfVerticalLines=c,r._offsetAttribute=-1===l?void 0:l,r):(y.length=n,y.topRadius=i,y.bottomRadius=a,y.slices=o,y.numberOfVerticalLines=c,y.offsetAttribute=-1===l?void 0:l,new _(y))},_.createGeometry=function(i){var u=i._length,c=i._topRadius,_=i._bottomRadius,y=i._slices,T=i._numberOfVerticalLines;if(!(u<=0||c<0||_<0||0===c&&0===_)){var R,A=2*y,S=o.computePositions(u,c,_,y,!1),I=2*y;if(T>0){var N=Math.min(T,y);R=Math.round(y/N),I+=N}var O,v=d.createTypedArray(A,2*I),M=0;for(O=0;O<y-1;O++)v[M++]=O,v[M++]=O+1,v[M++]=O+y,v[M++]=O+1+y;if(v[M++]=y-1,v[M++]=0,v[M++]=y+y-1,v[M++]=y,T>0)for(O=0;O<y;O+=R)v[M++]=O,v[M++]=O+y;var w=new h;w.position=new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:S}),m.x=.5*u,m.y=Math.max(_,c);var C=new t(n.ZERO,r.magnitude(m));if(s(i._offsetAttribute)){u=S.length;var g=new Uint8Array(u/3),U=i._offsetAttribute===E.NONE?0:1;e(g,U),w.applyOffset=new f({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}return new l({attributes:w,indices:v,primitiveType:p.LINES,boundingSphere:C,offsetAttribute:i._offsetAttribute})}},_}),define("Workers/createCylinderOutlineGeometry",["../Core/CylinderOutlineGeometry","../Core/defined"],function(e,t){"use strict";return function(r,n){return t(n)&&(r=e.unpack(r,n)),e.createGeometry(r)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-C6CGQVLL.js";import{a as V}from"./chunk-6UMNSGJM.js";import{a as N}from"./chunk-T53UE6JF.js";import{a as k}from"./chunk-RYO6NY7F.js";import{b as D,c as P,d as L}from"./chunk-2HSPJH3C.js";import{d as y}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as A}from"./chunk-6QVIJ7JA.js";import{a as S,c as R}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as c}from"./chunk-WHQYJFDH.js";import{a as T,b as m}from"./chunk-OYWUGDKS.js";import{e as d}from"./chunk-DRYFJEFT.js";var w=new R;function a(t){t=c(t,c.EMPTY_OBJECT);let e=t.length,i=t.topRadius,f=t.bottomRadius,o=c(t.slices,128),r=Math.max(c(t.numberOfVerticalLines,16),0);if(m.typeOf.number("options.positions",e),m.typeOf.number("options.topRadius",i),m.typeOf.number("options.bottomRadius",f),m.typeOf.number.greaterThanOrEquals("options.slices",o,3),d(t.offsetAttribute)&&t.offsetAttribute===V.TOP)throw new T("GeometryOffsetAttribute.TOP is not a supported options.offsetAttribute for this geometry.");this._length=e,this._topRadius=i,this._bottomRadius=f,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=t.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}a.packedLength=6;a.pack=function(t,e,i){return m.typeOf.object("value",t),m.defined("array",e),i=c(i,0),e[i++]=t._length,e[i++]=t._topRadius,e[i++]=t._bottomRadius,e[i++]=t._slices,e[i++]=t._numberOfVerticalLines,e[i]=c(t._offsetAttribute,-1),e};var b={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};a.unpack=function(t,e,i){m.defined("array",t),e=c(e,0);let f=t[e++],o=t[e++],r=t[e++],h=t[e++],l=t[e++],p=t[e];return d(i)?(i._length=f,i._topRadius=o,i._bottomRadius=r,i._slices=h,i._numberOfVerticalLines=l,i._offsetAttribute=p===-1?void 0:p,i):(b.length=f,b.topRadius=o,b.bottomRadius=r,b.slices=h,b.numberOfVerticalLines=l,b.offsetAttribute=p===-1?void 0:p,new a(b))};a.createGeometry=function(t){let e=t._length,i=t._topRadius,f=t._bottomRadius,o=t._slices,r=t._numberOfVerticalLines;if(e<=0||i<0||f<0||i===0&&f===0)return;let h=o*2,l=M.computePositions(e,i,f,o,!1),p=o*2,E;if(r>0){let O=Math.min(r,o);E=Math.round(o/O),p+=O}let s=N.createTypedArray(h,p*2),u=0,n;for(n=0;n<o-1;n++)s[u++]=n,s[u++]=n+1,s[u++]=n+o,s[u++]=n+1+o;if(s[u++]=o-1,s[u++]=0,s[u++]=o+o-1,s[u++]=o,r>0)for(n=0;n<o;n+=E)s[u++]=n,s[u++]=n+o;let _=new k;_.position=new L({componentDatatype:A.DOUBLE,componentsPerAttribute:3,values:l}),w.x=e*.5,w.y=Math.max(f,i);let g=new y(S.ZERO,R.magnitude(w));if(d(t._offsetAttribute)){e=l.length;let O=t._offsetAttribute===V.NONE?0:1,B=new Uint8Array(e/3).fill(O);_.applyOffset=new L({componentDatatype:A.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return new P({attributes:_,indices:s,primitiveType:D.LINES,boundingSphere:g,offsetAttribute:t._offsetAttribute})};var C=a;function G(t,e){return d(e)&&(t=C.unpack(t,e)),C.createGeometry(t)}var et=G;export{et as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseGeometry.js index 7e98dbe2e..70f9d0615 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,T=E+y+_,v=Math.sqrt(1/T),A=e.multiplyByScalar(r,v,a);if(T<s)return isFinite(v)?e.clone(A,c):void 0;var R=u.x,S=u.y,g=u.z,I=o;I.x=A.x*R*2,I.y=A.y*S*2,I.z=A.z*g*2;var N,O,w,M,x,C,P,b,U,D,L,F=(1-v)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,w=1/(1+F*R),M=1/(1+F*S),x=1/(1+F*g),C=w*w,P=M*M,b=x*x,U=C*w,D=P*M,L=b*x,N=E*C+y*P+_*b-1,O=E*U*R+y*D*S+_*L*g;B=N/(-2*O)}while(Math.abs(N)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*M,c.z=h*x,c):new e(l*w,f*M,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,E=n(r)?r._centerToleranceSquared:d,y=o(t,p,m,E,c);if(n(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),v=Math.atan2(_.y,_.x),A=Math.asin(_.z),R=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=v,i.latitude=A,i.height=R,i):new u(v,A,R)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(E-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-r+u-f+d,T=2*(c-o),v=2*(a-l),A=2*(c+o),R=-r-u+f+d;return n(t)?(t[0]=p,t[1]=y,t[2]=v,t[3]=m,t[4]=_,t[5]=A,t[6]=E,t[7]=T,t[8]=R,t):new s(p,m,E,y,_,T,v,A,R)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(E,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-E+_,v=2*(c-y),A=2*(f+m),R=2*(c+y),S=-s+d-E+_,g=2*(p-h),I=2*(f-m),N=2*(p+h),O=-s-d+E+_;return n[0]=T*a,n[1]=R*a,n[2]=I*a,n[3]=0,n[4]=v*o,n[5]=S*o,n[6]=N*o,n[7]=0,n[8]=A*u,n[9]=g*u,n[10]=O*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,T=d.z,v=n.x,A=n.y,R=n.z,S=u*-v+s*-A+c*-R,g=y*-v+_*-A+T*-R,I=p*v+m*A+E*R;return i(r)?(r[0]=u,r[1]=y,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=T,r[10]=-E,r[11]=0,r[12]=S,r[13]=g,r[14]=I,r[15]=1,r):new l(u,s,c,S,y,_,T,g,-p,-m,-E,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],T=t[0],v=t[1],A=t[2],R=t[3],S=t[4],g=t[5],I=t[6],N=t[7],O=t[8],w=t[9],M=t[10],x=t[11],C=t[12],P=t[13],b=t[14],U=t[15],D=n*T+u*v+f*A+m*R,L=i*T+s*v+h*A+E*R,F=a*T+c*v+d*A+y*R,B=o*T+l*v+p*A+_*R,z=n*S+u*g+f*I+m*N,q=i*S+s*g+h*I+E*N,G=a*S+c*g+d*I+y*N,V=o*S+l*g+p*I+_*N,W=n*O+u*w+f*M+m*x,X=i*O+s*w+h*M+E*x,Y=a*O+c*w+d*M+y*x,H=o*O+l*w+p*M+_*x,k=n*C+u*P+f*b+m*U,j=i*C+s*P+h*b+E*U,Z=a*C+c*P+d*b+y*U,K=o*C+l*P+p*b+_*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=Y,r[11]=H,r[12]=k,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],T=t[5],v=t[6],A=t[8],R=t[9],S=t[10],g=t[12],I=t[13],N=t[14],O=n*m+o*E+c*y,w=i*m+u*E+l*y,M=a*m+s*E+f*y,x=n*_+o*T+c*v,C=i*_+u*T+l*v,P=a*_+s*T+f*v,b=n*A+o*R+c*S,U=i*A+u*R+l*S,D=a*A+s*R+f*S,L=n*g+o*I+c*N+h,F=i*g+u*I+l*N+d,B=a*g+s*I+f*N+p;return r[0]=O,r[1]=w,r[2]=M,r[3]=0,r[4]=x,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],T=t[7],v=t[8],A=n*h+o*d+c*p,R=i*h+u*d+l*p,S=a*h+s*d+f*p,g=n*m+o*E+c*y,I=i*m+u*E+l*y,N=a*m+s*E+f*y,O=n*_+o*T+c*v,w=i*_+u*T+l*v,M=a*_+s*T+f*v;return r[0]=A,r[1]=R,r[2]=S,r[3]=0,r[4]=g,r[5]=I,r[6]=N,r[7]=0,r[8]=O,r[9]=w,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,v=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],R=e[14],S=e[3],g=e[7],I=e[11],N=e[15],O=y*N,w=R*I,M=E*N,x=R*g,C=E*I,P=y*g,b=m*N,U=R*S,D=m*I,L=y*S,F=m*g,B=E*S,z=O*h+x*d+C*p-(w*h+M*d+P*p),q=w*f+b*d+L*p-(O*f+U*d+D*p),G=M*f+U*h+F*p-(x*f+b*h+B*p),V=P*f+D*h+B*d-(C*f+L*h+F*d),W=w*i+M*a+P*o-(O*i+x*a+C*o),X=O*n+U*a+D*o-(w*n+b*a+L*o),Y=x*n+b*i+B*o-(M*n+U*i+F*o),H=C*n+L*i+F*a-(P*n+D*i+B*a);O=a*p,w=o*d,M=i*p,x=o*h,C=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var k=O*g+x*I+C*N-(w*g+M*I+P*N),j=w*S+b*I+L*N-(O*S+U*I+D*N),Z=M*S+U*g+F*N-(x*S+b*g+B*N),K=P*S+D*g+B*I-(C*S+L*g+F*I),J=M*y+P*R+w*E-(C*R+O*E+x*y),Q=D*R+O*m+U*y-(b*y+L*R+w*m),$=b*E+B*R+x*m-(F*R+M*m+U*E),ee=F*y+C*m+L*E-(D*E+B*y+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,v),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=Y*te,r[7]=H*te,r[8]=k*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,T=new e,v=new e,A=new e,R=new e,S=new e,g=new e,I=new e,N=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],v),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var N=a.x,O=a.y,w=a.z;N<o.x&&e.clone(a,o),N>c.x&&e.clone(a,c),O<u.y&&e.clone(a,u),O>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),x=e.magnitudeSquared(e.subtract(l,u,A)),C=e.magnitudeSquared(e.subtract(f,s,A)),P=o,b=c,U=M;x>U&&(U=x,P=u,b=l),C>U&&(U=C,P=s,b=f);var D=R;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,A)),F=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,A));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var Y=X-F;D.x=(F*D.x+Y*a.x)/X,D.y=(F*D.y+Y*a.y)/X,D.z=(F*D.z+Y*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var O=new o,w=new e,M=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,O),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=r.project(x,w),c=r.project(C,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=v;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),N=e.clone(u,_),O=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var M=t[s]+r.x,x=t[s+1]+r.y,C=t[s+2]+r.z;u.x=M,u.y=x,u.z=C,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>N.y&&e.clone(u,N),C<f.z&&e.clone(u,f),C>O.z&&e.clone(u,O)}var P=e.magnitudeSquared(e.subtract(h,c,A)),b=e.magnitudeSquared(e.subtract(N,l,A)),U=e.magnitudeSquared(e.subtract(O,f,A)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=N),U>F&&(F=U,D=f,L=O);var B=R;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=N.y,V.z=O.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var Y=e.magnitude(e.subtract(u,W,A));Y>X&&(X=Y);var H=e.magnitudeSquared(e.subtract(u,B,A));if(H>z){var k=Math.sqrt(H);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=v;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),N=t.length;for(o=0;o<N;o+=3){var O=t[o]+r[o],w=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=O,a.y=w,a.z=M,O<u.x&&e.clone(a,u),O>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,A)),C=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),b=u,U=l,D=x;C>D&&(D=C,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=R;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,A)),B=Math.sqrt(F),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<N;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>F){var Y=Math.sqrt(X);B=.5*(B+Y),F=B*B;var H=Y-B;L.x=(B*L.x+H*a.x)/Y,L.y=(B*L.y+H*a.y)/Y,L.z=(B*L.z+H*a.z)/Y}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,Y=new e,H=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,Y),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);r.project(T,_)}i=d.fromPoints(p,i),o=i.center;var v=o.x,A=o.y,R=o.z;return o.x=R,o.y=v,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return E(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=v.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function E(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var T,v,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},v=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function s(){return u()&&N}function c(){if(!t(O)&&(O=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(O=!0,w=o(e[1]))}return O}function l(){return c()&&w}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(M=!0,x=o(e[1]),x.isNightly=!!e[2])}return M}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function E(){return m()&&U}function y(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function _(){return t(F)||(F=/Windows/i.test(g.appVersion)),F}function T(){return y()&&L}function v(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function R(){return A()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,N,O,w,M,x,C,P,b,U,D,L,F,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,m())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:v,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:R,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],T=E[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var v=f;v[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*r,v[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r,v[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*r,i=-v[0],a=-v[1],o=-v[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var E=new e,y=new e,_=new s,T=new s,v=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,v),s.conjugate(v,v);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,v,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);n[o]=E.x*u,n[o+1]=E.y*u,n[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var R=new s,S=new s,g=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=R=s.negate(t,R)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),g=s.multiplyByScalar(a,Math.sin(r*u),g),n=s.add(S,g,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,N=new e,O=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,O);s.multiply(a,n,w);var o=s.log(w,I);s.multiply(a,t,w);var u=s.log(w,N);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,O),s.multiply(r,O,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,O),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;C[D]=1/(L*F),P[D]=L/F}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,U[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){ -var o=s.fastSlerp(e,t,i,O),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/EllipseGeometryLibrary",["./Cartesian3","./Math","./Matrix3","./Quaternion"],function(e,t,r,n){"use strict";function i(t,i,a,l,f,h,d,p,m,E){var y=t+i;e.multiplyByScalar(l,Math.cos(y),o),e.multiplyByScalar(a,Math.sin(y),u),e.add(o,u,o);var _=Math.cos(t);_*=_;var T=Math.sin(t);T*=T;var v=h/Math.sqrt(d*_+f*T),A=v/p;return n.fromAxisAngle(o,A,s),r.fromQuaternion(s,c),r.multiplyByVector(c,m,E),e.normalize(E,E),e.multiplyByScalar(E,p,E),E}var a={},o=new e,u=new e,s=new n,c=new r,l=new e,f=new e,h=new e,d=new e;a.raisePositionsToHeight=function(t,r,n){for(var i=r.ellipsoid,a=r.height,o=r.extrudedHeight,u=n?t.length/3*2:t.length/3,s=new Float64Array(3*u),c=t.length,p=n?c:0,m=0;m<c;m+=3){var E=m+1,y=m+2,_=e.fromArray(t,m,l);i.scaleToGeodeticSurface(_,_);var T=e.clone(_,f),v=i.geodeticSurfaceNormal(_,d),A=e.multiplyByScalar(v,a,h);e.add(_,A,_),n&&(e.multiplyByScalar(v,o,A),e.add(T,A,T),s[m+p]=T.x,s[E+p]=T.y,s[y+p]=T.z),s[m]=_.x,s[E]=_.y,s[y]=_.z}return s};var p=new e,m=new e,E=new e;return a.computeEllipsePositions=function(r,n,a){var o=r.semiMinorAxis,u=r.semiMajorAxis,s=r.rotation,c=r.center,d=8*r.granularity,y=o*o,_=u*u,T=u*o,v=e.magnitude(c),A=e.normalize(c,p),R=e.cross(e.UNIT_Z,c,m);R=e.normalize(R,R);var S=e.cross(A,R,E),g=1+Math.ceil(t.PI_OVER_TWO/d),I=t.PI_OVER_TWO/(g-1),N=t.PI_OVER_TWO-g*I;N<0&&(g-=Math.ceil(Math.abs(N)/I));var O,w,M,x,C,P=g*(g+2)*2,b=n?new Array(3*P):void 0,U=0,D=l,L=f,F=4*g*3,B=F-1,z=0,q=a?new Array(F):void 0;for(N=t.PI_OVER_TWO,D=i(N,s,S,R,y,T,_,v,A,D),n&&(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z),a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x),N=t.PI_OVER_TWO-I,O=1;O<g+1;++O){if(D=i(N,s,S,R,y,T,_,v,A,D),L=i(Math.PI-N,s,S,R,y,T,_,v,A,L),n){for(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,M=2*O+2,w=1;w<M-1;++w)x=w/(M-1),C=e.lerp(D,L,x,h),b[U++]=C.x,b[U++]=C.y,b[U++]=C.z;b[U++]=L.x,b[U++]=L.y,b[U++]=L.z}a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,q[z++]=L.x,q[z++]=L.y,q[z++]=L.z),N=t.PI_OVER_TWO-(O+1)*I}for(O=g;O>1;--O){if(N=t.PI_OVER_TWO-(O-1)*I,D=i(-N,s,S,R,y,T,_,v,A,D),L=i(N+Math.PI,s,S,R,y,T,_,v,A,L),n){for(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,M=2*(O-1)+2,w=1;w<M-1;++w)x=w/(M-1),C=e.lerp(D,L,x,h),b[U++]=C.x,b[U++]=C.y,b[U++]=C.z;b[U++]=L.x,b[U++]=L.y,b[U++]=L.z}a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,q[z++]=L.x,q[z++]=L.y,q[z++]=L.z)}N=t.PI_OVER_TWO,D=i(-N,s,S,R,y,T,_,v,A,D);var G={};return n&&(b[U++]=D.x,b[U++]=D.y,b[U++]=D.z,G.positions=b,G.numPts=g),a&&(q[B--]=D.z,q[B--]=D.y,q[B--]=D.x,G.outerPositions=q),G},a}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,T="",v=!1,A=!1,R=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":R=s.charAt(g+1);break;case"0":v=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,v,R);case"c":return u(String.fromCharCode(+y),_,c,f,v);case"b":return o(y,2,A,_,c,f,v);case"o":return o(y,8,A,_,c,f,v);case"x":return o(y,16,A,_,c,f,v);case"X":return o(y,16,A,_,c,f,v).toUpperCase();case"u":return o(y,10,A,_,c,f,v);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,v);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,v)[E]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,v=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,R=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,g=0,w=u[0],M=u[1];if(null!==(u=w.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(v)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var x;if(null!==(u=w.match(A)))r=+u[1],x=+u[2],a=o(r);else if(null!==(u=w.match(R))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));x=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(M)){u=M.match(O),null!==u?(h=+u[1],E=+u[2],_=+u[3],g=1e3*+(u[4]||0),U=5):(u=M.match(N),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),U=4):null!==(u=M.match(I))&&(h=+u[1],E=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(r,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=p(r,s,l,h,E,_,g);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(m.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,v=T/s.SECONDS_PER_MINUTE|0;T-=v*s.SECONDS_PER_MINUTE;var A=0|T,R=(T-A)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(A+=1),n(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=v,t.second=A,t.millisecond=R,t.isLeapSecond=r,t):new a(y,E,p,_,v,A,R,r)},m.toDate=function(e){var t=m.toGregorianDate(e,E),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function v(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},R=20,S=new u({comparator:f});S.maximumLength=R,S.reserve(R);var g=[],I={},N="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return R},set:function(e){if(e<R)for(;S.length>e;){var t=S.pop();T(t)}R=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=g.length;for(e=0;e<n;++e)t=g[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(g[e-r]=t):++r;g.length-=r;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);v()},h.getServerKey=function(t){var r=new e(t).resolve(N);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(g.length>=h.maximumRequests)){ -d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return m(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=g.length,t=0;t<e;++t)T(g[t]);g.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g,I){"use strict";function N(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?x(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function x(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new v),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);N(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=R.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=R.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new g("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);N(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);N(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=R.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,v=0,A=E.length;v<A;v+=e._columnCount){var R=E[v+i],S=E[v+m],g=R+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,S,f.TAI);if(y.push(I),T){if(S!==_&&n(_)){var N=o.leapSeconds,O=t(N,I,d);if(O<0){var w=new u(I,S);N.splice(~O,0,w)}}_=S}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],v=r[d+e._taiMinusUtcSecondsColumn];T!==v&&(l.equals(n)?p=y:y-=v-T)}return u.xPoleWander=E(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,v=this._xTable;for(p=0;p<=u;++p)y[p]=E-v[p];for(p=0;p<=u;++p){for(T[p]=1,m=0;m<=u;++m)m!==p&&(T[p]*=y[m]);T[p]*=_[p];var A=3*(s+p);r.x+=T[p]*d[A++],r.y+=T[p]*d[A++],r.s+=T[p]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v){"use strict";var A={},R={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},N=new r,O=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!R.hasOwnProperty(e)||!R[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=R[e][t],a=e+t;return u(g[a])?n=g[a]:(n=function(n,a,s){if(u(s)||(s=new _),E.equalsEpsilon(n.x,0,E.EPSILON14)&&E.equalsEpsilon(n.y,0,E.EPSILON14)){var c=E.sign(n.z);r.unpack(S[e],0,N),"east"!==e&&"west"!==e&&r.multiplyByScalar(N,c,N),r.unpack(S[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(S[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),N=I[e],O=I[t],w=I[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=O.x,s[5]=O.y,s[6]=O.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},g[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new T,x=new r(1,1,1),C=new _;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,x,C);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new y;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return T.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new _,F=new _,B=new y,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,U,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;A.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/v.DAYS_PER_JULIAN_CENTURY:(a-.5)/v.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*v.SECONDS_PER_DAY)%v.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,Y=new y;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=A.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,Y),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,T=p/v.SECONDS_PER_DAY,R=.779057273264+T+.00273781191135448*(_+T);R=R%1*E.TWO_PI;var S=y.fromRotationZ(R,Y),g=y.multiply(h,S,X),I=Math.cos(r.xPoleWander),N=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),M=n-2451545+i/v.SECONDS_PER_DAY;M/=36525;var x=-47e-6*M*E.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),b=Y;return b[0]=I*C,b[1]=I*P,b[2]=O,b[3]=-N*P+w*O*C,b[4]=N*C+w*O*P,b[5]=-w*I,b[6]=-w*P-N*O*C,b[7]=w*C-N*O*P,b[8]=N*I,y.multiply(g,b,t)}}};var H=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=H;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,Z=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,E.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return A.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},A}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var y=new r,_=new t,T=new f,v=[new r,new r,new r],A=[new e,new e,new e],R=[new e,new e,new e],S=new t,g=new d,I=new f,N=new c;return E._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,y),h=r.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,T),O=f.inverse(E,T),w=A,M=v;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var x=S;for(u=0;u<3;u++)r.toCartesian(M[u],a,x),x=f.multiplyByPointAsVector(O,x,x),w[u].x=x.x,w[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,g),P=l.fromQuaternion(C,I),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)x=f.multiplyByPointAsVector(O,n[u],x),x=l.multiplyByVector(P,x,x),U=Math.min(U,x.x),D=Math.min(D,x.y),L=Math.max(L,x.x),F=Math.max(F,x.y);var B=c.fromRotation(i,N),z=R;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],Y=z[1],H=z[2],k=new Array(6);return e.pack(X,k),e.pack(Y,k,2),e.pack(H,k,4),k},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,E,y,_,T;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),E=t.dot(h,d),y=t.dot(h,p),_=t.dot(d,d),T=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),E=e.dot(h,d),y=e.dot(h,p),_=e.dot(d,d),T=e.dot(d,p)}var v=m*_-E*E,A=1/v;return f.y=(_*y-E*T)*A,f.z=(m*T-E*y)*A,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,T,v;h*f>=l*d?(_=o,T=p,v=-2*u*p+o*m):(_=c,T=E,v=-c*m+2*s*E);var A=v<0?-1:1,R=-A*Math.abs(_)*Math.sqrt(-y);a=-v+R;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),I=a===R?-g:-T/g;return i=T<=0?g+I:-v/(g*g+I*I+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var N=p,O=-2*u*p+o*m,w=E,M=-c*m+2*s*E,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-O)/3);i=2*Math.sqrt(-N);var b=Math.cos(P);a=i*b;var U=i*(-b/2-C*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*x,-M)/3),i=2*Math.sqrt(-w),b=Math.cos(P),a=i*b,U=i*(-b/2-C*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var v=Math.sqrt(d),A=(s+d-c/v)/2,R=(s+d+c/v)/2,S=n.computeRealRoots(1,v,A),g=n.computeRealRoots(1,-v,R);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,T=t/2,v=y/2,A=_-4*o,R=_+4*Math.abs(o),S=c-4*E,g=c+4*Math.abs(E);if(E<0||A*g<S*R){var I=Math.sqrt(S);p=I/2,m=0===I?0:(t*v-a)/I}else{var N=Math.sqrt(A);p=0===N?0:(t*v-a)/N,m=N/2}var O,w;0===T&&0===p?(O=0,w=0):r.sign(T)===r.sign(p)?(O=T+p,w=E/O):(w=T-p,O=E/w);var M,x;0===v&&0===m?(M=0,x=0):r.sign(v)===r.sign(m)?(M=v+m,x=o/M):(x=v-m,M=o/x);var C=n.computeRealRoots(1,O,M),P=n.computeRealRoots(1,w,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,R);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return T;var v=l[0],A=Math.sqrt(Math.max(1-v*v,0));if(T.push(new e(i,a*v,a*-A)),T.push(new e(i,a*v,a*A)),2===l.length){var R=l[1],S=Math.sqrt(Math.max(1-R*R,0));T.push(new e(i,a*R,a*-S)),T.push(new e(i,a*R,a*S))}return T}var g=_*_,I=y*y,N=p*p,O=_*y,w=N+I,M=2*(m*p+O),x=2*E*p+m*m-I+g,C=2*(E*m-O),P=E*E-g;if(0===w&&0===M&&0===x&&0===C)return T;l=c.computeRealRoots(w,M,x,C,P);var b=l.length;if(0===b)return T;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=D*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++U):T.push(new e(i,a*L,a*z))}return T}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,T=new e,v=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,E),A=e.subtract(a,n,y),R=e.cross(p,A,_),S=e.dot(m,R);if(u){if(S<o.EPSILON6)return;if(s=e.subtract(d,n,T),(l=e.dot(s,R))<0||l>S)return;if(c=e.cross(s,m,v),(f=e.dot(p,c))<0||l+f>S)return;h=e.dot(A,c)/S}else{if(Math.abs(S)<o.EPSILON6)return;var g=1/S;if(s=e.subtract(d,n,T),(l=e.dot(s,R)*g)<0||l>1)return;if(c=e.cross(s,m,v),(f=e.dot(p,c)*g)<0||l+f>1)return;h=e.dot(A,c)*g}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var R={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var S=new l;m.lineSegmentSphere=function(t,r,i,a){var o=S;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=n/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var N=new e,O=new e,w=new e,M=new e,x=new e,C=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,N);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,N),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,O),O),m=e.normalize(e.cross(f,d,w),w),E=C;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(r.radii,b),T=u.fromScale(r.oneOverRadii,U),v=D;v[0]=0,v[1]=-a.z,v[2]=a.y,v[3]=a.z,v[4]=0,v[5]=-a.x,v[6]=-a.y,v[7]=a.x,v[8]=0;var A,R,S=u.multiply(u.multiply(y,T,L),v,L),g=u.multiply(u.multiply(S,_,F),E,F),I=u.multiplyByVector(S,i,x),G=p(g,e.negate(I,N),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,Y=0;Y<V;++Y){A=u.multiplyByVector(_,u.multiplyByVector(E,G[Y],B),B);var H=e.normalize(e.subtract(A,i,M),M),k=e.dot(H,a);k>X&&(X=k,W=e.clone(A,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),R=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-X*X),R=c?-R:R,j.height=R,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var E=0,y=u+1;i=1;var _,T,v=[],A=[],R=0,S=[],g=s/3,I=[];for(d=0;d<g;d++)I[d]=!1;for(var N,O;-1!==E;){v=[],T=p[E],O=T.vertexTriangles.length;for(var w=0;w<O;++w)if(m=T.vertexTriangles[w],!I[m]){I[m]=!0,l=m+m+m;for(var M=0;M<3;++M)N=a[l],v.push(N),A.push(N),S[R]=N,++R,_=p[N],--_.numLiveTriangles,y-_.timeStamp>u&&(_.timeStamp=y,++y),++l}E=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,v,p,y,A,c)}return S},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function N(e){for(var t=e.length,r=t/3*6,n=E.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function O(e){var t=e.length;if(t>=3){var r=6*(t-2),n=E.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function w(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=E.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function M(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function x(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),A.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),v.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,y=b(e,t);for(n in y)if(y.hasOwnProperty(n))for(s=y[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var T=0;for(a=0;a<h;++a)T+=e[a][t].indices.length;var v=d.computeNumberOfVertices(new d({attributes:y,primitiveType:S.POINTS})),A=E.createTypedArray(v,T),R=0,g=0;for(a=0;a<h;++a){var I=e[a][t].indices,N=I.length;for(u=0;u<N;++u)A[R++]=g+I[u];g+=d.computeNumberOfVertices(e[a][t])}_=A}var O,w=new i,M=0;for(a=0;a<h;++a){if(O=e[a][t].boundingSphere,!c(O)){w=void 0;break}i.add(O.center,w,w)}if(c(w))for(i.divideByScalar(w,h,w),a=0;a<h;++a){O=e[a][t].boundingSphere;var x=i.magnitude(i.subtract(O.center,w,fe))+O.radius;x>M&&(M=x)}return new d({attributes:y,indices:_,primitiveType:m,boundingSphere:c(w)?new r(w,M):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=S.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=S.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=S.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=S.LINES,e}function G(e){switch(e.primitiveType){case S.TRIANGLE_FAN:return L(e);case S.TRIANGLE_STRIP:return F(e);case S.TRIANGLES:return D(e);case S.LINE_STRIP:return z(e);case S.LINE_LOOP:return q(e);case S.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<T.EPSILON6&&(e.y=t?-T.EPSILON6:T.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?T.sign(e.y):T.sign(r.y):a>o?T.sign(t.y):T.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,ge),e.y/(e.y-t.y),ge),r),i.clone(r,n),V(r,!0),V(n,!1)}function Y(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=Me.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Ie,Oe),X(e,r,Ne,we),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Ie,Oe),X(t,e,Ne,we),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Ie,Oe),X(r,t,Ne,we),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Ie,Oe),X(r,t,Ne,we),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Ie,Oe),X(t,e,Ne,we),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Ie,Oe),X(e,r,Ne,we),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Me.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=Ne,s[5]=Oe,s[6]=we,s.length=7),Me}}function H(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=E.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function k(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=H(t,n),r=H(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var E=e.add(d,p,d);e.add(E,m,E),h&&e.normalize(E,E),e.pack(E,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,E,y,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==E){var T=i.fromArray(o,3*e,Ue),v=i.fromArray(o,3*r,De),A=i.fromArray(o,3*n,Le),R=t(a,T,v,A,Fe);if(c(u)&&Ce(e,r,n,R,u,p.normal.values,_,!0),c(h)){var S=i.fromArray(h,3*e,Ue),g=i.fromArray(h,3*r,De),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(S,R.x,S),i.multiplyByScalar(g,R.y,g),i.multiplyByScalar(I,R.z,I);var N;i.equals(S,i.ZERO)&&i.equals(g,i.ZERO)&&i.equals(I,i.ZERO)?(N=Ue,N.x=0,N.y=0,N.z=0):(N=i.add(S,g,S),i.add(N,I,N),i.normalize(N,N)),i.pack(N,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,R,d,p.applyOffset.values,_),c(s)&&Ce(e,r,n,R,s,p.tangent.values,_,!0),c(l)&&Ce(e,r,n,R,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,R,f,p.st.values,_),E>0)for(var O=0;O<E;O++){var w=m[O];J(e,r,n,R,_,y[w],p[w])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:xe(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,E,y,_,T,v=d.length,A=k(t),R=k(t),S=[];S.length=n.length/3;var g=[];for(g.length=n.length/3,T=0;T<S.length;++T)S[T]=-1,g[T]=-1;var I=h.length;for(T=0;T<I;T+=3){var N=h[T],O=h[T+1],w=h[T+2],M=i.fromArray(n,3*N),x=i.fromArray(n,3*O),C=i.fromArray(n,3*w),P=Y(M,x,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=R.attributes,E=R.indices,y=S):(m=A.attributes,E=A.indices,y=g),_=Q(m,E,y,h,F<3?T+F:-1,B),K(N,O,w,B,n,a,u,o,s,l,f,m,d,v,r,_)}else c(P)&&(M=P.positions[0],x=P.positions[1],C=P.positions[2]),M.y<0?(m=R.attributes,E=R.indices,y=S):(m=A.attributes,E=A.indices,y=g),_=Q(m,E,y,h,T,M),K(N,O,w,M,n,a,u,o,s,l,f,m,d,v,r,_),_=Q(m,E,y,h,T+1,x),K(N,O,w,x,n,a,u,o,s,l,f,m,d,v,r,_),_=Q(m,E,y,h,T+2,C),K(N,O,w,C,n,a,u,o,s,l,f,m,d,v,r,_)}j(e,R,A)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,T.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){ -var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=k(r),l=k(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],E=u[t+1],y=i.fromArray(a,3*m,Ue),v=i.fromArray(a,3*E,De);Math.abs(y.y)<T.EPSILON6&&(y.y<0?y.y=-T.EPSILON6:y.y=T.EPSILON6),Math.abs(v.y)<T.EPSILON6&&(v.y<0?v.y=-T.EPSILON6:v.y=T.EPSILON6);var A=s.attributes,R=s.indices,S=d,g=l.attributes,I=l.indices,N=h,O=_.lineSegmentPlane(y,v,ze,Le);if(c(O)){var w=i.multiplyByScalar(i.UNIT_Y,5*T.EPSILON9,qe);y.y<0&&(i.negate(w,w),A=l.attributes,R=l.indices,S=h,g=s.attributes,I=s.indices,N=d);var M=i.add(O,w,Ge);p=Q(A,R,S,u,t,y),ee(m,E,y,a,p,A,o),p=Q(A,R,S,u,-1,M),ee(m,E,M,a,p,A,o),i.negate(w,w),i.add(O,w,M),p=Q(g,I,N,u,-1,M),ee(m,E,M,a,p,g,o),p=Q(g,I,N,u,t+1,v),ee(m,E,v,a,p,g,o)}else{var x,C,P;y.y<0?(x=l.attributes,C=l.indices,P=h):(x=s.attributes,C=s.indices,P=d),p=Q(x,C,P,u,t,y),ee(m,E,y,a,p,x,o),p=Q(x,C,P,u,t+1,v),ee(m,E,v,a,p,x,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,Ye);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,He);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,E=k(u),y=k(u),v=!1,A=l.length/3;for(t=0;t<A;t+=4){var R=t,S=t+2,g=i.fromArray(l,3*R,Xe),I=i.fromArray(l,3*S,Ye);if(Math.abs(g.y)<Qe)for(g.y=Qe*(I.y<0?-1:1),l[3*t+1]=g.y,l[3*(t+1)+1]=g.y,r=3*R;r<3*R+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(g.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*R;r<3*R+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var N=E.attributes,O=E.indices,w=y.attributes,M=y.indices,x=_.lineSegmentPlane(g,I,ze,ke);if(c(x)){v=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);g.y<0&&(i.negate(C,C),N=y.attributes,O=y.indices,w=E.attributes,M=E.indices);var P=i.add(x,C,Ze);N.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.prevPosition.values.push(f[3*R],f[3*R+1],f[3*R+2]),N.prevPosition.values.push(f[3*R+3],f[3*R+4],f[3*R+5]),N.prevPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(x,C,P),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.nextPosition.values.push(h[3*S],h[3*S+1],h[3*S+2]),w.nextPosition.values.push(h[3*S+3],h[3*S+4],h[3*S+5]);var b=n.fromArray(d,2*R,Ve),U=Math.abs(b.y);N.expandAndWidth.values.push(-1,U,1,U),N.expandAndWidth.values.push(-1,-U,1,-U),w.expandAndWidth.values.push(-1,U,1,U),w.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(x,g,He));if(D/=i.magnitudeSquared(i.subtract(I,g,He)),c(m)){var L=a.fromArray(m,4*R,Ke),F=a.fromArray(m,4*S,Ke),B=T.lerp(L.x,F.x,D),z=T.lerp(L.y,F.y,D),q=T.lerp(L.z,F.z,D),G=T.lerp(L.w,F.w,D);for(r=4*R;r<4*R+8;++r)N.color.values.push(m[r]);for(N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),r=4*S;r<4*S+8;++r)w.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*R,Ve),W=n.fromArray(p,2*(t+3),We),X=T.lerp(V.x,W.x,D);for(r=2*R;r<2*R+4;++r)N.st.values.push(p[r]);for(N.st.values.push(X,V.y),N.st.values.push(X,W.y),w.st.values.push(X,V.y),w.st.values.push(X,W.y),r=2*S;r<2*S+4;++r)w.st.values.push(p[r])}o=N.position.values.length/3-4,O.push(o,o+2,o+1),O.push(o+1,o+2,o+3),o=w.position.values.length/3-4,M.push(o,o+2,o+1),M.push(o+1,o+2,o+3)}else{var Y,H;for(g.y<0?(Y=y.attributes,H=y.indices):(Y=E.attributes,H=E.indices),Y.position.values.push(g.x,g.y,g.z),Y.position.values.push(g.x,g.y,g.z),Y.position.values.push(I.x,I.y,I.z),Y.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)Y.prevPosition.values.push(f[r]),Y.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)Y.expandAndWidth.values.push(d[r]),c(p)&&Y.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)Y.color.values.push(m[r]);o=Y.position.values.length/3-4,H.push(o,o+2,o+1),H.push(o+1,o+2,o+3)}}v&&(re(y),re(E)),j(e,y,E)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case S.TRIANGLES:e.indices=N(t);break;case S.TRIANGLE_STRIP:e.indices=O(t);break;case S.TRIANGLE_FAN:e.indices=w(t)}e.primitiveType=S.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,E=e.boundingSphere;return c(E)&&(m=new r(E.center,E.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:S.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=E.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var y in m)if(m.hasOwnProperty(y)&&c(m[y])&&c(m[y].values)){for(var _=m[y],T=_.values,v=0,A=_.componentsPerAttribute,R=u.createTypedArray(_.componentDatatype,p*A);v<t;){var S=n[v];if(-1!==S)for(var g=0;g<A;g++)R[A*S+g]=T[A*v+g];++v}_.values=R}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===S.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=g.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=T.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=M(e.attributes),s=e.indices,l=s.length;e.primitiveType===S.TRIANGLES?n=3:e.primitiveType===S.LINES?n=2:e.primitiveType===S.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,x(u,e.attributes,p)),a.push(m)}o+n>=T.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=M(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var E=i.fromArray(l,m,ae),y=s.cartesianToCartographic(E,oe),_=a.project(y,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new A,le=new v;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(A.equals(t,A.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(A.inverse(t,ce),A.transpose(ce,ce),A.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=A.clone(A.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],E=r[t+2],y=3*d,_=3*m,v=3*E;de.x=a[y],de.y=a[y+1],de.z=a[y+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[v],me.y=a[v+1],me.z=a[v+2],c[d].count++,c[m].count++,c[E].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var A=0;for(t=0;t<o;t++)c[t].indexOffset+=A,A+=c[t].count;h=0;var R;for(t=0;t<s;t+=3){R=c[r[t]];var S=R.indexOffset+R.currentCount;f[S]=h,R.currentCount++,R=c[r[t+1]],S=R.indexOffset+R.currentCount,f[S]=h,R.currentCount++,R=c[r[t+2]],S=R.indexOffset+R.currentCount,f[S]=h,R.currentCount++,h++}var g=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(R=c[t],i.clone(i.ZERO,he),R.count>0){for(h=0;h<R.count;h++)i.add(he,l[f[R.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,T.EPSILON10)&&i.clone(l[f[R.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,T.EPSILON10)&&(he.z=1),i.normalize(he,he),g[I]=he.x,g[I+1]=he.y,g[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:g}),e};var Ee=new i,ye=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],E=r[t+1],y=r[t+2];f=3*m,h=3*E,d=3*y;var _=2*m,T=2*E,v=2*y,A=n[f],R=n[f+1],S=n[f+2],g=o[_],I=o[_+1],N=o[T+1]-I,O=o[v+1]-I,w=1/((o[T]-g)*O-(o[v]-g)*N),M=(O*(n[h]-A)-N*(n[d]-A))*w,x=(O*(n[h+1]-R)-N*(n[d+1]-R))*w,C=(O*(n[h+2]-S)-N*(n[d+2]-S))*w;l[f]+=M,l[f+1]+=x,l[f+2]+=C,l[h]+=M,l[h+1]+=x,l[h+2]+=C,l[d]+=M,l[d+1]+=x,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,Ee),D=i.fromArray(l,f,_e),L=i.dot(U,D);i.multiplyByScalar(U,L,ye),i.normalize(i.subtract(D,ye,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var Te=new n,ve=new i,Ae=new i,Re=new i,Se=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,ve),i.equals(ve,i.ZERO)?f+=2:(Se=e.octEncodeInRange(ve,65535,Se),l[f++]=Se.x,l[f++]=Se.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),E=c(d);if(!m&&!E)return t;var y,_,T,v,A=t.attributes.tangent,R=t.attributes.bitangent,S=c(A),g=c(R);m&&(y=h.values),E&&(_=d.values),S&&(T=A.values),g&&(v=R.values),a=(m?y.length:_.length)/(m?3:2);var I=a,N=E&&m?2:1;N+=S||g?1:0,I*=N;var O=new Float32Array(I),w=0;for(r=0;r<a;++r){E&&(n.fromArray(_,2*r,Te),O[w++]=e.compressTextureCoordinates(Te));var M=3*r;m&&c(T)&&c(v)?(i.fromArray(y,M,ve),i.fromArray(T,M,Ae),i.fromArray(v,M,Re),e.octPack(ve,Ae,Re,Te),O[w++]=Te.x,O[w++]=Te.y):(m&&(i.fromArray(y,M,ve),O[w++]=e.octEncodeFloat(ve)),S&&(i.fromArray(T,M,ve),O[w++]=e.octEncodeFloat(ve)),g&&(i.fromArray(v,M,ve),O[w++]=e.octEncodeFloat(ve)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:N,values:O}),m&&delete t.attributes.normal,E&&delete t.attributes.st,g&&delete t.attributes.bitangent,S&&delete t.attributes.tangent,t};var ge=new i,Ie=new i,Ne=new i,Oe=new i,we=new i,Me={positions:new Array(7),indices:new Array(9)},xe=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>T.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=R.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,Ye=new i,He=new i,ke=new i,je=new i,Ze=new i,Ke=new a,Je=5*T.EPSILON9,Qe=T.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,R.ORIGIN_ZX_PLANE)!==y.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===S.TRIANGLES?$(e):t.primitiveType===S.LINES&&te(e);return e},ie}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/EllipseGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PrimitiveType","./Quaternion","./Rectangle","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,v,A,R,S,g,I,N){"use strict";function O(t,i,a){var u=i.vertexFormat,c=i.center,l=i.semiMajorAxis,h=i.semiMinorAxis,p=i.ellipsoid,y=i.stRotation,T=a?t.length/3*2:t.length/3,v=i.shadowVolume,A=u.st?new Float32Array(2*T):void 0,S=u.normal?new Float32Array(3*T):void 0,I=u.tangent?new Float32Array(3*T):void 0,N=u.bitangent?new Float32Array(3*T):void 0,O=v?new Float32Array(3*T):void 0,w=0,M=X,x=Y,C=H,P=new d(p),b=P.project(p.cartesianToCartographic(c,k),j),U=p.scaleToGeodeticSurface(c,L);p.geodeticSurfaceNormal(U,U);var D=G,z=V;if(0!==y){var J=g.fromAxisAngle(U,y,W);D=R.fromQuaternion(J,D),J=g.fromAxisAngle(U,-y,W),z=R.fromQuaternion(J,z)}else D=R.clone(R.IDENTITY,D),z=R.clone(R.IDENTITY,z);for(var Q=r.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Z),$=r.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=a?ee:0,re=te/3*2,ne=0;ne<ee;ne+=3){var ie=ne+1,ae=ne+2,oe=n.fromArray(t,ne,L);if(u.st){var ue=R.multiplyByVector(D,oe,F),se=P.project(p.cartesianToCartographic(ue,k),B);n.subtract(se,b,se),q.x=(se.x+l)/(2*l),q.y=(se.y+h)/(2*h),Q.x=Math.min(q.x,Q.x),Q.y=Math.min(q.y,Q.y),$.x=Math.max(q.x,$.x),$.y=Math.max(q.y,$.y),a&&(A[w+re]=q.x,A[w+1+re]=q.y),A[w++]=q.x,A[w++]=q.y}(u.normal||u.tangent||u.bitangent||v)&&(M=p.geodeticSurfaceNormal(oe,M),v&&(O[ne+te]=-M.x,O[ie+te]=-M.y,O[ae+te]=-M.z),(u.normal||u.tangent||u.bitangent)&&((u.tangent||u.bitangent)&&(x=n.normalize(n.cross(n.UNIT_Z,M,x),x),R.multiplyByVector(z,x,x)),u.normal&&(S[ne]=M.x,S[ie]=M.y,S[ae]=M.z,a&&(S[ne+te]=-M.x,S[ie+te]=-M.y,S[ae+te]=-M.z)),u.tangent&&(I[ne]=x.x,I[ie]=x.y,I[ae]=x.z,a&&(I[ne+te]=-x.x,I[ie+te]=-x.y,I[ae+te]=-x.z)),u.bitangent&&(C=n.normalize(n.cross(M,x,C),C),N[ne]=C.x,N[ie]=C.y,N[ae]=C.z,a&&(N[ne+te]=C.x,N[ie+te]=C.y,N[ae+te]=C.z))))}if(u.st){ee=A.length;for(var ce=0;ce<ee;ce+=2)A[ce]=(A[ce]-Q.x)/($.x-Q.x),A[ce+1]=(A[ce+1]-Q.y)/($.y-Q.y)}var le=new E;if(u.position){var fe=f.raisePositionsToHeight(t,i,a);le.position=new m({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:fe})}if(u.st&&(le.st=new m({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:A})),u.normal&&(le.normal=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:S})),u.tangent&&(le.tangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:I})),u.bitangent&&(le.bitangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:N})),v&&(le.extrudeDirection=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:O})),a&&s(i.offsetAttribute)){var he=new Uint8Array(T);if(i.offsetAttribute===_.TOP)he=e(he,1,0,T/2);else{var de=i.offsetAttribute===_.NONE?0:1;he=e(he,de)}le.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:he})}return le}function w(e){var t,r,n,i,a,o=new Array(e*(e+1)*12-6),u=0;for(t=0,n=1,i=0;i<3;i++)o[u++]=n++,o[u++]=t,o[u++]=n;for(i=2;i<e+1;++i){for(n=i*(i+1)-1,t=(i-1)*i-1,o[u++]=n++,o[u++]=t,o[u++]=n,r=2*i,a=0;a<r-1;++a)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;o[u++]=n++,o[u++]=t,o[u++]=n}for(r=2*e,++n,++t,i=0;i<r-1;++i)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;for(o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t++,o[u++]=t,++t,i=e-1;i>1;--i){for(o[u++]=t++,o[u++]=t,o[u++]=n,r=2*i,a=0;a<r-1;++a)o[u++]=n,o[u++]=t++,o[u++]=t,o[u++]=n++,o[u++]=t,o[u++]=n;o[u++]=t++,o[u++]=t++,o[u++]=n++}for(i=0;i<3;i++)o[u++]=t++,o[u++]=t,o[u++]=n;return o}function M(e){var r=e.center;J=n.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(r,J),e.height,J),J=n.add(r,J,J);var i=new t(J,e.semiMajorAxis),a=f.computeEllipsePositions(e,!0,!1),o=a.positions,u=a.numPts,s=O(o,e,!1),c=w(u);return c=v.createTypedArray(o.length/3,c),{boundingSphere:i,attributes:s,indices:c}}function x(t,i){var a=i.vertexFormat,u=i.center,c=i.semiMajorAxis,l=i.semiMinorAxis,f=i.ellipsoid,h=i.height,p=i.extrudedHeight,y=i.stRotation,T=t.length/3*2,v=new Float64Array(3*T),A=a.st?new Float32Array(2*T):void 0,S=a.normal?new Float32Array(3*T):void 0,I=a.tangent?new Float32Array(3*T):void 0,N=a.bitangent?new Float32Array(3*T):void 0,O=i.shadowVolume,w=O?new Float32Array(3*T):void 0,M=0,x=X,C=Y,P=H,b=new d(f),U=b.project(f.cartesianToCartographic(u,k),j),D=f.scaleToGeodeticSurface(u,L);f.geodeticSurfaceNormal(D,D);for(var V=g.fromAxisAngle(D,y,W),J=R.fromQuaternion(V,G),Q=r.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Z),$=r.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,K),ee=t.length,te=ee/3*2,re=0;re<ee;re+=3){var ne,ie=re+1,ae=re+2,oe=n.fromArray(t,re,L);if(a.st){var ue=R.multiplyByVector(J,oe,F),se=b.project(f.cartesianToCartographic(ue,k),B);n.subtract(se,U,se),q.x=(se.x+c)/(2*c),q.y=(se.y+l)/(2*l),Q.x=Math.min(q.x,Q.x),Q.y=Math.min(q.y,Q.y),$.x=Math.max(q.x,$.x),$.y=Math.max(q.y,$.y),A[M+te]=q.x,A[M+1+te]=q.y,A[M++]=q.x,A[M++]=q.y}oe=f.scaleToGeodeticSurface(oe,oe),ne=n.clone(oe,F),x=f.geodeticSurfaceNormal(oe,x),O&&(w[re+ee]=-x.x,w[ie+ee]=-x.y,w[ae+ee]=-x.z);var ce=n.multiplyByScalar(x,h,z);if(oe=n.add(oe,ce,oe),ce=n.multiplyByScalar(x,p,ce),ne=n.add(ne,ce,ne),a.position&&(v[re+ee]=ne.x,v[ie+ee]=ne.y,v[ae+ee]=ne.z,v[re]=oe.x,v[ie]=oe.y,v[ae]=oe.z),a.normal||a.tangent||a.bitangent){P=n.clone(x,P);var le=n.fromArray(t,(re+3)%ee,z);n.subtract(le,oe,le);var fe=n.subtract(ne,oe,B);x=n.normalize(n.cross(fe,le,x),x),a.normal&&(S[re]=x.x,S[ie]=x.y,S[ae]=x.z,S[re+ee]=x.x,S[ie+ee]=x.y,S[ae+ee]=x.z),a.tangent&&(C=n.normalize(n.cross(P,x,C),C),I[re]=C.x,I[ie]=C.y,I[ae]=C.z,I[re+ee]=C.x,I[re+1+ee]=C.y,I[re+2+ee]=C.z),a.bitangent&&(N[re]=P.x,N[ie]=P.y,N[ae]=P.z,N[re+ee]=P.x,N[ie+ee]=P.y,N[ae+ee]=P.z)}}if(a.st){ee=A.length;for(var he=0;he<ee;he+=2)A[he]=(A[he]-Q.x)/($.x-Q.x),A[he+1]=(A[he+1]-Q.y)/($.y-Q.y)}var de=new E;if(a.position&&(de.position=new m({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:v})),a.st&&(de.st=new m({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:A})),a.normal&&(de.normal=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:S})),a.tangent&&(de.tangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:I})),a.bitangent&&(de.bitangent=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:N})),O&&(de.extrudeDirection=new m({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:w})),s(i.offsetAttribute)){var pe=new Uint8Array(T);if(i.offsetAttribute===_.TOP)pe=e(pe,1,0,T/2);else{var me=i.offsetAttribute===_.NONE?0:1;pe=e(pe,me)}de.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:pe})}return de}function C(e){for(var t=e.length/3,r=v.createTypedArray(t,6*t),n=0,i=0;i<t;i++){var a=i,o=i+t,u=(a+1)%t,s=u+t;r[n++]=a,r[n++]=o,r[n++]=u,r[n++]=u,r[n++]=o,r[n++]=s}return r}function P(e){var r=e.center,i=e.ellipsoid,a=e.semiMajorAxis,o=n.multiplyByScalar(i.geodeticSurfaceNormal(r,L),e.height,L);Q.center=n.add(r,o,Q.center),Q.radius=a,o=n.multiplyByScalar(i.geodeticSurfaceNormal(r,o),e.extrudedHeight,o),$.center=n.add(r,o,$.center),$.radius=a;var u=f.computeEllipsePositions(e,!0,!0),s=u.positions,c=u.numPts,l=u.outerPositions,h=t.union(Q,$),d=O(s,e,!0),m=w(c),E=m.length;m.length=2*E;for(var _=s.length/3,A=0;A<E;A+=3)m[A+E]=m[A+2]+_,m[A+1+E]=m[A+1]+_,m[A+2+E]=m[A]+_;var R=v.createTypedArray(2*_/3,m),g=new p({attributes:d,indices:R,primitiveType:S.TRIANGLES}),I=x(l,e);m=C(l);var N=v.createTypedArray(2*l.length/3,m),M=new p({attributes:I,indices:N,primitiveType:S.TRIANGLES}),P=T.combineInstances([new y({geometry:g}),new y({geometry:M})]);return{boundingSphere:h,attributes:P[0].attributes,indices:P[0].indices}}function b(e,t,r,i,a,o,u){for(var s=f.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:r,rotation:i,granularity:a},!1,!0),c=s.outerPositions,l=c.length/3,h=new Array(l),d=0;d<l;++d)h[d]=n.fromArray(c,3*d);var p=I.fromCartesianArray(h,o,u);return p.width>A.PI&&(p.north=p.north>0?A.PI_OVER_TWO-A.EPSILON7:p.north,p.south=p.south<0?A.EPSILON7-A.PI_OVER_TWO:p.south,p.east=A.PI,p.west=-A.PI),p}function U(e){e=u(e,u.EMPTY_OBJECT);var t=e.center,r=u(e.ellipsoid,h.WGS84),i=e.semiMajorAxis,a=e.semiMinorAxis,o=u(e.granularity,A.RADIANS_PER_DEGREE),s=u(e.vertexFormat,N.DEFAULT),c=u(e.height,0),l=u(e.extrudedHeight,c);this._center=n.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=a,this._ellipsoid=h.clone(r),this._rotation=u(e.rotation,0),this._stRotation=u(e.stRotation,0),this._height=Math.max(l,c),this._granularity=o,this._vertexFormat=N.clone(s),this._extrudedHeight=Math.min(l,c),this._shadowVolume=u(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}function D(e){var t=-e._stRotation;if(0===t)return[0,0,0,1,1,0];for(var r=f.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0),i=r.outerPositions,a=i.length/3,o=new Array(a),u=0;u<a;++u)o[u]=n.fromArray(i,3*u);var s=e._ellipsoid,c=e.rectangle;return p._textureCoordinateRotationPoints(o,t,s,c)}var L=new n,F=new n,B=new n,z=new n,q=new r,G=new R,V=new R,W=new g,X=new n,Y=new n,H=new n,k=new i,j=new n,Z=new r,K=new r,J=new n,Q=new t,$=new t;U.packedLength=n.packedLength+h.packedLength+N.packedLength+9,U.pack=function(e,t,r){return r=u(r,0),n.pack(e._center,t,r),r+=n.packedLength,h.pack(e._ellipsoid,t,r),r+=h.packedLength,N.pack(e._vertexFormat,t,r),r+=N.packedLength,t[r++]=e._semiMajorAxis,t[r++]=e._semiMinorAxis,t[r++]=e._rotation,t[r++]=e._stRotation,t[r++]=e._height,t[r++]=e._granularity,t[r++]=e._extrudedHeight,t[r++]=e._shadowVolume?1:0,t[r]=u(e._offsetAttribute,-1),t};var ee=new n,te=new h,re=new N,ne={center:ee,ellipsoid:te,vertexFormat:re,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};return U.unpack=function(e,t,r){t=u(t,0);var i=n.unpack(e,t,ee);t+=n.packedLength;var a=h.unpack(e,t,te);t+=h.packedLength;var o=N.unpack(e,t,re);t+=N.packedLength;var c=e[t++],l=e[t++],f=e[t++],d=e[t++],p=e[t++],m=e[t++],E=e[t++],y=1===e[t++],_=e[t];return s(r)?(r._center=n.clone(i,r._center),r._ellipsoid=h.clone(a,r._ellipsoid),r._vertexFormat=N.clone(o,r._vertexFormat),r._semiMajorAxis=c,r._semiMinorAxis=l,r._rotation=f,r._stRotation=d,r._height=p,r._granularity=m,r._extrudedHeight=E,r._shadowVolume=y,r._offsetAttribute=-1===_?void 0:_,r):(ne.height=p,ne.extrudedHeight=E,ne.granularity=m,ne.stRotation=d,ne.rotation=f,ne.semiMajorAxis=c,ne.semiMinorAxis=l,ne.shadowVolume=y,ne.offsetAttribute=-1===_?void 0:_,new U(ne))},U.computeRectangle=function(e,t){e=u(e,u.EMPTY_OBJECT);var r=e.center,n=u(e.ellipsoid,h.WGS84),i=e.semiMajorAxis,a=e.semiMinorAxis,o=u(e.granularity,A.RADIANS_PER_DEGREE);return b(r,i,a,u(e.rotation,0),o,n,t)},U.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var r=t._height,n=t._extrudedHeight,i=!A.equalsEpsilon(r,n,0,A.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var a,u={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:r,granularity:t._granularity,vertexFormat:t._vertexFormat,stRotation:t._stRotation};if(i)u.extrudedHeight=n,u.shadowVolume=t._shadowVolume,u.offsetAttribute=t._offsetAttribute,a=P(u);else if(a=M(u),s(t._offsetAttribute)){var c=a.attributes.position.values.length,l=new Uint8Array(c/3),f=t._offsetAttribute===_.NONE?0:1;e(l,f),a.attributes.applyOffset=new m({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:l})}return new p({attributes:a.attributes,indices:a.indices,primitiveType:S.TRIANGLES,boundingSphere:a.boundingSphere,offsetAttribute:t._offsetAttribute})}},U.createShadowVolume=function(e,t,r){var n=e._granularity,i=e._ellipsoid,a=t(n,i),o=r(n,i);return new U({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:i,rotation:e._rotation,stRotation:e._stRotation,granularity:n,extrudedHeight:a,height:o,vertexFormat:N.POSITION_ONLY,shadowVolume:!0})},c(U.prototype,{rectangle:{get:function(){return s(this._rectangle)||(this._rectangle=b(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return s(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=D(this)),this._textureCoordinateRotationPoints}}}),U}),define("Workers/createEllipseGeometry",["../Core/Cartesian3","../Core/defined","../Core/EllipseGeometry","../Core/Ellipsoid"],function(e,t,r,n){"use strict";function i(i,a){return t(a)&&(i=r.unpack(i,a)),i._center=e.clone(i._center),i._ellipsoid=n.clone(i._ellipsoid),r.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as o}from"./chunk-6A5E2WLP.js";import"./chunk-E5APRSR6.js";import"./chunk-7GU2ORNB.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,d as c}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as n}from"./chunk-DRYFJEFT.js";function a(r,i){return n(i)&&(r=o.unpack(r,i)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),o.createGeometry(r)}var u=a;export{u as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js index 532b4870a..acafada4a 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipseOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,g,C,x,U,P,D,L,F,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*S),g=1/(1+b*I),C=1/(1+b*N),x=w*w,U=g*g,P=C*C,D=x*w,L=U*g,F=P*C,v=_*x+m*U+y*P-1,M=_*D*S+m*L*I+y*F*N;B=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*g,c.z=h*C,c):new e(l*w,f*g,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=o(t,E,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+d;return n(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(E,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+d-_+y,N=2*(E-h),O=2*(f-p),v=2*(E+h),M=-s-d+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=E*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-E,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],g=t[10],C=t[11],x=t[12],U=t[13],P=t[14],D=t[15],L=n*T+u*R+f*A+p*S,F=i*T+s*R+h*A+_*S,b=a*T+c*R+d*A+m*S,B=o*T+l*R+E*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+d*O+m*v,V=o*I+l*N+E*O+y*v,X=n*M+u*w+f*g+p*C,W=i*M+s*w+h*g+_*C,H=a*M+c*w+d*g+m*C,Y=o*M+l*w+E*g+y*C,k=n*x+u*U+f*P+p*D,j=i*x+s*U+h*P+_*D,K=a*x+c*U+d*P+m*D,Z=o*x+l*U+E*P+y*D;return r[0]=L,r[1]=F,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,g=a*p+s*_+f*m,C=n*y+o*T+c*R,x=i*y+u*T+l*R,U=a*y+s*T+f*R,P=n*A+o*S+c*I,D=i*A+u*S+l*I,L=a*A+s*S+f*I,F=n*N+o*O+c*v+h,b=i*N+u*O+l*v+d,B=a*N+s*O+f*v+E;return r[0]=M,r[1]=w,r[2]=g,r[3]=0,r[4]=C,r[5]=x,r[6]=U,r[7]=0,r[8]=P,r[9]=D,r[10]=L,r[11]=0,r[12]=F,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,g=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=g,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,g=_*v,C=S*N,x=_*O,U=m*N,P=p*v,D=S*I,L=p*O,F=m*I,b=p*N,B=_*I,z=M*h+C*d+x*E-(w*h+g*d+U*E),q=w*f+P*d+F*E-(M*f+D*d+L*E),G=g*f+D*h+b*E-(C*f+P*h+B*E),V=U*f+L*h+B*d-(x*f+F*h+b*d),X=w*i+g*a+U*o-(M*i+C*a+x*o),W=M*n+D*a+L*o-(w*n+P*a+F*o),H=C*n+P*i+B*o-(g*n+D*i+b*o),Y=x*n+F*i+b*a-(U*n+L*i+B*a);M=a*E,w=o*d,g=i*E,C=o*h,x=i*d,U=a*h,P=n*E,D=o*f,L=n*d,F=a*f,b=n*h,B=i*f;var k=M*N+C*O+x*v-(w*N+g*O+U*v),j=w*I+P*O+F*v-(M*I+D*O+L*v),K=g*I+D*N+b*v-(C*I+P*N+B*v),Z=U*I+L*N+B*O-(x*I+F*N+b*O),J=g*m+U*S+w*_-(x*S+M*_+C*m),Q=L*S+M*p+D*m-(P*m+F*S+w*p),$=P*_+B*S+C*p-(b*S+g*p+D*_),ee=b*m+x*p+F*_-(L*_+B*m+U*p),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var g=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=o,P=c,D=g;C>D&&(D=C,U=u,P=l),x>D&&(D=x,U=s,P=f);var L=S;L.x=.5*(U.x+P.x),L.y=.5*(U.y+P.y),L.z=.5*(U.z+P.z);var F=e.magnitudeSquared(e.subtract(P,L,A)),b=Math.sqrt(F),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>F){var W=Math.sqrt(X);b=.5*(b+W),F=b*b;var H=W-b;L.x=(b*L.x+H*a.x)/W,L.y=(b*L.y+H*a.y)/W,L.z=(b*L.z+H*a.z)/W}}return b<G?(e.clone(L,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var M=new o,w=new e,g=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,w),c=r.project(x,g),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var U=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,U);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var g=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=g,u.y=C,u.z=x,g<c.x&&e.clone(u,c),g>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var U=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),L=c,F=h,b=U;P>b&&(b=P,L=l,F=v),D>b&&(b=D,L=f,F=M);var B=S;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var z=e.magnitudeSquared(e.subtract(F,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],g=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=g,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),g<c.z&&e.clone(a,c),g>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,L=C;x>L&&(L=x,P=s,D=f),U>L&&(L=U,P=c,D=h);var F=S;F.x=.5*(P.x+D.x),F.y=.5*(P.y+D.y),F.z=.5*(P.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,F,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<V?(e.clone(F,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var P=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return r.radius=s,r};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,L),u=l.getColumn(n,2,F);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen", -n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(g)){g=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(g=!0,C=o(e[1]),C.isNightly=!!e[2])}return g}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(x=!0,U=o(e[1]))}return x}function E(){return d()&&U}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&F}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,g,C,x,U,P,D,L,F,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,E=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var g=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;x[L]=1/(F*b),U[L]=F/b}return x[7]=C/136,U[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)P[f]=(x[f]*c-U[f])*o,D[f]=(x[f]*l-U[f])*o;var h=i*r*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,g);return s.multiplyByScalar(t,h,n),s.add(E,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/EllipseGeometryLibrary",["./Cartesian3","./Math","./Matrix3","./Quaternion"],function(e,t,r,n){"use strict";function i(t,i,a,l,f,h,d,E,p,_){var m=t+i;e.multiplyByScalar(l,Math.cos(m),o),e.multiplyByScalar(a,Math.sin(m),u),e.add(o,u,o);var y=Math.cos(t);y*=y;var T=Math.sin(t);T*=T;var R=h/Math.sqrt(d*y+f*T),A=R/E;return n.fromAxisAngle(o,A,s),r.fromQuaternion(s,c),r.multiplyByVector(c,p,_),e.normalize(_,_),e.multiplyByScalar(_,E,_),_}var a={},o=new e,u=new e,s=new n,c=new r,l=new e,f=new e,h=new e,d=new e;a.raisePositionsToHeight=function(t,r,n){for(var i=r.ellipsoid,a=r.height,o=r.extrudedHeight,u=n?t.length/3*2:t.length/3,s=new Float64Array(3*u),c=t.length,E=n?c:0,p=0;p<c;p+=3){var _=p+1,m=p+2,y=e.fromArray(t,p,l);i.scaleToGeodeticSurface(y,y);var T=e.clone(y,f),R=i.geodeticSurfaceNormal(y,d),A=e.multiplyByScalar(R,a,h);e.add(y,A,y),n&&(e.multiplyByScalar(R,o,A),e.add(T,A,T),s[p+E]=T.x,s[_+E]=T.y,s[m+E]=T.z),s[p]=y.x,s[_]=y.y,s[m]=y.z}return s};var E=new e,p=new e,_=new e;return a.computeEllipsePositions=function(r,n,a){var o=r.semiMinorAxis,u=r.semiMajorAxis,s=r.rotation,c=r.center,d=8*r.granularity,m=o*o,y=u*u,T=u*o,R=e.magnitude(c),A=e.normalize(c,E),S=e.cross(e.UNIT_Z,c,p);S=e.normalize(S,S);var I=e.cross(A,S,_),N=1+Math.ceil(t.PI_OVER_TWO/d),O=t.PI_OVER_TWO/(N-1),v=t.PI_OVER_TWO-N*O;v<0&&(N-=Math.ceil(Math.abs(v)/O));var M,w,g,C,x,U=N*(N+2)*2,P=n?new Array(3*U):void 0,D=0,L=l,F=f,b=4*N*3,B=b-1,z=0,q=a?new Array(b):void 0;for(v=t.PI_OVER_TWO,L=i(v,s,I,S,m,T,y,R,A,L),n&&(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z),a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x),v=t.PI_OVER_TWO-O,M=1;M<N+1;++M){if(L=i(v,s,I,S,m,T,y,R,A,L),F=i(Math.PI-v,s,I,S,m,T,y,R,A,F),n){for(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z,g=2*M+2,w=1;w<g-1;++w)C=w/(g-1),x=e.lerp(L,F,C,h),P[D++]=x.x,P[D++]=x.y,P[D++]=x.z;P[D++]=F.x,P[D++]=F.y,P[D++]=F.z}a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,q[z++]=F.x,q[z++]=F.y,q[z++]=F.z),v=t.PI_OVER_TWO-(M+1)*O}for(M=N;M>1;--M){if(v=t.PI_OVER_TWO-(M-1)*O,L=i(-v,s,I,S,m,T,y,R,A,L),F=i(v+Math.PI,s,I,S,m,T,y,R,A,F),n){for(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z,g=2*(M-1)+2,w=1;w<g-1;++w)C=w/(g-1),x=e.lerp(L,F,C,h),P[D++]=x.x,P[D++]=x.y,P[D++]=x.z;P[D++]=F.x,P[D++]=F.y,P[D++]=F.z}a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,q[z++]=F.x,q[z++]=F.y,q[z++]=F.z)}v=t.PI_OVER_TWO,L=i(-v,s,I,S,m,T,y,R,A,L);var G={};return n&&(P[D++]=L.x,P[D++]=L.y,P[D++]=L.z, -G.positions=P,G.numPts=N),a&&(q[B--]=L.z,q[B--]=L.y,q[B--]=L.x,G.outerPositions=q),G},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],g=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var C;if(null!==(u=w.match(A)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var x=+u[2],U=+u[3]||0,P=new Date(Date.UTC(r,0,4));C=7*x+U-P.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(g)){u=g.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=g.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=g.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,_-=b;break;case"-":h+=F,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=E(r,s,l,h,_,y,N);return n(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,E,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){d(e);var t=I.insert(e) -;if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function g(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function U(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function P(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function L(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function F(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return L(n,i);case"blob":var a=L(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(g(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return U({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),U({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),g(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;g(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(F(s,t));if(X)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,d);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?E=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);r.x+=T[E]*d[A++],r.y+=T[E]*d[A++],r.s+=T[E]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var g=new T,C=new r(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,g),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),y.multiply(a,s,a)};var U=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,U),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),L=new r,F=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),g=n-2451545+i/R.SECONDS_PER_DAY;g/=36525;var C=-47e-6*g*_.RADIANS_PER_DEGREE/3600,x=Math.cos(C),U=Math.sin(C),P=H;return P[0]=O*x,P[1]=O*U,P[2]=M,P[3]=-v*U+w*M*x,P[4]=v*x+w*M*U,P[5]=-w*O,P[6]=-w*U-v*M*x,P[7]=w*x-v*M*U,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new d,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=E.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,g=R;g[0].longitude=o.west,g[0].latitude=o.south,g[1].longitude=o.west,g[1].latitude=o.north,g[2].longitude=o.east,g[2].latitude=o.south;var C=I;for(u=0;u<3;u++)r.toCartesian(g[u],a,C),C=f.multiplyByPointAsVector(M,C,C),w[u].x=C.x,w[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,N),U=l.fromQuaternion(x,O),P=n.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)C=f.multiplyByPointAsVector(M,n[u],C),C=l.multiplyByVector(U,C,C),D=Math.min(D,C.x),L=Math.min(L,C.y),F=Math.max(F,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=L,z[1].x=D,z[1].y=b,z[2].x=F,z[2].y=L;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipseOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EllipseGeometryLibrary","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){var i=e.center;R=r.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(i,R),e.height,R),R=r.add(i,R,R);for(var a=new t(R,e.semiMajorAxis),o=u.computeEllipsePositions(e,!1,!0).outerPositions,s=new f({position:new l({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:u.raisePositionsToHeight(o,e,!1)})}),c=o.length/3,h=d.createTypedArray(c,2*c),E=0,p=0;p<c;++p)h[E++]=p,h[E++]=(p+1)%c;return{boundingSphere:a,attributes:s,indices:h}}function m(o){var s=o.center,c=o.ellipsoid,p=o.semiMajorAxis,_=r.multiplyByScalar(c.geodeticSurfaceNormal(s,T),o.height,T);A.center=r.add(s,_,A.center),A.radius=p,_=r.multiplyByScalar(c.geodeticSurfaceNormal(s,_),o.extrudedHeight,_),S.center=r.add(s,_,S.center),S.radius=p;var m=u.computeEllipsePositions(o,!1,!0).outerPositions,y=new f({position:new l({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:u.raisePositionsToHeight(m,o,!0)})});m=y.position.values;var R=t.union(A,S),I=m.length/3;if(a(o.offsetAttribute)){var N=new Uint8Array(I);if(o.offsetAttribute===h.TOP)N=e(N,1,0,I/2);else{var O=o.offsetAttribute===h.NONE?0:1;N=e(N,O)}y.applyOffset=new l({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}var v=i(o.numberOfVerticalLines,16);v=E.clamp(v,0,I/2);var M=d.createTypedArray(I,2*I+2*v);I/=2;var w,g=0;for(w=0;w<I;++w)M[g++]=w,M[g++]=(w+1)%I,M[g++]=w+I,M[g++]=(w+1)%I+I;var C;if(v>0){var x=Math.min(v,I);C=Math.round(I/x);var U=Math.min(C*v,I);for(w=0;w<U;w+=C)M[g++]=w,M[g++]=w+I}return{boundingSphere:R,attributes:y,indices:M}}function y(e){e=i(e,i.EMPTY_OBJECT);var t=e.center,n=i(e.ellipsoid,s.WGS84),a=e.semiMajorAxis,o=e.semiMinorAxis,u=i(e.granularity,E.RADIANS_PER_DEGREE),c=i(e.height,0),l=i(e.extrudedHeight,c);this._center=r.clone(t),this._semiMajorAxis=a,this._semiMinorAxis=o,this._ellipsoid=s.clone(n),this._rotation=i(e.rotation,0),this._height=Math.max(l,c),this._granularity=u,this._extrudedHeight=Math.min(l,c),this._numberOfVerticalLines=Math.max(i(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}var T=new r,R=new r,A=new t,S=new t;y.packedLength=r.packedLength+s.packedLength+8,y.pack=function(e,t,n){return n=i(n,0),r.pack(e._center,t,n),n+=r.packedLength,s.pack(e._ellipsoid,t,n),n+=s.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=i(e._offsetAttribute,-1),t};var I=new r,N=new s,O={center:I,ellipsoid:N,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};return y.unpack=function(e,t,n){t=i(t,0);var o=r.unpack(e,t,I);t+=r.packedLength;var u=s.unpack(e,t,N);t+=s.packedLength;var c=e[t++],l=e[t++],f=e[t++],h=e[t++],d=e[t++],E=e[t++],p=e[t++],_=e[t];return a(n)?(n._center=r.clone(o,n._center),n._ellipsoid=s.clone(u,n._ellipsoid),n._semiMajorAxis=c,n._semiMinorAxis=l,n._rotation=f,n._height=h,n._granularity=d,n._extrudedHeight=E,n._numberOfVerticalLines=p,n._offsetAttribute=-1===_?void 0:_,n):(O.height=h,O.extrudedHeight=E,O.granularity=d,O.rotation=f,O.semiMajorAxis=c,O.semiMinorAxis=l,O.numberOfVerticalLines=p,O.offsetAttribute=-1===_?void 0:_,new y(O))},y.createGeometry=function(t){if(!(t._semiMajorAxis<=0||t._semiMinorAxis<=0)){var r=t._height,i=t._extrudedHeight,o=!E.equalsEpsilon(r,i,0,E.EPSILON2);t._center=t._ellipsoid.scaleToGeodeticSurface(t._center,t._center);var u,s={center:t._center,semiMajorAxis:t._semiMajorAxis,semiMinorAxis:t._semiMinorAxis,ellipsoid:t._ellipsoid,rotation:t._rotation,height:r,granularity:t._granularity,numberOfVerticalLines:t._numberOfVerticalLines};if(o)s.extrudedHeight=i,s.offsetAttribute=t._offsetAttribute,u=m(s);else if(u=_(s),a(t._offsetAttribute)){var f=u.attributes.position.values.length,d=new Uint8Array(f/3),y=t._offsetAttribute===h.NONE?0:1;e(d,y),u.attributes.applyOffset=new l({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new c({attributes:u.attributes,indices:u.indices,primitiveType:p.LINES,boundingSphere:u.boundingSphere,offsetAttribute:t._offsetAttribute})}},y}),define("Workers/createEllipseOutlineGeometry",["../Core/Cartesian3","../Core/defined","../Core/EllipseOutlineGeometry","../Core/Ellipsoid"],function(e,t,r,n){"use strict";function i(i,a){return t(a)&&(i=r.unpack(i,a)),i._center=e.clone(i._center),i._ellipsoid=n.clone(i._ellipsoid),r.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as i}from"./chunk-AXIFPJHM.js";import"./chunk-E5APRSR6.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,d as c}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function a(r,n){return o(n)&&(r=i.unpack(r,n)),r._center=t.clone(r._center),r._ellipsoid=c.clone(r._ellipsoid),i.createGeometry(r)}var p=a;export{p as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js index eecc018a7..9817c6f21 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,E=new o,d=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:d,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,E);var l=Math.sqrt(o.dot(h,E));return E=o.divideByScalar(E,l,E),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(E,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,E=i.x,d=i.y,p=i.z,_=l*l*E*E,m=f*f*d*d,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,C,g,U,x,P,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*N),U=w*w,x=C*C,P=g*g,D=U*w,F=x*C,L=P*g,v=_*U+m*x+y*P-1,M=_*D*S+m*F*I+y*L*N;B=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=a.EPSILON1;return u.fromCartesian=function(t,r,i){var d=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:E,m=o(t,d,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=E;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var d=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,d),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],d[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],d[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=d[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var E,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;E=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+E*E),l=E*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=r-u-f+E,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+E,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+E;return n(t)?(t[0]=d,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(d,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,E=r*u,d=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=E,t[2]=_,t[3]=f,t[4]=d,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,E,d,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var E=new e;s.getMaximumScale=function(t){return s.getScale(t,E),e.maximumComponent(E)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var d=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),E=r*c(h);a<10&&l(h)>E;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var E=1/h;return s.multiplyByScalar(t,E,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,E,d,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(E,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(d,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-E-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+E-_+y,N=2*(d-h),O=2*(f-p),v=2*(d+h),M=-s-E+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,E),E);var u=h.x,s=h.y,c=h.z,d=f.x,p=f.y,_=f.z,m=E.x,y=E.y,T=E.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=d*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-d,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-d,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,E=l,d=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=E,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var d=new e;l.setScale=function(t,r,n){var i=l.getScale(t,d),a=e.divideComponents(r,i,d);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],U=t[12],x=t[13],P=t[14],D=t[15],F=n*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,b=a*T+c*R+E*A+m*S,B=o*T+l*R+d*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+E*O+m*v,V=o*I+l*N+d*O+y*v,X=n*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+E*C+m*g,Y=o*M+l*w+d*C+y*g,k=n*U+u*x+f*P+p*D,j=i*U+s*x+h*P+_*D,K=a*U+c*x+E*P+m*D,Z=o*U+l*x+d*P+y*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=n*y+o*T+c*R,U=i*y+u*T+l*R,x=a*y+s*T+f*R,P=n*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=n*N+o*O+c*v+h,b=i*N+u*O+l*v+E,B=a*N+s*O+f*v+d;return r[0]=M,r[1]=w,r[2]=C,r[3]=0,r[4]=g,r[5]=U,r[6]=x,r[7]=0,r[8]=P,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*E+c*d,S=i*h+u*E+l*d,I=a*h+s*E+f*d,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=C,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],E=e[9],d=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,C=_*v,g=S*N,U=_*O,x=m*N,P=p*v,D=S*I,F=p*O,L=m*I,b=p*N,B=_*I,z=M*h+g*E+U*d-(w*h+C*E+x*d),q=w*f+P*E+L*d-(M*f+D*E+F*d),G=C*f+D*h+b*d-(g*f+P*h+B*d),V=x*f+F*h+B*E-(U*f+L*h+b*E),X=w*i+C*a+x*o-(M*i+g*a+U*o),W=M*n+D*a+F*o-(w*n+P*a+L*o),H=g*n+P*i+B*o-(C*n+D*i+b*o),Y=U*n+L*i+b*a-(x*n+F*i+B*a);M=a*d,w=o*E,C=i*d,g=o*h,U=i*E,x=a*h,P=n*d,D=o*f,F=n*E,L=a*f,b=n*h,B=i*f;var k=M*N+g*O+U*v-(w*N+C*O+x*v),j=w*I+P*O+L*v-(M*I+D*O+F*v),K=C*I+D*N+b*v-(g*I+P*N+B*v),Z=x*I+F*N+B*O-(U*I+L*N+b*O),J=C*m+x*S+w*_-(U*S+M*_+g*m),Q=F*S+M*p+D*m-(P*m+L*S+w*p),$=P*_+B*S+g*p-(b*S+C*p+D*_),ee=b*m+U*p+L*_-(F*_+B*m+x*p),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-r*f-n*h-i*E,p=-a*f-o*h-u*E,_=-s*f-c*h-l*E;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=d,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];r=Math.min(r,E.longitude),i=Math.max(i,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;a=Math.min(a,d),o=Math.max(o,d)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,p=e.length;d<p;d++){var _=t.cartesianToCartographic(e[d]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),E=Math.max(E,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=E,i):new s(o,h,c,E)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=E,r):new s(l,h,f,E)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,p=c;p.height=i,p.longitude=d,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function E(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var d=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;E.fromPoints=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,d),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=o,P=c,D=C;g>D&&(D=g,x=u,P=l),U>D&&(D=U,x=s,P=f);var F=S;F.x=.5*(x.x+P.x),F.y=.5*(x.y+P.y),F.z=.5*(x.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var M=new o,w=new e,C=new e,g=new t,U=new t;E.fromRectangle2D=function(e,t,r){return E.fromRectangleWithHeights2D(e,t,0,0,r)},E.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,g),g.height=a,h.northeast(t,U),U.height=o;var s=r.project(g,w),c=r.project(U,C),l=c.x-s.x,f=c.y-s.y,d=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+d*d);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*d,u};var x=[];E.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,x);return E.fromPoints(s,u)},E.fromVertices=function(t,r,a,o){if(i(o)||(o=new E),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,d),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+r.x,g=t[s+1]+r.y,U=t[s+2]+r.z;u.x=C,u.y=g,u.z=U,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),U<f.z&&e.clone(u,f),U>M.z&&e.clone(u,M)}var x=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=x;P>b&&(b=P,F=l,L=v),D>b&&(b=D,F=f,L=M);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},E.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new E),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,d),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],C=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;U>F&&(F=U,P=s,D=f),x>F&&(F=x,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},E.fromCornerPoints=function(t,r,n){i(n)||(n=new E);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},E.fromEllipsoid=function(t,r){return i(r)||(r=new E),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var P=new e;E.fromBoundingSpheres=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return E.clone(t[0],r);if(2===n)return E.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=E.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;E.fromOrientedBoundingBox=function(t,r){i(r)||(r=new E);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},E.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},E.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new E);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;E.union=function(t,r,n){i(n)||(n=new E);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;E.expand=function(t,r,n){n=E.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},E.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},E.transform=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;E.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},E.transformWithoutScale=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;E.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return E.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),d=j,p=d[0];e.add(s,l,p),e.add(p,c,p),p=d[1],e.add(s,l,p),e.add(p,h,p),p=d[2],e.add(s,f,p),e.add(p,h,p),p=d[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=d[4],e.add(s,l,p),e.add(p,c,p),p=d[5],e.add(s,l,p),e.add(p,h,p),p=d[6],e.add(s,f,p),e.add(p,h,p),p=d[7],e.add(s,f,p),e.add(p,c,p);for(var _=d.length,m=0;m<_;++m){var y=d[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=E.fromPoints(d,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,r){return E.computePlaneDistances(this,e,t,r)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return v*e*e*e},E}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return d(e)}function i(e){return d(a(e))}function u(e){return E(e)}var s,c,l,f,h,E,d;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},E=function(e){return p(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){d(e)}var c,l,f,h,E,d,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],E=o(),c)for(_=E.progress,p=function(e){h.push(e),--l||(d=p=m,E.reject(h))},d=function(e){f.push(e),--c||(d=p=m,E.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else E.resolve(f);return E.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function E(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function d(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=s,e.chain=d,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function E(){if(!t(U)){U=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1]))}return U}function d(){return E()&&x}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,C,g,U,x,P,D,F,L,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],E=e[u.COLUMN1ROW1],d=e[u.COLUMN2ROW2],p=h+E+d;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;E>h&&(m=1),d>h&&d>E&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i, -t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,E=new s,d=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),d=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(d,p,d),E=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(E,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,E=o*c+n*s-i*u+a*l,d=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=E,r.w=d,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,U=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;U[F]=1/(L*b),x[F]=L/b}return U[7]=g/136,x[7]=8*g/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)P[f]=(U[f]*c-x[f])*o,D[f]=(U[f]*l-x[f])*o;var h=i*r*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),E=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),d=s.multiplyByScalar(e,E,C);return s.multiplyByScalar(t,h,n),s.add(d,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var E,d,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return E=+m||0,E=Math.round(E-E%1),d=E<0?"-":T,m=d+i(String(Math.abs(E)),f,"0",!1),a(m,d,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return E=+m,d=E<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=d+Math.abs(E)[p](f),a(m,d,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function E(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function d(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,E(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var g;if(null!==(u=w.match(A)))r=+u[1],g=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var U=+u[2],x=+u[3]||0,P=new Date(Date.UTC(r,0,4));g=7*U+x-P.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=d(r,s,l,h,_,y,N);return n(t)?(E(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var _=E+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=d,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,d,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return E(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return E(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return E(e.dayNumber,n,r)},p.addDays=function(e,t,r){return E(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)E(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||d(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){E(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?g(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function U(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0, -this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function x(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return U._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,x({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function P(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},U._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();U.createIfNeeded=function(e){return e instanceof U?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new U({url:e})};var G;U.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=U.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(U,{isBlobSupported:{get:function(){return q}}}),s(U.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),U.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},U.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},U.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},U.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},U.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},U.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},U.prototype.clone=function(e){return u(e)||(e=new U({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},U.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},U.prototype.appendForwardSlash=function(){this._url=r(this._url)},U.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},U.fetchArrayBuffer=function(e){return new U(e).fetchArrayBuffer()},U.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},U.fetchBlob=function(e){return new U(e).fetchBlob()},U.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return x({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return U.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return U.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new U({url:t}),x({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},U.fetchImage=function(e){return new U(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},U.prototype.fetchText=function(){return this.fetch({responseType:"text"})},U.fetchText=function(e){return new U(e).fetchText()},U.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},U.fetchJson=function(e){return new U(e).fetchJson()},U.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},U.fetchXML=function(e){return new U(e).fetchXML()},U.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},U.fetchJsonp=function(e){return new U(e).fetchJsonp(e.callbackParameterName)},U.prototype._makeRequest=function(e){var r=this;C(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=U._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;U.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},U.fetch=function(e){return new U(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},U.delete=function(e){return new U(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},U.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},U.head=function(e){return new U(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},U.options=function(e){return new U(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},U.post=function(e){return new U(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},U.put=function(e){return new U(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},U.patch=function(e){return new U(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U._Implementations={},U._Implementations.createImage=function(e,t,r,n,i){U.supportsImageBitmapOptions().then(function(n){return n&&i?U.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return U.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},U.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return U._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},U._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},U._DefaultImplementations={},U._DefaultImplementations.createImage=U._Implementations.createImage,U._DefaultImplementations.loadWithXhr=U._Implementations.loadWithXhr,U._DefaultImplementations.loadAndExecuteScript=U._Implementations.loadAndExecuteScript,U.DEFAULT=l(new U({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),U}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))d(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){d(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return o.compare(e.julianDate,t)}function d(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||d<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,E);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,E=a*s,d=r[h+e._ut1MinusUtcSecondsColumn],m=r[E+e._ut1MinusUtcSecondsColumn],y=m-d;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[E+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?d=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[E+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[E+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[E+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[E+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,d,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],E=o.lessThanOrEquals(f,e),d=!n(h),p=d||o.greaterThanOrEquals(h,e);if(E&&p)return s=u,!d&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=d.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,E=this._samples;if(n(E[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var d,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(d=0;d<=u;++d)m[d]=_-R[d];for(d=0;d<=u;++d){for(T[d]=1,p=0;p<=u;++p)p!==d&&(T[d]*=m[p]);T[d]*=y[d];var A=3*(s+d);r.x+=T[d]*E[A++],r.y+=T[d]*E[A++],r.s+=T[d]*E[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new r(1,1,1),U=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,g,U);return a=i(e,n,a),y.multiply(a,s,a)};var x=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,x),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),E=Math.sin(f);return u(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,E,0,-E,h,0,0,0,1)},A.iau2006XysData=new E,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new d(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),E=e.dayNumber,d=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=E-2451545,T=d/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),C=n-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,U=Math.cos(g),x=Math.sin(g),P=H;return P[0]=O*U,P[1]=O*x,P[2]=M,P[3]=-v*x+w*M*U,P[4]=v*U+w*M*x,P[5]=-w*O,P[6]=-w*x-v*M*U,P[7]=w*U-v*M*x,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new E,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=d.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)r.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var U=E.fromAxisAngle(t.UNIT_Z,-i,N),x=l.fromQuaternion(U,O),P=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,n[u],g),g=l.multiplyByVector(x,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/EllipsoidGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_){"use strict";function m(e){e=a(e,a.EMPTY_OBJECT);var t=a(e.radii,I),r=Math.round(a(e.stackPartitions,64)),i=Math.round(a(e.slicePartitions,64)),o=a(e.vertexFormat,_.DEFAULT);this._radii=n.clone(t),this._stackPartitions=r,this._slicePartitions=i,this._vertexFormat=_.clone(o),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}var y=new n,T=new n,R=new n,A=new n,S=new n,I=new n(1,1,1),N=Math.cos,O=Math.sin;m.packedLength=n.packedLength+_.packedLength+3,m.pack=function(e,t,r){return r=a(r,0),n.pack(e._radii,t,r),r+=n.packedLength,_.pack(e._vertexFormat,t,r),r+=_.packedLength,t[r++]=e._stackPartitions,t[r++]=e._slicePartitions,t[r]=a(e._offsetAttribute,-1),t};var v=new n,M=new _,w={radii:v,vertexFormat:M,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};m.unpack=function(e,t,r){t=a(t,0);var i=n.unpack(e,t,v);t+=n.packedLength;var u=_.unpack(e,t,M);t+=_.packedLength;var s=e[t++],c=e[t++],l=e[t];return o(r)?(r._radii=n.clone(i,r._radii),r._vertexFormat=_.clone(u,r._vertexFormat),r._stackPartitions=s,r._slicePartitions=c,r._offsetAttribute=-1===l?void 0:l,r):(w.stackPartitions=s,w.slicePartitions=c,w.offsetAttribute=-1===l?void 0:l,new m(w))},m.createGeometry=function(a){var u=a._radii;if(!(u.x<=0||u.y<=0||u.z<=0)){var _,m,I=s.fromCartesian3(u),v=a._vertexFormat,M=a._slicePartitions+1,w=a._stackPartitions+1,C=w*M,g=new Float64Array(3*C),U=6*(M-1)*(w-2),x=E.createTypedArray(C,U),P=v.normal?new Float32Array(3*C):void 0,D=v.tangent?new Float32Array(3*C):void 0,F=v.bitangent?new Float32Array(3*C):void 0,L=v.st?new Float32Array(2*C):void 0,b=new Array(M),B=new Array(M),z=0;for(_=0;_<M;_++){var q=d.TWO_PI*_/(M-1);b[_]=N(q),B[_]=O(q),g[z++]=0,g[z++]=0,g[z++]=u.z}for(_=1;_<w-1;_++){var G=Math.PI*_/(w-1),V=O(G),X=u.x*V,W=u.y*V,H=u.z*N(G);for(m=0;m<M;m++)g[z++]=b[m]*X,g[z++]=B[m]*W,g[z++]=H}for(_=0;_<M;_++)g[z++]=0,g[z++]=0,g[z++]=-u.z;var Y=new f;v.position&&(Y.position=new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:g}));var k=0,j=0,K=0,Z=0;if(v.st||v.normal||v.tangent||v.bitangent){for(_=0;_<C;_++){var J=n.fromArray(g,3*_,y),Q=I.geodeticSurfaceNormal(J,T);if(v.st){var $=r.negate(Q,S);r.magnitude($)<d.EPSILON6&&(z=3*(_+M*Math.floor(.5*w)),z>g.length&&(z=3*(_-M*Math.floor(.5*w))),n.fromArray(g,z,$),I.geodeticSurfaceNormal($,$),r.negate($,$)),L[k++]=Math.atan2($.y,$.x)/d.TWO_PI+.5,L[k++]=Math.asin(Q.z)/Math.PI+.5}if(v.normal&&(P[j++]=Q.x,P[j++]=Q.y,P[j++]=Q.z),v.tangent||v.bitangent){var ee=R;if(_<M||_>C-M-1?(n.cross(n.UNIT_X,Q,ee),n.normalize(ee,ee)):(n.cross(n.UNIT_Z,Q,ee),n.normalize(ee,ee)),v.tangent&&(D[K++]=ee.x,D[K++]=ee.y,D[K++]=ee.z),v.bitangent){var te=n.cross(Q,ee,A);n.normalize(te,te),F[Z++]=te.x,F[Z++]=te.y,F[Z++]=te.z}}}v.st&&(Y.st=new l({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:L})),v.normal&&(Y.normal=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:P})),v.tangent&&(Y.tangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:D})),v.bitangent&&(Y.bitangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:F}))}if(o(a._offsetAttribute)){var re=g.length,ne=new Uint8Array(re/3),ie=a._offsetAttribute===h.NONE?0:1;e(ne,ie),Y.applyOffset=new l({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:ne})}for(z=0,m=0;m<M-1;m++)x[z++]=M+m,x[z++]=M+m+1,x[z++]=m+1;var ae,oe;for(_=1;_<w-2;_++)for(ae=_*M,oe=(_+1)*M,m=0;m<M-1;m++)x[z++]=oe+m,x[z++]=oe+m+1,x[z++]=ae+m+1,x[z++]=oe+m,x[z++]=ae+m+1,x[z++]=ae+m;for(_=w-2,ae=_*M,oe=(_+1)*M,m=0;m<M-1;m++)x[z++]=oe+m,x[z++]=ae+m+1,x[z++]=ae+m;return new c({attributes:Y,indices:x,primitiveType:p.TRIANGLES,boundingSphere:t.fromEllipsoid(I),offsetAttribute:a._offsetAttribute})}};var C;return m.getUnitEllipsoid=function(){return o(C)||(C=m.createGeometry(new m({radii:new n(1,1,1),vertexFormat:_.POSITION_ONLY}))),C},m}),define("Workers/createEllipsoidGeometry",["../Core/defined","../Core/EllipsoidGeometry"],function(e,t){"use strict";return function(r,n){return e(n)&&(r=t.unpack(r,n)),t.createGeometry(r)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as e}from"./chunk-XQG25LEF.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(r,t){return o(t)&&(r=e.unpack(r,t)),e.createGeometry(r)}var a=i;export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js index 61a73ba52..0c9878dc8 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createEllipsoidOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,E=new o,d=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:d,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,E);var l=Math.sqrt(o.dot(h,E));return E=o.divideByScalar(E,l,E),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(E,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,E=i.x,d=i.y,p=i.z,_=l*l*E*E,m=f*f*d*d,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,C,g,U,x,P,D,F,L,B=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),b=0;do{B-=b,w=1/(1+B*S),C=1/(1+B*I),g=1/(1+B*N),U=w*w,x=C*C,P=g*g,D=U*w,F=x*C,L=P*g,v=_*U+m*x+y*P-1,M=_*D*S+m*F*I+y*L*N;b=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=a.EPSILON1;return u.fromCartesian=function(t,r,i){var d=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:E,m=o(t,d,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=E;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var d=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,d),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],d[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],d[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=d[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var E,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;E=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+E*E),l=E*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=r-u-f+E,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+E,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+E;return n(t)?(t[0]=d,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(d,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,E=r*u,d=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=E,t[2]=_,t[3]=f,t[4]=d,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,E,d,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var E=new e;s.getMaximumScale=function(t){return s.getScale(t,E),e.maximumComponent(E)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var d=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),E=r*c(h);a<10&&l(h)>E;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var E=1/h;return s.multiplyByScalar(t,E,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,E,d,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(E,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(d,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-E-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+E-_+y,N=2*(d-h),O=2*(f-p),v=2*(d+h),M=-s-E+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,E),E);var u=h.x,s=h.y,c=h.z,d=f.x,p=f.y,_=f.z,m=E.x,y=E.y,T=E.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=d*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-d,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-d,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,E=l,d=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=E,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var d=new e;l.setScale=function(t,r,n){var i=l.getScale(t,d),a=e.divideComponents(r,i,d);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],U=t[12],x=t[13],P=t[14],D=t[15],F=n*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,B=a*T+c*R+E*A+m*S,b=o*T+l*R+d*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+E*O+m*v,X=o*I+l*N+d*O+y*v,V=n*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+E*C+m*g,Y=o*M+l*w+d*C+y*g,k=n*U+u*x+f*P+p*D,j=i*U+s*x+h*P+_*D,K=a*U+c*x+E*P+m*D,Z=o*U+l*x+d*P+y*D;return r[0]=F,r[1]=L,r[2]=B,r[3]=b,r[4]=z,r[5]=q,r[6]=G,r[7]=X,r[8]=V,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=n*y+o*T+c*R,U=i*y+u*T+l*R,x=a*y+s*T+f*R,P=n*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=n*N+o*O+c*v+h,B=i*N+u*O+l*v+E,b=a*N+s*O+f*v+d;return r[0]=M,r[1]=w,r[2]=C,r[3]=0,r[4]=g,r[5]=U,r[6]=x,r[7]=0,r[8]=P,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=B,r[14]=b,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*E+c*d,S=i*h+u*E+l*d,I=a*h+s*E+f*d,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=C,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],E=e[9],d=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,C=_*v,g=S*N,U=_*O,x=m*N,P=p*v,D=S*I,F=p*O,L=m*I,B=p*N,b=_*I,z=M*h+g*E+U*d-(w*h+C*E+x*d),q=w*f+P*E+L*d-(M*f+D*E+F*d),G=C*f+D*h+B*d-(g*f+P*h+b*d),X=x*f+F*h+b*E-(U*f+L*h+B*E),V=w*i+C*a+x*o-(M*i+g*a+U*o),W=M*n+D*a+F*o-(w*n+P*a+L*o),H=g*n+P*i+b*o-(C*n+D*i+B*o),Y=U*n+L*i+B*a-(x*n+F*i+b*a);M=a*d,w=o*E,C=i*d,g=o*h,U=i*E,x=a*h,P=n*d,D=o*f,F=n*E,L=a*f,B=n*h,b=i*f;var k=M*N+g*O+U*v-(w*N+C*O+x*v),j=w*I+P*O+L*v-(M*I+D*O+F*v),K=C*I+D*N+B*v-(g*I+P*N+b*v),Z=x*I+F*N+b*O-(U*I+L*N+B*O),J=C*m+x*S+w*_-(U*S+M*_+g*m),Q=F*S+M*p+D*m-(P*m+L*S+w*p),$=P*_+b*S+g*p-(B*S+C*p+D*_),ee=B*m+U*p+L*_-(F*_+b*m+x*p),te=n*z+i*q+a*G+o*X;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=X*te,r[4]=V*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-r*f-n*h-i*E,p=-a*f-o*h-u*E,_=-s*f-c*h-l*E;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=d,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];r=Math.min(r,E.longitude),i=Math.max(i,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;a=Math.min(a,d),o=Math.max(o,d)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,p=e.length;d<p;d++){var _=t.cartesianToCartographic(e[d]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),E=Math.max(E,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=E,i):new s(o,h,c,E)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=E,r):new s(l,h,f,E)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,p=c;p.height=i,p.longitude=d,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function E(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var d=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;E.fromPoints=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,d),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=o,P=c,D=C;g>D&&(D=g,x=u,P=l),U>D&&(D=U,x=s,P=f);var F=S;F.x=.5*(x.x+P.x),F.y=.5*(x.y+P.y),F.z=.5*(x.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),B=Math.sqrt(L),b=I;b.x=o.x,b.y=u.y,b.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(b,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var X=e.magnitude(e.subtract(a,q,A));X>G&&(G=X);var V=e.magnitudeSquared(e.subtract(a,F,A));if(V>L){var W=Math.sqrt(V);B=.5*(B+W),L=B*B;var H=W-B;F.x=(B*F.x+H*a.x)/W,F.y=(B*F.y+H*a.y)/W,F.z=(B*F.z+H*a.z)/W}}return B<G?(e.clone(F,r.center),r.radius=B):(e.clone(q,r.center),r.radius=G),r};var M=new o,w=new e,C=new e,g=new t,U=new t;E.fromRectangle2D=function(e,t,r){return E.fromRectangleWithHeights2D(e,t,0,0,r)},E.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,g),g.height=a,h.northeast(t,U),U.height=o;var s=r.project(g,w),c=r.project(U,C),l=c.x-s.x,f=c.y-s.y,d=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+d*d);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*d,u};var x=[];E.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,x);return E.fromPoints(s,u)},E.fromVertices=function(t,r,a,o){if(i(o)||(o=new E),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,d),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+r.x,g=t[s+1]+r.y,U=t[s+2]+r.z;u.x=C,u.y=g,u.z=U,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),U<f.z&&e.clone(u,f),U>M.z&&e.clone(u,M)}var x=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,B=x;P>B&&(B=P,F=l,L=v),D>B&&(B=D,F=f,L=M);var b=S;b.x=.5*(F.x+L.x),b.y=.5*(F.y+L.y),b.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,b,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var X=N;X.x=h.x,X.y=v.y,X.z=M.z;var V=e.midpoint(G,X,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,V,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,b,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;b.x=(q*b.x+j*u.x)/k,b.y=(q*b.y+j*u.y)/k,b.z=(q*b.z+j*u.z)/k}}return q<W?(e.clone(b,o.center),o.radius=q):(e.clone(V,o.center),o.radius=W),o},E.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new E),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,d),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],C=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),x=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;U>F&&(F=U,P=s,D=f),x>F&&(F=x,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var B=e.magnitudeSquared(e.subtract(D,L,A)),b=Math.sqrt(B),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),X=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var V=e.magnitude(e.subtract(a,G,A));V>X&&(X=V);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>B){var H=Math.sqrt(W);b=.5*(b+H),B=b*b;var Y=H-b;L.x=(b*L.x+Y*a.x)/H,L.y=(b*L.y+Y*a.y)/H,L.z=(b*L.z+Y*a.z)/H}}return b<X?(e.clone(L,n.center),n.radius=b):(e.clone(G,n.center),n.radius=X),n},E.fromCornerPoints=function(t,r,n){i(n)||(n=new E);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},E.fromEllipsoid=function(t,r){return i(r)||(r=new E),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var P=new e;E.fromBoundingSpheres=function(t,r){if(i(r)||(r=new E),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return E.clone(t[0],r);if(2===n)return E.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=E.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;E.fromOrientedBoundingBox=function(t,r){i(r)||(r=new E);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},E.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},E.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new E);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var B=new e,b=new e;E.union=function(t,r,n){i(n)||(n=new E);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,B),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;E.expand=function(t,r,n){n=E.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},E.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},E.transform=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;E.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},E.transformWithoutScale=function(e,t,r){return i(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;E.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var X=new e,V=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return E.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,X),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),d=j,p=d[0];e.add(s,l,p),e.add(p,c,p),p=d[1],e.add(s,l,p),e.add(p,h,p),p=d[2],e.add(s,f,p),e.add(p,h,p),p=d[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=d[4],e.add(s,l,p),e.add(p,c,p),p=d[5],e.add(s,l,p),e.add(p,h,p),p=d[6],e.add(s,f,p),e.add(p,h,p),p=d[7],e.add(s,f,p),e.add(p,c,p);for(var _=d.length,m=0;m<_;++m){var y=d[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=E.fromPoints(d,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,r){return E.computePlaneDistances(this,e,t,r)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return v*e*e*e},E}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen", -n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return d(e)}function i(e){return d(a(e))}function u(e){return E(e)}var s,c,l,f,h,E,d;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},E=function(e){return p(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){d(e)}var c,l,f,h,E,d,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],E=o(),c)for(_=E.progress,p=function(e){h.push(e),--l||(d=p=m,E.reject(h))},d=function(e){f.push(e),--c||(d=p=m,E.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else E.resolve(f);return E.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function E(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function d(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=s,e.chain=d,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function E(){if(!t(U)){U=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,x=o(e[1]))}return U}function d(){return E()&&x}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(B)||(B=/Windows/i.test(N.appVersion)),B}function T(){return m()&&L}function R(){return t(b)||(b=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),b}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,C,g,U,x,P,D,F,L,B,b,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var X={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return X.supportsFullscreen=function(){return i.supportsFullscreen()},X.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},X.supportsWebWorkers=function(){return"undefined"!=typeof Worker},X.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!X.isEdge()},X}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],E=e[u.COLUMN1ROW1],d=e[u.COLUMN2ROW2],p=h+E+d;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;E>h&&(m=1),d>h&&d>E&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]} -return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,E=new s,d=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),d=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(d,p,d),E=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(E,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,E=o*c+n*s-i*u+a*l,d=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=E,r.w=d,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,U=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,B=2*L+1;U[F]=1/(L*B),x[F]=L/B}return U[7]=g/136,x[7]=8*g/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)P[f]=(U[f]*c-x[f])*o,D[f]=(U[f]*l-x[f])*o;var h=i*r*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),E=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),d=s.multiplyByScalar(e,E,C);return s.multiplyByScalar(t,h,n),s.add(d,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var E,d,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return E=+m||0,E=Math.round(E-E%1),d=E<0?"-":T,m=d+i(String(Math.abs(E)),f,"0",!1),a(m,d,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return E=+m,d=E<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=d+Math.abs(E)[p](f),a(m,d,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function E(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function d(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,E(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(E(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var g;if(null!==(u=w.match(A)))r=+u[1],g=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var U=+u[2],x=+u[3]||0,P=new Date(Date.UTC(r,0,4));g=7*U+x-P.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],B=+(u[D+2]||0);switch(F){case"+":h-=L,_-=B;break;case"-":h+=L,_+=B;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var b=60===y;for(b&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=d(r,s,l,h,_,y,N);return n(t)?(E(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),b&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var _=E+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=d,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,d,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return E(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return E(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return E(e.dayNumber,n,r)},p.addDays=function(e,t,r){return E(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)E(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||d(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){E(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?g(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function U(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}), -this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function x(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return U._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,x({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function P(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},U._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function B(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(b(r,t))}):a.resolve(b(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();U.createIfNeeded=function(e){return e instanceof U?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new U({url:e})};var G;U.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=U.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(U,{isBlobSupported:{get:function(){return q}}}),s(U.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),U.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},U.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},U.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},U.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},U.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},U.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},U.prototype.clone=function(e){return u(e)||(e=new U({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},U.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},U.prototype.appendForwardSlash=function(){this._url=r(this._url)},U.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},U.fetchArrayBuffer=function(e){return new U(e).fetchArrayBuffer()},U.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},U.fetchBlob=function(e){return new U(e).fetchBlob()},U.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return x({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return U.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return U.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new U({url:t}),x({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},U.fetchImage=function(e){return new U(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},U.prototype.fetchText=function(){return this.fetch({responseType:"text"})},U.fetchText=function(e){return new U(e).fetchText()},U.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},U.fetchJson=function(e){return new U(e).fetchJson()},U.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},U.fetchXML=function(e){return new U(e).fetchXML()},U.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},U.fetchJsonp=function(e){return new U(e).fetchJsonp(e.callbackParameterName)},U.prototype._makeRequest=function(e){var r=this;C(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=U._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var X=/^data:(.*?)(;base64)?,(.*)$/;U.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},U.fetch=function(e){return new U(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},U.delete=function(e){return new U(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},U.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},U.head=function(e){return new U(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},U.options=function(e){return new U(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},U.post=function(e){return new U(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},U.put=function(e){return new U(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},U.patch=function(e){return new U(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U._Implementations={},U._Implementations.createImage=function(e,t,r,n,i){U.supportsImageBitmapOptions().then(function(n){return n&&i?U.fetchBlob({url:e}):void B(e,t,r)}).then(function(e){if(u(e))return U.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},U.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return U._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=X.exec(e);if(null!==s)return void a.resolve(L(s,t));if(V)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},U._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},U._DefaultImplementations={},U._DefaultImplementations.createImage=U._Implementations.createImage,U._DefaultImplementations.loadWithXhr=U._Implementations.loadWithXhr,U._DefaultImplementations.loadAndExecuteScript=U._Implementations.loadAndExecuteScript,U.DEFAULT=l(new U({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),U}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))d(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){d(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return o.compare(e.julianDate,t)}function d(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||d<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,E);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,E=a*s,d=r[h+e._ut1MinusUtcSecondsColumn],m=r[E+e._ut1MinusUtcSecondsColumn],y=m-d;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[E+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?d=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[E+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[E+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[E+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[E+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,d,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],E=o.lessThanOrEquals(f,e),d=!n(h),p=d||o.greaterThanOrEquals(h,e);if(E&&p)return s=u,!d&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=d.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,E=this._samples;if(n(E[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var d,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(d=0;d<=u;++d)m[d]=_-R[d];for(d=0;d<=u;++d){for(T[d]=1,p=0;p<=u;++p)p!==d&&(T[d]*=m[p]);T[d]*=y[d];var A=3*(s+d);r.x+=T[d]*E[A++],r.y+=T[d]*E[A++],r.s+=T[d]*E[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new r(1,1,1),U=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,g,U);return a=i(e,n,a),y.multiply(a,s,a)};var x=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,x),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,B=new y,b=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,B);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,b),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),E=Math.sin(f);return u(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,E,0,-E,h,0,0,0,1)},A.iau2006XysData=new E,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var X=new d(0,0,0),V=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,V);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,X);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),E=e.dayNumber,d=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=E-2451545,T=d/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),C=n-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,U=Math.cos(g),x=Math.sin(g),P=H;return P[0]=O*U,P[1]=O*x,P[2]=M,P[3]=-v*x+w*M*U,P[4]=v*U+w*M*x,P[5]=-w*O,P[6]=-w*x-v*M*U,P[7]=w*U-v*M*x,P[8]=v*O,m.multiply(N,P,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new E,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=d.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)r.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var U=E.fromAxisAngle(t.UNIT_Z,-i,N),x=l.fromQuaternion(U,O),P=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,n[u],g),g=l.multiplyByVector(x,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),B=Math.max(B,g.y);var b=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=B,z[2].x=L,z[2].y=F;var q=w[0],G=w[2].x-q.x,X=w[1].y-q.y;for(u=0;u<3;u++){var V=z[u];c.multiplyByVector(b,V,V),V.x=(V.x-q.x)/G,V.y=(V.y-q.y)/X}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipsoidOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,E,d){"use strict";function p(e){e=i(e,i.EMPTY_OBJECT);var t=i(e.radii,_),n=Math.round(i(e.stackPartitions,10)),a=Math.round(i(e.slicePartitions,8)),o=Math.round(i(e.subdivisions,128));this._radii=r.clone(t),this._stackPartitions=n,this._slicePartitions=a,this._subdivisions=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}var _=new r(1,1,1),m=Math.cos,y=Math.sin;p.packedLength=r.packedLength+4,p.pack=function(e,t,n){return n=i(n,0),r.pack(e._radii,t,n),n+=r.packedLength,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=i(e._offsetAttribute,-1),t};var T=new r,R={radii:T,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};return p.unpack=function(e,t,n){t=i(t,0);var o=r.unpack(e,t,T);t+=r.packedLength;var u=e[t++],s=e[t++],c=e[t++],l=e[t];return a(n)?(n._radii=r.clone(o,n._radii),n._stackPartitions=u,n._slicePartitions=s,n._subdivisions=c,n._offsetAttribute=-1===l?void 0:l,n):(R.stackPartitions=u,R.slicePartitions=s,R.subdivisions=c,R.offsetAttribute=-1===l?void 0:l,new p(R))},p.createGeometry=function(r){var i=r._radii;if(!(i.x<=0||i.y<=0||i.z<=0)){var o,p,_,T,R,A,S=u.fromCartesian3(i),I=r._stackPartitions,N=r._slicePartitions,O=r._subdivisions,v=O*(I+N-1),M=v-N+2,w=new Float64Array(3*M),C=h.createTypedArray(M,2*v),g=0,U=new Array(O),x=new Array(O);for(o=0;o<O;o++)_=E.TWO_PI*o/O,U[o]=m(_),x[o]=y(_);for(o=1;o<I;o++)for(T=Math.PI*o/I,R=m(T),A=y(T),p=0;p<O;p++)w[g++]=i.x*U[p]*A,w[g++]=i.y*x[p]*A,w[g++]=i.z*R;for(U.length=N,x.length=N,o=0;o<N;o++)_=E.TWO_PI*o/N,U[o]=m(_),x[o]=y(_);for(w[g++]=0,w[g++]=0,w[g++]=i.z,o=1;o<O;o++)for(T=Math.PI*o/O,R=m(T),A=y(T),p=0;p<N;p++)w[g++]=i.x*U[p]*A,w[g++]=i.y*x[p]*A,w[g++]=i.z*R;for(w[g++]=0,w[g++]=0,w[g++]=-i.z,g=0,o=0;o<I-1;++o){var P=o*O;for(p=0;p<O-1;++p)C[g++]=P+p,C[g++]=P+p+1;C[g++]=P+O-1,C[g++]=P}var D=O*(I-1);for(p=1;p<N+1;++p)C[g++]=D,C[g++]=D+p;for(o=0;o<O-2;++o){var F=o*N+1+D,L=(o+1)*N+1+D;for(p=0;p<N-1;++p)C[g++]=L+p,C[g++]=F+p;C[g++]=L+N-1,C[g++]=F+N-1}var B=w.length/3-1;for(p=B-1;p>B-N-1;--p)C[g++]=B,C[g++]=p;var b=new l({position:new c({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:w})});if(a(r._offsetAttribute)){var z=w.length,q=new Uint8Array(z/3),G=r._offsetAttribute===f.NONE?0:1;e(q,G),b.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:q})}return new s({attributes:b,indices:C,primitiveType:d.LINES,boundingSphere:t.fromEllipsoid(S),offsetAttribute:r._offsetAttribute})}},p}),define("Workers/createEllipsoidOutlineGeometry",["../Core/defined","../Core/EllipsoidOutlineGeometry"],function(e,t){"use strict";return function(r,n){return e(r.buffer,n)&&(r=t.unpack(r,n)),t.createGeometry(r)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-5NCMUEUX.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as n}from"./chunk-DRYFJEFT.js";function u(r,e){return n(r.buffer,e)&&(r=t.unpack(r,e)),t.createGeometry(r)}var a=u;export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumGeometry.js index 17130e404..93d8f3635 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,o){if(i.typeOf.number(e,n),i.typeOf.number(r,o),n!==o)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+o)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var o={};o.EPSILON1=.1,o.EPSILON2=.01,o.EPSILON3=.001,o.EPSILON4=1e-4,o.EPSILON5=1e-5,o.EPSILON6=1e-6,o.EPSILON7=1e-7,o.EPSILON8=1e-8,o.EPSILON9=1e-9,o.EPSILON10=1e-10,o.EPSILON11=1e-11,o.EPSILON12=1e-12,o.EPSILON13=1e-13,o.EPSILON14=1e-14,o.EPSILON15=1e-15,o.EPSILON16=1e-16,o.EPSILON17=1e-17,o.EPSILON18=1e-18,o.EPSILON19=1e-19,o.EPSILON20=1e-20,o.EPSILON21=1e-21,o.GRAVITATIONALPARAMETER=3986004418e5,o.SOLAR_RADIUS=6955e5,o.LUNAR_RADIUS=1737400,o.SIXTY_FOUR_KILOBYTES=65536,o.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),o.signNotZero=function(e){return e<0?-1:1},o.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*o.clamp(e,-1,1)+.5)*t)},o.fromSNorm=function(e,t){return t=r(t,255),o.clamp(e,0,t)/t*2-1},o.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:o.clamp((e-t)/r,0,1)},o.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),o.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),o.lerp=function(e,t,r){return(1-r)*e+r*t},o.PI=Math.PI,o.ONE_OVER_PI=1/Math.PI,o.PI_OVER_TWO=Math.PI/2,o.PI_OVER_THREE=Math.PI/3,o.PI_OVER_FOUR=Math.PI/4,o.PI_OVER_SIX=Math.PI/6,o.THREE_PI_OVER_TWO=3*Math.PI/2,o.TWO_PI=2*Math.PI,o.ONE_OVER_TWO_PI=1/(2*Math.PI),o.RADIANS_PER_DEGREE=Math.PI/180,o.DEGREES_PER_RADIAN=180/Math.PI,o.RADIANS_PER_ARCSECOND=o.RADIANS_PER_DEGREE/3600,o.toRadians=function(e){return e*o.RADIANS_PER_DEGREE},o.toDegrees=function(e){return e*o.DEGREES_PER_RADIAN},o.convertLongitudeRange=function(e){var t=o.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},o.clampToLatitudeRange=function(e){return o.clamp(e,-1*o.PI_OVER_TWO,o.PI_OVER_TWO)},o.negativePiToPi=function(e){return o.zeroToTwoPi(e+o.PI)-o.PI},o.zeroToTwoPi=function(e){var t=o.mod(e,o.TWO_PI);return Math.abs(t)<o.EPSILON14&&Math.abs(e)>o.EPSILON14?o.TWO_PI:t},o.mod=function(e,t){return(e%t+t)%t},o.equalsEpsilon=function(e,t,n,i){i=r(i,n);var o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))},o.lessThan=function(e,t,r){return e-t<-r},o.lessThanOrEquals=function(e,t,r){return e-t<r},o.greaterThan=function(e,t,r){return e-t>r},o.greaterThanOrEquals=function(e,t,r){return e-t>-r};var a=[1];o.factorial=function(e){var t=a.length;if(e>=t)for(var r=a[t-1],n=t;n<=e;n++)a.push(r*n);return a[e]},o.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},o.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},o.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},o.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return o.setRandomNumberSeed=function(t){u=new e(t)},o.nextRandomNumber=function(){return u.random()},o.randomBetween=function(e,t){return o.nextRandomNumber()*(t-e)+e},o.acosClamped=function(e){return Math.acos(o.clamp(e,-1,1))},o.asinClamped=function(e){return Math.asin(o.clamp(e,-1,1))},o.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},o.logBase=function(e,t){return Math.log(e)/Math.log(t)},o.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),o.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),o.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},o.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},o.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var a=r/n;return i=o.fastApproximateAtan(a),i=Math.abs(t)>Math.abs(e)?o.PI_OVER_TWO-i:i,i=e<0?o.PI-i:i,i=t<0?-i:i},o}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,o){"use strict";function a(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}a.fromSpherical=function(e,n){r(n)||(n=new a);var i=e.clock,o=e.cone,u=t(e.magnitude,1),s=u*Math.sin(o);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(o),n},a.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new a(e,t,n)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new a(e.x,e.y,e.z)},a.fromCartesian4=a.clone,a.packedLength=3,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},a.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new a),i.x=e[n++],i.y=e[n++],i.z=e[n],i},a.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)a.pack(e[i],t,3*i);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var o=i/3;t[o]=a.unpack(e,i,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var u=new a;a.distance=function(e,t){return a.subtract(e,t,u),a.magnitude(u)},a.distanceSquared=function(e,t){return a.subtract(e,t,u),a.magnitudeSquared(u)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,s),n=a.multiplyByScalar(e,1-r,n),a.add(s,n,n)};var c=new a,l=new a;a.angleBetween=function(e,t){a.normalize(e,c),a.normalize(t,l);var r=a.dot(c,l),n=a.magnitude(a.cross(c,l,c));return Math.atan2(n,r)};var f=new a;a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,f);return a.abs(r,r),t=r.x<=r.y?r.x<=r.z?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Z,t):r.y<=r.z?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_Z,t)},a.projectVector=function(e,t,r){var n=a.dot(e,t)/a.dot(t,t);return a.multiplyByScalar(t,n,r)},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},a.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&o.equalsEpsilon(e.x,t.x,n,i)&&o.equalsEpsilon(e.y,t.y,n,i)&&o.equalsEpsilon(e.z,t.z,n,i)},a.cross=function(e,t,r){var n=e.x,i=e.y,o=e.z,a=t.x,u=t.y,s=t.z,c=i*s-o*u,l=o*a-n*s,f=n*u-i*a;return r.x=c,r.y=l,r.z=f,r},a.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},a.fromDegrees=function(e,t,r,n,i){return e=o.toRadians(e),t=o.toRadians(t),a.fromRadians(e,t,r,n,i)};var h=new a,d=new a,p=new a(40680631590769,40680631590769,40408299984661.445);return a.fromRadians=function(e,n,i,o,u){i=t(i,0);var s=r(o)?o.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=a.normalize(h,h),a.multiplyComponents(s,h,d);var l=Math.sqrt(a.dot(h,d));return d=a.divideByScalar(d,l,d),h=a.multiplyByScalar(h,i,h),r(u)||(u=new a),a.add(d,h,u)},a.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var o=0;o<i;o+=2){var u=e[o],s=e[o+1],c=o/2;n[c]=a.fromDegrees(u,s,0,t,n[c])}return n},a.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var o=0;o<i;o+=2){var u=e[o],s=e[o+1],c=o/2;n[c]=a.fromRadians(u,s,0,t,n[c])}return n},a.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var o=0;o<i;o+=3){var u=e[o],s=e[o+1],c=e[o+2],l=o/3;n[l]=a.fromDegrees(u,s,c,t,n[l])}return n},a.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var o=0;o<i;o+=3){var u=e[o],s=e[o+1],c=e[o+2],l=o/3;n[l]=a.fromRadians(u,s,c,t,n[l])}return n},a.ZERO=i(new a(0,0,0)),a.UNIT_X=i(new a(1,0,0)),a.UNIT_Y=i(new a(0,1,0)),a.UNIT_Z=i(new a(0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},a}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,E=i.z,_=l*l*d*d,m=f*f*p*p,y=h*h*E*E,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,o);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var v=u.x,S=u.y,O=u.z,I=a;I.x=A.x*v*2,I.y=A.y*S*2,I.z=A.z*O*2;var N,w,g,M,C,x,P,U,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{b-=B,g=1/(1+b*v),M=1/(1+b*S),C=1/(1+b*O),x=g*g,P=M*M,U=C*C,D=x*g,F=P*M,L=U*C,N=_*x+m*P+y*U-1,w=_*D*v+m*F*S+y*L*O;B=N/(-2*w)}while(Math.abs(N)>n.EPSILON12);return t(c)?(c.x=l*g,c.y=f*M,c.z=h*C,c):new e(l*g,f*M,h*C)}var o=new e,a=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,o,a){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,o){return i=r(i,0),n(o)?(o.longitude=e,o.latitude=t,o.height=i,o):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=o.toRadians(e),t=o.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=o.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,E=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=a(t,p,E,_,c);if(n(m)){var y=e.multiplyComponents(m,E,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),v=o.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=v,i):new u(R,A,v)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,o,a,u,s,c){"use strict";function l(t,r,i,o){r=n(r,0),i=n(i,0),o=n(o,0),t._radii=new e(r,i,o),t._radiiSquared=new e(r*r,i*i,o*o),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,o*o*o*o),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===o?0:1/o),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===o?0:1/(o*o)),t._minimumRadius=Math.min(r,i,o),t._maximumRadius=Math.max(r,i,o),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}o(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var o=e.unpack(t,r);return f.fromCartesian3(o,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,o=t.latitude,a=Math.cos(o),u=a*Math.cos(n),s=a*Math.sin(n),c=Math.sin(o);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,o=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,o);var a=Math.sqrt(e.dot(n,o));return e.divideByScalar(o,a,o),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(o,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,E=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var o=this.scaleToGeodeticSurface(r,E);if(i(o)){var a=this.geodeticSurfaceNormal(o,p),u=e.subtract(r,o,_),c=Math.atan2(a.y,a.x),l=Math.asin(a.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,o=t.y,a=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+o*o*u.y+a*a*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,o){r=n(r,0);var a=this._squaredXOverSquaredZ;if(i(o)||(o=new e),o.x=0,o.y=0,o.z=t.z*(1-a),!(Math.abs(o.z)>=this._radii.z-r))return o},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,o,a){"use strict";function u(e){this._ellipsoid=r(e,a.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,o=t.longitude*i,a=t.latitude*i,u=t.height;return n(r)?(r.x=o,r.y=a,r.z=u,r):new e(o,a,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,o=e.x*i,a=e.y*i,u=e.z;return n(r)?(r.longitude=o,r.latitude=a,r.height=u,r):new t(o,a,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,o,a,u){"use strict";function s(e,t,n,i,o,a,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(o,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(a,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(E[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,o=0;o<3;++o){var a=Math.abs(e[s.getElementIndex(E[o],p[o])]);a>n&&(i=o,n=a)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,o=e.x*e.z,a=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,E=2*(i-h),_=2*(o+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-a),R=2*(o-l),A=2*(c+a),v=-r-u+f+d;return n(t)?(t[0]=p,t[1]=m,t[2]=R,t[3]=E,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=v,t):new s(p,E,_,m,y,T,R,A,v)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),a=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-o*u+c*a*i,h=c*u+o*a*i,d=r*u,p=o*i+c*a*u,E=-c*i+o*a*u,_=-a,m=c*r,y=o*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=p,t[5]=m,t[6]=h,t[7]=E,t[8]=y,t):new s(l,f,h,d,p,E,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],o=e[n+1],a=e[n+2];return r.x=i,r.y=o,r.z=a,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],o=e[t+6];return r.x=n,r.y=i,r.z=o,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],o=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],a=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=o,r[3]=a,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,o=t.z,a=e[0]*n+e[3]*i+e[6]*o,u=e[1]*n+e[4]*i+e[7]*o,s=e[2]*n+e[5]*i+e[8]*o;return r.x=a,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],o=e[1],a=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=o,t[4]=a,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,o=0;n(t)||(t={});for(var a=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);o<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(a,_,a),++i>2&&(++o,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],o=e[4],a=e[7],u=e[2],s=e[5],c=e[8];return t*(o*c-s*a)+i*(s*n-r*c)+u*(r*a-o*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],o=e[3],a=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=a*f-l*u,t[1]=l*i-n*f,t[2]=n*u-a*i,t[3]=c*u-o*f,t[4]=r*f-c*i,t[5]=o*i-r*u,t[6]=o*l-c*a,t[7]=c*n-r*l,t[8]=r*a-o*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=a(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=a(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,o){"use strict";function a(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}a.fromElements=function(e,t,n,i,o){return r(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new a(e,t,n,i)},a.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new a(e.red,e.green,e.blue,e.alpha)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new a(e.x,e.y,e.z,e.w)},a.packedLength=4,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},a.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new a),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},a.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)a.pack(e[i],t,4*i);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var o=i/4;t[o]=a.unpack(e,i,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var u=new a;a.distance=function(e,t){return a.subtract(e,t,u),a.magnitude(u)},a.distanceSquared=function(e,t){return a.subtract(e,t,u),a.magnitudeSquared(u)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,s),n=a.multiplyByScalar(e,1-r,n),a.add(s,n,n)};var c=new a;a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,c);return a.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?a.clone(a.UNIT_X,t):a.clone(a.UNIT_W,t):r.z<=r.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t):r.y<=r.z?r.y<=r.w?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_W,t):r.z<=r.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t)},a.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},a.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&o.equalsEpsilon(e.x,t.x,n,i)&&o.equalsEpsilon(e.y,t.y,n,i)&&o.equalsEpsilon(e.z,t.z,n,i)&&o.equalsEpsilon(e.w,t.w,n,i)},a.ZERO=i(new a(0,0,0,0)),a.UNIT_X=i(new a(1,0,0,0)),a.UNIT_Y=i(new a(0,1,0,0)),a.UNIT_Z=i(new a(0,0,1,0)),a.UNIT_W=i(new a(0,0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return a.packFloat=function(e,t){if(r(t)||(t=new a),l[0]=e,0===(e=l[0]))return a.clone(a.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(o.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},a.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},a}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,o,a,u,s,c){"use strict";function l(e,t,r,i,o,a,u,s,c,l,f,h,d,p,E,_){this[0]=n(e,0),this[1]=n(o,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(a,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(E,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,o){return r=n(r,e.ZERO),i(o)?(o[0]=t[0],o[1]=t[1],o[2]=t[2],o[3]=0,o[4]=t[3],o[5]=t[4],o[6]=t[5],o[7]=0,o[8]=t[6],o[9]=t[7],o[10]=t[8],o[11]=0,o[12]=r.x,o[13]=r.y,o[14]=r.z,o[15]=1,o):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var o=r.x,a=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+E),v=2*(c+m),S=-s+d-_+y,O=2*(p-h),I=2*(f-E),N=2*(p+h),w=-s-d+_+y;return n[0]=T*o,n[1]=v*o,n[2]=I*o,n[3]=0,n[4]=R*a,n[5]=S*a,n[6]=N*a,n[7]=0,n[8]=A*u,n[9]=O*u,n[10]=w*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,o=t.direction,a=t.up;e.normalize(o,f),e.normalize(e.cross(f,a,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,v=n.z,S=u*-R+s*-A+c*-v,O=m*-R+y*-A+T*-v,I=p*R+E*A+_*v;return i(r)?(r[0]=u,r[1]=m,r[2]=-p,r[3]=0,r[4]=s,r[5]=y,r[6]=-E,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=S,r[13]=O,r[14]=I,r[15]=1,r):new l(u,s,c,S,m,y,T,O,-p,-E,-_,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var o=Math.tan(.5*e),a=1/o,u=a/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=a,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,o,a){var u=1/(t-e),s=1/(n-r),c=1/(o-i),l=-(t+e)*u,f=-(n+r)*s,h=-(o+i)*c;return u*=2,s*=2,c*=-2,a[0]=u,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=s,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=c,a[11]=0,a[12]=l,a[13]=f,a[14]=h,a[15]=1,a},l.computePerspectiveOffCenter=function(e,t,r,n,i,o,a){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(o+i)/(o-i),h=-2*o*i/(o-i);return a[0]=u,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=s,a[6]=0,a[7]=0,a[8]=c,a[9]=l,a[10]=f,a[11]=-1,a[12]=0,a[13]=0,a[14]=h,a[15]=0,a},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,o){var a=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=s,o[9]=c,o[10]=-1,o[11]=-1,o[12]=0,o[13]=0,o[14]=l,o[15]=0,o},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var o=n(e.x,0),a=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,E=o+c,_=a+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-r.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-r.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-r.z,o[11]=0,o[12]=-e.dot(i,t),o[13]=-e.dot(n,t),o[14]=e.dot(r,t),o[15]=1,o},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],o=e[n+1],a=e[n+2],u=e[n+3];return r.x=i,r.y=o,r.z=a,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),o=e.divideComponents(r,i,p);return l.multiplyByScale(t,o,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],o=e[t+8],a=e[t+12];return r.x=n,r.y=i,r.z=o,r.w=a,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var E=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],o=e[2],a=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],v=t[3],S=t[4],O=t[5],I=t[6],N=t[7],w=t[8],g=t[9],M=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=n*T+u*R+f*A+E*v,L=i*T+s*R+h*A+_*v,b=o*T+c*R+d*A+m*v,B=a*T+l*R+p*A+y*v,z=n*S+u*O+f*I+E*N,q=i*S+s*O+h*I+_*N,G=o*S+c*O+d*I+m*N,V=a*S+l*O+p*I+y*N,X=n*w+u*g+f*M+E*C,W=i*w+s*g+h*M+_*C,k=o*w+c*g+d*M+m*C,H=a*w+l*g+p*M+y*C,Y=n*x+u*P+f*U+E*D,j=i*x+s*P+h*U+_*D,K=o*x+c*P+d*U+m*D,Z=a*x+l*P+p*U+y*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=k,r[11]=H,r[12]=Y,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],o=e[2],a=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],v=t[9],S=t[10],O=t[12],I=t[13],N=t[14],w=n*E+a*_+c*m,g=i*E+u*_+l*m,M=o*E+s*_+f*m,C=n*y+a*T+c*R,x=i*y+u*T+l*R,P=o*y+s*T+f*R,U=n*A+a*v+c*S,D=i*A+u*v+l*S,F=o*A+s*v+f*S,L=n*O+a*I+c*N+h,b=i*O+u*I+l*N+d,B=o*O+s*I+f*N+p;return r[0]=w,r[1]=g,r[2]=M,r[3]=0,r[4]=C,r[5]=x,r[6]=P,r[7]=0,r[8]=U,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],o=e[2],a=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+a*d+c*p,v=i*h+u*d+l*p,S=o*h+s*d+f*p,O=n*E+a*_+c*m,I=i*E+u*_+l*m,N=o*E+s*_+f*m,w=n*y+a*T+c*R,g=i*y+u*T+l*R,M=o*y+s*T+f*R;return r[0]=A,r[1]=v,r[2]=S,r[3]=0,r[4]=O,r[5]=I,r[6]=N,r[7]=0,r[8]=w,r[9]=g,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,o=t.z,a=n*e[0]+i*e[4]+o*e[8]+e[12],u=n*e[1]+i*e[5]+o*e[9]+e[13],s=n*e[2]+i*e[6]+o*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=a,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,o=t.z;return 1===n&&1===i&&1===o?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=o*e[8],r[9]=o*e[9],r[10]=o*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,o=t.z,a=t.w,u=e[0]*n+e[4]*i+e[8]*o+e[12]*a,s=e[1]*n+e[5]*i+e[9]*o+e[13]*a,c=e[2]*n+e[6]*i+e[10]*o+e[14]*a,l=e[3]*n+e[7]*i+e[11]*o+e[15]*a;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,o=t.z,a=e[0]*n+e[4]*i+e[8]*o,u=e[1]*n+e[5]*i+e[9]*o,s=e[2]*n+e[6]*i+e[10]*o;return r.x=a,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,o=t.z,a=e[0]*n+e[4]*i+e[8]*o+e[12],u=e[1]*n+e[5]*i+e[9]*o+e[13],s=e[2]*n+e[6]*i+e[10]*o+e[14];return r.x=a,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],o=e[6],a=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=o,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=a,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],o=e[8],a=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],_=e[6],m=e[10],v=e[14],S=e[3],O=e[7],I=e[11],N=e[15],w=m*N,g=v*I,M=_*N,C=v*O,x=_*I,P=m*O,U=E*N,D=v*S,F=E*I,L=m*S,b=E*O,B=_*S,z=w*h+C*d+x*p-(g*h+M*d+P*p),q=g*f+U*d+L*p-(w*f+D*d+F*p),G=M*f+D*h+b*p-(C*f+U*h+B*p),V=P*f+F*h+B*d-(x*f+L*h+b*d),X=g*i+M*o+P*a-(w*i+C*o+x*a),W=w*n+D*o+F*a-(g*n+U*o+L*a),k=C*n+U*i+B*a-(M*n+D*i+b*a),H=x*n+L*i+b*o-(P*n+F*i+B*o);w=o*p,g=a*d,M=i*p,C=a*h,x=i*d,P=o*h,U=n*p,D=a*f,F=n*d,L=o*f,b=n*h,B=i*f;var Y=w*O+C*I+x*N-(g*O+M*I+P*N),j=g*S+U*I+L*N-(w*S+D*I+F*N),K=M*S+D*O+b*N-(C*S+U*O+B*N),Z=P*S+F*O+B*I-(x*S+L*O+b*I),J=M*m+P*v+g*_-(x*v+w*_+C*m),Q=F*v+w*E+D*m-(U*m+L*v+g*E),$=U*_+B*v+C*E-(b*v+M*E+D*_),ee=b*m+x*E+L*_-(F*_+B*m+P*E),te=n*z+i*q+o*G+a*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=k*te,r[7]=H*te,r[8]=Y*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],o=e[4],a=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,E=-o*f-a*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=o,t[2]=s,t[3]=0,t[4]=n,t[5]=a,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=_,t[15]=1,t},l.IDENTITY=a(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=a(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,o(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,o,a,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,o,a){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),o=u.toRadians(r(o,0)),n(a)?(a.west=e,a.south=t,a.east=i,a.north=o,a):new s(e,t,i,o)},s.fromRadians=function(e,t,i,o,a){return n(a)?(a.west=r(e,0),a.south=r(t,0),a.east=r(i,0),a.north=r(o,0),a):new s(e,t,i,o)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;o=Math.min(o,p),a=Math.max(a,p)}return i-r>a-o&&(r=o,i=a,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,o.WGS84);for(var a=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var _=t.cartesianToCartographic(e[p]);a=Math.min(a,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-a>f-l&&(a=l,c=f,c>u.PI&&(c-=u.TWO_PI),a>u.PI&&(a-=u.TWO_PI)),n(i)?(i.west=a,i.south=h,i.east=c,i.north=d,i):new s(a,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,o=t.west;i<o&&(i+=u.TWO_PI);var a=u.negativePiToPi(.5*(o+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=a,r.latitude=s,r.height=0,r):new e(a,s)},s.intersection=function(e,t,r){var i=e.east,o=e.west,a=t.east,c=t.west;i<o&&a>0?i+=u.TWO_PI:a<c&&i>0&&(a+=u.TWO_PI),i<o&&c<0?c+=u.TWO_PI:a<c&&o<0&&(o+=u.TWO_PI);var l=u.negativePiToPi(Math.max(o,c)),f=u.negativePiToPi(Math.min(i,a));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),a=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(o>=u||i>=a))return n(r)?(r.west=i,r.south=o,r.east=a,r.north=u,r):new s(i,o,a,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,o=e.west,a=t.east,c=t.west;i<o&&a>0?i+=u.TWO_PI:a<c&&i>0&&(a+=u.TWO_PI),i<o&&c<0?c+=u.TWO_PI:a<c&&o<0&&(o+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(o,c)),f=u.convertLongitudeRange(Math.max(i,a));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,o=e.east;return o<i&&(o+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<o||u.equalsEpsilon(r,o,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,a){t=r(t,o.WGS84),i=r(i,0),n(a)||(a=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,a[l]=t.cartographicToCartesian(E,a[l]),l++,E.longitude=d,a[l]=t.cartographicToCartesian(E,a[l]),l++,E.latitude=h,a[l]=t.cartographicToCartesian(E,a[l]),l++,E.longitude=p,a[l]=t.cartographicToCartesian(E,a[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)E.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,E)&&(a[l]=t.cartographicToCartesian(E,a[l]),l++);return 0===E.latitude&&(E.longitude=p,a[l]=t.cartographicToCartesian(E,a[l]),l++,E.longitude=d,a[l]=t.cartographicToCartesian(E,a[l]),l++),a.length=l,a},s.MAX_VALUE=a(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,o,a,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,E=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,v=new e,S=new e,O=new e,I=new e,N=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,o=e.clone(t[0],R),a=e.clone(o,p),u=e.clone(o,E),s=e.clone(o,_),c=e.clone(o,m),l=e.clone(o,y),f=e.clone(o,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],o);var N=o.x,w=o.y,g=o.z;N<a.x&&e.clone(o,a),N>c.x&&e.clone(o,c),w<u.y&&e.clone(o,u),w>l.y&&e.clone(o,l),g<s.z&&e.clone(o,s),g>f.z&&e.clone(o,f)}var M=e.magnitudeSquared(e.subtract(c,a,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=a,U=c,D=M;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=v;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=S;B.x=a.x,B.y=u.y,B.z=s.z;var z=O;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],o);var V=e.magnitude(e.subtract(o,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(o,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var k=W-b;F.x=(b*F.x+k*o.x)/W,F.y=(b*F.y+k*o.y)/W,F.z=(b*F.z+k*o.z)/W}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var w=new a,g=new e,M=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,o,a,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,w),h.southwest(t,C),C.height=o,h.northeast(t,x),x.height=a;var s=r.project(C,g),c=r.project(x,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,a,u){if(r=n(r,o.WGS84),a=n(a,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,a,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,o,a){if(i(a)||(a=new d),!i(t)||0===t.length)return a.center=e.clone(e.ZERO,a.center),a.radius=0,a;r=n(r,e.ZERO),o=n(o,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,_),h=e.clone(u,m),N=e.clone(u,y),w=e.clone(u,T),g=t.length;for(s=0;s<g;s+=o){var M=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=M,u.y=C,u.z=x,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>N.y&&e.clone(u,N),x<f.z&&e.clone(u,f),x>w.z&&e.clone(u,w)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(N,l,A)),D=e.magnitudeSquared(e.subtract(w,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=N),D>b&&(b=D,F=f,L=w);var B=v;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=O;V.x=h.x,V.y=N.y,V.z=w.z;var X=e.midpoint(G,V,I),W=0;for(s=0;s<g;s+=o){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var k=e.magnitude(e.subtract(u,X,A));k>W&&(W=k);var H=e.magnitudeSquared(e.subtract(u,B,A));if(H>z){var Y=Math.sqrt(H);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<W?(e.clone(B,a.center),a.radius=q):(e.clone(X,a.center),a.radius=W),a},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var o=R;o.x=t[0]+r[0],o.y=t[1]+r[1],o.z=t[2]+r[2];var a,u=e.clone(o,p),s=e.clone(o,E),c=e.clone(o,_),l=e.clone(o,m),f=e.clone(o,y),h=e.clone(o,T),N=t.length;for(a=0;a<N;a+=3){var w=t[a]+r[a],g=t[a+1]+r[a+1],M=t[a+2]+r[a+2];o.x=w,o.y=g,o.z=M,w<u.x&&e.clone(o,u),w>l.x&&e.clone(o,l),g<s.y&&e.clone(o,s),g>f.y&&e.clone(o,f),M<c.z&&e.clone(o,c),M>h.z&&e.clone(o,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=v;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=O;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(a=0;a<N;a+=3){o.x=t[a]+r[a],o.y=t[a+1]+r[a+1],o.z=t[a+2]+r[a+2];var X=e.magnitude(e.subtract(o,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(o,L,A));if(W>b){var k=Math.sqrt(W);B=.5*(B+k),b=B*B;var H=k-B;L.x=(B*L.x+H*o.x)/k,L.y=(B*L.y+H*o.y)/k,L.z=(B*L.z+H*o.z)/k}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var o=e.midpoint(t,r,n.center);return n.radius=e.distance(o,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var o,a=[];for(o=0;o<n;o++)a.push(t[o].center);r=d.fromPoints(a,r);var u=r.center,s=r.radius;for(o=0;o<n;o++){var c=t[o];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,o=l.getColumn(n,0,D),a=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(o,a,o),e.add(o,u,o),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(o),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var o=r.center;return o.x=e[t++],o.y=e[t++],o.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var o=t.center,a=t.radius,u=r.center,s=r.radius,c=e.subtract(u,o,b),l=e.magnitude(c);if(a>=l+s)return t.clone(n),n;if(s>=l+a)return r.clone(n),n;var f=.5*(a+l+s),h=e.multiplyByScalar(c,(-a+f)/l,B);return e.add(h,o,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,o=r.normal,a=e.dot(o,n)+r.distance;return a<-i?u.OUTSIDE:a<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,o){i(o)||(o=new s);var a=e.subtract(t.center,r,G),u=e.dot(n,a);return o.start=u-t.radius,o.stop=u+t.radius,o};for(var V=new e,X=new e,W=new e,k=new e,H=new e,Y=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new a;return d.projectTo2D=function(t,r,i){r=n(r,Z);var o=r.ellipsoid,a=t.center,u=t.radius,s=o.geodeticSurfaceNormal(a,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,k),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var _=p.length,m=0;m<_;++m){var y=p[m];e.add(a,y,y);var T=o.cartesianToCartographic(y,Y);r.project(T,y)}i=d.fromPoints(p,i),a=i.center;var R=a.x,A=a.y,v=a.z;return a.x=v,a.y=R,a.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,o=["webkit","moz","o","ms","khtml"],a=0,u=o.length;a<u;++a){var s=o[a];i=s+"RequestFullscreen", -"function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=a(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,o)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return o(e)}})}function o(e){return new n(function(r,n){try{return n?t(n(e)):o(e)}catch(e){return o(e)}})}function a(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(o(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=a(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=m,E(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,o){return _(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=a(),c)for(_=d.progress,E=function(e){h.push(e),--l||(p=E=m,d.reject(h))},p=function(e){f.push(e),--c||(p=E=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,o)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,o,u,s,c;if(o=i=t.length>>>0,n=[],c=a(),o)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--o||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--o;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,o){return e(t,function(t){return e(n,function(e){return r(t,e,o,i)})})},T.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),o(e)},r.progress)}function E(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=a,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,o;if(o=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(o in t){n=t[o++];break}if(++o>=i)throw new TypeError}else n=r[1];for(;o<i;++o)o in t&&(n=e(n,t[o],o,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,o){"use strict";function a(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(I=!0,N=a(e[1]))}return I}function s(){return u()&&N}function c(){if(!t(w)&&(w=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(w=!0,g=a(e[1]))}return w}function l(){return c()&&g}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(M=!0,C=a(e[1]),C.isNightly=!!e[2])}return M}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=a(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=a(e[1]))}return x}function p(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(U=!0,D=a(e[1]))}return U}function _(){return E()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=a(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(O.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function v(){return A()?z:void 0}function S(){return S._result}var O;O="undefined"!=typeof navigator?navigator:{};var I,N,w,g,M,C,x,P,U,D,F,L,b,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=o.defer();if(S._promise=e.promise,E())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:v,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,o){"use strict";if(!n.supportsTypedArrays())return{};var a={BYTE:o.BYTE,UNSIGNED_BYTE:o.UNSIGNED_BYTE,SHORT:o.SHORT,UNSIGNED_SHORT:o.UNSIGNED_SHORT,INT:o.INT,UNSIGNED_INT:o.UNSIGNED_INT,FLOAT:o.FLOAT,DOUBLE:o.DOUBLE};return a.getSizeInBytes=function(e){switch(e){case a.BYTE:return Int8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.SHORT:return Int16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.INT:return Int32Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case a.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case a.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},a.fromTypedArray=function(e){return e instanceof Int8Array?a.BYTE:e instanceof Uint8Array?a.UNSIGNED_BYTE:e instanceof Int16Array?a.SHORT:e instanceof Uint16Array?a.UNSIGNED_SHORT:e instanceof Int32Array?a.INT:e instanceof Uint32Array?a.UNSIGNED_INT:e instanceof Float32Array?a.FLOAT:e instanceof Float64Array?a.DOUBLE:void 0},a.validate=function(e){return t(e)&&(e===a.BYTE||e===a.UNSIGNED_BYTE||e===a.SHORT||e===a.UNSIGNED_SHORT||e===a.INT||e===a.UNSIGNED_INT||e===a.FLOAT||e===a.DOUBLE)},a.createTypedArray=function(e,t){switch(e){case a.BYTE:return new Int8Array(t);case a.UNSIGNED_BYTE:return new Uint8Array(t);case a.SHORT:return new Int16Array(t);case a.UNSIGNED_SHORT:return new Uint16Array(t);case a.INT:return new Int32Array(t);case a.UNSIGNED_INT:return new Uint32Array(t);case a.FLOAT:return new Float32Array(t);case a.DOUBLE:return new Float64Array(t)}},a.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/a.getSizeInBytes(t)),t){case a.BYTE:return new Int8Array(r,n,i);case a.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case a.SHORT:return new Int16Array(r,n,i);case a.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case a.INT:return new Int32Array(r,n,i);case a.UNSIGNED_INT:return new Uint32Array(r,n,i);case a.FLOAT:return new Float32Array(r,n,i);case a.DOUBLE:return new Float64Array(r,n,i)}},a.fromName=function(e){switch(e){case"BYTE":return a.BYTE;case"UNSIGNED_BYTE":return a.UNSIGNED_BYTE;case"SHORT":return a.SHORT;case"UNSIGNED_SHORT":return a.UNSIGNED_SHORT;case"INT":return a.INT;case"UNSIGNED_INT":return a.UNSIGNED_INT;case"FLOAT":return a.FLOAT;case"DOUBLE":return a.DOUBLE}},i(a)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,o){"use strict";function a(e,r){this.x=t(e,0),this.y=t(r,0)}a.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new a(e,t)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new a(e.x,e.y)},a.fromCartesian3=a.clone,a.fromCartesian4=a.clone,a.packedLength=2,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},a.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new a),i.x=e[n++],i.y=e[n],i},a.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)a.pack(e[i],t,2*i);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var o=i/2;t[o]=a.unpack(e,i,t[o])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y)},a.minimumComponent=function(e){return Math.min(e.x,e.y)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var u=new a;a.distance=function(e,t){return a.subtract(e,t,u),a.magnitude(u)},a.distanceSquared=function(e,t){return a.subtract(e,t,u),a.magnitudeSquared(u)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,s),n=a.multiplyByScalar(e,1-r,n),a.add(s,n,n)};var c=new a,l=new a;a.angleBetween=function(e,t){return a.normalize(e,c),a.normalize(t,l),o.acosClamped(a.dot(c,l))};var f=new a;return a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,f);return a.abs(r,r),t=r.x<=r.y?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Y,t)},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},a.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&o.equalsEpsilon(e.x,t.x,n,i)&&o.equalsEpsilon(e.y,t.y,n,i)},a.ZERO=i(new a(0,0)),a.UNIT_X=i(new a(1,0)),a.UNIT_Y=i(new a(0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+")"},a}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,o){"use strict";function a(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}a.packedLength=4,a.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},a.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new a),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},a.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new a(e[0],e[2],e[1],e[3])},a.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new a),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},a.fromColumnMajorArray=function(e,t){return a.clone(e,t)},a.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new a(e[0],e[1],e[2],e[3])},a.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new a(e.x,0,0,e.y)},a.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new a(e,0,0,e)},a.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new a(r,-i,i,r)},a.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},a.getElementIndex=function(e,t){return 2*e+t},a.getColumn=function(e,t,r){var n=2*t,i=e[n],o=e[n+1];return r.x=i,r.y=o,r},a.setColumn=function(e,t,r,n){n=a.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},a.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},a.setRow=function(e,t,r,n){return n=a.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;a.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return a.getMaximumScale=function(t){return a.getScale(t,s),e.maximumComponent(s)},a.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],o=e[1]*t[0]+e[3]*t[1],a=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=o,r[2]=i,r[3]=a,r},a.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},a.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},a.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},a.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},a.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},a.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},a.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],o=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=o,t},a.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},a.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},a.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},a.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},a.IDENTITY=o(new a(1,0,0,1)),a.ZERO=o(new a(0,0,0,0)),a.COLUMN0ROW0=0,a.COLUMN0ROW1=1,a.COLUMN1ROW0=2,a.COLUMN1ROW1=3,i(a.prototype,{length:{get:function(){return a.packedLength}}}),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t){return a.equalsEpsilon(this,e,t)},a.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},a}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,o,a,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var o=r/2,a=Math.sin(o);c=e.normalize(t,c);var u=c.x*a,l=c.y*a,f=c.z*a,h=Math.cos(o);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,o,a,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)r=Math.sqrt(E+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,o=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,a=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),p>h&&p>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],o=-R[1],a=-R[2]}return n(t)?(t.x=i,t.y=o,t.z=a,t.w=c,t):new s(i,o,a,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,r){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,o=r-t+1;i<o;i++){var a=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[a]=_.x*u,n[a+1]=_.y*u,n[a+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,o,a){n(a)||(a=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*o,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,a)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,o=e.z*r,a=e.w*r;return t.x=n,t.y=i,t.z=o,t.w=a,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,o=e.z,a=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=a*u+n*l+i*c-o*s,h=a*s-n*c+i*l+o*u,d=a*c+n*s-i*u+o*l,p=a*l-n*u-i*s-o*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<a.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<a.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var v=new s,S=new s,O=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),o=t;if(i<0&&(i=-i,o=v=s.negate(t,v)),1-i<a.EPSILON6)return s.lerp(e,o,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),O=s.multiplyByScalar(o,Math.sin(r*u),O),n=s.add(S,O,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=a.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,N=new e,w=new s,g=new s;s.computeInnerQuadrangle=function(t,r,n,i){var o=s.conjugate(r,w);s.multiply(o,n,g);var a=s.log(g,I);s.multiply(o,t,g);var u=s.log(g,N);return e.add(a,u,a),e.multiplyByScalar(a,.25,a),e.negate(a,a),s.exp(a,w),s.multiply(r,w,i)},s.squad=function(e,t,r,n,i,o){var a=s.slerp(e,t,i,w),u=s.slerp(r,n,i,g);return s.slerp(a,u,2*i*(1-i),o)};for(var M=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,o=s.dot(e,t);o>=0?i=1:(i=-1,o=-o);for(var a=o-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*a,D[f]=(x[f]*l-P[f])*a;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,o){var a=s.fastSlerp(e,t,i,w),u=s.fastSlerp(r,n,i,g);return s.fastSlerp(a,u,2*i*(1-i),o)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=o(new s(0,0,0,0)),s.IDENTITY=o(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,o=0,a=e.length-1;o<=a;)if(n=~~((o+a)/2),(i=r(e[n],t))<0)o=n+1;else{if(!(i>0))return n;a=n-1}return~(a+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},o=function(e,t,r,n,o,a){var u=n-e.length;return u>0&&(e=r||!o?i(e,n,a,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},a=function(e,t,r,n,a,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),o(e,r,n,a,s)},u=function(e,t,r,n,i,a){return null!=n&&(e=e.slice(0,n)),o(e,"",t,r,i,a)},s=function(e,n,s,c,l,f,h){var d,p,E,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,v=" ",S=s.length,O=0;s&&O<S;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":v=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,v);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return a(m,2,A,y,c,f,R);case"o":return a(m,8,A,y,c,f,R);case"x":return a(m,16,A,y,c,f,R);case"X":return a(m,16,A,y,c,f,R).toUpperCase();case"u":return a(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),p=d<0?"-":T,m=p+i(String(Math.abs(d)),f,"0",!1),o(m,p,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=p+Math.abs(d)[E](f),o(m,p,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,o,a,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=o,this.millisecond=a,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,o,a,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=E.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){E.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}E.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=E.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-n[0].offset,r);if(i>=n.length)return E.addSeconds(e,-n[i-1].offset,r);var o=E.secondsDifference(n[i].julianDate,e);return 0===o?E.addSeconds(e,-n[i].offset,r):o<=1?void 0:E.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,o,a){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=o+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+a*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new o,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,v=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+O.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,w=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;E.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,o,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,O=0,g=u[0],M=u[1];if(null!==(u=g.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=g.match(R)))r=+u[1],s=+u[2];else if(null!==(u=g.match(T)))r=+u[1];else{var C;if(null!==(u=g.match(A)))r=+u[1],C=+u[2],o=a(r);else if(null!==(u=g.match(v))){r=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(r,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}o=a(r);var D;if(n(M)){u=M.match(w),null!==u?(h=+u[1],_=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=M.match(N),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=M.match(I))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=o&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=o&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=o&&2===s?29:m[s-1],l+=i;var z=p(r,s,l,h,_,y,O);return n(t)?(d(z[0],z[1],t),f(t)):t=new E(z[0],z[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var g=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var r=!1,i=h(e,g);n(i)||(E.addSeconds(e,-1,g),i=h(g,g),r=!0);var a=i.dayNumber,u=i.secondsOfDay;u>=43200&&(a+=1);var c=a+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,v=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=p,t.hour=y,t.minute=R,t.second=A,t.millisecond=v,t.isLeapSecond=r,t):new o(m,_,p,y,R,A,v,r)},E.toDate=function(e){var t=E.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},E.toIso8601=function(t,r){var i=E.toGregorianDate(t,_),o=i.year,a=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===o&&1===a&&1===u&&0===s&&0===c&&0===l&&0===f&&(o=9999,a=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",o,a,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",o,a,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",o,a,u,s,c,l,h))},E.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(E.secondsDifference(e,t))<=r},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){y.julianDate=e;var r=E.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},E.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},E.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},E.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},E.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return o.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(a,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,o=/[a-zA-Z0-9\-\._~]/,a=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var o in r)if(r.hasOwnProperty(o)){var a=r[o];n&&(a=t(a,n)),i[o]=a}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,o){o=e(o,!1);var a,u,s,c={},l=t(n),f=t(i);if(l)for(a in n)n.hasOwnProperty(a)&&(u=n[a],f&&o&&"object"==typeof u&&i.hasOwnProperty(a)?(s=i[a],c[a]="object"==typeof s?r(u,s,o):u):c[a]=u);if(f)for(a in i)i.hasOwnProperty(a)&&!c.hasOwnProperty(a)&&(s=i[a],c[a]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,o){if(!r(i)){if(void 0===o)return n;i=t(o.baseURI,o.location.href)}var a=new e(i);return new e(n).resolve(a).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",o=r.lastIndexOf("/");return-1!==o&&(i=r.substring(0,o+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],o=encodeURIComponent(n)+"=";if(r(i))for(var a=0,u=i.length;a<u;++a)t+=o+encodeURIComponent(i[a])+"&";else t+=o+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),o=0,a=i.length;o<a;++o){var u=i[o].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),o=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=o,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],o=i.indexOf(": ");if(o>0){var a=i.substring(0,o),u=i.substring(o+2);t[a]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,o=0;o<r.length;o++)if(r[o]===e&&n[o]===t){i=o;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,o=r.length;for(e=0;e<o;e++){var a=r[e];t(a)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((o=u.length)>0){for(u.sort(i),e=0;e<o;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function o(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,a=-1,u=!0;u;){var s=2*(e+1),c=s-1;a=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[a])<0&&(a=s),a!==e?(o(i,a,e),e=a):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,a=this._length++;for(a<t.length?t[a]=e:t.push(e);0!==a;){var u=Math.floor((a-1)/2);if(!(n(t[a],t[u])<0))break;o(t,a,u),a=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return o(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,o,a,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],w.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],w.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=E(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},v=20,S=new u({comparator:f});S.maximumLength=v,S.reserve(v);var O=[],I={},N="undefined"!=typeof document?new e(document.location.href):new e,w=new a;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=w,o(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return v},set:function(e){if(e<v)for(;S.length>e;){var t=S.pop();T(t)}v=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=O.length;for(e=0;e<n;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(O[e-r]=t):++r;O.length-=r;var i=S.internalArray,o=S.length;for(e=0;e<o;++e)d(i[e]);S.resort();for(var a=Math.max(h.maximumRequests-O.length,0),u=0;u<a&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(N);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var o=I[n];return i(o)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return w.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var o=n.getScheme();if(t(o)||(o=window.location.protocol,o=o.substring(0,o.length-1)),"http"===o)i+=":80";else{if("https"!==o)return;i+=":443"}}return i}}var i={},o={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(o[n])||(o[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(o[n])&&delete o[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(o[r]))},i.clear=function(){o={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,o,a,u,s,c,l,f,h,d,p,E,_,m,y,T,R,A,v,S,O,I){"use strict";function N(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var o;if(-1===i.indexOf("=")){var a={};a[i]=void 0,o=a}else o=T(i);t._queryParameters=r?C(o,t._queryParameters,n):o,e.query=void 0}function w(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function g(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new O("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return o(e,t);var n=i(e,!0);for(var a in t)if(t.hasOwnProperty(a)){var s=n[a],c=t[a];u(s)?(Array.isArray(s)||(s=n[a]=[s]),n[a]=s.concat(c)):n[a]=Array.isArray(c)?c.slice():c}return n}function x(t){t=a(t,a.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=g(t.templateValues,{}),this._queryParameters=g(t.queryParameters,{}),this.headers=g(t.headers,{}),this.request=a(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=a(t.retryAttempts,0), -this._retryCount=0;var r=new e(t.url);N(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,o=r.request;o.url=r.url,o.requestFunction=function(){var e=r.url,o=!1;r.isDataUri||r.isBlobUri||(o=r.isCrossOriginUrl);var a=t.defer();return x._Implementations.createImage(e,o,a,n,i),a.promise};var a=v.request(o);if(u(a))return a.otherwise(function(e){return o.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(a){return a?(o.state=S.UNISSUED,o.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var o=e.request;o.url=e.url,o.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var a=v.request(o);if(u(a))return a.otherwise(function(i){return o.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(a){return a?(o.state=S.UNISSUED,o.deferred=void 0,U(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),o=0;o<r.length;o++)i[o]=r.charCodeAt(o);return n}function L(e,t){t=a(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var o=F(n,i);return new Blob([o],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,o,a){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void o.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?o.reject(new O("Error decompressing response.")):o.resolve(B(r,t))}):o.resolve(B(n,t))})}).on("error",function(e){o.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);N(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&w(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),o=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=o[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?o(this._templateValues,e):o(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);N(n,r,!0,a(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=o(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=o(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=o(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=a(e,a.EMPTY_OBJECT);var r=a(e.preferImageBitmap,!1),n=a(e.preferBlob,!1),i=a(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var o=this.fetchBlob();if(u(o)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,o}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=a(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,a=o(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,a,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=v.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(o){return o?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=g(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=g(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=g(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=g(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,o,a){var s=V.exec(e);if(null!==s)return void o.resolve(L(s,t));if(X)return void z(e,t,r,n,i,o,a);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(a)&&u(c.overrideMimeType)&&c.overrideMimeType(a),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void o.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),a=i.trim().split(/[\r\n]+/),s={};return a.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void o.resolve(s)}if(204===c.status)o.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{o.resolve(JSON.parse(e))}catch(e){o.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?o.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?o.reject(new O("Invalid XMLHttpRequest response type.")):o.resolve(c.responseText);else o.resolve(e)},c.onerror=function(e){o.reject(new A)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,o,a,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),o=this;this._downloadPromise=e(i.fetchJson(),function(e){p(o,e)},function(){o._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return a.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),o=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||o<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=o,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var v=_[R+i],S=_[R+E],O=v+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new a(O,S,f.TAI);if(m.push(I),T){if(S!==y&&n(y)){var N=a.leapSeconds,w=t(N,I,d);if(w<0){var g=new u(I,S);N.splice(~w,0,g)}}y=S}}}function E(e,t,r,n,i){var o=r*n;i.xPoleWander=t[o+e._xPoleWanderRadiansColumn],i.yPoleWander=t[o+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[o+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[o+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[o+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,o,u){var s=e._columnCount;if(o>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[o];if(c.equals(l)||n.equals(c))return E(e,r,i,s,u),u;if(n.equals(l))return E(e,r,o,s,u),u;var f=a.secondsDifference(n,c)/a.secondsDifference(l,c),h=i*s,d=o*s,p=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-p;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?p=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,p,m),u}return h.NONE=o({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var o=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=o[u],h=o[u+1],d=a.lessThanOrEquals(f,e),p=!n(h),E=p||a.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,m(this,o,this._samples,e,s,l,r),r}var _=t(o,e,a.compare,this._dateColumn);return _>=0?(_<o.length-1&&o[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,o,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var o=2*(e.w*e.y-e.z*e.x),a=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,a),r.pitch=-n.asinClamped(o),r},i.fromDegrees=function(e,r,o,a){return t(a)||(a=new i),a.heading=e*n.RADIANS_PER_DEGREE,a.pitch=r*n.RADIANS_PER_DEGREE,a.roll=o*n.RADIANS_PER_DEGREE,a},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,o){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,o)&&n.equalsEpsilon(e.pitch,r.pitch,i,o)&&n.equalsEpsilon(e.roll,r.roll,i,o)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function o(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function a(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):o(),h=new n({url:a(t)}),h.appendForwardSlash(),h}function s(e){return a(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,o,a,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=a.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new o(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,o.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var o=e.defer();r._chunkDownloadsInProgress[i]=o;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new a({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,a=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[a+u]=n[u];o.resolve()}),o.promise}var f=new o(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var o=c(this,t,r),a=c(this,n,i),u=o/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=a/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var o=c(this,e,t);if(!(o<0)){var a=o/this._stepSizeDays|0;if(!(a>=this._totalSamples)){var u=this._interpolationOrder,s=a-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,E,_=o-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)m[p]=_-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=m[E]);T[p]*=y[p];var A=3*(s+p);r.x+=T[p]*d[A++],r.y+=T[p]*d[A++],r.s+=T[p]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,o,a,u,s,c,l,f,h,d,p,E,_,m,y,T,R){"use strict";var A={},v={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},N=new r,w=new r,g=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!v.hasOwnProperty(e)||!v[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=v[e][t],o=e+t;return u(O[o])?n=O[o]:(n=function(n,o,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(S[e],0,N),"east"!==e&&"west"!==e&&r.multiplyByScalar(N,c,N),r.unpack(S[t],0,w),"east"!==t&&"west"!==t&&r.multiplyByScalar(w,c,w),r.unpack(S[i],0,g),"east"!==i&&"west"!==i&&r.multiplyByScalar(g,c,g)}else{o=a(o,f.WGS84),o.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),N=I[e],w=I[t],g=I[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=w.x,s[5]=w.y,s[6]=w.z,s[7]=0,s[8]=g.x,s[9]=g.y,s[10]=g.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},O[o]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new T,C=new r(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=a(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,M),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return o=i(e,n,o),y.multiply(o,s,o)};var P=new y,U=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var o=A.headingPitchRollToFixedFrame(e,t,r,n,P),a=y.getRotation(o,U);return T.fromRotationMatrix(a,i)};var D=new r(1,1,1),F=new r,L=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=a(t,f.WGS84),n=a(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var o=y.getTranslation(e,F);if(r.equals(o,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(o,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new E;A.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,o=n-2451545;r=i>=43200?(o+.5)/R.DAYS_PER_JULIAN_CENTURY:(o-.5)/R.DAYS_PER_JULIAN_CENTURY;var a=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=a*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,o=t.stop.secondsOfDay+32.184,a=A.iau2006XysData.preload(r,n,i,o),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([a,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new p(0,0,0),X=new l(0,0,0,0,0,0),W=new m,k=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,o=A.iau2006XysData.computeXysRadians(n,i,V);if(u(o)){var a=o.x+r.xPoleOffset,s=o.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-a*a-s*s)),l=W;l[0]=1-c*a*a,l[3]=-c*a*s,l[6]=a,l[1]=-c*a*s,l[4]=1-c*s*s,l[7]=s,l[2]=-a,l[5]=-s,l[8]=1-c*(a*a+s*s);var f=m.fromRotationZ(-o.s,k),h=m.multiply(l,f,W),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=p/R.SECONDS_PER_DAY,v=.779057273264+T+.00273781191135448*(y+T);v=v%1*_.TWO_PI;var S=m.fromRotationZ(v,k),O=m.multiply(h,S,W),I=Math.cos(r.xPoleWander),N=Math.cos(r.yPoleWander),w=Math.sin(r.xPoleWander),g=Math.sin(r.yPoleWander),M=n-2451545+i/R.SECONDS_PER_DAY;M/=36525;var C=-47e-6*M*_.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=k;return U[0]=I*x,U[1]=I*P,U[2]=w,U[3]=-N*P+g*w*x,U[4]=N*x+g*w*P,U[5]=-g*I,U[6]=-g*P-N*w*x,U[7]=g*x-N*w*P,U[8]=N*I,m.multiply(O,U,t)}}};var H=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,o){u(o)||(o=new t);var a=H;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,a),a),n.multiplyByScalar(a,1/a.w,a),y.multiplyByVector(r,a,a),t.fromCartesian4(a,o)};var Y=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var o=a(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,o,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),o=e.ellipsoid,a=o.cartesianToCartographic(i,J),u=e.project(a,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,o,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,o=A.eastNorthUpToFixedFrame(t,i,te),a=y.inverseTransformation(o,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,a,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,o,a,u,s,c,l,f,h,d,p,E){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&o(e.attributes[r])&&o(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],v=[new e,new e,new e],S=new t,O=new d,I=new f,N=new c;return _._textureCoordinateRotationPoints=function(n,i,o,a){var u,s=p.center(a,m),h=r.toCartesian(s,o,y),_=E.eastNorthUpToFixedFrame(h,o,T),w=f.inverse(_,T),g=A,M=R;M[0].longitude=a.west,M[0].latitude=a.south,M[1].longitude=a.west,M[1].latitude=a.north,M[2].longitude=a.east,M[2].latitude=a.south;var C=S;for(u=0;u<3;u++)r.toCartesian(M[u],o,C),C=f.multiplyByPointAsVector(w,C,C),g[u].x=C.x,g[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,O),P=l.fromQuaternion(x,I),U=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)C=f.multiplyByPointAsVector(w,n[u],C),C=l.multiplyByVector(P,C,C),D=Math.min(D,C.x),F=Math.min(F,C.y),L=Math.max(L,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,N),z=v;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=g[0],G=g[2].x-q.x,V=g[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],k=z[1],H=z[2],Y=new Array(6);return e.pack(W,Y),e.pack(k,Y,2),e.pack(H,Y,4),Y},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,o,a){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var o=-e.dot(n,t);return r(i)?(e.clone(n,i.normal), -i.distance=o,i):new u(n,o)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),o=t.w;return r(n)?(e.clone(i,n.normal),n.distance=o,n):new u(i,o)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var o=u.getPointDistance(t,n),a=e.multiplyByScalar(t.normal,o,c);return e.subtract(n,a,i)};var l=new e;return u.transform=function(t,r,n){return a.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),a.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/CullingVolume",["./Cartesian3","./Cartesian4","./defaultValue","./defined","./DeveloperError","./Intersect","./Plane"],function(e,t,r,n,i,o,a){"use strict";function u(e){this.planes=r(e,[])}var s=[new e,new e,new e];e.clone(e.UNIT_X,s[0]),e.clone(e.UNIT_Y,s[1]),e.clone(e.UNIT_Z,s[2]);var c=new e,l=new e,f=new a(new e(1,0,0),0);return u.fromBoundingSphere=function(r,i){n(i)||(i=new u);var o=s.length,a=i.planes;a.length=2*o;for(var f=r.center,h=r.radius,d=0,p=0;p<o;++p){var E=s[p],_=a[d],m=a[d+1];n(_)||(_=a[d]=new t),n(m)||(m=a[d+1]=new t),e.multiplyByScalar(E,-h,c),e.add(f,c,c),_.x=E.x,_.y=E.y,_.z=E.z,_.w=-e.dot(E,c),e.multiplyByScalar(E,h,c),e.add(f,c,c),m.x=-E.x,m.y=-E.y,m.z=-E.z,m.w=-e.dot(e.negate(E,l),c),d+=2}return i},u.prototype.computeVisibility=function(e){for(var t=this.planes,r=!1,n=0,i=t.length;n<i;++n){var u=e.intersectPlane(a.fromCartesian4(t[n],f));if(u===o.OUTSIDE)return o.OUTSIDE;u===o.INTERSECTING&&(r=!0)}return r?o.INTERSECTING:o.INSIDE},u.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===u.MASK_OUTSIDE||t===u.MASK_INSIDE)return t;for(var r=u.MASK_INSIDE,n=this.planes,i=0,s=n.length;i<s;++i){var c=i<31?1<<i:0;if(!(i<31&&0==(t&c))){var l=e.intersectPlane(a.fromCartesian4(n[i],f));if(l===o.OUTSIDE)return u.MASK_OUTSIDE;l===o.INTERSECTING&&(r|=c)}}return r},u.MASK_OUTSIDE=4294967295,u.MASK_INSIDE=0,u.MASK_INDETERMINATE=2147483647,u}),define("Core/OrthographicOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,r,n,i,o,a,u,s){"use strict";function c(e){e=n(e,n.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=n(e.near,1),this._near=this.near,this.far=n(e.far,5e8),this._far=this.far,this._cullingVolume=new r,this._orthographicMatrix=new s}function l(e){e.top===e._top&&e.bottom===e._bottom&&e.left===e._left&&e.right===e._right&&e.near===e._near&&e.far===e._far||(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=s.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}o(c.prototype,{projectionMatrix:{get:function(){return l(this),this._orthographicMatrix}}});var f=new e,h=new e,d=new e,p=new e;return c.prototype.computeCullingVolume=function(r,n,o){var a=this._cullingVolume.planes,u=this.top,s=this.bottom,c=this.right,l=this.left,E=this.near,_=this.far,m=e.cross(n,o,f);e.normalize(m,m);var y=h;e.multiplyByScalar(n,E,y),e.add(r,y,y);var T=d;e.multiplyByScalar(m,l,T),e.add(y,T,T);var R=a[0];return i(R)||(R=a[0]=new t),R.x=m.x,R.y=m.y,R.z=m.z,R.w=-e.dot(m,T),e.multiplyByScalar(m,c,T),e.add(y,T,T),R=a[1],i(R)||(R=a[1]=new t),R.x=-m.x,R.y=-m.y,R.z=-m.z,R.w=-e.dot(e.negate(m,p),T),e.multiplyByScalar(o,s,T),e.add(y,T,T),R=a[2],i(R)||(R=a[2]=new t),R.x=o.x,R.y=o.y,R.z=o.z,R.w=-e.dot(o,T),e.multiplyByScalar(o,u,T),e.add(y,T,T),R=a[3],i(R)||(R=a[3]=new t),R.x=-o.x,R.y=-o.y,R.z=-o.z,R.w=-e.dot(e.negate(o,p),T),R=a[4],i(R)||(R=a[4]=new t),R.x=n.x,R.y=n.y,R.z=n.z,R.w=-e.dot(n,y),e.multiplyByScalar(n,_,T),e.add(r,T,T),R=a[5],i(R)||(R=a[5]=new t),R.x=-n.x,R.y=-n.y,R.z=-n.z,R.w=-e.dot(e.negate(n,p),T),this._cullingVolume},c.prototype.getPixelDimensions=function(e,t,r,n){l(this);var i=this.right-this.left,o=this.top-this.bottom,a=i/e,u=o/t;return n.x=a,n.y=u,n},c.prototype.clone=function(e){return i(e)||(e=new c),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},c.prototype.equals=function(e){return i(e)&&e instanceof c&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},c.prototype.equalsEpsilon=function(e,t,r){return e===this||i(e)&&e instanceof c&&u.equalsEpsilon(this.right,e.right,t,r)&&u.equalsEpsilon(this.left,e.left,t,r)&&u.equalsEpsilon(this.top,e.top,t,r)&&u.equalsEpsilon(this.bottom,e.bottom,t,r)&&u.equalsEpsilon(this.near,e.near,t,r)&&u.equalsEpsilon(this.far,e.far,t,r)},c}),define("Core/OrthographicFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./OrthographicOffCenterFrustum"],function(e,t,r,n,i,o,a){"use strict";function u(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new a,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far}function s(e){var t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;var r=1/e.aspectRatio;t.right=.5*e.width,t.left=-t.right,t.top=r*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}return u.packedLength=4,u.pack=function(e,r,n){return n=t(n,0),r[n++]=e.width,r[n++]=e.aspectRatio,r[n++]=e.near,r[n]=e.far,r},u.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new u),i.width=e[n++],i.aspectRatio=e[n++],i.near=e[n++],i.far=e[n],i},n(u.prototype,{projectionMatrix:{get:function(){return s(this),this._offCenterFrustum.projectionMatrix}}}),u.prototype.computeCullingVolume=function(e,t,r){return s(this),this._offCenterFrustum.computeCullingVolume(e,t,r)},u.prototype.getPixelDimensions=function(e,t,r,n){return s(this),this._offCenterFrustum.getPixelDimensions(e,t,r,n)},u.prototype.clone=function(e){return r(e)||(e=new u),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},u.prototype.equals=function(e){return!!(r(e)&&e instanceof u)&&(s(this),s(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},u.prototype.equalsEpsilon=function(e,t,n){return!!(r(e)&&e instanceof u)&&(s(this),s(e),o.equalsEpsilon(this.width,e.width,t,n)&&o.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))},u}),define("Core/PerspectiveOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,r,n,i,o,a,u,s){"use strict";function c(e){e=n(e,n.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=n(e.near,1),this._near=this.near,this.far=n(e.far,5e8),this._far=this.far,this._cullingVolume=new r,this._perspectiveMatrix=new s,this._infinitePerspective=new s}function l(e){var t=e.top,r=e.bottom,n=e.right,i=e.left,o=e.near,a=e.far;t===e._top&&r===e._bottom&&i===e._left&&n===e._right&&o===e._near&&a===e._far||(e._left=i,e._right=n,e._top=t,e._bottom=r,e._near=o,e._far=a,e._perspectiveMatrix=s.computePerspectiveOffCenter(i,n,r,t,o,a,e._perspectiveMatrix),e._infinitePerspective=s.computeInfinitePerspectiveOffCenter(i,n,r,t,o,e._infinitePerspective))}o(c.prototype,{projectionMatrix:{get:function(){return l(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return l(this),this._infinitePerspective}}});var f=new e,h=new e,d=new e,p=new e;return c.prototype.computeCullingVolume=function(r,n,o){var a=this._cullingVolume.planes,u=this.top,s=this.bottom,c=this.right,l=this.left,E=this.near,_=this.far,m=e.cross(n,o,f),y=h;e.multiplyByScalar(n,E,y),e.add(r,y,y);var T=d;e.multiplyByScalar(n,_,T),e.add(r,T,T);var R=p;e.multiplyByScalar(m,l,R),e.add(y,R,R),e.subtract(R,r,R),e.normalize(R,R),e.cross(R,o,R),e.normalize(R,R);var A=a[0];return i(A)||(A=a[0]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(m,c,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(o,R,R),e.normalize(R,R),A=a[1],i(A)||(A=a[1]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(o,s,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(m,R,R),e.normalize(R,R),A=a[2],i(A)||(A=a[2]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(o,u,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(R,m,R),e.normalize(R,R),A=a[3],i(A)||(A=a[3]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),A=a[4],i(A)||(A=a[4]=new t),A.x=n.x,A.y=n.y,A.z=n.z,A.w=-e.dot(n,y),e.negate(n,R),A=a[5],i(A)||(A=a[5]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,T),this._cullingVolume},c.prototype.getPixelDimensions=function(e,t,r,n){l(this);var i=1/this.near,o=this.top*i,a=2*r*o/t;o=this.right*i;var u=2*r*o/e;return n.x=u,n.y=a,n},c.prototype.clone=function(e){return i(e)||(e=new c),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},c.prototype.equals=function(e){return i(e)&&e instanceof c&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},c.prototype.equalsEpsilon=function(e,t,r){return e===this||i(e)&&e instanceof c&&u.equalsEpsilon(this.right,e.right,t,r)&&u.equalsEpsilon(this.left,e.left,t,r)&&u.equalsEpsilon(this.top,e.top,t,r)&&u.equalsEpsilon(this.bottom,e.bottom,t,r)&&u.equalsEpsilon(this.near,e.near,t,r)&&u.equalsEpsilon(this.far,e.far,t,r)},c}),define("Core/PerspectiveFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./PerspectiveOffCenterFrustum"],function(e,t,r,n,i,o,a){"use strict";function u(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new a,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far,this.xOffset=t(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=t(e.yOffset,0),this._yOffset=this.yOffset}function s(e){var t=e._offCenterFrustum;e.fov===e._fov&&e.aspectRatio===e._aspectRatio&&e.near===e._near&&e.far===e._far&&e.xOffset===e._xOffset&&e.yOffset===e._yOffset||(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:2*Math.atan(Math.tan(.5*e.fov)/e.aspectRatio),e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}return u.packedLength=6,u.pack=function(e,r,n){return n=t(n,0),r[n++]=e.fov,r[n++]=e.aspectRatio,r[n++]=e.near,r[n++]=e.far,r[n++]=e.xOffset,r[n]=e.yOffset,r},u.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new u),i.fov=e[n++],i.aspectRatio=e[n++],i.near=e[n++],i.far=e[n++],i.xOffset=e[n++],i.yOffset=e[n],i},n(u.prototype,{projectionMatrix:{get:function(){return s(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return s(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return s(this),this._fovy}},sseDenominator:{get:function(){return s(this),this._sseDenominator}}}),u.prototype.computeCullingVolume=function(e,t,r){return s(this),this._offCenterFrustum.computeCullingVolume(e,t,r)},u.prototype.getPixelDimensions=function(e,t,r,n){return s(this),this._offCenterFrustum.getPixelDimensions(e,t,r,n)},u.prototype.clone=function(e){return r(e)||(e=new u),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},u.prototype.equals=function(e){return!!(r(e)&&e instanceof u)&&(s(this),s(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},u.prototype.equalsEpsilon=function(e,t,n){return!!(r(e)&&e instanceof u)&&(s(this),s(e),o.equalsEpsilon(this.fov,e.fov,t,n)&&o.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))},u}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,o){return n=e(n,0),t(o)||(o=new i),o.position=1===r[n++],o.normal=1===r[n++],o.st=1===r[n++],o.tangent=1===r[n++],o.bitangent=1===r[n++],o.color=1===r[n],o},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/FrustumGeometry",["./BoundingSphere","./Cartesian3","./Cartesian4","./Check","./ComponentDatatype","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./Matrix3","./Matrix4","./OrthographicFrustum","./PerspectiveFrustum","./PrimitiveType","./Quaternion","./VertexFormat"],function(e,t,r,n,i,o,a,u,s,c,l,f,h,d,p,E,_){"use strict";function m(e){var r,n,i=e.frustum,a=e.orientation,u=e.origin,s=o(e.vertexFormat,_.DEFAULT),c=o(e._drawNearPlane,!0);i instanceof d?(r=T,n=d.packedLength):i instanceof h&&(r=R,n=h.packedLength),this._frustumType=r,this._frustum=i.clone(),this._origin=t.clone(u),this._orientation=E.clone(a),this._drawNearPlane=c,this._vertexFormat=s,this._workerName="createFrustumGeometry",this.packedLength=2+n+t.packedLength+E.packedLength+_.packedLength}function y(e,t,r,n,i,o,u,s){for(var c=e/3*2,l=0;l<4;++l)a(t)&&(t[e]=o.x,t[e+1]=o.y,t[e+2]=o.z),a(r)&&(r[e]=u.x,r[e+1]=u.y,r[e+2]=u.z),a(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),e+=3;i[c]=0,i[c+1]=0,i[c+2]=1,i[c+3]=0,i[c+4]=1,i[c+5]=1,i[c+6]=0,i[c+7]=1}var T=0,R=1;m.pack=function(e,r,n){n=o(n,0);var i=e._frustumType,a=e._frustum;return r[n++]=i,i===T?(d.pack(a,r,n),n+=d.packedLength):(h.pack(a,r,n),n+=h.packedLength),t.pack(e._origin,r,n),n+=t.packedLength,E.pack(e._orientation,r,n),n+=E.packedLength,_.pack(e._vertexFormat,r,n),n+=_.packedLength,r[n]=e._drawNearPlane?1:0,r};var A=new d,v=new h,S=new E,O=new t,I=new _;m.unpack=function(e,r,n){r=o(r,0);var i,u=e[r++];u===T?(i=d.unpack(e,r,A),r+=d.packedLength):(i=h.unpack(e,r,v),r+=h.packedLength);var s=t.unpack(e,r,O);r+=t.packedLength;var c=E.unpack(e,r,S);r+=E.packedLength;var l=_.unpack(e,r,I);r+=_.packedLength;var f=1===e[r];if(!a(n))return new m({frustum:i,origin:s,orientation:c,vertexFormat:l,_drawNearPlane:f});var p=u===n._frustumType?n._frustum:void 0;return n._frustum=i.clone(p),n._frustumType=u,n._origin=t.clone(s,n._origin),n._orientation=E.clone(c,n._orientation),n._vertexFormat=_.clone(l,n._vertexFormat),n._drawNearPlane=f,n};var N=new l,w=new f,g=new f,M=new t,C=new t,x=new t,P=new t,U=new t,D=new t,F=new Array(3),L=new Array(4);L[0]=new r(-1,-1,1,1),L[1]=new r(1,-1,1,1),L[2]=new r(1,1,1,1),L[3]=new r(-1,1,1,1);for(var b=new Array(4),B=0;B<4;++B)b[B]=new r;return m._computeNearFarPlanes=function(e,n,i,u,s,c,h,d){var p=l.fromQuaternion(n,N),E=o(c,M),_=o(h,C),m=o(d,x);E=l.getColumn(p,0,E),_=l.getColumn(p,1,_),m=l.getColumn(p,2,m),t.normalize(E,E),t.normalize(_,_),t.normalize(m,m),t.negate(E,E);var y,R,A=f.computeView(e,m,_,E,w);if(i===T){var v=u.projectionMatrix,S=f.multiply(v,A,g);R=f.inverse(S,g)}else y=f.inverseTransformation(A,g);a(R)?(F[0]=u.near,F[1]=u.far):(F[0]=0,F[1]=u.near,F[2]=u.far);for(var O=0;O<2;++O)for(var I=0;I<4;++I){var P=r.clone(L[I],b[I]);if(a(R)){P=f.multiplyByVector(R,P,P);var U=1/P.w;t.multiplyByScalar(P,U,P),t.subtract(P,e,P),t.normalize(P,P);var D=t.dot(m,P);t.multiplyByScalar(P,F[O]/D,P),t.add(P,e,P)}else{a(u._offCenterFrustum)&&(u=u._offCenterFrustum);var B=F[O],z=F[O+1];P.x=.5*(P.x*(u.right-u.left)+u.left+u.right),P.y=.5*(P.y*(u.top-u.bottom)+u.bottom+u.top),P.z=.5*(P.z*(B-z)-B-z),P.w=1,f.multiplyByVector(y,P,P)}s[12*O+3*I]=P.x,s[12*O+3*I+1]=P.y,s[12*O+3*I+2]=P.z}},m.createGeometry=function(r){var n=r._frustumType,o=r._frustum,l=r._origin,f=r._orientation,h=r._drawNearPlane,d=r._vertexFormat,E=h?6:5,_=new Float64Array(72);m._computeNearFarPlanes(l,f,n,o,_);var T=24;_[T]=_[12],_[T+1]=_[13],_[T+2]=_[14],_[T+3]=_[0],_[T+4]=_[1],_[T+5]=_[2],_[T+6]=_[9],_[T+7]=_[10],_[T+8]=_[11],_[T+9]=_[21],_[T+10]=_[22],_[T+11]=_[23],T+=12,_[T]=_[15],_[T+1]=_[16],_[T+2]=_[17],_[T+3]=_[3],_[T+4]=_[4],_[T+5]=_[5],_[T+6]=_[0],_[T+7]=_[1],_[T+8]=_[2],_[T+9]=_[12],_[T+10]=_[13],_[T+11]=_[14],T+=12,_[T]=_[3],_[T+1]=_[4],_[T+2]=_[5],_[T+3]=_[15],_[T+4]=_[16],_[T+5]=_[17],_[T+6]=_[18],_[T+7]=_[19],_[T+8]=_[20],_[T+9]=_[6],_[T+10]=_[7],_[T+11]=_[8],T+=12,_[T]=_[6],_[T+1]=_[7],_[T+2]=_[8],_[T+3]=_[18],_[T+4]=_[19],_[T+5]=_[20],_[T+6]=_[21],_[T+7]=_[22],_[T+8]=_[23],_[T+9]=_[9],_[T+10]=_[10],_[T+11]=_[11],h||(_=_.subarray(12));var R=new c({position:new s({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:_})});if(a(d.normal)||a(d.tangent)||a(d.bitangent)||a(d.st)){var A=a(d.normal)?new Float32Array(12*E):void 0,v=a(d.tangent)?new Float32Array(12*E):void 0,S=a(d.bitangent)?new Float32Array(12*E):void 0,O=a(d.st)?new Float32Array(8*E):void 0,I=M,N=C,w=x,g=t.negate(I,P),F=t.negate(N,U),L=t.negate(w,D);T=0,h&&(y(T,A,v,S,O,L,I,N),T+=12),y(T,A,v,S,O,w,g,N),T+=12,y(T,A,v,S,O,g,L,N),T+=12,y(T,A,v,S,O,F,L,g),T+=12,y(T,A,v,S,O,I,w,N),T+=12,y(T,A,v,S,O,N,w,g),a(A)&&(R.normal=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:A})),a(v)&&(R.tangent=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:v})),a(S)&&(R.bitangent=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:S})),a(O)&&(R.st=new s({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:O}))}for(var b=new Uint16Array(6*E),B=0;B<E;++B){var z=6*B,q=4*B;b[z]=q,b[z+1]=q+1,b[z+2]=q+2,b[z+3]=q,b[z+4]=q+2,b[z+5]=q+3}return new u({attributes:R,indices:b,primitiveType:p.TRIANGLES,boundingSphere:e.fromVertices(_)})},m}),define("Workers/createFrustumGeometry",["../Core/defined","../Core/FrustumGeometry"],function(e,t){"use strict";function r(r,n){return e(n)&&(r=t.unpack(r,n)),t.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{c as r}from"./chunk-EEABWYUP.js";import"./chunk-QNEABTP2.js";import"./chunk-LNO7O274.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as o}from"./chunk-DRYFJEFT.js";function i(e,t){return o(t)&&(e=r.unpack(e,t)),r.createGeometry(e)}var a=i;export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js index 95ab42536..f3b07d88b 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createFrustumOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,E=i.z,_=l*l*d*d,m=f*f*p*p,y=h*h*E*E,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var v=u.x,S=u.y,O=u.z,I=o;I.x=A.x*v*2,I.y=A.y*S*2,I.z=A.z*O*2;var N,w,g,M,C,x,P,U,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{b-=B,g=1/(1+b*v),M=1/(1+b*S),C=1/(1+b*O),x=g*g,P=M*M,U=C*C,D=x*g,F=P*M,L=U*C,N=_*x+m*P+y*U-1,w=_*D*v+m*F*S+y*L*O;B=N/(-2*w)}while(Math.abs(N)>n.EPSILON12);return t(c)?(c.x=l*g,c.y=f*M,c.z=h*C,c):new e(l*g,f*M,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,E=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=o(t,p,E,_,c);if(n(m)){var y=e.multiplyComponents(m,E,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),v=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=v,i):new u(R,A,v)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,E=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(E[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,E=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),v=-r-u+f+d;return n(t)?(t[0]=p,t[1]=m,t[2]=R,t[3]=E,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=v,t):new s(p,E,_,m,y,T,R,A,v)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,E=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=p,t[5]=m,t[6]=h,t[7]=E,t[8]=y,t):new s(l,f,h,d,p,E,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,E,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(E,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+E),v=2*(c+m),S=-s+d-_+y,O=2*(p-h),I=2*(f-E),N=2*(p+h),w=-s-d+_+y;return n[0]=T*a,n[1]=v*a,n[2]=I*a,n[3]=0,n[4]=R*o,n[5]=S*o,n[6]=N*o,n[7]=0,n[8]=A*u,n[9]=O*u,n[10]=w*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,v=n.z,S=u*-R+s*-A+c*-v,O=m*-R+y*-A+T*-v,I=p*R+E*A+_*v;return i(r)?(r[0]=u,r[1]=m,r[2]=-p,r[3]=0,r[4]=s,r[5]=y,r[6]=-E,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=S,r[13]=O,r[14]=I,r[15]=1,r):new l(u,s,c,S,m,y,T,O,-p,-E,-_,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,E=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var E=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],v=t[3],S=t[4],O=t[5],I=t[6],N=t[7],w=t[8],g=t[9],M=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=n*T+u*R+f*A+E*v,L=i*T+s*R+h*A+_*v,b=a*T+c*R+d*A+m*v,B=o*T+l*R+p*A+y*v,z=n*S+u*O+f*I+E*N,q=i*S+s*O+h*I+_*N,G=a*S+c*O+d*I+m*N,V=o*S+l*O+p*I+y*N,X=n*w+u*g+f*M+E*C,k=i*w+s*g+h*M+_*C,W=a*w+c*g+d*M+m*C,H=o*w+l*g+p*M+y*C,Y=n*x+u*P+f*U+E*D,j=i*x+s*P+h*U+_*D,K=a*x+c*P+d*U+m*D,Z=o*x+l*P+p*U+y*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=k,r[10]=W,r[11]=H,r[12]=Y,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],v=t[9],S=t[10],O=t[12],I=t[13],N=t[14],w=n*E+o*_+c*m,g=i*E+u*_+l*m,M=a*E+s*_+f*m,C=n*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=n*A+o*v+c*S,D=i*A+u*v+l*S,F=a*A+s*v+f*S,L=n*O+o*I+c*N+h,b=i*O+u*I+l*N+d,B=a*O+s*I+f*N+p;return r[0]=w,r[1]=g,r[2]=M,r[3]=0,r[4]=C,r[5]=x,r[6]=P,r[7]=0,r[8]=U,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*d+c*p,v=i*h+u*d+l*p,S=a*h+s*d+f*p,O=n*E+o*_+c*m,I=i*E+u*_+l*m,N=a*E+s*_+f*m,w=n*y+o*T+c*R,g=i*y+u*T+l*R,M=a*y+s*T+f*R;return r[0]=A,r[1]=v,r[2]=S,r[3]=0,r[4]=O,r[5]=I,r[6]=N,r[7]=0,r[8]=w,r[9]=g,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],_=e[6],m=e[10],v=e[14],S=e[3],O=e[7],I=e[11],N=e[15],w=m*N,g=v*I,M=_*N,C=v*O,x=_*I,P=m*O,U=E*N,D=v*S,F=E*I,L=m*S,b=E*O,B=_*S,z=w*h+C*d+x*p-(g*h+M*d+P*p),q=g*f+U*d+L*p-(w*f+D*d+F*p),G=M*f+D*h+b*p-(C*f+U*h+B*p),V=P*f+F*h+B*d-(x*f+L*h+b*d),X=g*i+M*a+P*o-(w*i+C*a+x*o),k=w*n+D*a+F*o-(g*n+U*a+L*o),W=C*n+U*i+B*o-(M*n+D*i+b*o),H=x*n+L*i+b*a-(P*n+F*i+B*a);w=a*p,g=o*d,M=i*p,C=o*h,x=i*d,P=a*h,U=n*p,D=o*f,F=n*d,L=a*f,b=n*h,B=i*f;var Y=w*O+C*I+x*N-(g*O+M*I+P*N),j=g*S+U*I+L*N-(w*S+D*I+F*N),K=M*S+D*O+b*N-(C*S+U*O+B*N),Z=P*S+F*O+B*I-(x*S+L*O+b*I),J=M*m+P*v+g*_-(x*v+w*_+C*m),Q=F*v+w*E+D*m-(U*m+L*v+g*E),$=U*_+B*v+C*E-(b*v+M*E+D*_),ee=b*m+x*E+L*_-(F*_+B*m+P*E),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=k*te,r[6]=W*te,r[7]=H*te,r[8]=Y*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,E=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var _=t.cartesianToCartographic(e[p]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)E.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,E=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,v=new e,S=new e,O=new e,I=new e,N=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,E),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var N=a.x,w=a.y,g=a.z;N<o.x&&e.clone(a,o),N>c.x&&e.clone(a,c),w<u.y&&e.clone(a,u),w>l.y&&e.clone(a,l),g<s.z&&e.clone(a,s),g>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=M;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=v;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=O;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var k=Math.sqrt(X);b=.5*(b+k),L=b*b;var W=k-b;F.x=(b*F.x+W*a.x)/k,F.y=(b*F.y+W*a.y)/k,F.z=(b*F.z+W*a.z)/k}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var w=new o,g=new e,M=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,w),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,g),c=r.project(x,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,_),h=e.clone(u,m),N=e.clone(u,y),w=e.clone(u,T),g=t.length;for(s=0;s<g;s+=a){var M=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=M,u.y=C,u.z=x,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>N.y&&e.clone(u,N),x<f.z&&e.clone(u,f),x>w.z&&e.clone(u,w)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(N,l,A)),D=e.magnitudeSquared(e.subtract(w,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=N),D>b&&(b=D,F=f,L=w);var B=v;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=O;V.x=h.x,V.y=N.y,V.z=w.z;var X=e.midpoint(G,V,I),k=0;for(s=0;s<g;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var W=e.magnitude(e.subtract(u,X,A));W>k&&(k=W);var H=e.magnitudeSquared(e.subtract(u,B,A));if(H>z){var Y=Math.sqrt(H);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<k?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=k),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),N=t.length;for(o=0;o<N;o+=3){var w=t[o]+r[o],g=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=w,a.y=g,a.z=M,w<u.x&&e.clone(a,u),w>l.x&&e.clone(a,l),g<s.y&&e.clone(a,s),g>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=v;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=O;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<N;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var k=e.magnitudeSquared(e.subtract(a,L,A));if(k>b){var W=Math.sqrt(k);B=.5*(B+W),b=B*B;var H=W-B;L.x=(B*L.x+H*a.x)/W,L.y=(B*L.y+H*a.y)/W,L.z=(B*L.z+H*a.z)/W}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,k=new e,W=new e,H=new e,Y=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,k);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,W),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var _=p.length,m=0;m<_;++m){var y=p[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,Y);r.project(T,y)}i=d.fromPoints(p,i),o=i.center;var R=o.x,A=o.y,v=o.z;return o.x=v,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=m,E(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,E=function(e){h.push(e),--l||(p=E=m,d.reject(h))},p=function(e){f.push(e),--c||(p=E=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function E(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function s(){return u()&&N}function c(){if(!t(w)&&(w=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(w=!0,g=o(e[1]))}return w}function l(){return c()&&g}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(M=!0,C=o(e[1]),C.isNightly=!!e[2])}return M}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1]))}return x}function p(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function _(){return E()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(O.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function v(){return A()?z:void 0}function S(){return S._result}var O;O="undefined"!=typeof navigator?navigator:{};var I,N,w,g,M,C,x,P,U,D,F,L,b,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,E())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:v,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)r=Math.sqrt(E+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),p>h&&p>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,r){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var v=new s,S=new s,O=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=v=s.negate(t,v)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),O=s.multiplyByScalar(a,Math.sin(r*u),O),n=s.add(S,O,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,N=new e,w=new s,g=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,w);s.multiply(a,n,g);var o=s.log(g,I);s.multiply(a,t,g);var u=s.log(g,N);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,w),s.multiply(r,w,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,w),u=s.slerp(r,n,i,g);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,w),u=s.fastSlerp(r,n,i,g);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,E,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,v=" ",S=s.length,O=0;s&&O<S;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":v=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,v);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),p=d<0?"-":T,m=p+i(String(Math.abs(d)),f,"0",!1),a(m,p,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=p+Math.abs(d)[E](f),a(m,p,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=E.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){E.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}E.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=E.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-n[0].offset,r);if(i>=n.length)return E.addSeconds(e,-n[i-1].offset,r);var a=E.secondsDifference(n[i].julianDate,e);return 0===a?E.addSeconds(e,-n[i].offset,r):a<=1?void 0:E.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,v=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+O.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,w=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;E.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,O=0,g=u[0],M=u[1];if(null!==(u=g.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=g.match(R)))r=+u[1],s=+u[2];else if(null!==(u=g.match(T)))r=+u[1];else{var C;if(null!==(u=g.match(A)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=g.match(v))){r=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(r,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(M)){u=M.match(w),null!==u?(h=+u[1],_=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=M.match(N),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=M.match(I))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=p(r,s,l,h,_,y,O);return n(t)?(d(z[0],z[1],t),f(t)):t=new E(z[0],z[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var g=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var r=!1,i=h(e,g);n(i)||(E.addSeconds(e,-1,g),i=h(g,g),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,v=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=p,t.hour=y,t.minute=R,t.second=A,t.millisecond=v,t.isLeapSecond=r,t):new a(m,_,p,y,R,A,v,r)},E.toDate=function(e){var t=E.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},E.toIso8601=function(t,r){var i=E.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(E.secondsDifference(e,t))<=r},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){y.julianDate=e;var r=E.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},E.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},E.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},E.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},E.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],w.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],w.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=E(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},v=20,S=new u({comparator:f});S.maximumLength=v,S.reserve(v);var O=[],I={},N="undefined"!=typeof document?new e(document.location.href):new e,w=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=w,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return v},set:function(e){if(e<v)for(;S.length>e;){var t=S.pop();T(t)}v=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=O.length;for(e=0;e<n;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(O[e-r]=t):++r;O.length-=r;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-O.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(N);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return w.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,E,_,m,y,T,R,A,v,S,O,I){"use strict";function N(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function w(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function g(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new O("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=g(t.templateValues,{}),this._queryParameters=g(t.queryParameters,{}),this.headers=g(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var r=new e(t.url);N(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=v.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=v.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,U(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new O("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);N(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&w(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);N(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=v.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=g(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=g(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=g(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=g(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=g(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new O("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var v=_[R+i],S=_[R+E],O=v+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(O,S,f.TAI);if(m.push(I),T){if(S!==y&&n(y)){var N=o.leapSeconds,w=t(N,I,d);if(w<0){var g=new u(I,S);N.splice(~w,0,g)}}y=S}}}function E(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return E(e,r,i,s,u),u;if(n.equals(l))return E(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-p;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?p=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,p,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),E=p||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,E,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)m[p]=_-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=m[E]);T[p]*=y[p];var A=3*(s+p);r.x+=T[p]*d[A++],r.y+=T[p]*d[A++],r.s+=T[p]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,E,_,m,y,T,R){"use strict";var A={},v={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},N=new r,w=new r,g=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!v.hasOwnProperty(e)||!v[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=v[e][t],a=e+t;return u(O[a])?n=O[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(S[e],0,N),"east"!==e&&"west"!==e&&r.multiplyByScalar(N,c,N),r.unpack(S[t],0,w),"east"!==t&&"west"!==t&&r.multiplyByScalar(w,c,w),r.unpack(S[i],0,g),"east"!==i&&"west"!==i&&r.multiplyByScalar(g,c,g)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),N=I[e],w=I[t],g=I[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=w.x,s[5]=w.y,s[6]=w.z,s[7]=0,s[8]=g.x,s[9]=g.y,s[10]=g.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},O[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new T,C=new r(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,M),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),y.multiply(a,s,a)};var P=new y,U=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new E;A.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new p(0,0,0),X=new l(0,0,0,0,0,0),k=new m,W=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=k;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,W),h=m.multiply(l,f,k),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=p/R.SECONDS_PER_DAY,v=.779057273264+T+.00273781191135448*(y+T);v=v%1*_.TWO_PI;var S=m.fromRotationZ(v,W),O=m.multiply(h,S,k),I=Math.cos(r.xPoleWander),N=Math.cos(r.yPoleWander),w=Math.sin(r.xPoleWander),g=Math.sin(r.yPoleWander),M=n-2451545+i/R.SECONDS_PER_DAY;M/=36525;var C=-47e-6*M*_.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=W;return U[0]=I*x,U[1]=I*P,U[2]=w,U[3]=-N*P+g*w*x,U[4]=N*x+g*w*P,U[5]=-g*I,U[6]=-g*P-N*w*x,U[7]=g*x-N*w*P,U[8]=N*I,m.multiply(O,U,t)}}};var H=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=H;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,E){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],v=[new e,new e,new e],S=new t,O=new d,I=new f,N=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,m),h=r.toCartesian(s,a,y),_=E.eastNorthUpToFixedFrame(h,a,T),w=f.inverse(_,T),g=A,M=R;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var C=S;for(u=0;u<3;u++)r.toCartesian(M[u],a,C),C=f.multiplyByPointAsVector(w,C,C),g[u].x=C.x,g[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,O),P=l.fromQuaternion(x,I),U=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)C=f.multiplyByPointAsVector(w,n[u],C),C=l.multiplyByVector(P,C,C),D=Math.min(D,C.x),F=Math.min(F,C.y),L=Math.max(L,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,N),z=v;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=g[0],G=g[2].x-q.x,V=g[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var k=z[0],W=z[1],H=z[2],Y=new Array(6);return e.pack(k,Y),e.pack(W,Y,2),e.pack(H,Y,4),Y},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal), -i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/CullingVolume",["./Cartesian3","./Cartesian4","./defaultValue","./defined","./DeveloperError","./Intersect","./Plane"],function(e,t,r,n,i,a,o){"use strict";function u(e){this.planes=r(e,[])}var s=[new e,new e,new e];e.clone(e.UNIT_X,s[0]),e.clone(e.UNIT_Y,s[1]),e.clone(e.UNIT_Z,s[2]);var c=new e,l=new e,f=new o(new e(1,0,0),0);return u.fromBoundingSphere=function(r,i){n(i)||(i=new u);var a=s.length,o=i.planes;o.length=2*a;for(var f=r.center,h=r.radius,d=0,p=0;p<a;++p){var E=s[p],_=o[d],m=o[d+1];n(_)||(_=o[d]=new t),n(m)||(m=o[d+1]=new t),e.multiplyByScalar(E,-h,c),e.add(f,c,c),_.x=E.x,_.y=E.y,_.z=E.z,_.w=-e.dot(E,c),e.multiplyByScalar(E,h,c),e.add(f,c,c),m.x=-E.x,m.y=-E.y,m.z=-E.z,m.w=-e.dot(e.negate(E,l),c),d+=2}return i},u.prototype.computeVisibility=function(e){for(var t=this.planes,r=!1,n=0,i=t.length;n<i;++n){var u=e.intersectPlane(o.fromCartesian4(t[n],f));if(u===a.OUTSIDE)return a.OUTSIDE;u===a.INTERSECTING&&(r=!0)}return r?a.INTERSECTING:a.INSIDE},u.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===u.MASK_OUTSIDE||t===u.MASK_INSIDE)return t;for(var r=u.MASK_INSIDE,n=this.planes,i=0,s=n.length;i<s;++i){var c=i<31?1<<i:0;if(!(i<31&&0==(t&c))){var l=e.intersectPlane(o.fromCartesian4(n[i],f));if(l===a.OUTSIDE)return u.MASK_OUTSIDE;l===a.INTERSECTING&&(r|=c)}}return r},u.MASK_OUTSIDE=4294967295,u.MASK_INSIDE=0,u.MASK_INDETERMINATE=2147483647,u}),define("Core/OrthographicOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e){e=n(e,n.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=n(e.near,1),this._near=this.near,this.far=n(e.far,5e8),this._far=this.far,this._cullingVolume=new r,this._orthographicMatrix=new s}function l(e){e.top===e._top&&e.bottom===e._bottom&&e.left===e._left&&e.right===e._right&&e.near===e._near&&e.far===e._far||(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=s.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}a(c.prototype,{projectionMatrix:{get:function(){return l(this),this._orthographicMatrix}}});var f=new e,h=new e,d=new e,p=new e;return c.prototype.computeCullingVolume=function(r,n,a){var o=this._cullingVolume.planes,u=this.top,s=this.bottom,c=this.right,l=this.left,E=this.near,_=this.far,m=e.cross(n,a,f);e.normalize(m,m);var y=h;e.multiplyByScalar(n,E,y),e.add(r,y,y);var T=d;e.multiplyByScalar(m,l,T),e.add(y,T,T);var R=o[0];return i(R)||(R=o[0]=new t),R.x=m.x,R.y=m.y,R.z=m.z,R.w=-e.dot(m,T),e.multiplyByScalar(m,c,T),e.add(y,T,T),R=o[1],i(R)||(R=o[1]=new t),R.x=-m.x,R.y=-m.y,R.z=-m.z,R.w=-e.dot(e.negate(m,p),T),e.multiplyByScalar(a,s,T),e.add(y,T,T),R=o[2],i(R)||(R=o[2]=new t),R.x=a.x,R.y=a.y,R.z=a.z,R.w=-e.dot(a,T),e.multiplyByScalar(a,u,T),e.add(y,T,T),R=o[3],i(R)||(R=o[3]=new t),R.x=-a.x,R.y=-a.y,R.z=-a.z,R.w=-e.dot(e.negate(a,p),T),R=o[4],i(R)||(R=o[4]=new t),R.x=n.x,R.y=n.y,R.z=n.z,R.w=-e.dot(n,y),e.multiplyByScalar(n,_,T),e.add(r,T,T),R=o[5],i(R)||(R=o[5]=new t),R.x=-n.x,R.y=-n.y,R.z=-n.z,R.w=-e.dot(e.negate(n,p),T),this._cullingVolume},c.prototype.getPixelDimensions=function(e,t,r,n){l(this);var i=this.right-this.left,a=this.top-this.bottom,o=i/e,u=a/t;return n.x=o,n.y=u,n},c.prototype.clone=function(e){return i(e)||(e=new c),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},c.prototype.equals=function(e){return i(e)&&e instanceof c&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},c.prototype.equalsEpsilon=function(e,t,r){return e===this||i(e)&&e instanceof c&&u.equalsEpsilon(this.right,e.right,t,r)&&u.equalsEpsilon(this.left,e.left,t,r)&&u.equalsEpsilon(this.top,e.top,t,r)&&u.equalsEpsilon(this.bottom,e.bottom,t,r)&&u.equalsEpsilon(this.near,e.near,t,r)&&u.equalsEpsilon(this.far,e.far,t,r)},c}),define("Core/OrthographicFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./OrthographicOffCenterFrustum"],function(e,t,r,n,i,a,o){"use strict";function u(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new o,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far}function s(e){var t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;var r=1/e.aspectRatio;t.right=.5*e.width,t.left=-t.right,t.top=r*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}return u.packedLength=4,u.pack=function(e,r,n){return n=t(n,0),r[n++]=e.width,r[n++]=e.aspectRatio,r[n++]=e.near,r[n]=e.far,r},u.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new u),i.width=e[n++],i.aspectRatio=e[n++],i.near=e[n++],i.far=e[n],i},n(u.prototype,{projectionMatrix:{get:function(){return s(this),this._offCenterFrustum.projectionMatrix}}}),u.prototype.computeCullingVolume=function(e,t,r){return s(this),this._offCenterFrustum.computeCullingVolume(e,t,r)},u.prototype.getPixelDimensions=function(e,t,r,n){return s(this),this._offCenterFrustum.getPixelDimensions(e,t,r,n)},u.prototype.clone=function(e){return r(e)||(e=new u),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},u.prototype.equals=function(e){return!!(r(e)&&e instanceof u)&&(s(this),s(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},u.prototype.equalsEpsilon=function(e,t,n){return!!(r(e)&&e instanceof u)&&(s(this),s(e),a.equalsEpsilon(this.width,e.width,t,n)&&a.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))},u}),define("Core/PerspectiveOffCenterFrustum",["./Cartesian3","./Cartesian4","./CullingVolume","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./Matrix4"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e){e=n(e,n.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=n(e.near,1),this._near=this.near,this.far=n(e.far,5e8),this._far=this.far,this._cullingVolume=new r,this._perspectiveMatrix=new s,this._infinitePerspective=new s}function l(e){var t=e.top,r=e.bottom,n=e.right,i=e.left,a=e.near,o=e.far;t===e._top&&r===e._bottom&&i===e._left&&n===e._right&&a===e._near&&o===e._far||(e._left=i,e._right=n,e._top=t,e._bottom=r,e._near=a,e._far=o,e._perspectiveMatrix=s.computePerspectiveOffCenter(i,n,r,t,a,o,e._perspectiveMatrix),e._infinitePerspective=s.computeInfinitePerspectiveOffCenter(i,n,r,t,a,e._infinitePerspective))}a(c.prototype,{projectionMatrix:{get:function(){return l(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return l(this),this._infinitePerspective}}});var f=new e,h=new e,d=new e,p=new e;return c.prototype.computeCullingVolume=function(r,n,a){var o=this._cullingVolume.planes,u=this.top,s=this.bottom,c=this.right,l=this.left,E=this.near,_=this.far,m=e.cross(n,a,f),y=h;e.multiplyByScalar(n,E,y),e.add(r,y,y);var T=d;e.multiplyByScalar(n,_,T),e.add(r,T,T);var R=p;e.multiplyByScalar(m,l,R),e.add(y,R,R),e.subtract(R,r,R),e.normalize(R,R),e.cross(R,a,R),e.normalize(R,R);var A=o[0];return i(A)||(A=o[0]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(m,c,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(a,R,R),e.normalize(R,R),A=o[1],i(A)||(A=o[1]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(a,s,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(m,R,R),e.normalize(R,R),A=o[2],i(A)||(A=o[2]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),e.multiplyByScalar(a,u,R),e.add(y,R,R),e.subtract(R,r,R),e.cross(R,m,R),e.normalize(R,R),A=o[3],i(A)||(A=o[3]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,r),A=o[4],i(A)||(A=o[4]=new t),A.x=n.x,A.y=n.y,A.z=n.z,A.w=-e.dot(n,y),e.negate(n,R),A=o[5],i(A)||(A=o[5]=new t),A.x=R.x,A.y=R.y,A.z=R.z,A.w=-e.dot(R,T),this._cullingVolume},c.prototype.getPixelDimensions=function(e,t,r,n){l(this);var i=1/this.near,a=this.top*i,o=2*r*a/t;a=this.right*i;var u=2*r*a/e;return n.x=u,n.y=o,n},c.prototype.clone=function(e){return i(e)||(e=new c),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e},c.prototype.equals=function(e){return i(e)&&e instanceof c&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far},c.prototype.equalsEpsilon=function(e,t,r){return e===this||i(e)&&e instanceof c&&u.equalsEpsilon(this.right,e.right,t,r)&&u.equalsEpsilon(this.left,e.left,t,r)&&u.equalsEpsilon(this.top,e.top,t,r)&&u.equalsEpsilon(this.bottom,e.bottom,t,r)&&u.equalsEpsilon(this.near,e.near,t,r)&&u.equalsEpsilon(this.far,e.far,t,r)},c}),define("Core/PerspectiveFrustum",["./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Math","./PerspectiveOffCenterFrustum"],function(e,t,r,n,i,a,o){"use strict";function u(e){e=t(e,t.EMPTY_OBJECT),this._offCenterFrustum=new o,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=t(e.near,1),this._near=this.near,this.far=t(e.far,5e8),this._far=this.far,this.xOffset=t(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=t(e.yOffset,0),this._yOffset=this.yOffset}function s(e){var t=e._offCenterFrustum;e.fov===e._fov&&e.aspectRatio===e._aspectRatio&&e.near===e._near&&e.far===e._far&&e.xOffset===e._xOffset&&e.yOffset===e._yOffset||(e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:2*Math.atan(Math.tan(.5*e.fov)/e.aspectRatio),e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset,t.top=e.near*Math.tan(.5*e._fovy),t.bottom=-t.top,t.right=e.aspectRatio*t.top,t.left=-t.right,t.near=e.near,t.far=e.far,t.right+=e.xOffset,t.left+=e.xOffset,t.top+=e.yOffset,t.bottom+=e.yOffset)}return u.packedLength=6,u.pack=function(e,r,n){return n=t(n,0),r[n++]=e.fov,r[n++]=e.aspectRatio,r[n++]=e.near,r[n++]=e.far,r[n++]=e.xOffset,r[n]=e.yOffset,r},u.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new u),i.fov=e[n++],i.aspectRatio=e[n++],i.near=e[n++],i.far=e[n++],i.xOffset=e[n++],i.yOffset=e[n],i},n(u.prototype,{projectionMatrix:{get:function(){return s(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return s(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return s(this),this._fovy}},sseDenominator:{get:function(){return s(this),this._sseDenominator}}}),u.prototype.computeCullingVolume=function(e,t,r){return s(this),this._offCenterFrustum.computeCullingVolume(e,t,r)},u.prototype.getPixelDimensions=function(e,t,r,n){return s(this),this._offCenterFrustum.getPixelDimensions(e,t,r,n)},u.prototype.clone=function(e){return r(e)||(e=new u),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e},u.prototype.equals=function(e){return!!(r(e)&&e instanceof u)&&(s(this),s(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))},u.prototype.equalsEpsilon=function(e,t,n){return!!(r(e)&&e instanceof u)&&(s(this),s(e),a.equalsEpsilon(this.fov,e.fov,t,n)&&a.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))},u}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/FrustumGeometry",["./BoundingSphere","./Cartesian3","./Cartesian4","./Check","./ComponentDatatype","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./Matrix3","./Matrix4","./OrthographicFrustum","./PerspectiveFrustum","./PrimitiveType","./Quaternion","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,E,_){"use strict";function m(e){var r,n,i=e.frustum,o=e.orientation,u=e.origin,s=a(e.vertexFormat,_.DEFAULT),c=a(e._drawNearPlane,!0);i instanceof d?(r=T,n=d.packedLength):i instanceof h&&(r=R,n=h.packedLength),this._frustumType=r,this._frustum=i.clone(),this._origin=t.clone(u),this._orientation=E.clone(o),this._drawNearPlane=c,this._vertexFormat=s,this._workerName="createFrustumGeometry",this.packedLength=2+n+t.packedLength+E.packedLength+_.packedLength}function y(e,t,r,n,i,a,u,s){for(var c=e/3*2,l=0;l<4;++l)o(t)&&(t[e]=a.x,t[e+1]=a.y,t[e+2]=a.z),o(r)&&(r[e]=u.x,r[e+1]=u.y,r[e+2]=u.z),o(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),e+=3;i[c]=0,i[c+1]=0,i[c+2]=1,i[c+3]=0,i[c+4]=1,i[c+5]=1,i[c+6]=0,i[c+7]=1}var T=0,R=1;m.pack=function(e,r,n){n=a(n,0);var i=e._frustumType,o=e._frustum;return r[n++]=i,i===T?(d.pack(o,r,n),n+=d.packedLength):(h.pack(o,r,n),n+=h.packedLength),t.pack(e._origin,r,n),n+=t.packedLength,E.pack(e._orientation,r,n),n+=E.packedLength,_.pack(e._vertexFormat,r,n),n+=_.packedLength,r[n]=e._drawNearPlane?1:0,r};var A=new d,v=new h,S=new E,O=new t,I=new _;m.unpack=function(e,r,n){r=a(r,0);var i,u=e[r++];u===T?(i=d.unpack(e,r,A),r+=d.packedLength):(i=h.unpack(e,r,v),r+=h.packedLength);var s=t.unpack(e,r,O);r+=t.packedLength;var c=E.unpack(e,r,S);r+=E.packedLength;var l=_.unpack(e,r,I);r+=_.packedLength;var f=1===e[r];if(!o(n))return new m({frustum:i,origin:s,orientation:c,vertexFormat:l,_drawNearPlane:f});var p=u===n._frustumType?n._frustum:void 0;return n._frustum=i.clone(p),n._frustumType=u,n._origin=t.clone(s,n._origin),n._orientation=E.clone(c,n._orientation),n._vertexFormat=_.clone(l,n._vertexFormat),n._drawNearPlane=f,n};var N=new l,w=new f,g=new f,M=new t,C=new t,x=new t,P=new t,U=new t,D=new t,F=new Array(3),L=new Array(4);L[0]=new r(-1,-1,1,1),L[1]=new r(1,-1,1,1),L[2]=new r(1,1,1,1),L[3]=new r(-1,1,1,1);for(var b=new Array(4),B=0;B<4;++B)b[B]=new r;return m._computeNearFarPlanes=function(e,n,i,u,s,c,h,d){var p=l.fromQuaternion(n,N),E=a(c,M),_=a(h,C),m=a(d,x);E=l.getColumn(p,0,E),_=l.getColumn(p,1,_),m=l.getColumn(p,2,m),t.normalize(E,E),t.normalize(_,_),t.normalize(m,m),t.negate(E,E);var y,R,A=f.computeView(e,m,_,E,w);if(i===T){var v=u.projectionMatrix,S=f.multiply(v,A,g);R=f.inverse(S,g)}else y=f.inverseTransformation(A,g);o(R)?(F[0]=u.near,F[1]=u.far):(F[0]=0,F[1]=u.near,F[2]=u.far);for(var O=0;O<2;++O)for(var I=0;I<4;++I){var P=r.clone(L[I],b[I]);if(o(R)){P=f.multiplyByVector(R,P,P);var U=1/P.w;t.multiplyByScalar(P,U,P),t.subtract(P,e,P),t.normalize(P,P);var D=t.dot(m,P);t.multiplyByScalar(P,F[O]/D,P),t.add(P,e,P)}else{o(u._offCenterFrustum)&&(u=u._offCenterFrustum);var B=F[O],z=F[O+1];P.x=.5*(P.x*(u.right-u.left)+u.left+u.right),P.y=.5*(P.y*(u.top-u.bottom)+u.bottom+u.top),P.z=.5*(P.z*(B-z)-B-z),P.w=1,f.multiplyByVector(y,P,P)}s[12*O+3*I]=P.x,s[12*O+3*I+1]=P.y,s[12*O+3*I+2]=P.z}},m.createGeometry=function(r){var n=r._frustumType,a=r._frustum,l=r._origin,f=r._orientation,h=r._drawNearPlane,d=r._vertexFormat,E=h?6:5,_=new Float64Array(72);m._computeNearFarPlanes(l,f,n,a,_);var T=24;_[T]=_[12],_[T+1]=_[13],_[T+2]=_[14],_[T+3]=_[0],_[T+4]=_[1],_[T+5]=_[2],_[T+6]=_[9],_[T+7]=_[10],_[T+8]=_[11],_[T+9]=_[21],_[T+10]=_[22],_[T+11]=_[23],T+=12,_[T]=_[15],_[T+1]=_[16],_[T+2]=_[17],_[T+3]=_[3],_[T+4]=_[4],_[T+5]=_[5],_[T+6]=_[0],_[T+7]=_[1],_[T+8]=_[2],_[T+9]=_[12],_[T+10]=_[13],_[T+11]=_[14],T+=12,_[T]=_[3],_[T+1]=_[4],_[T+2]=_[5],_[T+3]=_[15],_[T+4]=_[16],_[T+5]=_[17],_[T+6]=_[18],_[T+7]=_[19],_[T+8]=_[20],_[T+9]=_[6],_[T+10]=_[7],_[T+11]=_[8],T+=12,_[T]=_[6],_[T+1]=_[7],_[T+2]=_[8],_[T+3]=_[18],_[T+4]=_[19],_[T+5]=_[20],_[T+6]=_[21],_[T+7]=_[22],_[T+8]=_[23],_[T+9]=_[9],_[T+10]=_[10],_[T+11]=_[11],h||(_=_.subarray(12));var R=new c({position:new s({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:_})});if(o(d.normal)||o(d.tangent)||o(d.bitangent)||o(d.st)){var A=o(d.normal)?new Float32Array(12*E):void 0,v=o(d.tangent)?new Float32Array(12*E):void 0,S=o(d.bitangent)?new Float32Array(12*E):void 0,O=o(d.st)?new Float32Array(8*E):void 0,I=M,N=C,w=x,g=t.negate(I,P),F=t.negate(N,U),L=t.negate(w,D);T=0,h&&(y(T,A,v,S,O,L,I,N),T+=12),y(T,A,v,S,O,w,g,N),T+=12,y(T,A,v,S,O,g,L,N),T+=12,y(T,A,v,S,O,F,L,g),T+=12,y(T,A,v,S,O,I,w,N),T+=12,y(T,A,v,S,O,N,w,g),o(A)&&(R.normal=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:A})),o(v)&&(R.tangent=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:v})),o(S)&&(R.bitangent=new s({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:S})),o(O)&&(R.st=new s({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:O}))}for(var b=new Uint16Array(6*E),B=0;B<E;++B){var z=6*B,q=4*B;b[z]=q,b[z+1]=q+1,b[z+2]=q+2,b[z+3]=q,b[z+4]=q+2,b[z+5]=q+3}return new u({attributes:R,indices:b,primitiveType:p.TRIANGLES,boundingSphere:e.fromVertices(_)})},m}),define("Core/FrustumOutlineGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./FrustumGeometry","./Geometry","./GeometryAttribute","./GeometryAttributes","./OrthographicFrustum","./PerspectiveFrustum","./PrimitiveType","./Quaternion"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d){"use strict";function p(e){var r,n,a=e.frustum,o=e.orientation,u=e.origin,s=i(e._drawNearPlane,!0);a instanceof f?(r=E,n=f.packedLength):a instanceof l&&(r=_,n=l.packedLength),this._frustumType=r,this._frustum=a.clone(),this._origin=t.clone(u),this._orientation=d.clone(o),this._drawNearPlane=s,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+n+t.packedLength+d.packedLength}var E=0,_=1;p.pack=function(e,r,n){n=i(n,0);var a=e._frustumType,o=e._frustum;return r[n++]=a,a===E?(f.pack(o,r,n),n+=f.packedLength):(l.pack(o,r,n),n+=l.packedLength),t.pack(e._origin,r,n),n+=t.packedLength,d.pack(e._orientation,r,n),n+=d.packedLength,r[n]=e._drawNearPlane?1:0,r};var m=new f,y=new l,T=new d,R=new t;return p.unpack=function(e,r,n){r=i(r,0);var o,u=e[r++];u===E?(o=f.unpack(e,r,m),r+=f.packedLength):(o=l.unpack(e,r,y),r+=l.packedLength);var s=t.unpack(e,r,R);r+=t.packedLength;var c=d.unpack(e,r,T);r+=d.packedLength;var h=1===e[r];if(!a(n))return new p({frustum:o,origin:s,orientation:c,_drawNearPlane:h});var _=u===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(_),n._frustumType=u,n._origin=t.clone(s,n._origin),n._orientation=d.clone(c,n._orientation),n._drawNearPlane=h,n},p.createGeometry=function(t){var r=t._frustumType,i=t._frustum,a=t._origin,l=t._orientation,f=t._drawNearPlane,d=new Float64Array(24);o._computeNearFarPlanes(a,l,r,i,d);for(var p,E,_=new c({position:new s({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:d})}),m=f?2:1,y=new Uint16Array(8*(m+1)),T=f?0:1;T<2;++T)p=f?8*T:0,E=4*T,y[p]=E,y[p+1]=E+1,y[p+2]=E+1,y[p+3]=E+2,y[p+4]=E+2,y[p+5]=E+3,y[p+6]=E+3,y[p+7]=E;for(T=0;T<2;++T)p=8*(m+T),E=4*T,y[p]=E,y[p+1]=E+4,y[p+2]=E+1,y[p+3]=E+5,y[p+4]=E+2,y[p+5]=E+6,y[p+6]=E+3,y[p+7]=E+7;return new u({attributes:_,indices:y,primitiveType:h.LINES,boundingSphere:e.fromVertices(d)})},p}),define("Workers/createFrustumOutlineGeometry",["../Core/defined","../Core/FrustumOutlineGeometry"],function(e,t){"use strict";function r(r,n){return e(n)&&(r=t.unpack(r,n)),t.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as k,b as _,c as j}from"./chunk-EEABWYUP.js";import"./chunk-QNEABTP2.js";import"./chunk-LNO7O274.js";import{a as A}from"./chunk-RYO6NY7F.js";import{b as N,c as g,d as F}from"./chunk-2HSPJH3C.js";import{d as T}from"./chunk-T5AUOWE7.js";import{f as s}from"./chunk-Y5B6Y3WD.js";import{a as b}from"./chunk-6QVIJ7JA.js";import{a}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as d}from"./chunk-WHQYJFDH.js";import{b as h}from"./chunk-OYWUGDKS.js";import{e as w}from"./chunk-DRYFJEFT.js";var L=0,C=1;function l(e){h.typeOf.object("options",e),h.typeOf.object("options.frustum",e.frustum),h.typeOf.object("options.origin",e.origin),h.typeOf.object("options.orientation",e.orientation);let t=e.frustum,o=e.orientation,u=e.origin,c=d(e._drawNearPlane,!0),m,p;t instanceof _?(m=L,p=_.packedLength):t instanceof k&&(m=C,p=k.packedLength),this._frustumType=m,this._frustum=t.clone(),this._origin=a.clone(u),this._orientation=s.clone(o),this._drawNearPlane=c,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+p+a.packedLength+s.packedLength}l.pack=function(e,t,o){h.typeOf.object("value",e),h.defined("array",t),o=d(o,0);let u=e._frustumType,c=e._frustum;return t[o++]=u,u===L?(_.pack(c,t,o),o+=_.packedLength):(k.pack(c,t,o),o+=k.packedLength),a.pack(e._origin,t,o),o+=a.packedLength,s.pack(e._orientation,t,o),o+=s.packedLength,t[o]=e._drawNearPlane?1:0,t};var E=new _,G=new k,R=new s,S=new a;l.unpack=function(e,t,o){h.defined("array",e),t=d(t,0);let u=e[t++],c;u===L?(c=_.unpack(e,t,E),t+=_.packedLength):(c=k.unpack(e,t,G),t+=k.packedLength);let m=a.unpack(e,t,S);t+=a.packedLength;let p=s.unpack(e,t,R);t+=s.packedLength;let P=e[t]===1;if(!w(o))return new l({frustum:c,origin:m,orientation:p,_drawNearPlane:P});let n=u===o._frustumType?o._frustum:void 0;return o._frustum=c.clone(n),o._frustumType=u,o._origin=a.clone(m,o._origin),o._orientation=s.clone(p,o._orientation),o._drawNearPlane=P,o};l.createGeometry=function(e){let t=e._frustumType,o=e._frustum,u=e._origin,c=e._orientation,m=e._drawNearPlane,p=new Float64Array(3*4*2);j._computeNearFarPlanes(u,c,t,o,p);let P=new A({position:new F({componentDatatype:b.DOUBLE,componentsPerAttribute:3,values:p})}),n,r,y=m?2:1,i=new Uint16Array(8*(y+1)),f=m?0:1;for(;f<2;++f)n=m?f*8:0,r=f*4,i[n]=r,i[n+1]=r+1,i[n+2]=r+1,i[n+3]=r+2,i[n+4]=r+2,i[n+5]=r+3,i[n+6]=r+3,i[n+7]=r;for(f=0;f<2;++f)n=(y+f)*8,r=f*4,i[n]=r,i[n+1]=r+4,i[n+2]=r+1,i[n+3]=r+5,i[n+4]=r+2,i[n+5]=r+6,i[n+6]=r+3,i[n+7]=r+7;return new g({attributes:P,indices:i,primitiveType:N.LINES,boundingSphere:T.fromVertices(p)})};var O=l;function D(e,t){return w(t)&&(e=O.unpack(e,t)),O.createGeometry(e)}var I=D;export{I as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createGeometry.js index 3414ef4cd..18512c06e 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,v=E+y+_,T=Math.sqrt(1/v),R=e.multiplyByScalar(r,T,a);if(v<s)return isFinite(T)?e.clone(R,c):void 0;var A=u.x,S=u.y,g=u.z,I=o;I.x=R.x*A*2,I.y=R.y*S*2,I.z=R.z*g*2;var O,N,w,M,C,x,P,b,U,D,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,w=1/(1+F*A),M=1/(1+F*S),C=1/(1+F*g),x=w*w,P=M*M,b=C*C,U=x*w,D=P*M,L=b*C,O=E*x+y*P+_*b-1,N=E*U*A+y*D*S+_*L*g;B=O/(-2*N)}while(Math.abs(O)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*M,c.z=h*C,c):new e(l*w,f*M,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,E=n(r)?r._centerToleranceSquared:d,y=o(t,p,m,E,c);if(n(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var v=e.subtract(t,y,l),T=Math.atan2(_.y,_.x),R=Math.asin(_.z),A=a.sign(e.dot(v,t))*e.magnitude(v);return n(i)?(i.longitude=T,i.latitude=R,i.height=A,i):new u(T,R,A)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(E-y)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-r+u-f+d,v=2*(c-o),T=2*(a-l),R=2*(c+o),A=-r-u+f+d;return n(t)?(t[0]=p,t[1]=y,t[2]=T,t[3]=m,t[4]=_,t[5]=R,t[6]=E,t[7]=v,t[8]=A,t):new s(p,m,E,y,_,v,T,R,A)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(E,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,v=s-d-E+_,T=2*(c-y),R=2*(f+m),A=2*(c+y),S=-s+d-E+_,g=2*(p-h),I=2*(f-m),O=2*(p+h),N=-s-d+E+_;return n[0]=v*a,n[1]=A*a,n[2]=I*a,n[3]=0,n[4]=T*o,n[5]=S*o,n[6]=O*o,n[7]=0,n[8]=R*u,n[9]=g*u,n[10]=N*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,v=d.z,T=n.x,R=n.y,A=n.z,S=u*-T+s*-R+c*-A,g=y*-T+_*-R+v*-A,I=p*T+m*R+E*A;return i(r)?(r[0]=u,r[1]=y,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=v,r[10]=-E,r[11]=0,r[12]=S,r[13]=g,r[14]=I,r[15]=1,r):new l(u,s,c,S,y,_,v,g,-p,-m,-E,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],v=t[0],T=t[1],R=t[2],A=t[3],S=t[4],g=t[5],I=t[6],O=t[7],N=t[8],w=t[9],M=t[10],C=t[11],x=t[12],P=t[13],b=t[14],U=t[15],D=n*v+u*T+f*R+m*A,L=i*v+s*T+h*R+E*A,F=a*v+c*T+d*R+y*A,B=o*v+l*T+p*R+_*A,z=n*S+u*g+f*I+m*O,q=i*S+s*g+h*I+E*O,G=a*S+c*g+d*I+y*O,V=o*S+l*g+p*I+_*O,W=n*N+u*w+f*M+m*C,X=i*N+s*w+h*M+E*C,k=a*N+c*w+d*M+y*C,H=o*N+l*w+p*M+_*C,Y=n*x+u*P+f*b+m*U,j=i*x+s*P+h*b+E*U,Z=a*x+c*P+d*b+y*U,K=o*x+l*P+p*b+_*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=k,r[11]=H,r[12]=Y,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],v=t[5],T=t[6],R=t[8],A=t[9],S=t[10],g=t[12],I=t[13],O=t[14],N=n*m+o*E+c*y,w=i*m+u*E+l*y,M=a*m+s*E+f*y,C=n*_+o*v+c*T,x=i*_+u*v+l*T,P=a*_+s*v+f*T,b=n*R+o*A+c*S,U=i*R+u*A+l*S,D=a*R+s*A+f*S,L=n*g+o*I+c*O+h,F=i*g+u*I+l*O+d,B=a*g+s*I+f*O+p;return r[0]=N,r[1]=w,r[2]=M,r[3]=0,r[4]=C,r[5]=x,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],v=t[7],T=t[8],R=n*h+o*d+c*p,A=i*h+u*d+l*p,S=a*h+s*d+f*p,g=n*m+o*E+c*y,I=i*m+u*E+l*y,O=a*m+s*E+f*y,N=n*_+o*v+c*T,w=i*_+u*v+l*T,M=a*_+s*v+f*T;return r[0]=R,r[1]=A,r[2]=S,r[3]=0,r[4]=g,r[5]=I,r[6]=O,r[7]=0,r[8]=N,r[9]=w,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],A=e[14],S=e[3],g=e[7],I=e[11],O=e[15],N=y*O,w=A*I,M=E*O,C=A*g,x=E*I,P=y*g,b=m*O,U=A*S,D=m*I,L=y*S,F=m*g,B=E*S,z=N*h+C*d+x*p-(w*h+M*d+P*p),q=w*f+b*d+L*p-(N*f+U*d+D*p),G=M*f+U*h+F*p-(C*f+b*h+B*p),V=P*f+D*h+B*d-(x*f+L*h+F*d),W=w*i+M*a+P*o-(N*i+C*a+x*o),X=N*n+U*a+D*o-(w*n+b*a+L*o),k=C*n+b*i+B*o-(M*n+U*i+F*o),H=x*n+L*i+F*a-(P*n+D*i+B*a);N=a*p,w=o*d,M=i*p,C=o*h,x=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var Y=N*g+C*I+x*O-(w*g+M*I+P*O),j=w*S+b*I+L*O-(N*S+U*I+D*O),Z=M*S+U*g+F*O-(C*S+b*g+B*O),K=P*S+D*g+B*I-(x*S+L*g+F*I),J=M*y+P*A+w*E-(x*A+N*E+C*y),Q=D*A+N*m+U*y-(b*y+L*A+w*m),$=b*E+B*A+C*m-(F*A+M*m+U*E),ee=F*y+x*m+L*E-(D*E+B*y+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=k*te,r[7]=H*te,r[8]=Y*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,v=new e,T=new e,R=new e,A=new e,S=new e,g=new e,I=new e,O=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var O=a.x,N=a.y,w=a.z;O<o.x&&e.clone(a,o),O>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,R)),C=e.magnitudeSquared(e.subtract(l,u,R)),x=e.magnitudeSquared(e.subtract(f,s,R)),P=o,b=c,U=M;C>U&&(U=C,P=u,b=l),x>U&&(U=x,P=s,b=f);var D=A;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,R)),F=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,R));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var k=X-F;D.x=(F*D.x+k*a.x)/X,D.y=(F*D.y+k*a.y)/X,D.z=(F*D.z+k*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var N=new o,w=new e,M=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,N),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,w),c=r.project(x,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),O=e.clone(u,_),N=e.clone(u,v),w=t.length;for(s=0;s<w;s+=a){var M=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=M,u.y=C,u.z=x,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>O.y&&e.clone(u,O),x<f.z&&e.clone(u,f),x>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,R)),b=e.magnitudeSquared(e.subtract(O,l,R)),U=e.magnitudeSquared(e.subtract(N,f,R)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=O),U>F&&(F=U,D=f,L=N);var B=A;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=O.y,V.z=N.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var k=e.magnitude(e.subtract(u,W,R));k>X&&(X=k);var H=e.magnitudeSquared(e.subtract(u,B,R));if(H>z){var Y=Math.sqrt(H);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,v),O=t.length;for(o=0;o<O;o+=3){var N=t[o]+r[o],w=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=N,a.y=w,a.z=M,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,R)),x=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),b=u,U=l,D=C;x>D&&(D=x,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=A;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,R)),B=Math.sqrt(F),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<O;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,R));if(X>F){var k=Math.sqrt(X);B=.5*(B+k),F=B*B;var H=k-B;L.x=(B*L.x+H*a.x)/k,L.y=(B*L.y+H*a.y)/k,L.z=(B*L.z+H*a.z)/k}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,k=new e,H=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,k),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var v=a.cartesianToCartographic(_,Y);r.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,R=o.y,A=o.z;return o.x=A,o.y=T,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return O*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,E);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return E(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},v.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function E(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var v,T,R;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,v=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,O=o(e[1]))}return I}function s(){return u()&&O}function c(){if(!t(N)&&(N=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(N=!0,w=o(e[1]))}return N}function l(){return c()&&w}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(M=!0,C=o(e[1]),C.isNightly=!!e[2])}return M}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1]))}return x}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function E(){return m()&&U}function y(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function _(){return t(F)||(F=/Windows/i.test(g.appVersion)),F}function v(){return y()&&L}function T(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function A(){return R()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,O,N,w,M,C,x,P,b,U,D,L,F,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,m())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:S,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],v=E[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*r,T[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r,T[v]=(e[u.getElementIndex(v,y)]+e[u.getElementIndex(y,v)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,r,r)};var E=new e,y=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);n[o]=E.x*u,n[o+1]=E.y*u,n[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,r,n){return R=s.multiplyByScalar(t,r,R),n=s.multiplyByScalar(e,1-r,n),s.add(R,n,n)};var A=new s,S=new s,g=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),g=s.multiplyByScalar(a,Math.sin(r*u),g),n=s.add(S,g,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,O=new e,N=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,N);s.multiply(a,n,w);var o=s.log(w,I);s.multiply(a,t,w);var u=s.log(w,O);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(r,N,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;x[D]=1/(L*F),P[D]=L/F}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(x[f]*c-P[f])*o,U[f]=(x[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,v="",T=!1,R=!1,A=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":A=s.charAt(g+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,T,A);case"c":return u(String.fromCharCode(+y),_,c,f,T);case"b":return o(y,2,R,_,c,f,T);case"o":return o(y,8,R,_,c,f,T);case"x":return o(y,16,R,_,c,f,T);case"X":return o(y,16,R,_,c,f,T).toUpperCase();case"u":return o(y,10,R,_,c,f,T);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":v,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,T)[E]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,g=0,w=u[0],M=u[1];if(null!==(u=w.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(T)))r=+u[1],s=+u[2];else if(null!==(u=w.match(v)))r=+u[1];else{var C;if(null!==(u=w.match(R)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=w.match(A))){r=+u[1];var x=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));C=7*x+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(M)){u=M.match(N),null!==u?(h=+u[1],E=+u[2],_=+u[3],g=1e3*+(u[4]||0),U=5):(u=M.match(O),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),U=4):null!==(u=M.match(I))&&(h=+u[1],E=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(r,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=p(r,s,l,h,E,_,g);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(m.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var R=0|v,A=(v-R)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(R+=1),n(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=T,t.second=R,t.millisecond=A,t.isLeapSecond=r,t):new a(y,E,p,_,T,R,A,r)},m.toDate=function(e){var t=m.toGregorianDate(e,E),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--I[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,S=new u({comparator:f});S.maximumLength=A,S.reserve(A);var g=[],I={},O="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;S.length>e;){var t=S.pop();v(t)}A=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=g.length;for(e=0;e<n;++e)t=g[e],t.cancelled&&v(t),t.state===l.ACTIVE?r>0&&(g[e-r]=t):++r;g.length-=r;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(O);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(g.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;S.length>0;){v(S.pop())}for(var e=g.length,t=0;t<e;++t)v(g[t]);g.length=0,I={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,S,g,I){"use strict";function O(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function N(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var r=new e(t.url);O(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new g("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);O(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&N(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);O(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==S.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,R=E.length;T<R;T+=e._columnCount){var A=E[T+i],S=E[T+m],g=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,S,f.TAI);if(y.push(I),v){if(S!==_&&n(_)){var O=o.leapSeconds,N=t(O,I,d);if(N<0){var w=new u(I,S);O.splice(~N,0,w)}}_=S}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var v=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(n)?p=y:y-=T-v)}return u.xPoleWander=E(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)y[p]=E-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=y[m]);v[p]*=_[p];var R=3*(s+p);r.x+=v[p]*d[R++],r.y+=v[p]*d[R++],r.s+=v[p]*d[R]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},O=new r,N=new r,w=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=A[e][t],a=e+t;return u(g[a])?n=g[a]:(n=function(n,a,s){if(u(s)||(s=new _),E.equalsEpsilon(n.x,0,E.EPSILON14)&&E.equalsEpsilon(n.y,0,E.EPSILON14)){var c=E.sign(n.z);r.unpack(S[e],0,O),"east"!==e&&"west"!==e&&r.multiplyByScalar(O,c,O),r.unpack(S[t],0,N),"east"!==t&&"west"!==t&&r.multiplyByScalar(N,c,N),r.unpack(S[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),O=I[e],N=I[t],w=I[i]}return s[0]=O.x,s[1]=O.y,s[2]=O.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},g[a]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var M=new v,C=new r(1,1,1),x=new _;R.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new y;R.headingPitchRollQuaternion=function(e,t,r,n,i){var a=R.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new _,F=new _,B=new y,z=new v;R.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,U,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(r,n,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=R.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,k=new y;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=R.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,k),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,A=.779057273264+v+.00273781191135448*(_+v);A=A%1*E.TWO_PI;var S=y.fromRotationZ(A,k),g=y.multiply(h,S,X),I=Math.cos(r.xPoleWander),O=Math.cos(r.yPoleWander),N=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),M=n-2451545+i/T.SECONDS_PER_DAY;M/=36525;var C=-47e-6*M*E.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),b=k;return b[0]=I*x,b[1]=I*P,b[2]=N,b[3]=-O*P+w*N*x,b[4]=O*x+w*N*P,b[5]=-w*I,b[6]=-w*P-O*N*x,b[7]=w*x-O*N*P,b[8]=O*I,y.multiply(g,b,t)}}};var H=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=H;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,Z=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,E.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return R.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},R}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var y=new r,_=new t,v=new f,T=[new r,new r,new r],R=[new e,new e,new e],A=[new e,new e,new e],S=new t,g=new d,I=new f,O=new c;return E._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,y),h=r.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,v),N=f.inverse(E,v),w=R,M=T;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var C=S;for(u=0;u<3;u++)r.toCartesian(M[u],a,C),C=f.multiplyByPointAsVector(N,C,C),w[u].x=C.x,w[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,g),P=l.fromQuaternion(x,I),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)C=f.multiplyByPointAsVector(N,n[u],C),C=l.multiplyByVector(P,C,C),U=Math.min(U,C.x),D=Math.min(D,C.y),L=Math.max(L,C.x),F=Math.max(F,C.y);var B=c.fromRotation(i,O),z=A;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],k=z[1],H=z[2],Y=new Array(6);return e.pack(X,Y),e.pack(k,Y,2),e.pack(H,Y,4),Y},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){ -if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,E,y,_,v;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),E=t.dot(h,d),y=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),E=e.dot(h,d),y=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-E*E,R=1/T;return f.y=(_*y-E*v)*R,f.z=(m*v-E*y)*R,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=E,T=-c*m+2*s*E);var R=T<0?-1:1,A=-R*Math.abs(_)*Math.sqrt(-y);a=-T+A;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),I=a===A?-g:-v/g;return i=v<=0?g+I:-T/(g*g+I*I+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var O=p,N=-2*u*p+o*m,w=E,M=-c*m+2*s*E,C=Math.sqrt(y),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-N)/3);i=2*Math.sqrt(-O);var b=Math.cos(P);a=i*b;var U=i*(-b/2-x*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*C,-M)/3),i=2*Math.sqrt(-w),b=Math.cos(P),a=i*b,U=i*(-b/2-x*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),v=Math.sqrt(y);return[h-v,h-_,h+_,h+v]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),R=(s+d-c/T)/2,A=(s+d+c/T)/2,S=n.computeRealRoots(1,T,R),g=n.computeRealRoots(1,-T,A);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,v=t/2,T=y/2,R=_-4*o,A=_+4*Math.abs(o),S=c-4*E,g=c+4*Math.abs(E);if(E<0||R*g<S*A){var I=Math.sqrt(S);p=I/2,m=0===I?0:(t*T-a)/I}else{var O=Math.sqrt(R);p=0===O?0:(t*T-a)/O,m=O/2}var N,w;0===v&&0===p?(N=0,w=0):r.sign(v)===r.sign(p)?(N=v+p,w=E/N):(w=v-p,N=E/w);var M,C;0===T&&0===m?(M=0,C=0):r.sign(T)===r.sign(m)?(M=T+m,C=o/M):(C=T-m,M=o/C);var x=n.computeRealRoots(1,N,M),P=n.computeRealRoots(1,w,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),v=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return v;var T=l[0],R=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-R)),v.push(new e(i,a*T,a*R)),2===l.length){var A=l[1],S=Math.sqrt(Math.max(1-A*A,0));v.push(new e(i,a*A,a*-S)),v.push(new e(i,a*A,a*S))}return v}var g=_*_,I=y*y,O=p*p,N=_*y,w=O+I,M=2*(m*p+N),C=2*E*p+m*m-I+g,x=2*(E*m-N),P=E*E-g;if(0===w&&0===M&&0===C&&0===x)return v;l=c.computeRealRoots(w,M,C,x,P);var b=l.length;if(0===b)return v;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=D*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++U):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,E),R=e.subtract(a,n,y),A=e.cross(p,R,_),S=e.dot(m,A);if(u){if(S<o.EPSILON6)return;if(s=e.subtract(d,n,v),(l=e.dot(s,A))<0||l>S)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>S)return;h=e.dot(R,c)/S}else{if(Math.abs(S)<o.EPSILON6)return;var g=1/S;if(s=e.subtract(d,n,v),(l=e.dot(s,A)*g)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*g)<0||l+f>1)return;h=e.dot(R,c)*g}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var S=new l;m.lineSegmentSphere=function(t,r,i,a){var o=S;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=n/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var O=new e,N=new e,w=new e,M=new e,C=new e,x=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,O);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,O),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,N),N),m=e.normalize(e.cross(f,d,w),w),E=x;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(r.radii,b),v=u.fromScale(r.oneOverRadii,U),T=D;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var R,A,S=u.multiply(u.multiply(y,v,L),T,L),g=u.multiply(u.multiply(S,_,F),E,F),I=u.multiplyByVector(S,i,C),G=p(g,e.negate(I,O),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,k=0;k<V;++k){R=u.multiplyByVector(_,u.multiplyByVector(E,G[k],B),B);var H=e.normalize(e.subtract(R,i,M),M),Y=e.dot(H,a);Y>X&&(X=Y,W=e.clone(R,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var E=0,y=u+1;i=1;var _,v,T=[],R=[],A=0,S=[],g=s/3,I=[];for(d=0;d<g;d++)I[d]=!1;for(var O,N;-1!==E;){T=[],v=p[E],N=v.vertexTriangles.length;for(var w=0;w<N;++w)if(m=v.vertexTriangles[w],!I[m]){I[m]=!0,l=m+m+m;for(var M=0;M<3;++M)O=a[l],T.push(O),R.push(O),S[A]=O,++A,_=p[O],--_.numLiveTriangles,y-_.timeStamp>u&&(_.timeStamp=y,++y),++l}E=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,y,R,c)}return S},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,S,g){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function O(e){for(var t=e.length,r=t/3*6,n=E.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function N(e){var t=e.length;if(t>=3){var r=6*(t-2),n=E.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function w(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=E.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function M(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function C(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function x(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),R.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,y=b(e,t);for(n in y)if(y.hasOwnProperty(n))for(s=y[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:y,primitiveType:S.POINTS})),R=E.createTypedArray(T,v),A=0,g=0;for(a=0;a<h;++a){var I=e[a][t].indices,O=I.length;for(u=0;u<O;++u)R[A++]=g+I[u];g+=d.computeNumberOfVertices(e[a][t])}_=R}var N,w=new i,M=0;for(a=0;a<h;++a){if(N=e[a][t].boundingSphere,!c(N)){w=void 0;break}i.add(N.center,w,w)}if(c(w))for(i.divideByScalar(w,h,w),a=0;a<h;++a){N=e[a][t].boundingSphere;var C=i.magnitude(i.subtract(N.center,w,fe))+N.radius;C>M&&(M=C)}return new d({attributes:y,indices:_,primitiveType:m,boundingSphere:c(w)?new r(w,M):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=S.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=S.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=S.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=S.LINES,e}function G(e){switch(e.primitiveType){case S.TRIANGLE_FAN:return L(e);case S.TRIANGLE_STRIP:return F(e);case S.TRIANGLES:return D(e);case S.LINE_STRIP:return z(e);case S.LINE_LOOP:return q(e);case S.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?v.sign(e.y):v.sign(r.y):a>o?v.sign(t.y):v.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,ge),e.y/(e.y-t.y),ge),r),i.clone(r,n),V(r,!0),V(n,!1)}function k(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=Me.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Ie,Ne),X(e,r,Oe,we),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Ie,Ne),X(t,e,Oe,we),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Ie,Ne),X(r,t,Oe,we),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Ie,Ne),X(r,t,Oe,we),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Ie,Ne),X(t,e,Oe,we),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Ie,Ne),X(e,r,Oe,we),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Me.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=Oe,s[5]=Ne,s[6]=we,s.length=7),Me}}function H(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=E.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function Y(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=H(t,n),r=H(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var E=e.add(d,p,d);e.add(E,m,E),h&&e.normalize(E,E),e.pack(E,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,E,y,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==E){var v=i.fromArray(o,3*e,Ue),T=i.fromArray(o,3*r,De),R=i.fromArray(o,3*n,Le),A=t(a,v,T,R,Fe);if(c(u)&&xe(e,r,n,A,u,p.normal.values,_,!0),c(h)){var S=i.fromArray(h,3*e,Ue),g=i.fromArray(h,3*r,De),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(S,A.x,S),i.multiplyByScalar(g,A.y,g),i.multiplyByScalar(I,A.z,I);var O;i.equals(S,i.ZERO)&&i.equals(g,i.ZERO)&&i.equals(I,i.ZERO)?(O=Ue,O.x=0,O.y=0,O.z=0):(O=i.add(S,g,S),i.add(O,I,O),i.normalize(O,O)),i.pack(O,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,A,d,p.applyOffset.values,_),c(s)&&xe(e,r,n,A,s,p.tangent.values,_,!0),c(l)&&xe(e,r,n,A,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,A,f,p.st.values,_),E>0)for(var N=0;N<E;N++){var w=m[N];J(e,r,n,A,_,y[w],p[w])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Ce(e,t,r,n,s,c,i,!1);break;case 3:xe(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,E,y,_,v,T=d.length,R=Y(t),A=Y(t),S=[];S.length=n.length/3;var g=[];for(g.length=n.length/3,v=0;v<S.length;++v)S[v]=-1,g[v]=-1;var I=h.length;for(v=0;v<I;v+=3){var O=h[v],N=h[v+1],w=h[v+2],M=i.fromArray(n,3*O),C=i.fromArray(n,3*N),x=i.fromArray(n,3*w),P=k(M,C,x);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=A.attributes,E=A.indices,y=S):(m=R.attributes,E=R.indices,y=g),_=Q(m,E,y,h,F<3?v+F:-1,B),K(O,N,w,B,n,a,u,o,s,l,f,m,d,T,r,_)}else c(P)&&(M=P.positions[0],C=P.positions[1],x=P.positions[2]),M.y<0?(m=A.attributes,E=A.indices,y=S):(m=R.attributes,E=R.indices,y=g),_=Q(m,E,y,h,v,M),K(O,N,w,M,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+1,C),K(O,N,w,C,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+2,x),K(O,N,w,x,n,a,u,o,s,l,f,m,d,T,r,_)}j(e,A,R)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=Y(r),l=Y(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],E=u[t+1],y=i.fromArray(a,3*m,Ue),T=i.fromArray(a,3*E,De);Math.abs(y.y)<v.EPSILON6&&(y.y<0?y.y=-v.EPSILON6:y.y=v.EPSILON6),Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var R=s.attributes,A=s.indices,S=d,g=l.attributes,I=l.indices,O=h,N=_.lineSegmentPlane(y,T,ze,Le);if(c(N)){var w=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);y.y<0&&(i.negate(w,w),R=l.attributes,A=l.indices,S=h,g=s.attributes,I=s.indices,O=d);var M=i.add(N,w,Ge);p=Q(R,A,S,u,t,y),ee(m,E,y,a,p,R,o),p=Q(R,A,S,u,-1,M),ee(m,E,M,a,p,R,o),i.negate(w,w),i.add(N,w,M),p=Q(g,I,O,u,-1,M),ee(m,E,M,a,p,g,o),p=Q(g,I,O,u,t+1,T),ee(m,E,T,a,p,g,o)}else{var C,x,P;y.y<0?(C=l.attributes,x=l.indices,P=h):(C=s.attributes,x=s.indices,P=d),p=Q(C,x,P,u,t,y),ee(m,E,y,a,p,C,o),p=Q(C,x,P,u,t+1,T),ee(m,E,T,a,p,C,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,ke);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,He);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,E=Y(u),y=Y(u),T=!1,R=l.length/3;for(t=0;t<R;t+=4){var A=t,S=t+2,g=i.fromArray(l,3*A,Xe),I=i.fromArray(l,3*S,ke);if(Math.abs(g.y)<Qe)for(g.y=Qe*(I.y<0?-1:1),l[3*t+1]=g.y,l[3*(t+1)+1]=g.y,r=3*A;r<3*A+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(g.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*A;r<3*A+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var O=E.attributes,N=E.indices,w=y.attributes,M=y.indices,C=_.lineSegmentPlane(g,I,ze,Ye);if(c(C)){T=!0;var x=i.multiplyByScalar(i.UNIT_Y,Je,je);g.y<0&&(i.negate(x,x),O=y.attributes,N=y.indices,w=E.attributes,M=E.indices);var P=i.add(C,x,Ze);O.position.values.push(g.x,g.y,g.z,g.x,g.y,g.z),O.position.values.push(P.x,P.y,P.z),O.position.values.push(P.x,P.y,P.z),O.prevPosition.values.push(f[3*A],f[3*A+1],f[3*A+2]),O.prevPosition.values.push(f[3*A+3],f[3*A+4],f[3*A+5]),O.prevPosition.values.push(g.x,g.y,g.z,g.x,g.y,g.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),i.negate(x,x),i.add(C,x,P),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.nextPosition.values.push(h[3*S],h[3*S+1],h[3*S+2]),w.nextPosition.values.push(h[3*S+3],h[3*S+4],h[3*S+5]);var b=n.fromArray(d,2*A,Ve),U=Math.abs(b.y) -;O.expandAndWidth.values.push(-1,U,1,U),O.expandAndWidth.values.push(-1,-U,1,-U),w.expandAndWidth.values.push(-1,U,1,U),w.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(C,g,He));if(D/=i.magnitudeSquared(i.subtract(I,g,He)),c(m)){var L=a.fromArray(m,4*A,Ke),F=a.fromArray(m,4*S,Ke),B=v.lerp(L.x,F.x,D),z=v.lerp(L.y,F.y,D),q=v.lerp(L.z,F.z,D),G=v.lerp(L.w,F.w,D);for(r=4*A;r<4*A+8;++r)O.color.values.push(m[r]);for(O.color.values.push(B,z,q,G),O.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),r=4*S;r<4*S+8;++r)w.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*A,Ve),W=n.fromArray(p,2*(t+3),We),X=v.lerp(V.x,W.x,D);for(r=2*A;r<2*A+4;++r)O.st.values.push(p[r]);for(O.st.values.push(X,V.y),O.st.values.push(X,W.y),w.st.values.push(X,V.y),w.st.values.push(X,W.y),r=2*S;r<2*S+4;++r)w.st.values.push(p[r])}o=O.position.values.length/3-4,N.push(o,o+2,o+1),N.push(o+1,o+2,o+3),o=w.position.values.length/3-4,M.push(o,o+2,o+1),M.push(o+1,o+2,o+3)}else{var k,H;for(g.y<0?(k=y.attributes,H=y.indices):(k=E.attributes,H=E.indices),k.position.values.push(g.x,g.y,g.z),k.position.values.push(g.x,g.y,g.z),k.position.values.push(I.x,I.y,I.z),k.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)k.prevPosition.values.push(f[r]),k.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)k.expandAndWidth.values.push(d[r]),c(p)&&k.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)k.color.values.push(m[r]);o=k.position.values.length/3-4,H.push(o,o+2,o+1),H.push(o+1,o+2,o+3)}}T&&(re(y),re(E)),j(e,y,E)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case S.TRIANGLES:e.indices=O(t);break;case S.TRIANGLE_STRIP:e.indices=N(t);break;case S.TRIANGLE_FAN:e.indices=w(t)}e.primitiveType=S.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,E=e.boundingSphere;return c(E)&&(m=new r(E.center,E.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:S.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=E.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var y in m)if(m.hasOwnProperty(y)&&c(m[y])&&c(m[y].values)){for(var _=m[y],v=_.values,T=0,R=_.componentsPerAttribute,A=u.createTypedArray(_.componentDatatype,p*R);T<t;){var S=n[T];if(-1!==S)for(var g=0;g<R;g++)A[R*S+g]=v[R*T+g];++T}_.values=A}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===S.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=g.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=v.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=M(e.attributes),s=e.indices,l=s.length;e.primitiveType===S.TRIANGLES?n=3:e.primitiveType===S.LINES?n=2:e.primitiveType===S.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,C(u,e.attributes,p)),a.push(m)}o+n>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=M(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var E=i.fromArray(l,m,ae),y=s.cartesianToCartographic(E,oe),_=a.project(y,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new R,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(R.equals(t,R.IDENTITY))return e;var n=e.geometry.attributes;x(t,n.position),x(t,n.prevPosition),x(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(R.inverse(t,ce),R.transpose(ce,ce),R.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=R.clone(R.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],E=r[t+2],y=3*d,_=3*m,T=3*E;de.x=a[y],de.y=a[y+1],de.z=a[y+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[E].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var R=0;for(t=0;t<o;t++)c[t].indexOffset+=R,R+=c[t].count;h=0;var A;for(t=0;t<s;t+=3){A=c[r[t]];var S=A.indexOffset+A.currentCount;f[S]=h,A.currentCount++,A=c[r[t+1]],S=A.indexOffset+A.currentCount,f[S]=h,A.currentCount++,A=c[r[t+2]],S=A.indexOffset+A.currentCount,f[S]=h,A.currentCount++,h++}var g=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(A=c[t],i.clone(i.ZERO,he),A.count>0){for(h=0;h<A.count;h++)i.add(he,l[f[A.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[A.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),g[I]=he.x,g[I+1]=he.y,g[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:g}),e};var Ee=new i,ye=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],E=r[t+1],y=r[t+2];f=3*m,h=3*E,d=3*y;var _=2*m,v=2*E,T=2*y,R=n[f],A=n[f+1],S=n[f+2],g=o[_],I=o[_+1],O=o[v+1]-I,N=o[T+1]-I,w=1/((o[v]-g)*N-(o[T]-g)*O),M=(N*(n[h]-R)-O*(n[d]-R))*w,C=(N*(n[h+1]-A)-O*(n[d+1]-A))*w,x=(N*(n[h+2]-S)-O*(n[d+2]-S))*w;l[f]+=M,l[f+1]+=C,l[f+2]+=x,l[h]+=M,l[h+1]+=C,l[h+2]+=x,l[d]+=M,l[d+1]+=C,l[d+2]+=x}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,Ee),D=i.fromArray(l,f,_e),L=i.dot(U,D);i.multiplyByScalar(U,L,ye),i.normalize(i.subtract(D,ye,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new n,Te=new i,Re=new i,Ae=new i,Se=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(Se=e.octEncodeInRange(Te,65535,Se),l[f++]=Se.x,l[f++]=Se.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),E=c(d);if(!m&&!E)return t;var y,_,v,T,R=t.attributes.tangent,A=t.attributes.bitangent,S=c(R),g=c(A);m&&(y=h.values),E&&(_=d.values),S&&(v=R.values),g&&(T=A.values),a=(m?y.length:_.length)/(m?3:2);var I=a,O=E&&m?2:1;O+=S||g?1:0,I*=O;var N=new Float32Array(I),w=0;for(r=0;r<a;++r){E&&(n.fromArray(_,2*r,ve),N[w++]=e.compressTextureCoordinates(ve));var M=3*r;m&&c(v)&&c(T)?(i.fromArray(y,M,Te),i.fromArray(v,M,Re),i.fromArray(T,M,Ae),e.octPack(Te,Re,Ae,ve),N[w++]=ve.x,N[w++]=ve.y):(m&&(i.fromArray(y,M,Te),N[w++]=e.octEncodeFloat(Te)),S&&(i.fromArray(v,M,Te),N[w++]=e.octEncodeFloat(Te)),g&&(i.fromArray(T,M,Te),N[w++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:O,values:N}),m&&delete t.attributes.normal,E&&delete t.attributes.st,g&&delete t.attributes.bitangent,S&&delete t.attributes.tangent,t};var ge=new i,Ie=new i,Oe=new i,Ne=new i,we=new i,Me={positions:new Array(7),indices:new Array(9)},Ce=Z(a,4),xe=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>v.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=A.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,ke=new i,He=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,A.ORIGIN_ZX_PLANE)!==y.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===S.TRIANGLES?$(e):t.primitiveType===S.LINES&&te(e);return e},ie}),define("Core/OffsetGeometryInstanceAttribute",["./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties"],function(e,t,r,n,i){"use strict";function a(e,t,n){e=r(e,0),t=r(t,0),n=r(n,0),this.value=new Float32Array([e,t,n])}return i(a.prototype,{componentDatatype:{get:function(){return t.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}}),a.fromCartesian3=function(e){return new a(e.x,e.y,e.z)},a.toValue=function(e,t){return n(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t},a}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},s.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},s}),define("Scene/PrimitivePipeline",["../Core/BoundingSphere","../Core/ComponentDatatype","../Core/defaultValue","../Core/defined","../Core/DeveloperError","../Core/Ellipsoid","../Core/FeatureDetection","../Core/GeographicProjection","../Core/Geometry","../Core/GeometryAttribute","../Core/GeometryAttributes","../Core/GeometryPipeline","../Core/IndexDatatype","../Core/Matrix4","../Core/OffsetGeometryInstanceAttribute","../Core/WebMercatorProjection"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e,t,r){var i,a=!r,o=e.length;if(!a&&o>1){var u=e[0].modelMatrix;for(i=1;i<o;++i)if(!d.equals(u,e[i].modelMatrix)){a=!0;break}}if(a)for(i=0;i<o;++i)n(e[i].geometry)&&f.transformToWorldCoordinates(e[i]);else d.multiplyTransformation(t,e[0].modelMatrix,t)}function y(e,r){var n=e.attributes,i=n.position,a=i.values.length/i.componentsPerAttribute;n.batchId=new c({componentDatatype:t.FLOAT,componentsPerAttribute:1,values:new Float32Array(a)});for(var o=n.batchId.values,u=0;u<a;++u)o[u]=r}function _(e){for(var t=e.length,r=0;r<t;++r){var i=e[r];n(i.geometry)?y(i.geometry,r):n(i.westHemisphereGeometry)&&n(i.eastHemisphereGeometry)&&(y(i.westHemisphereGeometry,r),y(i.eastHemisphereGeometry,r))}}function v(r){var i,a,o=r.instances,u=r.projection,s=r.elementIndexUintSupported,c=r.scene3DOnly,l=r.vertexCacheOptimize,h=r.compressVertices,d=r.modelMatrix,p=o.length;for(i=0;i<p;++i)if(n(o[i].geometry)){o[i].geometry.primitiveType;break}if(E(o,d,c),!c)for(i=0;i<p;++i)n(o[i].geometry)&&f.splitLongitude(o[i]);if(_(o),l)for(i=0;i<p;++i){var m=o[i];n(m.geometry)?(f.reorderForPostVertexCache(m.geometry),f.reorderForPreVertexCache(m.geometry)):n(m.westHemisphereGeometry)&&n(m.eastHemisphereGeometry)&&(f.reorderForPostVertexCache(m.westHemisphereGeometry),f.reorderForPreVertexCache(m.westHemisphereGeometry),f.reorderForPostVertexCache(m.eastHemisphereGeometry),f.reorderForPreVertexCache(m.eastHemisphereGeometry))}var y=f.combineInstances(o);for(p=y.length,i=0;i<p;++i){a=y[i];var v,T=a.attributes;if(c)for(v in T)T.hasOwnProperty(v)&&T[v].componentDatatype===t.DOUBLE&&f.encodeAttribute(a,v,v+"3DHigh",v+"3DLow");else for(v in T)if(T.hasOwnProperty(v)&&T[v].componentDatatype===t.DOUBLE){var R=v+"3D",A=v+"2D";f.projectTo2D(a,v,R,A,u),n(a.boundingSphere)&&"position"===v&&(a.boundingSphereCV=e.fromVertices(a.attributes.position2D.values)),f.encodeAttribute(a,R,R+"High",R+"Low"),f.encodeAttribute(a,A,A+"High",A+"Low")}h&&f.compressVertices(a)}if(!s){var S=[];for(p=y.length,i=0;i<p;++i)a=y[i],S=S.concat(f.fitToUnsignedShortIndices(a));y=S}return y}function T(e,t,r,i){var a,o,u,s=i.length-1;if(s>=0){var c=i[s];a=c.offset+c.count,u=c.index,o=r[u].indices.length}else a=0,u=0,o=r[u].indices.length;for(var l=e.length,f=0;f<l;++f){var h=e[f],d=h[t];if(n(d)){var p=d.indices.length;a+p>o&&(a=0,o=r[++u].indices.length),i.push({index:u,offset:a,count:p}),a+=p}}}function R(e,t){var r=[];return T(e,"geometry",t,r),T(e,"westHemisphereGeometry",t,r),T(e,"eastHemisphereGeometry",t,r),r}function A(e,t){var r=e.attributes;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];n(a)&&n(a.values)&&t.push(a.values.buffer)}n(e.indices)&&t.push(e.indices.buffer)}function S(e,t){for(var r=e.length,n=0;n<r;++n)A(e[n],t)}function g(t){for(var r=1,i=t.length,a=0;a<i;a++){var o=t[a];if(++r,n(o)){var u=o.attributes;r+=7+2*e.packedLength+(n(o.indices)?o.indices.length:0);for(var s in u)if(u.hasOwnProperty(s)&&n(u[s])){var c=u[s];r+=5+c.values.length}}}return r}function I(e,t){var r=e.length,i=new Float64Array(1+19*r),a=0;i[a++]=r;for(var o=0;o<r;o++){var u=e[o];if(d.pack(u.modelMatrix,i,a),a+=d.packedLength,n(u.attributes)&&n(u.attributes.offset)){var s=u.attributes.offset.value;i[a]=s[0],i[a+1]=s[1],i[a+2]=s[2]}a+=3}return t.push(i.buffer),i}function O(e){for(var t=e,r=new Array(t[0]),i=0,a=1;a<t.length;){var o,u=d.unpack(t,a);a+=d.packedLength,n(t[a])&&(o={offset:new p(t[a],t[a+1],t[a+2])}),a+=3,r[i++]={modelMatrix:u,attributes:o}}return r}function N(t){var r=t.length,i=1+(e.packedLength+1)*r,a=new Float32Array(i),o=0;a[o++]=r;for(var u=0;u<r;++u){var s=t[u];n(s)?(a[o++]=1,e.pack(t[u],a,o)):a[o++]=0,o+=e.packedLength}return a}function w(t){for(var r=new Array(t[0]),n=0,i=1;i<t.length;)1===t[i++]&&(r[n]=e.unpack(t,i)),++n,i+=e.packedLength;return r}if(!o.supportsTypedArrays())return{};var M={};return M.combineGeometry=function(t){var r,i,a,o,u=t.instances,s=u.length,c=!1;s>0&&(r=v(t),r.length>0&&(i=f.createAttributeLocations(r[0]),t.createPickOffsets&&(a=R(u,r))),n(u[0].attributes)&&n(u[0].attributes.offset)&&(o=new Array(s),c=!0));for(var l=new Array(s),h=new Array(s),d=0;d<s;++d){var p=u[d],m=p.geometry;n(m)&&(l[d]=m.boundingSphere,h[d]=m.boundingSphereCV,c&&(o[d]=p.geometry.offsetAttribute));var E=p.eastHemisphereGeometry,y=p.westHemisphereGeometry;n(E)&&n(y)&&(n(E.boundingSphere)&&n(y.boundingSphere)&&(l[d]=e.union(E.boundingSphere,y.boundingSphere)),n(E.boundingSphereCV)&&n(y.boundingSphereCV)&&(h[d]=e.union(E.boundingSphereCV,y.boundingSphereCV)))}return{geometries:r,modelMatrix:t.modelMatrix,attributeLocations:i,pickOffsets:a,offsetInstanceExtend:o,boundingSpheres:l,boundingSpheresCV:h}},M.packCreateGeometryResults=function(t,i){var a=new Float64Array(g(t)),o=[],u={},s=t.length,c=0;a[c++]=s;for(var l=0;l<s;l++){var f=t[l],h=n(f);if(a[c++]=h?1:0,h){a[c++]=f.primitiveType,a[c++]=f.geometryType,a[c++]=r(f.offsetAttribute,-1);var d=n(f.boundingSphere)?1:0;a[c++]=d,d&&e.pack(f.boundingSphere,a,c),c+=e.packedLength;var p=n(f.boundingSphereCV)?1:0;a[c++]=p,p&&e.pack(f.boundingSphereCV,a,c),c+=e.packedLength;var m=f.attributes,E=[];for(var y in m)m.hasOwnProperty(y)&&n(m[y])&&(E.push(y),n(u[y])||(u[y]=o.length,o.push(y)));a[c++]=E.length;for(var _=0;_<E.length;_++){var v=E[_],T=m[v];a[c++]=u[v],a[c++]=T.componentDatatype,a[c++]=T.componentsPerAttribute,a[c++]=T.normalize?1:0,a[c++]=T.values.length,a.set(T.values,c),c+=T.values.length}var R=n(f.indices)?f.indices.length:0;a[c++]=R,R>0&&(a.set(f.indices,c),c+=R)}}return i.push(a.buffer),{stringTable:o,packedData:a}},M.unpackCreateGeometryResults=function(r){for(var n,i=r.stringTable,a=r.packedData,o=new Array(a[0]),u=0,f=1;f<a.length;){if(1===a[f++]){var d=a[f++],p=a[f++],m=a[f++];-1===m&&(m=void 0);var E,y;1===a[f++]&&(E=e.unpack(a,f)),f+=e.packedLength;1===a[f++]&&(y=e.unpack(a,f)),f+=e.packedLength;var _,v,T,R=new l,A=a[f++];for(n=0;n<A;n++){var S=i[a[f++]],g=a[f++];T=a[f++];var I=0!==a[f++];_=a[f++],v=t.createTypedArray(g,_);for(var O=0;O<_;O++)v[O]=a[f++];R[S]=new c({componentDatatype:g,componentsPerAttribute:T,normalize:I,values:v})}var N;if((_=a[f++])>0){var w=v.length/T;for(N=h.createTypedArray(w,_),n=0;n<_;n++)N[n]=a[f++]}o[u++]=new s({primitiveType:d,geometryType:p,boundingSphere:E,boundingSphereCV:y,indices:N,attributes:R,offsetAttribute:m})}else o[u++]=void 0}return o},M.packCombineGeometryParameters=function(e,t){for(var r=e.createGeometryResults,n=r.length,i=0;i<n;i++)t.push(r[i].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:I(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof u,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}},M.unpackCombineGeometryParameters=function(e){for(var t=O(e.packedInstances),r=e.createGeometryResults,n=r.length,i=0,o=0;o<n;o++)for(var s=M.unpackCreateGeometryResults(r[o]),c=s.length,l=0;l<c;l++){var f=s[l],h=t[i];h.geometry=f,++i}var p=a.clone(e.ellipsoid);return{instances:t,ellipsoid:p,projection:e.isGeographic?new u(p):new m(p),elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:d.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}},M.packCombineGeometryResults=function(e,t){n(e.geometries)&&S(e.geometries,t);var r=N(e.boundingSpheres),i=N(e.boundingSpheresCV);return t.push(r.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:r,boundingSpheresCV:i}},M.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:w(e.boundingSpheres),boundingSpheresCV:w(e.boundingSpheresCV)}},M}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var r,n=t.name,i=t.message;r=e(n)&&e(i)?n+": "+i:t.toString();var a=t.stack;return e(a)&&(r+="\n"+a),r}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,r,n){"use strict";function i(t,r,n){try{return t(r,n)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){r(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+n(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/createGeometry",["../Core/defined","../Scene/PrimitivePipeline","../ThirdParty/when","./createTaskProcessorWorker","require"],function(e,t,r,n,i){"use strict";function a(t){var r=u[t];return e(r)||("object"==typeof exports?u[r]=r=i("Workers/"+t):i(["./"+t],function(e){r=e,u[r]=e})),r}function o(n,i){for(var o=n.subTasks,u=o.length,s=new Array(u),c=0;c<u;c++){var l=o[c],f=l.geometry,h=l.moduleName;if(e(h)){var d=a(h);s[c]=d(f,l.offset)}else s[c]=f}return r.all(s,function(e){return t.packCreateGeometryResults(e,i)})}var u={};return n(o)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as d}from"./chunk-KYVZRNFI.js";import{a as w}from"./chunk-3R25OJXK.js";import"./chunk-ZEP44EYN.js";import"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as k}from"./chunk-WHQYJFDH.js";import{a as y}from"./chunk-OYWUGDKS.js";import{a,b as p,e as r}from"./chunk-DRYFJEFT.js";var b=p({"./combineGeometry.js":()=>import("./combineGeometry.js"),"./createBoxGeometry.js":()=>import("./createBoxGeometry.js"),"./createBoxOutlineGeometry.js":()=>import("./createBoxOutlineGeometry.js"),"./createCircleGeometry.js":()=>import("./createCircleGeometry.js"),"./createCircleOutlineGeometry.js":()=>import("./createCircleOutlineGeometry.js"),"./createCoplanarPolygonGeometry.js":()=>import("./createCoplanarPolygonGeometry.js"),"./createCoplanarPolygonOutlineGeometry.js":()=>import("./createCoplanarPolygonOutlineGeometry.js"),"./createCorridorGeometry.js":()=>import("./createCorridorGeometry.js"),"./createCorridorOutlineGeometry.js":()=>import("./createCorridorOutlineGeometry.js"),"./createCylinderGeometry.js":()=>import("./createCylinderGeometry.js"),"./createCylinderOutlineGeometry.js":()=>import("./createCylinderOutlineGeometry.js"),"./createEllipseGeometry.js":()=>import("./createEllipseGeometry.js"),"./createEllipseOutlineGeometry.js":()=>import("./createEllipseOutlineGeometry.js"),"./createEllipsoidGeometry.js":()=>import("./createEllipsoidGeometry.js"),"./createEllipsoidOutlineGeometry.js":()=>import("./createEllipsoidOutlineGeometry.js"),"./createFrustumGeometry.js":()=>import("./createFrustumGeometry.js"),"./createFrustumOutlineGeometry.js":()=>import("./createFrustumOutlineGeometry.js"),"./createGeometry.js":()=>import("./createGeometry.js"),"./createGroundPolylineGeometry.js":()=>import("./createGroundPolylineGeometry.js"),"./createPlaneGeometry.js":()=>import("./createPlaneGeometry.js"),"./createPlaneOutlineGeometry.js":()=>import("./createPlaneOutlineGeometry.js"),"./createPolygonGeometry.js":()=>import("./createPolygonGeometry.js"),"./createPolygonOutlineGeometry.js":()=>import("./createPolygonOutlineGeometry.js"),"./createPolylineGeometry.js":()=>import("./createPolylineGeometry.js"),"./createPolylineVolumeGeometry.js":()=>import("./createPolylineVolumeGeometry.js"),"./createPolylineVolumeOutlineGeometry.js":()=>import("./createPolylineVolumeOutlineGeometry.js"),"./createRectangleGeometry.js":()=>import("./createRectangleGeometry.js"),"./createRectangleOutlineGeometry.js":()=>import("./createRectangleOutlineGeometry.js"),"./createSimplePolylineGeometry.js":()=>import("./createSimplePolylineGeometry.js"),"./createSphereGeometry.js":()=>import("./createSphereGeometry.js"),"./createSphereOutlineGeometry.js":()=>import("./createSphereOutlineGeometry.js"),"./createTaskProcessorWorker.js":()=>import("./createTaskProcessorWorker.js"),"./createVectorTileClampedPolylines.js":()=>import("./createVectorTileClampedPolylines.js"),"./createVectorTileGeometries.js":()=>import("./createVectorTileGeometries.js"),"./createVectorTilePoints.js":()=>import("./createVectorTilePoints.js"),"./createVectorTilePolygons.js":()=>import("./createVectorTilePolygons.js"),"./createVectorTilePolylines.js":()=>import("./createVectorTilePolylines.js"),"./createVerticesFromGoogleEarthEnterpriseBuffer.js":()=>import("./createVerticesFromGoogleEarthEnterpriseBuffer.js"),"./createVerticesFromHeightmap.js":()=>import("./createVerticesFromHeightmap.js"),"./createVerticesFromQuantizedTerrainMesh.js":()=>import("./createVerticesFromQuantizedTerrainMesh.js"),"./createWallGeometry.js":()=>import("./createWallGeometry.js"),"./createWallOutlineGeometry.js":()=>import("./createWallOutlineGeometry.js"),"./decodeDraco.js":()=>import("./decodeDraco.js"),"./decodeGoogleEarthEnterprisePacket.js":()=>import("./decodeGoogleEarthEnterprisePacket.js"),"./decodeI3S.js":()=>import("./decodeI3S.js"),"./transcodeKTX2.js":()=>import("./transcodeKTX2.js"),"./transferTypedArrayTest.js":()=>import("./transferTypedArrayTest.js"),"./upsampleQuantizedTerrainMesh.js":()=>import("./upsampleQuantizedTerrainMesh.js")});var f={};async function h(s,t){let e=k(f[t],f[s]);return r(e)?e:r(t)?(typeof exports=="object"?e=a(t):e=(await import(t)).default,f[t]=e,e):(typeof exports=="object"?e=a(`Workers/${s}`):e=(r(t)?await import(t):await b(`./${s}.js`)).default,f[s]=e,e)}async function x(s,t){let e=s.subTasks,n=e.length,u=new Array(n);for(let o=0;o<n;o++){let i=e[o],m=i.geometry,l=i.moduleName,c=i.modulePath;if(r(l)&&r(c))throw new y("Must only set moduleName or modulePath");r(l)||r(c)?u[o]=h(l,c).then(g=>g(m,i.offset)):u[o]=m}return Promise.all(u).then(function(o){return d.packCreateGeometryResults(o,t)})}var P=w(x);export{P as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js index ba7178bb7..daf708b93 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createGroundPolylineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=_,E(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,m,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,E=function(e){h.push(e),--l||(p=E=_,d.reject(h))},p=function(e){f.push(e),--c||(p=E=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function E(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=E(e);return e.state=l.ACTIVE,S.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},v=20,g=new u({comparator:f});g.maximumLength=v,g.reserve(v);var S=[],O={},M="undefined"!=typeof document?new e(document.location.href):new e,I=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=I,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return v},set:function(e){if(e<v)for(;g.length>e;){var t=g.pop();T(t)}v=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(M);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return I.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())}for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,_,y,T,R,A,v,g,S,O){"use strict";function M(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?C(a,t._queryParameters,r):a,e.query=void 0}function I(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function N(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function C(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function P(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);M(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function x(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return P._Implementations.createImage(e,a,o,r,i),o.promise};var o=v.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,x({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},P._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=v.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function F(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();P.createIfNeeded=function(e){return e instanceof P?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new P({url:e})};var G;P.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=P.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(P,{isBlobSupported:{get:function(){return z}}}),s(P.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);M(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),P.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&I(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},P.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},P.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},P.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},P.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);M(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},P.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},P.prototype.clone=function(e){return u(e)||(e=new P({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},P.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},P.prototype.appendForwardSlash=function(){this._url=n(this._url)},P.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},P.fetchArrayBuffer=function(e){return new P(e).fetchArrayBuffer()},P.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},P.fetchBlob=function(e){return new P(e).fetchBlob()},P.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(N(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return x({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return P.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return P.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new P({url:t}),x({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},P.fetchImage=function(e){return new P(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},P.prototype.fetchText=function(){return this.fetch({responseType:"text"})},P.fetchText=function(e){return new P(e).fetchText()},P.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},P.fetchJson=function(e){return new P(e).fetchJson()},P.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},P.fetchXML=function(e){return new P(e).fetchXML()},P.prototype.fetchJsonp=function(e){e=o(e,"callback"),N(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},P.fetchJsonp=function(e){return new P(e).fetchJsonp(e.callbackParameterName)},P.prototype._makeRequest=function(e){var n=this;N(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=P._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=v.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;P.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},P.fetch=function(e){return new P(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},P.delete=function(e){return new P(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},P.prototype.head=function(e){ -return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},P.head=function(e){return new P(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},P.options=function(e){return new P(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},P.post=function(e){return new P(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},P.put=function(e){return new P(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},P.patch=function(e){return new P(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P._Implementations={},P._Implementations.createImage=function(e,t,n,r,i){P.supportsImageBitmapOptions().then(function(r){return r&&i?P.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return P.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},P.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return P._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(F(s,t));if(W)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},P._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},P._DefaultImplementations={},P._DefaultImplementations.createImage=P._Implementations.createImage,P._DefaultImplementations.loadWithXhr=P._Implementations.loadWithXhr,P._DefaultImplementations.loadAndExecuteScript=P._Implementations.loadAndExecuteScript,P.DEFAULT=l(new P({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),P}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,E=i.z,m=l*l*d*d,_=f*f*p*p,y=h*h*E*E,T=m+_+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var v=u.x,g=u.y,S=u.z,O=o;O.x=A.x*v*2,O.y=A.y*g*2,O.z=A.z*S*2;var M,I,w,N,C,P,x,U,D,L,F,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*v),N=1/(1+b*g),C=1/(1+b*S),P=w*w,x=N*N,U=C*C,D=P*w,L=x*N,F=U*C,M=m*P+_*x+y*U-1,I=m*D*v+_*L*g+y*F*S;B=M/(-2*I)}while(Math.abs(M)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*N,c.z=h*C,c):new e(l*w,f*N,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,E=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,_=o(t,p,E,m,c);if(r(_)){var y=e.multiplyComponents(_,E,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),v=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=v,i):new u(R,A,v)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,E=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(E[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(m-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,E=2*(i-h),m=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),v=-n-u+f+d;return r(t)?(t[0]=p,t[1]=_,t[2]=R,t[3]=E,t[4]=y,t[5]=A,t[6]=m,t[7]=T,t[8]=v,t):new s(p,E,m,_,y,T,R,A,v)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,E=-c*i+a*o*u,m=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=p,t[5]=_,t[6]=h,t[7]=E,t[8]=y,t):new s(l,f,h,d,p,E,m,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],m=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,_),s.multiply(h,m,h),s.multiply(_,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){ -return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,E,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(E,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-m+y,R=2*(c-_),A=2*(f+E),v=2*(c+_),g=-s+d-m+y,S=2*(p-h),O=2*(f-E),M=2*(p+h),I=-s-d+m+y;return r[0]=T*a,r[1]=v*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=g*o,r[6]=M*o,r[7]=0,r[8]=A*u,r[9]=S*u,r[10]=I*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,m=f.z,_=d.x,y=d.y,T=d.z,R=r.x,A=r.y,v=r.z,g=u*-R+s*-A+c*-v,S=_*-R+y*-A+T*-v,O=p*R+E*A+m*v;return i(n)?(n[0]=u,n[1]=_,n[2]=-p,n[3]=0,n[4]=s,n[5]=y,n[6]=-E,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,_,y,T,S,-p,-E,-m,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,E=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var E=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],m=e[13],_=e[14],y=e[15],T=t[0],R=t[1],A=t[2],v=t[3],g=t[4],S=t[5],O=t[6],M=t[7],I=t[8],w=t[9],N=t[10],C=t[11],P=t[12],x=t[13],U=t[14],D=t[15],L=r*T+u*R+f*A+E*v,F=i*T+s*R+h*A+m*v,b=a*T+c*R+d*A+_*v,B=o*T+l*R+p*A+y*v,q=r*g+u*S+f*O+E*M,z=i*g+s*S+h*O+m*M,G=a*g+c*S+d*O+_*M,V=o*g+l*S+p*O+y*M,W=r*I+u*w+f*N+E*C,X=i*I+s*w+h*N+m*C,H=a*I+c*w+d*N+_*C,k=o*I+l*w+p*N+y*C,Y=r*P+u*x+f*U+E*D,j=i*P+s*x+h*U+m*D,Z=a*P+c*x+d*U+_*D,K=o*P+l*x+p*U+y*D;return n[0]=L,n[1]=F,n[2]=b,n[3]=B,n[4]=q,n[5]=z,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=k,n[12]=Y,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],m=t[1],_=t[2],y=t[4],T=t[5],R=t[6],A=t[8],v=t[9],g=t[10],S=t[12],O=t[13],M=t[14],I=r*E+o*m+c*_,w=i*E+u*m+l*_,N=a*E+s*m+f*_,C=r*y+o*T+c*R,P=i*y+u*T+l*R,x=a*y+s*T+f*R,U=r*A+o*v+c*g,D=i*A+u*v+l*g,L=a*A+s*v+f*g,F=r*S+o*O+c*M+h,b=i*S+u*O+l*M+d,B=a*S+s*O+f*M+p;return n[0]=I,n[1]=w,n[2]=N,n[3]=0,n[4]=C,n[5]=P,n[6]=x,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=F,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],m=t[4],_=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*p,v=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*E+o*m+c*_,O=i*E+u*m+l*_,M=a*E+s*m+f*_,I=r*y+o*T+c*R,w=i*y+u*T+l*R,N=a*y+s*T+f*R;return n[0]=A,n[1]=v,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=M,n[7]=0,n[8]=I,n[9]=w,n[10]=N,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],m=e[6],_=e[10],v=e[14],g=e[3],S=e[7],O=e[11],M=e[15],I=_*M,w=v*O,N=m*M,C=v*S,P=m*O,x=_*S,U=E*M,D=v*g,L=E*O,F=_*g,b=E*S,B=m*g,q=I*h+C*d+P*p-(w*h+N*d+x*p),z=w*f+U*d+F*p-(I*f+D*d+L*p),G=N*f+D*h+b*p-(C*f+U*h+B*p),V=x*f+L*h+B*d-(P*f+F*h+b*d),W=w*i+N*a+x*o-(I*i+C*a+P*o),X=I*r+D*a+L*o-(w*r+U*a+F*o),H=C*r+U*i+B*o-(N*r+D*i+b*o),k=P*r+F*i+b*a-(x*r+L*i+B*a);I=a*p,w=o*d,N=i*p,C=o*h,P=i*d,x=a*h,U=r*p,D=o*f,L=r*d,F=a*f,b=r*h,B=i*f;var Y=I*S+C*O+P*M-(w*S+N*O+x*M),j=w*g+U*O+F*M-(I*g+D*O+L*M),Z=N*g+D*S+b*M-(C*g+U*S+B*M),K=x*g+L*S+B*O-(P*g+F*S+b*O),J=N*_+x*v+w*m-(P*v+I*m+C*_),Q=L*v+I*E+D*_-(U*_+F*v+w*E),$=U*m+B*v+C*E-(b*v+N*E+D*m),ee=b*_+P*E+F*m-(L*m+B*_+x*E),te=r*q+i*z+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=k*te,n[8]=Y*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,E=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var m=t.cartesianToCartographic(e[p]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)E.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,E=new e,m=new e,_=new e,y=new e,T=new e,R=new e,A=new e,v=new e,g=new e,S=new e,O=new e,M=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,E),s=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var M=a.x,I=a.y,w=a.z;M<o.x&&e.clone(a,o),M>c.x&&e.clone(a,c),I<u.y&&e.clone(a,u),I>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var N=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),P=e.magnitudeSquared(e.subtract(f,s,A)),x=o,U=c,D=N;C>D&&(D=C,x=u,U=l),P>D&&(D=P,x=s,U=f);var L=v;L.x=.5*(x.x+U.x),L.y=.5*(x.y+U.y),L.z=.5*(x.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,A)),b=Math.sqrt(F),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var q=S;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,z,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>F){var X=Math.sqrt(W);b=.5*(b+X),F=b*b;var H=X-b;L.x=(b*L.x+H*a.x)/X,L.y=(b*L.y+H*a.y)/X,L.z=(b*L.z+H*a.z)/X}}return b<G?(e.clone(L,n.center),n.radius=b):(e.clone(z,n.center),n.radius=G),n};var I=new o,w=new e,N=new e,C=new t,P=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,I),h.southwest(t,C),C.height=a,h.northeast(t,P),P.height=o;var s=n.project(C,w),c=n.project(P,N),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var x=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,x);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,m),h=e.clone(u,_),M=e.clone(u,y),I=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var N=t[s]+n.x,C=t[s+1]+n.y,P=t[s+2]+n.z;u.x=N,u.y=C,u.z=P,N<c.x&&e.clone(u,c),N>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>M.y&&e.clone(u,M),P<f.z&&e.clone(u,f),P>I.z&&e.clone(u,I)}var x=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(M,l,A)),D=e.magnitudeSquared(e.subtract(I,f,A)),L=c,F=h,b=x;U>b&&(b=U,L=l,F=M),D>b&&(b=D,L=f,F=I);var B=v;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var q=e.magnitudeSquared(e.subtract(F,B,A)),z=Math.sqrt(q),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=M.y,V.z=I.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,A));H>X&&(X=H);var k=e.magnitudeSquared(e.subtract(u,B,A));if(k>q){var Y=Math.sqrt(k);z=.5*(z+Y),q=z*z;var j=Y-z;B.x=(z*B.x+j*u.x)/Y,B.y=(z*B.y+j*u.y)/Y,B.z=(z*B.z+j*u.z)/Y}}return z<X?(e.clone(B,o.center),o.radius=z):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),M=t.length;for(o=0;o<M;o+=3){var I=t[o]+n[o],w=t[o+1]+n[o+1],N=t[o+2]+n[o+2];a.x=I,a.y=w,a.z=N,I<u.x&&e.clone(a,u),I>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),N<c.z&&e.clone(a,c),N>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),P=e.magnitudeSquared(e.subtract(f,s,A)),x=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,L=C;P>L&&(L=P,U=s,D=f),x>L&&(L=x,U=c,D=h);var F=v;F.x=.5*(U.x+D.x),F.y=.5*(U.y+D.y),F.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,A)),B=Math.sqrt(b),q=g;q.x=u.x,q.y=s.y,q.z=c.z;var z=S;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,O),V=0;for(o=0;o<M;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var k=H-B;F.x=(B*F.x+k*a.x)/H,F.y=(B*F.y+k*a.y)/H,F.z=(B*F.z+k*a.z)/H}}return B<V?(e.clone(F,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,F);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,k=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,k),h=e.negate(c,H),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var m=p.length,_=0;_<m;++_){var y=p[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,Y);n.project(T,y)}i=d.fromPoints(p,i),o=i.center;var R=o.x,A=o.y,v=o.z;return o.x=v,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){ -return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return M*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeographicTilingScheme",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./GeographicProjection","./Math","./Rectangle"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e){e=n(e,{}),this._ellipsoid=n(e.ellipsoid,a.WGS84),this._rectangle=n(e.rectangle,s.MAX_VALUE),this._projection=new o(this._ellipsoid),this._numberOfLevelZeroTilesX=n(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=n(e.numberOfLevelZeroTilesY,1)}return i(c.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}}),c.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e},c.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e},c.prototype.rectangleToNativeRectangle=function(e,t){var n=u.toDegrees(e.west),i=u.toDegrees(e.south),a=u.toDegrees(e.east),o=u.toDegrees(e.north);return r(t)?(t.west=n,t.south=i,t.east=a,t.north=o,t):new s(n,i,a,o)},c.prototype.tileXYToNativeRectangle=function(e,t,n,r){var i=this.tileXYToRectangle(e,t,n,r);return i.west=u.toDegrees(i.west),i.south=u.toDegrees(i.south),i.east=u.toDegrees(i.east),i.north=u.toDegrees(i.north),i},c.prototype.tileXYToRectangle=function(e,t,n,i){var a=this._rectangle,o=this.getNumberOfXTilesAtLevel(n),u=this.getNumberOfYTilesAtLevel(n),c=a.width/o,l=e*c+a.west,f=(e+1)*c+a.west,h=a.height/u,d=a.north-t*h,p=a.north-(t+1)*h;return r(i)||(i=new s(l,p,f,d)),i.west=l,i.south=p,i.east=f,i.north=d,i},c.prototype.positionToTileXY=function(t,n,i){var a=this._rectangle;if(s.contains(a,t)){var o=this.getNumberOfXTilesAtLevel(n),c=this.getNumberOfYTilesAtLevel(n),l=a.width/o,f=a.height/c,h=t.longitude;a.east<a.west&&(h+=u.TWO_PI);var d=(h-a.west)/l|0;d>=o&&(d=o-1);var p=(a.north-t.latitude)/f|0;return p>=c&&(p=c-1),r(i)?(i.x=d,i.y=p,i):new e(d,p)}},c}),define("Core/ApproximateTerrainHeights",["./buildModuleUrl","./defaultValue","./defined","./defineProperties","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./DeveloperError","./Ellipsoid","./GeographicTilingScheme","./Rectangle","./Resource"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d){"use strict";function p(e){u.fromRadians(e.east,e.north,0,v[0]),u.fromRadians(e.west,e.north,0,v[1]),u.fromRadians(e.east,e.south,0,v[2]),u.fromRadians(e.west,e.south,0,v[3]);var t,n=0,r=0,i=0,a=0,o=S._terrainHeightsMaxLevel;for(t=0;t<=o;++t){for(var s=!1,c=0;c<4;++c){var l=v[c];if(A.positionToTileXY(l,t,g),0===c)i=g.x,a=g.y;else if(i!==g.x||a!==g.y){s=!0;break}}if(s)break;n=i,r=a}if(0!==t)return{x:n,y:r,level:t>o?o:t-1}}var E=new o,m=new o,_=new u,y=new o,T=new o,R=new i,A=new f,v=[new u,new u,new u,new u],g=new a,S={};return S.initialize=function(){var t=S._initPromise;return n(t)?t:(t=d.fetchJson(e("Assets/approximateTerrainHeights.json")).then(function(e){S._terrainHeights=e}),S._initPromise=t,t)},S.getMinimumMaximumHeights=function(e,r){r=t(r,l.WGS84);var i=p(e),a=S._defaultMinTerrainHeight,u=S._defaultMaxTerrainHeight;if(n(i)){var s=i.level+"-"+i.x+"-"+i.y,c=S._terrainHeights[s];n(c)&&(a=c[0],u=c[1]),r.cartographicToCartesian(h.northeast(e,_),E),r.cartographicToCartesian(h.southwest(e,_),m),o.midpoint(m,E,y);var f=r.scaleToGeodeticSurface(y,T);if(n(f)){var d=o.distance(y,f);a=Math.min(a,-d)}else a=S._defaultMinTerrainHeight}return a=Math.max(S._defaultMinTerrainHeight,a),{minimumTerrainHeight:a,maximumTerrainHeight:u}},S.getBoundingSphere=function(e,r){r=t(r,l.WGS84);var a=p(e),o=S._defaultMaxTerrainHeight;if(n(a)){var u=a.level+"-"+a.x+"-"+a.y,s=S._terrainHeights[u];n(s)&&(o=s[1])}var c=i.fromRectangle3D(e,r,0);return i.fromRectangle3D(e,r,o,R),i.union(c,R,c)},S._terrainHeightsMaxLevel=6,S._defaultMaxTerrainHeight=9e3,S._defaultMinTerrainHeight=-1e5,S._terrainHeights=void 0,S._initPromise=void 0,r(S,{initialized:{get:function(){return n(S._terrainHeights)}}}),S}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,M=o(e[1]))}return O}function s(){return u()&&M}function c(){if(!t(I)&&(I=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,w=o(e[1]))}return I}function l(){return c()&&w}function f(){if(!t(N)){N=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(N=!0,C=o(e[1]),C.isNightly=!!e[2])}return N}function h(){return f()&&C}function d(){if(!t(P)){P=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(P=!0,x=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(P=!0,x=o(e[1]))}return P}function p(){return d()&&x}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function m(){return E()&&D}function _(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(S.appVersion)),b}function T(){return _()&&F}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function A(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function v(){return A()?q:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,M,I,w,N,C,P,x,U,D,L,F,b,B,q,z;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,E())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:m,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:g,imageRenderingValue:v,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),E=t/4,m=E*E,_=m*E,y=m*m,T=1+E-3*m/4+5*_/4-175*y/64,R=1-E+15*m/8-35*_/8,A=1-3*E+35*m/4,v=1-5*E,g=T*l-R*Math.sin(2*l)*E/2-A*Math.sin(4*l)*m/16-v*Math.sin(6*l)*_/48-5*Math.sin(8*l)*y/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=E,S.u4Over16=m,S.u6Over64=_,S.u8Over256=y,S.a0=T,S.a1=R,S.a2=A,S.a3=v,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,E=a-r,m=Math.atan((1-p)*Math.tan(i)),_=Math.atan((1-p)*Math.tan(o)),y=Math.cos(m),T=Math.sin(m),R=Math.cos(_),A=Math.sin(_),v=y*R,g=y*A,S=T*A,O=T*R,M=E,I=u.TWO_PI,w=Math.cos(M),N=Math.sin(M);do{w=Math.cos(M),N=Math.sin(M);var C=g-O*w;f=Math.sqrt(R*R*N*N+C*C),c=S+v*w,s=Math.atan2(f,c);var P;0===f?(P=0,h=1):(P=v*N/f,h=1-P*P),I=M,d=c-2*S/h,isNaN(d)&&(d=0),M=E+l(p,P,h,s,f,c,d)}while(Math.abs(M-I)>u.EPSILON12);var x=h*(t*t-n*n)/(n*n),U=1+x*(4096+x*(x*(320-175*x)-768))/16384,D=x*(256+x*(x*(74-47*x)-128))/1024,L=d*d,F=D*f*(d+D*(c*(2*L-1)-D*d*(4*f*f-3)*(4*L-3)/6)/4),b=n*U*(s-F),B=Math.atan2(R*N,g-O*w),q=Math.atan2(y*N,g*w-O);e._distance=b,e._startHeading=B,e._endHeading=q,e._uSquared=x}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,E),p),e.normalize(a.cartographicToCartesian(i,E),E);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,E=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){ -var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,E=a*p,m=r.u8Over256,_=r.u2Over4,y=r.u6Over64,T=r.u4Over16,R=2*E*m*o/3+a*(1-_+7*T/4-15*y/4+579*m/64-(T-15*y/4+187*m/16)*o-(5*y/4-115*m/16)*u-29*m*s/16)+(_/2-T+71*y/32-85*m/16)*c+(5*T/16-5*y/4+383*m/96)*f-p*((y-11*m/2)*c+5*m*f/2)+(29*y/96-29*m/16)*h+539*m*d/1536,A=Math.asin(Math.sin(R)*r.cosineAlpha),v=Math.atan(r.a/r.b*Math.tan(A));R-=r.sigma;var g=Math.cos(2*r.sigma+R),S=Math.sin(R),O=Math.cos(R),M=r.cosineU*O,I=r.sineU*S,w=Math.atan2(S*r.sineHeading,M-I*r.cosineHeading),N=w-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,R,S,O,g);return i(n)?(n.longitude=this._start.longitude+N,n.latitude=v,n.height=0,n):new t(this._start.longitude+N,v,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),E=Math.cos(2*r),m=Math.sin(4*r),_=Math.cos(4*r),y=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),A=Math.cos(8*r),v=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*E+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*_+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*A+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*v+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,y),_),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function E(e,n,r,a,o,u){var h,d,p,E=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var m=f(o,e.latitude),_=f(o,d);p=Math.tan(n)*(_-m),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-E*T*T)}p=r/y,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function m(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var _=new e,y=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var _=E(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,_,c):(o.setEndPoints(e,_),o)},m.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return E(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var E=r*Math.sin(c),m=(1+E)/(1-E);p=2*Math.atan(h*Math.pow(m/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},m.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},m}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,n){"use strict";function r(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}r.encode=function(e,t){n(t)||(t={high:0,low:0});var r;return e>=0?(r=65536*Math.floor(e/65536),t.high=r,t.low=e-r):(r=65536*Math.floor(-e/65536),t.high=-r,t.low=e+r),t};var i={high:0,low:0};r.fromCartesian=function(e,t){n(t)||(t=new r);var a=t.high,o=t.low;return r.encode(e.x,i),a.x=i.high,o.x=i.low,r.encode(e.y,i),a.y=i.high,o.y=i.low,r.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new r;return r.writeElements=function(e,t,n){r.fromCartesian(e,a);var i=a.high,o=a.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z},r}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)n=Math.sqrt(E+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,_=0;d>h&&(_=1),p>h&&p>d&&(_=2);var y=m[_],T=m[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,n){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var m=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,m);var u=s.computeAngle(y);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var v=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=v=s.negate(t,v)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,M=new e,I=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,I);s.multiply(a,r,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,M);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,I),s.multiply(n,I,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,I),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var N=new s,C=1.9011074535173003,P=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;P[L]=1/(F*b),x[L]=F/b}return P[7]=C/136,x[7]=8*C/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(P[f]*c-x[f])*o,D[f]=(P[f]*l-x[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,N);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,I),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,E,m,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,v=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":v=s.charAt(S+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,v);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,A,y,c,f,R);case"o":return o(_,8,A,y,c,f,R);case"x":return o(_,16,A,y,c,f,R);case"X":return o(_,16,A,y,c,f,R).toUpperCase();case"u":return o(_,10,A,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),p=d<0?"-":T,_=p+i(String(Math.abs(d)),f,"0",!1),a(_,p,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=p+Math.abs(d)[E](f),a(_,p,y,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){E.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}E.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=E.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-r[0].offset,n);if(i>=r.length)return E.addSeconds(e,-r[i-1].offset,n);var a=E.secondsDifference(r[i].julianDate,e);return 0===a?E.addSeconds(e,-r[i].offset,n):a<=1?void 0:E.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,v=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,M=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;E.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,y=0,S=0,w=u[0],N=u[1];if(null!==(u=w.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var C;if(null!==(u=w.match(A)))n=+u[1],C=+u[2],a=o(n);else if(null!==(u=w.match(v))){n=+u[1];var P=+u[2],x=+u[3]||0,U=new Date(Date.UTC(n,0,4));C=7*P+x-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(N)){u=N.match(I),null!==u?(h=+u[1],m=+u[2],y=+u[3],S=1e3*+(u[4]||0),D=5):(u=N.match(M),null!==u?(h=+u[1],m=+u[2],y=60*+(u[3]||0),D=4):null!==(u=N.match(O))&&(h=+u[1],m=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,m-=b;break;case"-":h+=F,m+=b;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var B=60===y;for(B&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var q=p(n,s,l,h,m,y,S);return r(t)?(d(q[0],q[1],t),f(t)):t=new E(q[0],q[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var w=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(E.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,v=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=_,t.month=m,t.day=p,t.hour=y,t.minute=R,t.second=A,t.millisecond=v,t.isLeapSecond=n,t):new a(_,m,p,y,R,A,v,n)},E.toDate=function(e){var t=E.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},E.toIso8601=function(t,n){var i=E.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(E.secondsDifference(e,t))<=n},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},E.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},E.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},E.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},E.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=m.length;R<A;R+=e._columnCount){var v=m[R+i],g=m[R+E],S=v+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(_.push(O),T){if(g!==y&&r(y)){var M=o.leapSeconds,I=t(M,O,d);if(I<0){var w=new u(O,g);M.splice(~I,0,w)}}y=g}}}function E(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return E(e,n,i,s,u),u;if(r.equals(l))return E(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-p;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=_:_-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]), -u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,p,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),E=p||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,E,m=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)_[p]=m-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=_[E]);T[p]*=y[p];var A=3*(s+p);n.x+=T[p]*d[A++],n.y+=T[p]*d[A++],n.s+=T[p]*d[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,_,y,T,R){"use strict";var A={},v={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},M=new n,I=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!v.hasOwnProperty(e)||!v[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=v[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new y),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(g[e],0,M),"east"!==e&&"west"!==e&&n.multiplyByScalar(M,c,M),n.unpack(g[t],0,I),"east"!==t&&"west"!==t&&n.multiplyByScalar(I,c,I),n.unpack(g[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),M=O[e],I=O[t],w=O[i]}return s[0]=M.x,s[1]=M.y,s[2]=M.z,s[3]=0,s[4]=I.x,s[5]=I.y,s[6]=I.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var N=new T,C=new n(1,1,1),P=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,N),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,C,P);return a=i(e,r,a),y.multiply(a,s,a)};var x=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,x),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,F=new y,b=new y,B=new _,q=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=m.TWO_PI/86400,G=new E;A.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new _,H=new _;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=A.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=p/R.SECONDS_PER_DAY,v=.779057273264+T+.00273781191135448*(y+T);v=v%1*m.TWO_PI;var g=_.fromRotationZ(v,H),S=_.multiply(h,g,X),O=Math.cos(n.xPoleWander),M=Math.cos(n.yPoleWander),I=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),N=r-2451545+i/R.SECONDS_PER_DAY;N/=36525;var C=-47e-6*N*m.RADIANS_PER_DEGREE/3600,P=Math.cos(C),x=Math.sin(C),U=H;return U[0]=O*P,U[1]=O*x,U[2]=I,U[3]=-M*x+w*I*P,U[4]=M*P+w*I*x,U[5]=-w*O,U[6]=-w*x-M*I*P,U[7]=w*P-M*I*x,U[8]=M*O,_.multiply(S,U,t)}}};var k=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=k;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var Y=new n,j=new n,Z=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,Y),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var _=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],v=[new e,new e,new e],g=new t,S=new d,O=new f,M=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,_),h=n.toCartesian(s,a,y),m=E.eastNorthUpToFixedFrame(h,a,T),I=f.inverse(m,T),w=A,N=R;N[0].longitude=o.west,N[0].latitude=o.south,N[1].longitude=o.west,N[1].latitude=o.north,N[2].longitude=o.east,N[2].latitude=o.south;var C=g;for(u=0;u<3;u++)n.toCartesian(N[u],a,C),C=f.multiplyByPointAsVector(I,C,C),w[u].x=C.x,w[u].y=C.y;var P=d.fromAxisAngle(t.UNIT_Z,-i,S),x=l.fromQuaternion(P,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)C=f.multiplyByPointAsVector(I,r[u],C),C=l.multiplyByVector(x,C,C),D=Math.min(D,C.x),L=Math.min(L,C.y),F=Math.max(F,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,M),q=v;q[0].x=D,q[0].y=L,q[1].x=D,q[1].y=b,q[2].x=F,q[2].y=L;var z=w[0],G=w[2].x-z.x,V=w[1].y-z.y;for(u=0;u<3;u++){var W=q[u];c.multiplyByVector(B,W,W),W.x=(W.x-z.x)/G,W.y=(W.y-z.y)/V}var X=q[0],H=q[1],k=q[2],Y=new Array(6);return e.pack(X,Y),e.pack(H,Y,2),e.pack(k,Y,4),Y},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,E=o*c-u*s,m=u*c-d,_=4*p*m-E*E;if(_<0){var y,T,R;h*f>=l*d?(y=o,T=p,R=-2*u*p+o*E):(y=c,T=m,R=-c*E+2*s*m);var A=R<0?-1:1,v=-A*Math.abs(y)*Math.sqrt(-_);a=-R+v;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===v?-S:-T/S;return i=T<=0?S+O:-R/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var M=p,I=-2*u*p+o*E,w=m,N=-c*E+2*s*m,C=Math.sqrt(_),P=Math.sqrt(3)/2,x=Math.abs(Math.atan2(o*C,-I)/3);i=2*Math.sqrt(-M);var U=Math.cos(x);a=i*U;var D=i*(-U/2-P*Math.sin(x)),L=a+D>2*u?a-u:D-u,F=o,b=L/F;x=Math.abs(Math.atan2(c*C,-N)/3),i=2*Math.sqrt(-w),U=Math.cos(x),a=i*U,D=i*(-U/2-P*Math.sin(x));var B=-c,q=a+D<2*s?a+s:D+s,z=B/q,G=F*q,V=-L*q-F*B,W=L*B,X=(s*V-u*W)/(-u*V+s*G);return b<=X?b<=z?X<=z?[b,X,z]:[b,z,X]:[z,b,X]:b<=z?[X,b,z]:X<=z?[X,z,b]:[z,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var E,m=p[0],_=p[1];if(m>=0&&_>=0){var y=Math.sqrt(m),T=Math.sqrt(_);return[h-T,h-y,h+y,h+T]}if(m>=0&&_<0)return E=Math.sqrt(m),[h-E,h+E];if(m<0&&_>=0)return E=Math.sqrt(_),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),A=(s+d-c/R)/2,v=(s+d+c/R)/2,g=r.computeRealRoots(1,R,A),S=r.computeRealRoots(1,-R,v);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,E,m=d[0],_=i-m,y=_*_,T=t/2,R=_/2,A=y-4*o,v=y+4*Math.abs(o),g=c-4*m,S=c+4*Math.abs(m);if(m<0||A*S<g*v){var O=Math.sqrt(g);p=O/2,E=0===O?0:(t*R-a)/O}else{var M=Math.sqrt(A);p=0===M?0:(t*R-a)/M,E=M/2}var I,w;0===T&&0===p?(I=0,w=0):n.sign(T)===n.sign(p)?(I=T+p,w=m/I):(w=T-p,I=m/w);var N,C;0===R&&0===E?(N=0,C=0):n.sign(R)===n.sign(E)?(N=R+E,C=o/N):(C=R-E,N=o/C);var P=r.computeRealRoots(1,I,N),x=r.computeRealRoots(1,w,C);if(0!==P.length)return 0!==x.length?P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>x[0]&&P[0]<x[1]?[x[0],P[0],x[1],P[1]]:[P[0],x[0],P[1],x[1]]:P;if(0!==x.length)return x}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,y),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,E=f(h,d,p,v);if(r(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),m=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===y&&0===_){if(l=s.computeRealRoots(p,E,m),0===l.length)return T;var R=l[0],A=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-A)),T.push(new e(i,a*R,a*A)),2===l.length){var v=l[1],g=Math.sqrt(Math.max(1-v*v,0));T.push(new e(i,a*v,a*-g)),T.push(new e(i,a*v,a*g))}return T}var S=y*y,O=_*_,M=p*p,I=y*_,w=M+O,N=2*(E*p+I),C=2*m*p+E*E-O+S,P=2*(m*E-I),x=m*m-S;if(0===w&&0===N&&0===C&&0===P)return T;l=c.computeRealRoots(w,N,C,P,x);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var L,F=l[D],b=F*F,B=Math.max(1-b,0),q=Math.sqrt(B);L=o.sign(p)===o.sign(m)?d(p*b+m,E*F,o.EPSILON12):o.sign(m)===o.sign(E*F)?d(p*b,E*F+m,o.EPSILON12):d(p*b+E*F,m,o.EPSILON12);var z=d(_*F,y,o.EPSILON15),G=L*z;G<0?T.push(new e(i,a*F,a*q)):G>0?T.push(new e(i,a*F,a*-q)):0!==q?(T.push(new e(i,a*F,a*-q)),T.push(new e(i,a*F,a*q)),++D):T.push(new e(i,a*F,a*q))}return T}var E={};E.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var m=new e,_=new e,y=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,E=e.subtract(i,r,m),A=e.subtract(a,r,_),v=e.cross(p,A,y),g=e.dot(E,v);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,v))<0||l>g)return;if(c=e.cross(s,E,R),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(A,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,v)*S)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(A,c)*S}return h},E.rayTriangle=function(t,n,i,a,o,u){var s=E.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;E.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var v={root0:0,root1:0};E.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;E.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;E.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,m=r/s;return E<m?new a(E,m):{start:m,stop:E}}var _=Math.sqrt(r/i);return new a(_,_)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var M=new e,I=new e,w=new e,N=new e,C=new e,P=new u,x=new u,U=new u,D=new u,L=new u,F=new u,b=new u,B=new e,q=new e,z=new t;E.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,M);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,M),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,N),d=e.normalize(e.cross(h,f,I),I),E=e.normalize(e.cross(f,d,w),w),m=P;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=E.x,m[7]=E.y,m[8]=E.z;var _=u.transpose(m,x),y=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=L;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var A,v,g=u.multiply(u.multiply(_,T,F),R,F),S=u.multiply(u.multiply(g,y,b),m,b),O=u.multiplyByVector(g,i,C),G=p(S,e.negate(O,M),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,q),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(y,u.multiplyByVector(m,G[H],B),B);var k=e.normalize(e.subtract(A,i,N),N),Y=e.dot(k,a);Y>X&&(X=Y,W=e.clone(A,W))}var j=n.cartesianToCartographic(W,z);return X=o.clamp(X,0,1),v=e.magnitude(e.subtract(W,i,N))*Math.sqrt(1-X*X),v=c?-v:v,j.height=v,n.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},s.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},s}),define("Core/GroundPolylineGeometry",["./ApproximateTerrainHeights","./ArcType","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./DeveloperError","./Math","./defaultValue","./defined","./defineProperties","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./IntersectionTests","./Matrix3","./Plane","./Quaternion","./Rectangle","./WebMercatorProjection"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,_,y,T,R,A,v,g,S,O){"use strict";function M(e){e=l(e,l.EMPTY_OBJECT);var n=e.positions;this.width=l(e.width,1),this._positions=n,this.granularity=l(e.granularity,9999),this.loop=l(e.loop,!1),this.arcType=l(e.arcType,t.GEODESIC),this._ellipsoid=d.WGS84,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}function I(e,t,n,r,a){var o=N(r,e,0,H),u=N(r,e,n,k),s=N(r,t,0,Y),c=C(u,o,k),l=C(s,o,Y);return i.cross(l,c,a),i.normalize(a,a)}function w(e,n,r,a,o,u,s,c,l,f,h){if(0!==o){var d;u===t.GEODESIC?d=new p(e,n,s):u===t.RHUMB&&(d=new E(e,n,s));var m=d.surfaceDistance;if(!(m<o))for(var _=I(e,n,a,s,J),y=Math.ceil(m/o),T=m/y,R=T,A=y-1,v=c.length,g=0;g<A;g++){var S=d.interpolateUsingSurfaceDistance(R,j),O=N(s,S,r,Z),M=N(s,S,a,K);i.pack(_,c,v),i.pack(O,l,v),i.pack(M,f,v),h.push(S.latitude),h.push(S.longitude),v+=3,R+=T}}}function N(e,t,n,r){return a.clone(t,Q),Q.height=n,a.toCartesian(Q,e,r)}function C(e,t,n){return i.subtract(e,t,n),i.normalize(n,n),n}function P(e,t,n,r,a){var o=C(n,t,ie),u=C(e,t,$),s=C(r,t,ee),l=i.cross(o,u,ne);l=i.normalize(l,l);var f=v.fromPointNormal(t,l,re),h=v.getPointDistance(f,r);if(c.equalsEpsilon(h,0,c.EPSILON7))return i.clone(l,a),a;a=i.add(s,u,a),a=i.normalize(a,a);var d=i.cross(o,a,te);return i.normalize(d,d),i.cross(d,o,a),i.normalize(a,a),i.dot(s,d)<ae&&(a=i.negate(a,a)),a}function x(e,t,n,r){var a=C(n,t,me),o=i.dot(a,e);if(o>G||o<V){var u=C(r,n,ie),s=o<V?c.PI_OVER_TWO:-c.PI_OVER_TWO,l=g.fromAxisAngle(u,s,ye),f=A.fromQuaternion(l,_e);return A.multiplyByVector(f,e,e),!0}return!1}function U(e,t,n,r,o){var u=a.toCartesian(t,e._ellipsoid,Re),s=i.add(u,n,Ae),l=!1,f=e._ellipsoid,h=f.cartesianToCartographic(s,Te);Math.abs(t.longitude-h.longitude)>c.PI_OVER_TWO&&(l=!0,s=i.subtract(u,n,Ae),h=f.cartesianToCartographic(s,Te)),h.height=0;var d=e.project(h,o);return o=i.subtract(d,r,o),o.z=0,o=i.normalize(o,o),l&&i.negate(o,o),o}function D(e,t,n,r,a,o){var u=i.subtract(t,e,ve);i.normalize(u,u);var s=n-W,c=i.multiplyByScalar(u,s,ge);i.add(e,c,a);var l=r-X;c=i.multiplyByScalar(u,l,ge),i.add(t,c,o)}function L(e,t){var n=v.getPointDistance(oe,e),r=v.getPointDistance(oe,t),a=Se;c.equalsEpsilon(n,0,c.EPSILON2)?(a=C(t,e,a),i.multiplyByScalar(a,c.EPSILON2,a),i.add(e,a,e)):c.equalsEpsilon(r,0,c.EPSILON2)&&(a=C(e,t,a),i.multiplyByScalar(a,c.EPSILON2,a),i.add(t,a,t))}function F(e,t){var n=Math.abs(e.longitude),r=Math.abs(t.longitude);if(c.equalsEpsilon(n,c.PI,c.EPSILON11)){var i=c.sign(t.longitude);return e.longitude=i*(n-c.EPSILON11),1}if(c.equalsEpsilon(r,c.PI,c.EPSILON11)){var a=c.sign(e.longitude);return t.longitude=a*(r-c.EPSILON11),2}return 0}function b(t,n,a,o,s,l,f){var h,d,p,E,_,R,A=n._ellipsoid,v=a.length/3-1,g=8*v,O=4*g,M=36*v,I=g>65535?new Uint32Array(M):new Uint16Array(M),w=new Float64Array(3*g),N=new Float32Array(O),P=new Float32Array(O),b=new Float32Array(O),q=new Float32Array(O),z=new Float32Array(O);f&&(p=new Float32Array(O),E=new Float32Array(O),_=new Float32Array(O),R=new Float32Array(2*g)) -;var V=l.length/2,W=0,X=Oe;X.height=0;var H=Me;H.height=0;var k=Ie,Y=we;if(f)for(d=0,h=1;h<V;h++)X.latitude=l[d],X.longitude=l[d+1],H.latitude=l[d+2],H.longitude=l[d+3],k=n.project(X,k),Y=n.project(H,Y),W+=i.distance(k,Y),d+=2;var j=o.length/3;Y=i.unpack(o,0,Y);var Z=0;for(d=3,h=1;h<j;h++)k=i.clone(Y,k),Y=i.unpack(o,d,Y),Z+=i.distance(k,Y),d+=3;var K;d=3;var J=0,Q=0,$=0,ee=0,te=!1,ne=i.unpack(a,0,Ce),re=i.unpack(o,0,we),ie=i.unpack(s,0,xe);if(t){x(ie,i.unpack(a,a.length-6,Ne),ne,re)&&(ie=i.negate(ie,ie))}var ae=0,oe=0,ue=0;for(h=0;h<v;h++){var se=i.clone(ne,Ne),ce=i.clone(re,Ie),le=i.clone(ie,Pe);te&&(le=i.negate(le,le)),ne=i.unpack(a,d,Ce),re=i.unpack(o,d,we),ie=i.unpack(s,d,xe),te=x(ie,se,ne,re),X.latitude=l[J],X.longitude=l[J+1],H.latitude=l[J+2],H.longitude=l[J+3];var fe,he,de,pe;if(f){var Ee=F(X,H);fe=n.project(X,qe),he=n.project(H,ze);var me=C(he,fe,Je);me.y=Math.abs(me.y),de=Ge,pe=Ve,0===Ee||i.dot(me,i.UNIT_Y)>G?(de=U(n,X,le,fe,Ge),pe=U(n,H,ie,he,Ve)):1===Ee?(pe=U(n,H,ie,he,Ve),de.x=0,de.y=c.sign(X.longitude-Math.abs(H.longitude)),de.z=0):(de=U(n,X,le,fe,Ge),pe.x=0,pe.y=c.sign(X.longitude-H.longitude),pe.z=0)}var _e=i.distance(ce,re),ye=m.fromCartesian(se,Ze),Te=i.subtract(ne,se,We),Re=i.normalize(Te,ke),Ae=i.subtract(ce,se,Xe);Ae=i.normalize(Ae,Ae);var ve=i.cross(Re,Ae,ke);ve=i.normalize(ve,ve);var ge=i.cross(Ae,le,Ye);ge=i.normalize(ge,ge);var Se=i.subtract(re,ne,He);Se=i.normalize(Se,Se);var rt=i.cross(ie,Se,je);rt=i.normalize(rt,rt);var it,at,ot,ut=_e/Z,st=ae/Z,ct=0,lt=0,ft=0;if(f){ct=i.distance(fe,he),it=m.fromCartesian(fe,Ke),at=i.subtract(he,fe,Je),ot=i.normalize(at,Qe);var ht=ot.x;ot.x=ot.y,ot.y=-ht,lt=ct/W,ft=oe/W}for(K=0;K<8;K++){var dt=ee+4*K,pt=Q+2*K,Et=dt+3,mt=K<4?1:-1,_t=2===K||3===K||6===K||7===K?1:-1;i.pack(ye.high,N,dt),N[Et]=Te.x,i.pack(ye.low,P,dt),P[Et]=Te.y,i.pack(ge,b,dt),b[Et]=Te.z,i.pack(rt,q,dt),q[Et]=ut*mt,i.pack(ve,z,dt);var yt=st*_t;0===yt&&_t<0&&(yt=Number.POSITIVE_INFINITY),z[Et]=yt,f&&(p[dt]=it.high.x,p[dt+1]=it.high.y,p[dt+2]=it.low.x,p[dt+3]=it.low.y,_[dt]=-de.y,_[dt+1]=de.x,_[dt+2]=pe.y,_[dt+3]=-pe.x,E[dt]=at.x,E[dt+1]=at.y,E[dt+2]=ot.x,E[dt+3]=ot.y,R[pt]=lt*mt,yt=ft*_t,0===yt&&_t<0&&(yt=Number.POSITIVE_INFINITY),R[pt+1]=yt)}var Tt=be,Rt=Be,At=Le,vt=Fe,gt=S.fromCartographicArray(Ue,De),St=e.getMinimumMaximumHeights(gt,A),Ot=St.minimumTerrainHeight,Mt=St.maximumTerrainHeight;ue+=Ot,ue+=Mt,D(se,ce,Ot,Mt,Tt,At),D(ne,re,Ot,Mt,Rt,vt);var It=i.multiplyByScalar(ve,c.EPSILON5,$e);i.add(Tt,It,Tt),i.add(Rt,It,Rt),i.add(At,It,At),i.add(vt,It,vt),L(Tt,Rt),L(At,vt),i.pack(Tt,w,$),i.pack(Rt,w,$+3),i.pack(vt,w,$+6),i.pack(At,w,$+9),It=i.multiplyByScalar(ve,-2*c.EPSILON5,$e),i.add(Tt,It,Tt),i.add(Rt,It,Rt),i.add(At,It,At),i.add(vt,It,vt),L(Tt,Rt),L(At,vt),i.pack(Tt,w,$+12),i.pack(Rt,w,$+15),i.pack(vt,w,$+18),i.pack(At,w,$+21),J+=2,d+=3,Q+=16,$+=24,ee+=32,ae+=_e,oe+=ct}d=0;var wt=0;for(h=0;h<v;h++){for(K=0;K<nt;K++)I[d+K]=tt[K]+wt;wt+=8,d+=nt}var Nt=et;r.fromVertices(a,i.ZERO,3,Nt[0]),r.fromVertices(o,i.ZERO,3,Nt[1]);var Ct=r.fromBoundingSpheres(Nt);Ct.radius+=ue/(2*v);var Pt={position:new T({componentDatatype:u.DOUBLE,componentsPerAttribute:3,normalize:!1,values:w}),startHiAndForwardOffsetX:B(N),startLoAndForwardOffsetY:B(P),startNormalAndForwardOffsetZ:B(b),endNormalAndTextureCoordinateNormalizationX:B(q),rightNormalAndTextureCoordinateNormalizationY:B(z)};return f&&(Pt.startHiLo2D=B(p),Pt.offsetAndRight2D=B(E),Pt.startEndNormals2D=B(_),Pt.texcoordNormalization2D=new T({componentDatatype:u.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new y({attributes:Pt,indices:I,boundingSphere:Ct})}function B(e){return new T({componentDatatype:u.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}var q=[_,O],z=q.length,G=Math.cos(c.toRadians(30)),V=Math.cos(c.toRadians(150)),W=0,X=1e3;h(M.prototype,{packedLength:{get:function(){return 1+3*this._positions.length+1+1+1+d.packedLength+1+1}}}),M.setProjectionAndEllipsoid=function(e,t){for(var n=0,r=0;r<z;r++)if(t instanceof q[r]){n=r;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var H=new i,k=new i,Y=new i,j=new a,Z=new i,K=new i,J=new i,Q=new a;M.pack=function(e,t,n){var r=l(n,0),a=e._positions,o=a.length;t[r++]=o;for(var u=0;u<o;++u){var s=a[u];i.pack(s,t,r),r+=3}return t[r++]=e.granularity,t[r++]=e.loop?1:0,t[r++]=e.arcType,d.pack(e._ellipsoid,t,r),r+=d.packedLength,t[r++]=e._projectionIndex,t[r++]=e._scene3DOnly?1:0,t},M.unpack=function(e,t,n){for(var r=l(t,0),a=e[r++],o=new Array(a),u=0;u<a;u++)o[u]=i.unpack(e,r),r+=3;var s=e[r++],c=1===e[r++],h=e[r++],p=d.unpack(e,r);r+=d.packedLength;var E=e[r++],m=1===e[r++];return f(n)||(n=new M({positions:o})),n._positions=o,n.granularity=s,n.loop=c,n.arcType=h,n._ellipsoid=p,n._projectionIndex=E,n._scene3DOnly=m,n};var $=new i,ee=new i,te=new i,ne=new i,re=new v(i.UNIT_X,0),ie=new i,ae=0,oe=v.fromPointNormal(i.ZERO,i.UNIT_Y),ue=new i,se=new i,ce=new i,le=new i,fe=new i,he=new i,de=new a,pe=new a,Ee=new a;M.createGeometry=function(e){var r,o,u=!e._scene3DOnly,s=e.loop,l=e._ellipsoid,h=e.granularity,d=e.arcType,p=new q[e._projectionIndex](l),m=W,_=X,y=e._positions,T=y.length;2===T&&(s=!1);var A,v,g,S,O,M,C,x=new E(void 0,void 0,l),U=[y[0]];for(o=0;o<T-1;o++)A=y[o],v=y[o+1],O=R.lineSegmentPlane(A,v,oe,he),!f(O)||i.equalsEpsilon(O,A,c.EPSILON7)||i.equalsEpsilon(O,v,c.EPSILON7)||(e.arcType===t.GEODESIC?U.push(i.clone(O)):e.arcType===t.RHUMB&&(C=l.cartesianToCartographic(O,de).longitude,g=l.cartesianToCartographic(A,de),S=l.cartesianToCartographic(v,pe),x.setEndPoints(g,S),M=x.findIntersectionWithLongitude(C,Ee),O=l.cartographicToCartesian(M,he),!f(O)||i.equalsEpsilon(O,A,c.EPSILON7)||i.equalsEpsilon(O,v,c.EPSILON7)||U.push(i.clone(O)))),U.push(v);s&&(A=y[T-1],v=y[0],O=R.lineSegmentPlane(A,v,oe,he),!f(O)||i.equalsEpsilon(O,A,c.EPSILON7)||i.equalsEpsilon(O,v,c.EPSILON7)||(e.arcType===t.GEODESIC?U.push(i.clone(O)):e.arcType===t.RHUMB&&(C=l.cartesianToCartographic(O,de).longitude,g=l.cartesianToCartographic(A,de),S=l.cartesianToCartographic(v,pe),x.setEndPoints(g,S),M=x.findIntersectionWithLongitude(C,Ee),O=l.cartographicToCartesian(M,he),!f(O)||i.equalsEpsilon(O,A,c.EPSILON7)||i.equalsEpsilon(O,v,c.EPSILON7)||U.push(i.clone(O)))));var D=U.length,L=new Array(D);for(o=0;o<D;o++){var F=a.fromCartesian(U[o],l);F.height=0,L[o]=F}if(L=n(L,a.equalsEpsilon),!((D=L.length)<2)){var B=[],z=[],G=[],V=[],H=ue,k=se,Y=ce,j=le,Z=fe,K=L[0],J=L[1],Q=L[D-1];for(H=N(l,Q,m,H),j=N(l,J,m,j),k=N(l,K,m,k),Y=N(l,K,_,Y),Z=s?P(H,k,Y,j,Z):I(K,J,_,l,Z),i.pack(Z,z,0),i.pack(k,G,0),i.pack(Y,V,0),B.push(K.latitude),B.push(K.longitude),w(K,J,m,_,h,d,l,z,G,V,B),o=1;o<D-1;++o){H=i.clone(k,H),k=i.clone(j,k);var $=L[o];N(l,$,_,Y),N(l,L[o+1],m,j),P(H,k,Y,j,Z),r=z.length,i.pack(Z,z,r),i.pack(k,G,r),i.pack(Y,V,r),B.push($.latitude),B.push($.longitude),w(L[o],L[o+1],m,_,h,d,l,z,G,V,B)}var ee=L[D-1],te=L[D-2];if(k=N(l,ee,m,k),Y=N(l,ee,_,Y),s){var ne=L[0];H=N(l,te,m,H),j=N(l,ne,m,j),Z=P(H,k,Y,j,Z)}else Z=I(te,ee,_,l,Z);if(r=z.length,i.pack(Z,z,r),i.pack(k,G,r),i.pack(Y,V,r),B.push(ee.latitude),B.push(ee.longitude),s){for(w(ee,K,m,_,h,d,l,z,G,V,B),r=z.length,o=0;o<3;++o)z[r+o]=z[o],G[r+o]=G[o],V[r+o]=V[o];B.push(K.latitude),B.push(K.longitude)}return b(s,p,G,V,z,B,u)}};var me=new i,_e=new A,ye=new g,Te=new a,Re=new i,Ae=new i,ve=new i,ge=new i,Se=new i,Oe=new a,Me=new a,Ie=new i,we=new i,Ne=new i,Ce=new i,Pe=new i,xe=new i,Ue=[Oe,Me],De=new S,Le=new i,Fe=new i,be=new i,Be=new i,qe=new i,ze=new i,Ge=new i,Ve=new i,We=new i,Xe=new i,He=new i,ke=new i,Ye=new i,je=new i,Ze=new m,Ke=new m,Je=new i,Qe=new i,$e=new i,et=[new r,new r],tt=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],nt=tt.length;return M._projectNormal=U,M}),define("Workers/createGroundPolylineGeometry",["../Core/ApproximateTerrainHeights","../Core/defined","../Core/GroundPolylineGeometry"],function(e,t,n){"use strict";function r(r,i){return e.initialize().then(function(){return t(i)&&(r=n.unpack(r,i)),n.createGeometry(r)})}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as _e}from"./chunk-ZEP44EYN.js";import{a as Z}from"./chunk-E3BAMNKM.js";import{a as _t}from"./chunk-3EKULFHC.js";import{a as Oe}from"./chunk-6DBAMVE2.js";import{a as Le}from"./chunk-BRFVOFKF.js";import{a as te}from"./chunk-XDFUUQMZ.js";import{b as Qt}from"./chunk-UKQRKTK2.js";import{a as jt}from"./chunk-LNO7O274.js";import{c as Ce,d as zt}from"./chunk-2HSPJH3C.js";import{a as bt,d as G}from"./chunk-T5AUOWE7.js";import{d as xe,e as Ne,f as Kt,i as U}from"./chunk-Y5B6Y3WD.js";import{a as Bt}from"./chunk-6QVIJ7JA.js";import{a as t,b as u,c as Pt,d as z,e as vt}from"./chunk-AODSXSC5.js";import{a as p}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as O}from"./chunk-WHQYJFDH.js";import{a as St,b as et}from"./chunk-OYWUGDKS.js";import{e as g}from"./chunk-DRYFJEFT.js";function rt(e){e=O(e,O.EMPTY_OBJECT),this._ellipsoid=O(e.ellipsoid,z.default),this._rectangle=O(e.rectangle,U.MAX_VALUE),this._projection=new bt(this._ellipsoid),this._numberOfLevelZeroTilesX=O(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=O(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(rt.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});rt.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};rt.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};rt.prototype.rectangleToNativeRectangle=function(e,i){et.defined("rectangle",e);let r=p.toDegrees(e.west),n=p.toDegrees(e.south),o=p.toDegrees(e.east),a=p.toDegrees(e.north);return g(i)?(i.west=r,i.south=n,i.east=o,i.north=a,i):new U(r,n,o,a)};rt.prototype.tileXYToNativeRectangle=function(e,i,r,n){let o=this.tileXYToRectangle(e,i,r,n);return o.west=p.toDegrees(o.west),o.south=p.toDegrees(o.south),o.east=p.toDegrees(o.east),o.north=p.toDegrees(o.north),o};rt.prototype.tileXYToRectangle=function(e,i,r,n){let o=this._rectangle,a=this.getNumberOfXTilesAtLevel(r),c=this.getNumberOfYTilesAtLevel(r),l=o.width/a,s=e*l+o.west,d=(e+1)*l+o.west,h=o.height/c,N=o.north-i*h,S=o.north-(i+1)*h;return g(n)||(n=new U(s,S,d,N)),n.west=s,n.south=S,n.east=d,n.north=N,n};rt.prototype.positionToTileXY=function(e,i,r){let n=this._rectangle;if(!U.contains(n,e))return;let o=this.getNumberOfXTilesAtLevel(i),a=this.getNumberOfYTilesAtLevel(i),c=n.width/o,l=n.height/a,s=e.longitude;n.east<n.west&&(s+=p.TWO_PI);let d=(s-n.west)/c|0;d>=o&&(d=o-1);let h=(n.north-e.latitude)/l|0;return h>=a&&(h=a-1),g(r)?(r.x=d,r.y=h,r):new Pt(d,h)};var De=rt;var Ie=new t,He=new t,ke=new u,ee=new t,hn=new t,ye=new G,pn=new De,Lt=[new u,new u,new u,new u],Ot=new Pt,w={};w.initialize=function(){let e=w._initPromise;return g(e)||(e=xe.fetchJson(Ne("Assets/approximateTerrainHeights.json")).then(function(i){w._terrainHeights=i}),w._initPromise=e),e};w.getMinimumMaximumHeights=function(e,i){if(et.defined("rectangle",e),!g(w._terrainHeights))throw new St("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");i=O(i,z.default);let r=Ae(e),n=w._defaultMinTerrainHeight,o=w._defaultMaxTerrainHeight;if(g(r)){let a=`${r.level}-${r.x}-${r.y}`,c=w._terrainHeights[a];g(c)&&(n=c[0],o=c[1]),i.cartographicToCartesian(U.northeast(e,ke),Ie),i.cartographicToCartesian(U.southwest(e,ke),He),t.midpoint(He,Ie,ee);let l=i.scaleToGeodeticSurface(ee,hn);if(g(l)){let s=t.distance(ee,l);n=Math.min(n,-s)}else n=w._defaultMinTerrainHeight}return n=Math.max(w._defaultMinTerrainHeight,n),{minimumTerrainHeight:n,maximumTerrainHeight:o}};w.getBoundingSphere=function(e,i){if(et.defined("rectangle",e),!g(w._terrainHeights))throw new St("You must call ApproximateTerrainHeights.initialize and wait for the promise to resolve before using this function");i=O(i,z.default);let r=Ae(e),n=w._defaultMaxTerrainHeight;if(g(r)){let a=`${r.level}-${r.x}-${r.y}`,c=w._terrainHeights[a];g(c)&&(n=c[1])}let o=G.fromRectangle3D(e,i,0);return G.fromRectangle3D(e,i,n,ye),G.union(o,ye,o)};function Ae(e){u.fromRadians(e.east,e.north,0,Lt[0]),u.fromRadians(e.west,e.north,0,Lt[1]),u.fromRadians(e.east,e.south,0,Lt[2]),u.fromRadians(e.west,e.south,0,Lt[3]);let i=0,r=0,n=0,o=0,a=w._terrainHeightsMaxLevel,c;for(c=0;c<=a;++c){let l=!1;for(let s=0;s<4;++s){let d=Lt[s];if(pn.positionToTileXY(d,c,Ot),s===0)n=Ot.x,o=Ot.y;else if(n!==Ot.x||o!==Ot.y){l=!0;break}}if(l)break;i=n,r=o}if(c!==0)return{x:i,y:r,level:c>a?a:c-1}}w._terrainHeightsMaxLevel=6;w._defaultMaxTerrainHeight=9e3;w._defaultMinTerrainHeight=-1e5;w._terrainHeights=void 0;w._initPromise=void 0;Object.defineProperties(w,{initialized:{get:function(){return g(w._terrainHeights)}}});var Xt=w;var le=[bt,_e],dn=le.length,Ke=Math.cos(p.toRadians(30)),Me=Math.cos(p.toRadians(150)),Qe=0,tn=1e3;function ct(e){e=O(e,O.EMPTY_OBJECT);let i=e.positions;if(!g(i)||i.length<2)throw new St("At least two positions are required.");if(g(e.arcType)&&e.arcType!==Z.GEODESIC&&e.arcType!==Z.RHUMB)throw new St("Valid options for arcType are ArcType.GEODESIC and ArcType.RHUMB.");this.width=O(e.width,1),this._positions=i,this.granularity=O(e.granularity,9999),this.loop=O(e.loop,!1),this.arcType=O(e.arcType,Z.GEODESIC),this._ellipsoid=z.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(ct.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+z.packedLength+1+1}}});ct.setProjectionAndEllipsoid=function(e,i){let r=0;for(let n=0;n<dn;n++)if(i instanceof le[n]){r=n;break}e._projectionIndex=r,e._ellipsoid=i.ellipsoid};var fn=new t,Re=new t,Pe=new t;function se(e,i,r,n,o){let a=P(n,e,0,fn),c=P(n,e,r,Re),l=P(n,i,0,Pe),s=nt(c,a,Re),d=nt(l,a,Pe);return t.cross(d,s,o),t.normalize(o,o)}var mn=new u,gn=new t,un=new t,wn=new t;function ne(e,i,r,n,o,a,c,l,s,d,h){if(o===0)return;let N;a===Z.GEODESIC?N=new Oe(e,i,c):a===Z.RHUMB&&(N=new te(e,i,c));let S=N.surfaceDistance;if(S<o)return;let R=se(e,i,n,c,wn),D=Math.ceil(S/o),I=S/D,j=I,q=D-1,f=l.length;for(let X=0;X<q;X++){let v=N.interpolateUsingSurfaceDistance(j,mn),y=P(c,v,r,gn),H=P(c,v,n,un);t.pack(R,l,f),t.pack(y,s,f),t.pack(H,d,f),h.push(v.latitude),h.push(v.longitude),f+=3,j+=I}}var oe=new u;function P(e,i,r,n){return u.clone(i,oe),oe.height=r,u.toCartesian(oe,e,n)}ct.pack=function(e,i,r){et.typeOf.object("value",e),et.defined("array",i);let n=O(r,0),o=e._positions,a=o.length;i[n++]=a;for(let c=0;c<a;++c){let l=o[c];t.pack(l,i,n),n+=3}return i[n++]=e.granularity,i[n++]=e.loop?1:0,i[n++]=e.arcType,z.pack(e._ellipsoid,i,n),n+=z.packedLength,i[n++]=e._projectionIndex,i[n++]=e._scene3DOnly?1:0,i};ct.unpack=function(e,i,r){et.defined("array",e);let n=O(i,0),o=e[n++],a=new Array(o);for(let S=0;S<o;S++)a[S]=t.unpack(e,n),n+=3;let c=e[n++],l=e[n++]===1,s=e[n++],d=z.unpack(e,n);n+=z.packedLength;let h=e[n++],N=e[n++]===1;return g(r)||(r=new ct({positions:a})),r._positions=a,r.granularity=c,r.loop=l,r.arcType=s,r._ellipsoid=d,r._projectionIndex=h,r._scene3DOnly=N,r};function nt(e,i,r){return t.subtract(e,i,r),t.normalize(r,r),r}function be(e,i,r,n){return n=nt(e,i,n),n=t.cross(n,r,n),n=t.normalize(n,n),n=t.cross(r,n,n),n}var Sn=new t,Tn=new t,En=new t,en=new t,xn=0,Nn=-1;function ie(e,i,r,n,o){let a=nt(r,i,en),c=be(e,i,a,Sn),l=be(n,i,a,Tn);if(p.equalsEpsilon(t.dot(c,l),Nn,p.EPSILON5))return o=t.cross(a,c,o),o=t.normalize(o,o),o;o=t.add(l,c,o),o=t.normalize(o,o);let s=t.cross(a,o,En);return t.dot(l,s)<xn&&(o=t.negate(o,o)),o}var Gt=jt.fromPointNormal(t.ZERO,t.UNIT_Y),Cn=new t,_n=new t,Ln=new t,On=new t,Dn=new t,Yt=new t,Ft=new u,ve=new u,Be=new u;ct.createGeometry=function(e){let i=!e._scene3DOnly,r=e.loop,n=e._ellipsoid,o=e.granularity,a=e.arcType,c=new le[e._projectionIndex](n),l=Qe,s=tn,d,h,N=e._positions,S=N.length;S===2&&(r=!1);let R,D,I,j,q=new te(void 0,void 0,n),f,X,v,y=[N[0]];for(h=0;h<S-1;h++)R=N[h],D=N[h+1],f=Qt.lineSegmentPlane(R,D,Gt,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&(e.arcType===Z.GEODESIC?y.push(t.clone(f)):e.arcType===Z.RHUMB&&(v=n.cartesianToCartographic(f,Ft).longitude,I=n.cartesianToCartographic(R,Ft),j=n.cartesianToCartographic(D,ve),q.setEndPoints(I,j),X=q.findIntersectionWithLongitude(v,Be),f=n.cartographicToCartesian(X,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&y.push(t.clone(f)))),y.push(D);r&&(R=N[S-1],D=N[0],f=Qt.lineSegmentPlane(R,D,Gt,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&(e.arcType===Z.GEODESIC?y.push(t.clone(f)):e.arcType===Z.RHUMB&&(v=n.cartesianToCartographic(f,Ft).longitude,I=n.cartesianToCartographic(R,Ft),j=n.cartesianToCartographic(D,ve),q.setEndPoints(I,j),X=q.findIntersectionWithLongitude(v,Be),f=n.cartographicToCartesian(X,Yt),g(f)&&!t.equalsEpsilon(f,R,p.EPSILON7)&&!t.equalsEpsilon(f,D,p.EPSILON7)&&y.push(t.clone(f)))));let H=y.length,C=new Array(H);for(h=0;h<H;h++){let F=u.fromCartesian(y[h],n);F.height=0,C[h]=F}if(C=Le(C,u.equalsEpsilon),H=C.length,H<2)return;let k=[],b=[],B=[],E=[],x=Cn,L=_n,_=Ln,Y=On,A=Dn,m=C[0],V=C[1],It=C[H-1];for(x=P(n,It,l,x),Y=P(n,V,l,Y),L=P(n,m,l,L),_=P(n,m,s,_),r?A=ie(x,L,_,Y,A):A=se(m,V,s,n,A),t.pack(A,b,0),t.pack(L,B,0),t.pack(_,E,0),k.push(m.latitude),k.push(m.longitude),ne(m,V,l,s,o,a,n,b,B,E,k),h=1;h<H-1;++h){x=t.clone(L,x),L=t.clone(Y,L);let F=C[h];P(n,F,s,_),P(n,C[h+1],l,Y),ie(x,L,_,Y,A),d=b.length,t.pack(A,b,d),t.pack(L,B,d),t.pack(_,E,d),k.push(F.latitude),k.push(F.longitude),ne(C[h],C[h+1],l,s,o,a,n,b,B,E,k)}let M=C[H-1],Tt=C[H-2];if(L=P(n,M,l,L),_=P(n,M,s,_),r){let F=C[0];x=P(n,Tt,l,x),Y=P(n,F,l,Y),A=ie(x,L,_,Y,A)}else A=se(Tt,M,s,n,A);if(d=b.length,t.pack(A,b,d),t.pack(L,B,d),t.pack(_,E,d),k.push(M.latitude),k.push(M.longitude),r){for(ne(M,m,l,s,o,a,n,b,B,E,k),d=b.length,h=0;h<3;++h)b[d+h]=b[h],B[d+h]=B[h],E[d+h]=E[h];k.push(m.latitude),k.push(m.longitude)}return Qn(r,c,B,E,b,k,i)};var In=new t,Hn=new vt,kn=new Kt;function ze(e,i,r,n){let o=nt(r,i,In),a=t.dot(o,e);if(a>Ke||a<Me){let c=nt(n,r,en),l=a<Me?p.PI_OVER_TWO:-p.PI_OVER_TWO,s=Kt.fromAxisAngle(c,l,kn),d=vt.fromQuaternion(s,Hn);return vt.multiplyByVector(d,e,e),!0}return!1}var je=new u,yn=new t,Xe=new t;function Dt(e,i,r,n,o){let a=u.toCartesian(i,e._ellipsoid,yn),c=t.add(a,r,Xe),l=!1,s=e._ellipsoid,d=s.cartesianToCartographic(c,je);Math.abs(i.longitude-d.longitude)>p.PI_OVER_TWO&&(l=!0,c=t.subtract(a,r,Xe),d=s.cartesianToCartographic(c,je)),d.height=0;let h=e.project(d,o);return o=t.subtract(h,n,o),o.z=0,o=t.normalize(o,o),l&&t.negate(o,o),o}var An=new t,Ye=new t;function Fe(e,i,r,n,o,a){let c=t.subtract(i,e,An);t.normalize(c,c);let l=r-Qe,s=t.multiplyByScalar(c,l,Ye);t.add(e,s,o);let d=n-tn;s=t.multiplyByScalar(c,d,Ye),t.add(i,s,a)}var Mn=new t;function Ut(e,i){let r=jt.getPointDistance(Gt,e),n=jt.getPointDistance(Gt,i),o=Mn;p.equalsEpsilon(r,0,p.EPSILON2)?(o=nt(i,e,o),t.multiplyByScalar(o,p.EPSILON2,o),t.add(e,o,e)):p.equalsEpsilon(n,0,p.EPSILON2)&&(o=nt(e,i,o),t.multiplyByScalar(o,p.EPSILON2,o),t.add(i,o,i))}function Rn(e,i){let r=Math.abs(e.longitude),n=Math.abs(i.longitude);if(p.equalsEpsilon(r,p.PI,p.EPSILON11)){let o=p.sign(i.longitude);return e.longitude=o*(r-p.EPSILON11),1}else if(p.equalsEpsilon(n,p.PI,p.EPSILON11)){let o=p.sign(e.longitude);return i.longitude=o*(n-p.EPSILON11),2}return 0}var nn=new u,on=new u,Ue=new t,re=new t,Ge=new t,qe=new t,Pn=new t,We=new t,bn=[nn,on],vn=new U,Bn=new t,zn=new t,jn=new t,Xn=new t,Yn=new t,Fn=new t,ae=new t,ce=new t,Un=new t,Gn=new t,qn=new t,Ze=new t,Wn=new t,Zn=new t,Vn=new _t,$n=new _t,Ve=new t,Jn=new t,$e=new t,Kn=[new G,new G],rn=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],Je=rn.length;function Qn(e,i,r,n,o,a,c){let l,s,d=i._ellipsoid,h=r.length/3-1,N=h*8,S=N*4,R=h*36,D=N>65535?new Uint32Array(R):new Uint16Array(R),I=new Float64Array(N*3),j=new Float32Array(S),q=new Float32Array(S),f=new Float32Array(S),X=new Float32Array(S),v=new Float32Array(S),y,H,C,k;c&&(y=new Float32Array(S),H=new Float32Array(S),C=new Float32Array(S),k=new Float32Array(N*2));let b=a.length/2,B=0,E=nn;E.height=0;let x=on;x.height=0;let L=Ue,_=re;if(c)for(s=0,l=1;l<b;l++)E.latitude=a[s],E.longitude=a[s+1],x.latitude=a[s+2],x.longitude=a[s+3],L=i.project(E,L),_=i.project(x,_),B+=t.distance(L,_),s+=2;let Y=n.length/3;_=t.unpack(n,0,_);let A=0;for(s=3,l=1;l<Y;l++)L=t.clone(_,L),_=t.unpack(n,s,_),A+=t.distance(L,_),s+=3;let m;s=3;let V=0,It=0,M=0,Tt=0,F=!1,st=t.unpack(r,0,qe),lt=t.unpack(n,0,re),W=t.unpack(o,0,We);if(e){let ht=t.unpack(r,r.length-6,Ge);ze(W,ht,st,lt)&&(W=t.negate(W,W))}let pe=0,de=0,qt=0;for(l=0;l<h;l++){let ht=t.clone(st,Ge),Zt=t.clone(lt,Ue),mt=t.clone(W,Pn);F&&(mt=t.negate(mt,mt)),st=t.unpack(r,s,qe),lt=t.unpack(n,s,re),W=t.unpack(o,s,We),F=ze(W,ht,st,lt),E.latitude=a[V],E.longitude=a[V+1],x.latitude=a[V+2],x.longitude=a[V+3];let pt,gt,ot,it;if(c){let T=Rn(E,x);pt=i.project(E,Yn),gt=i.project(x,Fn);let wt=nt(gt,pt,Ve);wt.y=Math.abs(wt.y),ot=ae,it=ce,T===0||t.dot(wt,t.UNIT_Y)>Ke?(ot=Dt(i,E,mt,pt,ae),it=Dt(i,x,W,gt,ce)):T===1?(it=Dt(i,x,W,gt,ce),ot.x=0,ot.y=p.sign(E.longitude-Math.abs(x.longitude)),ot.z=0):(ot=Dt(i,E,mt,pt,ae),it.x=0,it.y=p.sign(E.longitude-x.longitude),it.z=0)}let ge=t.distance(Zt,lt),ue=_t.fromCartesian(ht,Vn),Ht=t.subtract(st,ht,Un),an=t.normalize(Ht,Ze),xt=t.subtract(Zt,ht,Gn);xt=t.normalize(xt,xt);let ut=t.cross(an,xt,Ze);ut=t.normalize(ut,ut);let kt=t.cross(xt,mt,Wn);kt=t.normalize(kt,kt);let yt=t.subtract(lt,st,qn);yt=t.normalize(yt,yt);let At=t.cross(W,yt,Zn);At=t.normalize(At,At);let cn=ge/A,sn=pe/A,Vt=0,Nt,Mt,dt,we=0,Se=0;if(c){Vt=t.distance(pt,gt),Nt=_t.fromCartesian(pt,$n),Mt=t.subtract(gt,pt,Ve),dt=t.normalize(Mt,Jn);let T=dt.x;dt.x=dt.y,dt.y=-T,we=Vt/B,Se=de/B}for(m=0;m<8;m++){let T=Tt+m*4,wt=It+m*2,Ct=T+3,Ee=m<4?1:-1,Rt=m===2||m===3||m===6||m===7?1:-1;t.pack(ue.high,j,T),j[Ct]=Ht.x,t.pack(ue.low,q,T),q[Ct]=Ht.y,t.pack(kt,f,T),f[Ct]=Ht.z,t.pack(At,X,T),X[Ct]=cn*Ee,t.pack(ut,v,T);let ft=sn*Rt;ft===0&&Rt<0&&(ft=9),v[Ct]=ft,c&&(y[T]=Nt.high.x,y[T+1]=Nt.high.y,y[T+2]=Nt.low.x,y[T+3]=Nt.low.y,C[T]=-ot.y,C[T+1]=ot.x,C[T+2]=it.y,C[T+3]=-it.x,H[T]=Mt.x,H[T+1]=Mt.y,H[T+2]=dt.x,H[T+3]=dt.y,k[wt]=we*Ee,ft=Se*Rt,ft===0&&Rt<0&&(ft=9),k[wt+1]=ft)}let $=jn,J=Xn,K=Bn,Q=zn,ln=U.fromCartographicArray(bn,vn),Te=Xt.getMinimumMaximumHeights(ln,d),$t=Te.minimumTerrainHeight,Jt=Te.maximumTerrainHeight;qt+=Math.abs($t),qt+=Math.abs(Jt),Fe(ht,Zt,$t,Jt,$,K),Fe(st,lt,$t,Jt,J,Q);let tt=t.multiplyByScalar(ut,p.EPSILON5,$e);t.add($,tt,$),t.add(J,tt,J),t.add(K,tt,K),t.add(Q,tt,Q),Ut($,J),Ut(K,Q),t.pack($,I,M),t.pack(J,I,M+3),t.pack(Q,I,M+6),t.pack(K,I,M+9),tt=t.multiplyByScalar(ut,-2*p.EPSILON5,$e),t.add($,tt,$),t.add(J,tt,J),t.add(K,tt,K),t.add(Q,tt,Q),Ut($,J),Ut(K,Q),t.pack($,I,M+12),t.pack(J,I,M+15),t.pack(Q,I,M+18),t.pack(K,I,M+21),V+=2,s+=3,It+=16,M+=24,Tt+=32,pe+=ge,de+=Vt}s=0;let fe=0;for(l=0;l<h;l++){for(m=0;m<Je;m++)D[s+m]=rn[m]+fe;fe+=8,s+=Je}let Wt=Kn;G.fromVertices(r,t.ZERO,3,Wt[0]),G.fromVertices(n,t.ZERO,3,Wt[1]);let me=G.fromBoundingSpheres(Wt);me.radius+=qt/(h*2);let Et={position:new zt({componentDatatype:Bt.DOUBLE,componentsPerAttribute:3,normalize:!1,values:I}),startHiAndForwardOffsetX:at(j),startLoAndForwardOffsetY:at(q),startNormalAndForwardOffsetZ:at(f),endNormalAndTextureCoordinateNormalizationX:at(X),rightNormalAndTextureCoordinateNormalizationY:at(v)};return c&&(Et.startHiLo2D=at(y),Et.offsetAndRight2D=at(H),Et.startEndNormals2D=at(C),Et.texcoordNormalization2D=new zt({componentDatatype:Bt.FLOAT,componentsPerAttribute:2,normalize:!1,values:k})),new Ce({attributes:Et,indices:D,boundingSphere:me})}function at(e){return new zt({componentDatatype:Bt.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}ct._projectNormal=Dt;var he=ct;function to(e,i){return Xt.initialize().then(function(){return g(i)&&(e=he.unpack(e,i)),he.createGeometry(e)})}var ti=to;export{ti as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneGeometry.js index cd354b128..7c395d85b 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,E=new o,d=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:d,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,E);var l=Math.sqrt(o.dot(h,E));return E=o.divideByScalar(E,l,E),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(E,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,E=i.x,d=i.y,p=i.z,_=l*l*E*E,m=f*f*d*d,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,O=u.z,N=o;N.x=A.x*S*2,N.y=A.y*I*2,N.z=A.z*O*2;var v,M,w,C,g,x,P,U,D,F,L,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(N)),B=0;do{b-=B,w=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*O),x=w*w,P=C*C,U=g*g,D=x*w,F=P*C,L=U*g,v=_*x+m*P+y*U-1,M=_*D*S+m*F*I+y*L*O;B=v/(-2*M)}while(Math.abs(v)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=a.EPSILON1;return u.fromCartesian=function(t,n,i){var d=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,_=r(n)?n._centerToleranceSquared:E,m=o(t,d,p,_,c);if(r(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=E;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var d=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,d),u=e.subtract(n,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],d[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],d[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=d[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var E,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;E=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+E*E),l=E*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=n-u-f+E,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-n+u-f+E,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+E;return r(t)?(t[0]=d,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(d,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,E=n*u,d=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=E,t[2]=_,t[3]=f,t[4]=d,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,E,d,p,_,m,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var E=new e;s.getMaximumScale=function(t){return s.getScale(t,E),e.maximumComponent(E)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var d=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),E=n*c(h);a<10&&l(h)>E;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var E=1/h;return s.multiplyByScalar(t,E,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,E,d,p,_){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(E,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(d,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(_,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-E-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+E-_+y,O=2*(d-h),N=2*(f-p),v=2*(d+h),M=-s-E+_+y;return r[0]=T*a,r[1]=S*a,r[2]=N*a,r[3]=0,r[4]=R*o,r[5]=I*o,r[6]=v*o,r[7]=0,r[8]=A*u,r[9]=O*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,E),E);var u=h.x,s=h.y,c=h.z,d=f.x,p=f.y,_=f.z,m=E.x,y=E.y,T=E.z,R=r.x,A=r.y,S=r.z,I=u*-R+s*-A+c*-S,O=m*-R+y*-A+T*-S,N=d*R+p*A+_*S;return i(n)?(n[0]=u,n[1]=m,n[2]=-d,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-_,n[11]=0,n[12]=I,n[13]=O,n[14]=N,n[15]=1,n):new l(u,s,c,I,m,y,T,O,-d,-p,-_,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,E=l,d=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=E,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var d=new e;l.setScale=function(t,n,r){var i=l.getScale(t,d),a=e.divideComponents(n,i,d);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],O=t[5],N=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=r*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,b=a*T+c*R+E*A+m*S,B=o*T+l*R+d*A+y*S,q=r*I+u*O+f*N+p*v,z=i*I+s*O+h*N+_*v,G=a*I+c*O+E*N+m*v,V=o*I+l*O+d*N+y*v,X=r*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+E*C+m*g,Y=o*M+l*w+d*C+y*g,k=r*x+u*P+f*U+p*D,j=i*x+s*P+h*U+_*D,K=a*x+c*P+E*U+m*D,Z=o*x+l*P+d*U+y*D;return n[0]=F,n[1]=L,n[2]=b,n[3]=B,n[4]=q,n[5]=z,n[6]=G,n[7]=V,n[8]=X,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=K,n[15]=Z,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],O=t[12],N=t[13],v=t[14],M=r*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=r*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=r*O+o*N+c*v+h,b=i*O+u*N+l*v+E,B=a*O+s*N+f*v+d;return n[0]=M,n[1]=w,n[2]=C,n[3]=0,n[4]=g,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*E+c*d,S=i*h+u*E+l*d,I=a*h+s*E+f*d,O=r*p+o*_+c*m,N=i*p+u*_+l*m,v=a*p+s*_+f*m,M=r*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=I,n[3]=0,n[4]=O,n[5]=N,n[6]=v,n[7]=0,n[8]=M,n[9]=w,n[10]=C,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var m=new e;l.multiplyByUniformScale=function(e,t,n){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],E=e[9],d=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],O=e[7],N=e[11],v=e[15],M=m*v,w=S*N,C=_*v,g=S*O,x=_*N,P=m*O,U=p*v,D=S*I,F=p*N,L=m*I,b=p*O,B=_*I,q=M*h+g*E+x*d-(w*h+C*E+P*d),z=w*f+U*E+L*d-(M*f+D*E+F*d),G=C*f+D*h+b*d-(g*f+U*h+B*d),V=P*f+F*h+B*E-(x*f+L*h+b*E),X=w*i+C*a+P*o-(M*i+g*a+x*o),W=M*r+D*a+F*o-(w*r+U*a+L*o),H=g*r+U*i+B*o-(C*r+D*i+b*o),Y=x*r+L*i+b*a-(P*r+F*i+B*a);M=a*d,w=o*E,C=i*d,g=o*h,x=i*E,P=a*h,U=r*d,D=o*f,F=r*E,L=a*f,b=r*h,B=i*f;var k=M*O+g*N+x*v-(w*O+C*N+P*v),j=w*I+U*N+L*v-(M*I+D*N+F*v),K=C*I+D*O+b*v-(g*I+U*O+B*v),Z=P*I+F*O+B*N-(x*I+L*O+b*N),J=C*m+P*S+w*_-(x*S+M*_+g*m),Q=F*S+M*p+D*m-(U*m+L*S+w*p),$=U*_+B*S+g*p-(b*S+C*p+D*_),ee=b*m+x*p+L*_-(F*_+B*m+P*p),te=r*q+i*z+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=V*te,n[4]=X*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=K*te,n[11]=Z*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-n*f-r*h-i*E,p=-a*f-o*h-u*E,_=-s*f-c*h-l*E;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=d,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];n=Math.min(n,E.longitude),i=Math.max(i,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;a=Math.min(a,d),o=Math.max(o,d)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,p=e.length;d<p;d++){var _=t.cartesianToCartographic(e[d]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),E=Math.max(E,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=E,i):new s(o,h,c,E)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=E,n):new s(l,h,f,E)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,p=c;p.height=i,p.longitude=d,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function E(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var d=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,O=new e,N=new e,v=4/3*c.PI;E.fromPoints=function(t,n){if(i(n)||(n=new E),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,d),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=C;g>D&&(D=g,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=S;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var q=O;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,N),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,z,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,n.center),n.radius=b):(e.clone(z,n.center),n.radius=G),n};var M=new o,w=new e,C=new e,g=new t,x=new t;E.fromRectangle2D=function(e,t,n){return E.fromRectangleWithHeights2D(e,t,0,0,n)},E.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,g),g.height=a,h.northeast(t,x),x.height=o;var s=n.project(g,w),c=n.project(x,C),l=c.x-s.x,f=c.y-s.y,d=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+d*d);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*d,u};var P=[];E.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return E.fromPoints(s,u)},E.fromVertices=function(t,n,a,o){if(i(o)||(o=new E),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,d),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+n.x,g=t[s+1]+n.y,x=t[s+2]+n.z;u.x=C,u.y=g,u.z=x,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=v),D>b&&(b=D,F=f,L=M);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var q=e.magnitudeSquared(e.subtract(L,B,A)),z=Math.sqrt(q),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=O;V.x=h.x,V.y=v.y,V.z=M.z;var X=e.midpoint(G,V,N),W=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;B.x=(z*B.x+j*u.x)/k,B.y=(z*B.y+j*u.y)/k,B.z=(z*B.z+j*u.z)/k}}return z<W?(e.clone(B,o.center),o.radius=z):(e.clone(X,o.center),o.radius=W),o},E.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new E),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,d),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+n[o],w=t[o+1]+n[o+1],C=t[o+2]+n[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=g;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),q=I;q.x=u.x,q.y=s.y,q.z=c.z;var z=O;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,N),V=0;for(o=0;o<v;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},E.fromCornerPoints=function(t,n,r){i(r)||(r=new E);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},E.fromEllipsoid=function(t,n){return i(n)||(n=new E),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;E.fromBoundingSpheres=function(t,n){if(i(n)||(n=new E),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return E.clone(t[0],n);if(2===r)return E.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=E.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;E.fromOrientedBoundingBox=function(t,n){i(n)||(n=new E);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},E.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},E.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new E);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;E.union=function(t,n,r){i(r)||(r=new E);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;E.expand=function(t,n,r){r=E.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},E.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},E.transform=function(e,t,n){return i(n)||(n=new E),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;E.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},E.transformWithoutScale=function(e,t,n){return i(n)||(n=new E),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;E.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return E.projectTo2D=function(t,n,i){n=r(n,Z);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),d=j,p=d[0];e.add(s,l,p),e.add(p,c,p),p=d[1],e.add(s,l,p),e.add(p,h,p),p=d[2],e.add(s,f,p),e.add(p,h,p),p=d[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=d[4],e.add(s,l,p),e.add(p,c,p),p=d[5],e.add(s,l,p),e.add(p,h,p),p=d[6],e.add(s,f,p),e.add(p,h,p),p=d[7],e.add(s,f,p),e.add(p,c,p);for(var _=d.length,m=0;m<_;++m){var y=d[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=E.fromPoints(d,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,n){return E.computePlaneDistances(this,e,t,n)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return v*e*e*e},E}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return d(e)}function i(e){return d(a(e))}function u(e){return E(e)}var s,c,l,f,h,E,d;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},E=function(e){return p(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){d(e)}var c,l,f,h,E,d,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],E=o(),c)for(_=E.progress,p=function(e){h.push(e),--l||(d=p=m,E.reject(h))},d=function(e){f.push(e),--c||(d=p=m,E.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else E.resolve(f);return E.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return _(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function E(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function d(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function _(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=s,e.chain=d,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(N)&&(N=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(N=!0,v=o(e[1]))}return N}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function E(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,P=o(e[1]))}return x}function d(){return E()&&P}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(O.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),B}function A(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function S(){return A()?q:void 0}function I(){return I._result}var O;O="undefined"!=typeof navigator?navigator:{};var N,v,M,w,C,g,x,P,U,D,F,L,b,B,q,z;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var n=new Image;return n.onload=function(){I._result=n.width>0&&n.height>0,e.resolve(I._result)},n.onerror=function(){I._result=!1,e.resolve(I._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],E=e[u.COLUMN1ROW1],d=e[u.COLUMN2ROW2],p=h+E+d;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var _=l,m=0;E>h&&(m=1),d>h&&d>E&&(m=2);var y=_[m],T=_[y];n=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*n,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,E=new s,d=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),d=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(d,p,d),E=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(E,n,n)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);r[o]=_.x*u,r[o+1]=_.y*u,r[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,E=o*c+r*s-i*u+a*l,d=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=E,n.w=d,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,I=new s,O=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-n)*u),I),O=s.multiplyByScalar(a,Math.sin(n*u),O),r=s.add(I,O,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var N=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,w);var o=s.log(w,N);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=g/136,P[7]=8*g/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),E=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),d=s.multiplyByScalar(e,E,C);return s.multiplyByScalar(t,h,r),s.add(d,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var E,d,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,O=0;s&&O<I;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return E=+m||0,E=Math.round(E-E%1),d=E<0?"-":T,m=d+i(String(Math.abs(E)),f,"0",!1),a(m,d,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return E=+m,d=E<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=d+Math.abs(E)[p](f),a(m,d,y,c,R)[_]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function E(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function d(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,E(i,t,this),r===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+O.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;p.fromGregorianDate=function(e,t){var n=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(E(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(E(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,O=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var g;if(null!==(u=w.match(A)))n=+u[1],g=+u[2],a=o(n);else if(null!==(u=w.match(S))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));g=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(N))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(n,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:m[s-1],l+=i;var q=d(n,s,l,h,_,y,O);return r(t)?(E(q[0],q[1],t),f(t)):t=new p(q[0],q[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(p.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var _=E+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=m,t.month=_,t.day=d,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(m,_,d,y,R,A,S,n)},p.toDate=function(e){var t=p.toGregorianDate(e,_),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return E(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return E(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return E(e.dayNumber,r,n)},p.addDays=function(e,t,n){return E(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var O=[],N={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,n=0,r=O.length;for(e=0;e<r;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(O[e-n]=t):++n;O.length-=n;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)E(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-O.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||d(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(v);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=N[r];return i(a)||(N[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){E(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R,A,S,I,O,N){"use strict";function v(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?g(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new O("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var n=new e(t.url);v(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(N.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new O("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return z}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);v(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);v(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;C(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==I.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=I.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new O("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return m(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))d(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){d(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return o.compare(e.julianDate,t)}function d(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||d<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=n.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],O=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(O,I,f.TAI);if(m.push(N),T){if(I!==y&&r(y)){var v=o.leapSeconds,M=t(v,N,E);if(M<0){var w=new u(N,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,n){return t+e*(n-t)}function m(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,E=a*s,d=n[h+e._ut1MinusUtcSecondsColumn],m=n[E+e._ut1MinusUtcSecondsColumn],y=m-d;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[E+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?d=m:m-=R-T)}return u.xPoleWander=_(f,n[h+e._xPoleWanderRadiansColumn],n[E+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,n[h+e._yPoleWanderRadiansColumn],n[E+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[E+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[E+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,d,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],E=o.lessThanOrEquals(f,e),d=!r(h),p=d||o.greaterThanOrEquals(h,e);if(E&&p)return s=u,!d&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,n),n}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=d.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,E=this._samples;if(r(E[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var d,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(d=0;d<=u;++d)m[d]=_-R[d];for(d=0;d<=u;++d){for(T[d]=1,p=0;p<=u;++p)p!==d&&(T[d]*=m[p]);T[d]*=y[d];var A=3*(s+d);n.x+=T[d]*E[A++],n.y+=T[d]*E[A++],n.s+=T[d]*E[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},N={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},v=new n,M=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(O[a])?r=O[a]:(r=function(r,a,s){if(u(s)||(s=new y),_.equalsEpsilon(r.x,0,_.EPSILON14)&&_.equalsEpsilon(r.y,0,_.EPSILON14)){var c=_.sign(r.z);n.unpack(I[e],0,v),"east"!==e&&"west"!==e&&n.multiplyByScalar(v,c,v),n.unpack(I[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(I[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,N.up);var l=N.up,h=N.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,N.east),n.cross(l,h,N.north),n.multiplyByScalar(N.up,-1,N.down),n.multiplyByScalar(N.east,-1,N.west),n.multiplyByScalar(N.north,-1,N.south),v=N[e],M=N[t],w=N[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},O[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,g,x);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new m;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,b=new y,B=new m,q=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),E=Math.sin(f);return u(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,E,0,-E,h,0,0,0,1)},A.iau2006XysData=new E,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return m.transpose(n,t)};var V=new d(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),E=e.dayNumber,d=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=E-2451545,T=d/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),O=m.multiply(h,I,W),N=Math.cos(n.xPoleWander),v=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),C=r-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,x=Math.cos(g),P=Math.sin(g),U=H;return U[0]=N*x,U[1]=N*P,U[2]=M,U[3]=-v*P+w*M*x,U[4]=v*x+w*M*P,U[5]=-w*N,U[6]=-w*P-v*M*x,U[7]=w*x-v*M*P,U[8]=v*N,m.multiply(O,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,K=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,_.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,K);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new m,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(Z,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var m=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,O=new E,N=new f,v=new c;return _._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=d.center(o,m),h=n.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)n.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var x=E.fromAxisAngle(t.UNIT_Z,-i,O),P=l.fromQuaternion(x,N),U=r.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)g=f.multiplyByPointAsVector(M,r[u],g),g=l.multiplyByVector(P,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),q=S;q[0].x=D,q[0].y=F,q[1].x=D,q[1].y=b,q[2].x=L,q[2].y=F;var z=w[0],G=w[2].x-z.x,V=w[1].y-z.y;for(u=0;u<3;u++){var X=q[u];c.multiplyByVector(B,X,X),X.x=(X.x-z.x)/G,X.y=(X.y-z.y)/V}var W=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1), -this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/PlaneGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./PrimitiveType","./VertexFormat"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e){e=i(e,i.EMPTY_OBJECT);var t=i(e.vertexFormat,l.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}f.packedLength=l.packedLength,f.pack=function(e,t,n){return n=i(n,0),l.pack(e._vertexFormat,t,n),t};var h=new l,E={vertexFormat:h};f.unpack=function(e,t,n){t=i(t,0);var r=l.unpack(e,t,h);return a(n)?(n._vertexFormat=l.clone(r,n._vertexFormat),n):new f(E)};var d=new t(-.5,-.5,0),p=new t(.5,.5,0);return f.createGeometry=function(n){var i,a,l=n._vertexFormat,f=new s;if(l.position){if(a=new Float64Array(12),a[0]=d.x,a[1]=d.y,a[2]=0,a[3]=p.x,a[4]=d.y,a[5]=0,a[6]=p.x,a[7]=p.y,a[8]=0,a[9]=d.x,a[10]=p.y,a[11]=0,f.position=new u({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:a}),l.normal){var h=new Float32Array(12);h[0]=0,h[1]=0,h[2]=1,h[3]=0,h[4]=0,h[5]=1,h[6]=0,h[7]=0,h[8]=1,h[9]=0,h[10]=0,h[11]=1,f.normal=new u({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:h})}if(l.st){var E=new Float32Array(8);E[0]=0,E[1]=0,E[2]=1,E[3]=0,E[4]=1,E[5]=1,E[6]=0,E[7]=1,f.st=new u({componentDatatype:r.FLOAT,componentsPerAttribute:2,values:E})}if(l.tangent){var _=new Float32Array(12);_[0]=1,_[1]=0,_[2]=0,_[3]=1,_[4]=0,_[5]=0,_[6]=1,_[7]=0,_[8]=0,_[9]=1,_[10]=0,_[11]=0,f.tangent=new u({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:_})}if(l.bitangent){var m=new Float32Array(12);m[0]=0,m[1]=1,m[2]=0,m[3]=0,m[4]=1,m[5]=0,m[6]=0,m[7]=1,m[8]=0,m[9]=0,m[10]=1,m[11]=0,f.bitangent=new u({componentDatatype:r.FLOAT,componentsPerAttribute:3,values:m})}i=new Uint16Array(6),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new o({attributes:f,indices:i,primitiveType:c.TRIANGLES,boundingSphere:new e(t.ZERO,Math.sqrt(2))})},f}),define("Workers/createPlaneGeometry",["../Core/defined","../Core/PlaneGeometry"],function(e,t){"use strict";return function(n,r){return e(r)&&(n=t.unpack(n,r)),t.createGeometry(n)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-QNEABTP2.js";import{a as b}from"./chunk-RYO6NY7F.js";import{b as v,c as x,d as p}from"./chunk-2HSPJH3C.js";import{d as A}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as c}from"./chunk-6QVIJ7JA.js";import{a as y}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as i}from"./chunk-WHQYJFDH.js";import{b as u}from"./chunk-OYWUGDKS.js";import{e as f}from"./chunk-DRYFJEFT.js";function s(r){r=i(r,i.EMPTY_OBJECT);let e=i(r.vertexFormat,m.DEFAULT);this._vertexFormat=e,this._workerName="createPlaneGeometry"}s.packedLength=m.packedLength;s.pack=function(r,e,o){return u.typeOf.object("value",r),u.defined("array",e),o=i(o,0),m.pack(r._vertexFormat,e,o),e};var d=new m,P={vertexFormat:d};s.unpack=function(r,e,o){u.defined("array",r),e=i(e,0);let a=m.unpack(r,e,d);return f(o)?(o._vertexFormat=m.clone(a,o._vertexFormat),o):new s(P)};var F=new y(-.5,-.5,0),l=new y(.5,.5,0);s.createGeometry=function(r){let e=r._vertexFormat,o=new b,a,n;if(e.position){if(n=new Float64Array(4*3),n[0]=F.x,n[1]=F.y,n[2]=0,n[3]=l.x,n[4]=F.y,n[5]=0,n[6]=l.x,n[7]=l.y,n[8]=0,n[9]=F.x,n[10]=l.y,n[11]=0,o.position=new p({componentDatatype:c.DOUBLE,componentsPerAttribute:3,values:n}),e.normal){let t=new Float32Array(12);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=0,t[5]=1,t[6]=0,t[7]=0,t[8]=1,t[9]=0,t[10]=0,t[11]=1,o.normal=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}if(e.st){let t=new Float32Array(8);t[0]=0,t[1]=0,t[2]=1,t[3]=0,t[4]=1,t[5]=1,t[6]=0,t[7]=1,o.st=new p({componentDatatype:c.FLOAT,componentsPerAttribute:2,values:t})}if(e.tangent){let t=new Float32Array(12);t[0]=1,t[1]=0,t[2]=0,t[3]=1,t[4]=0,t[5]=0,t[6]=1,t[7]=0,t[8]=0,t[9]=1,t[10]=0,t[11]=0,o.tangent=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}if(e.bitangent){let t=new Float32Array(12);t[0]=0,t[1]=1,t[2]=0,t[3]=0,t[4]=1,t[5]=0,t[6]=0,t[7]=1,t[8]=0,t[9]=0,t[10]=1,t[11]=0,o.bitangent=new p({componentDatatype:c.FLOAT,componentsPerAttribute:3,values:t})}a=new Uint16Array(2*3),a[0]=0,a[1]=1,a[2]=2,a[3]=0,a[4]=2,a[5]=3}return new x({attributes:o,indices:a,primitiveType:v.TRIANGLES,boundingSphere:new A(y.ZERO,Math.sqrt(2))})};var w=s;function h(r,e){return f(e)&&(r=w.unpack(r,e)),w.createGeometry(r)}var M=h;export{M as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js index 193b7dcbe..3f2adfce3 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPlaneOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,E=new o,d=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:d,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,E);var l=Math.sqrt(o.dot(h,E));return E=o.divideByScalar(E,l,E),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(E,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,E=i.x,d=i.y,p=i.z,_=l*l*E*E,m=f*f*d*d,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,O=u.z,N=o;N.x=A.x*S*2,N.y=A.y*I*2,N.z=A.z*O*2;var v,M,w,C,g,x,U,P,D,F,L,B=(1-R)*e.magnitude(n)/(.5*e.magnitude(N)),b=0;do{B-=b,w=1/(1+B*S),C=1/(1+B*I),g=1/(1+B*O),x=w*w,U=C*C,P=g*g,D=x*w,F=U*C,L=P*g,v=_*x+m*U+y*P-1,M=_*D*S+m*F*I+y*L*O;b=v/(-2*M)}while(Math.abs(v)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=a.EPSILON1;return u.fromCartesian=function(t,n,i){var d=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,_=r(n)?n._centerToleranceSquared:E,m=o(t,d,p,_,c);if(r(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=E;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var d=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,d),u=e.subtract(n,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],d[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],d[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=d[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var E,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;E=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+E*E),l=E*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=n-u-f+E,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-n+u-f+E,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+E;return r(t)?(t[0]=d,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(d,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,E=n*u,d=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=E,t[2]=_,t[3]=f,t[4]=d,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,E,d,p,_,m,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var E=new e;s.getMaximumScale=function(t){return s.getScale(t,E),e.maximumComponent(E)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var d=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),E=n*c(h);a<10&&l(h)>E;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var E=1/h;return s.multiplyByScalar(t,E,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,E,d,p,_){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(E,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(d,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(_,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-E-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+E-_+y,O=2*(d-h),N=2*(f-p),v=2*(d+h),M=-s-E+_+y;return r[0]=T*a,r[1]=S*a,r[2]=N*a,r[3]=0,r[4]=R*o,r[5]=I*o,r[6]=v*o,r[7]=0,r[8]=A*u,r[9]=O*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,E),E);var u=h.x,s=h.y,c=h.z,d=f.x,p=f.y,_=f.z,m=E.x,y=E.y,T=E.z,R=r.x,A=r.y,S=r.z,I=u*-R+s*-A+c*-S,O=m*-R+y*-A+T*-S,N=d*R+p*A+_*S;return i(n)?(n[0]=u,n[1]=m,n[2]=-d,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-_,n[11]=0,n[12]=I,n[13]=O,n[14]=N,n[15]=1,n):new l(u,s,c,I,m,y,T,O,-d,-p,-_,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,E=l,d=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=E,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=d,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var d=new e;l.setScale=function(t,n,r){var i=l.getScale(t,d),a=e.divideComponents(n,i,d);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],O=t[5],N=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],x=t[12],U=t[13],P=t[14],D=t[15],F=r*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,B=a*T+c*R+E*A+m*S,b=o*T+l*R+d*A+y*S,q=r*I+u*O+f*N+p*v,z=i*I+s*O+h*N+_*v,G=a*I+c*O+E*N+m*v,X=o*I+l*O+d*N+y*v,V=r*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+E*C+m*g,Y=o*M+l*w+d*C+y*g,k=r*x+u*U+f*P+p*D,j=i*x+s*U+h*P+_*D,K=a*x+c*U+E*P+m*D,Z=o*x+l*U+d*P+y*D;return n[0]=F,n[1]=L,n[2]=B,n[3]=b,n[4]=q,n[5]=z,n[6]=G,n[7]=X,n[8]=V,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=K,n[15]=Z,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],O=t[12],N=t[13],v=t[14],M=r*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=r*y+o*T+c*R,x=i*y+u*T+l*R,U=a*y+s*T+f*R,P=r*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=r*O+o*N+c*v+h,B=i*O+u*N+l*v+E,b=a*O+s*N+f*v+d;return n[0]=M,n[1]=w,n[2]=C,n[3]=0,n[4]=g,n[5]=x,n[6]=U,n[7]=0,n[8]=P,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=B,n[14]=b,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*E+c*d,S=i*h+u*E+l*d,I=a*h+s*E+f*d,O=r*p+o*_+c*m,N=i*p+u*_+l*m,v=a*p+s*_+f*m,M=r*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=I,n[3]=0,n[4]=O,n[5]=N,n[6]=v,n[7]=0,n[8]=M,n[9]=w,n[10]=C,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var m=new e;l.multiplyByUniformScale=function(e,t,n){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],E=e[9],d=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],O=e[7],N=e[11],v=e[15],M=m*v,w=S*N,C=_*v,g=S*O,x=_*N,U=m*O,P=p*v,D=S*I,F=p*N,L=m*I,B=p*O,b=_*I,q=M*h+g*E+x*d-(w*h+C*E+U*d),z=w*f+P*E+L*d-(M*f+D*E+F*d),G=C*f+D*h+B*d-(g*f+P*h+b*d),X=U*f+F*h+b*E-(x*f+L*h+B*E),V=w*i+C*a+U*o-(M*i+g*a+x*o),W=M*r+D*a+F*o-(w*r+P*a+L*o),H=g*r+P*i+b*o-(C*r+D*i+B*o),Y=x*r+L*i+B*a-(U*r+F*i+b*a);M=a*d,w=o*E,C=i*d,g=o*h,x=i*E,U=a*h,P=r*d,D=o*f,F=r*E,L=a*f,B=r*h,b=i*f;var k=M*O+g*N+x*v-(w*O+C*N+U*v),j=w*I+P*N+L*v-(M*I+D*N+F*v),K=C*I+D*O+B*v-(g*I+P*O+b*v),Z=U*I+F*O+b*N-(x*I+L*O+B*N),J=C*m+U*S+w*_-(x*S+M*_+g*m),Q=F*S+M*p+D*m-(P*m+L*S+w*p),$=P*_+b*S+g*p-(B*S+C*p+D*_),ee=B*m+x*p+L*_-(F*_+b*m+U*p),te=r*q+i*z+a*G+o*X;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=X*te,n[4]=V*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=K*te,n[11]=Z*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-n*f-r*h-i*E,p=-a*f-o*h-u*E,_=-s*f-c*h-l*E;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=d,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];n=Math.min(n,E.longitude),i=Math.max(i,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;a=Math.min(a,d),o=Math.max(o,d)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,p=e.length;d<p;d++){var _=t.cartesianToCartographic(e[d]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),E=Math.max(E,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=E,i):new s(o,h,c,E)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=E,n):new s(l,h,f,E)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,p=c;p.height=i,p.longitude=d,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function E(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var d=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,O=new e,N=new e,v=4/3*c.PI;E.fromPoints=function(t,n){if(i(n)||(n=new E),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,d),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=o,P=c,D=C;g>D&&(D=g,U=u,P=l),x>D&&(D=x,U=s,P=f);var F=S;F.x=.5*(U.x+P.x),F.y=.5*(U.y+P.y),F.z=.5*(U.z+P.z);var L=e.magnitudeSquared(e.subtract(P,F,A)),B=Math.sqrt(L),b=I;b.x=o.x,b.y=u.y,b.z=s.z;var q=O;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(b,q,N),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var X=e.magnitude(e.subtract(a,z,A));X>G&&(G=X);var V=e.magnitudeSquared(e.subtract(a,F,A));if(V>L){var W=Math.sqrt(V);B=.5*(B+W),L=B*B;var H=W-B;F.x=(B*F.x+H*a.x)/W,F.y=(B*F.y+H*a.y)/W,F.z=(B*F.z+H*a.z)/W}}return B<G?(e.clone(F,n.center),n.radius=B):(e.clone(z,n.center),n.radius=G),n};var M=new o,w=new e,C=new e,g=new t,x=new t;E.fromRectangle2D=function(e,t,n){return E.fromRectangleWithHeights2D(e,t,0,0,n)},E.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,g),g.height=a,h.northeast(t,x),x.height=o;var s=n.project(g,w),c=n.project(x,C),l=c.x-s.x,f=c.y-s.y,d=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+d*d);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*d,u};var U=[];E.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new E),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,U);return E.fromPoints(s,u)},E.fromVertices=function(t,n,a,o){if(i(o)||(o=new E),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,d),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+n.x,g=t[s+1]+n.y,x=t[s+2]+n.z;u.x=C,u.y=g,u.z=x,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var U=e.magnitudeSquared(e.subtract(h,c,A)),P=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,B=U;P>B&&(B=P,F=l,L=v),D>B&&(B=D,F=f,L=M);var b=S;b.x=.5*(F.x+L.x),b.y=.5*(F.y+L.y),b.z=.5*(F.z+L.z);var q=e.magnitudeSquared(e.subtract(L,b,A)),z=Math.sqrt(q),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var X=O;X.x=h.x,X.y=v.y,X.z=M.z;var V=e.midpoint(G,X,N),W=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,V,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,b,A));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;b.x=(z*b.x+j*u.x)/k,b.y=(z*b.y+j*u.y)/k,b.z=(z*b.z+j*u.z)/k}}return z<W?(e.clone(b,o.center),o.radius=z):(e.clone(V,o.center),o.radius=W),o},E.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new E),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,d),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+n[o],w=t[o+1]+n[o+1],C=t[o+2]+n[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),U=e.magnitudeSquared(e.subtract(h,c,A)),P=u,D=l,F=g;x>F&&(F=x,P=s,D=f),U>F&&(F=U,P=c,D=h);var L=S;L.x=.5*(P.x+D.x),L.y=.5*(P.y+D.y),L.z=.5*(P.z+D.z);var B=e.magnitudeSquared(e.subtract(D,L,A)),b=Math.sqrt(B),q=I;q.x=u.x,q.y=s.y,q.z=c.z;var z=O;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,N),X=0;for(o=0;o<v;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var V=e.magnitude(e.subtract(a,G,A));V>X&&(X=V);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>B){var H=Math.sqrt(W);b=.5*(b+H),B=b*b;var Y=H-b;L.x=(b*L.x+Y*a.x)/H,L.y=(b*L.y+Y*a.y)/H,L.z=(b*L.z+Y*a.z)/H}}return b<X?(e.clone(L,r.center),r.radius=b):(e.clone(G,r.center),r.radius=X),r},E.fromCornerPoints=function(t,n,r){i(r)||(r=new E);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},E.fromEllipsoid=function(t,n){return i(n)||(n=new E),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var P=new e;E.fromBoundingSpheres=function(t,n){if(i(n)||(n=new E),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return E.clone(t[0],n);if(2===r)return E.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=E.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,P)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;E.fromOrientedBoundingBox=function(t,n){i(n)||(n=new E);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},E.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},E.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new E);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var B=new e,b=new e;E.union=function(t,n,r){i(r)||(r=new E);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,B),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;E.expand=function(t,n,r){r=E.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},E.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},E.transform=function(e,t,n){return i(n)||(n=new E),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;E.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},E.transformWithoutScale=function(e,t,n){return i(n)||(n=new E),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;E.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var X=new e,V=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return E.projectTo2D=function(t,n,i){n=r(n,Z);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,X),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),d=j,p=d[0];e.add(s,l,p),e.add(p,c,p),p=d[1],e.add(s,l,p),e.add(p,h,p),p=d[2],e.add(s,f,p),e.add(p,h,p),p=d[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=d[4],e.add(s,l,p),e.add(p,c,p),p=d[5],e.add(s,l,p),e.add(p,h,p),p=d[6],e.add(s,f,p),e.add(p,h,p),p=d[7],e.add(s,f,p),e.add(p,c,p);for(var _=d.length,m=0;m<_;++m){var y=d[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=E.fromPoints(d,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,n){return E.computePlaneDistances(this,e,t,n)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return v*e*e*e},E}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return d(e)}function i(e){return d(a(e))}function u(e){return E(e)}var s,c,l,f,h,E,d;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},E=function(e){return p(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){d(e)}var c,l,f,h,E,d,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],E=o(),c)for(_=E.progress,p=function(e){h.push(e),--l||(d=p=m,E.reject(h))},d=function(e){f.push(e),--c||(d=p=m,E.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else E.resolve(f);return E.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return _(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function E(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function d(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function _(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=s,e.chain=d,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(N)&&(N=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(N=!0,v=o(e[1]))}return N}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(O.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(O.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function E(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===O.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,U=o(e[1])):"Netscape"===O.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(O.userAgent))&&(x=!0,U=o(e[1]))}return x}function d(){return E()&&U}function p(){if(!t(P)){P=!1;var e=/ Edge\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(P=!0,D=o(e[1]))}return P}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(O.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(B)||(B=/Windows/i.test(O.appVersion)),B}function T(){return m()&&L}function R(){return t(b)||(b=!m()&&"undefined"!=typeof PointerEvent&&(!t(O.pointerEnabled)||O.pointerEnabled)),b}function A(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function S(){return A()?q:void 0}function I(){return I._result}var O;O="undefined"!=typeof navigator?navigator:{};var N,v,M,w,C,g,x,U,P,D,F,L,B,b,q,z;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var n=new Image;return n.onload=function(){I._result=n.width>0&&n.height>0,e.resolve(I._result)},n.onerror=function(){I._result=!1,e.resolve(I._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var X={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(O.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return X.supportsFullscreen=function(){return i.supportsFullscreen()},X.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},X.supportsWebWorkers=function(){return"undefined"!=typeof Worker},X.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!X.isEdge()},X}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],E=e[u.COLUMN1ROW1],d=e[u.COLUMN2ROW2],p=h+E+d;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var _=l,m=0;E>h&&(m=1),d>h&&d>E&&(m=2);var y=_[m],T=_[y];n=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*n,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,E=new s,d=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),d=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(d,p,d),E=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(E,n,n)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);r[o]=_.x*u,r[o+1]=_.y*u,r[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,E=o*c+r*s-i*u+a*l,d=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=E,n.w=d,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,I=new s,O=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-n)*u),I),O=s.multiplyByScalar(a,Math.sin(n*u),O),r=s.add(I,O,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var N=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,w);var o=s.log(w,N);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,B=2*L+1;x[F]=1/(L*B),U[F]=L/B}return x[7]=g/136,U[7]=8*g/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)P[f]=(x[f]*c-U[f])*o,D[f]=(x[f]*l-U[f])*o;var h=i*n*(1+P[0]*(1+P[1]*(1+P[2]*(1+P[3]*(1+P[4]*(1+P[5]*(1+P[6]*(1+P[7])))))))),E=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),d=s.multiplyByScalar(e,E,C);return s.multiplyByScalar(t,h,r),s.add(d,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var E,d,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,O=0;s&&O<I;O++)switch(s.charAt(O)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(O+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return E=+m||0,E=Math.round(E-E%1),d=E<0?"-":T,m=d+i(String(Math.abs(E)),f,"0",!1),a(m,d,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return E=+m,d=E<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=d+Math.abs(E)[p](f),a(m,d,y,c,R)[_]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function E(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function d(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,E(i,t,this),r===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,O=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+O.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+O.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+O.source;p.fromGregorianDate=function(e,t){var n=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(E(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(E(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,O=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var g;if(null!==(u=w.match(A)))n=+u[1],g=+u[2],a=o(n);else if(null!==(u=w.match(S))){n=+u[1];var x=+u[2],U=+u[3]||0,P=new Date(Date.UTC(n,0,4));g=7*x+U-P.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],O=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(N))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],B=+(u[D+2]||0);switch(F){case"+":h-=L,_-=B;break;case"-":h+=L,_+=B;break;case"Z":break;default:_+=new Date(Date.UTC(n,s-1,l,h,_)).getTimezoneOffset()}}var b=60===y;for(b&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:m[s-1],l+=i;var q=d(n,s,l,h,_,y,O);return r(t)?(E(q[0],q[1],t),f(t)):t=new p(q[0],q[1],c.UTC),b&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(p.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var _=E+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=m,t.month=_,t.day=d,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(m,_,d,y,R,A,S,n)},p.toDate=function(e){var t=p.toGregorianDate(e,_),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return E(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return E(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return E(e.dayNumber,r,n)},p.addDays=function(e,t,n){return E(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,O.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var O=[],N={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,n=0,r=O.length;for(e=0;e<r;++e)t=O[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(O[e-n]=t):++n;O.length-=n;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)E(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-O.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||d(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(v);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=N[r];return i(a)||(N[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(O.length>=h.maximumRequests)){E(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=O.length,t=0;t<e;++t)T(O[t]);O.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R,A,S,I,O,N){"use strict";function v(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?g(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new O("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var n=new e(t.url);v(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function U(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function P(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function B(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(N.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new O("Error decompressing response.")):a.resolve(b(n,t))}):a.resolve(b(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return z}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);v(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);v(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return U({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),U({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return P(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;C(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==I.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=I.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var X=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void B(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=X.exec(e);if(null!==s)return void a.resolve(L(s,t));if(V)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new O("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return m(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))d(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){d(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return o.compare(e.julianDate,t)}function d(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||d<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=n.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],O=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(O,I,f.TAI);if(m.push(N),T){if(I!==y&&r(y)){var v=o.leapSeconds,M=t(v,N,E);if(M<0){var w=new u(N,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,n){return t+e*(n-t)}function m(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,E=a*s,d=n[h+e._ut1MinusUtcSecondsColumn],m=n[E+e._ut1MinusUtcSecondsColumn],y=m-d;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[E+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?d=m:m-=R-T)}return u.xPoleWander=_(f,n[h+e._xPoleWanderRadiansColumn],n[E+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,n[h+e._yPoleWanderRadiansColumn],n[E+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[E+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[E+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,d,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],E=o.lessThanOrEquals(f,e),d=!r(h),p=d||o.greaterThanOrEquals(h,e);if(E&&p)return s=u,!d&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,n),n}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=d.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,E=this._samples;if(r(E[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var d,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(d=0;d<=u;++d)m[d]=_-R[d];for(d=0;d<=u;++d){for(T[d]=1,p=0;p<=u;++p)p!==d&&(T[d]*=m[p]);T[d]*=y[d];var A=3*(s+d);n.x+=T[d]*E[A++],n.y+=T[d]*E[A++],n.s+=T[d]*E[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},O={},N={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},v=new n,M=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(O[a])?r=O[a]:(r=function(r,a,s){if(u(s)||(s=new y),_.equalsEpsilon(r.x,0,_.EPSILON14)&&_.equalsEpsilon(r.y,0,_.EPSILON14)){var c=_.sign(r.z);n.unpack(I[e],0,v),"east"!==e&&"west"!==e&&n.multiplyByScalar(v,c,v),n.unpack(I[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(I[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,N.up);var l=N.up,h=N.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,N.east),n.cross(l,h,N.north),n.multiplyByScalar(N.up,-1,N.down),n.multiplyByScalar(N.east,-1,N.west),n.multiplyByScalar(N.north,-1,N.south),v=N[e],M=N[t],w=N[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},O[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,g,x);return a=i(e,r,a),y.multiply(a,s,a)};var U=new y,P=new m;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,U),o=y.getRotation(a,P);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,B=new y,b=new m,q=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,B);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,b),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),E=Math.sin(f);return u(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,E,0,-E,h,0,0,0,1)},A.iau2006XysData=new E,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return m.transpose(n,t)};var X=new d(0,0,0),V=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var n=A.earthOrientationParameters.compute(e,V);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,X);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),E=e.dayNumber,d=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=E-2451545,T=d/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),O=m.multiply(h,I,W),N=Math.cos(n.xPoleWander),v=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),C=r-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,x=Math.cos(g),U=Math.sin(g),P=H;return P[0]=N*x,P[1]=N*U,P[2]=M,P[3]=-v*U+w*M*x,P[4]=v*x+w*M*U,P[5]=-w*N,P[6]=-w*U-v*M*x,P[7]=w*x-v*M*U,P[8]=v*N,m.multiply(O,P,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,K=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,_.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,K);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new m,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(Z,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,E,d,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var m=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,O=new E,N=new f,v=new c;return _._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=d.center(o,m),h=n.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)n.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var x=E.fromAxisAngle(t.UNIT_Z,-i,O),U=l.fromQuaternion(x,N),P=r.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(u=0;u<P;u++)g=f.multiplyByPointAsVector(M,r[u],g),g=l.multiplyByVector(U,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),B=Math.max(B,g.y);var b=c.fromRotation(i,v),q=S;q[0].x=D,q[0].y=F,q[1].x=D,q[1].y=B,q[2].x=L,q[2].y=F;var z=w[0],G=w[2].x-z.x,X=w[1].y-z.y;for(u=0;u<3;u++){var V=q[u];c.multiplyByVector(b,V,V),V.x=(V.x-z.x)/G,V.y=(V.y-z.y)/X}var W=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/PlaneOutlineGeometry",["./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defined","./Geometry","./GeometryAttribute","./GeometryAttributes","./PrimitiveType"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(){this._workerName="createPlaneOutlineGeometry"} -c.packedLength=0,c.pack=function(e,t){return t},c.unpack=function(e,t,n){return i(n)?n:new c};var l=new t(-.5,-.5,0),f=new t(.5,.5,0);return c.createGeometry=function(){var n=new u,i=new Uint16Array(8),c=new Float64Array(12);return c[0]=l.x,c[1]=l.y,c[2]=l.z,c[3]=f.x,c[4]=l.y,c[5]=l.z,c[6]=f.x,c[7]=f.y,c[8]=l.z,c[9]=l.x,c[10]=f.y,c[11]=l.z,n.position=new o({componentDatatype:r.DOUBLE,componentsPerAttribute:3,values:c}),i[0]=0,i[1]=1,i[2]=1,i[3]=2,i[4]=2,i[5]=3,i[6]=3,i[7]=0,new a({attributes:n,indices:i,primitiveType:s.LINES,boundingSphere:new e(t.ZERO,Math.sqrt(2))})},c}),define("Workers/createPlaneOutlineGeometry",["../Core/defined","../Core/PlaneOutlineGeometry"],function(e,t){"use strict";return function(n,r){return e(r)&&(n=t.unpack(n,r)),t.createGeometry(n)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as l}from"./chunk-RYO6NY7F.js";import{b as d,c as y,d as s}from"./chunk-2HSPJH3C.js";import{d as c}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as f}from"./chunk-6QVIJ7JA.js";import{a}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import{b as m}from"./chunk-OYWUGDKS.js";import{e as i}from"./chunk-DRYFJEFT.js";function o(){this._workerName="createPlaneOutlineGeometry"}o.packedLength=0;o.pack=function(r,e){return m.defined("value",r),m.defined("array",e),e};o.unpack=function(r,e,t){return m.defined("array",r),i(t)?t:new o};var n=new a(-.5,-.5,0),p=new a(.5,.5,0);o.createGeometry=function(){let r=new l,e=new Uint16Array(4*2),t=new Float64Array(4*3);return t[0]=n.x,t[1]=n.y,t[2]=n.z,t[3]=p.x,t[4]=n.y,t[5]=n.z,t[6]=p.x,t[7]=p.y,t[8]=n.z,t[9]=n.x,t[10]=p.y,t[11]=n.z,r.position=new s({componentDatatype:f.DOUBLE,componentsPerAttribute:3,values:t}),e[0]=0,e[1]=1,e[2]=1,e[3]=2,e[4]=2,e[5]=3,e[6]=3,e[7]=0,new y({attributes:r,indices:e,primitiveType:d.LINES,boundingSphere:new c(a.ZERO,Math.sqrt(2))})};var u=o;function w(r,e){return i(e)&&(r=u.unpack(r,e)),u.createGeometry(r)}var D=w;export{D as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonGeometry.js index e80972faf..aaaac0817 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,y=l*l*d*d,E=f*f*p*p,_=h*h*m*m,v=y+E+_,T=Math.sqrt(1/v),g=e.multiplyByScalar(r,T,a);if(v<s)return isFinite(T)?e.clone(g,c):void 0;var R=u.x,A=u.y,S=u.z,I=o;I.x=g.x*R*2,I.y=g.y*A*2,I.z=g.z*S*2;var w,O,N,x,M,C,P,b,D,U,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,N=1/(1+F*R),x=1/(1+F*A),M=1/(1+F*S),C=N*N,P=x*x,b=M*M,D=C*N,U=P*x,L=b*M,w=y*C+E*P+_*b-1,O=y*D*R+E*U*A+_*L*S;B=w/(-2*O)}while(Math.abs(w)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*x,c.z=h*M,c):new e(l*N,f*x,h*M)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,y=n(r)?r._centerToleranceSquared:d,E=o(t,p,m,y,c);if(n(E)){var _=e.multiplyComponents(E,m,s);_=e.normalize(_,_);var v=e.subtract(t,E,l),T=Math.atan2(_.y,_.x),g=Math.asin(_.z),R=a.sign(e.dot(v,t))*e.magnitude(v);return n(i)?(i.longitude=T,i.latitude=g,i.height=R,i):new u(T,g,R)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,y=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,y),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var y=t.cartesianToCartographic(e[p]);o=Math.min(o,y.longitude),c=Math.max(c,y.longitude),h=Math.min(h,y.latitude),d=Math.max(d,y.latitude);var E=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;l=Math.min(l,E),f=Math.max(f,E)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var y=1;y<8;++y)m.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingRectangle",["./Cartesian2","./Cartographic","./Check","./defaultValue","./defined","./GeographicProjection","./Intersect","./Rectangle"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.width=n(r,0),this.height=n(i,0)}s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.width,t[r]=e.height,t},s.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new s),r.x=e[t++],r.y=e[t++],r.width=e[t++],r.height=e[t],r},s.fromPoints=function(e,t){if(i(t)||(t=new s),!i(e)||0===e.length)return t.x=0,t.y=0,t.width=0,t.height=0,t;for(var r=e.length,n=e[0].x,a=e[0].y,o=e[0].x,u=e[0].y,c=1;c<r;c++){var l=e[c],f=l.x,h=l.y;n=Math.min(f,n),o=Math.max(f,o),a=Math.min(h,a),u=Math.max(h,u)}return t.x=n,t.y=a,t.width=o-n,t.height=u-a,t};var c=new a,l=new t,f=new t;return s.fromRectangle=function(t,r,a){if(i(a)||(a=new s),!i(t))return a.x=0,a.y=0,a.width=0,a.height=0,a;r=n(r,c);var o=r.project(u.southwest(t,l)),h=r.project(u.northeast(t,f));return e.subtract(h,o,h),a.x=o.x,a.y=o.y,a.width=h.x,a.height=h.y,a},s.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new s(e.x,e.y,e.width,e.height)},s.union=function(e,t,r){i(r)||(r=new s);var n=Math.min(e.x,t.x),a=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),u=Math.max(e.y+e.height,t.y+t.height);return r.x=n,r.y=a,r.width=o-n,r.height=u-a,r},s.expand=function(e,t,r){r=s.clone(e,r);var n=t.x-r.x,i=t.y-r.y;return n>r.width?r.width=n:n<0&&(r.width-=n,r.x=t.x),i>r.height?r.height=i:i<0&&(r.height-=i,r.y=t.y),r},s.intersect=function(e,t){var r=e.x,n=e.y,i=t.x,a=t.y;return r>i+t.width||r+e.width<i||n+e.height<a||n>a+t.height?o.OUTSIDE:o.INTERSECTING},s.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.intersect=function(e){return s.intersect(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){ -this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,y=e[s.getElementIndex(h,h)],E=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(y-E)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),y=2*(a+l),E=2*(i+h),_=-r+u-f+d,v=2*(c-o),T=2*(a-l),g=2*(c+o),R=-r-u+f+d;return n(t)?(t[0]=p,t[1]=E,t[2]=T,t[3]=m,t[4]=_,t[5]=g,t[6]=y,t[7]=v,t[8]=R,t):new s(p,m,y,E,_,v,T,g,R)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,y=-o,E=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=y,t[3]=f,t[4]=p,t[5]=E,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,y,E,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],y=new s,E=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,y),s.transpose(y,E),s.multiply(h,y,h),s.multiply(E,h,h),s.multiply(o,y,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,y){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(y,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,y=t.z*t.z,E=t.z*t.w,_=t.w*t.w,v=s-d-y+_,T=2*(c-E),g=2*(f+m),R=2*(c+E),A=-s+d-y+_,S=2*(p-h),I=2*(f-m),w=2*(p+h),O=-s-d+y+_;return n[0]=v*a,n[1]=R*a,n[2]=I*a,n[3]=0,n[4]=T*o,n[5]=A*o,n[6]=w*o,n[7]=0,n[8]=g*u,n[9]=S*u,n[10]=O*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,y=f.z,E=d.x,_=d.y,v=d.z,T=n.x,g=n.y,R=n.z,A=u*-T+s*-g+c*-R,S=E*-T+_*-g+v*-R,I=p*T+m*g+y*R;return i(r)?(r[0]=u,r[1]=E,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=v,r[10]=-y,r[11]=0,r[12]=A,r[13]=S,r[14]=I,r[15]=1,r):new l(u,s,c,A,E,_,v,S,-p,-m,-y,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,y=o+l,E=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=y,i[14]=E,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var y=new e;l.getMaximumScale=function(t){return l.getScale(t,y),e.maximumComponent(y)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],y=e[13],E=e[14],_=e[15],v=t[0],T=t[1],g=t[2],R=t[3],A=t[4],S=t[5],I=t[6],w=t[7],O=t[8],N=t[9],x=t[10],M=t[11],C=t[12],P=t[13],b=t[14],D=t[15],U=n*v+u*T+f*g+m*R,L=i*v+s*T+h*g+y*R,F=a*v+c*T+d*g+E*R,B=o*v+l*T+p*g+_*R,z=n*A+u*S+f*I+m*w,q=i*A+s*S+h*I+y*w,G=a*A+c*S+d*I+E*w,V=o*A+l*S+p*I+_*w,W=n*O+u*N+f*x+m*M,H=i*O+s*N+h*x+y*M,X=a*O+c*N+d*x+E*M,k=o*O+l*N+p*x+_*M,Y=n*C+u*P+f*b+m*D,j=i*C+s*P+h*b+y*D,Z=a*C+c*P+d*b+E*D,K=o*C+l*P+p*b+_*D;return r[0]=U,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=H,r[10]=X,r[11]=k,r[12]=Y,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],y=t[1],E=t[2],_=t[4],v=t[5],T=t[6],g=t[8],R=t[9],A=t[10],S=t[12],I=t[13],w=t[14],O=n*m+o*y+c*E,N=i*m+u*y+l*E,x=a*m+s*y+f*E,M=n*_+o*v+c*T,C=i*_+u*v+l*T,P=a*_+s*v+f*T,b=n*g+o*R+c*A,D=i*g+u*R+l*A,U=a*g+s*R+f*A,L=n*S+o*I+c*w+h,F=i*S+u*I+l*w+d,B=a*S+s*I+f*w+p;return r[0]=O,r[1]=N,r[2]=x,r[3]=0,r[4]=M,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=D,r[10]=U,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],y=t[4],E=t[5],_=t[6],v=t[7],T=t[8],g=n*h+o*d+c*p,R=i*h+u*d+l*p,A=a*h+s*d+f*p,S=n*m+o*y+c*E,I=i*m+u*y+l*E,w=a*m+s*y+f*E,O=n*_+o*v+c*T,N=i*_+u*v+l*T,x=a*_+s*v+f*T;return r[0]=g,r[1]=R,r[2]=A,r[3]=0,r[4]=S,r[5]=I,r[6]=w,r[7]=0,r[8]=O,r[9]=N,r[10]=x,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var E=new e;l.multiplyByUniformScale=function(e,t,r){return E.x=t,E.y=t,E.z=t,l.multiplyByScale(e,E,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,g=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],y=e[6],E=e[10],R=e[14],A=e[3],S=e[7],I=e[11],w=e[15],O=E*w,N=R*I,x=y*w,M=R*S,C=y*I,P=E*S,b=m*w,D=R*A,U=m*I,L=E*A,F=m*S,B=y*A,z=O*h+M*d+C*p-(N*h+x*d+P*p),q=N*f+b*d+L*p-(O*f+D*d+U*p),G=x*f+D*h+F*p-(M*f+b*h+B*p),V=P*f+U*h+B*d-(C*f+L*h+F*d),W=N*i+x*a+P*o-(O*i+M*a+C*o),H=O*n+D*a+U*o-(N*n+b*a+L*o),X=M*n+b*i+B*o-(x*n+D*i+F*o),k=C*n+L*i+F*a-(P*n+U*i+B*a);O=a*p,N=o*d,x=i*p,M=o*h,C=i*d,P=a*h,b=n*p,D=o*f,U=n*d,L=a*f,F=n*h,B=i*f;var Y=O*S+M*I+C*w-(N*S+x*I+P*w),j=N*A+b*I+L*w-(O*A+D*I+U*w),Z=x*A+D*S+F*w-(M*A+b*S+B*w),K=P*A+U*S+B*I-(C*A+L*S+F*I),J=x*E+P*R+N*y-(C*R+O*y+M*E),Q=U*R+O*m+D*E-(b*E+L*R+N*m),$=b*y+B*R+M*m-(F*R+x*m+D*y),ee=F*E+C*m+L*y-(U*y+B*E+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),g))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=H*te,r[6]=X*te,r[7]=k*te,r[8]=Y*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,y=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=y,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,y=new e,E=new e,_=new e,v=new e,T=new e,g=new e,R=new e,A=new e,S=new e,I=new e,w=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,y),c=e.clone(a,E),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var w=a.x,O=a.y,N=a.z;w<o.x&&e.clone(a,o),w>c.x&&e.clone(a,c),O<u.y&&e.clone(a,u),O>l.y&&e.clone(a,l),N<s.z&&e.clone(a,s),N>f.z&&e.clone(a,f)}var x=e.magnitudeSquared(e.subtract(c,o,g)),M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=o,b=c,D=x;M>D&&(D=M,P=u,b=l),C>D&&(D=C,P=s,b=f);var U=R;U.x=.5*(P.x+b.x),U.y=.5*(P.y+b.y),U.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,U,g)),F=Math.sqrt(L),B=A;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,g));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,U,g));if(W>L){var H=Math.sqrt(W);F=.5*(F+H),L=F*F;var X=H-F;U.x=(F*U.x+X*a.x)/H,U.y=(F*U.y+X*a.y)/H,U.z=(F*U.z+X*a.z)/H}}return F<G?(e.clone(U,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var O=new o,N=new e,x=new e,M=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,O),h.southwest(t,M),M.height=a,h.northeast(t,C),C.height=o;var s=r.project(M,N),c=r.project(C,x),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,y),h=e.clone(u,E),w=e.clone(u,_),O=e.clone(u,v),N=t.length;for(s=0;s<N;s+=a){var x=t[s]+r.x,M=t[s+1]+r.y,C=t[s+2]+r.z;u.x=x,u.y=M,u.z=C,x<c.x&&e.clone(u,c),x>h.x&&e.clone(u,h),M<l.y&&e.clone(u,l),M>w.y&&e.clone(u,w),C<f.z&&e.clone(u,f),C>O.z&&e.clone(u,O)}var P=e.magnitudeSquared(e.subtract(h,c,g)),b=e.magnitudeSquared(e.subtract(w,l,g)),D=e.magnitudeSquared(e.subtract(O,f,g)),U=c,L=h,F=P;b>F&&(F=b,U=l,L=w),D>F&&(F=D,U=f,L=O);var B=R;B.x=.5*(U.x+L.x),B.y=.5*(U.y+L.y),B.z=.5*(U.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,g)),q=Math.sqrt(z),G=A;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=w.y,V.z=O.z;var W=e.midpoint(G,V,I),H=0;for(s=0;s<N;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var X=e.magnitude(e.subtract(u,W,g));X>H&&(H=X);var k=e.magnitudeSquared(e.subtract(u,B,g));if(k>z){var Y=Math.sqrt(k);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<H?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=H),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,E),f=e.clone(a,_),h=e.clone(a,v),w=t.length;for(o=0;o<w;o+=3){var O=t[o]+r[o],N=t[o+1]+r[o+1],x=t[o+2]+r[o+2];a.x=O,a.y=N,a.z=x,O<u.x&&e.clone(a,u),O>l.x&&e.clone(a,l),N<s.y&&e.clone(a,s),N>f.y&&e.clone(a,f),x<c.z&&e.clone(a,c),x>h.z&&e.clone(a,h)}var M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=e.magnitudeSquared(e.subtract(h,c,g)),b=u,D=l,U=M;C>U&&(U=C,b=s,D=f),P>U&&(U=P,b=c,D=h);var L=R;L.x=.5*(b.x+D.x),L.y=.5*(b.y+D.y),L.z=.5*(b.z+D.z);var F=e.magnitudeSquared(e.subtract(D,L,g)),B=Math.sqrt(F),z=A;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<w;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2] -;var W=e.magnitude(e.subtract(a,G,g));W>V&&(V=W);var H=e.magnitudeSquared(e.subtract(a,L,g));if(H>F){var X=Math.sqrt(H);B=.5*(B+X),F=B*B;var k=X-B;L.x=(B*L.x+k*a.x)/X,L.y=(B*L.y+k*a.y)/X,L.z=(B*L.z+k*a.z)/X}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var D=new e,U=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,U),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,H=new e,X=new e,k=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,H);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,k),h=e.negate(c,X),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var y=p.length,E=0;E<y;++E){var _=p[E];e.add(o,_,_);var v=a.cartesianToCartographic(_,Y);r.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,g=o.y,R=o.z;return o.x=R,o.y=T,o.z=g,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return w*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=E,m(l,e),f=l=g,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return y(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,y,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(y=d.progress,m=function(e){h.push(e),--l||(p=m=E,d.reject(h))},p=function(e){f.push(e),--c||(p=m=E,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,y);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return y(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},v.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function y(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function E(){}function _(e){return e}var v,T,g;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(g,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(g,t)})})}},T=[].slice,v=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,w=o(e[1]))}return I}function s(){return u()&&w}function c(){if(!t(O)&&(O=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,N=o(e[1]))}return O}function l(){return c()&&N}function f(){if(!t(x)){x=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(x=!0,M=o(e[1]),M.isNightly=!!e[2])}return x}function h(){return f()&&M}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,D=o(e[1]))}return b}function y(){return m()&&D}function E(){if(!t(U)){U=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,L=o(e[1]))}return U}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function v(){return E()&&L}function T(){return t(B)||(B=!E()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function g(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function R(){return g()?z:void 0}function A(){return A._result}var S;S="undefined"!=typeof navigator?navigator:{};var I,w,O,N,x,M,C,P,b,D,U,L,F,B,z,q;A._promise=void 0,A._result=void 0,A.initialize=function(){if(t(A._promise))return A._promise;var e=a.defer();if(A._promise=e.promise,m())return A._result=!1,e.resolve(A._result),e.promise;var r=new Image;return r.onload=function(){A._result=r.width>0&&r.height>0,e.resolve(A._result)},r.onerror=function(){A._result=!1,e.resolve(A._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(A,{initialized:{get:function(){return t(A._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:y,isFirefox:E,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:g,supportsWebP:A,imageRenderingValue:R,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){var t=e._uSquared,r=e._ellipsoid.maximumRadius,n=e._ellipsoid.minimumRadius,i=(r-n)/r,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),m=t/4,y=m*m,E=y*m,_=y*y,v=1+m-3*y/4+5*E/4-175*_/64,T=1-m+15*y/8-35*E/8,g=1-3*m+35*y/4,R=1-5*m,A=v*l-T*Math.sin(2*l)*m/2-g*Math.sin(4*l)*y/16-R*Math.sin(6*l)*E/48-5*Math.sin(8*l)*_/512,S=e._constants;S.a=r,S.b=n,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=m,S.u4Over16=y,S.u6Over64=E,S.u8Over256=_,S.a0=v,S.a1=T,S.a2=g,S.a3=R,S.distanceRatio=A}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,r,n,i,a,o){var u=c(e,r);return(1-u)*e*t*(n+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,r,n,i,a,o){var s,c,f,h,d,p=(t-r)/t,m=a-n,y=Math.atan((1-p)*Math.tan(i)),E=Math.atan((1-p)*Math.tan(o)),_=Math.cos(y),v=Math.sin(y),T=Math.cos(E),g=Math.sin(E),R=_*T,A=_*g,S=v*g,I=v*T,w=m,O=u.TWO_PI,N=Math.cos(w),x=Math.sin(w);do{N=Math.cos(w),x=Math.sin(w);var M=A-I*N;f=Math.sqrt(T*T*x*x+M*M),c=S+R*N,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=R*x/f,h=1-C*C),O=w,d=c-2*S/h,isNaN(d)&&(d=0),w=m+l(p,C,h,s,f,c,d)}while(Math.abs(w-O)>u.EPSILON12);var P=h*(t*t-r*r)/(r*r),b=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,U=d*d,L=D*f*(d+D*(c*(2*U-1)-D*d*(4*f*f-3)*(4*U-3)/6)/4),F=r*b*(s-L),B=Math.atan2(T*x,A-I*N),z=Math.atan2(_*x,A*N-I);e._distance=F,e._startHeading=B,e._endHeading=z,e._uSquared=P}function h(r,n,i,a){e.normalize(a.cartographicToCartesian(n,m),p),e.normalize(a.cartographicToCartesian(i,m),m);f(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude),r._start=t.clone(n,r._start),r._end=t.clone(i,r._end),r._start.height=0,r._end.height=0,s(r)}function d(e,r,a){var u=n(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(r)&&h(this,e,r,u)}var p=new e,m=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,r){ -var n=this._constants,a=n.distanceRatio+e/n.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,m=a*p,y=n.u8Over256,E=n.u2Over4,_=n.u6Over64,v=n.u4Over16,T=2*m*y*o/3+a*(1-E+7*v/4-15*_/4+579*y/64-(v-15*_/4+187*y/16)*o-(5*_/4-115*y/16)*u-29*y*s/16)+(E/2-v+71*_/32-85*y/16)*c+(5*v/16-5*_/4+383*y/96)*f-p*((_-11*y/2)*c+5*y*f/2)+(29*_/96-29*y/16)*h+539*y*d/1536,g=Math.asin(Math.sin(T)*n.cosineAlpha),R=Math.atan(n.a/n.b*Math.tan(g));T-=n.sigma;var A=Math.cos(2*n.sigma+T),S=Math.sin(T),I=Math.cos(T),w=n.cosineU*I,O=n.sineU*S,N=Math.atan2(S*n.sineHeading,w-O*n.cosineHeading),x=N-l(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,S,I,A);return i(r)?(r.longitude=this._start.longitude+x,r.latitude=R,r.height=0,r):new t(this._start.longitude+x,R,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,u=o*n,s=u*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*n),m=Math.cos(2*n),y=Math.sin(4*n),E=Math.cos(4*n),_=Math.sin(6*n),v=Math.cos(6*n),T=Math.sin(8*n),g=Math.cos(8*n),R=Math.sin(10*n);return n+n*s/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*m+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*E+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*v+(1097*n*h/65536+42783*n*d/1048576)*g+8011*n*d/1048576*Math.cos(10*n)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*y+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*R+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var u=e._heading,l=a-n,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===r)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,_),E),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;r._ellipticitySquared=(s-c)/s,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function m(e,r,n,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(r))>s.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var y=f(o,e.latitude),E=f(o,d);p=Math.tan(r)*(E-y),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var v=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-m*v*v)}p=n/_,h=r>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function y(e,r,a){var o=n(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&p(this,e,r,o)}var E=new e,_=new e;return a(y.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),y.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var E=m(e,t,r,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new y(e,E,c):(o.setEndPoints(e,E),o)},y.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},y.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},y.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},y.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(r)||(r=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return r.longitude=e,r.latitude=u.latitude,r.height=0,r;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return r.longitude=e,r.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),r.height=0,r}var c,l=u.latitude,f=n*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=n*Math.sin(c),y=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(y/d,n/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return r.longitude=e,r.latitude=p,r.height=0,r},y.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},y}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,r,n,i){"use strict";function a(t,i,a){this.minimum=e.clone(r(t,e.ZERO)),this.maximum=e.clone(r(i,e.ZERO)),a=n(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,r){if(n(r)||(r=new a),!n(t)||0===t.length)return r.minimum=e.clone(e.ZERO,r.minimum),r.maximum=e.clone(e.ZERO,r.maximum),r.center=e.clone(e.ZERO,r.center),r;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,y=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(y,u),l=Math.max(y,l)}var E=r.minimum;E.x=i,E.y=o,E.z=u;var _=r.maximum;return _.x=s,_.y=c,_.z=l,r.center=e.midpoint(E,_,r.center),r},a.clone=function(t,r){if(n(t))return n(r)?(r.minimum=e.clone(t.minimum,r.minimum),r.maximum=e.clone(t.maximum,r.maximum),r.center=e.clone(t.center,r.center),r):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,r){return t===r||n(t)&&n(r)&&e.equals(t.center,r.center)&&e.equals(t.minimum,r.minimum)&&e.equals(t.maximum,r.maximum)};var o=new e;return a.intersectPlane=function(t,r){o=e.subtract(t.maximum,t.minimum,o);var n=e.multiplyByScalar(o,.5,o),a=r.normal,u=n.x*Math.abs(a.x)+n.y*Math.abs(a.y)+n.z*Math.abs(a.z),s=e.dot(t.center,a)+r.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,y=u*c-d,E=4*p*y-m*m;if(E<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=y,T=-c*m+2*s*y);var g=T<0?-1:1,R=-g*Math.abs(_)*Math.sqrt(-E);a=-T+R;var A=a/2,S=A<0?-Math.pow(-A,1/3):Math.pow(A,1/3),I=a===R?-S:-v/S;return i=v<=0?S+I:-T/(S*S+I*I+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var w=p,O=-2*u*p+o*m,N=y,x=-c*m+2*s*y,M=Math.sqrt(E),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*M,-O)/3);i=2*Math.sqrt(-w);var b=Math.cos(P);a=i*b;var D=i*(-b/2-C*Math.sin(P)),U=a+D>2*u?a-u:D-u,L=o,F=U/L;P=Math.abs(Math.atan2(c*M,-x)/3),i=2*Math.sqrt(-N),b=Math.cos(P),a=i*b,D=i*(-b/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-U*z-L*B,W=U*B,H=(s*V-u*W)/(-u*V+s*G);return F<=H?F<=q?H<=q?[F,H,q]:[F,q,H]:[q,F,H]:F<=q?[H,F,q]:H<=q?[H,q,F]:[q,H,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,y=p[0],E=p[1];if(y>=0&&E>=0){var _=Math.sqrt(y),v=Math.sqrt(E);return[h-v,h-_,h+_,h+v]}if(y>=0&&E<0)return m=Math.sqrt(y),[h-m,h+m];if(y<0&&E>=0)return m=Math.sqrt(E),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),g=(s+d-c/T)/2,R=(s+d+c/T)/2,A=n.computeRealRoots(1,T,g),S=n.computeRealRoots(1,-T,R);return 0!==A.length?(A[0]+=h,A[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,A[1]<=S[0]?[A[0],A[1],S[0],S[1]]:S[1]<=A[0]?[S[0],S[1],A[0],A[1]]:A[0]>=S[0]&&A[1]<=S[1]?[S[0],A[0],A[1],S[1]]:S[0]>=A[0]&&S[1]<=A[1]?[A[0],S[0],S[1],A[1]]:A[0]>S[0]&&A[0]<S[1]?[S[0],A[0],S[1],A[1]]:[A[0],S[0],A[1],S[1]]):A):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,y=d[0],E=i-y,_=E*E,v=t/2,T=E/2,g=_-4*o,R=_+4*Math.abs(o),A=c-4*y,S=c+4*Math.abs(y);if(y<0||g*S<A*R){var I=Math.sqrt(A);p=I/2,m=0===I?0:(t*T-a)/I}else{var w=Math.sqrt(g);p=0===w?0:(t*T-a)/w,m=w/2}var O,N;0===v&&0===p?(O=0,N=0):r.sign(v)===r.sign(p)?(O=v+p,N=y/O):(N=v-p,O=y/N);var x,M;0===T&&0===m?(x=0,M=0):r.sign(T)===r.sign(m)?(x=T+m,M=o/x):(M=T-m,x=o/M);var C=n.computeRealRoots(1,O,x),P=n.computeRealRoots(1,N,M);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,R);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),y=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,E=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),v=[];if(0===_&&0===E){if(l=s.computeRealRoots(p,m,y),0===l.length)return v;var T=l[0],g=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-g)),v.push(new e(i,a*T,a*g)),2===l.length){var R=l[1],A=Math.sqrt(Math.max(1-R*R,0));v.push(new e(i,a*R,a*-A)),v.push(new e(i,a*R,a*A))}return v}var S=_*_,I=E*E,w=p*p,O=_*E,N=w+I,x=2*(m*p+O),M=2*y*p+m*m-I+S,C=2*(y*m-O),P=y*y-S;if(0===N&&0===x&&0===M&&0===C)return v;l=c.computeRealRoots(N,x,M,C,P);var b=l.length;if(0===b)return v;for(var D=0;D<b;++D){var U,L=l[D],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);U=o.sign(p)===o.sign(y)?d(p*F+y,m*L,o.EPSILON12):o.sign(y)===o.sign(m*L)?d(p*F,m*L+y,o.EPSILON12):d(p*F+m*L,y,o.EPSILON12);var q=d(E*L,_,o.EPSILON15),G=U*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++D):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var y=new e,E=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,y),g=e.subtract(a,n,E),R=e.cross(p,g,_),A=e.dot(m,R);if(u){if(A<o.EPSILON6)return;if(s=e.subtract(d,n,v),(l=e.dot(s,R))<0||l>A)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>A)return;h=e.dot(g,c)/A}else{if(Math.abs(A)<o.EPSILON6)return;var S=1/A;if(s=e.subtract(d,n,v),(l=e.dot(s,R)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(g,c)*S}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var g=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=g;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var R={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var A=new l;m.lineSegmentSphere=function(t,r,i,a){var o=A;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,y=n/s;return m<y?new a(m,y):{start:y,stop:m}}var E=Math.sqrt(n/i);return new a(E,E)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var w=new e,O=new e,N=new e,x=new e,M=new e,C=new u,P=new u,b=new u,D=new u,U=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,w);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,w),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,x),d=e.normalize(e.cross(h,f,O),O),m=e.normalize(e.cross(f,d,N),N),y=C;y[0]=f.x,y[1]=f.y,y[2]=f.z,y[3]=d.x,y[4]=d.y,y[5]=d.z,y[6]=m.x,y[7]=m.y,y[8]=m.z;var E=u.transpose(y,P),_=u.fromScale(r.radii,b),v=u.fromScale(r.oneOverRadii,D),T=U;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var g,R,A=u.multiply(u.multiply(E,v,L),T,L),S=u.multiply(u.multiply(A,_,F),y,F),I=u.multiplyByVector(A,i,M),G=p(S,e.negate(I,w),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),H=Number.NEGATIVE_INFINITY,X=0;X<V;++X){g=u.multiplyByVector(_,u.multiplyByVector(y,G[X],B),B);var k=e.normalize(e.subtract(g,i,x),x),Y=e.dot(k,a);Y>H&&(H=Y,W=e.clone(g,W))}var j=r.cartesianToCartographic(W,q);return H=o.clamp(H,0,1),R=e.magnitude(e.subtract(W,i,x))*Math.sqrt(1-H*H),R=c?-R:R,j.height=R,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,y,E;if("%%"==e)return"%";for(var _=!1,v="",T=!1,g=!1,R=" ",A=s.length,S=0;s&&S<A;S++)switch(s.charAt(S)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":R=s.charAt(S+1);break;case"0":T=!0;break;case"#":g=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,E=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(E),_,c,f,T,R);case"c":return u(String.fromCharCode(+E),_,c,f,T);case"b":return o(E,2,g,_,c,f,T);case"o":return o(E,8,g,_,c,f,T);case"x":return o(E,16,g,_,c,f,T);case"X":return o(E,16,g,_,c,f,T).toUpperCase();case"u":return o(E,10,g,_,c,f,T);case"i":case"d":return d=+E||0,d=Math.round(d-d%1),p=d<0?"-":v,E=p+i(String(Math.abs(d)),f,"0",!1),a(E,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+E,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],y=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],E=p+Math.abs(d)[m](f),a(E,p,_,c,T)[y]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var y=new a,E=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,g=/^(\d{4})-?(\d{3})$/,R=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,A=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+S.source,w=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,y=0,_=0,S=0,N=u[0],x=u[1];if(null!==(u=N.match(A)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=N.match(T)))r=+u[1],s=+u[2];else if(null!==(u=N.match(v)))r=+u[1];else{var M;if(null!==(u=N.match(g)))r=+u[1],M=+u[2],a=o(r);else if(null!==(u=N.match(R))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));M=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(M),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(x)){u=x.match(O),null!==u?(h=+u[1],y=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=x.match(w),null!==u?(h=+u[1],y=+u[2],_=60*+(u[3]||0),D=4):null!==(u=x.match(I))&&(h=+u[1],y=60*+(u[2]||0),D=3));var U=u[D],L=+u[D+1],F=+(u[D+2]||0);switch(U){case"+":h-=L,y-=F;break;case"-":h+=L,y+=F;break;case"Z":break;default:y+=new Date(Date.UTC(r,s-1,l,h,y)).getTimezoneOffset()}}var B=60===_;for(B&&_--;y>=60;)y-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:E[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:E[s-1];for(;y<0;)y+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:E[s-1],l+=i;var z=p(r,s,l,h,y,_,S);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var N=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,N);n(i)||(m.addSeconds(e,-1,N),i=h(N,N),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var y=d+2-12*c|0,E=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var g=0|v,R=(v-g)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(g+=1),n(t)?(t.year=E,t.month=y,t.day=p,t.hour=_,t.minute=T,t.second=g,t.millisecond=R,t.isLeapSecond=r,t):new a(E,y,p,_,T,g,R,r)},m.toDate=function(e){var t=m.toGregorianDate(e,y),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,y),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query, -this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function y(e){return function(t){e.state!==l.CANCELLED&&(--g.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function E(e){return function(t){e.state!==l.CANCELLED&&(++g.numberOfFailedRequests,--g.numberOfActiveRequests,--I[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++g.numberOfActiveRequests,++g.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(y(e)).otherwise(E(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++g.numberOfCancelledRequests,e.deferred.reject(),t&&(--g.numberOfActiveRequests,--I[e.serverKey],++g.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===g.numberOfActiveRequests&&g.lastNumberOfActiveRequests>0&&(g.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+g.numberOfAttemptedRequests),g.numberOfAttemptedRequests=0),g.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+g.numberOfCancelledRequests),g.numberOfCancelledRequests=0),g.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+g.numberOfCancelledActiveRequests),g.numberOfCancelledActiveRequests=0),g.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+g.numberOfFailedRequests),g.numberOfFailedRequests=0)),g.lastNumberOfActiveRequests=g.numberOfActiveRequests)}var g={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},R=20,A=new u({comparator:f});A.maximumLength=R,A.reserve(R);var S=[],I={},w="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return g}},priorityHeapLength:{get:function(){return R},set:function(e){if(e<R)for(;A.length>e;){var t=A.pop();v(t)}R=e,A.maximumLength=e,A.reserve(e)}}}),h.update=function(){var e,t,r=0,n=S.length;for(e=0;e<n;++e)t=S[e],t.cancelled&&v(t),t.state===l.ACTIVE?r>0&&(S[e-r]=t):++r;S.length-=r;var i=A.internalArray,a=A.length;for(e=0;e<a;++e)d(i[e]);A.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&A.length>0;)t=A.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(w);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++g.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=A.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;A.length>0;){v(A.pop())}for(var e=S.length,t=0;t<e;++t)v(S[t]);S.length=0,I={},g.numberOfAttemptedRequests=0,g.numberOfActiveRequests=0,g.numberOfCancelledRequests=0,g.numberOfCancelledActiveRequests=0,g.numberOfFailedRequests=0,g.numberOfActiveRequestsEver=0,g.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=A,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R,A,S,I){"use strict";function w(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=r?M(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function N(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function x(e){if(e.state===A.ISSUED||e.state===A.ACTIVE)throw new S("The Resource is already being fetched.");e.state=A.UNISSUED,e.deferred=void 0}function M(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);w(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=R.request(a);if(u(o))return o.otherwise(function(e){return a.state!==A.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=R.request(a);if(u(o))return o.otherwise(function(i){return a.state!==A.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function U(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return U(n,i);case"blob":var a=U(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new g(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new S("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new g)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);w(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return y(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);w(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(x(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),x(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;x(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=R.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==A.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=A.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new g(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new g)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return E(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var y=e._samples=r.samples,E=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,g=y.length;T<g;T+=e._columnCount){var R=y[T+i],A=y[T+m],S=R+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(S,A,f.TAI);if(E.push(I),v){if(A!==_&&n(_)){var w=o.leapSeconds,O=t(w,I,d);if(O<0){var N=new u(I,A);w.splice(~O,0,N)}}_=A}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn], -i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function y(e,t,r){return t+e*(r-t)}function E(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],E=r[d+e._ut1MinusUtcSecondsColumn],_=E-p;if(_>.5||_<-.5){var v=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(n)?p=E:E-=T-v)}return u.xPoleWander=y(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=y(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=y(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=y(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=y(f,p,E),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,E(this,a,this._samples,e,s,l,r),r}var y=t(a,e,o.compare,this._dateColumn);return y>=0?(y<a.length-1&&a[y+1].equals(e)&&++y,s=y,l=y):(l=~y,(s=l-1)<0&&(s=0)),this._lastIndex=s,E(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,y=a-s*this._stepSizeDays,E=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)E[p]=y-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=E[m]);v[p]*=_[p];var g=3*(s+p);r.x+=v[p]*d[g++],r.y+=v[p]*d[g++],r.s+=v[p]*d[g]}return r}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var y=l,E=0;d>h&&(E=1),p>h&&p>d&&(E=2);var _=y[E],v=y[_];r=Math.sqrt(e[u.getElementIndex(E,E)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[E]=.5*r,r=.5/r,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*r,T[_]=(e[u.getElementIndex(_,E)]+e[u.getElementIndex(E,_)])*r,T[v]=(e[u.getElementIndex(v,E)]+e[u.getElementIndex(E,v)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var y=new e,E=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,y);var u=s.computeAngle(_);n[o]=y.x*u,n[o+1]=y.y*u,n[o+2]=y.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,E);var u=e.magnitude(E);return s.unpack(r,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(E,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var g=new s;s.lerp=function(e,t,r,n){return g=s.multiplyByScalar(t,r,g),n=s.multiplyByScalar(e,1-r,n),s.add(g,n,n)};var R=new s,A=new s,S=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=R=s.negate(t,R)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return A=s.multiplyByScalar(e,Math.sin((1-r)*u),A),S=s.multiplyByScalar(a,Math.sin(r*u),S),n=s.add(A,S,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,w=new e,O=new s,N=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,O);s.multiply(a,n,N);var o=s.log(N,I);s.multiply(a,t,N);var u=s.log(N,w);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,O),s.multiply(r,O,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,O),u=s.slerp(r,n,i,N);return s.slerp(o,u,2*i*(1-i),a)};for(var x=new s,M=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=0;U<7;++U){var L=U+1,F=2*L+1;C[U]=1/(L*F),P[U]=L/F}return C[7]=M/136,P[7]=8*M/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,x);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,O),u=s.fastSlerp(r,n,i,N);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T){"use strict";var g={},R={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},A={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},w=new r,O=new r,N=new r;g.localFrameToFixedFrameGenerator=function(e,t){if(!R.hasOwnProperty(e)||!R[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=R[e][t],a=e+t;return u(S[a])?n=S[a]:(n=function(n,a,s){if(u(s)||(s=new _),y.equalsEpsilon(n.x,0,y.EPSILON14)&&y.equalsEpsilon(n.y,0,y.EPSILON14)){var c=y.sign(n.z);r.unpack(A[e],0,w),"east"!==e&&"west"!==e&&r.multiplyByScalar(w,c,w),r.unpack(A[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(A[i],0,N),"east"!==i&&"west"!==i&&r.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),w=I[e],O=I[t],N=I[i]}return s[0]=w.x,s[1]=w.y,s[2]=w.z,s[3]=0,s[4]=O.x,s[5]=O.y,s[6]=O.z,s[7]=0,s[8]=N.x,s[9]=N.y,s[10]=N.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},S[a]=n),n},g.eastNorthUpToFixedFrame=g.localFrameToFixedFrameGenerator("east","north"),g.northEastDownToFixedFrame=g.localFrameToFixedFrameGenerator("north","east"),g.northUpEastToFixedFrame=g.localFrameToFixedFrameGenerator("north","up"),g.northWestUpToFixedFrame=g.localFrameToFixedFrameGenerator("north","west");var x=new v,M=new r(1,1,1),C=new _;g.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,g.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,x),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,M,C);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new E;g.headingPitchRollQuaternion=function(e,t,r,n,i){var a=g.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var D=new r(1,1,1),U=new r,L=new _,F=new _,B=new E,z=new v;g.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,g.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,U);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,D,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=y.TWO_PI/86400,G=new m;g.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%y.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new E(h,d,0,-d,h,0,0,0,1)},g.iau2006XysData=new d,g.earthOrientationParameters=c.NONE;g.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=g.iau2006XysData.preload(r,n,i,a),u=g.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},g.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new E);var r=g.computeFixedToIcrfMatrix(e,t);if(u(r))return E.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),H=new E,X=new E;g.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new E);var r=g.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=g.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=H;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=E.fromRotationZ(-a.s,X),h=E.multiply(l,f,H),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,R=.779057273264+v+.00273781191135448*(_+v);R=R%1*y.TWO_PI;var A=E.fromRotationZ(R,X),S=E.multiply(h,A,H),I=Math.cos(r.xPoleWander),w=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),x=n-2451545+i/T.SECONDS_PER_DAY;x/=36525;var M=-47e-6*x*y.RADIANS_PER_DEGREE/3600,C=Math.cos(M),P=Math.sin(M),b=X;return b[0]=I*C,b[1]=I*P,b[2]=O,b[3]=-w*P+N*O*C,b[4]=w*C+N*O*P,b[5]=-N*I,b[6]=-N*P-w*O*C,b[7]=N*C-w*O*P,b[8]=w*I,E.multiply(S,b,t)}}};var k=new n;g.pointToWindowCoordinates=function(e,t,r,n){return n=g.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},g.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=k;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,Z=new r;g.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,y.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new E),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new E,te=new _,re=new _;return g.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=g.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},g.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=g.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},g}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var n=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=r.fromCartesian4(f.getColumn(n,0,y)),this._yAxis=r.fromCartesian4(f.getColumn(n,1,y));var i=r.fromCartesian4(f.getColumn(n,2,y));this._plane=h.fromPointNormal(e,i)}var y=new n;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var E=new e;m.fromPoints=function(t,r){return new m(e.fromPoints(t,E).center,r)};var _=new d,v=new r;m.prototype.projectPointOntoPlane=function(e,n){var i=_;i.origin=e,r.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,v);if(o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v)),o(a)){var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return o(n)?(n.x=s,n.y=c,n):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var r=0,n=e.length,i=0;i<n;i++){var a=this.projectPointOntoPlane(e[i],t[r]);o(a)&&(t[r]=a,r++)}return t.length=r,t},m.prototype.projectPointToNearestOnPlane=function(e,n){o(n)||(n=new t);var i=_;i.origin=e,r.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,v);o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v));var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return n.x=s,n.y=c,n},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var r=e.length;t.length=r;for(var n=0;n<r;n++)t[n]=this.projectPointToNearestOnPlane(e[n],t[n]);return t};var T=new r;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new r);var n=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=T;return r.multiplyByScalar(a,e.x,s),t=r.add(i,s,t),r.multiplyByScalar(u,e.y,s),r.add(t,s,t),n.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.projectPointOntoEllipsoid(e[n],t[n]);return t},m}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}y.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var E=new r,_=new t,v=new f,T=[new r,new r,new r],g=[new e,new e,new e],R=[new e,new e,new e],A=new t,S=new d,I=new f,w=new c;return y._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,E),h=r.toCartesian(s,a,_),y=m.eastNorthUpToFixedFrame(h,a,v),O=f.inverse(y,v),N=g,x=T;x[0].longitude=o.west,x[0].latitude=o.south,x[1].longitude=o.west,x[1].latitude=o.north,x[2].longitude=o.east,x[2].latitude=o.south;var M=A;for(u=0;u<3;u++)r.toCartesian(x[u],a,M),M=f.multiplyByPointAsVector(O,M,M),N[u].x=M.x,N[u].y=M.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,I),b=n.length,D=Number.POSITIVE_INFINITY,U=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)M=f.multiplyByPointAsVector(O,n[u],M),M=l.multiplyByVector(P,M,M),D=Math.min(D,M.x),U=Math.min(U,M.y),L=Math.max(L,M.x),F=Math.max(F,M.y);var B=c.fromRotation(i,w),z=R;z[0].x=D,z[0].y=U,z[1].x=D,z[1].y=F,z[2].x=L,z[2].y=U;var q=N[0],G=N[2].x-q.x,V=N[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var H=z[0],X=z[1],k=z[2],Y=new Array(6);return e.pack(H,Y),e.pack(X,Y,2),e.pack(k,Y,4),Y},y}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,y,E,_,v;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),y=t.dot(h,d),E=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f) -;if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),y=e.dot(h,d),E=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-y*y,g=1/T;return f.y=(_*E-y*v)*g,f.z=(m*v-y*E)*g,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var y=0,E=u+1;i=1;var _,v,T=[],g=[],R=0,A=[],S=s/3,I=[];for(d=0;d<S;d++)I[d]=!1;for(var w,O;-1!==y;){T=[],v=p[y],O=v.vertexTriangles.length;for(var N=0;N<O;++N)if(m=v.vertexTriangles[N],!I[m]){I[m]=!0,l=m+m+m;for(var x=0;x<3;++x)w=a[l],T.push(w),g.push(w),A[R]=w,++R,_=p[w],--_.numLiveTriangles,E-_.timeStamp>u&&(_.timeStamp=E,++E),++l}y=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,E,g,c)}return A},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R,A,S){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function w(e){for(var t=e.length,r=t/3*6,n=y.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function O(e){var t=e.length;if(t>=3){var r=6*(t-2),n=y.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function N(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=y.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function x(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function M(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),g.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function D(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,E=b(e,t);for(n in E)if(E.hasOwnProperty(n))for(s=E[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:E,primitiveType:A.POINTS})),g=y.createTypedArray(T,v),R=0,S=0;for(a=0;a<h;++a){var I=e[a][t].indices,w=I.length;for(u=0;u<w;++u)g[R++]=S+I[u];S+=d.computeNumberOfVertices(e[a][t])}_=g}var O,N=new i,x=0;for(a=0;a<h;++a){if(O=e[a][t].boundingSphere,!c(O)){N=void 0;break}i.add(O.center,N,N)}if(c(N))for(i.divideByScalar(N,h,N),a=0;a<h;++a){O=e[a][t].boundingSphere;var M=i.magnitude(i.subtract(O.center,N,fe))+O.radius;M>x&&(x=M)}return new d({attributes:E,indices:_,primitiveType:m,boundingSphere:c(N)?new r(N,x):void 0})}function U(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=A.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=A.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=A.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=A.LINES,e}function G(e){switch(e.primitiveType){case A.TRIANGLE_FAN:return L(e);case A.TRIANGLE_STRIP:return F(e);case A.TRIANGLES:return U(e);case A.LINE_STRIP:return z(e);case A.LINE_LOOP:return q(e);case A.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?v.sign(e.y):v.sign(r.y):a>o?v.sign(t.y):v.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function H(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),r),i.clone(r,n),V(r,!0),V(n,!1)}function X(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=xe.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(H(e,t,Ie,Oe),H(e,r,we,Ne),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(H(t,r,Ie,Oe),H(t,e,we,Ne),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(H(r,e,Ie,Oe),H(r,t,we,Ne),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(H(r,e,Ie,Oe),H(r,t,we,Ne),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(H(t,r,Ie,Oe),H(t,e,we,Ne),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(H(e,t,Ie,Oe),H(e,r,we,Ne),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=xe.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=we,s[5]=Oe,s[6]=Ne,s.length=7),xe}}function k(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=y.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function Y(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=k(t,n),r=k(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var y=e.add(d,p,d);e.add(y,m,y),h&&e.normalize(y,y),e.pack(y,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,y,E,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==y){var v=i.fromArray(o,3*e,De),T=i.fromArray(o,3*r,Ue),g=i.fromArray(o,3*n,Le),R=t(a,v,T,g,Fe);if(c(u)&&Ce(e,r,n,R,u,p.normal.values,_,!0),c(h)){var A=i.fromArray(h,3*e,De),S=i.fromArray(h,3*r,Ue),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(A,R.x,A),i.multiplyByScalar(S,R.y,S),i.multiplyByScalar(I,R.z,I);var w;i.equals(A,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(I,i.ZERO)?(w=De,w.x=0,w.y=0,w.z=0):(w=i.add(A,S,A),i.add(w,I,w),i.normalize(w,w)),i.pack(w,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,R,d,p.applyOffset.values,_),c(s)&&Ce(e,r,n,R,s,p.tangent.values,_,!0),c(l)&&Ce(e,r,n,R,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,R,f,p.st.values,_),y>0)for(var O=0;O<y;O++){var N=m[O];J(e,r,n,R,_,E[N],p[N])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Me(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,y,E,_,v,T=d.length,g=Y(t),R=Y(t),A=[];A.length=n.length/3;var S=[];for(S.length=n.length/3,v=0;v<A.length;++v)A[v]=-1,S[v]=-1;var I=h.length;for(v=0;v<I;v+=3){var w=h[v],O=h[v+1],N=h[v+2],x=i.fromArray(n,3*w),M=i.fromArray(n,3*O),C=i.fromArray(n,3*N),P=X(x,M,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,D=P.indices,U=D.length,L=0;L<U;++L){var F=D[L],B=b[F];B.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),_=Q(m,y,E,h,F<3?v+F:-1,B),K(w,O,N,B,n,a,u,o,s,l,f,m,d,T,r,_)}else c(P)&&(x=P.positions[0],M=P.positions[1],C=P.positions[2]),x.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),_=Q(m,y,E,h,v,x),K(w,O,N,x,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,y,E,h,v+1,M),K(w,O,N,M,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,y,E,h,v+2,C),K(w,O,N,C,n,a,u,o,s,l,f,m,d,T,r,_)}j(e,R,g)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,De);i.equalsEpsilon(s,r,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=Y(r),l=Y(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],y=u[t+1],E=i.fromArray(a,3*m,De),T=i.fromArray(a,3*y,Ue);Math.abs(E.y)<v.EPSILON6&&(E.y<0?E.y=-v.EPSILON6:E.y=v.EPSILON6),Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var g=s.attributes,R=s.indices,A=d,S=l.attributes,I=l.indices,w=h,O=_.lineSegmentPlane(E,T,ze,Le);if(c(O)){var N=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);E.y<0&&(i.negate(N,N),g=l.attributes,R=l.indices,A=h,S=s.attributes,I=s.indices,w=d);var x=i.add(O,N,Ge);p=Q(g,R,A,u,t,E),ee(m,y,E,a,p,g,o),p=Q(g,R,A,u,-1,x),ee(m,y,x,a,p,g,o),i.negate(N,N),i.add(O,N,x),p=Q(S,I,w,u,-1,x),ee(m,y,x,a,p,S,o),p=Q(S,I,w,u,t+1,T),ee(m,y,T,a,p,S,o)}else{var M,C,P;E.y<0?(M=l.attributes,C=l.indices,P=h):(M=s.attributes,C=s.indices,P=d),p=Q(M,C,P,u,t,E),ee(m,y,E,a,p,M,o),p=Q(M,C,P,u,t+1,T),ee(m,y,T,a,p,M,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,He);if(!(s.x>0)){var c=i.unpack(n,u,Xe);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,ke);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,y=Y(u),E=Y(u),T=!1,g=l.length/3;for(t=0;t<g;t+=4){var R=t,A=t+2,S=i.fromArray(l,3*R,He),I=i.fromArray(l,3*A,Xe);if(Math.abs(S.y)<Qe)for(S.y=Qe*(I.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,r=3*R;r<3*R+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*R;r<3*R+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var w=y.attributes,O=y.indices,N=E.attributes,x=E.indices,M=_.lineSegmentPlane(S,I,ze,Ye);if(c(M)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),w=E.attributes,O=E.indices,N=y.attributes,x=y.indices);var P=i.add(M,C,Ze);w.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.prevPosition.values.push(f[3*R],f[3*R+1],f[3*R+2]),w.prevPosition.values.push(f[3*R+3],f[3*R+4],f[3*R+5]),w.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(M,C,P),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),N.nextPosition.values.push(h[3*A],h[3*A+1],h[3*A+2]),N.nextPosition.values.push(h[3*A+3],h[3*A+4],h[3*A+5]);var b=n.fromArray(d,2*R,Ve),D=Math.abs(b.y);w.expandAndWidth.values.push(-1,D,1,D),w.expandAndWidth.values.push(-1,-D,1,-D),N.expandAndWidth.values.push(-1,D,1,D),N.expandAndWidth.values.push(-1,-D,1,-D);var U=i.magnitudeSquared(i.subtract(M,S,ke));if(U/=i.magnitudeSquared(i.subtract(I,S,ke)),c(m)){var L=a.fromArray(m,4*R,Ke),F=a.fromArray(m,4*A,Ke),B=v.lerp(L.x,F.x,U),z=v.lerp(L.y,F.y,U),q=v.lerp(L.z,F.z,U),G=v.lerp(L.w,F.w,U);for(r=4*R;r<4*R+8;++r)w.color.values.push(m[r]);for(w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),r=4*A;r<4*A+8;++r)N.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*R,Ve),W=n.fromArray(p,2*(t+3),We),H=v.lerp(V.x,W.x,U);for(r=2*R;r<2*R+4;++r)w.st.values.push(p[r]);for(w.st.values.push(H,V.y),w.st.values.push(H,W.y),N.st.values.push(H,V.y),N.st.values.push(H,W.y),r=2*A;r<2*A+4;++r)N.st.values.push(p[r])}o=w.position.values.length/3-4,O.push(o,o+2,o+1),O.push(o+1,o+2,o+3),o=N.position.values.length/3-4,x.push(o,o+2,o+1),x.push(o+1,o+2,o+3)}else{var X,k;for(S.y<0?(X=E.attributes,k=E.indices):(X=y.attributes,k=y.indices),X.position.values.push(S.x,S.y,S.z),X.position.values.push(S.x,S.y,S.z),X.position.values.push(I.x,I.y,I.z),X.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)X.prevPosition.values.push(f[r]),X.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)X.expandAndWidth.values.push(d[r]),c(p)&&X.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)X.color.values.push(m[r]);o=X.position.values.length/3-4,k.push(o,o+2,o+1),k.push(o+1,o+2,o+3)}}T&&(re(E),re(y)),j(e,E,y)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case A.TRIANGLES:e.indices=w(t);break;case A.TRIANGLE_STRIP:e.indices=O(t);break;case A.TRIANGLE_FAN:e.indices=N(t)}e.primitiveType=A.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,y=e.boundingSphere;return c(y)&&(m=new r(y.center,y.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:A.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=y.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var E in m)if(m.hasOwnProperty(E)&&c(m[E])&&c(m[E].values)){for(var _=m[E],v=_.values,T=0,g=_.componentsPerAttribute,R=u.createTypedArray(_.componentDatatype,p*g);T<t;){var A=n[T];if(-1!==A)for(var S=0;S<g;S++)R[g*A+S]=v[g*T+S];++T}_.values=R}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===A.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=S.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=v.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=x(e.attributes),s=e.indices,l=s.length;e.primitiveType===A.TRIANGLES?n=3:e.primitiveType===A.LINES?n=2:e.primitiveType===A.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,M(u,e.attributes,p)),a.push(m)}o+n>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=x(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var y=i.fromArray(l,m,ae),E=s.cartesianToCartographic(y,oe),_=a.project(E,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new g,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(g.equals(t,g.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(g.inverse(t,ce),g.transpose(ce,ce),g.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=g.clone(g.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(D(t,"geometry")),r.length>0&&(o.push(D(r,"westHemisphereGeometry")),o.push(D(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],y=r[t+2],E=3*d,_=3*m,T=3*y;de.x=a[E],de.y=a[E+1],de.z=a[E+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[y].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var g=0;for(t=0;t<o;t++)c[t].indexOffset+=g,g+=c[t].count;h=0;var R;for(t=0;t<s;t+=3){R=c[r[t]];var A=R.indexOffset+R.currentCount;f[A]=h,R.currentCount++,R=c[r[t+1]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,R=c[r[t+2]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(R=c[t],i.clone(i.ZERO,he),R.count>0){for(h=0;h<R.count;h++)i.add(he,l[f[R.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[R.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),S[I]=he.x,S[I+1]=he.y,S[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var ye=new i,Ee=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],y=r[t+1],E=r[t+2];f=3*m,h=3*y,d=3*E;var _=2*m,v=2*y,T=2*E,g=n[f],R=n[f+1],A=n[f+2],S=o[_],I=o[_+1],w=o[v+1]-I,O=o[T+1]-I,N=1/((o[v]-S)*O-(o[T]-S)*w),x=(O*(n[h]-g)-w*(n[d]-g))*N,M=(O*(n[h+1]-R)-w*(n[d+1]-R))*N,C=(O*(n[h+2]-A)-w*(n[d+2]-A))*N;l[f]+=x,l[f+1]+=M,l[f+2]+=C,l[h]+=x,l[h+1]+=M,l[h+2]+=C,l[d]+=x,l[d+1]+=M,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var D=i.fromArray(a,f,ye),U=i.fromArray(l,f,_e),L=i.dot(D,U);i.multiplyByScalar(D,L,Ee),i.normalize(i.subtract(U,Ee,U),U),P[f]=U.x,P[h]=U.y,P[d]=U.z,i.normalize(i.cross(D,U,U),U),b[f]=U.x,b[h]=U.y,b[d]=U.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new n,Te=new i,ge=new i,Re=new i,Ae=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(Ae=e.octEncodeInRange(Te,65535,Ae),l[f++]=Ae.x,l[f++]=Ae.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),y=c(d);if(!m&&!y)return t;var E,_,v,T,g=t.attributes.tangent,R=t.attributes.bitangent,A=c(g),S=c(R);m&&(E=h.values),y&&(_=d.values),A&&(v=g.values),S&&(T=R.values),a=(m?E.length:_.length)/(m?3:2);var I=a,w=y&&m?2:1;w+=A||S?1:0,I*=w;var O=new Float32Array(I),N=0;for(r=0;r<a;++r){y&&(n.fromArray(_,2*r,ve),O[N++]=e.compressTextureCoordinates(ve));var x=3*r;m&&c(v)&&c(T)?(i.fromArray(E,x,Te),i.fromArray(v,x,ge),i.fromArray(T,x,Re),e.octPack(Te,ge,Re,ve),O[N++]=ve.x,O[N++]=ve.y):(m&&(i.fromArray(E,x,Te),O[N++]=e.octEncodeFloat(Te)),A&&(i.fromArray(v,x,Te),O[N++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,x,Te),O[N++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:w,values:O}),m&&delete t.attributes.normal,y&&delete t.attributes.st,S&&delete t.attributes.bitangent,A&&delete t.attributes.tangent,t};var Se=new i,Ie=new i,we=new i,Oe=new i,Ne=new i,xe={positions:new Array(7),indices:new Array(9)},Me=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>v.EPSILON6?1:0},De=new i,Ue=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=R.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,He=new i,Xe=new i,ke=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,R.ORIGIN_ZX_PLANE)!==E.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===A.TRIANGLES?$(e):t.primitiveType===A.LINES&&te(e);return e},ie}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,r,n){"use strict";function i(e,n,i){if(r(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!n(s,c,a));++u);if(u===o)return i&&n(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],n(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&n(l[0],l[l.length-1],a)&&l.shift(),l}}var a=n.EPSILON10;return i}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,r,i){i=i||2;var a=r&&r.length,o=a?r[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,y;if(a&&(u=s(e,r,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var E=i;E<o;E+=i)p=e[E],m=e[E+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);y=Math.max(h-l,d-f)}return n(u,c,i,l,f,y),c}function t(e,t,r,n,i){var a,o;if(i===N(e,t,r,n)>0)for(a=t;a<r;a+=n)o=I(a,e[a],e[a+1],o);else for(a=r-n;a>=t;a-=n)o=I(a,e[a],e[a+1],o);return o&&v(o,o.next)&&(w(o),o=o.next),o}function r(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!v(n,n.next)&&0!==_(n.prev,n,n.next))n=n.next;else{if(w(n),(n=t=n.prev)===n.next)return null;r=!0}}while(r||n!==t);return t}function n(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,y=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),w(e),e=m.next,y=m.next;else if((e=m)===y){d?1===d?(e=o(e,t,s),n(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):n(r(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,r=e,n=e.next;if(_(t,r,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,r,n){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,r,n),h=p(c,l,t,r,n),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!v(i,a)&&T(i,n,n.next,a)&&R(i,a)&&R(a,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(a.i/r),w(n),w(n.next),n=e=a),n=n.next}while(n!==e);return n}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&E(s,c)){var l=S(s,c);return s=r(s,s.next),l=r(l,l.next),n(s,t,i,a,o,u),void n(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,n,i,a){var o,u,s,f,h,d=[];for(o=0,u=n.length;o<u;o++)s=n[o]*a,f=o<u-1?n[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=r(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var n=S(t,e);r(n,n.next)}}function f(e,t){var r,n=t,i=e.x,a=e.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y){var u=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(u<=i&&u>o){if(o=u,u===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null;if(i===o)return r.prev;var s,c=r,l=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=l&&y(a<f?i:o,a,l,f,a<f?o:i,a,n.x,n.y)&&((s=Math.abs(a-n.y)/(i-n.x))<h||s===h&&n.x>r.x)&&R(n,e)&&(r=n,h=s),n=n.next;return r}function h(e,t,r,n){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,r,n,i,a,o,u,s,c=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,n=r,u=0,t=0;t<c&&(u++,n=n.nextZ);t++);for(s=c;u>0||s>0&&n;)0===u?(i=n,n=n.nextZ,s--):0!==s&&n?r.z<=n.z?(i=r,r=r.nextZ,u--):(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,r,n,i){return e=32767*(e-r)/i,t=32767*(t-n)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}function y(e,t,r,n,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(n-u)-(r-o)*(t-u)>=0&&(r-o)*(a-u)-(i-o)*(n-u)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!g(e,t)&&R(e,t)&&R(t,e)&&A(e,t)}function _(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function v(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,r,n){return!!(v(e,t)&&v(r,n)||v(e,n)&&v(r,t))||_(e,t,r)>0!=_(e,t,n)>0&&_(r,n,e)>0!=_(r,n,t)>0}function g(e,t){var r=e;do{ -if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&T(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function R(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function A(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!=r.next.y>a&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}function S(e,t){var r=new O(e.i,e.x,e.y),n=new O(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function I(e,t,r,n){var i=new O(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function w(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function O(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function N(e,t,r,n){for(var i=0,a=t,o=r-n;a<r;a+=n)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,r,n){var i=t&&t.length,a=i?t[0]*r:e.length,o=Math.abs(N(e,0,a,r));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*r,l=u<s-1?t[u+1]*r:e.length;o-=Math.abs(N(e,c,l,r))}var f=0;for(u=0;u<n.length;u+=3){var h=n[u]*r,d=n[u+1]*r,p=n[u+2]*r;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)r.vertices.push(e[i][a][o]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===r.CLOCKWISE||e===r.COUNTER_CLOCKWISE}};return e(r)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new r,y=new r,E={};E.computeArea2D=function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++){var a=e[n],o=e[i];r+=a.x*o.y-o.x*a.y}return.5*r},E.computeWindingOrder2D=function(e){return E.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},E.triangulate=function(r,n){var i=t.packArray(r);return e(i,n,2)};var _=new r,v=new r,T=new r,g=new r,R=new r,A=new r,S=new r;E.computeSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=n.slice(0),p=t.length,m=new Array(3*p),y=0;for(s=0;s<p;s++){var E=t[s];m[y++]=E.x,m[y++]=E.y,m[y++]=E.z}for(var I=[],w={},O=e.maximumRadius,N=h.chordLength(i,O),x=N*N;c.length>0;){var M,C,P=c.pop(),b=c.pop(),D=c.pop(),U=r.fromArray(m,3*D,_),L=r.fromArray(m,3*b,v),F=r.fromArray(m,3*P,T),B=r.multiplyByScalar(r.normalize(U,g),O,g),z=r.multiplyByScalar(r.normalize(L,R),O,R),q=r.multiplyByScalar(r.normalize(F,A),O,A),G=r.magnitudeSquared(r.subtract(B,z,S)),V=r.magnitudeSquared(r.subtract(z,q,S)),W=r.magnitudeSquared(r.subtract(q,B,S)),H=Math.max(G,V,W);H>x?G===H?(M=Math.min(D,b)+" "+Math.max(D,b),s=w[M],u(s)||(C=r.add(U,L,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[M]=s),c.push(D,s,P),c.push(s,b,P)):V===H?(M=Math.min(b,P)+" "+Math.max(b,P),s=w[M],u(s)||(C=r.add(L,F,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[M]=s),c.push(b,s,D),c.push(s,P,D)):W===H&&(M=Math.min(P,D)+" "+Math.max(P,D),s=w[M],u(s)||(C=r.add(F,U,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[M]=s),c.push(P,s,b),c.push(s,D,b)):(I.push(D),I.push(b),I.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:I,primitiveType:d.TRIANGLES})};var I=new n,w=new n,O=new n,N=new n;return E.computeRhumbLineSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=n.slice(0),m=t.length,y=new Array(3*m),E=0;for(s=0;s<m;s++){var g=t[s];y[E++]=g.x,y[E++]=g.y,y[E++]=g.z}for(var R=[],A={},x=e.maximumRadius,M=h.chordLength(i,x),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),U=p.pop(),L=p.pop(),F=r.fromArray(y,3*L,_),B=r.fromArray(y,3*U,v),z=r.fromArray(y,3*D,T),q=e.cartesianToCartographic(F,I),G=e.cartesianToCartographic(B,w),V=e.cartesianToCartographic(z,O);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var H=P.surfaceDistance;b.setEndPoints(V,q);var X,k,Y,j,Z=b.surfaceDistance,K=Math.max(W,H,Z);K>M?W===K?(X=Math.min(L,U)+" "+Math.max(L,U),s=A[X],u(s)||(k=C.interpolateUsingFraction(.5,N),Y=.5*(q.height+G.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[X]=s),p.push(L,s,D),p.push(s,U,D)):H===K?(X=Math.min(U,D)+" "+Math.max(U,D),s=A[X],u(s)||(k=P.interpolateUsingFraction(.5,N),Y=.5*(G.height+V.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[X]=s),p.push(U,s,L),p.push(s,D,L)):Z===K&&(X=Math.min(D,L)+" "+Math.max(D,L),s=A[X],u(s)||(k=b.interpolateUsingFraction(.5,N),Y=.5*(V.height+q.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[X]=s),p.push(D,s,U),p.push(s,L,U)):(R.push(L),R.push(U),R.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:y})},indices:R,primitiveType:d.TRIANGLES})},E.scaleToGeodeticHeight=function(e,t,n,i){n=o(n,s.WGS84);var a=m,c=y;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)r.fromArray(e,f,c),i&&(c=n.scaleToGeodeticSurface(c,c)),0!==t&&(a=n.geodeticSurfaceNormal(c,a),r.multiplyByScalar(a,t,a),r.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},E}),define("Core/Queue",["./defineProperties"],function(e){"use strict";function t(){this._array=[],this._offset=0,this._length=0}return e(t.prototype,{length:{get:function(){return this._length}}}),t.prototype.enqueue=function(e){this._array.push(e),this._length++},t.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,r=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,r}},t.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},t.prototype.contains=function(e){return-1!==this._array.indexOf(e)},t.prototype.clear=function(){this._array.length=this._offset=this._length=0},t.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)},t}),define("Core/PolygonGeometryLibrary",["./ArcType","./arrayRemoveDuplicates","./Cartesian2","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Queue","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R){"use strict";function A(e,t,r,i){return n.subtract(t,e,I),n.multiplyByScalar(I,r/i,I),n.add(e,I,I),[I.x,I.y,I.z]}var S={};S.computeHierarchyPackedLength=function(e){for(var t=0,r=[e];r.length>0;){var i=r.pop();if(u(i)){t+=2;var a=i.positions,o=i.holes;if(u(a)&&(t+=a.length*n.packedLength),u(o))for(var s=o.length,c=0;c<s;++c)r.push(o[c])}}return t},S.packPolygonHierarchy=function(e,t,r){for(var i=[e];i.length>0;){var a=i.pop();if(u(a)){var o=a.positions,s=a.holes;if(t[r++]=u(o)?o.length:0,t[r++]=u(s)?s.length:0,u(o))for(var c=o.length,l=0;l<c;++l,r+=3)n.pack(o[l],t,r);if(u(s))for(var f=s.length,h=0;h<f;++h)i.push(s[h])}}return r},S.unpackPolygonHierarchy=function(e,t){for(var r=e[t++],i=e[t++],a=new Array(r),o=i>0?new Array(i):void 0,u=0;u<r;++u,t+=n.packedLength)a[u]=n.unpack(e,t);for(var s=0;s<i;++s)o[s]=S.unpackPolygonHierarchy(e,t),t=o[s].startingIndex,delete o[s].startingIndex;return{positions:a,holes:o,startingIndex:t}};var I=new n;S.subdivideLineCount=function(e,t,r){var i=n.distance(e,t),a=i/r,o=Math.max(0,Math.ceil(y.log2(a)));return Math.pow(2,o)};var w=new i,O=new i,N=new i,x=new n;S.subdivideRhumbLineCount=function(e,t,r,n){var i=e.cartesianToCartographic(t,w),a=e.cartesianToCartographic(r,O),o=new l(i,a,e),u=o.surfaceDistance/n,s=Math.max(0,Math.ceil(y.log2(u)));return Math.pow(2,s)},S.subdivideLine=function(e,t,r,i){var a=S.subdivideLineCount(e,t,r),o=n.distance(e,t),s=o/a;u(i)||(i=[]);var c=i;c.length=3*a;for(var l=0,f=0;f<a;f++){var h=A(e,t,f*s,o);c[l++]=h[0],c[l++]=h[1],c[l++]=h[2]}return c},S.subdivideRhumbLine=function(e,t,r,n,i){var a=e.cartesianToCartographic(t,w),o=e.cartesianToCartographic(r,O),s=new l(a,o,e),c=s.surfaceDistance/n,f=Math.max(0,Math.ceil(y.log2(c))),h=Math.pow(2,f),d=s.surfaceDistance/h;u(i)||(i=[]);var p=i;p.length=3*h;for(var m=0,E=0;E<h;E++){var _=s.interpolateUsingSurfaceDistance(E*d,N),v=e.cartographicToCartesian(_,x);p[m++]=v.x,p[m++]=v.y,p[m++]=v.z}return p};var M=new n,C=new n,P=new n,b=new n;S.scaleToGeodeticHeightExtruded=function(e,t,r,i,a){i=o(i,c.WGS84);var s=M,l=C,f=P,h=b;if(u(e)&&u(e.attributes)&&u(e.attributes.position))for(var d=e.attributes.position.values,p=d.length/2,m=0;m<p;m+=3)n.fromArray(d,m,f),i.geodeticSurfaceNormal(f,s),h=i.scaleToGeodeticSurface(f,h),l=n.multiplyByScalar(s,r,l),l=n.add(h,l,l),d[m+p]=l.x,d[m+1+p]=l.y,d[m+2+p]=l.z,a&&(h=n.clone(f,h)),l=n.multiplyByScalar(s,t,l),l=n.add(h,l,l),d[m]=l.x,d[m+1]=l.y,d[m+2]=l.z;return e},S.polygonOutlinesFromHierarchy=function(e,r,i){var a=[],o=new g;o.enqueue(e);for(var s,c,l;0!==o.length;){var f=o.dequeue(),h=f.positions;if(r)for(l=h.length,s=0;s<l;s++)i.scaleToGeodeticSurface(h[s],h[s]);if(h=t(h,n.equalsEpsilon,!0),!(h.length<3)){var d=f.holes?f.holes.length:0;for(s=0;s<d;s++){var p=f.holes[s],m=p.positions;if(r)for(l=m.length,c=0;c<l;++c)i.scaleToGeodeticSurface(m[c],m[c]);if(m=t(m,n.equalsEpsilon,!0),!(m.length<3)){a.push(m);var y=0;for(u(p.holes)&&(y=p.holes.length),c=0;c<y;c++)o.enqueue(p.holes[c])}}a.push(h)}}return a},S.polygonsFromHierarchy=function(e,r,i,a){var o=[],s=[],c=new g;for(c.enqueue(e);0!==c.length;){var l,f,h=c.dequeue(),d=h.positions,p=h.holes;if(i)for(f=d.length,l=0;l<f;l++)a.scaleToGeodeticSurface(d[l],d[l]);if(d=t(d,n.equalsEpsilon,!0),!(d.length<3)){var m=r(d);if(u(m)){var y=[],E=_.computeWindingOrder2D(m);E===R.CLOCKWISE&&(m.reverse(),d=d.slice().reverse());var v,T=d.slice(),A=u(p)?p.length:0,S=[];for(l=0;l<A;l++){var I=p[l],w=I.positions;if(i)for(f=w.length,v=0;v<f;++v)a.scaleToGeodeticSurface(w[v],w[v]);if(w=t(w,n.equalsEpsilon,!0),!(w.length<3)){var O=r(w);if(u(O)){E=_.computeWindingOrder2D(O),E===R.CLOCKWISE&&(O.reverse(),w=w.slice().reverse()),S.push(w),y.push(T.length),T=T.concat(w),m=m.concat(O);var N=0;for(u(I.holes)&&(N=I.holes.length),v=0;v<N;v++)c.enqueue(I.holes[v])}}}o.push({outerRing:d,holes:S}),s.push({positions:T,positions2D:m,holes:y})}}}return{hierarchy:o,polygons:s}};var D=new r,U=new n,L=new T,F=new E;S.computeBoundingRectangle=function(e,t,r,i,a){for(var o=T.fromAxisAngle(e,i,L),s=E.fromQuaternion(o,F),c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,f=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,d=r.length,p=0;p<d;++p){var m=n.clone(r[p],U);E.multiplyByVector(s,m,m);var y=t(m,D);u(y)&&(c=Math.min(c,y.x),l=Math.max(l,y.x),f=Math.min(f,y.y),h=Math.max(h,y.y))}return a.x=c,a.y=f,a.width=l-c,a.height=h-f,a},S.createGeometryFromPositions=function(t,r,n,i,o,u){var s=_.triangulate(r.positions2D,r.holes);s.length<3&&(s=[0,1,2]);var c=r.positions;if(i){for(var l=c.length,d=new Array(3*l),m=0,y=0;y<l;y++){var E=c[y];d[m++]=E.x,d[m++]=E.y,d[m++]=E.z}var T=new f({attributes:{position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:d})},indices:s,primitiveType:v.TRIANGLES});return o.normal?p.computeNormal(T):T}return u===e.GEODESIC?_.computeSubdivision(t,c,s,n):u===e.RHUMB?_.computeRhumbLineSubdivision(t,c,s,n):void 0};var B=[],z=new n,q=new n;return S.computeWallGeometry=function(t,r,i,o,u){var s,c,l,p,E,_=t.length,T=0;if(o)for(c=3*_*2,s=new Array(2*c),l=0;l<_;l++)p=t[l],E=t[(l+1)%_],s[T]=s[T+c]=p.x,++T,s[T]=s[T+c]=p.y,++T,s[T]=s[T+c]=p.z,++T,s[T]=s[T+c]=E.x,++T,s[T]=s[T+c]=E.y,++T,s[T]=s[T+c]=E.z,++T;else{var g=y.chordLength(i,r.maximumRadius),R=0;if(u===e.GEODESIC)for(l=0;l<_;l++)R+=S.subdivideLineCount(t[l],t[(l+1)%_],g);else if(u===e.RHUMB)for(l=0;l<_;l++)R+=S.subdivideRhumbLineCount(r,t[l],t[(l+1)%_],g);for(c=3*(R+_),s=new Array(2*c),l=0;l<_;l++){p=t[l],E=t[(l+1)%_];var A;u===e.GEODESIC?A=S.subdivideLine(p,E,g,B):u===e.RHUMB&&(A=S.subdivideRhumbLine(r,p,E,g,B));for(var I=A.length,w=0;w<I;++w,++T)s[T]=A[w],s[T+c]=A[w];s[T]=E.x,s[T+c]=E.x,++T,s[T]=E.y,s[T+c]=E.y,++T,s[T]=E.z,s[T+c]=E.z,++T}}_=s.length;var O=m.createTypedArray(_/3,_-6*t.length),N=0;for(_/=6,l=0;l<_;l++){var x=l,M=x+1,C=x+_,P=C+1;p=n.fromArray(s,3*x,z),E=n.fromArray(s,3*M,q),n.equalsEpsilon(p,E,y.EPSILON14,y.EPSILON6)||(O[N++]=x,O[N++]=C,O[N++]=M,O[N++]=M,O[N++]=C,O[N++]=P)}return new f({attributes:new d({position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:s})}),indices:O,primitiveType:v.TRIANGLES})},S}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/PolygonGeometry",["./ArcType","./arrayFill","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./EllipsoidTangentPlane","./Geometry","./GeometryAttribute","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix2","./Matrix3","./PolygonGeometryLibrary","./PolygonPipeline","./Quaternion","./Rectangle","./VertexFormat","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R,A,S,I,w,O,N,x,M,C){"use strict";function P(e,t,r,n){var i=n.cartesianToCartographic(e,z),a=i.height,o=n.cartesianToCartographic(t,q);o.height=a,n.cartographicToCartesian(o,t);var u=n.cartesianToCartographic(r,q);u.height=a-100,n.cartographicToCartesian(u,r)}function b(e){var r=e.vertexFormat,n=e.geometry,o=e.shadowVolume,u=n.attributes.position.values,c=u.length,f=e.wall,h=e.top||f,d=e.bottom||f;if(r.st||r.normal||r.tangent||r.bitangent||o){var p=e.boundingRectangle,m=e.tangentPlane,y=e.ellipsoid,E=e.stRotation,v=e.perPositionHeight,g=J;g.x=p.x,g.y=p.y;var R,S=r.st?new Float32Array(c/3*2):void 0;r.normal&&(R=v&&h&&!f?n.attributes.normal.values:new Float32Array(c));var w=r.tangent?new Float32Array(c):void 0,O=r.bitangent?new Float32Array(c):void 0,x=o?new Float32Array(c):void 0,M=0,C=0,b=W,D=H,U=X,L=!0,F=te,B=re;if(0!==E){var z=N.fromAxisAngle(m._plane.normal,E,ee);F=I.fromQuaternion(z,F),z=N.fromAxisAngle(m._plane.normal,-E,ee),B=I.fromQuaternion(z,B)}else F=I.clone(I.IDENTITY,F),B=I.clone(I.IDENTITY,B);var q=0,G=0;h&&d&&(q=c/2,G=c/3,c/=2);for(var ne=0;ne<c;ne+=3){var ie=a.fromArray(u,ne,$);if(r.st){var ae=I.multiplyByVector(F,ie,V);ae=y.scaleToGeodeticSurface(ae,ae);var oe=m.projectPointOntoPlane(ae,Q);i.subtract(oe,g,oe);var ue=A.clamp(oe.x/p.width,0,1),se=A.clamp(oe.y/p.height,0,1);d&&(S[M+G]=ue,S[M+1+G]=se),h&&(S[M]=ue,S[M+1]=se),M+=2}if(r.normal||r.tangent||r.bitangent||o){var ce=C+1,le=C+2;if(f){if(ne+3<c){var fe=a.fromArray(u,ne+3,k);if(L){var he=a.fromArray(u,ne+c,Y);v&&P(ie,fe,he,y),a.subtract(fe,ie,fe),a.subtract(he,ie,he),b=a.normalize(a.cross(he,fe,b),b),L=!1}a.equalsEpsilon(fe,ie,A.EPSILON10)&&(L=!0)}(r.tangent||r.bitangent)&&(U=y.geodeticSurfaceNormal(ie,U),r.tangent&&(D=a.normalize(a.cross(U,b,D),D)))}else b=y.geodeticSurfaceNormal(ie,b),(r.tangent||r.bitangent)&&(v&&(j=a.fromArray(R,C,j),Z=a.cross(a.UNIT_Z,j,Z),Z=a.normalize(I.multiplyByVector(B,Z,Z),Z),r.bitangent&&(K=a.normalize(a.cross(j,Z,K),K))),D=a.cross(a.UNIT_Z,b,D),D=a.normalize(I.multiplyByVector(B,D,D),D),r.bitangent&&(U=a.normalize(a.cross(b,D,U),U)));r.normal&&(e.wall?(R[C+q]=b.x,R[ce+q]=b.y,R[le+q]=b.z):d&&(R[C+q]=-b.x,R[ce+q]=-b.y,R[le+q]=-b.z),(h&&!v||f)&&(R[C]=b.x,R[ce]=b.y,R[le]=b.z)),o&&(f&&(b=y.geodeticSurfaceNormal(ie,b)),x[C+q]=-b.x,x[ce+q]=-b.y,x[le+q]=-b.z),r.tangent&&(e.wall?(w[C+q]=D.x,w[ce+q]=D.y,w[le+q]=D.z):d&&(w[C+q]=-D.x,w[ce+q]=-D.y,w[le+q]=-D.z),h&&(v?(w[C]=Z.x,w[ce]=Z.y,w[le]=Z.z):(w[C]=D.x,w[ce]=D.y,w[le]=D.z))),r.bitangent&&(d&&(O[C+q]=U.x,O[ce+q]=U.y,O[le+q]=U.z),h&&(v?(O[C]=K.x,O[ce]=K.y,O[le]=K.z):(O[C]=U.x,O[ce]=U.y,O[le]=U.z))),C+=3}}r.st&&(n.attributes.st=new _({componentDatatype:s.FLOAT,componentsPerAttribute:2,values:S})),r.normal&&(n.attributes.normal=new _({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:R})),r.tangent&&(n.attributes.tangent=new _({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:w})),r.bitangent&&(n.attributes.bitangent=new _({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:O})),o&&(n.attributes.extrudeDirection=new _({componentDatatype:s.FLOAT,componentsPerAttribute:3,values:x}))}if(e.extrude&&l(e.offsetAttribute)){var de=u.length/3,pe=new Uint8Array(de);if(e.offsetAttribute===T.TOP)h&&d||f?pe=t(pe,1,0,de/2):h&&(pe=t(pe,1));else{var me=e.offsetAttribute===T.NONE?0:1;pe=t(pe,me)}n.attributes.applyOffset=new _({componentDatatype:s.UNSIGNED_BYTE,componentsPerAttribute:1,values:pe})}return n}function D(t,r,n,i,a){if(a=c(a,new x),!l(t)||t.length<3)return a.west=0,a.north=0,a.south=0,a.east=0,a;if(n===e.RHUMB)return x.fromCartesianArray(t,r,a);oe.ellipsoid.equals(r)||(oe=new p(void 0,void 0,r)),a.west=Number.POSITIVE_INFINITY,a.east=Number.NEGATIVE_INFINITY,a.south=Number.POSITIVE_INFINITY,a.north=Number.NEGATIVE_INFINITY,ae.westOverIDL=Number.POSITIVE_INFINITY,ae.eastOverIDL=Number.NEGATIVE_INFINITY;for(var o,u=1/A.chordLength(i,r.maximumRadius),s=t.length,f=r.cartesianToCartographic(t[0],ie),h=ne,d=1;d<s;d++)o=h,h=f,f=r.cartesianToCartographic(t[d],o),oe.setEndPoints(h,f),U(oe,u,a,ae);return o=h,h=f,f=r.cartesianToCartographic(t[0],o),oe.setEndPoints(h,f),U(oe,u,a,ae),a.east-a.west>ae.eastOverIDL-ae.westOverIDL&&(a.west=ae.westOverIDL,a.east=ae.eastOverIDL,a.east>A.PI&&(a.east=a.east-A.TWO_PI),a.west>A.PI&&(a.west=a.west-A.TWO_PI)),a}function U(e,t,r,n){for(var i=e.surfaceDistance,a=Math.ceil(i*t),o=a>0?i/(a-1):Number.POSITIVE_INFINITY,u=0,s=0;s<a;s++){var c=e.interpolateUsingSurfaceDistance(u,ue);u+=o;var l=c.longitude,f=c.latitude;r.west=Math.min(r.west,l),r.east=Math.max(r.east,l),r.south=Math.min(r.south,f),r.north=Math.max(r.north,f);var h=l>=0?l:l+A.TWO_PI;n.westOverIDL=Math.min(n.westOverIDL,h),n.eastOverIDL=Math.max(n.eastOverIDL,h)}}function L(e,t,r,n,i,a,o,u,s){var c,l={walls:[]};if(a||o){var f,h,d=w.createGeometryFromPositions(e,t,r,i,u,s),p=d.attributes.position.values,m=d.indices;if(a&&o){var E=p.concat(p);f=E.length/3,h=R.createTypedArray(f,2*m.length),h.set(m);var _=m.length,T=f/2;for(c=0;c<_;c+=3){var g=h[c]+T,A=h[c+1]+T,S=h[c+2]+T;h[c+_]=S,h[c+1+_]=A,h[c+2+_]=g}if(d.attributes.position.values=E,i&&u.normal){var I=d.attributes.normal.values;d.attributes.normal.values=new Float32Array(E.length),d.attributes.normal.values.set(I)}d.indices=h}else if(o){for(f=p.length/3,h=R.createTypedArray(f,m.length),c=0;c<m.length;c+=3)h[c]=m[c+2],h[c+1]=m[c+1],h[c+2]=m[c];d.indices=h}l.topAndBottom=new v({geometry:d})}var N=n.outerRing,x=y.fromPoints(N,e),M=x.projectPointsOntoPlane(N,se),P=O.computeWindingOrder2D(M);P===C.CLOCKWISE&&(N=N.slice().reverse());var b=w.computeWallGeometry(N,e,r,i,s);l.walls.push(new v({geometry:b}));var D=n.holes;for(c=0;c<D.length;c++){var U=D[c];x=y.fromPoints(U,e),M=x.projectPointsOntoPlane(U,se),P=O.computeWindingOrder2D(M),P===C.COUNTER_CLOCKWISE&&(U=U.slice().reverse()),b=w.computeWallGeometry(U,e,r,i,s),l.walls.push(new v({geometry:b}))}return l}function F(t){var r=t.polygonHierarchy,n=c(t.vertexFormat,M.DEFAULT),i=c(t.ellipsoid,d.WGS84),a=c(t.granularity,A.RADIANS_PER_DEGREE),o=c(t.stRotation,0),u=c(t.perPositionHeight,!1),s=u&&l(t.extrudedHeight),f=c(t.height,0),h=c(t.extrudedHeight,f);if(!s){var p=Math.max(f,h);h=Math.min(f,h),f=p}this._vertexFormat=M.clone(n),this._ellipsoid=d.clone(i),this._granularity=a,this._stRotation=o,this._height=f,this._extrudedHeight=h,this._closeTop=c(t.closeTop,!0),this._closeBottom=c(t.closeBottom,!0),this._polygonHierarchy=r,this._perPositionHeight=u,this._perPositionHeightExtrude=s,this._shadowVolume=c(t.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=t.offsetAttribute,this._arcType=c(t.arcType,e.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this.packedLength=w.computeHierarchyPackedLength(r)+d.packedLength+M.packedLength+12}function B(e){var t=-e._stRotation;if(0===t)return[0,0,0,1,1,0];var r=e._ellipsoid,n=e._polygonHierarchy.positions,i=e.rectangle;return E._textureCoordinateRotationPoints(n,t,r,i)}var z=new o,q=new o,G=new r,V=new a,W=new a,H=new a,X=new a,k=new a,Y=new a,j=new a,Z=new a,K=new a,J=new i,Q=new i,$=new a,ee=new N,te=new I,re=new I,ne=new o,ie=new o,ae={westOverIDL:0,eastOverIDL:0},oe=new p,ue=new o,se=[];F.fromPositions=function(e){return e=c(e,c.EMPTY_OBJECT),new F({polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType})},F.pack=function(e,t,r){return r=c(r,0),r=w.packPolygonHierarchy(e._polygonHierarchy,t,r),d.pack(e._ellipsoid,t,r),r+=d.packedLength,M.pack(e._vertexFormat,t,r),r+=M.packedLength,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._granularity,t[r++]=e._stRotation,t[r++]=e._perPositionHeightExtrude?1:0,t[r++]=e._perPositionHeight?1:0,t[r++]=e._closeTop?1:0,t[r++]=e._closeBottom?1:0,t[r++]=e._shadowVolume?1:0,t[r++]=c(e._offsetAttribute,-1),t[r++]=e._arcType,t[r]=e.packedLength,t};var ce=d.clone(d.UNIT_SPHERE),le=new M,fe={polygonHierarchy:{}};return F.unpack=function(e,t,r){t=c(t,0);var n=w.unpackPolygonHierarchy(e,t);t=n.startingIndex,delete n.startingIndex;var i=d.unpack(e,t,ce);t+=d.packedLength;var a=M.unpack(e,t,le);t+=M.packedLength;var o=e[t++],u=e[t++],s=e[t++],f=e[t++],h=1===e[t++],p=1===e[t++],m=1===e[t++],y=1===e[t++],E=1===e[t++],_=e[t++],v=e[t++],T=e[t];return l(r)||(r=new F(fe)),r._polygonHierarchy=n,r._ellipsoid=d.clone(i,r._ellipsoid),r._vertexFormat=M.clone(a,r._vertexFormat),r._height=o,r._extrudedHeight=u,r._granularity=s,r._stRotation=f,r._perPositionHeightExtrude=h,r._perPositionHeight=p,r._closeTop=m,r._closeBottom=y,r._shadowVolume=E,r._offsetAttribute=-1===_?void 0:_,r._arcType=v,r.packedLength=T,r},F.computeRectangle=function(t,r){var n=c(t.granularity,A.RADIANS_PER_DEGREE),i=c(t.arcType,e.GEODESIC),a=t.polygonHierarchy,o=c(t.ellipsoid,d.WGS84);return D(a.positions,o,i,n,r)},F.createGeometry=function(e){var r=e._vertexFormat,i=e._ellipsoid,a=e._granularity,o=e._stRotation,u=e._polygonHierarchy,c=e._perPositionHeight,f=e._closeTop,h=e._closeBottom,d=e._arcType,p=u.positions;if(!(p.length<3)){var m=y.fromPoints(p,i),S=w.polygonsFromHierarchy(u,m.projectPointsOntoPlane.bind(m),!c,i),I=S.hierarchy,N=S.polygons;if(0!==I.length){p=I[0].outerRing;var x,M=w.computeBoundingRectangle(m.plane.normal,m.projectPointOntoPlane.bind(m),p,o,G),C=[],P=e._height,D=e._extrudedHeight,U=e._perPositionHeightExtrude||!A.equalsEpsilon(P,D,0,A.EPSILON2),F={perPositionHeight:c,vertexFormat:r,geometry:void 0,tangentPlane:m,boundingRectangle:M,ellipsoid:i,stRotation:o,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:d};if(U)for(F.extrude=!0,F.top=f,F.bottom=h,F.shadowVolume=e._shadowVolume,F.offsetAttribute=e._offsetAttribute,x=0;x<N.length;x++){var B,z=L(i,N[x],a,I[x],c,f,h,r,d);f&&h?(B=z.topAndBottom,F.geometry=w.scaleToGeodeticHeightExtruded(B.geometry,P,D,i,c)):f?(B=z.topAndBottom,B.geometry.attributes.position.values=O.scaleToGeodeticHeight(B.geometry.attributes.position.values,P,i,!c),F.geometry=B.geometry):h&&(B=z.topAndBottom,B.geometry.attributes.position.values=O.scaleToGeodeticHeight(B.geometry.attributes.position.values,D,i,!0),F.geometry=B.geometry),(f||h)&&(F.wall=!1,B.geometry=b(F),C.push(B));var q=z.walls;F.wall=!0;for(var V=0;V<q.length;V++){var W=q[V];F.geometry=w.scaleToGeodeticHeightExtruded(W.geometry,P,D,i,c),W.geometry=b(F),C.push(W)}}else for(x=0;x<N.length;x++){var H=new v({geometry:w.createGeometryFromPositions(i,N[x],a,c,r,d)});if(H.geometry.attributes.position.values=O.scaleToGeodeticHeight(H.geometry.attributes.position.values,P,i,!c),F.geometry=H.geometry,H.geometry=b(F),l(e._offsetAttribute)){var X=H.geometry.attributes.position.values.length,k=new Uint8Array(X/3),Y=e._offsetAttribute===T.NONE?0:1;t(k,Y),H.geometry.attributes.applyOffset=new _({componentDatatype:s.UNSIGNED_BYTE,componentsPerAttribute:1,values:k})}C.push(H)}var j=g.combineInstances(C)[0];j.attributes.position.values=new Float64Array(j.attributes.position.values),j.indices=R.createTypedArray(j.attributes.position.values.length/3,j.indices);var Z=j.attributes,K=n.fromVertices(Z.position.values);return r.position||delete Z.position,new E({attributes:Z,indices:j.indices,primitiveType:j.primitiveType,boundingSphere:K,offsetAttribute:e._offsetAttribute})}}},F.createShadowVolume=function(e,t,r){var n=e._granularity,i=e._ellipsoid,a=t(n,i),o=r(n,i);return new F({polygonHierarchy:e._polygonHierarchy,ellipsoid:i,stRotation:e._stRotation,granularity:n,perPositionHeight:!1,extrudedHeight:a,height:o,vertexFormat:M.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})},f(F.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){var e=this._polygonHierarchy.positions;this._rectangle=D(e,this._ellipsoid,this._arcType,this._granularity)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=B(this)),this._textureCoordinateRotationPoints}}}),F}),define("Workers/createPolygonGeometry",["../Core/defined","../Core/Ellipsoid","../Core/PolygonGeometry"],function(e,t,r){"use strict";function n(n,i){return e(i)&&(n=r.unpack(n,i)),n._ellipsoid=t.clone(n._ellipsoid),r.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as dt}from"./chunk-2QX3ZRAN.js";import{a as F}from"./chunk-IY45XUGY.js";import{a as at}from"./chunk-E3BAMNKM.js";import{a as st}from"./chunk-7GU2ORNB.js";import{a as bt}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import{a as ht}from"./chunk-6UMNSGJM.js";import{a as Q}from"./chunk-QNEABTP2.js";import{a as K}from"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{a as gt,b as nt}from"./chunk-M243PNMW.js";import"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import{a as wt,b as yt}from"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as lt}from"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import{c as mt,d as tt}from"./chunk-2HSPJH3C.js";import{d as Tt}from"./chunk-T5AUOWE7.js";import{f as ct,i as _t}from"./chunk-Y5B6Y3WD.js";import{a as $}from"./chunk-6QVIJ7JA.js";import{a as c,b as ot,c as O,d as V,e as U}from"./chunk-AODSXSC5.js";import{a as l}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as L}from"./chunk-WHQYJFDH.js";import{a as ut,b as q}from"./chunk-OYWUGDKS.js";import{e as P}from"./chunk-DRYFJEFT.js";function b(t,e){this.position=t,P(this.position)||(this.position=new O),this.tangentPlane=e,P(this.tangentPlane)||(this.tangentPlane=b.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(b.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let t=O.magnitude(this.position),e=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(l.PI_OVER_TWO-2*Math.atan2(t,e))}},longitude:{get:function(){let t=l.PI_OVER_TWO+Math.atan2(this.y,this.x);return t>Math.PI&&(t-=l.TWO_PI),t}}});var it=new ot,Rt=new c;b.prototype.getLatitude=function(t){P(t)||(t=V.default),it.latitude=this.conformalLatitude,it.longitude=this.longitude,it.height=0;let e=this.ellipsoid.cartographicToCartesian(it,Rt);return t.cartesianToCartographic(e,it),it.latitude};var It=new wt,Lt=new c,Ft=new c;b.fromCartesian=function(t,e){q.defined("cartesian",t);let o=l.signNotZero(t.z),n=b.NORTH_POLE_TANGENT_PLANE,s=b.SOUTH_POLE;o<0&&(n=b.SOUTH_POLE_TANGENT_PLANE,s=b.NORTH_POLE);let i=It;i.origin=n.ellipsoid.scaleToGeocentricSurface(t,i.origin),i.direction=c.subtract(i.origin,s,Lt),c.normalize(i.direction,i.direction);let r=yt.rayPlane(i,n.plane,Ft),f=c.subtract(r,s,r),d=c.dot(n.xAxis,f),p=o*c.dot(n.yAxis,f);return P(e)?(e.position=new O(d,p),e.tangentPlane=n,e):new b(new O(d,p),n)};b.fromCartesianArray=function(t,e){q.defined("cartesians",t);let o=t.length;P(e)?e.length=o:e=new Array(o);for(let n=0;n<o;n++)e[n]=b.fromCartesian(t[n],e[n]);return e};b.clone=function(t,e){if(P(t))return P(e)?(e.position=t.position,e.tangentPlane=t.tangentPlane,e):new b(t.position,t.tangentPlane)};b.HALF_UNIT_SPHERE=Object.freeze(new V(.5,.5,.5));b.NORTH_POLE=Object.freeze(new c(0,0,.5));b.SOUTH_POLE=Object.freeze(new c(0,0,-.5));b.NORTH_POLE_TANGENT_PLANE=Object.freeze(new K(b.NORTH_POLE,b.HALF_UNIT_SPHERE));b.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new K(b.SOUTH_POLE,b.HALF_UNIT_SPHERE));var D=b;var vt=new ot,Ot=new ot;function St(t,e,o,n){let i=n.cartesianToCartographic(t,vt).height,r=n.cartesianToCartographic(e,Ot);r.height=i,n.cartographicToCartesian(r,e);let f=n.cartesianToCartographic(o,Ot);f.height=i-100,n.cartographicToCartesian(f,o)}var Et=new dt,Vt=new c,Bt=new c,Mt=new c,jt=new c,kt=new c,zt=new c,ft=new c,Z=new c,rt=new c,Dt=new O,Ut=new O,Wt=new c,At=new ct,Gt=new U,Yt=new U;function pt(t){let e=t.vertexFormat,o=t.geometry,n=t.shadowVolume,s=o.attributes.position.values,i=P(o.attributes.st)?o.attributes.st.values:void 0,r=s.length,f=t.wall,d=t.top||f,p=t.bottom||f;if(e.st||e.normal||e.tangent||e.bitangent||n){let w=t.boundingRectangle,a=t.rotationAxis,H=t.projectTo2d,x=t.ellipsoid,j=t.stRotation,C=t.perPositionHeight,R=Dt;R.x=w.x,R.y=w.y;let B=e.st?new Float32Array(2*(r/3)):void 0,u;e.normal&&(C&&d&&!f?u=o.attributes.normal.values:u=new Float32Array(r));let E=e.tangent?new Float32Array(r):void 0,A=e.bitangent?new Float32Array(r):void 0,v=n?new Float32Array(r):void 0,T=0,y=0,_=Bt,h=Mt,g=jt,k=!0,Y=Gt,J=Yt;if(j!==0){let M=ct.fromAxisAngle(a,j,At);Y=U.fromQuaternion(M,Y),M=ct.fromAxisAngle(a,-j,At),J=U.fromQuaternion(M,J)}else Y=U.clone(U.IDENTITY,Y),J=U.clone(U.IDENTITY,J);let m=0,I=0;d&&p&&(m=r/2,I=r/3,r/=2);for(let M=0;M<r;M+=3){let z=c.fromArray(s,M,Wt);if(e.st&&!P(i)){let N=U.multiplyByVector(Y,z,Vt);N=x.scaleToGeodeticSurface(N,N);let S=H([N],Ut)[0];O.subtract(S,R,S);let X=l.clamp(S.x/w.width,0,1),et=l.clamp(S.y/w.height,0,1);p&&(B[T+I]=X,B[T+1+I]=et),d&&(B[T]=X,B[T+1]=et),T+=2}if(e.normal||e.tangent||e.bitangent||n){let N=y+1,S=y+2;if(f){if(M+3<r){let X=c.fromArray(s,M+3,kt);if(k){let et=c.fromArray(s,M+r,zt);C&&St(z,X,et,x),c.subtract(X,z,X),c.subtract(et,z,et),_=c.normalize(c.cross(et,X,_),_),k=!1}c.equalsEpsilon(X,z,l.EPSILON10)&&(k=!0)}(e.tangent||e.bitangent)&&(g=x.geodeticSurfaceNormal(z,g),e.tangent&&(h=c.normalize(c.cross(g,_,h),h)))}else _=x.geodeticSurfaceNormal(z,_),(e.tangent||e.bitangent)&&(C&&(ft=c.fromArray(u,y,ft),Z=c.cross(c.UNIT_Z,ft,Z),Z=c.normalize(U.multiplyByVector(J,Z,Z),Z),e.bitangent&&(rt=c.normalize(c.cross(ft,Z,rt),rt))),h=c.cross(c.UNIT_Z,_,h),h=c.normalize(U.multiplyByVector(J,h,h),h),e.bitangent&&(g=c.normalize(c.cross(_,h,g),g)));e.normal&&(t.wall?(u[y+m]=_.x,u[N+m]=_.y,u[S+m]=_.z):p&&(u[y+m]=-_.x,u[N+m]=-_.y,u[S+m]=-_.z),(d&&!C||f)&&(u[y]=_.x,u[N]=_.y,u[S]=_.z)),n&&(f&&(_=x.geodeticSurfaceNormal(z,_)),v[y+m]=-_.x,v[N+m]=-_.y,v[S+m]=-_.z),e.tangent&&(t.wall?(E[y+m]=h.x,E[N+m]=h.y,E[S+m]=h.z):p&&(E[y+m]=-h.x,E[N+m]=-h.y,E[S+m]=-h.z),d&&(C?(E[y]=Z.x,E[N]=Z.y,E[S]=Z.z):(E[y]=h.x,E[N]=h.y,E[S]=h.z))),e.bitangent&&(p&&(A[y+m]=g.x,A[N+m]=g.y,A[S+m]=g.z),d&&(C?(A[y]=rt.x,A[N]=rt.y,A[S]=rt.z):(A[y]=g.x,A[N]=g.y,A[S]=g.z))),y+=3}}e.st&&!P(i)&&(o.attributes.st=new tt({componentDatatype:$.FLOAT,componentsPerAttribute:2,values:B})),e.normal&&(o.attributes.normal=new tt({componentDatatype:$.FLOAT,componentsPerAttribute:3,values:u})),e.tangent&&(o.attributes.tangent=new tt({componentDatatype:$.FLOAT,componentsPerAttribute:3,values:E})),e.bitangent&&(o.attributes.bitangent=new tt({componentDatatype:$.FLOAT,componentsPerAttribute:3,values:A})),n&&(o.attributes.extrudeDirection=new tt({componentDatatype:$.FLOAT,componentsPerAttribute:3,values:v}))}if(t.extrude&&P(t.offsetAttribute)){let w=s.length/3,a=new Uint8Array(w);if(t.offsetAttribute===ht.TOP)d&&p||f?a=a.fill(1,0,w/2):d&&(a=a.fill(1));else{let H=t.offsetAttribute===ht.NONE?0:1;a=a.fill(H)}o.attributes.applyOffset=new tt({componentDatatype:$.UNSIGNED_BYTE,componentsPerAttribute:1,values:a})}return o}var Ht=[];function qt(t,e,o,n,s,i,r,f,d,p){let w={walls:[]},a;if(r||f){let u=F.createGeometryFromPositions(t,e,o,n,i,d,p),E=u.attributes.position.values,A=u.indices,v,T;if(r&&f){let y=E.concat(E);v=y.length/3,T=lt.createTypedArray(v,A.length*2),T.set(A);let _=A.length,h=v/2;for(a=0;a<_;a+=3){let g=T[a]+h,k=T[a+1]+h,Y=T[a+2]+h;T[a+_]=Y,T[a+1+_]=k,T[a+2+_]=g}if(u.attributes.position.values=y,i&&d.normal){let g=u.attributes.normal.values;u.attributes.normal.values=new Float32Array(y.length),u.attributes.normal.values.set(g)}if(d.st&&P(o)){let g=u.attributes.st.values;u.attributes.st.values=new Float32Array(v*2),u.attributes.st.values=g.concat(g)}u.indices=T}else if(f){for(v=E.length/3,T=lt.createTypedArray(v,A.length),a=0;a<A.length;a+=3)T[a]=A[a+2],T[a+1]=A[a+1],T[a+2]=A[a];u.indices=T}w.topAndBottom=new st({geometry:u})}let H=s.outerRing,x=K.fromPoints(H,t),j=x.projectPointsOntoPlane(H,Ht),C=nt.computeWindingOrder2D(j);C===gt.CLOCKWISE&&(H=H.slice().reverse());let R=F.computeWallGeometry(H,o,t,n,i,p);w.walls.push(new st({geometry:R}));let B=s.holes;for(a=0;a<B.length;a++){let u=B[a];j=x.projectPointsOntoPlane(u,Ht),C=nt.computeWindingOrder2D(j),C===gt.COUNTER_CLOCKWISE&&(u=u.slice().reverse()),R=F.computeWallGeometry(u,o,t,n,i,p),w.walls.push(new st({geometry:R}))}return w}function G(t){if(q.typeOf.object("options",t),q.typeOf.object("options.polygonHierarchy",t.polygonHierarchy),P(t.perPositionHeight)&&t.perPositionHeight&&P(t.height))throw new ut("Cannot use both options.perPositionHeight and options.height");if(P(t.arcType)&&t.arcType!==at.GEODESIC&&t.arcType!==at.RHUMB)throw new ut("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let e=t.polygonHierarchy,o=L(t.vertexFormat,Q.DEFAULT),n=L(t.ellipsoid,V.default),s=L(t.granularity,l.RADIANS_PER_DEGREE),i=L(t.stRotation,0),r=t.textureCoordinates,f=L(t.perPositionHeight,!1),d=f&&P(t.extrudedHeight),p=L(t.height,0),w=L(t.extrudedHeight,p);if(!d){let a=Math.max(p,w);w=Math.min(p,w),p=a}this._vertexFormat=Q.clone(o),this._ellipsoid=V.clone(n),this._granularity=s,this._stRotation=i,this._height=p,this._extrudedHeight=w,this._closeTop=L(t.closeTop,!0),this._closeBottom=L(t.closeBottom,!0),this._polygonHierarchy=e,this._perPositionHeight=f,this._perPositionHeightExtrude=d,this._shadowVolume=L(t.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=t.offsetAttribute,this._arcType=L(t.arcType,at.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=r,this.packedLength=F.computeHierarchyPackedLength(e,c)+V.packedLength+Q.packedLength+(r?F.computeHierarchyPackedLength(r,O):1)+12}G.fromPositions=function(t){t=L(t,L.EMPTY_OBJECT),q.defined("options.positions",t.positions);let e={polygonHierarchy:{positions:t.positions},height:t.height,extrudedHeight:t.extrudedHeight,vertexFormat:t.vertexFormat,stRotation:t.stRotation,ellipsoid:t.ellipsoid,granularity:t.granularity,perPositionHeight:t.perPositionHeight,closeTop:t.closeTop,closeBottom:t.closeBottom,offsetAttribute:t.offsetAttribute,arcType:t.arcType,textureCoordinates:t.textureCoordinates};return new G(e)};G.pack=function(t,e,o){return q.typeOf.object("value",t),q.defined("array",e),o=L(o,0),o=F.packPolygonHierarchy(t._polygonHierarchy,e,o,c),V.pack(t._ellipsoid,e,o),o+=V.packedLength,Q.pack(t._vertexFormat,e,o),o+=Q.packedLength,e[o++]=t._height,e[o++]=t._extrudedHeight,e[o++]=t._granularity,e[o++]=t._stRotation,e[o++]=t._perPositionHeightExtrude?1:0,e[o++]=t._perPositionHeight?1:0,e[o++]=t._closeTop?1:0,e[o++]=t._closeBottom?1:0,e[o++]=t._shadowVolume?1:0,e[o++]=L(t._offsetAttribute,-1),e[o++]=t._arcType,P(t._textureCoordinates)?o=F.packPolygonHierarchy(t._textureCoordinates,e,o,O):e[o++]=-1,e[o++]=t.packedLength,e};var Qt=V.clone(V.UNIT_SPHERE),Zt=new Q,Kt={polygonHierarchy:{}};G.unpack=function(t,e,o){q.defined("array",t),e=L(e,0);let n=F.unpackPolygonHierarchy(t,e,c);e=n.startingIndex,delete n.startingIndex;let s=V.unpack(t,e,Qt);e+=V.packedLength;let i=Q.unpack(t,e,Zt);e+=Q.packedLength;let r=t[e++],f=t[e++],d=t[e++],p=t[e++],w=t[e++]===1,a=t[e++]===1,H=t[e++]===1,x=t[e++]===1,j=t[e++]===1,C=t[e++],R=t[e++],B=t[e]===-1?void 0:F.unpackPolygonHierarchy(t,e,O);P(B)?(e=B.startingIndex,delete B.startingIndex):e++;let u=t[e++];return P(o)||(o=new G(Kt)),o._polygonHierarchy=n,o._ellipsoid=V.clone(s,o._ellipsoid),o._vertexFormat=Q.clone(i,o._vertexFormat),o._height=r,o._extrudedHeight=f,o._granularity=d,o._stRotation=p,o._perPositionHeightExtrude=w,o._perPositionHeight=a,o._closeTop=H,o._closeBottom=x,o._shadowVolume=j,o._offsetAttribute=C===-1?void 0:C,o._arcType=R,o._textureCoordinates=B,o.packedLength=u,o};var Jt=new O,Xt=new O,$t=new D;function xt(t,e,o,n,s,i){let r=t.longitude,f=r>=0?r:r+l.TWO_PI;s.westOverIdl=Math.min(s.westOverIdl,f),s.eastOverIdl=Math.max(s.eastOverIdl,f),i.west=Math.min(i.west,r),i.east=Math.max(i.east,r);let d=t.getLatitude(o),p=d;if(i.south=Math.min(i.south,d),i.north=Math.max(i.north,d),n!==at.RHUMB){let H=O.subtract(e.position,t.position,Jt),x=O.dot(e.position,H)/O.dot(H,H);if(x>0&&x<1){let j=O.add(e.position,O.multiplyByScalar(H,-x,H),Xt),C=D.clone(e,$t);C.position=j;let R=C.getLatitude(o);i.south=Math.min(i.south,R),i.north=Math.max(i.north,R),Math.abs(d)>Math.abs(R)&&(p=R)}}let w=e.x*t.y-t.x*e.y,a=Math.sign(w);a!==0&&(a*=O.angleBetween(e.position,t.position)),p>=0&&(s.northAngle+=a),p<=0&&(s.southAngle+=a)}var Ct=new D,te=new D,W={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};G.computeRectangleFromPositions=function(t,e,o,n){if(q.defined("positions",t),P(n)||(n=new _t),t.length<3)return n;n.west=Number.POSITIVE_INFINITY,n.east=Number.NEGATIVE_INFINITY,n.south=Number.POSITIVE_INFINITY,n.north=Number.NEGATIVE_INFINITY,W.northAngle=0,W.southAngle=0,W.westOverIdl=Number.POSITIVE_INFINITY,W.eastOverIdl=Number.NEGATIVE_INFINITY;let s=t.length,i=D.fromCartesian(t[0],te);for(let r=1;r<s;r++){let f=D.fromCartesian(t[r],Ct);xt(f,i,e,o,W,n),i=D.clone(f,i)}return xt(D.fromCartesian(t[0],Ct),i,e,o,W,n),n.east-n.west>W.eastOverIdl-W.westOverIdl&&(n.west=W.westOverIdl,n.east=W.eastOverIdl,n.east>l.PI&&(n.east=n.east-l.TWO_PI),n.west>l.PI&&(n.west=n.west-l.TWO_PI)),l.equalsEpsilon(Math.abs(W.northAngle),l.TWO_PI,l.EPSILON10)&&(n.north=l.PI_OVER_TWO,n.east=l.PI,n.west=-l.PI),l.equalsEpsilon(Math.abs(W.southAngle),l.TWO_PI,l.EPSILON10)&&(n.south=-l.PI_OVER_TWO,n.east=l.PI,n.west=-l.PI),n};var ee=new D;function oe(t,e,o){return t.height>=l.PI||t.width>=l.PI?D.fromCartesian(e[0],ee).tangentPlane:K.fromPoints(e,o)}var Nt=new ot;function ne(t,e,o){return(n,s)=>{if(t.height>=l.PI||t.width>=l.PI){if(t.south<0&&t.north>0){P(s)||(s=[]);for(let r=0;r<n.length;++r){let f=o.cartesianToCartographic(n[r],Nt);s[r]=new O(f.longitude/l.PI,f.latitude/l.PI_OVER_TWO)}return s.length=n.length,s}return D.fromCartesianArray(n,s)}return K.fromPoints(e,o).projectPointsOntoPlane(n,s)}}function ie(t,e,o){if(t.height>=l.PI||t.width>=l.PI)return(s,i)=>{if(t.south<0&&t.north>0){let r=o.cartesianToCartographic(s,Nt);return P(i)||(i=new O),i.x=r.longitude/l.PI,i.y=r.latitude/l.PI_OVER_TWO,i}return D.fromCartesian(s,i)};let n=K.fromPoints(e,o);return(s,i)=>n.projectPointsOntoPlane(s,i)}function re(t,e,o,n){return(s,i)=>!n&&(t.height>=l.PI_OVER_TWO||t.width>=2*l.PI_OVER_THREE)?F.splitPolygonsOnEquator(s,e,o,i):s}function se(t,e,o,n){if(e.height>=l.PI||e.width>=l.PI)return dt.fromRectangle(e,void 0,Et);let s=t,i=K.fromPoints(s,o);return F.computeBoundingRectangle(i.plane.normal,i.projectPointOntoPlane.bind(i),s,n,Et)}G.createGeometry=function(t){let e=t._vertexFormat,o=t._ellipsoid,n=t._granularity,s=t._stRotation,i=t._polygonHierarchy,r=t._perPositionHeight,f=t._closeTop,d=t._closeBottom,p=t._arcType,w=t._textureCoordinates,a=P(w),H=i.positions;if(H.length<3)return;let x=t.rectangle,j=F.polygonsFromHierarchy(i,a,ne(x,H,o),!r,o,re(x,o,p,r)),C=j.hierarchy,R=j.polygons,B=function(m){return m},u=a?F.polygonsFromHierarchy(w,!0,B,!1,o).polygons:void 0;if(C.length===0)return;let E=C[0].outerRing,A=se(E,x,o,s),v=[],T=t._height,y=t._extrudedHeight,_=t._perPositionHeightExtrude||!l.equalsEpsilon(T,y,0,l.EPSILON2),h={perPositionHeight:r,vertexFormat:e,geometry:void 0,rotationAxis:oe(x,E,o).plane.normal,projectTo2d:ie(x,E,o),boundingRectangle:A,ellipsoid:o,stRotation:s,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:p},g;if(_)for(h.extrude=!0,h.top=f,h.bottom=d,h.shadowVolume=t._shadowVolume,h.offsetAttribute=t._offsetAttribute,g=0;g<R.length;g++){let m=qt(o,R[g],a?u[g]:void 0,n,C[g],r,f,d,e,p),I;f&&d?(I=m.topAndBottom,h.geometry=F.scaleToGeodeticHeightExtruded(I.geometry,T,y,o,r)):f?(I=m.topAndBottom,I.geometry.attributes.position.values=nt.scaleToGeodeticHeight(I.geometry.attributes.position.values,T,o,!r),h.geometry=I.geometry):d&&(I=m.topAndBottom,I.geometry.attributes.position.values=nt.scaleToGeodeticHeight(I.geometry.attributes.position.values,y,o,!0),h.geometry=I.geometry),(f||d)&&(h.wall=!1,I.geometry=pt(h),v.push(I));let M=m.walls;h.wall=!0;for(let z=0;z<M.length;z++){let N=M[z];h.geometry=F.scaleToGeodeticHeightExtruded(N.geometry,T,y,o,r),N.geometry=pt(h),v.push(N)}}else for(g=0;g<R.length;g++){let m=new st({geometry:F.createGeometryFromPositions(o,R[g],a?u[g]:void 0,n,r,e,p)});if(m.geometry.attributes.position.values=nt.scaleToGeodeticHeight(m.geometry.attributes.position.values,T,o,!r),h.geometry=m.geometry,m.geometry=pt(h),P(t._offsetAttribute)){let I=m.geometry.attributes.position.values.length,M=t._offsetAttribute===ht.NONE?0:1,z=new Uint8Array(I/3).fill(M);m.geometry.attributes.applyOffset=new tt({componentDatatype:$.UNSIGNED_BYTE,componentsPerAttribute:1,values:z})}v.push(m)}let k=bt.combineInstances(v)[0];k.attributes.position.values=new Float64Array(k.attributes.position.values),k.indices=lt.createTypedArray(k.attributes.position.values.length/3,k.indices);let Y=k.attributes,J=Tt.fromVertices(Y.position.values);return e.position||delete Y.position,new mt({attributes:Y,indices:k.indices,primitiveType:k.primitiveType,boundingSphere:J,offsetAttribute:t._offsetAttribute})};G.createShadowVolume=function(t,e,o){let n=t._granularity,s=t._ellipsoid,i=e(n,s),r=o(n,s);return new G({polygonHierarchy:t._polygonHierarchy,ellipsoid:s,stRotation:t._stRotation,granularity:n,perPositionHeight:!1,extrudedHeight:i,height:r,vertexFormat:Q.POSITION_ONLY,shadowVolume:!0,arcType:t._arcType})};function ae(t){let e=-t._stRotation;if(e===0)return[0,0,0,1,1,0];let o=t._ellipsoid,n=t._polygonHierarchy.positions,s=t.rectangle;return mt._textureCoordinateRotationPoints(n,e,o,s)}Object.defineProperties(G.prototype,{rectangle:{get:function(){if(!P(this._rectangle)){let t=this._polygonHierarchy.positions;this._rectangle=G.computeRectangleFromPositions(t,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return P(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=ae(this)),this._textureCoordinateRotationPoints}}});var Pt=G;function ce(t,e){return P(e)&&(t=Pt.unpack(t,e)),t._ellipsoid=V.clone(t._ellipsoid),Pt.createGeometry(t)}var Xe=ce;export{Xe as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js index 7f542939f..c99a4633d 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolygonOutlineGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,y=l*l*d*d,E=f*f*p*p,_=h*h*m*m,v=y+E+_,T=Math.sqrt(1/v),R=e.multiplyByScalar(r,T,a);if(v<s)return isFinite(T)?e.clone(R,c):void 0;var A=u.x,g=u.y,S=u.z,I=o;I.x=R.x*A*2,I.y=R.y*g*2,I.z=R.z*S*2;var O,N,w,x,M,C,P,b,D,U,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(I)),B=0;do{F-=B,w=1/(1+F*A),x=1/(1+F*g),M=1/(1+F*S),C=w*w,P=x*x,b=M*M,D=C*w,U=P*x,L=b*M,O=y*C+E*P+_*b-1,N=y*D*A+E*U*g+_*L*S;B=O/(-2*N)}while(Math.abs(O)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*x,c.z=h*M,c):new e(l*w,f*x,h*M)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,y=n(r)?r._centerToleranceSquared:d,E=o(t,p,m,y,c);if(n(E)){var _=e.multiplyComponents(E,m,s);_=e.normalize(_,_);var v=e.subtract(t,E,l),T=Math.atan2(_.y,_.x),R=Math.asin(_.z),A=a.sign(e.dot(v,t))*e.magnitude(v);return n(i)?(i.longitude=T,i.latitude=R,i.height=A,i):new u(T,R,A)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,y=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,y),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,r,n){"use strict";function i(e,n,i){if(r(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!n(s,c,a));++u);if(u===o)return i&&n(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],n(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&n(l[0],l[l.length-1],a)&&l.shift(),l}}var a=n.EPSILON10;return i}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,y=e[s.getElementIndex(h,h)],E=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(y-E)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),y=2*(a+l),E=2*(i+h),_=-r+u-f+d,v=2*(c-o),T=2*(a-l),R=2*(c+o),A=-r-u+f+d;return n(t)?(t[0]=p,t[1]=E,t[2]=T,t[3]=m,t[4]=_,t[5]=R,t[6]=y,t[7]=v,t[8]=A,t):new s(p,m,y,E,_,v,T,R,A)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,y=-o,E=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=y,t[3]=f,t[4]=p,t[5]=E,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,y,E,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],y=new s,E=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,y),s.transpose(y,E),s.multiply(h,y,h),s.multiply(E,h,h),s.multiply(o,y,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y, -r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,y){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(y,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,y=t.z*t.z,E=t.z*t.w,_=t.w*t.w,v=s-d-y+_,T=2*(c-E),R=2*(f+m),A=2*(c+E),g=-s+d-y+_,S=2*(p-h),I=2*(f-m),O=2*(p+h),N=-s-d+y+_;return n[0]=v*a,n[1]=A*a,n[2]=I*a,n[3]=0,n[4]=T*o,n[5]=g*o,n[6]=O*o,n[7]=0,n[8]=R*u,n[9]=S*u,n[10]=N*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,y=f.z,E=d.x,_=d.y,v=d.z,T=n.x,R=n.y,A=n.z,g=u*-T+s*-R+c*-A,S=E*-T+_*-R+v*-A,I=p*T+m*R+y*A;return i(r)?(r[0]=u,r[1]=E,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=v,r[10]=-y,r[11]=0,r[12]=g,r[13]=S,r[14]=I,r[15]=1,r):new l(u,s,c,g,E,_,v,S,-p,-m,-y,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,y=o+l,E=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=y,i[14]=E,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var y=new e;l.getMaximumScale=function(t){return l.getScale(t,y),e.maximumComponent(y)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],y=e[13],E=e[14],_=e[15],v=t[0],T=t[1],R=t[2],A=t[3],g=t[4],S=t[5],I=t[6],O=t[7],N=t[8],w=t[9],x=t[10],M=t[11],C=t[12],P=t[13],b=t[14],D=t[15],U=n*v+u*T+f*R+m*A,L=i*v+s*T+h*R+y*A,F=a*v+c*T+d*R+E*A,B=o*v+l*T+p*R+_*A,z=n*g+u*S+f*I+m*O,q=i*g+s*S+h*I+y*O,G=a*g+c*S+d*I+E*O,V=o*g+l*S+p*I+_*O,W=n*N+u*w+f*x+m*M,H=i*N+s*w+h*x+y*M,X=a*N+c*w+d*x+E*M,k=o*N+l*w+p*x+_*M,Y=n*C+u*P+f*b+m*D,j=i*C+s*P+h*b+y*D,Z=a*C+c*P+d*b+E*D,K=o*C+l*P+p*b+_*D;return r[0]=U,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=H,r[10]=X,r[11]=k,r[12]=Y,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],y=t[1],E=t[2],_=t[4],v=t[5],T=t[6],R=t[8],A=t[9],g=t[10],S=t[12],I=t[13],O=t[14],N=n*m+o*y+c*E,w=i*m+u*y+l*E,x=a*m+s*y+f*E,M=n*_+o*v+c*T,C=i*_+u*v+l*T,P=a*_+s*v+f*T,b=n*R+o*A+c*g,D=i*R+u*A+l*g,U=a*R+s*A+f*g,L=n*S+o*I+c*O+h,F=i*S+u*I+l*O+d,B=a*S+s*I+f*O+p;return r[0]=N,r[1]=w,r[2]=x,r[3]=0,r[4]=M,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=D,r[10]=U,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],y=t[4],E=t[5],_=t[6],v=t[7],T=t[8],R=n*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=n*m+o*y+c*E,I=i*m+u*y+l*E,O=a*m+s*y+f*E,N=n*_+o*v+c*T,w=i*_+u*v+l*T,x=a*_+s*v+f*T;return r[0]=R,r[1]=A,r[2]=g,r[3]=0,r[4]=S,r[5]=I,r[6]=O,r[7]=0,r[8]=N,r[9]=w,r[10]=x,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var E=new e;l.multiplyByUniformScale=function(e,t,r){return E.x=t,E.y=t,E.z=t,l.multiplyByScale(e,E,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],y=e[6],E=e[10],A=e[14],g=e[3],S=e[7],I=e[11],O=e[15],N=E*O,w=A*I,x=y*O,M=A*S,C=y*I,P=E*S,b=m*O,D=A*g,U=m*I,L=E*g,F=m*S,B=y*g,z=N*h+M*d+C*p-(w*h+x*d+P*p),q=w*f+b*d+L*p-(N*f+D*d+U*p),G=x*f+D*h+F*p-(M*f+b*h+B*p),V=P*f+U*h+B*d-(C*f+L*h+F*d),W=w*i+x*a+P*o-(N*i+M*a+C*o),H=N*n+D*a+U*o-(w*n+b*a+L*o),X=M*n+b*i+B*o-(x*n+D*i+F*o),k=C*n+L*i+F*a-(P*n+U*i+B*a);N=a*p,w=o*d,x=i*p,M=o*h,C=i*d,P=a*h,b=n*p,D=o*f,U=n*d,L=a*f,F=n*h,B=i*f;var Y=N*S+M*I+C*O-(w*S+x*I+P*O),j=w*g+b*I+L*O-(N*g+D*I+U*O),Z=x*g+D*S+F*O-(M*g+b*S+B*O),K=P*g+U*S+B*I-(C*g+L*S+F*I),J=x*E+P*A+w*y-(C*A+N*y+M*E),Q=U*A+N*m+D*E-(b*E+L*A+w*m),$=b*y+B*A+M*m-(F*A+x*m+D*y),ee=F*E+C*m+L*y-(U*y+B*E+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=H*te,r[6]=X*te,r[7]=k*te,r[8]=Y*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,y=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=y,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var y=t.cartesianToCartographic(e[p]);o=Math.min(o,y.longitude),c=Math.max(c,y.longitude),h=Math.min(h,y.latitude),d=Math.max(d,y.latitude);var E=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;l=Math.min(l,E),f=Math.max(f,E)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var y=1;y<8;++y)m.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,y=new e,E=new e,_=new e,v=new e,T=new e,R=new e,A=new e,g=new e,S=new e,I=new e,O=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,y),c=e.clone(a,E),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var O=a.x,N=a.y,w=a.z;O<o.x&&e.clone(a,o),O>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var x=e.magnitudeSquared(e.subtract(c,o,R)),M=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=o,b=c,D=x;M>D&&(D=M,P=u,b=l),C>D&&(D=C,P=s,b=f);var U=A;U.x=.5*(P.x+b.x),U.y=.5*(P.y+b.y),U.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,U,R)),F=Math.sqrt(L),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,U,R));if(W>L){var H=Math.sqrt(W);F=.5*(F+H),L=F*F;var X=H-F;U.x=(F*U.x+X*a.x)/H,U.y=(F*U.y+X*a.y)/H,U.z=(F*U.z+X*a.z)/H}}return F<G?(e.clone(U,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var N=new o,w=new e,x=new e,M=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,N),h.southwest(t,M),M.height=a,h.northeast(t,C),C.height=o;var s=r.project(M,w),c=r.project(C,x),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,y),h=e.clone(u,E),O=e.clone(u,_),N=e.clone(u,v),w=t.length;for(s=0;s<w;s+=a){var x=t[s]+r.x,M=t[s+1]+r.y,C=t[s+2]+r.z;u.x=x,u.y=M,u.z=C,x<c.x&&e.clone(u,c),x>h.x&&e.clone(u,h),M<l.y&&e.clone(u,l),M>O.y&&e.clone(u,O),C<f.z&&e.clone(u,f),C>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,R)),b=e.magnitudeSquared(e.subtract(O,l,R)),D=e.magnitudeSquared(e.subtract(N,f,R)),U=c,L=h,F=P;b>F&&(F=b,U=l,L=O),D>F&&(F=D,U=f,L=N);var B=A;B.x=.5*(U.x+L.x),B.y=.5*(U.y+L.y),B.z=.5*(U.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=O.y,V.z=N.z;var W=e.midpoint(G,V,I),H=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var X=e.magnitude(e.subtract(u,W,R));X>H&&(H=X);var k=e.magnitudeSquared(e.subtract(u,B,R));if(k>z){var Y=Math.sqrt(k);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<H?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=H),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,E),f=e.clone(a,_),h=e.clone(a,v),O=t.length;for(o=0;o<O;o+=3){var N=t[o]+r[o],w=t[o+1]+r[o+1],x=t[o+2]+r[o+2];a.x=N,a.y=w,a.z=x,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),x<c.z&&e.clone(a,c),x>h.z&&e.clone(a,h)}var M=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),b=u,D=l,U=M;C>U&&(U=C,b=s,D=f),P>U&&(U=P,b=c,D=h);var L=A;L.x=.5*(b.x+D.x),L.y=.5*(b.y+D.y),L.z=.5*(b.z+D.z);var F=e.magnitudeSquared(e.subtract(D,L,R)),B=Math.sqrt(F),z=g;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<O;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var H=e.magnitudeSquared(e.subtract(a,L,R));if(H>F){var X=Math.sqrt(H);B=.5*(B+X),F=B*B;var k=X-B;L.x=(B*L.x+k*a.x)/X,L.y=(B*L.y+k*a.y)/X,L.z=(B*L.z+k*a.z)/X}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var D=new e,U=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,U),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,H=new e,X=new e,k=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,H);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,k),h=e.negate(c,X),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var y=p.length,E=0;E<y;++E){var _=p[E];e.add(o,_,_);var v=a.cartesianToCartographic(_,Y);r.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,R=o.y,A=o.z;return o.x=A,o.y=T,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return O*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement] -}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=E,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return y(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,y,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(y=d.progress,m=function(e){h.push(e),--l||(p=m=E,d.reject(h))},p=function(e){f.push(e),--c||(p=m=E,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,y);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return y(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},v.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function y(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function E(){}function _(e){return e}var v,T,R;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,v=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(I)&&(I=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,O=o(e[1]))}return I}function s(){return u()&&O}function c(){if(!t(N)&&(N=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(N=!0,w=o(e[1]))}return N}function l(){return c()&&w}function f(){if(!t(x)){x=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(x=!0,M=o(e[1]),M.isNightly=!!e[2])}return x}function h(){return f()&&M}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,D=o(e[1]))}return b}function y(){return m()&&D}function E(){if(!t(U)){U=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,L=o(e[1]))}return U}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function v(){return E()&&L}function T(){return t(B)||(B=!E()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function A(){return R()?z:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var I,O,N,w,x,M,C,P,b,D,U,L,F,B,z,q;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,m())return g._result=!1,e.resolve(g._result),e.promise;var r=new Image;return r.onload=function(){g._result=r.width>0&&r.height>0,e.resolve(g._result)},r.onerror=function(){g._result=!1,e.resolve(g._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:y,isFirefox:E,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,r,n,i){"use strict";function a(t,i,a){this.minimum=e.clone(r(t,e.ZERO)),this.maximum=e.clone(r(i,e.ZERO)),a=n(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,r){if(n(r)||(r=new a),!n(t)||0===t.length)return r.minimum=e.clone(e.ZERO,r.minimum),r.maximum=e.clone(e.ZERO,r.maximum),r.center=e.clone(e.ZERO,r.center),r;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,y=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(y,u),l=Math.max(y,l)}var E=r.minimum;E.x=i,E.y=o,E.z=u;var _=r.maximum;return _.x=s,_.y=c,_.z=l,r.center=e.midpoint(E,_,r.center),r},a.clone=function(t,r){if(n(t))return n(r)?(r.minimum=e.clone(t.minimum,r.minimum),r.maximum=e.clone(t.maximum,r.maximum),r.center=e.clone(t.center,r.center),r):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,r){return t===r||n(t)&&n(r)&&e.equals(t.center,r.center)&&e.equals(t.minimum,r.minimum)&&e.equals(t.maximum,r.maximum)};var o=new e;return a.intersectPlane=function(t,r){o=e.subtract(t.maximum,t.minimum,o);var n=e.multiplyByScalar(o,.5,o),a=r.normal,u=n.x*Math.abs(a.x)+n.y*Math.abs(a.y)+n.z*Math.abs(a.z),s=e.dot(t.center,a)+r.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,y=u*c-d,E=4*p*y-m*m;if(E<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=y,T=-c*m+2*s*y);var R=T<0?-1:1,A=-R*Math.abs(_)*Math.sqrt(-E);a=-T+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),I=a===A?-S:-v/S;return i=v<=0?S+I:-T/(S*S+I*I+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var O=p,N=-2*u*p+o*m,w=y,x=-c*m+2*s*y,M=Math.sqrt(E),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*M,-N)/3);i=2*Math.sqrt(-O);var b=Math.cos(P);a=i*b;var D=i*(-b/2-C*Math.sin(P)),U=a+D>2*u?a-u:D-u,L=o,F=U/L;P=Math.abs(Math.atan2(c*M,-x)/3),i=2*Math.sqrt(-w),b=Math.cos(P),a=i*b,D=i*(-b/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-U*z-L*B,W=U*B,H=(s*V-u*W)/(-u*V+s*G);return F<=H?F<=q?H<=q?[F,H,q]:[F,q,H]:[q,F,H]:F<=q?[H,F,q]:H<=q?[H,q,F]:[q,H,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,y=p[0],E=p[1];if(y>=0&&E>=0){var _=Math.sqrt(y),v=Math.sqrt(E);return[h-v,h-_,h+_,h+v]}if(y>=0&&E<0)return m=Math.sqrt(y),[h-m,h+m];if(y<0&&E>=0)return m=Math.sqrt(E),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),R=(s+d-c/T)/2,A=(s+d+c/T)/2,g=n.computeRealRoots(1,T,R),S=n.computeRealRoots(1,-T,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h, -g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,y=d[0],E=i-y,_=E*E,v=t/2,T=E/2,R=_-4*o,A=_+4*Math.abs(o),g=c-4*y,S=c+4*Math.abs(y);if(y<0||R*S<g*A){var I=Math.sqrt(g);p=I/2,m=0===I?0:(t*T-a)/I}else{var O=Math.sqrt(R);p=0===O?0:(t*T-a)/O,m=O/2}var N,w;0===v&&0===p?(N=0,w=0):r.sign(v)===r.sign(p)?(N=v+p,w=y/N):(w=v-p,N=y/w);var x,M;0===T&&0===m?(x=0,M=0):r.sign(T)===r.sign(m)?(x=T+m,M=o/x):(M=T-m,x=o/M);var C=n.computeRealRoots(1,N,x),P=n.computeRealRoots(1,w,M);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),y=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,E=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),v=[];if(0===_&&0===E){if(l=s.computeRealRoots(p,m,y),0===l.length)return v;var T=l[0],R=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-R)),v.push(new e(i,a*T,a*R)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));v.push(new e(i,a*A,a*-g)),v.push(new e(i,a*A,a*g))}return v}var S=_*_,I=E*E,O=p*p,N=_*E,w=O+I,x=2*(m*p+N),M=2*y*p+m*m-I+S,C=2*(y*m-N),P=y*y-S;if(0===w&&0===x&&0===M&&0===C)return v;l=c.computeRealRoots(w,x,M,C,P);var b=l.length;if(0===b)return v;for(var D=0;D<b;++D){var U,L=l[D],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);U=o.sign(p)===o.sign(y)?d(p*F+y,m*L,o.EPSILON12):o.sign(y)===o.sign(m*L)?d(p*F,m*L+y,o.EPSILON12):d(p*F+m*L,y,o.EPSILON12);var q=d(E*L,_,o.EPSILON15),G=U*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++D):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var y=new e,E=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,y),R=e.subtract(a,n,E),A=e.cross(p,R,_),g=e.dot(m,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,n,v),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(R,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,n,v),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(R,c)*S}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var g=new l;m.lineSegmentSphere=function(t,r,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,I=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,y=n/s;return m<y?new a(m,y):{start:y,stop:m}}var E=Math.sqrt(n/i);return new a(E,E)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var O=new e,N=new e,w=new e,x=new e,M=new e,C=new u,P=new u,b=new u,D=new u,U=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,O);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,O),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,x),d=e.normalize(e.cross(h,f,N),N),m=e.normalize(e.cross(f,d,w),w),y=C;y[0]=f.x,y[1]=f.y,y[2]=f.z,y[3]=d.x,y[4]=d.y,y[5]=d.z,y[6]=m.x,y[7]=m.y,y[8]=m.z;var E=u.transpose(y,P),_=u.fromScale(r.radii,b),v=u.fromScale(r.oneOverRadii,D),T=U;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var R,A,g=u.multiply(u.multiply(E,v,L),T,L),S=u.multiply(u.multiply(g,_,F),y,F),I=u.multiplyByVector(g,i,M),G=p(S,e.negate(I,O),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),H=Number.NEGATIVE_INFINITY,X=0;X<V;++X){R=u.multiplyByVector(_,u.multiplyByVector(y,G[X],B),B);var k=e.normalize(e.subtract(R,i,x),x),Y=e.dot(k,a);Y>H&&(H=Y,W=e.clone(R,W))}var j=r.cartesianToCartographic(W,q);return H=o.clamp(H,0,1),A=e.magnitude(e.subtract(W,i,x))*Math.sqrt(1-H*H),A=c?-A:A,j.height=A,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,y,E;if("%%"==e)return"%";for(var _=!1,v="",T=!1,R=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":A=s.charAt(S+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,E=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(E),_,c,f,T,A);case"c":return u(String.fromCharCode(+E),_,c,f,T);case"b":return o(E,2,R,_,c,f,T);case"o":return o(E,8,R,_,c,f,T);case"x":return o(E,16,R,_,c,f,T);case"X":return o(E,16,R,_,c,f,T).toUpperCase();case"u":return o(E,10,R,_,c,f,T);case"i":case"d":return d=+E||0,d=Math.round(d-d%1),p=d<0?"-":v,E=p+i(String(Math.abs(d)),f,"0",!1),a(E,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+E,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],y=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],E=p+Math.abs(d)[m](f),a(E,p,_,c,T)[y]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var y=new a,E=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+S.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,y=0,_=0,S=0,w=u[0],x=u[1];if(null!==(u=w.match(g)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(T)))r=+u[1],s=+u[2];else if(null!==(u=w.match(v)))r=+u[1];else{var M;if(null!==(u=w.match(R)))r=+u[1],M=+u[2],a=o(r);else if(null!==(u=w.match(A))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));M=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(M),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(x)){u=x.match(N),null!==u?(h=+u[1],y=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=x.match(O),null!==u?(h=+u[1],y=+u[2],_=60*+(u[3]||0),D=4):null!==(u=x.match(I))&&(h=+u[1],y=60*+(u[2]||0),D=3));var U=u[D],L=+u[D+1],F=+(u[D+2]||0);switch(U){case"+":h-=L,y-=F;break;case"-":h+=L,y+=F;break;case"Z":break;default:y+=new Date(Date.UTC(r,s-1,l,h,y)).getTimezoneOffset()}}var B=60===_;for(B&&_--;y>=60;)y-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:E[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:E[s-1];for(;y<0;)y+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:E[s-1],l+=i;var z=p(r,s,l,h,y,_,S);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(m.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var y=d+2-12*c|0,E=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var R=0|v,A=(v-R)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(R+=1),n(t)?(t.year=E,t.month=y,t.day=p,t.hour=_,t.minute=T,t.second=R,t.millisecond=A,t.isLeapSecond=r,t):new a(E,y,p,_,T,R,A,r)},m.toDate=function(e){var t=m.toGregorianDate(e,y),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,y),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function y(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function E(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--I[e.serverKey], -N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(y(e)).otherwise(E(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--I[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],I={},O="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();v(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,r=0,n=S.length;for(e=0;e<n;++e)t=S[e],t.cancelled&&v(t),t.state===l.ACTIVE?r>0&&(S[e-r]=t):++r;S.length-=r;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(O);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=I[n];return i(a)||(I[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;g.length>0;){v(g.pop())}for(var e=S.length,t=0;t<e;++t)v(S[t]);S.length=0,I={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,R,A,g,S,I){"use strict";function O(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=r?M(a,t._queryParameters,n):a,e.query=void 0}function N(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function x(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function M(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);O(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function U(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return U(n,i);case"blob":var a=U(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(I.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new S("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);O(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return y(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&N(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);O(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(x(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),x(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;x(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==g.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=g.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return E(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var y=e._samples=r.samples,E=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,R=y.length;T<R;T+=e._columnCount){var A=y[T+i],g=y[T+m],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(S,g,f.TAI);if(E.push(I),v){if(g!==_&&n(_)){var O=o.leapSeconds,N=t(O,I,d);if(N<0){var w=new u(I,g);O.splice(~N,0,w)}}_=g}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function y(e,t,r){return t+e*(r-t)}function E(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],E=r[d+e._ut1MinusUtcSecondsColumn],_=E-p;if(_>.5||_<-.5){var v=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(n)?p=E:E-=T-v)}return u.xPoleWander=y(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=y(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=y(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=y(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=y(f,p,E),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,E(this,a,this._samples,e,s,l,r),r}var y=t(a,e,o.compare,this._dateColumn);return y>=0?(y<a.length-1&&a[y+1].equals(e)&&++y,s=y,l=y):(l=~y,(s=l-1)<0&&(s=0)),this._lastIndex=s,E(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,y=a-s*this._stepSizeDays,E=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)E[p]=y-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=E[m]);v[p]*=_[p];var R=3*(s+p);r.x+=v[p]*d[R++],r.y+=v[p]*d[R++],r.s+=v[p]*d[R]}return r}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var y=l,E=0;d>h&&(E=1),p>h&&p>d&&(E=2);var _=y[E],v=y[_];r=Math.sqrt(e[u.getElementIndex(E,E)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[E]=.5*r,r=.5/r,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*r,T[_]=(e[u.getElementIndex(_,E)]+e[u.getElementIndex(E,_)])*r,T[v]=(e[u.getElementIndex(v,E)]+e[u.getElementIndex(E,v)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var y=new e,E=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,y);var u=s.computeAngle(_);n[o]=y.x*u,n[o+1]=y.y*u,n[o+2]=y.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,E);var u=e.magnitude(E);return s.unpack(r,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(E,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,r,n){return R=s.multiplyByScalar(t,r,R),n=s.multiplyByScalar(e,1-r,n),s.add(R,n,n)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-r)*u),g),S=s.multiplyByScalar(a,Math.sin(r*u),S),n=s.add(g,S,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){ -var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var I=new e,O=new e,N=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,N);s.multiply(a,n,w);var o=s.log(w,I);s.multiply(a,t,w);var u=s.log(w,O);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(r,N,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var x=new s,M=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=0;U<7;++U){var L=U+1,F=2*L+1;C[U]=1/(L*F),P[U]=L/F}return C[7]=M/136,P[7]=8*M/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,x);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},I={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},O=new r,N=new r,w=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=A[e][t],a=e+t;return u(S[a])?n=S[a]:(n=function(n,a,s){if(u(s)||(s=new _),y.equalsEpsilon(n.x,0,y.EPSILON14)&&y.equalsEpsilon(n.y,0,y.EPSILON14)){var c=y.sign(n.z);r.unpack(g[e],0,O),"east"!==e&&"west"!==e&&r.multiplyByScalar(O,c,O),r.unpack(g[t],0,N),"east"!==t&&"west"!==t&&r.multiplyByScalar(N,c,N),r.unpack(g[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,I.up);var l=I.up,h=I.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,I.east),r.cross(l,h,I.north),r.multiplyByScalar(I.up,-1,I.down),r.multiplyByScalar(I.east,-1,I.west),r.multiplyByScalar(I.north,-1,I.south),O=I[e],N=I[t],w=I[i]}return s[0]=O.x,s[1]=O.y,s[2]=O.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},S[a]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var x=new v,M=new r(1,1,1),C=new _;R.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,x),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,M,C);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new E;R.headingPitchRollQuaternion=function(e,t,r,n,i){var a=R.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var D=new r(1,1,1),U=new r,L=new _,F=new _,B=new E,z=new v;R.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,U);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,D,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=y.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%y.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new E(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(r,n,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new E);var r=R.computeFixedToIcrfMatrix(e,t);if(u(r))return E.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),H=new E,X=new E;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new E);var r=R.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=H;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=E.fromRotationZ(-a.s,X),h=E.multiply(l,f,H),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,A=.779057273264+v+.00273781191135448*(_+v);A=A%1*y.TWO_PI;var g=E.fromRotationZ(A,X),S=E.multiply(h,g,H),I=Math.cos(r.xPoleWander),O=Math.cos(r.yPoleWander),N=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),x=n-2451545+i/T.SECONDS_PER_DAY;x/=36525;var M=-47e-6*x*y.RADIANS_PER_DEGREE/3600,C=Math.cos(M),P=Math.sin(M),b=X;return b[0]=I*C,b[1]=I*P,b[2]=N,b[3]=-O*P+w*N*C,b[4]=O*C+w*N*P,b[5]=-w*I,b[6]=-w*P-O*N*C,b[7]=w*C-O*N*P,b[8]=O*I,E.multiply(S,b,t)}}};var k=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=k;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var Y=new r,j=new r,Z=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,Y),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,y.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new E),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new E,te=new _,re=new _;return R.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},R}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var n=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=r.fromCartesian4(f.getColumn(n,0,y)),this._yAxis=r.fromCartesian4(f.getColumn(n,1,y));var i=r.fromCartesian4(f.getColumn(n,2,y));this._plane=h.fromPointNormal(e,i)}var y=new n;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var E=new e;m.fromPoints=function(t,r){return new m(e.fromPoints(t,E).center,r)};var _=new d,v=new r;m.prototype.projectPointOntoPlane=function(e,n){var i=_;i.origin=e,r.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,v);if(o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v)),o(a)){var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return o(n)?(n.x=s,n.y=c,n):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var r=0,n=e.length,i=0;i<n;i++){var a=this.projectPointOntoPlane(e[i],t[r]);o(a)&&(t[r]=a,r++)}return t.length=r,t},m.prototype.projectPointToNearestOnPlane=function(e,n){o(n)||(n=new t);var i=_;i.origin=e,r.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,v);o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v));var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return n.x=s,n.y=c,n},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var r=e.length;t.length=r;for(var n=0;n<r;n++)t[n]=this.projectPointToNearestOnPlane(e[n],t[n]);return t};var T=new r;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new r);var n=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=T;return r.multiplyByScalar(a,e.x,s),t=r.add(i,s,t),r.multiplyByScalar(u,e.y,s),r.add(t,s,t),n.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.projectPointOntoEllipsoid(e[n],t[n]);return t},m}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}y.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var E=new r,_=new t,v=new f,T=[new r,new r,new r],R=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,I=new f,O=new c;return y._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,E),h=r.toCartesian(s,a,_),y=m.eastNorthUpToFixedFrame(h,a,v),N=f.inverse(y,v),w=R,x=T;x[0].longitude=o.west,x[0].latitude=o.south,x[1].longitude=o.west,x[1].latitude=o.north,x[2].longitude=o.east,x[2].latitude=o.south;var M=g;for(u=0;u<3;u++)r.toCartesian(x[u],a,M),M=f.multiplyByPointAsVector(N,M,M),w[u].x=M.x,w[u].y=M.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,I),b=n.length,D=Number.POSITIVE_INFINITY,U=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)M=f.multiplyByPointAsVector(N,n[u],M),M=l.multiplyByVector(P,M,M),D=Math.min(D,M.x),U=Math.min(U,M.y),L=Math.max(L,M.x),F=Math.max(F,M.y);var B=c.fromRotation(i,O),z=A;z[0].x=D,z[0].y=U,z[1].x=D,z[1].y=F,z[2].x=L,z[2].y=U;var q=w[0],G=w[2].x-q.x,V=w[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var H=z[0],X=z[1],k=z[2],Y=new Array(6);return e.pack(H,Y),e.pack(X,Y,2),e.pack(k,Y,4),Y},y}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,y,E,_,v;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),y=t.dot(h,d),E=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),y=e.dot(h,d),E=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-y*y,R=1/T;return f.y=(_*E-y*v)*R,f.z=(m*v-y*E)*R,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var y=0,E=u+1;i=1;var _,v,T=[],R=[],A=0,g=[],S=s/3,I=[];for(d=0;d<S;d++)I[d]=!1;for(var O,N;-1!==y;){T=[],v=p[y],N=v.vertexTriangles.length;for(var w=0;w<N;++w)if(m=v.vertexTriangles[w],!I[m]){I[m]=!0,l=m+m+m;for(var x=0;x<3;++x)O=a[l],T.push(O),R.push(O),g[A]=O,++A,_=p[O],--_.numLiveTriangles,E-_.timeStamp>u&&(_.timeStamp=E,++E),++l}y=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,E,R,c)}return g},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,R,A,g,S){"use strict";function I(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function O(e){for(var t=e.length,r=t/3*6,n=y.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)I(n,i,e[a],e[a+1],e[a+2]);return n}function N(e){var t=e.length;if(t>=3){var r=6*(t-2),n=y.createTypedArray(t,r);I(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)I(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function w(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=y.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)I(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function x(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function M(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),R.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function D(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,E=b(e,t);for(n in E)if(E.hasOwnProperty(n))for(s=E[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:E,primitiveType:g.POINTS})),R=y.createTypedArray(T,v),A=0,S=0;for(a=0;a<h;++a){var I=e[a][t].indices,O=I.length;for(u=0;u<O;++u)R[A++]=S+I[u];S+=d.computeNumberOfVertices(e[a][t])}_=R}var N,w=new i,x=0;for(a=0;a<h;++a){if(N=e[a][t].boundingSphere,!c(N)){w=void 0;break}i.add(N.center,w,w)}if(c(w))for(i.divideByScalar(w,h,w),a=0;a<h;++a){N=e[a][t].boundingSphere;var M=i.magnitude(i.subtract(N.center,w,fe))+N.radius;M>x&&(x=M)}return new d({attributes:E,indices:_,primitiveType:m,boundingSphere:c(w)?new r(w,x):void 0})}function U(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=g.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=g.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=g.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=y.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=g.LINES,e}function G(e){switch(e.primitiveType){case g.TRIANGLE_FAN:return L(e);case g.TRIANGLE_STRIP:return F(e);case g.TRIANGLES:return U(e);case g.LINE_STRIP:return z(e);case g.LINE_LOOP:return q(e);case g.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?v.sign(e.y):v.sign(r.y):a>o?v.sign(t.y):v.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function H(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),r),i.clone(r,n),V(r,!0),V(n,!1)}function X(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=xe.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(H(e,t,Ie,Ne),H(e,r,Oe,we),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(H(t,r,Ie,Ne),H(t,e,Oe,we),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(H(r,e,Ie,Ne),H(r,t,Oe,we),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(H(r,e,Ie,Ne),H(r,t,Oe,we),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(H(t,r,Ie,Ne),H(t,e,Oe,we),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(H(e,t,Ie,Ne),H(e,r,Oe,we),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=xe.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Ie,s[4]=Oe,s[5]=Ne,s[6]=we,s.length=7),xe}}function k(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=y.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function Y(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=k(t,n),r=k(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var y=e.add(d,p,d);e.add(y,m,y),h&&e.normalize(y,y),e.pack(y,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,y,E,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==y){var v=i.fromArray(o,3*e,De),T=i.fromArray(o,3*r,Ue),R=i.fromArray(o,3*n,Le),A=t(a,v,T,R,Fe);if(c(u)&&Ce(e,r,n,A,u,p.normal.values,_,!0),c(h)){var g=i.fromArray(h,3*e,De),S=i.fromArray(h,3*r,Ue),I=i.fromArray(h,3*n,Le);i.multiplyByScalar(g,A.x,g),i.multiplyByScalar(S,A.y,S),i.multiplyByScalar(I,A.z,I) -;var O;i.equals(g,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(I,i.ZERO)?(O=De,O.x=0,O.y=0,O.z=0):(O=i.add(g,S,g),i.add(O,I,O),i.normalize(O,O)),i.pack(O,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,A,d,p.applyOffset.values,_),c(s)&&Ce(e,r,n,A,s,p.tangent.values,_,!0),c(l)&&Ce(e,r,n,A,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,A,f,p.st.values,_),y>0)for(var N=0;N<y;N++){var w=m[N];J(e,r,n,A,_,E[w],p[w])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Me(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,y,E,_,v,T=d.length,R=Y(t),A=Y(t),g=[];g.length=n.length/3;var S=[];for(S.length=n.length/3,v=0;v<g.length;++v)g[v]=-1,S[v]=-1;var I=h.length;for(v=0;v<I;v+=3){var O=h[v],N=h[v+1],w=h[v+2],x=i.fromArray(n,3*O),M=i.fromArray(n,3*N),C=i.fromArray(n,3*w),P=X(x,M,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,D=P.indices,U=D.length,L=0;L<U;++L){var F=D[L],B=b[F];B.y<0?(m=A.attributes,y=A.indices,E=g):(m=R.attributes,y=R.indices,E=S),_=Q(m,y,E,h,F<3?v+F:-1,B),K(O,N,w,B,n,a,u,o,s,l,f,m,d,T,r,_)}else c(P)&&(x=P.positions[0],M=P.positions[1],C=P.positions[2]),x.y<0?(m=A.attributes,y=A.indices,E=g):(m=R.attributes,y=R.indices,E=S),_=Q(m,y,E,h,v,x),K(O,N,w,x,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,y,E,h,v+1,M),K(O,N,w,M,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,y,E,h,v+2,C),K(O,N,w,C,n,a,u,o,s,l,f,m,d,T,r,_)}j(e,A,R)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,De);i.equalsEpsilon(s,r,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=Y(r),l=Y(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],y=u[t+1],E=i.fromArray(a,3*m,De),T=i.fromArray(a,3*y,Ue);Math.abs(E.y)<v.EPSILON6&&(E.y<0?E.y=-v.EPSILON6:E.y=v.EPSILON6),Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var R=s.attributes,A=s.indices,g=d,S=l.attributes,I=l.indices,O=h,N=_.lineSegmentPlane(E,T,ze,Le);if(c(N)){var w=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);E.y<0&&(i.negate(w,w),R=l.attributes,A=l.indices,g=h,S=s.attributes,I=s.indices,O=d);var x=i.add(N,w,Ge);p=Q(R,A,g,u,t,E),ee(m,y,E,a,p,R,o),p=Q(R,A,g,u,-1,x),ee(m,y,x,a,p,R,o),i.negate(w,w),i.add(N,w,x),p=Q(S,I,O,u,-1,x),ee(m,y,x,a,p,S,o),p=Q(S,I,O,u,t+1,T),ee(m,y,T,a,p,S,o)}else{var M,C,P;E.y<0?(M=l.attributes,C=l.indices,P=h):(M=s.attributes,C=s.indices,P=d),p=Q(M,C,P,u,t,E),ee(m,y,E,a,p,M,o),p=Q(M,C,P,u,t+1,T),ee(m,y,T,a,p,M,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,He);if(!(s.x>0)){var c=i.unpack(n,u,Xe);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,ke);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,y=Y(u),E=Y(u),T=!1,R=l.length/3;for(t=0;t<R;t+=4){var A=t,g=t+2,S=i.fromArray(l,3*A,He),I=i.fromArray(l,3*g,Xe);if(Math.abs(S.y)<Qe)for(S.y=Qe*(I.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,r=3*A;r<3*A+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(I.y)<Qe)for(I.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=I.y,l[3*(t+3)+1]=I.y,r=3*A;r<3*A+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var O=y.attributes,N=y.indices,w=E.attributes,x=E.indices,M=_.lineSegmentPlane(S,I,ze,Ye);if(c(M)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),O=E.attributes,N=E.indices,w=y.attributes,x=y.indices);var P=i.add(M,C,Ze);O.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.position.values.push(P.x,P.y,P.z),O.position.values.push(P.x,P.y,P.z),O.prevPosition.values.push(f[3*A],f[3*A+1],f[3*A+2]),O.prevPosition.values.push(f[3*A+3],f[3*A+4],f[3*A+5]),O.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(M,C,P),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.prevPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(I.x,I.y,I.z,I.x,I.y,I.z),w.nextPosition.values.push(h[3*g],h[3*g+1],h[3*g+2]),w.nextPosition.values.push(h[3*g+3],h[3*g+4],h[3*g+5]);var b=n.fromArray(d,2*A,Ve),D=Math.abs(b.y);O.expandAndWidth.values.push(-1,D,1,D),O.expandAndWidth.values.push(-1,-D,1,-D),w.expandAndWidth.values.push(-1,D,1,D),w.expandAndWidth.values.push(-1,-D,1,-D);var U=i.magnitudeSquared(i.subtract(M,S,ke));if(U/=i.magnitudeSquared(i.subtract(I,S,ke)),c(m)){var L=a.fromArray(m,4*A,Ke),F=a.fromArray(m,4*g,Ke),B=v.lerp(L.x,F.x,U),z=v.lerp(L.y,F.y,U),q=v.lerp(L.z,F.z,U),G=v.lerp(L.w,F.w,U);for(r=4*A;r<4*A+8;++r)O.color.values.push(m[r]);for(O.color.values.push(B,z,q,G),O.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),r=4*g;r<4*g+8;++r)w.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*A,Ve),W=n.fromArray(p,2*(t+3),We),H=v.lerp(V.x,W.x,U);for(r=2*A;r<2*A+4;++r)O.st.values.push(p[r]);for(O.st.values.push(H,V.y),O.st.values.push(H,W.y),w.st.values.push(H,V.y),w.st.values.push(H,W.y),r=2*g;r<2*g+4;++r)w.st.values.push(p[r])}o=O.position.values.length/3-4,N.push(o,o+2,o+1),N.push(o+1,o+2,o+3),o=w.position.values.length/3-4,x.push(o,o+2,o+1),x.push(o+1,o+2,o+3)}else{var X,k;for(S.y<0?(X=E.attributes,k=E.indices):(X=y.attributes,k=y.indices),X.position.values.push(S.x,S.y,S.z),X.position.values.push(S.x,S.y,S.z),X.position.values.push(I.x,I.y,I.z),X.position.values.push(I.x,I.y,I.z),r=3*t;r<3*t+12;++r)X.prevPosition.values.push(f[r]),X.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)X.expandAndWidth.values.push(d[r]),c(p)&&X.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)X.color.values.push(m[r]);o=X.position.values.length/3-4,k.push(o,o+2,o+1),k.push(o+1,o+2,o+3)}}T&&(re(E),re(y)),j(e,E,y)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case g.TRIANGLES:e.indices=O(t);break;case g.TRIANGLE_STRIP:e.indices=N(t);break;case g.TRIANGLE_FAN:e.indices=w(t)}e.primitiveType=g.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,y=e.boundingSphere;return c(y)&&(m=new r(y.center,y.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:g.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=y.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var E in m)if(m.hasOwnProperty(E)&&c(m[E])&&c(m[E].values)){for(var _=m[E],v=_.values,T=0,R=_.componentsPerAttribute,A=u.createTypedArray(_.componentDatatype,p*R);T<t;){var g=n[T];if(-1!==g)for(var S=0;S<R;S++)A[R*g+S]=v[R*T+S];++T}_.values=A}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===g.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=S.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=v.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=x(e.attributes),s=e.indices,l=s.length;e.primitiveType===g.TRIANGLES?n=3:e.primitiveType===g.LINES?n=2:e.primitiveType===g.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,M(u,e.attributes,p)),a.push(m)}o+n>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=x(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var y=i.fromArray(l,m,ae),E=s.cartesianToCartographic(y,oe),_=a.project(E,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new R,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(R.equals(t,R.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(R.inverse(t,ce),R.transpose(ce,ce),R.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=R.clone(R.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(D(t,"geometry")),r.length>0&&(o.push(D(r,"westHemisphereGeometry")),o.push(D(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],y=r[t+2],E=3*d,_=3*m,T=3*y;de.x=a[E],de.y=a[E+1],de.z=a[E+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[y].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var R=0;for(t=0;t<o;t++)c[t].indexOffset+=R,R+=c[t].count;h=0;var A;for(t=0;t<s;t+=3){A=c[r[t]];var g=A.indexOffset+A.currentCount;f[g]=h,A.currentCount++,A=c[r[t+1]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,A=c[r[t+2]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var I=3*t;if(A=c[t],i.clone(i.ZERO,he),A.count>0){for(h=0;h<A.count;h++)i.add(he,l[f[A.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[A.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),S[I]=he.x,S[I+1]=he.y,S[I+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var ye=new i,Ee=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],y=r[t+1],E=r[t+2];f=3*m,h=3*y,d=3*E;var _=2*m,v=2*y,T=2*E,R=n[f],A=n[f+1],g=n[f+2],S=o[_],I=o[_+1],O=o[v+1]-I,N=o[T+1]-I,w=1/((o[v]-S)*N-(o[T]-S)*O),x=(N*(n[h]-R)-O*(n[d]-R))*w,M=(N*(n[h+1]-A)-O*(n[d+1]-A))*w,C=(N*(n[h+2]-g)-O*(n[d+2]-g))*w;l[f]+=x,l[f+1]+=M,l[f+2]+=C,l[h]+=x,l[h+1]+=M,l[h+2]+=C,l[d]+=x,l[d+1]+=M,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var D=i.fromArray(a,f,ye),U=i.fromArray(l,f,_e),L=i.dot(D,U);i.multiplyByScalar(D,L,Ee),i.normalize(i.subtract(U,Ee,U),U),P[f]=U.x,P[h]=U.y,P[d]=U.z,i.normalize(i.cross(D,U,U),U),b[f]=U.x,b[h]=U.y,b[d]=U.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new n,Te=new i,Re=new i,Ae=new i,ge=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(ge=e.octEncodeInRange(Te,65535,ge),l[f++]=ge.x,l[f++]=ge.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),y=c(d);if(!m&&!y)return t;var E,_,v,T,R=t.attributes.tangent,A=t.attributes.bitangent,g=c(R),S=c(A);m&&(E=h.values),y&&(_=d.values),g&&(v=R.values),S&&(T=A.values),a=(m?E.length:_.length)/(m?3:2);var I=a,O=y&&m?2:1;O+=g||S?1:0,I*=O;var N=new Float32Array(I),w=0;for(r=0;r<a;++r){y&&(n.fromArray(_,2*r,ve),N[w++]=e.compressTextureCoordinates(ve));var x=3*r;m&&c(v)&&c(T)?(i.fromArray(E,x,Te),i.fromArray(v,x,Re),i.fromArray(T,x,Ae),e.octPack(Te,Re,Ae,ve),N[w++]=ve.x,N[w++]=ve.y):(m&&(i.fromArray(E,x,Te),N[w++]=e.octEncodeFloat(Te)),g&&(i.fromArray(v,x,Te),N[w++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,x,Te),N[w++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:O,values:N}),m&&delete t.attributes.normal,y&&delete t.attributes.st,S&&delete t.attributes.bitangent,g&&delete t.attributes.tangent,t};var Se=new i,Ie=new i,Oe=new i,Ne=new i,we=new i,xe={positions:new Array(7),indices:new Array(9)},Me=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>v.EPSILON6?1:0},De=new i,Ue=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=A.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,He=new i,Xe=new i,ke=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,A.ORIGIN_ZX_PLANE)!==E.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===g.TRIANGLES?$(e):t.primitiveType===g.LINES&&te(e);return e},ie}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,u=o*n,s=u*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*n),m=Math.cos(2*n),y=Math.sin(4*n),E=Math.cos(4*n),_=Math.sin(6*n),v=Math.cos(6*n),T=Math.sin(8*n),R=Math.cos(8*n),A=Math.sin(10*n);return n+n*s/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*m+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*E+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*v+(1097*n*h/65536+42783*n*d/1048576)*R+8011*n*d/1048576*Math.cos(10*n)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*y+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var u=e._heading,l=a-n,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===r)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,_),E),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;r._ellipticitySquared=(s-c)/s,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function m(e,r,n,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(r))>s.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var y=f(o,e.latitude),E=f(o,d);p=Math.tan(r)*(E-y),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var v=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-m*v*v)}p=n/_,h=r>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function y(e,r,a){var o=n(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&p(this,e,r,o)}var E=new e,_=new e;return a(y.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),y.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var E=m(e,t,r,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new y(e,E,c):(o.setEndPoints(e,E),o)},y.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},y.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},y.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},y.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(r)||(r=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return r.longitude=e,r.latitude=u.latitude,r.height=0,r;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return r.longitude=e,r.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),r.height=0,r}var c,l=u.latitude,f=n*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=n*Math.sin(c),y=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(y/d,n/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return r.longitude=e,r.latitude=p,r.height=0,r},y.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},y}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,r,i){i=i||2;var a=r&&r.length,o=a?r[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,y;if(a&&(u=s(e,r,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var E=i;E<o;E+=i)p=e[E],m=e[E+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);y=Math.max(h-l,d-f)}return n(u,c,i,l,f,y),c}function t(e,t,r,n,i){var a,o;if(i===w(e,t,r,n)>0)for(a=t;a<r;a+=n)o=I(a,e[a],e[a+1],o);else for(a=r-n;a>=t;a-=n)o=I(a,e[a],e[a+1],o);return o&&v(o,o.next)&&(O(o),o=o.next),o}function r(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!v(n,n.next)&&0!==_(n.prev,n,n.next))n=n.next;else{if(O(n),(n=t=n.prev)===n.next)return null;r=!0}}while(r||n!==t);return t}function n(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,y=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),O(e),e=m.next,y=m.next;else if((e=m)===y){d?1===d?(e=o(e,t,s),n(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):n(r(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,r=e,n=e.next;if(_(t,r,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,r,n){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,r,n),h=p(c,l,t,r,n),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!v(i,a)&&T(i,n,n.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(a.i/r),O(n),O(n.next),n=e=a),n=n.next}while(n!==e);return n}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&E(s,c)){var l=S(s,c);return s=r(s,s.next),l=r(l,l.next),n(s,t,i,a,o,u),void n(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,n,i,a){var o,u,s,f,h,d=[];for(o=0,u=n.length;o<u;o++)s=n[o]*a,f=o<u-1?n[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=r(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var n=S(t,e);r(n,n.next)}}function f(e,t){var r,n=t,i=e.x,a=e.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y){var u=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(u<=i&&u>o){if(o=u,u===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null;if(i===o)return r.prev;var s,c=r,l=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=l&&y(a<f?i:o,a,l,f,a<f?o:i,a,n.x,n.y)&&((s=Math.abs(a-n.y)/(i-n.x))<h||s===h&&n.x>r.x)&&A(n,e)&&(r=n,h=s),n=n.next;return r}function h(e,t,r,n){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,r,n,i,a,o,u,s,c=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,n=r,u=0,t=0;t<c&&(u++,n=n.nextZ);t++);for(s=c;u>0||s>0&&n;)0===u?(i=n,n=n.nextZ,s--):0!==s&&n?r.z<=n.z?(i=r,r=r.nextZ,u--):(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,r,n,i){return e=32767*(e-r)/i,t=32767*(t-n)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}function y(e,t,r,n,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(n-u)-(r-o)*(t-u)>=0&&(r-o)*(a-u)-(i-o)*(n-u)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!R(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function _(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function v(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,r,n){return!!(v(e,t)&&v(r,n)||v(e,n)&&v(r,t))||_(e,t,r)>0!=_(e,t,n)>0&&_(r,n,e)>0!=_(r,n,t)>0}function R(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&T(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function A(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function g(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!=r.next.y>a&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}function S(e,t){var r=new N(e.i,e.x,e.y),n=new N(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function I(e,t,r,n){var i=new N(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function O(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function N(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function w(e,t,r,n){for(var i=0,a=t,o=r-n;a<r;a+=n)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,r,n){var i=t&&t.length,a=i?t[0]*r:e.length,o=Math.abs(w(e,0,a,r));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*r,l=u<s-1?t[u+1]*r:e.length;o-=Math.abs(w(e,c,l,r))}var f=0;for(u=0;u<n.length;u+=3){var h=n[u]*r,d=n[u+1]*r,p=n[u+2]*r;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)r.vertices.push(e[i][a][o]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r},e}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===r.CLOCKWISE||e===r.COUNTER_CLOCKWISE}};return e(r)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new r,y=new r,E={};E.computeArea2D=function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++){var a=e[n],o=e[i];r+=a.x*o.y-o.x*a.y}return.5*r},E.computeWindingOrder2D=function(e){return E.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},E.triangulate=function(r,n){var i=t.packArray(r);return e(i,n,2)};var _=new r,v=new r,T=new r,R=new r,A=new r,g=new r,S=new r;E.computeSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=n.slice(0),p=t.length,m=new Array(3*p),y=0;for(s=0;s<p;s++){var E=t[s];m[y++]=E.x,m[y++]=E.y,m[y++]=E.z}for(var I=[],O={},N=e.maximumRadius,w=h.chordLength(i,N),x=w*w;c.length>0;){var M,C,P=c.pop(),b=c.pop(),D=c.pop(),U=r.fromArray(m,3*D,_),L=r.fromArray(m,3*b,v),F=r.fromArray(m,3*P,T),B=r.multiplyByScalar(r.normalize(U,R),N,R),z=r.multiplyByScalar(r.normalize(L,A),N,A),q=r.multiplyByScalar(r.normalize(F,g),N,g),G=r.magnitudeSquared(r.subtract(B,z,S)),V=r.magnitudeSquared(r.subtract(z,q,S)),W=r.magnitudeSquared(r.subtract(q,B,S)),H=Math.max(G,V,W);H>x?G===H?(M=Math.min(D,b)+" "+Math.max(D,b),s=O[M],u(s)||(C=r.add(U,L,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(D,s,P),c.push(s,b,P)):V===H?(M=Math.min(b,P)+" "+Math.max(b,P),s=O[M],u(s)||(C=r.add(L,F,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(b,s,D),c.push(s,P,D)):W===H&&(M=Math.min(P,D)+" "+Math.max(P,D),s=O[M],u(s)||(C=r.add(F,U,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(P,s,b),c.push(s,D,b)):(I.push(D),I.push(b),I.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:I,primitiveType:d.TRIANGLES})};var I=new n,O=new n,N=new n,w=new n;return E.computeRhumbLineSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=n.slice(0),m=t.length,y=new Array(3*m),E=0;for(s=0;s<m;s++){var R=t[s];y[E++]=R.x,y[E++]=R.y,y[E++]=R.z}for(var A=[],g={},x=e.maximumRadius,M=h.chordLength(i,x),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),U=p.pop(),L=p.pop(),F=r.fromArray(y,3*L,_),B=r.fromArray(y,3*U,v),z=r.fromArray(y,3*D,T),q=e.cartesianToCartographic(F,I),G=e.cartesianToCartographic(B,O),V=e.cartesianToCartographic(z,N);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var H=P.surfaceDistance;b.setEndPoints(V,q);var X,k,Y,j,Z=b.surfaceDistance,K=Math.max(W,H,Z);K>M?W===K?(X=Math.min(L,U)+" "+Math.max(L,U),s=g[X],u(s)||(k=C.interpolateUsingFraction(.5,w),Y=.5*(q.height+G.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[X]=s),p.push(L,s,D),p.push(s,U,D)):H===K?(X=Math.min(U,D)+" "+Math.max(U,D),s=g[X],u(s)||(k=P.interpolateUsingFraction(.5,w),Y=.5*(G.height+V.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[X]=s),p.push(U,s,L),p.push(s,D,L)):Z===K&&(X=Math.min(D,L)+" "+Math.max(D,L),s=g[X],u(s)||(k=b.interpolateUsingFraction(.5,w),Y=.5*(V.height+q.height),j=r.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,g[X]=s),p.push(D,s,U),p.push(s,L,U)):(A.push(L),A.push(U),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:y})},indices:A,primitiveType:d.TRIANGLES})},E.scaleToGeodeticHeight=function(e,t,n,i){n=o(n,s.WGS84);var a=m,c=y;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)r.fromArray(e,f,c),i&&(c=n.scaleToGeodeticSurface(c,c)),0!==t&&(a=n.geodeticSurfaceNormal(c,a),r.multiplyByScalar(a,t,a),r.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},E}),define("Core/Queue",["./defineProperties"],function(e){"use strict";function t(){this._array=[],this._offset=0,this._length=0}return e(t.prototype,{ -length:{get:function(){return this._length}}}),t.prototype.enqueue=function(e){this._array.push(e),this._length++},t.prototype.dequeue=function(){if(0!==this._length){var e=this._array,t=this._offset,r=e[t];return e[t]=void 0,t++,t>10&&2*t>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,r}},t.prototype.peek=function(){if(0!==this._length)return this._array[this._offset]},t.prototype.contains=function(e){return-1!==this._array.indexOf(e)},t.prototype.clear=function(){this._array.length=this._offset=this._length=0},t.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)},t}),define("Core/PolygonGeometryLibrary",["./ArcType","./arrayRemoveDuplicates","./Cartesian2","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Queue","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,R,A){"use strict";function g(e,t,r,i){return n.subtract(t,e,I),n.multiplyByScalar(I,r/i,I),n.add(e,I,I),[I.x,I.y,I.z]}var S={};S.computeHierarchyPackedLength=function(e){for(var t=0,r=[e];r.length>0;){var i=r.pop();if(u(i)){t+=2;var a=i.positions,o=i.holes;if(u(a)&&(t+=a.length*n.packedLength),u(o))for(var s=o.length,c=0;c<s;++c)r.push(o[c])}}return t},S.packPolygonHierarchy=function(e,t,r){for(var i=[e];i.length>0;){var a=i.pop();if(u(a)){var o=a.positions,s=a.holes;if(t[r++]=u(o)?o.length:0,t[r++]=u(s)?s.length:0,u(o))for(var c=o.length,l=0;l<c;++l,r+=3)n.pack(o[l],t,r);if(u(s))for(var f=s.length,h=0;h<f;++h)i.push(s[h])}}return r},S.unpackPolygonHierarchy=function(e,t){for(var r=e[t++],i=e[t++],a=new Array(r),o=i>0?new Array(i):void 0,u=0;u<r;++u,t+=n.packedLength)a[u]=n.unpack(e,t);for(var s=0;s<i;++s)o[s]=S.unpackPolygonHierarchy(e,t),t=o[s].startingIndex,delete o[s].startingIndex;return{positions:a,holes:o,startingIndex:t}};var I=new n;S.subdivideLineCount=function(e,t,r){var i=n.distance(e,t),a=i/r,o=Math.max(0,Math.ceil(y.log2(a)));return Math.pow(2,o)};var O=new i,N=new i,w=new i,x=new n;S.subdivideRhumbLineCount=function(e,t,r,n){var i=e.cartesianToCartographic(t,O),a=e.cartesianToCartographic(r,N),o=new l(i,a,e),u=o.surfaceDistance/n,s=Math.max(0,Math.ceil(y.log2(u)));return Math.pow(2,s)},S.subdivideLine=function(e,t,r,i){var a=S.subdivideLineCount(e,t,r),o=n.distance(e,t),s=o/a;u(i)||(i=[]);var c=i;c.length=3*a;for(var l=0,f=0;f<a;f++){var h=g(e,t,f*s,o);c[l++]=h[0],c[l++]=h[1],c[l++]=h[2]}return c},S.subdivideRhumbLine=function(e,t,r,n,i){var a=e.cartesianToCartographic(t,O),o=e.cartesianToCartographic(r,N),s=new l(a,o,e),c=s.surfaceDistance/n,f=Math.max(0,Math.ceil(y.log2(c))),h=Math.pow(2,f),d=s.surfaceDistance/h;u(i)||(i=[]);var p=i;p.length=3*h;for(var m=0,E=0;E<h;E++){var _=s.interpolateUsingSurfaceDistance(E*d,w),v=e.cartographicToCartesian(_,x);p[m++]=v.x,p[m++]=v.y,p[m++]=v.z}return p};var M=new n,C=new n,P=new n,b=new n;S.scaleToGeodeticHeightExtruded=function(e,t,r,i,a){i=o(i,c.WGS84);var s=M,l=C,f=P,h=b;if(u(e)&&u(e.attributes)&&u(e.attributes.position))for(var d=e.attributes.position.values,p=d.length/2,m=0;m<p;m+=3)n.fromArray(d,m,f),i.geodeticSurfaceNormal(f,s),h=i.scaleToGeodeticSurface(f,h),l=n.multiplyByScalar(s,r,l),l=n.add(h,l,l),d[m+p]=l.x,d[m+1+p]=l.y,d[m+2+p]=l.z,a&&(h=n.clone(f,h)),l=n.multiplyByScalar(s,t,l),l=n.add(h,l,l),d[m]=l.x,d[m+1]=l.y,d[m+2]=l.z;return e},S.polygonOutlinesFromHierarchy=function(e,r,i){var a=[],o=new R;o.enqueue(e);for(var s,c,l;0!==o.length;){var f=o.dequeue(),h=f.positions;if(r)for(l=h.length,s=0;s<l;s++)i.scaleToGeodeticSurface(h[s],h[s]);if(h=t(h,n.equalsEpsilon,!0),!(h.length<3)){var d=f.holes?f.holes.length:0;for(s=0;s<d;s++){var p=f.holes[s],m=p.positions;if(r)for(l=m.length,c=0;c<l;++c)i.scaleToGeodeticSurface(m[c],m[c]);if(m=t(m,n.equalsEpsilon,!0),!(m.length<3)){a.push(m);var y=0;for(u(p.holes)&&(y=p.holes.length),c=0;c<y;c++)o.enqueue(p.holes[c])}}a.push(h)}}return a},S.polygonsFromHierarchy=function(e,r,i,a){var o=[],s=[],c=new R;for(c.enqueue(e);0!==c.length;){var l,f,h=c.dequeue(),d=h.positions,p=h.holes;if(i)for(f=d.length,l=0;l<f;l++)a.scaleToGeodeticSurface(d[l],d[l]);if(d=t(d,n.equalsEpsilon,!0),!(d.length<3)){var m=r(d);if(u(m)){var y=[],E=_.computeWindingOrder2D(m);E===A.CLOCKWISE&&(m.reverse(),d=d.slice().reverse());var v,T=d.slice(),g=u(p)?p.length:0,S=[];for(l=0;l<g;l++){var I=p[l],O=I.positions;if(i)for(f=O.length,v=0;v<f;++v)a.scaleToGeodeticSurface(O[v],O[v]);if(O=t(O,n.equalsEpsilon,!0),!(O.length<3)){var N=r(O);if(u(N)){E=_.computeWindingOrder2D(N),E===A.CLOCKWISE&&(N.reverse(),O=O.slice().reverse()),S.push(O),y.push(T.length),T=T.concat(O),m=m.concat(N);var w=0;for(u(I.holes)&&(w=I.holes.length),v=0;v<w;v++)c.enqueue(I.holes[v])}}}o.push({outerRing:d,holes:S}),s.push({positions:T,positions2D:m,holes:y})}}}return{hierarchy:o,polygons:s}};var D=new r,U=new n,L=new T,F=new E;S.computeBoundingRectangle=function(e,t,r,i,a){for(var o=T.fromAxisAngle(e,i,L),s=E.fromQuaternion(o,F),c=Number.POSITIVE_INFINITY,l=Number.NEGATIVE_INFINITY,f=Number.POSITIVE_INFINITY,h=Number.NEGATIVE_INFINITY,d=r.length,p=0;p<d;++p){var m=n.clone(r[p],U);E.multiplyByVector(s,m,m);var y=t(m,D);u(y)&&(c=Math.min(c,y.x),l=Math.max(l,y.x),f=Math.min(f,y.y),h=Math.max(h,y.y))}return a.x=c,a.y=f,a.width=l-c,a.height=h-f,a},S.createGeometryFromPositions=function(t,r,n,i,o,u){var s=_.triangulate(r.positions2D,r.holes);s.length<3&&(s=[0,1,2]);var c=r.positions;if(i){for(var l=c.length,d=new Array(3*l),m=0,y=0;y<l;y++){var E=c[y];d[m++]=E.x,d[m++]=E.y,d[m++]=E.z}var T=new f({attributes:{position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:d})},indices:s,primitiveType:v.TRIANGLES});return o.normal?p.computeNormal(T):T}return u===e.GEODESIC?_.computeSubdivision(t,c,s,n):u===e.RHUMB?_.computeRhumbLineSubdivision(t,c,s,n):void 0};var B=[],z=new n,q=new n;return S.computeWallGeometry=function(t,r,i,o,u){var s,c,l,p,E,_=t.length,T=0;if(o)for(c=3*_*2,s=new Array(2*c),l=0;l<_;l++)p=t[l],E=t[(l+1)%_],s[T]=s[T+c]=p.x,++T,s[T]=s[T+c]=p.y,++T,s[T]=s[T+c]=p.z,++T,s[T]=s[T+c]=E.x,++T,s[T]=s[T+c]=E.y,++T,s[T]=s[T+c]=E.z,++T;else{var R=y.chordLength(i,r.maximumRadius),A=0;if(u===e.GEODESIC)for(l=0;l<_;l++)A+=S.subdivideLineCount(t[l],t[(l+1)%_],R);else if(u===e.RHUMB)for(l=0;l<_;l++)A+=S.subdivideRhumbLineCount(r,t[l],t[(l+1)%_],R);for(c=3*(A+_),s=new Array(2*c),l=0;l<_;l++){p=t[l],E=t[(l+1)%_];var g;u===e.GEODESIC?g=S.subdivideLine(p,E,R,B):u===e.RHUMB&&(g=S.subdivideRhumbLine(r,p,E,R,B));for(var I=g.length,O=0;O<I;++O,++T)s[T]=g[O],s[T+c]=g[O];s[T]=E.x,s[T+c]=E.x,++T,s[T]=E.y,s[T+c]=E.y,++T,s[T]=E.z,s[T+c]=E.z,++T}}_=s.length;var N=m.createTypedArray(_/3,_-6*t.length),w=0;for(_/=6,l=0;l<_;l++){var x=l,M=x+1,C=x+_,P=C+1;p=n.fromArray(s,3*x,z),E=n.fromArray(s,3*M,q),n.equalsEpsilon(p,E,y.EPSILON14,y.EPSILON6)||(N[w++]=x,N[w++]=C,N[w++]=M,N[w++]=M,N[w++]=C,N[w++]=P)}return new f({attributes:new d({position:new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:s})}),indices:N,primitiveType:v.TRIANGLES})},S}),define("Core/PolygonOutlineGeometry",["./ArcType","./arrayFill","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./PolygonGeometryLibrary","./PolygonPipeline","./PrimitiveType","./Queue","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,R,A,g,S){"use strict";function I(t,r,n,i,a){var u=f.fromPoints(r,t),s=u.projectPointsOntoPlane(r,w);R.computeWindingOrder2D(s)===S.CLOCKWISE&&(s.reverse(),r=r.slice().reverse());var c,l,y=r.length,E=0;if(i)for(c=new Float64Array(2*y*3),l=0;l<y;l++){var v=r[l],g=r[(l+1)%y];c[E++]=v.x,c[E++]=v.y,c[E++]=v.z,c[E++]=g.x,c[E++]=g.y,c[E++]=g.z}else{var I=0;if(a===e.GEODESIC)for(l=0;l<y;l++)I+=T.subdivideLineCount(r[l],r[(l+1)%y],n);else if(a===e.RHUMB)for(l=0;l<y;l++)I+=T.subdivideRhumbLineCount(t,r[l],r[(l+1)%y],n);for(c=new Float64Array(3*I),l=0;l<y;l++){var O;a===e.GEODESIC?O=T.subdivideLine(r[l],r[(l+1)%y],n,x):a===e.RHUMB&&(O=T.subdivideRhumbLine(t,r[l],r[(l+1)%y],n,x));for(var N=O.length,M=0;M<N;++M)c[E++]=O[M]}}y=c.length/3;var C=2*y,P=_.createTypedArray(y,C);for(E=0,l=0;l<y-1;l++)P[E++]=l,P[E++]=l+1;return P[E++]=y-1,P[E++]=0,new m({geometry:new h({attributes:new p({position:new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:c})}),indices:P,primitiveType:A.LINES})})}function O(t,r,n,i,a){var u=f.fromPoints(r,t),s=u.projectPointsOntoPlane(r,w);R.computeWindingOrder2D(s)===S.CLOCKWISE&&(s.reverse(),r=r.slice().reverse());var c,l,y=r.length,E=new Array(y),v=0;if(i)for(c=new Float64Array(2*y*3*2),l=0;l<y;++l){E[l]=v/3;var g=r[l],I=r[(l+1)%y];c[v++]=g.x,c[v++]=g.y,c[v++]=g.z,c[v++]=I.x,c[v++]=I.y,c[v++]=I.z}else{var O=0;if(a===e.GEODESIC)for(l=0;l<y;l++)O+=T.subdivideLineCount(r[l],r[(l+1)%y],n);else if(a===e.RHUMB)for(l=0;l<y;l++)O+=T.subdivideRhumbLineCount(t,r[l],r[(l+1)%y],n);for(c=new Float64Array(3*O*2),l=0;l<y;++l){E[l]=v/3;var N;a===e.GEODESIC?N=T.subdivideLine(r[l],r[(l+1)%y],n,x):a===e.RHUMB&&(N=T.subdivideRhumbLine(t,r[l],r[(l+1)%y],n,x));for(var M=N.length,C=0;C<M;++C)c[v++]=N[C]}}y=c.length/6;var P=E.length,b=2*(2*y+P),D=_.createTypedArray(y+P,b);for(v=0,l=0;l<y;++l)D[v++]=l,D[v++]=(l+1)%y,D[v++]=l+y,D[v++]=(l+1)%y+y;for(l=0;l<P;l++){var U=E[l];D[v++]=U,D[v++]=U+y}return new m({geometry:new h({attributes:new p({position:new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:c})}),indices:D,primitiveType:A.LINES})})}function N(t){var r=t.polygonHierarchy,n=u(t.ellipsoid,l.WGS84),i=u(t.granularity,v.RADIANS_PER_DEGREE),a=u(t.perPositionHeight,!1),o=a&&s(t.extrudedHeight),c=u(t.arcType,e.GEODESIC),f=u(t.height,0),h=u(t.extrudedHeight,f);if(!o){var d=Math.max(f,h);h=Math.min(f,h),f=d}this._ellipsoid=l.clone(n),this._granularity=i,this._height=f,this._extrudedHeight=h,this._arcType=c,this._polygonHierarchy=r,this._perPositionHeight=a,this._perPositionHeightExtrude=o,this._offsetAttribute=t.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=T.computeHierarchyPackedLength(r)+l.packedLength+8}var w=[],x=[];N.pack=function(e,t,r){return r=u(r,0),r=T.packPolygonHierarchy(e._polygonHierarchy,t,r),l.pack(e._ellipsoid,t,r),r+=l.packedLength,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._granularity,t[r++]=e._perPositionHeightExtrude?1:0,t[r++]=e._perPositionHeight?1:0,t[r++]=e._arcType,t[r++]=u(e._offsetAttribute,-1),t[r]=e.packedLength,t};var M=l.clone(l.UNIT_SPHERE),C={polygonHierarchy:{}};return N.unpack=function(e,t,r){t=u(t,0);var n=T.unpackPolygonHierarchy(e,t);t=n.startingIndex,delete n.startingIndex;var i=l.unpack(e,t,M);t+=l.packedLength;var a=e[t++],o=e[t++],c=e[t++],f=1===e[t++],h=1===e[t++],d=e[t++],p=e[t++],m=e[t];return s(r)||(r=new N(C)),r._polygonHierarchy=n,r._ellipsoid=l.clone(i,r._ellipsoid),r._height=a,r._extrudedHeight=o,r._granularity=c,r._perPositionHeight=h,r._perPositionHeightExtrude=f,r._arcType=d,r._offsetAttribute=-1===p?void 0:p,r.packedLength=m,r},N.fromPositions=function(e){return e=u(e,u.EMPTY_OBJECT),new N({polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute})},N.createGeometry=function(e){var r=e._ellipsoid,i=e._granularity,a=e._polygonHierarchy,u=e._perPositionHeight,c=e._arcType,l=T.polygonOutlinesFromHierarchy(a,!u,r);if(0!==l.length){var f,p,m,_=[],A=v.chordLength(i,r.maximumRadius),g=e._height,S=e._extrudedHeight,N=e._perPositionHeightExtrude||!v.equalsEpsilon(g,S,0,v.EPSILON2);if(N)for(m=0;m<l.length;m++){if(f=O(r,l[m],A,u,c),f.geometry=T.scaleToGeodeticHeightExtruded(f.geometry,g,S,r,u),s(e._offsetAttribute)){var w=f.geometry.attributes.position.values.length/3,x=new Uint8Array(w);e._offsetAttribute===y.TOP?x=t(x,1,0,w/2):(p=e._offsetAttribute===y.NONE?0:1,x=t(x,p)),f.geometry.attributes.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}_.push(f)}else for(m=0;m<l.length;m++){if(f=I(r,l[m],A,u,c),f.geometry.attributes.position.values=R.scaleToGeodeticHeight(f.geometry.attributes.position.values,g,r,!u),s(e._offsetAttribute)){var M=f.geometry.attributes.position.values.length,C=new Uint8Array(M/3);p=e._offsetAttribute===y.NONE?0:1,t(C,p),f.geometry.attributes.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}_.push(f)}var P=E.combineInstances(_)[0],b=n.fromVertices(P.attributes.position.values);return new h({attributes:P.attributes,indices:P.indices,primitiveType:P.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})}},N}),define("Workers/createPolygonOutlineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/PolygonOutlineGeometry"],function(e,t,r){"use strict";function n(n,i){return e(i)&&(n=r.unpack(n,i)),n._ellipsoid=t.clone(n._ellipsoid),r.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-IY45XUGY.js";import{a as b}from"./chunk-E3BAMNKM.js";import{a as F}from"./chunk-7GU2ORNB.js";import{a as V}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import{a as D}from"./chunk-6UMNSGJM.js";import{a as W}from"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{a as j,b as k}from"./chunk-M243PNMW.js";import"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as M}from"./chunk-T53UE6JF.js";import{a as G}from"./chunk-RYO6NY7F.js";import{b as B,c as C,d as v}from"./chunk-2HSPJH3C.js";import{d as z}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as w}from"./chunk-6QVIJ7JA.js";import{a as S,d as y}from"./chunk-AODSXSC5.js";import{a as T}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as P}from"./chunk-WHQYJFDH.js";import{a as U,b as A}from"./chunk-OYWUGDKS.js";import{e as O}from"./chunk-DRYFJEFT.js";var Y=[],R=[];function K(e,t,r,H,l){let p=W.fromPoints(t,e).projectPointsOntoPlane(t,Y);k.computeWindingOrder2D(p)===j.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=0;if(H)for(n=new Float64Array(o*2*3),i=0;i<o;i++){let u=t[i],h=t[(i+1)%o];n[c++]=u.x,n[c++]=u.y,n[c++]=u.z,n[c++]=h.x,n[c++]=h.y,n[c++]=h.z}else{let u=0;if(l===b.GEODESIC)for(i=0;i<o;i++)u+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===b.RHUMB)for(i=0;i<o;i++)u+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(u*3),i=0;i<o;i++){let h;l===b.GEODESIC?h=a.subdivideLine(t[i],t[(i+1)%o],r,R):l===b.RHUMB&&(h=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,R));let g=h.length;for(let d=0;d<g;++d)n[c++]=h[d]}}o=n.length/3;let f=o*2,m=M.createTypedArray(o,f);for(c=0,i=0;i<o-1;i++)m[c++]=i,m[c++]=i+1;return m[c++]=o-1,m[c++]=0,new F({geometry:new C({attributes:new G({position:new v({componentDatatype:w.DOUBLE,componentsPerAttribute:3,values:n})}),indices:m,primitiveType:B.LINES})})}function q(e,t,r,H,l){let p=W.fromPoints(t,e).projectPointsOntoPlane(t,Y);k.computeWindingOrder2D(p)===j.CLOCKWISE&&(p.reverse(),t=t.slice().reverse());let n,i,o=t.length,c=new Array(o),f=0;if(H)for(n=new Float64Array(o*2*3*2),i=0;i<o;++i){c[i]=f/3;let g=t[i],d=t[(i+1)%o];n[f++]=g.x,n[f++]=g.y,n[f++]=g.z,n[f++]=d.x,n[f++]=d.y,n[f++]=d.z}else{let g=0;if(l===b.GEODESIC)for(i=0;i<o;i++)g+=a.subdivideLineCount(t[i],t[(i+1)%o],r);else if(l===b.RHUMB)for(i=0;i<o;i++)g+=a.subdivideRhumbLineCount(e,t[i],t[(i+1)%o],r);for(n=new Float64Array(g*3*2),i=0;i<o;++i){c[i]=f/3;let d;l===b.GEODESIC?d=a.subdivideLine(t[i],t[(i+1)%o],r,R):l===b.RHUMB&&(d=a.subdivideRhumbLine(e,t[i],t[(i+1)%o],r,R));let E=d.length;for(let N=0;N<E;++N)n[f++]=d[N]}}o=n.length/(3*2);let m=c.length,u=(o*2+m)*2,h=M.createTypedArray(o+m,u);for(f=0,i=0;i<o;++i)h[f++]=i,h[f++]=(i+1)%o,h[f++]=i+o,h[f++]=(i+1)%o+o;for(i=0;i<m;i++){let g=c[i];h[f++]=g,h[f++]=g+o}return new F({geometry:new C({attributes:new G({position:new v({componentDatatype:w.DOUBLE,componentsPerAttribute:3,values:n})}),indices:h,primitiveType:B.LINES})})}function L(e){if(A.typeOf.object("options",e),A.typeOf.object("options.polygonHierarchy",e.polygonHierarchy),e.perPositionHeight&&O(e.height))throw new U("Cannot use both options.perPositionHeight and options.height");if(O(e.arcType)&&e.arcType!==b.GEODESIC&&e.arcType!==b.RHUMB)throw new U("Invalid arcType. Valid options are ArcType.GEODESIC and ArcType.RHUMB.");let t=e.polygonHierarchy,r=P(e.ellipsoid,y.default),H=P(e.granularity,T.RADIANS_PER_DEGREE),l=P(e.perPositionHeight,!1),_=l&&O(e.extrudedHeight),p=P(e.arcType,b.GEODESIC),s=P(e.height,0),n=P(e.extrudedHeight,s);if(!_){let i=Math.max(s,n);n=Math.min(s,n),s=i}this._ellipsoid=y.clone(r),this._granularity=H,this._height=s,this._extrudedHeight=n,this._arcType=p,this._polygonHierarchy=t,this._perPositionHeight=l,this._perPositionHeightExtrude=_,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=a.computeHierarchyPackedLength(t,S)+y.packedLength+8}L.pack=function(e,t,r){return A.typeOf.object("value",e),A.defined("array",t),r=P(r,0),r=a.packPolygonHierarchy(e._polygonHierarchy,t,r,S),y.pack(e._ellipsoid,t,r),r+=y.packedLength,t[r++]=e._height,t[r++]=e._extrudedHeight,t[r++]=e._granularity,t[r++]=e._perPositionHeightExtrude?1:0,t[r++]=e._perPositionHeight?1:0,t[r++]=e._arcType,t[r++]=P(e._offsetAttribute,-1),t[r]=e.packedLength,t};var J=y.clone(y.UNIT_SPHERE),Q={polygonHierarchy:{}};L.unpack=function(e,t,r){A.defined("array",e),t=P(t,0);let H=a.unpackPolygonHierarchy(e,t,S);t=H.startingIndex,delete H.startingIndex;let l=y.unpack(e,t,J);t+=y.packedLength;let _=e[t++],p=e[t++],s=e[t++],n=e[t++]===1,i=e[t++]===1,o=e[t++],c=e[t++],f=e[t];return O(r)||(r=new L(Q)),r._polygonHierarchy=H,r._ellipsoid=y.clone(l,r._ellipsoid),r._height=_,r._extrudedHeight=p,r._granularity=s,r._perPositionHeight=i,r._perPositionHeightExtrude=n,r._arcType=o,r._offsetAttribute=c===-1?void 0:c,r.packedLength=f,r};L.fromPositions=function(e){e=P(e,P.EMPTY_OBJECT),A.defined("options.positions",e.positions);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new L(t)};L.createGeometry=function(e){let t=e._ellipsoid,r=e._granularity,H=e._polygonHierarchy,l=e._perPositionHeight,_=e._arcType,p=a.polygonOutlinesFromHierarchy(H,!l,t);if(p.length===0)return;let s,n=[],i=T.chordLength(r,t.maximumRadius),o=e._height,c=e._extrudedHeight,f=e._perPositionHeightExtrude||!T.equalsEpsilon(o,c,0,T.EPSILON2),m,u;if(f)for(u=0;u<p.length;u++){if(s=q(t,p[u],i,l,_),s.geometry=a.scaleToGeodeticHeightExtruded(s.geometry,o,c,t,l),O(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length/3,E=new Uint8Array(d);e._offsetAttribute===D.TOP?E=E.fill(1,0,d/2):(m=e._offsetAttribute===D.NONE?0:1,E=E.fill(m)),s.geometry.attributes.applyOffset=new v({componentDatatype:w.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}n.push(s)}else for(u=0;u<p.length;u++){if(s=K(t,p[u],i,l,_),s.geometry.attributes.position.values=k.scaleToGeodeticHeight(s.geometry.attributes.position.values,o,t,!l),O(e._offsetAttribute)){let d=s.geometry.attributes.position.values.length;m=e._offsetAttribute===D.NONE?0:1;let E=new Uint8Array(d/3).fill(m);s.geometry.attributes.applyOffset=new v({componentDatatype:w.UNSIGNED_BYTE,componentsPerAttribute:1,values:E})}n.push(s)}let h=V.combineInstances(n)[0],g=z.fromVertices(h.attributes.position.values);return new C({attributes:h.attributes,indices:h.indices,primitiveType:h.primitiveType,boundingSphere:g,offsetAttribute:e._offsetAttribute})};var x=L;function X(e,t){return O(t)&&(e=x.unpack(e,t)),e._ellipsoid=y.clone(e._ellipsoid),x.createGeometry(e)}var Oe=X;export{Oe as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineGeometry.js index 29ee1fa16..fe685e617 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var s=new e;return a.setRandomNumberSeed=function(t){s=new e(t)},a.nextRandomNumber=function(){return s.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,s=t(e.magnitude,1),u=s*Math.sin(a);return n.x=u*Math.cos(i),n.y=u*Math.sin(i),n.z=s*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,s=t.y,u=t.z,c=i*u-a*s,l=a*o-n*u,f=n*s-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,s){i=t(i,0);var u=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(u,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(s)||(s=new o),o.add(d,h,s)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var s=e[a],u=e[a+1],c=a/2;n[c]=o.fromDegrees(s,u,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var s=e[a],u=e[a+1],c=a/2;n[c]=o.fromRadians(s,u,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var s=e[a],u=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(s,u,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var s=e[a],u=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(s,u,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,s,u,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,m=l*l*d*d,_=f*f*E*E,y=h*h*p*p,R=m+_+y,T=Math.sqrt(1/R),A=e.multiplyByScalar(r,T,a);if(R<u)return isFinite(T)?e.clone(A,c):void 0;var S=s.x,g=s.y,C=s.z,v=o;v.x=A.x*S*2,v.y=A.y*g*2,v.z=A.z*C*2;var I,O,N,M,w,P,D,U,F,L,x,b=(1-T)*e.magnitude(r)/(.5*e.magnitude(v)),B=0;do{b-=B,N=1/(1+b*S),M=1/(1+b*g),w=1/(1+b*C),P=N*N,D=M*M,U=w*w,F=P*N,L=D*M,x=U*w,I=m*P+_*D+y*U-1,O=m*F*S+_*L*g+y*x*C;B=I/(-2*O)}while(Math.abs(I)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*M,c.z=h*w,c):new e(l*N,f*M,h*w)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function s(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}s.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new s(e,t,i)},s.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),s.fromRadians(e,t,r,n)};var u=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return s.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,m=n(r)?r._centerToleranceSquared:d,_=o(t,E,p,m,c);if(n(_)){var y=e.multiplyComponents(_,p,u);y=e.normalize(y,y);var R=e.subtract(t,_,l),T=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(R,t))*e.magnitude(R);return n(i)?(i.longitude=T,i.latitude=A,i.height=S,i):new s(T,A,S)}},s.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},s.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new s(e.longitude,e.latitude,e.height)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},s.ZERO=i(new s(0,0,0)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},s}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=u.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=s(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=s(new f(1,1,1)),f.MOON=s(new f(u.LUNAR_RADIUS,u.LUNAR_RADIUS,u.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),s=o*Math.cos(n),u=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=s,r.y=u,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,m=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),s=e.subtract(r,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=u.sign(e.dot(s,r))*e.magnitude(s);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,s=this._oneOverRadiiSquared,u=1/Math.sqrt(n*n*s.x+a*a*s.y+o*o*s.z);return e.multiplyByScalar(t,u,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,r,n){"use strict";function i(e,n,i){if(r(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var s,u,c;for(s=1;s<o&&(u=e[s-1],c=e[s],!n(u,c,a));++s);if(s===o)return i&&n(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,s);s<o;++s)c=e[s],n(u,c,a)||(l.push(c),u=c);return i&&l.length>1&&n(l[0],l[l.length-1],a)&&l.shift(),l}}var a=n.EPSILON10;return i}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function s(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,s=t.height;return n(r)?(r.x=a,r.y=o,r.z=s,r):new e(a,o,s)},s.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,s=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=s,r):new t(a,o,s)},s}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i,a,o,s,u,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(s,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(u,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[u.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=s.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[u.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[u.getElementIndex(h,f)])>r){var d,m=e[u.getElementIndex(h,h)],_=e[u.getElementIndex(f,f)],y=e[u.getElementIndex(h,f)],R=(m-_)/2/y;d=R<0?-1/(-R+Math.sqrt(1+R*R)):1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+d*d),l=d*c}return t=u.clone(u.IDENTITY,t),t[u.getElementIndex(f,f)]=t[u.getElementIndex(h,h)]=c,t[u.getElementIndex(h,f)]=l,t[u.getElementIndex(f,h)]=-l,t}u.packedLength=9,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},u.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new u(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},u.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},u.fromColumnMajorArray=function(e,t){return u.clone(e,t)},u.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new u(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},u.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,s=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-s-f+d,p=2*(i-h),m=2*(a+l),_=2*(i+h),y=-r+s-f+d,R=2*(c-o),T=2*(a-l),A=2*(c+o),S=-r-s+f+d;return n(t)?(t[0]=E,t[1]=_,t[2]=T,t[3]=p,t[4]=y,t[5]=A,t[6]=m,t[7]=R,t[8]=S,t):new u(E,p,m,_,y,R,T,A,S)},u.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),s=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*s+c*o*i,h=c*s+a*o*i,d=r*s,E=a*i+c*o*s,p=-c*i+a*o*s,m=-o,_=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=E,t[5]=_,t[6]=h,t[7]=p,t[8]=y,t):new u(l,f,h,d,E,p,m,_,y)},u.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new u(e.x,0,0,0,e.y,0,0,0,e.z)},u.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new u(e,0,0,0,e,0,0,0,e)},u.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new u(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},u.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new u(1,0,0,0,r,-i,0,i,r)},u.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new u(r,0,i,0,1,0,-i,0,r)},u.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new u(r,-i,0,i,r,0,0,0,1)},u.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},u.getElementIndex=function(e,t){return 3*e+t},u.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},u.setColumn=function(e,t,r,n){n=u.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},u.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},u.setRow=function(e,t,r,n){return n=u.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;u.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;u.getMaximumScale=function(t){return u.getScale(t,d),e.maximumComponent(d)},u.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],s=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],u=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=s,r[5]=u,r[6]=c,r[7]=l,r[8]=f,r},u.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},u.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},u.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,s=e[1]*n+e[4]*i+e[7]*a,u=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=s,r.z=u,r},u.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},u.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},u.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},u.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],s=e[7],u=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=u,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],m=new u,_=new u;return u.computeEigenDecomposition=function(e,t){var r=s.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=u.clone(u.IDENTITY,t.unitary),h=t.diagonal=u.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,m),u.transpose(m,_),u.multiply(h,m,h),u.multiply(_,h,h),u.multiply(o,m,o),++i>2&&(++a,i=0);return t},u.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},u.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],s=e[2],u=e[5],c=e[8];return t*(a*c-u*o)+i*(u*n-r*c)+s*(r*o-a*n)},u.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=u.determinant(e);t[0]=o*f-l*s,t[1]=l*i-n*f,t[2]=n*s-o*i,t[3]=c*s-a*f,t[4]=r*f-c*i,t[5]=a*i-r*s,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return u.multiplyByScalar(t,d,t)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},u.IDENTITY=o(new u(1,0,0,0,1,0,0,0,1)),u.ZERO=o(new u(0,0,0,0,0,0,0,0,0)),u.COLUMN0ROW0=0,u.COLUMN0ROW1=1,u.COLUMN0ROW2=2,u.COLUMN1ROW0=3,u.COLUMN1ROW1=4,u.COLUMN1ROW2=5,u.COLUMN2ROW0=6,u.COLUMN2ROW1=7,u.COLUMN2ROW2=8,i(u.prototype,{length:{get:function(){return u.packedLength}}}),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},u}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x), -t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var s=256*e;return t.x=Math.floor(s),s=256*(s-t.x),t.y=Math.floor(s),s=256*(s-t.y),t.z=Math.floor(s),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(e,t,r,i,a,o,s,u,c,l,f,h,d,E,p,m){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(s,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(u,0),this[14]=n(h,0),this[15]=n(m,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,s=r.z,u=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,R=u-d-m+y,T=2*(c-_),A=2*(f+p),S=2*(c+_),g=-u+d-m+y,C=2*(E-h),v=2*(f-p),I=2*(E+h),O=-u-d+m+y;return n[0]=R*a,n[1]=S*a,n[2]=v*a,n[3]=0,n[4]=T*o,n[5]=g*o,n[6]=I*o,n[7]=0,n[8]=A*s,n[9]=C*s,n[10]=O*s,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(u.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var s=h.x,u=h.y,c=h.z,E=f.x,p=f.y,m=f.z,_=d.x,y=d.y,R=d.z,T=n.x,A=n.y,S=n.z,g=s*-T+u*-A+c*-S,C=_*-T+y*-A+R*-S,v=E*T+p*A+m*S;return i(r)?(r[0]=s,r[1]=_,r[2]=-E,r[3]=0,r[4]=u,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=R,r[10]=-m,r[11]=0,r[12]=g,r[13]=C,r[14]=v,r[15]=1,r):new l(s,u,c,g,_,y,R,C,-E,-p,-m,v,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,s=o/t,u=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=s,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=u,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var s=1/(t-e),u=1/(n-r),c=1/(a-i),l=-(t+e)*s,f=-(n+r)*u,h=-(a+i)*c;return s*=2,u*=2,c*=-2,o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var s=2*i/(t-e),u=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),s=2*i/(n-r),u=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=s,a[6]=0,a[7]=0,a[8]=u,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),s=n(e.width,0),u=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*s,l=.5*u,f=.5*(r-t),h=c,d=l,E=f,p=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],s=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=s,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],m=e[13],_=e[14],y=e[15],R=t[0],T=t[1],A=t[2],S=t[3],g=t[4],C=t[5],v=t[6],I=t[7],O=t[8],N=t[9],M=t[10],w=t[11],P=t[12],D=t[13],U=t[14],F=t[15],L=n*R+s*T+f*A+p*S,x=i*R+u*T+h*A+m*S,b=a*R+c*T+d*A+_*S,B=o*R+l*T+E*A+y*S,q=n*g+s*C+f*v+p*I,G=i*g+u*C+h*v+m*I,z=a*g+c*C+d*v+_*I,V=o*g+l*C+E*v+y*I,W=n*O+s*N+f*M+p*w,H=i*O+u*N+h*M+m*w,X=a*O+c*N+d*M+_*w,Y=o*O+l*N+E*M+y*w,k=n*P+s*D+f*U+p*F,j=i*P+u*D+h*U+m*F,K=a*P+c*D+d*U+_*F,Z=o*P+l*D+E*U+y*F;return r[0]=L,r[1]=x,r[2]=b,r[3]=B,r[4]=q,r[5]=G,r[6]=z,r[7]=V,r[8]=W,r[9]=H,r[10]=X,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],m=t[1],_=t[2],y=t[4],R=t[5],T=t[6],A=t[8],S=t[9],g=t[10],C=t[12],v=t[13],I=t[14],O=n*p+o*m+c*_,N=i*p+s*m+l*_,M=a*p+u*m+f*_,w=n*y+o*R+c*T,P=i*y+s*R+l*T,D=a*y+u*R+f*T,U=n*A+o*S+c*g,F=i*A+s*S+l*g,L=a*A+u*S+f*g,x=n*C+o*v+c*I+h,b=i*C+s*v+l*I+d,B=a*C+u*v+f*I+E;return r[0]=O,r[1]=N,r[2]=M,r[3]=0,r[4]=w,r[5]=P,r[6]=D,r[7]=0,r[8]=U,r[9]=F,r[10]=L,r[11]=0,r[12]=x,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],m=t[4],_=t[5],y=t[6],R=t[7],T=t[8],A=n*h+o*d+c*E,S=i*h+s*d+l*E,g=a*h+u*d+f*E,C=n*p+o*m+c*_,v=i*p+s*m+l*_,I=a*p+u*m+f*_,O=n*y+o*R+c*T,N=i*y+s*R+l*T,M=a*y+u*R+f*T;return r[0]=A,r[1]=S,r[2]=g,r[3]=0,r[4]=C,r[5]=v,r[6]=I,r[7]=0,r[8]=O,r[9]=N,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],s=n*e[1]+i*e[5]+a*e[9]+e[13],u=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=s,r[14]=u,r[15]=e[15],r};var _=new e;l.multiplyByUniformScale=function(e,t,r){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,s=e[0]*n+e[4]*i+e[8]*a+e[12]*o,u=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=s,r.y=u,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,s=e[1]*n+e[5]*i+e[9]*a,u=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=s,r.z=u,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],s=e[1]*n+e[5]*i+e[9]*a+e[13],u=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=s,r.z=u,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=s,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new u,R=new u,T=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],m=e[6],_=e[10],S=e[14],g=e[3],C=e[7],v=e[11],I=e[15],O=_*I,N=S*v,M=m*I,w=S*C,P=m*v,D=_*C,U=p*I,F=S*g,L=p*v,x=_*g,b=p*C,B=m*g,q=O*h+w*d+P*E-(N*h+M*d+D*E),G=N*f+U*d+x*E-(O*f+F*d+L*E),z=M*f+F*h+b*E-(w*f+U*h+B*E),V=D*f+L*h+B*d-(P*f+x*h+b*d),W=N*i+M*a+D*o-(O*i+w*a+P*o),H=O*n+F*a+L*o-(N*n+U*a+x*o),X=w*n+U*i+B*o-(M*n+F*i+b*o),Y=P*n+x*i+b*a-(D*n+L*i+B*a);O=a*E,N=o*d,M=i*E,w=o*h,P=i*d,D=a*h,U=n*E,F=o*f,L=n*d,x=a*f,b=n*h,B=i*f;var k=O*C+w*v+P*I-(N*C+M*v+D*I),j=N*g+U*v+x*I-(O*g+F*v+L*I),K=M*g+F*C+b*I-(w*g+U*C+B*I),Z=D*g+L*C+B*v-(P*g+x*C+b*v),J=M*_+D*S+N*m-(P*S+O*m+w*_),Q=L*S+O*p+F*_-(U*_+x*S+N*p),$=U*m+B*S+w*p-(b*S+M*p+F*m),ee=b*_+P*p+x*m-(L*m+B*_+D*p),te=n*q+i*G+a*z+o*V;if(Math.abs(te)<s.EPSILON21){if(u.equalsEpsilon(l.getRotation(e,y),R,s.EPSILON7)&&t.equals(l.getRow(e,3,T),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=q*te,r[1]=G*te,r[2]=z*te,r[3]=V*te,r[4]=W*te,r[5]=H*te,r[6]=X*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],s=e[6],u=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-s*d,m=-u*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=u,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=s,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(u.prototype,{width:{get:function(){return u.computeWidth(this)}},height:{get:function(){return u.computeHeight(this)}}}),u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},u.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=s.TWO_PI),t-r},u.computeHeight=function(e){return e.north-e.south},u.fromDegrees=function(e,t,i,a,o){return e=s.toRadians(r(e,0)),t=s.toRadians(r(t,0)),i=s.toRadians(r(i,0)),a=s.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new u(e,t,i,a)},u.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new u(e,t,i,a)},u.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+s.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>s.PI&&(i-=s.TWO_PI),r>s.PI&&(r-=s.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new u(r,c,i,l)},u.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var m=t.cartesianToCartographic(e[E]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+s.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>s.PI&&(c-=s.TWO_PI),o>s.PI&&(o-=s.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new u(o,h,c,d)},u.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new u(e.west,e.south,e.east,e.north)},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.validate=function(e){},u.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},u.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},u.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},u.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},u.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=s.TWO_PI);var o=s.negativePiToPi(.5*(a+i)),u=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=u,r.height=0,r):new e(o,u)},u.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=s.TWO_PI:o<c&&i>0&&(o+=s.TWO_PI),i<a&&c<0?c+=s.TWO_PI:o<c&&a<0&&(a+=s.TWO_PI);var l=s.negativePiToPi(Math.max(a,c)),f=s.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new u(l,h,f,d)}},u.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(a>=s||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=s,r):new u(i,a,o,s)},u.union=function(e,t,r){n(r)||(r=new u);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=s.TWO_PI:o<c&&i>0&&(o+=s.TWO_PI),i<a&&c<0?c+=s.TWO_PI:o<c&&a<0&&(a+=s.TWO_PI);var l=s.convertLongitudeRange(Math.min(a,c)),f=s.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},u.expand=function(e,t,r){return n(r)||(r=new u),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},u.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=s.TWO_PI,r<0&&(r+=s.TWO_PI)),(r>i||s.equalsEpsilon(r,i,s.EPSILON14))&&(r<a||s.equalsEpsilon(r,a,s.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return u.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)p.longitude=-Math.PI+m*s.PI_OVER_TWO,u.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},u.MAX_VALUE=o(new u(-Math.PI,-s.PI_OVER_TWO,Math.PI,s.PI_OVER_TWO)),u}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,s,u,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,m=new e,_=new e,y=new e,R=new e,T=new e,A=new e,S=new e,g=new e,C=new e,v=new e,I=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,E),s=e.clone(a,p),u=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,R),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var I=a.x,O=a.y,N=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),O<s.y&&e.clone(a,s),O>l.y&&e.clone(a,l),N<u.z&&e.clone(a,u),N>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),w=e.magnitudeSquared(e.subtract(l,s,A)),P=e.magnitudeSquared(e.subtract(f,u,A)),D=o,U=c,F=M;w>F&&(F=w,D=s,U=l),P>F&&(F=P,D=u,U=f);var L=S;L.x=.5*(D.x+U.x),L.y=.5*(D.y+U.y),L.z=.5*(D.z+U.z);var x=e.magnitudeSquared(e.subtract(U,L,A)),b=Math.sqrt(x),B=g;B.x=o.x,B.y=s.y,B.z=u.z;var q=C;q.x=c.x,q.y=l.y,q.z=f.z;var G=e.midpoint(B,q,v),z=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,G,A));V>z&&(z=V);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>x){var H=Math.sqrt(W);b=.5*(b+H),x=b*b;var X=H-b;L.x=(b*L.x+X*a.x)/H,L.y=(b*L.y+X*a.y)/H,L.z=(b*L.z+X*a.z)/H}}return b<z?(e.clone(L,r.center),r.radius=b):(e.clone(G,r.center),r.radius=z),r};var O=new o,N=new e,M=new e,w=new t,P=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,s){if(i(s)||(s=new d),!i(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;r=n(r,O),h.southwest(t,w),w.height=a,h.northeast(t,P),P.height=o;var u=r.project(w,N),c=r.project(P,M),l=c.x-u.x,f=c.y-u.y,E=c.z-u.z;s.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=s.center;return p.x=u.x+.5*l,p.y=u.y+.5*f,p.z=u.z+.5*E,s};var D=[];d.fromRectangle3D=function(t,r,o,s){if(r=n(r,a.WGS84),o=n(o,0),i(s)||(s=new d),!i(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;var u=h.subsample(t,r,o,D);return d.fromPoints(u,s)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var s=T;s.x=t[0]+r.x,s.y=t[1]+r.y,s.z=t[2]+r.z;var u,c=e.clone(s,E),l=e.clone(s,p),f=e.clone(s,m),h=e.clone(s,_),I=e.clone(s,y),O=e.clone(s,R),N=t.length;for(u=0;u<N;u+=a){var M=t[u]+r.x,w=t[u+1]+r.y,P=t[u+2]+r.z;s.x=M,s.y=w,s.z=P,M<c.x&&e.clone(s,c),M>h.x&&e.clone(s,h),w<l.y&&e.clone(s,l),w>I.y&&e.clone(s,I),P<f.z&&e.clone(s,f),P>O.z&&e.clone(s,O)}var D=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(I,l,A)),F=e.magnitudeSquared(e.subtract(O,f,A)),L=c,x=h,b=D;U>b&&(b=U,L=l,x=I),F>b&&(b=F,L=f,x=O);var B=S;B.x=.5*(L.x+x.x),B.y=.5*(L.y+x.y),B.z=.5*(L.z+x.z);var q=e.magnitudeSquared(e.subtract(x,B,A)),G=Math.sqrt(q),z=g;z.x=c.x,z.y=l.y,z.z=f.z;var V=C;V.x=h.x,V.y=I.y,V.z=O.z;var W=e.midpoint(z,V,v),H=0;for(u=0;u<N;u+=a){s.x=t[u]+r.x,s.y=t[u+1]+r.y,s.z=t[u+2]+r.z;var X=e.magnitude(e.subtract(s,W,A));X>H&&(H=X);var Y=e.magnitudeSquared(e.subtract(s,B,A));if(Y>q){var k=Math.sqrt(Y);G=.5*(G+k),q=G*G;var j=k-G;B.x=(G*B.x+j*s.x)/k,B.y=(G*B.y+j*s.y)/k,B.z=(G*B.z+j*s.z)/k}}return G<H?(e.clone(B,o.center),o.radius=G):(e.clone(W,o.center),o.radius=H),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,s=e.clone(a,E),u=e.clone(a,p),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,R),I=t.length;for(o=0;o<I;o+=3){var O=t[o]+r[o],N=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=O,a.y=N,a.z=M,O<s.x&&e.clone(a,s),O>l.x&&e.clone(a,l),N<u.y&&e.clone(a,u),N>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var w=e.magnitudeSquared(e.subtract(l,s,A)),P=e.magnitudeSquared(e.subtract(f,u,A)),D=e.magnitudeSquared(e.subtract(h,c,A)),U=s,F=l,L=w;P>L&&(L=P,U=u,F=f),D>L&&(L=D,U=c,F=h);var x=S;x.x=.5*(U.x+F.x),x.y=.5*(U.y+F.y),x.z=.5*(U.z+F.z);var b=e.magnitudeSquared(e.subtract(F,x,A)),B=Math.sqrt(b),q=g;q.x=s.x,q.y=u.y,q.z=c.z;var G=C;G.x=l.x,G.y=f.y,G.z=h.z;var z=e.midpoint(q,G,v),V=0;for(o=0;o<I;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,z,A));W>V&&(V=W);var H=e.magnitudeSquared(e.subtract(a,x,A));if(H>b){var X=Math.sqrt(H);B=.5*(B+X),b=B*B;var Y=X-B;x.x=(B*x.x+Y*a.x)/X,x.y=(B*x.y+Y*a.y)/X,x.z=(B*x.z+Y*a.z)/X}}return B<V?(e.clone(x,n.center),n.radius=B):(e.clone(z,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var s=r.center,u=r.radius;for(a=0;a<n;a++){var c=t[a];u=Math.max(u,e.distance(s,c.center,U)+c.radius)}return r.radius=u,r};var F=new e,L=new e,x=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,F),o=l.getColumn(n,1,L),s=l.getColumn(n,2,x);return e.add(a,o,a),e.add(a,s,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,s=r.center,u=r.radius,c=e.subtract(s,a,b),l=e.magnitude(c);if(o>=l+u)return t.clone(n),n;if(u>=l+o)return r.clone(n),n;var f=.5*(o+l+u),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var q=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,q));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?s.OUTSIDE:o<i?s.INTERSECTING:s.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var G=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,G);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var z=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new u);var o=e.subtract(t.center,r,z),s=e.dot(n,o);return a.start=s-t.radius,a.stop=s+t.radius,a};for(var V=new e,W=new e,H=new e,X=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,s=t.radius,u=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,u,W);e.normalize(c,c);var l=e.cross(u,c,H);e.normalize(l,l),e.multiplyByScalar(u,s,u),e.multiplyByScalar(l,s,l),e.multiplyByScalar(c,s,c);var f=e.negate(l,Y),h=e.negate(c,X),E=j,p=E[0];e.add(u,l,p),e.add(p,c,p),p=E[1],e.add(u,l,p),e.add(p,h,p),p=E[2],e.add(u,f,p),e.add(p,h,p),p=E[3],e.add(u,f,p),e.add(p,c,p),e.negate(u,u),p=E[4],e.add(u,l,p),e.add(p,c,p),p=E[5],e.add(u,l,p),e.add(p,h,p),p=E[6],e.add(u,f,p),e.add(p,h,p),p=E[7],e.add(u,f,p),e.add(p,c,p);for(var m=E.length,_=0;_<m;++_){var y=E[_];e.add(o,y,y);var R=a.cartesianToCartographic(y,k);r.project(R,y)}i=d.fromPoints(E,i),o=i.center;var T=o.x,A=o.y,S=o.z;return o.x=S,o.y=T,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){ -if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,s=a.length;o<s;++o){var u=a[o];i=u+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=u+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=u+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=u+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=u+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=u+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=u+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=u+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=u+"fullscreenchange",void 0!==document["on"+i]&&("ms"===u&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=u+"fullscreenerror",void 0!==document["on"+i]&&("ms"===u&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:s(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function s(e){return d(e)}var u,c,l,f,h,d,E;return c=new n(e),u={then:e,resolve:r,reject:i,progress:s,promise:c,resolver:{resolve:r,reject:i,progress:s}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=_,p(l,e),f=l=A,e},u}function s(e){return e&&"function"==typeof e.then}function u(t,r,n,i,a){return m(2,arguments),e(t,function(t){function s(e){p(e)}function u(e){E(e)}var c,l,f,h,d,E,p,m,y,R;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,p=function(e){h.push(e),--l||(E=p=_,d.reject(h))},E=function(e){f.push(e),--c||(E=p=_,d.resolve(f))},R=0;R<y;++R)R in t&&e(t[R],u,s,m);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return u(e,1,i,r,n)}function l(e,t,r,n){return m(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,s,u,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(s=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},u=0;u<i;u++)u in t?s(t[u],u):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},R.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function m(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function _(){}function y(e){return e}var R,T,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=u,e.chain=E,e.isPromise=s,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},T=[].slice,R=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function s(){if(!t(v)&&(v=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(v=!0,I=o(e[1]))}return v}function u(){return s()&&I}function c(){if(!t(O)&&(O=!1,!s()&&!p()&&/ Safari\/[\.0-9]+/.test(C.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(O=!0,N=o(e[1]))}return O}function l(){return c()&&N}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(C.userAgent);null!==e&&(M=!0,w=o(e[1]),w.isNightly=!!e[2])}return M}function h(){return f()&&w}function d(){if(!t(P)){P=!1;var e;"Microsoft Internet Explorer"===C.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(C.userAgent))&&(P=!0,D=o(e[1])):"Netscape"===C.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(C.userAgent))&&(P=!0,D=o(e[1]))}return P}function E(){return d()&&D}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(U=!0,F=o(e[1]))}return U}function m(){return p()&&F}function _(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(L=!0,x=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(C.appVersion)),b}function R(){return _()&&x}function T(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(C.pointerEnabled)||C.pointerEnabled)),B}function A(){if(!t(G)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;G=t(r)&&""!==r,G&&(q=r)}return G}function S(){return A()?q:void 0}function g(){return g._result}var C;C="undefined"!=typeof navigator?navigator:{};var v,I,O,N,M,w,P,D,U,F,L,x,b,B,q,G;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,p())return g._result=!1,e.resolve(g._result),e.promise;var r=new Image;return r.onload=function(){g._result=r.width>0&&r.height>0,e.resolve(g._result)},r.onerror=function(){g._result=!1,e.resolve(g._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(g,{initialized:{get:function(){return t(g._result)}}});var z=[];"undefined"!=typeof ArrayBuffer&&(z.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&z.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&z.push(CanvasPixelArray));var V={isChrome:s,chromeVersion:u,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:m,isFirefox:_,firefoxVersion:R,isWindows:y,hardwareConcurrency:e(C.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:A,supportsWebP:g,imageRenderingValue:S,typedArrayTypes:z};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Color",["./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function s(e,r,n,i){this.red=t(e,1),this.green=t(r,1),this.blue=t(n,1),this.alpha=t(i,1)}s.fromCartesian4=function(e,t){return r(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new s(e.x,e.y,e.z,e.w)},s.fromBytes=function(e,n,i,a,o){return e=s.byteToFloat(t(e,255)),n=s.byteToFloat(t(n,255)),i=s.byteToFloat(t(i,255)),a=s.byteToFloat(t(a,255)),r(o)?(o.red=e,o.green=n,o.blue=i,o.alpha=a,o):new s(e,n,i,a)},s.fromAlpha=function(e,t,n){return r(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new s(e.red,e.green,e.blue,t)};var u,c,l;n.supportsTypedArrays()&&(u=new ArrayBuffer(4),c=new Uint32Array(u),l=new Uint8Array(u)),s.fromRgba=function(e,t){return c[0]=e,s.fromBytes(l[0],l[1],l[2],l[3],t)},s.fromHsl=function(e,n,i,a,u){e=t(e,0)%1,n=t(n,0),i=t(i,0),a=t(a,1);var c=i,l=i,f=i;if(0!==n){var h;h=i<.5?i*(1+n):i+n-i*n;var d=2*i-h;c=o(d,h,e+1/3),l=o(d,h,e),f=o(d,h,e-1/3)}return r(u)?(u.red=c,u.green=l,u.blue=f,u.alpha=a,u):new s(c,l,f,a)},s.fromRandom=function(e,n){e=t(e,t.EMPTY_OBJECT);var i=e.red;if(!r(i)){var o=t(e.minimumRed,0),u=t(e.maximumRed,1);i=o+a.nextRandomNumber()*(u-o)}var c=e.green;if(!r(c)){var l=t(e.minimumGreen,0),f=t(e.maximumGreen,1);c=l+a.nextRandomNumber()*(f-l)}var h=e.blue;if(!r(h)){var d=t(e.minimumBlue,0),E=t(e.maximumBlue,1);h=d+a.nextRandomNumber()*(E-d)}var p=e.alpha;if(!r(p)){var m=t(e.minimumAlpha,0),_=t(e.maximumAlpha,1);p=m+a.nextRandomNumber()*(_-m)}return r(n)?(n.red=i,n.green=c,n.blue=h,n.alpha=p,n):new s(i,c,h,p)};var f=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,h=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,d=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,E=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;return s.fromCssColorString=function(e,n){r(n)||(n=new s);var i=s[e.toUpperCase()];if(r(i))return s.clone(i,n),n;var a=f.exec(e);return null!==a?(n.red=parseInt(a[1],16)/15,n.green=parseInt(a[2],16)/15,n.blue=parseInt(a[3],16)/15,n.alpha=1,n):null!==(a=h.exec(e))?(n.red=parseInt(a[1],16)/255,n.green=parseInt(a[2],16)/255,n.blue=parseInt(a[3],16)/255,n.alpha=1,n):null!==(a=d.exec(e))?(n.red=parseFloat(a[1])/("%"===a[1].substr(-1)?100:255),n.green=parseFloat(a[2])/("%"===a[2].substr(-1)?100:255),n.blue=parseFloat(a[3])/("%"===a[3].substr(-1)?100:255),n.alpha=parseFloat(t(a[4],"1.0")),n):null!==(a=E.exec(e))?s.fromHsl(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,parseFloat(t(a[4],"1.0")),n):n=void 0},s.packedLength=4,s.pack=function(e,r,n){return n=t(n,0),r[n++]=e.red,r[n++]=e.green,r[n++]=e.blue,r[n]=e.alpha,r},s.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new s),i.red=e[n++],i.green=e[n++],i.blue=e[n++],i.alpha=e[n],i},s.byteToFloat=function(e){return e/255},s.floatToByte=function(e){return 1===e?255:256*e|0},s.clone=function(e,t){if(r(e))return r(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new s(e.red,e.green,e.blue,e.alpha)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},s.equalsArray=function(e,t,r){return e.red===t[r]&&e.green===t[r+1]&&e.blue===t[r+2]&&e.alpha===t[r+3]},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return this===e||r(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},s.prototype.toString=function(){return"("+this.red+", "+this.green+", "+this.blue+", "+this.alpha+")"},s.prototype.toCssColorString=function(){var e=s.floatToByte(this.red),t=s.floatToByte(this.green),r=s.floatToByte(this.blue);return 1===this.alpha?"rgb("+e+","+t+","+r+")":"rgba("+e+","+t+","+r+","+this.alpha+")"},s.prototype.toBytes=function(e){var t=s.floatToByte(this.red),n=s.floatToByte(this.green),i=s.floatToByte(this.blue),a=s.floatToByte(this.alpha);return r(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=a,e):[t,n,i,a]},s.prototype.toRgba=function(){return l[0]=s.floatToByte(this.red),l[1]=s.floatToByte(this.green),l[2]=s.floatToByte(this.blue),l[3]=s.floatToByte(this.alpha),c[0]},s.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t},s.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t},s.prototype.withAlpha=function(e,t){return s.fromAlpha(this,e,t)},s.add=function(e,t,r){return r.red=e.red+t.red,r.green=e.green+t.green,r.blue=e.blue+t.blue,r.alpha=e.alpha+t.alpha,r},s.subtract=function(e,t,r){return r.red=e.red-t.red,r.green=e.green-t.green,r.blue=e.blue-t.blue,r.alpha=e.alpha-t.alpha,r},s.multiply=function(e,t,r){return r.red=e.red*t.red,r.green=e.green*t.green,r.blue=e.blue*t.blue,r.alpha=e.alpha*t.alpha,r},s.divide=function(e,t,r){return r.red=e.red/t.red,r.green=e.green/t.green,r.blue=e.blue/t.blue,r.alpha=e.alpha/t.alpha,r},s.mod=function(e,t,r){return r.red=e.red%t.red,r.green=e.green%t.green,r.blue=e.blue%t.blue,r.alpha=e.alpha%t.alpha,r},s.multiplyByScalar=function(e,t,r){return r.red=e.red*t,r.green=e.green*t,r.blue=e.blue*t,r.alpha=e.alpha*t,r},s.divideByScalar=function(e,t,r){return r.red=e.red/t,r.green=e.green/t,r.blue=e.blue/t,r.alpha=e.alpha/t,r},s.ALICEBLUE=i(s.fromCssColorString("#F0F8FF")),s.ANTIQUEWHITE=i(s.fromCssColorString("#FAEBD7")),s.AQUA=i(s.fromCssColorString("#00FFFF")),s.AQUAMARINE=i(s.fromCssColorString("#7FFFD4")),s.AZURE=i(s.fromCssColorString("#F0FFFF")),s.BEIGE=i(s.fromCssColorString("#F5F5DC")),s.BISQUE=i(s.fromCssColorString("#FFE4C4")),s.BLACK=i(s.fromCssColorString("#000000")),s.BLANCHEDALMOND=i(s.fromCssColorString("#FFEBCD")),s.BLUE=i(s.fromCssColorString("#0000FF")),s.BLUEVIOLET=i(s.fromCssColorString("#8A2BE2")),s.BROWN=i(s.fromCssColorString("#A52A2A")),s.BURLYWOOD=i(s.fromCssColorString("#DEB887")),s.CADETBLUE=i(s.fromCssColorString("#5F9EA0")),s.CHARTREUSE=i(s.fromCssColorString("#7FFF00")),s.CHOCOLATE=i(s.fromCssColorString("#D2691E")),s.CORAL=i(s.fromCssColorString("#FF7F50")),s.CORNFLOWERBLUE=i(s.fromCssColorString("#6495ED")),s.CORNSILK=i(s.fromCssColorString("#FFF8DC")),s.CRIMSON=i(s.fromCssColorString("#DC143C")),s.CYAN=i(s.fromCssColorString("#00FFFF")),s.DARKBLUE=i(s.fromCssColorString("#00008B")),s.DARKCYAN=i(s.fromCssColorString("#008B8B")),s.DARKGOLDENROD=i(s.fromCssColorString("#B8860B")),s.DARKGRAY=i(s.fromCssColorString("#A9A9A9")),s.DARKGREEN=i(s.fromCssColorString("#006400")),s.DARKGREY=s.DARKGRAY,s.DARKKHAKI=i(s.fromCssColorString("#BDB76B")),s.DARKMAGENTA=i(s.fromCssColorString("#8B008B")),s.DARKOLIVEGREEN=i(s.fromCssColorString("#556B2F")),s.DARKORANGE=i(s.fromCssColorString("#FF8C00")),s.DARKORCHID=i(s.fromCssColorString("#9932CC")),s.DARKRED=i(s.fromCssColorString("#8B0000")),s.DARKSALMON=i(s.fromCssColorString("#E9967A")),s.DARKSEAGREEN=i(s.fromCssColorString("#8FBC8F")),s.DARKSLATEBLUE=i(s.fromCssColorString("#483D8B")),s.DARKSLATEGRAY=i(s.fromCssColorString("#2F4F4F")),s.DARKSLATEGREY=s.DARKSLATEGRAY,s.DARKTURQUOISE=i(s.fromCssColorString("#00CED1")),s.DARKVIOLET=i(s.fromCssColorString("#9400D3")),s.DEEPPINK=i(s.fromCssColorString("#FF1493")),s.DEEPSKYBLUE=i(s.fromCssColorString("#00BFFF")),s.DIMGRAY=i(s.fromCssColorString("#696969")),s.DIMGREY=s.DIMGRAY,s.DODGERBLUE=i(s.fromCssColorString("#1E90FF")),s.FIREBRICK=i(s.fromCssColorString("#B22222")),s.FLORALWHITE=i(s.fromCssColorString("#FFFAF0")),s.FORESTGREEN=i(s.fromCssColorString("#228B22")),s.FUCHSIA=i(s.fromCssColorString("#FF00FF")),s.GAINSBORO=i(s.fromCssColorString("#DCDCDC")),s.GHOSTWHITE=i(s.fromCssColorString("#F8F8FF")),s.GOLD=i(s.fromCssColorString("#FFD700")),s.GOLDENROD=i(s.fromCssColorString("#DAA520")),s.GRAY=i(s.fromCssColorString("#808080")),s.GREEN=i(s.fromCssColorString("#008000")),s.GREENYELLOW=i(s.fromCssColorString("#ADFF2F")),s.GREY=s.GRAY,s.HONEYDEW=i(s.fromCssColorString("#F0FFF0")),s.HOTPINK=i(s.fromCssColorString("#FF69B4")),s.INDIANRED=i(s.fromCssColorString("#CD5C5C")),s.INDIGO=i(s.fromCssColorString("#4B0082")),s.IVORY=i(s.fromCssColorString("#FFFFF0")),s.KHAKI=i(s.fromCssColorString("#F0E68C")),s.LAVENDER=i(s.fromCssColorString("#E6E6FA")),s.LAVENDAR_BLUSH=i(s.fromCssColorString("#FFF0F5")),s.LAWNGREEN=i(s.fromCssColorString("#7CFC00")),s.LEMONCHIFFON=i(s.fromCssColorString("#FFFACD")),s.LIGHTBLUE=i(s.fromCssColorString("#ADD8E6")),s.LIGHTCORAL=i(s.fromCssColorString("#F08080")),s.LIGHTCYAN=i(s.fromCssColorString("#E0FFFF")),s.LIGHTGOLDENRODYELLOW=i(s.fromCssColorString("#FAFAD2")),s.LIGHTGRAY=i(s.fromCssColorString("#D3D3D3")),s.LIGHTGREEN=i(s.fromCssColorString("#90EE90")),s.LIGHTGREY=s.LIGHTGRAY,s.LIGHTPINK=i(s.fromCssColorString("#FFB6C1")),s.LIGHTSEAGREEN=i(s.fromCssColorString("#20B2AA")),s.LIGHTSKYBLUE=i(s.fromCssColorString("#87CEFA")),s.LIGHTSLATEGRAY=i(s.fromCssColorString("#778899")),s.LIGHTSLATEGREY=s.LIGHTSLATEGRAY,s.LIGHTSTEELBLUE=i(s.fromCssColorString("#B0C4DE")),s.LIGHTYELLOW=i(s.fromCssColorString("#FFFFE0")),s.LIME=i(s.fromCssColorString("#00FF00")),s.LIMEGREEN=i(s.fromCssColorString("#32CD32")),s.LINEN=i(s.fromCssColorString("#FAF0E6")),s.MAGENTA=i(s.fromCssColorString("#FF00FF")),s.MAROON=i(s.fromCssColorString("#800000")),s.MEDIUMAQUAMARINE=i(s.fromCssColorString("#66CDAA")),s.MEDIUMBLUE=i(s.fromCssColorString("#0000CD")),s.MEDIUMORCHID=i(s.fromCssColorString("#BA55D3")),s.MEDIUMPURPLE=i(s.fromCssColorString("#9370DB")),s.MEDIUMSEAGREEN=i(s.fromCssColorString("#3CB371")),s.MEDIUMSLATEBLUE=i(s.fromCssColorString("#7B68EE")),s.MEDIUMSPRINGGREEN=i(s.fromCssColorString("#00FA9A")),s.MEDIUMTURQUOISE=i(s.fromCssColorString("#48D1CC")),s.MEDIUMVIOLETRED=i(s.fromCssColorString("#C71585")),s.MIDNIGHTBLUE=i(s.fromCssColorString("#191970")),s.MINTCREAM=i(s.fromCssColorString("#F5FFFA")),s.MISTYROSE=i(s.fromCssColorString("#FFE4E1")),s.MOCCASIN=i(s.fromCssColorString("#FFE4B5")),s.NAVAJOWHITE=i(s.fromCssColorString("#FFDEAD")),s.NAVY=i(s.fromCssColorString("#000080")),s.OLDLACE=i(s.fromCssColorString("#FDF5E6")),s.OLIVE=i(s.fromCssColorString("#808000")),s.OLIVEDRAB=i(s.fromCssColorString("#6B8E23")),s.ORANGE=i(s.fromCssColorString("#FFA500")),s.ORANGERED=i(s.fromCssColorString("#FF4500")),s.ORCHID=i(s.fromCssColorString("#DA70D6")),s.PALEGOLDENROD=i(s.fromCssColorString("#EEE8AA")),s.PALEGREEN=i(s.fromCssColorString("#98FB98")),s.PALETURQUOISE=i(s.fromCssColorString("#AFEEEE")),s.PALEVIOLETRED=i(s.fromCssColorString("#DB7093")),s.PAPAYAWHIP=i(s.fromCssColorString("#FFEFD5")),s.PEACHPUFF=i(s.fromCssColorString("#FFDAB9")),s.PERU=i(s.fromCssColorString("#CD853F")),s.PINK=i(s.fromCssColorString("#FFC0CB")),s.PLUM=i(s.fromCssColorString("#DDA0DD")),s.POWDERBLUE=i(s.fromCssColorString("#B0E0E6")),s.PURPLE=i(s.fromCssColorString("#800080")),s.RED=i(s.fromCssColorString("#FF0000")),s.ROSYBROWN=i(s.fromCssColorString("#BC8F8F")),s.ROYALBLUE=i(s.fromCssColorString("#4169E1")),s.SADDLEBROWN=i(s.fromCssColorString("#8B4513")),s.SALMON=i(s.fromCssColorString("#FA8072")),s.SANDYBROWN=i(s.fromCssColorString("#F4A460")),s.SEAGREEN=i(s.fromCssColorString("#2E8B57")),s.SEASHELL=i(s.fromCssColorString("#FFF5EE")),s.SIENNA=i(s.fromCssColorString("#A0522D")),s.SILVER=i(s.fromCssColorString("#C0C0C0")),s.SKYBLUE=i(s.fromCssColorString("#87CEEB")),s.SLATEBLUE=i(s.fromCssColorString("#6A5ACD")),s.SLATEGRAY=i(s.fromCssColorString("#708090")),s.SLATEGREY=s.SLATEGRAY,s.SNOW=i(s.fromCssColorString("#FFFAFA")),s.SPRINGGREEN=i(s.fromCssColorString("#00FF7F")),s.STEELBLUE=i(s.fromCssColorString("#4682B4")),s.TAN=i(s.fromCssColorString("#D2B48C")),s.TEAL=i(s.fromCssColorString("#008080")),s.THISTLE=i(s.fromCssColorString("#D8BFD8")),s.TOMATO=i(s.fromCssColorString("#FF6347")),s.TURQUOISE=i(s.fromCssColorString("#40E0D0")),s.VIOLET=i(s.fromCssColorString("#EE82EE")),s.WHEAT=i(s.fromCssColorString("#F5DEB3")),s.WHITE=i(s.fromCssColorString("#FFFFFF")),s.WHITESMOKE=i(s.fromCssColorString("#F5F5F5")),s.YELLOW=i(s.fromCssColorString("#FFFF00")),s.YELLOWGREEN=i(s.fromCssColorString("#9ACD32")),s.TRANSPARENT=i(new s(0,0,0,0)),s}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376, -MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var s=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],s)),r.y=e.magnitude(e.fromElements(t[2],t[3],s)),r};var u=new e;return o.getMaximumScale=function(t){return o.getScale(t,u),e.maximumComponent(u)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;u.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var s=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=s,i.y=l,i.z=f,i.w=h,i):new u(s,l,f,h)};var l=[1,2,0],f=new Array(3);u.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[s.COLUMN0ROW0],d=e[s.COLUMN1ROW1],E=e[s.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[s.COLUMN1ROW2]-e[s.COLUMN2ROW1])*r,a=(e[s.COLUMN2ROW0]-e[s.COLUMN0ROW2])*r,o=(e[s.COLUMN0ROW1]-e[s.COLUMN1ROW0])*r;else{var m=l,_=0;d>h&&(_=1),E>h&&E>d&&(_=2);var y=m[_],R=m[y];r=Math.sqrt(e[s.getElementIndex(_,_)]-e[s.getElementIndex(y,y)]-e[s.getElementIndex(R,R)]+1);var T=f;T[_]=.5*r,r=.5/r,c=(e[s.getElementIndex(R,y)]-e[s.getElementIndex(y,R)])*r,T[y]=(e[s.getElementIndex(y,_)]+e[s.getElementIndex(_,y)])*r,T[R]=(e[s.getElementIndex(R,_)]+e[s.getElementIndex(_,R)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new u(i,a,o,c)};var h=new u,d=new u,E=new u,p=new u;u.fromHeadingPitchRoll=function(t,r){return p=u.fromAxisAngle(e.UNIT_X,t.roll,h),E=u.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=u.multiply(E,p,E),d=u.fromAxisAngle(e.UNIT_Z,-t.heading,h),u.multiply(d,r,r)};var m=new e,_=new e,y=new u,R=new u,T=new u;u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},u.packedInterpolationLength=3,u.convertPackedArrayForInterpolation=function(e,t,r,n){u.unpack(e,4*r,T),u.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;u.unpack(e,4*(t+i),y),u.multiply(y,T,y),y.w<0&&u.negate(y,y),u.computeAxis(y,m);var s=u.computeAngle(y);n[o]=m.x*s,n[o+1]=m.y*s,n[o+2]=m.z*s}},u.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new u),e.fromArray(t,0,_);var s=e.magnitude(_);return u.unpack(r,4*a,R),0===s?u.clone(u.IDENTITY,y):u.fromAxisAngle(_,s,y),u.multiply(y,R,o)},u.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new u(e.x,e.y,e.z,e.w)},u.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},u.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},u.magnitude=function(e){return Math.sqrt(u.magnitudeSquared(e))},u.normalize=function(e,t){var r=1/u.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},u.inverse=function(e,t){var r=u.magnitudeSquared(e);return t=u.conjugate(e,t),u.multiplyByScalar(t,1/r,t)},u.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},u.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},u.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},u.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},u.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,s=t.x,u=t.y,c=t.z,l=t.w,f=o*s+n*l+i*c-a*u,h=o*u-n*c+i*l+a*s,d=o*c+n*u-i*s+a*l,E=o*l-n*s-i*u-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},u.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},u.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},u.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},u.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new u;u.lerp=function(e,t,r,n){return A=u.multiplyByScalar(t,r,A),n=u.multiplyByScalar(e,1-r,n),u.add(A,n,n)};var S=new u,g=new u,C=new u;u.slerp=function(e,t,r,n){var i=u.dot(e,t),a=t;if(i<0&&(i=-i,a=S=u.negate(t,S)),1-i<o.EPSILON6)return u.lerp(e,a,r,n);var s=Math.acos(i);return g=u.multiplyByScalar(e,Math.sin((1-r)*s),g),C=u.multiplyByScalar(a,Math.sin(r*s),C),n=u.add(g,C,n),u.multiplyByScalar(n,1/Math.sin(s),n)},u.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},u.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var v=new e,I=new e,O=new u,N=new u;u.computeInnerQuadrangle=function(t,r,n,i){var a=u.conjugate(r,O);u.multiply(a,n,N);var o=u.log(N,v);u.multiply(a,t,N);var s=u.log(N,I);return e.add(o,s,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),u.exp(o,O),u.multiply(r,O,i)},u.squad=function(e,t,r,n,i,a){var o=u.slerp(e,t,i,O),s=u.slerp(r,n,i,N);return u.slerp(o,s,2*i*(1-i),a)};for(var M=new u,w=1.9011074535173003,P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],F=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var x=L+1,b=2*x+1;P[L]=1/(x*b),D[L]=x/b}return P[7]=w/136,D[7]=8*w/17,u.fastSlerp=function(e,t,r,n){var i,a=u.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,s=1-r,c=r*r,l=s*s,f=7;f>=0;--f)U[f]=(P[f]*c-D[f])*o,F[f]=(P[f]*l-D[f])*o;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=s*(1+F[0]*(1+F[1]*(1+F[2]*(1+F[3]*(1+F[4]*(1+F[5]*(1+F[6]*(1+F[7])))))))),E=u.multiplyByScalar(e,d,M);return u.multiplyByScalar(t,h,n),u.add(E,n,n)},u.fastSquad=function(e,t,r,n,i,a){var o=u.fastSlerp(e,t,i,O),s=u.fastSlerp(r,n,i,N);return u.fastSlerp(o,s,2*i*(1-i),a)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},u.ZERO=a(new u(0,0,0,0)),u.IDENTITY=a(new u(0,0,0,1)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var s=n-e.length;return s>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",s,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,s,u){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),s||0,"0",!1),a(e,r,n,o,u)},s=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},u=function(e,n,u,c,l,f,h){var d,E,p,m,_;if("%%"==e)return"%";for(var y=!1,R="",T=!1,A=!1,S=" ",g=u.length,C=0;u&&C<g;C++)switch(u.charAt(C)){case" ":R=" ";break;case"+":R="+";break;case"-":y=!0;break;case"'":S=u.charAt(C+1);break;case"0":T=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=n?t[n.slice(0,-1)]:t[r++],h){case"s":return s(String(_),y,c,f,T,S);case"c":return s(String.fromCharCode(+_),y,c,f,T);case"b":return o(_,2,A,y,c,f,T);case"o":return o(_,8,A,y,c,f,T);case"x":return o(_,16,A,y,c,f,T);case"X":return o(_,16,A,y,c,f,T).toUpperCase();case"u":return o(_,10,A,y,c,f,T);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),E=d<0?"-":R,_=E+i(String(Math.abs(d)),f,"0",!1),a(_,E,y,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,E=d<0?"-":R,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=E+Math.abs(d)[p](f),a(_,E,y,c,T)[m]();default:return e}};return n.replace(e,u)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,s){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=s}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/u.SECONDS_PER_DAY|0;return e+=n,t-=u.SECONDS_PER_DAY*n,t<0&&(e--,t+=u.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var s=(t-14)/12|0,c=e+4800+s,l=(1461*c/4|0)+(367*(t-2-12*s)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*u.SECONDS_PER_HOUR+i*u.SECONDS_PER_MINUTE+o*u.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*u.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new s,R=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,C=/([Z+\-])?(\d{2})?:?(\d{2})?$/,v=/^(\d{2})(\.\d+)?/.source+C.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+C.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+C.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,s=e.split("T"),u=1,l=1,h=0,m=0,y=0,C=0,N=s[0],M=s[1];if(null!==(s=N.match(g)))r=+s[1],u=+s[2],l=+s[3];else if(null!==(s=N.match(T)))r=+s[1],u=+s[2];else if(null!==(s=N.match(R)))r=+s[1];else{var w;if(null!==(s=N.match(A)))r=+s[1],w=+s[2],a=o(r);else if(null!==(s=N.match(S))){r=+s[1];var P=+s[2],D=+s[3]||0,U=new Date(Date.UTC(r,0,4));w=7*P+D-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(w),u=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var F;if(n(M)){s=M.match(O),null!==s?(h=+s[1],m=+s[2],y=+s[3],C=1e3*+(s[4]||0),F=5):(s=M.match(I),null!==s?(h=+s[1],m=+s[2],y=60*+(s[3]||0),F=4):null!==(s=M.match(v))&&(h=+s[1],m=60*+(s[2]||0),F=3));var L=s[F],x=+s[F+1],b=+(s[F+2]||0);switch(L){case"+":h-=x,m-=b;break;case"-":h+=x,m+=b;break;case"Z":break;default:m+=new Date(Date.UTC(r,u-1,l,h,m)).getTimezoneOffset()}}var B=60===y;for(B&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===u?29:_[u-1];l>i;)l-=i,u++,u>12&&(u-=12,r++),i=a&&2===u?29:_[u-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)u--,u<1&&(u+=12,r--),i=a&&2===u?29:_[u-1],l+=i;var q=E(r,u,l,h,m,y,C);return n(t)?(d(q[0],q[1],t),f(t)):t=new p(q[0],q[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var N=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,N);n(i)||(p.addSeconds(e,-1,N),i=h(N,N),r=!0);var o=i.dayNumber,s=i.secondsOfDay;s>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=s/u.SECONDS_PER_HOUR|0,R=s-y*u.SECONDS_PER_HOUR,T=R/u.SECONDS_PER_MINUTE|0;R-=T*u.SECONDS_PER_MINUTE;var A=0|R,S=(R-A)/u.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=_,t.month=m,t.day=E,t.hour=y,t.minute=T,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(_,m,E,y,T,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,m),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,m),a=i.year,o=i.month,s=i.day,u=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===s&&0===u&&0===c&&0===l&&0===f&&(a=9999,o=12,s=31,u=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,s,u,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,s,u,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,s,u,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/u.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*u.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/u.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new s(new p(2441317,43210,c.TAI),10),new s(new p(2441499,43211,c.TAI),11),new s(new p(2441683,43212,c.TAI),12),new s(new p(2442048,43213,c.TAI),13),new s(new p(2442413,43214,c.TAI),14),new s(new p(2442778,43215,c.TAI),15),new s(new p(2443144,43216,c.TAI),16),new s(new p(2443509,43217,c.TAI),17),new s(new p(2443874,43218,c.TAI),18),new s(new p(2444239,43219,c.TAI),19),new s(new p(2444786,43220,c.TAI),20),new s(new p(2445151,43221,c.TAI),21),new s(new p(2445516,43222,c.TAI),22),new s(new p(2446247,43223,c.TAI),23),new s(new p(2447161,43224,c.TAI),24),new s(new p(2447892,43225,c.TAI),25),new s(new p(2448257,43226,c.TAI),26),new s(new p(2448804,43227,c.TAI),27),new s(new p(2449169,43228,c.TAI),28),new s(new p(2449534,43229,c.TAI),29),new s(new p(2450083,43230,c.TAI),30),new s(new p(2450630,43231,c.TAI),31),new s(new p(2451179,43232,c.TAI),32),new s(new p(2453736,43233,c.TAI),33),new s(new p(2454832,43234,c.TAI),34),new s(new p(2456109,43235,c.TAI),35),new s(new p(2457204,43236,c.TAI),36),new s(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,s,u,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(s=n[o],f&&a&&"object"==typeof s&&i.hasOwnProperty(o)?(u=i[o],c[o]="object"==typeof u?r(s,u,a):s):c[o]=s);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(u=i[o],c[o]=u);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r), -t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,s=i.length;o<s;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var s=i[a].split("="),u=decodeURIComponent(s[0]),c=s[1];c=e(c)?decodeURIComponent(c):"";var l=n[u];"string"==typeof l?n[u]=[l,c]:r(l)?l.push(c):n[u]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),s=i.substring(a+2);t[o]=s}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var s=this._toRemove;if((a=s.length)>0){for(s.sort(i),e=0;e<a;e++){var u=s[e];r.splice(u,1),n.splice(u,1)}s.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,s=!0;s;){var u=2*(e+1),c=u-1;o=c<r&&n(i[c],i[e])<0?c:e,u<r&&n(i[u],i[o])<0&&(o=u),o!==e?(a(i,o,e),e=o):s=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var s=Math.floor((o-1)/2);if(!(n(t[o],t[s])<0))break;a(t,o,s),o=s}var u;return r(i)&&this._length>i&&(u=t[i],this._length=i),u},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,s,u,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return v[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,C.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++v[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function R(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--v[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,g=new s({comparator:f});g.maximumLength=S,g.reserve(S);var C=[],v={},I="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;g.length>e;){var t=g.pop();R(t)}S=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,r=0,n=C.length;for(e=0;e<n;++e)t=C[e],t.cancelled&&R(t),t.state===l.ACTIVE?r>0&&(C[e-r]=t):++r;C.length-=r;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-C.length,0),s=0;s<o&&g.length>0;)t=g.pop(),t.cancelled?R(t):!t.throttleByServer||E(t.serverKey)?(y(t),++s):R(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(I);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=v[n];return i(a)||(v[n]=0),n},h.request=function(e){if(c(e.url)||u(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(C.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;R(t)}return p(e)}}},h.clearForSpecs=function(){for(;g.length>0;){R(g.pop())}for(var e=C.length,t=0;t<e;++t)R(C[t]);C.length=0,v={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return v[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m,_,y,R,T,A,S,g,C,v){"use strict";function I(e,t,r,n){var i=e.query;if(!s(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=R(i);t._queryParameters=r?w(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||s(r[n[0]])?e.query=y(r):e.query=n[0]}function N(e,t){return s(e)?s(e.clone)?e.clone():i(e):t}function M(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new C("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function w(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var u=n[o],c=t[o];s(u)?(Array.isArray(u)||(u=n[o]=[u]),n[o]=u.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function P(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);I(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function D(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return P._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(s(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,D({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},P._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(s(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,r,n)):t.reject(i)})})}function F(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function L(e,t){for(var r=F(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function x(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return F(n,i);case"arraybuffer":return L(n,i);case"blob":var a=L(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(F(n,i),r);case"json":return JSON.parse(F(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(v.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,r,n,i,a,o){var s=global.require,u=s("url").parse(e),c=s("https:"===u.protocol?"https":"http"),l=s("zlib"),f={protocol:u.protocol,hostname:u.hostname,port:u.port,path:u.path,query:u.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new C("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var G=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();P.createIfNeeded=function(e){return e instanceof P?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new P({url:e})};var z;P.supportsImageBitmapOptions=function(){if(s(z))return z;if("function"!=typeof createImageBitmap)return z=t.resolve(!1);return z=P.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},u(P,{isBlobSupported:{get:function(){return G}}}),u(P.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);I(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),P.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return s(r)?encodeURIComponent(r):e}),r&&s(this.proxy)&&(i=this.proxy.getURL(i)),i},P.prototype.setQueryParameters=function(e,t){this._queryParameters=t?w(this._queryParameters,e,!1):w(e,this._queryParameters,!1)},P.prototype.appendQueryParameters=function(e){this._queryParameters=w(e,this._queryParameters,!0)},P.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},P.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,s(t.url)){var n=new e(t.url);I(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return s(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),s(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),s(t.headers)&&(r.headers=a(t.headers,r.headers)),s(t.proxy)&&(r.proxy=t.proxy),s(t.request)&&(r.request=t.request),s(t.retryCallback)&&(r.retryCallback=t.retryCallback),s(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},P.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},P.prototype.clone=function(e){return s(e)||(e=new P({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},P.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},P.prototype.appendForwardSlash=function(){this._url=r(this._url)},P.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},P.fetchArrayBuffer=function(e){return new P(e).fetchArrayBuffer()},P.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},P.fetchBlob=function(e){return new P(e).fetchBlob()},P.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!G||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return D({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(s(a)){var u,c,l,f;return P.supportsImageBitmapOptions().then(function(e){return u=e,c=u&&r,a}).then(function(e){if(s(e)){if(f=e,c)return P.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new P({url:t}),D({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(s(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return s(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},P.fetchImage=function(e){return new P(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},P.prototype.fetchText=function(){return this.fetch({responseType:"text"})},P.fetchText=function(e){return new P(e).fetchText()},P.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(s(e))return e.then(function(e){if(s(e))return JSON.parse(e)})},P.fetchJson=function(e){return new P(e).fetchJson()},P.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},P.fetchXML=function(e){return new P(e).fetchXML()},P.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(s(window[t]));return U(this,e,t)},P.fetchJsonp=function(e){return new P(e).fetchJsonp(e.callbackParameterName)},P.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),u=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=P._Implementations.loadWithXhr(r.url,i,c,l,o,f,u);return s(h)&&s(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(s(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==g.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=g.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;P.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},P.fetch=function(e){return new P(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},P.delete=function(e){return new P(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},P.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},P.head=function(e){return new P(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},P.options=function(e){return new P(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},P.post=function(e){return new P(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},P.put=function(e){return new P(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},P.patch=function(e){return new P(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P._Implementations={},P._Implementations.createImage=function(e,t,r,n,i){P.supportsImageBitmapOptions().then(function(n){return n&&i?P.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(s(e))return P.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){s(e)&&r.resolve(e)}).otherwise(r.reject)},P.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return P._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var u=V.exec(e);if(null!==u)return void a.resolve(x(u,t));if(W)return void q(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(v.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),s(o)&&s(c.overrideMimeType)&&c.overrideMimeType(o),s(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);s(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),u={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();u[r]=t.join(": ")}),void a.resolve(u)}if(204===c.status)a.resolve();else if(!s(e)||s(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&s(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!s(c.responseText)?a.reject(new C("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},P._Implementations.loadAndExecuteScript=function(e,t,r){return _(e,t).otherwise(r.reject)},P._DefaultImplementations={},P._DefaultImplementations.createImage=P._Implementations.createImage,P._DefaultImplementations.loadWithXhr=P._Implementations.loadWithXhr,P._DefaultImplementations.loadAndExecuteScript=P._Implementations.loadAndExecuteScript,P.DEFAULT=l(new P({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),P}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,s,u,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=u.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),u=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||u<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=r.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=u,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,R=e._addNewLeapSeconds,T=0,A=m.length;T<A;T+=e._columnCount){var S=m[T+i],g=m[T+p],C=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,v=new o(C,g,f.TAI);if(_.push(v),R){if(g!==y&&n(y)){var I=o.leapSeconds,O=t(I,v,d);if(O<0){var N=new s(v,g);I.splice(~O,0,N)}}y=g}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,r){return t+e*(r-t)}function _(e,t,r,n,i,a,s){var u=e._columnCount;if(a>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,u,s),s;if(n.equals(l))return p(e,r,a,u,s),s;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*u,d=a*u,E=r[h+e._ut1MinusUtcSecondsColumn],_=r[d+e._ut1MinusUtcSecondsColumn],y=_-E;if(y>.5||y<-.5){var R=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];R!==T&&(l.equals(n)?E=_:_-=T-R)}return s.xPoleWander=m(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),s.yPoleWander=m(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),s.xPoleOffset=m(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=m(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=m(f,E,_),s}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,s=this._lastIndex,u=0,l=0;if(n(s)){var f=a[s],h=a[s+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return u=s,!E&&h.equals(e)&&++u,l=u+1,_(this,a,this._samples,e,u,l,r),r}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,u=m,l=m):(l=~m,(u=l-1)<0&&(u=0)),this._lastIndex=u,_(this,a,this._samples,e,u,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),u=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,u),r.roll=Math.atan2(s,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function s(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}), -h.appendForwardSlash(),h}function u(e){return o(i.toUrl("../"+e))}function c(e){return s().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?u:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=s,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,s){"use strict";function u(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,s.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),u=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=u,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var s,u=r._xysFileUrlTemplate;return s=n(u)?u.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(s.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,s=0,u=n.length;s<u;++s)t[o+s]=n[s];a.resolve()}),a.promise}var f=new a(0,0,s.TAI);return u.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),s=a/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);var u=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);for(var f=s/this._samplesPerXysFile|0,h=u/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},u.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var s=this._interpolationOrder,u=o-(s/2|0);u<0&&(u=0);var f=u+s;f>=this._totalSamples&&(f=this._totalSamples-1,(u=f-s)<0&&(u=0));var h=!1,d=this._samples;if(n(d[3*u])||(l(this,u/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,m=a-u*this._stepSizeDays,_=this._work,y=this._denominators,R=this._coef,T=this._xTable;for(E=0;E<=s;++E)_[E]=m-T[E];for(E=0;E<=s;++E){for(R[E]=1,p=0;p<=s;++p)p!==E&&(R[E]*=_[p]);R[E]*=y[E];var A=3*(u+E);r.x+=R[E]*d[A++],r.y+=R[E]*d[A++],r.s+=R[E]*d[A]}return r}}}},u}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m,_,y,R,T){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},C={},v={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},I=new r,O=new r,N=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new u("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return s(C[a])?n=C[a]:(n=function(n,a,u){if(s(u)||(u=new y),m.equalsEpsilon(n.x,0,m.EPSILON14)&&m.equalsEpsilon(n.y,0,m.EPSILON14)){var c=m.sign(n.z);r.unpack(g[e],0,I),"east"!==e&&"west"!==e&&r.multiplyByScalar(I,c,I),r.unpack(g[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(g[i],0,N),"east"!==i&&"west"!==i&&r.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,v.up);var l=v.up,h=v.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,v.east),r.cross(l,h,v.north),r.multiplyByScalar(v.up,-1,v.down),r.multiplyByScalar(v.east,-1,v.west),r.multiplyByScalar(v.north,-1,v.south),I=v[e],O=v[t],N=v[i]}return u[0]=I.x,u[1]=I.y,u[2]=I.z,u[3]=0,u[4]=O.x,u[5]=O.y,u[6]=O.z,u[7]=0,u[8]=N.x,u[9]=N.y,u[10]=N.z,u[11]=0,u[12]=n.x,u[13]=n.y,u[14]=n.z,u[15]=1,u},C[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new R,w=new r(1,1,1),P=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var s=R.fromHeadingPitchRoll(t,M),u=y.fromTranslationQuaternionRotationScale(r.ZERO,s,w,P);return a=i(e,n,a),y.multiply(a,u,a)};var D=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,D),o=y.getRotation(a,U);return R.fromRotationMatrix(o,i)};var F=new r(1,1,1),L=new r,x=new y,b=new y,B=new _,q=new R;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),s(i)||(i=new h);var a=y.getTranslation(e,L);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var u=y.inverseTransformation(n(a,t,x),x),c=y.setScale(e,F,b);c=y.setTranslation(c,r.ZERO,c),u=y.multiply(u,c,u);var l=R.fromRotationMatrix(y.getRotation(u,B),q);return l=R.normalize(l,l),h.fromQuaternion(l,i)};var G=m.TWO_PI/86400,z=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){z=p.addSeconds(e,-p.computeTaiMinusUtc(e),z);var r,n=z.dayNumber,i=z.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),u=o*G%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=u+c*l,h=Math.cos(f),d=Math.sin(f);return s(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),s=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,s])},A.computeIcrfToFixedMatrix=function(e,t){s(t)||(t=new _);var r=A.computeFixedToIcrfMatrix(e,t);if(s(r))return _.transpose(r,t)};var V=new E(0,0,0),W=new l(0,0,0,0,0,0),H=new _,X=new _;A.computeFixedToIcrfMatrix=function(e,t){s(t)||(t=new _);var r=A.earthOrientationParameters.compute(e,W);if(s(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(s(a)){var o=a.x+r.xPoleOffset,u=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-u*u)),l=H;l[0]=1-c*o*o,l[3]=-c*o*u,l[6]=o,l[1]=-c*o*u,l[4]=1-c*u*u,l[7]=u,l[2]=-o,l[5]=-u,l[8]=1-c*(o*o+u*u);var f=_.fromRotationZ(-a.s,X),h=_.multiply(l,f,H),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,R=E/T.SECONDS_PER_DAY,S=.779057273264+R+.00273781191135448*(y+R);S=S%1*m.TWO_PI;var g=_.fromRotationZ(S,X),C=_.multiply(h,g,H),v=Math.cos(r.xPoleWander),I=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),M=n-2451545+i/T.SECONDS_PER_DAY;M/=36525;var w=-47e-6*M*m.RADIANS_PER_DEGREE/3600,P=Math.cos(w),D=Math.sin(w),U=X;return U[0]=v*P,U[1]=v*D,U[2]=O,U[3]=-I*D+N*O*P,U[4]=I*P+N*O*D,U[5]=-N*v,U[6]=-N*D-I*O*P,U[7]=N*P-I*O*D,U[8]=I*v,_.multiply(C,U,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){s(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),u=r.cross(t,a,j);r.equalsEpsilon(u,r.ZERO,m.EPSILON6)&&(u=r.clone(r.UNIT_X,u));var c=r.cross(u,t,K);return r.normalize(c,c),r.cross(t,c,u),r.negate(u,u),r.normalize(u,u),s(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=u.x,i[4]=u.y,i[5]=u.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new _,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),s=e.project(o,Q);r.fromElements(s.z,s.x,s.y,s);var u=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(u,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,s,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),s=i.cartesianToCartographic(t,J),u=e.project(s,Q);r.fromElements(u.z,u.x,u.y,u);var c=y.fromTranslation(u,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,u.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var _=new r,y=new t,R=new f,T=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],g=new t,C=new d,v=new f,I=new c;return m._textureCoordinateRotationPoints=function(n,i,a,o){var s,u=E.center(o,_),h=r.toCartesian(u,a,y),m=p.eastNorthUpToFixedFrame(h,a,R),O=f.inverse(m,R),N=A,M=T;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var w=g;for(s=0;s<3;s++)r.toCartesian(M[s],a,w),w=f.multiplyByPointAsVector(O,w,w),N[s].x=w.x,N[s].y=w.y;var P=d.fromAxisAngle(t.UNIT_Z,-i,C),D=l.fromQuaternion(P,v),U=n.length,F=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,x=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(s=0;s<U;s++)w=f.multiplyByPointAsVector(O,n[s],w),w=l.multiplyByVector(D,w,w),F=Math.min(F,w.x),L=Math.min(L,w.y),x=Math.max(x,w.x),b=Math.max(b,w.y);var B=c.fromRotation(i,I),q=S;q[0].x=F,q[0].y=L,q[1].x=F,q[1].y=b,q[2].x=x,q[2].y=L;var G=N[0],z=N[2].x-G.x,V=N[1].y-G.y;for(s=0;s<3;s++){var W=q[s];c.multiplyByVector(B,W,W),W.x=(W.x-G.x)/z,W.y=(W.y-G.y)/V}var H=q[0],X=q[1],Y=q[2],k=new Array(6);return e.pack(H,k),e.pack(X,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e){var t=e._uSquared,r=e._ellipsoid.maximumRadius,n=e._ellipsoid.minimumRadius,i=(r-n)/r,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),s=(1-i)*Math.tan(e._start.latitude),u=1/Math.sqrt(1+s*s),c=u*s,l=Math.atan2(s,a),f=u*o,h=f*f,d=1-h,E=Math.sqrt(d),p=t/4,m=p*p,_=m*p,y=m*m,R=1+p-3*m/4+5*_/4-175*y/64,T=1-p+15*m/8-35*_/8,A=1-3*p+35*m/4,S=1-5*p,g=R*l-T*Math.sin(2*l)*p/2-A*Math.sin(4*l)*m/16-S*Math.sin(6*l)*_/48-5*Math.sin(8*l)*y/512,C=e._constants;C.a=r,C.b=n,C.f=i,C.cosineHeading=a,C.sineHeading=o,C.tanU=s,C.cosineU=u,C.sineU=c,C.sigma=l,C.sineAlpha=f,C.sineSquaredAlpha=h,C.cosineSquaredAlpha=d,C.cosineAlpha=E,C.u2Over4=p,C.u4Over16=m,C.u6Over64=_,C.u8Over256=y,C.a0=R,C.a1=T,C.a2=A,C.a3=S,C.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,r,n,i,a,o){var s=c(e,r);return(1-s)*e*t*(n+s*i*(o+s*a*(2*o*o-1)))}function f(e,t,r,n,i,a,o){var u,c,f,h,d,E=(t-r)/t,p=a-n,m=Math.atan((1-E)*Math.tan(i)),_=Math.atan((1-E)*Math.tan(o)),y=Math.cos(m),R=Math.sin(m),T=Math.cos(_),A=Math.sin(_),S=y*T,g=y*A,C=R*A,v=R*T,I=p,O=s.TWO_PI,N=Math.cos(I),M=Math.sin(I);do{N=Math.cos(I),M=Math.sin(I);var w=g-v*N;f=Math.sqrt(T*T*M*M+w*w),c=C+S*N,u=Math.atan2(f,c);var P;0===f?(P=0,h=1):(P=S*M/f,h=1-P*P),O=I,d=c-2*C/h,isNaN(d)&&(d=0),I=p+l(E,P,h,u,f,c,d)}while(Math.abs(I-O)>s.EPSILON12);var D=h*(t*t-r*r)/(r*r),U=1+D*(4096+D*(D*(320-175*D)-768))/16384,F=D*(256+D*(D*(74-47*D)-128))/1024,L=d*d,x=F*f*(d+F*(c*(2*L-1)-F*d*(4*f*f-3)*(4*L-3)/6)/4),b=r*U*(u-x),B=Math.atan2(T*M,g-v*N),q=Math.atan2(y*M,g*N-v);e._distance=b,e._startHeading=B,e._endHeading=q,e._uSquared=D}function h(r,n,i,a){e.normalize(a.cartographicToCartesian(n,p),E),e.normalize(a.cartographicToCartesian(i,p),p);f(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude),r._start=t.clone(n,r._start),r._end=t.clone(i,r._end),r._start.height=0,r._end.height=0,u(r)}function d(e,r,a){var s=n(a,o.WGS84);this._ellipsoid=s,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(r)&&h(this,e,r,s)}var E=new e,p=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,r){var n=this._constants,a=n.distanceRatio+e/n.b,o=Math.cos(2*a),s=Math.cos(4*a),u=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),E=a*a,p=a*E,m=n.u8Over256,_=n.u2Over4,y=n.u6Over64,R=n.u4Over16,T=2*p*m*o/3+a*(1-_+7*R/4-15*y/4+579*m/64-(R-15*y/4+187*m/16)*o-(5*y/4-115*m/16)*s-29*m*u/16)+(_/2-R+71*y/32-85*m/16)*c+(5*R/16-5*y/4+383*m/96)*f-E*((y-11*m/2)*c+5*m*f/2)+(29*y/96-29*m/16)*h+539*m*d/1536,A=Math.asin(Math.sin(T)*n.cosineAlpha),S=Math.atan(n.a/n.b*Math.tan(A));T-=n.sigma;var g=Math.cos(2*n.sigma+T),C=Math.sin(T),v=Math.cos(T),I=n.cosineU*v,O=n.sineU*C,N=Math.atan2(C*n.sineHeading,I-O*n.cosineHeading),M=N-l(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,C,v,g);return i(r)?(r.longitude=this._start.longitude+M,r.latitude=S,r.height=0,r):new t(this._start.longitude+M,S,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,s,u){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,s=o*n,u=s*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*s/65536-4851*u/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*s/131072+6237*u/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*s/65536+155925*u/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*s/262144+13475*u/1048576)*Math.sin(6*c)+(315*o/131072+2205*s/524288+43659*u/8388608)*Math.sin(8*c)-(693*s/1310720+6237*u/5242880)*Math.sin(10*c)+1001*u/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,s=t,u=s*s,c=u*u,l=c*u,f=l*u,h=f*u,d=h*u,E=Math.sin(2*n),p=Math.cos(2*n),m=Math.sin(4*n),_=Math.cos(4*n),y=Math.sin(6*n),R=Math.cos(6*n),T=Math.sin(8*n),A=Math.cos(8*n),S=Math.sin(10*n);return n+n*u/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*p+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*_+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*R+(1097*n*h/65536+42783*n*d/1048576)*A+8011*n*d/1048576*Math.cos(10*n)+(3*u/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*E+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*S+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(u.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(u.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(u.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var s=e._heading,l=a-n,f=0;if(u.equalsEpsilon(Math.abs(s),u.PI_OVER_TWO,u.EPSILON8))if(t===r)f=t*Math.cos(i)*u.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*u.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(s)}return Math.abs(f)}function E(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,y),_),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),s=a.minimumRadius,u=o*o,c=s*s;r._ellipticitySquared=(u-c)/u,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function p(e,r,n,a,o,s){var h,d,E,p=o*o;if(Math.abs(u.PI_OVER_TWO-Math.abs(r))>u.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var m=f(o,e.latitude),_=f(o,d);E=Math.tan(r)*(_-m),h=u.negativePiToPi(e.longitude+E)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var R=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-p*R*R)}E=n/y,h=r>0?u.negativePiToPi(e.longitude+E):u.negativePiToPi(e.longitude-E)}return i(s)?(s.longitude=h,s.latitude=d,s.height=0,s):new t(h,d,0)}function m(e,r,a){var o=n(a,s.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&E(this,e,r,o)}var _=new e,y=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,s.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,E=Math.sqrt((h-d)/h);t=u.negativePiToPi(t);var _=p(e,t,r,c.maximumRadius,E);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,_,c):(o.setEndPoints(e,_),o)},m.prototype.setEndPoints=function(e,t){E(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return p(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),s=this._start;if(e=u.negativePiToPi(e),u.equalsEpsilon(Math.abs(e),Math.PI,u.EPSILON14)&&(e=u.sign(s.longitude)*Math.PI),i(r)||(r=new t),Math.abs(u.PI_OVER_TWO-o)<=u.EPSILON8)return r.longitude=e,r.latitude=s.latitude,r.height=0,r;if(u.equalsEpsilon(Math.abs(u.PI_OVER_TWO-o),u.PI_OVER_TWO,u.EPSILON8)){if(u.equalsEpsilon(e,s.longitude,u.EPSILON12))return;return r.longitude=e,r.latitude=u.PI_OVER_TWO*u.sign(u.PI_OVER_TWO-a),r.height=0,r}var c,l=s.latitude,f=n*Math.sin(l),h=Math.tan(.5*(u.PI_OVER_TWO+l))*Math.exp((e-s.longitude)/Math.tan(a)),d=(1+f)/(1-f),E=s.latitude;do{c=E;var p=n*Math.sin(c),m=(1+p)/(1-p);E=2*Math.atan(h*Math.pow(m/d,n/2))-u.PI_OVER_TWO}while(!u.equalsEpsilon(E,c,u.EPSILON12));return r.longitude=e,r.latitude=E,r.height=0,r},m.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!u.equalsEpsilon(Math.abs(a),u.PI_OVER_TWO,u.EPSILON8)){var s=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-s),h=u.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},m}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),s=Math.abs(e);if(o<s&&o/s<t.EPSILON14)return[0,0];if(o>s&&s/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var u=Math.sqrt(a);return[-u,u]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,s=t/3,u=r/3,c=n,l=o*u,f=s*c,h=s*s,d=u*u,E=o*u-h,p=o*c-s*u,m=s*c-d,_=4*E*m-p*p;if(_<0){var y,R,T;h*f>=l*d?(y=o,R=E,T=-2*s*E+o*p):(y=c,R=m,T=-c*p+2*u*m);var A=T<0?-1:1,S=-A*Math.abs(y)*Math.sqrt(-_);a=-T+S;var g=a/2,C=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),v=a===S?-C:-R/C;return i=R<=0?C+v:-T/(C*C+v*v+R),h*f>=l*d?[(i-s)/o]:[-c/(i+u)]}var I=E,O=-2*s*E+o*p,N=m,M=-c*p+2*u*m,w=Math.sqrt(_),P=Math.sqrt(3)/2,D=Math.abs(Math.atan2(o*w,-O)/3);i=2*Math.sqrt(-I);var U=Math.cos(D);a=i*U;var F=i*(-U/2-P*Math.sin(D)),L=a+F>2*s?a-s:F-s,x=o,b=L/x;D=Math.abs(Math.atan2(c*w,-M)/3),i=2*Math.sqrt(-N),U=Math.cos(D),a=i*U,F=i*(-U/2-P*Math.sin(D));var B=-c,q=a+F<2*u?a+u:F+u,G=B/q,z=x*q,V=-L*q-x*B,W=L*B,H=(u*V-s*W)/(-s*V+u*z);return b<=H?b<=G?H<=G?[b,H,G]:[b,G,H]:[G,b,H]:b<=G?[H,b,G]:H<=G?[H,G,b]:[G,H,b]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,s;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];s=-a/e;var u=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3);return[u,u,u]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(s=-n/e,s<0?[s,0,0]:[0,0,s]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var s=t*t,u=i-3*s/8,c=a-i*t/2+s*t/8,l=o-a*t/4+i*s/16-3*s*s/256,f=e.computeRealRoots(1,2*u,u*u-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var E=n.computeRealRoots(1,u,l);if(2===E.length){var p,m=E[0],_=E[1];if(m>=0&&_>=0){var y=Math.sqrt(m),R=Math.sqrt(_);return[h-R,h-y,h+y,h+R]}if(m>=0&&_<0)return p=Math.sqrt(m),[h-p,h+p];if(m<0&&_>=0)return p=Math.sqrt(_),[h-p,h+p]}return[]}if(d>0){var T=Math.sqrt(d),A=(u+d-c/T)/2,S=(u+d+c/T)/2,g=n.computeRealRoots(1,T,A),C=n.computeRealRoots(1,-T,S);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==C.length?(C[0]+=h,C[1]+=h,g[1]<=C[0]?[g[0],g[1],C[0],C[1]]:C[1]<=g[0]?[C[0],C[1],g[0],g[1]]:g[0]>=C[0]&&g[1]<=C[1]?[C[0],g[0],g[1],C[1]]:C[0]>=g[0]&&C[1]<=g[1]?[g[0],C[0],C[1],g[1]]:g[0]>C[0]&&g[0]<C[1]?[C[0],g[0],C[1],g[1]]:[g[0],C[0],g[1],C[1]]):g):0!==C.length?(C[0]+=h,C[1]+=h,C):[]}}return[]}function a(t,i,a,o){var s=a*a,u=i*i,c=t*t,l=-2*i,f=a*t+u-4*o,h=c*o-a*i*t+s,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var E,p,m=d[0],_=i-m,y=_*_,R=t/2,T=_/2,A=y-4*o,S=y+4*Math.abs(o),g=c-4*m,C=c+4*Math.abs(m);if(m<0||A*C<g*S){var v=Math.sqrt(g);E=v/2,p=0===v?0:(t*T-a)/v}else{var I=Math.sqrt(A);E=0===I?0:(t*T-a)/I,p=I/2}var O,N;0===R&&0===E?(O=0,N=0):r.sign(R)===r.sign(E)?(O=R+E,N=m/O):(N=R-E,O=m/N);var M,w;0===T&&0===p?(M=0,w=0):r.sign(T)===r.sign(p)?(M=T+p,w=o/M):(w=T-p,M=o/w);var P=n.computeRealRoots(1,O,M),D=n.computeRealRoots(1,N,w);if(0!==P.length)return 0!==D.length?P[1]<=D[0]?[P[0],P[1],D[0],D[1]]:D[1]<=P[0]?[D[0],D[1],P[0],P[1]]:P[0]>=D[0]&&P[1]<=D[1]?[D[0],P[0],P[1],D[1]]:D[0]>=P[0]&&D[1]<=P[1]?[P[0],D[0],D[1],P[1]]:P[0]>D[0]&&P[0]<D[1]?[D[0],P[0],D[1],P[1]]:[P[0],D[0],P[1],D[1]]:P;if(0!==D.length)return D}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,s=t*t,u=s*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return s*c*f-4*u*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*u*r*n-4*s*l+16*e*c*c-80*e*t*c*n-6*e*s*f+144*a*r*f)+d*(144*e*s*r-27*s*s-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,s,u){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,s,u);var c=n/t,l=o/t,f=s/t,h=u/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,s,u,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),s=(-t+o)*a,u=(-t-o)*a;return s<u?(n.root0=s,n.root1=u):(n.root0=u,n.root1=s),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,s=t.direction,u=r.center,c=r.radius*r.radius,l=e.subtract(o,u,y),h=e.dot(s,s),d=2*e.dot(s,l),E=e.magnitudeSquared(l)-c,p=f(h,d,E,S);if(n(p))return i.start=p.root0,i.stop=p.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function E(t,r,n,i,a){var l,f=i*i,h=a*a,E=(t[s.COLUMN1ROW1]-t[s.COLUMN2ROW2])*h,p=a*(i*d(t[s.COLUMN1ROW0],t[s.COLUMN0ROW1],o.EPSILON15)+r.y),m=t[s.COLUMN0ROW0]*f+t[s.COLUMN2ROW2]*h+i*r.x+n,_=h*d(t[s.COLUMN2ROW1],t[s.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[s.COLUMN2ROW0],t[s.COLUMN0ROW2])+r.z),R=[];if(0===y&&0===_){if(l=u.computeRealRoots(E,p,m),0===l.length)return R;var T=l[0],A=Math.sqrt(Math.max(1-T*T,0));if(R.push(new e(i,a*T,a*-A)),R.push(new e(i,a*T,a*A)),2===l.length){var S=l[1],g=Math.sqrt(Math.max(1-S*S,0));R.push(new e(i,a*S,a*-g)),R.push(new e(i,a*S,a*g))}return R}var C=y*y,v=_*_,I=E*E,O=y*_,N=I+v,M=2*(p*E+O),w=2*m*E+p*p-v+C,P=2*(m*p-O),D=m*m-C;if(0===N&&0===M&&0===w&&0===P)return R;l=c.computeRealRoots(N,M,w,P,D);var U=l.length;if(0===U)return R;for(var F=0;F<U;++F){var L,x=l[F],b=x*x,B=Math.max(1-b,0),q=Math.sqrt(B);L=o.sign(E)===o.sign(m)?d(E*b+m,p*x,o.EPSILON12):o.sign(m)===o.sign(p*x)?d(E*b,p*x+m,o.EPSILON12):d(E*b+p*x,m,o.EPSILON12);var G=d(_*x,y,o.EPSILON15),z=L*G;z<0?R.push(new e(i,a*x,a*q)):z>0?R.push(new e(i,a*x,a*-q)):0!==q?(R.push(new e(i,a*x,a*-q)),R.push(new e(i,a*x,a*q)),++F):R.push(new e(i,a*x,a*q))}return R}var p={};p.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,s=t.direction,u=r.normal,c=e.dot(u,s);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(u,a))/c;if(!(l<0))return i=e.multiplyByScalar(s,l,i),e.add(a,i,i)}};var m=new e,_=new e,y=new e,R=new e,T=new e;p.rayTriangleParametric=function(t,n,i,a,s){s=r(s,!1);var u,c,l,f,h,d=t.origin,E=t.direction,p=e.subtract(i,n,m),A=e.subtract(a,n,_),S=e.cross(E,A,y),g=e.dot(p,S);if(s){if(g<o.EPSILON6)return;if(u=e.subtract(d,n,R),(l=e.dot(u,S))<0||l>g)return;if(c=e.cross(u,p,T),(f=e.dot(E,c))<0||l+f>g)return;h=e.dot(A,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var C=1/g;if(u=e.subtract(d,n,R),(l=e.dot(u,S)*C)<0||l>1)return;if(c=e.cross(u,p,T),(f=e.dot(E,c)*C)<0||l+f>1)return;h=e.dot(A,c)*C}return h},p.rayTriangle=function(t,r,i,a,o,s){var u=p.rayTriangleParametric(t,r,i,a,o);if(n(u)&&!(u<0))return n(s)||(s=new e),e.multiplyByScalar(t.direction,u,s),e.add(t.origin,s,s)};var A=new l;p.lineSegmentTriangle=function(t,r,i,a,o,s,u){var c=A;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=p.rayTriangleParametric(c,i,a,o,s);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(u)||(u=new e),e.multiplyByScalar(c.direction,l,u),e.add(c.origin,u,u)};var S={root0:0,root1:0};p.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var g=new l;p.lineSegmentSphere=function(t,r,i,a){var o=g;e.clone(t,o.origin);var s=e.subtract(r,t,o.direction),u=e.magnitude(s);if(e.normalize(s,s),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>u))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,u),a};var C=new e,v=new e;p.rayEllipsoid=function(t,r){ -var n,i,o,s,u,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,C),f=e.multiplyComponents(c,t.direction,v),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var E=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,E<o)return;if(E>o){s=d*d-o,u=-d+Math.sqrt(s);var p=u/i,m=n/u;return p<m?new a(p,m):{start:m,stop:p}}var _=Math.sqrt(n/i);return new a(_,_)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,s=d*d-o,u=-d+Math.sqrt(s),new a(0,u/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,O=new e,N=new e,M=new e,w=new e,P=new s,D=new s,U=new s,F=new s,L=new s,x=new s,b=new s,B=new e,q=new e,G=new t;p.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var u=r.geodeticSurfaceNormal(i,I);if(e.dot(a,u)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,O),O),p=e.normalize(e.cross(f,d,N),N),m=P;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=p.x,m[7]=p.y,m[8]=p.z;var _=s.transpose(m,D),y=s.fromScale(r.radii,U),R=s.fromScale(r.oneOverRadii,F),T=L;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var A,S,g=s.multiply(s.multiply(_,R,x),T,x),C=s.multiply(s.multiply(g,y,b),m,b),v=s.multiplyByVector(g,i,w),z=E(C,e.negate(v,I),0,0,1),V=z.length;if(V>0){for(var W=e.clone(e.ZERO,q),H=Number.NEGATIVE_INFINITY,X=0;X<V;++X){A=s.multiplyByVector(y,s.multiplyByVector(m,z[X],B),B);var Y=e.normalize(e.subtract(A,i,M),M),k=e.dot(Y,a);k>H&&(H=k,W=e.clone(A,W))}var j=r.cartesianToCartographic(W,G);return H=o.clamp(H,0,1),S=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-H*H),S=c?-S:S,j.height=S,r.cartographicToCartesian(j,new e)}};var z=new e;return p.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var s=e.subtract(r,t,z),u=i.normal,c=e.dot(u,s);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(u,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(s,f,a),e.add(t,a,a),a}},p.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,s=e.dot(a,t)+o<0,u=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=s?1:0,l+=u?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(s)return p.lineSegmentPlane(t,r,i,f),p.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(u)return p.lineSegmentPlane(r,n,i,f),p.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return p.lineSegmentPlane(n,t,i,f),p.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!s)return p.lineSegmentPlane(r,t,i,f),p.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!u)return p.lineSegmentPlane(n,r,i,f),p.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return p.lineSegmentPlane(t,n,i,f),p.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},p}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function s(t,r){this.normal=e.clone(t),this.distance=r}s.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new s(n,a)};var u=new e;s.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,u),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new s(i,a)},s.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;s.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=s.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return s.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,u),e.normalize(u,u),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),s.fromPointNormal(l,u,n)},s.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new s(t.normal,t.distance)},s.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},s.ORIGIN_XY_PLANE=i(new s(e.UNIT_Z,0)),s.ORIGIN_YZ_PLANE=i(new s(e.UNIT_X,0)),s.ORIGIN_ZX_PLANE=i(new s(e.UNIT_Y,0)),s}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,r,n,i,a,o,s,u,c,l,f,h){"use strict";function d(e,t,r){var n=I;n.length=e;var i;if(t===r){for(i=0;i<e;i++)n[i]=t;return n}var a=r-t,o=a/e;for(i=0;i<e;i++){var s=t+i*o;n[i]=s}return n}function E(t,r,n,i,a,o,s,u){var c=i.scaleToGeodeticSurface(t,w),l=i.scaleToGeodeticSurface(r,P),f=m.numberOfPoints(t,r,n),h=i.cartesianToCartographic(c,O),E=i.cartesianToCartographic(l,N),p=d(f,a,o);D.setEndPoints(h,E);var _=D.surfaceDistance/f,y=u;h.height=a;var R=i.cartographicToCartesian(h,M);e.pack(R,s,y),y+=3;for(var T=1;T<f;T++){var A=D.interpolateUsingSurfaceDistance(T*_,N);A.height=p[T],R=i.cartographicToCartesian(A,M),e.pack(R,s,y),y+=3}return y}function p(t,r,n,i,a,o,u,c){var l=i.scaleToGeodeticSurface(t,w),f=i.scaleToGeodeticSurface(r,P),h=i.cartesianToCartographic(l,O),E=i.cartesianToCartographic(f,N),p=m.numberOfPointsRhumbLine(h,E,n),_=d(p,a,o);U.ellipsoid.equals(i)||(U=new s(void 0,void 0,i)),U.setEndPoints(h,E);var y=U.surfaceDistance/p,R=c;h.height=a;var T=i.cartographicToCartesian(h,M);e.pack(T,u,R),R+=3;for(var A=1;A<p;A++){var S=U.interpolateUsingSurfaceDistance(A*y,N);S.height=_[A],T=i.cartographicToCartesian(S,M),e.pack(T,u,R),R+=3}return R}var m={};m.numberOfPoints=function(t,r,n){var i=e.distance(t,r);return Math.ceil(i/n)},m.numberOfPointsRhumbLine=function(e,t,r){var n=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(n/(r*r)))};var _=new t;m.extractHeights=function(e,t){for(var r=e.length,n=new Array(r),i=0;i<r;i++){var a=e[i];n[i]=t.cartesianToCartographic(a,_).height}return n};var y=new f,R=new e,T=new e,A=new h(e.UNIT_X,0),S=new e,g=new h(e.UNIT_X,0),C=new e,v=new e,I=[],O=new t,N=new t,M=new e,w=new e,P=new e,D=new o,U=new s;m.wrapLongitude=function(t,i){var a=[],o=[];if(n(t)&&t.length>0){i=r(i,f.IDENTITY);var s=f.inverseTransformation(i,y),c=f.multiplyByPoint(s,e.ZERO,R),l=e.normalize(f.multiplyByPointAsVector(s,e.UNIT_Y,T),T),d=h.fromPointNormal(c,l,A),E=e.normalize(f.multiplyByPointAsVector(s,e.UNIT_X,S),S),p=h.fromPointNormal(c,E,g),m=1;a.push(e.clone(t[0]));for(var _=a[0],I=t.length,O=1;O<I;++O){var N=t[O];if(h.getPointDistance(p,_)<0||h.getPointDistance(p,N)<0){var M=u.lineSegmentPlane(_,N,d,C);if(n(M)){var w=e.multiplyByScalar(l,5e-9,v);h.getPointDistance(d,_)<0&&e.negate(w,w),a.push(e.add(M,w,new e)),o.push(m+1),e.negate(w,w),a.push(e.add(M,w,new e)),m=1}}a.push(e.clone(t[O])),m++,_=N}o.push(m)}return{positions:a,lengths:o}},m.generateArc=function(t){n(t)||(t={});var i=t.positions,o=i.length,s=r(t.ellipsoid,a.WGS84),u=r(t.height,0),f=c(u);if(o<1)return[];if(1===o){var h=s.scaleToGeodeticSurface(i[0],w);if(0!==(u=f?u[0]:u)){var d=s.geodeticSurfaceNormal(h,M);e.multiplyByScalar(d,u,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var p=t.minDistance;if(!n(p)){var _=r(t.granularity,l.RADIANS_PER_DEGREE);p=l.chordLength(_,s.maximumRadius)}var y,R=0;for(y=0;y<o-1;y++)R+=m.numberOfPoints(i[y],i[y+1],p);var T=3*(R+1),A=new Array(T),S=0;for(y=0;y<o-1;y++){S=E(i[y],i[y+1],p,s,f?u[y]:u,f?u[y+1]:u,A,S)}I.length=0;var g=i[o-1],C=s.cartesianToCartographic(g,O);C.height=f?u[o-1]:u;var v=s.cartographicToCartesian(C,M);return e.pack(v,A,T-3),A};var F=new t,L=new t;return m.generateRhumbArc=function(i){n(i)||(i={});var o=i.positions,s=o.length,u=r(i.ellipsoid,a.WGS84),f=r(i.height,0),h=c(f);if(s<1)return[];if(1===s){var d=u.scaleToGeodeticSurface(o[0],w);if(0!==(f=h?f[0]:f)){var E=u.geodeticSurfaceNormal(d,M);e.multiplyByScalar(E,f,E),e.add(d,E,d)}return[d.x,d.y,d.z]}var _,y,R=r(i.granularity,l.RADIANS_PER_DEGREE),T=0,A=u.cartesianToCartographic(o[0],F);for(_=0;_<s-1;_++)y=u.cartesianToCartographic(o[_+1],L),T+=m.numberOfPointsRhumbLine(A,y,R),A=t.clone(y,F);var S=3*(T+1),g=new Array(S),C=0;for(_=0;_<s-1;_++){C=p(o[_],o[_+1],R,u,h?f[_]:f,h?f[_+1]:f,g,C)}I.length=0;var v=o[s-1],N=u.cartesianToCartographic(v,O);N.height=h?f[s-1]:f;var P=u.cartographicToCartesian(N,M);return e.pack(P,g,S-3),g},m.generateCartesianArc=function(t){for(var r=m.generateArc(t),n=r.length/3,i=new Array(n),a=0;a<n;a++)i[a]=e.unpack(r,3*a);return i},m.generateCartesianRhumbArc=function(t){for(var r=m.generateRhumbArc(t),n=r.length/3,i=new Array(n),a=0;a<n;a++)i[a]=e.unpack(r,3*a);return i},m}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/PolylineGeometry",["./ArcType","./arrayRemoveDuplicates","./BoundingSphere","./Cartesian3","./Color","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryType","./IndexDatatype","./Math","./PolylinePipeline","./PrimitiveType","./VertexFormat"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m,_,y){"use strict";function R(e,t,r,n,a){var o=A;o.length=a;var s,u=r.red,c=r.green,l=r.blue,f=r.alpha,h=n.red,d=n.green,E=n.blue,p=n.alpha;if(i.equals(r,n)){for(s=0;s<a;s++)o[s]=i.clone(r);return o}var m=(h-u)/a,_=(d-c)/a,y=(E-l)/a,R=(p-f)/a;for(s=0;s<a;s++)o[s]=new i(u+s*m,c+s*_,l+s*y,f+s*R);return o}function T(t){t=o(t,o.EMPTY_OBJECT);var r=t.positions,a=t.colors,u=o(t.width,1),l=o(t.colorsPerVertex,!1);this._positions=r,this._colors=a,this._width=u,this._colorsPerVertex=l,this._vertexFormat=y.clone(o(t.vertexFormat,y.DEFAULT)),this._arcType=o(t.arcType,e.GEODESIC),this._granularity=o(t.granularity,p.RADIANS_PER_DEGREE),this._ellipsoid=c.clone(o(t.ellipsoid,c.WGS84)),this._workerName="createPolylineGeometry";var f=1+r.length*n.packedLength;f+=s(a)?1+a.length*i.packedLength:1,this.packedLength=f+c.packedLength+y.packedLength+4}var A=[];T.pack=function(e,t,r){r=o(r,0);var a,u=e._positions,l=u.length;for(t[r++]=l,a=0;a<l;++a,r+=n.packedLength)n.pack(u[a],t,r);var f=e._colors;for(l=s(f)?f.length:0,t[r++]=l,a=0;a<l;++a,r+=i.packedLength)i.pack(f[a],t,r);return c.pack(e._ellipsoid,t,r),r+=c.packedLength,y.pack(e._vertexFormat,t,r),r+=y.packedLength,t[r++]=e._width,t[r++]=e._colorsPerVertex?1:0,t[r++]=e._arcType,t[r]=e._granularity,t};var S=c.clone(c.UNIT_SPHERE),g=new y,C={positions:void 0,colors:void 0,ellipsoid:S,vertexFormat:g,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};T.unpack=function(e,t,r){t=o(t,0);var a,u=e[t++],l=new Array(u);for(a=0;a<u;++a,t+=n.packedLength)l[a]=n.unpack(e,t);u=e[t++];var f=u>0?new Array(u):void 0;for(a=0;a<u;++a,t+=i.packedLength)f[a]=i.unpack(e,t);var h=c.unpack(e,t,S);t+=c.packedLength;var d=y.unpack(e,t,g);t+=y.packedLength;var E=e[t++],p=1===e[t++],m=e[t++],_=e[t];return s(r)?(r._positions=l,r._colors=f,r._ellipsoid=c.clone(h,r._ellipsoid),r._vertexFormat=y.clone(d,r._vertexFormat),r._width=E,r._colorsPerVertex=p,r._arcType=m,r._granularity=_,r):(C.positions=l,C.colors=f,C.width=E,C.colorsPerVertex=p,C.arcType=m,C.granularity=_,new T(C))};var v=new n,I=new n,O=new n,N=new n;return T.createGeometry=function(o){var u,c,y,T=o._width,S=o._vertexFormat,g=o._colors,C=o._colorsPerVertex,M=o._arcType,w=o._granularity,P=o._ellipsoid,D=t(o._positions,n.equalsEpsilon),U=D.length;if(!(U<2||T<=0)){if(M===e.GEODESIC||M===e.RHUMB){var F,L;M===e.GEODESIC?(F=p.chordLength(w,P.maximumRadius),L=m.numberOfPoints):(F=w,L=m.numberOfPointsRhumbLine);var x=m.extractHeights(D,P);if(s(g)){var b=1;for(u=0;u<U-1;++u)b+=L(D[u],D[u+1],F);var B=new Array(b),q=0;for(u=0;u<U-1;++u){var G=D[u],z=D[u+1],V=g[u],W=L(G,z,F);if(C&&u<b){var H=g[u+1],X=R(G,z,V,H,W),Y=X.length;for(c=0;c<Y;++c)B[q++]=X[c]}else for(c=0;c<W;++c)B[q++]=i.clone(V)}B[q]=i.clone(g[g.length-1]),g=B,A.length=0}D=M===e.GEODESIC?m.generateCartesianArc({positions:D,minDistance:F,ellipsoid:P,height:x}):m.generateCartesianRhumbArc({positions:D,granularity:F,ellipsoid:P,height:x})}U=D.length;var k,j=4*U-4,K=new Float64Array(3*j),Z=new Float64Array(3*j),J=new Float64Array(3*j),Q=new Float32Array(2*j),$=S.st?new Float32Array(2*j):void 0,ee=s(g)?new Uint8Array(4*j):void 0,te=0,re=0,ne=0,ie=0;for(c=0;c<U;++c){0===c?(k=v,n.subtract(D[0],D[1],k),n.add(D[0],k,k)):k=D[c-1],n.clone(k,O),n.clone(D[c],I),c===U-1?(k=v,n.subtract(D[U-1],D[U-2],k),n.add(D[U-1],k,k)):k=D[c+1],n.clone(k,N);var ae,oe;s(ee)&&(ae=0===c||C?g[c]:g[c-1],c!==U-1&&(oe=g[c]));var se=0===c?2:0,ue=c===U-1?2:4;for(y=se;y<ue;++y){n.pack(I,K,te),n.pack(O,Z,te),n.pack(N,J,te),te+=3;var ce=y-2<0?-1:1;if(Q[re++]=y%2*2-1,Q[re++]=ce*T,S.st&&($[ne++]=c/(U-1),$[ne++]=Math.max(Q[re-2],0)),s(ee)){var le=y<2?ae:oe;ee[ie++]=i.floatToByte(le.red),ee[ie++]=i.floatToByte(le.green),ee[ie++]=i.floatToByte(le.blue),ee[ie++]=i.floatToByte(le.alpha)}}}var fe=new h;fe.position=new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:K}),fe.prevPosition=new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:Z}),fe.nextPosition=new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:J}),fe.expandAndWidth=new f({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:Q}),S.st&&(fe.st=new f({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:$})),s(ee)&&(fe.color=new f({componentDatatype:a.UNSIGNED_BYTE,componentsPerAttribute:4,values:ee,normalize:!0}));var he=E.createTypedArray(j,6*U-6),de=0,Ee=0,pe=U-1;for(c=0;c<pe;++c)he[Ee++]=de,he[Ee++]=de+2,he[Ee++]=de+1,he[Ee++]=de+1,he[Ee++]=de+2,he[Ee++]=de+3,de+=4;return new l({attributes:fe,indices:he,primitiveType:_.TRIANGLES,boundingSphere:r.fromPoints(D),geometryType:d.POLYLINES})}},T}),define("Workers/createPolylineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/PolylineGeometry"],function(e,t,r){"use strict";function n(n,i){return e(i)&&(n=r.unpack(n,i)),n._ellipsoid=t.clone(n._ellipsoid),r.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as m}from"./chunk-NYU5F26A.js";import{a as N}from"./chunk-E3BAMNKM.js";import{a as U}from"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import{a as k}from"./chunk-QNEABTP2.js";import{a as le}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as se}from"./chunk-T53UE6JF.js";import{a as ce}from"./chunk-RYO6NY7F.js";import{a as ne,b as re,c as ie,d as O}from"./chunk-2HSPJH3C.js";import{d as oe}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as x}from"./chunk-6QVIJ7JA.js";import{a as p,d as u}from"./chunk-AODSXSC5.js";import{a as J}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as A}from"./chunk-WHQYJFDH.js";import{a as V}from"./chunk-OYWUGDKS.js";import{e as h}from"./chunk-DRYFJEFT.js";var me=[];function Ae(e,o,t,n,c){let s=me;s.length=c;let l,E=t.red,a=t.green,r=t.blue,w=t.alpha,b=n.red,i=n.green,f=n.blue,L=n.alpha;if(m.equals(t,n)){for(l=0;l<c;l++)s[l]=m.clone(t);return s}let M=(b-E)/c,z=(i-a)/c,H=(f-r)/c,B=(L-w)/c;for(l=0;l<c;l++)s[l]=new m(E+l*M,a+l*z,r+l*H,w+l*B);return s}function G(e){e=A(e,A.EMPTY_OBJECT);let o=e.positions,t=e.colors,n=A(e.width,1),c=A(e.colorsPerVertex,!1);if(!h(o)||o.length<2)throw new V("At least two positions are required.");if(typeof n!="number")throw new V("width must be a number");if(h(t)&&(c&&t.length<o.length||!c&&t.length<o.length-1))throw new V("colors has an invalid length.");this._positions=o,this._colors=t,this._width=n,this._colorsPerVertex=c,this._vertexFormat=k.clone(A(e.vertexFormat,k.DEFAULT)),this._arcType=A(e.arcType,N.GEODESIC),this._granularity=A(e.granularity,J.RADIANS_PER_DEGREE),this._ellipsoid=u.clone(A(e.ellipsoid,u.default)),this._workerName="createPolylineGeometry";let s=1+o.length*p.packedLength;s+=h(t)?1+t.length*m.packedLength:1,this.packedLength=s+u.packedLength+k.packedLength+4}G.pack=function(e,o,t){if(!h(e))throw new V("value is required");if(!h(o))throw new V("array is required");t=A(t,0);let n,c=e._positions,s=c.length;for(o[t++]=s,n=0;n<s;++n,t+=p.packedLength)p.pack(c[n],o,t);let l=e._colors;for(s=h(l)?l.length:0,o[t++]=s,n=0;n<s;++n,t+=m.packedLength)m.pack(l[n],o,t);return u.pack(e._ellipsoid,o,t),t+=u.packedLength,k.pack(e._vertexFormat,o,t),t+=k.packedLength,o[t++]=e._width,o[t++]=e._colorsPerVertex?1:0,o[t++]=e._arcType,o[t]=e._granularity,o};var de=u.clone(u.UNIT_SPHERE),ue=new k,S={positions:void 0,colors:void 0,ellipsoid:de,vertexFormat:ue,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};G.unpack=function(e,o,t){if(!h(e))throw new V("array is required");o=A(o,0);let n,c=e[o++],s=new Array(c);for(n=0;n<c;++n,o+=p.packedLength)s[n]=p.unpack(e,o);c=e[o++];let l=c>0?new Array(c):void 0;for(n=0;n<c;++n,o+=m.packedLength)l[n]=m.unpack(e,o);let E=u.unpack(e,o,de);o+=u.packedLength;let a=k.unpack(e,o,ue);o+=k.packedLength;let r=e[o++],w=e[o++]===1,b=e[o++],i=e[o];return h(t)?(t._positions=s,t._colors=l,t._ellipsoid=u.clone(E,t._ellipsoid),t._vertexFormat=k.clone(a,t._vertexFormat),t._width=r,t._colorsPerVertex=w,t._arcType=b,t._granularity=i,t):(S.positions=s,S.colors=l,S.width=r,S.colorsPerVertex=w,S.arcType=b,S.granularity=i,new G(S))};var pe=new p,ae=new p,fe=new p,he=new p;G.createGeometry=function(e){let o=e._width,t=e._vertexFormat,n=e._colors,c=e._colorsPerVertex,s=e._arcType,l=e._granularity,E=e._ellipsoid,a,r,w,b=[],i=le(e._positions,p.equalsEpsilon,!1,b);if(h(n)&&b.length>0){let d=0,P=b[0];n=n.filter(function(q,T){let g=!1;return c?g=T===P||T===0&&P===1:g=T+1===P,g?(d++,P=b[d],!1):!0})}let f=i.length;if(f<2||o<=0)return;if(s===N.GEODESIC||s===N.RHUMB){let d,P;s===N.GEODESIC?(d=J.chordLength(l,E.maximumRadius),P=U.numberOfPoints):(d=l,P=U.numberOfPointsRhumbLine);let q=U.extractHeights(i,E);if(h(n)){let T=1;for(a=0;a<f-1;++a)T+=P(i[a],i[a+1],d);let g=new Array(T),D=0;for(a=0;a<f-1;++a){let Z=i[a],$=i[a+1],I=n[a],ee=P(Z,$,d);if(c&&a<T){let _e=n[a+1],te=Ae(Z,$,I,_e,ee),Pe=te.length;for(r=0;r<Pe;++r)g[D++]=te[r]}else for(r=0;r<ee;++r)g[D++]=m.clone(I)}g[D]=m.clone(n[n.length-1]),n=g,me.length=0}s===N.GEODESIC?i=U.generateCartesianArc({positions:i,minDistance:d,ellipsoid:E,height:q}):i=U.generateCartesianRhumbArc({positions:i,granularity:d,ellipsoid:E,height:q})}f=i.length;let L=f*4-4,M=new Float64Array(L*3),z=new Float64Array(L*3),H=new Float64Array(L*3),B=new Float32Array(L*2),K=t.st?new Float32Array(L*2):void 0,y=h(n)?new Uint8Array(L*4):void 0,W=0,j=0,X=0,Y=0,_;for(r=0;r<f;++r){r===0?(_=pe,p.subtract(i[0],i[1],_),p.add(i[0],_,_)):_=i[r-1],p.clone(_,fe),p.clone(i[r],ae),r===f-1?(_=pe,p.subtract(i[f-1],i[f-2],_),p.add(i[f-1],_,_)):_=i[r+1],p.clone(_,he);let d,P;h(y)&&(r!==0&&!c?d=n[r-1]:d=n[r],r!==f-1&&(P=n[r]));let q=r===0?2:0,T=r===f-1?2:4;for(w=q;w<T;++w){p.pack(ae,M,W),p.pack(fe,z,W),p.pack(he,H,W),W+=3;let g=w-2<0?-1:1;if(B[j++]=2*(w%2)-1,B[j++]=g*o,t.st&&(K[X++]=r/(f-1),K[X++]=Math.max(B[j-2],0)),h(y)){let D=w<2?d:P;y[Y++]=m.floatToByte(D.red),y[Y++]=m.floatToByte(D.green),y[Y++]=m.floatToByte(D.blue),y[Y++]=m.floatToByte(D.alpha)}}}let v=new ce;v.position=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:M}),v.prevPosition=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:z}),v.nextPosition=new O({componentDatatype:x.DOUBLE,componentsPerAttribute:3,values:H}),v.expandAndWidth=new O({componentDatatype:x.FLOAT,componentsPerAttribute:2,values:B}),t.st&&(v.st=new O({componentDatatype:x.FLOAT,componentsPerAttribute:2,values:K})),h(y)&&(v.color=new O({componentDatatype:x.UNSIGNED_BYTE,componentsPerAttribute:4,values:y,normalize:!0}));let C=se.createTypedArray(L,f*6-6),F=0,R=0,we=f-1;for(r=0;r<we;++r)C[R++]=F,C[R++]=F+2,C[R++]=F+1,C[R++]=F+1,C[R++]=F+2,C[R++]=F+3,F+=4;return new ie({attributes:v,indices:C,primitiveType:re.TRIANGLES,boundingSphere:oe.fromPoints(i),geometryType:ne.POLYLINES})};var Q=G;function ge(e,o){return h(o)&&(e=Q.unpack(e,o)),e._ellipsoid=u.clone(e._ellipsoid),Q.createGeometry(e)}var We=ge;export{We as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js index 71ca1059e..db29593e3 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,m=i.z,y=l*l*d*d,E=f*f*p*p,_=h*h*m*m,v=y+E+_,T=Math.sqrt(1/v),g=e.multiplyByScalar(n,T,a);if(v<s)return isFinite(T)?e.clone(g,c):void 0;var R=u.x,A=u.y,S=u.z,w=o;w.x=g.x*R*2,w.y=g.y*A*2,w.z=g.z*S*2;var O,I,N,x,M,C,P,b,D,U,L,F=(1-T)*e.magnitude(n)/(.5*e.magnitude(w)),B=0;do{F-=B,N=1/(1+F*R),x=1/(1+F*A),M=1/(1+F*S),C=N*N,P=x*x,b=M*M,D=C*N,U=P*x,L=b*M,O=y*C+E*P+_*b-1,I=y*D*R+E*U*A+_*L*S;B=O/(-2*I)}while(Math.abs(O)>r.EPSILON12);return t(c)?(c.x=l*N,c.y=f*x,c.z=h*M,c):new e(l*N,f*x,h*M)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,m=r(n)?n.oneOverRadiiSquared:h,y=r(n)?n._centerToleranceSquared:d,E=o(t,p,m,y,c);if(r(E)){var _=e.multiplyComponents(E,m,s);_=e.normalize(_,_);var v=e.subtract(t,E,l),T=Math.atan2(_.y,_.x),g=Math.asin(_.z),R=a.sign(e.dot(v,t))*e.magnitude(v);return r(i)?(i.longitude=T,i.latitude=g,i.height=R,i):new u(T,g,R)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,m=new e,y=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,y),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var y=t.cartesianToCartographic(e[p]);o=Math.min(o,y.longitude),c=Math.max(c,y.longitude),h=Math.min(h,y.latitude),d=Math.max(d,y.latitude);var E=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;l=Math.min(l,E),f=Math.max(f,E)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var y=1;y<8;++y)m.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingRectangle",["./Cartesian2","./Cartographic","./Check","./defaultValue","./defined","./GeographicProjection","./Intersect","./Rectangle"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.width=r(n,0),this.height=r(i,0)}s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t},s.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new s),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n},s.fromPoints=function(e,t){if(i(t)||(t=new s),!i(e)||0===e.length)return t.x=0,t.y=0,t.width=0,t.height=0,t;for(var n=e.length,r=e[0].x,a=e[0].y,o=e[0].x,u=e[0].y,c=1;c<n;c++){var l=e[c],f=l.x,h=l.y;r=Math.min(f,r),o=Math.max(f,o),a=Math.min(h,a),u=Math.max(h,u)}return t.x=r,t.y=a,t.width=o-r,t.height=u-a,t};var c=new a,l=new t,f=new t;return s.fromRectangle=function(t,n,a){if(i(a)||(a=new s),!i(t))return a.x=0,a.y=0,a.width=0,a.height=0,a;n=r(n,c);var o=n.project(u.southwest(t,l)),h=n.project(u.northeast(t,f));return e.subtract(h,o,h),a.x=o.x,a.y=o.y,a.width=h.x,a.height=h.y,a},s.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new s(e.x,e.y,e.width,e.height)},s.union=function(e,t,n){i(n)||(n=new s);var r=Math.min(e.x,t.x),a=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),u=Math.max(e.y+e.height,t.y+t.height);return n.x=r,n.y=a,n.width=o-r,n.height=u-a,n},s.expand=function(e,t,n){n=s.clone(e,n);var r=t.x-n.x,i=t.y-n.y;return r>n.width?n.width=r:r<0&&(n.width-=r,n.x=t.x),i>n.height?n.height=i:i<0&&(n.height-=i,n.y=t.y),n},s.intersect=function(e,t){var n=e.x,r=e.y,i=t.x,a=t.y;return n>i+t.width||n+e.width<i||r+e.height<a||r>a+t.height?o.OUTSIDE:o.INTERSECTING},s.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.intersect=function(e){return s.intersect(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict" -;function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(m[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,y=e[s.getElementIndex(h,h)],E=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(y-E)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,m=2*(i-h),y=2*(a+l),E=2*(i+h),_=-n+u-f+d,v=2*(c-o),T=2*(a-l),g=2*(c+o),R=-n-u+f+d;return r(t)?(t[0]=p,t[1]=E,t[2]=T,t[3]=m,t[4]=_,t[5]=g,t[6]=y,t[7]=v,t[8]=R,t):new s(p,m,y,E,_,v,T,g,R)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,m=-c*i+a*o*u,y=-o,E=c*n,_=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=y,t[3]=f,t[4]=p,t[5]=E,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,y,E,_)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],y=new s,E=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,y),s.transpose(y,E),s.multiply(h,y,h),s.multiply(E,h,h),s.multiply(o,y,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,m,y){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(m,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(y,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,y=t.z*t.z,E=t.z*t.w,_=t.w*t.w,v=s-d-y+_,T=2*(c-E),g=2*(f+m),R=2*(c+E),A=-s+d-y+_,S=2*(p-h),w=2*(f-m),O=2*(p+h),I=-s-d+y+_;return r[0]=v*a,r[1]=R*a,r[2]=w*a,r[3]=0,r[4]=T*o,r[5]=A*o,r[6]=O*o,r[7]=0,r[8]=g*u,r[9]=S*u,r[10]=I*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,y=f.z,E=d.x,_=d.y,v=d.z,T=r.x,g=r.y,R=r.z,A=u*-T+s*-g+c*-R,S=E*-T+_*-g+v*-R,w=p*T+m*g+y*R;return i(n)?(n[0]=u,n[1]=E,n[2]=-p,n[3]=0,n[4]=s,n[5]=_,n[6]=-m,n[7]=0,n[8]=c,n[9]=v,n[10]=-y,n[11]=0,n[12]=A,n[13]=S,n[14]=w,n[15]=1,n):new l(u,s,c,A,E,_,v,S,-p,-m,-y,w,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,m=a+c,y=o+l,E=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=y,i[14]=E,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var m=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),n};var y=new e;l.getMaximumScale=function(t){return l.getScale(t,y),e.maximumComponent(y)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],y=e[13],E=e[14],_=e[15],v=t[0],T=t[1],g=t[2],R=t[3],A=t[4],S=t[5],w=t[6],O=t[7],I=t[8],N=t[9],x=t[10],M=t[11],C=t[12],P=t[13],b=t[14],D=t[15],U=r*v+u*T+f*g+m*R,L=i*v+s*T+h*g+y*R,F=a*v+c*T+d*g+E*R,B=o*v+l*T+p*g+_*R,z=r*A+u*S+f*w+m*O,q=i*A+s*S+h*w+y*O,G=a*A+c*S+d*w+E*O,V=o*A+l*S+p*w+_*O,W=r*I+u*N+f*x+m*M,X=i*I+s*N+h*x+y*M,H=a*I+c*N+d*x+E*M,k=o*I+l*N+p*x+_*M,Y=r*C+u*P+f*b+m*D,j=i*C+s*P+h*b+y*D,Z=a*C+c*P+d*b+E*D,K=o*C+l*P+p*b+_*D;return n[0]=U,n[1]=L,n[2]=F,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=k,n[12]=Y,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],y=t[1],E=t[2],_=t[4],v=t[5],T=t[6],g=t[8],R=t[9],A=t[10],S=t[12],w=t[13],O=t[14],I=r*m+o*y+c*E,N=i*m+u*y+l*E,x=a*m+s*y+f*E,M=r*_+o*v+c*T,C=i*_+u*v+l*T,P=a*_+s*v+f*T,b=r*g+o*R+c*A,D=i*g+u*R+l*A,U=a*g+s*R+f*A,L=r*S+o*w+c*O+h,F=i*S+u*w+l*O+d,B=a*S+s*w+f*O+p;return n[0]=I,n[1]=N,n[2]=x,n[3]=0,n[4]=M,n[5]=C,n[6]=P,n[7]=0,n[8]=b,n[9]=D,n[10]=U,n[11]=0,n[12]=L,n[13]=F,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],y=t[4],E=t[5],_=t[6],v=t[7],T=t[8],g=r*h+o*d+c*p,R=i*h+u*d+l*p,A=a*h+s*d+f*p,S=r*m+o*y+c*E,w=i*m+u*y+l*E,O=a*m+s*y+f*E,I=r*_+o*v+c*T,N=i*_+u*v+l*T,x=a*_+s*v+f*T;return n[0]=g,n[1]=R,n[2]=A,n[3]=0,n[4]=S,n[5]=w,n[6]=O,n[7]=0,n[8]=I,n[9]=N,n[10]=x,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var E=new e;l.multiplyByUniformScale=function(e,t,n){return E.x=t,E.y=t,E.z=t,l.multiplyByScale(e,E,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,g=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],y=e[6],E=e[10],R=e[14],A=e[3],S=e[7],w=e[11],O=e[15],I=E*O,N=R*w,x=y*O,M=R*S,C=y*w,P=E*S,b=m*O,D=R*A,U=m*w,L=E*A,F=m*S,B=y*A,z=I*h+M*d+C*p-(N*h+x*d+P*p),q=N*f+b*d+L*p-(I*f+D*d+U*p),G=x*f+D*h+F*p-(M*f+b*h+B*p),V=P*f+U*h+B*d-(C*f+L*h+F*d),W=N*i+x*a+P*o-(I*i+M*a+C*o),X=I*r+D*a+U*o-(N*r+b*a+L*o),H=M*r+b*i+B*o-(x*r+D*i+F*o),k=C*r+L*i+F*a-(P*r+U*i+B*a);I=a*p,N=o*d,x=i*p,M=o*h,C=i*d,P=a*h,b=r*p,D=o*f,U=r*d,L=a*f,F=r*h,B=i*f;var Y=I*S+M*w+C*O-(N*S+x*w+P*O),j=N*A+b*w+L*O-(I*A+D*w+U*O),Z=x*A+D*S+F*O-(M*A+b*S+B*O),K=P*A+U*S+B*w-(C*A+L*S+F*w),J=x*E+P*R+N*y-(C*R+I*y+M*E),Q=U*R+I*m+D*E-(b*E+L*R+N*m),$=b*y+B*R+M*m-(F*R+x*m+D*y),ee=F*E+C*m+L*y-(U*y+B*E+P*m),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),g))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=k*te,n[8]=Y*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,m=-a*f-o*h-u*d,y=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=y,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,m=new e,y=new e,E=new e,_=new e,v=new e,T=new e,g=new e,R=new e,A=new e,S=new e,w=new e,O=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,y),c=e.clone(a,E),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var O=a.x,I=a.y,N=a.z;O<o.x&&e.clone(a,o),O>c.x&&e.clone(a,c),I<u.y&&e.clone(a,u),I>l.y&&e.clone(a,l),N<s.z&&e.clone(a,s),N>f.z&&e.clone(a,f)}var x=e.magnitudeSquared(e.subtract(c,o,g)),M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=o,b=c,D=x;M>D&&(D=M,P=u,b=l),C>D&&(D=C,P=s,b=f);var U=R;U.x=.5*(P.x+b.x),U.y=.5*(P.y+b.y),U.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,U,g)),F=Math.sqrt(L),B=A;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,w),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,g));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,U,g));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var H=X-F;U.x=(F*U.x+H*a.x)/X,U.y=(F*U.y+H*a.y)/X,U.z=(F*U.z+H*a.z)/X}}return F<G?(e.clone(U,n.center),n.radius=F):(e.clone(q,n.center),n.radius=G),n};var I=new o,N=new e,x=new e,M=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,I),h.southwest(t,M),M.height=a,h.northeast(t,C),C.height=o;var s=n.project(M,N),c=n.project(C,x),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=T;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,y),h=e.clone(u,E),O=e.clone(u,_),I=e.clone(u,v),N=t.length;for(s=0;s<N;s+=a){var x=t[s]+n.x,M=t[s+1]+n.y,C=t[s+2]+n.z;u.x=x,u.y=M,u.z=C,x<c.x&&e.clone(u,c),x>h.x&&e.clone(u,h),M<l.y&&e.clone(u,l),M>O.y&&e.clone(u,O),C<f.z&&e.clone(u,f),C>I.z&&e.clone(u,I)}var P=e.magnitudeSquared(e.subtract(h,c,g)),b=e.magnitudeSquared(e.subtract(O,l,g)),D=e.magnitudeSquared(e.subtract(I,f,g)),U=c,L=h,F=P;b>F&&(F=b,U=l,L=O),D>F&&(F=D,U=f,L=I);var B=R;B.x=.5*(U.x+L.x),B.y=.5*(U.y+L.y),B.z=.5*(U.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,g)),q=Math.sqrt(z),G=A;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=O.y,V.z=I.z;var W=e.midpoint(G,V,w),X=0;for(s=0;s<N;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,g));H>X&&(X=H);var k=e.magnitudeSquared(e.subtract(u,B,g));if(k>z){var Y=Math.sqrt(k);q=.5*(q+Y),z=q*q;var j=Y-q;B.x=(q*B.x+j*u.x)/Y,B.y=(q*B.y+j*u.y)/Y,B.z=(q*B.z+j*u.z)/Y}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=T;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,E),f=e.clone(a,_),h=e.clone(a,v),O=t.length;for(o=0;o<O;o+=3){var I=t[o]+n[o],N=t[o+1]+n[o+1],x=t[o+2]+n[o+2];a.x=I,a.y=N,a.z=x,I<u.x&&e.clone(a,u),I>l.x&&e.clone(a,l),N<s.y&&e.clone(a,s),N>f.y&&e.clone(a,f),x<c.z&&e.clone(a,c),x>h.z&&e.clone(a,h)}var M=e.magnitudeSquared(e.subtract(l,u,g)),C=e.magnitudeSquared(e.subtract(f,s,g)),P=e.magnitudeSquared(e.subtract(h,c,g)),b=u,D=l,U=M;C>U&&(U=C,b=s,D=f),P>U&&(U=P,b=c,D=h);var L=R;L.x=.5*(b.x+D.x),L.y=.5*(b.y+D.y),L.z=.5*(b.z+D.z);var F=e.magnitudeSquared(e.subtract(D,L,g)),B=Math.sqrt(F),z=A;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,w),V=0;for(o=0;o<O;o+=3){a.x=t[o]+n[o], -a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,g));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,g));if(X>F){var H=Math.sqrt(X);B=.5*(B+H),F=B*B;var k=H-B;L.x=(B*L.x+k*a.x)/H,L.y=(B*L.y+k*a.y)/H,L.z=(B*L.z+k*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var b=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return n.radius=s,n};var D=new e,U=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,U),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var F=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,k=new e,Y=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,k),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var y=p.length,E=0;E<y;++E){var _=p[E];e.add(o,_,_);var v=a.cartesianToCartographic(_,Y);n.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,g=o.y,R=o.z;return o.x=R,o.y=T,o.z=g,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return O*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=E,m(l,e),f=l=g,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return y(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,y,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(n,_)),f=[],l=_-c+1,h=[],d=o(),c)for(y=d.progress,m=function(e){h.push(e),--l||(p=m=E,d.reject(h))},p=function(e){f.push(e),--c||(p=m=E,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,y);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return y(1,arguments),h(e,_).then(t,n,r)}function f(){return h(arguments,_)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},v.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function m(e,t){for(var n,r=0;n=e[r++];)n(t)}function y(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function E(){}function _(e){return e}var v,T,g;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(g,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(g,t)})})}},T=[].slice,v=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(w)&&(w=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(w=!0,O=o(e[1]))}return w}function s(){return u()&&O}function c(){if(!t(I)&&(I=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function l(){return c()&&N}function f(){if(!t(x)){x=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(x=!0,M=o(e[1]),M.isNightly=!!e[2])}return x}function h(){return f()&&M}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,D=o(e[1]))}return b}function y(){return m()&&D}function E(){if(!t(U)){U=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,L=o(e[1]))}return U}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function v(){return E()&&L}function T(){return t(B)||(B=!E()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function g(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function R(){return g()?z:void 0}function A(){return A._result}var S;S="undefined"!=typeof navigator?navigator:{};var w,O,I,N,x,M,C,P,b,D,U,L,F,B,z,q;A._promise=void 0,A._result=void 0,A.initialize=function(){if(t(A._promise))return A._promise;var e=a.defer();if(A._promise=e.promise,m())return A._result=!1,e.resolve(A._result),e.promise;var n=new Image;return n.onload=function(){A._result=n.width>0&&n.height>0,e.resolve(A._result)},n.onerror=function(){A._result=!1,e.resolve(A._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(A,{initialized:{get:function(){return t(A._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:y,isFirefox:E,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:g,supportsWebP:A,imageRenderingValue:R,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CornerType",["./freezeObject"],function(e){"use strict";return e({ROUNDED:0,MITERED:1,BEVELED:2})}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)n=Math.sqrt(m+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var y=l,E=0;d>h&&(E=1),p>h&&p>d&&(E=2);var _=y[E],v=y[_];n=Math.sqrt(e[u.getElementIndex(E,E)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[E]=.5*n,n=.5/n,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*n,T[_]=(e[u.getElementIndex(_,E)]+e[u.getElementIndex(E,_)])*n,T[v]=(e[u.getElementIndex(v,E)]+e[u.getElementIndex(E,v)])*n,i=-T[0],a=-T[1],o=-T[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,n){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var y=new e,E=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,T),s.conjugate(T,T);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,y);var u=s.computeAngle(_);r[o]=y.x*u,r[o+1]=y.y*u,r[o+2]=y.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,E);var u=e.magnitude(E);return s.unpack(n,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(E,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var g=new s;s.lerp=function(e,t,n,r){return g=s.multiplyByScalar(t,n,g),r=s.multiplyByScalar(e,1-n,r),s.add(g,r,r)};var R=new s,A=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=R=s.negate(t,R)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return A=s.multiplyByScalar(e,Math.sin((1-n)*u),A),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(A,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var w=new e,O=new e,I=new s,N=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,I);s.multiply(a,r,N);var o=s.log(N,w);s.multiply(a,t,N);var u=s.log(N,O);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,I),s.multiply(n,I,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,I),u=s.slerp(n,r,i,N);return s.slerp(o,u,2*i*(1-i),a)};for(var x=new s,M=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=0;U<7;++U){var L=U+1,F=2*L+1;C[U]=1/(L*F),P[U]=L/F}return C[7]=M/136,P[7]=8*M/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,x);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,I),u=s.fastSlerp(n,r,i,N);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,m,y,E;if("%%"==e)return"%";for(var _=!1,v="",T=!1,g=!1,R=" ",A=s.length,S=0;s&&S<A;S++)switch(s.charAt(S)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":R=s.charAt(S+1);break;case"0":T=!0;break;case"#":g=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,E=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(E),_,c,f,T,R);case"c":return u(String.fromCharCode(+E),_,c,f,T);case"b":return o(E,2,g,_,c,f,T);case"o":return o(E,8,g,_,c,f,T);case"x":return o(E,16,g,_,c,f,T);case"X":return o(E,16,g,_,c,f,T).toUpperCase();case"u":return o(E,10,g,_,c,f,T);case"i":case"d":return d=+E||0,d=Math.round(d-d%1),p=d<0?"-":v,E=p+i(String(Math.abs(d)),f,"0",!1),a(E,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+E,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],y=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],E=p+Math.abs(d)[m](f),a(E,p,_,c,T)[y]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){m.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}m.addSeconds(e,i,e)}function h(e,n){_.julianDate=e;var r=m.leapSeconds,i=t(r,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-r[0].offset,n);if(i>=r.length)return m.addSeconds(e,-r[i-1].offset,n);var a=m.secondsDifference(r[i].julianDate,e);return 0===a?m.addSeconds(e,-r[i].offset,n):a<=1?void 0:m.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var y=new a,E=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,g=/^(\d{4})-?(\d{3})$/,R=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,A=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,w=/^(\d{2})(\.\d+)?/.source+S.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,y=0,_=0,S=0,N=u[0],x=u[1];if(null!==(u=N.match(A)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=N.match(T)))n=+u[1],s=+u[2];else if(null!==(u=N.match(v)))n=+u[1];else{var M;if(null!==(u=N.match(g)))n=+u[1],M=+u[2],a=o(n);else if(null!==(u=N.match(R))){n=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(n,0,4));M=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(M),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(x)){u=x.match(I),null!==u?(h=+u[1],y=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=x.match(O),null!==u?(h=+u[1],y=+u[2],_=60*+(u[3]||0),D=4):null!==(u=x.match(w))&&(h=+u[1],y=60*+(u[2]||0),D=3));var U=u[D],L=+u[D+1],F=+(u[D+2]||0);switch(U){case"+":h-=L,y-=F;break;case"-":h+=L,y+=F;break;case"Z":break;default:y+=new Date(Date.UTC(n,s-1,l,h,y)).getTimezoneOffset()}}var B=60===_;for(B&&_--;y>=60;)y-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:E[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:E[s-1];for(;y<0;)y+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:E[s-1],l+=i;var z=p(n,s,l,h,y,_,S);return r(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var N=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var n=!1,i=h(e,N);r(i)||(m.addSeconds(e,-1,N),i=h(N,N),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var y=d+2-12*c|0,E=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var g=0|v,R=(v-g)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),n&&(g+=1),r(t)?(t.year=E,t.month=y,t.day=p,t.hour=_,t.minute=T,t.second=g,t.millisecond=R,t.isLeapSecond=n,t):new a(E,y,p,_,T,g,R,n)},m.toDate=function(e){var t=m.toGregorianDate(e,y),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},m.toIso8601=function(t,n){var i=m.toGregorianDate(t,y),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=n},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},m.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},m.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},m.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},m.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return w[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function y(e){return function(t){e.state!==l.CANCELLED&&(--g.numberOfActiveRequests,--w[e.serverKey],I.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function E(e){return function(t){e.state!==l.CANCELLED&&(++g.numberOfFailedRequests,--g.numberOfActiveRequests,--w[e.serverKey],I.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++g.numberOfActiveRequests,++g.numberOfActiveRequestsEver,++w[e.serverKey],e.requestFunction().then(y(e)).otherwise(E(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++g.numberOfCancelledRequests,e.deferred.reject(),t&&(--g.numberOfActiveRequests,--w[e.serverKey],++g.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===g.numberOfActiveRequests&&g.lastNumberOfActiveRequests>0&&(g.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+g.numberOfAttemptedRequests),g.numberOfAttemptedRequests=0),g.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+g.numberOfCancelledRequests),g.numberOfCancelledRequests=0),g.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+g.numberOfCancelledActiveRequests),g.numberOfCancelledActiveRequests=0),g.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+g.numberOfFailedRequests),g.numberOfFailedRequests=0)),g.lastNumberOfActiveRequests=g.numberOfActiveRequests)}var g={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},R=20,A=new u({comparator:f});A.maximumLength=R,A.reserve(R);var S=[],w={},O="undefined"!=typeof document?new e(document.location.href):new e,I=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=I,a(h,{statistics:{get:function(){return g}},priorityHeapLength:{get:function(){return R},set:function(e){if(e<R)for(;A.length>e;){var t=A.pop();v(t)}R=e,A.maximumLength=e,A.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&v(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=A.internalArray,a=A.length;for(e=0;e<a;++e)d(i[e]);A.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&A.length>0;)t=A.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var n=new e(t).resolve(O);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=w[r];return i(a)||(w[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return I.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++g.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=A.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;A.length>0;){v(A.pop())} -for(var e=S.length,t=0;t<e;++t)v(S[t]);S.length=0,w={},g.numberOfAttemptedRequests=0,g.numberOfActiveRequests=0,g.numberOfCancelledRequests=0,g.numberOfCancelledActiveRequests=0,g.numberOfFailedRequests=0,g.numberOfActiveRequestsEver=0,g.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return w[e]},h.requestHeap=A,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R,A,S,w){"use strict";function O(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=n?M(a,t._queryParameters,r):a,e.query=void 0}function I(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=_(n):e.query=r[0]}function N(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function x(e){if(e.state===A.ISSUED||e.state===A.ACTIVE)throw new S("The Resource is already being fetched.");e.state=A.UNISSUED,e.deferred=void 0}function M(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);O(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=R.request(a);if(u(o))return o.otherwise(function(e){return a.state!==A.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function b(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=R.request(a);if(u(o))return o.otherwise(function(i){return a.state!==A.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=A.UNISSUED,a.deferred=void 0,b(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function U(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return U(r,i);case"blob":var a=U(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function F(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(w.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new g(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new g)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);O(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return y(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&I(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);O(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(x(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),x(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;x(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=R.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==A.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=A.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void F(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(w.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new g(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new g)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return E(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var y=e._samples=n.samples,E=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,g=y.length;T<g;T+=e._columnCount){var R=y[T+i],A=y[T+m],S=R+l.MODIFIED_JULIAN_DATE_DIFFERENCE,w=new o(S,A,f.TAI);if(E.push(w),v){if(A!==_&&r(_)){var O=o.leapSeconds,I=t(O,w,d);if(I<0){var N=new u(w,A);O.splice(~I,0,N)}}_=A}}}function m(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function y(e,t,n){return t+e*(n-t)}function E(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return m(e,n,i,s,u),u;if(r.equals(l))return m(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],E=n[d+e._ut1MinusUtcSecondsColumn],_=E-p;if(_>.5||_<-.5){var v=n[h+e._taiMinusUtcSecondsColumn],T=n[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(r)?p=E:E-=T-v)}return u.xPoleWander=y(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=y(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=y(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=y(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=y(f,p,E),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,E(this,a,this._samples,e,s,l,n),n}var y=t(a,e,o.compare,this._dateColumn);return y>=0?(y<a.length-1&&a[y+1].equals(e)&&++y,s=y,l=y):(l=~y,(s=l-1)<0&&(s=0)),this._lastIndex=s,E(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,m,y=a-s*this._stepSizeDays,E=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)E[p]=y-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=E[m]);v[p]*=_[p];var g=3*(s+p);n.x+=v[p]*d[g++],n.y+=v[p]*d[g++],n.s+=v[p]*d[g]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T){"use strict";var g={},R={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},A={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},w={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},O=new n,I=new n,N=new n;g.localFrameToFixedFrameGenerator=function(e,t){if(!R.hasOwnProperty(e)||!R[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=R[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new _),y.equalsEpsilon(r.x,0,y.EPSILON14)&&y.equalsEpsilon(r.y,0,y.EPSILON14)){var c=y.sign(r.z);n.unpack(A[e],0,O),"east"!==e&&"west"!==e&&n.multiplyByScalar(O,c,O),n.unpack(A[t],0,I),"east"!==t&&"west"!==t&&n.multiplyByScalar(I,c,I),n.unpack(A[i],0,N),"east"!==i&&"west"!==i&&n.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,w.up);var l=w.up,h=w.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,w.east),n.cross(l,h,w.north),n.multiplyByScalar(w.up,-1,w.down),n.multiplyByScalar(w.east,-1,w.west),n.multiplyByScalar(w.north,-1,w.south),O=w[e],I=w[t],N=w[i]}return s[0]=O.x,s[1]=O.y,s[2]=O.z,s[3]=0,s[4]=I.x,s[5]=I.y,s[6]=I.z,s[7]=0,s[8]=N.x,s[9]=N.y,s[10]=N.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},g.eastNorthUpToFixedFrame=g.localFrameToFixedFrameGenerator("east","north"),g.northEastDownToFixedFrame=g.localFrameToFixedFrameGenerator("north","east"),g.northUpEastToFixedFrame=g.localFrameToFixedFrameGenerator("north","up"),g.northWestUpToFixedFrame=g.localFrameToFixedFrameGenerator("north","west");var x=new v,M=new n(1,1,1),C=new _;g.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,g.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,x),s=_.fromTranslationQuaternionRotationScale(n.ZERO,u,M,C);return a=i(e,r,a),_.multiply(a,s,a)};var P=new _,b=new E;g.headingPitchRollQuaternion=function(e,t,n,r,i){var a=g.headingPitchRollToFixedFrame(e,t,n,r,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var D=new n(1,1,1),U=new n,L=new _,F=new _,B=new E,z=new v;g.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,g.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,U);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(r(a,t,L),L),c=_.setScale(e,D,F);c=_.setTranslation(c,n.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=y.TWO_PI/86400,G=new m;g.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%y.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new E(h,d,0,-d,h,0,0,0,1)},g.iau2006XysData=new d,g.earthOrientationParameters=c.NONE;g.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=g.iau2006XysData.preload(n,r,i,a),u=g.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},g.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new E);var n=g.computeFixedToIcrfMatrix(e,t);if(u(n))return E.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new E,H=new E;g.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new E);var n=g.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=g.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=E.fromRotationZ(-a.s,H),h=E.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+n.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,R=.779057273264+v+.00273781191135448*(_+v);R=R%1*y.TWO_PI;var A=E.fromRotationZ(R,H),S=E.multiply(h,A,X),w=Math.cos(n.xPoleWander),O=Math.cos(n.yPoleWander),I=Math.sin(n.xPoleWander),N=Math.sin(n.yPoleWander),x=r-2451545+i/T.SECONDS_PER_DAY;x/=36525;var M=-47e-6*x*y.RADIANS_PER_DEGREE/3600,C=Math.cos(M),P=Math.sin(M),b=H;return b[0]=w*C,b[1]=w*P,b[2]=I,b[3]=-O*P+N*I*C,b[4]=O*C+N*I*P,b[5]=-N*w,b[6]=-N*P-O*I*C,b[7]=N*C-O*I*P,b[8]=O*w,E.multiply(S,b,t)}}};var k=new r;g.pointToWindowCoordinates=function(e,t,n,r){return r=g.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},g.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=k;return _.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var Y=new n,j=new n,Z=new n;g.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,Y),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,y.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new E),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new E,te=new _,ne=new _;return g.basisTo2D=function(e,t,r){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=g.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,ne),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,r);return _.multiply(K,f,r),_.setTranslation(r,u,r),r},g.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=g.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,r),_.multiply(c,r,r),r},g}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function y(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}y.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var E=new n,_=new t,v=new f,T=[new n,new n,new n],g=[new e,new e,new e],R=[new e,new e,new e],A=new t,S=new d,w=new f,O=new c;return y._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,E),h=n.toCartesian(s,a,_),y=m.eastNorthUpToFixedFrame(h,a,v),I=f.inverse(y,v),N=g,x=T;x[0].longitude=o.west,x[0].latitude=o.south,x[1].longitude=o.west,x[1].latitude=o.north,x[2].longitude=o.east,x[2].latitude=o.south;var M=A;for(u=0;u<3;u++)n.toCartesian(x[u],a,M),M=f.multiplyByPointAsVector(I,M,M),N[u].x=M.x,N[u].y=M.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,w),b=r.length,D=Number.POSITIVE_INFINITY,U=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)M=f.multiplyByPointAsVector(I,r[u],M),M=l.multiplyByVector(P,M,M),D=Math.min(D,M.x),U=Math.min(U,M.y),L=Math.max(L,M.x),F=Math.max(F,M.y);var B=c.fromRotation(i,O),z=R;z[0].x=D,z[0].y=U,z[1].x=D,z[1].y=F,z[2].x=L,z[2].y=U;var q=N[0],G=N[2].x-q.x,V=N[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],H=z[1],k=z[2],Y=new Array(6);return e.pack(X,Y),e.pack(H,Y,2),e.pack(k,Y,4),Y},y}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,n,r,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*a.signNotZero(r),n.y=(1-Math.abs(r))*a.signNotZero(i)}return n.x=a.toSNorm(n.x,t),n.y=a.toSNorm(n.y,t),n},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,n,r,i){if(i.x=a.fromSNorm(e,r),i.y=a.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,n){return s.octDecodeInRange(e,t,255,n)},s.octDecodeFromCartesian4=function(e,t){var n=e.x,r=e.y,i=e.z,a=e.w,o=256*n+r,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var n=e/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,t)},s.octPack=function(e,t,n,r){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(n,f);return r.x=65536*o.x+i,r.y=65536*o.y+a,r},s.octUnpack=function(e,t,n,r){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,n),s.octDecode(a,u,r)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var n=e/4096,r=Math.floor(n);return t.x=r/4095,t.y=(e-4096*r)/4095,t},s.zigZagDeltaDecode=function(e,t,n){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,n,r,i){"use strict";function a(n,a,c,l,f){r(f)||(f=new t);var h,d,p,m,y,E,_,v;if(r(a.z)){if(t.equalsEpsilon(n,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(n,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(n,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(n,a,s),m=t.dot(h,h),y=t.dot(h,d),E=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(n,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(n,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(n,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(n,a,s),m=e.dot(h,h),y=e.dot(h,d),E=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-y*y,g=1/T;return f.y=(_*E-y*v)*g,f.z=(m*v-y*E)*g,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,n){"use strict";function r(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}r.encode=function(e,t){n(t)||(t={high:0,low:0});var r;return e>=0?(r=65536*Math.floor(e/65536),t.high=r,t.low=e-r):(r=65536*Math.floor(-e/65536),t.high=-r,t.low=e+r),t};var i={high:0,low:0};r.fromCartesian=function(e,t){n(t)||(t=new r);var a=t.high,o=t.low;return r.encode(e.x,i),a.x=i.high,o.x=i.low,r.encode(e.y,i),a.y=i.high,o.y=i.low,r.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new r;return r.writeElements=function(e,t,n){r.fromCartesian(e,a);var i=a.high,o=a.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z},r}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,y=u*c-d,E=4*p*y-m*m;if(E<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=y,T=-c*m+2*s*y);var g=T<0?-1:1,R=-g*Math.abs(_)*Math.sqrt(-E);a=-T+R;var A=a/2,S=A<0?-Math.pow(-A,1/3):Math.pow(A,1/3),w=a===R?-S:-v/S;return i=v<=0?S+w:-T/(S*S+w*w+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var O=p,I=-2*u*p+o*m,N=y,x=-c*m+2*s*y,M=Math.sqrt(E),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*M,-I)/3);i=2*Math.sqrt(-O);var b=Math.cos(P);a=i*b;var D=i*(-b/2-C*Math.sin(P)),U=a+D>2*u?a-u:D-u,L=o,F=U/L;P=Math.abs(Math.atan2(c*M,-x)/3),i=2*Math.sqrt(-N),b=Math.cos(P),a=i*b,D=i*(-b/2-C*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-U*z-L*B,W=U*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var m,y=p[0],E=p[1];if(y>=0&&E>=0){var _=Math.sqrt(y),v=Math.sqrt(E);return[h-v,h-_,h+_,h+v]}if(y>=0&&E<0)return m=Math.sqrt(y),[h-m,h+m];if(y<0&&E>=0)return m=Math.sqrt(E),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),g=(s+d-c/T)/2,R=(s+d+c/T)/2,A=r.computeRealRoots(1,T,g),S=r.computeRealRoots(1,-T,R);return 0!==A.length?(A[0]+=h,A[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,A[1]<=S[0]?[A[0],A[1],S[0],S[1]]:S[1]<=A[0]?[S[0],S[1],A[0],A[1]]:A[0]>=S[0]&&A[1]<=S[1]?[S[0],A[0],A[1],S[1]]:S[0]>=A[0]&&S[1]<=A[1]?[A[0],S[0],S[1],A[1]]:A[0]>S[0]&&A[0]<S[1]?[S[0],A[0],S[1],A[1]]:[A[0],S[0],A[1],S[1]]):A):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,y=d[0],E=i-y,_=E*E,v=t/2,T=E/2,g=_-4*o,R=_+4*Math.abs(o),A=c-4*y,S=c+4*Math.abs(y);if(y<0||g*S<A*R){var w=Math.sqrt(A);p=w/2,m=0===w?0:(t*T-a)/w}else{var O=Math.sqrt(g);p=0===O?0:(t*T-a)/O,m=O/2}var I,N;0===v&&0===p?(I=0,N=0):n.sign(v)===n.sign(p)?(I=v+p,N=y/I):(N=v-p,I=y/N);var x,M;0===T&&0===m?(x=0,M=0):n.sign(T)===n.sign(m)?(x=T+m,M=o/x):(M=T-m,x=o/M);var C=r.computeRealRoots(1,I,x),P=r.computeRealRoots(1,N,M);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,R);if(r(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),y=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,E=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),v=[];if(0===_&&0===E){if(l=s.computeRealRoots(p,m,y),0===l.length)return v;var T=l[0],g=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-g)),v.push(new e(i,a*T,a*g)),2===l.length){var R=l[1],A=Math.sqrt(Math.max(1-R*R,0));v.push(new e(i,a*R,a*-A)),v.push(new e(i,a*R,a*A))}return v}var S=_*_,w=E*E,O=p*p,I=_*E,N=O+w,x=2*(m*p+I),M=2*y*p+m*m-w+S,C=2*(y*m-I),P=y*y-S;if(0===N&&0===x&&0===M&&0===C)return v;l=c.computeRealRoots(N,x,M,C,P);var b=l.length;if(0===b)return v;for(var D=0;D<b;++D){var U,L=l[D],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);U=o.sign(p)===o.sign(y)?d(p*F+y,m*L,o.EPSILON12):o.sign(y)===o.sign(m*L)?d(p*F,m*L+y,o.EPSILON12):d(p*F+m*L,y,o.EPSILON12);var q=d(E*L,_,o.EPSILON15),G=U*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++D):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var y=new e,E=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,r,y),g=e.subtract(a,r,E),R=e.cross(p,g,_),A=e.dot(m,R);if(u){if(A<o.EPSILON6)return;if(s=e.subtract(d,r,v),(l=e.dot(s,R))<0||l>A)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>A)return;h=e.dot(g,c)/A}else{if(Math.abs(A)<o.EPSILON6)return;var S=1/A;if(s=e.subtract(d,r,v),(l=e.dot(s,R)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(g,c)*S}return h},m.rayTriangle=function(t,n,i,a,o,u){var s=m.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var g=new l;m.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=g;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var R={root0:0,root1:0};m.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var A=new l;m.lineSegmentSphere=function(t,n,i,a){var o=A;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,w=new e;m.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,w),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,y=r/s;return m<y?new a(m,y):{start:y,stop:m}}var E=Math.sqrt(r/i);return new a(E,E)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var O=new e,I=new e,N=new e,x=new e,M=new e,C=new u,P=new u,b=new u,D=new u,U=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,O);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,O),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,x),d=e.normalize(e.cross(h,f,I),I),m=e.normalize(e.cross(f,d,N),N),y=C;y[0]=f.x,y[1]=f.y,y[2]=f.z,y[3]=d.x,y[4]=d.y,y[5]=d.z,y[6]=m.x,y[7]=m.y,y[8]=m.z;var E=u.transpose(y,P),_=u.fromScale(n.radii,b),v=u.fromScale(n.oneOverRadii,D),T=U;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var g,R,A=u.multiply(u.multiply(E,v,L),T,L),S=u.multiply(u.multiply(A,_,F),y,F),w=u.multiplyByVector(A,i,M),G=p(S,e.negate(w,O),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){g=u.multiplyByVector(_,u.multiplyByVector(y,G[H],B),B);var k=e.normalize(e.subtract(g,i,x),x),Y=e.dot(k,a);Y>X&&(X=Y,W=e.clone(g,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),R=e.magnitude(e.subtract(W,i,x))*Math.sqrt(1-X*X),R=c?-R:R,j.height=R,n.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";var r={};return r.calculateACMR=function(n){n=e(n,e.EMPTY_OBJECT);var r=n.indices,i=n.maximumIndex,a=e(n.cacheSize,24),o=r.length;if(!t(i)){i=0;for(var u=0,s=r[u];u<o;)s>i&&(i=s),++u,s=r[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[r[h]]>a&&(c[r[h]]=f,++f);return(f-a+1)/(o/3)},r.tipsify=function(n){function r(e,t,n,r){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<r;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}n=e(n,e.EMPTY_OBJECT);var i,a=n.indices,o=n.maximumIndex,u=e(n.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var y=0,E=u+1;i=1;var _,v,T=[],g=[],R=0,A=[],S=s/3,w=[];for(d=0;d<S;d++)w[d]=!1;for(var O,I;-1!==y;){T=[],v=p[y],I=v.vertexTriangles.length;for(var N=0;N<I;++N)if(m=v.vertexTriangles[N],!w[m]){w[m]=!0,l=m+m+m;for(var x=0;x<3;++x)O=a[l],T.push(O),g.push(O),A[R]=O,++R,_=p[O],--_.numLiveTriangles,E-_.timeStamp>u&&(_.timeStamp=E,++E),++l}y=function(e,t,n,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<n.length;){var h=n[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?r(i,o,e,u):c}(a,u,T,p,E,g,c)}return A},r}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R,A,S){"use strict";function w(e,t,n,r,i){e[t++]=n,e[t++]=r,e[t++]=r,e[t++]=i,e[t++]=i,e[t]=n}function O(e){for(var t=e.length,n=t/3*6,r=y.createTypedArray(t,n),i=0,a=0;a<t;a+=3,i+=6)w(r,i,e[a],e[a+1],e[a+2]);return r}function I(e){var t=e.length;if(t>=3){var n=6*(t-2),r=y.createTypedArray(t,n);w(r,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)w(r,i,e[a-1],e[a],e[a-2]);return r}return new Uint16Array}function N(e){if(e.length>0){for(var t=e.length-1,n=6*(t-1),r=y.createTypedArray(t,n),i=e[0],a=0,o=1;o<t;++o,a+=6)w(r,a,i,e[o],e[o+1]);return r}return new Uint16Array}function x(e){var t={};for(var n in e)if(e.hasOwnProperty(n)&&c(e[n])&&c(e[n].values)){var r=e[n];t[n]=new p({componentDatatype:r.componentDatatype,componentsPerAttribute:r.componentsPerAttribute,normalize:r.normalize,values:[]})}return t}function M(e,t,n){for(var r in t)if(t.hasOwnProperty(r)&&c(t[r])&&c(t[r].values))for(var i=t[r],a=0;a<i.componentsPerAttribute;++a)e[r].values.push(i.values[n*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var n=t.values,r=n.length,a=0;a<r;a+=3)i.unpack(n,a,se),g.multiplyByPoint(e,se,se),i.pack(se,n,a)}function P(e,t){if(c(t))for(var n=t.values,r=n.length,a=0;a<r;a+=3)i.unpack(n,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,n,a)}function b(e,t){var n,r=e.length,i={},a=e[0][t].attributes;for(n in a)if(a.hasOwnProperty(n)&&c(a[n])&&c(a[n].values)){for(var o=a[n],s=o.values.length,l=!0,f=1;f<r;++f){var h=e[f][t].attributes[n];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[n]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function D(e,t){var r,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,E=b(e,t);for(r in E)if(E.hasOwnProperty(r))for(s=E[r].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[r].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:E,primitiveType:A.POINTS})),g=y.createTypedArray(T,v),R=0,S=0;for(a=0;a<h;++a){var w=e[a][t].indices,O=w.length;for(u=0;u<O;++u)g[R++]=S+w[u];S+=d.computeNumberOfVertices(e[a][t])}_=g}var I,N=new i,x=0;for(a=0;a<h;++a){if(I=e[a][t].boundingSphere,!c(I)){N=void 0;break}i.add(I.center,N,N)}if(c(N))for(i.divideByScalar(N,h,N),a=0;a<h;++a){I=e[a][t].boundingSphere;var M=i.magnitude(i.subtract(I.center,N,fe))+I.radius;M>x&&(x=M)}return new d({attributes:E,indices:_,primitiveType:m,boundingSphere:c(N)?new n(N,x):void 0})}function U(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,t),r=0;r<t;++r)n[r]=r;return e.indices=n,e}function L(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,3*(t-2));n[0]=1,n[1]=0,n[2]=2;for(var r=3,i=3;i<t;++i)n[r++]=i-1,n[r++]=0,n[r++]=i;return e.indices=n,e.primitiveType=A.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,3*(t-2));n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);for(var r=6,i=3;i<t-1;i+=2)n[r++]=i,n[r++]=i-1,n[r++]=i+1,i+2<t&&(n[r++]=i,n[r++]=i+1,n[r++]=i+2);return e.indices=n,e.primitiveType=A.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,t),r=0;r<t;++r)n[r]=r;return e.indices=n,e}function z(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,2*(t-1));n[0]=0,n[1]=1;for(var r=2,i=2;i<t;++i)n[r++]=i-1,n[r++]=i;return e.indices=n,e.primitiveType=A.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),n=y.createTypedArray(t,2*t);n[0]=0,n[1]=1;for(var r=2,i=2;i<t;++i)n[r++]=i-1,n[r++]=i;return n[r++]=t-1,n[r]=0,e.indices=n,e.primitiveType=A.LINES,e}function G(e){switch(e.primitiveType){case A.TRIANGLE_FAN:return L(e);case A.TRIANGLE_STRIP:return F(e);case A.TRIANGLES:return U(e);case A.LINE_STRIP:return z(e);case A.LINE_LOOP:return q(e);case A.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,n){if(0!==e.y&&0!==t.y&&0!==n.y)return V(e,e.y<0),V(t,t.y<0),void V(n,n.y<0);var r,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(n.y);r=i>a?i>o?v.sign(e.y):v.sign(n.y):a>o?v.sign(t.y):v.sign(n.y);var u=r<0;V(e,u),V(t,u),V(n,u)}function X(e,t,n,r){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),n),i.clone(n,r),V(n,!0),V(r,!1)}function H(e,t,n){if(!(e.x>=0||t.x>=0||n.x>=0)){W(e,t,n);var r=e.y<0,i=t.y<0,a=n.y<0,o=0;o+=r?1:0,o+=i?1:0,o+=a?1:0;var u=xe.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,r?(X(e,t,we,Ie),X(e,n,Oe,Ne),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,n,we,Ie),X(t,e,Oe,Ne),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(n,e,we,Ie),X(n,t,Oe,Ne),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,r?i?a||(X(n,e,we,Ie),X(n,t,Oe,Ne),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,n,we,Ie),X(t,e,Oe,Ne),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,we,Ie),X(e,n,Oe,Ne),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=xe.positions;return s[0]=e,s[1]=t,s[2]=n,s.length=3,1!==o&&2!==o||(s[3]=we,s[4]=Oe,s[5]=Ie,s[6]=Ne,s.length=7),xe}}function k(e,t){var r=e.attributes;if(0!==r.position.values.length){for(var i in r)if(r.hasOwnProperty(i)&&c(r[i])&&c(r[i].values)){var a=r[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=y.createTypedArray(o,e.indices),t&&(e.boundingSphere=n.fromVertices(r.position.values)),e}}function Y(e){var t=e.attributes,n={};for(var r in t)if(t.hasOwnProperty(r)&&c(t[r])&&c(t[r].values)){var i=t[r];n[r]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:n,indices:[],primitiveType:e.primitiveType})}function j(e,t,n){var r=c(e.geometry.boundingSphere);t=k(t,r),n=k(n,r),c(n)&&!c(t)?e.geometry=n:!c(n)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function Z(e,t){var n=new e,r=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,n),p=e.fromArray(c,o*t,r),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var y=e.add(d,p,d);e.add(y,m,y),h&&e.normalize(y,y),e.pack(y,l,f*t)}}function K(e,n,r,a,o,u,s,l,f,h,d,p,m,y,E,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==y){var v=i.fromArray(o,3*e,De),T=i.fromArray(o,3*n,Ue),g=i.fromArray(o,3*r,Le),R=t(a,v,T,g,Fe);if(c(u)&&Ce(e,n,r,R,u,p.normal.values,_,!0),c(h)){var A=i.fromArray(h,3*e,De),S=i.fromArray(h,3*n,Ue),w=i.fromArray(h,3*r,Le);i.multiplyByScalar(A,R.x,A),i.multiplyByScalar(S,R.y,S),i.multiplyByScalar(w,R.z,w);var O;i.equals(A,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(w,i.ZERO)?(O=De,O.x=0,O.y=0,O.z=0):(O=i.add(A,S,A),i.add(O,w,O),i.normalize(O,O)),i.pack(O,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,n,r,R,d,p.applyOffset.values,_),c(s)&&Ce(e,n,r,R,s,p.tangent.values,_,!0),c(l)&&Ce(e,n,r,R,l,p.bitangent.values,_,!0),c(f)&&Pe(e,n,r,R,f,p.st.values,_),y>0)for(var I=0;I<y;I++){var N=m[I];J(e,n,r,R,_,E[N],p[N])}}}function J(e,t,n,r,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:Me(e,t,n,r,s,c,i,!1);break;case 3:Ce(e,t,n,r,s,c,i,!1);break;case 2:Pe(e,t,n,r,s,c,i,!1);break;default:c[i]=s[e]*r.x+s[t]*r.y+s[n]*r.z}}function Q(e,t,n,r,i,a){var o=e.position.values.length/3;if(-1!==i){var u=r[i],s=n[u];return-1===s?(n[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,n=t.attributes,r=n.position.values,a=c(n.normal)?n.normal.values:void 0,o=c(n.bitangent)?n.bitangent.values:void 0,u=c(n.tangent)?n.tangent.values:void 0,s=c(n.st)?n.st.values:void 0,l=c(n.extrudeDirection)?n.extrudeDirection.values:void 0,f=c(n.applyOffset)?n.applyOffset.values:void 0,h=t.indices,d=[];for(var p in n)n.hasOwnProperty(p)&&!Be[p]&&c(n[p])&&d.push(p);var m,y,E,_,v,T=d.length,g=Y(t),R=Y(t),A=[];A.length=r.length/3;var S=[];for(S.length=r.length/3,v=0;v<A.length;++v)A[v]=-1,S[v]=-1;var w=h.length;for(v=0;v<w;v+=3){var O=h[v],I=h[v+1],N=h[v+2],x=i.fromArray(r,3*O),M=i.fromArray(r,3*I),C=i.fromArray(r,3*N),P=H(x,M,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,D=P.indices,U=D.length,L=0;L<U;++L){var F=D[L],B=b[F];B.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),_=Q(m,y,E,h,F<3?v+F:-1,B),K(O,I,N,B,r,a,u,o,s,l,f,m,d,T,n,_)}else c(P)&&(x=P.positions[0],M=P.positions[1],C=P.positions[2]),x.y<0?(m=R.attributes,y=R.indices,E=A):(m=g.attributes,y=g.indices,E=S),_=Q(m,y,E,h,v,x),K(O,I,N,x,r,a,u,o,s,l,f,m,d,T,n,_),_=Q(m,y,E,h,v+1,M),K(O,I,N,M,r,a,u,o,s,l,f,m,d,T,n,_),_=Q(m,y,E,h,v+2,C),K(O,I,N,C,r,a,u,o,s,l,f,m,d,T,n,_)}j(e,R,g)}function ee(e,t,n,r,a,o,u){if(c(u)){var s=i.fromArray(r,3*e,De);i.equalsEpsilon(s,n,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,n=e.geometry,r=n.attributes,a=r.position.values,o=c(r.applyOffset)?r.applyOffset.values:void 0,u=n.indices,s=Y(n),l=Y(n),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],y=u[t+1],E=i.fromArray(a,3*m,De),T=i.fromArray(a,3*y,Ue);Math.abs(E.y)<v.EPSILON6&&(E.y<0?E.y=-v.EPSILON6:E.y=v.EPSILON6), -Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var g=s.attributes,R=s.indices,A=d,S=l.attributes,w=l.indices,O=h,I=_.lineSegmentPlane(E,T,ze,Le);if(c(I)){var N=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);E.y<0&&(i.negate(N,N),g=l.attributes,R=l.indices,A=h,S=s.attributes,w=s.indices,O=d);var x=i.add(I,N,Ge);p=Q(g,R,A,u,t,E),ee(m,y,E,a,p,g,o),p=Q(g,R,A,u,-1,x),ee(m,y,x,a,p,g,o),i.negate(N,N),i.add(I,N,x),p=Q(S,w,O,u,-1,x),ee(m,y,x,a,p,S,o),p=Q(S,w,O,u,t+1,T),ee(m,y,T,a,p,S,o)}else{var M,C,P;E.y<0?(M=l.attributes,C=l.indices,P=h):(M=s.attributes,C=s.indices,P=d),p=Q(M,C,P,u,t,E),ee(m,y,E,a,p,M,o),p=Q(M,C,P,u,t+1,T),ee(m,y,T,a,p,M,o)}}j(e,l,s)}function ne(e){for(var t=e.attributes,n=t.position.values,r=t.prevPosition.values,a=t.nextPosition.values,o=n.length,u=0;u<o;u+=3){var s=i.unpack(n,u,Xe);if(!(s.x>0)){var c=i.unpack(r,u,He);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(r[u]=n[u-3],r[u+1]=n[u-2],r[u+2]=n[u-1]):i.pack(s,r,u));var l=i.unpack(a,u,ke);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=n[u+3],a[u+1]=n[u+4],a[u+2]=n[u+5]):i.pack(s,a,u))}}}function re(e){var t,n,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,y=Y(u),E=Y(u),T=!1,g=l.length/3;for(t=0;t<g;t+=4){var R=t,A=t+2,S=i.fromArray(l,3*R,Xe),w=i.fromArray(l,3*A,He);if(Math.abs(S.y)<Qe)for(S.y=Qe*(w.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,n=3*R;n<3*R+12;n+=3)f[n]=l[3*t],f[n+1]=l[3*t+1],f[n+2]=l[3*t+2];if(Math.abs(w.y)<Qe)for(w.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=w.y,l[3*(t+3)+1]=w.y,n=3*R;n<3*R+12;n+=3)h[n]=l[3*(t+2)],h[n+1]=l[3*(t+2)+1],h[n+2]=l[3*(t+2)+2];var O=y.attributes,I=y.indices,N=E.attributes,x=E.indices,M=_.lineSegmentPlane(S,w,ze,Ye);if(c(M)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),O=E.attributes,I=E.indices,N=y.attributes,x=y.indices);var P=i.add(M,C,Ze);O.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.position.values.push(P.x,P.y,P.z),O.position.values.push(P.x,P.y,P.z),O.prevPosition.values.push(f[3*R],f[3*R+1],f[3*R+2]),O.prevPosition.values.push(f[3*R+3],f[3*R+4],f[3*R+5]),O.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),O.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(M,C,P),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(w.x,w.y,w.z,w.x,w.y,w.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(w.x,w.y,w.z,w.x,w.y,w.z),N.nextPosition.values.push(h[3*A],h[3*A+1],h[3*A+2]),N.nextPosition.values.push(h[3*A+3],h[3*A+4],h[3*A+5]);var b=r.fromArray(d,2*R,Ve),D=Math.abs(b.y);O.expandAndWidth.values.push(-1,D,1,D),O.expandAndWidth.values.push(-1,-D,1,-D),N.expandAndWidth.values.push(-1,D,1,D),N.expandAndWidth.values.push(-1,-D,1,-D);var U=i.magnitudeSquared(i.subtract(M,S,ke));if(U/=i.magnitudeSquared(i.subtract(w,S,ke)),c(m)){var L=a.fromArray(m,4*R,Ke),F=a.fromArray(m,4*A,Ke),B=v.lerp(L.x,F.x,U),z=v.lerp(L.y,F.y,U),q=v.lerp(L.z,F.z,U),G=v.lerp(L.w,F.w,U);for(n=4*R;n<4*R+8;++n)O.color.values.push(m[n]);for(O.color.values.push(B,z,q,G),O.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),n=4*A;n<4*A+8;++n)N.color.values.push(m[n])}if(c(p)){var V=r.fromArray(p,2*R,Ve),W=r.fromArray(p,2*(t+3),We),X=v.lerp(V.x,W.x,U);for(n=2*R;n<2*R+4;++n)O.st.values.push(p[n]);for(O.st.values.push(X,V.y),O.st.values.push(X,W.y),N.st.values.push(X,V.y),N.st.values.push(X,W.y),n=2*A;n<2*A+4;++n)N.st.values.push(p[n])}o=O.position.values.length/3-4,I.push(o,o+2,o+1),I.push(o+1,o+2,o+3),o=N.position.values.length/3-4,x.push(o,o+2,o+1),x.push(o+1,o+2,o+3)}else{var H,k;for(S.y<0?(H=E.attributes,k=E.indices):(H=y.attributes,k=y.indices),H.position.values.push(S.x,S.y,S.z),H.position.values.push(S.x,S.y,S.z),H.position.values.push(w.x,w.y,w.z),H.position.values.push(w.x,w.y,w.z),n=3*t;n<3*t+12;++n)H.prevPosition.values.push(f[n]),H.nextPosition.values.push(h[n]);for(n=2*t;n<2*t+8;++n)H.expandAndWidth.values.push(d[n]),c(p)&&H.st.values.push(p[n]);if(c(m))for(n=4*t;n<4*t+16;++n)H.color.values.push(m[n]);o=H.position.values.length/3-4,k.push(o,o+2,o+1),k.push(o+1,o+2,o+3)}}T&&(ne(E),ne(y)),j(e,E,y)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case A.TRIANGLES:e.indices=O(t);break;case A.TRIANGLE_STRIP:e.indices=I(t);break;case A.TRIANGLE_FAN:e.indices=N(t)}e.primitiveType=A.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,r){t=s(t,"normal"),r=s(r,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*r,l[f++]=i[h+1]+a[h+1]*r,l[f++]=i[h+2]+a[h+2]*r;var m,y=e.boundingSphere;return c(y)&&(m=new n(y.center,y.radius+r)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:A.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,n=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],r=e.attributes,i={},a=0,o=n.length;for(t=0;t<o;++t){var u=n[t];c(r[u])&&(i[u]=a++)}for(var s in r)r.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),n=e.indices;if(c(n)){for(var r=new Int32Array(t),i=0;i<t;i++)r[i]=-1;for(var a,o=n,s=o.length,l=y.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=r[o[f]],-1!==a?l[h]=a:(a=o[f],r[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var E in m)if(m.hasOwnProperty(E)&&c(m[E])&&c(m[E].values)){for(var _=m[E],v=_.values,T=0,g=_.componentsPerAttribute,R=u.createTypedArray(_.componentDatatype,p*g);T<t;){var A=r[T];if(-1!==A)for(var S=0;S<g;S++)R[g*A+S]=v[g*T+S];++T}_.values=R}}return e},ie.reorderForPostVertexCache=function(e,t){var n=e.indices;if(e.primitiveType===A.TRIANGLES&&c(n)){for(var r=n.length,i=0,a=0;a<r;a++)n[a]>i&&(i=n[a]);e.indices=S.tipsify({indices:n,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],n=d.computeNumberOfVertices(e);if(c(e.indices)&&n>=v.SIXTY_FOUR_KILOBYTES){var r,i=[],a=[],o=0,u=x(e.attributes),s=e.indices,l=s.length;e.primitiveType===A.TRIANGLES?r=3:e.primitiveType===A.LINES?r=2:e.primitiveType===A.POINTS&&(r=1);for(var f=0;f<l;f+=r){for(var h=0;h<r;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,M(u,e.attributes,p)),a.push(m)}o+r>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=x(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,n,r,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var y=i.fromArray(l,m,ae),E=s.cartesianToCartographic(y,oe),_=a.project(E,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[n]=o,e.attributes[r]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,n,r){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new g,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(g.equals(t,g.IDENTITY))return e;var r=e.geometry.attributes;C(t,r.position),C(t,r.prevPosition),C(t,r.nextPosition),(c(r.normal)||c(r.tangent)||c(r.bitangent))&&(g.inverse(t,ce),g.transpose(ce,ce),g.getRotation(ce,le),P(le,r.normal),P(le,r.tangent),P(le,r.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=n.transform(i,t,i)),e.modelMatrix=g.clone(g.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],n=[],r=e.length,i=0;i<r;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&n.push(a)}var o=[];return t.length>0&&o.push(D(t,"geometry")),n.length>0&&(o.push(D(n,"westHemisphereGeometry")),o.push(D(n,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,n=e.indices,r=e.attributes,a=r.position.values,o=r.position.values.length/3,s=n.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=n[t],m=n[t+1],y=n[t+2],E=3*d,_=3*m,T=3*y;de.x=a[E],de.y=a[E+1],de.z=a[E+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[y].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var g=0;for(t=0;t<o;t++)c[t].indexOffset+=g,g+=c[t].count;h=0;var R;for(t=0;t<s;t+=3){R=c[n[t]];var A=R.indexOffset+R.currentCount;f[A]=h,R.currentCount++,R=c[n[t+1]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,R=c[n[t+2]],A=R.indexOffset+R.currentCount,f[A]=h,R.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var w=3*t;if(R=c[t],i.clone(i.ZERO,he),R.count>0){for(h=0;h<R.count;h++)i.add(he,l[f[R.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[R.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),S[w]=he.x,S[w+1]=he.y,S[w+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var ye=new i,Ee=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,n=(e.attributes,e.indices),r=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=n.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=n[t],y=n[t+1],E=n[t+2];f=3*m,h=3*y,d=3*E;var _=2*m,v=2*y,T=2*E,g=r[f],R=r[f+1],A=r[f+2],S=o[_],w=o[_+1],O=o[v+1]-w,I=o[T+1]-w,N=1/((o[v]-S)*I-(o[T]-S)*O),x=(I*(r[h]-g)-O*(r[d]-g))*N,M=(I*(r[h+1]-R)-O*(r[d+1]-R))*N,C=(I*(r[h+2]-A)-O*(r[d+2]-A))*N;l[f]+=x,l[f+1]+=M,l[f+2]+=C,l[h]+=x,l[h+1]+=M,l[h+2]+=C,l[d]+=x,l[d+1]+=M,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var D=i.fromArray(a,f,ye),U=i.fromArray(l,f,_e),L=i.dot(D,U);i.multiplyByScalar(D,L,Ee),i.normalize(i.subtract(U,Ee,U),U),P[f]=U.x,P[h]=U.y,P[d]=U.z,i.normalize(i.cross(D,U,U),U),b[f]=U.x,b[h]=U.y,b[d]=U.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new r,Te=new i,ge=new i,Re=new i,Ae=new r;ie.compressVertices=function(t){var n,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(n=0;n<a;++n)i.fromArray(s,3*n,Te),i.equals(Te,i.ZERO)?f+=2:(Ae=e.octEncodeInRange(Te,65535,Ae),l[f++]=Ae.x,l[f++]=Ae.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),y=c(d);if(!m&&!y)return t;var E,_,v,T,g=t.attributes.tangent,R=t.attributes.bitangent,A=c(g),S=c(R);m&&(E=h.values),y&&(_=d.values),A&&(v=g.values),S&&(T=R.values),a=(m?E.length:_.length)/(m?3:2);var w=a,O=y&&m?2:1;O+=A||S?1:0,w*=O;var I=new Float32Array(w),N=0;for(n=0;n<a;++n){y&&(r.fromArray(_,2*n,ve),I[N++]=e.compressTextureCoordinates(ve));var x=3*n;m&&c(v)&&c(T)?(i.fromArray(E,x,Te),i.fromArray(v,x,ge),i.fromArray(T,x,Re),e.octPack(Te,ge,Re,ve),I[N++]=ve.x,I[N++]=ve.y):(m&&(i.fromArray(E,x,Te),I[N++]=e.octEncodeFloat(Te)),A&&(i.fromArray(v,x,Te),I[N++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,x,Te),I[N++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:O,values:I}),m&&delete t.attributes.normal,y&&delete t.attributes.st,S&&delete t.attributes.bitangent,A&&delete t.attributes.tangent,t};var Se=new i,we=new i,Oe=new i,Ie=new i,Ne=new i,xe={positions:new Array(7),indices:new Array(9)},Me=Z(a,4),Ce=Z(i,3),Pe=Z(r,2),be=function(e,t,n,r,i,a,o){var u=i[e]*r.x,s=i[t]*r.y,c=i[n]*r.z;a[o]=u+s+c>v.EPSILON6?1:0},De=new i,Ue=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=R.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new r,We=new r,Xe=new i,He=new i,ke=new i,Ye=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,r=t.boundingSphere;if(c(r)){if(r.center.x-r.radius>0||n.intersectPlane(r,R.ORIGIN_ZX_PLANE)!==E.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:re(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===A.TRIANGLES?$(e):t.primitiveType===A.LINES&&te(e);return e},ie}),define("Core/oneTimeWarning",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){t(i[n])||(i[n]=!0,console.warn(e(r,n)))}var i={};return r.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.",r.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored",r.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored",r.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored",r}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,y;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var E=i;E<o;E+=i)p=e[E],m=e[E+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);y=Math.max(h-l,d-f)}return r(u,c,i,l,f,y),c}function t(e,t,n,r,i){var a,o;if(i===N(e,t,n,r)>0)for(a=t;a<n;a+=r)o=w(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=w(a,e[a],e[a+1],o);return o&&v(o,o.next)&&(O(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!v(r,r.next)&&0!==_(r.prev,r,r.next))r=r.next;else{if(O(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,y=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),O(e),e=m.next,y=m.next;else if((e=m)===y){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(_(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(y(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&y(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!v(i,a)&&T(i,r,r.next,a)&&R(i,a)&&R(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),O(r),O(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&E(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&y(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&R(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function y(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function E(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!g(e,t)&&R(e,t)&&R(t,e)&&A(e,t)}function _(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function v(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,n,r){return!!(v(e,t)&&v(n,r)||v(e,r)&&v(n,t))||_(e,t,n)>0!=_(e,t,r)>0&&_(n,r,e)>0!=_(n,r,t)>0}function g(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&T(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function R(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function A(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new I(e.i,e.x,e.y),r=new I(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function w(e,t,n,r){var i=new I(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function O(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function I(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function N(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(N(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(N(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),m=Math.cos(2*r),y=Math.sin(4*r),E=Math.cos(4*r),_=Math.sin(6*r),v=Math.cos(6*r),T=Math.sin(8*r),g=Math.cos(8*r),R=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*m+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*E+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*v+(1097*r*h/65536+42783*r*d/1048576)*g+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*y+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*R+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,_),E),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function m(e,n,r,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var y=f(o,e.latitude),E=f(o,d);p=Math.tan(n)*(E-y),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var v=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-m*v*v)}p=r/_,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function y(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var E=new e,_=new e;return a(y.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),y.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var E=m(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new y(e,E,c):(o.setEndPoints(e,E),o)},y.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},y.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},y.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},y.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=r*Math.sin(c),y=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(y/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},y.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},y}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new n,y=new n,E={};E.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},E.computeWindingOrder2D=function(e){return E.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},E.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var _=new n,v=new n,T=new n,g=new n,R=new n,A=new n,S=new n;E.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,m=new Array(3*p),y=0;for(s=0;s<p;s++){var E=t[s];m[y++]=E.x,m[y++]=E.y,m[y++]=E.z}for(var w=[],O={},I=e.maximumRadius,N=h.chordLength(i,I),x=N*N;c.length>0;){var M,C,P=c.pop(),b=c.pop(),D=c.pop(),U=n.fromArray(m,3*D,_),L=n.fromArray(m,3*b,v),F=n.fromArray(m,3*P,T),B=n.multiplyByScalar(n.normalize(U,g),I,g),z=n.multiplyByScalar(n.normalize(L,R),I,R),q=n.multiplyByScalar(n.normalize(F,A),I,A),G=n.magnitudeSquared(n.subtract(B,z,S)),V=n.magnitudeSquared(n.subtract(z,q,S)),W=n.magnitudeSquared(n.subtract(q,B,S)),X=Math.max(G,V,W);X>x?G===X?(M=Math.min(D,b)+" "+Math.max(D,b),s=O[M],u(s)||(C=n.add(U,L,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(D,s,P),c.push(s,b,P)):V===X?(M=Math.min(b,P)+" "+Math.max(b,P),s=O[M],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(b,s,D),c.push(s,P,D)):W===X&&(M=Math.min(P,D)+" "+Math.max(P,D),s=O[M],u(s)||(C=n.add(F,U,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,O[M]=s),c.push(P,s,b),c.push(s,D,b)):(w.push(D),w.push(b),w.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:w,primitiveType:d.TRIANGLES})};var w=new r,O=new r,I=new r,N=new r;return E.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),m=t.length,y=new Array(3*m),E=0;for(s=0;s<m;s++){var g=t[s];y[E++]=g.x,y[E++]=g.y,y[E++]=g.z}for(var R=[],A={},x=e.maximumRadius,M=h.chordLength(i,x),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),U=p.pop(),L=p.pop(),F=n.fromArray(y,3*L,_),B=n.fromArray(y,3*U,v),z=n.fromArray(y,3*D,T),q=e.cartesianToCartographic(F,w),G=e.cartesianToCartographic(B,O),V=e.cartesianToCartographic(z,I);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;b.setEndPoints(V,q);var H,k,Y,j,Z=b.surfaceDistance,K=Math.max(W,X,Z);K>M?W===K?(H=Math.min(L,U)+" "+Math.max(L,U),s=A[H],u(s)||(k=C.interpolateUsingFraction(.5,N),Y=.5*(q.height+G.height),j=n.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[H]=s),p.push(L,s,D),p.push(s,U,D)):X===K?(H=Math.min(U,D)+" "+Math.max(U,D),s=A[H],u(s)||(k=P.interpolateUsingFraction(.5,N),Y=.5*(G.height+V.height),j=n.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[H]=s),p.push(U,s,L),p.push(s,D,L)):Z===K&&(H=Math.min(D,L)+" "+Math.max(D,L),s=A[H],u(s)||(k=b.interpolateUsingFraction(.5,N),Y=.5*(V.height+q.height),j=n.fromRadians(k.longitude,k.latitude,Y,e,S),y.push(j.x,j.y,j.z),s=y.length/3-1,A[H]=s),p.push(D,s,U),p.push(s,L,U)):(R.push(L),R.push(U),R.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:y})},indices:R,primitiveType:d.TRIANGLES})},E.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=m,c=y;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},E}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,y=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(y,u),l=Math.max(y,l)}var E=n.minimum;E.x=i,E.y=o,E.z=u;var _=n.maximum;return _.x=s,_.y=c,_.z=l,n.center=e.midpoint(E,_,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){ -"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,y)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,y));var i=n.fromCartesian4(f.getColumn(r,2,y));this._plane=h.fromPointNormal(e,i)}var y=new r;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var E=new e;m.fromPoints=function(t,n){return new m(e.fromPoints(t,E).center,n)};var _=new d,v=new n;m.prototype.projectPointOntoPlane=function(e,r){var i=_;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,v);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},m.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=_;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,v);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,v));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var T=new n;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=T;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),m=t/4,y=m*m,E=y*m,_=y*y,v=1+m-3*y/4+5*E/4-175*_/64,T=1-m+15*y/8-35*E/8,g=1-3*m+35*y/4,R=1-5*m,A=v*l-T*Math.sin(2*l)*m/2-g*Math.sin(4*l)*y/16-R*Math.sin(6*l)*E/48-5*Math.sin(8*l)*_/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=m,S.u4Over16=y,S.u6Over64=E,S.u8Over256=_,S.a0=v,S.a1=T,S.a2=g,S.a3=R,S.distanceRatio=A}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,m=a-r,y=Math.atan((1-p)*Math.tan(i)),E=Math.atan((1-p)*Math.tan(o)),_=Math.cos(y),v=Math.sin(y),T=Math.cos(E),g=Math.sin(E),R=_*T,A=_*g,S=v*g,w=v*T,O=m,I=u.TWO_PI,N=Math.cos(O),x=Math.sin(O);do{N=Math.cos(O),x=Math.sin(O);var M=A-w*N;f=Math.sqrt(T*T*x*x+M*M),c=S+R*N,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=R*x/f,h=1-C*C),I=O,d=c-2*S/h,isNaN(d)&&(d=0),O=m+l(p,C,h,s,f,c,d)}while(Math.abs(O-I)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),b=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,U=d*d,L=D*f*(d+D*(c*(2*U-1)-D*d*(4*f*f-3)*(4*U-3)/6)/4),F=n*b*(s-L),B=Math.atan2(T*x,A-w*N),z=Math.atan2(_*x,A*N-w);e._distance=F,e._startHeading=B,e._endHeading=z,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,m),p),e.normalize(a.cartographicToCartesian(i,m),m);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,m=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,m=a*p,y=r.u8Over256,E=r.u2Over4,_=r.u6Over64,v=r.u4Over16,T=2*m*y*o/3+a*(1-E+7*v/4-15*_/4+579*y/64-(v-15*_/4+187*y/16)*o-(5*_/4-115*y/16)*u-29*y*s/16)+(E/2-v+71*_/32-85*y/16)*c+(5*v/16-5*_/4+383*y/96)*f-p*((_-11*y/2)*c+5*y*f/2)+(29*_/96-29*y/16)*h+539*y*d/1536,g=Math.asin(Math.sin(T)*r.cosineAlpha),R=Math.atan(r.a/r.b*Math.tan(g));T-=r.sigma;var A=Math.cos(2*r.sigma+T),S=Math.sin(T),w=Math.cos(T),O=r.cosineU*w,I=r.sineU*S,N=Math.atan2(S*r.sineHeading,O-I*r.cosineHeading),x=N-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,T,S,w,A);return i(n)?(n.longitude=this._start.longitude+x,n.latitude=R,n.height=0,n):new t(this._start.longitude+x,R,0)},d}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=O;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,M),l=i.scaleToGeodeticSurface(n,C),f=y.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,I),p=i.cartesianToCartographic(l,N),m=d(f,a,o);P.setEndPoints(h,p);var E=P.surfaceDistance/f,_=s;h.height=a;var v=i.cartographicToCartesian(h,x);e.pack(v,u,_),_+=3;for(var T=1;T<f;T++){var g=P.interpolateUsingSurfaceDistance(T*E,N);g.height=m[T],v=i.cartographicToCartesian(g,x),e.pack(v,u,_),_+=3}return _}function m(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,M),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,I),p=i.cartesianToCartographic(f,N),m=y.numberOfPointsRhumbLine(h,p,r),E=d(m,a,o);b.ellipsoid.equals(i)||(b=new u(void 0,void 0,i)),b.setEndPoints(h,p);var _=b.surfaceDistance/m,v=c;h.height=a;var T=i.cartographicToCartesian(h,x);e.pack(T,s,v),v+=3;for(var g=1;g<m;g++){var R=b.interpolateUsingSurfaceDistance(g*_,N);R.height=E[g],T=i.cartographicToCartesian(R,x),e.pack(T,s,v),v+=3}return v}var y={};y.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},y.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var E=new t;y.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,E).height}return r};var _=new f,v=new e,T=new e,g=new h(e.UNIT_X,0),R=new e,A=new h(e.UNIT_X,0),S=new e,w=new e,O=[],I=new t,N=new t,x=new e,M=new e,C=new e,P=new o,b=new u;y.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,_),c=f.multiplyByPoint(u,e.ZERO,v),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,T),T),d=h.fromPointNormal(c,l,g),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,R),R),m=h.fromPointNormal(c,p,A),y=1;a.push(e.clone(t[0]));for(var E=a[0],O=t.length,I=1;I<O;++I){var N=t[I];if(h.getPointDistance(m,E)<0||h.getPointDistance(m,N)<0){var x=s.lineSegmentPlane(E,N,d,S);if(r(x)){var M=e.multiplyByScalar(l,5e-9,w);h.getPointDistance(d,E)<0&&e.negate(M,M),a.push(e.add(x,M,new e)),o.push(y+1),e.negate(M,M),a.push(e.add(x,M,new e)),y=1}}a.push(e.clone(t[I])),y++,E=N}o.push(y)}return{positions:a,lengths:o}},y.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],M);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,x);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var m=t.minDistance;if(!r(m)){var E=n(t.granularity,l.RADIANS_PER_DEGREE);m=l.chordLength(E,u.maximumRadius)}var _,v=0;for(_=0;_<o-1;_++)v+=y.numberOfPoints(i[_],i[_+1],m);var T=3*(v+1),g=new Array(T),R=0;for(_=0;_<o-1;_++){R=p(i[_],i[_+1],m,u,f?s[_]:s,f?s[_+1]:s,g,R)}O.length=0;var A=i[o-1],S=u.cartesianToCartographic(A,I);S.height=f?s[o-1]:s;var w=u.cartographicToCartesian(S,x);return e.pack(w,g,T-3),g};var D=new t,U=new t;return y.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],M);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,x);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var E,_,v=n(i.granularity,l.RADIANS_PER_DEGREE),T=0,g=s.cartesianToCartographic(o[0],D);for(E=0;E<u-1;E++)_=s.cartesianToCartographic(o[E+1],U),T+=y.numberOfPointsRhumbLine(g,_,v),g=t.clone(_,D);var R=3*(T+1),A=new Array(R),S=0;for(E=0;E<u-1;E++){S=m(o[E],o[E+1],v,s,h?f[E]:f,h?f[E+1]:f,A,S)}O.length=0;var w=o[u-1],N=s.cartesianToCartographic(w,I);N.height=h?f[u-1]:f;var C=s.cartographicToCartesian(N,x);return e.pack(C,A,R-3),A},y.generateCartesianArc=function(t){for(var n=y.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},y.generateCartesianRhumbArc=function(t){for(var n=y.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},y}),define("Core/PolylineVolumeGeometryLibrary",["./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./CornerType","./EllipsoidTangentPlane","./Math","./Matrix3","./Matrix4","./PolylinePipeline","./Quaternion","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++){var i=e[r];b=t.cartesianToCartographic(i,b),n[r]=b.height,e[r]=t.scaleToGeodeticSurface(i,i)}return n}function d(e,n,r,i){var a,o=e[0],u=e[1],s=t.angleBetween(o,u),c=Math.ceil(s/i),l=new Array(c);if(n===r){for(a=0;a<c;a++)l[a]=n;return l.push(r),l}var f=r-n,h=f/c;for(a=1;a<c;a++){var d=n+a*h;l[a]=d}return l[0]=n,l.push(r),l}function p(n,r,i,o){var u=new a(i,o),s=u.projectPointOntoPlane(t.add(i,n,D),D),c=u.projectPointOntoPlane(t.add(i,r,U),U),l=e.angleBetween(s,c);return c.x*s.y-c.y*s.x>=0?-l:l}function m(e,n,r,i,a,o,c,l){var h=G,d=V;F=f.eastNorthUpToFixedFrame(e,a,F),h=s.multiplyByPointAsVector(F,L,h),h=t.normalize(h,h);var m=p(h,n,e,a);z=u.fromRotationZ(m,z),W.z=o,F=s.multiplyTransformation(F,s.fromRotationTranslation(z,W,B),F);var y=q;y[0]=c;for(var E=0;E<l;E++)for(var _=0;_<r.length;_+=3)d=t.fromArray(r,_,d),d=u.multiplyByVector(y,d,d),d=s.multiplyByPoint(F,d,d),i.push(d.x,d.y,d.z);return i}function y(e,n,r,i,a,o,u){for(var s=0;s<e.length;s+=3){i=m(t.fromArray(e,s,X),n,r,i,a,o[s/3],u,1)}return i}function E(e,t){var n=e.length,r=new Array(6*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=e[0];r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o;for(var s=1;s<n;s++){u=e[s];var c=u.x-a,l=u.y-o;r[i++]=c,r[i++]=0,r[i++]=l,r[i++]=c,r[i++]=0,r[i++]=l}return u=e[0],r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o,r}function _(e,t){for(var n=e.length,r=new Array(3*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=0;u<n;u++)r[i++]=e[u].x-a,r[i++]=0,r[i++]=e[u].y-o;return r}function v(e,n,r,a,s,c,f,h,d,p){var y,E=t.angleBetween(t.subtract(n,e,M),t.subtract(r,e,C)),_=a===i.BEVELED?0:Math.ceil(E/o.toRadians(5));y=s?u.fromQuaternion(l.fromAxisAngle(t.negate(e,M),E/(_+1),H),Y):u.fromQuaternion(l.fromAxisAngle(e,E/(_+1),H),Y);var v,T;if(n=t.clone(n,k),_>0)for(var g=p?2:1,R=0;R<_;R++)n=u.multiplyByVector(y,n,n),v=t.subtract(n,e,M),v=t.normalize(v,v),s||(v=t.negate(v,v)),T=c.scaleToGeodeticSurface(n,C),f=m(T,v,h,f,c,d,1,g);else v=t.subtract(n,e,M),v=t.normalize(v,v),s||(v=t.negate(v,v)),T=c.scaleToGeodeticSurface(n,C),f=m(T,v,h,f,c,d,1,1),r=t.clone(r,k),v=t.subtract(r,e,M),v=t.normalize(v,v),s||(v=t.negate(v,v)),T=c.scaleToGeodeticSurface(r,C),f=m(T,v,h,f,c,d,1,1);return f}var T=[new t,new t],g=new t,R=new t,A=new t,S=new t,w=new t,O=new t,I=new t,N=new t,x=new t,M=new t,C=new t,P={},b=new r,D=new t,U=new t,L=new t(-1,0,0),F=new s,B=new s,z=new u,q=u.IDENTITY.clone(),G=new t,V=new n,W=new t,X=new t,H=new l,k=new t,Y=new u;P.removeDuplicatesFromShape=function(t){for(var n=t.length,r=[],i=n-1,a=0;a<n;i=a++){var o=t[i],u=t[a];e.equals(o,u)||r.push(u)}return r},P.angleIsGreaterThanPi=function(e,n,r,i){var o=new a(r,i),u=o.projectPointOntoPlane(t.add(r,e,D),D),s=o.projectPointOntoPlane(t.add(r,n,U),U);return s.x*u.y-s.y*u.x>=0};var j=new t,Z=new t;return P.computePositions=function(e,n,r,a,u){var s=a._ellipsoid,l=h(e,s),f=a._granularity,p=a._cornerType,C=u?E(n,r):_(n,r),b=u?_(n,r):void 0,D=r.height/2,U=r.width/2,L=e.length,F=[],B=u?[]:void 0,z=g,q=R,G=A,V=S,W=w,X=O,H=I,k=N,Y=x,K=e[0],J=e[1];V=s.geodeticSurfaceNormal(K,V),z=t.subtract(J,K,z),z=t.normalize(z,z),k=t.cross(V,z,k),k=t.normalize(k,k);var Q=l[0],$=l[1];u&&(B=m(K,k,b,B,s,Q+D,1,1)),Y=t.clone(K,Y),K=J,q=t.negate(z,q);for(var ee,te,ne=1;ne<L-1;ne++){var re=u?2:1;J=e[ne+1],z=t.subtract(J,K,z),z=t.normalize(z,z),G=t.add(z,q,G),G=t.normalize(G,G),V=s.geodeticSurfaceNormal(K,V);var ie=t.multiplyByScalar(V,t.dot(z,V),j);t.subtract(z,ie,ie),t.normalize(ie,ie);var ae=t.multiplyByScalar(V,t.dot(q,V),Z);t.subtract(q,ae,ae),t.normalize(ae,ae);if(!o.equalsEpsilon(Math.abs(t.dot(ie,ae)),1,o.EPSILON7)){G=t.cross(G,V,G),G=t.cross(V,G,G),G=t.normalize(G,G);var oe=1/Math.max(.25,t.magnitude(t.cross(G,q,M))),ue=P.angleIsGreaterThanPi(z,q,K,s);ue?(W=t.add(K,t.multiplyByScalar(G,oe*U,G),W),X=t.add(W,t.multiplyByScalar(k,U,X),X),T[0]=t.clone(Y,T[0]),T[1]=t.clone(X,T[1]),ee=d(T,Q+D,$+D,f),te=c.generateArc({positions:T,granularity:f,ellipsoid:s}),F=y(te,k,C,F,s,ee,1),k=t.cross(V,z,k),k=t.normalize(k,k),H=t.add(W,t.multiplyByScalar(k,U,H),H),p===i.ROUNDED||p===i.BEVELED?v(W,X,H,p,ue,s,F,C,$+D,u):(G=t.negate(G,G),F=m(K,G,C,F,s,$+D,oe,re)),Y=t.clone(H,Y)):(W=t.add(K,t.multiplyByScalar(G,oe*U,G),W),X=t.add(W,t.multiplyByScalar(k,-U,X),X),T[0]=t.clone(Y,T[0]),T[1]=t.clone(X,T[1]),ee=d(T,Q+D,$+D,f),te=c.generateArc({positions:T,granularity:f,ellipsoid:s}),F=y(te,k,C,F,s,ee,1),k=t.cross(V,z,k),k=t.normalize(k,k),H=t.add(W,t.multiplyByScalar(k,-U,H),H),p===i.ROUNDED||p===i.BEVELED?v(W,X,H,p,ue,s,F,C,$+D,u):F=m(K,G,C,F,s,$+D,oe,re),Y=t.clone(H,Y)),q=t.negate(z,q)}else F=m(Y,k,C,F,s,Q+D,1,1),Y=K;Q=$,$=l[ne+1],K=J}T[0]=t.clone(Y,T[0]),T[1]=t.clone(K,T[1]),ee=d(T,Q+D,$+D,f),te=c.generateArc({positions:T,granularity:f,ellipsoid:s}),F=y(te,k,C,F,s,ee,1),u&&(B=m(K,k,b,B,s,$+D,1,1)),L=F.length;var se=u?L+B.length:L,ce=new Float64Array(se);return ce.set(F),u&&ce.set(B,L),ce},P}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/PolylineVolumeGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CornerType","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryPipeline","./IndexDatatype","./Math","./oneTimeWarning","./PolygonPipeline","./PolylineVolumeGeometryLibrary","./PrimitiveType","./VertexFormat","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,y,E,_,v,T,g,R){"use strict";function A(e,t,r,i){var o=new d;i.position&&(o.position=new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:e}));var u,s,c,l,y,v,g=t.length,R=e.length/3,A=(R-2*g)/(2*g),S=_.triangulate(t),w=(A-1)*g*6+2*S.length,O=m.createTypedArray(R,w),I=2*g,N=0;for(u=0;u<A-1;u++){for(s=0;s<g-1;s++)c=2*s+u*g*2,v=c+I,l=c+1,y=l+I,O[N++]=l,O[N++]=c,O[N++]=y,O[N++]=y,O[N++]=c,O[N++]=v;c=2*g-2+u*g*2,l=c+1,y=l+I,v=c+I,O[N++]=l,O[N++]=c,O[N++]=y,O[N++]=y,O[N++]=c,O[N++]=v}if(i.st||i.tangent||i.bitangent){var x,M,C=new Float32Array(2*R),P=1/(A-1),b=1/r.height,D=r.height/2,U=0;for(u=0;u<A;u++){for(x=u*P,M=b*(t[0].y+D),C[U++]=x,C[U++]=M,s=1;s<g;s++)M=b*(t[s].y+D),C[U++]=x,C[U++]=M,C[U++]=x,C[U++]=M;M=b*(t[0].y+D),C[U++]=x,C[U++]=M}for(s=0;s<g;s++)x=0,M=b*(t[s].y+D),C[U++]=x,C[U++]=M;for(s=0;s<g;s++)x=(A-1)*P,M=b*(t[s].y+D),C[U++]=x,C[U++]=M;o.st=new h({componentDatatype:a.FLOAT,componentsPerAttribute:2,values:new Float32Array(C)})}var L=R-2*g;for(u=0;u<S.length;u+=3){var F=S[u]+L,B=S[u+1]+L,z=S[u+2]+L;O[N++]=F,O[N++]=B,O[N++]=z,O[N++]=z+g,O[N++]=B+g,O[N++]=F+g}var q=new f({attributes:o,indices:O,boundingSphere:n.fromVertices(e),primitiveType:T.TRIANGLES});if(i.normal&&(q=p.computeNormal(q)),i.tangent||i.bitangent){try{q=p.computeTangentAndBitangent(q)}catch(e){E("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(q.attributes.tangent=void 0),i.bitangent||(q.attributes.bitangent=void 0),i.st||(q.attributes.st=void 0)}return q}function S(e){e=u(e,u.EMPTY_OBJECT);var t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=l.clone(u(e.ellipsoid,l.WGS84)),this._cornerType=u(e.cornerType,o.ROUNDED),this._vertexFormat=g.clone(u(e.vertexFormat,g.DEFAULT)),this._granularity=u(e.granularity,y.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";var a=1+t.length*i.packedLength;a+=1+n.length*r.packedLength,this.packedLength=a+l.packedLength+g.packedLength+2}S.pack=function(e,t,n){n=u(n,0);var a,o=e._positions,s=o.length;for(t[n++]=s,a=0;a<s;++a,n+=i.packedLength)i.pack(o[a],t,n);var c=e._shape;for(s=c.length,t[n++]=s,a=0;a<s;++a,n+=r.packedLength)r.pack(c[a],t,n);return l.pack(e._ellipsoid,t,n),n+=l.packedLength,g.pack(e._vertexFormat,t,n),n+=g.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var w=l.clone(l.UNIT_SPHERE),O=new g,I={polylinePositions:void 0,shapePositions:void 0,ellipsoid:w,vertexFormat:O,cornerType:void 0,granularity:void 0};S.unpack=function(e,t,n){t=u(t,0);var a,o=e[t++],c=new Array(o);for(a=0;a<o;++a,t+=i.packedLength)c[a]=i.unpack(e,t);o=e[t++];var f=new Array(o);for(a=0;a<o;++a,t+=r.packedLength)f[a]=r.unpack(e,t);var h=l.unpack(e,t,w);t+=l.packedLength;var d=g.unpack(e,t,O);t+=g.packedLength;var p=e[t++],m=e[t];return s(n)?(n._positions=c,n._shape=f,n._ellipsoid=l.clone(h,n._ellipsoid),n._vertexFormat=g.clone(d,n._vertexFormat),n._cornerType=p,n._granularity=m,n):(I.polylinePositions=c,I.shapePositions=f,I.cornerType=p,I.granularity=m,new S(I))};var N=new t;return S.createGeometry=function(n){var r=n._positions,a=e(r,i.equalsEpsilon),o=n._shape;if(o=v.removeDuplicatesFromShape(o),!(a.length<2||o.length<3)){_.computeWindingOrder2D(o)===R.CLOCKWISE&&o.reverse();var u=t.fromPoints(o,N);return A(v.computePositions(a,o,u,n,!0),o,u,n._vertexFormat)}},S}),define("Workers/createPolylineVolumeGeometry",["../Core/defined","../Core/Ellipsoid","../Core/PolylineVolumeGeometry"],function(e,t,n){"use strict";function r(r,i){return e(i)&&(r=n.unpack(r,i)),r._ellipsoid=t.clone(r._ellipsoid),n.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as M}from"./chunk-2QX3ZRAN.js";import{a as W}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import{a as I,b as j}from"./chunk-GCC64MRJ.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import{a as g}from"./chunk-QNEABTP2.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{a as x,b as V}from"./chunk-M243PNMW.js";import{a as $}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as Z}from"./chunk-T53UE6JF.js";import{a as X}from"./chunk-RYO6NY7F.js";import{b as z,c as Q,d as U}from"./chunk-2HSPJH3C.js";import{d as Y}from"./chunk-T5AUOWE7.js";import{h as K}from"./chunk-Y5B6Y3WD.js";import{a as B}from"./chunk-6QVIJ7JA.js";import{a as T,c as C,d as f}from"./chunk-AODSXSC5.js";import{a as J}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as k}from"./chunk-WHQYJFDH.js";import{a as D}from"./chunk-OYWUGDKS.js";import{e as _}from"./chunk-DRYFJEFT.js";function oe(t,e,n,o){let l=new X;o.position&&(l.position=new U({componentDatatype:B.DOUBLE,componentsPerAttribute:3,values:t}));let i=e.length,u=t.length/3,L=(u-i*2)/(i*2),E=V.triangulate(e),q=(L-1)*i*6+E.length*2,r=Z.createTypedArray(u,q),m,s,d,b,A,F,G=i*2,p=0;for(m=0;m<L-1;m++){for(s=0;s<i-1;s++)d=s*2+m*i*2,F=d+G,b=d+1,A=b+G,r[p++]=b,r[p++]=d,r[p++]=A,r[p++]=A,r[p++]=d,r[p++]=F;d=i*2-2+m*i*2,b=d+1,A=b+G,F=d+G,r[p++]=b,r[p++]=d,r[p++]=A,r[p++]=A,r[p++]=d,r[p++]=F}if(o.st||o.tangent||o.bitangent){let c=new Float32Array(u*2),O=1/(L-1),w=1/n.height,S=n.height/2,y,a,h=0;for(m=0;m<L;m++){for(y=m*O,a=w*(e[0].y+S),c[h++]=y,c[h++]=a,s=1;s<i;s++)a=w*(e[s].y+S),c[h++]=y,c[h++]=a,c[h++]=y,c[h++]=a;a=w*(e[0].y+S),c[h++]=y,c[h++]=a}for(s=0;s<i;s++)y=0,a=w*(e[s].y+S),c[h++]=y,c[h++]=a;for(s=0;s<i;s++)y=(L-1)*O,a=w*(e[s].y+S),c[h++]=y,c[h++]=a;l.st=new U({componentDatatype:B.FLOAT,componentsPerAttribute:2,values:new Float32Array(c)})}let N=u-i*2;for(m=0;m<E.length;m+=3){let c=E[m]+N,O=E[m+1]+N,w=E[m+2]+N;r[p++]=c,r[p++]=O,r[p++]=w,r[p++]=w+i,r[p++]=O+i,r[p++]=c+i}let P=new Q({attributes:l,indices:r,boundingSphere:Y.fromVertices(t),primitiveType:z.TRIANGLES});if(o.normal&&(P=W.computeNormal(P)),o.tangent||o.bitangent){try{P=W.computeTangentAndBitangent(P)}catch{K("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}o.tangent||(P.attributes.tangent=void 0),o.bitangent||(P.attributes.bitangent=void 0),o.st||(P.attributes.st=void 0)}return P}function R(t){t=k(t,k.EMPTY_OBJECT);let e=t.polylinePositions,n=t.shapePositions;if(!_(e))throw new D("options.polylinePositions is required.");if(!_(n))throw new D("options.shapePositions is required.");this._positions=e,this._shape=n,this._ellipsoid=f.clone(k(t.ellipsoid,f.default)),this._cornerType=k(t.cornerType,I.ROUNDED),this._vertexFormat=g.clone(k(t.vertexFormat,g.DEFAULT)),this._granularity=k(t.granularity,J.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let o=1+e.length*T.packedLength;o+=1+n.length*C.packedLength,this.packedLength=o+f.packedLength+g.packedLength+2}R.pack=function(t,e,n){if(!_(t))throw new D("value is required");if(!_(e))throw new D("array is required");n=k(n,0);let o,l=t._positions,i=l.length;for(e[n++]=i,o=0;o<i;++o,n+=T.packedLength)T.pack(l[o],e,n);let u=t._shape;for(i=u.length,e[n++]=i,o=0;o<i;++o,n+=C.packedLength)C.pack(u[o],e,n);return f.pack(t._ellipsoid,e,n),n+=f.packedLength,g.pack(t._vertexFormat,e,n),n+=g.packedLength,e[n++]=t._cornerType,e[n]=t._granularity,e};var ee=f.clone(f.UNIT_SPHERE),te=new g,v={polylinePositions:void 0,shapePositions:void 0,ellipsoid:ee,vertexFormat:te,cornerType:void 0,granularity:void 0};R.unpack=function(t,e,n){if(!_(t))throw new D("array is required");e=k(e,0);let o,l=t[e++],i=new Array(l);for(o=0;o<l;++o,e+=T.packedLength)i[o]=T.unpack(t,e);l=t[e++];let u=new Array(l);for(o=0;o<l;++o,e+=C.packedLength)u[o]=C.unpack(t,e);let L=f.unpack(t,e,ee);e+=f.packedLength;let E=g.unpack(t,e,te);e+=g.packedLength;let q=t[e++],r=t[e];return _(n)?(n._positions=i,n._shape=u,n._ellipsoid=f.clone(L,n._ellipsoid),n._vertexFormat=g.clone(E,n._vertexFormat),n._cornerType=q,n._granularity=r,n):(v.polylinePositions=i,v.shapePositions=u,v.cornerType=q,v.granularity=r,new R(v))};var ne=new M;R.createGeometry=function(t){let e=t._positions,n=$(e,T.equalsEpsilon),o=t._shape;if(o=j.removeDuplicatesFromShape(o),n.length<2||o.length<3)return;V.computeWindingOrder2D(o)===x.CLOCKWISE&&o.reverse();let l=M.fromPoints(o,ne),i=j.computePositions(n,o,l,t,!0);return oe(i,o,l,t._vertexFormat)};var H=R;function ie(t,e){return _(e)&&(t=H.unpack(t,e)),t._ellipsoid=f.clone(t._ellipsoid),H.createGeometry(t)}var Re=ie;export{Re as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js index 1b362c90a..62ee5f6dd 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createPolylineVolumeOutlineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,E=i.z,m=l*l*d*d,y=f*f*p*p,_=h*h*E*E,T=m+y+_,R=Math.sqrt(1/T),v=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(v,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=v.x*A*2,O.y=v.y*g*2,O.z=v.z*S*2;var M,I,w,N,x,C,P,U,D,L,F,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,w=1/(1+b*A),N=1/(1+b*g),x=1/(1+b*S),C=w*w,P=N*N,U=x*x,D=C*w,L=P*N,F=U*x,M=m*C+y*P+_*U-1,I=m*D*A+y*L*g+_*F*S;B=M/(-2*I)}while(Math.abs(M)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*N,c.z=h*x,c):new e(l*w,f*N,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,E=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,y=o(t,p,E,m,c);if(r(y)){var _=e.multiplyComponents(y,E,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),R=Math.atan2(_.y,_.x),v=Math.asin(_.z),A=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=v,i.height=A,i):new u(R,v,A)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,E=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/arrayRemoveDuplicates",["./Check","./defaultValue","./defined","./Math"],function(e,t,n,r){"use strict";function i(e,r,i){if(n(e)){i=t(i,!1);var o=e.length;if(o<2)return e;var u,s,c;for(u=1;u<o&&(s=e[u-1],c=e[u],!r(s,c,a));++u);if(u===o)return i&&r(e[0],e[e.length-1],a)?e.slice(1):e;for(var l=e.slice(0,u);u<o;++u)c=e[u],r(s,c,a)||(l.push(c),s=c);return i&&l.length>1&&r(l[0],l[l.length-1],a)&&l.shift(),l}}var a=r.EPSILON10;return i}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var m=t.cartesianToCartographic(e[p]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var y=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)E.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingRectangle",["./Cartesian2","./Cartographic","./Check","./defaultValue","./defined","./GeographicProjection","./Intersect","./Rectangle"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.width=r(n,0),this.height=r(i,0)}s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t},s.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new s),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n},s.fromPoints=function(e,t){if(i(t)||(t=new s),!i(e)||0===e.length)return t.x=0,t.y=0,t.width=0,t.height=0,t;for(var n=e.length,r=e[0].x,a=e[0].y,o=e[0].x,u=e[0].y,c=1;c<n;c++){var l=e[c],f=l.x,h=l.y;r=Math.min(f,r),o=Math.max(f,o),a=Math.min(h,a),u=Math.max(h,u)}return t.x=r,t.y=a,t.width=o-r,t.height=u-a,t};var c=new a,l=new t,f=new t;return s.fromRectangle=function(t,n,a){if(i(a)||(a=new s),!i(t))return a.x=0,a.y=0,a.width=0,a.height=0,a;n=r(n,c);var o=n.project(u.southwest(t,l)),h=n.project(u.northeast(t,f));return e.subtract(h,o,h),a.x=o.x,a.y=o.y,a.width=h.x,a.height=h.y,a},s.clone=function(e,t){if(i(e))return i(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new s(e.x,e.y,e.width,e.height)},s.union=function(e,t,n){i(n)||(n=new s);var r=Math.min(e.x,t.x),a=Math.min(e.y,t.y),o=Math.max(e.x+e.width,t.x+t.width),u=Math.max(e.y+e.height,t.y+t.height);return n.x=r,n.y=a,n.width=o-r,n.height=u-a,n},s.expand=function(e,t,n){n=s.clone(e,n);var r=t.x-n.x,i=t.y-n.y;return r>n.width?n.width=r:r<0&&(n.width-=r,n.x=t.x),i>n.height?n.height=i:i<0&&(n.height-=i,n.y=t.y),n},s.intersect=function(e,t){var n=e.x,r=e.y,i=t.x,a=t.y;return n>i+t.width||n+e.width<i||r+e.height<a||r>a+t.height?o.OUTSIDE:o.INTERSECTING},s.equals=function(e,t){return e===t||i(e)&&i(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.intersect=function(e){return s.intersect(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict" -;function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(E[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(m-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,E=2*(i-h),m=2*(a+l),y=2*(i+h),_=-n+u-f+d,T=2*(c-o),R=2*(a-l),v=2*(c+o),A=-n-u+f+d;return r(t)?(t[0]=p,t[1]=y,t[2]=R,t[3]=E,t[4]=_,t[5]=v,t[6]=m,t[7]=T,t[8]=A,t):new s(p,E,m,y,_,T,R,v,A)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,E=-c*i+a*o*u,m=-o,y=c*n,_=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=E,t[8]=_,t):new s(l,f,h,d,p,E,m,y,_)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],m=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,y),s.multiply(h,m,h),s.multiply(y,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,E,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(E,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,m=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-m+_,R=2*(c-y),v=2*(f+E),A=2*(c+y),g=-s+d-m+_,S=2*(p-h),O=2*(f-E),M=2*(p+h),I=-s-d+m+_;return r[0]=T*a,r[1]=A*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=g*o,r[6]=M*o,r[7]=0,r[8]=v*u,r[9]=S*u,r[10]=I*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,m=f.z,y=d.x,_=d.y,T=d.z,R=r.x,v=r.y,A=r.z,g=u*-R+s*-v+c*-A,S=y*-R+_*-v+T*-A,O=p*R+E*v+m*A;return i(n)?(n[0]=u,n[1]=y,n[2]=-p,n[3]=0,n[4]=s,n[5]=_,n[6]=-E,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,y,_,T,S,-p,-E,-m,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,E=a+c,m=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=m,i[14]=y,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var E=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],m=e[13],y=e[14],_=e[15],T=t[0],R=t[1],v=t[2],A=t[3],g=t[4],S=t[5],O=t[6],M=t[7],I=t[8],w=t[9],N=t[10],x=t[11],C=t[12],P=t[13],U=t[14],D=t[15],L=r*T+u*R+f*v+E*A,F=i*T+s*R+h*v+m*A,b=a*T+c*R+d*v+y*A,B=o*T+l*R+p*v+_*A,q=r*g+u*S+f*O+E*M,z=i*g+s*S+h*O+m*M,G=a*g+c*S+d*O+y*M,V=o*g+l*S+p*O+_*M,W=r*I+u*w+f*N+E*x,X=i*I+s*w+h*N+m*x,H=a*I+c*w+d*N+y*x,Y=o*I+l*w+p*N+_*x,k=r*C+u*P+f*U+E*D,j=i*C+s*P+h*U+m*D,Z=a*C+c*P+d*U+y*D,K=o*C+l*P+p*U+_*D;return n[0]=L,n[1]=F,n[2]=b,n[3]=B,n[4]=q,n[5]=z,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],m=t[1],y=t[2],_=t[4],T=t[5],R=t[6],v=t[8],A=t[9],g=t[10],S=t[12],O=t[13],M=t[14],I=r*E+o*m+c*y,w=i*E+u*m+l*y,N=a*E+s*m+f*y,x=r*_+o*T+c*R,C=i*_+u*T+l*R,P=a*_+s*T+f*R,U=r*v+o*A+c*g,D=i*v+u*A+l*g,L=a*v+s*A+f*g,F=r*S+o*O+c*M+h,b=i*S+u*O+l*M+d,B=a*S+s*O+f*M+p;return n[0]=I,n[1]=w,n[2]=N,n[3]=0,n[4]=x,n[5]=C,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=F,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],m=t[4],y=t[5],_=t[6],T=t[7],R=t[8],v=r*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*E+o*m+c*y,O=i*E+u*m+l*y,M=a*E+s*m+f*y,I=r*_+o*T+c*R,w=i*_+u*T+l*R,N=a*_+s*T+f*R;return n[0]=v,n[1]=A,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=M,n[7]=0,n[8]=I,n[9]=w,n[10]=N,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var y=new e;l.multiplyByUniformScale=function(e,t,n){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,R=new t,v=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],m=e[6],y=e[10],A=e[14],g=e[3],S=e[7],O=e[11],M=e[15],I=y*M,w=A*O,N=m*M,x=A*S,C=m*O,P=y*S,U=E*M,D=A*g,L=E*O,F=y*g,b=E*S,B=m*g,q=I*h+x*d+C*p-(w*h+N*d+P*p),z=w*f+U*d+F*p-(I*f+D*d+L*p),G=N*f+D*h+b*p-(x*f+U*h+B*p),V=P*f+L*h+B*d-(C*f+F*h+b*d),W=w*i+N*a+P*o-(I*i+x*a+C*o),X=I*r+D*a+L*o-(w*r+U*a+F*o),H=x*r+U*i+B*o-(N*r+D*i+b*o),Y=C*r+F*i+b*a-(P*r+L*i+B*a);I=a*p,w=o*d,N=i*p,x=o*h,C=i*d,P=a*h,U=r*p,D=o*f,L=r*d,F=a*f,b=r*h,B=i*f;var k=I*S+x*O+C*M-(w*S+N*O+P*M),j=w*g+U*O+F*M-(I*g+D*O+L*M),Z=N*g+D*S+b*M-(x*g+U*S+B*M),K=P*g+L*S+B*O-(C*g+F*S+b*O),J=N*y+P*A+w*m-(C*A+I*m+x*y),Q=L*A+I*E+D*y-(U*y+F*A+w*E),$=U*m+B*A+x*E-(b*A+N*E+D*m),ee=b*y+C*E+F*m-(L*m+B*y+P*E),te=r*q+i*z+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),v))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,E=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,E=new e,m=new e,y=new e,_=new e,T=new e,R=new e,v=new e,A=new e,g=new e,S=new e,O=new e,M=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,E),s=e.clone(a,m),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var M=a.x,I=a.y,w=a.z;M<o.x&&e.clone(a,o),M>c.x&&e.clone(a,c),I<u.y&&e.clone(a,u),I>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var N=e.magnitudeSquared(e.subtract(c,o,v)),x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=o,U=c,D=N;x>D&&(D=x,P=u,U=l),C>D&&(D=C,P=s,U=f);var L=A;L.x=.5*(P.x+U.x),L.y=.5*(P.y+U.y),L.z=.5*(P.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,v)),b=Math.sqrt(F),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var q=S;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,z,v));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,L,v));if(W>F){var X=Math.sqrt(W);b=.5*(b+X),F=b*b;var H=X-b;L.x=(b*L.x+H*a.x)/X,L.y=(b*L.y+H*a.y)/X,L.z=(b*L.z+H*a.z)/X}}return b<G?(e.clone(L,n.center),n.radius=b):(e.clone(z,n.center),n.radius=G),n};var I=new o,w=new e,N=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,I),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=n.project(x,w),c=n.project(C,N),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,m),h=e.clone(u,y),M=e.clone(u,_),I=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var N=t[s]+n.x,x=t[s+1]+n.y,C=t[s+2]+n.z;u.x=N,u.y=x,u.z=C,N<c.x&&e.clone(u,c),N>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>M.y&&e.clone(u,M),C<f.z&&e.clone(u,f),C>I.z&&e.clone(u,I)}var P=e.magnitudeSquared(e.subtract(h,c,v)),U=e.magnitudeSquared(e.subtract(M,l,v)),D=e.magnitudeSquared(e.subtract(I,f,v)),L=c,F=h,b=P;U>b&&(b=U,L=l,F=M),D>b&&(b=D,L=f,F=I);var B=A;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var q=e.magnitudeSquared(e.subtract(F,B,v)),z=Math.sqrt(q),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=M.y,V.z=I.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,v));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,v));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;B.x=(z*B.x+j*u.x)/k,B.y=(z*B.y+j*u.y)/k,B.z=(z*B.z+j*u.z)/k}}return z<X?(e.clone(B,o.center),o.radius=z):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),M=t.length;for(o=0;o<M;o+=3){var I=t[o]+n[o],w=t[o+1]+n[o+1],N=t[o+2]+n[o+2];a.x=I,a.y=w,a.z=N,I<u.x&&e.clone(a,u),I>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),N<c.z&&e.clone(a,c),N>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=e.magnitudeSquared(e.subtract(h,c,v)),U=u,D=l,L=x;C>L&&(L=C,U=s,D=f),P>L&&(L=P,U=c,D=h);var F=A;F.x=.5*(U.x+D.x),F.y=.5*(U.y+D.y),F.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,v)),B=Math.sqrt(b),q=g;q.x=u.x,q.y=s.y,q.z=c.z;var z=S;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,O),V=0;for(o=0;o<M;o+=3){a.x=t[o]+n[o], -a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,v));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,F,v));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<V?(e.clone(F,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,F);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var m=p.length,y=0;y<m;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);n.project(T,_)}i=d.fromPoints(p,i),o=i.center;var R=o.x,v=o.y,A=o.z;return o.x=A,o.y=R,o.z=v,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return M*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,E(l,e),f=l=v,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,m,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(n,_)),f=[],l=_-c+1,h=[],d=o(),c)for(m=d.progress,E=function(e){h.push(e),--l||(p=E=y,d.reject(h))},p=function(e){f.push(e),--c||(p=E=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,_).then(t,n,r)}function f(){return h(arguments,_)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function E(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function y(){}function _(e){return e}var T,R,v;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(v,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(v,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,M=o(e[1]))}return O}function s(){return u()&&M}function c(){if(!t(I)&&(I=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,w=o(e[1]))}return I}function l(){return c()&&w}function f(){if(!t(N)){N=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(N=!0,x=o(e[1]),x.isNightly=!!e[2])}return N}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function m(){return E()&&D}function y(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function _(){return t(b)||(b=/Windows/i.test(S.appVersion)),b}function T(){return y()&&F}function R(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function v(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function A(){return v()?q:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,M,I,w,N,x,C,P,U,D,L,F,b,B,q,z;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,E())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:m,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:v,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/CornerType",["./freezeObject"],function(e){"use strict";return e({ROUNDED:0,MITERED:1,BEVELED:2})}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)n=Math.sqrt(E+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=m[y],T=m[_];n=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var R=f;R[y]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*n,R[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*n,R[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,n){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var m=new e,y=new e,_=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,R,_),_.w<0&&s.negate(_,_),s.computeAxis(_,m);var u=s.computeAngle(_);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var v=new s;s.lerp=function(e,t,n,r){return v=s.multiplyByScalar(t,n,v),r=s.multiplyByScalar(e,1-n,r),s.add(v,r,r)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,M=new e,I=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,I);s.multiply(a,r,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,M);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,I),s.multiply(n,I,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,I),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var N=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;C[L]=1/(F*b),P[L]=F/b}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,N);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,I),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,E,m,y;if("%%"==e)return"%";for(var _=!1,T="",R=!1,v=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":A=s.charAt(S+1);break;case"0":R=!0;break;case"#":v=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(y),_,c,f,R,A);case"c":return u(String.fromCharCode(+y),_,c,f,R);case"b":return o(y,2,v,_,c,f,R);case"o":return o(y,8,v,_,c,f,R);case"x":return o(y,16,v,_,c,f,R);case"X":return o(y,16,v,_,c,f,R).toUpperCase();case"u":return o(y,10,v,_,c,f,R);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[E](f),a(y,p,_,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var n=E.leapSeconds,r=t(n,_,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){E.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}E.addSeconds(e,i,e)}function h(e,n){_.julianDate=e;var r=E.leapSeconds,i=t(r,_,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-r[0].offset,n);if(i>=r.length)return E.addSeconds(e,-r[i-1].offset,n);var a=E.secondsDifference(r[i].julianDate,e);return 0===a?E.addSeconds(e,-r[i].offset,n):a<=1?void 0:E.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,v=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,M=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;E.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,_=0,S=0,w=u[0],N=u[1];if(null!==(u=w.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var x;if(null!==(u=w.match(v)))n=+u[1],x=+u[2],a=o(n);else if(null!==(u=w.match(A))){n=+u[1];var C=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));x=7*C+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(N)){u=N.match(I),null!==u?(h=+u[1],m=+u[2],_=+u[3],S=1e3*+(u[4]||0),D=5):(u=N.match(M),null!==u?(h=+u[1],m=+u[2],_=60*+(u[3]||0),D=4):null!==(u=N.match(O))&&(h=+u[1],m=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,m-=b;break;case"-":h+=F,m+=b;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var B=60===_;for(B&&_--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:y[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:y[s-1],l+=i;var q=p(n,s,l,h,m,_,S);return r(t)?(d(q[0],q[1],t),f(t)):t=new E(q[0],q[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var w=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(E.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var v=0|T,A=(T-v)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),n&&(v+=1),r(t)?(t.year=y,t.month=m,t.day=p,t.hour=_,t.minute=R,t.second=v,t.millisecond=A,t.isLeapSecond=n,t):new a(y,m,p,_,R,v,A,n)},E.toDate=function(e){var t=E.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},E.toIso8601=function(t,n){var i=E.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(E.secondsDifference(e,t))<=n},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){_.julianDate=e;var n=E.leapSeconds,r=t(n,_,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},E.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},E.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},E.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},E.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--v.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++v.numberOfFailedRequests,--v.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=E(e);return e.state=l.ACTIVE,S.push(e),++v.numberOfActiveRequests,++v.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(m(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++v.numberOfCancelledRequests,e.deferred.reject(),t&&(--v.numberOfActiveRequests,--O[e.serverKey],++v.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===v.numberOfActiveRequests&&v.lastNumberOfActiveRequests>0&&(v.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+v.numberOfAttemptedRequests),v.numberOfAttemptedRequests=0),v.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+v.numberOfCancelledRequests),v.numberOfCancelledRequests=0),v.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+v.numberOfCancelledActiveRequests),v.numberOfCancelledActiveRequests=0),v.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+v.numberOfFailedRequests),v.numberOfFailedRequests=0)),v.lastNumberOfActiveRequests=v.numberOfActiveRequests)}var v={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},M="undefined"!=typeof document?new e(document.location.href):new e,I=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=I,a(h,{statistics:{get:function(){return v}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();T(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(M);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return I.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++v.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())} -for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},v.numberOfAttemptedRequests=0,v.numberOfActiveRequests=0,v.numberOfCancelledRequests=0,v.numberOfCancelledActiveRequests=0,v.numberOfFailedRequests=0,v.numberOfActiveRequestsEver=0,v.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_,T,R,v,A,g,S,O){"use strict";function M(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?x(a,t._queryParameters,r):a,e.query=void 0}function I(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=_(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function N(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);M(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function F(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new v(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new v)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return z}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);M(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&I(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);M(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(N(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),N(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;N(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(F(s,t));if(W)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new v(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new v)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return y(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,R=0,v=m.length;R<v;R+=e._columnCount){var A=m[R+i],g=m[R+E],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(y.push(O),T){if(g!==_&&r(_)){var M=o.leapSeconds,I=t(M,O,d);if(I<0){var w=new u(O,g);M.splice(~I,0,w)}}_=g}}}function E(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function y(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return E(e,n,i,s,u),u;if(r.equals(l))return E(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],y=n[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=y:y-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),E=p||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,E,m=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)y[p]=m-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=y[E]);T[p]*=_[p];var v=3*(s+p);n.x+=T[p]*d[v++],n.y+=T[p]*d[v++],n.s+=T[p]*d[v]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_,T,R){"use strict";var v={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},M=new n,I=new n,w=new n;v.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=A[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new _),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(g[e],0,M),"east"!==e&&"west"!==e&&n.multiplyByScalar(M,c,M),n.unpack(g[t],0,I),"east"!==t&&"west"!==t&&n.multiplyByScalar(I,c,I),n.unpack(g[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),M=O[e],I=O[t],w=O[i]}return s[0]=M.x,s[1]=M.y,s[2]=M.z,s[3]=0,s[4]=I.x,s[5]=I.y,s[6]=I.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},v.eastNorthUpToFixedFrame=v.localFrameToFixedFrameGenerator("east","north"),v.northEastDownToFixedFrame=v.localFrameToFixedFrameGenerator("north","east"),v.northUpEastToFixedFrame=v.localFrameToFixedFrameGenerator("north","up"),v.northWestUpToFixedFrame=v.localFrameToFixedFrameGenerator("north","west");var N=new T,x=new n(1,1,1),C=new _;v.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,v.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,N),s=_.fromTranslationQuaternionRotationScale(n.ZERO,u,x,C);return a=i(e,r,a),_.multiply(a,s,a)};var P=new _,U=new y;v.headingPitchRollQuaternion=function(e,t,n,r,i){var a=v.headingPitchRollToFixedFrame(e,t,n,r,P),o=_.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,F=new _,b=new _,B=new y,q=new T;v.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,v.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(r(a,t,F),F),c=_.setScale(e,D,b);c=_.setTranslation(c,n.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=m.TWO_PI/86400,G=new E;v.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},v.iau2006XysData=new d,v.earthOrientationParameters=c.NONE;v.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=v.iau2006XysData.preload(n,r,i,a),u=v.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},v.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var n=v.computeFixedToIcrfMatrix(e,t);if(u(n))return y.transpose(n,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,H=new y;v.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var n=v.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=v.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+n.ut1MinusUtc,_=d-2451545,T=p/R.SECONDS_PER_DAY,A=.779057273264+T+.00273781191135448*(_+T);A=A%1*m.TWO_PI;var g=y.fromRotationZ(A,H),S=y.multiply(h,g,X),O=Math.cos(n.xPoleWander),M=Math.cos(n.yPoleWander),I=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),N=r-2451545+i/R.SECONDS_PER_DAY;N/=36525;var x=-47e-6*N*m.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),U=H;return U[0]=O*C,U[1]=O*P,U[2]=I,U[3]=-M*P+w*I*C,U[4]=M*C+w*I*P,U[5]=-w*O,U[6]=-w*P-M*I*C,U[7]=w*C-M*I*P,U[8]=M*O,y.multiply(S,U,t)}}};var Y=new r;v.pointToWindowCoordinates=function(e,t,n,r){return r=v.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},v.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;v.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new y,te=new _,ne=new _;return v.basisTo2D=function(e,t,r){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=v.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,ne),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,r);return _.multiply(K,f,r),_.setTranslation(r,u,r),r},v.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=v.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,r),_.multiply(c,r,r),r},v}), -define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var y=new n,_=new t,T=new f,R=[new n,new n,new n],v=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,M=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,y),h=n.toCartesian(s,a,_),m=E.eastNorthUpToFixedFrame(h,a,T),I=f.inverse(m,T),w=v,N=R;N[0].longitude=o.west,N[0].latitude=o.south,N[1].longitude=o.west,N[1].latitude=o.north,N[2].longitude=o.east,N[2].latitude=o.south;var x=g;for(u=0;u<3;u++)n.toCartesian(N[u],a,x),x=f.multiplyByPointAsVector(I,x,x),w[u].x=x.x,w[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)x=f.multiplyByPointAsVector(I,r[u],x),x=l.multiplyByVector(P,x,x),D=Math.min(D,x.x),L=Math.min(L,x.y),F=Math.max(F,x.x),b=Math.max(b,x.y);var B=c.fromRotation(i,M),q=A;q[0].x=D,q[0].y=L,q[1].x=D,q[1].y=b,q[2].x=F,q[2].y=L;var z=w[0],G=w[2].x-z.x,V=w[1].y-z.y;for(u=0;u<3;u++){var W=q[u];c.multiplyByVector(B,W,W),W.x=(W.x-z.x)/G,W.y=(W.y-z.y)/V}var X=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,E,m;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var y=i;y<o;y+=i)p=e[y],E=e[y+1],p<l&&(l=p),E<f&&(f=E),p>h&&(h=p),E>d&&(d=E);m=Math.max(h-l,d-f)}return r(u,c,i,l,f,m),c}function t(e,t,n,r,i){var a,o;if(i===w(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(M(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==_(r.prev,r,r.next))r=r.next;else{if(M(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,E,m=e;e.prev!==e.next;)if(p=e.prev,E=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(E.i/s),M(e),e=E.next,m=E.next;else if((e=E)===m){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(_(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(m(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&R(i,r,r.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),M(r),M(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&y(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(E(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&m(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&A(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function E(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function m(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function y(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!v(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function _(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||_(e,t,n)>0!=_(e,t,r)>0&&_(n,r,e)>0!=_(n,r,t)>0}function v(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function A(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function g(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new I(e.i,e.x,e.y),r=new I(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new I(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function M(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function I(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function w(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(w(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(w(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),E=Math.cos(2*r),m=Math.sin(4*r),y=Math.cos(4*r),_=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),v=Math.cos(8*r),A=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*E+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*y+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*v+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,_),y),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function E(e,n,r,a,o,u){var h,d,p,E=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var m=f(o,e.latitude),y=f(o,d);p=Math.tan(n)*(y-m),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-E*T*T)}p=r/_,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function m(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var y=new e,_=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var y=E(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,y,c):(o.setEndPoints(e,y),o)},m.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return E(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var E=r*Math.sin(c),m=(1+E)/(1-E);p=2*Math.atan(h*Math.pow(m/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},m.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},m}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var E=new n,m=new n,y={};y.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},y.computeWindingOrder2D=function(e){return y.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},y.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var _=new n,T=new n,R=new n,v=new n,A=new n,g=new n,S=new n;y.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,E=new Array(3*p),m=0;for(s=0;s<p;s++){var y=t[s];E[m++]=y.x,E[m++]=y.y,E[m++]=y.z}for(var O=[],M={},I=e.maximumRadius,w=h.chordLength(i,I),N=w*w;c.length>0;){var x,C,P=c.pop(),U=c.pop(),D=c.pop(),L=n.fromArray(E,3*D,_),F=n.fromArray(E,3*U,T),b=n.fromArray(E,3*P,R),B=n.multiplyByScalar(n.normalize(L,v),I,v),q=n.multiplyByScalar(n.normalize(F,A),I,A),z=n.multiplyByScalar(n.normalize(b,g),I,g),G=n.magnitudeSquared(n.subtract(B,q,S)),V=n.magnitudeSquared(n.subtract(q,z,S)),W=n.magnitudeSquared(n.subtract(z,B,S)),X=Math.max(G,V,W);X>N?G===X?(x=Math.min(D,U)+" "+Math.max(D,U),s=M[x],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(D,s,P),c.push(s,U,P)):V===X?(x=Math.min(U,P)+" "+Math.max(U,P),s=M[x],u(s)||(C=n.add(F,b,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(U,s,D),c.push(s,P,D)):W===X&&(x=Math.min(P,D)+" "+Math.max(P,D),s=M[x],u(s)||(C=n.add(b,L,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,M[x]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,M=new r,I=new r,w=new r;return y.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),E=t.length,m=new Array(3*E),y=0;for(s=0;s<E;s++){var v=t[s];m[y++]=v.x,m[y++]=v.y,m[y++]=v.z}for(var A=[],g={},N=e.maximumRadius,x=h.chordLength(i,N),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),L=p.pop(),F=p.pop(),b=n.fromArray(m,3*F,_),B=n.fromArray(m,3*L,T),q=n.fromArray(m,3*D,R),z=e.cartesianToCartographic(b,O),G=e.cartesianToCartographic(B,M),V=e.cartesianToCartographic(q,I);C.setEndPoints(z,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;U.setEndPoints(V,z);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(W,X,Z);K>x?W===K?(H=Math.min(F,L)+" "+Math.max(F,L),s=g[H],u(s)||(Y=C.interpolateUsingFraction(.5,w),k=.5*(z.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(F,s,D),p.push(s,L,D)):X===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=g[H],u(s)||(Y=P.interpolateUsingFraction(.5,w),k=.5*(G.height+V.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(L,s,F),p.push(s,D,F)):Z===K&&(H=Math.min(D,F)+" "+Math.max(D,F),s=g[H],u(s)||(Y=U.interpolateUsingFraction(.5,w),k=.5*(V.height+z.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(D,s,L),p.push(s,F,L)):(A.push(F),A.push(L),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:A,primitiveType:d.TRIANGLES})},y.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=E,c=m;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},y}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,E=d.y,m=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(E,o),c=Math.max(E,c),u=Math.min(m,u),l=Math.max(m,l)}var y=n.minimum;y.x=i,y.y=o,y.z=u;var _=n.maximum;return _.x=s,_.y=c,_.z=l,n.center=e.midpoint(y,_,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,E=o*c-u*s,m=u*c-d,y=4*p*m-E*E;if(y<0){var _,T,R;h*f>=l*d?(_=o,T=p,R=-2*u*p+o*E):(_=c,T=m,R=-c*E+2*s*m);var v=R<0?-1:1,A=-v*Math.abs(_)*Math.sqrt(-y);a=-R+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-T/S;return i=T<=0?S+O:-R/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var M=p,I=-2*u*p+o*E,w=m,N=-c*E+2*s*m,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-I)/3);i=2*Math.sqrt(-M);var U=Math.cos(P);a=i*U;var D=i*(-U/2-C*Math.sin(P)),L=a+D>2*u?a-u:D-u,F=o,b=L/F;P=Math.abs(Math.atan2(c*x,-N)/3),i=2*Math.sqrt(-w),U=Math.cos(P),a=i*U,D=i*(-U/2-C*Math.sin(P));var B=-c,q=a+D<2*s?a+s:D+s,z=B/q,G=F*q,V=-L*q-F*B,W=L*B,X=(s*V-u*W)/(-u*V+s*G);return b<=X?b<=z?X<=z?[b,X,z]:[b,z,X]:[z,b,X]:b<=z?[X,b,z]:X<=z?[X,z,b]:[z,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var E,m=p[0],y=p[1];if(m>=0&&y>=0){var _=Math.sqrt(m),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(m>=0&&y<0)return E=Math.sqrt(m),[h-E,h+E];if(m<0&&y>=0)return E=Math.sqrt(y),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),v=(s+d-c/R)/2,A=(s+d+c/R)/2,g=r.computeRealRoots(1,R,v),S=r.computeRealRoots(1,-R,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,E,m=d[0],y=i-m,_=y*y,T=t/2,R=y/2,v=_-4*o,A=_+4*Math.abs(o),g=c-4*m,S=c+4*Math.abs(m);if(m<0||v*S<g*A){var O=Math.sqrt(g);p=O/2,E=0===O?0:(t*R-a)/O}else{var M=Math.sqrt(v);p=0===M?0:(t*R-a)/M,E=M/2}var I,w;0===T&&0===p?(I=0,w=0):n.sign(T)===n.sign(p)?(I=T+p,w=m/I):(w=T-p,I=m/w);var N,x;0===R&&0===E?(N=0,x=0):n.sign(R)===n.sign(E)?(N=R+E,x=o/N):(x=R-E,N=o/x);var C=r.computeRealRoots(1,I,N),P=r.computeRealRoots(1,w,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,E=f(h,d,p,A);if(r(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),m=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,E,m),0===l.length)return T;var R=l[0],v=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-v)),T.push(new e(i,a*R,a*v)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));T.push(new e(i,a*A,a*-g)),T.push(new e(i,a*A,a*g))}return T}var S=_*_,O=y*y,M=p*p,I=_*y,w=M+O,N=2*(E*p+I),x=2*m*p+E*E-O+S,C=2*(m*E-I),P=m*m-S;if(0===w&&0===N&&0===x&&0===C)return T;l=c.computeRealRoots(w,N,x,C,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var L,F=l[D],b=F*F,B=Math.max(1-b,0),q=Math.sqrt(B);L=o.sign(p)===o.sign(m)?d(p*b+m,E*F,o.EPSILON12):o.sign(m)===o.sign(E*F)?d(p*b,E*F+m,o.EPSILON12):d(p*b+E*F,m,o.EPSILON12);var z=d(y*F,_,o.EPSILON15),G=L*z;G<0?T.push(new e(i,a*F,a*q)):G>0?T.push(new e(i,a*F,a*-q)):0!==q?(T.push(new e(i,a*F,a*-q)),T.push(new e(i,a*F,a*q)),++D):T.push(new e(i,a*F,a*q))}return T}var E={};E.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var m=new e,y=new e,_=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,E=e.subtract(i,r,m),v=e.subtract(a,r,y),A=e.cross(p,v,_),g=e.dot(E,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,E,R),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(v,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(v,c)*S}return h},E.rayTriangle=function(t,n,i,a,o,u){var s=E.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var v=new l;E.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=v;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};E.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;E.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;E.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,m=r/s;return E<m?new a(E,m):{start:m,stop:E}}var y=Math.sqrt(r/i);return new a(y,y)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var M=new e,I=new e,w=new e,N=new e,x=new e,C=new u,P=new u,U=new u,D=new u,L=new u,F=new u,b=new u,B=new e,q=new e,z=new t;E.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,M);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,M),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,N),d=e.normalize(e.cross(h,f,I),I),E=e.normalize(e.cross(f,d,w),w),m=C;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=E.x,m[7]=E.y,m[8]=E.z;var y=u.transpose(m,P),_=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=L;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var v,A,g=u.multiply(u.multiply(y,T,F),R,F),S=u.multiply(u.multiply(g,_,b),m,b),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,M),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,q),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){v=u.multiplyByVector(_,u.multiplyByVector(m,G[H],B),B);var Y=e.normalize(e.subtract(v,i,N),N),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(v,W))}var j=n.cartesianToCartographic(W,z);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,N))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,n.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){ -if(u)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function E(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,m)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,m));var i=n.fromCartesian4(f.getColumn(r,2,m));this._plane=h.fromPointNormal(e,i)}var m=new r;u(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var y=new e;E.fromPoints=function(t,n){return new E(e.fromPoints(t,y).center,n)};var _=new d,T=new n;E.prototype.projectPointOntoPlane=function(e,r){var i=_;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},E.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},E.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=_;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},E.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return E.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},E.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},E}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),E=t/4,m=E*E,y=m*E,_=m*m,T=1+E-3*m/4+5*y/4-175*_/64,R=1-E+15*m/8-35*y/8,v=1-3*E+35*m/4,A=1-5*E,g=T*l-R*Math.sin(2*l)*E/2-v*Math.sin(4*l)*m/16-A*Math.sin(6*l)*y/48-5*Math.sin(8*l)*_/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=E,S.u4Over16=m,S.u6Over64=y,S.u8Over256=_,S.a0=T,S.a1=R,S.a2=v,S.a3=A,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,E=a-r,m=Math.atan((1-p)*Math.tan(i)),y=Math.atan((1-p)*Math.tan(o)),_=Math.cos(m),T=Math.sin(m),R=Math.cos(y),v=Math.sin(y),A=_*R,g=_*v,S=T*v,O=T*R,M=E,I=u.TWO_PI,w=Math.cos(M),N=Math.sin(M);do{w=Math.cos(M),N=Math.sin(M);var x=g-O*w;f=Math.sqrt(R*R*N*N+x*x),c=S+A*w,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=A*N/f,h=1-C*C),I=M,d=c-2*S/h,isNaN(d)&&(d=0),M=E+l(p,C,h,s,f,c,d)}while(Math.abs(M-I)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),U=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,L=d*d,F=D*f*(d+D*(c*(2*L-1)-D*d*(4*f*f-3)*(4*L-3)/6)/4),b=n*U*(s-F),B=Math.atan2(R*N,g-O*w),q=Math.atan2(_*N,g*w-O);e._distance=b,e._startHeading=B,e._endHeading=q,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,E),p),e.normalize(a.cartographicToCartesian(i,E),E);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,E=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,E=a*p,m=r.u8Over256,y=r.u2Over4,_=r.u6Over64,T=r.u4Over16,R=2*E*m*o/3+a*(1-y+7*T/4-15*_/4+579*m/64-(T-15*_/4+187*m/16)*o-(5*_/4-115*m/16)*u-29*m*s/16)+(y/2-T+71*_/32-85*m/16)*c+(5*T/16-5*_/4+383*m/96)*f-p*((_-11*m/2)*c+5*m*f/2)+(29*_/96-29*m/16)*h+539*m*d/1536,v=Math.asin(Math.sin(R)*r.cosineAlpha),A=Math.atan(r.a/r.b*Math.tan(v));R-=r.sigma;var g=Math.cos(2*r.sigma+R),S=Math.sin(R),O=Math.cos(R),M=r.cosineU*O,I=r.sineU*S,w=Math.atan2(S*r.sineHeading,M-I*r.cosineHeading),N=w-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,R,S,O,g);return i(n)?(n.longitude=this._start.longitude+N,n.latitude=A,n.height=0,n):new t(this._start.longitude+N,A,0)},d}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=M;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,x),l=i.scaleToGeodeticSurface(n,C),f=m.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,I),p=i.cartesianToCartographic(l,w),E=d(f,a,o);P.setEndPoints(h,p);var y=P.surfaceDistance/f,_=s;h.height=a;var T=i.cartographicToCartesian(h,N);e.pack(T,u,_),_+=3;for(var R=1;R<f;R++){var v=P.interpolateUsingSurfaceDistance(R*y,w);v.height=E[R],T=i.cartographicToCartesian(v,N),e.pack(T,u,_),_+=3}return _}function E(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,x),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,I),p=i.cartesianToCartographic(f,w),E=m.numberOfPointsRhumbLine(h,p,r),y=d(E,a,o);U.ellipsoid.equals(i)||(U=new u(void 0,void 0,i)),U.setEndPoints(h,p);var _=U.surfaceDistance/E,T=c;h.height=a;var R=i.cartographicToCartesian(h,N);e.pack(R,s,T),T+=3;for(var v=1;v<E;v++){var A=U.interpolateUsingSurfaceDistance(v*_,w);A.height=y[v],R=i.cartographicToCartesian(A,N),e.pack(R,s,T),T+=3}return T}var m={};m.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},m.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var y=new t;m.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,y).height}return r};var _=new f,T=new e,R=new e,v=new h(e.UNIT_X,0),A=new e,g=new h(e.UNIT_X,0),S=new e,O=new e,M=[],I=new t,w=new t,N=new e,x=new e,C=new e,P=new o,U=new u;m.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,_),c=f.multiplyByPoint(u,e.ZERO,T),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,R),R),d=h.fromPointNormal(c,l,v),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,A),A),E=h.fromPointNormal(c,p,g),m=1;a.push(e.clone(t[0]));for(var y=a[0],M=t.length,I=1;I<M;++I){var w=t[I];if(h.getPointDistance(E,y)<0||h.getPointDistance(E,w)<0){var N=s.lineSegmentPlane(y,w,d,S);if(r(N)){var x=e.multiplyByScalar(l,5e-9,O);h.getPointDistance(d,y)<0&&e.negate(x,x),a.push(e.add(N,x,new e)),o.push(m+1),e.negate(x,x),a.push(e.add(N,x,new e)),m=1}}a.push(e.clone(t[I])),m++,y=w}o.push(m)}return{positions:a,lengths:o}},m.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],x);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,N);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var E=t.minDistance;if(!r(E)){var y=n(t.granularity,l.RADIANS_PER_DEGREE);E=l.chordLength(y,u.maximumRadius)}var _,T=0;for(_=0;_<o-1;_++)T+=m.numberOfPoints(i[_],i[_+1],E);var R=3*(T+1),v=new Array(R),A=0;for(_=0;_<o-1;_++){A=p(i[_],i[_+1],E,u,f?s[_]:s,f?s[_+1]:s,v,A)}M.length=0;var g=i[o-1],S=u.cartesianToCartographic(g,I);S.height=f?s[o-1]:s;var O=u.cartographicToCartesian(S,N);return e.pack(O,v,R-3),v};var D=new t,L=new t;return m.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],x);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,N);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var y,_,T=n(i.granularity,l.RADIANS_PER_DEGREE),R=0,v=s.cartesianToCartographic(o[0],D);for(y=0;y<u-1;y++)_=s.cartesianToCartographic(o[y+1],L),R+=m.numberOfPointsRhumbLine(v,_,T),v=t.clone(_,D);var A=3*(R+1),g=new Array(A),S=0;for(y=0;y<u-1;y++){S=E(o[y],o[y+1],T,s,h?f[y]:f,h?f[y+1]:f,g,S)}M.length=0;var O=o[u-1],w=s.cartesianToCartographic(O,I);w.height=h?f[u-1]:f;var C=s.cartographicToCartesian(w,N);return e.pack(C,g,A-3),g},m.generateCartesianArc=function(t){for(var n=m.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m.generateCartesianRhumbArc=function(t){for(var n=m.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m}),define("Core/PolylineVolumeGeometryLibrary",["./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./CornerType","./EllipsoidTangentPlane","./Math","./Matrix3","./Matrix4","./PolylinePipeline","./Quaternion","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(e,t){for(var n=new Array(e.length),r=0;r<e.length;r++){var i=e[r];U=t.cartesianToCartographic(i,U),n[r]=U.height,e[r]=t.scaleToGeodeticSurface(i,i)}return n}function d(e,n,r,i){var a,o=e[0],u=e[1],s=t.angleBetween(o,u),c=Math.ceil(s/i),l=new Array(c);if(n===r){for(a=0;a<c;a++)l[a]=n;return l.push(r),l}var f=r-n,h=f/c;for(a=1;a<c;a++){var d=n+a*h;l[a]=d}return l[0]=n,l.push(r),l}function p(n,r,i,o){var u=new a(i,o),s=u.projectPointOntoPlane(t.add(i,n,D),D),c=u.projectPointOntoPlane(t.add(i,r,L),L),l=e.angleBetween(s,c);return c.x*s.y-c.y*s.x>=0?-l:l}function E(e,n,r,i,a,o,c,l){var h=G,d=V;b=f.eastNorthUpToFixedFrame(e,a,b),h=s.multiplyByPointAsVector(b,F,h),h=t.normalize(h,h);var E=p(h,n,e,a);q=u.fromRotationZ(E,q),W.z=o,b=s.multiplyTransformation(b,s.fromRotationTranslation(q,W,B),b);var m=z;m[0]=c;for(var y=0;y<l;y++)for(var _=0;_<r.length;_+=3)d=t.fromArray(r,_,d),d=u.multiplyByVector(m,d,d),d=s.multiplyByPoint(b,d,d),i.push(d.x,d.y,d.z);return i}function m(e,n,r,i,a,o,u){for(var s=0;s<e.length;s+=3){i=E(t.fromArray(e,s,X),n,r,i,a,o[s/3],u,1)}return i}function y(e,t){var n=e.length,r=new Array(6*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=e[0];r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o;for(var s=1;s<n;s++){u=e[s];var c=u.x-a,l=u.y-o;r[i++]=c,r[i++]=0,r[i++]=l,r[i++]=c,r[i++]=0,r[i++]=l}return u=e[0],r[i++]=u.x-a,r[i++]=0,r[i++]=u.y-o,r}function _(e,t){for(var n=e.length,r=new Array(3*n),i=0,a=t.x+t.width/2,o=t.y+t.height/2,u=0;u<n;u++)r[i++]=e[u].x-a,r[i++]=0,r[i++]=e[u].y-o;return r}function T(e,n,r,a,s,c,f,h,d,p){var m,y=t.angleBetween(t.subtract(n,e,x),t.subtract(r,e,C)),_=a===i.BEVELED?0:Math.ceil(y/o.toRadians(5));m=s?u.fromQuaternion(l.fromAxisAngle(t.negate(e,x),y/(_+1),H),k):u.fromQuaternion(l.fromAxisAngle(e,y/(_+1),H),k);var T,R;if(n=t.clone(n,Y),_>0)for(var v=p?2:1,A=0;A<_;A++)n=u.multiplyByVector(m,n,n),T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(n,C),f=E(R,T,h,f,c,d,1,v);else T=t.subtract(n,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(n,C),f=E(R,T,h,f,c,d,1,1),r=t.clone(r,Y),T=t.subtract(r,e,x),T=t.normalize(T,T),s||(T=t.negate(T,T)),R=c.scaleToGeodeticSurface(r,C),f=E(R,T,h,f,c,d,1,1);return f}var R=[new t,new t],v=new t,A=new t,g=new t,S=new t,O=new t,M=new t,I=new t,w=new t,N=new t,x=new t,C=new t,P={},U=new r,D=new t,L=new t,F=new t(-1,0,0),b=new s,B=new s,q=new u,z=u.IDENTITY.clone(),G=new t,V=new n,W=new t,X=new t,H=new l,Y=new t,k=new u;P.removeDuplicatesFromShape=function(t){for(var n=t.length,r=[],i=n-1,a=0;a<n;i=a++){var o=t[i],u=t[a];e.equals(o,u)||r.push(u)}return r},P.angleIsGreaterThanPi=function(e,n,r,i){var o=new a(r,i),u=o.projectPointOntoPlane(t.add(r,e,D),D),s=o.projectPointOntoPlane(t.add(r,n,L),L);return s.x*u.y-s.y*u.x>=0};var j=new t,Z=new t;return P.computePositions=function(e,n,r,a,u){var s=a._ellipsoid,l=h(e,s),f=a._granularity,p=a._cornerType,C=u?y(n,r):_(n,r),U=u?_(n,r):void 0,D=r.height/2,L=r.width/2,F=e.length,b=[],B=u?[]:void 0,q=v,z=A,G=g,V=S,W=O,X=M,H=I,Y=w,k=N,K=e[0],J=e[1];V=s.geodeticSurfaceNormal(K,V),q=t.subtract(J,K,q),q=t.normalize(q,q),Y=t.cross(V,q,Y),Y=t.normalize(Y,Y);var Q=l[0],$=l[1];u&&(B=E(K,Y,U,B,s,Q+D,1,1)),k=t.clone(K,k),K=J,z=t.negate(q,z);for(var ee,te,ne=1;ne<F-1;ne++){var re=u?2:1;J=e[ne+1],q=t.subtract(J,K,q),q=t.normalize(q,q),G=t.add(q,z,G),G=t.normalize(G,G),V=s.geodeticSurfaceNormal(K,V);var ie=t.multiplyByScalar(V,t.dot(q,V),j);t.subtract(q,ie,ie),t.normalize(ie,ie);var ae=t.multiplyByScalar(V,t.dot(z,V),Z);t.subtract(z,ae,ae),t.normalize(ae,ae);if(!o.equalsEpsilon(Math.abs(t.dot(ie,ae)),1,o.EPSILON7)){G=t.cross(G,V,G),G=t.cross(V,G,G),G=t.normalize(G,G);var oe=1/Math.max(.25,t.magnitude(t.cross(G,z,x))),ue=P.angleIsGreaterThanPi(q,z,K,s);ue?(W=t.add(K,t.multiplyByScalar(G,oe*L,G),W),X=t.add(W,t.multiplyByScalar(Y,L,X),X),R[0]=t.clone(k,R[0]),R[1]=t.clone(X,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),b=m(te,Y,C,b,s,ee,1),Y=t.cross(V,q,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,L,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,b,C,$+D,u):(G=t.negate(G,G),b=E(K,G,C,b,s,$+D,oe,re)),k=t.clone(H,k)):(W=t.add(K,t.multiplyByScalar(G,oe*L,G),W),X=t.add(W,t.multiplyByScalar(Y,-L,X),X),R[0]=t.clone(k,R[0]),R[1]=t.clone(X,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),b=m(te,Y,C,b,s,ee,1),Y=t.cross(V,q,Y),Y=t.normalize(Y,Y),H=t.add(W,t.multiplyByScalar(Y,-L,H),H),p===i.ROUNDED||p===i.BEVELED?T(W,X,H,p,ue,s,b,C,$+D,u):b=E(K,G,C,b,s,$+D,oe,re),k=t.clone(H,k)),z=t.negate(q,z)}else b=E(k,Y,C,b,s,Q+D,1,1),k=K;Q=$,$=l[ne+1],K=J}R[0]=t.clone(k,R[0]),R[1]=t.clone(K,R[1]),ee=d(R,Q+D,$+D,f),te=c.generateArc({positions:R,granularity:f,ellipsoid:s}),b=m(te,Y,C,b,s,ee,1),u&&(B=E(K,Y,U,B,s,$+D,1,1)),F=b.length;var se=u?F+B.length:F,ce=new Float64Array(se);return ce.set(b),u&&ce.set(B,F),ce},P}),define("Core/PolylineVolumeOutlineGeometry",["./arrayRemoveDuplicates","./BoundingRectangle","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CornerType","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PolygonPipeline","./PolylineVolumeGeometryLibrary","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,y,_,T){"use strict";function R(e,t){var r=new d;r.position=new h({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:e});var i,o,u=t.length,s=r.position.values.length/3,c=e.length/3,l=c/u,E=p.createTypedArray(s,2*u*(l+1)),m=0;i=0;var y=i*u;for(o=0;o<u-1;o++)E[m++]=o+y,E[m++]=o+y+1;for(E[m++]=u-1+y,E[m++]=y,i=l-1,y=i*u,o=0;o<u-1;o++)E[m++]=o+y,E[m++]=o+y+1;for(E[m++]=u-1+y,E[m++]=y,i=0;i<l-1;i++){var T=u*i,R=T+u;for(o=0;o<u;o++)E[m++]=o+T,E[m++]=o+R}return new f({attributes:r,indices:p.createTypedArray(s,E),boundingSphere:n.fromVertices(e),primitiveType:_.LINES})}function v(e){e=u(e,u.EMPTY_OBJECT);var t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=l.clone(u(e.ellipsoid,l.WGS84)),this._cornerType=u(e.cornerType,o.ROUNDED),this._granularity=u(e.granularity,E.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";var a=1+t.length*i.packedLength;a+=1+n.length*r.packedLength,this.packedLength=a+l.packedLength+2}v.pack=function(e,t,n){n=u(n,0);var a,o=e._positions,s=o.length;for(t[n++]=s,a=0;a<s;++a,n+=i.packedLength)i.pack(o[a],t,n);var c=e._shape;for(s=c.length,t[n++]=s,a=0;a<s;++a,n+=r.packedLength)r.pack(c[a],t,n);return l.pack(e._ellipsoid,t,n),n+=l.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var A=l.clone(l.UNIT_SPHERE),g={polylinePositions:void 0,shapePositions:void 0,ellipsoid:A,height:void 0,cornerType:void 0,granularity:void 0};v.unpack=function(e,t,n){t=u(t,0);var a,o=e[t++],c=new Array(o);for(a=0;a<o;++a,t+=i.packedLength)c[a]=i.unpack(e,t);o=e[t++];var f=new Array(o);for(a=0;a<o;++a,t+=r.packedLength)f[a]=r.unpack(e,t);var h=l.unpack(e,t,A);t+=l.packedLength;var d=e[t++],p=e[t];return s(n)?(n._positions=c,n._shape=f,n._ellipsoid=l.clone(h,n._ellipsoid),n._cornerType=d,n._granularity=p,n):(g.polylinePositions=c,g.shapePositions=f,g.cornerType=d,g.granularity=p,new v(g))};var S=new t;return v.createGeometry=function(n){var r=n._positions,a=e(r,i.equalsEpsilon),o=n._shape;if(o=y.removeDuplicatesFromShape(o),!(a.length<2||o.length<3)){m.computeWindingOrder2D(o)===T.CLOCKWISE&&o.reverse();var u=t.fromPoints(o,S);return R(y.computePositions(a,o,u,n,!1),o)}},v}),define("Workers/createPolylineVolumeOutlineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/PolylineVolumeOutlineGeometry"],function(e,t,n){"use strict";function r(r,i){return e(i)&&(r=n.unpack(r,i)),r._ellipsoid=t.clone(r._ellipsoid),n.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as w}from"./chunk-2QX3ZRAN.js";import{a as N,b as E}from"./chunk-GCC64MRJ.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import{a as v,b as G}from"./chunk-M243PNMW.js";import{a as q}from"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as k}from"./chunk-T53UE6JF.js";import{a as O}from"./chunk-RYO6NY7F.js";import{b as A,c as R,d as S}from"./chunk-2HSPJH3C.js";import{d as C}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as b}from"./chunk-6QVIJ7JA.js";import{a,c as _,d as s}from"./chunk-AODSXSC5.js";import{a as D}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as d}from"./chunk-WHQYJFDH.js";import{a as y}from"./chunk-OYWUGDKS.js";import{e as u}from"./chunk-DRYFJEFT.js";function W(o,i){let t=new O;t.position=new S({componentDatatype:b.DOUBLE,componentsPerAttribute:3,values:o});let e=i.length,r=t.position.values.length/3,f=o.length/3/e,p=k.createTypedArray(r,2*e*(f+1)),m,n,l=0;m=0;let h=m*e;for(n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=f-1,h=m*e,n=0;n<e-1;n++)p[l++]=n+h,p[l++]=n+h+1;for(p[l++]=e-1+h,p[l++]=h,m=0;m<f-1;m++){let T=e*m,U=T+e;for(n=0;n<e;n++)p[l++]=n+T,p[l++]=n+U}return new R({attributes:t,indices:k.createTypedArray(r,p),boundingSphere:C.fromVertices(o),primitiveType:A.LINES})}function g(o){o=d(o,d.EMPTY_OBJECT);let i=o.polylinePositions,t=o.shapePositions;if(!u(i))throw new y("options.polylinePositions is required.");if(!u(t))throw new y("options.shapePositions is required.");this._positions=i,this._shape=t,this._ellipsoid=s.clone(d(o.ellipsoid,s.default)),this._cornerType=d(o.cornerType,N.ROUNDED),this._granularity=d(o.granularity,D.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let e=1+i.length*a.packedLength;e+=1+t.length*_.packedLength,this.packedLength=e+s.packedLength+2}g.pack=function(o,i,t){if(!u(o))throw new y("value is required");if(!u(i))throw new y("array is required");t=d(t,0);let e,r=o._positions,c=r.length;for(i[t++]=c,e=0;e<c;++e,t+=a.packedLength)a.pack(r[e],i,t);let f=o._shape;for(c=f.length,i[t++]=c,e=0;e<c;++e,t+=_.packedLength)_.pack(f[e],i,t);return s.pack(o._ellipsoid,i,t),t+=s.packedLength,i[t++]=o._cornerType,i[t]=o._granularity,i};var B=s.clone(s.UNIT_SPHERE),P={polylinePositions:void 0,shapePositions:void 0,ellipsoid:B,height:void 0,cornerType:void 0,granularity:void 0};g.unpack=function(o,i,t){if(!u(o))throw new y("array is required");i=d(i,0);let e,r=o[i++],c=new Array(r);for(e=0;e<r;++e,i+=a.packedLength)c[e]=a.unpack(o,i);r=o[i++];let f=new Array(r);for(e=0;e<r;++e,i+=_.packedLength)f[e]=_.unpack(o,i);let p=s.unpack(o,i,B);i+=s.packedLength;let m=o[i++],n=o[i];return u(t)?(t._positions=c,t._shape=f,t._ellipsoid=s.clone(p,t._ellipsoid),t._cornerType=m,t._granularity=n,t):(P.polylinePositions=c,P.shapePositions=f,P.cornerType=m,P.granularity=n,new g(P))};var M=new w;g.createGeometry=function(o){let i=o._positions,t=q(i,a.equalsEpsilon),e=o._shape;if(e=E.removeDuplicatesFromShape(e),t.length<2||e.length<3)return;G.computeWindingOrder2D(e)===v.CLOCKWISE&&e.reverse();let r=w.fromPoints(e,M),c=E.computePositions(t,e,r,o,!1);return W(c,e)};var L=g;function j(o,i){return u(i)&&(o=L.unpack(o,i)),o._ellipsoid=s.clone(o._ellipsoid),L.createGeometry(o)}var he=j;export{he as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleGeometry.js index f8c157ff1..a2db6a9e4 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleGeometry.js @@ -1,232 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:p,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,v=E+y+_,T=Math.sqrt(1/v),R=e.multiplyByScalar(r,T,a);if(v<s)return isFinite(T)?e.clone(R,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=R.x*A*2,O.y=R.y*g*2,O.z=R.z*S*2;var w,I,N,M,x,C,P,b,U,D,L,F=(1-T)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{F-=B,N=1/(1+F*A),M=1/(1+F*g),x=1/(1+F*S),C=N*N,P=M*M,b=x*x,U=C*N,D=P*M,L=b*x,w=E*C+y*P+_*b-1,I=E*U*A+y*D*g+_*L*S;B=w/(-2*I)}while(Math.abs(w)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*M,c.z=h*x,c):new e(l*N,f*M,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var p=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,E=n(r)?r._centerToleranceSquared:d,y=o(t,p,m,E,c);if(n(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var v=e.subtract(t,y,l),T=Math.atan2(_.y,_.x),R=Math.asin(_.z),A=a.sign(e.dot(v,t))*e.magnitude(v);return n(i)?(i.longitude=T,i.latitude=R,i.height=A,i):new u(T,R,A)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(r,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],p[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],v=(E-y)/2/_;d=v<0?-1/(-v+Math.sqrt(1+v*v)):1/(v+Math.sqrt(1+v*v)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=r-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-r+u-f+d,v=2*(c-o),T=2*(a-l),R=2*(c+o),A=-r-u+f+d;return n(t)?(t[0]=p,t[1]=y,t[2]=T,t[3]=m,t[4]=_,t[5]=R,t[6]=E,t[7]=v,t[8]=A,t):new s(p,m,E,y,_,v,T,R,A)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){ -var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(p,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(E,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,v=s-d-E+_,T=2*(c-y),R=2*(f+m),A=2*(c+y),g=-s+d-E+_,S=2*(p-h),O=2*(f-m),w=2*(p+h),I=-s-d+E+_;return n[0]=v*a,n[1]=A*a,n[2]=O*a,n[3]=0,n[4]=T*o,n[5]=g*o,n[6]=w*o,n[7]=0,n[8]=R*u,n[9]=S*u,n[10]=I*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,v=d.z,T=n.x,R=n.y,A=n.z,g=u*-T+s*-R+c*-A,S=y*-T+_*-R+v*-A,O=p*T+m*R+E*A;return i(r)?(r[0]=u,r[1]=y,r[2]=-p,r[3]=0,r[4]=s,r[5]=_,r[6]=-m,r[7]=0,r[8]=c,r[9]=v,r[10]=-E,r[11]=0,r[12]=g,r[13]=S,r[14]=O,r[15]=1,r):new l(u,s,c,g,y,_,v,S,-p,-m,-E,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var p=new e;l.setScale=function(t,r,n){var i=l.getScale(t,p),a=e.divideComponents(r,i,p);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],v=t[0],T=t[1],R=t[2],A=t[3],g=t[4],S=t[5],O=t[6],w=t[7],I=t[8],N=t[9],M=t[10],x=t[11],C=t[12],P=t[13],b=t[14],U=t[15],D=n*v+u*T+f*R+m*A,L=i*v+s*T+h*R+E*A,F=a*v+c*T+d*R+y*A,B=o*v+l*T+p*R+_*A,z=n*g+u*S+f*O+m*w,q=i*g+s*S+h*O+E*w,G=a*g+c*S+d*O+y*w,V=o*g+l*S+p*O+_*w,W=n*I+u*N+f*M+m*x,X=i*I+s*N+h*M+E*x,Y=a*I+c*N+d*M+y*x,H=o*I+l*N+p*M+_*x,k=n*C+u*P+f*b+m*U,j=i*C+s*P+h*b+E*U,Z=a*C+c*P+d*b+y*U,K=o*C+l*P+p*b+_*U;return r[0]=D,r[1]=L,r[2]=F,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=Y,r[11]=H,r[12]=k,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],v=t[5],T=t[6],R=t[8],A=t[9],g=t[10],S=t[12],O=t[13],w=t[14],I=n*m+o*E+c*y,N=i*m+u*E+l*y,M=a*m+s*E+f*y,x=n*_+o*v+c*T,C=i*_+u*v+l*T,P=a*_+s*v+f*T,b=n*R+o*A+c*g,U=i*R+u*A+l*g,D=a*R+s*A+f*g,L=n*S+o*O+c*w+h,F=i*S+u*O+l*w+d,B=a*S+s*O+f*w+p;return r[0]=I,r[1]=N,r[2]=M,r[3]=0,r[4]=x,r[5]=C,r[6]=P,r[7]=0,r[8]=b,r[9]=U,r[10]=D,r[11]=0,r[12]=L,r[13]=F,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],v=t[7],T=t[8],R=n*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=n*m+o*E+c*y,O=i*m+u*E+l*y,w=a*m+s*E+f*y,I=n*_+o*v+c*T,N=i*_+u*v+l*T,M=a*_+s*v+f*T;return r[0]=R,r[1]=A,r[2]=g,r[3]=0,r[4]=S,r[5]=O,r[6]=w,r[7]=0,r[8]=I,r[9]=N,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,v=new s,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],A=e[14],g=e[3],S=e[7],O=e[11],w=e[15],I=y*w,N=A*O,M=E*w,x=A*S,C=E*O,P=y*S,b=m*w,U=A*g,D=m*O,L=y*g,F=m*S,B=E*g,z=I*h+x*d+C*p-(N*h+M*d+P*p),q=N*f+b*d+L*p-(I*f+U*d+D*p),G=M*f+U*h+F*p-(x*f+b*h+B*p),V=P*f+D*h+B*d-(C*f+L*h+F*d),W=N*i+M*a+P*o-(I*i+x*a+C*o),X=I*n+U*a+D*o-(N*n+b*a+L*o),Y=x*n+b*i+B*o-(M*n+U*i+F*o),H=C*n+L*i+F*a-(P*n+D*i+B*a);I=a*p,N=o*d,M=i*p,x=o*h,C=i*d,P=a*h,b=n*p,U=o*f,D=n*d,L=a*f,F=n*h,B=i*f;var k=I*S+x*O+C*w-(N*S+M*O+P*w),j=N*g+b*O+L*w-(I*g+U*O+D*w),Z=M*g+U*S+F*w-(x*g+b*S+B*w),K=P*g+D*S+B*O-(C*g+L*S+F*O),J=M*y+P*A+N*E-(C*A+I*E+x*y),Q=D*A+I*m+U*y-(b*y+L*A+N*m),$=b*E+B*A+x*m-(F*A+M*m+U*E),ee=F*y+C*m+L*E-(D*E+B*y+P*m),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),v,u.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=Y*te,r[7]=H*te,r[8]=k*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-r*f-n*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,v=new e,T=new e,R=new e,A=new e,g=new e,S=new e,O=new e,w=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,v),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var w=a.x,I=a.y,N=a.z;w<o.x&&e.clone(a,o),w>c.x&&e.clone(a,c),I<u.y&&e.clone(a,u),I>l.y&&e.clone(a,l),N<s.z&&e.clone(a,s),N>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,R)),x=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=o,b=c,U=M;x>U&&(U=x,P=u,b=l),C>U&&(U=C,P=s,b=f);var D=A;D.x=.5*(P.x+b.x),D.y=.5*(P.y+b.y),D.z=.5*(P.z+b.z);var L=e.magnitudeSquared(e.subtract(b,D,R)),F=Math.sqrt(L),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var z=S;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,R));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,D,R));if(W>L){var X=Math.sqrt(W);F=.5*(F+X),L=F*F;var Y=X-F;D.x=(F*D.x+Y*a.x)/X,D.y=(F*D.y+Y*a.y)/X,D.z=(F*D.z+Y*a.z)/X}}return F<G?(e.clone(D,r.center),r.radius=F):(e.clone(q,r.center),r.radius=G),r};var I=new o,N=new e,M=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,I),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=r.project(x,N),c=r.project(C,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=T;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),w=e.clone(u,_),I=e.clone(u,v),N=t.length;for(s=0;s<N;s+=a){var M=t[s]+r.x,x=t[s+1]+r.y,C=t[s+2]+r.z;u.x=M,u.y=x,u.z=C,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>w.y&&e.clone(u,w),C<f.z&&e.clone(u,f),C>I.z&&e.clone(u,I)}var P=e.magnitudeSquared(e.subtract(h,c,R)),b=e.magnitudeSquared(e.subtract(w,l,R)),U=e.magnitudeSquared(e.subtract(I,f,R)),D=c,L=h,F=P;b>F&&(F=b,D=l,L=w),U>F&&(F=U,D=f,L=I);var B=A;B.x=.5*(D.x+L.x),B.y=.5*(D.y+L.y),B.z=.5*(D.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),q=Math.sqrt(z),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=S;V.x=h.x,V.y=w.y,V.z=I.z;var W=e.midpoint(G,V,O),X=0;for(s=0;s<N;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var Y=e.magnitude(e.subtract(u,W,R));Y>X&&(X=Y);var H=e.magnitudeSquared(e.subtract(u,B,R));if(H>z){var k=Math.sqrt(H);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,v),w=t.length;for(o=0;o<w;o+=3){var I=t[o]+r[o],N=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=I,a.y=N,a.z=M,I<u.x&&e.clone(a,u),I>l.x&&e.clone(a,l),N<s.y&&e.clone(a,s),N>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,R)),C=e.magnitudeSquared(e.subtract(f,s,R)),P=e.magnitudeSquared(e.subtract(h,c,R)),b=u,U=l,D=x;C>D&&(D=C,b=s,U=f),P>D&&(D=P,b=c,U=h);var L=A;L.x=.5*(b.x+U.x),L.y=.5*(b.y+U.y),L.z=.5*(b.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,R)),B=Math.sqrt(F),z=g;z.x=u.x,z.y=s.y,z.z=c.z;var q=S;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<w;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,R));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,R));if(X>F){var Y=Math.sqrt(X);B=.5*(B+Y),F=B*B;var H=Y-B;L.x=(B*L.x+H*a.x)/Y,L.y=(B*L.y+H*a.y)/Y,L.z=(B*L.z+H*a.z)/Y}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var b=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,b)+c.radius)}return r.radius=s,r};var U=new e,D=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,U),o=l.getColumn(n,1,D),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var F=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,F),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,Y=new e,H=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,H),h=e.negate(c,Y),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var v=a.cartesianToCartographic(_,k);r.project(v,_)}i=d.fromPoints(p,i),o=i.center;var T=o.x,R=o.y,A=o.z;return o.x=A,o.y=T,o.z=R,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return w*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t}, -o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=R,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,v;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},v=0;v<_;++v)v in t&&e(t[v],s,u,E);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return E(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},v.apply(t,n)})}function p(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function E(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var v,T,R;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,v=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,w=o(e[1]))}return O}function s(){return u()&&w}function c(){if(!t(I)&&(I=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function l(){return c()&&N}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(M=!0,x=o(e[1]),x.isNightly=!!e[2])}return M}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(b)){b=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(b=!0,U=o(e[1]))}return b}function E(){return m()&&U}function y(){if(!t(D)){D=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(D=!0,L=o(e[1]))}return D}function _(){return t(F)||(F=/Windows/i.test(S.appVersion)),F}function v(){return y()&&L}function T(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function R(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function A(){return R()?z:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,w,I,N,M,x,C,P,b,U,D,L,F,B,z,q;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,m())return g._result=!1,e.resolve(g._result),e.promise;var r=new Image;return r.onload=function(){g._result=r.width>0&&r.height>0,e.resolve(g._result)},r.onerror=function(){g._result=!1,e.resolve(g._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:v,isWindows:_,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],v=E[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(v,v)]+1);var T=f;T[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(v,_)]-e[u.getElementIndex(_,v)])*r,T[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r, -T[v]=(e[u.getElementIndex(v,y)]+e[u.getElementIndex(y,v)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var E=new e,y=new e,_=new s,v=new s,T=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,T),s.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,T,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);n[o]=E.x*u,n[o+1]=E.y*u,n[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,v),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,v,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,p=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=p,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var R=new s;s.lerp=function(e,t,r,n){return R=s.multiplyByScalar(t,r,R),n=s.multiplyByScalar(e,1-r,n),s.add(R,n,n)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-r)*u),g),S=s.multiplyByScalar(a,Math.sin(r*u),S),n=s.add(g,S,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,w=new e,I=new s,N=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,I);s.multiply(a,n,N);var o=s.log(N,O);s.multiply(a,t,N);var u=s.log(N,w);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,I),s.multiply(r,I,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,I),u=s.slerp(r,n,i,N);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],b=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=0;D<7;++D){var L=D+1,F=2*L+1;C[D]=1/(L*F),P[D]=L/F}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)b[f]=(C[f]*c-P[f])*o,U[f]=(C[f]*l-P[f])*o;var h=i*r*(1+b[0]*(1+b[1]*(1+b[2]*(1+b[3]*(1+b[4]*(1+b[5]*(1+b[6]*(1+b[7])))))))),d=u*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,n),s.add(p,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,I),u=s.fastSlerp(r,n,i,N);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,v="",T=!1,R=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":v=" ";break;case"+":v="+";break;case"-":_=!0;break;case"'":A=s.charAt(S+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,T,A);case"c":return u(String.fromCharCode(+y),_,c,f,T);case"b":return o(y,2,R,_,c,f,T);case"o":return o(y,8,R,_,c,f,T);case"x":return o(y,16,R,_,c,f,T);case"X":return o(y,16,R,_,c,f,T).toUpperCase();case"u":return o(y,10,R,_,c,f,T);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":v,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":v,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,T)[E]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}m.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=m.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-n[0].offset,r);if(i>=n.length)return m.addSeconds(e,-n[i-1].offset,r);var a=m.secondsDifference(n[i].julianDate,e);return 0===a?m.addSeconds(e,-n[i].offset,r):a<=1?void 0:m.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function p(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,v=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,w=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var r=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,S=0,N=u[0],M=u[1];if(null!==(u=N.match(g)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=N.match(T)))r=+u[1],s=+u[2];else if(null!==(u=N.match(v)))r=+u[1];else{var x;if(null!==(u=N.match(R)))r=+u[1],x=+u[2],a=o(r);else if(null!==(u=N.match(A))){r=+u[1];var C=+u[2],P=+u[3]||0,b=new Date(Date.UTC(r,0,4));x=7*C+P-b.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var U;if(n(M)){u=M.match(I),null!==u?(h=+u[1],E=+u[2],_=+u[3],S=1e3*+(u[4]||0),U=5):(u=M.match(w),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),U=4):null!==(u=M.match(O))&&(h=+u[1],E=60*+(u[2]||0),U=3));var D=u[U],L=+u[U+1],F=+(u[U+2]||0);switch(D){case"+":h-=L,E-=F;break;case"-":h+=L,E+=F;break;case"Z":break;default:E+=new Date(Date.UTC(r,s-1,l,h,E)).getTimezoneOffset()}}var B=60===_;for(B&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=p(r,s,l,h,E,_,S);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var N=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,i=h(e,N);n(i)||(m.addSeconds(e,-1,N),i=h(N,N),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,v=u-_*s.SECONDS_PER_HOUR,T=v/s.SECONDS_PER_MINUTE|0;v-=T*s.SECONDS_PER_MINUTE;var R=0|v,A=(v-R)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(R+=1),n(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=T,t.second=R,t.millisecond=A,t.isLeapSecond=r,t):new a(y,E,p,_,T,R,A,r)},m.toDate=function(e){var t=m.toGregorianDate(e,E),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var r=m.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--O[e.serverKey],I.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function v(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--O[e.serverKey],++R.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},w="undefined"!=typeof document?new e(document.location.href):new e,I=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=I,a(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();v(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,r=0,n=S.length;for(e=0;e<n;++e)t=S[e],t.cancelled&&v(t),t.state===l.ACTIVE?r>0&&(S[e-r]=t):++r;S.length-=r;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?v(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):v(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(w);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return I.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;v(t)}return m(e)}}},h.clearForSpecs=function(){for(;g.length>0;){v(g.pop())}for(var e=S.length,t=0;t<e;++t)v(S[t]);S.length=0,O={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,g,S,O){"use strict";function w(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=v(i);t._queryParameters=r?x(a,t._queryParameters,n):a,e.query=void 0}function I(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function N(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]), -n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);w(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,n,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function b(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},C._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,b(e,r,n)):t.reject(i)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function D(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return U(n,i);case"arraybuffer":return D(n,i);case"blob":var a=D(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(U(n,i),r);case"json":return JSON.parse(U(n,i))}}function F(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new S("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new R)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return q}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);w(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&I(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);w(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},C.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=r(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return b(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==g.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=g.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,r,n,i){C.supportsImageBitmapOptions().then(function(n){return n&&i?C.fetchBlob({url:e}):void F(e,t,r)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},C.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new R)},c.send(n),c},C._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))p(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,v=e._addNewLeapSeconds,T=0,R=E.length;T<R;T+=e._columnCount){var A=E[T+i],g=E[T+m],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(y.push(O),v){if(g!==_&&n(_)){var w=o.leapSeconds,I=t(w,O,d);if(I<0){var N=new u(O,g);w.splice(~I,0,N)}}_=g}}}function m(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,i,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var v=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];v!==T&&(l.equals(n)?p=y:y-=T-v)}return u.xPoleWander=E(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!n(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=p.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,v=this._coef,T=this._xTable;for(p=0;p<=u;++p)y[p]=E-T[p];for(p=0;p<=u;++p){for(v[p]=1,m=0;m<=u;++m)m!==p&&(v[p]*=y[m]);v[p]*=_[p];var R=3*(s+p);r.x+=v[p]*d[R++],r.y+=v[p]*d[R++],r.s+=v[p]*d[R]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T){"use strict";var R={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},w=new r,I=new r,N=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=A[e][t],a=e+t;return u(S[a])?n=S[a]:(n=function(n,a,s){if(u(s)||(s=new _),E.equalsEpsilon(n.x,0,E.EPSILON14)&&E.equalsEpsilon(n.y,0,E.EPSILON14)){var c=E.sign(n.z);r.unpack(g[e],0,w),"east"!==e&&"west"!==e&&r.multiplyByScalar(w,c,w),r.unpack(g[t],0,I),"east"!==t&&"west"!==t&&r.multiplyByScalar(I,c,I),r.unpack(g[i],0,N),"east"!==i&&"west"!==i&&r.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),w=O[e],I=O[t],N=O[i]}return s[0]=w.x,s[1]=w.y,s[2]=w.z,s[3]=0,s[4]=I.x,s[5]=I.y,s[6]=I.z,s[7]=0,s[8]=N.x,s[9]=N.y,s[10]=N.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},S[a]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var M=new v,x=new r(1,1,1),C=new _;R.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,R.eastNorthUpToFixedFrame);var u=v.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,x,C);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,b=new y;R.headingPitchRollQuaternion=function(e,t,r,n,i){var a=R.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,b);return v.fromRotationMatrix(o,i)};var U=new r(1,1,1),D=new r,L=new _,F=new _,B=new y,z=new v;R.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,R.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,D);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,U,F);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=v.fromRotationMatrix(_.getRotation(s,B),z);return l=v.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},R.iau2006XysData=new d,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=R.iau2006XysData.preload(r,n,i,a),u=R.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},R.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=R.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new p(0,0,0),W=new l(0,0,0,0,0,0),X=new y,Y=new y;R.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=R.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=R.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,Y),h=y.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,v=p/T.SECONDS_PER_DAY,A=.779057273264+v+.00273781191135448*(_+v);A=A%1*E.TWO_PI;var g=y.fromRotationZ(A,Y),S=y.multiply(h,g,X),O=Math.cos(r.xPoleWander),w=Math.cos(r.yPoleWander),I=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),M=n-2451545+i/T.SECONDS_PER_DAY;M/=36525;var x=-47e-6*M*E.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),b=Y;return b[0]=O*C,b[1]=O*P,b[2]=I,b[3]=-w*P+N*I*C,b[4]=w*C+N*I*P,b[5]=-N*O,b[6]=-N*P-w*I*C,b[7]=N*C-w*I*P,b[8]=w*O,y.multiply(S,b,t)}}};var H=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=H;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,Z=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,E.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return R.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=R.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=R.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},R}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var y=new r,_=new t,v=new f,T=[new r,new r,new r],R=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,w=new c;return E._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=p.center(o,y),h=r.toCartesian(s,a,_),E=m.eastNorthUpToFixedFrame(h,a,v),I=f.inverse(E,v),N=R,M=T;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var x=g;for(u=0;u<3;u++)r.toCartesian(M[u],a,x),x=f.multiplyByPointAsVector(I,x,x),N[u].x=x.x,N[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),b=n.length,U=Number.POSITIVE_INFINITY,D=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,F=Number.NEGATIVE_INFINITY;for(u=0;u<b;u++)x=f.multiplyByPointAsVector(I,n[u],x),x=l.multiplyByVector(P,x,x),U=Math.min(U,x.x),D=Math.min(D,x.y),L=Math.max(L,x.x),F=Math.max(F,x.y);var B=c.fromRotation(i,w),z=A;z[0].x=U,z[0].y=D,z[1].x=U,z[1].y=F,z[2].x=L,z[2].y=D;var q=N[0],G=N[2].x-q.x,V=N[1].y-q.y;for(u=0;u<3;u++){var W=z[u];c.multiplyByVector(B,W,W),W.x=(W.x-q.x)/G,W.y=(W.y-q.y)/V}var X=z[0],Y=z[1],H=z[2],k=new Array(6);return e.pack(X,k),e.pack(Y,k,2),e.pack(H,k,4),k},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position, -this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/GeometryInstance",["./defaultValue","./defined","./DeveloperError","./Matrix4"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.geometry=t.geometry,this.modelMatrix=n.clone(e(t.modelMatrix,n.IDENTITY)),this.id=t.id,this.pickPrimitive=t.pickPrimitive,this.attributes=e(t.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}return i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/barycentricCoordinates",["./Cartesian2","./Cartesian3","./Check","./defined","./Math"],function(e,t,r,n,i){"use strict";function a(r,a,c,l,f){n(f)||(f=new t);var h,d,p,m,E,y,_,v;if(n(a.z)){if(t.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(t.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(t.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=t.subtract(c,a,o),d=t.subtract(l,a,u),p=t.subtract(r,a,s),m=t.dot(h,h),E=t.dot(h,d),y=t.dot(h,p),_=t.dot(d,d),v=t.dot(d,p)}else{if(e.equalsEpsilon(r,a,i.EPSILON14))return t.clone(t.UNIT_X,f);if(e.equalsEpsilon(r,c,i.EPSILON14))return t.clone(t.UNIT_Y,f);if(e.equalsEpsilon(r,l,i.EPSILON14))return t.clone(t.UNIT_Z,f);h=e.subtract(c,a,o),d=e.subtract(l,a,u),p=e.subtract(r,a,s),m=e.dot(h,h),E=e.dot(h,d),y=e.dot(h,p),_=e.dot(d,d),v=e.dot(d,p)}var T=m*_-E*E,R=1/T;return f.y=(_*y-E*v)*R,f.z=(m*v-E*y)*R,f.x=1-f.y-f.z,f}var o=new t,u=new t,s=new t;return a}),define("Core/EncodedCartesian3",["./Cartesian3","./Check","./defined"],function(e,t,r){"use strict";function n(){this.high=e.clone(e.ZERO),this.low=e.clone(e.ZERO)}n.encode=function(e,t){r(t)||(t={high:0,low:0});var n;return e>=0?(n=65536*Math.floor(e/65536),t.high=n,t.low=e-n):(n=65536*Math.floor(-e/65536),t.high=-n,t.low=e+n),t};var i={high:0,low:0};n.fromCartesian=function(e,t){r(t)||(t=new n);var a=t.high,o=t.low;return n.encode(e.x,i),a.x=i.high,o.x=i.low,n.encode(e.y,i),a.y=i.high,o.y=i.low,n.encode(e.z,i),a.z=i.high,o.z=i.low,t};var a=new n;return n.writeElements=function(e,t,r){n.fromCartesian(e,a);var i=a.high,o=a.low;t[r]=i.x,t[r+1]=i.y,t[r+2]=i.z,t[r+3]=o.x,t[r+4]=o.y,t[r+5]=o.z},n}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,v,T;h*f>=l*d?(_=o,v=p,T=-2*u*p+o*m):(_=c,v=E,T=-c*m+2*s*E);var R=T<0?-1:1,A=-R*Math.abs(_)*Math.sqrt(-y);a=-T+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-v/S;return i=v<=0?S+O:-T/(S*S+O*O+v),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var w=p,I=-2*u*p+o*m,N=E,M=-c*m+2*s*E,x=Math.sqrt(y),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-I)/3);i=2*Math.sqrt(-w);var b=Math.cos(P);a=i*b;var U=i*(-b/2-C*Math.sin(P)),D=a+U>2*u?a-u:U-u,L=o,F=D/L;P=Math.abs(Math.atan2(c*x,-M)/3),i=2*Math.sqrt(-N),b=Math.cos(P),a=i*b,U=i*(-b/2-C*Math.sin(P));var B=-c,z=a+U<2*s?a+s:U+s,q=B/z,G=L*z,V=-D*z-L*B,W=D*B,X=(s*V-u*W)/(-u*V+s*G);return F<=X?F<=q?X<=q?[F,X,q]:[F,q,X]:[q,F,X]:F<=q?[X,F,q]:X<=q?[X,q,F]:[q,X,F]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var p=n.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),v=Math.sqrt(y);return[h-v,h-_,h+_,h+v]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var T=Math.sqrt(d),R=(s+d-c/T)/2,A=(s+d+c/T)/2,g=n.computeRealRoots(1,T,R),S=n.computeRealRoots(1,-T,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,v=t/2,T=y/2,R=_-4*o,A=_+4*Math.abs(o),g=c-4*E,S=c+4*Math.abs(E);if(E<0||R*S<g*A){var O=Math.sqrt(g);p=O/2,m=0===O?0:(t*T-a)/O}else{var w=Math.sqrt(R);p=0===w?0:(t*T-a)/w,m=w/2}var I,N;0===v&&0===p?(I=0,N=0):r.sign(v)===r.sign(p)?(I=v+p,N=E/I):(N=v-p,I=E/N);var M,x;0===T&&0===m?(M=0,x=0):r.sign(T)===r.sign(m)?(M=T+m,x=o/M):(x=T-m,M=o/x);var C=n.computeRealRoots(1,I,M),P=n.computeRealRoots(1,N,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(n(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function p(t,r,n,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),v=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return v;var T=l[0],R=Math.sqrt(Math.max(1-T*T,0));if(v.push(new e(i,a*T,a*-R)),v.push(new e(i,a*T,a*R)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));v.push(new e(i,a*A,a*-g)),v.push(new e(i,a*A,a*g))}return v}var S=_*_,O=y*y,w=p*p,I=_*y,N=w+O,M=2*(m*p+I),x=2*E*p+m*m-O+S,C=2*(E*m-I),P=E*E-S;if(0===N&&0===M&&0===x&&0===C)return v;l=c.computeRealRoots(N,M,x,C,P);var b=l.length;if(0===b)return v;for(var U=0;U<b;++U){var D,L=l[U],F=L*L,B=Math.max(1-F,0),z=Math.sqrt(B);D=o.sign(p)===o.sign(E)?d(p*F+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*F,m*L+E,o.EPSILON12):d(p*F+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=D*q;G<0?v.push(new e(i,a*L,a*z)):G>0?v.push(new e(i,a*L,a*-z)):0!==z?(v.push(new e(i,a*L,a*-z)),v.push(new e(i,a*L,a*z)),++U):v.push(new e(i,a*L,a*z))}return v}var m={};m.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,v=new e,T=new e;m.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,n,E),R=e.subtract(a,n,y),A=e.cross(p,R,_),g=e.dot(m,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,n,v),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,m,T),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(R,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,n,v),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,m,T),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(R,c)*S}return h},m.rayTriangle=function(t,r,i,a,o,u){var s=m.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var R=new l;m.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=R;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var g=new l;m.lineSegmentSphere=function(t,r,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;m.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=n/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var w=new e,I=new e,N=new e,M=new e,x=new e,C=new u,P=new u,b=new u,U=new u,D=new u,L=new u,F=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,w);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,w),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,I),I),m=e.normalize(e.cross(f,d,N),N),E=C;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(r.radii,b),v=u.fromScale(r.oneOverRadii,U),T=D;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var R,A,g=u.multiply(u.multiply(y,v,L),T,L),S=u.multiply(u.multiply(g,_,F),E,F),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,w),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,Y=0;Y<V;++Y){R=u.multiplyByVector(_,u.multiplyByVector(E,G[Y],B),B);var H=e.normalize(e.subtract(R,i,M),M),k=e.dot(H,a);k>X&&(X=k,W=e.clone(R,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/Tipsify",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";var n={};return n.calculateACMR=function(r){r=e(r,e.EMPTY_OBJECT);var n=r.indices,i=r.maximumIndex,a=e(r.cacheSize,24),o=n.length;if(!t(i)){i=0;for(var u=0,s=n[u];u<o;)s>i&&(i=s),++u,s=n[u]}for(var c=[],l=0;l<i+1;l++)c[l]=0;for(var f=a+1,h=0;h<o;++h)f-c[n[h]]>a&&(c[n[h]]=f,++f);return(f-a+1)/(o/3)},n.tipsify=function(r){function n(e,t,r,n){for(;t.length>=1;){var a=t[t.length-1];if(t.splice(t.length-1,1),e[a].numLiveTriangles>0)return a}for(;i<n;){if(e[i].numLiveTriangles>0)return++i-1;++i}return-1}r=e(r,e.EMPTY_OBJECT);var i,a=r.indices,o=r.maximumIndex,u=e(r.cacheSize,24),s=a.length,c=0,l=0,f=a[l],h=s;if(t(o))c=o+1;else{for(;l<h;)f>c&&(c=f),++l,f=a[l];if(-1===c)return 0;++c}var d,p=[];for(d=0;d<c;d++)p[d]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};l=0;for(var m=0;l<h;)p[a[l]].vertexTriangles.push(m),++p[a[l]].numLiveTriangles,p[a[l+1]].vertexTriangles.push(m),++p[a[l+1]].numLiveTriangles,p[a[l+2]].vertexTriangles.push(m),++p[a[l+2]].numLiveTriangles,++m,l+=3;var E=0,y=u+1;i=1;var _,v,T=[],R=[],A=0,g=[],S=s/3,O=[];for(d=0;d<S;d++)O[d]=!1;for(var w,I;-1!==E;){T=[],v=p[E],I=v.vertexTriangles.length;for(var N=0;N<I;++N)if(m=v.vertexTriangles[N],!O[m]){O[m]=!0,l=m+m+m;for(var M=0;M<3;++M)w=a[l],T.push(w),R.push(w),g[A]=w,++A,_=p[w],--_.numLiveTriangles,y-_.timeStamp>u&&(_.timeStamp=y,++y),++l}E=function(e,t,r,i,a,o,u){for(var s,c=-1,l=-1,f=0;f<r.length;){var h=r[f];i[h].numLiveTriangles&&(s=0,a-i[h].timeStamp+2*i[h].numLiveTriangles<=t&&(s=a-i[h].timeStamp),(s>l||-1===l)&&(l=s,c=h)),++f}return-1===c?n(i,o,e,u):c}(a,u,T,p,y,R,c)}return g},n}),define("Core/GeometryPipeline",["./AttributeCompression","./barycentricCoordinates","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./EncodedCartesian3","./GeographicProjection","./Geometry","./GeometryAttribute","./GeometryType","./IndexDatatype","./Intersect","./IntersectionTests","./Math","./Matrix3","./Matrix4","./Plane","./PrimitiveType","./Tipsify"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,g,S){"use strict";function O(e,t,r,n,i){e[t++]=r,e[t++]=n,e[t++]=n,e[t++]=i,e[t++]=i,e[t]=r}function w(e){for(var t=e.length,r=t/3*6,n=E.createTypedArray(t,r),i=0,a=0;a<t;a+=3,i+=6)O(n,i,e[a],e[a+1],e[a+2]);return n}function I(e){var t=e.length;if(t>=3){var r=6*(t-2),n=E.createTypedArray(t,r);O(n,0,e[0],e[1],e[2]);for(var i=6,a=3;a<t;++a,i+=6)O(n,i,e[a-1],e[a],e[a-2]);return n}return new Uint16Array}function N(e){if(e.length>0){for(var t=e.length-1,r=6*(t-1),n=E.createTypedArray(t,r),i=e[0],a=0,o=1;o<t;++o,a+=6)O(n,a,i,e[o],e[o+1]);return n}return new Uint16Array}function M(e){var t={};for(var r in e)if(e.hasOwnProperty(r)&&c(e[r])&&c(e[r].values)){var n=e[r];t[r]=new p({componentDatatype:n.componentDatatype,componentsPerAttribute:n.componentsPerAttribute,normalize:n.normalize,values:[]})}return t}function x(e,t,r){for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values))for(var i=t[n],a=0;a<i.componentsPerAttribute;++a)e[n].values.push(i.values[r*i.componentsPerAttribute+a])}function C(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),R.multiplyByPoint(e,se,se),i.pack(se,r,a)}function P(e,t){if(c(t))for(var r=t.values,n=r.length,a=0;a<n;a+=3)i.unpack(r,a,se),T.multiplyByVector(e,se,se),se=i.normalize(se,se),i.pack(se,r,a)}function b(e,t){var r,n=e.length,i={},a=e[0][t].attributes;for(r in a)if(a.hasOwnProperty(r)&&c(a[r])&&c(a[r].values)){for(var o=a[r],s=o.values.length,l=!0,f=1;f<n;++f){var h=e[f][t].attributes[r];if(!c(h)||o.componentDatatype!==h.componentDatatype||o.componentsPerAttribute!==h.componentsPerAttribute||o.normalize!==h.normalize){l=!1;break}s+=h.values.length}l&&(i[r]=new p({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:u.createTypedArray(o.componentDatatype,s)}))}return i}function U(e,t){var n,a,o,u,s,l,f,h=e.length,p=(e[0].modelMatrix,c(e[0][t].indices)),m=e[0][t].primitiveType,y=b(e,t);for(n in y)if(y.hasOwnProperty(n))for(s=y[n].values,u=0,a=0;a<h;++a)for(l=e[a][t].attributes[n].values,f=l.length,o=0;o<f;++o)s[u++]=l[o];var _;if(p){var v=0;for(a=0;a<h;++a)v+=e[a][t].indices.length;var T=d.computeNumberOfVertices(new d({attributes:y,primitiveType:g.POINTS})),R=E.createTypedArray(T,v),A=0,S=0;for(a=0;a<h;++a){var O=e[a][t].indices,w=O.length;for(u=0;u<w;++u)R[A++]=S+O[u];S+=d.computeNumberOfVertices(e[a][t])}_=R}var I,N=new i,M=0;for(a=0;a<h;++a){if(I=e[a][t].boundingSphere,!c(I)){N=void 0;break}i.add(I.center,N,N)}if(c(N))for(i.divideByScalar(N,h,N),a=0;a<h;++a){I=e[a][t].boundingSphere;var x=i.magnitude(i.subtract(I.center,N,fe))+I.radius;x>M&&(M=x)}return new d({attributes:y,indices:_,primitiveType:m,boundingSphere:c(N)?new r(N,M):void 0})}function D(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function L(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=1,r[1]=0,r[2]=2;for(var n=3,i=3;i<t;++i)r[n++]=i-1,r[n++]=0,r[n++]=i;return e.indices=r,e.primitiveType=g.TRIANGLES,e}function F(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,3*(t-2));r[0]=0,r[1]=1,r[2]=2,t>3&&(r[3]=0,r[4]=2,r[5]=3);for(var n=6,i=3;i<t-1;i+=2)r[n++]=i,r[n++]=i-1,r[n++]=i+1,i+2<t&&(r[n++]=i,r[n++]=i+1,r[n++]=i+2);return e.indices=r,e.primitiveType=g.TRIANGLES,e}function B(e){if(c(e.indices))return e;for(var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,t),n=0;n<t;++n)r[n]=n;return e.indices=r,e}function z(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*(t-1));r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return e.indices=r,e.primitiveType=g.LINES,e}function q(e){var t=d.computeNumberOfVertices(e),r=E.createTypedArray(t,2*t);r[0]=0,r[1]=1;for(var n=2,i=2;i<t;++i)r[n++]=i-1,r[n++]=i;return r[n++]=t-1,r[n]=0,e.indices=r,e.primitiveType=g.LINES,e}function G(e){switch(e.primitiveType){case g.TRIANGLE_FAN:return L(e);case g.TRIANGLE_STRIP:return F(e);case g.TRIANGLES:return D(e);case g.LINE_STRIP:return z(e);case g.LINE_LOOP:return q(e);case g.LINES:return B(e)}return e}function V(e,t){Math.abs(e.y)<v.EPSILON6&&(e.y=t?-v.EPSILON6:v.EPSILON6)}function W(e,t,r){if(0!==e.y&&0!==t.y&&0!==r.y)return V(e,e.y<0),V(t,t.y<0),void V(r,r.y<0);var n,i=Math.abs(e.y),a=Math.abs(t.y),o=Math.abs(r.y);n=i>a?i>o?v.sign(e.y):v.sign(r.y):a>o?v.sign(t.y):v.sign(r.y);var u=n<0;V(e,u),V(t,u),V(r,u)}function X(e,t,r,n){i.add(e,i.multiplyByScalar(i.subtract(t,e,Se),e.y/(e.y-t.y),Se),r),i.clone(r,n),V(r,!0),V(n,!1)}function Y(e,t,r){if(!(e.x>=0||t.x>=0||r.x>=0)){W(e,t,r);var n=e.y<0,i=t.y<0,a=r.y<0,o=0;o+=n?1:0,o+=i?1:0,o+=a?1:0;var u=Me.indices;1===o?(u[1]=3,u[2]=4,u[5]=6,u[7]=6,u[8]=5,n?(X(e,t,Oe,Ie),X(e,r,we,Ne),u[0]=0,u[3]=1,u[4]=2,u[6]=1):i?(X(t,r,Oe,Ie),X(t,e,we,Ne),u[0]=1,u[3]=2,u[4]=0,u[6]=2):a&&(X(r,e,Oe,Ie),X(r,t,we,Ne),u[0]=2,u[3]=0,u[4]=1,u[6]=0)):2===o&&(u[2]=4,u[4]=4,u[5]=3,u[7]=5,u[8]=6,n?i?a||(X(r,e,Oe,Ie),X(r,t,we,Ne),u[0]=0,u[1]=1,u[3]=0,u[6]=2):(X(t,r,Oe,Ie),X(t,e,we,Ne),u[0]=2,u[1]=0,u[3]=2,u[6]=1):(X(e,t,Oe,Ie),X(e,r,we,Ne),u[0]=1,u[1]=2,u[3]=1,u[6]=0));var s=Me.positions;return s[0]=e,s[1]=t,s[2]=r,s.length=3,1!==o&&2!==o||(s[3]=Oe,s[4]=we,s[5]=Ie,s[6]=Ne,s.length=7),Me}}function H(e,t){var n=e.attributes;if(0!==n.position.values.length){for(var i in n)if(n.hasOwnProperty(i)&&c(n[i])&&c(n[i].values)){var a=n[i];a.values=u.createTypedArray(a.componentDatatype,a.values)}var o=d.computeNumberOfVertices(e);return e.indices=E.createTypedArray(o,e.indices),t&&(e.boundingSphere=r.fromVertices(n.position.values)),e}}function k(e){var t=e.attributes,r={};for(var n in t)if(t.hasOwnProperty(n)&&c(t[n])&&c(t[n].values)){var i=t[n];r[n]=new p({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return new d({attributes:r,indices:[],primitiveType:e.primitiveType})}function j(e,t,r){var n=c(e.geometry.boundingSphere);t=H(t,n),r=H(r,n),c(r)&&!c(t)?e.geometry=r:!c(r)&&c(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=r,e.geometry=void 0)}function Z(e,t){var r=new e,n=new e,i=new e;return function(a,o,u,s,c,l,f,h){var d=e.fromArray(c,a*t,r),p=e.fromArray(c,o*t,n),m=e.fromArray(c,u*t,i);e.multiplyByScalar(d,s.x,d),e.multiplyByScalar(p,s.y,p),e.multiplyByScalar(m,s.z,m);var E=e.add(d,p,d);e.add(E,m,E),h&&e.normalize(E,E),e.pack(E,l,f*t)}}function K(e,r,n,a,o,u,s,l,f,h,d,p,m,E,y,_){if(c(u)||c(s)||c(l)||c(f)||c(h)||0!==E){var v=i.fromArray(o,3*e,Ue),T=i.fromArray(o,3*r,De),R=i.fromArray(o,3*n,Le),A=t(a,v,T,R,Fe);if(c(u)&&Ce(e,r,n,A,u,p.normal.values,_,!0),c(h)){var g=i.fromArray(h,3*e,Ue),S=i.fromArray(h,3*r,De),O=i.fromArray(h,3*n,Le);i.multiplyByScalar(g,A.x,g),i.multiplyByScalar(S,A.y,S),i.multiplyByScalar(O,A.z,O);var w;i.equals(g,i.ZERO)&&i.equals(S,i.ZERO)&&i.equals(O,i.ZERO)?(w=Ue,w.x=0,w.y=0,w.z=0):(w=i.add(g,S,g),i.add(w,O,w),i.normalize(w,w)),i.pack(w,p.extrudeDirection.values,3*_)}if(c(d)&&be(e,r,n,A,d,p.applyOffset.values,_),c(s)&&Ce(e,r,n,A,s,p.tangent.values,_,!0),c(l)&&Ce(e,r,n,A,l,p.bitangent.values,_,!0),c(f)&&Pe(e,r,n,A,f,p.st.values,_),E>0)for(var I=0;I<E;I++){var N=m[I];J(e,r,n,A,_,y[N],p[N])}}}function J(e,t,r,n,i,a,o){var u=a.componentsPerAttribute,s=a.values,c=o.values;switch(u){case 4:xe(e,t,r,n,s,c,i,!1);break;case 3:Ce(e,t,r,n,s,c,i,!1);break;case 2:Pe(e,t,r,n,s,c,i,!1);break;default:c[i]=s[e]*n.x+s[t]*n.y+s[r]*n.z}}function Q(e,t,r,n,i,a){var o=e.position.values.length/3;if(-1!==i){var u=n[i],s=r[u];return-1===s?(r[u]=o,e.position.values.push(a.x,a.y,a.z),t.push(o),o):(t.push(s),s)}return e.position.values.push(a.x,a.y,a.z),t.push(o),o}function $(e){var t=e.geometry,r=t.attributes,n=r.position.values,a=c(r.normal)?r.normal.values:void 0,o=c(r.bitangent)?r.bitangent.values:void 0,u=c(r.tangent)?r.tangent.values:void 0,s=c(r.st)?r.st.values:void 0,l=c(r.extrudeDirection)?r.extrudeDirection.values:void 0,f=c(r.applyOffset)?r.applyOffset.values:void 0,h=t.indices,d=[];for(var p in r)r.hasOwnProperty(p)&&!Be[p]&&c(r[p])&&d.push(p);var m,E,y,_,v,T=d.length,R=k(t),A=k(t),g=[];g.length=n.length/3;var S=[];for(S.length=n.length/3,v=0;v<g.length;++v)g[v]=-1,S[v]=-1;var O=h.length;for(v=0;v<O;v+=3){var w=h[v],I=h[v+1],N=h[v+2],M=i.fromArray(n,3*w),x=i.fromArray(n,3*I),C=i.fromArray(n,3*N),P=Y(M,x,C);if(c(P)&&P.positions.length>3)for(var b=P.positions,U=P.indices,D=U.length,L=0;L<D;++L){var F=U[L],B=b[F];B.y<0?(m=A.attributes,E=A.indices,y=g):(m=R.attributes,E=R.indices,y=S),_=Q(m,E,y,h,F<3?v+F:-1,B),K(w,I,N,B,n,a,u,o,s,l,f,m,d,T,r,_)}else c(P)&&(M=P.positions[0],x=P.positions[1],C=P.positions[2]),M.y<0?(m=A.attributes,E=A.indices,y=g):(m=R.attributes,E=R.indices,y=S),_=Q(m,E,y,h,v,M),K(w,I,N,M,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+1,x),K(w,I,N,x,n,a,u,o,s,l,f,m,d,T,r,_),_=Q(m,E,y,h,v+2,C),K(w,I,N,C,n,a,u,o,s,l,f,m,d,T,r,_)}j(e,A,R)}function ee(e,t,r,n,a,o,u){if(c(u)){var s=i.fromArray(n,3*e,Ue);i.equalsEpsilon(s,r,v.EPSILON10)?o.applyOffset.values[a]=u[e]:o.applyOffset.values[a]=u[t]}}function te(e){var t,r=e.geometry,n=r.attributes,a=n.position.values,o=c(n.applyOffset)?n.applyOffset.values:void 0,u=r.indices,s=k(r),l=k(r),f=u.length,h=[];h.length=a.length/3;var d=[];for(d.length=a.length/3,t=0;t<h.length;++t)h[t]=-1,d[t]=-1;for(t=0;t<f;t+=2){var p,m=u[t],E=u[t+1],y=i.fromArray(a,3*m,Ue),T=i.fromArray(a,3*E,De);Math.abs(y.y)<v.EPSILON6&&(y.y<0?y.y=-v.EPSILON6:y.y=v.EPSILON6),Math.abs(T.y)<v.EPSILON6&&(T.y<0?T.y=-v.EPSILON6:T.y=v.EPSILON6);var R=s.attributes,A=s.indices,g=d,S=l.attributes,O=l.indices,w=h,I=_.lineSegmentPlane(y,T,ze,Le);if(c(I)){var N=i.multiplyByScalar(i.UNIT_Y,5*v.EPSILON9,qe);y.y<0&&(i.negate(N,N),R=l.attributes,A=l.indices,g=h,S=s.attributes,O=s.indices,w=d);var M=i.add(I,N,Ge);p=Q(R,A,g,u,t,y),ee(m,E,y,a,p,R,o),p=Q(R,A,g,u,-1,M),ee(m,E,M,a,p,R,o),i.negate(N,N),i.add(I,N,M),p=Q(S,O,w,u,-1,M),ee(m,E,M,a,p,S,o),p=Q(S,O,w,u,t+1,T),ee(m,E,T,a,p,S,o)}else{var x,C,P;y.y<0?(x=l.attributes,C=l.indices,P=h):(x=s.attributes,C=s.indices,P=d),p=Q(x,C,P,u,t,y),ee(m,E,y,a,p,x,o),p=Q(x,C,P,u,t+1,T),ee(m,E,T,a,p,x,o)}}j(e,l,s)}function re(e){for(var t=e.attributes,r=t.position.values,n=t.prevPosition.values,a=t.nextPosition.values,o=r.length,u=0;u<o;u+=3){var s=i.unpack(r,u,Xe);if(!(s.x>0)){var c=i.unpack(n,u,Ye);(s.y<0&&c.y>0||s.y>0&&c.y<0)&&(u-3>0?(n[u]=r[u-3],n[u+1]=r[u-2],n[u+2]=r[u-1]):i.pack(s,n,u));var l=i.unpack(a,u,He);(s.y<0&&l.y>0||s.y>0&&l.y<0)&&(u+3<o?(a[u]=r[u+3],a[u+1]=r[u+4],a[u+2]=r[u+5]):i.pack(s,a,u))}}}function ne(e){var t,r,o,u=e.geometry,s=u.attributes,l=s.position.values,f=s.prevPosition.values,h=s.nextPosition.values,d=s.expandAndWidth.values,p=c(s.st)?s.st.values:void 0,m=c(s.color)?s.color.values:void 0,E=k(u),y=k(u),T=!1,R=l.length/3;for(t=0;t<R;t+=4){var A=t,g=t+2,S=i.fromArray(l,3*A,Xe),O=i.fromArray(l,3*g,Ye);if(Math.abs(S.y)<Qe)for(S.y=Qe*(O.y<0?-1:1),l[3*t+1]=S.y,l[3*(t+1)+1]=S.y,r=3*A;r<3*A+12;r+=3)f[r]=l[3*t],f[r+1]=l[3*t+1],f[r+2]=l[3*t+2];if(Math.abs(O.y)<Qe)for(O.y=Qe*(S.y<0?-1:1),l[3*(t+2)+1]=O.y,l[3*(t+3)+1]=O.y,r=3*A;r<3*A+12;r+=3)h[r]=l[3*(t+2)],h[r+1]=l[3*(t+2)+1],h[r+2]=l[3*(t+2)+2];var w=E.attributes,I=E.indices,N=y.attributes,M=y.indices,x=_.lineSegmentPlane(S,O,ze,ke);if(c(x)){T=!0;var C=i.multiplyByScalar(i.UNIT_Y,Je,je);S.y<0&&(i.negate(C,C),w=y.attributes,I=y.indices,N=E.attributes,M=E.indices);var P=i.add(x,C,Ze);w.position.values.push(S.x,S.y,S.z,S.x,S.y,S.z),w.position.values.push(P.x,P.y,P.z),w.position.values.push(P.x,P.y,P.z),w.prevPosition.values.push(f[3*A],f[3*A+1],f[3*A+2]), -w.prevPosition.values.push(f[3*A+3],f[3*A+4],f[3*A+5]),w.prevPosition.values.push(S.x,S.y,S.z,S.x,S.y,S.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),w.nextPosition.values.push(P.x,P.y,P.z),i.negate(C,C),i.add(x,C,P),N.position.values.push(P.x,P.y,P.z),N.position.values.push(P.x,P.y,P.z),N.position.values.push(O.x,O.y,O.z,O.x,O.y,O.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.prevPosition.values.push(P.x,P.y,P.z),N.nextPosition.values.push(O.x,O.y,O.z,O.x,O.y,O.z),N.nextPosition.values.push(h[3*g],h[3*g+1],h[3*g+2]),N.nextPosition.values.push(h[3*g+3],h[3*g+4],h[3*g+5]);var b=n.fromArray(d,2*A,Ve),U=Math.abs(b.y);w.expandAndWidth.values.push(-1,U,1,U),w.expandAndWidth.values.push(-1,-U,1,-U),N.expandAndWidth.values.push(-1,U,1,U),N.expandAndWidth.values.push(-1,-U,1,-U);var D=i.magnitudeSquared(i.subtract(x,S,He));if(D/=i.magnitudeSquared(i.subtract(O,S,He)),c(m)){var L=a.fromArray(m,4*A,Ke),F=a.fromArray(m,4*g,Ke),B=v.lerp(L.x,F.x,D),z=v.lerp(L.y,F.y,D),q=v.lerp(L.z,F.z,D),G=v.lerp(L.w,F.w,D);for(r=4*A;r<4*A+8;++r)w.color.values.push(m[r]);for(w.color.values.push(B,z,q,G),w.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),N.color.values.push(B,z,q,G),r=4*g;r<4*g+8;++r)N.color.values.push(m[r])}if(c(p)){var V=n.fromArray(p,2*A,Ve),W=n.fromArray(p,2*(t+3),We),X=v.lerp(V.x,W.x,D);for(r=2*A;r<2*A+4;++r)w.st.values.push(p[r]);for(w.st.values.push(X,V.y),w.st.values.push(X,W.y),N.st.values.push(X,V.y),N.st.values.push(X,W.y),r=2*g;r<2*g+4;++r)N.st.values.push(p[r])}o=w.position.values.length/3-4,I.push(o,o+2,o+1),I.push(o+1,o+2,o+3),o=N.position.values.length/3-4,M.push(o,o+2,o+1),M.push(o+1,o+2,o+3)}else{var Y,H;for(S.y<0?(Y=y.attributes,H=y.indices):(Y=E.attributes,H=E.indices),Y.position.values.push(S.x,S.y,S.z),Y.position.values.push(S.x,S.y,S.z),Y.position.values.push(O.x,O.y,O.z),Y.position.values.push(O.x,O.y,O.z),r=3*t;r<3*t+12;++r)Y.prevPosition.values.push(f[r]),Y.nextPosition.values.push(h[r]);for(r=2*t;r<2*t+8;++r)Y.expandAndWidth.values.push(d[r]),c(p)&&Y.st.values.push(p[r]);if(c(m))for(r=4*t;r<4*t+16;++r)Y.color.values.push(m[r]);o=Y.position.values.length/3-4,H.push(o,o+2,o+1),H.push(o+1,o+2,o+3)}}T&&(re(y),re(E)),j(e,y,E)}var ie={};ie.toWireframe=function(e){var t=e.indices;if(c(t)){switch(e.primitiveType){case g.TRIANGLES:e.indices=w(t);break;case g.TRIANGLE_STRIP:e.indices=I(t);break;case g.TRIANGLE_FAN:e.indices=N(t)}e.primitiveType=g.LINES}return e},ie.createLineSegmentsForVectors=function(e,t,n){t=s(t,"normal"),n=s(n,1e4);for(var i=e.attributes.position.values,a=e.attributes[t].values,o=i.length,l=new Float64Array(2*o),f=0,h=0;h<o;h+=3)l[f++]=i[h],l[f++]=i[h+1],l[f++]=i[h+2],l[f++]=i[h]+a[h]*n,l[f++]=i[h+1]+a[h+1]*n,l[f++]=i[h+2]+a[h+2]*n;var m,E=e.boundingSphere;return c(E)&&(m=new r(E.center,E.radius+n)),new d({attributes:{position:new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:l})},primitiveType:g.LINES,boundingSphere:m})},ie.createAttributeLocations=function(e){var t,r=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},a=0,o=r.length;for(t=0;t<o;++t){var u=r[t];c(n[u])&&(i[u]=a++)}for(var s in n)n.hasOwnProperty(s)&&!c(i[s])&&(i[s]=a++);return i},ie.reorderForPreVertexCache=function(e){var t=d.computeNumberOfVertices(e),r=e.indices;if(c(r)){for(var n=new Int32Array(t),i=0;i<t;i++)n[i]=-1;for(var a,o=r,s=o.length,l=E.createTypedArray(t,s),f=0,h=0,p=0;f<s;)a=n[o[f]],-1!==a?l[h]=a:(a=o[f],n[a]=p,l[h]=p,++p),++f,++h;e.indices=l;var m=e.attributes;for(var y in m)if(m.hasOwnProperty(y)&&c(m[y])&&c(m[y].values)){for(var _=m[y],v=_.values,T=0,R=_.componentsPerAttribute,A=u.createTypedArray(_.componentDatatype,p*R);T<t;){var g=n[T];if(-1!==g)for(var S=0;S<R;S++)A[R*g+S]=v[R*T+S];++T}_.values=A}}return e},ie.reorderForPostVertexCache=function(e,t){var r=e.indices;if(e.primitiveType===g.TRIANGLES&&c(r)){for(var n=r.length,i=0,a=0;a<n;a++)r[a]>i&&(i=r[a]);e.indices=S.tipsify({indices:r,maximumIndex:i,cacheSize:t})}return e},ie.fitToUnsignedShortIndices=function(e){var t=[],r=d.computeNumberOfVertices(e);if(c(e.indices)&&r>=v.SIXTY_FOUR_KILOBYTES){var n,i=[],a=[],o=0,u=M(e.attributes),s=e.indices,l=s.length;e.primitiveType===g.TRIANGLES?n=3:e.primitiveType===g.LINES?n=2:e.primitiveType===g.POINTS&&(n=1);for(var f=0;f<l;f+=n){for(var h=0;h<n;++h){var p=s[f+h],m=i[p];c(m)||(m=o++,i[p]=m,x(u,e.attributes,p)),a.push(m)}o+n>=v.SIXTY_FOUR_KILOBYTES&&(t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],a=[],o=0,u=M(e.attributes))}0!==a.length&&t.push(new d({attributes:u,indices:a,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var ae=new i,oe=new o;ie.projectTo2D=function(e,t,r,n,a){var o=e.attributes[t];a=c(a)?a:new h;for(var s=a.ellipsoid,l=o.values,f=new Float64Array(l.length),d=0,m=0;m<l.length;m+=3){var E=i.fromArray(l,m,ae),y=s.cartesianToCartographic(E,oe),_=a.project(y,ae);f[d++]=_.x,f[d++]=_.y,f[d++]=_.z}return e.attributes[r]=o,e.attributes[n]=new p({componentDatatype:u.DOUBLE,componentsPerAttribute:3,values:f}),delete e.attributes[t],e};var ue={high:0,low:0};ie.encodeAttribute=function(e,t,r,n){for(var i=e.attributes[t],a=i.values,o=a.length,s=new Float32Array(o),c=new Float32Array(o),l=0;l<o;++l)f.encode(a[l],ue),s[l]=ue.high,c[l]=ue.low;var h=i.componentsPerAttribute;return e.attributes[r]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:s}),e.attributes[n]=new p({componentDatatype:u.FLOAT,componentsPerAttribute:h,values:c}),delete e.attributes[t],e};var se=new i,ce=new R,le=new T;ie.transformToWorldCoordinates=function(e){var t=e.modelMatrix;if(R.equals(t,R.IDENTITY))return e;var n=e.geometry.attributes;C(t,n.position),C(t,n.prevPosition),C(t,n.nextPosition),(c(n.normal)||c(n.tangent)||c(n.bitangent))&&(R.inverse(t,ce),R.transpose(ce,ce),R.getRotation(ce,le),P(le,n.normal),P(le,n.tangent),P(le,n.bitangent));var i=e.geometry.boundingSphere;return c(i)&&(e.geometry.boundingSphere=r.transform(i,t,i)),e.modelMatrix=R.clone(R.IDENTITY),e};var fe=new i;ie.combineInstances=function(e){for(var t=[],r=[],n=e.length,i=0;i<n;++i){var a=e[i];c(a.geometry)?t.push(a):c(a.westHemisphereGeometry)&&c(a.eastHemisphereGeometry)&&r.push(a)}var o=[];return t.length>0&&o.push(U(t,"geometry")),r.length>0&&(o.push(U(r,"westHemisphereGeometry")),o.push(U(r,"eastHemisphereGeometry"))),o};var he=new i,de=new i,pe=new i,me=new i;ie.computeNormal=function(e){var t,r=e.indices,n=e.attributes,a=n.position.values,o=n.position.values.length/3,s=r.length,c=new Array(o),l=new Array(s/3),f=new Array(s);for(t=0;t<o;t++)c[t]={indexOffset:0,count:0,currentCount:0};var h=0;for(t=0;t<s;t+=3){var d=r[t],m=r[t+1],E=r[t+2],y=3*d,_=3*m,T=3*E;de.x=a[y],de.y=a[y+1],de.z=a[y+2],pe.x=a[_],pe.y=a[_+1],pe.z=a[_+2],me.x=a[T],me.y=a[T+1],me.z=a[T+2],c[d].count++,c[m].count++,c[E].count++,i.subtract(pe,de,pe),i.subtract(me,de,me),l[h]=i.cross(pe,me,new i),h++}var R=0;for(t=0;t<o;t++)c[t].indexOffset+=R,R+=c[t].count;h=0;var A;for(t=0;t<s;t+=3){A=c[r[t]];var g=A.indexOffset+A.currentCount;f[g]=h,A.currentCount++,A=c[r[t+1]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,A=c[r[t+2]],g=A.indexOffset+A.currentCount,f[g]=h,A.currentCount++,h++}var S=new Float32Array(3*o);for(t=0;t<o;t++){var O=3*t;if(A=c[t],i.clone(i.ZERO,he),A.count>0){for(h=0;h<A.count;h++)i.add(he,l[f[A.indexOffset+h]],he);i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&i.clone(l[f[A.indexOffset]],he)}i.equalsEpsilon(i.ZERO,he,v.EPSILON10)&&(he.z=1),i.normalize(he,he),S[O]=he.x,S[O+1]=he.y,S[O+2]=he.z}return e.attributes.normal=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:S}),e};var Ee=new i,ye=new i,_e=new i;ie.computeTangentAndBitangent=function(e){var t,r=(e.attributes,e.indices),n=e.attributes.position.values,a=e.attributes.normal.values,o=e.attributes.st.values,s=e.attributes.position.values.length/3,c=r.length,l=new Array(3*s);for(t=0;t<l.length;t++)l[t]=0;var f,h,d;for(t=0;t<c;t+=3){var m=r[t],E=r[t+1],y=r[t+2];f=3*m,h=3*E,d=3*y;var _=2*m,v=2*E,T=2*y,R=n[f],A=n[f+1],g=n[f+2],S=o[_],O=o[_+1],w=o[v+1]-O,I=o[T+1]-O,N=1/((o[v]-S)*I-(o[T]-S)*w),M=(I*(n[h]-R)-w*(n[d]-R))*N,x=(I*(n[h+1]-A)-w*(n[d+1]-A))*N,C=(I*(n[h+2]-g)-w*(n[d+2]-g))*N;l[f]+=M,l[f+1]+=x,l[f+2]+=C,l[h]+=M,l[h+1]+=x,l[h+2]+=C,l[d]+=M,l[d+1]+=x,l[d+2]+=C}var P=new Float32Array(3*s),b=new Float32Array(3*s);for(t=0;t<s;t++){f=3*t,h=f+1,d=f+2;var U=i.fromArray(a,f,Ee),D=i.fromArray(l,f,_e),L=i.dot(U,D);i.multiplyByScalar(U,L,ye),i.normalize(i.subtract(D,ye,D),D),P[f]=D.x,P[h]=D.y,P[d]=D.z,i.normalize(i.cross(U,D,D),D),b[f]=D.x,b[h]=D.y,b[d]=D.z}return e.attributes.tangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:P}),e.attributes.bitangent=new p({componentDatatype:u.FLOAT,componentsPerAttribute:3,values:b}),e};var ve=new n,Te=new i,Re=new i,Ae=new i,ge=new n;ie.compressVertices=function(t){var r,a,o=t.attributes.extrudeDirection;if(c(o)){var s=o.values;a=s.length/3;var l=new Float32Array(2*a),f=0;for(r=0;r<a;++r)i.fromArray(s,3*r,Te),i.equals(Te,i.ZERO)?f+=2:(ge=e.octEncodeInRange(Te,65535,ge),l[f++]=ge.x,l[f++]=ge.y);return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:2,values:l}),delete t.attributes.extrudeDirection,t}var h=t.attributes.normal,d=t.attributes.st,m=c(h),E=c(d);if(!m&&!E)return t;var y,_,v,T,R=t.attributes.tangent,A=t.attributes.bitangent,g=c(R),S=c(A);m&&(y=h.values),E&&(_=d.values),g&&(v=R.values),S&&(T=A.values),a=(m?y.length:_.length)/(m?3:2);var O=a,w=E&&m?2:1;w+=g||S?1:0,O*=w;var I=new Float32Array(O),N=0;for(r=0;r<a;++r){E&&(n.fromArray(_,2*r,ve),I[N++]=e.compressTextureCoordinates(ve));var M=3*r;m&&c(v)&&c(T)?(i.fromArray(y,M,Te),i.fromArray(v,M,Re),i.fromArray(T,M,Ae),e.octPack(Te,Re,Ae,ve),I[N++]=ve.x,I[N++]=ve.y):(m&&(i.fromArray(y,M,Te),I[N++]=e.octEncodeFloat(Te)),g&&(i.fromArray(v,M,Te),I[N++]=e.octEncodeFloat(Te)),S&&(i.fromArray(T,M,Te),I[N++]=e.octEncodeFloat(Te)))}return t.attributes.compressedAttributes=new p({componentDatatype:u.FLOAT,componentsPerAttribute:w,values:I}),m&&delete t.attributes.normal,E&&delete t.attributes.st,S&&delete t.attributes.bitangent,g&&delete t.attributes.tangent,t};var Se=new i,Oe=new i,we=new i,Ie=new i,Ne=new i,Me={positions:new Array(7),indices:new Array(9)},xe=Z(a,4),Ce=Z(i,3),Pe=Z(n,2),be=function(e,t,r,n,i,a,o){var u=i[e]*n.x,s=i[t]*n.y,c=i[r]*n.z;a[o]=u+s+c>v.EPSILON6?1:0},Ue=new i,De=new i,Le=new i,Fe=new i,Be={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0},ze=A.fromPointNormal(i.ZERO,i.UNIT_Y),qe=new i,Ge=new i,Ve=new n,We=new n,Xe=new i,Ye=new i,He=new i,ke=new i,je=new i,Ze=new i,Ke=new a,Je=5*v.EPSILON9,Qe=v.EPSILON6;return ie.splitLongitude=function(e){var t=e.geometry,n=t.boundingSphere;if(c(n)){if(n.center.x-n.radius>0||r.intersectPlane(n,A.ORIGIN_ZX_PLANE)!==y.INTERSECTING)return e}if(t.geometryType!==m.NONE)switch(t.geometryType){case m.POLYLINES:ne(e);break;case m.TRIANGLES:$(e);break;case m.LINES:te(e)}else G(t),t.primitiveType===g.TRIANGLES?$(e):t.primitiveType===g.LINES&&te(e);return e},ie}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,r,i){i=i||2;var a=r&&r.length,o=a?r[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,E;if(a&&(u=s(e,r,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var y=i;y<o;y+=i)p=e[y],m=e[y+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);E=Math.max(h-l,d-f)}return n(u,c,i,l,f,E),c}function t(e,t,r,n,i){var a,o;if(i===N(e,t,r,n)>0)for(a=t;a<r;a+=n)o=O(a,e[a],e[a+1],o);else for(a=r-n;a>=t;a-=n)o=O(a,e[a],e[a+1],o);return o&&v(o,o.next)&&(w(o),o=o.next),o}function r(e,t){if(!e)return e;t||(t=e);var r,n=e;do{if(r=!1,n.steiner||!v(n,n.next)&&0!==_(n.prev,n,n.next))n=n.next;else{if(w(n),(n=t=n.prev)===n.next)return null;r=!0}}while(r||n!==t);return t}function n(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,E=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),w(e),e=m.next,E=m.next;else if((e=m)===E){d?1===d?(e=o(e,t,s),n(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):n(r(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,r=e,n=e.next;if(_(t,r,n)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(E(t.x,t.y,r.x,r.y,n.x,n.y,i.x,i.y)&&_(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,r,n){var i=e.prev,a=e,o=e.next;if(_(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,r,n),h=p(c,l,t,r,n),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&_(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,r){var n=e;do{var i=n.prev,a=n.next.next;!v(i,a)&&T(i,n,n.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/r),t.push(n.i/r),t.push(a.i/r),w(n),w(n.next),n=e=a),n=n.next}while(n!==e);return n}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&y(s,c)){var l=S(s,c);return s=r(s,s.next),l=r(l,l.next),n(s,t,i,a,o,u),void n(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,n,i,a){var o,u,s,f,h,d=[];for(o=0,u=n.length;o<u;o++)s=n[o]*a,f=o<u-1?n[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=r(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var n=S(t,e);r(n,n.next)}}function f(e,t){var r,n=t,i=e.x,a=e.y,o=-1/0;do{if(a<=n.y&&a>=n.next.y){var u=n.x+(a-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(u<=i&&u>o){if(o=u,u===i){if(a===n.y)return n;if(a===n.next.y)return n.next}r=n.x<n.next.x?n:n.next}}n=n.next}while(n!==t);if(!r)return null;if(i===o)return r.prev;var s,c=r,l=r.x,f=r.y,h=1/0;for(n=r.next;n!==c;)i>=n.x&&n.x>=l&&E(a<f?i:o,a,l,f,a<f?o:i,a,n.x,n.y)&&((s=Math.abs(a-n.y)/(i-n.x))<h||s===h&&n.x>r.x)&&A(n,e)&&(r=n,h=s),n=n.next;return r}function h(e,t,r,n){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,r,n)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,r,n,i,a,o,u,s,c=1;do{for(r=e,e=null,a=null,o=0;r;){for(o++,n=r,u=0,t=0;t<c&&(u++,n=n.nextZ);t++);for(s=c;u>0||s>0&&n;)0===u?(i=n,n=n.nextZ,s--):0!==s&&n?r.z<=n.z?(i=r,r=r.nextZ,u--):(i=n,n=n.nextZ,s--):(i=r,r=r.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;r=n}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,r,n,i){return e=32767*(e-r)/i,t=32767*(t-n)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,r=e;do{t.x<r.x&&(r=t),t=t.next}while(t!==e);return r}function E(e,t,r,n,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(n-u)-(r-o)*(t-u)>=0&&(r-o)*(a-u)-(i-o)*(n-u)>=0}function y(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!R(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function _(e,t,r){return(t.y-e.y)*(r.x-t.x)-(t.x-e.x)*(r.y-t.y)}function v(e,t){return e.x===t.x&&e.y===t.y}function T(e,t,r,n){return!!(v(e,t)&&v(r,n)||v(e,n)&&v(r,t))||_(e,t,r)>0!=_(e,t,n)>0&&_(r,n,e)>0!=_(r,n,t)>0}function R(e,t){var r=e;do{if(r.i!==e.i&&r.next.i!==e.i&&r.i!==t.i&&r.next.i!==t.i&&T(r,r.next,e,t))return!0;r=r.next}while(r!==e);return!1}function A(e,t){return _(e.prev,e,e.next)<0?_(e,t,e.next)>=0&&_(e,e.prev,t)>=0:_(e,t,e.prev)<0||_(e,e.next,t)<0}function g(e,t){var r=e,n=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{r.y>a!=r.next.y>a&&i<(r.next.x-r.x)*(a-r.y)/(r.next.y-r.y)+r.x&&(n=!n),r=r.next}while(r!==e);return n}function S(e,t){var r=new I(e.i,e.x,e.y),n=new I(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,r.next=i,i.prev=r,n.next=r,r.prev=n,a.next=n,n.prev=a,n}function O(e,t,r,n){var i=new I(e,t,r);return n?(i.next=n.next,i.prev=n,n.next.prev=i,n.next=i):(i.prev=i,i.next=i),i}function w(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function I(e,t,r){this.i=e,this.x=t,this.y=r,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function N(e,t,r,n){for(var i=0,a=t,o=r-n;a<r;a+=n)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,r,n){var i=t&&t.length,a=i?t[0]*r:e.length,o=Math.abs(N(e,0,a,r));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*r,l=u<s-1?t[u+1]*r:e.length;o-=Math.abs(N(e,c,l,r))}var f=0;for(u=0;u<n.length;u+=3){var h=n[u]*r,d=n[u+1]*r,p=n[u+2]*r;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,r={vertices:[],holes:[],dimensions:t},n=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)r.vertices.push(e[i][a][o]);i>0&&(n+=e[i-1].length,r.holes.push(n))}return r},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,u=o*n,s=u*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*n),m=Math.cos(2*n),E=Math.sin(4*n),y=Math.cos(4*n),_=Math.sin(6*n),v=Math.cos(6*n),T=Math.sin(8*n),R=Math.cos(8*n),A=Math.sin(10*n);return n+n*s/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*m+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*y+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*v+(1097*n*h/65536+42783*n*d/1048576)*R+8011*n*d/1048576*Math.cos(10*n)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*E+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*_+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var u=e._heading,l=a-n,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===r)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,_),y),e.normalize(a.cartographicToCartesian(i,_),_),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;r._ellipticitySquared=(s-c)/s,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function m(e,r,n,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(r))>s.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var E=f(o,e.latitude),y=f(o,d);p=Math.tan(r)*(y-E),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var _;if(0===o)_=a*Math.cos(e.latitude);else{var v=Math.sin(e.latitude);_=a*Math.cos(e.latitude)/Math.sqrt(1-m*v*v)}p=n/_,h=r>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function E(e,r,a){var o=n(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&p(this,e,r,o)}var y=new e,_=new e;return a(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),E.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var y=m(e,t,r,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new E(e,y,c):(o.setEndPoints(e,y),o)},E.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},E.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},E.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},E.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(r)||(r=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return r.longitude=e,r.latitude=u.latitude,r.height=0,r;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return r.longitude=e,r.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),r.height=0,r}var c,l=u.latitude,f=n*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=n*Math.sin(c),E=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(E/d,n/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return r.longitude=e,r.latitude=p,r.height=0,r},E.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},E}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===r.CLOCKWISE||e===r.COUNTER_CLOCKWISE}};return e(r)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new r,E=new r,y={};y.computeArea2D=function(e){for(var t=e.length,r=0,n=t-1,i=0;i<t;n=i++){var a=e[n],o=e[i];r+=a.x*o.y-o.x*a.y}return.5*r},y.computeWindingOrder2D=function(e){return y.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},y.triangulate=function(r,n){var i=t.packArray(r);return e(i,n,2)};var _=new r,v=new r,T=new r,R=new r,A=new r,g=new r,S=new r;y.computeSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=n.slice(0),p=t.length,m=new Array(3*p),E=0;for(s=0;s<p;s++){var y=t[s];m[E++]=y.x,m[E++]=y.y,m[E++]=y.z}for(var O=[],w={},I=e.maximumRadius,N=h.chordLength(i,I),M=N*N;c.length>0;){var x,C,P=c.pop(),b=c.pop(),U=c.pop(),D=r.fromArray(m,3*U,_),L=r.fromArray(m,3*b,v),F=r.fromArray(m,3*P,T),B=r.multiplyByScalar(r.normalize(D,R),I,R),z=r.multiplyByScalar(r.normalize(L,A),I,A),q=r.multiplyByScalar(r.normalize(F,g),I,g),G=r.magnitudeSquared(r.subtract(B,z,S)),V=r.magnitudeSquared(r.subtract(z,q,S)),W=r.magnitudeSquared(r.subtract(q,B,S)),X=Math.max(G,V,W);X>M?G===X?(x=Math.min(U,b)+" "+Math.max(U,b),s=w[x],u(s)||(C=r.add(D,L,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(U,s,P),c.push(s,b,P)):V===X?(x=Math.min(b,P)+" "+Math.max(b,P),s=w[x],u(s)||(C=r.add(L,F,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(b,s,U),c.push(s,P,U)):W===X&&(x=Math.min(P,U)+" "+Math.max(P,U),s=w[x],u(s)||(C=r.add(F,D,S),r.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,w[x]=s),c.push(P,s,b),c.push(s,U,b)):(O.push(U),O.push(b),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:O,primitiveType:d.TRIANGLES})};var O=new n,w=new n,I=new n,N=new n;return y.computeRhumbLineSubdivision=function(e,t,n,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=n.slice(0),m=t.length,E=new Array(3*m),y=0;for(s=0;s<m;s++){var R=t[s];E[y++]=R.x,E[y++]=R.y,E[y++]=R.z}for(var A=[],g={},M=e.maximumRadius,x=h.chordLength(i,M),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),b=new c(void 0,void 0,e);p.length>0;){var U=p.pop(),D=p.pop(),L=p.pop(),F=r.fromArray(E,3*L,_),B=r.fromArray(E,3*D,v),z=r.fromArray(E,3*U,T),q=e.cartesianToCartographic(F,O),G=e.cartesianToCartographic(B,w),V=e.cartesianToCartographic(z,I);C.setEndPoints(q,G);var W=C.surfaceDistance;P.setEndPoints(G,V);var X=P.surfaceDistance;b.setEndPoints(V,q);var Y,H,k,j,Z=b.surfaceDistance,K=Math.max(W,X,Z);K>x?W===K?(Y=Math.min(L,D)+" "+Math.max(L,D),s=g[Y],u(s)||(H=C.interpolateUsingFraction(.5,N),k=.5*(q.height+G.height),j=r.fromRadians(H.longitude,H.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[Y]=s),p.push(L,s,U),p.push(s,D,U)):X===K?(Y=Math.min(D,U)+" "+Math.max(D,U),s=g[Y],u(s)||(H=P.interpolateUsingFraction(.5,N),k=.5*(G.height+V.height),j=r.fromRadians(H.longitude,H.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[Y]=s),p.push(D,s,L),p.push(s,U,L)):Z===K&&(Y=Math.min(U,L)+" "+Math.max(U,L),s=g[Y],u(s)||(H=b.interpolateUsingFraction(.5,N),k=.5*(V.height+q.height),j=r.fromRadians(H.longitude,H.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[Y]=s),p.push(U,s,D),p.push(s,L,D)):(A.push(L),A.push(D),A.push(U))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:A,primitiveType:d.TRIANGLES})},y.scaleToGeodeticHeight=function(e,t,n,i){n=o(n,s.WGS84);var a=m,c=E;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)r.fromArray(e,f,c),i&&(c=n.scaleToGeodeticSurface(c,c)),0!==t&&(a=n.geodeticSurfaceNormal(c,a),r.multiplyByScalar(a,t,a),r.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},y}),define("Core/RectangleGeometryLibrary",["./Cartesian3","./Cartographic","./defined","./DeveloperError","./GeographicProjection","./Math","./Matrix2","./Rectangle"],function(e,t,r,n,i,a,o,u){"use strict";function s(t,r,n,i,a,u,s){var c=Math.cos(r),l=i*c,f=n*c,h=Math.sin(r),m=i*h,_=n*h;p=y.project(t,p),p=e.subtract(p,E,p);var v=o.fromRotation(r,d);p=o.multiplyByVector(v,p,p),p=e.add(p,E,p),t=y.unproject(p,t),u-=1,s-=1;var T=t.latitude,R=T+u*_,A=T-l*s,g=T-l*s+u*_,S=Math.max(T,R,A,g),O=Math.min(T,R,A,g),w=t.longitude,I=w+u*f,N=w+s*m,M=w+s*m+u*f;return{north:S,south:O,east:Math.max(w,I,N,M),west:Math.min(w,I,N,M),granYCos:l,granYSin:m,granXCos:f,granXSin:_,nwCorner:t}}var c=Math.cos,l=Math.sin,f=Math.sqrt,h={};h.computePosition=function(e,t,n,i,a,o,u){var s=t.radiiSquared,h=e.nwCorner,d=e.boundingRectangle,p=h.latitude-e.granYCos*i+a*e.granXSin,m=c(p),E=l(p),y=s.z*E,_=h.longitude+i*e.granYSin+a*e.granXCos,v=m*c(_),T=m*l(_),R=s.x*v,A=s.y*T,g=f(R*v+A*T+y*E);if(o.x=R/g,o.y=A/g,o.z=y/g,n){var S=e.stNwCorner;r(S)?(p=S.latitude-e.stGranYCos*i+a*e.stGranXSin,_=S.longitude+i*e.stGranYSin+a*e.stGranXCos,u.x=(_-e.stWest)*e.lonScalar,u.y=(p-e.stSouth)*e.latScalar):(u.x=(_-d.west)*e.lonScalar,u.y=(p-d.south)*e.latScalar)}};var d=new o,p=new e,m=new t,E=new e,y=new i;return h.computeOptions=function(e,t,r,n,i,o,c){var l=e.east,f=e.west,h=e.north,d=e.south,p=!1,_=!1;h===a.PI_OVER_TWO&&(p=!0),d===-a.PI_OVER_TWO&&(_=!0);var v,T,R,A,g,S=h-d;g=f>l?a.TWO_PI-f+l:l-f,v=Math.ceil(g/t)+1,T=Math.ceil(S/t)+1,R=g/(v-1),A=S/(T-1);var O=u.northwest(e,o),w=u.center(e,m);0===r&&0===n||(w.longitude<O.longitude&&(w.longitude+=a.TWO_PI),E=y.project(w,E));var I=A,N=R,M=u.clone(e,i),x={granYCos:I,granYSin:0,granXCos:N,granXSin:0,nwCorner:O,boundingRectangle:M,width:v,height:T,northCap:p,southCap:_};if(0!==r){var C=s(O,r,R,A,w,v,T);h=C.north,d=C.south,l=C.east,f=C.west,x.granYCos=C.granYCos,x.granYSin=C.granYSin,x.granXCos=C.granXCos,x.granXSin=C.granXSin,M.north=h,M.south=d,M.east=l,M.west=f}if(0!==n){r-=n;var P=u.northwest(M,c),b=s(P,r,R,A,w,v,T);x.stGranYCos=b.granYCos,x.stGranXCos=b.granXCos,x.stGranYSin=b.granYSin,x.stGranXSin=b.granXSin,x.stNwCorner=P,x.stWest=b.west,x.stSouth=b.south}return x},h}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/RectangleGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryInstance","./GeometryOffsetAttribute","./GeometryPipeline","./IndexDatatype","./Math","./Matrix2","./Matrix3","./PolygonPipeline","./PrimitiveType","./Quaternion","./Rectangle","./RectangleGeometryLibrary","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,v,T,R,A,g,S,O,w,I){"use strict";function N(e,t){var r=new h({attributes:new p,primitiveType:g.TRIANGLES});return r.attributes.position=new d({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(r.attributes.normal=new d({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(r.attributes.tangent=new d({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(r.attributes.bitangent=new d({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:t.bitangents})),r}function M(e,t,r,i){var a=e.length,o=t.normal?new Float32Array(a):void 0,u=t.tangent?new Float32Array(a):void 0,s=t.bitangent?new Float32Array(a):void 0,c=0,l=G,f=q,h=z;if(t.normal||t.tangent||t.bitangent)for(var d=0;d<a;d+=3){var p=n.fromArray(e,d,B),m=c+1,E=c+2;h=r.geodeticSurfaceNormal(p,h), -(t.tangent||t.bitangent)&&(n.cross(n.UNIT_Z,h,f),R.multiplyByVector(i,f,f),n.normalize(f,f),t.bitangent&&n.normalize(n.cross(h,f,l),l)),t.normal&&(o[c]=h.x,o[m]=h.y,o[E]=h.z),t.tangent&&(u[c]=f.x,u[m]=f.y,u[E]=f.z),t.bitangent&&(s[c]=l.x,s[m]=l.y,s[E]=l.z),c+=3}return N(t,{positions:e,normals:o,tangents:u,bitangents:s})}function x(e,t,r){var i=e.length,a=t.normal?new Float32Array(i):void 0,o=t.tangent?new Float32Array(i):void 0,u=t.bitangent?new Float32Array(i):void 0,s=0,c=0,l=0,f=!0,h=G,d=q,p=z;if(t.normal||t.tangent||t.bitangent)for(var m=0;m<i;m+=6){var E=n.fromArray(e,m,B),y=n.fromArray(e,(m+6)%i,H);if(f){var _=n.fromArray(e,(m+3)%i,k);n.subtract(y,E,y),n.subtract(_,E,_),p=n.normalize(n.cross(_,y,p),p),f=!1}n.equalsEpsilon(y,E,v.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(h=r.geodeticSurfaceNormal(E,h),t.tangent&&(d=n.normalize(n.cross(h,p,d),d))),t.normal&&(a[s++]=p.x,a[s++]=p.y,a[s++]=p.z,a[s++]=p.x,a[s++]=p.y,a[s++]=p.z),t.tangent&&(o[c++]=d.x,o[c++]=d.y,o[c++]=d.z,o[c++]=d.x,o[c++]=d.y,o[c++]=d.z),t.bitangent&&(u[l++]=h.x,u[l++]=h.y,u[l++]=h.z,u[l++]=h.x,u[l++]=h.y,u[l++]=h.z)}return N(t,{positions:e,normals:a,tangents:o,bitangents:u})}function C(e,t){var r=e._vertexFormat,n=e._ellipsoid,i=t.height,a=t.width,u=t.northCap,s=t.southCap,c=0,l=i,f=i,h=0;u&&(c=1,f-=1,h+=1),s&&(l-=1,f-=1,h+=1),h+=a*f;for(var p=r.position?new Float64Array(3*h):void 0,m=r.st?new Float32Array(2*h):void 0,E=0,y=0,v=B,T=W,R=Number.MAX_VALUE,A=Number.MAX_VALUE,g=-Number.MAX_VALUE,S=-Number.MAX_VALUE,O=c;O<l;++O)for(var I=0;I<a;++I)w.computePosition(t,n,r.st,O,I,v,T),p[E++]=v.x,p[E++]=v.y,p[E++]=v.z,r.st&&(m[y++]=T.x,m[y++]=T.y,R=Math.min(R,T.x),A=Math.min(A,T.y),g=Math.max(g,T.x),S=Math.max(S,T.y));if(u&&(w.computePosition(t,n,r.st,0,0,v,T),p[E++]=v.x,p[E++]=v.y,p[E++]=v.z,r.st&&(m[y++]=T.x,m[y++]=T.y,R=T.x,A=T.y,g=T.x,S=T.y)),s&&(w.computePosition(t,n,r.st,i-1,0,v,T),p[E++]=v.x,p[E++]=v.y,p[E]=v.z,r.st&&(m[y++]=T.x,m[y]=T.y,R=Math.min(R,T.x),A=Math.min(A,T.y),g=Math.max(g,T.x),S=Math.max(S,T.y))),r.st&&(R<0||A<0||g>1||S>1))for(var N=0;N<m.length;N+=2)m[N]=(m[N]-R)/(g-R),m[N+1]=(m[N+1]-A)/(S-A);var x=M(p,r,n,t.tangentRotationMatrix),C=6*(a-1)*(f-1);u&&(C+=3*(a-1)),s&&(C+=3*(a-1));var P,b=_.createTypedArray(h,C),U=0,D=0;for(P=0;P<f-1;++P){for(var L=0;L<a-1;++L){var F=U,z=F+a,q=z+1,G=F+1;b[D++]=F,b[D++]=z,b[D++]=G,b[D++]=G,b[D++]=z,b[D++]=q,++U}++U}if(u||s){var V=h-1,X=h-1;u&&s&&(V=h-2);var Y,H;if(U=0,u)for(P=0;P<a-1;P++)Y=U,H=Y+1,b[D++]=V,b[D++]=Y,b[D++]=H,++U;if(s)for(U=(f-1)*a,P=0;P<a-1;P++)Y=U,H=Y+1,b[D++]=Y,b[D++]=X,b[D++]=H,++U}return x.indices=b,r.st&&(x.attributes.st=new d({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:m})),x}function P(e,t,r,n,i){return e[t++]=n[r],e[t++]=n[r+1],e[t++]=n[r+2],e[t++]=i[r],e[t++]=i[r+1],e[t]=i[r+2],e}function b(e,t,r,n){return e[t++]=n[r],e[t++]=n[r+1],e[t++]=n[r],e[t]=n[r+1],e}function U(t,r){var i,a=t._shadowVolume,u=t._offsetAttribute,c=t._vertexFormat,l=t._extrudedHeight,f=t._surfaceHeight,h=t._ellipsoid,p=r.height,T=r.width;if(a){var R=I.clone(c,j);R.normal=!0,t._vertexFormat=R}var g=C(t,r);a&&(t._vertexFormat=c);var S=A.scaleToGeodeticHeight(g.attributes.position.values,f,h,!1);S=new Float64Array(S);var O=S.length,w=2*O,N=new Float64Array(w);N.set(S);var M=A.scaleToGeodeticHeight(g.attributes.position.values,l,h);N.set(M,O),g.attributes.position.values=N;var U,D,L=c.normal?new Float32Array(w):void 0,F=c.tangent?new Float32Array(w):void 0,B=c.bitangent?new Float32Array(w):void 0,z=c.st?new Float32Array(w/3*2):void 0;if(c.normal){for(D=g.attributes.normal.values,L.set(D),i=0;i<O;i++)D[i]=-D[i];L.set(D,O),g.attributes.normal.values=L}if(a){D=g.attributes.normal.values,c.normal||(g.attributes.normal=void 0);var q=new Float32Array(w);for(i=0;i<O;i++)D[i]=-D[i];q.set(D,O),g.attributes.extrudeDirection=new d({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:q})}var G,V=s(u);if(V){var W=O/3*2,X=new Uint8Array(W);u===E.TOP?X=e(X,1,0,W/2):(G=u===E.NONE?0:1,X=e(X,G)),g.attributes.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:X})}if(c.tangent){var Y=g.attributes.tangent.values;for(F.set(Y),i=0;i<O;i++)Y[i]=-Y[i];F.set(Y,O),g.attributes.tangent.values=F}if(c.bitangent){var Z=g.attributes.bitangent.values;B.set(Z),B.set(Z,O),g.attributes.bitangent.values=B}c.st&&(U=g.attributes.st.values,z.set(U),z.set(U,O/3*2),g.attributes.st.values=z);var K=g.indices,J=K.length,Q=O/3,$=_.createTypedArray(w/3,2*J);for($.set(K),i=0;i<J;i+=3)$[i+J]=K[i+2]+Q,$[i+1+J]=K[i+1]+Q,$[i+2+J]=K[i]+Q;g.indices=$;var ee=r.northCap,te=r.southCap,re=p,ne=2,ie=0,ae=4,oe=4;ee&&(ne-=1,re-=1,ie+=1,ae-=2,oe-=1),te&&(ne-=1,re-=1,ie+=1,ae-=2,oe-=1),ie+=ne*T+2*re-ae;var ue=2*(ie+oe),se=new Float64Array(3*ue),ce=a?new Float32Array(3*ue):void 0,le=V?new Uint8Array(ue):void 0,fe=c.st?new Float32Array(2*ue):void 0,he=u===E.TOP;V&&!he&&(G=u===E.ALL?1:0,le=e(le,G));var de,pe=0,me=0,Ee=0,ye=0,_e=T*re;for(i=0;i<_e;i+=T)de=3*i,se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*i,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1);if(te){var ve=ee?_e+1:_e;for(de=3*ve,i=0;i<2;i++)se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*ve,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1)}else for(i=_e-T;i<_e;i++)de=3*i,se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*i,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1);for(i=_e-1;i>0;i-=T)de=3*i,se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*i,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1);if(ee){var Te=_e;for(de=3*Te,i=0;i<2;i++)se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*Te,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1)}else for(i=T-1;i>=0;i--)de=3*i,se=P(se,pe,de,S,M),pe+=6,c.st&&(fe=b(fe,me,2*i,U),me+=4),a&&(Ee+=3,ce[Ee++]=D[de],ce[Ee++]=D[de+1],ce[Ee++]=D[de+2]),he&&(le[ye++]=1,ye+=1);var Re=x(se,c,h);c.st&&(Re.attributes.st=new d({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:fe})),a&&(Re.attributes.extrudeDirection=new d({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:ce})),V&&(Re.attributes.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:le}));var Ae,ge,Se,Oe,we=_.createTypedArray(ue,6*ie);O=se.length/3;var Ie=0;for(i=0;i<O-1;i+=2){Ae=i,Oe=(Ae+2)%O;var Ne=n.fromArray(se,3*Ae,H),Me=n.fromArray(se,3*Oe,k);n.equalsEpsilon(Ne,Me,v.EPSILON10)||(ge=(Ae+1)%O,Se=(ge+2)%O,we[Ie++]=Ae,we[Ie++]=ge,we[Ie++]=Oe,we[Ie++]=Oe,we[Ie++]=ge,we[Ie++]=Se)}return Re.indices=we,Re=y.combineInstances([new m({geometry:g}),new m({geometry:Re})]),Re[0]}function D(e,t,r,n,i){if(0===r)return O.clone(e,i);var a=w.computeOptions(e,t,r,0,V,K),o=a.height,u=a.width,s=Z;return w.computePosition(a,n,!1,0,0,s[0]),w.computePosition(a,n,!1,0,u-1,s[1]),w.computePosition(a,n,!1,o-1,0,s[2]),w.computePosition(a,n,!1,o-1,u-1,s[3]),O.fromCartesianArray(s,n,i)}function L(e){e=u(e,u.EMPTY_OBJECT);var t=e.rectangle,r=u(e.height,0),n=u(e.extrudedHeight,r);this._rectangle=O.clone(t),this._granularity=u(e.granularity,v.RADIANS_PER_DEGREE),this._ellipsoid=f.clone(u(e.ellipsoid,f.WGS84)),this._surfaceHeight=Math.max(r,n),this._rotation=u(e.rotation,0),this._stRotation=u(e.stRotation,0),this._vertexFormat=I.clone(u(e.vertexFormat,I.DEFAULT)),this._extrudedHeight=Math.min(r,n),this._shadowVolume=u(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}function F(e){if(0===e._stRotation)return[0,0,0,1,1,0];var t=O.clone(e._rectangle,ie),n=e._granularity,i=e._ellipsoid,a=e._rotation-e._stRotation,o=D(t,n,a,i,ie),u=ae;u[0].x=o.west,u[0].y=o.south,u[1].x=o.west,u[1].y=o.north,u[2].x=o.east,u[2].y=o.south;for(var s=e.rectangle,c=T.fromRotation(e._stRotation,oe),l=O.center(s,ue),f=0;f<3;++f){var h=u[f];h.x-=l.longitude,h.y-=l.latitude,T.multiplyByVector(c,h,h),h.x+=l.longitude,h.y+=l.latitude,h.x=(h.x-s.west)/s.width,h.y=(h.y-s.south)/s.height}var d=u[0],p=u[1],m=u[2],E=new Array(6);return r.pack(d,E),r.pack(p,E,2),r.pack(m,E,4),E}var B=new n,z=new n,q=new n,G=new n,V=new O,W=new r,X=new t,Y=new t,H=new n,k=new n,j=new I,Z=[new n,new n,new n,new n],K=new i,J=new i;L.packedLength=O.packedLength+f.packedLength+I.packedLength+7,L.pack=function(e,t,r){return r=u(r,0),O.pack(e._rectangle,t,r),r+=O.packedLength,f.pack(e._ellipsoid,t,r),r+=f.packedLength,I.pack(e._vertexFormat,t,r),r+=I.packedLength,t[r++]=e._granularity,t[r++]=e._surfaceHeight,t[r++]=e._rotation,t[r++]=e._stRotation,t[r++]=e._extrudedHeight,t[r++]=e._shadowVolume?1:0,t[r]=u(e._offsetAttribute,-1),t};var Q=new O,$=f.clone(f.UNIT_SPHERE),ee={rectangle:Q,ellipsoid:$,vertexFormat:j,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};L.unpack=function(e,t,r){t=u(t,0);var n=O.unpack(e,t,Q);t+=O.packedLength;var i=f.unpack(e,t,$);t+=f.packedLength;var a=I.unpack(e,t,j);t+=I.packedLength;var o=e[t++],c=e[t++],l=e[t++],h=e[t++],d=e[t++],p=1===e[t++],m=e[t];return s(r)?(r._rectangle=O.clone(n,r._rectangle),r._ellipsoid=f.clone(i,r._ellipsoid),r._vertexFormat=I.clone(a,r._vertexFormat),r._granularity=o,r._surfaceHeight=c,r._rotation=l,r._stRotation=h,r._extrudedHeight=d,r._shadowVolume=p,r._offsetAttribute=-1===m?void 0:m,r):(ee.granularity=o,ee.height=c,ee.rotation=l,ee.stRotation=h,ee.extrudedHeight=d,ee.shadowVolume=p,ee.offsetAttribute=-1===m?void 0:m,new L(ee))},L.computeRectangle=function(e,t){e=u(e,u.EMPTY_OBJECT);var r=e.rectangle,n=u(e.granularity,v.RADIANS_PER_DEGREE),i=u(e.ellipsoid,f.WGS84);return D(r,n,u(e.rotation,0),i,t)};var te=new R,re=new S,ne=new i;L.createGeometry=function(r){if(!v.equalsEpsilon(r._rectangle.north,r._rectangle.south,v.EPSILON10)&&!v.equalsEpsilon(r._rectangle.east,r._rectangle.west,v.EPSILON10)){var n=r._rectangle,i=r._ellipsoid,a=r._rotation,u=r._stRotation,c=r._vertexFormat,l=w.computeOptions(n,r._granularity,a,u,V,K,J),f=te;if(0!==u||0!==a){var p=O.center(n,ne),m=i.geodeticSurfaceNormalCartographic(p,H);S.fromAxisAngle(m,-u,re),R.fromQuaternion(re,f)}else R.clone(R.IDENTITY,f);var y=r._surfaceHeight,_=r._extrudedHeight,T=!v.equalsEpsilon(y,_,0,v.EPSILON2);l.lonScalar=1/r._rectangle.width,l.latScalar=1/r._rectangle.height,l.tangentRotationMatrix=f;var g,I;if(n=r._rectangle,T){g=U(r,l);var N=t.fromRectangle3D(n,i,y,Y),M=t.fromRectangle3D(n,i,_,X);I=t.union(N,M)}else{if(g=C(r,l),g.attributes.position.values=A.scaleToGeodeticHeight(g.attributes.position.values,y,i,!1),s(r._offsetAttribute)){var x=g.attributes.position.values.length,P=new Uint8Array(x/3),b=r._offsetAttribute===E.NONE?0:1;e(P,b),g.attributes.applyOffset=new d({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:P})}I=t.fromRectangle3D(n,i,y)}return c.position||delete g.attributes.position,new h({attributes:g.attributes,indices:g.indices,primitiveType:g.primitiveType,boundingSphere:I,offsetAttribute:r._offsetAttribute})}},L.createShadowVolume=function(e,t,r){var n=e._granularity,i=e._ellipsoid,a=t(n,i),o=r(n,i);return new L({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:i,stRotation:e._stRotation,granularity:n,extrudedHeight:o,height:a,vertexFormat:I.POSITION_ONLY,shadowVolume:!0})};var ie=new O,ae=[new r,new r,new r],oe=new T,ue=new i;return c(L.prototype,{rectangle:{get:function(){return s(this._rotatedRectangle)||(this._rotatedRectangle=D(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return s(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=F(this)),this._textureCoordinateRotationPoints}}}),L}),define("Workers/createRectangleGeometry",["../Core/defined","../Core/Ellipsoid","../Core/Rectangle","../Core/RectangleGeometry"],function(e,t,r,n){"use strict";function i(i,a){return e(a)&&(i=n.unpack(i,a)),i._ellipsoid=t.clone(i._ellipsoid),i._rectangle=r.clone(i._rectangle),n.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-B4L3YPI4.js";import{a as Nt}from"./chunk-7GU2ORNB.js";import{a as zt}from"./chunk-UBAKWGRR.js";import"./chunk-H3L4SJP4.js";import"./chunk-3EKULFHC.js";import{a as ut}from"./chunk-6UMNSGJM.js";import{a as X}from"./chunk-QNEABTP2.js";import{b as Rt}from"./chunk-M243PNMW.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as yt}from"./chunk-T53UE6JF.js";import{a as Vt}from"./chunk-RYO6NY7F.js";import{b as Mt,c as Pt,d as q}from"./chunk-2HSPJH3C.js";import{d as st}from"./chunk-T5AUOWE7.js";import{f as Lt,i as E,j as At}from"./chunk-Y5B6Y3WD.js";import{a as Y}from"./chunk-6QVIJ7JA.js";import{a as w,b as _t,c as G,d as H,e as ft}from"./chunk-AODSXSC5.js";import{a as W}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as L}from"./chunk-WHQYJFDH.js";import{a as St,b as lt}from"./chunk-OYWUGDKS.js";import{e as $}from"./chunk-DRYFJEFT.js";var Tt=new w,Bt=new w,Ut=new w,Yt=new w,qt=new E,Zt=new G,Kt=new st,$t=new st;function Xt(t,e){let n=new Pt({attributes:new Vt,primitiveType:Mt.TRIANGLES});return n.attributes.position=new q({componentDatatype:Y.DOUBLE,componentsPerAttribute:3,values:e.positions}),t.normal&&(n.attributes.normal=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.normals})),t.tangent&&(n.attributes.tangent=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.tangents})),t.bitangent&&(n.attributes.bitangent=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:e.bitangents})),n}function Gt(t,e,n,r){let a=t.length,c=e.normal?new Float32Array(a):void 0,l=e.tangent?new Float32Array(a):void 0,u=e.bitangent?new Float32Array(a):void 0,d=0,p=Yt,o=Ut,i=Bt;if(e.normal||e.tangent||e.bitangent)for(let f=0;f<a;f+=3){let s=w.fromArray(t,f,Tt),h=d+1,g=d+2;i=n.geodeticSurfaceNormal(s,i),(e.tangent||e.bitangent)&&(w.cross(w.UNIT_Z,i,o),ft.multiplyByVector(r,o,o),w.normalize(o,o),e.bitangent&&w.normalize(w.cross(i,o,p),p)),e.normal&&(c[d]=i.x,c[h]=i.y,c[g]=i.z),e.tangent&&(l[d]=o.x,l[h]=o.y,l[g]=o.z),e.bitangent&&(u[d]=p.x,u[h]=p.y,u[g]=p.z),d+=3}return Xt(e,{positions:t,normals:c,tangents:l,bitangents:u})}var Ct=new w,jt=new w;function te(t,e,n){let r=t.length,a=e.normal?new Float32Array(r):void 0,c=e.tangent?new Float32Array(r):void 0,l=e.bitangent?new Float32Array(r):void 0,u=0,d=0,p=0,o=!0,i=Yt,f=Ut,s=Bt;if(e.normal||e.tangent||e.bitangent)for(let h=0;h<r;h+=6){let g=w.fromArray(t,h,Tt),A=w.fromArray(t,(h+6)%r,Ct);if(o){let b=w.fromArray(t,(h+3)%r,jt);w.subtract(A,g,A),w.subtract(b,g,b),s=w.normalize(w.cross(b,A,s),s),o=!1}w.equalsEpsilon(A,g,W.EPSILON10)&&(o=!0),(e.tangent||e.bitangent)&&(i=n.geodeticSurfaceNormal(g,i),e.tangent&&(f=w.normalize(w.cross(i,s,f),f))),e.normal&&(a[u++]=s.x,a[u++]=s.y,a[u++]=s.z,a[u++]=s.x,a[u++]=s.y,a[u++]=s.z),e.tangent&&(c[d++]=f.x,c[d++]=f.y,c[d++]=f.z,c[d++]=f.x,c[d++]=f.y,c[d++]=f.z),e.bitangent&&(l[p++]=i.x,l[p++]=i.y,l[p++]=i.z,l[p++]=i.x,l[p++]=i.y,l[p++]=i.z)}return Xt(e,{positions:t,normals:a,tangents:c,bitangents:l})}function It(t,e){let n=t._vertexFormat,r=t._ellipsoid,a=e.height,c=e.width,l=e.northCap,u=e.southCap,d=0,p=a,o=a,i=0;l&&(d=1,o-=1,i+=1),u&&(p-=1,o-=1,i+=1),i+=c*o;let f=n.position?new Float64Array(i*3):void 0,s=n.st?new Float32Array(i*2):void 0,h=0,g=0,A=Tt,b=Zt,z=Number.MAX_VALUE,F=Number.MAX_VALUE,j=-Number.MAX_VALUE,T=-Number.MAX_VALUE;for(let x=d;x<p;++x)for(let k=0;k<c;++k)J.computePosition(e,r,n.st,x,k,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,z=Math.min(z,b.x),F=Math.min(F,b.y),j=Math.max(j,b.x),T=Math.max(T,b.y));if(l&&(J.computePosition(e,r,n.st,0,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h++]=A.z,n.st&&(s[g++]=b.x,s[g++]=b.y,z=b.x,F=b.y,j=b.x,T=b.y)),u&&(J.computePosition(e,r,n.st,a-1,0,A,b),f[h++]=A.x,f[h++]=A.y,f[h]=A.z,n.st&&(s[g++]=b.x,s[g]=b.y,z=Math.min(z,b.x),F=Math.min(F,b.y),j=Math.max(j,b.x),T=Math.max(T,b.y))),n.st&&(z<0||F<0||j>1||T>1))for(let x=0;x<s.length;x+=2)s[x]=(s[x]-z)/(j-z),s[x+1]=(s[x+1]-F)/(T-F);let m=Gt(f,n,r,e.tangentRotationMatrix),K=6*(c-1)*(o-1);l&&(K+=3*(c-1)),u&&(K+=3*(c-1));let P=yt.createTypedArray(i,K),D=0,N=0,O;for(O=0;O<o-1;++O){for(let x=0;x<c-1;++x){let k=D,M=k+c,I=M+1,rt=k+1;P[N++]=k,P[N++]=M,P[N++]=rt,P[N++]=rt,P[N++]=M,P[N++]=I,++D}++D}if(l||u){let x=i-1,k=i-1;l&&u&&(x=i-2);let M,I;if(D=0,l)for(O=0;O<c-1;O++)M=D,I=M+1,P[N++]=x,P[N++]=M,P[N++]=I,++D;if(u)for(D=(o-1)*c,O=0;O<c-1;O++)M=D,I=M+1,P[N++]=M,P[N++]=k,P[N++]=I,++D}return m.indices=P,n.st&&(m.attributes.st=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:2,values:s})),m}function ht(t,e,n,r,a){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n+2],t[e++]=a[n],t[e++]=a[n+1],t[e]=a[n+2],t}function dt(t,e,n,r){return t[e++]=r[n],t[e++]=r[n+1],t[e++]=r[n],t[e]=r[n+1],t}var Dt=new X;function ee(t,e){let n=t._shadowVolume,r=t._offsetAttribute,a=t._vertexFormat,c=t._extrudedHeight,l=t._surfaceHeight,u=t._ellipsoid,d=e.height,p=e.width,o;if(n){let R=X.clone(a,Dt);R.normal=!0,t._vertexFormat=R}let i=It(t,e);n&&(t._vertexFormat=a);let f=Rt.scaleToGeodeticHeight(i.attributes.position.values,l,u,!1);f=new Float64Array(f);let s=f.length,h=s*2,g=new Float64Array(h);g.set(f);let A=Rt.scaleToGeodeticHeight(i.attributes.position.values,c,u);g.set(A,s),i.attributes.position.values=g;let b=a.normal?new Float32Array(h):void 0,z=a.tangent?new Float32Array(h):void 0,F=a.bitangent?new Float32Array(h):void 0,j=a.st?new Float32Array(h/3*2):void 0,T,m;if(a.normal){for(m=i.attributes.normal.values,b.set(m),o=0;o<s;o++)m[o]=-m[o];b.set(m,s),i.attributes.normal.values=b}if(n){m=i.attributes.normal.values,a.normal||(i.attributes.normal=void 0);let R=new Float32Array(h);for(o=0;o<s;o++)m[o]=-m[o];R.set(m,s),i.attributes.extrudeDirection=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:R})}let K,P=$(r);if(P){let R=s/3*2,at=new Uint8Array(R);r===ut.TOP?at=at.fill(1,0,R/2):(K=r===ut.NONE?0:1,at=at.fill(K)),i.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:at})}if(a.tangent){let R=i.attributes.tangent.values;for(z.set(R),o=0;o<s;o++)R[o]=-R[o];z.set(R,s),i.attributes.tangent.values=z}if(a.bitangent){let R=i.attributes.bitangent.values;F.set(R),F.set(R,s),i.attributes.bitangent.values=F}a.st&&(T=i.attributes.st.values,j.set(T),j.set(T,s/3*2),i.attributes.st.values=j);let D=i.indices,N=D.length,O=s/3,x=yt.createTypedArray(h/3,N*2);for(x.set(D),o=0;o<N;o+=3)x[o+N]=D[o+2]+O,x[o+1+N]=D[o+1]+O,x[o+2+N]=D[o]+O;i.indices=x;let k=e.northCap,M=e.southCap,I=d,rt=2,pt=0,xt=4,Et=4;k&&(rt-=1,I-=1,pt+=1,xt-=2,Et-=1),M&&(rt-=1,I-=1,pt+=1,xt-=2,Et-=1),pt+=rt*p+2*I-xt;let gt=(pt+Et)*2,C=new Float64Array(gt*3),S=n?new Float32Array(gt*3):void 0,Z=P?new Uint8Array(gt):void 0,V=a.st?new Float32Array(gt*2):void 0,et=r===ut.TOP;P&&!et&&(K=r===ut.ALL?1:0,Z=Z.fill(K));let v=0,B=0,y=0,U=0,nt=p*I,_;for(o=0;o<nt;o+=p)_=o*3,C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,o*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1);if(M){let R=k?nt+1:nt;for(_=R*3,o=0;o<2;o++)C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,R*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1)}else for(o=nt-p;o<nt;o++)_=o*3,C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,o*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1);for(o=nt-1;o>0;o-=p)_=o*3,C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,o*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1);if(k){let R=nt;for(_=R*3,o=0;o<2;o++)C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,R*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1)}else for(o=p-1;o>=0;o--)_=o*3,C=ht(C,v,_,f,A),v+=6,a.st&&(V=dt(V,B,o*2,T),B+=4),n&&(y+=3,S[y++]=m[_],S[y++]=m[_+1],S[y++]=m[_+2]),et&&(Z[U++]=1,U+=1);let ot=te(C,a,u);a.st&&(ot.attributes.st=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:2,values:V})),n&&(ot.attributes.extrudeDirection=new q({componentDatatype:Y.FLOAT,componentsPerAttribute:3,values:S})),P&&(ot.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:Z}));let it=yt.createTypedArray(gt,pt*6),mt,wt,kt,bt;s=C.length/3;let ct=0;for(o=0;o<s-1;o+=2){mt=o,bt=(mt+2)%s;let R=w.fromArray(C,mt*3,Ct),at=w.fromArray(C,bt*3,jt);w.equalsEpsilon(R,at,W.EPSILON10)||(wt=(mt+1)%s,kt=(wt+2)%s,it[ct++]=mt,it[ct++]=wt,it[ct++]=bt,it[ct++]=bt,it[ct++]=wt,it[ct++]=kt)}return ot.indices=it,ot=zt.combineInstances([new Nt({geometry:i}),new Nt({geometry:ot})]),ot[0]}var ne=[new w,new w,new w,new w],Wt=new _t,oe=new _t;function Ht(t,e,n,r,a){if(n===0)return E.clone(t,a);let c=J.computeOptions(t,e,n,0,qt,Wt),l=c.height,u=c.width,d=ne;return J.computePosition(c,r,!1,0,0,d[0]),J.computePosition(c,r,!1,0,u-1,d[1]),J.computePosition(c,r,!1,l-1,0,d[2]),J.computePosition(c,r,!1,l-1,u-1,d[3]),E.fromCartesianArray(d,r,a)}function Q(t){t=L(t,L.EMPTY_OBJECT);let e=t.rectangle;if(lt.typeOf.object("rectangle",e),E._validate(e),e.north<e.south)throw new St("options.rectangle.north must be greater than or equal to options.rectangle.south");let n=L(t.height,0),r=L(t.extrudedHeight,n);this._rectangle=E.clone(e),this._granularity=L(t.granularity,W.RADIANS_PER_DEGREE),this._ellipsoid=H.clone(L(t.ellipsoid,H.default)),this._surfaceHeight=Math.max(n,r),this._rotation=L(t.rotation,0),this._stRotation=L(t.stRotation,0),this._vertexFormat=X.clone(L(t.vertexFormat,X.DEFAULT)),this._extrudedHeight=Math.min(n,r),this._shadowVolume=L(t.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=t.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Q.packedLength=E.packedLength+H.packedLength+X.packedLength+7;Q.pack=function(t,e,n){return lt.typeOf.object("value",t),lt.defined("array",e),n=L(n,0),E.pack(t._rectangle,e,n),n+=E.packedLength,H.pack(t._ellipsoid,e,n),n+=H.packedLength,X.pack(t._vertexFormat,e,n),n+=X.packedLength,e[n++]=t._granularity,e[n++]=t._surfaceHeight,e[n++]=t._rotation,e[n++]=t._stRotation,e[n++]=t._extrudedHeight,e[n++]=t._shadowVolume?1:0,e[n]=L(t._offsetAttribute,-1),e};var Jt=new E,Qt=H.clone(H.UNIT_SPHERE),tt={rectangle:Jt,ellipsoid:Qt,vertexFormat:Dt,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Q.unpack=function(t,e,n){lt.defined("array",t),e=L(e,0);let r=E.unpack(t,e,Jt);e+=E.packedLength;let a=H.unpack(t,e,Qt);e+=H.packedLength;let c=X.unpack(t,e,Dt);e+=X.packedLength;let l=t[e++],u=t[e++],d=t[e++],p=t[e++],o=t[e++],i=t[e++]===1,f=t[e];return $(n)?(n._rectangle=E.clone(r,n._rectangle),n._ellipsoid=H.clone(a,n._ellipsoid),n._vertexFormat=X.clone(c,n._vertexFormat),n._granularity=l,n._surfaceHeight=u,n._rotation=d,n._stRotation=p,n._extrudedHeight=o,n._shadowVolume=i,n._offsetAttribute=f===-1?void 0:f,n):(tt.granularity=l,tt.height=u,tt.rotation=d,tt.stRotation=p,tt.extrudedHeight=o,tt.shadowVolume=i,tt.offsetAttribute=f===-1?void 0:f,new Q(tt))};Q.computeRectangle=function(t,e){t=L(t,L.EMPTY_OBJECT);let n=t.rectangle;if(lt.typeOf.object("rectangle",n),E._validate(n),n.north<n.south)throw new St("options.rectangle.north must be greater than or equal to options.rectangle.south");let r=L(t.granularity,W.RADIANS_PER_DEGREE),a=L(t.ellipsoid,H.default),c=L(t.rotation,0);return Ht(n,r,c,a,e)};var ie=new ft,Ft=new Lt,ae=new _t;Q.createGeometry=function(t){if(W.equalsEpsilon(t._rectangle.north,t._rectangle.south,W.EPSILON10)||W.equalsEpsilon(t._rectangle.east,t._rectangle.west,W.EPSILON10))return;let e=t._rectangle,n=t._ellipsoid,r=t._rotation,a=t._stRotation,c=t._vertexFormat,l=J.computeOptions(e,t._granularity,r,a,qt,Wt,oe),u=ie;if(a!==0||r!==0){let s=E.center(e,ae),h=n.geodeticSurfaceNormalCartographic(s,Ct);Lt.fromAxisAngle(h,-a,Ft),ft.fromQuaternion(Ft,u)}else ft.clone(ft.IDENTITY,u);let d=t._surfaceHeight,p=t._extrudedHeight,o=!W.equalsEpsilon(d,p,0,W.EPSILON2);l.lonScalar=1/t._rectangle.width,l.latScalar=1/t._rectangle.height,l.tangentRotationMatrix=u;let i,f;if(e=t._rectangle,o){i=ee(t,l);let s=st.fromRectangle3D(e,n,d,$t),h=st.fromRectangle3D(e,n,p,Kt);f=st.union(s,h)}else{if(i=It(t,l),i.attributes.position.values=Rt.scaleToGeodeticHeight(i.attributes.position.values,d,n,!1),$(t._offsetAttribute)){let s=i.attributes.position.values.length,h=t._offsetAttribute===ut.NONE?0:1,g=new Uint8Array(s/3).fill(h);i.attributes.applyOffset=new q({componentDatatype:Y.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}f=st.fromRectangle3D(e,n,d)}return c.position||delete i.attributes.position,new Pt({attributes:i.attributes,indices:i.indices,primitiveType:i.primitiveType,boundingSphere:f,offsetAttribute:t._offsetAttribute})};Q.createShadowVolume=function(t,e,n){let r=t._granularity,a=t._ellipsoid,c=e(r,a),l=n(r,a);return new Q({rectangle:t._rectangle,rotation:t._rotation,ellipsoid:a,stRotation:t._stRotation,granularity:r,extrudedHeight:l,height:c,vertexFormat:X.POSITION_ONLY,shadowVolume:!0})};var vt=new E,se=[new G,new G,new G],re=new At,ce=new _t;function le(t){if(t._stRotation===0)return[0,0,0,1,1,0];let e=E.clone(t._rectangle,vt),n=t._granularity,r=t._ellipsoid,a=t._rotation-t._stRotation,c=Ht(e,n,a,r,vt),l=se;l[0].x=c.west,l[0].y=c.south,l[1].x=c.west,l[1].y=c.north,l[2].x=c.east,l[2].y=c.south;let u=t.rectangle,d=At.fromRotation(t._stRotation,re),p=E.center(u,ce);for(let h=0;h<3;++h){let g=l[h];g.x-=p.longitude,g.y-=p.latitude,At.multiplyByVector(d,g,g),g.x+=p.longitude,g.y+=p.latitude,g.x=(g.x-u.west)/u.width,g.y=(g.y-u.south)/u.height}let o=l[0],i=l[1],f=l[2],s=new Array(6);return G.pack(o,s),G.pack(i,s,2),G.pack(f,s,4),s}Object.defineProperties(Q.prototype,{rectangle:{get:function(){return $(this._rotatedRectangle)||(this._rotatedRectangle=Ht(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return $(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=le(this)),this._textureCoordinateRotationPoints}}});var Ot=Q;function fe(t,e){return $(e)&&(t=Ot.unpack(t,e)),t._ellipsoid=H.clone(t._ellipsoid),t._rectangle=E.clone(t._rectangle),Ot.createGeometry(t)}var Ye=fe;export{Ye as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js index 1e51d86c2..4981eac5c 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createRectangleOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:E,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var v=u.x,S=u.y,I=u.z,O=o;O.x=A.x*v*2,O.y=A.y*S*2,O.z=A.z*I*2;var N,g,M,w,C,x,P,U,D,L,F,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,M=1/(1+b*v),w=1/(1+b*S),C=1/(1+b*I),x=M*M,P=w*w,U=C*C,D=x*M,L=P*w,F=U*C,N=_*x+m*P+y*U-1,g=_*D*v+m*L*S+y*F*I;B=N/(-2*g)}while(Math.abs(N)>r.EPSILON12);return t(c)?(c.x=l*M,c.y=f*w,c.z=h*C,c):new e(l*M,f*w,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var E=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,_=r(n)?n._centerToleranceSquared:d,m=o(t,E,p,_,c);if(r(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),v=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=v,i):new u(R,A,v)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(n,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,n){"use strict";function r(e,n,r,i){if("function"==typeof e.fill)return e.fill(n,r,i);for(var a=e.length>>>0,o=t(r,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=n,u++;return e}return r}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],E[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=n-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),v=-n-u+f+d;return r(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=v,t):new s(E,p,_,m,y,T,R,A,v)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){ -var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(E,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(_,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),v=2*(c+m),S=-s+d-_+y,I=2*(E-h),O=2*(f-p),N=2*(E+h),g=-s-d+_+y;return r[0]=T*a,r[1]=v*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=S*o,r[6]=N*o,r[7]=0,r[8]=A*u,r[9]=I*u,r[10]=g*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=r.x,A=r.y,v=r.z,S=u*-R+s*-A+c*-v,I=m*-R+y*-A+T*-v,O=E*R+p*A+_*v;return i(n)?(n[0]=u,n[1]=m,n[2]=-E,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-_,n[11]=0,n[12]=S,n[13]=I,n[14]=O,n[15]=1,n):new l(u,s,c,S,m,y,T,I,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var E=new e;l.setScale=function(t,n,r){var i=l.getScale(t,E),a=e.divideComponents(n,i,E);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],v=t[3],S=t[4],I=t[5],O=t[6],N=t[7],g=t[8],M=t[9],w=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],L=r*T+u*R+f*A+p*v,F=i*T+s*R+h*A+_*v,b=a*T+c*R+d*A+m*v,B=o*T+l*R+E*A+y*v,z=r*S+u*I+f*O+p*N,q=i*S+s*I+h*O+_*N,G=a*S+c*I+d*O+m*N,W=o*S+l*I+E*O+y*N,X=r*g+u*M+f*w+p*C,V=i*g+s*M+h*w+_*C,H=a*g+c*M+d*w+m*C,Y=o*g+l*M+E*w+y*C,k=r*x+u*P+f*U+p*D,j=i*x+s*P+h*U+_*D,Z=a*x+c*P+d*U+m*D,K=o*x+l*P+E*U+y*D;return n[0]=L,n[1]=F,n[2]=b,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=W,n[8]=X,n[9]=V,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],v=t[9],S=t[10],I=t[12],O=t[13],N=t[14],g=r*p+o*_+c*m,M=i*p+u*_+l*m,w=a*p+s*_+f*m,C=r*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*A+o*v+c*S,D=i*A+u*v+l*S,L=a*A+s*v+f*S,F=r*I+o*O+c*N+h,b=i*I+u*O+l*N+d,B=a*I+s*O+f*N+E;return n[0]=g,n[1]=M,n[2]=w,n[3]=0,n[4]=C,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=F,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*E,v=i*h+u*d+l*E,S=a*h+s*d+f*E,I=r*p+o*_+c*m,O=i*p+u*_+l*m,N=a*p+s*_+f*m,g=r*y+o*T+c*R,M=i*y+u*T+l*R,w=a*y+s*T+f*R;return n[0]=A,n[1]=v,n[2]=S,n[3]=0,n[4]=I,n[5]=O,n[6]=N,n[7]=0,n[8]=g,n[9]=M,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var m=new e;l.multiplyByUniformScale=function(e,t,n){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],v=e[14],S=e[3],I=e[7],O=e[11],N=e[15],g=m*N,M=v*O,w=_*N,C=v*I,x=_*O,P=m*I,U=p*N,D=v*S,L=p*O,F=m*S,b=p*I,B=_*S,z=g*h+C*d+x*E-(M*h+w*d+P*E),q=M*f+U*d+F*E-(g*f+D*d+L*E),G=w*f+D*h+b*E-(C*f+U*h+B*E),W=P*f+L*h+B*d-(x*f+F*h+b*d),X=M*i+w*a+P*o-(g*i+C*a+x*o),V=g*r+D*a+L*o-(M*r+U*a+F*o),H=C*r+U*i+B*o-(w*r+D*i+b*o),Y=x*r+F*i+b*a-(P*r+L*i+B*a);g=a*E,M=o*d,w=i*E,C=o*h,x=i*d,P=a*h,U=r*E,D=o*f,L=r*d,F=a*f,b=r*h,B=i*f;var k=g*I+C*O+x*N-(M*I+w*O+P*N),j=M*S+U*O+F*N-(g*S+D*O+L*N),Z=w*S+D*I+b*N-(C*S+U*I+B*N),K=P*S+L*I+B*O-(x*S+F*I+b*O),J=w*m+P*v+M*_-(x*v+g*_+C*m),Q=L*v+g*p+D*m-(U*m+F*v+M*p),$=U*_+B*v+C*p-(b*v+w*p+D*_),ee=b*m+x*p+F*_-(L*_+B*m+P*p),te=r*z+i*q+a*G+o*W;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=W*te,n[4]=X*te,n[5]=V*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-n*f-r*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,v=new e,S=new e,I=new e,O=new e,N=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var N=a.x,g=a.y,M=a.z;N<o.x&&e.clone(a,o),N>c.x&&e.clone(a,c),g<u.y&&e.clone(a,u),g>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=w;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var L=v;L.x=.5*(P.x+U.x),L.y=.5*(P.y+U.y),L.z=.5*(P.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,A)),b=Math.sqrt(F),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=I;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var W=e.magnitude(e.subtract(a,q,A));W>G&&(G=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>F){var V=Math.sqrt(X);b=.5*(b+V),F=b*b;var H=V-b;L.x=(b*L.x+H*a.x)/V,L.y=(b*L.y+H*a.y)/V,L.z=(b*L.z+H*a.z)/V}}return b<G?(e.clone(L,n.center),n.radius=b):(e.clone(q,n.center),n.radius=G),n};var g=new o,M=new e,w=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,g),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=n.project(C,M),c=n.project(x,w),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),N=e.clone(u,y),g=e.clone(u,T),M=t.length;for(s=0;s<M;s+=a){var w=t[s]+n.x,C=t[s+1]+n.y,x=t[s+2]+n.z;u.x=w,u.y=C,u.z=x,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>N.y&&e.clone(u,N),x<f.z&&e.clone(u,f),x>g.z&&e.clone(u,g)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(N,l,A)),D=e.magnitudeSquared(e.subtract(g,f,A)),L=c,F=h,b=P;U>b&&(b=U,L=l,F=N),D>b&&(b=D,L=f,F=g);var B=v;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var z=e.magnitudeSquared(e.subtract(F,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var W=I;W.x=h.x,W.y=N.y,W.z=g.z;var X=e.midpoint(G,W,O),V=0;for(s=0;s<M;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>V&&(V=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<V?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=V),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),N=t.length;for(o=0;o<N;o+=3){var g=t[o]+n[o],M=t[o+1]+n[o+1],w=t[o+2]+n[o+2];a.x=g,a.y=M,a.z=w,g<u.x&&e.clone(a,u),g>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,L=C;x>L&&(L=x,U=s,D=f),P>L&&(L=P,U=c,D=h);var F=v;F.x=.5*(U.x+D.x),F.y=.5*(U.y+D.y),F.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,A)),B=Math.sqrt(b),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=I;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),W=0;for(o=0;o<N;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>W&&(W=X);var V=e.magnitudeSquared(e.subtract(a,F,A));if(V>b){var H=Math.sqrt(V);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<W?(e.clone(F,r.center),r.radius=B):(e.clone(G,r.center),r.radius=W),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,F);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var W=new e,X=new e,V=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,W),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,V);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,v=o.z;return o.x=v,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body -;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return _(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function E(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function _(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(O=!0,N=o(e[1]))}return O}function s(){return u()&&N}function c(){if(!t(g)&&(g=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(I.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(g=!0,M=o(e[1]))}return g}function l(){return c()&&M}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(I.userAgent);null!==e&&(w=!0,C=o(e[1]),C.isNightly=!!e[2])}return w}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===I.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===I.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(x=!0,P=o(e[1]))}return x}function E(){return d()&&P}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function _(){return p()&&D}function m(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(I.appVersion)),b}function T(){return m()&&F}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(I.pointerEnabled)||I.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function v(){return A()?z:void 0}function S(){return S._result}var I;I="undefined"!=typeof navigator?navigator:{};var O,N,g,M,w,C,x,P,U,D,L,F,b,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,p())return S._result=!1,e.resolve(S._result),e.promise;var n=new Image;return n.onload=function(){S._result=n.width>0&&n.height>0,e.resolve(S._result)},n.onerror=function(){S._result=!1,e.resolve(S._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var W={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(I.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:v,typedArrayTypes:G};return W.supportsFullscreen=function(){return i.supportsFullscreen()},W.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},W.supportsWebWorkers=function(){return"undefined"!=typeof Worker},W.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!W.isEdge()},W}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];n=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n, -R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*n,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);r[o]=_.x*u,r[o+1]=_.y*u,r[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,E=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=E,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var v=new s,S=new s,I=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=v=s.negate(t,v)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-n)*u),S),I=s.multiplyByScalar(a,Math.sin(n*u),I),r=s.add(S,I,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,N=new e,g=new s,M=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,g);s.multiply(a,r,M);var o=s.log(M,O);s.multiply(a,t,M);var u=s.log(M,N);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,g),s.multiply(n,g,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,g),u=s.slerp(n,r,i,M);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;x[L]=1/(F*b),P[L]=F/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,r),s.add(E,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,g),u=s.fastSlerp(n,r,i,M);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,v=" ",S=s.length,I=0;s&&I<S;I++)switch(s.charAt(I)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":v=s.charAt(I+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(m),y,c,f,R,v);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function E(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,v=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,I=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+I.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+I.source,g=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+I.source;p.fromGregorianDate=function(e,t){var n=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,I=0,M=u[0],w=u[1];if(null!==(u=M.match(S)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(R)))n=+u[1],s=+u[2];else if(null!==(u=M.match(T)))n=+u[1];else{var C;if(null!==(u=M.match(A)))n=+u[1],C=+u[2],a=o(n);else if(null!==(u=M.match(v))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(w)){u=w.match(g),null!==u?(h=+u[1],_=+u[2],y=+u[3],I=1e3*+(u[4]||0),D=5):(u=w.match(N),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=w.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,_-=b;break;case"-":h+=F,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(n,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:m[s-1],l+=i;var z=E(n,s,l,h,_,y,I);return r(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var M=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,M);r(i)||(p.addSeconds(e,-1,M),i=h(M,M),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,v=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=v,t.isLeapSecond=n,t):new a(m,_,E,y,R,A,v,n)},p.toDate=function(e){var t=p.toGregorianDate(e,_),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},p.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],g.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],g.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,I.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},v=20,S=new u({comparator:f});S.maximumLength=v,S.reserve(v);var I=[],O={},N="undefined"!=typeof document?new e(document.location.href):new e,g=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=g,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return v},set:function(e){if(e<v)for(;S.length>e;){var t=S.pop();T(t)}v=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,n=0,r=I.length;for(e=0;e<r;++e)t=I[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(I[e-n]=t):++n;I.length-=n;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-I.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(N);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return g.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(I.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=I.length,t=0;t<e;++t)T(I[t]);I.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,v,S,I,O){"use strict";function N(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?C(a,t._queryParameters,r):a,e.query=void 0}function g(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new I("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o] -;u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);N(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=v.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=v.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function F(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new I("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);N(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&g(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);N(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;w(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=v.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==S.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=S.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var W=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=W.exec(e);if(null!==s)return void a.resolve(F(s,t));if(X)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new I("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return m(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))E(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=n.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var v=_[R+i],S=_[R+p],I=v+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(I,S,f.TAI);if(m.push(O),T){if(S!==y&&r(y)){var N=o.leapSeconds,g=t(N,O,d);if(g<0){var M=new u(O,S);N.splice(~g,0,M)}}y=S}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,n){return t+e*(n-t)}function m(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=n[h+e._ut1MinusUtcSecondsColumn],m=n[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?E=m:m-=R-T)}return u.xPoleWander=_(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!r(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,n),n}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=E.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);n.x+=T[E]*d[A++],n.y+=T[E]*d[A++],n.s+=T[E]*d[A]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},v={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},I={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},N=new n,g=new n,M=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!v.hasOwnProperty(e)||!v[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=v[e][t],a=e+t;return u(I[a])?r=I[a]:(r=function(r,a,s){if(u(s)||(s=new y),_.equalsEpsilon(r.x,0,_.EPSILON14)&&_.equalsEpsilon(r.y,0,_.EPSILON14)){var c=_.sign(r.z);n.unpack(S[e],0,N),"east"!==e&&"west"!==e&&n.multiplyByScalar(N,c,N),n.unpack(S[t],0,g),"east"!==t&&"west"!==t&&n.multiplyByScalar(g,c,g),n.unpack(S[i],0,M),"east"!==i&&"west"!==i&&n.multiplyByScalar(M,c,M)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),N=O[e],g=O[t],M=O[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=g.x,s[5]=g.y,s[6]=g.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},I[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var w=new T,C=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,C,x);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new m;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,F=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return m.transpose(n,t)};var W=new E(0,0,0),X=new l(0,0,0,0,0,0),V=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,W);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=V;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,V),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,v=.779057273264+T+.00273781191135448*(y+T);v=v%1*_.TWO_PI;var S=m.fromRotationZ(v,H),I=m.multiply(h,S,V),O=Math.cos(n.xPoleWander),N=Math.cos(n.yPoleWander),g=Math.sin(n.xPoleWander),M=Math.sin(n.yPoleWander),w=r-2451545+i/R.SECONDS_PER_DAY;w/=36525;var C=-47e-6*w*_.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=H;return U[0]=O*x,U[1]=O*P,U[2]=g,U[3]=-N*P+M*g*x,U[4]=N*x+M*g*P,U[5]=-M*O,U[6]=-M*P-N*g*x,U[7]=M*x-N*g*P,U[8]=N*O,m.multiply(I,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,_.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new m,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var m=new n,y=new t,T=new f,R=[new n,new n,new n],A=[new e,new e,new e],v=[new e,new e,new e],S=new t,I=new d,O=new f,N=new c;return _._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=E.center(o,m),h=n.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),g=f.inverse(_,T),M=A,w=R;w[0].longitude=o.west,w[0].latitude=o.south,w[1].longitude=o.west,w[1].latitude=o.north,w[2].longitude=o.east,w[2].latitude=o.south;var C=S;for(u=0;u<3;u++)n.toCartesian(w[u],a,C),C=f.multiplyByPointAsVector(g,C,C),M[u].x=C.x,M[u].y=C.y;var x=d.fromAxisAngle(t.UNIT_Z,-i,I),P=l.fromQuaternion(x,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)C=f.multiplyByPointAsVector(g,r[u],C),C=l.multiplyByVector(P,C,C),D=Math.min(D,C.x),L=Math.min(L,C.y),F=Math.max(F,C.x),b=Math.max(b,C.y);var B=c.fromRotation(i,N),z=v;z[0].x=D,z[0].y=L,z[1].x=D,z[1].y=b,z[2].x=F,z[2].y=L;var q=M[0],G=M[2].x-q.x,W=M[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/W}var V=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(V,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT), -this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,E,p,_;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var m=i;m<o;m+=i)E=e[m],p=e[m+1],E<l&&(l=E),p<f&&(f=p),E>h&&(h=E),p>d&&(d=p);_=Math.max(h-l,d-f)}return r(u,c,i,l,f,_),c}function t(e,t,n,r,i){var a,o;if(i===M(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(N(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==y(r.prev,r,r.next))r=r.next;else{if(N(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var E,p,_=e;e.prev!==e.next;)if(E=e.prev,p=e.next,f?a(e,c,l,f):i(e))t.push(E.i/s),t.push(e.i/s),t.push(p.i/s),N(e),e=p.next,_=p.next;else if((e=p)===_){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(y(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(_(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(y(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=E(u,s,t,n,r),h=E(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&_(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&_(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&R(i,r,r.next,a)&&v(i,a)&&v(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),N(r),N(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&m(s,c)){var l=I(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(p(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=I(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&_(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&v(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=E(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function E(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function p(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function _(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function m(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!A(e,t)&&v(e,t)&&v(t,e)&&S(e,t)}function y(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||y(e,t,n)>0!=y(e,t,r)>0&&y(n,r,e)>0!=y(n,r,t)>0}function A(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function v(e,t){return y(e.prev,e,e.next)<0?y(e,t,e.next)>=0&&y(e,e.prev,t)>=0:y(e,t,e.prev)<0||y(e,e.next,t)<0}function S(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function I(e,t){var n=new g(e.i,e.x,e.y),r=new g(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new g(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function N(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function g(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(M(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(M(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,E=r[u+2]*n;f+=Math.abs((e[h]-e[E])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[E+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,E=Math.sin(2*r),p=Math.cos(2*r),_=Math.sin(4*r),m=Math.cos(4*r),y=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),A=Math.cos(8*r),v=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*p+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*m+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*A+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*E+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*_+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*v+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function E(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,y),m),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function p(e,n,r,a,o,u){var h,d,E,p=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var _=f(o,e.latitude),m=f(o,d);E=Math.tan(n)*(m-_),h=s.negativePiToPi(e.longitude+E)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-p*T*T)}E=r/y,h=n>0?s.negativePiToPi(e.longitude+E):s.negativePiToPi(e.longitude-E)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function _(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&E(this,e,n,o)}var m=new e,y=new e;return a(_.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),_.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,E=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var m=p(e,t,n,c.maximumRadius,E);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new _(e,m,c):(o.setEndPoints(e,m),o)},_.prototype.setEndPoints=function(e,t){E(this,e,t,this._ellipsoid)},_.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},_.prototype.interpolateUsingSurfaceDistance=function(e,t){return p(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},_.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),E=u.latitude;do{c=E;var p=r*Math.sin(c),_=(1+p)/(1-p);E=2*Math.atan(h*Math.pow(_/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(E,c,s.EPSILON12));return n.longitude=e,n.latitude=E,n.height=0,n},_.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},_}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E){"use strict";var p=new n,_=new n,m={};m.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},m.computeWindingOrder2D=function(e){return m.computeArea2D(e)>0?E.COUNTER_CLOCKWISE:E.CLOCKWISE},m.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var y=new n,T=new n,R=new n,A=new n,v=new n,S=new n,I=new n;m.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),E=t.length,p=new Array(3*E),_=0;for(s=0;s<E;s++){var m=t[s];p[_++]=m.x,p[_++]=m.y,p[_++]=m.z}for(var O=[],N={},g=e.maximumRadius,M=h.chordLength(i,g),w=M*M;c.length>0;){var C,x,P=c.pop(),U=c.pop(),D=c.pop(),L=n.fromArray(p,3*D,y),F=n.fromArray(p,3*U,T),b=n.fromArray(p,3*P,R),B=n.multiplyByScalar(n.normalize(L,A),g,A),z=n.multiplyByScalar(n.normalize(F,v),g,v),q=n.multiplyByScalar(n.normalize(b,S),g,S),G=n.magnitudeSquared(n.subtract(B,z,I)),W=n.magnitudeSquared(n.subtract(z,q,I)),X=n.magnitudeSquared(n.subtract(q,B,I)),V=Math.max(G,W,X);V>w?G===V?(C=Math.min(D,U)+" "+Math.max(D,U),s=N[C],u(s)||(x=n.add(L,F,I),n.multiplyByScalar(x,.5,x),p.push(x.x,x.y,x.z),s=p.length/3-1,N[C]=s),c.push(D,s,P),c.push(s,U,P)):W===V?(C=Math.min(U,P)+" "+Math.max(U,P),s=N[C],u(s)||(x=n.add(F,b,I),n.multiplyByScalar(x,.5,x),p.push(x.x,x.y,x.z),s=p.length/3-1,N[C]=s),c.push(U,s,D),c.push(s,P,D)):X===V&&(C=Math.min(P,D)+" "+Math.max(P,D),s=N[C],u(s)||(x=n.add(b,L,I),n.multiplyByScalar(x,.5,x),p.push(x.x,x.y,x.z),s=p.length/3-1,N[C]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:p})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,N=new r,g=new r,M=new r;return m.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,E=r.slice(0),p=t.length,_=new Array(3*p),m=0;for(s=0;s<p;s++){var A=t[s];_[m++]=A.x,_[m++]=A.y,_[m++]=A.z}for(var v=[],S={},w=e.maximumRadius,C=h.chordLength(i,w),x=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);E.length>0;){var D=E.pop(),L=E.pop(),F=E.pop(),b=n.fromArray(_,3*F,y),B=n.fromArray(_,3*L,T),z=n.fromArray(_,3*D,R),q=e.cartesianToCartographic(b,O),G=e.cartesianToCartographic(B,N),W=e.cartesianToCartographic(z,g);x.setEndPoints(q,G);var X=x.surfaceDistance;P.setEndPoints(G,W);var V=P.surfaceDistance;U.setEndPoints(W,q);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(X,V,Z);K>C?X===K?(H=Math.min(F,L)+" "+Math.max(F,L),s=S[H],u(s)||(Y=x.interpolateUsingFraction(.5,M),k=.5*(q.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,I),_.push(j.x,j.y,j.z),s=_.length/3-1,S[H]=s),E.push(F,s,D),E.push(s,L,D)):V===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=S[H],u(s)||(Y=P.interpolateUsingFraction(.5,M),k=.5*(G.height+W.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,I),_.push(j.x,j.y,j.z),s=_.length/3-1,S[H]=s),E.push(L,s,F),E.push(s,D,F)):Z===K&&(H=Math.min(D,F)+" "+Math.max(D,F),s=S[H],u(s)||(Y=U.interpolateUsingFraction(.5,M),k=.5*(W.height+q.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,I),_.push(j.x,j.y,j.z),s=_.length/3-1,S[H]=s),E.push(D,s,L),E.push(s,F,L)):(v.push(F),v.push(L),v.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:_})},indices:v,primitiveType:d.TRIANGLES})},m.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=p,c=_;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},m}),define("Core/RectangleGeometryLibrary",["./Cartesian3","./Cartographic","./defined","./DeveloperError","./GeographicProjection","./Math","./Matrix2","./Rectangle"],function(e,t,n,r,i,a,o,u){"use strict";function s(t,n,r,i,a,u,s){var c=Math.cos(n),l=i*c,f=r*c,h=Math.sin(n),p=i*h,y=r*h;E=m.project(t,E),E=e.subtract(E,_,E);var T=o.fromRotation(n,d);E=o.multiplyByVector(T,E,E),E=e.add(E,_,E),t=m.unproject(E,t),u-=1,s-=1;var R=t.latitude,A=R+u*y,v=R-l*s,S=R-l*s+u*y,I=Math.max(R,A,v,S),O=Math.min(R,A,v,S),N=t.longitude,g=N+u*f,M=N+s*p,w=N+s*p+u*f;return{north:I,south:O,east:Math.max(N,g,M,w),west:Math.min(N,g,M,w),granYCos:l,granYSin:p,granXCos:f,granXSin:y,nwCorner:t}}var c=Math.cos,l=Math.sin,f=Math.sqrt,h={};h.computePosition=function(e,t,r,i,a,o,u){var s=t.radiiSquared,h=e.nwCorner,d=e.boundingRectangle,E=h.latitude-e.granYCos*i+a*e.granXSin,p=c(E),_=l(E),m=s.z*_,y=h.longitude+i*e.granYSin+a*e.granXCos,T=p*c(y),R=p*l(y),A=s.x*T,v=s.y*R,S=f(A*T+v*R+m*_);if(o.x=A/S,o.y=v/S,o.z=m/S,r){var I=e.stNwCorner;n(I)?(E=I.latitude-e.stGranYCos*i+a*e.stGranXSin,y=I.longitude+i*e.stGranYSin+a*e.stGranXCos,u.x=(y-e.stWest)*e.lonScalar,u.y=(E-e.stSouth)*e.latScalar):(u.x=(y-d.west)*e.lonScalar,u.y=(E-d.south)*e.latScalar)}};var d=new o,E=new e,p=new t,_=new e,m=new i;return h.computeOptions=function(e,t,n,r,i,o,c){var l=e.east,f=e.west,h=e.north,d=e.south,E=!1,y=!1;h===a.PI_OVER_TWO&&(E=!0),d===-a.PI_OVER_TWO&&(y=!0);var T,R,A,v,S,I=h-d;S=f>l?a.TWO_PI-f+l:l-f,T=Math.ceil(S/t)+1,R=Math.ceil(I/t)+1,A=S/(T-1),v=I/(R-1);var O=u.northwest(e,o),N=u.center(e,p);0===n&&0===r||(N.longitude<O.longitude&&(N.longitude+=a.TWO_PI),_=m.project(N,_));var g=v,M=A,w=u.clone(e,i),C={granYCos:g,granYSin:0,granXCos:M,granXSin:0,nwCorner:O,boundingRectangle:w,width:T,height:R,northCap:E,southCap:y};if(0!==n){var x=s(O,n,A,v,N,T,R);h=x.north,d=x.south,l=x.east,f=x.west,C.granYCos=x.granYCos,C.granYSin=x.granYSin,C.granXCos=x.granXCos,C.granXSin=x.granXSin,w.north=h,w.south=d,w.east=l,w.west=f}if(0!==r){n-=r;var P=u.northwest(w,c),U=s(P,n,A,v,N,T,R);C.stGranYCos=U.granYCos,C.stGranXCos=U.granXCos,C.stGranYSin=U.granYSin,C.stGranXSin=U.granXSin,C.stNwCorner=P,C.stWest=U.west,C.stSouth=U.south}return C},h}),define("Core/RectangleOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Cartographic","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PolygonPipeline","./PrimitiveType","./Rectangle","./RectangleGeometryLibrary"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y){"use strict";function T(e,t){var n=e._ellipsoid,r=t.height,a=t.width,o=t.northCap,u=t.southCap,s=r,h=2,E=0,p=4;o&&(h-=1,s-=1,E+=1,p-=2),u&&(h-=1,s-=1,E+=1,p-=2),E+=h*a+2*s-p;var m,T=new Float64Array(3*E),R=0,A=0,v=I;if(o)y.computePosition(t,n,!1,A,0,v),T[R++]=v.x,T[R++]=v.y,T[R++]=v.z;else for(m=0;m<a;m++)y.computePosition(t,n,!1,A,m,v),T[R++]=v.x,T[R++]=v.y,T[R++]=v.z;for(m=a-1,A=1;A<r;A++)y.computePosition(t,n,!1,A,m,v),T[R++]=v.x,T[R++]=v.y,T[R++]=v.z;if(A=r-1,!u)for(m=a-2;m>=0;m--)y.computePosition(t,n,!1,A,m,v),T[R++]=v.x,T[R++]=v.y,T[R++]=v.z;for(m=0,A=r-2;A>0;A--)y.computePosition(t,n,!1,A,m,v),T[R++]=v.x,T[R++]=v.y,T[R++]=v.z;for(var S=T.length/3*2,O=d.createTypedArray(T.length/3,S),N=0,g=0;g<T.length/3-1;g++)O[N++]=g,O[N++]=g+1;O[N++]=T.length/3-1,O[N++]=0;var M=new c({attributes:new f,primitiveType:_.LINES});return M.attributes.position=new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:T}),M.indices=O,M}function R(e,t){var n=e._surfaceHeight,r=e._extrudedHeight,i=e._ellipsoid,a=r,o=n,u=T(e,t),s=t.height,c=t.width,l=p.scaleToGeodeticHeight(u.attributes.position.values,o,i,!1),f=l.length,h=new Float64Array(2*f);h.set(l);var E=p.scaleToGeodeticHeight(u.attributes.position.values,a,i);h.set(E,f),u.attributes.position.values=h;var _=t.northCap,m=t.southCap,y=4;_&&(y-=1),m&&(y-=1);var R=2*(h.length/3+y),A=d.createTypedArray(h.length/3,R);f=h.length/6;for(var v=0,S=0;S<f-1;S++)A[v++]=S,A[v++]=S+1,A[v++]=S+f,A[v++]=S+f+1;A[v++]=f-1,A[v++]=0,A[v++]=f+f-1,A[v++]=f,A[v++]=0,A[v++]=f;var I;if(_)I=s-1;else{var O=c-1;A[v++]=O,A[v++]=O+f,I=c+s-2}if(A[v++]=I,A[v++]=I+f,!m){var N=c+I-1;A[v++]=N,A[v]=N+f}return u.indices=A,u}function A(e){e=a(e,a.EMPTY_OBJECT);var t=e.rectangle,n=a(e.granularity,E.RADIANS_PER_DEGREE),r=a(e.ellipsoid,s.WGS84),i=a(e.rotation,0),o=a(e.height,0),u=a(e.extrudedHeight,o);this._rectangle=m.clone(t),this._granularity=n,this._ellipsoid=r,this._surfaceHeight=Math.max(o,u),this._rotation=i,this._extrudedHeight=Math.min(o,u),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}var v=new t,S=new t,I=new n,O=new m;A.packedLength=m.packedLength+s.packedLength+5,A.pack=function(e,t,n){return n=a(n,0),m.pack(e._rectangle,t,n),n+=m.packedLength,s.pack(e._ellipsoid,t,n),n+=s.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=a(e._offsetAttribute,-1),t};var N=new m,g=s.clone(s.UNIT_SPHERE),M={rectangle:N,ellipsoid:g,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};A.unpack=function(e,t,n){t=a(t,0);var r=m.unpack(e,t,N);t+=m.packedLength;var i=s.unpack(e,t,g);t+=s.packedLength;var u=e[t++],c=e[t++],l=e[t++],f=e[t++],h=e[t];return o(n)?(n._rectangle=m.clone(r,n._rectangle),n._ellipsoid=s.clone(i,n._ellipsoid),n._surfaceHeight=c,n._rotation=l,n._extrudedHeight=f,n._offsetAttribute=-1===h?void 0:h,n):(M.granularity=u,M.height=c,M.rotation=l,M.extrudedHeight=f,M.offsetAttribute=-1===h?void 0:h,new A(M))};var w=new r;return A.createGeometry=function(n){var r,a,u=n._rectangle,s=n._ellipsoid,f=y.computeOptions(u,n._granularity,n._rotation,0,O,w);if(!E.equalsEpsilon(u.north,u.south,E.EPSILON10)&&!E.equalsEpsilon(u.east,u.west,E.EPSILON10)){var d,m=n._surfaceHeight,A=n._extrudedHeight,I=!E.equalsEpsilon(m,A,0,E.EPSILON2);if(I){if(r=R(n,f),o(n._offsetAttribute)){var N=r.attributes.position.values.length/3,g=new Uint8Array(N);n._offsetAttribute===h.TOP?g=e(g,1,0,N/2):(d=n._offsetAttribute===h.NONE?0:1,g=e(g,d)),r.attributes.applyOffset=new l({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}var M=t.fromRectangle3D(u,s,m,S),C=t.fromRectangle3D(u,s,A,v);a=t.union(M,C)}else{if(r=T(n,f),r.attributes.position.values=p.scaleToGeodeticHeight(r.attributes.position.values,m,s,!1),o(n._offsetAttribute)){var x=r.attributes.position.values.length,P=new Uint8Array(x/3);d=n._offsetAttribute===h.NONE?0:1,e(P,d),r.attributes.applyOffset=new l({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:P})}a=t.fromRectangle3D(u,s,m)}return new c({attributes:r.attributes,indices:r.indices,primitiveType:_.LINES,boundingSphere:a,offsetAttribute:n._offsetAttribute})}},A}),define("Workers/createRectangleOutlineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/Rectangle","../Core/RectangleOutlineGeometry"],function(e,t,n,r){"use strict";function i(i,a){return e(a)&&(i=r.unpack(i,a)),i._ellipsoid=t.clone(i._ellipsoid),i._rectangle=n.clone(i._rectangle),r.createGeometry(i)}return i})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as C}from"./chunk-B4L3YPI4.js";import{a as v}from"./chunk-6UMNSGJM.js";import{b as z}from"./chunk-M243PNMW.js";import"./chunk-XDFUUQMZ.js";import{a as O}from"./chunk-T53UE6JF.js";import{a as Y}from"./chunk-RYO6NY7F.js";import{b as B,c as q,d as y}from"./chunk-2HSPJH3C.js";import{d as R}from"./chunk-T5AUOWE7.js";import{i as b}from"./chunk-Y5B6Y3WD.js";import{a as T}from"./chunk-6QVIJ7JA.js";import{a as U,b as M,d as w}from"./chunk-AODSXSC5.js";import{a as P}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as E}from"./chunk-WHQYJFDH.js";import{a as N}from"./chunk-OYWUGDKS.js";import{e as S}from"./chunk-DRYFJEFT.js";var j=new R,K=new R,Q=new U,W=new b;function F(t,e){let i=t._ellipsoid,m=e.height,s=e.width,h=e.northCap,a=e.southCap,_=m,A=2,o=0,g=4;h&&(A-=1,_-=1,o+=1,g-=2),a&&(A-=1,_-=1,o+=1,g-=2),o+=A*s+2*_-g;let n=new Float64Array(o*3),l=0,f=0,p,r=Q;if(h)C.computePosition(e,i,!1,f,0,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;else for(p=0;p<s;p++)C.computePosition(e,i,!1,f,p,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;for(p=s-1,f=1;f<m;f++)C.computePosition(e,i,!1,f,p,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;if(f=m-1,!a)for(p=s-2;p>=0;p--)C.computePosition(e,i,!1,f,p,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;for(p=0,f=m-2;f>0;f--)C.computePosition(e,i,!1,f,p,r),n[l++]=r.x,n[l++]=r.y,n[l++]=r.z;let u=n.length/3*2,c=O.createTypedArray(n.length/3,u),H=0;for(let D=0;D<n.length/3-1;D++)c[H++]=D,c[H++]=D+1;c[H++]=n.length/3-1,c[H++]=0;let d=new q({attributes:new Y,primitiveType:B.LINES});return d.attributes.position=new y({componentDatatype:T.DOUBLE,componentsPerAttribute:3,values:n}),d.indices=c,d}function X(t,e){let i=t._surfaceHeight,m=t._extrudedHeight,s=t._ellipsoid,h=F(t,e),a=e.height,_=e.width,A=z.scaleToGeodeticHeight(h.attributes.position.values,i,s,!1),o=A.length,g=new Float64Array(o*2);g.set(A);let n=z.scaleToGeodeticHeight(h.attributes.position.values,m,s);g.set(n,o),h.attributes.position.values=g;let l=e.northCap,f=e.southCap,p=4;l&&(p-=1),f&&(p-=1);let r=(g.length/3+p)*2,u=O.createTypedArray(g.length/3,r);o=g.length/6;let c=0;for(let d=0;d<o-1;d++)u[c++]=d,u[c++]=d+1,u[c++]=d+o,u[c++]=d+o+1;u[c++]=o-1,u[c++]=0,u[c++]=o+o-1,u[c++]=o,u[c++]=0,u[c++]=o;let H;if(l)H=a-1;else{let d=_-1;u[c++]=d,u[c++]=d+o,H=_+a-2}if(u[c++]=H,u[c++]=H+o,!f){let d=_+H-1;u[c++]=d,u[c]=d+o}return h.indices=u,h}function L(t){t=E(t,E.EMPTY_OBJECT);let e=t.rectangle,i=E(t.granularity,P.RADIANS_PER_DEGREE),m=E(t.ellipsoid,w.default),s=E(t.rotation,0);if(!S(e))throw new N("rectangle is required.");if(b._validate(e),e.north<e.south)throw new N("options.rectangle.north must be greater than options.rectangle.south");let h=E(t.height,0),a=E(t.extrudedHeight,h);this._rectangle=b.clone(e),this._granularity=i,this._ellipsoid=m,this._surfaceHeight=Math.max(h,a),this._rotation=s,this._extrudedHeight=Math.min(h,a),this._offsetAttribute=t.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}L.packedLength=b.packedLength+w.packedLength+5;L.pack=function(t,e,i){if(!S(t))throw new N("value is required");if(!S(e))throw new N("array is required");return i=E(i,0),b.pack(t._rectangle,e,i),i+=b.packedLength,w.pack(t._ellipsoid,e,i),i+=w.packedLength,e[i++]=t._granularity,e[i++]=t._surfaceHeight,e[i++]=t._rotation,e[i++]=t._extrudedHeight,e[i]=E(t._offsetAttribute,-1),e};var V=new b,J=w.clone(w.UNIT_SPHERE),k={rectangle:V,ellipsoid:J,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};L.unpack=function(t,e,i){if(!S(t))throw new N("array is required");e=E(e,0);let m=b.unpack(t,e,V);e+=b.packedLength;let s=w.unpack(t,e,J);e+=w.packedLength;let h=t[e++],a=t[e++],_=t[e++],A=t[e++],o=t[e];return S(i)?(i._rectangle=b.clone(m,i._rectangle),i._ellipsoid=w.clone(s,i._ellipsoid),i._surfaceHeight=a,i._rotation=_,i._extrudedHeight=A,i._offsetAttribute=o===-1?void 0:o,i):(k.granularity=h,k.height=a,k.rotation=_,k.extrudedHeight=A,k.offsetAttribute=o===-1?void 0:o,new L(k))};var Z=new M;L.createGeometry=function(t){let e=t._rectangle,i=t._ellipsoid,m=C.computeOptions(e,t._granularity,t._rotation,0,W,Z),s,h;if(P.equalsEpsilon(e.north,e.south,P.EPSILON10)||P.equalsEpsilon(e.east,e.west,P.EPSILON10))return;let a=t._surfaceHeight,_=t._extrudedHeight,A=!P.equalsEpsilon(a,_,0,P.EPSILON2),o;if(A){if(s=X(t,m),S(t._offsetAttribute)){let l=s.attributes.position.values.length/3,f=new Uint8Array(l);t._offsetAttribute===v.TOP?f=f.fill(1,0,l/2):(o=t._offsetAttribute===v.NONE?0:1,f=f.fill(o)),s.attributes.applyOffset=new y({componentDatatype:T.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}let g=R.fromRectangle3D(e,i,a,K),n=R.fromRectangle3D(e,i,_,j);h=R.union(g,n)}else{if(s=F(t,m),s.attributes.position.values=z.scaleToGeodeticHeight(s.attributes.position.values,a,i,!1),S(t._offsetAttribute)){let g=s.attributes.position.values.length;o=t._offsetAttribute===v.NONE?0:1;let n=new Uint8Array(g/3).fill(o);s.attributes.applyOffset=new y({componentDatatype:T.UNSIGNED_BYTE,componentsPerAttribute:1,values:n})}h=R.fromRectangle3D(e,i,a)}return new q({attributes:s.attributes,indices:s.indices,primitiveType:B.LINES,boundingSphere:h,offsetAttribute:t._offsetAttribute})};var x=L;function $(t,e){return S(e)&&(t=x.unpack(t,e)),t._ellipsoid=w.clone(t._ellipsoid),t._rectangle=b.clone(t._rectangle),x.createGeometry(t)}var Et=$;export{Et as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js index bec46f821..bebe63342 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createSimplePolylineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var s=new e;return a.setRandomNumberSeed=function(t){s=new e(t)},a.nextRandomNumber=function(){return s.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,s=t(e.magnitude,1),u=s*Math.sin(a);return n.x=u*Math.cos(i),n.y=u*Math.sin(i),n.z=s*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,s=t.y,u=t.z,c=i*u-a*s,l=a*o-n*u,f=n*s-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,s){i=t(i,0);var u=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(u,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(s)||(s=new o),o.add(d,h,s)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var s=e[a],u=e[a+1],c=a/2;n[c]=o.fromDegrees(s,u,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var s=e[a],u=e[a+1],c=a/2;n[c]=o.fromRadians(s,u,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var s=e[a],u=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(s,u,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var s=e[a],u=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(s,u,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,s,u,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,m=l*l*d*d,_=f*f*E*E,y=h*h*p*p,R=m+_+y,T=Math.sqrt(1/R),A=e.multiplyByScalar(r,T,a);if(R<u)return isFinite(T)?e.clone(A,c):void 0;var S=s.x,g=s.y,C=s.z,v=o;v.x=A.x*S*2,v.y=A.y*g*2,v.z=A.z*C*2;var I,O,N,M,w,P,D,U,F,x,L,B=(1-T)*e.magnitude(r)/(.5*e.magnitude(v)),b=0;do{B-=b,N=1/(1+B*S),M=1/(1+B*g),w=1/(1+B*C),P=N*N,D=M*M,U=w*w,F=P*N,x=D*M,L=U*w,I=m*P+_*D+y*U-1,O=m*F*S+_*x*g+y*L*C;b=I/(-2*O)}while(Math.abs(I)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*M,c.z=h*w,c):new e(l*N,f*M,h*w)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function s(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}s.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new s(e,t,i)},s.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),s.fromRadians(e,t,r,n)};var u=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return s.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,m=n(r)?r._centerToleranceSquared:d,_=o(t,E,p,m,c);if(n(_)){var y=e.multiplyComponents(_,p,u);y=e.normalize(y,y);var R=e.subtract(t,_,l),T=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(R,t))*e.magnitude(R);return n(i)?(i.longitude=T,i.latitude=A,i.height=S,i):new s(T,A,S)}},s.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},s.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new s(e.longitude,e.latitude,e.height)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},s.ZERO=i(new s(0,0,0)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},s}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=u.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=s(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=s(new f(1,1,1)),f.MOON=s(new f(u.LUNAR_RADIUS,u.LUNAR_RADIUS,u.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),s=o*Math.cos(n),u=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=s,r.y=u,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,m=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),s=e.subtract(r,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=u.sign(e.dot(s,r))*e.magnitude(s);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,s=this._oneOverRadiiSquared,u=1/Math.sqrt(n*n*s.x+a*a*s.y+o*o*s.z);return e.multiplyByScalar(t,u,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/ArcType",["./freezeObject"],function(e){"use strict";return e({NONE:0,GEODESIC:1,RHUMB:2})}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function s(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,s=t.height;return n(r)?(r.x=a,r.y=o,r.z=s,r):new e(a,o,s)},s.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,s=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=s,r):new t(a,o,s)},s}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i,a,o,s,u,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(s,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(u,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[u.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=s.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[u.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[u.getElementIndex(h,f)])>r){var d,m=e[u.getElementIndex(h,h)],_=e[u.getElementIndex(f,f)],y=e[u.getElementIndex(h,f)],R=(m-_)/2/y;d=R<0?-1/(-R+Math.sqrt(1+R*R)):1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+d*d),l=d*c}return t=u.clone(u.IDENTITY,t),t[u.getElementIndex(f,f)]=t[u.getElementIndex(h,h)]=c,t[u.getElementIndex(h,f)]=l,t[u.getElementIndex(f,h)]=-l,t}u.packedLength=9,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},u.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new u(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},u.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},u.fromColumnMajorArray=function(e,t){return u.clone(e,t)},u.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new u(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},u.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,s=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-s-f+d,p=2*(i-h),m=2*(a+l),_=2*(i+h),y=-r+s-f+d,R=2*(c-o),T=2*(a-l),A=2*(c+o),S=-r-s+f+d;return n(t)?(t[0]=E,t[1]=_,t[2]=T,t[3]=p,t[4]=y,t[5]=A,t[6]=m,t[7]=R,t[8]=S,t):new u(E,p,m,_,y,R,T,A,S)},u.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),s=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*s+c*o*i,h=c*s+a*o*i,d=r*s,E=a*i+c*o*s,p=-c*i+a*o*s,m=-o,_=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=E,t[5]=_,t[6]=h,t[7]=p,t[8]=y,t):new u(l,f,h,d,E,p,m,_,y)},u.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new u(e.x,0,0,0,e.y,0,0,0,e.z)},u.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new u(e,0,0,0,e,0,0,0,e)},u.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new u(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},u.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new u(1,0,0,0,r,-i,0,i,r)},u.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new u(r,0,i,0,1,0,-i,0,r)},u.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new u(r,-i,0,i,r,0,0,0,1)},u.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},u.getElementIndex=function(e,t){return 3*e+t},u.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},u.setColumn=function(e,t,r,n){n=u.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},u.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},u.setRow=function(e,t,r,n){return n=u.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;u.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;u.getMaximumScale=function(t){return u.getScale(t,d),e.maximumComponent(d)},u.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],s=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],u=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=s,r[5]=u,r[6]=c,r[7]=l,r[8]=f,r},u.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},u.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},u.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,s=e[1]*n+e[4]*i+e[7]*a,u=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=s,r.z=u,r},u.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},u.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},u.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},u.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],s=e[7],u=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=s,t[6]=u,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],m=new u,_=new u;return u.computeEigenDecomposition=function(e,t){var r=s.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=u.clone(u.IDENTITY,t.unitary),h=t.diagonal=u.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,m),u.transpose(m,_),u.multiply(h,m,h),u.multiply(_,h,h),u.multiply(o,m,o),++i>2&&(++a,i=0);return t},u.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},u.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],s=e[2],u=e[5],c=e[8];return t*(a*c-u*o)+i*(u*n-r*c)+s*(r*o-a*n)},u.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=u.determinant(e);t[0]=o*f-l*s,t[1]=l*i-n*f,t[2]=n*s-o*i,t[3]=c*s-a*f,t[4]=r*f-c*i,t[5]=a*i-r*s,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return u.multiplyByScalar(t,d,t)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},u.IDENTITY=o(new u(1,0,0,0,1,0,0,0,1)),u.ZERO=o(new u(0,0,0,0,0,0,0,0,0)),u.COLUMN0ROW0=0,u.COLUMN0ROW1=1,u.COLUMN0ROW2=2,u.COLUMN1ROW0=3,u.COLUMN1ROW1=4,u.COLUMN1ROW2=5,u.COLUMN2ROW0=6,u.COLUMN2ROW1=7,u.COLUMN2ROW2=8,i(u.prototype,{length:{get:function(){return u.packedLength}}}),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},u}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r), -t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var s=256*e;return t.x=Math.floor(s),s=256*(s-t.x),t.y=Math.floor(s),s=256*(s-t.y),t.z=Math.floor(s),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(e,t,r,i,a,o,s,u,c,l,f,h,d,E,p,m){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(s,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(u,0),this[14]=n(h,0),this[15]=n(m,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,s=r.z,u=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,R=u-d-m+y,T=2*(c-_),A=2*(f+p),S=2*(c+_),g=-u+d-m+y,C=2*(E-h),v=2*(f-p),I=2*(E+h),O=-u-d+m+y;return n[0]=R*a,n[1]=S*a,n[2]=v*a,n[3]=0,n[4]=T*o,n[5]=g*o,n[6]=I*o,n[7]=0,n[8]=A*s,n[9]=C*s,n[10]=O*s,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(u.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var s=h.x,u=h.y,c=h.z,E=f.x,p=f.y,m=f.z,_=d.x,y=d.y,R=d.z,T=n.x,A=n.y,S=n.z,g=s*-T+u*-A+c*-S,C=_*-T+y*-A+R*-S,v=E*T+p*A+m*S;return i(r)?(r[0]=s,r[1]=_,r[2]=-E,r[3]=0,r[4]=u,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=R,r[10]=-m,r[11]=0,r[12]=g,r[13]=C,r[14]=v,r[15]=1,r):new l(s,u,c,g,_,y,R,C,-E,-p,-m,v,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,s=o/t,u=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=s,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=u,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var s=1/(t-e),u=1/(n-r),c=1/(a-i),l=-(t+e)*s,f=-(n+r)*u,h=-(a+i)*c;return s*=2,u*=2,c*=-2,o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var s=2*i/(t-e),u=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=u,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),s=2*i/(n-r),u=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=s,a[6]=0,a[7]=0,a[8]=u,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),s=n(e.width,0),u=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*s,l=.5*u,f=.5*(r-t),h=c,d=l,E=f,p=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],s=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=s,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],s=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],m=e[13],_=e[14],y=e[15],R=t[0],T=t[1],A=t[2],S=t[3],g=t[4],C=t[5],v=t[6],I=t[7],O=t[8],N=t[9],M=t[10],w=t[11],P=t[12],D=t[13],U=t[14],F=t[15],x=n*R+s*T+f*A+p*S,L=i*R+u*T+h*A+m*S,B=a*R+c*T+d*A+_*S,b=o*R+l*T+E*A+y*S,q=n*g+s*C+f*v+p*I,z=i*g+u*C+h*v+m*I,G=a*g+c*C+d*v+_*I,V=o*g+l*C+E*v+y*I,W=n*O+s*N+f*M+p*w,H=i*O+u*N+h*M+m*w,X=a*O+c*N+d*M+_*w,Y=o*O+l*N+E*M+y*w,k=n*P+s*D+f*U+p*F,j=i*P+u*D+h*U+m*F,K=a*P+c*D+d*U+_*F,Z=o*P+l*D+E*U+y*F;return r[0]=x,r[1]=L,r[2]=B,r[3]=b,r[4]=q,r[5]=z,r[6]=G,r[7]=V,r[8]=W,r[9]=H,r[10]=X,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],m=t[1],_=t[2],y=t[4],R=t[5],T=t[6],A=t[8],S=t[9],g=t[10],C=t[12],v=t[13],I=t[14],O=n*p+o*m+c*_,N=i*p+s*m+l*_,M=a*p+u*m+f*_,w=n*y+o*R+c*T,P=i*y+s*R+l*T,D=a*y+u*R+f*T,U=n*A+o*S+c*g,F=i*A+s*S+l*g,x=a*A+u*S+f*g,L=n*C+o*v+c*I+h,B=i*C+s*v+l*I+d,b=a*C+u*v+f*I+E;return r[0]=O,r[1]=N,r[2]=M,r[3]=0,r[4]=w,r[5]=P,r[6]=D,r[7]=0,r[8]=U,r[9]=F,r[10]=x,r[11]=0,r[12]=L,r[13]=B,r[14]=b,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],m=t[4],_=t[5],y=t[6],R=t[7],T=t[8],A=n*h+o*d+c*E,S=i*h+s*d+l*E,g=a*h+u*d+f*E,C=n*p+o*m+c*_,v=i*p+s*m+l*_,I=a*p+u*m+f*_,O=n*y+o*R+c*T,N=i*y+s*R+l*T,M=a*y+u*R+f*T;return r[0]=A,r[1]=S,r[2]=g,r[3]=0,r[4]=C,r[5]=v,r[6]=I,r[7]=0,r[8]=O,r[9]=N,r[10]=M,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],s=n*e[1]+i*e[5]+a*e[9]+e[13],u=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=s,r[14]=u,r[15]=e[15],r};var _=new e;l.multiplyByUniformScale=function(e,t,r){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,s=e[0]*n+e[4]*i+e[8]*a+e[12]*o,u=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=s,r.y=u,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,s=e[1]*n+e[5]*i+e[9]*a,u=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=s,r.z=u,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],s=e[1]*n+e[5]*i+e[9]*a+e[13],u=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=s,r.z=u,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],s=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=s,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new u,R=new u,T=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],m=e[6],_=e[10],S=e[14],g=e[3],C=e[7],v=e[11],I=e[15],O=_*I,N=S*v,M=m*I,w=S*C,P=m*v,D=_*C,U=p*I,F=S*g,x=p*v,L=_*g,B=p*C,b=m*g,q=O*h+w*d+P*E-(N*h+M*d+D*E),z=N*f+U*d+L*E-(O*f+F*d+x*E),G=M*f+F*h+B*E-(w*f+U*h+b*E),V=D*f+x*h+b*d-(P*f+L*h+B*d),W=N*i+M*a+D*o-(O*i+w*a+P*o),H=O*n+F*a+x*o-(N*n+U*a+L*o),X=w*n+U*i+b*o-(M*n+F*i+B*o),Y=P*n+L*i+B*a-(D*n+x*i+b*a);O=a*E,N=o*d,M=i*E,w=o*h,P=i*d,D=a*h,U=n*E,F=o*f,x=n*d,L=a*f,B=n*h,b=i*f;var k=O*C+w*v+P*I-(N*C+M*v+D*I),j=N*g+U*v+L*I-(O*g+F*v+x*I),K=M*g+F*C+B*I-(w*g+U*C+b*I),Z=D*g+x*C+b*v-(P*g+L*C+B*v),J=M*_+D*S+N*m-(P*S+O*m+w*_),Q=x*S+O*p+F*_-(U*_+L*S+N*p),$=U*m+b*S+w*p-(B*S+M*p+F*m),ee=B*_+P*p+L*m-(x*m+b*_+D*p),te=n*q+i*z+a*G+o*V;if(Math.abs(te)<s.EPSILON21){if(u.equalsEpsilon(l.getRotation(e,y),R,s.EPSILON7)&&t.equals(l.getRow(e,3,T),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=q*te,r[1]=z*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=H*te,r[6]=X*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],s=e[6],u=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-s*d,m=-u*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=u,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=s,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(u.prototype,{width:{get:function(){return u.computeWidth(this)}},height:{get:function(){return u.computeHeight(this)}}}),u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},u.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=s.TWO_PI),t-r},u.computeHeight=function(e){return e.north-e.south},u.fromDegrees=function(e,t,i,a,o){return e=s.toRadians(r(e,0)),t=s.toRadians(r(t,0)),i=s.toRadians(r(i,0)),a=s.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new u(e,t,i,a)},u.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new u(e,t,i,a)},u.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+s.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>s.PI&&(i-=s.TWO_PI),r>s.PI&&(r-=s.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new u(r,c,i,l)},u.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var m=t.cartesianToCartographic(e[E]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+s.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>s.PI&&(c-=s.TWO_PI),o>s.PI&&(o-=s.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new u(o,h,c,d)},u.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new u(e.west,e.south,e.east,e.north)},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.validate=function(e){},u.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},u.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},u.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},u.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},u.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=s.TWO_PI);var o=s.negativePiToPi(.5*(a+i)),u=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=u,r.height=0,r):new e(o,u)},u.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=s.TWO_PI:o<c&&i>0&&(o+=s.TWO_PI),i<a&&c<0?c+=s.TWO_PI:o<c&&a<0&&(a+=s.TWO_PI);var l=s.negativePiToPi(Math.max(a,c)),f=s.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new u(l,h,f,d)}},u.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(a>=s||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=s,r):new u(i,a,o,s)},u.union=function(e,t,r){n(r)||(r=new u);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=s.TWO_PI:o<c&&i>0&&(o+=s.TWO_PI),i<a&&c<0?c+=s.TWO_PI:o<c&&a<0&&(a+=s.TWO_PI);var l=s.convertLongitudeRange(Math.min(a,c)),f=s.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},u.expand=function(e,t,r){return n(r)||(r=new u),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},u.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=s.TWO_PI,r<0&&(r+=s.TWO_PI)),(r>i||s.equalsEpsilon(r,i,s.EPSILON14))&&(r<a||s.equalsEpsilon(r,a,s.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return u.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)p.longitude=-Math.PI+m*s.PI_OVER_TWO,u.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},u.MAX_VALUE=o(new u(-Math.PI,-s.PI_OVER_TWO,Math.PI,s.PI_OVER_TWO)),u}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,s,u,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,m=new e,_=new e,y=new e,R=new e,T=new e,A=new e,S=new e,g=new e,C=new e,v=new e,I=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],T),o=e.clone(a,E),s=e.clone(a,p),u=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,R),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var I=a.x,O=a.y,N=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),O<s.y&&e.clone(a,s),O>l.y&&e.clone(a,l),N<u.z&&e.clone(a,u),N>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),w=e.magnitudeSquared(e.subtract(l,s,A)),P=e.magnitudeSquared(e.subtract(f,u,A)),D=o,U=c,F=M;w>F&&(F=w,D=s,U=l),P>F&&(F=P,D=u,U=f);var x=S;x.x=.5*(D.x+U.x),x.y=.5*(D.y+U.y),x.z=.5*(D.z+U.z);var L=e.magnitudeSquared(e.subtract(U,x,A)),B=Math.sqrt(L),b=g;b.x=o.x,b.y=s.y,b.z=u.z;var q=C;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(b,q,v),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,z,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,x,A));if(W>L){var H=Math.sqrt(W);B=.5*(B+H),L=B*B;var X=H-B;x.x=(B*x.x+X*a.x)/H,x.y=(B*x.y+X*a.y)/H,x.z=(B*x.z+X*a.z)/H}}return B<G?(e.clone(x,r.center),r.radius=B):(e.clone(z,r.center),r.radius=G),r};var O=new o,N=new e,M=new e,w=new t,P=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,s){if(i(s)||(s=new d),!i(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;r=n(r,O),h.southwest(t,w),w.height=a,h.northeast(t,P),P.height=o;var u=r.project(w,N),c=r.project(P,M),l=c.x-u.x,f=c.y-u.y,E=c.z-u.z;s.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=s.center;return p.x=u.x+.5*l,p.y=u.y+.5*f,p.z=u.z+.5*E,s};var D=[];d.fromRectangle3D=function(t,r,o,s){if(r=n(r,a.WGS84),o=n(o,0),i(s)||(s=new d),!i(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;var u=h.subsample(t,r,o,D);return d.fromPoints(u,s)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var s=T;s.x=t[0]+r.x,s.y=t[1]+r.y,s.z=t[2]+r.z;var u,c=e.clone(s,E),l=e.clone(s,p),f=e.clone(s,m),h=e.clone(s,_),I=e.clone(s,y),O=e.clone(s,R),N=t.length;for(u=0;u<N;u+=a){var M=t[u]+r.x,w=t[u+1]+r.y,P=t[u+2]+r.z;s.x=M,s.y=w,s.z=P,M<c.x&&e.clone(s,c),M>h.x&&e.clone(s,h),w<l.y&&e.clone(s,l),w>I.y&&e.clone(s,I),P<f.z&&e.clone(s,f),P>O.z&&e.clone(s,O)}var D=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(I,l,A)),F=e.magnitudeSquared(e.subtract(O,f,A)),x=c,L=h,B=D;U>B&&(B=U,x=l,L=I),F>B&&(B=F,x=f,L=O);var b=S;b.x=.5*(x.x+L.x),b.y=.5*(x.y+L.y),b.z=.5*(x.z+L.z);var q=e.magnitudeSquared(e.subtract(L,b,A)),z=Math.sqrt(q),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var V=C;V.x=h.x,V.y=I.y,V.z=O.z;var W=e.midpoint(G,V,v),H=0;for(u=0;u<N;u+=a){s.x=t[u]+r.x,s.y=t[u+1]+r.y,s.z=t[u+2]+r.z;var X=e.magnitude(e.subtract(s,W,A));X>H&&(H=X);var Y=e.magnitudeSquared(e.subtract(s,b,A));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;b.x=(z*b.x+j*s.x)/k,b.y=(z*b.y+j*s.y)/k,b.z=(z*b.z+j*s.z)/k}}return z<H?(e.clone(b,o.center),o.radius=z):(e.clone(W,o.center),o.radius=H),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=T;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,s=e.clone(a,E),u=e.clone(a,p),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,R),I=t.length;for(o=0;o<I;o+=3){var O=t[o]+r[o],N=t[o+1]+r[o+1],M=t[o+2]+r[o+2];a.x=O,a.y=N,a.z=M,O<s.x&&e.clone(a,s),O>l.x&&e.clone(a,l),N<u.y&&e.clone(a,u),N>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var w=e.magnitudeSquared(e.subtract(l,s,A)),P=e.magnitudeSquared(e.subtract(f,u,A)),D=e.magnitudeSquared(e.subtract(h,c,A)),U=s,F=l,x=w;P>x&&(x=P,U=u,F=f),D>x&&(x=D,U=c,F=h);var L=S;L.x=.5*(U.x+F.x),L.y=.5*(U.y+F.y),L.z=.5*(U.z+F.z);var B=e.magnitudeSquared(e.subtract(F,L,A)),b=Math.sqrt(B),q=g;q.x=s.x,q.y=u.y,q.z=c.z;var z=C;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,v),V=0;for(o=0;o<I;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var H=e.magnitudeSquared(e.subtract(a,L,A));if(H>B){var X=Math.sqrt(H);b=.5*(b+X),B=b*b;var Y=X-b;L.x=(b*L.x+Y*a.x)/X,L.y=(b*L.y+Y*a.y)/X,L.z=(b*L.z+Y*a.z)/X}}return b<V?(e.clone(L,n.center),n.radius=b):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var s=r.center,u=r.radius;for(a=0;a<n;a++){var c=t[a];u=Math.max(u,e.distance(s,c.center,U)+c.radius)}return r.radius=u,r};var F=new e,x=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,F),o=l.getColumn(n,1,x),s=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,s,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var B=new e,b=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,s=r.center,u=r.radius,c=e.subtract(s,a,B),l=e.magnitude(c);if(o>=l+u)return t.clone(n),n;if(u>=l+o)return r.clone(n),n;var f=.5*(o+l+u),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var q=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,q));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?s.OUTSIDE:o<i?s.INTERSECTING:s.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var z=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,z);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new u);var o=e.subtract(t.center,r,G),s=e.dot(n,o);return a.start=s-t.radius,a.stop=s+t.radius,a};for(var V=new e,W=new e,H=new e,X=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,s=t.radius,u=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,u,W);e.normalize(c,c);var l=e.cross(u,c,H);e.normalize(l,l),e.multiplyByScalar(u,s,u),e.multiplyByScalar(l,s,l),e.multiplyByScalar(c,s,c);var f=e.negate(l,Y),h=e.negate(c,X),E=j,p=E[0];e.add(u,l,p),e.add(p,c,p),p=E[1],e.add(u,l,p),e.add(p,h,p),p=E[2],e.add(u,f,p),e.add(p,h,p),p=E[3],e.add(u,f,p),e.add(p,c,p),e.negate(u,u),p=E[4],e.add(u,l,p),e.add(p,c,p),p=E[5],e.add(u,l,p),e.add(p,h,p),p=E[6],e.add(u,f,p),e.add(p,h,p),p=E[7],e.add(u,f,p),e.add(p,c,p);for(var m=E.length,_=0;_<m;++_){var y=E[_];e.add(o,y,y);var R=a.cartesianToCartographic(y,k);r.project(R,y)}i=d.fromPoints(E,i),o=i.center;var T=o.x,A=o.y,S=o.z;return o.x=S,o.y=T,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen", -n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,s=a.length;o<s;++o){var u=a[o];i=u+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=u+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=u+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=u+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=u+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=u+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=u+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=u+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=u+"fullscreenchange",void 0!==document["on"+i]&&("ms"===u&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=u+"fullscreenerror",void 0!==document["on"+i]&&("ms"===u&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:s(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function s(e){return d(e)}var u,c,l,f,h,d,E;return c=new n(e),u={then:e,resolve:r,reject:i,progress:s,promise:c,resolver:{resolve:r,reject:i,progress:s}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=_,p(l,e),f=l=A,e},u}function s(e){return e&&"function"==typeof e.then}function u(t,r,n,i,a){return m(2,arguments),e(t,function(t){function s(e){p(e)}function u(e){E(e)}var c,l,f,h,d,E,p,m,y,R;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,p=function(e){h.push(e),--l||(E=p=_,d.reject(h))},E=function(e){f.push(e),--c||(E=p=_,d.resolve(f))},R=0;R<y;++R)R in t&&e(t[R],u,s,m);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return u(e,1,i,r,n)}function l(e,t,r,n){return m(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,s,u,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(s=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},u=0;u<i;u++)u in t?s(t[u],u):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=T.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},R.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function m(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function _(){}function y(e){return e}var R,T,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=u,e.chain=E,e.isPromise=s,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},T=[].slice,R=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function s(){if(!t(v)&&(v=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(v=!0,I=o(e[1]))}return v}function u(){return s()&&I}function c(){if(!t(O)&&(O=!1,!s()&&!p()&&/ Safari\/[\.0-9]+/.test(C.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(O=!0,N=o(e[1]))}return O}function l(){return c()&&N}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(C.userAgent);null!==e&&(M=!0,w=o(e[1]),w.isNightly=!!e[2])}return M}function h(){return f()&&w}function d(){if(!t(P)){P=!1;var e;"Microsoft Internet Explorer"===C.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(C.userAgent))&&(P=!0,D=o(e[1])):"Netscape"===C.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(C.userAgent))&&(P=!0,D=o(e[1]))}return P}function E(){return d()&&D}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(U=!0,F=o(e[1]))}return U}function m(){return p()&&F}function _(){if(!t(x)){x=!1;var e=/Firefox\/([\.0-9]+)/.exec(C.userAgent);null!==e&&(x=!0,L=o(e[1]))}return x}function y(){return t(B)||(B=/Windows/i.test(C.appVersion)),B}function R(){return _()&&L}function T(){return t(b)||(b=!_()&&"undefined"!=typeof PointerEvent&&(!t(C.pointerEnabled)||C.pointerEnabled)),b}function A(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;z=t(r)&&""!==r,z&&(q=r)}return z}function S(){return A()?q:void 0}function g(){return g._result}var C;C="undefined"!=typeof navigator?navigator:{};var v,I,O,N,M,w,P,D,U,F,x,L,B,b,q,z;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,p())return g._result=!1,e.resolve(g._result),e.promise;var r=new Image;return r.onload=function(){g._result=r.width>0&&r.height>0,e.resolve(g._result)},r.onerror=function(){g._result=!1,e.resolve(g._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:s,chromeVersion:u,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:m,isFirefox:_,firefoxVersion:R,isWindows:y,hardwareConcurrency:e(C.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:A,supportsWebP:g,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Color",["./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function s(e,r,n,i){this.red=t(e,1),this.green=t(r,1),this.blue=t(n,1),this.alpha=t(i,1)}s.fromCartesian4=function(e,t){return r(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new s(e.x,e.y,e.z,e.w)},s.fromBytes=function(e,n,i,a,o){return e=s.byteToFloat(t(e,255)),n=s.byteToFloat(t(n,255)),i=s.byteToFloat(t(i,255)),a=s.byteToFloat(t(a,255)),r(o)?(o.red=e,o.green=n,o.blue=i,o.alpha=a,o):new s(e,n,i,a)},s.fromAlpha=function(e,t,n){return r(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new s(e.red,e.green,e.blue,t)};var u,c,l;n.supportsTypedArrays()&&(u=new ArrayBuffer(4),c=new Uint32Array(u),l=new Uint8Array(u)),s.fromRgba=function(e,t){return c[0]=e,s.fromBytes(l[0],l[1],l[2],l[3],t)},s.fromHsl=function(e,n,i,a,u){e=t(e,0)%1,n=t(n,0),i=t(i,0),a=t(a,1);var c=i,l=i,f=i;if(0!==n){var h;h=i<.5?i*(1+n):i+n-i*n;var d=2*i-h;c=o(d,h,e+1/3),l=o(d,h,e),f=o(d,h,e-1/3)}return r(u)?(u.red=c,u.green=l,u.blue=f,u.alpha=a,u):new s(c,l,f,a)},s.fromRandom=function(e,n){e=t(e,t.EMPTY_OBJECT);var i=e.red;if(!r(i)){var o=t(e.minimumRed,0),u=t(e.maximumRed,1);i=o+a.nextRandomNumber()*(u-o)}var c=e.green;if(!r(c)){var l=t(e.minimumGreen,0),f=t(e.maximumGreen,1);c=l+a.nextRandomNumber()*(f-l)}var h=e.blue;if(!r(h)){var d=t(e.minimumBlue,0),E=t(e.maximumBlue,1);h=d+a.nextRandomNumber()*(E-d)}var p=e.alpha;if(!r(p)){var m=t(e.minimumAlpha,0),_=t(e.maximumAlpha,1);p=m+a.nextRandomNumber()*(_-m)}return r(n)?(n.red=i,n.green=c,n.blue=h,n.alpha=p,n):new s(i,c,h,p)};var f=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,h=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,d=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,E=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;return s.fromCssColorString=function(e,n){r(n)||(n=new s);var i=s[e.toUpperCase()];if(r(i))return s.clone(i,n),n;var a=f.exec(e);return null!==a?(n.red=parseInt(a[1],16)/15,n.green=parseInt(a[2],16)/15,n.blue=parseInt(a[3],16)/15,n.alpha=1,n):null!==(a=h.exec(e))?(n.red=parseInt(a[1],16)/255,n.green=parseInt(a[2],16)/255,n.blue=parseInt(a[3],16)/255,n.alpha=1,n):null!==(a=d.exec(e))?(n.red=parseFloat(a[1])/("%"===a[1].substr(-1)?100:255),n.green=parseFloat(a[2])/("%"===a[2].substr(-1)?100:255),n.blue=parseFloat(a[3])/("%"===a[3].substr(-1)?100:255),n.alpha=parseFloat(t(a[4],"1.0")),n):null!==(a=E.exec(e))?s.fromHsl(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,parseFloat(t(a[4],"1.0")),n):n=void 0},s.packedLength=4,s.pack=function(e,r,n){return n=t(n,0),r[n++]=e.red,r[n++]=e.green,r[n++]=e.blue,r[n]=e.alpha,r},s.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new s),i.red=e[n++],i.green=e[n++],i.blue=e[n++],i.alpha=e[n],i},s.byteToFloat=function(e){return e/255},s.floatToByte=function(e){return 1===e?255:256*e|0},s.clone=function(e,t){if(r(e))return r(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new s(e.red,e.green,e.blue,e.alpha)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},s.equalsArray=function(e,t,r){return e.red===t[r]&&e.green===t[r+1]&&e.blue===t[r+2]&&e.alpha===t[r+3]},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return this===e||r(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},s.prototype.toString=function(){return"("+this.red+", "+this.green+", "+this.blue+", "+this.alpha+")"},s.prototype.toCssColorString=function(){var e=s.floatToByte(this.red),t=s.floatToByte(this.green),r=s.floatToByte(this.blue);return 1===this.alpha?"rgb("+e+","+t+","+r+")":"rgba("+e+","+t+","+r+","+this.alpha+")"},s.prototype.toBytes=function(e){var t=s.floatToByte(this.red),n=s.floatToByte(this.green),i=s.floatToByte(this.blue),a=s.floatToByte(this.alpha);return r(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=a,e):[t,n,i,a]},s.prototype.toRgba=function(){return l[0]=s.floatToByte(this.red),l[1]=s.floatToByte(this.green),l[2]=s.floatToByte(this.blue),l[3]=s.floatToByte(this.alpha),c[0]},s.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t},s.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t},s.prototype.withAlpha=function(e,t){return s.fromAlpha(this,e,t)},s.add=function(e,t,r){return r.red=e.red+t.red,r.green=e.green+t.green,r.blue=e.blue+t.blue,r.alpha=e.alpha+t.alpha,r},s.subtract=function(e,t,r){return r.red=e.red-t.red,r.green=e.green-t.green,r.blue=e.blue-t.blue,r.alpha=e.alpha-t.alpha,r},s.multiply=function(e,t,r){return r.red=e.red*t.red,r.green=e.green*t.green,r.blue=e.blue*t.blue,r.alpha=e.alpha*t.alpha,r},s.divide=function(e,t,r){return r.red=e.red/t.red,r.green=e.green/t.green,r.blue=e.blue/t.blue,r.alpha=e.alpha/t.alpha,r},s.mod=function(e,t,r){return r.red=e.red%t.red,r.green=e.green%t.green,r.blue=e.blue%t.blue,r.alpha=e.alpha%t.alpha,r},s.multiplyByScalar=function(e,t,r){return r.red=e.red*t,r.green=e.green*t,r.blue=e.blue*t,r.alpha=e.alpha*t,r},s.divideByScalar=function(e,t,r){return r.red=e.red/t,r.green=e.green/t,r.blue=e.blue/t,r.alpha=e.alpha/t,r},s.ALICEBLUE=i(s.fromCssColorString("#F0F8FF")),s.ANTIQUEWHITE=i(s.fromCssColorString("#FAEBD7")),s.AQUA=i(s.fromCssColorString("#00FFFF")),s.AQUAMARINE=i(s.fromCssColorString("#7FFFD4")),s.AZURE=i(s.fromCssColorString("#F0FFFF")),s.BEIGE=i(s.fromCssColorString("#F5F5DC")),s.BISQUE=i(s.fromCssColorString("#FFE4C4")),s.BLACK=i(s.fromCssColorString("#000000")),s.BLANCHEDALMOND=i(s.fromCssColorString("#FFEBCD")),s.BLUE=i(s.fromCssColorString("#0000FF")),s.BLUEVIOLET=i(s.fromCssColorString("#8A2BE2")),s.BROWN=i(s.fromCssColorString("#A52A2A")),s.BURLYWOOD=i(s.fromCssColorString("#DEB887")),s.CADETBLUE=i(s.fromCssColorString("#5F9EA0")),s.CHARTREUSE=i(s.fromCssColorString("#7FFF00")),s.CHOCOLATE=i(s.fromCssColorString("#D2691E")),s.CORAL=i(s.fromCssColorString("#FF7F50")),s.CORNFLOWERBLUE=i(s.fromCssColorString("#6495ED")),s.CORNSILK=i(s.fromCssColorString("#FFF8DC")),s.CRIMSON=i(s.fromCssColorString("#DC143C")),s.CYAN=i(s.fromCssColorString("#00FFFF")),s.DARKBLUE=i(s.fromCssColorString("#00008B")),s.DARKCYAN=i(s.fromCssColorString("#008B8B")),s.DARKGOLDENROD=i(s.fromCssColorString("#B8860B")),s.DARKGRAY=i(s.fromCssColorString("#A9A9A9")),s.DARKGREEN=i(s.fromCssColorString("#006400")),s.DARKGREY=s.DARKGRAY,s.DARKKHAKI=i(s.fromCssColorString("#BDB76B")),s.DARKMAGENTA=i(s.fromCssColorString("#8B008B")),s.DARKOLIVEGREEN=i(s.fromCssColorString("#556B2F")),s.DARKORANGE=i(s.fromCssColorString("#FF8C00")),s.DARKORCHID=i(s.fromCssColorString("#9932CC")),s.DARKRED=i(s.fromCssColorString("#8B0000")),s.DARKSALMON=i(s.fromCssColorString("#E9967A")),s.DARKSEAGREEN=i(s.fromCssColorString("#8FBC8F")),s.DARKSLATEBLUE=i(s.fromCssColorString("#483D8B")),s.DARKSLATEGRAY=i(s.fromCssColorString("#2F4F4F")),s.DARKSLATEGREY=s.DARKSLATEGRAY,s.DARKTURQUOISE=i(s.fromCssColorString("#00CED1")),s.DARKVIOLET=i(s.fromCssColorString("#9400D3")),s.DEEPPINK=i(s.fromCssColorString("#FF1493")),s.DEEPSKYBLUE=i(s.fromCssColorString("#00BFFF")),s.DIMGRAY=i(s.fromCssColorString("#696969")),s.DIMGREY=s.DIMGRAY,s.DODGERBLUE=i(s.fromCssColorString("#1E90FF")),s.FIREBRICK=i(s.fromCssColorString("#B22222")),s.FLORALWHITE=i(s.fromCssColorString("#FFFAF0")),s.FORESTGREEN=i(s.fromCssColorString("#228B22")),s.FUCHSIA=i(s.fromCssColorString("#FF00FF")),s.GAINSBORO=i(s.fromCssColorString("#DCDCDC")),s.GHOSTWHITE=i(s.fromCssColorString("#F8F8FF")),s.GOLD=i(s.fromCssColorString("#FFD700")),s.GOLDENROD=i(s.fromCssColorString("#DAA520")),s.GRAY=i(s.fromCssColorString("#808080")),s.GREEN=i(s.fromCssColorString("#008000")),s.GREENYELLOW=i(s.fromCssColorString("#ADFF2F")),s.GREY=s.GRAY,s.HONEYDEW=i(s.fromCssColorString("#F0FFF0")),s.HOTPINK=i(s.fromCssColorString("#FF69B4")),s.INDIANRED=i(s.fromCssColorString("#CD5C5C")),s.INDIGO=i(s.fromCssColorString("#4B0082")),s.IVORY=i(s.fromCssColorString("#FFFFF0")),s.KHAKI=i(s.fromCssColorString("#F0E68C")),s.LAVENDER=i(s.fromCssColorString("#E6E6FA")),s.LAVENDAR_BLUSH=i(s.fromCssColorString("#FFF0F5")),s.LAWNGREEN=i(s.fromCssColorString("#7CFC00")),s.LEMONCHIFFON=i(s.fromCssColorString("#FFFACD")),s.LIGHTBLUE=i(s.fromCssColorString("#ADD8E6")),s.LIGHTCORAL=i(s.fromCssColorString("#F08080")),s.LIGHTCYAN=i(s.fromCssColorString("#E0FFFF")),s.LIGHTGOLDENRODYELLOW=i(s.fromCssColorString("#FAFAD2")),s.LIGHTGRAY=i(s.fromCssColorString("#D3D3D3")),s.LIGHTGREEN=i(s.fromCssColorString("#90EE90")),s.LIGHTGREY=s.LIGHTGRAY,s.LIGHTPINK=i(s.fromCssColorString("#FFB6C1")),s.LIGHTSEAGREEN=i(s.fromCssColorString("#20B2AA")),s.LIGHTSKYBLUE=i(s.fromCssColorString("#87CEFA")),s.LIGHTSLATEGRAY=i(s.fromCssColorString("#778899")),s.LIGHTSLATEGREY=s.LIGHTSLATEGRAY,s.LIGHTSTEELBLUE=i(s.fromCssColorString("#B0C4DE")),s.LIGHTYELLOW=i(s.fromCssColorString("#FFFFE0")),s.LIME=i(s.fromCssColorString("#00FF00")),s.LIMEGREEN=i(s.fromCssColorString("#32CD32")),s.LINEN=i(s.fromCssColorString("#FAF0E6")),s.MAGENTA=i(s.fromCssColorString("#FF00FF")),s.MAROON=i(s.fromCssColorString("#800000")),s.MEDIUMAQUAMARINE=i(s.fromCssColorString("#66CDAA")),s.MEDIUMBLUE=i(s.fromCssColorString("#0000CD")),s.MEDIUMORCHID=i(s.fromCssColorString("#BA55D3")),s.MEDIUMPURPLE=i(s.fromCssColorString("#9370DB")),s.MEDIUMSEAGREEN=i(s.fromCssColorString("#3CB371")),s.MEDIUMSLATEBLUE=i(s.fromCssColorString("#7B68EE")),s.MEDIUMSPRINGGREEN=i(s.fromCssColorString("#00FA9A")),s.MEDIUMTURQUOISE=i(s.fromCssColorString("#48D1CC")),s.MEDIUMVIOLETRED=i(s.fromCssColorString("#C71585")),s.MIDNIGHTBLUE=i(s.fromCssColorString("#191970")),s.MINTCREAM=i(s.fromCssColorString("#F5FFFA")),s.MISTYROSE=i(s.fromCssColorString("#FFE4E1")),s.MOCCASIN=i(s.fromCssColorString("#FFE4B5")),s.NAVAJOWHITE=i(s.fromCssColorString("#FFDEAD")),s.NAVY=i(s.fromCssColorString("#000080")),s.OLDLACE=i(s.fromCssColorString("#FDF5E6")),s.OLIVE=i(s.fromCssColorString("#808000")),s.OLIVEDRAB=i(s.fromCssColorString("#6B8E23")),s.ORANGE=i(s.fromCssColorString("#FFA500")),s.ORANGERED=i(s.fromCssColorString("#FF4500")),s.ORCHID=i(s.fromCssColorString("#DA70D6")),s.PALEGOLDENROD=i(s.fromCssColorString("#EEE8AA")),s.PALEGREEN=i(s.fromCssColorString("#98FB98")),s.PALETURQUOISE=i(s.fromCssColorString("#AFEEEE")),s.PALEVIOLETRED=i(s.fromCssColorString("#DB7093")),s.PAPAYAWHIP=i(s.fromCssColorString("#FFEFD5")),s.PEACHPUFF=i(s.fromCssColorString("#FFDAB9")),s.PERU=i(s.fromCssColorString("#CD853F")),s.PINK=i(s.fromCssColorString("#FFC0CB")),s.PLUM=i(s.fromCssColorString("#DDA0DD")),s.POWDERBLUE=i(s.fromCssColorString("#B0E0E6")),s.PURPLE=i(s.fromCssColorString("#800080")),s.RED=i(s.fromCssColorString("#FF0000")),s.ROSYBROWN=i(s.fromCssColorString("#BC8F8F")),s.ROYALBLUE=i(s.fromCssColorString("#4169E1")),s.SADDLEBROWN=i(s.fromCssColorString("#8B4513")),s.SALMON=i(s.fromCssColorString("#FA8072")),s.SANDYBROWN=i(s.fromCssColorString("#F4A460")),s.SEAGREEN=i(s.fromCssColorString("#2E8B57")),s.SEASHELL=i(s.fromCssColorString("#FFF5EE")),s.SIENNA=i(s.fromCssColorString("#A0522D")),s.SILVER=i(s.fromCssColorString("#C0C0C0")),s.SKYBLUE=i(s.fromCssColorString("#87CEEB")),s.SLATEBLUE=i(s.fromCssColorString("#6A5ACD")),s.SLATEGRAY=i(s.fromCssColorString("#708090")),s.SLATEGREY=s.SLATEGRAY,s.SNOW=i(s.fromCssColorString("#FFFAFA")),s.SPRINGGREEN=i(s.fromCssColorString("#00FF7F")),s.STEELBLUE=i(s.fromCssColorString("#4682B4")),s.TAN=i(s.fromCssColorString("#D2B48C")),s.TEAL=i(s.fromCssColorString("#008080")),s.THISTLE=i(s.fromCssColorString("#D8BFD8")),s.TOMATO=i(s.fromCssColorString("#FF6347")),s.TURQUOISE=i(s.fromCssColorString("#40E0D0")),s.VIOLET=i(s.fromCssColorString("#EE82EE")),s.WHEAT=i(s.fromCssColorString("#F5DEB3")),s.WHITE=i(s.fromCssColorString("#FFFFFF")),s.WHITESMOKE=i(s.fromCssColorString("#F5F5F5")),s.YELLOW=i(s.fromCssColorString("#FFFF00")),s.YELLOWGREEN=i(s.fromCssColorString("#9ACD32")),s.TRANSPARENT=i(new s(0,0,0,0)),s}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388, -UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/oneTimeWarning",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){t(i[r])||(i[r]=!0,console.warn(e(n,r)))}var i={};return n.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.",n.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored",n.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored",n.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored",n}),define("Core/deprecationWarning",["./defined","./DeveloperError","./oneTimeWarning"],function(e,t,r){"use strict";function n(e,t){r(e,t)}return n}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var s=new o;o.distance=function(e,t){return o.subtract(e,t,s),o.magnitude(s)},o.distanceSquared=function(e,t){return o.subtract(e,t,s),o.magnitudeSquared(s)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var u=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,u),n=o.multiplyByScalar(e,1-r,n),o.add(u,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var s=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],s)),r.y=e.magnitude(e.fromElements(t[2],t[3],s)),r};var u=new e;return o.getMaximumScale=function(t){return o.getScale(t,u),e.maximumComponent(u)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,s){"use strict";function u(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;u.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var s=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=s,i.y=l,i.z=f,i.w=h,i):new u(s,l,f,h)};var l=[1,2,0],f=new Array(3);u.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[s.COLUMN0ROW0],d=e[s.COLUMN1ROW1],E=e[s.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[s.COLUMN1ROW2]-e[s.COLUMN2ROW1])*r,a=(e[s.COLUMN2ROW0]-e[s.COLUMN0ROW2])*r,o=(e[s.COLUMN0ROW1]-e[s.COLUMN1ROW0])*r;else{var m=l,_=0;d>h&&(_=1),E>h&&E>d&&(_=2);var y=m[_],R=m[y];r=Math.sqrt(e[s.getElementIndex(_,_)]-e[s.getElementIndex(y,y)]-e[s.getElementIndex(R,R)]+1);var T=f;T[_]=.5*r,r=.5/r,c=(e[s.getElementIndex(R,y)]-e[s.getElementIndex(y,R)])*r,T[y]=(e[s.getElementIndex(y,_)]+e[s.getElementIndex(_,y)])*r,T[R]=(e[s.getElementIndex(R,_)]+e[s.getElementIndex(_,R)])*r,i=-T[0],a=-T[1],o=-T[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new u(i,a,o,c)};var h=new u,d=new u,E=new u,p=new u;u.fromHeadingPitchRoll=function(t,r){return p=u.fromAxisAngle(e.UNIT_X,t.roll,h),E=u.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=u.multiply(E,p,E),d=u.fromAxisAngle(e.UNIT_Z,-t.heading,h),u.multiply(d,r,r)};var m=new e,_=new e,y=new u,R=new u,T=new u;u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},u.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new u),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},u.packedInterpolationLength=3,u.convertPackedArrayForInterpolation=function(e,t,r,n){u.unpack(e,4*r,T),u.conjugate(T,T);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;u.unpack(e,4*(t+i),y),u.multiply(y,T,y),y.w<0&&u.negate(y,y),u.computeAxis(y,m);var s=u.computeAngle(y);n[o]=m.x*s,n[o+1]=m.y*s,n[o+2]=m.z*s}},u.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new u),e.fromArray(t,0,_);var s=e.magnitude(_);return u.unpack(r,4*a,R),0===s?u.clone(u.IDENTITY,y):u.fromAxisAngle(_,s,y),u.multiply(y,R,o)},u.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new u(e.x,e.y,e.z,e.w)},u.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},u.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},u.magnitude=function(e){return Math.sqrt(u.magnitudeSquared(e))},u.normalize=function(e,t){var r=1/u.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},u.inverse=function(e,t){var r=u.magnitudeSquared(e);return t=u.conjugate(e,t),u.multiplyByScalar(t,1/r,t)},u.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},u.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},u.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},u.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},u.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,s=t.x,u=t.y,c=t.z,l=t.w,f=o*s+n*l+i*c-a*u,h=o*u-n*c+i*l+a*s,d=o*c+n*u-i*s+a*l,E=o*l-n*s-i*u-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},u.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},u.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},u.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},u.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new u;u.lerp=function(e,t,r,n){return A=u.multiplyByScalar(t,r,A),n=u.multiplyByScalar(e,1-r,n),u.add(A,n,n)};var S=new u,g=new u,C=new u;u.slerp=function(e,t,r,n){var i=u.dot(e,t),a=t;if(i<0&&(i=-i,a=S=u.negate(t,S)),1-i<o.EPSILON6)return u.lerp(e,a,r,n);var s=Math.acos(i);return g=u.multiplyByScalar(e,Math.sin((1-r)*s),g),C=u.multiplyByScalar(a,Math.sin(r*s),C),n=u.add(g,C,n),u.multiplyByScalar(n,1/Math.sin(s),n)},u.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},u.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var v=new e,I=new e,O=new u,N=new u;u.computeInnerQuadrangle=function(t,r,n,i){var a=u.conjugate(r,O);u.multiply(a,n,N);var o=u.log(N,v);u.multiply(a,t,N);var s=u.log(N,I);return e.add(o,s,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),u.exp(o,O),u.multiply(r,O,i)},u.squad=function(e,t,r,n,i,a){var o=u.slerp(e,t,i,O),s=u.slerp(r,n,i,N);return u.slerp(o,s,2*i*(1-i),a)};for(var M=new u,w=1.9011074535173003,P=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],F=i.supportsTypedArrays()?new Float32Array(8):[],x=0;x<7;++x){var L=x+1,B=2*L+1;P[x]=1/(L*B),D[x]=L/B}return P[7]=w/136,D[7]=8*w/17,u.fastSlerp=function(e,t,r,n){var i,a=u.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,s=1-r,c=r*r,l=s*s,f=7;f>=0;--f)U[f]=(P[f]*c-D[f])*o,F[f]=(P[f]*l-D[f])*o;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=s*(1+F[0]*(1+F[1]*(1+F[2]*(1+F[3]*(1+F[4]*(1+F[5]*(1+F[6]*(1+F[7])))))))),E=u.multiplyByScalar(e,d,M);return u.multiplyByScalar(t,h,n),u.add(E,n,n)},u.fastSquad=function(e,t,r,n,i,a){var o=u.fastSlerp(e,t,i,O),s=u.fastSlerp(r,n,i,N);return u.fastSlerp(o,s,2*i*(1-i),a)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},u.ZERO=a(new u(0,0,0,0)),u.IDENTITY=a(new u(0,0,0,1)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var s=n-e.length;return s>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",s,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,s,u){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),s||0,"0",!1),a(e,r,n,o,u)},s=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},u=function(e,n,u,c,l,f,h){var d,E,p,m,_;if("%%"==e)return"%";for(var y=!1,R="",T=!1,A=!1,S=" ",g=u.length,C=0;u&&C<g;C++)switch(u.charAt(C)){case" ":R=" ";break;case"+":R="+";break;case"-":y=!0;break;case"'":S=u.charAt(C+1);break;case"0":T=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=n?t[n.slice(0,-1)]:t[r++],h){case"s":return s(String(_),y,c,f,T,S);case"c":return s(String.fromCharCode(+_),y,c,f,T);case"b":return o(_,2,A,y,c,f,T);case"o":return o(_,8,A,y,c,f,T);case"x":return o(_,16,A,y,c,f,T);case"X":return o(_,16,A,y,c,f,T).toUpperCase();case"u":return o(_,10,A,y,c,f,T);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),E=d<0?"-":R,_=E+i(String(Math.abs(d)),f,"0",!1),a(_,E,y,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,E=d<0?"-":R,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=E+Math.abs(d)[p](f),a(_,E,y,c,T)[m]();default:return e}};return n.replace(e,u)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,s){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=s}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,s,u,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/u.SECONDS_PER_DAY|0;return e+=n,t-=u.SECONDS_PER_DAY*n,t<0&&(e--,t+=u.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var s=(t-14)/12|0,c=e+4800+s,l=(1461*c/4|0)+(367*(t-2-12*s)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*u.SECONDS_PER_HOUR+i*u.SECONDS_PER_MINUTE+o*u.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*u.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new s,R=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,C=/([Z+\-])?(\d{2})?:?(\d{2})?$/,v=/^(\d{2})(\.\d+)?/.source+C.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+C.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+C.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,s=e.split("T"),u=1,l=1,h=0,m=0,y=0,C=0,N=s[0],M=s[1];if(null!==(s=N.match(g)))r=+s[1],u=+s[2],l=+s[3];else if(null!==(s=N.match(T)))r=+s[1],u=+s[2];else if(null!==(s=N.match(R)))r=+s[1];else{var w;if(null!==(s=N.match(A)))r=+s[1],w=+s[2],a=o(r);else if(null!==(s=N.match(S))){r=+s[1];var P=+s[2],D=+s[3]||0,U=new Date(Date.UTC(r,0,4));w=7*P+D-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(w),u=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var F;if(n(M)){s=M.match(O),null!==s?(h=+s[1],m=+s[2],y=+s[3],C=1e3*+(s[4]||0),F=5):(s=M.match(I),null!==s?(h=+s[1],m=+s[2],y=60*+(s[3]||0),F=4):null!==(s=M.match(v))&&(h=+s[1],m=60*+(s[2]||0),F=3));var x=s[F],L=+s[F+1],B=+(s[F+2]||0);switch(x){case"+":h-=L,m-=B;break;case"-":h+=L,m+=B;break;case"Z":break;default:m+=new Date(Date.UTC(r,u-1,l,h,m)).getTimezoneOffset()}}var b=60===y;for(b&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===u?29:_[u-1];l>i;)l-=i,u++,u>12&&(u-=12,r++),i=a&&2===u?29:_[u-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)u--,u<1&&(u+=12,r--),i=a&&2===u?29:_[u-1],l+=i;var q=E(r,u,l,h,m,y,C);return n(t)?(d(q[0],q[1],t),f(t)):t=new p(q[0],q[1],c.UTC),b&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var N=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,N);n(i)||(p.addSeconds(e,-1,N),i=h(N,N),r=!0);var o=i.dayNumber,s=i.secondsOfDay;s>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=s/u.SECONDS_PER_HOUR|0,R=s-y*u.SECONDS_PER_HOUR,T=R/u.SECONDS_PER_MINUTE|0;R-=T*u.SECONDS_PER_MINUTE;var A=0|R,S=(R-A)/u.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=_,t.month=m,t.day=E,t.hour=y,t.minute=T,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(_,m,E,y,T,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,m),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,m),a=i.year,o=i.month,s=i.day,u=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===s&&0===u&&0===c&&0===l&&0===f&&(a=9999,o=12,s=31,u=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,s,u,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,s,u,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,s,u,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/u.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*u.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/u.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new s(new p(2441317,43210,c.TAI),10),new s(new p(2441499,43211,c.TAI),11),new s(new p(2441683,43212,c.TAI),12),new s(new p(2442048,43213,c.TAI),13),new s(new p(2442413,43214,c.TAI),14),new s(new p(2442778,43215,c.TAI),15),new s(new p(2443144,43216,c.TAI),16),new s(new p(2443509,43217,c.TAI),17),new s(new p(2443874,43218,c.TAI),18),new s(new p(2444239,43219,c.TAI),19),new s(new p(2444786,43220,c.TAI),20),new s(new p(2445151,43221,c.TAI),21),new s(new p(2445516,43222,c.TAI),22),new s(new p(2446247,43223,c.TAI),23),new s(new p(2447161,43224,c.TAI),24),new s(new p(2447892,43225,c.TAI),25),new s(new p(2448257,43226,c.TAI),26),new s(new p(2448804,43227,c.TAI),27),new s(new p(2449169,43228,c.TAI),28),new s(new p(2449534,43229,c.TAI),29),new s(new p(2450083,43230,c.TAI),30),new s(new p(2450630,43231,c.TAI),31),new s(new p(2451179,43232,c.TAI),32),new s(new p(2453736,43233,c.TAI),33),new s(new p(2454832,43234,c.TAI),34),new s(new p(2456109,43235,c.TAI),35),new s(new p(2457204,43236,c.TAI),36),new s(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,s,u,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(s=n[o],f&&a&&"object"==typeof s&&i.hasOwnProperty(o)?(u=i[o], -c[o]="object"==typeof u?r(s,u,a):s):c[o]=s);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(u=i[o],c[o]=u);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,s=i.length;o<s;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var s=i[a].split("="),u=decodeURIComponent(s[0]),c=s[1];c=e(c)?decodeURIComponent(c):"";var l=n[u];"string"==typeof l?n[u]=[l,c]:r(l)?l.push(c):n[u]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),s=i.substring(a+2);t[o]=s}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var s=this._toRemove;if((a=s.length)>0){for(s.sort(i),e=0;e<a;e++){var u=s[e];r.splice(u,1),n.splice(u,1)}s.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,s=!0;s;){var u=2*(e+1),c=u-1;o=c<r&&n(i[c],i[e])<0?c:e,u<r&&n(i[u],i[o])<0&&(o=u),o!==e?(a(i,o,e),e=o):s=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var s=Math.floor((o-1)/2);if(!(n(t[o],t[s])<0))break;a(t,o,s),o=s}var u;return r(i)&&this._length>i&&(u=t[i],this._length=i),u},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,s,u,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return v[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,C.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++v[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function R(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--v[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,g=new s({comparator:f});g.maximumLength=S,g.reserve(S);var C=[],v={},I="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;g.length>e;){var t=g.pop();R(t)}S=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,r=0,n=C.length;for(e=0;e<n;++e)t=C[e],t.cancelled&&R(t),t.state===l.ACTIVE?r>0&&(C[e-r]=t):++r;C.length-=r;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-C.length,0),s=0;s<o&&g.length>0;)t=g.pop(),t.cancelled?R(t):!t.throttleByServer||E(t.serverKey)?(y(t),++s):R(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(I);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=v[n];return i(a)||(v[n]=0),n},h.request=function(e){if(c(e.url)||u(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(C.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;R(t)}return p(e)}}},h.clearForSpecs=function(){for(;g.length>0;){R(g.pop())}for(var e=C.length,t=0;t<e;++t)R(C[t]);C.length=0,v={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return v[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m,_,y,R,T,A,S,g,C,v){"use strict";function I(e,t,r,n){var i=e.query;if(!s(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=R(i);t._queryParameters=r?w(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||s(r[n[0]])?e.query=y(r):e.query=n[0]}function N(e,t){return s(e)?s(e.clone)?e.clone():i(e):t}function M(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new C("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function w(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var u=n[o],c=t[o];s(u)?(Array.isArray(u)||(u=n[o]=[u]),n[o]=u.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function P(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);I(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function D(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return P._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(s(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,D({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},P._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(s(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,r,n)):t.reject(i)})})}function F(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function x(e,t){for(var r=F(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return F(n,i);case"arraybuffer":return x(n,i);case"blob":var a=x(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(F(n,i),r);case"json":return JSON.parse(F(n,i))}}function B(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(v.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,r,n,i,a,o){var s=global.require,u=s("url").parse(e),c=s("https:"===u.protocol?"https":"http"),l=s("zlib"),f={protocol:u.protocol,hostname:u.hostname,port:u.port,path:u.path,query:u.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new C("Error decompressing response.")):a.resolve(b(r,t))}):a.resolve(b(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();P.createIfNeeded=function(e){return e instanceof P?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new P({url:e})};var G;P.supportsImageBitmapOptions=function(){if(s(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=P.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},u(P,{isBlobSupported:{get:function(){return z}}}),u(P.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);I(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),P.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return s(r)?encodeURIComponent(r):e}),r&&s(this.proxy)&&(i=this.proxy.getURL(i)),i},P.prototype.setQueryParameters=function(e,t){this._queryParameters=t?w(this._queryParameters,e,!1):w(e,this._queryParameters,!1)},P.prototype.appendQueryParameters=function(e){this._queryParameters=w(e,this._queryParameters,!0)},P.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},P.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,s(t.url)){var n=new e(t.url);I(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return s(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),s(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),s(t.headers)&&(r.headers=a(t.headers,r.headers)),s(t.proxy)&&(r.proxy=t.proxy),s(t.request)&&(r.request=t.request),s(t.retryCallback)&&(r.retryCallback=t.retryCallback),s(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},P.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},P.prototype.clone=function(e){return s(e)||(e=new P({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},P.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},P.prototype.appendForwardSlash=function(){this._url=r(this._url)},P.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},P.fetchArrayBuffer=function(e){return new P(e).fetchArrayBuffer()},P.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},P.fetchBlob=function(e){return new P(e).fetchBlob()},P.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return D({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(s(a)){var u,c,l,f;return P.supportsImageBitmapOptions().then(function(e){return u=e,c=u&&r,a}).then(function(e){if(s(e)){if(f=e,c)return P.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new P({url:t}),D({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(s(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return s(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},P.fetchImage=function(e){return new P(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},P.prototype.fetchText=function(){return this.fetch({responseType:"text"})},P.fetchText=function(e){return new P(e).fetchText()},P.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(s(e))return e.then(function(e){if(s(e))return JSON.parse(e)})},P.fetchJson=function(e){return new P(e).fetchJson()},P.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},P.fetchXML=function(e){return new P(e).fetchXML()},P.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(s(window[t]));return U(this,e,t)},P.fetchJsonp=function(e){return new P(e).fetchJsonp(e.callbackParameterName)},P.prototype._makeRequest=function(e){var r=this;M(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),u=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=P._Implementations.loadWithXhr(r.url,i,c,l,o,f,u);return s(h)&&s(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(s(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==g.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=g.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;P.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},P.fetch=function(e){return new P(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},P.delete=function(e){return new P(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},P.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},P.head=function(e){return new P(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},P.options=function(e){return new P(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},P.post=function(e){return new P(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},P.put=function(e){return new P(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},P.patch=function(e){return new P(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P._Implementations={},P._Implementations.createImage=function(e,t,r,n,i){P.supportsImageBitmapOptions().then(function(n){return n&&i?P.fetchBlob({url:e}):void B(e,t,r)}).then(function(e){if(s(e))return P.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){s(e)&&r.resolve(e)}).otherwise(r.reject)},P.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return P._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var u=V.exec(e);if(null!==u)return void a.resolve(L(u,t));if(W)return void q(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(v.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),s(o)&&s(c.overrideMimeType)&&c.overrideMimeType(o),s(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);s(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),u={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();u[r]=t.join(": ")}),void a.resolve(u)}if(204===c.status)a.resolve();else if(!s(e)||s(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&s(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!s(c.responseText)?a.reject(new C("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},P._Implementations.loadAndExecuteScript=function(e,t,r){return _(e,t).otherwise(r.reject)},P._DefaultImplementations={},P._DefaultImplementations.createImage=P._Implementations.createImage,P._DefaultImplementations.loadWithXhr=P._Implementations.loadWithXhr,P._DefaultImplementations.loadAndExecuteScript=P._Implementations.loadAndExecuteScript,P.DEFAULT=l(new P({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),P}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,s,u,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=u.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),u=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||u<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=r.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=u,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,R=e._addNewLeapSeconds,T=0,A=m.length;T<A;T+=e._columnCount){var S=m[T+i],g=m[T+p],C=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,v=new o(C,g,f.TAI);if(_.push(v),R){if(g!==y&&n(y)){var I=o.leapSeconds,O=t(I,v,d);if(O<0){var N=new s(v,g);I.splice(~O,0,N)}}y=g}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,r){return t+e*(r-t)}function _(e,t,r,n,i,a,s){var u=e._columnCount;if(a>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,u,s),s;if(n.equals(l))return p(e,r,a,u,s),s;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*u,d=a*u,E=r[h+e._ut1MinusUtcSecondsColumn],_=r[d+e._ut1MinusUtcSecondsColumn],y=_-E;if(y>.5||y<-.5){var R=r[h+e._taiMinusUtcSecondsColumn],T=r[d+e._taiMinusUtcSecondsColumn];R!==T&&(l.equals(n)?E=_:_-=T-R)}return s.xPoleWander=m(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),s.yPoleWander=m(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),s.xPoleOffset=m(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=m(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=m(f,E,_),s}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,s=this._lastIndex,u=0,l=0;if(n(s)){var f=a[s],h=a[s+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return u=s,!E&&h.equals(e)&&++u,l=u+1,_(this,a,this._samples,e,u,l,r),r}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,u=m,l=m):(l=~m,(u=l-1)<0&&(u=0)),this._lastIndex=u,_(this,a,this._samples,e,u,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),u=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,u),r.roll=Math.atan2(s,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)}, -i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function s(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function u(e){return o(i.toUrl("../"+e))}function c(e){return s().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?u:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=s,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,s){"use strict";function u(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,s.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),u=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=u,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var s,u=r._xysFileUrlTemplate;return s=n(u)?u.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(s.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,s=0,u=n.length;s<u;++s)t[o+s]=n[s];a.resolve()}),a.promise}var f=new a(0,0,s.TAI);return u.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),s=a/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);var u=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);for(var f=s/this._samplesPerXysFile|0,h=u/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},u.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var s=this._interpolationOrder,u=o-(s/2|0);u<0&&(u=0);var f=u+s;f>=this._totalSamples&&(f=this._totalSamples-1,(u=f-s)<0&&(u=0));var h=!1,d=this._samples;if(n(d[3*u])||(l(this,u/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,m=a-u*this._stepSizeDays,_=this._work,y=this._denominators,R=this._coef,T=this._xTable;for(E=0;E<=s;++E)_[E]=m-T[E];for(E=0;E<=s;++E){for(R[E]=1,p=0;p<=s;++p)p!==E&&(R[E]*=_[p]);R[E]*=y[E];var A=3*(u+E);r.x+=R[E]*d[A++],r.y+=R[E]*d[A++],r.s+=R[E]*d[A]}return r}}}},u}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m,_,y,R,T){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},C={},v={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},I=new r,O=new r,N=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new u("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return s(C[a])?n=C[a]:(n=function(n,a,u){if(s(u)||(u=new y),m.equalsEpsilon(n.x,0,m.EPSILON14)&&m.equalsEpsilon(n.y,0,m.EPSILON14)){var c=m.sign(n.z);r.unpack(g[e],0,I),"east"!==e&&"west"!==e&&r.multiplyByScalar(I,c,I),r.unpack(g[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(g[i],0,N),"east"!==i&&"west"!==i&&r.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,v.up);var l=v.up,h=v.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,v.east),r.cross(l,h,v.north),r.multiplyByScalar(v.up,-1,v.down),r.multiplyByScalar(v.east,-1,v.west),r.multiplyByScalar(v.north,-1,v.south),I=v[e],O=v[t],N=v[i]}return u[0]=I.x,u[1]=I.y,u[2]=I.z,u[3]=0,u[4]=O.x,u[5]=O.y,u[6]=O.z,u[7]=0,u[8]=N.x,u[9]=N.y,u[10]=N.z,u[11]=0,u[12]=n.x,u[13]=n.y,u[14]=n.z,u[15]=1,u},C[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new R,w=new r(1,1,1),P=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var s=R.fromHeadingPitchRoll(t,M),u=y.fromTranslationQuaternionRotationScale(r.ZERO,s,w,P);return a=i(e,n,a),y.multiply(a,u,a)};var D=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,D),o=y.getRotation(a,U);return R.fromRotationMatrix(o,i)};var F=new r(1,1,1),x=new r,L=new y,B=new y,b=new _,q=new R;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),s(i)||(i=new h);var a=y.getTranslation(e,x);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var u=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,F,B);c=y.setTranslation(c,r.ZERO,c),u=y.multiply(u,c,u);var l=R.fromRotationMatrix(y.getRotation(u,b),q);return l=R.normalize(l,l),h.fromQuaternion(l,i)};var z=m.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/T.DAYS_PER_JULIAN_CENTURY:(a-.5)/T.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),u=o*z%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=u+c*l,h=Math.cos(f),d=Math.sin(f);return s(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),s=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,s])},A.computeIcrfToFixedMatrix=function(e,t){s(t)||(t=new _);var r=A.computeFixedToIcrfMatrix(e,t);if(s(r))return _.transpose(r,t)};var V=new E(0,0,0),W=new l(0,0,0,0,0,0),H=new _,X=new _;A.computeFixedToIcrfMatrix=function(e,t){s(t)||(t=new _);var r=A.earthOrientationParameters.compute(e,W);if(s(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(s(a)){var o=a.x+r.xPoleOffset,u=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-u*u)),l=H;l[0]=1-c*o*o,l[3]=-c*o*u,l[6]=o,l[1]=-c*o*u,l[4]=1-c*u*u,l[7]=u,l[2]=-o,l[5]=-u,l[8]=1-c*(o*o+u*u);var f=_.fromRotationZ(-a.s,X),h=_.multiply(l,f,H),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,R=E/T.SECONDS_PER_DAY,S=.779057273264+R+.00273781191135448*(y+R);S=S%1*m.TWO_PI;var g=_.fromRotationZ(S,X),C=_.multiply(h,g,H),v=Math.cos(r.xPoleWander),I=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),M=n-2451545+i/T.SECONDS_PER_DAY;M/=36525;var w=-47e-6*M*m.RADIANS_PER_DEGREE/3600,P=Math.cos(w),D=Math.sin(w),U=X;return U[0]=v*P,U[1]=v*D,U[2]=O,U[3]=-I*D+N*O*P,U[4]=I*P+N*O*D,U[5]=-N*v,U[6]=-N*D-I*O*P,U[7]=N*P-I*O*D,U[8]=I*v,_.multiply(C,U,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){s(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),u=r.cross(t,a,j);r.equalsEpsilon(u,r.ZERO,m.EPSILON6)&&(u=r.clone(r.UNIT_X,u));var c=r.cross(u,t,K);return r.normalize(c,c),r.cross(t,c,u),r.negate(u,u),r.normalize(u,u),s(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=u.x,i[4]=u.y,i[5]=u.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new _,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),s=e.project(o,Q);r.fromElements(s.z,s.x,s.y,s);var u=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(u,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,s,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),s=i.cartesianToCartographic(t,J),u=e.project(s,Q);r.fromElements(u.z,u.x,u.y,u);var c=y.fromTranslation(u,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,u.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var _=new r,y=new t,R=new f,T=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],g=new t,C=new d,v=new f,I=new c;return m._textureCoordinateRotationPoints=function(n,i,a,o){var s,u=E.center(o,_),h=r.toCartesian(u,a,y),m=p.eastNorthUpToFixedFrame(h,a,R),O=f.inverse(m,R),N=A,M=T;M[0].longitude=o.west,M[0].latitude=o.south,M[1].longitude=o.west,M[1].latitude=o.north,M[2].longitude=o.east,M[2].latitude=o.south;var w=g;for(s=0;s<3;s++)r.toCartesian(M[s],a,w),w=f.multiplyByPointAsVector(O,w,w),N[s].x=w.x,N[s].y=w.y;var P=d.fromAxisAngle(t.UNIT_Z,-i,C),D=l.fromQuaternion(P,v),U=n.length,F=Number.POSITIVE_INFINITY,x=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(s=0;s<U;s++)w=f.multiplyByPointAsVector(O,n[s],w),w=l.multiplyByVector(D,w,w),F=Math.min(F,w.x),x=Math.min(x,w.y),L=Math.max(L,w.x),B=Math.max(B,w.y);var b=c.fromRotation(i,I),q=S;q[0].x=F,q[0].y=x,q[1].x=F,q[1].y=B,q[2].x=L,q[2].y=x;var z=N[0],G=N[2].x-z.x,V=N[1].y-z.y;for(s=0;s<3;s++){var W=q[s];c.multiplyByVector(b,W,W),W.x=(W.x-z.x)/G,W.y=(W.y-z.y)/V}var H=q[0],X=q[1],Y=q[2],k=new Array(6);return e.pack(H,k),e.pack(X,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,s){"use strict";function u(e){var t=e._uSquared,r=e._ellipsoid.maximumRadius,n=e._ellipsoid.minimumRadius,i=(r-n)/r,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),s=(1-i)*Math.tan(e._start.latitude),u=1/Math.sqrt(1+s*s),c=u*s,l=Math.atan2(s,a),f=u*o,h=f*f,d=1-h,E=Math.sqrt(d),p=t/4,m=p*p,_=m*p,y=m*m,R=1+p-3*m/4+5*_/4-175*y/64,T=1-p+15*m/8-35*_/8,A=1-3*p+35*m/4,S=1-5*p,g=R*l-T*Math.sin(2*l)*p/2-A*Math.sin(4*l)*m/16-S*Math.sin(6*l)*_/48-5*Math.sin(8*l)*y/512,C=e._constants;C.a=r,C.b=n,C.f=i,C.cosineHeading=a,C.sineHeading=o,C.tanU=s,C.cosineU=u,C.sineU=c,C.sigma=l,C.sineAlpha=f,C.sineSquaredAlpha=h,C.cosineSquaredAlpha=d,C.cosineAlpha=E,C.u2Over4=p,C.u4Over16=m,C.u6Over64=_,C.u8Over256=y,C.a0=R,C.a1=T,C.a2=A,C.a3=S,C.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,r,n,i,a,o){var s=c(e,r);return(1-s)*e*t*(n+s*i*(o+s*a*(2*o*o-1)))}function f(e,t,r,n,i,a,o){var u,c,f,h,d,E=(t-r)/t,p=a-n,m=Math.atan((1-E)*Math.tan(i)),_=Math.atan((1-E)*Math.tan(o)),y=Math.cos(m),R=Math.sin(m),T=Math.cos(_),A=Math.sin(_),S=y*T,g=y*A,C=R*A,v=R*T,I=p,O=s.TWO_PI,N=Math.cos(I),M=Math.sin(I);do{N=Math.cos(I),M=Math.sin(I);var w=g-v*N;f=Math.sqrt(T*T*M*M+w*w),c=C+S*N,u=Math.atan2(f,c);var P;0===f?(P=0,h=1):(P=S*M/f,h=1-P*P),O=I,d=c-2*C/h,isNaN(d)&&(d=0),I=p+l(E,P,h,u,f,c,d)}while(Math.abs(I-O)>s.EPSILON12);var D=h*(t*t-r*r)/(r*r),U=1+D*(4096+D*(D*(320-175*D)-768))/16384,F=D*(256+D*(D*(74-47*D)-128))/1024,x=d*d,L=F*f*(d+F*(c*(2*x-1)-F*d*(4*f*f-3)*(4*x-3)/6)/4),B=r*U*(u-L),b=Math.atan2(T*M,g-v*N),q=Math.atan2(y*M,g*N-v);e._distance=B,e._startHeading=b,e._endHeading=q,e._uSquared=D}function h(r,n,i,a){e.normalize(a.cartographicToCartesian(n,p),E),e.normalize(a.cartographicToCartesian(i,p),p);f(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude),r._start=t.clone(n,r._start),r._end=t.clone(i,r._end),r._start.height=0,r._end.height=0,u(r)}function d(e,r,a){var s=n(a,o.WGS84);this._ellipsoid=s,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(r)&&h(this,e,r,s)}var E=new e,p=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,r){var n=this._constants,a=n.distanceRatio+e/n.b,o=Math.cos(2*a),s=Math.cos(4*a),u=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),E=a*a,p=a*E,m=n.u8Over256,_=n.u2Over4,y=n.u6Over64,R=n.u4Over16,T=2*p*m*o/3+a*(1-_+7*R/4-15*y/4+579*m/64-(R-15*y/4+187*m/16)*o-(5*y/4-115*m/16)*s-29*m*u/16)+(_/2-R+71*y/32-85*m/16)*c+(5*R/16-5*y/4+383*m/96)*f-E*((y-11*m/2)*c+5*m*f/2)+(29*y/96-29*m/16)*h+539*m*d/1536,A=Math.asin(Math.sin(T)*n.cosineAlpha),S=Math.atan(n.a/n.b*Math.tan(A));T-=n.sigma;var g=Math.cos(2*n.sigma+T),C=Math.sin(T),v=Math.cos(T),I=n.cosineU*v,O=n.sineU*C,N=Math.atan2(C*n.sineHeading,I-O*n.cosineHeading),M=N-l(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,C,v,g);return i(r)?(r.longitude=this._start.longitude+M,r.latitude=S,r.height=0,r):new t(this._start.longitude+M,S,0)},d}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,s,u){"use strict";function c(e,t,r){if(0===e)return t*r;var n=e*e,i=n*n,a=i*n,o=a*n,s=o*n,u=s*n,c=r;return t*((1-n/4-3*i/64-5*a/256-175*o/16384-441*s/65536-4851*u/1048576)*c-(3*n/8+3*i/32+45*a/1024+105*o/4096+2205*s/131072+6237*u/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*s/65536+155925*u/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*s/262144+13475*u/1048576)*Math.sin(6*c)+(315*o/131072+2205*s/524288+43659*u/8388608)*Math.sin(8*c)-(693*s/1310720+6237*u/5242880)*Math.sin(10*c)+1001*u/8388608*Math.sin(12*c))}function l(e,t,r){var n=e/r;if(0===t)return n;var i=n*n,a=i*n,o=a*n,s=t,u=s*s,c=u*u,l=c*u,f=l*u,h=f*u,d=h*u,E=Math.sin(2*n),p=Math.cos(2*n),m=Math.sin(4*n),_=Math.cos(4*n),y=Math.sin(6*n),R=Math.cos(6*n),T=Math.sin(8*n),A=Math.cos(8*n),S=Math.sin(10*n);return n+n*u/4+7*n*c/64+15*n*l/256+579*n*f/16384+1515*n*h/65536+16837*n*d/1048576+(3*n*c/16+45*n*l/256-n*(32*i-561)*f/4096-n*(232*i-1677)*h/16384+n*(399985-90560*i+512*o)*d/5242880)*p+(21*n*l/256+483*n*f/4096-n*(224*i-1969)*h/16384-n*(33152*i-112599)*d/1048576)*_+(151*n*f/4096+4681*n*h/65536+1479*n*d/16384-453*a*d/32768)*R+(1097*n*h/65536+42783*n*d/1048576)*A+8011*n*d/1048576*Math.cos(10*n)+(3*u/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*E+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*T+(8011*h/2621440+8011*d/1048576)*S+293393*d/251658240*Math.sin(12*n)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(u.PI_OVER_TWO+t)));var r=e*Math.sin(t);return Math.log(Math.tan(.5*(u.PI_OVER_TWO+t)))-e/2*Math.log((1+r)/(1-r))}function h(e,t,r,n,i){var a=f(e._ellipticity,r),o=f(e._ellipticity,i);return Math.atan2(u.negativePiToPi(n-t),o-a)}function d(e,t,r,n,i,a,o){var s=e._heading,l=a-n,f=0;if(u.equalsEpsilon(Math.abs(s),u.PI_OVER_TWO,u.EPSILON8))if(t===r)f=t*Math.cos(i)*u.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*u.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(s)}return Math.abs(f)}function E(r,n,i,a){var o=(e.normalize(a.cartographicToCartesian(n,y),_),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),s=a.minimumRadius,u=o*o,c=s*s;r._ellipticitySquared=(u-c)/u,r._ellipticity=Math.sqrt(r._ellipticitySquared),r._start=t.clone(n,r._start),r._start.height=0,r._end=t.clone(i,r._end),r._end.height=0,r._heading=h(r,n.longitude,n.latitude,i.longitude,i.latitude),r._distance=d(r,a.maximumRadius,a.minimumRadius,n.longitude,n.latitude,i.longitude,i.latitude)}function p(e,r,n,a,o,s){var h,d,E,p=o*o;if(Math.abs(u.PI_OVER_TWO-Math.abs(r))>u.EPSILON8){d=l(c(o,a,e.latitude)+n*Math.cos(r),o,a);var m=f(o,e.latitude),_=f(o,d);E=Math.tan(r)*(_-m),h=u.negativePiToPi(e.longitude+E)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var R=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-p*R*R)}E=n/y,h=r>0?u.negativePiToPi(e.longitude+E):u.negativePiToPi(e.longitude-E)}return i(s)?(s.longitude=h,s.latitude=d,s.height=0,s):new t(h,d,0)}function m(e,r,a){var o=n(a,s.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(r)&&E(this,e,r,o)}var _=new e,y=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,r,a,o){var c=n(a,s.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,E=Math.sqrt((h-d)/h);t=u.negativePiToPi(t);var _=p(e,t,r,c.maximumRadius,E);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,_,c):(o.setEndPoints(e,_),o)},m.prototype.setEndPoints=function(e,t){E(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return p(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,r){var n=this._ellipticity,a=this._heading,o=Math.abs(a),s=this._start;if(e=u.negativePiToPi(e),u.equalsEpsilon(Math.abs(e),Math.PI,u.EPSILON14)&&(e=u.sign(s.longitude)*Math.PI),i(r)||(r=new t),Math.abs(u.PI_OVER_TWO-o)<=u.EPSILON8)return r.longitude=e,r.latitude=s.latitude,r.height=0,r;if(u.equalsEpsilon(Math.abs(u.PI_OVER_TWO-o),u.PI_OVER_TWO,u.EPSILON8)){if(u.equalsEpsilon(e,s.longitude,u.EPSILON12))return;return r.longitude=e,r.latitude=u.PI_OVER_TWO*u.sign(u.PI_OVER_TWO-a),r.height=0,r}var c,l=s.latitude,f=n*Math.sin(l),h=Math.tan(.5*(u.PI_OVER_TWO+l))*Math.exp((e-s.longitude)/Math.tan(a)),d=(1+f)/(1-f),E=s.latitude;do{c=E;var p=n*Math.sin(c),m=(1+p)/(1-p);E=2*Math.atan(h*Math.pow(m/d,n/2))-u.PI_OVER_TWO}while(!u.equalsEpsilon(E,c,u.EPSILON12));return r.longitude=e,r.latitude=E,r.height=0,r},m.prototype.findIntersectionWithLatitude=function(e,r){var n=this._ellipticity,a=this._heading,o=this._start;if(!u.equalsEpsilon(Math.abs(a),u.PI_OVER_TWO,u.EPSILON8)){var s=f(n,o.latitude),c=f(n,e),l=Math.tan(a)*(c-s),h=u.negativePiToPi(o.longitude+l);return i(r)?(r.longitude=h,r.latitude=e,r.height=0,r):new t(h,e,0)}},m}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),s=Math.abs(e);if(o<s&&o/s<t.EPSILON14)return[0,0];if(o>s&&s/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var u=Math.sqrt(a);return[-u,u]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,s=t/3,u=r/3,c=n,l=o*u,f=s*c,h=s*s,d=u*u,E=o*u-h,p=o*c-s*u,m=s*c-d,_=4*E*m-p*p;if(_<0){var y,R,T;h*f>=l*d?(y=o,R=E,T=-2*s*E+o*p):(y=c,R=m,T=-c*p+2*u*m);var A=T<0?-1:1,S=-A*Math.abs(y)*Math.sqrt(-_);a=-T+S;var g=a/2,C=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),v=a===S?-C:-R/C;return i=R<=0?C+v:-T/(C*C+v*v+R),h*f>=l*d?[(i-s)/o]:[-c/(i+u)]}var I=E,O=-2*s*E+o*p,N=m,M=-c*p+2*u*m,w=Math.sqrt(_),P=Math.sqrt(3)/2,D=Math.abs(Math.atan2(o*w,-O)/3);i=2*Math.sqrt(-I);var U=Math.cos(D);a=i*U;var F=i*(-U/2-P*Math.sin(D)),x=a+F>2*s?a-s:F-s,L=o,B=x/L;D=Math.abs(Math.atan2(c*w,-M)/3),i=2*Math.sqrt(-N),U=Math.cos(D),a=i*U,F=i*(-U/2-P*Math.sin(D));var b=-c,q=a+F<2*u?a+u:F+u,z=b/q,G=L*q,V=-x*q-L*b,W=x*b,H=(u*V-s*W)/(-s*V+u*G);return B<=H?B<=z?H<=z?[B,H,z]:[B,z,H]:[z,B,H]:B<=z?[H,B,z]:H<=z?[H,z,B]:[z,H,B]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,s;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];s=-a/e;var u=s<0?-Math.pow(-s,1/3):Math.pow(s,1/3);return[u,u,u]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(s=-n/e,s<0?[s,0,0]:[0,0,s]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var s=t*t,u=i-3*s/8,c=a-i*t/2+s*t/8,l=o-a*t/4+i*s/16-3*s*s/256,f=e.computeRealRoots(1,2*u,u*u-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var E=n.computeRealRoots(1,u,l);if(2===E.length){var p,m=E[0],_=E[1];if(m>=0&&_>=0){var y=Math.sqrt(m),R=Math.sqrt(_);return[h-R,h-y,h+y,h+R]}if(m>=0&&_<0)return p=Math.sqrt(m),[h-p,h+p];if(m<0&&_>=0)return p=Math.sqrt(_),[h-p,h+p]}return[]}if(d>0){var T=Math.sqrt(d),A=(u+d-c/T)/2,S=(u+d+c/T)/2,g=n.computeRealRoots(1,T,A),C=n.computeRealRoots(1,-T,S);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==C.length?(C[0]+=h,C[1]+=h,g[1]<=C[0]?[g[0],g[1],C[0],C[1]]:C[1]<=g[0]?[C[0],C[1],g[0],g[1]]:g[0]>=C[0]&&g[1]<=C[1]?[C[0],g[0],g[1],C[1]]:C[0]>=g[0]&&C[1]<=g[1]?[g[0],C[0],C[1],g[1]]:g[0]>C[0]&&g[0]<C[1]?[C[0],g[0],C[1],g[1]]:[g[0],C[0],g[1],C[1]]):g):0!==C.length?(C[0]+=h,C[1]+=h,C):[]}}return[]}function a(t,i,a,o){var s=a*a,u=i*i,c=t*t,l=-2*i,f=a*t+u-4*o,h=c*o-a*i*t+s,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var E,p,m=d[0],_=i-m,y=_*_,R=t/2,T=_/2,A=y-4*o,S=y+4*Math.abs(o),g=c-4*m,C=c+4*Math.abs(m);if(m<0||A*C<g*S){var v=Math.sqrt(g);E=v/2,p=0===v?0:(t*T-a)/v}else{var I=Math.sqrt(A);E=0===I?0:(t*T-a)/I,p=I/2}var O,N;0===R&&0===E?(O=0,N=0):r.sign(R)===r.sign(E)?(O=R+E,N=m/O):(N=R-E,O=m/N);var M,w;0===T&&0===p?(M=0,w=0):r.sign(T)===r.sign(p)?(M=T+p,w=o/M):(w=T-p,M=o/w);var P=n.computeRealRoots(1,O,M),D=n.computeRealRoots(1,N,w);if(0!==P.length)return 0!==D.length?P[1]<=D[0]?[P[0],P[1],D[0],D[1]]:D[1]<=P[0]?[D[0],D[1],P[0],P[1]]:P[0]>=D[0]&&P[1]<=D[1]?[D[0],P[0],P[1],D[1]]:D[0]>=P[0]&&D[1]<=P[1]?[P[0],D[0],D[1],P[1]]:P[0]>D[0]&&P[0]<D[1]?[D[0],P[0],D[1],P[1]]:[P[0],D[0],P[1],D[1]]:P;if(0!==D.length)return D}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,s=t*t,u=s*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return s*c*f-4*u*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*u*r*n-4*s*l+16*e*c*c-80*e*t*c*n-6*e*s*f+144*a*r*f)+d*(144*e*s*r-27*s*s-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,s,u){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,s,u);var c=n/t,l=o/t,f=s/t,h=u/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,s,u,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),s=(-t+o)*a,u=(-t-o)*a;return s<u?(n.root0=s,n.root1=u):(n.root0=u,n.root1=s),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,s=t.direction,u=r.center,c=r.radius*r.radius,l=e.subtract(o,u,y),h=e.dot(s,s),d=2*e.dot(s,l),E=e.magnitudeSquared(l)-c,p=f(h,d,E,S);if(n(p))return i.start=p.root0,i.stop=p.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function E(t,r,n,i,a){var l,f=i*i,h=a*a,E=(t[s.COLUMN1ROW1]-t[s.COLUMN2ROW2])*h,p=a*(i*d(t[s.COLUMN1ROW0],t[s.COLUMN0ROW1],o.EPSILON15)+r.y),m=t[s.COLUMN0ROW0]*f+t[s.COLUMN2ROW2]*h+i*r.x+n,_=h*d(t[s.COLUMN2ROW1],t[s.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[s.COLUMN2ROW0],t[s.COLUMN0ROW2])+r.z),R=[];if(0===y&&0===_){if(l=u.computeRealRoots(E,p,m),0===l.length)return R;var T=l[0],A=Math.sqrt(Math.max(1-T*T,0));if(R.push(new e(i,a*T,a*-A)),R.push(new e(i,a*T,a*A)),2===l.length){var S=l[1],g=Math.sqrt(Math.max(1-S*S,0));R.push(new e(i,a*S,a*-g)),R.push(new e(i,a*S,a*g))}return R}var C=y*y,v=_*_,I=E*E,O=y*_,N=I+v,M=2*(p*E+O),w=2*m*E+p*p-v+C,P=2*(m*p-O),D=m*m-C;if(0===N&&0===M&&0===w&&0===P)return R;l=c.computeRealRoots(N,M,w,P,D);var U=l.length;if(0===U)return R;for(var F=0;F<U;++F){var x,L=l[F],B=L*L,b=Math.max(1-B,0),q=Math.sqrt(b);x=o.sign(E)===o.sign(m)?d(E*B+m,p*L,o.EPSILON12):o.sign(m)===o.sign(p*L)?d(E*B,p*L+m,o.EPSILON12):d(E*B+p*L,m,o.EPSILON12);var z=d(_*L,y,o.EPSILON15),G=x*z;G<0?R.push(new e(i,a*L,a*q)):G>0?R.push(new e(i,a*L,a*-q)):0!==q?(R.push(new e(i,a*L,a*-q)),R.push(new e(i,a*L,a*q)),++F):R.push(new e(i,a*L,a*q))}return R}var p={};p.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,s=t.direction,u=r.normal,c=e.dot(u,s);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(u,a))/c;if(!(l<0))return i=e.multiplyByScalar(s,l,i),e.add(a,i,i)}};var m=new e,_=new e,y=new e,R=new e,T=new e;p.rayTriangleParametric=function(t,n,i,a,s){s=r(s,!1);var u,c,l,f,h,d=t.origin,E=t.direction,p=e.subtract(i,n,m),A=e.subtract(a,n,_),S=e.cross(E,A,y),g=e.dot(p,S);if(s){if(g<o.EPSILON6)return;if(u=e.subtract(d,n,R),(l=e.dot(u,S))<0||l>g)return;if(c=e.cross(u,p,T),(f=e.dot(E,c))<0||l+f>g)return;h=e.dot(A,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var C=1/g;if(u=e.subtract(d,n,R),(l=e.dot(u,S)*C)<0||l>1)return;if(c=e.cross(u,p,T),(f=e.dot(E,c)*C)<0||l+f>1)return;h=e.dot(A,c)*C}return h},p.rayTriangle=function(t,r,i,a,o,s){var u=p.rayTriangleParametric(t,r,i,a,o);if(n(u)&&!(u<0))return n(s)||(s=new e),e.multiplyByScalar(t.direction,u,s),e.add(t.origin,s,s)};var A=new l;p.lineSegmentTriangle=function(t,r,i,a,o,s,u){var c=A;e.clone(t,c.origin),e.subtract(r,t,c.direction), -e.normalize(c.direction,c.direction);var l=p.rayTriangleParametric(c,i,a,o,s);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(u)||(u=new e),e.multiplyByScalar(c.direction,l,u),e.add(c.origin,u,u)};var S={root0:0,root1:0};p.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var g=new l;p.lineSegmentSphere=function(t,r,i,a){var o=g;e.clone(t,o.origin);var s=e.subtract(r,t,o.direction),u=e.magnitude(s);if(e.normalize(s,s),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>u))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,u),a};var C=new e,v=new e;p.rayEllipsoid=function(t,r){var n,i,o,s,u,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,C),f=e.multiplyComponents(c,t.direction,v),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var E=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,E<o)return;if(E>o){s=d*d-o,u=-d+Math.sqrt(s);var p=u/i,m=n/u;return p<m?new a(p,m):{start:m,stop:p}}var _=Math.sqrt(n/i);return new a(_,_)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,s=d*d-o,u=-d+Math.sqrt(s),new a(0,u/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,O=new e,N=new e,M=new e,w=new e,P=new s,D=new s,U=new s,F=new s,x=new s,L=new s,B=new s,b=new e,q=new e,z=new t;p.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var u=r.geodeticSurfaceNormal(i,I);if(e.dot(a,u)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,O),O),p=e.normalize(e.cross(f,d,N),N),m=P;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=p.x,m[7]=p.y,m[8]=p.z;var _=s.transpose(m,D),y=s.fromScale(r.radii,U),R=s.fromScale(r.oneOverRadii,F),T=x;T[0]=0,T[1]=-a.z,T[2]=a.y,T[3]=a.z,T[4]=0,T[5]=-a.x,T[6]=-a.y,T[7]=a.x,T[8]=0;var A,S,g=s.multiply(s.multiply(_,R,L),T,L),C=s.multiply(s.multiply(g,y,B),m,B),v=s.multiplyByVector(g,i,w),G=E(C,e.negate(v,I),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,q),H=Number.NEGATIVE_INFINITY,X=0;X<V;++X){A=s.multiplyByVector(y,s.multiplyByVector(m,G[X],b),b);var Y=e.normalize(e.subtract(A,i,M),M),k=e.dot(Y,a);k>H&&(H=k,W=e.clone(A,W))}var j=r.cartesianToCartographic(W,z);return H=o.clamp(H,0,1),S=e.magnitude(e.subtract(W,i,M))*Math.sqrt(1-H*H),S=c?-S:S,j.height=S,r.cartographicToCartesian(j,new e)}};var G=new e;return p.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var s=e.subtract(r,t,G),u=i.normal,c=e.dot(u,s);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(u,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(s,f,a),e.add(t,a,a),a}},p.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,s=e.dot(a,t)+o<0,u=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=s?1:0,l+=u?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(s)return p.lineSegmentPlane(t,r,i,f),p.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(u)return p.lineSegmentPlane(r,n,i,f),p.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return p.lineSegmentPlane(n,t,i,f),p.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!s)return p.lineSegmentPlane(r,t,i,f),p.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!u)return p.lineSegmentPlane(n,r,i,f),p.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return p.lineSegmentPlane(t,n,i,f),p.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},p}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function s(t,r){this.normal=e.clone(t),this.distance=r}s.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new s(n,a)};var u=new e;s.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,u),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new s(i,a)},s.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;s.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=s.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return s.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,u),e.normalize(u,u),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),s.fromPointNormal(l,u,n)},s.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new s(t.normal,t.distance)},s.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},s.ORIGIN_XY_PLANE=i(new s(e.UNIT_Z,0)),s.ORIGIN_YZ_PLANE=i(new s(e.UNIT_X,0)),s.ORIGIN_ZX_PLANE=i(new s(e.UNIT_Y,0)),s}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,r,n,i,a,o,s,u,c,l,f,h){"use strict";function d(e,t,r){var n=I;n.length=e;var i;if(t===r){for(i=0;i<e;i++)n[i]=t;return n}var a=r-t,o=a/e;for(i=0;i<e;i++){var s=t+i*o;n[i]=s}return n}function E(t,r,n,i,a,o,s,u){var c=i.scaleToGeodeticSurface(t,w),l=i.scaleToGeodeticSurface(r,P),f=m.numberOfPoints(t,r,n),h=i.cartesianToCartographic(c,O),E=i.cartesianToCartographic(l,N),p=d(f,a,o);D.setEndPoints(h,E);var _=D.surfaceDistance/f,y=u;h.height=a;var R=i.cartographicToCartesian(h,M);e.pack(R,s,y),y+=3;for(var T=1;T<f;T++){var A=D.interpolateUsingSurfaceDistance(T*_,N);A.height=p[T],R=i.cartographicToCartesian(A,M),e.pack(R,s,y),y+=3}return y}function p(t,r,n,i,a,o,u,c){var l=i.scaleToGeodeticSurface(t,w),f=i.scaleToGeodeticSurface(r,P),h=i.cartesianToCartographic(l,O),E=i.cartesianToCartographic(f,N),p=m.numberOfPointsRhumbLine(h,E,n),_=d(p,a,o);U.ellipsoid.equals(i)||(U=new s(void 0,void 0,i)),U.setEndPoints(h,E);var y=U.surfaceDistance/p,R=c;h.height=a;var T=i.cartographicToCartesian(h,M);e.pack(T,u,R),R+=3;for(var A=1;A<p;A++){var S=U.interpolateUsingSurfaceDistance(A*y,N);S.height=_[A],T=i.cartographicToCartesian(S,M),e.pack(T,u,R),R+=3}return R}var m={};m.numberOfPoints=function(t,r,n){var i=e.distance(t,r);return Math.ceil(i/n)},m.numberOfPointsRhumbLine=function(e,t,r){var n=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(n/(r*r)))};var _=new t;m.extractHeights=function(e,t){for(var r=e.length,n=new Array(r),i=0;i<r;i++){var a=e[i];n[i]=t.cartesianToCartographic(a,_).height}return n};var y=new f,R=new e,T=new e,A=new h(e.UNIT_X,0),S=new e,g=new h(e.UNIT_X,0),C=new e,v=new e,I=[],O=new t,N=new t,M=new e,w=new e,P=new e,D=new o,U=new s;m.wrapLongitude=function(t,i){var a=[],o=[];if(n(t)&&t.length>0){i=r(i,f.IDENTITY);var s=f.inverseTransformation(i,y),c=f.multiplyByPoint(s,e.ZERO,R),l=e.normalize(f.multiplyByPointAsVector(s,e.UNIT_Y,T),T),d=h.fromPointNormal(c,l,A),E=e.normalize(f.multiplyByPointAsVector(s,e.UNIT_X,S),S),p=h.fromPointNormal(c,E,g),m=1;a.push(e.clone(t[0]));for(var _=a[0],I=t.length,O=1;O<I;++O){var N=t[O];if(h.getPointDistance(p,_)<0||h.getPointDistance(p,N)<0){var M=u.lineSegmentPlane(_,N,d,C);if(n(M)){var w=e.multiplyByScalar(l,5e-9,v);h.getPointDistance(d,_)<0&&e.negate(w,w),a.push(e.add(M,w,new e)),o.push(m+1),e.negate(w,w),a.push(e.add(M,w,new e)),m=1}}a.push(e.clone(t[O])),m++,_=N}o.push(m)}return{positions:a,lengths:o}},m.generateArc=function(t){n(t)||(t={});var i=t.positions,o=i.length,s=r(t.ellipsoid,a.WGS84),u=r(t.height,0),f=c(u);if(o<1)return[];if(1===o){var h=s.scaleToGeodeticSurface(i[0],w);if(0!==(u=f?u[0]:u)){var d=s.geodeticSurfaceNormal(h,M);e.multiplyByScalar(d,u,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var p=t.minDistance;if(!n(p)){var _=r(t.granularity,l.RADIANS_PER_DEGREE);p=l.chordLength(_,s.maximumRadius)}var y,R=0;for(y=0;y<o-1;y++)R+=m.numberOfPoints(i[y],i[y+1],p);var T=3*(R+1),A=new Array(T),S=0;for(y=0;y<o-1;y++){S=E(i[y],i[y+1],p,s,f?u[y]:u,f?u[y+1]:u,A,S)}I.length=0;var g=i[o-1],C=s.cartesianToCartographic(g,O);C.height=f?u[o-1]:u;var v=s.cartographicToCartesian(C,M);return e.pack(v,A,T-3),A};var F=new t,x=new t;return m.generateRhumbArc=function(i){n(i)||(i={});var o=i.positions,s=o.length,u=r(i.ellipsoid,a.WGS84),f=r(i.height,0),h=c(f);if(s<1)return[];if(1===s){var d=u.scaleToGeodeticSurface(o[0],w);if(0!==(f=h?f[0]:f)){var E=u.geodeticSurfaceNormal(d,M);e.multiplyByScalar(E,f,E),e.add(d,E,d)}return[d.x,d.y,d.z]}var _,y,R=r(i.granularity,l.RADIANS_PER_DEGREE),T=0,A=u.cartesianToCartographic(o[0],F);for(_=0;_<s-1;_++)y=u.cartesianToCartographic(o[_+1],x),T+=m.numberOfPointsRhumbLine(A,y,R),A=t.clone(y,F);var S=3*(T+1),g=new Array(S),C=0;for(_=0;_<s-1;_++){C=p(o[_],o[_+1],R,u,h?f[_]:f,h?f[_+1]:f,g,C)}I.length=0;var v=o[s-1],N=u.cartesianToCartographic(v,O);N.height=h?f[s-1]:f;var P=u.cartographicToCartesian(N,M);return e.pack(P,g,S-3),g},m.generateCartesianArc=function(t){for(var r=m.generateArc(t),n=r.length/3,i=new Array(n),a=0;a<n;a++)i[a]=e.unpack(r,3*a);return i},m.generateCartesianRhumbArc=function(t){for(var r=m.generateRhumbArc(t),n=r.length/3,i=new Array(n),a=0;a<n;a++)i[a]=e.unpack(r,3*a);return i},m}),define("Core/SimplePolylineGeometry",["./ArcType","./BoundingSphere","./Cartesian3","./Color","./ComponentDatatype","./defaultValue","./defined","./deprecationWarning","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PolylinePipeline","./PrimitiveType"],function(e,t,r,n,i,a,o,s,u,c,l,f,h,d,E,p,m){"use strict";function _(e,t,r,i,a,o,s){var u,c=p.numberOfPoints(e,t,a),l=r.red,f=r.green,h=r.blue,d=r.alpha,E=i.red,m=i.green,_=i.blue,y=i.alpha;if(n.equals(r,i)){for(u=0;u<c;u++)o[s++]=n.floatToByte(l),o[s++]=n.floatToByte(f),o[s++]=n.floatToByte(h),o[s++]=n.floatToByte(d);return s}var R=(E-l)/c,T=(m-f)/c,A=(_-h)/c,S=(y-d)/c,g=s;for(u=0;u<c;u++)o[g++]=n.floatToByte(l+u*R),o[g++]=n.floatToByte(f+u*T),o[g++]=n.floatToByte(h+u*A),o[g++]=n.floatToByte(d+u*S);return g}function y(t){t=a(t,a.EMPTY_OBJECT);var i=t.positions,s=t.colors,u=a(t.colorsPerVertex,!1);this._positions=i,this._colors=s,this._colorsPerVertex=u,this._arcType=a(t.arcType,e.GEODESIC),this._granularity=a(t.granularity,E.RADIANS_PER_DEGREE),this._ellipsoid=a(t.ellipsoid,c.WGS84),this._workerName="createSimplePolylineGeometry";var l=1+i.length*r.packedLength;l+=o(s)?1+s.length*n.packedLength:1,this.packedLength=l+c.packedLength+3}y.pack=function(e,t,i){i=a(i,0);var s,u=e._positions,l=u.length;for(t[i++]=l,s=0;s<l;++s,i+=r.packedLength)r.pack(u[s],t,i);var f=e._colors;for(l=o(f)?f.length:0,t[i++]=l,s=0;s<l;++s,i+=n.packedLength)n.pack(f[s],t,i);return c.pack(e._ellipsoid,t,i),i+=c.packedLength,t[i++]=e._colorsPerVertex?1:0,t[i++]=e._arcType,t[i]=e._granularity,t},y.unpack=function(e,t,i){t=a(t,0);var s,u=e[t++],l=new Array(u);for(s=0;s<u;++s,t+=r.packedLength)l[s]=r.unpack(e,t);u=e[t++];var f=u>0?new Array(u):void 0;for(s=0;s<u;++s,t+=n.packedLength)f[s]=n.unpack(e,t);var h=c.unpack(e,t);t+=c.packedLength;var d=1===e[t++],E=e[t++],p=e[t];return o(i)?(i._positions=l,i._colors=f,i._ellipsoid=h,i._colorsPerVertex=d,i._arcType=E,i._granularity=p,i):new y({positions:l,colors:f,ellipsoid:h,colorsPerVertex:d,arcType:E,granularity:p})};var R=new Array(2),T=new Array(2),A={positions:R,height:T,ellipsoid:void 0,minDistance:void 0,granularity:void 0};return y.createGeometry=function(a){var s,u,c,y,S,g=a._positions,C=a._colors,v=a._colorsPerVertex,I=a._arcType,O=a._granularity,N=a._ellipsoid,M=E.chordLength(O,N.maximumRadius),w=o(C)&&!v,P=g.length,D=0;if(I===e.GEODESIC||I===e.RHUMB){var U,F,x;I===e.GEODESIC?(U=E.chordLength(O,N.maximumRadius),F=p.numberOfPoints,x=p.generateArc):(U=O,F=p.numberOfPointsRhumbLine,x=p.generateRhumbArc);var L=p.extractHeights(g,N),B=A;if(I===e.GEODESIC?B.minDistance=M:B.granularity=O,B.ellipsoid=N,w){var b=0;for(s=0;s<P-1;s++)b+=F(g[s],g[s+1],U)+1;u=new Float64Array(3*b),y=new Uint8Array(4*b),B.positions=R,B.height=T;var q=0;for(s=0;s<P-1;++s){R[0]=g[s],R[1]=g[s+1],T[0]=L[s],T[1]=L[s+1];var z=x(B);if(o(C)){var G=z.length/3;S=C[s];for(var V=0;V<G;++V)y[q++]=n.floatToByte(S.red),y[q++]=n.floatToByte(S.green),y[q++]=n.floatToByte(S.blue),y[q++]=n.floatToByte(S.alpha)}u.set(z,D),D+=z.length}}else if(B.positions=g,B.height=L,u=new Float64Array(x(B)),o(C)){for(y=new Uint8Array(u.length/3*4),s=0;s<P-1;++s){var W=g[s],H=g[s+1],X=C[s],Y=C[s+1];D=_(W,H,X,Y,M,y,D)}var k=C[P-1];y[D++]=n.floatToByte(k.red),y[D++]=n.floatToByte(k.green),y[D++]=n.floatToByte(k.blue),y[D++]=n.floatToByte(k.alpha)}}else{c=w?2*P-2:P,u=new Float64Array(3*c),y=o(C)?new Uint8Array(4*c):void 0;var j=0,K=0;for(s=0;s<P;++s){var Z=g[s];if(w&&s>0&&(r.pack(Z,u,j),j+=3,S=C[s-1],y[K++]=n.floatToByte(S.red),y[K++]=n.floatToByte(S.green),y[K++]=n.floatToByte(S.blue),y[K++]=n.floatToByte(S.alpha)),w&&s===P-1)break;r.pack(Z,u,j),j+=3,o(C)&&(S=C[s],y[K++]=n.floatToByte(S.red),y[K++]=n.floatToByte(S.green),y[K++]=n.floatToByte(S.blue),y[K++]=n.floatToByte(S.alpha))}}var J=new h;J.position=new f({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:u}),o(C)&&(J.color=new f({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:4,values:y,normalize:!0})),c=u.length/3;var Q=2*(c-1),$=d.createTypedArray(c,Q),ee=0;for(s=0;s<c-1;++s)$[ee++]=s,$[ee++]=s+1;return new l({attributes:J,indices:$,primitiveType:m.LINES,boundingSphere:t.fromPoints(g)})},y}),define("Workers/createSimplePolylineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/SimplePolylineGeometry"],function(e,t,r){"use strict";function n(n,i){return e(i)&&(n=r.unpack(n,i)),n._ellipsoid=t.clone(n._ellipsoid),r.createGeometry(n)}return n})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-NYU5F26A.js";import{a as S}from"./chunk-E3BAMNKM.js";import{a as E}from"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as X}from"./chunk-T53UE6JF.js";import{a as W}from"./chunk-RYO6NY7F.js";import{b as K,c as Q,d as Y}from"./chunk-2HSPJH3C.js";import{d as j}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as H}from"./chunk-6QVIJ7JA.js";import{a as k,d as b}from"./chunk-AODSXSC5.js";import{a as q}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as w}from"./chunk-WHQYJFDH.js";import{a as L}from"./chunk-OYWUGDKS.js";import{e as u}from"./chunk-DRYFJEFT.js";function Z(t,e,o,i,s,l,p){let g=E.numberOfPoints(t,e,s),f,n=o.red,m=o.green,d=o.blue,T=o.alpha,c=i.red,h=i.green,y=i.blue,V=i.alpha;if(r.equals(o,i)){for(f=0;f<g;f++)l[p++]=r.floatToByte(n),l[p++]=r.floatToByte(m),l[p++]=r.floatToByte(d),l[p++]=r.floatToByte(T);return p}let M=(c-n)/g,C=(h-m)/g,G=(y-d)/g,_=(V-T)/g,a=p;for(f=0;f<g;f++)l[a++]=r.floatToByte(n+f*M),l[a++]=r.floatToByte(m+f*C),l[a++]=r.floatToByte(d+f*G),l[a++]=r.floatToByte(T+f*_);return a}function R(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions,o=t.colors,i=w(t.colorsPerVertex,!1);if(!u(e)||e.length<2)throw new L("At least two positions are required.");if(u(o)&&(i&&o.length<e.length||!i&&o.length<e.length-1))throw new L("colors has an invalid length.");this._positions=e,this._colors=o,this._colorsPerVertex=i,this._arcType=w(t.arcType,S.GEODESIC),this._granularity=w(t.granularity,q.RADIANS_PER_DEGREE),this._ellipsoid=w(t.ellipsoid,b.default),this._workerName="createSimplePolylineGeometry";let s=1+e.length*k.packedLength;s+=u(o)?1+o.length*r.packedLength:1,this.packedLength=s+b.packedLength+3}R.pack=function(t,e,o){if(!u(t))throw new L("value is required");if(!u(e))throw new L("array is required");o=w(o,0);let i,s=t._positions,l=s.length;for(e[o++]=l,i=0;i<l;++i,o+=k.packedLength)k.pack(s[i],e,o);let p=t._colors;for(l=u(p)?p.length:0,e[o++]=l,i=0;i<l;++i,o+=r.packedLength)r.pack(p[i],e,o);return b.pack(t._ellipsoid,e,o),o+=b.packedLength,e[o++]=t._colorsPerVertex?1:0,e[o++]=t._arcType,e[o]=t._granularity,e};R.unpack=function(t,e,o){if(!u(t))throw new L("array is required");e=w(e,0);let i,s=t[e++],l=new Array(s);for(i=0;i<s;++i,e+=k.packedLength)l[i]=k.unpack(t,e);s=t[e++];let p=s>0?new Array(s):void 0;for(i=0;i<s;++i,e+=r.packedLength)p[i]=r.unpack(t,e);let g=b.unpack(t,e);e+=b.packedLength;let f=t[e++]===1,n=t[e++],m=t[e];return u(o)?(o._positions=l,o._colors=p,o._ellipsoid=g,o._colorsPerVertex=f,o._arcType=n,o._granularity=m,o):new R({positions:l,colors:p,ellipsoid:g,colorsPerVertex:f,arcType:n,granularity:m})};var F=new Array(2),N=new Array(2),$={positions:F,height:N,ellipsoid:void 0,minDistance:void 0,granularity:void 0};R.createGeometry=function(t){let e=t._positions,o=t._colors,i=t._colorsPerVertex,s=t._arcType,l=t._granularity,p=t._ellipsoid,g=q.chordLength(l,p.maximumRadius),f=u(o)&&!i,n,m=e.length,d,T,c,h,y=0;if(s===S.GEODESIC||s===S.RHUMB){let _,a,P;s===S.GEODESIC?(_=q.chordLength(l,p.maximumRadius),a=E.numberOfPoints,P=E.generateArc):(_=l,a=E.numberOfPointsRhumbLine,P=E.generateRhumbArc);let v=E.extractHeights(e,p),B=$;if(s===S.GEODESIC?B.minDistance=g:B.granularity=l,B.ellipsoid=p,f){let A=0;for(n=0;n<m-1;n++)A+=a(e[n],e[n+1],_)+1;d=new Float64Array(A*3),c=new Uint8Array(A*4),B.positions=F,B.height=N;let D=0;for(n=0;n<m-1;++n){F[0]=e[n],F[1]=e[n+1],N[0]=v[n],N[1]=v[n+1];let O=P(B);if(u(o)){let z=O.length/3;h=o[n];for(let U=0;U<z;++U)c[D++]=r.floatToByte(h.red),c[D++]=r.floatToByte(h.green),c[D++]=r.floatToByte(h.blue),c[D++]=r.floatToByte(h.alpha)}d.set(O,y),y+=O.length}}else if(B.positions=e,B.height=v,d=new Float64Array(P(B)),u(o)){for(c=new Uint8Array(d.length/3*4),n=0;n<m-1;++n){let D=e[n],O=e[n+1],z=o[n],U=o[n+1];y=Z(D,O,z,U,g,c,y)}let A=o[m-1];c[y++]=r.floatToByte(A.red),c[y++]=r.floatToByte(A.green),c[y++]=r.floatToByte(A.blue),c[y++]=r.floatToByte(A.alpha)}}else{T=f?m*2-2:m,d=new Float64Array(T*3),c=u(o)?new Uint8Array(T*4):void 0;let _=0,a=0;for(n=0;n<m;++n){let P=e[n];if(f&&n>0&&(k.pack(P,d,_),_+=3,h=o[n-1],c[a++]=r.floatToByte(h.red),c[a++]=r.floatToByte(h.green),c[a++]=r.floatToByte(h.blue),c[a++]=r.floatToByte(h.alpha)),f&&n===m-1)break;k.pack(P,d,_),_+=3,u(o)&&(h=o[n],c[a++]=r.floatToByte(h.red),c[a++]=r.floatToByte(h.green),c[a++]=r.floatToByte(h.blue),c[a++]=r.floatToByte(h.alpha))}}let V=new W;V.position=new Y({componentDatatype:H.DOUBLE,componentsPerAttribute:3,values:d}),u(o)&&(V.color=new Y({componentDatatype:H.UNSIGNED_BYTE,componentsPerAttribute:4,values:c,normalize:!0})),T=d.length/3;let M=(T-1)*2,C=X.createTypedArray(T,M),G=0;for(n=0;n<T-1;++n)C[G++]=n,C[G++]=n+1;return new Q({attributes:V,indices:C,primitiveType:K.LINES,boundingSphere:j.fromPoints(e)})};var J=R;function x(t,e){return u(e)&&(t=J.unpack(t,e)),t._ellipsoid=b.clone(t._ellipsoid),J.createGeometry(t)}var _e=x;export{_e as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereGeometry.js index 4a7226b2d..6315d94b9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,w,M,C,g,P,x,U,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),B=0;do{b-=B,M=1/(1+b*S),C=1/(1+b*I),g=1/(1+b*N),P=M*M,x=C*C,U=g*g,D=P*M,F=x*C,L=U*g,v=_*P+m*x+y*U-1,w=_*D*S+m*F*I+y*L*N;B=v/(-2*w)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*M,c.y=f*C,c.z=h*g,c):new e(l*M,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=o(t,E,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+d;return n(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(E,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+d-_+y,N=2*(E-h),O=2*(f-p),v=2*(E+h),w=-s-d+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=w*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=E*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-E,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],w=t[8],M=t[9],C=t[10],g=t[11],P=t[12],x=t[13],U=t[14],D=t[15],F=n*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,b=a*T+c*R+d*A+m*S,B=o*T+l*R+E*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+d*O+m*v,V=o*I+l*N+E*O+y*v,X=n*w+u*M+f*C+p*g,W=i*w+s*M+h*C+_*g,H=a*w+c*M+d*C+m*g,Y=o*w+l*M+E*C+y*g,k=n*P+u*x+f*U+p*D,j=i*P+s*x+h*U+_*D,K=a*P+c*x+d*U+m*D,Z=o*P+l*x+E*U+y*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=X,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],w=n*p+o*_+c*m,M=i*p+u*_+l*m,C=a*p+s*_+f*m,g=n*y+o*T+c*R,P=i*y+u*T+l*R,x=a*y+s*T+f*R,U=n*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=n*N+o*O+c*v+h,b=i*N+u*O+l*v+d,B=a*N+s*O+f*v+E;return r[0]=w,r[1]=M,r[2]=C,r[3]=0,r[4]=g,r[5]=P,r[6]=x,r[7]=0,r[8]=U,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,w=n*y+o*T+c*R,M=i*y+u*T+l*R,C=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=w,r[9]=M,r[10]=C,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],w=m*v,M=S*O,C=_*v,g=S*N,P=_*O,x=m*N,U=p*v,D=S*I,F=p*O,L=m*I,b=p*N,B=_*I,z=w*h+g*d+P*E-(M*h+C*d+x*E),q=M*f+U*d+L*E-(w*f+D*d+F*E),G=C*f+D*h+b*E-(g*f+U*h+B*E),V=x*f+F*h+B*d-(P*f+L*h+b*d),X=M*i+C*a+x*o-(w*i+g*a+P*o),W=w*n+D*a+F*o-(M*n+U*a+L*o),H=g*n+U*i+B*o-(C*n+D*i+b*o),Y=P*n+L*i+b*a-(x*n+F*i+B*a);w=a*E,M=o*d,C=i*E,g=o*h,P=i*d,x=a*h,U=n*E,D=o*f,F=n*d,L=a*f,b=n*h,B=i*f;var k=w*N+g*O+P*v-(M*N+C*O+x*v),j=M*I+U*O+L*v-(w*I+D*O+F*v),K=C*I+D*N+b*v-(g*I+U*N+B*v),Z=x*I+F*N+B*O-(P*I+L*N+b*O),J=C*m+x*S+M*_-(P*S+w*_+g*m),Q=F*S+w*p+D*m-(U*m+L*S+M*p),$=U*_+B*S+g*p-(b*S+C*p+D*_),ee=b*m+P*p+L*_-(F*_+B*m+x*p),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=X*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,w=a.y,M=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),w<u.y&&e.clone(a,u),w>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),P=e.magnitudeSquared(e.subtract(f,s,A)),x=o,U=c,D=C;g>D&&(D=g,x=u,U=l),P>D&&(D=P,x=s,U=f);var F=S;F.x=.5*(x.x+U.x),F.y=.5*(x.y+U.y),F.z=.5*(x.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=I;B.x=o.x,B.y=u.y,B.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);b=.5*(b+W),L=b*b;var H=W-b;F.x=(b*F.x+H*a.x)/W,F.y=(b*F.y+H*a.y)/W,F.z=(b*F.z+H*a.z)/W}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var w=new o,M=new e,C=new e,g=new t,P=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,w),h.southwest(t,g),g.height=a,h.northeast(t,P),P.height=o;var s=r.project(g,M),c=r.project(P,C),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var x=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,x);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),w=e.clone(u,T),M=t.length;for(s=0;s<M;s+=a){var C=t[s]+r.x,g=t[s+1]+r.y,P=t[s+2]+r.z;u.x=C,u.y=g,u.z=P,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),P<f.z&&e.clone(u,f),P>w.z&&e.clone(u,w)}var x=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(w,f,A)),F=c,L=h,b=x;U>b&&(b=U,F=l,L=v),D>b&&(b=D,F=f,L=w);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var V=N;V.x=h.x,V.y=v.y,V.z=w.z;var X=e.midpoint(G,V,O),W=0;for(s=0;s<M;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<W?(e.clone(B,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var w=t[o]+r[o],M=t[o+1]+r[o+1],C=t[o+2]+r[o+2];a.x=w,a.y=M,a.z=C,w<u.x&&e.clone(a,u),w>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),P=e.magnitudeSquared(e.subtract(f,s,A)),x=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=g;P>F&&(F=P,U=s,D=f),x>F&&(F=x,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),V=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>b){var H=Math.sqrt(W);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y) -},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(w)&&(w=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(w=!0,M=o(e[1]))}return w}function l(){return c()&&M}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function d(){if(!t(P)){P=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(P=!0,x=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(P=!0,x=o(e[1]))}return P}function E(){return d()&&x}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(N.appVersion)),b}function T(){return m()&&L}function R(){return t(B)||(B=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,w,M,C,g,P,x,U,D,F,L,b,B,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i, -t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,E=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,w=new s,M=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,w);s.multiply(a,n,M);var o=s.log(M,O);s.multiply(a,t,M);var u=s.log(M,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,w),s.multiply(r,w,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,w),u=s.slerp(r,n,i,M);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,P=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;P[F]=1/(L*b),x[F]=L/b}return P[7]=g/136,x[7]=8*g/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)U[f]=(P[f]*c-x[f])*o,D[f]=(P[f]*l-x[f])*o;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,C);return s.multiplyByScalar(t,h,n),s.add(E,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,w),u=s.fastSlerp(r,n,i,M);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,w=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,M=u[0],C=u[1];if(null!==(u=M.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(R)))r=+u[1],s=+u[2];else if(null!==(u=M.match(T)))r=+u[1];else{var g;if(null!==(u=M.match(A)))r=+u[1],g=+u[2],a=o(r);else if(null!==(u=M.match(S))){r=+u[1];var P=+u[2],x=+u[3]||0,U=new Date(Date.UTC(r,0,4));g=7*P+x-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(C)){u=C.match(w),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,_-=b;break;case"-":h+=L,_+=b;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var B=60===y;for(B&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=E(r,s,l,h,_,y,N);return n(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var M=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,M);n(i)||(p.addSeconds(e,-1,M),i=h(M,M),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,E,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],w.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],w.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,w=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=w,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return w.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){d(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?g(a,t._queryParameters,n):a,e.query=void 0}function w(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function P(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0, -this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function x(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return P._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,x({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},P._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,U(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();P.createIfNeeded=function(e){return e instanceof P?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new P({url:e})};var G;P.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=P.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(P,{isBlobSupported:{get:function(){return q}}}),s(P.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),P.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&w(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},P.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},P.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},P.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},P.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},P.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},P.prototype.clone=function(e){return u(e)||(e=new P({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},P.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},P.prototype.appendForwardSlash=function(){this._url=r(this._url)},P.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},P.fetchArrayBuffer=function(e){return new P(e).fetchArrayBuffer()},P.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},P.fetchBlob=function(e){return new P(e).fetchBlob()},P.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return x({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return P.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return P.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new P({url:t}),x({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},P.fetchImage=function(e){return new P(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},P.prototype.fetchText=function(){return this.fetch({responseType:"text"})},P.fetchText=function(e){return new P(e).fetchText()},P.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},P.fetchJson=function(e){return new P(e).fetchJson()},P.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},P.fetchXML=function(e){return new P(e).fetchXML()},P.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},P.fetchJsonp=function(e){return new P(e).fetchJsonp(e.callbackParameterName)},P.prototype._makeRequest=function(e){var r=this;C(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=P._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;P.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},P.fetch=function(e){return new P(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},P.delete=function(e){return new P(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},P.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},P.head=function(e){return new P(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},P.options=function(e){return new P(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.post=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},P.post=function(e){return new P(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.put=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},P.put=function(e){return new P(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P.prototype.patch=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},P.patch=function(e){return new P(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},P._Implementations={},P._Implementations.createImage=function(e,t,r,n,i){P.supportsImageBitmapOptions().then(function(n){return n&&i?P.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return P.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},P.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return P._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},P._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},P._DefaultImplementations={},P._DefaultImplementations.createImage=P._Implementations.createImage,P._DefaultImplementations.loadWithXhr=P._Implementations.loadWithXhr,P._DefaultImplementations.loadAndExecuteScript=P._Implementations.loadAndExecuteScript,P.DEFAULT=l(new P({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),P}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,w=t(v,O,d);if(w<0){var M=new u(O,I);v.splice(~w,0,M)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?E=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);r.x+=T[E]*d[A++],r.y+=T[E]*d[A++],r.s+=T[E]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,w=new r,M=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,w),"east"!==t&&"west"!==t&&r.multiplyByScalar(w,c,w),r.unpack(I[i],0,M),"east"!==i&&"west"!==i&&r.multiplyByScalar(M,c,M)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],w=O[t],M=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=w.x,s[5]=w.y,s[6]=w.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new r(1,1,1),P=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,g,P);return a=i(e,n,a),y.multiply(a,s,a)};var x=new y,U=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,x),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,b=new y,B=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var V=new E(0,0,0),X=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,X);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),w=Math.sin(r.xPoleWander),M=Math.sin(r.yPoleWander),C=n-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,P=Math.cos(g),x=Math.sin(g),U=H;return U[0]=O*P,U[1]=O*x,U[2]=w,U[3]=-v*x+M*w*P,U[4]=v*P+M*w*x,U[5]=-M*O,U[6]=-M*x-v*w*P,U[7]=M*P-v*w*x,U[8]=v*O,m.multiply(N,U,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new d,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=E.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),w=f.inverse(_,T),M=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)r.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(w,g,g),M[u].x=g.x,M[u].y=g.y;var P=d.fromAxisAngle(t.UNIT_Z,-i,N),x=l.fromQuaternion(P,O),U=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)g=f.multiplyByPointAsVector(w,n[u],g),g=l.multiplyByVector(x,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),b=Math.max(b,g.y);var B=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=b,z[2].x=L,z[2].y=F;var q=M[0],G=M[2].x-q.x,V=M[1].y-q.y;for(u=0;u<3;u++){var X=z[u];c.multiplyByVector(B,X,X),X.x=(X.x-q.x)/G,X.y=(X.y-q.y)/V}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=n(new i({position:!0})),i.POSITION_AND_NORMAL=n(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=n(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=n(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=n(new i({position:!0,color:!0})),i.ALL=n(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},i.unpack=function(r,n,a){return n=e(n,0),t(a)||(a=new i),a.position=1===r[n++],a.normal=1===r[n++],a.st=1===r[n++],a.tangent=1===r[n++],a.bitangent=1===r[n++],a.color=1===r[n],a},i.clone=function(e,r){if(t(e))return t(r)||(r=new i),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},i}),define("Core/EllipsoidGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_){"use strict";function m(e){e=a(e,a.EMPTY_OBJECT);var t=a(e.radii,I),r=Math.round(a(e.stackPartitions,64)),i=Math.round(a(e.slicePartitions,64)),o=a(e.vertexFormat,_.DEFAULT);this._radii=n.clone(t),this._stackPartitions=r,this._slicePartitions=i,this._vertexFormat=_.clone(o),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}var y=new n,T=new n,R=new n,A=new n,S=new n,I=new n(1,1,1),N=Math.cos,O=Math.sin;m.packedLength=n.packedLength+_.packedLength+3,m.pack=function(e,t,r){return r=a(r,0),n.pack(e._radii,t,r),r+=n.packedLength,_.pack(e._vertexFormat,t,r),r+=_.packedLength,t[r++]=e._stackPartitions,t[r++]=e._slicePartitions,t[r]=a(e._offsetAttribute,-1),t};var v=new n,w=new _,M={radii:v,vertexFormat:w,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};m.unpack=function(e,t,r){t=a(t,0);var i=n.unpack(e,t,v);t+=n.packedLength;var u=_.unpack(e,t,w);t+=_.packedLength;var s=e[t++],c=e[t++],l=e[t];return o(r)?(r._radii=n.clone(i,r._radii),r._vertexFormat=_.clone(u,r._vertexFormat),r._stackPartitions=s,r._slicePartitions=c,r._offsetAttribute=-1===l?void 0:l,r):(M.stackPartitions=s,M.slicePartitions=c,M.offsetAttribute=-1===l?void 0:l,new m(M))},m.createGeometry=function(a){var u=a._radii;if(!(u.x<=0||u.y<=0||u.z<=0)){var _,m,I=s.fromCartesian3(u),v=a._vertexFormat,w=a._slicePartitions+1,M=a._stackPartitions+1,C=M*w,g=new Float64Array(3*C),P=6*(w-1)*(M-2),x=d.createTypedArray(C,P),U=v.normal?new Float32Array(3*C):void 0,D=v.tangent?new Float32Array(3*C):void 0,F=v.bitangent?new Float32Array(3*C):void 0,L=v.st?new Float32Array(2*C):void 0,b=new Array(w),B=new Array(w),z=0;for(_=0;_<w;_++){var q=E.TWO_PI*_/(w-1);b[_]=N(q),B[_]=O(q),g[z++]=0,g[z++]=0,g[z++]=u.z}for(_=1;_<M-1;_++){var G=Math.PI*_/(M-1),V=O(G),X=u.x*V,W=u.y*V,H=u.z*N(G);for(m=0;m<w;m++)g[z++]=b[m]*X,g[z++]=B[m]*W,g[z++]=H}for(_=0;_<w;_++)g[z++]=0,g[z++]=0,g[z++]=-u.z;var Y=new f;v.position&&(Y.position=new l({componentDatatype:i.DOUBLE,componentsPerAttribute:3,values:g}));var k=0,j=0,K=0,Z=0;if(v.st||v.normal||v.tangent||v.bitangent){for(_=0;_<C;_++){var J=n.fromArray(g,3*_,y),Q=I.geodeticSurfaceNormal(J,T);if(v.st){var $=r.negate(Q,S);r.magnitude($)<E.EPSILON6&&(z=3*(_+w*Math.floor(.5*M)),z>g.length&&(z=3*(_-w*Math.floor(.5*M))),n.fromArray(g,z,$),I.geodeticSurfaceNormal($,$),r.negate($,$)),L[k++]=Math.atan2($.y,$.x)/E.TWO_PI+.5,L[k++]=Math.asin(Q.z)/Math.PI+.5}if(v.normal&&(U[j++]=Q.x,U[j++]=Q.y,U[j++]=Q.z),v.tangent||v.bitangent){var ee=R;if(_<w||_>C-w-1?(n.cross(n.UNIT_X,Q,ee),n.normalize(ee,ee)):(n.cross(n.UNIT_Z,Q,ee),n.normalize(ee,ee)),v.tangent&&(D[K++]=ee.x,D[K++]=ee.y,D[K++]=ee.z),v.bitangent){var te=n.cross(Q,ee,A);n.normalize(te,te),F[Z++]=te.x,F[Z++]=te.y,F[Z++]=te.z}}}v.st&&(Y.st=new l({componentDatatype:i.FLOAT,componentsPerAttribute:2,values:L})),v.normal&&(Y.normal=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:U})),v.tangent&&(Y.tangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:D})),v.bitangent&&(Y.bitangent=new l({componentDatatype:i.FLOAT,componentsPerAttribute:3,values:F}))}if(o(a._offsetAttribute)){var re=g.length,ne=new Uint8Array(re/3),ie=a._offsetAttribute===h.NONE?0:1;e(ne,ie),Y.applyOffset=new l({componentDatatype:i.UNSIGNED_BYTE,componentsPerAttribute:1,values:ne})}for(z=0,m=0;m<w-1;m++)x[z++]=w+m,x[z++]=w+m+1,x[z++]=m+1;var ae,oe;for(_=1;_<M-2;_++)for(ae=_*w,oe=(_+1)*w,m=0;m<w-1;m++)x[z++]=oe+m,x[z++]=oe+m+1,x[z++]=ae+m+1,x[z++]=oe+m,x[z++]=ae+m+1,x[z++]=ae+m;for(_=M-2,ae=_*w,oe=(_+1)*w,m=0;m<w-1;m++)x[z++]=oe+m,x[z++]=ae+m+1,x[z++]=ae+m;return new c({attributes:Y,indices:x,primitiveType:p.TRIANGLES,boundingSphere:t.fromEllipsoid(I),offsetAttribute:a._offsetAttribute})}};var C;return m.getUnitEllipsoid=function(){return o(C)||(C=m.createGeometry(new m({radii:new n(1,1,1),vertexFormat:_.POSITION_ONLY}))),C},m}),define("Core/SphereGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipsoidGeometry","./VertexFormat"],function(e,t,r,n,i,a){"use strict";function o(t){var n=r(t.radius,1),a=new e(n,n,n),o={radii:a,stackPartitions:t.stackPartitions,slicePartitions:t.slicePartitions,vertexFormat:t.vertexFormat};this._ellipsoidGeometry=new i(o),this._workerName="createSphereGeometry"}o.packedLength=i.packedLength,o.pack=function(e,t,r){return i.pack(e._ellipsoidGeometry,t,r)};var u=new i,s={radius:void 0,radii:new e,vertexFormat:new a,stackPartitions:void 0,slicePartitions:void 0};return o.unpack=function(t,r,c){var l=i.unpack(t,r,u);return s.vertexFormat=a.clone(l._vertexFormat,s.vertexFormat),s.stackPartitions=l._stackPartitions,s.slicePartitions=l._slicePartitions,n(c)?(e.clone(l._radii,s.radii),c._ellipsoidGeometry=new i(s),c):(s.radius=l._radii.x,new o(s))},o.createGeometry=function(e){return i.createGeometry(e._ellipsoidGeometry)},o}),define("Workers/createSphereGeometry",["../Core/defined","../Core/SphereGeometry"],function(e,t){"use strict";return function(r,n){return e(n)&&(r=t.unpack(r,n)),t.createGeometry(r)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as r}from"./chunk-XQG25LEF.js";import"./chunk-6UMNSGJM.js";import{a as m}from"./chunk-QNEABTP2.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as s}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as l}from"./chunk-WHQYJFDH.js";import{b as p}from"./chunk-OYWUGDKS.js";import{e as c}from"./chunk-DRYFJEFT.js";function n(e){let t=l(e.radius,1),o={radii:new s(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new r(o),this._workerName="createSphereGeometry"}n.packedLength=r.packedLength;n.pack=function(e,t,a){return p.typeOf.object("value",e),r.pack(e._ellipsoidGeometry,t,a)};var f=new r,i={radius:void 0,radii:new s,vertexFormat:new m,stackPartitions:void 0,slicePartitions:void 0};n.unpack=function(e,t,a){let o=r.unpack(e,t,f);return i.vertexFormat=m.clone(o._vertexFormat,i.vertexFormat),i.stackPartitions=o._stackPartitions,i.slicePartitions=o._slicePartitions,c(a)?(s.clone(o._radii,i.radii),a._ellipsoidGeometry=new r(i),a):(i.radius=o._radii.x,new n(i))};n.createGeometry=function(e){return r.createGeometry(e._ellipsoidGeometry)};var d=n;function u(e,t){return c(t)&&(e=d.unpack(e,t)),d.createGeometry(e)}var v=u;export{v as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js index 8f58177b0..e930c6f63 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createSphereOutlineGeometry.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,E=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,i){if("function"==typeof e.fill)return e.fill(r,n,i);for(var a=e.length>>>0,o=t(n,0),u=o<0?Math.max(a+o,0):Math.min(o,a),s=t(i,a),c=s<0?Math.max(a+s,0):Math.min(s,a);u<c;)e[u]=r,u++;return e}return n}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,E=i.y,p=i.z,_=l*l*d*d,m=f*f*E*E,y=h*h*p*p,T=_+m+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,I=u.y,N=u.z,O=o;O.x=A.x*S*2,O.y=A.y*I*2,O.z=A.z*N*2;var v,M,w,C,g,U,P,x,D,F,L,B=(1-R)*e.magnitude(r)/(.5*e.magnitude(O)),b=0;do{B-=b,w=1/(1+B*S),C=1/(1+B*I),g=1/(1+B*N),U=w*w,P=C*C,x=g*g,D=U*w,F=P*C,L=x*g,v=_*U+m*P+y*x-1,M=_*D*S+m*F*I+y*L*N;b=v/(-2*M)}while(Math.abs(v)>n.EPSILON12);return t(c)?(c.x=l*w,c.y=f*C,c.z=h*g,c):new e(l*w,f*C,h*g)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var E=n(r)?r.oneOverRadii:f,p=n(r)?r.oneOverRadiiSquared:h,_=n(r)?r._centerToleranceSquared:d,m=o(t,E,p,_,c);if(n(m)){var y=e.multiplyComponents(m,p,s);y=e.normalize(y,y);var T=e.subtract(t,m,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,p=new e,_=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,E),u=e.subtract(r,a,_),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(p[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],E[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=E[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,_=e[s.getElementIndex(h,h)],m=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(_-m)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-u-f+d,p=2*(i-h),_=2*(a+l),m=2*(i+h),y=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+d;return n(t)?(t[0]=E,t[1]=m,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=_,t[7]=T,t[8]=S,t):new s(E,p,_,m,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,E=a*i+c*o*u,p=-c*i+a*o*u,_=-o,m=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=_,t[3]=f,t[4]=E,t[5]=m,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,E,p,_,m,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],p=[2,2,1],_=new s,m=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,_),s.transpose(_,m),s.multiply(h,_,h),s.multiply(m,h,h),s.multiply(o,_,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c) -;return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,E,p,_){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(p,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(_,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,p=t.y*t.w,_=t.z*t.z,m=t.z*t.w,y=t.w*t.w,T=s-d-_+y,R=2*(c-m),A=2*(f+p),S=2*(c+m),I=-s+d-_+y,N=2*(E-h),O=2*(f-p),v=2*(E+h),M=-s-d+_+y;return n[0]=T*a,n[1]=S*a,n[2]=O*a,n[3]=0,n[4]=R*o,n[5]=I*o,n[6]=v*o,n[7]=0,n[8]=A*u,n[9]=N*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,p=f.y,_=f.z,m=d.x,y=d.y,T=d.z,R=n.x,A=n.y,S=n.z,I=u*-R+s*-A+c*-S,N=m*-R+y*-A+T*-S,O=E*R+p*A+_*S;return i(r)?(r[0]=u,r[1]=m,r[2]=-E,r[3]=0,r[4]=s,r[5]=y,r[6]=-p,r[7]=0,r[8]=c,r[9]=T,r[10]=-_,r[11]=0,r[12]=I,r[13]=N,r[14]=O,r[15]=1,r):new l(u,s,c,I,m,y,T,N,-E,-p,-_,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,E=f,p=a+c,_=o+l,m=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=E,i[11]=0,i[12]=p,i[13]=_,i[14]=m,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var i=l.getScale(t,E),a=e.divideComponents(r,i,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var p=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),r};var _=new e;l.getMaximumScale=function(t){return l.getScale(t,_),e.maximumComponent(_)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],p=e[12],_=e[13],m=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],I=t[4],N=t[5],O=t[6],v=t[7],M=t[8],w=t[9],C=t[10],g=t[11],U=t[12],P=t[13],x=t[14],D=t[15],F=n*T+u*R+f*A+p*S,L=i*T+s*R+h*A+_*S,B=a*T+c*R+d*A+m*S,b=o*T+l*R+E*A+y*S,z=n*I+u*N+f*O+p*v,q=i*I+s*N+h*O+_*v,G=a*I+c*N+d*O+m*v,X=o*I+l*N+E*O+y*v,V=n*M+u*w+f*C+p*g,W=i*M+s*w+h*C+_*g,H=a*M+c*w+d*C+m*g,Y=o*M+l*w+E*C+y*g,k=n*U+u*P+f*x+p*D,j=i*U+s*P+h*x+_*D,K=a*U+c*P+d*x+m*D,Z=o*U+l*P+E*x+y*D;return r[0]=F,r[1]=L,r[2]=B,r[3]=b,r[4]=z,r[5]=q,r[6]=G,r[7]=X,r[8]=V,r[9]=W,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],p=t[0],_=t[1],m=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],I=t[10],N=t[12],O=t[13],v=t[14],M=n*p+o*_+c*m,w=i*p+u*_+l*m,C=a*p+s*_+f*m,g=n*y+o*T+c*R,U=i*y+u*T+l*R,P=a*y+s*T+f*R,x=n*A+o*S+c*I,D=i*A+u*S+l*I,F=a*A+s*S+f*I,L=n*N+o*O+c*v+h,B=i*N+u*O+l*v+d,b=a*N+s*O+f*v+E;return r[0]=M,r[1]=w,r[2]=C,r[3]=0,r[4]=g,r[5]=U,r[6]=P,r[7]=0,r[8]=x,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=B,r[14]=b,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],p=t[3],_=t[4],m=t[5],y=t[6],T=t[7],R=t[8],A=n*h+o*d+c*E,S=i*h+u*d+l*E,I=a*h+s*d+f*E,N=n*p+o*_+c*m,O=i*p+u*_+l*m,v=a*p+s*_+f*m,M=n*y+o*T+c*R,w=i*y+u*T+l*R,C=a*y+s*T+f*R;return r[0]=A,r[1]=S,r[2]=I,r[3]=0,r[4]=N,r[5]=O,r[6]=v,r[7]=0,r[8]=M,r[9]=w,r[10]=C,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var m=new e;l.multiplyByUniformScale=function(e,t,r){return m.x=t,m.y=t,m.z=t,l.multiplyByScale(e,m,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],E=e[13],p=e[2],_=e[6],m=e[10],S=e[14],I=e[3],N=e[7],O=e[11],v=e[15],M=m*v,w=S*O,C=_*v,g=S*N,U=_*O,P=m*N,x=p*v,D=S*I,F=p*O,L=m*I,B=p*N,b=_*I,z=M*h+g*d+U*E-(w*h+C*d+P*E),q=w*f+x*d+L*E-(M*f+D*d+F*E),G=C*f+D*h+B*E-(g*f+x*h+b*E),X=P*f+F*h+b*d-(U*f+L*h+B*d),V=w*i+C*a+P*o-(M*i+g*a+U*o),W=M*n+D*a+F*o-(w*n+x*a+L*o),H=g*n+x*i+b*o-(C*n+D*i+B*o),Y=U*n+L*i+B*a-(P*n+F*i+b*a);M=a*E,w=o*d,C=i*E,g=o*h,U=i*d,P=a*h,x=n*E,D=o*f,F=n*d,L=a*f,B=n*h,b=i*f;var k=M*N+g*O+U*v-(w*N+C*O+P*v),j=w*I+x*O+L*v-(M*I+D*O+F*v),K=C*I+D*N+B*v-(g*I+x*N+b*v),Z=P*I+F*N+b*O-(U*I+L*N+B*O),J=C*m+P*S+w*_-(U*S+M*_+g*m),Q=F*S+M*p+D*m-(x*m+L*S+w*p),$=x*_+b*S+g*p-(B*S+C*p+D*_),ee=B*m+U*p+L*_-(F*_+b*m+P*p),te=n*z+i*q+a*G+o*X;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=X*te,r[4]=V*te,r[5]=W*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-i*d,p=-a*f-o*h-u*d,_=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=p,t[14]=_,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),o=Math.max(o,E)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,p=e.length;E<p;E++){var _=t.cartesianToCartographic(e[E]);o=Math.min(o,_.longitude),c=Math.max(c,_.longitude),h=Math.min(h,_.latitude),d=Math.max(d,_.latitude);var m=_.longitude>=0?_.longitude:_.longitude+u.TWO_PI;l=Math.min(l,m),f=Math.max(f,m)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,p=c;p.height=i,p.longitude=E,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var _=1;_<8;++_)p.longitude=-Math.PI+_*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=E,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,p=new e,_=new e,m=new e,y=new e,T=new e,R=new e,A=new e,S=new e,I=new e,N=new e,O=new e,v=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,E),u=e.clone(a,p),s=e.clone(a,_),c=e.clone(a,m),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var v=a.x,M=a.y,w=a.z;v<o.x&&e.clone(a,o),v>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var C=e.magnitudeSquared(e.subtract(c,o,A)),g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),P=o,x=c,D=C;g>D&&(D=g,P=u,x=l),U>D&&(D=U,P=s,x=f);var F=S;F.x=.5*(P.x+x.x),F.y=.5*(P.y+x.y),F.z=.5*(P.z+x.z);var L=e.magnitudeSquared(e.subtract(x,F,A)),B=Math.sqrt(L),b=I;b.x=o.x,b.y=u.y,b.z=s.z;var z=N;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(b,z,O),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var X=e.magnitude(e.subtract(a,q,A));X>G&&(G=X);var V=e.magnitudeSquared(e.subtract(a,F,A));if(V>L){var W=Math.sqrt(V);B=.5*(B+W),L=B*B;var H=W-B;F.x=(B*F.x+H*a.x)/W,F.y=(B*F.y+H*a.y)/W,F.z=(B*F.z+H*a.z)/W}}return B<G?(e.clone(F,r.center),r.radius=B):(e.clone(q,r.center),r.radius=G),r};var M=new o,w=new e,C=new e,g=new t,U=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,g),g.height=a,h.northeast(t,U),U.height=o;var s=r.project(g,w),c=r.project(U,C),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*E,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,E),l=e.clone(u,p),f=e.clone(u,_),h=e.clone(u,m),v=e.clone(u,y),M=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var C=t[s]+r.x,g=t[s+1]+r.y,U=t[s+2]+r.z;u.x=C,u.y=g,u.z=U,C<c.x&&e.clone(u,c),C>h.x&&e.clone(u,h),g<l.y&&e.clone(u,l),g>v.y&&e.clone(u,v),U<f.z&&e.clone(u,f),U>M.z&&e.clone(u,M)}var P=e.magnitudeSquared(e.subtract(h,c,A)),x=e.magnitudeSquared(e.subtract(v,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,B=P;x>B&&(B=x,F=l,L=v),D>B&&(B=D,F=f,L=M);var b=S;b.x=.5*(F.x+L.x),b.y=.5*(F.y+L.y),b.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,b,A)),q=Math.sqrt(z),G=I;G.x=c.x,G.y=l.y,G.z=f.z;var X=N;X.x=h.x,X.y=v.y,X.z=M.z;var V=e.midpoint(G,X,O),W=0;for(s=0;s<w;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,V,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,b,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;b.x=(q*b.x+j*u.x)/k,b.y=(q*b.y+j*u.y)/k,b.z=(q*b.z+j*u.z)/k}}return q<W?(e.clone(b,o.center),o.radius=q):(e.clone(V,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,m),f=e.clone(a,y),h=e.clone(a,T),v=t.length;for(o=0;o<v;o+=3){var M=t[o]+r[o],w=t[o+1]+r[o+1],C=t[o+2]+r[o+2];a.x=M,a.y=w,a.z=C,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),C<c.z&&e.clone(a,c),C>h.z&&e.clone(a,h)}var g=e.magnitudeSquared(e.subtract(l,u,A)),U=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),x=u,D=l,F=g;U>F&&(F=U,x=s,D=f),P>F&&(F=P,x=c,D=h);var L=S;L.x=.5*(x.x+D.x),L.y=.5*(x.y+D.y),L.z=.5*(x.z+D.z);var B=e.magnitudeSquared(e.subtract(D,L,A)),b=Math.sqrt(B),z=I;z.x=u.x,z.y=s.y,z.z=c.z;var q=N;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,O),X=0;for(o=0;o<v;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var V=e.magnitude(e.subtract(a,G,A));V>X&&(X=V);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>B){var H=Math.sqrt(W);b=.5*(b+H),B=b*b;var Y=H-b;L.x=(b*L.x+Y*a.x)/H,L.y=(b*L.y+Y*a.y)/H,L.z=(b*L.z+Y*a.z)/H}}return b<X?(e.clone(L,n.center),n.radius=b):(e.clone(G,n.center),n.radius=X),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var x=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,x)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var B=new e,b=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,B),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var X=new e,V=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new o;return d.projectTo2D=function(t,r,i){r=n(r,Z);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,X),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,p=E[0];e.add(s,l,p),e.add(p,c,p),p=E[1],e.add(s,l,p),e.add(p,h,p),p=E[2],e.add(s,f,p),e.add(p,h,p),p=E[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=E[4],e.add(s,l,p),e.add(p,c,p),p=E[5],e.add(s,l,p),e.add(p,h,p),p=E[6],e.add(s,f,p),e.add(p,h,p),p=E[7],e.add(s,f,p),e.add(p,c,p);for(var _=E.length,m=0;m<_;++m){var y=E[m];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);r.project(T,y)}i=d.fromPoints(E,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return v*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen", -n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function i(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return p(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=m,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return _(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){E(e)}var c,l,f,h,d,E,p,_,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=o(),c)for(_=d.progress,p=function(e){h.push(e),--l||(E=p=m,d.reject(h))},E=function(e){f.push(e),--c||(E=p=m,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,_);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return _(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function E(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function p(e,t){for(var r,n=0;r=e[n++];)r(t)}function _(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function m(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(O)&&(O=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(O=!0,v=o(e[1]))}return O}function s(){return u()&&v}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(N.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(M=!0,w=o(e[1]))}return M}function l(){return c()&&w}function f(){if(!t(C)){C=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(N.userAgent);null!==e&&(C=!0,g=o(e[1]),g.isNightly=!!e[2])}return C}function h(){return f()&&g}function d(){if(!t(U)){U=!1;var e;"Microsoft Internet Explorer"===N.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,P=o(e[1])):"Netscape"===N.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(N.userAgent))&&(U=!0,P=o(e[1]))}return U}function E(){return d()&&P}function p(){if(!t(x)){x=!1;var e=/ Edge\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(x=!0,D=o(e[1]))}return x}function _(){return p()&&D}function m(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(N.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(B)||(B=/Windows/i.test(N.appVersion)),B}function T(){return m()&&L}function R(){return t(b)||(b=!m()&&"undefined"!=typeof PointerEvent&&(!t(N.pointerEnabled)||N.pointerEnabled)),b}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function I(){return I._result}var N;N="undefined"!=typeof navigator?navigator:{};var O,v,M,w,C,g,U,P,x,D,F,L,B,b,z,q;I._promise=void 0,I._result=void 0,I.initialize=function(){if(t(I._promise))return I._promise;var e=a.defer();if(I._promise=e.promise,p())return I._result=!1,e.resolve(I._result),e.promise;var r=new Image;return r.onload=function(){I._result=r.width>0&&r.height>0,e.resolve(I._result)},r.onerror=function(){I._result=!1,e.resolve(I._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(I,{initialized:{get:function(){return t(I._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var X={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:p,edgeVersion:_,isFirefox:m,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(N.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:I,imageRenderingValue:S,typedArrayTypes:G};return X.supportsFullscreen=function(){return i.supportsFullscreen()},X.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},X.supportsWebWorkers=function(){return"undefined"!=typeof Worker},X.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!X.isEdge()},X}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,i,a){"use strict";function o(e,t,n,i){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(i,0)}o.packedLength=4,o.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},o.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=-i,t[3]=r,t):new o(r,-i,i,r)},o.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,r){var n=2*t,i=e[n],a=e[n+1];return r.x=i,r.y=a,r},o.setColumn=function(e,t,r,n){n=o.clone(e,n);var i=2*t;return n[i]=r.x,n[i+1]=r.y,n},o.getRow=function(e,t,r){var n=e[t],i=e[t+2];return r.x=n,r.y=i,r},o.setRow=function(e,t,r,n){return n=o.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var u=new e;o.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],u)),r.y=e.magnitude(e.fromElements(t[2],t[3],u)),r};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=a,r[2]=i,r[3]=o,r},o.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},o.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},o.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=i,r},o.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},o.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var r=e[0],n=e[2],i=e[1],a=e[3];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},o.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],p=h+d+E;if(p>0)r=Math.sqrt(p+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var _=l,m=0;d>h&&(m=1),E>h&&E>d&&(m=2);var y=_[m],T=_[y];r=Math.sqrt(e[u.getElementIndex(m,m)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[m]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*r,R[y]=(e[u.getElementIndex(y,m)]+e[u.getElementIndex(m,y)])*r,R[T]=(e[u.getElementIndex(T,m)]+e[u.getElementIndex(m,T)])*r,i=-R[0],a=-R[1],o=-R[2]} -return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,E=new s,p=new s;s.fromHeadingPitchRoll=function(t,r){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(E,p,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var _=new e,m=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,_);var u=s.computeAngle(y);n[o]=_.x*u,n[o+1]=_.y*u,n[o+2]=_.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,m);var u=e.magnitude(m);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(m,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,E=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,I=new s,N=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return I=s.multiplyByScalar(e,Math.sin((1-r)*u),I),N=s.multiplyByScalar(a,Math.sin(r*u),N),n=s.add(I,N,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var O=new e,v=new e,M=new s,w=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,w);var o=s.log(w,O);s.multiply(a,t,w);var u=s.log(w,v);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var C=new s,g=1.9011074535173003,U=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],x=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,B=2*L+1;U[F]=1/(L*B),P[F]=L/B}return U[7]=g/136,P[7]=8*g/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)x[f]=(U[f]*c-P[f])*o,D[f]=(U[f]*l-P[f])*o;var h=i*r*(1+x[0]*(1+x[1]*(1+x[2]*(1+x[3]*(1+x[4]*(1+x[5]*(1+x[6]*(1+x[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,C);return s.multiplyByScalar(t,h,n),s.add(E,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,E,p,_,m;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",I=s.length,N=0;s&&N<I;N++)switch(s.charAt(N)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(N+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,m=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(m),y,c,f,R,S);case"c":return u(String.fromCharCode(+m),y,c,f,R);case"b":return o(m,2,A,y,c,f,R);case"o":return o(m,8,A,y,c,f,R);case"x":return o(m,16,A,y,c,f,R);case"X":return o(m,16,A,y,c,f,R).toUpperCase();case"u":return o(m,10,A,y,c,f,R);case"i":case"d":return d=+m||0,d=Math.round(d-d%1),E=d<0?"-":T,m=E+i(String(Math.abs(d)),f,"0",!1),a(m,E,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+m,E=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],_=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],m=E+Math.abs(d)[p](f),a(m,E,y,c,R)[_]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){p.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}p.addSeconds(e,i,e)}function h(e,r){y.julianDate=e;var n=p.leapSeconds,i=t(n,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-n[0].offset,r);if(i>=n.length)return p.addSeconds(e,-n[i-1].offset,r);var a=p.secondsDifference(n[i].julianDate,e);return 0===a?p.addSeconds(e,-n[i].offset,r):a<=1?void 0:p.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var _=new a,m=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,I=/^(\d{4})-?(\d{2})-?(\d{2})$/,N=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+N.source,v=/^(\d{2}):?(\d{2})(\.\d+)?/.source+N.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+N.source;p.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new p(r[0],r[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,_=0,y=0,N=0,w=u[0],C=u[1];if(null!==(u=w.match(I)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))r=+u[1],s=+u[2];else if(null!==(u=w.match(T)))r=+u[1];else{var g;if(null!==(u=w.match(A)))r=+u[1],g=+u[2],a=o(r);else if(null!==(u=w.match(S))){r=+u[1];var U=+u[2],P=+u[3]||0,x=new Date(Date.UTC(r,0,4));g=7*U+P-x.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(g),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(C)){u=C.match(M),null!==u?(h=+u[1],_=+u[2],y=+u[3],N=1e3*+(u[4]||0),D=5):(u=C.match(v),null!==u?(h=+u[1],_=+u[2],y=60*+(u[3]||0),D=4):null!==(u=C.match(O))&&(h=+u[1],_=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],B=+(u[D+2]||0);switch(F){case"+":h-=L,_-=B;break;case"-":h+=L,_+=B;break;case"Z":break;default:_+=new Date(Date.UTC(r,s-1,l,h,_)).getTimezoneOffset()}}var b=60===y;for(b&&y--;_>=60;)_-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:m[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:m[s-1];for(;_<0;)_+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:m[s-1],l+=i;var z=E(r,s,l,h,_,y,N);return n(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),b&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var w=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var r=!1,i=h(e,w);n(i)||(p.addSeconds(e,-1,w),i=h(w,w),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var _=d+2-12*c|0,m=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(A+=1),n(t)?(t.year=m,t.month=_,t.day=E,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(m,_,E,y,R,A,S,r)},p.toDate=function(e){var t=p.toGregorianDate(e,_),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},p.toIso8601=function(t,r){var i=p.toGregorianDate(t,_),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(p.secondsDifference(e,t))<=r},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var r=p.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},p.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},p.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},p.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},p.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)},p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function _(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function m(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,N.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(_(e)).otherwise(m(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--O[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,I=new u({comparator:f});I.maximumLength=S,I.reserve(S);var N=[],O={},v="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;I.length>e;){var t=I.pop();T(t)}S=e,I.maximumLength=e,I.reserve(e)}}}),h.update=function(){var e,t,r=0,n=N.length;for(e=0;e<n;++e)t=N[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(N[e-r]=t):++r;N.length-=r;var i=I.internalArray,a=I.length;for(e=0;e<a;++e)d(i[e]);I.resort();for(var o=Math.max(h.maximumRequests-N.length,0),u=0;u<o&&I.length>0;)t=I.pop(),t.cancelled?T(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(v);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=O[n];return i(a)||(O[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(N.length>=h.maximumRequests)){d(e);var t=I.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;I.length>0;){T(I.pop())}for(var e=N.length,t=0;t<e;++t)T(N[t]);N.length=0,O={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=I,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R,A,S,I,N,O){"use strict";function v(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?g(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function C(e){if(e.state===I.ISSUED||e.state===I.ACTIVE)throw new N("The Resource is already being fetched.");e.state=I.UNISSUED,e.deferred=void 0}function g(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function U(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}), -this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);v(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return U._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==I.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function x(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},U._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==I.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=I.UNISSUED,a.deferred=void 0,x(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function B(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(O.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new N("Error decompressing response.")):a.resolve(b(r,t))}):a.resolve(b(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();U.createIfNeeded=function(e){return e instanceof U?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new U({url:e})};var G;U.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=U.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(U,{isBlobSupported:{get:function(){return q}}}),s(U.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);v(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return _(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),U.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},U.prototype.setQueryParameters=function(e,t){this._queryParameters=t?g(this._queryParameters,e,!1):g(e,this._queryParameters,!1)},U.prototype.appendQueryParameters=function(e){this._queryParameters=g(e,this._queryParameters,!0)},U.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},U.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);v(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},U.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},U.prototype.clone=function(e){return u(e)||(e=new U({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},U.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},U.prototype.appendForwardSlash=function(){this._url=r(this._url)},U.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},U.fetchArrayBuffer=function(e){return new U(e).fetchArrayBuffer()},U.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},U.fetchBlob=function(e){return new U(e).fetchBlob()},U.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(C(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return U.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return U.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new U({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},U.fetchImage=function(e){return new U(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},U.prototype.fetchText=function(){return this.fetch({responseType:"text"})},U.fetchText=function(e){return new U(e).fetchText()},U.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},U.fetchJson=function(e){return new U(e).fetchJson()},U.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},U.fetchXML=function(e){return new U(e).fetchXML()},U.prototype.fetchJsonp=function(e){e=o(e,"callback"),C(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return x(this,e,t)},U.fetchJsonp=function(e){return new U(e).fetchJsonp(e.callbackParameterName)},U.prototype._makeRequest=function(e){var r=this;C(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=U._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==I.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=I.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var X=/^data:(.*?)(;base64)?,(.*)$/;U.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},U.fetch=function(e){return new U(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},U.delete=function(e){return new U(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},U.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},U.head=function(e){return new U(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},U.options=function(e){return new U(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.post=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},U.post=function(e){return new U(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.put=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},U.put=function(e){return new U(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U.prototype.patch=function(e,t){return n.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},U.patch=function(e){return new U(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},U._Implementations={},U._Implementations.createImage=function(e,t,r,n,i){U.supportsImageBitmapOptions().then(function(n){return n&&i?U.fetchBlob({url:e}):void B(e,t,r)}).then(function(e){if(u(e))return U.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},U.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return U._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=X.exec(e);if(null!==s)return void a.resolve(L(s,t));if(V)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new N("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},U._Implementations.loadAndExecuteScript=function(e,t,r){return m(e,t).otherwise(r.reject)},U._DefaultImplementations={},U._DefaultImplementations.createImage=U._Implementations.createImage,U._DefaultImplementations.loadWithXhr=U._Implementations.loadWithXhr,U._DefaultImplementations.loadAndExecuteScript=U._Implementations.loadAndExecuteScript,U.DEFAULT=l(new U({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),U}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||E<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var _=e._samples=r.samples,m=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=p,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=_.length;R<A;R+=e._columnCount){var S=_[R+i],I=_[R+p],N=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(N,I,f.TAI);if(m.push(O),T){if(I!==y&&n(y)){var v=o.leapSeconds,M=t(v,O,d);if(M<0){var w=new u(O,I);v.splice(~M,0,w)}}y=I}}}function p(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function _(e,t,r){return t+e*(r-t)}function m(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return p(e,r,i,s,u),u;if(n.equals(l))return p(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,E=r[h+e._ut1MinusUtcSecondsColumn],m=r[d+e._ut1MinusUtcSecondsColumn],y=m-E;if(y>.5||y<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?E=m:m-=R-T)}return u.xPoleWander=_(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=_(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=_(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=_(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=_(f,E,m),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),E=!n(h),p=E||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!E&&h.equals(e)&&++s,l=s+1,m(this,a,this._samples,e,s,l,r),r}var _=t(a,e,o.compare,this._dateColumn);return _>=0?(_<a.length-1&&a[_+1].equals(e)&&++_,s=_,l=_):(l=~_,(s=l-1)<0&&(s=0)),this._lastIndex=s,m(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=E.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var E,p,_=a-s*this._stepSizeDays,m=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(E=0;E<=u;++E)m[E]=_-R[E];for(E=0;E<=u;++E){for(T[E]=1,p=0;p<=u;++p)p!==E&&(T[E]*=m[p]);T[E]*=y[E];var A=3*(s+E);r.x+=T[E]*d[A++],r.y+=T[E]*d[A++],r.s+=T[E]*d[A]}return r}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p,_,m,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},I={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},N={},O={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},v=new r,M=new r,w=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(N[a])?n=N[a]:(n=function(n,a,s){if(u(s)||(s=new y),_.equalsEpsilon(n.x,0,_.EPSILON14)&&_.equalsEpsilon(n.y,0,_.EPSILON14)){var c=_.sign(n.z);r.unpack(I[e],0,v),"east"!==e&&"west"!==e&&r.multiplyByScalar(v,c,v),r.unpack(I[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(I[i],0,w),"east"!==i&&"west"!==i&&r.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,O.up);var l=O.up,h=O.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,O.east),r.cross(l,h,O.north),r.multiplyByScalar(O.up,-1,O.down),r.multiplyByScalar(O.east,-1,O.west),r.multiplyByScalar(O.north,-1,O.south),v=O[e],M=O[t],w=O[i]}return s[0]=v.x,s[1]=v.y,s[2]=v.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},N[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var C=new T,g=new r(1,1,1),U=new y;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,C),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,g,U);return a=i(e,n,a),y.multiply(a,s,a)};var P=new y,x=new m;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,P),o=y.getRotation(a,x);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new y,B=new y,b=new m,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,B);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,b),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=_.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%_.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new m(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new m);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return m.transpose(r,t)};var X=new E(0,0,0),V=new l(0,0,0,0,0,0),W=new m,H=new m;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new m);var r=A.earthOrientationParameters.compute(e,V);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,X);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=m.fromRotationZ(-a.s,H),h=m.multiply(l,f,W),d=e.dayNumber,E=e.secondsOfDay-p.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,T=E/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*_.TWO_PI;var I=m.fromRotationZ(S,H),N=m.multiply(h,I,W),O=Math.cos(r.xPoleWander),v=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),w=Math.sin(r.yPoleWander),C=n-2451545+i/R.SECONDS_PER_DAY;C/=36525;var g=-47e-6*C*_.RADIANS_PER_DEGREE/3600,U=Math.cos(g),P=Math.sin(g),x=H;return x[0]=O*U,x[1]=O*P,x[2]=M,x[3]=-v*P+w*M*U,x[4]=v*U+w*M*P,x[5]=-w*O,x[6]=-w*P-v*M*U,x[7]=w*U-v*M*P,x[8]=v*O,m.multiply(N,x,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,K=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,_.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new m),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new m,te=new y,re=new y;return A.basisTo2D=function(e,t,n){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,o,n),y.multiply(c,n,n),n},A}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}_.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&a(e.attributes[r])&&a(e.attributes[r].values)){var n=e.attributes[r],i=n.values.length/n.componentsPerAttribute;t=i}return t};var m=new r,y=new t,T=new f,R=[new r,new r,new r],A=[new e,new e,new e],S=[new e,new e,new e],I=new t,N=new d,O=new f,v=new c;return _._textureCoordinateRotationPoints=function(n,i,a,o){var u,s=E.center(o,m),h=r.toCartesian(s,a,y),_=p.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(_,T),w=A,C=R;C[0].longitude=o.west,C[0].latitude=o.south,C[1].longitude=o.west,C[1].latitude=o.north,C[2].longitude=o.east,C[2].latitude=o.south;var g=I;for(u=0;u<3;u++)r.toCartesian(C[u],a,g),g=f.multiplyByPointAsVector(M,g,g),w[u].x=g.x,w[u].y=g.y;var U=d.fromAxisAngle(t.UNIT_Z,-i,N),P=l.fromQuaternion(U,O),x=n.length,D=Number.POSITIVE_INFINITY,F=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,B=Number.NEGATIVE_INFINITY;for(u=0;u<x;u++)g=f.multiplyByPointAsVector(M,n[u],g),g=l.multiplyByVector(P,g,g),D=Math.min(D,g.x),F=Math.min(F,g.y),L=Math.max(L,g.x),B=Math.max(B,g.y);var b=c.fromRotation(i,v),z=S;z[0].x=D,z[0].y=F,z[1].x=D,z[1].y=B,z[2].x=L,z[2].y=F;var q=w[0],G=w[2].x-q.x,X=w[1].y-q.y;for(u=0;u<3;u++){var V=z[u];c.multiplyByVector(b,V,V),V.x=(V.x-q.x)/G,V.y=(V.y-q.y)/X}var W=z[0],H=z[1],Y=z[2],k=new Array(6);return e.pack(W,k),e.pack(H,k,2),e.pack(Y,k,4),k},_}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}), -define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/EllipsoidOutlineGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,E){"use strict";function p(e){e=i(e,i.EMPTY_OBJECT);var t=i(e.radii,_),n=Math.round(i(e.stackPartitions,10)),a=Math.round(i(e.slicePartitions,8)),o=Math.round(i(e.subdivisions,128));this._radii=r.clone(t),this._stackPartitions=n,this._slicePartitions=a,this._subdivisions=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}var _=new r(1,1,1),m=Math.cos,y=Math.sin;p.packedLength=r.packedLength+4,p.pack=function(e,t,n){return n=i(n,0),r.pack(e._radii,t,n),n+=r.packedLength,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=i(e._offsetAttribute,-1),t};var T=new r,R={radii:T,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};return p.unpack=function(e,t,n){t=i(t,0);var o=r.unpack(e,t,T);t+=r.packedLength;var u=e[t++],s=e[t++],c=e[t++],l=e[t];return a(n)?(n._radii=r.clone(o,n._radii),n._stackPartitions=u,n._slicePartitions=s,n._subdivisions=c,n._offsetAttribute=-1===l?void 0:l,n):(R.stackPartitions=u,R.slicePartitions=s,R.subdivisions=c,R.offsetAttribute=-1===l?void 0:l,new p(R))},p.createGeometry=function(r){var i=r._radii;if(!(i.x<=0||i.y<=0||i.z<=0)){var o,p,_,T,R,A,S=u.fromCartesian3(i),I=r._stackPartitions,N=r._slicePartitions,O=r._subdivisions,v=O*(I+N-1),M=v-N+2,w=new Float64Array(3*M),C=h.createTypedArray(M,2*v),g=0,U=new Array(O),P=new Array(O);for(o=0;o<O;o++)_=d.TWO_PI*o/O,U[o]=m(_),P[o]=y(_);for(o=1;o<I;o++)for(T=Math.PI*o/I,R=m(T),A=y(T),p=0;p<O;p++)w[g++]=i.x*U[p]*A,w[g++]=i.y*P[p]*A,w[g++]=i.z*R;for(U.length=N,P.length=N,o=0;o<N;o++)_=d.TWO_PI*o/N,U[o]=m(_),P[o]=y(_);for(w[g++]=0,w[g++]=0,w[g++]=i.z,o=1;o<O;o++)for(T=Math.PI*o/O,R=m(T),A=y(T),p=0;p<N;p++)w[g++]=i.x*U[p]*A,w[g++]=i.y*P[p]*A,w[g++]=i.z*R;for(w[g++]=0,w[g++]=0,w[g++]=-i.z,g=0,o=0;o<I-1;++o){var x=o*O;for(p=0;p<O-1;++p)C[g++]=x+p,C[g++]=x+p+1;C[g++]=x+O-1,C[g++]=x}var D=O*(I-1);for(p=1;p<N+1;++p)C[g++]=D,C[g++]=D+p;for(o=0;o<O-2;++o){var F=o*N+1+D,L=(o+1)*N+1+D;for(p=0;p<N-1;++p)C[g++]=L+p,C[g++]=F+p;C[g++]=L+N-1,C[g++]=F+N-1}var B=w.length/3-1;for(p=B-1;p>B-N-1;--p)C[g++]=B,C[g++]=p;var b=new l({position:new c({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:w})});if(a(r._offsetAttribute)){var z=w.length,q=new Uint8Array(z/3),G=r._offsetAttribute===f.NONE?0:1;e(q,G),b.applyOffset=new c({componentDatatype:n.UNSIGNED_BYTE,componentsPerAttribute:1,values:q})}return new s({attributes:b,indices:C,primitiveType:E.LINES,boundingSphere:t.fromEllipsoid(S),offsetAttribute:r._offsetAttribute})}},p}),define("Core/SphereOutlineGeometry",["./Cartesian3","./Check","./defaultValue","./defined","./EllipsoidOutlineGeometry"],function(e,t,r,n,i){"use strict";function a(t){var n=r(t.radius,1),a=new e(n,n,n),o={radii:a,stackPartitions:t.stackPartitions,slicePartitions:t.slicePartitions,subdivisions:t.subdivisions};this._ellipsoidGeometry=new i(o),this._workerName="createSphereOutlineGeometry"}a.packedLength=i.packedLength,a.pack=function(e,t,r){return i.pack(e._ellipsoidGeometry,t,r)};var o=new i,u={radius:void 0,radii:new e,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};return a.unpack=function(t,r,s){var c=i.unpack(t,r,o);return u.stackPartitions=c._stackPartitions,u.slicePartitions=c._slicePartitions,u.subdivisions=c._subdivisions,n(s)?(e.clone(c._radii,u.radii),s._ellipsoidGeometry=new i(u),s):(u.radius=c._radii.x,new a(u))},a.createGeometry=function(e){return i.createGeometry(e._ellipsoidGeometry)},a}),define("Workers/createSphereOutlineGeometry",["../Core/defined","../Core/SphereOutlineGeometry"],function(e,t){"use strict";return function(r,n){return e(n)&&(r=t.unpack(r,n)),t.createGeometry(r)}})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as t}from"./chunk-5NCMUEUX.js";import"./chunk-6UMNSGJM.js";import"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as d}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as l}from"./chunk-WHQYJFDH.js";import{b as u}from"./chunk-OYWUGDKS.js";import{e as a}from"./chunk-DRYFJEFT.js";function s(i){let e=l(i.radius,1),r={radii:new d(e,e,e),stackPartitions:i.stackPartitions,slicePartitions:i.slicePartitions,subdivisions:i.subdivisions};this._ellipsoidGeometry=new t(r),this._workerName="createSphereOutlineGeometry"}s.packedLength=t.packedLength;s.pack=function(i,e,o){return u.typeOf.object("value",i),t.pack(i._ellipsoidGeometry,e,o)};var m=new t,n={radius:void 0,radii:new d,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};s.unpack=function(i,e,o){let r=t.unpack(i,e,m);return n.stackPartitions=r._stackPartitions,n.slicePartitions=r._slicePartitions,n.subdivisions=r._subdivisions,a(o)?(d.clone(r._radii,n.radii),o._ellipsoidGeometry=new t(n),o):(n.radius=r._radii.x,new s(n))};s.createGeometry=function(i){return t.createGeometry(i._ellipsoidGeometry)};var c=s;function p(i,e){return a(e)&&(i=c.unpack(i,e)),c.createGeometry(i)}var w=p;export{w as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js new file mode 100644 index 000000000..bfeedfe8f --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createTaskProcessorWorker.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a}from"./chunk-3R25OJXK.js";import"./chunk-DRYFJEFT.js";export{a as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js new file mode 100644 index 000000000..631cb868d --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileClampedPolylines.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as J}from"./chunk-3R25OJXK.js";import{a as Y}from"./chunk-H3L4SJP4.js";import{a as B}from"./chunk-T53UE6JF.js";import{c as X,i as W}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,b as k,d as _}from"./chunk-AODSXSC5.js";import{a as v}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";var V=32767,it=Math.cos(v.toRadians(150)),ct=new k,rt=new t;function at(e,o,c,i,s,A,h){let g=e.length,f=new Float64Array(g*3);for(let d=0;d<g;++d){let l=e[d],r=o[d],E=c[d],n=v.lerp(i.west,i.east,l/V),p=v.lerp(i.south,i.north,r/V),w=v.lerp(s,A,E/V),x=k.fromRadians(n,p,w,ct),P=h.cartographicToCartesian(x,rt);t.pack(P,f,d*3)}return f}function dt(e){let o=e.length,c=new Uint32Array(o+1),i=0;for(let s=0;s<o;++s)c[s]=i,i+=e[s];return c[o]=i,c}var lt=new k,ht=new k;function ft(e,o,c,i){let s=i.length,A=e.length,h=new Uint8Array(A),g=lt,f=ht,d=0;for(let r=0;r<s;r++){let E=i[r],n=E;for(let p=1;p<E;p++){let w=d+p,x=w-1;f.longitude=e[w],f.latitude=o[w],g.longitude=e[x],g.latitude=o[x],k.equals(f,g)&&(n--,h[x]=1)}i[r]=n,d+=E}let l=0;for(let r=0;r<A;r++)h[r]!==1&&(e[l]=e[r],o[l]=o[r],c[l]=c[r],l++)}function ot(e){let o=e*8,c=o*3,i=o*4;this.startEllipsoidNormals=new Float32Array(c),this.endEllipsoidNormals=new Float32Array(c),this.startPositionAndHeights=new Float32Array(i),this.startFaceNormalAndVertexCornerIds=new Float32Array(i),this.endPositionAndHeights=new Float32Array(i),this.endFaceNormalAndHalfWidths=new Float32Array(i),this.vertexBatchIds=new Uint16Array(o),this.indices=B.createTypedArray(o,36*e),this.vec3Offset=0,this.vec4Offset=0,this.batchIdOffset=0,this.indexOffset=0,this.volumeStartIndex=0}var Q=new t,pt=new t;function $(e,o,c,i,s){let A=t.subtract(c,o,pt),h=t.subtract(o,e,Q);return t.normalize(A,A),t.normalize(h,h),t.dot(A,h)<it&&(h=t.multiplyByScalar(h,-1,Q)),t.add(A,h,s),t.equals(s,t.ZERO)&&(s=t.subtract(e,o)),t.cross(s,i,s),t.cross(i,s,s),t.normalize(s,s),s}var st=[0,2,6,0,6,4,0,1,3,0,3,2,0,4,5,0,5,1,5,3,1,5,7,3,7,5,4,7,4,6,7,6,2,7,2,3],j=st.length,tt=new t,ut=new t,mt=new t,At=new t,Nt=new t;ot.prototype.addVolume=function(e,o,c,i,s,A,h,g,f,d){let l=t.add(o,f,tt),r=d.geodeticSurfaceNormal(l,ut);l=t.add(c,f,tt);let E=d.geodeticSurfaceNormal(l,At),n=$(e,o,c,r,mt),p=$(i,c,o,E,Nt),w=this.startEllipsoidNormals,x=this.endEllipsoidNormals,P=this.startPositionAndHeights,H=this.startFaceNormalAndVertexCornerIds,b=this.endPositionAndHeights,a=this.endFaceNormalAndHalfWidths,F=this.vertexBatchIds,m=this.batchIdOffset,I=this.vec3Offset,u=this.vec4Offset,N;for(N=0;N<8;N++)t.pack(r,w,I),t.pack(E,x,I),t.pack(o,P,u),P[u+3]=s,t.pack(c,b,u),b[u+3]=A,t.pack(n,H,u),H[u+3]=N,t.pack(p,a,u),a[u+3]=h,F[m++]=g,I+=3,u+=4;this.batchIdOffset=m,this.vec3Offset=I,this.vec4Offset=u;let C=this.indices,y=this.volumeStartIndex,z=this.indexOffset;for(N=0;N<j;N++)C[z+N]=st[N]+y;this.volumeStartIndex+=8,this.indexOffset+=j};var gt=new W,Et=new _,wt=new t,M=new t,It=new t,xt=new t,T=new t;function Pt(e,o){let c=new Uint16Array(e.positions),i=new Uint16Array(e.widths),s=new Uint32Array(e.counts),A=new Uint16Array(e.batchIds),h=gt,g=Et,f=wt,d=new Float64Array(e.packedBuffer),l=0,r=d[l++],E=d[l++];W.unpack(d,l,h),l+=W.packedLength,_.unpack(d,l,g),l+=_.packedLength,t.unpack(d,l,f);let n,p=c.length/3,w=c.subarray(0,p),x=c.subarray(p,2*p),P=c.subarray(2*p,3*p);Y.zigZagDeltaDecode(w,x,P),ft(w,x,P,s);let H=s.length,b=0;for(n=0;n<H;n++){let y=s[n];b+=y-1}let a=new ot(b),F=at(w,x,P,h,r,E,g,f);p=w.length;let m=new Float32Array(p*3);for(n=0;n<p;++n)m[n*3]=F[n*3]-f.x,m[n*3+1]=F[n*3+1]-f.y,m[n*3+2]=F[n*3+2]-f.z;let I=0,u=0;for(n=0;n<H;n++){let y=s[n]-1,z=i[n]*.5,et=A[n],q=I;for(let D=0;D<y;D++){let S=t.unpack(m,I,It),O=t.unpack(m,I+3,xt),G=P[u],Z=P[u+1];G=v.lerp(r,E,G/V),Z=v.lerp(r,E,Z/V),u++;let L=M,R=T;if(D===0){let U=q+y*3,K=t.unpack(m,U,M);if(t.equals(K,S))t.unpack(m,U-3,L);else{let nt=t.subtract(S,O,M);L=t.add(nt,S,M)}}else t.unpack(m,I-3,L);if(D===y-1){let U=t.unpack(m,q,T);if(t.equals(U,O))t.unpack(m,q+3,R);else{let K=t.subtract(O,S,T);R=t.add(K,O,T)}}else t.unpack(m,I+6,R);a.addVolume(L,S,O,R,G,Z,z,et,f,g),I+=3}I+=3,u++}let N=a.indices;o.push(a.startEllipsoidNormals.buffer),o.push(a.endEllipsoidNormals.buffer),o.push(a.startPositionAndHeights.buffer),o.push(a.startFaceNormalAndVertexCornerIds.buffer),o.push(a.endPositionAndHeights.buffer),o.push(a.endFaceNormalAndHalfWidths.buffer),o.push(a.vertexBatchIds.buffer),o.push(N.buffer);let C={indexDatatype:N.BYTES_PER_ELEMENT===2?B.UNSIGNED_SHORT:B.UNSIGNED_INT,startEllipsoidNormals:a.startEllipsoidNormals.buffer,endEllipsoidNormals:a.endEllipsoidNormals.buffer,startPositionAndHeights:a.startPositionAndHeights.buffer,startFaceNormalAndVertexCornerIds:a.startFaceNormalAndVertexCornerIds.buffer,endPositionAndHeights:a.endPositionAndHeights.buffer,endFaceNormalAndHalfWidths:a.endFaceNormalAndHalfWidths.buffer,vertexBatchIds:a.vertexBatchIds.buffer,indices:N.buffer};if(e.keepDecodedPositions){let y=dt(s);o.push(F.buffer,y.buffer),C=X(C,{decodedPositions:F.buffer,decodedPositionOffsets:y.buffer})}return C}var Vt=J(Pt);export{Vt as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileGeometries.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileGeometries.js index 242ff9524..1c95b6e5b 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileGeometries.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTileGeometries.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var o={};return o.typeOf={},o.defined=function(n,o){if(!e(o))throw new t(r(n))},o.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},o.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},o.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},o.typeOf.number.lessThan=function(e,r,n){if(o.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},o.typeOf.number.lessThanOrEquals=function(e,r,n){if(o.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},o.typeOf.number.greaterThan=function(e,r,n){if(o.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},o.typeOf.number.greaterThanOrEquals=function(e,r,n){if(o.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},o.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},o.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},o.typeOf.number.equals=function(e,r,n,i){if(o.typeOf.number(e,n),o.typeOf.number(r,i),n!==i)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+i)},o}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,o){"use strict";var i={};i.EPSILON1=.1,i.EPSILON2=.01,i.EPSILON3=.001,i.EPSILON4=1e-4,i.EPSILON5=1e-5,i.EPSILON6=1e-6,i.EPSILON7=1e-7,i.EPSILON8=1e-8,i.EPSILON9=1e-9,i.EPSILON10=1e-10,i.EPSILON11=1e-11,i.EPSILON12=1e-12,i.EPSILON13=1e-13,i.EPSILON14=1e-14,i.EPSILON15=1e-15,i.EPSILON16=1e-16,i.EPSILON17=1e-17,i.EPSILON18=1e-18,i.EPSILON19=1e-19,i.EPSILON20=1e-20,i.EPSILON21=1e-21,i.GRAVITATIONALPARAMETER=3986004418e5,i.SOLAR_RADIUS=6955e5,i.LUNAR_RADIUS=1737400,i.SIXTY_FOUR_KILOBYTES=65536,i.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),i.signNotZero=function(e){return e<0?-1:1},i.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*i.clamp(e,-1,1)+.5)*t)},i.fromSNorm=function(e,t){return t=r(t,255),i.clamp(e,0,t)/t*2-1},i.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:i.clamp((e-t)/r,0,1)},i.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),i.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),i.lerp=function(e,t,r){return(1-r)*e+r*t},i.PI=Math.PI,i.ONE_OVER_PI=1/Math.PI,i.PI_OVER_TWO=Math.PI/2,i.PI_OVER_THREE=Math.PI/3,i.PI_OVER_FOUR=Math.PI/4,i.PI_OVER_SIX=Math.PI/6,i.THREE_PI_OVER_TWO=3*Math.PI/2,i.TWO_PI=2*Math.PI,i.ONE_OVER_TWO_PI=1/(2*Math.PI),i.RADIANS_PER_DEGREE=Math.PI/180,i.DEGREES_PER_RADIAN=180/Math.PI,i.RADIANS_PER_ARCSECOND=i.RADIANS_PER_DEGREE/3600,i.toRadians=function(e){return e*i.RADIANS_PER_DEGREE},i.toDegrees=function(e){return e*i.DEGREES_PER_RADIAN},i.convertLongitudeRange=function(e){var t=i.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},i.clampToLatitudeRange=function(e){return i.clamp(e,-1*i.PI_OVER_TWO,i.PI_OVER_TWO)},i.negativePiToPi=function(e){return i.zeroToTwoPi(e+i.PI)-i.PI},i.zeroToTwoPi=function(e){var t=i.mod(e,i.TWO_PI);return Math.abs(t)<i.EPSILON14&&Math.abs(e)>i.EPSILON14?i.TWO_PI:t},i.mod=function(e,t){return(e%t+t)%t},i.equalsEpsilon=function(e,t,n,o){o=r(o,n);var i=Math.abs(e-t);return i<=o||i<=n*Math.max(Math.abs(e),Math.abs(t))},i.lessThan=function(e,t,r){return e-t<-r},i.lessThanOrEquals=function(e,t,r){return e-t<r},i.greaterThan=function(e,t,r){return e-t>r},i.greaterThanOrEquals=function(e,t,r){return e-t>-r};var a=[1];i.factorial=function(e){var t=a.length;if(e>=t)for(var r=a[t-1],n=t;n<=e;n++)a.push(r*n);return a[e]},i.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},i.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},i.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},i.clamp=function(e,t,r){return e<t?t:e>r?r:e};var s=new e;return i.setRandomNumberSeed=function(t){s=new e(t)},i.nextRandomNumber=function(){return s.random()},i.randomBetween=function(e,t){return i.nextRandomNumber()*(t-e)+e},i.acosClamped=function(e){return Math.acos(i.clamp(e,-1,1))},i.asinClamped=function(e){return Math.asin(i.clamp(e,-1,1))},i.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},i.logBase=function(e,t){return Math.log(e)/Math.log(t)},i.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),i.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),i.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},i.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},i.fastApproximateAtan2=function(e,t){var r,n,o=Math.abs(e);r=Math.abs(t),n=Math.max(o,r),r=Math.min(o,r);var a=r/n;return o=i.fastApproximateAtan(a),o=Math.abs(t)>Math.abs(e)?i.PI_OVER_TWO-o:o,o=e<0?i.PI-o:o,o=t<0?-o:o},i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,i){"use strict";function a(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}a.fromSpherical=function(e,n){r(n)||(n=new a);var o=e.clock,i=e.cone,s=t(e.magnitude,1),u=s*Math.sin(i);return n.x=u*Math.cos(o),n.y=u*Math.sin(o),n.z=s*Math.cos(i),n},a.fromElements=function(e,t,n,o){return r(o)?(o.x=e,o.y=t,o.z=n,o):new a(e,t,n)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new a(e.x,e.y,e.z)},a.fromCartesian4=a.clone,a.packedLength=3,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},a.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new a),o.x=e[n++],o.y=e[n++],o.z=e[n],o},a.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var o=0;o<n;++o)a.pack(e[o],t,3*o);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var o=0;o<n;o+=3){var i=o/3;t[i]=a.unpack(e,o,t[i])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var u=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,u),n=a.multiplyByScalar(e,1-r,n),a.add(u,n,n)};var c=new a,l=new a;a.angleBetween=function(e,t){a.normalize(e,c),a.normalize(t,l);var r=a.dot(c,l),n=a.magnitude(a.cross(c,l,c));return Math.atan2(n,r)};var f=new a;a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,f);return a.abs(r,r),t=r.x<=r.y?r.x<=r.z?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Z,t):r.y<=r.z?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_Z,t)},a.projectVector=function(e,t,r){var n=a.dot(e,t)/a.dot(t,t);return a.multiplyByScalar(t,n,r)},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},a.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&i.equalsEpsilon(e.x,t.x,n,o)&&i.equalsEpsilon(e.y,t.y,n,o)&&i.equalsEpsilon(e.z,t.z,n,o)},a.cross=function(e,t,r){var n=e.x,o=e.y,i=e.z,a=t.x,s=t.y,u=t.z,c=o*u-i*s,l=i*a-n*u,f=n*s-o*a;return r.x=c,r.y=l,r.z=f,r},a.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},a.fromDegrees=function(e,t,r,n,o){return e=i.toRadians(e),t=i.toRadians(t),a.fromRadians(e,t,r,n,o)};var h=new a,E=new a,d=new a(40680631590769,40680631590769,40408299984661.445);return a.fromRadians=function(e,n,o,i,s){o=t(o,0);var u=r(i)?i.radiiSquared:d,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=a.normalize(h,h),a.multiplyComponents(u,h,E);var l=Math.sqrt(a.dot(h,E));return E=a.divideByScalar(E,l,E),h=a.multiplyByScalar(h,o,h),r(s)||(s=new a),a.add(E,h,s)},a.fromDegreesArray=function(e,t,n){var o=e.length;r(n)?n.length=o/2:n=new Array(o/2);for(var i=0;i<o;i+=2){var s=e[i],u=e[i+1],c=i/2;n[c]=a.fromDegrees(s,u,0,t,n[c])}return n},a.fromRadiansArray=function(e,t,n){var o=e.length;r(n)?n.length=o/2:n=new Array(o/2);for(var i=0;i<o;i+=2){var s=e[i],u=e[i+1],c=i/2;n[c]=a.fromRadians(s,u,0,t,n[c])}return n},a.fromDegreesArrayHeights=function(e,t,n){var o=e.length;r(n)?n.length=o/3:n=new Array(o/3);for(var i=0;i<o;i+=3){var s=e[i],u=e[i+1],c=e[i+2],l=i/3;n[l]=a.fromDegrees(s,u,c,t,n[l])}return n},a.fromRadiansArrayHeights=function(e,t,n){var o=e.length;r(n)?n.length=o/3:n=new Array(o/3);for(var i=0;i<o;i+=3){var s=e[i],u=e[i+1],c=e[i+2],l=i/3;n[l]=a.fromRadians(s,u,c,t,n[l])}return n},a.ZERO=o(new a(0,0,0)),a.UNIT_X=o(new a(1,0,0)),a.UNIT_Y=o(new a(0,1,0)),a.UNIT_Z=o(new a(0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},a}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function o(r,o,s,u,c){var l=r.x,f=r.y,h=r.z,E=o.x,d=o.y,m=o.z,p=l*l*E*E,_=f*f*d*d,y=h*h*m*m,A=p+_+y,T=Math.sqrt(1/A),R=e.multiplyByScalar(r,T,i);if(A<u)return isFinite(T)?e.clone(R,c):void 0;var S=s.x,C=s.y,I=s.z,g=a;g.x=R.x*S*2,g.y=R.y*C*2,g.z=R.z*I*2;var O,v,N,w,M,F,x,D,U,P,L,b=(1-T)*e.magnitude(r)/(.5*e.magnitude(g)),B=0;do{b-=B,N=1/(1+b*S),w=1/(1+b*C),M=1/(1+b*I),F=N*N,x=w*w,D=M*M,U=F*N,P=x*w,L=D*M,O=p*F+_*x+y*D-1,v=p*U*S+_*P*C+y*L*I;B=O/(-2*v)}while(Math.abs(O)>n.EPSILON12);return t(c)?(c.x=l*N,c.y=f*w,c.z=h*M,c):new e(l*N,f*w,h*M)}var i=new e,a=new e;return o}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,o,i,a){"use strict";function s(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}s.fromRadians=function(e,t,o,i){return o=r(o,0),n(i)?(i.longitude=e,i.latitude=t,i.height=o,i):new s(e,t,o)},s.fromDegrees=function(e,t,r,n){return e=i.toRadians(e),t=i.toRadians(t),s.fromRadians(e,t,r,n)};var u=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),E=i.EPSILON1;return s.fromCartesian=function(t,r,o){var d=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,p=n(r)?r._centerToleranceSquared:E,_=a(t,d,m,p,c);if(n(_)){var y=e.multiplyComponents(_,m,u);y=e.normalize(y,y);var A=e.subtract(t,_,l),T=Math.atan2(y.y,y.x),R=Math.asin(y.z),S=i.sign(e.dot(A,t))*e.magnitude(A);return n(o)?(o.longitude=T,o.latitude=R,o.height=S,o):new s(T,R,S)}},s.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},s.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new s(e.longitude,e.latitude,e.height)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},s.ZERO=o(new s(0,0,0)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},s}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,o,i,a,s,u,c){"use strict";function l(t,r,o,i){r=n(r,0),o=n(o,0),i=n(i,0),t._radii=new e(r,o,i),t._radiiSquared=new e(r*r,o*o,i*i),t._radiiToTheFourth=new e(r*r*r*r,o*o*o*o,i*i*i*i),t._oneOverRadii=new e(0===r?0:1/r,0===o?0:1/o,0===i?0:1/i),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===o?0:1/(o*o),0===i?0:1/(i*i)),t._minimumRadius=Math.min(r,o,i),t._maximumRadius=Math.max(r,o,i),t._centerToleranceSquared=u.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}i(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(o(t)){var n=t._radii;return o(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return o(t)||(t=new f),o(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=s(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=s(new f(1,1,1)),f.MOON=s(new f(u.LUNAR_RADIUS,u.LUNAR_RADIUS,u.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,o){return o=n(o,0),e.pack(t._radii,r,o),r},f.unpack=function(t,r,o){r=n(r,0);var i=e.unpack(t,r);return f.fromCartesian3(i,o)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,i=t.latitude,a=Math.cos(i),s=a*Math.cos(n),u=a*Math.sin(n),c=Math.sin(i);return o(r)||(r=new e),r.x=s,r.y=u,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return o(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,E=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,i=E;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,i);var a=Math.sqrt(e.dot(n,i));return e.divideByScalar(i,a,i),e.multiplyByScalar(n,t.height,n),o(r)||(r=new e),e.add(i,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var d=new e,m=new e,p=new e;return f.prototype.cartesianToCartographic=function(r,n){var i=this.scaleToGeodeticSurface(r,m);if(o(i)){var a=this.geodeticSurfaceNormal(i,d),s=e.subtract(r,i,p),c=Math.atan2(a.y,a.x),l=Math.asin(a.z),f=u.sign(e.dot(s,r))*e.magnitude(s);return o(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){o(r)||(r=new e);var n=t.x,i=t.y,a=t.z,s=this._oneOverRadiiSquared,u=1/Math.sqrt(n*n*s.x+i*i*s.y+a*a*s.z);return e.multiplyByScalar(t,u,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return o(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return o(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||o(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,i){r=n(r,0);var a=this._squaredXOverSquaredZ;if(o(i)||(i=new e),i.x=0,i.y=0,i.z=t.z*(1-a),!(Math.abs(i.z)>=this._radii.z-r))return i},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,o,i,a){"use strict";function s(e){this._ellipsoid=r(e,a.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return o(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.prototype.project=function(t,r){var o=this._semimajorAxis,i=t.longitude*o,a=t.latitude*o,s=t.height;return n(r)?(r.x=i,r.y=a,r.z=s,r):new e(i,a,s)},s.prototype.unproject=function(e,r){var o=this._oneOverSemimajorAxis,i=e.x*o,a=e.y*o,s=e.z;return n(r)?(r.longitude=i,r.latitude=a,r.height=s,r):new t(i,a,s)},s}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,i,a,s){"use strict";function u(e,t,n,o,i,a,s,u,c){this[0]=r(e,0),this[1]=r(o,0),this[2]=r(s,0),this[3]=r(t,0),this[4]=r(i,0),this[5]=r(u,0),this[6]=r(n,0),this[7]=r(a,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[u.getElementIndex(m[r],d[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=s.EPSILON15,n=0,o=1,i=0;i<3;++i){var a=Math.abs(e[u.getElementIndex(m[i],d[i])]);a>n&&(o=i,n=a)}var c=1,l=0,f=d[o],h=m[o];if(Math.abs(e[u.getElementIndex(h,f)])>r){var E,p=e[u.getElementIndex(h,h)],_=e[u.getElementIndex(f,f)],y=e[u.getElementIndex(h,f)],A=(p-_)/2/y;E=A<0?-1/(-A+Math.sqrt(1+A*A)):1/(A+Math.sqrt(1+A*A)),c=1/Math.sqrt(1+E*E),l=E*c}return t=u.clone(u.IDENTITY,t),t[u.getElementIndex(f,f)]=t[u.getElementIndex(h,h)]=c,t[u.getElementIndex(h,f)]=l,t[u.getElementIndex(f,h)]=-l,t}u.packedLength=9,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},u.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new u),o[0]=e[t++],o[1]=e[t++],o[2]=e[t++],o[3]=e[t++],o[4]=e[t++],o[5]=e[t++],o[6]=e[t++],o[7]=e[t++],o[8]=e[t++],o},u.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new u(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},u.fromArray=function(e,t,o){return t=r(t,0),n(o)||(o=new u),o[0]=e[t],o[1]=e[t+1],o[2]=e[t+2],o[3]=e[t+3],o[4]=e[t+4],o[5]=e[t+5],o[6]=e[t+6],o[7]=e[t+7],o[8]=e[t+8],o},u.fromColumnMajorArray=function(e,t){return u.clone(e,t)},u.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new u(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},u.fromQuaternion=function(e,t){var r=e.x*e.x,o=e.x*e.y,i=e.x*e.z,a=e.x*e.w,s=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,E=e.w*e.w,d=r-s-f+E,m=2*(o-h),p=2*(i+l),_=2*(o+h),y=-r+s-f+E,A=2*(c-a),T=2*(i-l),R=2*(c+a),S=-r-s+f+E;return n(t)?(t[0]=d,t[1]=_,t[2]=T,t[3]=m,t[4]=y,t[5]=R,t[6]=p,t[7]=A,t[8]=S,t):new u(d,m,p,_,y,A,T,R,S)},u.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),o=Math.cos(-e.heading),i=Math.cos(e.roll),a=Math.sin(-e.pitch),s=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*o,f=-i*s+c*a*o,h=c*s+i*a*o,E=r*s,d=i*o+c*a*s,m=-c*o+i*a*s,p=-a,_=c*r,y=i*r;return n(t)?(t[0]=l,t[1]=E,t[2]=p,t[3]=f,t[4]=d,t[5]=_,t[6]=h,t[7]=m,t[8]=y,t):new u(l,f,h,E,d,m,p,_,y)},u.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new u(e.x,0,0,0,e.y,0,0,0,e.z)},u.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new u(e,0,0,0,e,0,0,0,e)},u.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new u(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},u.fromRotationX=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=o,t[6]=0,t[7]=-o,t[8]=r,t):new u(1,0,0,0,r,-o,0,o,r)},u.fromRotationY=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-o,t[3]=0,t[4]=1,t[5]=0,t[6]=o,t[7]=0,t[8]=r,t):new u(r,0,o,0,1,0,-o,0,r)},u.fromRotationZ=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=r,t[1]=o,t[2]=0,t[3]=-o,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new u(r,-o,0,o,r,0,0,0,1)},u.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},u.getElementIndex=function(e,t){return 3*e+t},u.getColumn=function(e,t,r){var n=3*t,o=e[n],i=e[n+1],a=e[n+2];return r.x=o,r.y=i,r.z=a,r},u.setColumn=function(e,t,r,n){n=u.clone(e,n);var o=3*t;return n[o]=r.x,n[o+1]=r.y,n[o+2]=r.z,n},u.getRow=function(e,t,r){var n=e[t],o=e[t+3],i=e[t+6];return r.x=n,r.y=o,r.z=i,r},u.setRow=function(e,t,r,n){return n=u.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;u.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var E=new e;u.getMaximumScale=function(t){return u.getScale(t,E),e.maximumComponent(E)},u.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],i=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],a=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],s=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],u=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=o,r[2]=i,r[3]=a,r[4]=s,r[5]=u,r[6]=c,r[7]=l,r[8]=f,r},u.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},u.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},u.multiplyByVector=function(e,t,r){var n=t.x,o=t.y,i=t.z,a=e[0]*n+e[3]*o+e[6]*i,s=e[1]*n+e[4]*o+e[7]*i,u=e[2]*n+e[5]*o+e[8]*i;return r.x=a,r.y=s,r.z=u,r},u.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},u.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},u.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},u.transpose=function(e,t){var r=e[0],n=e[3],o=e[6],i=e[1],a=e[4],s=e[7],u=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=o,t[3]=i,t[4]=a,t[5]=s,t[6]=u,t[7]=c,t[8]=l,t};var d=[1,0,0],m=[2,2,1],p=new u,_=new u;return u.computeEigenDecomposition=function(e,t){var r=s.EPSILON20,o=0,i=0;n(t)||(t={});for(var a=t.unitary=u.clone(u.IDENTITY,t.unitary),h=t.diagonal=u.clone(e,t.diagonal),E=r*c(h);i<10&&l(h)>E;)f(h,p),u.transpose(p,_),u.multiply(h,p,h),u.multiply(_,h,h),u.multiply(a,p,a),++o>2&&(++i,o=0);return t},u.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},u.determinant=function(e){var t=e[0],r=e[3],n=e[6],o=e[1],i=e[4],a=e[7],s=e[2],u=e[5],c=e[8];return t*(i*c-u*a)+o*(u*n-r*c)+s*(r*a-i*n)},u.inverse=function(e,t){var r=e[0],n=e[1],o=e[2],i=e[3],a=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=u.determinant(e);t[0]=a*f-l*s,t[1]=l*o-n*f,t[2]=n*s-a*o,t[3]=c*s-i*f,t[4]=r*f-c*o,t[5]=i*o-r*s,t[6]=i*l-c*a,t[7]=c*n-r*l,t[8]=r*a-i*n;var E=1/h;return u.multiplyByScalar(t,E,t)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},u.IDENTITY=a(new u(1,0,0,0,1,0,0,0,1)),u.ZERO=a(new u(0,0,0,0,0,0,0,0,0)),u.COLUMN0ROW0=0,u.COLUMN0ROW1=1,u.COLUMN0ROW2=2,u.COLUMN1ROW0=3,u.COLUMN1ROW1=4,u.COLUMN1ROW2=5,u.COLUMN2ROW0=6,u.COLUMN2ROW1=7,u.COLUMN2ROW2=8,o(u.prototype,{length:{get:function(){return u.packedLength}}}),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},u}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,i){"use strict";function a(e,r,n,o){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(o,0)}a.fromElements=function(e,t,n,o,i){return r(i)?(i.x=e,i.y=t,i.z=n,i.w=o,i):new a(e,t,n,o)},a.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new a(e.red,e.green,e.blue,e.alpha)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new a(e.x,e.y,e.z,e.w)},a.packedLength=4,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},a.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new a),o.x=e[n++],o.y=e[n++],o.z=e[n++],o.w=e[n],o},a.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var o=0;o<n;++o)a.pack(e[o],t,4*o);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var o=0;o<n;o+=4){var i=o/4;t[i]=a.unpack(e,o,t[i])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},a.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var u=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,u),n=a.multiplyByScalar(e,1-r,n),a.add(u,n,n)};var c=new a;a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,c);return a.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?a.clone(a.UNIT_X,t):a.clone(a.UNIT_W,t):r.z<=r.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t):r.y<=r.z?r.y<=r.w?a.clone(a.UNIT_Y,t):a.clone(a.UNIT_W,t):r.z<=r.w?a.clone(a.UNIT_Z,t):a.clone(a.UNIT_W,t)},a.equals=function(e,t){ -return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},a.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&i.equalsEpsilon(e.x,t.x,n,o)&&i.equalsEpsilon(e.y,t.y,n,o)&&i.equalsEpsilon(e.z,t.z,n,o)&&i.equalsEpsilon(e.w,t.w,n,o)},a.ZERO=o(new a(0,0,0,0)),a.UNIT_X=o(new a(1,0,0,0)),a.UNIT_Y=o(new a(0,1,0,0)),a.UNIT_Z=o(new a(0,0,1,0)),a.UNIT_W=o(new a(0,0,0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return a.packFloat=function(e,t){if(r(t)||(t=new a),l[0]=e,0===(e=l[0]))return a.clone(a.ZERO,t);var n,o=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(i.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var s=256*e;return t.x=Math.floor(s),s=256*(s-t.x),t.y=Math.floor(s),s=256*(s-t.y),t.z=Math.floor(s),t.w=2*(n+38)+o,t},a.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var o=n*e.x*(1/256);return o+=n*e.y*(1/65536),(o+=n*e.z*(1/16777216))*Math.pow(10,r)},a}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,o,i,a,s,u,c){"use strict";function l(e,t,r,o,i,a,s,u,c,l,f,h,E,d,m,p){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(c,0),this[3]=n(E,0),this[4]=n(t,0),this[5]=n(a,0),this[6]=n(l,0),this[7]=n(d,0),this[8]=n(r,0),this[9]=n(s,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(o,0),this[13]=n(u,0),this[14]=n(h,0),this[15]=n(p,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),o(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(o(e))return o(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return o(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,i){return r=n(r,e.ZERO),o(i)?(i[0]=t[0],i[1]=t[1],i[2]=t[2],i[3]=0,i[4]=t[3],i[5]=t[4],i[6]=t[5],i[7]=0,i[8]=t[6],i[9]=t[7],i[10]=t[8],i[11]=0,i[12]=r.x,i[13]=r.y,i[14]=r.z,i[15]=1,i):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){o(n)||(n=new l);var i=r.x,a=r.y,s=r.z,u=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,E=t.y*t.y,d=t.y*t.z,m=t.y*t.w,p=t.z*t.z,_=t.z*t.w,y=t.w*t.w,A=u-E-p+y,T=2*(c-_),R=2*(f+m),S=2*(c+_),C=-u+E-p+y,I=2*(d-h),g=2*(f-m),O=2*(d+h),v=-u-E+p+y;return n[0]=A*i,n[1]=S*i,n[2]=g*i,n[3]=0,n[4]=T*a,n[5]=C*a,n[6]=O*a,n[7]=0,n[8]=R*s,n[9]=I*s,n[10]=v*s,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(u.IDENTITY,e,t)},l.fromScale=function(e,t){return o(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return o(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,E=new e;l.fromCamera=function(t,r){var n=t.position,i=t.direction,a=t.up;e.normalize(i,f),e.normalize(e.cross(f,a,h),h),e.normalize(e.cross(h,f,E),E);var s=h.x,u=h.y,c=h.z,d=f.x,m=f.y,p=f.z,_=E.x,y=E.y,A=E.z,T=n.x,R=n.y,S=n.z,C=s*-T+u*-R+c*-S,I=_*-T+y*-R+A*-S,g=d*T+m*R+p*S;return o(r)?(r[0]=s,r[1]=_,r[2]=-d,r[3]=0,r[4]=u,r[5]=y,r[6]=-m,r[7]=0,r[8]=c,r[9]=A,r[10]=-p,r[11]=0,r[12]=C,r[13]=I,r[14]=g,r[15]=1,r):new l(s,u,c,C,_,y,A,I,-d,-m,-p,g,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,o){var i=Math.tan(.5*e),a=1/i,s=a/t,u=(n+r)/(r-n),c=2*n*r/(r-n);return o[0]=s,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=a,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=u,o[11]=-1,o[12]=0,o[13]=0,o[14]=c,o[15]=0,o},l.computeOrthographicOffCenter=function(e,t,r,n,o,i,a){var s=1/(t-e),u=1/(n-r),c=1/(i-o),l=-(t+e)*s,f=-(n+r)*u,h=-(i+o)*c;return s*=2,u*=2,c*=-2,a[0]=s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=0,a[9]=0,a[10]=c,a[11]=0,a[12]=l,a[13]=f,a[14]=h,a[15]=1,a},l.computePerspectiveOffCenter=function(e,t,r,n,o,i,a){var s=2*o/(t-e),u=2*o/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(i+o)/(i-o),h=-2*i*o/(i-o);return a[0]=s,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=c,a[9]=l,a[10]=f,a[11]=-1,a[12]=0,a[13]=0,a[14]=h,a[15]=0,a},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,o,i){var a=2*o/(t-e),s=2*o/(n-r),u=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*o;return i[0]=a,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=s,i[6]=0,i[7]=0,i[8]=u,i[9]=c,i[10]=-1,i[11]=-1,i[12]=0,i[13]=0,i[14]=l,i[15]=0,i},l.computeViewportTransformation=function(e,t,r,o){e=n(e,n.EMPTY_OBJECT);var i=n(e.x,0),a=n(e.y,0),s=n(e.width,0),u=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*s,l=.5*u,f=.5*(r-t),h=c,E=l,d=f,m=i+c,p=a+l,_=t+f;return o[0]=h,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=E,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=d,o[11]=0,o[12]=m,o[13]=p,o[14]=_,o[15]=1,o},l.computeView=function(t,r,n,o,i){return i[0]=o.x,i[1]=n.x,i[2]=-r.x,i[3]=0,i[4]=o.y,i[5]=n.y,i[6]=-r.y,i[7]=0,i[8]=o.z,i[9]=n.z,i[10]=-r.z,i[11]=0,i[12]=-e.dot(o,t),i[13]=-e.dot(n,t),i[14]=e.dot(r,t),i[15]=1,i},l.toArray=function(e,t){return o(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,o=e[n],i=e[n+1],a=e[n+2],s=e[n+3];return r.x=o,r.y=i,r.z=a,r.w=s,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var o=4*t;return n[o]=r.x,n[o+1]=r.y,n[o+2]=r.z,n[o+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var d=new e;l.setScale=function(t,r,n){var o=l.getScale(t,d),i=e.divideComponents(r,o,d);return l.multiplyByScale(t,i,n)},l.getRow=function(e,t,r){var n=e[t],o=e[t+4],i=e[t+8],a=e[t+12];return r.x=n,r.y=o,r.z=i,r.w=a,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var p=new e;l.getMaximumScale=function(t){return l.getScale(t,p),e.maximumComponent(p)},l.multiply=function(e,t,r){var n=e[0],o=e[1],i=e[2],a=e[3],s=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=e[9],E=e[10],d=e[11],m=e[12],p=e[13],_=e[14],y=e[15],A=t[0],T=t[1],R=t[2],S=t[3],C=t[4],I=t[5],g=t[6],O=t[7],v=t[8],N=t[9],w=t[10],M=t[11],F=t[12],x=t[13],D=t[14],U=t[15],P=n*A+s*T+f*R+m*S,L=o*A+u*T+h*R+p*S,b=i*A+c*T+E*R+_*S,B=a*A+l*T+d*R+y*S,z=n*C+s*I+f*g+m*O,G=o*C+u*I+h*g+p*O,q=i*C+c*I+E*g+_*O,V=a*C+l*I+d*g+y*O,W=n*v+s*N+f*w+m*M,k=o*v+u*N+h*w+p*M,Y=i*v+c*N+E*w+_*M,H=a*v+l*N+d*w+y*M,X=n*F+s*x+f*D+m*U,j=o*F+u*x+h*D+p*U,K=i*F+c*x+E*D+_*U,Z=a*F+l*x+d*D+y*U;return r[0]=P,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=G,r[6]=q,r[7]=V,r[8]=W,r[9]=k,r[10]=Y,r[11]=H,r[12]=X,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],o=e[1],i=e[2],a=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=e[12],E=e[13],d=e[14],m=t[0],p=t[1],_=t[2],y=t[4],A=t[5],T=t[6],R=t[8],S=t[9],C=t[10],I=t[12],g=t[13],O=t[14],v=n*m+a*p+c*_,N=o*m+s*p+l*_,w=i*m+u*p+f*_,M=n*y+a*A+c*T,F=o*y+s*A+l*T,x=i*y+u*A+f*T,D=n*R+a*S+c*C,U=o*R+s*S+l*C,P=i*R+u*S+f*C,L=n*I+a*g+c*O+h,b=o*I+s*g+l*O+E,B=i*I+u*g+f*O+d;return r[0]=v,r[1]=N,r[2]=w,r[3]=0,r[4]=M,r[5]=F,r[6]=x,r[7]=0,r[8]=D,r[9]=U,r[10]=P,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],o=e[1],i=e[2],a=e[4],s=e[5],u=e[6],c=e[8],l=e[9],f=e[10],h=t[0],E=t[1],d=t[2],m=t[3],p=t[4],_=t[5],y=t[6],A=t[7],T=t[8],R=n*h+a*E+c*d,S=o*h+s*E+l*d,C=i*h+u*E+f*d,I=n*m+a*p+c*_,g=o*m+s*p+l*_,O=i*m+u*p+f*_,v=n*y+a*A+c*T,N=o*y+s*A+l*T,w=i*y+u*A+f*T;return r[0]=R,r[1]=S,r[2]=C,r[3]=0,r[4]=I,r[5]=g,r[6]=O,r[7]=0,r[8]=v,r[9]=N,r[10]=w,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,o=t.y,i=t.z,a=n*e[0]+o*e[4]+i*e[8]+e[12],s=n*e[1]+o*e[5]+i*e[9]+e[13],u=n*e[2]+o*e[6]+i*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=a,r[13]=s,r[14]=u,r[15]=e[15],r};var _=new e;l.multiplyByUniformScale=function(e,t,r){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,r)},l.multiplyByScale=function(e,t,r){var n=t.x,o=t.y,i=t.z;return 1===n&&1===o&&1===i?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=o*e[4],r[5]=o*e[5],r[6]=o*e[6],r[7]=0,r[8]=i*e[8],r[9]=i*e[9],r[10]=i*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,o=t.y,i=t.z,a=t.w,s=e[0]*n+e[4]*o+e[8]*i+e[12]*a,u=e[1]*n+e[5]*o+e[9]*i+e[13]*a,c=e[2]*n+e[6]*o+e[10]*i+e[14]*a,l=e[3]*n+e[7]*o+e[11]*i+e[15]*a;return r.x=s,r.y=u,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,o=t.y,i=t.z,a=e[0]*n+e[4]*o+e[8]*i,s=e[1]*n+e[5]*o+e[9]*i,u=e[2]*n+e[6]*o+e[10]*i;return r.x=a,r.y=s,r.z=u,r},l.multiplyByPoint=function(e,t,r){var n=t.x,o=t.y,i=t.z,a=e[0]*n+e[4]*o+e[8]*i+e[12],s=e[1]*n+e[5]*o+e[9]*i+e[13],u=e[2]*n+e[6]*o+e[10]*i+e[14];return r.x=a,r.y=s,r.z=u,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],o=e[3],i=e[6],a=e[7],s=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=i,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=a,t[14]=s,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||o(e)&&o(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||o(e)&&o(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new u,A=new u,T=new t,R=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],o=e[4],i=e[8],a=e[12],f=e[1],h=e[5],E=e[9],d=e[13],m=e[2],p=e[6],_=e[10],S=e[14],C=e[3],I=e[7],g=e[11],O=e[15],v=_*O,N=S*g,w=p*O,M=S*I,F=p*g,x=_*I,D=m*O,U=S*C,P=m*g,L=_*C,b=m*I,B=p*C,z=v*h+M*E+F*d-(N*h+w*E+x*d),G=N*f+D*E+L*d-(v*f+U*E+P*d),q=w*f+U*h+b*d-(M*f+D*h+B*d),V=x*f+P*h+B*E-(F*f+L*h+b*E),W=N*o+w*i+x*a-(v*o+M*i+F*a),k=v*n+U*i+P*a-(N*n+D*i+L*a),Y=M*n+D*o+B*a-(w*n+U*o+b*a),H=F*n+L*o+b*i-(x*n+P*o+B*i);v=i*d,N=a*E,w=o*d,M=a*h,F=o*E,x=i*h,D=n*d,U=a*f,P=n*E,L=i*f,b=n*h,B=o*f;var X=v*I+M*g+F*O-(N*I+w*g+x*O),j=N*C+D*g+L*O-(v*C+U*g+P*O),K=w*C+U*I+b*O-(M*C+D*I+B*O),Z=x*C+P*I+B*g-(F*C+L*I+b*g),J=w*_+x*S+N*p-(F*S+v*p+M*_),Q=P*S+v*m+U*_-(D*_+L*S+N*m),$=D*p+B*S+M*m-(b*S+w*m+U*p),ee=b*_+F*m+L*p-(P*p+B*_+x*m),te=n*z+o*G+i*q+a*V;if(Math.abs(te)<s.EPSILON21){if(u.equalsEpsilon(l.getRotation(e,y),A,s.EPSILON7)&&t.equals(l.getRow(e,3,T),R))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=G*te,r[2]=q*te,r[3]=V*te,r[4]=W*te,r[5]=k*te,r[6]=Y*te,r[7]=H*te,r[8]=X*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],o=e[2],i=e[4],a=e[5],s=e[6],u=e[8],c=e[9],l=e[10],f=e[12],h=e[13],E=e[14],d=-r*f-n*h-o*E,m=-i*f-a*h-s*E,p=-u*f-c*h-l*E;return t[0]=r,t[1]=i,t[2]=u,t[3]=0,t[4]=n,t[5]=a,t[6]=c,t[7]=0,t[8]=o,t[9]=s,t[10]=l,t[11]=0,t[12]=d,t[13]=m,t[14]=p,t[15]=1,t},l.IDENTITY=a(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=a(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,i(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,o,i,a,s){"use strict";function u(e,t,n,o){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(o,0)}o(u.prototype,{width:{get:function(){return u.computeWidth(this)}},height:{get:function(){return u.computeHeight(this)}}}),u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},u.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new u),o.west=e[t++],o.south=e[t++],o.east=e[t++],o.north=e[t],o},u.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=s.TWO_PI),t-r},u.computeHeight=function(e){return e.north-e.south},u.fromDegrees=function(e,t,o,i,a){return e=s.toRadians(r(e,0)),t=s.toRadians(r(t,0)),o=s.toRadians(r(o,0)),i=s.toRadians(r(i,0)),n(a)?(a.west=e,a.south=t,a.east=o,a.north=i,a):new u(e,t,o,i)},u.fromRadians=function(e,t,o,i,a){return n(a)?(a.west=r(e,0),a.south=r(t,0),a.east=r(o,0),a.north=r(i,0),a):new u(e,t,o,i)},u.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,o=-Number.MAX_VALUE,i=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var E=e[f];r=Math.min(r,E.longitude),o=Math.max(o,E.longitude),c=Math.min(c,E.latitude),l=Math.max(l,E.latitude);var d=E.longitude>=0?E.longitude:E.longitude+s.TWO_PI;i=Math.min(i,d),a=Math.max(a,d)}return o-r>a-i&&(r=i,o=a,o>s.PI&&(o-=s.TWO_PI),r>s.PI&&(r-=s.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=o,t.north=l,t):new u(r,c,o,l)},u.fromCartesianArray=function(e,t,o){t=r(t,i.WGS84);for(var a=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,E=-Number.MAX_VALUE,d=0,m=e.length;d<m;d++){var p=t.cartesianToCartographic(e[d]);a=Math.min(a,p.longitude),c=Math.max(c,p.longitude),h=Math.min(h,p.latitude),E=Math.max(E,p.latitude);var _=p.longitude>=0?p.longitude:p.longitude+s.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-a>f-l&&(a=l,c=f,c>s.PI&&(c-=s.TWO_PI),a>s.PI&&(a-=s.TWO_PI)),n(o)?(o.west=a,o.south=h,o.east=c,o.north=E,o):new u(a,h,c,E)},u.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new u(e.west,e.south,e.east,e.north)},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.validate=function(e){},u.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},u.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},u.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},u.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},u.center=function(t,r){var o=t.east,i=t.west;o<i&&(o+=s.TWO_PI);var a=s.negativePiToPi(.5*(i+o)),u=.5*(t.south+t.north);return n(r)?(r.longitude=a,r.latitude=u,r.height=0,r):new e(a,u)},u.intersection=function(e,t,r){var o=e.east,i=e.west,a=t.east,c=t.west;o<i&&a>0?o+=s.TWO_PI:a<c&&o>0&&(a+=s.TWO_PI),o<i&&c<0?c+=s.TWO_PI:a<c&&i<0&&(i+=s.TWO_PI);var l=s.negativePiToPi(Math.max(i,c)),f=s.negativePiToPi(Math.min(o,a));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),E=Math.min(e.north,t.north);if(!(h>=E))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=E,r):new u(l,h,f,E)}},u.simpleIntersection=function(e,t,r){var o=Math.max(e.west,t.west),i=Math.max(e.south,t.south),a=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(i>=s||o>=a))return n(r)?(r.west=o,r.south=i,r.east=a,r.north=s,r):new u(o,i,a,s)},u.union=function(e,t,r){n(r)||(r=new u);var o=e.east,i=e.west,a=t.east,c=t.west;o<i&&a>0?o+=s.TWO_PI:a<c&&o>0&&(a+=s.TWO_PI),o<i&&c<0?c+=s.TWO_PI:a<c&&i<0&&(i+=s.TWO_PI);var l=s.convertLongitudeRange(Math.min(i,c)),f=s.convertLongitudeRange(Math.max(o,a));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},u.expand=function(e,t,r){return n(r)||(r=new u),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},u.contains=function(e,t){var r=t.longitude,n=t.latitude,o=e.west,i=e.east;return i<o&&(i+=s.TWO_PI,r<0&&(r+=s.TWO_PI)),(r>o||s.equalsEpsilon(r,o,s.EPSILON14))&&(r<i||s.equalsEpsilon(r,i,s.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return u.subsample=function(e,t,o,a){t=r(t,i.WGS84),o=r(o,0),n(a)||(a=[]);var l=0,f=e.north,h=e.south,E=e.east,d=e.west,m=c;m.height=o,m.longitude=d,m.latitude=f,a[l]=t.cartographicToCartesian(m,a[l]),l++,m.longitude=E,a[l]=t.cartographicToCartesian(m,a[l]),l++,m.latitude=h,a[l]=t.cartographicToCartesian(m,a[l]),l++,m.longitude=d,a[l]=t.cartographicToCartesian(m,a[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var p=1;p<8;++p)m.longitude=-Math.PI+p*s.PI_OVER_TWO,u.contains(e,m)&&(a[l]=t.cartographicToCartesian(m,a[l]),l++);return 0===m.latitude&&(m.longitude=d,a[l]=t.cartographicToCartesian(m,a[l]),l++,m.longitude=E,a[l]=t.cartographicToCartesian(m,a[l]),l++),a.length=l,a},u.MAX_VALUE=a(new u(-Math.PI,-s.PI_OVER_TWO,Math.PI,s.PI_OVER_TWO)),u}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,o,i,a,s,u,c,l,f,h){"use strict";function E(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var d=new e,m=new e,p=new e,_=new e,y=new e,A=new e,T=new e,R=new e,S=new e,C=new e,I=new e,g=new e,O=4/3*c.PI;E.fromPoints=function(t,r){if(o(r)||(r=new E),!o(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,i=e.clone(t[0],T),a=e.clone(i,d),s=e.clone(i,m),u=e.clone(i,p),c=e.clone(i,_),l=e.clone(i,y),f=e.clone(i,A),h=t.length;for(n=1;n<h;n++){e.clone(t[n],i);var O=i.x,v=i.y,N=i.z;O<a.x&&e.clone(i,a),O>c.x&&e.clone(i,c),v<s.y&&e.clone(i,s),v>l.y&&e.clone(i,l),N<u.z&&e.clone(i,u),N>f.z&&e.clone(i,f)}var w=e.magnitudeSquared(e.subtract(c,a,R)),M=e.magnitudeSquared(e.subtract(l,s,R)),F=e.magnitudeSquared(e.subtract(f,u,R)),x=a,D=c,U=w;M>U&&(U=M,x=s,D=l),F>U&&(U=F,x=u,D=f);var P=S;P.x=.5*(x.x+D.x),P.y=.5*(x.y+D.y),P.z=.5*(x.z+D.z);var L=e.magnitudeSquared(e.subtract(D,P,R)),b=Math.sqrt(L),B=C;B.x=a.x,B.y=s.y,B.z=u.z;var z=I;z.x=c.x,z.y=l.y,z.z=f.z;var G=e.midpoint(B,z,g),q=0;for(n=0;n<h;n++){e.clone(t[n],i);var V=e.magnitude(e.subtract(i,G,R));V>q&&(q=V);var W=e.magnitudeSquared(e.subtract(i,P,R));if(W>L){var k=Math.sqrt(W);b=.5*(b+k),L=b*b;var Y=k-b;P.x=(b*P.x+Y*i.x)/k,P.y=(b*P.y+Y*i.y)/k,P.z=(b*P.z+Y*i.z)/k}}return b<q?(e.clone(P,r.center),r.radius=b):(e.clone(G,r.center),r.radius=q),r};var v=new a,N=new e,w=new e,M=new t,F=new t;E.fromRectangle2D=function(e,t,r){return E.fromRectangleWithHeights2D(e,t,0,0,r)},E.fromRectangleWithHeights2D=function(t,r,i,a,s){if(o(s)||(s=new E),!o(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;r=n(r,v),h.southwest(t,M),M.height=i,h.northeast(t,F),F.height=a;var u=r.project(M,N),c=r.project(F,w),l=c.x-u.x,f=c.y-u.y,d=c.z-u.z;s.radius=.5*Math.sqrt(l*l+f*f+d*d);var m=s.center;return m.x=u.x+.5*l,m.y=u.y+.5*f,m.z=u.z+.5*d,s};var x=[];E.fromRectangle3D=function(t,r,a,s){if(r=n(r,i.WGS84),a=n(a,0),o(s)||(s=new E),!o(t))return s.center=e.clone(e.ZERO,s.center),s.radius=0,s;var u=h.subsample(t,r,a,x);return E.fromPoints(u,s)},E.fromVertices=function(t,r,i,a){if(o(a)||(a=new E),!o(t)||0===t.length)return a.center=e.clone(e.ZERO,a.center),a.radius=0,a;r=n(r,e.ZERO),i=n(i,3);var s=T;s.x=t[0]+r.x,s.y=t[1]+r.y,s.z=t[2]+r.z;var u,c=e.clone(s,d),l=e.clone(s,m),f=e.clone(s,p),h=e.clone(s,_),O=e.clone(s,y),v=e.clone(s,A),N=t.length;for(u=0;u<N;u+=i){var w=t[u]+r.x,M=t[u+1]+r.y,F=t[u+2]+r.z;s.x=w,s.y=M,s.z=F,w<c.x&&e.clone(s,c),w>h.x&&e.clone(s,h),M<l.y&&e.clone(s,l),M>O.y&&e.clone(s,O),F<f.z&&e.clone(s,f),F>v.z&&e.clone(s,v)}var x=e.magnitudeSquared(e.subtract(h,c,R)),D=e.magnitudeSquared(e.subtract(O,l,R)),U=e.magnitudeSquared(e.subtract(v,f,R)),P=c,L=h,b=x;D>b&&(b=D,P=l,L=O),U>b&&(b=U,P=f,L=v);var B=S;B.x=.5*(P.x+L.x),B.y=.5*(P.y+L.y),B.z=.5*(P.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,R)),G=Math.sqrt(z),q=C;q.x=c.x,q.y=l.y,q.z=f.z;var V=I;V.x=h.x,V.y=O.y,V.z=v.z;var W=e.midpoint(q,V,g),k=0;for(u=0;u<N;u+=i){s.x=t[u]+r.x,s.y=t[u+1]+r.y,s.z=t[u+2]+r.z;var Y=e.magnitude(e.subtract(s,W,R));Y>k&&(k=Y);var H=e.magnitudeSquared(e.subtract(s,B,R));if(H>z){var X=Math.sqrt(H);G=.5*(G+X),z=G*G;var j=X-G;B.x=(G*B.x+j*s.x)/X,B.y=(G*B.y+j*s.y)/X,B.z=(G*B.z+j*s.z)/X}}return G<k?(e.clone(B,a.center),a.radius=G):(e.clone(W,a.center),a.radius=k),a},E.fromEncodedCartesianVertices=function(t,r,n){if(o(n)||(n=new E),!o(t)||!o(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var i=T;i.x=t[0]+r[0],i.y=t[1]+r[1],i.z=t[2]+r[2];var a,s=e.clone(i,d),u=e.clone(i,m),c=e.clone(i,p),l=e.clone(i,_),f=e.clone(i,y),h=e.clone(i,A),O=t.length;for(a=0;a<O;a+=3){var v=t[a]+r[a],N=t[a+1]+r[a+1],w=t[a+2]+r[a+2];i.x=v,i.y=N,i.z=w,v<s.x&&e.clone(i,s),v>l.x&&e.clone(i,l),N<u.y&&e.clone(i,u),N>f.y&&e.clone(i,f),w<c.z&&e.clone(i,c),w>h.z&&e.clone(i,h)}var M=e.magnitudeSquared(e.subtract(l,s,R)),F=e.magnitudeSquared(e.subtract(f,u,R)),x=e.magnitudeSquared(e.subtract(h,c,R)),D=s,U=l,P=M;F>P&&(P=F,D=u,U=f),x>P&&(P=x,D=c,U=h);var L=S;L.x=.5*(D.x+U.x),L.y=.5*(D.y+U.y),L.z=.5*(D.z+U.z);var b=e.magnitudeSquared(e.subtract(U,L,R)),B=Math.sqrt(b),z=C;z.x=s.x,z.y=u.y,z.z=c.z;var G=I;G.x=l.x,G.y=f.y,G.z=h.z;var q=e.midpoint(z,G,g),V=0;for(a=0;a<O;a+=3){i.x=t[a]+r[a],i.y=t[a+1]+r[a+1],i.z=t[a+2]+r[a+2];var W=e.magnitude(e.subtract(i,q,R));W>V&&(V=W);var k=e.magnitudeSquared(e.subtract(i,L,R));if(k>b){var Y=Math.sqrt(k);B=.5*(B+Y),b=B*B;var H=Y-B;L.x=(B*L.x+H*i.x)/Y,L.y=(B*L.y+H*i.y)/Y,L.z=(B*L.z+H*i.z)/Y}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(q,n.center),n.radius=V),n},E.fromCornerPoints=function(t,r,n){o(n)||(n=new E);var i=e.midpoint(t,r,n.center);return n.radius=e.distance(i,r),n},E.fromEllipsoid=function(t,r){return o(r)||(r=new E),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var D=new e;E.fromBoundingSpheres=function(t,r){if(o(r)||(r=new E),!o(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return E.clone(t[0],r);if(2===n)return E.union(t[0],t[1],r);var i,a=[];for(i=0;i<n;i++)a.push(t[i].center);r=E.fromPoints(a,r);var s=r.center,u=r.radius;for(i=0;i<n;i++){var c=t[i];u=Math.max(u,e.distance(s,c.center,D)+c.radius)}return r.radius=u,r};var U=new e,P=new e,L=new e;E.fromOrientedBoundingBox=function(t,r){o(r)||(r=new E);var n=t.halfAxes,i=l.getColumn(n,0,U),a=l.getColumn(n,1,P),s=l.getColumn(n,2,L);return e.add(i,a,i),e.add(i,s,i),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(i),r},E.clone=function(t,r){if(o(t))return o(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new E(t.center,t.radius)},E.packedLength=4,E.pack=function(e,t,r){r=n(r,0);var o=e.center;return t[r++]=o.x,t[r++]=o.y,t[r++]=o.z,t[r]=e.radius,t},E.unpack=function(e,t,r){t=n(t,0),o(r)||(r=new E);var i=r.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;E.union=function(t,r,n){o(n)||(n=new E);var i=t.center,a=t.radius,s=r.center,u=r.radius,c=e.subtract(s,i,b),l=e.magnitude(c);if(a>=l+u)return t.clone(n),n;if(u>=l+a)return r.clone(n),n;var f=.5*(a+l+u),h=e.multiplyByScalar(c,(-a+f)/l,B);return e.add(h,i,h),e.clone(h,n.center),n.radius=f,n};var z=new e;E.expand=function(t,r,n){n=E.clone(t,n);var o=e.magnitude(e.subtract(r,n.center,z));return o>n.radius&&(n.radius=o),n},E.intersectPlane=function(t,r){var n=t.center,o=t.radius,i=r.normal,a=e.dot(i,n)+r.distance;return a<-o?s.OUTSIDE:a<o?s.INTERSECTING:s.INSIDE},E.transform=function(e,t,r){return o(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var G=new e;E.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,G);return e.magnitudeSquared(n)-t.radius*t.radius},E.transformWithoutScale=function(e,t,r){return o(r)||(r=new E),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var q=new e;E.computePlaneDistances=function(t,r,n,i){o(i)||(i=new u);var a=e.subtract(t.center,r,q),s=e.dot(n,a);return i.start=s-t.radius,i.stop=s+t.radius,i};for(var V=new e,W=new e,k=new e,Y=new e,H=new e,X=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new a;return E.projectTo2D=function(t,r,o){r=n(r,Z);var i=r.ellipsoid,a=t.center,s=t.radius,u=i.geodeticSurfaceNormal(a,V),c=e.cross(e.UNIT_Z,u,W);e.normalize(c,c);var l=e.cross(u,c,k);e.normalize(l,l),e.multiplyByScalar(u,s,u),e.multiplyByScalar(l,s,l),e.multiplyByScalar(c,s,c);var f=e.negate(l,H),h=e.negate(c,Y),d=j,m=d[0];e.add(u,l,m),e.add(m,c,m),m=d[1],e.add(u,l,m),e.add(m,h,m),m=d[2],e.add(u,f,m),e.add(m,h,m),m=d[3],e.add(u,f,m),e.add(m,c,m),e.negate(u,u),m=d[4],e.add(u,l,m),e.add(m,c,m),m=d[5],e.add(u,l,m),e.add(m,h,m),m=d[6],e.add(u,f,m),e.add(m,h,m),m=d[7],e.add(u,f,m),e.add(m,c,m);for(var p=d.length,_=0;_<p;++_){var y=d[_];e.add(a,y,y);var A=i.cartesianToCartographic(y,X);r.project(A,y)}o=E.fromPoints(d,o),a=o.center;var T=a.x,R=a.y,S=a.z;return a.x=S,a.y=T,a.z=R,o},E.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},E.equals=function(t,r){return t===r||o(t)&&o(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,r){return E.computePlaneDistances(this,e,t,r)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.volume=function(){var e=this.radius;return O*e*e*e},E}),define("Core/arrayFill",["./Check","./defaultValue","./defined"],function(e,t,r){"use strict";function n(e,r,n,o){if("function"==typeof e.fill)return e.fill(r,n,o);for(var i=e.length>>>0,a=t(n,0),s=a<0?Math.max(i+a,0):Math.min(a,i),u=t(o,i),c=u<0?Math.max(i+u,0):Math.min(u,i);s<c;)e[s]=r,s++;return e}return n}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},o={};return t(o,{element:{get:function(){if(o.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(o.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(o.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(o.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(o.supportsFullscreen())return null!==o.element}}}),o.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body -;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var o,i=["webkit","moz","o","ms","khtml"],a=0,s=i.length;a<s;++a){var u=i[a];o=u+"RequestFullscreen","function"==typeof t[o]?(n.requestFullscreen=o,r=!0):(o=u+"RequestFullScreen","function"==typeof t[o]&&(n.requestFullscreen=o,r=!0)),o=u+"ExitFullscreen","function"==typeof document[o]?n.exitFullscreen=o:(o=u+"CancelFullScreen","function"==typeof document[o]&&(n.exitFullscreen=o)),o=u+"FullscreenEnabled",void 0!==document[o]?n.fullscreenEnabled=o:(o=u+"FullScreenEnabled",void 0!==document[o]&&(n.fullscreenEnabled=o)),o=u+"FullscreenElement",void 0!==document[o]?n.fullscreenElement=o:(o=u+"FullScreenElement",void 0!==document[o]&&(n.fullscreenElement=o)),o=u+"fullscreenchange",void 0!==document["on"+o]&&("ms"===u&&(o="MSFullscreenChange"),n.fullscreenchange=o),o=u+"fullscreenerror",void 0!==document["on"+o]&&("ms"===u&&(o="MSFullscreenError"),n.fullscreenerror=o)}return r},o.requestFullscreen=function(e,t){o.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},o.exitFullscreen=function(){o.supportsFullscreen()&&document[n.exitFullscreen]()},o}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,o){return t(e).then(r,n,o)}function t(e){var t,r;return e instanceof n?t=e:s(e)?(r=a(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=o(e),t}function r(t){return e(t,i)}function n(e){this.then=e}function o(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return i(e)}})}function i(e){return new n(function(r,n){try{return n?t(n(e)):i(e)}catch(e){return i(e)}})}function a(){function e(e,t,r){return h(e,t,r)}function r(e){return d(e)}function o(e){return d(i(e))}function s(e){return E(e)}var u,c,l,f,h,E,d;return c=new n(e),u={then:e,resolve:r,reject:o,progress:s,promise:c,resolver:{resolve:r,reject:o,progress:s}},l=[],f=[],h=function(e,t,r){var n,o;return n=a(),o="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,o)}),f.push(o),n.promise},E=function(e){return m(f,e),e},d=function(e){return e=t(e),h=e.then,d=t,E=_,m(l,e),f=l=R,e},u}function s(e){return e&&"function"==typeof e.then}function u(t,r,n,o,i){return p(2,arguments),e(t,function(t){function s(e){m(e)}function u(e){d(e)}var c,l,f,h,E,d,m,p,y,A;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],E=a(),c)for(p=E.progress,m=function(e){h.push(e),--l||(d=m=_,E.reject(h))},d=function(e){f.push(e),--c||(d=m=_,E.resolve(f))},A=0;A<y;++A)A in t&&e(t[A],u,s,p);else E.resolve(f);return E.then(n,o,i)})}function c(e,t,r,n){function o(e){return t?t(e[0]):e[0]}return u(e,1,o,r,n)}function l(e,t,r,n){return p(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,o,i,s,u,c;if(i=o=t.length>>>0,n=[],c=a(),i)for(s=function(t,o){e(t,r).then(function(e){n[o]=e,--i||c.resolve(n)},c.reject)},u=0;u<o;u++)u in t?s(t[u],u):--i;else c.resolve(n);return c.promise})}function E(t,r){var n=T.call(arguments,1);return e(t,function(t){var o;return o=t.length,n[0]=function(t,n,i){return e(t,function(t){return e(n,function(e){return r(t,e,i,o)})})},A.apply(t,n)})}function d(t,r,n){var o=arguments.length>2;return e(t,function(e){return e=o?n:e,r.resolve(e),e},function(e){return r.reject(e),i(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function p(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function _(){}function y(e){return e}var A,T,R;return e.defer=a,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=E,e.any=c,e.some=u,e.chain=d,e.isPromise=s,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(R,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(R,t)})})}},T=[].slice,A=[].reduce||function(e){var t,r,n,o,i;if(i=0,t=Object(this),o=t.length>>>0,r=arguments,r.length<=1)for(;;){if(i in t){n=t[i++];break}if(++i>=o)throw new TypeError}else n=r[1];for(;i<o;++i)i in t&&(n=e(n,t[i],i,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,o,i){"use strict";function a(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function s(){if(!t(g)&&(g=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(g=!0,O=a(e[1]))}return g}function u(){return s()&&O}function c(){if(!t(v)&&(v=!1,!s()&&!m()&&/ Safari\/[\.0-9]+/.test(I.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(v=!0,N=a(e[1]))}return v}function l(){return c()&&N}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(I.userAgent);null!==e&&(w=!0,M=a(e[1]),M.isNightly=!!e[2])}return w}function h(){return f()&&M}function E(){if(!t(F)){F=!1;var e;"Microsoft Internet Explorer"===I.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(F=!0,x=a(e[1])):"Netscape"===I.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(F=!0,x=a(e[1]))}return F}function d(){return E()&&x}function m(){if(!t(D)){D=!1;var e=/ Edge\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(D=!0,U=a(e[1]))}return D}function p(){return m()&&U}function _(){if(!t(P)){P=!1;var e=/Firefox\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(P=!0,L=a(e[1]))}return P}function y(){return t(b)||(b=/Windows/i.test(I.appVersion)),b}function A(){return _()&&L}function T(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(I.pointerEnabled)||I.pointerEnabled)),B}function R(){if(!t(G)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;G=t(r)&&""!==r,G&&(z=r)}return G}function S(){return R()?z:void 0}function C(){return C._result}var I;I="undefined"!=typeof navigator?navigator:{};var g,O,v,N,w,M,F,x,D,U,P,L,b,B,z,G;C._promise=void 0,C._result=void 0,C.initialize=function(){if(t(C._promise))return C._promise;var e=i.defer();if(C._promise=e.promise,m())return C._result=!1,e.resolve(C._result),e.promise;var r=new Image;return r.onload=function(){C._result=r.width>0&&r.height>0,e.resolve(C._result)},r.onerror=function(){C._result=!1,e.resolve(C._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(C,{initialized:{get:function(){return t(C._result)}}});var q=[];"undefined"!=typeof ArrayBuffer&&(q.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&q.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&q.push(CanvasPixelArray));var V={isChrome:s,chromeVersion:u,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:E,internetExplorerVersion:d,isEdge:m,edgeVersion:p,isFirefox:_,firefoxVersion:A,isWindows:y,hardwareConcurrency:e(I.hardwareConcurrency,3),supportsPointerEvents:T,supportsImageRenderingPixelated:R,supportsWebP:C,imageRenderingValue:S,typedArrayTypes:q};return V.supportsFullscreen=function(){return o.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,o,i){"use strict";if(!n.supportsTypedArrays())return{};var a={BYTE:i.BYTE,UNSIGNED_BYTE:i.UNSIGNED_BYTE,SHORT:i.SHORT,UNSIGNED_SHORT:i.UNSIGNED_SHORT,INT:i.INT,UNSIGNED_INT:i.UNSIGNED_INT,FLOAT:i.FLOAT,DOUBLE:i.DOUBLE};return a.getSizeInBytes=function(e){switch(e){case a.BYTE:return Int8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.SHORT:return Int16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.INT:return Int32Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case a.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case a.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},a.fromTypedArray=function(e){return e instanceof Int8Array?a.BYTE:e instanceof Uint8Array?a.UNSIGNED_BYTE:e instanceof Int16Array?a.SHORT:e instanceof Uint16Array?a.UNSIGNED_SHORT:e instanceof Int32Array?a.INT:e instanceof Uint32Array?a.UNSIGNED_INT:e instanceof Float32Array?a.FLOAT:e instanceof Float64Array?a.DOUBLE:void 0},a.validate=function(e){return t(e)&&(e===a.BYTE||e===a.UNSIGNED_BYTE||e===a.SHORT||e===a.UNSIGNED_SHORT||e===a.INT||e===a.UNSIGNED_INT||e===a.FLOAT||e===a.DOUBLE)},a.createTypedArray=function(e,t){switch(e){case a.BYTE:return new Int8Array(t);case a.UNSIGNED_BYTE:return new Uint8Array(t);case a.SHORT:return new Int16Array(t);case a.UNSIGNED_SHORT:return new Uint16Array(t);case a.INT:return new Int32Array(t);case a.UNSIGNED_INT:return new Uint32Array(t);case a.FLOAT:return new Float32Array(t);case a.DOUBLE:return new Float64Array(t)}},a.createArrayBufferView=function(t,r,n,o){switch(n=e(n,0),o=e(o,(r.byteLength-n)/a.getSizeInBytes(t)),t){case a.BYTE:return new Int8Array(r,n,o);case a.UNSIGNED_BYTE:return new Uint8Array(r,n,o);case a.SHORT:return new Int16Array(r,n,o);case a.UNSIGNED_SHORT:return new Uint16Array(r,n,o);case a.INT:return new Int32Array(r,n,o);case a.UNSIGNED_INT:return new Uint32Array(r,n,o);case a.FLOAT:return new Float32Array(r,n,o);case a.DOUBLE:return new Float64Array(r,n,o)}},a.fromName=function(e){switch(e){case"BYTE":return a.BYTE;case"UNSIGNED_BYTE":return a.UNSIGNED_BYTE;case"SHORT":return a.SHORT;case"UNSIGNED_SHORT":return a.UNSIGNED_SHORT;case"INT":return a.INT;case"UNSIGNED_INT":return a.UNSIGNED_INT;case"FLOAT":return a.FLOAT;case"DOUBLE":return a.DOUBLE}},o(a)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,i){"use strict";function a(e,r){this.x=t(e,0),this.y=t(r,0)}a.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new a(e,t)},a.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new a(e.x,e.y)},a.fromCartesian3=a.clone,a.fromCartesian4=a.clone,a.packedLength=2,a.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},a.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new a),o.x=e[n++],o.y=e[n],o},a.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var o=0;o<n;++o)a.pack(e[o],t,2*o);return t},a.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var o=0;o<n;o+=2){var i=o/2;t[i]=a.unpack(e,o,t[i])}return t},a.fromArray=a.unpack,a.maximumComponent=function(e){return Math.max(e.x,e.y)},a.minimumComponent=function(e){return Math.min(e.x,e.y)},a.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},a.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},a.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},a.magnitude=function(e){return Math.sqrt(a.magnitudeSquared(e))};var s=new a;a.distance=function(e,t){return a.subtract(e,t,s),a.magnitude(s)},a.distanceSquared=function(e,t){return a.subtract(e,t,s),a.magnitudeSquared(s)},a.normalize=function(e,t){var r=a.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},a.dot=function(e,t){return e.x*t.x+e.y*t.y},a.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},a.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},a.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},a.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},a.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},a.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},a.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},a.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var u=new a;a.lerp=function(e,t,r,n){return a.multiplyByScalar(t,r,u),n=a.multiplyByScalar(e,1-r,n),a.add(u,n,n)};var c=new a,l=new a;a.angleBetween=function(e,t){return a.normalize(e,c),a.normalize(t,l),i.acosClamped(a.dot(c,l))};var f=new a;return a.mostOrthogonalAxis=function(e,t){var r=a.normalize(e,f);return a.abs(r,r),t=r.x<=r.y?a.clone(a.UNIT_X,t):a.clone(a.UNIT_Y,t)},a.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},a.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},a.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&i.equalsEpsilon(e.x,t.x,n,o)&&i.equalsEpsilon(e.y,t.y,n,o)},a.ZERO=o(new a(0,0)),a.UNIT_X=o(new a(1,0)),a.UNIT_Y=o(new a(0,1)),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t,r){return a.equalsEpsilon(this,e,t,r)},a.prototype.toString=function(){return"("+this.x+", "+this.y+")"},a}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,r,n,o,i){"use strict";function a(e,t,n,o){this[0]=r(e,0),this[1]=r(n,0),this[2]=r(t,0),this[3]=r(o,0)}a.packedLength=4,a.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t},a.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new a),o[0]=e[t++],o[1]=e[t++],o[2]=e[t++],o[3]=e[t++],o},a.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new a(e[0],e[2],e[1],e[3])},a.fromArray=function(e,t,o){return t=r(t,0),n(o)||(o=new a),o[0]=e[t],o[1]=e[t+1],o[2]=e[t+2],o[3]=e[t+3],o},a.fromColumnMajorArray=function(e,t){return a.clone(e,t)},a.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new a(e[0],e[1],e[2],e[3])},a.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new a(e.x,0,0,e.y)},a.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new a(e,0,0,e)},a.fromRotation=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=r,t[1]=o,t[2]=-o,t[3]=r,t):new a(r,-o,o,r)},a.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},a.getElementIndex=function(e,t){return 2*e+t},a.getColumn=function(e,t,r){var n=2*t,o=e[n],i=e[n+1];return r.x=o,r.y=i,r},a.setColumn=function(e,t,r,n){n=a.clone(e,n);var o=2*t;return n[o]=r.x,n[o+1]=r.y,n},a.getRow=function(e,t,r){var n=e[t],o=e[t+2];return r.x=n,r.y=o,r},a.setRow=function(e,t,r,n){return n=a.clone(e,n),n[t]=r.x,n[t+2]=r.y,n};var s=new e;a.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],s)),r.y=e.magnitude(e.fromElements(t[2],t[3],s)),r};var u=new e;return a.getMaximumScale=function(t){return a.getScale(t,u),e.maximumComponent(u)},a.multiply=function(e,t,r){var n=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],i=e[1]*t[0]+e[3]*t[1],a=e[1]*t[2]+e[3]*t[3];return r[0]=n,r[1]=i,r[2]=o,r[3]=a,r},a.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r},a.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r},a.multiplyByVector=function(e,t,r){var n=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return r.x=n,r.y=o,r},a.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r},a.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.y,r[3]=e[3]*t.y,r},a.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},a.transpose=function(e,t){var r=e[0],n=e[2],o=e[1],i=e[3];return t[0]=r,t[1]=n,t[2]=o,t[3]=i,t},a.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},a.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},a.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]},a.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r},a.IDENTITY=i(new a(1,0,0,1)),a.ZERO=i(new a(0,0,0,0)),a.COLUMN0ROW0=0,a.COLUMN0ROW1=1,a.COLUMN1ROW0=2,a.COLUMN1ROW1=3,o(a.prototype,{length:{get:function(){return a.packedLength}}}),a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a.prototype.equalsEpsilon=function(e,t){return a.equalsEpsilon(this,e,t)},a.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},a}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var r={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===r.POINTS||e===r.LINES||e===r.LINE_LOOP||e===r.LINE_STRIP||e===r.TRIANGLES||e===r.TRIANGLE_STRIP||e===r.TRIANGLE_FAN}};return e(r)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,o,i,a,s){"use strict";function u(e,t,n,o){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(o,0)}var c=new e;u.fromAxisAngle=function(t,r,o){var i=r/2,a=Math.sin(i);c=e.normalize(t,c);var s=c.x*a,l=c.y*a,f=c.z*a,h=Math.cos(i);return n(o)?(o.x=s,o.y=l,o.z=f,o.w=h,o):new u(s,l,f,h)};var l=[1,2,0],f=new Array(3);u.fromRotationMatrix=function(e,t){var r,o,i,a,c,h=e[s.COLUMN0ROW0],E=e[s.COLUMN1ROW1],d=e[s.COLUMN2ROW2],m=h+E+d;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,o=(e[s.COLUMN1ROW2]-e[s.COLUMN2ROW1])*r,i=(e[s.COLUMN2ROW0]-e[s.COLUMN0ROW2])*r,a=(e[s.COLUMN0ROW1]-e[s.COLUMN1ROW0])*r;else{var p=l,_=0;E>h&&(_=1),d>h&&d>E&&(_=2);var y=p[_],A=p[y];r=Math.sqrt(e[s.getElementIndex(_,_)]-e[s.getElementIndex(y,y)]-e[s.getElementIndex(A,A)]+1);var T=f;T[_]=.5*r,r=.5/r,c=(e[s.getElementIndex(A,y)]-e[s.getElementIndex(y,A)])*r, -T[y]=(e[s.getElementIndex(y,_)]+e[s.getElementIndex(_,y)])*r,T[A]=(e[s.getElementIndex(A,_)]+e[s.getElementIndex(_,A)])*r,o=-T[0],i=-T[1],a=-T[2]}return n(t)?(t.x=o,t.y=i,t.z=a,t.w=c,t):new u(o,i,a,c)};var h=new u,E=new u,d=new u,m=new u;u.fromHeadingPitchRoll=function(t,r){return m=u.fromAxisAngle(e.UNIT_X,t.roll,h),d=u.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=u.multiply(d,m,d),E=u.fromAxisAngle(e.UNIT_Z,-t.heading,h),u.multiply(E,r,r)};var p=new e,_=new e,y=new u,A=new u,T=new u;u.packedLength=4,u.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},u.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new u),o.x=e[t],o.y=e[t+1],o.z=e[t+2],o.w=e[t+3],o},u.packedInterpolationLength=3,u.convertPackedArrayForInterpolation=function(e,t,r,n){u.unpack(e,4*r,T),u.conjugate(T,T);for(var o=0,i=r-t+1;o<i;o++){var a=3*o;u.unpack(e,4*(t+o),y),u.multiply(y,T,y),y.w<0&&u.negate(y,y),u.computeAxis(y,p);var s=u.computeAngle(y);n[a]=p.x*s,n[a+1]=p.y*s,n[a+2]=p.z*s}},u.unpackInterpolationResult=function(t,r,o,i,a){n(a)||(a=new u),e.fromArray(t,0,_);var s=e.magnitude(_);return u.unpack(r,4*i,A),0===s?u.clone(u.IDENTITY,y):u.fromAxisAngle(_,s,y),u.multiply(y,A,a)},u.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new u(e.x,e.y,e.z,e.w)},u.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},u.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},u.magnitude=function(e){return Math.sqrt(u.magnitudeSquared(e))},u.normalize=function(e,t){var r=1/u.magnitude(e),n=e.x*r,o=e.y*r,i=e.z*r,a=e.w*r;return t.x=n,t.y=o,t.z=i,t.w=a,t},u.inverse=function(e,t){var r=u.magnitudeSquared(e);return t=u.conjugate(e,t),u.multiplyByScalar(t,1/r,t)},u.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},u.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},u.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},u.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},u.multiply=function(e,t,r){var n=e.x,o=e.y,i=e.z,a=e.w,s=t.x,u=t.y,c=t.z,l=t.w,f=a*s+n*l+o*c-i*u,h=a*u-n*c+o*l+i*s,E=a*c+n*u-o*s+i*l,d=a*l-n*s-o*u-i*c;return r.x=f,r.y=h,r.z=E,r.w=d,r},u.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},u.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},u.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<a.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},u.computeAngle=function(e){return Math.abs(e.w-1)<a.EPSILON6?0:2*Math.acos(e.w)};var R=new u;u.lerp=function(e,t,r,n){return R=u.multiplyByScalar(t,r,R),n=u.multiplyByScalar(e,1-r,n),u.add(R,n,n)};var S=new u,C=new u,I=new u;u.slerp=function(e,t,r,n){var o=u.dot(e,t),i=t;if(o<0&&(o=-o,i=S=u.negate(t,S)),1-o<a.EPSILON6)return u.lerp(e,i,r,n);var s=Math.acos(o);return C=u.multiplyByScalar(e,Math.sin((1-r)*s),C),I=u.multiplyByScalar(i,Math.sin(r*s),I),n=u.add(C,I,n),u.multiplyByScalar(n,1/Math.sin(s),n)},u.log=function(t,r){var n=a.acosClamped(t.w),o=0;return 0!==n&&(o=n/Math.sin(n)),e.multiplyByScalar(t,o,r)},u.exp=function(t,r){var n=e.magnitude(t),o=0;return 0!==n&&(o=Math.sin(n)/n),r.x=t.x*o,r.y=t.y*o,r.z=t.z*o,r.w=Math.cos(n),r};var g=new e,O=new e,v=new u,N=new u;u.computeInnerQuadrangle=function(t,r,n,o){var i=u.conjugate(r,v);u.multiply(i,n,N);var a=u.log(N,g);u.multiply(i,t,N);var s=u.log(N,O);return e.add(a,s,a),e.multiplyByScalar(a,.25,a),e.negate(a,a),u.exp(a,v),u.multiply(r,v,o)},u.squad=function(e,t,r,n,o,i){var a=u.slerp(e,t,o,v),s=u.slerp(r,n,o,N);return u.slerp(a,s,2*o*(1-o),i)};for(var w=new u,M=1.9011074535173003,F=o.supportsTypedArrays()?new Float32Array(8):[],x=o.supportsTypedArrays()?new Float32Array(8):[],D=o.supportsTypedArrays()?new Float32Array(8):[],U=o.supportsTypedArrays()?new Float32Array(8):[],P=0;P<7;++P){var L=P+1,b=2*L+1;F[P]=1/(L*b),x[P]=L/b}return F[7]=M/136,x[7]=8*M/17,u.fastSlerp=function(e,t,r,n){var o,i=u.dot(e,t);i>=0?o=1:(o=-1,i=-i);for(var a=i-1,s=1-r,c=r*r,l=s*s,f=7;f>=0;--f)D[f]=(F[f]*c-x[f])*a,U[f]=(F[f]*l-x[f])*a;var h=o*r*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u.multiplyByScalar(e,E,w);return u.multiplyByScalar(t,h,n),u.add(d,n,n)},u.fastSquad=function(e,t,r,n,o,i){var a=u.fastSlerp(e,t,o,v),s=u.fastSlerp(r,n,o,N);return u.fastSlerp(a,s,2*o*(1-o),i)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},u.ZERO=i(new u(0,0,0,0)),u.IDENTITY=i(new u(0,0,0,1)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,o,i=0,a=e.length-1;i<=a;)if(n=~~((i+a)/2),(o=r(e[n],t))<0)i=n+1;else{if(!(o>0))return n;a=n-1}return~(a+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=o}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],o=function(e,t,r,n){r||(r=" ");var o=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+o:o+e},i=function(e,t,r,n,i,a){var s=n-e.length;return s>0&&(e=r||!i?o(e,n,a,r):e.slice(0,t.length)+o("",s,"0",!0)+e.slice(t.length)),e},a=function(e,t,r,n,a,s,u){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+o(c.toString(t),s||0,"0",!1),i(e,r,n,a,u)},s=function(e,t,r,n,o,a){return null!=n&&(e=e.slice(0,n)),i(e,"",t,r,o,a)},u=function(e,n,u,c,l,f,h){var E,d,m,p,_;if("%%"==e)return"%";for(var y=!1,A="",T=!1,R=!1,S=" ",C=u.length,I=0;u&&I<C;I++)switch(u.charAt(I)){case" ":A=" ";break;case"+":A="+";break;case"-":y=!0;break;case"'":S=u.charAt(I+1);break;case"0":T=!0;break;case"#":R=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=n?t[n.slice(0,-1)]:t[r++],h){case"s":return s(String(_),y,c,f,T,S);case"c":return s(String.fromCharCode(+_),y,c,f,T);case"b":return a(_,2,R,y,c,f,T);case"o":return a(_,8,R,y,c,f,T);case"x":return a(_,16,R,y,c,f,T);case"X":return a(_,16,R,y,c,f,T).toUpperCase();case"u":return a(_,10,R,y,c,f,T);case"i":case"d":return E=+_||0,E=Math.round(E-E%1),d=E<0?"-":A,_=d+o(String(Math.abs(E)),f,"0",!1),i(_,d,y,c,T);case"e":case"E":case"f":case"F":case"g":case"G":return E=+_,d=E<0?"-":A,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],p=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=d+Math.abs(E)[m](f),i(_,d,y,c,T)[p]();default:return e}};return n.replace(e,u)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,o,i,a,s){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=o,this.second=i,this.millisecond=a,this.isLeapSecond=s}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,o,i,a,s,u,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=m.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var o=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>o&&(n--,o=r[n].offset)}m.addSeconds(e,o,e)}function h(e,r){y.julianDate=e;var n=m.leapSeconds,o=t(n,y,l);if(o<0&&(o=~o),0===o)return m.addSeconds(e,-n[0].offset,r);if(o>=n.length)return m.addSeconds(e,-n[o-1].offset,r);var i=m.secondsDifference(n[o].julianDate,e);return 0===i?m.addSeconds(e,-n[o].offset,r):i<=1?void 0:m.addSeconds(e,-n[--o].offset,r)}function E(e,t,r){var n=t/u.SECONDS_PER_DAY|0;return e+=n,t-=u.SECONDS_PER_DAY*n,t<0&&(e--,t+=u.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function d(e,t,r,n,o,i,a){var s=(t-14)/12|0,c=e+4800+s,l=(1461*c/4|0)+(367*(t-2-12*s)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=i+(n*u.SECONDS_PER_HOUR+o*u.SECONDS_PER_MINUTE+a*u.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var o=0|e;t+=(e-o)*u.SECONDS_PER_DAY,E(o,t,this),n===c.UTC&&f(this)}var p=new i,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new s,A=/^(\d{4})$/,T=/^(\d{4})-(\d{2})$/,R=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,C=/^(\d{4})-?(\d{2})-?(\d{2})$/,I=/([Z+\-])?(\d{2})?:?(\d{2})?$/,g=/^(\d{2})(\.\d+)?/.source+I.source,O=/^(\d{2}):?(\d{2})(\.\d+)?/.source+I.source,v=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+I.source;m.fromGregorianDate=function(e,t){var r=d(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(E(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=d(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(E(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,o,i,s=e.split("T"),u=1,l=1,h=0,p=0,y=0,I=0,N=s[0],w=s[1];if(null!==(s=N.match(C)))r=+s[1],u=+s[2],l=+s[3];else if(null!==(s=N.match(T)))r=+s[1],u=+s[2];else if(null!==(s=N.match(A)))r=+s[1];else{var M;if(null!==(s=N.match(R)))r=+s[1],M=+s[2],i=a(r);else if(null!==(s=N.match(S))){r=+s[1];var F=+s[2],x=+s[3]||0,D=new Date(Date.UTC(r,0,4));M=7*F+x-D.getUTCDay()-3}o=new Date(Date.UTC(r,0,1)),o.setUTCDate(M),u=o.getUTCMonth()+1,l=o.getUTCDate()}i=a(r);var U;if(n(w)){s=w.match(v),null!==s?(h=+s[1],p=+s[2],y=+s[3],I=1e3*+(s[4]||0),U=5):(s=w.match(O),null!==s?(h=+s[1],p=+s[2],y=60*+(s[3]||0),U=4):null!==(s=w.match(g))&&(h=+s[1],p=60*+(s[2]||0),U=3));var P=s[U],L=+s[U+1],b=+(s[U+2]||0);switch(P){case"+":h-=L,p-=b;break;case"-":h+=L,p+=b;break;case"Z":break;default:p+=new Date(Date.UTC(r,u-1,l,h,p)).getTimezoneOffset()}}var B=60===y;for(B&&y--;p>=60;)p-=60,h++;for(;h>=24;)h-=24,l++;for(o=i&&2===u?29:_[u-1];l>o;)l-=o,u++,u>12&&(u-=12,r++),o=i&&2===u?29:_[u-1];for(;p<0;)p+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)u--,u<1&&(u+=12,r--),o=i&&2===u?29:_[u-1],l+=o;var z=d(r,u,l,h,p,y,I);return n(t)?(E(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var N=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,o=h(e,N);n(o)||(m.addSeconds(e,-1,N),o=h(N,N),r=!0);var a=o.dayNumber,s=o.secondsOfDay;s>=43200&&(a+=1);var c=a+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var E=80*c/2447|0,d=c-(2447*E/80|0)|0;c=E/11|0;var p=E+2-12*c|0,_=100*(l-49)+f+c|0,y=s/u.SECONDS_PER_HOUR|0,A=s-y*u.SECONDS_PER_HOUR,T=A/u.SECONDS_PER_MINUTE|0;A-=T*u.SECONDS_PER_MINUTE;var R=0|A,S=(A-R)/u.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(R+=1),n(t)?(t.year=_,t.month=p,t.day=d,t.hour=y,t.minute=T,t.second=R,t.millisecond=S,t.isLeapSecond=r,t):new i(_,p,d,y,T,R,S,r)},m.toDate=function(e){var t=m.toGregorianDate(e,p),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var o=m.toGregorianDate(t,p),i=o.year,a=o.month,s=o.day,u=o.hour,c=o.minute,l=o.second,f=o.millisecond;1e4===i&&1===a&&1===s&&0===u&&0===c&&0===l&&0===f&&(i=9999,a=12,s=31,u=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",i,a,s,u,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",i,a,s,u,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",i,a,s,u,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/u.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*u.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/u.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){y.julianDate=e;var r=m.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return E(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_MINUTE;return E(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*u.SECONDS_PER_HOUR;return E(e.dayNumber,n,r)},m.addDays=function(e,t,r){return E(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new s(new m(2441317,43210,c.TAI),10),new s(new m(2441499,43211,c.TAI),11),new s(new m(2441683,43212,c.TAI),12),new s(new m(2442048,43213,c.TAI),13),new s(new m(2442413,43214,c.TAI),14),new s(new m(2442778,43215,c.TAI),15),new s(new m(2443144,43216,c.TAI),16),new s(new m(2443509,43217,c.TAI),17),new s(new m(2443874,43218,c.TAI),18),new s(new m(2444239,43219,c.TAI),19),new s(new m(2444786,43220,c.TAI),20),new s(new m(2445151,43221,c.TAI),21),new s(new m(2445516,43222,c.TAI),22),new s(new m(2446247,43223,c.TAI),23),new s(new m(2447161,43224,c.TAI),24),new s(new m(2447892,43225,c.TAI),25),new s(new m(2448257,43226,c.TAI),26),new s(new m(2448804,43227,c.TAI),27),new s(new m(2449169,43228,c.TAI),28),new s(new m(2449534,43229,c.TAI),29),new s(new m(2450083,43230,c.TAI),30),new s(new m(2450630,43231,c.TAI),31),new s(new m(2451179,43232,c.TAI),32),new s(new m(2453736,43233,c.TAI),33),new s(new m(2454832,43234,c.TAI),34),new s(new m(2456109,43235,c.TAI),35),new s(new m(2457204,43236,c.TAI),36),new s(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return i.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(a,r).replace(o,t)),this.path&&(this.path=this.path.replace(o,t)),this.query&&(this.query=this.query.replace(o,t)),this.fragment&&(this.fragment=this.fragment.replace(o,t))};var o=/%[0-9a-z]{2}/gi,i=/[a-zA-Z0-9\-\._~]/,a=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var o=new r.constructor;for(var i in r)if(r.hasOwnProperty(i)){var a=r[i];n&&(a=t(a,n)),o[i]=a}return o}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,o,i){i=e(i,!1);var a,s,u,c={},l=t(n),f=t(o);if(l)for(a in n)n.hasOwnProperty(a)&&(s=n[a],f&&i&&"object"==typeof s&&o.hasOwnProperty(a)?(u=o[a],c[a]="object"==typeof u?r(s,u,i):s):c[a]=s);if(f)for(a in o)o.hasOwnProperty(a)&&!c.hasOwnProperty(a)&&(u=o[a],c[a]=u);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function o(e,t){var r;return"undefined"!=typeof document&&(r=document),o._implementation(e,t,r)}return o._implementation=function(n,o,i){if(!r(o)){if(void 0===i)return n;o=t(i.baseURI,i.location.href)}var a=new e(o);return new e(n).resolve(a).toString()},o}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var o="",i=r.lastIndexOf("/");return-1!==i&&(o=r.substring(0,i+1)),n?(r=new e(r),t(r.query)&&(o+="?"+r.query),t(r.fragment)&&(o+="#"+r.fragment),o):o}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,o=n.lastIndexOf("/");return-1!==o&&(n=n.substr(o+1)),o=n.lastIndexOf("."),n=-1===o?"":n.substr(o+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,o=r.protocol;return r.href=t,r.href=r.href,o!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var o=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,o.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},o.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],i=encodeURIComponent(n)+"=";if(r(o))for(var a=0,s=o.length;a<s;++a)t+=i+encodeURIComponent(o[a])+"&";else t+=i+encodeURIComponent(o)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var o=t.replace(/\+/g,"%20").split(/[&;]/),i=0,a=o.length;i<a;++i){var s=o[i].split("="),u=decodeURIComponent(s[0]),c=s[1];c=e(c)?decodeURIComponent(c):"";var l=n[u];"string"==typeof l?n[u]=[l,c]:r(l)?l.push(c):n[u]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function o(t){t=e(t,e.EMPTY_OBJECT);var o=e(t.throttleByServer,!1),i=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=i,this.throttleByServer=o,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return o.prototype.cancel=function(){this.cancelled=!0},o.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new o(this)},o}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var o=r[n],i=o.indexOf(": ");if(i>0){var a=o.substring(0,i),s=o.substring(i+2);t[a]=s}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function o(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,o=-1,i=0;i<r.length;i++)if(r[i]===e&&n[i]===t){o=i;break}return-1!==o&&(this._insideRaiseEvent?(this._toRemove.push(o),r[o]=void 0,n[o]=void 0):(r.splice(o,1),n.splice(o,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,i=r.length;for(e=0;e<i;e++){var a=r[e];t(a)&&r[e].apply(n[e],arguments)}var s=this._toRemove;if((i=s.length)>0){for(s.sort(o),e=0;e<i;e++){var u=s[e];r.splice(u,1),n.splice(u,1)}s.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function o(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function i(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(o.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),o.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},o.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,o=this._array,a=-1,s=!0;s;){var u=2*(e+1),c=u-1;a=c<r&&n(o[c],o[e])<0?c:e,u<r&&n(o[u],o[a])<0&&(a=u),a!==e?(i(o,a,e),e=a):s=!1}},o.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},o.prototype.insert=function(e){var t=this._array,n=this._comparator,o=this._maximumLength,a=this._length++;for(a<t.length?t[a]=e:t.push(e);0!==a;){var s=Math.floor((a-1)/2);if(!(n(t[a],t[s])<0))break;i(t,a,s),a=s}var u;return r(o)&&this._length>o&&(u=t[o],this._length=o),u},o.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return i(r,e,--this._length),this.heapify(e),n}},o}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,o,i,a,s,u,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function E(e){o(e.priorityFunction)&&(e.priority=e.priorityFunction())}function d(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return g[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function p(e){return function(t){e.state!==l.CANCELLED&&(--R.numberOfActiveRequests,--g[e.serverKey],v.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++R.numberOfFailedRequests,--R.numberOfActiveRequests,--g[e.serverKey],v.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=m(e);return e.state=l.ACTIVE,I.push(e),++R.numberOfActiveRequests,++R.numberOfActiveRequestsEver,++g[e.serverKey],e.requestFunction().then(p(e)).otherwise(_(e)),t}function A(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++R.numberOfCancelledRequests,e.deferred.reject(),t&&(--R.numberOfActiveRequests,--g[e.serverKey],++R.numberOfCancelledActiveRequests),o(e.cancelFunction)&&e.cancelFunction()}function T(){h.debugShowStatistics&&(0===R.numberOfActiveRequests&&R.lastNumberOfActiveRequests>0&&(R.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+R.numberOfAttemptedRequests),R.numberOfAttemptedRequests=0),R.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+R.numberOfCancelledRequests),R.numberOfCancelledRequests=0),R.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+R.numberOfCancelledActiveRequests),R.numberOfCancelledActiveRequests=0),R.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+R.numberOfFailedRequests),R.numberOfFailedRequests=0)),R.lastNumberOfActiveRequests=R.numberOfActiveRequests)}var R={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,C=new s({comparator:f});C.maximumLength=S,C.reserve(S);var I=[],g={},O="undefined"!=typeof document?new e(document.location.href):new e,v=new a;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=v,i(h,{statistics:{get:function(){return R}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;C.length>e;){var t=C.pop();A(t)}S=e,C.maximumLength=e,C.reserve(e)}}}),h.update=function(){var e,t,r=0,n=I.length;for(e=0;e<n;++e)t=I[e],t.cancelled&&A(t),t.state===l.ACTIVE?r>0&&(I[e-r]=t):++r;I.length-=r;var o=C.internalArray,i=C.length;for(e=0;e<i;++e)E(o[e]);C.resort();for(var a=Math.max(h.maximumRequests-I.length,0),s=0;s<a&&C.length>0;)t=C.pop(),t.cancelled?A(t):!t.throttleByServer||d(t.serverKey)?(y(t),++s):A(t);T()},h.getServerKey=function(t){var r=new e(t).resolve(O);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var i=g[n];return o(i)||(g[n]=0),n},h.request=function(e){if(c(e.url)||u(e.url))return v.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++R.numberOfAttemptedRequests,o(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||d(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(I.length>=h.maximumRequests)){E(e);var t=C.insert(e);if(o(t)){if(t===e)return;A(t)}return m(e)}}},h.clearForSpecs=function(){for(;C.length>0;){A(C.pop())}for(var e=I.length,t=0;t<e;++t)A(I[t]);I.length=0,g={},R.numberOfAttemptedRequests=0,R.numberOfActiveRequests=0,R.numberOfCancelledRequests=0,R.numberOfCancelledActiveRequests=0,R.numberOfFailedRequests=0,R.numberOfActiveRequestsEver=0,R.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return g[e]},h.requestHeap=C,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var o=n.getAuthority();if(t(o)){if(-1!==o.indexOf("@")){o=o.split("@")[1]}if(-1===o.indexOf(":")){var i=n.getScheme();if(t(i)||(i=window.location.protocol,i=i.substring(0,i.length-1)),"http"===i)o+=":80";else{if("https"!==i)return;o+=":443"}}return o}}var o={},i={};return o.add=function(e,r){var n=e.toLowerCase()+":"+r;t(i[n])||(i[n]=!0)},o.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(i[n])&&delete i[n]},o.contains=function(e){var r=n(e);return!(!t(r)||!t(i[r]))},o.clear=function(){i={}},o}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E,d,m,p,_,y,A,T,R,S,C,I,g){"use strict";function O(e,t,r,n){var o=e.query;if(!s(o)||0===o.length)return{};var i;if(-1===o.indexOf("=")){var a={};a[o]=void 0,i=a}else i=A(o);t._queryParameters=r?M(i,t._queryParameters,n):i,e.query=void 0}function v(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||s(r[n[0]])?e.query=y(r):e.query=n[0]}function N(e,t){return s(e)?s(e.clone)?e.clone():o(e):t}function w(e){if(e.state===C.ISSUED||e.state===C.ACTIVE)throw new I("The Resource is already being fetched.");e.state=C.UNISSUED,e.deferred=void 0}function M(e,t,r){if(!r)return i(e,t);var n=o(e,!0);for(var a in t)if(t.hasOwnProperty(a)){var u=n[a],c=t[a] -;s(u)?(Array.isArray(u)||(u=n[a]=[u]),n[a]=u.concat(c)):n[a]=Array.isArray(c)?c.slice():c}return n}function F(t){t=a(t,a.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=a(t.request,new T),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=a(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);O(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function x(e){var r=e.resource,n=e.flipY,o=e.preferImageBitmap,i=r.request;i.url=r.url,i.requestFunction=function(){var e=r.url,i=!1;r.isDataUri||r.isBlobUri||(i=r.isCrossOriginUrl);var a=t.defer();return F._Implementations.createImage(e,i,a,n,o),a.promise};var a=S.request(i);if(s(a))return a.otherwise(function(e){return i.state!==C.FAILED?t.reject(e):r.retryOnError(e).then(function(a){return a?(i.state=C.UNISSUED,i.deferred=void 0,x({resource:r,flipY:n,preferImageBitmap:o})):t.reject(e)})})}function D(e,r,n){var o={};o[r]=n,e.setQueryParameters(o);var i=e.request;i.url=e.url,i.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},F._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var a=S.request(i);if(s(a))return a.otherwise(function(o){return i.state!==C.FAILED?t.reject(o):e.retryOnError(o).then(function(a){return a?(i.state=C.UNISSUED,i.deferred=void 0,D(e,r,n)):t.reject(o)})})}function U(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function P(e,t){for(var r=U(e,t),n=new ArrayBuffer(r.length),o=new Uint8Array(n),i=0;i<r.length;i++)o[i]=r.charCodeAt(i);return n}function L(e,t){t=a(t,"");var r=e[1],n=!!e[2],o=e[3];switch(t){case"":case"text":return U(n,o);case"arraybuffer":return P(n,o);case"blob":var i=P(n,o);return new Blob([i],{type:r});case"document":return(new DOMParser).parseFromString(U(n,o),r);case"json":return JSON.parse(U(n,o))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(g.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,o,i,a){var s=global.require,u=s("url").parse(e),c=s("https:"===u.protocol?"https":"http"),l=s("zlib"),f={protocol:u.protocol,hostname:u.hostname,port:u.port,path:u.path,query:u.query,method:r,headers:o};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void i.reject(new R(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?i.reject(new I("Error decompressing response.")):i.resolve(B(r,t))}):i.resolve(B(n,t))})}).on("error",function(e){i.reject(new R)}).end()}var G=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();F.createIfNeeded=function(e){return e instanceof F?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new F({url:e})};var q;F.supportsImageBitmapOptions=function(){if(s(q))return q;if("function"!=typeof createImageBitmap)return q=t.resolve(!1);return q=F.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},u(F,{isBlobSupported:{get:function(){return G}}}),u(F.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);O(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return E(this._url)}},isDataUri:{get:function(){return p(this._url)}},isBlobUri:{get:function(){return d(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),F.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&v(n,this);var o=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),i=this._templateValues;return o=o.replace(/{(.*?)}/g,function(e,t){var r=i[t];return s(r)?encodeURIComponent(r):e}),r&&s(this.proxy)&&(o=this.proxy.getURL(o)),o},F.prototype.setQueryParameters=function(e,t){this._queryParameters=t?M(this._queryParameters,e,!1):M(e,this._queryParameters,!1)},F.prototype.appendQueryParameters=function(e){this._queryParameters=M(e,this._queryParameters,!0)},F.prototype.setTemplateValues=function(e,t){this._templateValues=t?i(this._templateValues,e):i(e,this._templateValues)},F.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,s(t.url)){var n=new e(t.url);O(n,r,!0,a(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return s(t.queryParameters)&&(r._queryParameters=i(t.queryParameters,r._queryParameters)),s(t.templateValues)&&(r._templateValues=i(t.templateValues,r.templateValues)),s(t.headers)&&(r.headers=i(t.headers,r.headers)),s(t.proxy)&&(r.proxy=t.proxy),s(t.request)&&(r.request=t.request),s(t.retryCallback)&&(r.retryCallback=t.retryCallback),s(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},F.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},F.prototype.clone=function(e){return s(e)||(e=new F({url:this._url})),e._url=this._url,e._queryParameters=o(this._queryParameters),e._templateValues=o(this._templateValues),e.headers=o(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},F.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},F.prototype.appendForwardSlash=function(){this._url=r(this._url)},F.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},F.fetchArrayBuffer=function(e){return new F(e).fetchArrayBuffer()},F.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},F.fetchBlob=function(e){return new F(e).fetchBlob()},F.prototype.fetchImage=function(e){e=a(e,a.EMPTY_OBJECT);var r=a(e.preferImageBitmap,!1),n=a(e.preferBlob,!1),o=a(e.flipY,!1);if(w(this.request),!G||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return x({resource:this,flipY:o,preferImageBitmap:r});var i=this.fetchBlob();if(s(i)){var u,c,l,f;return F.supportsImageBitmapOptions().then(function(e){return u=e,c=u&&r,i}).then(function(e){if(s(e)){if(f=e,c)return F.createImageBitmapFromBlob(e,{flipY:o,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new F({url:t}),x({resource:l,flipY:o,preferImageBitmap:!1})}}).then(function(e){if(s(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return s(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},F.fetchImage=function(e){return new F(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},F.prototype.fetchText=function(){return this.fetch({responseType:"text"})},F.fetchText=function(e){return new F(e).fetchText()},F.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(s(e))return e.then(function(e){if(s(e))return JSON.parse(e)})},F.fetchJson=function(e){return new F(e).fetchJson()},F.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},F.fetchXML=function(e){return new F(e).fetchXML()},F.prototype.fetchJsonp=function(e){e=a(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(s(window[t]));return D(this,e,t)},F.fetchJsonp=function(e){return new F(e).fetchJsonp(e.callbackParameterName)},F.prototype._makeRequest=function(e){var r=this;w(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var o=e.responseType,a=i(e.headers,r.headers),u=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=F._Implementations.loadWithXhr(r.url,o,c,l,a,f,u);return s(h)&&s(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var o=S.request(n);if(s(o))return o.then(function(e){return e}).otherwise(function(o){return n.state!==C.FAILED?t.reject(o):r.retryOnError(o).then(function(i){return i?(n.state=C.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(o)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;F.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},F.fetch=function(e){return new F(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},F.delete=function(e){return new F(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},F.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},F.head=function(e){return new F(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},F.options=function(e){return new F(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F.prototype.post=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},F.post=function(e){return new F(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F.prototype.put=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},F.put=function(e){return new F(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F.prototype.patch=function(e,t){return n.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},F.patch=function(e){return new F(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},F._Implementations={},F._Implementations.createImage=function(e,t,r,n,o){F.supportsImageBitmapOptions().then(function(n){return n&&o?F.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(s(e))return F.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){s(e)&&r.resolve(e)}).otherwise(r.reject)},F.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return F._Implementations.loadWithXhr=function(e,t,r,n,o,i,a){var u=V.exec(e);if(null!==u)return void i.resolve(L(u,t));if(W)return void z(e,t,r,n,o,i,a);var c=new XMLHttpRequest;if(g.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),s(a)&&s(c.overrideMimeType)&&c.overrideMimeType(a),s(o))for(var l in o)o.hasOwnProperty(l)&&c.setRequestHeader(l,o[l]);s(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void i.reject(new R(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var o=c.getAllResponseHeaders(),a=o.trim().split(/[\r\n]+/),u={};return a.forEach(function(e){var t=e.split(": "),r=t.shift();u[r]=t.join(": ")}),void i.resolve(u)}if(204===c.status)i.resolve();else if(!s(e)||s(t)&&n!==t)if("json"===t&&"string"==typeof e)try{i.resolve(JSON.parse(e))}catch(e){i.reject(e)}else(""===n||"document"===n)&&s(c.responseXML)&&c.responseXML.hasChildNodes()?i.resolve(c.responseXML):""!==n&&"text"!==n||!s(c.responseText)?i.reject(new I("Invalid XMLHttpRequest response type.")):i.resolve(c.responseText);else i.resolve(e)},c.onerror=function(e){i.reject(new R)},c.send(n),c},F._Implementations.loadAndExecuteScript=function(e,t,r){return _(e,t).otherwise(r.reject)},F._DefaultImplementations={},F._DefaultImplementations.createImage=F._Implementations.createImage,F._DefaultImplementations.loadWithXhr=F._Implementations.loadWithXhr,F._DefaultImplementations.loadAndExecuteScript=F._Implementations.loadAndExecuteScript,F.DEFAULT=l(new F({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),F}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,o,i,a,s,u,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))d(this,t.data);else if(n(t.url)){var o=u.createIfNeeded(t.url),i=this;this._downloadPromise=e(o.fetchJson(),function(e){d(i,e)},function(){i._dataError="An error occurred while retrieving the EOP data from the URL "+o.url+"."})}else d(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function E(e,t){return a.compare(e.julianDate,t)}function d(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var o=r.columnNames.indexOf("modifiedJulianDateUtc"),i=r.columnNames.indexOf("xPoleWanderRadians"),u=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),d=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(o<0||i<0||u<0||c<0||h<0||d<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var p=e._samples=r.samples,_=e._dates=[];e._dateColumn=o,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=u,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=d,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,A=e._addNewLeapSeconds,T=0,R=p.length;T<R;T+=e._columnCount){var S=p[T+o],C=p[T+m],I=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,g=new a(I,C,f.TAI);if(_.push(g),A){if(C!==y&&n(y)){var O=a.leapSeconds,v=t(O,g,E);if(v<0){var N=new s(g,C);O.splice(~v,0,N)}}y=C}}}function m(e,t,r,n,o){var i=r*n;o.xPoleWander=t[i+e._xPoleWanderRadiansColumn],o.yPoleWander=t[i+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[i+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[i+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[i+e._ut1MinusUtcSecondsColumn]}function p(e,t,r){return t+e*(r-t)}function _(e,t,r,n,o,i,s){var u=e._columnCount;if(i>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;var c=t[o],l=t[i];if(c.equals(l)||n.equals(c))return m(e,r,o,u,s),s;if(n.equals(l))return m(e,r,i,u,s),s;var f=a.secondsDifference(n,c)/a.secondsDifference(l,c),h=o*u,E=i*u,d=r[h+e._ut1MinusUtcSecondsColumn],_=r[E+e._ut1MinusUtcSecondsColumn],y=_-d;if(y>.5||y<-.5){var A=r[h+e._taiMinusUtcSecondsColumn],T=r[E+e._taiMinusUtcSecondsColumn];A!==T&&(l.equals(n)?d=_:_-=T-A)}return s.xPoleWander=p(f,r[h+e._xPoleWanderRadiansColumn],r[E+e._xPoleWanderRadiansColumn]),s.yPoleWander=p(f,r[h+e._yPoleWanderRadiansColumn],r[E+e._yPoleWanderRadiansColumn]),s.xPoleOffset=p(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[E+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=p(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[E+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=p(f,d,_),s}return h.NONE=i({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new o(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new o(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var i=this._dates,s=this._lastIndex,u=0,l=0;if(n(s)){var f=i[s],h=i[s+1],E=a.lessThanOrEquals(f,e),d=!n(h),m=d||a.greaterThanOrEquals(h,e);if(E&&m)return u=s,!d&&h.equals(e)&&++u,l=u+1,_(this,i,this._samples,e,u,l,r),r}var p=t(i,e,a.compare,this._dateColumn);return p>=0?(p<i.length-1&&i[p+1].equals(e)&&++p,u=p,l=p):(l=~p,(u=l-1)<0&&(u=0)),this._lastIndex=u,_(this,i,this._samples,e,u,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function o(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return o.fromQuaternion=function(e,r){t(r)||(r=new o);var i=2*(e.w*e.y-e.z*e.x),a=1-2*(e.x*e.x+e.y*e.y),s=2*(e.w*e.x+e.y*e.z),u=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,u),r.roll=Math.atan2(s,a),r.pitch=-n.asinClamped(i),r},o.fromDegrees=function(e,r,i,a){return t(a)||(a=new o),a.heading=e*n.RADIANS_PER_DEGREE,a.pitch=r*n.RADIANS_PER_DEGREE,a.roll=i*n.RADIANS_PER_DEGREE,a},o.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new o(e.heading,e.pitch,e.roll)},o.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},o.equalsEpsilon=function(e,r,o,i){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,o,i)&&n.equalsEpsilon(e.pitch,r.pitch,o,i)&&n.equalsEpsilon(e.roll,r.roll,o,i)},o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},o}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,o){"use strict";function i(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),o=d.exec(n);if(null!==o)return o[1]}}function a(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function s(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(o.toUrl)?r("..",l("Core/buildModuleUrl.js")):i(),h=new n({url:a(t)}),h.appendForwardSlash(),h}function u(e){return a(o.toUrl("../"+e))}function c(e){return s().getDerivedResource({url:e}).url}function l(t){return e(E)||(E=e(define.amd)&&!define.amd.toUrlUndefined&&e(o.toUrl)?u:c),E(t)}var f,h,E,d=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=d,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=s,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,o,i,a,s){"use strict";function u(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=a.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new i(this._sampleZeroJulianEphemerisDate,0,s.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),o=this._xTable=new Array(t+1),u=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=u,o[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,i.daysDifference(n,e._sampleZeroDateTT)}function l(r,o){if(r._chunkDownloadsInProgress[o])return r._chunkDownloadsInProgress[o];var i=e.defer();r._chunkDownloadsInProgress[o]=i;var s,u=r._xysFileUrlTemplate;return s=n(u)?u.getDerivedResource({templateValues:{0:o}}):new a({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+o+".json")}),e(s.fetchJson(),function(e){r._chunkDownloadsInProgress[o]=!1;for(var t=r._samples,n=e.samples,a=o*r._samplesPerXysFile*3,s=0,u=n.length;s<u;++s)t[a+s]=n[s];i.resolve()}),i.promise}var f=new i(0,0,s.TAI);return u.prototype.preload=function(t,r,n,o){var i=c(this,t,r),a=c(this,n,o),s=i/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);var u=a/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;u>=this._totalSamples&&(u=this._totalSamples-1);for(var f=s/this._samplesPerXysFile|0,h=u/this._samplesPerXysFile|0,E=[],d=f;d<=h;++d)E.push(l(this,d));return e.all(E)},u.prototype.computeXysRadians=function(e,t,r){var i=c(this,e,t);if(!(i<0)){var a=i/this._stepSizeDays|0;if(!(a>=this._totalSamples)){var s=this._interpolationOrder,u=a-(s/2|0);u<0&&(u=0);var f=u+s;f>=this._totalSamples&&(f=this._totalSamples-1,(u=f-s)<0&&(u=0));var h=!1,E=this._samples;if(n(E[3*u])||(l(this,u/this._samplesPerXysFile|0),h=!0),n(E[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new o(0,0,0);var d,m,p=i-u*this._stepSizeDays,_=this._work,y=this._denominators,A=this._coef,T=this._xTable;for(d=0;d<=s;++d)_[d]=p-T[d];for(d=0;d<=s;++d){for(A[d]=1,m=0;m<=s;++m)m!==d&&(A[d]*=_[m]);A[d]*=y[d];var R=3*(u+d);r.x+=A[d]*E[R++],r.y+=A[d]*E[R++],r.s+=A[d]*E[R]}return r}}}},u}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E,d,m,p,_,y,A,T){"use strict";var R={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},C={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},I={},g={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},O=new r,v=new r,N=new r;R.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new u("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,o=S[e][t],i=e+t;return s(I[i])?n=I[i]:(n=function(n,i,u){if(s(u)||(u=new y),p.equalsEpsilon(n.x,0,p.EPSILON14)&&p.equalsEpsilon(n.y,0,p.EPSILON14)){var c=p.sign(n.z);r.unpack(C[e],0,O),"east"!==e&&"west"!==e&&r.multiplyByScalar(O,c,O),r.unpack(C[t],0,v),"east"!==t&&"west"!==t&&r.multiplyByScalar(v,c,v),r.unpack(C[o],0,N),"east"!==o&&"west"!==o&&r.multiplyByScalar(N,c,N)}else{i=a(i,f.WGS84),i.geodeticSurfaceNormal(n,g.up);var l=g.up,h=g.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,g.east),r.cross(l,h,g.north),r.multiplyByScalar(g.up,-1,g.down),r.multiplyByScalar(g.east,-1,g.west),r.multiplyByScalar(g.north,-1,g.south),O=g[e],v=g[t],N=g[o]}return u[0]=O.x,u[1]=O.y,u[2]=O.z,u[3]=0,u[4]=v.x,u[5]=v.y,u[6]=v.z,u[7]=0,u[8]=N.x,u[9]=N.y,u[10]=N.z,u[11]=0,u[12]=n.x,u[13]=n.y,u[14]=n.z,u[15]=1,u},I[i]=n),n},R.eastNorthUpToFixedFrame=R.localFrameToFixedFrameGenerator("east","north"),R.northEastDownToFixedFrame=R.localFrameToFixedFrameGenerator("north","east"),R.northUpEastToFixedFrame=R.localFrameToFixedFrameGenerator("north","up"),R.northWestUpToFixedFrame=R.localFrameToFixedFrameGenerator("north","west");var w=new A,M=new r(1,1,1),F=new y;R.headingPitchRollToFixedFrame=function(e,t,n,o,i){o=a(o,R.eastNorthUpToFixedFrame);var s=A.fromHeadingPitchRoll(t,w),u=y.fromTranslationQuaternionRotationScale(r.ZERO,s,M,F);return i=o(e,n,i),y.multiply(i,u,i)};var x=new y,D=new _;R.headingPitchRollQuaternion=function(e,t,r,n,o){var i=R.headingPitchRollToFixedFrame(e,t,r,n,x),a=y.getRotation(i,D);return A.fromRotationMatrix(a,o)};var U=new r(1,1,1),P=new r,L=new y,b=new y,B=new _,z=new A;R.fixedFrameToHeadingPitchRoll=function(e,t,n,o){t=a(t,f.WGS84),n=a(n,R.eastNorthUpToFixedFrame),s(o)||(o=new h);var i=y.getTranslation(e,P);if(r.equals(i,r.ZERO))return o.heading=0,o.pitch=0,o.roll=0,o;var u=y.inverseTransformation(n(i,t,L),L),c=y.setScale(e,U,b);c=y.setTranslation(c,r.ZERO,c),u=y.multiply(u,c,u);var l=A.fromRotationMatrix(y.getRotation(u,B),z);return l=A.normalize(l,l),h.fromQuaternion(l,o)};var G=p.TWO_PI/86400,q=new m;R.computeTemeToPseudoFixedMatrix=function(e,t){q=m.addSeconds(e,-m.computeTaiMinusUtc(e),q);var r,n=q.dayNumber,o=q.secondsOfDay,i=n-2451545;r=o>=43200?(i+.5)/T.DAYS_PER_JULIAN_CENTURY:(i-.5)/T.DAYS_PER_JULIAN_CENTURY;var a=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),u=a*G%p.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(o+.5*T.SECONDS_PER_DAY)%T.SECONDS_PER_DAY,f=u+c*l,h=Math.cos(f),E=Math.sin(f);return s(t)?(t[0]=h,t[1]=-E,t[2]=0,t[3]=E,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,E,0,-E,h,0,0,0,1)},R.iau2006XysData=new E,R.earthOrientationParameters=c.NONE;R.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,o=t.stop.dayNumber,i=t.stop.secondsOfDay+32.184,a=R.iau2006XysData.preload(r,n,o,i),s=R.earthOrientationParameters.getPromiseToLoad();return e.all([a,s])},R.computeIcrfToFixedMatrix=function(e,t){s(t)||(t=new _);var r=R.computeFixedToIcrfMatrix(e,t);if(s(r))return _.transpose(r,t)};var V=new d(0,0,0),W=new l(0,0,0,0,0,0),k=new _,Y=new _;R.computeFixedToIcrfMatrix=function(e,t){s(t)||(t=new _);var r=R.earthOrientationParameters.compute(e,W);if(s(r)){var n=e.dayNumber,o=e.secondsOfDay+32.184,i=R.iau2006XysData.computeXysRadians(n,o,V);if(s(i)){var a=i.x+r.xPoleOffset,u=i.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-a*a-u*u)),l=k;l[0]=1-c*a*a,l[3]=-c*a*u,l[6]=a,l[1]=-c*a*u,l[4]=1-c*u*u,l[7]=u,l[2]=-a,l[5]=-u,l[8]=1-c*(a*a+u*u);var f=_.fromRotationZ(-i.s,Y),h=_.multiply(l,f,k),E=e.dayNumber,d=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=E-2451545,A=d/T.SECONDS_PER_DAY,S=.779057273264+A+.00273781191135448*(y+A);S=S%1*p.TWO_PI;var C=_.fromRotationZ(S,Y),I=_.multiply(h,C,k),g=Math.cos(r.xPoleWander),O=Math.cos(r.yPoleWander),v=Math.sin(r.xPoleWander),N=Math.sin(r.yPoleWander),w=n-2451545+o/T.SECONDS_PER_DAY;w/=36525;var M=-47e-6*w*p.RADIANS_PER_DEGREE/3600,F=Math.cos(M),x=Math.sin(M),D=Y;return D[0]=g*F,D[1]=g*x,D[2]=v,D[3]=-O*x+N*v*F,D[4]=O*F+N*v*x,D[5]=-N*g,D[6]=-N*x-O*v*F,D[7]=N*F-O*v*x,D[8]=O*g,_.multiply(I,D,t)}}};var H=new n;R.pointToWindowCoordinates=function(e,t,r,n){return n=R.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},R.pointToGLWindowCoordinates=function(e,r,o,i){s(i)||(i=new t);var a=H;return y.multiplyByVector(e,n.fromElements(o.x,o.y,o.z,1,a),a),n.multiplyByScalar(a,1/a.w,a),y.multiplyByVector(r,a,a),t.fromCartesian4(a,i)};var X=new r,j=new r,K=new r;R.rotationMatrixFromPositionVelocity=function(e,t,n,o){var i=a(n,f.WGS84).geodeticSurfaceNormal(e,X),u=r.cross(t,i,j);r.equalsEpsilon(u,r.ZERO,p.EPSILON6)&&(u=r.clone(r.UNIT_X,u));var c=r.cross(u,t,K);return r.normalize(c,c),r.cross(t,c,u),r.negate(u,u),r.normalize(u,u),s(o)||(o=new _),o[0]=t.x,o[1]=t.y,o[2]=t.z,o[3]=u.x,o[4]=u.y,o[5]=u.z,o[6]=c.x,o[7]=c.y,o[8]=c.z,o};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new o,Q=new r,$=new r,ee=new _,te=new y,re=new y;return R.basisTo2D=function(e,t,n){var o=y.getTranslation(t,$),i=e.ellipsoid,a=i.cartesianToCartographic(o,J),s=e.project(a,Q);r.fromElements(s.z,s.x,s.y,s);var u=R.eastNorthUpToFixedFrame(o,i,te),c=y.inverseTransformation(u,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,s,n),n},R.wgs84To2DModelMatrix=function(e,t,n){var o=e.ellipsoid,i=R.eastNorthUpToFixedFrame(t,o,te),a=y.inverseTransformation(i,re),s=o.cartesianToCartographic(t,J),u=e.project(s,Q);r.fromElements(u.z,u.x,u.y,u);var c=y.fromTranslation(u,te);return y.multiply(Z,a,n),y.multiply(c,n,n),n},R}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E,d,m){"use strict";function p(e){e=o(e,o.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=o(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=o(e.geometryType,u.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}p.computeNumberOfVertices=function(e){var t=-1;for(var r in e.attributes)if(e.attributes.hasOwnProperty(r)&&i(e.attributes[r])&&i(e.attributes[r].values)){var n=e.attributes[r],o=n.values.length/n.componentsPerAttribute;t=o}return t};var _=new r,y=new t,A=new f,T=[new r,new r,new r],R=[new e,new e,new e],S=[new e,new e,new e],C=new t,I=new E,g=new f,O=new c;return p._textureCoordinateRotationPoints=function(n,o,i,a){var s,u=d.center(a,_),h=r.toCartesian(u,i,y),p=m.eastNorthUpToFixedFrame(h,i,A),v=f.inverse(p,A),N=R,w=T;w[0].longitude=a.west,w[0].latitude=a.south,w[1].longitude=a.west,w[1].latitude=a.north,w[2].longitude=a.east,w[2].latitude=a.south;var M=C;for(s=0;s<3;s++)r.toCartesian(w[s],i,M),M=f.multiplyByPointAsVector(v,M,M),N[s].x=M.x,N[s].y=M.y;var F=E.fromAxisAngle(t.UNIT_Z,-o,I),x=l.fromQuaternion(F,g),D=n.length,U=Number.POSITIVE_INFINITY,P=Number.POSITIVE_INFINITY,L=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(s=0;s<D;s++)M=f.multiplyByPointAsVector(v,n[s],M),M=l.multiplyByVector(x,M,M),U=Math.min(U,M.x),P=Math.min(P,M.y),L=Math.max(L,M.x),b=Math.max(b,M.y);var B=c.fromRotation(o,O),z=S;z[0].x=U,z[0].y=P,z[1].x=U,z[1].y=b,z[2].x=L,z[2].y=P;var G=N[0],q=N[2].x-G.x,V=N[1].y-G.y;for(s=0;s<3;s++){var W=z[s];c.multiplyByVector(B,W,W),W.x=(W.x-G.x)/q,W.y=(W.y-G.y)/V}var k=z[0],Y=z[1],H=z[2],X=new Array(6);return e.pack(k,X),e.pack(Y,X,2),e.pack(H,X,4),X},p}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return n}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT), -this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,r,n){"use strict";function o(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return o.POSITION_ONLY=n(new o({position:!0})),o.POSITION_AND_NORMAL=n(new o({position:!0,normal:!0})),o.POSITION_NORMAL_AND_ST=n(new o({position:!0,normal:!0,st:!0})),o.POSITION_AND_ST=n(new o({position:!0,st:!0})),o.POSITION_AND_COLOR=n(new o({position:!0,color:!0})),o.ALL=n(new o({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),o.DEFAULT=o.POSITION_NORMAL_AND_ST,o.packedLength=6,o.pack=function(t,r,n){return n=e(n,0),r[n++]=t.position?1:0,r[n++]=t.normal?1:0,r[n++]=t.st?1:0,r[n++]=t.tangent?1:0,r[n++]=t.bitangent?1:0,r[n]=t.color?1:0,r},o.unpack=function(r,n,i){return n=e(n,0),t(i)||(i=new o),i.position=1===r[n++],i.normal=1===r[n++],i.st=1===r[n++],i.tangent=1===r[n++],i.bitangent=1===r[n++],i.color=1===r[n],i},o.clone=function(e,r){if(t(e))return t(r)||(r=new o),r.position=e.position,r.normal=e.normal,r.st=e.st,r.tangent=e.tangent,r.bitangent=e.bitangent,r.color=e.color,r},o}),define("Core/BoxGeometry",["./arrayFill","./BoundingSphere","./Cartesian3","./Check","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./PrimitiveType","./VertexFormat"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E){"use strict";function d(e){e=i(e,i.EMPTY_OBJECT);var t=e.minimum,n=e.maximum,o=i(e.vertexFormat,E.DEFAULT);this._minimum=r.clone(t),this._maximum=r.clone(n),this._vertexFormat=o,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}var m=new r;d.fromDimensions=function(e){e=i(e,i.EMPTY_OBJECT);var t=e.dimensions,n=r.multiplyByScalar(t,.5,new r);return new d({minimum:r.negate(n,new r),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})},d.fromAxisAlignedBoundingBox=function(e){return new d({minimum:e.minimum,maximum:e.maximum})},d.packedLength=2*r.packedLength+E.packedLength+1,d.pack=function(e,t,n){return n=i(n,0),r.pack(e._minimum,t,n),r.pack(e._maximum,t,n+r.packedLength),E.pack(e._vertexFormat,t,n+2*r.packedLength),t[n+2*r.packedLength+E.packedLength]=i(e._offsetAttribute,-1),t};var p=new r,_=new r,y=new E,A={minimum:p,maximum:_,vertexFormat:y,offsetAttribute:void 0};d.unpack=function(e,t,n){t=i(t,0);var o=r.unpack(e,t,p),s=r.unpack(e,t+r.packedLength,_),u=E.unpack(e,t+2*r.packedLength,y),c=e[t+2*r.packedLength+E.packedLength];return a(n)?(n._minimum=r.clone(o,n._minimum),n._maximum=r.clone(s,n._maximum),n._vertexFormat=E.clone(u,n._vertexFormat),n._offsetAttribute=-1===c?void 0:c,n):(A.offsetAttribute=-1===c?void 0:c,new d(A))},d.createGeometry=function(n){var i=n._minimum,s=n._maximum,E=n._vertexFormat;if(!r.equals(i,s)){var d,p,_=new l;if(E.position&&(E.st||E.normal||E.tangent||E.bitangent)){if(E.position&&(p=new Float64Array(72),p[0]=i.x,p[1]=i.y,p[2]=s.z,p[3]=s.x,p[4]=i.y,p[5]=s.z,p[6]=s.x,p[7]=s.y,p[8]=s.z,p[9]=i.x,p[10]=s.y,p[11]=s.z,p[12]=i.x,p[13]=i.y,p[14]=i.z,p[15]=s.x,p[16]=i.y,p[17]=i.z,p[18]=s.x,p[19]=s.y,p[20]=i.z,p[21]=i.x,p[22]=s.y,p[23]=i.z,p[24]=s.x,p[25]=i.y,p[26]=i.z,p[27]=s.x,p[28]=s.y,p[29]=i.z,p[30]=s.x,p[31]=s.y,p[32]=s.z,p[33]=s.x,p[34]=i.y,p[35]=s.z,p[36]=i.x,p[37]=i.y,p[38]=i.z,p[39]=i.x,p[40]=s.y,p[41]=i.z,p[42]=i.x,p[43]=s.y,p[44]=s.z,p[45]=i.x,p[46]=i.y,p[47]=s.z,p[48]=i.x,p[49]=s.y,p[50]=i.z,p[51]=s.x,p[52]=s.y,p[53]=i.z,p[54]=s.x,p[55]=s.y,p[56]=s.z,p[57]=i.x,p[58]=s.y,p[59]=s.z,p[60]=i.x,p[61]=i.y,p[62]=i.z,p[63]=s.x,p[64]=i.y,p[65]=i.z,p[66]=s.x,p[67]=i.y,p[68]=s.z,p[69]=i.x,p[70]=i.y,p[71]=s.z,_.position=new c({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:p})),E.normal){var y=new Float32Array(72);y[0]=0,y[1]=0,y[2]=1,y[3]=0,y[4]=0,y[5]=1,y[6]=0,y[7]=0,y[8]=1,y[9]=0,y[10]=0,y[11]=1,y[12]=0,y[13]=0,y[14]=-1,y[15]=0,y[16]=0,y[17]=-1,y[18]=0,y[19]=0,y[20]=-1,y[21]=0,y[22]=0,y[23]=-1,y[24]=1,y[25]=0,y[26]=0,y[27]=1,y[28]=0,y[29]=0,y[30]=1,y[31]=0,y[32]=0,y[33]=1,y[34]=0,y[35]=0,y[36]=-1,y[37]=0,y[38]=0,y[39]=-1,y[40]=0,y[41]=0,y[42]=-1,y[43]=0,y[44]=0,y[45]=-1,y[46]=0,y[47]=0,y[48]=0,y[49]=1,y[50]=0,y[51]=0,y[52]=1,y[53]=0,y[54]=0,y[55]=1,y[56]=0,y[57]=0,y[58]=1,y[59]=0,y[60]=0,y[61]=-1,y[62]=0,y[63]=0,y[64]=-1,y[65]=0,y[66]=0,y[67]=-1,y[68]=0,y[69]=0,y[70]=-1,y[71]=0,_.normal=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:y})}if(E.st){var A=new Float32Array(48);A[0]=0,A[1]=0,A[2]=1,A[3]=0,A[4]=1,A[5]=1,A[6]=0,A[7]=1,A[8]=1,A[9]=0,A[10]=0,A[11]=0,A[12]=0,A[13]=1,A[14]=1,A[15]=1,A[16]=0,A[17]=0,A[18]=1,A[19]=0,A[20]=1,A[21]=1,A[22]=0,A[23]=1,A[24]=1,A[25]=0,A[26]=0,A[27]=0,A[28]=0,A[29]=1,A[30]=1,A[31]=1,A[32]=1,A[33]=0,A[34]=0,A[35]=0,A[36]=0,A[37]=1,A[38]=1,A[39]=1,A[40]=0,A[41]=0,A[42]=1,A[43]=0,A[44]=1,A[45]=1,A[46]=0,A[47]=1,_.st=new c({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:A})}if(E.tangent){var T=new Float32Array(72);T[0]=1,T[1]=0,T[2]=0,T[3]=1,T[4]=0,T[5]=0,T[6]=1,T[7]=0,T[8]=0,T[9]=1,T[10]=0,T[11]=0,T[12]=-1,T[13]=0,T[14]=0,T[15]=-1,T[16]=0,T[17]=0,T[18]=-1,T[19]=0,T[20]=0,T[21]=-1,T[22]=0,T[23]=0,T[24]=0,T[25]=1,T[26]=0,T[27]=0,T[28]=1,T[29]=0,T[30]=0,T[31]=1,T[32]=0,T[33]=0,T[34]=1,T[35]=0,T[36]=0,T[37]=-1,T[38]=0,T[39]=0,T[40]=-1,T[41]=0,T[42]=0,T[43]=-1,T[44]=0,T[45]=0,T[46]=-1,T[47]=0,T[48]=-1,T[49]=0,T[50]=0,T[51]=-1,T[52]=0,T[53]=0,T[54]=-1,T[55]=0,T[56]=0,T[57]=-1,T[58]=0,T[59]=0,T[60]=1,T[61]=0,T[62]=0,T[63]=1,T[64]=0,T[65]=0,T[66]=1,T[67]=0,T[68]=0,T[69]=1,T[70]=0,T[71]=0,_.tangent=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:T})}if(E.bitangent){var R=new Float32Array(72);R[0]=0,R[1]=1,R[2]=0,R[3]=0,R[4]=1,R[5]=0,R[6]=0,R[7]=1,R[8]=0,R[9]=0,R[10]=1,R[11]=0,R[12]=0,R[13]=1,R[14]=0,R[15]=0,R[16]=1,R[17]=0,R[18]=0,R[19]=1,R[20]=0,R[21]=0,R[22]=1,R[23]=0,R[24]=0,R[25]=0,R[26]=1,R[27]=0,R[28]=0,R[29]=1,R[30]=0,R[31]=0,R[32]=1,R[33]=0,R[34]=0,R[35]=1,R[36]=0,R[37]=0,R[38]=1,R[39]=0,R[40]=0,R[41]=1,R[42]=0,R[43]=0,R[44]=1,R[45]=0,R[46]=0,R[47]=1,R[48]=0,R[49]=0,R[50]=1,R[51]=0,R[52]=0,R[53]=1,R[54]=0,R[55]=0,R[56]=1,R[57]=0,R[58]=0,R[59]=1,R[60]=0,R[61]=0,R[62]=1,R[63]=0,R[64]=0,R[65]=1,R[66]=0,R[67]=0,R[68]=1,R[69]=0,R[70]=0,R[71]=1,_.bitangent=new c({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:R})}d=new Uint16Array(36),d[0]=0,d[1]=1,d[2]=2,d[3]=0,d[4]=2,d[5]=3,d[6]=6,d[7]=5,d[8]=4,d[9]=7,d[10]=6,d[11]=4,d[12]=8,d[13]=9,d[14]=10,d[15]=8,d[16]=10,d[17]=11,d[18]=14,d[19]=13,d[20]=12,d[21]=15,d[22]=14,d[23]=12,d[24]=18,d[25]=17,d[26]=16,d[27]=19,d[28]=18,d[29]=16,d[30]=20,d[31]=21,d[32]=22,d[33]=20,d[34]=22,d[35]=23}else p=new Float64Array(24),p[0]=i.x,p[1]=i.y,p[2]=i.z,p[3]=s.x,p[4]=i.y,p[5]=i.z,p[6]=s.x,p[7]=s.y,p[8]=i.z,p[9]=i.x,p[10]=s.y,p[11]=i.z,p[12]=i.x,p[13]=i.y,p[14]=s.z,p[15]=s.x,p[16]=i.y,p[17]=s.z,p[18]=s.x,p[19]=s.y,p[20]=s.z,p[21]=i.x,p[22]=s.y,p[23]=s.z,_.position=new c({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:p}),d=new Uint16Array(36),d[0]=4,d[1]=5,d[2]=6,d[3]=4,d[4]=6,d[5]=7,d[6]=1,d[7]=0,d[8]=3,d[9]=1,d[10]=3,d[11]=2,d[12]=1,d[13]=6,d[14]=5,d[15]=1,d[16]=2,d[17]=6,d[18]=2,d[19]=3,d[20]=7,d[21]=2,d[22]=7,d[23]=6,d[24]=3,d[25]=0,d[26]=4,d[27]=3,d[28]=4,d[29]=7,d[30]=0,d[31]=1,d[32]=5,d[33]=0,d[34]=5,d[35]=4;var S=r.subtract(s,i,m),C=.5*r.magnitude(S);if(a(n._offsetAttribute)){var I=p.length,g=new Uint8Array(I/3),O=n._offsetAttribute===f.NONE?0:1;e(g,O),_.applyOffset=new c({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}return new u({attributes:_,indices:d,primitiveType:h.TRIANGLES,boundingSphere:new t(r.ZERO,C),offsetAttribute:n._offsetAttribute})}};var T;return d.getUnitBox=function(){return a(T)||(T=d.createGeometry(d.fromDimensions({dimensions:new r(1,1,1),vertexFormat:E.POSITION_ONLY}))),T},d}),define("Core/Color",["./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math"],function(e,t,r,n,o,i){"use strict";function a(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function s(e,r,n,o){this.red=t(e,1),this.green=t(r,1),this.blue=t(n,1),this.alpha=t(o,1)}s.fromCartesian4=function(e,t){return r(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new s(e.x,e.y,e.z,e.w)},s.fromBytes=function(e,n,o,i,a){return e=s.byteToFloat(t(e,255)),n=s.byteToFloat(t(n,255)),o=s.byteToFloat(t(o,255)),i=s.byteToFloat(t(i,255)),r(a)?(a.red=e,a.green=n,a.blue=o,a.alpha=i,a):new s(e,n,o,i)},s.fromAlpha=function(e,t,n){return r(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new s(e.red,e.green,e.blue,t)};var u,c,l;n.supportsTypedArrays()&&(u=new ArrayBuffer(4),c=new Uint32Array(u),l=new Uint8Array(u)),s.fromRgba=function(e,t){return c[0]=e,s.fromBytes(l[0],l[1],l[2],l[3],t)},s.fromHsl=function(e,n,o,i,u){e=t(e,0)%1,n=t(n,0),o=t(o,0),i=t(i,1);var c=o,l=o,f=o;if(0!==n){var h;h=o<.5?o*(1+n):o+n-o*n;var E=2*o-h;c=a(E,h,e+1/3),l=a(E,h,e),f=a(E,h,e-1/3)}return r(u)?(u.red=c,u.green=l,u.blue=f,u.alpha=i,u):new s(c,l,f,i)},s.fromRandom=function(e,n){e=t(e,t.EMPTY_OBJECT);var o=e.red;if(!r(o)){var a=t(e.minimumRed,0),u=t(e.maximumRed,1);o=a+i.nextRandomNumber()*(u-a)}var c=e.green;if(!r(c)){var l=t(e.minimumGreen,0),f=t(e.maximumGreen,1);c=l+i.nextRandomNumber()*(f-l)}var h=e.blue;if(!r(h)){var E=t(e.minimumBlue,0),d=t(e.maximumBlue,1);h=E+i.nextRandomNumber()*(d-E)}var m=e.alpha;if(!r(m)){var p=t(e.minimumAlpha,0),_=t(e.maximumAlpha,1);m=p+i.nextRandomNumber()*(_-p)}return r(n)?(n.red=o,n.green=c,n.blue=h,n.alpha=m,n):new s(o,c,h,m)};var f=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,h=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,E=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,d=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;return s.fromCssColorString=function(e,n){r(n)||(n=new s);var o=s[e.toUpperCase()];if(r(o))return s.clone(o,n),n;var i=f.exec(e);return null!==i?(n.red=parseInt(i[1],16)/15,n.green=parseInt(i[2],16)/15,n.blue=parseInt(i[3],16)/15,n.alpha=1,n):null!==(i=h.exec(e))?(n.red=parseInt(i[1],16)/255,n.green=parseInt(i[2],16)/255,n.blue=parseInt(i[3],16)/255,n.alpha=1,n):null!==(i=E.exec(e))?(n.red=parseFloat(i[1])/("%"===i[1].substr(-1)?100:255),n.green=parseFloat(i[2])/("%"===i[2].substr(-1)?100:255),n.blue=parseFloat(i[3])/("%"===i[3].substr(-1)?100:255),n.alpha=parseFloat(t(i[4],"1.0")),n):null!==(i=d.exec(e))?s.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(t(i[4],"1.0")),n):n=void 0},s.packedLength=4,s.pack=function(e,r,n){return n=t(n,0),r[n++]=e.red,r[n++]=e.green,r[n++]=e.blue,r[n]=e.alpha,r},s.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new s),o.red=e[n++],o.green=e[n++],o.blue=e[n++],o.alpha=e[n],o},s.byteToFloat=function(e){return e/255},s.floatToByte=function(e){return 1===e?255:256*e|0},s.clone=function(e,t){if(r(e))return r(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new s(e.red,e.green,e.blue,e.alpha)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},s.equalsArray=function(e,t,r){return e.red===t[r]&&e.green===t[r+1]&&e.blue===t[r+2]&&e.alpha===t[r+3]},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return this===e||r(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},s.prototype.toString=function(){return"("+this.red+", "+this.green+", "+this.blue+", "+this.alpha+")"},s.prototype.toCssColorString=function(){var e=s.floatToByte(this.red),t=s.floatToByte(this.green),r=s.floatToByte(this.blue);return 1===this.alpha?"rgb("+e+","+t+","+r+")":"rgba("+e+","+t+","+r+","+this.alpha+")"},s.prototype.toBytes=function(e){var t=s.floatToByte(this.red),n=s.floatToByte(this.green),o=s.floatToByte(this.blue),i=s.floatToByte(this.alpha);return r(e)?(e[0]=t,e[1]=n,e[2]=o,e[3]=i,e):[t,n,o,i]},s.prototype.toRgba=function(){return l[0]=s.floatToByte(this.red),l[1]=s.floatToByte(this.green),l[2]=s.floatToByte(this.blue),l[3]=s.floatToByte(this.alpha),c[0]},s.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t},s.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t},s.prototype.withAlpha=function(e,t){return s.fromAlpha(this,e,t)},s.add=function(e,t,r){return r.red=e.red+t.red,r.green=e.green+t.green,r.blue=e.blue+t.blue,r.alpha=e.alpha+t.alpha,r},s.subtract=function(e,t,r){return r.red=e.red-t.red,r.green=e.green-t.green,r.blue=e.blue-t.blue,r.alpha=e.alpha-t.alpha,r},s.multiply=function(e,t,r){return r.red=e.red*t.red,r.green=e.green*t.green,r.blue=e.blue*t.blue,r.alpha=e.alpha*t.alpha,r},s.divide=function(e,t,r){return r.red=e.red/t.red,r.green=e.green/t.green,r.blue=e.blue/t.blue,r.alpha=e.alpha/t.alpha,r},s.mod=function(e,t,r){return r.red=e.red%t.red,r.green=e.green%t.green,r.blue=e.blue%t.blue,r.alpha=e.alpha%t.alpha,r},s.multiplyByScalar=function(e,t,r){return r.red=e.red*t,r.green=e.green*t,r.blue=e.blue*t,r.alpha=e.alpha*t,r},s.divideByScalar=function(e,t,r){return r.red=e.red/t,r.green=e.green/t,r.blue=e.blue/t,r.alpha=e.alpha/t,r},s.ALICEBLUE=o(s.fromCssColorString("#F0F8FF")),s.ANTIQUEWHITE=o(s.fromCssColorString("#FAEBD7")),s.AQUA=o(s.fromCssColorString("#00FFFF")),s.AQUAMARINE=o(s.fromCssColorString("#7FFFD4")),s.AZURE=o(s.fromCssColorString("#F0FFFF")),s.BEIGE=o(s.fromCssColorString("#F5F5DC")),s.BISQUE=o(s.fromCssColorString("#FFE4C4")),s.BLACK=o(s.fromCssColorString("#000000")),s.BLANCHEDALMOND=o(s.fromCssColorString("#FFEBCD")),s.BLUE=o(s.fromCssColorString("#0000FF")),s.BLUEVIOLET=o(s.fromCssColorString("#8A2BE2")),s.BROWN=o(s.fromCssColorString("#A52A2A")),s.BURLYWOOD=o(s.fromCssColorString("#DEB887")),s.CADETBLUE=o(s.fromCssColorString("#5F9EA0")),s.CHARTREUSE=o(s.fromCssColorString("#7FFF00")),s.CHOCOLATE=o(s.fromCssColorString("#D2691E")),s.CORAL=o(s.fromCssColorString("#FF7F50")),s.CORNFLOWERBLUE=o(s.fromCssColorString("#6495ED")),s.CORNSILK=o(s.fromCssColorString("#FFF8DC")),s.CRIMSON=o(s.fromCssColorString("#DC143C")),s.CYAN=o(s.fromCssColorString("#00FFFF")),s.DARKBLUE=o(s.fromCssColorString("#00008B")),s.DARKCYAN=o(s.fromCssColorString("#008B8B")),s.DARKGOLDENROD=o(s.fromCssColorString("#B8860B")),s.DARKGRAY=o(s.fromCssColorString("#A9A9A9")),s.DARKGREEN=o(s.fromCssColorString("#006400")),s.DARKGREY=s.DARKGRAY,s.DARKKHAKI=o(s.fromCssColorString("#BDB76B")),s.DARKMAGENTA=o(s.fromCssColorString("#8B008B")),s.DARKOLIVEGREEN=o(s.fromCssColorString("#556B2F")),s.DARKORANGE=o(s.fromCssColorString("#FF8C00")),s.DARKORCHID=o(s.fromCssColorString("#9932CC")),s.DARKRED=o(s.fromCssColorString("#8B0000")),s.DARKSALMON=o(s.fromCssColorString("#E9967A")),s.DARKSEAGREEN=o(s.fromCssColorString("#8FBC8F")),s.DARKSLATEBLUE=o(s.fromCssColorString("#483D8B")),s.DARKSLATEGRAY=o(s.fromCssColorString("#2F4F4F")),s.DARKSLATEGREY=s.DARKSLATEGRAY,s.DARKTURQUOISE=o(s.fromCssColorString("#00CED1")),s.DARKVIOLET=o(s.fromCssColorString("#9400D3")),s.DEEPPINK=o(s.fromCssColorString("#FF1493")),s.DEEPSKYBLUE=o(s.fromCssColorString("#00BFFF")),s.DIMGRAY=o(s.fromCssColorString("#696969")),s.DIMGREY=s.DIMGRAY,s.DODGERBLUE=o(s.fromCssColorString("#1E90FF")),s.FIREBRICK=o(s.fromCssColorString("#B22222")),s.FLORALWHITE=o(s.fromCssColorString("#FFFAF0")),s.FORESTGREEN=o(s.fromCssColorString("#228B22")),s.FUCHSIA=o(s.fromCssColorString("#FF00FF")),s.GAINSBORO=o(s.fromCssColorString("#DCDCDC")),s.GHOSTWHITE=o(s.fromCssColorString("#F8F8FF")),s.GOLD=o(s.fromCssColorString("#FFD700")),s.GOLDENROD=o(s.fromCssColorString("#DAA520")),s.GRAY=o(s.fromCssColorString("#808080")),s.GREEN=o(s.fromCssColorString("#008000")),s.GREENYELLOW=o(s.fromCssColorString("#ADFF2F")),s.GREY=s.GRAY,s.HONEYDEW=o(s.fromCssColorString("#F0FFF0")),s.HOTPINK=o(s.fromCssColorString("#FF69B4")),s.INDIANRED=o(s.fromCssColorString("#CD5C5C")),s.INDIGO=o(s.fromCssColorString("#4B0082")),s.IVORY=o(s.fromCssColorString("#FFFFF0")),s.KHAKI=o(s.fromCssColorString("#F0E68C")),s.LAVENDER=o(s.fromCssColorString("#E6E6FA")),s.LAVENDAR_BLUSH=o(s.fromCssColorString("#FFF0F5")),s.LAWNGREEN=o(s.fromCssColorString("#7CFC00")),s.LEMONCHIFFON=o(s.fromCssColorString("#FFFACD")),s.LIGHTBLUE=o(s.fromCssColorString("#ADD8E6")),s.LIGHTCORAL=o(s.fromCssColorString("#F08080")),s.LIGHTCYAN=o(s.fromCssColorString("#E0FFFF")),s.LIGHTGOLDENRODYELLOW=o(s.fromCssColorString("#FAFAD2")),s.LIGHTGRAY=o(s.fromCssColorString("#D3D3D3")),s.LIGHTGREEN=o(s.fromCssColorString("#90EE90")),s.LIGHTGREY=s.LIGHTGRAY,s.LIGHTPINK=o(s.fromCssColorString("#FFB6C1")),s.LIGHTSEAGREEN=o(s.fromCssColorString("#20B2AA")),s.LIGHTSKYBLUE=o(s.fromCssColorString("#87CEFA")),s.LIGHTSLATEGRAY=o(s.fromCssColorString("#778899")),s.LIGHTSLATEGREY=s.LIGHTSLATEGRAY,s.LIGHTSTEELBLUE=o(s.fromCssColorString("#B0C4DE")),s.LIGHTYELLOW=o(s.fromCssColorString("#FFFFE0")),s.LIME=o(s.fromCssColorString("#00FF00")),s.LIMEGREEN=o(s.fromCssColorString("#32CD32")),s.LINEN=o(s.fromCssColorString("#FAF0E6")),s.MAGENTA=o(s.fromCssColorString("#FF00FF")),s.MAROON=o(s.fromCssColorString("#800000")),s.MEDIUMAQUAMARINE=o(s.fromCssColorString("#66CDAA")),s.MEDIUMBLUE=o(s.fromCssColorString("#0000CD")),s.MEDIUMORCHID=o(s.fromCssColorString("#BA55D3")),s.MEDIUMPURPLE=o(s.fromCssColorString("#9370DB")),s.MEDIUMSEAGREEN=o(s.fromCssColorString("#3CB371")),s.MEDIUMSLATEBLUE=o(s.fromCssColorString("#7B68EE")),s.MEDIUMSPRINGGREEN=o(s.fromCssColorString("#00FA9A")),s.MEDIUMTURQUOISE=o(s.fromCssColorString("#48D1CC")),s.MEDIUMVIOLETRED=o(s.fromCssColorString("#C71585")),s.MIDNIGHTBLUE=o(s.fromCssColorString("#191970")),s.MINTCREAM=o(s.fromCssColorString("#F5FFFA")),s.MISTYROSE=o(s.fromCssColorString("#FFE4E1")),s.MOCCASIN=o(s.fromCssColorString("#FFE4B5")),s.NAVAJOWHITE=o(s.fromCssColorString("#FFDEAD")),s.NAVY=o(s.fromCssColorString("#000080")),s.OLDLACE=o(s.fromCssColorString("#FDF5E6")),s.OLIVE=o(s.fromCssColorString("#808000")),s.OLIVEDRAB=o(s.fromCssColorString("#6B8E23")),s.ORANGE=o(s.fromCssColorString("#FFA500")),s.ORANGERED=o(s.fromCssColorString("#FF4500")),s.ORCHID=o(s.fromCssColorString("#DA70D6")),s.PALEGOLDENROD=o(s.fromCssColorString("#EEE8AA")),s.PALEGREEN=o(s.fromCssColorString("#98FB98")),s.PALETURQUOISE=o(s.fromCssColorString("#AFEEEE")),s.PALEVIOLETRED=o(s.fromCssColorString("#DB7093")),s.PAPAYAWHIP=o(s.fromCssColorString("#FFEFD5")),s.PEACHPUFF=o(s.fromCssColorString("#FFDAB9")),s.PERU=o(s.fromCssColorString("#CD853F")),s.PINK=o(s.fromCssColorString("#FFC0CB")),s.PLUM=o(s.fromCssColorString("#DDA0DD")),s.POWDERBLUE=o(s.fromCssColorString("#B0E0E6")),s.PURPLE=o(s.fromCssColorString("#800080")),s.RED=o(s.fromCssColorString("#FF0000")),s.ROSYBROWN=o(s.fromCssColorString("#BC8F8F")),s.ROYALBLUE=o(s.fromCssColorString("#4169E1")),s.SADDLEBROWN=o(s.fromCssColorString("#8B4513")),s.SALMON=o(s.fromCssColorString("#FA8072")),s.SANDYBROWN=o(s.fromCssColorString("#F4A460")),s.SEAGREEN=o(s.fromCssColorString("#2E8B57")),s.SEASHELL=o(s.fromCssColorString("#FFF5EE")),s.SIENNA=o(s.fromCssColorString("#A0522D")),s.SILVER=o(s.fromCssColorString("#C0C0C0")),s.SKYBLUE=o(s.fromCssColorString("#87CEEB")),s.SLATEBLUE=o(s.fromCssColorString("#6A5ACD")),s.SLATEGRAY=o(s.fromCssColorString("#708090")),s.SLATEGREY=s.SLATEGRAY,s.SNOW=o(s.fromCssColorString("#FFFAFA")),s.SPRINGGREEN=o(s.fromCssColorString("#00FF7F")),s.STEELBLUE=o(s.fromCssColorString("#4682B4")),s.TAN=o(s.fromCssColorString("#D2B48C")),s.TEAL=o(s.fromCssColorString("#008080")),s.THISTLE=o(s.fromCssColorString("#D8BFD8")),s.TOMATO=o(s.fromCssColorString("#FF6347")),s.TURQUOISE=o(s.fromCssColorString("#40E0D0")),s.VIOLET=o(s.fromCssColorString("#EE82EE")),s.WHEAT=o(s.fromCssColorString("#F5DEB3")),s.WHITE=o(s.fromCssColorString("#FFFFFF")),s.WHITESMOKE=o(s.fromCssColorString("#F5F5F5")),s.YELLOW=o(s.fromCssColorString("#FFFF00")),s.YELLOWGREEN=o(s.fromCssColorString("#9ACD32")),s.TRANSPARENT=o(new s(0,0,0,0)),s}),define("Core/CylinderGeometryLibrary",["./Math"],function(e){"use strict";var t={};return t.computePositions=function(t,r,n,o,i){var a,s=.5*t,u=-s,c=o+o,l=i?2*c:c,f=new Float64Array(3*l),h=0,E=0,d=i?3*c:0,m=i?3*(c+o):3*o;for(a=0;a<o;a++){var p=a/o*e.TWO_PI,_=Math.cos(p),y=Math.sin(p),A=_*n,T=y*n,R=_*r,S=y*r;f[E+d]=A,f[E+d+1]=T,f[E+d+2]=u,f[E+m]=R,f[E+m+1]=S,f[E+m+2]=s,E+=3,i&&(f[h++]=A,f[h++]=T,f[h++]=u,f[h++]=R,f[h++]=S,f[h++]=s)}return f},t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,o){"use strict";var i={UNSIGNED_BYTE:o.UNSIGNED_BYTE,UNSIGNED_SHORT:o.UNSIGNED_SHORT,UNSIGNED_INT:o.UNSIGNED_INT};return i.getSizeInBytes=function(e){switch(e){case i.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case i.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case i.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},i.fromSizeInBytes=function(e){switch(e){case 2:return i.UNSIGNED_SHORT;case 4:return i.UNSIGNED_INT;case 1:return i.UNSIGNED_BYTE}},i.validate=function(t){return e(t)&&(t===i.UNSIGNED_BYTE||t===i.UNSIGNED_SHORT||t===i.UNSIGNED_INT)},i.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},i.createTypedArrayFromArrayBuffer=function(e,t,r,o){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,o):new Uint16Array(t,r,o)},r(i)}),define("Core/CylinderGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./CylinderGeometryLibrary","./defaultValue","./defined","./DeveloperError","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E,d,m,p){"use strict";function _(e){e=a(e,a.EMPTY_OBJECT);var t=e.length,r=e.topRadius,n=e.bottomRadius,o=a(e.vertexFormat,p.DEFAULT),i=a(e.slices,128);this._length=t,this._topRadius=r,this._bottomRadius=n,this._vertexFormat=p.clone(o),this._slices=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}var y=new r,A=new n,T=new n,R=new n,S=new n;_.packedLength=p.packedLength+5,_.pack=function(e,t,r){return r=a(r,0),p.pack(e._vertexFormat,t,r),r+=p.packedLength,t[r++]=e._length,t[r++]=e._topRadius,t[r++]=e._bottomRadius,t[r++]=e._slices,t[r]=a(e._offsetAttribute,-1),t};var C=new p,I={vertexFormat:C,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};_.unpack=function(e,t,r){t=a(t,0);var n=p.unpack(e,t,C);t+=p.packedLength;var o=e[t++],i=e[t++],u=e[t++],c=e[t++],l=e[t];return s(r)?(r._vertexFormat=p.clone(n,r._vertexFormat),r._length=o,r._topRadius=i,r._bottomRadius=u,r._slices=c,r._offsetAttribute=-1===l?void 0:l,r):(I.length=o,I.topRadius=i,I.bottomRadius=u,I.slices=c,I.offsetAttribute=-1===l?void 0:l,new _(I))},_.createGeometry=function(a){var u=a._length,p=a._topRadius,_=a._bottomRadius,C=a._vertexFormat,I=a._slices;if(!(u<=0||p<0||_<0||0===p&&0===_)){var g,O=I+I,v=I+O,N=O+O,w=i.computePositions(u,p,_,I,!0),M=C.st?new Float32Array(2*N):void 0,F=C.normal?new Float32Array(3*N):void 0,x=C.tangent?new Float32Array(3*N):void 0,D=C.bitangent?new Float32Array(3*N):void 0,U=C.normal||C.tangent||C.bitangent;if(U){var P=C.tangent||C.bitangent,L=0,b=0,B=0,z=Math.atan2(_-p,u),G=A;G.z=Math.sin(z);var q=Math.cos(z),V=R,W=T;for(g=0;g<I;g++){var k=g/I*d.TWO_PI,Y=q*Math.cos(k),H=q*Math.sin(k);U&&(G.x=Y,G.y=H,P&&(V=n.normalize(n.cross(n.UNIT_Z,G,V),V)),C.normal&&(F[L++]=G.x,F[L++]=G.y,F[L++]=G.z,F[L++]=G.x,F[L++]=G.y,F[L++]=G.z),C.tangent&&(x[b++]=V.x,x[b++]=V.y,x[b++]=V.z,x[b++]=V.x,x[b++]=V.y,x[b++]=V.z),C.bitangent&&(W=n.normalize(n.cross(G,V,W),W),D[B++]=W.x,D[B++]=W.y,D[B++]=W.z,D[B++]=W.x,D[B++]=W.y,D[B++]=W.z))}for(g=0;g<I;g++)C.normal&&(F[L++]=0,F[L++]=0,F[L++]=-1),C.tangent&&(x[b++]=1,x[b++]=0,x[b++]=0),C.bitangent&&(D[B++]=0,D[B++]=-1,D[B++]=0);for(g=0;g<I;g++)C.normal&&(F[L++]=0,F[L++]=0,F[L++]=1),C.tangent&&(x[b++]=1,x[b++]=0,x[b++]=0),C.bitangent&&(D[B++]=0,D[B++]=1,D[B++]=0)}var X=12*I-12,j=E.createTypedArray(N,X),K=0,Z=0;for(g=0;g<I-1;g++)j[K++]=Z,j[K++]=Z+2,j[K++]=Z+3,j[K++]=Z,j[K++]=Z+3,j[K++]=Z+1,Z+=2;for(j[K++]=O-2,j[K++]=0,j[K++]=1,j[K++]=O-2,j[K++]=1,j[K++]=O-1,g=1;g<I-1;g++)j[K++]=O+g+1,j[K++]=O+g,j[K++]=O;for(g=1;g<I-1;g++)j[K++]=v,j[K++]=v+g,j[K++]=v+g+1;var J=0;if(C.st){var Q=Math.max(p,_);for(g=0;g<N;g++){var $=n.fromArray(w,3*g,S);M[J++]=($.x+Q)/(2*Q),M[J++]=($.y+Q)/(2*Q)}}var ee=new f;C.position&&(ee.position=new l({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:w})),C.normal&&(ee.normal=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:F})),C.tangent&&(ee.tangent=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:x})),C.bitangent&&(ee.bitangent=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:D})),C.st&&(ee.st=new l({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:M})),y.x=.5*u,y.y=Math.max(_,p);var te=new t(n.ZERO,r.magnitude(y));if(s(a._offsetAttribute)){u=w.length;var re=new Uint8Array(u/3),ne=a._offsetAttribute===h.NONE?0:1;e(re,ne),ee.applyOffset=new l({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:re})}return new c({attributes:ee,indices:j,primitiveType:m.TRIANGLES,boundingSphere:te,offsetAttribute:a._offsetAttribute})}};var g;return _.getUnitCylinder=function(){return s(g)||(g=_.createGeometry(new _({topRadius:1,bottomRadius:1,length:1,vertexFormat:p.POSITION_ONLY}))),g},_}),define("Core/EllipsoidGeometry",["./arrayFill","./BoundingSphere","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./GeometryOffsetAttribute","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat"],function(e,t,r,n,o,i,a,s,u,c,l,f,h,E,d,m,p){"use strict";function _(e){e=i(e,i.EMPTY_OBJECT);var t=i(e.radii,C),r=Math.round(i(e.stackPartitions,64)),o=Math.round(i(e.slicePartitions,64)),a=i(e.vertexFormat,p.DEFAULT);this._radii=n.clone(t),this._stackPartitions=r,this._slicePartitions=o,this._vertexFormat=p.clone(a),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}var y=new n,A=new n,T=new n,R=new n,S=new n,C=new n(1,1,1),I=Math.cos,g=Math.sin;_.packedLength=n.packedLength+p.packedLength+3,_.pack=function(e,t,r){return r=i(r,0),n.pack(e._radii,t,r),r+=n.packedLength,p.pack(e._vertexFormat,t,r),r+=p.packedLength,t[r++]=e._stackPartitions,t[r++]=e._slicePartitions,t[r]=i(e._offsetAttribute,-1),t};var O=new n,v=new p,N={radii:O,vertexFormat:v,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};_.unpack=function(e,t,r){t=i(t,0);var o=n.unpack(e,t,O);t+=n.packedLength;var s=p.unpack(e,t,v);t+=p.packedLength;var u=e[t++],c=e[t++],l=e[t];return a(r)?(r._radii=n.clone(o,r._radii),r._vertexFormat=p.clone(s,r._vertexFormat),r._stackPartitions=u,r._slicePartitions=c,r._offsetAttribute=-1===l?void 0:l,r):(N.stackPartitions=u,N.slicePartitions=c,N.offsetAttribute=-1===l?void 0:l,new _(N))},_.createGeometry=function(i){var s=i._radii;if(!(s.x<=0||s.y<=0||s.z<=0)){var p,_,C=u.fromCartesian3(s),O=i._vertexFormat,v=i._slicePartitions+1,N=i._stackPartitions+1,w=N*v,M=new Float64Array(3*w),F=6*(v-1)*(N-2),x=E.createTypedArray(w,F),D=O.normal?new Float32Array(3*w):void 0,U=O.tangent?new Float32Array(3*w):void 0,P=O.bitangent?new Float32Array(3*w):void 0,L=O.st?new Float32Array(2*w):void 0,b=new Array(v),B=new Array(v),z=0;for(p=0;p<v;p++){var G=d.TWO_PI*p/(v-1);b[p]=I(G),B[p]=g(G),M[z++]=0,M[z++]=0,M[z++]=s.z}for(p=1;p<N-1;p++){var q=Math.PI*p/(N-1),V=g(q),W=s.x*V,k=s.y*V,Y=s.z*I(q);for(_=0;_<v;_++)M[z++]=b[_]*W,M[z++]=B[_]*k,M[z++]=Y}for(p=0;p<v;p++)M[z++]=0,M[z++]=0,M[z++]=-s.z;var H=new f;O.position&&(H.position=new l({componentDatatype:o.DOUBLE,componentsPerAttribute:3,values:M}));var X=0,j=0,K=0,Z=0;if(O.st||O.normal||O.tangent||O.bitangent){for(p=0;p<w;p++){var J=n.fromArray(M,3*p,y),Q=C.geodeticSurfaceNormal(J,A);if(O.st){var $=r.negate(Q,S);r.magnitude($)<d.EPSILON6&&(z=3*(p+v*Math.floor(.5*N)),z>M.length&&(z=3*(p-v*Math.floor(.5*N))),n.fromArray(M,z,$),C.geodeticSurfaceNormal($,$),r.negate($,$)),L[X++]=Math.atan2($.y,$.x)/d.TWO_PI+.5,L[X++]=Math.asin(Q.z)/Math.PI+.5}if(O.normal&&(D[j++]=Q.x,D[j++]=Q.y,D[j++]=Q.z),O.tangent||O.bitangent){var ee=T;if(p<v||p>w-v-1?(n.cross(n.UNIT_X,Q,ee),n.normalize(ee,ee)):(n.cross(n.UNIT_Z,Q,ee),n.normalize(ee,ee)),O.tangent&&(U[K++]=ee.x,U[K++]=ee.y,U[K++]=ee.z),O.bitangent){var te=n.cross(Q,ee,R);n.normalize(te,te),P[Z++]=te.x,P[Z++]=te.y,P[Z++]=te.z}}}O.st&&(H.st=new l({componentDatatype:o.FLOAT,componentsPerAttribute:2,values:L})),O.normal&&(H.normal=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:D})),O.tangent&&(H.tangent=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:U})),O.bitangent&&(H.bitangent=new l({componentDatatype:o.FLOAT,componentsPerAttribute:3,values:P}))}if(a(i._offsetAttribute)){var re=M.length,ne=new Uint8Array(re/3),oe=i._offsetAttribute===h.NONE?0:1;e(ne,oe),H.applyOffset=new l({componentDatatype:o.UNSIGNED_BYTE,componentsPerAttribute:1,values:ne})}for(z=0,_=0;_<v-1;_++)x[z++]=v+_,x[z++]=v+_+1,x[z++]=_+1;var ie,ae;for(p=1;p<N-2;p++)for(ie=p*v,ae=(p+1)*v,_=0;_<v-1;_++)x[z++]=ae+_,x[z++]=ae+_+1,x[z++]=ie+_+1,x[z++]=ae+_,x[z++]=ie+_+1,x[z++]=ie+_;for(p=N-2,ie=p*v,ae=(p+1)*v,_=0;_<v-1;_++)x[z++]=ae+_,x[z++]=ie+_+1,x[z++]=ie+_;return new c({attributes:H,indices:x,primitiveType:m.TRIANGLES,boundingSphere:t.fromEllipsoid(C),offsetAttribute:i._offsetAttribute})}};var w;return _.getUnitEllipsoid=function(){return a(w)||(w=_.createGeometry(new _({radii:new n(1,1,1),vertexFormat:p.POSITION_ONLY}))),w},_}),define("Scene/Vector3DTileBatch",[],function(){"use strict";function e(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}return e}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var r,n=t.name,o=t.message;r=e(n)&&e(o)?n+": "+o:t.toString();var i=t.stack;return e(i)&&(r+="\n"+i),r}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,r,n){"use strict";function o(t,r,n){try{return t(r,n)}catch(t){return e.reject(t)}}function i(i){var a;return function(s){var u=s.data,c=[],l={id:u.id,result:void 0,error:void 0};return e(o(i,u.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){r(a)||(a=t(self.webkitPostMessage,self.postMessage)),u.canTransferArrayBuffer||(c.length=0);try{a(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+n(e)+"\n with responseMessage: "+JSON.stringify(l),a(l)}})}}return i}),define("Workers/createVectorTileGeometries",["../Core/BoundingSphere","../Core/BoxGeometry","../Core/Cartesian3","../Core/Color","../Core/CylinderGeometry","../Core/defined","../Core/EllipsoidGeometry","../Core/IndexDatatype","../Core/Matrix4","../Scene/Vector3DTileBatch","./createTaskProcessorWorker"],function(e,t,r,n,o,i,a,s,u,c,l){"use strict";function f(e,t){var n=t*R,o=r.unpack(e,n,T);n+=r.packedLength;var i=u.unpack(e,n,g.modelMatrix);u.multiplyByScale(i,o,i);var a=g.boundingVolume;return r.clone(r.ZERO,a.center),a.radius=Math.sqrt(3),g}function h(e,t){var n=t*S,o=e[n++],i=e[n++],a=r.fromElements(o,o,i,T),s=u.unpack(e,n,g.modelMatrix);u.multiplyByScale(s,a,s);var c=g.boundingVolume;return r.clone(r.ZERO,c.center),c.radius=Math.sqrt(2),g}function E(e,t){var n=t*C,o=r.unpack(e,n,T);n+=r.packedLength;var i=u.unpack(e,n,g.modelMatrix);u.multiplyByScale(i,o,i);var a=g.boundingVolume -;return r.clone(r.ZERO,a.center),a.radius=1,g}function d(e,t){var n=t*I,o=e[n++],i=r.unpack(e,n,T),a=u.fromTranslation(i,g.modelMatrix);u.multiplyByUniformScale(a,o,a);var s=g.boundingVolume;return r.clone(r.ZERO,s.center),s.radius=1,g}function m(t,o,a,s,l){if(i(o)){for(var f=a.length,h=s.attributes.position.values,E=s.indices,d=t.positions,m=t.vertexBatchIds,p=t.indices,_=t.batchIds,y=t.batchTableColors,A=t.batchedIndices,T=t.indexOffsets,R=t.indexCounts,S=t.boundingVolumes,C=t.modelMatrix,I=t.center,g=t.positionOffset,v=t.batchIdIndex,N=t.indexOffset,w=t.batchedIndicesOffset,M=0;M<f;++M){var F=l(o,M),x=F.modelMatrix;u.multiply(C,x,x);for(var D=a[M],U=h.length,P=0;P<U;P+=3){var L=r.unpack(h,P,O);u.multiplyByPoint(x,L,L),r.subtract(L,I,L),r.pack(L,d,3*g+P),m[v++]=D}for(var b=E.length,B=0;B<b;++B)p[N+B]=E[B]+g;var z=M+w;A[z]=new c({offset:N,count:b,color:n.fromRgba(y[D]),batchIds:[D]}),_[z]=D,T[z]=N,R[z]=b,S[z]=e.transform(F.boundingVolume,x),g+=U/3,N+=b}t.positionOffset=g,t.batchIdIndex=v,t.indexOffset=N,t.batchedIndicesOffset+=f}}function p(e){var t=new Float64Array(e),n=0;r.unpack(t,n,v),n+=r.packedLength,u.unpack(t,n,N)}function _(e){for(var t=e.length,r=0,o=0;o<t;++o)r+=n.packedLength+3+e[o].batchIds.length;return r}function y(t,r,o){var i=o.length,a=2+i*e.packedLength+1+_(r),s=new Float64Array(a),u=0;s[u++]=t,s[u++]=i;for(var c=0;c<i;++c)e.pack(o[c],s,u),u+=e.packedLength;var l=r.length;s[u++]=l;for(var f=0;f<l;++f){var h=r[f];n.pack(h.color,s,u),u+=n.packedLength,s[u++]=h.offset,s[u++]=h.count;var E=h.batchIds,d=E.length;s[u++]=d;for(var m=0;m<d;++m)s[u++]=E[m]}return s}function A(e,r){var n=i(e.boxes)?new Float32Array(e.boxes):void 0,u=i(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,c=i(e.cylinders)?new Float32Array(e.cylinders):void 0,l=i(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,_=i(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,A=i(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,T=i(e.spheres)?new Float32Array(e.spheres):void 0,R=i(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,S=i(n)?u.length:0,C=i(c)?l.length:0,I=i(_)?A.length:0,g=i(T)?R.length:0,O=t.getUnitBox(),w=o.getUnitCylinder(),M=a.getUnitEllipsoid(),F=O.attributes.position.values,x=w.attributes.position.values,D=M.attributes.position.values,U=F.length*S;U+=x.length*C,U+=D.length*(I+g);var P=O.indices,L=w.indices,b=M.indices,B=P.length*S;B+=L.length*C,B+=b.length*(I+g);var z=new Float32Array(U),G=new Uint16Array(U/3),q=s.createTypedArray(U/3,B),V=S+C+I+g,W=new Uint16Array(V),k=new Array(V),Y=new Uint32Array(V),H=new Uint32Array(V),X=new Array(V);p(e.packedBuffer);var j={batchTableColors:new Uint32Array(e.batchTableColors),positions:z,vertexBatchIds:G,indices:q,batchIds:W,batchedIndices:k,indexOffsets:Y,indexCounts:H,boundingVolumes:X,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:N,center:v};m(j,n,u,O,f),m(j,c,l,w,h),m(j,_,A,M,E),m(j,T,R,M,d);var K=y(q.BYTES_PER_ELEMENT,k,X);return r.push(z.buffer,G.buffer,q.buffer),r.push(W.buffer,Y.buffer,H.buffer),r.push(K.buffer),{positions:z.buffer,vertexBatchIds:G.buffer,indices:q.buffer,indexOffsets:Y.buffer,indexCounts:H.buffer,batchIds:W.buffer,packedBuffer:K.buffer}}var T=new r,R=u.packedLength+r.packedLength,S=u.packedLength+2,C=u.packedLength+r.packedLength,I=r.packedLength+1,g={modelMatrix:new u,boundingVolume:new e},O=new r,v=new r,N=new u;return l(A)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as P}from"./chunk-NYU5F26A.js";import{a as z}from"./chunk-RCNUJLF4.js";import"./chunk-C6CGQVLL.js";import{a as H}from"./chunk-XQG25LEF.js";import{a as Y}from"./chunk-3R25OJXK.js";import{a as j}from"./chunk-K4YWEDY2.js";import"./chunk-6UMNSGJM.js";import"./chunk-QNEABTP2.js";import{a as W}from"./chunk-T53UE6JF.js";import"./chunk-RYO6NY7F.js";import"./chunk-2HSPJH3C.js";import{d as E}from"./chunk-T5AUOWE7.js";import{b as d}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as o}from"./chunk-AODSXSC5.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as l}from"./chunk-DRYFJEFT.js";function X(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var J=X;var S=new o,$=d.packedLength+o.packedLength,ee=d.packedLength+2,ne=d.packedLength+o.packedLength,te=o.packedLength+1,u={modelMatrix:new d,boundingVolume:new E};function oe(e,c){let n=c*$,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=Math.sqrt(3),u}function ce(e,c){let n=c*ee,i=e[n++],r=e[n++],t=o.fromElements(i,i,r,S),s=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(s,t,s);let h=u.boundingVolume;return o.clone(o.ZERO,h.center),h.radius=Math.sqrt(2),u}function se(e,c){let n=c*ne,i=o.unpack(e,n,S);n+=o.packedLength;let r=d.unpack(e,n,u.modelMatrix);d.multiplyByScale(r,i,r);let t=u.boundingVolume;return o.clone(o.ZERO,t.center),t.radius=1,u}function ie(e,c){let n=c*te,i=e[n++],r=o.unpack(e,n,S),t=d.fromTranslation(r,u.modelMatrix);d.multiplyByUniformScale(t,i,t);let s=u.boundingVolume;return o.clone(o.ZERO,s.center),s.radius=1,u}var de=new o;function R(e,c,n,i,r){if(!l(c))return;let t=n.length,s=i.attributes.position.values,h=i.indices,a=e.positions,x=e.vertexBatchIds,y=e.indices,I=e.batchIds,p=e.batchTableColors,T=e.batchedIndices,U=e.indexOffsets,v=e.indexCounts,L=e.boundingVolumes,F=e.modelMatrix,Z=e.center,V=e.positionOffset,B=e.batchIdIndex,O=e.indexOffset,D=e.batchedIndicesOffset;for(let w=0;w<t;++w){let C=r(c,w),k=C.modelMatrix;d.multiply(F,k,k);let M=n[w],A=s.length;for(let f=0;f<A;f+=3){let m=o.unpack(s,f,de);d.multiplyByPoint(k,m,m),o.subtract(m,Z,m),o.pack(m,a,V*3+f),x[B++]=M}let b=h.length;for(let f=0;f<b;++f)y[O+f]=h[f]+V;let g=w+D;T[g]=new J({offset:O,count:b,color:P.fromRgba(p[M]),batchIds:[M]}),I[g]=M,U[g]=O,v[g]=b,L[g]=E.transform(C.boundingVolume,k),V+=A/3,O+=b}e.positionOffset=V,e.batchIdIndex=B,e.indexOffset=O,e.batchedIndicesOffset+=t}var K=new o,Q=new d;function re(e){let c=new Float64Array(e),n=0;o.unpack(c,n,K),n+=o.packedLength,d.unpack(c,n,Q)}function le(e){let c=e.length,n=0;for(let i=0;i<c;++i)n+=P.packedLength+3+e[i].batchIds.length;return n}function ae(e,c,n){let i=n.length,r=2+i*E.packedLength+1+le(c),t=new Float64Array(r),s=0;t[s++]=e,t[s++]=i;for(let a=0;a<i;++a)E.pack(n[a],t,s),s+=E.packedLength;let h=c.length;t[s++]=h;for(let a=0;a<h;++a){let x=c[a];P.pack(x.color,t,s),s+=P.packedLength,t[s++]=x.offset,t[s++]=x.count;let y=x.batchIds,I=y.length;t[s++]=I;for(let p=0;p<I;++p)t[s++]=y[p]}return t}function fe(e,c){let n=l(e.boxes)?new Float32Array(e.boxes):void 0,i=l(e.boxBatchIds)?new Uint16Array(e.boxBatchIds):void 0,r=l(e.cylinders)?new Float32Array(e.cylinders):void 0,t=l(e.cylinderBatchIds)?new Uint16Array(e.cylinderBatchIds):void 0,s=l(e.ellipsoids)?new Float32Array(e.ellipsoids):void 0,h=l(e.ellipsoidBatchIds)?new Uint16Array(e.ellipsoidBatchIds):void 0,a=l(e.spheres)?new Float32Array(e.spheres):void 0,x=l(e.sphereBatchIds)?new Uint16Array(e.sphereBatchIds):void 0,y=l(n)?i.length:0,I=l(r)?t.length:0,p=l(s)?h.length:0,T=l(a)?x.length:0,U=j.getUnitBox(),v=z.getUnitCylinder(),L=H.getUnitEllipsoid(),F=U.attributes.position.values,Z=v.attributes.position.values,V=L.attributes.position.values,B=F.length*y;B+=Z.length*I,B+=V.length*(p+T);let O=U.indices,D=v.indices,w=L.indices,C=O.length*y;C+=D.length*I,C+=w.length*(p+T);let k=new Float32Array(B),M=new Uint16Array(B/3),A=W.createTypedArray(B/3,C),b=y+I+p+T,g=new Uint16Array(b),f=new Array(b),m=new Uint32Array(b),q=new Uint32Array(b),_=new Array(b);re(e.packedBuffer);let G={batchTableColors:new Uint32Array(e.batchTableColors),positions:k,vertexBatchIds:M,indices:A,batchIds:g,batchedIndices:f,indexOffsets:m,indexCounts:q,boundingVolumes:_,positionOffset:0,batchIdIndex:0,indexOffset:0,batchedIndicesOffset:0,modelMatrix:Q,center:K};R(G,n,i,U,oe),R(G,r,t,v,ce),R(G,s,h,L,se),R(G,a,x,L,ie);let N=ae(A.BYTES_PER_ELEMENT,f,_);return c.push(k.buffer,M.buffer,A.buffer),c.push(g.buffer,m.buffer,q.buffer),c.push(N.buffer),{positions:k.buffer,vertexBatchIds:M.buffer,indices:A.buffer,indexOffsets:m.buffer,indexCounts:q.buffer,batchIds:g.buffer,packedBuffer:N.buffer}}var Oe=Y(fe);export{Oe as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePoints.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePoints.js index 9ea121674..40b6176b9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePoints.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePoints.js @@ -1,74 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -!function(){define("Core/defined",[],function(){"use strict";function t(t){return void 0!==t&&null!==t}return t}),define("Core/DeveloperError",["./defined"],function(t){"use strict";function e(t){this.name="DeveloperError",this.message=t;var e;try{throw new Error}catch(t){e=t.stack}this.stack=e}return t(Object.create)&&(e.prototype=Object.create(Error.prototype),e.prototype.constructor=e),e.prototype.toString=function(){var e=this.name+": "+this.message;return t(this.stack)&&(e+="\n"+this.stack.toString()),e},e.throwInstantiationError=function(){throw new e("This function defines an interface and should not be called directly.")},e}),define("Core/Check",["./defined","./DeveloperError"],function(t,e){"use strict";function n(t){return t+" is required, actual value was undefined"}function r(t,e,n){return"Expected "+n+" to be typeof "+e+", actual typeof was "+t}var i={};return i.typeOf={},i.defined=function(r,i){if(!t(i))throw new e(n(r))},i.typeOf.func=function(t,n){if("function"!=typeof n)throw new e(r(typeof n,"function",t))},i.typeOf.string=function(t,n){if("string"!=typeof n)throw new e(r(typeof n,"string",t))},i.typeOf.number=function(t,n){if("number"!=typeof n)throw new e(r(typeof n,"number",t))},i.typeOf.number.lessThan=function(t,n,r){if(i.typeOf.number(t,n),n>=r)throw new e("Expected "+t+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(t,n,r){if(i.typeOf.number(t,n),n>r)throw new e("Expected "+t+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(t,n,r){if(i.typeOf.number(t,n),n<=r)throw new e("Expected "+t+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(t,n,r){if(i.typeOf.number(t,n),n<r)throw new e("Expected "+t+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(t,n){if("object"!=typeof n)throw new e(r(typeof n,"object",t))},i.typeOf.bool=function(t,n){if("boolean"!=typeof n)throw new e(r(typeof n,"boolean",t))},i.typeOf.number.equals=function(t,n,r,o){if(i.typeOf.number(t,r),i.typeOf.number(n,o),r!==o)throw new e(t+" must be equal to "+n+", the actual values are "+r+" and "+o)},i}),define("Core/freezeObject",["./defined"],function(t){"use strict";var e=Object.freeze;return t(e)||(e=function(t){return t}),e}),define("Core/defaultValue",["./freezeObject"],function(t){"use strict";function e(t,e){return void 0!==t&&null!==t?t:e}return e.EMPTY_OBJECT=t({}),e}),define("ThirdParty/mersenne-twister",[],function(){var t=function(t){void 0==t&&(t=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(t)};return t.prototype.init_genrand=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){var t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}},t.prototype.genrand_int32=function(){var t,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)t=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^t>>>1^e[1&t];for(;n<this.N-1;n++)t=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^t>>>1^e[1&t];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^e[1&t],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,(t^=t>>>18)>>>0},t.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},t}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(t,e,n,r,i){"use strict";var o={};o.EPSILON1=.1,o.EPSILON2=.01,o.EPSILON3=.001,o.EPSILON4=1e-4,o.EPSILON5=1e-5,o.EPSILON6=1e-6,o.EPSILON7=1e-7,o.EPSILON8=1e-8,o.EPSILON9=1e-9,o.EPSILON10=1e-10,o.EPSILON11=1e-11,o.EPSILON12=1e-12,o.EPSILON13=1e-13,o.EPSILON14=1e-14,o.EPSILON15=1e-15,o.EPSILON16=1e-16,o.EPSILON17=1e-17,o.EPSILON18=1e-18,o.EPSILON19=1e-19,o.EPSILON20=1e-20,o.EPSILON21=1e-21,o.GRAVITATIONALPARAMETER=3986004418e5,o.SOLAR_RADIUS=6955e5,o.LUNAR_RADIUS=1737400,o.SIXTY_FOUR_KILOBYTES=65536,o.sign=n(Math.sign,function(t){return t=+t,0===t||t!==t?t:t>0?1:-1}),o.signNotZero=function(t){return t<0?-1:1},o.toSNorm=function(t,e){return e=n(e,255),Math.round((.5*o.clamp(t,-1,1)+.5)*e)},o.fromSNorm=function(t,e){return e=n(e,255),o.clamp(t,0,e)/e*2-1},o.normalize=function(t,e,n){return n=Math.max(n-e,0),0===n?0:o.clamp((t-e)/n,0,1)},o.sinh=n(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2}),o.cosh=n(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2}),o.lerp=function(t,e,n){return(1-n)*t+n*e},o.PI=Math.PI,o.ONE_OVER_PI=1/Math.PI,o.PI_OVER_TWO=Math.PI/2,o.PI_OVER_THREE=Math.PI/3,o.PI_OVER_FOUR=Math.PI/4,o.PI_OVER_SIX=Math.PI/6,o.THREE_PI_OVER_TWO=3*Math.PI/2,o.TWO_PI=2*Math.PI,o.ONE_OVER_TWO_PI=1/(2*Math.PI),o.RADIANS_PER_DEGREE=Math.PI/180,o.DEGREES_PER_RADIAN=180/Math.PI,o.RADIANS_PER_ARCSECOND=o.RADIANS_PER_DEGREE/3600,o.toRadians=function(t){return t*o.RADIANS_PER_DEGREE},o.toDegrees=function(t){return t*o.DEGREES_PER_RADIAN},o.convertLongitudeRange=function(t){var e=o.TWO_PI,n=t-Math.floor(t/e)*e;return n<-Math.PI?n+e:n>=Math.PI?n-e:n},o.clampToLatitudeRange=function(t){return o.clamp(t,-1*o.PI_OVER_TWO,o.PI_OVER_TWO)},o.negativePiToPi=function(t){return o.zeroToTwoPi(t+o.PI)-o.PI},o.zeroToTwoPi=function(t){var e=o.mod(t,o.TWO_PI);return Math.abs(e)<o.EPSILON14&&Math.abs(t)>o.EPSILON14?o.TWO_PI:e},o.mod=function(t,e){return(t%e+e)%e},o.equalsEpsilon=function(t,e,r,i){i=n(i,r);var o=Math.abs(t-e);return o<=i||o<=r*Math.max(Math.abs(t),Math.abs(e))},o.lessThan=function(t,e,n){return t-e<-n},o.lessThanOrEquals=function(t,e,n){return t-e<n},o.greaterThan=function(t,e,n){return t-e>n},o.greaterThanOrEquals=function(t,e,n){return t-e>-n};var a=[1];o.factorial=function(t){var e=a.length;if(t>=e)for(var n=a[e-1],r=e;r<=t;r++)a.push(n*r);return a[t]},o.incrementWrap=function(t,e,r){return r=n(r,0),++t,t>e&&(t=r),t},o.isPowerOfTwo=function(t){return 0!==t&&0==(t&t-1)},o.nextPowerOfTwo=function(t){return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},o.clamp=function(t,e,n){return t<e?e:t>n?n:t};var u=new t;return o.setRandomNumberSeed=function(e){u=new t(e)},o.nextRandomNumber=function(){return u.random()},o.randomBetween=function(t,e){return o.nextRandomNumber()*(e-t)+t},o.acosClamped=function(t){return Math.acos(o.clamp(t,-1,1))},o.asinClamped=function(t){return Math.asin(o.clamp(t,-1,1))},o.chordLength=function(t,e){return 2*e*Math.sin(.5*t)},o.logBase=function(t,e){return Math.log(t)/Math.log(e)},o.cbrt=n(Math.cbrt,function(t){var e=Math.pow(Math.abs(t),1/3);return t<0?-e:e}),o.log2=n(Math.log2,function(t){return Math.log(t)*Math.LOG2E}),o.fog=function(t,e){var n=t*e;return 1-Math.exp(-n*n)},o.fastApproximateAtan=function(t){return t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)},o.fastApproximateAtan2=function(t,e){var n,r,i=Math.abs(t);n=Math.abs(e),r=Math.max(i,n),n=Math.min(i,n);var a=n/r;return i=o.fastApproximateAtan(a),i=Math.abs(e)>Math.abs(t)?o.PI_OVER_TWO-i:i,i=t<0?o.PI-i:i,i=e<0?-i:i},o}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(t,e,n,r,i,o){"use strict";function a(t,n){this.x=e(t,0),this.y=e(n,0)}a.fromElements=function(t,e,r){return n(r)?(r.x=t,r.y=e,r):new a(t,e)},a.clone=function(t,e){if(n(t))return n(e)?(e.x=t.x,e.y=t.y,e):new a(t.x,t.y)},a.fromCartesian3=a.clone,a.fromCartesian4=a.clone,a.packedLength=2,a.pack=function(t,n,r){return r=e(r,0),n[r++]=t.x,n[r]=t.y,n},a.unpack=function(t,r,i){return r=e(r,0),n(i)||(i=new a),i.x=t[r++],i.y=t[r],i},a.packArray=function(t,e){var r=t.length;n(e)?e.length=2*r:e=new Array(2*r);for(var i=0;i<r;++i)a.pack(t[i],e,2*i);return e},a.unpackArray=function(t,e){var r=t.length;n(e)?e.length=r/2:e=new Array(r/2);for(var i=0;i<r;i+=2){var o=i/2;e[o]=a.unpack(t,i,e[o])}return e},a.fromArray=a.unpack,a.maximumComponent=function(t){return Math.max(t.x,t.y)},a.minimumComponent=function(t){return Math.min(t.x,t.y)},a.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n},a.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n},a.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y},a.magnitude=function(t){return Math.sqrt(a.magnitudeSquared(t))};var u=new a;a.distance=function(t,e){return a.subtract(t,e,u),a.magnitude(u)},a.distanceSquared=function(t,e){return a.subtract(t,e,u),a.magnitudeSquared(u)},a.normalize=function(t,e){var n=a.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e},a.dot=function(t,e){return t.x*e.x+t.y*e.y},a.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n},a.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n},a.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n},a.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n},a.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n},a.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n},a.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e},a.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e};var s=new a;a.lerp=function(t,e,n,r){return a.multiplyByScalar(e,n,s),r=a.multiplyByScalar(t,1-n,r),a.add(s,r,r)};var c=new a,h=new a;a.angleBetween=function(t,e){return a.normalize(t,c),a.normalize(e,h),o.acosClamped(a.dot(c,h))};var f=new a;return a.mostOrthogonalAxis=function(t,e){var n=a.normalize(t,f);return a.abs(n,n),e=n.x<=n.y?a.clone(a.UNIT_X,e):a.clone(a.UNIT_Y,e)},a.equals=function(t,e){return t===e||n(t)&&n(e)&&t.x===e.x&&t.y===e.y},a.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]},a.equalsEpsilon=function(t,e,r,i){return t===e||n(t)&&n(e)&&o.equalsEpsilon(t.x,e.x,r,i)&&o.equalsEpsilon(t.y,e.y,r,i)},a.ZERO=i(new a(0,0)),a.UNIT_X=i(new a(1,0)),a.UNIT_Y=i(new a(0,1)),a.prototype.clone=function(t){return a.clone(this,t)},a.prototype.equals=function(t){return a.equals(this,t)},a.prototype.equalsEpsilon=function(t,e,n){return a.equalsEpsilon(this,t,e,n)},a.prototype.toString=function(){return"("+this.x+", "+this.y+")"},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(t,e,n,r,i,o){"use strict";function a(t,n,r){this.x=e(t,0),this.y=e(n,0),this.z=e(r,0)}a.fromSpherical=function(t,r){n(r)||(r=new a);var i=t.clock,o=t.cone,u=e(t.magnitude,1),s=u*Math.sin(o);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(o),r},a.fromElements=function(t,e,r,i){return n(i)?(i.x=t,i.y=e,i.z=r,i):new a(t,e,r)},a.clone=function(t,e){if(n(t))return n(e)?(e.x=t.x,e.y=t.y,e.z=t.z,e):new a(t.x,t.y,t.z)},a.fromCartesian4=a.clone,a.packedLength=3,a.pack=function(t,n,r){return r=e(r,0),n[r++]=t.x,n[r++]=t.y,n[r]=t.z,n},a.unpack=function(t,r,i){return r=e(r,0),n(i)||(i=new a),i.x=t[r++],i.y=t[r++],i.z=t[r],i},a.packArray=function(t,e){var r=t.length;n(e)?e.length=3*r:e=new Array(3*r);for(var i=0;i<r;++i)a.pack(t[i],e,3*i);return e},a.unpackArray=function(t,e){var r=t.length;n(e)?e.length=r/3:e=new Array(r/3);for(var i=0;i<r;i+=3){var o=i/3;e[o]=a.unpack(t,i,e[o])}return e},a.fromArray=a.unpack,a.maximumComponent=function(t){return Math.max(t.x,t.y,t.z)},a.minimumComponent=function(t){return Math.min(t.x,t.y,t.z)},a.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n.z=Math.min(t.z,e.z),n},a.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n.z=Math.max(t.z,e.z),n},a.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y+t.z*t.z},a.magnitude=function(t){return Math.sqrt(a.magnitudeSquared(t))};var u=new a;a.distance=function(t,e){return a.subtract(t,e,u),a.magnitude(u)},a.distanceSquared=function(t,e){return a.subtract(t,e,u),a.magnitudeSquared(u)},a.normalize=function(t,e){var n=a.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e.z=t.z/n,e},a.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},a.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n.z=t.z*e.z,n},a.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n.z=t.z/e.z,n},a.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n.z=t.z+e.z,n},a.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n.z=t.z-e.z,n},a.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n.z=t.z*e,n},a.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n.z=t.z/e,n},a.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e},a.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e.z=Math.abs(t.z),e};var s=new a;a.lerp=function(t,e,n,r){return a.multiplyByScalar(e,n,s),r=a.multiplyByScalar(t,1-n,r),a.add(s,r,r)};var c=new a,h=new a;a.angleBetween=function(t,e){a.normalize(t,c),a.normalize(e,h);var n=a.dot(c,h),r=a.magnitude(a.cross(c,h,c));return Math.atan2(r,n)};var f=new a;a.mostOrthogonalAxis=function(t,e){var n=a.normalize(t,f);return a.abs(n,n),e=n.x<=n.y?n.x<=n.z?a.clone(a.UNIT_X,e):a.clone(a.UNIT_Z,e):n.y<=n.z?a.clone(a.UNIT_Y,e):a.clone(a.UNIT_Z,e)},a.projectVector=function(t,e,n){var r=a.dot(t,e)/a.dot(e,e);return a.multiplyByScalar(e,r,n)},a.equals=function(t,e){return t===e||n(t)&&n(e)&&t.x===e.x&&t.y===e.y&&t.z===e.z},a.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]&&t.z===e[n+2]},a.equalsEpsilon=function(t,e,r,i){return t===e||n(t)&&n(e)&&o.equalsEpsilon(t.x,e.x,r,i)&&o.equalsEpsilon(t.y,e.y,r,i)&&o.equalsEpsilon(t.z,e.z,r,i)},a.cross=function(t,e,n){var r=t.x,i=t.y,o=t.z,a=e.x,u=e.y,s=e.z,c=i*s-o*u,h=o*a-r*s,f=r*u-i*a;return n.x=c,n.y=h,n.z=f,n},a.midpoint=function(t,e,n){return n.x=.5*(t.x+e.x),n.y=.5*(t.y+e.y),n.z=.5*(t.z+e.z),n},a.fromDegrees=function(t,e,n,r,i){return t=o.toRadians(t),e=o.toRadians(e),a.fromRadians(t,e,n,r,i)};var l=new a,d=new a,m=new a(40680631590769,40680631590769,40408299984661.445);return a.fromRadians=function(t,r,i,o,u){i=e(i,0);var s=n(o)?o.radiiSquared:m,c=Math.cos(r);l.x=c*Math.cos(t),l.y=c*Math.sin(t),l.z=Math.sin(r),l=a.normalize(l,l),a.multiplyComponents(s,l,d);var h=Math.sqrt(a.dot(l,d));return d=a.divideByScalar(d,h,d),l=a.multiplyByScalar(l,i,l),n(u)||(u=new a),a.add(d,l,u)},a.fromDegreesArray=function(t,e,r){var i=t.length;n(r)?r.length=i/2:r=new Array(i/2);for(var o=0;o<i;o+=2){var u=t[o],s=t[o+1],c=o/2;r[c]=a.fromDegrees(u,s,0,e,r[c])}return r},a.fromRadiansArray=function(t,e,r){var i=t.length;n(r)?r.length=i/2:r=new Array(i/2);for(var o=0;o<i;o+=2){var u=t[o],s=t[o+1],c=o/2;r[c]=a.fromRadians(u,s,0,e,r[c])}return r},a.fromDegreesArrayHeights=function(t,e,r){var i=t.length;n(r)?r.length=i/3:r=new Array(i/3);for(var o=0;o<i;o+=3){var u=t[o],s=t[o+1],c=t[o+2],h=o/3;r[h]=a.fromDegrees(u,s,c,e,r[h])}return r},a.fromRadiansArrayHeights=function(t,e,r){var i=t.length;n(r)?r.length=i/3:r=new Array(i/3);for(var o=0;o<i;o+=3){var u=t[o],s=t[o+1],c=t[o+2],h=o/3;r[h]=a.fromRadians(u,s,c,e,r[h])}return r},a.ZERO=i(new a(0,0,0)),a.UNIT_X=i(new a(1,0,0)),a.UNIT_Y=i(new a(0,1,0)),a.UNIT_Z=i(new a(0,0,1)),a.prototype.clone=function(t){return a.clone(this,t)},a.prototype.equals=function(t){return a.equals(this,t)},a.prototype.equalsEpsilon=function(t,e,n){return a.equalsEpsilon(this,t,e,n)},a.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},a}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(t,e,n,r,i,o){"use strict";function a(t){return h[0]=t,h[0]}function u(t){return t>>1^-(1&t)}var s={};s.octEncodeInRange=function(t,e,n){if(n.x=t.x/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),n.y=t.y/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),t.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*o.signNotZero(r),n.y=(1-Math.abs(r))*o.signNotZero(i)}return n.x=o.toSNorm(n.x,e),n.y=o.toSNorm(n.y,e),n},s.octEncode=function(t,e){return s.octEncodeInRange(t,255,e)};var c=new t,h=new Uint8Array(1);s.octEncodeToCartesian4=function(t,e){return s.octEncodeInRange(t,65535,c),e.x=a(c.x*(1/256)),e.y=a(c.x),e.z=a(c.y*(1/256)),e.w=a(c.y),e},s.octDecodeInRange=function(t,n,r,i){if(i.x=o.fromSNorm(t,r),i.y=o.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var a=i.x;i.x=(1-Math.abs(i.y))*o.signNotZero(a),i.y=(1-Math.abs(a))*o.signNotZero(i.y)}return e.normalize(i,i)},s.octDecode=function(t,e,n){return s.octDecodeInRange(t,e,255,n)},s.octDecodeFromCartesian4=function(t,e){var n=t.x,r=t.y,i=t.z,o=t.w,a=256*n+r,u=256*i+o;return s.octDecodeInRange(a,u,65535,e)},s.octPackFloat=function(t){return 256*t.x+t.y};var f=new t;return s.octEncodeFloat=function(t){return s.octEncode(t,f),s.octPackFloat(f)},s.octDecodeFloat=function(t,e){var n=t/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,e)},s.octPack=function(t,e,n,r){var i=s.octEncodeFloat(t),o=s.octEncodeFloat(e),a=s.octEncode(n,f);return r.x=65536*a.x+i,r.y=65536*a.y+o,r},s.octUnpack=function(t,e,n,r){var i=t.x/65536,o=Math.floor(i),a=65536*(i-o);i=t.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(a,e),s.octDecodeFloat(c,n),s.octDecode(o,u,r)},s.compressTextureCoordinates=function(t){return 4096*(4095*t.x|0)+(4095*t.y|0)},s.decompressTextureCoordinates=function(t,e){var n=t/4096,r=Math.floor(n);return e.x=r/4095,e.y=(t-4096*r)/4095,e},s.zigZagDeltaDecode=function(t,e,n){for(var i=t.length,o=0,a=0,s=0,c=0;c<i;++c)o+=u(t[c]),a+=u(e[c]),t[c]=o,e[c]=a,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(t,e,n,r){"use strict";function i(n,i,u,s,c){var h=n.x,f=n.y,l=n.z,d=i.x,m=i.y,p=i.z,y=h*h*d*d,g=f*f*m*m,v=l*l*p*p,w=y+g+v,x=Math.sqrt(1/w),M=t.multiplyByScalar(n,x,o);if(w<s)return isFinite(x)?t.clone(M,c):void 0;var _=u.x,E=u.y,O=u.z,S=a;S.x=M.x*_*2,S.y=M.y*E*2,S.z=M.z*O*2;var P,R,T,I,b,A,z,C,N,q,L,k=(1-x)*t.magnitude(n)/(.5*t.magnitude(S)),D=0;do{k-=D,T=1/(1+k*_),I=1/(1+k*E),b=1/(1+k*O),A=T*T,z=I*I,C=b*b,N=A*T,q=z*I,L=C*b,P=y*A+g*z+v*C-1,R=y*N*_+g*q*E+v*L*O;D=P/(-2*R)}while(Math.abs(P)>r.EPSILON12);return e(c)?(c.x=h*T,c.y=f*I,c.z=l*b,c):new t(h*T,f*I,l*b)}var o=new t,a=new t;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(t,e,n,r,i,o,a){"use strict";function u(t,e,r){this.longitude=n(t,0),this.latitude=n(e,0),this.height=n(r,0)}u.fromRadians=function(t,e,i,o){return i=n(i,0),r(o)?(o.longitude=t,o.latitude=e,o.height=i,o):new u(t,e,i)},u.fromDegrees=function(t,e,n,r){return t=o.toRadians(t),e=o.toRadians(e),u.fromRadians(t,e,n,r)};var s=new t,c=new t,h=new t,f=new t(1/6378137,1/6378137,1/6356752.314245179),l=new t(1/40680631590769,1/40680631590769,1/40408299984661.445),d=o.EPSILON1;return u.fromCartesian=function(e,n,i){var m=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:l,y=r(n)?n._centerToleranceSquared:d,g=a(e,m,p,y,c);if(r(g)){var v=t.multiplyComponents(g,p,s);v=t.normalize(v,v);var w=t.subtract(e,g,h),x=Math.atan2(v.y,v.x),M=Math.asin(v.z),_=o.sign(t.dot(w,e))*t.magnitude(w);return r(i)?(i.longitude=x,i.latitude=M,i.height=_,i):new u(x,M,_)}},u.toCartesian=function(e,n,r){return t.fromRadians(e.longitude,e.latitude,e.height,n,r)},u.clone=function(t,e){if(r(t))return r(e)?(e.longitude=t.longitude,e.latitude=t.latitude,e.height=t.height,e):new u(t.longitude,t.latitude,t.height)},u.equals=function(t,e){return t===e||r(t)&&r(e)&&t.longitude===e.longitude&&t.latitude===e.latitude&&t.height===e.height},u.equalsEpsilon=function(t,e,n){return t===e||r(t)&&r(e)&&Math.abs(t.longitude-e.longitude)<=n&&Math.abs(t.latitude-e.latitude)<=n&&Math.abs(t.height-e.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(t){return u.clone(this,t)},u.prototype.equals=function(t){return u.equals(this,t)},u.prototype.equalsEpsilon=function(t,e){return u.equalsEpsilon(this,t,e)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(t){"use strict";var e=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(t){return!1}}(),n=Object.defineProperties;return e&&t(n)||(n=function(t){return t}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(t,e,n,r,i,o,a,u,s,c){"use strict";function h(e,n,i,o){n=r(n,0),i=r(i,0),o=r(o,0),e._radii=new t(n,i,o),e._radiiSquared=new t(n*n,i*i,o*o),e._radiiToTheFourth=new t(n*n*n*n,i*i*i*i,o*o*o*o),e._oneOverRadii=new t(0===n?0:1/n,0===i?0:1/i,0===o?0:1/o),e._oneOverRadiiSquared=new t(0===n?0:1/(n*n),0===i?0:1/(i*i),0===o?0:1/(o*o)),e._minimumRadius=Math.min(n,i,o),e._maximumRadius=Math.max(n,i,o),e._centerToleranceSquared=s.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function f(t,e,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,h(this,t,e,n)}o(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(e,n){if(i(e)){var r=e._radii;return i(n)?(t.clone(r,n._radii),t.clone(e._radiiSquared,n._radiiSquared),t.clone(e._radiiToTheFourth,n._radiiToTheFourth),t.clone(e._oneOverRadii,n._oneOverRadii),t.clone(e._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=e._minimumRadius,n._maximumRadius=e._maximumRadius,n._centerToleranceSquared=e._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(t,e){return i(e)||(e=new f),i(t)?(h(e,t.x,t.y,t.z),e):e},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(t){return f.clone(this,t)},f.packedLength=t.packedLength,f.pack=function(e,n,i){return i=r(i,0),t.pack(e._radii,n,i),n},f.unpack=function(e,n,i){n=r(n,0);var o=t.unpack(e,n);return f.fromCartesian3(o,i)},f.prototype.geocentricSurfaceNormal=t.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(e,n){var r=e.longitude,o=e.latitude,a=Math.cos(o),u=a*Math.cos(r),s=a*Math.sin(r),c=Math.sin(o);return i(n)||(n=new t),n.x=u,n.y=s,n.z=c,t.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(e,n){return i(n)||(n=new t),n=t.multiplyComponents(e,this._oneOverRadiiSquared,n),t.normalize(n,n)};var l=new t,d=new t;f.prototype.cartographicToCartesian=function(e,n){var r=l,o=d;this.geodeticSurfaceNormalCartographic(e,r),t.multiplyComponents(this._radiiSquared,r,o);var a=Math.sqrt(t.dot(r,o));return t.divideByScalar(o,a,o),t.multiplyByScalar(r,e.height,r),i(n)||(n=new t),t.add(o,r,n)},f.prototype.cartographicArrayToCartesianArray=function(t,e){var n=t.length;i(e)?e.length=n:e=new Array(n);for(var r=0;r<n;r++)e[r]=this.cartographicToCartesian(t[r],e[r]);return e};var m=new t,p=new t,y=new t;return f.prototype.cartesianToCartographic=function(n,r){var o=this.scaleToGeodeticSurface(n,p);if(i(o)){var a=this.geodeticSurfaceNormal(o,m),u=t.subtract(n,o,y),c=Math.atan2(a.y,a.x),h=Math.asin(a.z),f=s.sign(t.dot(u,n))*t.magnitude(u);return i(r)?(r.longitude=c,r.latitude=h,r.height=f,r):new e(c,h,f)}},f.prototype.cartesianArrayToCartographicArray=function(t,e){var n=t.length;i(e)?e.length=n:e=new Array(n);for(var r=0;r<n;++r)e[r]=this.cartesianToCartographic(t[r],e[r]);return e},f.prototype.scaleToGeodeticSurface=function(t,e){return c(t,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,e)},f.prototype.scaleToGeocentricSurface=function(e,n){i(n)||(n=new t);var r=e.x,o=e.y,a=e.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+o*o*u.y+a*a*u.z);return t.multiplyByScalar(e,s,n)},f.prototype.transformPositionToScaledSpace=function(e,n){return i(n)||(n=new t),t.multiplyComponents(e,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(e,n){return i(n)||(n=new t),t.multiplyComponents(e,this._radii,n)},f.prototype.equals=function(e){return this===e||i(e)&&t.equals(this._radii,e._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,n,o){n=r(n,0);var a=this._squaredXOverSquaredZ;if(i(o)||(o=new t),o.x=0,o.y=0,o.z=e.z*(1-a),!(Math.abs(o.z)>=this._radii.z-n))return o},f}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(t,e,n,r,i,o,a,u){"use strict";function s(t,e,r,i){this.west=n(t,0),this.south=n(e,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(t,e,r){return r=n(r,0),e[r++]=t.west,e[r++]=t.south,e[r++]=t.east,e[r]=t.north,e},s.unpack=function(t,e,i){return e=n(e,0),r(i)||(i=new s),i.west=t[e++],i.south=t[e++],i.east=t[e++],i.north=t[e],i},s.computeWidth=function(t){var e=t.east,n=t.west;return e<n&&(e+=u.TWO_PI),e-n},s.computeHeight=function(t){return t.north-t.south},s.fromDegrees=function(t,e,i,o,a){return t=u.toRadians(n(t,0)),e=u.toRadians(n(e,0)),i=u.toRadians(n(i,0)),o=u.toRadians(n(o,0)),r(a)?(a.west=t,a.south=e,a.east=i,a.north=o,a):new s(t,e,i,o)},s.fromRadians=function(t,e,i,o,a){return r(a)?(a.west=n(t,0),a.south=n(e,0),a.east=n(i,0),a.north=n(o,0),a):new s(t,e,i,o)},s.fromCartographicArray=function(t,e){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=Number.MAX_VALUE,h=-Number.MAX_VALUE,f=0,l=t.length;f<l;f++){var d=t[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),h=Math.max(h,d.latitude);var m=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;o=Math.min(o,m),a=Math.max(a,m)}return i-n>a-o&&(n=o,i=a,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(e)?(e.west=n,e.south=c,e.east=i,e.north=h,e):new s(n,c,i,h)},s.fromCartesianArray=function(t,e,i){e=n(e,o.WGS84);for(var a=Number.MAX_VALUE,c=-Number.MAX_VALUE,h=Number.MAX_VALUE,f=-Number.MAX_VALUE,l=Number.MAX_VALUE,d=-Number.MAX_VALUE,m=0,p=t.length;m<p;m++){var y=e.cartesianToCartographic(t[m]);a=Math.min(a,y.longitude),c=Math.max(c,y.longitude),l=Math.min(l,y.latitude),d=Math.max(d,y.latitude);var g=y.longitude>=0?y.longitude:y.longitude+u.TWO_PI;h=Math.min(h,g),f=Math.max(f,g)}return c-a>f-h&&(a=h,c=f,c>u.PI&&(c-=u.TWO_PI),a>u.PI&&(a-=u.TWO_PI)),r(i)?(i.west=a,i.south=l,i.east=c,i.north=d,i):new s(a,l,c,d)},s.clone=function(t,e){if(r(t))return r(e)?(e.west=t.west,e.south=t.south,e.east=t.east,e.north=t.north,e):new s(t.west,t.south,t.east,t.north)},s.equalsEpsilon=function(t,e,n){return t===e||r(t)&&r(e)&&Math.abs(t.west-e.west)<=n&&Math.abs(t.south-e.south)<=n&&Math.abs(t.east-e.east)<=n&&Math.abs(t.north-e.north)<=n},s.prototype.clone=function(t){return s.clone(this,t)},s.prototype.equals=function(t){return s.equals(this,t)},s.equals=function(t,e){return t===e||r(t)&&r(e)&&t.west===e.west&&t.south===e.south&&t.east===e.east&&t.north===e.north},s.prototype.equalsEpsilon=function(t,e){return s.equalsEpsilon(this,t,e)},s.validate=function(t){},s.southwest=function(e,n){return r(n)?(n.longitude=e.west,n.latitude=e.south,n.height=0,n):new t(e.west,e.south)},s.northwest=function(e,n){return r(n)?(n.longitude=e.west,n.latitude=e.north,n.height=0,n):new t(e.west,e.north)},s.northeast=function(e,n){return r(n)?(n.longitude=e.east,n.latitude=e.north,n.height=0,n):new t(e.east,e.north)},s.southeast=function(e,n){return r(n)?(n.longitude=e.east,n.latitude=e.south,n.height=0,n):new t(e.east,e.south)},s.center=function(e,n){var i=e.east,o=e.west;i<o&&(i+=u.TWO_PI);var a=u.negativePiToPi(.5*(o+i)),s=.5*(e.south+e.north);return r(n)?(n.longitude=a,n.latitude=s,n.height=0,n):new t(a,s)},s.intersection=function(t,e,n){var i=t.east,o=t.west,a=e.east,c=e.west;i<o&&a>0?i+=u.TWO_PI:a<c&&i>0&&(a+=u.TWO_PI),i<o&&c<0?c+=u.TWO_PI:a<c&&o<0&&(o+=u.TWO_PI);var h=u.negativePiToPi(Math.max(o,c)),f=u.negativePiToPi(Math.min(i,a));if(!((t.west<t.east||e.west<e.east)&&f<=h)){var l=Math.max(t.south,e.south),d=Math.min(t.north,e.north);if(!(l>=d))return r(n)?(n.west=h,n.south=l,n.east=f,n.north=d,n):new s(h,l,f,d)}},s.simpleIntersection=function(t,e,n){var i=Math.max(t.west,e.west),o=Math.max(t.south,e.south),a=Math.min(t.east,e.east),u=Math.min(t.north,e.north);if(!(o>=u||i>=a))return r(n)?(n.west=i,n.south=o,n.east=a,n.north=u,n):new s(i,o,a,u)},s.union=function(t,e,n){r(n)||(n=new s);var i=t.east,o=t.west,a=e.east,c=e.west;i<o&&a>0?i+=u.TWO_PI:a<c&&i>0&&(a+=u.TWO_PI),i<o&&c<0?c+=u.TWO_PI:a<c&&o<0&&(o+=u.TWO_PI);var h=u.convertLongitudeRange(Math.min(o,c)),f=u.convertLongitudeRange(Math.max(i,a));return n.west=h,n.south=Math.min(t.south,e.south),n.east=f,n.north=Math.max(t.north,e.north),n},s.expand=function(t,e,n){return r(n)||(n=new s),n.west=Math.min(t.west,e.longitude),n.south=Math.min(t.south,e.latitude),n.east=Math.max(t.east,e.longitude),n.north=Math.max(t.north,e.latitude),n},s.contains=function(t,e){var n=e.longitude,r=e.latitude,i=t.west,o=t.east;return o<i&&(o+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<o||u.equalsEpsilon(n,o,u.EPSILON14))&&r>=t.south&&r<=t.north};var c=new t;return s.subsample=function(t,e,i,a){e=n(e,o.WGS84),i=n(i,0),r(a)||(a=[]);var h=0,f=t.north,l=t.south,d=t.east,m=t.west,p=c;p.height=i,p.longitude=m,p.latitude=f,a[h]=e.cartographicToCartesian(p,a[h]),h++,p.longitude=d,a[h]=e.cartographicToCartesian(p,a[h]),h++,p.latitude=l,a[h]=e.cartographicToCartesian(p,a[h]),h++,p.longitude=m,a[h]=e.cartographicToCartesian(p,a[h]),h++,p.latitude=f<0?f:l>0?l:0;for(var y=1;y<8;++y)p.longitude=-Math.PI+y*u.PI_OVER_TWO,s.contains(t,p)&&(a[h]=e.cartographicToCartesian(p,a[h]),h++);return 0===p.latitude&&(p.longitude=m,a[h]=e.cartographicToCartesian(p,a[h]),h++,p.longitude=d,a[h]=e.cartographicToCartesian(p,a[h]),h++),a.length=h,a},s.MAX_VALUE=a(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),function(t){"use strict";t("ThirdParty/when",[],function(){function t(t,n,r,i){return e(t).then(n,r,i)}function e(t){var e,n;return t instanceof r?e=t:u(t)?(n=a(),t.then(function(t){n.resolve(t)},function(t){n.reject(t)},function(t){n.progress(t)}),e=n.promise):e=i(t),e}function n(e){return t(e,o)}function r(t){this.then=t}function i(t){return new r(function(n){try{return e(n?n(t):t)}catch(t){return o(t)}})}function o(t){return new r(function(n,r){try{return r?e(r(t)):o(t)}catch(t){return o(t)}})}function a(){function t(t,e,n){return l(t,e,n)}function n(t){return m(t)}function i(t){return m(o(t))}function u(t){return d(t)}var s,c,h,f,l,d,m;return c=new r(t),s={then:t,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},h=[],f=[],l=function(t,e,n){var r,i;return r=a(),i="function"==typeof n?function(t){try{r.progress(n(t))}catch(t){r.progress(t)}}:function(t){r.progress(t)},h.push(function(n){n.then(t,e).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(t){return p(f,t),t},m=function(t){return t=e(t),l=t.then,m=e,d=g,p(h,t),f=h=M,t},s}function u(t){return t&&"function"==typeof t.then}function s(e,n,r,i,o){return y(2,arguments),t(e,function(e){function u(t){p(t)}function s(t){m(t)}var c,h,f,l,d,m,p,y,v,w;if(v=e.length>>>0,c=Math.max(0,Math.min(n,v)),f=[],h=v-c+1,l=[],d=a(),c)for(y=d.progress,p=function(t){l.push(t),--h||(m=p=g,d.reject(l))},m=function(t){f.push(t),--c||(m=p=g,d.resolve(f))},w=0;w<v;++w)w in e&&t(e[w],s,u,y);else d.resolve(f);return d.then(r,i,o)})} -function c(t,e,n,r){function i(t){return e?e(t[0]):t[0]}return s(t,1,i,n,r)}function h(t,e,n,r){return y(1,arguments),l(t,v).then(e,n,r)}function f(){return l(arguments,v)}function l(e,n){return t(e,function(e){var r,i,o,u,s,c;if(o=i=e.length>>>0,r=[],c=a(),o)for(u=function(e,i){t(e,n).then(function(t){r[i]=t,--o||c.resolve(r)},c.reject)},s=0;s<i;s++)s in e?u(e[s],s):--o;else c.resolve(r);return c.promise})}function d(e,n){var r=x.call(arguments,1);return t(e,function(e){var i;return i=e.length,r[0]=function(e,r,o){return t(e,function(e){return t(r,function(t){return n(e,t,o,i)})})},w.apply(e,r)})}function m(e,n,r){var i=arguments.length>2;return t(e,function(t){return t=i?r:t,n.resolve(t),t},function(t){return n.reject(t),o(t)},n.progress)}function p(t,e){for(var n,r=0;n=t[r++];)n(e)}function y(t,e){for(var n,r=e.length;r>t;)if(null!=(n=e[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function g(){}function v(t){return t}var w,x,M;return t.defer=a,t.resolve=e,t.reject=n,t.join=f,t.all=h,t.map=l,t.reduce=d,t.any=c,t.some=s,t.chain=m,t.isPromise=u,r.prototype={always:function(t,e){return this.then(t,t,e)},otherwise:function(t){return this.then(M,t)},yield:function(t){return this.then(function(){return t})},spread:function(t){return this.then(function(e){return h(e,function(e){return t.apply(M,e)})})}},x=[].slice,w=[].reduce||function(t){var e,n,r,i,o;if(o=0,e=Object(this),i=e.length>>>0,n=arguments,n.length<=1)for(;;){if(o in e){r=e[o++];break}if(++o>=i)throw new TypeError}else r=n[1];for(;o<i;++o)o in e&&(r=t(r,e[o],o,e));return r},t})}("function"==typeof define&&define.amd?define:function(t){"object"==typeof exports?module.exports=t():this.when=t()}),define("Core/formatError",["./defined"],function(t){"use strict";function e(e){var n,r=e.name,i=e.message;n=t(r)&&t(i)?r+": "+i:e.toString();var o=e.stack;return t(o)&&(n+="\n"+o),n}return e}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(t,e,n,r){"use strict";function i(e,n,r){try{return e(n,r)}catch(e){return t.reject(e)}}function o(o){var a;return function(u){var s=u.data,c=[],h={id:s.id,result:void 0,error:void 0};return t(i(o,s.parameters,c)).then(function(t){h.result=t}).otherwise(function(t){t instanceof Error?h.error={name:t.name,message:t.message,stack:t.stack}:h.error=t}).always(function(){n(a)||(a=e(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{a(h,c)}catch(t){h.result=void 0,h.error="postMessage failed with error: "+r(t)+"\n with responseMessage: "+JSON.stringify(h),a(h)}})}}return o}),define("Workers/createVectorTilePoints",["../Core/AttributeCompression","../Core/Cartesian3","../Core/Cartographic","../Core/Ellipsoid","../Core/Math","../Core/Rectangle","./createTaskProcessorWorker"],function(t,e,n,r,i,o,a){"use strict";function u(t){t=new Float64Array(t);var e=0;m.min=t[e++],m.max=t[e++],o.unpack(t,e,l),e+=o.packedLength,r.unpack(t,e,d)}function s(r,o){var a=new Uint16Array(r.positions);u(r.packedBuffer);var s=l,p=d,y=m.min,g=m.max,v=a.length/3,w=a.subarray(0,v),x=a.subarray(v,2*v),M=a.subarray(2*v,3*v);t.zigZagDeltaDecode(w,x,M);for(var _=new Float64Array(a.length),E=0;E<v;++E){var O=w[E],S=x[E],P=M[E],R=i.lerp(s.west,s.east,O/c),T=i.lerp(s.south,s.north,S/c),I=i.lerp(y,g,P/c),b=n.fromRadians(R,T,I,h),A=p.cartographicToCartesian(b,f);e.pack(A,_,3*E)}return o.push(_.buffer),{positions:_.buffer}}var c=32767,h=new n,f=new e,l=new o,d=new r,m={min:void 0,max:void 0};return a(s)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as x}from"./chunk-3R25OJXK.js";import{a as w}from"./chunk-H3L4SJP4.js";import{i as c}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as h,b as l,d as p}from"./chunk-AODSXSC5.js";import{a as i}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";var u=32767,F=new l,L=new h,b=new c,y=new p,a={min:void 0,max:void 0};function V(t){t=new Float64Array(t);let o=0;a.min=t[o++],a.max=t[o++],c.unpack(t,o,b),o+=c.packedLength,p.unpack(t,o,y)}function z(t,o){let s=new Uint16Array(t.positions);V(t.packedBuffer);let e=b,C=y,A=a.min,P=a.max,n=s.length/3,f=s.subarray(0,n),g=s.subarray(n,2*n),d=s.subarray(2*n,3*n);w.zigZagDeltaDecode(f,g,d);let m=new Float64Array(s.length);for(let r=0;r<n;++r){let k=f[r],E=g[r],H=d[r],M=i.lerp(e.west,e.east,k/u),R=i.lerp(e.south,e.north,E/u),T=i.lerp(A,P,H/u),v=l.fromRadians(M,R,T,F),D=C.cartographicToCartesian(v,L);h.pack(D,m,r*3)}return o.push(m.buffer),{positions:m.buffer}}var G=x(z);export{G as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolygons.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolygons.js index 9ce3a315e..8f72a02a2 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolygons.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolygons.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var o={};return o.typeOf={},o.defined=function(n,o){if(!e(o))throw new t(r(n))},o.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},o.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},o.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},o.typeOf.number.lessThan=function(e,r,n){if(o.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},o.typeOf.number.lessThanOrEquals=function(e,r,n){if(o.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},o.typeOf.number.greaterThan=function(e,r,n){if(o.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},o.typeOf.number.greaterThanOrEquals=function(e,r,n){if(o.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},o.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},o.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},o.typeOf.number.equals=function(e,r,n,a){if(o.typeOf.number(e,n),o.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},o}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,o){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,o){o=r(o,n);var a=Math.abs(e-t);return a<=o||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var i=[1];a.factorial=function(e){var t=i.length;if(e>=t)for(var r=i[t-1],n=t;n<=e;n++)i.push(r*n);return i[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,o=Math.abs(e);r=Math.abs(t),n=Math.max(o,r),r=Math.min(o,r);var i=r/n;return o=a.fastApproximateAtan(i),o=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-o:o,o=e<0?a.PI-o:o,o=t<0?-o:o},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,a){"use strict";function i(e,r){this.x=t(e,0),this.y=t(r,0)}i.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new i(e,t)},i.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new i(e.x,e.y)},i.fromCartesian3=i.clone,i.fromCartesian4=i.clone,i.packedLength=2,i.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},i.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new i),o.x=e[n++],o.y=e[n],o},i.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var o=0;o<n;++o)i.pack(e[o],t,2*o);return t},i.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var o=0;o<n;o+=2){var a=o/2;t[a]=i.unpack(e,o,t[a])}return t},i.fromArray=i.unpack,i.maximumComponent=function(e){return Math.max(e.x,e.y)},i.minimumComponent=function(e){return Math.min(e.x,e.y)},i.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},i.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},i.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},i.magnitude=function(e){return Math.sqrt(i.magnitudeSquared(e))};var u=new i;i.distance=function(e,t){return i.subtract(e,t,u),i.magnitude(u)},i.distanceSquared=function(e,t){return i.subtract(e,t,u),i.magnitudeSquared(u)},i.normalize=function(e,t){var r=i.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},i.dot=function(e,t){return e.x*t.x+e.y*t.y},i.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},i.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},i.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},i.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},i.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},i.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},i.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},i.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new i;i.lerp=function(e,t,r,n){return i.multiplyByScalar(t,r,s),n=i.multiplyByScalar(e,1-r,n),i.add(s,n,n)};var c=new i,l=new i;i.angleBetween=function(e,t){return i.normalize(e,c),i.normalize(t,l),a.acosClamped(i.dot(c,l))};var f=new i;return i.mostOrthogonalAxis=function(e,t){var r=i.normalize(e,f);return i.abs(r,r),t=r.x<=r.y?i.clone(i.UNIT_X,t):i.clone(i.UNIT_Y,t)},i.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},i.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},i.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,o)&&a.equalsEpsilon(e.y,t.y,n,o)},i.ZERO=o(new i(0,0)),i.UNIT_X=o(new i(1,0)),i.UNIT_Y=o(new i(0,1)),i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.x+", "+this.y+")"},i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,a){"use strict";function i(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}i.fromSpherical=function(e,n){r(n)||(n=new i);var o=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(o),n.y=s*Math.sin(o),n.z=u*Math.cos(a),n},i.fromElements=function(e,t,n,o){return r(o)?(o.x=e,o.y=t,o.z=n,o):new i(e,t,n)},i.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new i(e.x,e.y,e.z)},i.fromCartesian4=i.clone,i.packedLength=3,i.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},i.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new i),o.x=e[n++],o.y=e[n++],o.z=e[n],o},i.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var o=0;o<n;++o)i.pack(e[o],t,3*o);return t},i.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var o=0;o<n;o+=3){var a=o/3;t[a]=i.unpack(e,o,t[a])}return t},i.fromArray=i.unpack,i.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},i.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},i.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},i.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},i.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},i.magnitude=function(e){return Math.sqrt(i.magnitudeSquared(e))};var u=new i;i.distance=function(e,t){return i.subtract(e,t,u),i.magnitude(u)},i.distanceSquared=function(e,t){return i.subtract(e,t,u),i.magnitudeSquared(u)},i.normalize=function(e,t){var r=i.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},i.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},i.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},i.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},i.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},i.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},i.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},i.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},i.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},i.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new i;i.lerp=function(e,t,r,n){return i.multiplyByScalar(t,r,s),n=i.multiplyByScalar(e,1-r,n),i.add(s,n,n)};var c=new i,l=new i;i.angleBetween=function(e,t){i.normalize(e,c),i.normalize(t,l);var r=i.dot(c,l),n=i.magnitude(i.cross(c,l,c));return Math.atan2(n,r)};var f=new i;i.mostOrthogonalAxis=function(e,t){var r=i.normalize(e,f);return i.abs(r,r),t=r.x<=r.y?r.x<=r.z?i.clone(i.UNIT_X,t):i.clone(i.UNIT_Z,t):r.y<=r.z?i.clone(i.UNIT_Y,t):i.clone(i.UNIT_Z,t)},i.projectVector=function(e,t,r){var n=i.dot(e,t)/i.dot(t,t);return i.multiplyByScalar(t,n,r)},i.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},i.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},i.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,o)&&a.equalsEpsilon(e.y,t.y,n,o)&&a.equalsEpsilon(e.z,t.z,n,o)},i.cross=function(e,t,r){var n=e.x,o=e.y,a=e.z,i=t.x,u=t.y,s=t.z,c=o*s-a*u,l=a*i-n*s,f=n*u-o*i;return r.x=c,r.y=l,r.z=f,r},i.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},i.fromDegrees=function(e,t,r,n,o){return e=a.toRadians(e),t=a.toRadians(t),i.fromRadians(e,t,r,n,o)};var h=new i,d=new i,E=new i(40680631590769,40680631590769,40408299984661.445);return i.fromRadians=function(e,n,o,a,u){o=t(o,0);var s=r(a)?a.radiiSquared:E,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=i.normalize(h,h),i.multiplyComponents(s,h,d);var l=Math.sqrt(i.dot(h,d));return d=i.divideByScalar(d,l,d),h=i.multiplyByScalar(h,o,h),r(u)||(u=new i),i.add(d,h,u)},i.fromDegreesArray=function(e,t,n){var o=e.length;r(n)?n.length=o/2:n=new Array(o/2);for(var a=0;a<o;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=i.fromDegrees(u,s,0,t,n[c])}return n},i.fromRadiansArray=function(e,t,n){var o=e.length;r(n)?n.length=o/2:n=new Array(o/2);for(var a=0;a<o;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=i.fromRadians(u,s,0,t,n[c])}return n},i.fromDegreesArrayHeights=function(e,t,n){var o=e.length;r(n)?n.length=o/3:n=new Array(o/3);for(var a=0;a<o;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=i.fromDegrees(u,s,c,t,n[l])}return n},i.fromRadiansArrayHeights=function(e,t,n){var o=e.length;r(n)?n.length=o/3:n=new Array(o/3);for(var a=0;a<o;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=i.fromRadians(u,s,c,t,n[l])}return n},i.ZERO=o(new i(0,0,0)),i.UNIT_X=o(new i(1,0,0)),i.UNIT_Y=o(new i(0,1,0)),i.UNIT_Z=o(new i(0,0,1)),i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,o,a){"use strict";function i(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,o=r.y;r.x=(1-Math.abs(o))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(o)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=i(c.x*(1/256)),t.y=i(c.x),t.z=i(c.y*(1/256)),t.w=i(c.y),t},s.octDecodeInRange=function(e,r,n,o){if(o.x=a.fromSNorm(e,n),o.y=a.fromSNorm(r,n),o.z=1-(Math.abs(o.x)+Math.abs(o.y)),o.z<0){var i=o.x;o.x=(1-Math.abs(o.y))*a.signNotZero(i),o.y=(1-Math.abs(i))*a.signNotZero(o.y)}return t.normalize(o,o)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,o=e.z,a=e.w,i=256*r+n,u=256*o+a;return s.octDecodeInRange(i,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),o=256*(r-n);return s.octDecode(n,o,t)},s.octPack=function(e,t,r,n){var o=s.octEncodeFloat(e),a=s.octEncodeFloat(t),i=s.octEncode(r,f);return n.x=65536*i.x+o,n.y=65536*i.y+a,n},s.octUnpack=function(e,t,r,n){var o=e.x/65536,a=Math.floor(o),i=65536*(o-a);o=e.y/65536;var u=Math.floor(o),c=65536*(o-u);s.octDecodeFloat(i,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var o=e.length,a=0,i=0,s=0,c=0;c<o;++c)a+=u(e[c]),i+=u(t[c]),e[c]=a,t[c]=i,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function o(r,o,u,s,c){var l=r.x,f=r.y,h=r.z,d=o.x,E=o.y,m=o.z,p=l*l*d*d,_=f*f*E*E,y=h*h*m*m,R=p+_+y,A=Math.sqrt(1/R),T=e.multiplyByScalar(r,A,a);if(R<s)return isFinite(A)?e.clone(T,c):void 0;var C=u.x,S=u.y,g=u.z,v=i;v.x=T.x*C*2,v.y=T.y*S*2,v.z=T.z*g*2;var I,O,M,N,w,x,P,F,D,U,L,b=(1-A)*e.magnitude(r)/(.5*e.magnitude(v)),B=0;do{b-=B,M=1/(1+b*C),N=1/(1+b*S),w=1/(1+b*g),x=M*M,P=N*N,F=w*w,D=x*M,U=P*N,L=F*w,I=p*x+_*P+y*F-1,O=p*D*C+_*U*S+y*L*g;B=I/(-2*O)}while(Math.abs(I)>n.EPSILON12);return t(c)?(c.x=l*M,c.y=f*N,c.z=h*w,c):new e(l*M,f*N,h*w)}var a=new e,i=new e;return o}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,o,a,i){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,o,a){return o=r(o,0),n(a)?(a.longitude=e,a.latitude=t,a.height=o,a):new u(e,t,o)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,o){var E=n(r)?r.oneOverRadii:f,m=n(r)?r.oneOverRadiiSquared:h,p=n(r)?r._centerToleranceSquared:d,_=i(t,E,m,p,c);if(n(_)){var y=e.multiplyComponents(_,m,s);y=e.normalize(y,y);var R=e.subtract(t,_,l),A=Math.atan2(y.y,y.x),T=Math.asin(y.z),C=a.sign(e.dot(R,t))*e.magnitude(R);return n(o)?(o.longitude=A,o.latitude=T,o.height=C,o):new u(A,T,C)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=o(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},o={};return t(o,{element:{get:function(){if(o.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(o.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(o.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(o.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(o.supportsFullscreen())return null!==o.element}}}),o.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var o,a=["webkit","moz","o","ms","khtml"],i=0,u=a.length;i<u;++i){var s=a[i];o=s+"RequestFullscreen","function"==typeof t[o]?(n.requestFullscreen=o,r=!0):(o=s+"RequestFullScreen","function"==typeof t[o]&&(n.requestFullscreen=o,r=!0)),o=s+"ExitFullscreen","function"==typeof document[o]?n.exitFullscreen=o:(o=s+"CancelFullScreen","function"==typeof document[o]&&(n.exitFullscreen=o)),o=s+"FullscreenEnabled",void 0!==document[o]?n.fullscreenEnabled=o:(o=s+"FullScreenEnabled",void 0!==document[o]&&(n.fullscreenEnabled=o)),o=s+"FullscreenElement",void 0!==document[o]?n.fullscreenElement=o:(o=s+"FullScreenElement",void 0!==document[o]&&(n.fullscreenElement=o)),o=s+"fullscreenchange",void 0!==document["on"+o]&&("ms"===s&&(o="MSFullscreenChange"),n.fullscreenchange=o),o=s+"fullscreenerror",void 0!==document["on"+o]&&("ms"===s&&(o="MSFullscreenError"),n.fullscreenerror=o)}return r},o.requestFullscreen=function(e,t){o.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},o.exitFullscreen=function(){o.supportsFullscreen()&&document[n.exitFullscreen]()},o}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,o){return t(e).then(r,n,o)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=i(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=o(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function o(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function i(){function e(e,t,r){return h(e,t,r)}function r(e){return E(e)}function o(e){return E(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,E;return c=new n(e),s={then:e,resolve:r,reject:o,progress:u,promise:c,resolver:{resolve:r,reject:o,progress:u}},l=[],f=[],h=function(e,t,r){var n,o;return n=i(),o="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,o)}),f.push(o),n.promise},d=function(e){return m(f,e),e},E=function(e){return e=t(e),h=e.then,E=t,d=_,m(l,e),f=l=T,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,o,a){return p(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){E(e)}var c,l,f,h,d,E,m,p,y,R;if(y=t.length>>>0,c=Math.max(0,Math.min(r,y)),f=[],l=y-c+1,h=[],d=i(),c)for(p=d.progress,m=function(e){h.push(e),--l||(E=m=_,d.reject(h))},E=function(e){f.push(e),--c||(E=m=_,d.resolve(f))},R=0;R<y;++R)R in t&&e(t[R],s,u,p);else d.resolve(f);return d.then(n,o,a)})}function c(e,t,r,n){function o(e){return t?t(e[0]):e[0]}return s(e,1,o,r,n)}function l(e,t,r,n){return p(1,arguments),h(e,y).then(t,r,n)}function f(){return h(arguments,y)}function h(t,r){return e(t,function(t){var n,o,a,u,s,c;if(a=o=t.length>>>0,n=[],c=i(),a)for(u=function(t,o){e(t,r).then(function(e){n[o]=e,--a||c.resolve(n)},c.reject)},s=0;s<o;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=A.call(arguments,1);return e(t,function(t){var o;return o=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,o)})})},R.apply(t,n)})}function E(t,r,n){var o=arguments.length>2;return e(t,function(e){return e=o?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function m(e,t){for(var r,n=0;r=e[n++];)r(t)}function p(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function _(){}function y(e){return e}var R,A,T;return e.defer=i,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=E,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(T,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(T,t)})})}},A=[].slice,R=[].reduce||function(e){var t,r,n,o,a;if(a=0,t=Object(this),o=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=o)throw new TypeError}else n=r[1];for(;a<o;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,o,a){"use strict";function i(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(v)&&(v=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(v=!0,I=i(e[1]))}return v}function s(){return u()&&I}function c(){if(!t(O)&&(O=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(O=!0,M=i(e[1]))}return O}function l(){return c()&&M}function f(){if(!t(N)){N=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(N=!0,w=i(e[1]),w.isNightly=!!e[2])}return N}function h(){return f()&&w}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=i(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=i(e[1]))}return x}function E(){return d()&&P}function m(){if(!t(F)){F=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(F=!0,D=i(e[1]))}return F}function p(){return m()&&D}function _(){if(!t(U)){U=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(U=!0,L=i(e[1]))}return U}function y(){return t(b)||(b=/Windows/i.test(g.appVersion)),b}function R(){return _()&&L}function A(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function T(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function C(){return T()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var v,I,O,M,N,w,x,P,F,D,U,L,b,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,m())return S._result=!1,e.resolve(S._result),e.promise;var r=new Image;return r.onload=function(){S._result=r.width>0&&r.height>0,e.resolve(S._result)},r.onerror=function(){S._result=!1,e.resolve(S._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var W={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:E,isEdge:m,edgeVersion:p,isFirefox:_,firefoxVersion:R,isWindows:y,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:A,supportsImageRenderingPixelated:T,supportsWebP:S,imageRenderingValue:C,typedArrayTypes:G};return W.supportsFullscreen=function(){return o.supportsFullscreen()},W.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},W.supportsWebWorkers=function(){return"undefined"!=typeof Worker},W.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!W.isEdge()},W}),define("Core/Color",["./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math"],function(e,t,r,n,o,a){"use strict";function i(e,t,r){return r<0&&(r+=1),r>1&&(r-=1),6*r<1?e+6*(t-e)*r:2*r<1?t:3*r<2?e+(t-e)*(2/3-r)*6:e}function u(e,r,n,o){this.red=t(e,1),this.green=t(r,1),this.blue=t(n,1),this.alpha=t(o,1)}u.fromCartesian4=function(e,t){return r(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new u(e.x,e.y,e.z,e.w)},u.fromBytes=function(e,n,o,a,i){return e=u.byteToFloat(t(e,255)),n=u.byteToFloat(t(n,255)),o=u.byteToFloat(t(o,255)),a=u.byteToFloat(t(a,255)),r(i)?(i.red=e,i.green=n,i.blue=o,i.alpha=a,i):new u(e,n,o,a)},u.fromAlpha=function(e,t,n){return r(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new u(e.red,e.green,e.blue,t)};var s,c,l;n.supportsTypedArrays()&&(s=new ArrayBuffer(4),c=new Uint32Array(s),l=new Uint8Array(s)),u.fromRgba=function(e,t){return c[0]=e,u.fromBytes(l[0],l[1],l[2],l[3],t)},u.fromHsl=function(e,n,o,a,s){e=t(e,0)%1,n=t(n,0),o=t(o,0),a=t(a,1);var c=o,l=o,f=o;if(0!==n){var h;h=o<.5?o*(1+n):o+n-o*n;var d=2*o-h;c=i(d,h,e+1/3),l=i(d,h,e),f=i(d,h,e-1/3)}return r(s)?(s.red=c,s.green=l,s.blue=f,s.alpha=a,s):new u(c,l,f,a)},u.fromRandom=function(e,n){e=t(e,t.EMPTY_OBJECT);var o=e.red;if(!r(o)){var i=t(e.minimumRed,0),s=t(e.maximumRed,1);o=i+a.nextRandomNumber()*(s-i)}var c=e.green;if(!r(c)){var l=t(e.minimumGreen,0),f=t(e.maximumGreen,1);c=l+a.nextRandomNumber()*(f-l)}var h=e.blue;if(!r(h)){var d=t(e.minimumBlue,0),E=t(e.maximumBlue,1);h=d+a.nextRandomNumber()*(E-d)}var m=e.alpha;if(!r(m)){var p=t(e.minimumAlpha,0),_=t(e.maximumAlpha,1);m=p+a.nextRandomNumber()*(_-p)}return r(n)?(n.red=o,n.green=c,n.blue=h,n.alpha=m,n):new u(o,c,h,m)};var f=/^#([0-9a-f])([0-9a-f])([0-9a-f])$/i,h=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})$/i,d=/^rgba?\(\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)\s*,\s*([0-9.]+%?)(?:\s*,\s*([0-9.]+))?\s*\)$/i,E=/^hsla?\(\s*([0-9.]+)\s*,\s*([0-9.]+%)\s*,\s*([0-9.]+%)(?:\s*,\s*([0-9.]+))?\s*\)$/i;return u.fromCssColorString=function(e,n){r(n)||(n=new u);var o=u[e.toUpperCase()];if(r(o))return u.clone(o,n),n;var a=f.exec(e);return null!==a?(n.red=parseInt(a[1],16)/15,n.green=parseInt(a[2],16)/15,n.blue=parseInt(a[3],16)/15,n.alpha=1,n):null!==(a=h.exec(e))?(n.red=parseInt(a[1],16)/255,n.green=parseInt(a[2],16)/255,n.blue=parseInt(a[3],16)/255,n.alpha=1,n):null!==(a=d.exec(e))?(n.red=parseFloat(a[1])/("%"===a[1].substr(-1)?100:255),n.green=parseFloat(a[2])/("%"===a[2].substr(-1)?100:255),n.blue=parseFloat(a[3])/("%"===a[3].substr(-1)?100:255),n.alpha=parseFloat(t(a[4],"1.0")),n):null!==(a=E.exec(e))?u.fromHsl(parseFloat(a[1])/360,parseFloat(a[2])/100,parseFloat(a[3])/100,parseFloat(t(a[4],"1.0")),n):n=void 0},u.packedLength=4,u.pack=function(e,r,n){return n=t(n,0),r[n++]=e.red,r[n++]=e.green,r[n++]=e.blue,r[n]=e.alpha,r},u.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new u),o.red=e[n++],o.green=e[n++],o.blue=e[n++],o.alpha=e[n],o},u.byteToFloat=function(e){return e/255},u.floatToByte=function(e){return 1===e?255:256*e|0},u.clone=function(e,t){if(r(e))return r(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue, -t.alpha=e.alpha,t):new u(e.red,e.green,e.blue,e.alpha)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha},u.equalsArray=function(e,t,r){return e.red===t[r]&&e.green===t[r+1]&&e.blue===t[r+2]&&e.alpha===t[r+3]},u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return this===e||r(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t},u.prototype.toString=function(){return"("+this.red+", "+this.green+", "+this.blue+", "+this.alpha+")"},u.prototype.toCssColorString=function(){var e=u.floatToByte(this.red),t=u.floatToByte(this.green),r=u.floatToByte(this.blue);return 1===this.alpha?"rgb("+e+","+t+","+r+")":"rgba("+e+","+t+","+r+","+this.alpha+")"},u.prototype.toBytes=function(e){var t=u.floatToByte(this.red),n=u.floatToByte(this.green),o=u.floatToByte(this.blue),a=u.floatToByte(this.alpha);return r(e)?(e[0]=t,e[1]=n,e[2]=o,e[3]=a,e):[t,n,o,a]},u.prototype.toRgba=function(){return l[0]=u.floatToByte(this.red),l[1]=u.floatToByte(this.green),l[2]=u.floatToByte(this.blue),l[3]=u.floatToByte(this.alpha),c[0]},u.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t},u.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t},u.prototype.withAlpha=function(e,t){return u.fromAlpha(this,e,t)},u.add=function(e,t,r){return r.red=e.red+t.red,r.green=e.green+t.green,r.blue=e.blue+t.blue,r.alpha=e.alpha+t.alpha,r},u.subtract=function(e,t,r){return r.red=e.red-t.red,r.green=e.green-t.green,r.blue=e.blue-t.blue,r.alpha=e.alpha-t.alpha,r},u.multiply=function(e,t,r){return r.red=e.red*t.red,r.green=e.green*t.green,r.blue=e.blue*t.blue,r.alpha=e.alpha*t.alpha,r},u.divide=function(e,t,r){return r.red=e.red/t.red,r.green=e.green/t.green,r.blue=e.blue/t.blue,r.alpha=e.alpha/t.alpha,r},u.mod=function(e,t,r){return r.red=e.red%t.red,r.green=e.green%t.green,r.blue=e.blue%t.blue,r.alpha=e.alpha%t.alpha,r},u.multiplyByScalar=function(e,t,r){return r.red=e.red*t,r.green=e.green*t,r.blue=e.blue*t,r.alpha=e.alpha*t,r},u.divideByScalar=function(e,t,r){return r.red=e.red/t,r.green=e.green/t,r.blue=e.blue/t,r.alpha=e.alpha/t,r},u.ALICEBLUE=o(u.fromCssColorString("#F0F8FF")),u.ANTIQUEWHITE=o(u.fromCssColorString("#FAEBD7")),u.AQUA=o(u.fromCssColorString("#00FFFF")),u.AQUAMARINE=o(u.fromCssColorString("#7FFFD4")),u.AZURE=o(u.fromCssColorString("#F0FFFF")),u.BEIGE=o(u.fromCssColorString("#F5F5DC")),u.BISQUE=o(u.fromCssColorString("#FFE4C4")),u.BLACK=o(u.fromCssColorString("#000000")),u.BLANCHEDALMOND=o(u.fromCssColorString("#FFEBCD")),u.BLUE=o(u.fromCssColorString("#0000FF")),u.BLUEVIOLET=o(u.fromCssColorString("#8A2BE2")),u.BROWN=o(u.fromCssColorString("#A52A2A")),u.BURLYWOOD=o(u.fromCssColorString("#DEB887")),u.CADETBLUE=o(u.fromCssColorString("#5F9EA0")),u.CHARTREUSE=o(u.fromCssColorString("#7FFF00")),u.CHOCOLATE=o(u.fromCssColorString("#D2691E")),u.CORAL=o(u.fromCssColorString("#FF7F50")),u.CORNFLOWERBLUE=o(u.fromCssColorString("#6495ED")),u.CORNSILK=o(u.fromCssColorString("#FFF8DC")),u.CRIMSON=o(u.fromCssColorString("#DC143C")),u.CYAN=o(u.fromCssColorString("#00FFFF")),u.DARKBLUE=o(u.fromCssColorString("#00008B")),u.DARKCYAN=o(u.fromCssColorString("#008B8B")),u.DARKGOLDENROD=o(u.fromCssColorString("#B8860B")),u.DARKGRAY=o(u.fromCssColorString("#A9A9A9")),u.DARKGREEN=o(u.fromCssColorString("#006400")),u.DARKGREY=u.DARKGRAY,u.DARKKHAKI=o(u.fromCssColorString("#BDB76B")),u.DARKMAGENTA=o(u.fromCssColorString("#8B008B")),u.DARKOLIVEGREEN=o(u.fromCssColorString("#556B2F")),u.DARKORANGE=o(u.fromCssColorString("#FF8C00")),u.DARKORCHID=o(u.fromCssColorString("#9932CC")),u.DARKRED=o(u.fromCssColorString("#8B0000")),u.DARKSALMON=o(u.fromCssColorString("#E9967A")),u.DARKSEAGREEN=o(u.fromCssColorString("#8FBC8F")),u.DARKSLATEBLUE=o(u.fromCssColorString("#483D8B")),u.DARKSLATEGRAY=o(u.fromCssColorString("#2F4F4F")),u.DARKSLATEGREY=u.DARKSLATEGRAY,u.DARKTURQUOISE=o(u.fromCssColorString("#00CED1")),u.DARKVIOLET=o(u.fromCssColorString("#9400D3")),u.DEEPPINK=o(u.fromCssColorString("#FF1493")),u.DEEPSKYBLUE=o(u.fromCssColorString("#00BFFF")),u.DIMGRAY=o(u.fromCssColorString("#696969")),u.DIMGREY=u.DIMGRAY,u.DODGERBLUE=o(u.fromCssColorString("#1E90FF")),u.FIREBRICK=o(u.fromCssColorString("#B22222")),u.FLORALWHITE=o(u.fromCssColorString("#FFFAF0")),u.FORESTGREEN=o(u.fromCssColorString("#228B22")),u.FUCHSIA=o(u.fromCssColorString("#FF00FF")),u.GAINSBORO=o(u.fromCssColorString("#DCDCDC")),u.GHOSTWHITE=o(u.fromCssColorString("#F8F8FF")),u.GOLD=o(u.fromCssColorString("#FFD700")),u.GOLDENROD=o(u.fromCssColorString("#DAA520")),u.GRAY=o(u.fromCssColorString("#808080")),u.GREEN=o(u.fromCssColorString("#008000")),u.GREENYELLOW=o(u.fromCssColorString("#ADFF2F")),u.GREY=u.GRAY,u.HONEYDEW=o(u.fromCssColorString("#F0FFF0")),u.HOTPINK=o(u.fromCssColorString("#FF69B4")),u.INDIANRED=o(u.fromCssColorString("#CD5C5C")),u.INDIGO=o(u.fromCssColorString("#4B0082")),u.IVORY=o(u.fromCssColorString("#FFFFF0")),u.KHAKI=o(u.fromCssColorString("#F0E68C")),u.LAVENDER=o(u.fromCssColorString("#E6E6FA")),u.LAVENDAR_BLUSH=o(u.fromCssColorString("#FFF0F5")),u.LAWNGREEN=o(u.fromCssColorString("#7CFC00")),u.LEMONCHIFFON=o(u.fromCssColorString("#FFFACD")),u.LIGHTBLUE=o(u.fromCssColorString("#ADD8E6")),u.LIGHTCORAL=o(u.fromCssColorString("#F08080")),u.LIGHTCYAN=o(u.fromCssColorString("#E0FFFF")),u.LIGHTGOLDENRODYELLOW=o(u.fromCssColorString("#FAFAD2")),u.LIGHTGRAY=o(u.fromCssColorString("#D3D3D3")),u.LIGHTGREEN=o(u.fromCssColorString("#90EE90")),u.LIGHTGREY=u.LIGHTGRAY,u.LIGHTPINK=o(u.fromCssColorString("#FFB6C1")),u.LIGHTSEAGREEN=o(u.fromCssColorString("#20B2AA")),u.LIGHTSKYBLUE=o(u.fromCssColorString("#87CEFA")),u.LIGHTSLATEGRAY=o(u.fromCssColorString("#778899")),u.LIGHTSLATEGREY=u.LIGHTSLATEGRAY,u.LIGHTSTEELBLUE=o(u.fromCssColorString("#B0C4DE")),u.LIGHTYELLOW=o(u.fromCssColorString("#FFFFE0")),u.LIME=o(u.fromCssColorString("#00FF00")),u.LIMEGREEN=o(u.fromCssColorString("#32CD32")),u.LINEN=o(u.fromCssColorString("#FAF0E6")),u.MAGENTA=o(u.fromCssColorString("#FF00FF")),u.MAROON=o(u.fromCssColorString("#800000")),u.MEDIUMAQUAMARINE=o(u.fromCssColorString("#66CDAA")),u.MEDIUMBLUE=o(u.fromCssColorString("#0000CD")),u.MEDIUMORCHID=o(u.fromCssColorString("#BA55D3")),u.MEDIUMPURPLE=o(u.fromCssColorString("#9370DB")),u.MEDIUMSEAGREEN=o(u.fromCssColorString("#3CB371")),u.MEDIUMSLATEBLUE=o(u.fromCssColorString("#7B68EE")),u.MEDIUMSPRINGGREEN=o(u.fromCssColorString("#00FA9A")),u.MEDIUMTURQUOISE=o(u.fromCssColorString("#48D1CC")),u.MEDIUMVIOLETRED=o(u.fromCssColorString("#C71585")),u.MIDNIGHTBLUE=o(u.fromCssColorString("#191970")),u.MINTCREAM=o(u.fromCssColorString("#F5FFFA")),u.MISTYROSE=o(u.fromCssColorString("#FFE4E1")),u.MOCCASIN=o(u.fromCssColorString("#FFE4B5")),u.NAVAJOWHITE=o(u.fromCssColorString("#FFDEAD")),u.NAVY=o(u.fromCssColorString("#000080")),u.OLDLACE=o(u.fromCssColorString("#FDF5E6")),u.OLIVE=o(u.fromCssColorString("#808000")),u.OLIVEDRAB=o(u.fromCssColorString("#6B8E23")),u.ORANGE=o(u.fromCssColorString("#FFA500")),u.ORANGERED=o(u.fromCssColorString("#FF4500")),u.ORCHID=o(u.fromCssColorString("#DA70D6")),u.PALEGOLDENROD=o(u.fromCssColorString("#EEE8AA")),u.PALEGREEN=o(u.fromCssColorString("#98FB98")),u.PALETURQUOISE=o(u.fromCssColorString("#AFEEEE")),u.PALEVIOLETRED=o(u.fromCssColorString("#DB7093")),u.PAPAYAWHIP=o(u.fromCssColorString("#FFEFD5")),u.PEACHPUFF=o(u.fromCssColorString("#FFDAB9")),u.PERU=o(u.fromCssColorString("#CD853F")),u.PINK=o(u.fromCssColorString("#FFC0CB")),u.PLUM=o(u.fromCssColorString("#DDA0DD")),u.POWDERBLUE=o(u.fromCssColorString("#B0E0E6")),u.PURPLE=o(u.fromCssColorString("#800080")),u.RED=o(u.fromCssColorString("#FF0000")),u.ROSYBROWN=o(u.fromCssColorString("#BC8F8F")),u.ROYALBLUE=o(u.fromCssColorString("#4169E1")),u.SADDLEBROWN=o(u.fromCssColorString("#8B4513")),u.SALMON=o(u.fromCssColorString("#FA8072")),u.SANDYBROWN=o(u.fromCssColorString("#F4A460")),u.SEAGREEN=o(u.fromCssColorString("#2E8B57")),u.SEASHELL=o(u.fromCssColorString("#FFF5EE")),u.SIENNA=o(u.fromCssColorString("#A0522D")),u.SILVER=o(u.fromCssColorString("#C0C0C0")),u.SKYBLUE=o(u.fromCssColorString("#87CEEB")),u.SLATEBLUE=o(u.fromCssColorString("#6A5ACD")),u.SLATEGRAY=o(u.fromCssColorString("#708090")),u.SLATEGREY=u.SLATEGRAY,u.SNOW=o(u.fromCssColorString("#FFFAFA")),u.SPRINGGREEN=o(u.fromCssColorString("#00FF7F")),u.STEELBLUE=o(u.fromCssColorString("#4682B4")),u.TAN=o(u.fromCssColorString("#D2B48C")),u.TEAL=o(u.fromCssColorString("#008080")),u.THISTLE=o(u.fromCssColorString("#D8BFD8")),u.TOMATO=o(u.fromCssColorString("#FF6347")),u.TURQUOISE=o(u.fromCssColorString("#40E0D0")),u.VIOLET=o(u.fromCssColorString("#EE82EE")),u.WHEAT=o(u.fromCssColorString("#F5DEB3")),u.WHITE=o(u.fromCssColorString("#FFFFFF")),u.WHITESMOKE=o(u.fromCssColorString("#F5F5F5")),u.YELLOW=o(u.fromCssColorString("#FFFF00")),u.YELLOWGREEN=o(u.fromCssColorString("#9ACD32")),u.TRANSPARENT=o(new u(0,0,0,0)),u}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,o,a,i,u,s,c){"use strict";function l(t,r,o,a){r=n(r,0),o=n(o,0),a=n(a,0),t._radii=new e(r,o,a),t._radiiSquared=new e(r*r,o*o,a*a),t._radiiToTheFourth=new e(r*r*r*r,o*o*o*o,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===o?0:1/o,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===o?0:1/(o*o),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,o,a),t._maximumRadius=Math.max(r,o,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(o(t)){var n=t._radii;return o(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return o(t)||(t=new f),o(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,o){return o=n(o,0),e.pack(t._radii,r,o),r},f.unpack=function(t,r,o){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,o)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,i=Math.cos(a),u=i*Math.cos(n),s=i*Math.sin(n),c=Math.sin(a);return o(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return o(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var i=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,i,a),e.multiplyByScalar(n,t.height,n),o(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var E=new e,m=new e,p=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,m);if(o(a)){var i=this.geodeticSurfaceNormal(a,E),u=e.subtract(r,a,p),c=Math.atan2(i.y,i.x),l=Math.asin(i.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return o(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){o(r)||(r=new e);var n=t.x,a=t.y,i=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+i*i*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return o(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return o(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||o(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var i=this._squaredXOverSquaredZ;if(o(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-i),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,o){"use strict";var a={UNSIGNED_BYTE:o.UNSIGNED_BYTE,UNSIGNED_SHORT:o.UNSIGNED_SHORT,UNSIGNED_INT:o.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,o){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,o):new Uint16Array(t,r,o)},r(a)}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,o,a,i){"use strict";function u(e){this._ellipsoid=r(e,i.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return o(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var o=this._semimajorAxis,a=t.longitude*o,i=t.latitude*o,u=t.height;return n(r)?(r.x=a,r.y=i,r.z=u,r):new e(a,i,u)},u.prototype.unproject=function(e,r){var o=this._oneOverSemimajorAxis,a=e.x*o,i=e.y*o,u=e.z;return n(r)?(r.longitude=a,r.latitude=i,r.height=u,r):new t(a,i,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,a,i,u){"use strict";function s(e,t,n,o,a,i,u,s,c){this[0]=r(e,0),this[1]=r(o,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(i,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(m[r],E[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,o=1,a=0;a<3;++a){var i=Math.abs(e[s.getElementIndex(m[a],E[a])]);i>n&&(o=a,n=i)}var c=1,l=0,f=E[o],h=m[o];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,p=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],R=(p-_)/2/y;d=R<0?-1/(-R+Math.sqrt(1+R*R)):1/(R+Math.sqrt(1+R*R)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new s),o[0]=e[t++],o[1]=e[t++],o[2]=e[t++],o[3]=e[t++],o[4]=e[t++],o[5]=e[t++],o[6]=e[t++],o[7]=e[t++],o[8]=e[t++],o},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,o){return t=r(t,0),n(o)||(o=new s),o[0]=e[t],o[1]=e[t+1],o[2]=e[t+2],o[3]=e[t+3],o[4]=e[t+4],o[5]=e[t+5],o[6]=e[t+6],o[7]=e[t+7],o[8]=e[t+8],o},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,o=e.x*e.y,a=e.x*e.z,i=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,E=r-u-f+d,m=2*(o-h),p=2*(a+l),_=2*(o+h),y=-r+u-f+d,R=2*(c-i),A=2*(a-l),T=2*(c+i),C=-r-u+f+d;return n(t)?(t[0]=E,t[1]=_,t[2]=A,t[3]=m,t[4]=y,t[5]=T,t[6]=p,t[7]=R,t[8]=C,t):new s(E,m,p,_,y,R,A,T,C)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),o=Math.cos(-e.heading),a=Math.cos(e.roll),i=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*o,f=-a*u+c*i*o,h=c*u+a*i*o,d=r*u,E=a*o+c*i*u,m=-c*o+a*i*u,p=-i,_=c*r,y=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=p,t[3]=f,t[4]=E,t[5]=_,t[6]=h,t[7]=m,t[8]=y,t):new s(l,f,h,d,E,m,p,_,y)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)}, -s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=o,t[6]=0,t[7]=-o,t[8]=r,t):new s(1,0,0,0,r,-o,0,o,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-o,t[3]=0,t[4]=1,t[5]=0,t[6]=o,t[7]=0,t[8]=r,t):new s(r,0,o,0,1,0,-o,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),o=Math.sin(e);return n(t)?(t[0]=r,t[1]=o,t[2]=0,t[3]=-o,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-o,0,o,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,o=e[n],a=e[n+1],i=e[n+2];return r.x=o,r.y=a,r.z=i,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var o=3*t;return n[o]=r.x,n[o+1]=r.y,n[o+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],o=e[t+3],a=e[t+6];return r.x=n,r.y=o,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],i=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=o,r[2]=a,r[3]=i,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,o=t.y,a=t.z,i=e[0]*n+e[3]*o+e[6]*a,u=e[1]*n+e[4]*o+e[7]*a,s=e[2]*n+e[5]*o+e[8]*a;return r.x=i,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],o=e[6],a=e[1],i=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=o,t[3]=a,t[4]=i,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var E=[1,0,0],m=[2,2,1],p=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,o=0,a=0;n(t)||(t={});for(var i=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,p),s.transpose(p,_),s.multiply(h,p,h),s.multiply(_,h,h),s.multiply(i,p,i),++o>2&&(++a,o=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],o=e[1],a=e[4],i=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*i)+o*(s*n-r*c)+u*(r*i-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],o=e[2],a=e[3],i=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=i*f-l*u,t[1]=l*o-n*f,t[2]=n*u-i*o,t[3]=c*u-a*f,t[4]=r*f-c*o,t[5]=a*o-r*u,t[6]=a*l-c*i,t[7]=c*n-r*l,t[8]=r*i-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=i(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=i(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,o(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,o,a){"use strict";function i(e,r,n,o){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(o,0)}i.fromElements=function(e,t,n,o,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=o,a):new i(e,t,n,o)},i.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new i(e.red,e.green,e.blue,e.alpha)},i.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new i(e.x,e.y,e.z,e.w)},i.packedLength=4,i.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},i.unpack=function(e,n,o){return n=t(n,0),r(o)||(o=new i),o.x=e[n++],o.y=e[n++],o.z=e[n++],o.w=e[n],o},i.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var o=0;o<n;++o)i.pack(e[o],t,4*o);return t},i.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var o=0;o<n;o+=4){var a=o/4;t[a]=i.unpack(e,o,t[a])}return t},i.fromArray=i.unpack,i.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},i.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},i.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},i.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},i.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},i.magnitude=function(e){return Math.sqrt(i.magnitudeSquared(e))};var u=new i;i.distance=function(e,t){return i.subtract(e,t,u),i.magnitude(u)},i.distanceSquared=function(e,t){return i.subtract(e,t,u),i.magnitudeSquared(u)},i.normalize=function(e,t){var r=i.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},i.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},i.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},i.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},i.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},i.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},i.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},i.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},i.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},i.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new i;i.lerp=function(e,t,r,n){return i.multiplyByScalar(t,r,s),n=i.multiplyByScalar(e,1-r,n),i.add(s,n,n)};var c=new i;i.mostOrthogonalAxis=function(e,t){var r=i.normalize(e,c);return i.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?i.clone(i.UNIT_X,t):i.clone(i.UNIT_W,t):r.z<=r.w?i.clone(i.UNIT_Z,t):i.clone(i.UNIT_W,t):r.y<=r.z?r.y<=r.w?i.clone(i.UNIT_Y,t):i.clone(i.UNIT_W,t):r.z<=r.w?i.clone(i.UNIT_Z,t):i.clone(i.UNIT_W,t)},i.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},i.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},i.equalsEpsilon=function(e,t,n,o){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,o)&&a.equalsEpsilon(e.y,t.y,n,o)&&a.equalsEpsilon(e.z,t.z,n,o)&&a.equalsEpsilon(e.w,t.w,n,o)},i.ZERO=o(new i(0,0,0,0)),i.UNIT_X=o(new i(1,0,0,0)),i.UNIT_Y=o(new i(0,1,0,0)),i.UNIT_Z=o(new i(0,0,1,0)),i.UNIT_W=o(new i(0,0,0,1)),i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return i.packFloat=function(e,t){if(r(t)||(t=new i),l[0]=e,0===(e=l[0]))return i.clone(i.ZERO,t);var n,o=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+o,t},i.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var o=n*e.x*(1/256);return o+=n*e.y*(1/65536),(o+=n*e.z*(1/16777216))*Math.pow(10,r)},i}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,o,a,i,u,s,c){"use strict";function l(e,t,r,o,a,i,u,s,c,l,f,h,d,E,m,p){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(i,0),this[6]=n(l,0),this[7]=n(E,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(m,0),this[12]=n(o,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(p,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),o(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(o(e))return o(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return o(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),o(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){o(n)||(n=new l);var a=r.x,i=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,E=t.y*t.z,m=t.y*t.w,p=t.z*t.z,_=t.z*t.w,y=t.w*t.w,R=s-d-p+y,A=2*(c-_),T=2*(f+m),C=2*(c+_),S=-s+d-p+y,g=2*(E-h),v=2*(f-m),I=2*(E+h),O=-s-d+p+y;return n[0]=R*a,n[1]=C*a,n[2]=v*a,n[3]=0,n[4]=A*i,n[5]=S*i,n[6]=I*i,n[7]=0,n[8]=T*u,n[9]=g*u,n[10]=O*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return o(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return o(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,i=t.up;e.normalize(a,f),e.normalize(e.cross(f,i,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,E=f.x,m=f.y,p=f.z,_=d.x,y=d.y,R=d.z,A=n.x,T=n.y,C=n.z,S=u*-A+s*-T+c*-C,g=_*-A+y*-T+R*-C,v=E*A+m*T+p*C;return o(r)?(r[0]=u,r[1]=_,r[2]=-E,r[3]=0,r[4]=s,r[5]=y,r[6]=-m,r[7]=0,r[8]=c,r[9]=R,r[10]=-p,r[11]=0,r[12]=S,r[13]=g,r[14]=v,r[15]=1,r):new l(u,s,c,S,_,y,R,g,-E,-m,-p,v,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,o){var a=Math.tan(.5*e),i=1/a,u=i/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=i,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=s,o[11]=-1,o[12]=0,o[13]=0,o[14]=c,o[15]=0,o},l.computeOrthographicOffCenter=function(e,t,r,n,o,a,i){var u=1/(t-e),s=1/(n-r),c=1/(a-o),l=-(t+e)*u,f=-(n+r)*s,h=-(a+o)*c;return u*=2,s*=2,c*=-2,i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=s,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=c,i[11]=0,i[12]=l,i[13]=f,i[14]=h,i[15]=1,i},l.computePerspectiveOffCenter=function(e,t,r,n,o,a,i){var u=2*o/(t-e),s=2*o/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+o)/(a-o),h=-2*a*o/(a-o);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=s,i[6]=0,i[7]=0,i[8]=c,i[9]=l,i[10]=f,i[11]=-1,i[12]=0,i[13]=0,i[14]=h,i[15]=0,i},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,o,a){var i=2*o/(t-e),u=2*o/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*o;return a[0]=i,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,o){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),i=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,E=f,m=a+c,p=i+l,_=t+f;return o[0]=h,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=d,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=E,o[11]=0,o[12]=m,o[13]=p,o[14]=_,o[15]=1,o},l.computeView=function(t,r,n,o,a){return a[0]=o.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=o.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=o.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(o,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return o(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,o=e[n],a=e[n+1],i=e[n+2],u=e[n+3];return r.x=o,r.y=a,r.z=i,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var o=4*t;return n[o]=r.x,n[o+1]=r.y,n[o+2]=r.z,n[o+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var E=new e;l.setScale=function(t,r,n){var o=l.getScale(t,E),a=e.divideComponents(r,o,E);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],o=e[t+4],a=e[t+8],i=e[t+12];return r.x=n,r.y=o,r.z=a,r.w=i,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var m=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),r};var p=new e;l.getMaximumScale=function(t){return l.getScale(t,p),e.maximumComponent(p)},l.multiply=function(e,t,r){var n=e[0],o=e[1],a=e[2],i=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],E=e[11],m=e[12],p=e[13],_=e[14],y=e[15],R=t[0],A=t[1],T=t[2],C=t[3],S=t[4],g=t[5],v=t[6],I=t[7],O=t[8],M=t[9],N=t[10],w=t[11],x=t[12],P=t[13],F=t[14],D=t[15],U=n*R+u*A+f*T+m*C,L=o*R+s*A+h*T+p*C,b=a*R+c*A+d*T+_*C,B=i*R+l*A+E*T+y*C,z=n*S+u*g+f*v+m*I,q=o*S+s*g+h*v+p*I,G=a*S+c*g+d*v+_*I,W=i*S+l*g+E*v+y*I,V=n*O+u*M+f*N+m*w,X=o*O+s*M+h*N+p*w,H=a*O+c*M+d*N+_*w,Y=i*O+l*M+E*N+y*w,k=n*x+u*P+f*F+m*D,j=o*x+s*P+h*F+p*D,K=a*x+c*P+d*F+_*D,Z=i*x+l*P+E*F+y*D;return r[0]=U,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=W,r[8]=V,r[9]=X,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=K,r[15]=Z,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],o=e[1],a=e[2],i=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],E=e[14],m=t[0],p=t[1],_=t[2],y=t[4],R=t[5],A=t[6],T=t[8],C=t[9],S=t[10],g=t[12],v=t[13],I=t[14],O=n*m+i*p+c*_,M=o*m+u*p+l*_,N=a*m+s*p+f*_,w=n*y+i*R+c*A,x=o*y+u*R+l*A,P=a*y+s*R+f*A,F=n*T+i*C+c*S,D=o*T+u*C+l*S,U=a*T+s*C+f*S,L=n*g+i*v+c*I+h,b=o*g+u*v+l*I+d,B=a*g+s*v+f*I+E;return r[0]=O,r[1]=M,r[2]=N,r[3]=0,r[4]=w,r[5]=x,r[6]=P,r[7]=0,r[8]=F,r[9]=D,r[10]=U,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],o=e[1],a=e[2],i=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],E=t[2],m=t[3],p=t[4],_=t[5],y=t[6],R=t[7],A=t[8],T=n*h+i*d+c*E,C=o*h+u*d+l*E,S=a*h+s*d+f*E,g=n*m+i*p+c*_,v=o*m+u*p+l*_,I=a*m+s*p+f*_,O=n*y+i*R+c*A,M=o*y+u*R+l*A,N=a*y+s*R+f*A;return r[0]=T,r[1]=C,r[2]=S,r[3]=0,r[4]=g,r[5]=v,r[6]=I,r[7]=0,r[8]=O,r[9]=M,r[10]=N,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,o=t.y,a=t.z,i=n*e[0]+o*e[4]+a*e[8]+e[12],u=n*e[1]+o*e[5]+a*e[9]+e[13],s=n*e[2]+o*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=i,r[13]=u,r[14]=s,r[15]=e[15],r};var _=new e;l.multiplyByUniformScale=function(e,t,r){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,r)},l.multiplyByScale=function(e,t,r){var n=t.x,o=t.y,a=t.z;return 1===n&&1===o&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=o*e[4],r[5]=o*e[5],r[6]=o*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,o=t.y,a=t.z,i=t.w,u=e[0]*n+e[4]*o+e[8]*a+e[12]*i,s=e[1]*n+e[5]*o+e[9]*a+e[13]*i,c=e[2]*n+e[6]*o+e[10]*a+e[14]*i,l=e[3]*n+e[7]*o+e[11]*a+e[15]*i;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,o=t.y,a=t.z,i=e[0]*n+e[4]*o+e[8]*a,u=e[1]*n+e[5]*o+e[9]*a,s=e[2]*n+e[6]*o+e[10]*a;return r.x=i,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,o=t.y,a=t.z,i=e[0]*n+e[4]*o+e[8]*a+e[12],u=e[1]*n+e[5]*o+e[9]*a+e[13],s=e[2]*n+e[6]*o+e[10]*a+e[14];return r.x=i,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],o=e[3],a=e[6],i=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=i,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||o(e)&&o(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||o(e)&&o(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,R=new s,A=new t,T=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],o=e[4],a=e[8],i=e[12],f=e[1],h=e[5],d=e[9],E=e[13],m=e[2],p=e[6],_=e[10],C=e[14],S=e[3],g=e[7],v=e[11],I=e[15],O=_*I,M=C*v,N=p*I,w=C*g,x=p*v,P=_*g,F=m*I,D=C*S,U=m*v,L=_*S,b=m*g,B=p*S,z=O*h+w*d+x*E-(M*h+N*d+P*E),q=M*f+F*d+L*E-(O*f+D*d+U*E),G=N*f+D*h+b*E-(w*f+F*h+B*E),W=P*f+U*h+B*d-(x*f+L*h+b*d),V=M*o+N*a+P*i-(O*o+w*a+x*i),X=O*n+D*a+U*i-(M*n+F*a+L*i),H=w*n+F*o+B*i-(N*n+D*o+b*i),Y=x*n+L*o+b*a-(P*n+U*o+B*a);O=a*E,M=i*d,N=o*E,w=i*h,x=o*d,P=a*h,F=n*E,D=i*f,U=n*d,L=a*f,b=n*h,B=o*f;var k=O*g+w*v+x*I-(M*g+N*v+P*I),j=M*S+F*v+L*I-(O*S+D*v+U*I),K=N*S+D*g+b*I-(w*S+F*g+B*I),Z=P*S+U*g+B*v-(x*S+L*g+b*v),J=N*_+P*C+M*p-(x*C+O*p+w*_),Q=U*C+O*m+D*_-(F*_+L*C+M*m),$=F*p+B*C+w*m-(b*C+N*m+D*p),ee=b*_+x*m+L*p-(U*p+B*_+P*m),te=n*z+o*q+a*G+i*W;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),R,u.EPSILON7)&&t.equals(l.getRow(e,3,A),T))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=W*te,r[4]=V*te,r[5]=X*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=K*te,r[11]=Z*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],o=e[2],a=e[4],i=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],E=-r*f-n*h-o*d,m=-a*f-i*h-u*d,p=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=i,t[6]=c,t[7]=0,t[8]=o,t[9]=u,t[10]=l,t[11]=0,t[12]=E,t[13]=m,t[14]=p,t[15]=1,t},l.IDENTITY=i(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=i(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,o,a,i,u){"use strict";function s(e,t,n,o){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(o,0)}o(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new s),o.west=e[t++],o.south=e[t++],o.east=e[t++],o.north=e[t],o},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,o,a,i){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),o=u.toRadians(r(o,0)),a=u.toRadians(r(a,0)),n(i)?(i.west=e,i.south=t,i.east=o,i.north=a,i):new s(e,t,o,a)},s.fromRadians=function(e,t,o,a,i){return n(i)?(i.west=r(e,0),i.south=r(t,0),i.east=r(o,0),i.north=r(a,0),i):new s(e,t,o,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,o=-Number.MAX_VALUE,a=Number.MAX_VALUE,i=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),o=Math.max(o,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var E=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,E),i=Math.max(i,E)}return o-r>i-a&&(r=a,o=i,o>u.PI&&(o-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=o,t.north=l,t):new s(r,c,o,l)},s.fromCartesianArray=function(e,t,o){t=r(t,a.WGS84);for(var i=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,E=0,m=e.length;E<m;E++){var p=t.cartesianToCartographic(e[E]);i=Math.min(i,p.longitude),c=Math.max(c,p.longitude),h=Math.min(h,p.latitude),d=Math.max(d,p.latitude);var _=p.longitude>=0?p.longitude:p.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-i>f-l&&(i=l,c=f,c>u.PI&&(c-=u.TWO_PI),i>u.PI&&(i-=u.TWO_PI)),n(o)?(o.west=i,o.south=h,o.east=c,o.north=d,o):new s(i,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var o=t.east,a=t.west;o<a&&(o+=u.TWO_PI);var i=u.negativePiToPi(.5*(a+o)),s=.5*(t.south+t.north);return n(r)?(r.longitude=i,r.latitude=s,r.height=0,r):new e(i,s)},s.intersection=function(e,t,r){var o=e.east,a=e.west,i=t.east,c=t.west;o<a&&i>0?o+=u.TWO_PI:i<c&&o>0&&(i+=u.TWO_PI),o<a&&c<0?c+=u.TWO_PI:i<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(o,i));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var o=Math.max(e.west,t.west),a=Math.max(e.south,t.south),i=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||o>=i))return n(r)?(r.west=o,r.south=a,r.east=i,r.north=u,r):new s(o,a,i,u)},s.union=function(e,t,r){n(r)||(r=new s);var o=e.east,a=e.west,i=t.east,c=t.west;o<a&&i>0?o+=u.TWO_PI:i<c&&o>0&&(i+=u.TWO_PI),o<a&&c<0?c+=u.TWO_PI:i<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(o,i));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,o=e.west,a=e.east;return a<o&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>o||u.equalsEpsilon(r,o,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,o,i){t=r(t,a.WGS84),o=r(o,0),n(i)||(i=[]);var l=0,f=e.north,h=e.south,d=e.east,E=e.west,m=c;m.height=o,m.longitude=E,m.latitude=f,i[l]=t.cartographicToCartesian(m,i[l]),l++,m.longitude=d,i[l]=t.cartographicToCartesian(m,i[l]),l++,m.latitude=h,i[l]=t.cartographicToCartesian(m,i[l]),l++,m.longitude=E,i[l]=t.cartographicToCartesian(m,i[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var p=1;p<8;++p)m.longitude=-Math.PI+p*u.PI_OVER_TWO,s.contains(e,m)&&(i[l]=t.cartographicToCartesian(m,i[l]),l++);return 0===m.latitude&&(m.longitude=E,i[l]=t.cartographicToCartesian(m,i[l]),l++,m.longitude=d,i[l]=t.cartographicToCartesian(m,i[l]),l++),i.length=l,i},s.MAX_VALUE=i(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,o,a,i,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var E=new e,m=new e,p=new e,_=new e,y=new e,R=new e,A=new e,T=new e,C=new e,S=new e,g=new e,v=new e,I=4/3*c.PI;d.fromPoints=function(t,r){if(o(r)||(r=new d),!o(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],A),i=e.clone(a,E),u=e.clone(a,m),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,R),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var I=a.x,O=a.y,M=a.z;I<i.x&&e.clone(a,i),I>c.x&&e.clone(a,c),O<u.y&&e.clone(a,u),O>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var N=e.magnitudeSquared(e.subtract(c,i,T)),w=e.magnitudeSquared(e.subtract(l,u,T)),x=e.magnitudeSquared(e.subtract(f,s,T)),P=i,F=c,D=N;w>D&&(D=w,P=u,F=l),x>D&&(D=x,P=s,F=f);var U=C;U.x=.5*(P.x+F.x),U.y=.5*(P.y+F.y),U.z=.5*(P.z+F.z);var L=e.magnitudeSquared(e.subtract(F,U,T)),b=Math.sqrt(L),B=S;B.x=i.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,v),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var W=e.magnitude(e.subtract(a,q,T));W>G&&(G=W);var V=e.magnitudeSquared(e.subtract(a,U,T));if(V>L){var X=Math.sqrt(V);b=.5*(b+X),L=b*b;var H=X-b;U.x=(b*U.x+H*a.x)/X,U.y=(b*U.y+H*a.y)/X,U.z=(b*U.z+H*a.z)/X}}return b<G?(e.clone(U,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r} -;var O=new i,M=new e,N=new e,w=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,i,u){if(o(u)||(u=new d),!o(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,O),h.southwest(t,w),w.height=a,h.northeast(t,x),x.height=i;var s=r.project(w,M),c=r.project(x,N),l=c.x-s.x,f=c.y-s.y,E=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+E*E);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*E,u};var P=[];d.fromRectangle3D=function(t,r,i,u){if(r=n(r,a.WGS84),i=n(i,0),o(u)||(u=new d),!o(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,i,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,i){if(o(i)||(i=new d),!o(t)||0===t.length)return i.center=e.clone(e.ZERO,i.center),i.radius=0,i;r=n(r,e.ZERO),a=n(a,3);var u=A;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,E),l=e.clone(u,m),f=e.clone(u,p),h=e.clone(u,_),I=e.clone(u,y),O=e.clone(u,R),M=t.length;for(s=0;s<M;s+=a){var N=t[s]+r.x,w=t[s+1]+r.y,x=t[s+2]+r.z;u.x=N,u.y=w,u.z=x,N<c.x&&e.clone(u,c),N>h.x&&e.clone(u,h),w<l.y&&e.clone(u,l),w>I.y&&e.clone(u,I),x<f.z&&e.clone(u,f),x>O.z&&e.clone(u,O)}var P=e.magnitudeSquared(e.subtract(h,c,T)),F=e.magnitudeSquared(e.subtract(I,l,T)),D=e.magnitudeSquared(e.subtract(O,f,T)),U=c,L=h,b=P;F>b&&(b=F,U=l,L=I),D>b&&(b=D,U=f,L=O);var B=C;B.x=.5*(U.x+L.x),B.y=.5*(U.y+L.y),B.z=.5*(U.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,T)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var W=g;W.x=h.x,W.y=I.y,W.z=O.z;var V=e.midpoint(G,W,v),X=0;for(s=0;s<M;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,V,T));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,T));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,i.center),i.radius=q):(e.clone(V,i.center),i.radius=X),i},d.fromEncodedCartesianVertices=function(t,r,n){if(o(n)||(n=new d),!o(t)||!o(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=A;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var i,u=e.clone(a,E),s=e.clone(a,m),c=e.clone(a,p),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,R),I=t.length;for(i=0;i<I;i+=3){var O=t[i]+r[i],M=t[i+1]+r[i+1],N=t[i+2]+r[i+2];a.x=O,a.y=M,a.z=N,O<u.x&&e.clone(a,u),O>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),N<c.z&&e.clone(a,c),N>h.z&&e.clone(a,h)}var w=e.magnitudeSquared(e.subtract(l,u,T)),x=e.magnitudeSquared(e.subtract(f,s,T)),P=e.magnitudeSquared(e.subtract(h,c,T)),F=u,D=l,U=w;x>U&&(U=x,F=s,D=f),P>U&&(U=P,F=c,D=h);var L=C;L.x=.5*(F.x+D.x),L.y=.5*(F.y+D.y),L.z=.5*(F.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,T)),B=Math.sqrt(b),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,v),W=0;for(i=0;i<I;i+=3){a.x=t[i]+r[i],a.y=t[i+1]+r[i+1],a.z=t[i+2]+r[i+2];var V=e.magnitude(e.subtract(a,G,T));V>W&&(W=V);var X=e.magnitudeSquared(e.subtract(a,L,T));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<W?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=W),n},d.fromCornerPoints=function(t,r,n){o(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return o(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var F=new e;d.fromBoundingSpheres=function(t,r){if(o(r)||(r=new d),!o(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,i=[];for(a=0;a<n;a++)i.push(t[a].center);r=d.fromPoints(i,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,F)+c.radius)}return r.radius=s,r};var D=new e,U=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){o(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),i=l.getColumn(n,1,U),u=l.getColumn(n,2,L);return e.add(a,i,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(o(t))return o(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var o=e.center;return t[r++]=o.x,t[r++]=o.y,t[r++]=o.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),o(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){o(n)||(n=new d);var a=t.center,i=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(i>=l+s)return t.clone(n),n;if(s>=l+i)return r.clone(n),n;var f=.5*(i+l+s),h=e.multiplyByScalar(c,(-i+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var o=e.magnitude(e.subtract(r,n.center,z));return o>n.radius&&(n.radius=o),n},d.intersectPlane=function(t,r){var n=t.center,o=t.radius,a=r.normal,i=e.dot(a,n)+r.distance;return i<-o?u.OUTSIDE:i<o?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return o(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return o(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){o(a)||(a=new s);var i=e.subtract(t.center,r,G),u=e.dot(n,i);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var W=new e,V=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),K=0;K<8;++K)j[K]=new e;var Z=new i;return d.projectTo2D=function(t,r,o){r=n(r,Z);var a=r.ellipsoid,i=t.center,u=t.radius,s=a.geodeticSurfaceNormal(i,W),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),E=j,m=E[0];e.add(s,l,m),e.add(m,c,m),m=E[1],e.add(s,l,m),e.add(m,h,m),m=E[2],e.add(s,f,m),e.add(m,h,m),m=E[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=E[4],e.add(s,l,m),e.add(m,c,m),m=E[5],e.add(s,l,m),e.add(m,h,m),m=E[6],e.add(s,f,m),e.add(m,h,m),m=E[7],e.add(s,f,m),e.add(m,c,m);for(var p=E.length,_=0;_<p;++_){var y=E[_];e.add(i,y,y);var R=a.cartesianToCartographic(y,k);r.project(R,y)}o=d.fromPoints(E,o),i=o.center;var A=i.x,T=i.y,C=i.z;return i.x=C,i.y=A,i.z=T,o},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||o(t)&&o(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,r,n,o){"use strict";function a(t,o,a){this.minimum=e.clone(r(t,e.ZERO)),this.maximum=e.clone(r(o,e.ZERO)),a=n(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,r){if(n(r)||(r=new a),!n(t)||0===t.length)return r.minimum=e.clone(e.ZERO,r.minimum),r.maximum=e.clone(e.ZERO,r.maximum),r.center=e.clone(e.ZERO,r.center),r;for(var o=t[0].x,i=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],E=d.x,m=d.y,p=d.z;o=Math.min(E,o),s=Math.max(E,s),i=Math.min(m,i),c=Math.max(m,c),u=Math.min(p,u),l=Math.max(p,l)}var _=r.minimum;_.x=o,_.y=i,_.z=u;var y=r.maximum;return y.x=s,y.y=c,y.z=l,r.center=e.midpoint(_,y,r.center),r},a.clone=function(t,r){if(n(t))return n(r)?(r.minimum=e.clone(t.minimum,r.minimum),r.maximum=e.clone(t.maximum,r.maximum),r.center=e.clone(t.center,r.center),r):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,r){return t===r||n(t)&&n(r)&&e.equals(t.center,r.center)&&e.equals(t.minimum,r.minimum)&&e.equals(t.maximum,r.maximum)};var i=new e;return a.intersectPlane=function(t,r){i=e.subtract(t.maximum,t.minimum,i);var n=e.multiplyByScalar(i,.5,i),a=r.normal,u=n.x*Math.abs(a.x)+n.y*Math.abs(a.y)+n.z*Math.abs(a.z),s=e.dot(t.center,a)+r.distance;return s-u>0?o.INSIDE:s+u<0?o.OUTSIDE:o.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var o=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(o/Math.max(Math.abs(e),Math.abs(r)))<n?0:o}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,o){var a;if(0===e)return 0===n?[]:[-o/n];if(0===n){if(0===o)return[0,0];var i=Math.abs(o),u=Math.abs(e);if(i<u&&i/u<t.EPSILON14)return[0,0];if(i>u&&u/i<t.EPSILON14)return[];if((a=-o/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===o)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*o,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,o/h]:[o/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var o,a,i=e,u=t/3,s=r/3,c=n,l=i*s,f=u*c,h=u*u,d=s*s,E=i*s-h,m=i*c-u*s,p=u*c-d,_=4*E*p-m*m;if(_<0){var y,R,A;h*f>=l*d?(y=i,R=E,A=-2*u*E+i*m):(y=c,R=p,A=-c*m+2*s*p);var T=A<0?-1:1,C=-T*Math.abs(y)*Math.sqrt(-_);a=-A+C;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),v=a===C?-g:-R/g;return o=R<=0?g+v:-A/(g*g+v*v+R),h*f>=l*d?[(o-u)/i]:[-c/(o+s)]}var I=E,O=-2*u*E+i*m,M=p,N=-c*m+2*s*p,w=Math.sqrt(_),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(i*w,-O)/3);o=2*Math.sqrt(-I);var F=Math.cos(P);a=o*F;var D=o*(-F/2-x*Math.sin(P)),U=a+D>2*u?a-u:D-u,L=i,b=U/L;P=Math.abs(Math.atan2(c*w,-N)/3),o=2*Math.sqrt(-M),F=Math.cos(P),a=o*F,D=o*(-F/2-x*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,W=-U*z-L*B,V=U*B,X=(s*W-u*V)/(-u*W+s*G);return b<=X?b<=q?X<=q?[b,X,q]:[b,q,X]:[q,b,X]:b<=q?[X,b,q]:X<=q?[X,q,b]:[q,X,b]}var n={};return n.computeDiscriminant=function(e,t,r,n){var o=e*e,a=t*t,i=r*r;return 18*e*t*r*n+a*i-27*o*(n*n)-4*(e*i*r+a*t*n)},n.computeRealRoots=function(e,n,o,a){var i,u;if(0===e)return t.computeRealRoots(n,o,a);if(0===n){if(0===o){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(i=t.computeRealRoots(e,0,o),0===i.Length?[0]:[i[0],0,i[1]]):r(e,0,o,a)}return 0===o?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(i=t.computeRealRoots(e,n,o),0===i.length?[0]:i[1]<=0?[i[0],i[1],0]:i[0]>=0?[0,i[0],i[1]]:[i[0],0,i[1]]):r(e,n,o,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function o(t,o,a,i){var u=t*t,s=o-3*u/8,c=a-o*t/2+u*t/8,l=i-a*t/4+o*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var E=n.computeRealRoots(1,s,l);if(2===E.length){var m,p=E[0],_=E[1];if(p>=0&&_>=0){var y=Math.sqrt(p),R=Math.sqrt(_);return[h-R,h-y,h+y,h+R]}if(p>=0&&_<0)return m=Math.sqrt(p),[h-m,h+m];if(p<0&&_>=0)return m=Math.sqrt(_),[h-m,h+m]}return[]}if(d>0){var A=Math.sqrt(d),T=(s+d-c/A)/2,C=(s+d+c/A)/2,S=n.computeRealRoots(1,A,T),g=n.computeRealRoots(1,-A,C);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,o,a,i){var u=a*a,s=o*o,c=t*t,l=-2*o,f=a*t+s-4*i,h=c*i-a*o*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var E,m,p=d[0],_=o-p,y=_*_,R=t/2,A=_/2,T=y-4*i,C=y+4*Math.abs(i),S=c-4*p,g=c+4*Math.abs(p);if(p<0||T*g<S*C){var v=Math.sqrt(S);E=v/2,m=0===v?0:(t*A-a)/v}else{var I=Math.sqrt(T);E=0===I?0:(t*A-a)/I,m=I/2}var O,M;0===R&&0===E?(O=0,M=0):r.sign(R)===r.sign(E)?(O=R+E,M=p/O):(M=R-E,O=p/M);var N,w;0===A&&0===m?(N=0,w=0):r.sign(A)===r.sign(m)?(N=A+m,w=i/N):(w=A-m,N=i/w);var x=n.computeRealRoots(1,O,N),P=n.computeRealRoots(1,M,w);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var i={};return i.computeDiscriminant=function(e,t,r,n,o){var a=e*e,i=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=o*o;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*i*(d*o)+o*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},i.computeRealRoots=function(t,n,i,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,i,u,s);var c=n/t,l=i/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return o(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return o(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return o(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return o(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return o(c,l,f,h);default:return}},i}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function o(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return o.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new o(t.origin,t.direction)},o.getPoint=function(t,r,o){return n(o)||(o=new e),o=e.multiplyByScalar(t.direction,r,o),e.add(t.origin,o,o)},o}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,o,a,i,u,s,c,l){"use strict";function f(e,t,r,n){var o=t*t-4*e*r;if(!(o<0)){if(o>0){var a=1/(2*e),i=Math.sqrt(o),u=(-t+i)*a,s=(-t-i)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,o){n(o)||(o=new a);var i=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(i,s,y),h=e.dot(u,u),d=2*e.dot(u,l),E=e.magnitudeSquared(l)-c,m=f(h,d,E,C);if(n(m))return o.start=m.root0,o.stop=m.root1,o}function d(e,t,r){var n=e+t;return i.sign(e)!==i.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function E(t,r,n,o,a){var l,f=o*o,h=a*a,E=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(o*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],i.EPSILON15)+r.y),p=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+o*r.x+n,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],i.EPSILON15),y=a*(o*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),R=[];if(0===y&&0===_){if(l=s.computeRealRoots(E,m,p),0===l.length)return R;var A=l[0],T=Math.sqrt(Math.max(1-A*A,0));if(R.push(new e(o,a*A,a*-T)),R.push(new e(o,a*A,a*T)),2===l.length){var C=l[1],S=Math.sqrt(Math.max(1-C*C,0));R.push(new e(o,a*C,a*-S)),R.push(new e(o,a*C,a*S))}return R}var g=y*y,v=_*_,I=E*E,O=y*_,M=I+v,N=2*(m*E+O),w=2*p*E+m*m-v+g,x=2*(p*m-O),P=p*p-g;if(0===M&&0===N&&0===w&&0===x)return R;l=c.computeRealRoots(M,N,w,x,P);var F=l.length;if(0===F)return R;for(var D=0;D<F;++D){var U,L=l[D],b=L*L,B=Math.max(1-b,0),z=Math.sqrt(B);U=i.sign(E)===i.sign(p)?d(E*b+p,m*L,i.EPSILON12):i.sign(p)===i.sign(m*L)?d(E*b,m*L+p,i.EPSILON12):d(E*b+m*L,p,i.EPSILON12);var q=d(_*L,y,i.EPSILON15),G=U*q;G<0?R.push(new e(o,a*L,a*z)):G>0?R.push(new e(o,a*L,a*-z)):0!==z?(R.push(new e(o,a*L,a*-z)),R.push(new e(o,a*L,a*z)),++D):R.push(new e(o,a*L,a*z))}return R}var m={};m.rayPlane=function(t,r,o){n(o)||(o=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<i.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return o=e.multiplyByScalar(u,l,o),e.add(a,o,o)}};var p=new e,_=new e,y=new e,R=new e,A=new e;m.rayTriangleParametric=function(t,n,o,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,E=t.direction,m=e.subtract(o,n,p),T=e.subtract(a,n,_),C=e.cross(E,T,y),S=e.dot(m,C);if(u){if(S<i.EPSILON6)return;if(s=e.subtract(d,n,R),(l=e.dot(s,C))<0||l>S)return;if(c=e.cross(s,m,A),(f=e.dot(E,c))<0||l+f>S)return;h=e.dot(T,c)/S}else{if(Math.abs(S)<i.EPSILON6)return;var g=1/S;if(s=e.subtract(d,n,R),(l=e.dot(s,C)*g)<0||l>1)return;if(c=e.cross(s,m,A),(f=e.dot(E,c)*g)<0||l+f>1)return;h=e.dot(T,c)*g}return h},m.rayTriangle=function(t,r,o,a,i,u){var s=m.rayTriangleParametric(t,r,o,a,i);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var T=new l;m.lineSegmentTriangle=function(t,r,o,a,i,u,s){var c=T;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,o,a,i,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var C={root0:0,root1:0};m.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var S=new l;m.lineSegmentSphere=function(t,r,o,a){var i=S;e.clone(t,i.origin);var u=e.subtract(r,t,i.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(i,o,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,v=new e;m.rayEllipsoid=function(t,r){var n,o,i,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,v),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var E=d*d;if(n=h-1,o=e.magnitudeSquared(f),i=o*n,E<i)return;if(E>i){u=d*d-i,s=-d+Math.sqrt(u);var m=s/o,p=n/s;return m<p?new a(m,p):{start:p,stop:m}}var _=Math.sqrt(n/o);return new a(_,_)}return h<1?(n=h-1,o=e.magnitudeSquared(f),i=o*n,u=d*d-i,s=-d+Math.sqrt(u),new a(0,s/o)):d<0?(o=e.magnitudeSquared(f),new a(0,-d/o)):void 0};var I=new e,O=new e,M=new e,N=new e,w=new e,x=new u,P=new u,F=new u,D=new u,U=new u,L=new u,b=new u,B=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,r){var o=t.origin,a=t.direction;if(!e.equals(o,e.ZERO)){var s=r.geodeticSurfaceNormal(o,I);if(e.dot(a,s)>=0)return o}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,N),d=e.normalize(e.cross(h,f,O),O),m=e.normalize(e.cross(f,d,M),M),p=x;p[0]=f.x,p[1]=f.y,p[2]=f.z,p[3]=d.x,p[4]=d.y,p[5]=d.z,p[6]=m.x,p[7]=m.y,p[8]=m.z;var _=u.transpose(p,P),y=u.fromScale(r.radii,F),R=u.fromScale(r.oneOverRadii,D),A=U;A[0]=0,A[1]=-a.z,A[2]=a.y,A[3]=a.z,A[4]=0,A[5]=-a.x,A[6]=-a.y,A[7]=a.x,A[8]=0;var T,C,S=u.multiply(u.multiply(_,R,L),A,L),g=u.multiply(u.multiply(S,y,b),p,b),v=u.multiplyByVector(S,o,w),G=E(g,e.negate(v,I),0,0,1),W=G.length;if(W>0){for(var V=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<W;++H){T=u.multiplyByVector(y,u.multiplyByVector(p,G[H],B),B);var Y=e.normalize(e.subtract(T,o,N),N),k=e.dot(Y,a);k>X&&(X=k,V=e.clone(T,V))}var j=r.cartesianToCartographic(V,q);return X=i.clamp(X,0,1),C=e.magnitude(e.subtract(V,o,N))*Math.sqrt(1-X*X),C=c?-C:C,j.height=C,r.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,r,o,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=o.normal,c=e.dot(s,u);if(!(Math.abs(c)<i.EPSILON6)){var l=e.dot(s,t),f=-(o.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,r,n,o){var a=o.normal,i=o.distance,u=e.dot(a,t)+i<0,s=e.dot(a,r)+i<0,c=e.dot(a,n)+i<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,r,o,f),m.lineSegmentPlane(t,n,o,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(r,n,o,f),m.lineSegmentPlane(r,t,o,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(n,t,o,f),m.lineSegmentPlane(n,r,o,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(r,t,o,f),m.lineSegmentPlane(n,t,o,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(n,r,o,f),m.lineSegmentPlane(t,r,o,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,n,o,f),m.lineSegmentPlane(r,n,o,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,o,a,i){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r}u.fromPointNormal=function(t,n,o){var a=-e.dot(n,t);return r(o)?(e.clone(n,o.normal),o.distance=a,o):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var o=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(o,n.normal),n.distance=a,n):new u(o,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,o){r(o)||(o=new e);var a=u.getPointDistance(t,n),i=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,i,o)};var l=new e;return u.transform=function(t,r,n){return i.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),i.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=o(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=o(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=o(new u(e.UNIT_Y,0)),u}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,o,a=0,i=e.length-1;a<=i;)if(n=~~((a+i)/2),(o=r(e[n],t))<0)a=n+1;else{if(!(o>0))return n;i=n-1}return~(i+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=o}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],o=function(e,t,r,n){r||(r=" ");var o=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+o:o+e},a=function(e,t,r,n,a,i){var u=n-e.length;return u>0&&(e=r||!a?o(e,n,i,r):e.slice(0,t.length)+o("",u,"0",!0)+e.slice(t.length)),e},i=function(e,t,r,n,i,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+o(c.toString(t),u||0,"0",!1),a(e,r,n,i,s)},u=function(e,t,r,n,o,i){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,o,i)},s=function(e,n,s,c,l,f,h){var d,E,m,p,_;if("%%"==e)return"%";for(var y=!1,R="",A=!1,T=!1,C=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":R=" ";break;case"+":R="+";break;case"-":y=!0;break;case"'":C=s.charAt(g+1);break;case"0":A=!0;break;case"#":T=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(_),y,c,f,A,C);case"c":return u(String.fromCharCode(+_),y,c,f,A);case"b":return i(_,2,T,y,c,f,A);case"o":return i(_,8,T,y,c,f,A);case"x":return i(_,16,T,y,c,f,A);case"X":return i(_,16,T,y,c,f,A).toUpperCase();case"u":return i(_,10,T,y,c,f,A);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),E=d<0?"-":R,_=E+o(String(Math.abs(d)),f,"0",!1),a(_,E,y,c,A);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,E=d<0?"-":R,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],p=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=E+Math.abs(d)[m](f),a(_,E,y,c,A)[p]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,o,a,i,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=o,this.second=a,this.millisecond=i,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,o,a,i,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var r=m.leapSeconds,n=t(r,y,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var o=r[n].offset;if(n>0){m.secondsDifference(r[n].julianDate,e)>o&&(n--,o=r[n].offset)}m.addSeconds(e,o,e)}function h(e,r){y.julianDate=e;var n=m.leapSeconds,o=t(n,y,l);if(o<0&&(o=~o),0===o)return m.addSeconds(e,-n[0].offset,r);if(o>=n.length)return m.addSeconds(e,-n[o-1].offset,r);var a=m.secondsDifference(n[o].julianDate,e);return 0===a?m.addSeconds(e,-n[o].offset,r):a<=1?void 0:m.addSeconds(e,-n[--o].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function E(e,t,r,n,o,a,i){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+o*s.SECONDS_PER_MINUTE+i*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var o=0|e;t+=(e-o)*s.SECONDS_PER_DAY,d(o,t,this),n===c.UTC&&f(this)}var p=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,R=/^(\d{4})$/,A=/^(\d{4})-(\d{2})$/,T=/^(\d{4})-?(\d{3})$/,C=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,v=/^(\d{2})(\.\d+)?/.source+g.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var r=E(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromDate=function(e,t){var r=E(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new m(r[0],r[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var r,o,a,u=e.split("T"),s=1,l=1,h=0,p=0,y=0,g=0,M=u[0],N=u[1];if(null!==(u=M.match(S)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(A)))r=+u[1],s=+u[2];else if(null!==(u=M.match(R)))r=+u[1];else{var w;if(null!==(u=M.match(T)))r=+u[1],w=+u[2],a=i(r);else if(null!==(u=M.match(C))){r=+u[1];var x=+u[2],P=+u[3]||0,F=new Date(Date.UTC(r,0,4));w=7*x+P-F.getUTCDay()-3}o=new Date(Date.UTC(r,0,1)),o.setUTCDate(w),s=o.getUTCMonth()+1,l=o.getUTCDate()}a=i(r);var D;if(n(N)){u=N.match(O),null!==u?(h=+u[1],p=+u[2],y=+u[3],g=1e3*+(u[4]||0),D=5):(u=N.match(I),null!==u?(h=+u[1],p=+u[2],y=60*+(u[3]||0),D=4):null!==(u=N.match(v))&&(h=+u[1],p=60*+(u[2]||0),D=3));var U=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(U){case"+":h-=L,p-=b;break;case"-":h+=L,p+=b;break;case"Z":break;default:p+=new Date(Date.UTC(r,s-1,l,h,p)).getTimezoneOffset()}}var B=60===y;for(B&&y--;p>=60;)p-=60,h++;for(;h>=24;)h-=24,l++;for(o=a&&2===s?29:_[s-1];l>o;)l-=o,s++,s>12&&(s-=12,r++),o=a&&2===s?29:_[s-1];for(;p<0;)p+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),o=a&&2===s?29:_[s-1],l+=o;var z=E(r,s,l,h,p,y,g);return n(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var M=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var r=!1,o=h(e,M);n(o)||(m.addSeconds(e,-1,M),o=h(M,M),r=!0);var i=o.dayNumber,u=o.secondsOfDay;u>=43200&&(i+=1);var c=i+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,E=c-(2447*d/80|0)|0;c=d/11|0;var p=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,R=u-y*s.SECONDS_PER_HOUR,A=R/s.SECONDS_PER_MINUTE|0;R-=A*s.SECONDS_PER_MINUTE;var T=0|R,C=(R-T)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),r&&(T+=1),n(t)?(t.year=_,t.month=p,t.day=E,t.hour=y,t.minute=A,t.second=T,t.millisecond=C,t.isLeapSecond=r,t):new a(_,p,E,y,A,T,C,r)},m.toDate=function(e){var t=m.toGregorianDate(e,p),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},m.toIso8601=function(t,r){var o=m.toGregorianDate(t,p),a=o.year,i=o.month,u=o.day,s=o.hour,c=o.minute,l=o.second,f=o.millisecond;1e4===a&&1===i&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,i=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,i,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,i,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,i,u,s,c,l,h))},m.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(m.secondsDifference(e,t))<=r},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){y.julianDate=e;var r=m.leapSeconds,n=t(r,y,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},m.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},m.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},m.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},m.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)}, -m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(i,r).replace(o,t)),this.path&&(this.path=this.path.replace(o,t)),this.query&&(this.query=this.query.replace(o,t)),this.fragment&&(this.fragment=this.fragment.replace(o,t))};var o=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,i=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var o=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var i=r[a];n&&(i=t(i,n)),o[a]=i}return o}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,o,a){a=e(a,!1);var i,u,s,c={},l=t(n),f=t(o);if(l)for(i in n)n.hasOwnProperty(i)&&(u=n[i],f&&a&&"object"==typeof u&&o.hasOwnProperty(i)?(s=o[i],c[i]="object"==typeof s?r(u,s,a):u):c[i]=u);if(f)for(i in o)o.hasOwnProperty(i)&&!c.hasOwnProperty(i)&&(s=o[i],c[i]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function o(e,t){var r;return"undefined"!=typeof document&&(r=document),o._implementation(e,t,r)}return o._implementation=function(n,o,a){if(!r(o)){if(void 0===a)return n;o=t(a.baseURI,a.location.href)}var i=new e(o);return new e(n).resolve(i).toString()},o}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var o="",a=r.lastIndexOf("/");return-1!==a&&(o=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(o+="?"+r.query),t(r.fragment)&&(o+="#"+r.fragment),o):o}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,o=n.lastIndexOf("/");return-1!==o&&(n=n.substr(o+1)),o=n.lastIndexOf("."),n=-1===o?"":n.substr(o+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,o=r.protocol;return r.href=t,r.href=r.href,o!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var o=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,o.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},o.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var o=e[n],a=encodeURIComponent(n)+"=";if(r(o))for(var i=0,u=o.length;i<u;++i)t+=a+encodeURIComponent(o[i])+"&";else t+=a+encodeURIComponent(o)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var o=t.replace(/\+/g,"%20").split(/[&;]/),a=0,i=o.length;a<i;++a){var u=o[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function o(t){t=e(t,e.EMPTY_OBJECT);var o=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=o,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return o.prototype.cancel=function(){this.cancelled=!0},o.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new o(this)},o}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var o=r[n],a=o.indexOf(": ");if(a>0){var i=o.substring(0,a),u=o.substring(a+2);t[i]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function o(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,o=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){o=a;break}return-1!==o&&(this._insideRaiseEvent?(this._toRemove.push(o),r[o]=void 0,n[o]=void 0):(r.splice(o,1),n.splice(o,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var i=r[e];t(i)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(o),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function o(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(o.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),o.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},o.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,o=this._array,i=-1,u=!0;u;){var s=2*(e+1),c=s-1;i=c<r&&n(o[c],o[e])<0?c:e,s<r&&n(o[s],o[i])<0&&(i=s),i!==e?(a(o,i,e),e=i):u=!1}},o.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},o.prototype.insert=function(e){var t=this._array,n=this._comparator,o=this._maximumLength,i=this._length++;for(i<t.length?t[i]=e:t.push(e);0!==i;){var u=Math.floor((i-1)/2);if(!(n(t[i],t[u])<0))break;a(t,i,u),i=u}var s;return r(o)&&this._length>o&&(s=t[o],this._length=o),s},o.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},o}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,o,a,i,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){o(e.priorityFunction)&&(e.priority=e.priorityFunction())}function E(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return v[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function p(e){return function(t){e.state!==l.CANCELLED&&(--T.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++T.numberOfFailedRequests,--T.numberOfActiveRequests,--v[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++T.numberOfActiveRequests,++T.numberOfActiveRequestsEver,++v[e.serverKey],e.requestFunction().then(p(e)).otherwise(_(e)),t}function R(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++T.numberOfCancelledRequests,e.deferred.reject(),t&&(--T.numberOfActiveRequests,--v[e.serverKey],++T.numberOfCancelledActiveRequests),o(e.cancelFunction)&&e.cancelFunction()}function A(){h.debugShowStatistics&&(0===T.numberOfActiveRequests&&T.lastNumberOfActiveRequests>0&&(T.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+T.numberOfAttemptedRequests),T.numberOfAttemptedRequests=0),T.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+T.numberOfCancelledRequests),T.numberOfCancelledRequests=0),T.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+T.numberOfCancelledActiveRequests),T.numberOfCancelledActiveRequests=0),T.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+T.numberOfFailedRequests),T.numberOfFailedRequests=0)),T.lastNumberOfActiveRequests=T.numberOfActiveRequests)}var T={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},C=20,S=new u({comparator:f});S.maximumLength=C,S.reserve(C);var g=[],v={},I="undefined"!=typeof document?new e(document.location.href):new e,O=new i;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return T}},priorityHeapLength:{get:function(){return C},set:function(e){if(e<C)for(;S.length>e;){var t=S.pop();R(t)}C=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,r=0,n=g.length;for(e=0;e<n;++e)t=g[e],t.cancelled&&R(t),t.state===l.ACTIVE?r>0&&(g[e-r]=t):++r;g.length-=r;var o=S.internalArray,a=S.length;for(e=0;e<a;++e)d(o[e]);S.resort();for(var i=Math.max(h.maximumRequests-g.length,0),u=0;u<i&&S.length>0;)t=S.pop(),t.cancelled?R(t):!t.throttleByServer||E(t.serverKey)?(y(t),++u):R(t);A()},h.getServerKey=function(t){var r=new e(t).resolve(I);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=v[n];return o(a)||(v[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++T.numberOfAttemptedRequests,o(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||E(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(g.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(o(t)){if(t===e)return;R(t)}return m(e)}}},h.clearForSpecs=function(){for(;S.length>0;){R(S.pop())}for(var e=g.length,t=0;t<e;++t)R(g[t]);g.length=0,v={},T.numberOfAttemptedRequests=0,T.numberOfActiveRequests=0,T.numberOfCancelledRequests=0,T.numberOfCancelledActiveRequests=0,T.numberOfFailedRequests=0,T.numberOfActiveRequestsEver=0,T.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return v[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var o=n.getAuthority();if(t(o)){if(-1!==o.indexOf("@")){o=o.split("@")[1]}if(-1===o.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)o+=":80";else{if("https"!==a)return;o+=":443"}}return o}}var o={},a={};return o.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},o.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},o.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},o.clear=function(){a={}},o}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,o,a,i,u,s,c,l,f,h,d,E,m,p,_,y,R,A,T,C,S,g,v){"use strict";function I(e,t,r,n){var o=e.query;if(!u(o)||0===o.length)return{};var a;if(-1===o.indexOf("=")){var i={};i[o]=void 0,a=i}else a=R(o);t._queryParameters=r?w(a,t._queryParameters,n):a,e.query=void 0}function O(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=y(r):e.query=n[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():o(e):t}function N(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function w(e,t,r){if(!r)return a(e,t);var n=o(e,!0);for(var i in t)if(t.hasOwnProperty(i)){var s=n[i],c=t[i];u(s)?(Array.isArray(s)||(s=n[i]=[s]),n[i]=s.concat(c)):n[i]=Array.isArray(c)?c.slice():c}return n}function x(t){t=i(t,i.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=i(t.request,new A),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=i(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);I(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,o=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var i=t.defer();return x._Implementations.createImage(e,a,i,n,o),i.promise};var i=C.request(a);if(u(i))return i.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):r.retryOnError(e).then(function(i){return i?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:o})):t.reject(e)})})}function F(e,r,n){var o={};o[r]=n,e.setQueryParameters(o);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var i=C.request(a);if(u(i))return i.otherwise(function(o){return a.state!==S.FAILED?t.reject(o):e.retryOnError(o).then(function(i){return i?(a.state=S.UNISSUED,a.deferred=void 0,F(e,r,n)):t.reject(o)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function U(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),o=new Uint8Array(n),a=0;a<r.length;a++)o[a]=r.charCodeAt(a);return n}function L(e,t){t=i(t,"");var r=e[1],n=!!e[2],o=e[3];switch(t){case"":case"text":return D(n,o);case"arraybuffer":return U(n,o);case"blob":var a=U(n,o);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,o),r);case"json":return JSON.parse(D(n,o))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(v.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,o,a,i){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:o};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new T(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new g("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new T)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);I(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return p(this._url)}},isBlobUri:{get:function(){return E(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&O(n,this);var o=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return o=o.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(o=this.proxy.getURL(o)),o},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?w(this._queryParameters,e,!1):w(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=w(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);I(n,r,!0,i(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=o(this._queryParameters),e._templateValues=o(this._templateValues),e.headers=o(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=i(e,i.EMPTY_OBJECT);var r=i(e.preferImageBitmap,!1),n=i(e.preferBlob,!1),o=i(e.flipY,!1);if(N(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:o,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:o,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:o,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=i(e,"callback"),N(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return F(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;N(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var o=e.responseType,i=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,o,c,l,i,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var o=C.request(n);if(u(o))return o.then(function(e){return e}).otherwise(function(o){return n.state!==S.FAILED?t.reject(o):r.retryOnError(o).then(function(a){return a?(n.state=S.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(o)})})};var W=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,o){x.supportsImageBitmapOptions().then(function(n){return n&&o?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,o,a,i){var s=W.exec(e);if(null!==s)return void a.resolve(L(s,t));if(V)return void z(e,t,r,n,o,a,i);var c=new XMLHttpRequest;if(v.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(i)&&u(c.overrideMimeType)&&c.overrideMimeType(i),u(o))for(var l in o)o.hasOwnProperty(l)&&c.setRequestHeader(l,o[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new T(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var o=c.getAllResponseHeaders(),i=o.trim().split(/[\r\n]+/),s={};return i.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new T)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return _(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,o,a,i,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))E(this,t.data);else if(n(t.url)){var o=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(o.fetchJson(),function(e){E(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+o.url+"."})}else E(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return i.compare(e.julianDate,t)}function E(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.") -;var o=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("taiMinusUtcSeconds");if(o<0||a<0||s<0||c<0||h<0||E<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var p=e._samples=r.samples,_=e._dates=[];e._dateColumn=o,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=E,e._taiMinusUtcSecondsColumn=m,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var y,R=e._addNewLeapSeconds,A=0,T=p.length;A<T;A+=e._columnCount){var C=p[A+o],S=p[A+m],g=C+l.MODIFIED_JULIAN_DATE_DIFFERENCE,v=new i(g,S,f.TAI);if(_.push(v),R){if(S!==y&&n(y)){var I=i.leapSeconds,O=t(I,v,d);if(O<0){var M=new u(v,S);I.splice(~O,0,M)}}y=S}}}function m(e,t,r,n,o){var a=r*n;o.xPoleWander=t[a+e._xPoleWanderRadiansColumn],o.yPoleWander=t[a+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function p(e,t,r){return t+e*(r-t)}function _(e,t,r,n,o,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[o],l=t[a];if(c.equals(l)||n.equals(c))return m(e,r,o,s,u),u;if(n.equals(l))return m(e,r,a,s,u),u;var f=i.secondsDifference(n,c)/i.secondsDifference(l,c),h=o*s,d=a*s,E=r[h+e._ut1MinusUtcSecondsColumn],_=r[d+e._ut1MinusUtcSecondsColumn],y=_-E;if(y>.5||y<-.5){var R=r[h+e._taiMinusUtcSecondsColumn],A=r[d+e._taiMinusUtcSecondsColumn];R!==A&&(l.equals(n)?E=_:_-=A-R)}return u.xPoleWander=p(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=p(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=p(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=p(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=p(f,E,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new o(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new o(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=i.lessThanOrEquals(f,e),E=!n(h),m=E||i.greaterThanOrEquals(h,e);if(d&&m)return s=u,!E&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,r),r}var p=t(a,e,i.compare,this._dateColumn);return p>=0?(p<a.length-1&&a[p+1].equals(e)&&++p,s=p,l=p):(l=~p,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function o(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return o.fromQuaternion=function(e,r){t(r)||(r=new o);var a=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,i),r.pitch=-n.asinClamped(a),r},o.fromDegrees=function(e,r,a,i){return t(i)||(i=new o),i.heading=e*n.RADIANS_PER_DEGREE,i.pitch=r*n.RADIANS_PER_DEGREE,i.roll=a*n.RADIANS_PER_DEGREE,i},o.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new o(e.heading,e.pitch,e.roll)},o.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},o.equalsEpsilon=function(e,r,o,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,o,a)&&n.equalsEpsilon(e.pitch,r.pitch,o,a)&&n.equalsEpsilon(e.roll,r.roll,o,a)},o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},o}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,o){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),o=E.exec(n);if(null!==o)return o[1]}}function i(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(o.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:i(t)}),h.appendForwardSlash(),h}function s(e){return i(o.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(o.toUrl)?s:c),d(t)}var f,h,d,E=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=E,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,o,a,i,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=i.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),o=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,o[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,o){if(r._chunkDownloadsInProgress[o])return r._chunkDownloadsInProgress[o];var a=e.defer();r._chunkDownloadsInProgress[o]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:o}}):new i({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+o+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[o]=!1;for(var t=r._samples,n=e.samples,i=o*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[i+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,o){var a=c(this,t,r),i=c(this,n,o),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=i/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],E=f;E<=h;++E)d.push(l(this,E));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var i=a/this._stepSizeDays|0;if(!(i>=this._totalSamples)){var u=this._interpolationOrder,s=i-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new o(0,0,0);var E,m,p=a-s*this._stepSizeDays,_=this._work,y=this._denominators,R=this._coef,A=this._xTable;for(E=0;E<=u;++E)_[E]=p-A[E];for(E=0;E<=u;++E){for(R[E]=1,m=0;m<=u;++m)m!==E&&(R[E]*=_[m]);R[E]*=y[E];var T=3*(s+E);r.x+=R[E]*d[T++],r.y+=R[E]*d[T++],r.s+=R[E]*d[T]}return r}}}},s}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,o,a,i,u){"use strict";function s(e,t,n,o){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(o,0)}var c=new e;s.fromAxisAngle=function(t,r,o){var a=r/2,i=Math.sin(a);c=e.normalize(t,c);var u=c.x*i,l=c.y*i,f=c.z*i,h=Math.cos(a);return n(o)?(o.x=u,o.y=l,o.z=f,o.w=h,o):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,o,a,i,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],E=e[u.COLUMN2ROW2],m=h+d+E;if(m>0)r=Math.sqrt(m+1),c=.5*r,r=.5/r,o=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,i=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var p=l,_=0;d>h&&(_=1),E>h&&E>d&&(_=2);var y=p[_],R=p[y];r=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(R,R)]+1);var A=f;A[_]=.5*r,r=.5/r,c=(e[u.getElementIndex(R,y)]-e[u.getElementIndex(y,R)])*r,A[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*r,A[R]=(e[u.getElementIndex(R,_)]+e[u.getElementIndex(_,R)])*r,o=-A[0],a=-A[1],i=-A[2]}return n(t)?(t.x=o,t.y=a,t.z=i,t.w=c,t):new s(o,a,i,c)};var h=new s,d=new s,E=new s,m=new s;s.fromHeadingPitchRoll=function(t,r){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),E=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(E,m,E),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var p=new e,_=new e,y=new s,R=new s,A=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,o){return t=r(t,0),n(o)||(o=new s),o.x=e[t],o.y=e[t+1],o.z=e[t+2],o.w=e[t+3],o},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,A),s.conjugate(A,A);for(var o=0,a=r-t+1;o<a;o++){var i=3*o;s.unpack(e,4*(t+o),y),s.multiply(y,A,y),y.w<0&&s.negate(y,y),s.computeAxis(y,p);var u=s.computeAngle(y);n[i]=p.x*u,n[i+1]=p.y*u,n[i+2]=p.z*u}},s.unpackInterpolationResult=function(t,r,o,a,i){n(i)||(i=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(r,4*a,R),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,R,i)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,o=e.y*r,a=e.z*r,i=e.w*r;return t.x=n,t.y=o,t.z=a,t.w=i,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,o=e.y,a=e.z,i=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=i*u+n*l+o*c-a*s,h=i*s-n*c+o*l+a*u,d=i*c+n*s-o*u+a*l,E=i*l-n*u-o*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=E,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<i.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<i.EPSILON6?0:2*Math.acos(e.w)};var T=new s;s.lerp=function(e,t,r,n){return T=s.multiplyByScalar(t,r,T),n=s.multiplyByScalar(e,1-r,n),s.add(T,n,n)};var C=new s,S=new s,g=new s;s.slerp=function(e,t,r,n){var o=s.dot(e,t),a=t;if(o<0&&(o=-o,a=C=s.negate(t,C)),1-o<i.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(o);return S=s.multiplyByScalar(e,Math.sin((1-r)*u),S),g=s.multiplyByScalar(a,Math.sin(r*u),g),n=s.add(S,g,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=i.acosClamped(t.w),o=0;return 0!==n&&(o=n/Math.sin(n)),e.multiplyByScalar(t,o,r)},s.exp=function(t,r){var n=e.magnitude(t),o=0;return 0!==n&&(o=Math.sin(n)/n),r.x=t.x*o,r.y=t.y*o,r.z=t.z*o,r.w=Math.cos(n),r};var v=new e,I=new e,O=new s,M=new s;s.computeInnerQuadrangle=function(t,r,n,o){var a=s.conjugate(r,O);s.multiply(a,n,M);var i=s.log(M,v);s.multiply(a,t,M);var u=s.log(M,I);return e.add(i,u,i),e.multiplyByScalar(i,.25,i),e.negate(i,i),s.exp(i,O),s.multiply(r,O,o)},s.squad=function(e,t,r,n,o,a){var i=s.slerp(e,t,o,O),u=s.slerp(r,n,o,M);return s.slerp(i,u,2*o*(1-o),a)};for(var N=new s,w=1.9011074535173003,x=o.supportsTypedArrays()?new Float32Array(8):[],P=o.supportsTypedArrays()?new Float32Array(8):[],F=o.supportsTypedArrays()?new Float32Array(8):[],D=o.supportsTypedArrays()?new Float32Array(8):[],U=0;U<7;++U){var L=U+1,b=2*L+1;x[U]=1/(L*b),P[U]=L/b}return x[7]=w/136,P[7]=8*w/17,s.fastSlerp=function(e,t,r,n){var o,a=s.dot(e,t);a>=0?o=1:(o=-1,a=-a);for(var i=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)F[f]=(x[f]*c-P[f])*i,D[f]=(x[f]*l-P[f])*i;var h=o*r*(1+F[0]*(1+F[1]*(1+F[2]*(1+F[3]*(1+F[4]*(1+F[5]*(1+F[6]*(1+F[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),E=s.multiplyByScalar(e,d,N);return s.multiplyByScalar(t,h,n),s.add(E,n,n)},s.fastSquad=function(e,t,r,n,o,a){var i=s.fastSlerp(e,t,o,O),u=s.fastSlerp(r,n,o,M);return s.fastSlerp(i,u,2*o*(1-o),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,o,a,i,u,s,c,l,f,h,d,E,m,p,_,y,R,A){"use strict";var T={},C={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},v={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},I=new r,O=new r,M=new r;T.localFrameToFixedFrameGenerator=function(e,t){if(!C.hasOwnProperty(e)||!C[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,o=C[e][t],a=e+t;return u(g[a])?n=g[a]:(n=function(n,a,s){if(u(s)||(s=new y),p.equalsEpsilon(n.x,0,p.EPSILON14)&&p.equalsEpsilon(n.y,0,p.EPSILON14)){var c=p.sign(n.z);r.unpack(S[e],0,I),"east"!==e&&"west"!==e&&r.multiplyByScalar(I,c,I),r.unpack(S[t],0,O),"east"!==t&&"west"!==t&&r.multiplyByScalar(O,c,O),r.unpack(S[o],0,M),"east"!==o&&"west"!==o&&r.multiplyByScalar(M,c,M)}else{a=i(a,f.WGS84),a.geodeticSurfaceNormal(n,v.up);var l=v.up,h=v.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,v.east),r.cross(l,h,v.north),r.multiplyByScalar(v.up,-1,v.down),r.multiplyByScalar(v.east,-1,v.west),r.multiplyByScalar(v.north,-1,v.south),I=v[e],O=v[t],M=v[o]}return s[0]=I.x,s[1]=I.y,s[2]=I.z,s[3]=0,s[4]=O.x,s[5]=O.y,s[6]=O.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},g[a]=n),n},T.eastNorthUpToFixedFrame=T.localFrameToFixedFrameGenerator("east","north"),T.northEastDownToFixedFrame=T.localFrameToFixedFrameGenerator("north","east"),T.northUpEastToFixedFrame=T.localFrameToFixedFrameGenerator("north","up"),T.northWestUpToFixedFrame=T.localFrameToFixedFrameGenerator("north","west");var N=new R,w=new r(1,1,1),x=new y;T.headingPitchRollToFixedFrame=function(e,t,n,o,a){o=i(o,T.eastNorthUpToFixedFrame);var u=R.fromHeadingPitchRoll(t,N),s=y.fromTranslationQuaternionRotationScale(r.ZERO,u,w,x);return a=o(e,n,a),y.multiply(a,s,a)};var P=new y,F=new _;T.headingPitchRollQuaternion=function(e,t,r,n,o){var a=T.headingPitchRollToFixedFrame(e,t,r,n,P),i=y.getRotation(a,F);return R.fromRotationMatrix(i,o)};var D=new r(1,1,1),U=new r,L=new y,b=new y,B=new _,z=new R;T.fixedFrameToHeadingPitchRoll=function(e,t,n,o){t=i(t,f.WGS84),n=i(n,T.eastNorthUpToFixedFrame),u(o)||(o=new h);var a=y.getTranslation(e,U);if(r.equals(a,r.ZERO))return o.heading=0,o.pitch=0,o.roll=0,o;var s=y.inverseTransformation(n(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,r.ZERO,c),s=y.multiply(s,c,s);var l=R.fromRotationMatrix(y.getRotation(s,B),z);return l=R.normalize(l,l),h.fromQuaternion(l,o)};var q=p.TWO_PI/86400,G=new m;T.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,o=G.secondsOfDay,a=n-2451545;r=o>=43200?(a+.5)/A.DAYS_PER_JULIAN_CENTURY:(a-.5)/A.DAYS_PER_JULIAN_CENTURY;var i=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=i*q%p.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(o+.5*A.SECONDS_PER_DAY)%A.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},T.iau2006XysData=new d,T.earthOrientationParameters=c.NONE;T.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,o=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,i=T.iau2006XysData.preload(r,n,o,a),u=T.earthOrientationParameters.getPromiseToLoad();return e.all([i,u])},T.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var r=T.computeFixedToIcrfMatrix(e,t);if(u(r))return _.transpose(r,t)};var W=new E(0,0,0),V=new l(0,0,0,0,0,0),X=new _,H=new _;T.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var r=T.earthOrientationParameters.compute(e,V);if(u(r)){var n=e.dayNumber,o=e.secondsOfDay+32.184,a=T.iau2006XysData.computeXysRadians(n,o,W);if(u(a)){var i=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-i*i-s*s)),l=X;l[0]=1-c*i*i,l[3]=-c*i*s,l[6]=i,l[1]=-c*i*s,l[4]=1-c*s*s,l[7]=s,l[2]=-i,l[5]=-s,l[8]=1-c*(i*i+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,E=e.secondsOfDay-m.computeTaiMinusUtc(e)+r.ut1MinusUtc,y=d-2451545,R=E/A.SECONDS_PER_DAY,C=.779057273264+R+.00273781191135448*(y+R);C=C%1*p.TWO_PI;var S=_.fromRotationZ(C,H),g=_.multiply(h,S,X),v=Math.cos(r.xPoleWander),I=Math.cos(r.yPoleWander),O=Math.sin(r.xPoleWander),M=Math.sin(r.yPoleWander),N=n-2451545+o/A.SECONDS_PER_DAY;N/=36525;var w=-47e-6*N*p.RADIANS_PER_DEGREE/3600,x=Math.cos(w),P=Math.sin(w),F=H;return F[0]=v*x,F[1]=v*P,F[2]=O,F[3]=-I*P+M*O*x,F[4]=I*x+M*O*P,F[5]=-M*v,F[6]=-M*P-I*O*x,F[7]=M*x-I*O*P,F[8]=I*v,_.multiply(g,F,t)}}};var Y=new n;T.pointToWindowCoordinates=function(e,t,r,n){return n=T.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},T.pointToGLWindowCoordinates=function(e,r,o,a){u(a)||(a=new t);var i=Y;return y.multiplyByVector(e,n.fromElements(o.x,o.y,o.z,1,i),i),n.multiplyByScalar(i,1/i.w,i),y.multiplyByVector(r,i,i),t.fromCartesian4(i,a)};var k=new r,j=new r,K=new r;T.rotationMatrixFromPositionVelocity=function(e,t,n,o){var a=i(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,p.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,K);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(o)||(o=new _),o[0]=t.x,o[1]=t.y,o[2]=t.z,o[3]=s.x,o[4]=s.y,o[5]=s.z,o[6]=c.x,o[7]=c.y,o[8]=c.z,o};var Z=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new o,Q=new r,$=new r,ee=new _,te=new y,re=new y;return T.basisTo2D=function(e,t,n){var o=y.getTranslation(t,$),a=e.ellipsoid,i=a.cartesianToCartographic(o,J),u=e.project(i,Q);r.fromElements(u.z,u.x,u.y,u);var s=T.eastNorthUpToFixedFrame(o,a,te),c=y.inverseTransformation(s,re),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,n);return y.multiply(Z,f,n),y.setTranslation(n,u,n),n},T.wgs84To2DModelMatrix=function(e,t,n){var o=e.ellipsoid,a=T.eastNorthUpToFixedFrame(t,o,te),i=y.inverseTransformation(a,re),u=o.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(Z,i,n),y.multiply(c,n,n),n},T}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,r,n,o,a,i,u,s,c,l,f,h,d,E){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var n=E.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=r.fromCartesian4(f.getColumn(n,0,p)),this._yAxis=r.fromCartesian4(f.getColumn(n,1,p));var o=r.fromCartesian4(f.getColumn(n,2,p));this._plane=h.fromPointNormal(e,o)}var p=new n;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var _=new e;m.fromPoints=function(t,r){return new m(e.fromPoints(t,_).center,r)};var y=new d,R=new r;m.prototype.projectPointOntoPlane=function(e,n){var o=y;o.origin=e,r.normalize(e,o.direction);var a=l.rayPlane(o,this._plane,R);if(i(a)||(r.negate(o.direction,o.direction),a=l.rayPlane(o,this._plane,R)),i(a)){var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return i(n)?(n.x=s,n.y=c,n):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){i(t)||(t=[]);for(var r=0,n=e.length,o=0;o<n;o++){var a=this.projectPointOntoPlane(e[o],t[r]);i(a)&&(t[r]=a,r++)}return t.length=r,t},m.prototype.projectPointToNearestOnPlane=function(e,n){i(n)||(n=new t);var o=y;o.origin=e,r.clone(this._plane.normal,o.direction);var a=l.rayPlane(o,this._plane,R);i(a)||(r.negate(o.direction,o.direction),a=l.rayPlane(o,this._plane,R));var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return n.x=s,n.y=c,n},m.prototype.projectPointsToNearestOnPlane=function(e,t){i(t)||(t=[]);var r=e.length;t.length=r;for(var n=0;n<r;n++)t[n]=this.projectPointToNearestOnPlane(e[n],t[n]);return t};var A=new r;return m.prototype.projectPointOntoEllipsoid=function(e,t){i(t)||(t=new r);var n=this._ellipsoid,o=this._origin,a=this._xAxis,u=this._yAxis,s=A;return r.multiplyByScalar(a,e.x,s),t=r.add(o,s,t),r.multiplyByScalar(u,e.y,s),r.add(t,s,t),n.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.projectPointOntoEllipsoid(e[n],t[n]);return t},m}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,r,n,o,a,i,u,s,c,l,f,h,d,E,m){"use strict";function p(e,t){this.center=r.clone(a(e,r.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function _(e,t,n,o,a,u,s,c){i(c)||(c=new p);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=I;f.x=(t+n)/2,f.y=(o+a)/2,f.z=(u+s)/2;var h=O;h.x=(n-t)/2,h.y=(a-o)/2,h.z=(s-u)/2;var E=c.center;return f=d.multiplyByVector(l,f,f),r.add(e.origin,f,E),d.multiplyByScale(l,h,l),c}p.packedLength=r.packedLength+d.packedLength,p.pack=function(e,t,n){return n=a(n,0),r.pack(e.center,t,n),d.pack(e.halfAxes,t,n+r.packedLength),t},p.unpack=function(e,t,n){return t=a(t,0),i(n)||(n=new p),r.unpack(e,t,n.center),d.unpack(e,t+r.packedLength,n.halfAxes),n};var y=new r,R=new r,A=new r,T=new r,C=new r,S=new r,g=new d,v={unitary:new d,diagonal:new d};p.fromPoints=function(e,t){if(i(t)||(t=new p),!i(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=r.ZERO,t;var n,o=e.length,a=r.clone(e[0],y);for(n=1;n<o;n++)r.add(a,e[n],a);var u=1/o;r.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,E=0,m=0;for(n=0;n<o;n++)s=r.subtract(e[n],a,R),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,E+=s.y*s.z,m+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,E*=u,m*=u;var _=g;_[0]=c,_[1]=l,_[2]=f,_[3]=l,_[4]=h,_[5]=E,_[6]=f,_[7]=E,_[8]=m;var I=d.computeEigenDecomposition(_,v),O=d.clone(I.unitary,t.halfAxes),M=d.getColumn(O,0,T),N=d.getColumn(O,1,C),w=d.getColumn(O,2,S),x=-Number.MAX_VALUE,P=-Number.MAX_VALUE,F=-Number.MAX_VALUE,D=Number.MAX_VALUE,U=Number.MAX_VALUE,L=Number.MAX_VALUE;for(n=0;n<o;n++)s=e[n],x=Math.max(r.dot(M,s),x),P=Math.max(r.dot(N,s),P),F=Math.max(r.dot(w,s),F),D=Math.min(r.dot(M,s),D),U=Math.min(r.dot(N,s),U),L=Math.min(r.dot(w,s),L);M=r.multiplyByScalar(M,.5*(D+x),M),N=r.multiplyByScalar(N,.5*(U+P),N),w=r.multiplyByScalar(w,.5*(L+F),w);var b=r.add(M,N,t.center);r.add(b,w,b);var B=A;return B.x=x-D,B.y=P-U,B.z=F-L,r.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var I=new r,O=new r,M=new n,N=new r,w=[new n,new n,new n,new n,new n,new n,new n,new n],x=[new r,new r,new r,new r,new r,new r,new r,new r],P=[new t,new t,new t,new t,new t,new t,new t,new t];p.fromRectangle=function(e,t,r,n,o){t=a(t,0),r=a(r,0),n=a(n,s.WGS84);var i=m.center(e,M),u=n.cartographicToCartesian(i,N),l=new c(u,n),f=l.plane,h=w[0],d=w[1],p=w[2],y=w[3],R=w[4],A=w[5],T=w[6],C=w[7],S=i.longitude,g=e.south<0&&e.north>0?0:i.latitude;T.latitude=A.latitude=R.latitude=e.south,C.latitude=y.latitude=g,h.latitude=d.latitude=p.latitude=e.north,T.longitude=C.longitude=h.longitude=e.west,A.longitude=d.longitude=S,R.longitude=y.longitude=p.longitude=e.east,p.height=d.height=h.height=C.height=T.height=A.height=R.height=y.height=r,n.cartographicArrayToCartesianArray(w,x),l.projectPointsToNearestOnPlane(x,P);var v=Math.min(P[6].x,P[7].x,P[0].x),I=Math.max(P[2].x,P[3].x,P[4].x),O=Math.min(P[4].y,P[5].y,P[6].y),F=Math.max(P[0].y,P[1].y,P[2].y);return p.height=h.height=R.height=T.height=t,n.cartographicArrayToCartesianArray(w,x),_(l,v,I,O,F,Math.min(E.getPointDistance(f,x[0]),E.getPointDistance(f,x[2]),E.getPointDistance(f,x[4]),E.getPointDistance(f,x[6])),r,o)},p.clone=function(e,t){if(i(e))return i(t)?(r.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new p(e.center,e.halfAxes)},p.intersectPlane=function(e,t){var n=e.center,o=t.normal,a=e.halfAxes,i=o.x,u=o.y,s=o.z,c=Math.abs(i*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(i*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(i*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=r.dot(o,n)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var F=new r,D=new r,U=new r,L=new r;p.distanceSquaredTo=function(e,t){var n=r.subtract(t,e.center,I),o=e.halfAxes,a=d.getColumn(o,0,F),i=d.getColumn(o,1,D),u=d.getColumn(o,2,U),s=r.magnitude(a),c=r.magnitude(i),l=r.magnitude(u);r.normalize(a,a),r.normalize(i,i),r.normalize(u,u);var f=L;f.x=r.dot(n,a),f.y=r.dot(n,i),f.z=r.dot(n,u);var h,E=0;return f.x<-s?(h=f.x+s,E+=h*h):f.x>s&&(h=f.x-s,E+=h*h),f.y<-c?(h=f.y+c,E+=h*h):f.y>c&&(h=f.y-c,E+=h*h),f.z<-l?(h=f.z+l,E+=h*h):f.z>l&&(h=f.z-l,E+=h*h),E};var b=new r,B=new r;p.computePlaneDistances=function(e,t,n,o){i(o)||(o=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,F),h=d.getColumn(c,1,D),E=d.getColumn(c,2,U),m=r.add(l,h,b);r.add(m,E,m),r.add(m,s,m);var p=r.subtract(m,t,B),_=r.dot(n,p);return a=Math.min(_,a),u=Math.max(_,u),r.add(s,l,m),r.add(m,h,m),r.subtract(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.add(s,l,m),r.subtract(m,h,m),r.add(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.add(s,l,m),r.subtract(m,h,m),r.subtract(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.subtract(s,l,m),r.add(m,h,m),r.add(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.subtract(s,l,m),r.add(m,h,m),r.subtract(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.subtract(s,l,m),r.subtract(m,h,m),r.add(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),r.subtract(s,l,m),r.subtract(m,h,m),r.subtract(m,E,m),r.subtract(m,t,p),_=r.dot(n,p),a=Math.min(_,a),u=Math.max(_,u),o.start=a,o.stop=u,o};var z=new e;return p.isOccluded=function(t,r){var n=e.fromOrientedBoundingBox(t,z);return!r.isBoundingSphereVisible(n)},p.prototype.intersectPlane=function(e){return p.intersectPlane(this,e)},p.prototype.distanceSquaredTo=function(e){return p.distanceSquaredTo(this,e)},p.prototype.computePlaneDistances=function(e,t,r){return p.computePlaneDistances(this,e,t,r)},p.prototype.isOccluded=function(e){return p.isOccluded(this,e)},p.equals=function(e,t){return e===t||i(e)&&i(t)&&r.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var r,n=t.name,o=t.message;r=e(n)&&e(o)?n+": "+o:t.toString();var a=t.stack;return e(a)&&(r+="\n"+a),r}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,r,n){"use strict";function o(t,r,n){try{return t(r,n)}catch(t){return e.reject(t)}}function a(a){var i;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(o(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){r(i)||(i=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{i(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+n(e)+"\n with responseMessage: "+JSON.stringify(l),i(l)}})}}return a}),define("Workers/createVectorTilePolygons",["../Core/AttributeCompression","../Core/Cartesian3","../Core/Cartographic","../Core/Color","../Core/defined","../Core/Ellipsoid","../Core/IndexDatatype","../Core/Math","../Core/OrientedBoundingBox","../Core/Rectangle","./createTaskProcessorWorker"],function(e,t,r,n,o,a,i,u,s,c,l){"use strict";function f(e){var r=new Float64Array(e),n=0;y.indexBytesPerElement=r[n++],y.min=r[n++],y.max=r[n++],t.unpack(r,n,m),n+=t.packedLength,a.unpack(r,n,p),n+=a.packedLength,c.unpack(r,n,_)}function h(e){for(var t=e.length,r=0,o=0;o<t;++o)r+=n.packedLength+3+e[o].batchIds.length;return r}function d(e,t,r){var o=t.length,a=2+o*s.packedLength+1+h(r),i=new Float64Array(a),u=0;i[u++]=e,i[u++]=o;for(var c=0;c<o;++c)s.pack(t[c],i,u),u+=s.packedLength;var l=r.length;i[u++]=l;for(var f=0;f<l;++f){var d=r[f];n.pack(d.color,i,u),u+=n.packedLength,i[u++]=d.offset,i[u++]=d.count;var E=d.batchIds,m=E.length;i[u++]=m;for(var p=0;p<m;++p)i[u++]=E[p]}return i}function E(a,c){f(a.packedBuffer);var l -;l=2===y.indexBytesPerElement?new Uint16Array(a.indices):new Uint32Array(a.indices);var h=new Uint16Array(a.positions),E=new Uint32Array(a.counts),O=new Uint32Array(a.indexCounts),M=new Uint32Array(a.batchIds),N=new Uint32Array(a.batchTableColors),w=new Array(E.length),x=m,P=p,F=_,D=y.min,U=y.max,L=a.minimumHeights,b=a.maximumHeights;o(L)&&o(b)&&(L=new Float32Array(L),b=new Float32Array(b));var B,z,q,G=h.length/2,W=h.subarray(0,G),V=h.subarray(G,2*G);e.zigZagDeltaDecode(W,V);var X=new Float32Array(3*G);for(B=0;B<G;++B){var H=W[B],Y=V[B],k=u.lerp(F.west,F.east,H/R),j=u.lerp(F.south,F.north,Y/R),K=r.fromRadians(k,j,0,v),Z=P.cartographicToCartesian(K,A);t.pack(Z,X,3*B)}var J=E.length,Q=new Array(J),$=new Array(J),ee=0,te=0;for(B=0;B<J;++B)Q[B]=ee,$[B]=te,ee+=E[B],te+=O[B];var re=new Float32Array(3*G*2),ne=new Uint16Array(2*G),oe=new Uint32Array($.length),ae=new Uint32Array(O.length),ie=[],ue={};for(B=0;B<J;++B)q=N[B],o(ue[q])?(ue[q].positionLength+=E[B],ue[q].indexLength+=O[B],ue[q].batchIds.push(B)):ue[q]={positionLength:E[B],indexLength:O[B],offset:0,indexOffset:0,batchIds:[B]};var se,ce=0,le=0;for(q in ue)if(ue.hasOwnProperty(q)){se=ue[q],se.offset=ce,se.indexOffset=le;var fe=2*se.positionLength,he=2*se.indexLength+6*se.positionLength;ce+=fe,le+=he,se.indexLength=he}var de=[];for(q in ue)ue.hasOwnProperty(q)&&(se=ue[q],de.push({color:n.fromRgba(parseInt(q)),offset:se.indexOffset,count:se.indexLength,batchIds:se.batchIds}));for(B=0;B<J;++B){q=N[B],se=ue[q];var Ee=se.offset,me=3*Ee,pe=Ee,_e=Q[B],ye=E[B],Re=M[B],Ae=D,Te=U;o(L)&&o(b)&&(Ae=L[B],Te=b[B]);var Ce=Number.POSITIVE_INFINITY,Se=Number.NEGATIVE_INFINITY,ge=Number.POSITIVE_INFINITY,ve=Number.NEGATIVE_INFINITY;for(z=0;z<ye;++z){var Ie=t.unpack(X,3*_e+3*z,A);P.scaleToGeodeticSurface(Ie,Ie);var Oe=P.cartesianToCartographic(Ie,v),Me=Oe.latitude,Ne=Oe.longitude;Ce=Math.min(Me,Ce),Se=Math.max(Me,Se),ge=Math.min(Ne,ge),ve=Math.max(Ne,ve);var we=P.geodeticSurfaceNormal(Ie,T),xe=t.multiplyByScalar(we,Ae,C),Pe=t.add(Ie,xe,S);xe=t.multiplyByScalar(we,Te,xe);var Fe=t.add(Ie,xe,g);t.subtract(Fe,x,Fe),t.subtract(Pe,x,Pe),t.pack(Fe,re,me),t.pack(Pe,re,me+3),ne[pe]=Re,ne[pe+1]=Re,me+=6,pe+=2}F=I,F.west=ge,F.east=ve,F.south=Ce,F.north=Se,w[B]=s.fromRectangle(F,D,U,P);var De=se.indexOffset,Ue=$[B],Le=O[B];for(oe[B]=De,z=0;z<Le;z+=3){var be=l[Ue+z]-_e,Be=l[Ue+z+1]-_e,ze=l[Ue+z+2]-_e;ie[De++]=2*be+Ee,ie[De++]=2*Be+Ee,ie[De++]=2*ze+Ee,ie[De++]=2*ze+1+Ee,ie[De++]=2*Be+1+Ee,ie[De++]=2*be+1+Ee}for(z=0;z<ye;++z){var qe=z,Ge=(z+1)%ye;ie[De++]=2*qe+1+Ee,ie[De++]=2*Ge+Ee,ie[De++]=2*qe+Ee,ie[De++]=2*qe+1+Ee,ie[De++]=2*Ge+1+Ee,ie[De++]=2*Ge+Ee}se.offset+=2*ye,se.indexOffset=De,ae[B]=De-oe[B]}ie=i.createTypedArray(re.length/3,ie);for(var We=de.length,Ve=0;Ve<We;++Ve){for(var Xe=de[Ve].batchIds,He=0,Ye=Xe.length,ke=0;ke<Ye;++ke)He+=ae[Xe[ke]];de[Ve].count=He}var je=2===ie.BYTES_PER_ELEMENT?i.UNSIGNED_SHORT:i.UNSIGNED_INT,Ke=d(je,w,de);return c.push(re.buffer,ie.buffer,oe.buffer,ae.buffer,ne.buffer,Ke.buffer),{positions:re.buffer,indices:ie.buffer,indexOffsets:oe.buffer,indexCounts:ae.buffer,batchIds:ne.buffer,packedBuffer:Ke.buffer}}var m=new t,p=new a,_=new c,y={min:void 0,max:void 0,indexBytesPerElement:void 0},R=32767,A=new t,T=new t,C=new t,S=new t,g=new t,v=new r,I=new c;return l(E)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as R}from"./chunk-NYU5F26A.js";import{a as It}from"./chunk-3R25OJXK.js";import{a as M}from"./chunk-7MCGOXW3.js";import{a as bt}from"./chunk-H3L4SJP4.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as W}from"./chunk-T53UE6JF.js";import"./chunk-T5AUOWE7.js";import{i as z}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as o,b as nt,d as j}from"./chunk-AODSXSC5.js";import{a as et}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as A}from"./chunk-DRYFJEFT.js";var kt=new o,Bt=new j,Nt=new z,E={min:void 0,max:void 0,indexBytesPerElement:void 0};function Pt(s){let u=new Float64Array(s),n=0;E.indexBytesPerElement=u[n++],E.min=u[n++],E.max=u[n++],o.unpack(u,n,kt),n+=o.packedLength,j.unpack(u,n,Bt),n+=j.packedLength,z.unpack(u,n,Nt)}function Tt(s){let u=s.length,n=0;for(let y=0;y<u;++y)n+=R.packedLength+3+s[y].batchIds.length;return n}function Ct(s,u,n){let y=u.length,O=2+y*M.packedLength+1+Tt(n),c=new Float64Array(O),i=0;c[i++]=s,c[i++]=y;for(let x=0;x<y;++x)M.pack(u[x],c,i),i+=M.packedLength;let V=n.length;c[i++]=V;for(let x=0;x<V;++x){let B=n[x];R.pack(B.color,c,i),i+=R.packedLength,c[i++]=B.offset,c[i++]=B.count;let P=B.batchIds,w=P.length;c[i++]=w;for(let h=0;h<w;++h)c[i++]=P[h]}return c}var yt=32767,wt=new o,Ht=new o,St=new o,Ut=new o,Ft=new o,Lt=new nt,Mt=new z;function Rt(s,u){Pt(s.packedBuffer);let n;E.indexBytesPerElement===2?n=new Uint16Array(s.indices):n=new Uint32Array(s.indices);let O=new Uint16Array(s.positions),c=new Uint32Array(s.counts),i=new Uint32Array(s.indexCounts),V=new Uint32Array(s.batchIds),x=new Uint32Array(s.batchTableColors),B=new Array(c.length),P=kt,w=Bt,h=Nt,ot=E.min,st=E.max,T=s.minimumHeights,C=s.maximumHeights;A(T)&&A(C)&&(T=new Float32Array(T),C=new Float32Array(C));let t,f,l,N=O.length/2,ct=O.subarray(0,N),it=O.subarray(N,2*N);bt.zigZagDeltaDecode(ct,it);let rt=new Float64Array(N*3);for(t=0;t<N;++t){let e=ct[t],p=it[t],L=et.lerp(h.west,h.east,e/yt),k=et.lerp(h.south,h.north,p/yt),b=nt.fromRadians(L,k,0,Lt),Y=w.cartographicToCartesian(b,wt);o.pack(Y,rt,t*3)}let H=c.length,at=new Array(H),Z=new Array(H),ft=0,lt=0;for(t=0;t<H;++t)at[t]=ft,Z[t]=lt,ft+=c[t],lt+=i[t];let S=new Float32Array(N*3*2),_=new Uint16Array(N*2),D=new Uint32Array(Z.length),G=new Uint32Array(i.length),r=[],g={};for(t=0;t<H;++t)l=x[t],A(g[l])?(g[l].positionLength+=c[t],g[l].indexLength+=i[t],g[l].batchIds.push(t)):g[l]={positionLength:c[t],indexLength:i[t],offset:0,indexOffset:0,batchIds:[t]};let a,dt=0,ht=0;for(l in g)if(g.hasOwnProperty(l)){a=g[l],a.offset=dt,a.indexOffset=ht;let e=a.positionLength*2,p=a.indexLength*2+a.positionLength*6;dt+=e,ht+=p,a.indexLength=p}let U=[];for(l in g)g.hasOwnProperty(l)&&(a=g[l],U.push({color:R.fromRgba(parseInt(l)),offset:a.indexOffset,count:a.indexLength,batchIds:a.batchIds}));for(t=0;t<H;++t){l=x[t],a=g[l];let e=a.offset,p=e*3,L=e,k=at[t],b=c[t],Y=V[t],mt=ot,gt=st;A(T)&&A(C)&&(mt=T[t],gt=C[t]);let q=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,K=Number.POSITIVE_INFINITY,Q=Number.NEGATIVE_INFINITY;for(f=0;f<b;++f){let m=o.unpack(rt,k*3+f*3,wt);w.scaleToGeodeticSurface(m,m);let I=w.cartesianToCartographic(m,Lt),F=I.latitude,pt=I.longitude;q=Math.min(F,q),J=Math.max(F,J),K=Math.min(pt,K),Q=Math.max(pt,Q);let xt=w.geodeticSurfaceNormal(m,Ht),v=o.multiplyByScalar(xt,mt,St),$=o.add(m,v,Ut);v=o.multiplyByScalar(xt,gt,v);let tt=o.add(m,v,Ft);o.subtract(tt,P,tt),o.subtract($,P,$),o.pack(tt,S,p),o.pack($,S,p+3),_[L]=Y,_[L+1]=Y,p+=6,L+=2}h=Mt,h.west=K,h.east=Q,h.south=q,h.north=J,B[t]=M.fromRectangle(h,ot,st,w);let d=a.indexOffset,X=Z[t],Ot=i[t];for(D[t]=d,f=0;f<Ot;f+=3){let m=n[X+f]-k,I=n[X+f+1]-k,F=n[X+f+2]-k;r[d++]=m*2+e,r[d++]=I*2+e,r[d++]=F*2+e,r[d++]=F*2+1+e,r[d++]=I*2+1+e,r[d++]=m*2+1+e}for(f=0;f<b;++f){let m=f,I=(f+1)%b;r[d++]=m*2+1+e,r[d++]=I*2+e,r[d++]=m*2+e,r[d++]=m*2+1+e,r[d++]=I*2+1+e,r[d++]=I*2+e}a.offset+=b*2,a.indexOffset=d,G[t]=d-D[t]}r=W.createTypedArray(S.length/3,r);let At=U.length;for(let e=0;e<At;++e){let p=U[e].batchIds,L=0,k=p.length;for(let b=0;b<k;++b)L+=G[p[b]];U[e].count=L}let Et=r.BYTES_PER_ELEMENT===2?W.UNSIGNED_SHORT:W.UNSIGNED_INT,ut=Ct(Et,B,U);return u.push(S.buffer,r.buffer,D.buffer,G.buffer,_.buffer,ut.buffer),{positions:S.buffer,indices:r.buffer,indexOffsets:D.buffer,indexCounts:G.buffer,batchIds:_.buffer,packedBuffer:ut.buffer}}var Jt=It(Rt);export{Jt as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolylines.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolylines.js index 47bd4952e..ec814f74e 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolylines.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVectorTilePolylines.js @@ -1,74 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -!function(){define("Core/defined",[],function(){"use strict";function t(t){return void 0!==t&&null!==t}return t}),define("Core/DeveloperError",["./defined"],function(t){"use strict";function e(t){this.name="DeveloperError",this.message=t;var e;try{throw new Error}catch(t){e=t.stack}this.stack=e}return t(Object.create)&&(e.prototype=Object.create(Error.prototype),e.prototype.constructor=e),e.prototype.toString=function(){var e=this.name+": "+this.message;return t(this.stack)&&(e+="\n"+this.stack.toString()),e},e.throwInstantiationError=function(){throw new e("This function defines an interface and should not be called directly.")},e}),define("Core/Check",["./defined","./DeveloperError"],function(t,e){"use strict";function n(t){return t+" is required, actual value was undefined"}function r(t,e,n){return"Expected "+n+" to be typeof "+e+", actual typeof was "+t}var a={};return a.typeOf={},a.defined=function(r,a){if(!t(a))throw new e(n(r))},a.typeOf.func=function(t,n){if("function"!=typeof n)throw new e(r(typeof n,"function",t))},a.typeOf.string=function(t,n){if("string"!=typeof n)throw new e(r(typeof n,"string",t))},a.typeOf.number=function(t,n){if("number"!=typeof n)throw new e(r(typeof n,"number",t))},a.typeOf.number.lessThan=function(t,n,r){if(a.typeOf.number(t,n),n>=r)throw new e("Expected "+t+" to be less than "+r+", actual value was "+n)},a.typeOf.number.lessThanOrEquals=function(t,n,r){if(a.typeOf.number(t,n),n>r)throw new e("Expected "+t+" to be less than or equal to "+r+", actual value was "+n)},a.typeOf.number.greaterThan=function(t,n,r){if(a.typeOf.number(t,n),n<=r)throw new e("Expected "+t+" to be greater than "+r+", actual value was "+n)},a.typeOf.number.greaterThanOrEquals=function(t,n,r){if(a.typeOf.number(t,n),n<r)throw new e("Expected "+t+" to be greater than or equal to"+r+", actual value was "+n)},a.typeOf.object=function(t,n){if("object"!=typeof n)throw new e(r(typeof n,"object",t))},a.typeOf.bool=function(t,n){if("boolean"!=typeof n)throw new e(r(typeof n,"boolean",t))},a.typeOf.number.equals=function(t,n,r,E){if(a.typeOf.number(t,r),a.typeOf.number(n,E),r!==E)throw new e(t+" must be equal to "+n+", the actual values are "+r+" and "+E)},a}),define("Core/freezeObject",["./defined"],function(t){"use strict";var e=Object.freeze;return t(e)||(e=function(t){return t}),e}),define("Core/defaultValue",["./freezeObject"],function(t){"use strict";function e(t,e){return void 0!==t&&null!==t?t:e}return e.EMPTY_OBJECT=t({}),e}),define("ThirdParty/mersenne-twister",[],function(){var t=function(t){void 0==t&&(t=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(t)};return t.prototype.init_genrand=function(t){for(this.mt[0]=t>>>0,this.mti=1;this.mti<this.N;this.mti++){var t=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&t)>>>16)<<16)+1812433253*(65535&t)+this.mti,this.mt[this.mti]>>>=0}},t.prototype.genrand_int32=function(){var t,e=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)t=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^t>>>1^e[1&t];for(;n<this.N-1;n++)t=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^t>>>1^e[1&t];t=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^t>>>1^e[1&t],this.mti=0}return t=this.mt[this.mti++],t^=t>>>11,t^=t<<7&2636928640,t^=t<<15&4022730752,(t^=t>>>18)>>>0},t.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},t}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(t,e,n,r,a){"use strict";var E={};E.EPSILON1=.1,E.EPSILON2=.01,E.EPSILON3=.001,E.EPSILON4=1e-4,E.EPSILON5=1e-5,E.EPSILON6=1e-6,E.EPSILON7=1e-7,E.EPSILON8=1e-8,E.EPSILON9=1e-9,E.EPSILON10=1e-10,E.EPSILON11=1e-11,E.EPSILON12=1e-12,E.EPSILON13=1e-13,E.EPSILON14=1e-14,E.EPSILON15=1e-15,E.EPSILON16=1e-16,E.EPSILON17=1e-17,E.EPSILON18=1e-18,E.EPSILON19=1e-19,E.EPSILON20=1e-20,E.EPSILON21=1e-21,E.GRAVITATIONALPARAMETER=3986004418e5,E.SOLAR_RADIUS=6955e5,E.LUNAR_RADIUS=1737400,E.SIXTY_FOUR_KILOBYTES=65536,E.sign=n(Math.sign,function(t){return t=+t,0===t||t!==t?t:t>0?1:-1}),E.signNotZero=function(t){return t<0?-1:1},E.toSNorm=function(t,e){return e=n(e,255),Math.round((.5*E.clamp(t,-1,1)+.5)*e)},E.fromSNorm=function(t,e){return e=n(e,255),E.clamp(t,0,e)/e*2-1},E.normalize=function(t,e,n){return n=Math.max(n-e,0),0===n?0:E.clamp((t-e)/n,0,1)},E.sinh=n(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2}),E.cosh=n(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2}),E.lerp=function(t,e,n){return(1-n)*t+n*e},E.PI=Math.PI,E.ONE_OVER_PI=1/Math.PI,E.PI_OVER_TWO=Math.PI/2,E.PI_OVER_THREE=Math.PI/3,E.PI_OVER_FOUR=Math.PI/4,E.PI_OVER_SIX=Math.PI/6,E.THREE_PI_OVER_TWO=3*Math.PI/2,E.TWO_PI=2*Math.PI,E.ONE_OVER_TWO_PI=1/(2*Math.PI),E.RADIANS_PER_DEGREE=Math.PI/180,E.DEGREES_PER_RADIAN=180/Math.PI,E.RADIANS_PER_ARCSECOND=E.RADIANS_PER_DEGREE/3600,E.toRadians=function(t){return t*E.RADIANS_PER_DEGREE},E.toDegrees=function(t){return t*E.DEGREES_PER_RADIAN},E.convertLongitudeRange=function(t){var e=E.TWO_PI,n=t-Math.floor(t/e)*e;return n<-Math.PI?n+e:n>=Math.PI?n-e:n},E.clampToLatitudeRange=function(t){return E.clamp(t,-1*E.PI_OVER_TWO,E.PI_OVER_TWO)},E.negativePiToPi=function(t){return E.zeroToTwoPi(t+E.PI)-E.PI},E.zeroToTwoPi=function(t){var e=E.mod(t,E.TWO_PI);return Math.abs(e)<E.EPSILON14&&Math.abs(t)>E.EPSILON14?E.TWO_PI:e},E.mod=function(t,e){return(t%e+e)%e},E.equalsEpsilon=function(t,e,r,a){a=n(a,r);var E=Math.abs(t-e);return E<=a||E<=r*Math.max(Math.abs(t),Math.abs(e))},E.lessThan=function(t,e,n){return t-e<-n},E.lessThanOrEquals=function(t,e,n){return t-e<n},E.greaterThan=function(t,e,n){return t-e>n},E.greaterThanOrEquals=function(t,e,n){return t-e>-n};var i=[1];E.factorial=function(t){var e=i.length;if(t>=e)for(var n=i[e-1],r=e;r<=t;r++)i.push(n*r);return i[t]},E.incrementWrap=function(t,e,r){return r=n(r,0),++t,t>e&&(t=r),t},E.isPowerOfTwo=function(t){return 0!==t&&0==(t&t-1)},E.nextPowerOfTwo=function(t){return--t,t|=t>>1,t|=t>>2,t|=t>>4,t|=t>>8,t|=t>>16,++t},E.clamp=function(t,e,n){return t<e?e:t>n?n:t};var o=new t;return E.setRandomNumberSeed=function(e){o=new t(e)},E.nextRandomNumber=function(){return o.random()},E.randomBetween=function(t,e){return E.nextRandomNumber()*(e-t)+t},E.acosClamped=function(t){return Math.acos(E.clamp(t,-1,1))},E.asinClamped=function(t){return Math.asin(E.clamp(t,-1,1))},E.chordLength=function(t,e){return 2*e*Math.sin(.5*t)},E.logBase=function(t,e){return Math.log(t)/Math.log(e)},E.cbrt=n(Math.cbrt,function(t){var e=Math.pow(Math.abs(t),1/3);return t<0?-e:e}),E.log2=n(Math.log2,function(t){return Math.log(t)*Math.LOG2E}),E.fog=function(t,e){var n=t*e;return 1-Math.exp(-n*n)},E.fastApproximateAtan=function(t){return t*(-.1784*Math.abs(t)-.0663*t*t+1.0301)},E.fastApproximateAtan2=function(t,e){var n,r,a=Math.abs(t);n=Math.abs(e),r=Math.max(a,n),n=Math.min(a,n);var i=n/r;return a=E.fastApproximateAtan(i),a=Math.abs(e)>Math.abs(t)?E.PI_OVER_TWO-a:a,a=t<0?E.PI-a:a,a=e<0?-a:a},E}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(t,e,n,r,a,E){"use strict";function i(t,n){this.x=e(t,0),this.y=e(n,0)}i.fromElements=function(t,e,r){return n(r)?(r.x=t,r.y=e,r):new i(t,e)},i.clone=function(t,e){if(n(t))return n(e)?(e.x=t.x,e.y=t.y,e):new i(t.x,t.y)},i.fromCartesian3=i.clone,i.fromCartesian4=i.clone,i.packedLength=2,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.x,n[r]=t.y,n},i.unpack=function(t,r,a){return r=e(r,0),n(a)||(a=new i),a.x=t[r++],a.y=t[r],a},i.packArray=function(t,e){var r=t.length;n(e)?e.length=2*r:e=new Array(2*r);for(var a=0;a<r;++a)i.pack(t[a],e,2*a);return e},i.unpackArray=function(t,e){var r=t.length;n(e)?e.length=r/2:e=new Array(r/2);for(var a=0;a<r;a+=2){var E=a/2;e[E]=i.unpack(t,a,e[E])}return e},i.fromArray=i.unpack,i.maximumComponent=function(t){return Math.max(t.x,t.y)},i.minimumComponent=function(t){return Math.min(t.x,t.y)},i.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n},i.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n},i.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y},i.magnitude=function(t){return Math.sqrt(i.magnitudeSquared(t))};var o=new i;i.distance=function(t,e){return i.subtract(t,e,o),i.magnitude(o)},i.distanceSquared=function(t,e){return i.subtract(t,e,o),i.magnitudeSquared(o)},i.normalize=function(t,e){var n=i.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e},i.dot=function(t,e){return t.x*e.x+t.y*e.y},i.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n},i.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n},i.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n},i.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n},i.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n},i.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n},i.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e},i.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e};var _=new i;i.lerp=function(t,e,n,r){return i.multiplyByScalar(e,n,_),r=i.multiplyByScalar(t,1-n,r),i.add(_,r,r)};var u=new i,R=new i;i.angleBetween=function(t,e){return i.normalize(t,u),i.normalize(e,R),E.acosClamped(i.dot(u,R))};var T=new i;return i.mostOrthogonalAxis=function(t,e){var n=i.normalize(t,T);return i.abs(n,n),e=n.x<=n.y?i.clone(i.UNIT_X,e):i.clone(i.UNIT_Y,e)},i.equals=function(t,e){return t===e||n(t)&&n(e)&&t.x===e.x&&t.y===e.y},i.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]},i.equalsEpsilon=function(t,e,r,a){return t===e||n(t)&&n(e)&&E.equalsEpsilon(t.x,e.x,r,a)&&E.equalsEpsilon(t.y,e.y,r,a)},i.ZERO=a(new i(0,0)),i.UNIT_X=a(new i(1,0)),i.UNIT_Y=a(new i(0,1)),i.prototype.clone=function(t){return i.clone(this,t)},i.prototype.equals=function(t){return i.equals(this,t)},i.prototype.equalsEpsilon=function(t,e,n){return i.equalsEpsilon(this,t,e,n)},i.prototype.toString=function(){return"("+this.x+", "+this.y+")"},i}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(t,e,n,r,a,E){"use strict";function i(t,n,r){this.x=e(t,0),this.y=e(n,0),this.z=e(r,0)}i.fromSpherical=function(t,r){n(r)||(r=new i);var a=t.clock,E=t.cone,o=e(t.magnitude,1),_=o*Math.sin(E);return r.x=_*Math.cos(a),r.y=_*Math.sin(a),r.z=o*Math.cos(E),r},i.fromElements=function(t,e,r,a){return n(a)?(a.x=t,a.y=e,a.z=r,a):new i(t,e,r)},i.clone=function(t,e){if(n(t))return n(e)?(e.x=t.x,e.y=t.y,e.z=t.z,e):new i(t.x,t.y,t.z)},i.fromCartesian4=i.clone,i.packedLength=3,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.x,n[r++]=t.y,n[r]=t.z,n},i.unpack=function(t,r,a){return r=e(r,0),n(a)||(a=new i),a.x=t[r++],a.y=t[r++],a.z=t[r],a},i.packArray=function(t,e){var r=t.length;n(e)?e.length=3*r:e=new Array(3*r);for(var a=0;a<r;++a)i.pack(t[a],e,3*a);return e},i.unpackArray=function(t,e){var r=t.length;n(e)?e.length=r/3:e=new Array(r/3);for(var a=0;a<r;a+=3){var E=a/3;e[E]=i.unpack(t,a,e[E])}return e},i.fromArray=i.unpack,i.maximumComponent=function(t){return Math.max(t.x,t.y,t.z)},i.minimumComponent=function(t){return Math.min(t.x,t.y,t.z)},i.minimumByComponent=function(t,e,n){return n.x=Math.min(t.x,e.x),n.y=Math.min(t.y,e.y),n.z=Math.min(t.z,e.z),n},i.maximumByComponent=function(t,e,n){return n.x=Math.max(t.x,e.x),n.y=Math.max(t.y,e.y),n.z=Math.max(t.z,e.z),n},i.magnitudeSquared=function(t){return t.x*t.x+t.y*t.y+t.z*t.z},i.magnitude=function(t){return Math.sqrt(i.magnitudeSquared(t))};var o=new i;i.distance=function(t,e){return i.subtract(t,e,o),i.magnitude(o)},i.distanceSquared=function(t,e){return i.subtract(t,e,o),i.magnitudeSquared(o)},i.normalize=function(t,e){var n=i.magnitude(t);return e.x=t.x/n,e.y=t.y/n,e.z=t.z/n,e},i.dot=function(t,e){return t.x*e.x+t.y*e.y+t.z*e.z},i.multiplyComponents=function(t,e,n){return n.x=t.x*e.x,n.y=t.y*e.y,n.z=t.z*e.z,n},i.divideComponents=function(t,e,n){return n.x=t.x/e.x,n.y=t.y/e.y,n.z=t.z/e.z,n},i.add=function(t,e,n){return n.x=t.x+e.x,n.y=t.y+e.y,n.z=t.z+e.z,n},i.subtract=function(t,e,n){return n.x=t.x-e.x,n.y=t.y-e.y,n.z=t.z-e.z,n},i.multiplyByScalar=function(t,e,n){return n.x=t.x*e,n.y=t.y*e,n.z=t.z*e,n},i.divideByScalar=function(t,e,n){return n.x=t.x/e,n.y=t.y/e,n.z=t.z/e,n},i.negate=function(t,e){return e.x=-t.x,e.y=-t.y,e.z=-t.z,e},i.abs=function(t,e){return e.x=Math.abs(t.x),e.y=Math.abs(t.y),e.z=Math.abs(t.z),e};var _=new i;i.lerp=function(t,e,n,r){return i.multiplyByScalar(e,n,_),r=i.multiplyByScalar(t,1-n,r),i.add(_,r,r)};var u=new i,R=new i;i.angleBetween=function(t,e){i.normalize(t,u),i.normalize(e,R);var n=i.dot(u,R),r=i.magnitude(i.cross(u,R,u));return Math.atan2(r,n)};var T=new i;i.mostOrthogonalAxis=function(t,e){var n=i.normalize(t,T);return i.abs(n,n),e=n.x<=n.y?n.x<=n.z?i.clone(i.UNIT_X,e):i.clone(i.UNIT_Z,e):n.y<=n.z?i.clone(i.UNIT_Y,e):i.clone(i.UNIT_Z,e)},i.projectVector=function(t,e,n){var r=i.dot(t,e)/i.dot(e,e);return i.multiplyByScalar(e,r,n)},i.equals=function(t,e){return t===e||n(t)&&n(e)&&t.x===e.x&&t.y===e.y&&t.z===e.z},i.equalsArray=function(t,e,n){return t.x===e[n]&&t.y===e[n+1]&&t.z===e[n+2]},i.equalsEpsilon=function(t,e,r,a){return t===e||n(t)&&n(e)&&E.equalsEpsilon(t.x,e.x,r,a)&&E.equalsEpsilon(t.y,e.y,r,a)&&E.equalsEpsilon(t.z,e.z,r,a)},i.cross=function(t,e,n){var r=t.x,a=t.y,E=t.z,i=e.x,o=e.y,_=e.z,u=a*_-E*o,R=E*i-r*_,T=r*o-a*i;return n.x=u,n.y=R,n.z=T,n},i.midpoint=function(t,e,n){return n.x=.5*(t.x+e.x),n.y=.5*(t.y+e.y),n.z=.5*(t.z+e.z),n},i.fromDegrees=function(t,e,n,r,a){return t=E.toRadians(t),e=E.toRadians(e),i.fromRadians(t,e,n,r,a)};var A=new i,s=new i,c=new i(40680631590769,40680631590769,40408299984661.445);return i.fromRadians=function(t,r,a,E,o){a=e(a,0);var _=n(E)?E.radiiSquared:c,u=Math.cos(r);A.x=u*Math.cos(t),A.y=u*Math.sin(t),A.z=Math.sin(r),A=i.normalize(A,A),i.multiplyComponents(_,A,s);var R=Math.sqrt(i.dot(A,s));return s=i.divideByScalar(s,R,s),A=i.multiplyByScalar(A,a,A),n(o)||(o=new i),i.add(s,A,o)},i.fromDegreesArray=function(t,e,r){var a=t.length;n(r)?r.length=a/2:r=new Array(a/2);for(var E=0;E<a;E+=2){var o=t[E],_=t[E+1],u=E/2;r[u]=i.fromDegrees(o,_,0,e,r[u])}return r},i.fromRadiansArray=function(t,e,r){var a=t.length;n(r)?r.length=a/2:r=new Array(a/2);for(var E=0;E<a;E+=2){var o=t[E],_=t[E+1],u=E/2;r[u]=i.fromRadians(o,_,0,e,r[u])}return r},i.fromDegreesArrayHeights=function(t,e,r){var a=t.length;n(r)?r.length=a/3:r=new Array(a/3);for(var E=0;E<a;E+=3){var o=t[E],_=t[E+1],u=t[E+2],R=E/3;r[R]=i.fromDegrees(o,_,u,e,r[R])}return r},i.fromRadiansArrayHeights=function(t,e,r){var a=t.length;n(r)?r.length=a/3:r=new Array(a/3);for(var E=0;E<a;E+=3){var o=t[E],_=t[E+1],u=t[E+2],R=E/3;r[R]=i.fromRadians(o,_,u,e,r[R])}return r},i.ZERO=a(new i(0,0,0)),i.UNIT_X=a(new i(1,0,0)),i.UNIT_Y=a(new i(0,1,0)),i.UNIT_Z=a(new i(0,0,1)),i.prototype.clone=function(t){return i.clone(this,t)},i.prototype.equals=function(t){return i.equals(this,t)},i.prototype.equalsEpsilon=function(t,e,n){return i.equalsEpsilon(this,t,e,n)},i.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},i}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(t,e,n,r,a,E){"use strict";function i(t){return R[0]=t,R[0]}function o(t){return t>>1^-(1&t)}var _={};_.octEncodeInRange=function(t,e,n){if(n.x=t.x/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),n.y=t.y/(Math.abs(t.x)+Math.abs(t.y)+Math.abs(t.z)),t.z<0){var r=n.x,a=n.y;n.x=(1-Math.abs(a))*E.signNotZero(r),n.y=(1-Math.abs(r))*E.signNotZero(a)}return n.x=E.toSNorm(n.x,e),n.y=E.toSNorm(n.y,e),n},_.octEncode=function(t,e){return _.octEncodeInRange(t,255,e)};var u=new t,R=new Uint8Array(1);_.octEncodeToCartesian4=function(t,e){return _.octEncodeInRange(t,65535,u),e.x=i(u.x*(1/256)),e.y=i(u.x),e.z=i(u.y*(1/256)),e.w=i(u.y),e},_.octDecodeInRange=function(t,n,r,a){if(a.x=E.fromSNorm(t,r),a.y=E.fromSNorm(n,r),a.z=1-(Math.abs(a.x)+Math.abs(a.y)),a.z<0){var i=a.x;a.x=(1-Math.abs(a.y))*E.signNotZero(i),a.y=(1-Math.abs(i))*E.signNotZero(a.y)}return e.normalize(a,a)},_.octDecode=function(t,e,n){return _.octDecodeInRange(t,e,255,n)},_.octDecodeFromCartesian4=function(t,e){var n=t.x,r=t.y,a=t.z,E=t.w,i=256*n+r,o=256*a+E;return _.octDecodeInRange(i,o,65535,e)},_.octPackFloat=function(t){return 256*t.x+t.y};var T=new t;return _.octEncodeFloat=function(t){return _.octEncode(t,T),_.octPackFloat(T)},_.octDecodeFloat=function(t,e){var n=t/256,r=Math.floor(n),a=256*(n-r);return _.octDecode(r,a,e)},_.octPack=function(t,e,n,r){var a=_.octEncodeFloat(t),E=_.octEncodeFloat(e),i=_.octEncode(n,T);return r.x=65536*i.x+a,r.y=65536*i.y+E,r},_.octUnpack=function(t,e,n,r){var a=t.x/65536,E=Math.floor(a),i=65536*(a-E);a=t.y/65536;var o=Math.floor(a),u=65536*(a-o);_.octDecodeFloat(i,e),_.octDecodeFloat(u,n),_.octDecode(E,o,r)},_.compressTextureCoordinates=function(t){return 4096*(4095*t.x|0)+(4095*t.y|0)},_.decompressTextureCoordinates=function(t,e){var n=t/4096,r=Math.floor(n);return e.x=r/4095,e.y=(t-4096*r)/4095,e},_.zigZagDeltaDecode=function(t,e,n){for(var a=t.length,E=0,i=0,_=0,u=0;u<a;++u)E+=o(t[u]),i+=o(e[u]),t[u]=E,e[u]=i,r(n)&&(_+=o(n[u]),n[u]=_)},_}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(t,e,n,r){"use strict";function a(n,a,o,_,u){var R=n.x,T=n.y,A=n.z,s=a.x,c=a.y,N=a.z,I=R*R*s*s,h=T*T*c*c,f=A*A*N*N,S=I+h+f,M=Math.sqrt(1/S),O=t.multiplyByScalar(n,M,E);if(S<_)return isFinite(M)?t.clone(O,u):void 0;var d=o.x,C=o.y,l=o.z,U=i;U.x=O.x*d*2,U.y=O.y*C*2,U.z=O.z*l*2;var F,P,L,m,D,p,y,B,g,v,w,G=(1-M)*t.magnitude(n)/(.5*t.magnitude(U)),x=0;do{G-=x,L=1/(1+G*d),m=1/(1+G*C),D=1/(1+G*l),p=L*L,y=m*m,B=D*D,g=p*L,v=y*m,w=B*D,F=I*p+h*y+f*B-1,P=I*g*d+h*v*C+f*w*l;x=F/(-2*P)}while(Math.abs(F)>r.EPSILON12);return e(u)?(u.x=R*L,u.y=T*m,u.z=A*D,u):new t(R*L,T*m,A*D)}var E=new t,i=new t;return a}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(t,e,n,r,a,E,i){"use strict";function o(t,e,r){this.longitude=n(t,0),this.latitude=n(e,0),this.height=n(r,0)}o.fromRadians=function(t,e,a,E){return a=n(a,0),r(E)?(E.longitude=t,E.latitude=e,E.height=a,E):new o(t,e,a)},o.fromDegrees=function(t,e,n,r){return t=E.toRadians(t),e=E.toRadians(e),o.fromRadians(t,e,n,r)};var _=new t,u=new t,R=new t,T=new t(1/6378137,1/6378137,1/6356752.314245179),A=new t(1/40680631590769,1/40680631590769,1/40408299984661.445),s=E.EPSILON1;return o.fromCartesian=function(e,n,a){var c=r(n)?n.oneOverRadii:T,N=r(n)?n.oneOverRadiiSquared:A,I=r(n)?n._centerToleranceSquared:s,h=i(e,c,N,I,u);if(r(h)){var f=t.multiplyComponents(h,N,_);f=t.normalize(f,f);var S=t.subtract(e,h,R),M=Math.atan2(f.y,f.x),O=Math.asin(f.z),d=E.sign(t.dot(S,e))*t.magnitude(S);return r(a)?(a.longitude=M,a.latitude=O,a.height=d,a):new o(M,O,d)}},o.toCartesian=function(e,n,r){return t.fromRadians(e.longitude,e.latitude,e.height,n,r)},o.clone=function(t,e){if(r(t))return r(e)?(e.longitude=t.longitude,e.latitude=t.latitude,e.height=t.height,e):new o(t.longitude,t.latitude,t.height)},o.equals=function(t,e){return t===e||r(t)&&r(e)&&t.longitude===e.longitude&&t.latitude===e.latitude&&t.height===e.height},o.equalsEpsilon=function(t,e,n){return t===e||r(t)&&r(e)&&Math.abs(t.longitude-e.longitude)<=n&&Math.abs(t.latitude-e.latitude)<=n&&Math.abs(t.height-e.height)<=n},o.ZERO=a(new o(0,0,0)),o.prototype.clone=function(t){return o.clone(this,t)},o.prototype.equals=function(t){return o.equals(this,t)},o.prototype.equalsEpsilon=function(t,e){return o.equalsEpsilon(this,t,e)},o.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},o}),define("Core/defineProperties",["./defined"],function(t){"use strict";var e=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(t){return!1}}(),n=Object.defineProperties;return e&&t(n)||(n=function(t){return t}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(t,e,n,r,a,E,i,o,_,u){"use strict";function R(e,n,a,E){n=r(n,0),a=r(a,0),E=r(E,0),e._radii=new t(n,a,E),e._radiiSquared=new t(n*n,a*a,E*E),e._radiiToTheFourth=new t(n*n*n*n,a*a*a*a,E*E*E*E),e._oneOverRadii=new t(0===n?0:1/n,0===a?0:1/a,0===E?0:1/E),e._oneOverRadiiSquared=new t(0===n?0:1/(n*n),0===a?0:1/(a*a),0===E?0:1/(E*E)),e._minimumRadius=Math.min(n,a,E),e._maximumRadius=Math.max(n,a,E),e._centerToleranceSquared=_.EPSILON1,0!==e._radiiSquared.z&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function T(t,e,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,R(this,t,e,n)}E(T.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),T.clone=function(e,n){if(a(e)){var r=e._radii;return a(n)?(t.clone(r,n._radii),t.clone(e._radiiSquared,n._radiiSquared),t.clone(e._radiiToTheFourth,n._radiiToTheFourth),t.clone(e._oneOverRadii,n._oneOverRadii),t.clone(e._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=e._minimumRadius,n._maximumRadius=e._maximumRadius,n._centerToleranceSquared=e._centerToleranceSquared,n):new T(r.x,r.y,r.z)}},T.fromCartesian3=function(t,e){return a(e)||(e=new T),a(t)?(R(e,t.x,t.y,t.z),e):e},T.WGS84=o(new T(6378137,6378137,6356752.314245179)),T.UNIT_SPHERE=o(new T(1,1,1)),T.MOON=o(new T(_.LUNAR_RADIUS,_.LUNAR_RADIUS,_.LUNAR_RADIUS)),T.prototype.clone=function(t){return T.clone(this,t)},T.packedLength=t.packedLength,T.pack=function(e,n,a){return a=r(a,0),t.pack(e._radii,n,a),n},T.unpack=function(e,n,a){n=r(n,0);var E=t.unpack(e,n);return T.fromCartesian3(E,a)},T.prototype.geocentricSurfaceNormal=t.normalize,T.prototype.geodeticSurfaceNormalCartographic=function(e,n){var r=e.longitude,E=e.latitude,i=Math.cos(E),o=i*Math.cos(r),_=i*Math.sin(r),u=Math.sin(E);return a(n)||(n=new t),n.x=o,n.y=_,n.z=u,t.normalize(n,n)},T.prototype.geodeticSurfaceNormal=function(e,n){return a(n)||(n=new t),n=t.multiplyComponents(e,this._oneOverRadiiSquared,n),t.normalize(n,n)};var A=new t,s=new t;T.prototype.cartographicToCartesian=function(e,n){var r=A,E=s;this.geodeticSurfaceNormalCartographic(e,r),t.multiplyComponents(this._radiiSquared,r,E);var i=Math.sqrt(t.dot(r,E));return t.divideByScalar(E,i,E),t.multiplyByScalar(r,e.height,r),a(n)||(n=new t),t.add(E,r,n)},T.prototype.cartographicArrayToCartesianArray=function(t,e){var n=t.length;a(e)?e.length=n:e=new Array(n);for(var r=0;r<n;r++)e[r]=this.cartographicToCartesian(t[r],e[r]);return e};var c=new t,N=new t,I=new t;return T.prototype.cartesianToCartographic=function(n,r){var E=this.scaleToGeodeticSurface(n,N);if(a(E)){var i=this.geodeticSurfaceNormal(E,c),o=t.subtract(n,E,I),u=Math.atan2(i.y,i.x),R=Math.asin(i.z),T=_.sign(t.dot(o,n))*t.magnitude(o);return a(r)?(r.longitude=u,r.latitude=R,r.height=T,r):new e(u,R,T)}},T.prototype.cartesianArrayToCartographicArray=function(t,e){var n=t.length;a(e)?e.length=n:e=new Array(n);for(var r=0;r<n;++r)e[r]=this.cartesianToCartographic(t[r],e[r]);return e},T.prototype.scaleToGeodeticSurface=function(t,e){return u(t,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,e)},T.prototype.scaleToGeocentricSurface=function(e,n){a(n)||(n=new t);var r=e.x,E=e.y,i=e.z,o=this._oneOverRadiiSquared,_=1/Math.sqrt(r*r*o.x+E*E*o.y+i*i*o.z);return t.multiplyByScalar(e,_,n)},T.prototype.transformPositionToScaledSpace=function(e,n){return a(n)||(n=new t),t.multiplyComponents(e,this._oneOverRadii,n)},T.prototype.transformPositionFromScaledSpace=function(e,n){return a(n)||(n=new t),t.multiplyComponents(e,this._radii,n)},T.prototype.equals=function(e){return this===e||a(e)&&t.equals(this._radii,e._radii)},T.prototype.toString=function(){return this._radii.toString()},T.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,n,E){n=r(n,0);var i=this._squaredXOverSquaredZ;if(a(E)||(E=new t),E.x=0,E.y=0,E.z=e.z*(1-i),!(Math.abs(E.z)>=this._radii.z-n))return E},T}),define("Core/WebGLConstants",["./freezeObject"],function(t){"use strict";return t({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001, -TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(t,e,n,r,a){"use strict";var E={UNSIGNED_BYTE:a.UNSIGNED_BYTE,UNSIGNED_SHORT:a.UNSIGNED_SHORT,UNSIGNED_INT:a.UNSIGNED_INT};return E.getSizeInBytes=function(t){switch(t){case E.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case E.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case E.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},E.fromSizeInBytes=function(t){switch(t){case 2:return E.UNSIGNED_SHORT;case 4:return E.UNSIGNED_INT;case 1:return E.UNSIGNED_BYTE}},E.validate=function(e){return t(e)&&(e===E.UNSIGNED_BYTE||e===E.UNSIGNED_SHORT||e===E.UNSIGNED_INT)},E.createTypedArray=function(t,e){return t>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(e):new Uint16Array(e)},E.createTypedArrayFromArrayBuffer=function(t,e,n,a){return t>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(e,n,a):new Uint16Array(e,n,a)},n(E)}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(t,e,n,r,a,E,i,o){"use strict";function _(t,e,r,a){this.west=n(t,0),this.south=n(e,0),this.east=n(r,0),this.north=n(a,0)}a(_.prototype,{width:{get:function(){return _.computeWidth(this)}},height:{get:function(){return _.computeHeight(this)}}}),_.packedLength=4,_.pack=function(t,e,r){return r=n(r,0),e[r++]=t.west,e[r++]=t.south,e[r++]=t.east,e[r]=t.north,e},_.unpack=function(t,e,a){return e=n(e,0),r(a)||(a=new _),a.west=t[e++],a.south=t[e++],a.east=t[e++],a.north=t[e],a},_.computeWidth=function(t){var e=t.east,n=t.west;return e<n&&(e+=o.TWO_PI),e-n},_.computeHeight=function(t){return t.north-t.south},_.fromDegrees=function(t,e,a,E,i){return t=o.toRadians(n(t,0)),e=o.toRadians(n(e,0)),a=o.toRadians(n(a,0)),E=o.toRadians(n(E,0)),r(i)?(i.west=t,i.south=e,i.east=a,i.north=E,i):new _(t,e,a,E)},_.fromRadians=function(t,e,a,E,i){return r(i)?(i.west=n(t,0),i.south=n(e,0),i.east=n(a,0),i.north=n(E,0),i):new _(t,e,a,E)},_.fromCartographicArray=function(t,e){for(var n=Number.MAX_VALUE,a=-Number.MAX_VALUE,E=Number.MAX_VALUE,i=-Number.MAX_VALUE,u=Number.MAX_VALUE,R=-Number.MAX_VALUE,T=0,A=t.length;T<A;T++){var s=t[T];n=Math.min(n,s.longitude),a=Math.max(a,s.longitude),u=Math.min(u,s.latitude),R=Math.max(R,s.latitude);var c=s.longitude>=0?s.longitude:s.longitude+o.TWO_PI;E=Math.min(E,c),i=Math.max(i,c)}return a-n>i-E&&(n=E,a=i,a>o.PI&&(a-=o.TWO_PI),n>o.PI&&(n-=o.TWO_PI)),r(e)?(e.west=n,e.south=u,e.east=a,e.north=R,e):new _(n,u,a,R)},_.fromCartesianArray=function(t,e,a){e=n(e,E.WGS84);for(var i=Number.MAX_VALUE,u=-Number.MAX_VALUE,R=Number.MAX_VALUE,T=-Number.MAX_VALUE,A=Number.MAX_VALUE,s=-Number.MAX_VALUE,c=0,N=t.length;c<N;c++){var I=e.cartesianToCartographic(t[c]);i=Math.min(i,I.longitude),u=Math.max(u,I.longitude),A=Math.min(A,I.latitude),s=Math.max(s,I.latitude);var h=I.longitude>=0?I.longitude:I.longitude+o.TWO_PI;R=Math.min(R,h),T=Math.max(T,h)}return u-i>T-R&&(i=R,u=T,u>o.PI&&(u-=o.TWO_PI),i>o.PI&&(i-=o.TWO_PI)),r(a)?(a.west=i,a.south=A,a.east=u,a.north=s,a):new _(i,A,u,s)},_.clone=function(t,e){if(r(t))return r(e)?(e.west=t.west,e.south=t.south,e.east=t.east,e.north=t.north,e):new _(t.west,t.south,t.east,t.north)},_.equalsEpsilon=function(t,e,n){return t===e||r(t)&&r(e)&&Math.abs(t.west-e.west)<=n&&Math.abs(t.south-e.south)<=n&&Math.abs(t.east-e.east)<=n&&Math.abs(t.north-e.north)<=n},_.prototype.clone=function(t){return _.clone(this,t)},_.prototype.equals=function(t){return _.equals(this,t)},_.equals=function(t,e){return t===e||r(t)&&r(e)&&t.west===e.west&&t.south===e.south&&t.east===e.east&&t.north===e.north},_.prototype.equalsEpsilon=function(t,e){return _.equalsEpsilon(this,t,e)},_.validate=function(t){},_.southwest=function(e,n){return r(n)?(n.longitude=e.west,n.latitude=e.south,n.height=0,n):new t(e.west,e.south)},_.northwest=function(e,n){return r(n)?(n.longitude=e.west,n.latitude=e.north,n.height=0,n):new t(e.west,e.north)},_.northeast=function(e,n){return r(n)?(n.longitude=e.east,n.latitude=e.north,n.height=0,n):new t(e.east,e.north)},_.southeast=function(e,n){return r(n)?(n.longitude=e.east,n.latitude=e.south,n.height=0,n):new t(e.east,e.south)},_.center=function(e,n){var a=e.east,E=e.west;a<E&&(a+=o.TWO_PI);var i=o.negativePiToPi(.5*(E+a)),_=.5*(e.south+e.north);return r(n)?(n.longitude=i,n.latitude=_,n.height=0,n):new t(i,_)},_.intersection=function(t,e,n){var a=t.east,E=t.west,i=e.east,u=e.west;a<E&&i>0?a+=o.TWO_PI:i<u&&a>0&&(i+=o.TWO_PI),a<E&&u<0?u+=o.TWO_PI:i<u&&E<0&&(E+=o.TWO_PI);var R=o.negativePiToPi(Math.max(E,u)),T=o.negativePiToPi(Math.min(a,i));if(!((t.west<t.east||e.west<e.east)&&T<=R)){var A=Math.max(t.south,e.south),s=Math.min(t.north,e.north);if(!(A>=s))return r(n)?(n.west=R,n.south=A,n.east=T,n.north=s,n):new _(R,A,T,s)}},_.simpleIntersection=function(t,e,n){var a=Math.max(t.west,e.west),E=Math.max(t.south,e.south),i=Math.min(t.east,e.east),o=Math.min(t.north,e.north);if(!(E>=o||a>=i))return r(n)?(n.west=a,n.south=E,n.east=i,n.north=o,n):new _(a,E,i,o)},_.union=function(t,e,n){r(n)||(n=new _);var a=t.east,E=t.west,i=e.east,u=e.west;a<E&&i>0?a+=o.TWO_PI:i<u&&a>0&&(i+=o.TWO_PI),a<E&&u<0?u+=o.TWO_PI:i<u&&E<0&&(E+=o.TWO_PI);var R=o.convertLongitudeRange(Math.min(E,u)),T=o.convertLongitudeRange(Math.max(a,i));return n.west=R,n.south=Math.min(t.south,e.south),n.east=T,n.north=Math.max(t.north,e.north),n},_.expand=function(t,e,n){return r(n)||(n=new _),n.west=Math.min(t.west,e.longitude),n.south=Math.min(t.south,e.latitude),n.east=Math.max(t.east,e.longitude),n.north=Math.max(t.north,e.latitude),n},_.contains=function(t,e){var n=e.longitude,r=e.latitude,a=t.west,E=t.east;return E<a&&(E+=o.TWO_PI,n<0&&(n+=o.TWO_PI)),(n>a||o.equalsEpsilon(n,a,o.EPSILON14))&&(n<E||o.equalsEpsilon(n,E,o.EPSILON14))&&r>=t.south&&r<=t.north};var u=new t;return _.subsample=function(t,e,a,i){e=n(e,E.WGS84),a=n(a,0),r(i)||(i=[]);var R=0,T=t.north,A=t.south,s=t.east,c=t.west,N=u;N.height=a,N.longitude=c,N.latitude=T,i[R]=e.cartographicToCartesian(N,i[R]),R++,N.longitude=s,i[R]=e.cartographicToCartesian(N,i[R]),R++,N.latitude=A,i[R]=e.cartographicToCartesian(N,i[R]),R++,N.longitude=c,i[R]=e.cartographicToCartesian(N,i[R]),R++,N.latitude=T<0?T:A>0?A:0;for(var I=1;I<8;++I)N.longitude=-Math.PI+I*o.PI_OVER_TWO,_.contains(t,N)&&(i[R]=e.cartographicToCartesian(N,i[R]),R++);return 0===N.latitude&&(N.longitude=c,i[R]=e.cartographicToCartesian(N,i[R]),R++,N.longitude=s,i[R]=e.cartographicToCartesian(N,i[R]),R++),i.length=R,i},_.MAX_VALUE=i(new _(-Math.PI,-o.PI_OVER_TWO,Math.PI,o.PI_OVER_TWO)),_}),function(t){"use strict";t("ThirdParty/when",[],function(){function t(t,n,r,a){return e(t).then(n,r,a)}function e(t){var e,n;return t instanceof r?e=t:o(t)?(n=i(),t.then(function(t){n.resolve(t)},function(t){n.reject(t)},function(t){n.progress(t)}),e=n.promise):e=a(t),e}function n(e){return t(e,E)}function r(t){this.then=t}function a(t){return new r(function(n){try{return e(n?n(t):t)}catch(t){return E(t)}})}function E(t){return new r(function(n,r){try{return r?e(r(t)):E(t)}catch(t){return E(t)}})}function i(){function t(t,e,n){return A(t,e,n)}function n(t){return c(t)}function a(t){return c(E(t))}function o(t){return s(t)}var _,u,R,T,A,s,c;return u=new r(t),_={then:t,resolve:n,reject:a,progress:o,promise:u,resolver:{resolve:n,reject:a,progress:o}},R=[],T=[],A=function(t,e,n){var r,a;return r=i(),a="function"==typeof n?function(t){try{r.progress(n(t))}catch(t){r.progress(t)}}:function(t){r.progress(t)},R.push(function(n){n.then(t,e).then(r.resolve,r.reject,a)}),T.push(a),r.promise},s=function(t){return N(T,t),t},c=function(t){return t=e(t),A=t.then,c=e,s=h,N(R,t),T=R=O,t},_}function o(t){return t&&"function"==typeof t.then}function _(e,n,r,a,E){return I(2,arguments),t(e,function(e){function o(t){N(t)}function _(t){c(t)}var u,R,T,A,s,c,N,I,f,S;if(f=e.length>>>0,u=Math.max(0,Math.min(n,f)),T=[],R=f-u+1,A=[],s=i(),u)for(I=s.progress,N=function(t){A.push(t),--R||(c=N=h,s.reject(A))},c=function(t){T.push(t),--u||(c=N=h,s.resolve(T))},S=0;S<f;++S)S in e&&t(e[S],_,o,I);else s.resolve(T);return s.then(r,a,E)})}function u(t,e,n,r){function a(t){return e?e(t[0]):t[0]}return _(t,1,a,n,r)}function R(t,e,n,r){return I(1,arguments),A(t,f).then(e,n,r)}function T(){return A(arguments,f)}function A(e,n){return t(e,function(e){var r,a,E,o,_,u;if(E=a=e.length>>>0,r=[],u=i(),E)for(o=function(e,a){t(e,n).then(function(t){r[a]=t,--E||u.resolve(r)},u.reject)},_=0;_<a;_++)_ in e?o(e[_],_):--E;else u.resolve(r);return u.promise})}function s(e,n){var r=M.call(arguments,1);return t(e,function(e){var a;return a=e.length,r[0]=function(e,r,E){return t(e,function(e){return t(r,function(t){return n(e,t,E,a)})})},S.apply(e,r)})}function c(e,n,r){var a=arguments.length>2;return t(e,function(t){return t=a?r:t,n.resolve(t),t},function(t){return n.reject(t),E(t)},n.progress)}function N(t,e){for(var n,r=0;n=t[r++];)n(e)}function I(t,e){for(var n,r=e.length;r>t;)if(null!=(n=e[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function h(){}function f(t){return t}var S,M,O;return t.defer=i,t.resolve=e,t.reject=n,t.join=T,t.all=R,t.map=A,t.reduce=s,t.any=u,t.some=_,t.chain=c,t.isPromise=o,r.prototype={always:function(t,e){return this.then(t,t,e)},otherwise:function(t){return this.then(O,t)},yield:function(t){return this.then(function(){return t})},spread:function(t){return this.then(function(e){return R(e,function(e){return t.apply(O,e)})})}},M=[].slice,S=[].reduce||function(t){var e,n,r,a,E;if(E=0,e=Object(this),a=e.length>>>0,n=arguments,n.length<=1)for(;;){if(E in e){r=e[E++];break}if(++E>=a)throw new TypeError}else r=n[1];for(;E<a;++E)E in e&&(r=t(r,e[E],E,e));return r},t})}("function"==typeof define&&define.amd?define:function(t){"object"==typeof exports?module.exports=t():this.when=t()}),define("Core/formatError",["./defined"],function(t){"use strict";function e(e){var n,r=e.name,a=e.message;n=t(r)&&t(a)?r+": "+a:e.toString();var E=e.stack;return t(E)&&(n+="\n"+E),n}return e}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(t,e,n,r){"use strict";function a(e,n,r){try{return e(n,r)}catch(e){return t.reject(e)}}function E(E){var i;return function(o){var _=o.data,u=[],R={id:_.id,result:void 0,error:void 0};return t(a(E,_.parameters,u)).then(function(t){R.result=t}).otherwise(function(t){t instanceof Error?R.error={name:t.name,message:t.message,stack:t.stack}:R.error=t}).always(function(){n(i)||(i=e(self.webkitPostMessage,self.postMessage)),_.canTransferArrayBuffer||(u.length=0);try{i(R,u)}catch(t){R.result=void 0,R.error="postMessage failed with error: "+r(t)+"\n with responseMessage: "+JSON.stringify(R),i(R)}})}}return E}),define("Workers/createVectorTilePolylines",["../Core/AttributeCompression","../Core/Cartesian3","../Core/Cartographic","../Core/Ellipsoid","../Core/IndexDatatype","../Core/Math","../Core/Rectangle","./createTaskProcessorWorker"],function(t,e,n,r,a,E,i,o){"use strict";function _(r,a,i,o,_){var u=r.length/3,R=r.subarray(0,u),c=r.subarray(u,2*u),N=r.subarray(2*u,3*u);t.zigZagDeltaDecode(R,c,N);for(var I=new Float32Array(r.length),h=0;h<u;++h){var f=R[h],S=c[h],M=N[h],O=E.lerp(a.west,a.east,f/T),d=E.lerp(a.south,a.north,S/T),C=E.lerp(i,o,M/T),l=n.fromRadians(O,d,C,A),U=_.cartographicToCartesian(l,s);e.pack(U,I,3*h)}return I}function u(t){t=new Float64Array(t);var n=0;h.min=t[n++],h.max=t[n++],i.unpack(t,n,c),n+=i.packedLength,r.unpack(t,n,N),n+=r.packedLength,e.unpack(t,n,I)}function R(t,n){var r=new Uint16Array(t.positions),E=new Uint16Array(t.widths),i=new Uint32Array(t.counts),o=new Uint16Array(t.batchIds);u(t.packedBuffer);var R,T=c,A=N,s=I,C=h.min,l=h.max,U=_(r,T,C,l,A),F=U.length/3,P=4*F-4,L=new Float32Array(3*P),m=new Float32Array(3*P),D=new Float32Array(3*P),p=new Float32Array(2*P),y=new Uint16Array(P),B=0,g=0,v=0,w=0,G=i.length;for(R=0;R<G;++R){for(var x=i[R],X=E[R],V=o[R],b=0;b<x;++b){var H;if(0===b){var z=e.unpack(U,3*w,f),W=e.unpack(U,3*(w+1),S);H=e.subtract(z,W,M),e.add(z,H,H)}else H=e.unpack(U,3*(w+b-1),M);var q,Y=e.unpack(U,3*(w+b),O);if(b===x-1){var K=e.unpack(U,3*(w+x-1),f),k=e.unpack(U,3*(w+x-2),S);q=e.subtract(K,k,d),e.add(K,q,q)}else q=e.unpack(U,3*(w+b+1),d);e.subtract(H,s,H),e.subtract(Y,s,Y),e.subtract(q,s,q);for(var Z=0===b?2:0,j=b===x-1?2:4,Q=Z;Q<j;++Q){e.pack(Y,L,B),e.pack(H,m,B),e.pack(q,D,B),B+=3;var J=Q-2<0?-1:1;p[g++]=Q%2*2-1,p[g++]=J*X,y[v++]=V}}w+=x}var $=a.createTypedArray(P,6*F-6),tt=0,et=0;for(G=F-1,R=0;R<G;++R)$[et++]=tt,$[et++]=tt+2,$[et++]=tt+1,$[et++]=tt+1,$[et++]=tt+2,$[et++]=tt+3,tt+=4;return n.push(L.buffer,m.buffer,D.buffer),n.push(p.buffer,y.buffer,$.buffer),{indexDatatype:2===$.BYTES_PER_ELEMENT?a.UNSIGNED_SHORT:a.UNSIGNED_INT,currentPositions:L.buffer,previousPositions:m.buffer,nextPositions:D.buffer,expandAndWidth:p.buffer,batchIds:y.buffer,indices:$.buffer}}var T=32767,A=new n,s=new e,c=new i,N=new r,I=new e,h={min:void 0,max:void 0},f=new e,S=new e,M=new e,O=new e,d=new e;return o(R)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as K}from"./chunk-3R25OJXK.js";import{a as G}from"./chunk-H3L4SJP4.js";import{a as S}from"./chunk-T53UE6JF.js";import{c as B,i as R}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as t,b as _,d as L}from"./chunk-AODSXSC5.js";import{a as F}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import"./chunk-DRYFJEFT.js";var O=32767,ct=new _,rt=new t;function it(n,o,p,m,s){let d=n.length/3,U=n.subarray(0,d),v=n.subarray(d,2*d),P=n.subarray(2*d,3*d);G.zigZagDeltaDecode(U,v,P);let D=new Float64Array(n.length);for(let u=0;u<d;++u){let e=U[u],A=v[u],l=P[u],k=F.lerp(o.west,o.east,e/O),I=F.lerp(o.south,o.north,A/O),E=F.lerp(p,m,l/O),g=_.fromRadians(k,I,E,ct),C=s.cartographicToCartesian(g,rt);t.pack(C,D,u*3)}return D}var Y=it;var X=new R,$=new L,j=new t,H={min:void 0,max:void 0};function at(n){n=new Float64Array(n);let o=0;H.min=n[o++],H.max=n[o++],R.unpack(n,o,X),o+=R.packedLength,L.unpack(n,o,$),o+=L.packedLength,t.unpack(n,o,j)}function ft(n){let o=n.length,p=new Uint32Array(o+1),m=0;for(let s=0;s<o;++s)p[s]=m,m+=n[s];return p[o]=m,p}var Z=new t,q=new t,J=new t,dt=new t,Q=new t;function ut(n,o){let p=new Uint16Array(n.positions),m=new Uint16Array(n.widths),s=new Uint32Array(n.counts),d=new Uint16Array(n.batchIds);at(n.packedBuffer);let U=X,v=$,P=j,D=H.min,u=H.max,e=Y(p,U,D,u,v),A=e.length/3,l=A*4-4,k=new Float32Array(l*3),I=new Float32Array(l*3),E=new Float32Array(l*3),g=new Float32Array(l*2),C=new Uint16Array(l),N=0,z=0,tt=0,r,h=0,M=s.length;for(r=0;r<M;++r){let a=s[r],nt=m[r],ot=d[r];for(let f=0;f<a;++f){let w;if(f===0){let c=t.unpack(e,h*3,Z),T=t.unpack(e,(h+1)*3,q);w=t.subtract(c,T,J),t.add(c,w,w)}else w=t.unpack(e,(h+f-1)*3,J);let W=t.unpack(e,(h+f)*3,dt),x;if(f===a-1){let c=t.unpack(e,(h+a-1)*3,Z),T=t.unpack(e,(h+a-2)*3,q);x=t.subtract(c,T,Q),t.add(c,x,x)}else x=t.unpack(e,(h+f+1)*3,Q);t.subtract(w,P,w),t.subtract(W,P,W),t.subtract(x,P,x);let et=f===0?2:0,st=f===a-1?2:4;for(let c=et;c<st;++c){t.pack(W,k,N),t.pack(w,I,N),t.pack(x,E,N),N+=3;let T=c-2<0?-1:1;g[z++]=2*(c%2)-1,g[z++]=T*nt,C[tt++]=ot}}h+=a}let i=S.createTypedArray(l,A*6-6),b=0,y=0;for(M=A-1,r=0;r<M;++r)i[y++]=b,i[y++]=b+2,i[y++]=b+1,i[y++]=b+1,i[y++]=b+2,i[y++]=b+3,b+=4;o.push(k.buffer,I.buffer,E.buffer),o.push(g.buffer,C.buffer,i.buffer);let V={indexDatatype:i.BYTES_PER_ELEMENT===2?S.UNSIGNED_SHORT:S.UNSIGNED_INT,currentPositions:k.buffer,previousPositions:I.buffer,nextPositions:E.buffer,expandAndWidth:g.buffer,batchIds:C.buffer,indices:i.buffer};if(n.keepDecodedPositions){let a=ft(s);o.push(e.buffer,a.buffer),V=B(V,{decodedPositions:e.buffer,decodedPositionOffsets:a.buffer})}return V}var It=K(ut);export{It as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js index dedfaa708..b1831c5e4 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromGoogleEarthEnterpriseBuffer.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,m=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:m,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],m=d.x,p=d.y,E=d.z;i=Math.min(m,i),s=Math.max(m,s),o=Math.min(p,o),c=Math.max(p,c),u=Math.min(E,u),l=Math.max(E,l)}var _=n.minimum;_.x=i,_.y=o,_.z=u;var y=n.maximum;return y.x=s,y.y=c,y.z=l,n.center=e.midpoint(_,y,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,m=i.y,p=i.z,E=l*l*d*d,_=f*f*m*m,y=h*h*p*p,T=E+_+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var v=u.x,S=u.y,g=u.z,I=o;I.x=A.x*v*2,I.y=A.y*S*2,I.z=A.z*g*2;var N,M,O,w,C,x,P,U,D,F,L,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(I)),B=0;do{b-=B,O=1/(1+b*v),w=1/(1+b*S),C=1/(1+b*g),x=O*O,P=w*w,U=C*C,D=x*O,F=P*w,L=U*C,N=E*x+_*P+y*U-1,M=E*D*v+_*F*S+y*L*g;B=N/(-2*M)}while(Math.abs(N)>r.EPSILON12);return t(c)?(c.x=l*O,c.y=f*w,c.z=h*C,c):new e(l*O,f*w,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var m=r(n)?n.oneOverRadii:f,p=r(n)?n.oneOverRadiiSquared:h,E=r(n)?n._centerToleranceSquared:d,_=o(t,m,p,E,c);if(r(_)){var y=e.multiplyComponents(_,p,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),v=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=v,i):new u(R,A,v)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var m=new e,p=new e,E=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,p);if(i(a)){var o=this.geodeticSurfaceNormal(a,m),u=e.subtract(n,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(p[n],m[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(p[a],m[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=m[i],h=p[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,E=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(E-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,m=n-u-f+d,p=2*(i-h),E=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),v=-n-u+f+d;return r(t)?(t[0]=m,t[1]=_,t[2]=R,t[3]=p,t[4]=y,t[5]=A,t[6]=E,t[7]=T,t[8]=v,t):new s(m,p,E,_,y,T,R,A,v)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,m=a*i+c*o*u,p=-c*i+a*o*u,E=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=m,t[5]=_,t[6]=h,t[7]=p,t[8]=y,t):new s(l,f,h,d,m,p,E,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var m=[1,0,0],p=[2,2,1],E=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,_),s.multiply(h,E,h),s.multiply(_,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){ -return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,m,p,E){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(m,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(p,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(E,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,m=t.y*t.z,p=t.y*t.w,E=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-E+y,R=2*(c-_),A=2*(f+p),v=2*(c+_),S=-s+d-E+y,g=2*(m-h),I=2*(f-p),N=2*(m+h),M=-s-d+E+y;return r[0]=T*a,r[1]=v*a,r[2]=I*a,r[3]=0,r[4]=R*o,r[5]=S*o,r[6]=N*o,r[7]=0,r[8]=A*u,r[9]=g*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,m=f.x,p=f.y,E=f.z,_=d.x,y=d.y,T=d.z,R=r.x,A=r.y,v=r.z,S=u*-R+s*-A+c*-v,g=_*-R+y*-A+T*-v,I=m*R+p*A+E*v;return i(n)?(n[0]=u,n[1]=_,n[2]=-m,n[3]=0,n[4]=s,n[5]=y,n[6]=-p,n[7]=0,n[8]=c,n[9]=T,n[10]=-E,n[11]=0,n[12]=S,n[13]=g,n[14]=I,n[15]=1,n):new l(u,s,c,S,_,y,T,g,-m,-p,-E,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,m=f,p=a+c,E=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=m,i[11]=0,i[12]=p,i[13]=E,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var m=new e;l.setScale=function(t,n,r){var i=l.getScale(t,m),a=e.divideComponents(n,i,m);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var p=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],p)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],p)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],p)),n};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],m=e[11],p=e[12],E=e[13],_=e[14],y=e[15],T=t[0],R=t[1],A=t[2],v=t[3],S=t[4],g=t[5],I=t[6],N=t[7],M=t[8],O=t[9],w=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=r*T+u*R+f*A+p*v,L=i*T+s*R+h*A+E*v,b=a*T+c*R+d*A+_*v,B=o*T+l*R+m*A+y*v,z=r*S+u*g+f*I+p*N,q=i*S+s*g+h*I+E*N,G=a*S+c*g+d*I+_*N,V=o*S+l*g+m*I+y*N,W=r*M+u*O+f*w+p*C,X=i*M+s*O+h*w+E*C,H=a*M+c*O+d*w+_*C,Y=o*M+l*O+m*w+y*C,k=r*x+u*P+f*U+p*D,j=i*x+s*P+h*U+E*D,Z=a*x+c*P+d*U+_*D,K=o*x+l*P+m*U+y*D;return n[0]=F,n[1]=L,n[2]=b,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],m=e[14],p=t[0],E=t[1],_=t[2],y=t[4],T=t[5],R=t[6],A=t[8],v=t[9],S=t[10],g=t[12],I=t[13],N=t[14],M=r*p+o*E+c*_,O=i*p+u*E+l*_,w=a*p+s*E+f*_,C=r*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*A+o*v+c*S,D=i*A+u*v+l*S,F=a*A+s*v+f*S,L=r*g+o*I+c*N+h,b=i*g+u*I+l*N+d,B=a*g+s*I+f*N+m;return n[0]=M,n[1]=O,n[2]=w,n[3]=0,n[4]=C,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],m=t[2],p=t[3],E=t[4],_=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*m,v=i*h+u*d+l*m,S=a*h+s*d+f*m,g=r*p+o*E+c*_,I=i*p+u*E+l*_,N=a*p+s*E+f*_,M=r*y+o*T+c*R,O=i*y+u*T+l*R,w=a*y+s*T+f*R;return n[0]=A,n[1]=v,n[2]=S,n[3]=0,n[4]=g,n[5]=I,n[6]=N,n[7]=0,n[8]=M,n[9]=O,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],m=e[13],p=e[2],E=e[6],_=e[10],v=e[14],S=e[3],g=e[7],I=e[11],N=e[15],M=_*N,O=v*I,w=E*N,C=v*g,x=E*I,P=_*g,U=p*N,D=v*S,F=p*I,L=_*S,b=p*g,B=E*S,z=M*h+C*d+x*m-(O*h+w*d+P*m),q=O*f+U*d+L*m-(M*f+D*d+F*m),G=w*f+D*h+b*m-(C*f+U*h+B*m),V=P*f+F*h+B*d-(x*f+L*h+b*d),W=O*i+w*a+P*o-(M*i+C*a+x*o),X=M*r+D*a+F*o-(O*r+U*a+L*o),H=C*r+U*i+B*o-(w*r+D*i+b*o),Y=x*r+L*i+b*a-(P*r+F*i+B*a);M=a*m,O=o*d,w=i*m,C=o*h,x=i*d,P=a*h,U=r*m,D=o*f,F=r*d,L=a*f,b=r*h,B=i*f;var k=M*g+C*I+x*N-(O*g+w*I+P*N),j=O*S+U*I+L*N-(M*S+D*I+F*N),Z=w*S+D*g+b*N-(C*S+U*g+B*N),K=P*S+F*g+B*I-(x*S+L*g+b*I),J=w*_+P*v+O*E-(x*v+M*E+C*_),Q=F*v+M*p+D*_-(U*_+L*v+O*p),$=U*E+B*v+C*p-(b*v+w*p+D*E),ee=b*_+x*p+L*E-(F*E+B*_+P*p),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],m=-n*f-r*h-i*d,p=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=m,t[13]=p,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var m=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,m),o=Math.max(o,m)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,m=0,p=e.length;m<p;m++){var E=t.cartesianToCartographic(e[m]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var _=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,m=e.west,p=c;p.height=i,p.longitude=m,p.latitude=f,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=h,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=m,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)p.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,p)&&(o[l]=t.cartographicToCartesian(p,o[l]),l++);return 0===p.latitude&&(p.longitude=m,o[l]=t.cartographicToCartesian(p,o[l]),l++,p.longitude=d,o[l]=t.cartographicToCartesian(p,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var m=new e,p=new e,E=new e,_=new e,y=new e,T=new e,R=new e,A=new e,v=new e,S=new e,g=new e,I=new e,N=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,m),u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var N=a.x,M=a.y,O=a.z;N<o.x&&e.clone(a,o),N>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),O<s.z&&e.clone(a,s),O>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=w;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=v;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=S;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,F,A));if(W>L){var X=Math.sqrt(W);b=.5*(b+X),L=b*b;var H=X-b;F.x=(b*F.x+H*a.x)/X,F.y=(b*F.y+H*a.y)/X,F.z=(b*F.z+H*a.z)/X}}return b<G?(e.clone(F,n.center),n.radius=b):(e.clone(q,n.center),n.radius=G),n};var M=new o,O=new e,w=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=n.project(C,O),c=n.project(x,w),l=c.x-s.x,f=c.y-s.y,m=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+m*m);var p=u.center;return p.x=s.x+.5*l,p.y=s.y+.5*f,p.z=s.z+.5*m,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,m),l=e.clone(u,p),f=e.clone(u,E),h=e.clone(u,_),N=e.clone(u,y),M=e.clone(u,T),O=t.length;for(s=0;s<O;s+=a){var w=t[s]+n.x,C=t[s+1]+n.y,x=t[s+2]+n.z;u.x=w,u.y=C,u.z=x,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>N.y&&e.clone(u,N),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(N,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=N),D>b&&(b=D,F=f,L=M);var B=v;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=S;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=N.y,V.z=M.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<O;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,A));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,m),s=e.clone(a,p),c=e.clone(a,E),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),N=t.length;for(o=0;o<N;o+=3){var M=t[o]+n[o],O=t[o+1]+n[o+1],w=t[o+2]+n[o+2];a.x=M,a.y=O,a.z=w,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),O<s.y&&e.clone(a,s),O>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=v;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=S;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<N;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),m=j,p=m[0];e.add(s,l,p),e.add(p,c,p),p=m[1],e.add(s,l,p),e.add(p,h,p),p=m[2],e.add(s,f,p),e.add(p,h,p),p=m[3],e.add(s,f,p),e.add(p,c,p),e.negate(s,s),p=m[4],e.add(s,l,p),e.add(p,c,p),p=m[5],e.add(s,l,p),e.add(p,h,p),p=m[6],e.add(s,f,p),e.add(p,h,p),p=m[7],e.add(s,f,p),e.add(p,c,p);for(var E=m.length,_=0;_<E;++_){var y=m[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(m,i),o=i.center;var R=o.x,A=o.y,v=o.z;return o.x=v,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)}, -d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return N*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/EllipsoidalOccluder",["./BoundingSphere","./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./Rectangle"],function(e,t,n,r,i,a,o){"use strict";function u(e,n){this._ellipsoid=e,this._cameraPosition=new t,this._cameraPositionInScaledSpace=new t,this._distanceToLimbInScaledSpaceSquared=0,i(n)&&(this.cameraPosition=n)}function s(e,n,r){var i=e.transformPositionToScaledSpace(n,m),a=t.magnitudeSquared(i),o=Math.sqrt(a),u=t.divideByScalar(i,o,p);a=Math.max(1,a),o=Math.max(1,o);var s=t.dot(u,r),c=t.magnitude(t.cross(u,r,u)),l=1/o;return 1/(s*l-c*(Math.sqrt(a-1)*l))}function c(e,n,r){if(!(n<=0||n===1/0||n!==n))return t.multiplyByScalar(e,n,r)}function l(e,n){return t.equals(n,t.ZERO)?n:(e.transformPositionToScaledSpace(n,E),t.normalize(E,E))}a(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){var n=this._ellipsoid,r=n.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=t.magnitudeSquared(r)-1;t.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=r,this._distanceToLimbInScaledSpaceSquared=i}}});var f=new t;u.prototype.isPointVisible=function(e){var t=this._ellipsoid,n=t.transformPositionToScaledSpace(e,f);return this.isScaledSpacePointVisible(n)},u.prototype.isScaledSpacePointVisible=function(e){var n=this._cameraPositionInScaledSpace,r=this._distanceToLimbInScaledSpaceSquared,i=t.subtract(e,n,f),a=-t.dot(i,n);return!(r<0?a>0:a>r&&a*a/t.magnitudeSquared(i)>r)},u.prototype.computeHorizonCullingPoint=function(e,n,r){i(r)||(r=new t);for(var a=this._ellipsoid,o=l(a,e),u=0,f=0,h=n.length;f<h;++f){var d=n[f],m=s(a,d,o);u=Math.max(u,m)}return c(o,u,r)};var h=new t;u.prototype.computeHorizonCullingPointFromVertices=function(e,n,a,o,u){i(u)||(u=new t),o=r(o,t.ZERO);for(var f=this._ellipsoid,d=l(f,e),m=0,p=0,E=n.length;p<E;p+=a){h.x=n[p]+o.x,h.y=n[p+1]+o.y,h.z=n[p+2]+o.z;var _=s(f,h,d);m=Math.max(m,_)}return c(d,m,u)};var d=[];u.prototype.computeHorizonCullingPointFromRectangle=function(n,r,i){var a=o.subsample(n,r,0,d),u=e.fromPoints(a);if(!(t.magnitude(u.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(u.center,a,i)};var m=new t,p=new t,E=new t;return u}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,m=o*s-h,p=o*c-u*s,E=u*c-d,_=4*m*E-p*p;if(_<0){var y,T,R;h*f>=l*d?(y=o,T=m,R=-2*u*m+o*p):(y=c,T=E,R=-c*p+2*s*E);var A=R<0?-1:1,v=-A*Math.abs(y)*Math.sqrt(-_);a=-R+v;var S=a/2,g=S<0?-Math.pow(-S,1/3):Math.pow(S,1/3),I=a===v?-g:-T/g;return i=T<=0?g+I:-R/(g*g+I*I+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var N=m,M=-2*u*m+o*p,O=E,w=-c*p+2*s*E,C=Math.sqrt(_),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-M)/3);i=2*Math.sqrt(-N);var U=Math.cos(P);a=i*U;var D=i*(-U/2-x*Math.sin(P)),F=a+D>2*u?a-u:D-u,L=o,b=F/L;P=Math.abs(Math.atan2(c*C,-w)/3),i=2*Math.sqrt(-O),U=Math.cos(P),a=i*U,D=i*(-U/2-x*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-F*z-L*B,W=F*B,X=(s*V-u*W)/(-u*V+s*G);return b<=X?b<=q?X<=q?[b,X,q]:[b,q,X]:[q,b,X]:b<=q?[X,b,q]:X<=q?[X,q,b]:[q,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var m=r.computeRealRoots(1,s,l);if(2===m.length){var p,E=m[0],_=m[1];if(E>=0&&_>=0){var y=Math.sqrt(E),T=Math.sqrt(_);return[h-T,h-y,h+y,h+T]}if(E>=0&&_<0)return p=Math.sqrt(E),[h-p,h+p];if(E<0&&_>=0)return p=Math.sqrt(_),[h-p,h+p]}return[]}if(d>0){var R=Math.sqrt(d),A=(s+d-c/R)/2,v=(s+d+c/R)/2,S=r.computeRealRoots(1,R,A),g=r.computeRealRoots(1,-R,v);return 0!==S.length?(S[0]+=h,S[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>g[0]&&S[0]<g[1]?[g[0],S[0],g[1],S[1]]:[S[0],g[0],S[1],g[1]]):S):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var m,p,E=d[0],_=i-E,y=_*_,T=t/2,R=_/2,A=y-4*o,v=y+4*Math.abs(o),S=c-4*E,g=c+4*Math.abs(E);if(E<0||A*g<S*v){var I=Math.sqrt(S);m=I/2,p=0===I?0:(t*R-a)/I}else{var N=Math.sqrt(A);m=0===N?0:(t*R-a)/N,p=N/2}var M,O;0===T&&0===m?(M=0,O=0):n.sign(T)===n.sign(m)?(M=T+m,O=E/M):(O=T-m,M=E/O);var w,C;0===R&&0===p?(w=0,C=0):n.sign(R)===n.sign(p)?(w=R+p,C=o/w):(C=R-p,w=o/C);var x=r.computeRealRoots(1,M,w),P=r.computeRealRoots(1,O,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,y),h=e.dot(u,u),d=2*e.dot(u,l),m=e.magnitudeSquared(l)-c,p=f(h,d,m,v);if(r(p))return i.start=p.root0,i.stop=p.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function m(t,n,r,i,a){var l,f=i*i,h=a*a,m=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,p=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===y&&0===_){if(l=s.computeRealRoots(m,p,E),0===l.length)return T;var R=l[0],A=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-A)),T.push(new e(i,a*R,a*A)),2===l.length){var v=l[1],S=Math.sqrt(Math.max(1-v*v,0));T.push(new e(i,a*v,a*-S)),T.push(new e(i,a*v,a*S))}return T}var g=y*y,I=_*_,N=m*m,M=y*_,O=N+I,w=2*(p*m+M),C=2*E*m+p*p-I+g,x=2*(E*p-M),P=E*E-g;if(0===O&&0===w&&0===C&&0===x)return T;l=c.computeRealRoots(O,w,C,x,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var F,L=l[D],b=L*L,B=Math.max(1-b,0),z=Math.sqrt(B);F=o.sign(m)===o.sign(E)?d(m*b+E,p*L,o.EPSILON12):o.sign(E)===o.sign(p*L)?d(m*b,p*L+E,o.EPSILON12):d(m*b+p*L,E,o.EPSILON12);var q=d(_*L,y,o.EPSILON15),G=F*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++D):T.push(new e(i,a*L,a*z))}return T}var p={};p.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,_=new e,y=new e,T=new e,R=new e;p.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,m=t.direction,p=e.subtract(i,r,E),A=e.subtract(a,r,_),v=e.cross(m,A,y),S=e.dot(p,v);if(u){if(S<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,v))<0||l>S)return;if(c=e.cross(s,p,R),(f=e.dot(m,c))<0||l+f>S)return;h=e.dot(A,c)/S}else{if(Math.abs(S)<o.EPSILON6)return;var g=1/S;if(s=e.subtract(d,r,T),(l=e.dot(s,v)*g)<0||l>1)return;if(c=e.cross(s,p,R),(f=e.dot(m,c)*g)<0||l+f>1)return;h=e.dot(A,c)*g}return h},p.rayTriangle=function(t,n,i,a,o,u){var s=p.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;p.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=p.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var v={root0:0,root1:0};p.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var S=new l;p.lineSegmentSphere=function(t,n,i,a){var o=S;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;p.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var m=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,m<o)return;if(m>o){u=d*d-o,s=-d+Math.sqrt(u);var p=s/i,E=r/s;return p<E?new a(p,E):{start:E,stop:p}}var _=Math.sqrt(r/i);return new a(_,_)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var N=new e,M=new e,O=new e,w=new e,C=new e,x=new u,P=new u,U=new u,D=new u,F=new u,L=new u,b=new u,B=new e,z=new e,q=new t;p.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,N);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,N),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,w),d=e.normalize(e.cross(h,f,M),M),p=e.normalize(e.cross(f,d,O),O),E=x;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=p.x,E[7]=p.y,E[8]=p.z;var _=u.transpose(E,P),y=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=F;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var A,v,S=u.multiply(u.multiply(_,T,L),R,L),g=u.multiply(u.multiply(S,y,b),E,b),I=u.multiplyByVector(S,i,C),G=m(g,e.negate(I,N),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(y,u.multiplyByVector(E,G[H],B),B);var Y=e.normalize(e.subtract(A,i,w),w),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(A,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),v=e.magnitude(e.subtract(W,i,w))*Math.sqrt(1-X*X),v=c?-v:v,j.height=v,n.cartographicToCartesian(j,new e)}};var G=new e;return p.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},p.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return p.lineSegmentPlane(t,n,i,f),p.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return p.lineSegmentPlane(n,r,i,f),p.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return p.lineSegmentPlane(r,t,i,f),p.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return p.lineSegmentPlane(n,t,i,f),p.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return p.lineSegmentPlane(r,n,i,f),p.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return p.lineSegmentPlane(t,r,i,f),p.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},p}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return m(e)}function i(e){return m(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,m;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return p(f,e),e},m=function(e){return e=t(e),h=e.then,m=t,d=_,p(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return E(2,arguments),e(t,function(t){function u(e){p(e)}function s(e){m(e)}var c,l,f,h,d,m,p,E,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(E=d.progress,p=function(e){h.push(e),--l||(m=p=_,d.reject(h))},m=function(e){f.push(e),--c||(m=p=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return E(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function m(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function p(e,t){for(var n,r=0;n=e[r++];)n(t)}function E(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=m,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,m,p,E,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,v=" ",S=s.length,g=0;s&&g<S;g++)switch(s.charAt(g)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":v=s.charAt(g+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,v);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,A,y,c,f,R);case"o":return o(_,8,A,y,c,f,R);case"x":return o(_,16,A,y,c,f,R);case"X":return o(_,16,A,y,c,f,R).toUpperCase();case"u":return o(_,10,A,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),m=d<0?"-":T,_=m+i(String(Math.abs(d)),f,"0",!1),a(_,m,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,m=d<0?"-":T,p=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=m+Math.abs(d)[p](f),a(_,m,y,c,R)[E]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return p.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){p.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}p.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=p.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return p.addSeconds(e,-r[0].offset,n);if(i>=r.length)return p.addSeconds(e,-r[i-1].offset,n);var a=p.secondsDifference(r[i].julianDate,e);return 0===a?p.addSeconds(e,-r[i].offset,n):a<=1?void 0:p.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function m(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function p(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var E=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,v=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,S=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;p.fromGregorianDate=function(e,t){var n=m(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromDate=function(e,t){var n=m(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new p(n[0],n[1],c.UTC)},p.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,y=0,g=0,O=u[0],w=u[1];if(null!==(u=O.match(S)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=O.match(R)))n=+u[1],s=+u[2];else if(null!==(u=O.match(T)))n=+u[1];else{var C;if(null!==(u=O.match(A)))n=+u[1],C=+u[2],a=o(n);else if(null!==(u=O.match(v))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(w)){u=w.match(M),null!==u?(h=+u[1],E=+u[2],y=+u[3],g=1e3*+(u[4]||0),D=5):(u=w.match(N),null!==u?(h=+u[1],E=+u[2],y=60*+(u[3]||0),D=4):null!==(u=w.match(I))&&(h=+u[1],E=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,E-=b;break;case"-":h+=L,E+=b;break;case"Z":break;default:E+=new Date(Date.UTC(n,s-1,l,h,E)).getTimezoneOffset()}}var B=60===y;for(B&&y--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var z=m(n,s,l,h,E,y,g);return r(t)?(d(z[0],z[1],t),f(t)):t=new p(z[0],z[1],c.UTC),B&&p.addSeconds(t,1,t),t},p.now=function(e){return p.fromDate(new Date,e)};var O=new p(0,0,c.TAI);return p.toGregorianDate=function(e,t){var n=!1,i=h(e,O);r(i)||(p.addSeconds(e,-1,O),i=h(O,O),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,m=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,v=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=_,t.month=E,t.day=m,t.hour=y,t.minute=R,t.second=A,t.millisecond=v,t.isLeapSecond=n,t):new a(_,E,m,y,R,A,v,n)},p.toDate=function(e){var t=p.toGregorianDate(e,E),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},p.toIso8601=function(t,n){var i=p.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},p.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new p(e.dayNumber,e.secondsOfDay,c.TAI)},p.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},p.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},p.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(p.secondsDifference(e,t))<=n},p.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},p.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},p.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},p.computeTaiMinusUtc=function(e){y.julianDate=e;var n=p.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},p.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},p.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},p.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},p.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},p.lessThan=function(e,t){return p.compare(e,t)<0},p.lessThanOrEquals=function(e,t){return p.compare(e,t)<=0},p.greaterThan=function(e,t){return p.compare(e,t)>0},p.greaterThanOrEquals=function(e,t){return p.compare(e,t)>=0},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p.prototype.equalsEpsilon=function(e,t){return p.equalsEpsilon(this,e,t)},p.prototype.toString=function(){return p.toIso8601(this)}, -p.leapSeconds=[new u(new p(2441317,43210,c.TAI),10),new u(new p(2441499,43211,c.TAI),11),new u(new p(2441683,43212,c.TAI),12),new u(new p(2442048,43213,c.TAI),13),new u(new p(2442413,43214,c.TAI),14),new u(new p(2442778,43215,c.TAI),15),new u(new p(2443144,43216,c.TAI),16),new u(new p(2443509,43217,c.TAI),17),new u(new p(2443874,43218,c.TAI),18),new u(new p(2444239,43219,c.TAI),19),new u(new p(2444786,43220,c.TAI),20),new u(new p(2445151,43221,c.TAI),21),new u(new p(2445516,43222,c.TAI),22),new u(new p(2446247,43223,c.TAI),23),new u(new p(2447161,43224,c.TAI),24),new u(new p(2447892,43225,c.TAI),25),new u(new p(2448257,43226,c.TAI),26),new u(new p(2448804,43227,c.TAI),27),new u(new p(2449169,43228,c.TAI),28),new u(new p(2449534,43229,c.TAI),29),new u(new p(2450083,43230,c.TAI),30),new u(new p(2450630,43231,c.TAI),31),new u(new p(2451179,43232,c.TAI),32),new u(new p(2453736,43233,c.TAI),33),new u(new p(2454832,43234,c.TAI),34),new u(new p(2456109,43235,c.TAI),35),new u(new p(2457204,43236,c.TAI),36),new u(new p(2457754,43237,c.TAI),37)],p}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function m(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function p(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=p(e);return e.state=l.ACTIVE,g.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(E(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},v=20,S=new u({comparator:f});S.maximumLength=v,S.reserve(v);var g=[],I={},N="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return v},set:function(e){if(e<v)for(;S.length>e;){var t=S.pop();T(t)}v=e,S.maximumLength=e,S.reserve(e)}}}),h.update=function(){var e,t,n=0,r=g.length;for(e=0;e<r;++e)t=g[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(g[e-n]=t):++n;g.length-=n;var i=S.internalArray,a=S.length;for(e=0;e<a;++e)d(i[e]);S.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&S.length>0;)t=S.pop(),t.cancelled?T(t):!t.throttleByServer||m(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(N);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=I[r];return i(a)||(I[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||m(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(g.length>=h.maximumRequests)){d(e);var t=S.insert(e);if(i(t)){if(t===e)return;T(t)}return p(e)}}},h.clearForSpecs=function(){for(;S.length>0;){T(S.pop())}for(var e=g.length,t=0;t<e;++t)T(g[t]);g.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=S,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,p,E,_,y,T,R,A,v,S,g,I){"use strict";function N(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?C(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function O(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===S.ISSUED||e.state===S.ACTIVE)throw new g("The Resource is already being fetched.");e.state=S.UNISSUED,e.deferred=void 0}function C(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=O(t.templateValues,{}),this._queryParameters=O(t.queryParameters,{}),this.headers=O(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);N(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=v.request(a);if(u(o))return o.otherwise(function(e){return a.state!==S.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=v.request(a);if(u(o))return o.otherwise(function(i){return a.state!==S.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=S.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(I.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new g("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);N(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return m(this._url)}},isCrossOriginUrl:{get:function(){return p(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);N(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;w(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=v.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==S.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=S.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=O(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=O(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=O(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=O(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))m(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){m(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else m(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function m(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.") -;var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||m<0||p<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=m,e._taiMinusUtcSecondsColumn=p,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=E.length;R<A;R+=e._columnCount){var v=E[R+i],S=E[R+p],g=v+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,S,f.TAI);if(_.push(I),T){if(S!==y&&r(y)){var N=o.leapSeconds,M=t(N,I,d);if(M<0){var O=new u(I,S);N.splice(~M,0,O)}}y=S}}}function p(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return p(e,n,i,s,u),u;if(r.equals(l))return p(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,m=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-m;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?m=_:_-=R-T)}return u.xPoleWander=E(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,m,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),m=!r(h),p=m||o.greaterThanOrEquals(h,e);if(d&&p)return s=u,!m&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=m.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,m=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=m,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],m=f;m<=h;++m)d.push(l(this,m));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var m,p,E=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(m=0;m<=u;++m)_[m]=E-R[m];for(m=0;m<=u;++m){for(T[m]=1,p=0;p<=u;++p)p!==m&&(T[m]*=_[p]);T[m]*=y[m];var A=3*(s+m);n.x+=T[m]*d[A++],n.y+=T[m]*d[A++],n.s+=T[m]*d[A]}return n}}}},s}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(I)&&(I=!1,!p())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,N=o(e[1]))}return I}function s(){return u()&&N}function c(){if(!t(M)&&(M=!1,!u()&&!p()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(M=!0,O=o(e[1]))}return M}function l(){return c()&&O}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(w=!0,C=o(e[1]),C.isNightly=!!e[2])}return w}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1]))}return x}function m(){return d()&&P}function p(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function E(){return p()&&D}function _(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(g.appVersion)),b}function T(){return _()&&L}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function v(){return A()?z:void 0}function S(){return S._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,N,M,O,w,C,x,P,U,D,F,L,b,B,z,q;S._promise=void 0,S._result=void 0,S.initialize=function(){if(t(S._promise))return S._promise;var e=a.defer();if(S._promise=e.promise,p())return S._result=!1,e.resolve(S._result),e.promise;var n=new Image;return n.onload=function(){S._result=n.width>0&&n.height>0,e.resolve(S._result)},n.onerror=function(){S._result=!1,e.resolve(S._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(S,{initialized:{get:function(){return t(S._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:m,isEdge:p,edgeVersion:E,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:S,imageRenderingValue:v,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],m=e[u.COLUMN2ROW2],p=h+d+m;if(p>0)n=Math.sqrt(p+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var E=l,_=0;d>h&&(_=1),m>h&&m>d&&(_=2);var y=E[_],T=E[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,m=new s,p=new s;s.fromHeadingPitchRoll=function(t,n){return p=s.fromAxisAngle(e.UNIT_X,t.roll,h),m=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(m,p,m),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var E=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,E);var u=s.computeAngle(y);r[o]=E.x*u,r[o+1]=E.y*u,r[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,m=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=m,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var v=new s,S=new s,g=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=v=s.negate(t,v)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return S=s.multiplyByScalar(e,Math.sin((1-n)*u),S),g=s.multiplyByScalar(a,Math.sin(n*u),g),r=s.add(S,g,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var I=new e,N=new e,M=new s,O=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,O);var o=s.log(O,I);s.multiply(a,t,O);var u=s.log(O,N);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,O);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),m=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,r),s.add(m,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,O);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,p,E,_,y,T,R){"use strict";var A={},v={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},S={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},N=new n,M=new n,O=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!v.hasOwnProperty(e)||!v[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=v[e][t],a=e+t;return u(g[a])?r=g[a]:(r=function(r,a,s){if(u(s)||(s=new y),E.equalsEpsilon(r.x,0,E.EPSILON14)&&E.equalsEpsilon(r.y,0,E.EPSILON14)){var c=E.sign(r.z);n.unpack(S[e],0,N),"east"!==e&&"west"!==e&&n.multiplyByScalar(N,c,N),n.unpack(S[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(S[i],0,O),"east"!==i&&"west"!==i&&n.multiplyByScalar(O,c,O)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,I.up);var l=I.up,h=I.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,I.east),n.cross(l,h,I.north),n.multiplyByScalar(I.up,-1,I.down),n.multiplyByScalar(I.east,-1,I.west),n.multiplyByScalar(I.north,-1,I.south),N=I[e],M=I[t],O=I[i]}return s[0]=N.x,s[1]=N.y,s[2]=N.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=O.x,s[9]=O.y,s[10]=O.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},g[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var w=new T,C=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,C,x);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,b=new y,B=new _,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new p;A.computeTemeToPseudoFixedMatrix=function(e,t){G=p.addSeconds(e,-p.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var V=new m(0,0,0),W=new l(0,0,0,0,0,0),X=new _,H=new _;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=A.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,m=e.secondsOfDay-p.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=m/R.SECONDS_PER_DAY,v=.779057273264+T+.00273781191135448*(y+T);v=v%1*E.TWO_PI;var S=_.fromRotationZ(v,H),g=_.multiply(h,S,X),I=Math.cos(n.xPoleWander),N=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),O=Math.sin(n.yPoleWander),w=r-2451545+i/R.SECONDS_PER_DAY;w/=36525;var C=-47e-6*w*E.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=H;return U[0]=I*x,U[1]=I*P,U[2]=M,U[3]=-N*P+O*M*x,U[4]=N*x+O*M*P,U[5]=-O*I,U[6]=-O*P-N*M*x,U[7]=O*x-N*M*P,U[8]=N*I,_.multiply(g,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,E.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},A}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m){"use strict";function p(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=m.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,E)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,E));var i=n.fromCartesian4(f.getColumn(r,2,E));this._plane=h.fromPointNormal(e,i)}var E=new r;u(p.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var _=new e;p.fromPoints=function(t,n){return new p(e.fromPoints(t,_).center,n)};var y=new d,T=new n;p.prototype.projectPointOntoPlane=function(e,r){var i=y;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},p.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},p.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=y;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},p.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return p.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},p.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},p}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,p){"use strict";function E(e,t){this.center=n.clone(a(e,n.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function _(e,t,r,i,a,u,s,c){o(c)||(c=new E);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=N;f.x=(t+r)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=M;h.x=(r-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var m=c.center;return f=d.multiplyByVector(l,f,f),n.add(e.origin,f,m),d.multiplyByScale(l,h,l),c}E.packedLength=n.packedLength+d.packedLength,E.pack=function(e,t,r){return r=a(r,0),n.pack(e.center,t,r),d.pack(e.halfAxes,t,r+n.packedLength),t},E.unpack=function(e,t,r){return t=a(t,0),o(r)||(r=new E),n.unpack(e,t,r.center),d.unpack(e,t+n.packedLength,r.halfAxes),r};var y=new n,T=new n,R=new n,A=new n,v=new n,S=new n,g=new d,I={unitary:new d,diagonal:new d};E.fromPoints=function(e,t){if(o(t)||(t=new E),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=n.ZERO,t;var r,i=e.length,a=n.clone(e[0],y);for(r=1;r<i;r++)n.add(a,e[r],a);var u=1/i;n.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,m=0,p=0;for(r=0;r<i;r++)s=n.subtract(e[r],a,T),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,m+=s.y*s.z,p+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,m*=u,p*=u;var _=g;_[0]=c,_[1]=l,_[2]=f,_[3]=l,_[4]=h,_[5]=m,_[6]=f,_[7]=m,_[8]=p;var N=d.computeEigenDecomposition(_,I),M=d.clone(N.unitary,t.halfAxes),O=d.getColumn(M,0,A),w=d.getColumn(M,1,v),C=d.getColumn(M,2,S),x=-Number.MAX_VALUE,P=-Number.MAX_VALUE,U=-Number.MAX_VALUE,D=Number.MAX_VALUE,F=Number.MAX_VALUE,L=Number.MAX_VALUE;for(r=0;r<i;r++)s=e[r],x=Math.max(n.dot(O,s),x),P=Math.max(n.dot(w,s),P),U=Math.max(n.dot(C,s),U),D=Math.min(n.dot(O,s),D),F=Math.min(n.dot(w,s),F),L=Math.min(n.dot(C,s),L);O=n.multiplyByScalar(O,.5*(D+x),O),w=n.multiplyByScalar(w,.5*(F+P),w),C=n.multiplyByScalar(C,.5*(L+U),C);var b=n.add(O,w,t.center);n.add(b,C,b);var B=R;return B.x=x-D,B.y=P-F,B.z=U-L,n.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var N=new n,M=new n,O=new r,w=new n,C=[new r,new r,new r,new r,new r,new r,new r,new r],x=[new n,new n,new n,new n,new n,new n,new n,new n],P=[new t,new t,new t,new t,new t,new t,new t,new t];E.fromRectangle=function(e,t,n,r,i){t=a(t,0),n=a(n,0),r=a(r,s.WGS84);var o=p.center(e,O),u=r.cartographicToCartesian(o,w),l=new c(u,r),f=l.plane,h=C[0],d=C[1],E=C[2],y=C[3],T=C[4],R=C[5],A=C[6],v=C[7],S=o.longitude,g=e.south<0&&e.north>0?0:o.latitude;A.latitude=R.latitude=T.latitude=e.south,v.latitude=y.latitude=g,h.latitude=d.latitude=E.latitude=e.north, -A.longitude=v.longitude=h.longitude=e.west,R.longitude=d.longitude=S,T.longitude=y.longitude=E.longitude=e.east,E.height=d.height=h.height=v.height=A.height=R.height=T.height=y.height=n,r.cartographicArrayToCartesianArray(C,x),l.projectPointsToNearestOnPlane(x,P);var I=Math.min(P[6].x,P[7].x,P[0].x),N=Math.max(P[2].x,P[3].x,P[4].x),M=Math.min(P[4].y,P[5].y,P[6].y),U=Math.max(P[0].y,P[1].y,P[2].y);return E.height=h.height=T.height=A.height=t,r.cartographicArrayToCartesianArray(C,x),_(l,I,N,M,U,Math.min(m.getPointDistance(f,x[0]),m.getPointDistance(f,x[2]),m.getPointDistance(f,x[4]),m.getPointDistance(f,x[6])),n,i)},E.clone=function(e,t){if(o(e))return o(t)?(n.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new E(e.center,e.halfAxes)},E.intersectPlane=function(e,t){var r=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=n.dot(i,r)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var U=new n,D=new n,F=new n,L=new n;E.distanceSquaredTo=function(e,t){var r=n.subtract(t,e.center,N),i=e.halfAxes,a=d.getColumn(i,0,U),o=d.getColumn(i,1,D),u=d.getColumn(i,2,F),s=n.magnitude(a),c=n.magnitude(o),l=n.magnitude(u);n.normalize(a,a),n.normalize(o,o),n.normalize(u,u);var f=L;f.x=n.dot(r,a),f.y=n.dot(r,o),f.z=n.dot(r,u);var h,m=0;return f.x<-s?(h=f.x+s,m+=h*h):f.x>s&&(h=f.x-s,m+=h*h),f.y<-c?(h=f.y+c,m+=h*h):f.y>c&&(h=f.y-c,m+=h*h),f.z<-l?(h=f.z+l,m+=h*h):f.z>l&&(h=f.z-l,m+=h*h),m};var b=new n,B=new n;E.computePlaneDistances=function(e,t,r,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,U),h=d.getColumn(c,1,D),m=d.getColumn(c,2,F),p=n.add(l,h,b);n.add(p,m,p),n.add(p,s,p);var E=n.subtract(p,t,B),_=n.dot(r,E);return a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,p),n.add(p,h,p),n.subtract(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,p),n.subtract(p,h,p),n.add(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,p),n.subtract(p,h,p),n.subtract(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,p),n.add(p,h,p),n.add(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,p),n.add(p,h,p),n.subtract(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,p),n.subtract(p,h,p),n.add(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,p),n.subtract(p,h,p),n.subtract(p,m,p),n.subtract(p,t,E),_=n.dot(r,E),a=Math.min(_,a),u=Math.max(_,u),i.start=a,i.stop=u,i};var z=new e;return E.isOccluded=function(t,n){var r=e.fromOrientedBoundingBox(t,z);return!n.isBoundingSphereVisible(r)},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,n){return E.computePlaneDistances(this,e,t,n)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.equals=function(e,t){return e===t||o(e)&&o(t)&&n.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,n,r,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*a.signNotZero(r),n.y=(1-Math.abs(r))*a.signNotZero(i)}return n.x=a.toSNorm(n.x,t),n.y=a.toSNorm(n.y,t),n},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,n,r,i){if(i.x=a.fromSNorm(e,r),i.y=a.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,n){return s.octDecodeInRange(e,t,255,n)},s.octDecodeFromCartesian4=function(e,t){var n=e.x,r=e.y,i=e.z,a=e.w,o=256*n+r,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var n=e/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,t)},s.octPack=function(e,t,n,r){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(n,f);return r.x=65536*o.x+i,r.y=65536*o.y+a,r},s.octUnpack=function(e,t,n,r){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,n),s.octDecode(a,u,r)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var n=e/4096,r=Math.floor(n);return t.x=r/4095,t.y=(e-4096*r)/4095,t},s.zigZagDeltaDecode=function(e,t,n){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/TerrainQuantization",["./freezeObject"],function(e){"use strict";return e({NONE:0,BITS12:1})}),define("Core/TerrainEncoding",["./AttributeCompression","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./Math","./Matrix4","./TerrainQuantization"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,r,o,c,h){var E,_,y,T=s.NONE;if(a(e)&&a(t)&&a(r)&&a(o)){var R=e.minimum,A=e.maximum,v=n.subtract(A,R,f),S=r-t;T=Math.max(n.maximumComponent(v),S)<p-1?s.BITS12:s.NONE,E=e.center,_=u.inverseTransformation(o,new u);var g=n.negate(R,l);u.multiply(u.fromTranslation(g,d),_,_);var I=l;I.x=1/v.x,I.y=1/v.y,I.z=1/v.z,u.multiply(u.fromScale(I,d),_,_),y=u.clone(o),u.setTranslation(y,n.ZERO,y),o=u.clone(o,new u);var N=u.fromTranslation(R,d),M=u.fromScale(v,m),O=u.multiply(N,M,d);u.multiply(o,O,o),u.multiply(y,O,y)}this.quantization=T,this.minimumHeight=t,this.maximumHeight=r,this.center=E,this.toScaledENU=_,this.fromScaledENU=o,this.matrix=y,this.hasVertexNormals=c,this.hasWebMercatorT=i(h,!1)}var l=new n,f=new n,h=new t,d=new u,m=new u,p=Math.pow(2,12);c.prototype.encode=function(r,i,a,c,f,d,m){var p=c.x,E=c.y;if(this.quantization===s.BITS12){a=u.multiplyByPoint(this.toScaledENU,a,l),a.x=o.clamp(a.x,0,1),a.y=o.clamp(a.y,0,1),a.z=o.clamp(a.z,0,1);var _=this.maximumHeight-this.minimumHeight,y=o.clamp((f-this.minimumHeight)/_,0,1);t.fromElements(a.x,a.y,h);var T=e.compressTextureCoordinates(h);t.fromElements(a.z,y,h);var R=e.compressTextureCoordinates(h);t.fromElements(p,E,h);var A=e.compressTextureCoordinates(h);if(r[i++]=T,r[i++]=R,r[i++]=A,this.hasWebMercatorT){t.fromElements(m,0,h);var v=e.compressTextureCoordinates(h);r[i++]=v}}else n.subtract(a,this.center,l),r[i++]=l.x,r[i++]=l.y,r[i++]=l.z,r[i++]=f,r[i++]=p,r[i++]=E,this.hasWebMercatorT&&(r[i++]=m);return this.hasVertexNormals&&(r[i++]=e.octPackFloat(d)),i},c.prototype.decodePosition=function(t,r,i){if(a(i)||(i=new n),r*=this.getStride(),this.quantization===s.BITS12){var o=e.decompressTextureCoordinates(t[r],h);i.x=o.x,i.y=o.y;var c=e.decompressTextureCoordinates(t[r+1],h);return i.z=c.x,u.multiplyByPoint(this.fromScaledENU,i,i)}return i.x=t[r],i.y=t[r+1],i.z=t[r+2],n.add(i,this.center,i)},c.prototype.decodeTextureCoordinates=function(n,r,i){return a(i)||(i=new t),r*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(n[r+2],i):t.fromElements(n[r+4],n[r+5],i)},c.prototype.decodeHeight=function(t,n){if(n*=this.getStride(),this.quantization===s.BITS12){return e.decompressTextureCoordinates(t[n+1],h).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[n+3]},c.prototype.decodeWebMercatorT=function(t,n){return n*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(t[n+3],h).x:t[n+6]},c.prototype.getOctEncodedNormal=function(e,n,r){n=(n+1)*this.getStride()-1;var i=e[n]/256,a=Math.floor(i),o=256*(i-a);return t.fromElements(a,o,r)},c.prototype.getStride=function(){var e;switch(this.quantization){case s.BITS12:e=3;break;default:e=6}return this.hasWebMercatorT&&++e,this.hasVertexNormals&&++e,e};var E={position3DAndHeight:0,textureCoordAndEncodedNormals:1},_={compressed0:0,compressed1:1};return c.prototype.getAttributes=function(e){var t,n=r.FLOAT,i=r.getSizeInBytes(n);if(this.quantization===s.NONE){var a=2;return this.hasWebMercatorT&&++a,this.hasVertexNormals&&++a,t=(4+a)*i,[{index:E.position3DAndHeight,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:t},{index:E.textureCoordAndEncodedNormals,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:a,offsetInBytes:4*i,strideInBytes:t}]}var o=3,u=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++o,this.hasWebMercatorT&&this.hasVertexNormals?(++u,t=(o+u)*i,[{index:_.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o,offsetInBytes:0,strideInBytes:t},{index:_.compressed1,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:u,offsetInBytes:o*i,strideInBytes:t}]):[{index:_.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o}]},c.prototype.getAttributeLocations=function(){return this.quantization===s.NONE?E:_},c.clone=function(e,t){return a(t)||(t=new c),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=n.clone(e.center),t.toScaledENU=u.clone(e.toScaledENU),t.fromScaledENU=u.clone(e.fromScaledENU),t.matrix=u.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t},c}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},s.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},s}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var n,r=t.name,i=t.message;n=e(r)&&e(i)?r+": "+i:t.toString();var a=t.stack;return e(a)&&(n+="\n"+a),n}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,n,r){"use strict";function i(t,n,r){try{return t(n,r)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){n(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+r(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/createVerticesFromGoogleEarthEnterpriseBuffer",["../Core/AxisAlignedBoundingBox","../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/defaultValue","../Core/defined","../Core/Ellipsoid","../Core/EllipsoidalOccluder","../Core/Math","../Core/Matrix4","../Core/OrientedBoundingBox","../Core/Rectangle","../Core/RuntimeError","../Core/TerrainEncoding","../Core/Transforms","../Core/WebMercatorProjection","./createTaskProcessorWorker"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,p,E,_){"use strict";function y(e,t,n){n=a(n,c);for(var r=e.length,i=0;i<r;++i)if(n.equalsEpsilon(e[i],t,c.EPSILON12))return i;return-1}function T(e,t){e.ellipsoid=u.clone(e.ellipsoid),e.rectangle=h.clone(e.rectangle);var n=R(e.buffer,e.relativeToCenter,e.ellipsoid,e.rectangle,e.nativeRectangle,e.exaggeration,e.skirtHeight,e.includeWebMercatorT,e.negativeAltitudeExponentBias,e.negativeElevationThreshold),r=n.vertices;t.push(r.buffer);var i=n.indices;return t.push(i.buffer),{vertices:r.buffer,indices:i.buffer,numberOfAttributes:n.encoding.getStride(),minimumHeight:n.minimumHeight,maximumHeight:n.maximumHeight,boundingSphere3D:n.boundingSphere3D,orientedBoundingBox:n.orientedBoundingBox,occludeePointInScaledSpace:n.occludeePointInScaledSpace,encoding:n.encoding,vertexCountWithoutSkirts:n.vertexCountWithoutSkirts,skirtIndex:n.skirtIndex,westIndicesSouthToNorth:n.westIndicesSouthToNorth,southIndicesEastToWest:n.southIndicesEastToWest,eastIndicesNorthToSouth:n.eastIndicesNorthToSouth,northIndicesWestToEast:n.northIndicesWestToEast}}function R(a,u,h,_,T,R,P,U,D,F){var L,b,B,z,q,G;o(_)?(L=_.west,b=_.south,B=_.east,z=_.north,q=_.width,G=_.height):(L=c.toRadians(T.west),b=c.toRadians(T.south),B=c.toRadians(T.east),z=c.toRadians(T.north),q=c.toRadians(_.width),G=c.toRadians(_.height));var V,W,X=[b,z],H=[L,B],Y=p.eastNorthUpToFixedFrame(u,h),k=l.inverseTransformation(Y,x);U&&(V=E.geodeticLatitudeToMercatorAngle(b),W=1/(E.geodeticLatitudeToMercatorAngle(z)-V));var j=new DataView(a),Z=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,J=w;J.x=Number.POSITIVE_INFINITY,J.y=Number.POSITIVE_INFINITY,J.z=Number.POSITIVE_INFINITY;var Q=C;Q.x=Number.NEGATIVE_INFINITY,Q.y=Number.NEGATIVE_INFINITY,Q.z=Number.NEGATIVE_INFINITY;var $,ee,te=0,ne=0,re=0;for(ee=0;ee<4;++ee){var ie=te;$=j.getUint32(ie,!0),ie+=g;var ae=c.toRadians(180*j.getFloat64(ie,!0));ie+=N,-1===y(H,ae)&&H.push(ae);var oe=c.toRadians(180*j.getFloat64(ie,!0));ie+=N,-1===y(X,oe)&&X.push(oe),ie+=2*N;var ue=j.getInt32(ie,!0);ie+=S,ne+=ue,ue=j.getInt32(ie,!0),re+=3*ue,te+=$+g}var se=[],ce=[],le=new Array(ne),fe=new Array(ne),he=new Array(ne),de=U?new Array(ne):[],me=new Array(re),pe=[],Ee=[],_e=[],ye=[],Te=0,Re=0;for(te=0,ee=0;ee<4;++ee){$=j.getUint32(te,!0),te+=g;var Ae=te,ve=c.toRadians(180*j.getFloat64(te,!0));te+=N;var Se=c.toRadians(180*j.getFloat64(te,!0));te+=N;var ge=c.toRadians(180*j.getFloat64(te,!0)),Ie=.5*ge;te+=N;var Ne=c.toRadians(180*j.getFloat64(te,!0)),Me=.5*Ne;te+=N;var Oe=j.getInt32(te,!0);te+=S;var we=j.getInt32(te,!0);te+=S,te+=S;for(var Ce=new Array(Oe),xe=0;xe<Oe;++xe){var Pe=ve+j.getUint8(te++)*ge;M.longitude=Pe;var Ue=Se+j.getUint8(te++)*Ne;M.latitude=Ue;var De=6371010*j.getFloat32(te,!0);if(te+=I,De<F&&(De*=D),De*=R,M.height=De,-1!==y(H,Pe)||-1!==y(X,Ue)){var Fe=y(se,M,i);if(-1!==Fe){Ce[xe]=ce[Fe];continue}se.push(i.clone(M)),ce.push(Te)}Ce[xe]=Te,Math.abs(Pe-L)<Ie?pe.push({index:Te,cartographic:i.clone(M)}):Math.abs(Pe-B)<Ie?_e.push({index:Te,cartographic:i.clone(M)}):Math.abs(Ue-b)<Me?Ee.push({index:Te,cartographic:i.clone(M)}):Math.abs(Ue-z)<Me&&ye.push({index:Te,cartographic:i.clone(M)}),Z=Math.min(De,Z),K=Math.max(De,K),he[Te]=De;var Le=h.cartographicToCartesian(M);le[Te]=Le,U&&(de[Te]=(E.geodeticLatitudeToMercatorAngle(Ue)-V)*W),l.multiplyByPoint(k,Le,O),r.minimumByComponent(O,J,J),r.maximumByComponent(O,Q,Q);var be=(Pe-L)/(B-L);be=c.clamp(be,0,1);var Be=(Ue-b)/(z-b);Be=c.clamp(Be,0,1),fe[Te]=new n(be,Be),++Te}for(var ze=3*we,qe=0;qe<ze;++qe,++Re)me[Re]=Ce[j.getUint16(te,!0)],te+=v -;if($!==te-Ae)throw new d("Invalid terrain tile.")}le.length=Te,fe.length=Te,he.length=Te,U&&(de.length=Te);var Ge=Te,Ve=Re,We={hMin:Z,lastBorderPoint:void 0,skirtHeight:P,toENU:k,ellipsoid:h,minimum:J,maximum:Q};pe.sort(function(e,t){return t.cartographic.latitude-e.cartographic.latitude}),Ee.sort(function(e,t){return e.cartographic.longitude-t.cartographic.longitude}),_e.sort(function(e,t){return e.cartographic.latitude-t.cartographic.latitude}),ye.sort(function(e,t){return t.cartographic.longitude-e.cartographic.longitude});if(A(le,he,fe,de,me,We,pe,-1e-5*q,!0,-1e-5*G),A(le,he,fe,de,me,We,Ee,-1e-5*G,!1),A(le,he,fe,de,me,We,_e,1e-5*q,!0,1e-5*G),A(le,he,fe,de,me,We,ye,1e-5*G,!1),pe.length>0&&ye.length>0){var Xe=pe[0].index,He=Ge,Ye=ye[ye.length-1].index,ke=le.length-1;me.push(Ye,ke,He,He,Xe,Ye)}ne=le.length;var je,Ze=t.fromPoints(le);o(_)&&_.width<c.PI_OVER_TWO+c.EPSILON5&&(je=f.fromRectangle(_,Z,K,h));for(var Ke=new s(h),Je=Ke.computeHorizonCullingPoint(u,le),Qe=new e(J,Q,u),$e=new m(Qe,We.hMin,K,Y,!1,U),et=new Float32Array(ne*$e.getStride()),tt=0,nt=0;nt<ne;++nt)tt=$e.encode(et,tt,le[nt],fe[nt],he[nt],void 0,de[nt]);var rt=pe.map(function(e){return e.index}).reverse(),it=Ee.map(function(e){return e.index}).reverse(),at=_e.map(function(e){return e.index}).reverse(),ot=ye.map(function(e){return e.index}).reverse();return it.unshift(at[at.length-1]),it.push(rt[0]),ot.unshift(rt[rt.length-1]),ot.push(at[0]),{vertices:et,indices:new Uint16Array(me),maximumHeight:K,minimumHeight:Z,encoding:$e,boundingSphere3D:Ze,orientedBoundingBox:je,occludeePointInScaledSpace:Je,vertexCountWithoutSkirts:Ge,skirtIndex:Ve,westIndicesSouthToNorth:rt,southIndicesEastToWest:it,eastIndicesNorthToSouth:at,northIndicesWestToEast:ot}}function A(e,t,a,u,s,f,h,d,m,p){for(var E=h.length,_=0;_<E;++_){var y=h[_],T=y.cartographic,R=y.index,A=e.length,v=T.longitude,S=T.latitude;S=c.clamp(S,-c.PI_OVER_TWO,c.PI_OVER_TWO);var g=T.height-f.skirtHeight;f.hMin=Math.min(f.hMin,g),i.fromRadians(v,S,g,M),m&&(M.longitude+=d),m?_===E-1?M.latitude+=p:0===_&&(M.latitude-=p):M.latitude+=d;var I=f.ellipsoid.cartographicToCartesian(M);e.push(I),t.push(g),a.push(n.clone(a[R])),u.length>0&&u.push(u[R]),l.multiplyByPoint(f.toENU,I,O);var N=f.minimum,w=f.maximum;r.minimumByComponent(O,N,N),r.maximumByComponent(O,w,w);var C=f.lastBorderPoint;if(o(C)){var x=C.index;s.push(x,A-1,A,A,R,x)}f.lastBorderPoint=y}}var v=Uint16Array.BYTES_PER_ELEMENT,S=Int32Array.BYTES_PER_ELEMENT,g=Uint32Array.BYTES_PER_ELEMENT,I=Float32Array.BYTES_PER_ELEMENT,N=Float64Array.BYTES_PER_ELEMENT,M=new i,O=new r,w=new r,C=new r,x=new l;return _(T)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Gt,b as Xt}from"./chunk-56S3WY3H.js";import{a as kt}from"./chunk-3R25OJXK.js";import{a as lt}from"./chunk-ZEP44EYN.js";import{a as Dt}from"./chunk-7MCGOXW3.js";import"./chunk-H3L4SJP4.js";import"./chunk-BSHGEEYG.js";import{a as qt}from"./chunk-CHGCLMPO.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{d as Lt}from"./chunk-T5AUOWE7.js";import{b as $,g as Ot,i as zt}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as P,b as N,c as wt,d as Ht}from"./chunk-AODSXSC5.js";import{a as r}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import{a as Vt}from"./chunk-IIPSFM7Z.js";import{a as Ut}from"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{e as ht}from"./chunk-DRYFJEFT.js";var te=Uint16Array.BYTES_PER_ELEMENT,mt=Int32Array.BYTES_PER_ELEMENT,Pt=Uint32Array.BYTES_PER_ELEMENT,ee=Float32Array.BYTES_PER_ELEMENT,H=Float64Array.BYTES_PER_ELEMENT;function tt(n,l,e){e=Ut(e,r);let i=n.length;for(let c=0;c<i;++c)if(e.equalsEpsilon(n[c],l,r.EPSILON12))return c;return-1}function oe(n,l){n.ellipsoid=Ht.clone(n.ellipsoid),n.rectangle=zt.clone(n.rectangle);let e=se(n.buffer,n.relativeToCenter,n.ellipsoid,n.rectangle,n.nativeRectangle,n.exaggeration,n.exaggerationRelativeHeight,n.skirtHeight,n.includeWebMercatorT,n.negativeAltitudeExponentBias,n.negativeElevationThreshold),i=e.vertices;l.push(i.buffer);let c=e.indices;return l.push(c.buffer),{vertices:i.buffer,indices:c.buffer,numberOfAttributes:e.encoding.stride,minimumHeight:e.minimumHeight,maximumHeight:e.maximumHeight,boundingSphere3D:e.boundingSphere3D,orientedBoundingBox:e.orientedBoundingBox,occludeePointInScaledSpace:e.occludeePointInScaledSpace,encoding:e.encoding,vertexCountWithoutSkirts:e.vertexCountWithoutSkirts,indexCountWithoutSkirts:e.indexCountWithoutSkirts,westIndicesSouthToNorth:e.westIndicesSouthToNorth,southIndicesEastToWest:e.southIndicesEastToWest,eastIndicesNorthToSouth:e.eastIndicesNorthToSouth,northIndicesWestToEast:e.northIndicesWestToEast}}var u=new N,G=new P,ne=new P,ie=new P,re=new $;function se(n,l,e,i,c,et,m,ot,T,nt,it){let I,h,E,f,x,p;ht(i)?(I=i.west,h=i.south,E=i.east,f=i.north,x=i.width,p=i.height):(I=r.toRadians(c.west),h=r.toRadians(c.south),E=r.toRadians(c.east),f=r.toRadians(c.north),x=r.toRadians(i.width),p=r.toRadians(i.height));let X=[h,f],A=[I,E],V=Ot.eastNorthUpToFixedFrame(l,e),j=$.inverseTransformation(V,re),O,Q;T&&(O=lt.geodeticLatitudeToMercatorAngle(h),Q=1/(lt.geodeticLatitudeToMercatorAngle(f)-O));let y=et!==1,a=new DataView(n),z=Number.POSITIVE_INFINITY,J=Number.NEGATIVE_INFINITY,b=ne;b.x=Number.POSITIVE_INFINITY,b.y=Number.POSITIVE_INFINITY,b.z=Number.POSITIVE_INFINITY;let M=ie;M.x=Number.NEGATIVE_INFINITY,M.y=Number.NEGATIVE_INFINITY,M.z=Number.NEGATIVE_INFINITY;let o=0,S=0,At=0,rt,L;for(L=0;L<4;++L){let t=o;rt=a.getUint32(t,!0),t+=Pt;let d=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(A,d)===-1&&A.push(d);let Y=r.toRadians(a.getFloat64(t,!0)*180);t+=H,tt(X,Y)===-1&&X.push(Y),t+=2*H;let B=a.getInt32(t,!0);t+=mt,S+=B,B=a.getInt32(t,!0),At+=B*3,o+=rt+Pt}let yt=[],bt=[],g=new Array(S),R=new Array(S),_=new Array(S),C=T?new Array(S):[],F=y?new Array(S):[],v=new Array(At),k=[],st=[],ct=[],W=[],s=0,pt=0;for(o=0,L=0;L<4;++L){rt=a.getUint32(o,!0),o+=Pt;let t=o,d=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let Y=r.toRadians(a.getFloat64(o,!0)*180);o+=H;let B=r.toRadians(a.getFloat64(o,!0)*180),Ft=B*.5;o+=H;let vt=r.toRadians(a.getFloat64(o,!0)*180),Wt=vt*.5;o+=H;let Yt=a.getInt32(o,!0);o+=mt;let Zt=a.getInt32(o,!0);o+=mt,o+=mt;let St=new Array(Yt);for(let U=0;U<Yt;++U){let Z=d+a.getUint8(o++)*B;u.longitude=Z;let D=Y+a.getUint8(o++)*vt;u.latitude=D;let w=a.getFloat32(o,!0);if(o+=ee,w!==0&&w<it&&(w*=-Math.pow(2,nt)),w*=6371010,u.height=w,tt(A,Z)!==-1||tt(X,D)!==-1){let dt=tt(yt,u,N);if(dt===-1)yt.push(N.clone(u)),bt.push(s);else{St[U]=bt[dt];continue}}St[U]=s,Math.abs(Z-I)<Ft?k.push({index:s,cartographic:N.clone(u)}):Math.abs(Z-E)<Ft?ct.push({index:s,cartographic:N.clone(u)}):Math.abs(D-h)<Wt?st.push({index:s,cartographic:N.clone(u)}):Math.abs(D-f)<Wt&&W.push({index:s,cartographic:N.clone(u)}),z=Math.min(w,z),J=Math.max(w,J),_[s]=w;let Nt=e.cartographicToCartesian(u);if(g[s]=Nt,T&&(C[s]=(lt.geodeticLatitudeToMercatorAngle(D)-O)*Q),y){let dt=e.geodeticSurfaceNormal(Nt);F[s]=dt}$.multiplyByPoint(j,Nt,G),P.minimumByComponent(G,b,b),P.maximumByComponent(G,M,M);let Tt=(Z-I)/(E-I);Tt=r.clamp(Tt,0,1);let Bt=(D-h)/(f-h);Bt=r.clamp(Bt,0,1),R[s]=new wt(Tt,Bt),++s}let $t=Zt*3;for(let U=0;U<$t;++U,++pt)v[pt]=St[a.getUint16(o,!0)],o+=te;if(rt!==o-t)throw new Vt("Invalid terrain tile.")}g.length=s,R.length=s,_.length=s,T&&(C.length=s),y&&(F.length=s);let Mt=s,jt=pt,K={hMin:z,lastBorderPoint:void 0,skirtHeight:ot,toENU:j,ellipsoid:e,minimum:b,maximum:M};k.sort(function(t,d){return d.cartographic.latitude-t.cartographic.latitude}),st.sort(function(t,d){return t.cartographic.longitude-d.cartographic.longitude}),ct.sort(function(t,d){return t.cartographic.latitude-d.cartographic.latitude}),W.sort(function(t,d){return d.cartographic.longitude-t.cartographic.longitude});let q=1e-5;if(gt(g,_,R,C,F,v,K,k,-q*x,!0,-q*p),gt(g,_,R,C,F,v,K,st,-q*p,!1),gt(g,_,R,C,F,v,K,ct,q*x,!0,q*p),gt(g,_,R,C,F,v,K,W,q*p,!1),k.length>0&&W.length>0){let t=k[0].index,d=Mt,Y=W[W.length-1].index,B=g.length-1;v.push(Y,B,d,d,t,Y)}S=g.length;let Qt=Lt.fromPoints(g),Rt;ht(i)&&(Rt=Dt.fromRectangle(i,z,J,e));let Jt=new Gt(e).computeHorizonCullingPointPossiblyUnderEllipsoid(l,g,z),Kt=new qt(b,M,l),It=new Xt(l,Kt,K.hMin,J,V,!1,T,y,et,m),_t=new Float32Array(S*It.stride),Ct=0;for(let t=0;t<S;++t)Ct=It.encode(_t,Ct,g[t],R[t],_[t],void 0,C[t],F[t]);let at=k.map(function(t){return t.index}).reverse(),Et=st.map(function(t){return t.index}).reverse(),ut=ct.map(function(t){return t.index}).reverse(),xt=W.map(function(t){return t.index}).reverse();return Et.unshift(ut[ut.length-1]),Et.push(at[0]),xt.unshift(at[at.length-1]),xt.push(ut[0]),{vertices:_t,indices:new Uint16Array(v),maximumHeight:J,minimumHeight:z,encoding:It,boundingSphere3D:Qt,orientedBoundingBox:Rt,occludeePointInScaledSpace:Jt,vertexCountWithoutSkirts:Mt,indexCountWithoutSkirts:jt,westIndicesSouthToNorth:at,southIndicesEastToWest:Et,eastIndicesNorthToSouth:ut,northIndicesWestToEast:xt}}function gt(n,l,e,i,c,et,m,ot,T,nt,it){let I=ot.length;for(let h=0;h<I;++h){let E=ot[h],f=E.cartographic,x=E.index,p=n.length,X=f.longitude,A=f.latitude;A=r.clamp(A,-r.PI_OVER_TWO,r.PI_OVER_TWO);let V=f.height-m.skirtHeight;m.hMin=Math.min(m.hMin,V),N.fromRadians(X,A,V,u),nt&&(u.longitude+=T),nt?h===I-1?u.latitude+=it:h===0&&(u.latitude-=it):u.latitude+=T;let j=m.ellipsoid.cartographicToCartesian(u);n.push(j),l.push(V),e.push(wt.clone(e[x])),i.length>0&&i.push(i[x]),c.length>0&&c.push(c[x]),$.multiplyByPoint(m.toENU,j,G);let O=m.minimum,Q=m.maximum;P.minimumByComponent(G,O,O),P.maximumByComponent(G,Q,Q);let ft=m.lastBorderPoint;if(ht(ft)){let y=ft.index;et.push(y,p-1,p,p,x,y)}m.lastBorderPoint=E}}var Ae=kt(oe);export{Ae as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js index 22450287a..abe0aae32 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromHeightmap.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,m=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:m,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,m=i.y,E=i.z,p=l*l*d*d,_=f*f*m*m,y=h*h*E*E,T=p+_+y,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,v=u.y,g=u.z,I=o;I.x=A.x*S*2,I.y=A.y*v*2,I.z=A.z*g*2;var M,N,O,w,C,x,P,U,D,F,L,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(I)),B=0;do{b-=B,O=1/(1+b*S),w=1/(1+b*v),C=1/(1+b*g),x=O*O,P=w*w,U=C*C,D=x*O,F=P*w,L=U*C,M=p*x+_*P+y*U-1,N=p*D*S+_*F*v+y*L*g;B=M/(-2*N)}while(Math.abs(M)>r.EPSILON12);return t(c)?(c.x=l*O,c.y=f*w,c.z=h*C,c):new e(l*O,f*w,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var m=r(n)?n.oneOverRadii:f,E=r(n)?n.oneOverRadiiSquared:h,p=r(n)?n._centerToleranceSquared:d,_=o(t,m,E,p,c);if(r(_)){var y=e.multiplyComponents(_,E,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),A=Math.asin(y.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var m=new e,E=new e,p=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,m),u=e.subtract(n,a,p),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],m=d.x,E=d.y,p=d.z;i=Math.min(m,i),s=Math.max(m,s),o=Math.min(E,o),c=Math.max(E,c),u=Math.min(p,u),l=Math.max(p,l)}var _=n.minimum;_.x=i,_.y=o,_.z=u;var y=n.maximum;return y.x=s,y.y=c,y.z=l,n.center=e.midpoint(_,y,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(E[n],m[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],m[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=m[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,p=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(p-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,m=n-u-f+d,E=2*(i-h),p=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+d;return r(t)?(t[0]=m,t[1]=_,t[2]=R,t[3]=E,t[4]=y,t[5]=A,t[6]=p,t[7]=T,t[8]=S,t):new s(m,E,p,_,y,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,m=a*i+c*o*u,E=-c*i+a*o*u,p=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=p,t[3]=f,t[4]=m,t[5]=_,t[6]=h,t[7]=E,t[8]=y,t):new s(l,f,h,d,m,E,p,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var m=[1,0,0],E=[2,2,1],p=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,p),s.transpose(p,_),s.multiply(h,p,h),s.multiply(_,h,h),s.multiply(o,p,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){ -return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,m,E,p){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(m,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(E,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(p,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,m=t.y*t.z,E=t.y*t.w,p=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-p+y,R=2*(c-_),A=2*(f+E),S=2*(c+_),v=-s+d-p+y,g=2*(m-h),I=2*(f-E),M=2*(m+h),N=-s-d+p+y;return r[0]=T*a,r[1]=S*a,r[2]=I*a,r[3]=0,r[4]=R*o,r[5]=v*o,r[6]=M*o,r[7]=0,r[8]=A*u,r[9]=g*u,r[10]=N*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,m=f.x,E=f.y,p=f.z,_=d.x,y=d.y,T=d.z,R=r.x,A=r.y,S=r.z,v=u*-R+s*-A+c*-S,g=_*-R+y*-A+T*-S,I=m*R+E*A+p*S;return i(n)?(n[0]=u,n[1]=_,n[2]=-m,n[3]=0,n[4]=s,n[5]=y,n[6]=-E,n[7]=0,n[8]=c,n[9]=T,n[10]=-p,n[11]=0,n[12]=v,n[13]=g,n[14]=I,n[15]=1,n):new l(u,s,c,v,_,y,T,g,-m,-E,-p,I,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,m=f,E=a+c,p=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=m,i[11]=0,i[12]=E,i[13]=p,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var m=new e;l.setScale=function(t,n,r){var i=l.getScale(t,m),a=e.divideComponents(n,i,m);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var E=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),n};var p=new e;l.getMaximumScale=function(t){return l.getScale(t,p),e.maximumComponent(p)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],m=e[11],E=e[12],p=e[13],_=e[14],y=e[15],T=t[0],R=t[1],A=t[2],S=t[3],v=t[4],g=t[5],I=t[6],M=t[7],N=t[8],O=t[9],w=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=r*T+u*R+f*A+E*S,L=i*T+s*R+h*A+p*S,b=a*T+c*R+d*A+_*S,B=o*T+l*R+m*A+y*S,z=r*v+u*g+f*I+E*M,q=i*v+s*g+h*I+p*M,G=a*v+c*g+d*I+_*M,V=o*v+l*g+m*I+y*M,W=r*N+u*O+f*w+E*C,X=i*N+s*O+h*w+p*C,H=a*N+c*O+d*w+_*C,Y=o*N+l*O+m*w+y*C,k=r*x+u*P+f*U+E*D,j=i*x+s*P+h*U+p*D,Z=a*x+c*P+d*U+_*D,K=o*x+l*P+m*U+y*D;return n[0]=F,n[1]=L,n[2]=b,n[3]=B,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=W,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],m=e[14],E=t[0],p=t[1],_=t[2],y=t[4],T=t[5],R=t[6],A=t[8],S=t[9],v=t[10],g=t[12],I=t[13],M=t[14],N=r*E+o*p+c*_,O=i*E+u*p+l*_,w=a*E+s*p+f*_,C=r*y+o*T+c*R,x=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*A+o*S+c*v,D=i*A+u*S+l*v,F=a*A+s*S+f*v,L=r*g+o*I+c*M+h,b=i*g+u*I+l*M+d,B=a*g+s*I+f*M+m;return n[0]=N,n[1]=O,n[2]=w,n[3]=0,n[4]=C,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],m=t[2],E=t[3],p=t[4],_=t[5],y=t[6],T=t[7],R=t[8],A=r*h+o*d+c*m,S=i*h+u*d+l*m,v=a*h+s*d+f*m,g=r*E+o*p+c*_,I=i*E+u*p+l*_,M=a*E+s*p+f*_,N=r*y+o*T+c*R,O=i*y+u*T+l*R,w=a*y+s*T+f*R;return n[0]=A,n[1]=S,n[2]=v,n[3]=0,n[4]=g,n[5]=I,n[6]=M,n[7]=0,n[8]=N,n[9]=O,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],m=e[13],E=e[2],p=e[6],_=e[10],S=e[14],v=e[3],g=e[7],I=e[11],M=e[15],N=_*M,O=S*I,w=p*M,C=S*g,x=p*I,P=_*g,U=E*M,D=S*v,F=E*I,L=_*v,b=E*g,B=p*v,z=N*h+C*d+x*m-(O*h+w*d+P*m),q=O*f+U*d+L*m-(N*f+D*d+F*m),G=w*f+D*h+b*m-(C*f+U*h+B*m),V=P*f+F*h+B*d-(x*f+L*h+b*d),W=O*i+w*a+P*o-(N*i+C*a+x*o),X=N*r+D*a+F*o-(O*r+U*a+L*o),H=C*r+U*i+B*o-(w*r+D*i+b*o),Y=x*r+L*i+b*a-(P*r+F*i+B*a);N=a*m,O=o*d,w=i*m,C=o*h,x=i*d,P=a*h,U=r*m,D=o*f,F=r*d,L=a*f,b=r*h,B=i*f;var k=N*g+C*I+x*M-(O*g+w*I+P*M),j=O*v+U*I+L*M-(N*v+D*I+F*M),Z=w*v+D*g+b*M-(C*v+U*g+B*M),K=P*v+F*g+B*I-(x*v+L*g+b*I),J=w*_+P*S+O*p-(x*S+N*p+C*_),Q=F*S+N*E+D*_-(U*_+L*S+O*E),$=U*p+B*S+C*E-(b*S+w*E+D*p),ee=b*_+x*E+L*p-(F*p+B*_+P*E),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=W*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],m=-n*f-r*h-i*d,E=-a*f-o*h-u*d,p=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=m,t[13]=E,t[14]=p,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var m=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,m),o=Math.max(o,m)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,m=0,E=e.length;m<E;m++){var p=t.cartesianToCartographic(e[m]);o=Math.min(o,p.longitude),c=Math.max(c,p.longitude),h=Math.min(h,p.latitude),d=Math.max(d,p.latitude);var _=p.longitude>=0?p.longitude:p.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,m=e.west,E=c;E.height=i,E.longitude=m,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=m,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var p=1;p<8;++p)E.longitude=-Math.PI+p*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=m,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var m=new e,E=new e,p=new e,_=new e,y=new e,T=new e,R=new e,A=new e,S=new e,v=new e,g=new e,I=new e,M=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,m),u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var M=a.x,N=a.y,O=a.z;M<o.x&&e.clone(a,o),M>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),O<s.z&&e.clone(a,s),O>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=w;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=S;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=v;B.x=o.x,B.y=u.y,B.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,I),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,F,A));if(W>L){var X=Math.sqrt(W);b=.5*(b+X),L=b*b;var H=X-b;F.x=(b*F.x+H*a.x)/X,F.y=(b*F.y+H*a.y)/X,F.z=(b*F.z+H*a.z)/X}}return b<G?(e.clone(F,n.center),n.radius=b):(e.clone(q,n.center),n.radius=G),n};var N=new o,O=new e,w=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,N),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=n.project(C,O),c=n.project(x,w),l=c.x-s.x,f=c.y-s.y,m=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+m*m);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*m,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,m),l=e.clone(u,E),f=e.clone(u,p),h=e.clone(u,_),M=e.clone(u,y),N=e.clone(u,T),O=t.length;for(s=0;s<O;s+=a){var w=t[s]+n.x,C=t[s+1]+n.y,x=t[s+2]+n.z;u.x=w,u.y=C,u.z=x,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>M.y&&e.clone(u,M),x<f.z&&e.clone(u,f),x>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(M,l,A)),D=e.magnitudeSquared(e.subtract(N,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=M),D>b&&(b=D,F=f,L=N);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=v;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=M.y,V.z=N.z;var W=e.midpoint(G,V,I),X=0;for(s=0;s<O;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,W,A));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,p),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),M=t.length;for(o=0;o<M;o+=3){var N=t[o]+n[o],O=t[o+1]+n[o+1],w=t[o+2]+n[o+2];a.x=N,a.y=O,a.z=w,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),O<s.y&&e.clone(a,s),O>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=v;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,I),V=0;for(o=0;o<M;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,r.center),r.radius=B):(e.clone(G,r.center),r.radius=V),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),m=j,E=m[0];e.add(s,l,E),e.add(E,c,E),E=m[1],e.add(s,l,E),e.add(E,h,E),E=m[2],e.add(s,f,E),e.add(E,h,E),E=m[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=m[4],e.add(s,l,E),e.add(E,c,E),E=m[5],e.add(s,l,E),e.add(E,h,E),E=m[6],e.add(s,f,E),e.add(E,h,E),E=m[7],e.add(s,f,E),e.add(E,c,E);for(var p=m.length,_=0;_<p;++_){var y=m[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(m,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)}, -d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return M*e*e*e},d}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/EllipsoidalOccluder",["./BoundingSphere","./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./Rectangle"],function(e,t,n,r,i,a,o){"use strict";function u(e,n){this._ellipsoid=e,this._cameraPosition=new t,this._cameraPositionInScaledSpace=new t,this._distanceToLimbInScaledSpaceSquared=0,i(n)&&(this.cameraPosition=n)}function s(e,n,r){var i=e.transformPositionToScaledSpace(n,m),a=t.magnitudeSquared(i),o=Math.sqrt(a),u=t.divideByScalar(i,o,E);a=Math.max(1,a),o=Math.max(1,o);var s=t.dot(u,r),c=t.magnitude(t.cross(u,r,u)),l=1/o;return 1/(s*l-c*(Math.sqrt(a-1)*l))}function c(e,n,r){if(!(n<=0||n===1/0||n!==n))return t.multiplyByScalar(e,n,r)}function l(e,n){return t.equals(n,t.ZERO)?n:(e.transformPositionToScaledSpace(n,p),t.normalize(p,p))}a(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){var n=this._ellipsoid,r=n.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=t.magnitudeSquared(r)-1;t.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=r,this._distanceToLimbInScaledSpaceSquared=i}}});var f=new t;u.prototype.isPointVisible=function(e){var t=this._ellipsoid,n=t.transformPositionToScaledSpace(e,f);return this.isScaledSpacePointVisible(n)},u.prototype.isScaledSpacePointVisible=function(e){var n=this._cameraPositionInScaledSpace,r=this._distanceToLimbInScaledSpaceSquared,i=t.subtract(e,n,f),a=-t.dot(i,n);return!(r<0?a>0:a>r&&a*a/t.magnitudeSquared(i)>r)},u.prototype.computeHorizonCullingPoint=function(e,n,r){i(r)||(r=new t);for(var a=this._ellipsoid,o=l(a,e),u=0,f=0,h=n.length;f<h;++f){var d=n[f],m=s(a,d,o);u=Math.max(u,m)}return c(o,u,r)};var h=new t;u.prototype.computeHorizonCullingPointFromVertices=function(e,n,a,o,u){i(u)||(u=new t),o=r(o,t.ZERO);for(var f=this._ellipsoid,d=l(f,e),m=0,E=0,p=n.length;E<p;E+=a){h.x=n[E]+o.x,h.y=n[E+1]+o.y,h.z=n[E+2]+o.z;var _=s(f,h,d);m=Math.max(m,_)}return c(d,m,u)};var d=[];u.prototype.computeHorizonCullingPointFromRectangle=function(n,r,i){var a=o.subsample(n,r,0,d),u=e.fromPoints(a);if(!(t.magnitude(u.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(u.center,a,i)};var m=new t,E=new t,p=new t;return u}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,m=o*s-h,E=o*c-u*s,p=u*c-d,_=4*m*p-E*E;if(_<0){var y,T,R;h*f>=l*d?(y=o,T=m,R=-2*u*m+o*E):(y=c,T=p,R=-c*E+2*s*p);var A=R<0?-1:1,S=-A*Math.abs(y)*Math.sqrt(-_);a=-R+S;var v=a/2,g=v<0?-Math.pow(-v,1/3):Math.pow(v,1/3),I=a===S?-g:-T/g;return i=T<=0?g+I:-R/(g*g+I*I+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var M=m,N=-2*u*m+o*E,O=p,w=-c*E+2*s*p,C=Math.sqrt(_),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-N)/3);i=2*Math.sqrt(-M);var U=Math.cos(P);a=i*U;var D=i*(-U/2-x*Math.sin(P)),F=a+D>2*u?a-u:D-u,L=o,b=F/L;P=Math.abs(Math.atan2(c*C,-w)/3),i=2*Math.sqrt(-O),U=Math.cos(P),a=i*U,D=i*(-U/2-x*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-F*z-L*B,W=F*B,X=(s*V-u*W)/(-u*V+s*G);return b<=X?b<=q?X<=q?[b,X,q]:[b,q,X]:[q,b,X]:b<=q?[X,b,q]:X<=q?[X,q,b]:[q,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var m=r.computeRealRoots(1,s,l);if(2===m.length){var E,p=m[0],_=m[1];if(p>=0&&_>=0){var y=Math.sqrt(p),T=Math.sqrt(_);return[h-T,h-y,h+y,h+T]}if(p>=0&&_<0)return E=Math.sqrt(p),[h-E,h+E];if(p<0&&_>=0)return E=Math.sqrt(_),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),A=(s+d-c/R)/2,S=(s+d+c/R)/2,v=r.computeRealRoots(1,R,A),g=r.computeRealRoots(1,-R,S);return 0!==v.length?(v[0]+=h,v[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,v[1]<=g[0]?[v[0],v[1],g[0],g[1]]:g[1]<=v[0]?[g[0],g[1],v[0],v[1]]:v[0]>=g[0]&&v[1]<=g[1]?[g[0],v[0],v[1],g[1]]:g[0]>=v[0]&&g[1]<=v[1]?[v[0],g[0],g[1],v[1]]:v[0]>g[0]&&v[0]<g[1]?[g[0],v[0],g[1],v[1]]:[v[0],g[0],v[1],g[1]]):v):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var m,E,p=d[0],_=i-p,y=_*_,T=t/2,R=_/2,A=y-4*o,S=y+4*Math.abs(o),v=c-4*p,g=c+4*Math.abs(p);if(p<0||A*g<v*S){var I=Math.sqrt(v);m=I/2,E=0===I?0:(t*R-a)/I}else{var M=Math.sqrt(A);m=0===M?0:(t*R-a)/M,E=M/2}var N,O;0===T&&0===m?(N=0,O=0):n.sign(T)===n.sign(m)?(N=T+m,O=p/N):(O=T-m,N=p/O);var w,C;0===R&&0===E?(w=0,C=0):n.sign(R)===n.sign(E)?(w=R+E,C=o/w):(C=R-E,w=o/C);var x=r.computeRealRoots(1,N,w),P=r.computeRealRoots(1,O,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,y),h=e.dot(u,u),d=2*e.dot(u,l),m=e.magnitudeSquared(l)-c,E=f(h,d,m,S);if(r(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function m(t,n,r,i,a){var l,f=i*i,h=a*a,m=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),p=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===y&&0===_){if(l=s.computeRealRoots(m,E,p),0===l.length)return T;var R=l[0],A=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-A)),T.push(new e(i,a*R,a*A)),2===l.length){var S=l[1],v=Math.sqrt(Math.max(1-S*S,0));T.push(new e(i,a*S,a*-v)),T.push(new e(i,a*S,a*v))}return T}var g=y*y,I=_*_,M=m*m,N=y*_,O=M+I,w=2*(E*m+N),C=2*p*m+E*E-I+g,x=2*(p*E-N),P=p*p-g;if(0===O&&0===w&&0===C&&0===x)return T;l=c.computeRealRoots(O,w,C,x,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var F,L=l[D],b=L*L,B=Math.max(1-b,0),z=Math.sqrt(B);F=o.sign(m)===o.sign(p)?d(m*b+p,E*L,o.EPSILON12):o.sign(p)===o.sign(E*L)?d(m*b,E*L+p,o.EPSILON12):d(m*b+E*L,p,o.EPSILON12);var q=d(_*L,y,o.EPSILON15),G=F*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++D):T.push(new e(i,a*L,a*z))}return T}var E={};E.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var p=new e,_=new e,y=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,m=t.direction,E=e.subtract(i,r,p),A=e.subtract(a,r,_),S=e.cross(m,A,y),v=e.dot(E,S);if(u){if(v<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,S))<0||l>v)return;if(c=e.cross(s,E,R),(f=e.dot(m,c))<0||l+f>v)return;h=e.dot(A,c)/v}else{if(Math.abs(v)<o.EPSILON6)return;var g=1/v;if(s=e.subtract(d,r,T),(l=e.dot(s,S)*g)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(m,c)*g)<0||l+f>1)return;h=e.dot(A,c)*g}return h},E.rayTriangle=function(t,n,i,a,o,u){var s=E.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;E.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var S={root0:0,root1:0};E.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var v=new l;E.lineSegmentSphere=function(t,n,i,a){var o=v;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,I=new e;E.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,I),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var m=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,m<o)return;if(m>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,p=r/s;return E<p?new a(E,p):{start:p,stop:E}}var _=Math.sqrt(r/i);return new a(_,_)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var M=new e,N=new e,O=new e,w=new e,C=new e,x=new u,P=new u,U=new u,D=new u,F=new u,L=new u,b=new u,B=new e,z=new e,q=new t;E.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,M);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,M),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,w),d=e.normalize(e.cross(h,f,N),N),E=e.normalize(e.cross(f,d,O),O),p=x;p[0]=f.x,p[1]=f.y,p[2]=f.z,p[3]=d.x,p[4]=d.y,p[5]=d.z,p[6]=E.x,p[7]=E.y,p[8]=E.z;var _=u.transpose(p,P),y=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=F;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var A,S,v=u.multiply(u.multiply(_,T,L),R,L),g=u.multiply(u.multiply(v,y,b),p,b),I=u.multiplyByVector(v,i,C),G=m(g,e.negate(I,M),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(y,u.multiplyByVector(p,G[H],B),B);var Y=e.normalize(e.subtract(A,i,w),w),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(A,W))}var j=n.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),S=e.magnitude(e.subtract(W,i,w))*Math.sqrt(1-X*X),S=c?-S:S,j.height=S,n.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return m(e)}function i(e){return m(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,m;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return E(f,e),e},m=function(e){return e=t(e),h=e.then,m=t,d=_,E(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return p(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){m(e)}var c,l,f,h,d,m,E,p,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(p=d.progress,E=function(e){h.push(e),--l||(m=E=_,d.reject(h))},m=function(e){f.push(e),--c||(m=E=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,p);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return p(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function m(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function E(e,t){for(var n,r=0;n=e[r++];)n(t)}function p(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=m,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,m,E,p,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,A=!1,S=" ",v=s.length,g=0;s&&g<v;g++)switch(s.charAt(g)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":S=s.charAt(g+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,S);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,A,y,c,f,R);case"o":return o(_,8,A,y,c,f,R);case"x":return o(_,16,A,y,c,f,R);case"X":return o(_,16,A,y,c,f,R).toUpperCase();case"u":return o(_,10,A,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),m=d<0?"-":T,_=m+i(String(Math.abs(d)),f,"0",!1),a(_,m,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,m=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],p=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=m+Math.abs(d)[E](f),a(_,m,y,c,R)[p]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){E.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}E.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=E.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-r[0].offset,n);if(i>=r.length)return E.addSeconds(e,-r[i-1].offset,n);var a=E.secondsDifference(r[i].julianDate,e);return 0===a?E.addSeconds(e,-r[i].offset,n):a<=1?void 0:E.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function m(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var p=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,v=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,I=/^(\d{2})(\.\d+)?/.source+g.source,M=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;E.fromGregorianDate=function(e,t){var n=m(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromDate=function(e,t){var n=m(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,p=0,y=0,g=0,O=u[0],w=u[1];if(null!==(u=O.match(v)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=O.match(R)))n=+u[1],s=+u[2];else if(null!==(u=O.match(T)))n=+u[1];else{var C;if(null!==(u=O.match(A)))n=+u[1],C=+u[2],a=o(n);else if(null!==(u=O.match(S))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(w)){u=w.match(N),null!==u?(h=+u[1],p=+u[2],y=+u[3],g=1e3*+(u[4]||0),D=5):(u=w.match(M),null!==u?(h=+u[1],p=+u[2],y=60*+(u[3]||0),D=4):null!==(u=w.match(I))&&(h=+u[1],p=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,p-=b;break;case"-":h+=L,p+=b;break;case"Z":break;default:p+=new Date(Date.UTC(n,s-1,l,h,p)).getTimezoneOffset()}}var B=60===y;for(B&&y--;p>=60;)p-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;p<0;)p+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var z=m(n,s,l,h,p,y,g);return r(t)?(d(z[0],z[1],t),f(t)):t=new E(z[0],z[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var O=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var n=!1,i=h(e,O);r(i)||(E.addSeconds(e,-1,O),i=h(O,O),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,m=c-(2447*d/80|0)|0;c=d/11|0;var p=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(A+=1),r(t)?(t.year=_,t.month=p,t.day=m,t.hour=y,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(_,p,m,y,R,A,S,n)},E.toDate=function(e){var t=E.toGregorianDate(e,p),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},E.toIso8601=function(t,n){var i=E.toGregorianDate(t,p),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(E.secondsDifference(e,t))<=n},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},E.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},E.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},E.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},E.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)}, -E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function m(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return I[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function p(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--I[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=E(e);return e.state=l.ACTIVE,g.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++I[e.serverKey],e.requestFunction().then(p(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--I[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,v=new u({comparator:f});v.maximumLength=S,v.reserve(S);var g=[],I={},M="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;v.length>e;){var t=v.pop();T(t)}S=e,v.maximumLength=e,v.reserve(e)}}}),h.update=function(){var e,t,n=0,r=g.length;for(e=0;e<r;++e)t=g[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(g[e-n]=t):++n;g.length-=n;var i=v.internalArray,a=v.length;for(e=0;e<a;++e)d(i[e]);v.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&v.length>0;)t=v.pop(),t.cancelled?T(t):!t.throttleByServer||m(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(M);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=I[r];return i(a)||(I[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||m(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(g.length>=h.maximumRequests)){d(e);var t=v.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;v.length>0;){T(v.pop())}for(var e=g.length,t=0;t<e;++t)T(g[t]);g.length=0,I={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return I[e]},h.requestHeap=v,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,E,p,_,y,T,R,A,S,v,g,I){"use strict";function M(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?C(a,t._queryParameters,r):a,e.query=void 0}function N(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function O(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===v.ISSUED||e.state===v.ACTIVE)throw new g("The Resource is already being fetched.");e.state=v.UNISSUED,e.deferred=void 0}function C(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=O(t.templateValues,{}),this._queryParameters=O(t.queryParameters,{}),this.headers=O(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);M(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==v.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==v.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(I.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new g("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);M(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return p(this._url)}},isBlobUri:{get:function(){return m(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&N(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);M(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;w(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==v.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=v.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=O(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=O(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=O(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=O(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=O(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(I.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))m(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){m(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else m(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function m(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.") -;var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||m<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var p=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=m,e._taiMinusUtcSecondsColumn=E,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,A=p.length;R<A;R+=e._columnCount){var S=p[R+i],v=p[R+E],g=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,I=new o(g,v,f.TAI);if(_.push(I),T){if(v!==y&&r(y)){var M=o.leapSeconds,N=t(M,I,d);if(N<0){var O=new u(I,v);M.splice(~N,0,O)}}y=v}}}function E(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function p(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return E(e,n,i,s,u),u;if(r.equals(l))return E(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,m=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-m;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?m=_:_-=R-T)}return u.xPoleWander=p(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=p(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=p(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=p(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=p(f,m,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),m=!r(h),E=m||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!m&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var p=t(a,e,o.compare,this._dateColumn);return p>=0?(p<a.length-1&&a[p+1].equals(e)&&++p,s=p,l=p):(l=~p,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=m.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,m=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=m,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],m=f;m<=h;++m)d.push(l(this,m));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var m,E,p=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(m=0;m<=u;++m)_[m]=p-R[m];for(m=0;m<=u;++m){for(T[m]=1,E=0;E<=u;++E)E!==m&&(T[m]*=_[E]);T[m]*=y[m];var A=3*(s+m);n.x+=T[m]*d[A++],n.y+=T[m]*d[A++],n.s+=T[m]*d[A]}return n}}}},s}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(I)&&(I=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(I=!0,M=o(e[1]))}return I}function s(){return u()&&M}function c(){if(!t(N)&&(N=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(N=!0,O=o(e[1]))}return N}function l(){return c()&&O}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(w=!0,C=o(e[1]),C.isNightly=!!e[2])}return w}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1]))}return x}function m(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function p(){return E()&&D}function _(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function y(){return t(b)||(b=/Windows/i.test(g.appVersion)),b}function T(){return _()&&L}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function S(){return A()?z:void 0}function v(){return v._result}var g;g="undefined"!=typeof navigator?navigator:{};var I,M,N,O,w,C,x,P,U,D,F,L,b,B,z,q;v._promise=void 0,v._result=void 0,v.initialize=function(){if(t(v._promise))return v._promise;var e=a.defer();if(v._promise=e.promise,E())return v._result=!1,e.resolve(v._result),e.promise;var n=new Image;return n.onload=function(){v._result=n.width>0&&n.height>0,e.resolve(v._result)},n.onerror=function(){v._result=!1,e.resolve(v._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(v,{initialized:{get:function(){return t(v._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:m,isEdge:E,edgeVersion:p,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:v,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],m=e[u.COLUMN2ROW2],E=h+d+m;if(E>0)n=Math.sqrt(E+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var p=l,_=0;d>h&&(_=1),m>h&&m>d&&(_=2);var y=p[_],T=p[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,m=new s,E=new s;s.fromHeadingPitchRoll=function(t,n){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),m=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(m,E,m),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var p=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,p);var u=s.computeAngle(y);r[o]=p.x*u,r[o+1]=p.y*u,r[o+2]=p.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,m=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=m,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,v=new s,g=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return v=s.multiplyByScalar(e,Math.sin((1-n)*u),v),g=s.multiplyByScalar(a,Math.sin(n*u),g),r=s.add(v,g,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var I=new e,M=new e,N=new s,O=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,N);s.multiply(a,r,O);var o=s.log(O,I);s.multiply(a,t,O);var u=s.log(O,M);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(n,N,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(n,r,i,O);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),m=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,r),s.add(m,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(n,r,i,O);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,E,p,_,y,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},v={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},I={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},M=new n,N=new n,O=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(g[a])?r=g[a]:(r=function(r,a,s){if(u(s)||(s=new y),p.equalsEpsilon(r.x,0,p.EPSILON14)&&p.equalsEpsilon(r.y,0,p.EPSILON14)){var c=p.sign(r.z);n.unpack(v[e],0,M),"east"!==e&&"west"!==e&&n.multiplyByScalar(M,c,M),n.unpack(v[t],0,N),"east"!==t&&"west"!==t&&n.multiplyByScalar(N,c,N),n.unpack(v[i],0,O),"east"!==i&&"west"!==i&&n.multiplyByScalar(O,c,O)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,I.up);var l=I.up,h=I.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,I.east),n.cross(l,h,I.north),n.multiplyByScalar(I.up,-1,I.down),n.multiplyByScalar(I.east,-1,I.west),n.multiplyByScalar(I.north,-1,I.south),M=I[e],N=I[t],O=I[i]}return s[0]=M.x,s[1]=M.y,s[2]=M.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=O.x,s[9]=O.y,s[10]=O.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},g[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var w=new T,C=new n(1,1,1),x=new y;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,C,x);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new _;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new y,b=new y,B=new _,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,L),L),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=p.TWO_PI/86400,G=new E;A.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%p.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var V=new m(0,0,0),W=new l(0,0,0,0,0,0),X=new _,H=new _;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=A.earthOrientationParameters.compute(e,W);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,m=e.secondsOfDay-E.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=m/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(y+T);S=S%1*p.TWO_PI;var v=_.fromRotationZ(S,H),g=_.multiply(h,v,X),I=Math.cos(n.xPoleWander),M=Math.cos(n.yPoleWander),N=Math.sin(n.xPoleWander),O=Math.sin(n.yPoleWander),w=r-2451545+i/R.SECONDS_PER_DAY;w/=36525;var C=-47e-6*w*p.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=H;return U[0]=I*x,U[1]=I*P,U[2]=N,U[3]=-M*P+O*N*x,U[4]=M*x+O*N*P,U[5]=-O*I,U[6]=-O*P-M*N*x,U[7]=O*x-M*N*P,U[8]=M*I,_.multiply(g,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,p.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return A.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},A}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m){"use strict";function E(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=m.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,p)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,p));var i=n.fromCartesian4(f.getColumn(r,2,p));this._plane=h.fromPointNormal(e,i)}var p=new r;u(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var _=new e;E.fromPoints=function(t,n){return new E(e.fromPoints(t,_).center,n)};var y=new d,T=new n;E.prototype.projectPointOntoPlane=function(e,r){var i=y;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},E.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},E.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=y;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},E.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return E.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},E.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},E}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,E){"use strict";function p(e,t){this.center=n.clone(a(e,n.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function _(e,t,r,i,a,u,s,c){o(c)||(c=new p);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=M;f.x=(t+r)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=N;h.x=(r-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var m=c.center;return f=d.multiplyByVector(l,f,f),n.add(e.origin,f,m),d.multiplyByScale(l,h,l),c}p.packedLength=n.packedLength+d.packedLength,p.pack=function(e,t,r){return r=a(r,0),n.pack(e.center,t,r),d.pack(e.halfAxes,t,r+n.packedLength),t},p.unpack=function(e,t,r){return t=a(t,0),o(r)||(r=new p),n.unpack(e,t,r.center),d.unpack(e,t+n.packedLength,r.halfAxes),r};var y=new n,T=new n,R=new n,A=new n,S=new n,v=new n,g=new d,I={unitary:new d,diagonal:new d};p.fromPoints=function(e,t){if(o(t)||(t=new p),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=n.ZERO,t;var r,i=e.length,a=n.clone(e[0],y);for(r=1;r<i;r++)n.add(a,e[r],a);var u=1/i;n.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,m=0,E=0;for(r=0;r<i;r++)s=n.subtract(e[r],a,T),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,m+=s.y*s.z,E+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,m*=u,E*=u;var _=g;_[0]=c,_[1]=l,_[2]=f,_[3]=l,_[4]=h,_[5]=m,_[6]=f,_[7]=m,_[8]=E;var M=d.computeEigenDecomposition(_,I),N=d.clone(M.unitary,t.halfAxes),O=d.getColumn(N,0,A),w=d.getColumn(N,1,S),C=d.getColumn(N,2,v),x=-Number.MAX_VALUE,P=-Number.MAX_VALUE,U=-Number.MAX_VALUE,D=Number.MAX_VALUE,F=Number.MAX_VALUE,L=Number.MAX_VALUE;for(r=0;r<i;r++)s=e[r],x=Math.max(n.dot(O,s),x),P=Math.max(n.dot(w,s),P),U=Math.max(n.dot(C,s),U),D=Math.min(n.dot(O,s),D),F=Math.min(n.dot(w,s),F),L=Math.min(n.dot(C,s),L);O=n.multiplyByScalar(O,.5*(D+x),O),w=n.multiplyByScalar(w,.5*(F+P),w),C=n.multiplyByScalar(C,.5*(L+U),C);var b=n.add(O,w,t.center);n.add(b,C,b);var B=R;return B.x=x-D,B.y=P-F,B.z=U-L,n.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var M=new n,N=new n,O=new r,w=new n,C=[new r,new r,new r,new r,new r,new r,new r,new r],x=[new n,new n,new n,new n,new n,new n,new n,new n],P=[new t,new t,new t,new t,new t,new t,new t,new t];p.fromRectangle=function(e,t,n,r,i){t=a(t,0),n=a(n,0),r=a(r,s.WGS84);var o=E.center(e,O),u=r.cartographicToCartesian(o,w),l=new c(u,r),f=l.plane,h=C[0],d=C[1],p=C[2],y=C[3],T=C[4],R=C[5],A=C[6],S=C[7],v=o.longitude,g=e.south<0&&e.north>0?0:o.latitude;A.latitude=R.latitude=T.latitude=e.south,S.latitude=y.latitude=g,h.latitude=d.latitude=p.latitude=e.north, -A.longitude=S.longitude=h.longitude=e.west,R.longitude=d.longitude=v,T.longitude=y.longitude=p.longitude=e.east,p.height=d.height=h.height=S.height=A.height=R.height=T.height=y.height=n,r.cartographicArrayToCartesianArray(C,x),l.projectPointsToNearestOnPlane(x,P);var I=Math.min(P[6].x,P[7].x,P[0].x),M=Math.max(P[2].x,P[3].x,P[4].x),N=Math.min(P[4].y,P[5].y,P[6].y),U=Math.max(P[0].y,P[1].y,P[2].y);return p.height=h.height=T.height=A.height=t,r.cartographicArrayToCartesianArray(C,x),_(l,I,M,N,U,Math.min(m.getPointDistance(f,x[0]),m.getPointDistance(f,x[2]),m.getPointDistance(f,x[4]),m.getPointDistance(f,x[6])),n,i)},p.clone=function(e,t){if(o(e))return o(t)?(n.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new p(e.center,e.halfAxes)},p.intersectPlane=function(e,t){var r=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=n.dot(i,r)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var U=new n,D=new n,F=new n,L=new n;p.distanceSquaredTo=function(e,t){var r=n.subtract(t,e.center,M),i=e.halfAxes,a=d.getColumn(i,0,U),o=d.getColumn(i,1,D),u=d.getColumn(i,2,F),s=n.magnitude(a),c=n.magnitude(o),l=n.magnitude(u);n.normalize(a,a),n.normalize(o,o),n.normalize(u,u);var f=L;f.x=n.dot(r,a),f.y=n.dot(r,o),f.z=n.dot(r,u);var h,m=0;return f.x<-s?(h=f.x+s,m+=h*h):f.x>s&&(h=f.x-s,m+=h*h),f.y<-c?(h=f.y+c,m+=h*h):f.y>c&&(h=f.y-c,m+=h*h),f.z<-l?(h=f.z+l,m+=h*h):f.z>l&&(h=f.z-l,m+=h*h),m};var b=new n,B=new n;p.computePlaneDistances=function(e,t,r,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,U),h=d.getColumn(c,1,D),m=d.getColumn(c,2,F),E=n.add(l,h,b);n.add(E,m,E),n.add(E,s,E);var p=n.subtract(E,t,B),_=n.dot(r,p);return a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,E),n.add(E,h,E),n.subtract(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,E),n.subtract(E,h,E),n.add(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.add(s,l,E),n.subtract(E,h,E),n.subtract(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,E),n.add(E,h,E),n.add(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,E),n.add(E,h,E),n.subtract(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,E),n.subtract(E,h,E),n.add(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),n.subtract(s,l,E),n.subtract(E,h,E),n.subtract(E,m,E),n.subtract(E,t,p),_=n.dot(r,p),a=Math.min(_,a),u=Math.max(_,u),i.start=a,i.stop=u,i};var z=new e;return p.isOccluded=function(t,n){var r=e.fromOrientedBoundingBox(t,z);return!n.isBoundingSphereVisible(r)},p.prototype.intersectPlane=function(e){return p.intersectPlane(this,e)},p.prototype.distanceSquaredTo=function(e){return p.distanceSquaredTo(this,e)},p.prototype.computePlaneDistances=function(e,t,n){return p.computePlaneDistances(this,e,t,n)},p.prototype.isOccluded=function(e){return p.isOccluded(this,e)},p.equals=function(e,t){return e===t||o(e)&&o(t)&&n.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,n,r,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*a.signNotZero(r),n.y=(1-Math.abs(r))*a.signNotZero(i)}return n.x=a.toSNorm(n.x,t),n.y=a.toSNorm(n.y,t),n},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,n,r,i){if(i.x=a.fromSNorm(e,r),i.y=a.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,n){return s.octDecodeInRange(e,t,255,n)},s.octDecodeFromCartesian4=function(e,t){var n=e.x,r=e.y,i=e.z,a=e.w,o=256*n+r,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var n=e/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,t)},s.octPack=function(e,t,n,r){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(n,f);return r.x=65536*o.x+i,r.y=65536*o.y+a,r},s.octUnpack=function(e,t,n,r){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,n),s.octDecode(a,u,r)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var n=e/4096,r=Math.floor(n);return t.x=r/4095,t.y=(e-4096*r)/4095,t},s.zigZagDeltaDecode=function(e,t,n){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/TerrainQuantization",["./freezeObject"],function(e){"use strict";return e({NONE:0,BITS12:1})}),define("Core/TerrainEncoding",["./AttributeCompression","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./Math","./Matrix4","./TerrainQuantization"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,r,o,c,h){var p,_,y,T=s.NONE;if(a(e)&&a(t)&&a(r)&&a(o)){var R=e.minimum,A=e.maximum,S=n.subtract(A,R,f),v=r-t;T=Math.max(n.maximumComponent(S),v)<E-1?s.BITS12:s.NONE,p=e.center,_=u.inverseTransformation(o,new u);var g=n.negate(R,l);u.multiply(u.fromTranslation(g,d),_,_);var I=l;I.x=1/S.x,I.y=1/S.y,I.z=1/S.z,u.multiply(u.fromScale(I,d),_,_),y=u.clone(o),u.setTranslation(y,n.ZERO,y),o=u.clone(o,new u);var M=u.fromTranslation(R,d),N=u.fromScale(S,m),O=u.multiply(M,N,d);u.multiply(o,O,o),u.multiply(y,O,y)}this.quantization=T,this.minimumHeight=t,this.maximumHeight=r,this.center=p,this.toScaledENU=_,this.fromScaledENU=o,this.matrix=y,this.hasVertexNormals=c,this.hasWebMercatorT=i(h,!1)}var l=new n,f=new n,h=new t,d=new u,m=new u,E=Math.pow(2,12);c.prototype.encode=function(r,i,a,c,f,d,m){var E=c.x,p=c.y;if(this.quantization===s.BITS12){a=u.multiplyByPoint(this.toScaledENU,a,l),a.x=o.clamp(a.x,0,1),a.y=o.clamp(a.y,0,1),a.z=o.clamp(a.z,0,1);var _=this.maximumHeight-this.minimumHeight,y=o.clamp((f-this.minimumHeight)/_,0,1);t.fromElements(a.x,a.y,h);var T=e.compressTextureCoordinates(h);t.fromElements(a.z,y,h);var R=e.compressTextureCoordinates(h);t.fromElements(E,p,h);var A=e.compressTextureCoordinates(h);if(r[i++]=T,r[i++]=R,r[i++]=A,this.hasWebMercatorT){t.fromElements(m,0,h);var S=e.compressTextureCoordinates(h);r[i++]=S}}else n.subtract(a,this.center,l),r[i++]=l.x,r[i++]=l.y,r[i++]=l.z,r[i++]=f,r[i++]=E,r[i++]=p,this.hasWebMercatorT&&(r[i++]=m);return this.hasVertexNormals&&(r[i++]=e.octPackFloat(d)),i},c.prototype.decodePosition=function(t,r,i){if(a(i)||(i=new n),r*=this.getStride(),this.quantization===s.BITS12){var o=e.decompressTextureCoordinates(t[r],h);i.x=o.x,i.y=o.y;var c=e.decompressTextureCoordinates(t[r+1],h);return i.z=c.x,u.multiplyByPoint(this.fromScaledENU,i,i)}return i.x=t[r],i.y=t[r+1],i.z=t[r+2],n.add(i,this.center,i)},c.prototype.decodeTextureCoordinates=function(n,r,i){return a(i)||(i=new t),r*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(n[r+2],i):t.fromElements(n[r+4],n[r+5],i)},c.prototype.decodeHeight=function(t,n){if(n*=this.getStride(),this.quantization===s.BITS12){return e.decompressTextureCoordinates(t[n+1],h).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[n+3]},c.prototype.decodeWebMercatorT=function(t,n){return n*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(t[n+3],h).x:t[n+6]},c.prototype.getOctEncodedNormal=function(e,n,r){n=(n+1)*this.getStride()-1;var i=e[n]/256,a=Math.floor(i),o=256*(i-a);return t.fromElements(a,o,r)},c.prototype.getStride=function(){var e;switch(this.quantization){case s.BITS12:e=3;break;default:e=6}return this.hasWebMercatorT&&++e,this.hasVertexNormals&&++e,e};var p={position3DAndHeight:0,textureCoordAndEncodedNormals:1},_={compressed0:0,compressed1:1};return c.prototype.getAttributes=function(e){var t,n=r.FLOAT,i=r.getSizeInBytes(n);if(this.quantization===s.NONE){var a=2;return this.hasWebMercatorT&&++a,this.hasVertexNormals&&++a,t=(4+a)*i,[{index:p.position3DAndHeight,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:t},{index:p.textureCoordAndEncodedNormals,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:a,offsetInBytes:4*i,strideInBytes:t}]}var o=3,u=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++o,this.hasWebMercatorT&&this.hasVertexNormals?(++u,t=(o+u)*i,[{index:_.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o,offsetInBytes:0,strideInBytes:t},{index:_.compressed1,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:u,offsetInBytes:o*i,strideInBytes:t}]):[{index:_.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o}]},c.prototype.getAttributeLocations=function(){return this.quantization===s.NONE?p:_},c.clone=function(e,t){return a(t)||(t=new c),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=n.clone(e.center),t.toScaledENU=u.clone(e.toScaledENU),t.fromScaledENU=u.clone(e.fromScaledENU),t.matrix=u.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t},c}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},s.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},s}),define("Core/HeightmapTessellator",["./AxisAlignedBoundingBox","./BoundingSphere","./Cartesian2","./Cartesian3","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidalOccluder","./freezeObject","./Math","./Matrix4","./OrientedBoundingBox","./Rectangle","./TerrainEncoding","./Transforms","./WebMercatorProjection"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,m,E,p){"use strict";var _={};_.DEFAULT_STRUCTURE=c({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var y=new r,T=new f,R=new r,A=new r;return _.computeVertices=function(o){var c,S,v,g,I=Math.cos,M=Math.sin,N=Math.sqrt,O=Math.atan,w=Math.exp,C=l.PI_OVER_TWO,x=l.toRadians,P=o.heightmap,U=o.width,D=o.height,F=o.skirtHeight,L=i(o.isGeographic,!0),b=i(o.ellipsoid,u.WGS84),B=1/b.maximumRadius,z=o.nativeRectangle,q=o.rectangle;a(q)?(c=q.west,S=q.south,v=q.east,g=q.north):L?(c=x(z.west),S=x(z.south),v=x(z.east),g=x(z.north)):(c=z.west*B,S=C-2*O(w(-z.south*B)),v=z.east*B,g=C-2*O(w(-z.north*B)));var G=o.relativeToCenter,V=a(G);G=V?G:r.ZERO;var W=i(o.exaggeration,1),X=i(o.includeWebMercatorT,!1),H=i(o.structure,_.DEFAULT_STRUCTURE),Y=i(H.heightScale,_.DEFAULT_STRUCTURE.heightScale),k=i(H.heightOffset,_.DEFAULT_STRUCTURE.heightOffset),j=i(H.elementsPerHeight,_.DEFAULT_STRUCTURE.elementsPerHeight),Z=i(H.stride,_.DEFAULT_STRUCTURE.stride),K=i(H.elementMultiplier,_.DEFAULT_STRUCTURE.elementMultiplier),J=i(H.isBigEndian,_.DEFAULT_STRUCTURE.isBigEndian),Q=d.computeWidth(z),$=d.computeHeight(z),ee=Q/(U-1),te=$/(D-1);L||(Q*=B,$*=B);var ne,re,ie=b.radiiSquared,ae=ie.x,oe=ie.y,ue=ie.z,se=65536,ce=-65536,le=E.eastNorthUpToFixedFrame(G,b),fe=f.inverseTransformation(le,T);X&&(ne=p.geodeticLatitudeToMercatorAngle(S),re=1/(p.geodeticLatitudeToMercatorAngle(g)-ne));var he=R;he.x=Number.POSITIVE_INFINITY,he.y=Number.POSITIVE_INFINITY,he.z=Number.POSITIVE_INFINITY;var de=A;de.x=Number.NEGATIVE_INFINITY,de.y=Number.NEGATIVE_INFINITY,de.z=Number.NEGATIVE_INFINITY;var me=Number.POSITIVE_INFINITY,Ee=U+(F>0?2:0),pe=D+(F>0?2:0),_e=Ee*pe,ye=new Array(_e),Te=new Array(_e),Re=new Array(_e),Ae=X?new Array(_e):[],Se=0,ve=D,ge=0,Ie=U;F>0&&(--Se,++ve,--ge,++Ie);for(var Me=0,Ne=Se;Ne<ve;++Ne){var Oe=Ne;Oe<0&&(Oe=0),Oe>=D&&(Oe=D-1);var we=z.north-te*Oe;we=L?x(we):C-2*O(w(-we*B));var Ce=I(we),xe=M(we),Pe=ue*xe,Ue=(we-S)/(g-S);Ue=l.clamp(Ue,0,1);var De;X&&(De=(p.geodeticLatitudeToMercatorAngle(we)-ne)*re);for(var Fe=ge;Fe<Ie;++Fe){var Le=Fe;Le<0&&(Le=0),Le>=U&&(Le=U-1);var be=z.west+ee*Le;L?be=x(be):be*=B;var Be,ze=Oe*(U*Z)+Le*Z;if(1===j)Be=P[ze];else{Be=0;var qe;if(J)for(qe=0;qe<j;++qe)Be=Be*K+P[ze+qe];else for(qe=j-1;qe>=0;--qe)Be=Be*K+P[ze+qe]}Be=(Be*Y+k)*W;var Ge=(be-c)/(v-c);if(Ge=l.clamp(Ge,0,1),Re[Me]=new n(Ge,Ue),ce=Math.max(ce,Be),se=Math.min(se,Be),Fe!==Le||Ne!==Oe){Fe<0?be-=1e-5*Q:be+=1e-5*Q,Ne<0?we+=1e-5*$:we-=1e-5*$,Ce=I(we),xe=M(we),Pe=ue*xe,Be-=F}var Ve=Ce*I(be),We=Ce*M(be),Xe=ae*Ve,He=oe*We,Ye=N(Xe*Ve+He*We+Pe*xe),ke=1/Ye,je=Xe*ke,Ze=He*ke,Ke=Pe*ke,Je=new r;Je.x=je+Ve*Be,Je.y=Ze+We*Be,Je.z=Ke+xe*Be,ye[Me]=Je,Te[Me]=Be,X&&(Ae[Me]=De),Me++,f.multiplyByPoint(fe,Je,y),r.minimumByComponent(y,he,he),r.maximumByComponent(y,de,de),me=Math.min(me,Be)}}var Qe,$e=t.fromPoints(ye);a(q)&&q.width<l.PI_OVER_TWO+l.EPSILON5&&(Qe=h.fromRectangle(q,se,ce,b));var et;if(V){et=new s(b).computeHorizonCullingPoint(G,ye)}for(var tt=new e(he,de,G),nt=new m(tt,me,ce,le,!1,X),rt=new Float32Array(_e*nt.getStride()),it=0,at=0;at<_e;++at)it=nt.encode(rt,it,ye[at],Re[at],Te[at],void 0,Ae[at]);var ot,ut,st,ct;if(F>0){ct=[],ut=[];for(var lt=0;lt<U;++lt)ct.push(Ee+1+lt),ut.push(Ee*(pe-1)-2-lt);ot=[],st=[];for(var ft=0;ft<D;++ft)st.push((ft+1)*Ee+U),ot.push((D-ft)*Ee+1)}else{ct=[],ut=[];for(var ht=0;ht<U;++ht)ct.push(ht),ut.push(U*D-1-ht);ot=[],st=[];for(var dt=0;dt<D;++dt)st.push((dt+1)*U-1),ot.push((D-dt-1)*U)}return{vertices:rt,maximumHeight:ce,minimumHeight:se,encoding:nt,boundingSphere3D:$e,orientedBoundingBox:Qe,occludeePointInScaledSpace:et,westIndicesSouthToNorth:ot,southIndicesEastToWest:ut,eastIndicesNorthToSouth:st,northIndicesWestToEast:ct}},_}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var n,r=t.name,i=t.message;n=e(r)&&e(i)?r+": "+i:t.toString();var a=t.stack;return e(a)&&(n+="\n"+a),n}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,n,r){"use strict";function i(t,n,r){try{return t(n,r)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){n(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0, -l.error="postMessage failed with error: "+r(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/createVerticesFromHeightmap",["../Core/Ellipsoid","../Core/HeightmapTessellator","../Core/Rectangle","./createTaskProcessorWorker"],function(e,t,n,r){"use strict";function i(r,i){var a=r.width,o=r.height;r.skirtHeight>0&&(a+=2,o+=2),r.ellipsoid=e.clone(r.ellipsoid),r.rectangle=n.clone(r.rectangle);var u=t.computeVertices(r),s=u.vertices;return i.push(s.buffer),{vertices:s.buffer,numberOfAttributes:u.encoding.getStride(),minimumHeight:u.minimumHeight,maximumHeight:u.maximumHeight,gridWidth:a,gridHeight:o,boundingSphere3D:u.boundingSphere3D,orientedBoundingBox:u.orientedBoundingBox,occludeePointInScaledSpace:u.occludeePointInScaledSpace,encoding:u.encoding,westIndicesSouthToNorth:u.westIndicesSouthToNorth,southIndicesEastToWest:u.southIndicesEastToWest,eastIndicesNorthToSouth:u.eastIndicesNorthToSouth,northIndicesWestToEast:u.northIndicesWestToEast}}return r(i)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as sr,b as fr}from"./chunk-56S3WY3H.js";import{a as tr}from"./chunk-3R25OJXK.js";import{a as Ue}from"./chunk-ZEP44EYN.js";import{a as ar}from"./chunk-7MCGOXW3.js";import"./chunk-H3L4SJP4.js";import"./chunk-BSHGEEYG.js";import{a as nr}from"./chunk-CHGCLMPO.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{d as ir}from"./chunk-T5AUOWE7.js";import{b as xe,g as rr,i as ae}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as ie,c as er,d as Ie}from"./chunk-AODSXSC5.js";import{a as ge}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import{a as He}from"./chunk-IIPSFM7Z.js";import{a as Y}from"./chunk-WHQYJFDH.js";import{a as he}from"./chunk-OYWUGDKS.js";import{c as Ir,d as xr,e as G}from"./chunk-DRYFJEFT.js";var ur=Ir((qr,Te)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var D=function(){var A={};A.defaultNoDataValue=-34027999387901484e22,A.decode=function(r,a){a=a||{};var t=a.encodedMaskData||a.encodedMaskData===null,i=n(r,a.inputOffset||0,t),o=a.noDataValue!==null?a.noDataValue:A.defaultNoDataValue,s=V(i,a.pixelType||Float32Array,a.encodedMaskData,o,a.returnMask),u={width:i.width,height:i.height,pixelData:s.resultPixels,minValue:s.minValue,maxValue:i.pixels.maxValue,noDataValue:o};return s.resultMask&&(u.maskData=s.resultMask),a.returnEncodedMask&&i.mask&&(u.encodedMaskData=i.mask.bitset?i.mask.bitset:null),a.returnFileInfo&&(u.fileInfo=b(i),a.computeUsedBitDepths&&(u.fileInfo.bitDepths=X(i))),u};var V=function(r,a,t,i,o){var s=0,u=r.pixels.numBlocksX,m=r.pixels.numBlocksY,l=Math.floor(r.width/u),f=Math.floor(r.height/m),h=2*r.maxZError,c=Number.MAX_VALUE,g;t=t||(r.mask?r.mask.bitset:null);var v,U;v=new a(r.width*r.height),o&&t&&(U=new Uint8Array(r.width*r.height));for(var M=new Float32Array(l*f),S,I,k=0;k<=m;k++){var w=k!==m?f:r.height%m;if(w!==0)for(var d=0;d<=u;d++){var x=d!==u?l:r.width%u;if(x!==0){var T=k*r.width*f+d*l,y=r.width-x,p=r.pixels.blocks[s],L,B,E;p.encoding<2?(p.encoding===0?L=p.rawData:(e(p.stuffedData,p.bitsPerPixel,p.numValidPixels,p.offset,h,M,r.pixels.maxValue),L=M),B=0):p.encoding===2?E=0:E=p.offset;var O;if(t)for(I=0;I<w;I++){for(T&7&&(O=t[T>>3],O<<=T&7),S=0;S<x;S++)T&7||(O=t[T>>3]),O&128?(U&&(U[T]=1),g=p.encoding<2?L[B++]:E,c=c>g?g:c,v[T++]=g):(U&&(U[T]=0),v[T++]=i),O<<=1;T+=y}else if(p.encoding<2)for(I=0;I<w;I++){for(S=0;S<x;S++)g=L[B++],c=c>g?g:c,v[T++]=g;T+=y}else for(c=c>E?E:c,I=0;I<w;I++){for(S=0;S<x;S++)v[T++]=E;T+=y}if(p.encoding===1&&B!==p.numValidPixels)throw"Block and Mask do not match";s++}}}return{resultPixels:v,resultMask:U,minValue:c}},b=function(r){return{fileIdentifierString:r.fileIdentifierString,fileVersion:r.fileVersion,imageType:r.imageType,height:r.height,width:r.width,maxZError:r.maxZError,eofOffset:r.eofOffset,mask:r.mask?{numBlocksX:r.mask.numBlocksX,numBlocksY:r.mask.numBlocksY,numBytes:r.mask.numBytes,maxValue:r.mask.maxValue}:null,pixels:{numBlocksX:r.pixels.numBlocksX,numBlocksY:r.pixels.numBlocksY,numBytes:r.pixels.numBytes,maxValue:r.pixels.maxValue,noDataValue:r.noDataValue}}},X=function(r){for(var a=r.pixels.numBlocksX*r.pixels.numBlocksY,t={},i=0;i<a;i++){var o=r.pixels.blocks[i];o.encoding===0?t.float32=!0:o.encoding===1?t[o.bitsPerPixel]=!0:t[0]=!0}return Object.keys(t)},n=function(r,a,t){var i={},o=new Uint8Array(r,a,10);if(i.fileIdentifierString=String.fromCharCode.apply(null,o),i.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+i.fileIdentifierString;a+=10;var s=new DataView(r,a,24);if(i.fileVersion=s.getInt32(0,!0),i.imageType=s.getInt32(4,!0),i.height=s.getUint32(8,!0),i.width=s.getUint32(12,!0),i.maxZError=s.getFloat64(16,!0),a+=24,!t)if(s=new DataView(r,a,16),i.mask={},i.mask.numBlocksY=s.getUint32(0,!0),i.mask.numBlocksX=s.getUint32(4,!0),i.mask.numBytes=s.getUint32(8,!0),i.mask.maxValue=s.getFloat32(12,!0),a+=16,i.mask.numBytes>0){var u=new Uint8Array(Math.ceil(i.width*i.height/8));s=new DataView(r,a,i.mask.numBytes);var m=s.getInt16(0,!0),l=2,f=0;do{if(m>0)for(;m--;)u[f++]=s.getUint8(l++);else{var h=s.getUint8(l++);for(m=-m;m--;)u[f++]=h}m=s.getInt16(l,!0),l+=2}while(l<i.mask.numBytes);if(m!==-32768||f<u.length)throw"Unexpected end of mask RLE encoding";i.mask.bitset=u,a+=i.mask.numBytes}else i.mask.numBytes|i.mask.numBlocksY|i.mask.maxValue||(i.mask.bitset=new Uint8Array(Math.ceil(i.width*i.height/8)));s=new DataView(r,a,16),i.pixels={},i.pixels.numBlocksY=s.getUint32(0,!0),i.pixels.numBlocksX=s.getUint32(4,!0),i.pixels.numBytes=s.getUint32(8,!0),i.pixels.maxValue=s.getFloat32(12,!0),a+=16;var c=i.pixels.numBlocksX,g=i.pixels.numBlocksY,v=c+(i.width%c>0?1:0),U=g+(i.height%g>0?1:0);i.pixels.blocks=new Array(v*U);for(var M=0,S=0;S<U;S++)for(var I=0;I<v;I++){var k=0,w=r.byteLength-a;s=new DataView(r,a,Math.min(10,w));var d={};i.pixels.blocks[M++]=d;var x=s.getUint8(0);if(k++,d.encoding=x&63,d.encoding>3)throw"Invalid block encoding ("+d.encoding+")";if(d.encoding===2){a++;continue}if(x!==0&&x!==2){if(x>>=6,d.offsetType=x,x===2)d.offset=s.getInt8(1),k++;else if(x===1)d.offset=s.getInt16(1,!0),k+=2;else if(x===0)d.offset=s.getFloat32(1,!0),k+=4;else throw"Invalid block offset type";if(d.encoding===1)if(x=s.getUint8(k),k++,d.bitsPerPixel=x&63,x>>=6,d.numValidPixelsType=x,x===2)d.numValidPixels=s.getUint8(k),k++;else if(x===1)d.numValidPixels=s.getUint16(k,!0),k+=2;else if(x===0)d.numValidPixels=s.getUint32(k,!0),k+=4;else throw"Invalid valid pixel count type"}if(a+=k,d.encoding!==3){var T,y;if(d.encoding===0){var p=(i.pixels.numBytes-1)/4;if(p!==Math.floor(p))throw"uncompressed block has invalid length";T=new ArrayBuffer(p*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,p*4));var L=new Float32Array(T);d.rawData=L,a+=p*4}else if(d.encoding===1){var B=Math.ceil(d.numValidPixels*d.bitsPerPixel/8),E=Math.ceil(B/4);T=new ArrayBuffer(E*4),y=new Uint8Array(T),y.set(new Uint8Array(r,a,B)),d.stuffedData=new Uint32Array(T),a+=B}}}return i.eofOffset=a,i},e=function(r,a,t,i,o,s,u){var m=(1<<a)-1,l=0,f,h=0,c,g,v=Math.ceil((u-i)/o),U=r.length*4-Math.ceil(a*t/8);for(r[r.length-1]<<=8*U,f=0;f<t;f++){if(h===0&&(g=r[l++],h=32),h>=a)c=g>>>h-a&m,h-=a;else{var M=a-h;c=(g&m)<<M&m,g=r[l++],h=32-M,c+=g>>>h}s[f]=c<v?i+c*o:u}return s};return A}(),se=function(){"use strict";var A={unstuff:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h,c,g,v,U=n.length*4-Math.ceil(r*a/8);if(n[n.length-1]<<=8*U,t)for(l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=t[h];else for(v=Math.ceil((s-i)/o),l=0;l<a;l++)f===0&&(c=n[m++],f=32),f>=r?(h=c>>>f-r&u,f-=r):(g=r-f,h=(c&u)<<g&u,c=n[m++],f=32-g,h+=c>>>f),e[l]=h<v?i+h*o:s},unstuffLUT:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h,c=[],g=n.length*4-Math.ceil(e*r/8);n[n.length-1]<<=8*g;var v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(h=n[s++],l=32),l>=e?(f=h>>>l-e&o,l-=e):(m=e-l,f=(h&o)<<m&o,h=n[s++],l=32-m,f+=h>>>l),c[u]=f<v?a+f*t:i;return c.unshift(a),c},unstuff2:function(n,e,r,a,t,i,o,s){var u=(1<<r)-1,m=0,l,f=0,h=0,c,g,v;if(t)for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=t[c];else{var U=Math.ceil((s-i)/o);for(l=0;l<a;l++)f===0&&(g=n[m++],f=32,h=0),f>=r?(c=g>>>h&u,f-=r,h+=r):(v=r-f,c=g>>>h&u,g=n[m++],f=32-v,c|=(g&(1<<v)-1)<<r-v,h=v),e[l]=c<U?i+c*o:s}return e},unstuffLUT2:function(n,e,r,a,t,i){var o=(1<<e)-1,s=0,u=0,m=0,l=0,f=0,h=0,c,g=[],v=Math.ceil((i-a)/t);for(u=0;u<r;u++)l===0&&(c=n[s++],l=32,h=0),l>=e?(f=c>>>h&o,l-=e,h+=e):(m=e-l,f=c>>>h&o,c=n[s++],l=32-m,f|=(c&(1<<m)-1)<<e-m,h=m),g[u]=f<v?a+f*t:i;return g.unshift(a),g},originalUnstuff:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u,m,l,f=n.length*4-Math.ceil(r*a/8);for(n[n.length-1]<<=8*f,o=0;o<a;o++)s===0&&(m=n[i++],s=32),s>=r?(u=m>>>s-r&t,s-=r):(l=r-s,u=(m&t)<<l&t,m=n[i++],s=32-l,u+=m>>>s),e[o]=u;return e},originalUnstuff2:function(n,e,r,a){var t=(1<<r)-1,i=0,o,s=0,u=0,m,l,f;for(o=0;o<a;o++)s===0&&(l=n[i++],s=32,u=0),s>=r?(m=l>>>u&t,s-=r,u+=r):(f=r-s,m=l>>>u&t,l=n[i++],s=32-f,m|=(l&(1<<f)-1)<<r-f,u=f),e[o]=m;return e}},V={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(n){for(var e=65535,r=65535,a=n.length,t=Math.floor(a/2),i=0;t;){var o=t>=359?359:t;t-=o;do e+=n[i++]<<8,r+=e+=n[i++];while(--o);e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16)}return a&1&&(r+=e+=n[i]<<8),e=(e&65535)+(e>>>16),r=(r&65535)+(r>>>16),(r<<16|e)>>>0},readHeaderInfo:function(n,e){var r=e.ptr,a=new Uint8Array(n,r,6),t={};if(t.fileIdentifierString=String.fromCharCode.apply(null,a),t.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+t.fileIdentifierString;r+=6;var i=new DataView(n,r,8),o=i.getInt32(0,!0);t.fileVersion=o,r+=4,o>=3&&(t.checksum=i.getUint32(4,!0),r+=4),i=new DataView(n,r,12),t.height=i.getUint32(0,!0),t.width=i.getUint32(4,!0),r+=8,o>=4?(t.numDims=i.getUint32(8,!0),r+=4):t.numDims=1,i=new DataView(n,r,40),t.numValidPixel=i.getUint32(0,!0),t.microBlockSize=i.getInt32(4,!0),t.blobSize=i.getInt32(8,!0),t.imageType=i.getInt32(12,!0),t.maxZError=i.getFloat64(16,!0),t.zMin=i.getFloat64(24,!0),t.zMax=i.getFloat64(32,!0),r+=40,e.headerInfo=t,e.ptr=r;var s,u;if(o>=3&&(u=o>=4?52:48,s=this.computeChecksumFletcher32(new Uint8Array(n,r-u,t.blobSize-14)),s!==t.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(n,e){var r=e.headerInfo,a=this.getDataTypeArray(r.imageType),t=r.numDims*this.getDataTypeSize(r.imageType),i=this.readSubArray(n,e.ptr,a,t),o=this.readSubArray(n,e.ptr+t,a,t);e.ptr+=2*t;var s,u=!0;for(s=0;s<r.numDims;s++)if(i[s]!==o[s]){u=!1;break}return r.minValues=i,r.maxValues=o,u},readSubArray:function(n,e,r,a){var t;if(r===Uint8Array)t=new Uint8Array(n,e,a);else{var i=new ArrayBuffer(a),o=new Uint8Array(i);o.set(new Uint8Array(n,e,a)),t=new r(i)}return t},readMask:function(n,e){var r=e.ptr,a=e.headerInfo,t=a.width*a.height,i=a.numValidPixel,o=new DataView(n,r,4),s={};if(s.numBytes=o.getUint32(0,!0),r+=4,(i===0||t===i)&&s.numBytes!==0)throw"invalid mask";var u,m;if(i===0)u=new Uint8Array(Math.ceil(t/8)),s.bitset=u,m=new Uint8Array(t),e.pixels.resultMask=m,r+=s.numBytes;else if(s.numBytes>0){u=new Uint8Array(Math.ceil(t/8)),o=new DataView(n,r,s.numBytes);var l=o.getInt16(0,!0),f=2,h=0,c=0;do{if(l>0)for(;l--;)u[h++]=o.getUint8(f++);else for(c=o.getUint8(f++),l=-l;l--;)u[h++]=c;l=o.getInt16(f,!0),f+=2}while(f<s.numBytes);if(l!==-32768||h<u.length)throw"Unexpected end of mask RLE encoding";m=new Uint8Array(t);var g=0,v=0;for(v=0;v<t;v++)v&7?(g=u[v>>3],g<<=v&7):g=u[v>>3],g&128&&(m[v]=1);e.pixels.resultMask=m,s.bitset=u,r+=s.numBytes}return e.ptr=r,e.mask=s,!0},readDataOneSweep:function(n,e,r){var a=e.ptr,t=e.headerInfo,i=t.numDims,o=t.width*t.height,s=t.imageType,u=t.numValidPixel*V.getDataTypeSize(s)*i,m,l=e.pixels.resultMask;if(r===Uint8Array)m=new Uint8Array(n,a,u);else{var f=new ArrayBuffer(u),h=new Uint8Array(f);h.set(new Uint8Array(n,a,u)),m=new r(f)}if(m.length===o*i)e.pixels.resultPixels=m;else{e.pixels.resultPixels=new r(o*i);var c=0,g=0,v=0,U=0;if(i>1)for(v=0;v<i;v++)for(U=v*o,g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[U+g]=m[c++]);else for(g=0;g<o;g++)l[g]&&(e.pixels.resultPixels[g]=m[c++])}return a+=u,e.ptr=a,!0},readHuffmanTree:function(n,e){var r=this.HUFFMAN_LUT_BITS_MAX,a=new DataView(n,e.ptr,16);e.ptr+=16;var t=a.getInt32(0,!0);if(t<2)throw"unsupported Huffman version";var i=a.getInt32(4,!0),o=a.getInt32(8,!0),s=a.getInt32(12,!0);if(o>=s)return!1;var u=new Uint32Array(s-o);V.decodeBits(n,e,u);var m=[],l,f,h,c;for(l=o;l<s;l++)f=l-(l<i?0:i),m[f]={first:u[l-o],second:null};var g=n.byteLength-e.ptr,v=Math.ceil(g/4),U=new ArrayBuffer(v*4),M=new Uint8Array(U);M.set(new Uint8Array(n,e.ptr,g));var S=new Uint32Array(U),I=0,k,w=0;for(k=S[0],l=o;l<s;l++)f=l-(l<i?0:i),c=m[f].first,c>0&&(m[f].second=k<<I>>>32-c,32-I>=c?(I+=c,I===32&&(I=0,w++,k=S[w])):(I+=c-32,w++,k=S[w],m[f].second|=k>>>32-I));var d=0,x=0,T=new b;for(l=0;l<m.length;l++)m[l]!==void 0&&(d=Math.max(d,m[l].first));d>=r?x=r:x=d,d>=30&&console.log("WARning, large NUM LUT BITS IS "+d);var y=[],p,L,B,E,O,F;for(l=o;l<s;l++)if(f=l-(l<i?0:i),c=m[f].first,c>0)if(p=[c,f],c<=x)for(L=m[f].second<<x-c,B=1<<x-c,h=0;h<B;h++)y[L|h]=p;else for(L=m[f].second,F=T,E=c-1;E>=0;E--)O=L>>>E&1,O?(F.right||(F.right=new b),F=F.right):(F.left||(F.left=new b),F=F.left),E===0&&!F.val&&(F.val=p[1]);return{decodeLut:y,numBitsLUTQick:x,numBitsLUT:d,tree:T,stuffedData:S,srcPtr:w,bitPos:I}},readHuffman:function(n,e,r){var a=e.headerInfo,t=a.numDims,i=e.headerInfo.height,o=e.headerInfo.width,s=o*i,u=this.readHuffmanTree(n,e),m=u.decodeLut,l=u.tree,f=u.stuffedData,h=u.srcPtr,c=u.bitPos,g=u.numBitsLUTQick,v=u.numBitsLUT,U=e.headerInfo.imageType===0?128:0,M,S,I,k=e.pixels.resultMask,w,d,x,T,y,p,L,B=0;c>0&&(h++,c=0);var E=f[h],O=e.encodeMode===1,F=new r(s*t),N=F,z;for(z=0;z<a.numDims;z++){if(t>1&&(N=new r(F.buffer,s*z,s),B=0),e.headerInfo.numValidPixel===o*i)for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0?I+=B:T>0?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}else for(p=0,T=0;T<i;T++)for(y=0;y<o;y++,p++)if(k[p]){if(S=0,w=E<<c>>>32-g,d=w,32-c<g&&(w|=f[h+1]>>>64-c-g,d=w),m[d])S=m[d][1],c+=m[d][0];else for(w=E<<c>>>32-v,d=w,32-c<v&&(w|=f[h+1]>>>64-c-v,d=w),M=l,L=0;L<v;L++)if(x=w>>>v-L-1&1,M=x?M.right:M.left,!(M.left||M.right)){S=M.val,c=c+L+1;break}c>=32&&(c-=32,h++,E=f[h]),I=S-U,O?(y>0&&k[p-1]?I+=B:T>0&&k[p-o]?I+=N[p-o]:I+=B,I&=255,N[p]=I,B=I):N[p]=I}e.ptr=e.ptr+(h+1)*4+(c>0?4:0)}e.pixels.resultPixels=F},decodeBits:function(n,e,r,a,t){{var i=e.headerInfo,o=i.fileVersion,s=0,u=new DataView(n,e.ptr,5),m=u.getUint8(0);s++;var l=m>>6,f=l===0?4:3-l,h=(m&32)>0,c=m&31,g=0;if(f===1)g=u.getUint8(s),s++;else if(f===2)g=u.getUint16(s,!0),s+=2;else if(f===4)g=u.getUint32(s,!0),s+=4;else throw"Invalid valid pixel count type";var v=2*i.maxZError,U,M,S,I,k,w,d,x,T,y,p=i.numDims>1?i.maxValues[t]:i.zMax;if(h){for(e.counter.lut++,x=u.getUint8(s),T=c,s++,I=Math.ceil((x-1)*c/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),e.ptr+=s,S.set(new Uint8Array(n,e.ptr,I)),d=new Uint32Array(M),e.ptr+=I,y=0;x-1>>>y;)y++;I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?w=A.unstuffLUT2(d,c,x-1,a,v,p):w=A.unstuffLUT(d,c,x-1,a,v,p),o>=3?A.unstuff2(U,r,y,g,w):A.unstuff(U,r,y,g,w)}else e.counter.bitstuffer++,y=c,e.ptr+=s,y>0&&(I=Math.ceil(g*y/8),k=Math.ceil(I/4),M=new ArrayBuffer(k*4),S=new Uint8Array(M),S.set(new Uint8Array(n,e.ptr,I)),U=new Uint32Array(M),e.ptr+=I,o>=3?a==null?A.originalUnstuff2(U,r,y,g):A.unstuff2(U,r,y,g,!1,a,v,p):a==null?A.originalUnstuff(U,r,y,g):A.unstuff(U,r,y,g,!1,a,v,p))}},readTiles:function(n,e,r){var a=e.headerInfo,t=a.width,i=a.height,o=a.microBlockSize,s=a.imageType,u=V.getDataTypeSize(s),m=Math.ceil(t/o),l=Math.ceil(i/o);e.pixels.numBlocksY=l,e.pixels.numBlocksX=m,e.pixels.ptr=0;var f=0,h=0,c=0,g=0,v=0,U=0,M=0,S=0,I=0,k=0,w=0,d=0,x=0,T=0,y=0,p=0,L,B,E,O,F,N,z=new r(o*o),ke=i%o||o,ye=t%o||o,J,Z,ue=a.numDims,te,j=e.pixels.resultMask,q=e.pixels.resultPixels;for(c=0;c<l;c++)for(v=c!==l-1?o:ke,g=0;g<m;g++)for(U=g!==m-1?o:ye,w=c*t*o+g*o,d=t-U,te=0;te<ue;te++){if(ue>1&&(q=new r(e.pixels.resultPixels.buffer,t*i*te*u,t*i)),M=n.byteLength-e.ptr,L=new DataView(n,e.ptr,Math.min(10,M)),B={},p=0,S=L.getUint8(0),p++,I=S>>6&255,k=S>>2&15,k!==(g*o>>3&15))throw"integrity issue";if(N=S&3,N>3)throw e.ptr+=p,"Invalid block encoding ("+N+")";if(N===2){e.counter.constant++,e.ptr+=p;continue}else if(N===0){if(e.counter.uncompressed++,e.ptr+=p,x=v*U*u,T=n.byteLength-e.ptr,x=x<T?x:T,E=new ArrayBuffer(x%u===0?x:x+u-x%u),O=new Uint8Array(E),O.set(new Uint8Array(n,e.ptr,x)),F=new r(E),y=0,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=F[y++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=F[y++];w+=d}e.ptr+=y*u}else if(J=V.getDataTypeUsed(s,I),Z=V.getOnePixel(B,p,J,L),p+=V.getDataTypeSize(J),N===3)if(e.ptr+=p,e.counter.constantoffset++,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=Z),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=Z;w+=d}else if(e.ptr+=p,V.decodeBits(n,e,z,Z,te),p=0,j)for(f=0;f<v;f++){for(h=0;h<U;h++)j[w]&&(q[w]=z[p++]),w++;w+=d}else for(f=0;f<v;f++){for(h=0;h<U;h++)q[w++]=z[p++];w+=d}}},formatFileInfo:function(n){return{fileIdentifierString:n.headerInfo.fileIdentifierString,fileVersion:n.headerInfo.fileVersion,imageType:n.headerInfo.imageType,height:n.headerInfo.height,width:n.headerInfo.width,numValidPixel:n.headerInfo.numValidPixel,microBlockSize:n.headerInfo.microBlockSize,blobSize:n.headerInfo.blobSize,maxZError:n.headerInfo.maxZError,pixelType:V.getPixelType(n.headerInfo.imageType),eofOffset:n.eofOffset,mask:n.mask?{numBytes:n.mask.numBytes}:null,pixels:{numBlocksX:n.pixels.numBlocksX,numBlocksY:n.pixels.numBlocksY,maxValue:n.headerInfo.zMax,minValue:n.headerInfo.zMin,noDataValue:n.noDataValue}}},constructConstantSurface:function(n){var e=n.headerInfo.zMax,r=n.headerInfo.numDims,a=n.headerInfo.height*n.headerInfo.width,t=a*r,i=0,o=0,s=0,u=n.pixels.resultMask;if(u)if(r>1)for(i=0;i<r;i++)for(s=i*a,o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[s+o]=e);else for(o=0;o<a;o++)u[o]&&(n.pixels.resultPixels[o]=e);else if(n.pixels.resultPixels.fill)n.pixels.resultPixels.fill(e);else for(o=0;o<t;o++)n.pixels.resultPixels[o]=e},getDataTypeArray:function(n){var e;switch(n){case 0:e=Int8Array;break;case 1:e=Uint8Array;break;case 2:e=Int16Array;break;case 3:e=Uint16Array;break;case 4:e=Int32Array;break;case 5:e=Uint32Array;break;case 6:e=Float32Array;break;case 7:e=Float64Array;break;default:e=Float32Array}return e},getPixelType:function(n){var e;switch(n){case 0:e="S8";break;case 1:e="U8";break;case 2:e="S16";break;case 3:e="U16";break;case 4:e="S32";break;case 5:e="U32";break;case 6:e="F32";break;case 7:e="F64";break;default:e="F32"}return e},isValidPixelValue:function(n,e){if(e==null)return!1;var r;switch(n){case 0:r=e>=-128&&e<=127;break;case 1:r=e>=0&&e<=255;break;case 2:r=e>=-32768&&e<=32767;break;case 3:r=e>=0&&e<=65536;break;case 4:r=e>=-2147483648&&e<=2147483647;break;case 5:r=e>=0&&e<=4294967296;break;case 6:r=e>=-34027999387901484e22&&e<=34027999387901484e22;break;case 7:r=e>=5e-324&&e<=17976931348623157e292;break;default:r=!1}return r},getDataTypeSize:function(n){var e=0;switch(n){case 0:case 1:e=1;break;case 2:case 3:e=2;break;case 4:case 5:case 6:e=4;break;case 7:e=8;break;default:e=n}return e},getDataTypeUsed:function(n,e){var r=n;switch(n){case 2:case 4:r=n-e;break;case 3:case 5:r=n-2*e;break;case 6:e===0?r=n:e===1?r=2:r=1;break;case 7:e===0?r=n:r=n-2*e+1;break;default:r=n;break}return r},getOnePixel:function(n,e,r,a){var t=0;switch(r){case 0:t=a.getInt8(e);break;case 1:t=a.getUint8(e);break;case 2:t=a.getInt16(e,!0);break;case 3:t=a.getUint16(e,!0);break;case 4:t=a.getInt32(e,!0);break;case 5:t=a.getUInt32(e,!0);break;case 6:t=a.getFloat32(e,!0);break;case 7:t=a.getFloat64(e,!0);break;default:throw"the decoder does not understand this pixel type"}return t}},b=function(n,e,r){this.val=n,this.left=e,this.right=r},X={decode:function(n,e){e=e||{};var r=e.noDataValue,a=0,t={};if(t.ptr=e.inputOffset||0,t.pixels={},!!V.readHeaderInfo(n,t)){var i=t.headerInfo,o=i.fileVersion,s=V.getDataTypeArray(i.imageType);V.readMask(n,t),i.numValidPixel!==i.width*i.height&&!t.pixels.resultMask&&(t.pixels.resultMask=e.maskData);var u=i.width*i.height;if(t.pixels.resultPixels=new s(u*i.numDims),t.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},i.numValidPixel!==0)if(i.zMax===i.zMin)V.constructConstantSurface(t);else if(o>=4&&V.checkMinMaxRanges(n,t))V.constructConstantSurface(t);else{var m=new DataView(n,t.ptr,2),l=m.getUint8(0);if(t.ptr++,l)V.readDataOneSweep(n,t,s);else if(o>1&&i.imageType<=1&&Math.abs(i.maxZError-.5)<1e-5){var f=m.getUint8(1);if(t.ptr++,t.encodeMode=f,f>2||o<4&&f>1)throw"Invalid Huffman flag "+f;f?V.readHuffman(n,t,s):V.readTiles(n,t,s)}else V.readTiles(n,t,s)}t.eofOffset=t.ptr;var h;e.inputOffset?(h=t.headerInfo.blobSize+e.inputOffset-t.ptr,Math.abs(h)>=1&&(t.eofOffset=e.inputOffset+t.headerInfo.blobSize)):(h=t.headerInfo.blobSize-t.ptr,Math.abs(h)>=1&&(t.eofOffset=t.headerInfo.blobSize));var c={width:i.width,height:i.height,pixelData:t.pixels.resultPixels,minValue:i.zMin,maxValue:i.zMax,validPixelCount:i.numValidPixel,dimCount:i.numDims,dimStats:{minValues:i.minValues,maxValues:i.maxValues},maskData:t.pixels.resultMask};if(t.pixels.resultMask&&V.isValidPixelValue(i.imageType,r)){var g=t.pixels.resultMask;for(a=0;a<u;a++)g[a]||(c.pixelData[a]=r);c.noDataValue=r}return t.noDataValue=r,e.returnFileInfo&&(c.fileInfo=V.formatFileInfo(t)),c}},getBandCount:function(n){var e=0,r=0,a={};for(a.ptr=0,a.pixels={};r<n.byteLength-58;)V.readHeaderInfo(n,a),r+=a.headerInfo.blobSize,e++,a.ptr=r;return e}};return X}(),C=function(){var A=new ArrayBuffer(4),V=new Uint8Array(A),b=new Uint32Array(A);return b[0]=1,V[0]===1}(),re={decode:function(A,V){if(!C)throw"Big endian system is not supported.";V=V||{};var b=V.inputOffset||0,X=new Uint8Array(A,b,10),n=String.fromCharCode.apply(null,X),e,r;if(n.trim()==="CntZImage")e=D,r=1;else if(n.substring(0,5)==="Lerc2")e=se,r=2;else throw"Unexpected file identifier string: "+n;for(var a=0,t=A.byteLength-10,i,o=[],s,u,m={width:0,height:0,pixels:[],pixelType:V.pixelType,mask:null,statistics:[]};b<t;){var l=e.decode(A,{inputOffset:b,encodedMaskData:i,maskData:u,returnMask:a===0,returnEncodedMask:a===0,returnFileInfo:!0,pixelType:V.pixelType||null,noDataValue:V.noDataValue||null});b=l.fileInfo.eofOffset,a===0&&(i=l.encodedMaskData,u=l.maskData,m.width=l.width,m.height=l.height,m.dimCount=l.dimCount||1,m.pixelType=l.pixelType||l.fileInfo.pixelType,m.mask=l.maskData),r>1&&l.fileInfo.mask&&l.fileInfo.mask.numBytes>0&&o.push(l.maskData),a++,m.pixels.push(l.pixelData),m.statistics.push({minValue:l.minValue,maxValue:l.maxValue,noDataValue:l.noDataValue,dimStats:l.dimStats})}var f,h,c;if(r>1&&o.length>1){for(c=m.width*m.height,m.bandMasks=o,u=new Uint8Array(c),u.set(o[0]),f=1;f<o.length;f++)for(s=o[f],h=0;h<c;h++)u[h]=u[h]&s[h];m.maskData=u}return m}};typeof define=="function"&&define.amd?define([],function(){return re}):typeof Te<"u"&&Te.exports?Te.exports=re:this.Lerc=re})()});var Ur={NONE:0,LERC:1},or=Object.freeze(Ur);var Q={};Q.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var Ye=new ie,Tr=new xe,kr=new ie,yr=new ie;Q.computeVertices=function(D){if(!G(D)||!G(D.heightmap))throw new he("options.heightmap is required.");if(!G(D.width)||!G(D.height))throw new he("options.width and options.height are required.");if(!G(D.nativeRectangle))throw new he("options.nativeRectangle is required.");if(!G(D.skirtHeight))throw new he("options.skirtHeight is required.");let se=Math.cos,C=Math.sin,re=Math.sqrt,A=Math.atan,V=Math.exp,b=ge.PI_OVER_TWO,X=ge.toRadians,n=D.heightmap,e=D.width,r=D.height,a=D.skirtHeight,t=a>0,i=Y(D.isGeographic,!0),o=Y(D.ellipsoid,Ie.default),s=1/o.maximumRadius,u=ae.clone(D.nativeRectangle),m=ae.clone(D.rectangle),l,f,h,c;G(m)?(l=m.west,f=m.south,h=m.east,c=m.north):i?(l=X(u.west),f=X(u.south),h=X(u.east),c=X(u.north)):(l=u.west*s,f=b-2*A(V(-u.south*s)),h=u.east*s,c=b-2*A(V(-u.north*s)));let g=D.relativeToCenter,v=G(g);g=v?g:ie.ZERO;let U=Y(D.includeWebMercatorT,!1),M=Y(D.exaggeration,1),S=Y(D.exaggerationRelativeHeight,0),k=M!==1,w=Y(D.structure,Q.DEFAULT_STRUCTURE),d=Y(w.heightScale,Q.DEFAULT_STRUCTURE.heightScale),x=Y(w.heightOffset,Q.DEFAULT_STRUCTURE.heightOffset),T=Y(w.elementsPerHeight,Q.DEFAULT_STRUCTURE.elementsPerHeight),y=Y(w.stride,Q.DEFAULT_STRUCTURE.stride),p=Y(w.elementMultiplier,Q.DEFAULT_STRUCTURE.elementMultiplier),L=Y(w.isBigEndian,Q.DEFAULT_STRUCTURE.isBigEndian),B=ae.computeWidth(u),E=ae.computeHeight(u),O=B/(e-1),F=E/(r-1);i||(B*=s,E*=s);let N=o.radiiSquared,z=N.x,ke=N.y,ye=N.z,J=65536,Z=-65536,ue=rr.eastNorthUpToFixedFrame(g,o),te=xe.inverseTransformation(ue,Tr),j,q;U&&(j=Ue.geodeticLatitudeToMercatorAngle(f),q=1/(Ue.geodeticLatitudeToMercatorAngle(c)-j));let fe=kr;fe.x=Number.POSITIVE_INFINITY,fe.y=Number.POSITIVE_INFINITY,fe.z=Number.POSITIVE_INFINITY;let oe=yr;oe.x=Number.NEGATIVE_INFINITY,oe.y=Number.NEGATIVE_INFINITY,oe.z=Number.NEGATIVE_INFINITY;let Me=Number.POSITIVE_INFINITY,ce=e*r,mr=a>0?e*2+r*2:0,ne=ce+mr,ve=new Array(ne),Xe=new Array(ne),_e=new Array(ne),ze=U?new Array(ne):[],Ze=k?new Array(ne):[],Se=0,Ve=r,De=0,Ae=e;t&&(--Se,++Ve,--De,++Ae);let de=1e-5;for(let H=Se;H<Ve;++H){let K=H;K<0&&(K=0),K>=r&&(K=r-1);let W=u.north-F*K;i?W=X(W):W=b-2*A(V(-W*s));let Le=(W-f)/(c-f);Le=ge.clamp(Le,0,1);let we=H===Se,pe=H===Ve-1;a>0&&(we?W+=de*E:pe&&(W-=de*E));let Qe=se(W),Be=C(W),Je=ye*Be,Ke;U&&(Ke=(Ue.geodeticLatitudeToMercatorAngle(W)-j)*q);for(let me=De;me<Ae;++me){let $=me;$<0&&($=0),$>=e&&($=e-1);let Fe=K*(e*y)+$*y,R;if(T===1)R=n[Fe];else{R=0;let _;if(L)for(_=0;_<T;++_)R=R*p+n[Fe+_];else for(_=T-1;_>=0;--_)R=R*p+n[Fe+_]}R=R*d+x,Z=Math.max(Z,R),J=Math.min(J,R);let P=u.west+O*$;i?P=X(P):P=P*s;let be=(P-l)/(h-l);be=ge.clamp(be,0,1);let ee=K*e+$;if(a>0){let _=me===De,Re=me===Ae-1,pr=we||pe||_||Re;if((we||pe)&&(_||Re))continue;pr&&(R-=a,_?(ee=ce+(r-K-1),P-=de*B):pe?ee=ce+r+(e-$-1):Re?(ee=ce+r+e+K,P+=de*B):we&&(ee=ce+r+e+r+$))}let Ne=Qe*se(P),Ce=Qe*C(P),$e=z*Ne,Pe=ke*Ce,Oe=1/re($e*Ne+Pe*Ce+Je*Be),vr=$e*Oe,dr=Pe*Oe,wr=Je*Oe,le=new ie;le.x=vr+Ne*R,le.y=dr+Ce*R,le.z=wr+Be*R,xe.multiplyByPoint(te,le,Ye),ie.minimumByComponent(Ye,fe,fe),ie.maximumByComponent(Ye,oe,oe),Me=Math.min(Me,R),ve[ee]=le,_e[ee]=new er(be,Le),Xe[ee]=R,U&&(ze[ee]=Ke),k&&(Ze[ee]=o.geodeticSurfaceNormal(le))}}let hr=ir.fromPoints(ve),je;G(m)&&(je=ar.fromRectangle(m,J,Z,o));let qe;v&&(qe=new sr(o).computeHorizonCullingPointPossiblyUnderEllipsoid(g,ve,J));let gr=new nr(fe,oe,g),Ee=new fr(g,gr,Me,Z,ue,!1,U,k,M,S),We=new Float32Array(ne*Ee.stride),Ge=0;for(let H=0;H<ne;++H)Ge=Ee.encode(We,Ge,ve[H],_e[H],Xe[H],void 0,ze[H],Ze[H]);return{vertices:We,maximumHeight:Z,minimumHeight:J,encoding:Ee,boundingSphere3D:hr,orientedBoundingBox:je,occludeePointInScaledSpace:qe}};var lr=Q;var cr=xr(ur(),1);function Mr(D,se){if(D.encoding===or.LERC){let A;try{A=cr.default.decode(D.heightmap)}catch(b){throw new He(b)}if(A.statistics[0].minValue===Number.MAX_VALUE)throw new He("Invalid tile data");D.heightmap=A.pixels[0],D.width=A.width,D.height=A.height}D.ellipsoid=Ie.clone(D.ellipsoid),D.rectangle=ae.clone(D.rectangle);let C=lr.computeVertices(D),re=C.vertices;return se.push(re.buffer),{vertices:re.buffer,numberOfAttributes:C.encoding.stride,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,gridWidth:D.width,gridHeight:D.height,boundingSphere3D:C.boundingSphere3D,orientedBoundingBox:C.orientedBoundingBox,occludeePointInScaledSpace:C.occludeePointInScaledSpace,encoding:C.encoding,westIndicesSouthToNorth:C.westIndicesSouthToNorth,southIndicesEastToWest:C.southIndicesEastToWest,eastIndicesNorthToSouth:C.eastIndicesNorthToSouth,northIndicesWestToEast:C.northIndicesWestToEast}}var Pr=tr(Mr);export{Pr as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js index 3fb6dcb84..87c772193 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createVerticesFromQuantizedTerrainMesh.js @@ -1,230 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function r(e){return e+" is required, actual value was undefined"}function n(e,t,r){return"Expected "+r+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(n,i){if(!e(i))throw new t(r(n))},i.typeOf.func=function(e,r){if("function"!=typeof r)throw new t(n(typeof r,"function",e))},i.typeOf.string=function(e,r){if("string"!=typeof r)throw new t(n(typeof r,"string",e))},i.typeOf.number=function(e,r){if("number"!=typeof r)throw new t(n(typeof r,"number",e))},i.typeOf.number.lessThan=function(e,r,n){if(i.typeOf.number(e,r),r>=n)throw new t("Expected "+e+" to be less than "+n+", actual value was "+r)},i.typeOf.number.lessThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r>n)throw new t("Expected "+e+" to be less than or equal to "+n+", actual value was "+r)},i.typeOf.number.greaterThan=function(e,r,n){if(i.typeOf.number(e,r),r<=n)throw new t("Expected "+e+" to be greater than "+n+", actual value was "+r)},i.typeOf.number.greaterThanOrEquals=function(e,r,n){if(i.typeOf.number(e,r),r<n)throw new t("Expected "+e+" to be greater than or equal to"+n+", actual value was "+r)},i.typeOf.object=function(e,r){if("object"!=typeof r)throw new t(n(typeof r,"object",e))},i.typeOf.bool=function(e,r){if("boolean"!=typeof r)throw new t(n(typeof r,"boolean",e))},i.typeOf.number.equals=function(e,r,n,a){if(i.typeOf.number(e,n),i.typeOf.number(r,a),n!==a)throw new t(e+" must be equal to "+r+", the actual values are "+n+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var r;for(this.mti==this.N+1&&this.init_genrand(5489),r=0;r<this.N-this.M;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+this.M]^e>>>1^t[1&e];for(;r<this.N-1;r++)e=this.mt[r]&this.UPPER_MASK|this.mt[r+1]&this.LOWER_MASK,this.mt[r]=this.mt[r+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=r(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=r(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=r(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,r){return r=Math.max(r-t,0),0===r?0:a.clamp((e-t)/r,0,1)},a.sinh=r(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=r(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,r){return(1-r)*e+r*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,r=e-Math.floor(e/t)*t;return r<-Math.PI?r+t:r>=Math.PI?r-t:r},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,n,i){i=r(i,n);var a=Math.abs(e-t);return a<=i||a<=n*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,r){return e-t<-r},a.lessThanOrEquals=function(e,t,r){return e-t<r},a.greaterThan=function(e,t,r){return e-t>r},a.greaterThanOrEquals=function(e,t,r){return e-t>-r};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var r=o[t-1],n=t;n<=e;n++)o.push(r*n);return o[e]},a.incrementWrap=function(e,t,n){return n=r(n,0),++e,e>t&&(e=n),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,r){return e<t?t:e>r?r:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=r(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=r(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var r=e*t;return 1-Math.exp(-r*r)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var r,n,i=Math.abs(e);r=Math.abs(t),n=Math.max(i,r),r=Math.min(i,r);var o=r/n;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r){this.x=t(e,0),this.y=t(r,0)}o.fromElements=function(e,t,n){return r(n)?(n.x=e,n.y=t,n):new o(e,t)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n]=e.y,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=2*n:t=new Array(2*n);for(var i=0;i<n;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/2:t=new Array(n/2);for(var i=0;i<n;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0)}o.fromSpherical=function(e,n){r(n)||(n=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return n.x=s*Math.cos(i),n.y=s*Math.sin(i),n.z=u*Math.cos(a),n},o.fromElements=function(e,t,n,i){return r(i)?(i.x=e,i.y=t,i.z=n,i):new o(e,t,n)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n]=e.z,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=3*n:t=new Array(3*n);for(var i=0;i<n;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/3:t=new Array(n/3);for(var i=0;i<n;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var r=o.dot(c,l),n=o.magnitude(o.cross(c,l,c));return Math.atan2(n,r)};var f=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,f);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):r.y<=r.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,r){var n=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,n,r)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)},o.cross=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-n*s,f=n*u-i*o;return r.x=c,r.y=l,r.z=f,r},o.midpoint=function(e,t,r){return r.x=.5*(e.x+t.x),r.y=.5*(e.y+t.y),r.z=.5*(e.z+t.z),r},o.fromDegrees=function(e,t,r,n,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,r,n,i)};var h=new o,d=new o,m=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,n,i,a,u){i=t(i,0);var s=r(a)?a.radiiSquared:m,c=Math.cos(n);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(n),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),r(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromDegrees(u,s,0,t,n[c])}return n},o.fromRadiansArray=function(e,t,n){var i=e.length;r(n)?n.length=i/2:n=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;n[c]=o.fromRadians(u,s,0,t,n[c])}return n},o.fromDegreesArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromDegrees(u,s,c,t,n[l])}return n},o.fromRadiansArrayHeights=function(e,t,n){var i=e.length;r(n)?n.length=i/3:n=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;n[l]=o.fromRadians(u,s,c,t,n[l])}return n},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,r,n,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,r){if(r.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),r.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var n=r.x,i=r.y;r.x=(1-Math.abs(i))*a.signNotZero(n),r.y=(1-Math.abs(n))*a.signNotZero(i)}return r.x=a.toSNorm(r.x,t),r.y=a.toSNorm(r.y,t),r},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,r,n,i){if(i.x=a.fromSNorm(e,n),i.y=a.fromSNorm(r,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,r){return s.octDecodeInRange(e,t,255,r)},s.octDecodeFromCartesian4=function(e,t){var r=e.x,n=e.y,i=e.z,a=e.w,o=256*r+n,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var r=e/256,n=Math.floor(r),i=256*(r-n);return s.octDecode(n,i,t)},s.octPack=function(e,t,r,n){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(r,f);return n.x=65536*o.x+i,n.y=65536*o.y+a,n},s.octUnpack=function(e,t,r,n){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,r),s.octDecode(a,u,n)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var r=e/4096,n=Math.floor(r);return t.x=n/4095,t.y=(e-4096*n)/4095,t},s.zigZagDeltaDecode=function(e,t,r){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,n(r)&&(s+=u(r[c]),r[c]=s)},s}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,r,n,i){"use strict";function a(t,i,a){this.minimum=e.clone(r(t,e.ZERO)),this.maximum=e.clone(r(i,e.ZERO)),a=n(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,r){if(n(r)||(r=new a),!n(t)||0===t.length)return r.minimum=e.clone(e.ZERO,r.minimum),r.maximum=e.clone(e.ZERO,r.maximum),r.center=e.clone(e.ZERO,r.center),r;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],m=d.x,E=d.y,p=d.z;i=Math.min(m,i),s=Math.max(m,s),o=Math.min(E,o),c=Math.max(E,c),u=Math.min(p,u),l=Math.max(p,l)}var y=r.minimum;y.x=i,y.y=o,y.z=u;var _=r.maximum;return _.x=s,_.y=c,_.z=l,r.center=e.midpoint(y,_,r.center),r},a.clone=function(t,r){if(n(t))return n(r)?(r.minimum=e.clone(t.minimum,r.minimum),r.maximum=e.clone(t.maximum,r.maximum),r.center=e.clone(t.center,r.center),r):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,r){return t===r||n(t)&&n(r)&&e.equals(t.center,r.center)&&e.equals(t.minimum,r.minimum)&&e.equals(t.maximum,r.maximum)};var o=new e;return a.intersectPlane=function(t,r){o=e.subtract(t.maximum,t.minimum,o);var n=e.multiplyByScalar(o,.5,o),a=r.normal,u=n.x*Math.abs(a.x)+n.y*Math.abs(a.y)+n.z*Math.abs(a.z),s=e.dot(t.center,a)+r.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(r,i,u,s,c){var l=r.x,f=r.y,h=r.z,d=i.x,m=i.y,E=i.z,p=l*l*d*d,y=f*f*m*m,_=h*h*E*E,T=p+y+_,R=Math.sqrt(1/T),A=e.multiplyByScalar(r,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,v=u.y,I=u.z,N=o;N.x=A.x*S*2,N.y=A.y*v*2,N.z=A.z*I*2;var g,M,O,w,C,x,P,U,D,F,L,b=(1-R)*e.magnitude(r)/(.5*e.magnitude(N)),B=0;do{b-=B,O=1/(1+b*S),w=1/(1+b*v),C=1/(1+b*I),x=O*O,P=w*w,U=C*C,D=x*O,F=P*w,L=U*C,g=p*x+y*P+_*U-1,M=p*D*S+y*F*v+_*L*I;B=g/(-2*M)}while(Math.abs(g)>n.EPSILON12);return t(c)?(c.x=l*O,c.y=f*w,c.z=h*C,c):new e(l*O,f*w,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o){"use strict";function u(e,t,n){this.longitude=r(e,0),this.latitude=r(t,0),this.height=r(n,0)}u.fromRadians=function(e,t,i,a){return i=r(i,0),n(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,r,n){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,r,n)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,r,i){var m=n(r)?r.oneOverRadii:f,E=n(r)?r.oneOverRadiiSquared:h,p=n(r)?r._centerToleranceSquared:d,y=o(t,m,E,p,c);if(n(y)){var _=e.multiplyComponents(y,E,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),R=Math.atan2(_.y,_.x),A=Math.asin(_.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return n(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,r,n){return e.fromRadians(t.longitude,t.latitude,t.height,r,n)},u.clone=function(e,t){if(n(e))return n(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||n(e)&&n(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.longitude-t.longitude)<=r&&Math.abs(e.latitude-t.latitude)<=r&&Math.abs(e.height-t.height)<=r},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),r=Object.defineProperties;return t&&e(r)||(r=function(e){return e}),r}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(t,r,i,a){r=n(r,0),i=n(i,0),a=n(a,0),t._radii=new e(r,i,a),t._radiiSquared=new e(r*r,i*i,a*a),t._radiiToTheFourth=new e(r*r*r*r,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===r?0:1/r,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===r?0:1/(r*r),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(r,i,a),t._maximumRadius=Math.max(r,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,r){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,r)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,r){if(i(t)){var n=t._radii;return i(r)?(e.clone(n,r._radii),e.clone(t._radiiSquared,r._radiiSquared),e.clone(t._radiiToTheFourth,r._radiiToTheFourth),e.clone(t._oneOverRadii,r._oneOverRadii),e.clone(t._oneOverRadiiSquared,r._oneOverRadiiSquared),r._minimumRadius=t._minimumRadius,r._maximumRadius=t._maximumRadius,r._centerToleranceSquared=t._centerToleranceSquared,r):new f(n.x,n.y,n.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,r,i){return i=n(i,0),e.pack(t._radii,r,i),r},f.unpack=function(t,r,i){r=n(r,0);var a=e.unpack(t,r);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,r){var n=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(n),s=o*Math.sin(n),c=Math.sin(a);return i(r)||(r=new e),r.x=u,r.y=s,r.z=c,e.normalize(r,r)},f.prototype.geodeticSurfaceNormal=function(t,r){return i(r)||(r=new e),r=e.multiplyComponents(t,this._oneOverRadiiSquared,r),e.normalize(r,r)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,r){var n=h,a=d;this.geodeticSurfaceNormalCartographic(t,n),e.multiplyComponents(this._radiiSquared,n,a);var o=Math.sqrt(e.dot(n,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(n,t.height,n),i(r)||(r=new e),e.add(a,n,r)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;n++)t[n]=this.cartographicToCartesian(e[n],t[n]);return t};var m=new e,E=new e,p=new e;return f.prototype.cartesianToCartographic=function(r,n){var a=this.scaleToGeodeticSurface(r,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,m),u=e.subtract(r,a,p),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,r))*e.magnitude(u);return i(n)?(n.longitude=c,n.latitude=l,n.height=f,n):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var r=e.length;i(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.cartesianToCartographic(e[n],t[n]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,r){i(r)||(r=new e);var n=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,r)},f.prototype.transformPositionToScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._oneOverRadii,r)},f.prototype.transformPositionFromScaledSpace=function(t,r){return i(r)||(r=new e),e.multiplyComponents(t,this._radii,r)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,r,a){r=n(r,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-r))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,r,n,i,a,o){"use strict";function u(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},u.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},u}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,r){this.start=e(t,0),this.stop=e(r,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i,a,o,u,s,c){this[0]=r(e,0),this[1]=r(i,0),this[2]=r(u,0),this[3]=r(t,0),this[4]=r(a,0),this[5]=r(s,0),this[6]=r(n,0),this[7]=r(o,0),this[8]=r(c,0)}function c(e){for(var t=0,r=0;r<9;++r){var n=e[r];t+=n*n}return Math.sqrt(t)}function l(e){for(var t=0,r=0;r<3;++r){var n=e[s.getElementIndex(E[r],m[r])];t+=2*n*n}return Math.sqrt(t)}function f(e,t){for(var r=u.EPSILON15,n=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],m[a])]);o>n&&(i=a,n=o)}var c=1,l=0,f=m[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>r){var d,p=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(p-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(n(e))return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var r=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,m=r-u-f+d,E=2*(i-h),p=2*(a+l),y=2*(i+h),_=-r+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-r-u+f+d;return n(t)?(t[0]=m,t[1]=y,t[2]=R,t[3]=E,t[4]=_,t[5]=A,t[6]=p,t[7]=T,t[8]=S,t):new s(m,E,p,y,_,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var r=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=r*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=r*u,m=a*i+c*o*u,E=-c*i+a*o*u,p=-o,y=c*r,_=a*r;return n(t)?(t[0]=l,t[1]=d,t[2]=p,t[3]=f,t[4]=m,t[5]=y,t[6]=h,t[7]=E,t[8]=_,t):new s(l,f,h,d,m,E,p,y,_)},s.fromScale=function(e,t){return n(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return n(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return n(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=r,t[5]=i,t[6]=0,t[7]=-i,t[8]=r,t):new s(1,0,0,0,r,-i,0,i,r)},s.fromRotationY=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=r,t):new s(r,0,i,0,1,0,-i,0,r)},s.fromRotationZ=function(e,t){var r=Math.cos(e),i=Math.sin(e);return n(t)?(t[0]=r,t[1]=i,t[2]=0,t[3]=-i,t[4]=r,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(r,-i,0,i,r,0,0,0,1)},s.toArray=function(e,t){return n(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,r){var n=3*t,i=e[n],a=e[n+1],o=e[n+2];return r.x=i,r.y=a,r.z=o,r},s.setColumn=function(e,t,r,n){n=s.clone(e,n);var i=3*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n},s.getRow=function(e,t,r){var n=e[t],i=e[t+3],a=e[t+6];return r.x=n,r.y=i,r.z=a,r},s.setRow=function(e,t,r,n){return n=s.clone(e,n),n[t]=r.x,n[t+3]=r.y,n[t+6]=r.z,n};var h=new e;s.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),r.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),r.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),r};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,r){ -var n=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return r[0]=n,r[1]=i,r[2]=a,r[3]=o,r[4]=u,r[5]=s,r[6]=c,r[7]=l,r[8]=f,r},s.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r},s.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r},s.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[3]*i+e[6]*a,u=e[1]*n+e[4]*i+e[7]*a,s=e[2]*n+e[5]*i+e[8]*a;return r.x=o,r.y=u,r.z=s,r},s.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r},s.multiplyByScale=function(e,t,r){return r[0]=e[0]*t.x,r[1]=e[1]*t.x,r[2]=e[2]*t.x,r[3]=e[3]*t.y,r[4]=e[4]*t.y,r[5]=e[5]*t.y,r[6]=e[6]*t.z,r[7]=e[7]*t.z,r[8]=e[8]*t.z,r},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var r=e[0],n=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=r,t[1]=n,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var m=[1,0,0],E=[2,2,1],p=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var r=u.EPSILON20,i=0,a=0;n(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=r*c(h);a<10&&l(h)>d;)f(h,p),s.transpose(p,y),s.multiply(h,p,h),s.multiply(y,h,h),s.multiply(o,p,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],r=e[3],n=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*n-r*c)+u*(r*o-a*n)},s.inverse=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-n*f,t[2]=n*u-o*i,t[3]=c*u-a*f,t[4]=r*f-c*i,t[5]=a*i-r*u,t[6]=a*l-c*o,t[7]=c*n-r*l,t[8]=r*o-a*n;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,r,n,i,a){"use strict";function o(e,r,n,i){this.x=t(e,0),this.y=t(r,0),this.z=t(n,0),this.w=t(i,0)}o.fromElements=function(e,t,n,i,a){return r(a)?(a.x=e,a.y=t,a.z=n,a.w=i,a):new o(e,t,n,i)},o.fromColor=function(e,t){return r(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,r,n){return n=t(n,0),r[n++]=e.x,r[n++]=e.y,r[n++]=e.z,r[n]=e.w,r},o.unpack=function(e,n,i){return n=t(n,0),r(i)||(i=new o),i.x=e[n++],i.y=e[n++],i.z=e[n++],i.w=e[n],i},o.packArray=function(e,t){var n=e.length;r(t)?t.length=4*n:t=new Array(4*n);for(var i=0;i<n;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var n=e.length;r(t)?t.length=n/4:t=new Array(n/4);for(var i=0;i<n;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,r){return r.x=Math.min(e.x,t.x),r.y=Math.min(e.y,t.y),r.z=Math.min(e.z,t.z),r.w=Math.min(e.w,t.w),r},o.maximumByComponent=function(e,t,r){return r.x=Math.max(e.x,t.x),r.y=Math.max(e.y,t.y),r.z=Math.max(e.z,t.z),r.w=Math.max(e.w,t.w),r},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var r=o.magnitude(e);return t.x=e.x/r,t.y=e.y/r,t.z=e.z/r,t.w=e.w/r,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,r){return r.x=e.x*t.x,r.y=e.y*t.y,r.z=e.z*t.z,r.w=e.w*t.w,r},o.divideComponents=function(e,t,r){return r.x=e.x/t.x,r.y=e.y/t.y,r.z=e.z/t.z,r.w=e.w/t.w,r},o.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},o.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},o.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},o.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,r,n){return o.multiplyByScalar(t,r,s),n=o.multiplyByScalar(e,1-r,n),o.add(s,n,n)};var c=new o;o.mostOrthogonalAxis=function(e,t){var r=o.normalize(e,c);return o.abs(r,r),t=r.x<=r.y?r.x<=r.z?r.x<=r.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):r.y<=r.z?r.y<=r.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):r.z<=r.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,r){return e.x===t[r]&&e.y===t[r+1]&&e.z===t[r+2]&&e.w===t[r+3]},o.equalsEpsilon=function(e,t,n,i){return e===t||r(e)&&r(t)&&a.equalsEpsilon(e.x,t.x,n,i)&&a.equalsEpsilon(e.y,t.y,n,i)&&a.equalsEpsilon(e.z,t.z,n,i)&&a.equalsEpsilon(e.w,t.w,n,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,r){return o.equalsEpsilon(this,e,t,r)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(r(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var n,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),n=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,n)):(e=.1,n=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(n+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,r=Math.floor(t),n=2*(t-r);if(r-=38,n=2*n-1,n=-n,r>=38)return n<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=n*e.x*(1/256);return i+=n*e.y*(1/65536),(i+=n*e.z*(1/16777216))*Math.pow(10,r)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t,r,i,a,o,u,s,c,l,f,h,d,m,E,p){this[0]=n(e,0),this[1]=n(a,0),this[2]=n(c,0),this[3]=n(d,0),this[4]=n(t,0),this[5]=n(o,0),this[6]=n(l,0),this[7]=n(m,0),this[8]=n(r,0),this[9]=n(u,0),this[10]=n(f,0),this[11]=n(E,0),this[12]=n(i,0),this[13]=n(s,0),this[14]=n(h,0),this[15]=n(p,0)}l.packedLength=16,l.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t[r++]=e[9],t[r++]=e[10],t[r++]=e[11],t[r++]=e[12],t[r++]=e[13],t[r++]=e[14],t[r]=e[15],t},l.unpack=function(e,t,r){return t=n(t,0),i(r)||(r=new l),r[0]=e[t++],r[1]=e[t++],r[2]=e[t++],r[3]=e[t++],r[4]=e[t++],r[5]=e[t++],r[6]=e[t++],r[7]=e[t++],r[8]=e[t++],r[9]=e[t++],r[10]=e[t++],r[11]=e[t++],r[12]=e[t++],r[13]=e[t++],r[14]=e[t++],r[15]=e[t],r},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,r,a){return r=n(r,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a):new l(t[0],t[3],t[6],r.x,t[1],t[4],t[7],r.y,t[2],t[5],t[8],r.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,r,n){i(n)||(n=new l);var a=r.x,o=r.y,u=r.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,m=t.y*t.z,E=t.y*t.w,p=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-p+_,R=2*(c-y),A=2*(f+E),S=2*(c+y),v=-s+d-p+_,I=2*(m-h),N=2*(f-E),g=2*(m+h),M=-s-d+p+_;return n[0]=T*a,n[1]=S*a,n[2]=N*a,n[3]=0,n[4]=R*o,n[5]=v*o,n[6]=g*o,n[7]=0,n[8]=A*u,n[9]=I*u,n[10]=M*u,n[11]=0,n[12]=e.x,n[13]=e.y,n[14]=e.z,n[15]=1,n},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,r){var n=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,m=f.x,E=f.y,p=f.z,y=d.x,_=d.y,T=d.z,R=n.x,A=n.y,S=n.z,v=u*-R+s*-A+c*-S,I=y*-R+_*-A+T*-S,N=m*R+E*A+p*S;return i(r)?(r[0]=u,r[1]=y,r[2]=-m,r[3]=0,r[4]=s,r[5]=_,r[6]=-E,r[7]=0,r[8]=c,r[9]=T,r[10]=-p,r[11]=0,r[12]=v,r[13]=I,r[14]=N,r[15]=1,r):new l(u,s,c,v,y,_,T,I,-m,-E,-p,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,r,n,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(n+r)/(r-n),c=2*n*r/(r-n);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,r,n,i,a,o){var u=1/(t-e),s=1/(n-r),c=1/(a-i),l=-(t+e)*u,f=-(n+r)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,r,n,i,a,o){var u=2*i/(t-e),s=2*i/(n-r),c=(t+e)/(t-e),l=(n+r)/(n-r),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,r,n,i,a){var o=2*i/(t-e),u=2*i/(n-r),s=(t+e)/(t-e),c=(n+r)/(n-r),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,r,i){e=n(e,n.EMPTY_OBJECT);var a=n(e.x,0),o=n(e.y,0),u=n(e.width,0),s=n(e.height,0);t=n(t,0),r=n(r,1);var c=.5*u,l=.5*s,f=.5*(r-t),h=c,d=l,m=f,E=a+c,p=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=m,i[11]=0,i[12]=E,i[13]=p,i[14]=y,i[15]=1,i},l.computeView=function(t,r,n,i,a){return a[0]=i.x,a[1]=n.x,a[2]=-r.x,a[3]=0,a[4]=i.y,a[5]=n.y,a[6]=-r.y,a[7]=0,a[8]=i.z,a[9]=n.z,a[10]=-r.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(n,t),a[14]=e.dot(r,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,r){var n=4*t,i=e[n],a=e[n+1],o=e[n+2],u=e[n+3];return r.x=i,r.y=a,r.z=o,r.w=u,r},l.setColumn=function(e,t,r,n){n=l.clone(e,n);var i=4*t;return n[i]=r.x,n[i+1]=r.y,n[i+2]=r.z,n[i+3]=r.w,n},l.setTranslation=function(e,t,r){return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=t.x,r[13]=t.y,r[14]=t.z,r[15]=e[15],r};var m=new e;l.setScale=function(t,r,n){var i=l.getScale(t,m),a=e.divideComponents(r,i,m);return l.multiplyByScale(t,a,n)},l.getRow=function(e,t,r){var n=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return r.x=n,r.y=i,r.z=a,r.w=o,r},l.setRow=function(e,t,r,n){return n=l.clone(e,n),n[t]=r.x,n[t+4]=r.y,n[t+8]=r.z,n[t+12]=r.w,n};var E=new e;l.getScale=function(t,r){return r.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),r.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),r.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),r};var p=new e;l.getMaximumScale=function(t){return l.getScale(t,p),e.maximumComponent(p)},l.multiply=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],m=e[11],E=e[12],p=e[13],y=e[14],_=e[15],T=t[0],R=t[1],A=t[2],S=t[3],v=t[4],I=t[5],N=t[6],g=t[7],M=t[8],O=t[9],w=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=n*T+u*R+f*A+E*S,L=i*T+s*R+h*A+p*S,b=a*T+c*R+d*A+y*S,B=o*T+l*R+m*A+_*S,z=n*v+u*I+f*N+E*g,q=i*v+s*I+h*N+p*g,G=a*v+c*I+d*N+y*g,V=o*v+l*I+m*N+_*g,W=n*M+u*O+f*w+E*C,X=i*M+s*O+h*w+p*C,H=a*M+c*O+d*w+y*C,Y=o*M+l*O+m*w+_*C,k=n*x+u*P+f*U+E*D,j=i*x+s*P+h*U+p*D,Z=a*x+c*P+d*U+y*D,K=o*x+l*P+m*U+_*D;return r[0]=F,r[1]=L,r[2]=b,r[3]=B,r[4]=z,r[5]=q,r[6]=G,r[7]=V,r[8]=W,r[9]=X,r[10]=H,r[11]=Y,r[12]=k,r[13]=j,r[14]=Z,r[15]=K,r},l.add=function(e,t,r){return r[0]=e[0]+t[0],r[1]=e[1]+t[1],r[2]=e[2]+t[2],r[3]=e[3]+t[3],r[4]=e[4]+t[4],r[5]=e[5]+t[5],r[6]=e[6]+t[6],r[7]=e[7]+t[7],r[8]=e[8]+t[8],r[9]=e[9]+t[9],r[10]=e[10]+t[10],r[11]=e[11]+t[11],r[12]=e[12]+t[12],r[13]=e[13]+t[13],r[14]=e[14]+t[14],r[15]=e[15]+t[15],r},l.subtract=function(e,t,r){return r[0]=e[0]-t[0],r[1]=e[1]-t[1],r[2]=e[2]-t[2],r[3]=e[3]-t[3],r[4]=e[4]-t[4],r[5]=e[5]-t[5],r[6]=e[6]-t[6],r[7]=e[7]-t[7],r[8]=e[8]-t[8],r[9]=e[9]-t[9],r[10]=e[10]-t[10],r[11]=e[11]-t[11],r[12]=e[12]-t[12],r[13]=e[13]-t[13],r[14]=e[14]-t[14],r[15]=e[15]-t[15],r},l.multiplyTransformation=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],m=e[14],E=t[0],p=t[1],y=t[2],_=t[4],T=t[5],R=t[6],A=t[8],S=t[9],v=t[10],I=t[12],N=t[13],g=t[14],M=n*E+o*p+c*y,O=i*E+u*p+l*y,w=a*E+s*p+f*y,C=n*_+o*T+c*R,x=i*_+u*T+l*R,P=a*_+s*T+f*R,U=n*A+o*S+c*v,D=i*A+u*S+l*v,F=a*A+s*S+f*v,L=n*I+o*N+c*g+h,b=i*I+u*N+l*g+d,B=a*I+s*N+f*g+m;return r[0]=M,r[1]=O,r[2]=w,r[3]=0,r[4]=C,r[5]=x,r[6]=P,r[7]=0,r[8]=U,r[9]=D,r[10]=F,r[11]=0,r[12]=L,r[13]=b,r[14]=B,r[15]=1,r},l.multiplyByMatrix3=function(e,t,r){var n=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],m=t[2],E=t[3],p=t[4],y=t[5],_=t[6],T=t[7],R=t[8],A=n*h+o*d+c*m,S=i*h+u*d+l*m,v=a*h+s*d+f*m,I=n*E+o*p+c*y,N=i*E+u*p+l*y,g=a*E+s*p+f*y,M=n*_+o*T+c*R,O=i*_+u*T+l*R,w=a*_+s*T+f*R;return r[0]=A,r[1]=S,r[2]=v,r[3]=0,r[4]=I,r[5]=N,r[6]=g,r[7]=0,r[8]=M,r[9]=O,r[10]=w,r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=e[15],r},l.multiplyByTranslation=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=n*e[0]+i*e[4]+a*e[8]+e[12],u=n*e[1]+i*e[5]+a*e[9]+e[13],s=n*e[2]+i*e[6]+a*e[10]+e[14];return r[0]=e[0],r[1]=e[1],r[2]=e[2],r[3]=e[3],r[4]=e[4],r[5]=e[5],r[6]=e[6],r[7]=e[7],r[8]=e[8],r[9]=e[9],r[10]=e[10],r[11]=e[11],r[12]=o,r[13]=u,r[14]=s,r[15]=e[15],r};var y=new e;l.multiplyByUniformScale=function(e,t,r){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,r)},l.multiplyByScale=function(e,t,r){var n=t.x,i=t.y,a=t.z;return 1===n&&1===i&&1===a?l.clone(e,r):(r[0]=n*e[0],r[1]=n*e[1],r[2]=n*e[2],r[3]=0,r[4]=i*e[4],r[5]=i*e[5],r[6]=i*e[6],r[7]=0,r[8]=a*e[8],r[9]=a*e[9],r[10]=a*e[10],r[11]=0,r[12]=e[12],r[13]=e[13],r[14]=e[14],r[15]=1,r)},l.multiplyByVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*n+e[4]*i+e[8]*a+e[12]*o,s=e[1]*n+e[5]*i+e[9]*a+e[13]*o,c=e[2]*n+e[6]*i+e[10]*a+e[14]*o,l=e[3]*n+e[7]*i+e[11]*a+e[15]*o;return r.x=u,r.y=s,r.z=c,r.w=l,r},l.multiplyByPointAsVector=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a,u=e[1]*n+e[5]*i+e[9]*a,s=e[2]*n+e[6]*i+e[10]*a;return r.x=o,r.y=u,r.z=s,r},l.multiplyByPoint=function(e,t,r){var n=t.x,i=t.y,a=t.z,o=e[0]*n+e[4]*i+e[8]*a+e[12],u=e[1]*n+e[5]*i+e[9]*a+e[13],s=e[2]*n+e[6]*i+e[10]*a+e[14];return r.x=o,r.y=u,r.z=s,r},l.multiplyByScalar=function(e,t,r){return r[0]=e[0]*t,r[1]=e[1]*t,r[2]=e[2]*t,r[3]=e[3]*t,r[4]=e[4]*t,r[5]=e[5]*t,r[6]=e[6]*t,r[7]=e[7]*t,r[8]=e[8]*t,r[9]=e[9]*t,r[10]=e[10]*t,r[11]=e[11]*t,r[12]=e[12]*t,r[13]=e[13]*t,r[14]=e[14]*t,r[15]=e[15]*t,r},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var r=e[1],n=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=r,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=n,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,r){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=r&&Math.abs(e[1]-t[1])<=r&&Math.abs(e[2]-t[2])<=r&&Math.abs(e[3]-t[3])<=r&&Math.abs(e[4]-t[4])<=r&&Math.abs(e[5]-t[5])<=r&&Math.abs(e[6]-t[6])<=r&&Math.abs(e[7]-t[7])<=r&&Math.abs(e[8]-t[8])<=r&&Math.abs(e[9]-t[9])<=r&&Math.abs(e[10]-t[10])<=r&&Math.abs(e[11]-t[11])<=r&&Math.abs(e[12]-t[12])<=r&&Math.abs(e[13]-t[13])<=r&&Math.abs(e[14]-t[14])<=r&&Math.abs(e[15]-t[15])<=r},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,r){var n=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],m=e[13],E=e[2],p=e[6],y=e[10],S=e[14],v=e[3],I=e[7],N=e[11],g=e[15],M=y*g,O=S*N,w=p*g,C=S*I,x=p*N,P=y*I,U=E*g,D=S*v,F=E*N,L=y*v,b=E*I,B=p*v,z=M*h+C*d+x*m-(O*h+w*d+P*m),q=O*f+U*d+L*m-(M*f+D*d+F*m),G=w*f+D*h+b*m-(C*f+U*h+B*m),V=P*f+F*h+B*d-(x*f+L*h+b*d),W=O*i+w*a+P*o-(M*i+C*a+x*o),X=M*n+D*a+F*o-(O*n+U*a+L*o),H=C*n+U*i+B*o-(w*n+D*i+b*o),Y=x*n+L*i+b*a-(P*n+F*i+B*a);M=a*m,O=o*d,w=i*m,C=o*h,x=i*d,P=a*h,U=n*m,D=o*f,F=n*d,L=a*f,b=n*h,B=i*f;var k=M*I+C*N+x*g-(O*I+w*N+P*g),j=O*v+U*N+L*g-(M*v+D*N+F*g),Z=w*v+D*I+b*g-(C*v+U*I+B*g),K=P*v+F*I+B*N-(x*v+L*I+b*N),J=w*y+P*S+O*p-(x*S+M*p+C*y),Q=F*S+M*E+D*y-(U*y+L*S+O*E),$=U*p+B*S+C*E-(b*S+w*E+D*p),ee=b*y+x*E+L*p-(F*p+B*y+P*E),te=n*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return r[0]=0,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=0,r[6]=0,r[7]=0,r[8]=0,r[9]=0,r[10]=0,r[11]=0,r[12]=-e[12],r[13]=-e[13],r[14]=-e[14],r[15]=1,r;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,r[0]=z*te,r[1]=q*te,r[2]=G*te,r[3]=V*te,r[4]=W*te,r[5]=X*te,r[6]=H*te,r[7]=Y*te,r[8]=k*te,r[9]=j*te,r[10]=Z*te,r[11]=K*te,r[12]=J*te,r[13]=Q*te,r[14]=$*te,r[15]=ee*te,r},l.inverseTransformation=function(e,t){var r=e[0],n=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],m=-r*f-n*h-i*d,E=-a*f-o*h-u*d,p=-s*f-c*h-l*d;return t[0]=r,t[1]=a,t[2]=s,t[3]=0,t[4]=n,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=m,t[13]=E,t[14]=p,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,r){return e[0]===t[r]&&e[1]===t[r+1]&&e[2]===t[r+2]&&e[3]===t[r+3]&&e[4]===t[r+4]&&e[5]===t[r+5]&&e[6]===t[r+6]&&e[7]===t[r+7]&&e[8]===t[r+8]&&e[9]===t[r+9]&&e[10]===t[r+10]&&e[11]===t[r+11]&&e[12]===t[r+12]&&e[13]===t[r+13]&&e[14]===t[r+14]&&e[15]===t[r+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.west=r(e,0),this.south=r(t,0),this.east=r(n,0),this.north=r(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,r=e.west;return t<r&&(t+=u.TWO_PI),t-r},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(r(e,0)),t=u.toRadians(r(t,0)),i=u.toRadians(r(i,0)),a=u.toRadians(r(a,0)),n(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return n(o)?(o.west=r(e,0),o.south=r(t,0),o.east=r(i,0),o.north=r(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var r=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];r=Math.min(r,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var m=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,m),o=Math.max(o,m)}return i-r>o-a&&(r=a,i=o,i>u.PI&&(i-=u.TWO_PI),r>u.PI&&(r-=u.TWO_PI)),n(t)?(t.west=r,t.south=c,t.east=i,t.north=l,t):new s(r,c,i,l)},s.fromCartesianArray=function(e,t,i){t=r(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,m=0,E=e.length;m<E;m++){var p=t.cartesianToCartographic(e[m]);o=Math.min(o,p.longitude),c=Math.max(c,p.longitude),h=Math.min(h,p.latitude),d=Math.max(d,p.latitude);var y=p.longitude>=0?p.longitude:p.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),n(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(n(e))return n(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.west-t.west)<=r&&Math.abs(e.south-t.south)<=r&&Math.abs(e.east-t.east)<=r&&Math.abs(e.north-t.north)<=r},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.south,r.height=0,r):new e(t.west,t.south)},s.northwest=function(t,r){return n(r)?(r.longitude=t.west,r.latitude=t.north,r.height=0,r):new e(t.west,t.north)},s.northeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.north,r.height=0,r):new e(t.east,t.north)},s.southeast=function(t,r){return n(r)?(r.longitude=t.east,r.latitude=t.south,r.height=0,r):new e(t.east,t.south)},s.center=function(t,r){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return n(r)?(r.longitude=o,r.latitude=s,r.height=0,r):new e(o,s)},s.intersection=function(e,t,r){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return n(r)?(r.west=l,r.south=h,r.east=f,r.north=d,r):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,r){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return n(r)?(r.west=i,r.south=a,r.east=o,r.north=u,r):new s(i,a,o,u)},s.union=function(e,t,r){n(r)||(r=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return r.west=l,r.south=Math.min(e.south,t.south),r.east=f,r.north=Math.max(e.north,t.north),r},s.expand=function(e,t,r){return n(r)||(r=new s),r.west=Math.min(e.west,t.longitude),r.south=Math.min(e.south,t.latitude),r.east=Math.max(e.east,t.longitude),r.north=Math.max(e.north,t.latitude),r},s.contains=function(e,t){var r=t.longitude,n=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,r<0&&(r+=u.TWO_PI)),(r>i||u.equalsEpsilon(r,i,u.EPSILON14))&&(r<a||u.equalsEpsilon(r,a,u.EPSILON14))&&n>=e.south&&n<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=r(t,a.WGS84),i=r(i,0),n(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,m=e.west,E=c;E.height=i,E.longitude=m,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=m,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var p=1;p<8;++p)E.longitude=-Math.PI+p*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=m,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h){"use strict";function d(t,r){this.center=e.clone(n(t,e.ZERO)),this.radius=n(r,0)}var m=new e,E=new e,p=new e,y=new e,_=new e,T=new e,R=new e,A=new e,S=new e,v=new e,I=new e,N=new e,g=4/3*c.PI;d.fromPoints=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n,a=e.clone(t[0],R),o=e.clone(a,m),u=e.clone(a,E),s=e.clone(a,p),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(n=1;n<h;n++){e.clone(t[n],a);var g=a.x,M=a.y,O=a.z;g<o.x&&e.clone(a,o),g>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),O<s.z&&e.clone(a,s),O>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=w;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=S;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),b=Math.sqrt(L),B=v;B.x=o.x,B.y=u.y,B.z=s.z;var z=I;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(B,z,N),G=0;for(n=0;n<h;n++){e.clone(t[n],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var W=e.magnitudeSquared(e.subtract(a,F,A));if(W>L){var X=Math.sqrt(W);b=.5*(b+X),L=b*b;var H=X-b;F.x=(b*F.x+H*a.x)/X,F.y=(b*F.y+H*a.y)/X,F.z=(b*F.z+H*a.z)/X}}return b<G?(e.clone(F,r.center),r.radius=b):(e.clone(q,r.center),r.radius=G),r};var M=new o,O=new e,w=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,r){return d.fromRectangleWithHeights2D(e,t,0,0,r)},d.fromRectangleWithHeights2D=function(t,r,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;r=n(r,M),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=r.project(C,O),c=r.project(x,w),l=c.x-s.x,f=c.y-s.y,m=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+m*m);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*m,u};var P=[];d.fromRectangle3D=function(t,r,o,u){if(r=n(r,a.WGS84),o=n(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,r,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,r,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;r=n(r,e.ZERO),a=n(a,3);var u=R;u.x=t[0]+r.x,u.y=t[1]+r.y,u.z=t[2]+r.z;var s,c=e.clone(u,m),l=e.clone(u,E),f=e.clone(u,p),h=e.clone(u,y),g=e.clone(u,_),M=e.clone(u,T),O=t.length;for(s=0;s<O;s+=a){var w=t[s]+r.x,C=t[s+1]+r.y,x=t[s+2]+r.z;u.x=w,u.y=C,u.z=x,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>g.y&&e.clone(u,g),x<f.z&&e.clone(u,f),x>M.z&&e.clone(u,M)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(g,l,A)),D=e.magnitudeSquared(e.subtract(M,f,A)),F=c,L=h,b=P;U>b&&(b=U,F=l,L=g),D>b&&(b=D,F=f,L=M);var B=S;B.x=.5*(F.x+L.x),B.y=.5*(F.y+L.y),B.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,B,A)),q=Math.sqrt(z),G=v;G.x=c.x,G.y=l.y,G.z=f.z;var V=I;V.x=h.x,V.y=g.y,V.z=M.z;var W=e.midpoint(G,V,N),X=0 -;for(s=0;s<O;s+=a){u.x=t[s]+r.x,u.y=t[s+1]+r.y,u.z=t[s+2]+r.z;var H=e.magnitude(e.subtract(u,W,A));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;B.x=(q*B.x+j*u.x)/k,B.y=(q*B.y+j*u.y)/k,B.z=(q*B.z+j*u.z)/k}}return q<X?(e.clone(B,o.center),o.radius=q):(e.clone(W,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,r,n){if(i(n)||(n=new d),!i(t)||!i(r)||t.length!==r.length||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var a=R;a.x=t[0]+r[0],a.y=t[1]+r[1],a.z=t[2]+r[2];var o,u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,p),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),g=t.length;for(o=0;o<g;o+=3){var M=t[o]+r[o],O=t[o+1]+r[o+1],w=t[o+2]+r[o+2];a.x=M,a.y=O,a.z=w,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),O<s.y&&e.clone(a,s),O>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,L,A)),B=Math.sqrt(b),z=v;z.x=u.x,z.y=s.y,z.z=c.z;var q=I;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,N),V=0;for(o=0;o<g;o+=3){a.x=t[o]+r[o],a.y=t[o+1]+r[o+1],a.z=t[o+2]+r[o+2];var W=e.magnitude(e.subtract(a,G,A));W>V&&(V=W);var X=e.magnitudeSquared(e.subtract(a,L,A));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;L.x=(B*L.x+Y*a.x)/H,L.y=(B*L.y+Y*a.y)/H,L.z=(B*L.z+Y*a.z)/H}}return B<V?(e.clone(L,n.center),n.radius=B):(e.clone(G,n.center),n.radius=V),n},d.fromCornerPoints=function(t,r,n){i(n)||(n=new d);var a=e.midpoint(t,r,n.center);return n.radius=e.distance(a,r),n},d.fromEllipsoid=function(t,r){return i(r)||(r=new d),e.clone(e.ZERO,r.center),r.radius=t.maximumRadius,r};var U=new e;d.fromBoundingSpheres=function(t,r){if(i(r)||(r=new d),!i(t)||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var n=t.length;if(1===n)return d.clone(t[0],r);if(2===n)return d.union(t[0],t[1],r);var a,o=[];for(a=0;a<n;a++)o.push(t[a].center);r=d.fromPoints(o,r);var u=r.center,s=r.radius;for(a=0;a<n;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return r.radius=s,r};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,r){i(r)||(r=new d);var n=t.halfAxes,a=l.getColumn(n,0,D),o=l.getColumn(n,1,F),u=l.getColumn(n,2,L);return e.add(a,o,a),e.add(a,u,a),r.center=e.clone(t.center,r.center),r.radius=e.magnitude(a),r},d.clone=function(t,r){if(i(t))return i(r)?(r.center=e.clone(t.center,r.center),r.radius=t.radius,r):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,r){r=n(r,0);var i=e.center;return t[r++]=i.x,t[r++]=i.y,t[r++]=i.z,t[r]=e.radius,t},d.unpack=function(e,t,r){t=n(t,0),i(r)||(r=new d);var a=r.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],r.radius=e[t],r};var b=new e,B=new e;d.union=function(t,r,n){i(n)||(n=new d);var a=t.center,o=t.radius,u=r.center,s=r.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(n),n;if(s>=l+o)return r.clone(n),n;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,n.center),n.radius=f,n};var z=new e;d.expand=function(t,r,n){n=d.clone(t,n);var i=e.magnitude(e.subtract(r,n.center,z));return i>n.radius&&(n.radius=i),n},d.intersectPlane=function(t,r){var n=t.center,i=t.radius,a=r.normal,o=e.dot(a,n)+r.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=f.getMaximumScale(t)*e.radius,r};var q=new e;d.distanceSquaredTo=function(t,r){var n=e.subtract(t.center,r,q);return e.magnitudeSquared(n)-t.radius*t.radius},d.transformWithoutScale=function(e,t,r){return i(r)||(r=new d),r.center=f.multiplyByPoint(t,e.center,r.center),r.radius=e.radius,r};var G=new e;d.computePlaneDistances=function(t,r,n,a){i(a)||(a=new s);var o=e.subtract(t.center,r,G),u=e.dot(n,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,W=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,r,i){r=n(r,K);var a=r.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,W);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),m=j,E=m[0];e.add(s,l,E),e.add(E,c,E),E=m[1],e.add(s,l,E),e.add(E,h,E),E=m[2],e.add(s,f,E),e.add(E,h,E),E=m[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=m[4],e.add(s,l,E),e.add(E,c,E),E=m[5],e.add(s,l,E),e.add(E,h,E),E=m[6],e.add(s,f,E),e.add(E,h,E),E=m[7],e.add(s,f,E),e.add(E,c,E);for(var p=m.length,y=0;y<p;++y){var _=m[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);r.project(T,_)}i=d.fromPoints(m,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,r){return t===r||i(t)&&i(r)&&e.equals(t.center,r.center)&&t.radius===r.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,r){return d.computePlaneDistances(this,e,t,r)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return g*e*e*e},d}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,r,n,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,r,i){return e>=n.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,r,i):new Uint16Array(t,r,i)},r(a)}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function r(e,r,n){var i=e+r;return t.sign(e)!==t.sign(r)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(r)))<n?0:i}var n={};return n.computeDiscriminant=function(e,t,r){return t*t-4*e*r},n.computeRealRoots=function(e,n,i){var a;if(0===e)return 0===n?[]:[-i/n];if(0===n){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-n/e,a<0?[a,0]:[0,a];var c=n*n,l=4*e*i,f=r(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*r(n,t.sign(n)*Math.sqrt(f),t.EPSILON14);return n>0?[h/e,i/h]:[i/h,h/e]},n}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function r(e,t,r,n){var i,a,o=e,u=t/3,s=r/3,c=n,l=o*s,f=u*c,h=u*u,d=s*s,m=o*s-h,E=o*c-u*s,p=u*c-d,y=4*m*p-E*E;if(y<0){var _,T,R;h*f>=l*d?(_=o,T=m,R=-2*u*m+o*E):(_=c,T=p,R=-c*E+2*s*p);var A=R<0?-1:1,S=-A*Math.abs(_)*Math.sqrt(-y);a=-R+S;var v=a/2,I=v<0?-Math.pow(-v,1/3):Math.pow(v,1/3),N=a===S?-I:-T/I;return i=T<=0?I+N:-R/(I*I+N*N+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var g=m,M=-2*u*m+o*E,O=p,w=-c*E+2*s*p,C=Math.sqrt(y),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-M)/3);i=2*Math.sqrt(-g);var U=Math.cos(P);a=i*U;var D=i*(-U/2-x*Math.sin(P)),F=a+D>2*u?a-u:D-u,L=o,b=F/L;P=Math.abs(Math.atan2(c*C,-w)/3),i=2*Math.sqrt(-O),U=Math.cos(P),a=i*U,D=i*(-U/2-x*Math.sin(P));var B=-c,z=a+D<2*s?a+s:D+s,q=B/z,G=L*z,V=-F*z-L*B,W=F*B,X=(s*V-u*W)/(-u*V+s*G);return b<=X?b<=q?X<=q?[b,X,q]:[b,q,X]:[q,b,X]:b<=q?[X,b,q]:X<=q?[X,q,b]:[q,X,b]}var n={};return n.computeDiscriminant=function(e,t,r,n){var i=e*e,a=t*t,o=r*r;return 18*e*t*r*n+a*o-27*i*(n*n)-4*(e*o*r+a*t*n)},n.computeRealRoots=function(e,n,i,a){var o,u;if(0===e)return t.computeRealRoots(n,i,a);if(0===n){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):r(e,0,i,a)}return 0===i?0===a?(u=-n/e,u<0?[u,0,0]:[0,0,u]):r(e,n,0,a):0===a?(o=t.computeRealRoots(e,n,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):r(e,n,i,a)},n}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,r,n){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<r.EPSILON14){var m=n.computeRealRoots(1,s,l);if(2===m.length){var E,p=m[0],y=m[1];if(p>=0&&y>=0){var _=Math.sqrt(p),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(p>=0&&y<0)return E=Math.sqrt(p),[h-E,h+E];if(p<0&&y>=0)return E=Math.sqrt(y),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),A=(s+d-c/R)/2,S=(s+d+c/R)/2,v=n.computeRealRoots(1,R,A),I=n.computeRealRoots(1,-R,S);return 0!==v.length?(v[0]+=h,v[1]+=h,0!==I.length?(I[0]+=h,I[1]+=h,v[1]<=I[0]?[v[0],v[1],I[0],I[1]]:I[1]<=v[0]?[I[0],I[1],v[0],v[1]]:v[0]>=I[0]&&v[1]<=I[1]?[I[0],v[0],v[1],I[1]]:I[0]>=v[0]&&I[1]<=v[1]?[v[0],I[0],I[1],v[1]]:v[0]>I[0]&&v[0]<I[1]?[I[0],v[0],I[1],v[1]]:[v[0],I[0],v[1],I[1]]):v):0!==I.length?(I[0]+=h,I[1]+=h,I):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var m,E,p=d[0],y=i-p,_=y*y,T=t/2,R=y/2,A=_-4*o,S=_+4*Math.abs(o),v=c-4*p,I=c+4*Math.abs(p);if(p<0||A*I<v*S){var N=Math.sqrt(v);m=N/2,E=0===N?0:(t*R-a)/N}else{var g=Math.sqrt(A);m=0===g?0:(t*R-a)/g,E=g/2}var M,O;0===T&&0===m?(M=0,O=0):r.sign(T)===r.sign(m)?(M=T+m,O=p/M):(O=T-m,M=p/O);var w,C;0===R&&0===E?(w=0,C=0):r.sign(R)===r.sign(E)?(w=R+E,C=o/w):(C=R-E,w=o/C);var x=n.computeRealRoots(1,M,w),P=n.computeRealRoots(1,O,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,r,n,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=r*r,l=c*r,f=n*n,h=f*n,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*r*h-27*a*f*f+256*o*(d*i)+i*(18*s*r*n-4*u*l+16*e*c*c-80*e*t*c*n-6*e*u*f+144*a*r*f)+d*(144*e*u*r-27*u*u-128*a*c-192*a*t*n)},o.computeRealRoots=function(t,n,o,u,s){if(Math.abs(t)<r.EPSILON15)return e.computeRealRoots(n,o,u,s);var c=n/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,r,n){"use strict";function i(t,n){n=e.clone(r(n,e.ZERO)),e.equals(n,e.ZERO)||e.normalize(n,n),this.origin=e.clone(r(t,e.ZERO)),this.direction=n}return i.clone=function(t,r){if(n(t))return n(r)?(r.origin=e.clone(t.origin),r.direction=e.clone(t.direction),r):new i(t.origin,t.direction)},i.getPoint=function(t,r,i){return n(i)||(i=new e),i=e.multiplyByScalar(t.direction,r,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t,r,n){var i=t*t-4*e*r;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(n.root0=u,n.root1=s):(n.root0=s,n.root1=u),n}var c=-t/(2*e);if(0!==c)return n.root0=n.root1=c,n}}function h(t,r,i){n(i)||(i=new a);var o=t.origin,u=t.direction,s=r.center,c=r.radius*r.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),m=e.magnitudeSquared(l)-c,E=f(h,d,m,S);if(n(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,r){var n=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(n/Math.max(Math.abs(e),Math.abs(t)))<r?0:n}function m(t,r,n,i,a){var l,f=i*i,h=a*a,m=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+r.y),p=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*r.x+n,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+r.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(m,E,p),0===l.length)return T;var R=l[0],A=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-A)),T.push(new e(i,a*R,a*A)),2===l.length){var S=l[1],v=Math.sqrt(Math.max(1-S*S,0));T.push(new e(i,a*S,a*-v)),T.push(new e(i,a*S,a*v))}return T}var I=_*_,N=y*y,g=m*m,M=_*y,O=g+N,w=2*(E*m+M),C=2*p*m+E*E-N+I,x=2*(p*E-M),P=p*p-I;if(0===O&&0===w&&0===C&&0===x)return T;l=c.computeRealRoots(O,w,C,x,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var F,L=l[D],b=L*L,B=Math.max(1-b,0),z=Math.sqrt(B);F=o.sign(m)===o.sign(p)?d(m*b+p,E*L,o.EPSILON12):o.sign(p)===o.sign(E*L)?d(m*b,E*L+p,o.EPSILON12):d(m*b+E*L,p,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=F*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++D):T.push(new e(i,a*L,a*z))}return T}var E={};E.rayPlane=function(t,r,i){n(i)||(i=new e);var a=t.origin,u=t.direction,s=r.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-r.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var p=new e,y=new e,_=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,n,i,a,u){u=r(u,!1);var s,c,l,f,h,d=t.origin,m=t.direction,E=e.subtract(i,n,p),A=e.subtract(a,n,y),S=e.cross(m,A,_),v=e.dot(E,S);if(u){if(v<o.EPSILON6)return;if(s=e.subtract(d,n,T),(l=e.dot(s,S))<0||l>v)return;if(c=e.cross(s,E,R),(f=e.dot(m,c))<0||l+f>v)return;h=e.dot(A,c)/v}else{if(Math.abs(v)<o.EPSILON6)return;var I=1/v;if(s=e.subtract(d,n,T),(l=e.dot(s,S)*I)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(m,c)*I)<0||l+f>1)return;h=e.dot(A,c)*I}return h},E.rayTriangle=function(t,r,i,a,o,u){var s=E.rayTriangleParametric(t,r,i,a,o);if(n(s)&&!(s<0))return n(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;E.lineSegmentTriangle=function(t,r,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(r,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!n(l)||l<0||l>e.distance(t,r)))return n(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var S={root0:0,root1:0};E.raySphere=function(e,t,r){if(r=h(e,t,r),n(r)&&!(r.stop<0))return r.start=Math.max(r.start,0),r};var v=new l;E.lineSegmentSphere=function(t,r,i,a){var o=v;e.clone(t,o.origin);var u=e.subtract(r,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!n(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var I=new e,N=new e;E.rayEllipsoid=function(t,r){var n,i,o,u,s,c=r.oneOverRadii,l=e.multiplyComponents(c,t.origin,I),f=e.multiplyComponents(c,t.direction,N),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var m=d*d;if(n=h-1,i=e.magnitudeSquared(f),o=i*n,m<o)return;if(m>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,p=n/s;return E<p?new a(E,p):{start:p,stop:E}}var y=Math.sqrt(n/i);return new a(y,y)}return h<1?(n=h-1,i=e.magnitudeSquared(f),o=i*n,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var g=new e,M=new e,O=new e,w=new e,C=new e,x=new u,P=new u,U=new u,D=new u,F=new u,L=new u,b=new u,B=new e,z=new e,q=new t;E.grazingAltitudeLocation=function(t,r){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=r.geodeticSurfaceNormal(i,g);if(e.dot(a,s)>=0)return i}var c=n(this.rayEllipsoid(t,r)),l=r.transformPositionToScaledSpace(a,g),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,w),d=e.normalize(e.cross(h,f,M),M),E=e.normalize(e.cross(f,d,O),O),p=x;p[0]=f.x,p[1]=f.y,p[2]=f.z,p[3]=d.x,p[4]=d.y,p[5]=d.z,p[6]=E.x,p[7]=E.y,p[8]=E.z;var y=u.transpose(p,P),_=u.fromScale(r.radii,U),T=u.fromScale(r.oneOverRadii,D),R=F;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var A,S,v=u.multiply(u.multiply(y,T,L),R,L),I=u.multiply(u.multiply(v,_,b),p,b),N=u.multiplyByVector(v,i,C),G=m(I,e.negate(N,g),0,0,1),V=G.length;if(V>0){for(var W=e.clone(e.ZERO,z),X=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(_,u.multiplyByVector(p,G[H],B),B);var Y=e.normalize(e.subtract(A,i,w),w),k=e.dot(Y,a);k>X&&(X=k,W=e.clone(A,W))}var j=r.cartesianToCartographic(W,q);return X=o.clamp(X,0,1),S=e.magnitude(e.subtract(W,i,w))*Math.sqrt(1-X*X),S=c?-S:S,j.height=S,r.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,r,i,a){n(a)||(a=new e);var u=e.subtract(r,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,r,n,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,r)+o<0,c=e.dot(a,n)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,r,n,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,r,n,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,r,n,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,r,n,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,r,n,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,r,n,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,r,n,i,a,o){"use strict";function u(t,r){this.normal=e.clone(t),this.distance=r -}u.fromPointNormal=function(t,n,i){var a=-e.dot(n,t);return r(i)?(e.clone(n,i.normal),i.distance=a,i):new u(n,a)};var s=new e;u.fromCartesian4=function(t,n){var i=e.fromCartesian4(t,s),a=t.w;return r(n)?(e.clone(i,n.normal),n.distance=a,n):new u(i,a)},u.getPointDistance=function(t,r){return e.dot(t.normal,r)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,n,i){r(i)||(i=new e);var a=u.getPointDistance(t,n),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(n,o,i)};var l=new e;return u.transform=function(t,r,n){return o.multiplyByPointAsVector(r,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(r,l,l),u.fromPointNormal(l,s,n)},u.clone=function(t,n){return r(n)?(e.clone(t.normal,n.normal),n.distance=t.distance,n):new u(t.normal,t.distance)},u.equals=function(t,r){return t.distance===r.distance&&e.equals(t.normal,r.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,r,n,i){return t(e).then(r,n,i)}function t(e){var t,r;return e instanceof n?t=e:u(e)?(r=o(),e.then(function(e){r.resolve(e)},function(e){r.reject(e)},function(e){r.progress(e)}),t=r.promise):t=i(e),t}function r(t){return e(t,a)}function n(e){this.then=e}function i(e){return new n(function(r){try{return t(r?r(e):e)}catch(e){return a(e)}})}function a(e){return new n(function(r,n){try{return n?t(n(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,r){return h(e,t,r)}function r(e){return m(e)}function i(e){return m(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,m;return c=new n(e),s={then:e,resolve:r,reject:i,progress:u,promise:c,resolver:{resolve:r,reject:i,progress:u}},l=[],f=[],h=function(e,t,r){var n,i;return n=o(),i="function"==typeof r?function(e){try{n.progress(r(e))}catch(e){n.progress(e)}}:function(e){n.progress(e)},l.push(function(r){r.then(e,t).then(n.resolve,n.reject,i)}),f.push(i),n.promise},d=function(e){return E(f,e),e},m=function(e){return e=t(e),h=e.then,m=t,d=y,E(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,r,n,i,a){return p(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){m(e)}var c,l,f,h,d,m,E,p,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(r,_)),f=[],l=_-c+1,h=[],d=o(),c)for(p=d.progress,E=function(e){h.push(e),--l||(m=E=y,d.reject(h))},m=function(e){f.push(e),--c||(m=E=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,p);else d.resolve(f);return d.then(n,i,a)})}function c(e,t,r,n){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,r,n)}function l(e,t,r,n){return p(1,arguments),h(e,_).then(t,r,n)}function f(){return h(arguments,_)}function h(t,r){return e(t,function(t){var n,i,a,u,s,c;if(a=i=t.length>>>0,n=[],c=o(),a)for(u=function(t,i){e(t,r).then(function(e){n[i]=e,--a||c.resolve(n)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(n);return c.promise})}function d(t,r){var n=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,n[0]=function(t,n,a){return e(t,function(t){return e(n,function(e){return r(t,e,a,i)})})},T.apply(t,n)})}function m(t,r,n){var i=arguments.length>2;return e(t,function(e){return e=i?n:e,r.resolve(e),e},function(e){return r.reject(e),a(e)},r.progress)}function E(e,t){for(var r,n=0;r=e[n++];)r(t)}function p(e,t){for(var r,n=t.length;n>e;)if(null!=(r=t[--n])&&"function"!=typeof r)throw new Error("arg "+n+" must be a function")}function y(){}function _(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=r,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=m,e.isPromise=u,n.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,r,n,i,a;if(a=0,t=Object(this),i=t.length>>>0,r=arguments,r.length<=1)for(;;){if(a in t){n=t[a++];break}if(++a>=i)throw new TypeError}else n=r[1];for(;a<i;++a)a in t&&(n=e(n,t[a],a,t));return n},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,r){for(var n,i,a=0,o=e.length-1;a<=o;)if(n=~~((a+o)/2),(i=r(e[n],t))<0)a=n+1;else{if(!(i>0))return n;o=n-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,r,n,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=r,this.yPoleOffset=n,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,r=0,n=t[r++],i=function(e,t,r,n){r||(r=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(r);return n?e+i:i+e},a=function(e,t,r,n,a,o){var u=n-e.length;return u>0&&(e=r||!a?i(e,n,o,r):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,r,n,o,u,s){var c=e>>>0;return r=r&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=r+i(c.toString(t),u||0,"0",!1),a(e,r,n,o,s)},u=function(e,t,r,n,i,o){return null!=n&&(e=e.slice(0,n)),a(e,"",t,r,i,o)},s=function(e,n,s,c,l,f,h){var d,m,E,p,y;if("%%"==e)return"%";for(var _=!1,T="",R=!1,A=!1,S=" ",v=s.length,I=0;s&&I<v;I++)switch(s.charAt(I)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":S=s.charAt(I+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[r++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[r++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=n?t[n.slice(0,-1)]:t[r++],h){case"s":return u(String(y),_,c,f,R,S);case"c":return u(String.fromCharCode(+y),_,c,f,R);case"b":return o(y,2,A,_,c,f,R);case"o":return o(y,8,A,_,c,f,R);case"x":return o(y,16,A,_,c,f,R);case"X":return o(y,16,A,_,c,f,R).toUpperCase();case"u":return o(y,10,A,_,c,f,R);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),m=d<0?"-":T,y=m+i(String(Math.abs(d)),f,"0",!1),a(y,m,_,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,m=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],p=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=m+Math.abs(d)[E](f),a(y,m,_,c,R)[p]();default:return e}};return n.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,r,n,i,a,o,u){this.year=e,this.month=t,this.day=r,this.hour=n,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var r=E.leapSeconds,n=t(r,_,l);n<0&&(n=~n),n>=r.length&&(n=r.length-1);var i=r[n].offset;if(n>0){E.secondsDifference(r[n].julianDate,e)>i&&(n--,i=r[n].offset)}E.addSeconds(e,i,e)}function h(e,r){_.julianDate=e;var n=E.leapSeconds,i=t(n,_,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-n[0].offset,r);if(i>=n.length)return E.addSeconds(e,-n[i-1].offset,r);var a=E.secondsDifference(n[i].julianDate,e);return 0===a?E.addSeconds(e,-n[i].offset,r):a<=1?void 0:E.addSeconds(e,-n[--i].offset,r)}function d(e,t,r){var n=t/s.SECONDS_PER_DAY|0;return e+=n,t-=s.SECONDS_PER_DAY*n,t<0&&(e--,t+=s.SECONDS_PER_DAY),r.dayNumber=e,r.secondsOfDay=t,r}function m(e,t,r,n,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+r-32075;(n-=12)<0&&(n+=24);var f=a+(n*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=r(e,0),t=r(t,0),n=r(n,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),n===c.UTC&&f(this)}var p=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,v=/^(\d{4})-?(\d{2})-?(\d{2})$/,I=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+I.source,g=/^(\d{2}):?(\d{2})(\.\d+)?/.source+I.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+I.source;E.fromGregorianDate=function(e,t){var r=m(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromDate=function(e,t){var r=m(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return n(t)?(d(r[0],r[1],t),f(t),t):new E(r[0],r[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var r,i,a,u=e.split("T"),s=1,l=1,h=0,p=0,_=0,I=0,O=u[0],w=u[1];if(null!==(u=O.match(v)))r=+u[1],s=+u[2],l=+u[3];else if(null!==(u=O.match(R)))r=+u[1],s=+u[2];else if(null!==(u=O.match(T)))r=+u[1];else{var C;if(null!==(u=O.match(A)))r=+u[1],C=+u[2],a=o(r);else if(null!==(u=O.match(S))){r=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(r,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(r,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(r);var D;if(n(w)){u=w.match(M),null!==u?(h=+u[1],p=+u[2],_=+u[3],I=1e3*+(u[4]||0),D=5):(u=w.match(g),null!==u?(h=+u[1],p=+u[2],_=60*+(u[3]||0),D=4):null!==(u=w.match(N))&&(h=+u[1],p=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],b=+(u[D+2]||0);switch(F){case"+":h-=L,p-=b;break;case"-":h+=L,p+=b;break;case"Z":break;default:p+=new Date(Date.UTC(r,s-1,l,h,p)).getTimezoneOffset()}}var B=60===_;for(B&&_--;p>=60;)p-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,r++),i=a&&2===s?29:y[s-1];for(;p<0;)p+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,r--),i=a&&2===s?29:y[s-1],l+=i;var z=m(r,s,l,h,p,_,I);return n(t)?(d(z[0],z[1],t),f(t)):t=new E(z[0],z[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var O=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var r=!1,i=h(e,O);n(i)||(E.addSeconds(e,-1,O),i=h(O,O),r=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,m=c-(2447*d/80|0)|0;c=d/11|0;var p=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),r&&(A+=1),n(t)?(t.year=y,t.month=p,t.day=m,t.hour=_,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=r,t):new a(y,p,m,_,R,A,S,r)},E.toDate=function(e){var t=E.toGregorianDate(e,p),r=t.second;return t.isLeapSecond&&(r-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,r,t.millisecond))},E.toIso8601=function(t,r){var i=E.toGregorianDate(t,p),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return n(r)||0===f?n(r)&&0!==r?(h=(.01*f).toFixed(r).replace(".","").slice(0,r),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(n(e))return n(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var r=e.dayNumber-t.dayNumber;return 0!==r?r:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||n(e)&&n(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(E.secondsDifference(e,t))<=r},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){_.julianDate=e;var r=E.leapSeconds,n=t(r,_,l);return n<0&&(n=~n,--n<0&&(n=0)),r[n].offset},E.addSeconds=function(e,t,r){return d(e.dayNumber,e.secondsOfDay+t,r)},E.addMinutes=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,n,r)},E.addHours=function(e,t,r){var n=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,n,r)},E.addDays=function(e,t,r){return d(e.dayNumber+t,e.secondsOfDay,r)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var r=n.exec(t);this.scheme=r[1],this.authority=r[2],this.path=r[3],this.query=r[4],this.fragment=r[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function r(e,t,r,n){return(t||"")+r.toLowerCase()+(n||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var n=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,r).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var r=new e;return this.scheme?(r.scheme=this.scheme,r.authority=this.authority,r.path=this.path,r.query=this.query):(r.scheme=t.scheme,this.authority?(r.authority=this.authority,r.path=this.path,r.query=this.query):(r.authority=t.authority,""==this.path?(r.path=t.path,r.query=this.query||t.query):("/"==this.path.charAt(0)?(r.path=this.path,r.removeDotSegments()):(t.authority&&""==t.path?r.path="/"+this.path:r.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,r.removeDotSegments()),r.query=this.query))),r.fragment=this.fragment,r},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),r=[],n=""==t[0];n&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?r.pop():"."!=e&&r.push(e);"."!=e&&".."!=e||r.push(""),n&&r.unshift(""),this.path=r.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(r,n){if(null===r||"object"!=typeof r)return r;n=e(n,!1);var i=new r.constructor;for(var a in r)if(r.hasOwnProperty(a)){var o=r[a];n&&(o=t(o,n)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function r(n,i,a){a=e(a,!1);var o,u,s,c={},l=t(n),f=t(i);if(l)for(o in n)n.hasOwnProperty(o)&&(u=n[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?r(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return r}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,r,n){"use strict";function i(e,t){var r;return"undefined"!=typeof document&&(r=document),i._implementation(e,t,r)}return i._implementation=function(n,i,a){if(!r(i)){if(void 0===a)return n;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(n).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r,n){var i="",a=r.lastIndexOf("/");return-1!==a&&(i=r.substring(0,a+1)),n?(r=new e(r),t(r.query)&&(i+="?"+r.query),t(r.fragment)&&(i+="#"+r.fragment),i):i}return n}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(t){var r=new e(t);r.normalize();var n=r.path,i=n.lastIndexOf("/");return-1!==i&&(n=n.substr(i+1)),i=n.lastIndexOf("."),n=-1===i?"":n.substr(i+1)}return n}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(r)||(r=document.createElement("a")),r.href=window.location.href;var n=r.host,i=r.protocol;return r.href=t,r.href=r.href,i!==r.protocol||n!==r.host}var r;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return r.test(e)}var r=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var r=e.defer(),n=document.createElement("script");n.async=!0,n.src=t;var i=document.getElementsByTagName("head")[0];return n.onload=function(){n.onload=void 0,i.removeChild(n),r.resolve()},n.onerror=function(e){r.reject(e)},i.appendChild(n),r.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(e){var t="";for(var n in e)if(e.hasOwnProperty(n)){var i=e[n],a=encodeURIComponent(n)+"=";if(r(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return n}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,r){"use strict";function n(t){var n={};if(""===t)return n;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=n[s];"string"==typeof l?n[s]=[l,c]:r(l)?l.push(c):n[s]=c}return n}return n}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,r,n){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,n.OTHER),this.serverKey=void 0,this.state=r.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var r=e.split("\r\n"),n=0;n<r.length;++n){var i=r[n],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function r(e,r,n){this.statusCode=e,this.response=r,this.responseHeaders=n,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return r.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},r}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,r){"use strict";function n(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return r(n.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),n.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var r=this;return function(){r.removeEventListener(e,t)}},n.prototype.removeEventListener=function(e,t){for(var r=this._listeners,n=this._scopes,i=-1,a=0;a<r.length;a++)if(r[a]===e&&n[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),r[i]=void 0,n[i]=void 0):(r.splice(i,1),n.splice(i,1)),!0)},n.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,r=this._listeners,n=this._scopes,a=r.length;for(e=0;e<a;e++){var o=r[e];t(o)&&r[e].apply(n[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];r.splice(s,1),n.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},n}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,r,n){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,r){var n=e[t];e[t]=e[r],e[r]=n}return n(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var r=this._length,n=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<r&&n(i[c],i[e])<0?c:e,s<r&&n(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(n(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return r(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var r=this._array,n=r[e];return a(r,e,--this._length),this.heapify(e),n}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,r,n,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function m(e){var t=n(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function p(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=E(e);return e.state=l.ACTIVE,I.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(p(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,v=new u({comparator:f});v.maximumLength=S,v.reserve(S);var I=[],N={},g="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;v.length>e;){var t=v.pop();T(t)}S=e,v.maximumLength=e,v.reserve(e)}}}),h.update=function(){var e,t,r=0,n=I.length;for(e=0;e<n;++e)t=I[e],t.cancelled&&T(t),t.state===l.ACTIVE?r>0&&(I[e-r]=t):++r;I.length-=r;var i=v.internalArray,a=v.length;for(e=0;e<a;++e)d(i[e]);v.resort();for(var o=Math.max(h.maximumRequests-I.length,0),u=0;u<o&&v.length>0;)t=v.pop(),t.cancelled?T(t):!t.throttleByServer||m(t.serverKey)?(_(t),++u):T(t);R()},h.getServerKey=function(t){var r=new e(t).resolve(g);r.normalize();var n=r.authority;/:/.test(n)||(n=n+":"+("https"===r.scheme?"443":"80"));var a=N[n];return i(a)||(N[n]=0),n},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||m(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(I.length>=h.maximumRequests)){d(e);var t=v.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;v.length>0;){T(v.pop())}for(var e=I.length,t=0;t<e;++t)T(I[t]);I.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=v,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,r){"use strict";function n(r){var n=new e(r);n.normalize();var i=n.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=n.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])||(a[n]=!0)},i.remove=function(e,r){var n=e.toLowerCase()+":"+r;t(a[n])&&delete a[n]},i.contains=function(e){var r=n(e);return!(!t(r)||!t(a[r]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,m,E,p,y,_,T,R,A,S,v,I,N){"use strict";function g(e,t,r,n){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=r?C(a,t._queryParameters,n):a,e.query=void 0}function M(e,t){var r=t._queryParameters,n=Object.keys(r);1!==n.length||u(r[n[0]])?e.query=_(r):e.query=n[0]}function O(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===v.ISSUED||e.state===v.ACTIVE)throw new I("The Resource is already being fetched.");e.state=v.UNISSUED,e.deferred=void 0}function C(e,t,r){if(!r)return a(e,t);var n=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=n[o],c=t[o];u(s)?(Array.isArray(s)||(s=n[o]=[s]),n[o]=s.concat(c)):n[o]=Array.isArray(c)?c.slice():c}return n}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=O(t.templateValues,{}),this._queryParameters=O(t.queryParameters,{}),this.headers=O(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var r=new e(t.url);g(r,this,!0,!0),r.fragment=void 0,this._url=r.toString()}function P(e){var r=e.resource,n=e.flipY,i=e.preferImageBitmap,a=r.request;a.url=r.url,a.requestFunction=function(){var e=r.url,a=!1;r.isDataUri||r.isBlobUri||(a=r.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,n,i),o.promise};var o=S.request(a) -;if(u(o))return o.otherwise(function(e){return a.state!==v.FAILED?t.reject(e):r.retryOnError(e).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,P({resource:r,flipY:n,preferImageBitmap:i})):t.reject(e)})})}function U(e,r,n){var i={};i[r]=n,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var r=t.defer();return window[n]=function(e){r.resolve(e);try{delete window[n]}catch(e){window[n]=void 0}},x._Implementations.loadAndExecuteScript(e.url,n,r),r.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==v.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,U(e,r,n)):t.reject(i)})})}function D(e,t){var r=decodeURIComponent(t);return e?atob(r):r}function F(e,t){for(var r=D(e,t),n=new ArrayBuffer(r.length),i=new Uint8Array(n),a=0;a<r.length;a++)i[a]=r.charCodeAt(a);return n}function L(e,t){t=o(t,"");var r=e[1],n=!!e[2],i=e[3];switch(t){case"":case"text":return D(n,i);case"arraybuffer":return F(n,i);case"blob":var a=F(n,i);return new Blob([a],{type:r});case"document":return(new DOMParser).parseFromString(D(n,i),r);case"json":return JSON.parse(D(n,i))}}function b(e,t,r){var n=new Image;n.onload=function(){r.resolve(n)},n.onerror=function(e){r.reject(e)},t&&(N.contains(e)?n.crossOrigin="use-credentials":n.crossOrigin=""),n.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,r,n,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:r,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var r=[];e.on("data",function(e){r.push(e)}),e.on("end",function(){var n=Buffer.concat(r);"gzip"===e.headers["content-encoding"]?l.gunzip(n,function(e,r){e?a.reject(new I("Error decompressing response.")):a.resolve(B(r,t))}):a.resolve(B(n,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var r=new e(t);g(r,this,!1),r.fragment=void 0,this._url=r.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return p(this._url)}},isBlobUri:{get:function(){return m(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,r){if(this.isDataUri)return this._url;var n=new e(this._url);t&&M(n,this);var i=n.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var r=a[t];return u(r)?encodeURIComponent(r):e}),r&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var r=this.clone();if(r._retryCount=0,u(t.url)){var n=new e(t.url);g(n,r,!0,o(t.preserveQueryParameters,!1)),n.fragment=void 0,r._url=n.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(r._queryParameters=a(t.queryParameters,r._queryParameters)),u(t.templateValues)&&(r._templateValues=a(t.templateValues,r.templateValues)),u(t.headers)&&(r.headers=a(t.headers,r.headers)),u(t.proxy)&&(r.proxy=t.proxy),u(t.request)&&(r.request=t.request),u(t.retryCallback)&&(r.retryCallback=t.retryCallback),u(t.retryAttempts)&&(r.retryAttempts=t.retryAttempts),r},x.prototype.retryOnError=function(e){var r=this.retryCallback;if("function"!=typeof r||this._retryCount>=this.retryAttempts)return t(!1);var n=this;return t(r(this,e)).then(function(e){return++n._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=r(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var r=o(e.preferImageBitmap,!1),n=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return P({resource:this,flipY:i,preferImageBitmap:r});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&r,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var r=this;w(r.request);var n=r.request;n.url=r.url,n.requestFunction=function(){var i=e.responseType,o=a(e.headers,r.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(r.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(n.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(n);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return n.state!==v.FAILED?t.reject(i):r.retryOnError(i).then(function(a){return a?(n.state=v.UNISSUED,n.deferred=void 0,r.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=O(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=O(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=O(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=O(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return n.defined("data",e),t=O(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return n.defined("data",e),t=O(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return n.defined("data",e),t=O(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,r,n,i){x.supportsImageBitmapOptions().then(function(n){return n&&i?x.fetchBlob({url:e}):void b(e,t,r)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:n,premultiplyAlpha:!1})}).then(function(e){u(e)&&r.resolve(e)}).otherwise(r.reject)},x.createImageBitmapFromBlob=function(e,t){return n.defined("options",t),n.typeOf.bool("options.flipY",t.flipY),n.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var W="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,r,n,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(W)return void z(e,t,r,n,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(r,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,n=c.responseType;if("HEAD"===r||"OPTIONS"===r){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),r=t.shift();s[r]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&n!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===n||"document"===n)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==n&&"text"!==n||!u(c.responseText)?a.reject(new I("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(n),c},x._Implementations.loadAndExecuteScript=function(e,t,r){return y(e,t).otherwise(r.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,r,n,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=r(t,r.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=r(t.addNewLeapSeconds,!0),n(t.data))m(this,t.data);else if(n(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){m(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else m(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function m(e,r){if(!n(r.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!n(r.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=r.columnNames.indexOf("modifiedJulianDateUtc"),a=r.columnNames.indexOf("xPoleWanderRadians"),s=r.columnNames.indexOf("yPoleWanderRadians"),c=r.columnNames.indexOf("ut1MinusUtcSeconds"),h=r.columnNames.indexOf("xCelestialPoleOffsetRadians"),m=r.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=r.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||m<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var p=e._samples=r.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=m,e._taiMinusUtcSecondsColumn=E,e._columnCount=r.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,R=0,A=p.length;R<A;R+=e._columnCount){var S=p[R+i],v=p[R+E],I=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(I,v,f.TAI);if(y.push(N),T){if(v!==_&&n(_)){var g=o.leapSeconds,M=t(g,N,d);if(M<0){var O=new u(N,v);g.splice(~M,0,O)}}_=v}}}function E(e,t,r,n,i){var a=r*n;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function p(e,t,r){return t+e*(r-t)}function y(e,t,r,n,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||n.equals(c))return E(e,r,i,s,u),u;if(n.equals(l))return E(e,r,a,s,u),u;var f=o.secondsDifference(n,c)/o.secondsDifference(l,c),h=i*s,d=a*s,m=r[h+e._ut1MinusUtcSecondsColumn],y=r[d+e._ut1MinusUtcSecondsColumn],_=y-m;if(_>.5||_<-.5){var T=r[h+e._taiMinusUtcSecondsColumn],R=r[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(n)?m=y:y-=R-T)}return u.xPoleWander=p(f,r[h+e._xPoleWanderRadiansColumn],r[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=p(f,r[h+e._yPoleWanderRadiansColumn],r[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=p(f,r[h+e._xCelestialPoleOffsetRadiansColumn],r[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=p(f,r[h+e._yCelestialPoleOffsetRadiansColumn],r[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=p(f,m,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return n(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,r){if(n(this._samples)){if(n(r)||(r=new i(0,0,0,0,0)),0===this._samples.length)return r.xPoleWander=0,r.yPoleWander=0,r.xPoleOffset=0,r.yPoleOffset=0,r.ut1MinusUtc=0,r;var a=this._dates,u=this._lastIndex,s=0,l=0;if(n(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),m=!n(h),E=m||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!m&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,r),r}var p=t(a,e,o.compare,this._dateColumn);return p>=0?(p<a.length-1&&a[p+1].equals(e)&&++p,s=p,l=p):(l=~p,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,r),r}if(n(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,r,n){"use strict";function i(t,r,n){this.heading=e(t,0),this.pitch=e(r,0),this.roll=e(n,0)}return i.fromQuaternion=function(e,r){t(r)||(r=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return r.heading=-Math.atan2(c,s),r.roll=Math.atan2(u,o),r.pitch=-n.asinClamped(a),r},i.fromDegrees=function(e,r,a,o){return t(o)||(o=new i),o.heading=e*n.RADIANS_PER_DEGREE,o.pitch=r*n.RADIANS_PER_DEGREE,o.roll=a*n.RADIANS_PER_DEGREE,o},i.clone=function(e,r){if(t(e))return t(r)?(r.heading=e.heading,r.pitch=e.pitch,r.roll=e.roll,r):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,r){return e===r||t(e)&&t(r)&&e.heading===r.heading&&e.pitch===r.pitch&&e.roll===r.roll},i.equalsEpsilon=function(e,r,i,a){return e===r||t(e)&&t(r)&&n.equalsEpsilon(e.heading,r.heading,i,a)&&n.equalsEpsilon(e.pitch,r.pitch,i,a)&&n.equalsEpsilon(e.roll,r.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,r){return i.equalsEpsilon(this,e,t,r)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,r,n,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,r=e.length;t<r;++t){var n=e[t].getAttribute("src"),i=m.exec(n);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?r("..",l("Core/buildModuleUrl.js")):a(),h=new n({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,m=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=m,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=n.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,r){this.x=e,this.y=t,this.s=r}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){e=r(e,r.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=r(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=r(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=r(e.stepSizeDays,1),this._samplesPerXysFile=r(e.samplesPerXysFile,1e3),this._totalSamples=r(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){n[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(n[c]*=c-l);n[c]=1/n[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,r){var n=f;return n.dayNumber=t,n.secondsOfDay=r,a.daysDifference(n,e._sampleZeroDateTT)}function l(r,i){if(r._chunkDownloadsInProgress[i])return r._chunkDownloadsInProgress[i];var a=e.defer();r._chunkDownloadsInProgress[i]=a;var u,s=r._xysFileUrlTemplate;return u=n(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){r._chunkDownloadsInProgress[i]=!1;for(var t=r._samples,n=e.samples,o=i*r._samplesPerXysFile*3,u=0,s=n.length;u<s;++u)t[o+u]=n[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,r,n,i){var a=c(this,t,r),o=c(this,n,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],m=f;m<=h;++m)d.push(l(this,m));return e.all(d)},s.prototype.computeXysRadians=function(e,t,r){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(n(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),n(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){n(r)?(r.x=0,r.y=0,r.s=0):r=new i(0,0,0);var m,E,p=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,R=this._xTable;for(m=0;m<=u;++m)y[m]=p-R[m];for(m=0;m<=u;++m){for(T[m]=1,E=0;E<=u;++E)E!==m&&(T[m]*=y[E]);T[m]*=_[m];var A=3*(s+m);r.x+=T[m]*d[A++],r.y+=T[m]*d[A++],r.s+=T[m]*d[A]}return r}}}},s}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var r,n={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return n.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[n.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(r))return r;r=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return n.requestFullscreen="requestFullscreen",n.exitFullscreen="exitFullscreen",n.fullscreenEnabled="fullscreenEnabled",n.fullscreenElement="fullscreenElement",n.fullscreenchange="fullscreenchange",n.fullscreenerror="fullscreenerror",r=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(n.requestFullscreen=i,r=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(n.requestFullscreen=i,r=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?n.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(n.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?n.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(n.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?n.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(n.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),n.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),n.fullscreenerror=i)}return r},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[n.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[n.exitFullscreen]()},i}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,r,n,i,a){"use strict";function o(e){for(var t=e.split("."),r=0,n=t.length;r<n;++r)t[r]=parseInt(t[r],10);return t}function u(){if(!t(N)&&(N=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(N=!0,g=o(e[1]))}return N}function s(){return u()&&g}function c(){if(!t(M)&&(M=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(I.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(M=!0,O=o(e[1]))}return M}function l(){return c()&&O}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(I.userAgent);null!==e&&(w=!0,C=o(e[1]),C.isNightly=!!e[2])}return w}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===I.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===I.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(I.userAgent))&&(x=!0,P=o(e[1]))}return x}function m(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function p(){return E()&&D}function y(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(I.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function _(){return t(b)||(b=/Windows/i.test(I.appVersion)),b}function T(){return y()&&L}function R(){return t(B)||(B=!y()&&"undefined"!=typeof PointerEvent&&(!t(I.pointerEnabled)||I.pointerEnabled)),B}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var r=e.style.imageRendering;q=t(r)&&""!==r,q&&(z=r)}return q}function S(){return A()?z:void 0}function v(){return v._result}var I;I="undefined"!=typeof navigator?navigator:{};var N,g,M,O,w,C,x,P,U,D,F,L,b,B,z,q;v._promise=void 0,v._result=void 0,v.initialize=function(){if(t(v._promise))return v._promise;var e=a.defer();if(v._promise=e.promise,E())return v._result=!1,e.resolve(v._result),e.promise;var r=new Image;return r.onload=function(){v._result=r.width>0&&r.height>0,e.resolve(v._result)},r.onerror=function(){v._result=!1,e.resolve(v._result)},r.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},r(v,{initialized:{get:function(){return t(v._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:m,isEdge:E,edgeVersion:p,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(I.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:v,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,r,n,i,a,o,u){"use strict";function s(e,t,n,i){this.x=r(e,0),this.y=r(t,0),this.z=r(n,0),this.w=r(i,0)}var c=new e;s.fromAxisAngle=function(t,r,i){var a=r/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return n(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var r,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],m=e[u.COLUMN2ROW2],E=h+d+m;if(E>0)r=Math.sqrt(E+1),c=.5*r,r=.5/r,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*r,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*r,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*r;else{var p=l,y=0;d>h&&(y=1),m>h&&m>d&&(y=2);var _=p[y],T=p[_];r=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var R=f;R[y]=.5*r,r=.5/r,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*r,R[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*r,R[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*r,i=-R[0],a=-R[1],o=-R[2]}return n(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,m=new s,E=new s;s.fromHeadingPitchRoll=function(t,r){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),m=s.fromAxisAngle(e.UNIT_Y,-t.pitch,r),r=s.multiply(m,E,m),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,r,r)};var p=new e,y=new e,_=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,n){return n=r(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t},s.unpack=function(e,t,i){return t=r(t,0),n(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,r,n){s.unpack(e,4*r,R),s.conjugate(R,R);for(var i=0,a=r-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,R,_),_.w<0&&s.negate(_,_),s.computeAxis(_,p);var u=s.computeAngle(_);n[o]=p.x*u,n[o+1]=p.y*u,n[o+2]=p.z*u}},s.unpackInterpolationResult=function(t,r,i,a,o){n(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(r,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var r=1/s.magnitude(e),n=e.x*r,i=e.y*r,a=e.z*r,o=e.w*r;return t.x=n,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var r=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/r,t)},s.add=function(e,t,r){return r.x=e.x+t.x,r.y=e.y+t.y,r.z=e.z+t.z,r.w=e.w+t.w,r},s.subtract=function(e,t,r){return r.x=e.x-t.x,r.y=e.y-t.y,r.z=e.z-t.z,r.w=e.w-t.w,r},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,r){var n=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+n*l+i*c-a*s,h=o*s-n*c+i*l+a*u,d=o*c+n*s-i*u+a*l,m=o*l-n*u-i*s-a*c;return r.x=f,r.y=h,r.z=d,r.w=m,r},s.multiplyByScalar=function(e,t,r){return r.x=e.x*t,r.y=e.y*t,r.z=e.z*t,r.w=e.w*t,r},s.divideByScalar=function(e,t,r){return r.x=e.x/t,r.y=e.y/t,r.z=e.z/t,r.w=e.w/t,r},s.computeAxis=function(e,t){var r=e.w;if(Math.abs(r-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var n=1/Math.sqrt(1-r*r);return t.x=e.x*n,t.y=e.y*n,t.z=e.z*n,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,r,n){return A=s.multiplyByScalar(t,r,A),n=s.multiplyByScalar(e,1-r,n),s.add(A,n,n)};var S=new s,v=new s,I=new s;s.slerp=function(e,t,r,n){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,r,n);var u=Math.acos(i);return v=s.multiplyByScalar(e,Math.sin((1-r)*u),v),I=s.multiplyByScalar(a,Math.sin(r*u),I),n=s.add(v,I,n),s.multiplyByScalar(n,1/Math.sin(u),n)},s.log=function(t,r){var n=o.acosClamped(t.w),i=0;return 0!==n&&(i=n/Math.sin(n)),e.multiplyByScalar(t,i,r)},s.exp=function(t,r){var n=e.magnitude(t),i=0;return 0!==n&&(i=Math.sin(n)/n),r.x=t.x*i,r.y=t.y*i,r.z=t.z*i,r.w=Math.cos(n),r};var N=new e,g=new e,M=new s,O=new s;s.computeInnerQuadrangle=function(t,r,n,i){var a=s.conjugate(r,M);s.multiply(a,n,O);var o=s.log(O,N);s.multiply(a,t,O);var u=s.log(O,g);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M), -s.multiply(r,M,i)},s.squad=function(e,t,r,n,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(r,n,i,O);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,b=2*L+1;x[F]=1/(L*b),P[F]=L/b}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,r,n){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-r,c=r*r,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*r*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),m=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,n),s.add(m,n,n)},s.fastSquad=function(e,t,r,n,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(r,n,i,O);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,r){return e===t||n(e)&&n(t)&&Math.abs(e.x-t.x)<=r&&Math.abs(e.y-t.y)<=r&&Math.abs(e.z-t.z)<=r&&Math.abs(e.w-t.w)<=r},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,m,E,p,y,_,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},v={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},I={},N={east:new r,north:new r,up:new r,west:new r,south:new r,down:new r},g=new r,M=new r,O=new r;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var n,i=S[e][t],a=e+t;return u(I[a])?n=I[a]:(n=function(n,a,s){if(u(s)||(s=new _),p.equalsEpsilon(n.x,0,p.EPSILON14)&&p.equalsEpsilon(n.y,0,p.EPSILON14)){var c=p.sign(n.z);r.unpack(v[e],0,g),"east"!==e&&"west"!==e&&r.multiplyByScalar(g,c,g),r.unpack(v[t],0,M),"east"!==t&&"west"!==t&&r.multiplyByScalar(M,c,M),r.unpack(v[i],0,O),"east"!==i&&"west"!==i&&r.multiplyByScalar(O,c,O)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(n,N.up);var l=N.up,h=N.east;h.x=-n.y,h.y=n.x,h.z=0,r.normalize(h,N.east),r.cross(l,h,N.north),r.multiplyByScalar(N.up,-1,N.down),r.multiplyByScalar(N.east,-1,N.west),r.multiplyByScalar(N.north,-1,N.south),g=N[e],M=N[t],O=N[i]}return s[0]=g.x,s[1]=g.y,s[2]=g.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=O.x,s[9]=O.y,s[10]=O.z,s[11]=0,s[12]=n.x,s[13]=n.y,s[14]=n.z,s[15]=1,s},I[a]=n),n},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var w=new T,C=new r(1,1,1),x=new _;A.headingPitchRollToFixedFrame=function(e,t,n,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=_.fromTranslationQuaternionRotationScale(r.ZERO,u,C,x);return a=i(e,n,a),_.multiply(a,s,a)};var P=new _,U=new y;A.headingPitchRollQuaternion=function(e,t,r,n,i){var a=A.headingPitchRollToFixedFrame(e,t,r,n,P),o=_.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new r(1,1,1),F=new r,L=new _,b=new _,B=new y,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=o(t,f.WGS84),n=o(n,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,F);if(r.equals(a,r.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(n(a,t,L),L),c=_.setScale(e,D,b);c=_.setTranslation(c,r.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,B),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=p.TWO_PI/86400,G=new E;A.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var r,n=G.dayNumber,i=G.secondsOfDay,a=n-2451545;r=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+r*(8640184.812866+r*(.093104+-62e-7*r)),s=o*q%p.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(n-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var r=t.start.dayNumber,n=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(r,n,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var r=A.computeFixedToIcrfMatrix(e,t);if(u(r))return y.transpose(r,t)};var V=new m(0,0,0),W=new l(0,0,0,0,0,0),X=new y,H=new y;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var r=A.earthOrientationParameters.compute(e,W);if(u(r)){var n=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(n,i,V);if(u(a)){var o=a.x+r.xPoleOffset,s=a.y+r.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,X),d=e.dayNumber,m=e.secondsOfDay-E.computeTaiMinusUtc(e)+r.ut1MinusUtc,_=d-2451545,T=m/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(_+T);S=S%1*p.TWO_PI;var v=y.fromRotationZ(S,H),I=y.multiply(h,v,X),N=Math.cos(r.xPoleWander),g=Math.cos(r.yPoleWander),M=Math.sin(r.xPoleWander),O=Math.sin(r.yPoleWander),w=n-2451545+i/R.SECONDS_PER_DAY;w/=36525;var C=-47e-6*w*p.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=H;return U[0]=N*x,U[1]=N*P,U[2]=M,U[3]=-g*P+O*M*x,U[4]=g*x+O*M*P,U[5]=-O*N,U[6]=-O*P-g*M*x,U[7]=O*x-g*M*P,U[8]=g*N,y.multiply(I,U,t)}}};var Y=new n;A.pointToWindowCoordinates=function(e,t,r,n){return n=A.pointToGLWindowCoordinates(e,t,r,n),n.y=2*t[5]-n.y,n},A.pointToGLWindowCoordinates=function(e,r,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,n.fromElements(i.x,i.y,i.z,1,o),o),n.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(r,o,o),t.fromCartesian4(o,a)};var k=new r,j=new r,Z=new r;A.rotationMatrixFromPositionVelocity=function(e,t,n,i){var a=o(n,f.WGS84).geodeticSurfaceNormal(e,k),s=r.cross(t,a,j);r.equalsEpsilon(s,r.ZERO,p.EPSILON6)&&(s=r.clone(r.UNIT_X,s));var c=r.cross(s,t,Z);return r.normalize(c,c),r.cross(t,c,s),r.negate(s,s),r.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new r,$=new r,ee=new y,te=new _,re=new _;return A.basisTo2D=function(e,t,n){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);r.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,re),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,n);return _.multiply(K,f,n),_.setTranslation(n,u,n),n},A.wgs84To2DModelMatrix=function(e,t,n){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,re),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);r.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,n),_.multiply(c,n,n),n},A}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,m){"use strict";function E(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var n=m.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=r.fromCartesian4(f.getColumn(n,0,p)),this._yAxis=r.fromCartesian4(f.getColumn(n,1,p));var i=r.fromCartesian4(f.getColumn(n,2,p));this._plane=h.fromPointNormal(e,i)}var p=new n;u(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var y=new e;E.fromPoints=function(t,r){return new E(e.fromPoints(t,y).center,r)};var _=new d,T=new r;E.prototype.projectPointOntoPlane=function(e,n){var i=_;i.origin=e,r.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return o(n)?(n.x=s,n.y=c,n):new t(s,c)}},E.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var r=0,n=e.length,i=0;i<n;i++){var a=this.projectPointOntoPlane(e[i],t[r]);o(a)&&(t[r]=a,r++)}return t.length=r,t},E.prototype.projectPointToNearestOnPlane=function(e,n){o(n)||(n=new t);var i=_;i.origin=e,r.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(r.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=r.subtract(a,this._origin,a),s=r.dot(this._xAxis,u),c=r.dot(this._yAxis,u);return n.x=s,n.y=c,n},E.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var r=e.length;t.length=r;for(var n=0;n<r;n++)t[n]=this.projectPointToNearestOnPlane(e[n],t[n]);return t};var R=new r;return E.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new r);var n=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return r.multiplyByScalar(a,e.x,s),t=r.add(i,s,t),r.multiplyByScalar(u,e.y,s),r.add(t,s,t),n.scaleToGeocentricSurface(t,t),t},E.prototype.projectPointsOntoEllipsoid=function(e,t){var r=e.length;o(t)?t.length=r:t=new Array(r);for(var n=0;n<r;++n)t[n]=this.projectPointOntoEllipsoid(e[n],t[n]);return t},E}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,m,E){"use strict";function p(e,t){this.center=r.clone(a(e,r.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function y(e,t,n,i,a,u,s,c){o(c)||(c=new p);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=g;f.x=(t+n)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=M;h.x=(n-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var m=c.center;return f=d.multiplyByVector(l,f,f),r.add(e.origin,f,m),d.multiplyByScale(l,h,l),c}p.packedLength=r.packedLength+d.packedLength,p.pack=function(e,t,n){return n=a(n,0),r.pack(e.center,t,n),d.pack(e.halfAxes,t,n+r.packedLength),t},p.unpack=function(e,t,n){return t=a(t,0),o(n)||(n=new p),r.unpack(e,t,n.center),d.unpack(e,t+r.packedLength,n.halfAxes),n};var _=new r,T=new r,R=new r,A=new r,S=new r,v=new r,I=new d,N={unitary:new d,diagonal:new d};p.fromPoints=function(e,t){if(o(t)||(t=new p),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=r.ZERO,t;var n,i=e.length,a=r.clone(e[0],_);for(n=1;n<i;n++)r.add(a,e[n],a);var u=1/i;r.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,m=0,E=0;for(n=0;n<i;n++)s=r.subtract(e[n],a,T),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,m+=s.y*s.z,E+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,m*=u,E*=u;var y=I;y[0]=c,y[1]=l,y[2]=f,y[3]=l,y[4]=h,y[5]=m,y[6]=f,y[7]=m,y[8]=E;var g=d.computeEigenDecomposition(y,N),M=d.clone(g.unitary,t.halfAxes),O=d.getColumn(M,0,A),w=d.getColumn(M,1,S),C=d.getColumn(M,2,v),x=-Number.MAX_VALUE,P=-Number.MAX_VALUE,U=-Number.MAX_VALUE,D=Number.MAX_VALUE,F=Number.MAX_VALUE,L=Number.MAX_VALUE;for(n=0;n<i;n++)s=e[n],x=Math.max(r.dot(O,s),x),P=Math.max(r.dot(w,s),P),U=Math.max(r.dot(C,s),U),D=Math.min(r.dot(O,s),D),F=Math.min(r.dot(w,s),F),L=Math.min(r.dot(C,s),L);O=r.multiplyByScalar(O,.5*(D+x),O),w=r.multiplyByScalar(w,.5*(F+P),w),C=r.multiplyByScalar(C,.5*(L+U),C);var b=r.add(O,w,t.center);r.add(b,C,b);var B=R;return B.x=x-D,B.y=P-F,B.z=U-L,r.multiplyByScalar(B,.5,B),d.multiplyByScale(t.halfAxes,B,t.halfAxes),t};var g=new r,M=new r,O=new n,w=new r,C=[new n,new n,new n,new n,new n,new n,new n,new n],x=[new r,new r,new r,new r,new r,new r,new r,new r],P=[new t,new t,new t,new t,new t,new t,new t,new t];p.fromRectangle=function(e,t,r,n,i){t=a(t,0),r=a(r,0),n=a(n,s.WGS84);var o=E.center(e,O),u=n.cartographicToCartesian(o,w),l=new c(u,n),f=l.plane,h=C[0],d=C[1],p=C[2],_=C[3],T=C[4],R=C[5],A=C[6],S=C[7],v=o.longitude,I=e.south<0&&e.north>0?0:o.latitude;A.latitude=R.latitude=T.latitude=e.south,S.latitude=_.latitude=I,h.latitude=d.latitude=p.latitude=e.north,A.longitude=S.longitude=h.longitude=e.west,R.longitude=d.longitude=v,T.longitude=_.longitude=p.longitude=e.east,p.height=d.height=h.height=S.height=A.height=R.height=T.height=_.height=r,n.cartographicArrayToCartesianArray(C,x),l.projectPointsToNearestOnPlane(x,P);var N=Math.min(P[6].x,P[7].x,P[0].x),g=Math.max(P[2].x,P[3].x,P[4].x),M=Math.min(P[4].y,P[5].y,P[6].y),U=Math.max(P[0].y,P[1].y,P[2].y);return p.height=h.height=T.height=A.height=t,n.cartographicArrayToCartesianArray(C,x),y(l,N,g,M,U,Math.min(m.getPointDistance(f,x[0]),m.getPointDistance(f,x[2]),m.getPointDistance(f,x[4]),m.getPointDistance(f,x[6])),r,i)},p.clone=function(e,t){if(o(e))return o(t)?(r.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new p(e.center,e.halfAxes)},p.intersectPlane=function(e,t){var n=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=r.dot(i,n)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var U=new r,D=new r,F=new r,L=new r;p.distanceSquaredTo=function(e,t){var n=r.subtract(t,e.center,g),i=e.halfAxes,a=d.getColumn(i,0,U),o=d.getColumn(i,1,D),u=d.getColumn(i,2,F),s=r.magnitude(a),c=r.magnitude(o),l=r.magnitude(u);r.normalize(a,a),r.normalize(o,o),r.normalize(u,u);var f=L;f.x=r.dot(n,a),f.y=r.dot(n,o),f.z=r.dot(n,u);var h,m=0;return f.x<-s?(h=f.x+s,m+=h*h):f.x>s&&(h=f.x-s,m+=h*h),f.y<-c?(h=f.y+c,m+=h*h):f.y>c&&(h=f.y-c,m+=h*h),f.z<-l?(h=f.z+l,m+=h*h):f.z>l&&(h=f.z-l,m+=h*h),m};var b=new r,B=new r;p.computePlaneDistances=function(e,t,n,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,U),h=d.getColumn(c,1,D),m=d.getColumn(c,2,F),E=r.add(l,h,b);r.add(E,m,E),r.add(E,s,E);var p=r.subtract(E,t,B),y=r.dot(n,p);return a=Math.min(y,a),u=Math.max(y,u),r.add(s,l,E),r.add(E,h,E),r.subtract(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.add(s,l,E),r.subtract(E,h,E),r.add(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.add(s,l,E),r.subtract(E,h,E),r.subtract(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.subtract(s,l,E),r.add(E,h,E),r.add(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.subtract(s,l,E),r.add(E,h,E),r.subtract(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.subtract(s,l,E),r.subtract(E,h,E),r.add(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),r.subtract(s,l,E),r.subtract(E,h,E),r.subtract(E,m,E),r.subtract(E,t,p),y=r.dot(n,p),a=Math.min(y,a),u=Math.max(y,u),i.start=a,i.stop=u,i};var z=new e;return p.isOccluded=function(t,r){var n=e.fromOrientedBoundingBox(t,z);return!r.isBoundingSphereVisible(n)},p.prototype.intersectPlane=function(e){return p.intersectPlane(this,e)},p.prototype.distanceSquaredTo=function(e){return p.distanceSquaredTo(this,e)},p.prototype.computePlaneDistances=function(e,t,r){return p.computePlaneDistances(this,e,t,r)},p.prototype.isOccluded=function(e){return p.isOccluded(this,e)},p.equals=function(e,t){return e===t||o(e)&&o(t)&&r.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},p.prototype.clone=function(e){return p.clone(this,e)},p.prototype.equals=function(e){return p.equals(this,e)},p}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,r,n,i,a){"use strict";if(!n.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,r,n,i){switch(n=e(n,0),i=e(i,(r.byteLength-n)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(r,n,i);case o.UNSIGNED_BYTE:return new Uint8Array(r,n,i);case o.SHORT:return new Int16Array(r,n,i);case o.UNSIGNED_SHORT:return new Uint16Array(r,n,i);case o.INT:return new Int32Array(r,n,i);case o.UNSIGNED_INT:return new Uint32Array(r,n,i);case o.FLOAT:return new Float32Array(r,n,i);case o.DOUBLE:return new Float64Array(r,n,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/TerrainQuantization",["./freezeObject"],function(e){"use strict";return e({NONE:0,BITS12:1})}),define("Core/TerrainEncoding",["./AttributeCompression","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./Math","./Matrix4","./TerrainQuantization"],function(e,t,r,n,i,a,o,u,s){"use strict";function c(e,t,n,o,c,h){var p,y,_,T=s.NONE;if(a(e)&&a(t)&&a(n)&&a(o)){var R=e.minimum,A=e.maximum,S=r.subtract(A,R,f),v=n-t;T=Math.max(r.maximumComponent(S),v)<E-1?s.BITS12:s.NONE,p=e.center,y=u.inverseTransformation(o,new u);var I=r.negate(R,l);u.multiply(u.fromTranslation(I,d),y,y);var N=l;N.x=1/S.x,N.y=1/S.y,N.z=1/S.z,u.multiply(u.fromScale(N,d),y,y),_=u.clone(o),u.setTranslation(_,r.ZERO,_),o=u.clone(o,new u);var g=u.fromTranslation(R,d),M=u.fromScale(S,m),O=u.multiply(g,M,d);u.multiply(o,O,o),u.multiply(_,O,_)}this.quantization=T,this.minimumHeight=t,this.maximumHeight=n,this.center=p,this.toScaledENU=y,this.fromScaledENU=o,this.matrix=_,this.hasVertexNormals=c,this.hasWebMercatorT=i(h,!1)}var l=new r,f=new r,h=new t,d=new u,m=new u,E=Math.pow(2,12);c.prototype.encode=function(n,i,a,c,f,d,m){var E=c.x,p=c.y;if(this.quantization===s.BITS12){a=u.multiplyByPoint(this.toScaledENU,a,l),a.x=o.clamp(a.x,0,1),a.y=o.clamp(a.y,0,1),a.z=o.clamp(a.z,0,1);var y=this.maximumHeight-this.minimumHeight,_=o.clamp((f-this.minimumHeight)/y,0,1);t.fromElements(a.x,a.y,h);var T=e.compressTextureCoordinates(h);t.fromElements(a.z,_,h);var R=e.compressTextureCoordinates(h);t.fromElements(E,p,h);var A=e.compressTextureCoordinates(h);if(n[i++]=T,n[i++]=R,n[i++]=A,this.hasWebMercatorT){t.fromElements(m,0,h);var S=e.compressTextureCoordinates(h);n[i++]=S}}else r.subtract(a,this.center,l),n[i++]=l.x,n[i++]=l.y,n[i++]=l.z,n[i++]=f,n[i++]=E,n[i++]=p,this.hasWebMercatorT&&(n[i++]=m);return this.hasVertexNormals&&(n[i++]=e.octPackFloat(d)),i},c.prototype.decodePosition=function(t,n,i){if(a(i)||(i=new r),n*=this.getStride(),this.quantization===s.BITS12){var o=e.decompressTextureCoordinates(t[n],h);i.x=o.x,i.y=o.y;var c=e.decompressTextureCoordinates(t[n+1],h);return i.z=c.x,u.multiplyByPoint(this.fromScaledENU,i,i)}return i.x=t[n],i.y=t[n+1],i.z=t[n+2],r.add(i,this.center,i)},c.prototype.decodeTextureCoordinates=function(r,n,i){return a(i)||(i=new t),n*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(r[n+2],i):t.fromElements(r[n+4],r[n+5],i)},c.prototype.decodeHeight=function(t,r){if(r*=this.getStride(),this.quantization===s.BITS12){return e.decompressTextureCoordinates(t[r+1],h).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[r+3]},c.prototype.decodeWebMercatorT=function(t,r){return r*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(t[r+3],h).x:t[r+6]},c.prototype.getOctEncodedNormal=function(e,r,n){r=(r+1)*this.getStride()-1;var i=e[r]/256,a=Math.floor(i),o=256*(i-a);return t.fromElements(a,o,n)},c.prototype.getStride=function(){var e;switch(this.quantization){case s.BITS12:e=3;break;default:e=6}return this.hasWebMercatorT&&++e,this.hasVertexNormals&&++e,e};var p={position3DAndHeight:0,textureCoordAndEncodedNormals:1},y={compressed0:0,compressed1:1};return c.prototype.getAttributes=function(e){var t,r=n.FLOAT,i=n.getSizeInBytes(r);if(this.quantization===s.NONE){var a=2;return this.hasWebMercatorT&&++a,this.hasVertexNormals&&++a,t=(4+a)*i,[{index:p.position3DAndHeight,vertexBuffer:e,componentDatatype:r,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:t},{index:p.textureCoordAndEncodedNormals,vertexBuffer:e,componentDatatype:r,componentsPerAttribute:a,offsetInBytes:4*i,strideInBytes:t}]}var o=3,u=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++o,this.hasWebMercatorT&&this.hasVertexNormals?(++u,t=(o+u)*i,[{index:y.compressed0,vertexBuffer:e,componentDatatype:r,componentsPerAttribute:o,offsetInBytes:0,strideInBytes:t},{index:y.compressed1,vertexBuffer:e,componentDatatype:r,componentsPerAttribute:u,offsetInBytes:o*i,strideInBytes:t}]):[{index:y.compressed0,vertexBuffer:e,componentDatatype:r,componentsPerAttribute:o}]},c.prototype.getAttributeLocations=function(){return this.quantization===s.NONE?p:y},c.clone=function(e,t){return a(t)||(t=new c),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=r.clone(e.center),t.toScaledENU=u.clone(e.toScaledENU),t.fromScaledENU=u.clone(e.fromScaledENU),t.matrix=u.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t},c}),define("Core/WebMercatorProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,r,n,i,a,o,u){"use strict";function s(e){this._ellipsoid=r(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(s.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),s.mercatorAngleToGeodeticLatitude=function(e){return u.PI_OVER_TWO-2*Math.atan(Math.exp(-e))},s.geodeticLatitudeToMercatorAngle=function(e){e>s.MaximumLatitude?e=s.MaximumLatitude:e<-s.MaximumLatitude&&(e=-s.MaximumLatitude);var t=Math.sin(e);return.5*Math.log((1+t)/(1-t))},s.MaximumLatitude=s.mercatorAngleToGeodeticLatitude(Math.PI),s.prototype.project=function(t,r){var i=this._semimajorAxis,a=t.longitude*i,o=s.geodeticLatitudeToMercatorAngle(t.latitude)*i,u=t.height;return n(r)?(r.x=a,r.y=o,r.z=u,r):new e(a,o,u)},s.prototype.unproject=function(e,r){var i=this._oneOverSemimajorAxis,a=e.x*i,o=s.mercatorAngleToGeodeticLatitude(e.y*i),u=e.z;return n(r)?(r.longitude=a,r.latitude=o,r.height=u,r):new t(a,o,u)},s}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var r,n=t.name,i=t.message;r=e(n)&&e(i)?n+": "+i:t.toString();var a=t.stack;return e(a)&&(r+="\n"+a),r}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,r,n){"use strict";function i(t,r,n){try{return t(r,n)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){r(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+n(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/createVerticesFromQuantizedTerrainMesh",["../Core/AttributeCompression","../Core/AxisAlignedBoundingBox","../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/defined","../Core/Ellipsoid","../Core/IndexDatatype","../Core/Math","../Core/Matrix4","../Core/OrientedBoundingBox","../Core/TerrainEncoding","../Core/Transforms","../Core/WebMercatorProjection","./createTaskProcessorWorker"],function(e,t,r,n,i,a,o,u,s,c,l,f,h,d,m,E){"use strict";function p(a,E){var p,w,C=a.quantizedVertices,x=C.length/3,P=a.octEncodedNormals,U=a.westIndices.length+a.eastIndices.length+a.southIndices.length+a.northIndices.length,D=a.includeWebMercatorT,F=a.rectangle,L=F.west,b=F.south,B=F.east,z=F.north,q=u.clone(a.ellipsoid),G=a.exaggeration,V=a.minimumHeight*G,W=a.maximumHeight*G,X=a.relativeToCenter,H=d.eastNorthUpToFixedFrame(X,q),Y=l.inverseTransformation(H,new l);D&&(p=m.geodeticLatitudeToMercatorAngle(b),w=1/(m.geodeticLatitudeToMercatorAngle(z)-p));var k=C.subarray(0,x),j=C.subarray(x,2*x),Z=C.subarray(2*x,3*x),K=o(P),J=new Array(x),Q=new Array(x),$=new Array(x),ee=D?new Array(x):[],te=S;te.x=Number.POSITIVE_INFINITY,te.y=Number.POSITIVE_INFINITY,te.z=Number.POSITIVE_INFINITY;var re=v;re.x=Number.NEGATIVE_INFINITY,re.y=Number.NEGATIVE_INFINITY,re.z=Number.NEGATIVE_INFINITY;for(var ne=Number.POSITIVE_INFINITY,ie=Number.NEGATIVE_INFINITY,ae=Number.POSITIVE_INFINITY,oe=Number.NEGATIVE_INFINITY,ue=0;ue<x;++ue){var se=k[ue],ce=j[ue],le=se/R,fe=ce/R,he=c.lerp(V,W,Z[ue]/R);I.longitude=c.lerp(L,B,le),I.latitude=c.lerp(b,z,fe),I.height=he,ne=Math.min(I.longitude,ne),ie=Math.max(I.longitude,ie),ae=Math.min(I.latitude,ae),oe=Math.max(I.latitude,oe);var de=q.cartographicToCartesian(I);J[ue]=new n(le,fe),Q[ue]=he,$[ue]=de,D&&(ee[ue]=(m.geodeticLatitudeToMercatorAngle(I.latitude)-p)*w),l.multiplyByPoint(Y,de,A),i.minimumByComponent(A,te,te),i.maximumByComponent(A,re,re)}var me,Ee,pe=T(a.westIndices,function(e,t){return J[e].y-J[t].y}),ye=T(a.eastIndices,function(e,t){return J[t].y-J[e].y}),_e=T(a.southIndices,function(e,t){return J[t].x-J[e].x}),Te=T(a.northIndices,function(e,t){return J[e].x-J[t].x});1!==G&&(Ee=r.fromPoints($),me=f.fromRectangle(F,V,W,q));var Re=V;Re=Math.min(Re,y(a.westIndices,a.westSkirtHeight,Q,J,F,q,Y,te,re)),Re=Math.min(Re,y(a.southIndices,a.southSkirtHeight,Q,J,F,q,Y,te,re)),Re=Math.min(Re,y(a.eastIndices,a.eastSkirtHeight,Q,J,F,q,Y,te,re)),Re=Math.min(Re,y(a.northIndices,a.northSkirtHeight,Q,J,F,q,Y,te,re));for(var Ae=new t(te,re,X),Se=new h(Ae,Re,W,H,K,D),ve=Se.getStride(),Ie=x*ve+U*ve,Ne=new Float32Array(Ie),ge=0,Me=0;Me<x;++Me){if(K){var Oe=2*Me;if(N.x=P[Oe],N.y=P[Oe+1],1!==G){var we=e.octDecode(N.x,N.y,g),Ce=d.eastNorthUpToFixedFrame($[Me],q,O),xe=l.inverseTransformation(Ce,M);l.multiplyByPointAsVector(xe,we,we),we.z*=G,i.normalize(we,we),l.multiplyByPointAsVector(Ce,we,we),i.normalize(we,we),e.octEncode(we,N)}}ge=Se.encode(Ne,ge,$[Me],J[Me],Q[Me],N,ee[Me])}var Pe=Math.max(0,2*(U-4)),Ue=a.indices.length+3*Pe,De=s.createTypedArray(x+U,Ue);De.set(a.indices,0);var Fe=1e-4*(ie-ne),Le=1e-4*(oe-ae),be=-Fe,Be=Fe,ze=Le,qe=-Le,Ge=x*ve,Ve=a.indices.length;return Ve=_(Ne,Ge,De,Ve,a.westIndices,Se,Q,J,P,q,F,a.westSkirtHeight,!0,G,p,w,be,0),Ge+=a.westIndices.length*ve,Ve=_(Ne,Ge,De,Ve,a.southIndices,Se,Q,J,P,q,F,a.southSkirtHeight,!1,G,p,w,0,qe),Ge+=a.southIndices.length*ve,Ve=_(Ne,Ge,De,Ve,a.eastIndices,Se,Q,J,P,q,F,a.eastSkirtHeight,!1,G,p,w,Be,0),Ge+=a.eastIndices.length*ve,_(Ne,Ge,De,Ve,a.northIndices,Se,Q,J,P,q,F,a.northSkirtHeight,!0,G,p,w,0,ze),E.push(Ne.buffer,De.buffer),{vertices:Ne.buffer,indices:De.buffer,westIndicesSouthToNorth:pe,southIndicesEastToWest:_e,eastIndicesNorthToSouth:ye,northIndicesWestToEast:Te,vertexStride:ve,center:X,minimumHeight:V,maximumHeight:W,boundingSphere:Ee,orientedBoundingBox:me,encoding:Se,skirtIndex:a.indices.length}}function y(e,t,r,n,a,o,u,s,f){var h=Number.POSITIVE_INFINITY,d=a.north,m=a.south,E=a.east,p=a.west;E<p&&(E+=c.TWO_PI);for(var y=e.length,_=0;_<y;++_){var T=e[_],R=r[T],S=n[T];I.longitude=c.lerp(p,E,S.x),I.latitude=c.lerp(m,d,S.y),I.height=R-t;var v=o.cartographicToCartesian(I,A);l.multiplyByPoint(u,v,v),i.minimumByComponent(v,s,s),i.maximumByComponent(v,f,f),h=Math.min(h,I.height)}return h}function _(t,r,n,a,u,s,f,h,E,p,y,_,T,R,S,v,w,C){var x,P,U;T?(x=u.length-1,P=-1,U=-1):(x=0,P=u.length,U=1);var D=-1,F=o(E),L=s.getStride(),b=r/L,B=y.north,z=y.south,q=y.east,G=y.west;q<G&&(q+=c.TWO_PI);for(var V=x;V!==P;V+=U){var W=u[V],X=f[W],H=h[W];I.longitude=c.lerp(G,q,H.x)+w,I.latitude=c.lerp(z,B,H.y)+C,I.height=X-_;var Y=p.cartographicToCartesian(I,A);if(F){var k=2*W;if(N.x=E[k],N.y=E[k+1],1!==R){var j=e.octDecode(N.x,N.y,g),Z=d.eastNorthUpToFixedFrame(A,p,O),K=l.inverseTransformation(Z,M);l.multiplyByPointAsVector(K,j,j),j.z*=R,i.normalize(j,j),l.multiplyByPointAsVector(Z,j,j),i.normalize(j,j),e.octEncode(j,N)}}var J;s.hasWebMercatorT&&(J=(m.geodeticLatitudeToMercatorAngle(I.latitude)-S)*v),r=s.encode(t,r,Y,H,I.height,N,J),-1!==D&&(n[a++]=D,n[a++]=b-1,n[a++]=W,n[a++]=b-1,n[a++]=b,n[a++]=W),D=W,++b}return a}function T(e,t){var r;return"function"==typeof e.slice&&(r=e.slice(),"function"!=typeof r.sort&&(r=void 0)),o(r)||(r=Array.prototype.slice.call(e)),r.sort(t),r}var R=32767,A=new i,S=new i,v=new i,I=new a,N=new n,g=new i,M=new l,O=new l;return E(p)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Ct,b as vt}from"./chunk-56S3WY3H.js";import{a as Mt}from"./chunk-3R25OJXK.js";import{a as z}from"./chunk-ZEP44EYN.js";import"./chunk-H3L4SJP4.js";import{a as Wt}from"./chunk-CHGCLMPO.js";import{a as X}from"./chunk-T53UE6JF.js";import"./chunk-T5AUOWE7.js";import{b as U,g as bt,i as At}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as P,b as wt,c as lt,d as pt}from"./chunk-AODSXSC5.js";import{a as f}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import{a as m}from"./chunk-OYWUGDKS.js";import{e as w}from"./chunk-DRYFJEFT.js";function T(){m.throwInstantiationError()}Object.defineProperties(T.prototype,{errorEvent:{get:m.throwInstantiationError},credit:{get:m.throwInstantiationError},tilingScheme:{get:m.throwInstantiationError},hasWaterMask:{get:m.throwInstantiationError},hasVertexNormals:{get:m.throwInstantiationError},availability:{get:m.throwInstantiationError}});var Ot=[];T.getRegularGridIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=Ot[t];w(o)||(Ot[t]=o=[]);let e=o[n];return w(e)||(t*n<f.SIXTY_FOUR_KILOBYTES?e=o[n]=new Uint16Array((t-1)*(n-1)*6):e=o[n]=new Uint32Array((t-1)*(n-1)*6),Pt(t,n,e,0)),e};var Gt=[];T.getRegularGridIndicesAndEdgeIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=Gt[t];w(o)||(Gt[t]=o=[]);let e=o[n];if(!w(e)){let r=T.getRegularGridIndices(t,n),s=Lt(t,n),i=s.westIndicesSouthToNorth,c=s.southIndicesEastToWest,h=s.eastIndicesNorthToSouth,E=s.northIndicesWestToEast;e=o[n]={indices:r,westIndicesSouthToNorth:i,southIndicesEastToWest:c,eastIndicesNorthToSouth:h,northIndicesWestToEast:E}}return e};var kt=[];T.getRegularGridAndSkirtIndicesAndEdgeIndices=function(t,n){if(t*n>=f.FOUR_GIGABYTES)throw new m("The total number of vertices (width * height) must be less than 4,294,967,296.");let o=kt[t];w(o)||(kt[t]=o=[]);let e=o[n];if(!w(e)){let r=t*n,s=(t-1)*(n-1)*6,i=t*2+n*2,c=Math.max(0,i-4)*6,h=r+i,E=s+c,g=Lt(t,n),d=g.westIndicesSouthToNorth,p=g.southIndicesEastToWest,b=g.eastIndicesNorthToSouth,L=g.northIndicesWestToEast,N=X.createTypedArray(h,E);Pt(t,n,N,0),T.addSkirtIndices(d,p,b,L,r,N,s),e=o[n]={indices:N,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:b,northIndicesWestToEast:L,indexCountWithoutSkirts:s}}return e};T.addSkirtIndices=function(t,n,o,e,r,s,i){let c=r;i=Z(t,c,s,i),c+=t.length,i=Z(n,c,s,i),c+=n.length,i=Z(o,c,s,i),c+=o.length,Z(e,c,s,i)};function Lt(t,n){let o=new Array(n),e=new Array(t),r=new Array(n),s=new Array(t),i;for(i=0;i<t;++i)s[i]=i,e[i]=t*n-1-i;for(i=0;i<n;++i)r[i]=(i+1)*t-1,o[i]=(n-i-1)*t;return{westIndicesSouthToNorth:o,southIndicesEastToWest:e,eastIndicesNorthToSouth:r,northIndicesWestToEast:s}}function Pt(t,n,o,e){let r=0;for(let s=0;s<n-1;++s){for(let i=0;i<t-1;++i){let c=r,h=c+t,E=h+1,g=c+1;o[e++]=c,o[e++]=h,o[e++]=g,o[e++]=g,o[e++]=h,o[e++]=E,++r}++r}}function Z(t,n,o,e){let r=t[0],s=t.length;for(let i=1;i<s;++i){let c=t[i];o[e++]=r,o[e++]=c,o[e++]=n,o[e++]=n,o[e++]=c,o[e++]=n+1,r=c,++n}return e}T.heightmapTerrainQuality=.25;T.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(t,n,o){return t.maximumRadius*2*Math.PI*T.heightmapTerrainQuality/(n*o)};T.prototype.requestTileGeometry=m.throwInstantiationError;T.prototype.getLevelMaximumGeometricError=m.throwInstantiationError;T.prototype.getTileDataAvailable=m.throwInstantiationError;T.prototype.loadTileDataAvailability=m.throwInstantiationError;var Vt=T;var ht=32767,D=new P,Xt=new P,Zt=new P,u=new wt,Y=new lt;function Jt(t,n){let o=t.quantizedVertices,e=o.length/3,r=t.octEncodedNormals,s=t.westIndices.length+t.eastIndices.length+t.southIndices.length+t.northIndices.length,i=t.includeWebMercatorT,c=t.exaggeration,h=t.exaggerationRelativeHeight,g=c!==1,d=At.clone(t.rectangle),p=d.west,b=d.south,L=d.east,N=d.north,I=pt.clone(t.ellipsoid),y=t.minimumHeight,v=t.maximumHeight,S=t.relativeToCenter,_=bt.eastNorthUpToFixedFrame(S,I),O=U.inverseTransformation(_,new U),G,A;i&&(G=z.geodeticLatitudeToMercatorAngle(b),A=1/(z.geodeticLatitudeToMercatorAngle(N)-G));let j=o.subarray(0,e),q=o.subarray(e,2*e),Q=o.subarray(e*2,3*e),R=w(r),l=new Array(e),M=new Array(e),et=new Array(e),It=i?new Array(e):[],gt=g?new Array(e):[],W=Xt;W.x=Number.POSITIVE_INFINITY,W.y=Number.POSITIVE_INFINITY,W.z=Number.POSITIVE_INFINITY;let C=Zt;C.x=Number.NEGATIVE_INFINITY,C.y=Number.NEGATIVE_INFINITY,C.z=Number.NEGATIVE_INFINITY;let ot=Number.POSITIVE_INFINITY,nt=Number.NEGATIVE_INFINITY,it=Number.POSITIVE_INFINITY,rt=Number.NEGATIVE_INFINITY;for(let a=0;a<e;++a){let x=j[a],Kt=q[a],St=x/ht,xt=Kt/ht,yt=f.lerp(y,v,Q[a]/ht);u.longitude=f.lerp(p,L,St),u.latitude=f.lerp(b,N,xt),u.height=yt,ot=Math.min(u.longitude,ot),nt=Math.max(u.longitude,nt),it=Math.min(u.latitude,it),rt=Math.max(u.latitude,rt);let dt=I.cartographicToCartesian(u);l[a]=new lt(St,xt),M[a]=yt,et[a]=dt,i&&(It[a]=(z.geodeticLatitudeToMercatorAngle(u.latitude)-G)*A),g&&(gt[a]=I.geodeticSurfaceNormal(dt)),U.multiplyByPoint(O,dt,D),P.minimumByComponent(D,W,W),P.maximumByComponent(D,C,C)}let st=tt(t.westIndices,function(a,x){return l[a].y-l[x].y}),ct=tt(t.eastIndices,function(a,x){return l[x].y-l[a].y}),at=tt(t.southIndices,function(a,x){return l[x].x-l[a].x}),ut=tt(t.northIndices,function(a,x){return l[a].x-l[x].x}),mt;y<0&&(mt=new Ct(I).computeHorizonCullingPointPossiblyUnderEllipsoid(S,et,y));let k=y;k=Math.min(k,J(t.westIndices,t.westSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.southIndices,t.southSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.eastIndices,t.eastSkirtHeight,M,l,d,I,O,W,C)),k=Math.min(k,J(t.northIndices,t.northSkirtHeight,M,l,d,I,O,W,C));let Ft=new Wt(W,C,S),V=new vt(S,Ft,k,v,_,R,i,g,c,h),F=V.stride,Bt=e*F+s*F,B=new Float32Array(Bt),ft=0;for(let a=0;a<e;++a){if(R){let x=a*2;Y.x=r[x],Y.y=r[x+1]}ft=V.encode(B,ft,et[a],l[a],M[a],Y,It[a],gt[a])}let Ht=Math.max(0,(s-4)*2),_t=t.indices.length+Ht*3,K=X.createTypedArray(e+s,_t);K.set(t.indices,0);let Tt=1e-4,Et=(nt-ot)*Tt,Nt=(rt-it)*Tt,Yt=-Et,Rt=0,Ut=Et,zt=0,Dt=0,jt=Nt,qt=0,Qt=-Nt,H=e*F;return $(B,H,st,V,M,l,r,I,d,t.westSkirtHeight,G,A,Yt,Rt),H+=t.westIndices.length*F,$(B,H,at,V,M,l,r,I,d,t.southSkirtHeight,G,A,qt,Qt),H+=t.southIndices.length*F,$(B,H,ct,V,M,l,r,I,d,t.eastSkirtHeight,G,A,Ut,zt),H+=t.eastIndices.length*F,$(B,H,ut,V,M,l,r,I,d,t.northSkirtHeight,G,A,Dt,jt),Vt.addSkirtIndices(st,at,ct,ut,e,K,t.indices.length),n.push(B.buffer,K.buffer),{vertices:B.buffer,indices:K.buffer,westIndicesSouthToNorth:st,southIndicesEastToWest:at,eastIndicesNorthToSouth:ct,northIndicesWestToEast:ut,vertexStride:F,center:S,minimumHeight:y,maximumHeight:v,occludeePointInScaledSpace:mt,encoding:V,indexCountWithoutSkirts:t.indices.length}}function J(t,n,o,e,r,s,i,c,h){let E=Number.POSITIVE_INFINITY,g=r.north,d=r.south,p=r.east,b=r.west;p<b&&(p+=f.TWO_PI);let L=t.length;for(let N=0;N<L;++N){let I=t[N],y=o[I],v=e[I];u.longitude=f.lerp(b,p,v.x),u.latitude=f.lerp(d,g,v.y),u.height=y-n;let S=s.cartographicToCartesian(u,D);U.multiplyByPoint(i,S,S),P.minimumByComponent(S,c,c),P.maximumByComponent(S,h,h),E=Math.min(E,u.height)}return E}function $(t,n,o,e,r,s,i,c,h,E,g,d,p,b){let L=w(i),N=h.north,I=h.south,y=h.east,v=h.west;y<v&&(y+=f.TWO_PI);let S=o.length;for(let _=0;_<S;++_){let O=o[_],G=r[O],A=s[O];u.longitude=f.lerp(v,y,A.x)+p,u.latitude=f.lerp(I,N,A.y)+b,u.height=G-E;let j=c.cartographicToCartesian(u,D);if(L){let R=O*2;Y.x=i[R],Y.y=i[R+1]}let q;e.hasWebMercatorT&&(q=(z.geodeticLatitudeToMercatorAngle(u.latitude)-g)*d);let Q;e.hasGeodeticSurfaceNormals&&(Q=c.geodeticSurfaceNormal(j)),n=e.encode(t,n,j,A,u.height,Y,q,Q)}}function tt(t,n){let o;return typeof t.slice=="function"&&(o=t.slice(),typeof o.sort!="function"&&(o=void 0)),w(o)||(o=Array.prototype.slice.call(t)),o.sort(n),o}var Se=Mt(Jt);export{Se as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createWallGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createWallGeometry.js index b3f5e9729..43ad74b00 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createWallGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createWallGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,_=f*f*p*p,y=h*h*m*m,T=E+_+y,R=Math.sqrt(1/T),v=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(v,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=v.x*A*2,O.y=v.y*g*2,O.z=v.z*S*2;var I,N,M,w,x,C,P,U,D,L,F,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,M=1/(1+b*A),w=1/(1+b*g),x=1/(1+b*S),C=M*M,P=w*w,U=x*x,D=C*M,L=P*w,F=U*x,I=E*C+_*P+y*U-1,N=E*D*A+_*L*g+y*F*S;B=I/(-2*N)}while(Math.abs(I)>r.EPSILON12);return t(c)?(c.x=l*M,c.y=f*w,c.z=h*x,c):new e(l*M,f*w,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,m=r(n)?n.oneOverRadiiSquared:h,E=r(n)?n._centerToleranceSquared:d,_=o(t,p,m,E,c);if(r(_)){var y=e.multiplyComponents(_,m,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),v=Math.asin(y.z),A=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=v,i.height=A,i):new u(R,v,A)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(m[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,E=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(E-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,m=2*(i-h),E=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),v=2*(c+o),A=-n-u+f+d;return r(t)?(t[0]=p,t[1]=_,t[2]=R,t[3]=m,t[4]=y,t[5]=v,t[6]=E,t[7]=T,t[8]=A,t):new s(p,m,E,_,y,T,R,v,A)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=_,t[6]=h,t[7]=m,t[8]=y,t):new s(l,f,h,d,p,m,E,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,_),s.multiply(h,E,h),s.multiply(_,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(m,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(E,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-E+y,R=2*(c-_),v=2*(f+m),A=2*(c+_),g=-s+d-E+y,S=2*(p-h),O=2*(f-m),I=2*(p+h),N=-s-d+E+y;return r[0]=T*a,r[1]=A*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=g*o,r[6]=I*o,r[7]=0,r[8]=v*u,r[9]=S*u,r[10]=N*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,_=d.x,y=d.y,T=d.z,R=r.x,v=r.y,A=r.z,g=u*-R+s*-v+c*-A,S=_*-R+y*-v+T*-A,O=p*R+m*v+E*A;return i(n)?(n[0]=u,n[1]=_,n[2]=-p,n[3]=0,n[4]=s,n[5]=y,n[6]=-m,n[7]=0,n[8]=c,n[9]=T,n[10]=-E,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,_,y,T,S,-p,-m,-E,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,m=a+c,E=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var m=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),n};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],_=e[14],y=e[15],T=t[0],R=t[1],v=t[2],A=t[3],g=t[4],S=t[5],O=t[6],I=t[7],N=t[8],M=t[9],w=t[10],x=t[11],C=t[12],P=t[13],U=t[14],D=t[15],L=r*T+u*R+f*v+m*A,F=i*T+s*R+h*v+E*A,b=a*T+c*R+d*v+_*A,B=o*T+l*R+p*v+y*A,q=r*g+u*S+f*O+m*I,z=i*g+s*S+h*O+E*I,G=a*g+c*S+d*O+_*I,W=o*g+l*S+p*O+y*I,V=r*N+u*M+f*w+m*x,X=i*N+s*M+h*w+E*x,H=a*N+c*M+d*w+_*x,Y=o*N+l*M+p*w+y*x,k=r*C+u*P+f*U+m*D,j=i*C+s*P+h*U+E*D,Z=a*C+c*P+d*U+_*D,K=o*C+l*P+p*U+y*D;return n[0]=L,n[1]=F,n[2]=b,n[3]=B,n[4]=q,n[5]=z,n[6]=G,n[7]=W,n[8]=V,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],_=t[2],y=t[4],T=t[5],R=t[6],v=t[8],A=t[9],g=t[10],S=t[12],O=t[13],I=t[14],N=r*m+o*E+c*_,M=i*m+u*E+l*_,w=a*m+s*E+f*_,x=r*y+o*T+c*R,C=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*v+o*A+c*g,D=i*v+u*A+l*g,L=a*v+s*A+f*g,F=r*S+o*O+c*I+h,b=i*S+u*O+l*I+d,B=a*S+s*O+f*I+p;return n[0]=N,n[1]=M,n[2]=w,n[3]=0,n[4]=x,n[5]=C,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=F,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],_=t[5],y=t[6],T=t[7],R=t[8],v=r*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*m+o*E+c*_,O=i*m+u*E+l*_,I=a*m+s*E+f*_,N=r*y+o*T+c*R,M=i*y+u*T+l*R,w=a*y+s*T+f*R;return n[0]=v,n[1]=A,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=I,n[7]=0,n[8]=N,n[9]=M,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,v=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],_=e[10],A=e[14],g=e[3],S=e[7],O=e[11],I=e[15],N=_*I,M=A*O,w=E*I,x=A*S,C=E*O,P=_*S,U=m*I,D=A*g,L=m*O,F=_*g,b=m*S,B=E*g,q=N*h+x*d+C*p-(M*h+w*d+P*p),z=M*f+U*d+F*p-(N*f+D*d+L*p),G=w*f+D*h+b*p-(x*f+U*h+B*p),W=P*f+L*h+B*d-(C*f+F*h+b*d),V=M*i+w*a+P*o-(N*i+x*a+C*o),X=N*r+D*a+L*o-(M*r+U*a+F*o),H=x*r+U*i+B*o-(w*r+D*i+b*o),Y=C*r+F*i+b*a-(P*r+L*i+B*a);N=a*p,M=o*d,w=i*p,x=o*h,C=i*d,P=a*h,U=r*p,D=o*f,L=r*d,F=a*f,b=r*h,B=i*f;var k=N*S+x*O+C*I-(M*S+w*O+P*I),j=M*g+U*O+F*I-(N*g+D*O+L*I),Z=w*g+D*S+b*I-(x*g+U*S+B*I),K=P*g+L*S+B*O-(C*g+F*S+b*O),J=w*_+P*A+M*E-(C*A+N*E+x*_),Q=L*A+N*m+D*_-(U*_+F*A+M*m),$=U*E+B*A+x*m-(b*A+w*m+D*E),ee=b*_+C*m+F*E-(L*E+B*_+P*m),te=r*q+i*z+a*G+o*W;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),v))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=W*te,n[4]=V*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var _=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,m=new e,E=new e,_=new e,y=new e,T=new e,R=new e,v=new e,A=new e,g=new e,S=new e,O=new e,I=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var I=a.x,N=a.y,M=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),N<u.y&&e.clone(a,u),N>l.y&&e.clone(a,l),M<s.z&&e.clone(a,s),M>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,v)),x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=o,U=c,D=w;x>D&&(D=x,P=u,U=l),C>D&&(D=C,P=s,U=f);var L=A;L.x=.5*(P.x+U.x),L.y=.5*(P.y+U.y),L.z=.5*(P.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,v)),b=Math.sqrt(F),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var q=S;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var W=e.magnitude(e.subtract(a,z,v));W>G&&(G=W);var V=e.magnitudeSquared(e.subtract(a,L,v));if(V>F){var X=Math.sqrt(V);b=.5*(b+X),F=b*b;var H=X-b;L.x=(b*L.x+H*a.x)/X,L.y=(b*L.y+H*a.y)/X,L.z=(b*L.z+H*a.z)/X}}return b<G?(e.clone(L,n.center),n.radius=b):(e.clone(z,n.center),n.radius=G),n};var N=new o,M=new e,w=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,N),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=n.project(x,M),c=n.project(C,w),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,_),I=e.clone(u,y),N=e.clone(u,T),M=t.length;for(s=0;s<M;s+=a){var w=t[s]+n.x,x=t[s+1]+n.y,C=t[s+2]+n.z;u.x=w,u.y=x,u.z=C,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>I.y&&e.clone(u,I),C<f.z&&e.clone(u,f),C>N.z&&e.clone(u,N)}var P=e.magnitudeSquared(e.subtract(h,c,v)),U=e.magnitudeSquared(e.subtract(I,l,v)),D=e.magnitudeSquared(e.subtract(N,f,v)),L=c,F=h,b=P;U>b&&(b=U,L=l,F=I),D>b&&(b=D,L=f,F=N);var B=A;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var q=e.magnitudeSquared(e.subtract(F,B,v)),z=Math.sqrt(q),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var W=S;W.x=h.x,W.y=I.y,W.z=N.z;var V=e.midpoint(G,W,O),X=0;for(s=0;s<M;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,V,v));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,v));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;B.x=(z*B.x+j*u.x)/k,B.y=(z*B.y+j*u.y)/k,B.z=(z*B.z+j*u.z)/k}}return z<X?(e.clone(B,o.center),o.radius=z):(e.clone(V,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),I=t.length;for(o=0;o<I;o+=3){var N=t[o]+n[o],M=t[o+1]+n[o+1],w=t[o+2]+n[o+2];a.x=N,a.y=M,a.z=w,N<u.x&&e.clone(a,u),N>l.x&&e.clone(a,l),M<s.y&&e.clone(a,s),M>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=e.magnitudeSquared(e.subtract(h,c,v)),U=u,D=l,L=x;C>L&&(L=C,U=s,D=f),P>L&&(L=P,U=c,D=h);var F=A;F.x=.5*(U.x+D.x),F.y=.5*(U.y+D.y),F.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,v)),B=Math.sqrt(b),q=g;q.x=u.x,q.y=s.y,q.z=c.z;var z=S;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,O),W=0;for(o=0;o<I;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var V=e.magnitude(e.subtract(a,G,v));V>W&&(W=V);var X=e.magnitudeSquared(e.subtract(a,F,v));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<W?(e.clone(F,r.center),r.radius=B):(e.clone(G,r.center),r.radius=W),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,F);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var W=new e,V=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,W),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,_=0;_<E;++_){var y=p[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(p,i),o=i.center;var R=o.x,v=o.y,A=o.z;return o.x=A,o.y=R,o.z=v,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=_,m(l,e),f=l=v,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=_,d.reject(h))},p=function(e){f.push(e),--c||(p=m=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return E(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function m(e,t){for(var n,r=0;n=e[r++];)n(t)}function E(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,v;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(v,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(v,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,I=o(e[1]))}return O}function s(){return u()&&I}function c(){if(!t(N)&&(N=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(N=!0,M=o(e[1]))}return N}function l(){return c()&&M}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(w=!0,x=o(e[1]),x.isNightly=!!e[2])}return w}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function m(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function E(){return m()&&D}function _(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(S.appVersion)),b}function T(){return _()&&F}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function v(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function A(){return v()?q:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,I,N,M,w,x,C,P,U,D,L,F,b,B,q,z;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,m())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var W={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:v,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return W.supportsFullscreen=function(){return i.supportsFullscreen()},W.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},W.supportsWebWorkers=function(){return"undefined"!=typeof Worker},W.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!W.isEdge()},W}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)n=Math.sqrt(m+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var E=l,_=0;d>h&&(_=1),p>h&&p>d&&(_=2);var y=E[_],T=E[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,n){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,n,n)};var E=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,E);var u=s.computeAngle(y);r[o]=E.x*u,r[o+1]=E.y*u,r[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var v=new s;s.lerp=function(e,t,n,r){return v=s.multiplyByScalar(t,n,v),r=s.multiplyByScalar(e,1-n,r),s.add(v,r,r)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,I=new e,N=new s,M=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,N);s.multiply(a,r,M);var o=s.log(M,O);s.multiply(a,t,M);var u=s.log(M,I);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,N),s.multiply(n,N,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,N),u=s.slerp(n,r,i,M);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;C[L]=1/(F*b),P[L]=F/b}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,N),u=s.fastSlerp(n,r,i,M);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,m,E,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,v=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":A=s.charAt(S+1);break;case"0":R=!0;break;case"#":v=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,A);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,v,y,c,f,R);case"o":return o(_,8,v,y,c,f,R);case"x":return o(_,16,v,y,c,f,R);case"X":return o(_,16,v,y,c,f,R).toUpperCase();case"u":return o(_,10,v,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),p=d<0?"-":T,_=p+i(String(Math.abs(d)),f,"0",!1),a(_,p,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,p=d<0?"-":T,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=p+Math.abs(d)[m](f),a(_,p,y,c,R)[E]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=m.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){m.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}m.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=m.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-r[0].offset,n);if(i>=r.length)return m.addSeconds(e,-r[i-1].offset,n);var a=m.secondsDifference(r[i].julianDate,e);return 0===a?m.addSeconds(e,-r[i].offset,n):a<=1?void 0:m.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var E=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,v=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,N=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;m.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,y=0,S=0,M=u[0],w=u[1];if(null!==(u=M.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=M.match(R)))n=+u[1],s=+u[2];else if(null!==(u=M.match(T)))n=+u[1];else{var x;if(null!==(u=M.match(v)))n=+u[1],x=+u[2],a=o(n);else if(null!==(u=M.match(A))){n=+u[1];var C=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));x=7*C+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(w)){u=w.match(N),null!==u?(h=+u[1],E=+u[2],y=+u[3],S=1e3*+(u[4]||0),D=5):(u=w.match(I),null!==u?(h=+u[1],E=+u[2],y=60*+(u[3]||0),D=4):null!==(u=w.match(O))&&(h=+u[1],E=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,E-=b;break;case"-":h+=F,E+=b;break;case"Z":break;default:E+=new Date(Date.UTC(n,s-1,l,h,E)).getTimezoneOffset()}}var B=60===y;for(B&&y--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var q=p(n,s,l,h,E,y,S);return r(t)?(d(q[0],q[1],t),f(t)):t=new m(q[0],q[1],c.UTC),B&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var M=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var n=!1,i=h(e,M);r(i)||(m.addSeconds(e,-1,M),i=h(M,M),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var v=0|T,A=(T-v)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(v+=1),r(t)?(t.year=_,t.month=E,t.day=p,t.hour=y,t.minute=R,t.second=v,t.millisecond=A,t.isLeapSecond=n,t):new a(_,E,p,y,R,v,A,n)},m.toDate=function(e){var t=m.toGregorianDate(e,E),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},m.toIso8601=function(t,n){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=n},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){y.julianDate=e;var n=m.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},m.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},m.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},m.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},m.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--v.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++v.numberOfFailedRequests,--v.numberOfActiveRequests,--O[e.serverKey],N.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=m(e);return e.state=l.ACTIVE,S.push(e),++v.numberOfActiveRequests,++v.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(E(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++v.numberOfCancelledRequests,e.deferred.reject(),t&&(--v.numberOfActiveRequests,--O[e.serverKey],++v.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===v.numberOfActiveRequests&&v.lastNumberOfActiveRequests>0&&(v.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+v.numberOfAttemptedRequests),v.numberOfAttemptedRequests=0),v.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+v.numberOfCancelledRequests),v.numberOfCancelledRequests=0),v.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+v.numberOfCancelledActiveRequests),v.numberOfCancelledActiveRequests=0),v.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+v.numberOfFailedRequests),v.numberOfFailedRequests=0)),v.lastNumberOfActiveRequests=v.numberOfActiveRequests)}var v={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},I="undefined"!=typeof document?new e(document.location.href):new e,N=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=N,a(h,{statistics:{get:function(){return v}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();T(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(I);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return N.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++v.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return m(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())}for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},v.numberOfAttemptedRequests=0,v.numberOfActiveRequests=0,v.numberOfCancelledRequests=0,v.numberOfCancelledActiveRequests=0,v.numberOfFailedRequests=0,v.numberOfActiveRequestsEver=0,v.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,_,y,T,R,v,A,g,S,O){"use strict";function I(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?x(a,t._queryParameters,r):a,e.query=void 0}function N(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function M(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=M(t.templateValues,{}),this._queryParameters=M(t.queryParameters,{}),this.headers=M(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var n=new e(t.url);I(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function F(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new v(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new v)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return z}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);I(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&N(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);I(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;w(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var W=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=M(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=M(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=M(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=M(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=M(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=W.exec(e);if(null!==s)return void a.resolve(F(s,t));if(V)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new v(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new v)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,v=E.length;R<v;R+=e._columnCount){var A=E[R+i],g=E[R+m],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(_.push(O),T){if(g!==y&&r(y)){var I=o.leapSeconds,N=t(I,O,d);if(N<0){var M=new u(O,g);I.splice(~N,0,M)}}y=g}}}function m(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return m(e,n,i,s,u),u;if(r.equals(l))return m(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-p;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=_:_-=R-T)}return u.xPoleWander=E(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)_[p]=E-R[p];for(p=0;p<=u;++p){for(T[p]=1,m=0;m<=u;++m)m!==p&&(T[p]*=_[m]);T[p]*=y[p];var v=3*(s+p);n.x+=T[p]*d[v++],n.y+=T[p]*d[v++],n.s+=T[p]*d[v]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,_,y,T,R){"use strict";var v={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},I=new n,N=new n,M=new n;v.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=A[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new y),E.equalsEpsilon(r.x,0,E.EPSILON14)&&E.equalsEpsilon(r.y,0,E.EPSILON14)){var c=E.sign(r.z);n.unpack(g[e],0,I),"east"!==e&&"west"!==e&&n.multiplyByScalar(I,c,I),n.unpack(g[t],0,N),"east"!==t&&"west"!==t&&n.multiplyByScalar(N,c,N),n.unpack(g[i],0,M),"east"!==i&&"west"!==i&&n.multiplyByScalar(M,c,M)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),I=O[e],N=O[t],M=O[i]}return s[0]=I.x,s[1]=I.y,s[2]=I.z,s[3]=0,s[4]=N.x,s[5]=N.y,s[6]=N.z,s[7]=0,s[8]=M.x,s[9]=M.y,s[10]=M.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},v.eastNorthUpToFixedFrame=v.localFrameToFixedFrameGenerator("east","north"),v.northEastDownToFixedFrame=v.localFrameToFixedFrameGenerator("north","east"),v.northUpEastToFixedFrame=v.localFrameToFixedFrameGenerator("north","up"),v.northWestUpToFixedFrame=v.localFrameToFixedFrameGenerator("north","west");var w=new T,x=new n(1,1,1),C=new y;v.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,v.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,x,C);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new _;v.headingPitchRollQuaternion=function(e,t,n,r,i){var a=v.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,F=new y,b=new y,B=new _,q=new T;v.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,v.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=E.TWO_PI/86400,G=new m;v.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},v.iau2006XysData=new d,v.earthOrientationParameters=c.NONE;v.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=v.iau2006XysData.preload(n,r,i,a),u=v.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},v.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=v.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var W=new p(0,0,0),V=new l(0,0,0,0,0,0),X=new _,H=new _;v.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=v.earthOrientationParameters.compute(e,V);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=v.iau2006XysData.computeXysRadians(r,i,W);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=p/R.SECONDS_PER_DAY,A=.779057273264+T+.00273781191135448*(y+T);A=A%1*E.TWO_PI;var g=_.fromRotationZ(A,H),S=_.multiply(h,g,X),O=Math.cos(n.xPoleWander),I=Math.cos(n.yPoleWander),N=Math.sin(n.xPoleWander),M=Math.sin(n.yPoleWander),w=r-2451545+i/R.SECONDS_PER_DAY;w/=36525;var x=-47e-6*w*E.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),U=H;return U[0]=O*C,U[1]=O*P,U[2]=N,U[3]=-I*P+M*N*C,U[4]=I*C+M*N*P,U[5]=-M*O,U[6]=-M*P-I*N*C,U[7]=M*C-I*N*P,U[8]=I*O,_.multiply(S,U,t)}}};var Y=new r;v.pointToWindowCoordinates=function(e,t,n,r){return r=v.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},v.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;v.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,E.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return v.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=v.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},v.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=v.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},v}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}E.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var _=new n,y=new t,T=new f,R=[new n,new n,new n],v=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,I=new c;return E._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,_),h=n.toCartesian(s,a,y),E=m.eastNorthUpToFixedFrame(h,a,T),N=f.inverse(E,T),M=v,w=R;w[0].longitude=o.west,w[0].latitude=o.south,w[1].longitude=o.west,w[1].latitude=o.north,w[2].longitude=o.east,w[2].latitude=o.south;var x=g;for(u=0;u<3;u++)n.toCartesian(w[u],a,x),x=f.multiplyByPointAsVector(N,x,x),M[u].x=x.x,M[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)x=f.multiplyByPointAsVector(N,r[u],x),x=l.multiplyByVector(P,x,x),D=Math.min(D,x.x),L=Math.min(L,x.y),F=Math.max(F,x.x),b=Math.max(b,x.y);var B=c.fromRotation(i,I),q=A;q[0].x=D,q[0].y=L,q[1].x=D,q[1].y=b,q[2].x=F,q[2].y=L;var z=M[0],G=M[2].x-z.x,W=M[1].y-z.y;for(u=0;u<3;u++){var V=q[u];c.multiplyByVector(B,V,V),V.x=(V.x-z.x)/G,V.y=(V.y-z.y)/W}var X=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},E}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){ -case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/VertexFormat",["./defaultValue","./defined","./DeveloperError","./freezeObject"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT),this.position=e(t.position,!1),this.normal=e(t.normal,!1),this.st=e(t.st,!1),this.bitangent=e(t.bitangent,!1),this.tangent=e(t.tangent,!1),this.color=e(t.color,!1)}return i.POSITION_ONLY=r(new i({position:!0})),i.POSITION_AND_NORMAL=r(new i({position:!0,normal:!0})),i.POSITION_NORMAL_AND_ST=r(new i({position:!0,normal:!0,st:!0})),i.POSITION_AND_ST=r(new i({position:!0,st:!0})),i.POSITION_AND_COLOR=r(new i({position:!0,color:!0})),i.ALL=r(new i({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0})),i.DEFAULT=i.POSITION_NORMAL_AND_ST,i.packedLength=6,i.pack=function(t,n,r){return r=e(r,0),n[r++]=t.position?1:0,n[r++]=t.normal?1:0,n[r++]=t.st?1:0,n[r++]=t.tangent?1:0,n[r++]=t.bitangent?1:0,n[r]=t.color?1:0,n},i.unpack=function(n,r,a){return r=e(r,0),t(a)||(a=new i),a.position=1===n[r++],a.normal=1===n[r++],a.st=1===n[r++],a.tangent=1===n[r++],a.bitangent=1===n[r++],a.color=1===n[r],a},i.clone=function(e,n){if(t(e))return t(n)||(n=new i),n.position=e.position,n.normal=e.normal,n.st=e.st,n.tangent=e.tangent,n.bitangent=e.bitangent,n.color=e.color,n},i}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,E=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(E,u),l=Math.max(E,l)}var _=n.minimum;_.x=i,_.y=o,_.z=u;var y=n.maximum;return y.x=s,y.y=c,y.z=l,n.center=e.midpoint(_,y,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,_=4*p*E-m*m;if(_<0){var y,T,R;h*f>=l*d?(y=o,T=p,R=-2*u*p+o*m):(y=c,T=E,R=-c*m+2*s*E);var v=R<0?-1:1,A=-v*Math.abs(y)*Math.sqrt(-_);a=-R+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-T/S;return i=T<=0?S+O:-R/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var I=p,N=-2*u*p+o*m,M=E,w=-c*m+2*s*E,x=Math.sqrt(_),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-N)/3);i=2*Math.sqrt(-I);var U=Math.cos(P);a=i*U;var D=i*(-U/2-C*Math.sin(P)),L=a+D>2*u?a-u:D-u,F=o,b=L/F;P=Math.abs(Math.atan2(c*x,-w)/3),i=2*Math.sqrt(-M),U=Math.cos(P),a=i*U,D=i*(-U/2-C*Math.sin(P));var B=-c,q=a+D<2*s?a+s:D+s,z=B/q,G=F*q,W=-L*q-F*B,V=L*B,X=(s*W-u*V)/(-u*W+s*G);return b<=X?b<=z?X<=z?[b,X,z]:[b,z,X]:[z,b,X]:b<=z?[X,b,z]:X<=z?[X,z,b]:[z,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],_=p[1];if(E>=0&&_>=0){var y=Math.sqrt(E),T=Math.sqrt(_);return[h-T,h-y,h+y,h+T]}if(E>=0&&_<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&_>=0)return m=Math.sqrt(_),[h-m,h+m]}return[]}if(d>0){var R=Math.sqrt(d),v=(s+d-c/R)/2,A=(s+d+c/R)/2,g=r.computeRealRoots(1,R,v),S=r.computeRealRoots(1,-R,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],_=i-E,y=_*_,T=t/2,R=_/2,v=y-4*o,A=y+4*Math.abs(o),g=c-4*E,S=c+4*Math.abs(E);if(E<0||v*S<g*A){var O=Math.sqrt(g);p=O/2,m=0===O?0:(t*R-a)/O}else{var I=Math.sqrt(v);p=0===I?0:(t*R-a)/I,m=I/2}var N,M;0===T&&0===p?(N=0,M=0):n.sign(T)===n.sign(p)?(N=T+p,M=E/N):(M=T-p,N=E/M);var w,x;0===R&&0===m?(w=0,x=0):n.sign(R)===n.sign(m)?(w=R+m,x=o/w):(x=R-m,w=o/x);var C=r.computeRealRoots(1,N,w),P=r.computeRealRoots(1,M,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,y),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,A);if(r(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===y&&0===_){if(l=s.computeRealRoots(p,m,E),0===l.length)return T;var R=l[0],v=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-v)),T.push(new e(i,a*R,a*v)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));T.push(new e(i,a*A,a*-g)),T.push(new e(i,a*A,a*g))}return T}var S=y*y,O=_*_,I=p*p,N=y*_,M=I+O,w=2*(m*p+N),x=2*E*p+m*m-O+S,C=2*(E*m-N),P=E*E-S;if(0===M&&0===w&&0===x&&0===C)return T;l=c.computeRealRoots(M,w,x,C,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var L,F=l[D],b=F*F,B=Math.max(1-b,0),q=Math.sqrt(B);L=o.sign(p)===o.sign(E)?d(p*b+E,m*F,o.EPSILON12):o.sign(E)===o.sign(m*F)?d(p*b,m*F+E,o.EPSILON12):d(p*b+m*F,E,o.EPSILON12);var z=d(_*F,y,o.EPSILON15),G=L*z;G<0?T.push(new e(i,a*F,a*q)):G>0?T.push(new e(i,a*F,a*-q)):0!==q?(T.push(new e(i,a*F,a*-q)),T.push(new e(i,a*F,a*q)),++D):T.push(new e(i,a*F,a*q))}return T}var m={};m.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,_=new e,y=new e,T=new e,R=new e;m.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,r,E),v=e.subtract(a,r,_),A=e.cross(p,v,y),g=e.dot(m,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,m,R),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(v,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,m,R),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(v,c)*S}return h},m.rayTriangle=function(t,n,i,a,o,u){var s=m.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var v=new l;m.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=v;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};m.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;m.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;m.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=r/s;return m<E?new a(m,E):{start:E,stop:m}}var _=Math.sqrt(r/i);return new a(_,_)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,N=new e,M=new e,w=new e,x=new e,C=new u,P=new u,U=new u,D=new u,L=new u,F=new u,b=new u,B=new e,q=new e,z=new t;m.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,I);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,w),d=e.normalize(e.cross(h,f,N),N),m=e.normalize(e.cross(f,d,M),M),E=C;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var _=u.transpose(E,P),y=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=L;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var v,A,g=u.multiply(u.multiply(_,T,F),R,F),S=u.multiply(u.multiply(g,y,b),E,b),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,I),0,0,1),W=G.length;if(W>0){for(var V=e.clone(e.ZERO,q),X=Number.NEGATIVE_INFINITY,H=0;H<W;++H){v=u.multiplyByVector(y,u.multiplyByVector(E,G[H],B),B);var Y=e.normalize(e.subtract(v,i,w),w),k=e.dot(Y,a);k>X&&(X=k,V=e.clone(v,V))}var j=n.cartesianToCartographic(V,z);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(V,i,w))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,n.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,E)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,E));var i=n.fromCartesian4(f.getColumn(r,2,E));this._plane=h.fromPointNormal(e,i)}var E=new r;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var _=new e;m.fromPoints=function(t,n){return new m(e.fromPoints(t,_).center,n)};var y=new d,T=new n;m.prototype.projectPointOntoPlane=function(e,r){var i=y;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},m.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=y;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,m,E;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var _=i;_<o;_+=i)p=e[_],m=e[_+1],p<l&&(l=p),m<f&&(f=m),p>h&&(h=p),m>d&&(d=m);E=Math.max(h-l,d-f)}return r(u,c,i,l,f,E),c}function t(e,t,n,r,i){var a,o;if(i===M(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(I(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==y(r.prev,r,r.next))r=r.next;else{if(I(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,m,E=e;e.prev!==e.next;)if(p=e.prev,m=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(m.i/s),I(e),e=m.next,E=m.next;else if((e=m)===E){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(y(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(E(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(y(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&E(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&R(i,r,r.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),I(r),I(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&_(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(m(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&E(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&A(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function m(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function E(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function _(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!v(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function y(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||y(e,t,n)>0!=y(e,t,r)>0&&y(n,r,e)>0!=y(n,r,t)>0}function v(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function A(e,t){return y(e.prev,e,e.next)<0?y(e,t,e.next)>=0&&y(e,e.prev,t)>=0:y(e,t,e.prev)<0||y(e,e.next,t)<0}function g(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new N(e.i,e.x,e.y),r=new N(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new N(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function I(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function N(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function M(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(M(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(M(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),m=Math.cos(2*r),E=Math.sin(4*r),_=Math.cos(4*r),y=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),v=Math.cos(8*r),A=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*m+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*_+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*v+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*E+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,y),_),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function m(e,n,r,a,o,u){var h,d,p,m=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var E=f(o,e.latitude),_=f(o,d);p=Math.tan(n)*(_-E),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-m*T*T)}p=r/y,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function E(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var _=new e,y=new e;return a(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),E.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var _=m(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new E(e,_,c):(o.setEndPoints(e,_),o)},E.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},E.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},E.prototype.interpolateUsingSurfaceDistance=function(e,t){return m(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},E.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var m=r*Math.sin(c),E=(1+m)/(1-m);p=2*Math.atan(h*Math.pow(E/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},E.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},E}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var m=new n,E=new n,_={};_.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},_.computeWindingOrder2D=function(e){return _.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},_.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var y=new n,T=new n,R=new n,v=new n,A=new n,g=new n,S=new n;_.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,m=new Array(3*p),E=0;for(s=0;s<p;s++){var _=t[s];m[E++]=_.x,m[E++]=_.y,m[E++]=_.z}for(var O=[],I={},N=e.maximumRadius,M=h.chordLength(i,N),w=M*M;c.length>0;){ -var x,C,P=c.pop(),U=c.pop(),D=c.pop(),L=n.fromArray(m,3*D,y),F=n.fromArray(m,3*U,T),b=n.fromArray(m,3*P,R),B=n.multiplyByScalar(n.normalize(L,v),N,v),q=n.multiplyByScalar(n.normalize(F,A),N,A),z=n.multiplyByScalar(n.normalize(b,g),N,g),G=n.magnitudeSquared(n.subtract(B,q,S)),W=n.magnitudeSquared(n.subtract(q,z,S)),V=n.magnitudeSquared(n.subtract(z,B,S)),X=Math.max(G,W,V);X>w?G===X?(x=Math.min(D,U)+" "+Math.max(D,U),s=I[x],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[x]=s),c.push(D,s,P),c.push(s,U,P)):W===X?(x=Math.min(U,P)+" "+Math.max(U,P),s=I[x],u(s)||(C=n.add(F,b,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[x]=s),c.push(U,s,D),c.push(s,P,D)):V===X&&(x=Math.min(P,D)+" "+Math.max(P,D),s=I[x],u(s)||(C=n.add(b,L,S),n.multiplyByScalar(C,.5,C),m.push(C.x,C.y,C.z),s=m.length/3-1,I[x]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,I=new r,N=new r,M=new r;return _.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),m=t.length,E=new Array(3*m),_=0;for(s=0;s<m;s++){var v=t[s];E[_++]=v.x,E[_++]=v.y,E[_++]=v.z}for(var A=[],g={},w=e.maximumRadius,x=h.chordLength(i,w),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),L=p.pop(),F=p.pop(),b=n.fromArray(E,3*F,y),B=n.fromArray(E,3*L,T),q=n.fromArray(E,3*D,R),z=e.cartesianToCartographic(b,O),G=e.cartesianToCartographic(B,I),W=e.cartesianToCartographic(q,N);C.setEndPoints(z,G);var V=C.surfaceDistance;P.setEndPoints(G,W);var X=P.surfaceDistance;U.setEndPoints(W,z);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(V,X,Z);K>x?V===K?(H=Math.min(F,L)+" "+Math.max(F,L),s=g[H],u(s)||(Y=C.interpolateUsingFraction(.5,M),k=.5*(z.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(F,s,D),p.push(s,L,D)):X===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=g[H],u(s)||(Y=P.interpolateUsingFraction(.5,M),k=.5*(G.height+W.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(L,s,F),p.push(s,D,F)):Z===K&&(H=Math.min(D,F)+" "+Math.max(D,F),s=g[H],u(s)||(Y=U.interpolateUsingFraction(.5,M),k=.5*(W.height+z.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),E.push(j.x,j.y,j.z),s=E.length/3-1,g[H]=s),p.push(D,s,L),p.push(s,F,L)):(A.push(F),A.push(L),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:A,primitiveType:d.TRIANGLES})},_.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=m,c=E;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},_}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),m=t/4,E=m*m,_=E*m,y=E*E,T=1+m-3*E/4+5*_/4-175*y/64,R=1-m+15*E/8-35*_/8,v=1-3*m+35*E/4,A=1-5*m,g=T*l-R*Math.sin(2*l)*m/2-v*Math.sin(4*l)*E/16-A*Math.sin(6*l)*_/48-5*Math.sin(8*l)*y/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=m,S.u4Over16=E,S.u6Over64=_,S.u8Over256=y,S.a0=T,S.a1=R,S.a2=v,S.a3=A,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,m=a-r,E=Math.atan((1-p)*Math.tan(i)),_=Math.atan((1-p)*Math.tan(o)),y=Math.cos(E),T=Math.sin(E),R=Math.cos(_),v=Math.sin(_),A=y*R,g=y*v,S=T*v,O=T*R,I=m,N=u.TWO_PI,M=Math.cos(I),w=Math.sin(I);do{M=Math.cos(I),w=Math.sin(I);var x=g-O*M;f=Math.sqrt(R*R*w*w+x*x),c=S+A*M,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=A*w/f,h=1-C*C),N=I,d=c-2*S/h,isNaN(d)&&(d=0),I=m+l(p,C,h,s,f,c,d)}while(Math.abs(I-N)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),U=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,L=d*d,F=D*f*(d+D*(c*(2*L-1)-D*d*(4*f*f-3)*(4*L-3)/6)/4),b=n*U*(s-F),B=Math.atan2(R*w,g-O*M),q=Math.atan2(y*w,g*M-O);e._distance=b,e._startHeading=B,e._endHeading=q,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,m),p),e.normalize(a.cartographicToCartesian(i,m),m);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,m=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,m=a*p,E=r.u8Over256,_=r.u2Over4,y=r.u6Over64,T=r.u4Over16,R=2*m*E*o/3+a*(1-_+7*T/4-15*y/4+579*E/64-(T-15*y/4+187*E/16)*o-(5*y/4-115*E/16)*u-29*E*s/16)+(_/2-T+71*y/32-85*E/16)*c+(5*T/16-5*y/4+383*E/96)*f-p*((y-11*E/2)*c+5*E*f/2)+(29*y/96-29*E/16)*h+539*E*d/1536,v=Math.asin(Math.sin(R)*r.cosineAlpha),A=Math.atan(r.a/r.b*Math.tan(v));R-=r.sigma;var g=Math.cos(2*r.sigma+R),S=Math.sin(R),O=Math.cos(R),I=r.cosineU*O,N=r.sineU*S,M=Math.atan2(S*r.sineHeading,I-N*r.cosineHeading),w=M-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,R,S,O,g);return i(n)?(n.longitude=this._start.longitude+w,n.latitude=A,n.height=0,n):new t(this._start.longitude+w,A,0)},d}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=I;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,x),l=i.scaleToGeodeticSurface(n,C),f=E.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,N),p=i.cartesianToCartographic(l,M),m=d(f,a,o);P.setEndPoints(h,p);var _=P.surfaceDistance/f,y=s;h.height=a;var T=i.cartographicToCartesian(h,w);e.pack(T,u,y),y+=3;for(var R=1;R<f;R++){var v=P.interpolateUsingSurfaceDistance(R*_,M);v.height=m[R],T=i.cartographicToCartesian(v,w),e.pack(T,u,y),y+=3}return y}function m(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,x),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,N),p=i.cartesianToCartographic(f,M),m=E.numberOfPointsRhumbLine(h,p,r),_=d(m,a,o);U.ellipsoid.equals(i)||(U=new u(void 0,void 0,i)),U.setEndPoints(h,p);var y=U.surfaceDistance/m,T=c;h.height=a;var R=i.cartographicToCartesian(h,w);e.pack(R,s,T),T+=3;for(var v=1;v<m;v++){var A=U.interpolateUsingSurfaceDistance(v*y,M);A.height=_[v],R=i.cartographicToCartesian(A,w),e.pack(R,s,T),T+=3}return T}var E={};E.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},E.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var _=new t;E.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,_).height}return r};var y=new f,T=new e,R=new e,v=new h(e.UNIT_X,0),A=new e,g=new h(e.UNIT_X,0),S=new e,O=new e,I=[],N=new t,M=new t,w=new e,x=new e,C=new e,P=new o,U=new u;E.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,y),c=f.multiplyByPoint(u,e.ZERO,T),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,R),R),d=h.fromPointNormal(c,l,v),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,A),A),m=h.fromPointNormal(c,p,g),E=1;a.push(e.clone(t[0]));for(var _=a[0],I=t.length,N=1;N<I;++N){var M=t[N];if(h.getPointDistance(m,_)<0||h.getPointDistance(m,M)<0){var w=s.lineSegmentPlane(_,M,d,S);if(r(w)){var x=e.multiplyByScalar(l,5e-9,O);h.getPointDistance(d,_)<0&&e.negate(x,x),a.push(e.add(w,x,new e)),o.push(E+1),e.negate(x,x),a.push(e.add(w,x,new e)),E=1}}a.push(e.clone(t[N])),E++,_=M}o.push(E)}return{positions:a,lengths:o}},E.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],x);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,w);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var m=t.minDistance;if(!r(m)){var _=n(t.granularity,l.RADIANS_PER_DEGREE);m=l.chordLength(_,u.maximumRadius)}var y,T=0;for(y=0;y<o-1;y++)T+=E.numberOfPoints(i[y],i[y+1],m);var R=3*(T+1),v=new Array(R),A=0;for(y=0;y<o-1;y++){A=p(i[y],i[y+1],m,u,f?s[y]:s,f?s[y+1]:s,v,A)}I.length=0;var g=i[o-1],S=u.cartesianToCartographic(g,N);S.height=f?s[o-1]:s;var O=u.cartographicToCartesian(S,w);return e.pack(O,v,R-3),v};var D=new t,L=new t;return E.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],x);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,w);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var _,y,T=n(i.granularity,l.RADIANS_PER_DEGREE),R=0,v=s.cartesianToCartographic(o[0],D);for(_=0;_<u-1;_++)y=s.cartesianToCartographic(o[_+1],L),R+=E.numberOfPointsRhumbLine(v,y,T),v=t.clone(y,D);var A=3*(R+1),g=new Array(A),S=0;for(_=0;_<u-1;_++){S=m(o[_],o[_+1],T,s,h?f[_]:f,h?f[_+1]:f,g,S)}I.length=0;var O=o[u-1],M=s.cartesianToCartographic(O,N);M.height=h?f[u-1]:f;var C=s.cartographicToCartesian(M,w);return e.pack(C,g,A-3),g},E.generateCartesianArc=function(t){for(var n=E.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},E.generateCartesianRhumbArc=function(t){for(var n=E.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},E}),define("Core/WallGeometryLibrary",["./Cartographic","./defined","./EllipsoidTangentPlane","./Math","./PolygonPipeline","./PolylinePipeline","./WindingOrder"],function(e,t,n,r,i,a,o){"use strict";function u(e,t){return r.equalsEpsilon(e.latitude,t.latitude,r.EPSILON14)&&r.equalsEpsilon(e.longitude,t.longitude,r.EPSILON14)}function s(n,r,i,a){var o=r.length;if(!(o<2)){var s=t(a),c=t(i),h=!0,d=new Array(o),p=new Array(o),m=new Array(o),E=r[0];d[0]=E;var _=n.cartesianToCartographic(E,l);c&&(_.height=i[0]),h=h&&_.height<=0,p[0]=_.height,m[0]=s?a[0]:0;for(var y=1,T=1;T<o;++T){var R=r[T],v=n.cartesianToCartographic(R,f);c&&(v.height=i[T]),h=h&&v.height<=0,u(_,v)?_.height<v.height&&(p[y-1]=v.height):(d[y]=R,p[y]=v.height,m[y]=s?a[T]:0,e.clone(v,_),++y)}if(!(h||y<2))return d.length=y,p.length=y,m.length=y,{positions:d,topHeights:p,bottomHeights:m}}}var c={},l=new e,f=new e,h=new Array(2),d=new Array(2),p={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};return c.computePositions=function(e,u,c,l,f,m){var E=s(e,u,c,l);if(t(E)){if(u=E.positions,c=E.topHeights,l=E.bottomHeights,u.length>=3){var _=n.fromPoints(u,e),y=_.projectPointsOntoPlane(u);i.computeWindingOrder2D(y)===o.CLOCKWISE&&(u.reverse(),c.reverse(),l.reverse())}var T,R,v=u.length,A=v-2,g=r.chordLength(f,e.maximumRadius),S=p;if(S.minDistance=g,S.ellipsoid=e,m){var O,I=0;for(O=0;O<v-1;O++)I+=a.numberOfPoints(u[O],u[O+1],g)+1;T=new Float64Array(3*I),R=new Float64Array(3*I);var N=h,M=d;S.positions=N,S.height=M;var w=0;for(O=0;O<v-1;O++){N[0]=u[O],N[1]=u[O+1],M[0]=c[O],M[1]=c[O+1];var x=a.generateArc(S);T.set(x,w),M[0]=l[O],M[1]=l[O+1],R.set(a.generateArc(S),w),w+=x.length}}else S.positions=u,S.height=c,T=new Float64Array(a.generateArc(S)),S.height=l,R=new Float64Array(a.generateArc(S));return{bottomPositions:R,topPositions:T,numCorners:A}}},c}),define("Core/WallGeometry",["./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PrimitiveType","./VertexFormat","./WallGeometryLibrary"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e){e=r(e,r.EMPTY_OBJECT);var n=e.positions,a=e.maximumHeights,u=e.minimumHeights,s=r(e.vertexFormat,d.DEFAULT),c=r(e.granularity,f.RADIANS_PER_DEGREE),l=r(e.ellipsoid,o.WGS84);this._positions=n,this._minimumHeights=u,this._maximumHeights=a,this._vertexFormat=d.clone(s),this._granularity=c,this._ellipsoid=o.clone(l),this._workerName="createWallGeometry";var h=1+n.length*t.packedLength+2;i(u)&&(h+=u.length),i(a)&&(h+=a.length),this.packedLength=h+o.packedLength+d.packedLength+1}var E=new t,_=new t,y=new t,T=new t,R=new t,v=new t,A=new t,g=new t;m.pack=function(e,n,a){a=r(a,0);var u,s=e._positions,c=s.length;for(n[a++]=c,u=0;u<c;++u,a+=t.packedLength)t.pack(s[u],n,a);var l=e._minimumHeights;if(c=i(l)?l.length:0,n[a++]=c,i(l))for(u=0;u<c;++u)n[a++]=l[u];var f=e._maximumHeights;if(c=i(f)?f.length:0,n[a++]=c,i(f))for(u=0;u<c;++u)n[a++]=f[u];return o.pack(e._ellipsoid,n,a),a+=o.packedLength,d.pack(e._vertexFormat,n,a),a+=d.packedLength,n[a]=e._granularity,n};var S=o.clone(o.UNIT_SPHERE),O=new d,I={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:S,vertexFormat:O,granularity:void 0};return m.unpack=function(e,n,a){n=r(n,0);var u,s=e[n++],c=new Array(s);for(u=0;u<s;++u,n+=t.packedLength)c[u]=t.unpack(e,n);s=e[n++];var l;if(s>0)for(l=new Array(s),u=0;u<s;++u)l[u]=e[n++];s=e[n++];var f;if(s>0)for(f=new Array(s),u=0;u<s;++u)f[u]=e[n++];var h=o.unpack(e,n,S);n+=o.packedLength;var p=d.unpack(e,n,O);n+=d.packedLength;var E=e[n];return i(a)?(a._positions=c,a._minimumHeights=l,a._maximumHeights=f,a._ellipsoid=o.clone(h,a._ellipsoid),a._vertexFormat=d.clone(p,a._vertexFormat),a._granularity=E,a):(I.positions=c,I.minimumHeights=l,I.maximumHeights=f,I.granularity=E,new m(I))},m.fromConstantHeights=function(e){e=r(e,r.EMPTY_OBJECT);var t,n,a=e.positions,o=e.minimumHeight,u=e.maximumHeight,s=i(o),c=i(u);if(s||c){var l=a.length;t=s?new Array(l):void 0,n=c?new Array(l):void 0;for(var f=0;f<l;++f)s&&(t[f]=o),c&&(n[f]=u)}return new m({positions:a,maximumHeights:n,minimumHeights:t,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat})},m.createGeometry=function(r){var a=r._positions,o=r._minimumHeights,d=r._maximumHeights,m=r._vertexFormat,S=r._granularity,O=r._ellipsoid,I=p.computePositions(O,a,d,o,S,!0);if(i(I)){var N=I.bottomPositions,M=I.topPositions,w=I.numCorners,x=M.length,C=2*x,P=m.position?new Float64Array(C):void 0,U=m.normal?new Float32Array(C):void 0,D=m.tangent?new Float32Array(C):void 0,L=m.bitangent?new Float32Array(C):void 0,F=m.st?new Float32Array(C/3*2):void 0,b=0,B=0,q=0,z=0,G=0,W=g,V=A,X=v,H=!0;x/=3;var Y,k=0,j=1/(x-a.length+1);for(Y=0;Y<x;++Y){var Z=3*Y,K=t.fromArray(M,Z,E),J=t.fromArray(N,Z,_);if(m.position&&(P[b++]=J.x,P[b++]=J.y,P[b++]=J.z,P[b++]=K.x,P[b++]=K.y,P[b++]=K.z),m.st&&(F[G++]=k,F[G++]=0,F[G++]=k,F[G++]=1),m.normal||m.tangent||m.bitangent){var Q,$=t.clone(t.ZERO,R),ee=O.scaleToGeodeticSurface(t.fromArray(M,Z,_),_);if(Y+1<x&&(Q=O.scaleToGeodeticSurface(t.fromArray(M,Z+3,y),y),$=t.fromArray(M,Z+3,R)),H){var te=t.subtract($,K,T),ne=t.subtract(ee,K,E);W=t.normalize(t.cross(ne,te,W),W),H=!1}t.equalsEpsilon(Q,ee,f.EPSILON10)?H=!0:(k+=j,m.tangent&&(V=t.normalize(t.subtract(Q,ee,V),V)),m.bitangent&&(X=t.normalize(t.cross(W,V,X),X))),m.normal&&(U[B++]=W.x,U[B++]=W.y,U[B++]=W.z,U[B++]=W.x,U[B++]=W.y,U[B++]=W.z),m.tangent&&(D[z++]=V.x,D[z++]=V.y,D[z++]=V.z,D[z++]=V.x,D[z++]=V.y,D[z++]=V.z),m.bitangent&&(L[q++]=X.x,L[q++]=X.y,L[q++]=X.z,L[q++]=X.x,L[q++]=X.y,L[q++]=X.z)}}var re=new c;m.position&&(re.position=new s({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:P})),m.normal&&(re.normal=new s({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:U})),m.tangent&&(re.tangent=new s({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:D})),m.bitangent&&(re.bitangent=new s({componentDatatype:n.FLOAT,componentsPerAttribute:3,values:L})),m.st&&(re.st=new s({componentDatatype:n.FLOAT,componentsPerAttribute:2,values:F}));var ie=C/3;C-=6*(w+1);var ae=l.createTypedArray(ie,C),oe=0;for(Y=0;Y<ie-2;Y+=2){var ue=Y,se=Y+2,ce=t.fromArray(P,3*ue,E),le=t.fromArray(P,3*se,_);if(!t.equalsEpsilon(ce,le,f.EPSILON10)){var fe=Y+1,he=Y+3;ae[oe++]=fe,ae[oe++]=ue,ae[oe++]=he,ae[oe++]=he,ae[oe++]=ue,ae[oe++]=se}}return new u({attributes:re,indices:ae,primitiveType:h.TRIANGLES,boundingSphere:new e.fromVertices(P)})}},m}),define("Workers/createWallGeometry",["../Core/defined","../Core/Ellipsoid","../Core/WallGeometry"],function(e,t,n){"use strict";function r(r,i){return e(i)&&(r=n.unpack(r,i)),r._ellipsoid=t.clone(r._ellipsoid),n.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as nt}from"./chunk-A2ZU5ON6.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import{a as _}from"./chunk-QNEABTP2.js";import"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as ot}from"./chunk-T53UE6JF.js";import{a as it}from"./chunk-RYO6NY7F.js";import{b as tt,c as et,d as S}from"./chunk-2HSPJH3C.js";import{d as I}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as R}from"./chunk-6QVIJ7JA.js";import{a as s,d as l}from"./chunk-AODSXSC5.js";import{a as J}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as w}from"./chunk-WHQYJFDH.js";import{a as P}from"./chunk-OYWUGDKS.js";import{e as r}from"./chunk-DRYFJEFT.js";var Q=new s,Y=new s,lt=new s,st=new s,pt=new s,ut=new s,ft=new s;function k(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions,o=t.maximumHeights,n=t.minimumHeights;if(!r(e))throw new P("options.positions is required.");if(r(o)&&o.length!==e.length)throw new P("options.positions and options.maximumHeights must have the same length.");if(r(n)&&n.length!==e.length)throw new P("options.positions and options.minimumHeights must have the same length.");let i=w(t.vertexFormat,_.DEFAULT),c=w(t.granularity,J.RADIANS_PER_DEGREE),a=w(t.ellipsoid,l.default);this._positions=e,this._minimumHeights=n,this._maximumHeights=o,this._vertexFormat=_.clone(i),this._granularity=c,this._ellipsoid=l.clone(a),this._workerName="createWallGeometry";let m=1+e.length*s.packedLength+2;r(n)&&(m+=n.length),r(o)&&(m+=o.length),this.packedLength=m+l.packedLength+_.packedLength+1}k.pack=function(t,e,o){if(!r(t))throw new P("value is required");if(!r(e))throw new P("array is required");o=w(o,0);let n,i=t._positions,c=i.length;for(e[o++]=c,n=0;n<c;++n,o+=s.packedLength)s.pack(i[n],e,o);let a=t._minimumHeights;if(c=r(a)?a.length:0,e[o++]=c,r(a))for(n=0;n<c;++n)e[o++]=a[n];let m=t._maximumHeights;if(c=r(m)?m.length:0,e[o++]=c,r(m))for(n=0;n<c;++n)e[o++]=m[n];return l.pack(t._ellipsoid,e,o),o+=l.packedLength,_.pack(t._vertexFormat,e,o),o+=_.packedLength,e[o]=t._granularity,e};var mt=l.clone(l.UNIT_SPHERE),rt=new _,V={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:mt,vertexFormat:rt,granularity:void 0};k.unpack=function(t,e,o){if(!r(t))throw new P("array is required");e=w(e,0);let n,i=t[e++],c=new Array(i);for(n=0;n<i;++n,e+=s.packedLength)c[n]=s.unpack(t,e);i=t[e++];let a;if(i>0)for(a=new Array(i),n=0;n<i;++n)a[n]=t[e++];i=t[e++];let m;if(i>0)for(m=new Array(i),n=0;n<i;++n)m[n]=t[e++];let q=l.unpack(t,e,mt);e+=l.packedLength;let H=_.unpack(t,e,rt);e+=_.packedLength;let f=t[e];return r(o)?(o._positions=c,o._minimumHeights=a,o._maximumHeights=m,o._ellipsoid=l.clone(q,o._ellipsoid),o._vertexFormat=_.clone(H,o._vertexFormat),o._granularity=f,o):(V.positions=c,V.minimumHeights=a,V.maximumHeights=m,V.granularity=f,new k(V))};k.fromConstantHeights=function(t){t=w(t,w.EMPTY_OBJECT);let e=t.positions;if(!r(e))throw new P("options.positions is required.");let o,n,i=t.minimumHeight,c=t.maximumHeight,a=r(i),m=r(c);if(a||m){let H=e.length;o=a?new Array(H):void 0,n=m?new Array(H):void 0;for(let f=0;f<H;++f)a&&(o[f]=i),m&&(n[f]=c)}let q={positions:e,maximumHeights:n,minimumHeights:o,ellipsoid:t.ellipsoid,vertexFormat:t.vertexFormat};return new k(q)};k.createGeometry=function(t){let e=t._positions,o=t._minimumHeights,n=t._maximumHeights,i=t._vertexFormat,c=t._granularity,a=t._ellipsoid,m=nt.computePositions(a,e,n,o,c,!0);if(!r(m))return;let q=m.bottomPositions,H=m.topPositions,f=m.numCorners,B=H.length,y=B*2,h=i.position?new Float64Array(y):void 0,b=i.normal?new Float32Array(y):void 0,x=i.tangent?new Float32Array(y):void 0,F=i.bitangent?new Float32Array(y):void 0,M=i.st?new Float32Array(y/3*2):void 0,v=0,T=0,C=0,z=0,W=0,g=ft,d=ut,A=pt,Z=!0;B/=3;let p,j=0,ct=1/(B-f-1);for(p=0;p<B;++p){let E=p*3,u=s.fromArray(H,E,Q),U=s.fromArray(q,E,Y);if(i.position&&(h[v++]=U.x,h[v++]=U.y,h[v++]=U.z,h[v++]=u.x,h[v++]=u.y,h[v++]=u.z),i.st&&(M[W++]=j,M[W++]=0,M[W++]=j,M[W++]=1),i.normal||i.tangent||i.bitangent){let N=s.clone(s.ZERO,st),K=s.subtract(u,a.geodeticSurfaceNormal(u,Y),Y);if(p+1<B&&(N=s.fromArray(H,E+3,st)),Z){let G=s.subtract(N,u,lt),at=s.subtract(K,u,Q);g=s.normalize(s.cross(at,G,g),g),Z=!1}s.equalsEpsilon(u,N,J.EPSILON10)?Z=!0:(j+=ct,i.tangent&&(d=s.normalize(s.subtract(N,u,d),d)),i.bitangent&&(A=s.normalize(s.cross(g,d,A),A))),i.normal&&(b[T++]=g.x,b[T++]=g.y,b[T++]=g.z,b[T++]=g.x,b[T++]=g.y,b[T++]=g.z),i.tangent&&(x[z++]=d.x,x[z++]=d.y,x[z++]=d.z,x[z++]=d.x,x[z++]=d.y,x[z++]=d.z),i.bitangent&&(F[C++]=A.x,F[C++]=A.y,F[C++]=A.z,F[C++]=A.x,F[C++]=A.y,F[C++]=A.z)}}let D=new it;i.position&&(D.position=new S({componentDatatype:R.DOUBLE,componentsPerAttribute:3,values:h})),i.normal&&(D.normal=new S({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:b})),i.tangent&&(D.tangent=new S({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:x})),i.bitangent&&(D.bitangent=new S({componentDatatype:R.FLOAT,componentsPerAttribute:3,values:F})),i.st&&(D.st=new S({componentDatatype:R.FLOAT,componentsPerAttribute:2,values:M}));let $=y/3;y-=6*(f+1);let L=ot.createTypedArray($,y),O=0;for(p=0;p<$-2;p+=2){let E=p,u=p+2,U=s.fromArray(h,E*3,Q),N=s.fromArray(h,u*3,Y);if(s.equalsEpsilon(U,N,J.EPSILON10))continue;let K=p+1,G=p+3;L[O++]=K,L[O++]=E,L[O++]=G,L[O++]=G,L[O++]=E,L[O++]=u}return new et({attributes:D,indices:L,primitiveType:tt.TRIANGLES,boundingSphere:new I.fromVertices(h)})};var X=k;function ht(t,e){return r(e)&&(t=X.unpack(t,e)),t._ellipsoid=l.clone(t._ellipsoid),X.createGeometry(t)}var Ot=ht;export{Ot as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js b/app/plot_app/static/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js index ceff555ae..8eeea6739 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/createWallOutlineGeometry.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,E=i.z,m=l*l*d*d,_=f*f*p*p,y=h*h*E*E,T=m+_+y,R=Math.sqrt(1/T),v=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(v,c):void 0;var A=u.x,g=u.y,S=u.z,O=o;O.x=v.x*A*2,O.y=v.y*g*2,O.z=v.z*S*2;var I,M,N,w,x,C,P,U,D,L,F,b=(1-R)*e.magnitude(n)/(.5*e.magnitude(O)),B=0;do{b-=B,N=1/(1+b*A),w=1/(1+b*g),x=1/(1+b*S),C=N*N,P=w*w,U=x*x,D=C*N,L=P*w,F=U*x,I=m*C+_*P+y*U-1,M=m*D*A+_*L*g+y*F*S;B=I/(-2*M)}while(Math.abs(I)>r.EPSILON12);return t(c)?(c.x=l*N,c.y=f*w,c.z=h*x,c):new e(l*N,f*w,h*x)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,E=r(n)?n.oneOverRadiiSquared:h,m=r(n)?n._centerToleranceSquared:d,_=o(t,p,E,m,c);if(r(_)){var y=e.multiplyComponents(_,E,s);y=e.normalize(y,y);var T=e.subtract(t,_,l),R=Math.atan2(y.y,y.x),v=Math.asin(y.z),A=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=v,i.height=A,i):new u(R,v,A)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,E=new e,m=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,E);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,m),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(E[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(E[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=E[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,m=e[s.getElementIndex(h,h)],_=e[s.getElementIndex(f,f)],y=e[s.getElementIndex(h,f)],T=(m-_)/2/y;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,E=2*(i-h),m=2*(a+l),_=2*(i+h),y=-n+u-f+d,T=2*(c-o),R=2*(a-l),v=2*(c+o),A=-n-u+f+d;return r(t)?(t[0]=p,t[1]=_,t[2]=R,t[3]=E,t[4]=y,t[5]=v,t[6]=m,t[7]=T,t[8]=A,t):new s(p,E,m,_,y,T,R,v,A)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,E=-c*i+a*o*u,m=-o,_=c*n,y=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=m,t[3]=f,t[4]=p,t[5]=_,t[6]=h,t[7]=E,t[8]=y,t):new s(l,f,h,d,p,E,m,_,y)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],E=[2,2,1],m=new s,_=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={});for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,m),s.transpose(m,_),s.multiply(h,m,h),s.multiply(_,h,h),s.multiply(o,m,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){ -return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,E,m){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(E,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(m,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,E=t.y*t.w,m=t.z*t.z,_=t.z*t.w,y=t.w*t.w,T=s-d-m+y,R=2*(c-_),v=2*(f+E),A=2*(c+_),g=-s+d-m+y,S=2*(p-h),O=2*(f-E),I=2*(p+h),M=-s-d+m+y;return r[0]=T*a,r[1]=A*a,r[2]=O*a,r[3]=0,r[4]=R*o,r[5]=g*o,r[6]=I*o,r[7]=0,r[8]=v*u,r[9]=S*u,r[10]=M*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,E=f.y,m=f.z,_=d.x,y=d.y,T=d.z,R=r.x,v=r.y,A=r.z,g=u*-R+s*-v+c*-A,S=_*-R+y*-v+T*-A,O=p*R+E*v+m*A;return i(n)?(n[0]=u,n[1]=_,n[2]=-p,n[3]=0,n[4]=s,n[5]=y,n[6]=-E,n[7]=0,n[8]=c,n[9]=T,n[10]=-m,n[11]=0,n[12]=g,n[13]=S,n[14]=O,n[15]=1,n):new l(u,s,c,g,_,y,T,S,-p,-E,-m,O,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,E=a+c,m=o+l,_=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=E,i[13]=m,i[14]=_,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var E=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],E)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],E)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],E)),n};var m=new e;l.getMaximumScale=function(t){return l.getScale(t,m),e.maximumComponent(m)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],E=e[12],m=e[13],_=e[14],y=e[15],T=t[0],R=t[1],v=t[2],A=t[3],g=t[4],S=t[5],O=t[6],I=t[7],M=t[8],N=t[9],w=t[10],x=t[11],C=t[12],P=t[13],U=t[14],D=t[15],L=r*T+u*R+f*v+E*A,F=i*T+s*R+h*v+m*A,b=a*T+c*R+d*v+_*A,B=o*T+l*R+p*v+y*A,q=r*g+u*S+f*O+E*I,z=i*g+s*S+h*O+m*I,G=a*g+c*S+d*O+_*I,W=o*g+l*S+p*O+y*I,V=r*M+u*N+f*w+E*x,X=i*M+s*N+h*w+m*x,H=a*M+c*N+d*w+_*x,Y=o*M+l*N+p*w+y*x,k=r*C+u*P+f*U+E*D,j=i*C+s*P+h*U+m*D,Z=a*C+c*P+d*U+_*D,K=o*C+l*P+p*U+y*D;return n[0]=L,n[1]=F,n[2]=b,n[3]=B,n[4]=q,n[5]=z,n[6]=G,n[7]=W,n[8]=V,n[9]=X,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],E=t[0],m=t[1],_=t[2],y=t[4],T=t[5],R=t[6],v=t[8],A=t[9],g=t[10],S=t[12],O=t[13],I=t[14],M=r*E+o*m+c*_,N=i*E+u*m+l*_,w=a*E+s*m+f*_,x=r*y+o*T+c*R,C=i*y+u*T+l*R,P=a*y+s*T+f*R,U=r*v+o*A+c*g,D=i*v+u*A+l*g,L=a*v+s*A+f*g,F=r*S+o*O+c*I+h,b=i*S+u*O+l*I+d,B=a*S+s*O+f*I+p;return n[0]=M,n[1]=N,n[2]=w,n[3]=0,n[4]=x,n[5]=C,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=L,n[11]=0,n[12]=F,n[13]=b,n[14]=B,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],E=t[3],m=t[4],_=t[5],y=t[6],T=t[7],R=t[8],v=r*h+o*d+c*p,A=i*h+u*d+l*p,g=a*h+s*d+f*p,S=r*E+o*m+c*_,O=i*E+u*m+l*_,I=a*E+s*m+f*_,M=r*y+o*T+c*R,N=i*y+u*T+l*R,w=a*y+s*T+f*R;return n[0]=v,n[1]=A,n[2]=g,n[3]=0,n[4]=S,n[5]=O,n[6]=I,n[7]=0,n[8]=M,n[9]=N,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var _=new e;l.multiplyByUniformScale=function(e,t,n){return _.x=t,_.y=t,_.z=t,l.multiplyByScale(e,_,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var y=new s,T=new s,R=new t,v=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],E=e[2],m=e[6],_=e[10],A=e[14],g=e[3],S=e[7],O=e[11],I=e[15],M=_*I,N=A*O,w=m*I,x=A*S,C=m*O,P=_*S,U=E*I,D=A*g,L=E*O,F=_*g,b=E*S,B=m*g,q=M*h+x*d+C*p-(N*h+w*d+P*p),z=N*f+U*d+F*p-(M*f+D*d+L*p),G=w*f+D*h+b*p-(x*f+U*h+B*p),W=P*f+L*h+B*d-(C*f+F*h+b*d),V=N*i+w*a+P*o-(M*i+x*a+C*o),X=M*r+D*a+L*o-(N*r+U*a+F*o),H=x*r+U*i+B*o-(w*r+D*i+b*o),Y=C*r+F*i+b*a-(P*r+L*i+B*a);M=a*p,N=o*d,w=i*p,x=o*h,C=i*d,P=a*h,U=r*p,D=o*f,L=r*d,F=a*f,b=r*h,B=i*f;var k=M*S+x*O+C*I-(N*S+w*O+P*I),j=N*g+U*O+F*I-(M*g+D*O+L*I),Z=w*g+D*S+b*I-(x*g+U*S+B*I),K=P*g+L*S+B*O-(C*g+F*S+b*O),J=w*_+P*A+N*m-(C*A+M*m+x*_),Q=L*A+M*E+D*_-(U*_+F*A+N*E),$=U*m+B*A+x*E-(b*A+w*E+D*m),ee=b*_+C*E+F*m-(L*m+B*_+P*E),te=r*q+i*z+a*G+o*W;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,y),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),v))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=q*te,n[1]=z*te,n[2]=G*te,n[3]=W*te,n[4]=V*te,n[5]=X*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,E=-a*f-o*h-u*d,m=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=E,t[14]=m,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,E=e.length;p<E;p++){var m=t.cartesianToCartographic(e[p]);o=Math.min(o,m.longitude),c=Math.max(c,m.longitude),h=Math.min(h,m.latitude),d=Math.max(d,m.latitude);var _=m.longitude>=0?m.longitude:m.longitude+u.TWO_PI;l=Math.min(l,_),f=Math.max(f,_)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,E=c;E.height=i,E.longitude=p,E.latitude=f,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=h,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.latitude=f<0?f:h>0?h:0;for(var m=1;m<8;++m)E.longitude=-Math.PI+m*u.PI_OVER_TWO,s.contains(e,E)&&(o[l]=t.cartographicToCartesian(E,o[l]),l++);return 0===E.latitude&&(E.longitude=p,o[l]=t.cartographicToCartesian(E,o[l]),l++,E.longitude=d,o[l]=t.cartographicToCartesian(E,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,E=new e,m=new e,_=new e,y=new e,T=new e,R=new e,v=new e,A=new e,g=new e,S=new e,O=new e,I=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,E),s=e.clone(a,m),c=e.clone(a,_),l=e.clone(a,y),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var I=a.x,M=a.y,N=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),M<u.y&&e.clone(a,u),M>l.y&&e.clone(a,l),N<s.z&&e.clone(a,s),N>f.z&&e.clone(a,f)}var w=e.magnitudeSquared(e.subtract(c,o,v)),x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=o,U=c,D=w;x>D&&(D=x,P=u,U=l),C>D&&(D=C,P=s,U=f);var L=A;L.x=.5*(P.x+U.x),L.y=.5*(P.y+U.y),L.z=.5*(P.z+U.z);var F=e.magnitudeSquared(e.subtract(U,L,v)),b=Math.sqrt(F),B=g;B.x=o.x,B.y=u.y,B.z=s.z;var q=S;q.x=c.x,q.y=l.y,q.z=f.z;var z=e.midpoint(B,q,O),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var W=e.magnitude(e.subtract(a,z,v));W>G&&(G=W);var V=e.magnitudeSquared(e.subtract(a,L,v));if(V>F){var X=Math.sqrt(V);b=.5*(b+X),F=b*b;var H=X-b;L.x=(b*L.x+H*a.x)/X,L.y=(b*L.y+H*a.y)/X,L.z=(b*L.z+H*a.z)/X}}return b<G?(e.clone(L,n.center),n.radius=b):(e.clone(z,n.center),n.radius=G),n};var M=new o,N=new e,w=new e,x=new t,C=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,M),h.southwest(t,x),x.height=a,h.northeast(t,C),C.height=o;var s=n.project(x,N),c=n.project(C,w),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var E=u.center;return E.x=s.x+.5*l,E.y=s.y+.5*f,E.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,E),f=e.clone(u,m),h=e.clone(u,_),I=e.clone(u,y),M=e.clone(u,T),N=t.length;for(s=0;s<N;s+=a){var w=t[s]+n.x,x=t[s+1]+n.y,C=t[s+2]+n.z;u.x=w,u.y=x,u.z=C,w<c.x&&e.clone(u,c),w>h.x&&e.clone(u,h),x<l.y&&e.clone(u,l),x>I.y&&e.clone(u,I),C<f.z&&e.clone(u,f),C>M.z&&e.clone(u,M)}var P=e.magnitudeSquared(e.subtract(h,c,v)),U=e.magnitudeSquared(e.subtract(I,l,v)),D=e.magnitudeSquared(e.subtract(M,f,v)),L=c,F=h,b=P;U>b&&(b=U,L=l,F=I),D>b&&(b=D,L=f,F=M);var B=A;B.x=.5*(L.x+F.x),B.y=.5*(L.y+F.y),B.z=.5*(L.z+F.z);var q=e.magnitudeSquared(e.subtract(F,B,v)),z=Math.sqrt(q),G=g;G.x=c.x,G.y=l.y,G.z=f.z;var W=S;W.x=h.x,W.y=I.y,W.z=M.z;var V=e.midpoint(G,W,O),X=0;for(s=0;s<N;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,V,v));H>X&&(X=H);var Y=e.magnitudeSquared(e.subtract(u,B,v));if(Y>q){var k=Math.sqrt(Y);z=.5*(z+k),q=z*z;var j=k-z;B.x=(z*B.x+j*u.x)/k,B.y=(z*B.y+j*u.y)/k,B.z=(z*B.z+j*u.z)/k}}return z<X?(e.clone(B,o.center),o.radius=z):(e.clone(V,o.center),o.radius=X),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,E),c=e.clone(a,m),l=e.clone(a,_),f=e.clone(a,y),h=e.clone(a,T),I=t.length;for(o=0;o<I;o+=3){var M=t[o]+n[o],N=t[o+1]+n[o+1],w=t[o+2]+n[o+2];a.x=M,a.y=N,a.z=w,M<u.x&&e.clone(a,u),M>l.x&&e.clone(a,l),N<s.y&&e.clone(a,s),N>f.y&&e.clone(a,f),w<c.z&&e.clone(a,c),w>h.z&&e.clone(a,h)}var x=e.magnitudeSquared(e.subtract(l,u,v)),C=e.magnitudeSquared(e.subtract(f,s,v)),P=e.magnitudeSquared(e.subtract(h,c,v)),U=u,D=l,L=x;C>L&&(L=C,U=s,D=f),P>L&&(L=P,U=c,D=h);var F=A;F.x=.5*(U.x+D.x),F.y=.5*(U.y+D.y),F.z=.5*(U.z+D.z);var b=e.magnitudeSquared(e.subtract(D,F,v)),B=Math.sqrt(b),q=g;q.x=u.x,q.y=s.y,q.z=c.z;var z=S;z.x=l.x,z.y=f.y,z.z=h.z;var G=e.midpoint(q,z,O),W=0;for(o=0;o<I;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var V=e.magnitude(e.subtract(a,G,v));V>W&&(W=V);var X=e.magnitudeSquared(e.subtract(a,F,v));if(X>b){var H=Math.sqrt(X);B=.5*(B+H),b=B*B;var Y=H-B;F.x=(B*F.x+Y*a.x)/H,F.y=(B*F.y+Y*a.y)/H,F.z=(B*F.z+Y*a.z)/H}}return B<W?(e.clone(F,r.center),r.radius=B):(e.clone(G,r.center),r.radius=W),r},d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,L=new e,F=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,L),u=l.getColumn(r,2,F);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var b=new e,B=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,b),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,B);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var q=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,q));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var z=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,z);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var W=new e,V=new e,X=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,W),c=e.cross(e.UNIT_Z,s,V);e.normalize(c,c);var l=e.cross(s,c,X);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,E=p[0];e.add(s,l,E),e.add(E,c,E),E=p[1],e.add(s,l,E),e.add(E,h,E),E=p[2],e.add(s,f,E),e.add(E,h,E),E=p[3],e.add(s,f,E),e.add(E,c,E),e.negate(s,s),E=p[4],e.add(s,l,E),e.add(E,c,E),E=p[5],e.add(s,l,E),e.add(E,h,E),E=p[6],e.add(s,f,E),e.add(E,h,E),E=p[7],e.add(s,f,E),e.add(E,c,E);for(var m=p.length,_=0;_<m;++_){var y=p[_];e.add(o,y,y);var T=a.cartesianToCartographic(y,k);n.project(T,y)}i=d.fromPoints(p,i),o=i.center;var R=o.x,v=o.y,A=o.z;return o.x=A,o.y=R,o.z=v,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen", -"function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return E(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=_,E(l,e),f=l=v,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return m(2,arguments),e(t,function(t){function u(e){E(e)}function s(e){p(e)}var c,l,f,h,d,p,E,m,y,T;if(y=t.length>>>0,c=Math.max(0,Math.min(n,y)),f=[],l=y-c+1,h=[],d=o(),c)for(m=d.progress,E=function(e){h.push(e),--l||(p=E=_,d.reject(h))},p=function(e){f.push(e),--c||(p=E=_,d.resolve(f))},T=0;T<y;++T)T in t&&e(t[T],s,u,m);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return m(1,arguments),h(e,y).then(t,n,r)}function f(){return h(arguments,y)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function E(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function _(){}function y(e){return e}var T,R,v;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(v,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(v,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(O)&&(O=!1,!E())){var e=/ Chrome\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(O=!0,I=o(e[1]))}return O}function s(){return u()&&I}function c(){if(!t(M)&&(M=!1,!u()&&!E()&&/ Safari\/[\.0-9]+/.test(S.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(M=!0,N=o(e[1]))}return M}function l(){return c()&&N}function f(){if(!t(w)){w=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(S.userAgent);null!==e&&(w=!0,x=o(e[1]),x.isNightly=!!e[2])}return w}function h(){return f()&&x}function d(){if(!t(C)){C=!1;var e;"Microsoft Internet Explorer"===S.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1])):"Netscape"===S.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(S.userAgent))&&(C=!0,P=o(e[1]))}return C}function p(){return d()&&P}function E(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function m(){return E()&&D}function _(){if(!t(L)){L=!1;var e=/Firefox\/([\.0-9]+)/.exec(S.userAgent);null!==e&&(L=!0,F=o(e[1]))}return L}function y(){return t(b)||(b=/Windows/i.test(S.appVersion)),b}function T(){return _()&&F}function R(){return t(B)||(B=!_()&&"undefined"!=typeof PointerEvent&&(!t(S.pointerEnabled)||S.pointerEnabled)),B}function v(){if(!t(z)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;z=t(n)&&""!==n,z&&(q=n)}return z}function A(){return v()?q:void 0}function g(){return g._result}var S;S="undefined"!=typeof navigator?navigator:{};var O,I,M,N,w,x,C,P,U,D,L,F,b,B,q,z;g._promise=void 0,g._result=void 0,g.initialize=function(){if(t(g._promise))return g._promise;var e=a.defer();if(g._promise=e.promise,E())return g._result=!1,e.resolve(g._result),e.promise;var n=new Image;return n.onload=function(){g._result=n.width>0&&n.height>0,e.resolve(g._result)},n.onerror=function(){g._result=!1,e.resolve(g._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(g,{initialized:{get:function(){return t(g._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var W={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:E,edgeVersion:m,isFirefox:_,firefoxVersion:T,isWindows:y,hardwareConcurrency:e(S.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:v,supportsWebP:g,imageRenderingValue:A,typedArrayTypes:G};return W.supportsFullscreen=function(){return i.supportsFullscreen()},W.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},W.supportsWebWorkers=function(){return"undefined"!=typeof Worker},W.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!W.isEdge()},W}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/GeometryOffsetAttribute",["../Core/freezeObject"],function(e){"use strict";return e({NONE:0,TOP:1,ALL:2})}),define("Core/GeometryType",["./freezeObject"],function(e){"use strict";return e({NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3})}),define("Core/Matrix2",["./Cartesian2","./Check","./defaultValue","./defined","./defineProperties","./freezeObject"],function(e,t,n,r,i,a){"use strict";function o(e,t,r,i){this[0]=n(e,0),this[1]=n(r,0),this[2]=n(t,0),this[3]=n(i,0)}o.packedLength=4,o.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t},o.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i},o.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new o(e[0],e[2],e[1],e[3])},o.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new o),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i},o.fromColumnMajorArray=function(e,t){return o.clone(e,t)},o.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new o(e[0],e[1],e[2],e[3])},o.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new o(e.x,0,0,e.y)},o.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new o(e,0,0,e)},o.fromRotation=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new o(n,-i,i,n)},o.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]},o.getElementIndex=function(e,t){return 2*e+t},o.getColumn=function(e,t,n){var r=2*t,i=e[r],a=e[r+1];return n.x=i,n.y=a,n},o.setColumn=function(e,t,n,r){r=o.clone(e,r);var i=2*t;return r[i]=n.x,r[i+1]=n.y,r},o.getRow=function(e,t,n){var r=e[t],i=e[t+2];return n.x=r,n.y=i,n},o.setRow=function(e,t,n,r){return r=o.clone(e,r),r[t]=n.x,r[t+2]=n.y,r};var u=new e;o.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],u)),n.y=e.magnitude(e.fromElements(t[2],t[3],u)),n};var s=new e;return o.getMaximumScale=function(t){return o.getScale(t,s),e.maximumComponent(s)},o.multiply=function(e,t,n){var r=e[0]*t[0]+e[2]*t[1],i=e[0]*t[2]+e[2]*t[3],a=e[1]*t[0]+e[3]*t[1],o=e[1]*t[2]+e[3]*t[3];return n[0]=r,n[1]=a,n[2]=i,n[3]=o,n},o.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n},o.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n},o.multiplyByVector=function(e,t,n){var r=e[0]*t.x+e[2]*t.y,i=e[1]*t.x+e[3]*t.y;return n.x=r,n.y=i,n},o.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n},o.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n},o.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t},o.transpose=function(e,t){var n=e[0],r=e[2],i=e[1],a=e[3];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t},o.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t},o.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]},o.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]},o.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n},o.IDENTITY=a(new o(1,0,0,1)),o.ZERO=a(new o(0,0,0,0)),o.COLUMN0ROW0=0,o.COLUMN0ROW1=1,o.COLUMN1ROW0=2,o.COLUMN1ROW1=3,i(o.prototype,{length:{get:function(){return o.packedLength}}}),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t){return o.equalsEpsilon(this,e,t)},o.prototype.toString=function(){return"("+this[0]+", "+this[2]+")\n("+this[1]+", "+this[3]+")"},o}),define("Core/PrimitiveType",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={POINTS:t.POINTS,LINES:t.LINES,LINE_LOOP:t.LINE_LOOP,LINE_STRIP:t.LINE_STRIP,TRIANGLES:t.TRIANGLES,TRIANGLE_STRIP:t.TRIANGLE_STRIP,TRIANGLE_FAN:t.TRIANGLE_FAN,validate:function(e){return e===n.POINTS||e===n.LINES||e===n.LINE_LOOP||e===n.LINE_STRIP||e===n.TRIANGLES||e===n.TRIANGLE_STRIP||e===n.TRIANGLE_FAN}};return e(n)}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],E=h+d+p;if(E>0)n=Math.sqrt(E+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var m=l,_=0;d>h&&(_=1),p>h&&p>d&&(_=2);var y=m[_],T=m[y];n=Math.sqrt(e[u.getElementIndex(_,_)]-e[u.getElementIndex(y,y)]-e[u.getElementIndex(T,T)]+1);var R=f;R[_]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,y)]-e[u.getElementIndex(y,T)])*n,R[y]=(e[u.getElementIndex(y,_)]+e[u.getElementIndex(_,y)])*n,R[T]=(e[u.getElementIndex(T,_)]+e[u.getElementIndex(_,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,E=new s;s.fromHeadingPitchRoll=function(t,n){return E=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,E,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h), -s.multiply(d,n,n)};var m=new e,_=new e,y=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),y),s.multiply(y,R,y),y.w<0&&s.negate(y,y),s.computeAxis(y,m);var u=s.computeAngle(y);r[o]=m.x*u,r[o+1]=m.y*u,r[o+2]=m.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,_);var u=e.magnitude(_);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,y):s.fromAxisAngle(_,u,y),s.multiply(y,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var v=new s;s.lerp=function(e,t,n,r){return v=s.multiplyByScalar(t,n,v),r=s.multiplyByScalar(e,1-n,r),s.add(v,r,r)};var A=new s,g=new s,S=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=A=s.negate(t,A)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return g=s.multiplyByScalar(e,Math.sin((1-n)*u),g),S=s.multiplyByScalar(a,Math.sin(n*u),S),r=s.add(g,S,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var O=new e,I=new e,M=new s,N=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,M);s.multiply(a,r,N);var o=s.log(N,O);s.multiply(a,t,N);var u=s.log(N,I);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,M),s.multiply(n,M,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,M),u=s.slerp(n,r,i,N);return s.slerp(o,u,2*i*(1-i),a)};for(var w=new s,x=1.9011074535173003,C=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],L=0;L<7;++L){var F=L+1,b=2*F+1;C[L]=1/(F*b),P[L]=F/b}return C[7]=x/136,P[7]=8*x/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(C[f]*c-P[f])*o,D[f]=(C[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,w);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,M),u=s.fastSlerp(n,r,i,N);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,E,m,_;if("%%"==e)return"%";for(var y=!1,T="",R=!1,v=!1,A=" ",g=s.length,S=0;s&&S<g;S++)switch(s.charAt(S)){case" ":T=" ";break;case"+":T="+";break;case"-":y=!0;break;case"'":A=s.charAt(S+1);break;case"0":R=!0;break;case"#":v=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,y=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,_=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(_),y,c,f,R,A);case"c":return u(String.fromCharCode(+_),y,c,f,R);case"b":return o(_,2,v,y,c,f,R);case"o":return o(_,8,v,y,c,f,R);case"x":return o(_,16,v,y,c,f,R);case"X":return o(_,16,v,y,c,f,R).toUpperCase();case"u":return o(_,10,v,y,c,f,R);case"i":case"d":return d=+_||0,d=Math.round(d-d%1),p=d<0?"-":T,_=p+i(String(Math.abs(d)),f,"0",!1),a(_,p,y,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+_,p=d<0?"-":T,E=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],m=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],_=p+Math.abs(d)[E](f),a(_,p,y,c,R)[m]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return E.compare(e.julianDate,t.julianDate)}function f(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){E.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}E.addSeconds(e,i,e)}function h(e,n){y.julianDate=e;var r=E.leapSeconds,i=t(r,y,l);if(i<0&&(i=~i),0===i)return E.addSeconds(e,-r[0].offset,n);if(i>=r.length)return E.addSeconds(e,-r[i-1].offset,n);var a=E.secondsDifference(r[i].julianDate,e);return 0===a?E.addSeconds(e,-r[i].offset,n):a<=1?void 0:E.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function E(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var m=new a,_=[31,28,31,30,31,30,31,31,30,31,30,31],y=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,v=/^(\d{4})-?(\d{3})$/,A=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,g=/^(\d{4})-?(\d{2})-?(\d{2})$/,S=/([Z+\-])?(\d{2})?:?(\d{2})?$/,O=/^(\d{2})(\.\d+)?/.source+S.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+S.source,M=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+S.source;E.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new E(n[0],n[1],c.UTC)},E.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,m=0,y=0,S=0,N=u[0],w=u[1];if(null!==(u=N.match(g)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=N.match(R)))n=+u[1],s=+u[2];else if(null!==(u=N.match(T)))n=+u[1];else{var x;if(null!==(u=N.match(v)))n=+u[1],x=+u[2],a=o(n);else if(null!==(u=N.match(A))){n=+u[1];var C=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));x=7*C+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(x),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(w)){u=w.match(M),null!==u?(h=+u[1],m=+u[2],y=+u[3],S=1e3*+(u[4]||0),D=5):(u=w.match(I),null!==u?(h=+u[1],m=+u[2],y=60*+(u[3]||0),D=4):null!==(u=w.match(O))&&(h=+u[1],m=60*+(u[2]||0),D=3));var L=u[D],F=+u[D+1],b=+(u[D+2]||0);switch(L){case"+":h-=F,m-=b;break;case"-":h+=F,m+=b;break;case"Z":break;default:m+=new Date(Date.UTC(n,s-1,l,h,m)).getTimezoneOffset()}}var B=60===y;for(B&&y--;m>=60;)m-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:_[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:_[s-1];for(;m<0;)m+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:_[s-1],l+=i;var q=p(n,s,l,h,m,y,S);return r(t)?(d(q[0],q[1],t),f(t)):t=new E(q[0],q[1],c.UTC),B&&E.addSeconds(t,1,t),t},E.now=function(e){return E.fromDate(new Date,e)};var N=new E(0,0,c.TAI);return E.toGregorianDate=function(e,t){var n=!1,i=h(e,N);r(i)||(E.addSeconds(e,-1,N),i=h(N,N),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var m=d+2-12*c|0,_=100*(l-49)+f+c|0,y=u/s.SECONDS_PER_HOUR|0,T=u-y*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var v=0|T,A=(T-v)/s.SECONDS_PER_MILLISECOND;return y+=12,y>23&&(y-=24),n&&(v+=1),r(t)?(t.year=_,t.month=m,t.day=p,t.hour=y,t.minute=R,t.second=v,t.millisecond=A,t.isLeapSecond=n,t):new a(_,m,p,y,R,v,A,n)},E.toDate=function(e){var t=E.toGregorianDate(e,m),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},E.toIso8601=function(t,n){var i=E.toGregorianDate(t,m),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},E.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new E(e.dayNumber,e.secondsOfDay,c.TAI)},E.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},E.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},E.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(E.secondsDifference(e,t))<=n},E.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},E.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},E.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},E.computeTaiMinusUtc=function(e){y.julianDate=e;var n=E.leapSeconds,r=t(n,y,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},E.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},E.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},E.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},E.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},E.lessThan=function(e,t){return E.compare(e,t)<0},E.lessThanOrEquals=function(e,t){return E.compare(e,t)<=0},E.greaterThan=function(e,t){return E.compare(e,t)>0},E.greaterThanOrEquals=function(e,t){return E.compare(e,t)>=0},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E.prototype.equalsEpsilon=function(e,t){return E.equalsEpsilon(this,e,t)},E.prototype.toString=function(){return E.toIso8601(this)},E.leapSeconds=[new u(new E(2441317,43210,c.TAI),10),new u(new E(2441499,43211,c.TAI),11),new u(new E(2441683,43212,c.TAI),12),new u(new E(2442048,43213,c.TAI),13),new u(new E(2442413,43214,c.TAI),14),new u(new E(2442778,43215,c.TAI),15),new u(new E(2443144,43216,c.TAI),16),new u(new E(2443509,43217,c.TAI),17),new u(new E(2443874,43218,c.TAI),18),new u(new E(2444239,43219,c.TAI),19),new u(new E(2444786,43220,c.TAI),20),new u(new E(2445151,43221,c.TAI),21),new u(new E(2445516,43222,c.TAI),22),new u(new E(2446247,43223,c.TAI),23),new u(new E(2447161,43224,c.TAI),24),new u(new E(2447892,43225,c.TAI),25),new u(new E(2448257,43226,c.TAI),26),new u(new E(2448804,43227,c.TAI),27),new u(new E(2449169,43228,c.TAI),28),new u(new E(2449534,43229,c.TAI),29),new u(new E(2450083,43230,c.TAI),30),new u(new E(2450630,43231,c.TAI),31),new u(new E(2451179,43232,c.TAI),32),new u(new E(2453736,43233,c.TAI),33),new u(new E(2454832,43234,c.TAI),34),new u(new E(2456109,43235,c.TAI),35),new u(new E(2457204,43236,c.TAI),36),new u(new E(2457754,43237,c.TAI),37)],E}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return O[e]<t}function E(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function m(e){return function(t){e.state!==l.CANCELLED&&(--v.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function _(e){return function(t){e.state!==l.CANCELLED&&(++v.numberOfFailedRequests,--v.numberOfActiveRequests,--O[e.serverKey],M.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function y(e){var t=E(e);return e.state=l.ACTIVE,S.push(e),++v.numberOfActiveRequests,++v.numberOfActiveRequestsEver,++O[e.serverKey],e.requestFunction().then(m(e)).otherwise(_(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++v.numberOfCancelledRequests,e.deferred.reject(),t&&(--v.numberOfActiveRequests,--O[e.serverKey],++v.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===v.numberOfActiveRequests&&v.lastNumberOfActiveRequests>0&&(v.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+v.numberOfAttemptedRequests),v.numberOfAttemptedRequests=0),v.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+v.numberOfCancelledRequests),v.numberOfCancelledRequests=0),v.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+v.numberOfCancelledActiveRequests),v.numberOfCancelledActiveRequests=0),v.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+v.numberOfFailedRequests),v.numberOfFailedRequests=0)),v.lastNumberOfActiveRequests=v.numberOfActiveRequests)}var v={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},A=20,g=new u({comparator:f});g.maximumLength=A,g.reserve(A);var S=[],O={},I="undefined"!=typeof document?new e(document.location.href):new e,M=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=M,a(h,{statistics:{get:function(){return v}},priorityHeapLength:{get:function(){return A},set:function(e){if(e<A)for(;g.length>e;){var t=g.pop();T(t)}A=e,g.maximumLength=e,g.reserve(e)}}}),h.update=function(){var e,t,n=0,r=S.length;for(e=0;e<r;++e)t=S[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(S[e-n]=t):++n;S.length-=n;var i=g.internalArray,a=g.length;for(e=0;e<a;++e)d(i[e]);g.resort();for(var o=Math.max(h.maximumRequests-S.length,0),u=0;u<o&&g.length>0;)t=g.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(y(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(I);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=O[r];return i(a)||(O[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return M.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++v.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return y(e);if(!(S.length>=h.maximumRequests)){d(e);var t=g.insert(e);if(i(t)){if(t===e)return;T(t)}return E(e)}}},h.clearForSpecs=function(){for(;g.length>0;){T(g.pop())}for(var e=S.length,t=0;t<e;++t)T(S[t]);S.length=0,O={},v.numberOfAttemptedRequests=0,v.numberOfActiveRequests=0,v.numberOfCancelledRequests=0,v.numberOfCancelledActiveRequests=0,v.numberOfFailedRequests=0,v.numberOfActiveRequestsEver=0,v.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return O[e]},h.requestHeap=g,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,_,y,T,R,v,A,g,S,O){"use strict";function I(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?x(a,t._queryParameters,r):a,e.query=void 0}function M(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=y(n):e.query=r[0]}function N(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function w(e){if(e.state===g.ISSUED||e.state===g.ACTIVE)throw new S("The Resource is already being fetched.");e.state=g.UNISSUED,e.deferred=void 0}function x(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function C(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=N(t.templateValues,{}),this._queryParameters=N(t.queryParameters,{}),this.headers=N(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0), -this._retryCount=0;var n=new e(t.url);I(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return C._Implementations.createImage(e,a,o,r,i),o.promise};var o=A.request(a);if(u(o))return o.otherwise(function(e){return a.state!==g.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},C._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=A.request(a);if(u(o))return o.otherwise(function(i){return a.state!==g.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=g.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function L(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function F(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return L(r,i);case"blob":var a=L(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function b(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(O.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function B(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function q(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new v(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new S("Error decompressing response.")):a.resolve(B(n,t))}):a.resolve(B(r,t))})}).on("error",function(e){a.reject(new v)}).end()}var z=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();C.createIfNeeded=function(e){return e instanceof C?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new C({url:e})};var G;C.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=C.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(C,{isBlobSupported:{get:function(){return z}}}),s(C.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);I(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return m(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return E(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),C.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&M(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},C.prototype.setQueryParameters=function(e,t){this._queryParameters=t?x(this._queryParameters,e,!1):x(e,this._queryParameters,!1)},C.prototype.appendQueryParameters=function(e){this._queryParameters=x(e,this._queryParameters,!0)},C.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},C.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);I(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},C.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},C.prototype.clone=function(e){return u(e)||(e=new C({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},C.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},C.prototype.appendForwardSlash=function(){this._url=n(this._url)},C.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},C.fetchArrayBuffer=function(e){return new C(e).fetchArrayBuffer()},C.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},C.fetchBlob=function(e){return new C(e).fetchBlob()},C.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(w(this.request),!z||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return C.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return C.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new C({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},C.fetchImage=function(e){return new C(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},C.prototype.fetchText=function(){return this.fetch({responseType:"text"})},C.fetchText=function(e){return new C(e).fetchText()},C.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},C.fetchJson=function(e){return new C(e).fetchJson()},C.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},C.fetchXML=function(e){return new C(e).fetchXML()},C.prototype.fetchJsonp=function(e){e=o(e,"callback"),w(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},C.fetchJsonp=function(e){return new C(e).fetchJsonp(e.callbackParameterName)},C.prototype._makeRequest=function(e){var n=this;w(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=C._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=A.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==g.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=g.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var W=/^data:(.*?)(;base64)?,(.*)$/;C.prototype.fetch=function(e){return e=N(e,{}),e.method="GET",this._makeRequest(e)},C.fetch=function(e){return new C(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.delete=function(e){return e=N(e,{}),e.method="DELETE",this._makeRequest(e)},C.delete=function(e){return new C(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},C.prototype.head=function(e){return e=N(e,{}),e.method="HEAD",this._makeRequest(e)},C.head=function(e){return new C(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.options=function(e){return e=N(e,{}),e.method="OPTIONS",this._makeRequest(e)},C.options=function(e){return new C(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.post=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},C.post=function(e){return new C(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.put=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},C.put=function(e){return new C(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C.prototype.patch=function(e,t){return r.defined("data",e),t=N(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},C.patch=function(e){return new C(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},C._Implementations={},C._Implementations.createImage=function(e,t,n,r,i){C.supportsImageBitmapOptions().then(function(r){return r&&i?C.fetchBlob({url:e}):void b(e,t,n)}).then(function(e){if(u(e))return C.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},C.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var V="undefined"==typeof XMLHttpRequest;return C._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=W.exec(e);if(null!==s)return void a.resolve(F(s,t));if(V)return void q(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(O.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new v(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new S("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new v)},c.send(r),c},C._Implementations.loadAndExecuteScript=function(e,t,n){return _(e,t).otherwise(n.reject)},C._DefaultImplementations={},C._DefaultImplementations.createImage=C._Implementations.createImage,C._DefaultImplementations.loadWithXhr=C._Implementations.loadWithXhr,C._DefaultImplementations.loadAndExecuteScript=C._Implementations.loadAndExecuteScript,C.DEFAULT=l(new C({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),C}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),E=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||E<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var m=e._samples=n.samples,_=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=E,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var y,T=e._addNewLeapSeconds,R=0,v=m.length;R<v;R+=e._columnCount){var A=m[R+i],g=m[R+E],S=A+l.MODIFIED_JULIAN_DATE_DIFFERENCE,O=new o(S,g,f.TAI);if(_.push(O),T){if(g!==y&&r(y)){var I=o.leapSeconds,M=t(I,O,d);if(M<0){var N=new u(O,g);I.splice(~M,0,N)}}y=g}}}function E(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function m(e,t,n){return t+e*(n-t)}function _(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return E(e,n,i,s,u),u;if(r.equals(l))return E(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],_=n[d+e._ut1MinusUtcSecondsColumn],y=_-p;if(y>.5||y<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=_:_-=R-T)}return u.xPoleWander=m(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=m(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=m(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=m(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=m(f,p,_),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),E=p||o.greaterThanOrEquals(h,e);if(d&&E)return s=u,!p&&h.equals(e)&&++s,l=s+1,_(this,a,this._samples,e,s,l,n),n}var m=t(a,e,o.compare,this._dateColumn);return m>=0?(m<a.length-1&&a[m+1].equals(e)&&++m,s=m,l=m):(l=~m,(s=l-1)<0&&(s=0)),this._lastIndex=s,_(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,E,m=a-s*this._stepSizeDays,_=this._work,y=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)_[p]=m-R[p];for(p=0;p<=u;++p){for(T[p]=1,E=0;E<=u;++E)E!==p&&(T[p]*=_[E]);T[p]*=y[p];var v=3*(s+p);n.x+=T[p]*d[v++],n.y+=T[p]*d[v++],n.s+=T[p]*d[v]}return n}}}},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E,m,_,y,T,R){"use strict";var v={},A={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},g={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},S={},O={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},I=new n,M=new n,N=new n;v.localFrameToFixedFrameGenerator=function(e,t){if(!A.hasOwnProperty(e)||!A[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=A[e][t],a=e+t;return u(S[a])?r=S[a]:(r=function(r,a,s){if(u(s)||(s=new y),m.equalsEpsilon(r.x,0,m.EPSILON14)&&m.equalsEpsilon(r.y,0,m.EPSILON14)){var c=m.sign(r.z);n.unpack(g[e],0,I),"east"!==e&&"west"!==e&&n.multiplyByScalar(I,c,I),n.unpack(g[t],0,M),"east"!==t&&"west"!==t&&n.multiplyByScalar(M,c,M),n.unpack(g[i],0,N),"east"!==i&&"west"!==i&&n.multiplyByScalar(N,c,N)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,O.up);var l=O.up,h=O.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,O.east),n.cross(l,h,O.north),n.multiplyByScalar(O.up,-1,O.down),n.multiplyByScalar(O.east,-1,O.west),n.multiplyByScalar(O.north,-1,O.south),I=O[e],M=O[t],N=O[i]}return s[0]=I.x,s[1]=I.y,s[2]=I.z,s[3]=0,s[4]=M.x,s[5]=M.y,s[6]=M.z,s[7]=0,s[8]=N.x,s[9]=N.y,s[10]=N.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},S[a]=r),r},v.eastNorthUpToFixedFrame=v.localFrameToFixedFrameGenerator("east","north"),v.northEastDownToFixedFrame=v.localFrameToFixedFrameGenerator("north","east"),v.northUpEastToFixedFrame=v.localFrameToFixedFrameGenerator("north","up"),v.northWestUpToFixedFrame=v.localFrameToFixedFrameGenerator("north","west");var w=new T,x=new n(1,1,1),C=new y;v.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,v.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,w),s=y.fromTranslationQuaternionRotationScale(n.ZERO,u,x,C);return a=i(e,r,a),y.multiply(a,s,a)};var P=new y,U=new _;v.headingPitchRollQuaternion=function(e,t,n,r,i){var a=v.headingPitchRollToFixedFrame(e,t,n,r,P),o=y.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),L=new n,F=new y,b=new y,B=new _,q=new T;v.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,v.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=y.getTranslation(e,L);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=y.inverseTransformation(r(a,t,F),F),c=y.setScale(e,D,b);c=y.setTranslation(c,n.ZERO,c),s=y.multiply(s,c,s);var l=T.fromRotationMatrix(y.getRotation(s,B),q);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var z=m.TWO_PI/86400,G=new E;v.computeTemeToPseudoFixedMatrix=function(e,t){G=E.addSeconds(e,-E.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*z%m.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new _(h,d,0,-d,h,0,0,0,1)},v.iau2006XysData=new d,v.earthOrientationParameters=c.NONE;v.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=v.iau2006XysData.preload(n,r,i,a),u=v.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},v.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new _);var n=v.computeFixedToIcrfMatrix(e,t);if(u(n))return _.transpose(n,t)};var W=new p(0,0,0),V=new l(0,0,0,0,0,0),X=new _,H=new _;v.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new _);var n=v.earthOrientationParameters.compute(e,V);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=v.iau2006XysData.computeXysRadians(r,i,W);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=X;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=_.fromRotationZ(-a.s,H),h=_.multiply(l,f,X),d=e.dayNumber,p=e.secondsOfDay-E.computeTaiMinusUtc(e)+n.ut1MinusUtc,y=d-2451545,T=p/R.SECONDS_PER_DAY,A=.779057273264+T+.00273781191135448*(y+T);A=A%1*m.TWO_PI;var g=_.fromRotationZ(A,H),S=_.multiply(h,g,X),O=Math.cos(n.xPoleWander),I=Math.cos(n.yPoleWander),M=Math.sin(n.xPoleWander),N=Math.sin(n.yPoleWander),w=r-2451545+i/R.SECONDS_PER_DAY;w/=36525;var x=-47e-6*w*m.RADIANS_PER_DEGREE/3600,C=Math.cos(x),P=Math.sin(x),U=H;return U[0]=O*C,U[1]=O*P,U[2]=M,U[3]=-I*P+N*M*C,U[4]=I*C+N*M*P,U[5]=-N*O,U[6]=-N*P-I*M*C,U[7]=N*C-I*M*P,U[8]=I*O,_.multiply(S,U,t)}}};var Y=new r;v.pointToWindowCoordinates=function(e,t,n,r){return r=v.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},v.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return y.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),y.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;v.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,m.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new _),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new y(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new _,te=new y,ne=new y;return v.basisTo2D=function(e,t,r){var i=y.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=v.eastNorthUpToFixedFrame(i,a,te),c=y.inverseTransformation(s,ne),l=y.getRotation(t,ee),f=y.multiplyByMatrix3(c,l,r);return y.multiply(K,f,r),y.setTranslation(r,u,r),r},v.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=v.eastNorthUpToFixedFrame(t,i,te),o=y.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=y.fromTranslation(s,te);return y.multiply(K,o,r),y.multiply(c,r,r),r},v}),define("Core/Geometry",["./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./GeometryOffsetAttribute","./GeometryType","./Matrix2","./Matrix3","./Matrix4","./PrimitiveType","./Quaternion","./Rectangle","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,E){"use strict";function m(e){e=i(e,i.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=i(e.primitiveType,h.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=i(e.geometryType,s.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}m.computeNumberOfVertices=function(e){var t=-1;for(var n in e.attributes)if(e.attributes.hasOwnProperty(n)&&a(e.attributes[n])&&a(e.attributes[n].values)){var r=e.attributes[n],i=r.values.length/r.componentsPerAttribute;t=i}return t};var _=new n,y=new t,T=new f,R=[new n,new n,new n],v=[new e,new e,new e],A=[new e,new e,new e],g=new t,S=new d,O=new f,I=new c;return m._textureCoordinateRotationPoints=function(r,i,a,o){var u,s=p.center(o,_),h=n.toCartesian(s,a,y),m=E.eastNorthUpToFixedFrame(h,a,T),M=f.inverse(m,T),N=v,w=R;w[0].longitude=o.west,w[0].latitude=o.south,w[1].longitude=o.west,w[1].latitude=o.north,w[2].longitude=o.east,w[2].latitude=o.south;var x=g;for(u=0;u<3;u++)n.toCartesian(w[u],a,x),x=f.multiplyByPointAsVector(M,x,x),N[u].x=x.x,N[u].y=x.y;var C=d.fromAxisAngle(t.UNIT_Z,-i,S),P=l.fromQuaternion(C,O),U=r.length,D=Number.POSITIVE_INFINITY,L=Number.POSITIVE_INFINITY,F=Number.NEGATIVE_INFINITY,b=Number.NEGATIVE_INFINITY;for(u=0;u<U;u++)x=f.multiplyByPointAsVector(M,r[u],x),x=l.multiplyByVector(P,x,x),D=Math.min(D,x.x),L=Math.min(L,x.y),F=Math.max(F,x.x),b=Math.max(b,x.y);var B=c.fromRotation(i,I),q=A;q[0].x=D,q[0].y=L,q[1].x=D,q[1].y=b,q[2].x=F,q[2].y=L;var z=N[0],G=N[2].x-z.x,W=N[1].y-z.y;for(u=0;u<3;u++){var V=q[u];c.multiplyByVector(B,V,V),V.x=(V.x-z.x)/G,V.y=(V.y-z.y)/W}var X=q[0],H=q[1],Y=q[2],k=new Array(6);return e.pack(X,k),e.pack(H,k,2),e.pack(Y,k,4),k},m}),define("Core/GeometryAttribute",["./defaultValue","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){t=e(t,e.EMPTY_OBJECT),this.componentDatatype=t.componentDatatype,this.componentsPerAttribute=t.componentsPerAttribute,this.normalize=e(t.normalize,!1),this.values=t.values}return r}),define("Core/GeometryAttributes",["./defaultValue"],function(e){"use strict";function t(t){t=e(t,e.EMPTY_OBJECT),this.position=t.position,this.normal=t.normal,this.st=t.st,this.bitangent=t.bitangent,this.tangent=t.tangent,this.color=t.color}return t}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){ -case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,E=d.y,m=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(E,o),c=Math.max(E,c),u=Math.min(m,u),l=Math.max(m,l)}var _=n.minimum;_.x=i,_.y=o,_.z=u;var y=n.maximum;return y.x=s,y.y=c,y.z=l,n.center=e.midpoint(_,y,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,E=o*c-u*s,m=u*c-d,_=4*p*m-E*E;if(_<0){var y,T,R;h*f>=l*d?(y=o,T=p,R=-2*u*p+o*E):(y=c,T=m,R=-c*E+2*s*m);var v=R<0?-1:1,A=-v*Math.abs(y)*Math.sqrt(-_);a=-R+A;var g=a/2,S=g<0?-Math.pow(-g,1/3):Math.pow(g,1/3),O=a===A?-S:-T/S;return i=T<=0?S+O:-R/(S*S+O*O+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var I=p,M=-2*u*p+o*E,N=m,w=-c*E+2*s*m,x=Math.sqrt(_),C=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*x,-M)/3);i=2*Math.sqrt(-I);var U=Math.cos(P);a=i*U;var D=i*(-U/2-C*Math.sin(P)),L=a+D>2*u?a-u:D-u,F=o,b=L/F;P=Math.abs(Math.atan2(c*x,-w)/3),i=2*Math.sqrt(-N),U=Math.cos(P),a=i*U,D=i*(-U/2-C*Math.sin(P));var B=-c,q=a+D<2*s?a+s:D+s,z=B/q,G=F*q,W=-L*q-F*B,V=L*B,X=(s*W-u*V)/(-u*W+s*G);return b<=X?b<=z?X<=z?[b,X,z]:[b,z,X]:[z,b,X]:b<=z?[X,b,z]:X<=z?[X,z,b]:[z,X,b]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var E,m=p[0],_=p[1];if(m>=0&&_>=0){var y=Math.sqrt(m),T=Math.sqrt(_);return[h-T,h-y,h+y,h+T]}if(m>=0&&_<0)return E=Math.sqrt(m),[h-E,h+E];if(m<0&&_>=0)return E=Math.sqrt(_),[h-E,h+E]}return[]}if(d>0){var R=Math.sqrt(d),v=(s+d-c/R)/2,A=(s+d+c/R)/2,g=r.computeRealRoots(1,R,v),S=r.computeRealRoots(1,-R,A);return 0!==g.length?(g[0]+=h,g[1]+=h,0!==S.length?(S[0]+=h,S[1]+=h,g[1]<=S[0]?[g[0],g[1],S[0],S[1]]:S[1]<=g[0]?[S[0],S[1],g[0],g[1]]:g[0]>=S[0]&&g[1]<=S[1]?[S[0],g[0],g[1],S[1]]:S[0]>=g[0]&&S[1]<=g[1]?[g[0],S[0],S[1],g[1]]:g[0]>S[0]&&g[0]<S[1]?[S[0],g[0],S[1],g[1]]:[g[0],S[0],g[1],S[1]]):g):0!==S.length?(S[0]+=h,S[1]+=h,S):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,E,m=d[0],_=i-m,y=_*_,T=t/2,R=_/2,v=y-4*o,A=y+4*Math.abs(o),g=c-4*m,S=c+4*Math.abs(m);if(m<0||v*S<g*A){var O=Math.sqrt(g);p=O/2,E=0===O?0:(t*R-a)/O}else{var I=Math.sqrt(v);p=0===I?0:(t*R-a)/I,E=I/2}var M,N;0===T&&0===p?(M=0,N=0):n.sign(T)===n.sign(p)?(M=T+p,N=m/M):(N=T-p,M=m/N);var w,x;0===R&&0===E?(w=0,x=0):n.sign(R)===n.sign(E)?(w=R+E,x=o/w):(x=R-E,w=o/x);var C=r.computeRealRoots(1,M,w),P=r.computeRealRoots(1,N,x);if(0!==C.length)return 0!==P.length?C[1]<=P[0]?[C[0],C[1],P[0],P[1]]:P[1]<=C[0]?[P[0],P[1],C[0],C[1]]:C[0]>=P[0]&&C[1]<=P[1]?[P[0],C[0],C[1],P[1]]:P[0]>=C[0]&&P[1]<=C[1]?[C[0],P[0],P[1],C[1]]:C[0]>P[0]&&C[0]<P[1]?[P[0],C[0],P[1],C[1]]:[C[0],P[0],C[1],P[1]]:C;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,y),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,E=f(h,d,p,A);if(r(E))return i.start=E.root0,i.stop=E.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,E=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),m=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,_=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),y=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===y&&0===_){if(l=s.computeRealRoots(p,E,m),0===l.length)return T;var R=l[0],v=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-v)),T.push(new e(i,a*R,a*v)),2===l.length){var A=l[1],g=Math.sqrt(Math.max(1-A*A,0));T.push(new e(i,a*A,a*-g)),T.push(new e(i,a*A,a*g))}return T}var S=y*y,O=_*_,I=p*p,M=y*_,N=I+O,w=2*(E*p+M),x=2*m*p+E*E-O+S,C=2*(m*E-M),P=m*m-S;if(0===N&&0===w&&0===x&&0===C)return T;l=c.computeRealRoots(N,w,x,C,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var L,F=l[D],b=F*F,B=Math.max(1-b,0),q=Math.sqrt(B);L=o.sign(p)===o.sign(m)?d(p*b+m,E*F,o.EPSILON12):o.sign(m)===o.sign(E*F)?d(p*b,E*F+m,o.EPSILON12):d(p*b+E*F,m,o.EPSILON12);var z=d(_*F,y,o.EPSILON15),G=L*z;G<0?T.push(new e(i,a*F,a*q)):G>0?T.push(new e(i,a*F,a*-q)):0!==q?(T.push(new e(i,a*F,a*-q)),T.push(new e(i,a*F,a*q)),++D):T.push(new e(i,a*F,a*q))}return T}var E={};E.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var m=new e,_=new e,y=new e,T=new e,R=new e;E.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,E=e.subtract(i,r,m),v=e.subtract(a,r,_),A=e.cross(p,v,y),g=e.dot(E,A);if(u){if(g<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,A))<0||l>g)return;if(c=e.cross(s,E,R),(f=e.dot(p,c))<0||l+f>g)return;h=e.dot(v,c)/g}else{if(Math.abs(g)<o.EPSILON6)return;var S=1/g;if(s=e.subtract(d,r,T),(l=e.dot(s,A)*S)<0||l>1)return;if(c=e.cross(s,E,R),(f=e.dot(p,c)*S)<0||l+f>1)return;h=e.dot(v,c)*S}return h},E.rayTriangle=function(t,n,i,a,o,u){var s=E.rayTriangleParametric(t,n,i,a,o);if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var v=new l;E.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=v;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=E.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var A={root0:0,root1:0};E.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var g=new l;E.lineSegmentSphere=function(t,n,i,a){var o=g;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var S=new e,O=new e;E.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,S),f=e.multiplyComponents(c,t.direction,O),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var E=s/i,m=r/s;return E<m?new a(E,m):{start:m,stop:E}}var _=Math.sqrt(r/i);return new a(_,_)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,M=new e,N=new e,w=new e,x=new e,C=new u,P=new u,U=new u,D=new u,L=new u,F=new u,b=new u,B=new e,q=new e,z=new t;E.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,I);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,w),d=e.normalize(e.cross(h,f,M),M),E=e.normalize(e.cross(f,d,N),N),m=C;m[0]=f.x,m[1]=f.y,m[2]=f.z,m[3]=d.x,m[4]=d.y,m[5]=d.z,m[6]=E.x,m[7]=E.y,m[8]=E.z;var _=u.transpose(m,P),y=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=L;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var v,A,g=u.multiply(u.multiply(_,T,F),R,F),S=u.multiply(u.multiply(g,y,b),m,b),O=u.multiplyByVector(g,i,x),G=p(S,e.negate(O,I),0,0,1),W=G.length;if(W>0){for(var V=e.clone(e.ZERO,q),X=Number.NEGATIVE_INFINITY,H=0;H<W;++H){v=u.multiplyByVector(y,u.multiplyByVector(m,G[H],B),B);var Y=e.normalize(e.subtract(v,i,w),w),k=e.dot(Y,a);k>X&&(X=k,V=e.clone(v,V))}var j=n.cartesianToCartographic(V,z);return X=o.clamp(X,0,1),A=e.magnitude(e.subtract(V,i,w))*Math.sqrt(1-X*X),A=c?-A:A,j.height=A,n.cartographicToCartesian(j,new e)}};var G=new e;return E.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},E.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return E.lineSegmentPlane(t,n,i,f),E.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return E.lineSegmentPlane(n,r,i,f),E.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return E.lineSegmentPlane(r,t,i,f),E.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return E.lineSegmentPlane(n,t,i,f),E.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return E.lineSegmentPlane(r,n,i,f),E.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return E.lineSegmentPlane(t,r,i,f),E.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},E}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function E(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,m)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,m));var i=n.fromCartesian4(f.getColumn(r,2,m));this._plane=h.fromPointNormal(e,i)}var m=new r;u(E.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var _=new e;E.fromPoints=function(t,n){return new E(e.fromPoints(t,_).center,n)};var y=new d,T=new n;E.prototype.projectPointOntoPlane=function(e,r){var i=y;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},E.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},E.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=y;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},E.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return E.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},E.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},E}),define("ThirdParty/earcut-2.1.1",[],function(){"use strict";function e(e,n,i){i=i||2;var a=n&&n.length,o=a?n[0]*i:e.length,u=t(e,0,o,i,!0),c=[];if(!u)return c;var l,f,h,d,p,E,m;if(a&&(u=s(e,n,u,i)),e.length>80*i){l=h=e[0],f=d=e[1];for(var _=i;_<o;_+=i)p=e[_],E=e[_+1],p<l&&(l=p),E<f&&(f=E),p>h&&(h=p),E>d&&(d=E);m=Math.max(h-l,d-f)}return r(u,c,i,l,f,m),c}function t(e,t,n,r,i){var a,o;if(i===N(e,t,n,r)>0)for(a=t;a<n;a+=r)o=O(a,e[a],e[a+1],o);else for(a=n-r;a>=t;a-=r)o=O(a,e[a],e[a+1],o);return o&&T(o,o.next)&&(I(o),o=o.next),o}function n(e,t){if(!e)return e;t||(t=e);var n,r=e;do{if(n=!1,r.steiner||!T(r,r.next)&&0!==y(r.prev,r,r.next))r=r.next;else{if(I(r),(r=t=r.prev)===r.next)return null;n=!0}}while(n||r!==t);return t}function r(e,t,s,c,l,f,d){if(e){!d&&f&&h(e,c,l,f);for(var p,E,m=e;e.prev!==e.next;)if(p=e.prev,E=e.next,f?a(e,c,l,f):i(e))t.push(p.i/s),t.push(e.i/s),t.push(E.i/s),I(e),e=E.next,m=E.next;else if((e=E)===m){d?1===d?(e=o(e,t,s),r(e,t,s,c,l,f,2)):2===d&&u(e,t,s,c,l,f):r(n(e),t,s,c,l,f,1);break}}}function i(e){var t=e.prev,n=e,r=e.next;if(y(t,n,r)>=0)return!1;for(var i=e.next.next;i!==e.prev;){if(m(t.x,t.y,n.x,n.y,r.x,r.y,i.x,i.y)&&y(i.prev,i,i.next)>=0)return!1;i=i.next}return!0}function a(e,t,n,r){var i=e.prev,a=e,o=e.next;if(y(i,a,o)>=0)return!1;for(var u=i.x<a.x?i.x<o.x?i.x:o.x:a.x<o.x?a.x:o.x,s=i.y<a.y?i.y<o.y?i.y:o.y:a.y<o.y?a.y:o.y,c=i.x>a.x?i.x>o.x?i.x:o.x:a.x>o.x?a.x:o.x,l=i.y>a.y?i.y>o.y?i.y:o.y:a.y>o.y?a.y:o.y,f=p(u,s,t,n,r),h=p(c,l,t,n,r),d=e.nextZ;d&&d.z<=h;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.nextZ}for(d=e.prevZ;d&&d.z>=f;){if(d!==e.prev&&d!==e.next&&m(i.x,i.y,a.x,a.y,o.x,o.y,d.x,d.y)&&y(d.prev,d,d.next)>=0)return!1;d=d.prevZ}return!0}function o(e,t,n){var r=e;do{var i=r.prev,a=r.next.next;!T(i,a)&&R(i,r,r.next,a)&&A(i,a)&&A(a,i)&&(t.push(i.i/n),t.push(r.i/n),t.push(a.i/n),I(r),I(r.next),r=e=a),r=r.next}while(r!==e);return r}function u(e,t,i,a,o,u){var s=e;do{for(var c=s.next.next;c!==s.prev;){if(s.i!==c.i&&_(s,c)){var l=S(s,c);return s=n(s,s.next),l=n(l,l.next),r(s,t,i,a,o,u),void r(l,t,i,a,o,u)}c=c.next}s=s.next}while(s!==e)}function s(e,r,i,a){var o,u,s,f,h,d=[];for(o=0,u=r.length;o<u;o++)s=r[o]*a,f=o<u-1?r[o+1]*a:e.length,h=t(e,s,f,a,!1),h===h.next&&(h.steiner=!0),d.push(E(h));for(d.sort(c),o=0;o<d.length;o++)l(d[o],i),i=n(i,i.next);return i}function c(e,t){return e.x-t.x}function l(e,t){if(t=f(e,t)){var r=S(t,e);n(r,r.next)}}function f(e,t){var n,r=t,i=e.x,a=e.y,o=-1/0;do{if(a<=r.y&&a>=r.next.y){var u=r.x+(a-r.y)*(r.next.x-r.x)/(r.next.y-r.y);if(u<=i&&u>o){if(o=u,u===i){if(a===r.y)return r;if(a===r.next.y)return r.next}n=r.x<r.next.x?r:r.next}}r=r.next}while(r!==t);if(!n)return null;if(i===o)return n.prev;var s,c=n,l=n.x,f=n.y,h=1/0;for(r=n.next;r!==c;)i>=r.x&&r.x>=l&&m(a<f?i:o,a,l,f,a<f?o:i,a,r.x,r.y)&&((s=Math.abs(a-r.y)/(i-r.x))<h||s===h&&r.x>n.x)&&A(r,e)&&(n=r,h=s),r=r.next;return n}function h(e,t,n,r){var i=e;do{null===i.z&&(i.z=p(i.x,i.y,t,n,r)),i.prevZ=i.prev,i.nextZ=i.next,i=i.next}while(i!==e);i.prevZ.nextZ=null,i.prevZ=null,d(i)}function d(e){var t,n,r,i,a,o,u,s,c=1;do{for(n=e,e=null,a=null,o=0;n;){for(o++,r=n,u=0,t=0;t<c&&(u++,r=r.nextZ);t++);for(s=c;u>0||s>0&&r;)0===u?(i=r,r=r.nextZ,s--):0!==s&&r?n.z<=r.z?(i=n,n=n.nextZ,u--):(i=r,r=r.nextZ,s--):(i=n,n=n.nextZ,u--),a?a.nextZ=i:e=i,i.prevZ=a,a=i;n=r}a.nextZ=null,c*=2}while(o>1);return e}function p(e,t,n,r,i){return e=32767*(e-n)/i,t=32767*(t-r)/i,e=16711935&(e|e<<8),e=252645135&(e|e<<4),e=858993459&(e|e<<2),e=1431655765&(e|e<<1),t=16711935&(t|t<<8),t=252645135&(t|t<<4),t=858993459&(t|t<<2),t=1431655765&(t|t<<1),e|t<<1}function E(e){var t=e,n=e;do{t.x<n.x&&(n=t),t=t.next}while(t!==e);return n}function m(e,t,n,r,i,a,o,u){return(i-o)*(t-u)-(e-o)*(a-u)>=0&&(e-o)*(r-u)-(n-o)*(t-u)>=0&&(n-o)*(a-u)-(i-o)*(r-u)>=0}function _(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!v(e,t)&&A(e,t)&&A(t,e)&&g(e,t)}function y(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function T(e,t){return e.x===t.x&&e.y===t.y}function R(e,t,n,r){return!!(T(e,t)&&T(n,r)||T(e,r)&&T(n,t))||y(e,t,n)>0!=y(e,t,r)>0&&y(n,r,e)>0!=y(n,r,t)>0}function v(e,t){var n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&R(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function A(e,t){return y(e.prev,e,e.next)<0?y(e,t,e.next)>=0&&y(e,e.prev,t)>=0:y(e,t,e.prev)<0||y(e,e.next,t)<0}function g(e,t){var n=e,r=!1,i=(e.x+t.x)/2,a=(e.y+t.y)/2;do{n.y>a!=n.next.y>a&&i<(n.next.x-n.x)*(a-n.y)/(n.next.y-n.y)+n.x&&(r=!r),n=n.next}while(n!==e);return r}function S(e,t){var n=new M(e.i,e.x,e.y),r=new M(t.i,t.x,t.y),i=e.next,a=t.prev;return e.next=t,t.prev=e,n.next=i,i.prev=n,r.next=n,n.prev=r,a.next=r,r.prev=a,r}function O(e,t,n,r){var i=new M(e,t,n);return r?(i.next=r.next,i.prev=r,r.next.prev=i,r.next=i):(i.prev=i,i.next=i),i}function I(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function M(e,t,n){this.i=e,this.x=t,this.y=n,this.prev=null,this.next=null,this.z=null,this.prevZ=null,this.nextZ=null,this.steiner=!1}function N(e,t,n,r){for(var i=0,a=t,o=n-r;a<n;a+=r)i+=(e[o]-e[a])*(e[a+1]+e[o+1]),o=a;return i}return e.deviation=function(e,t,n,r){var i=t&&t.length,a=i?t[0]*n:e.length,o=Math.abs(N(e,0,a,n));if(i)for(var u=0,s=t.length;u<s;u++){var c=t[u]*n,l=u<s-1?t[u+1]*n:e.length;o-=Math.abs(N(e,c,l,n))}var f=0;for(u=0;u<r.length;u+=3){var h=r[u]*n,d=r[u+1]*n,p=r[u+2]*n;f+=Math.abs((e[h]-e[p])*(e[d+1]-e[h+1])-(e[h]-e[d])*(e[p+1]-e[h+1]))}return 0===o&&0===f?0:Math.abs((f-o)/o)},e.flatten=function(e){for(var t=e[0][0].length,n={vertices:[],holes:[],dimensions:t},r=0,i=0;i<e.length;i++){for(var a=0;a<e[i].length;a++)for(var o=0;o<t;o++)n.vertices.push(e[i][a][o]);i>0&&(r+=e[i-1].length,n.holes.push(r))}return n},e}),define("Core/EllipsoidRhumbLine",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,n){if(0===e)return t*n;var r=e*e,i=r*r,a=i*r,o=a*r,u=o*r,s=u*r,c=n;return t*((1-r/4-3*i/64-5*a/256-175*o/16384-441*u/65536-4851*s/1048576)*c-(3*r/8+3*i/32+45*a/1024+105*o/4096+2205*u/131072+6237*s/524288)*Math.sin(2*c)+(15*i/256+45*a/1024+525*o/16384+1575*u/65536+155925*s/8388608)*Math.sin(4*c)-(35*a/3072+175*o/12288+3675*u/262144+13475*s/1048576)*Math.sin(6*c)+(315*o/131072+2205*u/524288+43659*s/8388608)*Math.sin(8*c)-(693*u/1310720+6237*s/5242880)*Math.sin(10*c)+1001*s/8388608*Math.sin(12*c))}function l(e,t,n){var r=e/n;if(0===t)return r;var i=r*r,a=i*r,o=a*r,u=t,s=u*u,c=s*s,l=c*s,f=l*s,h=f*s,d=h*s,p=Math.sin(2*r),E=Math.cos(2*r),m=Math.sin(4*r),_=Math.cos(4*r),y=Math.sin(6*r),T=Math.cos(6*r),R=Math.sin(8*r),v=Math.cos(8*r),A=Math.sin(10*r);return r+r*s/4+7*r*c/64+15*r*l/256+579*r*f/16384+1515*r*h/65536+16837*r*d/1048576+(3*r*c/16+45*r*l/256-r*(32*i-561)*f/4096-r*(232*i-1677)*h/16384+r*(399985-90560*i+512*o)*d/5242880)*E+(21*r*l/256+483*r*f/4096-r*(224*i-1969)*h/16384-r*(33152*i-112599)*d/1048576)*_+(151*r*f/4096+4681*r*h/65536+1479*r*d/16384-453*a*d/32768)*T+(1097*r*h/65536+42783*r*d/1048576)*v+8011*r*d/1048576*Math.cos(10*r)+(3*s/8+3*c/16+213*l/2048-3*i*l/64+255*f/4096-33*i*f/512+20861*h/524288-33*i*h/512+o*h/1024+28273*d/1048576-471*i*d/8192+9*o*d/4096)*p+(21*c/256+21*l/256+533*f/8192-21*i*f/512+197*h/4096-315*i*h/4096+584039*d/16777216-12517*i*d/131072+7*o*d/2048)*m+(151*l/6144+151*f/4096+5019*h/131072-453*i*h/16384+26965*d/786432-8607*i*d/131072)*y+(1097*f/131072+1097*h/65536+225797*d/10485760-1097*i*d/65536)*R+(8011*h/2621440+8011*d/1048576)*A+293393*d/251658240*Math.sin(12*r)}function f(e,t){if(0===e)return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)));var n=e*Math.sin(t);return Math.log(Math.tan(.5*(s.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function h(e,t,n,r,i){var a=f(e._ellipticity,n),o=f(e._ellipticity,i);return Math.atan2(s.negativePiToPi(r-t),o-a)}function d(e,t,n,r,i,a,o){var u=e._heading,l=a-r,f=0;if(s.equalsEpsilon(Math.abs(u),s.PI_OVER_TWO,s.EPSILON8))if(t===n)f=t*Math.cos(i)*s.negativePiToPi(l);else{var h=Math.sin(i);f=t*Math.cos(i)*s.negativePiToPi(l)/Math.sqrt(1-e._ellipticitySquared*h*h)}else{var d=c(e._ellipticity,t,i);f=(c(e._ellipticity,t,o)-d)/Math.cos(u)}return Math.abs(f)}function p(n,r,i,a){var o=(e.normalize(a.cartographicToCartesian(r,y),_),e.normalize(a.cartographicToCartesian(i,y),y),a.maximumRadius),u=a.minimumRadius,s=o*o,c=u*u;n._ellipticitySquared=(s-c)/s,n._ellipticity=Math.sqrt(n._ellipticitySquared),n._start=t.clone(r,n._start),n._start.height=0,n._end=t.clone(i,n._end),n._end.height=0,n._heading=h(n,r.longitude,r.latitude,i.longitude,i.latitude),n._distance=d(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude)}function E(e,n,r,a,o,u){var h,d,p,E=o*o;if(Math.abs(s.PI_OVER_TWO-Math.abs(n))>s.EPSILON8){d=l(c(o,a,e.latitude)+r*Math.cos(n),o,a);var m=f(o,e.latitude),_=f(o,d);p=Math.tan(n)*(_-m),h=s.negativePiToPi(e.longitude+p)}else{d=e.latitude;var y;if(0===o)y=a*Math.cos(e.latitude);else{var T=Math.sin(e.latitude);y=a*Math.cos(e.latitude)/Math.sqrt(1-E*T*T)}p=r/y,h=n>0?s.negativePiToPi(e.longitude+p):s.negativePiToPi(e.longitude-p)}return i(u)?(u.longitude=h,u.latitude=d,u.height=0,u):new t(h,d,0)}function m(e,n,a){var o=r(a,u.WGS84);this._ellipsoid=o,this._start=new t,this._end=new t,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,i(e)&&i(n)&&p(this,e,n,o)}var _=new e,y=new e;return a(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}}),m.fromStartHeadingDistance=function(e,t,n,a,o){var c=r(a,u.WGS84),l=c.maximumRadius,f=c.minimumRadius,h=l*l,d=f*f,p=Math.sqrt((h-d)/h);t=s.negativePiToPi(t);var _=E(e,t,n,c.maximumRadius,p);return!i(o)||i(a)&&!a.equals(o.ellipsoid)?new m(e,_,c):(o.setEndPoints(e,_),o)},m.prototype.setEndPoints=function(e,t){p(this,e,t,this._ellipsoid)},m.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)},m.prototype.interpolateUsingSurfaceDistance=function(e,t){return E(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)},m.prototype.findIntersectionWithLongitude=function(e,n){var r=this._ellipticity,a=this._heading,o=Math.abs(a),u=this._start;if(e=s.negativePiToPi(e),s.equalsEpsilon(Math.abs(e),Math.PI,s.EPSILON14)&&(e=s.sign(u.longitude)*Math.PI),i(n)||(n=new t),Math.abs(s.PI_OVER_TWO-o)<=s.EPSILON8)return n.longitude=e,n.latitude=u.latitude,n.height=0,n;if(s.equalsEpsilon(Math.abs(s.PI_OVER_TWO-o),s.PI_OVER_TWO,s.EPSILON8)){if(s.equalsEpsilon(e,u.longitude,s.EPSILON12))return;return n.longitude=e,n.latitude=s.PI_OVER_TWO*s.sign(s.PI_OVER_TWO-a),n.height=0,n}var c,l=u.latitude,f=r*Math.sin(l),h=Math.tan(.5*(s.PI_OVER_TWO+l))*Math.exp((e-u.longitude)/Math.tan(a)),d=(1+f)/(1-f),p=u.latitude;do{c=p;var E=r*Math.sin(c),m=(1+E)/(1-E);p=2*Math.atan(h*Math.pow(m/d,r/2))-s.PI_OVER_TWO}while(!s.equalsEpsilon(p,c,s.EPSILON12));return n.longitude=e,n.latitude=p,n.height=0,n},m.prototype.findIntersectionWithLatitude=function(e,n){var r=this._ellipticity,a=this._heading,o=this._start;if(!s.equalsEpsilon(Math.abs(a),s.PI_OVER_TWO,s.EPSILON8)){var u=f(r,o.latitude),c=f(r,e),l=Math.tan(a)*(c-u),h=s.negativePiToPi(o.longitude+l);return i(n)?(n.longitude=h,n.latitude=e,n.height=0,n):new t(h,e,0)}},m}),define("Core/WindingOrder",["./freezeObject","./WebGLConstants"],function(e,t){"use strict";var n={CLOCKWISE:t.CW,COUNTER_CLOCKWISE:t.CCW,validate:function(e){return e===n.CLOCKWISE||e===n.COUNTER_CLOCKWISE}};return e(n)}),define("Core/PolygonPipeline",["../ThirdParty/earcut-2.1.1","./Cartesian2","./Cartesian3","./Cartographic","./Check","./ComponentDatatype","./defaultValue","./defined","./Ellipsoid","./EllipsoidRhumbLine","./Geometry","./GeometryAttribute","./Math","./PrimitiveType","./WindingOrder"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";var E=new n,m=new n,_={};_.computeArea2D=function(e){for(var t=e.length,n=0,r=t-1,i=0;i<t;r=i++){var a=e[r],o=e[i];n+=a.x*o.y-o.x*a.y}return.5*n},_.computeWindingOrder2D=function(e){return _.computeArea2D(e)>0?p.COUNTER_CLOCKWISE:p.CLOCKWISE},_.triangulate=function(n,r){var i=t.packArray(n);return e(i,r,2)};var y=new n,T=new n,R=new n,v=new n,A=new n,g=new n,S=new n;_.computeSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,c=r.slice(0),p=t.length,E=new Array(3*p),m=0;for(s=0;s<p;s++){var _=t[s];E[m++]=_.x,E[m++]=_.y,E[m++]=_.z}for(var O=[],I={},M=e.maximumRadius,N=h.chordLength(i,M),w=N*N;c.length>0;){var x,C,P=c.pop(),U=c.pop(),D=c.pop(),L=n.fromArray(E,3*D,y),F=n.fromArray(E,3*U,T),b=n.fromArray(E,3*P,R),B=n.multiplyByScalar(n.normalize(L,v),M,v),q=n.multiplyByScalar(n.normalize(F,A),M,A),z=n.multiplyByScalar(n.normalize(b,g),M,g),G=n.magnitudeSquared(n.subtract(B,q,S)),W=n.magnitudeSquared(n.subtract(q,z,S)),V=n.magnitudeSquared(n.subtract(z,B,S)),X=Math.max(G,W,V);X>w?G===X?(x=Math.min(D,U)+" "+Math.max(D,U),s=I[x],u(s)||(C=n.add(L,F,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,I[x]=s),c.push(D,s,P),c.push(s,U,P)):W===X?(x=Math.min(U,P)+" "+Math.max(U,P),s=I[x],u(s)||(C=n.add(F,b,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,I[x]=s),c.push(U,s,D),c.push(s,P,D)):V===X&&(x=Math.min(P,D)+" "+Math.max(P,D),s=I[x],u(s)||(C=n.add(b,L,S),n.multiplyByScalar(C,.5,C),E.push(C.x,C.y,C.z),s=E.length/3-1,I[x]=s),c.push(P,s,U),c.push(s,D,U)):(O.push(D),O.push(U),O.push(P))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:E})},indices:O,primitiveType:d.TRIANGLES})};var O=new r,I=new r,M=new r,N=new r;return _.computeRhumbLineSubdivision=function(e,t,r,i){i=o(i,h.RADIANS_PER_DEGREE);var s,p=r.slice(0),E=t.length,m=new Array(3*E),_=0;for(s=0;s<E;s++){var v=t[s];m[_++]=v.x,m[_++]=v.y,m[_++]=v.z} -for(var A=[],g={},w=e.maximumRadius,x=h.chordLength(i,w),C=new c(void 0,void 0,e),P=new c(void 0,void 0,e),U=new c(void 0,void 0,e);p.length>0;){var D=p.pop(),L=p.pop(),F=p.pop(),b=n.fromArray(m,3*F,y),B=n.fromArray(m,3*L,T),q=n.fromArray(m,3*D,R),z=e.cartesianToCartographic(b,O),G=e.cartesianToCartographic(B,I),W=e.cartesianToCartographic(q,M);C.setEndPoints(z,G);var V=C.surfaceDistance;P.setEndPoints(G,W);var X=P.surfaceDistance;U.setEndPoints(W,z);var H,Y,k,j,Z=U.surfaceDistance,K=Math.max(V,X,Z);K>x?V===K?(H=Math.min(F,L)+" "+Math.max(F,L),s=g[H],u(s)||(Y=C.interpolateUsingFraction(.5,N),k=.5*(z.height+G.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(F,s,D),p.push(s,L,D)):X===K?(H=Math.min(L,D)+" "+Math.max(L,D),s=g[H],u(s)||(Y=P.interpolateUsingFraction(.5,N),k=.5*(G.height+W.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(L,s,F),p.push(s,D,F)):Z===K&&(H=Math.min(D,F)+" "+Math.max(D,F),s=g[H],u(s)||(Y=U.interpolateUsingFraction(.5,N),k=.5*(W.height+z.height),j=n.fromRadians(Y.longitude,Y.latitude,k,e,S),m.push(j.x,j.y,j.z),s=m.length/3-1,g[H]=s),p.push(D,s,L),p.push(s,F,L)):(A.push(F),A.push(L),A.push(D))}return new l({attributes:{position:new f({componentDatatype:a.DOUBLE,componentsPerAttribute:3,values:m})},indices:A,primitiveType:d.TRIANGLES})},_.scaleToGeodeticHeight=function(e,t,r,i){r=o(r,s.WGS84);var a=E,c=m;if(t=o(t,0),i=o(i,!0),u(e))for(var l=e.length,f=0;f<l;f+=3)n.fromArray(e,f,c),i&&(c=r.scaleToGeodeticSurface(c,c)),0!==t&&(a=r.geodeticSurfaceNormal(c,a),n.multiplyByScalar(a,t,a),n.add(c,a,c)),e[f]=c.x,e[f+1]=c.y,e[f+2]=c.z;return e},_}),define("Core/EllipsoidGeodesic",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){var t=e._uSquared,n=e._ellipsoid.maximumRadius,r=e._ellipsoid.minimumRadius,i=(n-r)/n,a=Math.cos(e._startHeading),o=Math.sin(e._startHeading),u=(1-i)*Math.tan(e._start.latitude),s=1/Math.sqrt(1+u*u),c=s*u,l=Math.atan2(u,a),f=s*o,h=f*f,d=1-h,p=Math.sqrt(d),E=t/4,m=E*E,_=m*E,y=m*m,T=1+E-3*m/4+5*_/4-175*y/64,R=1-E+15*m/8-35*_/8,v=1-3*E+35*m/4,A=1-5*E,g=T*l-R*Math.sin(2*l)*E/2-v*Math.sin(4*l)*m/16-A*Math.sin(6*l)*_/48-5*Math.sin(8*l)*y/512,S=e._constants;S.a=n,S.b=r,S.f=i,S.cosineHeading=a,S.sineHeading=o,S.tanU=u,S.cosineU=s,S.sineU=c,S.sigma=l,S.sineAlpha=f,S.sineSquaredAlpha=h,S.cosineSquaredAlpha=d,S.cosineAlpha=p,S.u2Over4=E,S.u4Over16=m,S.u6Over64=_,S.u8Over256=y,S.a0=T,S.a1=R,S.a2=v,S.a3=A,S.distanceRatio=g}function c(e,t){return e*t*(4+e*(4-3*t))/16}function l(e,t,n,r,i,a,o){var u=c(e,n);return(1-u)*e*t*(r+u*i*(o+u*a*(2*o*o-1)))}function f(e,t,n,r,i,a,o){var s,c,f,h,d,p=(t-n)/t,E=a-r,m=Math.atan((1-p)*Math.tan(i)),_=Math.atan((1-p)*Math.tan(o)),y=Math.cos(m),T=Math.sin(m),R=Math.cos(_),v=Math.sin(_),A=y*R,g=y*v,S=T*v,O=T*R,I=E,M=u.TWO_PI,N=Math.cos(I),w=Math.sin(I);do{N=Math.cos(I),w=Math.sin(I);var x=g-O*N;f=Math.sqrt(R*R*w*w+x*x),c=S+A*N,s=Math.atan2(f,c);var C;0===f?(C=0,h=1):(C=A*w/f,h=1-C*C),M=I,d=c-2*S/h,isNaN(d)&&(d=0),I=E+l(p,C,h,s,f,c,d)}while(Math.abs(I-M)>u.EPSILON12);var P=h*(t*t-n*n)/(n*n),U=1+P*(4096+P*(P*(320-175*P)-768))/16384,D=P*(256+P*(P*(74-47*P)-128))/1024,L=d*d,F=D*f*(d+D*(c*(2*L-1)-D*d*(4*f*f-3)*(4*L-3)/6)/4),b=n*U*(s-F),B=Math.atan2(R*w,g-O*N),q=Math.atan2(y*w,g*N-O);e._distance=b,e._startHeading=B,e._endHeading=q,e._uSquared=P}function h(n,r,i,a){e.normalize(a.cartographicToCartesian(r,E),p),e.normalize(a.cartographicToCartesian(i,E),E);f(n,a.maximumRadius,a.minimumRadius,r.longitude,r.latitude,i.longitude,i.latitude),n._start=t.clone(r,n._start),n._end=t.clone(i,n._end),n._start.height=0,n._end.height=0,s(n)}function d(e,n,a){var u=r(a,o.WGS84);this._ellipsoid=u,this._start=new t,this._end=new t,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,i(e)&&i(n)&&h(this,e,n,u)}var p=new e,E=new e;return a(d.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}}),d.prototype.setEndPoints=function(e,t){h(this,e,t,this._ellipsoid)},d.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)},d.prototype.interpolateUsingSurfaceDistance=function(e,n){var r=this._constants,a=r.distanceRatio+e/r.b,o=Math.cos(2*a),u=Math.cos(4*a),s=Math.cos(6*a),c=Math.sin(2*a),f=Math.sin(4*a),h=Math.sin(6*a),d=Math.sin(8*a),p=a*a,E=a*p,m=r.u8Over256,_=r.u2Over4,y=r.u6Over64,T=r.u4Over16,R=2*E*m*o/3+a*(1-_+7*T/4-15*y/4+579*m/64-(T-15*y/4+187*m/16)*o-(5*y/4-115*m/16)*u-29*m*s/16)+(_/2-T+71*y/32-85*m/16)*c+(5*T/16-5*y/4+383*m/96)*f-p*((y-11*m/2)*c+5*m*f/2)+(29*y/96-29*m/16)*h+539*m*d/1536,v=Math.asin(Math.sin(R)*r.cosineAlpha),A=Math.atan(r.a/r.b*Math.tan(v));R-=r.sigma;var g=Math.cos(2*r.sigma+R),S=Math.sin(R),O=Math.cos(R),I=r.cosineU*O,M=r.sineU*S,N=Math.atan2(S*r.sineHeading,I-M*r.cosineHeading),w=N-l(r.f,r.sineAlpha,r.cosineSquaredAlpha,R,S,O,g);return i(n)?(n.longitude=this._start.longitude+w,n.latitude=A,n.height=0,n):new t(this._start.longitude+w,A,0)},d}),define("Core/PolylinePipeline",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidGeodesic","./EllipsoidRhumbLine","./IntersectionTests","./isArray","./Math","./Matrix4","./Plane"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(e,t,n){var r=I;r.length=e;var i;if(t===n){for(i=0;i<e;i++)r[i]=t;return r}var a=n-t,o=a/e;for(i=0;i<e;i++){var u=t+i*o;r[i]=u}return r}function p(t,n,r,i,a,o,u,s){var c=i.scaleToGeodeticSurface(t,x),l=i.scaleToGeodeticSurface(n,C),f=m.numberOfPoints(t,n,r),h=i.cartesianToCartographic(c,M),p=i.cartesianToCartographic(l,N),E=d(f,a,o);P.setEndPoints(h,p);var _=P.surfaceDistance/f,y=s;h.height=a;var T=i.cartographicToCartesian(h,w);e.pack(T,u,y),y+=3;for(var R=1;R<f;R++){var v=P.interpolateUsingSurfaceDistance(R*_,N);v.height=E[R],T=i.cartographicToCartesian(v,w),e.pack(T,u,y),y+=3}return y}function E(t,n,r,i,a,o,s,c){var l=i.scaleToGeodeticSurface(t,x),f=i.scaleToGeodeticSurface(n,C),h=i.cartesianToCartographic(l,M),p=i.cartesianToCartographic(f,N),E=m.numberOfPointsRhumbLine(h,p,r),_=d(E,a,o);U.ellipsoid.equals(i)||(U=new u(void 0,void 0,i)),U.setEndPoints(h,p);var y=U.surfaceDistance/E,T=c;h.height=a;var R=i.cartographicToCartesian(h,w);e.pack(R,s,T),T+=3;for(var v=1;v<E;v++){var A=U.interpolateUsingSurfaceDistance(v*y,N);A.height=_[v],R=i.cartographicToCartesian(A,w),e.pack(R,s,T),T+=3}return T}var m={};m.numberOfPoints=function(t,n,r){var i=e.distance(t,n);return Math.ceil(i/r)},m.numberOfPointsRhumbLine=function(e,t,n){var r=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.ceil(Math.sqrt(r/(n*n)))};var _=new t;m.extractHeights=function(e,t){for(var n=e.length,r=new Array(n),i=0;i<n;i++){var a=e[i];r[i]=t.cartesianToCartographic(a,_).height}return r};var y=new f,T=new e,R=new e,v=new h(e.UNIT_X,0),A=new e,g=new h(e.UNIT_X,0),S=new e,O=new e,I=[],M=new t,N=new t,w=new e,x=new e,C=new e,P=new o,U=new u;m.wrapLongitude=function(t,i){var a=[],o=[];if(r(t)&&t.length>0){i=n(i,f.IDENTITY);var u=f.inverseTransformation(i,y),c=f.multiplyByPoint(u,e.ZERO,T),l=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_Y,R),R),d=h.fromPointNormal(c,l,v),p=e.normalize(f.multiplyByPointAsVector(u,e.UNIT_X,A),A),E=h.fromPointNormal(c,p,g),m=1;a.push(e.clone(t[0]));for(var _=a[0],I=t.length,M=1;M<I;++M){var N=t[M];if(h.getPointDistance(E,_)<0||h.getPointDistance(E,N)<0){var w=s.lineSegmentPlane(_,N,d,S);if(r(w)){var x=e.multiplyByScalar(l,5e-9,O);h.getPointDistance(d,_)<0&&e.negate(x,x),a.push(e.add(w,x,new e)),o.push(m+1),e.negate(x,x),a.push(e.add(w,x,new e)),m=1}}a.push(e.clone(t[M])),m++,_=N}o.push(m)}return{positions:a,lengths:o}},m.generateArc=function(t){r(t)||(t={});var i=t.positions,o=i.length,u=n(t.ellipsoid,a.WGS84),s=n(t.height,0),f=c(s);if(o<1)return[];if(1===o){var h=u.scaleToGeodeticSurface(i[0],x);if(0!==(s=f?s[0]:s)){var d=u.geodeticSurfaceNormal(h,w);e.multiplyByScalar(d,s,d),e.add(h,d,h)}return[h.x,h.y,h.z]}var E=t.minDistance;if(!r(E)){var _=n(t.granularity,l.RADIANS_PER_DEGREE);E=l.chordLength(_,u.maximumRadius)}var y,T=0;for(y=0;y<o-1;y++)T+=m.numberOfPoints(i[y],i[y+1],E);var R=3*(T+1),v=new Array(R),A=0;for(y=0;y<o-1;y++){A=p(i[y],i[y+1],E,u,f?s[y]:s,f?s[y+1]:s,v,A)}I.length=0;var g=i[o-1],S=u.cartesianToCartographic(g,M);S.height=f?s[o-1]:s;var O=u.cartographicToCartesian(S,w);return e.pack(O,v,R-3),v};var D=new t,L=new t;return m.generateRhumbArc=function(i){r(i)||(i={});var o=i.positions,u=o.length,s=n(i.ellipsoid,a.WGS84),f=n(i.height,0),h=c(f);if(u<1)return[];if(1===u){var d=s.scaleToGeodeticSurface(o[0],x);if(0!==(f=h?f[0]:f)){var p=s.geodeticSurfaceNormal(d,w);e.multiplyByScalar(p,f,p),e.add(d,p,d)}return[d.x,d.y,d.z]}var _,y,T=n(i.granularity,l.RADIANS_PER_DEGREE),R=0,v=s.cartesianToCartographic(o[0],D);for(_=0;_<u-1;_++)y=s.cartesianToCartographic(o[_+1],L),R+=m.numberOfPointsRhumbLine(v,y,T),v=t.clone(y,D);var A=3*(R+1),g=new Array(A),S=0;for(_=0;_<u-1;_++){S=E(o[_],o[_+1],T,s,h?f[_]:f,h?f[_+1]:f,g,S)}I.length=0;var O=o[u-1],N=s.cartesianToCartographic(O,M);N.height=h?f[u-1]:f;var C=s.cartographicToCartesian(N,w);return e.pack(C,g,A-3),g},m.generateCartesianArc=function(t){for(var n=m.generateArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m.generateCartesianRhumbArc=function(t){for(var n=m.generateRhumbArc(t),r=n.length/3,i=new Array(r),a=0;a<r;a++)i[a]=e.unpack(n,3*a);return i},m}),define("Core/WallGeometryLibrary",["./Cartographic","./defined","./EllipsoidTangentPlane","./Math","./PolygonPipeline","./PolylinePipeline","./WindingOrder"],function(e,t,n,r,i,a,o){"use strict";function u(e,t){return r.equalsEpsilon(e.latitude,t.latitude,r.EPSILON14)&&r.equalsEpsilon(e.longitude,t.longitude,r.EPSILON14)}function s(n,r,i,a){var o=r.length;if(!(o<2)){var s=t(a),c=t(i),h=!0,d=new Array(o),p=new Array(o),E=new Array(o),m=r[0];d[0]=m;var _=n.cartesianToCartographic(m,l);c&&(_.height=i[0]),h=h&&_.height<=0,p[0]=_.height,E[0]=s?a[0]:0;for(var y=1,T=1;T<o;++T){var R=r[T],v=n.cartesianToCartographic(R,f);c&&(v.height=i[T]),h=h&&v.height<=0,u(_,v)?_.height<v.height&&(p[y-1]=v.height):(d[y]=R,p[y]=v.height,E[y]=s?a[T]:0,e.clone(v,_),++y)}if(!(h||y<2))return d.length=y,p.length=y,E.length=y,{positions:d,topHeights:p,bottomHeights:E}}}var c={},l=new e,f=new e,h=new Array(2),d=new Array(2),p={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};return c.computePositions=function(e,u,c,l,f,E){var m=s(e,u,c,l);if(t(m)){if(u=m.positions,c=m.topHeights,l=m.bottomHeights,u.length>=3){var _=n.fromPoints(u,e),y=_.projectPointsOntoPlane(u);i.computeWindingOrder2D(y)===o.CLOCKWISE&&(u.reverse(),c.reverse(),l.reverse())}var T,R,v=u.length,A=v-2,g=r.chordLength(f,e.maximumRadius),S=p;if(S.minDistance=g,S.ellipsoid=e,E){var O,I=0;for(O=0;O<v-1;O++)I+=a.numberOfPoints(u[O],u[O+1],g)+1;T=new Float64Array(3*I),R=new Float64Array(3*I);var M=h,N=d;S.positions=M,S.height=N;var w=0;for(O=0;O<v-1;O++){M[0]=u[O],M[1]=u[O+1],N[0]=c[O],N[1]=c[O+1];var x=a.generateArc(S);T.set(x,w),N[0]=l[O],N[1]=l[O+1],R.set(a.generateArc(S),w),w+=x.length}}else S.positions=u,S.height=c,T=new Float64Array(a.generateArc(S)),S.height=l,R=new Float64Array(a.generateArc(S));return{bottomPositions:R,topPositions:T,numCorners:A}}},c}),define("Core/WallOutlineGeometry",["./BoundingSphere","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./Geometry","./GeometryAttribute","./GeometryAttributes","./IndexDatatype","./Math","./PrimitiveType","./WallGeometryLibrary"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d){"use strict";function p(e){e=r(e,r.EMPTY_OBJECT);var n=e.positions,a=e.maximumHeights,u=e.minimumHeights,s=r(e.granularity,f.RADIANS_PER_DEGREE),c=r(e.ellipsoid,o.WGS84);this._positions=n,this._minimumHeights=u,this._maximumHeights=a,this._granularity=s,this._ellipsoid=o.clone(c),this._workerName="createWallOutlineGeometry";var l=1+n.length*t.packedLength+2;i(u)&&(l+=u.length),i(a)&&(l+=a.length),this.packedLength=l+o.packedLength+1}var E=new t,m=new t;p.pack=function(e,n,a){a=r(a,0);var u,s=e._positions,c=s.length;for(n[a++]=c,u=0;u<c;++u,a+=t.packedLength)t.pack(s[u],n,a);var l=e._minimumHeights;if(c=i(l)?l.length:0,n[a++]=c,i(l))for(u=0;u<c;++u)n[a++]=l[u];var f=e._maximumHeights;if(c=i(f)?f.length:0,n[a++]=c,i(f))for(u=0;u<c;++u)n[a++]=f[u];return o.pack(e._ellipsoid,n,a),a+=o.packedLength,n[a]=e._granularity,n};var _=o.clone(o.UNIT_SPHERE),y={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:_,granularity:void 0};return p.unpack=function(e,n,a){n=r(n,0);var u,s=e[n++],c=new Array(s);for(u=0;u<s;++u,n+=t.packedLength)c[u]=t.unpack(e,n);s=e[n++];var l;if(s>0)for(l=new Array(s),u=0;u<s;++u)l[u]=e[n++];s=e[n++];var f;if(s>0)for(f=new Array(s),u=0;u<s;++u)f[u]=e[n++];var h=o.unpack(e,n,_);n+=o.packedLength;var d=e[n];return i(a)?(a._positions=c,a._minimumHeights=l,a._maximumHeights=f,a._ellipsoid=o.clone(h,a._ellipsoid),a._granularity=d,a):(y.positions=c,y.minimumHeights=l,y.maximumHeights=f,y.granularity=d,new p(y))},p.fromConstantHeights=function(e){e=r(e,r.EMPTY_OBJECT);var t,n,a=e.positions,o=e.minimumHeight,u=e.maximumHeight,s=i(o),c=i(u);if(s||c){var l=a.length;t=s?new Array(l):void 0,n=c?new Array(l):void 0;for(var f=0;f<l;++f)s&&(t[f]=o),c&&(n[f]=u)}return new p({positions:a,maximumHeights:n,minimumHeights:t,ellipsoid:e.ellipsoid})},p.createGeometry=function(r){var a=r._positions,o=r._minimumHeights,p=r._maximumHeights,_=r._granularity,y=r._ellipsoid,T=d.computePositions(y,a,p,o,_,!1);if(i(T)){var R=T.bottomPositions,v=T.topPositions,A=v.length,g=2*A,S=new Float64Array(g),O=0;A/=3;var I;for(I=0;I<A;++I){var M=3*I,N=t.fromArray(v,M,E),w=t.fromArray(R,M,m);S[O++]=w.x,S[O++]=w.y,S[O++]=w.z,S[O++]=N.x,S[O++]=N.y,S[O++]=N.z}var x=new c({position:new s({componentDatatype:n.DOUBLE,componentsPerAttribute:3,values:S})}),C=g/3;g=2*C-4+C;var P=l.createTypedArray(C,g),U=0;for(I=0;I<C-2;I+=2){var D=I,L=I+2,F=t.fromArray(S,3*D,E),b=t.fromArray(S,3*L,m);if(!t.equalsEpsilon(F,b,f.EPSILON10)){var B=I+1,q=I+3;P[U++]=B,P[U++]=D,P[U++]=B,P[U++]=q,P[U++]=D,P[U++]=L}}return P[U++]=C-2,P[U++]=C-1,new u({attributes:x,indices:P,primitiveType:h.LINES,boundingSphere:new e.fromVertices(S)})}},p}),define("Workers/createWallOutlineGeometry",["../Core/defined","../Core/Ellipsoid","../Core/WallOutlineGeometry"],function(e,t,n){"use strict";function r(r,i){return e(i)&&(r=n.unpack(r,i)),r._ellipsoid=t.clone(r._ellipsoid),n.createGeometry(r)}return r})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as B}from"./chunk-A2ZU5ON6.js";import"./chunk-BLYOACVP.js";import"./chunk-6DBAMVE2.js";import"./chunk-BRFVOFKF.js";import"./chunk-XDFUUQMZ.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as W}from"./chunk-T53UE6JF.js";import{a as N}from"./chunk-RYO6NY7F.js";import{b as R,c as S,d as M}from"./chunk-2HSPJH3C.js";import{d as D}from"./chunk-T5AUOWE7.js";import"./chunk-Y5B6Y3WD.js";import{a as q}from"./chunk-6QVIJ7JA.js";import{a as p,d as l}from"./chunk-AODSXSC5.js";import{a as O}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import{a as d}from"./chunk-WHQYJFDH.js";import{a as _}from"./chunk-OYWUGDKS.js";import{e as m}from"./chunk-DRYFJEFT.js";var U=new p,z=new p;function w(i){i=d(i,d.EMPTY_OBJECT);let t=i.positions,e=i.maximumHeights,o=i.minimumHeights;if(!m(t))throw new _("options.positions is required.");if(m(e)&&e.length!==t.length)throw new _("options.positions and options.maximumHeights must have the same length.");if(m(o)&&o.length!==t.length)throw new _("options.positions and options.minimumHeights must have the same length.");let s=d(i.granularity,O.RADIANS_PER_DEGREE),r=d(i.ellipsoid,l.default);this._positions=t,this._minimumHeights=o,this._maximumHeights=e,this._granularity=s,this._ellipsoid=l.clone(r),this._workerName="createWallOutlineGeometry";let n=1+t.length*p.packedLength+2;m(o)&&(n+=o.length),m(e)&&(n+=e.length),this.packedLength=n+l.packedLength+1}w.pack=function(i,t,e){if(!m(i))throw new _("value is required");if(!m(t))throw new _("array is required");e=d(e,0);let o,s=i._positions,r=s.length;for(t[e++]=r,o=0;o<r;++o,e+=p.packedLength)p.pack(s[o],t,e);let n=i._minimumHeights;if(r=m(n)?n.length:0,t[e++]=r,m(n))for(o=0;o<r;++o)t[e++]=n[o];let c=i._maximumHeights;if(r=m(c)?c.length:0,t[e++]=r,m(c))for(o=0;o<r;++o)t[e++]=c[o];return l.pack(i._ellipsoid,t,e),e+=l.packedLength,t[e]=i._granularity,t};var G=l.clone(l.UNIT_SPHERE),b={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:G,granularity:void 0};w.unpack=function(i,t,e){if(!m(i))throw new _("array is required");t=d(t,0);let o,s=i[t++],r=new Array(s);for(o=0;o<s;++o,t+=p.packedLength)r[o]=p.unpack(i,t);s=i[t++];let n;if(s>0)for(n=new Array(s),o=0;o<s;++o)n[o]=i[t++];s=i[t++];let c;if(s>0)for(c=new Array(s),o=0;o<s;++o)c[o]=i[t++];let E=l.unpack(i,t,G);t+=l.packedLength;let u=i[t];return m(e)?(e._positions=r,e._minimumHeights=n,e._maximumHeights=c,e._ellipsoid=l.clone(E,e._ellipsoid),e._granularity=u,e):(b.positions=r,b.minimumHeights=n,b.maximumHeights=c,b.granularity=u,new w(b))};w.fromConstantHeights=function(i){i=d(i,d.EMPTY_OBJECT);let t=i.positions;if(!m(t))throw new _("options.positions is required.");let e,o,s=i.minimumHeight,r=i.maximumHeight,n=m(s),c=m(r);if(n||c){let u=t.length;e=n?new Array(u):void 0,o=c?new Array(u):void 0;for(let a=0;a<u;++a)n&&(e[a]=s),c&&(o[a]=r)}let E={positions:t,maximumHeights:o,minimumHeights:e,ellipsoid:i.ellipsoid};return new w(E)};w.createGeometry=function(i){let t=i._positions,e=i._minimumHeights,o=i._maximumHeights,s=i._granularity,r=i._ellipsoid,n=B.computePositions(r,t,o,e,s,!1);if(!m(n))return;let c=n.bottomPositions,E=n.topPositions,u=E.length,a=u*2,f=new Float64Array(a),P=0;u/=3;let h;for(h=0;h<u;++h){let A=h*3,k=p.fromArray(E,A,U),L=p.fromArray(c,A,z);f[P++]=L.x,f[P++]=L.y,f[P++]=L.z,f[P++]=k.x,f[P++]=k.y,f[P++]=k.z}let V=new N({position:new M({componentDatatype:q.DOUBLE,componentsPerAttribute:3,values:f})}),y=a/3;a=2*y-4+y;let g=W.createTypedArray(y,a),H=0;for(h=0;h<y-2;h+=2){let A=h,k=h+2,L=p.fromArray(f,A*3,U),v=p.fromArray(f,k*3,z);if(p.equalsEpsilon(L,v,O.EPSILON10))continue;let T=h+1,x=h+3;g[H++]=T,g[H++]=A,g[H++]=T,g[H++]=x,g[H++]=A,g[H++]=k}return g[H++]=y-2,g[H++]=y-1,new S({attributes:V,indices:g,primitiveType:R.LINES,boundingSphere:new D.fromVertices(f)})};var C=w;function J(i,t){return m(t)&&(i=C.unpack(i,t)),i._ellipsoid=l.clone(i._ellipsoid),C.createGeometry(i)}var pi=J;export{pi as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/decodeDraco.js b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeDraco.js index 6c10f61e7..0e179f2ca 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/decodeDraco.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeDraco.js @@ -1,74 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/freezeObject",["./defined"],function(e){"use strict";var r=Object.freeze;return e(r)||(r=function(e){return e}),r}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function r(e,r){return void 0!==e&&null!==e?e:r}return r.EMPTY_OBJECT=e({}),r}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function r(e){this.name="DeveloperError",this.message=e;var r;try{throw new Error}catch(e){r=e.stack}this.stack=r}return e(Object.create)&&(r.prototype=Object.create(Error.prototype),r.prototype.constructor=r),r.prototype.toString=function(){var r=this.name+": "+this.message;return e(this.stack)&&(r+="\n"+this.stack.toString()),r},r.throwInstantiationError=function(){throw new r("This function defines an interface and should not be called directly.")},r}),define("Core/defineProperties",["./defined"],function(e){"use strict";var r=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),t=Object.defineProperties;return r&&e(t)||(t=function(e){return e}),t}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,r){"use strict";var t,E={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},n={};return r(n,{element:{get:function(){if(n.supportsFullscreen())return document[E.fullscreenElement]}},changeEventName:{get:function(){if(n.supportsFullscreen())return E.fullscreenchange}},errorEventName:{get:function(){if(n.supportsFullscreen())return E.fullscreenerror}},enabled:{get:function(){if(n.supportsFullscreen())return document[E.fullscreenEnabled]}},fullscreen:{get:function(){if(n.supportsFullscreen())return null!==n.element}}}),n.supportsFullscreen=function(){if(e(t))return t;t=!1;var r=document.body;if("function"==typeof r.requestFullscreen)return E.requestFullscreen="requestFullscreen",E.exitFullscreen="exitFullscreen",E.fullscreenEnabled="fullscreenEnabled",E.fullscreenElement="fullscreenElement",E.fullscreenchange="fullscreenchange",E.fullscreenerror="fullscreenerror",t=!0;for(var n,_=["webkit","moz","o","ms","khtml"],T=0,R=_.length;T<R;++T){var A=_[T];n=A+"RequestFullscreen","function"==typeof r[n]?(E.requestFullscreen=n,t=!0):(n=A+"RequestFullScreen","function"==typeof r[n]&&(E.requestFullscreen=n,t=!0)),n=A+"ExitFullscreen","function"==typeof document[n]?E.exitFullscreen=n:(n=A+"CancelFullScreen","function"==typeof document[n]&&(E.exitFullscreen=n)),n=A+"FullscreenEnabled",void 0!==document[n]?E.fullscreenEnabled=n:(n=A+"FullScreenEnabled",void 0!==document[n]&&(E.fullscreenEnabled=n)),n=A+"FullscreenElement",void 0!==document[n]?E.fullscreenElement=n:(n=A+"FullScreenElement",void 0!==document[n]&&(E.fullscreenElement=n)),n=A+"fullscreenchange",void 0!==document["on"+n]&&("ms"===A&&(n="MSFullscreenChange"),E.fullscreenchange=n),n=A+"fullscreenerror",void 0!==document["on"+n]&&("ms"===A&&(n="MSFullscreenError"),E.fullscreenerror=n)}return t},n.requestFullscreen=function(e,r){n.supportsFullscreen()&&e[E.requestFullscreen]({vrDisplay:r})},n.exitFullscreen=function(){n.supportsFullscreen()&&document[E.exitFullscreen]()},n}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,t,E,n){return r(e).then(t,E,n)}function r(e){var r,t;return e instanceof E?r=e:R(e)?(t=T(),e.then(function(e){t.resolve(e)},function(e){t.reject(e)},function(e){t.progress(e)}),r=t.promise):r=n(e),r}function t(r){return e(r,_)}function E(e){this.then=e}function n(e){return new E(function(t){try{return r(t?t(e):e)}catch(e){return _(e)}})}function _(e){return new E(function(t,E){try{return E?r(E(e)):_(e)}catch(e){return _(e)}})}function T(){function e(e,r,t){return a(e,r,t)}function t(e){return I(e)}function n(e){return I(_(e))}function R(e){return N(e)}var A,o,i,u,a,N,I;return o=new E(e),A={then:e,resolve:t,reject:n,progress:R,promise:o,resolver:{resolve:t,reject:n,progress:R}},i=[],u=[],a=function(e,r,t){var E,n;return E=T(),n="function"==typeof t?function(e){try{E.progress(t(e))}catch(e){E.progress(e)}}:function(e){E.progress(e)},i.push(function(t){t.then(e,r).then(E.resolve,E.reject,n)}),u.push(n),E.promise},N=function(e){return s(u,e),e},I=function(e){return e=r(e),a=e.then,I=r,N=c,s(i,e),u=i=F,e},A}function R(e){return e&&"function"==typeof e.then}function A(r,t,E,n,_){return S(2,arguments),e(r,function(r){function R(e){s(e)}function A(e){I(e)}var o,i,u,a,N,I,s,S,O,f;if(O=r.length>>>0,o=Math.max(0,Math.min(t,O)),u=[],i=O-o+1,a=[],N=T(),o)for(S=N.progress,s=function(e){a.push(e),--i||(I=s=c,N.reject(a))},I=function(e){u.push(e),--o||(I=s=c,N.resolve(u))},f=0;f<O;++f)f in r&&e(r[f],A,R,S);else N.resolve(u);return N.then(E,n,_)})}function o(e,r,t,E){function n(e){return r?r(e[0]):e[0]}return A(e,1,n,t,E)}function i(e,r,t,E){return S(1,arguments),a(e,O).then(r,t,E)}function u(){return a(arguments,O)}function a(r,t){return e(r,function(r){var E,n,_,R,A,o;if(_=n=r.length>>>0,E=[],o=T(),_)for(R=function(r,n){e(r,t).then(function(e){E[n]=e,--_||o.resolve(E)},o.reject)},A=0;A<n;A++)A in r?R(r[A],A):--_;else o.resolve(E);return o.promise})}function N(r,t){var E=M.call(arguments,1);return e(r,function(r){var n;return n=r.length,E[0]=function(r,E,_){return e(r,function(r){return e(E,function(e){return t(r,e,_,n)})})},f.apply(r,E)})}function I(r,t,E){var n=arguments.length>2;return e(r,function(e){return e=n?E:e,t.resolve(e),e},function(e){return t.reject(e),_(e)},t.progress)}function s(e,r){for(var t,E=0;t=e[E++];)t(r)}function S(e,r){for(var t,E=r.length;E>e;)if(null!=(t=r[--E])&&"function"!=typeof t)throw new Error("arg "+E+" must be a function")}function c(){}function O(e){return e}var f,M,F;return e.defer=T,e.resolve=r,e.reject=t,e.join=u,e.all=i,e.map=a,e.reduce=N,e.any=o,e.some=A,e.chain=I,e.isPromise=R,E.prototype={always:function(e,r){return this.then(e,e,r)},otherwise:function(e){return this.then(F,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(r){return i(r,function(r){return e.apply(F,r)})})}},M=[].slice,f=[].reduce||function(e){var r,t,E,n,_;if(_=0,r=Object(this),n=r.length>>>0,t=arguments,t.length<=1)for(;;){if(_ in r){E=r[_++];break}if(++_>=n)throw new TypeError}else E=t[1];for(;_<n;++_)_ in r&&(E=e(E,r[_],_,r));return E},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,r,t,E,n,_){"use strict";function T(e){for(var r=e.split("."),t=0,E=r.length;t<E;++t)r[t]=parseInt(r[t],10);return r}function R(){if(!r(l)&&(l=!1,!s())){var e=/ Chrome\/([\.0-9]+)/.exec(D.userAgent);null!==e&&(l=!0,P=T(e[1]))}return l}function A(){return R()&&P}function o(){if(!r(L)&&(L=!1,!R()&&!s()&&/ Safari\/[\.0-9]+/.test(D.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(D.userAgent);null!==e&&(L=!0,B=T(e[1]))}return L}function i(){return o()&&B}function u(){if(!r(h)){h=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(D.userAgent);null!==e&&(h=!0,d=T(e[1]),d.isNightly=!!e[2])}return h}function a(){return u()&&d}function N(){if(!r(G)){G=!1;var e;"Microsoft Internet Explorer"===D.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(D.userAgent))&&(G=!0,p=T(e[1])):"Netscape"===D.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(D.userAgent))&&(G=!0,p=T(e[1]))}return G}function I(){return N()&&p}function s(){if(!r(y)){y=!1;var e=/ Edge\/([\.0-9]+)/.exec(D.userAgent);null!==e&&(y=!0,m=T(e[1]))}return y}function S(){return s()&&m}function c(){if(!r(X)){X=!1;var e=/Firefox\/([\.0-9]+)/.exec(D.userAgent);null!==e&&(X=!0,v=T(e[1]))}return X}function O(){return r(w)||(w=/Windows/i.test(D.appVersion)),w}function f(){return c()&&v}function M(){return r(H)||(H=!c()&&"undefined"!=typeof PointerEvent&&(!r(D.pointerEnabled)||D.pointerEnabled)),H}function F(){if(!r(g)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var t=e.style.imageRendering;g=r(t)&&""!==t,g&&(V=t)}return g}function U(){return F()?V:void 0}function C(){return C._result}var D;D="undefined"!=typeof navigator?navigator:{};var l,P,L,B,h,d,G,p,y,m,X,v,w,H,V,g;C._promise=void 0,C._result=void 0,C.initialize=function(){if(r(C._promise))return C._promise;var e=_.defer();if(C._promise=e.promise,s())return C._result=!1,e.resolve(C._result),e.promise;var t=new Image;return t.onload=function(){C._result=t.width>0&&t.height>0,e.resolve(C._result)},t.onerror=function(){C._result=!1,e.resolve(C._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},t(C,{initialized:{get:function(){return r(C._result)}}});var b=[];"undefined"!=typeof ArrayBuffer&&(b.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&b.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&b.push(CanvasPixelArray));var Y={isChrome:R,chromeVersion:A,isSafari:o,safariVersion:i,isWebkit:u,webkitVersion:a,isInternetExplorer:N,internetExplorerVersion:I,isEdge:s,edgeVersion:S,isFirefox:c,firefoxVersion:f,isWindows:O,hardwareConcurrency:e(D.hardwareConcurrency,3),supportsPointerEvents:M,supportsImageRenderingPixelated:F,supportsWebP:C,imageRenderingValue:U,typedArrayTypes:b};return Y.supportsFullscreen=function(){return n.supportsFullscreen()},Y.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},Y.supportsWebWorkers=function(){return"undefined"!=typeof Worker},Y.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!Y.isEdge()},Y}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,r,t,E,n,_){"use strict";if(!E.supportsTypedArrays())return{};var T={BYTE:_.BYTE,UNSIGNED_BYTE:_.UNSIGNED_BYTE,SHORT:_.SHORT,UNSIGNED_SHORT:_.UNSIGNED_SHORT,INT:_.INT,UNSIGNED_INT:_.UNSIGNED_INT,FLOAT:_.FLOAT,DOUBLE:_.DOUBLE};return T.getSizeInBytes=function(e){switch(e){case T.BYTE:return Int8Array.BYTES_PER_ELEMENT;case T.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case T.SHORT:return Int16Array.BYTES_PER_ELEMENT;case T.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case T.INT:return Int32Array.BYTES_PER_ELEMENT;case T.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case T.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case T.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},T.fromTypedArray=function(e){return e instanceof Int8Array?T.BYTE:e instanceof Uint8Array?T.UNSIGNED_BYTE:e instanceof Int16Array?T.SHORT:e instanceof Uint16Array?T.UNSIGNED_SHORT:e instanceof Int32Array?T.INT:e instanceof Uint32Array?T.UNSIGNED_INT:e instanceof Float32Array?T.FLOAT:e instanceof Float64Array?T.DOUBLE:void 0},T.validate=function(e){return r(e)&&(e===T.BYTE||e===T.UNSIGNED_BYTE||e===T.SHORT||e===T.UNSIGNED_SHORT||e===T.INT||e===T.UNSIGNED_INT||e===T.FLOAT||e===T.DOUBLE)},T.createTypedArray=function(e,r){switch(e){case T.BYTE:return new Int8Array(r);case T.UNSIGNED_BYTE:return new Uint8Array(r);case T.SHORT:return new Int16Array(r);case T.UNSIGNED_SHORT:return new Uint16Array(r);case T.INT:return new Int32Array(r);case T.UNSIGNED_INT:return new Uint32Array(r);case T.FLOAT:return new Float32Array(r);case T.DOUBLE:return new Float64Array(r)}},T.createArrayBufferView=function(r,t,E,n){switch(E=e(E,0),n=e(n,(t.byteLength-E)/T.getSizeInBytes(r)),r){case T.BYTE:return new Int8Array(t,E,n);case T.UNSIGNED_BYTE:return new Uint8Array(t,E,n);case T.SHORT:return new Int16Array(t,E,n);case T.UNSIGNED_SHORT:return new Uint16Array(t,E,n);case T.INT:return new Int32Array(t,E,n);case T.UNSIGNED_INT:return new Uint32Array(t,E,n);case T.FLOAT:return new Float32Array(t,E,n);case T.DOUBLE:return new Float64Array(t,E,n)}},T.fromName=function(e){switch(e){case"BYTE":return T.BYTE;case"UNSIGNED_BYTE":return T.UNSIGNED_BYTE;case"SHORT":return T.SHORT;case"UNSIGNED_SHORT":return T.UNSIGNED_SHORT;case"INT":return T.INT;case"UNSIGNED_INT":return T.UNSIGNED_INT;case"FLOAT":return T.FLOAT;case"DOUBLE":return T.DOUBLE}},n(T)}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,r=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var t;for(this.mti==this.N+1&&this.init_genrand(5489),t=0;t<this.N-this.M;t++)e=this.mt[t]&this.UPPER_MASK|this.mt[t+1]&this.LOWER_MASK,this.mt[t]=this.mt[t+this.M]^e>>>1^r[1&e];for(;t<this.N-1;t++)e=this.mt[t]&this.UPPER_MASK|this.mt[t+1]&this.LOWER_MASK,this.mt[t]=this.mt[t+(this.M-this.N)]^e>>>1^r[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^r[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Check",["./defined","./DeveloperError"],function(e,r){"use strict";function t(e){return e+" is required, actual value was undefined"}function E(e,r,t){return"Expected "+t+" to be typeof "+r+", actual typeof was "+e}var n={};return n.typeOf={},n.defined=function(E,n){if(!e(n))throw new r(t(E))},n.typeOf.func=function(e,t){if("function"!=typeof t)throw new r(E(typeof t,"function",e))},n.typeOf.string=function(e,t){if("string"!=typeof t)throw new r(E(typeof t,"string",e))},n.typeOf.number=function(e,t){if("number"!=typeof t)throw new r(E(typeof t,"number",e))},n.typeOf.number.lessThan=function(e,t,E){if(n.typeOf.number(e,t),t>=E)throw new r("Expected "+e+" to be less than "+E+", actual value was "+t)},n.typeOf.number.lessThanOrEquals=function(e,t,E){if(n.typeOf.number(e,t),t>E)throw new r("Expected "+e+" to be less than or equal to "+E+", actual value was "+t)},n.typeOf.number.greaterThan=function(e,t,E){if(n.typeOf.number(e,t),t<=E)throw new r("Expected "+e+" to be greater than "+E+", actual value was "+t)},n.typeOf.number.greaterThanOrEquals=function(e,t,E){if(n.typeOf.number(e,t),t<E)throw new r("Expected "+e+" to be greater than or equal to"+E+", actual value was "+t)},n.typeOf.object=function(e,t){if("object"!=typeof t)throw new r(E(typeof t,"object",e))},n.typeOf.bool=function(e,t){if("boolean"!=typeof t)throw new r(E(typeof t,"boolean",e))},n.typeOf.number.equals=function(e,t,E,_){if(n.typeOf.number(e,E),n.typeOf.number(t,_),E!==_)throw new r(e+" must be equal to "+t+", the actual values are "+E+" and "+_)},n}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,r,t,E,n){"use strict";var _={};_.EPSILON1=.1,_.EPSILON2=.01,_.EPSILON3=.001,_.EPSILON4=1e-4,_.EPSILON5=1e-5,_.EPSILON6=1e-6,_.EPSILON7=1e-7,_.EPSILON8=1e-8,_.EPSILON9=1e-9,_.EPSILON10=1e-10,_.EPSILON11=1e-11,_.EPSILON12=1e-12,_.EPSILON13=1e-13,_.EPSILON14=1e-14,_.EPSILON15=1e-15,_.EPSILON16=1e-16,_.EPSILON17=1e-17,_.EPSILON18=1e-18,_.EPSILON19=1e-19,_.EPSILON20=1e-20,_.EPSILON21=1e-21,_.GRAVITATIONALPARAMETER=3986004418e5,_.SOLAR_RADIUS=6955e5,_.LUNAR_RADIUS=1737400,_.SIXTY_FOUR_KILOBYTES=65536,_.sign=t(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),_.signNotZero=function(e){return e<0?-1:1},_.toSNorm=function(e,r){return r=t(r,255),Math.round((.5*_.clamp(e,-1,1)+.5)*r)},_.fromSNorm=function(e,r){return r=t(r,255),_.clamp(e,0,r)/r*2-1},_.normalize=function(e,r,t){return t=Math.max(t-r,0),0===t?0:_.clamp((e-r)/t,0,1)},_.sinh=t(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),_.cosh=t(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),_.lerp=function(e,r,t){return(1-t)*e+t*r},_.PI=Math.PI,_.ONE_OVER_PI=1/Math.PI,_.PI_OVER_TWO=Math.PI/2,_.PI_OVER_THREE=Math.PI/3,_.PI_OVER_FOUR=Math.PI/4,_.PI_OVER_SIX=Math.PI/6,_.THREE_PI_OVER_TWO=3*Math.PI/2,_.TWO_PI=2*Math.PI,_.ONE_OVER_TWO_PI=1/(2*Math.PI),_.RADIANS_PER_DEGREE=Math.PI/180,_.DEGREES_PER_RADIAN=180/Math.PI,_.RADIANS_PER_ARCSECOND=_.RADIANS_PER_DEGREE/3600,_.toRadians=function(e){return e*_.RADIANS_PER_DEGREE},_.toDegrees=function(e){return e*_.DEGREES_PER_RADIAN},_.convertLongitudeRange=function(e){var r=_.TWO_PI,t=e-Math.floor(e/r)*r;return t<-Math.PI?t+r:t>=Math.PI?t-r:t},_.clampToLatitudeRange=function(e){return _.clamp(e,-1*_.PI_OVER_TWO,_.PI_OVER_TWO)},_.negativePiToPi=function(e){return _.zeroToTwoPi(e+_.PI)-_.PI},_.zeroToTwoPi=function(e){var r=_.mod(e,_.TWO_PI);return Math.abs(r)<_.EPSILON14&&Math.abs(e)>_.EPSILON14?_.TWO_PI:r},_.mod=function(e,r){return(e%r+r)%r},_.equalsEpsilon=function(e,r,E,n){n=t(n,E);var _=Math.abs(e-r);return _<=n||_<=E*Math.max(Math.abs(e),Math.abs(r))},_.lessThan=function(e,r,t){return e-r<-t},_.lessThanOrEquals=function(e,r,t){return e-r<t},_.greaterThan=function(e,r,t){return e-r>t},_.greaterThanOrEquals=function(e,r,t){return e-r>-t};var T=[1];_.factorial=function(e){var r=T.length;if(e>=r)for(var t=T[r-1],E=r;E<=e;E++)T.push(t*E);return T[e]},_.incrementWrap=function(e,r,E){return E=t(E,0),++e,e>r&&(e=E),e},_.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},_.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},_.clamp=function(e,r,t){return e<r?r:e>t?t:e};var R=new e;return _.setRandomNumberSeed=function(r){R=new e(r)},_.nextRandomNumber=function(){return R.random()},_.randomBetween=function(e,r){return _.nextRandomNumber()*(r-e)+e},_.acosClamped=function(e){return Math.acos(_.clamp(e,-1,1))},_.asinClamped=function(e){return Math.asin(_.clamp(e,-1,1))},_.chordLength=function(e,r){return 2*r*Math.sin(.5*e)},_.logBase=function(e,r){return Math.log(e)/Math.log(r)},_.cbrt=t(Math.cbrt,function(e){var r=Math.pow(Math.abs(e),1/3);return e<0?-r:r}),_.log2=t(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),_.fog=function(e,r){var t=e*r;return 1-Math.exp(-t*t)},_.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},_.fastApproximateAtan2=function(e,r){var t,E,n=Math.abs(e);t=Math.abs(r),E=Math.max(n,t),t=Math.min(n,t);var T=t/E;return n=_.fastApproximateAtan(T), -n=Math.abs(r)>Math.abs(e)?_.PI_OVER_TWO-n:n,n=e<0?_.PI-n:n,n=r<0?-n:n},_}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,r,t,E,n){"use strict";var _={UNSIGNED_BYTE:n.UNSIGNED_BYTE,UNSIGNED_SHORT:n.UNSIGNED_SHORT,UNSIGNED_INT:n.UNSIGNED_INT};return _.getSizeInBytes=function(e){switch(e){case _.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case _.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case _.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},_.fromSizeInBytes=function(e){switch(e){case 2:return _.UNSIGNED_SHORT;case 4:return _.UNSIGNED_INT;case 1:return _.UNSIGNED_BYTE}},_.validate=function(r){return e(r)&&(r===_.UNSIGNED_BYTE||r===_.UNSIGNED_SHORT||r===_.UNSIGNED_INT)},_.createTypedArray=function(e,r){return e>=E.SIXTY_FOUR_KILOBYTES?new Uint32Array(r):new Uint16Array(r)},_.createTypedArrayFromArrayBuffer=function(e,r,t,n){return e>=E.SIXTY_FOUR_KILOBYTES?new Uint32Array(r,t,n):new Uint16Array(r,t,n)},t(_)}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function r(e){this.name="RuntimeError",this.message=e;var r;try{throw new Error}catch(e){r=e.stack}this.stack=r}return e(Object.create)&&(r.prototype=Object.create(Error.prototype),r.prototype.constructor=r),r.prototype.toString=function(){var r=this.name+": "+this.message;return e(this.stack)&&(r+="\n"+this.stack.toString()),r},r}),define("Core/formatError",["./defined"],function(e){"use strict";function r(r){var t,E=r.name,n=r.message;t=e(E)&&e(n)?E+": "+n:r.toString();var _=r.stack;return e(_)&&(t+="\n"+_),t}return r}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,r,t,E){"use strict";function n(r,t,E){try{return r(t,E)}catch(r){return e.reject(r)}}function _(_){var T;return function(R){var A=R.data,o=[],i={id:A.id,result:void 0,error:void 0};return e(n(_,A.parameters,o)).then(function(e){i.result=e}).otherwise(function(e){e instanceof Error?i.error={name:e.name,message:e.message,stack:e.stack}:i.error=e}).always(function(){t(T)||(T=r(self.webkitPostMessage,self.postMessage)),A.canTransferArrayBuffer||(o.length=0);try{T(i,o)}catch(e){i.result=void 0,i.error="postMessage failed with error: "+E(e)+"\n with responseMessage: "+JSON.stringify(i),T(i)}})}}return _}),define("Workers/decodeDraco",["../Core/ComponentDatatype","../Core/defined","../Core/IndexDatatype","../Core/RuntimeError","./createTaskProcessorWorker"],function(e,r,t,E,n){"use strict";function _(e,r){for(var E=e.num_points(),n=e.num_faces(),_=new I.DracoInt32Array,T=3*n,R=t.createTypedArray(E,T),A=0,o=0;o<n;++o)r.GetFaceFromMesh(e,o,_),R[A+0]=_.GetValue(0),R[A+1]=_.GetValue(1),R[A+2]=_.GetValue(2),A+=3;return I.destroy(_),{typedArray:R,numberOfIndices:T}}function T(e,r,t,E,n){var _,T;E.quantizationBits<=8?(T=new I.DracoUInt8Array,_=new Uint8Array(n),r.GetAttributeUInt8ForAllPoints(e,t,T)):(T=new I.DracoUInt16Array,_=new Uint16Array(n),r.GetAttributeUInt16ForAllPoints(e,t,T));for(var R=0;R<n;++R)_[R]=T.GetValue(R);return I.destroy(T),_}function R(e,r,t,E){var n,_;switch(t.data_type()){case 1:case 11:_=new I.DracoInt8Array,n=new Int8Array(E),r.GetAttributeInt8ForAllPoints(e,t,_);break;case 2:_=new I.DracoUInt8Array,n=new Uint8Array(E),r.GetAttributeUInt8ForAllPoints(e,t,_);break;case 3:_=new I.DracoInt16Array,n=new Int16Array(E),r.GetAttributeInt16ForAllPoints(e,t,_);break;case 4:_=new I.DracoUInt16Array,n=new Uint16Array(E),r.GetAttributeUInt16ForAllPoints(e,t,_);break;case 5:case 7:_=new I.DracoInt32Array,n=new Int32Array(E),r.GetAttributeInt32ForAllPoints(e,t,_);break;case 6:case 8:_=new I.DracoUInt32Array,n=new Uint32Array(E),r.GetAttributeUInt32ForAllPoints(e,t,_);break;case 9:case 10:_=new I.DracoFloat32Array,n=new Float32Array(E),r.GetAttributeFloatForAllPoints(e,t,_)}for(var T=0;T<E;++T)n[T]=_.GetValue(T);return I.destroy(_),n}function A(t,E,n){var _,A=t.num_points(),o=n.num_components(),i=new I.AttributeQuantizationTransform;if(i.InitFromAttribute(n)){for(var u=new Array(o),a=0;a<o;++a)u[a]=i.min_value(a);_={quantizationBits:i.quantization_bits(),minValues:u,range:i.range(),octEncoded:!1}}I.destroy(i),i=new I.AttributeOctahedronTransform,i.InitFromAttribute(n)&&(_={quantizationBits:i.quantization_bits(),octEncoded:!0}),I.destroy(i);var N,s=A*o;N=r(_)?T(t,E,n,_,s):R(t,E,n,s);var S=e.fromTypedArray(N);return{array:N,data:{componentsPerAttribute:o,componentDatatype:S,byteOffset:n.byte_offset(),byteStride:e.getSizeInBytes(S)*o,normalized:n.normalized(),quantization:_}}}function o(e){var r=new I.Decoder;e.dequantizeInShader&&(r.SkipAttributeTransform(I.POSITION),r.SkipAttributeTransform(I.NORMAL));var t=new I.DecoderBuffer;if(t.Init(e.buffer,e.buffer.length),r.GetEncodedGeometryType(t)!==I.POINT_CLOUD)throw new E("Draco geometry type must be POINT_CLOUD.");var n=new I.PointCloud,_=r.DecodeBufferToPointCloud(t,n);if(!_.ok()||0===n.ptr)throw new E("Error decoding draco point cloud: "+_.error_msg());I.destroy(t);var T={},R=e.properties;for(var o in R)if(R.hasOwnProperty(o)){var i=R[o],u=r.GetAttributeByUniqueId(n,i);T[o]=A(n,r,u)}return I.destroy(n),I.destroy(r),T}function i(e){var r=new I.Decoder,t=["POSITION","NORMAL","COLOR","TEX_COORD"];if(e.dequantizeInShader)for(var n=0;n<t.length;++n)r.SkipAttributeTransform(I[t[n]]);var T=e.bufferView,R=new I.DecoderBuffer;if(R.Init(e.array,T.byteLength),r.GetEncodedGeometryType(R)!==I.TRIANGULAR_MESH)throw new E("Unsupported draco mesh geometry type.");var o=new I.Mesh,i=r.DecodeBufferToMesh(R,o);if(!i.ok()||0===o.ptr)throw new E("Error decoding draco mesh geometry: "+i.error_msg());I.destroy(R);var u={},a=e.compressedAttributes;for(var N in a)if(a.hasOwnProperty(N)){var s=a[N],S=r.GetAttributeByUniqueId(o,s);u[N]=A(o,r,S)}var c={indexArray:_(o,r),attributeData:u};return I.destroy(o),I.destroy(r),c}function u(e){return r(e.primitive)?i(e):o(e)}function a(e){I=e,self.onmessage=n(u),self.postMessage(!0)}function N(e){var t=e.data,E=t.webAssemblyConfig;if(r(E))return require([E.modulePath],function(e){r(E.wasmBinaryFile)?(r(e)||(e=self.DracoDecoderModule),e(E).then(function(e){a(e)})):a(e())})}var I;return N})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as O}from"./chunk-TRPXTCDK.js";import{a as I}from"./chunk-3R25OJXK.js";import{a as m}from"./chunk-T53UE6JF.js";import{a as w}from"./chunk-6QVIJ7JA.js";import"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import{a as A}from"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import"./chunk-OYWUGDKS.js";import{d as D,e as d}from"./chunk-DRYFJEFT.js";var b=D(O(),1),o;function F(t,e){let i=t.num_points(),a=t.num_faces(),n=new o.DracoInt32Array,s=a*3,r=m.createTypedArray(i,s),u=0;for(let c=0;c<a;++c)e.GetFaceFromMesh(t,c,n),r[u+0]=n.GetValue(0),r[u+1]=n.GetValue(1),r[u+2]=n.GetValue(2),u+=3;return o.destroy(n),{typedArray:r,numberOfIndices:s}}function U(t,e,i,a,n){let s,r;a.quantizationBits<=8?(r=new o.DracoUInt8Array,s=new Uint8Array(n),e.GetAttributeUInt8ForAllPoints(t,i,r)):a.quantizationBits<=16?(r=new o.DracoUInt16Array,s=new Uint16Array(n),e.GetAttributeUInt16ForAllPoints(t,i,r)):(r=new o.DracoFloat32Array,s=new Float32Array(n),e.GetAttributeFloatForAllPoints(t,i,r));for(let u=0;u<n;++u)s[u]=r.GetValue(u);return o.destroy(r),s}function k(t,e,i,a){let n,s;switch(i.data_type()){case 1:case 11:s=new o.DracoInt8Array,n=new Int8Array(a),e.GetAttributeInt8ForAllPoints(t,i,s);break;case 2:s=new o.DracoUInt8Array,n=new Uint8Array(a),e.GetAttributeUInt8ForAllPoints(t,i,s);break;case 3:s=new o.DracoInt16Array,n=new Int16Array(a),e.GetAttributeInt16ForAllPoints(t,i,s);break;case 4:s=new o.DracoUInt16Array,n=new Uint16Array(a),e.GetAttributeUInt16ForAllPoints(t,i,s);break;case 5:case 7:s=new o.DracoInt32Array,n=new Int32Array(a),e.GetAttributeInt32ForAllPoints(t,i,s);break;case 6:case 8:s=new o.DracoUInt32Array,n=new Uint32Array(a),e.GetAttributeUInt32ForAllPoints(t,i,s);break;case 9:case 10:s=new o.DracoFloat32Array,n=new Float32Array(a),e.GetAttributeFloatForAllPoints(t,i,s);break}for(let r=0;r<a;++r)n[r]=s.GetValue(r);return o.destroy(s),n}function p(t,e,i){let a=t.num_points(),n=i.num_components(),s,r=new o.AttributeQuantizationTransform;if(r.InitFromAttribute(i)){let y=new Array(n);for(let f=0;f<n;++f)y[f]=r.min_value(f);s={quantizationBits:r.quantization_bits(),minValues:y,range:r.range(),octEncoded:!1}}o.destroy(r),r=new o.AttributeOctahedronTransform,r.InitFromAttribute(i)&&(s={quantizationBits:r.quantization_bits(),octEncoded:!0}),o.destroy(r);let u=a*n,c;d(s)?c=U(t,e,i,s,u):c=k(t,e,i,u);let l=w.fromTypedArray(c);return{array:c,data:{componentsPerAttribute:n,componentDatatype:l,byteOffset:i.byte_offset(),byteStride:w.getSizeInBytes(l)*n,normalized:i.normalized(),quantization:s}}}function _(t){let e=new o.Decoder;t.dequantizeInShader&&(e.SkipAttributeTransform(o.POSITION),e.SkipAttributeTransform(o.NORMAL));let i=new o.DecoderBuffer;if(i.Init(t.buffer,t.buffer.length),e.GetEncodedGeometryType(i)!==o.POINT_CLOUD)throw new A("Draco geometry type must be POINT_CLOUD.");let n=new o.PointCloud,s=e.DecodeBufferToPointCloud(i,n);if(!s.ok()||n.ptr===0)throw new A(`Error decoding draco point cloud: ${s.error_msg()}`);o.destroy(i);let r={},u=t.properties;for(let c in u)if(u.hasOwnProperty(c)){let l;if(c==="POSITION"||c==="NORMAL"){let y=e.GetAttributeId(n,o[c]);l=e.GetAttribute(n,y)}else{let y=u[c];l=e.GetAttributeByUniqueId(n,y)}r[c]=p(n,e,l)}return o.destroy(n),o.destroy(e),r}function g(t){let e=new o.Decoder,i=["POSITION","NORMAL","COLOR","TEX_COORD"];if(t.dequantizeInShader)for(let f=0;f<i.length;++f)e.SkipAttributeTransform(o[i[f]]);let a=t.bufferView,n=new o.DecoderBuffer;if(n.Init(t.array,a.byteLength),e.GetEncodedGeometryType(n)!==o.TRIANGULAR_MESH)throw new A("Unsupported draco mesh geometry type.");let r=new o.Mesh,u=e.DecodeBufferToMesh(n,r);if(!u.ok()||r.ptr===0)throw new A(`Error decoding draco mesh geometry: ${u.error_msg()}`);o.destroy(n);let c={},l=t.compressedAttributes;for(let f in l)if(l.hasOwnProperty(f)){let P=l[f],T=e.GetAttributeByUniqueId(r,P);c[f]=p(r,e,T)}let y={indexArray:F(r,e),attributeData:c};return o.destroy(r),o.destroy(e),y}async function z(t,e){return d(t.bufferView)?g(t):_(t)}async function C(t,e){let i=t.webAssemblyConfig;return d(i)&&d(i.wasmBinaryFile)?o=await(0,b.default)(i):o=await(0,b.default)(),!0}async function G(t,e){let i=t.webAssemblyConfig;return d(i)?C(t,e):z(t,e)}var h=I(G);export{h as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js index 0a454c6e4..ba7a7e9fe 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeGoogleEarthEnterprisePacket.js @@ -1,39 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,o){if(i.typeOf.number(e,r),i.typeOf.number(n,o),r!==o)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+o)},i}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/decodeGoogleEarthEnterpriseData",["./Check","./RuntimeError"],function(e,t){"use strict";function n(e,o){if(n.passThroughDataForTesting)return o;var a=e.byteLength;if(0===a||a%4!=0)throw new t("The length of key must be greater than 0 and a multiple of 4.");var s=new DataView(o),f=s.getUint32(0,!0);if(f===r||f===i)return o;for(var u,c=new DataView(e),l=0,h=o.byteLength,d=h-h%8,w=a,b=8;l<d;)for(b=(b+8)%24,u=b;l<d&&u<w;)s.setUint32(l,s.getUint32(l,!0)^c.getUint32(u,!0),!0),s.setUint32(l+4,s.getUint32(l+4,!0)^c.getUint32(u+4,!0),!0),l+=8,u+=24;if(l<h)for(u>=w&&(b=(b+8)%24,u=b);l<h;)s.setUint8(l,s.getUint8(l)^c.getUint8(u)),l++,u++}var r=1953029805,i=2917034100;return n.passThroughDataForTesting=!1,n}),define("Core/isBitSet",[],function(){"use strict";function e(e,t){return 0!=(e&t)}return e}),define("Core/GoogleEarthEnterpriseTileInformation",["./defined","./isBitSet"],function(e,t){"use strict";function n(e,t,n,r,i,o){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=r,this.imageryProvider=i,this.terrainProvider=o,this.ancestorHasTerrain=!1,this.terrainState=void 0}var r=[1,2,4,8];return n.clone=function(t,r){return e(r)?(r._bits=t._bits,r.cnodeVersion=t.cnodeVersion,r.imageryVersion=t.imageryVersion,r.terrainVersion=t.terrainVersion,r.imageryProvider=t.imageryProvider,r.terrainProvider=t.terrainProvider):r=new n(t._bits,t.cnodeVersion,t.imageryVersion,t.terrainVersion,t.imageryProvider,t.terrainProvider),r.ancestorHasTerrain=t.ancestorHasTerrain,r.terrainState=t.terrainState,r},n.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()},n.prototype.hasSubtree=function(){return t(this._bits,16)},n.prototype.hasImagery=function(){return t(this._bits,64)},n.prototype.hasTerrain=function(){return t(this._bits,128)},n.prototype.hasChildren=function(){return t(this._bits,15)},n.prototype.hasChild=function(e){return t(this._bits,r[e])},n.prototype.getChildBitmask=function(){return 15&this._bits},n}),function(e){if("object"==typeof exports&&"undefined"!=typeof module)module.exports=e();else if("function"==typeof define&&define.amd)define("ThirdParty/pako_inflate",[],e);else{var t;t="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:this,t.pako=e()}}(function(){return function e(t,n,r){function i(a,s){if(!n[a]){if(!t[a]){var f="function"==typeof require&&require;if(!s&&f)return f(a,!0);if(o)return o(a,!0);var u=new Error("Cannot find module '"+a+"'");throw u.code="MODULE_NOT_FOUND",u}var c=n[a]={exports:{}};t[a][0].call(c.exports,function(e){var n=t[a][1][e];return i(n||e)},c,c.exports,e,t,n,r)}return n[a].exports}for(var o="function"==typeof require&&require,a=0;a<r.length;a++)i(r[a]);return i}({1:[function(e,t,n){"use strict";var r="undefined"!=typeof Uint8Array&&"undefined"!=typeof Uint16Array&&"undefined"!=typeof Int32Array;n.assign=function(e){for(var t=Array.prototype.slice.call(arguments,1);t.length;){var n=t.shift();if(n){if("object"!=typeof n)throw new TypeError(n+"must be non-object");for(var r in n)n.hasOwnProperty(r)&&(e[r]=n[r])}}return e},n.shrinkBuf=function(e,t){return e.length===t?e:e.subarray?e.subarray(0,t):(e.length=t,e)};var i={arraySet:function(e,t,n,r,i){if(t.subarray&&e.subarray)return void e.set(t.subarray(n,n+r),i);for(var o=0;o<r;o++)e[i+o]=t[n+o]},flattenChunks:function(e){var t,n,r,i,o,a;for(r=0,t=0,n=e.length;t<n;t++)r+=e[t].length;for(a=new Uint8Array(r),i=0,t=0,n=e.length;t<n;t++)o=e[t],a.set(o,i),i+=o.length;return a}},o={arraySet:function(e,t,n,r,i){for(var o=0;o<r;o++)e[i+o]=t[n+o]},flattenChunks:function(e){return[].concat.apply([],e)}};n.setTyped=function(e){e?(n.Buf8=Uint8Array,n.Buf16=Uint16Array,n.Buf32=Int32Array,n.assign(n,i)):(n.Buf8=Array,n.Buf16=Array,n.Buf32=Array,n.assign(n,o))},n.setTyped(r)},{}],2:[function(e,t,n){"use strict";function r(e,t){if(t<65537&&(e.subarray&&a||!e.subarray&&o))return String.fromCharCode.apply(null,i.shrinkBuf(e,t));for(var n="",r=0;r<t;r++)n+=String.fromCharCode(e[r]);return n}var i=e("./common"),o=!0,a=!0;try{String.fromCharCode.apply(null,[0])}catch(e){o=!1}try{String.fromCharCode.apply(null,new Uint8Array(1))}catch(e){a=!1}for(var s=new i.Buf8(256),f=0;f<256;f++)s[f]=f>=252?6:f>=248?5:f>=240?4:f>=224?3:f>=192?2:1;s[254]=s[254]=1,n.string2buf=function(e){var t,n,r,o,a,s=e.length,f=0;for(o=0;o<s;o++)n=e.charCodeAt(o),55296==(64512&n)&&o+1<s&&56320==(64512&(r=e.charCodeAt(o+1)))&&(n=65536+(n-55296<<10)+(r-56320),o++),f+=n<128?1:n<2048?2:n<65536?3:4;for(t=new i.Buf8(f),a=0,o=0;a<f;o++)n=e.charCodeAt(o),55296==(64512&n)&&o+1<s&&56320==(64512&(r=e.charCodeAt(o+1)))&&(n=65536+(n-55296<<10)+(r-56320),o++),n<128?t[a++]=n:n<2048?(t[a++]=192|n>>>6,t[a++]=128|63&n):n<65536?(t[a++]=224|n>>>12,t[a++]=128|n>>>6&63,t[a++]=128|63&n):(t[a++]=240|n>>>18,t[a++]=128|n>>>12&63,t[a++]=128|n>>>6&63,t[a++]=128|63&n);return t},n.buf2binstring=function(e){return r(e,e.length)},n.binstring2buf=function(e){for(var t=new i.Buf8(e.length),n=0,r=t.length;n<r;n++)t[n]=e.charCodeAt(n);return t},n.buf2string=function(e,t){var n,i,o,a,f=t||e.length,u=new Array(2*f);for(i=0,n=0;n<f;)if((o=e[n++])<128)u[i++]=o;else if((a=s[o])>4)u[i++]=65533,n+=a-1;else{for(o&=2===a?31:3===a?15:7;a>1&&n<f;)o=o<<6|63&e[n++],a--;a>1?u[i++]=65533:o<65536?u[i++]=o:(o-=65536,u[i++]=55296|o>>10&1023,u[i++]=56320|1023&o)}return r(u,i)},n.utf8border=function(e,t){var n;for(t=t||e.length,t>e.length&&(t=e.length),n=t-1;n>=0&&128==(192&e[n]);)n--;return n<0?t:0===n?t:n+s[e[n]]>t?n:t}},{"./common":1}],3:[function(e,t,n){"use strict";function r(e,t,n,r){for(var i=65535&e|0,o=e>>>16&65535|0,a=0;0!==n;){a=n>2e3?2e3:n,n-=a;do{i=i+t[r++]|0,o=o+i|0}while(--a);i%=65521,o%=65521}return i|o<<16|0}t.exports=r},{}],4:[function(e,t,n){"use strict";t.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}},{}],5:[function(e,t,n){"use strict";function r(e,t,n,r){var o=i,a=r+n;e^=-1;for(var s=r;s<a;s++)e=e>>>8^o[255&(e^t[s])];return-1^e}var i=function(){for(var e,t=[],n=0;n<256;n++){e=n;for(var r=0;r<8;r++)e=1&e?3988292384^e>>>1:e>>>1;t[n]=e}return t}();t.exports=r},{}],6:[function(e,t,n){"use strict";function r(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}t.exports=r},{}],7:[function(e,t,n){"use strict";t.exports=function(e,t){var n,r,i,o,a,s,f,u,c,l,h,d,w,b,m,g,p,v,k,y,_,E,x,T,S;n=e.state,r=e.next_in,T=e.input,i=r+(e.avail_in-5),o=e.next_out,S=e.output,a=o-(t-e.avail_out),s=o+(e.avail_out-257),f=n.dmax,u=n.wsize,c=n.whave,l=n.wnext,h=n.window,d=n.hold,w=n.bits,b=n.lencode,m=n.distcode,g=(1<<n.lenbits)-1,p=(1<<n.distbits)-1;e:do{w<15&&(d+=T[r++]<<w,w+=8,d+=T[r++]<<w,w+=8),v=b[d&g];t:for(;;){if(k=v>>>24,d>>>=k,w-=k,0===(k=v>>>16&255))S[o++]=65535&v;else{if(!(16&k)){if(0==(64&k)){v=b[(65535&v)+(d&(1<<k)-1)];continue t}if(32&k){n.mode=12;break e}e.msg="invalid literal/length code",n.mode=30;break e}y=65535&v,k&=15,k&&(w<k&&(d+=T[r++]<<w,w+=8),y+=d&(1<<k)-1,d>>>=k,w-=k),w<15&&(d+=T[r++]<<w,w+=8,d+=T[r++]<<w,w+=8),v=m[d&p];n:for(;;){if(k=v>>>24,d>>>=k,w-=k,!(16&(k=v>>>16&255))){if(0==(64&k)){v=m[(65535&v)+(d&(1<<k)-1)];continue n}e.msg="invalid distance code",n.mode=30;break e}if(_=65535&v,k&=15,w<k&&(d+=T[r++]<<w,(w+=8)<k&&(d+=T[r++]<<w,w+=8)),(_+=d&(1<<k)-1)>f){e.msg="invalid distance too far back",n.mode=30;break e}if(d>>>=k,w-=k,k=o-a,_>k){if((k=_-k)>c&&n.sane){e.msg="invalid distance too far back",n.mode=30;break e}if(E=0,x=h,0===l){if(E+=u-k,k<y){y-=k;do{S[o++]=h[E++]}while(--k);E=o-_,x=S}}else if(l<k){if(E+=u+l-k,(k-=l)<y){y-=k;do{S[o++]=h[E++]}while(--k);if(E=0,l<y){k=l,y-=k;do{S[o++]=h[E++]}while(--k);E=o-_,x=S}}}else if(E+=l-k,k<y){y-=k;do{S[o++]=h[E++]}while(--k);E=o-_,x=S}for(;y>2;)S[o++]=x[E++],S[o++]=x[E++],S[o++]=x[E++],y-=3;y&&(S[o++]=x[E++],y>1&&(S[o++]=x[E++]))}else{E=o-_;do{S[o++]=S[E++],S[o++]=S[E++],S[o++]=S[E++],y-=3}while(y>2);y&&(S[o++]=S[E++],y>1&&(S[o++]=S[E++]))}break}}break}}while(r<i&&o<s);y=w>>3,r-=y,w-=y<<3,d&=(1<<w)-1,e.next_in=r,e.next_out=o,e.avail_in=r<i?i-r+5:5-(r-i),e.avail_out=o<s?s-o+257:257-(o-s),n.hold=d,n.bits=w}},{}],8:[function(e,t,n){"use strict";function r(e){return(e>>>24&255)+(e>>>8&65280)+((65280&e)<<8)+((255&e)<<24)}function i(){this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new p.Buf16(320),this.work=new p.Buf16(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}function o(e){var t;return e&&e.state?(t=e.state,e.total_in=e.total_out=t.total=0,e.msg="",t.wrap&&(e.adler=1&t.wrap),t.mode=z,t.last=0,t.havedict=0,t.dmax=32768,t.head=null,t.hold=0,t.bits=0,t.lencode=t.lendyn=new p.Buf32(be),t.distcode=t.distdyn=new p.Buf32(me),t.sane=1,t.back=-1,A):U}function a(e){var t;return e&&e.state?(t=e.state,t.wsize=0,t.whave=0,t.wnext=0,o(e)):U}function s(e,t){var n,r;return e&&e.state?(r=e.state,t<0?(n=0,t=-t):(n=1+(t>>4),t<48&&(t&=15)),t&&(t<8||t>15)?U:(null!==r.window&&r.wbits!==t&&(r.window=null),r.wrap=n,r.wbits=t,a(e))):U}function f(e,t){var n,r;return e?(r=new i,e.state=r,r.window=null,n=s(e,t),n!==A&&(e.state=null),n):U}function u(e){return f(e,ge)}function c(e){if(pe){var t;for(m=new p.Buf32(512),g=new p.Buf32(32),t=0;t<144;)e.lens[t++]=8;for(;t<256;)e.lens[t++]=9;for(;t<280;)e.lens[t++]=7;for(;t<288;)e.lens[t++]=8;for(_(x,e.lens,0,288,m,0,e.work,{bits:9}),t=0;t<32;)e.lens[t++]=5;_(T,e.lens,0,32,g,0,e.work,{bits:5}),pe=!1}e.lencode=m,e.lenbits=9,e.distcode=g,e.distbits=5}function l(e,t,n,r){var i,o=e.state;return null===o.window&&(o.wsize=1<<o.wbits,o.wnext=0,o.whave=0,o.window=new p.Buf8(o.wsize)),r>=o.wsize?(p.arraySet(o.window,t,n-o.wsize,o.wsize,0),o.wnext=0,o.whave=o.wsize):(i=o.wsize-o.wnext,i>r&&(i=r),p.arraySet(o.window,t,n-r,i,o.wnext),r-=i,r?(p.arraySet(o.window,t,n-r,r,0),o.wnext=r,o.whave=o.wsize):(o.wnext+=i,o.wnext===o.wsize&&(o.wnext=0),o.whave<o.wsize&&(o.whave+=i))),0}function h(e,t){var n,i,o,a,s,f,u,h,d,w,b,m,g,be,me,ge,pe,ve,ke,ye,_e,Ee,xe,Te,Se=0,Oe=new p.Buf8(4),Be=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];if(!e||!e.state||!e.output||!e.input&&0!==e.avail_in)return U;n=e.state,n.mode===G&&(n.mode=W),s=e.next_out,o=e.output,u=e.avail_out,a=e.next_in,i=e.input,f=e.avail_in,h=n.hold,d=n.bits,w=f,b=u,Ee=A;e:for(;;)switch(n.mode){case z:if(0===n.wrap){n.mode=W;break}for(;d<16;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(2&n.wrap&&35615===h){n.check=0,Oe[0]=255&h,Oe[1]=h>>>8&255,n.check=k(n.check,Oe,2,0),h=0,d=0,n.mode=j;break}if(n.flags=0,n.head&&(n.head.done=!1),!(1&n.wrap)||(((255&h)<<8)+(h>>8))%31){e.msg="incorrect header check",n.mode=he;break}if((15&h)!==N){e.msg="unknown compression method",n.mode=he;break}if(h>>>=4,d-=4,_e=8+(15&h),0===n.wbits)n.wbits=_e;else if(_e>n.wbits){e.msg="invalid window size",n.mode=he;break}n.dmax=1<<_e,e.adler=n.check=1,n.mode=512&h?K:G,h=0,d=0;break;case j:for(;d<16;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(n.flags=h,(255&n.flags)!==N){e.msg="unknown compression method",n.mode=he;break}if(57344&n.flags){e.msg="unknown header flags set",n.mode=he;break}n.head&&(n.head.text=h>>8&1),512&n.flags&&(Oe[0]=255&h,Oe[1]=h>>>8&255,n.check=k(n.check,Oe,2,0)),h=0,d=0,n.mode=P;case P:for(;d<32;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.head&&(n.head.time=h),512&n.flags&&(Oe[0]=255&h,Oe[1]=h>>>8&255,Oe[2]=h>>>16&255,Oe[3]=h>>>24&255,n.check=k(n.check,Oe,4,0)),h=0,d=0,n.mode=F;case F:for(;d<16;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.head&&(n.head.xflags=255&h,n.head.os=h>>8),512&n.flags&&(Oe[0]=255&h,Oe[1]=h>>>8&255,n.check=k(n.check,Oe,2,0)),h=0,d=0,n.mode=M;case M:if(1024&n.flags){for(;d<16;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.length=h,n.head&&(n.head.extra_len=h),512&n.flags&&(Oe[0]=255&h,Oe[1]=h>>>8&255,n.check=k(n.check,Oe,2,0)),h=0,d=0}else n.head&&(n.head.extra=null);n.mode=L;case L:if(1024&n.flags&&(m=n.length,m>f&&(m=f),m&&(n.head&&(_e=n.head.extra_len-n.length,n.head.extra||(n.head.extra=new Array(n.head.extra_len)),p.arraySet(n.head.extra,i,a,m,_e)),512&n.flags&&(n.check=k(n.check,i,m,a)),f-=m,a+=m,n.length-=m),n.length))break e;n.length=0,n.mode=H;case H:if(2048&n.flags){if(0===f)break e;m=0;do{_e=i[a+m++],n.head&&_e&&n.length<65536&&(n.head.name+=String.fromCharCode(_e))}while(_e&&m<f);if(512&n.flags&&(n.check=k(n.check,i,m,a)),f-=m,a+=m,_e)break e}else n.head&&(n.head.name=null);n.length=0,n.mode=V;case V:if(4096&n.flags){if(0===f)break e;m=0;do{_e=i[a+m++],n.head&&_e&&n.length<65536&&(n.head.comment+=String.fromCharCode(_e))}while(_e&&m<f);if(512&n.flags&&(n.check=k(n.check,i,m,a)),f-=m,a+=m,_e)break e}else n.head&&(n.head.comment=null);n.mode=q;case q:if(512&n.flags){for(;d<16;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(h!==(65535&n.check)){e.msg="header crc mismatch",n.mode=he;break}h=0,d=0}n.head&&(n.head.hcrc=n.flags>>9&1,n.head.done=!0),e.adler=n.check=0,n.mode=G;break;case K:for(;d<32;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}e.adler=n.check=r(h),h=0,d=0,n.mode=Y;case Y:if(0===n.havedict)return e.next_out=s,e.avail_out=u,e.next_in=a,e.avail_in=f,n.hold=h,n.bits=d,R;e.adler=n.check=1,n.mode=G;case G:if(t===O||t===B)break e;case W:if(n.last){h>>>=7&d,d-=7&d,n.mode=ue;break}for(;d<3;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}switch(n.last=1&h,h>>>=1,d-=1,3&h){case 0:n.mode=J;break;case 1:if(c(n),n.mode=ne,t===B){h>>>=2,d-=2;break e}break;case 2:n.mode=$;break;case 3:e.msg="invalid block type",n.mode=he}h>>>=2,d-=2;break;case J:for(h>>>=7&d,d-=7&d;d<32;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if((65535&h)!=(h>>>16^65535)){e.msg="invalid stored block lengths",n.mode=he;break}if(n.length=65535&h,h=0,d=0,n.mode=Q,t===B)break e;case Q:n.mode=X;case X:if(m=n.length){if(m>f&&(m=f),m>u&&(m=u),0===m)break e;p.arraySet(o,i,a,m,s),f-=m,a+=m,u-=m,s+=m,n.length-=m;break}n.mode=G;break;case $:for(;d<14;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(n.nlen=257+(31&h),h>>>=5,d-=5,n.ndist=1+(31&h),h>>>=5,d-=5,n.ncode=4+(15&h),h>>>=4,d-=4,n.nlen>286||n.ndist>30){e.msg="too many length or distance symbols",n.mode=he;break}n.have=0,n.mode=ee;case ee:for(;n.have<n.ncode;){for(;d<3;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.lens[Be[n.have++]]=7&h,h>>>=3,d-=3}for(;n.have<19;)n.lens[Be[n.have++]]=0;if(n.lencode=n.lendyn,n.lenbits=7,xe={bits:n.lenbits},Ee=_(E,n.lens,0,19,n.lencode,0,n.work,xe),n.lenbits=xe.bits,Ee){e.msg="invalid code lengths set",n.mode=he;break}n.have=0,n.mode=te;case te:for(;n.have<n.nlen+n.ndist;){for(;Se=n.lencode[h&(1<<n.lenbits)-1],me=Se>>>24,ge=Se>>>16&255,pe=65535&Se,!(me<=d);){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(pe<16)h>>>=me,d-=me,n.lens[n.have++]=pe;else{if(16===pe){for(Te=me+2;d<Te;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(h>>>=me,d-=me,0===n.have){e.msg="invalid bit length repeat",n.mode=he;break}_e=n.lens[n.have-1],m=3+(3&h),h>>>=2,d-=2}else if(17===pe){for(Te=me+3;d<Te;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}h>>>=me,d-=me,_e=0,m=3+(7&h),h>>>=3,d-=3}else{for(Te=me+7;d<Te;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}h>>>=me,d-=me,_e=0,m=11+(127&h),h>>>=7,d-=7}if(n.have+m>n.nlen+n.ndist){e.msg="invalid bit length repeat",n.mode=he;break}for(;m--;)n.lens[n.have++]=_e}}if(n.mode===he)break;if(0===n.lens[256]){e.msg="invalid code -- missing end-of-block",n.mode=he;break}if(n.lenbits=9,xe={bits:n.lenbits},Ee=_(x,n.lens,0,n.nlen,n.lencode,0,n.work,xe),n.lenbits=xe.bits,Ee){e.msg="invalid literal/lengths set",n.mode=he;break}if(n.distbits=6,n.distcode=n.distdyn,xe={bits:n.distbits},Ee=_(T,n.lens,n.nlen,n.ndist,n.distcode,0,n.work,xe),n.distbits=xe.bits,Ee){e.msg="invalid distances set",n.mode=he;break}if(n.mode=ne,t===B)break e;case ne:n.mode=re;case re:if(f>=6&&u>=258){e.next_out=s,e.avail_out=u,e.next_in=a,e.avail_in=f,n.hold=h,n.bits=d,y(e,b),s=e.next_out,o=e.output,u=e.avail_out,a=e.next_in,i=e.input,f=e.avail_in,h=n.hold,d=n.bits,n.mode===G&&(n.back=-1);break}for(n.back=0;Se=n.lencode[h&(1<<n.lenbits)-1],me=Se>>>24,ge=Se>>>16&255,pe=65535&Se,!(me<=d);){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(ge&&0==(240&ge)){for(ve=me,ke=ge,ye=pe;Se=n.lencode[ye+((h&(1<<ve+ke)-1)>>ve)],me=Se>>>24,ge=Se>>>16&255,pe=65535&Se,!(ve+me<=d);){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}h>>>=ve,d-=ve,n.back+=ve}if(h>>>=me,d-=me,n.back+=me,n.length=pe,0===ge){n.mode=fe;break}if(32&ge){n.back=-1,n.mode=G;break}if(64&ge){e.msg="invalid literal/length code",n.mode=he;break}n.extra=15&ge,n.mode=ie;case ie:if(n.extra){for(Te=n.extra;d<Te;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.length+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}n.was=n.length,n.mode=oe;case oe:for(;Se=n.distcode[h&(1<<n.distbits)-1],me=Se>>>24,ge=Se>>>16&255,pe=65535&Se,!(me<=d);){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(0==(240&ge)){for(ve=me,ke=ge,ye=pe;Se=n.distcode[ye+((h&(1<<ve+ke)-1)>>ve)],me=Se>>>24,ge=Se>>>16&255,pe=65535&Se,!(ve+me<=d);){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}h>>>=ve,d-=ve,n.back+=ve}if(h>>>=me,d-=me,n.back+=me,64&ge){e.msg="invalid distance code",n.mode=he;break}n.offset=pe,n.extra=15&ge,n.mode=ae;case ae:if(n.extra){for(Te=n.extra;d<Te;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}n.offset+=h&(1<<n.extra)-1,h>>>=n.extra,d-=n.extra,n.back+=n.extra}if(n.offset>n.dmax){e.msg="invalid distance too far back",n.mode=he;break}n.mode=se;case se:if(0===u)break e;if(m=b-u,n.offset>m){if((m=n.offset-m)>n.whave&&n.sane){e.msg="invalid distance too far back",n.mode=he;break}m>n.wnext?(m-=n.wnext,g=n.wsize-m):g=n.wnext-m,m>n.length&&(m=n.length),be=n.window}else be=o,g=s-n.offset,m=n.length;m>u&&(m=u),u-=m,n.length-=m;do{o[s++]=be[g++]}while(--m);0===n.length&&(n.mode=re);break;case fe:if(0===u)break e;o[s++]=n.length,u--,n.mode=re;break;case ue:if(n.wrap){for(;d<32;){if(0===f)break e;f--,h|=i[a++]<<d,d+=8}if(b-=u,e.total_out+=b,n.total+=b,b&&(e.adler=n.check=n.flags?k(n.check,o,b,s-b):v(n.check,o,b,s-b)),b=u,(n.flags?h:r(h))!==n.check){e.msg="incorrect data check",n.mode=he;break}h=0,d=0}n.mode=ce;case ce:if(n.wrap&&n.flags){for(;d<32;){if(0===f)break e;f--,h+=i[a++]<<d,d+=8}if(h!==(4294967295&n.total)){e.msg="incorrect length check",n.mode=he;break}h=0,d=0}n.mode=le;case le:Ee=C;break e;case he:Ee=I;break e;case de:return Z;case we:default:return U}return e.next_out=s,e.avail_out=u,e.next_in=a,e.avail_in=f,n.hold=h,n.bits=d,(n.wsize||b!==e.avail_out&&n.mode<he&&(n.mode<ue||t!==S))&&l(e,e.output,e.next_out,b-e.avail_out)?(n.mode=de,Z):(w-=e.avail_in,b-=e.avail_out,e.total_in+=w,e.total_out+=b,n.total+=b,n.wrap&&b&&(e.adler=n.check=n.flags?k(n.check,o,b,e.next_out-b):v(n.check,o,b,e.next_out-b)),e.data_type=n.bits+(n.last?64:0)+(n.mode===G?128:0)+(n.mode===ne||n.mode===Q?256:0),(0===w&&0===b||t===S)&&Ee===A&&(Ee=D),Ee)}function d(e){if(!e||!e.state)return U;var t=e.state;return t.window&&(t.window=null),e.state=null,A}function w(e,t){var n;return e&&e.state?(n=e.state,0==(2&n.wrap)?U:(n.head=t,t.done=!1,A)):U}function b(e,t){var n,r,i=t.length;return e&&e.state?(n=e.state,0!==n.wrap&&n.mode!==Y?U:n.mode===Y&&(r=1,(r=v(r,t,i,0))!==n.check)?I:l(e,t,i,i)?(n.mode=de,Z):(n.havedict=1,A)):U}var m,g,p=e("../utils/common"),v=e("./adler32"),k=e("./crc32"),y=e("./inffast"),_=e("./inftrees"),E=0,x=1,T=2,S=4,O=5,B=6,A=0,C=1,R=2,U=-2,I=-3,Z=-4,D=-5,N=8,z=1,j=2,P=3,F=4,M=5,L=6,H=7,V=8,q=9,K=10,Y=11,G=12,W=13,J=14,Q=15,X=16,$=17,ee=18,te=19,ne=20,re=21,ie=22,oe=23,ae=24,se=25,fe=26,ue=27,ce=28,le=29,he=30,de=31,we=32,be=852,me=592,ge=15,pe=!0;n.inflateReset=a,n.inflateReset2=s,n.inflateResetKeep=o,n.inflateInit=u,n.inflateInit2=f,n.inflate=h,n.inflateEnd=d,n.inflateGetHeader=w,n.inflateSetDictionary=b,n.inflateInfo="pako inflate (from Nodeca project)"},{"../utils/common":1,"./adler32":3,"./crc32":5,"./inffast":7,"./inftrees":9}],9:[function(e,t,n){"use strict";var r=e("../utils/common"),i=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],o=[16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78],a=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0],s=[16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64];t.exports=function(e,t,n,f,u,c,l,h){var d,w,b,m,g,p,v,k,y,_=h.bits,E=0,x=0,T=0,S=0,O=0,B=0,A=0,C=0,R=0,U=0,I=null,Z=0,D=new r.Buf16(16),N=new r.Buf16(16),z=null,j=0;for(E=0;E<=15;E++)D[E]=0;for(x=0;x<f;x++)D[t[n+x]]++;for(O=_,S=15;S>=1&&0===D[S];S--);if(O>S&&(O=S),0===S)return u[c++]=20971520,u[c++]=20971520,h.bits=1,0;for(T=1;T<S&&0===D[T];T++);for(O<T&&(O=T),C=1,E=1;E<=15;E++)if(C<<=1,(C-=D[E])<0)return-1;if(C>0&&(0===e||1!==S))return-1;for(N[1]=0,E=1;E<15;E++)N[E+1]=N[E]+D[E];for(x=0;x<f;x++)0!==t[n+x]&&(l[N[t[n+x]]++]=x);if(0===e?(I=z=l,p=19):1===e?(I=i,Z-=257,z=o,j-=257,p=256):(I=a,z=s,p=-1),U=0,x=0,E=T,g=c,B=O,A=0,b=-1,R=1<<O,m=R-1,1===e&&R>852||2===e&&R>592)return 1;for(;;){v=E-A,l[x]<p?(k=0,y=l[x]):l[x]>p?(k=z[j+l[x]],y=I[Z+l[x]]):(k=96,y=0),d=1<<E-A,w=1<<B,T=w;do{w-=d,u[g+(U>>A)+w]=v<<24|k<<16|y|0}while(0!==w);for(d=1<<E-1;U&d;)d>>=1;if(0!==d?(U&=d-1,U+=d):U=0,x++,0==--D[E]){if(E===S)break;E=t[n+l[x]]}if(E>O&&(U&m)!==b){for(0===A&&(A=O),g+=T,B=E-A,C=1<<B;B+A<S&&!((C-=D[B+A])<=0);)B++,C<<=1;if(R+=1<<B,1===e&&R>852||2===e&&R>592)return 1;b=U&m,u[b]=O<<24|B<<16|g-c|0}}return 0!==U&&(u[g+U]=E-A<<24|64<<16|0),h.bits=O,0}},{"../utils/common":1}],10:[function(e,t,n){"use strict";t.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}},{}],11:[function(e,t,n){"use strict";function r(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}t.exports=r},{}],"/lib/inflate.js":[function(e,t,n){"use strict";function r(e){if(!(this instanceof r))return new r(e);this.options=s.assign({chunkSize:16384,windowBits:0,to:""},e||{});var t=this.options;t.raw&&t.windowBits>=0&&t.windowBits<16&&(t.windowBits=-t.windowBits,0===t.windowBits&&(t.windowBits=-15)),!(t.windowBits>=0&&t.windowBits<16)||e&&e.windowBits||(t.windowBits+=32),t.windowBits>15&&t.windowBits<48&&0==(15&t.windowBits)&&(t.windowBits|=15),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new l,this.strm.avail_out=0;var n=a.inflateInit2(this.strm,t.windowBits);if(n!==u.Z_OK)throw new Error(c[n]);this.header=new h,a.inflateGetHeader(this.strm,this.header)}function i(e,t){var n=new r(t);if(n.push(e,!0),n.err)throw n.msg||c[n.err];return n.result}function o(e,t){return t=t||{},t.raw=!0,i(e,t)}var a=e("./zlib/inflate"),s=e("./utils/common"),f=e("./utils/strings"),u=e("./zlib/constants"),c=e("./zlib/messages"),l=e("./zlib/zstream"),h=e("./zlib/gzheader"),d=Object.prototype.toString;r.prototype.push=function(e,t){var n,r,i,o,c,l,h=this.strm,w=this.options.chunkSize,b=this.options.dictionary,m=!1;if(this.ended)return!1;r=t===~~t?t:!0===t?u.Z_FINISH:u.Z_NO_FLUSH,"string"==typeof e?h.input=f.binstring2buf(e):"[object ArrayBuffer]"===d.call(e)?h.input=new Uint8Array(e):h.input=e,h.next_in=0,h.avail_in=h.input.length;do{if(0===h.avail_out&&(h.output=new s.Buf8(w),h.next_out=0,h.avail_out=w),n=a.inflate(h,u.Z_NO_FLUSH),n===u.Z_NEED_DICT&&b&&(l="string"==typeof b?f.string2buf(b):"[object ArrayBuffer]"===d.call(b)?new Uint8Array(b):b,n=a.inflateSetDictionary(this.strm,l)),n===u.Z_BUF_ERROR&&!0===m&&(n=u.Z_OK,m=!1),n!==u.Z_STREAM_END&&n!==u.Z_OK)return this.onEnd(n),this.ended=!0,!1;h.next_out&&(0!==h.avail_out&&n!==u.Z_STREAM_END&&(0!==h.avail_in||r!==u.Z_FINISH&&r!==u.Z_SYNC_FLUSH)||("string"===this.options.to?(i=f.utf8border(h.output,h.next_out),o=h.next_out-i,c=f.buf2string(h.output,i),h.next_out=o,h.avail_out=w-o,o&&s.arraySet(h.output,h.output,i,o,0),this.onData(c)):this.onData(s.shrinkBuf(h.output,h.next_out)))),0===h.avail_in&&0===h.avail_out&&(m=!0)}while((h.avail_in>0||0===h.avail_out)&&n!==u.Z_STREAM_END);return n===u.Z_STREAM_END&&(r=u.Z_FINISH),r===u.Z_FINISH?(n=a.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,n===u.Z_OK):r!==u.Z_SYNC_FLUSH||(this.onEnd(u.Z_OK),h.avail_out=0,!0)},r.prototype.onData=function(e){this.chunks.push(e)},r.prototype.onEnd=function(e){e===u.Z_OK&&("string"===this.options.to?this.result=this.chunks.join(""):this.result=s.flattenChunks(this.chunks)),this.chunks=[],this.err=e,this.msg=this.strm.msg},n.Inflate=r,n.inflate=i,n.inflateRaw=o,n.ungzip=i},{"./utils/common":1,"./utils/strings":2,"./zlib/constants":4,"./zlib/gzheader":6,"./zlib/inflate":8,"./zlib/messages":10,"./zlib/zstream":11}]},{},[])("/lib/inflate.js")}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:s(e)?(n=a(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,o)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return o(e)}})}function o(e){return new r(function(n,r){try{return r?t(r(e)):o(e)}catch(e){return o(e)}})}function a(){function e(e,t,n){return h(e,t,n)}function n(e){return w(e)}function i(e){return w(o(e))}function s(e){return d(e)}var f,u,c,l,h,d,w;return u=new r(e),f={then:e,resolve:n,reject:i,progress:s,promise:u,resolver:{resolve:n,reject:i,progress:s}},c=[],l=[],h=function(e,t,n){var r,i;return r=a(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},c.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),l.push(i),r.promise},d=function(e){return b(l,e),e},w=function(e){return e=t(e),h=e.then,w=t,d=g,b(c,e),l=c=y,e},f}function s(e){return e&&"function"==typeof e.then}function f(t,n,r,i,o){return m(2,arguments),e(t,function(t){function s(e){b(e)}function f(e){w(e)}var u,c,l,h,d,w,b,m,p,v;if(p=t.length>>>0,u=Math.max(0,Math.min(n,p)),l=[],c=p-u+1,h=[],d=a(),u)for(m=d.progress,b=function(e){h.push(e),--c||(w=b=g,d.reject(h))},w=function(e){l.push(e),--u||(w=b=g,d.resolve(l))},v=0;v<p;++v)v in t&&e(t[v],f,s,m);else d.resolve(l);return d.then(r,i,o)})}function u(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return f(e,1,i,n,r)}function c(e,t,n,r){return m(1,arguments),h(e,p).then(t,n,r)}function l(){return h(arguments,p)}function h(t,n){return e(t,function(t){var r,i,o,s,f,u;if(o=i=t.length>>>0,r=[],u=a(),o)for(s=function(t,i){e(t,n).then(function(e){r[i]=e,--o||u.resolve(r)},u.reject)},f=0;f<i;f++)f in t?s(t[f],f):--o;else u.resolve(r);return u.promise})}function d(t,n){var r=k.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,o){return e(t,function(t){return e(r,function(e){return n(t,e,o,i)})})},v.apply(t,r)})}function w(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),o(e)},n.progress)}function b(e,t){for(var n,r=0;n=e[r++];)n(t)}function m(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function g(){}function p(e){return e}var v,k,y;return e.defer=a,e.resolve=t,e.reject=n,e.join=l,e.all=c,e.map=h,e.reduce=d,e.any=u,e.some=f,e.chain=w,e.isPromise=s,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(y,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return c(t,function(t){return e.apply(y,t)})})}},k=[].slice,v=[].reduce||function(e){var t,n,r,i,o;if(o=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(o in t){r=t[o++];break}if(++o>=i)throw new TypeError}else r=n[1];for(;o<i;++o)o in t&&(r=e(r,t[o],o,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var n,r=t.name,i=t.message;n=e(r)&&e(i)?r+": "+i:t.toString();var o=t.stack;return e(o)&&(n+="\n"+o),n}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,n,r){"use strict";function i(t,n,r){try{return t(n,r)}catch(t){return e.reject(t)}}function o(o){var a;return function(s){var f=s.data,u=[],c={id:f.id,result:void 0,error:void 0};return e(i(o,f.parameters,u)).then(function(e){c.result=e}).otherwise(function(e){e instanceof Error?c.error={name:e.name,message:e.message,stack:e.stack}:c.error=e}).always(function(){n(a)||(a=t(self.webkitPostMessage,self.postMessage)),f.canTransferArrayBuffer||(u.length=0);try{a(c,u) -}catch(e){c.result=void 0,c.error="postMessage failed with error: "+r(e)+"\n with responseMessage: "+JSON.stringify(c),a(c)}})}}return o}),define("Workers/decodeGoogleEarthEnterprisePacket",["../Core/decodeGoogleEarthEnterpriseData","../Core/GoogleEarthEnterpriseTileInformation","../Core/RuntimeError","../ThirdParty/pako_inflate","./createTaskProcessorWorker"],function(e,t,n,r,i){"use strict";function o(t,n){var r=h.fromString(t.type),i=t.buffer;e(t.key,i);var o=f(i);i=o.buffer;var u=o.length;switch(r){case h.METADATA:return a(i,u,t.quadKey);case h.TERRAIN:return s(i,u,n);case h.DBROOT:return n.push(i),{buffer:i}}}function a(e,r,i){function o(e,t,n){var r=!1;if(4===n){if(t.hasSubtree())return;r=!0}for(var i=0;i<4;++i){var a=e+i.toString();if(r)B[a]=null;else if(n<4)if(t.hasChild(i)){if(A===b)return void console.log("Incorrect number of instances");var s=k[A++];B[a]=s,o(a,s,n+1)}else B[a]=null}}var a=new DataView(e),s=0,f=a.getUint32(s,!0);if(s+=l,f!==d)throw new n("Invalid magic");var h=a.getUint32(s,!0);if(s+=l,1!==h)throw new n("Invalid data type. Must be 1 for QuadTreePacket");var w=a.getUint32(s,!0);if(s+=l,2!==w)throw new n("Invalid QuadTreePacket version. Only version 2 is supported.");var b=a.getInt32(s,!0);s+=c;var m=a.getInt32(s,!0);if(s+=c,32!==m)throw new n("Invalid instance size.");var g=a.getInt32(s,!0);s+=c;var p=a.getInt32(s,!0);s+=c;var v=a.getInt32(s,!0);if(s+=c,g!==b*m+s)throw new n("Invalid dataBufferOffset");if(g+p+v!==r)throw new n("Invalid packet offsets");for(var k=[],y=0;y<b;++y){var _=a.getUint8(s);++s,++s;var E=a.getUint16(s,!0);s+=u;var x=a.getUint16(s,!0);s+=u;var T=a.getUint16(s,!0);s+=u,s+=u,s+=u,s+=c,s+=c,s+=8;var S=a.getUint8(s++),O=a.getUint8(s++);s+=u,k.push(new t(_,E,x,T,S,O))}var B=[],A=0,C=0,R=k[A++];return""===i?++C:B[i]=R,o(i,R,C),B}function s(e,t,n){for(var r=new DataView(e),i=0,o=[];i<t;){for(var a=i,s=0;s<4;++s){var f=r.getUint32(i,!0);i+=l,i+=f}var u=e.slice(a,i);n.push(u),o.push(u)}return o}function f(e){var t=new DataView(e),i=0,o=t.getUint32(i,!0);if(i+=l,o!==w&&o!==b)throw new n("Invalid magic");var a=t.getUint32(i,o===w);i+=l;var s=new Uint8Array(e,i),f=r.inflate(s);if(f.length!==a)throw new n("Size of packet doesn't match header");return f}var u=Uint16Array.BYTES_PER_ELEMENT,c=Int32Array.BYTES_PER_ELEMENT,l=Uint32Array.BYTES_PER_ELEMENT,h={METADATA:0,TERRAIN:1,DBROOT:2};h.fromString=function(e){return"Metadata"===e?h.METADATA:"Terrain"===e?h.TERRAIN:"DbRoot"===e?h.DBROOT:void 0};var d=32301,w=1953029805,b=2917034100;return i(o)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as Se}from"./chunk-3R25OJXK.js";import{a as D}from"./chunk-IIPSFM7Z.js";import{b as ae}from"./chunk-OYWUGDKS.js";import{c as R,d as Ot,e as me}from"./chunk-DRYFJEFT.js";var Ie=R((Li,Ae)=>{"use strict";var zt=(t,i,e,r)=>{let s=t&65535|0,n=t>>>16&65535|0,c=0;for(;e!==0;){c=e>2e3?2e3:e,e-=c;do s=s+i[r++]|0,n=n+s|0;while(--c);s%=65521,n%=65521}return s|n<<16|0};Ae.exports=zt});var De=R((Pi,Re)=>{"use strict";var Ht=()=>{let t,i=[];for(var e=0;e<256;e++){t=e;for(var r=0;r<8;r++)t=t&1?3988292384^t>>>1:t>>>1;i[e]=t}return i},Ft=new Uint32Array(Ht()),Vt=(t,i,e,r)=>{let s=Ft,n=r+e;t^=-1;for(let c=r;c<n;c++)t=t>>>8^s[(t^i[c])&255];return t^-1};Re.exports=Vt});var Oe=R((zi,Ue)=>{"use strict";Ue.exports=function(i,e){let r,s,n,c,f,_,a,o,v,w,l,u,I,p,x,T,g,d,E,A,h,S,k,b,m=i.state;r=i.next_in,k=i.input,s=r+(i.avail_in-5),n=i.next_out,b=i.output,c=n-(e-i.avail_out),f=n+(i.avail_out-257),_=m.dmax,a=m.wsize,o=m.whave,v=m.wnext,w=m.window,l=m.hold,u=m.bits,I=m.lencode,p=m.distcode,x=(1<<m.lenbits)-1,T=(1<<m.distbits)-1;e:do{u<15&&(l+=k[r++]<<u,u+=8,l+=k[r++]<<u,u+=8),g=I[l&x];t:for(;;){if(d=g>>>24,l>>>=d,u-=d,d=g>>>16&255,d===0)b[n++]=g&65535;else if(d&16){E=g&65535,d&=15,d&&(u<d&&(l+=k[r++]<<u,u+=8),E+=l&(1<<d)-1,l>>>=d,u-=d),u<15&&(l+=k[r++]<<u,u+=8,l+=k[r++]<<u,u+=8),g=p[l&T];i:for(;;){if(d=g>>>24,l>>>=d,u-=d,d=g>>>16&255,d&16){if(A=g&65535,d&=15,u<d&&(l+=k[r++]<<u,u+=8,u<d&&(l+=k[r++]<<u,u+=8)),A+=l&(1<<d)-1,A>_){i.msg="invalid distance too far back",m.mode=16209;break e}if(l>>>=d,u-=d,d=n-c,A>d){if(d=A-d,d>o&&m.sane){i.msg="invalid distance too far back",m.mode=16209;break e}if(h=0,S=w,v===0){if(h+=a-d,d<E){E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}}else if(v<d){if(h+=a+v-d,d-=v,d<E){E-=d;do b[n++]=w[h++];while(--d);if(h=0,v<E){d=v,E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}}}else if(h+=v-d,d<E){E-=d;do b[n++]=w[h++];while(--d);h=n-A,S=b}for(;E>2;)b[n++]=S[h++],b[n++]=S[h++],b[n++]=S[h++],E-=3;E&&(b[n++]=S[h++],E>1&&(b[n++]=S[h++]))}else{h=n-A;do b[n++]=b[h++],b[n++]=b[h++],b[n++]=b[h++],E-=3;while(E>2);E&&(b[n++]=b[h++],E>1&&(b[n++]=b[h++]))}}else if(d&64){i.msg="invalid distance code",m.mode=16209;break e}else{g=p[(g&65535)+(l&(1<<d)-1)];continue i}break}}else if(d&64)if(d&32){m.mode=16191;break e}else{i.msg="invalid literal/length code",m.mode=16209;break e}else{g=I[(g&65535)+(l&(1<<d)-1)];continue t}break}}while(r<s&&n<f);E=u>>3,r-=E,u-=E<<3,l&=(1<<u)-1,i.next_in=r,i.next_out=n,i.avail_in=r<s?5+(s-r):5-(r-s),i.avail_out=n<f?257+(f-n):257-(n-f),m.hold=l,m.bits=u}});var Me=R((Hi,Ne)=>{"use strict";var Gt=new Uint16Array([3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0]),Yt=new Uint8Array([16,16,16,16,16,16,16,16,17,17,17,17,18,18,18,18,19,19,19,19,20,20,20,20,21,21,21,21,16,72,78]),Xt=new Uint16Array([1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577,0,0]),qt=new Uint8Array([16,16,16,16,17,17,18,18,19,19,20,20,21,21,22,22,23,23,24,24,25,25,26,26,27,27,28,28,29,29,64,64]),Kt=(t,i,e,r,s,n,c,f)=>{let _=f.bits,a=0,o=0,v=0,w=0,l=0,u=0,I=0,p=0,x=0,T=0,g,d,E,A,h,S=null,k,b=new Uint16Array(16),m=new Uint16Array(16),L=null,Ee,W,Q;for(a=0;a<=15;a++)b[a]=0;for(o=0;o<r;o++)b[i[e+o]]++;for(l=_,w=15;w>=1&&b[w]===0;w--);if(l>w&&(l=w),w===0)return s[n++]=1<<24|64<<16|0,s[n++]=1<<24|64<<16|0,f.bits=1,0;for(v=1;v<w&&b[v]===0;v++);for(l<v&&(l=v),p=1,a=1;a<=15;a++)if(p<<=1,p-=b[a],p<0)return-1;if(p>0&&(t===0||w!==1))return-1;for(m[1]=0,a=1;a<15;a++)m[a+1]=m[a]+b[a];for(o=0;o<r;o++)i[e+o]!==0&&(c[m[i[e+o]]++]=o);if(t===0?(S=L=c,k=20):t===1?(S=Gt,L=Yt,k=257):(S=Xt,L=qt,k=0),T=0,o=0,a=v,h=n,u=l,I=0,E=-1,x=1<<l,A=x-1,t===1&&x>852||t===2&&x>592)return 1;for(;;){Ee=a-I,c[o]+1<k?(W=0,Q=c[o]):c[o]>=k?(W=L[c[o]-k],Q=S[c[o]-k]):(W=96,Q=0),g=1<<a-I,d=1<<u,v=d;do d-=g,s[h+(T>>I)+d]=Ee<<24|W<<16|Q|0;while(d!==0);for(g=1<<a-1;T&g;)g>>=1;if(g!==0?(T&=g-1,T+=g):T=0,o++,--b[a]===0){if(a===w)break;a=i[e+c[o]]}if(a>l&&(T&A)!==E){for(I===0&&(I=l),h+=v,u=a-I,p=1<<u;u+I<w&&(p-=b[u+I],!(p<=0));)u++,p<<=1;if(x+=1<<u,t===1&&x>852||t===2&&x>592)return 1;E=T&A,s[E]=l<<24|u<<16|h-n|0}}return T!==0&&(s[h+T]=a-I<<24|64<<16|0),f.bits=l,0};Ne.exports=Kt});var J=R((Fi,Ze)=>{"use strict";Ze.exports={Z_NO_FLUSH:0,Z_PARTIAL_FLUSH:1,Z_SYNC_FLUSH:2,Z_FULL_FLUSH:3,Z_FINISH:4,Z_BLOCK:5,Z_TREES:6,Z_OK:0,Z_STREAM_END:1,Z_NEED_DICT:2,Z_ERRNO:-1,Z_STREAM_ERROR:-2,Z_DATA_ERROR:-3,Z_MEM_ERROR:-4,Z_BUF_ERROR:-5,Z_NO_COMPRESSION:0,Z_BEST_SPEED:1,Z_BEST_COMPRESSION:9,Z_DEFAULT_COMPRESSION:-1,Z_FILTERED:1,Z_HUFFMAN_ONLY:2,Z_RLE:3,Z_FIXED:4,Z_DEFAULT_STRATEGY:0,Z_BINARY:0,Z_TEXT:1,Z_UNKNOWN:2,Z_DEFLATED:8}});var bt=R((Vi,O)=>{"use strict";var he=Ie(),M=De(),jt=Oe(),X=Me(),Wt=0,st=1,ft=2,{Z_FINISH:Be,Z_BLOCK:Qt,Z_TREES:$,Z_OK:P,Z_STREAM_END:Jt,Z_NEED_DICT:$t,Z_STREAM_ERROR:U,Z_DATA_ERROR:lt,Z_MEM_ERROR:ue,Z_BUF_ERROR:ei,Z_DEFLATED:Ce}=J(),ne=16180,Le=16181,Pe=16182,ze=16183,He=16184,Fe=16185,Ve=16186,Ge=16187,Ye=16188,Xe=16189,ie=16190,Z=16191,se=16192,qe=16193,fe=16194,Ke=16195,je=16196,We=16197,Qe=16198,ee=16199,te=16200,Je=16201,$e=16202,et=16203,tt=16204,it=16205,le=16206,nt=16207,rt=16208,y=16209,we=16210,ct=16211,ti=852,ii=592,ni=15,ri=ni,at=t=>(t>>>24&255)+(t>>>8&65280)+((t&65280)<<8)+((t&255)<<24);function ai(){this.strm=null,this.mode=0,this.last=!1,this.wrap=0,this.havedict=!1,this.flags=0,this.dmax=0,this.check=0,this.total=0,this.head=null,this.wbits=0,this.wsize=0,this.whave=0,this.wnext=0,this.window=null,this.hold=0,this.bits=0,this.length=0,this.offset=0,this.extra=0,this.lencode=null,this.distcode=null,this.lenbits=0,this.distbits=0,this.ncode=0,this.nlen=0,this.ndist=0,this.have=0,this.next=null,this.lens=new Uint16Array(320),this.work=new Uint16Array(288),this.lendyn=null,this.distdyn=null,this.sane=0,this.back=0,this.was=0}var z=t=>{if(!t)return 1;let i=t.state;return!i||i.strm!==t||i.mode<ne||i.mode>ct?1:0},dt=t=>{if(z(t))return U;let i=t.state;return t.total_in=t.total_out=i.total=0,t.msg="",i.wrap&&(t.adler=i.wrap&1),i.mode=ne,i.last=0,i.havedict=0,i.flags=-1,i.dmax=32768,i.head=null,i.hold=0,i.bits=0,i.lencode=i.lendyn=new Int32Array(ti),i.distcode=i.distdyn=new Int32Array(ii),i.sane=1,i.back=-1,P},ht=t=>{if(z(t))return U;let i=t.state;return i.wsize=0,i.whave=0,i.wnext=0,dt(t)},ut=(t,i)=>{let e;if(z(t))return U;let r=t.state;return i<0?(e=0,i=-i):(e=(i>>4)+5,i<48&&(i&=15)),i&&(i<8||i>15)?U:(r.window!==null&&r.wbits!==i&&(r.window=null),r.wrap=e,r.wbits=i,ht(t))},wt=(t,i)=>{if(!t)return U;let e=new ai;t.state=e,e.strm=t,e.window=null,e.mode=ne;let r=ut(t,i);return r!==P&&(t.state=null),r},oi=t=>wt(t,ri),ot=!0,ce,de,si=t=>{if(ot){ce=new Int32Array(512),de=new Int32Array(32);let i=0;for(;i<144;)t.lens[i++]=8;for(;i<256;)t.lens[i++]=9;for(;i<280;)t.lens[i++]=7;for(;i<288;)t.lens[i++]=8;for(X(st,t.lens,0,288,ce,0,t.work,{bits:9}),i=0;i<32;)t.lens[i++]=5;X(ft,t.lens,0,32,de,0,t.work,{bits:5}),ot=!1}t.lencode=ce,t.lenbits=9,t.distcode=de,t.distbits=5},xt=(t,i,e,r)=>{let s,n=t.state;return n.window===null&&(n.wsize=1<<n.wbits,n.wnext=0,n.whave=0,n.window=new Uint8Array(n.wsize)),r>=n.wsize?(n.window.set(i.subarray(e-n.wsize,e),0),n.wnext=0,n.whave=n.wsize):(s=n.wsize-n.wnext,s>r&&(s=r),n.window.set(i.subarray(e-r,e-r+s),n.wnext),r-=s,r?(n.window.set(i.subarray(e-r,e),0),n.wnext=r,n.whave=n.wsize):(n.wnext+=s,n.wnext===n.wsize&&(n.wnext=0),n.whave<n.wsize&&(n.whave+=s))),0},fi=(t,i)=>{let e,r,s,n,c,f,_,a,o,v,w,l,u,I,p=0,x,T,g,d,E,A,h,S,k=new Uint8Array(4),b,m,L=new Uint8Array([16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15]);if(z(t)||!t.output||!t.input&&t.avail_in!==0)return U;e=t.state,e.mode===Z&&(e.mode=se),c=t.next_out,s=t.output,_=t.avail_out,n=t.next_in,r=t.input,f=t.avail_in,a=e.hold,o=e.bits,v=f,w=_,S=P;e:for(;;)switch(e.mode){case ne:if(e.wrap===0){e.mode=se;break}for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&2&&a===35615){e.wbits===0&&(e.wbits=15),e.check=0,k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0),a=0,o=0,e.mode=Le;break}if(e.head&&(e.head.done=!1),!(e.wrap&1)||(((a&255)<<8)+(a>>8))%31){t.msg="incorrect header check",e.mode=y;break}if((a&15)!==Ce){t.msg="unknown compression method",e.mode=y;break}if(a>>>=4,o-=4,h=(a&15)+8,e.wbits===0&&(e.wbits=h),h>15||h>e.wbits){t.msg="invalid window size",e.mode=y;break}e.dmax=1<<e.wbits,e.flags=0,t.adler=e.check=1,e.mode=a&512?Xe:Z,a=0,o=0;break;case Le:for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.flags=a,(e.flags&255)!==Ce){t.msg="unknown compression method",e.mode=y;break}if(e.flags&57344){t.msg="unknown header flags set",e.mode=y;break}e.head&&(e.head.text=a>>8&1),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0,e.mode=Pe;case Pe:for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.head&&(e.head.time=a),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,k[2]=a>>>16&255,k[3]=a>>>24&255,e.check=M(e.check,k,4,0)),a=0,o=0,e.mode=ze;case ze:for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.head&&(e.head.xflags=a&255,e.head.os=a>>8),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0,e.mode=He;case He:if(e.flags&1024){for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.length=a,e.head&&(e.head.extra_len=a),e.flags&512&&e.wrap&4&&(k[0]=a&255,k[1]=a>>>8&255,e.check=M(e.check,k,2,0)),a=0,o=0}else e.head&&(e.head.extra=null);e.mode=Fe;case Fe:if(e.flags&1024&&(l=e.length,l>f&&(l=f),l&&(e.head&&(h=e.head.extra_len-e.length,e.head.extra||(e.head.extra=new Uint8Array(e.head.extra_len)),e.head.extra.set(r.subarray(n,n+l),h)),e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,e.length-=l),e.length))break e;e.length=0,e.mode=Ve;case Ve:if(e.flags&2048){if(f===0)break e;l=0;do h=r[n+l++],e.head&&h&&e.length<65536&&(e.head.name+=String.fromCharCode(h));while(h&&l<f);if(e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,h)break e}else e.head&&(e.head.name=null);e.length=0,e.mode=Ge;case Ge:if(e.flags&4096){if(f===0)break e;l=0;do h=r[n+l++],e.head&&h&&e.length<65536&&(e.head.comment+=String.fromCharCode(h));while(h&&l<f);if(e.flags&512&&e.wrap&4&&(e.check=M(e.check,r,l,n)),f-=l,n+=l,h)break e}else e.head&&(e.head.comment=null);e.mode=Ye;case Ye:if(e.flags&512){for(;o<16;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&4&&a!==(e.check&65535)){t.msg="header crc mismatch",e.mode=y;break}a=0,o=0}e.head&&(e.head.hcrc=e.flags>>9&1,e.head.done=!0),t.adler=e.check=0,e.mode=Z;break;case Xe:for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}t.adler=e.check=at(a),a=0,o=0,e.mode=ie;case ie:if(e.havedict===0)return t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,$t;t.adler=e.check=1,e.mode=Z;case Z:if(i===Qt||i===$)break e;case se:if(e.last){a>>>=o&7,o-=o&7,e.mode=le;break}for(;o<3;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}switch(e.last=a&1,a>>>=1,o-=1,a&3){case 0:e.mode=qe;break;case 1:if(si(e),e.mode=ee,i===$){a>>>=2,o-=2;break e}break;case 2:e.mode=je;break;case 3:t.msg="invalid block type",e.mode=y}a>>>=2,o-=2;break;case qe:for(a>>>=o&7,o-=o&7;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if((a&65535)!==(a>>>16^65535)){t.msg="invalid stored block lengths",e.mode=y;break}if(e.length=a&65535,a=0,o=0,e.mode=fe,i===$)break e;case fe:e.mode=Ke;case Ke:if(l=e.length,l){if(l>f&&(l=f),l>_&&(l=_),l===0)break e;s.set(r.subarray(n,n+l),c),f-=l,n+=l,_-=l,c+=l,e.length-=l;break}e.mode=Z;break;case je:for(;o<14;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.nlen=(a&31)+257,a>>>=5,o-=5,e.ndist=(a&31)+1,a>>>=5,o-=5,e.ncode=(a&15)+4,a>>>=4,o-=4,e.nlen>286||e.ndist>30){t.msg="too many length or distance symbols",e.mode=y;break}e.have=0,e.mode=We;case We:for(;e.have<e.ncode;){for(;o<3;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.lens[L[e.have++]]=a&7,a>>>=3,o-=3}for(;e.have<19;)e.lens[L[e.have++]]=0;if(e.lencode=e.lendyn,e.lenbits=7,b={bits:e.lenbits},S=X(Wt,e.lens,0,19,e.lencode,0,e.work,b),e.lenbits=b.bits,S){t.msg="invalid code lengths set",e.mode=y;break}e.have=0,e.mode=Qe;case Qe:for(;e.have<e.nlen+e.ndist;){for(;p=e.lencode[a&(1<<e.lenbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(g<16)a>>>=x,o-=x,e.lens[e.have++]=g;else{if(g===16){for(m=x+2;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(a>>>=x,o-=x,e.have===0){t.msg="invalid bit length repeat",e.mode=y;break}h=e.lens[e.have-1],l=3+(a&3),a>>>=2,o-=2}else if(g===17){for(m=x+3;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=x,o-=x,h=0,l=3+(a&7),a>>>=3,o-=3}else{for(m=x+7;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=x,o-=x,h=0,l=11+(a&127),a>>>=7,o-=7}if(e.have+l>e.nlen+e.ndist){t.msg="invalid bit length repeat",e.mode=y;break}for(;l--;)e.lens[e.have++]=h}}if(e.mode===y)break;if(e.lens[256]===0){t.msg="invalid code -- missing end-of-block",e.mode=y;break}if(e.lenbits=9,b={bits:e.lenbits},S=X(st,e.lens,0,e.nlen,e.lencode,0,e.work,b),e.lenbits=b.bits,S){t.msg="invalid literal/lengths set",e.mode=y;break}if(e.distbits=6,e.distcode=e.distdyn,b={bits:e.distbits},S=X(ft,e.lens,e.nlen,e.ndist,e.distcode,0,e.work,b),e.distbits=b.bits,S){t.msg="invalid distances set",e.mode=y;break}if(e.mode=ee,i===$)break e;case ee:e.mode=te;case te:if(f>=6&&_>=258){t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,jt(t,w),c=t.next_out,s=t.output,_=t.avail_out,n=t.next_in,r=t.input,f=t.avail_in,a=e.hold,o=e.bits,e.mode===Z&&(e.back=-1);break}for(e.back=0;p=e.lencode[a&(1<<e.lenbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(T&&!(T&240)){for(d=x,E=T,A=g;p=e.lencode[A+((a&(1<<d+E)-1)>>d)],x=p>>>24,T=p>>>16&255,g=p&65535,!(d+x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=d,o-=d,e.back+=d}if(a>>>=x,o-=x,e.back+=x,e.length=g,T===0){e.mode=it;break}if(T&32){e.back=-1,e.mode=Z;break}if(T&64){t.msg="invalid literal/length code",e.mode=y;break}e.extra=T&15,e.mode=Je;case Je:if(e.extra){for(m=e.extra;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.length+=a&(1<<e.extra)-1,a>>>=e.extra,o-=e.extra,e.back+=e.extra}e.was=e.length,e.mode=$e;case $e:for(;p=e.distcode[a&(1<<e.distbits)-1],x=p>>>24,T=p>>>16&255,g=p&65535,!(x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(!(T&240)){for(d=x,E=T,A=g;p=e.distcode[A+((a&(1<<d+E)-1)>>d)],x=p>>>24,T=p>>>16&255,g=p&65535,!(d+x<=o);){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}a>>>=d,o-=d,e.back+=d}if(a>>>=x,o-=x,e.back+=x,T&64){t.msg="invalid distance code",e.mode=y;break}e.offset=g,e.extra=T&15,e.mode=et;case et:if(e.extra){for(m=e.extra;o<m;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}e.offset+=a&(1<<e.extra)-1,a>>>=e.extra,o-=e.extra,e.back+=e.extra}if(e.offset>e.dmax){t.msg="invalid distance too far back",e.mode=y;break}e.mode=tt;case tt:if(_===0)break e;if(l=w-_,e.offset>l){if(l=e.offset-l,l>e.whave&&e.sane){t.msg="invalid distance too far back",e.mode=y;break}l>e.wnext?(l-=e.wnext,u=e.wsize-l):u=e.wnext-l,l>e.length&&(l=e.length),I=e.window}else I=s,u=c-e.offset,l=e.length;l>_&&(l=_),_-=l,e.length-=l;do s[c++]=I[u++];while(--l);e.length===0&&(e.mode=te);break;case it:if(_===0)break e;s[c++]=e.length,_--,e.mode=te;break;case le:if(e.wrap){for(;o<32;){if(f===0)break e;f--,a|=r[n++]<<o,o+=8}if(w-=_,t.total_out+=w,e.total+=w,e.wrap&4&&w&&(t.adler=e.check=e.flags?M(e.check,s,w,c-w):he(e.check,s,w,c-w)),w=_,e.wrap&4&&(e.flags?a:at(a))!==e.check){t.msg="incorrect data check",e.mode=y;break}a=0,o=0}e.mode=nt;case nt:if(e.wrap&&e.flags){for(;o<32;){if(f===0)break e;f--,a+=r[n++]<<o,o+=8}if(e.wrap&4&&a!==(e.total&4294967295)){t.msg="incorrect length check",e.mode=y;break}a=0,o=0}e.mode=rt;case rt:S=Jt;break e;case y:S=lt;break e;case we:return ue;case ct:default:return U}return t.next_out=c,t.avail_out=_,t.next_in=n,t.avail_in=f,e.hold=a,e.bits=o,(e.wsize||w!==t.avail_out&&e.mode<y&&(e.mode<le||i!==Be))&&xt(t,t.output,t.next_out,w-t.avail_out)?(e.mode=we,ue):(v-=t.avail_in,w-=t.avail_out,t.total_in+=v,t.total_out+=w,e.total+=w,e.wrap&4&&w&&(t.adler=e.check=e.flags?M(e.check,s,w,t.next_out-w):he(e.check,s,w,t.next_out-w)),t.data_type=e.bits+(e.last?64:0)+(e.mode===Z?128:0)+(e.mode===ee||e.mode===fe?256:0),(v===0&&w===0||i===Be)&&S===P&&(S=ei),S)},li=t=>{if(z(t))return U;let i=t.state;return i.window&&(i.window=null),t.state=null,P},ci=(t,i)=>{if(z(t))return U;let e=t.state;return e.wrap&2?(e.head=i,i.done=!1,P):U},di=(t,i)=>{let e=i.length,r,s,n;return z(t)||(r=t.state,r.wrap!==0&&r.mode!==ie)?U:r.mode===ie&&(s=1,s=he(s,i,e,0),s!==r.check)?lt:(n=xt(t,i,e,e),n?(r.mode=we,ue):(r.havedict=1,P))};O.exports.inflateReset=ht;O.exports.inflateReset2=ut;O.exports.inflateResetKeep=dt;O.exports.inflateInit=oi;O.exports.inflateInit2=wt;O.exports.inflate=fi;O.exports.inflateEnd=li;O.exports.inflateGetHeader=ci;O.exports.inflateSetDictionary=di;O.exports.inflateInfo="pako inflate (from Nodeca project)"});var _t=R((Gi,xe)=>{"use strict";var hi=(t,i)=>Object.prototype.hasOwnProperty.call(t,i);xe.exports.assign=function(t){let i=Array.prototype.slice.call(arguments,1);for(;i.length;){let e=i.shift();if(e){if(typeof e!="object")throw new TypeError(e+"must be non-object");for(let r in e)hi(e,r)&&(t[r]=e[r])}}return t};xe.exports.flattenChunks=t=>{let i=0;for(let r=0,s=t.length;r<s;r++)i+=t[r].length;let e=new Uint8Array(i);for(let r=0,s=0,n=t.length;r<n;r++){let c=t[r];e.set(c,s),s+=c.length}return e}});var kt=R((Yi,re)=>{"use strict";var gt=!0;try{String.fromCharCode.apply(null,new Uint8Array(1))}catch{gt=!1}var q=new Uint8Array(256);for(let t=0;t<256;t++)q[t]=t>=252?6:t>=248?5:t>=240?4:t>=224?3:t>=192?2:1;q[254]=q[254]=1;re.exports.string2buf=t=>{if(typeof TextEncoder=="function"&&TextEncoder.prototype.encode)return new TextEncoder().encode(t);let i,e,r,s,n,c=t.length,f=0;for(s=0;s<c;s++)e=t.charCodeAt(s),(e&64512)===55296&&s+1<c&&(r=t.charCodeAt(s+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),s++)),f+=e<128?1:e<2048?2:e<65536?3:4;for(i=new Uint8Array(f),n=0,s=0;n<f;s++)e=t.charCodeAt(s),(e&64512)===55296&&s+1<c&&(r=t.charCodeAt(s+1),(r&64512)===56320&&(e=65536+(e-55296<<10)+(r-56320),s++)),e<128?i[n++]=e:e<2048?(i[n++]=192|e>>>6,i[n++]=128|e&63):e<65536?(i[n++]=224|e>>>12,i[n++]=128|e>>>6&63,i[n++]=128|e&63):(i[n++]=240|e>>>18,i[n++]=128|e>>>12&63,i[n++]=128|e>>>6&63,i[n++]=128|e&63);return i};var ui=(t,i)=>{if(i<65534&&t.subarray&>)return String.fromCharCode.apply(null,t.length===i?t:t.subarray(0,i));let e="";for(let r=0;r<i;r++)e+=String.fromCharCode(t[r]);return e};re.exports.buf2string=(t,i)=>{let e=i||t.length;if(typeof TextDecoder=="function"&&TextDecoder.prototype.decode)return new TextDecoder().decode(t.subarray(0,i));let r,s,n=new Array(e*2);for(s=0,r=0;r<e;){let c=t[r++];if(c<128){n[s++]=c;continue}let f=q[c];if(f>4){n[s++]=65533,r+=f-1;continue}for(c&=f===2?31:f===3?15:7;f>1&&r<e;)c=c<<6|t[r++]&63,f--;if(f>1){n[s++]=65533;continue}c<65536?n[s++]=c:(c-=65536,n[s++]=55296|c>>10&1023,n[s++]=56320|c&1023)}return ui(n,s)};re.exports.utf8border=(t,i)=>{i=i||t.length,i>t.length&&(i=t.length);let e=i-1;for(;e>=0&&(t[e]&192)===128;)e--;return e<0||e===0?i:e+q[t[e]]>i?e:i}});var Et=R((Xi,pt)=>{"use strict";pt.exports={2:"need dictionary",1:"stream end",0:"","-1":"file error","-2":"stream error","-3":"data error","-4":"insufficient memory","-5":"buffer error","-6":"incompatible version"}});var St=R((qi,mt)=>{"use strict";function wi(){this.input=null,this.next_in=0,this.avail_in=0,this.total_in=0,this.output=null,this.next_out=0,this.avail_out=0,this.total_out=0,this.msg="",this.state=null,this.data_type=2,this.adler=0}mt.exports=wi});var vt=R((Ki,Tt)=>{"use strict";function xi(){this.text=0,this.time=0,this.xflags=0,this.os=0,this.extra=null,this.extra_len=0,this.name="",this.comment="",this.hcrc=0,this.done=!1}Tt.exports=xi});var Rt=R((ji,V)=>{"use strict";var B=bt(),At=_t(),ge=kt(),ke=Et(),bi=St(),_i=vt(),It=Object.prototype.toString,{Z_NO_FLUSH:gi,Z_FINISH:ki,Z_OK:K,Z_STREAM_END:be,Z_NEED_DICT:_e,Z_STREAM_ERROR:pi,Z_DATA_ERROR:yt,Z_MEM_ERROR:Ei}=J();function j(t){this.options=At.assign({chunkSize:1024*64,windowBits:15,to:""},t||{});let i=this.options;i.raw&&i.windowBits>=0&&i.windowBits<16&&(i.windowBits=-i.windowBits,i.windowBits===0&&(i.windowBits=-15)),i.windowBits>=0&&i.windowBits<16&&!(t&&t.windowBits)&&(i.windowBits+=32),i.windowBits>15&&i.windowBits<48&&(i.windowBits&15||(i.windowBits|=15)),this.err=0,this.msg="",this.ended=!1,this.chunks=[],this.strm=new bi,this.strm.avail_out=0;let e=B.inflateInit2(this.strm,i.windowBits);if(e!==K)throw new Error(ke[e]);if(this.header=new _i,B.inflateGetHeader(this.strm,this.header),i.dictionary&&(typeof i.dictionary=="string"?i.dictionary=ge.string2buf(i.dictionary):It.call(i.dictionary)==="[object ArrayBuffer]"&&(i.dictionary=new Uint8Array(i.dictionary)),i.raw&&(e=B.inflateSetDictionary(this.strm,i.dictionary),e!==K)))throw new Error(ke[e])}j.prototype.push=function(t,i){let e=this.strm,r=this.options.chunkSize,s=this.options.dictionary,n,c,f;if(this.ended)return!1;for(i===~~i?c=i:c=i===!0?ki:gi,It.call(t)==="[object ArrayBuffer]"?e.input=new Uint8Array(t):e.input=t,e.next_in=0,e.avail_in=e.input.length;;){for(e.avail_out===0&&(e.output=new Uint8Array(r),e.next_out=0,e.avail_out=r),n=B.inflate(e,c),n===_e&&s&&(n=B.inflateSetDictionary(e,s),n===K?n=B.inflate(e,c):n===yt&&(n=_e));e.avail_in>0&&n===be&&e.state.wrap>0&&t[e.next_in]!==0;)B.inflateReset(e),n=B.inflate(e,c);switch(n){case pi:case yt:case _e:case Ei:return this.onEnd(n),this.ended=!0,!1}if(f=e.avail_out,e.next_out&&(e.avail_out===0||n===be))if(this.options.to==="string"){let _=ge.utf8border(e.output,e.next_out),a=e.next_out-_,o=ge.buf2string(e.output,_);e.next_out=a,e.avail_out=r-a,a&&e.output.set(e.output.subarray(_,_+a),0),this.onData(o)}else this.onData(e.output.length===e.next_out?e.output:e.output.subarray(0,e.next_out));if(!(n===K&&f===0)){if(n===be)return n=B.inflateEnd(this.strm),this.onEnd(n),this.ended=!0,!0;if(e.avail_in===0)break}}return!0};j.prototype.onData=function(t){this.chunks.push(t)};j.prototype.onEnd=function(t){t===K&&(this.options.to==="string"?this.result=this.chunks.join(""):this.result=At.flattenChunks(this.chunks)),this.chunks=[],this.err=t,this.msg=this.strm.msg};function pe(t,i){let e=new j(i);if(e.push(t),e.err)throw e.msg||ke[e.err];return e.result}function mi(t,i){return i=i||{},i.raw=!0,pe(t,i)}V.exports.Inflate=j;V.exports.inflate=pe;V.exports.inflateRaw=mi;V.exports.ungzip=pe;V.exports.constants=J()});var Nt=1953029805,Mt=2917034100;function oe(t,i){if(oe.passThroughDataForTesting)return i;ae.typeOf.object("key",t),ae.typeOf.object("data",i);let e=t.byteLength;if(e===0||e%4!==0)throw new D("The length of key must be greater than 0 and a multiple of 4.");let r=new DataView(i),s=r.getUint32(0,!0);if(s===Nt||s===Mt)return i;let n=new DataView(t),c=0,f=i.byteLength,_=f-f%8,a=e,o,v=8;for(;c<_;)for(v=(v+8)%24,o=v;c<_&&o<a;)r.setUint32(c,r.getUint32(c,!0)^n.getUint32(o,!0),!0),r.setUint32(c+4,r.getUint32(c+4,!0)^n.getUint32(o+4,!0),!0),c+=8,o+=24;if(c<f)for(o>=a&&(v=(v+8)%24,o=v);c<f;)r.setUint8(c,r.getUint8(c)^n.getUint8(o)),c++,o++}oe.passThroughDataForTesting=!1;var Te=oe;function Zt(t,i){return(t&i)!==0}var F=Zt;var Bt=[1,2,4,8],ve=15,Ct=16,Lt=64,Pt=128;function N(t,i,e,r,s,n){this._bits=t,this.cnodeVersion=i,this.imageryVersion=e,this.terrainVersion=r,this.imageryProvider=s,this.terrainProvider=n,this.ancestorHasTerrain=!1,this.terrainState=void 0}N.clone=function(t,i){return me(i)?(i._bits=t._bits,i.cnodeVersion=t.cnodeVersion,i.imageryVersion=t.imageryVersion,i.terrainVersion=t.terrainVersion,i.imageryProvider=t.imageryProvider,i.terrainProvider=t.terrainProvider):i=new N(t._bits,t.cnodeVersion,t.imageryVersion,t.terrainVersion,t.imageryProvider,t.terrainProvider),i.ancestorHasTerrain=t.ancestorHasTerrain,i.terrainState=t.terrainState,i};N.prototype.setParent=function(t){this.ancestorHasTerrain=t.ancestorHasTerrain||this.hasTerrain()};N.prototype.hasSubtree=function(){return F(this._bits,Ct)};N.prototype.hasImagery=function(){return F(this._bits,Lt)};N.prototype.hasTerrain=function(){return F(this._bits,Pt)};N.prototype.hasChildren=function(){return F(this._bits,ve)};N.prototype.hasChild=function(t){return F(this._bits,Bt[t])};N.prototype.getChildBitmask=function(){return this._bits&ve};var ye=N;var Ut=Ot(Rt(),1);var G=Uint16Array.BYTES_PER_ELEMENT,H=Int32Array.BYTES_PER_ELEMENT,Y=Uint32Array.BYTES_PER_ELEMENT,C={METADATA:0,TERRAIN:1,DBROOT:2};C.fromString=function(t){if(t==="Metadata")return C.METADATA;if(t==="Terrain")return C.TERRAIN;if(t==="DbRoot")return C.DBROOT};function Si(t,i){let e=C.fromString(t.type),r=t.buffer;Te(t.key,r);let s=Di(r);r=s.buffer;let n=s.length;switch(e){case C.METADATA:return vi(r,n,t.quadKey);case C.TERRAIN:return Ii(r,n,i);case C.DBROOT:return i.push(r),{buffer:r}}}var Ti=32301;function vi(t,i,e){let r=new DataView(t),s=0,n=r.getUint32(s,!0);if(s+=Y,n!==Ti)throw new D("Invalid magic");let c=r.getUint32(s,!0);if(s+=Y,c!==1)throw new D("Invalid data type. Must be 1 for QuadTreePacket");let f=r.getUint32(s,!0);if(s+=Y,f!==2)throw new D("Invalid QuadTreePacket version. Only version 2 is supported.");let _=r.getInt32(s,!0);s+=H;let a=r.getInt32(s,!0);if(s+=H,a!==32)throw new D("Invalid instance size.");let o=r.getInt32(s,!0);s+=H;let v=r.getInt32(s,!0);s+=H;let w=r.getInt32(s,!0);if(s+=H,o!==_*a+s)throw new D("Invalid dataBufferOffset");if(o+v+w!==i)throw new D("Invalid packet offsets");let l=[];for(let g=0;g<_;++g){let d=r.getUint8(s);++s,++s;let E=r.getUint16(s,!0);s+=G;let A=r.getUint16(s,!0);s+=G;let h=r.getUint16(s,!0);s+=G,s+=G,s+=G,s+=H,s+=H,s+=8;let S=r.getUint8(s++),k=r.getUint8(s++);s+=G,l.push(new ye(d,E,A,h,S,k))}let u=[],I=0;function p(g,d,E){let A=!1;if(E===4){if(d.hasSubtree())return;A=!0}for(let h=0;h<4;++h){let S=g+h.toString();if(A)u[S]=null;else if(E<4)if(!d.hasChild(h))u[S]=null;else{if(I===_){console.log("Incorrect number of instances");return}let k=l[I++];u[S]=k,p(S,k,E+1)}}}let x=0,T=l[I++];return e===""?++x:u[e]=T,p(e,T,x),u}var yi=5,Ai=4;function Ii(t,i,e){let r=new DataView(t),s=function(f){for(let _=0;_<Ai;++_){let a=r.getUint32(f,!0);if(f+=Y,f+=a,f>i)throw new D("Malformed terrain packet found.")}return f},n=0,c=[];for(;c.length<yi;){let f=n;n=s(n);let _=t.slice(f,n);e.push(_),c.push(_)}return c}var Dt=1953029805,Ri=2917034100;function Di(t){let i=new DataView(t),e=0,r=i.getUint32(e,!0);if(e+=Y,r!==Dt&&r!==Ri)throw new D("Invalid magic");let s=i.getUint32(e,r===Dt);e+=Y;let n=new Uint8Array(t,e),c=Ut.default.inflate(n);if(c.length!==s)throw new D("Size of packet doesn't match header");return c}var en=Se(Si);export{en as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/decodeI3S.js b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeI3S.js new file mode 100644 index 000000000..911c3afaf --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/decodeI3S.js @@ -0,0 +1,26 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as xt}from"./chunk-TRPXTCDK.js";import{a as P}from"./chunk-NYU5F26A.js";import{a as yt}from"./chunk-3R25OJXK.js";import{a as ht}from"./chunk-ZEP44EYN.js";import{a as g,b as ot,d as st,e as it}from"./chunk-AODSXSC5.js";import{a as M}from"./chunk-IISQCXJ5.js";import{a as ft}from"./chunk-WHQYJFDH.js";import{b as lt}from"./chunk-OYWUGDKS.js";import{d as mt,e as h}from"./chunk-DRYFJEFT.js";var at=mt(xt(),1);function wt(n){return lt.defined("value",n),n<=.04045?n*.07739938080495357:Math.pow((n+.055)*.9478672985781991,2.4)}var k=wt;var ut;function It(n,t,e,o,a,i){let r=e*(1-n)+o*n,s=a*(1-n)+i*n;return r*(1-t)+s*t}function H(n,t,e,o){let a=n+t*e;return o[a]}function At(n,t,e){let o=e.nativeExtent,a=(n-o.west)/(o.east-o.west)*(e.width-1),i=(t-o.south)/(o.north-o.south)*(e.height-1),r=Math.floor(a),s=Math.floor(i);a-=r,i-=s;let c=r<e.width?r+1:r,u=s<e.height?s+1:s;s=e.height-1-s,u=e.height-1-u;let l=H(r,s,e.width,e.buffer),f=H(c,s,e.width,e.buffer),p=H(r,u,e.width,e.buffer),m=H(c,u,e.width,e.buffer),d=It(a,i,l,f,p,m);return d=d*e.scale+e.offset,d}function bt(n,t,e){for(let o=0;o<e.length;o++){let a=e[o].nativeExtent,i=new g;if(e[o].projectionType==="WebMercator"){let r=e[o].projection._ellipsoid._radii;i=new ht(new st(r.x,r.y,r.z)).project(new ot(n,t,0))}else i.x=n,i.y=t;if(i.x>a.west&&i.x<a.east&&i.y>a.south&&i.y<a.north)return At(i.x,i.y,e[o])}return 0}function Lt(n,t,e,o,a,i,r){if(r)return;let s=bt(a.longitude,a.latitude,i);for(let c=0;c<n;++c){let u=bt(a.longitude+M.toRadians(e*t[c*3]),a.latitude+M.toRadians(o*t[c*3+1]),i);t[c*3+2]+=u-s}}function Ot(n,t,e,o,a,i,r,s,c){if(n===0||!h(t)||t.length===0)return;let u=new st(Math.sqrt(r.x),Math.sqrt(r.y),Math.sqrt(r.z));for(let l=0;l<n;++l){let f=l*3,p=f+1,m=f+2,d=new ot;d.longitude=o.longitude+M.toRadians(s*t[f]),d.latitude=o.latitude+M.toRadians(c*t[p]),d.height=o.height+t[m];let b={};u.cartographicToCartesian(d,b),b.x-=a.x,b.y-=a.y,b.z-=a.z;let x={};if(it.multiplyByVector(i,b,x),t[f]=x.x,t[p]=x.y,t[m]=x.z,h(e)){let T=new g(e[f],e[p],e[m]),I={};it.multiplyByVector(i,T,I),e[f]=I.x,e[p]=I.y,e[m]=I.z}}}function Tt(n,t,e){for(let o=0;o<n;++o){let a=e[o*4]/65535,i=e[o*4+1]/65535,r=(e[o*4+2]-e[o*4])/65535,s=(e[o*4+3]-e[o*4+1])/65535;t[o*2]*=r,t[o*2]+=a,t[o*2+1]*=s,t[o*2+1]+=i}}function Ct(n,t,e,o){let a=new Uint32Array(n),i=h(t)?s=>t[s]:s=>s,r=0;if(o&&h(e)){let s=c=>e[i(c)*4+3]<255;for(let c=0;c<n;c+=3)!s(c)&&!s(c+1)&&!s(c+2)&&(a[r++]=i(c),a[r++]=i(c+1),a[r++]=i(c+2));if(r>0){let c=r;for(let u=0;u<n;u+=3)(s(u)||s(u+1)||s(u+2))&&(a[c++]=i(u),a[c++]=i(u+1),a[c++]=i(u+2))}else for(let c=0;c<n;++c)a[c]=i(c)}else{r=n;for(let s=0;s<n;++s)a[s]=i(s)}return{indexArray:a,transparentVertexOffset:r}}function Ft(n,t,e){let o=t[e];if(h(o))return o;let a=t[e]={positions:{},indices:{},edges:{}},i=ft(n[e],n.default);return a.hasOutline=h(i?.edges),a}function Ut(n,t,e,o){if(!h(n[e])){let a=e*3,i=t;for(let r=0;r<3;r++){let s=o[a+r];h(i[s])||(i[s]={}),i=i[s]}h(i.index)||(i.index=e),n[e]=i.index}}function Vt(n,t,e,o,a,i){let r,s;o<a?(r=o,s=a):(r=a,s=o);let c=n[r];h(c)||(c=n[r]={});let u=c[s];h(u)||(u=c[s]={normalsIndex:[],outlines:[]}),u.normalsIndex.push(i),(u.outlines.length===0||t!==o||e!==a)&&u.outlines.push(t,e)}function Et(n,t,e,o){let a=[];for(let i=0;i<e.length;i+=3){let r=h(t)?t[e[i]]:"default",s=Ft(n,a,r);if(!s.hasOutline)continue;let c=s.indices,u=s.positions;for(let f=0;f<3;f++){let p=e[i+f];Ut(c,u,p,o)}let l=s.edges;for(let f=0;f<3;f++){let p=e[i+f],m=e[i+(f+1)%3],d=c[p],b=c[m];Vt(l,p,m,d,b,i)}}return a}var O=new g,X=new g,Y=new g;function gt(n,t,e,o){let a=e[t]*3,i=e[t+1]*3,r=e[t+2]*3;g.fromArray(o,a,O),g.fromArray(o,i,X),g.fromArray(o,r,Y),g.subtract(X,O,X),g.subtract(Y,O,Y),g.cross(X,Y,O);let s=g.magnitude(O);s!==0&&g.divideByScalar(O,s,O);let c=t*3,u=(t+1)*3,l=(t+2)*3;g.pack(O,n,c),g.pack(O,n,u),g.pack(O,n,l)}var z=new g,ct=new g;function _t(n,t,e){g.fromArray(n,t,z),g.fromArray(n,e,ct);let o=g.dot(z,ct),a=g.magnitude(g.cross(z,ct,z));return Math.atan2(a,o)<.25}function Rt(n,t,e,o,a){if(t.normalsIndex.length>1){let i=o.length===a.length;for(let r=0;r<t.normalsIndex.length;r++){let s=t.normalsIndex[r];if(h(a[s*3])||gt(a,s,e,o),r!==0)for(let c=0;c<r;c++){let u=t.normalsIndex[c],l=i?e[s]*3:s*3,f=i?e[u]*3:u*3;if(_t(a,l,f))return}}}n.push(...t.outlines)}function Nt(n,t,e,o,a){let i=Object.keys(t);for(let r=0;r<i.length;r++){let s=t[i[r]],c=Object.keys(s);for(let u=0;u<c.length;u++){let l=s[c[u]];Rt(n,l,e,o,a)}}}function Bt(n,t,e,o){let a=[],i=Object.keys(n);for(let r=0;r<i.length;r++){let s=n[i[r]].edges;Nt(a,s,t,e,o)}return a}function Gt(n,t,e,o,a){if(!h(n)||Object.keys(n).length===0)return;let i=Et(n,t,e,o);(!h(a)||e.length*3!==a.length)&&(a=[]);let r=Bt(i,e,o,a);return r.length>0?new Uint32Array(r):void 0}function St(n){let t=new Float32Array(n.length);for(let e=0;e<n.length;e+=4)t[e]=k(P.byteToFloat(n[e])),t[e+1]=k(P.byteToFloat(n[e+1])),t[e+2]=k(P.byteToFloat(n[e+2])),t[e+3]=P.byteToFloat(n[e+3]);return t}function vt(n,t,e,o,a,i,r){let s={normals:void 0,positions:void 0,uv0s:void 0,colors:void 0,featureIndex:void 0,vertexCount:void 0};if(n===0||!h(e)||e.length===0||h(o))return s;if(h(t)){s.vertexCount=t.length,s.positions=new Float32Array(t.length*3),s.uv0s=h(a)?new Float32Array(t.length*2):void 0,s.colors=h(i)?new Uint8Array(t.length*4):void 0,s.featureIndex=h(r)?new Array(t.length):void 0;for(let c=0;c<t.length;c++){let u=t[c];s.positions[c*3]=e[u*3],s.positions[c*3+1]=e[u*3+1],s.positions[c*3+2]=e[u*3+2],h(s.uv0s)&&(s.uv0s[c*2]=a[u*2],s.uv0s[c*2+1]=a[u*2+1]),h(s.colors)&&(s.colors[c*4]=i[u*4],s.colors[c*4+1]=i[u*4+1],s.colors[c*4+2]=i[u*4+2],s.colors[c*4+3]=i[u*4+3]),h(s.featureIndex)&&(s.featureIndex[c]=r[u])}n=t.length,e=s.positions}t=new Array(n);for(let c=0;c<n;c++)t[c]=c;s.normals=new Float32Array(t.length*3);for(let c=0;c<t.length;c+=3)gt(s.normals,c,t,e);return s}function Mt(n,t,e,o,a,i,r,s){if(n===0||!h(e)||e.length===0)return{buffers:[],bufferViews:[],accessors:[],meshes:[],nodes:[],nodesInScene:[]};let c=[],u=[],l=[],f=[],p=[],m=[],d={},b=[];h(t)&&(n=t.length);let{indexArray:x,transparentVertexOffset:T}=Ct(n,t,i,s.splitGeometryByColorTransparency),I=new Blob([x],{type:"application/binary"}),A=URL.createObjectURL(I),w=n,F=s.enableFeatures&&h(r)?new Float32Array(r.length):void 0,C=0;if(h(F))for(let y=0;y<r.length;++y){F[y]=r[y];let E=r[y]+1;C<E&&(C=E)}let U,R=Gt(s.symbologyData,r,x,e,o);if(h(R)){let y=new Blob([R],{type:"application/binary"});U=URL.createObjectURL(y)}let L=e.subarray(0,w*3),dt=new Blob([L],{type:"application/binary"}),pt=URL.createObjectURL(dt),D=Number.POSITIVE_INFINITY,K=Number.NEGATIVE_INFINITY,Q=Number.POSITIVE_INFINITY,Z=Number.NEGATIVE_INFINITY,J=Number.POSITIVE_INFINITY,$=Number.NEGATIVE_INFINITY;for(let y=0;y<L.length/3;y++)D=Math.min(D,L[y*3+0]),K=Math.max(K,L[y*3+0]),Q=Math.min(Q,L[y*3+1]),Z=Math.max(Z,L[y*3+1]),J=Math.min(J,L[y*3+2]),$=Math.max($,L[y*3+2]);let N=o?o.subarray(0,w*3):void 0,q;if(h(N)){let y=new Blob([N],{type:"application/binary"});q=URL.createObjectURL(y)}let B=a?a.subarray(0,w*2):void 0,tt;if(h(B)){let y=new Blob([B],{type:"application/binary"});tt=URL.createObjectURL(y)}let G=h(i)?St(i.subarray(0,w*4)):void 0,et;if(h(G)){let y=new Blob([G],{type:"application/binary"});et=URL.createObjectURL(y)}let S=h(F)?F.subarray(0,w):void 0,nt;if(h(S)){let y=new Blob([S],{type:"application/binary"});nt=URL.createObjectURL(y)}let _=h(F)?new Float32Array(C):void 0,rt;if(h(_)){for(let E=0;E<_.length;++E)_[E]=E;let y=new Blob([_],{type:"application/binary"});rt=URL.createObjectURL(y)}let V={},j={};V.POSITION=l.length,c.push({uri:pt,byteLength:L.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:L.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:L.length/3,type:"VEC3",max:[D,Q,J],min:[K,Z,$]}),h(q)&&(V.NORMAL=l.length,c.push({uri:q,byteLength:N.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:N.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:N.length/3,type:"VEC3"})),h(tt)&&(V.TEXCOORD_0=l.length,c.push({uri:tt,byteLength:B.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:B.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:B.length/2,type:"VEC2"})),h(et)&&(V.COLOR_0=l.length,c.push({uri:et,byteLength:G.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:G.byteLength,target:34962}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:G.length/4,type:"VEC4"})),h(nt)&&(V._FEATURE_ID_0=l.length,c.push({uri:nt,byteLength:S.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:S.byteLength,target:34963}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5126,count:S.length,type:"SCALAR"}),j.EXT_mesh_features={featureIds:[{attribute:0,propertyTable:0,featureCount:C}]},b.push("EXT_mesh_features")),h(rt)&&(c.push({uri:rt,byteLength:_.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:_.byteLength,target:34963}),d.EXT_structural_metadata={schema:{id:"i3s-metadata-schema-001",name:"I3S metadata schema 001",description:"The schema for I3S metadata",version:"1.0",classes:{feature:{name:"feature",description:"Feature metadata",properties:{index:{description:"The feature index",type:"SCALAR",componentType:"FLOAT32",required:!0}}}}},propertyTables:[{name:"feature-indices-mapping",class:"feature",count:C,properties:{index:{values:u.length-1}}}]},b.push("EXT_structural_metadata")),h(U)&&(c.push({uri:U,byteLength:R.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:R.byteLength,target:34963}),l.push({bufferView:u.length-1,byteOffset:0,componentType:5125,count:R.length,type:"SCALAR"}),j.CESIUM_primitive_outline={indices:l.length-1},b.push("CESIUM_primitive_outline")),c.push({uri:A,byteLength:x.byteLength}),u.push({buffer:c.length-1,byteOffset:0,byteLength:x.byteLength,target:34963});let v=[];return T>0&&(l.push({bufferView:u.length-1,byteOffset:0,componentType:5125,count:T,type:"SCALAR"}),v.push({attributes:V,indices:l.length-1,material:v.length,extensions:j})),T<n&&(l.push({bufferView:u.length-1,byteOffset:4*T,componentType:5125,count:n-T,type:"SCALAR"}),v.push({attributes:V,indices:l.length-1,material:v.length,extensions:j,extra:{isTransparent:!0}})),f.push({primitives:v}),m.push(0),p.push({mesh:0}),{buffers:c,bufferViews:u,accessors:l,meshes:f,nodes:p,nodesInScene:m,rootExtensions:d,extensionsUsed:b}}function Pt(n,t,e,o){let a=new Uint8Array(n,0,5);return a[0]===68&&a[1]===82&&a[2]===65&&a[3]===67&&a[4]===79?jt(n,e):Ht(n,t,e,o)}function jt(n){let t=ut,e=new t.DecoderBuffer,o=new Uint8Array(n);e.Init(o,o.length);let a=new t.Decoder,i=a.GetEncodedGeometryType(e),r=new t.MetadataQuerier,s,c;i===t.TRIANGULAR_MESH&&(s=new t.Mesh,c=a.DecodeBufferToMesh(e,s));let u={vertexCount:[0],featureCount:0};if(h(c)&&c.ok()&&s.ptr!==0){let l=s.num_faces(),f=s.num_attributes(),p=s.num_points();u.indices=new Uint32Array(l*3);let m=u.indices;u.vertexCount[0]=p,u.scale_x=1,u.scale_y=1;let d=new t.DracoInt32Array(3);for(let b=0;b<l;++b)a.GetFaceFromMesh(s,b,d),m[b*3]=d.GetValue(0),m[b*3+1]=d.GetValue(1),m[b*3+2]=d.GetValue(2);t.destroy(d);for(let b=0;b<f;++b){let x=a.GetAttribute(s,b),T=kt(t,a,s,x,p),I=x.attribute_type(),A="unknown";I===t.POSITION?A="positions":I===t.NORMAL?A="normals":I===t.COLOR?A="colors":I===t.TEX_COORD&&(A="uv0s");let w=a.GetAttributeMetadata(s,b);if(w.ptr!==0){let F=r.NumEntries(w);for(let C=0;C<F;++C){let U=r.GetEntryName(w,C);U==="i3s-scale_x"?u.scale_x=r.GetDoubleEntry(w,"i3s-scale_x"):U==="i3s-scale_y"?u.scale_y=r.GetDoubleEntry(w,"i3s-scale_y"):U==="i3s-attribute-type"&&(A=r.GetStringEntry(w,"i3s-attribute-type"))}}h(u[A])&&console.log("Attribute already exists",A),u[A]=T,A==="feature-index"&&u.featureCount++}t.destroy(s)}return t.destroy(r),t.destroy(a),u}function kt(n,t,e,o,a){let i=o.num_components()*a,r,c=[function(){},function(){r=new n.DracoInt8Array(i),t.GetAttributeInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt8Array(i),t.GetAttributeUInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt16Array(i),t.GetAttributeInt16ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int16Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt16Array(i),t.GetAttributeUInt16ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint16Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt32Array(i),t.GetAttributeInt32ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Int32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){r=new n.DracoInt32Array(i),t.GetAttributeUInt32ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){},function(){},function(){r=new n.DracoFloat32Array(i),t.GetAttributeFloatForAllPoints(e,o,r)||console.error("Bad stream");let l=new Float32Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l},function(){},function(){r=new n.DracoUInt8Array(i),t.GetAttributeUInt8ForAllPoints(e,o,r)||console.error("Bad stream");let l=new Uint8Array(i);for(let f=0;f<i;++f)l[f]=r.GetValue(f);return l}][o.data_type()]();return h(r)&&n.destroy(r),c}var W={position:function(n,t,e){let o=n.vertexCount*3;return n.positions=new Float32Array(t,e,o),e+=o*4,e},normal:function(n,t,e){let o=n.vertexCount*3;return n.normals=new Float32Array(t,e,o),e+=o*4,e},uv0:function(n,t,e){let o=n.vertexCount*2;return n.uv0s=new Float32Array(t,e,o),e+=o*4,e},color:function(n,t,e){let o=n.vertexCount*4;return n.colors=new Uint8Array(t,e,o),e+=o,e},featureId:function(n,t,e){let o=n.featureCount;return e+=o*8,e},id:function(n,t,e){let o=n.featureCount;return e+=o*8,e},faceRange:function(n,t,e){let o=n.featureCount*2;return n.faceRange=new Uint32Array(t,e,o),e+=o*4,e},uvRegion:function(n,t,e){let o=n.vertexCount*4;return n["uv-region"]=new Uint16Array(t,e,o),e+=o*2,e},region:function(n,t,e){let o=n.vertexCount*4;return n["uv-region"]=new Uint16Array(t,e,o),e+=o*2,e}};function Ht(n,t,e,o){let a={vertexCount:0},i=new DataView(n);try{let r=0;if(a.vertexCount=i.getUint32(r,1),r+=4,a.featureCount=i.getUint32(r,1),r+=4,h(e))for(let s=0;s<e.attributes.length;s++)h(W[e.attributes[s]])?r=W[e.attributes[s]](a,n,r):console.error("Unknown decoder for",e.attributes[s]);else{let s=t.ordering,c=t.featureAttributeOrder;h(o)&&h(o.geometryData)&&h(o.geometryData[0])&&h(o.geometryData[0].params)&&(s=Object.keys(o.geometryData[0].params.vertexAttributes),c=Object.keys(o.geometryData[0].params.featureAttributes));for(let u=0;u<s.length;u++){let l=W[s[u]];r=l(a,n,r)}for(let u=0;u<c.length;u++){let l=W[c[u]];r=l(a,n,r)}}}catch(r){console.error(r)}return a.scale_x=1,a.scale_y=1,a}function Xt(n){let t=Pt(n.binaryData,n.schema,n.bufferInfo,n.featureData);h(n.geoidDataList)&&n.geoidDataList.length>0&&Lt(t.vertexCount,t.positions,t.scale_x,t.scale_y,n.cartographicCenter,n.geoidDataList,!1),Ot(t.vertexCount,t.positions,t.normals,n.cartographicCenter,n.cartesianCenter,n.parentRotation,n.ellipsoidRadiiSquare,t.scale_x,t.scale_y),h(t.uv0s)&&h(t["uv-region"])&&Tt(t.vertexCount,t.uv0s,t["uv-region"]);let e;if(h(t["feature-index"]))e=t["feature-index"];else if(h(t.faceRange)){e=new Array(t.vertexCount);for(let r=0;r<t.faceRange.length-1;r+=2){let s=r/2,c=t.faceRange[r],u=t.faceRange[r+1];for(let l=c;l<=u;l++)e[l*3]=s,e[l*3+1]=s,e[l*3+2]=s}}if(n.calculateNormals){let r=vt(t.vertexCount,t.indices,t.positions,t.normals,t.uv0s,t.colors,e);h(r.normals)&&(t.normals=r.normals,h(r.vertexCount)&&(t.vertexCount=r.vertexCount,t.indices=r.indices,t.positions=r.positions,t.uv0s=r.uv0s,t.colors=r.colors,e=r.featureIndex))}let o=Mt(t.vertexCount,t.indices,t.positions,t.normals,t.uv0s,t.colors,e,n),a={positions:t.positions,indices:t.indices,featureIndex:e,sourceURL:n.url,cartesianCenter:n.cartesianCenter,parentRotation:n.parentRotation};return o._customAttributes=a,{meshData:o}}async function Yt(n,t){let e=n.webAssemblyConfig;return h(e)&&h(e.wasmBinaryFile)?ut=await(0,at.default)(e):ut=await(0,at.default)(),!0}function zt(n,t){let e=n.webAssemblyConfig;return h(e)?Yt(n,t):Xt(n,t)}var se=yt(zt);export{se as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeCRNToDXT.js b/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeCRNToDXT.js deleted file mode 100644 index 8a0e4e92a..000000000 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeCRNToDXT.js +++ /dev/null @@ -1,95 +0,0 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** - * @licence - * crunch/crnlib uses the ZLIB license: - * http://opensource.org/licenses/Zlib - * - * Copyright (c) 2010-2016 Richard Geldreich, Jr. and Binomial LLC - * - * This software is provided 'as-is', without any express or implied - * warranty. In no event will the authors be held liable for any damages - * arising from the use of this software. - * - * Permission is granted to anyone to use this software for any purpose, - * including commercial applications, and to alter it and redistribute it - * freely, subject to the following restrictions: - * - * 1. The origin of this software must not be misrepresented; you must not - * claim that you wrote the original software. If you use this software - * in a product, an acknowledgment in the product documentation would be - * appreciated but is not required. - * - * 2. Altered source versions must be plainly marked as such, and must not be - * misrepresented as being the original software. - * - * 3. This notice may not be removed or altered from any source distribution. - */ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** - * @license - * - * Copyright (c) 2014, Brandon Jones. All rights reserved. - * - * Redistribution and use in source and binary forms, with or without modification, - * are permitted provided that the following conditions are met: - * - * * Redistributions of source code must retain the above copyright notice, this - * list of conditions and the following disclaimer. - * * Redistributions in binary form must reproduce the above copyright notice, - * this list of conditions and the following disclaimer in the documentation - * and/or other materials provided with the distribution. - * - * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND - * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED - * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE - * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE FOR - * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES - * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; - * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON - * ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT - * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/defineProperties",["./defined"],function(e){"use strict";var r=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return r&&e(n)||(n=function(e){return e}),n}),define("Core/CompressedTextureBuffer",["./defined","./defineProperties"],function(e,r){"use strict";function n(e,r,n,t){this._format=e,this._width=r,this._height=n,this._buffer=t}return r(n.prototype,{internalFormat:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}}}),n.clone=function(r){if(e(r))return new n(r._format,r._width,r._height,r._buffer)},n.prototype.clone=function(){return n.clone(this)},n}),define("Core/freezeObject",["./defined"],function(e){"use strict";var r=Object.freeze;return e(r)||(r=function(e){return e}),r}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Renderer/PixelDatatype",["../Core/freezeObject","../Core/WebGLConstants"],function(e,r){"use strict";var n={UNSIGNED_BYTE:r.UNSIGNED_BYTE,UNSIGNED_SHORT:r.UNSIGNED_SHORT,UNSIGNED_INT:r.UNSIGNED_INT,FLOAT:r.FLOAT,HALF_FLOAT:r.HALF_FLOAT_OES,UNSIGNED_INT_24_8:r.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:r.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:r.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:r.UNSIGNED_SHORT_5_6_5,isPacked:function(e){return e===n.UNSIGNED_INT_24_8||e===n.UNSIGNED_SHORT_4_4_4_4||e===n.UNSIGNED_SHORT_5_5_5_1||e===n.UNSIGNED_SHORT_5_6_5},sizeInBytes:function(e){switch(e){case n.UNSIGNED_BYTE:return 1;case n.UNSIGNED_SHORT:case n.UNSIGNED_SHORT_4_4_4_4:case n.UNSIGNED_SHORT_5_5_5_1:case n.UNSIGNED_SHORT_5_6_5:case n.HALF_FLOAT:return 2;case n.UNSIGNED_INT:case n.FLOAT:case n.UNSIGNED_INT_24_8:return 4}},validate:function(e){return e===n.UNSIGNED_BYTE||e===n.UNSIGNED_SHORT||e===n.UNSIGNED_INT||e===n.FLOAT||e===n.HALF_FLOAT||e===n.UNSIGNED_INT_24_8||e===n.UNSIGNED_SHORT_4_4_4_4||e===n.UNSIGNED_SHORT_5_5_5_1||e===n.UNSIGNED_SHORT_5_6_5}};return e(n)}),define("Core/PixelFormat",["../Renderer/PixelDatatype","./freezeObject","./WebGLConstants"],function(e,r,n){"use strict";var t={DEPTH_COMPONENT:n.DEPTH_COMPONENT,DEPTH_STENCIL:n.DEPTH_STENCIL,ALPHA:n.ALPHA,RGB:n.RGB,RGBA:n.RGBA,LUMINANCE:n.LUMINANCE,LUMINANCE_ALPHA:n.LUMINANCE_ALPHA,RGB_DXT1:n.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:n.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:n.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:n.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:n.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:n.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:n.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:n.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGB_ETC1:n.COMPRESSED_RGB_ETC1_WEBGL,componentsLength:function(e){switch(e){case t.RGB:return 3;case t.RGBA:return 4;case t.LUMINANCE_ALPHA:return 2;case t.ALPHA:case t.LUMINANCE:default:return 1}},validate:function(e){return e===t.DEPTH_COMPONENT||e===t.DEPTH_STENCIL||e===t.ALPHA||e===t.RGB||e===t.RGBA||e===t.LUMINANCE||e===t.LUMINANCE_ALPHA||e===t.RGB_DXT1||e===t.RGBA_DXT1||e===t.RGBA_DXT3||e===t.RGBA_DXT5||e===t.RGB_PVRTC_4BPPV1||e===t.RGB_PVRTC_2BPPV1||e===t.RGBA_PVRTC_4BPPV1||e===t.RGBA_PVRTC_2BPPV1||e===t.RGB_ETC1},isColorFormat:function(e){return e===t.ALPHA||e===t.RGB||e===t.RGBA||e===t.LUMINANCE||e===t.LUMINANCE_ALPHA},isDepthFormat:function(e){return e===t.DEPTH_COMPONENT||e===t.DEPTH_STENCIL},isCompressedFormat:function(e){return e===t.RGB_DXT1||e===t.RGBA_DXT1||e===t.RGBA_DXT3||e===t.RGBA_DXT5||e===t.RGB_PVRTC_4BPPV1||e===t.RGB_PVRTC_2BPPV1||e===t.RGBA_PVRTC_4BPPV1||e===t.RGBA_PVRTC_2BPPV1||e===t.RGB_ETC1},isDXTFormat:function(e){return e===t.RGB_DXT1||e===t.RGBA_DXT1||e===t.RGBA_DXT3||e===t.RGBA_DXT5},isPVRTCFormat:function(e){return e===t.RGB_PVRTC_4BPPV1||e===t.RGB_PVRTC_2BPPV1||e===t.RGBA_PVRTC_4BPPV1||e===t.RGBA_PVRTC_2BPPV1},isETC1Format:function(e){return e===t.RGB_ETC1},compressedTextureSizeInBytes:function(e,r,n){switch(e){case t.RGB_DXT1:case t.RGBA_DXT1:case t.RGB_ETC1:return Math.floor((r+3)/4)*Math.floor((n+3)/4)*8;case t.RGBA_DXT3:case t.RGBA_DXT5:return Math.floor((r+3)/4)*Math.floor((n+3)/4)*16;case t.RGB_PVRTC_4BPPV1:case t.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(r,8)*Math.max(n,8)*4+7)/8);case t.RGB_PVRTC_2BPPV1:case t.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(r,16)*Math.max(n,8)*2+7)/8);default:return 0}},textureSizeInBytes:function(r,n,i,_){var o=t.componentsLength(r);return e.isPacked(n)&&(o=1),o*e.sizeInBytes(n)*i*_},alignmentInBytes:function(e,r,n){var i=t.textureSizeInBytes(e,r,n,1)%4;return 0===i?4:2===i?2:1},createTypedArray:function(r,n,i,_){var o=e.sizeInBytes(n);return new(o===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:o===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:o===Float32Array.BYTES_PER_ELEMENT&&n===e.FLOAT?Float32Array:Uint32Array)(t.componentsLength(r)*i*_)},flipY:function(e,r,n,i,_){if(1===_)return e;for(var o=t.createTypedArray(r,n,i,_),a=t.componentsLength(r),u=i*a,E=0;E<_;++E)for(var f=E*_*a,T=(_-E-1)*_*a,c=0;c<u;++c)o[T+c]=e[f+c];return o}};return r(t)}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function r(e){this.name="RuntimeError",this.message=e;var r;try{throw new Error}catch(e){r=e.stack}this.stack=r}return e(Object.create)&&(r.prototype=Object.create(Error.prototype),r.prototype.constructor=r),r.prototype.toString=function(){var r=this.name+": "+this.message;return e(this.stack)&&(r+="\n"+this.stack.toString()),r},r}),define("ThirdParty/crunch",[],function(){function globalEval(e){eval.call(null,e)}function assert(e,r){e||abort("Assertion failed: "+r)}function getCFunc(ident){var func=Module["_"+ident];if(!func)try{func=eval("_"+ident)}catch(e){}return assert(func,"Cannot call unknown function "+ident+" (perhaps LLVM optimizations or closure removed it?)"),func}function setValue(e,r,n,t){switch(n=n||"i8","*"===n.charAt(n.length-1)&&(n="i32"),n){case"i1":case"i8":HEAP8[e>>0]=r;break;case"i16":HEAP16[e>>1]=r;break;case"i32":HEAP32[e>>2]=r;break;case"i64":tempI64=[r>>>0,(tempDouble=r,+Math_abs(tempDouble)>=1?tempDouble>0?(0|Math_min(+Math_floor(tempDouble/4294967296),4294967295))>>>0:~~+Math_ceil((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)],HEAP32[e>>2]=tempI64[0],HEAP32[e+4>>2]=tempI64[1];break;case"float":HEAPF32[e>>2]=r;break;case"double":HEAPF64[e>>3]=r;break;default:abort("invalid type for setValue: "+n)}}function getValue(e,r,n){switch(r=r||"i8","*"===r.charAt(r.length-1)&&(r="i32"),r){case"i1":case"i8":return HEAP8[e>>0];case"i16":return HEAP16[e>>1];case"i32":case"i64":return HEAP32[e>>2];case"float":return HEAPF32[e>>2];case"double":return HEAPF64[e>>3];default:abort("invalid type for setValue: "+r)}return null}function allocate(e,r,n,t){var i,_;"number"==typeof e?(i=!0,_=e):(i=!1,_=e.length);var o,a="string"==typeof r?r:null;if(o=n==ALLOC_NONE?t:["function"==typeof _malloc?_malloc:Runtime.staticAlloc,Runtime.stackAlloc,Runtime.staticAlloc,Runtime.dynamicAlloc][void 0===n?ALLOC_STATIC:n](Math.max(_,a?1:r.length)),i){var u,t=o;for(assert(0==(3&o)),u=o+(-4&_);t<u;t+=4)HEAP32[t>>2]=0;for(u=o+_;t<u;)HEAP8[t++>>0]=0;return o}if("i8"===a)return e.subarray||e.slice?HEAPU8.set(e,o):HEAPU8.set(new Uint8Array(e),o),o;for(var E,f,T,c=0;c<_;){var l=e[c];"function"==typeof l&&(l=Runtime.getFunctionIndex(l)),E=a||r[c],0!==E?("i64"==E&&(E="i32"),setValue(o+c,l,E),T!==E&&(f=Runtime.getNativeTypeSize(E),T=E),c+=f):c++}return o}function getMemory(e){return staticSealed?runtimeInitialized?_malloc(e):Runtime.dynamicAlloc(e):Runtime.staticAlloc(e)}function Pointer_stringify(e,r){if(0===r||!e)return"";for(var n,t=0,i=0;;){if(n=HEAPU8[e+i>>0],t|=n,0==n&&!r)break;if(i++,r&&i==r)break}r||(r=i);var _="";if(t<128){for(var o;r>0;)o=String.fromCharCode.apply(String,HEAPU8.subarray(e,e+Math.min(r,1024))),_=_?_+o:o,e+=1024,r-=1024;return _}return Module.UTF8ToString(e)}function AsciiToString(e){for(var r="";;){var n=HEAP8[e++>>0];if(!n)return r;r+=String.fromCharCode(n)}}function stringToAscii(e,r){return writeAsciiToMemory(e,r,!1)}function UTF8ArrayToString(e,r){for(var n=r;e[n];)++n;if(n-r>16&&e.subarray&&UTF8Decoder)return UTF8Decoder.decode(e.subarray(r,n));for(var t,i,_,o,a,u,E="";;){if(!(t=e[r++]))return E;if(128&t)if(i=63&e[r++],192!=(224&t))if(_=63&e[r++],224==(240&t)?t=(15&t)<<12|i<<6|_:(o=63&e[r++],240==(248&t)?t=(7&t)<<18|i<<12|_<<6|o:(a=63&e[r++],248==(252&t)?t=(3&t)<<24|i<<18|_<<12|o<<6|a:(u=63&e[r++],t=(1&t)<<30|i<<24|_<<18|o<<12|a<<6|u))),t<65536)E+=String.fromCharCode(t);else{var f=t-65536;E+=String.fromCharCode(55296|f>>10,56320|1023&f)}else E+=String.fromCharCode((31&t)<<6|i);else E+=String.fromCharCode(t)}}function UTF8ToString(e){return UTF8ArrayToString(HEAPU8,e)}function stringToUTF8Array(e,r,n,t){if(!(t>0))return 0;for(var i=n,_=n+t-1,o=0;o<e.length;++o){var a=e.charCodeAt(o);if(a>=55296&&a<=57343&&(a=65536+((1023&a)<<10)|1023&e.charCodeAt(++o)),a<=127){if(n>=_)break;r[n++]=a}else if(a<=2047){if(n+1>=_)break;r[n++]=192|a>>6,r[n++]=128|63&a}else if(a<=65535){if(n+2>=_)break;r[n++]=224|a>>12,r[n++]=128|a>>6&63,r[n++]=128|63&a}else if(a<=2097151){if(n+3>=_)break;r[n++]=240|a>>18,r[n++]=128|a>>12&63,r[n++]=128|a>>6&63,r[n++]=128|63&a}else if(a<=67108863){if(n+4>=_)break;r[n++]=248|a>>24,r[n++]=128|a>>18&63,r[n++]=128|a>>12&63,r[n++]=128|a>>6&63,r[n++]=128|63&a}else{if(n+5>=_)break;r[n++]=252|a>>30,r[n++]=128|a>>24&63,r[n++]=128|a>>18&63,r[n++]=128|a>>12&63,r[n++]=128|a>>6&63,r[n++]=128|63&a}}return r[n]=0,n-i}function stringToUTF8(e,r,n){return stringToUTF8Array(e,HEAPU8,r,n)}function lengthBytesUTF8(e){for(var r=0,n=0;n<e.length;++n){var t=e.charCodeAt(n);t>=55296&&t<=57343&&(t=65536+((1023&t)<<10)|1023&e.charCodeAt(++n)),t<=127?++r:r+=t<=2047?2:t<=65535?3:t<=2097151?4:t<=67108863?5:6}return r}function demangle(e){var r=Module.___cxa_demangle||Module.__cxa_demangle;if(r){try{var n=e.substr(1),t=lengthBytesUTF8(n)+1,i=_malloc(t);stringToUTF8(n,i,t);var _=_malloc(4),o=r(i,0,0,_);if(0===getValue(_,"i32")&&o)return Pointer_stringify(o)}catch(e){}finally{i&&_free(i),_&&_free(_),o&&_free(o)}return e}return Runtime.warnOnce("warning: build with -s DEMANGLE_SUPPORT=1 to link in libcxxabi demangling"),e}function demangleAll(e){var r=/__Z[\w\d_]+/g;return e.replace(r,function(e){var r=demangle(e);return e===r?e:e+" ["+r+"]"})}function jsStackTrace(){var e=new Error;if(!e.stack){try{throw new Error(0)}catch(r){e=r}if(!e.stack)return"(no stack trace available)"}return e.stack.toString()}function stackTrace(){var e=jsStackTrace();return Module.extraStackTrace&&(e+="\n"+Module.extraStackTrace()),demangleAll(e)}function alignUp(e,r){return e%r>0&&(e+=r-e%r),e}function updateGlobalBuffer(e){Module.buffer=buffer=e}function updateGlobalBufferViews(){Module.HEAP8=HEAP8=new Int8Array(buffer),Module.HEAP16=HEAP16=new Int16Array(buffer),Module.HEAP32=HEAP32=new Int32Array(buffer),Module.HEAPU8=HEAPU8=new Uint8Array(buffer),Module.HEAPU16=HEAPU16=new Uint16Array(buffer),Module.HEAPU32=HEAPU32=new Uint32Array(buffer),Module.HEAPF32=HEAPF32=new Float32Array(buffer),Module.HEAPF64=HEAPF64=new Float64Array(buffer)}function abortOnCannotGrowMemory(){abort("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+TOTAL_MEMORY+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime but prevents some optimizations, (3) set Module.TOTAL_MEMORY to a higher value before the program runs, or (4) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function enlargeMemory(){var e=Module.usingWasm?WASM_PAGE_SIZE:ASMJS_PAGE_SIZE,r=2147483648-e;if(HEAP32[DYNAMICTOP_PTR>>2]>r)return!1;var n=TOTAL_MEMORY;for(TOTAL_MEMORY=Math.max(TOTAL_MEMORY,MIN_TOTAL_MEMORY);TOTAL_MEMORY<HEAP32[DYNAMICTOP_PTR>>2];)TOTAL_MEMORY=TOTAL_MEMORY<=536870912?alignUp(2*TOTAL_MEMORY,e):Math.min(alignUp((3*TOTAL_MEMORY+2147483648)/4,e),r);var t=Module.reallocBuffer(TOTAL_MEMORY);return t&&t.byteLength==TOTAL_MEMORY?(updateGlobalBuffer(t),updateGlobalBufferViews(),!0):(TOTAL_MEMORY=n,!1)}function getTotalMemory(){return TOTAL_MEMORY}function callRuntimeCallbacks(e){for(;e.length>0;){var r=e.shift();if("function"!=typeof r){var n=r.func;"number"==typeof n?void 0===r.arg?Module.dynCall_v(n):Module.dynCall_vi(n,r.arg):n(void 0===r.arg?null:r.arg)}else r()}}function preRun(){if(Module.preRun)for("function"==typeof Module.preRun&&(Module.preRun=[Module.preRun]);Module.preRun.length;)addOnPreRun(Module.preRun.shift());callRuntimeCallbacks(__ATPRERUN__)}function ensureInitRuntime(){runtimeInitialized||(runtimeInitialized=!0,callRuntimeCallbacks(__ATINIT__))}function preMain(){callRuntimeCallbacks(__ATMAIN__)}function exitRuntime(){callRuntimeCallbacks(__ATEXIT__),runtimeExited=!0}function postRun(){if(Module.postRun)for("function"==typeof Module.postRun&&(Module.postRun=[Module.postRun]);Module.postRun.length;)addOnPostRun(Module.postRun.shift());callRuntimeCallbacks(__ATPOSTRUN__)}function addOnPreRun(e){__ATPRERUN__.unshift(e)}function addOnInit(e){__ATINIT__.unshift(e)}function addOnPreMain(e){__ATMAIN__.unshift(e)}function addOnExit(e){__ATEXIT__.unshift(e)}function addOnPostRun(e){__ATPOSTRUN__.unshift(e)}function intArrayFromString(e,r,n){var t=n>0?n:lengthBytesUTF8(e)+1,i=new Array(t),_=stringToUTF8Array(e,i,0,i.length);return r&&(i.length=_),i}function intArrayToString(e){for(var r=[],n=0;n<e.length;n++){var t=e[n];t>255&&(t&=255),r.push(String.fromCharCode(t))}return r.join("")}function writeStringToMemory(e,r,n){Runtime.warnOnce("writeStringToMemory is deprecated and should not be called! Use stringToUTF8() instead!");var t,i;n&&(i=r+lengthBytesUTF8(e),t=HEAP8[i]),stringToUTF8(e,r,1/0),n&&(HEAP8[i]=t)}function writeArrayToMemory(e,r){HEAP8.set(e,r)}function writeAsciiToMemory(e,r,n){for(var t=0;t<e.length;++t)HEAP8[r++>>0]=e.charCodeAt(t);n||(HEAP8[r>>0]=0)}function addRunDependency(e){runDependencies++,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies)}function removeRunDependency(e){if(runDependencies--,Module.monitorRunDependencies&&Module.monitorRunDependencies(runDependencies),0==runDependencies&&(null!==runDependencyWatcher&&(clearInterval(runDependencyWatcher),runDependencyWatcher=null),dependenciesFulfilled)){var r=dependenciesFulfilled;dependenciesFulfilled=null,r()}}function _abort(){Module.abort()}function __ZSt18uncaught_exceptionv(){return!!__ZSt18uncaught_exceptionv.uncaught_exception}function ___cxa_begin_catch(e){var r=EXCEPTIONS.infos[e];return r&&!r.caught&&(r.caught=!0,__ZSt18uncaught_exceptionv.uncaught_exception--),r&&(r.rethrown=!1),EXCEPTIONS.caught.push(e),EXCEPTIONS.addRef(EXCEPTIONS.deAdjust(e)),e}function _pthread_once(e,r){_pthread_once.seen||(_pthread_once.seen={}),e in _pthread_once.seen||(Module.dynCall_v(r),_pthread_once.seen[e]=1)}function _emscripten_memcpy_big(e,r,n){return HEAPU8.set(HEAPU8.subarray(r,r+n),e),e}function ___syscall6(e,r){SYSCALLS.varargs=r;try{var n=SYSCALLS.getStreamFromFD();return FS.close(n),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function _pthread_getspecific(e){return PTHREAD_SPECIFIC[e]||0}function ___setErrNo(e){return Module.___errno_location&&(HEAP32[Module.___errno_location()>>2]=e),e}function _pthread_key_create(e,r){return 0==e?ERRNO_CODES.EINVAL:(HEAP32[e>>2]=PTHREAD_SPECIFIC_NEXT_KEY,PTHREAD_SPECIFIC[PTHREAD_SPECIFIC_NEXT_KEY]=0,PTHREAD_SPECIFIC_NEXT_KEY++,0)}function ___resumeException(e){throw EXCEPTIONS.last||(EXCEPTIONS.last=e),e+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch."}function ___cxa_find_matching_catch(){var e=EXCEPTIONS.last;if(!e)return 0|(Runtime.setTempRet0(0),0);var r=EXCEPTIONS.infos[e],n=r.type;if(!n)return 0|(Runtime.setTempRet0(0),e);var t=Array.prototype.slice.call(arguments);Module.___cxa_is_pointer_type(n);___cxa_find_matching_catch.buffer||(___cxa_find_matching_catch.buffer=_malloc(4)),HEAP32[___cxa_find_matching_catch.buffer>>2]=e,e=___cxa_find_matching_catch.buffer;for(var i=0;i<t.length;i++)if(t[i]&&Module.___cxa_can_catch(t[i],n,e))return e=HEAP32[e>>2],r.adjusted=e,0|(Runtime.setTempRet0(t[i]),e);return e=HEAP32[e>>2],0|(Runtime.setTempRet0(n),e)}function ___gxx_personality_v0(){}function _pthread_setspecific(e,r){return e in PTHREAD_SPECIFIC?(PTHREAD_SPECIFIC[e]=r,0):ERRNO_CODES.EINVAL}function ___syscall140(e,r){SYSCALLS.varargs=r;try{var n=SYSCALLS.getStreamFromFD(),t=(SYSCALLS.get(),SYSCALLS.get()),i=SYSCALLS.get(),_=SYSCALLS.get(),o=t;return FS.llseek(n,o,_),HEAP32[i>>2]=n.position,n.getdents&&0===o&&0===_&&(n.getdents=null),0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall146(e,r){SYSCALLS.varargs=r;try{var n=SYSCALLS.get(),t=SYSCALLS.get(),i=SYSCALLS.get(),_=0;___syscall146.buffer||(___syscall146.buffers=[null,[],[]],___syscall146.printChar=function(e,r){var n=___syscall146.buffers[e];assert(n),0===r||10===r?((1===e?Module.print:Module.printErr)(UTF8ArrayToString(n,0)),n.length=0):n.push(r)});for(var o=0;o<i;o++){for(var a=HEAP32[t+8*o>>2],u=HEAP32[t+(8*o+4)>>2],E=0;E<u;E++)___syscall146.printChar(n,HEAPU8[a+E]);_+=u}return _}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function ___syscall54(e,r){SYSCALLS.varargs=r;try{return 0}catch(e){return"undefined"!=typeof FS&&e instanceof FS.ErrnoError||abort(e),-e.errno}}function invoke_iiii(e,r,n,t){try{return Module.dynCall_iiii(e,r,n,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiiii(e,r,n,t,i,_){try{Module.dynCall_viiiii(e,r,n,t,i,_)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_vi(e,r){try{Module.dynCall_vi(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_ii(e,r){try{return Module.dynCall_ii(e,r)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viii(e,r,n,t){try{Module.dynCall_viii(e,r,n,t)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_v(e){try{Module.dynCall_v(e)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiiiii(e,r,n,t,i,_,o){try{Module.dynCall_viiiiii(e,r,n,t,i,_,o)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}}function invoke_viiii(e,r,n,t,i){try{Module.dynCall_viiii(e,r,n,t,i)}catch(e){if("number"!=typeof e&&"longjmp"!==e)throw e;Module.setThrew(1,0)}} -function ExitStatus(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}function run(e){function r(){Module.calledRun||(Module.calledRun=!0,ABORT||(ensureInitRuntime(),preMain(),Module.onRuntimeInitialized&&Module.onRuntimeInitialized(),Module._main&&shouldRunNow&&Module.callMain(e),postRun()))}e=e||Module.arguments,null===preloadStartTime&&(preloadStartTime=Date.now()),runDependencies>0||(preRun(),runDependencies>0||Module.calledRun||(Module.setStatus?(Module.setStatus("Running..."),setTimeout(function(){setTimeout(function(){Module.setStatus("")},1),r()},1)):r()))}function exit(e,r){r&&Module.noExitRuntime||(Module.noExitRuntime||(ABORT=!0,EXITSTATUS=e,STACKTOP=initialStackTop,exitRuntime(),Module.onExit&&Module.onExit(e)),ENVIRONMENT_IS_NODE&&process.exit(e),Module.quit(e,new ExitStatus(e)))}function abort(e){Module.onAbort&&Module.onAbort(e),void 0!==e?(Module.print(e),Module.printErr(e),e=JSON.stringify(e)):e="",ABORT=!0,EXITSTATUS=1;var r="abort("+e+") at "+stackTrace()+"\nIf this abort() is unexpected, build with -s ASSERTIONS=1 which can give more information.";throw abortDecorators&&abortDecorators.forEach(function(n){r=n(r,e)}),r}var Module;Module||(Module=(void 0!==Module?Module:null)||{});var moduleOverrides={};for(var key in Module)Module.hasOwnProperty(key)&&(moduleOverrides[key]=Module[key]);var ENVIRONMENT_IS_WEB=!1,ENVIRONMENT_IS_WORKER=!1,ENVIRONMENT_IS_NODE=!1,ENVIRONMENT_IS_SHELL=!1;if(Module.ENVIRONMENT)if("WEB"===Module.ENVIRONMENT)ENVIRONMENT_IS_WEB=!0;else if("WORKER"===Module.ENVIRONMENT)ENVIRONMENT_IS_WORKER=!0;else if("NODE"===Module.ENVIRONMENT)ENVIRONMENT_IS_NODE=!0;else{if("SHELL"!==Module.ENVIRONMENT)throw new Error("The provided Module['ENVIRONMENT'] value is not valid. It must be one of: WEB|WORKER|NODE|SHELL.");ENVIRONMENT_IS_SHELL=!0}else ENVIRONMENT_IS_WEB="object"==typeof window,ENVIRONMENT_IS_WORKER="function"==typeof importScripts,ENVIRONMENT_IS_NODE="object"==typeof process&&"function"==typeof require&&!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER,ENVIRONMENT_IS_SHELL=!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_NODE&&!ENVIRONMENT_IS_WORKER;if(ENVIRONMENT_IS_NODE){Module.print||(Module.print=console.log),Module.printErr||(Module.printErr=console.warn);var nodeFS,nodePath;Module.read=function(e,r){nodeFS||(nodeFS=require("fs")),nodePath||(nodePath=require("path")),e=nodePath.normalize(e);var n=nodeFS.readFileSync(e);return r?n:n.toString()},Module.readBinary=function(e){var r=Module.read(e,!0);return r.buffer||(r=new Uint8Array(r)),assert(r.buffer),r},Module.load=function(e){globalEval(read(e))},Module.thisProgram||(process.argv.length>1?Module.thisProgram=process.argv[1].replace(/\\/g,"/"):Module.thisProgram="unknown-program"),Module.arguments=process.argv.slice(2),"undefined"!=typeof module&&(module.exports=Module),process.on("uncaughtException",function(e){if(!(e instanceof ExitStatus))throw e}),Module.inspect=function(){return"[Emscripten Module object]"}}else if(ENVIRONMENT_IS_SHELL)Module.print||(Module.print=print),"undefined"!=typeof printErr&&(Module.printErr=printErr),"undefined"!=typeof read?Module.read=read:Module.read=function(){throw"no read() available"},Module.readBinary=function(e){if("function"==typeof readbuffer)return new Uint8Array(readbuffer(e));var r=read(e,"binary");return assert("object"==typeof r),r},"undefined"!=typeof scriptArgs?Module.arguments=scriptArgs:void 0!==arguments&&(Module.arguments=arguments),"function"==typeof quit&&(Module.quit=function(e,r){quit(e)});else{if(!ENVIRONMENT_IS_WEB&&!ENVIRONMENT_IS_WORKER)throw"Unknown runtime environment. Where are we?";if(Module.read=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.send(null),r.responseText},ENVIRONMENT_IS_WORKER&&(Module.readBinary=function(e){var r=new XMLHttpRequest;return r.open("GET",e,!1),r.responseType="arraybuffer",r.send(null),new Uint8Array(r.response)}),Module.readAsync=function(e,r,n){var t=new XMLHttpRequest;t.open("GET",e,!0),t.responseType="arraybuffer",t.onload=function(){200==t.status||0==t.status&&t.response?r(t.response):n()},t.onerror=n,t.send(null)},void 0!==arguments&&(Module.arguments=arguments),"undefined"!=typeof console)Module.print||(Module.print=function(e){console.log(e)}),Module.printErr||(Module.printErr=function(e){console.warn(e)});else{var TRY_USE_DUMP=!1;Module.print||(Module.print=TRY_USE_DUMP&&"undefined"!=typeof dump?function(e){dump(e)}:function(e){})}ENVIRONMENT_IS_WORKER&&(Module.load=importScripts),void 0===Module.setWindowTitle&&(Module.setWindowTitle=function(e){document.title=e})}!Module.load&&Module.read&&(Module.load=function(e){globalEval(Module.read(e))}),Module.print||(Module.print=function(){}),Module.printErr||(Module.printErr=Module.print),Module.arguments||(Module.arguments=[]),Module.thisProgram||(Module.thisProgram="./this.program"),Module.quit||(Module.quit=function(e,r){throw r}),Module.print=Module.print,Module.printErr=Module.printErr,Module.preRun=[],Module.postRun=[];for(var key in moduleOverrides)moduleOverrides.hasOwnProperty(key)&&(Module[key]=moduleOverrides[key]);moduleOverrides=void 0;var Runtime={setTempRet0:function(e){return tempRet0=e,e},getTempRet0:function(){return tempRet0},stackSave:function(){return STACKTOP},stackRestore:function(e){STACKTOP=e},getNativeTypeSize:function(e){switch(e){case"i1":case"i8":return 1;case"i16":return 2;case"i32":return 4;case"i64":return 8;case"float":return 4;case"double":return 8;default:if("*"===e[e.length-1])return Runtime.QUANTUM_SIZE;if("i"===e[0]){var r=parseInt(e.substr(1));return assert(r%8==0),r/8}return 0}},getNativeFieldSize:function(e){return Math.max(Runtime.getNativeTypeSize(e),Runtime.QUANTUM_SIZE)},STACK_ALIGN:16,prepVararg:function(e,r){return"double"===r||"i64"===r?7&e&&(assert(4==(7&e)),e+=4):assert(0==(3&e)),e},getAlignSize:function(e,r,n){return n||"i64"!=e&&"double"!=e?e?Math.min(r||(e?Runtime.getNativeFieldSize(e):0),Runtime.QUANTUM_SIZE):Math.min(r,8):8},dynCall:function(e,r,n){return n&&n.length?Module["dynCall_"+e].apply(null,[r].concat(n)):Module["dynCall_"+e].call(null,r)},functionPointers:[],addFunction:function(e){for(var r=0;r<Runtime.functionPointers.length;r++)if(!Runtime.functionPointers[r])return Runtime.functionPointers[r]=e,2*(1+r);throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS."},removeFunction:function(e){Runtime.functionPointers[(e-2)/2]=null},warnOnce:function(e){Runtime.warnOnce.shown||(Runtime.warnOnce.shown={}),Runtime.warnOnce.shown[e]||(Runtime.warnOnce.shown[e]=1,Module.printErr(e))},funcWrappers:{},getFuncWrapper:function(e,r){assert(r),Runtime.funcWrappers[r]||(Runtime.funcWrappers[r]={});var n=Runtime.funcWrappers[r];return n[e]||(1===r.length?n[e]=function(){return Runtime.dynCall(r,e)}:2===r.length?n[e]=function(n){return Runtime.dynCall(r,e,[n])}:n[e]=function(){return Runtime.dynCall(r,e,Array.prototype.slice.call(arguments))}),n[e]},getCompilerSetting:function(e){throw"You must build with -s RETAIN_COMPILER_SETTINGS=1 for Runtime.getCompilerSetting or emscripten_get_compiler_setting to work"},stackAlloc:function(e){var r=STACKTOP;return STACKTOP=STACKTOP+e|0,STACKTOP=STACKTOP+15&-16,r},staticAlloc:function(e){var r=STATICTOP;return STATICTOP=STATICTOP+e|0,STATICTOP=STATICTOP+15&-16,r},dynamicAlloc:function(e){var r=HEAP32[DYNAMICTOP_PTR>>2],n=-16&(r+e+15|0);if(HEAP32[DYNAMICTOP_PTR>>2]=n,n>=TOTAL_MEMORY){if(!enlargeMemory())return HEAP32[DYNAMICTOP_PTR>>2]=r,0}return r},alignMemory:function(e,r){return e=Math.ceil(e/(r||16))*(r||16)},makeBigInt:function(e,r,n){return n?+(e>>>0)+4294967296*+(r>>>0):+(e>>>0)+4294967296*+(0|r)},GLOBAL_BASE:8,QUANTUM_SIZE:4,__dummy__:0};Module.Runtime=Runtime;var ABORT=0,EXITSTATUS=0,cwrap,ccall;!function(){function parseJSFunc(e){var r=e.toString().match(sourceRegex).slice(1);return{arguments:r[0],body:r[1],returnValue:r[2]}}function ensureJSsource(){if(!JSsource){JSsource={};for(var e in JSfuncs)JSfuncs.hasOwnProperty(e)&&(JSsource[e]=parseJSFunc(JSfuncs[e]))}}var JSfuncs={stackSave:function(){Runtime.stackSave()},stackRestore:function(){Runtime.stackRestore()},arrayToC:function(e){var r=Runtime.stackAlloc(e.length);return writeArrayToMemory(e,r),r},stringToC:function(e){var r=0;if(null!==e&&void 0!==e&&0!==e){var n=1+(e.length<<2);r=Runtime.stackAlloc(n),stringToUTF8(e,r,n)}return r}},toC={string:JSfuncs.stringToC,array:JSfuncs.arrayToC};ccall=function(e,r,n,t,i){var _=getCFunc(e),o=[],a=0;if(t)for(var u=0;u<t.length;u++){var E=toC[n[u]];E?(0===a&&(a=Runtime.stackSave()),o[u]=E(t[u])):o[u]=t[u]}var f=_.apply(null,o);if("string"===r&&(f=Pointer_stringify(f)),0!==a){if(i&&i.async)return void EmterpreterAsync.asyncFinalizers.push(function(){Runtime.stackRestore(a)});Runtime.stackRestore(a)}return f};var sourceRegex=/^function\s*[a-zA-Z$_0-9]*\s*\(([^)]*)\)\s*{\s*([^*]*?)[\s;]*(?:return\s*(.*?)[;\s]*)?}$/,JSsource=null;cwrap=function cwrap(ident,returnType,argTypes){argTypes=argTypes||[];var cfunc=getCFunc(ident),numericArgs=argTypes.every(function(e){return"number"===e}),numericRet="string"!==returnType;if(numericRet&&numericArgs)return cfunc;var argNames=argTypes.map(function(e,r){return"$"+r}),funcstr="(function("+argNames.join(",")+") {",nargs=argTypes.length;if(!numericArgs){ensureJSsource(),funcstr+="var stack = "+JSsource.stackSave.body+";";for(var i=0;i<nargs;i++){var arg=argNames[i],type=argTypes[i];if("number"!==type){var convertCode=JSsource[type+"ToC"];funcstr+="var "+convertCode.arguments+" = "+arg+";",funcstr+=convertCode.body+";",funcstr+=arg+"=("+convertCode.returnValue+");"}}}var cfuncname=parseJSFunc(function(){return cfunc}).returnValue;if(funcstr+="var ret = "+cfuncname+"("+argNames.join(",")+");",!numericRet){var strgfy=parseJSFunc(function(){return Pointer_stringify}).returnValue;funcstr+="ret = "+strgfy+"(ret);"}return numericArgs||(ensureJSsource(),funcstr+=JSsource.stackRestore.body.replace("()","(stack)")+";"),funcstr+="return ret})",eval(funcstr)}}(),Module.ccall=ccall,Module.cwrap=cwrap,Module.setValue=setValue,Module.getValue=getValue;var ALLOC_NORMAL=0,ALLOC_STACK=1,ALLOC_STATIC=2,ALLOC_DYNAMIC=3,ALLOC_NONE=4;Module.ALLOC_NORMAL=ALLOC_NORMAL,Module.ALLOC_STACK=ALLOC_STACK,Module.ALLOC_STATIC=ALLOC_STATIC,Module.ALLOC_DYNAMIC=ALLOC_DYNAMIC,Module.ALLOC_NONE=ALLOC_NONE,Module.allocate=allocate,Module.getMemory=getMemory,Module.Pointer_stringify=Pointer_stringify,Module.AsciiToString=AsciiToString,Module.stringToAscii=stringToAscii;var UTF8Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf8"):void 0;Module.UTF8ArrayToString=UTF8ArrayToString,Module.UTF8ToString=UTF8ToString,Module.stringToUTF8Array=stringToUTF8Array,Module.stringToUTF8=stringToUTF8,Module.lengthBytesUTF8=lengthBytesUTF8;var UTF16Decoder="undefined"!=typeof TextDecoder?new TextDecoder("utf-16le"):void 0;Module.stackTrace=stackTrace;var WASM_PAGE_SIZE=65536,ASMJS_PAGE_SIZE=16777216,MIN_TOTAL_MEMORY=16777216,HEAP,buffer,HEAP8,HEAPU8,HEAP16,HEAPU16,HEAP32,HEAPU32,HEAPF32,HEAPF64,STATIC_BASE,STATICTOP,staticSealed,STACK_BASE,STACKTOP,STACK_MAX,DYNAMIC_BASE,DYNAMICTOP_PTR;STATIC_BASE=STATICTOP=STACK_BASE=STACKTOP=STACK_MAX=DYNAMIC_BASE=DYNAMICTOP_PTR=0,staticSealed=!1,Module.reallocBuffer||(Module.reallocBuffer=function(e){var r;try{if(ArrayBuffer.transfer)r=ArrayBuffer.transfer(buffer,e);else{var n=HEAP8;r=new ArrayBuffer(e);new Int8Array(r).set(n)}}catch(e){return!1}return!!_emscripten_replace_memory(r)&&r});var byteLength;try{byteLength=Function.prototype.call.bind(Object.getOwnPropertyDescriptor(ArrayBuffer.prototype,"byteLength").get),byteLength(new ArrayBuffer(4))}catch(e){byteLength=function(e){return e.byteLength}}var TOTAL_STACK=Module.TOTAL_STACK||5242880,TOTAL_MEMORY=Module.TOTAL_MEMORY||16777216;if(TOTAL_MEMORY<TOTAL_STACK&&Module.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+TOTAL_MEMORY+"! (TOTAL_STACK="+TOTAL_STACK+")"),buffer=Module.buffer?Module.buffer:new ArrayBuffer(TOTAL_MEMORY),updateGlobalBufferViews(),HEAP32[0]=1668509029,HEAP16[1]=25459,115!==HEAPU8[2]||99!==HEAPU8[3])throw"Runtime error: expected the system to be little-endian!";Module.HEAP=HEAP,Module.buffer=buffer,Module.HEAP8=HEAP8,Module.HEAP16=HEAP16,Module.HEAP32=HEAP32,Module.HEAPU8=HEAPU8,Module.HEAPU16=HEAPU16,Module.HEAPU32=HEAPU32,Module.HEAPF32=HEAPF32,Module.HEAPF64=HEAPF64;var __ATPRERUN__=[],__ATINIT__=[],__ATMAIN__=[],__ATEXIT__=[],__ATPOSTRUN__=[],runtimeInitialized=!1,runtimeExited=!1;Module.addOnPreRun=addOnPreRun,Module.addOnInit=addOnInit,Module.addOnPreMain=addOnPreMain,Module.addOnExit=addOnExit,Module.addOnPostRun=addOnPostRun,Module.intArrayFromString=intArrayFromString,Module.intArrayToString=intArrayToString,Module.writeStringToMemory=writeStringToMemory,Module.writeArrayToMemory=writeArrayToMemory,Module.writeAsciiToMemory=writeAsciiToMemory,Math.imul&&-5===Math.imul(4294967295,5)||(Math.imul=function(e,r){var n=e>>>16,t=65535&e,i=r>>>16,_=65535&r;return t*_+(n*_+t*i<<16)|0}),Math.imul=Math.imul,Math.clz32||(Math.clz32=function(e){e>>>=0;for(var r=0;r<32;r++)if(e&1<<31-r)return r;return 32}),Math.clz32=Math.clz32,Math.trunc||(Math.trunc=function(e){return e<0?Math.ceil(e):Math.floor(e)}),Math.trunc=Math.trunc;var Math_abs=Math.abs,Math_cos=Math.cos,Math_sin=Math.sin,Math_tan=Math.tan,Math_acos=Math.acos,Math_asin=Math.asin,Math_atan=Math.atan,Math_atan2=Math.atan2,Math_exp=Math.exp,Math_log=Math.log,Math_sqrt=Math.sqrt,Math_ceil=Math.ceil,Math_floor=Math.floor,Math_pow=Math.pow,Math_imul=Math.imul,Math_fround=Math.fround,Math_round=Math.round,Math_min=Math.min,Math_clz32=Math.clz32,Math_trunc=Math.trunc,runDependencies=0,runDependencyWatcher=null,dependenciesFulfilled=null;Module.addRunDependency=addRunDependency,Module.removeRunDependency=removeRunDependency,Module.preloadedImages={},Module.preloadedAudios={};var ASM_CONSTS=[];STATIC_BASE=Runtime.GLOBAL_BASE,STATICTOP=STATIC_BASE+6192,__ATINIT__.push(),allocate([228,2,0,0,81,16,0,0,12,3,0,0,177,16,0,0,32,0,0,0,0,0,0,0,12,3,0,0,94,16,0,0,48,0,0,0,0,0,0,0,228,2,0,0,127,16,0,0,12,3,0,0,140,16,0,0,16,0,0,0,0,0,0,0,12,3,0,0,183,17,0,0,32,0,0,0,0,0,0,0,12,3,0,0,147,17,0,0,72,0,0,0,0,0,0,0,108,0,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,2,0,0,0,32,20,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,248,19,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,224,1,0,0,5,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,3,0,0,0,2,0,0,0,40,20,0,0,0,4,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,10,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,255,255,255,255,255,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,0,0,0,0,0,0,0,16,0,0,0,1,0,0,0,2,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,1,0,0,0,1,0,0,0,1,0,0,0,0,0,0,0,56,0,0,0,1,0,0,0,5,0,0,0,3,0,0,0,4,0,0,0,5,0,0,0,2,0,0,0,2,0,0,0,2,0,0,0,37,115,40,37,117,41,58,32,65,115,115,101,114,116,105,111,110,32,102,97,105,108,117,114,101,58,32,34,37,115,34,10,0,109,95,115,105,122,101,32,60,61,32,109,95,99,97,112,97,99,105,116,121,0,46,47,105,110,99,92,99,114,110,95,100,101,99,111,109,112,46,104,0,109,105,110,95,110,101,119,95,99,97,112,97,99,105,116,121,32,60,32,40,48,120,55,70,70,70,48,48,48,48,85,32,47,32,101,108,101,109,101,110,116,95,115,105,122,101,41,0,110,101,119,95,99,97,112,97,99,105,116,121,32,38,38,32,40,110,101,119,95,99,97,112,97,99,105,116,121,32,62,32,109,95,99,97,112,97,99,105,116,121,41,0,110,117,109,95,99,111,100,101,115,91,99,93,0,115,111,114,116,101,100,95,112,111,115,32,60,32,116,111,116,97,108,95,117,115,101,100,95,115,121,109,115,0,112,67,111,100,101,115,105,122,101,115,91,115,121,109,95,105,110,100,101,120,93,32,61,61,32,99,111,100,101,115,105,122,101,0,116,32,60,32,40,49,85,32,60,60,32,116,97,98,108,101,95,98,105,116,115,41,0,109,95,108,111,111,107,117,112,91,116,93,32,61,61,32,99,85,73,78,84,51,50,95,77,65,88,0,99,114,110,100,95,109,97,108,108,111,99,58,32,115,105,122,101,32,116,111,111,32,98,105,103,0,99,114,110,100,95,109,97,108,108,111,99,58,32,111,117,116,32,111,102,32,109,101,109,111,114,121,0,40,40,117,105,110,116,51,50,41,112,95,110,101,119,32,38,32,40,67,82,78,68,95,77,73,78,95,65,76,76,79,67,95,65,76,73,71,78,77,69,78,84,32,45,32,49,41,41,32,61,61,32,48,0,99,114,110,100,95,114,101,97,108,108,111,99,58,32,98,97,100,32,112,116,114,0,99,114,110,100,95,102,114,101,101,58,32,98,97,100,32,112,116,114,0,102,97,108,115,101,0,40,116,111,116,97,108,95,115,121,109,115,32,62,61,32,49,41,32,38,38,32,40,116,111,116,97,108,95,115,121,109,115,32,60,61,32,112,114,101,102,105,120,95,99,111,100,105,110,103,58,58,99,77,97,120,83,117,112,112,111,114,116,101,100,83,121,109,115,41,0,17,18,19,20,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15,16,48,0,110,117,109,95,98,105,116,115,32,60,61,32,51,50,85,0,109,95,98,105,116,95,99,111,117,110,116,32,60,61,32,99,66,105,116,66,117,102,83,105,122,101,0,116,32,33,61,32,99,85,73,78,84,51,50,95,77,65,88,0,109,111,100,101,108,46,109,95,99,111,100,101,95,115,105,122,101,115,91,115,121,109,93,32,61,61,32,108,101,110,0,0,2,3,1,0,2,3,4,5,6,7,1,40,108,101,110,32,62,61,32,49,41,32,38,38,32,40,108,101,110,32,60,61,32,99,77,97,120,69,120,112,101,99,116,101,100,67,111,100,101,83,105,122,101,41,0,105,32,60,32,109,95,115,105,122,101,0,110,101,120,116,95,108,101,118,101,108,95,111,102,115,32,62,32,99,117,114,95,108,101,118,101,108,95,111,102,115,0,1,2,2,3,3,3,3,4,0,0,0,0,0,0,1,1,0,1,0,1,0,0,1,2,1,2,0,0,0,1,0,2,1,0,2,0,0,1,2,3,110,117,109,32,38,38,32,40,110,117,109,32,61,61,32,126,110,117,109,95,99,104,101,99,107,41,0,17,0,10,0,17,17,17,0,0,0,0,5,0,0,0,0,0,0,9,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,15,10,17,17,17,3,10,7,0,1,19,9,11,11,0,0,9,6,11,0,0,11,0,6,17,0,0,0,17,17,17,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,17,0,10,10,17,17,17,0,10,0,0,2,0,9,11,0,0,0,9,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,14,0,0,0,0,0,0,0,0,0,0,0,13,0,0,0,4,13,0,0,0,0,9,14,0,0,0,0,0,14,0,0,14,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,16,0,0,0,0,0,0,0,0,0,0,0,15,0,0,0,0,15,0,0,0,0,9,16,0,0,0,0,0,16,0,0,16,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,18,0,0,0,18,18,18,0,0,0,0,0,0,9,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,11,0,0,0,0,0,0,0,0,0,0,0,10,0,0,0,0,10,0,0,0,0,9,11,0,0,0,0,0,11,0,0,11,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,0,0,0,0,0,0,0,12,0,0,0,0,12,0,0,0,0,9,12,0,0,0,0,0,12,0,0,12,0,0,45,43,32,32,32,48,88,48,120,0,40,110,117,108,108,41,0,45,48,88,43,48,88,32,48,88,45,48,120,43,48,120,32,48,120,0,105,110,102,0,73,78,70,0,110,97,110,0,78,65,78,0,48,49,50,51,52,53,54,55,56,57,65,66,67,68,69,70,46,0,84,33,34,25,13,1,2,3,17,75,28,12,16,4,11,29,18,30,39,104,110,111,112,113,98,32,5,6,15,19,20,21,26,8,22,7,40,36,23,24,9,10,14,27,31,37,35,131,130,125,38,42,43,60,61,62,63,67,71,74,77,88,89,90,91,92,93,94,95,96,97,99,100,101,102,103,105,106,107,108,114,115,116,121,122,123,124,0,73,108,108,101,103,97,108,32,98,121,116,101,32,115,101,113,117,101,110,99,101,0,68,111,109,97,105,110,32,101,114,114,111,114,0,82,101,115,117,108,116,32,110,111,116,32,114,101,112,114,101,115,101,110,116,97,98,108,101,0,78,111,116,32,97,32,116,116,121,0,80,101,114,109,105,115,115,105,111,110,32,100,101,110,105,101,100,0,79,112,101,114,97,116,105,111,110,32,110,111,116,32,112,101,114,109,105,116,116,101,100,0,78,111,32,115,117,99,104,32,102,105,108,101,32,111,114,32,100,105,114,101,99,116,111,114,121,0,78,111,32,115,117,99,104,32,112,114,111,99,101,115,115,0,70,105,108,101,32,101,120,105,115,116,115,0,86,97,108,117,101,32,116,111,111,32,108,97,114,103,101,32,102,111,114,32,100,97,116,97,32,116,121,112,101,0,78,111,32,115,112,97,99,101,32,108,101,102,116,32,111,110,32,100,101,118,105,99,101,0,79,117,116,32,111,102,32,109,101,109,111,114,121,0,82,101,115,111,117,114,99,101,32,98,117,115,121,0,73,110,116,101,114,114,117,112,116,101,100,32,115,121,115,116,101,109,32,99,97,108,108,0,82,101,115,111,117,114,99,101,32,116,101,109,112,111,114,97,114,105,108,121,32,117,110,97,118,97,105,108,97,98,108,101,0,73,110,118,97,108,105,100,32,115,101,101,107,0,67,114,111,115,115,45,100,101,118,105,99,101,32,108,105,110,107,0,82,101,97,100,45,111,110,108,121,32,102,105,108,101,32,115,121,115,116,101,109,0,68,105,114,101,99,116,111,114,121,32,110,111,116,32,101,109,112,116,121,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,112,101,101,114,0,79,112,101,114,97,116,105,111,110,32,116,105,109,101,100,32,111,117,116,0,67,111,110,110,101,99,116,105,111,110,32,114,101,102,117,115,101,100,0,72,111,115,116,32,105,115,32,100,111,119,110,0,72,111,115,116,32,105,115,32,117,110,114,101,97,99,104,97,98,108,101,0,65,100,100,114,101,115,115,32,105,110,32,117,115,101,0,66,114,111,107,101,110,32,112,105,112,101,0,73,47,79,32,101,114,114,111,114,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,32,111,114,32,97,100,100,114,101,115,115,0,66,108,111,99,107,32,100,101,118,105,99,101,32,114,101,113,117,105,114,101,100,0,78,111,32,115,117,99,104,32,100,101,118,105,99,101,0,78,111,116,32,97,32,100,105,114,101,99,116,111,114,121,0,73,115,32,97,32,100,105,114,101,99,116,111,114,121,0,84,101,120,116,32,102,105,108,101,32,98,117,115,121,0,69,120,101,99,32,102,111,114,109,97,116,32,101,114,114,111,114,0,73,110,118,97,108,105,100,32,97,114,103,117,109,101,110,116,0,65,114,103,117,109,101,110,116,32,108,105,115,116,32,116,111,111,32,108,111,110,103,0,83,121,109,98,111,108,105,99,32,108,105,110,107,32,108,111,111,112,0,70,105,108,101,110,97,109,101,32,116,111,111,32,108,111,110,103,0,84,111,111,32,109,97,110,121,32,111,112,101,110,32,102,105,108,101,115,32,105,110,32,115,121,115,116,101,109,0,78,111,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,115,32,97,118,97,105,108,97,98,108,101,0,66,97,100,32,102,105,108,101,32,100,101,115,99,114,105,112,116,111,114,0,78,111,32,99,104,105,108,100,32,112,114,111,99,101,115,115,0,66,97,100,32,97,100,100,114,101,115,115,0,70,105,108,101,32,116,111,111,32,108,97,114,103,101,0,84,111,111,32,109,97,110,121,32,108,105,110,107,115,0,78,111,32,108,111,99,107,115,32,97,118,97,105,108,97,98,108,101,0,82,101,115,111,117,114,99,101,32,100,101,97,100,108,111,99,107,32,119,111,117,108,100,32,111,99,99,117,114,0,83,116,97,116,101,32,110,111,116,32,114,101,99,111,118,101,114,97,98,108,101,0,80,114,101,118,105,111,117,115,32,111,119,110,101,114,32,100,105,101,100,0,79,112,101,114,97,116,105,111,110,32,99,97,110,99,101,108,101,100,0,70,117,110,99,116,105,111,110,32,110,111,116,32,105,109,112,108,101,109,101,110,116,101,100,0,78,111,32,109,101,115,115,97,103,101,32,111,102,32,100,101,115,105,114,101,100,32,116,121,112,101,0,73,100,101,110,116,105,102,105,101,114,32,114,101,109,111,118,101,100,0,68,101,118,105,99,101,32,110,111,116,32,97,32,115,116,114,101,97,109,0,78,111,32,100,97,116,97,32,97,118,97,105,108,97,98,108,101,0,68,101,118,105,99,101,32,116,105,109,101,111,117,116,0,79,117,116,32,111,102,32,115,116,114,101,97,109,115,32,114,101,115,111,117,114,99,101,115,0,76,105,110,107,32,104,97,115,32,98,101,101,110,32,115,101,118,101,114,101,100,0,80,114,111,116,111,99,111,108,32,101,114,114,111,114,0,66,97,100,32,109,101,115,115,97,103,101,0,70,105,108,101,32,100,101,115,99,114,105,112,116,111,114,32,105,110,32,98,97,100,32,115,116,97,116,101,0,78,111,116,32,97,32,115,111,99,107,101,116,0,68,101,115,116,105,110,97,116,105,111,110,32,97,100,100,114,101,115,115,32,114,101,113,117,105,114,101,100,0,77,101,115,115,97,103,101,32,116,111,111,32,108,97,114,103,101,0,80,114,111,116,111,99,111,108,32,119,114,111,110,103,32,116,121,112,101,32,102,111,114,32,115,111,99,107,101,116,0,80,114,111,116,111,99,111,108,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,80,114,111,116,111,99,111,108,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,83,111,99,107,101,116,32,116,121,112,101,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,78,111,116,32,115,117,112,112,111,114,116,101,100,0,80,114,111,116,111,99,111,108,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,0,65,100,100,114,101,115,115,32,102,97,109,105,108,121,32,110,111,116,32,115,117,112,112,111,114,116,101,100,32,98,121,32,112,114,111,116,111,99,111,108,0,65,100,100,114,101,115,115,32,110,111,116,32,97,118,97,105,108,97,98,108,101,0,78,101,116,119,111,114,107,32,105,115,32,100,111,119,110,0,78,101,116,119,111,114,107,32,117,110,114,101,97,99,104,97,98,108,101,0,67,111,110,110,101,99,116,105,111,110,32,114,101,115,101,116,32,98,121,32,110,101,116,119,111,114,107,0,67,111,110,110,101,99,116,105,111,110,32,97,98,111,114,116,101,100,0,78,111,32,98,117,102,102,101,114,32,115,112,97,99,101,32,97,118,97,105,108,97,98,108,101,0,83,111,99,107,101,116,32,105,115,32,99,111,110,110,101,99,116,101,100,0,83,111,99,107,101,116,32,110,111,116,32,99,111,110,110,101,99,116,101,100,0,67,97,110,110,111,116,32,115,101,110,100,32,97,102,116,101,114,32,115,111,99,107,101,116,32,115,104,117,116,100,111,119,110,0,79,112,101,114,97,116,105,111,110,32,97,108,114,101,97,100,121,32,105,110,32,112,114,111,103,114,101,115,115,0,79,112,101,114,97,116,105,111,110,32,105,110,32,112,114,111,103,114,101,115,115,0,83,116,97,108,101,32,102,105,108,101,32,104,97,110,100,108,101,0,82,101,109,111,116,101,32,73,47,79,32,101,114,114,111,114,0,81,117,111,116,97,32,101,120,99,101,101,100,101,100,0,78,111,32,109,101,100,105,117,109,32,102,111,117,110,100,0,87,114,111,110,103,32,109,101,100,105,117,109,32,116,121,112,101,0,78,111,32,101,114,114,111,114,32,105,110,102,111,114,109,97,116,105,111,110,0,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,58,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,101,120,99,101,112,116,105,111,110,32,111,102,32,116,121,112,101,32,37,115,0,116,101,114,109,105,110,97,116,105,110,103,32,119,105,116,104,32,37,115,32,102,111,114,101,105,103,110,32,101,120,99,101,112,116,105,111,110,0,116,101,114,109,105,110,97,116,105,110,103,0,117,110,99,97,117,103,104,116,0,83,116,57,101,120,99,101,112,116,105,111,110,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,54,95,95,115,104,105,109,95,116,121,112,101,95,105,110,102,111,69,0,83,116,57,116,121,112,101,95,105,110,102,111,0,78,49,48,95,95,99,120,120,97,98,105,118,49,50,48,95,95,115,105,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,99,108,97,115,115,95,116,121,112,101,95,105,110,102,111,69,0,112,116,104,114,101,97,100,95,111,110,99,101,32,102,97,105,108,117,114,101,32,105,110,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,95,102,97,115,116,40,41,0,99,97,110,110,111,116,32,99,114,101,97,116,101,32,112,116,104,114,101,97,100,32,107,101,121,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,99,97,110,110,111,116,32,122,101,114,111,32,111,117,116,32,116,104,114,101,97,100,32,118,97,108,117,101,32,102,111,114,32,95,95,99,120,97,95,103,101,116,95,103,108,111,98,97,108,115,40,41,0,116,101,114,109,105,110,97,116,101,95,104,97,110,100,108,101,114,32,117,110,101,120,112,101,99,116,101,100,108,121,32,114,101,116,117,114,110,101,100,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,57,95,95,112,111,105,110,116,101,114,95,116,121,112,101,95,105,110,102,111,69,0,78,49,48,95,95,99,120,120,97,98,105,118,49,49,55,95,95,112,98,97,115,101,95,116,121,112,101,95,105,110,102,111,69,0],"i8",ALLOC_NONE,Runtime.GLOBAL_BASE);var tempDoublePtr=STATICTOP;STATICTOP+=16;var EXCEPTIONS={last:0,caught:[],infos:{},deAdjust:function(e){if(!e||EXCEPTIONS.infos[e])return e;for(var r in EXCEPTIONS.infos){if(EXCEPTIONS.infos[r].adjusted===e)return r}return e},addRef:function(e){if(e){EXCEPTIONS.infos[e].refcount++}},decRef:function(e){if(e){var r=EXCEPTIONS.infos[e];assert(r.refcount>0),r.refcount--,0!==r.refcount||r.rethrown||(r.destructor&&Module.dynCall_vi(r.destructor,e),delete EXCEPTIONS.infos[e],___cxa_free_exception(e))}},clearRef:function(e){if(e){EXCEPTIONS.infos[e].refcount=0}}},SYSCALLS={varargs:0,get:function(e){return SYSCALLS.varargs+=4,HEAP32[SYSCALLS.varargs-4>>2]},getStr:function(){return Pointer_stringify(SYSCALLS.get())},get64:function(){var e=SYSCALLS.get(),r=SYSCALLS.get();return assert(e>=0?0===r:-1===r),e},getZero:function(){assert(0===SYSCALLS.get())}},cttz_i8=allocate([8,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,7,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,6,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,5,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0,4,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0],"i8",ALLOC_STATIC),PTHREAD_SPECIFIC={},PTHREAD_SPECIFIC_NEXT_KEY=1,ERRNO_CODES={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86};__ATEXIT__.push(function(){var e=Module._fflush;e&&e(0);var r=___syscall146.printChar;if(r){var n=___syscall146.buffers;n[1].length&&r(1,10),n[2].length&&r(2,10)}}),DYNAMICTOP_PTR=allocate(1,"i32",ALLOC_STATIC),STACK_BASE=STACKTOP=Runtime.alignMemory(STATICTOP),STACK_MAX=STACK_BASE+TOTAL_STACK,DYNAMIC_BASE=Runtime.alignMemory(STACK_MAX),HEAP32[DYNAMICTOP_PTR>>2]=DYNAMIC_BASE,staticSealed=!0,Module.asmGlobalArg={Math:Math,Int8Array:Int8Array,Int16Array:Int16Array,Int32Array:Int32Array,Uint8Array:Uint8Array,Uint16Array:Uint16Array,Uint32Array:Uint32Array,Float32Array:Float32Array,Float64Array:Float64Array,NaN:NaN,Infinity:1/0,byteLength:byteLength},Module.asmLibraryArg={abort:abort,assert:assert,enlargeMemory:enlargeMemory,getTotalMemory:getTotalMemory,abortOnCannotGrowMemory:abortOnCannotGrowMemory,invoke_iiii:invoke_iiii,invoke_viiiii:invoke_viiiii, -invoke_vi:invoke_vi,invoke_ii:invoke_ii,invoke_viii:invoke_viii,invoke_v:invoke_v,invoke_viiiiii:invoke_viiiiii,invoke_viiii:invoke_viiii,_pthread_getspecific:_pthread_getspecific,___syscall54:___syscall54,_pthread_setspecific:_pthread_setspecific,___gxx_personality_v0:___gxx_personality_v0,___syscall6:___syscall6,___setErrNo:___setErrNo,_abort:_abort,___cxa_begin_catch:___cxa_begin_catch,_pthread_once:_pthread_once,_emscripten_memcpy_big:_emscripten_memcpy_big,_pthread_key_create:_pthread_key_create,___syscall140:___syscall140,___resumeException:___resumeException,___cxa_find_matching_catch:___cxa_find_matching_catch,___syscall146:___syscall146,__ZSt18uncaught_exceptionv:__ZSt18uncaught_exceptionv,DYNAMICTOP_PTR:DYNAMICTOP_PTR,tempDoublePtr:tempDoublePtr,ABORT:ABORT,STACKTOP:STACKTOP,STACK_MAX:STACK_MAX,cttz_i8:cttz_i8};var asm=function(e,r,n){"almost asm";function t(e){return!(16777215&nn(e)||nn(e)<=16777215||nn(e)>2147483648)&&(Xr=new Hr(e),Yr=new Vr(e),Kr=new xr(e),Zr=new Wr(e),jr=new zr(e),Qr=new Jr(e),$r=new qr(e),rn=new en(e),n=e,!0)}function i(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,I=0;I=on,on=on+16|0,c=I;do{if(e>>>0<245){if(E=e>>>0<11?16:e+11&-8,e=E>>>3,T=0|Kr[1144],3&(n=T>>>e)|0)return r=(1&n^1)+e|0,e=4616+(r<<1<<2)|0,n=e+8|0,t=0|Kr[n>>2],i=t+8|0,_=0|Kr[i>>2],(0|e)==(0|_)?Kr[1144]=T&~(1<<r):(Kr[_+12>>2]=e,Kr[n>>2]=_),N=r<<3,Kr[t+4>>2]=3|N,N=t+N+4|0,Kr[N>>2]=1|Kr[N>>2],N=i,on=I,0|N;if(f=0|Kr[1146],E>>>0>f>>>0){if(0|n)return r=2<<e,r=n<<e&(r|0-r),r=(r&0-r)-1|0,o=r>>>12&16,r>>>=o,n=r>>>5&8,r>>>=n,i=r>>>2&4,r>>>=i,e=r>>>1&2,r>>>=e,t=r>>>1&1,t=(n|o|i|e|t)+(r>>>t)|0,r=4616+(t<<1<<2)|0,e=r+8|0,i=0|Kr[e>>2],o=i+8|0,n=0|Kr[o>>2],(0|r)==(0|n)?(e=T&~(1<<t),Kr[1144]=e):(Kr[n+12>>2]=r,Kr[e>>2]=n,e=T),_=(t<<3)-E|0,Kr[i+4>>2]=3|E,t=i+E|0,Kr[t+4>>2]=1|_,Kr[t+_>>2]=_,0|f&&(i=0|Kr[1149],r=f>>>3,n=4616+(r<<1<<2)|0,r=1<<r,e&r?(e=n+8|0,r=0|Kr[e>>2]):(Kr[1144]=e|r,r=n,e=n+8|0),Kr[e>>2]=i,Kr[r+12>>2]=i,Kr[i+8>>2]=r,Kr[i+12>>2]=n),Kr[1146]=_,Kr[1149]=t,N=o,on=I,0|N;if(a=0|Kr[1145]){if(n=(a&0-a)-1|0,o=n>>>12&16,n>>>=o,_=n>>>5&8,n>>>=_,u=n>>>2&4,n>>>=u,t=n>>>1&2,n>>>=t,e=n>>>1&1,e=0|Kr[4880+((_|o|u|t|e)+(n>>>e)<<2)>>2],n=(-8&Kr[e+4>>2])-E|0,t=0|Kr[e+16+((0==(0|Kr[e+16>>2])&1)<<2)>>2]){do{o=(-8&Kr[t+4>>2])-E|0,u=o>>>0<n>>>0,n=u?o:n,e=u?t:e,t=0|Kr[t+16+((0==(0|Kr[t+16>>2])&1)<<2)>>2]}while(0!=(0|t));u=e,_=n}else u=e,_=n;if(o=u+E|0,u>>>0<o>>>0){i=0|Kr[u+24>>2],r=0|Kr[u+12>>2];do{if((0|r)==(0|u)){if(e=u+20|0,!((r=0|Kr[e>>2])||(e=u+16|0,r=0|Kr[e>>2]))){n=0;break}for(;;)if(n=r+20|0,0|(t=0|Kr[n>>2]))r=t,e=n;else{if(n=r+16|0,!(t=0|Kr[n>>2]))break;r=t,e=n}Kr[e>>2]=0,n=r}else n=0|Kr[u+8>>2],Kr[n+12>>2]=r,Kr[r+8>>2]=n,n=r}while(0);do{if(0|i){if(r=0|Kr[u+28>>2],e=4880+(r<<2)|0,(0|u)==(0|Kr[e>>2])){if(Kr[e>>2]=n,!n){Kr[1145]=a&~(1<<r);break}}else if(Kr[i+16+(((0|Kr[i+16>>2])!=(0|u)&1)<<2)>>2]=n,!n)break;Kr[n+24>>2]=i,r=0|Kr[u+16>>2],0|r&&(Kr[n+16>>2]=r,Kr[r+24>>2]=n),r=0|Kr[u+20>>2],0|r&&(Kr[n+20>>2]=r,Kr[r+24>>2]=n)}}while(0);return _>>>0<16?(N=_+E|0,Kr[u+4>>2]=3|N,N=u+N+4|0,Kr[N>>2]=1|Kr[N>>2]):(Kr[u+4>>2]=3|E,Kr[o+4>>2]=1|_,Kr[o+_>>2]=_,0|f&&(t=0|Kr[1149],r=f>>>3,n=4616+(r<<1<<2)|0,r=1<<r,T&r?(e=n+8|0,r=0|Kr[e>>2]):(Kr[1144]=T|r,r=n,e=n+8|0),Kr[e>>2]=t,Kr[r+12>>2]=t,Kr[t+8>>2]=r,Kr[t+12>>2]=n),Kr[1146]=_,Kr[1149]=o),N=u+8|0,on=I,0|N}T=E}else T=E}else T=E}else if(e>>>0<=4294967231)if(e=e+11|0,E=-8&e,u=0|Kr[1145]){t=0-E|0,e>>>=8,e?E>>>0>16777215?a=31:(T=(e+1048320|0)>>>16&8,S=e<<T,f=(S+520192|0)>>>16&4,S<<=f,a=(S+245760|0)>>>16&2,a=14-(f|T|a)+(S<<a>>>15)|0,a=E>>>(a+7|0)&1|a<<1):a=0,n=0|Kr[4880+(a<<2)>>2];e:do{if(n)for(e=0,o=E<<(31==(0|a)?0:25-(a>>>1)|0),_=0;;){if((i=(-8&Kr[n+4>>2])-E|0)>>>0<t>>>0){if(!i){e=n,t=0,i=n,S=61;break e}e=n,t=i}if(i=0|Kr[n+20>>2],n=0|Kr[n+16+(o>>>31<<2)>>2],_=0==(0|i)|(0|i)==(0|n)?_:i,i=0==(0|n)){n=_,S=57;break}o<<=1&(1^i)}else n=0,e=0,S=57}while(0);if(57==(0|S)){if(0==(0|n)&0==(0|e)){if(e=2<<a,!(e=u&(e|0-e))){T=E;break}T=(e&0-e)-1|0,o=T>>>12&16,T>>>=o,_=T>>>5&8,T>>>=_,a=T>>>2&4,T>>>=a,f=T>>>1&2,T>>>=f,n=T>>>1&1,e=0,n=0|Kr[4880+((_|o|a|f|n)+(T>>>n)<<2)>>2]}n?(i=n,S=61):(a=e,o=t)}if(61==(0|S))for(;;){if(S=0,n=(-8&Kr[i+4>>2])-E|0,T=n>>>0<t>>>0,n=T?n:t,e=T?i:e,!(i=0|Kr[i+16+((0==(0|Kr[i+16>>2])&1)<<2)>>2])){a=e,o=n;break}t=n,S=61}if(0!=(0|a)?o>>>0<((0|Kr[1146])-E|0)>>>0:0){if(_=a+E|0,a>>>0>=_>>>0)return N=0,on=I,0|N;i=0|Kr[a+24>>2],r=0|Kr[a+12>>2];do{if((0|r)==(0|a)){if(e=a+20|0,!((r=0|Kr[e>>2])||(e=a+16|0,r=0|Kr[e>>2]))){r=0;break}for(;;)if(n=r+20|0,0|(t=0|Kr[n>>2]))r=t,e=n;else{if(n=r+16|0,!(t=0|Kr[n>>2]))break;r=t,e=n}Kr[e>>2]=0}else N=0|Kr[a+8>>2],Kr[N+12>>2]=r,Kr[r+8>>2]=N}while(0);do{if(i){if(e=0|Kr[a+28>>2],n=4880+(e<<2)|0,(0|a)==(0|Kr[n>>2])){if(Kr[n>>2]=r,!r){t=u&~(1<<e),Kr[1145]=t;break}}else if(Kr[i+16+(((0|Kr[i+16>>2])!=(0|a)&1)<<2)>>2]=r,!r){t=u;break}Kr[r+24>>2]=i,e=0|Kr[a+16>>2],0|e&&(Kr[r+16>>2]=e,Kr[e+24>>2]=r),e=0|Kr[a+20>>2],e?(Kr[r+20>>2]=e,Kr[e+24>>2]=r,t=u):t=u}else t=u}while(0);do{if(o>>>0>=16){if(Kr[a+4>>2]=3|E,Kr[_+4>>2]=1|o,Kr[_+o>>2]=o,r=o>>>3,o>>>0<256){n=4616+(r<<1<<2)|0,e=0|Kr[1144],r=1<<r,e&r?(e=n+8|0,r=0|Kr[e>>2]):(Kr[1144]=e|r,r=n,e=n+8|0),Kr[e>>2]=_,Kr[r+12>>2]=_,Kr[_+8>>2]=r,Kr[_+12>>2]=n;break}if(r=o>>>8,r?o>>>0>16777215?r=31:(S=(r+1048320|0)>>>16&8,N=r<<S,M=(N+520192|0)>>>16&4,N<<=M,r=(N+245760|0)>>>16&2,r=14-(M|S|r)+(N<<r>>>15)|0,r=o>>>(r+7|0)&1|r<<1):r=0,n=4880+(r<<2)|0,Kr[_+28>>2]=r,e=_+16|0,Kr[e+4>>2]=0,Kr[e>>2]=0,e=1<<r,!(t&e)){Kr[1145]=t|e,Kr[n>>2]=_,Kr[_+24>>2]=n,Kr[_+12>>2]=_,Kr[_+8>>2]=_;break}for(e=o<<(31==(0|r)?0:25-(r>>>1)|0),n=0|Kr[n>>2];;){if((-8&Kr[n+4>>2]|0)==(0|o)){S=97;break}if(t=n+16+(e>>>31<<2)|0,!(r=0|Kr[t>>2])){S=96;break}e<<=1,n=r}if(96==(0|S)){Kr[t>>2]=_,Kr[_+24>>2]=n,Kr[_+12>>2]=_,Kr[_+8>>2]=_;break}if(97==(0|S)){S=n+8|0,N=0|Kr[S>>2],Kr[N+12>>2]=_,Kr[S>>2]=_,Kr[_+8>>2]=N,Kr[_+12>>2]=n,Kr[_+24>>2]=0;break}}else N=o+E|0,Kr[a+4>>2]=3|N,N=a+N+4|0,Kr[N>>2]=1|Kr[N>>2]}while(0);return N=a+8|0,on=I,0|N}T=E}else T=E;else T=-1}while(0);if((n=0|Kr[1146])>>>0>=T>>>0)return r=n-T|0,e=0|Kr[1149],r>>>0>15?(N=e+T|0,Kr[1149]=N,Kr[1146]=r,Kr[N+4>>2]=1|r,Kr[N+r>>2]=r,Kr[e+4>>2]=3|T):(Kr[1146]=0,Kr[1149]=0,Kr[e+4>>2]=3|n,N=e+n+4|0,Kr[N>>2]=1|Kr[N>>2]),N=e+8|0,on=I,0|N;if((o=0|Kr[1147])>>>0>T>>>0)return M=o-T|0,Kr[1147]=M,N=0|Kr[1150],S=N+T|0,Kr[1150]=S,Kr[S+4>>2]=1|M,Kr[N+4>>2]=3|T,N=N+8|0,on=I,0|N;if(0|Kr[1262]?e=0|Kr[1264]:(Kr[1264]=4096,Kr[1263]=4096,Kr[1265]=-1,Kr[1266]=-1,Kr[1267]=0,Kr[1255]=0,e=-16&c^1431655768,Kr[c>>2]=e,Kr[1262]=e,e=4096),a=T+48|0,u=T+47|0,_=e+u|0,i=0-e|0,(E=_&i)>>>0<=T>>>0)return N=0,on=I,0|N;if(e=0|Kr[1254],0|e?(f=0|Kr[1252],(c=f+E|0)>>>0<=f>>>0|c>>>0>e>>>0):0)return N=0,on=I,0|N;e:do{if(4&Kr[1255])r=0,S=133;else{n=0|Kr[1150];r:do{if(n){for(t=5024;;){if(e=0|Kr[t>>2],e>>>0<=n>>>0?(A=t+4|0,(e+(0|Kr[A>>2])|0)>>>0>n>>>0):0)break;if(!(e=0|Kr[t+8>>2])){S=118;break r}t=e}if((r=_-o&i)>>>0<2147483647)if((0|(e=0|Ne(0|r)))==((0|Kr[t>>2])+(0|Kr[A>>2])|0)){if(-1!=(0|e)){o=r,_=e,S=135;break e}}else t=e,S=126;else r=0}else S=118}while(0);do{if(118==(0|S))if(n=0|Ne(0),-1!=(0|n)?(r=n,l=0|Kr[1263],s=l+-1|0,r=(0==(s&r|0)?0:(s+r&0-l)-r|0)+E|0,l=0|Kr[1252],s=r+l|0,r>>>0>T>>>0&r>>>0<2147483647):0){if(A=0|Kr[1254],0|A?s>>>0<=l>>>0|s>>>0>A>>>0:0){r=0;break}if((0|(e=0|Ne(0|r)))==(0|n)){o=r,_=n,S=135;break e}t=e,S=126}else r=0}while(0);do{if(126==(0|S)){if(n=0-r|0,!(a>>>0>r>>>0&r>>>0<2147483647&-1!=(0|t))){if(-1==(0|t)){r=0;break}o=r,_=t,S=135;break e}if(e=0|Kr[1264],(e=u-r+e&0-e)>>>0>=2147483647){o=r,_=t,S=135;break e}if(-1==(0|Ne(0|e))){Ne(0|n),r=0;break}o=e+r|0,_=t,S=135;break e}}while(0);Kr[1255]=4|Kr[1255],S=133}}while(0);if(!(133==(0|S)?E>>>0<2147483647:0)||(M=0|Ne(0|E),A=0|Ne(0),R=A-M|0,d=R>>>0>(T+40|0)>>>0,-1==(0|M)|1^d|M>>>0<A>>>0&-1!=(0|M)&-1!=(0|A)^1)||(o=d?R:r,_=M,S=135),135==(0|S)){r=(0|Kr[1252])+o|0,Kr[1252]=r,r>>>0>(0|Kr[1253])>>>0&&(Kr[1253]=r),u=0|Kr[1150];do{if(u){for(r=5024;;){if(e=0|Kr[r>>2],n=r+4|0,t=0|Kr[n>>2],(0|_)==(e+t|0)){S=145;break}if(!(i=0|Kr[r+8>>2]))break;r=i}if((145==(0|S)?0==(8&Kr[r+12>>2]|0):0)?u>>>0<_>>>0&u>>>0>=e>>>0:0){Kr[n>>2]=t+o,N=u+8|0,N=0==(7&N|0)?0:0-N&7,S=u+N|0,N=(0|Kr[1147])+(o-N)|0,Kr[1150]=S,Kr[1147]=N,Kr[S+4>>2]=1|N,Kr[S+N+4>>2]=40,Kr[1151]=Kr[1266];break}for(_>>>0<(0|Kr[1148])>>>0&&(Kr[1148]=_),n=_+o|0,r=5024;;){if((0|Kr[r>>2])==(0|n)){S=153;break}if(!(e=0|Kr[r+8>>2]))break;r=e}if(153==(0|S)?0==(8&Kr[r+12>>2]|0):0){Kr[r>>2]=_,f=r+4|0,Kr[f>>2]=(0|Kr[f>>2])+o,f=_+8|0,f=_+(0==(7&f|0)?0:0-f&7)|0,r=n+8|0,r=n+(0==(7&r|0)?0:0-r&7)|0,E=f+T|0,a=r-f-T|0,Kr[f+4>>2]=3|T;do{if((0|r)!=(0|u)){if((0|r)==(0|Kr[1149])){N=(0|Kr[1146])+a|0,Kr[1146]=N,Kr[1149]=E,Kr[E+4>>2]=1|N,Kr[E+N>>2]=N;break}if(1==(3&(e=0|Kr[r+4>>2])|0)){o=-8&e,t=e>>>3;e:do{if(e>>>0<256){if(e=0|Kr[r+8>>2],(0|(n=0|Kr[r+12>>2]))==(0|e)){Kr[1144]=Kr[1144]&~(1<<t);break}Kr[e+12>>2]=n,Kr[n+8>>2]=e;break}_=0|Kr[r+24>>2],e=0|Kr[r+12>>2];do{if((0|e)==(0|r)){if(t=r+16|0,n=t+4|0,!(e=0|Kr[n>>2])){if(!(e=0|Kr[t>>2])){e=0;break}n=t}for(;;)if(t=e+20|0,0|(i=0|Kr[t>>2]))e=i,n=t;else{if(t=e+16|0,!(i=0|Kr[t>>2]))break;e=i,n=t}Kr[n>>2]=0}else N=0|Kr[r+8>>2],Kr[N+12>>2]=e,Kr[e+8>>2]=N}while(0);if(!_)break;n=0|Kr[r+28>>2],t=4880+(n<<2)|0;do{if((0|r)==(0|Kr[t>>2])){if(Kr[t>>2]=e,0|e)break;Kr[1145]=Kr[1145]&~(1<<n);break e}if(Kr[_+16+(((0|Kr[_+16>>2])!=(0|r)&1)<<2)>>2]=e,!e)break e}while(0);if(Kr[e+24>>2]=_,n=r+16|0,t=0|Kr[n>>2],0|t&&(Kr[e+16>>2]=t,Kr[t+24>>2]=e),!(n=0|Kr[n+4>>2]))break;Kr[e+20>>2]=n,Kr[n+24>>2]=e}while(0);r=r+o|0,i=o+a|0}else i=a;if(r=r+4|0,Kr[r>>2]=-2&Kr[r>>2],Kr[E+4>>2]=1|i,Kr[E+i>>2]=i,r=i>>>3,i>>>0<256){n=4616+(r<<1<<2)|0,e=0|Kr[1144],r=1<<r,e&r?(e=n+8|0,r=0|Kr[e>>2]):(Kr[1144]=e|r,r=n,e=n+8|0),Kr[e>>2]=E,Kr[r+12>>2]=E,Kr[E+8>>2]=r,Kr[E+12>>2]=n;break}r=i>>>8;do{if(r){if(i>>>0>16777215){r=31;break}S=(r+1048320|0)>>>16&8,N=r<<S,M=(N+520192|0)>>>16&4,N<<=M,r=(N+245760|0)>>>16&2,r=14-(M|S|r)+(N<<r>>>15)|0,r=i>>>(r+7|0)&1|r<<1}else r=0}while(0);if(t=4880+(r<<2)|0,Kr[E+28>>2]=r,e=E+16|0,Kr[e+4>>2]=0,Kr[e>>2]=0,e=0|Kr[1145],n=1<<r,!(e&n)){Kr[1145]=e|n,Kr[t>>2]=E,Kr[E+24>>2]=t,Kr[E+12>>2]=E,Kr[E+8>>2]=E;break}for(e=i<<(31==(0|r)?0:25-(r>>>1)|0),n=0|Kr[t>>2];;){if((-8&Kr[n+4>>2]|0)==(0|i)){S=194;break}if(t=n+16+(e>>>31<<2)|0,!(r=0|Kr[t>>2])){S=193;break}e<<=1,n=r}if(193==(0|S)){Kr[t>>2]=E,Kr[E+24>>2]=n,Kr[E+12>>2]=E,Kr[E+8>>2]=E;break}if(194==(0|S)){S=n+8|0,N=0|Kr[S>>2],Kr[N+12>>2]=E,Kr[S>>2]=E,Kr[E+8>>2]=N,Kr[E+12>>2]=n,Kr[E+24>>2]=0;break}}else N=(0|Kr[1147])+a|0,Kr[1147]=N,Kr[1150]=E,Kr[E+4>>2]=1|N}while(0);return N=f+8|0,on=I,0|N}for(r=5024;;){if(e=0|Kr[r>>2],e>>>0<=u>>>0?(N=e+(0|Kr[r+4>>2])|0)>>>0>u>>>0:0)break;r=0|Kr[r+8>>2]}i=N+-47|0,e=i+8|0,e=i+(0==(7&e|0)?0:0-e&7)|0,i=u+16|0,e=e>>>0<i>>>0?u:e,r=e+8|0,n=_+8|0,n=0==(7&n|0)?0:0-n&7,S=_+n|0,n=o+-40-n|0,Kr[1150]=S,Kr[1147]=n,Kr[S+4>>2]=1|n,Kr[S+n+4>>2]=40,Kr[1151]=Kr[1266],n=e+4|0,Kr[n>>2]=27,Kr[r>>2]=Kr[1256],Kr[r+4>>2]=Kr[1257],Kr[r+8>>2]=Kr[1258],Kr[r+12>>2]=Kr[1259],Kr[1256]=_,Kr[1257]=o,Kr[1259]=0,Kr[1258]=r,r=e+24|0;do{S=r,r=r+4|0,Kr[r>>2]=7}while((S+8|0)>>>0<N>>>0);if((0|e)!=(0|u)){if(_=e-u|0,Kr[n>>2]=-2&Kr[n>>2],Kr[u+4>>2]=1|_,Kr[e>>2]=_,r=_>>>3,_>>>0<256){n=4616+(r<<1<<2)|0,e=0|Kr[1144],r=1<<r,e&r?(e=n+8|0,r=0|Kr[e>>2]):(Kr[1144]=e|r,r=n,e=n+8|0),Kr[e>>2]=u,Kr[r+12>>2]=u,Kr[u+8>>2]=r,Kr[u+12>>2]=n;break}if(r=_>>>8,r?_>>>0>16777215?n=31:(S=(r+1048320|0)>>>16&8,N=r<<S,M=(N+520192|0)>>>16&4,N<<=M,n=(N+245760|0)>>>16&2,n=14-(M|S|n)+(N<<n>>>15)|0,n=_>>>(n+7|0)&1|n<<1):n=0,t=4880+(n<<2)|0,Kr[u+28>>2]=n,Kr[u+20>>2]=0,Kr[i>>2]=0,r=0|Kr[1145],e=1<<n,!(r&e)){Kr[1145]=r|e,Kr[t>>2]=u,Kr[u+24>>2]=t,Kr[u+12>>2]=u,Kr[u+8>>2]=u;break}for(e=_<<(31==(0|n)?0:25-(n>>>1)|0),n=0|Kr[t>>2];;){if((-8&Kr[n+4>>2]|0)==(0|_)){S=216;break}if(t=n+16+(e>>>31<<2)|0,!(r=0|Kr[t>>2])){S=215;break}e<<=1,n=r}if(215==(0|S)){Kr[t>>2]=u,Kr[u+24>>2]=n,Kr[u+12>>2]=u,Kr[u+8>>2]=u;break}if(216==(0|S)){S=n+8|0,N=0|Kr[S>>2],Kr[N+12>>2]=u,Kr[S>>2]=u,Kr[u+8>>2]=N,Kr[u+12>>2]=n,Kr[u+24>>2]=0;break}}}else{N=0|Kr[1148],0==(0|N)|_>>>0<N>>>0&&(Kr[1148]=_),Kr[1256]=_,Kr[1257]=o,Kr[1259]=0,Kr[1153]=Kr[1262],Kr[1152]=-1,r=0;do{N=4616+(r<<1<<2)|0,Kr[N+12>>2]=N,Kr[N+8>>2]=N,r=r+1|0}while(32!=(0|r));N=_+8|0,N=0==(7&N|0)?0:0-N&7,S=_+N|0,N=o+-40-N|0,Kr[1150]=S,Kr[1147]=N,Kr[S+4>>2]=1|N,Kr[S+N+4>>2]=40,Kr[1151]=Kr[1266]}}while(0);if((r=0|Kr[1147])>>>0>T>>>0)return M=r-T|0,Kr[1147]=M,N=0|Kr[1150],S=N+T|0,Kr[1150]=S,Kr[S+4>>2]=1|M,Kr[N+4>>2]=3|T,N=N+8|0,on=I,0|N}return N=0|Pr(),Kr[N>>2]=12,N=0,on=I,0|N}function _(e,r,n,t,i,_){e|=0,r=+r,n|=0,t|=0,i|=0,_|=0;var o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,I=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0;F=on,on=on+560|0,u=F+8|0,R=F,b=F+524|0,L=b,E=F+512|0,Kr[R>>2]=0,P=E+12|0,Je(r),(0|Tn)<0?(r=-r,C=1,O=2087):(C=0!=(2049&i|0)&1,O=0==(2048&i|0)?0==(1&i|0)?2088:2093:2090),Je(r),h=2146435072&Tn;do{if(h>>>0<2146435072|2146435072==(0|h)&!1){if(l=2*+Cr(r,R),o=0!=l,o&&(Kr[R>>2]=(0|Kr[R>>2])-1),97==(0|(M=32|_))){s=32&_,c=0==(0|s)?O:O+9|0,T=2|C,o=12-t|0;do{if(!(t>>>0>11|0==(0|o))){r=8;do{o=o+-1|0,r*=16}while(0!=(0|o));if(45==(0|Xr[c>>0])){r=-(r+(-l-r));break}r=l+r-r;break}r=l}while(0);a=0|Kr[R>>2],o=(0|a)<0?0-a|0:a,o=0|Ee(o,((0|o)<0)<<31>>31,P),(0|o)==(0|P)&&(o=E+11|0,Xr[o>>0]=48),Xr[o+-1>>0]=43+(a>>31&2),f=o+-2|0,Xr[f>>0]=_+15,E=(0|t)<1,u=0==(8&i|0),o=b;do{h=~~r,a=o+1|0,Xr[o>>0]=Zr[2122+h>>0]|s,r=16*(r-+(0|h)),1!=(a-L|0)||u&E&0==r?o=a:(Xr[a>>0]=46,o=o+2|0)}while(0!=r);h=o-L|0,L=P-f|0,P=0!=(0|t)&(h+-2|0)<(0|t)?t+2|0:h,o=L+T+P|0,se(e,32,n,o,i),tr(e,c,T),se(e,48,n,o,65536^i),tr(e,b,h),se(e,48,P-h|0,0,0),tr(e,f,L),se(e,32,n,o,8192^i);break}a=(0|t)<0?6:t,o?(o=(0|Kr[R>>2])-28|0,Kr[R>>2]=o,r=268435456*l):(r=l,o=0|Kr[R>>2]),h=(0|o)<0?u:u+288|0,u=h;do{N=~~r>>>0,Kr[u>>2]=N,u=u+4|0,r=1e9*(r-+(N>>>0))}while(0!=r);if((0|o)>0)for(E=h,T=u;;){if(f=(0|o)<29?o:29,(o=T+-4|0)>>>0>=E>>>0){u=0;do{S=0|Ye(0|Kr[o>>2],0,0|f),S=0|Qe(0|S,0|Tn,0|u,0),N=Tn,d=0|De(0|S,0|N,1e9,0),Kr[o>>2]=d,u=0|fr(0|S,0|N,1e9,0),o=o+-4|0}while(o>>>0>=E>>>0);u&&(E=E+-4|0,Kr[E>>2]=u)}for(u=T;;){if(u>>>0<=E>>>0)break;if(o=u+-4|0,0|Kr[o>>2])break;u=o}if(o=(0|Kr[R>>2])-f|0,Kr[R>>2]=o,!((0|o)>0))break;T=u}else E=h;if((0|o)<0){t=1+((a+25|0)/9|0)|0,A=102==(0|M);do{if(s=0-o|0,s=(0|s)<9?s:9,E>>>0<u>>>0){f=(1<<s)-1|0,T=1e9>>>s,c=0,o=E;do{N=0|Kr[o>>2],Kr[o>>2]=(N>>>s)+c,c=0|cn(N&f,T),o=o+4|0}while(o>>>0<u>>>0);o=0==(0|Kr[E>>2])?E+4|0:E,c?(Kr[u>>2]=c,E=o,o=u+4|0):(E=o,o=u)}else E=0==(0|Kr[E>>2])?E+4|0:E,o=u;u=A?h:E,u=(o-u>>2|0)>(0|t)?u+(t<<2)|0:o,o=(0|Kr[R>>2])+s|0,Kr[R>>2]=o}while((0|o)<0);o=E,t=u}else o=E,t=u;if(N=h,o>>>0<t>>>0){if(u=9*(N-o>>2)|0,(f=0|Kr[o>>2])>>>0>=10){E=10;do{E=10*E|0,u=u+1|0}while(f>>>0>=E>>>0)}}else u=0;if(A=103==(0|M),d=0!=(0|a),(0|(E=a-(102!=(0|M)?u:0)+((d&A)<<31>>31)|0))<((9*(t-N>>2)|0)-9|0)){if(E=E+9216|0,s=h+4+(((0|E)/9|0)-1024<<2)|0,(0|(E=1+((0|E)%9|0)|0))<9){f=10;do{f=10*f|0,E=E+1|0}while(9!=(0|E))}else f=10;if(T=0|Kr[s>>2],c=(T>>>0)%(f>>>0)|0,(E=(s+4|0)==(0|t))&0==(0|c))E=s;else if(l=0==(1&((T>>>0)/(f>>>0)|0)|0)?9007199254740992:9007199254740994,S=(0|f)/2|0,r=c>>>0<S>>>0?.5:E&(0|c)==(0|S)?1:1.5,C&&(S=45==(0|Xr[O>>0]),r=S?-r:r,l=S?-l:l),E=T-c|0,Kr[s>>2]=E,l+r!=l){if(S=E+f|0,Kr[s>>2]=S,S>>>0>999999999)for(u=s;;){if(E=u+-4|0,Kr[u>>2]=0,E>>>0<o>>>0&&(o=o+-4|0,Kr[o>>2]=0),S=1+(0|Kr[E>>2])|0,Kr[E>>2]=S,!(S>>>0>999999999))break;u=E}else E=s;if(u=9*(N-o>>2)|0,(T=0|Kr[o>>2])>>>0>=10){f=10;do{f=10*f|0,u=u+1|0}while(T>>>0>=f>>>0)}}else E=s;E=E+4|0,E=t>>>0>E>>>0?E:t,S=o}else E=t,S=o;for(M=E;;){if(M>>>0<=S>>>0){R=0;break}if(o=M+-4|0,0|Kr[o>>2]){R=1;break}M=o}t=0-u|0;do{if(A){if(o=(1&(1^d))+a|0,(0|o)>(0|u)&(0|u)>-5?(f=_+-1|0,a=o+-1-u|0):(f=_+-2|0,a=o+-1|0),!(o=8&i)){if(R?0!=(0|(I=0|Kr[M+-4>>2])):0)if((I>>>0)%10|0)E=0;else{E=0,o=10;do{o=10*o|0,E=E+1|0}while(!(0|(I>>>0)%(o>>>0)))}else E=9;if(o=(9*(M-N>>2)|0)-9|0,102==(32|f)){s=o-E|0,s=(0|s)>0?s:0,a=(0|a)<(0|s)?a:s,s=0;break}s=o+u-E|0,s=(0|s)>0?s:0,a=(0|a)<(0|s)?a:s,s=0;break}s=o}else f=_,s=8&i}while(0);if(A=a|s,T=0!=(0|A)&1,c=102==(32|f))d=0,o=(0|u)>0?u:0;else{if(o=(0|u)<0?t:u,o=0|Ee(o,((0|o)<0)<<31>>31,P),((E=P)-o|0)<2)do{o=o+-1|0,Xr[o>>0]=48}while((E-o|0)<2);Xr[o+-1>>0]=43+(u>>31&2),o=o+-2|0,Xr[o>>0]=f,d=o,o=E-o|0}if(o=C+1+a+T+o|0,se(e,32,n,o,i),tr(e,O,C),se(e,48,n,o,65536^i),c){f=S>>>0>h>>>0?h:S,s=b+9|0,T=s,c=b+8|0,E=f;do{if(u=0|Ee(0|Kr[E>>2],0,s),(0|E)==(0|f))(0|u)==(0|s)&&(Xr[c>>0]=48,u=c);else if(u>>>0>b>>>0){ee(0|b,48,u-L|0);do{u=u+-1|0}while(u>>>0>b>>>0)}tr(e,u,T-u|0),E=E+4|0}while(E>>>0<=h>>>0);if(0|A&&tr(e,2138,1),E>>>0<M>>>0&(0|a)>0)for(;;){if((u=0|Ee(0|Kr[E>>2],0,s))>>>0>b>>>0){ee(0|b,48,u-L|0);do{u=u+-1|0}while(u>>>0>b>>>0)}if(tr(e,u,(0|a)<9?a:9),E=E+4|0,u=a+-9|0,!(E>>>0<M>>>0&(0|a)>9)){a=u;break}a=u}se(e,48,a+9|0,9,0)}else{if(A=R?M:S+4|0,(0|a)>-1){R=b+9|0,s=0==(0|s),t=R,T=0-L|0,c=b+8|0,f=S;do{u=0|Ee(0|Kr[f>>2],0,R),(0|u)==(0|R)&&(Xr[c>>0]=48,u=c);do{if((0|f)==(0|S)){if(E=u+1|0,tr(e,u,1),s&(0|a)<1){u=E;break}tr(e,2138,1),u=E}else{if(u>>>0<=b>>>0)break;ee(0|b,48,u+T|0);do{u=u+-1|0}while(u>>>0>b>>>0)}}while(0);L=t-u|0,tr(e,u,(0|a)>(0|L)?L:a),a=a-L|0,f=f+4|0}while(f>>>0<A>>>0&(0|a)>-1)}se(e,48,a+18|0,18,0),tr(e,d,P-d|0)}se(e,32,n,o,8192^i)}else b=0!=(32&_|0),o=C+3|0,se(e,32,n,o,-65537&i),tr(e,O,C),tr(e,r!=r|!1?b?2114:2118:b?2106:2110,3),se(e,32,n,o,8192^i)}while(0);return on=F,0|((0|o)<(0|n)?n:o)}function o(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,I=0,O=0,h=0,P=0,L=0,b=0,F=0,U=0;U=on,on=on+64|0,P=U+16|0,L=U,O=U+24|0,b=U+8|0,F=U+20|0,Kr[P>>2]=r,S=0!=(0|e),N=O+40|0,I=N,O=O+39|0,h=b+4|0,a=0,o=0,T=0;e:for(;;){do{if((0|o)>-1){if((0|a)>(2147483647-o|0)){o=0|Pr(),Kr[o>>2]=75,o=-1;break}o=a+o|0;break}}while(0);if(!((a=0|Xr[r>>0])<<24>>24)){M=87;break}u=r;r:for(;;){switch(a<<24>>24){case 37:a=u,M=9;break r;case 0:a=u;break r}d=u+1|0,Kr[P>>2]=d,a=0|Xr[d>>0],u=d}r:do{if(9==(0|M))for(;;){if(M=0,37!=(0|Xr[u+1>>0]))break r;if(a=a+1|0,u=u+2|0,Kr[P>>2]=u,37!=(0|Xr[u>>0]))break;M=9}}while(0);if(a=a-r|0,S&&tr(e,r,a),0|a)r=u;else{E=u+1|0,a=(0|Xr[E>>0])-48|0,a>>>0<10?(d=36==(0|Xr[u+2>>0]),R=d?a:-1,T=d?1:T,E=d?u+3|0:E):R=-1,Kr[P>>2]=E,a=0|Xr[E>>0],u=(a<<24>>24)-32|0;r:do{if(u>>>0<32)for(f=0,c=a;;){if(!(75913&(a=1<<u))){a=c;break r}if(f|=a,E=E+1|0,Kr[P>>2]=E,a=0|Xr[E>>0],(u=(a<<24>>24)-32|0)>>>0>=32)break;c=a}else f=0}while(0);if(a<<24>>24==42){if(u=E+1|0,a=(0|Xr[u>>0])-48|0,a>>>0<10?36==(0|Xr[E+2>>0]):0)Kr[i+(a<<2)>>2]=10,a=0|Kr[t+((0|Xr[u>>0])-48<<3)>>2],T=1,E=E+3|0;else{if(0|T){o=-1;break}S?(T=3+(0|Kr[n>>2])&-4,a=0|Kr[T>>2],Kr[n>>2]=T+4,T=0,E=u):(a=0,T=0,E=u)}Kr[P>>2]=E,d=(0|a)<0,a=d?0-a|0:a,f=d?8192|f:f}else{if((0|(a=0|he(P)))<0){o=-1;break}E=0|Kr[P>>2]}do{if(46==(0|Xr[E>>0])){if(42!=(0|Xr[E+1>>0])){Kr[P>>2]=E+1,u=0|he(P),E=0|Kr[P>>2];break}if(c=E+2|0,u=(0|Xr[c>>0])-48|0,u>>>0<10?36==(0|Xr[E+3>>0]):0){Kr[i+(u<<2)>>2]=10,u=0|Kr[t+((0|Xr[c>>0])-48<<3)>>2],E=E+4|0,Kr[P>>2]=E;break}if(0|T){o=-1;break e}S?(d=3+(0|Kr[n>>2])&-4,u=0|Kr[d>>2],Kr[n>>2]=d+4):u=0,Kr[P>>2]=c,E=c}else u=-1}while(0);for(A=0;;){if(((0|Xr[E>>0])-65|0)>>>0>57){o=-1;break e}if(d=E+1|0,Kr[P>>2]=d,c=0|Xr[(0|Xr[E>>0])-65+(1606+(58*A|0))>>0],!(((l=255&c)+-1|0)>>>0<8))break;A=l,E=d}if(!(c<<24>>24)){o=-1;break}s=(0|R)>-1;do{if(c<<24>>24==19){if(s){o=-1;break e}M=49}else{if(s){Kr[i+(R<<2)>>2]=l,s=t+(R<<3)|0,R=0|Kr[s+4>>2],M=L,Kr[M>>2]=Kr[s>>2],Kr[M+4>>2]=R,M=49;break}if(!S){o=0;break e}C(L,l,n)}}while(0);if(49!=(0|M)||(M=0,S)){E=0|Xr[E>>0],E=0!=(0|A)&3==(15&E|0)?-33&E:E,s=-65537&f,R=0==(8192&f|0)?f:s;r:do{switch(0|E){case 110:switch((255&A)<<24>>24){case 0:case 1:Kr[Kr[L>>2]>>2]=o,a=0,r=d;continue e;case 2:a=0|Kr[L>>2],Kr[a>>2]=o,Kr[a+4>>2]=((0|o)<0)<<31>>31,a=0,r=d;continue e;case 3:Yr[Kr[L>>2]>>1]=o,a=0,r=d;continue e;case 4:Xr[Kr[L>>2]>>0]=o,a=0,r=d;continue e;case 6:Kr[Kr[L>>2]>>2]=o,a=0,r=d;continue e;case 7:a=0|Kr[L>>2],Kr[a>>2]=o,Kr[a+4>>2]=((0|o)<0)<<31>>31,a=0,r=d;continue e;default:a=0,r=d;continue e}case 112:E=120,u=u>>>0>8?u:8,r=8|R,M=61;break;case 88:case 120:r=R,M=61;break;case 111:E=L,r=0|Kr[E>>2],E=0|Kr[E+4>>2],l=0|Ue(r,E,N),s=I-l|0,f=0,c=2070,u=0==(8&R|0)|(0|u)>(0|s)?u:s+1|0,s=R,M=67;break;case 105:case 100:if(E=L,r=0|Kr[E>>2],(0|(E=0|Kr[E+4>>2]))<0){r=0|Ze(0,0,0|r,0|E),E=Tn,f=L,Kr[f>>2]=r,Kr[f+4>>2]=E,f=1,c=2070,M=66;break r}f=0!=(2049&R|0)&1,c=0==(2048&R|0)?0==(1&R|0)?2070:2072:2071,M=66;break r;case 117:E=L,f=0,c=2070,r=0|Kr[E>>2],E=0|Kr[E+4>>2],M=66;break;case 99:Xr[O>>0]=Kr[L>>2],r=O,f=0,c=2070,l=N,E=1,u=s;break;case 109:E=0|Pr(),E=0|or(0|Kr[E>>2]),M=71;break;case 115:E=0|Kr[L>>2],E=0|E?E:2080,M=71;break;case 67:Kr[b>>2]=Kr[L>>2],Kr[h>>2]=0,Kr[L>>2]=b,l=-1,E=b,M=75;break;case 83:r=0|Kr[L>>2],u?(l=u,E=r,M=75):(se(e,32,a,0,R),r=0,M=84);break;case 65:case 71:case 70:case 69:case 97:case 103:case 102:case 101:a=0|_(e,+rn[L>>3],a,u,R,E),r=d;continue e;default:f=0,c=2070,l=N,E=u,u=R}}while(0);r:do{if(61==(0|M))R=L,A=0|Kr[R>>2],R=0|Kr[R+4>>2],l=0|Pe(A,R,N,32&E),c=0==(8&r|0)|0==(0|A)&0==(0|R),f=c?0:2,c=c?2070:2070+(E>>4)|0,s=r,r=A,E=R,M=67;else if(66==(0|M))l=0|Ee(r,E,N),s=R,M=67;else if(71==(0|M))M=0,R=0|X(E,0,u),A=0==(0|R),r=E,f=0,c=2070,l=A?E+u|0:R,E=A?u:R-E|0,u=s;else if(75==(0|M)){for(M=0,c=E,r=0,u=0;;){if(!(f=0|Kr[c>>2]))break;if((0|(u=0|ar(F,f)))<0|u>>>0>(l-r|0)>>>0)break;if(r=u+r|0,!(l>>>0>r>>>0))break;c=c+4|0}if((0|u)<0){o=-1;break e}if(se(e,32,a,r,R),r)for(f=0;;){if(!(u=0|Kr[E>>2])){M=84;break r}if(u=0|ar(F,u),(0|(f=u+f|0))>(0|r)){M=84;break r}if(tr(e,F,u),f>>>0>=r>>>0){M=84;break}E=E+4|0}else r=0,M=84}}while(0);if(67==(0|M))M=0,E=0!=(0|r)|0!=(0|E),R=0!=(0|u)|E,E=I-l+(1&(1^E))|0,r=R?l:N,l=N,E=R?(0|u)>(0|E)?u:E:u,u=(0|u)>-1?-65537&s:s;else if(84==(0|M)){M=0,se(e,32,a,r,8192^R),a=(0|a)>(0|r)?a:r,r=d;continue}A=l-r|0,s=(0|E)<(0|A)?A:E,R=s+f|0,a=(0|a)<(0|R)?R:a,se(e,32,a,R,u),tr(e,c,f),se(e,48,a,R,65536^u),se(e,48,s,A,0),tr(e,r,A),se(e,32,a,R,8192^u),r=d}else a=0,r=d}}e:do{if(87==(0|M)&&!e)if(T){for(o=1;;){if(!(r=0|Kr[i+(o<<2)>>2]))break;if(C(t+(o<<3)|0,r,n),(0|(o=o+1|0))>=10){o=1;break e}}for(;;){if(0|Kr[i+(o<<2)>>2]){o=-1;break e}if((0|(o=o+1|0))>=10){o=1;break}}}else o=0}while(0);return on=U,0|o}function a(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,L=0,b=0,F=0;if(F=on,on=on+704|0,C=F+144|0,O=F+128|0,N=F+112|0,S=F+96|0,M=F+80|0,d=F+64|0,R=F+48|0,h=F+32|0,f=F+16|0,a=F,c=F+184|0,b=F+160|0,!(l=0|x(e,14)))return J(r),b=1,on=F,0|b;if(s=r+4|0,A=r+8|0,(0|(n=0|Kr[A>>2]))!=(0|l)){if(n>>>0<=l>>>0){do{if((0|Kr[r+12>>2])>>>0<l>>>0){if(0|P(s,l,(n+1|0)==(0|l),1,0)){n=0|Kr[A>>2];break}return Xr[r+16>>0]=1,b=0,on=F,0|b}}while(0);ee((0|Kr[s>>2])+n|0,0,l-n|0)}Kr[A>>2]=l}if(ee(0|Kr[s>>2],0,0|l),T=e+20|0,(0|(n=0|Kr[T>>2]))<5){_=e+4|0,o=e+8|0,i=e+16|0;do{t=0|Kr[_>>2],(0|t)==(0|Kr[o>>2])?t=0:(Kr[_>>2]=t+1,t=0|Zr[t>>0]),n=n+8|0,Kr[T>>2]=n,(0|n)>=33&&(Kr[a>>2]=866,Kr[a+4>>2]=3208,Kr[a+8>>2]=1366,He(c,812,a),ce(c),n=0|Kr[T>>2]),t=t<<32-n|Kr[i>>2],Kr[i>>2]=t}while((0|n)<5)}else t=e+16|0,i=t,t=0|Kr[t>>2];if(E=t>>>27,Kr[i>>2]=t<<5,Kr[T>>2]=n+-5,(E+-1|0)>>>0>20)return b=0,on=F,0|b;Kr[b+20>>2]=0,Kr[b>>2]=0,Kr[b+4>>2]=0,Kr[b+8>>2]=0,Kr[b+12>>2]=0,Xr[b+16>>0]=0,n=b+4|0,t=b+8|0;e:do{if(0|P(n,21,0,1,0)){_=0|Kr[t>>2],u=0|Kr[n>>2],ee(u+_|0,0,21-_|0),Kr[t>>2]=21,_=e+4|0,o=e+8|0,a=e+16|0,i=0;do{if((0|(n=0|Kr[T>>2]))<3)do{t=0|Kr[_>>2],(0|t)==(0|Kr[o>>2])?t=0:(Kr[_>>2]=t+1,t=0|Zr[t>>0]),n=n+8|0,Kr[T>>2]=n,(0|n)>=33&&(Kr[f>>2]=866,Kr[f+4>>2]=3208,Kr[f+8>>2]=1366,He(c,812,f),ce(c),n=0|Kr[T>>2]),t=t<<32-n|Kr[a>>2],Kr[a>>2]=t}while((0|n)<3);else t=0|Kr[a>>2];Kr[a>>2]=t<<3,Kr[T>>2]=n+-3,Xr[u+(0|Zr[1327+i>>0])>>0]=t>>>29,i=i+1|0}while((0|i)!=(0|E));if(0|y(b)){a=e+4|0,u=e+8|0,E=e+16|0,n=0;r:do{o=l-n|0,i=0|I(e,b);n:do{if(i>>>0<17)(0|Kr[A>>2])>>>0<=n>>>0&&(Kr[h>>2]=866,Kr[h+4>>2]=910,Kr[h+8>>2]=1497,He(c,812,h),ce(c)),Xr[(0|Kr[s>>2])+n>>0]=i,n=n+1|0;else switch(0|i){case 17:if((0|(t=0|Kr[T>>2]))<3)do{i=0|Kr[a>>2],(0|i)==(0|Kr[u>>2])?i=0:(Kr[a>>2]=i+1,i=0|Zr[i>>0]),t=t+8|0,Kr[T>>2]=t,(0|t)>=33&&(Kr[R>>2]=866,Kr[R+4>>2]=3208,Kr[R+8>>2]=1366,He(c,812,R),ce(c),t=0|Kr[T>>2]),i=i<<32-t|Kr[E>>2],Kr[E>>2]=i}while((0|t)<3);else i=0|Kr[E>>2];if(Kr[E>>2]=i<<3,Kr[T>>2]=t+-3,i=3+(i>>>29)|0,t=i>>>0>o>>>0){n=0;break e}n=(t?0:i)+n|0;break n;case 18:if((0|(t=0|Kr[T>>2]))<7)do{i=0|Kr[a>>2],(0|i)==(0|Kr[u>>2])?i=0:(Kr[a>>2]=i+1,i=0|Zr[i>>0]),t=t+8|0,Kr[T>>2]=t,(0|t)>=33&&(Kr[d>>2]=866,Kr[d+4>>2]=3208,Kr[d+8>>2]=1366,He(c,812,d),ce(c),t=0|Kr[T>>2]),i=i<<32-t|Kr[E>>2],Kr[E>>2]=i}while((0|t)<7);else i=0|Kr[E>>2];if(Kr[E>>2]=i<<7,Kr[T>>2]=t+-7,i=11+(i>>>25)|0,t=i>>>0>o>>>0){n=0;break e}n=(t?0:i)+n|0;break n;default:if((i+-19|0)>>>0>=2){L=81;break r}if(t=0|Kr[T>>2],19==(0|i)){if((0|t)<2)for(i=t;;){if(t=0|Kr[a>>2],(0|t)==(0|Kr[u>>2])?_=0:(Kr[a>>2]=t+1,_=0|Zr[t>>0]),t=i+8|0,Kr[T>>2]=t,(0|t)>=33&&(Kr[M>>2]=866,Kr[M+4>>2]=3208,Kr[M+8>>2]=1366,He(c,812,M),ce(c),t=0|Kr[T>>2]),i=_<<32-t|Kr[E>>2],Kr[E>>2]=i,!((0|t)<2))break;i=t}else i=0|Kr[E>>2];Kr[E>>2]=i<<2,i>>>=30,_=3,t=t+-2|0}else{if((0|t)<6)do{i=0|Kr[a>>2],(0|i)==(0|Kr[u>>2])?i=0:(Kr[a>>2]=i+1,i=0|Zr[i>>0]),t=t+8|0,Kr[T>>2]=t,(0|t)>=33&&(Kr[S>>2]=866,Kr[S+4>>2]=3208,Kr[S+8>>2]=1366,He(c,812,S),ce(c),t=0|Kr[T>>2]),i=i<<32-t|Kr[E>>2],Kr[E>>2]=i}while((0|t)<6);else i=0|Kr[E>>2];Kr[E>>2]=i<<6,i>>>=26,_=7,t=t+-6|0}if(Kr[T>>2]=t,i=i+_|0,0==(0|n)|i>>>0>o>>>0){n=0;break e}if(t=n+-1|0,(0|Kr[A>>2])>>>0<=t>>>0&&(Kr[N>>2]=866,Kr[N+4>>2]=910,Kr[N+8>>2]=1497,He(c,812,N),ce(c)),!((_=0|Xr[(0|Kr[s>>2])+t>>0])<<24>>24)){n=0;break e}if(t=i+n|0,n>>>0>=t>>>0)break n;do{(0|Kr[A>>2])>>>0<=n>>>0&&(Kr[O>>2]=866,Kr[O+4>>2]=910,Kr[O+8>>2]=1497,He(c,812,O),ce(c)),Xr[(0|Kr[s>>2])+n>>0]=_,n=n+1|0}while((0|n)!=(0|t));n=t}}while(0)}while(l>>>0>n>>>0);if(81==(0|L)){Kr[C>>2]=866,Kr[C+4>>2]=3149,Kr[C+8>>2]=1348,He(c,812,C),ce(c),n=0;break}n=(0|l)==(0|n)?0|y(r):0}else n=0}else Xr[b+16>>0]=1,n=0}while(0);return z(b),b=n,on=F,0|b}function u(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,I=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0,U=0,m=0,D=0;if(D=on,on=on+880|0,U=D+144|0,F=D+128|0,b=D+112|0,L=D+96|0,O=D+80|0,d=D+64|0,A=D+48|0,R=D+32|0,T=D+16|0,f=D,h=D+360|0,P=D+296|0,m=D+224|0,s=D+156|0,0==(0|r)|t>>>0>11)return m=0,on=D,0|m;Kr[e>>2]=r,i=m,_=i+68|0;do{Kr[i>>2]=0,i=i+4|0}while((0|i)<(0|_));i=0;do{C=0|Xr[n+i>>0],_=m+((255&C)<<2)|0,C<<24>>24&&(Kr[_>>2]=1+(0|Kr[_>>2])),i=i+1|0}while((0|i)!=(0|r));for(_=0,o=0,a=0,u=-1,E=1;;){if(i=0|Kr[m+(E<<2)>>2],i?(c=E+-1|0,Kr[P+(c<<2)>>2]=_,_=i+_|0,C=16-E|0,Kr[e+28+(c<<2)>>2]=1+(_+-1<<C|(1<<C)-1),Kr[e+96+(c<<2)>>2]=o,Kr[s+(E<<2)>>2]=o,c=i+o|0,a=a>>>0>E>>>0?a:E,u=u>>>0<E>>>0?u:E):(Kr[e+28+(E+-1<<2)>>2]=0,c=o),17==(0|(E=E+1|0)))break;_<<=1,o=c}Kr[e+4>>2]=c,_=e+172|0;do{if(c>>>0>(0|Kr[_>>2])>>>0){i=c+-1|0,i&c?(i|=i>>>16,i|=i>>>8,i|=i>>>4,i|=i>>>2,i=1+(i>>>1|i)|0,i=i>>>0>r>>>0?r:i):i=c,Kr[_>>2]=i,o=e+176|0,i=0|Kr[o>>2];do{if(0|i){if(C=0|Kr[i+-4>>2],i=i+-8|0,(0!=(0|C)?(0|C)==(0|~Kr[i>>2]):0)||(Kr[f>>2]=866,Kr[f+4>>2]=651,Kr[f+8>>2]=1579,He(h,812,f),ce(h)),7&i){Kr[T>>2]=866,Kr[T+4>>2]=2506,Kr[T+8>>2]=1232,He(h,812,T),ce(h);break}_e(i,0,0,1,0);break}}while(0);if(i=0|Kr[_>>2],i=0|i?i:1,_=0|j(8+(i<<1)|0,0)){Kr[_+4>>2]=i,Kr[_>>2]=~i,Kr[o>>2]=_+8,l=24;break}Kr[o>>2]=0,t=0;break}l=24}while(0);e:do{if(24==(0|l)){C=e+24|0,Xr[C>>0]=u,Xr[e+25>>0]=a,o=e+176|0,_=0;do{I=0|Xr[n+_>>0],i=255&I,I<<24>>24&&(0|Kr[m+(i<<2)>>2]||(Kr[R>>2]=866,Kr[R+4>>2]=2276,Kr[R+8>>2]=977,He(h,812,R),ce(h)),I=s+(i<<2)|0,i=0|Kr[I>>2],Kr[I>>2]=i+1,i>>>0>=c>>>0&&(Kr[A>>2]=866,Kr[A+4>>2]=2280,Kr[A+8>>2]=990,He(h,812,A),ce(h)),Yr[(0|Kr[o>>2])+(i<<1)>>1]=_),_=_+1|0}while((0|_)!=(0|r));if(N=(0|Zr[C>>0])>>>0<t>>>0?t:0,I=e+8|0,Kr[I>>2]=N,S=0!=(0|N)){M=1<<N,i=e+164|0;do{if(M>>>0>(0|Kr[i>>2])>>>0){Kr[i>>2]=M,o=e+168|0,i=0|Kr[o>>2];do{if(0|i){if(R=0|Kr[i+-4>>2],i=i+-8|0,(0!=(0|R)?(0|R)==(0|~Kr[i>>2]):0)||(Kr[d>>2]=866,Kr[d+4>>2]=651,Kr[d+8>>2]=1579,He(h,812,d),ce(h)),7&i){Kr[O>>2]=866,Kr[O+4>>2]=2506,Kr[O+8>>2]=1232,He(h,812,O),ce(h);break}_e(i,0,0,1,0);break}}while(0);if(i=M<<2,_=0|j(i+8|0,0)){O=_+8|0,Kr[_+4>>2]=M,Kr[_>>2]=~M,Kr[o>>2]=O,_=O;break}Kr[o>>2]=0,t=0;break e}_=e+168|0,i=M<<2,o=_,_=0|Kr[_>>2]}while(0);ee(0|_,-1,0|i),A=e+176|0,s=1;do{if(0|Kr[m+(s<<2)>>2]&&(R=N-s|0,d=1<<R,i=s+-1|0,_=0|Kr[P+(i<<2)>>2],i>>>0>=16&&(Kr[L>>2]=866,Kr[L+4>>2]=1960,Kr[L+8>>2]=1453,He(h,812,L),ce(h)),r=0|Kr[e+28+(i<<2)>>2],r=0==(0|r)?-1:(r+-1|0)>>>(16-s|0),_>>>0<=r>>>0)){c=(0|Kr[e+96+(i<<2)>>2])-_|0,l=s<<16;do{i=0|jr[(0|Kr[A>>2])+(c+_<<1)>>1],(0|Zr[n+i>>0])!=(0|s)&&(Kr[b>>2]=866,Kr[b+4>>2]=2322,Kr[b+8>>2]=1019,He(h,812,b),ce(h)),T=_<<R,E=i|l,u=0;do{f=u+T|0,f>>>0>=M>>>0&&(Kr[F>>2]=866,Kr[F+4>>2]=2328,Kr[F+8>>2]=1053,He(h,812,F),ce(h)),i=0|Kr[o>>2],-1!=(0|Kr[i+(f<<2)>>2])&&(Kr[U>>2]=866,Kr[U+4>>2]=2330,Kr[U+8>>2]=1076,He(h,812,U),ce(h),i=0|Kr[o>>2]),Kr[i+(f<<2)>>2]=E,u=u+1|0}while(u>>>0<d>>>0);_=_+1|0}while(_>>>0<=r>>>0)}s=s+1|0}while(N>>>0>=s>>>0)}i=e+96|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P>>2]),i=e+100|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+4>>2]),i=e+104|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+8>>2]),i=e+108|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+12>>2]),i=e+112|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+16>>2]),i=e+116|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+20>>2]),i=e+120|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+24>>2]),i=e+124|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+28>>2]),i=e+128|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+32>>2]),i=e+132|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+36>>2]),i=e+136|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+40>>2]),i=e+140|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+44>>2]),i=e+144|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+48>>2]),i=e+148|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+52>>2]),i=e+152|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+56>>2]),i=e+156|0,Kr[i>>2]=(0|Kr[i>>2])-(0|Kr[P+60>>2]),i=e+16|0,Kr[i>>2]=0,_=e+20|0,Kr[_>>2]=Zr[C>>0];r:do{if(S){do{if(!t)break r;U=t,t=t+-1|0}while(!(0|Kr[m+(U<<2)>>2]));if(Kr[i>>2]=Kr[e+28+(t<<2)>>2],t=N+1|0,Kr[_>>2]=t,t>>>0<=a>>>0){for(;;){if(0|Kr[m+(t<<2)>>2])break;if((t=t+1|0)>>>0>a>>>0)break r}Kr[_>>2]=t}}}while(0);Kr[e+92>>2]=-1,Kr[e+160>>2]=1048575,Kr[e+12>>2]=32-(0|Kr[I>>2]),t=1}}while(0);return m=t,on=D,0|m}function E(e,r,n,t,i,_,o,a){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0,a|=0;var u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0,Y=0,x=0,K=0,W=0,Z=0,z=0,j=0,J=0,Q=0,q=0,$=0,ee=0,re=0,ne=0,te=0,ie=0;if(ne=on,on=on+656|0,ee=ne+112|0,q=ne+96|0,Q=ne+80|0,J=ne+64|0,j=ne+48|0,re=ne+32|0,$=ne+16|0,z=ne,W=ne+144|0,Z=ne+128|0,y=e+240|0,g=0|Kr[y>>2],w=e+256|0,G=0|Kr[w>>2],K=0|Xr[17+(0|Kr[e+88>>2])>>0],H=255&K,X=t>>>2,!(K<<24>>24))return on=ne,1;V=0==(0|a),Y=o+-1|0,x=Y<<4,K=a+-1|0,m=0!=(1&_|0),D=t<<1,p=e+92|0,B=e+116|0,v=e+140|0,k=e+236|0,U=0!=(1&i|0),F=e+188|0,h=e+252|0,P=X+1|0,L=X+2|0,b=X+3|0,C=0,_=0,n=0,i=1;do{if(!V)for(N=0|Kr[r+(C<<2)>>2],O=0;;){if(M=1&O,E=0==(0|M),d=(M<<5^32)-16|0,M=(M<<1^2)-1|0,R=E?o:-1,u=E?0:Y,e=(0|O)==(0|K),S=m&e,(0|u)!=(0|R))for(A=m&e^1,s=E?N:N+x|0;;){1==(0|i)&&(i=512|I(p,B)),l=7&i,i>>>=3,E=0|Zr[1539+l>>0],e=0;do{f=(0|I(p,v))+n|0,T=f-g|0,c=T>>31,n=c&f|T&~c,(0|Kr[y>>2])>>>0<=n>>>0&&(Kr[z>>2]=866,Kr[z+4>>2]=910,Kr[z+8>>2]=1497,He(W,812,z),ce(W)),Kr[Z+(e<<2)>>2]=Kr[(0|Kr[k>>2])+(n<<2)>>2],e=e+1|0}while(e>>>0<E>>>0);if(c=U&(0|u)==(0|Y),S|c){T=0;do{e=s+(0|cn(T,t))|0,f=0==(0|T)|A,E=T<<1,ie=(0|I(p,F))+_|0,te=ie-G|0,_=te>>31,_=_&ie|te&~_;do{if(c){if(!f){te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_;break}Kr[e>>2]=Kr[Z+((0|Zr[1547+(l<<2)+E>>0])<<2)>>2],(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[q>>2]=866,Kr[q+4>>2]=910,Kr[q+8>>2]=1497,He(W,812,q),ce(W)),Kr[e+4>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2],te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_}else f&&(Kr[e>>2]=Kr[Z+((0|Zr[1547+(l<<2)+E>>0])<<2)>>2],(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[Q>>2]=866,Kr[Q+4>>2]=910,Kr[Q+8>>2]=1497,He(W,812,Q),ce(W)),Kr[e+4>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2]),e=e+8|0,te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_,f&&(Kr[e>>2]=Kr[Z+((0|Zr[1547+(l<<2)+(1|E)>>0])<<2)>>2],(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[ee>>2]=866,Kr[ee+4>>2]=910,Kr[ee+8>>2]=1497,He(W,812,ee),ce(W)),Kr[e+4>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2])}while(0);T=T+1|0}while(2!=(0|T))}else Kr[s>>2]=Kr[Z+((0|Zr[1547+(l<<2)>>0])<<2)>>2],te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_,(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[$>>2]=866,Kr[$+4>>2]=910,Kr[$+8>>2]=1497,He(W,812,$),ce(W)),Kr[s+4>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2],Kr[s+8>>2]=Kr[Z+((0|Zr[1547+(l<<2)+1>>0])<<2)>>2],te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_,(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[re>>2]=866,Kr[re+4>>2]=910,Kr[re+8>>2]=1497,He(W,812,re), -ce(W)),Kr[s+12>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2],Kr[s+(X<<2)>>2]=Kr[Z+((0|Zr[1547+(l<<2)+2>>0])<<2)>>2],te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_,(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[j>>2]=866,Kr[j+4>>2]=910,Kr[j+8>>2]=1497,He(W,812,j),ce(W)),Kr[s+(P<<2)>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2],Kr[s+(L<<2)>>2]=Kr[Z+((0|Zr[1547+(l<<2)+3>>0])<<2)>>2],te=(0|I(p,F))+_|0,ie=te-G|0,_=ie>>31,_=_&te|ie&~_,(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[J>>2]=866,Kr[J+4>>2]=910,Kr[J+8>>2]=1497,He(W,812,J),ce(W)),Kr[s+(b<<2)>>2]=Kr[(0|Kr[h>>2])+(_<<2)>>2];if((0|(u=M+u|0))==(0|R))break;s=s+d|0}if((0|(O=O+1|0))==(0|a))break;N=N+D|0}C=C+1|0}while((0|C)!=(0|H));return on=ne,1}function f(e,r,n,t,i,_,o,a){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0,a|=0;var u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0,Y=0,x=0,K=0,W=0,Z=0,z=0,j=0,J=0,Q=0,q=0,$=0,ee=0,re=0,ne=0,te=0,ie=0,_e=0,oe=0;if(oe=on,on=on+640|0,te=oe+80|0,ne=oe+64|0,re=oe+48|0,_e=oe+32|0,ie=oe+16|0,ee=oe,q=oe+128|0,$=oe+112|0,g=oe+96|0,w=e+272|0,G=0|Kr[w>>2],Q=0|Kr[e+88>>2],H=(0|Zr[Q+63>>0])<<8|0|Zr[Q+64>>0],Q=0|Xr[Q+17>>0],X=255&Q,!(Q<<24>>24))return on=oe,1;V=0==(0|a),Y=o+-1|0,x=Y<<5,K=a+-1|0,W=t<<1,Z=e+92|0,z=e+116|0,j=e+164|0,J=e+268|0,Q=e+212|0,y=0==(1&i|0),k=0==(1&_|0),v=e+288|0,B=e+284|0,p=0,e=0,_=0,i=0,n=0,u=1;do{if(!V)for(m=0|Kr[r+(p<<2)>>2],D=0;;){if(U=1&D,f=0==(0|U),F=(U<<6^64)-32|0,U=(U<<1^2)-1|0,L=f?o:-1,(0|(E=f?0:Y))!=(0|L))for(b=k|(0|D)!=(0|K),P=f?m:m+x|0;;){1==(0|u)&&(u=512|I(Z,z)),h=7&u,u>>>=3,T=0|Zr[1539+h>>0],f=0;do{N=(0|I(Z,j))+n|0,O=N-G|0,C=O>>31,n=C&N|O&~C,(0|Kr[w>>2])>>>0<=n>>>0&&(Kr[ee>>2]=866,Kr[ee+4>>2]=910,Kr[ee+8>>2]=1497,He(q,812,ee),ce(q)),Kr[$+(f<<2)>>2]=jr[(0|Kr[J>>2])+(n<<1)>>1],f=f+1|0}while(f>>>0<T>>>0);f=0;do{N=(0|I(Z,j))+_|0,O=N-G|0,C=O>>31,_=C&N|O&~C,(0|Kr[w>>2])>>>0<=_>>>0&&(Kr[ie>>2]=866,Kr[ie+4>>2]=910,Kr[ie+8>>2]=1497,He(q,812,ie),ce(q)),Kr[g+(f<<2)>>2]=jr[(0|Kr[J>>2])+(_<<1)>>1],f=f+1|0}while(f>>>0<T>>>0);for(C=y|(0|E)!=(0|Y),N=0,O=P;;){if(d=b|0==(0|N),M=N<<1,C)for(A=0,R=O;;){if(S=(0|I(Z,Q))+i|0,s=S-H|0,i=s>>31,i=i&S|s&~i,s=(0|I(Z,Q))+e|0,S=s-H|0,e=S>>31,e=e&s|S&~e,d&&(s=0|Zr[A+M+(1547+(h<<2))>>0],T=3*i|0,f=0|Kr[v>>2],f>>>0<=T>>>0&&(Kr[_e>>2]=866,Kr[_e+4>>2]=910,Kr[_e+8>>2]=1497,He(q,812,_e),ce(q),f=0|Kr[v>>2]),c=0|Kr[B>>2],T=c+(T<<1)|0,l=3*e|0,f>>>0>l>>>0?f=c:(Kr[re>>2]=866,Kr[re+4>>2]=910,Kr[re+8>>2]=1497,He(q,812,re),ce(q),f=0|Kr[B>>2]),S=f+(l<<1)|0,Kr[R>>2]=(0|jr[T>>1])<<16|Kr[$+(s<<2)>>2],Kr[R+4>>2]=(0|jr[T+4>>1])<<16|0|jr[T+2>>1],Kr[R+8>>2]=(0|jr[S>>1])<<16|Kr[g+(s<<2)>>2],Kr[R+12>>2]=(0|jr[S+4>>1])<<16|0|jr[S+2>>1]),2==(0|(A=A+1|0)))break;R=R+16|0}else for(S=1^d,d=1547+(h<<2)+M|0,A=0,R=O;;){if(M=(0|I(Z,Q))+i|0,s=M-H|0,i=s>>31,i=i&M|s&~i,s=(0|I(Z,Q))+e|0,M=s-H|0,e=M>>31,e=e&s|M&~e,0!=(0|A)|S||(s=0|Zr[d>>0],T=3*i|0,f=0|Kr[v>>2],f>>>0<=T>>>0&&(Kr[ne>>2]=866,Kr[ne+4>>2]=910,Kr[ne+8>>2]=1497,He(q,812,ne),ce(q),f=0|Kr[v>>2]),c=0|Kr[B>>2],T=c+(T<<1)|0,l=3*e|0,f>>>0>l>>>0?f=c:(Kr[te>>2]=866,Kr[te+4>>2]=910,Kr[te+8>>2]=1497,He(q,812,te),ce(q),f=0|Kr[B>>2]),M=f+(l<<1)|0,Kr[R>>2]=(0|jr[T>>1])<<16|Kr[$+(s<<2)>>2],Kr[R+4>>2]=(0|jr[T+4>>1])<<16|0|jr[T+2>>1],Kr[R+8>>2]=(0|jr[M>>1])<<16|Kr[g+(s<<2)>>2],Kr[R+12>>2]=(0|jr[M+4>>1])<<16|0|jr[M+2>>1]),2==(0|(A=A+1|0)))break;R=R+16|0}if(2==(0|(N=N+1|0)))break;O=O+t|0}if((0|(E=U+E|0))==(0|L))break;P=P+F|0}if((0|(D=D+1|0))==(0|a))break;m=m+W|0}p=p+1|0}while((0|p)!=(0|X));return on=oe,1}function T(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,a=0,u=0;if(e){n=e+-8|0,i=0|Kr[1148],e=0|Kr[e+-4>>2],r=-8&e,u=n+r|0;do{if(1&e)a=n,o=n;else{if(t=0|Kr[n>>2],!(3&e))return;if(o=n+(0-t)|0,_=t+r|0,o>>>0<i>>>0)return;if((0|o)==(0|Kr[1149])){if(e=u+4|0,3!=(3&(r=0|Kr[e>>2])|0)){a=o,r=_;break}return Kr[1146]=_,Kr[e>>2]=-2&r,Kr[o+4>>2]=1|_,void(Kr[o+_>>2]=_)}if(n=t>>>3,t>>>0<256){if(e=0|Kr[o+8>>2],(0|(r=0|Kr[o+12>>2]))==(0|e)){Kr[1144]=Kr[1144]&~(1<<n),a=o,r=_;break}Kr[e+12>>2]=r,Kr[r+8>>2]=e,a=o,r=_;break}i=0|Kr[o+24>>2],e=0|Kr[o+12>>2];do{if((0|e)==(0|o)){if(n=o+16|0,r=n+4|0,!(e=0|Kr[r>>2])){if(!(e=0|Kr[n>>2])){e=0;break}r=n}for(;;)if(n=e+20|0,0|(t=0|Kr[n>>2]))e=t,r=n;else{if(n=e+16|0,!(t=0|Kr[n>>2]))break;e=t,r=n}Kr[r>>2]=0}else a=0|Kr[o+8>>2],Kr[a+12>>2]=e,Kr[e+8>>2]=a}while(0);if(i){if(r=0|Kr[o+28>>2],n=4880+(r<<2)|0,(0|o)==(0|Kr[n>>2])){if(Kr[n>>2]=e,!e){Kr[1145]=Kr[1145]&~(1<<r),a=o,r=_;break}}else if(Kr[i+16+(((0|Kr[i+16>>2])!=(0|o)&1)<<2)>>2]=e,!e){a=o,r=_;break}Kr[e+24>>2]=i,r=o+16|0,n=0|Kr[r>>2],0|n&&(Kr[e+16>>2]=n,Kr[n+24>>2]=e),r=0|Kr[r+4>>2],r?(Kr[e+20>>2]=r,Kr[r+24>>2]=e,a=o,r=_):(a=o,r=_)}else a=o,r=_}}while(0);if(!(o>>>0>=u>>>0)&&(e=u+4|0,1&(t=0|Kr[e>>2]))){if(2&t)Kr[e>>2]=-2&t,Kr[a+4>>2]=1|r,Kr[o+r>>2]=r,i=r;else{if(e=0|Kr[1149],(0|u)==(0|Kr[1150])){if(u=(0|Kr[1147])+r|0,Kr[1147]=u,Kr[1150]=a,Kr[a+4>>2]=1|u,(0|a)!=(0|e))return;return Kr[1149]=0,void(Kr[1146]=0)}if((0|u)==(0|e))return u=(0|Kr[1146])+r|0,Kr[1146]=u,Kr[1149]=o,Kr[a+4>>2]=1|u,void(Kr[o+u>>2]=u);i=(-8&t)+r|0,n=t>>>3;do{if(t>>>0<256){if(r=0|Kr[u+8>>2],(0|(e=0|Kr[u+12>>2]))==(0|r)){Kr[1144]=Kr[1144]&~(1<<n);break}Kr[r+12>>2]=e,Kr[e+8>>2]=r;break}_=0|Kr[u+24>>2],e=0|Kr[u+12>>2];do{if((0|e)==(0|u)){if(n=u+16|0,r=n+4|0,!(e=0|Kr[r>>2])){if(!(e=0|Kr[n>>2])){n=0;break}r=n}for(;;)if(n=e+20|0,0|(t=0|Kr[n>>2]))e=t,r=n;else{if(n=e+16|0,!(t=0|Kr[n>>2]))break;e=t,r=n}Kr[r>>2]=0,n=e}else n=0|Kr[u+8>>2],Kr[n+12>>2]=e,Kr[e+8>>2]=n,n=e}while(0);if(0|_){if(e=0|Kr[u+28>>2],r=4880+(e<<2)|0,(0|u)==(0|Kr[r>>2])){if(Kr[r>>2]=n,!n){Kr[1145]=Kr[1145]&~(1<<e);break}}else if(Kr[_+16+(((0|Kr[_+16>>2])!=(0|u)&1)<<2)>>2]=n,!n)break;Kr[n+24>>2]=_,e=u+16|0,r=0|Kr[e>>2],0|r&&(Kr[n+16>>2]=r,Kr[r+24>>2]=n),e=0|Kr[e+4>>2],0|e&&(Kr[n+20>>2]=e,Kr[e+24>>2]=n)}}while(0);if(Kr[a+4>>2]=1|i,Kr[o+i>>2]=i,(0|a)==(0|Kr[1149]))return void(Kr[1146]=i)}if(e=i>>>3,i>>>0<256)return n=4616+(e<<1<<2)|0,r=0|Kr[1144],e=1<<e,r&e?(r=n+8|0,e=0|Kr[r>>2]):(Kr[1144]=r|e,e=n,r=n+8|0),Kr[r>>2]=a,Kr[e+12>>2]=a,Kr[a+8>>2]=e,void(Kr[a+12>>2]=n);e=i>>>8,e?i>>>0>16777215?e=31:(o=(e+1048320|0)>>>16&8,u=e<<o,_=(u+520192|0)>>>16&4,u<<=_,e=(u+245760|0)>>>16&2,e=14-(_|o|e)+(u<<e>>>15)|0,e=i>>>(e+7|0)&1|e<<1):e=0,t=4880+(e<<2)|0,Kr[a+28>>2]=e,Kr[a+20>>2]=0,Kr[a+16>>2]=0,r=0|Kr[1145],n=1<<e;do{if(r&n){for(r=i<<(31==(0|e)?0:25-(e>>>1)|0),n=0|Kr[t>>2];;){if((-8&Kr[n+4>>2]|0)==(0|i)){e=73;break}if(t=n+16+(r>>>31<<2)|0,!(e=0|Kr[t>>2])){e=72;break}r<<=1,n=e}if(72==(0|e)){Kr[t>>2]=a,Kr[a+24>>2]=n,Kr[a+12>>2]=a,Kr[a+8>>2]=a;break}if(73==(0|e)){o=n+8|0,u=0|Kr[o>>2],Kr[u+12>>2]=a,Kr[o>>2]=a,Kr[a+8>>2]=u,Kr[a+12>>2]=n,Kr[a+24>>2]=0;break}}else Kr[1145]=r|n,Kr[t>>2]=a,Kr[a+24>>2]=t,Kr[a+12>>2]=a,Kr[a+8>>2]=a}while(0);if(u=(0|Kr[1152])-1|0,Kr[1152]=u,!u){for(e=5032;;){if(!(e=0|Kr[e>>2]))break;e=e+8|0}Kr[1152]=-1}}}}function c(e,r,n,t,i,_,o,a){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0,a|=0;var u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0,Y=0,x=0,K=0,W=0,Z=0,z=0,j=0,J=0,Q=0,q=0,$=0,ee=0,re=0,ne=0,te=0,ie=0,_e=0,oe=0,ae=0,ue=0,Ee=0,fe=0,Te=0;if(Te=on,on=on+640|0,ue=Te+80|0,ae=Te+64|0,oe=Te+48|0,fe=Te+32|0,Ee=Te+16|0,_e=Te,te=Te+128|0,ie=Te+112|0,k=Te+96|0,y=e+240|0,g=0|Kr[y>>2],w=e+256|0,G=0|Kr[w>>2],H=e+272|0,X=0|Kr[H>>2],ne=0|Kr[e+88>>2],V=(0|Zr[ne+63>>0])<<8|0|Zr[ne+64>>0],ne=0|Xr[ne+17>>0],Y=255&ne,!(ne<<24>>24))return on=Te,1;x=0==(0|a),K=o+-1|0,W=K<<5,Z=a+-1|0,z=t<<1,j=e+92|0,J=e+116|0,Q=e+164|0,q=e+268|0,$=e+140|0,ee=e+236|0,re=e+212|0,ne=e+188|0,v=0==(1&i|0),B=0==(1&_|0),D=e+288|0,p=e+284|0,m=e+252|0,U=0,e=0,_=0,i=0,n=0,u=1;do{if(!x)for(b=0|Kr[r+(U<<2)>>2],F=0;;){if(L=1&F,f=0==(0|L),P=(L<<6^64)-32|0,L=(L<<1^2)-1|0,C=f?o:-1,(0|(E=f?0:K))!=(0|C))for(h=B|(0|F)!=(0|Z),O=f?b:b+W|0;;){1==(0|u)&&(u=512|I(j,J)),N=7&u,u>>>=3,T=0|Zr[1539+N>>0],f=0;do{d=(0|I(j,Q))+_|0,M=d-X|0,S=M>>31,_=S&d|M&~S,(0|Kr[H>>2])>>>0<=_>>>0&&(Kr[_e>>2]=866,Kr[_e+4>>2]=910,Kr[_e+8>>2]=1497,He(te,812,_e),ce(te)),Kr[k+(f<<2)>>2]=jr[(0|Kr[q>>2])+(_<<1)>>1],f=f+1|0}while(f>>>0<T>>>0);f=0;do{d=(0|I(j,$))+n|0,M=d-g|0,S=M>>31,n=S&d|M&~S,(0|Kr[y>>2])>>>0<=n>>>0&&(Kr[Ee>>2]=866,Kr[Ee+4>>2]=910,Kr[Ee+8>>2]=1497,He(te,812,Ee),ce(te)),Kr[ie+(f<<2)>>2]=Kr[(0|Kr[ee>>2])+(n<<2)>>2],f=f+1|0}while(f>>>0<T>>>0);for(S=v|(0|E)!=(0|K),d=0,M=O;;){if(s=h|0==(0|d),A=d<<1,S)for(c=0,l=M;;){if(R=(0|I(j,re))+e|0,T=R-V|0,e=T>>31,e=e&R|T&~e,T=(0|I(j,ne))+i|0,R=T-G|0,i=R>>31,i=i&T|R&~i,s&&(f=0|Zr[c+A+(1547+(N<<2))>>0],T=3*e|0,(0|Kr[D>>2])>>>0<=T>>>0&&(Kr[fe>>2]=866,Kr[fe+4>>2]=910,Kr[fe+8>>2]=1497,He(te,812,fe),ce(te)),R=(0|Kr[p>>2])+(T<<1)|0,Kr[l>>2]=(0|jr[R>>1])<<16|Kr[k+(f<<2)>>2],Kr[l+4>>2]=(0|jr[R+4>>1])<<16|0|jr[R+2>>1],Kr[l+8>>2]=Kr[ie+(f<<2)>>2],(0|Kr[w>>2])>>>0<=i>>>0&&(Kr[oe>>2]=866,Kr[oe+4>>2]=910,Kr[oe+8>>2]=1497,He(te,812,oe),ce(te)),Kr[l+12>>2]=Kr[(0|Kr[m>>2])+(i<<2)>>2]),2==(0|(c=c+1|0)))break;l=l+16|0}else for(R=1^s,s=1547+(N<<2)+A|0,c=0,l=M;;){if(A=(0|I(j,re))+e|0,T=A-V|0,e=T>>31,e=e&A|T&~e,T=(0|I(j,ne))+i|0,A=T-G|0,i=A>>31,i=i&T|A&~i,0!=(0|c)|R||(f=0|Zr[s>>0],T=3*e|0,(0|Kr[D>>2])>>>0<=T>>>0&&(Kr[ae>>2]=866,Kr[ae+4>>2]=910,Kr[ae+8>>2]=1497,He(te,812,ae),ce(te)),A=(0|Kr[p>>2])+(T<<1)|0,Kr[l>>2]=(0|jr[A>>1])<<16|Kr[k+(f<<2)>>2],Kr[l+4>>2]=(0|jr[A+4>>1])<<16|0|jr[A+2>>1],Kr[l+8>>2]=Kr[ie+(f<<2)>>2],(0|Kr[w>>2])>>>0<=i>>>0&&(Kr[ue>>2]=866,Kr[ue+4>>2]=910,Kr[ue+8>>2]=1497,He(te,812,ue),ce(te)),Kr[l+12>>2]=Kr[(0|Kr[m>>2])+(i<<2)>>2]),2==(0|(c=c+1|0)))break;l=l+16|0}if(2==(0|(d=d+1|0)))break;M=M+t|0}if((0|(E=L+E|0))==(0|C))break;O=O+P|0}if((0|(F=F+1|0))==(0|a))break;b=b+z|0}U=U+1|0}while((0|U)!=(0|Y));return on=Te,1}function l(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0;u=e+r|0,n=0|Kr[e+4>>2];do{if(1&n)a=e,n=r;else{if(t=0|Kr[e>>2],!(3&n))return;if(_=e+(0-t)|0,o=t+r|0,(0|_)==(0|Kr[1149])){if(e=u+4|0,3!=(3&(n=0|Kr[e>>2])|0)){a=_,n=o;break}return Kr[1146]=o,Kr[e>>2]=-2&n,Kr[_+4>>2]=1|o,void(Kr[_+o>>2]=o)}if(r=t>>>3,t>>>0<256){if(e=0|Kr[_+8>>2],(0|(n=0|Kr[_+12>>2]))==(0|e)){Kr[1144]=Kr[1144]&~(1<<r),a=_,n=o;break}Kr[e+12>>2]=n,Kr[n+8>>2]=e,a=_,n=o;break}i=0|Kr[_+24>>2],e=0|Kr[_+12>>2];do{if((0|e)==(0|_)){if(r=_+16|0,n=r+4|0,!(e=0|Kr[n>>2])){if(!(e=0|Kr[r>>2])){e=0;break}n=r}for(;;)if(r=e+20|0,0|(t=0|Kr[r>>2]))e=t,n=r;else{if(r=e+16|0,!(t=0|Kr[r>>2]))break;e=t,n=r}Kr[n>>2]=0}else a=0|Kr[_+8>>2],Kr[a+12>>2]=e,Kr[e+8>>2]=a}while(0);if(i){if(n=0|Kr[_+28>>2],r=4880+(n<<2)|0,(0|_)==(0|Kr[r>>2])){if(Kr[r>>2]=e,!e){Kr[1145]=Kr[1145]&~(1<<n),a=_,n=o;break}}else if(Kr[i+16+(((0|Kr[i+16>>2])!=(0|_)&1)<<2)>>2]=e,!e){a=_,n=o;break}Kr[e+24>>2]=i,n=_+16|0,r=0|Kr[n>>2],0|r&&(Kr[e+16>>2]=r,Kr[r+24>>2]=e),n=0|Kr[n+4>>2],n?(Kr[e+20>>2]=n,Kr[n+24>>2]=e,a=_,n=o):(a=_,n=o)}else a=_,n=o}}while(0);if(e=u+4|0,2&(t=0|Kr[e>>2]))Kr[e>>2]=-2&t,Kr[a+4>>2]=1|n,Kr[a+n>>2]=n;else{if(e=0|Kr[1149],(0|u)==(0|Kr[1150])){if(u=(0|Kr[1147])+n|0,Kr[1147]=u,Kr[1150]=a,Kr[a+4>>2]=1|u,(0|a)!=(0|e))return;return Kr[1149]=0,void(Kr[1146]=0)}if((0|u)==(0|e))return u=(0|Kr[1146])+n|0,Kr[1146]=u,Kr[1149]=a,Kr[a+4>>2]=1|u,void(Kr[a+u>>2]=u);_=(-8&t)+n|0,r=t>>>3;do{if(t>>>0<256){if(n=0|Kr[u+8>>2],(0|(e=0|Kr[u+12>>2]))==(0|n)){Kr[1144]=Kr[1144]&~(1<<r);break}Kr[n+12>>2]=e,Kr[e+8>>2]=n;break}i=0|Kr[u+24>>2],e=0|Kr[u+12>>2];do{if((0|e)==(0|u)){if(r=u+16|0,n=r+4|0,!(e=0|Kr[n>>2])){if(!(e=0|Kr[r>>2])){r=0;break}n=r}for(;;)if(r=e+20|0,0|(t=0|Kr[r>>2]))e=t,n=r;else{if(r=e+16|0,!(t=0|Kr[r>>2]))break;e=t,n=r}Kr[n>>2]=0,r=e}else r=0|Kr[u+8>>2],Kr[r+12>>2]=e,Kr[e+8>>2]=r,r=e}while(0);if(0|i){if(e=0|Kr[u+28>>2],n=4880+(e<<2)|0,(0|u)==(0|Kr[n>>2])){if(Kr[n>>2]=r,!r){Kr[1145]=Kr[1145]&~(1<<e);break}}else if(Kr[i+16+(((0|Kr[i+16>>2])!=(0|u)&1)<<2)>>2]=r,!r)break;Kr[r+24>>2]=i,e=u+16|0,n=0|Kr[e>>2],0|n&&(Kr[r+16>>2]=n,Kr[n+24>>2]=r),e=0|Kr[e+4>>2],0|e&&(Kr[r+20>>2]=e,Kr[e+24>>2]=r)}}while(0);if(Kr[a+4>>2]=1|_,Kr[a+_>>2]=_,(0|a)==(0|Kr[1149]))return void(Kr[1146]=_);n=_}if(e=n>>>3,n>>>0<256)return r=4616+(e<<1<<2)|0,n=0|Kr[1144],e=1<<e,n&e?(n=r+8|0,e=0|Kr[n>>2]):(Kr[1144]=n|e,e=r,n=r+8|0),Kr[n>>2]=a,Kr[e+12>>2]=a,Kr[a+8>>2]=e,void(Kr[a+12>>2]=r);if(e=n>>>8,e?n>>>0>16777215?e=31:(o=(e+1048320|0)>>>16&8,u=e<<o,_=(u+520192|0)>>>16&4,u<<=_,e=(u+245760|0)>>>16&2,e=14-(_|o|e)+(u<<e>>>15)|0,e=n>>>(e+7|0)&1|e<<1):e=0,i=4880+(e<<2)|0,Kr[a+28>>2]=e,Kr[a+20>>2]=0,Kr[a+16>>2]=0,r=0|Kr[1145],t=1<<e,!(r&t))return Kr[1145]=r|t,Kr[i>>2]=a,Kr[a+24>>2]=i,Kr[a+12>>2]=a,void(Kr[a+8>>2]=a);for(r=n<<(31==(0|e)?0:25-(e>>>1)|0),t=0|Kr[i>>2];;){if((-8&Kr[t+4>>2]|0)==(0|n)){e=69;break}if(i=t+16+(r>>>31<<2)|0,!(e=0|Kr[i>>2])){e=68;break}r<<=1,t=e}return 68==(0|e)?(Kr[i>>2]=a,Kr[a+24>>2]=t,Kr[a+12>>2]=a,void(Kr[a+8>>2]=a)):69==(0|e)?(o=t+8|0,u=0|Kr[o>>2],Kr[u+12>>2]=a,Kr[o>>2]=a,Kr[a+8>>2]=u,Kr[a+12>>2]=t,void(Kr[a+24>>2]=0)):void 0}function s(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0,Y=0,x=0;if(V=on,on=on+2416|0,o=V,_=V+1904|0,X=V+1880|0,w=V+980|0,G=V+80|0,H=V+16|0,n=0|Kr[e+88>>2],y=(0|Zr[n+63>>0])<<8|0|Zr[n+64>>0],g=e+92|0,r=(0|Kr[e+4>>2])+((0|Zr[n+58>>0])<<8|(0|Zr[n+57>>0])<<16|0|Zr[n+59>>0])|0,!(n=(0|Zr[n+61>>0])<<8|(0|Zr[n+60>>0])<<16|0|Zr[n+62>>0]))return X=0,on=V,0|X;if(Kr[g>>2]=r,Kr[e+96>>2]=r,Kr[e+104>>2]=n,Kr[e+100>>2]=r+n,Kr[e+108>>2]=0,Kr[e+112>>2]=0,Kr[X+20>>2]=0,Kr[X>>2]=0,Kr[X+4>>2]=0,Kr[X+8>>2]=0,Kr[X+12>>2]=0,Xr[X+16>>0]=0,0|a(g,X)){for(r=0,n=-7,t=-7;;){if(Kr[w+(r<<2)>>2]=t,Kr[G+(r<<2)>>2]=n,i=(0|t)>6,225==(0|(r=r+1|0)))break;n=(1&i)+n|0,t=i?-7:t+1|0}r=H,n=r+64|0;do{Kr[r>>2]=0,r=r+4|0}while((0|r)<(0|n));i=e+284|0,n=3*y|0,t=e+288|0,r=0|Kr[t>>2];e:do{if((0|r)==(0|n))u=13;else{if(r>>>0<=n>>>0){do{if((0|Kr[e+292>>2])>>>0<n>>>0){if(0|P(i,n,(r+1|0)==(0|n),2,0)){r=0|Kr[t>>2];break}Xr[e+296>>0]=1,r=0;break e}}while(0);ee((0|Kr[i>>2])+(r<<1)|0,0,n-r<<1|0)}Kr[t>>2]=n,u=13}}while(0);do{if(13==(0|u)){if(!y){Kr[o>>2]=866,Kr[o+4>>2]=910,Kr[o+8>>2]=1497,He(_,812,o),ce(_),r=1;break}for(S=H+4|0,N=H+8|0,O=H+12|0,C=H+16|0,h=H+20|0,L=H+24|0,b=H+28|0,F=H+32|0,U=H+36|0,m=H+40|0,D=H+44|0,p=H+48|0,B=H+52|0,v=H+56|0,k=H+60|0,M=0,r=0|Kr[i>>2],n=0|Kr[H>>2],t=0|Kr[S>>2],i=0|Kr[N>>2],e=0|Kr[O>>2],_=0|Kr[C>>2],o=0|Kr[h>>2],u=0|Kr[L>>2],E=0|Kr[b>>2],f=0|Kr[F>>2],T=0|Kr[U>>2],c=0|Kr[m>>2],l=0|Kr[D>>2],s=0,A=0,R=0,d=0;;){if(x=0|I(g,X),n=n+(0|Kr[w+(x<<2)>>2])&7,t=t+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),i=i+(0|Kr[w+(x<<2)>>2])&7,e=e+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),_=_+(0|Kr[w+(x<<2)>>2])&7,o=o+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),u=u+(0|Kr[w+(x<<2)>>2])&7,E=E+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),f=f+(0|Kr[w+(x<<2)>>2])&7,T=T+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),c=c+(0|Kr[w+(x<<2)>>2])&7,l=l+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),s=s+(0|Kr[w+(x<<2)>>2])&7,A=A+(0|Kr[G+(x<<2)>>2])&7,x=0|I(g,X),R=R+(0|Kr[w+(x<<2)>>2])&7,d=d+(0|Kr[G+(x<<2)>>2])&7,x=0|Zr[1445+o>>0],Yr[r>>1]=(0|Zr[1445+t>>0])<<3|0|Zr[1445+n>>0]|(0|Zr[1445+i>>0])<<6|(0|Zr[1445+e>>0])<<9|(0|Zr[1445+_>>0])<<12|x<<15,Y=0|Zr[1445+c>>0],Yr[r+2>>1]=(0|Zr[1445+u>>0])<<2|x>>>1|(0|Zr[1445+E>>0])<<5|(0|Zr[1445+f>>0])<<8|(0|Zr[1445+T>>0])<<11|Y<<14,Yr[r+4>>1]=(0|Zr[1445+l>>0])<<1|Y>>>2|(0|Zr[1445+s>>0])<<4|(0|Zr[1445+A>>0])<<7|(0|Zr[1445+R>>0])<<10|(0|Zr[1445+d>>0])<<13,(M=M+1|0)>>>0>=y>>>0)break;r=r+6|0}Kr[H>>2]=n,Kr[S>>2]=t,Kr[N>>2]=i,Kr[O>>2]=e,Kr[C>>2]=_,Kr[h>>2]=o,Kr[L>>2]=u,Kr[b>>2]=E,Kr[F>>2]=f,Kr[U>>2]=T,Kr[m>>2]=c,Kr[D>>2]=l,Kr[p>>2]=s,Kr[B>>2]=A,Kr[v>>2]=R,Kr[k>>2]=d,r=1}}while(0)}else r=0;return z(X),x=r,on=V,0|x}function A(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0;if(F=on,on=on+1008|0,o=F,_=F+496|0,b=F+472|0,C=F+276|0,h=F+80|0,L=F+16|0,n=0|Kr[e+88>>2],N=(0|Zr[n+47>>0])<<8|0|Zr[n+48>>0],O=e+92|0,r=(0|Kr[e+4>>2])+((0|Zr[n+42>>0])<<8|(0|Zr[n+41>>0])<<16|0|Zr[n+43>>0])|0,!(n=(0|Zr[n+45>>0])<<8|(0|Zr[n+44>>0])<<16|0|Zr[n+46>>0]))return b=0,on=F,0|b;if(Kr[O>>2]=r,Kr[e+96>>2]=r,Kr[e+104>>2]=n,Kr[e+100>>2]=r+n,Kr[e+108>>2]=0,Kr[e+112>>2]=0,Kr[b+20>>2]=0,Kr[b>>2]=0,Kr[b+4>>2]=0,Kr[b+8>>2]=0,Kr[b+12>>2]=0,Xr[b+16>>0]=0,0|a(O,b)){for(r=0,n=-3,t=-3;;){if(Kr[C+(r<<2)>>2]=t,Kr[h+(r<<2)>>2]=n,i=(0|t)>2,49==(0|(r=r+1|0)))break;n=(1&i)+n|0,t=i?-3:t+1|0}r=L,n=r+64|0;do{Kr[r>>2]=0,r=r+4|0}while((0|r)<(0|n));t=e+252|0,n=e+256|0,r=0|Kr[n>>2];e:do{if((0|r)==(0|N))u=13;else{if(r>>>0<=N>>>0){do{if((0|Kr[e+260>>2])>>>0<N>>>0){if(0|P(t,N,(r+1|0)==(0|N),4,0)){r=0|Kr[n>>2];break}Xr[e+264>>0]=1,r=0;break e}}while(0);ee((0|Kr[t>>2])+(r<<2)|0,0,N-r<<2|0)}Kr[n>>2]=N,u=13}}while(0);do{if(13==(0|u)){if(!N){Kr[o>>2]=866,Kr[o+4>>2]=910,Kr[o+8>>2]=1497,He(_,812,o),ce(_),r=1;break}for(e=L+4|0,_=L+8|0,o=L+12|0,u=L+16|0,E=L+20|0,f=L+24|0,T=L+28|0,c=L+32|0,l=L+36|0,s=L+40|0,A=L+44|0,R=L+48|0,d=L+52|0,M=L+56|0,S=L+60|0,i=0,r=0|Kr[t>>2],n=0|Kr[e>>2],t=0|Kr[L>>2];;){if(X=0|I(O,b),t=t+(0|Kr[C+(X<<2)>>2])&3,n=n+(0|Kr[h+(X<<2)>>2])&3,X=0|I(O,b),V=(0|Kr[_>>2])+(0|Kr[C+(X<<2)>>2])&3,Kr[_>>2]=V,X=(0|Kr[o>>2])+(0|Kr[h+(X<<2)>>2])&3,Kr[o>>2]=X,G=0|I(O,b),H=(0|Kr[u>>2])+(0|Kr[C+(G<<2)>>2])&3,Kr[u>>2]=H,G=(0|Kr[E>>2])+(0|Kr[h+(G<<2)>>2])&3,Kr[E>>2]=G,g=0|I(O,b),w=(0|Kr[f>>2])+(0|Kr[C+(g<<2)>>2])&3,Kr[f>>2]=w,g=(0|Kr[T>>2])+(0|Kr[h+(g<<2)>>2])&3,Kr[T>>2]=g,k=0|I(O,b),y=(0|Kr[c>>2])+(0|Kr[C+(k<<2)>>2])&3,Kr[c>>2]=y,k=(0|Kr[l>>2])+(0|Kr[h+(k<<2)>>2])&3,Kr[l>>2]=k,B=0|I(O,b),v=(0|Kr[s>>2])+(0|Kr[C+(B<<2)>>2])&3,Kr[s>>2]=v,B=(0|Kr[A>>2])+(0|Kr[h+(B<<2)>>2])&3,Kr[A>>2]=B,D=0|I(O,b),p=(0|Kr[R>>2])+(0|Kr[C+(D<<2)>>2])&3,Kr[R>>2]=p,D=(0|Kr[d>>2])+(0|Kr[h+(D<<2)>>2])&3,Kr[d>>2]=D,U=0|I(O,b),m=(0|Kr[M>>2])+(0|Kr[C+(U<<2)>>2])&3,Kr[M>>2]=m,U=(0|Kr[S>>2])+(0|Kr[h+(U<<2)>>2])&3,Kr[S>>2]=U,Kr[r>>2]=(0|Zr[1441+n>>0])<<2|0|Zr[1441+t>>0]|(0|Zr[1441+V>>0])<<4|(0|Zr[1441+X>>0])<<6|(0|Zr[1441+H>>0])<<8|(0|Zr[1441+G>>0])<<10|(0|Zr[1441+w>>0])<<12|(0|Zr[1441+g>>0])<<14|(0|Zr[1441+y>>0])<<16|(0|Zr[1441+k>>0])<<18|(0|Zr[1441+v>>0])<<20|(0|Zr[1441+B>>0])<<22|(0|Zr[1441+p>>0])<<24|(0|Zr[1441+D>>0])<<26|(0|Zr[1441+m>>0])<<28|(0|Zr[1441+U>>0])<<30,(i=i+1|0)>>>0>=N>>>0)break;r=r+4|0}Kr[L>>2]=t,Kr[e>>2]=n,r=1}}while(0)}else r=0;return z(b),V=r,on=F,0|V}function R(e,r,n,t,i,_,o,a){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0,a|=0;var u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0,d=0,M=0,S=0,N=0,O=0,C=0,h=0,P=0,L=0,b=0,F=0,U=0,m=0,D=0,p=0,B=0,v=0,k=0,y=0,g=0,w=0,G=0,H=0,X=0,V=0,Y=0,x=0,K=0,W=0,Z=0,z=0,j=0,J=0;if(J=on,on=on+592|0,Z=J+48|0,j=J+32|0,z=J+16|0,W=J,x=J+80|0,K=J+64|0,m=e+272|0,D=0|Kr[m>>2],Y=0|Kr[e+88>>2],p=(0|Zr[Y+63>>0])<<8|0|Zr[Y+64>>0],Y=0|Xr[Y+17>>0],B=255&Y,!(Y<<24>>24))return on=J,1;v=0==(0|a),k=o+-1|0,y=k<<4,g=a+-1|0,w=t<<1,G=e+92|0,H=e+116|0,X=e+164|0,V=e+268|0,Y=e+212|0,U=0==(1&i|0),F=0==(1&_|0),b=e+288|0,L=e+284|0,P=0,i=0,n=0,_=1;do{if(!v)for(C=0|Kr[r+(P<<2)>>2],h=0;;){if(O=1&h,u=0==(0|O),N=(O<<5^32)-16|0,O=(O<<1^2)-1|0,M=u?o:-1,(0|(e=u?0:k))!=(0|M))for(S=F|(0|h)!=(0|g),d=u?C:C+y|0;;){1==(0|_)&&(_=512|I(G,H)),R=7&_,_>>>=3,E=0|Zr[1539+R>>0],u=0;do{l=(0|I(G,X))+n|0,s=l-D|0,A=s>>31,n=A&l|s&~A,(0|Kr[m>>2])>>>0<=n>>>0&&(Kr[W>>2]=866,Kr[W+4>>2]=910,Kr[W+8>>2]=1497,He(x,812,W),ce(x)),Kr[K+(u<<2)>>2]=jr[(0|Kr[V>>2])+(n<<1)>>1],u=u+1|0}while(u>>>0<E>>>0);for(A=U|(0|e)!=(0|k),l=0,s=d;;){if(c=S|0==(0|l),E=l<<1,u=(0|I(G,Y))+i|0,f=u-p|0,T=f>>31,T=T&u|f&~T,A?(c&&(i=0|Zr[1547+(R<<2)+E>>0],u=3*T|0,(0|Kr[b>>2])>>>0<=u>>>0&&(Kr[z>>2]=866,Kr[z+4>>2]=910,Kr[z+8>>2]=1497,He(x,812,z),ce(x)),f=(0|Kr[L>>2])+(u<<1)|0,Kr[s>>2]=(0|jr[f>>1])<<16|Kr[K+(i<<2)>>2],Kr[s+4>>2]=(0|jr[f+4>>1])<<16|0|jr[f+2>>1]),f=s+8|0,u=(0|I(G,Y))+T|0,T=u-p|0,i=T>>31,i=i&u|T&~i,c&&(u=0|Zr[1547+(R<<2)+(1|E)>>0],E=3*i|0,(0|Kr[b>>2])>>>0<=E>>>0&&(Kr[Z>>2]=866,Kr[Z+4>>2]=910,Kr[Z+8>>2]=1497,He(x,812,Z),ce(x)),c=(0|Kr[L>>2])+(E<<1)|0,Kr[f>>2]=(0|jr[c>>1])<<16|Kr[K+(u<<2)>>2],Kr[s+12>>2]=(0|jr[c+4>>1])<<16|0|jr[c+2>>1])):(c&&(i=0|Zr[1547+(R<<2)+E>>0],u=3*T|0,(0|Kr[b>>2])>>>0<=u>>>0&&(Kr[j>>2]=866,Kr[j+4>>2]=910,Kr[j+8>>2]=1497,He(x,812,j),ce(x)),c=(0|Kr[L>>2])+(u<<1)|0,Kr[s>>2]=(0|jr[c>>1])<<16|Kr[K+(i<<2)>>2],Kr[s+4>>2]=(0|jr[c+4>>1])<<16|0|jr[c+2>>1]),T=(0|I(G,Y))+T|0,c=T-p|0,i=c>>31,i=i&T|c&~i),2==(0|(l=l+1|0)))break;s=s+t|0}if((0|(e=O+e|0))==(0|M))break;d=d+N|0}if((0|(h=h+1|0))==(0|a))break;C=C+w|0}P=P+1|0}while((0|P)!=(0|B));return on=J,1}function d(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0;if(f=e,u=r,E=u,o=n,c=t,a=c,!E)return _=0!=(0|i),a?_?(Kr[i>>2]=0|e,Kr[i+4>>2]=0&r,c=0,i=0,0|(Tn=c,i)):(c=0,i=0,0|(Tn=c,i)):(_&&(Kr[i>>2]=(f>>>0)%(o>>>0),Kr[i+4>>2]=0),c=0,i=(f>>>0)/(o>>>0)>>>0,0|(Tn=c,i));_=0==(0|a);do{if(o){if(!_){if((_=(0|ln(0|a))-(0|ln(0|E))|0)>>>0<=31){T=_+1|0,a=31-_|0,r=_-31>>31,o=T,e=f>>>(T>>>0)&r|E<<a,r&=E>>>(T>>>0),_=0,a=f<<a;break}return i?(Kr[i>>2]=0|e,Kr[i+4>>2]=u|0&r,c=0,i=0,0|(Tn=c,i)):(c=0,i=0,0|(Tn=c,i))}if((_=o-1|0)&o|0){a=33+(0|ln(0|o))-(0|ln(0|E))|0,s=64-a|0,T=32-a|0,u=T>>31,l=a-32|0,r=l>>31,o=a,e=T-1>>31&E>>>(l>>>0)|(E<<T|f>>>(a>>>0))&r,r&=E>>>(a>>>0),_=f<<s&u,a=(E<<s|f>>>(l>>>0))&u|f<<T&a-33>>31;break}return 0|i&&(Kr[i>>2]=_&f,Kr[i+4>>2]=0),1==(0|o)?(l=u|0&r,s=0|e,0|(Tn=l,s)):(s=0|be(0|o),l=E>>>(s>>>0)|0,s=E<<32-s|f>>>(s>>>0)|0,0|(Tn=l,s))}if(_)return 0|i&&(Kr[i>>2]=(E>>>0)%(o>>>0),Kr[i+4>>2]=0),l=0,s=(E>>>0)/(o>>>0)>>>0,0|(Tn=l,s);if(!f)return 0|i&&(Kr[i>>2]=0,Kr[i+4>>2]=(E>>>0)%(a>>>0)),l=0,s=(E>>>0)/(a>>>0)>>>0,0|(Tn=l,s);if(!((_=a-1|0)&a))return 0|i&&(Kr[i>>2]=0|e,Kr[i+4>>2]=_&E|0&r),l=0,s=E>>>((0|be(0|a))>>>0),0|(Tn=l,s);if((_=(0|ln(0|a))-(0|ln(0|E))|0)>>>0<=30){r=_+1|0,a=31-_|0,o=r,e=E<<a|f>>>(r>>>0),r=E>>>(r>>>0),_=0,a=f<<a;break}return i?(Kr[i>>2]=0|e,Kr[i+4>>2]=u|0&r,l=0,s=0,0|(Tn=l,s)):(l=0,s=0,0|(Tn=l,s))}while(0);if(o){T=0|n,f=c|0&t,E=0|Qe(0|T,0|f,-1,-1),n=Tn,u=a,a=0;do{t=u,u=_>>>31|u<<1,_=a|_<<1,t=e<<1|t>>>31|0,c=e>>>31|r<<1|0,Ze(0|E,0|n,0|t,0|c),s=Tn,l=s>>31|((0|s)<0?-1:0)<<1,a=1&l,e=0|Ze(0|t,0|c,l&T|0,(((0|s)<0?-1:0)>>31|((0|s)<0?-1:0)<<1)&f|0),r=Tn,o=o-1|0}while(0!=(0|o));E=u,u=0}else E=a,u=0,a=0;return o=0,0|i&&(Kr[i>>2]=e,Kr[i+4>>2]=r),l=(0|_)>>>31|(E|o)<<1|0&(o<<1|_>>>31)|u,s=-2&(_<<1|0)|a,0|(Tn=l,s)}function M(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0;if(T=e+4|0,f=0|Kr[T>>2],n=-8&f,a=e+n|0,!(3&f))return r>>>0<256?0|(e=0):(n>>>0>=(r+4|0)>>>0?(n-r|0)>>>0<=Kr[1264]<<1>>>0:0)?0|e:0|(e=0);if(n>>>0>=r>>>0)return(n=n-r|0)>>>0<=15?0|e:(E=e+r|0,Kr[T>>2]=1&f|r|2,Kr[E+4>>2]=3|n,T=E+n+4|0,Kr[T>>2]=1|Kr[T>>2],l(E,n),0|e);if((0|a)==(0|Kr[1150]))return E=(0|Kr[1147])+n|0,n=E-r|0,t=e+r|0,E>>>0<=r>>>0?0|(e=0):(Kr[T>>2]=1&f|r|2,Kr[t+4>>2]=1|n,Kr[1150]=t,Kr[1147]=n,0|e);if((0|a)==(0|Kr[1149]))return(i=(0|Kr[1146])+n|0)>>>0<r>>>0?0|(e=0):(n=i-r|0,t=1&f,n>>>0>15?(f=e+r|0,E=f+n|0,Kr[T>>2]=t|r|2,Kr[f+4>>2]=1|n,Kr[E>>2]=n,t=E+4|0,Kr[t>>2]=-2&Kr[t>>2],t=f):(Kr[T>>2]=t|i|2,t=e+i+4|0,Kr[t>>2]=1|Kr[t>>2],t=0,n=0),Kr[1146]=n,Kr[1149]=t,0|e);if(2&(t=0|Kr[a+4>>2])|0)return 0|(e=0);if((u=(-8&t)+n|0)>>>0<r>>>0)return 0|(e=0);E=u-r|0,i=t>>>3;do{if(t>>>0<256){if(t=0|Kr[a+8>>2],(0|(n=0|Kr[a+12>>2]))==(0|t)){Kr[1144]=Kr[1144]&~(1<<i);break}Kr[t+12>>2]=n,Kr[n+8>>2]=t;break}o=0|Kr[a+24>>2],n=0|Kr[a+12>>2];do{if((0|n)==(0|a)){if(i=a+16|0,t=i+4|0,n=0|Kr[t>>2])_=t;else{if(!(n=0|Kr[i>>2])){i=0;break}_=i}for(;;)if(i=n+20|0,0|(t=0|Kr[i>>2]))n=t,_=i;else{if(t=n+16|0,!(i=0|Kr[t>>2]))break;n=i,_=t}Kr[_>>2]=0,i=n}else i=0|Kr[a+8>>2],Kr[i+12>>2]=n,Kr[n+8>>2]=i,i=n}while(0);if(0|o){if(n=0|Kr[a+28>>2],t=4880+(n<<2)|0,(0|a)==(0|Kr[t>>2])){if(Kr[t>>2]=i,!i){Kr[1145]=Kr[1145]&~(1<<n);break}}else if(Kr[o+16+(((0|Kr[o+16>>2])!=(0|a)&1)<<2)>>2]=i,!i)break;Kr[i+24>>2]=o,n=a+16|0,t=0|Kr[n>>2],0|t&&(Kr[i+16>>2]=t,Kr[t+24>>2]=i),n=0|Kr[n+4>>2],0|n&&(Kr[i+20>>2]=n,Kr[n+24>>2]=i)}}while(0);return n=1&f,E>>>0<16?(Kr[T>>2]=u|n|2,T=e+u+4|0,Kr[T>>2]=1|Kr[T>>2],0|e):(f=e+r|0,Kr[T>>2]=n|r|2,Kr[f+4>>2]=3|E,T=f+E+4|0,Kr[T>>2]=1|Kr[T>>2],l(f,E),0|e)}function S(e,r,n,t,i,_){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0;var o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0;switch(s=on,on=on+592|0,l=s+56|0,u=s+40|0,T=s+72|0,f=s,c=s+68|0,Kr[f>>2]=40,G(e,r,f),o=(0|Kr[f+4>>2])>>>i,a=(0|Kr[f+8>>2])>>>i,f=f+32|0,t=0|Kr[f+4>>2],0|Kr[f>>2]){case 0:t?E=14:f=8;break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:E=t?14:13;break;case 9:case 10:t?E=14:f=8;break;default:E=14}13==(0|E)?f=16:14==(0|E)&&(Kr[u>>2]=866,Kr[u+4>>2]=2672,Kr[u+8>>2]=1251,He(T,812,u),ce(T),f=0),Kr[c>>2]=n,E=0|L(e,r),r=_+i|0;do{if(r>>>0>i>>>0){if(!E){for(t=n;;){if(t=t+(0|cn(0|cn((o+3|0)>>>2,f),(a+3|0)>>>2))|0,(0|(i=i+1|0))==(0|r))break;a>>>=1,o>>>=1}Kr[c>>2]=t;break}for(e=a,t=n;;){if(a=0|cn((o+3|0)>>>2,f),u=0|cn(a,(e+3|0)>>>2),(i>>>0>15|u>>>0<8?0:519686845==(0|Kr[E>>2]))&&(V(E,c,u,a,i),t=0|Kr[c>>2]),t=t+u|0,Kr[c>>2]=t,(0|(i=i+1|0))==(0|r))break;e>>>=1,o>>>=1}}}while(0);return E?519686845!=(0|Kr[E>>2])?void(on=s):(O(E),7&E?(Kr[l>>2]=866,Kr[l+4>>2]=2506,Kr[l+8>>2]=1232,He(T,812,l),ce(T),void(on=s)):(_e(E,0,0,1,0),void(on=s))):void(on=s)}function N(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0;if(s=on,on=on+576|0,o=s,i=s+64|0,l=s+16|0,t=e+88|0,r=0|Kr[t>>2],c=(0|Zr[r+39>>0])<<8|0|Zr[r+40>>0],f=e+236|0,_=e+240|0,(0|(n=0|Kr[_>>2]))!=(0|c)){if(n>>>0<=c>>>0){do{if((0|Kr[e+244>>2])>>>0<c>>>0){if(0|P(f,c,(n+1|0)==(0|c),4,0)){r=0|Kr[_>>2];break}return Xr[e+248>>0]=1,l=0,on=s,0|l}r=n}while(0);ee((0|Kr[f>>2])+(r<<2)|0,0,c-r<<2|0),r=0|Kr[t>>2]}Kr[_>>2]=c}if(T=e+92|0,n=(0|Kr[e+4>>2])+((0|Zr[r+34>>0])<<8|(0|Zr[r+33>>0])<<16|0|Zr[r+35>>0])|0,!(r=(0|Zr[r+37>>0])<<8|(0|Zr[r+36>>0])<<16|0|Zr[r+38>>0]))return l=0,on=s,0|l;if(Kr[T>>2]=n,Kr[e+96>>2]=n,Kr[e+104>>2]=r,Kr[e+100>>2]=n+r,Kr[e+108>>2]=0,Kr[e+112>>2]=0,u=l+20|0,Kr[l>>2]=0,Kr[l+4>>2]=0,Kr[l+8>>2]=0,Kr[l+12>>2]=0,Xr[l+16>>0]=0,E=l+24|0,Kr[l+44>>2]=0,Kr[u>>2]=0,Kr[u+4>>2]=0,Kr[u+8>>2]=0,Kr[u+12>>2]=0,Kr[u+16>>2]=0,Xr[u+20>>0]=0,0|a(T,l)?0|a(T,E):0)if(0|Kr[_>>2]||(Kr[o>>2]=866,Kr[o+4>>2]=910,Kr[o+8>>2]=1497,He(i,812,o),ce(i)),c)for(o=0,u=0,n=0|Kr[f>>2],t=0,e=0,r=0,i=0,_=0;;){if(o=(0|I(T,l))+o&31,_=(0|I(T,E))+_&63,i=(0|I(T,l))+i&31,r=(0|I(T,l))+r|0,e=(0|I(T,E))+e&63,t=(0|I(T,l))+t&31,Kr[n>>2]=_<<5|o<<11|i|r<<27|e<<21|t<<16,(u=u+1|0)>>>0>=c>>>0){r=1;break}n=n+4|0,r&=31}else r=1;else r=0;return z(l+24|0),z(l),l=r,on=s,0|l}function I(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0;A=on,on=on+576|0,E=A+48|0,T=A+32|0,f=A+16|0,u=A,l=A+64|0,c=0|Kr[r+20>>2],s=e+20|0,a=0|Kr[s>>2],(0|a)<24?(o=e+4|0,n=0|Kr[o>>2],i=0|Kr[e+8>>2],t=n>>>0<i>>>0,(0|a)<16?(t?(_=(0|Zr[n>>0])<<8,n=n+1|0):_=0,n>>>0<i>>>0?(i=0|Zr[n>>0],n=n+1|0):i=0,Kr[o>>2]=n,Kr[s>>2]=a+16,t=16,n=i|_):(t?(Kr[o>>2]=n+1,n=0|Zr[n>>0]):n=0,Kr[s>>2]=a+8,t=24),o=e+16|0,i=Kr[o>>2]|n<<t-a,Kr[o>>2]=i):(i=e+16|0,o=i,i=0|Kr[i>>2]),_=1+(i>>>16)|0;do{if(!(_>>>0<=(0|Kr[c+16>>2])>>>0)){for(t=0|Kr[c+20>>2];;){if(n=t+-1|0,!(_>>>0>(0|Kr[c+28+(n<<2)>>2])>>>0))break;t=t+1|0}if((n=(i>>>(32-t|0))+(0|Kr[c+96+(n<<2)>>2])|0)>>>0<(0|Kr[r>>2])>>>0){n=0|jr[(0|Kr[c+176>>2])+(n<<1)>>1];break}return Kr[E>>2]=866,Kr[E+4>>2]=3275,Kr[E+8>>2]=1348,He(l,812,E),ce(l),s=0,on=A,0|s}t=0|Kr[(0|Kr[c+168>>2])+(i>>>(32-(0|Kr[c+8>>2])|0)<<2)>>2],-1==(0|t)&&(Kr[u>>2]=866,Kr[u+4>>2]=3253,Kr[u+8>>2]=1393,He(l,812,u),ce(l)),n=65535&t,t>>>=16,(0|Kr[r+8>>2])>>>0<=n>>>0&&(Kr[f>>2]=866,Kr[f+4>>2]=909,Kr[f+8>>2]=1497,He(l,812,f),ce(l)),(0|Zr[(0|Kr[r+4>>2])+n>>0])!=(0|t)&&(Kr[T>>2]=866,Kr[T+4>>2]=3257,Kr[T+8>>2]=1410,He(l,812,T),ce(l))}while(0);return Kr[o>>2]=Kr[o>>2]<<t,Kr[s>>2]=(0|Kr[s>>2])-t,s=n,on=A,0|s}function O(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,a=0,u=0;if(u=on,on=on+576|0,a=u+48|0,_=u+32|0,i=u+16|0,t=u,o=u+64|0,Kr[e>>2]=0,r=e+284|0,n=0|Kr[r>>2],0|n&&(7&n?(Kr[t>>2]=866,Kr[t+4>>2]=2506,Kr[t+8>>2]=1232,He(o,812,t),ce(o)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+288>>2]=0,Kr[e+292>>2]=0),Xr[e+296>>0]=0,r=e+268|0,n=0|Kr[r>>2],0|n&&(7&n?(Kr[i>>2]=866,Kr[i+4>>2]=2506,Kr[i+8>>2]=1232,He(o,812,i),ce(o)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+272>>2]=0,Kr[e+276>>2]=0),Xr[e+280>>0]=0,r=e+252|0,n=0|Kr[r>>2],0|n&&(7&n?(Kr[_>>2]=866,Kr[_+4>>2]=2506,Kr[_+8>>2]=1232,He(o,812,_),ce(o)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+256>>2]=0,Kr[e+260>>2]=0),Xr[e+264>>0]=0,r=e+236|0,!(n=0|Kr[r>>2]))return a=e+248|0,Xr[a>>0]=0,a=e+212|0,z(a),a=e+188|0,z(a),a=e+164|0,z(a),a=e+140|0,z(a),a=e+116|0,z(a),void(on=u);7&n?(Kr[a>>2]=866,Kr[a+4>>2]=2506,Kr[a+8>>2]=1232,He(o,812,a),ce(o)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+240>>2]=0,Kr[e+244>>2]=0,a=e+248|0,Xr[a>>0]=0,a=e+212|0,z(a),a=e+188|0,z(a),a=e+164|0,z(a),a=e+140|0,z(a),a=e+116|0,z(a),on=u}function C(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0;e:do{if(r>>>0<=20)switch(0|r){case 9:t=3+(0|Kr[n>>2])&-4,r=0|Kr[t>>2],Kr[n>>2]=t+4,Kr[e>>2]=r;break e;case 10:t=3+(0|Kr[n>>2])&-4,r=0|Kr[t>>2],Kr[n>>2]=t+4,t=e,Kr[t>>2]=r,Kr[t+4>>2]=((0|r)<0)<<31>>31;break e;case 11:t=3+(0|Kr[n>>2])&-4,r=0|Kr[t>>2],Kr[n>>2]=t+4,t=e,Kr[t>>2]=r,Kr[t+4>>2]=0;break e;case 12:t=7+(0|Kr[n>>2])&-8,r=t,i=0|Kr[r>>2],r=0|Kr[r+4>>2],Kr[n>>2]=t+8,t=e,Kr[t>>2]=i,Kr[t+4>>2]=r;break e;case 13:i=3+(0|Kr[n>>2])&-4,t=0|Kr[i>>2],Kr[n>>2]=i+4,t=(65535&t)<<16>>16,i=e,Kr[i>>2]=t,Kr[i+4>>2]=((0|t)<0)<<31>>31;break e;case 14:i=3+(0|Kr[n>>2])&-4,t=0|Kr[i>>2],Kr[n>>2]=i+4,i=e,Kr[i>>2]=65535&t,Kr[i+4>>2]=0;break e;case 15:i=3+(0|Kr[n>>2])&-4,t=0|Kr[i>>2],Kr[n>>2]=i+4,t=(255&t)<<24>>24,i=e,Kr[i>>2]=t,Kr[i+4>>2]=((0|t)<0)<<31>>31;break e;case 16:i=3+(0|Kr[n>>2])&-4,t=0|Kr[i>>2],Kr[n>>2]=i+4,i=e,Kr[i>>2]=255&t,Kr[i+4>>2]=0;break e;case 17:case 18:i=7+(0|Kr[n>>2])&-8,_=+rn[i>>3],Kr[n>>2]=i+8,rn[e>>3]=_;break e;default:break e}}while(0)}function h(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,u=0,E=0,f=0;if(f=on,on=on+560|0,i=f,t=f+40|0,E=f+16|0,n=0|Kr[e+88>>2],o=(0|Zr[n+55>>0])<<8|0|Zr[n+56>>0],u=e+92|0,r=(0|Kr[e+4>>2])+((0|Zr[n+50>>0])<<8|(0|Zr[n+49>>0])<<16|0|Zr[n+51>>0])|0,!(n=(0|Zr[n+53>>0])<<8|(0|Zr[n+52>>0])<<16|0|Zr[n+54>>0]))return E=0,on=f,0|E;Kr[u>>2]=r,Kr[e+96>>2]=r,Kr[e+104>>2]=n,Kr[e+100>>2]=r+n,Kr[e+108>>2]=0,Kr[e+112>>2]=0,Kr[E+20>>2]=0,Kr[E>>2]=0,Kr[E+4>>2]=0,Kr[E+8>>2]=0,Kr[E+12>>2]=0,Xr[E+16>>0]=0;e:do{if(0|a(u,E)){if(_=e+268|0,n=e+272|0,(0|(r=0|Kr[n>>2]))!=(0|o)){if(r>>>0<=o>>>0){do{if((0|Kr[e+276>>2])>>>0<o>>>0){if(0|P(_,o,(r+1|0)==(0|o),2,0)){r=0|Kr[n>>2];break}Xr[e+280>>0]=1,r=0;break e}}while(0);ee((0|Kr[_>>2])+(r<<1)|0,0,o-r<<1|0)}Kr[n>>2]=o}if(!o){Kr[i>>2]=866,Kr[i+4>>2]=910,Kr[i+8>>2]=1497,He(t,812,i),ce(t),r=1;break}for(n=0,e=0,t=0,r=0|Kr[_>>2];;){if(_=0|I(u,E),t=_+t&255,e=(0|I(u,E))+e&255,Yr[r>>1]=e<<8|t,(n=n+1|0)>>>0>=o>>>0){r=1;break}r=r+2|0}}else r=0}while(0);return z(E),E=r,on=f,0|E}function P(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0;if(s=on,on=on+576|0,T=s+48|0,u=s+32|0,o=s+16|0,_=s,f=s+64|0,c=s+60|0,E=e+4|0,l=e+8|0,(0|Kr[E>>2])>>>0>(0|Kr[l>>2])>>>0&&(Kr[_>>2]=866,Kr[_+4>>2]=2123,Kr[_+8>>2]=845,He(f,812,_),ce(f)),(2147418112/(t>>>0)|0)>>>0<=r>>>0&&(Kr[o>>2]=866,Kr[o+4>>2]=2124,Kr[o+8>>2]=885,He(f,812,o),ce(f)),(_=0|Kr[l>>2])>>>0>=r>>>0)return l=1,on=s,0|l;if((n?0!=((a=r+-1|0)&r|0):0)?(r=a>>>16|a,r|=r>>>8,r|=r>>>4,r|=r>>>2,r=1+(r>>>1|r)|0,r?n=9:(r=0,n=10)):n=9,9==(0|n)&&r>>>0<=_>>>0&&(n=10),10==(0|n)&&(Kr[u>>2]=866,Kr[u+4>>2]=2133,Kr[u+8>>2]=933,He(f,812,u),ce(f)),a=0|cn(r,t),i)if(o=0|j(a,c)){Bn[0&i](o,0|Kr[e>>2],0|Kr[E>>2]),_=0|Kr[e>>2];do{if(0|_){if(7&_){Kr[T>>2]=866,Kr[T+4>>2]=2506,Kr[T+8>>2]=1232,He(f,812,T),ce(f);break}_e(_,0,0,1,0);break}}while(0);Kr[e>>2]=o,n=20}else r=0;else _=0|q(0|Kr[e>>2],a,c,1),_?(Kr[e>>2]=_,n=20):r=0;return 20==(0|n)&&(_=0|Kr[c>>2],_>>>0>a>>>0&&(r=(_>>>0)/(t>>>0)|0),Kr[l>>2]=r,r=1),l=r,on=s,0|l}function L(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0;if(c=on,on=on+528|0,f=c,a=c+16|0,0==(0|e)|r>>>0<62)return l=0,on=c,0|l;if(!(u=0|j(300,0)))return l=0,on=c,0|l;Kr[u>>2]=519686845,Kr[u+4>>2]=0,Kr[u+8>>2]=0,E=u+88|0,n=u+136|0,t=u+160|0,i=u+184|0,_=u+208|0,o=u+232|0,T=u+252|0,Kr[T>>2]=0,Kr[T+4>>2]=0,Kr[T+8>>2]=0,Xr[T+12>>0]=0,T=u+268|0,Kr[T>>2]=0,Kr[T+4>>2]=0,Kr[T+8>>2]=0,Xr[T+12>>0]=0,T=u+284|0,Kr[T>>2]=0,Kr[T+4>>2]=0,Kr[T+8>>2]=0,Xr[T+12>>0]=0,T=E,l=T+44|0;do{Kr[T>>2]=0,T=T+4|0}while((0|T)<(0|l));return Xr[E+44>>0]=0,Kr[n>>2]=0,Kr[n+4>>2]=0,Kr[n+8>>2]=0,Kr[n+12>>2]=0,Kr[n+16>>2]=0,Xr[n+20>>0]=0,Kr[t>>2]=0,Kr[t+4>>2]=0,Kr[t+8>>2]=0,Kr[t+12>>2]=0,Kr[t+16>>2]=0,Xr[t+20>>0]=0,Kr[i>>2]=0,Kr[i+4>>2]=0,Kr[i+8>>2]=0,Kr[i+12>>2]=0,Kr[i+16>>2]=0,Xr[i+20>>0]=0,Kr[_>>2]=0,Kr[_+4>>2]=0,Kr[_+8>>2]=0,Kr[_+12>>2]=0,Kr[_+16>>2]=0,Xr[_+20>>0]=0,Kr[o>>2]=0,Kr[o+4>>2]=0,Kr[o+8>>2]=0,Kr[o+12>>2]=0,Xr[o+16>>0]=0,0|Y(u,e,r)?(l=u,on=c,0|l):(O(u),7&u?(Kr[f>>2]=866,Kr[f+4>>2]=2506,Kr[f+8>>2]=1232,He(a,812,f),ce(a),l=0,on=c, -0|l):(_e(u,0,0,1,0),l=0,on=c,0|l))}function b(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0,a=0,u=0;switch(a=on,on=on+576|0,_=a+40|0,i=a+56|0,u=a,Kr[u>>2]=40,G(e,r,u),t=(3+((0|Kr[u+4>>2])>>>n)|0)>>>2,r=(3+((0|Kr[u+8>>2])>>>n)|0)>>>2,n=u+32|0,e=0|Kr[n+4>>2],0|Kr[n>>2]){case 0:e?o=14:e=8;break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:o=e?14:13;break;case 9:case 10:e?o=14:e=8;break;default:o=14}return 13==(0|o)?e=16:14==(0|o)&&(Kr[_>>2]=866,Kr[_+4>>2]=2672,Kr[_+8>>2]=1251,He(i,812,_),ce(i),e=0),u=0|cn(0|cn(r,t),e),on=a,0|u}function F(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0;switch(i=on,on=on+576|0,t=i+40|0,n=i+56|0,_=i,Kr[_>>2]=40,G(e,r,_),r=_+32|0,e=0|Kr[r+4>>2],0|Kr[r>>2]){case 0:if(!e)return _=8,on=i,0|_;e=14;break;case 1:case 2:case 3:case 4:case 5:case 6:case 7:case 8:e=e?14:13;break;case 9:case 10:if(!e)return _=8,on=i,0|_;e=14;break;default:e=14}return 13==(0|e)?(_=16,on=i,0|_):14==(0|e)?(Kr[t>>2]=866,Kr[t+4>>2]=2672,Kr[t+8>>2]=1251,He(n,812,t),ce(n),_=0,on=i,0|_):0}function U(e,r,n,t,i,_,o){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0;var a=0,u=0,T=0,l=0;if(l=0|Kr[e+88>>2],u=(Zr[l+12>>0]<<8|Zr[l+13>>0])>>>o,T=(Zr[l+14>>0]<<8|Zr[l+15>>0])>>>o,u=((u>>>0>1?u:1)+3|0)>>>2,T=((T>>>0>1?T:1)+3|0)>>>2,l=l+18|0,o=0|Xr[l>>0],o=0|cn(u,o<<24>>24==0|o<<24>>24==9?8:16),_){if(!(0==(3&_|0)&o>>>0<=_>>>0))return 0|(i=0);o=_}if((0|cn(o,T))>>>0>i>>>0)return 0|(i=0);if(_=(u+1|0)>>>1,a=(T+1|0)>>>1,!n)return 0|(i=0);switch(Kr[e+92>>2]=r,Kr[e+96>>2]=r,Kr[e+104>>2]=n,Kr[e+100>>2]=r+n,Kr[e+108>>2]=0,Kr[e+112>>2]=0,0|Xr[l>>0]){case 0:if(!(0|E(e,t,i,o,u,T,_,a)))return 0|(i=0);break;case 4:case 6:case 5:case 3:case 2:if(!(0|c(e,t,i,o,u,T,_,a)))return 0|(i=0);break;case 9:if(!(0|R(e,t,i,o,u,T,_,a)))return 0|(i=0);break;case 8:case 7:if(!(0|f(e,t,i,o,u,T,_,a)))return 0|(i=0);break;default:return 0|(i=0)}return 0|(i=1)}function m(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0;if((0|n)>=8192)return 0|Pn(0|e,0|r,0|n);if(_=0|e,i=e+n|0,(3&e)==(3&r)){for(;3&e;){if(!n)return 0|_;Xr[e>>0]=0|Xr[r>>0],e=e+1|0,r=r+1|0,n=n-1|0}for(n=-4&i|0,t=n-64|0;(0|e)<=(0|t);)Kr[e>>2]=Kr[r>>2],Kr[e+4>>2]=Kr[r+4>>2],Kr[e+8>>2]=Kr[r+8>>2],Kr[e+12>>2]=Kr[r+12>>2],Kr[e+16>>2]=Kr[r+16>>2],Kr[e+20>>2]=Kr[r+20>>2],Kr[e+24>>2]=Kr[r+24>>2],Kr[e+28>>2]=Kr[r+28>>2],Kr[e+32>>2]=Kr[r+32>>2],Kr[e+36>>2]=Kr[r+36>>2],Kr[e+40>>2]=Kr[r+40>>2],Kr[e+44>>2]=Kr[r+44>>2],Kr[e+48>>2]=Kr[r+48>>2],Kr[e+52>>2]=Kr[r+52>>2],Kr[e+56>>2]=Kr[r+56>>2],Kr[e+60>>2]=Kr[r+60>>2],e=e+64|0,r=r+64|0;for(;(0|e)<(0|n);)Kr[e>>2]=Kr[r>>2],e=e+4|0,r=r+4|0}else for(n=i-4|0;(0|e)<(0|n);)Xr[e>>0]=0|Xr[r>>0],Xr[e+1>>0]=0|Xr[r+1>>0],Xr[e+2>>0]=0|Xr[r+2>>0],Xr[e+3>>0]=0|Xr[r+3>>0],e=e+4|0,r=r+4|0;for(;(0|e)<(0|i);)Xr[e>>0]=0|Xr[r>>0],e=e+1|0,r=r+1|0;return 0|_}function D(e){e|=0;var r=0,n=0,t=0,i=0;if(i=e+92|0,t=e+88|0,n=0|Kr[t>>2],r=(0|Kr[e+4>>2])+((0|Zr[n+68>>0])<<8|(0|Zr[n+67>>0])<<16|0|Zr[n+69>>0])|0,!(n=(0|Zr[n+65>>0])<<8|0|Zr[n+66>>0]))return 0|(i=0);if(Kr[i>>2]=r,Kr[e+96>>2]=r,Kr[e+104>>2]=n,Kr[e+100>>2]=r+n,Kr[e+108>>2]=0,Kr[e+112>>2]=0,!(0|a(i,e+116|0)))return 0|(i=0);r=0|Kr[t>>2];do{if((0|Zr[r+39>>0])<<8|0|Zr[r+40>>0]){if(!(0|a(i,e+140|0)))return 0|(i=0);if(0|a(i,e+188|0)){r=0|Kr[t>>2];break}return 0|(i=0)}if(!((0|Zr[r+55>>0])<<8|0|Zr[r+56>>0]))return 0|(i=0)}while(0);if((0|Zr[r+55>>0])<<8|0|Zr[r+56>>0]|0){if(!(0|a(i,e+164|0)))return 0|(i=0);if(!(0|a(i,e+212|0)))return 0|(i=0)}return 0|(i=1)}function p(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0;T=on,on=on+48|0,E=T+16|0,_=T,i=T+32|0,a=e+28|0,t=0|Kr[a>>2],Kr[i>>2]=t,u=e+20|0,t=(0|Kr[u>>2])-t|0,Kr[i+4>>2]=t,Kr[i+8>>2]=r,Kr[i+12>>2]=n,t=t+n|0,o=e+60|0,Kr[_>>2]=Kr[o>>2],Kr[_+4>>2]=i,Kr[_+8>>2]=2,_=0|$e(0|Fn(146,0|_));e:do{if((0|t)!=(0|_)){for(r=2;;){if((0|_)<0)break;if(t=t-_|0,l=0|Kr[i+4>>2],c=_>>>0>l>>>0,i=c?i+8|0:i,r=(c<<31>>31)+r|0,l=_-(c?l:0)|0,Kr[i>>2]=(0|Kr[i>>2])+l,c=i+4|0,Kr[c>>2]=(0|Kr[c>>2])-l,Kr[E>>2]=Kr[o>>2],Kr[E+4>>2]=i,Kr[E+8>>2]=r,_=0|$e(0|Fn(146,0|E)),(0|t)==(0|_)){f=3;break e}}Kr[e+16>>2]=0,Kr[a>>2]=0,Kr[u>>2]=0,Kr[e>>2]=32|Kr[e>>2],n=2==(0|r)?0:n-(0|Kr[i+4>>2])|0}else f=3}while(0);return 3==(0|f)&&(l=0|Kr[e+44>>2],Kr[e+16>>2]=l+(0|Kr[e+48>>2]),Kr[a>>2]=l,Kr[u>>2]=l),on=T,0|n}function B(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0,a=0,u=0;do{if(0|ur(e,0|Kr[r+8>>2],i))Fe(0,r,n,t);else{if(_=e+8|0,!(0|ur(e,0|Kr[r>>2],i))){a=0|Kr[_>>2],mn[3&Kr[24+(0|Kr[a>>2])>>2]](a,r,n,t,i);break}if(e=r+32|0,(0|Kr[r+16>>2])!=(0|n)?(o=r+20|0,(0|Kr[o>>2])!=(0|n)):0){if(Kr[e>>2]=t,t=r+44|0,4==(0|Kr[t>>2]))break;e=r+52|0,Xr[e>>0]=0,u=r+53|0,Xr[u>>0]=0,_=0|Kr[_>>2],kn[3&Kr[20+(0|Kr[_>>2])>>2]](_,r,n,n,1,i),0|Xr[u>>0]?0|Xr[e>>0]?e=3:(e=3,a=11):(e=4,a=11),11==(0|a)&&(Kr[o>>2]=n,u=r+40|0,Kr[u>>2]=1+(0|Kr[u>>2]),(1==(0|Kr[r+36>>2])?2==(0|Kr[r+24>>2]):0)&&(Xr[r+54>>0]=1)),Kr[t>>2]=e;break}1==(0|t)&&(Kr[e>>2]=1)}}while(0)}function v(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,a=0,u=0,E=0,f=0,T=0,c=0,l=0,s=0,A=0,R=0;R=on,on=on+224|0,T=R+120|0,c=R+80|0,s=R,A=R+136|0,t=c,i=t+40|0;do{Kr[t>>2]=0,t=t+4|0}while((0|t)<(0|i));return Kr[T>>2]=Kr[n>>2],(0|o(0,r,T,s,c))<0?n=-1:(l=(0|Kr[e+76>>2])>-1?0|kr(e):0,n=0|Kr[e>>2],f=32&n,(0|Xr[e+74>>0])<1&&(Kr[e>>2]=-33&n),t=e+48|0,0|Kr[t>>2]?n=0|o(e,r,T,s,c):(i=e+44|0,_=0|Kr[i>>2],Kr[i>>2]=A,a=e+28|0,Kr[a>>2]=A,u=e+20|0,Kr[u>>2]=A,Kr[t>>2]=80,E=e+16|0,Kr[E>>2]=A+80,n=0|o(e,r,T,s,c),_&&(Un[7&Kr[e+36>>2]](e,0,0),n=0==(0|Kr[u>>2])?-1:n,Kr[i>>2]=_,Kr[t>>2]=0,Kr[E>>2]=0,Kr[a>>2]=0,Kr[u>>2]=0)),t=0|Kr[e>>2],Kr[e>>2]=t|f,0|l&&vr(e),n=0==(32&t|0)?n:-1),on=R,0|n}function k(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0;c=on,on=on+64|0,f=c,E=0|Kr[e>>2],T=e+(0|Kr[E+-8>>2])|0,E=0|Kr[E+-4>>2],Kr[f>>2]=n,Kr[f+4>>2]=e,Kr[f+8>>2]=r,Kr[f+12>>2]=t,e=f+16|0,r=f+20|0,t=f+24|0,i=f+28|0,_=f+32|0,o=f+40|0,a=e,u=a+36|0;do{Kr[a>>2]=0,a=a+4|0}while((0|a)<(0|u));Yr[e+36>>1]=0,Xr[e+38>>0]=0;e:do{if(0|ur(E,n,0))Kr[f+48>>2]=1,kn[3&Kr[20+(0|Kr[E>>2])>>2]](E,f,T,T,1,0),e=1==(0|Kr[t>>2])?T:0;else{switch(mn[3&Kr[24+(0|Kr[E>>2])>>2]](E,f,T,1,0),0|Kr[f+36>>2]){case 0:e=1==(0|Kr[o>>2])&1==(0|Kr[i>>2])&1==(0|Kr[_>>2])?0|Kr[r>>2]:0;break e;case 1:break;default:e=0;break e}if(1!=(0|Kr[t>>2])?!(0==(0|Kr[o>>2])&1==(0|Kr[i>>2])&1==(0|Kr[_>>2])):0){e=0;break}e=0|Kr[e>>2]}}while(0);return on=c,0|e}function y(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,a=0,E=0;if(E=on,on=on+544|0,o=E+16|0,r=E,i=E+32|0,_=e+8|0,n=0|Kr[_>>2],(n+-1|0)>>>0>=8192&&(Kr[r>>2]=866,Kr[r+4>>2]=3006,Kr[r+8>>2]=1257,He(i,812,r),ce(i)),Kr[e>>2]=n,t=e+20|0,r=0|Kr[t>>2],r?a=n:(r=0|j(180,0),r?(a=r+164|0,Kr[a>>2]=0,Kr[a+4>>2]=0,Kr[a+8>>2]=0,Kr[a+12>>2]=0):r=0,Kr[t>>2]=r,a=0|Kr[e>>2]),0|Kr[_>>2]?o=a:(Kr[o>>2]=866,Kr[o+4>>2]=910,Kr[o+8>>2]=1497,He(i,812,o),ce(i),o=0|Kr[e>>2]),i=0|Kr[e+4>>2],!(o>>>0>16))return e=0,e=0|u(r,a,i,e),on=E,0|e;for(n=o,t=0;;){if(_=t+1|0,!(n>>>0>3))break;n>>>=1,t=_}return e=t+2+(32!=(0|_)&1<<_>>>0<o>>>0&1)|0,e=255&(e>>>0<11?e:11),e=0|u(r,a,i,e),on=E,0|e}function g(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0,a=0,u=0,E=0,f=0,T=0,c=0;c=1794895138+(0|Kr[e>>2])|0,_=0|Er(0|Kr[e+8>>2],c),t=0|Er(0|Kr[e+12>>2],c),i=0|Er(0|Kr[e+16>>2],c);e:do{if((_>>>0<r>>>2>>>0?(T=r-(_<<2)|0,t>>>0<T>>>0&i>>>0<T>>>0):0)?0==(3&(i|t)|0):0){for(T=t>>>2,f=i>>>2,E=0;;){if(a=_>>>1,u=E+a|0,o=u<<1,i=o+T|0,t=0|Er(0|Kr[e+(i<<2)>>2],c),!((i=0|Er(0|Kr[e+(i+1<<2)>>2],c))>>>0<r>>>0&t>>>0<(r-i|0)>>>0)){t=0;break e}if(0|Xr[e+(i+t)>>0]){t=0;break e}if(!(t=0|Me(n,e+i|0)))break;if(t=(0|t)<0,1==(0|_)){t=0;break e}E=t?E:u,_=t?a:_-a|0}t=o+f|0,i=0|Er(0|Kr[e+(t<<2)>>2],c),t=0|Er(0|Kr[e+(t+1<<2)>>2],c),t=t>>>0<r>>>0&i>>>0<(r-t|0)>>>0&&0==(0|Xr[e+(t+i)>>0])?e+t|0:0}else t=0}while(0);return 0|t}function w(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0,a=0,u=0;a=on,on=on+576|0,_=a+48|0,o=a+32|0,t=a+16|0,n=a,i=a+64|0,r=0|Kr[e+168>>2];do{if(0|r){if(u=0|Kr[r+-4>>2],r=r+-8|0,(0!=(0|u)?(0|u)==(0|~Kr[r>>2]):0)||(Kr[n>>2]=866,Kr[n+4>>2]=651,Kr[n+8>>2]=1579,He(i,812,n),ce(i)),7&r){Kr[t>>2]=866,Kr[t+4>>2]=2506,Kr[t+8>>2]=1232,He(i,812,t),ce(i);break}_e(r,0,0,1,0);break}}while(0);return(r=0|Kr[e+176>>2])?(u=0|Kr[r+-4>>2],r=r+-8|0,(0!=(0|u)?(0|u)==(0|~Kr[r>>2]):0)||(Kr[o>>2]=866,Kr[o+4>>2]=651,Kr[o+8>>2]=1579,He(i,812,o),ce(i)),7&r?(Kr[_>>2]=866,Kr[_+4>>2]=2506,Kr[_+8>>2]=1232,He(i,812,_),ce(i),void(on=a)):(_e(r,0,0,1,0),void(on=a))):void(on=a)}function G(e,r,n){e|=0,r|=0,n|=0;var t=0;return 0!=(0|e)&r>>>0>73&0!=(0|n)?40!=(0|Kr[n>>2])?0|(n=0):18552!=((0|Zr[e>>0])<<8|0|Zr[e+1>>0]|0)?0|(n=0):((0|Zr[e+2>>0])<<8|0|Zr[e+3>>0])>>>0<74?0|(n=0):((0|Zr[e+7>>0])<<16|(0|Zr[e+6>>0])<<24|(0|Zr[e+8>>0])<<8|0|Zr[e+9>>0])>>>0>r>>>0?0|(n=0):(Kr[n+4>>2]=(0|Zr[e+12>>0])<<8|0|Zr[e+13>>0],Kr[n+8>>2]=(0|Zr[e+14>>0])<<8|0|Zr[e+15>>0],Kr[n+12>>2]=Zr[e+16>>0],Kr[n+16>>2]=Zr[e+17>>0],r=e+18|0,t=n+32|0,Kr[t>>2]=Zr[r>>0],Kr[t+4>>2]=0,r=0|Xr[r>>0],Kr[n+20>>2]=r<<24>>24==0|r<<24>>24==9?8:16,Kr[n+24>>2]=(0|Zr[e+26>>0])<<16|(0|Zr[e+25>>0])<<24|(0|Zr[e+27>>0])<<8|0|Zr[e+28>>0],Kr[n+28>>2]=(0|Zr[e+30>>0])<<16|(0|Zr[e+29>>0])<<24|(0|Zr[e+31>>0])<<8|0|Zr[e+32>>0],0|(n=1)):0|(n=0)}function H(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0;if(E=on,on=on+544|0,a=E+16|0,n=E,o=E+32|0,r>>>0>=33&&(Kr[n>>2]=866,Kr[n+4>>2]=3199,Kr[n+8>>2]=1350,He(o,812,n),ce(o)),u=e+20|0,(0|(n=0|Kr[u>>2]))>=(0|r))return i=e+16|0,_=i,i=0|Kr[i>>2],o=n,a=32-r|0,a=i>>>a,i<<=r,Kr[_>>2]=i,r=o-r|0,Kr[u>>2]=r,on=E,0|a;i=e+4|0,_=e+8|0,t=e+16|0;do{e=0|Kr[i>>2],(0|e)==(0|Kr[_>>2])?e=0:(Kr[i>>2]=e+1,e=0|Zr[e>>0]),n=n+8|0,Kr[u>>2]=n,(0|n)>=33&&(Kr[a>>2]=866,Kr[a+4>>2]=3208,Kr[a+8>>2]=1366,He(o,812,a),ce(o),n=0|Kr[u>>2]),e=e<<32-n|Kr[t>>2],Kr[t>>2]=e}while((0|n)<(0|r));return a=32-r|0,a=e>>>a,o=e<<r,Kr[t>>2]=o,r=n-r|0,Kr[u>>2]=r,on=E,0|a}function X(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0;_=255&r,t=0!=(0|n);e:do{if(t&0!=(3&e|0))for(i=255&r;;){if((0|Xr[e>>0])==i<<24>>24){o=6;break e}if(e=e+1|0,n=n+-1|0,!((t=0!=(0|n))&0!=(3&e|0))){o=5;break}}else o=5}while(0);5==(0|o)&&(t?o=6:n=0);e:do{if(6==(0|o)&&(i=255&r,(0|Xr[e>>0])!=i<<24>>24)){t=0|cn(_,16843009);r:do{if(n>>>0>3)for(;;){if((-2139062144&(_=Kr[e>>2]^t)^-2139062144)&_+-16843009|0)break;if(e=e+4|0,(n=n+-4|0)>>>0<=3){o=11;break r}}else o=11}while(0);if(11==(0|o)&&!n){n=0;break}for(;;){if((0|Xr[e>>0])==i<<24>>24)break e;if(e=e+1|0,!(n=n+-1|0)){n=0;break}}}}while(0);return 0|(0|n?e:0)}function V(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0,a=0,u=0,E=0,f=0;return f=on,on=on+528|0,E=f,u=f+16|0,o=0|Kr[e+88>>2],a=(0|Zr[o+70+(i<<2)+1>>0])<<16|(0|Zr[o+70+(i<<2)>>0])<<24|(0|Zr[o+70+(i<<2)+2>>0])<<8|0|Zr[o+70+(i<<2)+3>>0],_=i+1|0,(_=_>>>0<(0|Zr[o+16>>0])>>>0?(0|Zr[o+70+(_<<2)+1>>0])<<16|(0|Zr[o+70+(_<<2)>>0])<<24|(0|Zr[o+70+(_<<2)+2>>0])<<8|0|Zr[o+70+(_<<2)+3>>0]:0|Kr[e+8>>2])>>>0>a>>>0?(u=e+4|0,u=0|Kr[u>>2],u=u+a|0,E=_-a|0,E=0|U(e,u,E,r,n,t,i),on=f,0|E):(Kr[E>>2]=866,Kr[E+4>>2]=3694,Kr[E+8>>2]=1508,He(u,812,E),ce(u),u=e+4|0,u=0|Kr[u>>2],u=u+a|0,E=_-a|0,E=0|U(e,u,E,r,n,t,i),on=f,0|E)}function Y(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0;if(((0==(0|r)|n>>>0<74?0:18552==((0|Zr[r>>0])<<8|0|Zr[r+1>>0]|0))?((0|Zr[r+2>>0])<<8|0|Zr[r+3>>0])>>>0>=74:0)?((0|Zr[r+7>>0])<<16|(0|Zr[r+6>>0])<<24|(0|Zr[r+8>>0])<<8|0|Zr[r+9>>0])>>>0<=n>>>0:0){if(t=e+88|0,Kr[t>>2]=r,Kr[e+4>>2]=r,Kr[e+8>>2]=n,!(0|D(e)))return 0|(i=0);if(r=0|Kr[t>>2],(0|Zr[r+39>>0])<<8|0|Zr[r+40>>0]?(0|N(e)?0|A(e):0)&&(r=0|Kr[t>>2],i=11):i=11,11==(0|i)){if(!((0|Zr[r+55>>0])<<8|0|Zr[r+56>>0]))return 0|(i=1);if(0|h(e)?0|s(e):0)return 0|(i=1)}return 0|(i=0)}return Kr[e+88>>2]=0,0|(i=0)}function x(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0,E=0;if(E=on,on=on+528|0,o=E,_=E+16|0,!r)return u=0,on=E,0|u;if(r>>>0<=16)return u=0|H(e,r),on=E,0|u;if(a=0|H(e,r+-16|0),u=e+20|0,(0|(r=0|Kr[u>>2]))<16){t=e+4|0,i=e+8|0,n=e+16|0;do{e=0|Kr[t>>2],(0|e)==(0|Kr[i>>2])?e=0:(Kr[t>>2]=e+1,e=0|Zr[e>>0]),r=r+8|0,Kr[u>>2]=r,(0|r)>=33&&(Kr[o>>2]=866,Kr[o+4>>2]=3208,Kr[o+8>>2]=1366,He(_,812,o),ce(_),r=0|Kr[u>>2]),e=e<<32-r|Kr[n>>2],Kr[n>>2]=e}while((0|r)<16)}else e=e+16|0,n=e,e=0|Kr[e>>2];return Kr[n>>2]=e<<16,Kr[u>>2]=r+-16,u=e>>>16|a<<16,on=E,0|u}function K(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0,a=0;t=n+16|0,i=0|Kr[t>>2],i?_=5:0|de(n)?t=0:(i=0|Kr[t>>2],_=5);e:do{if(5==(0|_)){if(a=n+20|0,o=0|Kr[a>>2],t=o,(i-o|0)>>>0<r>>>0){t=0|Un[7&Kr[n+36>>2]](n,e,r);break}r:do{if((0|Xr[n+75>>0])>-1){for(o=r;;){if(!o){_=0,i=e;break r}if(i=o+-1|0,10==(0|Xr[e+i>>0]))break;o=i}if((t=0|Un[7&Kr[n+36>>2]](n,e,o))>>>0<o>>>0)break e;_=o,i=e+o|0,r=r-o|0,t=0|Kr[a>>2]}else _=0,i=e}while(0);m(0|t,0|i,0|r),Kr[a>>2]=(0|Kr[a>>2])+r,t=_+r|0}}while(0);return 0|t}function W(e,r,n){e|=0,r|=0,n|=0;do{if(e){if(r>>>0<128){Xr[e>>0]=r,e=1;break}if(n=188+(0|br())|0,!(0|Kr[Kr[n>>2]>>2])){if(57216==(-128&r|0)){Xr[e>>0]=r,e=1;break}e=0|Pr(),Kr[e>>2]=84,e=-1;break}if(r>>>0<2048){Xr[e>>0]=r>>>6|192,Xr[e+1>>0]=63&r|128,e=2;break}if(r>>>0<55296|57344==(-8192&r|0)){Xr[e>>0]=r>>>12|224,Xr[e+1>>0]=r>>>6&63|128,Xr[e+2>>0]=63&r|128,e=3;break}if((r+-65536|0)>>>0<1048576){Xr[e>>0]=r>>>18|240,Xr[e+1>>0]=r>>>12&63|128,Xr[e+2>>0]=r>>>6&63|128,Xr[e+3>>0]=63&r|128,e=4;break}e=0|Pr(),Kr[e>>2]=84,e=-1;break}e=1}while(0);return 0|e}function Z(){var e=0,r=0,n=0,t=0,i=0,_=0,o=0,a=0;i=on,on=on+48|0,o=i+32|0,n=i+24|0,a=i+16|0,_=i,i=i+36|0,e=0|ye(),(0|e?0|(t=0|Kr[e>>2]):0)&&(e=t+48|0,r=0|Kr[e>>2],e=0|Kr[e+4>>2],1126902528==(-256&r|0)&1129074247==(0|e)||(Kr[n>>2]=4168,Ke(4118,n)),e=1126902529==(0|r)&1129074247==(0|e)?0|Kr[t+44>>2]:t+80|0,Kr[i>>2]=e,t=0|Kr[t>>2],e=0|Kr[t+4>>2],0|Un[7&Kr[16+(0|Kr[2])>>2]](8,t,i)?(a=0|Kr[i>>2],a=0|pn[1&Kr[8+(0|Kr[a>>2])>>2]](a),Kr[_>>2]=4168,Kr[_+4>>2]=e,Kr[_+8>>2]=a,Ke(4032,_)):(Kr[a>>2]=4168,Kr[a+4>>2]=e,Ke(4077,a))),Ke(4156,o)}function z(e){e|=0;var r=0,n=0,t=0,i=0,_=0;_=on,on=on+544|0,i=_+16|0,n=_,t=_+32|0,r=0|Kr[e+20>>2];do{if(0|r){if(w(r),7&r){Kr[n>>2]=866,Kr[n+4>>2]=2506,Kr[n+8>>2]=1232,He(t,812,n),ce(t);break}_e(r,0,0,1,0);break}}while(0);if(r=e+4|0,!(n=0|Kr[r>>2]))return i=e+16|0,Xr[i>>0]=0,void(on=_);7&n?(Kr[i>>2]=866,Kr[i+4>>2]=2506,Kr[i+8>>2]=1232,He(t,812,i),ce(t)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+8>>2]=0,Kr[e+12>>2]=0,i=e+16|0,Xr[i>>0]=0,on=_}function j(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0;return u=on,on=on+560|0,a=u+32|0,o=u+16|0,n=u,_=u+48|0,i=u+44|0,t=e+3&-4,(t=0|t?t:4)>>>0>2147418112?(Kr[n>>2]=866,Kr[n+4>>2]=2506,Kr[n+8>>2]=1103,He(_,812,n),ce(_),a=0,on=u,0|a):(Kr[i>>2]=t,e=0|_e(0,t,i,1,0),n=0|Kr[i>>2],0|r&&(Kr[r>>2]=n),0==(0|e)|n>>>0<t>>>0?(Kr[o>>2]=866,Kr[o+4>>2]=2506,Kr[o+8>>2]=1129,He(_,812,o),ce(_),e=0):7&e&&(Kr[a>>2]=866,Kr[a+4>>2]=2533,Kr[a+8>>2]=1156,He(_,812,a),ce(_)),a=e,on=u,0|a)}function J(e){e|=0;var r=0,n=0,t=0,i=0,_=0,o=0;if(o=on,on=on+544|0,_=o+16|0,t=o,i=o+32|0,Kr[e>>2]=0,r=e+4|0,n=0|Kr[r>>2],0|n&&(7&n?(Kr[t>>2]=866,Kr[t+4>>2]=2506,Kr[t+8>>2]=1232,He(i,812,t),ce(i)):_e(n,0,0,1,0),Kr[r>>2]=0,Kr[e+8>>2]=0,Kr[e+12>>2]=0),Xr[e+16>>0]=0,e=e+20|0,!(r=0|Kr[e>>2]))return void(on=o);w(r),7&r?(Kr[_>>2]=866,Kr[_+4>>2]=2506,Kr[_+8>>2]=1232,He(i,812,_),ce(i)):_e(r,0,0,1,0),Kr[e>>2]=0,on=o}function Q(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0,o=0,a=0,u=0,E=0,f=0;f=on,on=on+128|0,i=f+124|0,E=f,_=E,o=604,a=_+124|0;do{Kr[_>>2]=Kr[o>>2],_=_+4|0,o=o+4|0}while((0|_)<(0|a));return(r+-1|0)>>>0>2147483646?r?(r=0|Pr(),Kr[r>>2]=75,r=-1):(e=i,r=1,u=4):u=4,4==(0|u)&&(u=-2-e|0,u=r>>>0>u>>>0?u:r,Kr[E+48>>2]=u,i=E+20|0,Kr[i>>2]=e,Kr[E+44>>2]=e,r=e+u|0,e=E+16|0,Kr[e>>2]=r,Kr[E+28>>2]=r,r=0|v(E,n,t),u&&(E=0|Kr[i>>2],Xr[E+(((0|E)==(0|Kr[e>>2]))<<31>>31)>>0]=0)),on=f,0|r}function q(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0,o=0,a=0,u=0,E=0;return E=on,on=on+560|0,u=E+32|0,_=E+16|0,i=E,o=E+48|0,a=E+44|0,7&e|0?(Kr[i>>2]=866,Kr[i+4>>2]=2506,Kr[i+8>>2]=1210,He(o,812,i),ce(o),u=0,on=E,0|u):r>>>0>2147418112?(Kr[_>>2]=866,Kr[_+4>>2]=2506,Kr[_+8>>2]=1103,He(o,812,_),ce(o),u=0,on=E,0|u):(Kr[a>>2]=r,e=0|_e(e,r,a,t,0),0|n&&(Kr[n>>2]=Kr[a>>2]),7&e|0&&(Kr[u>>2]=866,Kr[u+4>>2]=2558,Kr[u+8>>2]=1156,He(o,812,u),ce(o)),u=e,on=E,0|u)}function $(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0;do{if(0|ur(e,0|Kr[r+8>>2],i))Fe(0,r,n,t);else if(0|ur(e,0|Kr[r>>2],i)){if(e=r+32|0,(0|Kr[r+16>>2])!=(0|n)?(_=r+20|0,(0|Kr[_>>2])!=(0|n)):0){Kr[e>>2]=t,Kr[_>>2]=n,t=r+40|0,Kr[t>>2]=1+(0|Kr[t>>2]),(1==(0|Kr[r+36>>2])?2==(0|Kr[r+24>>2]):0)&&(Xr[r+54>>0]=1),Kr[r+44>>2]=4;break}1==(0|t)&&(Kr[e>>2]=1)}}while(0)}function ee(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0;if(_=e+n|0,r&=255,(0|n)>=67){for(;3&e;)Xr[e>>0]=r,e=e+1|0;for(t=-4&_|0,i=t-64|0,o=r|r<<8|r<<16|r<<24;(0|e)<=(0|i);)Kr[e>>2]=o,Kr[e+4>>2]=o,Kr[e+8>>2]=o,Kr[e+12>>2]=o,Kr[e+16>>2]=o,Kr[e+20>>2]=o,Kr[e+24>>2]=o,Kr[e+28>>2]=o,Kr[e+32>>2]=o,Kr[e+36>>2]=o,Kr[e+40>>2]=o,Kr[e+44>>2]=o,Kr[e+48>>2]=o,Kr[e+52>>2]=o,Kr[e+56>>2]=o,Kr[e+60>>2]=o,e=e+64|0;for(;(0|e)<(0|t);)Kr[e>>2]=o,e=e+4|0}for(;(0|e)<(0|_);)Xr[e>>0]=r,e=e+1|0;return _-n|0}function re(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0,a=0,u=0;Xr[r+53>>0]=1;do{if((0|Kr[r+4>>2])==(0|t)){if(Xr[r+52>>0]=1,t=r+16|0,_=0|Kr[t>>2],a=r+54|0,u=r+48|0,o=r+24|0,e=r+36|0,!_){if(Kr[t>>2]=n,Kr[o>>2]=i,Kr[e>>2]=1,!(1==(0|Kr[u>>2])&1==(0|i)))break;Xr[a>>0]=1;break}if((0|_)!=(0|n)){Kr[e>>2]=1+(0|Kr[e>>2]),Xr[a>>0]=1;break}e=0|Kr[o>>2],2==(0|e)&&(Kr[o>>2]=i,e=i),1==(0|Kr[u>>2])&1==(0|e)&&(Xr[a>>0]=1)}}while(0)}function ne(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0,o=0;if(o=on,on=on+64|0,i=o,0|ur(e,r,0))r=1;else if(0!=(0|r)?0!=(0|(_=0|k(r,32,16,0))):0){r=i+4|0,t=r+52|0;do{Kr[r>>2]=0,r=r+4|0}while((0|r)<(0|t));Kr[i>>2]=_,Kr[i+8>>2]=e,Kr[i+12>>2]=-1,Kr[i+48>>2]=1,yn[3&Kr[28+(0|Kr[_>>2])>>2]](_,i,0|Kr[n>>2],1),1==(0|Kr[i+24>>2])?(Kr[n>>2]=Kr[i+16>>2],r=1):r=0}else r=0;return on=o,0|r}function te(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0;u=on,on=on+16|0,o=u,a=255&r,Xr[o>>0]=a,t=e+16|0,i=0|Kr[t>>2],i?_=4:0|de(e)?n=-1:(i=0|Kr[t>>2],_=4);do{if(4==(0|_)){if(_=e+20|0,t=0|Kr[_>>2],t>>>0<i>>>0?(0|(n=255&r))!=(0|Xr[e+75>>0]):0){Kr[_>>2]=t+1,Xr[t>>0]=a;break}n=1==(0|Un[7&Kr[e+36>>2]](e,o,1))?0|Zr[o>>0]:-1}}while(0);return on=u,0|n}function ie(e,r){e|=0,r|=0;var n=0,t=0,i=0,_=0,o=0,a=0,u=0;a=255&e,n=255&e,((0|Kr[r+76>>2])>=0?0!=(0|kr(r)):0)?(((0|n)!=(0|Xr[r+75>>0])?(_=r+20|0,(o=0|Kr[_>>2])>>>0<(0|Kr[r+16>>2])>>>0):0)?(Kr[_>>2]=o+1,Xr[o>>0]=a):n=0|te(r,e),vr(r)):u=3;do{if(3==(0|u)){if((0|n)!=(0|Xr[r+75>>0])?(t=r+20|0,(i=0|Kr[t>>2])>>>0<(0|Kr[r+16>>2])>>>0):0){Kr[t>>2]=i+1,Xr[i>>0]=a;break}n=0|te(r,e)}}while(0);return 0|n}function _e(e,r,n,t,_){e|=0,r|=0,n|=0,t|=0,_|=0;do{if(e){if(!r){if(T(e),!n){r=0;break}Kr[n>>2]=0,r=0;break}t?(r=0|fe(e,r),e=0==(0|r)?e:r):r=0,n&&(_=0|Ge(e),Kr[n>>2]=_)}else r=0|i(r),n&&(e=r?0|Ge(r):0,Kr[n>>2]=e)}while(0);return 0|r}function oe(e){e|=0;var r=0,n=0,t=0;t=e;e:do{if(3&t)for(r=t;;){if(!(0|Xr[e>>0])){e=r;break e}if(e=e+1|0,!(3&(r=e))){n=4;break}}else n=4}while(0);if(4==(0|n)){for(;;){if((-2139062144&(r=0|Kr[e>>2])^-2139062144)&r+-16843009)break;e=e+4|0}if((255&r)<<24>>24)do{e=e+1|0}while(0!=(0|Xr[e>>0]))}return e-t|0}function ae(e,r){e=+e,r|=0;var n=0,t=0,i=0;switch(rn[_n>>3]=e,n=0|Kr[_n>>2],t=0|Kr[_n+4>>2],2047&(i=0|xe(0|n,0|t,52))){case 0:0!=e?(e=+ae(0x10000000000000000*e,r),n=(0|Kr[r>>2])-64|0):n=0,Kr[r>>2]=n;break;case 2047:break;default:Kr[r>>2]=(2047&i)-1022,Kr[_n>>2]=n,Kr[_n+4>>2]=-2146435073&t|1071644672,e=+rn[_n>>3]}return+e}function ue(e,r){e|=0,r|=0;var n=0,t=0;for(t=0;;){if((0|Zr[2140+t>>0])==(0|e)){e=2;break}if(87==(0|(n=t+1|0))){n=2228,t=87,e=5;break}t=n}if(2==(0|e)&&(t?(n=2228,e=5):n=2228),5==(0|e))for(;;){do{e=n,n=n+1|0}while(0!=(0|Xr[e>>0]));if(!(t=t+-1|0))break;e=5}return 0|Nr(n,0|Kr[r+20>>2])}function Ee(e,r,n){e|=0,r|=0,n|=0;var t=0;if(r>>>0>0|0==(0|r)&e>>>0>4294967295){for(;;){if(t=0|De(0|e,0|r,10,0),n=n+-1|0,Xr[n>>0]=255&t|48,t=e,e=0|fr(0|e,0|r,10,0),!(r>>>0>9|9==(0|r)&t>>>0>4294967295))break;r=Tn}r=e}else r=e;if(r)for(;;){if(n=n+-1|0,Xr[n>>0]=48|(r>>>0)%10,r>>>0<10)break;r=(r>>>0)/10|0}return 0|n}function fe(e,r){e|=0,r|=0;var n=0,t=0;return e?r>>>0>4294967231?(r=0|Pr(),Kr[r>>2]=12,0|(r=0)):0|(n=0|M(e+-8|0,r>>>0<11?16:r+11&-8))?0|(r=n+8|0):(n=0|i(r))?(t=0|Kr[e+-4>>2],t=(-8&t)-(0==(3&t|0)?8:4)|0,m(0|n,0|e,0|(t>>>0<r>>>0?t:r)),T(e),0|(r=n)):0|(r=0):0|(r=0|i(r))}function Te(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0,o=0;e=r+16|0,i=0|Kr[e>>2],_=r+36|0,o=r+24|0;do{if(i){if((0|i)!=(0|n)){Kr[_>>2]=1+(0|Kr[_>>2]),Kr[o>>2]=2,Xr[r+54>>0]=1;break}2==(0|Kr[o>>2])&&(Kr[o>>2]=t)}else Kr[e>>2]=n,Kr[o>>2]=t,Kr[_>>2]=1}while(0)}function ce(e){e|=0;var r=0,n=0,t=0,i=0;t=0|Kr[119],i=(0|Kr[t+76>>2])>-1?0|kr(t):0;do{if((0|nr(e,t))<0)e=1;else{if(10!=(0|Xr[t+75>>0])?(r=t+20|0,(n=0|Kr[r>>2])>>>0<(0|Kr[t+16>>2])>>>0):0){Kr[r>>2]=n+1,Xr[n>>0]=10,e=0;break}e=(0|te(t,10))<0}}while(0);return 0|i&&vr(t),e<<31>>31|0}function le(e,r,n,t,i,_){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,0|ur(e,0|Kr[r+8>>2],_)?re(0,r,n,t,i):(e=0|Kr[e+8>>2],kn[3&Kr[20+(0|Kr[e>>2])>>2]](e,r,n,t,i,_))}function se(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0;var _=0,o=0;if(o=on,on=on+256|0,_=o,(0|n)>(0|t)&0==(73728&i|0)){if(i=n-t|0,ee(0|_,0|r,0|(i>>>0<256?i:256)),i>>>0>255){r=n-t|0;do{tr(e,_,256),i=i+-256|0}while(i>>>0>255);i=255&r}tr(e,_,i)}on=o}function Ae(e,r,n,t){e|=0,r|=0,n|=0,t|=0,0|ur(e,0|Kr[r+8>>2],0)?Te(0,r,n,t):(e=0|Kr[e+8>>2],yn[3&Kr[28+(0|Kr[e>>2])>>2]](e,r,n,t))}function Re(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0,_=0;return i=on,on=on+32|0,_=i,t=i+20|0,Kr[_>>2]=Kr[e+60>>2],Kr[_+4>>2]=0,Kr[_+8>>2]=r,Kr[_+12>>2]=t,Kr[_+16>>2]=n,(0|$e(0|bn(140,0|_)))<0?(Kr[t>>2]=-1,e=-1):e=0|Kr[t>>2],on=i,0|e}function de(e){e|=0;var r=0,n=0;return r=e+74|0,n=0|Xr[r>>0],Xr[r>>0]=n+255|n,r=0|Kr[e>>2],8&r?(Kr[e>>2]=32|r,e=-1):(Kr[e+8>>2]=0,Kr[e+4>>2]=0,n=0|Kr[e+44>>2],Kr[e+28>>2]=n,Kr[e+20>>2]=n,Kr[e+16>>2]=n+(0|Kr[e+48>>2]),e=0),0|e}function Me(e,r){e|=0,r|=0;var n=0,t=0;if(n=0|Xr[e>>0],t=0|Xr[r>>0],n<<24>>24==0?1:n<<24>>24!=t<<24>>24)e=t;else{do{e=e+1|0,r=r+1|0,n=0|Xr[e>>0],t=0|Xr[r>>0]}while(!(n<<24>>24==0?1:n<<24>>24!=t<<24>>24));e=t}return(255&n)-(255&e)|0}function Se(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0;return i=on,on=on+32|0,t=i,Kr[e+36>>2]=1,(0==(64&Kr[e>>2]|0)?(Kr[t>>2]=Kr[e+60>>2],Kr[t+4>>2]=21523,Kr[t+8>>2]=i+16,0|Sn(54,0|t)):0)&&(Xr[e+75>>0]=-1),t=0|p(e,r,n),on=i,0|t}function Ne(e){e|=0;var r=0,n=0;return n=e+15&-16|0,r=0|Kr[tn>>2],e=r+n|0,(0|n)>0&(0|e)<(0|r)|(0|e)<0?(dn(),On(12),-1):(Kr[tn>>2]=e,((0|e)>(0|Rn())?0==(0|An()):0)?(Kr[tn>>2]=r,On(12),-1):0|r)}function Ie(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0;return i=0|cn(n,r),n=0==(0|r)?0:n,(0|Kr[t+76>>2])>-1?(_=0==(0|kr(t)),e=0|K(e,i,t),_||vr(t)):e=0|K(e,i,t),(0|e)!=(0|i)&&(n=(e>>>0)/(r>>>0)|0),0|n}function Oe(e,r,n,t,i,_){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,0|ur(e,0|Kr[r+8>>2],_)&&re(0,r,n,t,i)}function Ce(e,r,n,t){e|=0,r|=0,n|=0,t|=0,0|ur(e,0|Kr[r+8>>2],0)&&Te(0,r,n,t)}function he(e){e|=0;var r=0,n=0,t=0;if(n=0|Kr[e>>2],(t=(0|Xr[n>>0])-48|0)>>>0<10){r=0;do{r=t+(10*r|0)|0,n=n+1|0,Kr[e>>2]=n,t=(0|Xr[n>>0])-48|0}while(t>>>0<10)}else r=0;return 0|r}function Pe(e,r,n,t){if(e|=0,r|=0,n|=0,t|=0,!(0==(0|e)&0==(0|r)))do{n=n+-1|0,Xr[n>>0]=0|Zr[2122+(15&e)>>0]|t,e=0|xe(0|e,0|r,4),r=Tn}while(!(0==(0|e)&0==(0|r)));return 0|n}function Le(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0;return i=on,on=on+16|0,t=i,Kr[t>>2]=Kr[n>>2],e=0|Un[7&Kr[16+(0|Kr[e>>2])>>2]](e,r,t),e&&(Kr[n>>2]=Kr[t>>2]),on=i,1&e|0}function be(e){e|=0;var r=0;return(0|(r=0|Xr[un+(255&e)>>0]))<8?0|r:(0|(r=0|Xr[un+(e>>8&255)>>0]))<8?r+8|0:(r=0|Xr[un+(e>>16&255)>>0],(0|r)<8?r+16|0:24+(0|Xr[un+(e>>>24)>>0])|0)}function Fe(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0;((0|Kr[r+4>>2])==(0|n)?(i=r+28|0,1!=(0|Kr[i>>2])):0)&&(Kr[i>>2]=t)}function Ue(e,r,n){if(e|=0,r|=0,n|=0,!(0==(0|e)&0==(0|r)))do{n=n+-1|0,Xr[n>>0]=7&e|48,e=0|xe(0|e,0|r,3),r=Tn}while(!(0==(0|e)&0==(0|r)));return 0|n}function me(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0;return t=e+20|0,i=0|Kr[t>>2],e=(0|Kr[e+16>>2])-i|0,e=e>>>0>n>>>0?n:e,m(0|i,0|r,0|e),Kr[t>>2]=(0|Kr[t>>2])+e,0|n}function De(e,r,n,t){e|=0,r|=0,n|=0,t|=0;var i=0,_=0;return _=on,on=on+16|0,i=0|_,d(e,r,n,t,i),on=_,0|(Tn=0|Kr[i+4>>2],0|Kr[i>>2])}function pe(e,r){e|=0,r|=0;var n=0,t=0;return t=on,on=on+48|0,n=t,Kr[n>>2]=40,G(e,r,n),on=t,0|Kr[n+32>>2]}function Be(e,r){e|=0,r|=0;var n=0,t=0;return t=on,on=on+48|0,n=t,Kr[n>>2]=40,G(e,r,n),on=t,0|Kr[n+12>>2]}function ve(e,r){e|=0,r|=0;var n=0,t=0;return t=on,on=on+48|0,n=t,Kr[n>>2]=40,G(e,r,n),on=t,0|Kr[n+8>>2]}function ke(e,r){e|=0,r|=0;var n=0,t=0;return t=on,on=on+48|0,n=t,Kr[n>>2]=40,G(e,r,n),on=t,0|Kr[n+4>>2]}function ye(){var e=0,r=0;return e=on,on=on+16|0,0|hn(5136,2)?(Ke(4307,e),0):(r=0|Mn(0|Kr[1285]),on=e,0|r)}function ge(e){e|=0;var r=0,n=0;return r=on,on=on+16|0,n=r,e=0|Dr(0|Kr[e+60>>2]),Kr[n>>2]=e,e=0|$e(0|In(6,0|n)),on=r,0|e}function we(e){e|=0;var r=0;if(r=on,on=on+16|0,T(e),!(0|Nn(0|Kr[1285],0)))return void(on=r);Ke(4406,r)}function Ge(e){e|=0;var r=0;return e?(r=0|Kr[e+-4>>2],e=3&r,0|(1==(0|e)?0:(-8&r)-(0==(0|e)?8:4)|0)):0}function He(e,r,n){e|=0,r|=0,n|=0;var t=0,i=0;return t=on,on=on+16|0,i=t,Kr[i>>2]=n,n=0|sr(e,r,i),on=t,0|n}function Xe(e,r,n,t,i,_,o){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,o|=0,kn[3&e](0|r,0|n,0|t,0|i,0|_,0|o)}function Ve(){var e=0;if(e=on,on=on+16|0,!(0|Ln(5140,6)))return void(on=e);Ke(4356,e)}function Ye(e,r,n){return e|=0,r|=0,(0|(n|=0))<32?(Tn=r<<n|(e&(1<<n)-1<<32-n)>>>32-n,e<<n):(Tn=e<<n-32,0)}function xe(e,r,n){return e|=0,r|=0,(0|(n|=0))<32?(Tn=r>>>n,e>>>n|(r&(1<<n)-1)<<32-n):(Tn=0,r>>>n-32|0)}function Ke(e,r){e|=0,r|=0;var n=0;n=on,on=on+16|0,Kr[n>>2]=r,r=0|Kr[26],v(r,e,n),ie(10,r),Cn()}function We(){}function Ze(e,r,n,t){return e|=0,r|=0,n|=0,t|=0,t=r-t-(n>>>0>e>>>0|0)>>>0,0|(Tn=t,e-n>>>0|0)}function ze(e,r){return e|=0,r|=0,r=r?0|g(0|Kr[r>>2],0|Kr[r+4>>2],e):0,0|(0|r?r:e)}function je(e,r,n,t,i,_){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,mn[3&e](0|r,0|n,0|t,0|i,0|_)}function Je(e){e=+e;var r=0;return rn[_n>>3]=e,r=0|Kr[_n>>2],Tn=0|Kr[_n+4>>2],0|r}function Qe(e,r,n,t){return e|=0,r|=0,n|=0,t|=0,n=e+n>>>0,0|(Tn=r+t+(n>>>0<e>>>0|0)>>>0,0|n)}function qe(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0,yn[3&e](0|r,0|n,0|t,0|i)}function $e(e){e|=0;var r=0;return e>>>0>4294963200&&(r=0|Pr(),Kr[r>>2]=0-e,e=-1),0|e}function er(e){return e|=0,1&(e=e?0!=(0|k(e,32,88,0)):0)|0}function rr(e,r,n,t){return e|=0,r|=0,n|=0,t|=0,0|Un[7&e](0|r,0|n,0|t)}function nr(e,r){e|=0,r|=0;var n=0;return n=0|oe(e),((0|Ie(e,1,n,r))!=(0|n))<<31>>31|0}function tr(e,r,n){e|=0,r|=0,n|=0,32&Kr[e>>2]||K(r,n,e)}function ir(e,r,n,t){e|=0,r|=0,n|=0,t|=0,Bn[0&e](0|r,0|n,0|t)}function _r(e){e|=0;var r=0;return r=on,on=on+e|0,on=on+15&-16,0|r}function or(e){e|=0;var r=0;return r=188+(0|br())|0,0|ue(e,0|Kr[r>>2])}function ar(e,r){return e|=0,r|=0,0|(e=e?0|W(e,r,0):0)}function ur(e,r,n){return e|=0,r|=0,n|=0,(0|e)==(0|r)|0}function Er(e,r){e|=0,r|=0;var n=0;return n=0|Tr(0|e),0|(0==(0|r)?e:n)}function fr(e,r,n,t){return e|=0,r|=0,n|=0,t|=0,0|d(e,r,n,t,0)}function Tr(e){return(255&(e|=0))<<24|(e>>8&255)<<16|(e>>16&255)<<8|e>>>24|0}function cr(e,r,n,t,i,_){e|=0,r|=0,n|=0,t|=0,i|=0,_|=0,sn(6)}function lr(e,r){e|=0,r|=0,En||(En=e,fn=r)}function sr(e,r,n){return e|=0,r|=0,n|=0,0|Q(e,2147483647,r,n)}function Ar(e,r,n,t,i){e|=0,r|=0,n|=0,t|=0,i|=0,sn(1)}function Rr(e){e|=0,vr(e),Ur(e)}function dr(e,r){return e|=0,r|=0,0|pn[1&e](0|r)}function Mr(e,r){e|=0,r|=0,on=e,an=r}function Sr(e,r,n,t){e|=0,r|=0,n|=0,t|=0,sn(7)}function Nr(e,r){return e|=0,r|=0,0|ze(e,r)}function Ir(e,r){e|=0,r|=0,Dn[7&e](0|r)}function Or(e,r,n){return e|=0,r|=0,n|=0,sn(0),0}function Cr(e,r){return e=+e,r|=0,+ +ae(e,r)}function hr(e,r,n){e|=0,r|=0,n|=0,sn(4)}function Pr(){return 64+(0|br())|0}function Lr(e){e|=0,vn[3&e]()}function br(){return 232}function Fr(e){e|=0,on=e}function Ur(e){e|=0,T(e)}function mr(e){e|=0,Tn=e}function Dr(e){return 0|(e|=0)}function pr(){return 5072}function Br(e){return e|=0,sn(3),0}function vr(e){e|=0}function kr(e){return e|=0,0}function yr(){return 0|Tn}function gr(){return 0|on}function wr(e){e|=0,sn(2)}function Gr(){sn(5)}var Hr=e.Int8Array,Xr=new Hr(n),Vr=e.Int16Array,Yr=new Vr(n),xr=e.Int32Array,Kr=new xr(n),Wr=e.Uint8Array,Zr=new Wr(n),zr=e.Uint16Array,jr=new zr(n),Jr=e.Uint32Array,Qr=new Jr(n),qr=e.Float32Array,$r=new qr(n),en=e.Float64Array,rn=new en(n),nn=e.byteLength,tn=0|r.DYNAMICTOP_PTR,_n=0|r.tempDoublePtr,on=(r.ABORT,0|r.STACKTOP),an=0|r.STACK_MAX,un=0|r.cttz_i8,En=0,fn=0,Tn=(e.NaN,e.Infinity,0),cn=(e.Math.floor,e.Math.abs,e.Math.sqrt,e.Math.pow,e.Math.cos,e.Math.sin,e.Math.tan,e.Math.acos,e.Math.asin,e.Math.atan,e.Math.atan2,e.Math.exp,e.Math.log,e.Math.ceil,e.Math.imul),ln=(e.Math.min,e.Math.max,e.Math.clz32),sn=r.abort,An=(r.assert,r.enlargeMemory),Rn=r.getTotalMemory,dn=r.abortOnCannotGrowMemory,Mn=(r.invoke_iiii,r.invoke_viiiii,r.invoke_vi,r.invoke_ii,r.invoke_viii,r.invoke_v,r.invoke_viiiiii,r.invoke_viiii,r._pthread_getspecific),Sn=r.___syscall54,Nn=r._pthread_setspecific,In=(r.___gxx_personality_v0,r.___syscall6),On=r.___setErrNo,Cn=r._abort,hn=(r.___cxa_begin_catch,r._pthread_once),Pn=r._emscripten_memcpy_big,Ln=r._pthread_key_create,bn=r.___syscall140,Fn=(r.___resumeException,r.___cxa_find_matching_catch,r.___syscall146),Un=(r.__ZSt18uncaught_exceptionv,[Or,p,Re,Se,me,ne,Or,Or]),mn=[Ar,$,B,Ar],Dn=[wr,vr,Rr,vr,vr,Rr,we,wr],pn=[Br,ge],Bn=[hr],vn=[Gr,Z,Ve,Gr],kn=[cr,Oe,le,cr],yn=[Sr,Ce,Ae,Sr];return{stackSave:gr,_i64Subtract:Ze,_crn_get_bytes_per_block:F,setThrew:lr,dynCall_viii:ir,_bitshift64Lshr:xe,_bitshift64Shl:Ye,dynCall_viiii:qe,setTempRet0:mr,_crn_decompress:S,_memset:ee,_sbrk:Ne,_memcpy:m,stackAlloc:_r,_crn_get_height:ve,dynCall_vi:Ir,getTempRet0:yr,_crn_get_levels:Be,_crn_get_uncompressed_size:b,_i64Add:Qe,dynCall_iiii:rr,_emscripten_get_global_libc:pr,dynCall_ii:dr,___udivdi3:fr,_llvm_bswap_i32:Tr,dynCall_viiiii:je,___cxa_can_catch:Le,_free:T,runPostSets:We,dynCall_viiiiii:Xe,establishStackSpace:Mr,___uremdi3:De,___cxa_is_pointer_type:er,stackRestore:Fr,_malloc:i,_emscripten_replace_memory:t,dynCall_v:Lr,_crn_get_width:ke,_crn_get_dxt_format:pe}}(Module.asmGlobalArg,Module.asmLibraryArg,buffer),stackSave=Module.stackSave=asm.stackSave,getTempRet0=Module.getTempRet0=asm.getTempRet0,_memset=Module._memset=asm._memset,setThrew=Module.setThrew=asm.setThrew,_bitshift64Lshr=Module._bitshift64Lshr=asm._bitshift64Lshr,_bitshift64Shl=Module._bitshift64Shl=asm._bitshift64Shl,setTempRet0=Module.setTempRet0=asm.setTempRet0,_crn_decompress=Module._crn_decompress=asm._crn_decompress,_crn_get_bytes_per_block=Module._crn_get_bytes_per_block=asm._crn_get_bytes_per_block,_sbrk=Module._sbrk=asm._sbrk,_memcpy=Module._memcpy=asm._memcpy,stackAlloc=Module.stackAlloc=asm.stackAlloc,_crn_get_height=Module._crn_get_height=asm._crn_get_height,_i64Subtract=Module._i64Subtract=asm._i64Subtract,_crn_get_levels=Module._crn_get_levels=asm._crn_get_levels,_crn_get_uncompressed_size=Module._crn_get_uncompressed_size=asm._crn_get_uncompressed_size,_i64Add=Module._i64Add=asm._i64Add,_emscripten_get_global_libc=Module._emscripten_get_global_libc=asm._emscripten_get_global_libc,___udivdi3=Module.___udivdi3=asm.___udivdi3,_llvm_bswap_i32=Module._llvm_bswap_i32=asm._llvm_bswap_i32,___cxa_can_catch=Module.___cxa_can_catch=asm.___cxa_can_catch,_free=Module._free=asm._free,runPostSets=Module.runPostSets=asm.runPostSets,establishStackSpace=Module.establishStackSpace=asm.establishStackSpace,___uremdi3=Module.___uremdi3=asm.___uremdi3,___cxa_is_pointer_type=Module.___cxa_is_pointer_type=asm.___cxa_is_pointer_type,stackRestore=Module.stackRestore=asm.stackRestore,_malloc=Module._malloc=asm._malloc,_emscripten_replace_memory=Module._emscripten_replace_memory=asm._emscripten_replace_memory,_crn_get_width=Module._crn_get_width=asm._crn_get_width,_crn_get_dxt_format=Module._crn_get_dxt_format=asm._crn_get_dxt_format,dynCall_iiii=Module.dynCall_iiii=asm.dynCall_iiii,dynCall_viiiii=Module.dynCall_viiiii=asm.dynCall_viiiii,dynCall_vi=Module.dynCall_vi=asm.dynCall_vi,dynCall_ii=Module.dynCall_ii=asm.dynCall_ii,dynCall_viii=Module.dynCall_viii=asm.dynCall_viii,dynCall_v=Module.dynCall_v=asm.dynCall_v,dynCall_viiiiii=Module.dynCall_viiiiii=asm.dynCall_viiiiii,dynCall_viiii=Module.dynCall_viiii=asm.dynCall_viiii;Runtime.stackAlloc=Module.stackAlloc,Runtime.stackSave=Module.stackSave,Runtime.stackRestore=Module.stackRestore,Runtime.establishStackSpace=Module.establishStackSpace,Runtime.setTempRet0=Module.setTempRet0,Runtime.getTempRet0=Module.getTempRet0,Module.asm=asm,ExitStatus.prototype=new Error,ExitStatus.prototype.constructor=ExitStatus;var initialStackTop,preloadStartTime=null,calledMain=!1;dependenciesFulfilled=function e(){Module.calledRun||run(), -Module.calledRun||(dependenciesFulfilled=e)},Module.callMain=Module.callMain=function(e){function r(){for(var e=0;e<3;e++)t.push(0)}e=e||[],ensureInitRuntime();var n=e.length+1,t=[allocate(intArrayFromString(Module.thisProgram),"i8",ALLOC_NORMAL)];r();for(var i=0;i<n-1;i+=1)t.push(allocate(intArrayFromString(e[i]),"i8",ALLOC_NORMAL)),r();t.push(0),t=allocate(t,"i32",ALLOC_NORMAL);try{exit(Module._main(n,t,0),!0)}catch(e){if(e instanceof ExitStatus)return;if("SimulateInfiniteLoop"==e)return void(Module.noExitRuntime=!0);var _=e;e&&"object"==typeof e&&e.stack&&(_=[e,e.stack]),Module.printErr("exception thrown: "+_),Module.quit(1,e)}finally{calledMain=!0}},Module.run=Module.run=run,Module.exit=Module.exit=exit;var abortDecorators=[];if(Module.abort=Module.abort=abort,Module.preInit)for("function"==typeof Module.preInit&&(Module.preInit=[Module.preInit]);Module.preInit.length>0;)Module.preInit.pop()();var shouldRunNow=!0;return Module.noInitialRun&&(shouldRunNow=!1),Module.noExitRuntime=!0,run(),Module}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,t,i){return r(e).then(n,t,i)}function r(e){var r,n;return e instanceof t?r=e:a(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),r=n.promise):r=i(e),r}function n(r){return e(r,_)}function t(e){this.then=e}function i(e){return new t(function(n){try{return r(n?n(e):e)}catch(e){return _(e)}})}function _(e){return new t(function(n,t){try{return t?r(t(e)):_(e)}catch(e){return _(e)}})}function o(){function e(e,r,n){return c(e,r,n)}function n(e){return s(e)}function i(e){return s(_(e))}function a(e){return l(e)}var u,E,f,T,c,l,s;return E=new t(e),u={then:e,resolve:n,reject:i,progress:a,promise:E,resolver:{resolve:n,reject:i,progress:a}},f=[],T=[],c=function(e,r,n){var t,i;return t=o(),i="function"==typeof n?function(e){try{t.progress(n(e))}catch(e){t.progress(e)}}:function(e){t.progress(e)},f.push(function(n){n.then(e,r).then(t.resolve,t.reject,i)}),T.push(i),t.promise},l=function(e){return A(T,e),e},s=function(e){return e=r(e),c=e.then,s=r,l=d,A(f,e),T=f=I,e},u}function a(e){return e&&"function"==typeof e.then}function u(r,n,t,i,_){return R(2,arguments),e(r,function(r){function a(e){A(e)}function u(e){s(e)}var E,f,T,c,l,s,A,R,M,S;if(M=r.length>>>0,E=Math.max(0,Math.min(n,M)),T=[],f=M-E+1,c=[],l=o(),E)for(R=l.progress,A=function(e){c.push(e),--f||(s=A=d,l.reject(c))},s=function(e){T.push(e),--E||(s=A=d,l.resolve(T))},S=0;S<M;++S)S in r&&e(r[S],u,a,R);else l.resolve(T);return l.then(t,i,_)})}function E(e,r,n,t){function i(e){return r?r(e[0]):e[0]}return u(e,1,i,n,t)}function f(e,r,n,t){return R(1,arguments),c(e,M).then(r,n,t)}function T(){return c(arguments,M)}function c(r,n){return e(r,function(r){var t,i,_,a,u,E;if(_=i=r.length>>>0,t=[],E=o(),_)for(a=function(r,i){e(r,n).then(function(e){t[i]=e,--_||E.resolve(t)},E.reject)},u=0;u<i;u++)u in r?a(r[u],u):--_;else E.resolve(t);return E.promise})}function l(r,n){var t=N.call(arguments,1);return e(r,function(r){var i;return i=r.length,t[0]=function(r,t,_){return e(r,function(r){return e(t,function(e){return n(r,e,_,i)})})},S.apply(r,t)})}function s(r,n,t){var i=arguments.length>2;return e(r,function(e){return e=i?t:e,n.resolve(e),e},function(e){return n.reject(e),_(e)},n.progress)}function A(e,r){for(var n,t=0;n=e[t++];)n(r)}function R(e,r){for(var n,t=r.length;t>e;)if(null!=(n=r[--t])&&"function"!=typeof n)throw new Error("arg "+t+" must be a function")}function d(){}function M(e){return e}var S,N,I;return e.defer=o,e.resolve=r,e.reject=n,e.join=T,e.all=f,e.map=c,e.reduce=l,e.any=E,e.some=u,e.chain=s,e.isPromise=a,t.prototype={always:function(e,r){return this.then(e,e,r)},otherwise:function(e){return this.then(I,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(r){return f(r,function(r){return e.apply(I,r)})})}},N=[].slice,S=[].reduce||function(e){var r,n,t,i,_;if(_=0,r=Object(this),i=r.length>>>0,n=arguments,n.length<=1)for(;;){if(_ in r){t=r[_++];break}if(++_>=i)throw new TypeError}else t=n[1];for(;_<i;++_)_ in r&&(t=e(t,r[_],_,r));return t},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function r(e,r){return void 0!==e&&null!==e?e:r}return r.EMPTY_OBJECT=e({}),r}),define("Core/formatError",["./defined"],function(e){"use strict";function r(r){var n,t=r.name,i=r.message;n=e(t)&&e(i)?t+": "+i:r.toString();var _=r.stack;return e(_)&&(n+="\n"+_),n}return r}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,r,n,t){"use strict";function i(r,n,t){try{return r(n,t)}catch(r){return e.reject(r)}}function _(_){var o;return function(a){var u=a.data,E=[],f={id:u.id,result:void 0,error:void 0};return e(i(_,u.parameters,E)).then(function(e){f.result=e}).otherwise(function(e){e instanceof Error?f.error={name:e.name,message:e.message,stack:e.stack}:f.error=e}).always(function(){n(o)||(o=r(self.webkitPostMessage,self.postMessage)),u.canTransferArrayBuffer||(E.length=0);try{o(f,E)}catch(e){f.result=void 0,f.error="postMessage failed with error: "+t(e)+"\n with responseMessage: "+JSON.stringify(f),o(f)}})}}return _}),define("Workers/transcodeCRNToDXT",["../Core/CompressedTextureBuffer","../Core/defined","../Core/PixelFormat","../Core/RuntimeError","../ThirdParty/crunch","./createTaskProcessorWorker"],function(e,r,n,t,i,_){"use strict";function o(e,r,n,t){var i,_=n/4,o=t%4,a=new Uint32Array(e.buffer,0,(t-o)/4),u=new Uint32Array(r.buffer);for(i=0;i<a.length;i++)u[_+i]=a[i];for(i=t-o;i<t;i++)r[n+i]=e[i]}function a(_,a){var u=_.byteLength,l=new Uint8Array(_),s=i._malloc(u);o(l,i.HEAPU8,s,u);var A=i._crn_get_dxt_format(s,u),R=E[A];if(!r(R))throw new t("Unsupported compressed format.");var d,M=i._crn_get_levels(s,u),S=i._crn_get_width(s,u),N=i._crn_get_height(s,u),I=0;for(d=0;d<M;++d)I+=n.compressedTextureSizeInBytes(R,S>>d,N>>d);c<I&&(r(f)&&i._free(f),f=i._malloc(I),T=new Uint8Array(i.HEAPU8.buffer,f,I),c=I),i._crn_decompress(s,u,f,I,0,M),i._free(s);var O=n.compressedTextureSizeInBytes(R,S,N),C=T.subarray(0,O),h=new Uint8Array(O);return h.set(C,0),a.push(h.buffer),new e(R,S,N,h)}var u={cCRNFmtInvalid:-1,cCRNFmtDXT1:0,cCRNFmtDXT3:1,cCRNFmtDXT5:2},E={};E[u.cCRNFmtDXT1]=n.RGB_DXT1,E[u.cCRNFmtDXT3]=n.RGBA_DXT3,E[u.cCRNFmtDXT5]=n.RGBA_DXT5;var f,T,c=0;return _(a)})}(); \ No newline at end of file diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeKTX2.js b/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeKTX2.js new file mode 100644 index 000000000..86495ceef --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/transcodeKTX2.js @@ -0,0 +1,56 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as rn}from"./chunk-3R25OJXK.js";import{a as M}from"./chunk-MOE32UQS.js";import{a as ie}from"./chunk-IIPSFM7Z.js";import{a as _n}from"./chunk-WHQYJFDH.js";import{b as nn}from"./chunk-OYWUGDKS.js";import{a as Gt,c as sr,d as or,e as ge}from"./chunk-DRYFJEFT.js";var Rn=sr((it,pt)=>{var Nt=function(){var i=typeof document<"u"&&document.currentScript?document.currentScript.src:void 0;return typeof __filename<"u"&&(i=i||__filename),function(f){f=f||{};var r=typeof f<"u"?f:{},C,l;r.ready=new Promise(function(e,t){C=e,l=t});var P={},F;for(F in r)r.hasOwnProperty(F)&&(P[F]=r[F]);var U=[],y="./this.program",m=function(e,t){throw t},V=!1,d=!1,p=!1,Q=!1;V=typeof window=="object",d=typeof importScripts=="function",p=typeof process=="object"&&typeof process.versions=="object"&&typeof process.versions.node=="string",Q=!V&&!p&&!d;var u="";function X(e){return r.locateFile?r.locateFile(e,u):u+e}var se,le,W,J,g,Fe;p?(d?u=Gt("path").dirname(u)+"/":u=__dirname+"/",se=function(t,n){return g||(g=Gt("fs")),Fe||(Fe=Gt("path")),t=Fe.normalize(t),g.readFileSync(t,n?null:"utf8")},W=function(t){var n=se(t,!0);return n.buffer||(n=new Uint8Array(n)),Se(n.buffer),n},process.argv.length>1&&(y=process.argv[1].replace(/\\/g,"/")),U=process.argv.slice(2),process.on("uncaughtException",function(e){if(!(e instanceof rr))throw e}),process.on("unhandledRejection",Me),m=function(e){process.exit(e)},r.inspect=function(){return"[Emscripten Module object]"}):Q?(typeof read<"u"&&(se=function(t){return read(t)}),W=function(t){var n;return typeof readbuffer=="function"?new Uint8Array(readbuffer(t)):(n=read(t,"binary"),Se(typeof n=="object"),n)},typeof scriptArgs<"u"?U=scriptArgs:typeof arguments<"u"&&(U=arguments),typeof quit=="function"&&(m=function(e){quit(e)}),typeof print<"u"&&(typeof console>"u"&&(console={}),console.log=print,console.warn=console.error=typeof printErr<"u"?printErr:print)):(V||d)&&(d?u=self.location.href:typeof document<"u"&&document.currentScript&&(u=document.currentScript.src),i&&(u=i),u.indexOf("blob:")!==0?u=u.substr(0,u.lastIndexOf("/")+1):u="",se=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.send(null),t.responseText},d&&(W=function(e){var t=new XMLHttpRequest;return t.open("GET",e,!1),t.responseType="arraybuffer",t.send(null),new Uint8Array(t.response)}),le=function(e,t,n){var _=new XMLHttpRequest;_.open("GET",e,!0),_.responseType="arraybuffer",_.onload=function(){if(_.status==200||_.status==0&&_.response){t(_.response);return}n()},_.onerror=n,_.send(null)},J=function(e){document.title=e});var st=r.print||console.log.bind(console),ee=r.printErr||console.warn.bind(console);for(F in P)P.hasOwnProperty(F)&&(r[F]=P[F]);P=null,r.arguments&&(U=r.arguments),r.thisProgram&&(y=r.thisProgram),r.quit&&(m=r.quit);var De=0,Ie=function(e){De=e},ae;r.wasmBinary&&(ae=r.wasmBinary);var ot=r.noExitRuntime||!0;typeof WebAssembly!="object"&&Me("no native wasm support detected");var ce,de=!1,be;function Se(e,t){e||Me("Assertion failed: "+t)}var we=typeof TextDecoder<"u"?new TextDecoder("utf8"):void 0;function He(e,t,n){for(var _=t+n,s=t;e[s]&&!(s>=_);)++s;if(s-t>16&&e.subarray&&we)return we.decode(e.subarray(t,s));for(var a="";t<s;){var c=e[t++];if(!(c&128)){a+=String.fromCharCode(c);continue}var o=e[t++]&63;if((c&224)==192){a+=String.fromCharCode((c&31)<<6|o);continue}var R=e[t++]&63;if((c&240)==224?c=(c&15)<<12|o<<6|R:c=(c&7)<<18|o<<12|R<<6|e[t++]&63,c<65536)a+=String.fromCharCode(c);else{var T=c-65536;a+=String.fromCharCode(55296|T>>10,56320|T&1023)}}return a}function Xe(e,t){return e?He(D,e,t):""}function Rt(e,t,n,_){if(!(_>0))return 0;for(var s=n,a=n+_-1,c=0;c<e.length;++c){var o=e.charCodeAt(c);if(o>=55296&&o<=57343){var R=e.charCodeAt(++c);o=65536+((o&1023)<<10)|R&1023}if(o<=127){if(n>=a)break;t[n++]=o}else if(o<=2047){if(n+1>=a)break;t[n++]=192|o>>6,t[n++]=128|o&63}else if(o<=65535){if(n+2>=a)break;t[n++]=224|o>>12,t[n++]=128|o>>6&63,t[n++]=128|o&63}else{if(n+3>=a)break;t[n++]=240|o>>18,t[n++]=128|o>>12&63,t[n++]=128|o>>6&63,t[n++]=128|o&63}}return t[n]=0,n-s}function L(e,t,n){return Rt(e,D,t,n)}function j(e){for(var t=0,n=0;n<e.length;++n){var _=e.charCodeAt(n);_>=55296&&_<=57343&&(_=65536+((_&1023)<<10)|e.charCodeAt(++n)&1023),_<=127?++t:_<=2047?t+=2:_<=65535?t+=3:t+=4}return t}var Ae=typeof TextDecoder<"u"?new TextDecoder("utf-16le"):void 0;function at(e,t){for(var n=e,_=n>>1,s=_+t/2;!(_>=s)&&Ge[_];)++_;if(n=_<<1,n-e>32&&Ae)return Ae.decode(D.subarray(e,n));for(var a="",c=0;!(c>=t/2);++c){var o=fe[e+c*2>>1];if(o==0)break;a+=String.fromCharCode(o)}return a}function xe(e,t,n){if(n===void 0&&(n=2147483647),n<2)return 0;n-=2;for(var _=t,s=n<e.length*2?n/2:e.length,a=0;a<s;++a){var c=e.charCodeAt(a);fe[t>>1]=c,t+=2}return fe[t>>1]=0,t-_}function Tn(e){return e.length*2}function un(e,t){for(var n=0,_="";!(n>=t/4);){var s=w[e+n*4>>2];if(s==0)break;if(++n,s>=65536){var a=s-65536;_+=String.fromCharCode(55296|a>>10,56320|a&1023)}else _+=String.fromCharCode(s)}return _}function On(e,t,n){if(n===void 0&&(n=2147483647),n<4)return 0;for(var _=t,s=_+n-4,a=0;a<e.length;++a){var c=e.charCodeAt(a);if(c>=55296&&c<=57343){var o=e.charCodeAt(++a);c=65536+((c&1023)<<10)|o&1023}if(w[t>>2]=c,t+=4,t+4>s)break}return w[t>>2]=0,t-_}function ln(e){for(var t=0,n=0;n<e.length;++n){var _=e.charCodeAt(n);_>=55296&&_<=57343&&++n,t+=4}return t}function Mn(e,t){return e%t>0&&(e+=t-e%t),e}var ct,ke,D,fe,Ge,w,Y,Pt,Et;function vt(e){ct=e,r.HEAP8=ke=new Int8Array(e),r.HEAP16=fe=new Int16Array(e),r.HEAP32=w=new Int32Array(e),r.HEAPU8=D=new Uint8Array(e),r.HEAPU16=Ge=new Uint16Array(e),r.HEAPU32=Y=new Uint32Array(e),r.HEAPF32=Pt=new Float32Array(e),r.HEAPF64=Et=new Float64Array(e)}var ur=r.INITIAL_MEMORY||16777216,Ve,ht=[],Ut=[],Kn=[],yt=[],Bn=!1;function Cn(){if(r.preRun)for(typeof r.preRun=="function"&&(r.preRun=[r.preRun]);r.preRun.length;)Gn(r.preRun.shift());$e(ht)}function Fn(){Bn=!0,$e(Ut)}function dn(){$e(Kn)}function Sn(){if(r.postRun)for(typeof r.postRun=="function"&&(r.postRun=[r.postRun]);r.postRun.length;)Nn(r.postRun.shift());$e(yt)}function Gn(e){ht.unshift(e)}function Vn(e){Ut.unshift(e)}function Nn(e){yt.unshift(e)}var Te=0,At=null,Ne=null;function pn(e){Te++,r.monitorRunDependencies&&r.monitorRunDependencies(Te)}function Pn(e){if(Te--,r.monitorRunDependencies&&r.monitorRunDependencies(Te),Te==0&&(At!==null&&(clearInterval(At),At=null),Ne)){var t=Ne;Ne=null,t()}}r.preloadedImages={},r.preloadedAudios={};function Me(e){r.onAbort&&r.onAbort(e),e+="",ee(e),de=!0,be=1,e="abort("+e+"). Build with -s ASSERTIONS=1 for more info.";var t=new WebAssembly.RuntimeError(e);throw l(t),t}function gt(e,t){return String.prototype.startsWith?e.startsWith(t):e.indexOf(t)===0}var En="data:application/octet-stream;base64,";function Lt(e){return gt(e,En)}var vn="file://";function mt(e){return gt(e,vn)}var x="basis_transcoder.wasm";Lt(x)||(x=X(x));function Dt(e){try{if(e==x&&ae)return new Uint8Array(ae);if(W)return W(e);throw"both async and sync fetching of the wasm failed"}catch(t){Me(t)}}function hn(){if(!ae&&(V||d)){if(typeof fetch=="function"&&!mt(x))return fetch(x,{credentials:"same-origin"}).then(function(e){if(!e.ok)throw"failed to load wasm binary file at '"+x+"'";return e.arrayBuffer()}).catch(function(){return Dt(x)});if(le)return new Promise(function(e,t){le(x,function(n){e(new Uint8Array(n))},t)})}return Promise.resolve().then(function(){return Dt(x)})}function Un(){var e={a:er};function t(c,o){var R=c.exports;r.asm=R,ce=r.asm.K,vt(ce.buffer),Ve=r.asm.O,Vn(r.asm.L),Pn("wasm-instantiate")}pn("wasm-instantiate");function n(c){t(c.instance)}function _(c){return hn().then(function(o){var R=WebAssembly.instantiate(o,e);return R}).then(c,function(o){ee("failed to asynchronously prepare wasm: "+o),Me(o)})}function s(){return!ae&&typeof WebAssembly.instantiateStreaming=="function"&&!Lt(x)&&!mt(x)&&typeof fetch=="function"?fetch(x,{credentials:"same-origin"}).then(function(c){var o=WebAssembly.instantiateStreaming(c,e);return o.then(n,function(R){return ee("wasm streaming compile failed: "+R),ee("falling back to ArrayBuffer instantiation"),_(n)})}):_(n)}if(r.instantiateWasm)try{var a=r.instantiateWasm(e,t);return a}catch(c){return ee("Module.instantiateWasm callback failed with error: "+c),!1}return s().catch(l),{}}function $e(e){for(;e.length>0;){var t=e.shift();if(typeof t=="function"){t(r);continue}var n=t.func;typeof n=="number"?t.arg===void 0?Ve.get(n)():Ve.get(n)(t.arg):n(t.arg===void 0?null:t.arg)}}var We={};function je(e){for(;e.length;){var t=e.pop(),n=e.pop();n(t)}}function pe(e){return this.fromWireType(Y[e>>2])}var Ke={},ue={},ze={},yn=48,gn=57;function Ye(e){if(e===void 0)return"_unknown";e=e.replace(/[^a-zA-Z0-9_]/g,"$");var t=e.charCodeAt(0);return t>=yn&&t<=gn?"_"+e:e}function qe(e,t){return e=Ye(e),new Function("body","return function "+e+`() { + "use strict"; return body.apply(this, arguments); +}; +`)(t)}function ft(e,t){var n=qe(t,function(_){this.name=t,this.message=_;var s=new Error(_).stack;s!==void 0&&(this.stack=this.toString()+` +`+s.replace(/^Error(:[^\n]*)?\n/,""))});return n.prototype=Object.create(e.prototype),n.prototype.constructor=n,n.prototype.toString=function(){return this.message===void 0?this.name:this.name+": "+this.message},n}var It=void 0;function Ze(e){throw new It(e)}function oe(e,t,n){e.forEach(function(o){ze[o]=t});function _(o){var R=n(o);R.length!==e.length&&Ze("Mismatched type converter count");for(var T=0;T<e.length;++T)q(e[T],R[T])}var s=new Array(t.length),a=[],c=0;t.forEach(function(o,R){ue.hasOwnProperty(o)?s[R]=ue[o]:(a.push(o),Ke.hasOwnProperty(o)||(Ke[o]=[]),Ke[o].push(function(){s[R]=ue[o],++c,c===a.length&&_(s)}))}),a.length===0&&_(s)}function Ln(e){var t=We[e];delete We[e];var n=t.rawConstructor,_=t.rawDestructor,s=t.fields,a=s.map(function(c){return c.getterReturnType}).concat(s.map(function(c){return c.setterArgumentType}));oe([e],a,function(c){var o={};return s.forEach(function(R,T){var O=R.fieldName,K=c[T],G=R.getter,N=R.getterContext,h=c[T+s.length],I=R.setter,$=R.setterContext;o[O]={read:function(Z){return K.fromWireType(G(N,Z))},write:function(Z,ye){var re=[];I($,Z,h.toWireType(re,ye)),je(re)}}}),[{name:t.name,fromWireType:function(R){var T={};for(var O in o)T[O]=o[O].read(R);return _(R),T},toWireType:function(R,T){for(var O in o)if(!(O in T))throw new TypeError('Missing field: "'+O+'"');var K=n();for(O in o)o[O].write(K,T[O]);return R!==null&&R.push(_,K),K},argPackAdvance:8,readValueFromPointer:pe,destructorFunction:_}]})}function Qe(e){switch(e){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+e)}}function mn(){for(var e=new Array(256),t=0;t<256;++t)e[t]=String.fromCharCode(t);bt=e}var bt=void 0;function v(e){for(var t="",n=e;D[n];)t+=bt[D[n++]];return t}var Be=void 0;function S(e){throw new Be(e)}function q(e,t,n){if(n=n||{},!("argPackAdvance"in t))throw new TypeError("registerType registeredInstance requires argPackAdvance");var _=t.name;if(e||S('type "'+_+'" must have a positive integer typeid pointer'),ue.hasOwnProperty(e)){if(n.ignoreDuplicateRegistrations)return;S("Cannot register type '"+_+"' twice")}if(ue[e]=t,delete ze[e],Ke.hasOwnProperty(e)){var s=Ke[e];delete Ke[e],s.forEach(function(a){a()})}}function Dn(e,t,n,_,s){var a=Qe(n);t=v(t),q(e,{name:t,fromWireType:function(c){return!!c},toWireType:function(c,o){return o?_:s},argPackAdvance:8,readValueFromPointer:function(c){var o;if(n===1)o=ke;else if(n===2)o=fe;else if(n===4)o=w;else throw new TypeError("Unknown boolean type size: "+t);return this.fromWireType(o[c>>a])},destructorFunction:null})}function In(e){if(!(this instanceof Re)||!(e instanceof Re))return!1;for(var t=this.$$.ptrType.registeredClass,n=this.$$.ptr,_=e.$$.ptrType.registeredClass,s=e.$$.ptr;t.baseClass;)n=t.upcast(n),t=t.baseClass;for(;_.baseClass;)s=_.upcast(s),_=_.baseClass;return t===_&&n===s}function bn(e){return{count:e.count,deleteScheduled:e.deleteScheduled,preservePointerOnDelete:e.preservePointerOnDelete,ptr:e.ptr,ptrType:e.ptrType,smartPtr:e.smartPtr,smartPtrType:e.smartPtrType}}function Tt(e){function t(n){return n.$$.ptrType.registeredClass.name}S(t(e)+" instance already deleted")}var ut=!1;function wt(e){}function wn(e){e.smartPtr?e.smartPtrType.rawDestructor(e.smartPtr):e.ptrType.registeredClass.rawDestructor(e.ptr)}function Ht(e){e.count.value-=1;var t=e.count.value===0;t&&wn(e)}function Pe(e){return typeof FinalizationGroup>"u"?(Pe=function(t){return t},e):(ut=new FinalizationGroup(function(t){for(var n=t.next();!n.done;n=t.next()){var _=n.value;_.ptr?Ht(_):console.warn("object already deleted: "+_.ptr)}}),Pe=function(t){return ut.register(t,t.$$,t.$$),t},wt=function(t){ut.unregister(t.$$)},Pe(e))}function Hn(){if(this.$$.ptr||Tt(this),this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var e=Pe(Object.create(Object.getPrototypeOf(this),{$$:{value:bn(this.$$)}}));return e.$$.count.value+=1,e.$$.deleteScheduled=!1,e}function Xn(){this.$$.ptr||Tt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&S("Object already scheduled for deletion"),wt(this),Ht(this.$$),this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function xn(){return!this.$$.ptr}var Ee=void 0,ve=[];function Ot(){for(;ve.length;){var e=ve.pop();e.$$.deleteScheduled=!1,e.delete()}}function kn(){return this.$$.ptr||Tt(this),this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&S("Object already scheduled for deletion"),ve.push(this),ve.length===1&&Ee&&Ee(Ot),this.$$.deleteScheduled=!0,this}function $n(){Re.prototype.isAliasOf=In,Re.prototype.clone=Hn,Re.prototype.delete=Xn,Re.prototype.isDeleted=xn,Re.prototype.deleteLater=kn}function Re(){}var Xt={};function xt(e,t,n){if(e[t].overloadTable===void 0){var _=e[t];e[t]=function(){return e[t].overloadTable.hasOwnProperty(arguments.length)||S("Function '"+n+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+e[t].overloadTable+")!"),e[t].overloadTable[arguments.length].apply(this,arguments)},e[t].overloadTable=[],e[t].overloadTable[_.argCount]=_}}function lt(e,t,n){r.hasOwnProperty(e)?((n===void 0||r[e].overloadTable!==void 0&&r[e].overloadTable[n]!==void 0)&&S("Cannot register public name '"+e+"' twice"),xt(r,e,e),r.hasOwnProperty(n)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+n+")!"),r[e].overloadTable[n]=t):(r[e]=t,n!==void 0&&(r[e].numArguments=n))}function Wn(e,t,n,_,s,a,c,o){this.name=e,this.constructor=t,this.instancePrototype=n,this.rawDestructor=_,this.baseClass=s,this.getActualType=a,this.upcast=c,this.downcast=o,this.pureVirtualFunctions=[]}function Mt(e,t,n){for(;t!==n;)t.upcast||S("Expected null or instance of "+n.name+", got an instance of "+t.name),e=t.upcast(e),t=t.baseClass;return e}function jn(e,t){if(t===null)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name);var n=t.$$.ptrType.registeredClass,_=Mt(t.$$.ptr,n,this.registeredClass);return _}function zn(e,t){var n;if(t===null)return this.isReference&&S("null is not a valid "+this.name),this.isSmartPointer?(n=this.rawConstructor(),e!==null&&e.push(this.rawDestructor,n),n):0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),!this.isConst&&t.$$.ptrType.isConst&&S("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);var _=t.$$.ptrType.registeredClass;if(n=Mt(t.$$.ptr,_,this.registeredClass),this.isSmartPointer)switch(t.$$.smartPtr===void 0&&S("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:t.$$.smartPtrType===this?n=t.$$.smartPtr:S("Cannot convert argument of type "+(t.$$.smartPtrType?t.$$.smartPtrType.name:t.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:n=t.$$.smartPtr;break;case 2:if(t.$$.smartPtrType===this)n=t.$$.smartPtr;else{var s=t.clone();n=this.rawShare(n,ne(function(){s.delete()})),e!==null&&e.push(this.rawDestructor,n)}break;default:S("Unsupporting sharing policy")}return n}function Yn(e,t){if(t===null)return this.isReference&&S("null is not a valid "+this.name),0;t.$$||S('Cannot pass "'+Ce(t)+'" as a '+this.name),t.$$.ptr||S("Cannot pass deleted object as a pointer of type "+this.name),t.$$.ptrType.isConst&&S("Cannot convert argument of type "+t.$$.ptrType.name+" to parameter type "+this.name);var n=t.$$.ptrType.registeredClass,_=Mt(t.$$.ptr,n,this.registeredClass);return _}function qn(e){return this.rawGetPointee&&(e=this.rawGetPointee(e)),e}function Zn(e){this.rawDestructor&&this.rawDestructor(e)}function Qn(e){e!==null&&e.delete()}function kt(e,t,n){if(t===n)return e;if(n.baseClass===void 0)return null;var _=kt(e,t,n.baseClass);return _===null?null:n.downcast(_)}function Jn(){return Object.keys(he).length}function e_(){var e=[];for(var t in he)he.hasOwnProperty(t)&&e.push(he[t]);return e}function t_(e){Ee=e,ve.length&&Ee&&Ee(Ot)}function n_(){r.getInheritedInstanceCount=Jn,r.getLiveInheritedInstances=e_,r.flushPendingDeletes=Ot,r.setDelayFunction=t_}var he={};function __(e,t){for(t===void 0&&S("ptr should not be undefined");e.baseClass;)t=e.upcast(t),e=e.baseClass;return t}function r_(e,t){return t=__(e,t),he[t]}function Je(e,t){(!t.ptrType||!t.ptr)&&Ze("makeClassHandle requires ptr and ptrType");var n=!!t.smartPtrType,_=!!t.smartPtr;return n!==_&&Ze("Both smartPtrType and smartPtr must be specified"),t.count={value:1},Pe(Object.create(e,{$$:{value:t}}))}function i_(e){var t=this.getPointee(e);if(!t)return this.destructor(e),null;var n=r_(this.registeredClass,t);if(n!==void 0){if(n.$$.count.value===0)return n.$$.ptr=t,n.$$.smartPtr=e,n.clone();var _=n.clone();return this.destructor(e),_}function s(){return this.isSmartPointer?Je(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:t,smartPtrType:this,smartPtr:e}):Je(this.registeredClass.instancePrototype,{ptrType:this,ptr:e})}var a=this.registeredClass.getActualType(t),c=Xt[a];if(!c)return s.call(this);var o;this.isConst?o=c.constPointerType:o=c.pointerType;var R=kt(t,this.registeredClass,o.registeredClass);return R===null?s.call(this):this.isSmartPointer?Je(o.registeredClass.instancePrototype,{ptrType:o,ptr:R,smartPtrType:this,smartPtr:e}):Je(o.registeredClass.instancePrototype,{ptrType:o,ptr:R})}function s_(){te.prototype.getPointee=qn,te.prototype.destructor=Zn,te.prototype.argPackAdvance=8,te.prototype.readValueFromPointer=pe,te.prototype.deleteObject=Qn,te.prototype.fromWireType=i_}function te(e,t,n,_,s,a,c,o,R,T,O){this.name=e,this.registeredClass=t,this.isReference=n,this.isConst=_,this.isSmartPointer=s,this.pointeeType=a,this.sharingPolicy=c,this.rawGetPointee=o,this.rawConstructor=R,this.rawShare=T,this.rawDestructor=O,!s&&t.baseClass===void 0?_?(this.toWireType=jn,this.destructorFunction=null):(this.toWireType=Yn,this.destructorFunction=null):this.toWireType=zn}function $t(e,t,n){r.hasOwnProperty(e)||Ze("Replacing nonexistant public symbol"),r[e].overloadTable!==void 0&&n!==void 0?r[e].overloadTable[n]=t:(r[e]=t,r[e].argCount=n)}function o_(e,t,n){var _=r["dynCall_"+e];return n&&n.length?_.apply(null,[t].concat(n)):_.call(null,t)}function R_(e,t,n){return e.indexOf("j")!=-1?o_(e,t,n):Ve.get(t).apply(null,n)}function a_(e,t){var n=[];return function(){n.length=arguments.length;for(var _=0;_<arguments.length;_++)n[_]=arguments[_];return R_(e,t,n)}}function z(e,t){e=v(e);function n(){return e.indexOf("j")!=-1?a_(e,t):Ve.get(t)}var _=n();return typeof _!="function"&&S("unknown function pointer with signature "+e+": "+t),_}var Wt=void 0;function jt(e){var t=Qt(e),n=v(t);return _e(t),n}function et(e,t){var n=[],_={};function s(a){if(!_[a]&&!ue[a]){if(ze[a]){ze[a].forEach(s);return}n.push(a),_[a]=!0}}throw t.forEach(s),new Wt(e+": "+n.map(jt).join([", "]))}function c_(e,t,n,_,s,a,c,o,R,T,O,K,G){O=v(O),a=z(s,a),o&&(o=z(c,o)),T&&(T=z(R,T)),G=z(K,G);var N=Ye(O);lt(N,function(){et("Cannot construct "+O+" due to unbound types",[_])}),oe([e,t,n],_?[_]:[],function(h){h=h[0];var I,$;_?(I=h.registeredClass,$=I.instancePrototype):$=Re.prototype;var Z=qe(N,function(){if(Object.getPrototypeOf(this)!==ye)throw new Be("Use 'new' to construct "+O);if(re.constructor_body===void 0)throw new Be(O+" has no accessible constructor");var tn=re.constructor_body[arguments.length];if(tn===void 0)throw new Be("Tried to invoke ctor of "+O+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(re.constructor_body).toString()+") parameters instead!");return tn.apply(this,arguments)}),ye=Object.create($,{constructor:{value:Z}});Z.prototype=ye;var re=new Wn(O,Z,ye,G,I,a,o,T),ir=new te(O,re,!0,!1,!1),Jt=new te(O+"*",re,!1,!1,!1),en=new te(O+" const*",re,!1,!0,!1);return Xt[e]={pointerType:Jt,constPointerType:en},$t(N,Z),[ir,Jt,en]})}function Kt(e,t){for(var n=[],_=0;_<e;_++)n.push(w[(t>>2)+_]);return n}function A_(e,t,n,_,s,a){Se(t>0);var c=Kt(t,n);s=z(_,s);var o=[a],R=[];oe([],[e],function(T){T=T[0];var O="constructor "+T.name;if(T.registeredClass.constructor_body===void 0&&(T.registeredClass.constructor_body=[]),T.registeredClass.constructor_body[t-1]!==void 0)throw new Be("Cannot register multiple constructors with identical number of parameters ("+(t-1)+") for class '"+T.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");return T.registeredClass.constructor_body[t-1]=function(){et("Cannot construct "+T.name+" due to unbound types",c)},oe([],c,function(K){return T.registeredClass.constructor_body[t-1]=function(){arguments.length!==t-1&&S(O+" called with "+arguments.length+" arguments, expected "+(t-1)),R.length=0,o.length=t;for(var N=1;N<t;++N)o[N]=K[N].toWireType(R,arguments[N-1]);var h=s.apply(null,o);return je(R),K[0].fromWireType(h)},[]}),[]})}function zt(e,t){if(!(e instanceof Function))throw new TypeError("new_ called with constructor type "+typeof e+" which is not a function");var n=qe(e.name||"unknownFunctionName",function(){});n.prototype=e.prototype;var _=new n,s=e.apply(_,t);return s instanceof Object?s:_}function Yt(e,t,n,_,s){var a=t.length;a<2&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");for(var c=t[1]!==null&&n!==null,o=!1,R=1;R<t.length;++R)if(t[R]!==null&&t[R].destructorFunction===void 0){o=!0;break}for(var T=t[0].name!=="void",O="",K="",R=0;R<a-2;++R)O+=(R!==0?", ":"")+"arg"+R,K+=(R!==0?", ":"")+"arg"+R+"Wired";var G="return function "+Ye(e)+"("+O+`) { +if (arguments.length !== `+(a-2)+`) { +throwBindingError('function `+e+" called with ' + arguments.length + ' arguments, expected "+(a-2)+` args!'); +} +`;o&&(G+=`var destructors = []; +`);var N=o?"destructors":"null",h=["throwBindingError","invoker","fn","runDestructors","retType","classParam"],I=[S,_,s,je,t[0],t[1]];c&&(G+="var thisWired = classParam.toWireType("+N+`, this); +`);for(var R=0;R<a-2;++R)G+="var arg"+R+"Wired = argType"+R+".toWireType("+N+", arg"+R+"); // "+t[R+2].name+` +`,h.push("argType"+R),I.push(t[R+2]);if(c&&(K="thisWired"+(K.length>0?", ":"")+K),G+=(T?"var rv = ":"")+"invoker(fn"+(K.length>0?", ":"")+K+`); +`,o)G+=`runDestructors(destructors); +`;else for(var R=c?1:2;R<t.length;++R){var $=R===1?"thisWired":"arg"+(R-2)+"Wired";t[R].destructorFunction!==null&&(G+=$+"_dtor("+$+"); // "+t[R].name+` +`,h.push($+"_dtor"),I.push(t[R].destructorFunction))}T&&(G+=`var ret = retType.fromWireType(rv); +return ret; +`),G+=`} +`,h.push(G);var Z=zt(Function,h).apply(null,I);return Z}function f_(e,t,n,_,s,a,c,o){var R=Kt(n,_);t=v(t),a=z(s,a),oe([],[e],function(T){T=T[0];var O=T.name+"."+t;o&&T.registeredClass.pureVirtualFunctions.push(t);function K(){et("Cannot call "+O+" due to unbound types",R)}var G=T.registeredClass.instancePrototype,N=G[t];return N===void 0||N.overloadTable===void 0&&N.className!==T.name&&N.argCount===n-2?(K.argCount=n-2,K.className=T.name,G[t]=K):(xt(G,t,O),G[t].overloadTable[n-2]=K),oe([],R,function(h){var I=Yt(O,h,T,a,c);return G[t].overloadTable===void 0?(I.argCount=n-2,G[t]=I):G[t].overloadTable[n-2]=I,[]}),[]})}function T_(e,t,n){e=v(e),oe([],[t],function(_){return _=_[0],r[e]=_.fromWireType(n),[]})}var Bt=[],k=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function Ct(e){e>4&&--k[e].refcount===0&&(k[e]=void 0,Bt.push(e))}function u_(){for(var e=0,t=5;t<k.length;++t)k[t]!==void 0&&++e;return e}function O_(){for(var e=5;e<k.length;++e)if(k[e]!==void 0)return k[e];return null}function l_(){r.count_emval_handles=u_,r.get_first_emval=O_}function ne(e){switch(e){case void 0:return 1;case null:return 2;case!0:return 3;case!1:return 4;default:{var t=Bt.length?Bt.pop():k.length;return k[t]={refcount:1,value:e},t}}}function M_(e,t){t=v(t),q(e,{name:t,fromWireType:function(n){var _=k[n].value;return Ct(n),_},toWireType:function(n,_){return ne(_)},argPackAdvance:8,readValueFromPointer:pe,destructorFunction:null})}function K_(e,t,n){switch(t){case 0:return function(_){var s=n?ke:D;return this.fromWireType(s[_])};case 1:return function(_){var s=n?fe:Ge;return this.fromWireType(s[_>>1])};case 2:return function(_){var s=n?w:Y;return this.fromWireType(s[_>>2])};default:throw new TypeError("Unknown integer type: "+e)}}function B_(e,t,n,_){var s=Qe(n);t=v(t);function a(){}a.values={},q(e,{name:t,constructor:a,fromWireType:function(c){return this.constructor.values[c]},toWireType:function(c,o){return o.value},argPackAdvance:8,readValueFromPointer:K_(t,s,_),destructorFunction:null}),lt(t,a)}function tt(e,t){var n=ue[e];return n===void 0&&S(t+" has unknown type "+jt(e)),n}function C_(e,t,n){var _=tt(e,"enum");t=v(t);var s=_.constructor,a=Object.create(_.constructor.prototype,{value:{value:n},constructor:{value:qe(_.name+"_"+t,function(){})}});s.values[n]=a,s[t]=a}function Ce(e){if(e===null)return"null";var t=typeof e;return t==="object"||t==="array"||t==="function"?e.toString():""+e}function F_(e,t){switch(t){case 2:return function(n){return this.fromWireType(Pt[n>>2])};case 3:return function(n){return this.fromWireType(Et[n>>3])};default:throw new TypeError("Unknown float type: "+e)}}function d_(e,t,n){var _=Qe(n);t=v(t),q(e,{name:t,fromWireType:function(s){return s},toWireType:function(s,a){if(typeof a!="number"&&typeof a!="boolean")throw new TypeError('Cannot convert "'+Ce(a)+'" to '+this.name);return a},argPackAdvance:8,readValueFromPointer:F_(t,_),destructorFunction:null})}function S_(e,t,n,_,s,a){var c=Kt(t,n);e=v(e),s=z(_,s),lt(e,function(){et("Cannot call "+e+" due to unbound types",c)},t-1),oe([],c,function(o){var R=[o[0],null].concat(o.slice(1));return $t(e,Yt(e,R,null,s,a),t-1),[]})}function G_(e,t,n){switch(t){case 0:return n?function(s){return ke[s]}:function(s){return D[s]};case 1:return n?function(s){return fe[s>>1]}:function(s){return Ge[s>>1]};case 2:return n?function(s){return w[s>>2]}:function(s){return Y[s>>2]};default:throw new TypeError("Unknown integer type: "+e)}}function V_(e,t,n,_,s){t=v(t),s===-1&&(s=4294967295);var a=Qe(n),c=function(T){return T};if(_===0){var o=32-8*n;c=function(T){return T<<o>>>o}}var R=t.indexOf("unsigned")!=-1;q(e,{name:t,fromWireType:c,toWireType:function(T,O){if(typeof O!="number"&&typeof O!="boolean")throw new TypeError('Cannot convert "'+Ce(O)+'" to '+this.name);if(O<_||O>s)throw new TypeError('Passing a number "'+Ce(O)+'" from JS side to C/C++ side to an argument of type "'+t+'", which is outside the valid range ['+_+", "+s+"]!");return R?O>>>0:O|0},argPackAdvance:8,readValueFromPointer:G_(t,a,_!==0),destructorFunction:null})}function N_(e,t,n){var _=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],s=_[t];function a(c){c=c>>2;var o=Y,R=o[c],T=o[c+1];return new s(ct,T,R)}n=v(n),q(e,{name:n,fromWireType:a,argPackAdvance:8,readValueFromPointer:a},{ignoreDuplicateRegistrations:!0})}function p_(e,t){t=v(t);var n=t==="std::string";q(e,{name:t,fromWireType:function(_){var s=Y[_>>2],a;if(n)for(var c=_+4,o=0;o<=s;++o){var R=_+4+o;if(o==s||D[R]==0){var T=R-c,O=Xe(c,T);a===void 0?a=O:(a+="\0",a+=O),c=R+1}}else{for(var K=new Array(s),o=0;o<s;++o)K[o]=String.fromCharCode(D[_+4+o]);a=K.join("")}return _e(_),a},toWireType:function(_,s){s instanceof ArrayBuffer&&(s=new Uint8Array(s));var a,c=typeof s=="string";c||s instanceof Uint8Array||s instanceof Uint8ClampedArray||s instanceof Int8Array||S("Cannot pass non-string to std::string"),n&&c?a=function(){return j(s)}:a=function(){return s.length};var o=a(),R=dt(4+o+1);if(Y[R>>2]=o,n&&c)L(s,R+4,o+1);else if(c)for(var T=0;T<o;++T){var O=s.charCodeAt(T);O>255&&(_e(R),S("String has UTF-16 code units that do not fit in 8 bits")),D[R+4+T]=O}else for(var T=0;T<o;++T)D[R+4+T]=s[T];return _!==null&&_.push(_e,R),R},argPackAdvance:8,readValueFromPointer:pe,destructorFunction:function(_){_e(_)}})}function P_(e,t,n){n=v(n);var _,s,a,c,o;t===2?(_=at,s=xe,c=Tn,a=function(){return Ge},o=1):t===4&&(_=un,s=On,c=ln,a=function(){return Y},o=2),q(e,{name:n,fromWireType:function(R){for(var T=Y[R>>2],O=a(),K,G=R+4,N=0;N<=T;++N){var h=R+4+N*t;if(N==T||O[h>>o]==0){var I=h-G,$=_(G,I);K===void 0?K=$:(K+="\0",K+=$),G=h+t}}return _e(R),K},toWireType:function(R,T){typeof T!="string"&&S("Cannot pass non-string to C++ string type "+n);var O=c(T),K=dt(4+O+t);return Y[K>>2]=O>>o,s(T,K+4,O+t),R!==null&&R.push(_e,K),K},argPackAdvance:8,readValueFromPointer:pe,destructorFunction:function(R){_e(R)}})}function E_(e,t,n,_,s,a){We[e]={name:v(t),rawConstructor:z(n,_),rawDestructor:z(s,a),fields:[]}}function v_(e,t,n,_,s,a,c,o,R,T){We[e].fields.push({fieldName:v(t),getterReturnType:n,getter:z(_,s),getterContext:a,setterArgumentType:c,setter:z(o,R),setterContext:T})}function h_(e,t){t=v(t),q(e,{isVoid:!0,name:t,argPackAdvance:0,fromWireType:function(){},toWireType:function(n,_){}})}function Ue(e){return e||S("Cannot use deleted val. handle = "+e),k[e].value}function U_(e,t,n){e=Ue(e),t=tt(t,"emval::as");var _=[],s=ne(_);return w[n>>2]=s,t.toWireType(_,e)}var y_={};function nt(e){var t=y_[e];return t===void 0?v(e):t}var Ft=[];function g_(e,t,n,_){e=Ft[e],t=Ue(t),n=nt(n),e(t,n,null,_)}function qt(){return typeof globalThis=="object"?globalThis:function(){return Function}()("return this")()}function L_(e){return e===0?ne(qt()):(e=nt(e),ne(qt()[e]))}function m_(e){var t=Ft.length;return Ft.push(e),t}function D_(e,t){for(var n=new Array(e),_=0;_<e;++_)n[_]=tt(w[(t>>2)+_],"parameter "+_);return n}function I_(e,t){for(var n=D_(e,t),_=n[0],s=_.name+"_$"+n.slice(1).map(function(N){return N.name}).join("_")+"$",a=["retType"],c=[_],o="",R=0;R<e-1;++R)o+=(R!==0?", ":"")+"arg"+R,a.push("argType"+R),c.push(n[1+R]);for(var T=Ye("methodCaller_"+s),O="return function "+T+`(handle, name, destructors, args) { +`,K=0,R=0;R<e-1;++R)O+=" var arg"+R+" = argType"+R+".readValueFromPointer(args"+(K?"+"+K:"")+`); +`,K+=n[R+1].argPackAdvance;O+=" var rv = handle[name]("+o+`); +`;for(var R=0;R<e-1;++R)n[R+1].deleteObject&&(O+=" argType"+R+".deleteObject(arg"+R+`); +`);_.isVoid||(O+=` return retType.toWireType(destructors, rv); +`),O+=`}; +`,a.push(O);var G=zt(Function,a).apply(null,c);return m_(G)}function b_(e){return e=nt(e),ne(r[e])}function w_(e,t){return e=Ue(e),t=Ue(t),ne(e[t])}function H_(e){e>4&&(k[e].refcount+=1)}function X_(e){for(var t="",n=0;n<e;++n)t+=(n!==0?", ":"")+"arg"+n;for(var _="return function emval_allocator_"+e+`(constructor, argTypes, args) { +`,n=0;n<e;++n)_+="var argType"+n+" = requireRegisteredType(Module['HEAP32'][(argTypes >>> 2) + "+n+'], "parameter '+n+`"); +var arg`+n+" = argType"+n+`.readValueFromPointer(args); +args += argType`+n+`['argPackAdvance']; +`;return _+="var obj = new constructor("+t+`); +return __emval_register(obj); +} +`,new Function("requireRegisteredType","Module","__emval_register",_)(tt,r,ne)}var Zt={};function x_(e,t,n,_){e=Ue(e);var s=Zt[t];return s||(s=X_(t),Zt[t]=s),s(e,n,_)}function k_(e){return ne(nt(e))}function $_(e){var t=k[e].value;je(t),Ct(e)}function W_(){Me()}function j_(e,t,n){D.copyWithin(e,t,t+n)}function z_(e){try{return ce.grow(e-ct.byteLength+65535>>>16),vt(ce.buffer),1}catch{}}function Y_(e){var t=D.length;e=e>>>0;var n=2147483648;if(e>n)return!1;for(var _=1;_<=4;_*=2){var s=t*(1+.2/_);s=Math.min(s,e+100663296);var a=Math.min(n,Mn(Math.max(e,s),65536)),c=z_(a);if(c)return!0}return!1}var _t={mappings:{},buffers:[null,[],[]],printChar:function(e,t){var n=_t.buffers[e];t===0||t===10?((e===1?st:ee)(He(n,0)),n.length=0):n.push(t)},varargs:void 0,get:function(){_t.varargs+=4;var e=w[_t.varargs-4>>2];return e},getStr:function(e){var t=Xe(e);return t},get64:function(e,t){return e}};function q_(e){return 0}function Z_(e,t,n,_,s){}function Q_(e,t,n,_){for(var s=0,a=0;a<n;a++){for(var c=w[t+a*8>>2],o=w[t+(a*8+4)>>2],R=0;R<o;R++)_t.printChar(e,D[c+R]);s+=o}return w[_>>2]=s,0}function J_(e){Ie(e|0)}It=r.InternalError=ft(Error,"InternalError"),mn(),Be=r.BindingError=ft(Error,"BindingError"),$n(),s_(),n_(),Wt=r.UnboundTypeError=ft(Error,"UnboundTypeError"),l_();var er={t:Ln,I:Dn,x:c_,w:A_,d:f_,k:T_,H:M_,n:B_,a:C_,A:d_,i:S_,j:V_,h:N_,B:p_,v:P_,u:E_,c:v_,J:h_,m:U_,s:g_,b:Ct,y:L_,p:I_,r:b_,e:w_,g:H_,q:x_,f:k_,l:$_,o:W_,E:j_,F:Y_,G:q_,C:Z_,z:Q_,D:J_},Or=Un(),tr=r.___wasm_call_ctors=function(){return(tr=r.___wasm_call_ctors=r.asm.L).apply(null,arguments)},dt=r._malloc=function(){return(dt=r._malloc=r.asm.M).apply(null,arguments)},_e=r._free=function(){return(_e=r._free=r.asm.N).apply(null,arguments)},Qt=r.___getTypeName=function(){return(Qt=r.___getTypeName=r.asm.P).apply(null,arguments)},nr=r.___embind_register_native_and_builtin_types=function(){return(nr=r.___embind_register_native_and_builtin_types=r.asm.Q).apply(null,arguments)},_r=r.dynCall_jiji=function(){return(_r=r.dynCall_jiji=r.asm.R).apply(null,arguments)},rt;function rr(e){this.name="ExitStatus",this.message="Program terminated with exit("+e+")",this.status=e}Ne=function e(){rt||St(),rt||(Ne=e)};function St(e){if(e=e||U,Te>0||(Cn(),Te>0))return;function t(){rt||(rt=!0,r.calledRun=!0,!de&&(Fn(),dn(),C(r),r.onRuntimeInitialized&&r.onRuntimeInitialized(),Sn()))}r.setStatus?(r.setStatus("Running..."),setTimeout(function(){setTimeout(function(){r.setStatus("")},1),t()},1)):t()}if(r.run=St,r.preInit)for(typeof r.preInit=="function"&&(r.preInit=[r.preInit]);r.preInit.length>0;)r.preInit.pop()();return St(),f.ready}}();typeof it=="object"&&typeof pt=="object"?pt.exports=Nt:typeof define=="function"&&define.amd?define([],function(){return Nt}):typeof it=="object"&&(it.BASIS=Nt)});var B={UNSIGNED_BYTE:M.UNSIGNED_BYTE,UNSIGNED_SHORT:M.UNSIGNED_SHORT,UNSIGNED_INT:M.UNSIGNED_INT,FLOAT:M.FLOAT,HALF_FLOAT:M.HALF_FLOAT_OES,UNSIGNED_INT_24_8:M.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:M.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:M.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:M.UNSIGNED_SHORT_5_6_5};B.toWebGLConstant=function(i,f){switch(i){case B.UNSIGNED_BYTE:return M.UNSIGNED_BYTE;case B.UNSIGNED_SHORT:return M.UNSIGNED_SHORT;case B.UNSIGNED_INT:return M.UNSIGNED_INT;case B.FLOAT:return M.FLOAT;case B.HALF_FLOAT:return f.webgl2?M.HALF_FLOAT:M.HALF_FLOAT_OES;case B.UNSIGNED_INT_24_8:return M.UNSIGNED_INT_24_8;case B.UNSIGNED_SHORT_4_4_4_4:return M.UNSIGNED_SHORT_4_4_4_4;case B.UNSIGNED_SHORT_5_5_5_1:return M.UNSIGNED_SHORT_5_5_5_1;case B.UNSIGNED_SHORT_5_6_5:return B.UNSIGNED_SHORT_5_6_5}};B.isPacked=function(i){return i===B.UNSIGNED_INT_24_8||i===B.UNSIGNED_SHORT_4_4_4_4||i===B.UNSIGNED_SHORT_5_5_5_1||i===B.UNSIGNED_SHORT_5_6_5};B.sizeInBytes=function(i){switch(i){case B.UNSIGNED_BYTE:return 1;case B.UNSIGNED_SHORT:case B.UNSIGNED_SHORT_4_4_4_4:case B.UNSIGNED_SHORT_5_5_5_1:case B.UNSIGNED_SHORT_5_6_5:case B.HALF_FLOAT:return 2;case B.UNSIGNED_INT:case B.FLOAT:case B.UNSIGNED_INT_24_8:return 4}};B.validate=function(i){return i===B.UNSIGNED_BYTE||i===B.UNSIGNED_SHORT||i===B.UNSIGNED_INT||i===B.FLOAT||i===B.HALF_FLOAT||i===B.UNSIGNED_INT_24_8||i===B.UNSIGNED_SHORT_4_4_4_4||i===B.UNSIGNED_SHORT_5_5_5_1||i===B.UNSIGNED_SHORT_5_6_5};B.getTypedArrayConstructor=function(i){let f=B.sizeInBytes(i);return f===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:f===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:f===Float32Array.BYTES_PER_ELEMENT&&i===B.FLOAT?Float32Array:Uint32Array};var H=Object.freeze(B);var A={DEPTH_COMPONENT:M.DEPTH_COMPONENT,DEPTH_STENCIL:M.DEPTH_STENCIL,ALPHA:M.ALPHA,RED:M.RED,RG:M.RG,RGB:M.RGB,RGBA:M.RGBA,LUMINANCE:M.LUMINANCE,LUMINANCE_ALPHA:M.LUMINANCE_ALPHA,RGB_DXT1:M.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:M.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:M.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:M.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:M.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:M.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:M.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:M.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:M.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:M.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:M.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:M.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:M.COMPRESSED_RGBA_BPTC_UNORM};A.componentsLength=function(i){switch(i){case A.RGB:return 3;case A.RGBA:return 4;case A.LUMINANCE_ALPHA:case A.RG:return 2;case A.ALPHA:case A.RED:case A.LUMINANCE:return 1;default:return 1}};A.validate=function(i){return i===A.DEPTH_COMPONENT||i===A.DEPTH_STENCIL||i===A.ALPHA||i===A.RED||i===A.RG||i===A.RGB||i===A.RGBA||i===A.LUMINANCE||i===A.LUMINANCE_ALPHA||i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5||i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1||i===A.RGBA_ASTC||i===A.RGB_ETC1||i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC||i===A.RGBA_BC7};A.isColorFormat=function(i){return i===A.RED||i===A.ALPHA||i===A.RGB||i===A.RGBA||i===A.LUMINANCE||i===A.LUMINANCE_ALPHA};A.isDepthFormat=function(i){return i===A.DEPTH_COMPONENT||i===A.DEPTH_STENCIL};A.isCompressedFormat=function(i){return i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5||i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1||i===A.RGBA_ASTC||i===A.RGB_ETC1||i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC||i===A.RGBA_BC7};A.isDXTFormat=function(i){return i===A.RGB_DXT1||i===A.RGBA_DXT1||i===A.RGBA_DXT3||i===A.RGBA_DXT5};A.isPVRTCFormat=function(i){return i===A.RGB_PVRTC_4BPPV1||i===A.RGB_PVRTC_2BPPV1||i===A.RGBA_PVRTC_4BPPV1||i===A.RGBA_PVRTC_2BPPV1};A.isASTCFormat=function(i){return i===A.RGBA_ASTC};A.isETC1Format=function(i){return i===A.RGB_ETC1};A.isETC2Format=function(i){return i===A.RGB8_ETC2||i===A.RGBA8_ETC2_EAC};A.isBC7Format=function(i){return i===A.RGBA_BC7};A.compressedTextureSizeInBytes=function(i,f,r){switch(i){case A.RGB_DXT1:case A.RGBA_DXT1:case A.RGB_ETC1:case A.RGB8_ETC2:return Math.floor((f+3)/4)*Math.floor((r+3)/4)*8;case A.RGBA_DXT3:case A.RGBA_DXT5:case A.RGBA_ASTC:case A.RGBA8_ETC2_EAC:return Math.floor((f+3)/4)*Math.floor((r+3)/4)*16;case A.RGB_PVRTC_4BPPV1:case A.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(f,8)*Math.max(r,8)*4+7)/8);case A.RGB_PVRTC_2BPPV1:case A.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(f,16)*Math.max(r,8)*2+7)/8);case A.RGBA_BC7:return Math.ceil(f/4)*Math.ceil(r/4)*16;default:return 0}};A.textureSizeInBytes=function(i,f,r,C){let l=A.componentsLength(i);return H.isPacked(f)&&(l=1),l*H.sizeInBytes(f)*r*C};A.alignmentInBytes=function(i,f,r){let C=A.textureSizeInBytes(i,f,r,1)%4;return C===0?4:C===2?2:1};A.createTypedArray=function(i,f,r,C){let l=H.getTypedArrayConstructor(f),P=A.componentsLength(i)*r*C;return new l(P)};A.flipY=function(i,f,r,C,l){if(l===1)return i;let P=A.createTypedArray(f,r,C,l),F=A.componentsLength(f),U=C*F;for(let y=0;y<l;++y){let m=y*C*F,V=(l-y-1)*C*F;for(let d=0;d<U;++d)P[V+d]=i[m+d]}return P};A.toInternalFormat=function(i,f,r){if(!r.webgl2)return i;if(i===A.DEPTH_STENCIL)return M.DEPTH24_STENCIL8;if(i===A.DEPTH_COMPONENT){if(f===H.UNSIGNED_SHORT)return M.DEPTH_COMPONENT16;if(f===H.UNSIGNED_INT)return M.DEPTH_COMPONENT24}if(f===H.FLOAT)switch(i){case A.RGBA:return M.RGBA32F;case A.RGB:return M.RGB32F;case A.RG:return M.RG32F;case A.RED:return M.R32F}if(f===H.HALF_FLOAT)switch(i){case A.RGBA:return M.RGBA16F;case A.RGB:return M.RGB16F;case A.RG:return M.RG16F;case A.RED:return M.R16F}return i};var E=Object.freeze(A);var Rr={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},Le=Object.freeze(Rr);var Vt=class{constructor(){this.vkFormat=0,this.typeSize=1,this.pixelWidth=0,this.pixelHeight=0,this.pixelDepth=0,this.layerCount=0,this.faceCount=1,this.supercompressionScheme=0,this.levels=[],this.dataFormatDescriptor=[{vendorId:0,descriptorType:0,descriptorBlockSize:0,versionNumber:2,colorModel:0,colorPrimaries:1,transferFunction:2,flags:0,texelBlockDimension:[0,0,0,0],bytesPlane:[0,0,0,0,0,0,0,0],samples:[]}],this.keyValue={},this.globalData=null}},Oe=class{constructor(f,r,C,l){this._dataView=void 0,this._littleEndian=void 0,this._offset=void 0,this._dataView=new DataView(f.buffer,f.byteOffset+r,C),this._littleEndian=l,this._offset=0}_nextUint8(){let f=this._dataView.getUint8(this._offset);return this._offset+=1,f}_nextUint16(){let f=this._dataView.getUint16(this._offset,this._littleEndian);return this._offset+=2,f}_nextUint32(){let f=this._dataView.getUint32(this._offset,this._littleEndian);return this._offset+=4,f}_nextUint64(){let f=this._dataView.getUint32(this._offset,this._littleEndian),r=this._dataView.getUint32(this._offset+4,this._littleEndian),C=f+2**32*r;return this._offset+=8,C}_nextInt32(){let f=this._dataView.getInt32(this._offset,this._littleEndian);return this._offset+=4,f}_nextUint8Array(f){let r=new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+this._offset,f);return this._offset+=f,r}_skip(f){return this._offset+=f,this}_scan(f,r=0){let C=this._offset,l=0;for(;this._dataView.getUint8(this._offset)!==r&&l<f;)l++,this._offset++;return l<f&&this._offset++,new Uint8Array(this._dataView.buffer,this._dataView.byteOffset+C,l)}};var dr=new Uint8Array([0]),b=[171,75,84,88,32,50,48,187,13,10,26,10];function sn(i){return new TextDecoder().decode(i)}function on(i){let f=new Uint8Array(i.buffer,i.byteOffset,b.length);if(f[0]!==b[0]||f[1]!==b[1]||f[2]!==b[2]||f[3]!==b[3]||f[4]!==b[4]||f[5]!==b[5]||f[6]!==b[6]||f[7]!==b[7]||f[8]!==b[8]||f[9]!==b[9]||f[10]!==b[10]||f[11]!==b[11])throw new Error("Missing KTX 2.0 identifier.");let r=new Vt,C=17*Uint32Array.BYTES_PER_ELEMENT,l=new Oe(i,b.length,C,!0);r.vkFormat=l._nextUint32(),r.typeSize=l._nextUint32(),r.pixelWidth=l._nextUint32(),r.pixelHeight=l._nextUint32(),r.pixelDepth=l._nextUint32(),r.layerCount=l._nextUint32(),r.faceCount=l._nextUint32();let P=l._nextUint32();r.supercompressionScheme=l._nextUint32();let F=l._nextUint32(),U=l._nextUint32(),y=l._nextUint32(),m=l._nextUint32(),V=l._nextUint64(),d=l._nextUint64(),p=P*3*8,Q=new Oe(i,b.length+C,p,!0);for(let L=0;L<P;L++)r.levels.push({levelData:new Uint8Array(i.buffer,i.byteOffset+Q._nextUint64(),Q._nextUint64()),uncompressedByteLength:Q._nextUint64()});let u=new Oe(i,F,U,!0),X={vendorId:u._skip(4)._nextUint16(),descriptorType:u._nextUint16(),versionNumber:u._nextUint16(),descriptorBlockSize:u._nextUint16(),colorModel:u._nextUint8(),colorPrimaries:u._nextUint8(),transferFunction:u._nextUint8(),flags:u._nextUint8(),texelBlockDimension:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],bytesPlane:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],samples:[]},W=(X.descriptorBlockSize/4-6)/4;for(let L=0;L<W;L++){let j={bitOffset:u._nextUint16(),bitLength:u._nextUint8(),channelType:u._nextUint8(),samplePosition:[u._nextUint8(),u._nextUint8(),u._nextUint8(),u._nextUint8()],sampleLower:-1/0,sampleUpper:1/0};j.channelType&64?(j.sampleLower=u._nextInt32(),j.sampleUpper=u._nextInt32()):(j.sampleLower=u._nextUint32(),j.sampleUpper=u._nextUint32()),X.samples[L]=j}r.dataFormatDescriptor.length=0,r.dataFormatDescriptor.push(X);let J=new Oe(i,y,m,!0);for(;J._offset<m;){let L=J._nextUint32(),j=J._scan(L),Ae=sn(j);if(r.keyValue[Ae]=J._nextUint8Array(L-j.byteLength-1),Ae.match(/^ktx/i)){let xe=sn(r.keyValue[Ae]);r.keyValue[Ae]=xe.substring(0,xe.lastIndexOf("\0"))}let at=L%4?4-L%4:0;J._skip(at)}if(d<=0)return r;let g=new Oe(i,V,d,!0),Fe=g._nextUint16(),st=g._nextUint16(),ee=g._nextUint32(),De=g._nextUint32(),Ie=g._nextUint32(),ae=g._nextUint32(),ot=[];for(let L=0;L<P;L++)ot.push({imageFlags:g._nextUint32(),rgbSliceByteOffset:g._nextUint32(),rgbSliceByteLength:g._nextUint32(),alphaSliceByteOffset:g._nextUint32(),alphaSliceByteLength:g._nextUint32()});let ce=V+g._offset,de=ce+ee,be=de+De,Se=be+Ie,we=new Uint8Array(i.buffer,i.byteOffset+ce,ee),He=new Uint8Array(i.buffer,i.byteOffset+de,De),Xe=new Uint8Array(i.buffer,i.byteOffset+be,Ie),Rt=new Uint8Array(i.buffer,i.byteOffset+Se,ae);return r.globalData={endpointCount:Fe,selectorCount:st,imageDescs:ot,endpointsData:we,selectorsData:He,tablesData:Xe,extendedData:Rt},r}var an=or(Rn(),1),cn=["positiveX","negativeX","positiveY","negativeY","positiveZ","negativeZ"],An=163,fn=166,me;function ar(i,f){nn.typeOf.object("transcoderModule",me);let r=i.ktx2Buffer,C=i.supportedTargetFormats,l;try{l=on(r)}catch{throw new ie("Invalid KTX2 file.")}if(l.layerCount!==0)throw new ie("KTX2 texture arrays are not supported.");if(l.pixelDepth!==0)throw new ie("KTX2 3D textures are unsupported.");let P=l.dataFormatDescriptor[0],F=new Array(l.levelCount);return l.vkFormat===0&&(P.colorModel===An||P.colorModel===fn)?Ar(r,l,C,me,f,F):(f.push(r.buffer),cr(l,F)),F}function cr(i,f){let r=i.vkFormat===Le.VK_FORMAT_R8G8B8_SRGB?E.RGB:E.RGBA,C;i.vkFormat===Le.VK_FORMAT_R8G8B8A8_UNORM?C=H.UNSIGNED_BYTE:i.vkFormat===Le.VK_FORMAT_R16G16B16A16_SFLOAT?C=H.HALF_FLOAT:i.vkFormat===Le.VK_FORMAT_R32G32B32A32_SFLOAT&&(C=H.FLOAT);for(let l=0;l<i.levels.length;++l){let P={};f[l]=P;let F=i.levels[l].levelData,U=i.pixelWidth>>l,y=i.pixelHeight>>l,m=U*y*E.componentsLength(r);for(let V=0;V<i.faceCount;++V){let d=F.byteOffset+m*i.typeSize*V,p;!ge(C)||H.sizeInBytes(C)===1?p=new Uint8Array(F.buffer,d,m):H.sizeInBytes(C)===2?p=new Uint16Array(F.buffer,d,m):p=new Float32Array(F.buffer,d,m),P[cn[V]]={internalFormat:r,datatype:C,width:U,height:y,levelBuffer:p}}}}function Ar(i,f,r,C,l,P){let F=new C.KTX2File(i),U=F.getWidth(),y=F.getHeight(),m=F.getLevels(),V=F.getHasAlpha();if(!(U>0)||!(y>0)||!(m>0))throw F.close(),F.delete(),new ie("Invalid KTX2 file");let d,p,Q=f.dataFormatDescriptor[0],u=C.transcoder_texture_format;if(Q.colorModel===An)if(r.etc)d=V?E.RGBA8_ETC2_EAC:E.RGB8_ETC2,p=V?u.cTFETC2_RGBA:u.cTFETC1_RGB;else if(r.etc1&&!V)d=E.RGB_ETC1,p=u.cTFETC1_RGB;else if(r.s3tc)d=V?E.RGBA_DXT5:E.RGB_DXT1,p=V?u.cTFBC3_RGBA:u.cTFBC1_RGB;else if(r.pvrtc)d=V?E.RGBA_PVRTC_4BPPV1:E.RGB_PVRTC_4BPPV1,p=V?u.cTFPVRTC1_4_RGBA:u.cTFPVRTC1_4_RGB;else if(r.astc)d=E.RGBA_ASTC,p=u.cTFASTC_4x4_RGBA;else if(r.bc7)d=E.RGBA_BC7,p=u.cTFBC7_RGBA;else throw new ie("No transcoding format target available for ETC1S compressed ktx2.");else if(Q.colorModel===fn)if(r.astc)d=E.RGBA_ASTC,p=u.cTFASTC_4x4_RGBA;else if(r.bc7)d=E.RGBA_BC7,p=u.cTFBC7_RGBA;else if(r.s3tc)d=V?E.RGBA_DXT5:E.RGB_DXT1,p=V?u.cTFBC3_RGBA:u.cTFBC1_RGB;else if(r.etc)d=V?E.RGBA8_ETC2_EAC:E.RGB8_ETC2,p=V?u.cTFETC2_RGBA:u.cTFETC1_RGB;else if(r.etc1&&!V)d=E.RGB_ETC1,p=u.cTFETC1_RGB;else if(r.pvrtc)d=V?E.RGBA_PVRTC_4BPPV1:E.RGB_PVRTC_4BPPV1,p=V?u.cTFPVRTC1_4_RGBA:u.cTFPVRTC1_4_RGB;else throw new ie("No transcoding format target available for UASTC compressed ktx2.");if(!F.startTranscoding())throw F.close(),F.delete(),new ie("startTranscoding() failed");for(let X=0;X<f.levels.length;++X){let se={};P[X]=se,U=f.pixelWidth>>X,y=f.pixelHeight>>X;let le=F.getImageTranscodedSizeInBytes(X,0,0,p.value),W=new Uint8Array(le),J=F.transcodeImage(W,X,0,0,p.value,0,-1,-1);if(!ge(J))throw new ie("transcodeImage() failed.");l.push(W.buffer),se[cn[0]]={internalFormat:d,width:U,height:y,levelBuffer:W}}return F.close(),F.delete(),P}async function fr(i,f){let r=i.webAssemblyConfig,C=_n(an.default,self.BASIS);return ge(r.wasmBinaryFile)?me=await C(r):me=await C(),me.initializeBasis(),!0}function Tr(i,f){let r=i.webAssemblyConfig;return ge(r)?fr(i,f):ar(i,f)}var yr=rn(Tr);export{yr as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/transferTypedArrayTest.js b/app/plot_app/static/cesium/Build/Cesium/Workers/transferTypedArrayTest.js index 9ae4fea60..9dd2c4cb9 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/transferTypedArrayTest.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/transferTypedArrayTest.js @@ -1,23 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -"undefined"==typeof self&&(self={}),self.onmessage=function(e){"use strict";var s=e.data.array,a=self.webkitPostMessage||self.postMessage;try{a({array:s},[s.buffer])}catch(e){a({})}}; \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +self.onmessage=function(a){let s=a.data.array,e=self.webkitPostMessage||self.postMessage;try{e({array:s},[s.buffer])}catch{e({})}}; diff --git a/app/plot_app/static/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js b/app/plot_app/static/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js index ed22de6bc..79917abaf 100644 --- a/app/plot_app/static/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js +++ b/app/plot_app/static/cesium/Build/Cesium/Workers/upsampleQuantizedTerrainMesh.js @@ -1,231 +1,26 @@ -/** - * Cesium - https://github.com/AnalyticalGraphicsInc/cesium - * - * Copyright 2011-2017 Cesium Contributors - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - * Columbus View (Pat. Pend.) - * - * Portions licensed separately. - * See https://github.com/AnalyticalGraphicsInc/cesium/blob/master/LICENSE.md for full licensing details. - */ -/** -@license -mersenne-twister.js - https://gist.github.com/banksean/300494 - - Copyright (C) 1997 - 2002, Makoto Matsumoto and Takuji Nishimura, - All rights reserved. - - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions - are met: - - 1. Redistributions of source code must retain the above copyright - notice, this list of conditions and the following disclaimer. - - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. - - 3. The names of its contributors may not be used to endorse or promote - products derived from this software without specific prior written - permission. - - THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS - "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT - LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR - A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR - CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, - EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, - PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR - PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF - LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING - NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS - SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. -*/ - -/** - @license - when.js - https://github.com/cujojs/when - - MIT License (c) copyright B Cavalier & J Hann - - * A lightweight CommonJS Promises/A and when() implementation - * when is part of the cujo.js family of libraries (http://cujojs.com/) - * - * Licensed under the MIT License at: - * http://www.opensource.org/licenses/mit-license.php - * - * @version 1.7.1 - */ - -/** -@license -sprintf.js from the php.js project - https://github.com/kvz/phpjs -Directly from https://github.com/kvz/phpjs/blob/master/functions/strings/sprintf.js - -php.js is copyright 2012 Kevin van Zonneveld. - -Portions copyright Brett Zamir (http://brett-zamir.me), Kevin van Zonneveld -(http://kevin.vanzonneveld.net), Onno Marsman, Theriault, Michael White -(http://getsprink.com), Waldo Malqui Silva, Paulo Freitas, Jack, Jonas -Raoni Soares Silva (http://www.jsfromhell.com), Philip Peterson, Legaev -Andrey, Ates Goral (http://magnetiq.com), Alex, Ratheous, Martijn Wieringa, -Rafa? Kukawski (http://blog.kukawski.pl), lmeyrick -(https://sourceforge.net/projects/bcmath-js/), Nate, Philippe Baumann, -Enrique Gonzalez, Webtoolkit.info (http://www.webtoolkit.info/), Carlos R. -L. Rodrigues (http://www.jsfromhell.com), Ash Searle -(http://hexmen.com/blog/), Jani Hartikainen, travc, Ole Vrijenhoek, -Erkekjetter, Michael Grier, Rafa? Kukawski (http://kukawski.pl), Johnny -Mast (http://www.phpvrouwen.nl), T.Wild, d3x, -http://stackoverflow.com/questions/57803/how-to-convert-decimal-to-hex-in-javascript, -Rafa? Kukawski (http://blog.kukawski.pl/), stag019, pilus, WebDevHobo -(http://webdevhobo.blogspot.com/), marrtins, GeekFG -(http://geekfg.blogspot.com), Andrea Giammarchi -(http://webreflection.blogspot.com), Arpad Ray (mailto:arpad@php.net), -gorthaur, Paul Smith, Tim de Koning (http://www.kingsquare.nl), Joris, Oleg -Eremeev, Steve Hilder, majak, gettimeofday, KELAN, Josh Fraser -(http://onlineaspect.com/2007/06/08/auto-detect-a-time-zone-with-javascript/), -Marc Palau, Martin -(http://www.erlenwiese.de/), Breaking Par Consulting Inc -(http://www.breakingpar.com/bkp/home.nsf/0/87256B280015193F87256CFB006C45F7), -Chris, Mirek Slugen, saulius, Alfonso Jimenez -(http://www.alfonsojimenez.com), Diplom@t (http://difane.com/), felix, -Mailfaker (http://www.weedem.fr/), Tyler Akins (http://rumkin.com), Caio -Ariede (http://caioariede.com), Robin, Kankrelune -(http://www.webfaktory.info/), Karol Kowalski, Imgen Tata -(http://www.myipdf.com/), mdsjack (http://www.mdsjack.bo.it), Dreamer, -Felix Geisendoerfer (http://www.debuggable.com/felix), Lars Fischer, AJ, -David, Aman Gupta, Michael White, Public Domain -(http://www.json.org/json2.js), Steven Levithan -(http://blog.stevenlevithan.com), Sakimori, Pellentesque Malesuada, -Thunder.m, Dj (http://phpjs.org/functions/htmlentities:425#comment_134018), -Steve Clay, David James, Francois, class_exists, nobbler, T. Wild, Itsacon -(http://www.itsacon.net/), date, Ole Vrijenhoek (http://www.nervous.nl/), -Fox, Raphael (Ao RUDLER), Marco, noname, Mateusz "loonquawl" Zalega, Frank -Forte, Arno, ger, mktime, john (http://www.jd-tech.net), Nick Kolosov -(http://sammy.ru), marc andreu, Scott Cariss, Douglas Crockford -(http://javascript.crockford.com), madipta, Slawomir Kaniecki, -ReverseSyntax, Nathan, Alex Wilson, kenneth, Bayron Guevara, Adam Wallner -(http://web2.bitbaro.hu/), paulo kuong, jmweb, Lincoln Ramsay, djmix, -Pyerre, Jon Hohle, Thiago Mata (http://thiagomata.blog.com), lmeyrick -(https://sourceforge.net/projects/bcmath-js/this.), Linuxworld, duncan, -Gilbert, Sanjoy Roy, Shingo, sankai, Oskar Larsson H?gfeldt -(http://oskar-lh.name/), Denny Wardhana, 0m3r, Everlasto, Subhasis Deb, -josh, jd, Pier Paolo Ramon (http://www.mastersoup.com/), P, merabi, Soren -Hansen, Eugene Bulkin (http://doubleaw.com/), Der Simon -(http://innerdom.sourceforge.net/), echo is bad, Ozh, XoraX -(http://www.xorax.info), EdorFaus, JB, J A R, Marc Jansen, Francesco, LH, -Stoyan Kyosev (http://www.svest.org/), nord_ua, omid -(http://phpjs.org/functions/380:380#comment_137122), Brad Touesnard, MeEtc -(http://yass.meetcweb.com), Peter-Paul Koch -(http://www.quirksmode.org/js/beat.html), Olivier Louvignes -(http://mg-crea.com/), T0bsn, Tim Wiel, Bryan Elliott, Jalal Berrami, -Martin, JT, David Randall, Thomas Beaucourt (http://www.webapp.fr), taith, -vlado houba, Pierre-Luc Paour, Kristof Coomans (SCK-CEN Belgian Nucleair -Research Centre), Martin Pool, Kirk Strobeck, Rick Waldron, Brant Messenger -(http://www.brantmessenger.com/), Devan Penner-Woelk, Saulo Vallory, Wagner -B. Soares, Artur Tchernychev, Valentina De Rosa, Jason Wong -(http://carrot.org/), Christoph, Daniel Esteban, strftime, Mick@el, rezna, -Simon Willison (http://simonwillison.net), Anton Ongson, Gabriel Paderni, -Marco van Oort, penutbutterjelly, Philipp Lenssen, Bjorn Roesbeke -(http://www.bjornroesbeke.be/), Bug?, Eric Nagel, Tomasz Wesolowski, -Evertjan Garretsen, Bobby Drake, Blues (http://tech.bluesmoon.info/), Luke -Godfrey, Pul, uestla, Alan C, Ulrich, Rafal Kukawski, Yves Sucaet, -sowberry, Norman "zEh" Fuchs, hitwork, Zahlii, johnrembo, Nick Callen, -Steven Levithan (stevenlevithan.com), ejsanders, Scott Baker, Brian Tafoya -(http://www.premasolutions.com/), Philippe Jausions -(http://pear.php.net/user/jausions), Aidan Lister -(http://aidanlister.com/), Rob, e-mike, HKM, ChaosNo1, metjay, strcasecmp, -strcmp, Taras Bogach, jpfle, Alexander Ermolaev -(http://snippets.dzone.com/user/AlexanderErmolaev), DxGx, kilops, Orlando, -dptr1988, Le Torbi, James (http://www.james-bell.co.uk/), Pedro Tainha -(http://www.pedrotainha.com), James, Arnout Kazemier -(http://www.3rd-Eden.com), Chris McMacken, gabriel paderni, Yannoo, -FGFEmperor, baris ozdil, Tod Gentille, Greg Frazier, jakes, 3D-GRAF, Allan -Jensen (http://www.winternet.no), Howard Yeend, Benjamin Lupton, davook, -daniel airton wermann (http://wermann.com.br), Atli T¨®r, Maximusya, Ryan -W Tenney (http://ryan.10e.us), Alexander M Beedie, fearphage -(http://http/my.opera.com/fearphage/), Nathan Sepulveda, Victor, Matteo, -Billy, stensi, Cord, Manish, T.J. Leahy, Riddler -(http://www.frontierwebdev.com/), Rafa? Kukawski, FremyCompany, Matt -Bradley, Tim de Koning, Luis Salazar (http://www.freaky-media.com/), Diogo -Resende, Rival, Andrej Pavlovic, Garagoth, Le Torbi -(http://www.letorbi.de/), Dino, Josep Sanz (http://www.ws3.es/), rem, -Russell Walker (http://www.nbill.co.uk/), Jamie Beck -(http://www.terabit.ca/), setcookie, Michael, YUI Library: -http://developer.yahoo.com/yui/docs/YAHOO.util.DateLocale.html, Blues at -http://hacks.bluesmoon.info/strftime/strftime.js, Ben -(http://benblume.co.uk/), DtTvB -(http://dt.in.th/2008-09-16.string-length-in-bytes.html), Andreas, William, -meo, incidence, Cagri Ekin, Amirouche, Amir Habibi -(http://www.residence-mixte.com/), Luke Smith (http://lucassmith.name), -Kheang Hok Chin (http://www.distantia.ca/), Jay Klehr, Lorenzo Pisani, -Tony, Yen-Wei Liu, Greenseed, mk.keck, Leslie Hoare, dude, booeyOH, Ben -Bryan - -Licensed under the MIT (MIT-LICENSE.txt) license. - -Permission is hereby granted, free of charge, to any person obtaining a -copy of this software and associated documentation files (the -"Software"), to deal in the Software without restriction, including -without limitation the rights to use, copy, modify, merge, publish, -distribute, sublicense, and/or sell copies of the Software, and to -permit persons to whom the Software is furnished to do so, subject to -the following conditions: - -The above copyright notice and this permission notice shall be included -in all copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS -OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF -MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. -IN NO EVENT SHALL KEVIN VAN ZONNEVELD BE LIABLE FOR ANY CLAIM, DAMAGES -OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, -ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR -OTHER DEALINGS IN THE SOFTWARE. -*/ - -/** - * @license - * - * Grauw URI utilities - * - * See: http://hg.grauw.nl/grauw-lib/file/tip/src/uri.js - * - * @author Laurens Holst (http://www.grauw.nl/) - * - * Copyright 2012 Laurens Holst - * - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - * - */ - -!function(){define("Core/defined",[],function(){"use strict";function e(e){return void 0!==e&&null!==e}return e}),define("Core/DeveloperError",["./defined"],function(e){"use strict";function t(e){this.name="DeveloperError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t.throwInstantiationError=function(){throw new t("This function defines an interface and should not be called directly.")},t}),define("Core/Check",["./defined","./DeveloperError"],function(e,t){"use strict";function n(e){return e+" is required, actual value was undefined"}function r(e,t,n){return"Expected "+n+" to be typeof "+t+", actual typeof was "+e}var i={};return i.typeOf={},i.defined=function(r,i){if(!e(i))throw new t(n(r))},i.typeOf.func=function(e,n){if("function"!=typeof n)throw new t(r(typeof n,"function",e))},i.typeOf.string=function(e,n){if("string"!=typeof n)throw new t(r(typeof n,"string",e))},i.typeOf.number=function(e,n){if("number"!=typeof n)throw new t(r(typeof n,"number",e))},i.typeOf.number.lessThan=function(e,n,r){if(i.typeOf.number(e,n),n>=r)throw new t("Expected "+e+" to be less than "+r+", actual value was "+n)},i.typeOf.number.lessThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n>r)throw new t("Expected "+e+" to be less than or equal to "+r+", actual value was "+n)},i.typeOf.number.greaterThan=function(e,n,r){if(i.typeOf.number(e,n),n<=r)throw new t("Expected "+e+" to be greater than "+r+", actual value was "+n)},i.typeOf.number.greaterThanOrEquals=function(e,n,r){if(i.typeOf.number(e,n),n<r)throw new t("Expected "+e+" to be greater than or equal to"+r+", actual value was "+n)},i.typeOf.object=function(e,n){if("object"!=typeof n)throw new t(r(typeof n,"object",e))},i.typeOf.bool=function(e,n){if("boolean"!=typeof n)throw new t(r(typeof n,"boolean",e))},i.typeOf.number.equals=function(e,n,r,a){if(i.typeOf.number(e,r),i.typeOf.number(n,a),r!==a)throw new t(e+" must be equal to "+n+", the actual values are "+r+" and "+a)},i}),define("Core/freezeObject",["./defined"],function(e){"use strict";var t=Object.freeze;return e(t)||(t=function(e){return e}),t}),define("Core/defaultValue",["./freezeObject"],function(e){"use strict";function t(e,t){return void 0!==e&&null!==e?e:t}return t.EMPTY_OBJECT=e({}),t}),define("ThirdParty/mersenne-twister",[],function(){var e=function(e){void 0==e&&(e=(new Date).getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,this.init_genrand(e)};return e.prototype.init_genrand=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(1812433253*((4294901760&e)>>>16)<<16)+1812433253*(65535&e)+this.mti,this.mt[this.mti]>>>=0}},e.prototype.genrand_int32=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_genrand(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[1&e];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[1&e];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[1&e],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,(e^=e>>>18)>>>0},e.prototype.random=function(){return this.genrand_int32()*(1/4294967296)},e}),define("Core/Math",["../ThirdParty/mersenne-twister","./Check","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};a.EPSILON1=.1,a.EPSILON2=.01,a.EPSILON3=.001,a.EPSILON4=1e-4,a.EPSILON5=1e-5,a.EPSILON6=1e-6,a.EPSILON7=1e-7,a.EPSILON8=1e-8,a.EPSILON9=1e-9,a.EPSILON10=1e-10,a.EPSILON11=1e-11,a.EPSILON12=1e-12,a.EPSILON13=1e-13,a.EPSILON14=1e-14,a.EPSILON15=1e-15,a.EPSILON16=1e-16,a.EPSILON17=1e-17,a.EPSILON18=1e-18,a.EPSILON19=1e-19,a.EPSILON20=1e-20,a.EPSILON21=1e-21,a.GRAVITATIONALPARAMETER=3986004418e5,a.SOLAR_RADIUS=6955e5,a.LUNAR_RADIUS=1737400,a.SIXTY_FOUR_KILOBYTES=65536,a.sign=n(Math.sign,function(e){return e=+e,0===e||e!==e?e:e>0?1:-1}),a.signNotZero=function(e){return e<0?-1:1},a.toSNorm=function(e,t){return t=n(t,255),Math.round((.5*a.clamp(e,-1,1)+.5)*t)},a.fromSNorm=function(e,t){return t=n(t,255),a.clamp(e,0,t)/t*2-1},a.normalize=function(e,t,n){return n=Math.max(n-t,0),0===n?0:a.clamp((e-t)/n,0,1)},a.sinh=n(Math.sinh,function(e){return(Math.exp(e)-Math.exp(-e))/2}),a.cosh=n(Math.cosh,function(e){return(Math.exp(e)+Math.exp(-e))/2}),a.lerp=function(e,t,n){return(1-n)*e+n*t},a.PI=Math.PI,a.ONE_OVER_PI=1/Math.PI,a.PI_OVER_TWO=Math.PI/2,a.PI_OVER_THREE=Math.PI/3,a.PI_OVER_FOUR=Math.PI/4,a.PI_OVER_SIX=Math.PI/6,a.THREE_PI_OVER_TWO=3*Math.PI/2,a.TWO_PI=2*Math.PI,a.ONE_OVER_TWO_PI=1/(2*Math.PI),a.RADIANS_PER_DEGREE=Math.PI/180,a.DEGREES_PER_RADIAN=180/Math.PI,a.RADIANS_PER_ARCSECOND=a.RADIANS_PER_DEGREE/3600,a.toRadians=function(e){return e*a.RADIANS_PER_DEGREE},a.toDegrees=function(e){return e*a.DEGREES_PER_RADIAN},a.convertLongitudeRange=function(e){var t=a.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n},a.clampToLatitudeRange=function(e){return a.clamp(e,-1*a.PI_OVER_TWO,a.PI_OVER_TWO)},a.negativePiToPi=function(e){return a.zeroToTwoPi(e+a.PI)-a.PI},a.zeroToTwoPi=function(e){var t=a.mod(e,a.TWO_PI);return Math.abs(t)<a.EPSILON14&&Math.abs(e)>a.EPSILON14?a.TWO_PI:t},a.mod=function(e,t){return(e%t+t)%t},a.equalsEpsilon=function(e,t,r,i){i=n(i,r);var a=Math.abs(e-t);return a<=i||a<=r*Math.max(Math.abs(e),Math.abs(t))},a.lessThan=function(e,t,n){return e-t<-n},a.lessThanOrEquals=function(e,t,n){return e-t<n},a.greaterThan=function(e,t,n){return e-t>n},a.greaterThanOrEquals=function(e,t,n){return e-t>-n};var o=[1];a.factorial=function(e){var t=o.length;if(e>=t)for(var n=o[t-1],r=t;r<=e;r++)o.push(n*r);return o[e]},a.incrementWrap=function(e,t,r){return r=n(r,0),++e,e>t&&(e=r),e},a.isPowerOfTwo=function(e){return 0!==e&&0==(e&e-1)},a.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e},a.clamp=function(e,t,n){return e<t?t:e>n?n:e};var u=new e;return a.setRandomNumberSeed=function(t){u=new e(t)},a.nextRandomNumber=function(){return u.random()},a.randomBetween=function(e,t){return a.nextRandomNumber()*(t-e)+e},a.acosClamped=function(e){return Math.acos(a.clamp(e,-1,1))},a.asinClamped=function(e){return Math.asin(a.clamp(e,-1,1))},a.chordLength=function(e,t){return 2*t*Math.sin(.5*e)},a.logBase=function(e,t){return Math.log(e)/Math.log(t)},a.cbrt=n(Math.cbrt,function(e){var t=Math.pow(Math.abs(e),1/3);return e<0?-t:t}),a.log2=n(Math.log2,function(e){return Math.log(e)*Math.LOG2E}),a.fog=function(e,t){var n=e*t;return 1-Math.exp(-n*n)},a.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)},a.fastApproximateAtan2=function(e,t){var n,r,i=Math.abs(e);n=Math.abs(t),r=Math.max(i,n),n=Math.min(i,n);var o=n/r;return i=a.fastApproximateAtan(o),i=Math.abs(t)>Math.abs(e)?a.PI_OVER_TWO-i:i,i=e<0?a.PI-i:i,i=t<0?-i:i},a}),define("Core/Cartesian2",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n){this.x=t(e,0),this.y=t(n,0)}o.fromElements=function(e,t,r){return n(r)?(r.x=e,r.y=t,r):new o(e,t)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t):new o(e.x,e.y)},o.fromCartesian3=o.clone,o.fromCartesian4=o.clone,o.packedLength=2,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r]=e.y,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=2*r:t=new Array(2*r);for(var i=0;i<r;++i)o.pack(e[i],t,2*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/2:t=new Array(r/2);for(var i=0;i<r;i+=2){var a=i/2;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y)},o.minimumComponent=function(e){return Math.min(e.x,e.y)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){return o.normalize(e,c),o.normalize(t,l),a.acosClamped(o.dot(c,l))};var f=new o;return o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Y,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)},o.ZERO=i(new o(0,0)),o.UNIT_X=i(new o(1,0)),o.UNIT_Y=i(new o(0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+")"},o}),define("Core/Cartesian3",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0)}o.fromSpherical=function(e,r){n(r)||(r=new o);var i=e.clock,a=e.cone,u=t(e.magnitude,1),s=u*Math.sin(a);return r.x=s*Math.cos(i),r.y=s*Math.sin(i),r.z=u*Math.cos(a),r},o.fromElements=function(e,t,r,i){return n(i)?(i.x=e,i.y=t,i.z=r,i):new o(e,t,r)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new o(e.x,e.y,e.z)},o.fromCartesian4=o.clone,o.packedLength=3,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r]=e.z,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=3*r:t=new Array(3*r);for(var i=0;i<r;++i)o.pack(e[i],t,3*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/3:t=new Array(r/3);for(var i=0;i<r;i+=3){var a=i/3;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o,l=new o;o.angleBetween=function(e,t){o.normalize(e,c),o.normalize(t,l);var n=o.dot(c,l),r=o.magnitude(o.cross(c,l,c));return Math.atan2(r,n)};var f=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,f);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?o.clone(o.UNIT_X,t):o.clone(o.UNIT_Z,t):n.y<=n.z?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_Z,t)},o.projectVector=function(e,t,n){var r=o.dot(e,t)/o.dot(t,t);return o.multiplyByScalar(t,r,n)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)},o.cross=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=t.x,u=t.y,s=t.z,c=i*s-a*u,l=a*o-r*s,f=r*u-i*o;return n.x=c,n.y=l,n.z=f,n},o.midpoint=function(e,t,n){return n.x=.5*(e.x+t.x),n.y=.5*(e.y+t.y),n.z=.5*(e.z+t.z),n},o.fromDegrees=function(e,t,n,r,i){return e=a.toRadians(e),t=a.toRadians(t),o.fromRadians(e,t,n,r,i)};var h=new o,d=new o,p=new o(40680631590769,40680631590769,40408299984661.445);return o.fromRadians=function(e,r,i,a,u){i=t(i,0);var s=n(a)?a.radiiSquared:p,c=Math.cos(r);h.x=c*Math.cos(e),h.y=c*Math.sin(e),h.z=Math.sin(r),h=o.normalize(h,h),o.multiplyComponents(s,h,d);var l=Math.sqrt(o.dot(h,d));return d=o.divideByScalar(d,l,d),h=o.multiplyByScalar(h,i,h),n(u)||(u=new o),o.add(d,h,u)},o.fromDegreesArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromDegrees(u,s,0,t,r[c])}return r},o.fromRadiansArray=function(e,t,r){var i=e.length;n(r)?r.length=i/2:r=new Array(i/2);for(var a=0;a<i;a+=2){var u=e[a],s=e[a+1],c=a/2;r[c]=o.fromRadians(u,s,0,t,r[c])}return r},o.fromDegreesArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromDegrees(u,s,c,t,r[l])}return r},o.fromRadiansArrayHeights=function(e,t,r){var i=e.length;n(r)?r.length=i/3:r=new Array(i/3);for(var a=0;a<i;a+=3){var u=e[a],s=e[a+1],c=e[a+2],l=a/3;r[l]=o.fromRadians(u,s,c,t,r[l])}return r},o.ZERO=i(new o(0,0,0)),o.UNIT_X=i(new o(1,0,0)),o.UNIT_Y=i(new o(0,1,0)),o.UNIT_Z=i(new o(0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+")"},o}),define("Core/AttributeCompression",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError","./Math"],function(e,t,n,r,i,a){"use strict";function o(e){return l[0]=e,l[0]}function u(e){return e>>1^-(1&e)}var s={};s.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){var r=n.x,i=n.y;n.x=(1-Math.abs(i))*a.signNotZero(r),n.y=(1-Math.abs(r))*a.signNotZero(i)}return n.x=a.toSNorm(n.x,t),n.y=a.toSNorm(n.y,t),n},s.octEncode=function(e,t){return s.octEncodeInRange(e,255,t)};var c=new e,l=new Uint8Array(1);s.octEncodeToCartesian4=function(e,t){return s.octEncodeInRange(e,65535,c),t.x=o(c.x*(1/256)),t.y=o(c.x),t.z=o(c.y*(1/256)),t.w=o(c.y),t},s.octDecodeInRange=function(e,n,r,i){if(i.x=a.fromSNorm(e,r),i.y=a.fromSNorm(n,r),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){var o=i.x;i.x=(1-Math.abs(i.y))*a.signNotZero(o),i.y=(1-Math.abs(o))*a.signNotZero(i.y)}return t.normalize(i,i)},s.octDecode=function(e,t,n){return s.octDecodeInRange(e,t,255,n)},s.octDecodeFromCartesian4=function(e,t){var n=e.x,r=e.y,i=e.z,a=e.w,o=256*n+r,u=256*i+a;return s.octDecodeInRange(o,u,65535,t)},s.octPackFloat=function(e){return 256*e.x+e.y};var f=new e;return s.octEncodeFloat=function(e){return s.octEncode(e,f),s.octPackFloat(f)},s.octDecodeFloat=function(e,t){var n=e/256,r=Math.floor(n),i=256*(n-r);return s.octDecode(r,i,t)},s.octPack=function(e,t,n,r){var i=s.octEncodeFloat(e),a=s.octEncodeFloat(t),o=s.octEncode(n,f);return r.x=65536*o.x+i,r.y=65536*o.y+a,r},s.octUnpack=function(e,t,n,r){var i=e.x/65536,a=Math.floor(i),o=65536*(i-a);i=e.y/65536;var u=Math.floor(i),c=65536*(i-u);s.octDecodeFloat(o,t),s.octDecodeFloat(c,n),s.octDecode(a,u,r)},s.compressTextureCoordinates=function(e){return 4096*(4095*e.x|0)+(4095*e.y|0)},s.decompressTextureCoordinates=function(e,t){var n=e/4096,r=Math.floor(n);return t.x=r/4095,t.y=(e-4096*r)/4095,t},s.zigZagDeltaDecode=function(e,t,n){for(var i=e.length,a=0,o=0,s=0,c=0;c<i;++c)a+=u(e[c]),o+=u(t[c]),e[c]=a,t[c]=o,r(n)&&(s+=u(n[c]),n[c]=s)},s}),define("Core/scaleToGeodeticSurface",["./Cartesian3","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(n,i,u,s,c){var l=n.x,f=n.y,h=n.z,d=i.x,p=i.y,m=i.z,E=l*l*d*d,y=f*f*p*p,_=h*h*m*m,T=E+y+_,R=Math.sqrt(1/T),A=e.multiplyByScalar(n,R,a);if(T<s)return isFinite(R)?e.clone(A,c):void 0;var S=u.x,v=u.y,g=u.z,N=o;N.x=A.x*S*2,N.y=A.y*v*2,N.z=A.z*g*2;var I,O,w,M,C,x,P,U,D,F,L,B=(1-R)*e.magnitude(n)/(.5*e.magnitude(N)),b=0;do{B-=b,w=1/(1+B*S),M=1/(1+B*v),C=1/(1+B*g),x=w*w,P=M*M,U=C*C,D=x*w,F=P*M,L=U*C,I=E*x+y*P+_*U-1,O=E*D*S+y*F*v+_*L*g;b=I/(-2*O)}while(Math.abs(I)>r.EPSILON12);return t(c)?(c.x=l*w,c.y=f*M,c.z=h*C,c):new e(l*w,f*M,h*C)}var a=new e,o=new e;return i}),define("Core/Cartographic",["./Cartesian3","./Check","./defaultValue","./defined","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o){"use strict";function u(e,t,r){this.longitude=n(e,0),this.latitude=n(t,0),this.height=n(r,0)}u.fromRadians=function(e,t,i,a){return i=n(i,0),r(a)?(a.longitude=e,a.latitude=t,a.height=i,a):new u(e,t,i)},u.fromDegrees=function(e,t,n,r){return e=a.toRadians(e),t=a.toRadians(t),u.fromRadians(e,t,n,r)};var s=new e,c=new e,l=new e,f=new e(1/6378137,1/6378137,1/6356752.314245179),h=new e(1/40680631590769,1/40680631590769,1/40408299984661.445),d=a.EPSILON1;return u.fromCartesian=function(t,n,i){var p=r(n)?n.oneOverRadii:f,m=r(n)?n.oneOverRadiiSquared:h,E=r(n)?n._centerToleranceSquared:d,y=o(t,p,m,E,c);if(r(y)){var _=e.multiplyComponents(y,m,s);_=e.normalize(_,_);var T=e.subtract(t,y,l),R=Math.atan2(_.y,_.x),A=Math.asin(_.z),S=a.sign(e.dot(T,t))*e.magnitude(T);return r(i)?(i.longitude=R,i.latitude=A,i.height=S,i):new u(R,A,S)}},u.toCartesian=function(t,n,r){return e.fromRadians(t.longitude,t.latitude,t.height,n,r)},u.clone=function(e,t){if(r(e))return r(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new u(e.longitude,e.latitude,e.height)},u.equals=function(e,t){return e===t||r(e)&&r(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height},u.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n},u.ZERO=i(new u(0,0,0)),u.prototype.clone=function(e){return u.clone(this,e)},u.prototype.equals=function(e){return u.equals(this,e)},u.prototype.equalsEpsilon=function(e,t){return u.equalsEpsilon(this,e,t)},u.prototype.toString=function(){return"("+this.longitude+", "+this.latitude+", "+this.height+")"},u}),define("Core/defineProperties",["./defined"],function(e){"use strict";var t=function(){try{return"x"in Object.defineProperty({},"x",{})}catch(e){return!1}}(),n=Object.defineProperties;return t&&e(n)||(n=function(e){return e}),n}),define("Core/Ellipsoid",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math","./scaleToGeodeticSurface"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(t,n,i,a){n=r(n,0),i=r(i,0),a=r(a,0),t._radii=new e(n,i,a),t._radiiSquared=new e(n*n,i*i,a*a),t._radiiToTheFourth=new e(n*n*n*n,i*i*i*i,a*a*a*a),t._oneOverRadii=new e(0===n?0:1/n,0===i?0:1/i,0===a?0:1/a),t._oneOverRadiiSquared=new e(0===n?0:1/(n*n),0===i?0:1/(i*i),0===a?0:1/(a*a)),t._minimumRadius=Math.min(n,i,a),t._maximumRadius=Math.max(n,i,a),t._centerToleranceSquared=s.EPSILON1,0!==t._radiiSquared.z&&(t._squaredXOverSquaredZ=t._radiiSquared.x/t._radiiSquared.z)}function f(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,l(this,e,t,n)}a(f.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}}),f.clone=function(t,n){if(i(t)){var r=t._radii;return i(n)?(e.clone(r,n._radii),e.clone(t._radiiSquared,n._radiiSquared),e.clone(t._radiiToTheFourth,n._radiiToTheFourth),e.clone(t._oneOverRadii,n._oneOverRadii),e.clone(t._oneOverRadiiSquared,n._oneOverRadiiSquared),n._minimumRadius=t._minimumRadius,n._maximumRadius=t._maximumRadius,n._centerToleranceSquared=t._centerToleranceSquared,n):new f(r.x,r.y,r.z)}},f.fromCartesian3=function(e,t){return i(t)||(t=new f),i(e)?(l(t,e.x,e.y,e.z),t):t},f.WGS84=u(new f(6378137,6378137,6356752.314245179)),f.UNIT_SPHERE=u(new f(1,1,1)),f.MOON=u(new f(s.LUNAR_RADIUS,s.LUNAR_RADIUS,s.LUNAR_RADIUS)),f.prototype.clone=function(e){return f.clone(this,e)},f.packedLength=e.packedLength,f.pack=function(t,n,i){return i=r(i,0),e.pack(t._radii,n,i),n},f.unpack=function(t,n,i){n=r(n,0);var a=e.unpack(t,n);return f.fromCartesian3(a,i)},f.prototype.geocentricSurfaceNormal=e.normalize,f.prototype.geodeticSurfaceNormalCartographic=function(t,n){var r=t.longitude,a=t.latitude,o=Math.cos(a),u=o*Math.cos(r),s=o*Math.sin(r),c=Math.sin(a);return i(n)||(n=new e),n.x=u,n.y=s,n.z=c,e.normalize(n,n)},f.prototype.geodeticSurfaceNormal=function(t,n){return i(n)||(n=new e),n=e.multiplyComponents(t,this._oneOverRadiiSquared,n),e.normalize(n,n)};var h=new e,d=new e;f.prototype.cartographicToCartesian=function(t,n){var r=h,a=d;this.geodeticSurfaceNormalCartographic(t,r),e.multiplyComponents(this._radiiSquared,r,a);var o=Math.sqrt(e.dot(r,a));return e.divideByScalar(a,o,a),e.multiplyByScalar(r,t.height,r),i(n)||(n=new e),e.add(a,r,n)},f.prototype.cartographicArrayToCartesianArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;r++)t[r]=this.cartographicToCartesian(e[r],t[r]);return t};var p=new e,m=new e,E=new e;return f.prototype.cartesianToCartographic=function(n,r){var a=this.scaleToGeodeticSurface(n,m);if(i(a)){var o=this.geodeticSurfaceNormal(a,p),u=e.subtract(n,a,E),c=Math.atan2(o.y,o.x),l=Math.asin(o.z),f=s.sign(e.dot(u,n))*e.magnitude(u);return i(r)?(r.longitude=c,r.latitude=l,r.height=f,r):new t(c,l,f)}},f.prototype.cartesianArrayToCartographicArray=function(e,t){var n=e.length;i(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.cartesianToCartographic(e[r],t[r]);return t},f.prototype.scaleToGeodeticSurface=function(e,t){return c(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)},f.prototype.scaleToGeocentricSurface=function(t,n){i(n)||(n=new e);var r=t.x,a=t.y,o=t.z,u=this._oneOverRadiiSquared,s=1/Math.sqrt(r*r*u.x+a*a*u.y+o*o*u.z);return e.multiplyByScalar(t,s,n)},f.prototype.transformPositionToScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._oneOverRadii,n)},f.prototype.transformPositionFromScaledSpace=function(t,n){return i(n)||(n=new e),e.multiplyComponents(t,this._radii,n)},f.prototype.equals=function(t){return this===t||i(t)&&e.equals(this._radii,t._radii)},f.prototype.toString=function(){return this._radii.toString()},f.prototype.getSurfaceNormalIntersectionWithZAxis=function(t,n,a){n=r(n,0);var o=this._squaredXOverSquaredZ;if(i(a)||(a=new e),a.x=0,a.y=0,a.z=t.z*(1-o),!(Math.abs(a.z)>=this._radii.z-n))return a},f}),define("Core/GeographicProjection",["./Cartesian3","./Cartographic","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid"],function(e,t,n,r,i,a,o){"use strict";function u(e){this._ellipsoid=n(e,o.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}return i(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}}),u.prototype.project=function(t,n){var i=this._semimajorAxis,a=t.longitude*i,o=t.latitude*i,u=t.height;return r(n)?(n.x=a,n.y=o,n.z=u,n):new e(a,o,u)},u.prototype.unproject=function(e,n){var i=this._oneOverSemimajorAxis,a=e.x*i,o=e.y*i,u=e.z;return r(n)?(n.longitude=a,n.latitude=o,n.height=u,n):new t(a,o,u)},u}),define("Core/Intersect",["./freezeObject"],function(e){"use strict";return e({OUTSIDE:-1,INTERSECTING:0,INSIDE:1})}),define("Core/Interval",["./defaultValue"],function(e){"use strict";function t(t,n){this.start=e(t,0),this.stop=e(n,0)}return t}),define("Core/Matrix3",["./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i,a,o,u,s,c){this[0]=n(e,0),this[1]=n(i,0),this[2]=n(u,0),this[3]=n(t,0),this[4]=n(a,0),this[5]=n(s,0),this[6]=n(r,0),this[7]=n(o,0),this[8]=n(c,0)}function c(e){for(var t=0,n=0;n<9;++n){var r=e[n];t+=r*r}return Math.sqrt(t)}function l(e){for(var t=0,n=0;n<3;++n){var r=e[s.getElementIndex(m[n],p[n])];t+=2*r*r}return Math.sqrt(t)}function f(e,t){for(var n=u.EPSILON15,r=0,i=1,a=0;a<3;++a){var o=Math.abs(e[s.getElementIndex(m[a],p[a])]);o>r&&(i=a,r=o)}var c=1,l=0,f=p[i],h=m[i];if(Math.abs(e[s.getElementIndex(h,f)])>n){var d,E=e[s.getElementIndex(h,h)],y=e[s.getElementIndex(f,f)],_=e[s.getElementIndex(h,f)],T=(E-y)/2/_;d=T<0?-1/(-T+Math.sqrt(1+T*T)):1/(T+Math.sqrt(1+T*T)),c=1/Math.sqrt(1+d*d),l=d*c}return t=s.clone(s.IDENTITY,t),t[s.getElementIndex(f,f)]=t[s.getElementIndex(h,h)]=c,t[s.getElementIndex(h,f)]=l,t[s.getElementIndex(f,h)]=-l,t}s.packedLength=9,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e[0],t[r++]=e[1],t[r++]=e[2],t[r++]=e[3],t[r++]=e[4],t[r++]=e[5],t[r++]=e[6],t[r++]=e[7],t[r++]=e[8],t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t++],i[1]=e[t++],i[2]=e[t++],i[3]=e[t++],i[4]=e[t++],i[5]=e[t++],i[6]=e[t++],i[7]=e[t++],i[8]=e[t++],i},s.clone=function(e,t){if(r(e))return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new s(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])},s.fromArray=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i[0]=e[t],i[1]=e[t+1],i[2]=e[t+2],i[3]=e[t+3],i[4]=e[t+4],i[5]=e[t+5],i[6]=e[t+6],i[7]=e[t+7],i[8]=e[t+8],i},s.fromColumnMajorArray=function(e,t){return s.clone(e,t)},s.fromRowMajorArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new s(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])},s.fromQuaternion=function(e,t){var n=e.x*e.x,i=e.x*e.y,a=e.x*e.z,o=e.x*e.w,u=e.y*e.y,c=e.y*e.z,l=e.y*e.w,f=e.z*e.z,h=e.z*e.w,d=e.w*e.w,p=n-u-f+d,m=2*(i-h),E=2*(a+l),y=2*(i+h),_=-n+u-f+d,T=2*(c-o),R=2*(a-l),A=2*(c+o),S=-n-u+f+d;return r(t)?(t[0]=p,t[1]=y,t[2]=R,t[3]=m,t[4]=_,t[5]=A,t[6]=E,t[7]=T,t[8]=S,t):new s(p,m,E,y,_,T,R,A,S)},s.fromHeadingPitchRoll=function(e,t){var n=Math.cos(-e.pitch),i=Math.cos(-e.heading),a=Math.cos(e.roll),o=Math.sin(-e.pitch),u=Math.sin(-e.heading),c=Math.sin(e.roll),l=n*i,f=-a*u+c*o*i,h=c*u+a*o*i,d=n*u,p=a*i+c*o*u,m=-c*i+a*o*u,E=-o,y=c*n,_=a*n;return r(t)?(t[0]=l,t[1]=d,t[2]=E,t[3]=f,t[4]=p,t[5]=y,t[6]=h,t[7]=m,t[8]=_,t):new s(l,f,h,d,p,m,E,y,_)},s.fromScale=function(e,t){return r(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new s(e.x,0,0,0,e.y,0,0,0,e.z)},s.fromUniformScale=function(e,t){return r(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new s(e,0,0,0,e,0,0,0,e)},s.fromCrossProduct=function(e,t){return r(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new s(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)},s.fromRotationX=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new s(1,0,0,0,n,-i,0,i,n)},s.fromRotationY=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new s(n,0,i,0,1,0,-i,0,n)},s.fromRotationZ=function(e,t){var n=Math.cos(e),i=Math.sin(e);return r(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new s(n,-i,0,i,n,0,0,0,1)},s.toArray=function(e,t){return r(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]},s.getElementIndex=function(e,t){return 3*e+t},s.getColumn=function(e,t,n){var r=3*t,i=e[r],a=e[r+1],o=e[r+2];return n.x=i,n.y=a,n.z=o,n},s.setColumn=function(e,t,n,r){r=s.clone(e,r);var i=3*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r},s.getRow=function(e,t,n){var r=e[t],i=e[t+3],a=e[t+6];return n.x=r,n.y=i,n.z=a,n},s.setRow=function(e,t,n,r){return r=s.clone(e,r),r[t]=n.x,r[t+3]=n.y,r[t+6]=n.z,r};var h=new e;s.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],h)),n.y=e.magnitude(e.fromElements(t[3],t[4],t[5],h)),n.z=e.magnitude(e.fromElements(t[6],t[7],t[8],h)),n};var d=new e;s.getMaximumScale=function(t){return s.getScale(t,d),e.maximumComponent(d)},s.multiply=function(e,t,n){var r=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],i=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],a=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],o=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],u=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],s=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],c=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],l=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],f=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=r,n[1]=i,n[2]=a,n[3]=o,n[4]=u,n[5]=s,n[6]=c,n[7]=l,n[8]=f,n},s.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n},s.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n},s.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[3]*i+e[6]*a,u=e[1]*r+e[4]*i+e[7]*a,s=e[2]*r+e[5]*i+e[8]*a;return n.x=o,n.y=u,n.z=s,n},s.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n},s.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n},s.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t},s.transpose=function(e,t){var n=e[0],r=e[3],i=e[6],a=e[1],o=e[4],u=e[7],s=e[2],c=e[5],l=e[8];return t[0]=n,t[1]=r,t[2]=i,t[3]=a,t[4]=o,t[5]=u,t[6]=s,t[7]=c,t[8]=l,t};var p=[1,0,0],m=[2,2,1],E=new s,y=new s;return s.computeEigenDecomposition=function(e,t){var n=u.EPSILON20,i=0,a=0;r(t)||(t={}) -;for(var o=t.unitary=s.clone(s.IDENTITY,t.unitary),h=t.diagonal=s.clone(e,t.diagonal),d=n*c(h);a<10&&l(h)>d;)f(h,E),s.transpose(E,y),s.multiply(h,E,h),s.multiply(y,h,h),s.multiply(o,E,o),++i>2&&(++a,i=0);return t},s.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t},s.determinant=function(e){var t=e[0],n=e[3],r=e[6],i=e[1],a=e[4],o=e[7],u=e[2],s=e[5],c=e[8];return t*(a*c-s*o)+i*(s*r-n*c)+u*(n*o-a*r)},s.inverse=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[3],o=e[4],u=e[5],c=e[6],l=e[7],f=e[8],h=s.determinant(e);t[0]=o*f-l*u,t[1]=l*i-r*f,t[2]=r*u-o*i,t[3]=c*u-a*f,t[4]=n*f-c*i,t[5]=a*i-n*u,t[6]=a*l-c*o,t[7]=c*r-n*l,t[8]=n*o-a*r;var d=1/h;return s.multiplyByScalar(t,d,t)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n},s.IDENTITY=o(new s(1,0,0,0,1,0,0,0,1)),s.ZERO=o(new s(0,0,0,0,0,0,0,0,0)),s.COLUMN0ROW0=0,s.COLUMN0ROW1=1,s.COLUMN0ROW2=2,s.COLUMN1ROW0=3,s.COLUMN1ROW1=4,s.COLUMN1ROW2=5,s.COLUMN2ROW0=6,s.COLUMN2ROW1=7,s.COLUMN2ROW2=8,i(s.prototype,{length:{get:function(){return s.packedLength}}}),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this[0]+", "+this[3]+", "+this[6]+")\n("+this[1]+", "+this[4]+", "+this[7]+")\n("+this[2]+", "+this[5]+", "+this[8]+")"},s}),define("Core/Cartesian4",["./Check","./defaultValue","./defined","./DeveloperError","./freezeObject","./Math"],function(e,t,n,r,i,a){"use strict";function o(e,n,r,i){this.x=t(e,0),this.y=t(n,0),this.z=t(r,0),this.w=t(i,0)}o.fromElements=function(e,t,r,i,a){return n(a)?(a.x=e,a.y=t,a.z=r,a.w=i,a):new o(e,t,r,i)},o.fromColor=function(e,t){return n(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new o(e.red,e.green,e.blue,e.alpha)},o.clone=function(e,t){if(n(e))return n(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new o(e.x,e.y,e.z,e.w)},o.packedLength=4,o.pack=function(e,n,r){return r=t(r,0),n[r++]=e.x,n[r++]=e.y,n[r++]=e.z,n[r]=e.w,n},o.unpack=function(e,r,i){return r=t(r,0),n(i)||(i=new o),i.x=e[r++],i.y=e[r++],i.z=e[r++],i.w=e[r],i},o.packArray=function(e,t){var r=e.length;n(t)?t.length=4*r:t=new Array(4*r);for(var i=0;i<r;++i)o.pack(e[i],t,4*i);return t},o.unpackArray=function(e,t){var r=e.length;n(t)?t.length=r/4:t=new Array(r/4);for(var i=0;i<r;i+=4){var a=i/4;t[a]=o.unpack(e,i,t[a])}return t},o.fromArray=o.unpack,o.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)},o.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)},o.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n},o.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n},o.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},o.magnitude=function(e){return Math.sqrt(o.magnitudeSquared(e))};var u=new o;o.distance=function(e,t){return o.subtract(e,t,u),o.magnitude(u)},o.distanceSquared=function(e,t){return o.subtract(e,t,u),o.magnitudeSquared(u)},o.normalize=function(e,t){var n=o.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t},o.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},o.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n},o.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n},o.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},o.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},o.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},o.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},o.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},o.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var s=new o;o.lerp=function(e,t,n,r){return o.multiplyByScalar(t,n,s),r=o.multiplyByScalar(e,1-n,r),o.add(s,r,r)};var c=new o;o.mostOrthogonalAxis=function(e,t){var n=o.normalize(e,c);return o.abs(n,n),t=n.x<=n.y?n.x<=n.z?n.x<=n.w?o.clone(o.UNIT_X,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t):n.y<=n.z?n.y<=n.w?o.clone(o.UNIT_Y,t):o.clone(o.UNIT_W,t):n.z<=n.w?o.clone(o.UNIT_Z,t):o.clone(o.UNIT_W,t)},o.equals=function(e,t){return e===t||n(e)&&n(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},o.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]},o.equalsEpsilon=function(e,t,r,i){return e===t||n(e)&&n(t)&&a.equalsEpsilon(e.x,t.x,r,i)&&a.equalsEpsilon(e.y,t.y,r,i)&&a.equalsEpsilon(e.z,t.z,r,i)&&a.equalsEpsilon(e.w,t.w,r,i)},o.ZERO=i(new o(0,0,0,0)),o.UNIT_X=i(new o(1,0,0,0)),o.UNIT_Y=i(new o(0,1,0,0)),o.UNIT_Z=i(new o(0,0,1,0)),o.UNIT_W=i(new o(0,0,0,1)),o.prototype.clone=function(e){return o.clone(this,e)},o.prototype.equals=function(e){return o.equals(this,e)},o.prototype.equalsEpsilon=function(e,t,n){return o.equalsEpsilon(this,e,t,n)},o.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"};var l=new Float32Array(1);return o.packFloat=function(e,t){if(n(t)||(t=new o),l[0]=e,0===(e=l[0]))return o.clone(o.ZERO,t);var r,i=e<0?1:0;isFinite(e)?(e=Math.abs(e),r=Math.floor(a.logBase(e,10))+1,e/=Math.pow(10,r)):(e=.1,r=38);var u=256*e;return t.x=Math.floor(u),u=256*(u-t.x),t.y=Math.floor(u),u=256*(u-t.y),t.z=Math.floor(u),t.w=2*(r+38)+i,t},o.unpackFloat=function(e){var t=e.w/2,n=Math.floor(t),r=2*(t-n);if(n-=38,r=2*r-1,r=-r,n>=38)return r<0?Number.NEGATIVE_INFINITY:Number.POSITIVE_INFINITY;var i=r*e.x*(1/256);return i+=r*e.y*(1/65536),(i+=r*e.z*(1/16777216))*Math.pow(10,n)},o}),define("Core/RuntimeError",["./defined"],function(e){"use strict";function t(e){this.name="RuntimeError",this.message=e;var t;try{throw new Error}catch(e){t=e.stack}this.stack=t}return e(Object.create)&&(t.prototype=Object.create(Error.prototype),t.prototype.constructor=t),t.prototype.toString=function(){var t=this.name+": "+this.message;return e(this.stack)&&(t+="\n"+this.stack.toString()),t},t}),define("Core/Matrix4",["./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./freezeObject","./Math","./Matrix3","./RuntimeError"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t,n,i,a,o,u,s,c,l,f,h,d,p,m,E){this[0]=r(e,0),this[1]=r(a,0),this[2]=r(c,0),this[3]=r(d,0),this[4]=r(t,0),this[5]=r(o,0),this[6]=r(l,0),this[7]=r(p,0),this[8]=r(n,0),this[9]=r(u,0),this[10]=r(f,0),this[11]=r(m,0),this[12]=r(i,0),this[13]=r(s,0),this[14]=r(h,0),this[15]=r(E,0)}l.packedLength=16,l.pack=function(e,t,n){return n=r(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t},l.unpack=function(e,t,n){return t=r(t,0),i(n)||(n=new l),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n},l.clone=function(e,t){if(i(e))return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new l(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])},l.fromArray=l.unpack,l.fromColumnMajorArray=function(e,t){return l.clone(e,t)},l.fromRowMajorArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new l(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])},l.fromRotationTranslation=function(t,n,a){return n=r(n,e.ZERO),i(a)?(a[0]=t[0],a[1]=t[1],a[2]=t[2],a[3]=0,a[4]=t[3],a[5]=t[4],a[6]=t[5],a[7]=0,a[8]=t[6],a[9]=t[7],a[10]=t[8],a[11]=0,a[12]=n.x,a[13]=n.y,a[14]=n.z,a[15]=1,a):new l(t[0],t[3],t[6],n.x,t[1],t[4],t[7],n.y,t[2],t[5],t[8],n.z,0,0,0,1)},l.fromTranslationQuaternionRotationScale=function(e,t,n,r){i(r)||(r=new l);var a=n.x,o=n.y,u=n.z,s=t.x*t.x,c=t.x*t.y,f=t.x*t.z,h=t.x*t.w,d=t.y*t.y,p=t.y*t.z,m=t.y*t.w,E=t.z*t.z,y=t.z*t.w,_=t.w*t.w,T=s-d-E+_,R=2*(c-y),A=2*(f+m),S=2*(c+y),v=-s+d-E+_,g=2*(p-h),N=2*(f-m),I=2*(p+h),O=-s-d+E+_;return r[0]=T*a,r[1]=S*a,r[2]=N*a,r[3]=0,r[4]=R*o,r[5]=v*o,r[6]=I*o,r[7]=0,r[8]=A*u,r[9]=g*u,r[10]=O*u,r[11]=0,r[12]=e.x,r[13]=e.y,r[14]=e.z,r[15]=1,r},l.fromTranslationRotationScale=function(e,t){return l.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)},l.fromTranslation=function(e,t){return l.fromRotationTranslation(s.IDENTITY,e,t)},l.fromScale=function(e,t){return i(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)},l.fromUniformScale=function(e,t){return i(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new l(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};var f=new e,h=new e,d=new e;l.fromCamera=function(t,n){var r=t.position,a=t.direction,o=t.up;e.normalize(a,f),e.normalize(e.cross(f,o,h),h),e.normalize(e.cross(h,f,d),d);var u=h.x,s=h.y,c=h.z,p=f.x,m=f.y,E=f.z,y=d.x,_=d.y,T=d.z,R=r.x,A=r.y,S=r.z,v=u*-R+s*-A+c*-S,g=y*-R+_*-A+T*-S,N=p*R+m*A+E*S;return i(n)?(n[0]=u,n[1]=y,n[2]=-p,n[3]=0,n[4]=s,n[5]=_,n[6]=-m,n[7]=0,n[8]=c,n[9]=T,n[10]=-E,n[11]=0,n[12]=v,n[13]=g,n[14]=N,n[15]=1,n):new l(u,s,c,v,y,_,T,g,-p,-m,-E,N,0,0,0,1)},l.computePerspectiveFieldOfView=function(e,t,n,r,i){var a=Math.tan(.5*e),o=1/a,u=o/t,s=(r+n)/(n-r),c=2*r*n/(n-r);return i[0]=u,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=o,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=s,i[11]=-1,i[12]=0,i[13]=0,i[14]=c,i[15]=0,i},l.computeOrthographicOffCenter=function(e,t,n,r,i,a,o){var u=1/(t-e),s=1/(r-n),c=1/(a-i),l=-(t+e)*u,f=-(r+n)*s,h=-(a+i)*c;return u*=2,s*=2,c*=-2,o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=0,o[12]=l,o[13]=f,o[14]=h,o[15]=1,o},l.computePerspectiveOffCenter=function(e,t,n,r,i,a,o){var u=2*i/(t-e),s=2*i/(r-n),c=(t+e)/(t-e),l=(r+n)/(r-n),f=-(a+i)/(a-i),h=-2*a*i/(a-i);return o[0]=u,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=c,o[9]=l,o[10]=f,o[11]=-1,o[12]=0,o[13]=0,o[14]=h,o[15]=0,o},l.computeInfinitePerspectiveOffCenter=function(e,t,n,r,i,a){var o=2*i/(t-e),u=2*i/(r-n),s=(t+e)/(t-e),c=(r+n)/(r-n),l=-2*i;return a[0]=o,a[1]=0,a[2]=0,a[3]=0,a[4]=0,a[5]=u,a[6]=0,a[7]=0,a[8]=s,a[9]=c,a[10]=-1,a[11]=-1,a[12]=0,a[13]=0,a[14]=l,a[15]=0,a},l.computeViewportTransformation=function(e,t,n,i){e=r(e,r.EMPTY_OBJECT);var a=r(e.x,0),o=r(e.y,0),u=r(e.width,0),s=r(e.height,0);t=r(t,0),n=r(n,1);var c=.5*u,l=.5*s,f=.5*(n-t),h=c,d=l,p=f,m=a+c,E=o+l,y=t+f;return i[0]=h,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=d,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=p,i[11]=0,i[12]=m,i[13]=E,i[14]=y,i[15]=1,i},l.computeView=function(t,n,r,i,a){return a[0]=i.x,a[1]=r.x,a[2]=-n.x,a[3]=0,a[4]=i.y,a[5]=r.y,a[6]=-n.y,a[7]=0,a[8]=i.z,a[9]=r.z,a[10]=-n.z,a[11]=0,a[12]=-e.dot(i,t),a[13]=-e.dot(r,t),a[14]=e.dot(n,t),a[15]=1,a},l.toArray=function(e,t){return i(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]},l.getElementIndex=function(e,t){return 4*e+t},l.getColumn=function(e,t,n){var r=4*t,i=e[r],a=e[r+1],o=e[r+2],u=e[r+3];return n.x=i,n.y=a,n.z=o,n.w=u,n},l.setColumn=function(e,t,n,r){r=l.clone(e,r);var i=4*t;return r[i]=n.x,r[i+1]=n.y,r[i+2]=n.z,r[i+3]=n.w,r},l.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var p=new e;l.setScale=function(t,n,r){var i=l.getScale(t,p),a=e.divideComponents(n,i,p);return l.multiplyByScale(t,a,r)},l.getRow=function(e,t,n){var r=e[t],i=e[t+4],a=e[t+8],o=e[t+12];return n.x=r,n.y=i,n.z=a,n.w=o,n},l.setRow=function(e,t,n,r){return r=l.clone(e,r),r[t]=n.x,r[t+4]=n.y,r[t+8]=n.z,r[t+12]=n.w,r};var m=new e;l.getScale=function(t,n){return n.x=e.magnitude(e.fromElements(t[0],t[1],t[2],m)),n.y=e.magnitude(e.fromElements(t[4],t[5],t[6],m)),n.z=e.magnitude(e.fromElements(t[8],t[9],t[10],m)),n};var E=new e;l.getMaximumScale=function(t){return l.getScale(t,E),e.maximumComponent(E)},l.multiply=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[3],u=e[4],s=e[5],c=e[6],l=e[7],f=e[8],h=e[9],d=e[10],p=e[11],m=e[12],E=e[13],y=e[14],_=e[15],T=t[0],R=t[1],A=t[2],S=t[3],v=t[4],g=t[5],N=t[6],I=t[7],O=t[8],w=t[9],M=t[10],C=t[11],x=t[12],P=t[13],U=t[14],D=t[15],F=r*T+u*R+f*A+m*S,L=i*T+s*R+h*A+E*S,B=a*T+c*R+d*A+y*S,b=o*T+l*R+p*A+_*S,z=r*v+u*g+f*N+m*I,q=i*v+s*g+h*N+E*I,G=a*v+c*g+d*N+y*I,V=o*v+l*g+p*N+_*I,X=r*O+u*w+f*M+m*C,W=i*O+s*w+h*M+E*C,H=a*O+c*w+d*M+y*C,Y=o*O+l*w+p*M+_*C,k=r*x+u*P+f*U+m*D,j=i*x+s*P+h*U+E*D,Z=a*x+c*P+d*U+y*D,K=o*x+l*P+p*U+_*D;return n[0]=F,n[1]=L,n[2]=B,n[3]=b,n[4]=z,n[5]=q,n[6]=G,n[7]=V,n[8]=X,n[9]=W,n[10]=H,n[11]=Y,n[12]=k,n[13]=j,n[14]=Z,n[15]=K,n},l.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n},l.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n},l.multiplyTransformation=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=e[12],d=e[13],p=e[14],m=t[0],E=t[1],y=t[2],_=t[4],T=t[5],R=t[6],A=t[8],S=t[9],v=t[10],g=t[12],N=t[13],I=t[14],O=r*m+o*E+c*y,w=i*m+u*E+l*y,M=a*m+s*E+f*y,C=r*_+o*T+c*R,x=i*_+u*T+l*R,P=a*_+s*T+f*R,U=r*A+o*S+c*v,D=i*A+u*S+l*v,F=a*A+s*S+f*v,L=r*g+o*N+c*I+h,B=i*g+u*N+l*I+d,b=a*g+s*N+f*I+p;return n[0]=O,n[1]=w,n[2]=M,n[3]=0,n[4]=C,n[5]=x,n[6]=P,n[7]=0,n[8]=U,n[9]=D,n[10]=F,n[11]=0,n[12]=L,n[13]=B,n[14]=b,n[15]=1,n},l.multiplyByMatrix3=function(e,t,n){var r=e[0],i=e[1],a=e[2],o=e[4],u=e[5],s=e[6],c=e[8],l=e[9],f=e[10],h=t[0],d=t[1],p=t[2],m=t[3],E=t[4],y=t[5],_=t[6],T=t[7],R=t[8],A=r*h+o*d+c*p,S=i*h+u*d+l*p,v=a*h+s*d+f*p,g=r*m+o*E+c*y,N=i*m+u*E+l*y,I=a*m+s*E+f*y,O=r*_+o*T+c*R,w=i*_+u*T+l*R,M=a*_+s*T+f*R;return n[0]=A,n[1]=S,n[2]=v,n[3]=0,n[4]=g,n[5]=N,n[6]=I,n[7]=0,n[8]=O,n[9]=w,n[10]=M,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n},l.multiplyByTranslation=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=r*e[0]+i*e[4]+a*e[8]+e[12],u=r*e[1]+i*e[5]+a*e[9]+e[13],s=r*e[2]+i*e[6]+a*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=o,n[13]=u,n[14]=s,n[15]=e[15],n};var y=new e;l.multiplyByUniformScale=function(e,t,n){return y.x=t,y.y=t,y.z=t,l.multiplyByScale(e,y,n)},l.multiplyByScale=function(e,t,n){var r=t.x,i=t.y,a=t.z;return 1===r&&1===i&&1===a?l.clone(e,n):(n[0]=r*e[0],n[1]=r*e[1],n[2]=r*e[2],n[3]=0,n[4]=i*e[4],n[5]=i*e[5],n[6]=i*e[6],n[7]=0,n[8]=a*e[8],n[9]=a*e[9],n[10]=a*e[10],n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=1,n)},l.multiplyByVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=t.w,u=e[0]*r+e[4]*i+e[8]*a+e[12]*o,s=e[1]*r+e[5]*i+e[9]*a+e[13]*o,c=e[2]*r+e[6]*i+e[10]*a+e[14]*o,l=e[3]*r+e[7]*i+e[11]*a+e[15]*o;return n.x=u,n.y=s,n.z=c,n.w=l,n},l.multiplyByPointAsVector=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a,u=e[1]*r+e[5]*i+e[9]*a,s=e[2]*r+e[6]*i+e[10]*a;return n.x=o,n.y=u,n.z=s,n},l.multiplyByPoint=function(e,t,n){var r=t.x,i=t.y,a=t.z,o=e[0]*r+e[4]*i+e[8]*a+e[12],u=e[1]*r+e[5]*i+e[9]*a+e[13],s=e[2]*r+e[6]*i+e[10]*a+e[14];return n.x=o,n.y=u,n.z=s,n},l.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n},l.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t},l.transpose=function(e,t){var n=e[1],r=e[2],i=e[3],a=e[6],o=e[7],u=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=r,t[9]=a,t[10]=e[10],t[11]=e[14],t[12]=i,t[13]=o,t[14]=u,t[15]=e[15],t},l.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t},l.equals=function(e,t){return e===t||i(e)&&i(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]},l.equalsEpsilon=function(e,t,n){return e===t||i(e)&&i(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n},l.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t},l.getRotation=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var _=new s,T=new s,R=new t,A=new t(0,0,0,1);return l.inverse=function(e,n){var r=e[0],i=e[4],a=e[8],o=e[12],f=e[1],h=e[5],d=e[9],p=e[13],m=e[2],E=e[6],y=e[10],S=e[14],v=e[3],g=e[7],N=e[11],I=e[15],O=y*I,w=S*N,M=E*I,C=S*g,x=E*N,P=y*g,U=m*I,D=S*v,F=m*N,L=y*v,B=m*g,b=E*v,z=O*h+C*d+x*p-(w*h+M*d+P*p),q=w*f+U*d+L*p-(O*f+D*d+F*p),G=M*f+D*h+B*p-(C*f+U*h+b*p),V=P*f+F*h+b*d-(x*f+L*h+B*d),X=w*i+M*a+P*o-(O*i+C*a+x*o),W=O*r+D*a+F*o-(w*r+U*a+L*o),H=C*r+U*i+b*o-(M*r+D*i+B*o),Y=x*r+L*i+B*a-(P*r+F*i+b*a);O=a*p,w=o*d,M=i*p,C=o*h,x=i*d,P=a*h,U=r*p,D=o*f,F=r*d,L=a*f,B=r*h,b=i*f;var k=O*g+C*N+x*I-(w*g+M*N+P*I),j=w*v+U*N+L*I-(O*v+D*N+F*I),Z=M*v+D*g+B*I-(C*v+U*g+b*I),K=P*v+F*g+b*N-(x*v+L*g+B*N),J=M*y+P*S+w*E-(x*S+O*E+C*y),Q=F*S+O*m+D*y-(U*y+L*S+w*m),$=U*E+b*S+C*m-(B*S+M*m+D*E),ee=B*y+x*m+L*E-(F*E+b*y+P*m),te=r*z+i*q+a*G+o*V;if(Math.abs(te)<u.EPSILON21){if(s.equalsEpsilon(l.getRotation(e,_),T,u.EPSILON7)&&t.equals(l.getRow(e,3,R),A))return n[0]=0,n[1]=0,n[2]=0,n[3]=0,n[4]=0,n[5]=0,n[6]=0,n[7]=0,n[8]=0,n[9]=0,n[10]=0,n[11]=0,n[12]=-e[12],n[13]=-e[13],n[14]=-e[14],n[15]=1,n;throw new c("matrix is not invertible because its determinate is zero.")}return te=1/te,n[0]=z*te,n[1]=q*te,n[2]=G*te,n[3]=V*te,n[4]=X*te,n[5]=W*te,n[6]=H*te,n[7]=Y*te,n[8]=k*te,n[9]=j*te,n[10]=Z*te,n[11]=K*te,n[12]=J*te,n[13]=Q*te,n[14]=$*te,n[15]=ee*te,n},l.inverseTransformation=function(e,t){var n=e[0],r=e[1],i=e[2],a=e[4],o=e[5],u=e[6],s=e[8],c=e[9],l=e[10],f=e[12],h=e[13],d=e[14],p=-n*f-r*h-i*d,m=-a*f-o*h-u*d,E=-s*f-c*h-l*d;return t[0]=n,t[1]=a,t[2]=s,t[3]=0,t[4]=r,t[5]=o,t[6]=c,t[7]=0,t[8]=i,t[9]=u,t[10]=l,t[11]=0,t[12]=p,t[13]=m,t[14]=E,t[15]=1,t},l.IDENTITY=o(new l(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1)),l.ZERO=o(new l(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0)),l.COLUMN0ROW0=0,l.COLUMN0ROW1=1,l.COLUMN0ROW2=2,l.COLUMN0ROW3=3,l.COLUMN1ROW0=4,l.COLUMN1ROW1=5,l.COLUMN1ROW2=6,l.COLUMN1ROW3=7,l.COLUMN2ROW0=8,l.COLUMN2ROW1=9,l.COLUMN2ROW2=10,l.COLUMN2ROW3=11,l.COLUMN3ROW0=12,l.COLUMN3ROW1=13,l.COLUMN3ROW2=14,l.COLUMN3ROW3=15,a(l.prototype,{length:{get:function(){return l.packedLength}}}),l.prototype.clone=function(e){return l.clone(this,e)},l.prototype.equals=function(e){return l.equals(this,e)},l.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]},l.prototype.equalsEpsilon=function(e,t){return l.equalsEpsilon(this,e,t)},l.prototype.toString=function(){return"("+this[0]+", "+this[4]+", "+this[8]+", "+this[12]+")\n("+this[1]+", "+this[5]+", "+this[9]+", "+this[13]+")\n("+this[2]+", "+this[6]+", "+this[10]+", "+this[14]+")\n("+this[3]+", "+this[7]+", "+this[11]+", "+this[15]+")"},l}),define("Core/Rectangle",["./Cartographic","./Check","./defaultValue","./defined","./defineProperties","./Ellipsoid","./freezeObject","./Math"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.west=n(e,0),this.south=n(t,0),this.east=n(r,0),this.north=n(i,0)}i(s.prototype,{width:{get:function(){return s.computeWidth(this)}},height:{get:function(){return s.computeHeight(this)}}}),s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.west,t[r++]=e.south,t[r++]=e.east,t[r]=e.north,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.west=e[t++],i.south=e[t++],i.east=e[t++],i.north=e[t],i},s.computeWidth=function(e){var t=e.east,n=e.west;return t<n&&(t+=u.TWO_PI),t-n},s.computeHeight=function(e){return e.north-e.south},s.fromDegrees=function(e,t,i,a,o){return e=u.toRadians(n(e,0)),t=u.toRadians(n(t,0)),i=u.toRadians(n(i,0)),a=u.toRadians(n(a,0)),r(o)?(o.west=e,o.south=t,o.east=i,o.north=a,o):new s(e,t,i,a)},s.fromRadians=function(e,t,i,a,o){return r(o)?(o.west=n(e,0),o.south=n(t,0),o.east=n(i,0),o.north=n(a,0),o):new s(e,t,i,a)},s.fromCartographicArray=function(e,t){for(var n=Number.MAX_VALUE,i=-Number.MAX_VALUE,a=Number.MAX_VALUE,o=-Number.MAX_VALUE,c=Number.MAX_VALUE,l=-Number.MAX_VALUE,f=0,h=e.length;f<h;f++){var d=e[f];n=Math.min(n,d.longitude),i=Math.max(i,d.longitude),c=Math.min(c,d.latitude),l=Math.max(l,d.latitude);var p=d.longitude>=0?d.longitude:d.longitude+u.TWO_PI;a=Math.min(a,p),o=Math.max(o,p)}return i-n>o-a&&(n=a,i=o,i>u.PI&&(i-=u.TWO_PI),n>u.PI&&(n-=u.TWO_PI)),r(t)?(t.west=n,t.south=c,t.east=i,t.north=l,t):new s(n,c,i,l)},s.fromCartesianArray=function(e,t,i){t=n(t,a.WGS84);for(var o=Number.MAX_VALUE,c=-Number.MAX_VALUE,l=Number.MAX_VALUE,f=-Number.MAX_VALUE,h=Number.MAX_VALUE,d=-Number.MAX_VALUE,p=0,m=e.length;p<m;p++){var E=t.cartesianToCartographic(e[p]);o=Math.min(o,E.longitude),c=Math.max(c,E.longitude),h=Math.min(h,E.latitude),d=Math.max(d,E.latitude);var y=E.longitude>=0?E.longitude:E.longitude+u.TWO_PI;l=Math.min(l,y),f=Math.max(f,y)}return c-o>f-l&&(o=l,c=f,c>u.PI&&(c-=u.TWO_PI),o>u.PI&&(o-=u.TWO_PI)),r(i)?(i.west=o,i.south=h,i.east=c,i.north=d,i):new s(o,h,c,d)},s.clone=function(e,t){if(r(e))return r(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new s(e.west,e.south,e.east,e.north)},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n},s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.validate=function(e){},s.southwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.south,n.height=0,n):new e(t.west,t.south)},s.northwest=function(t,n){return r(n)?(n.longitude=t.west,n.latitude=t.north,n.height=0,n):new e(t.west,t.north)},s.northeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.north,n.height=0,n):new e(t.east,t.north)},s.southeast=function(t,n){return r(n)?(n.longitude=t.east,n.latitude=t.south,n.height=0,n):new e(t.east,t.south)},s.center=function(t,n){var i=t.east,a=t.west;i<a&&(i+=u.TWO_PI);var o=u.negativePiToPi(.5*(a+i)),s=.5*(t.south+t.north);return r(n)?(n.longitude=o,n.latitude=s,n.height=0,n):new e(o,s)},s.intersection=function(e,t,n){var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.negativePiToPi(Math.max(a,c)),f=u.negativePiToPi(Math.min(i,o));if(!((e.west<e.east||t.west<t.east)&&f<=l)){var h=Math.max(e.south,t.south),d=Math.min(e.north,t.north);if(!(h>=d))return r(n)?(n.west=l,n.south=h,n.east=f,n.north=d,n):new s(l,h,f,d)}},s.simpleIntersection=function(e,t,n){var i=Math.max(e.west,t.west),a=Math.max(e.south,t.south),o=Math.min(e.east,t.east),u=Math.min(e.north,t.north);if(!(a>=u||i>=o))return r(n)?(n.west=i,n.south=a,n.east=o,n.north=u,n):new s(i,a,o,u)},s.union=function(e,t,n){r(n)||(n=new s);var i=e.east,a=e.west,o=t.east,c=t.west;i<a&&o>0?i+=u.TWO_PI:o<c&&i>0&&(o+=u.TWO_PI),i<a&&c<0?c+=u.TWO_PI:o<c&&a<0&&(a+=u.TWO_PI);var l=u.convertLongitudeRange(Math.min(a,c)),f=u.convertLongitudeRange(Math.max(i,o));return n.west=l,n.south=Math.min(e.south,t.south),n.east=f,n.north=Math.max(e.north,t.north),n},s.expand=function(e,t,n){return r(n)||(n=new s),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n},s.contains=function(e,t){var n=t.longitude,r=t.latitude,i=e.west,a=e.east;return a<i&&(a+=u.TWO_PI,n<0&&(n+=u.TWO_PI)),(n>i||u.equalsEpsilon(n,i,u.EPSILON14))&&(n<a||u.equalsEpsilon(n,a,u.EPSILON14))&&r>=e.south&&r<=e.north};var c=new e;return s.subsample=function(e,t,i,o){t=n(t,a.WGS84),i=n(i,0),r(o)||(o=[]);var l=0,f=e.north,h=e.south,d=e.east,p=e.west,m=c;m.height=i,m.longitude=p,m.latitude=f,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=h,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.latitude=f<0?f:h>0?h:0;for(var E=1;E<8;++E)m.longitude=-Math.PI+E*u.PI_OVER_TWO,s.contains(e,m)&&(o[l]=t.cartographicToCartesian(m,o[l]),l++);return 0===m.latitude&&(m.longitude=p,o[l]=t.cartographicToCartesian(m,o[l]),l++,m.longitude=d,o[l]=t.cartographicToCartesian(m,o[l]),l++),o.length=l,o},s.MAX_VALUE=o(new s(-Math.PI,-u.PI_OVER_TWO,Math.PI,u.PI_OVER_TWO)),s}),define("Core/BoundingSphere",["./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./Ellipsoid","./GeographicProjection","./Intersect","./Interval","./Math","./Matrix3","./Matrix4","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h){"use strict";function d(t,n){this.center=e.clone(r(t,e.ZERO)),this.radius=r(n,0)}var p=new e,m=new e,E=new e,y=new e,_=new e,T=new e,R=new e,A=new e,S=new e,v=new e,g=new e,N=new e,I=4/3*c.PI;d.fromPoints=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r,a=e.clone(t[0],R),o=e.clone(a,p),u=e.clone(a,m),s=e.clone(a,E),c=e.clone(a,y),l=e.clone(a,_),f=e.clone(a,T),h=t.length;for(r=1;r<h;r++){e.clone(t[r],a);var I=a.x,O=a.y,w=a.z;I<o.x&&e.clone(a,o),I>c.x&&e.clone(a,c),O<u.y&&e.clone(a,u),O>l.y&&e.clone(a,l),w<s.z&&e.clone(a,s),w>f.z&&e.clone(a,f)}var M=e.magnitudeSquared(e.subtract(c,o,A)),C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=o,U=c,D=M;C>D&&(D=C,P=u,U=l),x>D&&(D=x,P=s,U=f);var F=S;F.x=.5*(P.x+U.x),F.y=.5*(P.y+U.y),F.z=.5*(P.z+U.z);var L=e.magnitudeSquared(e.subtract(U,F,A)),B=Math.sqrt(L),b=v;b.x=o.x,b.y=u.y,b.z=s.z;var z=g;z.x=c.x,z.y=l.y,z.z=f.z;var q=e.midpoint(b,z,N),G=0;for(r=0;r<h;r++){e.clone(t[r],a);var V=e.magnitude(e.subtract(a,q,A));V>G&&(G=V);var X=e.magnitudeSquared(e.subtract(a,F,A));if(X>L){var W=Math.sqrt(X);B=.5*(B+W),L=B*B;var H=W-B;F.x=(B*F.x+H*a.x)/W,F.y=(B*F.y+H*a.y)/W,F.z=(B*F.z+H*a.z)/W}}return B<G?(e.clone(F,n.center),n.radius=B):(e.clone(q,n.center),n.radius=G),n};var O=new o,w=new e,M=new e,C=new t,x=new t;d.fromRectangle2D=function(e,t,n){return d.fromRectangleWithHeights2D(e,t,0,0,n)},d.fromRectangleWithHeights2D=function(t,n,a,o,u){if(i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;n=r(n,O),h.southwest(t,C),C.height=a,h.northeast(t,x),x.height=o;var s=n.project(C,w),c=n.project(x,M),l=c.x-s.x,f=c.y-s.y,p=c.z-s.z;u.radius=.5*Math.sqrt(l*l+f*f+p*p);var m=u.center;return m.x=s.x+.5*l,m.y=s.y+.5*f,m.z=s.z+.5*p,u};var P=[];d.fromRectangle3D=function(t,n,o,u){if(n=r(n,a.WGS84),o=r(o,0),i(u)||(u=new d),!i(t))return u.center=e.clone(e.ZERO,u.center),u.radius=0,u;var s=h.subsample(t,n,o,P);return d.fromPoints(s,u)},d.fromVertices=function(t,n,a,o){if(i(o)||(o=new d),!i(t)||0===t.length)return o.center=e.clone(e.ZERO,o.center),o.radius=0,o;n=r(n,e.ZERO),a=r(a,3);var u=R;u.x=t[0]+n.x,u.y=t[1]+n.y,u.z=t[2]+n.z;var s,c=e.clone(u,p),l=e.clone(u,m),f=e.clone(u,E),h=e.clone(u,y),I=e.clone(u,_),O=e.clone(u,T),w=t.length;for(s=0;s<w;s+=a){var M=t[s]+n.x,C=t[s+1]+n.y,x=t[s+2]+n.z;u.x=M,u.y=C,u.z=x,M<c.x&&e.clone(u,c),M>h.x&&e.clone(u,h),C<l.y&&e.clone(u,l),C>I.y&&e.clone(u,I),x<f.z&&e.clone(u,f),x>O.z&&e.clone(u,O)}var P=e.magnitudeSquared(e.subtract(h,c,A)),U=e.magnitudeSquared(e.subtract(I,l,A)),D=e.magnitudeSquared(e.subtract(O,f,A)),F=c,L=h,B=P;U>B&&(B=U,F=l,L=I),D>B&&(B=D,F=f,L=O);var b=S;b.x=.5*(F.x+L.x),b.y=.5*(F.y+L.y),b.z=.5*(F.z+L.z);var z=e.magnitudeSquared(e.subtract(L,b,A)),q=Math.sqrt(z),G=v;G.x=c.x,G.y=l.y,G.z=f.z;var V=g;V.x=h.x,V.y=I.y,V.z=O.z;var X=e.midpoint(G,V,N),W=0;for(s=0;s<w;s+=a){u.x=t[s]+n.x,u.y=t[s+1]+n.y,u.z=t[s+2]+n.z;var H=e.magnitude(e.subtract(u,X,A));H>W&&(W=H);var Y=e.magnitudeSquared(e.subtract(u,b,A));if(Y>z){var k=Math.sqrt(Y);q=.5*(q+k),z=q*q;var j=k-q;b.x=(q*b.x+j*u.x)/k,b.y=(q*b.y+j*u.y)/k,b.z=(q*b.z+j*u.z)/k}}return q<W?(e.clone(b,o.center),o.radius=q):(e.clone(X,o.center),o.radius=W),o},d.fromEncodedCartesianVertices=function(t,n,r){if(i(r)||(r=new d),!i(t)||!i(n)||t.length!==n.length||0===t.length)return r.center=e.clone(e.ZERO,r.center),r.radius=0,r;var a=R;a.x=t[0]+n[0],a.y=t[1]+n[1],a.z=t[2]+n[2];var o,u=e.clone(a,p),s=e.clone(a,m),c=e.clone(a,E),l=e.clone(a,y),f=e.clone(a,_),h=e.clone(a,T),I=t.length;for(o=0;o<I;o+=3){var O=t[o]+n[o],w=t[o+1]+n[o+1],M=t[o+2]+n[o+2];a.x=O,a.y=w,a.z=M,O<u.x&&e.clone(a,u),O>l.x&&e.clone(a,l),w<s.y&&e.clone(a,s),w>f.y&&e.clone(a,f),M<c.z&&e.clone(a,c),M>h.z&&e.clone(a,h)}var C=e.magnitudeSquared(e.subtract(l,u,A)),x=e.magnitudeSquared(e.subtract(f,s,A)),P=e.magnitudeSquared(e.subtract(h,c,A)),U=u,D=l,F=C;x>F&&(F=x,U=s,D=f),P>F&&(F=P,U=c,D=h);var L=S;L.x=.5*(U.x+D.x),L.y=.5*(U.y+D.y),L.z=.5*(U.z+D.z);var B=e.magnitudeSquared(e.subtract(D,L,A)),b=Math.sqrt(B),z=v;z.x=u.x,z.y=s.y,z.z=c.z;var q=g;q.x=l.x,q.y=f.y,q.z=h.z;var G=e.midpoint(z,q,N),V=0;for(o=0;o<I;o+=3){a.x=t[o]+n[o],a.y=t[o+1]+n[o+1],a.z=t[o+2]+n[o+2];var X=e.magnitude(e.subtract(a,G,A));X>V&&(V=X);var W=e.magnitudeSquared(e.subtract(a,L,A));if(W>B){var H=Math.sqrt(W);b=.5*(b+H),B=b*b;var Y=H-b;L.x=(b*L.x+Y*a.x)/H,L.y=(b*L.y+Y*a.y)/H,L.z=(b*L.z+Y*a.z)/H}}return b<V?(e.clone(L,r.center),r.radius=b):(e.clone(G,r.center),r.radius=V),r}, -d.fromCornerPoints=function(t,n,r){i(r)||(r=new d);var a=e.midpoint(t,n,r.center);return r.radius=e.distance(a,n),r},d.fromEllipsoid=function(t,n){return i(n)||(n=new d),e.clone(e.ZERO,n.center),n.radius=t.maximumRadius,n};var U=new e;d.fromBoundingSpheres=function(t,n){if(i(n)||(n=new d),!i(t)||0===t.length)return n.center=e.clone(e.ZERO,n.center),n.radius=0,n;var r=t.length;if(1===r)return d.clone(t[0],n);if(2===r)return d.union(t[0],t[1],n);var a,o=[];for(a=0;a<r;a++)o.push(t[a].center);n=d.fromPoints(o,n);var u=n.center,s=n.radius;for(a=0;a<r;a++){var c=t[a];s=Math.max(s,e.distance(u,c.center,U)+c.radius)}return n.radius=s,n};var D=new e,F=new e,L=new e;d.fromOrientedBoundingBox=function(t,n){i(n)||(n=new d);var r=t.halfAxes,a=l.getColumn(r,0,D),o=l.getColumn(r,1,F),u=l.getColumn(r,2,L);return e.add(a,o,a),e.add(a,u,a),n.center=e.clone(t.center,n.center),n.radius=e.magnitude(a),n},d.clone=function(t,n){if(i(t))return i(n)?(n.center=e.clone(t.center,n.center),n.radius=t.radius,n):new d(t.center,t.radius)},d.packedLength=4,d.pack=function(e,t,n){n=r(n,0);var i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t},d.unpack=function(e,t,n){t=r(t,0),i(n)||(n=new d);var a=n.center;return a.x=e[t++],a.y=e[t++],a.z=e[t++],n.radius=e[t],n};var B=new e,b=new e;d.union=function(t,n,r){i(r)||(r=new d);var a=t.center,o=t.radius,u=n.center,s=n.radius,c=e.subtract(u,a,B),l=e.magnitude(c);if(o>=l+s)return t.clone(r),r;if(s>=l+o)return n.clone(r),r;var f=.5*(o+l+s),h=e.multiplyByScalar(c,(-o+f)/l,b);return e.add(h,a,h),e.clone(h,r.center),r.radius=f,r};var z=new e;d.expand=function(t,n,r){r=d.clone(t,r);var i=e.magnitude(e.subtract(n,r.center,z));return i>r.radius&&(r.radius=i),r},d.intersectPlane=function(t,n){var r=t.center,i=t.radius,a=n.normal,o=e.dot(a,r)+n.distance;return o<-i?u.OUTSIDE:o<i?u.INTERSECTING:u.INSIDE},d.transform=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=f.getMaximumScale(t)*e.radius,n};var q=new e;d.distanceSquaredTo=function(t,n){var r=e.subtract(t.center,n,q);return e.magnitudeSquared(r)-t.radius*t.radius},d.transformWithoutScale=function(e,t,n){return i(n)||(n=new d),n.center=f.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var G=new e;d.computePlaneDistances=function(t,n,r,a){i(a)||(a=new s);var o=e.subtract(t.center,n,G),u=e.dot(r,o);return a.start=u-t.radius,a.stop=u+t.radius,a};for(var V=new e,X=new e,W=new e,H=new e,Y=new e,k=new t,j=new Array(8),Z=0;Z<8;++Z)j[Z]=new e;var K=new o;return d.projectTo2D=function(t,n,i){n=r(n,K);var a=n.ellipsoid,o=t.center,u=t.radius,s=a.geodeticSurfaceNormal(o,V),c=e.cross(e.UNIT_Z,s,X);e.normalize(c,c);var l=e.cross(s,c,W);e.normalize(l,l),e.multiplyByScalar(s,u,s),e.multiplyByScalar(l,u,l),e.multiplyByScalar(c,u,c);var f=e.negate(l,Y),h=e.negate(c,H),p=j,m=p[0];e.add(s,l,m),e.add(m,c,m),m=p[1],e.add(s,l,m),e.add(m,h,m),m=p[2],e.add(s,f,m),e.add(m,h,m),m=p[3],e.add(s,f,m),e.add(m,c,m),e.negate(s,s),m=p[4],e.add(s,l,m),e.add(m,c,m),m=p[5],e.add(s,l,m),e.add(m,h,m),m=p[6],e.add(s,f,m),e.add(m,h,m),m=p[7],e.add(s,f,m),e.add(m,c,m);for(var E=p.length,y=0;y<E;++y){var _=p[y];e.add(o,_,_);var T=a.cartesianToCartographic(_,k);n.project(T,_)}i=d.fromPoints(p,i),o=i.center;var R=o.x,A=o.y,S=o.z;return o.x=S,o.y=R,o.z=A,i},d.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)},d.equals=function(t,n){return t===n||i(t)&&i(n)&&e.equals(t.center,n.center)&&t.radius===n.radius},d.prototype.intersectPlane=function(e){return d.intersectPlane(this,e)},d.prototype.distanceSquaredTo=function(e){return d.distanceSquaredTo(this,e)},d.prototype.computePlaneDistances=function(e,t,n){return d.computePlaneDistances(this,e,t,n)},d.prototype.isOccluded=function(e){return d.isOccluded(this,e)},d.prototype.equals=function(e){return d.equals(this,e)},d.prototype.clone=function(e){return d.clone(this,e)},d.prototype.volume=function(){var e=this.radius;return I*e*e*e},d}),define("Core/EllipsoidalOccluder",["./BoundingSphere","./Cartesian3","./Check","./defaultValue","./defined","./defineProperties","./Rectangle"],function(e,t,n,r,i,a,o){"use strict";function u(e,n){this._ellipsoid=e,this._cameraPosition=new t,this._cameraPositionInScaledSpace=new t,this._distanceToLimbInScaledSpaceSquared=0,i(n)&&(this.cameraPosition=n)}function s(e,n,r){var i=e.transformPositionToScaledSpace(n,p),a=t.magnitudeSquared(i),o=Math.sqrt(a),u=t.divideByScalar(i,o,m);a=Math.max(1,a),o=Math.max(1,o);var s=t.dot(u,r),c=t.magnitude(t.cross(u,r,u)),l=1/o;return 1/(s*l-c*(Math.sqrt(a-1)*l))}function c(e,n,r){if(!(n<=0||n===1/0||n!==n))return t.multiplyByScalar(e,n,r)}function l(e,n){return t.equals(n,t.ZERO)?n:(e.transformPositionToScaledSpace(n,E),t.normalize(E,E))}a(u.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){var n=this._ellipsoid,r=n.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=t.magnitudeSquared(r)-1;t.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=r,this._distanceToLimbInScaledSpaceSquared=i}}});var f=new t;u.prototype.isPointVisible=function(e){var t=this._ellipsoid,n=t.transformPositionToScaledSpace(e,f);return this.isScaledSpacePointVisible(n)},u.prototype.isScaledSpacePointVisible=function(e){var n=this._cameraPositionInScaledSpace,r=this._distanceToLimbInScaledSpaceSquared,i=t.subtract(e,n,f),a=-t.dot(i,n);return!(r<0?a>0:a>r&&a*a/t.magnitudeSquared(i)>r)},u.prototype.computeHorizonCullingPoint=function(e,n,r){i(r)||(r=new t);for(var a=this._ellipsoid,o=l(a,e),u=0,f=0,h=n.length;f<h;++f){var d=n[f],p=s(a,d,o);u=Math.max(u,p)}return c(o,u,r)};var h=new t;u.prototype.computeHorizonCullingPointFromVertices=function(e,n,a,o,u){i(u)||(u=new t),o=r(o,t.ZERO);for(var f=this._ellipsoid,d=l(f,e),p=0,m=0,E=n.length;m<E;m+=a){h.x=n[m]+o.x,h.y=n[m+1]+o.y,h.z=n[m+2]+o.z;var y=s(f,h,d);p=Math.max(p,y)}return c(d,p,u)};var d=[];u.prototype.computeHorizonCullingPointFromRectangle=function(n,r,i){var a=o.subsample(n,r,0,d),u=e.fromPoints(a);if(!(t.magnitude(u.center)<.1*r.minimumRadius))return this.computeHorizonCullingPoint(u.center,a,i)};var p=new t,m=new t,E=new t;return u}),define("Core/WebGLConstants",["./freezeObject"],function(e){"use strict";return e({DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGB_ETC1_WEBGL:36196,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047})}),define("Core/IndexDatatype",["./defined","./DeveloperError","./freezeObject","./Math","./WebGLConstants"],function(e,t,n,r,i){"use strict";var a={UNSIGNED_BYTE:i.UNSIGNED_BYTE,UNSIGNED_SHORT:i.UNSIGNED_SHORT,UNSIGNED_INT:i.UNSIGNED_INT};return a.getSizeInBytes=function(e){switch(e){case a.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case a.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case a.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}},a.fromSizeInBytes=function(e){switch(e){case 2:return a.UNSIGNED_SHORT;case 4:return a.UNSIGNED_INT;case 1:return a.UNSIGNED_BYTE}},a.validate=function(t){return e(t)&&(t===a.UNSIGNED_BYTE||t===a.UNSIGNED_SHORT||t===a.UNSIGNED_INT)},a.createTypedArray=function(e,t){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)},a.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=r.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)},n(a)}),define("Core/Intersections2D",["./Cartesian2","./Cartesian3","./Check","./defined","./DeveloperError"],function(e,t,n,r,i){"use strict";var a={};return a.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,a,o){r(o)?o.length=0:o=[];var u,s,c;t?(u=n<e,s=i<e,c=a<e):(u=n>e,s=i>e,c=a>e);var l,f,h,d,p,m,E=u+s+c;return 1===E?u?(l=(e-n)/(i-n),f=(e-n)/(a-n),o.push(1),o.push(2),1!==f&&(o.push(-1),o.push(0),o.push(2),o.push(f)),1!==l&&(o.push(-1),o.push(0),o.push(1),o.push(l))):s?(h=(e-i)/(a-i),d=(e-i)/(n-i),o.push(2),o.push(0),1!==d&&(o.push(-1),o.push(1),o.push(0),o.push(d)),1!==h&&(o.push(-1),o.push(1),o.push(2),o.push(h))):c&&(p=(e-a)/(n-a),m=(e-a)/(i-a),o.push(0),o.push(1),1!==m&&(o.push(-1),o.push(2),o.push(1),o.push(m)),1!==p&&(o.push(-1),o.push(2),o.push(0),o.push(p))):2===E?u||n===e?s||i===e?c||a===e||(f=(e-n)/(a-n),h=(e-i)/(a-i),o.push(2),o.push(-1),o.push(0),o.push(2),o.push(f),o.push(-1),o.push(1),o.push(2),o.push(h)):(m=(e-a)/(i-a),l=(e-n)/(i-n),o.push(1),o.push(-1),o.push(2),o.push(1),o.push(m),o.push(-1),o.push(0),o.push(1),o.push(l)):(d=(e-i)/(n-i),p=(e-a)/(n-a),o.push(0),o.push(-1),o.push(1),o.push(0),o.push(d),o.push(-1),o.push(2),o.push(0),o.push(p)):3!==E&&(o.push(0),o.push(1),o.push(2)),o},a.computeBarycentricCoordinates=function(e,n,i,a,o,u,s,c,l){var f=i-s,h=s-o,d=u-c,p=a-c,m=1/(d*f+h*p),E=n-c,y=e-s,_=(d*y+h*E)*m,T=(-p*y+f*E)*m,R=1-_-T;return r(l)?(l.x=_,l.y=T,l.z=R,l):new t(_,T,R)},a.computeLineSegmentLineSegmentIntersection=function(t,n,i,a,o,u,s,c,l){var f=(s-o)*(n-u)-(c-u)*(t-o),h=(i-t)*(n-u)-(a-n)*(t-o),d=(c-u)*(i-t)-(s-o)*(a-n);if(0!==d){var p=f/d,m=h/d;return p>=0&&p<=1&&m>=0&&m<=1?(r(l)||(l=new e),l.x=t+p*(i-t),l.y=n+p*(a-n),l):void 0}},a}),define("Core/AxisAlignedBoundingBox",["./Cartesian3","./Check","./defaultValue","./defined","./Intersect"],function(e,t,n,r,i){"use strict";function a(t,i,a){this.minimum=e.clone(n(t,e.ZERO)),this.maximum=e.clone(n(i,e.ZERO)),a=r(a)?e.clone(a):e.midpoint(this.minimum,this.maximum,new e),this.center=a}a.fromPoints=function(t,n){if(r(n)||(n=new a),!r(t)||0===t.length)return n.minimum=e.clone(e.ZERO,n.minimum),n.maximum=e.clone(e.ZERO,n.maximum),n.center=e.clone(e.ZERO,n.center),n;for(var i=t[0].x,o=t[0].y,u=t[0].z,s=t[0].x,c=t[0].y,l=t[0].z,f=t.length,h=1;h<f;h++){var d=t[h],p=d.x,m=d.y,E=d.z;i=Math.min(p,i),s=Math.max(p,s),o=Math.min(m,o),c=Math.max(m,c),u=Math.min(E,u),l=Math.max(E,l)}var y=n.minimum;y.x=i,y.y=o,y.z=u;var _=n.maximum;return _.x=s,_.y=c,_.z=l,n.center=e.midpoint(y,_,n.center),n},a.clone=function(t,n){if(r(t))return r(n)?(n.minimum=e.clone(t.minimum,n.minimum),n.maximum=e.clone(t.maximum,n.maximum),n.center=e.clone(t.center,n.center),n):new a(t.minimum,t.maximum,t.center)},a.equals=function(t,n){return t===n||r(t)&&r(n)&&e.equals(t.center,n.center)&&e.equals(t.minimum,n.minimum)&&e.equals(t.maximum,n.maximum)};var o=new e;return a.intersectPlane=function(t,n){o=e.subtract(t.maximum,t.minimum,o);var r=e.multiplyByScalar(o,.5,o),a=n.normal,u=r.x*Math.abs(a.x)+r.y*Math.abs(a.y)+r.z*Math.abs(a.z),s=e.dot(t.center,a)+n.distance;return s-u>0?i.INSIDE:s+u<0?i.OUTSIDE:i.INTERSECTING},a.prototype.clone=function(e){return a.clone(this,e)},a.prototype.intersectPlane=function(e){return a.intersectPlane(this,e)},a.prototype.equals=function(e){return a.equals(this,e)},a}),define("Core/QuadraticRealPolynomial",["./DeveloperError","./Math"],function(e,t){"use strict";function n(e,n,r){var i=e+n;return t.sign(e)!==t.sign(n)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(n)))<r?0:i}var r={};return r.computeDiscriminant=function(e,t,n){return t*t-4*e*n},r.computeRealRoots=function(e,r,i){var a;if(0===e)return 0===r?[]:[-i/r];if(0===r){if(0===i)return[0,0];var o=Math.abs(i),u=Math.abs(e);if(o<u&&o/u<t.EPSILON14)return[0,0];if(o>u&&u/o<t.EPSILON14)return[];if((a=-i/e)<0)return[];var s=Math.sqrt(a);return[-s,s]}if(0===i)return a=-r/e,a<0?[a,0]:[0,a];var c=r*r,l=4*e*i,f=n(c,-l,t.EPSILON14);if(f<0)return[];var h=-.5*n(r,t.sign(r)*Math.sqrt(f),t.EPSILON14);return r>0?[h/e,i/h]:[i/h,h/e]},r}),define("Core/CubicRealPolynomial",["./DeveloperError","./QuadraticRealPolynomial"],function(e,t){"use strict";function n(e,t,n,r){var i,a,o=e,u=t/3,s=n/3,c=r,l=o*s,f=u*c,h=u*u,d=s*s,p=o*s-h,m=o*c-u*s,E=u*c-d,y=4*p*E-m*m;if(y<0){var _,T,R;h*f>=l*d?(_=o,T=p,R=-2*u*p+o*m):(_=c,T=E,R=-c*m+2*s*E);var A=R<0?-1:1,S=-A*Math.abs(_)*Math.sqrt(-y);a=-R+S;var v=a/2,g=v<0?-Math.pow(-v,1/3):Math.pow(v,1/3),N=a===S?-g:-T/g;return i=T<=0?g+N:-R/(g*g+N*N+T),h*f>=l*d?[(i-u)/o]:[-c/(i+s)]}var I=p,O=-2*u*p+o*m,w=E,M=-c*m+2*s*E,C=Math.sqrt(y),x=Math.sqrt(3)/2,P=Math.abs(Math.atan2(o*C,-O)/3);i=2*Math.sqrt(-I);var U=Math.cos(P);a=i*U;var D=i*(-U/2-x*Math.sin(P)),F=a+D>2*u?a-u:D-u,L=o,B=F/L;P=Math.abs(Math.atan2(c*C,-M)/3),i=2*Math.sqrt(-w),U=Math.cos(P),a=i*U,D=i*(-U/2-x*Math.sin(P));var b=-c,z=a+D<2*s?a+s:D+s,q=b/z,G=L*z,V=-F*z-L*b,X=F*b,W=(s*V-u*X)/(-u*V+s*G);return B<=W?B<=q?W<=q?[B,W,q]:[B,q,W]:[q,B,W]:B<=q?[W,B,q]:W<=q?[W,q,B]:[q,W,B]}var r={};return r.computeDiscriminant=function(e,t,n,r){var i=e*e,a=t*t,o=n*n;return 18*e*t*n*r+a*o-27*i*(r*r)-4*(e*o*n+a*t*r)},r.computeRealRoots=function(e,r,i,a){var o,u;if(0===e)return t.computeRealRoots(r,i,a);if(0===r){if(0===i){if(0===a)return[0,0,0];u=-a/e;var s=u<0?-Math.pow(-u,1/3):Math.pow(u,1/3);return[s,s,s]}return 0===a?(o=t.computeRealRoots(e,0,i),0===o.Length?[0]:[o[0],0,o[1]]):n(e,0,i,a)}return 0===i?0===a?(u=-r/e,u<0?[u,0,0]:[0,0,u]):n(e,r,0,a):0===a?(o=t.computeRealRoots(e,r,i),0===o.length?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]):n(e,r,i,a)},r}),define("Core/QuarticRealPolynomial",["./CubicRealPolynomial","./DeveloperError","./Math","./QuadraticRealPolynomial"],function(e,t,n,r){"use strict";function i(t,i,a,o){var u=t*t,s=i-3*u/8,c=a-i*t/2+u*t/8,l=o-a*t/4+i*u/16-3*u*u/256,f=e.computeRealRoots(1,2*s,s*s-4*l,-c*c);if(f.length>0){var h=-t/4,d=f[f.length-1];if(Math.abs(d)<n.EPSILON14){var p=r.computeRealRoots(1,s,l);if(2===p.length){var m,E=p[0],y=p[1];if(E>=0&&y>=0){var _=Math.sqrt(E),T=Math.sqrt(y);return[h-T,h-_,h+_,h+T]}if(E>=0&&y<0)return m=Math.sqrt(E),[h-m,h+m];if(E<0&&y>=0)return m=Math.sqrt(y),[h-m,h+m]}return[]}if(d>0){var R=Math.sqrt(d),A=(s+d-c/R)/2,S=(s+d+c/R)/2,v=r.computeRealRoots(1,R,A),g=r.computeRealRoots(1,-R,S);return 0!==v.length?(v[0]+=h,v[1]+=h,0!==g.length?(g[0]+=h,g[1]+=h,v[1]<=g[0]?[v[0],v[1],g[0],g[1]]:g[1]<=v[0]?[g[0],g[1],v[0],v[1]]:v[0]>=g[0]&&v[1]<=g[1]?[g[0],v[0],v[1],g[1]]:g[0]>=v[0]&&g[1]<=v[1]?[v[0],g[0],g[1],v[1]]:v[0]>g[0]&&v[0]<g[1]?[g[0],v[0],g[1],v[1]]:[v[0],g[0],v[1],g[1]]):v):0!==g.length?(g[0]+=h,g[1]+=h,g):[]}}return[]}function a(t,i,a,o){var u=a*a,s=i*i,c=t*t,l=-2*i,f=a*t+s-4*o,h=c*o-a*i*t+u,d=e.computeRealRoots(1,l,f,h);if(d.length>0){var p,m,E=d[0],y=i-E,_=y*y,T=t/2,R=y/2,A=_-4*o,S=_+4*Math.abs(o),v=c-4*E,g=c+4*Math.abs(E);if(E<0||A*g<v*S){var N=Math.sqrt(v);p=N/2,m=0===N?0:(t*R-a)/N}else{var I=Math.sqrt(A);p=0===I?0:(t*R-a)/I,m=I/2}var O,w;0===T&&0===p?(O=0,w=0):n.sign(T)===n.sign(p)?(O=T+p,w=E/O):(w=T-p,O=E/w);var M,C;0===R&&0===m?(M=0,C=0):n.sign(R)===n.sign(m)?(M=R+m,C=o/M):(C=R-m,M=o/C);var x=r.computeRealRoots(1,O,M),P=r.computeRealRoots(1,w,C);if(0!==x.length)return 0!==P.length?x[1]<=P[0]?[x[0],x[1],P[0],P[1]]:P[1]<=x[0]?[P[0],P[1],x[0],x[1]]:x[0]>=P[0]&&x[1]<=P[1]?[P[0],x[0],x[1],P[1]]:P[0]>=x[0]&&P[1]<=x[1]?[x[0],P[0],P[1],x[1]]:x[0]>P[0]&&x[0]<P[1]?[P[0],x[0],P[1],x[1]]:[x[0],P[0],x[1],P[1]]:x;if(0!==P.length)return P}return[]}var o={};return o.computeDiscriminant=function(e,t,n,r,i){var a=e*e,o=a*e,u=t*t,s=u*t,c=n*n,l=c*n,f=r*r,h=f*r,d=i*i;return u*c*f-4*s*h-4*e*l*f+18*e*t*n*h-27*a*f*f+256*o*(d*i)+i*(18*s*n*r-4*u*l+16*e*c*c-80*e*t*c*r-6*e*u*f+144*a*n*f)+d*(144*e*u*n-27*u*u-128*a*c-192*a*t*r)},o.computeRealRoots=function(t,r,o,u,s){if(Math.abs(t)<n.EPSILON15)return e.computeRealRoots(r,o,u,s);var c=r/t,l=o/t,f=u/t,h=s/t,d=c<0?1:0;switch(d+=l<0?d+1:d,d+=f<0?d+1:d,d+=h<0?d+1:d){case 0:return i(c,l,f,h);case 1:case 2:return a(c,l,f,h);case 3:case 4:return i(c,l,f,h);case 5:return a(c,l,f,h);case 6:case 7:return i(c,l,f,h);case 8:return a(c,l,f,h);case 9:case 10:return i(c,l,f,h);case 11:return a(c,l,f,h);case 12:case 13:case 14:case 15:return i(c,l,f,h);default:return}},o}),define("Core/Ray",["./Cartesian3","./Check","./defaultValue","./defined"],function(e,t,n,r){"use strict";function i(t,r){r=e.clone(n(r,e.ZERO)),e.equals(r,e.ZERO)||e.normalize(r,r),this.origin=e.clone(n(t,e.ZERO)),this.direction=r}return i.clone=function(t,n){if(r(t))return r(n)?(n.origin=e.clone(t.origin),n.direction=e.clone(t.direction),n):new i(t.origin,t.direction)},i.getPoint=function(t,n,i){return r(i)||(i=new e),i=e.multiplyByScalar(t.direction,n,i),e.add(t.origin,i,i)},i}),define("Core/IntersectionTests",["./Cartesian3","./Cartographic","./defaultValue","./defined","./DeveloperError","./Interval","./Math","./Matrix3","./QuadraticRealPolynomial","./QuarticRealPolynomial","./Ray"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t,n,r){var i=t*t-4*e*n;if(!(i<0)){if(i>0){var a=1/(2*e),o=Math.sqrt(i),u=(-t+o)*a,s=(-t-o)*a;return u<s?(r.root0=u,r.root1=s):(r.root0=s,r.root1=u),r}var c=-t/(2*e);if(0!==c)return r.root0=r.root1=c,r}}function h(t,n,i){r(i)||(i=new a);var o=t.origin,u=t.direction,s=n.center,c=n.radius*n.radius,l=e.subtract(o,s,_),h=e.dot(u,u),d=2*e.dot(u,l),p=e.magnitudeSquared(l)-c,m=f(h,d,p,S);if(r(m))return i.start=m.root0,i.stop=m.root1,i}function d(e,t,n){var r=e+t;return o.sign(e)!==o.sign(t)&&Math.abs(r/Math.max(Math.abs(e),Math.abs(t)))<n?0:r}function p(t,n,r,i,a){var l,f=i*i,h=a*a,p=(t[u.COLUMN1ROW1]-t[u.COLUMN2ROW2])*h,m=a*(i*d(t[u.COLUMN1ROW0],t[u.COLUMN0ROW1],o.EPSILON15)+n.y),E=t[u.COLUMN0ROW0]*f+t[u.COLUMN2ROW2]*h+i*n.x+r,y=h*d(t[u.COLUMN2ROW1],t[u.COLUMN1ROW2],o.EPSILON15),_=a*(i*d(t[u.COLUMN2ROW0],t[u.COLUMN0ROW2])+n.z),T=[];if(0===_&&0===y){if(l=s.computeRealRoots(p,m,E),0===l.length)return T;var R=l[0],A=Math.sqrt(Math.max(1-R*R,0));if(T.push(new e(i,a*R,a*-A)),T.push(new e(i,a*R,a*A)),2===l.length){var S=l[1],v=Math.sqrt(Math.max(1-S*S,0));T.push(new e(i,a*S,a*-v)),T.push(new e(i,a*S,a*v))}return T}var g=_*_,N=y*y,I=p*p,O=_*y,w=I+N,M=2*(m*p+O),C=2*E*p+m*m-N+g,x=2*(E*m-O),P=E*E-g;if(0===w&&0===M&&0===C&&0===x)return T;l=c.computeRealRoots(w,M,C,x,P);var U=l.length;if(0===U)return T;for(var D=0;D<U;++D){var F,L=l[D],B=L*L,b=Math.max(1-B,0),z=Math.sqrt(b);F=o.sign(p)===o.sign(E)?d(p*B+E,m*L,o.EPSILON12):o.sign(E)===o.sign(m*L)?d(p*B,m*L+E,o.EPSILON12):d(p*B+m*L,E,o.EPSILON12);var q=d(y*L,_,o.EPSILON15),G=F*q;G<0?T.push(new e(i,a*L,a*z)):G>0?T.push(new e(i,a*L,a*-z)):0!==z?(T.push(new e(i,a*L,a*-z)),T.push(new e(i,a*L,a*z)),++D):T.push(new e(i,a*L,a*z))}return T}var m={};m.rayPlane=function(t,n,i){r(i)||(i=new e);var a=t.origin,u=t.direction,s=n.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON15)){var l=(-n.distance-e.dot(s,a))/c;if(!(l<0))return i=e.multiplyByScalar(u,l,i),e.add(a,i,i)}};var E=new e,y=new e,_=new e,T=new e,R=new e;m.rayTriangleParametric=function(t,r,i,a,u){u=n(u,!1);var s,c,l,f,h,d=t.origin,p=t.direction,m=e.subtract(i,r,E),A=e.subtract(a,r,y),S=e.cross(p,A,_),v=e.dot(m,S);if(u){if(v<o.EPSILON6)return;if(s=e.subtract(d,r,T),(l=e.dot(s,S))<0||l>v)return;if(c=e.cross(s,m,R),(f=e.dot(p,c))<0||l+f>v)return;h=e.dot(A,c)/v}else{if(Math.abs(v)<o.EPSILON6)return;var g=1/v;if(s=e.subtract(d,r,T),(l=e.dot(s,S)*g)<0||l>1)return;if(c=e.cross(s,m,R),(f=e.dot(p,c)*g)<0||l+f>1)return;h=e.dot(A,c)*g}return h},m.rayTriangle=function(t,n,i,a,o,u){var s=m.rayTriangleParametric(t,n,i,a,o) -;if(r(s)&&!(s<0))return r(u)||(u=new e),e.multiplyByScalar(t.direction,s,u),e.add(t.origin,u,u)};var A=new l;m.lineSegmentTriangle=function(t,n,i,a,o,u,s){var c=A;e.clone(t,c.origin),e.subtract(n,t,c.direction),e.normalize(c.direction,c.direction);var l=m.rayTriangleParametric(c,i,a,o,u);if(!(!r(l)||l<0||l>e.distance(t,n)))return r(s)||(s=new e),e.multiplyByScalar(c.direction,l,s),e.add(c.origin,s,s)};var S={root0:0,root1:0};m.raySphere=function(e,t,n){if(n=h(e,t,n),r(n)&&!(n.stop<0))return n.start=Math.max(n.start,0),n};var v=new l;m.lineSegmentSphere=function(t,n,i,a){var o=v;e.clone(t,o.origin);var u=e.subtract(n,t,o.direction),s=e.magnitude(u);if(e.normalize(u,u),a=h(o,i,a),!(!r(a)||a.stop<0||a.start>s))return a.start=Math.max(a.start,0),a.stop=Math.min(a.stop,s),a};var g=new e,N=new e;m.rayEllipsoid=function(t,n){var r,i,o,u,s,c=n.oneOverRadii,l=e.multiplyComponents(c,t.origin,g),f=e.multiplyComponents(c,t.direction,N),h=e.magnitudeSquared(l),d=e.dot(l,f);if(h>1){if(d>=0)return;var p=d*d;if(r=h-1,i=e.magnitudeSquared(f),o=i*r,p<o)return;if(p>o){u=d*d-o,s=-d+Math.sqrt(u);var m=s/i,E=r/s;return m<E?new a(m,E):{start:E,stop:m}}var y=Math.sqrt(r/i);return new a(y,y)}return h<1?(r=h-1,i=e.magnitudeSquared(f),o=i*r,u=d*d-o,s=-d+Math.sqrt(u),new a(0,s/i)):d<0?(i=e.magnitudeSquared(f),new a(0,-d/i)):void 0};var I=new e,O=new e,w=new e,M=new e,C=new e,x=new u,P=new u,U=new u,D=new u,F=new u,L=new u,B=new u,b=new e,z=new e,q=new t;m.grazingAltitudeLocation=function(t,n){var i=t.origin,a=t.direction;if(!e.equals(i,e.ZERO)){var s=n.geodeticSurfaceNormal(i,I);if(e.dot(a,s)>=0)return i}var c=r(this.rayEllipsoid(t,n)),l=n.transformPositionToScaledSpace(a,I),f=e.normalize(l,l),h=e.mostOrthogonalAxis(l,M),d=e.normalize(e.cross(h,f,O),O),m=e.normalize(e.cross(f,d,w),w),E=x;E[0]=f.x,E[1]=f.y,E[2]=f.z,E[3]=d.x,E[4]=d.y,E[5]=d.z,E[6]=m.x,E[7]=m.y,E[8]=m.z;var y=u.transpose(E,P),_=u.fromScale(n.radii,U),T=u.fromScale(n.oneOverRadii,D),R=F;R[0]=0,R[1]=-a.z,R[2]=a.y,R[3]=a.z,R[4]=0,R[5]=-a.x,R[6]=-a.y,R[7]=a.x,R[8]=0;var A,S,v=u.multiply(u.multiply(y,T,L),R,L),g=u.multiply(u.multiply(v,_,B),E,B),N=u.multiplyByVector(v,i,C),G=p(g,e.negate(N,I),0,0,1),V=G.length;if(V>0){for(var X=e.clone(e.ZERO,z),W=Number.NEGATIVE_INFINITY,H=0;H<V;++H){A=u.multiplyByVector(_,u.multiplyByVector(E,G[H],b),b);var Y=e.normalize(e.subtract(A,i,M),M),k=e.dot(Y,a);k>W&&(W=k,X=e.clone(A,X))}var j=n.cartesianToCartographic(X,q);return W=o.clamp(W,0,1),S=e.magnitude(e.subtract(X,i,M))*Math.sqrt(1-W*W),S=c?-S:S,j.height=S,n.cartographicToCartesian(j,new e)}};var G=new e;return m.lineSegmentPlane=function(t,n,i,a){r(a)||(a=new e);var u=e.subtract(n,t,G),s=i.normal,c=e.dot(s,u);if(!(Math.abs(c)<o.EPSILON6)){var l=e.dot(s,t),f=-(i.distance+l)/c;if(!(f<0||f>1))return e.multiplyByScalar(u,f,a),e.add(t,a,a),a}},m.trianglePlaneIntersection=function(t,n,r,i){var a=i.normal,o=i.distance,u=e.dot(a,t)+o<0,s=e.dot(a,n)+o<0,c=e.dot(a,r)+o<0,l=0;l+=u?1:0,l+=s?1:0,l+=c?1:0;var f,h;if(1!==l&&2!==l||(f=new e,h=new e),1===l){if(u)return m.lineSegmentPlane(t,n,i,f),m.lineSegmentPlane(t,r,i,h),{positions:[t,n,r,f,h],indices:[0,3,4,1,2,4,1,4,3]};if(s)return m.lineSegmentPlane(n,r,i,f),m.lineSegmentPlane(n,t,i,h),{positions:[t,n,r,f,h],indices:[1,3,4,2,0,4,2,4,3]};if(c)return m.lineSegmentPlane(r,t,i,f),m.lineSegmentPlane(r,n,i,h),{positions:[t,n,r,f,h],indices:[2,3,4,0,1,4,0,4,3]}}else if(2===l){if(!u)return m.lineSegmentPlane(n,t,i,f),m.lineSegmentPlane(r,t,i,h),{positions:[t,n,r,f,h],indices:[1,2,4,1,4,3,0,3,4]};if(!s)return m.lineSegmentPlane(r,n,i,f),m.lineSegmentPlane(t,n,i,h),{positions:[t,n,r,f,h],indices:[2,0,4,2,4,3,1,3,4]};if(!c)return m.lineSegmentPlane(t,r,i,f),m.lineSegmentPlane(n,r,i,h),{positions:[t,n,r,f,h],indices:[0,1,4,0,4,3,2,3,4]}}},m}),define("Core/Plane",["./Cartesian3","./Check","./defined","./DeveloperError","./freezeObject","./Math","./Matrix4"],function(e,t,n,r,i,a,o){"use strict";function u(t,n){this.normal=e.clone(t),this.distance=n}u.fromPointNormal=function(t,r,i){var a=-e.dot(r,t);return n(i)?(e.clone(r,i.normal),i.distance=a,i):new u(r,a)};var s=new e;u.fromCartesian4=function(t,r){var i=e.fromCartesian4(t,s),a=t.w;return n(r)?(e.clone(i,r.normal),r.distance=a,r):new u(i,a)},u.getPointDistance=function(t,n){return e.dot(t.normal,n)+t.distance};var c=new e;u.projectPointOntoPlane=function(t,r,i){n(i)||(i=new e);var a=u.getPointDistance(t,r),o=e.multiplyByScalar(t.normal,a,c);return e.subtract(r,o,i)};var l=new e;return u.transform=function(t,n,r){return o.multiplyByPointAsVector(n,t.normal,s),e.normalize(s,s),e.multiplyByScalar(t.normal,-t.distance,l),o.multiplyByPoint(n,l,l),u.fromPointNormal(l,s,r)},u.clone=function(t,r){return n(r)?(e.clone(t.normal,r.normal),r.distance=t.distance,r):new u(t.normal,t.distance)},u.equals=function(t,n){return t.distance===n.distance&&e.equals(t.normal,n.normal)},u.ORIGIN_XY_PLANE=i(new u(e.UNIT_Z,0)),u.ORIGIN_YZ_PLANE=i(new u(e.UNIT_X,0)),u.ORIGIN_ZX_PLANE=i(new u(e.UNIT_Y,0)),u}),function(e){"use strict";e("ThirdParty/when",[],function(){function e(e,n,r,i){return t(e).then(n,r,i)}function t(e){var t,n;return e instanceof r?t=e:u(e)?(n=o(),e.then(function(e){n.resolve(e)},function(e){n.reject(e)},function(e){n.progress(e)}),t=n.promise):t=i(e),t}function n(t){return e(t,a)}function r(e){this.then=e}function i(e){return new r(function(n){try{return t(n?n(e):e)}catch(e){return a(e)}})}function a(e){return new r(function(n,r){try{return r?t(r(e)):a(e)}catch(e){return a(e)}})}function o(){function e(e,t,n){return h(e,t,n)}function n(e){return p(e)}function i(e){return p(a(e))}function u(e){return d(e)}var s,c,l,f,h,d,p;return c=new r(e),s={then:e,resolve:n,reject:i,progress:u,promise:c,resolver:{resolve:n,reject:i,progress:u}},l=[],f=[],h=function(e,t,n){var r,i;return r=o(),i="function"==typeof n?function(e){try{r.progress(n(e))}catch(e){r.progress(e)}}:function(e){r.progress(e)},l.push(function(n){n.then(e,t).then(r.resolve,r.reject,i)}),f.push(i),r.promise},d=function(e){return m(f,e),e},p=function(e){return e=t(e),h=e.then,p=t,d=y,m(l,e),f=l=A,e},s}function u(e){return e&&"function"==typeof e.then}function s(t,n,r,i,a){return E(2,arguments),e(t,function(t){function u(e){m(e)}function s(e){p(e)}var c,l,f,h,d,p,m,E,_,T;if(_=t.length>>>0,c=Math.max(0,Math.min(n,_)),f=[],l=_-c+1,h=[],d=o(),c)for(E=d.progress,m=function(e){h.push(e),--l||(p=m=y,d.reject(h))},p=function(e){f.push(e),--c||(p=m=y,d.resolve(f))},T=0;T<_;++T)T in t&&e(t[T],s,u,E);else d.resolve(f);return d.then(r,i,a)})}function c(e,t,n,r){function i(e){return t?t(e[0]):e[0]}return s(e,1,i,n,r)}function l(e,t,n,r){return E(1,arguments),h(e,_).then(t,n,r)}function f(){return h(arguments,_)}function h(t,n){return e(t,function(t){var r,i,a,u,s,c;if(a=i=t.length>>>0,r=[],c=o(),a)for(u=function(t,i){e(t,n).then(function(e){r[i]=e,--a||c.resolve(r)},c.reject)},s=0;s<i;s++)s in t?u(t[s],s):--a;else c.resolve(r);return c.promise})}function d(t,n){var r=R.call(arguments,1);return e(t,function(t){var i;return i=t.length,r[0]=function(t,r,a){return e(t,function(t){return e(r,function(e){return n(t,e,a,i)})})},T.apply(t,r)})}function p(t,n,r){var i=arguments.length>2;return e(t,function(e){return e=i?r:e,n.resolve(e),e},function(e){return n.reject(e),a(e)},n.progress)}function m(e,t){for(var n,r=0;n=e[r++];)n(t)}function E(e,t){for(var n,r=t.length;r>e;)if(null!=(n=t[--r])&&"function"!=typeof n)throw new Error("arg "+r+" must be a function")}function y(){}function _(e){return e}var T,R,A;return e.defer=o,e.resolve=t,e.reject=n,e.join=f,e.all=l,e.map=h,e.reduce=d,e.any=c,e.some=s,e.chain=p,e.isPromise=u,r.prototype={always:function(e,t){return this.then(e,e,t)},otherwise:function(e){return this.then(A,e)},yield:function(e){return this.then(function(){return e})},spread:function(e){return this.then(function(t){return l(t,function(t){return e.apply(A,t)})})}},R=[].slice,T=[].reduce||function(e){var t,n,r,i,a;if(a=0,t=Object(this),i=t.length>>>0,n=arguments,n.length<=1)for(;;){if(a in t){r=t[a++];break}if(++a>=i)throw new TypeError}else r=n[1];for(;a<i;++a)a in t&&(r=e(r,t[a],a,t));return r},e})}("function"==typeof define&&define.amd?define:function(e){"object"==typeof exports?module.exports=e():this.when=e()}),define("Core/binarySearch",["./Check"],function(e){"use strict";function t(e,t,n){for(var r,i,a=0,o=e.length-1;a<=o;)if(r=~~((a+o)/2),(i=n(e[r],t))<0)a=r+1;else{if(!(i>0))return r;o=r-1}return~(o+1)}return t}),define("Core/EarthOrientationParametersSample",[],function(){"use strict";function e(e,t,n,r,i){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=r,this.ut1MinusUtc=i}return e}),define("ThirdParty/sprintf",[],function(){function e(){var e=/%%|%(\d+\$)?([-+\'#0 ]*)(\*\d+\$|\*|\d+)?(\.(\*\d+\$|\*|\d+))?([scboxXuideEfFgG])/g,t=arguments,n=0,r=t[n++],i=function(e,t,n,r){n||(n=" ");var i=e.length>=t?"":Array(1+t-e.length>>>0).join(n);return r?e+i:i+e},a=function(e,t,n,r,a,o){var u=r-e.length;return u>0&&(e=n||!a?i(e,r,o,n):e.slice(0,t.length)+i("",u,"0",!0)+e.slice(t.length)),e},o=function(e,t,n,r,o,u,s){var c=e>>>0;return n=n&&c&&{2:"0b",8:"0",16:"0x"}[t]||"",e=n+i(c.toString(t),u||0,"0",!1),a(e,n,r,o,s)},u=function(e,t,n,r,i,o){return null!=r&&(e=e.slice(0,r)),a(e,"",t,n,i,o)},s=function(e,r,s,c,l,f,h){var d,p,m,E,y;if("%%"==e)return"%";for(var _=!1,T="",R=!1,A=!1,S=" ",v=s.length,g=0;s&&g<v;g++)switch(s.charAt(g)){case" ":T=" ";break;case"+":T="+";break;case"-":_=!0;break;case"'":S=s.charAt(g+1);break;case"0":R=!0;break;case"#":A=!0}if(c=c?"*"==c?+t[n++]:"*"==c.charAt(0)?+t[c.slice(1,-1)]:+c:0,c<0&&(c=-c,_=!0),!isFinite(c))throw new Error("sprintf: (minimum-)width must be finite");switch(f=f?"*"==f?+t[n++]:"*"==f.charAt(0)?+t[f.slice(1,-1)]:+f:"fFeE".indexOf(h)>-1?6:"d"==h?0:void 0,y=r?t[r.slice(0,-1)]:t[n++],h){case"s":return u(String(y),_,c,f,R,S);case"c":return u(String.fromCharCode(+y),_,c,f,R);case"b":return o(y,2,A,_,c,f,R);case"o":return o(y,8,A,_,c,f,R);case"x":return o(y,16,A,_,c,f,R);case"X":return o(y,16,A,_,c,f,R).toUpperCase();case"u":return o(y,10,A,_,c,f,R);case"i":case"d":return d=+y||0,d=Math.round(d-d%1),p=d<0?"-":T,y=p+i(String(Math.abs(d)),f,"0",!1),a(y,p,_,c,R);case"e":case"E":case"f":case"F":case"g":case"G":return d=+y,p=d<0?"-":T,m=["toExponential","toFixed","toPrecision"]["efg".indexOf(h.toLowerCase())],E=["toString","toUpperCase"]["eEfFgG".indexOf(h)%2],y=p+Math.abs(d)[m](f),a(y,p,_,c,R)[E]();default:return e}};return r.replace(e,s)}return e}),define("Core/GregorianDate",[],function(){"use strict";function e(e,t,n,r,i,a,o,u){this.year=e,this.month=t,this.day=n,this.hour=r,this.minute=i,this.second=a,this.millisecond=o,this.isLeapSecond=u}return e}),define("Core/isLeapYear",["./DeveloperError"],function(e){"use strict";function t(e){return e%4==0&&e%100!=0||e%400==0}return t}),define("Core/LeapSecond",[],function(){"use strict";function e(e,t){this.julianDate=e,this.offset=t}return e}),define("Core/TimeConstants",["./freezeObject"],function(e){"use strict";return e({SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:2400000.5})}),define("Core/TimeStandard",["./freezeObject"],function(e){"use strict";return e({UTC:0,TAI:1})}),define("Core/JulianDate",["../ThirdParty/sprintf","./binarySearch","./defaultValue","./defined","./DeveloperError","./GregorianDate","./isLeapYear","./LeapSecond","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c){"use strict";function l(e,t){return m.compare(e.julianDate,t.julianDate)}function f(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);r<0&&(r=~r),r>=n.length&&(r=n.length-1);var i=n[r].offset;if(r>0){m.secondsDifference(n[r].julianDate,e)>i&&(r--,i=n[r].offset)}m.addSeconds(e,i,e)}function h(e,n){_.julianDate=e;var r=m.leapSeconds,i=t(r,_,l);if(i<0&&(i=~i),0===i)return m.addSeconds(e,-r[0].offset,n);if(i>=r.length)return m.addSeconds(e,-r[i-1].offset,n);var a=m.secondsDifference(r[i].julianDate,e);return 0===a?m.addSeconds(e,-r[i].offset,n):a<=1?void 0:m.addSeconds(e,-r[--i].offset,n)}function d(e,t,n){var r=t/s.SECONDS_PER_DAY|0;return e+=r,t-=s.SECONDS_PER_DAY*r,t<0&&(e--,t+=s.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function p(e,t,n,r,i,a,o){var u=(t-14)/12|0,c=e+4800+u,l=(1461*c/4|0)+(367*(t-2-12*u)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;(r-=12)<0&&(r+=24);var f=a+(r*s.SECONDS_PER_HOUR+i*s.SECONDS_PER_MINUTE+o*s.SECONDS_PER_MILLISECOND);return f>=43200&&(l-=1),[l,f]}function m(e,t,r){this.dayNumber=void 0,this.secondsOfDay=void 0,e=n(e,0),t=n(t,0),r=n(r,c.UTC);var i=0|e;t+=(e-i)*s.SECONDS_PER_DAY,d(i,t,this),r===c.UTC&&f(this)}var E=new a,y=[31,28,31,30,31,30,31,31,30,31,30,31],_=new u,T=/^(\d{4})$/,R=/^(\d{4})-(\d{2})$/,A=/^(\d{4})-?(\d{3})$/,S=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,v=/^(\d{4})-?(\d{2})-?(\d{2})$/,g=/([Z+\-])?(\d{2})?:?(\d{2})?$/,N=/^(\d{2})(\.\d+)?/.source+g.source,I=/^(\d{2}):?(\d{2})(\.\d+)?/.source+g.source,O=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+g.source;m.fromGregorianDate=function(e,t){var n=p(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromDate=function(e,t){var n=p(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return r(t)?(d(n[0],n[1],t),f(t),t):new m(n[0],n[1],c.UTC)},m.fromIso8601=function(e,t){e=e.replace(",",".");var n,i,a,u=e.split("T"),s=1,l=1,h=0,E=0,_=0,g=0,w=u[0],M=u[1];if(null!==(u=w.match(v)))n=+u[1],s=+u[2],l=+u[3];else if(null!==(u=w.match(R)))n=+u[1],s=+u[2];else if(null!==(u=w.match(T)))n=+u[1];else{var C;if(null!==(u=w.match(A)))n=+u[1],C=+u[2],a=o(n);else if(null!==(u=w.match(S))){n=+u[1];var x=+u[2],P=+u[3]||0,U=new Date(Date.UTC(n,0,4));C=7*x+P-U.getUTCDay()-3}i=new Date(Date.UTC(n,0,1)),i.setUTCDate(C),s=i.getUTCMonth()+1,l=i.getUTCDate()}a=o(n);var D;if(r(M)){u=M.match(O),null!==u?(h=+u[1],E=+u[2],_=+u[3],g=1e3*+(u[4]||0),D=5):(u=M.match(I),null!==u?(h=+u[1],E=+u[2],_=60*+(u[3]||0),D=4):null!==(u=M.match(N))&&(h=+u[1],E=60*+(u[2]||0),D=3));var F=u[D],L=+u[D+1],B=+(u[D+2]||0);switch(F){case"+":h-=L,E-=B;break;case"-":h+=L,E+=B;break;case"Z":break;default:E+=new Date(Date.UTC(n,s-1,l,h,E)).getTimezoneOffset()}}var b=60===_;for(b&&_--;E>=60;)E-=60,h++;for(;h>=24;)h-=24,l++;for(i=a&&2===s?29:y[s-1];l>i;)l-=i,s++,s>12&&(s-=12,n++),i=a&&2===s?29:y[s-1];for(;E<0;)E+=60,h--;for(;h<0;)h+=24,l--;for(;l<1;)s--,s<1&&(s+=12,n--),i=a&&2===s?29:y[s-1],l+=i;var z=p(n,s,l,h,E,_,g);return r(t)?(d(z[0],z[1],t),f(t)):t=new m(z[0],z[1],c.UTC),b&&m.addSeconds(t,1,t),t},m.now=function(e){return m.fromDate(new Date,e)};var w=new m(0,0,c.TAI);return m.toGregorianDate=function(e,t){var n=!1,i=h(e,w);r(i)||(m.addSeconds(e,-1,w),i=h(w,w),n=!0);var o=i.dayNumber,u=i.secondsOfDay;u>=43200&&(o+=1);var c=o+68569|0,l=4*c/146097|0;c=c-((146097*l+3)/4|0)|0;var f=4e3*(c+1)/1461001|0;c=c-(1461*f/4|0)+31|0;var d=80*c/2447|0,p=c-(2447*d/80|0)|0;c=d/11|0;var E=d+2-12*c|0,y=100*(l-49)+f+c|0,_=u/s.SECONDS_PER_HOUR|0,T=u-_*s.SECONDS_PER_HOUR,R=T/s.SECONDS_PER_MINUTE|0;T-=R*s.SECONDS_PER_MINUTE;var A=0|T,S=(T-A)/s.SECONDS_PER_MILLISECOND;return _+=12,_>23&&(_-=24),n&&(A+=1),r(t)?(t.year=y,t.month=E,t.day=p,t.hour=_,t.minute=R,t.second=A,t.millisecond=S,t.isLeapSecond=n,t):new a(y,E,p,_,R,A,S,n)},m.toDate=function(e){var t=m.toGregorianDate(e,E),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))},m.toIso8601=function(t,n){var i=m.toGregorianDate(t,E),a=i.year,o=i.month,u=i.day,s=i.hour,c=i.minute,l=i.second,f=i.millisecond;1e4===a&&1===o&&1===u&&0===s&&0===c&&0===l&&0===f&&(a=9999,o=12,u=31,s=24);var h;return r(n)||0===f?r(n)&&0!==n?(h=(.01*f).toFixed(n).replace(".","").slice(0,n),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h)):e("%04d-%02d-%02dT%02d:%02d:%02dZ",a,o,u,s,c,l):(h=(.01*f).toString().replace(".",""),e("%04d-%02d-%02dT%02d:%02d:%02d.%sZ",a,o,u,s,c,l,h))},m.clone=function(e,t){if(r(e))return r(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new m(e.dayNumber,e.secondsOfDay,c.TAI)},m.compare=function(e,t){var n=e.dayNumber-t.dayNumber;return 0!==n?n:e.secondsOfDay-t.secondsOfDay},m.equals=function(e,t){return e===t||r(e)&&r(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay},m.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(m.secondsDifference(e,t))<=n},m.totalDays=function(e){return e.dayNumber+e.secondsOfDay/s.SECONDS_PER_DAY},m.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*s.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)},m.daysDifference=function(e,t){return e.dayNumber-t.dayNumber+(e.secondsOfDay-t.secondsOfDay)/s.SECONDS_PER_DAY},m.computeTaiMinusUtc=function(e){_.julianDate=e;var n=m.leapSeconds,r=t(n,_,l);return r<0&&(r=~r,--r<0&&(r=0)),n[r].offset},m.addSeconds=function(e,t,n){return d(e.dayNumber,e.secondsOfDay+t,n)},m.addMinutes=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_MINUTE;return d(e.dayNumber,r,n)},m.addHours=function(e,t,n){var r=e.secondsOfDay+t*s.SECONDS_PER_HOUR;return d(e.dayNumber,r,n)},m.addDays=function(e,t,n){return d(e.dayNumber+t,e.secondsOfDay,n)},m.lessThan=function(e,t){return m.compare(e,t)<0},m.lessThanOrEquals=function(e,t){return m.compare(e,t)<=0},m.greaterThan=function(e,t){return m.compare(e,t)>0},m.greaterThanOrEquals=function(e,t){return m.compare(e,t)>=0},m.prototype.clone=function(e){return m.clone(this,e)},m.prototype.equals=function(e){return m.equals(this,e)},m.prototype.equalsEpsilon=function(e,t){return m.equalsEpsilon(this,e,t)},m.prototype.toString=function(){return m.toIso8601(this)},m.leapSeconds=[new u(new m(2441317,43210,c.TAI),10),new u(new m(2441499,43211,c.TAI),11),new u(new m(2441683,43212,c.TAI),12),new u(new m(2442048,43213,c.TAI),13),new u(new m(2442413,43214,c.TAI),14),new u(new m(2442778,43215,c.TAI),15),new u(new m(2443144,43216,c.TAI),16),new u(new m(2443509,43217,c.TAI),17),new u(new m(2443874,43218,c.TAI),18),new u(new m(2444239,43219,c.TAI),19),new u(new m(2444786,43220,c.TAI),20),new u(new m(2445151,43221,c.TAI),21),new u(new m(2445516,43222,c.TAI),22),new u(new m(2446247,43223,c.TAI),23),new u(new m(2447161,43224,c.TAI),24),new u(new m(2447892,43225,c.TAI),25),new u(new m(2448257,43226,c.TAI),26),new u(new m(2448804,43227,c.TAI),27),new u(new m(2449169,43228,c.TAI),28),new u(new m(2449534,43229,c.TAI),29),new u(new m(2450083,43230,c.TAI),30),new u(new m(2450630,43231,c.TAI),31),new u(new m(2451179,43232,c.TAI),32),new u(new m(2453736,43233,c.TAI),33),new u(new m(2454832,43234,c.TAI),34),new u(new m(2456109,43235,c.TAI),35),new u(new m(2457204,43236,c.TAI),36),new u(new m(2457754,43237,c.TAI),37)],m}),define("ThirdParty/Uri",[],function(){function e(t){if(t instanceof e)this.scheme=t.scheme,this.authority=t.authority,this.path=t.path,this.query=t.query,this.fragment=t.fragment;else if(t){var n=r.exec(t);this.scheme=n[1],this.authority=n[2],this.path=n[3],this.query=n[4],this.fragment=n[5]}}function t(e){var t=unescape(e);return a.test(t)?t:e.toUpperCase()}function n(e,t,n,r){return(t||"")+n.toLowerCase()+(r||"")}e.prototype.scheme=null,e.prototype.authority=null,e.prototype.path="",e.prototype.query=null,e.prototype.fragment=null;var r=new RegExp("^(?:([^:/?#]+):)?(?://([^/?#]*))?([^?#]*)(?:\\?([^#]*))?(?:#(.*))?$");e.prototype.getScheme=function(){return this.scheme},e.prototype.getAuthority=function(){return this.authority},e.prototype.getPath=function(){return this.path},e.prototype.getQuery=function(){return this.query},e.prototype.getFragment=function(){return this.fragment},e.prototype.isAbsolute=function(){return!!this.scheme&&!this.fragment},e.prototype.isSameDocumentAs=function(e){return e.scheme==this.scheme&&e.authority==this.authority&&e.path==this.path&&e.query==this.query},e.prototype.equals=function(e){return this.isSameDocumentAs(e)&&e.fragment==this.fragment},e.prototype.normalize=function(){this.removeDotSegments(),this.scheme&&(this.scheme=this.scheme.toLowerCase()),this.authority&&(this.authority=this.authority.replace(o,n).replace(i,t)),this.path&&(this.path=this.path.replace(i,t)),this.query&&(this.query=this.query.replace(i,t)),this.fragment&&(this.fragment=this.fragment.replace(i,t))};var i=/%[0-9a-z]{2}/gi,a=/[a-zA-Z0-9\-\._~]/,o=/(.*@)?([^@:]*)(:.*)?/;return e.prototype.resolve=function(t){var n=new e;return this.scheme?(n.scheme=this.scheme,n.authority=this.authority,n.path=this.path,n.query=this.query):(n.scheme=t.scheme,this.authority?(n.authority=this.authority,n.path=this.path,n.query=this.query):(n.authority=t.authority,""==this.path?(n.path=t.path,n.query=this.query||t.query):("/"==this.path.charAt(0)?(n.path=this.path,n.removeDotSegments()):(t.authority&&""==t.path?n.path="/"+this.path:n.path=t.path.substring(0,t.path.lastIndexOf("/")+1)+this.path,n.removeDotSegments()),n.query=this.query))),n.fragment=this.fragment,n},e.prototype.removeDotSegments=function(){var e,t=this.path.split("/"),n=[],r=""==t[0];r&&t.shift();for(""==t[0]&&t.shift();t.length;)e=t.shift(),".."==e?n.pop():"."!=e&&n.push(e);"."!=e&&".."!=e||n.push(""),r&&n.unshift(""),this.path=n.join("/")},e.prototype.toString=function(){var e="";return this.scheme&&(e+=this.scheme+":"),this.authority&&(e+="//"+this.authority),e+=this.path,this.query&&(e+="?"+this.query),this.fragment&&(e+="#"+this.fragment),e},e}),define("Core/appendForwardSlash",[],function(){"use strict";function e(e){return 0!==e.length&&"/"===e[e.length-1]||(e+="/"),e}return e}),define("Core/clone",["./defaultValue"],function(e){"use strict";function t(n,r){if(null===n||"object"!=typeof n)return n;r=e(r,!1);var i=new n.constructor;for(var a in n)if(n.hasOwnProperty(a)){var o=n[a];r&&(o=t(o,r)),i[a]=o}return i}return t}),define("Core/combine",["./defaultValue","./defined"],function(e,t){"use strict";function n(r,i,a){a=e(a,!1);var o,u,s,c={},l=t(r),f=t(i);if(l)for(o in r)r.hasOwnProperty(o)&&(u=r[o],f&&a&&"object"==typeof u&&i.hasOwnProperty(o)?(s=i[o],c[o]="object"==typeof s?n(u,s,a):u):c[o]=u);if(f)for(o in i)i.hasOwnProperty(o)&&!c.hasOwnProperty(o)&&(s=i[o],c[o]=s);return c}return n}),define("Core/getAbsoluteUri",["../ThirdParty/Uri","./defaultValue","./defined","./DeveloperError"],function(e,t,n,r){"use strict";function i(e,t){var n;return"undefined"!=typeof document&&(n=document),i._implementation(e,t,n)}return i._implementation=function(r,i,a){if(!n(i)){if(void 0===a)return r;i=t(a.baseURI,a.location.href)}var o=new e(i);return new e(r).resolve(o).toString()},i}),define("Core/getBaseUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n,r){var i="",a=n.lastIndexOf("/");return-1!==a&&(i=n.substring(0,a+1)),r?(n=new e(n),t(n.query)&&(i+="?"+n.query),t(n.fragment)&&(i+="#"+n.fragment),i):i}return r}),define("Core/getExtensionFromUri",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(t){var n=new e(t);n.normalize();var r=n.path,i=r.lastIndexOf("/");return-1!==i&&(r=r.substr(i+1)),i=r.lastIndexOf("."),r=-1===i?"":r.substr(i+1)}return r}),define("Core/isBlobUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^blob:/i;return t}),define("Core/isCrossOriginUrl",["./defined"],function(e){"use strict";function t(t){e(n)||(n=document.createElement("a")),n.href=window.location.href;var r=n.host,i=n.protocol;return n.href=t,n.href=n.href,i!==n.protocol||r!==n.host}var n;return t}),define("Core/isDataUri",["./Check"],function(e){"use strict";function t(e){return n.test(e)}var n=/^data:/i;return t}),define("Core/loadAndExecuteScript",["../ThirdParty/when"],function(e){"use strict";function t(t){var n=e.defer(),r=document.createElement("script");r.async=!0,r.src=t;var i=document.getElementsByTagName("head")[0];return r.onload=function(){r.onload=void 0,i.removeChild(r),n.resolve()},r.onerror=function(e){n.reject(e)},i.appendChild(r),n.promise}return t}),define("Core/isArray",["./defined"],function(e){"use strict";var t=Array.isArray;return e(t)||(t=function(e){return"[object Array]"===Object.prototype.toString.call(e)}),t}),define("Core/objectToQuery",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(e){var t="";for(var r in e)if(e.hasOwnProperty(r)){var i=e[r],a=encodeURIComponent(r)+"=";if(n(i))for(var o=0,u=i.length;o<u;++o)t+=a+encodeURIComponent(i[o])+"&";else t+=a+encodeURIComponent(i)+"&"}return t=t.slice(0,-1)}return r}),define("Core/queryToObject",["./defined","./DeveloperError","./isArray"],function(e,t,n){"use strict";function r(t){var r={};if(""===t)return r;for(var i=t.replace(/\+/g,"%20").split(/[&;]/),a=0,o=i.length;a<o;++a){var u=i[a].split("="),s=decodeURIComponent(u[0]),c=u[1];c=e(c)?decodeURIComponent(c):"";var l=r[s];"string"==typeof l?r[s]=[l,c]:n(l)?l.push(c):r[s]=c}return r}return r}),define("Core/RequestState",["../Core/freezeObject"],function(e){"use strict";return e({UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5})}),define("Core/RequestType",["../Core/freezeObject"],function(e){"use strict";return e({TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3})}),define("Core/Request",["./defaultValue","./defined","./RequestState","./RequestType"],function(e,t,n,r){"use strict";function i(t){t=e(t,e.EMPTY_OBJECT);var i=e(t.throttleByServer,!1),a=e(t.throttle,!1);this.url=t.url,this.requestFunction=t.requestFunction,this.cancelFunction=t.cancelFunction,this.priorityFunction=t.priorityFunction,this.priority=e(t.priority,0),this.throttle=a,this.throttleByServer=i,this.type=e(t.type,r.OTHER),this.serverKey=void 0,this.state=n.UNISSUED,this.deferred=void 0,this.cancelled=!1}return i.prototype.cancel=function(){this.cancelled=!0},i.prototype.clone=function(e){return t(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=this.RequestState.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new i(this)},i}),define("Core/parseResponseHeaders",[],function(){"use strict";function e(e){var t={};if(!e)return t;for(var n=e.split("\r\n"),r=0;r<n.length;++r){var i=n[r],a=i.indexOf(": ");if(a>0){var o=i.substring(0,a),u=i.substring(a+2);t[o]=u}}return t}return e}),define("Core/RequestErrorEvent",["./defined","./parseResponseHeaders"],function(e,t){"use strict";function n(e,n,r){this.statusCode=e,this.response=n,this.responseHeaders=r,"string"==typeof this.responseHeaders&&(this.responseHeaders=t(this.responseHeaders))}return n.prototype.toString=function(){var t="Request has failed.";return e(this.statusCode)&&(t+=" Status Code: "+this.statusCode),t},n}),define("Core/Event",["./Check","./defined","./defineProperties"],function(e,t,n){"use strict";function r(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}function i(e,t){return t-e}return n(r.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}}),r.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);var n=this;return function(){n.removeEventListener(e,t)}},r.prototype.removeEventListener=function(e,t){for(var n=this._listeners,r=this._scopes,i=-1,a=0;a<n.length;a++)if(n[a]===e&&r[a]===t){i=a;break}return-1!==i&&(this._insideRaiseEvent?(this._toRemove.push(i),n[i]=void 0,r[i]=void 0):(n.splice(i,1),r.splice(i,1)),!0)},r.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;var e,n=this._listeners,r=this._scopes,a=n.length;for(e=0;e<a;e++){var o=n[e];t(o)&&n[e].apply(r[e],arguments)}var u=this._toRemove;if((a=u.length)>0){for(u.sort(i),e=0;e<a;e++){var s=u[e];n.splice(s,1),r.splice(s,1)}u.length=0}this._insideRaiseEvent=!1},r}),define("Core/Heap",["./Check","./defaultValue","./defined","./defineProperties"],function(e,t,n,r){"use strict";function i(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}function a(e,t,n){var r=e[t];e[t]=e[n],e[n]=r}return r(i.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){this._maximumLength=e,this._length>e&&e>0&&(this._length=e,this._array.length=e)}},comparator:{get:function(){return this._comparator}}}),i.prototype.reserve=function(e){e=t(e,this._length),this._array.length=e},i.prototype.heapify=function(e){e=t(e,0);for(var n=this._length,r=this._comparator,i=this._array,o=-1,u=!0;u;){var s=2*(e+1),c=s-1;o=c<n&&r(i[c],i[e])<0?c:e,s<n&&r(i[s],i[o])<0&&(o=s),o!==e?(a(i,o,e),e=o):u=!1}},i.prototype.resort=function(){for(var e=this._length,t=Math.ceil(e/2);t>=0;--t)this.heapify(t)},i.prototype.insert=function(e){var t=this._array,r=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);0!==o;){var u=Math.floor((o-1)/2);if(!(r(t[o],t[u])<0))break;a(t,o,u),o=u}var s;return n(i)&&this._length>i&&(s=t[i],this._length=i),s},i.prototype.pop=function(e){if(e=t(e,0),0!==this._length){var n=this._array,r=n[e];return a(n,e,--this._length),this.heapify(e),r}},i}),define("Core/RequestScheduler",["../ThirdParty/Uri","../ThirdParty/when","./Check","./defaultValue","./defined","./defineProperties","./Event","./Heap","./isBlobUri","./isDataUri","./RequestState"],function(e,t,n,r,i,a,o,u,s,c,l){"use strict";function f(e,t){return e.priority-t.priority}function h(){}function d(e){i(e.priorityFunction)&&(e.priority=e.priorityFunction())}function p(e){var t=r(h.requestsByServer[e],h.maximumRequestsPerServer);return N[e]<t}function m(e){return e.state===l.UNISSUED&&(e.state=l.ISSUED,e.deferred=t.defer()),e.deferred.promise}function E(e){return function(t){e.state!==l.CANCELLED&&(--A.numberOfActiveRequests,--N[e.serverKey],O.raiseEvent(),e.state=l.RECEIVED,e.deferred.resolve(t))}}function y(e){return function(t){e.state!==l.CANCELLED&&(++A.numberOfFailedRequests,--A.numberOfActiveRequests,--N[e.serverKey],O.raiseEvent(t),e.state=l.FAILED,e.deferred.reject(t))}}function _(e){var t=m(e);return e.state=l.ACTIVE,g.push(e),++A.numberOfActiveRequests,++A.numberOfActiveRequestsEver,++N[e.serverKey],e.requestFunction().then(E(e)).otherwise(y(e)),t}function T(e){var t=e.state===l.ACTIVE;e.state=l.CANCELLED,++A.numberOfCancelledRequests,e.deferred.reject(),t&&(--A.numberOfActiveRequests,--N[e.serverKey],++A.numberOfCancelledActiveRequests),i(e.cancelFunction)&&e.cancelFunction()}function R(){h.debugShowStatistics&&(0===A.numberOfActiveRequests&&A.lastNumberOfActiveRequests>0&&(A.numberOfAttemptedRequests>0&&(console.log("Number of attempted requests: "+A.numberOfAttemptedRequests),A.numberOfAttemptedRequests=0),A.numberOfCancelledRequests>0&&(console.log("Number of cancelled requests: "+A.numberOfCancelledRequests),A.numberOfCancelledRequests=0),A.numberOfCancelledActiveRequests>0&&(console.log("Number of cancelled active requests: "+A.numberOfCancelledActiveRequests),A.numberOfCancelledActiveRequests=0),A.numberOfFailedRequests>0&&(console.log("Number of failed requests: "+A.numberOfFailedRequests),A.numberOfFailedRequests=0)),A.lastNumberOfActiveRequests=A.numberOfActiveRequests)}var A={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},S=20,v=new u({comparator:f});v.maximumLength=S,v.reserve(S);var g=[],N={},I="undefined"!=typeof document?new e(document.location.href):new e,O=new o;return h.maximumRequests=50,h.maximumRequestsPerServer=6,h.requestsByServer={"api.cesium.com:443":18,"assets.cesium.com:443":18},h.throttleRequests=!0,h.debugShowStatistics=!1,h.requestCompletedEvent=O,a(h,{statistics:{get:function(){return A}},priorityHeapLength:{get:function(){return S},set:function(e){if(e<S)for(;v.length>e;){var t=v.pop();T(t)}S=e,v.maximumLength=e, -v.reserve(e)}}}),h.update=function(){var e,t,n=0,r=g.length;for(e=0;e<r;++e)t=g[e],t.cancelled&&T(t),t.state===l.ACTIVE?n>0&&(g[e-n]=t):++n;g.length-=n;var i=v.internalArray,a=v.length;for(e=0;e<a;++e)d(i[e]);v.resort();for(var o=Math.max(h.maximumRequests-g.length,0),u=0;u<o&&v.length>0;)t=v.pop(),t.cancelled?T(t):!t.throttleByServer||p(t.serverKey)?(_(t),++u):T(t);R()},h.getServerKey=function(t){var n=new e(t).resolve(I);n.normalize();var r=n.authority;/:/.test(r)||(r=r+":"+("https"===n.scheme?"443":"80"));var a=N[r];return i(a)||(N[r]=0),r},h.request=function(e){if(c(e.url)||s(e.url))return O.raiseEvent(),e.state=l.RECEIVED,e.requestFunction();if(++A.numberOfAttemptedRequests,i(e.serverKey)||(e.serverKey=h.getServerKey(e.url)),!e.throttleByServer||p(e.serverKey)){if(!h.throttleRequests||!e.throttle)return _(e);if(!(g.length>=h.maximumRequests)){d(e);var t=v.insert(e);if(i(t)){if(t===e)return;T(t)}return m(e)}}},h.clearForSpecs=function(){for(;v.length>0;){T(v.pop())}for(var e=g.length,t=0;t<e;++t)T(g[t]);g.length=0,N={},A.numberOfAttemptedRequests=0,A.numberOfActiveRequests=0,A.numberOfCancelledRequests=0,A.numberOfCancelledActiveRequests=0,A.numberOfFailedRequests=0,A.numberOfActiveRequestsEver=0,A.lastNumberOfActiveRequests=0},h.numberOfActiveRequestsByServer=function(e){return N[e]},h.requestHeap=v,h}),define("Core/TrustedServers",["../ThirdParty/Uri","./defined","./DeveloperError"],function(e,t,n){"use strict";function r(n){var r=new e(n);r.normalize();var i=r.getAuthority();if(t(i)){if(-1!==i.indexOf("@")){i=i.split("@")[1]}if(-1===i.indexOf(":")){var a=r.getScheme();if(t(a)||(a=window.location.protocol,a=a.substring(0,a.length-1)),"http"===a)i+=":80";else{if("https"!==a)return;i+=":443"}}return i}}var i={},a={};return i.add=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])||(a[r]=!0)},i.remove=function(e,n){var r=e.toLowerCase()+":"+n;t(a[r])&&delete a[r]},i.contains=function(e){var n=r(e);return!(!t(n)||!t(a[n]))},i.clear=function(){a={}},i}),define("Core/Resource",["../ThirdParty/Uri","../ThirdParty/when","./appendForwardSlash","./Check","./clone","./combine","./defaultValue","./defined","./defineProperties","./DeveloperError","./freezeObject","./getAbsoluteUri","./getBaseUri","./getExtensionFromUri","./isBlobUri","./isCrossOriginUrl","./isDataUri","./loadAndExecuteScript","./objectToQuery","./queryToObject","./Request","./RequestErrorEvent","./RequestScheduler","./RequestState","./RuntimeError","./TrustedServers"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,R,A,S,v,g,N){"use strict";function I(e,t,n,r){var i=e.query;if(!u(i)||0===i.length)return{};var a;if(-1===i.indexOf("=")){var o={};o[i]=void 0,a=o}else a=T(i);t._queryParameters=n?C(a,t._queryParameters,r):a,e.query=void 0}function O(e,t){var n=t._queryParameters,r=Object.keys(n);1!==r.length||u(n[r[0]])?e.query=_(n):e.query=r[0]}function w(e,t){return u(e)?u(e.clone)?e.clone():i(e):t}function M(e){if(e.state===v.ISSUED||e.state===v.ACTIVE)throw new g("The Resource is already being fetched.");e.state=v.UNISSUED,e.deferred=void 0}function C(e,t,n){if(!n)return a(e,t);var r=i(e,!0);for(var o in t)if(t.hasOwnProperty(o)){var s=r[o],c=t[o];u(s)?(Array.isArray(s)||(s=r[o]=[s]),r[o]=s.concat(c)):r[o]=Array.isArray(c)?c.slice():c}return r}function x(t){t=o(t,o.EMPTY_OBJECT),"string"==typeof t&&(t={url:t}),this._url=void 0,this._templateValues=w(t.templateValues,{}),this._queryParameters=w(t.queryParameters,{}),this.headers=w(t.headers,{}),this.request=o(t.request,new R),this.proxy=t.proxy,this.retryCallback=t.retryCallback,this.retryAttempts=o(t.retryAttempts,0),this._retryCount=0;var n=new e(t.url);I(n,this,!0,!0),n.fragment=void 0,this._url=n.toString()}function P(e){var n=e.resource,r=e.flipY,i=e.preferImageBitmap,a=n.request;a.url=n.url,a.requestFunction=function(){var e=n.url,a=!1;n.isDataUri||n.isBlobUri||(a=n.isCrossOriginUrl);var o=t.defer();return x._Implementations.createImage(e,a,o,r,i),o.promise};var o=S.request(a);if(u(o))return o.otherwise(function(e){return a.state!==v.FAILED?t.reject(e):n.retryOnError(e).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,P({resource:n,flipY:r,preferImageBitmap:i})):t.reject(e)})})}function U(e,n,r){var i={};i[n]=r,e.setQueryParameters(i);var a=e.request;a.url=e.url,a.requestFunction=function(){var n=t.defer();return window[r]=function(e){n.resolve(e);try{delete window[r]}catch(e){window[r]=void 0}},x._Implementations.loadAndExecuteScript(e.url,r,n),n.promise};var o=S.request(a);if(u(o))return o.otherwise(function(i){return a.state!==v.FAILED?t.reject(i):e.retryOnError(i).then(function(o){return o?(a.state=v.UNISSUED,a.deferred=void 0,U(e,n,r)):t.reject(i)})})}function D(e,t){var n=decodeURIComponent(t);return e?atob(n):n}function F(e,t){for(var n=D(e,t),r=new ArrayBuffer(n.length),i=new Uint8Array(r),a=0;a<n.length;a++)i[a]=n.charCodeAt(a);return r}function L(e,t){t=o(t,"");var n=e[1],r=!!e[2],i=e[3];switch(t){case"":case"text":return D(r,i);case"arraybuffer":return F(r,i);case"blob":var a=F(r,i);return new Blob([a],{type:n});case"document":return(new DOMParser).parseFromString(D(r,i),n);case"json":return JSON.parse(D(r,i))}}function B(e,t,n){var r=new Image;r.onload=function(){n.resolve(r)},r.onerror=function(e){n.reject(e)},t&&(N.contains(e)?r.crossOrigin="use-credentials":r.crossOrigin=""),r.src=e}function b(e,t){switch(t){case"text":return e.toString("utf8");case"json":return JSON.parse(e.toString("utf8"));default:return new Uint8Array(e).buffer}}function z(e,t,n,r,i,a,o){var u=global.require,s=u("url").parse(e),c=u("https:"===s.protocol?"https":"http"),l=u("zlib"),f={protocol:s.protocol,hostname:s.hostname,port:s.port,path:s.path,query:s.query,method:n,headers:i};c.request(f).on("response",function(e){if(e.statusCode<200||e.statusCode>=300)return void a.reject(new A(e.statusCode,e,e.headers));var n=[];e.on("data",function(e){n.push(e)}),e.on("end",function(){var r=Buffer.concat(n);"gzip"===e.headers["content-encoding"]?l.gunzip(r,function(e,n){e?a.reject(new g("Error decompressing response.")):a.resolve(b(n,t))}):a.resolve(b(r,t))})}).on("error",function(e){a.reject(new A)}).end()}var q=function(){try{var e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob","blob"===e.responseType}catch(e){return!1}}();x.createIfNeeded=function(e){return e instanceof x?e.getDerivedResource({request:e.request}):"string"!=typeof e?e:new x({url:e})};var G;x.supportsImageBitmapOptions=function(){if(u(G))return G;if("function"!=typeof createImageBitmap)return G=t.resolve(!1);return G=x.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAYAAAAfFcSJAAAADUlEQVQImWP4////fwAJ+wP9CNHoHgAAAABJRU5ErkJggg=="}).then(function(e){return createImageBitmap(e,{imageOrientation:"flipY",premultiplyAlpha:"none"})}).then(function(e){return!0}).otherwise(function(){return!1})},s(x,{isBlobSupported:{get:function(){return q}}}),s(x.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(t){var n=new e(t);I(n,this,!1),n.fragment=void 0,this._url=n.toString()}},extension:{get:function(){return d(this._url)}},isDataUri:{get:function(){return E(this._url)}},isBlobUri:{get:function(){return p(this._url)}},isCrossOriginUrl:{get:function(){return m(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}}}),x.prototype.getUrlComponent=function(t,n){if(this.isDataUri)return this._url;var r=new e(this._url);t&&O(r,this);var i=r.toString().replace(/%7B/g,"{").replace(/%7D/g,"}"),a=this._templateValues;return i=i.replace(/{(.*?)}/g,function(e,t){var n=a[t];return u(n)?encodeURIComponent(n):e}),n&&u(this.proxy)&&(i=this.proxy.getURL(i)),i},x.prototype.setQueryParameters=function(e,t){this._queryParameters=t?C(this._queryParameters,e,!1):C(e,this._queryParameters,!1)},x.prototype.appendQueryParameters=function(e){this._queryParameters=C(e,this._queryParameters,!0)},x.prototype.setTemplateValues=function(e,t){this._templateValues=t?a(this._templateValues,e):a(e,this._templateValues)},x.prototype.getDerivedResource=function(t){var n=this.clone();if(n._retryCount=0,u(t.url)){var r=new e(t.url);I(r,n,!0,o(t.preserveQueryParameters,!1)),r.fragment=void 0,n._url=r.resolve(new e(f(this._url))).toString()}return u(t.queryParameters)&&(n._queryParameters=a(t.queryParameters,n._queryParameters)),u(t.templateValues)&&(n._templateValues=a(t.templateValues,n.templateValues)),u(t.headers)&&(n.headers=a(t.headers,n.headers)),u(t.proxy)&&(n.proxy=t.proxy),u(t.request)&&(n.request=t.request),u(t.retryCallback)&&(n.retryCallback=t.retryCallback),u(t.retryAttempts)&&(n.retryAttempts=t.retryAttempts),n},x.prototype.retryOnError=function(e){var n=this.retryCallback;if("function"!=typeof n||this._retryCount>=this.retryAttempts)return t(!1);var r=this;return t(n(this,e)).then(function(e){return++r._retryCount,e})},x.prototype.clone=function(e){return u(e)||(e=new x({url:this._url})),e._url=this._url,e._queryParameters=i(this._queryParameters),e._templateValues=i(this._templateValues),e.headers=i(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e},x.prototype.getBaseUri=function(e){return h(this.getUrlComponent(e),e)},x.prototype.appendForwardSlash=function(){this._url=n(this._url)},x.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})},x.fetchArrayBuffer=function(e){return new x(e).fetchArrayBuffer()},x.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})},x.fetchBlob=function(e){return new x(e).fetchBlob()},x.prototype.fetchImage=function(e){e=o(e,o.EMPTY_OBJECT);var n=o(e.preferImageBitmap,!1),r=o(e.preferBlob,!1),i=o(e.flipY,!1);if(M(this.request),!q||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!r)return P({resource:this,flipY:i,preferImageBitmap:n});var a=this.fetchBlob();if(u(a)){var s,c,l,f;return x.supportsImageBitmapOptions().then(function(e){return s=e,c=s&&n,a}).then(function(e){if(u(e)){if(f=e,c)return x.createImageBitmapFromBlob(e,{flipY:i,premultiplyAlpha:!1});var t=window.URL.createObjectURL(e);return l=new x({url:t}),P({resource:l,flipY:i,preferImageBitmap:!1})}}).then(function(e){if(u(e))return e.blob=f,c?e:(window.URL.revokeObjectURL(l.url),e)}).otherwise(function(e){return u(l)&&window.URL.revokeObjectURL(l.url),e.blob=f,t.reject(e)})}},x.fetchImage=function(e){return new x(e).fetchImage({flipY:e.flipY,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})},x.prototype.fetchText=function(){return this.fetch({responseType:"text"})},x.fetchText=function(e){return new x(e).fetchText()},x.prototype.fetchJson=function(){var e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(u(e))return e.then(function(e){if(u(e))return JSON.parse(e)})},x.fetchJson=function(e){return new x(e).fetchJson()},x.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})},x.fetchXML=function(e){return new x(e).fetchXML()},x.prototype.fetchJsonp=function(e){e=o(e,"callback"),M(this.request);var t;do{t="loadJsonp"+Math.random().toString().substring(2,8)}while(u(window[t]));return U(this,e,t)},x.fetchJsonp=function(e){return new x(e).fetchJsonp(e.callbackParameterName)},x.prototype._makeRequest=function(e){var n=this;M(n.request);var r=n.request;r.url=n.url,r.requestFunction=function(){var i=e.responseType,o=a(e.headers,n.headers),s=e.overrideMimeType,c=e.method,l=e.data,f=t.defer(),h=x._Implementations.loadWithXhr(n.url,i,c,l,o,f,s);return u(h)&&u(h.abort)&&(r.cancelFunction=function(){h.abort()}),f.promise};var i=S.request(r);if(u(i))return i.then(function(e){return e}).otherwise(function(i){return r.state!==v.FAILED?t.reject(i):n.retryOnError(i).then(function(a){return a?(r.state=v.UNISSUED,r.deferred=void 0,n.fetch(e)):t.reject(i)})})};var V=/^data:(.*?)(;base64)?,(.*)$/;x.prototype.fetch=function(e){return e=w(e,{}),e.method="GET",this._makeRequest(e)},x.fetch=function(e){return new x(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.delete=function(e){return e=w(e,{}),e.method="DELETE",this._makeRequest(e)},x.delete=function(e){return new x(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})},x.prototype.head=function(e){return e=w(e,{}),e.method="HEAD",this._makeRequest(e)},x.head=function(e){return new x(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.options=function(e){return e=w(e,{}),e.method="OPTIONS",this._makeRequest(e)},x.options=function(e){return new x(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.post=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="POST",t.data=e,this._makeRequest(t)},x.post=function(e){return new x(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.put=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)},x.put=function(e){return new x(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x.prototype.patch=function(e,t){return r.defined("data",e),t=w(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)},x.patch=function(e){return new x(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})},x._Implementations={},x._Implementations.createImage=function(e,t,n,r,i){x.supportsImageBitmapOptions().then(function(r){return r&&i?x.fetchBlob({url:e}):void B(e,t,n)}).then(function(e){if(u(e))return x.createImageBitmapFromBlob(e,{flipY:r,premultiplyAlpha:!1})}).then(function(e){u(e)&&n.resolve(e)}).otherwise(n.reject)},x.createImageBitmapFromBlob=function(e,t){return r.defined("options",t),r.typeOf.bool("options.flipY",t.flipY),r.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none"})};var X="undefined"==typeof XMLHttpRequest;return x._Implementations.loadWithXhr=function(e,t,n,r,i,a,o){var s=V.exec(e);if(null!==s)return void a.resolve(L(s,t));if(X)return void z(e,t,n,r,i,a,o);var c=new XMLHttpRequest;if(N.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),u(o)&&u(c.overrideMimeType)&&c.overrideMimeType(o),u(i))for(var l in i)i.hasOwnProperty(l)&&c.setRequestHeader(l,i[l]);u(t)&&(c.responseType=t);var f=!1;return"string"==typeof e&&(f=0===e.indexOf("file://")||"undefined"!=typeof window&&"file://"===window.location.origin),c.onload=function(){if((c.status<200||c.status>=300)&&(!f||0!==c.status))return void a.reject(new A(c.status,c.response,c.getAllResponseHeaders()));var e=c.response,r=c.responseType;if("HEAD"===n||"OPTIONS"===n){var i=c.getAllResponseHeaders(),o=i.trim().split(/[\r\n]+/),s={};return o.forEach(function(e){var t=e.split(": "),n=t.shift();s[n]=t.join(": ")}),void a.resolve(s)}if(204===c.status)a.resolve();else if(!u(e)||u(t)&&r!==t)if("json"===t&&"string"==typeof e)try{a.resolve(JSON.parse(e))}catch(e){a.reject(e)}else(""===r||"document"===r)&&u(c.responseXML)&&c.responseXML.hasChildNodes()?a.resolve(c.responseXML):""!==r&&"text"!==r||!u(c.responseText)?a.reject(new g("Invalid XMLHttpRequest response type.")):a.resolve(c.responseText);else a.resolve(e)},c.onerror=function(e){a.reject(new A)},c.send(r),c},x._Implementations.loadAndExecuteScript=function(e,t,n){return y(e,t).otherwise(n.reject)},x._DefaultImplementations={},x._DefaultImplementations.createImage=x._Implementations.createImage,x._DefaultImplementations.loadWithXhr=x._Implementations.loadWithXhr,x._DefaultImplementations.loadAndExecuteScript=x._Implementations.loadAndExecuteScript,x.DEFAULT=l(new x({url:"undefined"==typeof document?"":document.location.href.split("?")[0]})),x}),define("Core/EarthOrientationParameters",["../ThirdParty/when","./binarySearch","./defaultValue","./defined","./EarthOrientationParametersSample","./freezeObject","./JulianDate","./LeapSecond","./Resource","./RuntimeError","./TimeConstants","./TimeStandard"],function(e,t,n,r,i,a,o,u,s,c,l,f){"use strict";function h(t){if(t=n(t,n.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._downloadPromise=void 0,this._dataError=void 0,this._addNewLeapSeconds=n(t.addNewLeapSeconds,!0),r(t.data))p(this,t.data);else if(r(t.url)){var i=s.createIfNeeded(t.url),a=this;this._downloadPromise=e(i.fetchJson(),function(e){p(a,e)},function(){a._dataError="An error occurred while retrieving the EOP data from the URL "+i.url+"."})}else p(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}function d(e,t){return o.compare(e.julianDate,t)}function p(e,n){if(!r(n.columnNames))return void(e._dataError="Error in loaded EOP data: The columnNames property is required.");if(!r(n.samples))return void(e._dataError="Error in loaded EOP data: The samples property is required.");var i=n.columnNames.indexOf("modifiedJulianDateUtc"),a=n.columnNames.indexOf("xPoleWanderRadians"),s=n.columnNames.indexOf("yPoleWanderRadians"),c=n.columnNames.indexOf("ut1MinusUtcSeconds"),h=n.columnNames.indexOf("xCelestialPoleOffsetRadians"),p=n.columnNames.indexOf("yCelestialPoleOffsetRadians"),m=n.columnNames.indexOf("taiMinusUtcSeconds");if(i<0||a<0||s<0||c<0||h<0||p<0||m<0)return void(e._dataError="Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");var E=e._samples=n.samples,y=e._dates=[];e._dateColumn=i,e._xPoleWanderRadiansColumn=a,e._yPoleWanderRadiansColumn=s,e._ut1MinusUtcSecondsColumn=c,e._xCelestialPoleOffsetRadiansColumn=h,e._yCelestialPoleOffsetRadiansColumn=p,e._taiMinusUtcSecondsColumn=m,e._columnCount=n.columnNames.length,e._lastIndex=void 0;for(var _,T=e._addNewLeapSeconds,R=0,A=E.length;R<A;R+=e._columnCount){var S=E[R+i],v=E[R+m],g=S+l.MODIFIED_JULIAN_DATE_DIFFERENCE,N=new o(g,v,f.TAI);if(y.push(N),T){if(v!==_&&r(_)){var I=o.leapSeconds,O=t(I,N,d);if(O<0){var w=new u(N,v);I.splice(~O,0,w)}}_=v}}}function m(e,t,n,r,i){var a=n*r;i.xPoleWander=t[a+e._xPoleWanderRadiansColumn],i.yPoleWander=t[a+e._yPoleWanderRadiansColumn],i.xPoleOffset=t[a+e._xCelestialPoleOffsetRadiansColumn],i.yPoleOffset=t[a+e._yCelestialPoleOffsetRadiansColumn],i.ut1MinusUtc=t[a+e._ut1MinusUtcSecondsColumn]}function E(e,t,n){return t+e*(n-t)}function y(e,t,n,r,i,a,u){var s=e._columnCount;if(a>t.length-1)return u.xPoleWander=0,u.yPoleWander=0,u.xPoleOffset=0,u.yPoleOffset=0,u.ut1MinusUtc=0,u;var c=t[i],l=t[a];if(c.equals(l)||r.equals(c))return m(e,n,i,s,u),u;if(r.equals(l))return m(e,n,a,s,u),u;var f=o.secondsDifference(r,c)/o.secondsDifference(l,c),h=i*s,d=a*s,p=n[h+e._ut1MinusUtcSecondsColumn],y=n[d+e._ut1MinusUtcSecondsColumn],_=y-p;if(_>.5||_<-.5){var T=n[h+e._taiMinusUtcSecondsColumn],R=n[d+e._taiMinusUtcSecondsColumn];T!==R&&(l.equals(r)?p=y:y-=R-T)}return u.xPoleWander=E(f,n[h+e._xPoleWanderRadiansColumn],n[d+e._xPoleWanderRadiansColumn]),u.yPoleWander=E(f,n[h+e._yPoleWanderRadiansColumn],n[d+e._yPoleWanderRadiansColumn]),u.xPoleOffset=E(f,n[h+e._xCelestialPoleOffsetRadiansColumn],n[d+e._xCelestialPoleOffsetRadiansColumn]),u.yPoleOffset=E(f,n[h+e._yCelestialPoleOffsetRadiansColumn],n[d+e._yCelestialPoleOffsetRadiansColumn]),u.ut1MinusUtc=E(f,p,y),u}return h.NONE=a({getPromiseToLoad:function(){return e()},compute:function(e,t){return r(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new i(0,0,0,0,0),t}}),h.prototype.getPromiseToLoad=function(){return e(this._downloadPromise)},h.prototype.compute=function(e,n){if(r(this._samples)){if(r(n)||(n=new i(0,0,0,0,0)),0===this._samples.length)return n.xPoleWander=0,n.yPoleWander=0,n.xPoleOffset=0,n.yPoleOffset=0,n.ut1MinusUtc=0,n;var a=this._dates,u=this._lastIndex,s=0,l=0;if(r(u)){var f=a[u],h=a[u+1],d=o.lessThanOrEquals(f,e),p=!r(h),m=p||o.greaterThanOrEquals(h,e);if(d&&m)return s=u,!p&&h.equals(e)&&++s,l=s+1,y(this,a,this._samples,e,s,l,n),n}var E=t(a,e,o.compare,this._dateColumn);return E>=0?(E<a.length-1&&a[E+1].equals(e)&&++E,s=E,l=E):(l=~E,(s=l-1)<0&&(s=0)),this._lastIndex=s,y(this,a,this._samples,e,s,l,n),n}if(r(this._dataError))throw new c(this._dataError)},h}),define("Core/HeadingPitchRoll",["./defaultValue","./defined","./DeveloperError","./Math"],function(e,t,n,r){"use strict";function i(t,n,r){this.heading=e(t,0),this.pitch=e(n,0),this.roll=e(r,0)}return i.fromQuaternion=function(e,n){t(n)||(n=new i);var a=2*(e.w*e.y-e.z*e.x),o=1-2*(e.x*e.x+e.y*e.y),u=2*(e.w*e.x+e.y*e.z),s=1-2*(e.y*e.y+e.z*e.z),c=2*(e.w*e.z+e.x*e.y);return n.heading=-Math.atan2(c,s),n.roll=Math.atan2(u,o),n.pitch=-r.asinClamped(a),n},i.fromDegrees=function(e,n,a,o){return t(o)||(o=new i),o.heading=e*r.RADIANS_PER_DEGREE,o.pitch=n*r.RADIANS_PER_DEGREE,o.roll=a*r.RADIANS_PER_DEGREE,o},i.clone=function(e,n){if(t(e))return t(n)?(n.heading=e.heading,n.pitch=e.pitch,n.roll=e.roll,n):new i(e.heading,e.pitch,e.roll)},i.equals=function(e,n){return e===n||t(e)&&t(n)&&e.heading===n.heading&&e.pitch===n.pitch&&e.roll===n.roll},i.equalsEpsilon=function(e,n,i,a){return e===n||t(e)&&t(n)&&r.equalsEpsilon(e.heading,n.heading,i,a)&&r.equalsEpsilon(e.pitch,n.pitch,i,a)&&r.equalsEpsilon(e.roll,n.roll,i,a)},i.prototype.clone=function(e){return i.clone(this,e)},i.prototype.equals=function(e){return i.equals(this,e)},i.prototype.equalsEpsilon=function(e,t,n){return i.equalsEpsilon(this,e,t,n)},i.prototype.toString=function(){return"("+this.heading+", "+this.pitch+", "+this.roll+")"},i}),define("Core/buildModuleUrl",["./defined","./DeveloperError","./getAbsoluteUri","./Resource","require"],function(e,t,n,r,i){"use strict";function a(){for(var e=document.getElementsByTagName("script"),t=0,n=e.length;t<n;++t){var r=e[t].getAttribute("src"),i=p.exec(r);if(null!==i)return i[1]}}function o(t){return"undefined"==typeof document?t:(e(f)||(f=document.createElement("a")),f.href=t,f.href=f.href,f.href)}function u(){if(e(h))return h;var t;return t="undefined"!=typeof CESIUM_BASE_URL?CESIUM_BASE_URL:e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?n("..",l("Core/buildModuleUrl.js")):a(),h=new r({url:o(t)}),h.appendForwardSlash(),h}function s(e){return o(i.toUrl("../"+e))}function c(e){return u().getDerivedResource({url:e}).url}function l(t){return e(d)||(d=e(define.amd)&&!define.amd.toUrlUndefined&&e(i.toUrl)?s:c),d(t)}var f,h,d,p=/((?:.*\/)|^)cesium[\w-]*\.js(?:\W|$)/i;return l._cesiumScriptRegex=p,l._buildModuleUrlFromBaseUrl=c,l._clearBaseResource=function(){h=void 0},l.setBaseUrl=function(e){h=r.DEFAULT.getDerivedResource({url:e})},l.getCesiumBaseUrl=u,l}),define("Core/Iau2006XysSample",[],function(){"use strict";function e(e,t,n){this.x=e,this.y=t,this.s=n}return e}),define("Core/Iau2006XysData",["../ThirdParty/when","./buildModuleUrl","./defaultValue","./defined","./Iau2006XysSample","./JulianDate","./Resource","./TimeStandard"],function(e,t,n,r,i,a,o,u){"use strict";function s(e){e=n(e,n.EMPTY_OBJECT),this._xysFileUrlTemplate=o.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=n(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=n(e.sampleZeroJulianEphemerisDate,2442396.5),this._sampleZeroDateTT=new a(this._sampleZeroJulianEphemerisDate,0,u.TAI),this._stepSizeDays=n(e.stepSizeDays,1),this._samplesPerXysFile=n(e.samplesPerXysFile,1e3),this._totalSamples=n(e.totalSamples,27426),this._samples=new Array(3*this._totalSamples),this._chunkDownloadsInProgress=[];for(var t=this._interpolationOrder,r=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),s=Math.pow(this._stepSizeDays,t),c=0;c<=t;++c){r[c]=s,i[c]=c*this._stepSizeDays;for(var l=0;l<=t;++l)l!==c&&(r[c]*=c-l);r[c]=1/r[c]}this._work=new Array(t+1),this._coef=new Array(t+1)}function c(e,t,n){var r=f;return r.dayNumber=t,r.secondsOfDay=n,a.daysDifference(r,e._sampleZeroDateTT)}function l(n,i){if(n._chunkDownloadsInProgress[i])return n._chunkDownloadsInProgress[i];var a=e.defer();n._chunkDownloadsInProgress[i]=a;var u,s=n._xysFileUrlTemplate;return u=r(s)?s.getDerivedResource({templateValues:{0:i}}):new o({url:t("Assets/IAU2006_XYS/IAU2006_XYS_"+i+".json")}),e(u.fetchJson(),function(e){n._chunkDownloadsInProgress[i]=!1;for(var t=n._samples,r=e.samples,o=i*n._samplesPerXysFile*3,u=0,s=r.length;u<s;++u)t[o+u]=r[u];a.resolve()}),a.promise}var f=new a(0,0,u.TAI);return s.prototype.preload=function(t,n,r,i){var a=c(this,t,n),o=c(this,r,i),u=a/this._stepSizeDays-this._interpolationOrder/2|0;u<0&&(u=0);var s=o/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;s>=this._totalSamples&&(s=this._totalSamples-1);for(var f=u/this._samplesPerXysFile|0,h=s/this._samplesPerXysFile|0,d=[],p=f;p<=h;++p)d.push(l(this,p));return e.all(d)},s.prototype.computeXysRadians=function(e,t,n){var a=c(this,e,t);if(!(a<0)){var o=a/this._stepSizeDays|0;if(!(o>=this._totalSamples)){var u=this._interpolationOrder,s=o-(u/2|0);s<0&&(s=0);var f=s+u;f>=this._totalSamples&&(f=this._totalSamples-1,(s=f-u)<0&&(s=0));var h=!1,d=this._samples;if(r(d[3*s])||(l(this,s/this._samplesPerXysFile|0),h=!0),r(d[3*f])||(l(this,f/this._samplesPerXysFile|0),h=!0),!h){r(n)?(n.x=0,n.y=0,n.s=0):n=new i(0,0,0);var p,m,E=a-s*this._stepSizeDays,y=this._work,_=this._denominators,T=this._coef,R=this._xTable;for(p=0;p<=u;++p)y[p]=E-R[p];for(p=0;p<=u;++p){for(T[p]=1,m=0;m<=u;++m)m!==p&&(T[p]*=y[m]);T[p]*=_[p];var A=3*(s+p);n.x+=T[p]*d[A++],n.y+=T[p]*d[A++],n.s+=T[p]*d[A]}return n}}}},s}),define("Core/Fullscreen",["./defined","./defineProperties"],function(e,t){"use strict";var n,r={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},i={};return t(i,{element:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenElement]}},changeEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenchange}},errorEventName:{get:function(){if(i.supportsFullscreen())return r.fullscreenerror}},enabled:{get:function(){if(i.supportsFullscreen())return document[r.fullscreenEnabled]}},fullscreen:{get:function(){if(i.supportsFullscreen())return null!==i.element}}}),i.supportsFullscreen=function(){if(e(n))return n;n=!1;var t=document.body;if("function"==typeof t.requestFullscreen)return r.requestFullscreen="requestFullscreen",r.exitFullscreen="exitFullscreen",r.fullscreenEnabled="fullscreenEnabled",r.fullscreenElement="fullscreenElement",r.fullscreenchange="fullscreenchange",r.fullscreenerror="fullscreenerror",n=!0;for(var i,a=["webkit","moz","o","ms","khtml"],o=0,u=a.length;o<u;++o){var s=a[o];i=s+"RequestFullscreen","function"==typeof t[i]?(r.requestFullscreen=i,n=!0):(i=s+"RequestFullScreen","function"==typeof t[i]&&(r.requestFullscreen=i,n=!0)),i=s+"ExitFullscreen","function"==typeof document[i]?r.exitFullscreen=i:(i=s+"CancelFullScreen","function"==typeof document[i]&&(r.exitFullscreen=i)),i=s+"FullscreenEnabled",void 0!==document[i]?r.fullscreenEnabled=i:(i=s+"FullScreenEnabled",void 0!==document[i]&&(r.fullscreenEnabled=i)),i=s+"FullscreenElement",void 0!==document[i]?r.fullscreenElement=i:(i=s+"FullScreenElement",void 0!==document[i]&&(r.fullscreenElement=i)),i=s+"fullscreenchange",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenChange"),r.fullscreenchange=i),i=s+"fullscreenerror",void 0!==document["on"+i]&&("ms"===s&&(i="MSFullscreenError"),r.fullscreenerror=i)}return n},i.requestFullscreen=function(e,t){i.supportsFullscreen()&&e[r.requestFullscreen]({vrDisplay:t})},i.exitFullscreen=function(){i.supportsFullscreen()&&document[r.exitFullscreen]()},i}),define("Core/FeatureDetection",["./defaultValue","./defined","./defineProperties","./DeveloperError","./Fullscreen","../ThirdParty/when"],function(e,t,n,r,i,a){"use strict";function o(e){for(var t=e.split("."),n=0,r=t.length;n<r;++n)t[n]=parseInt(t[n],10);return t}function u(){if(!t(N)&&(N=!1,!m())){var e=/ Chrome\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(N=!0,I=o(e[1]))}return N}function s(){return u()&&I}function c(){if(!t(O)&&(O=!1,!u()&&!m()&&/ Safari\/[\.0-9]+/.test(g.userAgent))){var e=/ Version\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(O=!0,w=o(e[1]))}return O}function l(){return c()&&w}function f(){if(!t(M)){M=!1;var e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(g.userAgent);null!==e&&(M=!0,C=o(e[1]),C.isNightly=!!e[2])}return M}function h(){return f()&&C}function d(){if(!t(x)){x=!1;var e;"Microsoft Internet Explorer"===g.appName?null!==(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1])):"Netscape"===g.appName&&null!==(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(g.userAgent))&&(x=!0,P=o(e[1]))}return x}function p(){return d()&&P}function m(){if(!t(U)){U=!1;var e=/ Edge\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(U=!0,D=o(e[1]))}return U}function E(){return m()&&D}function y(){if(!t(F)){F=!1;var e=/Firefox\/([\.0-9]+)/.exec(g.userAgent);null!==e&&(F=!0,L=o(e[1]))}return F}function _(){return t(B)||(B=/Windows/i.test(g.appVersion)),B}function T(){return y()&&L}function R(){return t(b)||(b=!y()&&"undefined"!=typeof PointerEvent&&(!t(g.pointerEnabled)||g.pointerEnabled)),b}function A(){if(!t(q)){var e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");var n=e.style.imageRendering;q=t(n)&&""!==n,q&&(z=n)}return q}function S(){return A()?z:void 0}function v(){return v._result}var g;g="undefined"!=typeof navigator?navigator:{};var N,I,O,w,M,C,x,P,U,D,F,L,B,b,z,q;v._promise=void 0,v._result=void 0,v.initialize=function(){if(t(v._promise))return v._promise;var e=a.defer();if(v._promise=e.promise,m())return v._result=!1,e.resolve(v._result),e.promise;var n=new Image;return n.onload=function(){v._result=n.width>0&&n.height>0,e.resolve(v._result)},n.onerror=function(){v._result=!1,e.resolve(v._result)},n.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA",e.promise},n(v,{initialized:{get:function(){return t(v._result)}}});var G=[];"undefined"!=typeof ArrayBuffer&&(G.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),"undefined"!=typeof Uint8ClampedArray&&G.push(Uint8ClampedArray),"undefined"!=typeof CanvasPixelArray&&G.push(CanvasPixelArray));var V={isChrome:u,chromeVersion:s,isSafari:c,safariVersion:l,isWebkit:f,webkitVersion:h,isInternetExplorer:d,internetExplorerVersion:p,isEdge:m,edgeVersion:E,isFirefox:y,firefoxVersion:T,isWindows:_,hardwareConcurrency:e(g.hardwareConcurrency,3),supportsPointerEvents:R,supportsImageRenderingPixelated:A,supportsWebP:v,imageRenderingValue:S,typedArrayTypes:G};return V.supportsFullscreen=function(){return i.supportsFullscreen()},V.supportsTypedArrays=function(){return"undefined"!=typeof ArrayBuffer},V.supportsWebWorkers=function(){return"undefined"!=typeof Worker},V.supportsWebAssembly=function(){return"undefined"!=typeof WebAssembly&&!V.isEdge()},V}),define("Core/Quaternion",["./Cartesian3","./Check","./defaultValue","./defined","./FeatureDetection","./freezeObject","./Math","./Matrix3"],function(e,t,n,r,i,a,o,u){"use strict";function s(e,t,r,i){this.x=n(e,0),this.y=n(t,0),this.z=n(r,0),this.w=n(i,0)}var c=new e;s.fromAxisAngle=function(t,n,i){var a=n/2,o=Math.sin(a);c=e.normalize(t,c);var u=c.x*o,l=c.y*o,f=c.z*o,h=Math.cos(a);return r(i)?(i.x=u,i.y=l,i.z=f,i.w=h,i):new s(u,l,f,h)};var l=[1,2,0],f=new Array(3);s.fromRotationMatrix=function(e,t){ -var n,i,a,o,c,h=e[u.COLUMN0ROW0],d=e[u.COLUMN1ROW1],p=e[u.COLUMN2ROW2],m=h+d+p;if(m>0)n=Math.sqrt(m+1),c=.5*n,n=.5/n,i=(e[u.COLUMN1ROW2]-e[u.COLUMN2ROW1])*n,a=(e[u.COLUMN2ROW0]-e[u.COLUMN0ROW2])*n,o=(e[u.COLUMN0ROW1]-e[u.COLUMN1ROW0])*n;else{var E=l,y=0;d>h&&(y=1),p>h&&p>d&&(y=2);var _=E[y],T=E[_];n=Math.sqrt(e[u.getElementIndex(y,y)]-e[u.getElementIndex(_,_)]-e[u.getElementIndex(T,T)]+1);var R=f;R[y]=.5*n,n=.5/n,c=(e[u.getElementIndex(T,_)]-e[u.getElementIndex(_,T)])*n,R[_]=(e[u.getElementIndex(_,y)]+e[u.getElementIndex(y,_)])*n,R[T]=(e[u.getElementIndex(T,y)]+e[u.getElementIndex(y,T)])*n,i=-R[0],a=-R[1],o=-R[2]}return r(t)?(t.x=i,t.y=a,t.z=o,t.w=c,t):new s(i,a,o,c)};var h=new s,d=new s,p=new s,m=new s;s.fromHeadingPitchRoll=function(t,n){return m=s.fromAxisAngle(e.UNIT_X,t.roll,h),p=s.fromAxisAngle(e.UNIT_Y,-t.pitch,n),n=s.multiply(p,m,p),d=s.fromAxisAngle(e.UNIT_Z,-t.heading,h),s.multiply(d,n,n)};var E=new e,y=new e,_=new s,T=new s,R=new s;s.packedLength=4,s.pack=function(e,t,r){return r=n(r,0),t[r++]=e.x,t[r++]=e.y,t[r++]=e.z,t[r]=e.w,t},s.unpack=function(e,t,i){return t=n(t,0),r(i)||(i=new s),i.x=e[t],i.y=e[t+1],i.z=e[t+2],i.w=e[t+3],i},s.packedInterpolationLength=3,s.convertPackedArrayForInterpolation=function(e,t,n,r){s.unpack(e,4*n,R),s.conjugate(R,R);for(var i=0,a=n-t+1;i<a;i++){var o=3*i;s.unpack(e,4*(t+i),_),s.multiply(_,R,_),_.w<0&&s.negate(_,_),s.computeAxis(_,E);var u=s.computeAngle(_);r[o]=E.x*u,r[o+1]=E.y*u,r[o+2]=E.z*u}},s.unpackInterpolationResult=function(t,n,i,a,o){r(o)||(o=new s),e.fromArray(t,0,y);var u=e.magnitude(y);return s.unpack(n,4*a,T),0===u?s.clone(s.IDENTITY,_):s.fromAxisAngle(y,u,_),s.multiply(_,T,o)},s.clone=function(e,t){if(r(e))return r(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new s(e.x,e.y,e.z,e.w)},s.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t},s.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w},s.magnitude=function(e){return Math.sqrt(s.magnitudeSquared(e))},s.normalize=function(e,t){var n=1/s.magnitude(e),r=e.x*n,i=e.y*n,a=e.z*n,o=e.w*n;return t.x=r,t.y=i,t.z=a,t.w=o,t},s.inverse=function(e,t){var n=s.magnitudeSquared(e);return t=s.conjugate(e,t),s.multiplyByScalar(t,1/n,t)},s.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n},s.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n},s.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t},s.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w},s.multiply=function(e,t,n){var r=e.x,i=e.y,a=e.z,o=e.w,u=t.x,s=t.y,c=t.z,l=t.w,f=o*u+r*l+i*c-a*s,h=o*s-r*c+i*l+a*u,d=o*c+r*s-i*u+a*l,p=o*l-r*u-i*s-a*c;return n.x=f,n.y=h,n.z=d,n.w=p,n},s.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n},s.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n},s.computeAxis=function(e,t){var n=e.w;if(Math.abs(n-1)<o.EPSILON6)return t.x=t.y=t.z=0,t;var r=1/Math.sqrt(1-n*n);return t.x=e.x*r,t.y=e.y*r,t.z=e.z*r,t},s.computeAngle=function(e){return Math.abs(e.w-1)<o.EPSILON6?0:2*Math.acos(e.w)};var A=new s;s.lerp=function(e,t,n,r){return A=s.multiplyByScalar(t,n,A),r=s.multiplyByScalar(e,1-n,r),s.add(A,r,r)};var S=new s,v=new s,g=new s;s.slerp=function(e,t,n,r){var i=s.dot(e,t),a=t;if(i<0&&(i=-i,a=S=s.negate(t,S)),1-i<o.EPSILON6)return s.lerp(e,a,n,r);var u=Math.acos(i);return v=s.multiplyByScalar(e,Math.sin((1-n)*u),v),g=s.multiplyByScalar(a,Math.sin(n*u),g),r=s.add(v,g,r),s.multiplyByScalar(r,1/Math.sin(u),r)},s.log=function(t,n){var r=o.acosClamped(t.w),i=0;return 0!==r&&(i=r/Math.sin(r)),e.multiplyByScalar(t,i,n)},s.exp=function(t,n){var r=e.magnitude(t),i=0;return 0!==r&&(i=Math.sin(r)/r),n.x=t.x*i,n.y=t.y*i,n.z=t.z*i,n.w=Math.cos(r),n};var N=new e,I=new e,O=new s,w=new s;s.computeInnerQuadrangle=function(t,n,r,i){var a=s.conjugate(n,O);s.multiply(a,r,w);var o=s.log(w,N);s.multiply(a,t,w);var u=s.log(w,I);return e.add(o,u,o),e.multiplyByScalar(o,.25,o),e.negate(o,o),s.exp(o,O),s.multiply(n,O,i)},s.squad=function(e,t,n,r,i,a){var o=s.slerp(e,t,i,O),u=s.slerp(n,r,i,w);return s.slerp(o,u,2*i*(1-i),a)};for(var M=new s,C=1.9011074535173003,x=i.supportsTypedArrays()?new Float32Array(8):[],P=i.supportsTypedArrays()?new Float32Array(8):[],U=i.supportsTypedArrays()?new Float32Array(8):[],D=i.supportsTypedArrays()?new Float32Array(8):[],F=0;F<7;++F){var L=F+1,B=2*L+1;x[F]=1/(L*B),P[F]=L/B}return x[7]=C/136,P[7]=8*C/17,s.fastSlerp=function(e,t,n,r){var i,a=s.dot(e,t);a>=0?i=1:(i=-1,a=-a);for(var o=a-1,u=1-n,c=n*n,l=u*u,f=7;f>=0;--f)U[f]=(x[f]*c-P[f])*o,D[f]=(x[f]*l-P[f])*o;var h=i*n*(1+U[0]*(1+U[1]*(1+U[2]*(1+U[3]*(1+U[4]*(1+U[5]*(1+U[6]*(1+U[7])))))))),d=u*(1+D[0]*(1+D[1]*(1+D[2]*(1+D[3]*(1+D[4]*(1+D[5]*(1+D[6]*(1+D[7])))))))),p=s.multiplyByScalar(e,d,M);return s.multiplyByScalar(t,h,r),s.add(p,r,r)},s.fastSquad=function(e,t,n,r,i,a){var o=s.fastSlerp(e,t,i,O),u=s.fastSlerp(n,r,i,w);return s.fastSlerp(o,u,2*i*(1-i),a)},s.equals=function(e,t){return e===t||r(e)&&r(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w},s.equalsEpsilon=function(e,t,n){return e===t||r(e)&&r(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n},s.ZERO=a(new s(0,0,0,0)),s.IDENTITY=a(new s(0,0,0,1)),s.prototype.clone=function(e){return s.clone(this,e)},s.prototype.equals=function(e){return s.equals(this,e)},s.prototype.equalsEpsilon=function(e,t){return s.equalsEpsilon(this,e,t)},s.prototype.toString=function(){return"("+this.x+", "+this.y+", "+this.z+", "+this.w+")"},s}),define("Core/Transforms",["../ThirdParty/when","./Cartesian2","./Cartesian3","./Cartesian4","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./EarthOrientationParameters","./EarthOrientationParametersSample","./Ellipsoid","./HeadingPitchRoll","./Iau2006XysData","./Iau2006XysSample","./JulianDate","./Math","./Matrix3","./Matrix4","./Quaternion","./TimeConstants"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m,E,y,_,T,R){"use strict";var A={},S={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},v={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},g={},N={east:new n,north:new n,up:new n,west:new n,south:new n,down:new n},I=new n,O=new n,w=new n;A.localFrameToFixedFrameGenerator=function(e,t){if(!S.hasOwnProperty(e)||!S[e].hasOwnProperty(t))throw new s("firstAxis and secondAxis must be east, north, up, west, south or down.");var r,i=S[e][t],a=e+t;return u(g[a])?r=g[a]:(r=function(r,a,s){if(u(s)||(s=new _),E.equalsEpsilon(r.x,0,E.EPSILON14)&&E.equalsEpsilon(r.y,0,E.EPSILON14)){var c=E.sign(r.z);n.unpack(v[e],0,I),"east"!==e&&"west"!==e&&n.multiplyByScalar(I,c,I),n.unpack(v[t],0,O),"east"!==t&&"west"!==t&&n.multiplyByScalar(O,c,O),n.unpack(v[i],0,w),"east"!==i&&"west"!==i&&n.multiplyByScalar(w,c,w)}else{a=o(a,f.WGS84),a.geodeticSurfaceNormal(r,N.up);var l=N.up,h=N.east;h.x=-r.y,h.y=r.x,h.z=0,n.normalize(h,N.east),n.cross(l,h,N.north),n.multiplyByScalar(N.up,-1,N.down),n.multiplyByScalar(N.east,-1,N.west),n.multiplyByScalar(N.north,-1,N.south),I=N[e],O=N[t],w=N[i]}return s[0]=I.x,s[1]=I.y,s[2]=I.z,s[3]=0,s[4]=O.x,s[5]=O.y,s[6]=O.z,s[7]=0,s[8]=w.x,s[9]=w.y,s[10]=w.z,s[11]=0,s[12]=r.x,s[13]=r.y,s[14]=r.z,s[15]=1,s},g[a]=r),r},A.eastNorthUpToFixedFrame=A.localFrameToFixedFrameGenerator("east","north"),A.northEastDownToFixedFrame=A.localFrameToFixedFrameGenerator("north","east"),A.northUpEastToFixedFrame=A.localFrameToFixedFrameGenerator("north","up"),A.northWestUpToFixedFrame=A.localFrameToFixedFrameGenerator("north","west");var M=new T,C=new n(1,1,1),x=new _;A.headingPitchRollToFixedFrame=function(e,t,r,i,a){i=o(i,A.eastNorthUpToFixedFrame);var u=T.fromHeadingPitchRoll(t,M),s=_.fromTranslationQuaternionRotationScale(n.ZERO,u,C,x);return a=i(e,r,a),_.multiply(a,s,a)};var P=new _,U=new y;A.headingPitchRollQuaternion=function(e,t,n,r,i){var a=A.headingPitchRollToFixedFrame(e,t,n,r,P),o=_.getRotation(a,U);return T.fromRotationMatrix(o,i)};var D=new n(1,1,1),F=new n,L=new _,B=new _,b=new y,z=new T;A.fixedFrameToHeadingPitchRoll=function(e,t,r,i){t=o(t,f.WGS84),r=o(r,A.eastNorthUpToFixedFrame),u(i)||(i=new h);var a=_.getTranslation(e,F);if(n.equals(a,n.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;var s=_.inverseTransformation(r(a,t,L),L),c=_.setScale(e,D,B);c=_.setTranslation(c,n.ZERO,c),s=_.multiply(s,c,s);var l=T.fromRotationMatrix(_.getRotation(s,b),z);return l=T.normalize(l,l),h.fromQuaternion(l,i)};var q=E.TWO_PI/86400,G=new m;A.computeTemeToPseudoFixedMatrix=function(e,t){G=m.addSeconds(e,-m.computeTaiMinusUtc(e),G);var n,r=G.dayNumber,i=G.secondsOfDay,a=r-2451545;n=i>=43200?(a+.5)/R.DAYS_PER_JULIAN_CENTURY:(a-.5)/R.DAYS_PER_JULIAN_CENTURY;var o=24110.54841+n*(8640184.812866+n*(.093104+-62e-7*n)),s=o*q%E.TWO_PI,c=72921158553e-15+1.1772758384668e-19*(r-2451545.5),l=(i+.5*R.SECONDS_PER_DAY)%R.SECONDS_PER_DAY,f=s+c*l,h=Math.cos(f),d=Math.sin(f);return u(t)?(t[0]=h,t[1]=-d,t[2]=0,t[3]=d,t[4]=h,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new y(h,d,0,-d,h,0,0,0,1)},A.iau2006XysData=new d,A.earthOrientationParameters=c.NONE;A.preloadIcrfFixed=function(t){var n=t.start.dayNumber,r=t.start.secondsOfDay+32.184,i=t.stop.dayNumber,a=t.stop.secondsOfDay+32.184,o=A.iau2006XysData.preload(n,r,i,a),u=A.earthOrientationParameters.getPromiseToLoad();return e.all([o,u])},A.computeIcrfToFixedMatrix=function(e,t){u(t)||(t=new y);var n=A.computeFixedToIcrfMatrix(e,t);if(u(n))return y.transpose(n,t)};var V=new p(0,0,0),X=new l(0,0,0,0,0,0),W=new y,H=new y;A.computeFixedToIcrfMatrix=function(e,t){u(t)||(t=new y);var n=A.earthOrientationParameters.compute(e,X);if(u(n)){var r=e.dayNumber,i=e.secondsOfDay+32.184,a=A.iau2006XysData.computeXysRadians(r,i,V);if(u(a)){var o=a.x+n.xPoleOffset,s=a.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-o*o-s*s)),l=W;l[0]=1-c*o*o,l[3]=-c*o*s,l[6]=o,l[1]=-c*o*s,l[4]=1-c*s*s,l[7]=s,l[2]=-o,l[5]=-s,l[8]=1-c*(o*o+s*s);var f=y.fromRotationZ(-a.s,H),h=y.multiply(l,f,W),d=e.dayNumber,p=e.secondsOfDay-m.computeTaiMinusUtc(e)+n.ut1MinusUtc,_=d-2451545,T=p/R.SECONDS_PER_DAY,S=.779057273264+T+.00273781191135448*(_+T);S=S%1*E.TWO_PI;var v=y.fromRotationZ(S,H),g=y.multiply(h,v,W),N=Math.cos(n.xPoleWander),I=Math.cos(n.yPoleWander),O=Math.sin(n.xPoleWander),w=Math.sin(n.yPoleWander),M=r-2451545+i/R.SECONDS_PER_DAY;M/=36525;var C=-47e-6*M*E.RADIANS_PER_DEGREE/3600,x=Math.cos(C),P=Math.sin(C),U=H;return U[0]=N*x,U[1]=N*P,U[2]=O,U[3]=-I*P+w*O*x,U[4]=I*x+w*O*P,U[5]=-w*N,U[6]=-w*P-I*O*x,U[7]=w*x-I*O*P,U[8]=I*N,y.multiply(g,U,t)}}};var Y=new r;A.pointToWindowCoordinates=function(e,t,n,r){return r=A.pointToGLWindowCoordinates(e,t,n,r),r.y=2*t[5]-r.y,r},A.pointToGLWindowCoordinates=function(e,n,i,a){u(a)||(a=new t);var o=Y;return _.multiplyByVector(e,r.fromElements(i.x,i.y,i.z,1,o),o),r.multiplyByScalar(o,1/o.w,o),_.multiplyByVector(n,o,o),t.fromCartesian4(o,a)};var k=new n,j=new n,Z=new n;A.rotationMatrixFromPositionVelocity=function(e,t,r,i){var a=o(r,f.WGS84).geodeticSurfaceNormal(e,k),s=n.cross(t,a,j);n.equalsEpsilon(s,n.ZERO,E.EPSILON6)&&(s=n.clone(n.UNIT_X,s));var c=n.cross(s,t,Z);return n.normalize(c,c),n.cross(t,c,s),n.negate(s,s),n.normalize(s,s),u(i)||(i=new y),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=s.x,i[4]=s.y,i[5]=s.z,i[6]=c.x,i[7]=c.y,i[8]=c.z,i};var K=new _(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),J=new i,Q=new n,$=new n,ee=new y,te=new _,ne=new _;return A.basisTo2D=function(e,t,r){var i=_.getTranslation(t,$),a=e.ellipsoid,o=a.cartesianToCartographic(i,J),u=e.project(o,Q);n.fromElements(u.z,u.x,u.y,u);var s=A.eastNorthUpToFixedFrame(i,a,te),c=_.inverseTransformation(s,ne),l=_.getRotation(t,ee),f=_.multiplyByMatrix3(c,l,r);return _.multiply(K,f,r),_.setTranslation(r,u,r),r},A.wgs84To2DModelMatrix=function(e,t,r){var i=e.ellipsoid,a=A.eastNorthUpToFixedFrame(t,i,te),o=_.inverseTransformation(a,ne),u=i.cartesianToCartographic(t,J),s=e.project(u,Q);n.fromElements(s.z,s.x,s.y,s);var c=_.fromTranslation(s,te);return _.multiply(K,o,r),_.multiply(c,r,r),r},A}),define("Core/EllipsoidTangentPlane",["./AxisAlignedBoundingBox","./Cartesian2","./Cartesian3","./Cartesian4","./Check","./defaultValue","./defined","./defineProperties","./DeveloperError","./Ellipsoid","./IntersectionTests","./Matrix4","./Plane","./Ray","./Transforms"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p){"use strict";function m(e,t){t=a(t,c.WGS84),e=t.scaleToGeodeticSurface(e);var r=p.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=n.fromCartesian4(f.getColumn(r,0,E)),this._yAxis=n.fromCartesian4(f.getColumn(r,1,E));var i=n.fromCartesian4(f.getColumn(r,2,E));this._plane=h.fromPointNormal(e,i)}var E=new r;u(m.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var y=new e;m.fromPoints=function(t,n){return new m(e.fromPoints(t,y).center,n)};var _=new d,T=new n;m.prototype.projectPointOntoPlane=function(e,r){var i=_;i.origin=e,n.normalize(e,i.direction);var a=l.rayPlane(i,this._plane,T);if(o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T)),o(a)){var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return o(r)?(r.x=s,r.y=c,r):new t(s,c)}},m.prototype.projectPointsOntoPlane=function(e,t){o(t)||(t=[]);for(var n=0,r=e.length,i=0;i<r;i++){var a=this.projectPointOntoPlane(e[i],t[n]);o(a)&&(t[n]=a,n++)}return t.length=n,t},m.prototype.projectPointToNearestOnPlane=function(e,r){o(r)||(r=new t);var i=_;i.origin=e,n.clone(this._plane.normal,i.direction);var a=l.rayPlane(i,this._plane,T);o(a)||(n.negate(i.direction,i.direction),a=l.rayPlane(i,this._plane,T));var u=n.subtract(a,this._origin,a),s=n.dot(this._xAxis,u),c=n.dot(this._yAxis,u);return r.x=s,r.y=c,r},m.prototype.projectPointsToNearestOnPlane=function(e,t){o(t)||(t=[]);var n=e.length;t.length=n;for(var r=0;r<n;r++)t[r]=this.projectPointToNearestOnPlane(e[r],t[r]);return t};var R=new n;return m.prototype.projectPointOntoEllipsoid=function(e,t){o(t)||(t=new n);var r=this._ellipsoid,i=this._origin,a=this._xAxis,u=this._yAxis,s=R;return n.multiplyByScalar(a,e.x,s),t=n.add(i,s,t),n.multiplyByScalar(u,e.y,s),n.add(t,s,t),r.scaleToGeocentricSurface(t,t),t},m.prototype.projectPointsOntoEllipsoid=function(e,t){var n=e.length;o(t)?t.length=n:t=new Array(n);for(var r=0;r<n;++r)t[r]=this.projectPointOntoEllipsoid(e[r],t[r]);return t},m}),define("Core/OrientedBoundingBox",["./BoundingSphere","./Cartesian2","./Cartesian3","./Cartographic","./Check","./defaultValue","./defined","./DeveloperError","./Ellipsoid","./EllipsoidTangentPlane","./Intersect","./Interval","./Math","./Matrix3","./Plane","./Rectangle"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d,p,m){"use strict";function E(e,t){this.center=n.clone(a(e,n.ZERO)),this.halfAxes=d.clone(a(t,d.ZERO))}function y(e,t,r,i,a,u,s,c){o(c)||(c=new E);var l=c.halfAxes;d.setColumn(l,0,e.xAxis,l),d.setColumn(l,1,e.yAxis,l),d.setColumn(l,2,e.zAxis,l);var f=I;f.x=(t+r)/2,f.y=(i+a)/2,f.z=(u+s)/2;var h=O;h.x=(r-t)/2,h.y=(a-i)/2,h.z=(s-u)/2;var p=c.center;return f=d.multiplyByVector(l,f,f),n.add(e.origin,f,p),d.multiplyByScale(l,h,l),c}E.packedLength=n.packedLength+d.packedLength,E.pack=function(e,t,r){return r=a(r,0),n.pack(e.center,t,r),d.pack(e.halfAxes,t,r+n.packedLength),t},E.unpack=function(e,t,r){return t=a(t,0),o(r)||(r=new E),n.unpack(e,t,r.center),d.unpack(e,t+n.packedLength,r.halfAxes),r};var _=new n,T=new n,R=new n,A=new n,S=new n,v=new n,g=new d,N={unitary:new d,diagonal:new d};E.fromPoints=function(e,t){if(o(t)||(t=new E),!o(e)||0===e.length)return t.halfAxes=d.ZERO,t.center=n.ZERO,t;var r,i=e.length,a=n.clone(e[0],_);for(r=1;r<i;r++)n.add(a,e[r],a);var u=1/i;n.multiplyByScalar(a,u,a);var s,c=0,l=0,f=0,h=0,p=0,m=0;for(r=0;r<i;r++)s=n.subtract(e[r],a,T),c+=s.x*s.x,l+=s.x*s.y,f+=s.x*s.z,h+=s.y*s.y,p+=s.y*s.z,m+=s.z*s.z;c*=u,l*=u,f*=u,h*=u,p*=u,m*=u;var y=g;y[0]=c,y[1]=l,y[2]=f,y[3]=l,y[4]=h,y[5]=p,y[6]=f,y[7]=p,y[8]=m;var I=d.computeEigenDecomposition(y,N),O=d.clone(I.unitary,t.halfAxes),w=d.getColumn(O,0,A),M=d.getColumn(O,1,S),C=d.getColumn(O,2,v),x=-Number.MAX_VALUE,P=-Number.MAX_VALUE,U=-Number.MAX_VALUE,D=Number.MAX_VALUE,F=Number.MAX_VALUE,L=Number.MAX_VALUE;for(r=0;r<i;r++)s=e[r],x=Math.max(n.dot(w,s),x),P=Math.max(n.dot(M,s),P),U=Math.max(n.dot(C,s),U),D=Math.min(n.dot(w,s),D),F=Math.min(n.dot(M,s),F),L=Math.min(n.dot(C,s),L);w=n.multiplyByScalar(w,.5*(D+x),w),M=n.multiplyByScalar(M,.5*(F+P),M),C=n.multiplyByScalar(C,.5*(L+U),C);var B=n.add(w,M,t.center);n.add(B,C,B);var b=R;return b.x=x-D,b.y=P-F,b.z=U-L,n.multiplyByScalar(b,.5,b),d.multiplyByScale(t.halfAxes,b,t.halfAxes),t};var I=new n,O=new n,w=new r,M=new n,C=[new r,new r,new r,new r,new r,new r,new r,new r],x=[new n,new n,new n,new n,new n,new n,new n,new n],P=[new t,new t,new t,new t,new t,new t,new t,new t];E.fromRectangle=function(e,t,n,r,i){t=a(t,0),n=a(n,0),r=a(r,s.WGS84);var o=m.center(e,w),u=r.cartographicToCartesian(o,M),l=new c(u,r),f=l.plane,h=C[0],d=C[1],E=C[2],_=C[3],T=C[4],R=C[5],A=C[6],S=C[7],v=o.longitude,g=e.south<0&&e.north>0?0:o.latitude;A.latitude=R.latitude=T.latitude=e.south,S.latitude=_.latitude=g,h.latitude=d.latitude=E.latitude=e.north,A.longitude=S.longitude=h.longitude=e.west,R.longitude=d.longitude=v,T.longitude=_.longitude=E.longitude=e.east,E.height=d.height=h.height=S.height=A.height=R.height=T.height=_.height=n,r.cartographicArrayToCartesianArray(C,x),l.projectPointsToNearestOnPlane(x,P);var N=Math.min(P[6].x,P[7].x,P[0].x),I=Math.max(P[2].x,P[3].x,P[4].x),O=Math.min(P[4].y,P[5].y,P[6].y),U=Math.max(P[0].y,P[1].y,P[2].y);return E.height=h.height=T.height=A.height=t,r.cartographicArrayToCartesianArray(C,x),y(l,N,I,O,U,Math.min(p.getPointDistance(f,x[0]),p.getPointDistance(f,x[2]),p.getPointDistance(f,x[4]),p.getPointDistance(f,x[6])),n,i)},E.clone=function(e,t){if(o(e))return o(t)?(n.clone(e.center,t.center),d.clone(e.halfAxes,t.halfAxes),t):new E(e.center,e.halfAxes)},E.intersectPlane=function(e,t){var r=e.center,i=t.normal,a=e.halfAxes,o=i.x,u=i.y,s=i.z,c=Math.abs(o*a[d.COLUMN0ROW0]+u*a[d.COLUMN0ROW1]+s*a[d.COLUMN0ROW2])+Math.abs(o*a[d.COLUMN1ROW0]+u*a[d.COLUMN1ROW1]+s*a[d.COLUMN1ROW2])+Math.abs(o*a[d.COLUMN2ROW0]+u*a[d.COLUMN2ROW1]+s*a[d.COLUMN2ROW2]),f=n.dot(i,r)+t.distance;return f<=-c?l.OUTSIDE:f>=c?l.INSIDE:l.INTERSECTING};var U=new n,D=new n,F=new n,L=new n;E.distanceSquaredTo=function(e,t){var r=n.subtract(t,e.center,I),i=e.halfAxes,a=d.getColumn(i,0,U),o=d.getColumn(i,1,D),u=d.getColumn(i,2,F),s=n.magnitude(a),c=n.magnitude(o),l=n.magnitude(u);n.normalize(a,a),n.normalize(o,o),n.normalize(u,u);var f=L;f.x=n.dot(r,a),f.y=n.dot(r,o),f.z=n.dot(r,u);var h,p=0;return f.x<-s?(h=f.x+s,p+=h*h):f.x>s&&(h=f.x-s,p+=h*h),f.y<-c?(h=f.y+c,p+=h*h):f.y>c&&(h=f.y-c,p+=h*h),f.z<-l?(h=f.z+l,p+=h*h):f.z>l&&(h=f.z-l,p+=h*h),p};var B=new n,b=new n;E.computePlaneDistances=function(e,t,r,i){o(i)||(i=new f);var a=Number.POSITIVE_INFINITY,u=Number.NEGATIVE_INFINITY,s=e.center,c=e.halfAxes,l=d.getColumn(c,0,U),h=d.getColumn(c,1,D),p=d.getColumn(c,2,F),m=n.add(l,h,B);n.add(m,p,m),n.add(m,s,m);var E=n.subtract(m,t,b),y=n.dot(r,E);return a=Math.min(y,a),u=Math.max(y,u),n.add(s,l,m),n.add(m,h,m),n.subtract(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.add(s,l,m),n.subtract(m,h,m),n.add(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.add(s,l,m),n.subtract(m,h,m),n.subtract(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.subtract(s,l,m),n.add(m,h,m),n.add(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.subtract(s,l,m),n.add(m,h,m),n.subtract(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.subtract(s,l,m),n.subtract(m,h,m),n.add(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),n.subtract(s,l,m),n.subtract(m,h,m),n.subtract(m,p,m),n.subtract(m,t,E),y=n.dot(r,E),a=Math.min(y,a),u=Math.max(y,u),i.start=a,i.stop=u,i};var z=new e;return E.isOccluded=function(t,n){var r=e.fromOrientedBoundingBox(t,z);return!n.isBoundingSphereVisible(r)},E.prototype.intersectPlane=function(e){return E.intersectPlane(this,e)},E.prototype.distanceSquaredTo=function(e){return E.distanceSquaredTo(this,e)},E.prototype.computePlaneDistances=function(e,t,n){return E.computePlaneDistances(this,e,t,n)},E.prototype.isOccluded=function(e){return E.isOccluded(this,e)},E.equals=function(e,t){return e===t||o(e)&&o(t)&&n.equals(e.center,t.center)&&d.equals(e.halfAxes,t.halfAxes)},E.prototype.clone=function(e){return E.clone(this,e)},E.prototype.equals=function(e){return E.equals(this,e)},E}),define("Core/ComponentDatatype",["./defaultValue","./defined","./DeveloperError","./FeatureDetection","./freezeObject","./WebGLConstants"],function(e,t,n,r,i,a){"use strict";if(!r.supportsTypedArrays())return{};var o={BYTE:a.BYTE,UNSIGNED_BYTE:a.UNSIGNED_BYTE,SHORT:a.SHORT,UNSIGNED_SHORT:a.UNSIGNED_SHORT,INT:a.INT,UNSIGNED_INT:a.UNSIGNED_INT,FLOAT:a.FLOAT,DOUBLE:a.DOUBLE};return o.getSizeInBytes=function(e){switch(e){case o.BYTE:return Int8Array.BYTES_PER_ELEMENT;case o.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case o.SHORT:return Int16Array.BYTES_PER_ELEMENT;case o.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case o.INT:return Int32Array.BYTES_PER_ELEMENT;case o.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case o.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case o.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}},o.fromTypedArray=function(e){return e instanceof Int8Array?o.BYTE:e instanceof Uint8Array?o.UNSIGNED_BYTE:e instanceof Int16Array?o.SHORT:e instanceof Uint16Array?o.UNSIGNED_SHORT:e instanceof Int32Array?o.INT:e instanceof Uint32Array?o.UNSIGNED_INT:e instanceof Float32Array?o.FLOAT:e instanceof Float64Array?o.DOUBLE:void 0},o.validate=function(e){return t(e)&&(e===o.BYTE||e===o.UNSIGNED_BYTE||e===o.SHORT||e===o.UNSIGNED_SHORT||e===o.INT||e===o.UNSIGNED_INT||e===o.FLOAT||e===o.DOUBLE)},o.createTypedArray=function(e,t){switch(e){case o.BYTE:return new Int8Array(t);case o.UNSIGNED_BYTE:return new Uint8Array(t);case o.SHORT:return new Int16Array(t);case o.UNSIGNED_SHORT:return new Uint16Array(t);case o.INT:return new Int32Array(t);case o.UNSIGNED_INT:return new Uint32Array(t);case o.FLOAT:return new Float32Array(t);case o.DOUBLE:return new Float64Array(t)}},o.createArrayBufferView=function(t,n,r,i){switch(r=e(r,0),i=e(i,(n.byteLength-r)/o.getSizeInBytes(t)),t){case o.BYTE:return new Int8Array(n,r,i);case o.UNSIGNED_BYTE:return new Uint8Array(n,r,i);case o.SHORT:return new Int16Array(n,r,i);case o.UNSIGNED_SHORT:return new Uint16Array(n,r,i);case o.INT:return new Int32Array(n,r,i);case o.UNSIGNED_INT:return new Uint32Array(n,r,i);case o.FLOAT:return new Float32Array(n,r,i);case o.DOUBLE:return new Float64Array(n,r,i)}},o.fromName=function(e){switch(e){case"BYTE":return o.BYTE;case"UNSIGNED_BYTE":return o.UNSIGNED_BYTE;case"SHORT":return o.SHORT;case"UNSIGNED_SHORT":return o.UNSIGNED_SHORT;case"INT":return o.INT;case"UNSIGNED_INT":return o.UNSIGNED_INT;case"FLOAT":return o.FLOAT;case"DOUBLE":return o.DOUBLE}},i(o)}),define("Core/TerrainQuantization",["./freezeObject"],function(e){"use strict";return e({NONE:0,BITS12:1})}),define("Core/TerrainEncoding",["./AttributeCompression","./Cartesian2","./Cartesian3","./ComponentDatatype","./defaultValue","./defined","./Math","./Matrix4","./TerrainQuantization"],function(e,t,n,r,i,a,o,u,s){"use strict";function c(e,t,r,o,c,h){var E,y,_,T=s.NONE;if(a(e)&&a(t)&&a(r)&&a(o)){var R=e.minimum,A=e.maximum,S=n.subtract(A,R,f),v=r-t;T=Math.max(n.maximumComponent(S),v)<m-1?s.BITS12:s.NONE,E=e.center,y=u.inverseTransformation(o,new u);var g=n.negate(R,l);u.multiply(u.fromTranslation(g,d),y,y);var N=l;N.x=1/S.x,N.y=1/S.y,N.z=1/S.z,u.multiply(u.fromScale(N,d),y,y),_=u.clone(o),u.setTranslation(_,n.ZERO,_),o=u.clone(o,new u);var I=u.fromTranslation(R,d),O=u.fromScale(S,p),w=u.multiply(I,O,d);u.multiply(o,w,o),u.multiply(_,w,_)}this.quantization=T,this.minimumHeight=t,this.maximumHeight=r,this.center=E,this.toScaledENU=y,this.fromScaledENU=o,this.matrix=_,this.hasVertexNormals=c,this.hasWebMercatorT=i(h,!1)}var l=new n,f=new n,h=new t,d=new u,p=new u,m=Math.pow(2,12);c.prototype.encode=function(r,i,a,c,f,d,p){var m=c.x,E=c.y;if(this.quantization===s.BITS12){a=u.multiplyByPoint(this.toScaledENU,a,l),a.x=o.clamp(a.x,0,1),a.y=o.clamp(a.y,0,1),a.z=o.clamp(a.z,0,1);var y=this.maximumHeight-this.minimumHeight,_=o.clamp((f-this.minimumHeight)/y,0,1);t.fromElements(a.x,a.y,h);var T=e.compressTextureCoordinates(h);t.fromElements(a.z,_,h);var R=e.compressTextureCoordinates(h);t.fromElements(m,E,h);var A=e.compressTextureCoordinates(h);if(r[i++]=T,r[i++]=R,r[i++]=A,this.hasWebMercatorT){t.fromElements(p,0,h);var S=e.compressTextureCoordinates(h);r[i++]=S}}else n.subtract(a,this.center,l),r[i++]=l.x,r[i++]=l.y,r[i++]=l.z,r[i++]=f,r[i++]=m,r[i++]=E,this.hasWebMercatorT&&(r[i++]=p);return this.hasVertexNormals&&(r[i++]=e.octPackFloat(d)),i},c.prototype.decodePosition=function(t,r,i){if(a(i)||(i=new n),r*=this.getStride(),this.quantization===s.BITS12){var o=e.decompressTextureCoordinates(t[r],h);i.x=o.x,i.y=o.y;var c=e.decompressTextureCoordinates(t[r+1],h);return i.z=c.x,u.multiplyByPoint(this.fromScaledENU,i,i)}return i.x=t[r],i.y=t[r+1],i.z=t[r+2],n.add(i,this.center,i)},c.prototype.decodeTextureCoordinates=function(n,r,i){return a(i)||(i=new t),r*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(n[r+2],i):t.fromElements(n[r+4],n[r+5],i)},c.prototype.decodeHeight=function(t,n){if(n*=this.getStride(),this.quantization===s.BITS12){return e.decompressTextureCoordinates(t[n+1],h).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight}return t[n+3]},c.prototype.decodeWebMercatorT=function(t,n){return n*=this.getStride(),this.quantization===s.BITS12?e.decompressTextureCoordinates(t[n+3],h).x:t[n+6]},c.prototype.getOctEncodedNormal=function(e,n,r){n=(n+1)*this.getStride()-1;var i=e[n]/256,a=Math.floor(i),o=256*(i-a);return t.fromElements(a,o,r)},c.prototype.getStride=function(){var e;switch(this.quantization){case s.BITS12:e=3;break;default:e=6}return this.hasWebMercatorT&&++e,this.hasVertexNormals&&++e,e};var E={position3DAndHeight:0,textureCoordAndEncodedNormals:1},y={compressed0:0,compressed1:1};return c.prototype.getAttributes=function(e){var t,n=r.FLOAT,i=r.getSizeInBytes(n);if(this.quantization===s.NONE){var a=2;return this.hasWebMercatorT&&++a,this.hasVertexNormals&&++a,t=(4+a)*i,[{index:E.position3DAndHeight,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:4,offsetInBytes:0,strideInBytes:t},{index:E.textureCoordAndEncodedNormals,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:a,offsetInBytes:4*i,strideInBytes:t}]}var o=3,u=0;return(this.hasWebMercatorT||this.hasVertexNormals)&&++o,this.hasWebMercatorT&&this.hasVertexNormals?(++u,t=(o+u)*i,[{index:y.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o,offsetInBytes:0,strideInBytes:t},{index:y.compressed1,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:u,offsetInBytes:o*i,strideInBytes:t}]):[{index:y.compressed0,vertexBuffer:e,componentDatatype:n,componentsPerAttribute:o}]},c.prototype.getAttributeLocations=function(){return this.quantization===s.NONE?E:y},c.clone=function(e,t){return a(t)||(t=new c),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=n.clone(e.center),t.toScaledENU=u.clone(e.toScaledENU),t.fromScaledENU=u.clone(e.fromScaledENU),t.matrix=u.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t},c}),define("Core/formatError",["./defined"],function(e){"use strict";function t(t){var n,r=t.name,i=t.message;n=e(r)&&e(i)?r+": "+i:t.toString();var a=t.stack;return e(a)&&(n+="\n"+a),n}return t}),define("Workers/createTaskProcessorWorker",["../ThirdParty/when","../Core/defaultValue","../Core/defined","../Core/formatError"],function(e,t,n,r){"use strict";function i(t,n,r){try{return t(n,r)}catch(t){return e.reject(t)}}function a(a){var o;return function(u){var s=u.data,c=[],l={id:s.id,result:void 0,error:void 0};return e(i(a,s.parameters,c)).then(function(e){l.result=e}).otherwise(function(e){e instanceof Error?l.error={name:e.name,message:e.message,stack:e.stack}:l.error=e}).always(function(){n(o)||(o=t(self.webkitPostMessage,self.postMessage)),s.canTransferArrayBuffer||(c.length=0);try{o(l,c)}catch(e){l.result=void 0,l.error="postMessage failed with error: "+r(e)+"\n with responseMessage: "+JSON.stringify(l),o(l)}})}}return a}),define("Workers/upsampleQuantizedTerrainMesh",["../Core/AttributeCompression","../Core/BoundingSphere","../Core/Cartesian2","../Core/Cartesian3","../Core/Cartographic","../Core/defined","../Core/Ellipsoid","../Core/EllipsoidalOccluder","../Core/IndexDatatype","../Core/Intersections2D","../Core/Math","../Core/OrientedBoundingBox","../Core/TerrainEncoding","./createTaskProcessorWorker"],function(e,t,n,r,i,a,o,u,s,c,l,f,h,d){"use strict";function p(e,n){var i=e.isEastChild,a=e.isNorthChild,d=i?T:0,p=i?_:T,E=a?T:0,F=a?_:T,L=N,B=I,b=O,z=M;L.length=0,B.length=0,b.length=0,z.length=0;var q=w;q.length=0;var G={},V=e.vertices,X=e.indices;X=X.subarray(0,e.skirtIndex);var W,H,Y,k,j,Z=h.clone(e.encoding),K=Z.hasVertexNormals,J=e.exaggeration,Q=0,$=e.vertexCountWithoutSkirts,ee=e.minimumHeight,te=e.maximumHeight,ne=new Array($),re=new Array($),ie=new Array($),ae=K?new Array(2*$):void 0;for(H=0,Y=0;H<$;++H,Y+=2){var oe=Z.decodeTextureCoordinates(V,H,U);if(W=Z.decodeHeight(V,H)/J,k=l.clamp(oe.x*_|0,0,_),j=l.clamp(oe.y*_|0,0,_),ie[H]=l.clamp((W-ee)/(te-ee)*_|0,0,_),k<20&&(k=0),j<20&&(j=0),_-k<20&&(k=_),_-j<20&&(j=_),ne[H]=k,re[H]=j,K){var ue=Z.getOctEncodedNormal(V,H,D);ae[Y]=ue.x,ae[Y+1]=ue.y}(i&&k>=T||!i&&k<=T)&&(a&&j>=T||!a&&j<=T)&&(G[H]=Q,L.push(k),B.push(j),b.push(ie[H]),K&&(z.push(ae[Y]),z.push(ae[Y+1])),++Q)}var se=[];se.push(new m),se.push(new m),se.push(new m);var ce=[];ce.push(new m),ce.push(new m),ce.push(new m);var le,fe;for(H=0;H<X.length;H+=3){var he=X[H],de=X[H+1],pe=X[H+2],me=ne[he],Ee=ne[de],ye=ne[pe];se[0].initializeIndexed(ne,re,ie,ae,he),se[1].initializeIndexed(ne,re,ie,ae,de),se[2].initializeIndexed(ne,re,ie,ae,pe);var _e=c.clipTriangleAtAxisAlignedThreshold(T,i,me,Ee,ye,R);le=0,le>=_e.length||((le=ce[0].initializeFromClipResult(_e,le,se))>=_e.length||(le=ce[1].initializeFromClipResult(_e,le,se))>=_e.length||(le=ce[2].initializeFromClipResult(_e,le,se),fe=c.clipTriangleAtAxisAlignedThreshold(T,a,ce[0].getV(),ce[1].getV(),ce[2].getV(),A),y(L,B,b,z,q,G,fe,ce,K),le<_e.length&&(ce[2].clone(ce[1]),ce[2].initializeFromClipResult(_e,le,se),fe=c.clipTriangleAtAxisAlignedThreshold(T,a,ce[0].getV(),ce[1].getV(),ce[2].getV(),A),y(L,B,b,z,q,G,fe,ce,K))))}var Te=i?-_:0,Re=a?-_:0,Ae=[],Se=[],ve=[],ge=[],Ne=Number.MAX_VALUE,Ie=-Ne,Oe=S;Oe.length=0;var we=o.clone(e.ellipsoid),Me=e.childRectangle,Ce=Me.north,xe=Me.south,Pe=Me.east,Ue=Me.west;for(Pe<Ue&&(Pe+=l.TWO_PI),H=0;H<L.length;++H)k=Math.round(L[H]),k<=d?(Ae.push(H),k=0):k>=p?(ve.push(H),k=_):k=2*k+Te,L[H]=k,j=Math.round(B[H]),j<=E?(Se.push(H),j=0):j>=F?(ge.push(H),j=_):j=2*j+Re,B[H]=j,W=l.lerp(ee,te,b[H]/_),W<Ne&&(Ne=W),W>Ie&&(Ie=W),b[H]=W,v.longitude=l.lerp(Ue,Pe,k/_),v.latitude=l.lerp(xe,Ce,j/_),v.height=W,we.cartographicToCartesian(v,g),Oe.push(g.x),Oe.push(g.y),Oe.push(g.z);var De=t.fromVertices(Oe,r.ZERO,3,x),Fe=f.fromRectangle(Me,Ne,Ie,we,P),Le=new u(we),Be=Le.computeHorizonCullingPointFromVertices(De.center,Oe,3,De.center,C),be=Ie-Ne,ze=new Uint16Array(L.length+B.length+b.length);for(H=0;H<L.length;++H)ze[H]=L[H];var qe=L.length;for(H=0;H<B.length;++H)ze[qe+H]=B[H];for(qe+=B.length,H=0;H<b.length;++H)ze[qe+H]=_*(b[H]-Ne)/be;var Ge,Ve=s.createTypedArray(L.length,q);if(K){ -var Xe=new Uint8Array(z);n.push(ze.buffer,Ve.buffer,Xe.buffer),Ge=Xe.buffer}else n.push(ze.buffer,Ve.buffer);return{vertices:ze.buffer,encodedNormals:Ge,indices:Ve.buffer,minimumHeight:Ne,maximumHeight:Ie,westIndices:Ae,southIndices:Se,eastIndices:ve,northIndices:ge,boundingSphere:De,orientedBoundingBox:Fe,horizonOcclusionPoint:Be}}function m(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}function E(t,n){++L;var i=B[L],a=b[L];return i=e.octDecode(t.first.getNormalX(),t.first.getNormalY(),i),a=e.octDecode(t.second.getNormalX(),t.second.getNormalY(),a),g=r.lerp(i,a,t.ratio,g),r.normalize(g,g),e.octEncode(g,n),--L,n}function y(e,t,n,r,i,o,u,s,c){if(0!==u.length){for(var l=0,f=0;f<u.length;)f=z[l++].initializeFromClipResult(u,f,s);for(var h=0;h<l;++h){var d=z[h];if(d.isIndexed())d.newIndex=o[d.index],d.uBuffer=e,d.vBuffer=t,d.heightBuffer=n,c&&(d.normalBuffer=r);else{var p=d.getKey();if(a(o[p]))d.newIndex=o[p];else{var m=e.length;e.push(d.getU()),t.push(d.getV()),n.push(d.getH()),c&&(r.push(d.getNormalX()),r.push(d.getNormalY())),d.newIndex=m,o[p]=m}}}3===l?(i.push(z[0].newIndex),i.push(z[1].newIndex),i.push(z[2].newIndex)):4===l&&(i.push(z[0].newIndex),i.push(z[1].newIndex),i.push(z[2].newIndex),i.push(z[0].newIndex),i.push(z[2].newIndex),i.push(z[3].newIndex))}}var _=32767,T=_/2|0,R=[],A=[],S=[],v=new i,g=new r,N=[],I=[],O=[],w=[],M=[],C=new r,x=new t,P=new f,U=new n,D=new r;m.prototype.clone=function(e){return a(e)||(e=new m),e.uBuffer=this.uBuffer,e.vBuffer=this.vBuffer,e.heightBuffer=this.heightBuffer,e.normalBuffer=this.normalBuffer,e.index=this.index,e.first=this.first,e.second=this.second,e.ratio=this.ratio,e},m.prototype.initializeIndexed=function(e,t,n,r,i){this.uBuffer=e,this.vBuffer=t,this.heightBuffer=n,this.normalBuffer=r,this.index=i,this.first=void 0,this.second=void 0,this.ratio=void 0},m.prototype.initializeFromClipResult=function(e,t,n){var r=t+1;return-1!==e[t]?n[e[t]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=n[e[r]],++r,this.second=n[e[r]],++r,this.ratio=e[r],++r),r},m.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})},m.prototype.isIndexed=function(){return a(this.index)},m.prototype.getH=function(){return a(this.index)?this.heightBuffer[this.index]:l.lerp(this.first.getH(),this.second.getH(),this.ratio)},m.prototype.getU=function(){return a(this.index)?this.uBuffer[this.index]:l.lerp(this.first.getU(),this.second.getU(),this.ratio)},m.prototype.getV=function(){return a(this.index)?this.vBuffer[this.index]:l.lerp(this.first.getV(),this.second.getV(),this.ratio)};var F=new n,L=-1,B=[new r,new r],b=[new r,new r];m.prototype.getNormalX=function(){return a(this.index)?this.normalBuffer[2*this.index]:(F=E(this,F),F.x)},m.prototype.getNormalY=function(){return a(this.index)?this.normalBuffer[2*this.index+1]:(F=E(this,F),F.y)};var z=[];return z.push(new m),z.push(new m),z.push(new m),z.push(new m),d(p)})}(); \ No newline at end of file +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +import{a as be,b as Ne}from"./chunk-56S3WY3H.js";import{a as Ae}from"./chunk-3R25OJXK.js";import{a as ue}from"./chunk-7MCGOXW3.js";import{a as ee}from"./chunk-H3L4SJP4.js";import"./chunk-BSHGEEYG.js";import"./chunk-CHGCLMPO.js";import"./chunk-UKQRKTK2.js";import"./chunk-LNO7O274.js";import{a as Ve}from"./chunk-T53UE6JF.js";import{d as de}from"./chunk-T5AUOWE7.js";import{i as Se}from"./chunk-Y5B6Y3WD.js";import"./chunk-6QVIJ7JA.js";import{a as A,b as Ie,c as Z,d as Ce}from"./chunk-AODSXSC5.js";import{a as N}from"./chunk-IISQCXJ5.js";import"./chunk-MOE32UQS.js";import"./chunk-IIPSFM7Z.js";import"./chunk-WHQYJFDH.js";import{a as V,b as q}from"./chunk-OYWUGDKS.js";import{e as f}from"./chunk-DRYFJEFT.js";var ne={};ne.clipTriangleAtAxisAlignedThreshold=function(n,h,o,i,s,e){if(!f(n))throw new V("threshold is required.");if(!f(h))throw new V("keepAbove is required.");if(!f(o))throw new V("u0 is required.");if(!f(i))throw new V("u1 is required.");if(!f(s))throw new V("u2 is required.");f(e)?e.length=0:e=[];let g,w,c;h?(g=o<n,w=i<n,c=s<n):(g=o>n,w=i>n,c=s>n);let p=g+w+c,d,u,r,l,I,C;return p===1?g?(d=(n-o)/(i-o),u=(n-o)/(s-o),e.push(1),e.push(2),u!==1&&(e.push(-1),e.push(0),e.push(2),e.push(u)),d!==1&&(e.push(-1),e.push(0),e.push(1),e.push(d))):w?(r=(n-i)/(s-i),l=(n-i)/(o-i),e.push(2),e.push(0),l!==1&&(e.push(-1),e.push(1),e.push(0),e.push(l)),r!==1&&(e.push(-1),e.push(1),e.push(2),e.push(r))):c&&(I=(n-s)/(o-s),C=(n-s)/(i-s),e.push(0),e.push(1),C!==1&&(e.push(-1),e.push(2),e.push(1),e.push(C)),I!==1&&(e.push(-1),e.push(2),e.push(0),e.push(I))):p===2?!g&&o!==n?(l=(n-i)/(o-i),I=(n-s)/(o-s),e.push(0),e.push(-1),e.push(1),e.push(0),e.push(l),e.push(-1),e.push(2),e.push(0),e.push(I)):!w&&i!==n?(C=(n-s)/(i-s),d=(n-o)/(i-o),e.push(1),e.push(-1),e.push(2),e.push(1),e.push(C),e.push(-1),e.push(0),e.push(1),e.push(d)):!c&&s!==n&&(u=(n-o)/(s-o),r=(n-i)/(s-i),e.push(2),e.push(-1),e.push(0),e.push(2),e.push(u),e.push(-1),e.push(1),e.push(2),e.push(r)):p!==3&&(e.push(0),e.push(1),e.push(2)),e};ne.computeBarycentricCoordinates=function(n,h,o,i,s,e,g,w,c){if(!f(n))throw new V("x is required.");if(!f(h))throw new V("y is required.");if(!f(o))throw new V("x1 is required.");if(!f(i))throw new V("y1 is required.");if(!f(s))throw new V("x2 is required.");if(!f(e))throw new V("y2 is required.");if(!f(g))throw new V("x3 is required.");if(!f(w))throw new V("y3 is required.");let p=o-g,d=g-s,u=e-w,r=i-w,l=1/(u*p+d*r),I=h-w,C=n-g,R=(u*C+d*I)*l,O=(-r*C+p*I)*l,W=1-R-O;return f(c)?(c.x=R,c.y=O,c.z=W,c):new A(R,O,W)};ne.computeLineSegmentLineSegmentIntersection=function(n,h,o,i,s,e,g,w,c){q.typeOf.number("x00",n),q.typeOf.number("y00",h),q.typeOf.number("x01",o),q.typeOf.number("y01",i),q.typeOf.number("x10",s),q.typeOf.number("y10",e),q.typeOf.number("x11",g),q.typeOf.number("y11",w);let p=(g-s)*(h-e)-(w-e)*(n-s),d=(o-n)*(h-e)-(i-h)*(n-s),u=(w-e)*(o-n)-(g-s)*(i-h);if(u===0)return;let r=p/u,l=d/u;if(r>=0&&r<=1&&l>=0&&l<=1)return f(c)||(c=new Z),c.x=n+r*(o-n),c.y=h+r*(i-h),c};var ie=ne;var a=32767,z=a/2|0,Me=[],ze=[],Xe=[],te=new Ie,E=new A,Ke=[],We=[],Ye=[],Le=[],_e=[],Je=new A,Qe=new de,Ze=new ue,Ge=new Z,$e=new A;function je(n,h){let o=n.isEastChild,i=n.isNorthChild,s=o?z:0,e=o?a:z,g=i?z:0,w=i?a:z,c=Ke,p=We,d=Ye,u=_e;c.length=0,p.length=0,d.length=0,u.length=0;let r=Le;r.length=0;let l={},I=n.vertices,C=n.indices;C=C.subarray(0,n.indexCountWithoutSkirts);let R=Ne.clone(n.encoding),O=R.hasVertexNormals,W=0,Y=n.vertexCountWithoutSkirts,se=n.minimumHeight,ae=n.maximumHeight,D=new Array(Y),G=new Array(Y),L=new Array(Y),F=O?new Array(Y*2):void 0,$=20,H,t,k,x,y;for(t=0,k=0;t<Y;++t,k+=2){let v=R.decodeTextureCoordinates(I,t,Ge);if(H=R.decodeHeight(I,t),x=N.clamp(v.x*a|0,0,a),y=N.clamp(v.y*a|0,0,a),L[t]=N.clamp((H-se)/(ae-se)*a|0,0,a),x<$&&(x=0),y<$&&(y=0),a-x<$&&(x=a),a-y<$&&(y=a),D[t]=x,G[t]=y,O){let Q=R.getOctEncodedNormal(I,t,$e);F[k]=Q.x,F[k+1]=Q.y}(o&&x>=z||!o&&x<=z)&&(i&&y>=z||!i&&y<=z)&&(l[t]=W,c.push(x),p.push(y),d.push(L[t]),O&&(u.push(F[k]),u.push(F[k+1])),++W)}let T=[];T.push(new m),T.push(new m),T.push(new m);let B=[];B.push(new m),B.push(new m),B.push(new m);let b,j;for(t=0;t<C.length;t+=3){let v=C[t],Q=C[t+1],Be=C[t+2],De=D[v],Fe=D[Q],ke=D[Be];T[0].initializeIndexed(D,G,L,F,v),T[1].initializeIndexed(D,G,L,F,Q),T[2].initializeIndexed(D,G,L,F,Be);let P=ie.clipTriangleAtAxisAlignedThreshold(z,o,De,Fe,ke,Me);b=0,!(b>=P.length)&&(b=B[0].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[1].initializeFromClipResult(P,b,T),!(b>=P.length)&&(b=B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O),b<P.length&&(B[2].clone(B[1]),B[2].initializeFromClipResult(P,b,T),j=ie.clipTriangleAtAxisAlignedThreshold(z,i,B[0].getV(),B[1].getV(),B[2].getV(),ze),Oe(c,p,d,u,r,l,j,B,O)))))}let He=o?-a:0,qe=i?-a:0,me=[],ge=[],le=[],we=[],U=Number.MAX_VALUE,_=-U,M=Xe;M.length=0;let re=Ce.clone(n.ellipsoid),J=Se.clone(n.childRectangle),Ee=J.north,Re=J.south,ce=J.east,xe=J.west;for(ce<xe&&(ce+=N.TWO_PI),t=0;t<c.length;++t)x=Math.round(c[t]),x<=s?(me.push(t),x=0):x>=e?(le.push(t),x=a):x=x*2+He,c[t]=x,y=Math.round(p[t]),y<=g?(ge.push(t),y=0):y>=w?(we.push(t),y=a):y=y*2+qe,p[t]=y,H=N.lerp(se,ae,d[t]/a),H<U&&(U=H),H>_&&(_=H),d[t]=H,te.longitude=N.lerp(xe,ce,x/a),te.latitude=N.lerp(Re,Ee,y/a),te.height=H,re.cartographicToCartesian(te,E),M.push(E.x),M.push(E.y),M.push(E.z);let he=de.fromVertices(M,A.ZERO,3,Qe),Ue=ue.fromRectangle(J,U,_,re,Ze),ve=new be(re).computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid(he.center,M,3,he.center,U,Je),Pe=_-U,X=new Uint16Array(c.length+p.length+d.length);for(t=0;t<c.length;++t)X[t]=c[t];let fe=c.length;for(t=0;t<p.length;++t)X[fe+t]=p[t];for(fe+=p.length,t=0;t<d.length;++t)X[fe+t]=a*(d[t]-U)/Pe;let pe=Ve.createTypedArray(c.length,r),ye;if(O){let v=new Uint8Array(u);h.push(X.buffer,pe.buffer,v.buffer),ye=v.buffer}else h.push(X.buffer,pe.buffer);return{vertices:X.buffer,encodedNormals:ye,indices:pe.buffer,minimumHeight:U,maximumHeight:_,westIndices:me,southIndices:ge,eastIndices:le,northIndices:we,boundingSphere:he,orientedBoundingBox:Ue,horizonOcclusionPoint:ve}}function m(){this.vertexBuffer=void 0,this.index=void 0,this.first=void 0,this.second=void 0,this.ratio=void 0}m.prototype.clone=function(n){return f(n)||(n=new m),n.uBuffer=this.uBuffer,n.vBuffer=this.vBuffer,n.heightBuffer=this.heightBuffer,n.normalBuffer=this.normalBuffer,n.index=this.index,n.first=this.first,n.second=this.second,n.ratio=this.ratio,n};m.prototype.initializeIndexed=function(n,h,o,i,s){this.uBuffer=n,this.vBuffer=h,this.heightBuffer=o,this.normalBuffer=i,this.index=s,this.first=void 0,this.second=void 0,this.ratio=void 0};m.prototype.initializeFromClipResult=function(n,h,o){let i=h+1;return n[h]!==-1?o[n[h]].clone(this):(this.vertexBuffer=void 0,this.index=void 0,this.first=o[n[i]],++i,this.second=o[n[i]],++i,this.ratio=n[i],++i),i};m.prototype.getKey=function(){return this.isIndexed()?this.index:JSON.stringify({first:this.first.getKey(),second:this.second.getKey(),ratio:this.ratio})};m.prototype.isIndexed=function(){return f(this.index)};m.prototype.getH=function(){return f(this.index)?this.heightBuffer[this.index]:N.lerp(this.first.getH(),this.second.getH(),this.ratio)};m.prototype.getU=function(){return f(this.index)?this.uBuffer[this.index]:N.lerp(this.first.getU(),this.second.getU(),this.ratio)};m.prototype.getV=function(){return f(this.index)?this.vBuffer[this.index]:N.lerp(this.first.getV(),this.second.getV(),this.ratio)};var K=new Z,oe=-1,en=[new A,new A],nn=[new A,new A];function Te(n,h){++oe;let o=en[oe],i=nn[oe];return o=ee.octDecode(n.first.getNormalX(),n.first.getNormalY(),o),i=ee.octDecode(n.second.getNormalX(),n.second.getNormalY(),i),E=A.lerp(o,i,n.ratio,E),A.normalize(E,E),ee.octEncode(E,h),--oe,h}m.prototype.getNormalX=function(){return f(this.index)?this.normalBuffer[this.index*2]:(K=Te(this,K),K.x)};m.prototype.getNormalY=function(){return f(this.index)?this.normalBuffer[this.index*2+1]:(K=Te(this,K),K.y)};var S=[];S.push(new m);S.push(new m);S.push(new m);S.push(new m);function Oe(n,h,o,i,s,e,g,w,c){if(g.length===0)return;let p=0,d=0;for(;d<g.length;)d=S[p++].initializeFromClipResult(g,d,w);for(let u=0;u<p;++u){let r=S[u];if(r.isIndexed())r.newIndex=e[r.index],r.uBuffer=n,r.vBuffer=h,r.heightBuffer=o,c&&(r.normalBuffer=i);else{let l=r.getKey();if(f(e[l]))r.newIndex=e[l];else{let I=n.length;n.push(r.getU()),h.push(r.getV()),o.push(r.getH()),c&&(i.push(r.getNormalX()),i.push(r.getNormalY())),r.newIndex=I,e[l]=I}}}p===3?(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex)):p===4&&(s.push(S[0].newIndex),s.push(S[1].newIndex),s.push(S[2].newIndex),s.push(S[0].newIndex),s.push(S[2].newIndex),s.push(S[3].newIndex))}var An=Ae(je);export{An as default}; diff --git a/app/plot_app/static/cesium/Build/Cesium/index.cjs b/app/plot_app/static/cesium/Build/Cesium/index.cjs new file mode 100644 index 000000000..1bfc899a9 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/index.cjs @@ -0,0 +1,16027 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var wEe=Object.create;var eV=Object.defineProperty;var DEe=Object.getOwnPropertyDescriptor;var IEe=Object.getOwnPropertyNames;var PEe=Object.getPrototypeOf,REe=Object.prototype.hasOwnProperty;var OEe=(e,t)=>()=>(e&&(t=e(e=0)),t);var qn=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports),BQ=(e,t)=>{for(var n in t)eV(e,n,{get:t[n],enumerable:!0})},kQ=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of IEe(t))!REe.call(e,o)&&o!==n&&eV(e,o,{get:()=>t[o],enumerable:!(i=DEe(t,o))||i.enumerable});return e};var Vo=(e,t,n)=>(n=e!=null?wEe(PEe(e)):{},kQ(t||!e||!e.__esModule?eV(n,"default",{value:e,enumerable:!0}):n,e)),Xh=e=>kQ(eV({},"__esModule",{value:!0}),e);var tV=qn((Xvt,UQ)=>{var pp=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};pp.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};pp.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};pp.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};pp.prototype.random_int31=function(){return this.random_int()>>>1};pp.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};pp.prototype.random=function(){return this.random_int()*(1/4294967296)};pp.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};pp.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};UQ.exports=pp});var fJ=qn((BC,kC)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof BC=="object"&&BC&&!BC.nodeType&&BC,n=typeof kC=="object"&&kC&&!kC.nodeType&&kC,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,u=38,f=700,d=72,p=128,g="-",m=/^xn--/,x=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},C=s-a,A=Math.floor,E=String.fromCharCode,v;function D(V){throw new RangeError(T[V])}function O(V,G){for(var k=V.length,W=[];k--;)W[k]=G(V[k]);return W}function R(V,G){var k=V.split("@"),W="";k.length>1&&(W=k[0]+"@",V=k[1]),V=V.replace(b,".");var q=V.split("."),J=O(q,G).join(".");return W+J}function M(V){for(var G=[],k=0,W=V.length,q,J;k<W;)q=V.charCodeAt(k++),q>=55296&&q<=56319&&k<W?(J=V.charCodeAt(k++),(J&64512)==56320?G.push(((q&1023)<<10)+(J&1023)+65536):(G.push(q),k--)):G.push(q);return G}function N(V){return O(V,function(G){var k="";return G>65535&&(G-=65536,k+=E(G>>>10&1023|55296),G=56320|G&1023),k+=E(G),k}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function S(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,k){var W=0;for(V=k?A(V/f):V>>1,V+=A(V/G);V>C*c>>1;W+=s)V=A(V/C);return A(W+(C+1)*V/(V+u))}function I(V){var G=[],k=V.length,W,q=0,J=p,j=d,K,Q,de,ye,ae,_e,xe,De,Ae;for(K=V.lastIndexOf(g),K<0&&(K=0),Q=0;Q<K;++Q)V.charCodeAt(Q)>=128&&D("not-basic"),G.push(V.charCodeAt(Q));for(de=K>0?K+1:0;de<k;){for(ye=q,ae=1,_e=s;de>=k&&D("invalid-input"),xe=_(V.charCodeAt(de++)),(xe>=s||xe>A((r-q)/ae))&&D("overflow"),q+=xe*ae,De=_e<=j?a:_e>=j+c?c:_e-j,!(xe<De);_e+=s)Ae=s-De,ae>A(r/Ae)&&D("overflow"),ae*=Ae;W=G.length+1,j=w(q-ye,W,ye==0),A(q/W)>r-J&&D("overflow"),J+=A(q/W),q%=W,G.splice(q++,0,J)}return N(G)}function L(V){var G,k,W,q,J,j,K,Q,de,ye,ae,_e=[],xe,De,Ae,ke;for(V=M(V),xe=V.length,G=p,k=0,J=d,j=0;j<xe;++j)ae=V[j],ae<128&&_e.push(E(ae));for(W=q=_e.length,q&&_e.push(g);W<xe;){for(K=r,j=0;j<xe;++j)ae=V[j],ae>=G&&ae<K&&(K=ae);for(De=W+1,K-G>A((r-k)/De)&&D("overflow"),k+=(K-G)*De,G=K,j=0;j<xe;++j)if(ae=V[j],ae<G&&++k>r&&D("overflow"),ae==G){for(Q=k,de=s;ye=de<=J?a:de>=J+c?c:de-J,!(Q<ye);de+=s)ke=Q-ye,Ae=s-ye,_e.push(E(S(ye+ke%Ae,0))),Q=A(ke/Ae);_e.push(E(S(Q,0))),J=w(k,De,W==q),k=0,++W}++k,++G}return _e.join("")}function B(V){return R(V,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function U(V){return R(V,function(G){return x.test(G)?"xn--"+L(G):G})}if(o={version:"1.3.2",ucs2:{decode:M,encode:N},decode:I,encode:L,toASCII:U,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(kC.exports==t)n.exports=o;else for(v in o)o.hasOwnProperty(v)&&(t[v]=o[v]);else e.punycode=o})(BC)});var hJ=qn((dJ,TV)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof TV=="object"&&TV.exports?TV.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(dJ,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var u;for(u=0;u<a&&s[u]!=="";u++);if(u<c)for(s.splice(u,1,"0000");s.length<c;)s.splice(u,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,m=0,x=0,b=-1,T=!1;for(d=0;d<c;d++)T?s[d]==="0"?x+=1:(T=!1,x>m&&(g=b,m=x)):s[d]==="0"&&(T=!0,b=d,x=1);x>m&&(g=b,m=x),m>1&&s.splice(g,m,""),a=s.length;var C="";for(s[0]===""&&(C=":"),d=0;d<a&&(C+=s[d],d!==a-1);d++)C+=":";return s[a-1]===""&&(C+=":"),C}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var pJ=qn((mJ,CV)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof CV=="object"&&CV.exports?CV.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(mJ,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var au=qn((_J,AV)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof AV=="object"&&AV.exports?AV.exports=t(fJ(),hJ(),pJ()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(_J,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(S,w){var I=arguments.length>=1,L=arguments.length>=2;if(!(this instanceof r))return I?L?new r(S,w):new r(S):new r;if(S===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?S=location.href+"":S=""}if(S===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(S),w!==void 0?this.absoluteTo(w):this}function s(S){return/^[0-9]+$/.test(S)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(S){return S.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(S){return S===void 0?"Undefined":String(Object.prototype.toString.call(S)).slice(8,-1)}function d(S){return f(S)==="Array"}function p(S,w){var I={},L,B;if(f(w)==="RegExp")I=null;else if(d(w))for(L=0,B=w.length;L<B;L++)I[w[L]]=!0;else I[w]=!0;for(L=0,B=S.length;L<B;L++){var U=I&&I[S[L]]!==void 0||!I&&w.test(S[L]);U&&(S.splice(L,1),B--,L--)}return S}function g(S,w){var I,L;if(d(w)){for(I=0,L=w.length;I<L;I++)if(!g(S,w[I]))return!1;return!0}var B=f(w);for(I=0,L=S.length;I<L;I++)if(B==="RegExp"){if(typeof S[I]=="string"&&S[I].match(w))return!0}else if(S[I]===w)return!0;return!1}function m(S,w){if(!d(S)||!d(w)||S.length!==w.length)return!1;S.sort(),w.sort();for(var I=0,L=S.length;I<L;I++)if(S[I]!==w[I])return!1;return!0}function x(S){var w=/^\/+|\/+$/g;return S.replace(w,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(S){if(!(!S||!S.nodeName)){var w=S.nodeName.toLowerCase();if(!(w==="input"&&S.type!=="image"))return r.domAttributes[w]}};function b(S){return escape(S)}function T(S){return encodeURIComponent(S).replace(/[!'()*]/g,b).replace(/\*/g,"%2A")}r.encode=T,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=T,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(S,w){var I=r.encode(S+"");return w===void 0&&(w=r.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},r.decodeQuery=function(S,w){S+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?S.replace(/\+/g,"%20"):S)}catch{return S}};var C={encode:"encode",decode:"decode"},A,E=function(S,w){return function(I){try{return r[w](I+"").replace(r.characters[S][w].expression,function(L){return r.characters[S][w].map[L]})}catch{return I}}};for(A in C)r[A+"PathSegment"]=E("pathname",C[A]),r[A+"UrnPathSegment"]=E("urnpath",C[A]);var v=function(S,w,I){return function(L){var B;I?B=function(k){return r[w](r[I](k))}:B=r[w];for(var U=(L+"").split(S),V=0,G=U.length;V<G;V++)U[V]=B(U[V]);return U.join(S)}};r.decodePath=v("/","decodePathSegment"),r.decodeUrnPath=v(":","decodeUrnPathSegment"),r.recodePath=v("/","encodePathSegment","decode"),r.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),r.encodeReserved=E("reserved","encode"),r.parse=function(S,w){var I;return w||(w={preventInvalidHostname:r.preventInvalidHostname}),S=S.replace(r.leading_whitespace_expression,""),S=S.replace(r.ascii_tab_whitespace,""),I=S.indexOf("#"),I>-1&&(w.fragment=S.substring(I+1)||null,S=S.substring(0,I)),I=S.indexOf("?"),I>-1&&(w.query=S.substring(I+1)||null,S=S.substring(0,I)),S=S.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),S=S.replace(/^[/\\]{2,}/i,"//"),S.substring(0,2)==="//"?(w.protocol=null,S=S.substring(2),S=r.parseAuthority(S,w)):(I=S.indexOf(":"),I>-1&&(w.protocol=S.substring(0,I)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:S.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(S=S.substring(I+3),S=r.parseAuthority(S,w)):(S=S.substring(I+1),w.urn=!0))),w.path=S,w},r.parseHost=function(S,w){S||(S=""),S=S.replace(/\\/g,"/");var I=S.indexOf("/"),L,B;if(I===-1&&(I=S.length),S.charAt(0)==="[")L=S.indexOf("]"),w.hostname=S.substring(1,L)||null,w.port=S.substring(L+2,I)||null,w.port==="/"&&(w.port=null);else{var U=S.indexOf(":"),V=S.indexOf("/"),G=S.indexOf(":",U+1);G!==-1&&(V===-1||G<V)?(w.hostname=S.substring(0,I)||null,w.port=null):(B=S.substring(0,I).split(":"),w.hostname=B[0]||null,w.port=B[1]||null)}return w.hostname&&S.substring(I).charAt(0)!=="/"&&(I++,S="/"+S),w.preventInvalidHostname&&r.ensureValidHostname(w.hostname,w.protocol),w.port&&r.ensureValidPort(w.port),S.substring(I)||"/"},r.parseAuthority=function(S,w){return S=r.parseUserinfo(S,w),r.parseHost(S,w)},r.parseUserinfo=function(S,w){var I=S,L=S.indexOf("\\");L!==-1&&(S=S.replace(/\\/g,"/"));var B=S.indexOf("/"),U=S.lastIndexOf("@",B>-1?B:S.length-1),V;return U>-1&&(B===-1||U<B)?(V=S.substring(0,U).split(":"),w.username=V[0]?r.decode(V[0]):null,V.shift(),w.password=V[0]?r.decode(V.join(":")):null,S=I.substring(U+1)):(w.username=null,w.password=null),S},r.parseQuery=function(S,w){if(!S)return{};if(S=S.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!S)return{};for(var I={},L=S.split("&"),B=L.length,U,V,G,k=0;k<B;k++)U=L[k].split("="),V=r.decodeQuery(U.shift(),w),G=U.length?r.decodeQuery(U.join("="),w):null,V!=="__proto__"&&(c.call(I,V)?((typeof I[V]=="string"||I[V]===null)&&(I[V]=[I[V]]),I[V].push(G)):I[V]=G);return I},r.build=function(S){var w="",I=!1;return S.protocol&&(w+=S.protocol+":"),!S.urn&&(w||S.hostname)&&(w+="//",I=!0),w+=r.buildAuthority(S)||"",typeof S.path=="string"&&(S.path.charAt(0)!=="/"&&I&&(w+="/"),w+=S.path),typeof S.query=="string"&&S.query&&(w+="?"+S.query),typeof S.fragment=="string"&&S.fragment&&(w+="#"+S.fragment),w},r.buildHost=function(S){var w="";if(S.hostname)r.ip6_expression.test(S.hostname)?w+="["+S.hostname+"]":w+=S.hostname;else return"";return S.port&&(w+=":"+S.port),w},r.buildAuthority=function(S){return r.buildUserinfo(S)+r.buildHost(S)},r.buildUserinfo=function(S){var w="";return S.username&&(w+=r.encode(S.username)),S.password&&(w+=":"+r.encode(S.password)),w&&(w+="@"),w},r.buildQuery=function(S,w,I){var L="",B,U,V,G;for(U in S)if(U!=="__proto__"&&c.call(S,U))if(d(S[U]))for(B={},V=0,G=S[U].length;V<G;V++)S[U][V]!==void 0&&B[S[U][V]+""]===void 0&&(L+="&"+r.buildQueryParameter(U,S[U][V],I),w!==!0&&(B[S[U][V]+""]=!0));else S[U]!==void 0&&(L+="&"+r.buildQueryParameter(U,S[U],I));return L.substring(1)},r.buildQueryParameter=function(S,w,I){return r.encodeQuery(S,I)+(w!==null?"="+r.encodeQuery(w,I):"")},r.addQuery=function(S,w,I){if(typeof w=="object")for(var L in w)c.call(w,L)&&r.addQuery(S,L,w[L]);else if(typeof w=="string"){if(S[w]===void 0){S[w]=I;return}else typeof S[w]=="string"&&(S[w]=[S[w]]);d(I)||(I=[I]),S[w]=(S[w]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(S,w,I){if(typeof w=="object")for(var L in w)c.call(w,L)&&r.setQuery(S,L,w[L]);else if(typeof w=="string")S[w]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(S,w,I){var L,B,U;if(d(w))for(L=0,B=w.length;L<B;L++)S[w[L]]=void 0;else if(f(w)==="RegExp")for(U in S)w.test(U)&&(S[U]=void 0);else if(typeof w=="object")for(U in w)c.call(w,U)&&r.removeQuery(S,U,w[U]);else if(typeof w=="string")I!==void 0?f(I)==="RegExp"?!d(S[w])&&I.test(S[w])?S[w]=void 0:S[w]=p(S[w],I):S[w]===String(I)&&(!d(I)||I.length===1)?S[w]=void 0:d(S[w])&&(S[w]=p(S[w],I)):S[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(S,w,I,L){switch(f(w)){case"String":break;case"RegExp":for(var B in S)if(c.call(S,B)&&w.test(B)&&(I===void 0||r.hasQuery(S,B,I)))return!0;return!1;case"Object":for(var U in w)if(c.call(w,U)&&!r.hasQuery(S,U,w[U]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return w in S;case"Boolean":var V=!!(d(S[w])?S[w].length:S[w]);return I===V;case"Function":return!!I(S[w],w,S);case"Array":if(!d(S[w]))return!1;var G=L?g:m;return G(S[w],I);case"RegExp":return d(S[w])?L?g(S[w],I):!1:!!(S[w]&&S[w].match(I));case"Number":I=String(I);case"String":return d(S[w])?L?g(S[w],I):!1:S[w]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var S=[],w=[],I=0,L=0;L<arguments.length;L++){var B=new r(arguments[L]);S.push(B);for(var U=B.segment(),V=0;V<U.length;V++)typeof U[V]=="string"&&w.push(U[V]),U[V]&&I++}if(!w.length||!I)return new r("");var G=new r("").segment(w);return(S[0].path()===""||S[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(S,w){var I=Math.min(S.length,w.length),L;for(L=0;L<I;L++)if(S.charAt(L)!==w.charAt(L)){L--;break}return L<1?S.charAt(0)===w.charAt(0)&&S.charAt(0)==="/"?"/":"":((S.charAt(L)!=="/"||w.charAt(L)!=="/")&&(L=S.substring(0,L).lastIndexOf("/")),S.substring(0,L+1))},r.withinString=function(S,w,I){I||(I={});var L=I.start||r.findUri.start,B=I.end||r.findUri.end,U=I.trim||r.findUri.trim,V=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(L.lastIndex=0;;){var k=L.exec(S);if(!k)break;var W=k.index;if(I.ignoreHtml){var q=S.slice(Math.max(W-3,0),W);if(q&&G.test(q))continue}for(var J=W+S.slice(W).search(B),j=S.slice(W,J),K=-1;;){var Q=V.exec(j);if(!Q)break;var de=Q.index+Q[0].length;K=Math.max(K,de)}if(K>-1?j=j.slice(0,K)+j.slice(K).replace(U,""):j=j.replace(U,""),!(j.length<=k[0].length)&&!(I.ignore&&I.ignore.test(j))){J=W+j.length;var ye=w(j,W,J,S);if(ye===void 0){L.lastIndex=J;continue}ye=String(ye),S=S.slice(0,W)+ye+S.slice(J),L.lastIndex=W+ye.length}}return L.lastIndex=0,S},r.ensureValidHostname=function(S,w){var I=!!S,L=!!w,B=!1;if(L&&(B=g(r.hostProtocols,w)),B&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(S&&S.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(S).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(S){if(S){var w=Number(S);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+S+'" is not a valid port')}},r.noConflict=function(S){if(S){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(S){return S===!0?this._deferred_build=!0:(S===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(S){return function(w,I){return w===void 0?this._parts[S]||"":(this._parts[S]=w||null,this.build(!I),this)}}function O(S,w){return function(I,L){return I===void 0?this._parts[S]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[S]=I,this.build(!L),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(S,w){var I=this.query(S,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(S,w){var I=this.fragment(S,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(S,w){if(S===void 0||S===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return S?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=S?r.recodeUrnPath(S):"":this._parts.path=S?r.recodePath(S):"/",this.build(!w),this},a.path=a.pathname,a.href=function(S,w){var I;if(S===void 0)return this.toString();this._string="",this._parts=r._parts();var L=S instanceof r,B=typeof S=="object"&&(S.hostname||S.path||S.pathname);if(S.nodeName){var U=r.getDomAttribute(S);S=S[U]||"",B=!1}if(!L&&B&&S.pathname!==void 0&&(S=S.toString()),typeof S=="string"||S instanceof String)this._parts=r.parse(String(S),this._parts);else if(L||B){var V=L?S._parts:S;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(S){var w=!1,I=!1,L=!1,B=!1,U=!1,V=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,I=r.ip4_expression.test(this._parts.hostname),L=r.ip6_expression.test(this._parts.hostname),w=I||L,B=!w,U=B&&n&&n.has(this._parts.hostname),V=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),S.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return U;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return L;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var R=a.protocol,M=a.port,N=a.hostname;a.protocol=function(S,w){if(S&&(S=S.replace(/:(\/\/)?$/,""),!S.match(r.protocol_expression)))throw new TypeError('Protocol "'+S+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return R.call(this,S,w)},a.scheme=a.protocol,a.port=function(S,w){return this._parts.urn?S===void 0?"":this:(S!==void 0&&(S===0&&(S=null),S&&(S+="",S.charAt(0)===":"&&(S=S.substring(1)),r.ensureValidPort(S))),M.call(this,S,w))},a.hostname=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},L=r.parseHost(S,I);if(L!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');S=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(S,this._parts.protocol)}return N.call(this,S,w)},a.origin=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var I=this.protocol(),L=this.authority();return L?(I?I+"://":"")+this.authority():""}else{var B=r(S);return this.protocol(B.protocol()).authority(B.authority()).build(!w),this}},a.host=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(S,this._parts);if(I!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(S,this._parts);if(I!=="/")throw new TypeError('Hostname "'+S+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return S[S.length-1]!=="@"&&(S+="@"),r.parseUserinfo(S,this._parts),this.build(!w),this},a.resource=function(S,w){var I;return S===void 0?this.path()+this.search()+this.hash():(I=r.parse(S),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var L=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,L),U=new RegExp("^"+u(B));if(S&&S.charAt(S.length-1)!=="."&&(S+="."),S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return S&&r.ensureValidHostname(S,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(U,S),this.build(!w),this}},a.domain=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var L=this._parts.hostname.length-this.tld(w).length-1;return L=this._parts.hostname.lastIndexOf(".",L-1)+1,this._parts.hostname.substring(L)||""}else{if(!S)throw new TypeError("cannot set domain empty");if(S.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(S,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=S;else{var B=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,S)}return this.build(!w),this}},a.tld=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S=="boolean"&&(w=S,S=void 0),S===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),L=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[L.toLowerCase()]&&n.get(this._parts.hostname)||L}else{var B;if(S)if(S.match(/[^a-zA-Z0-9-]/))if(n&&n.is(S))B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S);else throw new TypeError('TLD "'+S+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,S)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,L=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return S?r.decodePath(L):L}else{var B=this._parts.path.length-this.filename().length,U=this._parts.path.substring(0,B),V=new RegExp("^"+u(U));return this.is("relative")||(S||(S="/"),S.charAt(0)!=="/"&&(S="/"+S)),S&&S.charAt(S.length-1)!=="/"&&(S+="/"),S=r.recodePath(S),this._parts.path=this._parts.path.replace(V,S),this.build(!w),this}},a.filename=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(typeof S!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),L=this._parts.path.substring(I+1);return S?r.decodePathSegment(L):L}else{var B=!1;S.charAt(0)==="/"&&(S=S.substring(1)),S.match(/\.?\//)&&(B=!0);var U=new RegExp(u(this.filename())+"$");return S=r.recodePath(S),this._parts.path=this._parts.path.replace(U,S),B?this.normalizePath(w):this.build(!w),this}},a.suffix=function(S,w){if(this._parts.urn)return S===void 0?"":this;if(S===void 0||S===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),L=I.lastIndexOf("."),B,U;return L===-1?"":(B=I.substring(L+1),U=/^[a-z0-9%]+$/i.test(B)?B:"",S?r.decodePathSegment(U):U)}else{S.charAt(0)==="."&&(S=S.substring(1));var V=this.suffix(),G;if(V)S?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!S)return this;this._parts.path+="."+r.recodePath(S)}return G&&(S=r.recodePath(S),this._parts.path=this._parts.path.replace(G,S)),this.build(!w),this}},a.segment=function(S,w,I){var L=this._parts.urn?":":"/",B=this.path(),U=B.substring(0,1)==="/",V=B.split(L);if(S!==void 0&&typeof S!="number"&&(I=w,w=S,S=void 0),S!==void 0&&typeof S!="number")throw new Error('Bad segment "'+S+'", must be 0-based integer');if(U&&V.shift(),S<0&&(S=Math.max(V.length+S,0)),w===void 0)return S===void 0?V:V[S];if(S===null||V[S]===void 0)if(d(w)){V=[];for(var G=0,k=w.length;G<k;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(x(w[G])))}else(w||typeof w=="string")&&(w=x(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[S]=x(w):V.splice(S,1);return U&&V.unshift(""),this.path(V.join(L),I)},a.segmentCoded=function(S,w,I){var L,B,U;if(typeof S!="number"&&(I=w,w=S,S=void 0),w===void 0){if(L=this.segment(S,w,I),!d(L))L=L!==void 0?r.decode(L):void 0;else for(B=0,U=L.length;B<U;B++)L[B]=r.decode(L[B]);return L}if(!d(w))w=typeof w=="string"||w instanceof String?r.encode(w):w;else for(B=0,U=w.length;B<U;B++)w[B]=r.encode(w[B]);return this.segment(S,w,I)};var _=a.query;return a.query=function(S,w){if(S===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),L=S.call(this,I);return this._parts.query=r.buildQuery(L||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return S!==void 0&&typeof S!="string"?(this._parts.query=r.buildQuery(S,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,S,w)},a.setQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof S=="string"||S instanceof String)L[S]=w!==void 0?w:null;else if(typeof S=="object")for(var B in S)c.call(S,B)&&(L[B]=S[B]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.addQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(L,S,w===void 0?null:w),this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.removeQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(L,S,w),this._parts.query=r.buildQuery(L,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof S!="string"&&(I=w),this.build(!I),this},a.hasQuery=function(S,w,I){var L=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(L,S,w,I)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(S){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!S)),this},a.normalizeHostname=function(S){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!S)),this},a.normalizePort=function(S){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!S)),this},a.normalizePath=function(S){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!S),this;if(this._parts.path==="/")return this;w=r.recodePath(w);var I,L="",B,U;for(w.charAt(0)!=="/"&&(I=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(L=w.substring(1).match(/^(\.\.\/)+/)||"",L&&(L=L[0]));B=w.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){w=w.substring(3);continue}U=w.substring(0,B).lastIndexOf("/"),U===-1&&(U=B),w=w.substring(0,U)+w.substring(B+3)}return I&&this.is("relative")&&(w=L+w.substring(1)),this._parts.path=w,this.build(!S),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(S){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!S)),this},a.normalizeFragment=function(S){return this._parts.fragment||(this._parts.fragment=null,this.build(!S)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var S=r.encode,w=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.unicode=function(){var S=r.encode,w=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=S,r.decode=w}return this},a.readable=function(){var S=this.clone();S.username("").password("").normalize();var w="";if(S._parts.protocol&&(w+=S._parts.protocol+"://"),S._parts.hostname&&(S.is("punycode")&&e?(w+=e.toUnicode(S._parts.hostname),S._parts.port&&(w+=":"+S._parts.port)):w+=S.host()),S._parts.hostname&&S._parts.path&&S._parts.path.charAt(0)!=="/"&&(w+="/"),w+=S.path(!0),S._parts.query){for(var I="",L=0,B=S._parts.query.split("&"),U=B.length;L<U;L++){var V=(B[L]||"").split("=");I+="&"+r.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(I+="="+r.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+I.substring(1)}return w+=r.decodeQuery(S.hash(),!0),w},a.absoluteTo=function(S){var w=this.clone(),I=["protocol","username","password","hostname","port"],L,B,U;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S instanceof r||(S=new r(S)),w._parts.protocol||(w._parts.protocol=S._parts.protocol,this._parts.hostname))return w;for(B=0;U=I[B];B++)w._parts[U]=S._parts[U];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(L=S.directory(),L=L||(S.path().indexOf("/")===0?"/":""),w._parts.path=(L?L+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=S._parts.path,w._parts.query||(w._parts.query=S._parts.query)),w.build(),w},a.relativeTo=function(S){var w=this.clone().normalize(),I,L,B,U,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(S=new r(S).normalize(),I=w._parts,L=S._parts,U=w.path(),V=S.path(),U.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===L.protocol&&(I.protocol=null),I.username!==L.username||I.password!==L.password||I.protocol!==null||I.username!==null||I.password!==null)return w.build();if(I.hostname===L.hostname&&I.port===L.port)I.hostname=null,I.port=null;else return w.build();if(U===V)return I.path="",w.build();if(B=r.commonPath(U,V),!B)return w.build();var G=L.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(B.length)||"./",w.build()},a.equals=function(S){var w=this.clone(),I=new r(S),L={},B={},U={},V,G,k;if(w.normalize(),I.normalize(),w.toString()===I.toString())return!0;if(V=w.query(),G=I.query(),w.query(""),I.query(""),w.toString()!==I.toString()||V.length!==G.length)return!1;L=r.parseQuery(V,this._parts.escapeQuerySpace),B=r.parseQuery(G,this._parts.escapeQuerySpace);for(k in L)if(c.call(L,k)){if(d(L[k])){if(!m(L[k],B[k]))return!1}else if(L[k]!==B[k])return!1;U[k]=!0}for(k in B)if(c.call(B,k)&&!U[k])return!1;return!0},a.preventInvalidHostname=function(S){return this._parts.preventInvalidHostname=!!S,this},a.duplicateQueryParameters=function(S){return this._parts.duplicateQueryParameters=!!S,this},a.escapeQuerySpace=function(S){return this._parts.escapeQuerySpace=!!S,this},r})});var voe=qn((hZt,Soe)=>{"use strict";/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */var{entries:boe,setPrototypeOf:doe,isFrozen:aFe,getPrototypeOf:cFe,getOwnPropertyDescriptor:lFe}=Object,{freeze:qc,seal:vf,create:Toe}=Object,{apply:L9,construct:N9}=typeof Reflect<"u"&&Reflect;qc||(qc=function(t){return t});vf||(vf=function(t){return t});L9||(L9=function(t,n,i){return t.apply(n,i)});N9||(N9=function(t,n){return new t(...n)});var pU=yu(Array.prototype.forEach),hoe=yu(Array.prototype.pop),w1=yu(Array.prototype.push),gU=yu(String.prototype.toLowerCase),I9=yu(String.prototype.toString),moe=yu(String.prototype.match),D1=yu(String.prototype.replace),uFe=yu(String.prototype.indexOf),fFe=yu(String.prototype.trim),Ud=yu(Object.prototype.hasOwnProperty),jc=yu(RegExp.prototype.test),I1=dFe(TypeError);function yu(e){return function(t){for(var n=arguments.length,i=new Array(n>1?n-1:0),o=1;o<n;o++)i[o-1]=arguments[o];return L9(e,t,i)}}function dFe(e){return function(){for(var t=arguments.length,n=new Array(t),i=0;i<t;i++)n[i]=arguments[i];return N9(e,n)}}function Di(e,t){let n=arguments.length>2&&arguments[2]!==void 0?arguments[2]:gU;doe&&doe(e,null);let i=t.length;for(;i--;){let o=t[i];if(typeof o=="string"){let r=n(o);r!==o&&(aFe(t)||(t[i]=r),o=r)}e[o]=!0}return e}function hFe(e){for(let t=0;t<e.length;t++)Ud(e,t)||(e[t]=null);return e}function Wx(e){let t=Toe(null);for(let[n,i]of boe(e))Ud(e,n)&&(Array.isArray(i)?t[n]=hFe(i):i&&typeof i=="object"&&i.constructor===Object?t[n]=Wx(i):t[n]=i);return t}function P1(e,t){for(;e!==null;){let i=lFe(e,t);if(i){if(i.get)return yu(i.get);if(typeof i.value=="function")return yu(i.value)}e=cFe(e)}function n(){return null}return n}var poe=qc(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),P9=qc(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),R9=qc(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),mFe=qc(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),O9=qc(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),pFe=qc(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),_oe=qc(["#text"]),goe=qc(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),M9=qc(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),yoe=qc(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),_U=qc(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),_Fe=vf(/\{\{[\w\W]*|[\w\W]*\}\}/gm),gFe=vf(/<%[\w\W]*|[\w\W]*%>/gm),yFe=vf(/\${[\w\W]*}/gm),xFe=vf(/^data-[\-\w.\u00B7-\uFFFF]/),bFe=vf(/^aria-[\-\w]+$/),Coe=vf(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),TFe=vf(/^(?:\w+script|data):/i),CFe=vf(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),Aoe=vf(/^html$/i),AFe=vf(/^[a-z][.\w]*(-[.\w]+)+$/i),xoe=Object.freeze({__proto__:null,MUSTACHE_EXPR:_Fe,ERB_EXPR:gFe,TMPLIT_EXPR:yFe,DATA_ATTR:xFe,ARIA_ATTR:bFe,IS_ALLOWED_URI:Coe,IS_SCRIPT_OR_DATA:TFe,ATTR_WHITESPACE:CFe,DOCTYPE_NAME:Aoe,CUSTOM_ELEMENT:AFe}),R1={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},EFe=function(){return typeof window>"u"?null:window},SFe=function(t,n){if(typeof t!="object"||typeof t.createPolicy!="function")return null;let i=null,o="data-tt-policy-suffix";n&&n.hasAttribute(o)&&(i=n.getAttribute(o));let r="dompurify"+(i?"#"+i:"");try{return t.createPolicy(r,{createHTML(s){return s},createScriptURL(s){return s}})}catch{return console.warn("TrustedTypes policy "+r+" could not be created."),null}};function Eoe(){let e=arguments.length>0&&arguments[0]!==void 0?arguments[0]:EFe(),t=sn=>Eoe(sn);if(t.version="3.1.7",t.removed=[],!e||!e.document||e.document.nodeType!==R1.document)return t.isSupported=!1,t;let{document:n}=e,i=n,o=i.currentScript,{DocumentFragment:r,HTMLTemplateElement:s,Node:a,Element:c,NodeFilter:u,NamedNodeMap:f=e.NamedNodeMap||e.MozNamedAttrMap,HTMLFormElement:d,DOMParser:p,trustedTypes:g}=e,m=c.prototype,x=P1(m,"cloneNode"),b=P1(m,"remove"),T=P1(m,"nextSibling"),C=P1(m,"childNodes"),A=P1(m,"parentNode");if(typeof s=="function"){let sn=n.createElement("template");sn.content&&sn.content.ownerDocument&&(n=sn.content.ownerDocument)}let E,v="",{implementation:D,createNodeIterator:O,createDocumentFragment:R,getElementsByTagName:M}=n,{importNode:N}=i,_={};t.isSupported=typeof boe=="function"&&typeof A=="function"&&D&&D.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:S,ERB_EXPR:w,TMPLIT_EXPR:I,DATA_ATTR:L,ARIA_ATTR:B,IS_SCRIPT_OR_DATA:U,ATTR_WHITESPACE:V,CUSTOM_ELEMENT:G}=xoe,{IS_ALLOWED_URI:k}=xoe,W=null,q=Di({},[...poe,...P9,...R9,...O9,..._oe]),J=null,j=Di({},[...goe,...M9,...yoe,..._U]),K=Object.seal(Toe(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),Q=null,de=null,ye=!0,ae=!0,_e=!1,xe=!0,De=!1,Ae=!0,ke=!1,ze=!1,tt=!1,wt=!1,pt=!1,Be=!1,Yt=!0,Ct=!1,lt="user-content-",tn=!0,Ce=!1,Te={},it=null,Wi=Di({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),ut=null,go=Di({},["audio","video","img","source","image","track"]),Yo=null,Ya=Di({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),Ir="http://www.w3.org/1998/Math/MathML",Cs="http://www.w3.org/2000/svg",Le="http://www.w3.org/1999/xhtml",ot=Le,qe=!1,Xe=null,dt=Di({},[Ir,Cs,Le],I9),Gt=null,wn=["application/xhtml+xml","text/html"],Io="text/html",Jn=null,ls=null,Xa=n.createElement("form"),Yr=function(Ee){return Ee instanceof RegExp||Ee instanceof Function},Fi=function(){let Ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(ls&&ls===Ee)){if((!Ee||typeof Ee!="object")&&(Ee={}),Ee=Wx(Ee),Gt=wn.indexOf(Ee.PARSER_MEDIA_TYPE)===-1?Io:Ee.PARSER_MEDIA_TYPE,Jn=Gt==="application/xhtml+xml"?I9:gU,W=Ud(Ee,"ALLOWED_TAGS")?Di({},Ee.ALLOWED_TAGS,Jn):q,J=Ud(Ee,"ALLOWED_ATTR")?Di({},Ee.ALLOWED_ATTR,Jn):j,Xe=Ud(Ee,"ALLOWED_NAMESPACES")?Di({},Ee.ALLOWED_NAMESPACES,I9):dt,Yo=Ud(Ee,"ADD_URI_SAFE_ATTR")?Di(Wx(Ya),Ee.ADD_URI_SAFE_ATTR,Jn):Ya,ut=Ud(Ee,"ADD_DATA_URI_TAGS")?Di(Wx(go),Ee.ADD_DATA_URI_TAGS,Jn):go,it=Ud(Ee,"FORBID_CONTENTS")?Di({},Ee.FORBID_CONTENTS,Jn):Wi,Q=Ud(Ee,"FORBID_TAGS")?Di({},Ee.FORBID_TAGS,Jn):{},de=Ud(Ee,"FORBID_ATTR")?Di({},Ee.FORBID_ATTR,Jn):{},Te=Ud(Ee,"USE_PROFILES")?Ee.USE_PROFILES:!1,ye=Ee.ALLOW_ARIA_ATTR!==!1,ae=Ee.ALLOW_DATA_ATTR!==!1,_e=Ee.ALLOW_UNKNOWN_PROTOCOLS||!1,xe=Ee.ALLOW_SELF_CLOSE_IN_ATTR!==!1,De=Ee.SAFE_FOR_TEMPLATES||!1,Ae=Ee.SAFE_FOR_XML!==!1,ke=Ee.WHOLE_DOCUMENT||!1,wt=Ee.RETURN_DOM||!1,pt=Ee.RETURN_DOM_FRAGMENT||!1,Be=Ee.RETURN_TRUSTED_TYPE||!1,tt=Ee.FORCE_BODY||!1,Yt=Ee.SANITIZE_DOM!==!1,Ct=Ee.SANITIZE_NAMED_PROPS||!1,tn=Ee.KEEP_CONTENT!==!1,Ce=Ee.IN_PLACE||!1,k=Ee.ALLOWED_URI_REGEXP||Coe,ot=Ee.NAMESPACE||Le,K=Ee.CUSTOM_ELEMENT_HANDLING||{},Ee.CUSTOM_ELEMENT_HANDLING&&Yr(Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(K.tagNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&Yr(Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(K.attributeNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&typeof Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(K.allowCustomizedBuiltInElements=Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),De&&(ae=!1),pt&&(wt=!0),Te&&(W=Di({},_oe),J=[],Te.html===!0&&(Di(W,poe),Di(J,goe)),Te.svg===!0&&(Di(W,P9),Di(J,M9),Di(J,_U)),Te.svgFilters===!0&&(Di(W,R9),Di(J,M9),Di(J,_U)),Te.mathMl===!0&&(Di(W,O9),Di(J,yoe),Di(J,_U))),Ee.ADD_TAGS&&(W===q&&(W=Wx(W)),Di(W,Ee.ADD_TAGS,Jn)),Ee.ADD_ATTR&&(J===j&&(J=Wx(J)),Di(J,Ee.ADD_ATTR,Jn)),Ee.ADD_URI_SAFE_ATTR&&Di(Yo,Ee.ADD_URI_SAFE_ATTR,Jn),Ee.FORBID_CONTENTS&&(it===Wi&&(it=Wx(it)),Di(it,Ee.FORBID_CONTENTS,Jn)),tn&&(W["#text"]=!0),ke&&Di(W,["html","head","body"]),W.table&&(Di(W,["tbody"]),delete Q.tbody),Ee.TRUSTED_TYPES_POLICY){if(typeof Ee.TRUSTED_TYPES_POLICY.createHTML!="function")throw I1('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ee.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw I1('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');E=Ee.TRUSTED_TYPES_POLICY,v=E.createHTML("")}else E===void 0&&(E=SFe(g,o)),E!==null&&typeof v=="string"&&(v=E.createHTML(""));qc&&qc(Ee),ls=Ee}},ks=Di({},["mi","mo","mn","ms","mtext"]),Xr=Di({},["annotation-xml"]),lf=Di({},["title","style","font","a","script"]),yo=Di({},[...P9,...R9,...mFe]),Pr=Di({},[...O9,...pFe]),mp=function(Ee){let Rt=A(Ee);(!Rt||!Rt.tagName)&&(Rt={namespaceURI:ot,tagName:"template"});let pn=gU(Ee.tagName),Xo=gU(Rt.tagName);return Xe[Ee.namespaceURI]?Ee.namespaceURI===Cs?Rt.namespaceURI===Le?pn==="svg":Rt.namespaceURI===Ir?pn==="svg"&&(Xo==="annotation-xml"||ks[Xo]):!!yo[pn]:Ee.namespaceURI===Ir?Rt.namespaceURI===Le?pn==="math":Rt.namespaceURI===Cs?pn==="math"&&Xr[Xo]:!!Pr[pn]:Ee.namespaceURI===Le?Rt.namespaceURI===Cs&&!Xr[Xo]||Rt.namespaceURI===Ir&&!ks[Xo]?!1:!Pr[pn]&&(lf[pn]||!yo[pn]):!!(Gt==="application/xhtml+xml"&&Xe[Ee.namespaceURI]):!1},Kr=function(Ee){w1(t.removed,{element:Ee});try{A(Ee).removeChild(Ee)}catch{b(Ee)}},uf=function(Ee,Rt){try{w1(t.removed,{attribute:Rt.getAttributeNode(Ee),from:Rt})}catch{w1(t.removed,{attribute:null,from:Rt})}if(Rt.removeAttribute(Ee),Ee==="is"&&!J[Ee])if(wt||pt)try{Kr(Rt)}catch{}else try{Rt.setAttribute(Ee,"")}catch{}},Ka=function(Ee){let Rt=null,pn=null;if(tt)Ee="<remove></remove>"+Ee;else{let Ea=moe(Ee,/^[\r\n\t ]+/);pn=Ea&&Ea[0]}Gt==="application/xhtml+xml"&&ot===Le&&(Ee='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Ee+"</body></html>");let Xo=E?E.createHTML(Ee):Ee;if(ot===Le)try{Rt=new p().parseFromString(Xo,Gt)}catch{}if(!Rt||!Rt.documentElement){Rt=D.createDocument(ot,"template",null);try{Rt.documentElement.innerHTML=qe?v:Xo}catch{}}let Za=Rt.body||Rt.documentElement;return Ee&&pn&&Za.insertBefore(n.createTextNode(pn),Za.childNodes[0]||null),ot===Le?M.call(Rt,ke?"html":"body")[0]:ke?Rt.documentElement:Za},X0=function(Ee){return O.call(Ee.ownerDocument||Ee,Ee,u.SHOW_ELEMENT|u.SHOW_COMMENT|u.SHOW_TEXT|u.SHOW_PROCESSING_INSTRUCTION|u.SHOW_CDATA_SECTION,null)},Aa=function(Ee){return Ee instanceof d&&(typeof Ee.nodeName!="string"||typeof Ee.textContent!="string"||typeof Ee.removeChild!="function"||!(Ee.attributes instanceof f)||typeof Ee.removeAttribute!="function"||typeof Ee.setAttribute!="function"||typeof Ee.namespaceURI!="string"||typeof Ee.insertBefore!="function"||typeof Ee.hasChildNodes!="function")},bl=function(Ee){return typeof a=="function"&&Ee instanceof a},Oc=function(Ee,Rt,pn){_[Ee]&&pU(_[Ee],Xo=>{Xo.call(t,Rt,pn,ls)})},us=function(Ee){let Rt=null;if(Oc("beforeSanitizeElements",Ee,null),Aa(Ee))return Kr(Ee),!0;let pn=Jn(Ee.nodeName);if(Oc("uponSanitizeElement",Ee,{tagName:pn,allowedTags:W}),Ee.hasChildNodes()&&!bl(Ee.firstElementChild)&&jc(/<[/\w]/g,Ee.innerHTML)&&jc(/<[/\w]/g,Ee.textContent)||Ee.nodeType===R1.progressingInstruction||Ae&&Ee.nodeType===R1.comment&&jc(/<[/\w]/g,Ee.data))return Kr(Ee),!0;if(!W[pn]||Q[pn]){if(!Q[pn]&&df(pn)&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,pn)||K.tagNameCheck instanceof Function&&K.tagNameCheck(pn)))return!1;if(tn&&!it[pn]){let Xo=A(Ee)||Ee.parentNode,Za=C(Ee)||Ee.childNodes;if(Za&&Xo){let Ea=Za.length;for(let Tl=Ea-1;Tl>=0;--Tl){let Yh=x(Za[Tl],!0);Yh.__removalCount=(Ee.__removalCount||0)+1,Xo.insertBefore(Yh,T(Ee))}}}return Kr(Ee),!0}return Ee instanceof c&&!mp(Ee)||(pn==="noscript"||pn==="noembed"||pn==="noframes")&&jc(/<\/no(script|embed|frames)/i,Ee.innerHTML)?(Kr(Ee),!0):(De&&Ee.nodeType===R1.text&&(Rt=Ee.textContent,pU([S,w,I],Xo=>{Rt=D1(Rt,Xo," ")}),Ee.textContent!==Rt&&(w1(t.removed,{element:Ee.cloneNode()}),Ee.textContent=Rt)),Oc("afterSanitizeElements",Ee,null),!1)},ff=function(Ee,Rt,pn){if(Yt&&(Rt==="id"||Rt==="name")&&(pn in n||pn in Xa))return!1;if(!(ae&&!de[Rt]&&jc(L,Rt))){if(!(ye&&jc(B,Rt))){if(!J[Rt]||de[Rt]){if(!(df(Ee)&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,Ee)||K.tagNameCheck instanceof Function&&K.tagNameCheck(Ee))&&(K.attributeNameCheck instanceof RegExp&&jc(K.attributeNameCheck,Rt)||K.attributeNameCheck instanceof Function&&K.attributeNameCheck(Rt))||Rt==="is"&&K.allowCustomizedBuiltInElements&&(K.tagNameCheck instanceof RegExp&&jc(K.tagNameCheck,pn)||K.tagNameCheck instanceof Function&&K.tagNameCheck(pn))))return!1}else if(!Yo[Rt]){if(!jc(k,D1(pn,V,""))){if(!((Rt==="src"||Rt==="xlink:href"||Rt==="href")&&Ee!=="script"&&uFe(pn,"data:")===0&&ut[Ee])){if(!(_e&&!jc(U,D1(pn,V,"")))){if(pn)return!1}}}}}}return!0},df=function(Ee){return Ee!=="annotation-xml"&&moe(Ee,G)},hf=function(Ee){Oc("beforeSanitizeAttributes",Ee,null);let{attributes:Rt}=Ee;if(!Rt)return;let pn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:J},Xo=Rt.length;for(;Xo--;){let Za=Rt[Xo],{name:Ea,namespaceURI:Tl,value:Yh}=Za,Yv=Jn(Ea),Mc=Ea==="value"?Yh:fFe(Yh);if(pn.attrName=Yv,pn.attrValue=Mc,pn.keepAttr=!0,pn.forceKeepAttr=void 0,Oc("uponSanitizeAttribute",Ee,pn),Mc=pn.attrValue,pn.forceKeepAttr||(uf(Ea,Ee),!pn.keepAttr))continue;if(!xe&&jc(/\/>/i,Mc)){uf(Ea,Ee);continue}De&&pU([S,w,I],FQ=>{Mc=D1(Mc,FQ," ")});let NQ=Jn(Ee.nodeName);if(ff(NQ,Yv,Mc)){if(Ct&&(Yv==="id"||Yv==="name")&&(uf(Ea,Ee),Mc=lt+Mc),Ae&&jc(/((--!?|])>)|<\/(style|title)/i,Mc)){uf(Ea,Ee);continue}if(E&&typeof g=="object"&&typeof g.getAttributeType=="function"&&!Tl)switch(g.getAttributeType(NQ,Yv)){case"TrustedHTML":{Mc=E.createHTML(Mc);break}case"TrustedScriptURL":{Mc=E.createScriptURL(Mc);break}}try{Tl?Ee.setAttributeNS(Tl,Ea,Mc):Ee.setAttribute(Ea,Mc),Aa(Ee)?Kr(Ee):hoe(t.removed)}catch{}}}Oc("afterSanitizeAttributes",Ee,null)},Bo=function sn(Ee){let Rt=null,pn=X0(Ee);for(Oc("beforeSanitizeShadowDOM",Ee,null);Rt=pn.nextNode();)Oc("uponSanitizeShadowNode",Rt,null),!us(Rt)&&(Rt.content instanceof r&&sn(Rt.content),hf(Rt));Oc("afterSanitizeShadowDOM",Ee,null)};return t.sanitize=function(sn){let Ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Rt=null,pn=null,Xo=null,Za=null;if(qe=!sn,qe&&(sn="<!-->"),typeof sn!="string"&&!bl(sn))if(typeof sn.toString=="function"){if(sn=sn.toString(),typeof sn!="string")throw I1("dirty is not a string, aborting")}else throw I1("toString is not a function");if(!t.isSupported)return sn;if(ze||Fi(Ee),t.removed=[],typeof sn=="string"&&(Ce=!1),Ce){if(sn.nodeName){let Yh=Jn(sn.nodeName);if(!W[Yh]||Q[Yh])throw I1("root node is forbidden and cannot be sanitized in-place")}}else if(sn instanceof a)Rt=Ka("<!---->"),pn=Rt.ownerDocument.importNode(sn,!0),pn.nodeType===R1.element&&pn.nodeName==="BODY"||pn.nodeName==="HTML"?Rt=pn:Rt.appendChild(pn);else{if(!wt&&!De&&!ke&&sn.indexOf("<")===-1)return E&&Be?E.createHTML(sn):sn;if(Rt=Ka(sn),!Rt)return wt?null:Be?v:""}Rt&&tt&&Kr(Rt.firstChild);let Ea=X0(Ce?sn:Rt);for(;Xo=Ea.nextNode();)us(Xo)||(Xo.content instanceof r&&Bo(Xo.content),hf(Xo));if(Ce)return sn;if(wt){if(pt)for(Za=R.call(Rt.ownerDocument);Rt.firstChild;)Za.appendChild(Rt.firstChild);else Za=Rt;return(J.shadowroot||J.shadowrootmode)&&(Za=N.call(i,Za,!0)),Za}let Tl=ke?Rt.outerHTML:Rt.innerHTML;return ke&&W["!doctype"]&&Rt.ownerDocument&&Rt.ownerDocument.doctype&&Rt.ownerDocument.doctype.name&&jc(Aoe,Rt.ownerDocument.doctype.name)&&(Tl="<!DOCTYPE "+Rt.ownerDocument.doctype.name+`> +`+Tl),De&&pU([S,w,I],Yh=>{Tl=D1(Tl,Yh," ")}),E&&Be?E.createHTML(Tl):Tl},t.setConfig=function(){let sn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};Fi(sn),ze=!0},t.clearConfig=function(){ls=null,ze=!1},t.isValidAttribute=function(sn,Ee,Rt){ls||Fi({});let pn=Jn(sn),Xo=Jn(Ee);return ff(pn,Xo,Rt)},t.addHook=function(sn,Ee){typeof Ee=="function"&&(_[sn]=_[sn]||[],w1(_[sn],Ee))},t.removeHook=function(sn){if(_[sn])return hoe(_[sn])},t.removeHooks=function(sn){_[sn]&&(_[sn]=[])},t.removeAllHooks=function(){_={}},t}var vFe=Eoe();Soe.exports=vFe});var ure=qn((z1,eW)=>{var PU=function(){"use strict";var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(g){n=g.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(g){for(var m=new Uint8Array(g.length),x=0;x<g.length;++x){var b=g.charCodeAt(x);m[x]=b>96?b-97:b>64?b-39:b+4}for(var T=0,x=0;x<g.length;++x)m[T++]=m[x]<60?t[m[x]]:(m[x]-60)*64+m[++x];return m.buffer.slice(0,T)}function r(g){if(!g)throw new Error("Assertion failed")}function s(g){return new Uint8Array(g.buffer,g.byteOffset,g.byteLength)}function a(g,m,x,b){var T=n.exports.sbrk,C=T(m.length*4),A=T(x*4),E=new Uint8Array(n.exports.memory.buffer),v=s(m);E.set(v,C),b&&b(C,C,m.length,x);var D=g(A,C,m.length,x);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(x);new Uint8Array(O.buffer).set(E.subarray(A,A+x*4)),v.set(E.subarray(C,C+m.length*4)),T(C-T(0));for(var R=0;R<m.length;++R)m[R]=O[m[R]];return[O,D]}function c(g,m,x,b){var T=n.exports.sbrk,C=T(x*4),A=T(x*b),E=new Uint8Array(n.exports.memory.buffer);E.set(s(m),A),g(C,A,x,b),E=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(x);return new Uint8Array(v.buffer).set(E.subarray(C,C+x*4)),T(C-T(0)),v}function u(g,m,x,b,T){var C=n.exports.sbrk,A=C(m),E=C(b*T),v=new Uint8Array(n.exports.memory.buffer);v.set(s(x),E);var D=g(A,m,E,b,T),O=new Uint8Array(D);return O.set(v.subarray(A,A+D)),C(A-C(0)),O}function f(g){for(var m=0,x=0;x<g.length;++x){var b=g[x];m=m<b?b:m}return m}function d(g,m){if(r(m==2||m==4),m==4)return new Uint32Array(g.buffer,g.byteOffset,g.byteLength/4);var x=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/2);return new Uint32Array(x)}function p(g,m,x,b,T,C,A){var E=n.exports.sbrk,v=E(x*b),D=E(x*C),O=new Uint8Array(n.exports.memory.buffer);O.set(s(m),D),g(v,x,b,T,D,A);var R=new Uint8Array(x*b);return R.set(O.subarray(v,v+x*b)),E(v-E(0)),R}return{ready:i,supported:!0,reorderMesh:function(g,m,x){var b=m?x?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(n.exports.meshopt_optimizeVertexFetchRemap,g,f(g)+1,b)},reorderPoints:function(g,m){return r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),c(n.exports.meshopt_spatialSortRemap,g,g.length/m,m*4)},encodeVertexBuffer:function(g,m,x){r(x>0&&x<=256),r(x%4==0);var b=n.exports.meshopt_encodeVertexBufferBound(m,x);return u(n.exports.meshopt_encodeVertexBuffer,b,g,m,x)},encodeIndexBuffer:function(g,m,x){r(x==2||x==4),r(m%3==0);var b=d(g,x),T=n.exports.meshopt_encodeIndexBufferBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexBuffer,T,b,m,4)},encodeIndexSequence:function(g,m,x){r(x==2||x==4);var b=d(g,x),T=n.exports.meshopt_encodeIndexSequenceBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexSequence,T,b,m,4)},encodeGltfBuffer:function(g,m,x,b){var T={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(T[b]),T[b](g,m,x)},encodeFilterOct:function(g,m,x,b){return r(x==4||x==8),r(b>=1&&b<=16),p(n.exports.meshopt_encodeFilterOct,g,m,x,b,16)},encodeFilterQuat:function(g,m,x,b){return r(x==8),r(b>=4&&b<=16),p(n.exports.meshopt_encodeFilterQuat,g,m,x,b,16)},encodeFilterExp:function(g,m,x,b,T){r(x>0&&x%4==0),r(b>=1&&b<=24);var C={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return p(n.exports.meshopt_encodeFilterExp,g,m,x,b,x,T?C[T]:1)}}}();typeof z1=="object"&&typeof eW=="object"?eW.exports=PU:typeof define=="function"&&define.amd?define([],function(){return PU}):typeof z1=="object"?z1.MeshoptEncoder=PU:(typeof self<"u"?self:z1).MeshoptEncoder=PU});var fre=qn((H1,tW)=>{var RU=function(){"use strict";var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?a(t):a(e),r,s=WebAssembly.instantiate(o,{}).then(function(T){r=T.instance,r.exports.__wasm_call_ctors()});function a(T){for(var C=new Uint8Array(T.length),A=0;A<T.length;++A){var E=T.charCodeAt(A);C[A]=E>96?E-97:E>64?E-39:E+4}for(var v=0,A=0;A<T.length;++A)C[v++]=C[A]<60?i[C[A]]:(C[A]-60)*64+C[++A];return C.buffer.slice(0,v)}function c(T,C,A,E,v,D,O){var R=T.exports.sbrk,M=E+3&-4,N=R(M*v),_=R(D.length),S=new Uint8Array(T.exports.memory.buffer);S.set(D,_);var w=C(N,E,v,_,D.length);if(w==0&&O&&O(N,M,v),A.set(S.subarray(N,N+E*v)),R(N-R(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var u={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},d=[],p=0;function g(T){var C={object:new Worker(T),pending:0,requests:{}};return C.object.onmessage=function(A){var E=A.data;C.pending-=E.count,C.requests[E.id][E.action](E.value),delete C.requests[E.id]},C}function m(T){for(var C="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(o)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+c.toString()+b.toString(),A=new Blob([C],{type:"text/javascript"}),E=URL.createObjectURL(A),v=d.length;v<T;++v)d[v]=g(E);for(var v=T;v<d.length;++v)d[v].object.postMessage({});d.length=T,URL.revokeObjectURL(E)}function x(T,C,A,E,v){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(R,M){var N=new Uint8Array(A),_=++p;D.pending+=T,D.requests[_]={resolve:R,reject:M},D.object.postMessage({id:_,count:T,size:C,source:N,mode:E,filter:v},[N.buffer])})}function b(T){var C=T.data;if(!C.id)return self.close();self.ready.then(function(A){try{var E=new Uint8Array(C.count*C.size);c(A,A.exports[C.mode],E,C.count,C.size,C.source,A.exports[C.filter]),self.postMessage({id:C.id,count:C.count,action:"resolve",value:E},[E.buffer])}catch(v){self.postMessage({id:C.id,count:C.count,action:"reject",value:v})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,C,A,E,v){c(r,r.exports.meshopt_decodeVertexBuffer,T,C,A,E,r.exports[u[v]])},decodeIndexBuffer:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexBuffer,T,C,A,E)},decodeIndexSequence:function(T,C,A,E){c(r,r.exports.meshopt_decodeIndexSequence,T,C,A,E)},decodeGltfBuffer:function(T,C,A,E,v,D){c(r,r.exports[f[v]],T,C,A,E,r.exports[u[D]])},decodeGltfBufferAsync:function(T,C,A,E,v){return d.length>0?x(T,C,A,f[E],u[v]):s.then(function(){var D=new Uint8Array(T*C);return c(r,r.exports[f[E]],D,T,C,A,r.exports[u[v]]),D})}}}();typeof H1=="object"&&typeof tW=="object"?tW.exports=RU:typeof define=="function"&&define.amd?define([],function(){return RU}):typeof H1=="object"?H1.MeshoptDecoder=RU:(typeof self<"u"?self:H1).MeshoptDecoder=RU});var dre=qn((G1,nW)=>{var OU=function(){"use strict";var e="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var C=0,b=0;b<m.length;++b)x[C++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,C)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}function a(m,x,b){var T=n.exports.sbrk,C=T(x.length*4),A=T(b*4),E=new Uint8Array(n.exports.memory.buffer),v=s(x);E.set(v,C);var D=m(A,C,x.length,b);E=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(b);new Uint8Array(O.buffer).set(E.subarray(A,A+b*4)),v.set(E.subarray(C,C+x.length*4)),T(C-T(0));for(var R=0;R<x.length;++R)x[R]=O[x[R]];return[O,D]}function c(m){for(var x=0,b=0;b<m.length;++b){var T=m[b];x=x<T?T:x}return x}function u(m,x,b,T,C,A,E,v,D){var O=n.exports.sbrk,R=O(4),M=O(b*4),N=O(C*A),_=O(b*4),S=new Uint8Array(n.exports.memory.buffer);S.set(s(T),N),S.set(s(x),_);var w=m(M,_,b,N,C,A,E,v,D,R);S=new Uint8Array(n.exports.memory.buffer);var I=new Uint32Array(w);s(I).set(S.subarray(M,M+w*4));var L=new Float32Array(1);return s(L).set(S.subarray(R,R+4)),O(R-O(0)),[I,L[0]]}function f(m,x,b,T,C,A,E,v,D,O,R,M,N){var _=n.exports.sbrk,S=_(4),w=_(b*4),I=_(C*A),L=_(C*v),B=_(D.length*4),U=_(b*4),V=O?_(C):0,G=new Uint8Array(n.exports.memory.buffer);G.set(s(T),I),G.set(s(E),L),G.set(s(D),B),G.set(s(x),U),O&&G.set(s(O),V);var k=m(w,U,b,I,C,A,L,v,B,D.length,V,R,M,N,S);G=new Uint8Array(n.exports.memory.buffer);var W=new Uint32Array(k);s(W).set(G.subarray(w,w+k*4));var q=new Float32Array(1);return s(q).set(G.subarray(S,S+4)),_(S-_(0)),[W,q[0]]}function d(m,x,b,T){var C=n.exports.sbrk,A=C(b*T),E=new Uint8Array(n.exports.memory.buffer);E.set(s(x),A);var v=m(A,b,T);return C(A-C(0)),v}function p(m,x,b,T,C,A,E,v){var D=n.exports.sbrk,O=D(v*4),R=D(b*T),M=D(b*A),N=new Uint8Array(n.exports.memory.buffer);N.set(s(x),R),C&&N.set(s(C),M);var _=m(O,R,b,T,M,A,E,v);N=new Uint8Array(n.exports.memory.buffer);var S=new Uint32Array(_);return s(S).set(N.subarray(O,O+_*4)),D(O-D(0)),S}var g={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1<<30};return{ready:i,supported:!0,useExperimentalFeatures:!1,compactMesh:function(m){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0);var x=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return a(n.exports.meshopt_optimizeVertexFetchRemap,x,c(m)+1)},simplify:function(m,x,b,T,C,A){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T>=0&&T<=m.length),r(T%3==0),r(C>=0);for(var E=0,v=0;v<(A?A.length:0);++v)r(A[v]in g),r(this.useExperimentalFeatures||A[v]!="Prune"),E|=g[A[v]];var D=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),O=u(n.exports.meshopt_simplify,D,m.length,x,x.length/b,b*4,T,C,E);return O[0]=m instanceof Uint32Array?O[0]:new m.constructor(O[0]),O},simplifyWithAttributes:function(m,x,b,T,C,A,E,v,D,O){r(this.useExperimentalFeatures),r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T instanceof Float32Array),r(T.length%C==0),r(C>=0),r(E==null||E instanceof Uint8Array),r(E==null||E.length==x.length/b),r(v>=0&&v<=m.length),r(v%3==0),r(D>=0),r(Array.isArray(A)),r(C>=A.length),r(A.length<=32);for(var R=0;R<A.length;++R)r(A[R]>=0);for(var M=0,R=0;R<(O?O.length:0);++R)r(O[R]in g),M|=g[O[R]];var N=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),_=f(n.exports.meshopt_simplifyWithAttributes,N,m.length,x,x.length/b,b*4,T,C*4,new Float32Array(A),E?new Uint8Array(E):null,v,D,M);return _[0]=m instanceof Uint32Array?_[0]:new m.constructor(_[0]),_},getScale:function(m,x){return r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),d(n.exports.meshopt_simplifyScale,m,m.length/x,x*4)},simplifyPoints:function(m,x,b,T,C,A){return r(this.useExperimentalFeatures),r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),r(b>=0&&b<=m.length/x),T?(r(T instanceof Float32Array),r(T.length%C==0),r(C>=3),r(m.length/x==T.length/C),p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,T,C*4,A,b)):p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,void 0,0,0,b)}}}();typeof G1=="object"&&typeof nW=="object"?nW.exports=OU:typeof define=="function"&&define.amd?define([],function(){return OU}):typeof G1=="object"?G1.MeshoptSimplifier=OU:(typeof self<"u"?self:G1).MeshoptSimplifier=OU});var hre=qn((W1,iW)=>{var MU=function(){var e="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var C=0,b=0;b<m.length;++b)x[C++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,C)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}var a=48,c=16;function u(m,x){var b=m.meshlets[x*4+0],T=m.meshlets[x*4+1],C=m.meshlets[x*4+2],A=m.meshlets[x*4+3];return{vertices:m.vertices.subarray(b,b+C),triangles:m.triangles.subarray(T,T+A*3)}}function f(m,x,b,T,C,A,E){var v=n.exports.sbrk,D=n.exports.meshopt_buildMeshletsBound(m.length,C,A),O=v(D*c),R=v(D*C*4),M=v(D*A*3),N=v(m.byteLength),_=v(x.byteLength),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),N),S.set(s(x),_);var w=n.exports.meshopt_buildMeshlets(O,R,M,N,m.length,_,b,T,C,A,E);S=new Uint8Array(n.exports.memory.buffer);for(var I=S.subarray(O,O+w*c),L=new Uint32Array(I.buffer,I.byteOffset,I.byteLength/4).slice(),B=0;B<w;++B){var U=L[B*4+0],V=L[B*4+1],b=L[B*4+2],G=L[B*4+3];n.exports.meshopt_optimizeMeshlet(R+U*4,M+V,G,b)}var k=L[(w-1)*4+0],W=L[(w-1)*4+1],q=L[(w-1)*4+2],J=L[(w-1)*4+3],j=k+q,K=W+(J*3+3&-4),Q={meshlets:L,vertices:new Uint32Array(S.buffer,R,j).slice(),triangles:new Uint8Array(S.buffer,M,K*3).slice(),meshletCount:w};return v(O-v(0)),Q}function d(m){var x=new Float32Array(n.exports.memory.buffer,m,a/4);return{centerX:x[0],centerY:x[1],centerZ:x[2],radius:x[3],coneApexX:x[4],coneApexY:x[5],coneApexZ:x[6],coneAxisX:x[7],coneAxisY:x[8],coneAxisZ:x[9],coneCutoff:x[10]}}function p(m,x,b,T){var C=n.exports.sbrk,A=[],E=C(x.byteLength),v=C(m.vertices.byteLength),D=C(m.triangles.byteLength),O=C(a),R=new Uint8Array(n.exports.memory.buffer);R.set(s(x),E),R.set(s(m.vertices),v),R.set(s(m.triangles),D);for(var M=0;M<m.meshletCount;++M){var N=m.meshlets[M*4+0],_=m.meshlets[M*4+0+1],S=m.meshlets[M*4+0+3];n.exports.meshopt_computeMeshletBounds(O,v+N*4,D+_,S,E,b,T),A.push(d(O))}return C(E-C(0)),A}function g(m,x,b,T){var C=n.exports.sbrk,A=C(a),E=C(m.byteLength),v=C(x.byteLength),D=new Uint8Array(n.exports.memory.buffer);D.set(s(m),E),D.set(s(x),v),n.exports.meshopt_computeClusterBounds(A,E,m.length,v,b,T);var O=d(A);return C(A-C(0)),O}return{ready:i,supported:!0,buildMeshlets:function(m,x,b,T,C,A){r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T<=255||T>0),r(C<=512),r(C%4==0),A=A||0;var E=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return f(E,x,x.length/b,b*4,T,C,A)},computeClusterBounds:function(m,x,b){r(m.length%3==0),r(m.length/3<=512),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3);var T=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return g(T,x,x.length/b,b*4)},computeMeshletBounds:function(m,x,b){return r(m.meshletCount!=0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),p(m,x,x.length/b,b*4)},extractMeshlet:function(m,x){return r(x>=0&&x<m.meshletCount),u(m,x)}}}();typeof W1=="object"&&typeof iW=="object"?iW.exports=MU:typeof define=="function"&&define.amd?define([],function(){return MU}):typeof W1=="object"?W1.MeshoptClusterizer=MU:(typeof self<"u"?self:W1).MeshoptClusterizer=MU});var pre=qn((Zen,mre)=>{var m3e=ure(),p3e=fre(),_3e=dre(),g3e=hre();mre.exports={MeshoptEncoder:m3e,MeshoptDecoder:p3e,MeshoptSimplifier:_3e,MeshoptClusterizer:g3e}});var wle=qn((pwn,vle)=>{"use strict";vle.exports=Sje;var UM=1e20;function Sje(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,u,f,d,p,g,m,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(u=c,c=Array(r*s),m=0,x=Math.floor(u.length/f);m<x;m++)c[m]=u[m*f+o]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var b=Array(r*s),T=Array(r*s),C=Array(a),A=Array(a),E=Array(a+1),v=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?UM:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?UM:D===0?0:Math.pow(Math.max(0,D-.5),2)}Ele(b,r,s,C,A,v,E),Ele(T,r,s,C,A,v,E);var O=window.Float32Array?new Float32Array(r*s):new Array(r*s);for(m=0,x=r*s;m<x;m++)O[m]=Math.min(Math.max(1-((b[m]-T[m])/i+n),0),1);return O}function Ele(e,t,n,i,o,r,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(Sle(i,o,r,s,n),c=0;c<n;c++)e[c*t+a]=o[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(Sle(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function Sle(e,t,n,i,o){n[0]=0,i[0]=-UM,i[1]=+UM;for(var r=1,s=0;r<o;r++){for(var a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);a<=i[s];)s--,a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);s++,n[s]=r,i[s]=a,i[s+1]=+UM}for(r=0,s=0;r<o;r++){for(;i[s+1]<r;)s++;t[r]=(r-n[s])*(r-n[s])+e[n[s]]}}});var Ole=qn((Own,xz)=>{function Fje(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,C=0,A=1,E=2,v=3,D=4;function O(_,S){return 55296<=_.charCodeAt(S)&&_.charCodeAt(S)<=56319&&56320<=_.charCodeAt(S+1)&&_.charCodeAt(S+1)<=57343}function R(_,S){S===void 0&&(S=0);var w=_.charCodeAt(S);if(55296<=w&&w<=56319&&S<_.length-1){var I=w,L=_.charCodeAt(S+1);return 56320<=L&&L<=57343?(I-55296)*1024+(L-56320)+65536:I}if(56320<=w&&w<=57343&&S>=1){var I=_.charCodeAt(S-1),L=w;return 55296<=I&&I<=56319?(I-55296)*1024+(L-56320)+65536:L}return w}function M(_,S,w){var I=[_].concat(S).concat([w]),L=I[I.length-2],B=w,U=I.lastIndexOf(m);if(U>1&&I.slice(1,U).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return E;var V=I.lastIndexOf(o);if(V>0&&I.slice(1,V).every(function(k){return k==o})&&[p,o].indexOf(L)==-1)return I.filter(function(k){return k==o}).length%2==1?v:D;if(L==e&&B==t)return C;if(L==n||L==e||L==t)return B==m&&S.every(function(k){return k==i})?E:A;if(B==n||B==e||B==t)return A;if(L==s&&(B==s||B==a||B==u||B==f))return C;if((L==u||L==a)&&(B==a||B==c))return C;if((L==f||L==c)&&B==c)return C;if(B==i||B==x)return C;if(B==r)return C;if(L==p)return C;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,T].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(k){return k==i})&&B==m||L==x&&[b,T].indexOf(B)!=-1?C:S.indexOf(o)!=-1?E:L==o&&B==o?C:A}this.nextBreak=function(_,S){if(S===void 0&&(S=0),S<0)return 0;if(S>=_.length-1)return _.length;for(var w=N(R(_,S)),I=[],L=S+1;L<_.length;L++)if(!O(_,L-1)){var B=N(R(_,L));if(M(w,I,B))return L;I.push(B)}return _.length},this.splitGraphemes=function(_){for(var S=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)S.push(_.slice(w,I)),w=I;return w<_.length&&S.push(_.slice(w)),S},this.iterateGraphemes=function(_){var S=0,w={next:function(){var I,L;return(L=this.nextBreak(_,S))<_.length?(I=_.slice(S,L),S=L,{value:I,done:!1}):S<_.length?(I=_.slice(S),S=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var S=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,S++;return w<_.length&&S++,S};function N(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?u:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?m:_==8205?x:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?b:128102<=_&&_<=128105?T:d}return this}typeof xz<"u"&&xz.exports&&(xz.exports=Fje)});var xme=qn((rq,sq)=>{(function(e,t){typeof rq=="object"&&typeof sq<"u"?sq.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self,e.RBush=t())})(rq,function(){"use strict";function e(A,E,v,D,O){t(A,E,v||0,D||A.length-1,O||i)}function t(A,E,v,D,O){for(;D>v;){if(D-v>600){var R=D-v+1,M=E-v+1,N=Math.log(R),_=.5*Math.exp(2*N/3),S=.5*Math.sqrt(N*_*(R-_)/R)*(M-R/2<0?-1:1),w=Math.max(v,Math.floor(E-M*_/R+S)),I=Math.min(D,Math.floor(E+(R-M)*_/R+S));t(A,E,w,I,O)}var L=A[E],B=v,U=D;for(n(A,v,E),O(A[D],L)>0&&n(A,v,D);B<U;){for(n(A,B,U),B++,U--;O(A[B],L)<0;)B++;for(;O(A[U],L)>0;)U--}O(A[v],L)===0?n(A,v,U):(U++,n(A,U,D)),U<=E&&(v=U+1),E<=U&&(D=U-1)}}function n(A,E,v){var D=A[E];A[E]=A[v],A[v]=D}function i(A,E){return A<E?-1:A>E?1:0}var o=function(E){E===void 0&&(E=9),this._maxEntries=Math.max(4,E),this._minEntries=Math.max(2,Math.ceil(this._maxEntries*.4)),this.clear()};o.prototype.all=function(){return this._all(this.data,[])},o.prototype.search=function(E){var v=this.data,D=[];if(!b(E,v))return D;for(var O=this.toBBox,R=[];v;){for(var M=0;M<v.children.length;M++){var N=v.children[M],_=v.leaf?O(N):N;b(E,_)&&(v.leaf?D.push(N):x(E,_)?this._all(N,D):R.push(N))}v=R.pop()}return D},o.prototype.collides=function(E){var v=this.data;if(!b(E,v))return!1;for(var D=[];v;){for(var O=0;O<v.children.length;O++){var R=v.children[O],M=v.leaf?this.toBBox(R):R;if(b(E,M)){if(v.leaf||x(E,M))return!0;D.push(R)}}v=D.pop()}return!1},o.prototype.load=function(E){if(!(E&&E.length))return this;if(E.length<this._minEntries){for(var v=0;v<E.length;v++)this.insert(E[v]);return this}var D=this._build(E.slice(),0,E.length-1,0);if(!this.data.children.length)this.data=D;else if(this.data.height===D.height)this._splitRoot(this.data,D);else{if(this.data.height<D.height){var O=this.data;this.data=D,D=O}this._insert(D,this.data.height-D.height-1,!0)}return this},o.prototype.insert=function(E){return E&&this._insert(E,this.data.height-1),this},o.prototype.clear=function(){return this.data=T([]),this},o.prototype.remove=function(E,v){if(!E)return this;for(var D=this.data,O=this.toBBox(E),R=[],M=[],N,_,S;D||R.length;){if(D||(D=R.pop(),_=R[R.length-1],N=M.pop(),S=!0),D.leaf){var w=r(E,D.children,v);if(w!==-1)return D.children.splice(w,1),R.push(D),this._condense(R),this}!S&&!D.leaf&&x(D,O)?(R.push(D),M.push(N),N=0,_=D,D=D.children[0]):_?(N++,D=_.children[N],S=!1):D=null}return this},o.prototype.toBBox=function(E){return E},o.prototype.compareMinX=function(E,v){return E.minX-v.minX},o.prototype.compareMinY=function(E,v){return E.minY-v.minY},o.prototype.toJSON=function(){return this.data},o.prototype.fromJSON=function(E){return this.data=E,this},o.prototype._all=function(E,v){for(var D=[];E;)E.leaf?v.push.apply(v,E.children):D.push.apply(D,E.children),E=D.pop();return v},o.prototype._build=function(E,v,D,O){var R=D-v+1,M=this._maxEntries,N;if(R<=M)return N=T(E.slice(v,D+1)),s(N,this.toBBox),N;O||(O=Math.ceil(Math.log(R)/Math.log(M)),M=Math.ceil(R/Math.pow(M,O-1))),N=T([]),N.leaf=!1,N.height=O;var _=Math.ceil(R/M),S=_*Math.ceil(Math.sqrt(M));C(E,v,D,S,this.compareMinX);for(var w=v;w<=D;w+=S){var I=Math.min(w+S-1,D);C(E,w,I,_,this.compareMinY);for(var L=w;L<=I;L+=_){var B=Math.min(L+_-1,I);N.children.push(this._build(E,L,B,O-1))}}return s(N,this.toBBox),N},o.prototype._chooseSubtree=function(E,v,D,O){for(;O.push(v),!(v.leaf||O.length-1===D);){for(var R=1/0,M=1/0,N=void 0,_=0;_<v.children.length;_++){var S=v.children[_],w=d(S),I=g(E,S)-w;I<M?(M=I,R=w<R?w:R,N=S):I===M&&w<R&&(R=w,N=S)}v=N||v.children[0]}return v},o.prototype._insert=function(E,v,D){var O=D?E:this.toBBox(E),R=[],M=this._chooseSubtree(O,this.data,v,R);for(M.children.push(E),c(M,O);v>=0&&R[v].children.length>this._maxEntries;)this._split(R,v),v--;this._adjustParentBBoxes(O,R,v)},o.prototype._split=function(E,v){var D=E[v],O=D.children.length,R=this._minEntries;this._chooseSplitAxis(D,R,O);var M=this._chooseSplitIndex(D,R,O),N=T(D.children.splice(M,D.children.length-M));N.height=D.height,N.leaf=D.leaf,s(D,this.toBBox),s(N,this.toBBox),v?E[v-1].children.push(N):this._splitRoot(D,N)},o.prototype._splitRoot=function(E,v){this.data=T([E,v]),this.data.height=E.height+1,this.data.leaf=!1,s(this.data,this.toBBox)},o.prototype._chooseSplitIndex=function(E,v,D){for(var O,R=1/0,M=1/0,N=v;N<=D-v;N++){var _=a(E,0,N,this.toBBox),S=a(E,N,D,this.toBBox),w=m(_,S),I=d(_)+d(S);w<R?(R=w,O=N,M=I<M?I:M):w===R&&I<M&&(M=I,O=N)}return O||D-v},o.prototype._chooseSplitAxis=function(E,v,D){var O=E.leaf?this.compareMinX:u,R=E.leaf?this.compareMinY:f,M=this._allDistMargin(E,v,D,O),N=this._allDistMargin(E,v,D,R);M<N&&E.children.sort(O)},o.prototype._allDistMargin=function(E,v,D,O){E.children.sort(O);for(var R=this.toBBox,M=a(E,0,v,R),N=a(E,D-v,D,R),_=p(M)+p(N),S=v;S<D-v;S++){var w=E.children[S];c(M,E.leaf?R(w):w),_+=p(M)}for(var I=D-v-1;I>=v;I--){var L=E.children[I];c(N,E.leaf?R(L):L),_+=p(N)}return _},o.prototype._adjustParentBBoxes=function(E,v,D){for(var O=D;O>=0;O--)c(v[O],E)},o.prototype._condense=function(E){for(var v=E.length-1,D=void 0;v>=0;v--)E[v].children.length===0?v>0?(D=E[v-1].children,D.splice(D.indexOf(E[v]),1)):this.clear():s(E[v],this.toBBox)};function r(A,E,v){if(!v)return E.indexOf(A);for(var D=0;D<E.length;D++)if(v(A,E[D]))return D;return-1}function s(A,E){a(A,0,A.children.length,E,A)}function a(A,E,v,D,O){O||(O=T(null)),O.minX=1/0,O.minY=1/0,O.maxX=-1/0,O.maxY=-1/0;for(var R=E;R<v;R++){var M=A.children[R];c(O,A.leaf?D(M):M)}return O}function c(A,E){return A.minX=Math.min(A.minX,E.minX),A.minY=Math.min(A.minY,E.minY),A.maxX=Math.max(A.maxX,E.maxX),A.maxY=Math.max(A.maxY,E.maxY),A}function u(A,E){return A.minX-E.minX}function f(A,E){return A.minY-E.minY}function d(A){return(A.maxX-A.minX)*(A.maxY-A.minY)}function p(A){return A.maxX-A.minX+(A.maxY-A.minY)}function g(A,E){return(Math.max(E.maxX,A.maxX)-Math.min(E.minX,A.minX))*(Math.max(E.maxY,A.maxY)-Math.min(E.minY,A.minY))}function m(A,E){var v=Math.max(A.minX,E.minX),D=Math.max(A.minY,E.minY),O=Math.min(A.maxX,E.maxX),R=Math.min(A.maxY,E.maxY);return Math.max(0,O-v)*Math.max(0,R-D)}function x(A,E){return A.minX<=E.minX&&A.minY<=E.minY&&E.maxX<=A.maxX&&E.maxY<=A.maxY}function b(A,E){return E.minX<=A.maxX&&E.minY<=A.maxY&&E.maxX>=A.minX&&E.maxY>=A.minY}function T(A){return{children:A,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function C(A,E,v,D,O){for(var R=[E,v];R.length;)if(v=R.pop(),E=R.pop(),!(v-E<=D)){var M=E+Math.ceil((v-E)/D/2)*D;e(A,M,E,v,O),R.push(E,M,M,v)}}return o})});var rpe=qn((g4,ope)=>{(function(e,t){typeof g4=="object"&&typeof ope<"u"?t(g4):typeof define=="function"&&define.amd?define(["exports"],t):(e=e||self,t(e.topojson=e.topojson||{}))})(g4,function(e){"use strict";function t(A){return A}function n(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],R=A.translate[0],M=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,I=new Array(w);for(I[0]=(E+=N[0])*D+R,I[1]=(v+=N[1])*O+M;S<w;)I[S]=N[S],++S;return I}}function i(A){var E=n(A.transform),v,D=1/0,O=D,R=-D,M=-D;function N(S){S=E(S),S[0]<D&&(D=S[0]),S[0]>R&&(R=S[0]),S[1]<O&&(O=S[1]),S[1]>M&&(M=S[1])}function _(S){switch(S.type){case"GeometryCollection":S.geometries.forEach(_);break;case"Point":N(S.coordinates);break;case"MultiPoint":S.coordinates.forEach(N);break}}A.arcs.forEach(function(S){for(var w=-1,I=S.length,L;++w<I;)L=E(S[w],w),L[0]<D&&(D=L[0]),L[0]>R&&(R=L[0]),L[1]<O&&(O=L[1]),L[1]>M&&(M=L[1])});for(v in A.objects)_(A.objects[v]);return[D,O,R,M]}function o(A,E){for(var v,D=A.length,O=D-E;O<--D;)v=A[O],A[O++]=A[D],A[D]=v}function r(A,E){return typeof E=="string"&&(E=A.objects[E]),E.type==="GeometryCollection"?{type:"FeatureCollection",features:E.geometries.map(function(v){return s(A,v)})}:s(A,E)}function s(A,E){var v=E.id,D=E.bbox,O=E.properties==null?{}:E.properties,R=a(A,E);return v==null&&D==null?{type:"Feature",properties:O,geometry:R}:D==null?{type:"Feature",id:v,properties:O,geometry:R}:{type:"Feature",id:v,bbox:D,properties:O,geometry:R}}function a(A,E){var v=n(A.transform),D=A.arcs;function O(w,I){I.length&&I.pop();for(var L=D[w<0?~w:w],B=0,U=L.length;B<U;++B)I.push(v(L[B],B));w<0&&o(I,U)}function R(w){return v(w)}function M(w){for(var I=[],L=0,B=w.length;L<B;++L)O(w[L],I);return I.length<2&&I.push(I[0]),I}function N(w){for(var I=M(w);I.length<4;)I.push(I[0]);return I}function _(w){return w.map(N)}function S(w){var I=w.type,L;switch(I){case"GeometryCollection":return{type:I,geometries:w.geometries.map(S)};case"Point":L=R(w.coordinates);break;case"MultiPoint":L=w.coordinates.map(R);break;case"LineString":L=M(w.arcs);break;case"MultiLineString":L=w.arcs.map(M);break;case"Polygon":L=_(w.arcs);break;case"MultiPolygon":L=w.arcs.map(_);break;default:return null}return{type:I,coordinates:L}}return S(E)}function c(A,E){var v={},D={},O={},R=[],M=-1;E.forEach(function(S,w){var I=A.arcs[S<0?~S:S],L;I.length<3&&!I[1][0]&&!I[1][1]&&(L=E[++M],E[M]=S,E[w]=L)}),E.forEach(function(S){var w=N(S),I=w[0],L=w[1],B,U;if(B=O[I])if(delete O[B.end],B.push(S),B.end=L,U=D[L]){delete D[U.start];var V=U===B?B:B.concat(U);D[V.start=B.start]=O[V.end=U.end]=V}else D[B.start]=O[B.end]=B;else if(B=D[L])if(delete D[B.start],B.unshift(S),B.start=I,U=O[I]){delete O[U.end];var G=U===B?B:U.concat(B);D[G.start=U.start]=O[G.end=B.end]=G}else D[B.start]=O[B.end]=B;else B=[S],D[B.start=I]=O[B.end=L]=B});function N(S){var w=A.arcs[S<0?~S:S],I=w[0],L;return A.transform?(L=[0,0],w.forEach(function(B){L[0]+=B[0],L[1]+=B[1]})):L=w[w.length-1],S<0?[L,I]:[I,L]}function _(S,w){for(var I in S){var L=S[I];delete w[L.start],delete L.start,delete L.end,L.forEach(function(B){v[B<0?~B:B]=1}),R.push(L)}}return _(O,D),_(D,O),E.forEach(function(S){v[S<0?~S:S]||R.push([S])}),R}function u(A){return a(A,f.apply(this,arguments))}function f(A,E,v){var D,O,R;if(arguments.length>1)D=d(A,E,v);else for(O=0,D=new Array(R=A.arcs.length);O<R;++O)D[O]=O;return{type:"MultiLineString",arcs:c(A,D)}}function d(A,E,v){var D=[],O=[],R;function M(I){var L=I<0?~I:I;(O[L]||(O[L]=[])).push({i:I,g:R})}function N(I){I.forEach(M)}function _(I){I.forEach(N)}function S(I){I.forEach(_)}function w(I){switch(R=I,I.type){case"GeometryCollection":I.geometries.forEach(w);break;case"LineString":N(I.arcs);break;case"MultiLineString":case"Polygon":_(I.arcs);break;case"MultiPolygon":S(I.arcs);break}}return w(E),O.forEach(v==null?function(I){D.push(I[0].i)}:function(I){v(I[0].g,I[I.length-1].g)&&D.push(I[0].i)}),D}function p(A){for(var E=-1,v=A.length,D,O=A[v-1],R=0;++E<v;)D=O,O=A[E],R+=D[0]*O[1]-D[1]*O[0];return Math.abs(R)}function g(A){return a(A,m.apply(this,arguments))}function m(A,E){var v={},D=[],O=[];E.forEach(R);function R(_){switch(_.type){case"GeometryCollection":_.geometries.forEach(R);break;case"Polygon":M(_.arcs);break;case"MultiPolygon":_.arcs.forEach(M);break}}function M(_){_.forEach(function(S){S.forEach(function(w){(v[w=w<0?~w:w]||(v[w]=[])).push(_)})}),D.push(_)}function N(_){return p(a(A,{type:"Polygon",arcs:[_]}).coordinates[0])}return D.forEach(function(_){if(!_._){var S=[],w=[_];for(_._=1,O.push(S);_=w.pop();)S.push(_),_.forEach(function(I){I.forEach(function(L){v[L<0?~L:L].forEach(function(B){B._||(B._=1,w.push(B))})})})}}),D.forEach(function(_){delete _._}),{type:"MultiPolygon",arcs:O.map(function(_){var S=[],w;if(_.forEach(function(V){V.forEach(function(G){G.forEach(function(k){v[k<0?~k:k].length<2&&S.push(k)})})}),S=c(A,S),(w=S.length)>1)for(var I=1,L=N(S[0]),B,U;I<w;++I)(B=N(S[I]))>L&&(U=S[0],S[0]=S[I],S[I]=U,L=B);return S}).filter(function(_){return _.length>0})}}function x(A,E){for(var v=0,D=A.length;v<D;){var O=v+D>>>1;A[O]<E?v=O+1:D=O}return v}function b(A){var E={},v=A.map(function(){return[]});function D(V,G){V.forEach(function(k){k<0&&(k=~k);var W=E[k];W?W.push(G):E[k]=[G]})}function O(V,G){V.forEach(function(k){D(k,G)})}function R(V,G){V.type==="GeometryCollection"?V.geometries.forEach(function(k){R(k,G)}):V.type in M&&M[V.type](V.arcs,G)}var M={LineString:D,MultiLineString:O,Polygon:O,MultiPolygon:function(V,G){V.forEach(function(k){O(k,G)})}};A.forEach(R);for(var N in E)for(var _=E[N],S=_.length,w=0;w<S;++w)for(var I=w+1;I<S;++I){var L=_[w],B=_[I],U;(U=v[L])[N=x(U,B)]!==B&&U.splice(N,0,B),(U=v[B])[N=x(U,L)]!==L&&U.splice(N,0,L)}return v}function T(A){if(A==null)return t;var E,v,D=A.scale[0],O=A.scale[1],R=A.translate[0],M=A.translate[1];return function(N,_){_||(E=v=0);var S=2,w=N.length,I=new Array(w),L=Math.round((N[0]-R)/D),B=Math.round((N[1]-M)/O);for(I[0]=L-E,E=L,I[1]=B-v,v=B;S<w;)I[S]=N[S],++S;return I}}function C(A,E){if(A.transform)throw new Error("already quantized");if(!E||!E.scale){if(!((M=Math.floor(E))>=2))throw new Error("n must be \u22652");_=A.bbox||i(A);var v=_[0],D=_[1],O=_[2],R=_[3],M;E={scale:[O-v?(O-v)/(M-1):1,R-D?(R-D)/(M-1):1],translate:[v,D]}}else _=A.bbox;var N=T(E),_,S,w=A.objects,I={};function L(V){return N(V)}function B(V){var G;switch(V.type){case"GeometryCollection":G={type:"GeometryCollection",geometries:V.geometries.map(B)};break;case"Point":G={type:"Point",coordinates:L(V.coordinates)};break;case"MultiPoint":G={type:"MultiPoint",coordinates:V.coordinates.map(L)};break;default:return V}return V.id!=null&&(G.id=V.id),V.bbox!=null&&(G.bbox=V.bbox),V.properties!=null&&(G.properties=V.properties),G}function U(V){var G=0,k=1,W=V.length,q,J=new Array(W);for(J[0]=N(V[0],0);++G<W;)((q=N(V[G],G))[0]||q[1])&&(J[k++]=q);return k===1&&(J[k++]=[0,0]),J.length=k,J}for(S in w)I[S]=B(w[S]);return{type:"Topology",bbox:_,transform:E,objects:I,arcs:A.arcs.map(U)}}e.bbox=i,e.feature=r,e.merge=g,e.mergeArcs=m,e.mesh=u,e.meshArcs=f,e.neighbors=b,e.quantize=C,e.transform=n,e.untransform=T,Object.defineProperty(e,"__esModule",{value:!0})})});var Spe=qn(b4=>{"use strict";Object.defineProperty(b4,"__esModule",{value:!0});b4.version=void 0;b4.version="4.0.0"});var _S=qn(Cc=>{"use strict";Object.defineProperty(Cc,"__esModule",{value:!0});Cc.assertNever=Cc.removeWithPredicate=Cc.remove=Cc.ellipsis=Cc.defaults=Cc.isBoolean=Cc.isUndefined=void 0;function vpe(e){return e===void 0}Cc.isUndefined=vpe;function tnt(e){return typeof e=="boolean"}Cc.isBoolean=tnt;function nnt(e,t){for(var n in t)t.hasOwnProperty(n)&&vpe(e[n])&&(e[n]=t[n]);return e}Cc.defaults=nnt;function int(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}Cc.ellipsis=int;function ont(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}Cc.remove=ont;function rnt(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}Cc.removeWithPredicate=rnt;function snt(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}Cc.assertNever=snt});var _T=qn(Ei=>{"use strict";Object.defineProperty(Ei,"__esModule",{value:!0});Ei.alphaNumericAndMarksRe=Ei.alphaNumericAndMarksCharsStr=Ei.alphaNumericCharsRe=Ei.decimalNumbersStr=Ei.alphaCharsAndMarksStr=Ei.marksStr=Ei.emojiStr=Ei.alphaCharsStr=Ei.controlCharsRe=Ei.quoteRe=Ei.whitespaceRe=Ei.nonDigitRe=Ei.digitRe=Ei.letterRe=void 0;Ei.letterRe=/[A-Za-z]/;Ei.digitRe=/[\d]/;Ei.nonDigitRe=/[\D]/;Ei.whitespaceRe=/\s/;Ei.quoteRe=/['"]/;Ei.controlCharsRe=/[\x00-\x1F\x7F]/;Ei.alphaCharsStr=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source;Ei.emojiStr=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source;Ei.marksStr=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source;Ei.alphaCharsAndMarksStr=Ei.alphaCharsStr+Ei.emojiStr+Ei.marksStr;Ei.decimalNumbersStr=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source;Ei.alphaNumericCharsRe=new RegExp("[".concat(Ei.alphaCharsStr+Ei.decimalNumbersStr,"]"));Ei.alphaNumericAndMarksCharsStr=Ei.alphaCharsAndMarksStr+Ei.decimalNumbersStr;Ei.alphaNumericAndMarksRe=new RegExp("[".concat(Ei.alphaNumericAndMarksCharsStr,"]"))});var A4=qn(C4=>{"use strict";Object.defineProperty(C4,"__esModule",{value:!0});C4.HtmlTag=void 0;var T4=_T(),ant=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(T4.whitespaceRe):[],o=t.split(T4.whitespaceRe),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(T4.whitespaceRe):[],o=t.split(T4.whitespaceRe),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();C4.HtmlTag=ant});var wpe=qn(E4=>{"use strict";Object.defineProperty(E4,"__esModule",{value:!0});E4.truncateSmart=void 0;function cnt(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(C){var A={},E=C,v=E.match(/^([a-z]+):\/\//i);return v&&(A.scheme=v[1],E=E.substr(v[0].length)),v=E.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(A.host=v[1],E=E.substr(v[0].length)),v=E.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(A.path=v[1],E=E.substr(v[0].length)),v=E.match(/^\?(.*?)(?=(#|$))/i),v&&(A.query=v[1],E=E.substr(v[0].length)),v=E.match(/^#(.*?)$/i),v&&(A.fragment=v[1]),A},s=function(C){var A="";return C.scheme&&C.host&&(A+=C.scheme+"://"),C.host&&(A+=C.host),C.path&&(A+="/"+C.path),C.query&&(A+="?"+C.query),C.fragment&&(A+="#"+C.fragment),A},a=function(C,A){var E=A/2,v=Math.ceil(E),D=-1*Math.floor(E),O="";return D<0&&(O=C.substr(D)),C.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(u.fragment){var m="#"+u.fragment;if((d+m).length>=c){if((d+m).length==t)return(d+m).substr(0,t);var x=c-d.length;return(d+a(m,x)).substr(0,c+i)}else d+=m}if(u.scheme&&u.host){var b=u.scheme+"://";if((d+b).length<c)return(b+d).substr(0,t)}if(d.length<=t)return d;var T="";return c>0&&(T=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+T).substr(0,c+i)}E4.truncateSmart=cnt});var Dpe=qn(S4=>{"use strict";Object.defineProperty(S4,"__esModule",{value:!0});S4.truncateMiddle=void 0;function lnt(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}S4.truncateMiddle=lnt});var Ipe=qn(v4=>{"use strict";Object.defineProperty(v4,"__esModule",{value:!0});v4.truncateEnd=void 0;var unt=_S();function fnt(e,t,n){return(0,unt.ellipsis)(e,t,n)}v4.truncateEnd=fnt});var Aq=qn(w4=>{"use strict";Object.defineProperty(w4,"__esModule",{value:!0});w4.AnchorTagBuilder=void 0;var dnt=A4(),hnt=wpe(),mnt=Dpe(),pnt=Ipe(),_nt=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new dnt.HtmlTag({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,o=n.location;return o==="smart"?(0,hnt.truncateSmart)(t,i):o==="middle"?(0,mnt.truncateMiddle)(t,i):(0,pnt.truncateEnd)(t,i)},e}();w4.AnchorTagBuilder=_nt});var Nm={};BQ(Nm,{__addDisposableResource:()=>e_e,__assign:()=>D4,__asyncDelegator:()=>qpe,__asyncGenerator:()=>jpe,__asyncValues:()=>Ype,__await:()=>gS,__awaiter:()=>Vpe,__classPrivateFieldGet:()=>$pe,__classPrivateFieldIn:()=>Jpe,__classPrivateFieldSet:()=>Qpe,__createBinding:()=>P4,__decorate:()=>Ope,__disposeResources:()=>t_e,__esDecorate:()=>Lpe,__exportStar:()=>zpe,__extends:()=>Ppe,__generator:()=>Upe,__importDefault:()=>Zpe,__importStar:()=>Kpe,__makeTemplateObject:()=>Xpe,__metadata:()=>kpe,__param:()=>Mpe,__propKey:()=>Fpe,__read:()=>vq,__rest:()=>Rpe,__rewriteRelativeImportExtension:()=>n_e,__runInitializers:()=>Npe,__setFunctionName:()=>Bpe,__spread:()=>Hpe,__spreadArray:()=>Wpe,__spreadArrays:()=>Gpe,__values:()=>I4,default:()=>xnt});function Ppe(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");Eq(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}function Rpe(e,t){var n={};for(var i in e)Object.prototype.hasOwnProperty.call(e,i)&&t.indexOf(i)<0&&(n[i]=e[i]);if(e!=null&&typeof Object.getOwnPropertySymbols=="function")for(var o=0,i=Object.getOwnPropertySymbols(e);o<i.length;o++)t.indexOf(i[o])<0&&Object.prototype.propertyIsEnumerable.call(e,i[o])&&(n[i[o]]=e[i[o]]);return n}function Ope(e,t,n,i){var o=arguments.length,r=o<3?t:i===null?i=Object.getOwnPropertyDescriptor(t,n):i,s;if(typeof Reflect=="object"&&typeof Reflect.decorate=="function")r=Reflect.decorate(e,t,n,i);else for(var a=e.length-1;a>=0;a--)(s=e[a])&&(r=(o<3?s(r):o>3?s(t,n,r):s(t,n))||r);return o>3&&r&&Object.defineProperty(t,n,r),r}function Mpe(e,t){return function(n,i){t(n,i,e)}}function Lpe(e,t,n,i,o,r){function s(T){if(T!==void 0&&typeof T!="function")throw new TypeError("Function expected");return T}for(var a=i.kind,c=a==="getter"?"get":a==="setter"?"set":"value",u=!t&&e?i.static?e:e.prototype:null,f=t||(u?Object.getOwnPropertyDescriptor(u,i.name):{}),d,p=!1,g=n.length-1;g>=0;g--){var m={};for(var x in i)m[x]=x==="access"?{}:i[x];for(var x in i.access)m.access[x]=i.access[x];m.addInitializer=function(T){if(p)throw new TypeError("Cannot add initializers after decoration has completed");r.push(s(T||null))};var b=(0,n[g])(a==="accessor"?{get:f.get,set:f.set}:f[c],m);if(a==="accessor"){if(b===void 0)continue;if(b===null||typeof b!="object")throw new TypeError("Object expected");(d=s(b.get))&&(f.get=d),(d=s(b.set))&&(f.set=d),(d=s(b.init))&&o.unshift(d)}else(d=s(b))&&(a==="field"?o.unshift(d):f[c]=d)}u&&Object.defineProperty(u,i.name,f),p=!0}function Npe(e,t,n){for(var i=arguments.length>2,o=0;o<t.length;o++)n=i?t[o].call(e,n):t[o].call(e);return i?n:void 0}function Fpe(e){return typeof e=="symbol"?e:"".concat(e)}function Bpe(e,t,n){return typeof t=="symbol"&&(t=t.description?"[".concat(t.description,"]"):""),Object.defineProperty(e,"name",{configurable:!0,value:n?"".concat(n," ",t):t})}function kpe(e,t){if(typeof Reflect=="object"&&typeof Reflect.metadata=="function")return Reflect.metadata(e,t)}function Vpe(e,t,n,i){function o(r){return r instanceof n?r:new n(function(s){s(r)})}return new(n||(n=Promise))(function(r,s){function a(f){try{u(i.next(f))}catch(d){s(d)}}function c(f){try{u(i.throw(f))}catch(d){s(d)}}function u(f){f.done?r(f.value):o(f.value).then(a,c)}u((i=i.apply(e,t||[])).next())})}function Upe(e,t){var n={label:0,sent:function(){if(r[0]&1)throw r[1];return r[1]},trys:[],ops:[]},i,o,r,s=Object.create((typeof Iterator=="function"?Iterator:Object).prototype);return s.next=a(0),s.throw=a(1),s.return=a(2),typeof Symbol=="function"&&(s[Symbol.iterator]=function(){return this}),s;function a(u){return function(f){return c([u,f])}}function c(u){if(i)throw new TypeError("Generator is already executing.");for(;s&&(s=0,u[0]&&(n=0)),n;)try{if(i=1,o&&(r=u[0]&2?o.return:u[0]?o.throw||((r=o.return)&&r.call(o),0):o.next)&&!(r=r.call(o,u[1])).done)return r;switch(o=0,r&&(u=[u[0]&2,r.value]),u[0]){case 0:case 1:r=u;break;case 4:return n.label++,{value:u[1],done:!1};case 5:n.label++,o=u[1],u=[0];continue;case 7:u=n.ops.pop(),n.trys.pop();continue;default:if(r=n.trys,!(r=r.length>0&&r[r.length-1])&&(u[0]===6||u[0]===2)){n=0;continue}if(u[0]===3&&(!r||u[1]>r[0]&&u[1]<r[3])){n.label=u[1];break}if(u[0]===6&&n.label<r[1]){n.label=r[1],r=u;break}if(r&&n.label<r[2]){n.label=r[2],n.ops.push(u);break}r[2]&&n.ops.pop(),n.trys.pop();continue}u=t.call(e,n)}catch(f){u=[6,f],o=0}finally{i=r=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:!0}}}function zpe(e,t){for(var n in e)n!=="default"&&!Object.prototype.hasOwnProperty.call(t,n)&&P4(t,e,n)}function I4(e){var t=typeof Symbol=="function"&&Symbol.iterator,n=t&&e[t],i=0;if(n)return n.call(e);if(e&&typeof e.length=="number")return{next:function(){return e&&i>=e.length&&(e=void 0),{value:e&&e[i++],done:!e}}};throw new TypeError(t?"Object is not iterable.":"Symbol.iterator is not defined.")}function vq(e,t){var n=typeof Symbol=="function"&&e[Symbol.iterator];if(!n)return e;var i=n.call(e),o,r=[],s;try{for(;(t===void 0||t-- >0)&&!(o=i.next()).done;)r.push(o.value)}catch(a){s={error:a}}finally{try{o&&!o.done&&(n=i.return)&&n.call(i)}finally{if(s)throw s.error}}return r}function Hpe(){for(var e=[],t=0;t<arguments.length;t++)e=e.concat(vq(arguments[t]));return e}function Gpe(){for(var e=0,t=0,n=arguments.length;t<n;t++)e+=arguments[t].length;for(var i=Array(e),o=0,t=0;t<n;t++)for(var r=arguments[t],s=0,a=r.length;s<a;s++,o++)i[o]=r[s];return i}function Wpe(e,t,n){if(n||arguments.length===2)for(var i=0,o=t.length,r;i<o;i++)(r||!(i in t))&&(r||(r=Array.prototype.slice.call(t,0,i)),r[i]=t[i]);return e.concat(r||Array.prototype.slice.call(t))}function gS(e){return this instanceof gS?(this.v=e,this):new gS(e)}function jpe(e,t,n){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var i=n.apply(e,t||[]),o,r=[];return o=Object.create((typeof AsyncIterator=="function"?AsyncIterator:Object).prototype),a("next"),a("throw"),a("return",s),o[Symbol.asyncIterator]=function(){return this},o;function s(g){return function(m){return Promise.resolve(m).then(g,d)}}function a(g,m){i[g]&&(o[g]=function(x){return new Promise(function(b,T){r.push([g,x,b,T])>1||c(g,x)})},m&&(o[g]=m(o[g])))}function c(g,m){try{u(i[g](m))}catch(x){p(r[0][3],x)}}function u(g){g.value instanceof gS?Promise.resolve(g.value.v).then(f,d):p(r[0][2],g)}function f(g){c("next",g)}function d(g){c("throw",g)}function p(g,m){g(m),r.shift(),r.length&&c(r[0][0],r[0][1])}}function qpe(e){var t,n;return t={},i("next"),i("throw",function(o){throw o}),i("return"),t[Symbol.iterator]=function(){return this},t;function i(o,r){t[o]=e[o]?function(s){return(n=!n)?{value:gS(e[o](s)),done:!1}:r?r(s):s}:r}}function Ype(e){if(!Symbol.asyncIterator)throw new TypeError("Symbol.asyncIterator is not defined.");var t=e[Symbol.asyncIterator],n;return t?t.call(e):(e=typeof I4=="function"?I4(e):e[Symbol.iterator](),n={},i("next"),i("throw"),i("return"),n[Symbol.asyncIterator]=function(){return this},n);function i(r){n[r]=e[r]&&function(s){return new Promise(function(a,c){s=e[r](s),o(a,c,s.done,s.value)})}}function o(r,s,a,c){Promise.resolve(c).then(function(u){r({value:u,done:a})},s)}}function Xpe(e,t){return Object.defineProperty?Object.defineProperty(e,"raw",{value:t}):e.raw=t,e}function Kpe(e){if(e&&e.__esModule)return e;var t={};if(e!=null)for(var n=Sq(e),i=0;i<n.length;i++)n[i]!=="default"&&P4(t,e,n[i]);return gnt(t,e),t}function Zpe(e){return e&&e.__esModule?e:{default:e}}function $pe(e,t,n,i){if(n==="a"&&!i)throw new TypeError("Private accessor was defined without a getter");if(typeof t=="function"?e!==t||!i:!t.has(e))throw new TypeError("Cannot read private member from an object whose class did not declare it");return n==="m"?i:n==="a"?i.call(e):i?i.value:t.get(e)}function Qpe(e,t,n,i,o){if(i==="m")throw new TypeError("Private method is not writable");if(i==="a"&&!o)throw new TypeError("Private accessor was defined without a setter");if(typeof t=="function"?e!==t||!o:!t.has(e))throw new TypeError("Cannot write private member to an object whose class did not declare it");return i==="a"?o.call(e,n):o?o.value=n:t.set(e,n),n}function Jpe(e,t){if(t===null||typeof t!="object"&&typeof t!="function")throw new TypeError("Cannot use 'in' operator on non-object");return typeof e=="function"?t===e:e.has(t)}function e_e(e,t,n){if(t!=null){if(typeof t!="object"&&typeof t!="function")throw new TypeError("Object expected.");var i,o;if(n){if(!Symbol.asyncDispose)throw new TypeError("Symbol.asyncDispose is not defined.");i=t[Symbol.asyncDispose]}if(i===void 0){if(!Symbol.dispose)throw new TypeError("Symbol.dispose is not defined.");i=t[Symbol.dispose],n&&(o=i)}if(typeof i!="function")throw new TypeError("Object not disposable.");o&&(i=function(){try{o.call(this)}catch(r){return Promise.reject(r)}}),e.stack.push({value:t,dispose:i,async:n})}else n&&e.stack.push({async:!0});return t}function t_e(e){function t(r){e.error=e.hasError?new ynt(r,e.error,"An error was suppressed during disposal."):r,e.hasError=!0}var n,i=0;function o(){for(;n=e.stack.pop();)try{if(!n.async&&i===1)return i=0,e.stack.push(n),Promise.resolve().then(o);if(n.dispose){var r=n.dispose.call(n.value);if(n.async)return i|=2,Promise.resolve(r).then(o,function(s){return t(s),o()})}else i|=1}catch(s){t(s)}if(i===1)return e.hasError?Promise.reject(e.error):Promise.resolve();if(e.hasError)throw e.error}return o()}function n_e(e,t){return typeof e=="string"&&/^\.\.?\//.test(e)?e.replace(/\.(tsx)$|((?:\.d)?)((?:\.[^./]+?)?)\.([cm]?)ts$/i,function(n,i,o,r,s){return i?t?".jsx":".js":o&&(!r||!s)?n:o+r+"."+s.toLowerCase()+"js"}):e}var Eq,D4,P4,gnt,Sq,ynt,xnt,Fm=OEe(()=>{Eq=function(e,t){return Eq=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},Eq(e,t)};D4=function(){return D4=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},D4.apply(this,arguments)};P4=Object.create?function(e,t,n,i){i===void 0&&(i=n);var o=Object.getOwnPropertyDescriptor(t,n);(!o||("get"in o?!t.__esModule:o.writable||o.configurable))&&(o={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,i,o)}:function(e,t,n,i){i===void 0&&(i=n),e[i]=t[n]};gnt=Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t},Sq=function(e){return Sq=Object.getOwnPropertyNames||function(t){var n=[];for(var i in t)Object.prototype.hasOwnProperty.call(t,i)&&(n[n.length]=i);return n},Sq(e)};ynt=typeof SuppressedError=="function"?SuppressedError:function(e,t,n){var i=new Error(n);return i.name="SuppressedError",i.error=e,i.suppressed=t,i};xnt={__extends:Ppe,__assign:D4,__rest:Rpe,__decorate:Ope,__param:Mpe,__esDecorate:Lpe,__runInitializers:Npe,__propKey:Fpe,__setFunctionName:Bpe,__metadata:kpe,__awaiter:Vpe,__generator:Upe,__createBinding:P4,__exportStar:zpe,__values:I4,__read:vq,__spread:Hpe,__spreadArrays:Gpe,__spreadArray:Wpe,__await:gS,__asyncGenerator:jpe,__asyncDelegator:qpe,__asyncValues:Ype,__makeTemplateObject:Xpe,__importStar:Kpe,__importDefault:Zpe,__classPrivateFieldGet:$pe,__classPrivateFieldSet:Qpe,__classPrivateFieldIn:Jpe,__addDisposableResource:e_e,__disposeResources:t_e,__rewriteRelativeImportExtension:n_e}});var gT=qn(R4=>{"use strict";Object.defineProperty(R4,"__esModule",{value:!0});R4.AbstractMatch=void 0;var bnt=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();R4.AbstractMatch=bnt});var i_e=qn(yT=>{"use strict";Object.defineProperty(yT,"__esModule",{value:!0});yT.tldRegex=yT.tldRegexStr=void 0;yT.tldRegexStr="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)";yT.tldRegex=new RegExp("^"+yT.tldRegexStr+"$")});var O4=qn(Bn=>{"use strict";Object.defineProperty(Bn,"__esModule",{value:!0});Bn.isValidIpV4Address=Bn.isValidTldMatch=Bn.isValidSchemeUrl=Bn.isKnownTld=Bn.isUrlSuffixStartChar=Bn.isPathChar=Bn.isDomainLabelChar=Bn.isDomainLabelStartChar=Bn.isSchemeChar=Bn.isSchemeStartChar=Bn.tldUrlHostRe=Bn.schemeUrlRe=Bn.invalidSchemeRe=Bn.urlSuffixedCharsNotAllowedAtEndRe=Bn.httpSchemePrefixRe=Bn.httpSchemeRe=Bn.urlSuffixNotAllowedAsLastCharRe=Bn.urlSuffixAllowedSpecialCharsRe=Bn.urlSuffixStartCharsRe=Bn.domainNameCharRegex=void 0;var xT=_T(),Tnt=i_e();Bn.domainNameCharRegex=xT.alphaNumericAndMarksRe;Bn.urlSuffixStartCharsRe=/[\/?#]/;Bn.urlSuffixAllowedSpecialCharsRe=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/;Bn.urlSuffixNotAllowedAsLastCharRe=/[?!:,.;^]/;Bn.httpSchemeRe=/https?:\/\//i;Bn.httpSchemePrefixRe=new RegExp("^"+Bn.httpSchemeRe.source,"i");Bn.urlSuffixedCharsNotAllowedAtEndRe=new RegExp(Bn.urlSuffixNotAllowedAsLastCharRe.source+"$");Bn.invalidSchemeRe=/^(javascript|vbscript):/i;Bn.schemeUrlRe=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/;Bn.tldUrlHostRe=/^(?:\/\/)?([^/#?:]+)/;function Cnt(e){return xT.letterRe.test(e)}Bn.isSchemeStartChar=Cnt;function Ant(e){return xT.letterRe.test(e)||xT.digitRe.test(e)||e==="+"||e==="-"||e==="."}Bn.isSchemeChar=Ant;function o_e(e){return xT.alphaNumericAndMarksRe.test(e)}Bn.isDomainLabelStartChar=o_e;function Ent(e){return e==="_"||o_e(e)}Bn.isDomainLabelChar=Ent;function Snt(e){return xT.alphaNumericAndMarksRe.test(e)||Bn.urlSuffixAllowedSpecialCharsRe.test(e)||Bn.urlSuffixNotAllowedAsLastCharRe.test(e)}Bn.isPathChar=Snt;function vnt(e){return Bn.urlSuffixStartCharsRe.test(e)}Bn.isUrlSuffixStartChar=vnt;function r_e(e){return Tnt.tldRegex.test(e.toLowerCase())}Bn.isKnownTld=r_e;function wnt(e){if(Bn.invalidSchemeRe.test(e))return!1;var t=e.match(Bn.schemeUrlRe);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!xT.letterRe.test(i))}Bn.isValidSchemeUrl=wnt;function Dnt(e){var t=e.match(Bn.tldUrlHostRe);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!r_e(o)}Bn.isValidTldMatch=Dnt;var Int=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,Pnt=/[:/?#]/;function Rnt(e){var t=e.split(Pnt,1)[0];return Int.test(t)}Bn.isValidIpV4Address=Rnt});var wq=qn(M4=>{"use strict";Object.defineProperty(M4,"__esModule",{value:!0});M4.UrlMatch=void 0;var Ont=(Fm(),Xh(Nm)),Mnt=gT(),Lnt=O4(),Nnt=/^(https?:\/\/)?(www\.)?/i,Fnt=/^\/\//,Bnt=function(e){(0,Ont.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=Unt(n)),this.stripPrefix.scheme&&(n=knt(n)),this.stripPrefix.www&&(n=Vnt(n)),this.stripTrailingSlash&&(n=znt(n)),this.decodePercentEncoding&&(n=Hnt(n)),n},t}(Mnt.AbstractMatch);M4.UrlMatch=Bnt;function knt(e){return e.replace(Lnt.httpSchemePrefixRe,"")}function Vnt(e){return e.replace(Nnt,"$1")}function Unt(e){return e.replace(Fnt,"")}function znt(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function Hnt(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}});var a_e=qn(Bm=>{"use strict";Object.defineProperty(Bm,"__esModule",{value:!0});Bm.isValidEmail=Bm.isEmailLocalPartChar=Bm.isEmailLocalPartStartChar=Bm.mailtoSchemePrefixRe=void 0;var s_e=_T(),Gnt=O4();Bm.mailtoSchemePrefixRe=/^mailto:/i;var Wnt=new RegExp("[".concat(s_e.alphaNumericAndMarksCharsStr,"!#$%&'*+/=?^_`{|}~-]"));function jnt(e){return s_e.alphaNumericAndMarksRe.test(e)}Bm.isEmailLocalPartStartChar=jnt;function qnt(e){return Wnt.test(e)}Bm.isEmailLocalPartChar=qnt;function Ynt(e){var t=e.split(".").pop()||"";return(0,Gnt.isKnownTld)(t)}Bm.isValidEmail=Ynt});var Dq=qn(L4=>{"use strict";Object.defineProperty(L4,"__esModule",{value:!0});L4.EmailMatch=void 0;var Xnt=(Fm(),Xh(Nm)),Knt=gT(),Znt=function(e){(0,Xnt.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(Knt.AbstractMatch);L4.EmailMatch=Znt});var Iq=qn(r0=>{"use strict";Object.defineProperty(r0,"__esModule",{value:!0});r0.hashtagServices=r0.isValidHashtag=r0.isHashtagTextChar=void 0;var $nt=_T();function Qnt(e){return e==="_"||$nt.alphaNumericAndMarksRe.test(e)}r0.isHashtagTextChar=Qnt;function Jnt(e){return e.length<=140}r0.isValidHashtag=Jnt;r0.hashtagServices=["twitter","facebook","instagram","tiktok"]});var Pq=qn(N4=>{"use strict";Object.defineProperty(N4,"__esModule",{value:!0});N4.HashtagMatch=void 0;var eit=(Fm(),Xh(Nm)),tit=_S(),nit=gT(),iit=function(e){(0,eit.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw(0,tit.assertNever)(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(nit.AbstractMatch);N4.HashtagMatch=iit});var Rq=qn(s0=>{"use strict";Object.defineProperty(s0,"__esModule",{value:!0});s0.mentionServices=s0.isValidMention=s0.isMentionTextChar=void 0;var oit={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},rit=/[-\w.]/;function sit(e){return rit.test(e)}s0.isMentionTextChar=sit;function ait(e,t){var n=oit[t];return n.test(e)}s0.isValidMention=ait;s0.mentionServices=["twitter","instagram","soundcloud","tiktok"]});var Oq=qn(F4=>{"use strict";Object.defineProperty(F4,"__esModule",{value:!0});F4.MentionMatch=void 0;var cit=(Fm(),Xh(Nm)),lit=gT(),uit=function(e){(0,cit.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(lit.AbstractMatch);F4.MentionMatch=uit});var c_e=qn(a0=>{"use strict";Object.defineProperty(a0,"__esModule",{value:!0});a0.isValidPhoneNumber=a0.isPhoneNumberControlChar=a0.isPhoneNumberSeparatorChar=void 0;var fit=/[-. ]/,dit=/[-. ()]/,hit=/[,;]/,mit=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,pit=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,_it=new RegExp("^".concat(mit.source,"|").concat(pit.source,"$"));function git(e){return fit.test(e)}a0.isPhoneNumberSeparatorChar=git;function yit(e){return hit.test(e)}a0.isPhoneNumberControlChar=yit;function xit(e){var t=e.charAt(0)==="+"||dit.test(e);return t&&_it.test(e)}a0.isValidPhoneNumber=xit});var Mq=qn(B4=>{"use strict";Object.defineProperty(B4,"__esModule",{value:!0});B4.PhoneMatch=void 0;var bit=(Fm(),Xh(Nm)),Tit=gT(),Cit=function(e){(0,bit.__extends)(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(Tit.AbstractMatch);B4.PhoneMatch=Cit});var Vq=qn(bS=>{"use strict";Object.defineProperty(bS,"__esModule",{value:!0});bS.excludeUnbalancedTrailingBracesAndPunctuation=bS.parseMatches=void 0;var Ba=_T(),Ait=wq(),So=_S(),hr=O4(),yS=a_e(),Eit=Dq(),Lq=Iq(),Sit=Pq(),Nq=Rq(),vit=Oq(),xS=c_e(),wit=Mq();function Dit(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],u=e.length,f=[],d=0;d<u;d++){var p=e.charAt(d);if(f.length===0)b(p);else for(var g=f.length-1;g>=0;g--){var m=f[g];switch(m.state){case 11:D(m,p);break;case 12:O(m,p);break;case 0:T(m,p);break;case 1:C(m,p);break;case 2:A(m,p);break;case 3:E(m,p);break;case 4:v(m,p);break;case 5:R(m,p);break;case 6:M(m,p);break;case 7:N(m,p);break;case 13:_(m,p);break;case 14:S(m,p);break;case 8:w(m,p);break;case 9:I(m,p);break;case 10:L(m,p);break;case 15:B(m,p);break;case 16:U(m,p);break;case 17:V(m,p);break;case 18:G(m,p);break;case 19:k(m,p);break;case 20:W(m,p);break;case 21:q(m,p);break;case 22:J(m,p);break;case 23:j(m,p);break;case 24:K(m,p);break;case 25:Q(m,p);break;case 26:de(m,p);break;case 27:ye(m,p);break;case 28:ae(m,p);break;case 29:_e(m,p);break;case 30:xe(m,p);break;case 31:De(m,p);break;case 32:ke(m,p);break;case 33:ze(m,p);break;case 34:tt(m,p);break;case 35:wt(m,p);break;case 36:pt(m,p);break;case 37:Ae(m,p);break;case 38:Be(m,p);break;case 39:Yt(m,p);break;case 40:Ct(m,p);break;case 41:lt(m,p);break;default:(0,So.assertNever)(m.state)}}}for(var x=f.length-1;x>=0;x--)f.forEach(function(Ce){return tn(Ce)});return c;function b(Ce){if(Ce==="#")f.push(Oit(d,28));else if(Ce==="@")f.push(Mit(d,30));else if(Ce==="/")f.push(Bq(d,11));else if(Ce==="+")f.push(kq(d,37));else if(Ce==="(")f.push(kq(d,32));else{if(Ba.digitRe.test(Ce)&&(f.push(kq(d,38)),f.push(Pit(d,13))),(0,yS.isEmailLocalPartStartChar)(Ce)){var Te=Ce.toLowerCase()==="m"?15:22;f.push(Rit(d,Te))}(0,hr.isSchemeStartChar)(Ce)&&f.push(Fq(d,0)),Ba.alphaNumericAndMarksRe.test(Ce)&&f.push(Bq(d,5))}}function T(Ce,Te){Te===":"?Ce.state=2:Te==="-"?Ce.state=1:(0,hr.isSchemeChar)(Te)||(0,So.remove)(f,Ce)}function C(Ce,Te){Te==="-"||(Te==="/"?((0,So.remove)(f,Ce),f.push(Bq(d,11))):(0,hr.isSchemeChar)(Te)?Ce.state=0:(0,So.remove)(f,Ce))}function A(Ce,Te){Te==="/"?Ce.state=3:Te==="."?(0,So.remove)(f,Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,(0,hr.isSchemeStartChar)(Te)&&f.push(Fq(d,0))):(0,So.remove)(f,Ce)}function E(Ce,Te){Te==="/"?Ce.state=4:(0,hr.isPathChar)(Te)?(Ce.state=10,Ce.acceptStateReached=!0):tn(Ce)}function v(Ce,Te){Te==="/"?Ce.state=10:(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function D(Ce,Te){Te==="/"?Ce.state=12:(0,So.remove)(f,Ce)}function O(Ce,Te){(0,hr.isDomainLabelStartChar)(Te)?Ce.state=5:(0,So.remove)(f,Ce)}function R(Ce,Te){Te==="."?Ce.state=7:Te==="-"?Ce.state=6:Te===":"?Ce.state=8:(0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:(0,hr.isDomainLabelChar)(Te)||tn(Ce)}function M(Ce,Te){Te==="-"||(Te==="."?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?Ce.state=5:tn(Ce))}function N(Ce,Te){Te==="."?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=5,Ce.acceptStateReached=!0):tn(Ce)}function _(Ce,Te){Te==="."?Ce.state=14:Te===":"?Ce.state=8:Ba.digitRe.test(Te)||((0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:Ba.alphaNumericAndMarksRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce))}function S(Ce,Te){Ba.digitRe.test(Te)?(Ce.octetsEncountered++,Ce.octetsEncountered===4&&(Ce.acceptStateReached=!0),Ce.state=13):tn(Ce)}function w(Ce,Te){Ba.digitRe.test(Te)?Ce.state=9:tn(Ce)}function I(Ce,Te){Ba.digitRe.test(Te)||((0,hr.isUrlSuffixStartChar)(Te)?Ce.state=10:tn(Ce))}function L(Ce,Te){(0,hr.isPathChar)(Te)||tn(Ce)}function B(Ce,Te){Te.toLowerCase()==="a"?Ce.state=16:J(Ce,Te)}function U(Ce,Te){Te.toLowerCase()==="i"?Ce.state=17:J(Ce,Te)}function V(Ce,Te){Te.toLowerCase()==="l"?Ce.state=18:J(Ce,Te)}function G(Ce,Te){Te.toLowerCase()==="t"?Ce.state=19:J(Ce,Te)}function k(Ce,Te){Te.toLowerCase()==="o"?Ce.state=20:J(Ce,Te)}function W(Ce,Te){Te.toLowerCase()===":"?Ce.state=21:J(Ce,Te)}function q(Ce,Te){(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function J(Ce,Te){Te==="."?Ce.state=23:Te==="@"?Ce.state=24:(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function j(Ce,Te){Te==="."||Te==="@"?(0,So.remove)(f,Ce):(0,yS.isEmailLocalPartChar)(Te)?Ce.state=22:(0,So.remove)(f,Ce)}function K(Ce,Te){(0,hr.isDomainLabelStartChar)(Te)?Ce.state=25:(0,So.remove)(f,Ce)}function Q(Ce,Te){Te==="."?Ce.state=27:Te==="-"?Ce.state=26:(0,hr.isDomainLabelChar)(Te)||tn(Ce)}function de(Ce,Te){Te==="-"||Te==="."?tn(Ce):(0,hr.isDomainLabelChar)(Te)?Ce.state=25:tn(Ce)}function ye(Ce,Te){Te==="."||Te==="-"?tn(Ce):(0,hr.isDomainLabelStartChar)(Te)?(Ce.state=25,Ce.acceptStateReached=!0):tn(Ce)}function ae(Ce,Te){(0,Lq.isHashtagTextChar)(Te)?(Ce.state=29,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function _e(Ce,Te){(0,Lq.isHashtagTextChar)(Te)||tn(Ce)}function xe(Ce,Te){(0,Nq.isMentionTextChar)(Te)?(Ce.state=31,Ce.acceptStateReached=!0):(0,So.remove)(f,Ce)}function De(Ce,Te){(0,Nq.isMentionTextChar)(Te)||(Ba.alphaNumericAndMarksRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce))}function Ae(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:((0,So.remove)(f,Ce),b(Te))}function ke(Ce,Te){Ba.digitRe.test(Te)?Ce.state=33:(0,So.remove)(f,Ce),b(Te)}function ze(Ce,Te){Ba.digitRe.test(Te)?Ce.state=34:(0,So.remove)(f,Ce)}function tt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=35:(0,So.remove)(f,Ce)}function wt(Ce,Te){Te===")"?Ce.state=36:(0,So.remove)(f,Ce)}function pt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:(0,xS.isPhoneNumberSeparatorChar)(Te)?Ce.state=39:(0,So.remove)(f,Ce)}function Be(Ce,Te){Ce.acceptStateReached=!0,(0,xS.isPhoneNumberControlChar)(Te)?Ce.state=40:Te==="#"?Ce.state=41:Ba.digitRe.test(Te)||(Te==="("?Ce.state=32:(0,xS.isPhoneNumberSeparatorChar)(Te)?Ce.state=39:(tn(Ce),(0,hr.isSchemeStartChar)(Te)&&f.push(Fq(d,0))))}function Yt(Ce,Te){Ba.digitRe.test(Te)?Ce.state=38:Te==="("?Ce.state=32:(tn(Ce),b(Te))}function Ct(Ce,Te){(0,xS.isPhoneNumberControlChar)(Te)||(Te==="#"?Ce.state=41:Ba.digitRe.test(Te)?Ce.state=38:tn(Ce))}function lt(Ce,Te){(0,xS.isPhoneNumberControlChar)(Te)?Ce.state=40:Ba.digitRe.test(Te)?(0,So.remove)(f,Ce):tn(Ce)}function tn(Ce){if((0,So.remove)(f,Ce),!!Ce.acceptStateReached){var Te=Ce.startIdx,it=e.slice(Ce.startIdx,d);if(it=f_e(it),Ce.type==="url"){var Wi=e.charAt(Ce.startIdx-1);if(Wi==="@")return;var ut=Ce.matchType;if(ut==="scheme"){var go=hr.httpSchemeRe.exec(it);if(go&&(Te=Te+go.index,it=it.slice(go.index)),!(0,hr.isValidSchemeUrl)(it))return}else if(ut==="tld"){if(!(0,hr.isValidTldMatch)(it))return}else if(ut==="ipV4"){if(!(0,hr.isValidIpV4Address)(it))return}else(0,So.assertNever)(ut);c.push(new Ait.UrlMatch({tagBuilder:n,matchedText:it,offset:Te,urlMatchType:ut,url:it,protocolRelativeMatch:it.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(Ce.type==="email")(0,yS.isValidEmail)(it)&&c.push(new Eit.EmailMatch({tagBuilder:n,matchedText:it,offset:Te,email:it.replace(yS.mailtoSchemePrefixRe,"")}));else if(Ce.type==="hashtag")(0,Lq.isValidHashtag)(it)&&c.push(new Sit.HashtagMatch({tagBuilder:n,matchedText:it,offset:Te,serviceName:s,hashtag:it.slice(1)}));else if(Ce.type==="mention")(0,Nq.isValidMention)(it,a)&&c.push(new vit.MentionMatch({tagBuilder:n,matchedText:it,offset:Te,serviceName:a,mention:it.slice(1)}));else if(Ce.type==="phone"){if(it=it.replace(/ +$/g,""),(0,xS.isValidPhoneNumber)(it)){var Yo=it.replace(/[^0-9,;#]/g,"");c.push(new wit.PhoneMatch({tagBuilder:n,matchedText:it,offset:Te,number:Yo,plusSign:it.charAt(0)==="+"}))}}else(0,So.assertNever)(Ce)}}}bS.parseMatches=Dit;var Iit=/[\(\{\[]/,l_e=/[\)\}\]]/,u_e={")":"(","}":"{","]":"["};function f_e(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);Iit.test(i)?t[i]++:l_e.test(i)&&t[u_e[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),l_e.test(r)){var s=u_e[r];if(t[s]<0)t[s]++,o--;else break}else if(hr.urlSuffixedCharsNotAllowedAtEndRe.test(r))o--;else break;return e.slice(0,o+1)}bS.excludeUnbalancedTrailingBracesAndPunctuation=f_e;function Fq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function Bq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function Pit(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function Rit(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function Oit(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function Mit(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function kq(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}});var d_e=qn(k4=>{"use strict";Object.defineProperty(k4,"__esModule",{value:!0});k4.parseHtml=void 0;var Ac=(Fm(),Xh(Nm)),sl=_T(),Lit=_S();function Nit(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new km,c=0,u=e.length,f=0,d=0,p=a;c<u;){var g=e.charAt(c);switch(f){case 0:m(g);break;case 1:x(g);break;case 2:T(g);break;case 3:b(g);break;case 4:C(g);break;case 5:A(g);break;case 6:E(g);break;case 7:v(g);break;case 8:D(g);break;case 9:O(g);break;case 10:R(g);break;case 11:M(g);break;case 12:N(g);break;case 13:_(g);break;case 14:S(g);break;case 15:w(g);break;case 16:I(g);break;case 17:L(g);break;case 18:B(g);break;case 19:U(g);break;case 20:V(g);break;default:(0,Lit.assertNever)(f)}c++}d<c&&q();function m(K){K==="<"&&k()}function x(K){K==="!"?f=13:K==="/"?(f=2,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isClosing:!0}))):K==="<"?k():sl.letterRe.test(K)?(f=3,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isOpening:!0}))):(f=0,p=a)}function b(K){sl.whitespaceRe.test(K)?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),f=4):K==="<"?k():K==="/"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),f=12):K===">"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{name:J()})),W()):!sl.letterRe.test(K)&&!sl.digitRe.test(K)&&K!==":"&&G()}function T(K){K===">"?G():sl.letterRe.test(K)?f=3:G()}function C(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K===">"?W():K==="<"?k():K==="="||sl.quoteRe.test(K)||sl.controlCharsRe.test(K)?G():f=5)}function A(K){sl.whitespaceRe.test(K)?f=6:K==="/"?f=12:K==="="?f=7:K===">"?W():K==="<"?k():sl.quoteRe.test(K)&&G()}function E(K){sl.whitespaceRe.test(K)||(K==="/"?f=12:K==="="?f=7:K===">"?W():K==="<"?k():sl.quoteRe.test(K)?G():f=5)}function v(K){sl.whitespaceRe.test(K)||(K==='"'?f=8:K==="'"?f=9:/[>=`]/.test(K)?G():K==="<"?k():f=10)}function D(K){K==='"'&&(f=11)}function O(K){K==="'"&&(f=11)}function R(K){sl.whitespaceRe.test(K)?f=4:K===">"?W():K==="<"&&k()}function M(K){sl.whitespaceRe.test(K)?f=4:K==="/"?f=12:K===">"?W():K==="<"?k():(f=4,j())}function N(K){K===">"?(p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{isClosing:!0})),W()):f=4}function _(K){e.substr(c,2)==="--"?(c+=2,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new km((0,Ac.__assign)((0,Ac.__assign)({},p),{type:"doctype"})),f=20):G()}function S(K){K==="-"?f=15:K===">"?G():f=16}function w(K){K==="-"?f=18:K===">"?G():f=16}function I(K){K==="-"&&(f=17)}function L(K){K==="-"?f=18:f=16}function B(K){K===">"?W():K==="!"?f=19:K==="-"||(f=16)}function U(K){K==="-"?f=17:K===">"?W():f=16}function V(K){K===">"?W():K==="<"&&k()}function G(){f=0,p=a}function k(){f=1,p=new km({idx:c})}function W(){var K=e.slice(d,p.idx);K&&o(K,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function q(){var K=e.slice(d,c);o(K,d),d=c+1}function J(){var K=p.idx+(p.isClosing?2:1);return e.slice(K,c).toLowerCase()}function j(){c--}}k4.parseHtml=Nit;var km=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}()});var V4=qn(Uq=>{"use strict";Object.defineProperty(Uq,"__esModule",{value:!0});var Fit=Spe(),Rs=_S(),Bit=Aq(),kit=A4(),Vit=Vq(),Uit=d_e(),zit=Rq(),Hit=Iq(),Git=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=Wit(t.urls),this.email=(0,Rs.isBoolean)(t.email)?t.email:this.email,this.phone=(0,Rs.isBoolean)(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=(0,Rs.isBoolean)(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=jit(t.stripPrefix),this.stripTrailingSlash=(0,Rs.isBoolean)(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=(0,Rs.isBoolean)(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&zit.mentionServices.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&Hit.hashtagServices.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=qit(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return(0,Uit.parseHtml)(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length,s=o+r;if(n+1<t.length){if(t[n+1].getOffset()===o){var a=t[n+1].getMatchedText().length>r?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="hashtag"}),this.email||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="email"}),this.phone||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="phone"}),this.mention||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||(0,Rs.removeWithPredicate)(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=(0,Vit.parseMatches)(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof kit.HtmlTag)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new Bit.AnchorTagBuilder({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=Fit.version,e}();Uq.default=Git;function Wit(e){return e==null&&(e=!0),(0,Rs.isBoolean)(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:(0,Rs.isBoolean)(e.schemeMatches)?e.schemeMatches:!0,tldMatches:(0,Rs.isBoolean)(e.tldMatches)?e.tldMatches:!0,ipV4Matches:(0,Rs.isBoolean)(e.ipV4Matches)?e.ipV4Matches:!0}}function jit(e){return e==null&&(e=!0),(0,Rs.isBoolean)(e)?{scheme:e,www:e}:{scheme:(0,Rs.isBoolean)(e.scheme)?e.scheme:!0,www:(0,Rs.isBoolean)(e.www)?e.www:!0}}function qit(e){return typeof e=="number"?{length:e,location:"end"}:(0,Rs.defaults)(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}});var m_e=qn(h_e=>{"use strict";Object.defineProperty(h_e,"__esModule",{value:!0})});var p_e=qn(Q_=>{"use strict";Object.defineProperty(Q_,"__esModule",{value:!0});var bT=(Fm(),Xh(Nm));(0,bT.__exportStar)(m_e(),Q_);(0,bT.__exportStar)(Dq(),Q_);(0,bT.__exportStar)(Pq(),Q_);(0,bT.__exportStar)(gT(),Q_);(0,bT.__exportStar)(Oq(),Q_);(0,bT.__exportStar)(Mq(),Q_);(0,bT.__exportStar)(wq(),Q_)});var __e=qn(zq=>{"use strict";Object.defineProperty(zq,"__esModule",{value:!0});var Yit=(Fm(),Xh(Nm));(0,Yit.__exportStar)(Vq(),zq)});var Hq=qn((Eh,y_e)=>{"use strict";Eh=y_e.exports=V4().default;Object.defineProperty(Eh,"__esModule",{value:!0});Eh.Autolinker=void 0;var TS=(Fm(),Xh(Nm)),g_e=(0,TS.__importDefault)(V4());Eh.Autolinker=g_e.default;Eh.default=g_e.default;(0,TS.__exportStar)(V4(),Eh);(0,TS.__exportStar)(Aq(),Eh);(0,TS.__exportStar)(A4(),Eh);(0,TS.__exportStar)(p_e(),Eh);(0,TS.__exportStar)(__e(),Eh)});var zZ=qn((exports,module)=>{/*! + * protobuf.js v7.4.0 (c) 2016, daniel wirtz + * compiled thu, 22 aug 2024 20:30:39 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,u=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(u)if(u=!1,m)p(m);else{for(var x=new Array(arguments.length-1),b=0;b<x.length;)x[b++]=arguments[b];d.apply(null,x)}};try{o.apply(r||null,s)}catch(g){u&&(u=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(u){var f=u.length;if(!f)return 0;for(var d=0;--f%4>1&&u.charAt(f)==="=";)++d;return Math.ceil(u.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(u,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=u[f++];switch(x){case 0:g[m++]=o[T>>2],b=(T&3)<<4,x=1;break;case 1:g[m++]=o[b|T>>4],b=(T&15)<<2,x=2;break;case 2:g[m++]=o[b|T>>6],g[m++]=o[T&63],x=0;break}m>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),m=0)}return x&&(g[m++]=o[b],g[m++]=61,x===1&&(g[m++]=61)),p?(m&&p.push(String.fromCharCode.apply(String,g.slice(0,m))),p.join("")):String.fromCharCode.apply(String,g.slice(0,m))};var a="invalid encoding";i.decode=function(u,f,d){for(var p=d,g=0,m,x=0;x<u.length;){var b=u.charCodeAt(x++);if(b===61&&g>1)break;if((b=r[b])===undefined)throw Error(a);switch(g){case 0:m=b,g=1;break;case 1:f[d++]=m<<2|(b&48)>>4,m=b,g=2;break;case 2:f[d++]=(m&15)<<4|(b&60)>>2,m=b,g=3;break;case 3:f[d++]=(m&3)<<6|b,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(r){var s=this._listeners[r];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var u=new Float32Array([-0]),f=new Uint8Array(u.buffer),d=f[3]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3]}function g(b,T,C){u[0]=b,T[C]=f[3],T[C+1]=f[2],T[C+2]=f[1],T[C+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],u[0]}function x(b,T){return f[3]=b[T],f[2]=b[T+1],f[1]=b[T+2],f[0]=b[T+3],u[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function u(d,p,g,m){var x=p<0?1:0;if(x&&(p=-p),p===0)d(1/p>0?0:2147483648,g,m);else if(isNaN(p))d(2143289344,g,m);else if(p>34028234663852886e22)d((x<<31|2139095040)>>>0,g,m);else if(p<11754943508222875e-54)d((x<<31|Math.round(p/1401298464324817e-60))>>>0,g,m);else{var b=Math.floor(Math.log(p)/Math.LN2),T=Math.round(p*Math.pow(2,-b)*8388608)&8388607;d((x<<31|b+127<<23|T)>>>0,g,m)}}c.writeFloatLE=u.bind(null,o),c.writeFloatBE=u.bind(null,r);function f(d,p,g){var m=d(p,g),x=(m>>31)*2+1,b=m>>>23&255,T=m&8388607;return b===255?T?NaN:x*(1/0):b===0?x*1401298464324817e-60*T:x*Math.pow(2,b-150)*(T+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(b,T,C){u[0]=b,T[C]=f[0],T[C+1]=f[1],T[C+2]=f[2],T[C+3]=f[3],T[C+4]=f[4],T[C+5]=f[5],T[C+6]=f[6],T[C+7]=f[7]}function g(b,T,C){u[0]=b,T[C]=f[7],T[C+1]=f[6],T[C+2]=f[5],T[C+3]=f[4],T[C+4]=f[3],T[C+5]=f[2],T[C+6]=f[1],T[C+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],f[4]=b[T+4],f[5]=b[T+5],f[6]=b[T+6],f[7]=b[T+7],u[0]}function x(b,T){return f[7]=b[T],f[6]=b[T+1],f[5]=b[T+2],f[4]=b[T+3],f[3]=b[T+4],f[2]=b[T+5],f[1]=b[T+6],f[0]=b[T+7],u[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function u(d,p,g,m,x,b){var T=m<0?1:0;if(T&&(m=-m),m===0)d(0,x,b+p),d(1/m>0?0:2147483648,x,b+g);else if(isNaN(m))d(0,x,b+p),d(2146959360,x,b+g);else if(m>17976931348623157e292)d(0,x,b+p),d((T<<31|2146435072)>>>0,x,b+g);else{var C;if(m<22250738585072014e-324)C=m/5e-324,d(C>>>0,x,b+p),d((T<<31|C/4294967296)>>>0,x,b+g);else{var A=Math.floor(Math.log(m)/Math.LN2);A===1024&&(A=1023),C=m*Math.pow(2,-A),d(C*4503599627370496>>>0,x,b+p),d((T<<31|A+1023<<20|C*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),C=(T>>31)*2+1,A=T>>>20&2047,E=4294967296*(T&1048575)+b;return A===2047?E?NaN:C*(1/0):A===0?C*5e-324*E:C*Math.pow(2,A-1075)*(E+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c<r.length;++c)a=r.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(r.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(r,s,a){var c=a-s;if(c<1)return"";for(var u=null,f=[],d=0,p;s<a;)p=r[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d<r.length;++d)u=r.charCodeAt(d),u<128?s[a++]=u:u<2048?(s[a++]=u>>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(m,x){return RangeError("index out of range: "+m.pos+" + "+(x||1)+" > "+m.len)}function c(m){this.buf=m,this.pos=0,this.len=m.length}var u=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},f=function(){return i.Buffer?function(b){return(c.create=function(C){return i.Buffer.isBuffer(C)?new o(C):u(C)})(b)}:u};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function d(){var m=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m;if(m.lo=(m.lo|(this.buf[this.pos]&127)<<28)>>>0,m.hi=(m.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return m;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m}return m.lo=(m.lo|(this.buf[this.pos++]&127)<<x*7)>>>0,m}if(this.len-this.pos>4){for(;x<5;++x)if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(m,x){return(m[x-4]|m[x-3]<<8|m[x-2]<<16|m[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),b=this.pos,T=this.pos+x;if(T>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(b,T);if(b===T){var C=i.Buffer;return C?C.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,b,T)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(m){switch(m){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(m=this.uint32()&7)!==4;)this.skipType(m);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+m+" at offset "+this.pos)}return this},c._configure=function(m){o=m,c.create=f(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[x](!1)},uint64:function(){return d.call(this)[x](!0)},sint64:function(){return d.call(this).zzDecode()[x](!1)},fixed64:function(){return g.call(this)[x](!0)},sfixed64:function(){return g.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(g,m){if(g)return d.emit("error",g,s),f(g);if(m===null)return d.end(!0),undefined;if(!(m instanceof c))try{m=c[d.responseDelimited?"decodeDelimited":"decode"](m)}catch(x){return d.emit("error",x,s),f(x)}return d.emit("data",m,s),f(null,m)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,u){this.lo=c>>>0,this.hi=u>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f<u.length;++f)(s[u[f]]===undefined||!c)&&(s[u[f]]=a[u[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,u){if(!(this instanceof a))return new a(c,u);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),u&&o(this,u)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=r,i.ProtocolError=r("ProtocolError"),i.oneOfGetter=function(a){for(var c={},u=0;u<a.length;++u)c[a[u]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var u=0;u<a.length;++u)a[u]!==c&&delete this[a[u]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,u){return new s(c,u)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),o,r=i.LongBits,s=i.base64,a=i.utf8;function c(A,E,v){this.fn=A,this.len=E,this.next=undefined,this.val=v}function u(){}function f(A){this.head=A.head,this.tail=A.tail,this.len=A.len,this.next=A.states}function d(){this.len=0,this.head=new c(u,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new o})()}:function(){return new d}};d.create=p(),d.alloc=function(E){return new i.Array(E)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(E,v,D){return this.tail=this.tail.next=new c(E,v,D),this.len+=v,this};function g(A,E,v){E[v]=A&255}function m(A,E,v){for(;A>127;)E[v++]=A&127|128,A>>>=7;E[v]=A}function x(A,E){this.len=A,this.next=undefined,this.val=E}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(E){return this.len+=(this.tail=this.tail.next=new x((E=E>>>0)<128?1:E<16384?2:E<2097152?3:E<268435456?4:5,E)).len,this},d.prototype.int32=function(E){return E<0?this._push(b,10,r.fromNumber(E)):this.uint32(E)},d.prototype.sint32=function(E){return this.uint32((E<<1^E>>31)>>>0)};function b(A,E,v){for(;A.hi;)E[v++]=A.lo&127|128,A.lo=(A.lo>>>7|A.hi<<25)>>>0,A.hi>>>=7;for(;A.lo>127;)E[v++]=A.lo&127|128,A.lo=A.lo>>>7;E[v++]=A.lo}d.prototype.uint64=function(E){var v=r.from(E);return this._push(b,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(E){var v=r.from(E).zzEncode();return this._push(b,v.length(),v)},d.prototype.bool=function(E){return this._push(g,1,E?1:0)};function T(A,E,v){E[v]=A&255,E[v+1]=A>>>8&255,E[v+2]=A>>>16&255,E[v+3]=A>>>24}d.prototype.fixed32=function(E){return this._push(T,4,E>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(E){var v=r.from(E);return this._push(T,4,v.lo)._push(T,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(E){return this._push(i.float.writeFloatLE,4,E)},d.prototype.double=function(E){return this._push(i.float.writeDoubleLE,8,E)};var C=i.Array.prototype.set?function(E,v,D){v.set(E,D)}:function(E,v,D){for(var O=0;O<E.length;++O)v[D+O]=E[O]};d.prototype.bytes=function(E){var v=E.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(E)){var D=d.alloc(v=s.length(E));s.decode(E,D,0),E=D}return this.uint32(v)._push(C,v,E)},d.prototype.string=function(E){var v=a.length(E);return v?this.uint32(v)._push(a.write,v,E):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var E=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=E.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var E=this.head.next,v=this.constructor.alloc(this.len),D=0;E;)E.fn(E.val,v,D),D+=E.len,E=E.next;return v},d._configure=function(A){o=A,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d<c.length;)u[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var u=c.length>>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var PAe=qn((yki,BG)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),m=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,x=r(g,d.pixelType||Float32Array,d.encodedMaskData,m,d.returnMask),b={width:g.width,height:g.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:g.pixels.maxValue,noDataValue:m};return x.resultMask&&(b.maskData=x.resultMask),d.returnEncodedMask&&g.mask&&(b.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(b.fileInfo=s(g),d.computeUsedBitDepths&&(b.fileInfo.bitDepths=a(g))),b};var r=function(f,d,p,g,m){var x=0,b=f.pixels.numBlocksX,T=f.pixels.numBlocksY,C=Math.floor(f.width/b),A=Math.floor(f.height/T),E=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,R;O=new d(f.width*f.height),m&&p&&(R=new Uint8Array(f.width*f.height));for(var M=new Float32Array(C*A),N,_,S=0;S<=T;S++){var w=S!==T?A:f.height%T;if(w!==0)for(var I=0;I<=b;I++){var L=I!==b?C:f.width%b;if(L!==0){var B=S*f.width*A+I*C,U=f.width-L,V=f.pixels.blocks[x],G,k,W;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,E,M,f.pixels.maxValue),G=M),k=0):V.encoding===2?W=0:W=V.offset;var q;if(p)for(_=0;_<w;_++){for(B&7&&(q=p[B>>3],q<<=B&7),N=0;N<L;N++)B&7||(q=p[B>>3]),q&128?(R&&(R[B]=1),D=V.encoding<2?G[k++]:W,v=v>D?D:v,O[B++]=D):(R&&(R[B]=0),O[B++]=g),q<<=1;B+=U}else if(V.encoding<2)for(_=0;_<w;_++){for(N=0;N<L;N++)D=G[k++],v=v>D?D:v,O[B++]=D;B+=U}else for(v=v>W?W:v,_=0;_<w;_++){for(N=0;N<L;N++)O[B++]=W;B+=U}if(V.encoding===1&&k!==V.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:R,minValue:v}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var m=f.pixels.blocks[g];m.encoding===0?p.float32=!0:m.encoding===1?p[m.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},m=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,m),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var x=new DataView(f,d,24);if(g.fileVersion=x.getInt32(0,!0),g.imageType=x.getInt32(4,!0),g.height=x.getUint32(8,!0),g.width=x.getUint32(12,!0),g.maxZError=x.getFloat64(16,!0),d+=24,!p)if(x=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=x.getUint32(0,!0),g.mask.numBlocksX=x.getUint32(4,!0),g.mask.numBytes=x.getUint32(8,!0),g.mask.maxValue=x.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var b=new Uint8Array(Math.ceil(g.width*g.height/8));x=new DataView(f,d,g.mask.numBytes);var T=x.getInt16(0,!0),C=2,A=0;do{if(T>0)for(;T--;)b[A++]=x.getUint8(C++);else{var E=x.getUint8(C++);for(T=-T;T--;)b[A++]=E}T=x.getInt16(C,!0),C+=2}while(C<g.mask.numBytes);if(T!==-32768||A<b.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=b,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));x=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=x.getUint32(0,!0),g.pixels.numBlocksX=x.getUint32(4,!0),g.pixels.numBytes=x.getUint32(8,!0),g.pixels.maxValue=x.getFloat32(12,!0),d+=16;var v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=v+(g.width%v>0?1:0),R=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*R);for(var M=0,N=0;N<R;N++)for(var _=0;_<O;_++){var S=0,w=f.byteLength-d;x=new DataView(f,d,Math.min(10,w));var I={};g.pixels.blocks[M++]=I;var L=x.getUint8(0);if(S++,I.encoding=L&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(L!==0&&L!==2){if(L>>=6,I.offsetType=L,L===2)I.offset=x.getInt8(1),S++;else if(L===1)I.offset=x.getInt16(1,!0),S+=2;else if(L===0)I.offset=x.getFloat32(1,!0),S+=4;else throw"Invalid block offset type";if(I.encoding===1)if(L=x.getUint8(S),S++,I.bitsPerPixel=L&63,L>>=6,I.numValidPixelsType=L,L===2)I.numValidPixels=x.getUint8(S),S++;else if(L===1)I.numValidPixels=x.getUint16(S,!0),S+=2;else if(L===0)I.numValidPixels=x.getUint32(S,!0),S+=4;else throw"Invalid valid pixel count type"}if(d+=S,I.encoding!==3){var B,U;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";B=new ArrayBuffer(V*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,V*4));var G=new Float32Array(B);I.rawData=G,d+=V*4}else if(I.encoding===1){var k=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),W=Math.ceil(k/4);B=new ArrayBuffer(W*4),U=new Uint8Array(B),U.set(new Uint8Array(f,d,k)),I.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},u=function(f,d,p,g,m,x,b){var T=(1<<d)-1,C=0,A,E=0,v,D,O=Math.ceil((b-g)/m),R=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*R,A=0;A<p;A++){if(E===0&&(D=f[C++],E=32),E>=d)v=D>>>E-d&T,E-=d;else{var M=d-E;v=(D&T)<<M&T,D=f[C++],E=32-M,v+=D>>>E}x[A]=v<O?g+v*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E,v,D,O,R=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*R,p)for(C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=p[E];else for(O=Math.ceil((x-g)/m),C=0;C<d;C++)A===0&&(v=c[T++],A=32),A>=f?(E=v>>>A-f&b,A-=f):(D=f-A,E=(v&b)<<D&b,v=c[T++],A=32-D,E+=v>>>A),u[C]=E<O?g+E*m:x},unstuffLUT:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E,v=[],D=c.length*4-Math.ceil(u*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(E=c[x++],C=32),C>=u?(A=E>>>C-u&m,C-=u):(T=u-C,A=(E&m)<<T&m,E=c[x++],C=32-T,A+=E>>>C),v[b]=A<O?d+A*p:g;return v.unshift(d),v},unstuff2:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,C,A=0,E=0,v,D,O;if(p)for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=p[v];else{var R=Math.ceil((x-g)/m);for(C=0;C<d;C++)A===0&&(D=c[T++],A=32,E=0),A>=f?(v=D>>>E&b,A-=f,E+=f):(O=f-A,v=D>>>E&b,D=c[T++],A=32-O,v|=(D&(1<<O)-1)<<f-O,E=O),u[C]=v<R?g+v*m:x}return u},unstuffLUT2:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,C=0,A=0,E=0,v,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)C===0&&(v=c[x++],C=32,E=0),C>=u?(A=v>>>E&m,C-=u,E+=u):(T=u-C,A=v>>>E&m,v=c[x++],C=32-T,A|=(v&(1<<T)-1)<<u-T,E=T),D[b]=A<O?d+A*p:g;return D.unshift(d),D},originalUnstuff:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,C,A=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*A,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(C=f-x,b=(T&p)<<C&p,T=c[g++],x=32-C,b+=T>>>x),u[m]=b;return u},originalUnstuff2:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,C,A;for(m=0;m<d;m++)x===0&&(C=c[g++],x=32,b=0),x>=f?(T=C>>>b&p,x-=f,b+=f):(A=f-x,T=C>>>b&p,C=c[g++],x=32-A,T|=(C&(1<<A)-1)<<f-A,b=A),u[m]=T;return u}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var u=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do u+=c[g++]<<8,f+=u+=c[g++];while(--m);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),m=g.getInt32(0,!0);p.fileVersion=m,f+=4,m>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,m>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,u.headerInfo=p,u.ptr=f;var x,b;if(m>=3&&(b=m>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,f-b,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),m=this.readSubArray(c,u.ptr+p,d,p);u.ptr+=2*p;var x,b=!0;for(x=0;x<f.numDims;x++)if(g[x]!==m[x]){b=!1;break}return f.minValues=g,f.maxValues=m,b},readSubArray:function(c,u,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,u,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,u,d)),p=new f(g)}return p},readMask:function(c,u){var f=u.ptr,d=u.headerInfo,p=d.width*d.height,g=d.numValidPixel,m=new DataView(c,f,4),x={};if(x.numBytes=m.getUint32(0,!0),f+=4,(g===0||p===g)&&x.numBytes!==0)throw"invalid mask";var b,T;if(g===0)b=new Uint8Array(Math.ceil(p/8)),x.bitset=b,T=new Uint8Array(p),u.pixels.resultMask=T,f+=x.numBytes;else if(x.numBytes>0){b=new Uint8Array(Math.ceil(p/8)),m=new DataView(c,f,x.numBytes);var C=m.getInt16(0,!0),A=2,E=0,v=0;do{if(C>0)for(;C--;)b[E++]=m.getUint8(A++);else for(v=m.getUint8(A++),C=-C;C--;)b[E++]=v;C=m.getInt16(A,!0),A+=2}while(A<x.numBytes);if(C!==-32768||E<b.length)throw"Unexpected end of mask RLE encoding";T=new Uint8Array(p);var D=0,O=0;for(O=0;O<p;O++)O&7?(D=b[O>>3],D<<=O&7):D=b[O>>3],D&128&&(T[O]=1);u.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return u.ptr=f,u.mask=x,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,C=u.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var A=new ArrayBuffer(b),E=new Uint8Array(A);E.set(new Uint8Array(c,d,b)),T=new f(A)}if(T.length===m*g)u.pixels.resultPixels=T;else{u.pixels.resultPixels=new f(m*g);var v=0,D=0,O=0,R=0;if(g>1)for(O=0;O<g;O++)for(R=O*m,D=0;D<m;D++)C[D]&&(u.pixels.resultPixels[R+D]=T[v++]);else for(D=0;D<m;D++)C[D]&&(u.pixels.resultPixels[D]=T[v++])}return d+=b,u.ptr=d,!0},readHuffmanTree:function(c,u){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,u.ptr,16);u.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),m=d.getInt32(8,!0),x=d.getInt32(12,!0);if(m>=x)return!1;var b=new Uint32Array(x-m);r.decodeBits(c,u,b);var T=[],C,A,E,v;for(C=m;C<x;C++)A=C-(C<g?0:g),T[A]={first:b[C-m],second:null};var D=c.byteLength-u.ptr,O=Math.ceil(D/4),R=new ArrayBuffer(O*4),M=new Uint8Array(R);M.set(new Uint8Array(c,u.ptr,D));var N=new Uint32Array(R),_=0,S,w=0;for(S=N[0],C=m;C<x;C++)A=C-(C<g?0:g),v=T[A].first,v>0&&(T[A].second=S<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,S=N[w])):(_+=v-32,w++,S=N[w],T[A].second|=S>>>32-_));var I=0,L=0,B=new s;for(C=0;C<T.length;C++)T[C]!==void 0&&(I=Math.max(I,T[C].first));I>=f?L=f:L=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var U=[],V,G,k,W,q,J;for(C=m;C<x;C++)if(A=C-(C<g?0:g),v=T[A].first,v>0)if(V=[v,A],v<=L)for(G=T[A].second<<L-v,k=1<<L-v,E=0;E<k;E++)U[G|E]=V;else for(G=T[A].second,J=B,W=v-1;W>=0;W--)q=G>>>W&1,q?(J.right||(J.right=new s),J=J.right):(J.left||(J.left=new s),J=J.left),W===0&&!J.val&&(J.val=V[1]);return{decodeLut:U,numBitsLUTQick:L,numBitsLUT:I,tree:B,stuffedData:N,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,m=u.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,u),T=b.decodeLut,C=b.tree,A=b.stuffedData,E=b.srcPtr,v=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,R=u.headerInfo.imageType===0?128:0,M,N,_,S=u.pixels.resultMask,w,I,L,B,U,V,G,k=0;v>0&&(E++,v=0);var W=A[E],q=u.encodeMode===1,J=new f(x*p),j=J,K;for(K=0;K<d.numDims;K++){if(p>1&&(j=new f(J.buffer,x*K,x),k=0),u.headerInfo.numValidPixel===m*g)for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++){if(N=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=A[E+1]>>>64-v-D,I=w),T[I])N=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=A[E+1]>>>64-v-O,I=w),M=C,G=0;G<O;G++)if(L=w>>>O-G-1&1,M=L?M.right:M.left,!(M.left||M.right)){N=M.val,v=v+G+1;break}v>=32&&(v-=32,E++,W=A[E]),_=N-R,q?(U>0?_+=k:B>0?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}else for(V=0,B=0;B<g;B++)for(U=0;U<m;U++,V++)if(S[V]){if(N=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=A[E+1]>>>64-v-D,I=w),T[I])N=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=A[E+1]>>>64-v-O,I=w),M=C,G=0;G<O;G++)if(L=w>>>O-G-1&1,M=L?M.right:M.left,!(M.left||M.right)){N=M.val,v=v+G+1;break}v>=32&&(v-=32,E++,W=A[E]),_=N-R,q?(U>0&&S[V-1]?_+=k:B>0&&S[V-m]?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}u.ptr=u.ptr+(E+1)*4+(v>0?4:0)}u.pixels.resultPixels=J},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,u.ptr,5),T=b.getUint8(0);x++;var C=T>>6,A=C===0?4:3-C,E=(T&32)>0,v=T&31,D=0;if(A===1)D=b.getUint8(x),x++;else if(A===2)D=b.getUint16(x,!0),x+=2;else if(A===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,R,M,N,_,S,w,I,L,B,U,V=g.numDims>1?g.maxValues[p]:g.zMax;if(E){for(u.counter.lut++,L=b.getUint8(x),B=v,x++,_=Math.ceil((L-1)*v/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),u.ptr+=x,N.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(M),u.ptr+=_,U=0;L-1>>>U;)U++;_=Math.ceil(D*U/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),N.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?w=o.unstuffLUT2(I,v,L-1,d,O,V):w=o.unstuffLUT(I,v,L-1,d,O,V),m>=3?o.unstuff2(R,f,U,D,w):o.unstuff(R,f,U,D,w)}else u.counter.bitstuffer++,U=v,u.ptr+=x,U>0&&(_=Math.ceil(D*U/8),S=Math.ceil(_/4),M=new ArrayBuffer(S*4),N=new Uint8Array(M),N.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?d==null?o.originalUnstuff2(R,f,U,D):o.unstuff2(R,f,U,D,!1,d,O,V):d==null?o.originalUnstuff(R,f,U,D):o.unstuff(R,f,U,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),C=Math.ceil(g/m);u.pixels.numBlocksY=C,u.pixels.numBlocksX=T,u.pixels.ptr=0;var A=0,E=0,v=0,D=0,O=0,R=0,M=0,N=0,_=0,S=0,w=0,I=0,L=0,B=0,U=0,V=0,G,k,W,q,J,j,K=new f(m*m),Q=g%m||m,de=p%m||m,ye,ae,_e=d.numDims,xe,De=u.pixels.resultMask,Ae=u.pixels.resultPixels;for(v=0;v<C;v++)for(O=v!==C-1?m:Q,D=0;D<T;D++)for(R=D!==T-1?m:de,w=v*p*m+D*m,I=p-R,xe=0;xe<_e;xe++){if(_e>1&&(Ae=new f(u.pixels.resultPixels.buffer,p*g*xe*b,p*g)),M=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,M)),k={},V=0,N=G.getUint8(0),V++,_=N>>6&255,S=N>>2&15,S!==(D*m>>3&15))throw"integrity issue";if(j=N&3,j>3)throw u.ptr+=V,"Invalid block encoding ("+j+")";if(j===2){u.counter.constant++,u.ptr+=V;continue}else if(j===0){if(u.counter.uncompressed++,u.ptr+=V,L=O*R*b,B=c.byteLength-u.ptr,L=L<B?L:B,W=new ArrayBuffer(L%b===0?L:L+b-L%b),q=new Uint8Array(W),q.set(new Uint8Array(c,u.ptr,L)),J=new f(W),U=0,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=J[U++]),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=J[U++];w+=I}u.ptr+=U*b}else if(ye=r.getDataTypeUsed(x,_),ae=r.getOnePixel(k,V,ye,G),V+=r.getDataTypeSize(ye),j===3)if(u.ptr+=V,u.counter.constantoffset++,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=ae),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=ae;w+=I}else if(u.ptr+=V,r.decodeBits(c,u,K,ae,xe),V=0,De)for(A=0;A<O;A++){for(E=0;E<R;E++)De[w]&&(Ae[w]=K[V++]),w++;w+=I}else for(A=0;A<O;A++){for(E=0;E<R;E++)Ae[w++]=K[V++];w+=I}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:r.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var u=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,m=0,x=0,b=c.pixels.resultMask;if(b)if(f>1)for(g=0;g<f;g++)for(x=g*d,m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[x+m]=u);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=u);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(u);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=u},getDataTypeArray:function(c){var u;switch(c){case 0:u=Int8Array;break;case 1:u=Uint8Array;break;case 2:u=Int16Array;break;case 3:u=Uint16Array;break;case 4:u=Int32Array;break;case 5:u=Uint32Array;break;case 6:u=Float32Array;break;case 7:u=Float64Array;break;default:u=Float32Array}return u},getPixelType:function(c){var u;switch(c){case 0:u="S8";break;case 1:u="U8";break;case 2:u="S16";break;case 3:u="U16";break;case 4:u="S32";break;case 5:u="U32";break;case 6:u="F32";break;case 7:u="F64";break;default:u="F32"}return u},isValidPixelValue:function(c,u){if(u==null)return!1;var f;switch(c){case 0:f=u>=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,m=g.fileVersion,x=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=u.maskData);var b=g.width*g.height;if(p.pixels.resultPixels=new x(b*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(m>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var T=new DataView(c,p.ptr,2),C=T.getUint8(0);if(p.ptr++,C)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var A=T.getUint8(1);if(p.ptr++,p.encodeMode=A,A>2||m<4&&A>1)throw"Invalid Huffman flag "+A;A?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var E;u.inputOffset?(E=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(E)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(E=p.headerInfo.blobSize-p.ptr,Math.abs(E)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<b;d++)D[d]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,u.returnFileInfo&&(v.fileInfo=r.formatFileInfo(p)),v}},getBandCount:function(c){var u=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,u++,d.ptr=f;return u}};return a}(),n=function(){var o=new ArrayBuffer(4),r=new Uint8Array(o),s=new Uint32Array(o);return s[0]=1,r[0]===1}(),i={decode:function(o,r){if(!n)throw"Big endian system is not supported.";r=r||{};var s=r.inputOffset||0,a=new Uint8Array(o,s,10),c=String.fromCharCode.apply(null,a),u,f;if(c.trim()==="CntZImage")u=e,f=1;else if(c.substring(0,5)==="Lerc2")u=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=o.byteLength-10,g,m=[],x,b,T={width:0,height:0,pixels:[],pixelType:r.pixelType,mask:null,statistics:[]};s<p;){var C=u.decode(o,{inputOffset:s,encodedMaskData:g,maskData:b,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:r.pixelType||null,noDataValue:r.noDataValue||null});s=C.fileInfo.eofOffset,d===0&&(g=C.encodedMaskData,b=C.maskData,T.width=C.width,T.height=C.height,T.dimCount=C.dimCount||1,T.pixelType=C.pixelType||C.fileInfo.pixelType,T.mask=C.maskData),f>1&&C.fileInfo.mask&&C.fileInfo.mask.numBytes>0&&m.push(C.maskData),d++,T.pixels.push(C.pixelData),T.statistics.push({minValue:C.minValue,maxValue:C.maxValue,noDataValue:C.noDataValue,dimStats:C.dimStats})}var A,E,v;if(f>1&&m.length>1){for(v=T.width*T.height,T.bandMasks=m,b=new Uint8Array(v),b.set(m[0]),A=1;A<m.length;A++)for(x=m[A],E=0;E<v;E++)b[E]=b[E]&x[E];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof BG<"u"&&BG.exports?BG.exports=i:this.Lerc=i})()});var yEe=qn((Kk,vQ)=>{/*! NoSleep.min.js v0.12.0 - git.io/vfn01 - Rich Tibbett - MIT license */(function(e,t){typeof Kk=="object"&&typeof vQ=="object"?vQ.exports=t():typeof define=="function"&&define.amd?define([],t):typeof Kk=="object"?Kk.NoSleep=t():e.NoSleep=t()})(Kk,function(){return function(e){var t={};function n(i){if(t[i])return t[i].exports;var o=t[i]={i,l:!1,exports:{}};return e[i].call(o.exports,o,o.exports,n),o.l=!0,o.exports}return n.m=e,n.c=t,n.d=function(i,o,r){n.o(i,o)||Object.defineProperty(i,o,{enumerable:!0,get:r})},n.r=function(i){typeof Symbol<"u"&&Symbol.toStringTag&&Object.defineProperty(i,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(i,"__esModule",{value:!0})},n.t=function(i,o){if(1&o&&(i=n(i)),8&o||4&o&&typeof i=="object"&&i&&i.__esModule)return i;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:i}),2&o&&typeof i!="string")for(var s in i)n.d(r,s,function(a){return i[a]}.bind(null,s));return r},n.n=function(i){var o=i&&i.__esModule?function(){return i.default}:function(){return i};return n.d(o,"a",o),o},n.o=function(i,o){return Object.prototype.hasOwnProperty.call(i,o)},n.p="",n(n.s=0)}([function(e,t,n){"use strict";var i=function(){function f(d,p){for(var g=0;g<p.length;g++){var m=p[g];m.enumerable=m.enumerable||!1,m.configurable=!0,"value"in m&&(m.writable=!0),Object.defineProperty(d,m.key,m)}}return function(d,p,g){return p&&f(d.prototype,p),g&&f(d,g),d}}(),o=n(1),r=o.webm,s=o.mp4,a=function(){return typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream},c=function(){return"wakeLock"in navigator},u=function(){function f(){var d=this;if(function(g,m){if(!(g instanceof m))throw new TypeError("Cannot call a class as a function")}(this,f),this.enabled=!1,c()){this._wakeLock=null;var p=function(){d._wakeLock!==null&&document.visibilityState==="visible"&&d.enable()};document.addEventListener("visibilitychange",p),document.addEventListener("fullscreenchange",p)}else a()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",r),this._addSourceToVideo(this.noSleepVideo,"mp4",s),this.noSleepVideo.addEventListener("loadedmetadata",function(){d.noSleepVideo.duration<=1?d.noSleepVideo.setAttribute("loop",""):d.noSleepVideo.addEventListener("timeupdate",function(){d.noSleepVideo.currentTime>.5&&(d.noSleepVideo.currentTime=Math.random())})}))}return i(f,[{key:"_addSourceToVideo",value:function(d,p,g){var m=document.createElement("source");m.src=g,m.type="video/"+p,d.appendChild(m)}},{key:"enable",value:function(){var d=this;return c()?navigator.wakeLock.request("screen").then(function(p){d._wakeLock=p,d.enabled=!0,console.log("Wake Lock active."),d._wakeLock.addEventListener("release",function(){console.log("Wake Lock released.")})}).catch(function(p){throw d.enabled=!1,console.error(p.name+", "+p.message),p}):a()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(function(){document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(function(p){return d.enabled=!0,p}).catch(function(p){throw d.enabled=!1,p})}},{key:"disable",value:function(){c()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):a()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}},{key:"isEnabled",get:function(){return this.enabled}}]),f}();e.exports=u},function(e,t,n){"use strict";e.exports={webm:"data:video/webm;base64,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",mp4:"data:video/mp4;base64,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"}}])})});var Vvt={};BQ(Vvt,{AlphaMode:()=>pm,AlphaPipelineStage:()=>wO,AnchorPointDirect:()=>RR,AnchorPointIndirect:()=>OR,Animation:()=>hk,AnimationViewModel:()=>mk,Appearance:()=>no,ApproximateTerrainHeights:()=>li,ArcGISTiledElevationTerrainProvider:()=>SZ,ArcGisBaseMapType:()=>Oh,ArcGisMapServerImageryProvider:()=>rg,ArcGisMapService:()=>Yu,ArcType:()=>Jt,ArticulationStageType:()=>hc,AssociativeArray:()=>Et,Atmosphere:()=>_b,AtmospherePipelineStage:()=>aO,AttributeCompression:()=>Mn,AttributeType:()=>on,AutoExposure:()=>mB,AutomaticUniforms:()=>_p,Axis:()=>Oo,AxisAlignedBoundingBox:()=>Gg,B3dmLoader:()=>jR,B3dmParser:()=>HR,BaseLayerPicker:()=>_k,BaseLayerPickerViewModel:()=>pk,BatchTable:()=>Ex,BatchTableHierarchy:()=>Xx,BatchTexture:()=>Kc,BatchTexturePipelineStage:()=>DO,Billboard:()=>co,BillboardCollection:()=>wu,BillboardGraphics:()=>oc,BillboardVisualizer:()=>mP,BingMapsGeocoderService:()=>wZ,BingMapsImageryProvider:()=>LF,BingMapsStyle:()=>US,BlendEquation:()=>Pa,BlendFunction:()=>Co,BlendOption:()=>Eo,BlendingState:()=>un,BoundingRectangle:()=>je,BoundingSphere:()=>se,BoundingSphereState:()=>ct,BoundingVolumeSemantics:()=>fb,BoxEmitter:()=>p$,BoxGeometry:()=>Da,BoxGeometryUpdater:()=>S1,BoxGraphics:()=>Ox,BoxOutlineGeometry:()=>Md,BrdfLutGenerator:()=>h2,Buffer:()=>_t,BufferLoader:()=>eb,BufferUsage:()=>Fe,CPUStylingPipelineStage:()=>OO,CallbackPositionProperty:()=>v1,CallbackProperty:()=>Vd,Camera:()=>ro,CameraEventAggregator:()=>TB,CameraEventType:()=>Li,CameraFlightPath:()=>p2,Cartesian2:()=>z,Cartesian3:()=>h,Cartesian4:()=>oe,Cartographic:()=>fe,CartographicGeocoderService:()=>IZ,CatmullRomSpline:()=>PZ,Cesium3DContentGroup:()=>Yx,Cesium3DTile:()=>Xf,Cesium3DTileBatchTable:()=>Gp,Cesium3DTileColorBlendMode:()=>Ml,Cesium3DTileContent:()=>_$,Cesium3DTileContentFactory:()=>Pb,Cesium3DTileContentState:()=>jo,Cesium3DTileContentType:()=>ws,Cesium3DTileFeature:()=>Ws,Cesium3DTileFeatureTable:()=>Jd,Cesium3DTileOptimizationHint:()=>Hf,Cesium3DTileOptimizations:()=>pL,Cesium3DTilePass:()=>Fo,Cesium3DTilePassState:()=>hd,Cesium3DTilePointFeature:()=>g_,Cesium3DTileRefine:()=>Go,Cesium3DTileStyle:()=>bC,Cesium3DTileStyleEngine:()=>TL,Cesium3DTilesInspector:()=>Ck,Cesium3DTilesInspectorViewModel:()=>Tk,Cesium3DTilesVoxelProvider:()=>g$,Cesium3DTileset:()=>ha,Cesium3DTilesetBaseTraversal:()=>wL,Cesium3DTilesetCache:()=>yL,Cesium3DTilesetGraphics:()=>Vx,Cesium3DTilesetHeatmap:()=>xL,Cesium3DTilesetMetadata:()=>Ub,Cesium3DTilesetMostDetailedTraversal:()=>EL,Cesium3DTilesetSkipTraversal:()=>PL,Cesium3DTilesetStatistics:()=>R_,Cesium3DTilesetTraversal:()=>Zs,Cesium3DTilesetVisualizer:()=>RL,CesiumInspector:()=>Sk,CesiumInspectorViewModel:()=>Ek,CesiumTerrainProvider:()=>mC,CesiumWidget:()=>x3,Check:()=>xo,CheckerboardMaterialProperty:()=>bE,CircleEmitter:()=>V3,CircleGeometry:()=>FZ,CircleOutlineGeometry:()=>BZ,ClassificationModelDrawCommand:()=>EM,ClassificationPipelineStage:()=>IO,ClassificationPrimitive:()=>sA,ClassificationType:()=>Vn,ClearCommand:()=>ei,ClippingPlane:()=>db,ClippingPlaneCollection:()=>_s,ClippingPolygon:()=>NA,ClippingPolygonCollection:()=>Kd,Clock:()=>hh,ClockRange:()=>Wr,ClockStep:()=>mo,ClockViewModel:()=>lk,CloudCollection:()=>A$,CloudType:()=>Fv,Color:()=>H,ColorBlendMode:()=>dc,ColorGeometryInstanceAttribute:()=>Wt,ColorMaterialProperty:()=>Ut,Command:()=>dQ,ComponentDatatype:()=>X,Composite3DTileContent:()=>N1,CompositeEntityCollection:()=>i7,CompositeMaterialProperty:()=>CE,CompositePositionProperty:()=>ma,CompositeProperty:()=>yc,CompressedTextureBuffer:()=>pw,ComputeCommand:()=>Nc,ComputeEngine:()=>mw,ConditionsExpression:()=>N3,ConeEmitter:()=>S$,ConstantPositionProperty:()=>Gc,ConstantProperty:()=>Kn,ConstantSpline:()=>KR,ContentMetadata:()=>sL,Context:()=>aP,ContextLimits:()=>kt,CoplanarPolygonGeometry:()=>pN,CoplanarPolygonGeometryLibrary:()=>S_,CoplanarPolygonOutlineGeometry:()=>Yf,CornerType:()=>Pi,CorrelationGroup:()=>MR,CorridorGeometry:()=>qb,CorridorGeometryLibrary:()=>Hi,CorridorGeometryUpdater:()=>UL,CorridorGraphics:()=>Lx,CorridorOutlineGeometry:()=>VL,Credit:()=>vt,CreditDisplay:()=>x2,CubeMap:()=>br,CubeMapFace:()=>Sw,CubicRealPolynomial:()=>ux,CullFace:()=>gi,CullingVolume:()=>ps,CumulusCloud:()=>sf,CustomDataSource:()=>qL,CustomHeightmapTerrainProvider:()=>kZ,CustomShader:()=>sC,CustomShaderMode:()=>m_,CustomShaderPipelineStage:()=>VO,CustomShaderTranslucencyMode:()=>vy,CylinderGeometry:()=>YL,CylinderGeometryLibrary:()=>Yb,CylinderGeometryUpdater:()=>KL,CylinderGraphics:()=>Nx,CylinderOutlineGeometry:()=>XL,CzmlDataSource:()=>rN,DataSource:()=>Gr,DataSourceClock:()=>mh,DataSourceCollection:()=>sN,DataSourceDisplay:()=>WN,DebugAppearance:()=>v$,DebugCameraPrimitive:()=>Jm,DebugInspector:()=>IB,DebugModelMatrixPrimitive:()=>z3,DefaultProxy:()=>VZ,DepthFunction:()=>rc,DepthPlane:()=>w2,DequantizationPipelineStage:()=>zO,DerivedCommand:()=>ep,DeveloperError:()=>he,DeviceOrientationCameraController:()=>D2,DirectionalLight:()=>w$,DiscardEmptyTileImagePolicy:()=>zS,DiscardMissingTileImagePolicy:()=>OF,DistanceDisplayCondition:()=>Lt,DistanceDisplayConditionGeometryInstanceAttribute:()=>kn,DoubleEndedPriorityQueue:()=>oC,DoublyLinkedList:()=>gL,DracoLoader:()=>Zp,DrawCommand:()=>Ze,DynamicAtmosphereLightingType:()=>t_,DynamicEnvironmentMapManager:()=>i_,DynamicGeometryBatch:()=>tT,DynamicGeometryUpdater:()=>ni,EarthOrientationParameters:()=>rw,EarthOrientationParametersSample:()=>Dg,EasingFunction:()=>qr,EllipseGeometry:()=>rl,EllipseGeometryLibrary:()=>ql,EllipseGeometryUpdater:()=>cN,EllipseGraphics:()=>Fx,EllipseOutlineGeometry:()=>ku,Ellipsoid:()=>ee,EllipsoidGeodesic:()=>Op,EllipsoidGeometry:()=>Qs,EllipsoidGeometryUpdater:()=>uN,EllipsoidGraphics:()=>Bx,EllipsoidOutlineGeometry:()=>Iu,EllipsoidPrimitive:()=>a2,EllipsoidRhumbLine:()=>Ra,EllipsoidSurfaceAppearance:()=>D$,EllipsoidTangentPlane:()=>$r,EllipsoidTerrainProvider:()=>Km,EllipsoidalOccluder:()=>B_,Empty3DTileContent:()=>aE,EncodedCartesian3:()=>Gn,Entity:()=>er,EntityCluster:()=>Ou,EntityCollection:()=>$s,EntityView:()=>qN,Event:()=>me,EventHelper:()=>fr,Expression:()=>If,ExpressionNodeType:()=>ht,ExtrapolationType:()=>Lu,FeatureDetection:()=>Ht,FeatureIdPipelineStage:()=>Sy,Fog:()=>I2,ForEach:()=>Pe,FrameRateMonitor:()=>W3,FrameState:()=>P2,Framebuffer:()=>Mr,FramebufferManager:()=>hi,FrustumCommands:()=>N2,FrustumGeometry:()=>BT,FrustumOutlineGeometry:()=>C2,Fullscreen:()=>gr,FullscreenButton:()=>wk,FullscreenButtonViewModel:()=>vk,GeoJsonDataSource:()=>KN,GeoJsonLoader:()=>qR,GeocodeType:()=>k0,Geocoder:()=>Ik,GeocoderService:()=>Rv,GeocoderViewModel:()=>Dk,GeographicProjection:()=>vi,GeographicTilingScheme:()=>Yi,Geometry:()=>at,Geometry3DTileContent:()=>B1,GeometryAttribute:()=>Se,GeometryAttributes:()=>fn,GeometryFactory:()=>UZ,GeometryInstance:()=>St,GeometryInstanceAttribute:()=>sc,GeometryOffsetAttribute:()=>an,GeometryPipeline:()=>Ln,GeometryPipelineStage:()=>jO,GeometryType:()=>gf,GeometryUpdater:()=>ii,GeometryUpdaterSet:()=>dT,GeometryVisualizer:()=>ON,GetFeatureInfoFormat:()=>MT,Globe:()=>i2,GlobeDepth:()=>F2,GlobeSurfaceShaderSet:()=>RF,GlobeSurfaceTile:()=>ud,GlobeSurfaceTileProvider:()=>YF,GlobeTranslucency:()=>XF,GlobeTranslucencyFramebuffer:()=>B2,GlobeTranslucencyState:()=>R2,GltfBufferViewLoader:()=>xA,GltfDracoLoader:()=>bA,GltfGpmLoader:()=>NR,GltfGpmLocal:()=>BA,GltfImageLoader:()=>TA,GltfIndexBufferLoader:()=>CA,GltfJsonLoader:()=>EA,GltfLoader:()=>s_,GltfLoaderUtil:()=>Bl,GltfMeshPrimitiveGpmLoader:()=>VR,GltfStructuralMetadataLoader:()=>IR,GltfTextureLoader:()=>SA,GltfVertexBufferLoader:()=>vA,GoogleEarthEnterpriseImageryProvider:()=>P$,GoogleEarthEnterpriseMapsProvider:()=>BF,GoogleEarthEnterpriseMetadata:()=>Ag,GoogleEarthEnterpriseTerrainData:()=>Ov,GoogleEarthEnterpriseTerrainProvider:()=>XZ,GoogleEarthEnterpriseTileInformation:()=>w3,GoogleMaps:()=>_C,GpxDataSource:()=>JN,GregorianDate:()=>yp,GridImageryProvider:()=>R$,GridMaterialProperty:()=>OE,GroundGeometryUpdater:()=>Wn,GroundPolylineGeometry:()=>Dx,GroundPolylinePrimitive:()=>Ld,GroundPrimitive:()=>zc,GroupMetadata:()=>gE,HeadingPitchRange:()=>od,HeadingPitchRoll:()=>Sa,Heap:()=>tw,HeightReference:()=>Ye,HeightmapEncoding:()=>ad,HeightmapTerrainData:()=>za,HeightmapTessellator:()=>NS,HermitePolynomialApproximation:()=>ZL,HermiteSpline:()=>Cy,HilbertOrder:()=>pA,HomeButton:()=>Rk,HomeButtonViewModel:()=>Pk,HorizontalOrigin:()=>_i,I3SBuildingSceneLayerExplorer:()=>TQ,I3SBuildingSceneLayerExplorerViewModel:()=>Ok,I3SDataProvider:()=>jh,I3SDecoder:()=>j3,I3SFeature:()=>q3,I3SField:()=>Y3,I3SGeometry:()=>Bv,I3SLayer:()=>SC,I3SNode:()=>kv,I3SStatistics:()=>Z3,I3SSublayer:()=>Q3,I3SSymbology:()=>K3,I3dmLoader:()=>XR,I3dmParser:()=>YR,Iau2000Orientation:()=>r2,Iau2006XysData:()=>sw,Iau2006XysSample:()=>sx,IauOrientationAxes:()=>s2,IauOrientationParameters:()=>o2,ImageBasedLighting:()=>qx,ImageBasedLightingPipelineStage:()=>lO,ImageMaterialProperty:()=>Yg,Imagery:()=>YS,ImageryLayer:()=>Ga,ImageryLayerCollection:()=>KF,ImageryLayerFeatureInfo:()=>Rh,ImageryProvider:()=>fl,ImageryState:()=>ai,Implicit3DTileContent:()=>IA,ImplicitAvailabilityBitstream:()=>gA,ImplicitMetadataView:()=>yA,ImplicitSubdivisionScheme:()=>es,ImplicitSubtree:()=>lb,ImplicitSubtreeCache:()=>B3,ImplicitSubtreeMetadata:()=>k1,ImplicitTileCoordinates:()=>Gb,ImplicitTileset:()=>Hb,IndexDatatype:()=>Ne,InfoBox:()=>Lk,InfoBoxViewModel:()=>Mk,InspectorShared:()=>qa,InstanceAttributeSemantic:()=>ns,InstancingPipelineStage:()=>AO,InterpolationAlgorithm:()=>KZ,InterpolationType:()=>$d,Intersect:()=>jt,IntersectionTests:()=>$n,Intersections2D:()=>Tg,Interval:()=>wa,InvertClassification:()=>sv,Ion:()=>Hd,IonGeocoderService:()=>P3,IonImageryProvider:()=>sg,IonResource:()=>xu,IonWorldImageryStyle:()=>ag,Iso8601:()=>He,JobScheduler:()=>O2,JobType:()=>La,JsonMetadataTable:()=>o_,JulianDate:()=>Z,KTX2Transcoder:()=>_w,KeyboardEventModifier:()=>ia,KeyframeNode:()=>Ji,KmlCamera:()=>eF,KmlDataSource:()=>vF,KmlLookAt:()=>xF,KmlTour:()=>bF,KmlTourFlyTo:()=>CF,KmlTourWait:()=>AF,Label:()=>Oy,LabelCollection:()=>Cm,LabelGraphics:()=>Fd,LabelStyle:()=>Wo,LabelVisualizer:()=>MN,LagrangePolynomialApproximation:()=>$L,LeapSecond:()=>ji,Light:()=>N$,LightingModel:()=>ym,LightingPipelineStage:()=>YO,LinearApproximation:()=>Kb,LinearSpline:()=>Ty,ManagedArray:()=>Xc,MapMode2D:()=>tu,MapProjection:()=>QZ,MapboxImageryProvider:()=>kF,MapboxStyleImageryProvider:()=>F$,Material:()=>qi,MaterialAppearance:()=>so,MaterialPipelineStage:()=>KO,MaterialProperty:()=>Jo,Math:()=>P,Matrix2:()=>Bi,Matrix3:()=>$,Matrix4:()=>F,Megatexture:()=>hv,MeshPrimitiveGpmLocal:()=>kR,MetadataClass:()=>qd,MetadataClassProperty:()=>ny,MetadataComponentType:()=>zt,MetadataEntity:()=>Fn,MetadataEnum:()=>cR,MetadataEnumValue:()=>aR,MetadataPicking:()=>M2,MetadataPickingPipelineStage:()=>Su,MetadataPipelineStage:()=>Mf,MetadataSchema:()=>Au,MetadataSchemaLoader:()=>wA,MetadataSemantic:()=>ub,MetadataTable:()=>Nl,MetadataTableProperty:()=>U1,MetadataType:()=>At,MipmapHint:()=>rm,Model:()=>nh,Model3DTileContent:()=>xm,ModelAlphaOptions:()=>hM,ModelAnimation:()=>JR,ModelAnimationChannel:()=>QR,ModelAnimationCollection:()=>eO,ModelAnimationLoop:()=>Vl,ModelAnimationState:()=>eh,ModelArticulation:()=>fO,ModelArticulationStage:()=>uO,ModelClippingPlanesPipelineStage:()=>mO,ModelClippingPolygonsPipelineStage:()=>gO,ModelColorPipelineStage:()=>Ey,ModelComponents:()=>xn,ModelDrawCommand:()=>SM,ModelDrawCommands:()=>DM,ModelFeature:()=>tO,ModelFeatureTable:()=>iO,ModelGraphics:()=>Bp,ModelLightingOptions:()=>TM,ModelMatrixUpdateStage:()=>EO,ModelNode:()=>yO,ModelRenderResources:()=>mM,ModelRuntimeNode:()=>vO,ModelRuntimePrimitive:()=>fM,ModelSceneGraph:()=>IM,ModelSilhouettePipelineStage:()=>gM,ModelSkin:()=>dM,ModelSplitterPipelineStage:()=>xM,ModelStatistics:()=>PM,ModelType:()=>lr,ModelUtility:()=>Kt,ModelVisualizer:()=>LN,Moon:()=>l2,MorphTargetsPipelineStage:()=>$O,MorphWeightSpline:()=>JZ,MortonOrder:()=>ky,Multiple3DTileContent:()=>lL,MultisampleFramebuffer:()=>cP,NavigationHelpButton:()=>Fk,NavigationHelpButtonViewModel:()=>Nk,NearFarScalar:()=>Bt,NeverTileDiscardPolicy:()=>k$,NodeRenderResources:()=>bM,NodeStatisticsPipelineStage:()=>SO,NodeTransformationProperty:()=>kx,OIT:()=>V2,Occluder:()=>u2,OffsetGeometryInstanceAttribute:()=>Qi,OpenCageGeocoderService:()=>t$,OpenStreetMapImageryProvider:()=>Sg,OrderedGroundPrimitiveCollection:()=>aN,OrientedBoundingBox:()=>vn,OrthographicFrustum:()=>rn,OrthographicOffCenterFrustum:()=>Lr,Packable:()=>n$,PackableForInterpolation:()=>i$,Particle:()=>zv,ParticleBurst:()=>U$,ParticleEmitter:()=>z$,ParticleSystem:()=>H$,Pass:()=>ve,PassState:()=>ic,PathGraphics:()=>kp,PathVisualizer:()=>FN,PeliasGeocoderService:()=>I3,PerInstanceColorAppearance:()=>ln,PerformanceDisplay:()=>fg,PerformanceWatchdog:()=>kk,PerformanceWatchdogViewModel:()=>Bk,PerspectiveFrustum:()=>Si,PerspectiveOffCenterFrustum:()=>hl,PickDepth:()=>L2,PickDepthFramebuffer:()=>z2,PickFramebuffer:()=>G2,PickedMetadataInfo:()=>t3,Picking:()=>X2,PickingPipelineStage:()=>QO,PinBuilder:()=>$_,PixelDatatype:()=>Ke,PixelFormat:()=>Je,Plane:()=>cn,PlaneGeometry:()=>fN,PlaneGeometryUpdater:()=>hN,PlaneGraphics:()=>y1,PlaneOutlineGeometry:()=>dN,PntsLoader:()=>OM,PntsParser:()=>Eb,PointCloud:()=>g3,PointCloudEyeDomeLighting:()=>a_,PointCloudShading:()=>gm,PointCloudStylingPipelineStage:()=>eM,PointGraphics:()=>Ux,PointPrimitive:()=>Is,PointPrimitiveCollection:()=>wE,PointVisualizer:()=>kN,PolygonGeometry:()=>e_,PolygonGeometryLibrary:()=>zn,PolygonGeometryUpdater:()=>gN,PolygonGraphics:()=>Bd,PolygonHierarchy:()=>Oa,PolygonOutlineGeometry:()=>_N,PolygonPipeline:()=>si,Polyline:()=>Vf,PolylineArrowMaterialProperty:()=>LE,PolylineCollection:()=>oh,PolylineColorAppearance:()=>Qr,PolylineDashMaterialProperty:()=>FE,PolylineGeometry:()=>Z_,PolylineGeometryUpdater:()=>zN,PolylineGlowMaterialProperty:()=>kE,PolylineGraphics:()=>ac,PolylineMaterialAppearance:()=>ca,PolylineOutlineMaterialProperty:()=>qy,PolylinePipeline:()=>Ii,PolylineVisualizer:()=>GN,PolylineVolumeGeometry:()=>bN,PolylineVolumeGeometryLibrary:()=>lh,PolylineVolumeGeometryUpdater:()=>EN,PolylineVolumeGraphics:()=>zx,PolylineVolumeOutlineGeometry:()=>AN,PositionProperty:()=>Nd,PositionPropertyArray:()=>z_,PostProcessStage:()=>fo,PostProcessStageCollection:()=>gB,PostProcessStageComposite:()=>pl,PostProcessStageLibrary:()=>$u,PostProcessStageSampleMode:()=>Zu,PostProcessStageTextureCache:()=>KT,PpeMetadata:()=>BR,PpeSource:()=>cQ,PpeTexture:()=>FR,Primitive:()=>Dn,PrimitiveCollection:()=>jl,PrimitiveLoadPlan:()=>xb,PrimitiveOutlineGenerator:()=>yb,PrimitiveOutlinePipelineStage:()=>iM,PrimitivePipeline:()=>Sx,PrimitiveRenderResources:()=>CM,PrimitiveState:()=>Ar,PrimitiveStatisticsPipelineStage:()=>oM,PrimitiveType:()=>Me,ProjectionPicker:()=>Uk,ProjectionPickerViewModel:()=>Vk,Property:()=>Y,PropertyArray:()=>UE,PropertyAttribute:()=>gb,PropertyAttributeProperty:()=>SR,PropertyBag:()=>Rl,PropertyTable:()=>$c,PropertyTexture:()=>r_,PropertyTextureProperty:()=>ER,ProviderViewModel:()=>cs,Proxy:()=>o$,QuadraticRealPolynomial:()=>Fc,QuadtreeOccluders:()=>ZF,QuadtreePrimitive:()=>n2,QuadtreeTile:()=>$F,QuadtreeTileLoadState:()=>ea,QuadtreeTileProvider:()=>G$,QuantizedMeshTerrainData:()=>hC,QuarticRealPolynomial:()=>xw,Quaternion:()=>Oe,QuaternionSpline:()=>$R,Queue:()=>my,Ray:()=>mn,Rectangle:()=>re,RectangleCollisionChecker:()=>mT,RectangleGeometry:()=>sT,RectangleGeometryLibrary:()=>Ds,RectangleGeometryUpdater:()=>SN,RectangleGraphics:()=>kd,RectangleOutlineGeometry:()=>Mb,ReferenceFrame:()=>Vi,ReferenceProperty:()=>H_,RenderState:()=>Ve,Renderbuffer:()=>du,RenderbufferFormat:()=>kc,Request:()=>Ko,RequestErrorEvent:()=>$h,RequestScheduler:()=>ec,RequestState:()=>Zn,RequestType:()=>fs,Resource:()=>we,ResourceCache:()=>Ci,ResourceCacheKey:()=>kl,ResourceCacheStatistics:()=>fR,ResourceLoader:()=>Xi,ResourceLoaderState:()=>mt,Rotation:()=>Qf,RuntimeError:()=>ce,S2Cell:()=>qp,SDFSettings:()=>Xs,SampledPositionProperty:()=>_a,SampledProperty:()=>Fu,Sampler:()=>$t,ScaledPositionProperty:()=>Mm,Scene:()=>n3,SceneFramebuffer:()=>HT,SceneMode:()=>ne,SceneMode2DPipelineStage:()=>rM,SceneModePicker:()=>Hk,SceneModePickerViewModel:()=>zk,SceneTransforms:()=>Ui,SceneTransitioner:()=>bB,ScreenSpaceCameraController:()=>EB,ScreenSpaceEventHandler:()=>Ju,ScreenSpaceEventType:()=>bn,SelectedFeatureIdPipelineStage:()=>wy,SelectionIndicator:()=>jk,SelectionIndicatorViewModel:()=>Wk,SensorVolumePortionToDisplay:()=>WE,ShaderBuilder:()=>xx,ShaderCache:()=>nP,ShaderDestination:()=>pe,ShaderFunction:()=>fP,ShaderProgram:()=>Qt,ShaderSource:()=>Ue,ShaderStruct:()=>uP,ShadowMap:()=>mg,ShadowMapShader:()=>ip,ShadowMode:()=>yn,ShadowVolumeAppearance:()=>pu,ShowGeometryInstanceAttribute:()=>gn,Simon1994PlanetaryPositions:()=>Vg,SimplePolylineGeometry:()=>r$,SingleTileImageryProvider:()=>VF,SkinningPipelineStage:()=>aM,SkyAtmosphere:()=>r3,SkyBox:()=>c3,SpatialNode:()=>ZB,Spdcf:()=>LR,SpecularEnvironmentCubeMap:()=>zd,SphereEmitter:()=>j$,SphereGeometry:()=>s$,SphereOutlineGeometry:()=>w_,Spherical:()=>QL,Spline:()=>io,SplitDirection:()=>Nr,Splitter:()=>Tv,StaticGeometryColorBatch:()=>td,StaticGeometryPerMaterialBatch:()=>nd,StaticGroundGeometryColorBatch:()=>cS,StaticGroundGeometryPerMaterialBatch:()=>RN,StaticGroundPolylinePerMaterialBatch:()=>HN,StaticOutlineGeometryBatch:()=>fS,StencilConstants:()=>Vt,StencilFunction:()=>Un,StencilOperation:()=>ft,SteppedSpline:()=>ZR,Stereographic:()=>fc,StorageType:()=>gy,StripeMaterialProperty:()=>HE,StripeOrientation:()=>_h,StructuralMetadata:()=>qs,StyleCommandsNeeded:()=>th,StyleExpression:()=>q$,Sun:()=>m3,SunLight:()=>wp,SunPostProcess:()=>wB,SupportedImageFormats:()=>PR,SvgPathBindingHandler:()=>ak,TaskProcessor:()=>pi,Terrain:()=>tk,TerrainData:()=>Ph,TerrainEncoding:()=>Sc,TerrainFillMesh:()=>$S,TerrainMesh:()=>ld,TerrainOffsetProperty:()=>Hx,TerrainProvider:()=>os,TerrainQuantization:()=>Js,TerrainState:()=>uo,Texture:()=>Pt,TextureAtlas:()=>Ry,TextureCache:()=>iP,TextureMagnificationFilter:()=>di,TextureManager:()=>QB,TextureMinificationFilter:()=>Zt,TextureUniform:()=>sQ,TextureWrap:()=>Tn,TileAvailability:()=>Uh,TileBoundingRegion:()=>qf,TileBoundingS2Cell:()=>hL,TileBoundingSphere:()=>D_,TileBoundingVolume:()=>Y$,TileCoordinatesImageryProvider:()=>ik,TileDiscardPolicy:()=>K$,TileEdge:()=>_n,TileImagery:()=>XS,TileMapServiceImageryProvider:()=>C0,TileMetadata:()=>aL,TileOrientedBoundingBox:()=>Pu,TileProviderError:()=>wo,TileReplacementQueue:()=>QF,TileSelectionResult:()=>Xn,TileState:()=>Z$,Tileset3DTileContent:()=>NM,TilesetMetadata:()=>mL,TilesetPipelineStage:()=>oO,TilingScheme:()=>a$,TimeConstants:()=>Yn,TimeDynamicImagery:()=>LT,TimeDynamicPointCloud:()=>Av,TimeInterval:()=>Cn,TimeIntervalCollection:()=>Hr,TimeIntervalCollectionPositionProperty:()=>G_,TimeIntervalCollectionProperty:()=>W_,TimeStandard:()=>jn,Timeline:()=>Xk,TimelineHighlightRange:()=>qk,TimelineTrack:()=>Yk,Tipsify:()=>bw,ToggleButtonViewModel:()=>W0,Tonemapper:()=>_g,Transforms:()=>Mt,TranslationRotationScale:()=>Xg,TranslucentTileClassification:()=>j2,TridiagonalSystemSolver:()=>WA,TrustedServers:()=>zC,TweenCollection:()=>JT,UniformState:()=>sP,UniformType:()=>pv,UrlTemplateImageryProvider:()=>Ha,VERSION:()=>kvt,VRButton:()=>$k,VRButtonViewModel:()=>Zk,VRTheWorldTerrainProvider:()=>c$,VaryingType:()=>aQ,Vector3DTileBatch:()=>fm,Vector3DTileClampedPolylines:()=>iL,Vector3DTileContent:()=>rL,Vector3DTileGeometry:()=>jp,Vector3DTilePoints:()=>ZM,Vector3DTilePolygons:()=>$M,Vector3DTilePolylines:()=>Ib,Vector3DTilePrimitive:()=>$x,VelocityOrientationProperty:()=>eN,VelocityVectorProperty:()=>Jb,VertexArray:()=>ti,VertexArrayFacade:()=>Dp,VertexAttributeSemantic:()=>Tt,VertexFormat:()=>Ie,VerticalExaggeration:()=>Cr,VerticalExaggerationPipelineStage:()=>lM,VerticalOrigin:()=>Rn,VideoSynchronizer:()=>l$,View:()=>jT,Viewer:()=>DQ,ViewportQuad:()=>$$,Visibility:()=>pr,Visualizer:()=>lX,VoxelBoxShape:()=>ap,VoxelCell:()=>PB,VoxelContent:()=>k3,VoxelCylinderShape:()=>cp,VoxelEllipsoidShape:()=>iC,VoxelInspector:()=>Jk,VoxelInspectorViewModel:()=>Qk,VoxelPrimitive:()=>M0,VoxelProvider:()=>J$,VoxelRenderResources:()=>jB,VoxelShape:()=>eQ,VoxelShapeType:()=>Ni,VoxelTraversal:()=>mv,VulkanConstants:()=>u$,WallGeometry:()=>wN,WallGeometryLibrary:()=>aT,WallGeometryUpdater:()=>PN,WallGraphics:()=>Vp,WallOutlineGeometry:()=>IN,WebGLConstants:()=>te,WebMapServiceImageryProvider:()=>zF,WebMapTileServiceImageryProvider:()=>GF,WebMercatorProjection:()=>wi,WebMercatorTilingScheme:()=>rs,WindingOrder:()=>hs,WireframeIndexGenerator:()=>QA,WireframePipelineStage:()=>uM,_shadersAcesTonemappingStage:()=>K2,_shadersAdditiveBlend:()=>SB,_shadersAdjustTranslucentFS:()=>av,_shadersAllMaterialAppearanceFS:()=>gP,_shadersAllMaterialAppearanceVS:()=>yP,_shadersAmbientOcclusionGenerate:()=>Z2,_shadersAmbientOcclusionModulate:()=>$2,_shadersAspectRampMaterial:()=>AP,_shadersAtmosphereCommon:()=>Zd,_shadersAtmosphereStageFS:()=>rO,_shadersAtmosphereStageVS:()=>sO,_shadersBasicMaterialAppearanceFS:()=>xP,_shadersBasicMaterialAppearanceVS:()=>bP,_shadersBillboardCollectionFS:()=>FM,_shadersBillboardCollectionVS:()=>BM,_shadersBlackAndWhite:()=>Q2,_shadersBloomComposite:()=>J2,_shadersBrdfLutGeneratorFS:()=>f2,_shadersBrightPass:()=>vB,_shadersBrightness:()=>eB,_shadersBumpMapMaterial:()=>EP,_shadersCPUStylingStageFS:()=>RO,_shadersCPUStylingStageVS:()=>PO,_shadersCheckerboardMaterial:()=>SP,_shadersCloudCollectionFS:()=>b3,_shadersCloudCollectionVS:()=>T3,_shadersCloudNoiseFS:()=>C3,_shadersCloudNoiseVS:()=>A3,_shadersCompareAndPackTranslucentDepth:()=>W2,_shadersCompositeOITFS:()=>k2,_shadersCompositeTranslucentClassification:()=>WT,_shadersComputeIrradianceFS:()=>gR,_shadersComputeRadianceMapFS:()=>yR,_shadersContrastBias:()=>tB,_shadersConvolveSpecularMapFS:()=>xR,_shadersConvolveSpecularMapVS:()=>bR,_shadersCustomShaderStageFS:()=>LO,_shadersCustomShaderStageVS:()=>MO,_shadersCzmBuiltins:()=>_x,_shadersDepthOfField:()=>nB,_shadersDepthPlaneFS:()=>A2,_shadersDepthPlaneVS:()=>E2,_shadersDepthView:()=>iB,_shadersDepthViewPacked:()=>rQ,_shadersDotMaterial:()=>vP,_shadersEdgeDetection:()=>oB,_shadersElevationBandMaterial:()=>wP,_shadersElevationContourMaterial:()=>DP,_shadersElevationRampMaterial:()=>IP,_shadersEllipsoidFS:()=>JS,_shadersEllipsoidSurfaceAppearanceFS:()=>H3,_shadersEllipsoidSurfaceAppearanceVS:()=>G3,_shadersEllipsoidVS:()=>ev,_shadersFXAA:()=>aB,_shadersFXAA3_11:()=>hB,_shadersFadeMaterial:()=>PP,_shadersFeatureIdStageFS:()=>NO,_shadersFeatureIdStageVS:()=>FO,_shadersFilmicTonemapping:()=>rB,_shadersGaussianBlur1D:()=>P0,_shadersGeometryStageFS:()=>HO,_shadersGeometryStageVS:()=>GO,_shadersGlobeFS:()=>IF,_shadersGlobeVS:()=>PF,_shadersGridMaterial:()=>RP,_shadersGroundAtmosphere:()=>BS,_shadersHSBToRGB:()=>xD,_shadersHSLToRGB:()=>bD,_shadersImageBasedLightingStageFS:()=>cO,_shadersInstancingStageCommon:()=>xO,_shadersInstancingStageVS:()=>bO,_shadersIntersectBox:()=>BB,_shadersIntersectClippingPlanes:()=>FB,_shadersIntersectCylinder:()=>kB,_shadersIntersectDepth:()=>NB,_shadersIntersectEllipsoid:()=>VB,_shadersIntersectLongitude:()=>dv,_shadersIntersection:()=>nC,_shadersIntersectionUtils:()=>LB,_shadersLegacyInstancingStageVS:()=>TO,_shadersLensFlare:()=>cB,_shadersLightingStageFS:()=>qO,_shadersMaterialStageFS:()=>XO,_shadersMegatexture:()=>WB,_shadersMetadataStageFS:()=>BO,_shadersMetadataStageVS:()=>kO,_shadersModelClippingPlanesStageFS:()=>hO,_shadersModelClippingPolygonsStageFS:()=>_O,_shadersModelClippingPolygonsStageVS:()=>pO,_shadersModelColorStageFS:()=>dO,_shadersModelFS:()=>wM,_shadersModelSilhouetteStageFS:()=>pM,_shadersModelSilhouetteStageVS:()=>_M,_shadersModelSplitterStageFS:()=>yM,_shadersModelVS:()=>vM,_shadersModifiedReinhardTonemapping:()=>lB,_shadersMorphTargetsStageVS:()=>ZO,_shadersNightVision:()=>uB,_shadersNormalMapMaterial:()=>OP,_shadersOctree:()=>GB,_shadersPassThrough:()=>nu,_shadersPassThroughDepth:()=>w0,_shadersPbrNeutralTonemapping:()=>sB,_shadersPerInstanceColorAppearanceFS:()=>GP,_shadersPerInstanceColorAppearanceVS:()=>WP,_shadersPerInstanceFlatColorAppearanceFS:()=>Ax,_shadersPerInstanceFlatColorAppearanceVS:()=>jP,_shadersPointCloudEyeDomeLighting:()=>UR,_shadersPointCloudStylingStageVS:()=>JO,_shadersPointPrimitiveCollectionFS:()=>jy,_shadersPointPrimitiveCollectionVS:()=>zL,_shadersPolygonSignedDistanceFS:()=>pR,_shadersPolylineArrowMaterial:()=>MP,_shadersPolylineColorAppearanceVS:()=>r1,_shadersPolylineCommon:()=>_u,_shadersPolylineDashMaterial:()=>LP,_shadersPolylineFS:()=>Px,_shadersPolylineGlowMaterial:()=>NP,_shadersPolylineMaterialAppearanceVS:()=>s1,_shadersPolylineOutlineMaterial:()=>FP,_shadersPolylineShadowVolumeFS:()=>t1,_shadersPolylineShadowVolumeMorphFS:()=>n1,_shadersPolylineShadowVolumeMorphVS:()=>i1,_shadersPolylineShadowVolumeVS:()=>o1,_shadersPolylineVS:()=>WM,_shadersPrimitiveOutlineStageFS:()=>nM,_shadersPrimitiveOutlineStageVS:()=>tM,_shadersRGBToHSB:()=>TD,_shadersRGBToHSL:()=>CD,_shadersRGBToXYZ:()=>AD,_shadersReinhardTonemapping:()=>fB,_shadersReprojectWebMercatorFS:()=>WF,_shadersReprojectWebMercatorVS:()=>jF,_shadersRimLightingMaterial:()=>BP,_shadersSelectedFeatureIdStageCommon:()=>$A,_shadersShadowVolumeAppearanceFS:()=>oA,_shadersShadowVolumeAppearanceVS:()=>XP,_shadersShadowVolumeFS:()=>Wg,_shadersSilhouette:()=>dB,_shadersSkinningStageVS:()=>sM,_shadersSkyAtmosphereCommon:()=>gv,_shadersSkyAtmosphereFS:()=>i3,_shadersSkyAtmosphereVS:()=>o3,_shadersSkyBoxFS:()=>s3,_shadersSkyBoxVS:()=>a3,_shadersSlopeRampMaterial:()=>kP,_shadersStripeMaterial:()=>VP,_shadersSunFS:()=>l3,_shadersSunTextureFS:()=>u3,_shadersSunVS:()=>f3,_shadersTexturedMaterialAppearanceFS:()=>TP,_shadersTexturedMaterialAppearanceVS:()=>CP,_shadersVector3DTileClampedPolylinesFS:()=>tL,_shadersVector3DTileClampedPolylinesVS:()=>eL,_shadersVector3DTilePolylinesVS:()=>QM,_shadersVectorTileVS:()=>mA,_shadersVerticalExaggerationStageVS:()=>cM,_shadersViewportQuadFS:()=>E3,_shadersViewportQuadVS:()=>ax,_shadersVoxelFS:()=>OB,_shadersVoxelUtils:()=>RB,_shadersVoxelVS:()=>MB,_shadersWater:()=>zP,_shadersWaterMaskMaterial:()=>UP,_shadersXYZToRGB:()=>ED,_shadersacesTonemapping:()=>SD,_shadersalphaWeight:()=>vD,_shadersantialias:()=>wD,_shadersapplyHSBShift:()=>DD,_shadersapproximateSphericalCoordinates:()=>ID,_shadersapproximateTanh:()=>PD,_shadersbackFacing:()=>RD,_shadersbranchFreeTernary:()=>OD,_shaderscascadeColor:()=>MD,_shaderscascadeDistance:()=>LD,_shaderscascadeMatrix:()=>ND,_shaderscascadeWeights:()=>FD,_shadersclipPolygons:()=>BD,_shaderscolumbusViewMorph:()=>kD,_shaderscomputeAtmosphereColor:()=>VD,_shaderscomputeGroundAtmosphereScattering:()=>UD,_shaderscomputePosition:()=>zD,_shaderscomputeScattering:()=>HD,_shadersconvertUvToBox:()=>UB,_shadersconvertUvToCylinder:()=>zB,_shadersconvertUvToEllipsoid:()=>HB,_shaderscosineAndSine:()=>GD,_shadersdecompressTextureCoordinates:()=>WD,_shadersdegreesPerRadian:()=>ww,_shadersdepthClamp:()=>jD,_shadersdepthRange:()=>Dw,_shadersdepthRangeStruct:()=>fD,_shaderseastNorthUpToEyeCoordinates:()=>qD,_shadersellipsoidContainsPoint:()=>YD,_shadersellipsoidTextureCoordinates:()=>XD,_shadersepsilon1:()=>Iw,_shadersepsilon2:()=>Pw,_shadersepsilon3:()=>Rw,_shadersepsilon4:()=>Ow,_shadersepsilon5:()=>Mw,_shadersepsilon6:()=>Lw,_shadersepsilon7:()=>Nw,_shadersequalsEpsilon:()=>KD,_shaderseyeOffset:()=>ZD,_shaderseyeToWindowCoordinates:()=>$D,_shadersfastApproximateAtan:()=>QD,_shadersfog:()=>JD,_shadersgammaCorrect:()=>eI,_shadersgeodeticSurfaceNormal:()=>tI,_shadersgetDefaultMaterial:()=>nI,_shadersgetDynamicAtmosphereLightDirection:()=>iI,_shadersgetLambertDiffuse:()=>oI,_shadersgetSpecular:()=>rI,_shadersgetWaterNoise:()=>sI,_shadershue:()=>aI,_shadersinfinity:()=>Fw,_shadersinverseGamma:()=>cI,_shadersisEmpty:()=>lI,_shadersisFull:()=>uI,_shaderslatitudeToWebMercatorFraction:()=>fI,_shaderslineDistance:()=>dI,_shaderslinearToSrgb:()=>hI,_shadersluminance:()=>mI,_shadersmaterial:()=>dD,_shadersmaterialInput:()=>hD,_shadersmaximumComponent:()=>pI,_shadersmetersPerPixel:()=>_I,_shadersmodelMaterial:()=>mD,_shadersmodelToWindowCoordinates:()=>gI,_shadersmodelVertexOutput:()=>pD,_shadersmultiplyWithColorBalance:()=>yI,_shadersnearFarScalar:()=>xI,_shadersoctDecode:()=>bI,_shadersoneOverPi:()=>Bw,_shadersoneOverTwoPi:()=>kw,_shaderspackDepth:()=>TI,_shaderspassCesium3DTile:()=>Vw,_shaderspassCesium3DTileClassification:()=>Uw,_shaderspassCesium3DTileClassificationIgnoreShow:()=>zw,_shaderspassClassification:()=>Hw,_shaderspassCompute:()=>Gw,_shaderspassEnvironment:()=>Ww,_shaderspassGlobe:()=>jw,_shaderspassOpaque:()=>qw,_shaderspassOverlay:()=>Yw,_shaderspassTerrainClassification:()=>Xw,_shaderspassTranslucent:()=>Kw,_shaderspassVoxels:()=>Zw,_shaderspbrLighting:()=>CI,_shaderspbrNeutralTonemapping:()=>AI,_shadersphong:()=>EI,_shaderspi:()=>$w,_shaderspiOverFour:()=>Qw,_shaderspiOverSix:()=>Jw,_shaderspiOverThree:()=>eD,_shaderspiOverTwo:()=>tD,_shadersplaneDistance:()=>SI,_shaderspointAlongRay:()=>vI,_shadersradiansPerDegree:()=>nD,_shadersray:()=>_D,_shadersrayEllipsoidIntersectionInterval:()=>wI,_shadersraySegment:()=>gD,_shadersraySphereIntersectionInterval:()=>DI,_shadersreadDepth:()=>II,_shadersreadNonPerspective:()=>PI,_shadersreverseLogDepth:()=>RI,_shadersround:()=>OI,_shaderssaturation:()=>MI,_shaderssceneMode2D:()=>iD,_shaderssceneMode3D:()=>oD,_shaderssceneModeColumbusView:()=>rD,_shaderssceneModeMorphing:()=>sD,_shadersshadowDepthCompare:()=>LI,_shadersshadowParameters:()=>yD,_shadersshadowVisibility:()=>NI,_shaderssignNotZero:()=>FI,_shaderssolarRadius:()=>aD,_shaderssphericalHarmonics:()=>BI,_shaderssrgbToLinear:()=>kI,_shaderstangentToEyeSpaceMatrix:()=>VI,_shaderstextureCube:()=>UI,_shadersthreePiOver2:()=>cD,_shaderstransformPlane:()=>zI,_shaderstranslateRelativeToEye:()=>HI,_shaderstranslucentPhong:()=>GI,_shaderstranspose:()=>WI,_shaderstwoPi:()=>lD,_shadersunpackClippingExtents:()=>jI,_shadersunpackDepth:()=>qI,_shadersunpackFloat:()=>YI,_shadersunpackUint:()=>XI,_shadersvalueTransform:()=>KI,_shadersvertexLogDepth:()=>ZI,_shaderswebMercatorMaxLatitude:()=>uD,_shaderswindowToEyeCoordinates:()=>$I,_shaderswriteDepthClamp:()=>QI,_shaderswriteLogDepth:()=>JI,_shaderswriteNonPerspective:()=>eP,addBuffer:()=>J1,addDefaults:()=>j1,addExtensionsRequired:()=>Z1,addExtensionsUsed:()=>Pf,addPipelineExtras:()=>sy,addToArray:()=>Ss,appendForwardSlash:()=>$v,arrayRemoveDuplicates:()=>To,barycentricCoordinates:()=>lx,binarySearch:()=>Po,buildModuleUrl:()=>nn,buildVoxelDrawCommands:()=>YB,clone:()=>Ge,combine:()=>yt,computeFlyToLocationForRectangle:()=>PT,createBillboardPointCallback:()=>Sb,createCommand:()=>An,createDefaultImageryProviderViewModels:()=>gk,createDefaultTerrainProviderViewModels:()=>yk,createElevationBandMaterial:()=>tQ,createGooglePhotorealistic3DTileset:()=>nQ,createGuid:()=>Hn,createMaterialPropertyDescriptor:()=>Ro,createOsmBuildingsAsync:()=>iQ,createPropertyDescriptor:()=>le,createRawPropertyDescriptor:()=>Pl,createTangentSpaceDebugPrimitive:()=>oQ,createTaskProcessorWorker:()=>lQ,createUniform:()=>fw,createUniformArray:()=>dw,createWorldBathymetryAsync:()=>O3,createWorldImageryAsync:()=>cg,createWorldTerrainAsync:()=>yC,decodeGoogleEarthEnterpriseData:()=>M3,decodeVectorPolylinePositions:()=>oL,defaultValue:()=>y,defer:()=>Al,defined:()=>l,demodernizeShader:()=>tP,deprecationWarning:()=>ds,destroyObject:()=>ue,exportKml:()=>mX,findAccessorMinMax:()=>rb,findContentMetadata:()=>Rb,findGroupMetadata:()=>Ob,findTileMetadata:()=>cL,forEachTextureInMaterial:()=>AA,formatError:()=>Ym,freezeRenderState:()=>n6,getAbsoluteUri:()=>Kh,getAccessorByteStride:()=>Fl,getBaseUri:()=>Qv,getBinaryAccessor:()=>bu,getClipAndStyleCode:()=>p3,getClippingFunction:()=>og,getComponentReader:()=>Qp,getElement:()=>In,getExtensionFromUri:()=>Q0,getFilenameFromUri:()=>V_,getImageFromTypedArray:()=>$B,getImagePixels:()=>Ed,getJsonFromTypedArray:()=>Mo,getMagic:()=>Gd,getMetadataClassProperty:()=>e3,getStringFromTypedArray:()=>Ol,getTimestamp:()=>xi,hasExtension:()=>oi,heightReferenceOnEntityPropertyChanged:()=>Up,isBitSet:()=>Pc,isBlobUri:()=>J0,isCrossOriginUrl:()=>Pg,isDataUri:()=>xp,isLeapYear:()=>Ad,knockout:()=>be,knockout_3_5_1:()=>wC,knockout_es5:()=>sk,loadAndExecuteScript:()=>ex,loadCubeMap:()=>dP,loadImageFromTypedArray:()=>nb,loadKTX2:()=>Sl,mergeSort:()=>ug,moveTechniqueRenderStates:()=>K1,moveTechniquesToExtension:()=>$1,numberOfComponentsForType:()=>Cu,objectToQuery:()=>tx,oneTimeWarning:()=>xt,parseBatchTable:()=>u_,parseFeatureMetadataLegacy:()=>DR,parseGlb:()=>Y1,parseResponseHeaders:()=>Jv,parseStructuralMetadata:()=>wR,pickModel:()=>nE,pointInsideTriangle:()=>d$,preprocess3DTileContent:()=>Sm,processVoxelProperties:()=>qB,queryToObject:()=>cu,readAccessorPacked:()=>eR,removeExtension:()=>sb,removeExtensionsRequired:()=>q1,removeExtensionsUsed:()=>ob,removePipelineExtras:()=>X1,removeUnusedElements:()=>Q1,resizeImageToNextPowerOfTwo:()=>ly,sampleTerrain:()=>DF,sampleTerrainMostDetailed:()=>IT,scaleToGeodeticSurface:()=>$0,srgbToLinear:()=>xC,subdivideArray:()=>KP,subscribeAndEvaluate:()=>Ta,updateAccessorComponentTypes:()=>tR,updateVersion:()=>nR,usesExtension:()=>cr,viewerCesium3DTilesInspectorMixin:()=>IQ,viewerCesiumInspectorMixin:()=>PQ,viewerDragDropMixin:()=>OQ,viewerPerformanceWatchdogMixin:()=>MQ,viewerVoxelInspectorMixin:()=>LQ,webGLConstantToGlslType:()=>h$,wrapFunction:()=>L3,writeTextToCanvas:()=>wb});module.exports=Xh(Vvt);function MEe(e){return e!=null}var l=MEe;function K0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(K0.prototype=Object.create(Error.prototype),K0.prototype.constructor=K0);K0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};K0.throwInstantiationError=function(){throw new K0("This function defines an interface and should not be called directly.")};var he=K0;var As={};As.typeOf={};function LEe(e){return`${e} is required, actual value was undefined`}function RC(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}As.defined=function(e,t){if(!l(t))throw new he(LEe(e))};As.typeOf.func=function(e,t){if(typeof t!="function")throw new he(RC(typeof t,"function",e))};As.typeOf.string=function(e,t){if(typeof t!="string")throw new he(RC(typeof t,"string",e))};As.typeOf.number=function(e,t){if(typeof t!="number")throw new he(RC(typeof t,"number",e))};As.typeOf.number.lessThan=function(e,t,n){if(As.typeOf.number(e,t),t>=n)throw new he(`Expected ${e} to be less than ${n}, actual value was ${t}`)};As.typeOf.number.lessThanOrEquals=function(e,t,n){if(As.typeOf.number(e,t),t>n)throw new he(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};As.typeOf.number.greaterThan=function(e,t,n){if(As.typeOf.number(e,t),t<=n)throw new he(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};As.typeOf.number.greaterThanOrEquals=function(e,t,n){if(As.typeOf.number(e,t),t<n)throw new he(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};As.typeOf.object=function(e,t){if(typeof t!="object")throw new he(RC(typeof t,"object",e))};As.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new he(RC(typeof t,"boolean",e))};As.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new he(RC(typeof t,"bigint",e))};As.typeOf.number.equals=function(e,t,n,i){if(As.typeOf.number(e,n),As.typeOf.number(t,i),n!==i)throw new he(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var xo=As;function VQ(e,t){return e??t}VQ.EMPTY_OBJECT=Object.freeze({});var y=VQ;var h5=Vo(tV(),1);var st={};st.EPSILON1=.1;st.EPSILON2=.01;st.EPSILON3=.001;st.EPSILON4=1e-4;st.EPSILON5=1e-5;st.EPSILON6=1e-6;st.EPSILON7=1e-7;st.EPSILON8=1e-8;st.EPSILON9=1e-9;st.EPSILON10=1e-10;st.EPSILON11=1e-11;st.EPSILON12=1e-12;st.EPSILON13=1e-13;st.EPSILON14=1e-14;st.EPSILON15=1e-15;st.EPSILON16=1e-16;st.EPSILON17=1e-17;st.EPSILON18=1e-18;st.EPSILON19=1e-19;st.EPSILON20=1e-20;st.EPSILON21=1e-21;st.GRAVITATIONALPARAMETER=3986004418e5;st.SOLAR_RADIUS=6955e5;st.LUNAR_RADIUS=1737400;st.SIXTY_FOUR_KILOBYTES=64*1024;st.FOUR_GIGABYTES=4*1024*1024*1024;st.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});st.signNotZero=function(e){return e<0?-1:1};st.toSNorm=function(e,t){return t=y(t,255),Math.round((st.clamp(e,-1,1)*.5+.5)*t)};st.fromSNorm=function(e,t){return t=y(t,255),st.clamp(e,0,t)/t*2-1};st.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:st.clamp((e-t)/n,0,1)};st.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});st.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});st.lerp=function(e,t,n){return(1-n)*e+n*t};st.PI=Math.PI;st.ONE_OVER_PI=1/Math.PI;st.PI_OVER_TWO=Math.PI/2;st.PI_OVER_THREE=Math.PI/3;st.PI_OVER_FOUR=Math.PI/4;st.PI_OVER_SIX=Math.PI/6;st.THREE_PI_OVER_TWO=3*Math.PI/2;st.TWO_PI=2*Math.PI;st.ONE_OVER_TWO_PI=1/(2*Math.PI);st.RADIANS_PER_DEGREE=Math.PI/180;st.DEGREES_PER_RADIAN=180/Math.PI;st.RADIANS_PER_ARCSECOND=st.RADIANS_PER_DEGREE/3600;st.toRadians=function(e){return e*st.RADIANS_PER_DEGREE};st.toDegrees=function(e){return e*st.DEGREES_PER_RADIAN};st.convertLongitudeRange=function(e){let t=st.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};st.clampToLatitudeRange=function(e){return st.clamp(e,-1*st.PI_OVER_TWO,st.PI_OVER_TWO)};st.negativePiToPi=function(e){return e>=-st.PI&&e<=st.PI?e:st.zeroToTwoPi(e+st.PI)-st.PI};st.zeroToTwoPi=function(e){if(e>=0&&e<=st.TWO_PI)return e;let t=st.mod(e,st.TWO_PI);return Math.abs(t)<st.EPSILON14&&Math.abs(e)>st.EPSILON14?st.TWO_PI:t};st.mod=function(e,t){return st.sign(e)===st.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};st.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))};st.lessThan=function(e,t,n){return e-t<-n};st.lessThanOrEquals=function(e,t,n){return e-t<n};st.greaterThan=function(e,t,n){return e-t>n};st.greaterThanOrEquals=function(e,t,n){return e-t>-n};var nV=[1];st.factorial=function(e){let t=nV.length;if(e>=t){let n=nV[t-1];for(let i=t;i<=e;i++){let o=n*i;nV.push(o),n=o}}return nV[e]};st.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};st.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};st.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};st.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};st.clamp=function(e,t,n){return e<t?t:e>n?n:e};var zQ=new h5.default;st.setRandomNumberSeed=function(e){zQ=new h5.default(e)};st.nextRandomNumber=function(){return zQ.random()};st.randomBetween=function(e,t){return st.nextRandomNumber()*(t-e)+e};st.acosClamped=function(e){return Math.acos(st.clamp(e,-1,1))};st.asinClamped=function(e){return Math.asin(st.clamp(e,-1,1))};st.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};st.logBase=function(e,t){return Math.log(e)/Math.log(t)};st.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});st.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});st.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};st.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};st.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=st.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?st.PI_OVER_TWO-i:i,i=e<0?st.PI-i:i,i=t<0?-i:i,i};var P=st;function $e(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}$e.fromSpherical=function(e,t){l(t)||(t=new $e);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};$e.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new $e(e,t,n)};$e.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new $e(e.x,e.y,e.z)};$e.fromCartesian4=$e.clone;$e.packedLength=3;$e.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};$e.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new $e),n.x=e[t++],n.y=e[t++],n.z=e[t],n};$e.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)$e.pack(e[o],t,o*3);return t};$e.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=$e.unpack(e,i,t[o])}return t};$e.fromArray=$e.unpack;$e.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};$e.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};$e.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};$e.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};$e.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};$e.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};$e.magnitude=function(e){return Math.sqrt($e.magnitudeSquared(e))};var oV=new $e;$e.distance=function(e,t){return $e.subtract(e,t,oV),$e.magnitude(oV)};$e.distanceSquared=function(e,t){return $e.subtract(e,t,oV),$e.magnitudeSquared(oV)};$e.normalize=function(e,t){let n=$e.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};$e.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};$e.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};$e.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};$e.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};$e.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};$e.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};$e.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};$e.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};$e.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var HQ=new $e;$e.lerp=function(e,t,n,i){return $e.multiplyByScalar(t,n,HQ),i=$e.multiplyByScalar(e,1-n,i),$e.add(HQ,i,i)};var iV=new $e,m5=new $e;$e.angleBetween=function(e,t){$e.normalize(e,iV),$e.normalize(t,m5);let n=$e.dot(iV,m5),i=$e.magnitude($e.cross(iV,m5,iV));return Math.atan2(i,n)};var NEe=new $e;$e.mostOrthogonalAxis=function(e,t){let n=$e.normalize(e,NEe);return $e.abs(n,n),n.x<=n.y?n.x<=n.z?t=$e.clone($e.UNIT_X,t):t=$e.clone($e.UNIT_Z,t):n.y<=n.z?t=$e.clone($e.UNIT_Y,t):t=$e.clone($e.UNIT_Z,t),t};$e.projectVector=function(e,t,n){let i=$e.dot(e,t)/$e.dot(t,t);return $e.multiplyByScalar(t,i,n)};$e.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};$e.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};$e.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};$e.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,u=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=u,n.y=f,n.z=d,n};$e.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};$e.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),$e.fromRadians(e,t,n,i,o)};var mf=new $e,OC=new $e;$e._ellipsoidRadiiSquared=new $e(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);$e.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=l(i)?i.radiiSquared:$e._ellipsoidRadiiSquared,s=Math.cos(t);mf.x=s*Math.cos(e),mf.y=s*Math.sin(e),mf.z=Math.sin(t),mf=$e.normalize(mf,mf),$e.multiplyComponents(r,mf,OC);let a=Math.sqrt($e.dot(mf,OC));return OC=$e.divideByScalar(OC,a,OC),mf=$e.multiplyByScalar(mf,n,mf),l(o)||(o=new $e),$e.add(OC,mf,o)};$e.fromDegreesArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=$e.fromDegrees(r,s,0,t,n[a])}return n};$e.fromRadiansArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=$e.fromRadians(r,s,0,t,n[a])}return n};$e.fromDegreesArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=$e.fromDegrees(r,s,a,t,n[c])}return n};$e.fromRadiansArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=$e.fromRadians(r,s,a,t,n[c])}return n};$e.ZERO=Object.freeze(new $e(0,0,0));$e.ONE=Object.freeze(new $e(1,1,1));$e.UNIT_X=Object.freeze(new $e(1,0,0));$e.UNIT_Y=Object.freeze(new $e(0,1,0));$e.UNIT_Z=Object.freeze(new $e(0,0,1));$e.prototype.clone=function(e){return $e.clone(this,e)};$e.prototype.equals=function(e){return $e.equals(this,e)};$e.prototype.equalsEpsilon=function(e,t,n){return $e.equalsEpsilon(this,e,t,n)};$e.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=$e;function gt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}gt.fromElements=function(e,t,n,i,o){return l(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new gt(e,t,n,i)};gt.fromColor=function(e,t){return l(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new gt(e.red,e.green,e.blue,e.alpha)};gt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new gt(e.x,e.y,e.z,e.w)};gt.packedLength=4;gt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};gt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new gt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};gt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)gt.pack(e[o],t,o*4);return t};gt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=gt.unpack(e,i,t[o])}return t};gt.fromArray=gt.unpack;gt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};gt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};gt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};gt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};gt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.clamp(e.w,t.w,n.w);return i.x=o,i.y=r,i.z=s,i.w=a,i};gt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};gt.magnitude=function(e){return Math.sqrt(gt.magnitudeSquared(e))};var rV=new gt;gt.distance=function(e,t){return gt.subtract(e,t,rV),gt.magnitude(rV)};gt.distanceSquared=function(e,t){return gt.subtract(e,t,rV),gt.magnitudeSquared(rV)};gt.normalize=function(e,t){let n=gt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};gt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};gt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};gt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};gt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};gt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};gt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};gt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};gt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};gt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var GQ=new gt;gt.lerp=function(e,t,n,i){return gt.multiplyByScalar(t,n,GQ),i=gt.multiplyByScalar(e,1-n,i),gt.add(GQ,i,i)};var FEe=new gt;gt.mostOrthogonalAxis=function(e,t){let n=gt.normalize(e,FEe);return gt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=gt.clone(gt.UNIT_X,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=gt.clone(gt.UNIT_Y,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t),t};gt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};gt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};gt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.equalsEpsilon(e.w,t.w,n,i)};gt.ZERO=Object.freeze(new gt(0,0,0,0));gt.ONE=Object.freeze(new gt(1,1,1,1));gt.UNIT_X=Object.freeze(new gt(1,0,0,0));gt.UNIT_Y=Object.freeze(new gt(0,1,0,0));gt.UNIT_Z=Object.freeze(new gt(0,0,1,0));gt.UNIT_W=Object.freeze(new gt(0,0,0,1));gt.prototype.clone=function(e){return gt.clone(this,e)};gt.prototype.equals=function(e){return gt.equals(this,e)};gt.prototype.equalsEpsilon=function(e,t,n){return gt.equalsEpsilon(this,e,t,n)};gt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var p5=new Float32Array(1),$a=new Uint8Array(p5.buffer),BEe=new Uint32Array([287454020]),kEe=new Uint8Array(BEe.buffer),WQ=kEe[0]===68;gt.packFloat=function(e,t){return l(t)||(t=new gt),p5[0]=e,WQ?(t.x=$a[0],t.y=$a[1],t.z=$a[2],t.w=$a[3]):(t.x=$a[3],t.y=$a[2],t.z=$a[1],t.w=$a[0]),t};gt.unpackFloat=function(e){return WQ?($a[0]=e.x,$a[1]=e.y,$a[2]=e.z,$a[3]=e.w):($a[0]=e.w,$a[1]=e.z,$a[2]=e.y,$a[3]=e.x),p5[0]};var oe=gt;function et(e,t,n,i,o,r,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(o,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(r,0),this[8]=y(c,0)}et.packedLength=9;et.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};et.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new et),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};et.packArray=function(e,t){let n=e.length,i=n*9;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)et.pack(e[o],t,o*9);return t};et.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=et.unpack(e,i,t[o])}return t};et.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new et(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};et.fromArray=et.unpack;et.fromColumnMajorArray=function(e,t){return et.clone(e,t)};et.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new et(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};et.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,o=e.x*e.z,r=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,u=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-u+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-u+d,T=2*(a-r),C=2*(o-c),A=2*(a+r),E=-n-s+u+d;return l(t)?(t[0]=p,t[1]=x,t[2]=C,t[3]=g,t[4]=b,t[5]=A,t[6]=m,t[7]=T,t[8]=E,t):new et(p,g,m,x,b,T,C,A,E)};et.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),r=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,u=-o*s+a*r*i,f=a*s+o*r*i,d=n*s,p=o*i+a*r*s,g=-a*i+o*r*s,m=-r,x=a*n,b=o*n;return l(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=u,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new et(c,u,f,d,p,g,m,x,b)};et.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new et(e.x,0,0,0,e.y,0,0,0,e.z)};et.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new et(e,0,0,0,e,0,0,0,e)};et.fromCrossProduct=function(e,t){return l(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new et(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};et.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new et(1,0,0,0,n,-i,0,i,n)};et.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new et(n,0,i,0,1,0,-i,0,n)};et.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new et(n,-i,0,i,n,0,0,0,1)};et.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};et.getElementIndex=function(e,t){return e*3+t};et.getColumn=function(e,t,n){let i=t*3,o=e[i],r=e[i+1],s=e[i+2];return n.x=o,n.y=r,n.z=s,n};et.setColumn=function(e,t,n,i){i=et.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};et.getRow=function(e,t,n){let i=e[t],o=e[t+3],r=e[t+6];return n.x=i,n.y=o,n.z=r,n};et.setRow=function(e,t,n,i){return i=et.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var VEe=new h;et.setScale=function(e,t,n){let i=et.getScale(e,VEe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var UEe=new h;et.setUniformScale=function(e,t,n){let i=et.getScale(e,UEe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var _5=new h;et.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],_5)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],_5)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],_5)),t};var jQ=new h;et.getMaximumScale=function(e){return et.getScale(e,jQ),h.maximumComponent(jQ)};var zEe=new h;et.setRotation=function(e,t,n){let i=et.getScale(e,zEe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var HEe=new h;et.getRotation=function(e,t){let n=et.getScale(e,HEe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};et.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],r=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],u=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n[4]=a,n[5]=c,n[6]=u,n[7]=f,n[8]=d,n};et.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};et.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};et.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[3]*o+e[6]*r,a=e[1]*i+e[4]*o+e[7]*r,c=e[2]*i+e[5]*o+e[8]*r;return n.x=s,n.y=a,n.z=c,n};et.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};et.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};et.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};et.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};et.transpose=function(e,t){let n=e[0],i=e[3],o=e[6],r=e[1],s=e[4],a=e[7],c=e[2],u=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t[4]=s,t[5]=a,t[6]=c,t[7]=u,t[8]=f,t};function GEe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var g5=[1,0,0],y5=[2,2,1];function WEe(e){let t=0;for(let n=0;n<3;++n){let i=e[et.getElementIndex(y5[n],g5[n])];t+=2*i*i}return Math.sqrt(t)}function jEe(e,t){let n=P.EPSILON15,i=0,o=1;for(let u=0;u<3;++u){let f=Math.abs(e[et.getElementIndex(y5[u],g5[u])]);f>i&&(o=u,i=f)}let r=1,s=0,a=g5[o],c=y5[o];if(Math.abs(e[et.getElementIndex(c,a)])>n){let u=e[et.getElementIndex(c,c)],f=e[et.getElementIndex(a,a)],d=e[et.getElementIndex(c,a)],p=(u-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=et.clone(et.IDENTITY,t),t[et.getElementIndex(a,a)]=t[et.getElementIndex(c,c)]=r,t[et.getElementIndex(c,a)]=s,t[et.getElementIndex(a,c)]=-s,t}var sV=new et,qQ=new et;et.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=et.clone(et.IDENTITY,t.unitary),a=t.diagonal=et.clone(e,t.diagonal),c=n*GEe(a);for(;r<i&&WEe(a)>c;)jEe(a,sV),et.transpose(sV,qQ),et.multiply(a,sV,a),et.multiply(qQ,a,a),et.multiply(s,sV,s),++o>2&&(++r,o=0);return t};et.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};et.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};et.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],u=e[7],f=e[8],d=et.determinant(e);t[0]=s*f-u*a,t[1]=u*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return et.multiplyByScalar(t,p,t)};var qEe=new et;et.inverseTranspose=function(e,t){return et.inverse(et.transpose(e,qEe),t)};et.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};et.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};et.IDENTITY=Object.freeze(new et(1,0,0,0,1,0,0,0,1));et.ZERO=Object.freeze(new et(0,0,0,0,0,0,0,0,0));et.COLUMN0ROW0=0;et.COLUMN0ROW1=1;et.COLUMN0ROW2=2;et.COLUMN1ROW0=3;et.COLUMN1ROW1=4;et.COLUMN1ROW2=5;et.COLUMN2ROW0=6;et.COLUMN2ROW1=7;et.COLUMN2ROW2=8;Object.defineProperties(et.prototype,{length:{get:function(){return et.packedLength}}});et.prototype.clone=function(e){return et.clone(this,e)};et.prototype.equals=function(e){return et.equals(this,e)};et.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};et.prototype.equalsEpsilon=function(e,t){return et.equalsEpsilon(this,e,t)};et.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var $=et;function Xv(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(Xv.prototype=Object.create(Error.prototype),Xv.prototype.constructor=Xv);Xv.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var ce=Xv;function Qe(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(u,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(m,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(x,0)}Qe.packedLength=16;Qe.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};Qe.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Qe),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};Qe.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Qe.pack(e[o],t,o*16);return t};Qe.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=Qe.unpack(e,i,t[o])}return t};Qe.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new Qe(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};Qe.fromArray=Qe.unpack;Qe.fromColumnMajorArray=function(e,t){return Qe.clone(e,t)};Qe.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new Qe(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};Qe.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),l(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new Qe(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};Qe.fromTranslationQuaternionRotationScale=function(e,t,n,i){l(i)||(i=new Qe);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,u=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,m=t.z*t.z,x=t.z*t.w,b=t.w*t.w,T=a-d-m+b,C=2*(c-x),A=2*(u+g),E=2*(c+x),v=-a+d-m+b,D=2*(p-f),O=2*(u-g),R=2*(p+f),M=-a-d+m+b;return i[0]=T*o,i[1]=E*o,i[2]=O*o,i[3]=0,i[4]=C*r,i[5]=v*r,i[6]=R*r,i[7]=0,i[8]=A*s,i[9]=D*s,i[10]=M*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};Qe.fromTranslationRotationScale=function(e,t){return Qe.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};Qe.fromTranslation=function(e,t){return Qe.fromRotationTranslation($.IDENTITY,e,t)};Qe.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new Qe(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};Qe.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new Qe(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};Qe.fromRotation=function(e,t){return l(t)||(t=new Qe),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var MC=new h,LC=new h,Kv=new h;Qe.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,MC),h.normalize(h.cross(MC,o,LC),LC),h.normalize(h.cross(LC,MC,Kv),Kv);let r=LC.x,s=LC.y,a=LC.z,c=MC.x,u=MC.y,f=MC.z,d=Kv.x,p=Kv.y,g=Kv.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,C=d*-m+p*-x+g*-b,A=c*m+u*x+f*b;return l(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-u,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=C,t[14]=A,t[15]=1,t):new Qe(r,s,a,T,d,p,g,C,-c,-u,-f,A,0,0,0,1)};Qe.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),u=2*i*n/(n-i);return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=-1,o[12]=0,o[13]=0,o[14]=u,o[15]=0,o};Qe.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),u=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*u;return a*=2,c*=2,u*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=u,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};Qe.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),u=(t+e)/(t-e),f=(i+n)/(i-n),d=-(r+o)/(r-o),p=-1,g=-2*r*o/(r-o);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=u,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};Qe.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),u=(i+n)/(i-n),f=-1,d=-1,p=-2*o;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=c,r[9]=u,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};Qe.computeViewportTransformation=function(e,t,n,i){l(i)||(i=new Qe),e=y(e,y.EMPTY_OBJECT);let o=y(e.x,0),r=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,u=a*.5,f=(n-t)*.5,d=c,p=u,g=f,m=o+c,x=r+u,b=t+f,T=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=m,i[13]=x,i[14]=b,i[15]=T,i};Qe.computeView=function(e,t,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-t.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-t.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-t.z,o[11]=0,o[12]=-h.dot(i,e),o[13]=-h.dot(n,e),o[14]=h.dot(t,e),o[15]=1,o};Qe.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};Qe.getElementIndex=function(e,t){return e*4+t};Qe.getColumn=function(e,t,n){let i=t*4,o=e[i],r=e[i+1],s=e[i+2],a=e[i+3];return n.x=o,n.y=r,n.z=s,n.w=a,n};Qe.setColumn=function(e,t,n,i){i=Qe.clone(e,i);let o=t*4;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i[o+3]=n.w,i};Qe.getRow=function(e,t,n){let i=e[t],o=e[t+4],r=e[t+8],s=e[t+12];return n.x=i,n.y=o,n.z=r,n.w=s,n};Qe.setRow=function(e,t,n,i){return i=Qe.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};Qe.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var YEe=new h;Qe.setScale=function(e,t,n){let i=Qe.getScale(e,YEe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var XEe=new h;Qe.setUniformScale=function(e,t,n){let i=Qe.getScale(e,XEe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var x5=new h;Qe.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],x5)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],x5)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],x5)),t};var YQ=new h;Qe.getMaximumScale=function(e){return Qe.getScale(e,YQ),h.maximumComponent(YQ)};var KEe=new h;Qe.setRotation=function(e,t,n){let i=Qe.getScale(e,KEe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var ZEe=new h;Qe.getRotation=function(e,t){let n=Qe.getScale(e,ZEe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};Qe.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],u=e[6],f=e[7],d=e[8],p=e[9],g=e[10],m=e[11],x=e[12],b=e[13],T=e[14],C=e[15],A=t[0],E=t[1],v=t[2],D=t[3],O=t[4],R=t[5],M=t[6],N=t[7],_=t[8],S=t[9],w=t[10],I=t[11],L=t[12],B=t[13],U=t[14],V=t[15],G=i*A+a*E+d*v+x*D,k=o*A+c*E+p*v+b*D,W=r*A+u*E+g*v+T*D,q=s*A+f*E+m*v+C*D,J=i*O+a*R+d*M+x*N,j=o*O+c*R+p*M+b*N,K=r*O+u*R+g*M+T*N,Q=s*O+f*R+m*M+C*N,de=i*_+a*S+d*w+x*I,ye=o*_+c*S+p*w+b*I,ae=r*_+u*S+g*w+T*I,_e=s*_+f*S+m*w+C*I,xe=i*L+a*B+d*U+x*V,De=o*L+c*B+p*U+b*V,Ae=r*L+u*B+g*U+T*V,ke=s*L+f*B+m*U+C*V;return n[0]=G,n[1]=k,n[2]=W,n[3]=q,n[4]=J,n[5]=j,n[6]=K,n[7]=Q,n[8]=de,n[9]=ye,n[10]=ae,n[11]=_e,n[12]=xe,n[13]=De,n[14]=Ae,n[15]=ke,n};Qe.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};Qe.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};Qe.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=e[12],g=e[13],m=e[14],x=t[0],b=t[1],T=t[2],C=t[4],A=t[5],E=t[6],v=t[8],D=t[9],O=t[10],R=t[12],M=t[13],N=t[14],_=i*x+s*b+u*T,S=o*x+a*b+f*T,w=r*x+c*b+d*T,I=i*C+s*A+u*E,L=o*C+a*A+f*E,B=r*C+c*A+d*E,U=i*v+s*D+u*O,V=o*v+a*D+f*O,G=r*v+c*D+d*O,k=i*R+s*M+u*N+p,W=o*R+a*M+f*N+g,q=r*R+c*M+d*N+m;return n[0]=_,n[1]=S,n[2]=w,n[3]=0,n[4]=I,n[5]=L,n[6]=B,n[7]=0,n[8]=U,n[9]=V,n[10]=G,n[11]=0,n[12]=k,n[13]=W,n[14]=q,n[15]=1,n};Qe.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=t[0],g=t[1],m=t[2],x=t[3],b=t[4],T=t[5],C=t[6],A=t[7],E=t[8],v=i*p+s*g+u*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,R=i*x+s*b+u*T,M=o*x+a*b+f*T,N=r*x+c*b+d*T,_=i*C+s*A+u*E,S=o*C+a*A+f*E,w=r*C+c*A+d*E;return n[0]=v,n[1]=D,n[2]=O,n[3]=0,n[4]=R,n[5]=M,n[6]=N,n[7]=0,n[8]=_,n[9]=S,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};Qe.multiplyByTranslation=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=i*e[0]+o*e[4]+r*e[8]+e[12],a=i*e[1]+o*e[5]+r*e[9]+e[13],c=i*e[2]+o*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};Qe.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?Qe.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=o*e[4],n[5]=o*e[5],n[6]=o*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};Qe.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};Qe.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=t.w,a=e[0]*i+e[4]*o+e[8]*r+e[12]*s,c=e[1]*i+e[5]*o+e[9]*r+e[13]*s,u=e[2]*i+e[6]*o+e[10]*r+e[14]*s,f=e[3]*i+e[7]*o+e[11]*r+e[15]*s;return n.x=a,n.y=c,n.z=u,n.w=f,n};Qe.multiplyByPointAsVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r,a=e[1]*i+e[5]*o+e[9]*r,c=e[2]*i+e[6]*o+e[10]*r;return n.x=s,n.y=a,n.z=c,n};Qe.multiplyByPoint=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r+e[12],a=e[1]*i+e[5]*o+e[9]*r+e[13],c=e[2]*i+e[6]*o+e[10]*r+e[14];return n.x=s,n.y=a,n.z=c,n};Qe.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};Qe.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};Qe.transpose=function(e,t){let n=e[1],i=e[2],o=e[3],r=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=s,t[14]=a,t[15]=e[15],t};Qe.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};Qe.equals=function(e,t){return e===t||l(e)&&l(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};Qe.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};Qe.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};Qe.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var $Ee=new $,QEe=new $,JEe=new oe,eSe=new oe(0,0,0,1);Qe.inverse=function(e,t){let n=e[0],i=e[4],o=e[8],r=e[12],s=e[1],a=e[5],c=e[9],u=e[13],f=e[2],d=e[6],p=e[10],g=e[14],m=e[3],x=e[7],b=e[11],T=e[15],C=p*T,A=g*b,E=d*T,v=g*x,D=d*b,O=p*x,R=f*T,M=g*m,N=f*b,_=p*m,S=f*x,w=d*m,I=C*a+v*c+D*u-(A*a+E*c+O*u),L=A*s+R*c+_*u-(C*s+M*c+N*u),B=E*s+M*a+S*u-(v*s+R*a+w*u),U=O*s+N*a+w*c-(D*s+_*a+S*c),V=A*i+E*o+O*r-(C*i+v*o+D*r),G=C*n+M*o+N*r-(A*n+R*o+_*r),k=v*n+R*i+w*r-(E*n+M*i+S*r),W=D*n+_*i+S*o-(O*n+N*i+w*o);C=o*u,A=r*c,E=i*u,v=r*a,D=i*c,O=o*a,R=n*u,M=r*s,N=n*c,_=o*s,S=n*a,w=i*s;let q=C*x+v*b+D*T-(A*x+E*b+O*T),J=A*m+R*b+_*T-(C*m+M*b+N*T),j=E*m+M*x+S*T-(v*m+R*x+w*T),K=O*m+N*x+w*b-(D*m+_*x+S*b),Q=E*p+O*g+A*d-(D*g+C*d+v*p),de=N*g+C*f+M*p-(R*p+_*g+A*f),ye=R*d+w*g+v*f-(S*g+E*f+M*d),ae=S*p+D*f+_*d-(N*d+w*p+O*f),_e=n*I+i*L+o*B+r*U;if(Math.abs(_e)<P.EPSILON21){if($.equalsEpsilon(Qe.getMatrix3(e,$Ee),QEe,P.EPSILON7)&&oe.equals(Qe.getRow(e,3,JEe),eSe))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new ce("matrix is not invertible because its determinate is zero.")}return _e=1/_e,t[0]=I*_e,t[1]=L*_e,t[2]=B*_e,t[3]=U*_e,t[4]=V*_e,t[5]=G*_e,t[6]=k*_e,t[7]=W*_e,t[8]=q*_e,t[9]=J*_e,t[10]=j*_e,t[11]=K*_e,t[12]=Q*_e,t[13]=de*_e,t[14]=ye*_e,t[15]=ae*_e,t};Qe.inverseTransformation=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[4],s=e[5],a=e[6],c=e[8],u=e[9],f=e[10],d=e[12],p=e[13],g=e[14],m=-n*d-i*p-o*g,x=-r*d-s*p-a*g,b=-c*d-u*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=u,t[7]=0,t[8]=o,t[9]=a,t[10]=f,t[11]=0,t[12]=m,t[13]=x,t[14]=b,t[15]=1,t};var tSe=new Qe;Qe.inverseTranspose=function(e,t){return Qe.inverse(Qe.transpose(e,tSe),t)};Qe.IDENTITY=Object.freeze(new Qe(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));Qe.ZERO=Object.freeze(new Qe(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));Qe.COLUMN0ROW0=0;Qe.COLUMN0ROW1=1;Qe.COLUMN0ROW2=2;Qe.COLUMN0ROW3=3;Qe.COLUMN1ROW0=4;Qe.COLUMN1ROW1=5;Qe.COLUMN1ROW2=6;Qe.COLUMN1ROW3=7;Qe.COLUMN2ROW0=8;Qe.COLUMN2ROW1=9;Qe.COLUMN2ROW2=10;Qe.COLUMN2ROW3=11;Qe.COLUMN3ROW0=12;Qe.COLUMN3ROW1=13;Qe.COLUMN3ROW2=14;Qe.COLUMN3ROW3=15;Object.defineProperties(Qe.prototype,{length:{get:function(){return Qe.packedLength}}});Qe.prototype.clone=function(e){return Qe.clone(this,e)};Qe.prototype.equals=function(e){return Qe.equals(this,e)};Qe.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};Qe.prototype.equalsEpsilon=function(e,t){return Qe.equalsEpsilon(this,e,t)};Qe.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var F=Qe;var nSe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},te=Object.freeze(nSe);var iSe=new h;function Dt(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var ra={};ra[te.FLOAT]="float";ra[te.FLOAT_VEC2]="vec2";ra[te.FLOAT_VEC3]="vec3";ra[te.FLOAT_VEC4]="vec4";ra[te.INT]="int";ra[te.INT_VEC2]="ivec2";ra[te.INT_VEC3]="ivec3";ra[te.INT_VEC4]="ivec4";ra[te.BOOL]="bool";ra[te.BOOL_VEC2]="bvec2";ra[te.BOOL_VEC3]="bvec3";ra[te.BOOL_VEC4]="bvec4";ra[te.FLOAT_MAT2]="mat2";ra[te.FLOAT_MAT3]="mat3";ra[te.FLOAT_MAT4]="mat4";ra[te.SAMPLER_2D]="sampler2D";ra[te.SAMPLER_CUBE]="samplerCube";Dt.prototype.getDeclaration=function(e){let t=`uniform ${ra[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var oSe={czm_viewport:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_eyeEllipsoidNormalEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.eyeEllipsoidNormalEC}}),czm_eyeEllipsoidCurvature:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeEllipsoidCurvature}}),czm_modelToEnu:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelToEnu}}),czm_enuToModel:new Dt({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.enuToModel}}),czm_entireFrustum:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new Dt({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return F.getTranslation(e.inverseView,iSe)}}),czm_frameNumber:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new Dt({size:1,datatype:te.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new Dt({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapsMaximumLOD:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new Dt({size:9,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new Dt({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogDensity}}),czm_fogVisualDensityScalar:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogVisualDensityScalar}}),czm_fogMinimumBrightness:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogMinimumBrightness}}),czm_atmosphereHsbShift:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereHsbShift}}),czm_atmosphereLightIntensity:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereLightIntensity}}),czm_atmosphereRayleighCoefficient:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereRayleighCoefficient}}),czm_atmosphereRayleighScaleHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereRayleighScaleHeight}}),czm_atmosphereMieCoefficient:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereMieCoefficient}}),czm_atmosphereMieScaleHeight:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieScaleHeight}}),czm_atmosphereMieAnisotropy:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieAnisotropy}}),czm_atmosphereDynamicLighting:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereDynamicLighting}}),czm_splitPosition:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new Dt({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new Dt({size:1,datatype:te.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new Dt({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},_p=oSe;function rSe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var Hn=rSe;function sSe(){return!0}function aSe(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=sSe}var ue=aSe;var Vs={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT};Vs.getSizeInBytes=function(e){switch(e){case Vs.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Vs.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Vs.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};Vs.fromSizeInBytes=function(e){switch(e){case 2:return Vs.UNSIGNED_SHORT;case 4:return Vs.UNSIGNED_INT;case 1:return Vs.UNSIGNED_BYTE}};Vs.validate=function(e){return l(e)&&(e===Vs.UNSIGNED_BYTE||e===Vs.UNSIGNED_SHORT||e===Vs.UNSIGNED_INT)};Vs.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};Vs.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};Vs.fromTypedArray=function(e){if(e instanceof Uint8Array)return Vs.UNSIGNED_BYTE;if(e instanceof Uint16Array)return Vs.UNSIGNED_SHORT;if(e instanceof Uint32Array)return Vs.UNSIGNED_INT};var Ne=Object.freeze(Vs);var aV={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===aV.STREAM_DRAW||e===aV.STATIC_DRAW||e===aV.DYNAMIC_DRAW}},Fe=Object.freeze(aV);function pf(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=Hn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}pf.createVertexBuffer=function(e){return new pf({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};pf.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ne.getSizeInBytes(n),o=new pf({context:t,bufferTarget:te.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(pf.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});pf.prototype._getBuffer=function(){return this._buffer};pf.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};pf.prototype.copyFromBuffer=function(e,t,n,i){let o=te.COPY_READ_BUFFER,r=te.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};pf.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=te.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};pf.prototype.isDestroyed=function(){return!1};pf.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var _t=pf;var wg,Rr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},Cl={};Object.defineProperties(Cl,{element:{get:function(){if(Cl.supportsFullscreen())return document[Rr.fullscreenElement]}},changeEventName:{get:function(){if(Cl.supportsFullscreen())return Rr.fullscreenchange}},errorEventName:{get:function(){if(Cl.supportsFullscreen())return Rr.fullscreenerror}},enabled:{get:function(){if(Cl.supportsFullscreen())return document[Rr.fullscreenEnabled]}},fullscreen:{get:function(){if(Cl.supportsFullscreen())return Cl.element!==null}}});Cl.supportsFullscreen=function(){if(l(wg))return wg;wg=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Rr.requestFullscreen="requestFullscreen",Rr.exitFullscreen="exitFullscreen",Rr.fullscreenEnabled="fullscreenEnabled",Rr.fullscreenElement="fullscreenElement",Rr.fullscreenchange="fullscreenchange",Rr.fullscreenerror="fullscreenerror",wg=!0,wg;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i<o;++i){let r=t[i];n=`${r}RequestFullscreen`,typeof e[n]=="function"?(Rr.requestFullscreen=n,wg=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(Rr.requestFullscreen=n,wg=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?Rr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(Rr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?Rr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(Rr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?Rr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(Rr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),Rr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),Rr.fullscreenerror=n)}return wg};Cl.requestFullscreen=function(e,t){Cl.supportsFullscreen()&&e[Rr.requestFullscreen]({vrDisplay:t})};Cl.exitFullscreen=function(){Cl.supportsFullscreen()&&document[Rr.exitFullscreen]()};Cl._names=Rr;var gr=Cl;var Qa;typeof navigator<"u"?Qa=navigator:Qa={};function Z0(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var cV,XQ;function S5(){if(!l(cV)&&(cV=!1,!mV())){let e=/ Chrome\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(cV=!0,XQ=Z0(e[1]))}return cV}function cSe(){return S5()&&XQ}var lV,KQ;function ZQ(){if(!l(lV)&&(lV=!1,!S5()&&!mV()&&/ Safari\/[\.0-9]+/.test(Qa.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(lV=!0,KQ=Z0(e[1]))}return lV}function lSe(){return ZQ()&&KQ}var uV,A5;function $Q(){if(!l(uV)){uV=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Qa.userAgent);e!==null&&(uV=!0,A5=Z0(e[1]),A5.isNightly=!!e[2])}return uV}function uSe(){return $Q()&&A5}var Zv,E5;function QQ(){if(!l(Zv)){Zv=!1;let e;Qa.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Zv=!0,E5=Z0(e[1]))):Qa.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Qa.userAgent),e!==null&&(Zv=!0,E5=Z0(e[1])))}return Zv}function fSe(){return QQ()&&E5}var fV,JQ;function mV(){if(!l(fV)){fV=!1;let e=/ Edg\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(fV=!0,JQ=Z0(e[1]))}return fV}function dSe(){return mV()&&JQ}var dV,v5;function pV(){if(!l(dV)){dV=!1;let e=/Firefox\/([\.0-9]+)/.exec(Qa.userAgent);e!==null&&(dV=!0,v5=Z0(e[1]))}return dV}var b5;function hSe(){return l(b5)||(b5=/Windows/i.test(Qa.appVersion)),b5}var T5;function mSe(){return l(T5)||(T5=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),T5}function pSe(){return pV()&&v5}var C5;function _Se(){return l(C5)||(C5=!pV()&&typeof PointerEvent<"u"&&(!l(Qa.pointerEnabled)||Qa.pointerEnabled)),C5}var eJ,hV;function tJ(){if(!l(hV)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;hV=l(t)&&t!=="",hV&&(eJ=t)}return hV}function gSe(){return tJ()?eJ:void 0}function Lc(){return Lc._result}Lc._promise=void 0;Lc._result=void 0;Lc.initialize=function(){return l(Lc._promise)||(Lc._promise=new Promise(e=>{let t=new Image;t.onload=function(){Lc._result=t.width>0&&t.height>0,e(Lc._result)},t.onerror=function(){Lc._result=!1,e(Lc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),Lc._promise};Object.defineProperties(Lc,{initialized:{get:function(){return l(Lc._result)}}});var NC=[];typeof ArrayBuffer<"u"&&(NC.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&NC.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&NC.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&NC.push(BigInt64Array),typeof BigUint64Array<"u"&&NC.push(BigUint64Array));var _f={isChrome:S5,chromeVersion:cSe,isSafari:ZQ,safariVersion:lSe,isWebkit:$Q,webkitVersion:uSe,isInternetExplorer:QQ,internetExplorerVersion:fSe,isEdge:mV,edgeVersion:dSe,isFirefox:pV,firefoxVersion:pSe,isWindows:hSe,isIPadOrIOS:mSe,hardwareConcurrency:y(Qa.hardwareConcurrency,3),supportsPointerEvents:_Se,supportsImageRenderingPixelated:tJ,supportsWebP:Lc,imageRenderingValue:gSe,typedArrayTypes:NC};_f.supportsBasis=function(e){return _f.supportsWebAssembly()&&e.context.supportsBasis};_f.supportsFullscreen=function(){return gr.supportsFullscreen()};_f.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};_f.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};_f.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};_f.supportsBigInt=function(){return typeof BigInt<"u"};_f.supportsWebWorkers=function(){return typeof Worker<"u"};_f.supportsWebAssembly=function(){return typeof WebAssembly<"u"};_f.supportsWebgl2=function(e){return e.context.webgl2};_f.supportsEsmWebWorkers=function(){return!pV()||parseInt(v5)>=114};var Ht=_f;function w5(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var D5,I5,gp;Ht.supportsTypedArrays()&&(D5=new ArrayBuffer(4),I5=new Uint32Array(D5),gp=new Uint8Array(D5));ie.fromRgba=function(e,t){return I5[0]=e,ie.fromBytes(gp[0],gp[1],gp[2],gp[3],t)};ie.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let u=2*n-c;r=w5(u,c,e+1/3),s=w5(u,c,e),a=w5(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var ySe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,xSe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,bSe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,TSe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.trim();let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=ySe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=xSe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=bSe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=TSe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return gp[0]=ie.floatToByte(this.red),gp[1]=ie.floatToByte(this.green),gp[2]=ie.floatToByte(this.blue),gp[3]=ie.floatToByte(this.alpha),I5[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var H=ie;function _V(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}_V.ALL=Object.freeze(new _V({color:new H(0,0,0,0),depth:1,stencil:0}));_V.prototype.execute=function(e,t){e.clear(this,t)};var ei=_V;var CSe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},ve=Object.freeze(CSe);function nJ(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=ve.COMPUTE,this.owner=e.owner}nJ.prototype.execute=function(e){e.execute(this)};var Nc=nJ;function Ft(e,t){this.x=y(e,0),this.y=y(t,0)}Ft.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new Ft(e,t)};Ft.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new Ft(e.x,e.y)};Ft.fromCartesian3=Ft.clone;Ft.fromCartesian4=Ft.clone;Ft.packedLength=2;Ft.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};Ft.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ft),n.x=e[t++],n.y=e[t],n};Ft.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Ft.pack(e[o],t,o*2);return t};Ft.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=Ft.unpack(e,i,t[o])}return t};Ft.fromArray=Ft.unpack;Ft.maximumComponent=function(e){return Math.max(e.x,e.y)};Ft.minimumComponent=function(e){return Math.min(e.x,e.y)};Ft.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};Ft.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};Ft.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};Ft.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};Ft.magnitude=function(e){return Math.sqrt(Ft.magnitudeSquared(e))};var gV=new Ft;Ft.distance=function(e,t){return Ft.subtract(e,t,gV),Ft.magnitude(gV)};Ft.distanceSquared=function(e,t){return Ft.subtract(e,t,gV),Ft.magnitudeSquared(gV)};Ft.normalize=function(e,t){let n=Ft.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};Ft.dot=function(e,t){return e.x*t.x+e.y*t.y};Ft.cross=function(e,t){return e.x*t.y-e.y*t.x};Ft.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};Ft.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};Ft.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};Ft.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};Ft.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};Ft.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};Ft.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};Ft.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var iJ=new Ft;Ft.lerp=function(e,t,n,i){return Ft.multiplyByScalar(t,n,iJ),i=Ft.multiplyByScalar(e,1-n,i),Ft.add(iJ,i,i)};var oJ=new Ft,rJ=new Ft;Ft.angleBetween=function(e,t){return Ft.normalize(e,oJ),Ft.normalize(t,rJ),P.acosClamped(Ft.dot(oJ,rJ))};var ASe=new Ft;Ft.mostOrthogonalAxis=function(e,t){let n=Ft.normalize(e,ASe);return Ft.abs(n,n),n.x<=n.y?t=Ft.clone(Ft.UNIT_X,t):t=Ft.clone(Ft.UNIT_Y,t),t};Ft.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y};Ft.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};Ft.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};Ft.ZERO=Object.freeze(new Ft(0,0));Ft.ONE=Object.freeze(new Ft(1,1));Ft.UNIT_X=Object.freeze(new Ft(1,0));Ft.UNIT_Y=Object.freeze(new Ft(0,1));Ft.prototype.clone=function(e){return Ft.clone(this,e)};Ft.prototype.equals=function(e){return Ft.equals(this,e)};Ft.prototype.equalsEpsilon=function(e,t,n){return Ft.equalsEpsilon(this,e,t,n)};Ft.prototype.toString=function(){return`(${this.x}, ${this.y})`};var z=Ft;var ESe=new h,SSe=new h;function vSe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,u=t.y,f=t.z,d=r*r*c*c,p=s*s*u*u,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,ESe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,C=n.y,A=n.z,E=SSe;E.x=b.x*T*2,E.y=b.y*C*2,E.z=b.z*A*2;let v=(1-x)*h.magnitude(e)/(.5*h.magnitude(E)),D=0,O,R,M,N,_,S,w,I,L,B,U;do{v-=D,M=1/(1+v*T),N=1/(1+v*C),_=1/(1+v*A),S=M*M,w=N*N,I=_*_,L=S*M,B=w*N,U=I*_,O=d*S+p*w+g*I-1,R=d*L*T+p*B*C+g*U*A;let V=-2*R;D=O/V}while(Math.abs(O)>P.EPSILON12);return l(o)?(o.x=r*M,o.y=s*N,o.z=a*_,o):new h(r*M,s*N,a*_)}var $0=vSe;function Uo(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Uo.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Uo(e,t,n)};Uo.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Uo.fromRadians(e,t,n,i)};var wSe=new h,DSe=new h,ISe=new h;Uo._ellipsoidOneOverRadii=new h(1/6378137,1/6378137,1/6356752314245179e-9);Uo._ellipsoidOneOverRadiiSquared=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9));Uo._ellipsoidCenterToleranceSquared=P.EPSILON1;Uo.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:Uo._ellipsoidOneOverRadii,o=l(t)?t.oneOverRadiiSquared:Uo._ellipsoidOneOverRadiiSquared,r=l(t)?t._centerToleranceSquared:Uo._ellipsoidCenterToleranceSquared,s=$0(e,i,o,r,DSe);if(!l(s))return;let a=h.multiplyComponents(s,o,wSe);a=h.normalize(a,a);let c=h.subtract(e,s,ISe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new Uo(u,f,d)};Uo.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Uo.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Uo(e.longitude,e.latitude,e.height)};Uo.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Uo.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Uo.ZERO=Object.freeze(new Uo(0,0,0));Uo.prototype.clone=function(e){return Uo.clone(this,e)};Uo.prototype.equals=function(e){return Uo.equals(this,e)};Uo.prototype.equalsEpsilon=function(e,t){return Uo.equalsEpsilon(this,e,t)};Uo.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=Uo;function aJ(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function mi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,aJ(this,e,t,n)}Object.defineProperties(mi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});mi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new mi(n.x,n.y,n.z)};mi.fromCartesian3=function(e,t){return l(t)||(t=new mi),l(e)&&aJ(t,e.x,e.y,e.z),t};mi.WGS84=Object.freeze(new mi(6378137,6378137,6356752314245179e-9));mi.UNIT_SPHERE=Object.freeze(new mi(1,1,1));mi.MOON=Object.freeze(new mi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));mi._default=mi.WGS84;Object.defineProperties(mi,{default:{get:function(){return mi._default},set:function(e){mi._default=e,h._ellipsoidRadiiSquared=e.radiiSquared,fe._ellipsoidOneOverRadii=e.oneOverRadii,fe._ellipsoidOneOverRadiiSquared=e.oneOverRadiiSquared,fe._ellipsoidCenterToleranceSquared=e._centerToleranceSquared}}});mi.prototype.clone=function(e){return mi.clone(this,e)};mi.packedLength=h.packedLength;mi.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};mi.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return mi.fromCartesian3(i,n)};mi.prototype.geocentricSurfaceNormal=h.normalize;mi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};mi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return l(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var PSe=new h,RSe=new h;mi.prototype.cartographicToCartesian=function(e,t){let n=PSe,i=RSe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),l(t)||(t=new h),h.add(i,n,t)};mi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var OSe=new h,MSe=new h,LSe=new h;mi.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,MSe);if(!l(n))return;let i=this.geodeticSurfaceNormal(n,OSe),o=h.subtract(e,n,LSe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(o,e))*h.magnitude(o);return l(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};mi.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};mi.prototype.scaleToGeodeticSurface=function(e,t){return $0(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};mi.prototype.scaleToGeocentricSurface=function(e,t){l(t)||(t=new h);let n=e.x,i=e.y,o=e.z,r=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*r.x+i*i*r.y+o*o*r.z);return h.multiplyByScalar(e,s,t)};mi.prototype.transformPositionToScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};mi.prototype.transformPositionFromScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};mi.prototype.equals=function(e){return this===e||l(e)&&h.equals(this._radii,e._radii)};mi.prototype.toString=function(){return this._radii.toString()};mi.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(l(n)||(n=new h),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var NSe=new h;mi.prototype.getLocalCurvature=function(e,t){l(t)||(t=new z);let n=this.getSurfaceNormalIntersectionWithZAxis(e,0,NSe),i=h.distance(e,n),o=this.minimumRadius*i/this.maximumRadius**2,r=i*o**2;return z.fromElements(1/i,1/r,t)};var FSe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],BSe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function sJ(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*FSe[s];r+=BSe[s]*(n(i+a)+n(i-a))}return r*=o,r}mi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=P.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,u=s*a;return sJ(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*sJ(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(u*p*p+c*(a*m*m+s*x*x)*d*d)})})};var ee=mi;function yV(e){this._ellipsoid=y(e,ee.default),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(yV.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});yV.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};yV.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var vi=yV;var kSe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},jt=Object.freeze(kSe);function VSe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Po=VSe;function USe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var Dg=USe;function zSe(e){return e%4===0&&e%100!==0||e%400===0}var Ad=zSe;var cJ=[31,28,31,30,31,30,31,31,30,31,30,31];function HSe(e,t,n,i,o,r,s,a){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,0),o=y(o,0),r=y(r,0),s=y(s,0),a=y(a,!1),this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function x(){xo.typeOf.number.greaterThanOrEquals("Year",e,1),xo.typeOf.number.lessThanOrEquals("Year",e,9999),xo.typeOf.number.greaterThanOrEquals("Month",t,1),xo.typeOf.number.lessThanOrEquals("Month",t,12),xo.typeOf.number.greaterThanOrEquals("Day",n,1),xo.typeOf.number.lessThanOrEquals("Day",n,31),xo.typeOf.number.greaterThanOrEquals("Hour",i,0),xo.typeOf.number.lessThanOrEquals("Hour",i,23),xo.typeOf.number.greaterThanOrEquals("Minute",o,0),xo.typeOf.number.lessThanOrEquals("Minute",o,59),xo.typeOf.bool("IsLeapSecond",a),xo.typeOf.number.greaterThanOrEquals("Second",r,0),xo.typeOf.number.lessThanOrEquals("Second",r,a?60:59),xo.typeOf.number.greaterThanOrEquals("Millisecond",s,0),xo.typeOf.number.lessThan("Millisecond",s,1e3)}function b(){let T=t===2&&Ad(e)?cJ[t-1]+1:cJ[t-1];if(n>T)throw new he("Month and Day represents invalid date")}}var yp=HSe;function GSe(e,t){this.julianDate=e,this.offset=t}var ji=GSe;var WSe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},Yn=Object.freeze(WSe);var jSe={UTC:0,TAI:1},jn=Object.freeze(jSe);var uJ=new yp,P5=[31,28,31,30,31,30,31,31,30,31,30,31],R5=29;function O5(e,t){return Ot.compare(e.julianDate,t.julianDate)}var FC=new ji;function bV(e){FC.julianDate=e;let t=Ot.leapSeconds,n=Po(t,FC,O5);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Ot.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Ot.addSeconds(e,i,e)}function lJ(e,t){FC.julianDate=e;let n=Ot.leapSeconds,i=Po(n,FC,O5);if(i<0&&(i=~i),i===0)return Ot.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Ot.addSeconds(e,-n[i-1].offset,t);let o=Ot.secondsDifference(n[i].julianDate,e);if(o===0)return Ot.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Ot.addSeconds(e,-n[--i].offset,t)}function Ig(e,t,n){let i=t/Yn.SECONDS_PER_DAY|0;return e+=i,t-=Yn.SECONDS_PER_DAY*i,t<0&&(e--,t+=Yn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function M5(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*Yn.SECONDS_PER_HOUR+o*Yn.SECONDS_PER_MINUTE+s*Yn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var qSe=/^(\d{4})$/,YSe=/^(\d{4})-(\d{2})$/,XSe=/^(\d{4})-?(\d{3})$/,KSe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,ZSe=/^(\d{4})-?(\d{2})-?(\d{2})$/,L5=/([Z+\-])?(\d{2})?:?(\d{2})?$/,$Se=/^(\d{2})(\.\d+)?/.source+L5.source,QSe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+L5.source,JSe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+L5.source;function Ot(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,jn.UTC);let i=e|0;t=t+(e-i)*Yn.SECONDS_PER_DAY,Ig(i,t,this),n===jn.UTC&&bV(this)}Ot.fromGregorianDate=function(e,t){let n=M5(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(Ig(n[0],n[1],t),bV(t),t):new Ot(n[0],n[1],jn.UTC)};Ot.fromDate=function(e,t){let n=M5(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(Ig(n[0],n[1],t),bV(t),t):new Ot(n[0],n[1],jn.UTC)};Ot.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(ZSe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(YSe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(qSe),n!==null)i=+n[1];else{let T;if(n=f.match(XSe),n!==null)i=+n[1],T=+n[2],g=Ad(i);else if(n=f.match(KSe),n!==null){i=+n[1];let C=+n[2],A=+n[3]||0,E=new Date(Date.UTC(i,0,4));T=C*7+A-E.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=Ad(i);let m;if(l(d)){n=d.match(JSe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,m=5):(n=d.match(QSe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match($Se),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],C=+n[m+1],A=+(n[m+2]||0);switch(T){case"+":s=s-C,a=a-A;break;case"-":s=s+C,a=a+A;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?R5:P5[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?R5:P5[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?R5:P5[o-1],r+=p;let b=M5(i,o,r,s,a,c,u);return l(t)?(Ig(b[0],b[1],t),bV(t)):t=new Ot(b[0],b[1],jn.UTC),x&&Ot.addSeconds(t,1,t),t};Ot.now=function(e){return Ot.fromDate(new Date,e)};var xV=new Ot(0,0,jn.TAI);Ot.toGregorianDate=function(e,t){let n=!1,i=lJ(e,xV);l(i)||(Ot.addSeconds(e,-1,xV),i=lJ(xV,xV),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/Yn.SECONDS_PER_HOUR|0,m=r-g*Yn.SECONDS_PER_HOUR,x=m/Yn.SECONDS_PER_MINUTE|0;m=m-x*Yn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/Yn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),l(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=x,t.second=b,t.millisecond=T,t.isLeapSecond=n,t):new yp(p,d,f,g,x,b,T,n)};Ot.toDate=function(e){let t=Ot.toGregorianDate(e,uJ),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};Ot.toIso8601=function(e,t){let n=Ot.toGregorianDate(e,uJ),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(u*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};Ot.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Ot(e.dayNumber,e.secondsOfDay,jn.TAI)};Ot.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Ot.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(Ot.secondsDifference(e,t))<=n};Ot.totalDays=function(e){return e.dayNumber+e.secondsOfDay/Yn.SECONDS_PER_DAY};Ot.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*Yn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Ot.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/Yn.SECONDS_PER_DAY;return n+i};Ot.computeTaiMinusUtc=function(e){FC.julianDate=e;let t=Ot.leapSeconds,n=Po(t,FC,O5);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Ot.addSeconds=function(e,t,n){return Ig(e.dayNumber,e.secondsOfDay+t,n)};Ot.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*Yn.SECONDS_PER_MINUTE;return Ig(e.dayNumber,i,n)};Ot.addHours=function(e,t,n){let i=e.secondsOfDay+t*Yn.SECONDS_PER_HOUR;return Ig(e.dayNumber,i,n)};Ot.addDays=function(e,t,n){let i=e.dayNumber+t;return Ig(i,e.secondsOfDay,n)};Ot.lessThan=function(e,t){return Ot.compare(e,t)<0};Ot.lessThanOrEquals=function(e,t){return Ot.compare(e,t)<=0};Ot.greaterThan=function(e,t){return Ot.compare(e,t)>0};Ot.greaterThanOrEquals=function(e,t){return Ot.compare(e,t)>=0};Ot.prototype.clone=function(e){return Ot.clone(this,e)};Ot.prototype.equals=function(e){return Ot.equals(this,e)};Ot.prototype.equalsEpsilon=function(e,t){return Ot.equalsEpsilon(this,e,t)};Ot.prototype.toString=function(){return Ot.toIso8601(this)};Ot.leapSeconds=[new ji(new Ot(2441317,43210,jn.TAI),10),new ji(new Ot(2441499,43211,jn.TAI),11),new ji(new Ot(2441683,43212,jn.TAI),12),new ji(new Ot(2442048,43213,jn.TAI),13),new ji(new Ot(2442413,43214,jn.TAI),14),new ji(new Ot(2442778,43215,jn.TAI),15),new ji(new Ot(2443144,43216,jn.TAI),16),new ji(new Ot(2443509,43217,jn.TAI),17),new ji(new Ot(2443874,43218,jn.TAI),18),new ji(new Ot(2444239,43219,jn.TAI),19),new ji(new Ot(2444786,43220,jn.TAI),20),new ji(new Ot(2445151,43221,jn.TAI),21),new ji(new Ot(2445516,43222,jn.TAI),22),new ji(new Ot(2446247,43223,jn.TAI),23),new ji(new Ot(2447161,43224,jn.TAI),24),new ji(new Ot(2447892,43225,jn.TAI),25),new ji(new Ot(2448257,43226,jn.TAI),26),new ji(new Ot(2448804,43227,jn.TAI),27),new ji(new Ot(2449169,43228,jn.TAI),28),new ji(new Ot(2449534,43229,jn.TAI),29),new ji(new Ot(2450083,43230,jn.TAI),30),new ji(new Ot(2450630,43231,jn.TAI),31),new ji(new Ot(2451179,43232,jn.TAI),32),new ji(new Ot(2453736,43233,jn.TAI),33),new ji(new Ot(2454832,43234,jn.TAI),34),new ji(new Ot(2456109,43235,jn.TAI),35),new ji(new Ot(2457204,43236,jn.TAI),36),new ji(new Ot(2457754,43237,jn.TAI),37)];var Z=Ot;var IJ=Vo(au(),1);function eve(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var $v=eve;function gJ(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=gJ(o,t)),n[i]=o}return n}var Ge=gJ;function yJ(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=yJ(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var yt=yJ;function tve(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var Al=tve;var xJ=Vo(au(),1);function N5(e,t){let n;return typeof document<"u"&&(n=document),N5._implementation(e,t,n)}N5._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new xJ.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var Kh=N5;var bJ=Vo(au(),1);function nve(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new bJ.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var Qv=nve;var TJ=Vo(au(),1);function ive(e){let t=new TJ.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var Q0=ive;var CJ={};function ove(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=CJ[t];l(i)||(i={},CJ[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var Ed=ove;var rve=/^blob:/i;function sve(e){return rve.test(e)}var J0=sve;var Zh;function ave(e){l(Zh)||(Zh=document.createElement("a")),Zh.href=window.location.href;let t=Zh.host,n=Zh.protocol;return Zh.href=e,Zh.href=Zh.href,n!==Zh.protocol||t!==Zh.host}var Pg=ave;var cve=/^data:/i;function lve(e){return cve.test(e)}var xp=lve;function uve(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var ex=uve;function fve(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r<s;++r)t+=`${o+encodeURIComponent(i[r])}&`;else t+=`${o+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var tx=fve;function dve(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,o=n.length;i<o;++i){let r=n[i].split("="),s=decodeURIComponent(r[0]),a=r[1];l(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var cu=dve;var hve={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},Zn=Object.freeze(hve);var mve={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},fs=Object.freeze(mve);function EV(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,fs.OTHER),this.serverKey=e.serverKey,this.state=Zn.UNISSUED,this.deferred=void 0,this.cancelled=!1}EV.prototype.cancel=function(){this.cancelled=!0};EV.prototype.clone=function(e){return l(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=Zn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new EV(this)};var Ko=EV;function pve(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let i=0;i<n.length;++i){let o=n[i],r=o.indexOf(": ");if(r>0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var Jv=pve;function AJ(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=Jv(this.responseHeaders))}AJ.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var $h=AJ;var SV=Vo(au(),1);function ew(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(ew.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});ew.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};ew.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&i[r]===t){o=r;break}return o!==-1?(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,i[o]=void 0):(n.splice(o,1),i.splice(o,1)),!0):!1};function _ve(e,t){return t-e}ew.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let r=t[e];l(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(_ve),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var me=ew;function nx(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(nx.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function F5(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}nx.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};nx.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,o=-1,r=!0;for(;r;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?o=a:o=e,s<t&&n(i[s],i[o])<0&&(o=s),o!==e?(F5(i,o,e),e=o):r=!1}};nx.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};nx.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);o!==0;){let s=Math.floor((o-1)/2);if(n(t[o],t[s])<0)F5(t,o,s),o=s;else break}let r;return l(i)&&this._length>i&&(r=t[i],this._length=i),r};nx.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return F5(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var tw=nx;function gve(e,t){return e.priority-t.priority}var eo={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},VC=20,Ja=new tw({comparator:gve});Ja.maximumLength=VC;Ja.reserve(VC);var Qh=[],bp={},yve=typeof document<"u"?new SV.default(document.location.href):new SV.default,vV=new me;function Zo(){}Zo.maximumRequests=50;Zo.maximumRequestsPerServer=18;Zo.requestsByServer={};Zo.throttleRequests=!0;Zo.debugShowStatistics=!1;Zo.requestCompletedEvent=vV;Object.defineProperties(Zo,{statistics:{get:function(){return eo}},priorityHeapLength:{get:function(){return VC},set:function(e){if(e<VC)for(;Ja.length>e;){let t=Ja.pop();ix(t)}VC=e,Ja.maximumLength=e,Ja.reserve(e)}}});function EJ(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}Zo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(Zo.requestsByServer[e],Zo.maximumRequestsPerServer);return bp[e]+t<=n};Zo.heapHasOpenSlots=function(e){return Ja.length+e<=VC};function SJ(e){return e.state===Zn.UNISSUED&&(e.state=Zn.ISSUED,e.deferred=Al()),e.deferred.promise}function xve(e){return function(t){if(e.state===Zn.CANCELLED)return;let n=e.deferred;--eo.numberOfActiveRequests,--bp[e.serverKey],vV.raiseEvent(),e.state=Zn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function bve(e){return function(t){e.state!==Zn.CANCELLED&&(++eo.numberOfFailedRequests,--eo.numberOfActiveRequests,--bp[e.serverKey],vV.raiseEvent(t),e.state=Zn.FAILED,e.deferred.reject(t))}}function vJ(e){let t=SJ(e);return e.state=Zn.ACTIVE,Qh.push(e),++eo.numberOfActiveRequests,++eo.numberOfActiveRequestsEver,++bp[e.serverKey],e.requestFunction().then(xve(e)).catch(bve(e)),t}function ix(e){let t=e.state===Zn.ACTIVE;if(e.state=Zn.CANCELLED,++eo.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--eo.numberOfActiveRequests,--bp[e.serverKey],++eo.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}Zo.update=function(){let e,t,n=0,i=Qh.length;for(e=0;e<i;++e){if(t=Qh[e],t.cancelled&&ix(t),t.state!==Zn.ACTIVE){++n;continue}n>0&&(Qh[e-n]=t)}Qh.length-=n;let o=Ja.internalArray,r=Ja.length;for(e=0;e<r;++e)EJ(o[e]);Ja.resort();let s=Math.max(Zo.maximumRequests-Qh.length,0),a=0;for(;a<s&&Ja.length>0;){if(t=Ja.pop(),t.cancelled){ix(t);continue}if(t.throttleByServer&&!Zo.serverHasOpenSlots(t.serverKey)){ix(t);continue}vJ(t),++a}Tve()};Zo.getServerKey=function(e){let t=new SV.default(e);t.scheme()===""&&(t=t.absoluteTo(yve),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=bp[n];return l(i)||(bp[n]=0),n};Zo.request=function(e){if(xp(e.url)||J0(e.url))return vV.raiseEvent(),e.state=Zn.RECEIVED,e.requestFunction();if(++eo.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=Zo.getServerKey(e.url)),Zo.throttleRequests&&e.throttleByServer&&!Zo.serverHasOpenSlots(e.serverKey))return;if(!Zo.throttleRequests||!e.throttle)return vJ(e);if(Qh.length>=Zo.maximumRequests)return;EJ(e);let t=Ja.insert(e);if(l(t)){if(t===e)return;ix(t)}return SJ(e)};function Tve(){Zo.debugShowStatistics&&(eo.numberOfActiveRequests===0&&eo.lastNumberOfActiveRequests>0&&(eo.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${eo.numberOfAttemptedRequests}`),eo.numberOfAttemptedRequests=0),eo.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${eo.numberOfCancelledRequests}`),eo.numberOfCancelledRequests=0),eo.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${eo.numberOfCancelledActiveRequests}`),eo.numberOfCancelledActiveRequests=0),eo.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${eo.numberOfFailedRequests}`),eo.numberOfFailedRequests=0)),eo.lastNumberOfActiveRequests=eo.numberOfActiveRequests)}Zo.clearForSpecs=function(){for(;Ja.length>0;){let t=Ja.pop();ix(t)}let e=Qh.length;for(let t=0;t<e;++t)ix(Qh[t]);Qh.length=0,bp={},eo.numberOfAttemptedRequests=0,eo.numberOfActiveRequests=0,eo.numberOfCancelledRequests=0,eo.numberOfCancelledActiveRequests=0,eo.numberOfFailedRequests=0,eo.numberOfActiveRequestsEver=0,eo.lastNumberOfActiveRequests=0};Zo.numberOfActiveRequestsByServer=function(e){return bp[e]};Zo.requestHeap=Ja;var ec=Zo;var wJ=Vo(au(),1);var nw={},UC={};nw.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(UC[n])||(UC[n]=!0)};nw.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(UC[n])&&delete UC[n]};function Cve(e){let t=new wJ.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}nw.contains=function(e){let t=Cve(e);return!!(l(t)&&l(UC[t]))};nw.clear=function(){UC={}};var zC=nw;var PJ=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function It(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=Jh(e.templateValues,{}),this._queryParameters=Jh(e.queryParameters,{}),this.headers=Jh(e.headers,{}),this.request=y(e.request,new Ko),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function Jh(e,t){return l(e)?Ge(e):t}It.createIfNeeded=function(e){return e instanceof It?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new It({url:e})};var HC;It.supportsImageBitmapOptions=function(){return l(HC)?HC:typeof createImageBitmap!="function"?(HC=Promise.resolve(!1),HC):(HC=It.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=Ed(t[0]),i=Ed(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),HC)};Object.defineProperties(It,{isBlobSupported:{get:function(){return PJ}}});Object.defineProperties(It.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return Q0(this._url)}},isDataUri:{get:function(){return xp(this._url)}},isBlobUri:{get:function(){return J0(this._url)}},isCrossOriginUrl:{get:function(){return Pg(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});It.prototype.toString=function(){return this.getUrlComponent(!0,!0)};It.prototype.parseUrl=function(e,t,n,i){let o=new IJ.default(e),r=Ave(o.query());this._queryParameters=t?DV(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(Kh(i))),this._url=o.toString()};function Ave(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:cu(e)}function DV(e,t,n){if(!n)return yt(e,t);let i=Ge(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}It.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${Eve(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function Eve(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${tx(e)}`}It.prototype.setQueryParameters=function(e,t){t?this._queryParameters=DV(this._queryParameters,e,!1):this._queryParameters=DV(e,this._queryParameters,!1)};It.prototype.appendQueryParameters=function(e){this._queryParameters=DV(e,this._queryParameters,!0)};It.prototype.setTemplateValues=function(e,t){t?this._templateValues=yt(this._templateValues,e):this._templateValues=yt(e,this._templateValues)};It.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=yt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=yt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=yt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};It.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};It.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Ge(this._queryParameters),e._templateValues=Ge(this._templateValues),e.headers=Ge(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new It({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:l(this.credits)?this.credits.slice():void 0})};It.prototype.getBaseUri=function(e){return Qv(this.getUrlComponent(e),e)};It.prototype.appendForwardSlash=function(){this._url=$v(this._url)};It.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};It.fetchArrayBuffer=function(e){return new It(e).fetchArrayBuffer()};It.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};It.fetchBlob=function(e){return new It(e).fetchBlob()};It.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(k5(this.request),!PJ||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return B5({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return It.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return It.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new It({url:d}),B5({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function B5(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=Al();return It._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=ec.request(r);if(l(s))return s.catch(function(a){return r.state!==Zn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=Zn.UNISSUED,r.deferred=void 0,B5({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}It.fetchImage=function(e){return new It(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};It.prototype.fetchText=function(){return this.fetch({responseType:"text"})};It.fetchText=function(e){return new It(e).fetchText()};It.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};It.fetchJson=function(e){return new It(e).fetchJson()};It.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};It.fetchXML=function(e){return new It(e).fetchXML()};It.prototype.fetchJsonp=function(e){e=y(e,"callback"),k5(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return RJ(this,e,t)};function RJ(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=Al();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},It._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=ec.request(o);if(l(s))return s.catch(function(a){return o.state!==Zn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=Zn.UNISSUED,o.deferred=void 0,RJ(e,t,n)):Promise.reject(a)})})}It.fetchJsonp=function(e){return new It(e).fetchJsonp(e.callbackParameterName)};It.prototype._makeRequest=function(e){let t=this;k5(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=yt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=Al(),d=It._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=ec.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==Zn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=Zn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function k5(e){if(e.state===Zn.ISSUED||e.state===Zn.ACTIVE)throw new ce("The Resource is already being fetched.");e.state=Zn.UNISSUED,e.deferred=void 0}var Sve=/^data:(.*?)(;base64)?,(.*)$/;function wV(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function DJ(e,t){let n=wV(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return i}function vve(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return wV(i,o);case"arraybuffer":return DJ(i,o);case"blob":return r=DJ(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(wV(i,o),n);case"json":return JSON.parse(wV(i,o));default:}}It.prototype.fetch=function(e){return e=Jh(e,{}),e.method="GET",this._makeRequest(e)};It.fetch=function(e){return new It(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.delete=function(e){return e=Jh(e,{}),e.method="DELETE",this._makeRequest(e)};It.delete=function(e){return new It(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};It.prototype.head=function(e){return e=Jh(e,{}),e.method="HEAD",this._makeRequest(e)};It.head=function(e){return new It(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.options=function(e){return e=Jh(e,{}),e.method="OPTIONS",this._makeRequest(e)};It.options=function(e){return new It(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.post=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};It.post=function(e){return new It(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.put=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};It.put=function(e){return new It(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It.prototype.patch=function(e,t){return xo.defined("data",e),t=Jh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};It.patch=function(e){return new It(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};It._Implementations={};It._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(o){n.reject(o)},t&&(zC.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};It._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;It.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){It._Implementations.loadImageElement(s,t,n);return}let c="blob",u="GET",f=Al(),d=It._Implementations.loadWithXhr(s,c,u,void 0,void 0,f,void 0,void 0,void 0);return l(d)&&l(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!l(p)){n.reject(new ce(`Successfully retrieved ${s} but it contained no content.`));return}return It.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};It.createImageBitmapFromBlob=function(e,t){return xo.defined("options",t),xo.typeOf.bool("options.flipY",t.flipY),xo.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),xo.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function wve(e,t,n,i,o,r,s){fetch(e,{method:n,headers:o}).then(async a=>{if(!a.ok){let c={};a.headers.forEach((u,f)=>{c[f]=u}),r.reject(new $h(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new $h)})}var Dve=typeof XMLHttpRequest>"u";It._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=Sve.exec(e);if(a!==null){r.resolve(vve(a,t));return}if(Dve){wve(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(zC.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new $h(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};g.forEach(function(x){let b=x.split(": "),T=b.shift();m[T]=b.join(": ")}),r.resolve(m);return}if(c.status===204)r.resolve(void 0);else if(l(f)&&(!l(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new ce("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new $h)},c.send(i),c};It._Implementations.loadAndExecuteScript=function(e,t,n){return ex(e,t).catch(function(i){n.reject(i)})};It._DefaultImplementations={};It._DefaultImplementations.createImage=It._Implementations.createImage;It._DefaultImplementations.loadWithXhr=It._Implementations.loadWithXhr;It._DefaultImplementations.loadAndExecuteScript=It._Implementations.loadAndExecuteScript;It.DEFAULT=Object.freeze(new It({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var we=It;function ow(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?OJ(this,e.data):OJ(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}ow.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ce(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new ow({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};ow.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new Dg(0,0,0,0,0),t}});ow.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new Dg(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],u=Z.lessThanOrEquals(a,e),f=!l(c),d=f||Z.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,LJ(this,n,this._samples,e,o,r,t),t}let s=Po(n,e,Z.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,o=s,r=s):(r=~s,o=r-1,o<0&&(o=0)),this._lastIndex=o,LJ(this,n,this._samples,e,o,r,t),t};function Ive(e,t){return Z.compare(e.julianDate,t)}function OJ(e,t){if(!l(t.columnNames))throw new ce("Error in loaded EOP data: The columnNames property is required.");if(!l(t.samples))throw new ce("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),o=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||o<0||r<0||s<0||a<0||c<0)throw new ce("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let u=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=o,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,m=u.length;g<m;g+=e._columnCount){let x=u[g+n],b=u[g+c],T=x+Yn.MODIFIED_JULIAN_DATE_DIFFERENCE,C=new Z(T,b,jn.TAI);if(f.push(C),p){if(b!==d&&l(d)){let A=Z.leapSeconds,E=Po(A,C,Ive);if(E<0){let v=new ji(C,b);A.splice(~E,0,v)}}d=b}}}function MJ(e,t,n,i,o){let r=n*i;o.xPoleWander=t[r+e._xPoleWanderRadiansColumn],o.yPoleWander=t[r+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function iw(e,t,n){return t+e*(n-t)}function LJ(e,t,n,i,o,r,s){let a=e._columnCount;if(r>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],u=t[r];if(c.equals(u)||i.equals(c))return MJ(e,n,o,a,s),s;if(i.equals(u))return MJ(e,n,r,a,s),s;let f=Z.secondsDifference(i,c)/Z.secondsDifference(u,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],m=n[p+e._ut1MinusUtcSecondsColumn],x=m-g;if(x>.5||x<-.5){let b=n[d+e._taiMinusUtcSecondsColumn],T=n[p+e._taiMinusUtcSecondsColumn];b!==T&&(u.equals(i)?g=m:m-=T-b)}return s.xPoleWander=iw(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=iw(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=iw(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=iw(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=iw(f,g,m),s}var rw=ow;function tc(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}tc.fromQuaternion=function(e,t){l(t)||(t=new tc);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-P.asinClamped(n),t};tc.fromDegrees=function(e,t,n,i){return l(i)||(i=new tc),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};tc.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new tc(e.heading,e.pitch,e.roll)};tc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};tc.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};tc.prototype.clone=function(e){return tc.clone(this,e)};tc.prototype.equals=function(e){return tc.equals(this,e)};tc.prototype.equalsEpsilon=function(e,t,n){return tc.equalsEpsilon(this,e,t,n)};tc.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Sa=tc;var NJ={},FJ=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function Pve(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=FJ.exec(i);if(o!==null)return o[1]}}var IV;function BJ(e){return typeof document>"u"?e:(l(IV)||(IV=document.createElement("a")),IV.href=e,IV.href)}var ox;function kJ(){if(l(ox))return ox;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l(NJ?.url)?e=Kh(".",NJ.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?e=Kh("..",rx("Core/buildModuleUrl.js")):e=Pve(),ox=new we({url:BJ(e)}),ox.appendForwardSlash(),ox}function Rve(e){return BJ(require.toUrl(`../${e}`))}function VJ(e){return kJ().getDerivedResource({url:e}).url}var PV;function rx(e){return l(PV)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(require.toUrl)?PV=Rve:PV=VJ),PV(e)}rx._cesiumScriptRegex=FJ;rx._buildModuleUrlFromBaseUrl=VJ;rx._clearBaseResource=function(){ox=void 0};rx.setBaseUrl=function(e){ox=we.DEFAULT.getDerivedResource({url:e})};rx.getCesiumBaseUrl=kJ;var nn=rx;function Ove(e,t,n){this.x=e,this.y=t,this.s=n}var sx=Ove;function z5(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=we.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new Z(this._sampleZeroJulianEphemerisDate,0,jn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var Mve=new Z(0,0,jn.TAI);function V5(e,t,n){let i=Mve;return i.dayNumber=t,i.secondsOfDay=n,Z.daysDifference(i,e._sampleZeroDateTT)}z5.prototype.preload=function(e,t,n,i){let o=V5(this,e,t),r=V5(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(U5(this,d));return Promise.all(f)};z5.prototype.computeXysRadians=function(e,t,n){let i=V5(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,u=this._samples;if(l(u[s*3])||(U5(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(U5(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new sx(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,m=this._xTable,x,b;for(x=0;x<=r;++x)d[x]=f-m[x];for(x=0;x<=r;++x){for(g[x]=1,b=0;b<=r;++b)b!==x&&(g[x]*=d[b]);g[x]*=p[x];let T=(s+x)*3;n.x+=g[x]*u[T++],n.y+=g[x]*u[T++],n.s+=g[x]*u[T]}return n};function U5(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new we({url:nn(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let u=0,f=a.length;u<f;++u)s[c+u]=a[u]});return e._chunkDownloadsInProgress[t]=o,o}var sw=z5;function nt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var aw=new h;nt.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);aw=h.normalize(e,aw);let r=aw.x*o,s=aw.y*o,a=aw.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new nt(r,s,a,c)};var Lve=[1,2,0],Nve=new Array(3);nt.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],u=e[$.COLUMN2ROW2],f=a+c+u;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let d=Lve,p=0;c>a&&(p=1),u>a&&u>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(g,g)]-e[$.getElementIndex(m,m)]+1);let x=Nve;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(m,g)]-e[$.getElementIndex(g,m)])*n,x[g]=(e[$.getElementIndex(g,p)]+e[$.getElementIndex(p,g)])*n,x[m]=(e[$.getElementIndex(m,p)]+e[$.getElementIndex(p,m)])*n,i=-x[0],o=-x[1],r=-x[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new nt(i,o,r,s)};var UJ=new nt,zJ=new nt,H5=new nt,HJ=new nt;nt.fromHeadingPitchRoll=function(e,t){return HJ=nt.fromAxisAngle(h.UNIT_X,e.roll,UJ),H5=nt.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=nt.multiply(H5,HJ,H5),zJ=nt.fromAxisAngle(h.UNIT_Z,-e.heading,UJ),nt.multiply(zJ,t,t)};var RV=new h,G5=new h,Sd=new nt,GJ=new nt,OV=new nt;nt.packedLength=4;nt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};nt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new nt),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};nt.packedInterpolationLength=3;nt.convertPackedArrayForInterpolation=function(e,t,n,i){nt.unpack(e,n*4,OV),nt.conjugate(OV,OV);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;nt.unpack(e,(t+o)*4,Sd),nt.multiply(Sd,OV,Sd),Sd.w<0&&nt.negate(Sd,Sd),nt.computeAxis(Sd,RV);let a=nt.computeAngle(Sd);l(i)||(i=[]),i[s]=RV.x*a,i[s+1]=RV.y*a,i[s+2]=RV.z*a}};nt.unpackInterpolationResult=function(e,t,n,i,o){l(o)||(o=new nt),h.fromArray(e,0,G5);let r=h.magnitude(G5);return nt.unpack(t,i*4,GJ),r===0?nt.clone(nt.IDENTITY,Sd):nt.fromAxisAngle(G5,r,Sd),nt.multiply(Sd,GJ,o)};nt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new nt(e.x,e.y,e.z,e.w)};nt.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};nt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};nt.magnitude=function(e){return Math.sqrt(nt.magnitudeSquared(e))};nt.normalize=function(e,t){let n=1/nt.magnitude(e),i=e.x*n,o=e.y*n,r=e.z*n,s=e.w*n;return t.x=i,t.y=o,t.z=r,t.w=s,t};nt.inverse=function(e,t){let n=nt.magnitudeSquared(e);return t=nt.conjugate(e,t),nt.multiplyByScalar(t,1/n,t)};nt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};nt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};nt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};nt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};nt.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,u=t.z,f=t.w,d=s*a+i*f+o*u-r*c,p=s*c-i*u+o*f+r*a,g=s*u+i*c-o*a+r*f,m=s*f-i*a-o*c-r*u;return n.x=d,n.y=p,n.z=g,n.w=m,n};nt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};nt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};nt.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6||Math.abs(n+1)<P.EPSILON6)return t.x=1,t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};nt.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var W5=new nt;nt.lerp=function(e,t,n,i){return W5=nt.multiplyByScalar(t,n,W5),i=nt.multiplyByScalar(e,1-n,i),nt.add(W5,i,i)};var WJ=new nt,j5=new nt,q5=new nt;nt.slerp=function(e,t,n,i){let o=nt.dot(e,t),r=t;if(o<0&&(o=-o,r=WJ=nt.negate(t,WJ)),1-o<P.EPSILON6)return nt.lerp(e,r,n,i);let s=Math.acos(o);return j5=nt.multiplyByScalar(e,Math.sin((1-n)*s),j5),q5=nt.multiplyByScalar(r,Math.sin(n*s),q5),i=nt.add(j5,q5,i),nt.multiplyByScalar(i,1/Math.sin(s),i)};nt.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};nt.exp=function(e,t){let n=h.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var Fve=new h,Bve=new h,cw=new nt,GC=new nt;nt.computeInnerQuadrangle=function(e,t,n,i){let o=nt.conjugate(t,cw);nt.multiply(o,n,GC);let r=nt.log(GC,Fve);nt.multiply(o,e,GC);let s=nt.log(GC,Bve);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),nt.exp(r,cw),nt.multiply(t,cw,i)};nt.squad=function(e,t,n,i,o,r){let s=nt.slerp(e,t,o,cw),a=nt.slerp(n,i,o,GC);return nt.slerp(s,a,2*o*(1-o),r)};var kve=new nt,jJ=1.9011074535173003,MV=Ht.supportsTypedArrays()?new Float32Array(8):[],LV=Ht.supportsTypedArrays()?new Float32Array(8):[],Tp=Ht.supportsTypedArrays()?new Float32Array(8):[],Cp=Ht.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;MV[e]=1/(t*n),LV[e]=t/n}MV[7]=jJ/(8*17);LV[7]=jJ*8/17;nt.fastSlerp=function(e,t,n,i){let o=nt.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)Tp[g]=(MV[g]*c-LV[g])*s,Cp[g]=(MV[g]*u-LV[g])*s;let f=r*n*(1+Tp[0]*(1+Tp[1]*(1+Tp[2]*(1+Tp[3]*(1+Tp[4]*(1+Tp[5]*(1+Tp[6]*(1+Tp[7])))))))),d=a*(1+Cp[0]*(1+Cp[1]*(1+Cp[2]*(1+Cp[3]*(1+Cp[4]*(1+Cp[5]*(1+Cp[6]*(1+Cp[7])))))))),p=nt.multiplyByScalar(e,d,kve);return nt.multiplyByScalar(t,f,i),nt.add(p,i,i)};nt.fastSquad=function(e,t,n,i,o,r){let s=nt.fastSlerp(e,t,o,cw),a=nt.fastSlerp(n,i,o,GC);return nt.fastSlerp(s,a,2*o*(1-o),r)};nt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};nt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};nt.ZERO=Object.freeze(new nt(0,0,0,0));nt.IDENTITY=Object.freeze(new nt(0,0,0,1));nt.prototype.clone=function(e){return nt.clone(this,e)};nt.prototype.equals=function(e){return nt.equals(this,e)};nt.prototype.equalsEpsilon=function(e,t){return nt.equalsEpsilon(this,e,t)};nt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Oe=nt;var ui={},Y5={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},WC={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},X5={},El={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},Rg=new h,Og=new h,Mg=new h;ui.localFrameToFixedFrameGenerator=function(e,t){if(!Y5.hasOwnProperty(e)||!Y5[e].hasOwnProperty(t))throw new he("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=Y5[e][t],i,o=e+t;return l(X5[o])?i=X5[o]:(i=function(r,s,a){if(l(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,P.EPSILON14))h.unpack(WC[e],0,Rg),h.unpack(WC[t],0,Og),h.unpack(WC[n],0,Mg);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);h.unpack(WC[e],0,Rg),e!=="east"&&e!=="west"&&h.multiplyByScalar(Rg,c,Rg),h.unpack(WC[t],0,Og),t!=="east"&&t!=="west"&&h.multiplyByScalar(Og,c,Og),h.unpack(WC[n],0,Mg),n!=="east"&&n!=="west"&&h.multiplyByScalar(Mg,c,Mg)}else{s=y(s,ee.default),s.geodeticSurfaceNormal(r,El.up);let c=El.up,u=El.east;u.x=-r.y,u.y=r.x,u.z=0,h.normalize(u,El.east),h.cross(c,u,El.north),h.multiplyByScalar(El.up,-1,El.down),h.multiplyByScalar(El.east,-1,El.west),h.multiplyByScalar(El.north,-1,El.south),Rg=El[e],Og=El[t],Mg=El[n]}return a[0]=Rg.x,a[1]=Rg.y,a[2]=Rg.z,a[3]=0,a[4]=Og.x,a[5]=Og.y,a[6]=Og.z,a[7]=0,a[8]=Mg.x,a[9]=Mg.y,a[10]=Mg.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},X5[o]=i),i};ui.eastNorthUpToFixedFrame=ui.localFrameToFixedFrameGenerator("east","north");ui.northEastDownToFixedFrame=ui.localFrameToFixedFrameGenerator("north","east");ui.northUpEastToFixedFrame=ui.localFrameToFixedFrameGenerator("north","up");ui.northWestUpToFixedFrame=ui.localFrameToFixedFrameGenerator("north","west");var Vve=new Oe,Uve=new h(1,1,1),zve=new F;ui.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,ui.eastNorthUpToFixedFrame);let r=Oe.fromHeadingPitchRoll(t,Vve),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,Uve,zve);return o=i(e,n,o),F.multiply(o,s,o)};var Hve=new F,Gve=new $;ui.headingPitchRollQuaternion=function(e,t,n,i,o){let r=ui.headingPitchRollToFixedFrame(e,t,n,i,Hve),s=F.getMatrix3(r,Gve);return Oe.fromRotationMatrix(s,o)};var Wve=new h(1,1,1),jve=new h,qJ=new F,qve=new F,Yve=new $,Xve=new Oe;ui.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ee.default),n=y(n,ui.eastNorthUpToFixedFrame),l(i)||(i=new Sa);let o=F.getTranslation(e,jve);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,qJ),qJ),s=F.setScale(e,Wve,qve);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Oe.fromRotationMatrix(F.getMatrix3(r,Yve),Xve);return a=Oe.normalize(a,a),Sa.fromQuaternion(a,i)};var Kve=6*3600+41*60+50.54841,Zve=8640184812866e-6,$ve=.093104,Qve=-62e-7,Jve=11772758384668e-32,ewe=72921158553e-15,twe=P.TWO_PI/86400,NV=new Z;ui.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=ui.computeIcrfToFixedMatrix(e,t);return l(n)||(n=ui.computeTemeToPseudoFixedMatrix(e,t)),n};ui.computeTemeToPseudoFixedMatrix=function(e,t){NV=Z.addSeconds(e,-Z.computeTaiMinusUtc(e),NV);let n=NV.dayNumber,i=NV.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/Yn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/Yn.DAYS_PER_JULIAN_CENTURY;let a=(Kve+o*(Zve+o*($ve+o*Qve)))*twe%P.TWO_PI,c=ewe+Jve*(n-24515455e-1),u=(i+Yn.SECONDS_PER_DAY*.5)%Yn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(d,p,0,-p,d,0,0,0,1)};ui.iau2006XysData=new sw;ui.earthOrientationParameters=rw.NONE;var $5=32.184,nwe=2451545;ui.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+$5,i=e.stop.dayNumber,o=e.stop.secondsOfDay+$5;return ui.iau2006XysData.preload(t,n,i,o)};ui.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var iwe=32.184,owe=2451545,FV=new Sa,rwe=new $,swe=new Z;ui.computeMoonFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=Z.addSeconds(e,iwe,swe),i=Z.totalDays(n)-owe,o=P.toRadians(12.112)-P.toRadians(.052992)*i,r=P.toRadians(24.224)-P.toRadians(.105984)*i,s=P.toRadians(227.645)+P.toRadians(13.012)*i,a=P.toRadians(261.105)+P.toRadians(13.340716)*i,c=P.toRadians(358)+P.toRadians(.9856)*i;return FV.pitch=P.toRadians(180)-P.toRadians(3.878)*Math.sin(o)-P.toRadians(.12)*Math.sin(r)+P.toRadians(.07)*Math.sin(s)-P.toRadians(.017)*Math.sin(a),FV.roll=P.toRadians(66.53-90)+P.toRadians(1.543)*Math.cos(o)+P.toRadians(.24)*Math.cos(r)-P.toRadians(.028)*Math.cos(s)+P.toRadians(.007)*Math.cos(a),FV.heading=P.toRadians(244.375-90)+P.toRadians(13.17635831)*i+P.toRadians(3.558)*Math.sin(o)+P.toRadians(.121)*Math.sin(r)-P.toRadians(.064)*Math.sin(s)+P.toRadians(.016)*Math.sin(a)+P.toRadians(.025)*Math.sin(c),$.fromHeadingPitchRoll(FV,rwe)};ui.computeIcrfToMoonFixedMatrix=function(e,t){l(t)||(t=new $);let n=ui.computeMoonFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var awe=new sx(0,0,0),cwe=new Dg(0,0,0,0,0,0),K5=new $,Z5=new $;ui.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=ui.earthOrientationParameters.compute(e,cwe);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+$5,r=ui.iau2006XysData.computeXysRadians(i,o,awe);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=K5;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=$.fromRotationZ(-r.s,Z5),d=$.multiply(u,f,K5),p=e.dayNumber,g=e.secondsOfDay-Z.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/Yn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*P.TWO_PI;let T=$.fromRotationZ(b,Z5),C=$.multiply(d,T,K5),A=Math.cos(n.xPoleWander),E=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-nwe+o/Yn.SECONDS_PER_DAY;O/=36525;let R=-47e-6*O*P.RADIANS_PER_DEGREE/3600,M=Math.cos(R),N=Math.sin(R),_=Z5;return _[0]=A*M,_[1]=A*N,_[2]=v,_[3]=-E*N+D*v*M,_[4]=E*M+D*v*N,_[5]=-D*A,_[6]=-D*N-E*v*M,_[7]=D*M-E*v*N,_[8]=E*A,$.multiply(C,_,t)};var lwe=new oe;ui.pointToWindowCoordinates=function(e,t,n,i){return i=ui.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};ui.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new z);let o=lwe;return F.multiplyByVector(e,oe.fromElements(n.x,n.y,n.z,1,o),o),oe.multiplyByScalar(o,1/o.w,o),F.multiplyByVector(t,o,o),z.fromCartesian4(o,i)};var uwe=new h,fwe=new h,dwe=new h;ui.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ee.default).geodeticSurfaceNormal(e,uwe),r=h.cross(t,o,fwe);h.equalsEpsilon(r,h.ZERO,P.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,dwe);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var YJ=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),XJ=new fe,Q5=new h,hwe=new h,mwe=new $,J5=new F,KJ=new F;ui.basisTo2D=function(e,t,n){let i=F.getTranslation(t,hwe),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,Q5);else{let f=o.cartesianToCartographic(i,XJ);r=e.project(f,Q5),h.fromElements(r.z,r.x,r.y,r)}let s=ui.eastNorthUpToFixedFrame(i,o,J5),a=F.inverseTransformation(s,KJ),c=F.getMatrix3(t,mwe),u=F.multiplyByMatrix3(a,c,n);return F.multiply(YJ,u,n),F.setTranslation(n,r,n),n};ui.ellipsoidTo2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=ui.eastNorthUpToFixedFrame(t,i,J5),r=F.inverseTransformation(o,KJ),s=i.cartesianToCartographic(t,XJ),a=e.project(s,Q5);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,J5);return F.multiply(YJ,r,n),F.multiply(c,n,n),n};var Mt=ui;var ZJ={};function lw(e,t){l(ZJ[e])||(ZJ[e]=!0,console.warn(y(t,e)))}lw.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";lw.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";lw.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";lw.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var xt=lw;function pwe(e,t){xt(e,t)}var ds=pwe;function En(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(En.prototype,{width:{get:function(){return En.computeWidth(this)}},height:{get:function(){return En.computeHeight(this)}}});En.packedLength=4;En.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};En.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new En),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};En.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};En.computeHeight=function(e){return e.north-e.south};En.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),l(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new En(e,t,n,i)};En.fromRadians=function(e,t,n,i,o){return l(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new En(e,t,n,i)};En.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,u=e.length;c<u;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new En(n,s,i,a)};En.fromCartesianArray=function(e,t,n){t=y(t,ee.default);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let u=0,f=e.length;u<f;u++){let d=t.cartesianToCartographic(e[u]);i=Math.min(i,d.longitude),o=Math.max(o,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new En(i,a,o,c)};var _we=new h,gwe=new h,ywe=new h,xwe=new h,bwe=new h,e6=new Array(5);for(let e=0;e<e6.length;++e)e6[e]=new h;En.fromBoundingSphere=function(e,t,n){let i=e.center,o=e.radius;if(l(t)||(t=ee.default),l(n)||(n=new En),h.equals(i,h.ZERO))return En.clone(En.MAX_VALUE,n),n;let r=Mt.eastNorthUpToFixedFrame(i,t,_we),s=F.multiplyByPointAsVector(r,h.UNIT_X,gwe);h.normalize(s,s);let a=F.multiplyByPointAsVector(r,h.UNIT_Y,ywe);h.normalize(a,a),h.multiplyByScalar(a,o,a),h.multiplyByScalar(s,o,s);let c=h.negate(a,bwe),u=h.negate(s,xwe),f=e6,d=f[0];return h.add(i,a,d),d=f[1],h.add(i,u,d),d=f[2],h.add(i,c,d),d=f[3],h.add(i,s,d),f[4]=i,En.fromCartesianArray(f,t,n)};En.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new En(e.west,e.south,e.east,e.north)};En.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};En.prototype.clone=function(e){return En.clone(this,e)};En.prototype.equals=function(e){return En.equals(this,e)};En.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};En.prototype.equalsEpsilon=function(e,t){return En.equalsEpsilon(this,e,t)};En.validate=function(e){return ds("Rectangle.validate","Rectangle.validate is a no-op and has been deprecated. It will be removed in Cesium 1.124."),En._validate(e)};En._validate=function(e){};En.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};En.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};En.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};En.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};En.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let o=P.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return l(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};En.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.max(o,s)),c=P.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let u=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(u>=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new En(a,u,c,f)};En.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new En(i,o,r,s)};En.union=function(e,t,n){l(n)||(n=new En);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.min(o,s)),c=P.negativePiToPi(Math.max(i,r));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};En.expand=function(e,t,n){return l(n)||(n=new En),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};En.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>o||P.equalsEpsilon(n,o,P.EPSILON14))&&(n<r||P.equalsEpsilon(n,r,P.EPSILON14))&&i>=e.south&&i<=e.north};var Twe=new fe;En.subsample=function(e,t,n,i){t=y(t,ee.default),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=Twe;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*P.PI_OVER_TWO,En.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};En.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new En),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};En.MAX_VALUE=Object.freeze(new En(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var re=En;function Or(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}Or.packedLength=4;Or.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};Or.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Or),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};Or.fromPoints=function(e,t){if(l(t)||(t=new Or),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],u=c.x,f=c.y;i=Math.min(u,i),r=Math.max(u,r),o=Math.min(f,o),s=Math.max(f,s)}return t.x=i,t.y=o,t.width=r-i,t.height=s-o,t};var $J=new vi,Cwe=new fe,Awe=new fe;Or.fromRectangle=function(e,t,n){if(l(n)||(n=new Or),!l(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;$J._ellipsoid=ee.default,t=y(t,$J);let i=t.project(re.southwest(e,Cwe)),o=t.project(re.northeast(e,Awe));return z.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};Or.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new Or(e.x,e.y,e.width,e.height)};Or.union=function(e,t,n){l(n)||(n=new Or);let i=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=o,n.width=r-i,n.height=s-o,n};Or.expand=function(e,t,n){n=Or.clone(e,n);let i=t.x-n.x,o=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};Or.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.width<o||i+e.height<r||i>r+t.height?jt.OUTSIDE:jt.INTERSECTING};Or.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};Or.prototype.clone=function(e){return Or.clone(this,e)};Or.prototype.intersect=function(e){return Or.intersect(this,e)};Or.prototype.equals=function(e){return Or.equals(this,e)};var je=Or;var va={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};va.isLines=function(e){return e===va.LINES||e===va.LINE_LOOP||e===va.LINE_STRIP};va.isTriangles=function(e){return e===va.TRIANGLES||e===va.TRIANGLE_STRIP||e===va.TRIANGLE_FAN};va.validate=function(e){return e===va.POINTS||e===va.LINES||e===va.LINE_LOOP||e===va.LINE_STRIP||e===va.TRIANGLES||e===va.TRIANGLE_STRIP||e===va.TRIANGLE_FAN};var Me=Object.freeze(va);var ax=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var yr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function uw(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Me.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._pickMetadataAllowed=e.pickMetadataAllowed===!0,this._pickedMetadataInfo=void 0,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function nc(e,t){return(e._flags&t)===t}function Lg(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(uw.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return nc(this,yr.CULL)},set:function(e){nc(this,yr.CULL)!==e&&(Lg(this,yr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return nc(this,yr.OCCLUDE)},set:function(e){nc(this,yr.OCCLUDE)!==e&&(Lg(this,yr.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return nc(this,yr.CAST_SHADOWS)},set:function(e){nc(this,yr.CAST_SHADOWS)!==e&&(Lg(this,yr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return nc(this,yr.RECEIVE_SHADOWS)},set:function(e){nc(this,yr.RECEIVE_SHADOWS)!==e&&(Lg(this,yr.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return nc(this,yr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){nc(this,yr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(Lg(this,yr.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return nc(this,yr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){nc(this,yr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(Lg(this,yr.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickMetadataAllowed:{get:function(){return this._pickMetadataAllowed}},pickedMetadataInfo:{get:function(){return this._pickedMetadataInfo},set:function(e){this._pickedMetadataInfo!==e&&(this._pickedMetadataInfo=e,this.dirty=!0)}},pickOnly:{get:function(){return nc(this,yr.PICK_ONLY)},set:function(e){nc(this,yr.PICK_ONLY)!==e&&(Lg(this,yr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return nc(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){nc(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(Lg(this,yr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});uw.shallowClone=function(e,t){if(l(e))return l(t)||(t=new uw),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._pickMetadataAllowed=e._pickMetadataAllowed,t._pickedMetadataInfo=e._pickedMetadataInfo,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};uw.prototype.execute=function(e,t){e.draw(this,t)};var Ze=uw;var fi={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};fi.toWebGLConstant=function(e,t){switch(e){case fi.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case fi.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case fi.UNSIGNED_INT:return te.UNSIGNED_INT;case fi.FLOAT:return te.FLOAT;case fi.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case fi.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case fi.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case fi.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case fi.UNSIGNED_SHORT_5_6_5:return fi.UNSIGNED_SHORT_5_6_5}};fi.isPacked=function(e){return e===fi.UNSIGNED_INT_24_8||e===fi.UNSIGNED_SHORT_4_4_4_4||e===fi.UNSIGNED_SHORT_5_5_5_1||e===fi.UNSIGNED_SHORT_5_6_5};fi.sizeInBytes=function(e){switch(e){case fi.UNSIGNED_BYTE:return 1;case fi.UNSIGNED_SHORT:case fi.UNSIGNED_SHORT_4_4_4_4:case fi.UNSIGNED_SHORT_5_5_5_1:case fi.UNSIGNED_SHORT_5_6_5:case fi.HALF_FLOAT:return 2;case fi.UNSIGNED_INT:case fi.FLOAT:case fi.UNSIGNED_INT_24_8:return 4}};fi.validate=function(e){return e===fi.UNSIGNED_BYTE||e===fi.UNSIGNED_SHORT||e===fi.UNSIGNED_INT||e===fi.FLOAT||e===fi.HALF_FLOAT||e===fi.UNSIGNED_INT_24_8||e===fi.UNSIGNED_SHORT_4_4_4_4||e===fi.UNSIGNED_SHORT_5_5_5_1||e===fi.UNSIGNED_SHORT_5_6_5};fi.getTypedArrayConstructor=function(e){let t=fi.sizeInBytes(e);return t===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:t===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:t===Float32Array.BYTES_PER_ELEMENT&&e===fi.FLOAT?Float32Array:Uint32Array};var Ke=Object.freeze(fi);var rt={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};rt.componentsLength=function(e){switch(e){case rt.RGB:return 3;case rt.RGBA:return 4;case rt.LUMINANCE_ALPHA:case rt.RG:return 2;case rt.ALPHA:case rt.RED:case rt.LUMINANCE:return 1;default:return 1}};rt.validate=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL||e===rt.ALPHA||e===rt.RED||e===rt.RG||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA||e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isColorFormat=function(e){return e===rt.RED||e===rt.ALPHA||e===rt.RGB||e===rt.RGBA||e===rt.LUMINANCE||e===rt.LUMINANCE_ALPHA};rt.isDepthFormat=function(e){return e===rt.DEPTH_COMPONENT||e===rt.DEPTH_STENCIL};rt.isCompressedFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5||e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1||e===rt.RGBA_ASTC||e===rt.RGB_ETC1||e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC||e===rt.RGBA_BC7};rt.isDXTFormat=function(e){return e===rt.RGB_DXT1||e===rt.RGBA_DXT1||e===rt.RGBA_DXT3||e===rt.RGBA_DXT5};rt.isPVRTCFormat=function(e){return e===rt.RGB_PVRTC_4BPPV1||e===rt.RGB_PVRTC_2BPPV1||e===rt.RGBA_PVRTC_4BPPV1||e===rt.RGBA_PVRTC_2BPPV1};rt.isASTCFormat=function(e){return e===rt.RGBA_ASTC};rt.isETC1Format=function(e){return e===rt.RGB_ETC1};rt.isETC2Format=function(e){return e===rt.RGB8_ETC2||e===rt.RGBA8_ETC2_EAC};rt.isBC7Format=function(e){return e===rt.RGBA_BC7};rt.compressedTextureSizeInBytes=function(e,t,n){switch(e){case rt.RGB_DXT1:case rt.RGBA_DXT1:case rt.RGB_ETC1:case rt.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case rt.RGBA_DXT3:case rt.RGBA_DXT5:case rt.RGBA_ASTC:case rt.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case rt.RGB_PVRTC_4BPPV1:case rt.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case rt.RGB_PVRTC_2BPPV1:case rt.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case rt.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};rt.textureSizeInBytes=function(e,t,n,i){let o=rt.componentsLength(e);return Ke.isPacked(t)&&(o=1),o*Ke.sizeInBytes(t)*n*i};rt.alignmentInBytes=function(e,t,n){let i=rt.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};rt.createTypedArray=function(e,t,n,i){let o=Ke.getTypedArrayConstructor(t),r=rt.componentsLength(e)*n*i;return new o(r)};rt.flipY=function(e,t,n,i,o){if(o===1)return e;let r=rt.createTypedArray(t,n,i,o),s=rt.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let u=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[u+d]}return r};rt.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===rt.DEPTH_STENCIL)return te.DEPTH24_STENCIL8;if(e===rt.DEPTH_COMPONENT){if(t===Ke.UNSIGNED_SHORT)return te.DEPTH_COMPONENT16;if(t===Ke.UNSIGNED_INT)return te.DEPTH_COMPONENT24}if(t===Ke.FLOAT)switch(e){case rt.RGBA:return te.RGBA32F;case rt.RGB:return te.RGB32F;case rt.RG:return te.RG32F;case rt.RED:return te.R32F}if(t===Ke.HALF_FLOAT)switch(e){case rt.RGBA:return te.RGBA16F;case rt.RGB:return te.RGB16F;case rt.RG:return te.RG16F;case rt.RED:return te.R16F}return e};var Je=Object.freeze(rt);var xr={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(xr,{maximumCombinedTextureImageUnits:{get:function(){return xr._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return xr._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return xr._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return xr._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return xr._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return xr._maximumTextureSize}},maximumVaryingVectors:{get:function(){return xr._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return xr._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return xr._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return xr._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return xr._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return xr._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return xr._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return xr._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return xr._maximumViewportWidth}},maximumViewportHeight:{get:function(){return xr._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return xr._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return xr._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return xr._maximumColorAttachments}},maximumSamples:{get:function(){return xr._maximumSamples}},highpFloatSupported:{get:function(){return xr._highpFloatSupported}},highpIntSupported:{get:function(){return xr._highpIntSupported}}});var kt=xr;function t6(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function BV(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function vd(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumColorAttachments;if(this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0),this._bind(),l(e.colorTextures)){let o=e.colorTextures,r=this._colorTextures.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;t6(this,c,a),this._activeColorAttachments[s]=c,this._colorTextures[s]=a}}if(l(e.colorRenderbuffers)){let o=e.colorRenderbuffers,r=this._colorRenderbuffers.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;BV(this,c,a),this._activeColorAttachments[s]=c,this._colorRenderbuffers[s]=a}}if(l(e.depthTexture)){let o=e.depthTexture;t6(this,this._gl.DEPTH_ATTACHMENT,o),this._depthTexture=o}if(l(e.depthRenderbuffer)){let o=e.depthRenderbuffer;BV(this,this._gl.DEPTH_ATTACHMENT,o),this._depthRenderbuffer=o}if(l(e.stencilRenderbuffer)){let o=e.stencilRenderbuffer;BV(this,this._gl.STENCIL_ATTACHMENT,o),this._stencilRenderbuffer=o}if(l(e.depthStencilTexture)){let o=e.depthStencilTexture;t6(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilTexture=o}if(l(e.depthStencilRenderbuffer)){let o=e.depthStencilRenderbuffer;BV(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilRenderbuffer=o}this._unBind()}Object.defineProperties(vd.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});vd.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};vd.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};vd.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};vd.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};vd.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};vd.prototype.getColorTexture=function(e){return this._colorTextures[e]};vd.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};vd.prototype.isDestroyed=function(){return!1};vd.prototype.destroy=function(){if(this.destroyAttachments){let e=this._colorTextures;for(let n=0;n<e.length;++n){let i=e[n];l(i)&&i.destroy()}let t=this._colorRenderbuffers;for(let n=0;n<t.length;++n){let i=t[n];l(i)&&i.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),ue(this)};var Mr=vd;var kV={CLOCKWISE:te.CW,COUNTER_CLOCKWISE:te.CCW};kV.validate=function(e){return e===kV.CLOCKWISE||e===kV.COUNTER_CLOCKWISE};var hs=Object.freeze(kV);function QJ(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=QJ(e[t]));return Object.freeze(e)}var n6=QJ;function tm(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),o=y(t.scissorTest,y.EMPTY_OBJECT),r=y(o.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),u=y(t.blending,y.EMPTY_OBJECT),f=y(u.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),m=y(t.sampleCoverage,y.EMPTY_OBJECT),x=t.viewport;this.frontFace=y(t.frontFace,hs.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,te.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(o.enabled,!1),rectangle:je.clone(r)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,te.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(u.enabled,!1),color:new H(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(u.equationRgb,te.FUNC_ADD),equationAlpha:y(u.equationAlpha,te.FUNC_ADD),functionSourceRgb:y(u.functionSourceRgb,te.ONE),functionSourceAlpha:y(u.functionSourceAlpha,te.ONE),functionDestinationRgb:y(u.functionDestinationRgb,te.ZERO),functionDestinationAlpha:y(u.functionDestinationAlpha,te.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,te.ALWAYS),backFunction:y(d.backFunction,te.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,te.KEEP),zFail:y(p.zFail,te.KEEP),zPass:y(p.zPass,te.KEEP)},backOperation:{fail:y(g.fail,te.KEEP),zFail:y(g.zFail,te.KEEP),zPass:y(g.zPass,te.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=l(x)?new je(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var Ewe=0,em={};tm.fromCache=function(e){let t=JSON.stringify(e),n=em[t];if(l(n))return++n.referenceCount,n.state;let i=new tm(e),o=JSON.stringify(i);return n=em[o],l(n)||(i.id=Ewe++,n={referenceCount:0,state:i},em[o]=n),++n.referenceCount,em[t]={referenceCount:1,state:n.state},n.state};tm.removeFromCache=function(e){let t=new tm(e),n=JSON.stringify(t),i=em[n],o=JSON.stringify(e),r=em[o];l(r)&&(--r.referenceCount,r.referenceCount===0&&(delete em[o],l(i)&&--i.referenceCount)),l(i)&&i.referenceCount===0&&delete em[n]};tm.getCache=function(){return em};tm.clearCache=function(){em={}};function cx(e,t,n){n?e.enable(t):e.disable(t)}function JJ(e,t){e.frontFace(t.frontFace)}function eee(e,t){let n=t.cull,i=n.enabled;cx(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function tee(e,t){e.lineWidth(t.lineWidth)}function nee(e,t){let n=t.polygonOffset,i=n.enabled;cx(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function iee(e,t,n){let i=t.scissorTest,o=l(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(cx(e,e.SCISSOR_TEST,o),o){let r=l(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function oee(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function ree(e,t){let n=t.depthTest,i=n.enabled;cx(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function see(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function aee(e,t){e.depthMask(t.depthMask)}function cee(e,t){e.stencilMask(t.stencilMask)}function Swe(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function lee(e,t,n){let i=t.blending,o=l(n.blendingEnabled)?n.blendingEnabled:i.enabled;cx(e,e.BLEND,o),o&&(Swe(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function uee(e,t){let n=t.stencilTest,i=n.enabled;if(cx(e,e.STENCIL_TEST,i),i){let o=n.frontFunction,r=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(o,s,a),e.stencilFuncSeparate(e.BACK,r,s,a),e.stencilFuncSeparate(e.FRONT,o,s,a);let c=n.frontOperation,u=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,u,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function fee(e,t){let n=t.sampleCoverage,i=n.enabled;cx(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var vwe=new je;function dee(e,t,n){let i=y(t.viewport,n.viewport);l(i)||(i=vwe,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}tm.apply=function(e,t,n){JJ(e,t),eee(e,t),tee(e,t),nee(e,t),oee(e,t),ree(e,t),see(e,t),aee(e,t),cee(e,t),uee(e,t),fee(e,t),iee(e,t,n),lee(e,t,n),dee(e,t,n)};function wwe(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(JJ),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(eee),e.lineWidth!==t.lineWidth&&n.push(tee),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(nee),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(oee),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(ree),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(see),e.depthMask!==t.depthMask&&n.push(aee),e.stencilMask!==t.stencilMask&&n.push(cee),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(uee),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(fee),n}tm.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];l(f)||(f=wwe(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=l(i.scissorTest)?i.scissorTest:t.scissorTest,a=l(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&iee(e,n,o);let c=l(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,u=l(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==u||u&&t.blending!==n.blending)&&lee(e,n,o),(t!==n||i!==o||i.context!==o.context)&&dee(e,n,o)};tm.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:je.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:H.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:l(e.viewport)?je.clone(e.viewport):void 0}};var Ve=tm;function Xt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}Xt.packedLength=4;Xt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};Xt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Xt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};Xt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Xt.pack(e[o],t,o*4);return t};Xt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=Xt.unpack(e,i,t[o])}return t};Xt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new Xt(e[0],e[2],e[1],e[3])};Xt.fromArray=Xt.unpack;Xt.fromColumnMajorArray=function(e,t){return Xt.clone(e,t)};Xt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new Xt(e[0],e[1],e[2],e[3])};Xt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new Xt(e.x,0,0,e.y)};Xt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new Xt(e,0,0,e)};Xt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new Xt(n,-i,i,n)};Xt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};Xt.getElementIndex=function(e,t){return e*2+t};Xt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};Xt.setColumn=function(e,t,n,i){i=Xt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};Xt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};Xt.setRow=function(e,t,n,i){return i=Xt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var Dwe=new z;Xt.setScale=function(e,t,n){let i=Xt.getScale(e,Dwe),o=t.x/i.x,r=t.y/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var Iwe=new z;Xt.setUniformScale=function(e,t,n){let i=Xt.getScale(e,Iwe),o=t/i.x,r=t/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var hee=new z;Xt.getScale=function(e,t){return t.x=z.magnitude(z.fromElements(e[0],e[1],hee)),t.y=z.magnitude(z.fromElements(e[2],e[3],hee)),t};var mee=new z;Xt.getMaximumScale=function(e){return Xt.getScale(e,mee),z.maximumComponent(mee)};var Pwe=new z;Xt.setRotation=function(e,t,n){let i=Xt.getScale(e,Pwe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var Rwe=new z;Xt.getRotation=function(e,t){let n=Xt.getScale(e,Rwe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};Xt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n};Xt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};Xt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};Xt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=o,n};Xt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Xt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};Xt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Xt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};Xt.transpose=function(e,t){let n=e[0],i=e[2],o=e[1],r=e[3];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t};Xt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};Xt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};Xt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};Xt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};Xt.IDENTITY=Object.freeze(new Xt(1,0,0,1));Xt.ZERO=Object.freeze(new Xt(0,0,0,0));Xt.COLUMN0ROW0=0;Xt.COLUMN0ROW1=1;Xt.COLUMN1ROW0=2;Xt.COLUMN1ROW1=3;Object.defineProperties(Xt.prototype,{length:{get:function(){return Xt.packedLength}}});Xt.prototype.clone=function(e){return Xt.clone(this,e)};Xt.prototype.equals=function(e){return Xt.equals(this,e)};Xt.prototype.equalsEpsilon=function(e,t){return Xt.equalsEpsilon(this,e,t)};Xt.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var Bi=Xt;function Owe(e,t,n,i){switch(t.type){case e.FLOAT:return new pee(e,t,n,i);case e.FLOAT_VEC2:return new _ee(e,t,n,i);case e.FLOAT_VEC3:return new gee(e,t,n,i);case e.FLOAT_VEC4:return new yee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new i6(e,t,n,i);case e.INT:case e.BOOL:return new xee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new bee(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Tee(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Cee(e,t,n,i);case e.FLOAT_MAT2:return new Aee(e,t,n,i);case e.FLOAT_MAT3:return new Eee(e,t,n,i);case e.FLOAT_MAT4:return new See(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function pee(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}pee.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function _ee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}_ee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function gee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}gee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):l(e.x)&&(h.equals(e,this._value)||(this._value=h.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function yee(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}yee.prototype.set=function(){let e=this.value;l(e.red)?H.equals(e,this._value)||(this._value=H.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):l(e.x)&&(oe.equals(e,this._value)||(this._value=oe.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function i6(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}i6.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};i6.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function xee(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}xee.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function bee(e,t,n,i){this.name=n,this.value=void 0,this._value=new z,this._gl=e,this._location=i}bee.prototype.set=function(){let e=this.value;z.equals(e,this._value)||(z.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function Tee(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}Tee.prototype.set=function(){let e=this.value;h.equals(e,this._value)||(h.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function Cee(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}Cee.prototype.set=function(){let e=this.value;oe.equals(e,this._value)||(oe.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var Mwe=new Float32Array(4);function Aee(e,t,n,i){this.name=n,this.value=void 0,this._value=new Bi,this._gl=e,this._location=i}Aee.prototype.set=function(){if(!Bi.equalsArray(this.value,this._value,0)){Bi.clone(this.value,this._value);let e=Bi.toArray(this.value,Mwe);this._gl.uniformMatrix2fv(this._location,!1,e)}};var Lwe=new Float32Array(9);function Eee(e,t,n,i){this.name=n,this.value=void 0,this._value=new $,this._gl=e,this._location=i}Eee.prototype.set=function(){if(!$.equalsArray(this.value,this._value,0)){$.clone(this.value,this._value);let e=$.toArray(this.value,Lwe);this._gl.uniformMatrix3fv(this._location,!1,e)}};var Nwe=new Float32Array(16);function See(e,t,n,i){this.name=n,this.value=void 0,this._value=new F,this._gl=e,this._location=i}See.prototype.set=function(){if(!F.equalsArray(this.value,this._value,0)){F.clone(this.value,this._value);let e=F.toArray(this.value,Nwe);this._gl.uniformMatrix4fv(this._location,!1,e)}};var fw=Owe;function Fwe(e,t,n,i){switch(t.type){case e.FLOAT:return new vee(e,t,n,i);case e.FLOAT_VEC2:return new wee(e,t,n,i);case e.FLOAT_VEC3:return new Dee(e,t,n,i);case e.FLOAT_VEC4:return new Iee(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new o6(e,t,n,i);case e.INT:case e.BOOL:return new Pee(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new Ree(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new Oee(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new Mee(e,t,n,i);case e.FLOAT_MAT2:return new Lee(e,t,n,i);case e.FLOAT_MAT3:return new Nee(e,t,n,i);case e.FLOAT_MAT4:return new Fee(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function vee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._location=i[0]}vee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function wee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*2),this._gl=e,this._location=i[0]}wee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function Dee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*3),this._gl=e,this._location=i[0]}Dee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?(s.red!==n[o]||s.green!==n[o+1]||s.blue!==n[o+2])&&(n[o]=s.red,n[o+1]=s.green,n[o+2]=s.blue,i=!0):l(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function Iee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}Iee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?H.equalsArray(s,n,o)||(H.pack(s,n,o),i=!0):l(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function o6(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}o6.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let o=0;o<i;++o){let r=n[o];e.activeTexture(t+o),e.bindTexture(r._target,r._texture)}};o6.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let o=e+i;this._gl.uniform1i(t[i],o)}return e+n};function Pee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o),this._gl=e,this._location=i[0]}Pee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function Ree(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*2),this._gl=e,this._location=i[0]}Ree.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function Oee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*3),this._gl=e,this._location=i[0]}Oee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0),o+=3}i&&this._gl.uniform3iv(this._location,n)};function Mee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*4),this._gl=e,this._location=i[0]}Mee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniform4iv(this._location,n)};function Lee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}Lee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];Bi.equalsArray(s,n,o)||(Bi.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function Nee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*9),this._gl=e,this._location=i[0]}Nee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];$.equalsArray(s,n,o)||($.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function Fee(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*16),this._gl=e,this._location=i[0]}Fee.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];F.equalsArray(s,n,o)||(F.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var dw=Fwe;var Bwe=0;function Ap(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=kwe(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=Bwe++}Ap.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};Ap.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties(Ap.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return VV(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return VV(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return VV(this),this._uniformsByName}}});function Bee(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o].trim(),s=r.slice(r.lastIndexOf(" ")+1);t.push(s)}}return t}function kwe(e,t){let n={};if(!kt.highpFloatSupported||!kt.highpIntSupported){let i,o,r,s,a=Bee(e),c=Bee(t),u=a.length,f=c.length;for(i=0;i<u;i++)for(o=0;o<f;o++)if(a[i]===c[o]){r=a[i],s=`czm_mediump_${r}`;let d=new RegExp(`${r}\\b`,"g");t=t.replace(d,s),n[s]=r}}return{fragmentShaderText:t,duplicateUniformNames:n}}var nm="[Cesium WebGL] ";function Vwe(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,n),e.compileShader(o);let r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r);let s=e.createProgram();e.attachShader(s,o),e.attachShader(s,r);let a=t._attributeLocations;if(l(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(o),l(c)&&c.length>0&&console.log(`${nm}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${nm}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${nm}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${nm}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${nm}Vertex shader compile log: ${c}`),console.error(`${nm} Vertex shader source: +${n}`),u=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${nm}Fragment shader compile log: ${c}`),console.error(`${nm} Fragment shader source: +${i}`),u=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ce(u);function d(p,g){if(!l(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${nm}${g} shader translation failed.`);return}console.error(`${nm}Translated ${g} shaderSource: +${m}`)}}function Uwe(e,t,n){let i={};for(let o=0;o<n;++o){let r=e.getActiveAttrib(t,o),s=e.getAttribLocation(t,r.name);i[r.name]={name:r.name,type:r.type,index:s}}return i}function zwe(e,t){let n={},i=[],o=[],r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<r;++s){let a=e.getActiveUniform(t,s),c="[0]",u=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(u.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,u);if(f!==null){let d=fw(e,a,u,f);n[u]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=u.indexOf("[");if(m>=0){if(f=n[u.slice(0,m)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let x=0;x<a.size;++x)g=e.getUniformLocation(t,`${u}[${x}]`),g!==null&&d.push(g);f=dw(e,a,u,d),n[u]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function Hwe(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];l(a)&&(r.name=a,s=a);let c=_p[s];l(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function Gwe(e,t,n){e.useProgram(t);let i=0,o=n.length;for(let r=0;r<o;++r)i=n[r]._setSampler(i);return e.useProgram(null),i}function VV(e){l(e._program)||kee(e)}function kee(e){let t=e._program,n=e._gl,i=Vwe(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=zwe(n,i),s=Hwe(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=Uwe(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=Gwe(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,u,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{kee(e),u(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}Ap.prototype._bind=function(){VV(this),this._gl.useProgram(this._program)};Ap.prototype._setUniforms=function(e,t,n){let i,o;if(l(e)){let a=this._manualUniforms;for(i=a.length,o=0;o<i;++o){let c=a[o];c.value=e[c.name]()}}let r=this._automaticUniforms;for(i=r.length,o=0;o<i;++o){let a=r[o];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,o=0;o<i;++o)s[o].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};Ap.prototype.isDestroyed=function(){return!1};Ap.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};Ap.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var Qt=Ap;function UV(e){this._context=e}var hw,Wwe=new Ze({primitiveType:Me.TRIANGLES}),jwe=new ei({color:new H(0,0,0,0)});function qwe(e,t){return new Mr({context:e,colorTextures:[t],destroyAttachments:!1})}function Ywe(e,t){return Qt.fromCache({context:e,vertexShaderSource:ax,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function Xwe(e,t){return(!l(hw)||hw.viewport.width!==e||hw.viewport.height!==t)&&(hw=Ve.fromCache({viewport:new je(0,0,e,t)})),hw}UV.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:Ywe(o,e.fragmentShaderSource),a=qwe(o,t),c=Xwe(n,i),u=e.uniformMap,f=jwe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=Wwe;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=u,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};UV.prototype.isDestroyed=function(){return!1};UV.prototype.destroy=function(){return ue(this)};var mw=UV;var Sn={BYTE:te.BYTE,UNSIGNED_BYTE:te.UNSIGNED_BYTE,SHORT:te.SHORT,UNSIGNED_SHORT:te.UNSIGNED_SHORT,INT:te.INT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,DOUBLE:te.DOUBLE};Sn.getSizeInBytes=function(e){switch(e){case Sn.BYTE:return Int8Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Sn.SHORT:return Int16Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Sn.INT:return Int32Array.BYTES_PER_ELEMENT;case Sn.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Sn.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case Sn.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};Sn.fromTypedArray=function(e){if(e instanceof Int8Array)return Sn.BYTE;if(e instanceof Uint8Array)return Sn.UNSIGNED_BYTE;if(e instanceof Int16Array)return Sn.SHORT;if(e instanceof Uint16Array)return Sn.UNSIGNED_SHORT;if(e instanceof Int32Array)return Sn.INT;if(e instanceof Uint32Array)return Sn.UNSIGNED_INT;if(e instanceof Float32Array)return Sn.FLOAT;if(e instanceof Float64Array)return Sn.DOUBLE};Sn.validate=function(e){return l(e)&&(e===Sn.BYTE||e===Sn.UNSIGNED_BYTE||e===Sn.SHORT||e===Sn.UNSIGNED_SHORT||e===Sn.INT||e===Sn.UNSIGNED_INT||e===Sn.FLOAT||e===Sn.DOUBLE)};Sn.createTypedArray=function(e,t){switch(e){case Sn.BYTE:return new Int8Array(t);case Sn.UNSIGNED_BYTE:return new Uint8Array(t);case Sn.SHORT:return new Int16Array(t);case Sn.UNSIGNED_SHORT:return new Uint16Array(t);case Sn.INT:return new Int32Array(t);case Sn.UNSIGNED_INT:return new Uint32Array(t);case Sn.FLOAT:return new Float32Array(t);case Sn.DOUBLE:return new Float64Array(t)}};Sn.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/Sn.getSizeInBytes(e)),e){case Sn.BYTE:return new Int8Array(t,n,i);case Sn.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case Sn.SHORT:return new Int16Array(t,n,i);case Sn.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case Sn.INT:return new Int32Array(t,n,i);case Sn.UNSIGNED_INT:return new Uint32Array(t,n,i);case Sn.FLOAT:return new Float32Array(t,n,i);case Sn.DOUBLE:return new Float64Array(t,n,i)}};Sn.fromName=function(e){switch(e){case"BYTE":return Sn.BYTE;case"UNSIGNED_BYTE":return Sn.UNSIGNED_BYTE;case"SHORT":return Sn.SHORT;case"UNSIGNED_SHORT":return Sn.UNSIGNED_SHORT;case"INT":return Sn.INT;case"UNSIGNED_INT":return Sn.UNSIGNED_INT;case"FLOAT":return Sn.FLOAT;case"DOUBLE":return Sn.DOUBLE}};var X=Object.freeze(Sn);var Kwe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},gf=Object.freeze(Kwe);function r6(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Me.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,gf.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}r6.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var Zwe=new fe,$we=new h,Vee=new F,Qwe=[new fe,new fe,new fe],Jwe=[new z,new z,new z],eDe=[new z,new z,new z],tDe=new h,nDe=new Oe,iDe=new F,oDe=new Bi;r6._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=re.center(i,Zwe),s=fe.toCartesian(r,n,$we),a=Mt.eastNorthUpToFixedFrame(s,n,Vee),c=F.inverse(a,Vee),u=Jwe,f=Qwe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=tDe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=F.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Oe.fromAxisAngle(h.UNIT_Z,-t,nDe),g=$.fromQuaternion(p,iDe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,C=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=F.multiplyByPointAsVector(c,e[o],d),d=$.multiplyByVector(g,d,d),x=Math.min(x,d.x),b=Math.min(b,d.y),T=Math.max(T,d.x),C=Math.max(C,d.y);let A=Bi.fromRotation(t,oDe),E=eDe;E[0].x=x,E[0].y=b,E[1].x=x,E[1].y=C,E[2].x=T,E[2].y=b;let v=u[0],D=u[2].x-v.x,O=u[1].y-v.y;for(o=0;o<3;o++){let S=E[o];Bi.multiplyByVector(A,S,S),S.x=(S.x-v.x)/D,S.y=(S.y-v.y)/O}let R=E[0],M=E[1],N=E[2],_=new Array(6);return z.pack(R,_),z.pack(M,_,2),z.pack(N,_,4),_};var at=r6;function rDe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var Se=rDe;function jC(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(jC.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}},arrayBufferView:{get:function(){return this._buffer}}});jC.clone=function(e){if(l(e))return new jC(e._format,e._datatype,e._width,e._height,e._buffer)};jC.prototype.clone=function(){return jC.clone(this)};var pw=jC;var Uee=Vo(au(),1);function zee(){if(!l(sa._canTransferArrayBuffer)){let e=c6("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return sa._canTransferArrayBuffer=!1,sa._canTransferArrayBuffer}sa._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),sa._canTransferArrayBuffer=s}})}return sa._canTransferArrayBuffer}var a6=new me;function s6(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function c6(e){let t=new Uee.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(Pg(e))s=e;else if(!n){let a=nn(`${sa._workerModulePrefix}/${i}.js`);Pg(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=s6(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=` + importScripts("${s6(CESIUM_WORKERS)}"); + CesiumWorkers["${i}"](); + `;return r=s6(a),new Worker(r,o)}if(r=e,n||(r=nn(`${sa._workerModulePrefix+i}.js`)),!Ht.supportsEsmWebWorkers())throw new ce("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function sDe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!Ht.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new ce(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=nn(t.fallbackModulePath),n}n.wasmBinaryFile=nn(t.wasmBinaryFile);let i=await we.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function sa(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var aDe=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ce(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new he(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),a6.raiseEvent(s),i(s)}else a6.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},cDe=[];async function lDe(e,t,n){let i=await Promise.resolve(zee());l(n)?i||(n.length=0):n=cDe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",aDe(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:nn.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function uDe(e,t,n){++e._activeTasks;try{let i=await lDe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}sa.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=c6(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return uDe(this,e,t)};sa.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=c6(this._workerPath),i=await sDe(this,e),o=await Promise.resolve(zee()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,u)=>{n.onmessage=function({data:f}){l(f)?c(f.result):u(new ce("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};sa.prototype.isDestroyed=function(){return!1};sa.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};sa.taskCompletedEvent=a6;sa._defaultWorkerModulePrefix="Workers/";sa._workerModulePrefix=sa._defaultWorkerModulePrefix;sa._canTransferArrayBuffer=void 0;var pi=sa;function Ep(){}Ep._transcodeTaskProcessor=new pi("transcodeKTX2",Number.POSITIVE_INFINITY);Ep._readyPromise=void 0;function fDe(){let e=Ep._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return Ep._transcodeTaskProcessor;throw new ce("KTX2 transcoder could not be initialized.")});Ep._readyPromise=e}Ep.transcode=function(e,t){return l(Ep._readyPromise)||fDe(),Ep._readyPromise.then(function(n){let i=e;e instanceof ArrayBuffer&&(i=new Uint8Array(e));let o={supportedTargetFormats:t,ktx2Buffer:i};return n.scheduleTask(o,[i.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]);for(let r=0;r<i;r++){let s=n[r];for(let a=0;a<o.length;a++){let c=s[o[a]];s[o[a]]=new pw(c.internalFormat,c.datatype,c.width,c.height,c.levelBuffer)}}if(o.length===1){for(let r=0;r<i;++r)n[r]=n[r][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var _w=Ep;var Hee;Gee.setKTX2SupportedFormats=function(e,t,n,i,o,r){Hee={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function Gee(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=we.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return _w.transcode(n,Hee)})}var Sl=Gee;function dDe(e,t){this.start=y(e,0),this.stop=y(t,0)}var wa=dDe;function hn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var f6=new h,d6=new h,h6=new h,m6=new h,p6=new h,_6=new h,g6=new h,aa=new h,y6=new h,x6=new h,b6=new h,T6=new h,hDe=4/3*P.PI;hn.fromPoints=function(e,t){if(l(t)||(t=new hn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],g6),i=h.clone(n,f6),o=h.clone(n,d6),r=h.clone(n,h6),s=h.clone(n,m6),a=h.clone(n,p6),c=h.clone(n,_6),u=e.length,f;for(f=1;f<u;f++){h.clone(e[f],n);let R=n.x,M=n.y,N=n.z;R<i.x&&h.clone(n,i),R>s.x&&h.clone(n,s),M<o.y&&h.clone(n,o),M>a.y&&h.clone(n,a),N<r.z&&h.clone(n,r),N>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,aa)),p=h.magnitudeSquared(h.subtract(a,o,aa)),g=h.magnitudeSquared(h.subtract(c,r,aa)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=y6;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let C=h.magnitudeSquared(h.subtract(x,T,aa)),A=Math.sqrt(C),E=x6;E.x=i.x,E.y=o.y,E.z=r.z;let v=b6;v.x=s.x,v.y=a.y,v.z=c.z;let D=h.midpoint(E,v,T6),O=0;for(f=0;f<u;f++){h.clone(e[f],n);let R=h.magnitude(h.subtract(n,D,aa));R>O&&(O=R);let M=h.magnitudeSquared(h.subtract(n,T,aa));if(M>C){let N=Math.sqrt(M);A=(A+N)*.5,C=A*A;let _=N-A;T.x=(A*T.x+_*n.x)/N,T.y=(A*T.y+_*n.y)/N,T.z=(A*T.z+_*n.z)/N}}return A<O?(h.clone(T,t.center),t.radius=A):(h.clone(D,t.center),t.radius=O),t};var Wee=new vi,mDe=new h,pDe=new h,l6=new fe,u6=new fe;hn.fromRectangle2D=function(e,t,n){return hn.fromRectangleWithHeights2D(e,t,0,0,n)};hn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(l(o)||(o=new hn),!l(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;Wee._ellipsoid=ee.default,t=y(t,Wee),re.southwest(e,l6),l6.height=n,re.northeast(e,u6),u6.height=i;let r=t.project(l6,mDe),s=t.project(u6,pDe),a=s.x-r.x,c=s.y-r.y,u=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+u*u)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+u*.5,o};var _De=[];hn.fromRectangle3D=function(e,t,n,i){if(t=y(t,ee.default),n=y(n,0),l(i)||(i=new hn),!l(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=re.subsample(e,t,n,_De);return hn.fromPoints(o,i)};hn.fromVertices=function(e,t,n,i){if(l(i)||(i=new hn),!l(e)||e.length===0)return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;t=y(t,h.ZERO),n=y(n,3);let o=g6;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,f6),s=h.clone(o,d6),a=h.clone(o,h6),c=h.clone(o,m6),u=h.clone(o,p6),f=h.clone(o,_6),d=e.length,p;for(p=0;p<d;p+=n){let N=e[p]+t.x,_=e[p+1]+t.y,S=e[p+2]+t.z;o.x=N,o.y=_,o.z=S,N<r.x&&h.clone(o,r),N>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>u.y&&h.clone(o,u),S<a.z&&h.clone(o,a),S>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,aa)),m=h.magnitudeSquared(h.subtract(u,s,aa)),x=h.magnitudeSquared(h.subtract(f,a,aa)),b=r,T=c,C=g;m>C&&(C=m,b=s,T=u),x>C&&(C=x,b=a,T=f);let A=y6;A.x=(b.x+T.x)*.5,A.y=(b.y+T.y)*.5,A.z=(b.z+T.z)*.5;let E=h.magnitudeSquared(h.subtract(T,A,aa)),v=Math.sqrt(E),D=x6;D.x=r.x,D.y=s.y,D.z=a.z;let O=b6;O.x=c.x,O.y=u.y,O.z=f.z;let R=h.midpoint(D,O,T6),M=0;for(p=0;p<d;p+=n){o.x=e[p]+t.x,o.y=e[p+1]+t.y,o.z=e[p+2]+t.z;let N=h.magnitude(h.subtract(o,R,aa));N>M&&(M=N);let _=h.magnitudeSquared(h.subtract(o,A,aa));if(_>E){let S=Math.sqrt(_);v=(v+S)*.5,E=v*v;let w=S-v;A.x=(v*A.x+w*o.x)/S,A.y=(v*A.y+w*o.y)/S,A.z=(v*A.z+w*o.z)/S}}return v<M?(h.clone(A,i.center),i.radius=v):(h.clone(R,i.center),i.radius=M),i};hn.fromEncodedCartesianVertices=function(e,t,n){if(l(n)||(n=new hn),!l(e)||!l(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=g6;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,f6),r=h.clone(i,d6),s=h.clone(i,h6),a=h.clone(i,m6),c=h.clone(i,p6),u=h.clone(i,_6),f=e.length,d;for(d=0;d<f;d+=3){let M=e[d]+t[d],N=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=M,i.y=N,i.z=_,M<o.x&&h.clone(i,o),M>a.x&&h.clone(i,a),N<r.y&&h.clone(i,r),N>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>u.z&&h.clone(i,u)}let p=h.magnitudeSquared(h.subtract(a,o,aa)),g=h.magnitudeSquared(h.subtract(c,r,aa)),m=h.magnitudeSquared(h.subtract(u,s,aa)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=u);let C=y6;C.x=(x.x+b.x)*.5,C.y=(x.y+b.y)*.5,C.z=(x.z+b.z)*.5;let A=h.magnitudeSquared(h.subtract(b,C,aa)),E=Math.sqrt(A),v=x6;v.x=o.x,v.y=r.y,v.z=s.z;let D=b6;D.x=a.x,D.y=c.y,D.z=u.z;let O=h.midpoint(v,D,T6),R=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let M=h.magnitude(h.subtract(i,O,aa));M>R&&(R=M);let N=h.magnitudeSquared(h.subtract(i,C,aa));if(N>A){let _=Math.sqrt(N);E=(E+_)*.5,A=E*E;let S=_-E;C.x=(E*C.x+S*i.x)/_,C.y=(E*C.y+S*i.y)/_,C.z=(E*C.z+S*i.z)/_}}return E<R?(h.clone(C,n.center),n.radius=E):(h.clone(O,n.center),n.radius=R),n};hn.fromCornerPoints=function(e,t,n){l(n)||(n=new hn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};hn.fromEllipsoid=function(e,t){return l(t)||(t=new hn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var gDe=new h;hn.fromBoundingSpheres=function(e,t){if(l(t)||(t=new hn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return hn.clone(e[0],t);if(n===2)return hn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=hn.fromPoints(i,t);let r=t.center,s=t.radius;for(o=0;o<n;o++){let a=e[o];s=Math.max(s,h.distance(r,a.center,gDe)+a.radius)}return t.radius=s,t};var yDe=new h,xDe=new h,bDe=new h;hn.fromOrientedBoundingBox=function(e,t){l(t)||(t=new hn);let n=e.halfAxes,i=$.getColumn(n,0,yDe),o=$.getColumn(n,1,xDe),r=$.getColumn(n,2,bDe);return h.add(i,o,i),h.add(i,r,i),t.center=h.clone(e.center,t.center),t.radius=h.magnitude(i),t};var TDe=new h,CDe=new h;hn.fromTransformation=function(e,t){l(t)||(t=new hn);let n=F.getTranslation(e,TDe),i=F.getScale(e,CDe),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};hn.clone=function(e,t){if(l(e))return l(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new hn(e.center,e.radius)};hn.packedLength=4;hn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};hn.unpack=function(e,t,n){t=y(t,0),l(n)||(n=new hn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var ADe=new h,EDe=new h;hn.union=function(e,t,n){l(n)||(n=new hn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,ADe),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+u)/c,EDe);return h.add(f,i,f),h.clone(f,n.center),n.radius=u,n};var SDe=new h;hn.expand=function(e,t,n){n=hn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,SDe));return i>n.radius&&(n.radius=i),n};hn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?jt.OUTSIDE:r<i?jt.INTERSECTING:jt.INSIDE};hn.transform=function(e,t,n){return l(n)||(n=new hn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=F.getMaximumScale(t)*e.radius,n};var vDe=new h;hn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,vDe),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};hn.transformWithoutScale=function(e,t,n){return l(n)||(n=new hn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var wDe=new h;hn.computePlaneDistances=function(e,t,n,i){l(i)||(i=new wa);let o=h.subtract(e.center,t,wDe),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var jee=new h,DDe=new h,IDe=new h,PDe=new h,RDe=new h,ODe=new fe,Yee=new Array(8);for(let e=0;e<8;++e)Yee[e]=new h;var qee=new vi;hn.projectTo2D=function(e,t,n){qee._ellipsoid=ee.default,t=y(t,qee);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,jee):s=i.geodeticSurfaceNormal(o,jee);let a=h.cross(h.UNIT_Z,s,DDe);h.normalize(a,a);let c=h.cross(s,a,IDe);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let u=h.negate(c,RDe),f=h.negate(a,PDe),d=Yee,p=d[0];h.add(s,c,p),h.add(p,a,p),p=d[1],h.add(s,c,p),h.add(p,f,p),p=d[2],h.add(s,u,p),h.add(p,f,p),p=d[3],h.add(s,u,p),h.add(p,a,p),h.negate(s,s),p=d[4],h.add(s,c,p),h.add(p,a,p),p=d[5],h.add(s,c,p),h.add(p,f,p),p=d[6],h.add(s,u,p),h.add(p,f,p),p=d[7],h.add(s,u,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let C=d[T];h.add(o,C,C);let A=i.cartesianToCartographic(C,ODe);t.project(A,C)}n=hn.fromPoints(d,n),o=n.center;let m=o.x,x=o.y,b=o.z;return o.x=b,o.y=m,o.z=x,n};hn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};hn.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};hn.prototype.intersectPlane=function(e){return hn.intersectPlane(this,e)};hn.prototype.distanceSquaredTo=function(e){return hn.distanceSquaredTo(this,e)};hn.prototype.computePlaneDistances=function(e,t,n){return hn.computePlaneDistances(this,e,t,n)};hn.prototype.isOccluded=function(e){return hn.isOccluded(this,e)};hn.prototype.equals=function(e){return hn.equals(this,e)};hn.prototype.clone=function(e){return hn.clone(this,e)};hn.prototype.volume=function(){let e=this.radius;return hDe*e*e*e};var se=hn;function MDe(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var fn=MDe;var LDe={NONE:0,TOP:1,ALL:2},an=Object.freeze(LDe);function ms(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}ms.POSITION_ONLY=Object.freeze(new ms({position:!0}));ms.POSITION_AND_NORMAL=Object.freeze(new ms({position:!0,normal:!0}));ms.POSITION_NORMAL_AND_ST=Object.freeze(new ms({position:!0,normal:!0,st:!0}));ms.POSITION_AND_ST=Object.freeze(new ms({position:!0,st:!0}));ms.POSITION_AND_COLOR=Object.freeze(new ms({position:!0,color:!0}));ms.ALL=Object.freeze(new ms({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));ms.DEFAULT=ms.POSITION_NORMAL_AND_ST;ms.packedLength=6;ms.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};ms.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ms),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};ms.clone=function(e,t){if(l(e))return l(t)||(t=new ms),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Ie=ms;var NDe=new h;function lu(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Ie.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}lu.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new lu({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};lu.fromAxisAlignedBoundingBox=function(e){return new lu({minimum:e.minimum,maximum:e.maximum})};lu.packedLength=2*h.packedLength+Ie.packedLength+1;lu.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Ie.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Ie.packedLength]=y(e._offsetAttribute,-1),t};var Kee=new h,Zee=new h,$ee=new Ie,Xee={minimum:Kee,maximum:Zee,vertexFormat:$ee,offsetAttribute:void 0};lu.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Kee),o=h.unpack(e,t+h.packedLength,Zee),r=Ie.unpack(e,t+2*h.packedLength,$ee),s=e[t+2*h.packedLength+Ie.packedLength];return l(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(Xee.offsetAttribute=s===-1?void 0:s,new lu(Xee))};lu.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let o=new fn,r,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let u=new Float32Array(72);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=1,u[9]=0,u[10]=0,u[11]=1,u[12]=0,u[13]=0,u[14]=-1,u[15]=0,u[16]=0,u[17]=-1,u[18]=0,u[19]=0,u[20]=-1,u[21]=0,u[22]=0,u[23]=-1,u[24]=1,u[25]=0,u[26]=0,u[27]=1,u[28]=0,u[29]=0,u[30]=1,u[31]=0,u[32]=0,u[33]=1,u[34]=0,u[35]=0,u[36]=-1,u[37]=0,u[38]=0,u[39]=-1,u[40]=0,u[41]=0,u[42]=-1,u[43]=0,u[44]=0,u[45]=-1,u[46]=0,u[47]=0,u[48]=0,u[49]=1,u[50]=0,u[51]=0,u[52]=1,u[53]=0,u[54]=0,u[55]=1,u[56]=0,u[57]=0,u[58]=1,u[59]=0,u[60]=0,u[61]=-1,u[62]=0,u[63]=0,u[64]=-1,u[65]=0,u[66]=0,u[67]=-1,u[68]=0,u[69]=0,u[70]=-1,u[71]=0,o.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.st){let u=new Float32Array(48);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=1,u[5]=1,u[6]=0,u[7]=1,u[8]=1,u[9]=0,u[10]=0,u[11]=0,u[12]=0,u[13]=1,u[14]=1,u[15]=1,u[16]=0,u[17]=0,u[18]=1,u[19]=0,u[20]=1,u[21]=1,u[22]=0,u[23]=1,u[24]=1,u[25]=0,u[26]=0,u[27]=0,u[28]=0,u[29]=1,u[30]=1,u[31]=1,u[32]=1,u[33]=0,u[34]=0,u[35]=0,u[36]=0,u[37]=1,u[38]=1,u[39]=1,u[40]=0,u[41]=0,u[42]=1,u[43]=0,u[44]=1,u[45]=1,u[46]=0,u[47]=1,o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:u})}if(i.tangent){let u=new Float32Array(72);u[0]=1,u[1]=0,u[2]=0,u[3]=1,u[4]=0,u[5]=0,u[6]=1,u[7]=0,u[8]=0,u[9]=1,u[10]=0,u[11]=0,u[12]=-1,u[13]=0,u[14]=0,u[15]=-1,u[16]=0,u[17]=0,u[18]=-1,u[19]=0,u[20]=0,u[21]=-1,u[22]=0,u[23]=0,u[24]=0,u[25]=1,u[26]=0,u[27]=0,u[28]=1,u[29]=0,u[30]=0,u[31]=1,u[32]=0,u[33]=0,u[34]=1,u[35]=0,u[36]=0,u[37]=-1,u[38]=0,u[39]=0,u[40]=-1,u[41]=0,u[42]=0,u[43]=-1,u[44]=0,u[45]=0,u[46]=-1,u[47]=0,u[48]=-1,u[49]=0,u[50]=0,u[51]=-1,u[52]=0,u[53]=0,u[54]=-1,u[55]=0,u[56]=0,u[57]=-1,u[58]=0,u[59]=0,u[60]=1,u[61]=0,u[62]=0,u[63]=1,u[64]=0,u[65]=0,u[66]=1,u[67]=0,u[68]=0,u[69]=1,u[70]=0,u[71]=0,o.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.bitangent){let u=new Float32Array(72);u[0]=0,u[1]=1,u[2]=0,u[3]=0,u[4]=1,u[5]=0,u[6]=0,u[7]=1,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=1,u[14]=0,u[15]=0,u[16]=1,u[17]=0,u[18]=0,u[19]=1,u[20]=0,u[21]=0,u[22]=1,u[23]=0,u[24]=0,u[25]=0,u[26]=1,u[27]=0,u[28]=0,u[29]=1,u[30]=0,u[31]=0,u[32]=1,u[33]=0,u[34]=0,u[35]=1,u[36]=0,u[37]=0,u[38]=1,u[39]=0,u[40]=0,u[41]=1,u[42]=0,u[43]=0,u[44]=1,u[45]=0,u[46]=0,u[47]=1,u[48]=0,u[49]=0,u[50]=1,u[51]=0,u[52]=0,u[53]=1,u[54]=0,u[55]=0,u[56]=1,u[57]=0,u[58]=0,u[59]=1,u[60]=0,u[61]=0,u[62]=1,u[63]=0,u[64]=0,u[65]=1,u[66]=0,u[67]=0,u[68]=1,u[69]=0,u[70]=0,u[71]=1,o.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}r=new Uint16Array(6*2*3),r[0]=0,r[1]=1,r[2]=2,r[3]=0,r[4]=2,r[5]=3,r[6]=6,r[7]=5,r[8]=4,r[9]=7,r[10]=6,r[11]=4,r[12]=8,r[13]=9,r[14]=10,r[15]=8,r[16]=10,r[17]=11,r[18]=14,r[19]=13,r[20]=12,r[21]=15,r[22]=14,r[23]=12,r[24]=18,r[25]=17,r[26]=16,r[27]=19,r[28]=18,r[29]=16,r[30]=20,r[31]=21,r[32]=22,r[33]=20,r[34]=22,r[35]=23}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),r=new Uint16Array(6*2*3),r[0]=4,r[1]=5,r[2]=6,r[3]=4,r[4]=6,r[5]=7,r[6]=1,r[7]=0,r[8]=3,r[9]=1,r[10]=3,r[11]=2,r[12]=1,r[13]=6,r[14]=5,r[15]=1,r[16]=2,r[17]=6,r[18]=2,r[19]=3,r[20]=7,r[21]=2,r[22]=7,r[23]=6,r[24]=3,r[25]=0,r[26]=4,r[27]=3,r[28]=4,r[29]=7,r[30]=0,r[31]=1,r[32]=5,r[33]=0,r[34]=5,r[35]=4;let a=h.subtract(n,t,NDe),c=h.magnitude(a)*.5;if(l(e._offsetAttribute)){let u=s.length,f=e._offsetAttribute===an.NONE?0:1,d=new Uint8Array(u/3).fill(f);o.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new at({attributes:o,indices:r,primitiveType:Me.TRIANGLES,boundingSphere:new se(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var C6;lu.getUnitBox=function(){return l(C6)||(C6=lu.createGeometry(lu.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),C6};var Da=lu;var to={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};to.getMathType=function(e){switch(e){case to.SCALAR:return Number;case to.VEC2:return z;case to.VEC3:return h;case to.VEC4:return oe;case to.MAT2:return Bi;case to.MAT3:return $;case to.MAT4:return F}};to.getNumberOfComponents=function(e){switch(e){case to.SCALAR:return 1;case to.VEC2:return 2;case to.VEC3:return 3;case to.VEC4:case to.MAT2:return 4;case to.MAT3:return 9;case to.MAT4:return 16}};to.getAttributeLocationCount=function(e){switch(e){case to.SCALAR:case to.VEC2:case to.VEC3:case to.VEC4:return 1;case to.MAT2:return 2;case to.MAT3:return 3;case to.MAT4:return 4}};to.getGlslType=function(e){switch(e){case to.SCALAR:return"float";case to.VEC2:return"vec2";case to.VEC3:return"vec3";case to.VEC4:return"vec4";case to.MAT2:return"mat2";case to.MAT3:return"mat3";case to.MAT4:return"mat4"}};var on=Object.freeze(to);var Qee=1/256,Jee=256,bo={};bo.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,o=n.y;n.x=(1-Math.abs(o))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(o)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};bo.octEncode=function(e,t){return bo.octEncodeInRange(e,255,t)};var gw=new z,ete=new Uint8Array(1);function zV(e){return ete[0]=e,ete[0]}bo.octEncodeToCartesian4=function(e,t){return bo.octEncodeInRange(e,65535,gw),t.x=zV(gw.x*Qee),t.y=zV(gw.x),t.z=zV(gw.y*Qee),t.w=zV(gw.y),t};bo.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let o=i.x;i.x=(1-Math.abs(i.y))*P.signNotZero(o),i.y=(1-Math.abs(o))*P.signNotZero(i.y)}return h.normalize(i,i)};bo.octDecode=function(e,t,n){return bo.octDecodeInRange(e,t,255,n)};bo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*Jee+i,a=o*Jee+r;return bo.octDecodeInRange(s,a,65535,t)};bo.octPackFloat=function(e){return 256*e.x+e.y};var E6=new z;bo.octEncodeFloat=function(e){return bo.octEncode(e,E6),bo.octPackFloat(E6)};bo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return bo.octDecode(i,o,t)};bo.octPack=function(e,t,n,i){let o=bo.octEncodeFloat(e),r=bo.octEncodeFloat(t),s=bo.octEncode(n,E6);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};bo.octUnpack=function(e,t,n,i){let o=e.x/65536,r=Math.floor(o),s=(o-r)*65536;o=e.y/65536;let a=Math.floor(o),c=(o-a)*65536;bo.octDecodeFloat(s,t),bo.octDecodeFloat(c,n),bo.octDecode(r,a,i)};bo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};bo.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function A6(e){return e>>1^-(e&1)}bo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=A6(e[a]),r+=A6(t[a]),e[a]=o,t[a]=r,l(n)&&(s+=A6(n[a]),n[a]=s)};bo.dequantize=function(e,t,n,i){let o=on.getNumberOfComponents(n),r;switch(t){case X.BYTE:r=127;break;case X.UNSIGNED_BYTE:r=255;break;case X.SHORT:r=32767;break;case X.UNSIGNED_SHORT:r=65535;break;case X.INT:r=2147483647;break;case X.UNSIGNED_INT:r=4294967295;break}let s=new Float32Array(i*o);for(let a=0;a<i;a++)for(let c=0;c<o;c++){let u=a*o+c;s[u]=Math.max(e[u]/r,-1)}return s};bo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=31,o=63,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],u=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var Mn=bo;var tte=new h,nte=new h,ite=new h;function FDe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,u,f,d,p;if(l(t.z)){if(h.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,tte),s=h.subtract(i,t,nte),a=h.subtract(e,t,ite),c=h.dot(r,r),u=h.dot(r,s),f=h.dot(r,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(z.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(z.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(z.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=z.subtract(n,t,tte),s=z.subtract(i,t,nte),a=z.subtract(e,t,ite),c=z.dot(r,r),u=z.dot(r,s),f=z.dot(r,a),d=z.dot(s,s),p=z.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var lx=FDe;function im(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}im.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Sp={high:0,low:0};im.fromCartesian=function(e,t){l(t)||(t=new im);let n=t.high,i=t.low;return im.encode(e.x,Sp),n.x=Sp.high,i.x=Sp.low,im.encode(e.y,Sp),n.y=Sp.high,i.y=Sp.low,im.encode(e.z,Sp),n.z=Sp.high,i.z=Sp.low,t};var S6=new im;im.writeElements=function(e,t,n){im.fromCartesian(e,S6);let i=S6.high,o=S6.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Gn=im;var v6={};v6.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function ote(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}v6.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),u=Math.abs(e);if(c<u&&c/u<P.EPSILON14)return[0,0];if(c>u&&u/c<P.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let o=t*t,r=4*e*n,s=ote(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*ote(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var Fc=v6;var D6={};D6.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function w6(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,m=r*a-d,x=4*p*m-g*g,b,T;if(x<0){let W,q,J;f*u>=c*d?(W=o,q=p,J=-2*r*p+o*g):(W=a,q=m,J=-a*g+2*s*m);let K=-(J<0?-1:1)*Math.abs(W)*Math.sqrt(-x);T=-J+K;let Q=T/2,de=Q<0?-Math.pow(-Q,1/3):Math.pow(Q,1/3),ye=T===K?-de:-q/de;return b=q<=0?de+ye:-J/(de*de+ye*ye+q),f*u>=c*d?[(b-r)/o]:[-a/(b+s)]}let C=p,A=-2*r*p+o*g,E=m,v=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,R=Math.abs(Math.atan2(o*D,-A)/3);b=2*Math.sqrt(-C);let M=Math.cos(R);T=b*M;let N=b*(-M/2-O*Math.sin(R)),_=T+N>2*r?T-r:N-r,S=o,w=_/S;R=Math.abs(Math.atan2(a*D,-v)/3),b=2*Math.sqrt(-E),M=Math.cos(R),T=b*M,N=b*(-M/2-O*Math.sin(R));let I=-a,L=T+N<2*s?T+s:N+s,B=I/L,U=S*L,V=-_*L-S*I,G=_*I,k=(s*V-r*G)/(-r*V+s*U);return w<=k?w<=B?k<=B?[w,k,B]:[w,B,k]:[B,w,k]:w<=B?[k,w,B]:k<=B?[k,B,w]:[B,k,w]}D6.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return Fc.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=Fc.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return w6(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):w6(e,t,0,i);if(i===0)return o=Fc.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return w6(e,t,n,i)};var ux=D6;var I6={};I6.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*u*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*m+o*(18*c*n*i-4*a*f+16*e*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function wd(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=ux.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=Fc.computeRealRoots(1,r,a);if(d.length===2){let p=d[0],g=d[1],m;if(p>=0&&g>=0){let x=Math.sqrt(p),b=Math.sqrt(g);return[u-b,u-x,u+x,u+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[u-m,u+m];if(p<0&&g>=0)return m=Math.sqrt(g),[u-m,u+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=Fc.computeRealRoots(1,d,p),x=Fc.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=u,m[1]+=u,x.length!==0?(x[0]+=u,x[1]+=u,m[1]<=x[0]?[m[0],m[1],x[0],x[1]]:x[1]<=m[0]?[x[0],x[1],m[0],m[1]]:m[0]>=x[0]&&m[1]<=x[1]?[x[0],m[0],m[1],x[1]]:x[0]>=m[0]&&x[1]<=m[1]?[m[0],x[0],x[1],m[1]]:m[0]>x[0]&&m[0]<x[1]?[x[0],m[0],x[1],m[1]]:[m[0],x[0],m[1],x[1]]):m):x.length!==0?(x[0]+=u,x[1]+=u,x):[]}}return[]}function yw(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,u=s*i-n*t*e+o,f=ux.computeRealRoots(1,a,c,u);if(f.length>0){let d=f[0],p=t-d,g=p*p,m=e/2,x=p/2,b=g-4*i,T=g+4*Math.abs(i),C=s-4*d,A=s+4*Math.abs(d),E,v;if(d<0||b*A<C*T){let S=Math.sqrt(C);E=S/2,v=S===0?0:(e*x-n)/S}else{let S=Math.sqrt(b);E=S===0?0:(e*x-n)/S,v=S/2}let D,O;m===0&&E===0?(D=0,O=0):P.sign(m)===P.sign(E)?(D=m+E,O=d/D):(O=m-E,D=d/O);let R,M;x===0&&v===0?(R=0,M=0):P.sign(x)===P.sign(v)?(R=x+v,M=i/R):(M=x-v,R=i/M);let N=Fc.computeRealRoots(1,D,R),_=Fc.computeRealRoots(1,O,M);if(N.length!==0)return _.length!==0?N[1]<=_[0]?[N[0],N[1],_[0],_[1]]:_[1]<=N[0]?[_[0],_[1],N[0],N[1]]:N[0]>=_[0]&&N[1]<=_[1]?[_[0],N[0],N[1],_[1]]:_[0]>=N[0]&&_[1]<=N[1]?[N[0],_[0],_[1],N[1]]:N[0]>_[0]&&N[0]<_[1]?[_[0],N[0],_[1],N[1]]:[N[0],_[0],N[1],_[1]]:N;if(_.length!==0)return _}return[]}I6.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return ux.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,u=r<0?1:0;switch(u+=s<0?u+1:u,u+=a<0?u+1:u,u+=c<0?u+1:u,u){case 0:return wd(r,s,a,c);case 1:return yw(r,s,a,c);case 2:return yw(r,s,a,c);case 3:return wd(r,s,a,c);case 4:return wd(r,s,a,c);case 5:return yw(r,s,a,c);case 6:return wd(r,s,a,c);case 7:return wd(r,s,a,c);case 8:return yw(r,s,a,c);case 9:return wd(r,s,a,c);case 10:return wd(r,s,a,c);case 11:return yw(r,s,a,c);case 12:return wd(r,s,a,c);case 13:return wd(r,s,a,c);case 14:return wd(r,s,a,c);case 15:return wd(r,s,a,c);default:return}};var xw=I6;function HV(e,t){t=h.clone(y(t,h.ZERO)),h.equals(t,h.ZERO)||h.normalize(t,t),this.origin=h.clone(y(e,h.ZERO)),this.direction=t}HV.clone=function(e,t){if(l(e))return l(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new HV(e.origin,e.direction)};HV.getPoint=function(e,t,n){return l(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var mn=HV;var zo={};zo.rayPlane=function(e,t,n){l(n)||(n=new h);let i=e.origin,o=e.direction,r=t.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON15)return;let a=(-t.distance-h.dot(r,i))/s;if(!(a<0))return n=h.multiplyByScalar(o,a,n),h.add(i,n,n)};var BDe=new h,kDe=new h,dte=new h,rte=new h,ste=new h;zo.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=h.subtract(n,t,BDe),c=h.subtract(i,t,kDe),u=h.cross(s,c,dte),f=h.dot(a,u),d,p,g,m,x;if(o){if(f<P.EPSILON6||(d=h.subtract(r,t,rte),g=h.dot(d,u),g<0||g>f)||(p=h.cross(d,a,ste),m=h.dot(s,p),m<0||g+m>f))return;x=h.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let b=1/f;if(d=h.subtract(r,t,rte),g=h.dot(d,u)*b,g<0||g>1||(p=h.cross(d,a,ste),m=h.dot(s,p)*b,m<0||g+m>1))return;x=h.dot(c,p)*b}return x};zo.rayTriangle=function(e,t,n,i,o,r){let s=zo.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var VDe=new mn;zo.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=VDe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=zo.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function UDe(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,u=(-t-a)*s;return c<u?(i.root0=c,i.root1=u):(i.root0=u,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var zDe={root0:0,root1:0};function hte(e,t,n){l(n)||(n=new wa);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,dte),c=h.dot(o,o),u=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=UDe(c,u,f,zDe);if(l(d))return n.start=d.root0,n.stop=d.root1,n}zo.raySphere=function(e,t,n){if(n=hte(e,t,n),!(!l(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var HDe=new mn;zo.lineSegmentSphere=function(e,t,n,i){let o=HDe;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=hte(o,n,i),!(!l(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var GDe=new h,WDe=new h;zo.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,GDe),o=h.multiplyComponents(n,e.direction,WDe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),u=c*a,p<u)return;if(p>u){f=s*s-u,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new wa(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new wa(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),u=c*a,f=s*s-u,d=-s+Math.sqrt(f),new wa(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new wa(0,-s/c)};function fx(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}zo.quadraticVectorExpression=function(e,t,n,i,o){let r=i*i,s=o*o,a=(e[$.COLUMN1ROW1]-e[$.COLUMN2ROW2])*s,c=o*(i*fx(e[$.COLUMN1ROW0],e[$.COLUMN0ROW1],P.EPSILON15)+t.y),u=e[$.COLUMN0ROW0]*r+e[$.COLUMN2ROW2]*s+i*t.x+n,f=s*fx(e[$.COLUMN2ROW1],e[$.COLUMN1ROW2],P.EPSILON15),d=o*(i*fx(e[$.COLUMN2ROW0],e[$.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=Fc.computeRealRoots(a,c,u),p.length===0)return g;let R=p[0],M=Math.sqrt(Math.max(1-R*R,0));if(g.push(new h(i,o*R,o*-M)),g.push(new h(i,o*R,o*M)),p.length===2){let N=p[1],_=Math.sqrt(Math.max(1-N*N,0));g.push(new h(i,o*N,o*-_)),g.push(new h(i,o*N,o*_))}return g}let m=d*d,x=f*f,b=a*a,T=d*f,C=b+x,A=2*(c*a+T),E=2*u*a+c*c-x+m,v=2*(u*c-T),D=u*u-m;if(C===0&&A===0&&E===0&&v===0)return g;p=xw.computeRealRoots(C,A,E,v,D);let O=p.length;if(O===0)return g;for(let R=0;R<O;++R){let M=p[R],N=M*M,_=Math.max(1-N,0),S=Math.sqrt(_),w;P.sign(a)===P.sign(u)?w=fx(a*N+u,c*M,P.EPSILON12):P.sign(u)===P.sign(c*M)?w=fx(a*N,c*M+u,P.EPSILON12):w=fx(a*N+c*M,u,P.EPSILON12);let I=fx(f*M,d,P.EPSILON15),L=w*I;L<0?g.push(new h(i,o*M,o*S)):L>0?g.push(new h(i,o*M,o*-S)):S!==0?(g.push(new h(i,o*M,o*-S)),g.push(new h(i,o*M,o*S)),++R):g.push(new h(i,o*M,o*S))}return g};var P6=new h,ate=new h,cte=new h,GV=new h,jDe=new h,qDe=new $,YDe=new $,XDe=new $,KDe=new $,ZDe=new $,lte=new $,ute=new $,fte=new h,$De=new h,QDe=new fe;zo.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,P6);if(h.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,P6),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,GV),c=h.normalize(h.cross(a,s,ate),ate),u=h.normalize(h.cross(s,c,cte),cte),f=qDe;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=u.x,f[7]=u.y,f[8]=u.z;let d=$.transpose(f,YDe),p=$.fromScale(t.radii,XDe),g=$.fromScale(t.oneOverRadii,KDe),m=ZDe;m[0]=0,m[1]=-i.z,m[2]=i.y,m[3]=i.z,m[4]=0,m[5]=-i.x,m[6]=-i.y,m[7]=i.x,m[8]=0;let x=$.multiply($.multiply(d,g,lte),m,lte),b=$.multiply($.multiply(x,p,ute),f,ute),T=$.multiplyByVector(x,n,jDe),C=zo.quadraticVectorExpression(b,h.negate(T,P6),0,0,1),A,E,v=C.length;if(v>0){let D=h.clone(h.ZERO,$De),O=Number.NEGATIVE_INFINITY;for(let M=0;M<v;++M){A=$.multiplyByVector(p,$.multiplyByVector(f,C[M],fte),fte);let N=h.normalize(h.subtract(A,n,GV),GV),_=h.dot(N,i);_>O&&(O=_,D=h.clone(A,D))}let R=t.cartesianToCartographic(D,QDe);return O=P.clamp(O,0,1),E=h.magnitude(h.subtract(D,n,GV))*Math.sqrt(1-O*O),E=o?-E:E,R.height=E,t.cartographicToCartesian(R,new h)}};var JDe=new h;zo.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,JDe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON6)return;let a=h.dot(r,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};zo.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new h,d=new h),u===1){if(s)return zo.lineSegmentPlane(e,t,i,f),zo.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return zo.lineSegmentPlane(t,n,i,f),zo.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return zo.lineSegmentPlane(n,e,i,f),zo.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(u===2)if(s)if(a){if(!c)return zo.lineSegmentPlane(e,n,i,f),zo.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return zo.lineSegmentPlane(n,t,i,f),zo.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return zo.lineSegmentPlane(t,e,i,f),zo.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var $n=zo;function Us(e,t){this.normal=h.clone(e),this.distance=t}Us.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new Us(t,i)};var eIe=new h;Us.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,eIe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new Us(n,i)};Us.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var tIe=new h;Us.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=Us.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,tIe);return h.subtract(t,o,n)};var nIe=new F,iIe=new oe,oIe=new h;Us.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,nIe),s=oe.fromElements(i.x,i.y,i.z,o,iIe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,oIe);return s=oe.divideByScalar(s,h.magnitude(a),s),Us.fromCartesian4(s,n)};Us.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Us(e.normal,e.distance)};Us.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Us.ORIGIN_XY_PLANE=Object.freeze(new Us(h.UNIT_Z,0));Us.ORIGIN_YZ_PLANE=Object.freeze(new Us(h.UNIT_X,0));Us.ORIGIN_ZX_PLANE=Object.freeze(new Us(h.UNIT_Y,0));var cn=Us;var R6={};R6.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;a<o;)c>n&&(n=c),++a,c=t[a]}let r=[];for(let a=0;a<n+1;a++)r[a]=0;let s=i+1;for(let a=0;a<o;++a)s-r[t[a]]>i&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};R6.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,S,w,I){for(;S.length>=1;){let L=S[S.length-1];if(S.splice(S.length-1,1),_[L].numLiveTriangles>0)return L}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,S,w,I,L,B,U){let V=-1,G,k=-1,W=0;for(;W<w.length;){let q=w[W];I[q].numLiveTriangles&&(G=0,L-I[q].timeStamp+2*I[q].numLiveTriangles<=S&&(G=L-I[q].timeStamp),(G>k||k===-1)&&(k=G,V=q)),++W}return V===-1?r(I,B,_,U):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;u<d;)f>c&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let m=0;for(;u<d;)p[t[u]].vertexTriangles.push(m),++p[t[u]].numLiveTriangles,p[t[u+1]].vertexTriangles.push(m),++p[t[u+1]].numLiveTriangles,p[t[u+2]].vertexTriangles.push(m),++p[t[u+2]].numLiveTriangles,++m,u+=3;let x=0,b=i+1;o=1;let T=[],C=[],A,E,v=0,D=[],O=a/3,R=[];for(g=0;g<O;g++)R[g]=!1;let M,N;for(;x!==-1;){T=[],E=p[x],N=E.vertexTriangles.length;for(let _=0;_<N;++_)if(m=E.vertexTriangles[_],!R[m]){R[m]=!0,u=m+m+m;for(let S=0;S<3;++S)M=t[u],T.push(M),C.push(M),D[v]=M,++v,A=p[M],--A.numLiveTriangles,b-A.timeStamp>i&&(A.timeStamp=b,++b),++u}x=s(t,i,T,p,b,C,c)}return D};var bw=R6;var Bc={};function ZV(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function rIe(e){let t=e.length,n=t/3*6,i=Ne.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)ZV(i,o,e[r],e[r+1],e[r+2]);return i}function sIe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ne.createTypedArray(t,n);ZV(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)ZV(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function aIe(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ne.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)ZV(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}Bc.toWireframe=function(e){let t=e.indices;if(l(t)){switch(e.primitiveType){case Me.TRIANGLES:e.indices=rIe(t);break;case Me.TRIANGLE_STRIP:e.indices=sIe(t);break;case Me.TRIANGLE_FAN:e.indices=aIe(t);break}e.primitiveType=Me.LINES}return e};Bc.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,o=e.attributes[t].values,r=i.length,s=new Float64Array(2*r),a=0;for(let f=0;f<r;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+o[f]*n,s[a++]=i[f+1]+o[f+1]*n,s[a++]=i[f+2]+o[f+2]*n;let c,u=e.boundingSphere;return l(u)&&(c=new se(u.center,u.radius+n)),new at({attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Me.LINES,boundingSphere:c})};Bc.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},o=0,r,s=t.length;for(r=0;r<s;++r){let a=t[r];l(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!l(i[a])&&(i[a]=o++);return i};Bc.reorderForPreVertexCache=function(e){let t=at.computeNumberOfVertices(e),n=e.indices;if(l(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Ne.createTypedArray(t,r),a=0,c=0,u=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=u,s[c]=u,++u),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&l(d[p])&&l(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,u*b);for(;x<t;){let C=i[x];if(C!==-1)for(let A=0;A<b;A++)T[b*C+A]=m[b*x+A];++x}g.values=T}}return e};Bc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Me.TRIANGLES&&l(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=bw.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function mte(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new Se({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function cIe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r<o.componentsPerAttribute;++r)e[i].values.push(o.values[n*o.componentsPerAttribute+r])}}Bc.fitToUnsignedShortIndices=function(e){let t=[],n=at.computeNumberOfVertices(e);if(l(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=mte(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Me.TRIANGLES?u=3:e.primitiveType===Me.LINES?u=2:e.primitiveType===Me.POINTS&&(u=1);for(let f=0;f<c;f+=u){for(let d=0;d<u;++d){let p=a[f+d],g=i[p];l(g)||(g=r++,i[p]=g,cIe(s,e.attributes,p)),o.push(g)}r+u>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new at({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=mte(e.attributes))}o.length!==0&&t.push(new at({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var pte=new h,lIe=new fe;Bc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new vi;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,pte),p=s.cartesianToCartographic(d,lIe),g=o.project(p,pte);c[u++]=g.x,c[u++]=g.y,c[u++]=g.z}return e.attributes[n]=r,e.attributes[i]=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var O6={high:0,low:0};Bc.encodeAttribute=function(e,t,n,i){let o=e.attributes[t],r=o.values,s=r.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)Gn.encode(r[f],O6),a[f]=O6.high,c[f]=O6.low;let u=o.componentsPerAttribute;return e.attributes[n]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:a}),e.attributes[i]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:c}),delete e.attributes[t],e};var Id=new h;function M6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Id),F.multiplyByPoint(e,Id,Id),h.pack(Id,n,o)}}function L6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,Id),$.multiplyByVector(e,Id,Id),Id=h.normalize(Id,Id),h.pack(Id,n,o)}}var WV=new F,jV=new $;Bc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(F.equals(t,F.IDENTITY))return e;let n=e.geometry.attributes;M6(t,n.position),M6(t,n.prevPosition),M6(t,n.nextPosition),(l(n.normal)||l(n.tangent)||l(n.bitangent))&&(F.inverse(t,WV),F.transpose(WV,WV),F.getMatrix3(WV,jV),L6(jV,n.normal),L6(jV,n.tangent),L6(jV,n.bitangent));let i=e.geometry.boundingSphere;return l(i)&&(e.geometry.boundingSphere=se.transform(i,t,i)),e.modelMatrix=F.clone(F.IDENTITY),e};function uIe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&l(o[r])&&l(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let u=1;u<n;++u){let f=e[u][t].attributes[r];if(!l(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new Se({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var fIe=new h;function N6(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=l(e[0][t].indices),u=e[0][t].primitiveType,f=uIe(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,o=0;o<n;++o)for(p=e[o][t].attributes[i].values,g=p.length,r=0;r<g;++r)d[s++]=p[r];let m;if(c){let C=0;for(o=0;o<n;++o)C+=e[o][t].indices.length;let A=at.computeNumberOfVertices(new at({attributes:f,primitiveType:Me.POINTS})),E=Ne.createTypedArray(A,C),v=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,R=O.length;for(s=0;s<R;++s)E[v++]=D+O[s];D+=at.computeNumberOfVertices(e[o][t])}m=E}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!l(T)){x=void 0;break}h.add(T.center,x,x)}if(l(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let C=h.magnitude(h.subtract(T.center,x,fIe))+T.radius;C>b&&(b=C)}return new at({attributes:f,indices:m,primitiveType:u,boundingSphere:l(x)?new se(x,b):void 0})}Bc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];l(s.geometry)?t.push(s):l(s.westHemisphereGeometry)&&l(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(N6(t,"geometry")),n.length>0&&(o.push(N6(n,"westHemisphereGeometry")),o.push(N6(n,"eastHemisphereGeometry"))),o};var yf=new h,Tw=new h,qC=new h,YC=new h;Bc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),u;for(u=0;u<o;u++)s[u]={indexOffset:0,count:0,currentCount:0};let f=0;for(u=0;u<r;u+=3){let m=t[u],x=t[u+1],b=t[u+2],T=m*3,C=x*3,A=b*3;Tw.x=i[T],Tw.y=i[T+1],Tw.z=i[T+2],qC.x=i[C],qC.y=i[C+1],qC.z=i[C+2],YC.x=i[A],YC.y=i[A+1],YC.z=i[A+2],s[m].count++,s[x].count++,s[b].count++,h.subtract(qC,Tw,qC),h.subtract(YC,Tw,YC),a[f]=h.cross(qC,YC,new h),f++}let d=0;for(u=0;u<o;u++)s[u].indexOffset+=d,d+=s[u].count;f=0;let p;for(u=0;u<r;u+=3){p=s[t[u]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[u+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[u+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(u=0;u<o;u++){let m=u*3;if(p=s[u],h.clone(h.ZERO,yf),p.count>0){for(f=0;f<p.count;f++)h.add(yf,a[c[p.indexOffset+f]],yf);h.equalsEpsilon(h.ZERO,yf,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],yf)}h.equalsEpsilon(h.ZERO,yf,P.EPSILON10)&&(yf.z=1),h.normalize(yf,yf),g[m]=yf.x,g[m+1]=yf.y,g[m+2]=yf.z}return e.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var dIe=new h,_te=new h,hIe=new h;Bc.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,o=e.attributes.normal.values,r=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),u;for(u=0;u<c.length;u++)c[u]=0;let f,d,p;for(u=0;u<a;u+=3){let x=n[u],b=n[u+1],T=n[u+2];f=x*3,d=b*3,p=T*3;let C=x*2,A=b*2,E=T*2,v=i[f],D=i[f+1],O=i[f+2],R=r[C],M=r[C+1],N=r[A+1]-M,_=r[E+1]-M,S=1/((r[A]-R)*_-(r[E]-R)*N),w=(_*(i[d]-v)-N*(i[p]-v))*S,I=(_*(i[d+1]-D)-N*(i[p+1]-D))*S,L=(_*(i[d+2]-O)-N*(i[p+2]-O))*S;c[f]+=w,c[f+1]+=I,c[f+2]+=L,c[d]+=w,c[d+1]+=I,c[d+2]+=L,c[p]+=w,c[p+1]+=I,c[p+2]+=L}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(u=0;u<s;u++){f=u*3,d=f+1,p=f+2;let x=h.fromArray(o,f,dIe),b=h.fromArray(c,f,hIe),T=h.dot(x,b);h.multiplyByScalar(x,T,_te),h.normalize(h.subtract(b,_te,b),b),g[f]=b.x,g[d]=b.y,g[p]=b.z,h.normalize(h.cross(x,b,b),b),m[f]=b.x,m[d]=b.y,m[p]=b.z}return e.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var Cw=new z,Dd=new h,gte=new h,yte=new h,qV=new z;Bc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(l(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),R=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,Dd),h.equals(Dd,h.ZERO)){R+=2;continue}qV=Mn.octEncodeInRange(Dd,65535,qV),O[R++]=qV.x,O[R++]=qV.y}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=l(o),a=l(r);if(!s&&!a)return e;let c=e.attributes.tangent,u=e.attributes.bitangent,f=l(c),d=l(u),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=u.values),i=(s?p.length:g.length)/(s?3:2);let C=i,A=a&&s?2:1;A+=f||d?1:0,C*=A;let E=new Float32Array(C),v=0;for(n=0;n<i;++n){a&&(z.fromArray(g,n*2,Cw),E[v++]=Mn.compressTextureCoordinates(Cw));let D=n*3;s&&l(m)&&l(x)?(h.fromArray(p,D,Dd),h.fromArray(m,D,gte),h.fromArray(x,D,yte),Mn.octPack(Dd,gte,yte,Cw),E[v++]=Cw.x,E[v++]=Cw.y):(s&&(h.fromArray(p,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)),f&&(h.fromArray(m,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)),d&&(h.fromArray(x,D,Dd),E[v++]=Mn.octEncodeFloat(Dd)))}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:A,values:E}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function mIe(e){if(l(e.indices))return e;let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function pIe(e){let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let o=3;o<t;++o)n[i++]=o-1,n[i++]=0,n[i++]=o;return e.indices=n,e.primitiveType=Me.TRIANGLES,e}function _Ie(e){let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;o<t-1;o+=2)n[i++]=o,n[i++]=o-1,n[i++]=o+1,o+2<t&&(n[i++]=o,n[i++]=o+1,n[i++]=o+2);return e.indices=n,e.primitiveType=Me.TRIANGLES,e}function gIe(e){if(l(e.indices))return e;let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function yIe(e){let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return e.indices=n,e.primitiveType=Me.LINES,e}function xIe(e){let t=at.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Me.LINES,e}function bIe(e){switch(e.primitiveType){case Me.TRIANGLE_FAN:return pIe(e);case Me.TRIANGLE_STRIP:return _Ie(e);case Me.TRIANGLES:return mIe(e);case Me.LINE_STRIP:return yIe(e);case Me.LINE_LOOP:return xIe(e);case Me.LINES:return gIe(e)}return e}function Ng(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function TIe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){Ng(e,e.y<0),Ng(t,t.y<0),Ng(n,n.y<0);return}let i=Math.abs(e.y),o=Math.abs(t.y),r=Math.abs(n.y),s;i>o?i>r?s=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;Ng(e,a),Ng(t,a),Ng(n,a)}var xte=new h;function xf(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,xte),e.y/(e.y-t.y),xte),n),h.clone(n,i),Ng(n,!0),Ng(i,!1)}var dx=new h,hx=new h,mx=new h,px=new h,F6={positions:new Array(7),indices:new Array(3*3)};function CIe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;TIe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=F6.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(xf(e,t,dx,mx),xf(e,n,hx,px),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(xf(t,n,dx,mx),xf(t,e,hx,px),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(xf(n,e,dx,mx),xf(n,t,hx,px),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(xf(n,e,dx,mx),xf(n,t,hx,px),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(xf(t,n,dx,mx),xf(t,e,hx,px),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(xf(e,t,dx,mx),xf(e,n,hx,px),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=F6.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=dx,c[4]=hx,c[5]=mx,c[6]=px,c.length=7),F6}function bte(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=at.computeNumberOfVertices(e);return e.indices=Ne.createTypedArray(i,e.indices),t&&(e.boundingSphere=se.fromVertices(n.position.values)),e}function KC(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new Se({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new at({attributes:n,indices:[],primitiveType:e.primitiveType})}function U6(e,t,n){let i=l(e.geometry.boundingSphere);t=bte(t,i),n=bte(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function z6(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),m=e.fromArray(u,s*t,i),x=e.fromArray(u,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(m,c.y,m),e.multiplyByScalar(x,c.z,x);let b=e.add(g,m,g);e.add(b,x,b),p&&e.normalize(b,b),e.pack(b,f,d*t)}}var AIe=z6(oe,4),KV=z6(h,3),vte=z6(z,2),EIe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>P.EPSILON6?1:0},Aw=new h,B6=new h,k6=new h,SIe=new h;function YV(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let b=h.fromArray(o,e*3,Aw),T=h.fromArray(o,t*3,B6),C=h.fromArray(o,n*3,k6),A=lx(i,b,T,C,SIe);if(l(A)){if(l(r)&&KV(e,t,n,A,r,d.normal.values,x,!0),l(u)){let E=h.fromArray(u,e*3,Aw),v=h.fromArray(u,t*3,B6),D=h.fromArray(u,n*3,k6);h.multiplyByScalar(E,A.x,E),h.multiplyByScalar(v,A.y,v),h.multiplyByScalar(D,A.z,D);let O;!h.equals(E,h.ZERO)||!h.equals(v,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(E,v,E),h.add(O,D,O),h.normalize(O,O)):(O=Aw,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(l(f)&&EIe(e,t,n,A,f,d.applyOffset.values,x),l(s)&&KV(e,t,n,A,s,d.tangent.values,x,!0),l(a)&&KV(e,t,n,A,a,d.bitangent.values,x,!0),l(c)&&vte(e,t,n,A,c,d.st.values,x),g>0)for(let E=0;E<g;E++){let v=p[E];vIe(e,t,n,A,x,m[v],d[v])}}}function vIe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,u=s.values;switch(a){case 4:AIe(e,t,n,i,c,u,o,!1);break;case 3:KV(e,t,n,i,c,u,o,!1);break;case 2:vte(e,t,n,i,c,u,o,!1);break;default:u[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function om(e,t,n,i,o,r){let s=e.position.values.length/3;if(o!==-1){let a=i[o],c=n[a];return c===-1?(n[a]=s,e.position.values.push(r.x,r.y,r.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(r.x,r.y,r.z),t.push(s),s}var wIe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function Tte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.normal)?n.normal.values:void 0,r=l(n.bitangent)?n.bitangent.values:void 0,s=l(n.tangent)?n.tangent.values:void 0,a=l(n.st)?n.st.values:void 0,c=l(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=l(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!wIe[O]&&l(n[O])&&d.push(O);let p=d.length,g=KC(t),m=KC(t),x,b,T,C,A,E=[];E.length=i.length/3;let v=[];for(v.length=i.length/3,A=0;A<E.length;++A)E[A]=-1,v[A]=-1;let D=f.length;for(A=0;A<D;A+=3){let O=f[A],R=f[A+1],M=f[A+2],N=h.fromArray(i,O*3),_=h.fromArray(i,R*3),S=h.fromArray(i,M*3),w=CIe(N,_,S);if(l(w)&&w.positions.length>3){let I=w.positions,L=w.indices,B=L.length;for(let U=0;U<B;++U){let V=L[U],G=I[V];G.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,V<3?A+V:-1,G),YV(O,R,M,G,i,o,s,r,a,c,u,x,d,p,n,C)}}else l(w)&&(N=w.positions[0],_=w.positions[1],S=w.positions[2]),N.y<0?(x=m.attributes,b=m.indices,T=E):(x=g.attributes,b=g.indices,T=v),C=om(x,b,T,f,A,N),YV(O,R,M,N,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+1,_),YV(O,R,M,_,i,o,s,r,a,c,u,x,d,p,n,C),C=om(x,b,T,f,A+2,S),YV(O,R,M,S,i,o,s,r,a,c,u,x,d,p,n,C)}U6(e,m,g)}var wte=cn.fromPointNormal(h.ZERO,h.UNIT_Y),DIe=new h,IIe=new h;function XC(e,t,n,i,o,r,s){if(!l(s))return;let a=h.fromArray(i,e*3,Aw);h.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function Cte(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=KC(t),a=KC(t),c,u=r.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<u;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,Aw),x=h.fromArray(i,g*3,B6),b;Math.abs(m.y)<P.EPSILON6&&(m.y<0?m.y=-P.EPSILON6:m.y=P.EPSILON6),Math.abs(x.y)<P.EPSILON6&&(x.y<0?x.y=-P.EPSILON6:x.y=P.EPSILON6);let T=s.attributes,C=s.indices,A=d,E=a.attributes,v=a.indices,D=f,O=$n.lineSegmentPlane(m,x,wte,k6);if(l(O)){let R=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,DIe);m.y<0&&(h.negate(R,R),T=a.attributes,C=a.indices,A=f,E=s.attributes,v=s.indices,D=d);let M=h.add(O,R,IIe);b=om(T,C,A,r,c,m),XC(p,g,m,i,b,T,o),b=om(T,C,A,r,-1,M),XC(p,g,M,i,b,T,o),h.negate(R,R),h.add(O,R,M),b=om(E,v,D,r,-1,M),XC(p,g,M,i,b,E,o),b=om(E,v,D,r,c+1,x),XC(p,g,x,i,b,E,o)}else{let R,M,N;m.y<0?(R=a.attributes,M=a.indices,N=f):(R=s.attributes,M=s.indices,N=d),b=om(R,M,N,r,c,m),XC(p,g,m,i,b,R,o),b=om(R,M,N,r,c+1,x),XC(p,g,x,i,b,R,o)}}U6(e,a,s)}var Ate=new z,PIe=new z,Dte=new h,Ite=new h,V6=new h,RIe=new h,OIe=new h,MIe=new h,Ete=new oe;function Ste(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,o=t.nextPosition.values,r=n.length;for(let s=0;s<r;s+=3){let a=h.unpack(n,s,Dte);if(a.x>0)continue;let c=h.unpack(i,s,Ite);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let u=h.unpack(o,s,V6);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(s+3<r?(o[s]=n[s+3],o[s+1]=n[s+4],o[s+2]=n[s+5]):h.pack(a,o,s))}}var LIe=5*P.EPSILON9,XV=P.EPSILON6;function NIe(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=n.prevPosition.values,r=n.nextPosition.values,s=n.expandAndWidth.values,a=l(n.st)?n.st.values:void 0,c=l(n.color)?n.color.values:void 0,u=KC(t),f=KC(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,C=h.fromArray(i,b*3,Dte),A=h.fromArray(i,T*3,Ite);if(Math.abs(C.y)<XV)for(C.y=XV*(A.y<0?-1:1),i[d*3+1]=C.y,i[(d+1)*3+1]=C.y,p=b*3;p<b*3+4*3;p+=3)o[p]=i[d*3],o[p+1]=i[d*3+1],o[p+2]=i[d*3+2];if(Math.abs(A.y)<XV)for(A.y=XV*(C.y<0?-1:1),i[(d+2)*3+1]=A.y,i[(d+3)*3+1]=A.y,p=b*3;p<b*3+4*3;p+=3)r[p]=i[(d+2)*3],r[p+1]=i[(d+2)*3+1],r[p+2]=i[(d+2)*3+2];let E=u.attributes,v=u.indices,D=f.attributes,O=f.indices,R=$n.lineSegmentPlane(C,A,wte,RIe);if(l(R)){m=!0;let M=h.multiplyByScalar(h.UNIT_Y,LIe,OIe);C.y<0&&(h.negate(M,M),E=f.attributes,v=f.indices,D=u.attributes,O=u.indices);let N=h.add(R,M,MIe);E.position.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.position.values.push(N.x,N.y,N.z),E.position.values.push(N.x,N.y,N.z),E.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),E.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),E.prevPosition.values.push(C.x,C.y,C.z,C.x,C.y,C.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),E.nextPosition.values.push(N.x,N.y,N.z),h.negate(M,M),h.add(R,M,N),D.position.values.push(N.x,N.y,N.z),D.position.values.push(N.x,N.y,N.z),D.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.prevPosition.values.push(N.x,N.y,N.z),D.nextPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),D.nextPosition.values.push(r[T*3],r[T*3+1],r[T*3+2]),D.nextPosition.values.push(r[T*3+3],r[T*3+4],r[T*3+5]);let _=z.fromArray(s,b*2,Ate),S=Math.abs(_.y);E.expandAndWidth.values.push(-1,S,1,S),E.expandAndWidth.values.push(-1,-S,1,-S),D.expandAndWidth.values.push(-1,S,1,S),D.expandAndWidth.values.push(-1,-S,1,-S);let w=h.magnitudeSquared(h.subtract(R,C,V6));if(w/=h.magnitudeSquared(h.subtract(A,C,V6)),l(c)){let I=oe.fromArray(c,b*4,Ete),L=oe.fromArray(c,T*4,Ete),B=P.lerp(I.x,L.x,w),U=P.lerp(I.y,L.y,w),V=P.lerp(I.z,L.z,w),G=P.lerp(I.w,L.w,w);for(p=b*4;p<b*4+2*4;++p)E.color.values.push(c[p]);for(E.color.values.push(B,U,V,G),E.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),D.color.values.push(B,U,V,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(l(a)){let I=z.fromArray(a,b*2,Ate),L=z.fromArray(a,(d+3)*2,PIe),B=P.lerp(I.x,L.x,w);for(p=b*2;p<b*2+2*2;++p)E.st.values.push(a[p]);for(E.st.values.push(B,I.y),E.st.values.push(B,L.y),D.st.values.push(B,I.y),D.st.values.push(B,L.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=E.position.values.length/3-4,v.push(g,g+2,g+1),v.push(g+1,g+2,g+3),g=D.position.values.length/3-4,O.push(g,g+2,g+1),O.push(g+1,g+2,g+3)}else{let M,N;for(C.y<0?(M=f.attributes,N=f.indices):(M=u.attributes,N=u.indices),M.position.values.push(C.x,C.y,C.z),M.position.values.push(C.x,C.y,C.z),M.position.values.push(A.x,A.y,A.z),M.position.values.push(A.x,A.y,A.z),p=d*3;p<d*3+4*3;++p)M.prevPosition.values.push(o[p]),M.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)M.expandAndWidth.values.push(s[p]),l(a)&&M.st.values.push(a[p]);if(l(c))for(p=d*4;p<d*4+4*4;++p)M.color.values.push(c[p]);g=M.position.values.length/3-4,N.push(g,g+2,g+1),N.push(g+1,g+2,g+3)}}m&&(Ste(f),Ste(u)),U6(e,f,u)}Bc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(l(n)&&(n.center.x-n.radius>0||se.intersectPlane(n,cn.ORIGIN_ZX_PLANE)!==jt.INTERSECTING))return e;if(t.geometryType!==gf.NONE)switch(t.geometryType){case gf.POLYLINES:NIe(e);break;case gf.TRIANGLES:Tte(e);break;case gf.LINES:Cte(e);break}else bIe(t),t.primitiveType===Me.TRIANGLES?Tte(e):t.primitiveType===Me.LINES&&Cte(e);return e};var Ln=Bc;function Ew(e,t,n,i,o,r,s,a,c,u,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=u,this._initialized=f}Object.defineProperties(Ew.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});Ew.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,{width:r,height:s}=i,a=this._context._gl,c=this._textureTarget,u=this._targetFace;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture);let f=i.arrayBufferView,d=this._size,p=this._pixelFormat,g=this._internalFormat,m=this._pixelDatatype,x=this._preMultiplyAlpha,b=this._flipY,T=4;l(f)&&(T=Je.alignmentInBytes(p,m,r)),a.pixelStorei(a.UNPACK_ALIGNMENT,T),o?a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE):a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){let A;t===0&&n===0&&r===d&&s===d?(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=Je.flipY(f,p,m,d,d)),A=f):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),A=i),C=!0):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),A=Je.createTypedArray(p,m,d,d)),a.texImage2D(u,0,g,d,d,0,p,Ke.toWebGLConstant(m,this._context),A),this._initialized=!0}C||(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=Je.flipY(f,p,m,r,s)),a.texSubImage2D(u,0,t,n,r,s,p,Ke.toWebGLConstant(m,this._context),f)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),a.texSubImage2D(u,0,t,n,p,Ke.toWebGLConstant(m,this._context),i))),a.bindTexture(c,null)};Ew.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};Ew.prototype.copyMipmapFromFramebuffer=function(e,t,n,i,o){e=y(e,0),t=y(t,0),n=y(n,this._size),i=y(i,this._size),o=y(o,0);let r=this._context._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture),r.copyTexImage2D(this._targetFace,o,this._internalFormat,e,t,n,i,0),r.bindTexture(s,null),this._initialized=!0};var Sw=Ew;var $V={DONT_CARE:te.DONT_CARE,FASTEST:te.FASTEST,NICEST:te.NICEST,validate:function(e){return e===$V.DONT_CARE||e===$V.FASTEST||e===$V.NICEST}},rm=Object.freeze($V);var QV={NEAREST:te.NEAREST,LINEAR:te.LINEAR};QV.validate=function(e){return e===QV.NEAREST||e===QV.LINEAR};var di=Object.freeze(QV);var Fg={NEAREST:te.NEAREST,LINEAR:te.LINEAR,NEAREST_MIPMAP_NEAREST:te.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:te.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:te.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:te.LINEAR_MIPMAP_LINEAR};Fg.validate=function(e){return e===Fg.NEAREST||e===Fg.LINEAR||e===Fg.NEAREST_MIPMAP_NEAREST||e===Fg.LINEAR_MIPMAP_NEAREST||e===Fg.NEAREST_MIPMAP_LINEAR||e===Fg.LINEAR_MIPMAP_LINEAR};var Zt=Object.freeze(Fg);var JV={CLAMP_TO_EDGE:te.CLAMP_TO_EDGE,REPEAT:te.REPEAT,MIRRORED_REPEAT:te.MIRRORED_REPEAT,validate:function(e){return e===JV.CLAMP_TO_EDGE||e===JV.REPEAT||e===JV.MIRRORED_REPEAT}},Tn=Object.freeze(JV);function vw(e){e=y(e,y.EMPTY_OBJECT);let{wrapS:t=Tn.CLAMP_TO_EDGE,wrapT:n=Tn.CLAMP_TO_EDGE,minificationFilter:i=Zt.LINEAR,magnificationFilter:o=di.LINEAR,maximumAnisotropy:r=1}=e;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties(vw.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});vw.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};vw.NEAREST=Object.freeze(new vw({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST}));var $t=vw;function FIe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function Rte(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}l(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function vp(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,o=e.indexBuffer,r,s=[],a=1,c=!1,u=!1,f=i.length;for(r=0;r<f;++r)FIe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(l(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(r=0;r<f;++r)s[r].instanceDivisor>0&&(c=!0),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),Rte(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function Pte(e){return e.values.length/e.componentsPerAttribute}function BIe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function kIe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=Pte(e[o[0]]),t=1;t<s;++t){let u=Pte(e[o[t]]);if(u!==r)throw new ce(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${u.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(u,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[u].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=BIe(i);if(a>0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=o[t];let m=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/m,strideInComponentType:a/m}}for(t=0;t<r;++t)for(let m=0;m<s;++m){n=o[m],i=e[n];let x=i.values,b=g[n],T=b.pointer,C=i.componentsPerAttribute;for(let A=0;A<C;++A)T[b.index+A]=x[t*C+A];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}vp.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,u,f=l(s)?s:[],d=n.attributes;if(r){let m=kIe(d);if(l(m)){u=_t.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&l(d[a])&&(c=d[a],l(c.values)?f.push({index:o[a],vertexBuffer:u,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:x[a],strideInBytes:b}):f.push({index:o[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&l(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),u=void 0,l(c.values)&&(u=_t.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:u,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return l(g)&&(at.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=_t.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ne.UNSIGNED_INT}):p=_t.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ne.UNSIGNED_SHORT})),new vp({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(vp.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});vp.prototype.getAttribute=function(e){return this._attributes[e]};function VIe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=kt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let u=c.instanceDivisor,f=c.index;u!==i[f]&&(t.glVertexAttribDivisor(f,u),i[f]=u)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function UIe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&l(r.value)&&r.vertexAttrib(t)}}vp.prototype._bind=function(){l(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&VIe(this),this._hasConstantAttributes&&UIe(this,this._gl)):Rte(this._gl,this._attributes,this._indexBuffer)};vp.prototype._unBind=function(){if(l(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};vp.prototype.isDestroyed=function(){return!1};vp.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;l(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return l(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),l(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var ti=vp;function $o(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=Je.RGBA,pixelDatatype:o=Ke.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new $t}=e,c=e.preMultiplyAlpha||i===Je.RGB||i===Je.LUMINANCE,{width:u,height:f}=e;l(n)&&({width:u,height:f}=n.positiveX);let d=u,p=Je.textureSizeInBytes(i,o,d,d)*6,g=Je.toInternalFormat(i,o,t),m=t._gl,x=m.TEXTURE_CUBE_MAP,b=m.createTexture();this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=x,this._texture=b,this._pixelFormat=i,this._pixelDatatype=o,this._size=d,this._hasMipmap=!1,this._sizeInBytes=p,this._preMultiplyAlpha=c,this._flipY=r;let T=l(n);function C(A){return new Sw(t,b,x,A,g,i,o,d,c,r,T)}this._positiveX=C(m.TEXTURE_CUBE_MAP_POSITIVE_X),this._negativeX=C(m.TEXTURE_CUBE_MAP_NEGATIVE_X),this._positiveY=C(m.TEXTURE_CUBE_MAP_POSITIVE_Y),this._negativeY=C(m.TEXTURE_CUBE_MAP_NEGATIVE_Y),this._positiveZ=C(m.TEXTURE_CUBE_MAP_POSITIVE_Z),this._negativeZ=C(m.TEXTURE_CUBE_MAP_NEGATIVE_Z),this._sampler=a,Ote(this,a),m.activeTexture(m.TEXTURE0),m.bindTexture(x,b),s?m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.NONE):m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.BROWSER_DEFAULT_WEBGL);for(let A of $o.faceNames())H6(this[A],n?.[A],0);m.bindTexture(x,null)}$o.prototype.copyFace=function(e,t,n,i){let o=e.context,r=new Mr({context:o,colorTextures:[t],destroyAttachments:!1});r._bind(),this[n].copyMipmapFromFramebuffer(0,0,t.width,t.height,y(i,0)),r._unBind(),r.destroy()};$o.FaceName=Object.freeze({POSITIVEX:"positiveX",NEGATIVEX:"negativeX",POSITIVEY:"positiveY",NEGATIVEY:"negativeY",POSITIVEZ:"positiveZ",NEGATIVEZ:"negativeZ"});function*zIe(){yield $o.FaceName.POSITIVEX,yield $o.FaceName.NEGATIVEX,yield $o.FaceName.POSITIVEY,yield $o.FaceName.NEGATIVEY,yield $o.FaceName.POSITIVEZ,yield $o.FaceName.NEGATIVEZ}$o.faceNames=function(){return zIe()};function H6(e,t,n){n=y(n,0);let i=e._targetFace,o=Math.max(Math.floor(e._size/2**n),1),r=e._pixelFormat,s=e._pixelDatatype,a=e._internalFormat,c=e._flipY,u=e._preMultiplyAlpha,f=e._context,d=f._gl;if(!l(t)){d.texImage2D(i,n,a,o,o,0,r,Ke.toWebGLConstant(s,f),null);return}let{arrayBufferView:p}=t,g=4;l(p)&&(g=Je.alignmentInBytes(r,s,o)),d.pixelStorei(d.UNPACK_ALIGNMENT,g),l(p)?(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,!1),c&&(p=Je.flipY(p,r,s,o,o)),d.texImage2D(i,n,a,o,o,0,r,Ke.toWebGLConstant(s,f),p)):(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,u),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,c),d.texImage2D(i,n,a,r,Ke.toWebGLConstant(s,f),t))}$o.loadFace=H6;Object.defineProperties($o.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){Ote(this,e),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});$o.getDirection=function(e,t){switch(e){case $o.FaceName.POSITIVEX:return h.clone(h.UNIT_X,t);case $o.FaceName.NEGATIVEX:return h.negate(h.UNIT_X,t);case $o.FaceName.POSITIVEY:return h.clone(h.UNIT_Y,t);case $o.FaceName.NEGATIVEY:return h.negate(h.UNIT_Y,t);case $o.FaceName.POSITIVEZ:return h.clone(h.UNIT_Z,t);case $o.FaceName.NEGATIVEZ:return h.negate(h.UNIT_Z,t)}};function Ote(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelDatatype;(s===Ke.FLOAT&&!r.textureFloatLinear||s===Ke.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?Zt.NEAREST_MIPMAP_NEAREST:Zt.NEAREST,i=di.NEAREST);let a=r._gl,c=e._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,e._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,n),a.texParameteri(c,a.TEXTURE_MAG_FILTER,i),a.texParameteri(c,a.TEXTURE_WRAP_S,t.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&a.texParameteri(c,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),a.bindTexture(c,null)}$o.prototype.loadMipmaps=function(e,t){t=y(t,!1);let n=this._context._gl,i=this._texture,o=this._textureTarget;n.activeTexture(n.TEXTURE0),n.bindTexture(o,i),t?n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE):n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.BROWSER_DEFAULT_WEBGL);for(let r=0;r<e.length;r++){let s=e[r],a=r+1;for(let c of $o.faceNames())H6(this[c],s[c],a)}n.bindTexture(o,null),this._hasMipmap=!0};$o.prototype.generateMipmap=function(e){e=y(e,rm.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};$o.createVertexArray=function(e){let t=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY})),n=this._attributeLocations=Ln.createAttributeLocations(t);return ti.fromGeometry({context:e,geometry:t,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW})};$o.prototype.isDestroyed=function(){return!1};$o.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var br=$o;function HIe(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var ic=HIe;var ww=`/** + * A built-in GLSL floating-point constant for converting radians to degrees. + * + * @alias czm_degreesPerRadian + * @glslConstant + * + * @see CesiumMath.DEGREES_PER_RADIAN + * + * @example + * // GLSL declaration + * const float czm_degreesPerRadian = ...; + * + * // Example + * float deg = czm_degreesPerRadian * rad; + */ +const float czm_degreesPerRadian = 57.29577951308232; +`;var Dw=`/** + * A built-in GLSL vec2 constant for defining the depth range. + * This is a workaround to a bug where IE11 does not implement gl_DepthRange. + * + * @alias czm_depthRange + * @glslConstant + * + * @example + * // GLSL declaration + * float depthRangeNear = czm_depthRange.near; + * float depthRangeFar = czm_depthRange.far; + * + */ +const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0); +`;var Iw=`/** + * 0.1 + * + * @name czm_epsilon1 + * @glslConstant + */ +const float czm_epsilon1 = 0.1; +`;var Pw=`/** + * 0.01 + * + * @name czm_epsilon2 + * @glslConstant + */ +const float czm_epsilon2 = 0.01; +`;var Rw=`/** + * 0.001 + * + * @name czm_epsilon3 + * @glslConstant + */ +const float czm_epsilon3 = 0.001; +`;var Ow=`/** + * 0.0001 + * + * @name czm_epsilon4 + * @glslConstant + */ +const float czm_epsilon4 = 0.0001; +`;var Mw=`/** + * 0.00001 + * + * @name czm_epsilon5 + * @glslConstant + */ +const float czm_epsilon5 = 0.00001; +`;var Lw=`/** + * 0.000001 + * + * @name czm_epsilon6 + * @glslConstant + */ +const float czm_epsilon6 = 0.000001; +`;var Nw=`/** + * 0.0000001 + * + * @name czm_epsilon7 + * @glslConstant + */ +const float czm_epsilon7 = 0.0000001; +`;var Fw=`/** + * DOC_TBA + * + * @name czm_infinity + * @glslConstant + */ +const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp? +`;var Bw=`/** + * A built-in GLSL floating-point constant for <code>1/pi</code>. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var kw=`/** + * A built-in GLSL floating-point constant for <code>1/2pi</code>. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var Vw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var Uw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var zw=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var Hw=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var Gw=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var Ww=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var jw=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var qw=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var Yw=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var Xw=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var Kw=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var Zw=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var $w=`/** + * A built-in GLSL floating-point constant for <code>Math.PI</code>. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var Qw=`/** + * A built-in GLSL floating-point constant for <code>pi/4</code>. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var Jw=`/** + * A built-in GLSL floating-point constant for <code>pi/6</code>. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var eD=`/** + * A built-in GLSL floating-point constant for <code>pi/3</code>. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var tD=`/** + * A built-in GLSL floating-point constant for <code>pi/2</code>. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var nD=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var iD=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var oD=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var rD=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var sD=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var aD=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var cD=`/** + * A built-in GLSL floating-point constant for <code>3pi/2</code>. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var lD=`/** + * A built-in GLSL floating-point constant for <code>2pi</code>. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var uD=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var fD=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var dD=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var hD=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. +* @property {float} waterMask The value of the water mask. 0 is land, 1 is water. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; + float waterMask; +}; +`;var mD=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + * <p> + * All color values (diffuse, specular, emissive) are in linear color space. + * </p> + * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec4} baseColor The base color of the material. + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec4 baseColor; + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +#ifdef USE_SPECULAR + float specularWeight; +#endif +#ifdef USE_ANISOTROPY + vec3 anisotropicT; + vec3 anisotropicB; + float anisotropyStrength; +#endif +#ifdef USE_CLEARCOAT + float clearcoatFactor; + float clearcoatRoughness; + vec3 clearcoatNormal; + // Add clearcoatF0 when KHR_materials_ior is implemented +#endif +}; +`;var pD=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var _D=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var gD=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var yD=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var xD=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var bD=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var TD=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var CD=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var AD=`/** + * Converts an RGB color to CIE Yxy. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var ED=`/** + * Converts a CIE Yxy color to RGB. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var SD=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var vD=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var wD=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var DD=`/** + * Apply a HSB color shift to an RGB color. + * + * @param {vec3} rgb The color in RGB space. + * @param {vec3} hsbShift The amount to shift each component. The xyz components correspond to hue, saturation, and brightness. Shifting the hue by +/- 1.0 corresponds to shifting the hue by a full cycle. Saturation and brightness are clamped between 0 and 1 after the adjustment + * @param {bool} ignoreBlackPixels If true, black pixels will be unchanged. This is necessary in some shaders such as atmosphere-related effects. + * + * @return {vec3} The RGB color after shifting in HSB space and clamping saturation and brightness to a valid range. + */ +vec3 czm_applyHSBShift(vec3 rgb, vec3 hsbShift, bool ignoreBlackPixels) { + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + + // Perform hsb shift + // Hue cycles around so no clamp is needed. + hsb.x += hsbShift.x; // hue + hsb.y = clamp(hsb.y + hsbShift.y, 0.0, 1.0); // saturation + + // brightness + // + // Some shaders such as atmosphere-related effects need to leave black + // pixels unchanged + if (ignoreBlackPixels) { + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + hsbShift.z : 0.0; + } else { + hsb.z = hsb.z + hsbShift.z; + } + hsb.z = clamp(hsb.z, 0.0, 1.0); + + // Convert shifted hsb back to rgb + return czm_HSBToRGB(hsb); +} +`;var ID=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var PD=`/** + * Compute a rational approximation to tanh(x) + * + * @param {float} x A real number input + * @returns {float} An approximation for tanh(x) +*/ +float czm_approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} +`;var RD=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var OD=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var MD=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var LD=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var ND=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var FD=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var BD=`float getSignedDistance(vec2 uv, highp sampler2D clippingDistance) { + float signedDistance = texture(clippingDistance, uv).r; + return (signedDistance - 0.5) * 2.0; +} + +void czm_clipPolygons(highp sampler2D clippingDistance, int extentsLength, vec2 clippingPosition, int regionIndex) { + // Position is completely outside of polygons bounds + vec2 rectUv = clippingPosition; + if (regionIndex < 0 || rectUv.x <= 0.0 || rectUv.y <= 0.0 || rectUv.x >= 1.0 || rectUv.y >= 1.0) { + #ifdef CLIPPING_INVERSE + discard; + #endif + return; + } + + vec2 clippingDistanceTextureDimensions = vec2(textureSize(clippingDistance, 0)); + vec2 sampleOffset = max(1.0 / clippingDistanceTextureDimensions, vec2(0.005)); + float dimension = float(extentsLength); + if (extentsLength > 2) { + dimension = ceil(log2(float(extentsLength))); + } + + vec2 textureOffset = vec2(mod(float(regionIndex), dimension), floor(float(regionIndex) / dimension)) / dimension; + vec2 uv = textureOffset + rectUv / dimension; + + float signedDistance = getSignedDistance(uv, clippingDistance); + + #ifdef CLIPPING_INVERSE + if (signedDistance > 0.0) { + discard; + } + #else + if (signedDistance < 0.0) { + discard; + } + #endif +} +`;var kD=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var VD=`/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {vec3} positionWC Position of the fragment in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {czm_ray} primaryRay Ray from the origin to sky fragment to in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + czm_ray primaryRay, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + vec3 direction = normalize(primaryRay.direction); + + float cosAngle = dot(direction, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +`;var UD=`/** + * Compute atmosphere scattering for the ground atmosphere and fog. This method + * uses automatic uniforms so it is always synced with the scene settings. + * + * @name czm_computeGroundAtmosphereScattering + * @glslfunction + * + * @param {vec3} positionWC The position of the fragment in world coordinates. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeGroundAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + czm_computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var zD=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + * <p> + * This uses standard position attributes, <code>position3DHigh</code>, + * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>, + * and should be used when writing a vertex shader for an {@link Appearance}. + * </p> + * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var HD=`/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. This function uses automatic uniforms + * so the atmosphere settings are always synced with the current scene. + * + * @name czm_computeScattering + * @glslfunction + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. + const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. + const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = czm_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x)))); +} +`;var GD=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var WD=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var jD=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var qD=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + * <br /><br /> + * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var YD=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var XD=`/** + * Approximate uv coordinates based on the ellipsoid normal. + * + * @name czm_ellipsoidTextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidTextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var KD=`/** + * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code> + * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs + * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s, + * <code>vec3</code>s, or <code>vec4</code>s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var ZD=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var $D=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var QD=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var JD=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var eI=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var tI=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var nI=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var iI=`/** + * Select which direction vector to use for dynamic atmosphere lighting based on an enum value + * + * @name czm_getDynamicAtmosphereLightDirection + * @glslfunction + * @see DynamicAtmosphereLightingType.js + * + * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off. + * @param {float} lightEnum The enum value for selecting between light sources. + * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC + */ +vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) { + const float NONE = 0.0; + const float SCENE_LIGHT = 1.0; + const float SUNLIGHT = 2.0; + + vec3 lightDirection = + positionWC * float(lightEnum == NONE) + + czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) + + czm_sunDirectionWC * float(lightEnum == SUNLIGHT); + return normalize(lightDirection); +} +`;var oI=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var rI=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var sI=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var aI=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var cI=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var lI=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var uI=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var fI=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var dI=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var hI=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var mI=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var pI=`/** + * Find the maximum component of a vector. + * + * @name czm_maximumComponent + * @glslFunction + * + * @param {vec2|vec3|vec4} v The input vector. + * @returns {float} The value of the largest component. + */ +float czm_maximumComponent(vec2 v) +{ + return max(v.x, v.y); +} +float czm_maximumComponent(vec3 v) +{ + return max(max(v.x, v.y), v.z); +} +float czm_maximumComponent(vec4 v) +{ + return max(max(max(v.x, v.y), v.z), v.w); +} +`;var _I=`/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when scaling by pixel ratio. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var gI=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * <br /><br /> + * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var yI=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var xI=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var bI=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var TI=`/** + * Packs a depth value into a vec4 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec4} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var CI=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + float versine = 1.0 - VdotH; + // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269 + float versineSquared = versine * versine; + return f0 + (f90 - f0) * versineSquared * versineSquared * versine; +} + +#ifdef USE_ANISOTROPY +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates + * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates + */ +float smithVisibilityGGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection) +{ + vec3 roughnessScale = vec3(tangentialRoughness, bitangentRoughness, 1.0); + float GGXV = lightDirection.z * length(roughnessScale * viewDirection); + float GGXL = viewDirection.z * length(roughnessScale * lightDirection); + float v = 0.5 / (GGXV + GGXL); + return clamp(v, 0.0, 1.0); +} + +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates + */ +float GGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 halfwayDirection) +{ + float roughnessSquared = bitangentRoughness * tangentialRoughness; + vec3 f = halfwayDirection * vec3(bitangentRoughness, tangentialRoughness, roughnessSquared); + float w2 = roughnessSquared / dot(f, f); + return roughnessSquared * w2 * w2 / czm_pi; +} +#endif + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; + if (GGX > 0.0) + { + return 0.5 / GGX; + } + return 0.0; +} + +/** + * Estimate the fraction of the microfacets in a surface that are aligned with + * the halfway vector, which is aligned halfway between the directions from + * the fragment to the camera and from the fragment to the light source. + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector. + * @return {float} The fraction of microfacets aligned to the halfway vector. + */ +float GGX(float alphaRoughness, float NdotH) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float f = (NdotH * alphaRoughnessSquared - NdotH) * NdotH + 1.0; + return alphaRoughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the strength of the specular reflection due to direct lighting. + * + * @param {vec3} normal The surface normal. + * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source. + * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera. + * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera. + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @return {float} The strength of the specular reflection. + */ +float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float alphaRoughness) +{ + float NdotL = clamp(dot(normal, lightDirection), 0.0, 1.0); + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0); + float D = GGX(alphaRoughness, NdotH); + return G * D; +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + * <p> + * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@MaterialStageFS} + * </p> + * + * @name czm_pbrLighting + * @glslFunction + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color + */ +vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material) +{ + vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); + float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); + float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0); + + vec3 f0 = material.specular; + float reflectance = czm_maximumComponent(f0); + // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0. + // In this case, at grazing angle, all incident energy is reflected. + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + #if defined(USE_SPECULAR) + F *= material.specularWeight; + #endif + + float alphaRoughness = material.roughness * material.roughness; + #ifdef USE_ANISOTROPY + mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC); + vec3 lightDirection = lightDirectionEC * tbn; + vec3 viewDirection = viewDirectionEC * tbn; + vec3 halfwayDirection = halfwayDirectionEC * tbn; + float anisotropyStrength = material.anisotropyStrength; + float tangentialRoughness = mix(alphaRoughness, 1.0, anisotropyStrength * anisotropyStrength); + float bitangentRoughness = clamp(alphaRoughness, 0.001, 1.0); + float G = smithVisibilityGGX_anisotropic(bitangentRoughness, tangentialRoughness, lightDirection, viewDirection); + float D = GGX_anisotropic(bitangentRoughness, tangentialRoughness, halfwayDirection); + vec3 specularContribution = F * G * D; + #else + float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alphaRoughness); + vec3 specularContribution = F * specularStrength; + #endif + + vec3 diffuseColor = material.diffuse; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL; +} +`;var AI=`// KhronosGroup https://github.com/KhronosGroup/ToneMapping/tree/main/PBR_Neutral + +// Input color is non-negative and resides in the Linear Rec. 709 color space. +// Output color is also Linear Rec. 709, but in the [0, 1] range. + +vec3 czm_pbrNeutralTonemapping(vec3 color) { + const float startCompression = 0.8 - 0.04; + const float desaturation = 0.15; + + float x = min(color.r, min(color.g, color.b)); + float offset = czm_branchFreeTernary(x < 0.08, x - 6.25 * x * x, 0.04); + color -= offset; + + float peak = max(color.r, max(color.g, color.b)); + if (peak < startCompression) return color; + + const float d = 1.0 - startCompression; + float newPeak = 1.0 - d * d / (peak + d - startCompression); + color *= newPeak / peak; + + float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0); + return mix(color, newPeak * vec3(1.0, 1.0, 1.0), g); +} +`;var EI=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var SI=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var vI=`/** + * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var wI=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var DI=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var II=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var PI=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var RI=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var OI=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var MI=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var LI=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var NI=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var FI=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var BI=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + * <p> + * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + * </p> + * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + vec3 L = + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); + + return max(L, vec3(0.0)); +} +`;var kI=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var VI=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var UI=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +} + +/** + * A wrapper around the textureLod (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support in fragment shaders. + * + * @name czm_textureCubeLod + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + * @param {float} lod The mipmap level from which to sample. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p, float lod) { +#if __VERSION__ == 300 + return textureLod(sampler, p, lod); +#elif defined(GL_EXT_shader_texture_lod) + return textureCubeLodEXT(sampler, p, lod); +#endif +}`;var zI=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var HI=`/** + * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + * <p> + * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + * </p> + * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + // This check handles the case when NaN values have gotten into \`highDifference\`. + // Such a thing could happen on devices running iOS. + if (length(highDifference) == 0.0) { + highDifference = vec3(0); + } + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var GI=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var WI=`/** + * Returns the transpose of the matrix. The input <code>matrix</code> can be + * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var jI=`vec2 getLookupUv(vec2 dimensions, int i) { + int pixY = i / int(dimensions.x); + int pixX = i - (pixY * int(dimensions.x)); + float pixelWidth = 1.0 / dimensions.x; + float pixelHeight = 1.0 / dimensions.y; + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) { + vec2 textureDimensions = vec2(textureSize(extentsTexture, 0)); + return texture(extentsTexture, getLookupUv(textureDimensions, index)); +}`;var qI=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ +float czm_unpackDepth(vec4 packedDepth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); +} +`;var YI=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var XI=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + * <p> + * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + * </p> + * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var KI=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var ZI=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + * <p> + * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + * </p> + * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var $I=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of <code>czm_viewportTransformation</code>. The transformation from + * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = exp2(log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var QI=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var JI=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when + * ray-casting geometry using a full screen quad. + * </p> + * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader calls {@link czm_vertexLogDepth}. + * </p> + * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var eP=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var _x={czm_degreesPerRadian:ww,czm_depthRange:Dw,czm_epsilon1:Iw,czm_epsilon2:Pw,czm_epsilon3:Rw,czm_epsilon4:Ow,czm_epsilon5:Mw,czm_epsilon6:Lw,czm_epsilon7:Nw,czm_infinity:Fw,czm_oneOverPi:Bw,czm_oneOverTwoPi:kw,czm_passCesium3DTile:Vw,czm_passCesium3DTileClassification:Uw,czm_passCesium3DTileClassificationIgnoreShow:zw,czm_passClassification:Hw,czm_passCompute:Gw,czm_passEnvironment:Ww,czm_passGlobe:jw,czm_passOpaque:qw,czm_passOverlay:Yw,czm_passTerrainClassification:Xw,czm_passTranslucent:Kw,czm_passVoxels:Zw,czm_pi:$w,czm_piOverFour:Qw,czm_piOverSix:Jw,czm_piOverThree:eD,czm_piOverTwo:tD,czm_radiansPerDegree:nD,czm_sceneMode2D:iD,czm_sceneMode3D:oD,czm_sceneModeColumbusView:rD,czm_sceneModeMorphing:sD,czm_solarRadius:aD,czm_threePiOver2:cD,czm_twoPi:lD,czm_webMercatorMaxLatitude:uD,czm_depthRangeStruct:fD,czm_material:dD,czm_materialInput:hD,czm_modelMaterial:mD,czm_modelVertexOutput:pD,czm_ray:_D,czm_raySegment:gD,czm_shadowParameters:yD,czm_HSBToRGB:xD,czm_HSLToRGB:bD,czm_RGBToHSB:TD,czm_RGBToHSL:CD,czm_RGBToXYZ:AD,czm_XYZToRGB:ED,czm_acesTonemapping:SD,czm_alphaWeight:vD,czm_antialias:wD,czm_applyHSBShift:DD,czm_approximateSphericalCoordinates:ID,czm_approximateTanh:PD,czm_backFacing:RD,czm_branchFreeTernary:OD,czm_cascadeColor:MD,czm_cascadeDistance:LD,czm_cascadeMatrix:ND,czm_cascadeWeights:FD,czm_clipPolygons:BD,czm_columbusViewMorph:kD,czm_computeAtmosphereColor:VD,czm_computeGroundAtmosphereScattering:UD,czm_computePosition:zD,czm_computeScattering:HD,czm_cosineAndSine:GD,czm_decompressTextureCoordinates:WD,czm_depthClamp:jD,czm_eastNorthUpToEyeCoordinates:qD,czm_ellipsoidContainsPoint:YD,czm_ellipsoidTextureCoordinates:XD,czm_equalsEpsilon:KD,czm_eyeOffset:ZD,czm_eyeToWindowCoordinates:$D,czm_fastApproximateAtan:QD,czm_fog:JD,czm_gammaCorrect:eI,czm_geodeticSurfaceNormal:tI,czm_getDefaultMaterial:nI,czm_getDynamicAtmosphereLightDirection:iI,czm_getLambertDiffuse:oI,czm_getSpecular:rI,czm_getWaterNoise:sI,czm_hue:aI,czm_inverseGamma:cI,czm_isEmpty:lI,czm_isFull:uI,czm_latitudeToWebMercatorFraction:fI,czm_lineDistance:dI,czm_linearToSrgb:hI,czm_luminance:mI,czm_maximumComponent:pI,czm_metersPerPixel:_I,czm_modelToWindowCoordinates:gI,czm_multiplyWithColorBalance:yI,czm_nearFarScalar:xI,czm_octDecode:bI,czm_packDepth:TI,czm_pbrLighting:CI,czm_pbrNeutralTonemapping:AI,czm_phong:EI,czm_planeDistance:SI,czm_pointAlongRay:vI,czm_rayEllipsoidIntersectionInterval:wI,czm_raySphereIntersectionInterval:DI,czm_readDepth:II,czm_readNonPerspective:PI,czm_reverseLogDepth:RI,czm_round:OI,czm_saturation:MI,czm_shadowDepthCompare:LI,czm_shadowVisibility:NI,czm_signNotZero:FI,czm_sphericalHarmonics:BI,czm_srgbToLinear:kI,czm_tangentToEyeSpaceMatrix:VI,czm_textureCube:UI,czm_transformPlane:zI,czm_translateRelativeToEye:HI,czm_translucentPhong:GI,czm_transpose:WI,czm_unpackClippingExtents:jI,czm_unpackDepth:qI,czm_unpackFloat:YI,czm_unpackUint:XI,czm_valueTransform:KI,czm_vertexLogDepth:ZI,czm_windowToEyeCoordinates:$I,czm_writeDepthClamp:QI,czm_writeLogDepth:JI,czm_writeNonPerspective:eP};function GIe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(in)\s+(vec\d|mat\d|float)/g,` +varying $2`),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_EXT_shader_texture_lod +#extension GL_EXT_shader_texture_lod : enable +#endif +${n}`,n=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var tP=GIe;function Mte(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o<n;++o)i+=` +`;return i})}function Lte(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return l(i)||(t=Mte(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function Nte(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);l(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&zs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=Lte(i,zs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),Nte(o,t)}}))}function WIe(e){let t=[],n=[];for(;e.length>0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r<o.dependsOn.length;++r){let s=o.dependsOn[r],a=s.requiredBy.indexOf(o);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let o=0;o<n.length;++o)n[o].requiredBy.length!==0&&i.push(n[o])}function jIe(e){let t=[],n=Lte("main",e,t);Nte(n,t),WIe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function Fte(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i<o;++i)r+=` +#line 0 +${s[i]}`;r=Mte(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(x,b){return a=b,` +`});let c=[];r=r.replace(/#extension.*\n/gm,function(x){return c.push(x),` +`}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let u=e.pickColorQualifier;l(u)&&(r=zs.createPickFragmentShaderSource(r,u));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; + precision highp int; +#else + precision mediump float; + precision mediump int; + #define highp mediump +#endif + +`);let p=e.defines;if(l(p))for(i=0,o=p.length;i<o;++i){let x=p[i];x.length!==0&&(f+=`#define ${x} +`)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear + +`),n.floatingPointTexture&&(f+=`#define OES_texture_float + +`);let g="";e.includeBuiltIns&&(g=jIe(r)),f+=` +#line 0 +`;let m=g+r;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(m)&&!/czm_out_FragColor/g.test(m)&&/out_FragColor/g.test(m)&&(f+=`layout(location = 0) out vec4 out_FragColor; + +`),f+=g,f+=r,n.webgl2?f=`#version 300 es +${f}`:f=tP(f,t),f}function zs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=l(e.defines)?e.defines.slice(0):[],this.sources=l(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}zs.prototype.clone=function(){return new zs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};zs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};zs.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(` +`);return`${t}:${n}:${i}:${o}`};zs.prototype.createCombinedVertexShader=function(e){return Fte(this,!1,e)};zs.prototype.createCombinedFragmentShader=function(e){return Fte(this,!0,e)};zs._czmBuiltinsAndUniforms={};for(let e in _x)_x.hasOwnProperty(e)&&(zs._czmBuiltinsAndUniforms[e]=_x[e]);for(let e in _p)if(_p.hasOwnProperty(e)){let t=_p[e];typeof t.getDeclaration=="function"&&(zs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}zs.createPickVertexShaderSource=function(e){return`${zs.replaceMain(e,"czm_old_main")} +in vec4 pickColor; +out vec4 czm_pickColor; +void main() +{ + czm_old_main(); + czm_pickColor = pickColor; +}`};zs.createPickFragmentShaderSource=function(e,t){let n=zs.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor; +void main() +{ + czm_old_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = czm_pickColor; +}`;return`${n} +${i}`};function qIe(e,t){let n=e.defines,i=n.length;for(let o=0;o<i;++o)if(n[o]===t)return!0;return!1}function Bte(e,t){let n=e.sources,i=n.length;for(let o=0;o<i;++o)if(n[o].indexOf(t)!==-1)return!0;return!1}function kte(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(Bte(e,o))return o}}var YIe=["v_normalEC","v_normal"];zs.findNormalVarying=function(e){return Bte(e,"#ifdef HAS_NORMALS")?qIe(e,"HAS_NORMALS")?"v_normalEC":void 0:kte(e,YIe)};var XIe=["v_positionEC"];zs.findPositionVarying=function(e){return kte(e,XIe)};var Ue=zs;function Pd(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(Pd.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});Pd.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function KIe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}Pd.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new Ue({sources:[t]})),typeof n=="string"&&(n=new Ue({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?KIe(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let u=this._context,f=t.createCombinedVertexShader(u),d=n.createCombinedFragmentShader(u),p=new Qt({gl:u._gl,logShaderCompilation:u.logShaderCompilation,debugShaders:u.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};Pd.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){G6(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};Pd.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};Pd.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new Ue({sources:[r]})),typeof s=="string"&&(s=new Ue({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new Qt({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function G6(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];G6(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}Pd.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];G6(this,n),--this._numberOfShaders}this._shadersToRelease={}};Pd.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};Pd.prototype.isDestroyed=function(){return!1};Pd.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var nP=Pd;function Rd(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=Je.RGBA,pixelDatatype:o=Ke.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new $t}=e,{width:c,height:u}=e;l(n)&&(l(c)||(c=n.videoWidth??n.naturalWidth??n.width),l(u)||(u=n.videoHeight??n.naturalHeight??n.height));let f=e.preMultiplyAlpha||i===Je.RGB||i===Je.LUMINANCE,d=Je.toInternalFormat(i,o,t),p=Je.isCompressedFormat(d),g=t._gl,m=p?Je.compressedTextureSizeInBytes(i,c,u):Je.textureSizeInBytes(i,o,c,u);this._id=Hn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=g.TEXTURE_2D,this._texture=g.createTexture(),this._internalFormat=d,this._pixelFormat=i,this._pixelDatatype=o,this._width=c,this._height=u,this._dimensions=new z(c,u),this._hasMipmap=!1,this._sizeInBytes=m,this._preMultiplyAlpha=f,this._flipY=r,this._initialized=!1,this._sampler=void 0,this._sampler=a,Vte(this,a),g.activeTexture(g.TEXTURE0),g.bindTexture(this._textureTarget,this._texture),l(n)?(s?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(n.arrayBufferView)?Je.isCompressedFormat(d)?ZIe(this,n):$Ie(this,n):l(n.framebuffer)?QIe(this,n):JIe(this,n),this._initialized=!0):ePe(this),g.bindTexture(this._textureTarget,null)}function ZIe(e,t){let i=e._context._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a}=e;if(i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.compressedTexImage2D(o,0,r,s,a,0,t.arrayBufferView),l(t.mipLevels)){let c=s,u=a;for(let f=0;f<t.mipLevels.length;++f)c=eU(c),u=eU(u),i.compressedTexImage2D(o,f+1,r,c,u,0,t.mipLevels[f])}}function $Ie(e,t){let n=e._context,i=n._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a,pixelFormat:c,pixelDatatype:u,flipY:f}=e,d=Je.alignmentInBytes(c,u,s);i.pixelStorei(i.UNPACK_ALIGNMENT,d),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1);let p=t.arrayBufferView;if(f&&(p=Je.flipY(p,c,u,s,a)),i.texImage2D(o,0,r,s,a,0,c,Ke.toWebGLConstant(u,n),p),l(t.mipLevels)){let g=s,m=a;for(let x=0;x<t.mipLevels.length;++x)g=eU(g),m=eU(m),i.texImage2D(o,x+1,r,g,m,0,c,Ke.toWebGLConstant(u,n),t.mipLevels[x])}}function QIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._bind(),i.copyTexImage2D(e._textureTarget,0,e._internalFormat,t.xOffset,t.yOffset,e.width,e.height,0),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._unBind()}function JIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.preMultiplyAlpha),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,e.flipY),i.texImage2D(e._textureTarget,0,e._internalFormat,e.pixelFormat,Ke.toWebGLConstant(e.pixelDatatype,n),t)}function eU(e){let t=Math.floor(e/2)|0;return Math.max(t,1)}function ePe(e){let t=e._context;t._gl.texImage2D(e._textureTarget,0,e._internalFormat,e._width,e._height,0,e._pixelFormat,Ke.toWebGLConstant(e._pixelDatatype,t),null)}Rd.create=function(e){return new Rd(e)};Rd.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,{pixelFormat:i=Je.RGB,framebufferXOffset:o=0,framebufferYOffset:r=0,width:s=n.drawingBufferWidth,height:a=n.drawingBufferHeight,framebuffer:c}=e;return new Rd({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:l(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(Rd.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){Vte(this,e),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});function Vte(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelFormat,a=e._pixelDatatype;(a===Ke.FLOAT&&!r.textureFloatLinear||a===Ke.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?Zt.NEAREST_MIPMAP_NEAREST:Zt.NEAREST,i=di.NEAREST),r.webgl2&&Je.isDepthFormat(s)&&(n=Zt.NEAREST,i=di.NEAREST);let c=r._gl,u=e._textureTarget;c.activeTexture(c.TEXTURE0),c.bindTexture(u,e._texture),c.texParameteri(u,c.TEXTURE_MIN_FILTER,n),c.texParameteri(u,c.TEXTURE_MAG_FILTER,i),c.texParameteri(u,c.TEXTURE_WRAP_S,t.wrapS),c.texParameteri(u,c.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&c.texParameteri(u,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),c.bindTexture(u,null)}Rd.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,r=this._context,s=r._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture);let{width:c,height:u}=i,f=i.arrayBufferView;l(i.videoWidth)&&l(i.videoHeight)?(c=i.videoWidth,u=i.videoHeight):l(i.naturalWidth)&&l(i.naturalHeight)&&(c=i.naturalWidth,u=i.naturalHeight);let d=this._width,p=this._height,g=this._internalFormat,m=this._pixelFormat,x=this._pixelDatatype,b=this._preMultiplyAlpha,T=this._flipY,C=4;l(f)&&(C=Je.alignmentInBytes(m,x,c)),s.pixelStorei(s.UNPACK_ALIGNMENT,C),o?s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE):s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.BROWSER_DEFAULT_WEBGL);let A=!1;if(!this._initialized){let E;t===0&&n===0&&c===d&&u===p?(l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?E=Je.flipY(f,m,x,d,p):E=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),E=i),A=!0):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),E=Je.createTypedArray(m,x,d,p)),s.texImage2D(a,0,g,d,p,0,m,Ke.toWebGLConstant(x,r),E),this._initialized=!0}if(!A){let E;l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?E=Je.flipY(f,m,x,c,u):E=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),E=i),s.texSubImage2D(a,0,t,n,c,u,m,Ke.toWebGLConstant(x,r),E)}s.bindTexture(a,null)};Rd.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._width),r=y(r,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};Rd.prototype.generateMipmap=function(e){e=y(e,rm.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Rd.prototype.isDestroyed=function(){return!1};Rd.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Pt=Rd;function gx(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(gx.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});gx.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};gx.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};gx.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};gx.prototype.isDestroyed=function(){return!1};gx.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var iP=gx;function bf(e){this.planes=y(e,[])}var oP=[new h,new h,new h];h.clone(h.UNIT_X,oP[0]);h.clone(h.UNIT_Y,oP[1]);h.clone(h.UNIT_Z,oP[2]);var Bg=new h,tPe=new h,Ute=new cn(new h(1,0,0),0);bf.fromBoundingSphere=function(e,t){l(t)||(t=new bf);let n=oP.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a<n;++a){let c=oP[a],u=i[s],f=i[s+1];l(u)||(u=i[s]=new oe),l(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,Bg),h.add(o,Bg,Bg),u.x=c.x,u.y=c.y,u.z=c.z,u.w=-h.dot(c,Bg),h.multiplyByScalar(c,r,Bg),h.add(o,Bg,Bg),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,tPe),Bg),s+=2}return t};bf.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(cn.fromCartesian4(t[i],Ute));if(r===jt.OUTSIDE)return jt.OUTSIDE;r===jt.INTERSECTING&&(n=!0)}return n?jt.INTERSECTING:jt.INSIDE};bf.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===bf.MASK_OUTSIDE||t===bf.MASK_INSIDE)return t;let n=bf.MASK_INSIDE,i=this.planes;for(let o=0,r=i.length;o<r;++o){let s=o<31?1<<o:0;if(o<31&&!(t&s))continue;let a=e.intersectPlane(cn.fromCartesian4(i[o],Ute));if(a===jt.OUTSIDE)return bf.MASK_OUTSIDE;a===jt.INTERSECTING&&(n|=s)}return n};bf.MASK_OUTSIDE=4294967295;bf.MASK_INSIDE=0;bf.MASK_INDETERMINATE=2147483647;var ps=bf;function sm(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ps,this._orthographicMatrix=new F}function zte(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(sm.prototype,{projectionMatrix:{get:function(){return zte(this),this._orthographicMatrix}}});var nPe=new h,iPe=new h,oPe=new h,W6=new h;sm.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,nPe);h.normalize(f,f);let d=iPe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=oPe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return l(g)||(g=i[0]=new oe),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-h.dot(f,p),h.multiplyByScalar(f,s,p),h.add(d,p,p),g=i[1],l(g)||(g=i[1]=new oe),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-h.dot(h.negate(f,W6),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],l(g)||(g=i[2]=new oe),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-h.dot(n,p),h.multiplyByScalar(n,o,p),h.add(d,p,p),g=i[3],l(g)||(g=i[3]=new oe),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-h.dot(h.negate(n,W6),p),g=i[4],l(g)||(g=i[4]=new oe),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-h.dot(t,d),h.multiplyByScalar(t,u,p),h.add(e,p,p),g=i[5],l(g)||(g=i[5]=new oe),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-h.dot(h.negate(t,W6),p),this._cullingVolume};sm.prototype.getPixelDimensions=function(e,t,n,i,o){zte(this);let r=this.right-this.left,s=this.top-this.bottom,a=i*r/e,c=i*s/t;return o.x=a,o.y=c,o};sm.prototype.clone=function(e){return l(e)||(e=new sm),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};sm.prototype.equals=function(e){return l(e)&&e instanceof sm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};sm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof sm&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var Lr=sm;function vl(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Lr,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}vl.packedLength=4;vl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};vl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new vl),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function kg(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(vl.prototype,{projectionMatrix:{get:function(){return kg(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return kg(this),this._offCenterFrustum}}});vl.prototype.computeCullingVolume=function(e,t,n){return kg(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};vl.prototype.getPixelDimensions=function(e,t,n,i,o){return kg(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};vl.prototype.clone=function(e){return l(e)||(e=new vl),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};vl.prototype.equals=function(e){return!l(e)||!(e instanceof vl)?!1:(kg(this),kg(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};vl.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof vl)?!1:(kg(this),kg(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var rn=vl;var j6={};function rPe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var sPe=32.184,aPe=2451545;function sne(e,t){t=Z.addSeconds(e,sPe,t);let n=Z.totalDays(t)-aPe;return t=Z.addSeconds(t,rPe(n),t),t}var tU=new Z(2451545,0,jn.TAI),cPe=1e3,Tf=P.RADIANS_PER_DEGREE,uu=P.RADIANS_PER_ARCSECOND,Ia=14959787e4,Hte=new $;function ane(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,u=o,f=uPe(r-i,t),d=lPe(t,0);pPe(c,n,u,Hte);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return l(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),$.multiplyByVector(Hte,s,s)}function lPe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function uPe(e,t){let n=hPe(e,t);return mPe(n,t)}var fPe=50,dPe=P.EPSILON8;function hPe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<fPe&&Math.abs(o-i)>dPe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*P.TWO_PI,o}function mPe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function pPe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new $(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var _Pe=1.0000010178*Ia,gPe=100.46645683*Tf,yPe=129597742283429e-5*uu,Gte=16002,Wte=21863,jte=32004,qte=10931,Yte=14529,Xte=16368,Kte=15318,Zte=32794,xPe=64*1e-7*Ia,bPe=-152*1e-7*Ia,TPe=62*1e-7*Ia,CPe=-8*1e-7*Ia,APe=32*1e-7*Ia,EPe=-41*1e-7*Ia,SPe=19*1e-7*Ia,vPe=-11*1e-7*Ia,wPe=-150*1e-7*Ia,DPe=-46*1e-7*Ia,IPe=68*1e-7*Ia,PPe=54*1e-7*Ia,RPe=14*1e-7*Ia,OPe=24*1e-7*Ia,MPe=-28*1e-7*Ia,LPe=22*1e-7*Ia,$te=10,Qte=16002,Jte=21863,ene=10931,tne=1473,nne=32004,ine=4387,one=73,NPe=-325*1e-7,FPe=-322*1e-7,BPe=-79*1e-7,kPe=232*1e-7,VPe=-52*1e-7,UPe=97*1e-7,zPe=55*1e-7,HPe=-41*1e-7,GPe=-105*1e-7,WPe=-137*1e-7,jPe=258*1e-7,qPe=35*1e-7,YPe=-116*1e-7,XPe=-88*1e-7,KPe=-112*1e-7,ZPe=-80*1e-7,ZC=new Z(0,0,jn.TAI);function $Pe(e,t){sne(e,ZC);let i=(ZC.dayNumber-tU.dayNumber+(ZC.secondsOfDay-tU.secondsOfDay)/Yn.SECONDS_PER_DAY)/(Yn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=_Pe+xPe*Math.cos(Gte*o)+wPe*Math.sin(Gte*o)+bPe*Math.cos(Wte*o)+DPe*Math.sin(Wte*o)+TPe*Math.cos(jte*o)+IPe*Math.sin(jte*o)+CPe*Math.cos(qte*o)+PPe*Math.sin(qte*o)+APe*Math.cos(Yte*o)+RPe*Math.sin(Yte*o)+EPe*Math.cos(Xte*o)+OPe*Math.sin(Xte*o)+SPe*Math.cos(Kte*o)+MPe*Math.sin(Kte*o)+vPe*Math.cos(Zte*o)+LPe*Math.sin(Zte*o),s=gPe+yPe*i+NPe*Math.cos($te*o)+GPe*Math.sin($te*o)+FPe*Math.cos(Qte*o)+WPe*Math.sin(Qte*o)+BPe*Math.cos(Jte*o)+jPe*Math.sin(Jte*o)+kPe*Math.cos(ene*o)+qPe*Math.sin(ene*o)+VPe*Math.cos(tne*o)+YPe*Math.sin(tne*o)+UPe*Math.cos(nne*o)+XPe*Math.sin(nne*o)+zPe*Math.cos(ine*o)+KPe*Math.sin(ine*o)+HPe*Math.cos(one*o)+ZPe*Math.sin(one*o),a=.0167086342-.0004203654*i,c=102.93734808*Tf+11612.3529*uu*i,u=469.97289*uu*i,f=174.87317577*Tf-8679.27034*uu*i;return ane(r,a,u,c,f,s,t)}function cne(e,t){sne(e,ZC);let i=(ZC.dayNumber-tU.dayNumber+(ZC.secondsOfDay-tU.secondsOfDay)/Yn.SECONDS_PER_DAY)/Yn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*Tf,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*Tf,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*Tf,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*Tf,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*Tf+uu*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),C=93.27209062*Tf+uu*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),A=134.96340251*Tf+uu*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),E=357.52910918*Tf+uu*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*Tf-uu*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,R=6*T,M=2*A,N=3*A,_=4*A,S=2*C;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-A)-235.6*Math.cos(A)+218.1*Math.cos(D-E)+181*Math.cos(D+A),c+=.014216*Math.cos(D-A)+.008551*Math.cos(D-M)-.001383*Math.cos(A)+.001356*Math.cos(D+A)-.001147*Math.cos(O-N)-914e-6*Math.cos(O-M)+869e-6*Math.cos(D-E-A)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-E-M)-279e-6*Math.cos(T-A)-236e-6*Math.cos(M)+231e-6*Math.cos(O)+229e-6*Math.cos(R-_)-201e-6*Math.cos(M-S),f+=486.26*Math.cos(D-S)-40.13*Math.cos(D)+37.51*Math.cos(S)+25.73*Math.cos(M-S)+19.97*Math.cos(D-E-S),p+=-55609*Math.sin(D-A)-34711*Math.sin(D-M)-9792*Math.sin(A)+9385*Math.sin(O-N)+7505*Math.sin(O-M)+5318*Math.sin(D+A)+3484*Math.sin(O-_)-3417*Math.sin(D-E-A)-2530*Math.sin(R-_)-2376*Math.sin(D)-2075*Math.sin(D-N)-1883*Math.sin(M)-1736*Math.sin(R-5*A)+1626*Math.sin(E)-1370*Math.sin(R-N),m+=-5392*Math.sin(D-S)-540*Math.sin(E)-441*Math.sin(D)+423*Math.sin(S)-288*Math.sin(M-S),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-A)-662.5*Math.sin(E)+396.3*Math.sin(A)-218*Math.sin(D-E);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-S+v)*i+.614*Math.cos(D-S-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-S+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(w)*r;let L=2.116*Math.sin(v)*i-.111*Math.sin(D-S-v)*i-.0015*Math.sin(v)*o;p+=L,b+=L,m+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-S+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(S-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-S+w)*o-.015*Math.sin(D-S+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(w)*r,a*=cPe;let B=u+f*uu,U=d+p*uu,V=x+b*uu,G=g+m*uu;return ane(a,c,B,U,G,V,t)}var rne=.012300034,QPe=rne/(rne+1)*-1;function JPe(e,t){return t=cne(e,t),h.multiplyByScalar(t,QPe,t)}var lne=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),rP=new h;j6.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Z.now()),l(t)||(t=new h),rP=$Pe(e,rP),t=h.negate(rP,t),JPe(e,rP),h.subtract(t,rP,t),$.multiplyByVector(lne,t,t),t};j6.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=Z.now()),t=cne(e,t),$.multiplyByVector(lne,t,t),t};var Vg=j6;var nU={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};nU.getMorphTime=function(e){return e===nU.SCENE3D?1:e===nU.MORPHING?void 0:0};var ne=Object.freeze(nU);function e1e(e){e=y(e,y.EMPTY_OBJECT),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,2)}var wp=e1e;function $C(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new je,this._viewportCartesian4=new oe,this._viewportDirty=!1,this._viewportOrthographicMatrix=F.clone(F.IDENTITY),this._viewportTransformation=F.clone(F.IDENTITY),this._model=F.clone(F.IDENTITY),this._view=F.clone(F.IDENTITY),this._inverseView=F.clone(F.IDENTITY),this._projection=F.clone(F.IDENTITY),this._infiniteProjection=F.clone(F.IDENTITY),this._entireFrustum=new z,this._currentFrustum=new z,this._frustumPlanes=new oe,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(F.IDENTITY),this._view3DDirty=!0,this._view3D=new F,this._inverseView3DDirty=!0,this._inverseView3D=new F,this._inverseModelDirty=!0,this._inverseModel=new F,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new F,this._modelViewDirty=!0,this._modelView=new F,this._modelView3DDirty=!0,this._modelView3D=new F,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new F,this._inverseModelViewDirty=!0,this._inverseModelView=new F,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new F,this._viewProjectionDirty=!0,this._viewProjection=new F,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new F,this._modelViewProjectionDirty=!0,this._modelViewProjection=new F,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new F,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new F,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new F,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Gn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new z,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new z,this._modelToEnu=new F,this._enuToModel=new F,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new H,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogVisualDensityScalar=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties($C.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!je.equals(e,this._viewport)){je.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return fne(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return fne(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){F.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,F.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,F.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return Y6(this),this._view3D}},viewRotation:{get:function(){return Y6(this),this._viewRotation}},viewRotation3D:{get:function(){return Y6(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return mne(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return mne(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return f1e(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return d1e(this),this._modelView}},modelView3D:{get:function(){return h1e(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return x1e(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return m1e(this),this._inverseModelView}},inverseModelView3D:{get:function(){return p1e(this),this._inverseModelView3D}},viewProjection:{get:function(){return _1e(this),this._viewProjection}},inverseViewProjection:{get:function(){return g1e(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return y1e(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return b1e(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return T1e(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return C1e(this),this._modelViewInfiniteProjection}},normal:{get:function(){return A1e(this),this._normal}},normal3D:{get:function(){return E1e(this),this._normal3D}},inverseNormal:{get:function(){return S1e(this),this._inverseNormal}},inverseNormal3D:{get:function(){return v1e(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return hne(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return hne(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogVisualDensityScalar:{get:function(){return this._fogVisualDensityScalar}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,ee.default)}}});function t1e(e,t){F.clone(t,e._view),F.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function n1e(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function i1e(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function o1e(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var une=new h,r1e=new F;function s1e(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,une)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,une)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=Mt.eastNorthUpToFixedFrame(i,n,r1e);e._enuToModel=F.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=F.inverseTransformation(e._enuToModel,e._modelToEnu),P.equalsEpsilon(n._radii.x,n._radii.y,P.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var q6=new $,a1e=new fe;function c1e(e,t){Mt.computeIcrfToCentralBodyFixedMatrix(t.time,q6);let n=Vg.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(q6,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=Vg.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(q6,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,a1e);i.project(r,e._sunPositionColumbusView)}$C.prototype.updateCamera=function(e){t1e(this,e.viewMatrix),n1e(this,e.inverseViewMatrix),s1e(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof rn};$C.prototype.updateFrustum=function(e){i1e(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&o1e(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};$C.prototype.updatePass=function(e){this._pass=e};var l1e=[],u1e=new wp;$C.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),c1e(this,e);let n=y(e.light,u1e);n instanceof wp?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,l1e),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,this._fogDensity=e.fog.density,this._fogVisualDensityScalar=e.fog.visualDensityScalar,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Mt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let u=t.frustum.fov,f=this._viewport,d;l(u)?f.height>f.width?d=Math.tan(.5*u)*2/f.height:d=Math.tan(.5*u)*2/f.width:d=1/Math.max(f.width,f.height),this._geometricToleranceOverMeter=d*e.maximumScreenSpaceError,H.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function fne(e){if(e._viewportDirty){let t=e._viewport;F.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),F.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function f1e(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function d1e(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function h1e(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function m1e(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function p1e(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function _1e(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function g1e(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function y1e(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function x1e(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function b1e(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function T1e(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function C1e(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function A1e(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function E1e(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function S1e(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;F.getMatrix3(e.modelView,t),$.transpose(t,t)}}function v1e(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;F.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var dne=new h;function hne(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,dne),Gn.fromCartesian(dne,e._encodedCameraPositionMC))}var w1e=new h,D1e=new h,I1e=new h,P1e=new h,R1e=new fe,O1e=new h,M1e=new F;function L1e(e,t,n,i,o,r,s,a){let c=w1e;c.x=e.y,c.y=e.z,c.z=e.x;let u=D1e;u.x=n.y,u.y=n.z,u.z=n.x;let f=I1e;f.x=i.y,f.y=i.z,f.z=i.x;let d=P1e;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,R1e);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,O1e),x=Mt.eastNorthUpToFixedFrame(m,g,M1e);return F.multiplyByPointAsVector(x,u,u),F.multiplyByPointAsVector(x,f,f),F.multiplyByPointAsVector(x,d,d),l(a)||(a=new F),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(u,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function Y6(e){e._view3DDirty&&(e._mode===ne.SCENE3D?F.clone(e._view,e._view3D):L1e(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),F.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function mne(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var sP=$C;function fu(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=l(n)?n(e,o):N1e(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=Hn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new nP(this),this._textureCache=new iP;let u=s;this._stencilBits=u.getParameter(u.STENCIL_BITS),kt._maximumCombinedTextureImageUnits=u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),kt._maximumCubeMapSize=u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE),kt._maximumFragmentUniformVectors=u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS),kt._maximumTextureImageUnits=u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS),kt._maximumRenderbufferSize=u.getParameter(u.MAX_RENDERBUFFER_SIZE),kt._maximumTextureSize=u.getParameter(u.MAX_TEXTURE_SIZE),kt._maximumVaryingVectors=u.getParameter(u.MAX_VARYING_VECTORS),kt._maximumVertexAttributes=u.getParameter(u.MAX_VERTEX_ATTRIBS),kt._maximumVertexTextureImageUnits=u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS),kt._maximumVertexUniformVectors=u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS),kt._maximumSamples=this._webgl2?u.getParameter(u.MAX_SAMPLES):0;let f=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);kt._minimumAliasedLineWidth=f[0],kt._maximumAliasedLineWidth=f[1];let d=u.getParameter(u.ALIASED_POINT_SIZE_RANGE);kt._minimumAliasedPointSize=d[0],kt._maximumAliasedPointSize=d[1];let p=u.getParameter(u.MAX_VIEWPORT_DIMS);kt._maximumViewportWidth=p[0],kt._maximumViewportHeight=p[1];let g=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT);kt._highpFloatSupported=g.precision!==0;let m=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT);kt._highpIntSupported=m.rangeMax!==0,this._antialias=u.getContextAttributes().antialias,this._standardDerivatives=!!Tr(u,["OES_standard_derivatives"]),this._blendMinmax=!!Tr(u,["EXT_blend_minmax"]),this._elementIndexUint=!!Tr(u,["OES_element_index_uint"]),this._depthTexture=!!Tr(u,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!Tr(u,["EXT_frag_depth"]),this._debugShaders=Tr(u,["WEBGL_debug_shaders"]),this._textureFloat=!!Tr(u,["OES_texture_float"]),this._textureHalfFloat=!!Tr(u,["OES_texture_half_float"]),this._textureFloatLinear=!!Tr(u,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!Tr(u,["OES_texture_half_float_linear"]),this._supportsTextureLod=!!Tr(u,["EXT_shader_texture_lod"]),this._colorBufferFloat=!!Tr(u,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!Tr(u,["EXT_float_blend"]),this._colorBufferHalfFloat=!!Tr(u,["EXT_color_buffer_half_float"]),this._s3tc=!!Tr(u,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!Tr(u,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!Tr(u,["WEBGL_compressed_texture_astc"]),this._etc=!!Tr(u,["WEBG_compressed_texture_etc"]),this._etc1=!!Tr(u,["WEBGL_compressed_texture_etc1"]),this._bc7=!!Tr(u,["EXT_texture_compression_bptc"]),Sl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?Tr(u,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,kt._maximumTextureFilterAnisotropy=l(x)?u.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,C,A,E,v,D,O,R,M;if(c){let w=this;b=function(){return w._gl.createVertexArray()},T=function(I){w._gl.bindVertexArray(I)},C=function(I){w._gl.deleteVertexArray(I)},A=function(I,L,B,U,V){u.drawElementsInstanced(I,L,B,U,V)},E=function(I,L,B,U){u.drawArraysInstanced(I,L,B,U)},v=function(I,L){u.vertexAttribDivisor(I,L)},D=function(I){u.drawBuffers(I)}}else O=Tr(u,["OES_vertex_array_object"]),l(O)&&(b=function(){return O.createVertexArrayOES()},T=function(w){O.bindVertexArrayOES(w)},C=function(w){O.deleteVertexArrayOES(w)}),R=Tr(u,["ANGLE_instanced_arrays"]),l(R)&&(A=function(w,I,L,B,U){R.drawElementsInstancedANGLE(w,I,L,B,U)},E=function(w,I,L,B){R.drawArraysInstancedANGLE(w,I,L,B)},v=function(w,I){R.vertexAttribDivisorANGLE(w,I)}),M=Tr(u,["WEBGL_draw_buffers"]),l(M)&&(D=function(w){M.drawBuffersWEBGL(w)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=C,this.glDrawElementsInstanced=A,this.glDrawArraysInstanced=E,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!R,this._drawBuffers=!!M,kt._maximumDrawBuffers=this.drawBuffers?u.getParameter(te.MAX_DRAW_BUFFERS):1,kt._maximumColorAttachments=this.drawBuffers?u.getParameter(te.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new H(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let N=new sP,_=new ic(this),S=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=S,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=N,this._currentRenderState=S,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<kt._maximumVertexAttributes;w++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},Ve.apply(u,S,_)}function N1e(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ce("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new ce("The browser supports WebGL, but initialization failed.");return r}function F1e(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function B1e(e,t,n,i){let o=`${F1e(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function k1e(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ce(B1e(e,t,n,i))}function V1e(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function U1e(e,t){if(!l(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,V1e(e,o,t))}return i}function Tr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var z1e={};Object.defineProperties(fu.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},supportsTextureLod:{get:function(){return this._webgl2||this._supportsTextureLod}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=U1e(this._originalGLContext,e?k1e:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Pt({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Pt({context:this,pixelFormat:Je.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Pt({context:this,pixelFormat:Je.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new br({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return z1e}}});function pne(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ve.partialApply(e._gl,o,t,r,n,i)}var X6;typeof WebGLRenderingContext<"u"&&(X6=[te.BACK]);function K6(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=X6;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var H1e=new ei;fu.prototype.clear=function(e,t){e=y(e,H1e),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(H.equals(this._clearColor,o)||(H.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);pne(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);K6(this,c),n.clear(i)};function G1e(e,t,n,i,o){K6(e,t),pne(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function W1e(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,F.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,l(a)?a=Math.min(a,u.numberOfIndices):a=u.numberOfIndices,c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(l(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}fu.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),G1e(this,o,t,n,r),W1e(this,e,n,i)};fu.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=X6;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};fu.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),o=y(e.width,t.drawingBufferWidth),r=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=Ke.UNSIGNED_BYTE;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=Je.createTypedArray(Je.RGBA,a,o,r);return K6(this,s),t.readPixels(n,i,o,r,Je.RGBA,Ke.toWebGLConstant(a,this),c),c};var _ne={position:0,textureCoordinates:1};fu.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new at({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Me.TRIANGLES});e=ti.fromGeometry({context:this,geometry:t,attributeLocations:_ne,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};fu.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Ze({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Me.TRIANGLES,renderState:t.renderState,shaderProgram:Qt.fromCache({context:this,vertexShaderSource:ax,fragmentShaderSource:e,attributeLocations:_ne}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};fu.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function Z6(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(Z6.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});Z6.prototype.destroy=function(){delete this._pickObjects[this.key]};fu.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ce("Out of unique Pick IDs.");return this._pickObjects[t]=e,new Z6(this._pickObjects,t,H.fromRgba(t))};fu.prototype.isDestroyed=function(){return!1};fu.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};fu._deprecationWarning=ds;var aP=fu;function QC(e){e=y(e,y.EMPTY_OBJECT);let{context:t,width:n,height:i,colorRenderbuffers:o,colorTextures:r,depthStencilRenderbuffer:s,depthStencilTexture:a,destroyAttachments:c}=e;if(this._width=n,this._height=i,l(o)!==l(r))throw new he("Both color renderbuffer and texture attachments must be provided.");if(l(s)!==l(a))throw new he("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Mr({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:c}),this._colorFramebuffer=new Mr({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:c})}QC.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};QC.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};QC.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};QC.prototype.isDestroyed=function(){return!1};QC.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var cP=QC;var wl={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===wl.RGBA4||e===wl.RGBA8||e===wl.RGBA16F||e===wl.RGBA32F||e===wl.RGB5_A1||e===wl.RGB565||e===wl.DEPTH_COMPONENT16||e===wl.STENCIL_INDEX8||e===wl.DEPTH_STENCIL||e===wl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?wl.RGBA32F:e===te.HALF_FLOAT_OES?wl.RGBA16F:wl.RGBA8}},kc=Object.freeze(wl);function lP(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=kt.maximumRenderbufferSize,o=y(e.format,kc.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(lP.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});lP.prototype._getRenderbuffer=function(){return this._renderbuffer};lP.prototype.isDestroyed=function(){return!1};lP.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var du=lP;function Es(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(Es.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});Es.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};Es.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,Ke.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,Je.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Pt({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:$t.NEAREST}),this._numSamples>1){let a=kc.getColorFormat(o);this._colorRenderbuffers[s]=new du({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Pt({context:e,width:t,height:n,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Pt({context:e,width:t,height:n,pixelFormat:Je.DEPTH_COMPONENT,pixelDatatype:Ke.UNSIGNED_INT,sampler:$t.NEAREST}):this._depthRenderbuffer=new du({context:e,width:t,height:n,format:kc.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new cP({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Mr({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};Es.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};Es.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};Es.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};Es.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};Es.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};Es.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};Es.prototype.getDepthTexture=function(){return this._depthTexture};Es.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};Es.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};Es.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};Es.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};Es.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};Es.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};Es.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};Es.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};Es.prototype.destroy=function(){if(this._color){let e=this._colorTextures,t=this._colorRenderbuffers;for(let n=0;n<e.length;++n){let i=e[n];this._createColorAttachments&&l(i)&&!i.isDestroyed()&&i.destroy(),l(i)&&i.isDestroyed()&&(e[n]=void 0);let o=t[n];this._createColorAttachments&&l(o)&&!o.isDestroyed()&&o.destroy(),l(o)&&o.isDestroyed()&&(t[n]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),l(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),l(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),l(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),l(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var hi=Es;var yx={VERTEX:0,FRAGMENT:1,BOTH:2};yx.includesVertexShader=function(e){return e===yx.VERTEX||e===yx.BOTH};yx.includesFragmentShader=function(e){return e===yx.FRAGMENT||e===yx.BOTH};var pe=Object.freeze(yx);function $6(e){this.name=e,this.fields=[]}$6.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};$6.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var uP=$6;function Q6(e){this.signature=e,this.body=[]}Q6.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};Q6.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var fP=Q6;function Vc(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(Vc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Vc.prototype.addDefine=function(e,t,n){n=y(n,pe.BOTH);let i=e;l(t)&&(i+=` ${t.toString()}`),pe.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Vc.prototype.addStruct=function(e,t,n){this._structs[e]=new uP(t),pe.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Vc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Vc.prototype.addFunction=function(e,t,n){this._functions[e]=new fP(t),pe.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Vc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Vc.prototype.addUniform=function(e,t,n){n=y(n,pe.BOTH);let i=`uniform ${e} ${t};`;pe.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Vc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Vc.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=q1e(e),i};Vc.prototype.addVarying=function(e,t,n){n=l(n)?`${n} `:"";let i=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`${n}out ${i}`),this._fragmentShaderParts.varyingLines.push(`${n}in ${i}`)};Vc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Vc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Vc.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=j1e(this),i=Y1e(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` +`),r=new Ue({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` +`),a=new Ue({defines:this._fragmentShaderParts.defineLines,sources:[s]});return Qt.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Vc.prototype.clone=function(){return Ge(this,!0)};function j1e(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function q1e(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function Y1e(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var xx=Vc;function Hs(e,t,n,i){let o=Hs._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,u=o.length;for(let d=0;d<u;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=Hs._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:Hs._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}Hs._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:y(o.index,i),enabled:y(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:y(o.componentDatatype,X.FLOAT),normalize:y(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:y(o.usage,Fe.STATIC_DRAW)};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};Hs._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};Hs._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};Hs.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];Hs._resize(o,this._size),Hs._appendWriters(this.writers,o)}J6(this)};Hs._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var X1e=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];Hs._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=X1e[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};Hs.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=K1e(this,i)||t;if(t||!l(this.va)){J6(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let u=0;u<c;++u){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=u*(i.vertexSizeInBytes*a);Hs._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ti({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(u!==c-1?a:this._size%a)})}}};function K1e(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=_t.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}Hs._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};Hs.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)Z1e(n[i],e,t)};function Z1e(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}Hs.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function J6(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}Hs.prototype.isDestroyed=function(){return!1};Hs.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return J6(this),ue(this)};var Dp=Hs;function $1e(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[we.createIfNeeded(t.positiveX).fetchImage(i),we.createIfNeeded(t.negativeX).fetchImage(i),we.createIfNeeded(t.positiveY).fetchImage(i),we.createIfNeeded(t.negativeY).fetchImage(i),we.createIfNeeded(t.positiveZ).fetchImage(i),we.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new br({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var dP=$1e;function Ug(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new me,this.setValue(e)}Object.defineProperties(Ug.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});Ug.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};Ug.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=l(e),i=n&&typeof e.clone=="function",o=n&&typeof e.equals=="function";(!o||!e.equals(t))&&(this._hasClone=i,this._hasEquals=o,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};Ug.prototype.equals=function(e){return this===e||e instanceof Ug&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};Ug.prototype.valueOf=function(){return this._value};Ug.prototype.toString=function(){return String(this._value)};var Kn=Ug;function Q1e(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];l(a)&&(a(),this[n]=void 0),r!==void 0&&(!l(r)||!l(r.getValue))&&l(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),l(r)&&l(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function J1e(e){return new Kn(e)}function eRe(e,t,n){return Q1e(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,J1e))}var le=eRe;function hP(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(hP.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),image:le("image"),scale:le("scale"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),color:le("color"),rotation:le("rotation"),alignedAxis:le("alignedAxis"),sizeInMeters:le("sizeInMeters"),width:le("width"),height:le("height"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),imageSubRegion:le("imageSubRegion"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});hP.prototype.clone=function(e){return l(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e.splitDirection=this._splitDirection,e):new hP(this)};hP.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance),this.splitDirection=y(this.splitDirection,e.splitDirection)};var oc=hP;function bx(){this._array=[],this._hash={}}Object.defineProperties(bx.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});bx.prototype.contains=function(e){return l(this._hash[e])};bx.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};bx.prototype.get=function(e){return this._hash[e]};bx.prototype.remove=function(e){let t=this._hash[e],n=l(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};bx.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var Et=bx;function hu(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(hu.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});hu.packedLength=2;hu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};hu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new hu),n.near=e[t++],n.far=e[t],n};hu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};hu.clone=function(e,t){if(l(e))return l(t)||(t=new hu),t.near=e.near,t.far=e.far,t};hu.prototype.clone=function(e){return hu.clone(this,e)};hu.prototype.equals=function(e){return hu.equals(this,e)};var Lt=hu;function Cf(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Cf.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Cf(e.near,e.nearValue,e.far,e.farValue)};Cf.packedLength=4;Cf.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Cf.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Cf),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Cf.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Cf.prototype.clone=function(e){return Cf.clone(this,e)};Cf.prototype.equals=function(e){return Cf.equals(this,e)};var Bt=Cf;var Tx={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6},Ye=Object.freeze(Tx);function Af(e){return e===Tx.CLAMP_TO_GROUND||e===Tx.CLAMP_TO_3D_TILE||e===Tx.CLAMP_TO_TERRAIN}function JC(e){return e===Tx.RELATIVE_TO_GROUND||e===Tx.RELATIVE_TO_3D_TILE||e===Tx.RELATIVE_TO_TERRAIN}var tRe={CENTER:0,LEFT:1,RIGHT:-1},_i=Object.freeze(tRe);var nRe={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},Rn=Object.freeze(nRe);var iRe={DONE:0,PENDING:1,FAILED:2},ct=Object.freeze(iRe);function Od(){he.throwInstantiationError()}Object.defineProperties(Od.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});Od.prototype.getValue=he.throwInstantiationError;Od.prototype.equals=he.throwInstantiationError;Od.equals=function(e,t){return e===t||l(e)&&e.equals(t)};Od.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!Od.equals(e[i],t[i]))return!1;return!0};Od.isConstant=function(e){return!l(e)||e.isConstant};Od.getValueOrUndefined=function(e,t,n){return l(e)?e.getValue(t,n):void 0};Od.getValueOrDefault=function(e,t,n,i){return l(e)?y(e.getValue(t,i),n):n};Od.getValueOrClonedDefault=function(e,t,n,i){let o;return l(e)&&(o=e.getValue(t,i)),l(o)||(o=n.clone(o)),o};var Y=Od;var oRe={LEFT:-1,NONE:0,RIGHT:1},Nr=Object.freeze(oRe);var rRe=H.WHITE,sRe=h.ZERO,aRe=Ye.NONE,cRe=z.ZERO,lRe=1,uRe=0,fRe=h.ZERO,dRe=_i.CENTER,hRe=Rn.CENTER,mRe=!1,pRe=Nr.NONE,_Re=new h,gRe=new H,yRe=new h,xRe=new z,bRe=new Bt,TRe=new Bt,CRe=new Bt,ARe=new je,ERe=new Lt;function gne(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function zg(e,t){t.collectionChanged.addEventListener(zg.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}zg.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._billboard,c,u=r.billboard,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,_Re),c=Y.getValueOrUndefined(a._image,e),f=l(d)&&l(c)),!f){e9(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0),l(u)||(u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u),u.show=f,(!l(u.image)||r.textureValue!==c)&&(u.image=c,r.textureValue=c),u.position=d,u.color=Y.getValueOrDefault(a._color,e,rRe,gRe),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,sRe,yRe),u.heightReference=Y.getValueOrDefault(a._heightReference,e,aRe),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,cRe,xRe),u.scale=Y.getValueOrDefault(a._scale,e,lRe),u.rotation=Y.getValueOrDefault(a._rotation,e,uRe),u.alignedAxis=Y.getValueOrDefault(a._alignedAxis,e,fRe),u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,dRe),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,hRe),u.width=Y.getValueOrUndefined(a._width,e),u.height=Y.getValueOrUndefined(a._height,e),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,bRe),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,TRe),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,CRe),u.sizeInMeters=Y.getValueOrDefault(a._sizeInMeters,e,mRe),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,ERe),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,pRe);let p=Y.getValueOrUndefined(a._imageSubRegion,e,ARe);l(p)&&u.setImageSubRegion(u._imageId,p)}return!0};zg.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.billboard))return ct.FAILED;let i=n.billboard;if(i.heightReference===Ye.NONE)t.center=h.clone(i.position,t.center);else{if(!l(i._clampedPosition))return ct.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ct.DONE};zg.prototype.isDestroyed=function(){return!1};zg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(zg.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return ue(this)};zg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new gne(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new gne(r)):(e9(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],e9(s.get(r.id),r,a),s.remove(r.id)};function e9(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var mP=zg;var SRe=new h;function am(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}am.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new am({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};am.fromAxisAlignedBoundingBox=function(e){return new am({minimum:e.minimum,maximum:e.maximum})};am.packedLength=2*h.packedLength+1;am.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var xne=new h,bne=new h,yne={minimum:xne,maximum:bne,offsetAttribute:void 0};am.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,xne),o=h.unpack(e,t+h.packedLength,bne),r=e[t+h.packedLength*2];return l(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(yne.offsetAttribute=r===-1?void 0:r,new am(yne))};am.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new fn,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=h.subtract(n,t,SRe),a=h.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,u=e._offsetAttribute===an.NONE?0:1,f=new Uint8Array(c/3).fill(u);i.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new at({attributes:i,indices:o,primitiveType:Me.LINES,boundingSphere:new se(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var Md=am;function eA(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([H.floatToByte(e),H.floatToByte(t),H.floatToByte(n),H.floatToByte(i)])}Object.defineProperties(eA.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});eA.fromColor=function(e){return new eA(e.red,e.green,e.blue,e.alpha)};eA.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};eA.equals=function(e,t){return e===t||l(e)&&l(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var Wt=eA;function pP(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(pP.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});pP.fromDistanceDisplayCondition=function(e){return new pP(e.near,e.far)};pP.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var kn=pP;function vRe(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var St=vRe;function Qo(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?Z.clone(e.start):new Z,this.stop=l(e.stop)?Z.clone(e.stop):new Z,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Qo.prototype,{isEmpty:{get:function(){let e=Z.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var tA={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Qo.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new he("options.iso8601 is an invalid ISO 8601 interval.");let i=Z.fromIso8601(n[0]),o=Z.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(tA.start=i,tA.stop=o,tA.isStartIncluded=r,tA.isStopIncluded=s,tA.data=a,new Qo(tA))};Qo.toIso8601=function(e,t){return`${Z.toIso8601(e.start,t)}/${Z.toIso8601(e.stop,t)}`};Qo.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Qo(e)};Qo.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&Z.equals(e.start,t.start)&&Z.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Qo.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&Z.equalsEpsilon(e.start,t.start,n)&&Z.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Qo.intersect=function(e,t,n,i){if(!l(t))return Qo.clone(Qo.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=Z.greaterThanOrEquals(s,o)&&Z.greaterThanOrEquals(r,s),u=!c&&Z.lessThanOrEquals(s,o)&&Z.lessThanOrEquals(o,a);if(!c&&!u)return Qo.clone(Qo.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=Z.lessThan(r,a);return l(n)||(n=new Qo),n.start=c?s:o,n.isStartIncluded=f&&p||!Z.equals(s,o)&&(c&&p||u&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!Z.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Qo.contains=function(e,t){if(e.isEmpty)return!1;let n=Z.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=Z.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Qo.prototype.clone=function(e){return Qo.clone(this,e)};Qo.prototype.equals=function(e,t){return Qo.equals(this,e,t)};Qo.prototype.equalsEpsilon=function(e,t,n){return Qo.equalsEpsilon(this,e,t,n)};Qo.prototype.toString=function(){return Qo.toIso8601(this)};Qo.EMPTY=Object.freeze(new Qo({start:new Z,stop:new Z,isStartIncluded:!1,isStopIncluded:!1}));var Cn=Qo;var Tne=Object.freeze(Z.fromIso8601("0000-01-01T00:00:00Z")),Cne=Object.freeze(Z.fromIso8601("9999-12-31T24:00:00Z")),wRe=Object.freeze(new Cn({start:Tne,stop:Cne})),DRe={MINIMUM_VALUE:Tne,MAXIMUM_VALUE:Cne,MAXIMUM_INTERVAL:wRe},He=DRe;function _P(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(_P.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});_P.fromCartesian3=function(e){return new _P(e.x,e.y,e.z)};_P.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Qi=_P;function iU(e){e=y(e,!0),this.value=iU.toValue(e)}Object.defineProperties(iU.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});iU.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var gn=iU;var gP=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec3 v_tangentEC; +in vec3 v_bitangentEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = tangentToEyeMatrix; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var yP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec3 tangent; +in vec3 bitangent; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec3 v_tangentEC; +out vec3 v_bitangentEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_tangentEC = czm_normal * tangent; // tangent in eye coordinates + v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var xP=`in vec3 v_positionEC; +in vec3 v_normalEC; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var bP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var TP=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var CP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var IRe={ADD:te.FUNC_ADD,SUBTRACT:te.FUNC_SUBTRACT,REVERSE_SUBTRACT:te.FUNC_REVERSE_SUBTRACT,MIN:te.MIN,MAX:te.MAX},Pa=Object.freeze(IRe);var PRe={ZERO:te.ZERO,ONE:te.ONE,SOURCE_COLOR:te.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:te.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:te.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:te.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:te.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:te.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:te.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:te.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:te.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:te.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:te.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:te.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:te.SRC_ALPHA_SATURATE},Co=Object.freeze(PRe);var RRe={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.SOURCE_ALPHA,functionSourceAlpha:Co.ONE,functionDestinationRgb:Co.ONE,functionDestinationAlpha:Co.ONE})},un=Object.freeze(RRe);var ORe={FRONT:te.FRONT,BACK:te.BACK,FRONT_AND_BACK:te.FRONT_AND_BACK},gi=Object.freeze(ORe);function nA(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(nA.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});nA.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` +`)};nA.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};nA.prototype.getRenderState=function(){let e=this.isTranslucent(),t=Ge(this.renderState,!1);return e?(t.depthMask=!1,t.blending=un.ALPHA_BLEND):t.depthMask=!0,t};nA.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=un.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:gi.BACK}),l(n)&&(i=yt(n,i,!0)),i};var no=nA;var AP=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var EP=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + vec2 centerPixel = fract(repeat * st); + float centerBump = texture(image, centerPixel).channel; + + float imageWidth = float(imageDimensions.x); + vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); + float rightBump = texture(image, rightPixel).channel; + + float imageHeight = float(imageDimensions.y); + vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); + float topBump = texture(image, leftPixel).channel; + + vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + material.diffuse = vec3(0.01); + + return material; +} +`;var SP=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 + + // Find the distance from the closest separator (region between two colors) + float scaledWidth = fract(repeat.s * st.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(repeat.t * st.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + float value = min(scaledWidth, scaledHeight); + + vec4 currentColor = mix(lightColor, darkColor, b); + vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); + + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var vP=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 + + vec4 color = mix(lightColor, darkColor, b); + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var wP=`uniform sampler2D heights; +uniform sampler2D colors; + +// This material expects heights to be sorted from lowest to highest. + +float getHeight(int idx, float invTexSize) +{ + vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); +#ifdef OES_texture_float + return texture(heights, uv).x; +#else + return czm_unpackFloat(texture(heights, uv)); +#endif +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float height = materialInput.height; + float invTexSize = 1.0 / float(heightsDimensions.x); + + float minHeight = getHeight(0, invTexSize); + float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); + + // early-out when outside the height range + if (height < minHeight || height > maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var DP=`uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var IP=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var PP=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var RP=`uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var OP=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var MP=`uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var LP=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var NP=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var FP=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var BP=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var kP=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var VP=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var UP=`uniform vec4 waterColor; +uniform vec4 landColor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 outColor = mix(landColor, waterColor, materialInput.waterMask); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var zP=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function We(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,Zt.LINEAR),this._magnificationFilter=y(e.magnificationFilter,di.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,MRe(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(We._uniformList[this.type])||(We._uniformList[this.type]=Object.keys(this._uniforms))}We._uniformList={};We.fromType=function(e,t){let n=new We({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};We.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let o=t[i];if(typeof o=="function"?e=e&&o():e=e&&o,!e)break}return e};We.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,o=i.length;for(t=0;t<o;++t){let c=i[t];n=c.id;let u=c.image,f;Array.isArray(u)&&(f=u.slice(1,u.length).map(function(x){return x.bufferView}),u=u[0]);let d=new $t({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;l(u.internalFormat)?p=new Pt({context:e,pixelFormat:u.internalFormat,width:u.width,height:u.height,source:{arrayBufferView:u.bufferView,mipLevels:f},sampler:d}):p=new Pt({context:e,source:u,sampler:d});let g=this._textures[n];l(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let m=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(m)){let x=this.uniforms[m];x.x=p._width,x.y=p._height}}i.length=0;let r=this._loadedCubeMaps;for(o=r.length,t=0;t<o;++t){let c=r[t];n=c.id;let u=c.images,f=new br({context:e,source:{positiveX:u[0],negativeX:u[1],positiveY:u[2],negativeY:u[3],positiveZ:u[4],negativeZ:u[5]},sampler:new $t({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}r.length=0;let s=this._updateFunctions;for(o=s.length,t=0;t<o;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};We.prototype.isDestroyed=function(){return!1};We.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return ue(this)};function MRe(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=Ge(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=Ge(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=Ge(y(t._template.materials,y.EMPTY_OBJECT)),t.type=l(t._template.type)?t._template.type:Hn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=We._materialCache.getMaterial(t.type);if(l(i)){let r=Ge(i.fabric,!0);t._template=yt(t._template,r,!0),n=i.translucent}BRe(t),l(i)||We._materialCache.addMaterial(t.type,t),VRe(t),GRe(t),jRe(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),l(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function t9(e,t,n,i){if(l(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function Ane(e,t){}function LRe(e,t){}var NRe=["type","materials","uniforms","components","source"],FRe=["diffuse","specular","shininess","normal","emission","alpha"];function BRe(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;t9(t,NRe,Ane,!0),t9(o,FRe,Ane,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);t9(n,r,LRe,!1)}function kRe(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function VRe(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&kRe(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var Ene={mat2:Bi,mat3:$,mat4:F},URe=/\.ktx2$/i;function zRe(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===We.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new $t({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Pt({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Pt&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof we;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:we.createIfNeeded(r),g;URe.test(p.url)?g=Sl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function HRe(e){return function(t,n){let i=t.uniforms[e];if(i instanceof br){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===We.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[we.createIfNeeded(i.positiveX).fetchImage(),we.createIfNeeded(i.negativeX).fetchImage(),we.createIfNeeded(i.positiveY).fetchImage(),we.createIfNeeded(i.negativeY).fetchImage(),we.createIfNeeded(i.positiveZ).fetchImage(),we.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function GRe(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&Sne(e,n)}function Sne(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=WRe(o),s;if(r==="channels")s=HP(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;qRe(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},Sne(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=HP(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(zRe(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(HRe(t));else if(r.indexOf("mat")!==-1){let u=new Ene[r];e._uniforms[c]=function(){return Ene[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function WRe(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===We.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function jRe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new We({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=yt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;HP(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=HP(e,i,a)}}function HP(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,u,f){return u||f?c:(o+=1,n)}),o}function qRe(e,t,n){return HP(e,t,t,n)}We._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};We.DefaultImageId="czm_defaultImage";We.DefaultCubeMapId="czm_defaultCubeMap";We.ColorType="Color";We._materialCache.addMaterial(We.ColorType,{fabric:{type:We.ColorType,uniforms:{color:new H(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});We.ImageType="Image";We._materialCache.addMaterial(We.ImageType,{fabric:{type:We.ImageType,uniforms:{image:We.DefaultImageId,repeat:new z(1,1),color:new H(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});We.DiffuseMapType="DiffuseMap";We._materialCache.addMaterial(We.DiffuseMapType,{fabric:{type:We.DiffuseMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});We.AlphaMapType="AlphaMap";We._materialCache.addMaterial(We.AlphaMapType,{fabric:{type:We.AlphaMapType,uniforms:{image:We.DefaultImageId,channel:"a",repeat:new z(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});We.SpecularMapType="SpecularMap";We._materialCache.addMaterial(We.SpecularMapType,{fabric:{type:We.SpecularMapType,uniforms:{image:We.DefaultImageId,channel:"r",repeat:new z(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});We.EmissionMapType="EmissionMap";We._materialCache.addMaterial(We.EmissionMapType,{fabric:{type:We.EmissionMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",repeat:new z(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});We.BumpMapType="BumpMap";We._materialCache.addMaterial(We.BumpMapType,{fabric:{type:We.BumpMapType,uniforms:{image:We.DefaultImageId,channel:"r",strength:.8,repeat:new z(1,1)},source:EP},translucent:!1});We.NormalMapType="NormalMap";We._materialCache.addMaterial(We.NormalMapType,{fabric:{type:We.NormalMapType,uniforms:{image:We.DefaultImageId,channels:"rgb",strength:.8,repeat:new z(1,1)},source:OP},translucent:!1});We.GridType="Grid";We._materialCache.addMaterial(We.GridType,{fabric:{type:We.GridType,uniforms:{color:new H(0,1,0,1),cellAlpha:.1,lineCount:new z(8,8),lineThickness:new z(1,1),lineOffset:new z(0,0)},source:RP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});We.StripeType="Stripe";We._materialCache.addMaterial(We.StripeType,{fabric:{type:We.StripeType,uniforms:{horizontal:!0,evenColor:new H(1,1,1,.5),oddColor:new H(0,0,1,.5),offset:0,repeat:5},source:VP},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});We.CheckerboardType="Checkerboard";We._materialCache.addMaterial(We.CheckerboardType,{fabric:{type:We.CheckerboardType,uniforms:{lightColor:new H(1,1,1,.5),darkColor:new H(0,0,0,.5),repeat:new z(5,5)},source:SP},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});We.DotType="Dot";We._materialCache.addMaterial(We.DotType,{fabric:{type:We.DotType,uniforms:{lightColor:new H(1,1,0,.75),darkColor:new H(0,1,1,.75),repeat:new z(5,5)},source:vP},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});We.WaterType="Water";We._materialCache.addMaterial(We.WaterType,{fabric:{type:We.WaterType,uniforms:{baseWaterColor:new H(.2,.3,.6,1),blendColor:new H(0,1,.699,1),specularMap:We.DefaultImageId,normalMap:We.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:zP},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});We.RimLightingType="RimLighting";We._materialCache.addMaterial(We.RimLightingType,{fabric:{type:We.RimLightingType,uniforms:{color:new H(1,0,0,.7),rimColor:new H(1,1,1,.4),width:.3},source:BP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});We.FadeType="Fade";We._materialCache.addMaterial(We.FadeType,{fabric:{type:We.FadeType,uniforms:{fadeInColor:new H(1,0,0,1),fadeOutColor:new H(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new z(.5,.5)},source:PP},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});We.PolylineArrowType="PolylineArrow";We._materialCache.addMaterial(We.PolylineArrowType,{fabric:{type:We.PolylineArrowType,uniforms:{color:new H(1,1,1,1)},source:MP},translucent:!0});We.PolylineDashType="PolylineDash";We._materialCache.addMaterial(We.PolylineDashType,{fabric:{type:We.PolylineDashType,uniforms:{color:new H(1,0,1,1),gapColor:new H(0,0,0,0),dashLength:16,dashPattern:255},source:LP},translucent:!0});We.PolylineGlowType="PolylineGlow";We._materialCache.addMaterial(We.PolylineGlowType,{fabric:{type:We.PolylineGlowType,uniforms:{color:new H(0,.5,1,1),glowPower:.25,taperPower:1},source:NP},translucent:!0});We.PolylineOutlineType="PolylineOutline";We._materialCache.addMaterial(We.PolylineOutlineType,{fabric:{type:We.PolylineOutlineType,uniforms:{color:new H(1,1,1,1),outlineColor:new H(1,0,0,1),outlineWidth:1},source:FP},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});We.ElevationContourType="ElevationContour";We._materialCache.addMaterial(We.ElevationContourType,{fabric:{type:We.ElevationContourType,uniforms:{spacing:100,color:new H(1,0,0,1),width:1},source:DP},translucent:!1});We.ElevationRampType="ElevationRamp";We._materialCache.addMaterial(We.ElevationRampType,{fabric:{type:We.ElevationRampType,uniforms:{image:We.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:IP},translucent:!1});We.SlopeRampMaterialType="SlopeRamp";We._materialCache.addMaterial(We.SlopeRampMaterialType,{fabric:{type:We.SlopeRampMaterialType,uniforms:{image:We.DefaultImageId},source:kP},translucent:!1});We.AspectRampMaterialType="AspectRamp";We._materialCache.addMaterial(We.AspectRampMaterialType,{fabric:{type:We.AspectRampMaterialType,uniforms:{image:We.DefaultImageId},source:AP},translucent:!1});We.ElevationBandType="ElevationBand";We._materialCache.addMaterial(We.ElevationBandType,{fabric:{type:We.ElevationBandType,uniforms:{heights:We.DefaultImageId,colors:We.DefaultImageId},source:wP},translucent:!0});We.WaterMaskType="WaterMask";We._materialCache.addMaterial(We.WaterMaskType,{fabric:{type:We.WaterMaskType,source:UP,uniforms:{waterColor:new H(1,1,1,1),landColor:new H(0,0,0,0)}},translucent:!1});var qi=We;function Cx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,Cx.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Cx.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Cx.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Cx.prototype.isTranslucent=no.prototype.isTranslucent;Cx.prototype.getRenderState=no.prototype.getRenderState;Cx.MaterialSupport={BASIC:Object.freeze({vertexFormat:Ie.POSITION_AND_NORMAL,vertexShaderSource:bP,fragmentShaderSource:xP}),TEXTURED:Object.freeze({vertexFormat:Ie.POSITION_NORMAL_AND_ST,vertexShaderSource:CP,fragmentShaderSource:TP}),ALL:Object.freeze({vertexFormat:Ie.ALL,vertexShaderSource:yP,fragmentShaderSource:gP})};var so=Cx;var GP=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var WP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var Ax=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var jP=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function Ip(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?jP:WP,r=i?Ax:GP,s=i?Ip.FLAT_VERTEX_FORMAT:Ip.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(Ip.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});Ip.VERTEX_FORMAT=Ie.POSITION_AND_NORMAL;Ip.FLAT_VERTEX_FORMAT=Ie.POSITION_ONLY;Ip.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Ip.prototype.isTranslucent=no.prototype.isTranslucent;Ip.prototype.getRenderState=no.prototype.getRenderState;var ln=Ip;function iA(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(iA.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});iA.prototype.getType=function(e){return"Color"};var YRe=new Z;iA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(YRe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};iA.prototype.equals=function(e){return this===e||e instanceof iA&&Y.equals(this._color,e._color)};var Ut=iA;function Hg(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._rectangle=y(e.rectangle,re.MAX_VALUE),this._projection=new vi(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(Hg.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Hg.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Hg.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Hg.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),o=P.toDegrees(e.east),r=P.toDegrees(e.north);return l(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new re(n,i,o,r)};Hg.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=P.toDegrees(o.west),o.south=P.toDegrees(o.south),o.east=P.toDegrees(o.east),o.north=P.toDegrees(o.north),o};Hg.prototype.tileXYToRectangle=function(e,t,n,i){let o=this._rectangle,r=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=o.width/r,c=e*a+o.west,u=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return l(i)||(i=new re(c,p,u,d)),i.west=c,i.south=p,i.east=u,i.north=d,i};Hg.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),s=i.width/o,a=i.height/r,c=e.longitude;i.east<i.west&&(c+=P.TWO_PI);let u=(c-i.west)/s|0;u>=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new z(u,f)};var Yi=Hg;var vne=new h,wne=new h,Dne=new fe,n9=new h,XRe=new h,Ine=new se,KRe=new Yi,qP=[new fe,new fe,new fe,new fe],YP=new z,Zr={};Zr.initialize=function(){let e=Zr._initPromise;return l(e)||(e=we.fetchJson(nn("Assets/approximateTerrainHeights.json")).then(function(t){Zr._terrainHeights=t}),Zr._initPromise=e),e};Zr.getMinimumMaximumHeights=function(e,t){t=y(t,ee.default);let n=Pne(e),i=Zr._defaultMinTerrainHeight,o=Zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Zr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(re.northeast(e,Dne),vne),t.cartographicToCartesian(re.southwest(e,Dne),wne),h.midpoint(wne,vne,n9);let a=t.scaleToGeodeticSurface(n9,XRe);if(l(a)){let c=h.distance(n9,a);i=Math.min(i,-c)}else i=Zr._defaultMinTerrainHeight}return i=Math.max(Zr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Zr.getBoundingSphere=function(e,t){t=y(t,ee.default);let n=Pne(e),i=Zr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Zr._terrainHeights[r];l(s)&&(i=s[1])}let o=se.fromRectangle3D(e,t,0);return se.fromRectangle3D(e,t,i,Ine),se.union(o,Ine,o)};function Pne(e){fe.fromRadians(e.east,e.north,0,qP[0]),fe.fromRadians(e.west,e.north,0,qP[1]),fe.fromRadians(e.east,e.south,0,qP[2]),fe.fromRadians(e.west,e.south,0,qP[3]);let t=0,n=0,i=0,o=0,r=Zr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=qP[c];if(KRe.positionToTileXY(u,s,YP),c===0)i=YP.x,o=YP.y;else if(i!==YP.x||o!==YP.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Zr._terrainHeightsMaxLevel=6;Zr._defaultMaxTerrainHeight=9e3;Zr._defaultMinTerrainHeight=-1e5;Zr._terrainHeights=void 0;Zr._initPromise=void 0;Object.defineProperties(Zr,{initialized:{get:function(){return l(Zr._terrainHeights)}}});var li=Zr;function Uc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Uc.fromCorners=function(e,t,n){return l(n)||(n=new Uc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Uc.fromPoints=function(e,t){if(l(t)||(t=new Uc),!l(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,m=p.y,x=p.z;n=Math.min(g,n),r=Math.max(g,r),i=Math.min(m,i),s=Math.max(m,s),o=Math.min(x,o),a=Math.max(x,a)}let u=t.minimum;u.x=n,u.y=i,u.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(u,f,t.center),t};Uc.clone=function(e,t){if(l(e))return l(t)?(t.minimum=h.clone(e.minimum,t.minimum),t.maximum=h.clone(e.maximum,t.maximum),t.center=h.clone(e.center,t.center),t):new Uc(e.minimum,e.maximum,e.center)};Uc.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var oU=new h;Uc.intersectPlane=function(e,t){oU=h.subtract(e.maximum,e.minimum,oU);let n=h.multiplyByScalar(oU,.5,oU),i=t.normal,o=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),r=h.dot(e.center,i)+t.distance;return r-o>0?jt.INSIDE:r+o<0?jt.OUTSIDE:jt.INTERSECTING};Uc.prototype.clone=function(e){return Uc.clone(this,e)};Uc.prototype.intersectPlane=function(e){return Uc.intersectPlane(this,e)};Uc.prototype.equals=function(e){return Uc.equals(this,e)};var Gg=Uc;var i9=new oe;function cm(e,t){t=y(t,ee.default),e=t.scaleToGeodeticSurface(e);let n=Mt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,i9)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,i9));let i=h.fromCartesian4(F.getColumn(n,2,i9));this._plane=cn.fromPointNormal(e,i)}Object.defineProperties(cm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var ZRe=new Gg;cm.fromPoints=function(e,t){let n=Gg.fromPoints(e,ZRe);return new cm(n.center,t)};var Rne=new mn,rU=new h;cm.prototype.projectPointOntoPlane=function(e,t){let n=Rne;n.origin=e,h.normalize(e,n.direction);let i=$n.rayPlane(n,this._plane,rU);if(l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,rU)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new z(r,s)}};cm.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);l(r)&&(t[n]=r,n++)}return t.length=n,t};cm.prototype.projectPointToNearestOnPlane=function(e,t){l(t)||(t=new z);let n=Rne;n.origin=e,h.clone(this._plane.normal,n.direction);let i=$n.rayPlane(n,this._plane,rU);l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,rU));let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return t.x=r,t.y=s,t};cm.prototype.projectPointsToNearestOnPlane=function(e,t){l(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var $Re=new h;cm.prototype.projectPointOntoEllipsoid=function(e,t){l(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=$Re;return h.multiplyByScalar(o,e.x,s),t=h.add(i,s,t),h.multiplyByScalar(r,e.y,s),h.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};cm.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var $r=cm;function ki(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=$.clone(y(t,$.ZERO))}ki.packedLength=h.packedLength+$.packedLength;ki.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),$.pack(e.halfAxes,t,n+h.packedLength),t};ki.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ki),h.unpack(e,t,n.center),$.unpack(e,t+h.packedLength,n.halfAxes),n};var QRe=new h,JRe=new h,eOe=new h,tOe=new h,nOe=new h,iOe=new h,oOe=new $,rOe={unitary:new $,diagonal:new $};ki.fromPoints=function(e,t){if(l(t)||(t=new ki),!l(e)||e.length===0)return t.halfAxes=$.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],QRe);for(n=1;n<i;n++)h.add(o,e[n],o);let r=1/i;h.multiplyByScalar(o,r,o);let s=0,a=0,c=0,u=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,JRe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,u+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,u*=r,f*=r,d*=r;let g=oOe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=u,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=$.computeEigenDecomposition(g,rOe),x=$.clone(m.unitary,t.halfAxes),b=$.getColumn(x,0,tOe),T=$.getColumn(x,1,nOe),C=$.getColumn(x,2,iOe),A=-Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,R=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],A=Math.max(h.dot(b,p),A),E=Math.max(h.dot(T,p),E),v=Math.max(h.dot(C,p),v),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),R=Math.min(h.dot(C,p),R);b=h.multiplyByScalar(b,.5*(D+A),b),T=h.multiplyByScalar(T,.5*(O+E),T),C=h.multiplyByScalar(C,.5*(R+v),C);let M=h.add(b,T,t.center);h.add(M,C,M);let N=eOe;return N.x=A-D,N.y=E-O,N.z=v-R,h.multiplyByScalar(N,.5,N),$.multiplyByScale(t.halfAxes,N,t.halfAxes),t};var Bne=new h,sOe=new h;function One(e,t,n,i,o,r,s,a,c,u,f){l(f)||(f=new ki);let d=f.halfAxes;$.setColumn(d,0,t,d),$.setColumn(d,1,n,d),$.setColumn(d,2,i,d);let p=Bne;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+u)/2;let g=sOe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(u-c)/2;let m=f.center;return p=$.multiplyByVector(d,p,p),h.add(e,p,m),$.multiplyByScale(d,g,d),f}var Mne=new fe,aOe=new h,cOe=new fe,lOe=new fe,uOe=new fe,fOe=new fe,dOe=new fe,hOe=new h,Lne=new h,mOe=new h,Nne=new h,pOe=new h,_Oe=new z,gOe=new z,yOe=new z,xOe=new z,bOe=new z,TOe=new h,COe=new h,AOe=new h,EOe=new h,SOe=new z,vOe=new h,wOe=new h,DOe=new h,IOe=new cn(h.UNIT_X,0);ki.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,ee.default);let r,s,a,c,u,f,d;if(e.width<=P.PI){let O=re.center(e,Mne),R=i.cartographicToCartesian(O,aOe),M=new $r(R,i);d=M.plane;let N=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,S=fe.fromRadians(N,e.north,n,cOe),w=fe.fromRadians(e.west,e.north,n,lOe),I=fe.fromRadians(e.west,_,n,uOe),L=fe.fromRadians(e.west,e.south,n,fOe),B=fe.fromRadians(N,e.south,n,dOe),U=i.cartographicToCartesian(S,hOe),V=i.cartographicToCartesian(w,Lne),G=i.cartographicToCartesian(I,mOe),k=i.cartographicToCartesian(L,Nne),W=i.cartographicToCartesian(B,pOe),q=M.projectPointToNearestOnPlane(U,_Oe),J=M.projectPointToNearestOnPlane(V,gOe),j=M.projectPointToNearestOnPlane(G,yOe),K=M.projectPointToNearestOnPlane(k,xOe),Q=M.projectPointToNearestOnPlane(W,bOe);return r=Math.min(J.x,j.x,K.x),s=-r,c=Math.max(J.y,q.y),a=Math.min(K.y,Q.y),w.height=L.height=t,V=i.cartographicToCartesian(w,Lne),k=i.cartographicToCartesian(L,Nne),u=Math.min(cn.getPointDistance(d,V),cn.getPointDistance(d,k)),f=n,One(M.origin,M.xAxis,M.yAxis,M.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=re.center(e,Mne).longitude,b=h.fromRadians(x,m,n,i,TOe);b.z=0;let C=Math.abs(b.x)<P.EPSILON10&&Math.abs(b.y)<P.EPSILON10?h.UNIT_X:h.normalize(b,COe),A=h.UNIT_Z,E=h.cross(C,A,AOe);d=cn.fromPointNormal(b,C,IOe);let v=h.fromRadians(x+P.PI_OVER_TWO,m,n,i,EOe);s=h.dot(cn.projectPointOntoPlane(d,v,SOe),E),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,vOe).z,a=h.fromRadians(0,e.south,p?t:n,i,wOe).z;let D=h.fromRadians(e.east,m,n,i,DOe);return u=cn.getPointDistance(d,D),f=0,One(b,E,A,C,r,s,a,c,u,f,o)};ki.fromTransformation=function(e,t){return l(t)||(t=new ki),t.center=F.getTranslation(e,t.center),t.halfAxes=F.getMatrix3(e,t.halfAxes),t.halfAxes=$.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};ki.clone=function(e,t){if(l(e))return l(t)?(h.clone(e.center,t.center),$.clone(e.halfAxes,t.halfAxes),t):new ki(e.center,e.halfAxes)};ki.intersectPlane=function(e,t){let n=e.center,i=t.normal,o=e.halfAxes,r=i.x,s=i.y,a=i.z,c=Math.abs(r*o[$.COLUMN0ROW0]+s*o[$.COLUMN0ROW1]+a*o[$.COLUMN0ROW2])+Math.abs(r*o[$.COLUMN1ROW0]+s*o[$.COLUMN1ROW1]+a*o[$.COLUMN1ROW2])+Math.abs(r*o[$.COLUMN2ROW0]+s*o[$.COLUMN2ROW1]+a*o[$.COLUMN2ROW2]),u=h.dot(i,n)+t.distance;return u<=-c?jt.OUTSIDE:u>=c?jt.INSIDE:jt.INTERSECTING};var kne=new h,Vne=new h,Une=new h,POe=new h,Fne=new h,ROe=new h;ki.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,Bne),i=e.halfAxes,o=$.getColumn(i,0,kne),r=$.getColumn(i,1,Vne),s=$.getColumn(i,2,Une),a=h.magnitude(o),c=h.magnitude(r),u=h.magnitude(s),f=!0,d=!0,p=!0;a>0?h.divideByScalar(o,a,o):f=!1,c>0?h.divideByScalar(r,c,r):d=!1,u>0?h.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let E=o;m=r,x=s,d?p||(E=s,x=o):(E=r,m=o),b=h.cross(m,x,Fne),E===o?o=b:E===r?r=b:E===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let E=h.UNIT_Y;E.equalsEpsilon(m,P.EPSILON3)&&(E=h.UNIT_X),x=h.cross(m,E,POe),h.normalize(x,x),b=h.cross(m,x,Fne),h.normalize(b,b),m===o?(r=x,s=b):m===r?(s=x,o=b):m===s&&(o=x,r=b)}else g===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let T=ROe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let C=0,A;return T.x<-a?(A=T.x+a,C+=A*A):T.x>a&&(A=T.x-a,C+=A*A),T.y<-c?(A=T.y+c,C+=A*A):T.y>c&&(A=T.y-c,C+=A*A),T.z<-u?(A=T.z+u,C+=A*A):T.z>u&&(A=T.z-u,C+=A*A),C};var OOe=new h,MOe=new h;ki.computePlaneDistances=function(e,t,n,i){l(i)||(i=new wa);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,kne),u=$.getColumn(a,1,Vne),f=$.getColumn(a,2,Une),d=h.add(c,u,OOe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,MOe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var LOe=new h,NOe=new h,FOe=new h;ki.computeCorners=function(e,t){l(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,LOe),r=$.getColumn(i,1,NOe),s=$.getColumn(i,2,FOe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var BOe=new $;ki.computeTransformation=function(e,t){l(t)||(t=new F);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,BOe);return F.fromRotationTranslation(i,n,t)};var kOe=new se;ki.isOccluded=function(e,t){let n=se.fromOrientedBoundingBox(e,kOe);return!t.isBoundingSphereVisible(n)};ki.prototype.intersectPlane=function(e){return ki.intersectPlane(this,e)};ki.prototype.distanceSquaredTo=function(e){return ki.distanceSquaredTo(this,e)};ki.prototype.computePlaneDistances=function(e,t,n){return ki.computePlaneDistances(this,e,t,n)};ki.prototype.computeCorners=function(e){return ki.computeCorners(this,e)};ki.prototype.computeTransformation=function(e){return ki.computeTransformation(this,e)};ki.prototype.isOccluded=function(e){return ki.isOccluded(this,e)};ki.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};ki.prototype.clone=function(e){return ki.clone(this,e)};ki.prototype.equals=function(e){return ki.equals(this,e)};var vn=ki;var sU={};sU.getHeight=function(e,t,n){return(e-n)*t+n};var VOe=new fe;sU.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,VOe);if(!l(r))return h.clone(e,o);let s=sU.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var Cr=sU;var XP=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var Wg=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var zne={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};zne.NUMBER_OF_CLASSIFICATION_TYPES=3;var Vn=Object.freeze(zne);var UOe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},rc=Object.freeze(UOe);function zOe(e,t){let n=[],i=e.length,o=0;for(;o<i;){let r=Math.ceil((i-o)/t--);n.push(e.slice(o,o+r)),o+=r}return n}var KP=zOe;function Pp(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=HOe(t),o=e.floatingPointTexture,r=i===Ke.FLOAT&&!o,s=GOe(t,r),a=WOe(s,t,r),c=Math.floor(kt.maximumTextureSize/a),u=Math.min(n,c),f=a*u,d=Math.ceil(n/u),p=1/f,g=p*.5,m=1/d,x=m*.5;this._textureDimensions=new z(f,d),this._textureStep=new oe(p,g,m,x),this._pixelDatatype=r?Ke.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===Ke.FLOAT&&!r?new Float32Array(b):new Uint8Array(b),this._batchValuesDirty=!1}Object.defineProperties(Pp.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function HOe(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?Ke.FLOAT:Ke.UNSIGNED_BYTE}function Gne(e,t){let n=e[t].componentsPerAttribute;return n===2?z:n===3?h:n===4?oe:Number}function GOe(e,t){let n=new Array(e.length),i=0,o=e.length;for(let r=0;r<o;++r){let a=e[r].componentDatatype;n[r]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function WOe(e,t,n){let i=e.length,o=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?o+4:o+1}var ZP=new oe;function jOe(e,t,n){let i=oe.unpack(e,t,ZP),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,ZP);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,ZP);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,ZP);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function qOe(e,t,n){let i=oe.packFloat(e.x,ZP);oe.pack(i,t,n),i=oe.packFloat(e.y,i),oe.pack(i,t,n+4),i=oe.packFloat(e.z,i),oe.pack(i,t,n+8),i=oe.packFloat(e.w,i),oe.pack(i,t,n+12)}var Hne=new oe;Pp.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,o=this._offsets[t],s=4*this._stride*e+4*o,a;this._packFloats&&i[t].componentDatatype!==Ke.UNSIGNED_BYTE?a=jOe(this._batchValues,s,Hne):a=oe.unpack(this._batchValues,s,Hne);let c=Gne(i,t);return l(c.fromCartesian4)?c.fromCartesian4(a,n):l(c.clone)?c.clone(a,n):a.x};var YOe=[void 0,void 0,new z,new h,new oe],XOe=new oe;Pp.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=YOe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=Gne(this._attributes,t);if(l(s.equals)?s.equals(r,n):r===n)return;let c=XOe;c.x=l(n.x)?n.x:n,c.y=l(n.y)?n.y:0,c.z=l(n.z)?n.z:0,c.w=l(n.w)?n.w:0;let u=this._offsets[t],d=4*this._stride*e+4*u;this._packFloats&&i[t].componentDatatype!==Ke.UNSIGNED_BYTE?qOe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function KOe(e,t){let n=e._textureDimensions;e._texture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:$t.NEAREST,flipY:!1})}function ZOe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Pp.prototype.update=function(e){l(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,l(this._texture)||KOe(this,e.context),ZOe(this))};Pp.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:yt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function $Oe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float numberOfAttributes = float(${t}); + return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); +} +`:`uniform vec4 batchTextureStep; +uniform vec2 batchTextureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float stepY = batchTextureStep.z; + float centerY = batchTextureStep.w; + float numberOfAttributes = float(${t}); + float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); + float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}function QOe(e){return e===1?"float":`vec${e}`}function JOe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function eMe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=QOe(o),a=JOe(o),c=e._offsets[t],u=`${s} ${r}(float batchId) +{ + vec2 st = computeSt(batchId); + st.x += batchTextureStep.x * float(${c}); +`;return e._packFloats&&i.componentDatatype!==Ke.UNSIGNED_BYTE?u+=`vec4 textureValue; +textureValue.x = czm_unpackFloat(texture(batchTexture, st)); +textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); +textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); +textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); +`:u+=` vec4 textureValue = texture(batchTexture, st); +`,u+=` ${s} value = textureValue${a}; +`,e._pixelDatatype===Ke.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?u+=`value *= 255.0; +`:e._pixelDatatype===Ke.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(u+=`value /= 255.0; +`),u+=` return value; +} +`,u}Pp.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; +`;t+=`${$Oe(this)} +`;let n=e.length;for(let i=0;i<n;++i)t+=eMe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r} +${t} +${s}`}};Pp.prototype.isDestroyed=function(){return!1};Pp.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ex=Pp;function Dl(e){this._ellipsoid=y(e,ee.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(Dl.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});Dl.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};Dl.geodeticLatitudeToMercatorAngle=function(e){e>Dl.MaximumLatitude?e=Dl.MaximumLatitude:e<-Dl.MaximumLatitude&&(e=-Dl.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};Dl.MaximumLatitude=Dl.mercatorAngleToGeodeticLatitude(Math.PI);Dl.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=Dl.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};Dl.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=Dl.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var wi=Dl;function tMe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r<o;++r)if(!F.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)l(e[r].geometry)&&Ln.transformToWorldCoordinates(e[r]);else F.multiplyTransformation(t,e[0].modelMatrix,t)}function o9(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});let r=n.batchId.values;for(let s=0;s<o;++s)r[s]=t}function nMe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];l(i.geometry)?o9(i.geometry,n):l(i.westHemisphereGeometry)&&l(i.eastHemisphereGeometry)&&(o9(i.westHemisphereGeometry,n),o9(i.eastHemisphereGeometry,n))}}function iMe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,u,f,d=t.length;for(c=0;c<d;++c)if(l(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(tMe(t,a,o),!o)for(c=0;c<d;++c)l(t[c].geometry)&&Ln.splitLongitude(t[c]);if(nMe(t),r)for(c=0;c<d;++c){let g=t[c];l(g.geometry)?(Ln.reorderForPostVertexCache(g.geometry),Ln.reorderForPreVertexCache(g.geometry)):l(g.westHemisphereGeometry)&&l(g.eastHemisphereGeometry)&&(Ln.reorderForPostVertexCache(g.westHemisphereGeometry),Ln.reorderForPreVertexCache(g.westHemisphereGeometry),Ln.reorderForPostVertexCache(g.eastHemisphereGeometry),Ln.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Ln.combineInstances(t);for(d=p.length,c=0;c<d;++c){u=p[c];let g=u.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Ln.encodeAttribute(u,m,`${m}3DHigh`,`${m}3DLow`);else for(let m in g)if(g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE){let x=`${m}3D`,b=`${m}2D`;Ln.projectTo2D(u,m,x,b,n),l(u.boundingSphere)&&m==="position"&&(u.boundingSphereCV=se.fromVertices(u.attributes.position2D.values)),Ln.encodeAttribute(u,x,`${x}High`,`${x}Low`),Ln.encodeAttribute(u,b,`${b}High`,`${b}Low`)}s&&Ln.compressVertices(u)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)u=p[c],g=g.concat(Ln.fitToUnsignedShortIndices(u));p=g}return p}function r9(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;u<c;++u){let d=e[u][t];if(!l(d))continue;let p=d.indices.length;o+p>r&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function oMe(e,t){let n=[];return r9(e,"geometry",t,n),r9(e,"westHemisphereGeometry",t,n),r9(e,"eastHemisphereGeometry",t,n),n}var Rp={};Rp.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=iMe(e),t.length>0&&(n=Ln.createAttributeLocations(t[0]),e.createPickOffsets&&(r=oMe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;l(p)&&(c[f]=p.boundingSphere,u[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;l(g)&&l(m)&&(l(g.boundingSphere)&&l(m.boundingSphere)&&(c[f]=se.union(g.boundingSphere,m.boundingSphere)),l(g.boundingSphereCV)&&l(m.boundingSphereCV)&&(u[f]=se.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:u}};function rMe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];l(o)&&l(o.values)&&t.push(o.values.buffer)}l(e.indices)&&t.push(e.indices.buffer)}function sMe(e,t){let n=e.length;for(let i=0;i<n;++i)rMe(e[i],t)}function aMe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!l(o))continue;let r=o.attributes;t+=7+2*se.packedLength+(l(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&l(r[s])){let a=r[s];t+=5+a.values.length}}return t}Rp.packCreateGeometryResults=function(e,t){let n=new Float64Array(aMe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],u=l(c);if(n[s++]=u?1:0,!u)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=l(c.boundingSphere)?1:0;n[s++]=f,f&&se.pack(c.boundingSphere,n,s),s+=se.packedLength;let d=l(c.boundingSphereCV)?1:0;n[s++]=d,d&&se.pack(c.boundingSphereCV,n,s),s+=se.packedLength;let p=c.attributes,g=[];for(let x in p)p.hasOwnProperty(x)&&l(p[x])&&(g.push(x),l(o[x])||(o[x]=i.length,i.push(x)));n[s++]=g.length;for(let x=0;x<g.length;x++){let b=g[x],T=p[b];n[s++]=o[b],n[s++]=T.componentDatatype,n[s++]=T.componentsPerAttribute,n[s++]=T.normalize?1:0,n[s++]=T.values.length,n.set(T.values,s),s+=T.values.length}let m=l(c.indices)?c.indices.length:0;n[s++]=m,m>0&&(n.set(c.indices,s),s+=m)}return t.push(n.buffer),{stringTable:i,packedData:n}};Rp.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){o[r++]=void 0;continue}let c=n[s++],u=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=se.unpack(n,s)),s+=se.packedLength,n[s++]===1&&(p=se.unpack(n,s)),s+=se.packedLength;let x,b,T,C=new fn,A=n[s++];for(i=0;i<A;i++){let v=t[n[s++]],D=n[s++];T=n[s++];let O=n[s++]!==0;x=n[s++],b=X.createTypedArray(D,x);for(let R=0;R<x;R++)b[R]=n[s++];C[v]=new Se({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let E;if(x=n[s++],x>0){let v=b.length/T;for(E=Ne.createTypedArray(v,x),i=0;i<x;i++)E[i]=n[s++]}o[r++]=new at({primitiveType:c,geometryType:u,boundingSphere:d,boundingSphereCV:p,indices:E,attributes:C,offsetAttribute:f})}return o};function cMe(e,t){let n=e.length,i=new Float64Array(1+n*19),o=0;i[o++]=n;for(let r=0;r<n;r++){let s=e[r];if(F.pack(s.modelMatrix,i,o),o+=F.packedLength,l(s.attributes)&&l(s.attributes.offset)){let a=s.attributes.offset.value;i[o]=a[0],i[o+1]=a[1],i[o+2]=a[2]}o+=3}return t.push(i.buffer),i}function lMe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=F.unpack(t,o),s;o+=F.packedLength,l(t[o])&&(s={offset:new Qi(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}Rp.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let o=0;o<i;o++)t.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:cMe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof vi,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};Rp.unpackCombineGeometryParameters=function(e){let t=lMe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=Rp.unpackCreateGeometryResults(n[a]),u=c.length;for(let f=0;f<u;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=ee.clone(e.ellipsoid),s=e.isGeographic?new vi(r):new wi(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:F.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function Wne(e){let t=e.length,n=1+(se.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];l(s)?(i[o++]=1,se.pack(e[r],i,o)):i[o++]=0,o+=se.packedLength}return i}function jne(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=se.unpack(e,i)),++n,i+=se.packedLength;return t}Rp.packCombineGeometryResults=function(e,t){l(e.geometries)&&sMe(e.geometries,t);let n=Wne(e.boundingSpheres),i=Wne(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};Rp.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:jne(e.boundingSpheres),boundingSpheresCV:jne(e.boundingSpheresCV)}};var Sx=Rp;var uMe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},Ar=Object.freeze(uMe);var mu={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};mu.NUMBER_OF_SHADOW_MODES=4;mu.castShadows=function(e){return e===mu.ENABLED||e===mu.CAST_ONLY};mu.receiveShadows=function(e){return e===mu.ENABLED||e===mu.RECEIVE_ONLY};mu.fromCastReceive=function(e,t){return e&&t?mu.ENABLED:e?mu.CAST_ONLY:t?mu.RECEIVE_ONLY:mu.DISABLED};var yn=Object.freeze(mu);function Er(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,yn.DISABLED),this._translucent=void 0,this._state=Ar.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1,this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(Er.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}}});function fMe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!l(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var dMe=new z,hMe=new h,eie=new oe;function tie(e){let t=e.length;if(t===1)return e[0];if(t===2)return z.unpack(e,0,dMe);if(t===3)return h.unpack(e,0,hMe);if(t===4)return oe.unpack(e,0,eie)}function mMe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=fMe(i),s=r.length,a=[],c={},u={},f,p=i[0].attributes,g,m,x;for(g=0;g<s;++g)m=r[g],x=p[m],c[m]=g,a.push({functionName:`czm_batchTable_${m}`,componentDatatype:x.componentDatatype,componentsPerAttribute:x.componentsPerAttribute,normalize:x.normalize});r.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),u.center3DHigh=a.length-5,u.center3DLow=a.length-4,u.center2DHigh=a.length-3,u.center2DLow=a.length-2,u.radius=a.length-1),r.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let b=a.length,T=new Ex(t,a,o);for(g=0;g<o;++g){let C=i[g];p=C.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let R=tie(x.value),M=c[m];T.setBatchedAttribute(g,M,R)}let A={primitive:y(C.pickPrimitive,e)};l(C.id)&&(A.id=C.id);let E=t.createPickId(A);e._pickIds.push(E);let v=E.color,D=eie;D.x=H.floatToByte(v.red),D.y=H.floatToByte(v.green),D.z=H.floatToByte(v.blue),D.w=H.floatToByte(v.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=u,e._batchTableOffsetAttribute2DIndex=f}function pMe(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new Se({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function _Me(e){let t=e.attributes,n=new fn;for(let o in t)t.hasOwnProperty(o)&&l(t[o])&&(n[o]=pMe(t[o]));let i;if(l(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new at({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:se.clone(e.boundingSphere)})}function gMe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:F.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var yMe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;Er._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=yMe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c}; +`),l(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),o+=`uniform mat4 u_modifiedModelView; +`,r+=`in vec4 position; +`,s+=`${c} +{ + return u_modifiedModelView * position; +} + +`,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c} +{ + return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); +} + +`:(r+=`in vec3 ${a}2DHigh; +in vec3 ${a}2DLow; +`,s+=`${c} +{ + vec4 p; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy), + czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow), + czm_morphTime); + } + return p; +} + +`)}return[o,r,t,s].join(` +`)};Er._appendShowToShader=function(e,t){return l(e._batchTableAttributeIndices.show)?`${Ue.replaceMain(t,"czm_non_show_main")} +void main() +{ + czm_non_show_main(); + gl_Position *= czm_batchTable_show(batchId); +}`:t};Er._updateColorAttribute=function(e,t,n){if(!l(e._batchTableAttributeIndices.color)&&!l(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function qne(e){return`${Ue.replaceMain(e,"czm_non_pick_main")} +out vec4 v_pickColor; +void main() +{ + czm_non_pick_main(); + v_pickColor = czm_batchTable_pickColor(batchId); +}`}function Yne(e){return`in vec4 v_pickColor; +${e}`}Er._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};Er._appendOffsetToShader=function(e,t){if(!l(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId; +`;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition(); +`;return o+=` if (czm_sceneMode == czm_sceneMode3D) +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` } +`,o+=` else +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` } +`,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};Er._appendDistanceDisplayConditionToShader=function(e,t,n){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=Ue.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main() +{ + czm_non_distanceDisplayCondition_main(); + vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId); + vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId); + vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId); + float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId); +`;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); +`:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId); + vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId); + vec4 centerRTE; + if (czm_morphTime == 1.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); + } + else if (czm_morphTime == 0.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy); + } + else + { + centerRTE = czm_columbusViewMorph( + czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy), + czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow), + czm_morphTime); + } +`,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius; + float distanceSq; + if (czm_sceneMode == czm_sceneMode2D) + { + distanceSq = czm_eyeHeight2D.y - radiusSq; + } + else + { + distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; + } + distanceSq = max(distanceSq, 0.0); + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function Xne(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",u=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; +`;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m}); +`}n&&o&&r?(f+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(f+=`vec3 normal; +`,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(f+=`vec3 tangent; +`,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(f+=`vec3 bitangent; +`,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=Ue.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${d} czm_non_compressed_main(); +}`;return[u,f,p,g].join(` +`)}function xMe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function bMe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function Kne(e,t){let n=e.vertexAttributes}function TMe(e,t){return function(){return e[t]}}var s9=Math.max(Ht.hardwareConcurrency-1,1),aU,CMe=new pi("combineGeometry");function AMe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Ar.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),u.push({moduleName:i._workerName,modulePath:i._workerPath,geometry:i});if(!l(aU))for(aU=new Array(s9),o=0;o<s9;o++)aU[o]=new pi("createGeometry");let f;for(u=KP(u,s9),o=0;o<u.length;o++){let d=0,p=u[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let m;if(d>0){let x=new Float64Array(d);for(m=[x.buffer],r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(aU[o].scheduleTask({subTasks:u[o]},m))}e._state=Ar.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=Ar.CREATED}).catch(function(d){QP(e,t,Ar.FAILED,d)})}else if(e._state===Ar.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,u=t.mapProjection,f=CMe.scheduleTask(Sx.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:u.ellipsoid,projection:u,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=Ar.COMBINING,Promise.resolve(f).then(function(d){let p=Sx.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=F.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):QP(e,t,Ar.FAILED,void 0)}).catch(function(d){QP(e,t,Ar.FAILED,d)})}}function EMe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;l(p.attributes)&&l(p.primitiveType)?g=_Me(p):g=p.constructor.createGeometry(p),o[c++]=gMe(s,g),r.push(s.id)}o.length=c;let u=t.scene3DOnly,f=t.mapProjection,d=Sx.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:u,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=F.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Ar.COMBINED):QP(e,t,Ar.FAILED,void 0)}function SMe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new se;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let x=a[i],b=e._batchTable.getBatchedAttribute(i,n,new h);x=r[i].clone(x),rie(x,b,o[i])}let c=[],u=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||se.intersectPlane(x,cn.ORIGIN_ZX_PLANE)!==jt.INTERSECTING?c.push(x):(u.push(x),f.push(x))}let d=c[0],p=f[0],g=u[0];for(i=1;i<c.length;i++)d=se.union(d,c[i]);for(i=1;i<f.length;i++)p=se.union(p,f[i]);for(i=1;i<u.length;i++)g=se.union(g,u[i]);let m=[];for(l(d)&&m.push(d),l(p)&&m.push(p),l(g)&&m.push(g),i=0;i<m.length;i++){let x=m[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=x,e._boundingSphereCV[i]=se.projectTo2D(x,t.mapProjection,e._boundingSphereCV[i])}Er._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var Zne=new Gn,nie=new fe,iie=new h,oie=new se;function vMe(e,t){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,o=i.center3DHigh,r=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,u=t.mapProjection,f=u.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!l(x))continue;let b=e.modelMatrix;l(b)&&(x=se.transform(x,b,oie));let T=x.center,C=x.radius,A=Gn.fromCartesian(T,Zne);if(d.setBatchedAttribute(m,o,A.high),d.setBatchedAttribute(m,r,A.low),!t.scene3DOnly){let E=f.cartesianToCartographic(T,nie),v=u.project(E,iie);A=Gn.fromCartesian(v,Zne),d.setBatchedAttribute(m,s,A.high),d.setBatchedAttribute(m,a,A.low)}d.setBatchedAttribute(m,c,C)}e._batchTableBoundingSpheresUpdated=!0}var a9=new h,wMe=new h;function $ne(e,t){if(!l(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,o=t.mapProjection,r=o.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let u=0;u<c;++u){let f=a[u];if(!l(f))continue;let d=s.getBatchedAttribute(u,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(u,i,h.ZERO);continue}let p=e.modelMatrix;l(p)&&(f=se.transform(f,p,oie));let g=f.center;g=r.scaleToGeodeticSurface(g,wMe);let m=r.cartesianToCartographic(g,nie),x=o.project(m,iie),b=h.add(d,g,a9);m=r.cartesianToCartographic(b,m);let T=o.project(m,a9),C=h.subtract(T,x,a9),A=C.x;C.x=C.z,C.z=C.y,C.y=A,s.setBatchedAttribute(u,i,C)}e._batchTableOffsetsUpdated=!0}function DMe(e,t){let n=e._attributeLocations,i=e._geometries,o=t.scene3DOnly,r=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let u=i[c];if(s.push(ti.fromGeometry({context:r,geometry:u,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),l(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,u);else if(e._boundingSpheres.push(se.clone(u.boundingSphere)),e._boundingSphereWC.push(new se),!o){let f=u.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(se.clone(u.boundingSphereCV)),e._boundingSphere2D.push(new se),e._boundingSphereMorph.push(new se)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,QP(e,t,Ar.COMPLETE,void 0)}function IMe(e,t,n,i){let o=n.getRenderState(),r;i?(r=Ge(o,!1),r.cull={enabled:!0,face:gi.BACK},e._frontFaceRS=Ve.fromCache(r),r.cull.face=gi.FRONT,e._backFaceRS=Ve.fromCache(r)):(e._frontFaceRS=Ve.fromCache(o),e._backFaceRS=e._frontFaceRS),r=Ge(o,!1),l(e._depthFailAppearance)&&(r.depthTest.enabled=!1),l(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=Ge(o,!1),r.depthTest.func=rc.GREATER,i?(r.cull={enabled:!0,face:gi.BACK},e._frontFaceDepthFailRS=Ve.fromCache(r),r.cull.face=gi.FRONT,e._backFaceDepthFailRS=Ve.fromCache(r)):(e._frontFaceDepthFailRS=Ve.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function PMe(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=Er._appendOffsetToShader(e,r),r=Er._appendShowToShader(e,r),r=Er._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=qne(r),r=Er._updateColorAttribute(e,r,!1),r=Xne(e,r),r=Er._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=Yne(s),e._sp=Qt.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Kne(e._sp,o),l(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=Er._appendShowToShader(e,r),r=Er._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=qne(r),r=Er._updateColorAttribute(e,r,!0),r=Xne(e,r),r=Er._modifyShaderPosition(e,r,t.scene3DOnly),r=xMe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=Yne(s),s=bMe(s),e._spDepthFail=Qt.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),Kne(e._spDepthFail,o))}var $P=new F,Qne=new h;function Jne(e,t,n,i){let o=l(n)?n._uniforms:void 0,r={},s=t.uniforms;if(l(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=TMe(s,c));let a=yt(r,o);return a=e._batchTable.getUniformMapCallback()(a),l(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return F.multiply(c,e._modelMatrix,$P),F.multiplyByPoint($P,e.rtcCenter,Qne),F.setTranslation($P,Qne,$P),$P}),a}function RMe(e,t,n,i,o,r,s,a){let c=Jne(e,t,n,a),u;l(e._depthFailAppearance)&&(u=Jne(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?ve.TRANSLUCENT:ve.OPAQUE,d=o?2:1;d*=l(e._depthFailAppearance)?2:1,r.length=e._va.length*d;let p=r.length,g=0;for(let m=0;m<p;++m){let x;o&&(x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,++m),x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,l(e._depthFailAppearance)&&(o&&(++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++m,x=r[m],l(x)||(x=r[m]=new Ze({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++g}}Er._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!F.equals(n,e._modelMatrix))for(F.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],l(s)&&(e._boundingSphereWC[o]=se.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=se.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=se.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(l(a))for(r=e._boundingSpheres.length,o=0;o<r;++o){s=e._boundingSpheres[o];let c=e._boundingSphereWC[o],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function OMe(e,t,n,i,o,r,s,a){Er._updateBoundingVolumes(e,t,o);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&l(e._boundingSphere2D)?c=e._boundingSphere2D:l(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let u=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=yn.castShadows(e.shadows),g=yn.receiveShadows(e.shadows),m=n.length,x=a?2:1;x*=l(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),C=n[b];C.modelMatrix=o,C.boundingVolume=c[T],C.cull=r,C.debugShowBoundingVolume=s,C.castShadows=p,C.receiveShadows=g,d?C.pickId="v_pickColor":C.pickId=void 0,u.push(C)}}}Er.prototype.update=function(e){if(!l(this.geometryInstances)&&this._va.length===0||l(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!l(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(l(this._error))throw this._error;if(this._state===Ar.FAILED)return;let t=e.context;if(l(this._batchTable)||mMe(this,t),this._batchTable.attributes.length>0){if(kt.maximumVertexTextureImageUnits===0)throw new ce("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==Ar.COMPLETE&&this._state!==Ar.COMBINED&&(this.asynchronous?AMe(this,e):EMe(this,e)),this._state===Ar.COMBINED&&(vMe(this,e),$ne(this,e),DMe(this,e)),!this.show||this._state!==Ar.COMPLETE)return;this._batchTableOffsetsUpdated||$ne(this,e),this._recomputeBoundingSpheres&&SMe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,IMe)(this,t,n,u),r&&y(this._createShaderProgramFunction,PMe)(this,e,n),(o||r)&&y(this._createCommandsFunction,RMe)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,OMe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var MMe=new se,LMe=new se;function rie(e,t,n){if(n===an.TOP){let i=se.clone(e,MMe),o=se.clone(e,LMe);o.center=h.add(o.center,t,o.center),e=se.union(i,o,e)}else n===an.ALL&&(e.center=h.add(e.center,t,e.center));return e}function NMe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function FMe(e,t,n,i,o){return function(r){let s=tie(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var BMe=new h;function kMe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&rie(i,h.fromArray(r.get(),0,BMe),e._offsetInstanceExtend[n]),l(o)&&(i=se.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function VMe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}Er.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u<r;++u){let f=(i+u)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];c[u]={get:NMe(s,n,f),set:FMe(s,n,f,this,u)}}return kMe(this,c,n),VMe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};Er.prototype.isDestroyed=function(){return!1};Er.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,ue(this)};function QP(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){e._ready=e._state===Ar.COMPLETE||e._state===Ar.FAILED})}var Dn=Er;function UMe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var sc=UMe;var oA=`#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +in vec4 v_sphericalExtents; +#else // SPHERICAL +in vec2 v_inversePlaneExtents; +in vec4 v_westPlane; +in vec4 v_southPlane; +#endif // SPHERICAL +in vec3 v_uvMinAndSphericalLongitudeRotation; +in vec3 v_uMaxAndInverseDistance; +in vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +#ifdef NORMAL_EC +vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth); + return eyeCoordinate.xyz / eyeCoordinate.w; +} + +vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) { + vec2 glFragCoordXY = gl_FragCoord.xy; + // Sample depths at both offset and negative offset + float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw)); + float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw)); + // Explicitly evaluate both paths + // Necessary for multifrustum and for edges of the screen + bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw); + float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function Ef(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new c9;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new c9;if(o.requiresTextureCoordinates=e,n instanceof ln)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}Ef.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof ln&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof ln||(o=t.material.shaderSource),new Ue({defines:i,sources:[o,oA]})};Ef.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new Ue({defines:n,sources:[oA],pickColorQualifier:"in"})};Ef.prototype.createVertexShader=function(e,t,n,i){return hie(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Ef.prototype.createPickVertexShader=function(e,t,n,i){return hie(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var sie=new h,aie=new fe,cie={high:0,low:0};function hie(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=aie;u.longitude=P.PI,u.latitude=0,u.height=0;let f=s.project(u,sie),d=Gn.encode(f.x,cie);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=aie;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,sie);d=Gn.encode(g.x,cie),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof ln&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new Ue({defines:c,sources:[o]})}function c9(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(c9.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function lie(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/z.distance(t,e)}var zMe=[new z,new z,new z,new z];function mie(e,t){let n=zMe,i=z.unpack(t,0,n[0]),o=z.unpack(t,2,n[1]),r=z.unpack(t,4,n[2]);e.uMaxVmax=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/lie(i,o,r),a=1/lie(i,r,o);e.uvMinAndExtents=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var pie=new fe,_ie=new h,HMe=new h,GMe=new h,cU={high:0,low:0};function gie(e,t,n){let i=pie;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,_ie);i.latitude=e.north;let r=t.project(i,HMe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,GMe),a=[0,0,0,0],c=[0,0,0,0],u=Gn.encode(o.x,cU);a[0]=u.high,c[0]=u.low,u=Gn.encode(o.y,cU),a[1]=u.high,c[1]=u.low,u=Gn.encode(r.y,cU),a[2]=u.high,c[2]=u.low,u=Gn.encode(s.x,cU),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var WMe=new F,jMe=new F,uie=new h,qMe=new fe,YMe=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function XMe(e,t,n,i,o,r){let s=re.center(e,qMe);s.height=n;let a=fe.toCartesian(s,t,uie),c=Mt.eastNorthUpToFixedFrame(a,t,WMe),u=F.inverse(c,jMe),f=e.west,d=e.east,p=e.north,g=e.south,m=YMe;m[0].latitude=g,m[0].longitude=f,m[1].latitude=p,m[1].longitude=f,m[2].latitude=p,m[2].longitude=d,m[3].latitude=g,m[3].longitude=d;let x=(f+d)*.5,b=(p+g)*.5;m[4].latitude=g,m[4].longitude=x,m[5].latitude=p,m[5].longitude=x,m[6].latitude=b,m[6].longitude=f,m[7].latitude=b,m[7].longitude=d;let T=Number.POSITIVE_INFINITY,C=Number.NEGATIVE_INFINITY,A=Number.POSITIVE_INFINITY,E=Number.NEGATIVE_INFINITY;for(let R=0;R<8;R++){m[R].height=n;let M=fe.toCartesian(m[R],t,uie);F.multiplyByPoint(u,M,M),M.z=0,T=Math.min(T,M.x),C=Math.max(C,M.x),A=Math.min(A,M.y),E=Math.max(E,M.y)}let v=i;v.x=T,v.y=A,v.z=0,F.multiplyByPoint(c,v,v);let D=o;D.x=C,D.y=A,D.z=0,F.multiplyByPoint(c,D,D),h.subtract(D,v,o);let O=r;O.x=T,O.y=E,O.z=0,F.multiplyByPoint(c,O,O),h.subtract(O,v,r)}var KMe=new h,ZMe=new h,$Me=new Gn;Ef.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=_ie,s=KMe,a=ZMe;XMe(e,n,y(o,0),r,s,a);let c={};mie(c,t);let u=Gn.fromCartesian(r,$Me);return c.southWest_HIGH=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.high,[0,0,0])}),c.southWest_LOW=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.low,[0,0,0])}),c.eastward=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),gie(e,i,c),c};var QMe=new h;function fie(e,t,n,i){let o=pie;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,QMe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var die=new z;Ef.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=fie(e.south,e.west,n,die),r=o.x,s=o.y,a=fie(e.north,e.east,n,die),c=a.x,u=a.y,f=0;s>u&&(f=P.PI-s,s=-P.PI,u+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,u+=P.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new sc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return mie(g,t),gie(e,i,g),g};Ef.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};Ef.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function JMe(e){return Math.max(e.width,e.height)>Ef.MAX_WIDTH_FOR_PLANAR_EXTENTS}Ef.shouldUseSphericalCoordinates=function(e){return JMe(e)};Ef.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var pu=Ef;var eLe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Un=Object.freeze(eLe);var tLe={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},ft=Object.freeze(tLe);var lU={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};lU.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Un.ALWAYS,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},backFunction:Un.ALWAYS,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.REPLACE},reference:lU.CESIUM_3D_TILE_MASK,mask:lU.CESIUM_3D_TILE_MASK}};var Vt=Object.freeze(lU);function vx(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(vx.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});vx.isSupported=function(e){return e.context.stencilBuffer};function rA(e,t){let n=t?Un.EQUAL:Un.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:n,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}function u9(e){return{stencilTest:{enabled:e,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}}var nLe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function iLe(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(rA(o,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(rA(o,!0)),e._rsColorPass=Ve.fromCache(u9(o,!1)),e._rsPickPass=Ve.fromCache(nLe)}function oLe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=Ue.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function rLe(e,t){let n=t.context,i=e._primitive,o=XP;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=Dn._appendDistanceDisplayConditionToShader(i,o),o=Dn._modifyShaderPosition(e,o,t.scene3DOnly),o=Dn._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=oLe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new Ue({defines:[a],sources:[o]}),u=new Ue({sources:[Wg]}),f=e._primitive._attributeLocations,d=new pu(s,r,e.appearance);if(e._spStencil=Qt.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let m=Ue.createPickVertexShaderSource(o);m=Dn._appendShowToShader(i,m),m=Dn._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=Qt.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(T)){let C=d.createPickFragmentShader(!0),A=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:f})}e._spPick2D=T}}else e._spPick=Qt.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=Dn._appendShowToShader(i,o),c=new Ue({defines:[a],sources:[o]}),e._sp=Qt.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=Qt.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(m)){let x=d.createFragmentShader(!0),b=d.createVertexShader([a],o,!0,t.mapProjection);m=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f})}e._spColor2D=m}}function sLe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),u=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],l(r)||(r=t[o]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=ve.TERRAIN_CLASSIFICATION,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],l(r)||(r=t[o+1]=new Ze({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=ve.TERRAIN_CLASSIFICATION;let x=e.appearance.material;if(l(x)&&(c=yt(c,x._uniforms)),r.uniformMap=c,s=Ze.shallowClone(r,r.derivedCommands.tileset),s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,u){let b=Ze.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=Ze.shallowClone(s,s.derivedCommands.appearance2D),b.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=b}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let m=f[g]=Ze.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function aLe(e,t){let n=e._usePickOffsets,i=e._primitive,o=i._va.length*2,r,s=0,a;n&&(r=i._pickOffsets,o=r.length*2),t.length=o;let c,u,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<o;c+=2){let m=i._va[d++];if(n&&(a=r[s++],m=i._va[a.index]),u=t[c],l(u)||(u=t[c]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsStencilDepthPass,u.shaderProgram=e._sp,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,u=t[c+1],l(u)||(u=t[c+1]=new Ze({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsPickPass,u.shaderProgram=e._spPick,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=Ze.shallowClone(u,u.derivedCommands.tileset),f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,g){let x=Ze.shallowClone(u,u.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,u.derivedCommands.pick2D=x,x=Ze.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function cLe(e,t,n,i,o,r,s){sLe(e,r),aLe(e,s)}function yie(e,t){return Math.floor(e%t/2)}function l9(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function xie(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function lLe(e,t,n,i,o,r,s,a){let c=e._primitive;Dn._updateBoundingVolumes(c,t,o);let u;t.mode===ne.SCENE3D?u=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?u=c._boundingSphereCV:t.mode===ne.SCENE2D&&l(c._boundingSphere2D)?u=c._boundingSphere2D:l(c._boundingSphereMorph)&&(u=c._boundingSphereMorph);let f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN,g=t.passes,m,x,b;if(g.render){let T=n.length;for(m=0;m<T;++m)x=u[yie(m,T)],d&&(b=n[m],l9(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,l9(b,t,o,r,x,s));if(t.invertClassification){let C=e._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=u[m],b=C[m],l9(b,t,o,r,x,s)}}if(g.pick){let T=i.length,C=c._pickOffsets;for(m=0;m<T;++m){let A=C[yie(m,T)];x=u[A.index],d&&(b=i[m],xie(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,xie(b,t,o,r,x))}}}vx.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;let t=this.appearance;l(t)&&l(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,u=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=pu.hasAttributesForSphericalExtents(c),g=pu.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;l(x)&&(u=!0),f=f&&l(x)&&Wt.equals(d,x)}if(!f&&!p&&!g)throw new he("All GeometryInstances must have the same color attribute except via GroundPrimitives");u&&!l(t)&&(t=new ln({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=u;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new St({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,l(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,C){iLe(n,b)},i._createShaderProgramFunction=function(x,b,T){rLe(n,b)},i._createCommandsFunction=function(x,b,T,C,A,E,v){cLe(n,void 0,void 0,!0,!1,E,v)},l(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){n._updateAndQueueCommandsFunction(x,b,T,C,A,E,v,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){lLe(n,b,T,C,A,E,v,D)},this._primitive=new Dn(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(rA(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(rA(!1,!0)),this._rsColorPass=Ve.fromCache(u9(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(rA(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(rA(!0,!0)),this._rsColorPass=Ve.fromCache(u9(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};vx.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};vx.prototype.isDestroyed=function(){return!1};vx.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var sA=vx;var uLe={u_globeMinimumAltitude:function(){return 55e3}};function Il(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(l(a)&&l(a.color)){t=new ln({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1,this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=li._defaultMaxTerrainHeight,this._minTerrainHeight=li._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let i=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:i,_extruded:!0,_uniformMap:uLe}}Object.defineProperties(Il.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}}});Il.isSupported=sA.isSupported;function bie(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function Tie(e){return function(t,n){return e._minHeight}}var fLe=new h,dLe=new h,hLe=new h,mLe=new fe,pLe=new re;function uU(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,fLe),g=h.unpack(o,d,dLe),m=h.add(p,g,hLe),x=n.cartesianToCartographic(m,mLe),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),u=Math.max(u,T)}let f=pLe;return f.north=c,f.south=s,f.east=u,f.west=a,f}function _Le(e,t,n){let i=li.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function gLe(e,t,n){let i=t.mapProjection.ellipsoid,o=uU(t,n),r=vn.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=se.fromRectangleWithHeights2D(o,s,e._maxHeight,e._minHeight);h.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function f9(e,t){return Math.floor(e%t/2)}function d9(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function Cie(e,t,n,i,o,r){let s=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,n.commandList.push(t)}function yLe(e,t,n,i,o,r,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let u=e.classificationType,f=u!==Vn.CESIUM_3D_TILE,d=u!==Vn.TERRAIN,p=t.passes,g=e._primitive,m,x,b;if(p.render){let T=n.length;for(m=0;m<T;++m)x=c[f9(m,T)],f&&(b=n[m],d9(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,d9(e,b,t,o,r,x,s));if(t.invertClassification){let C=g._commandsIgnoreShow,A=C.length;for(m=0;m<A;++m)x=c[m],b=C[m],d9(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,C;for(e._useFragmentCulling||(C=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[f9(m,T)],!e._useFragmentCulling){let A=C[f9(m,T)];x=c[A.index]}f&&(b=i[m],Cie(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,Cie(e,b,t,o,r,x))}}}Il.initializeTerrainHeights=function(){return li.initialize()};Il.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!li.initialized){Il.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!l(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,u=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=uU(e,r);l(d)?l(x)&&re.union(d,x,d):d=re.clone(x);let b=o.id;if(l(b)&&l(x)){let T=li.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!l(s)||l(s.createShadowVolume)}_Le(this,d,i);let p=e.verticalExaggeration,g=e.verticalExaggerationRelativeHeight;this._minHeight=Cr.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Cr.getHeight(this._maxTerrainHeight,p,g);let m=Il._supportsMaterials(e.context);if(this._useFragmentCulling=m,m){let x,b=!0;for(f=0;f<c;++f)if(o=a[f],r=o.geometry,d=uU(e,r),pu.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=uU(e,r),C=r.textureCoordinateRotationPoints;b?x=pu.getPlanarTextureCoordinateAttributes(T,C,i,e.mapProjection,this._maxHeight):x=pu.getSphericalExtentGeometryInstanceAttributes(T,C,i,e.mapProjection);let A=o.attributes;for(let E in A)A.hasOwnProperty(E)&&(x[E]=A[E]);u[f]=new St({geometry:s.createShadowVolume(r,Tie(this),bie(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,u[f]=new St({geometry:s.createShadowVolume(r,Tie(this),bie(this)),attributes:o.attributes,id:o.id});n.geometryInstances=u,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){gLe(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,C,A,E,v,D){yLe(t,b,T,C,A,E,v,D)},this._primitive=new sA(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Il.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};Il.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Il.prototype.isDestroyed=function(){return!1};Il.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};Il._supportsMaterials=function(e){return e.depthTexture};Il.supportsMaterials=function(e){return Il._supportsMaterials(e.frameState.context)};var zc=Il;function aA(){he.throwInstantiationError()}Object.defineProperties(aA.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});aA.prototype.getType=he.throwInstantiationError;aA.prototype.getValue=he.throwInstantiationError;aA.prototype.equals=he.throwInstantiationError;var xLe=new Z;aA.getValue=function(e,t,n){let i;return l(e)||(e=Z.now(xLe)),l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=qi.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==qi.ColorType)&&(n=qi.fromType(qi.ColorType)),H.clone(H.WHITE,n.uniforms.color),n)};var Jo=aA;function wx(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}wx.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!Y.getValueOrDefault(t.show,n,!0)};wx.prototype._setOptions=he.throwInstantiationError;wx.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof Ut,d,p=t._getIsClosed(c);if(f)d=new ln({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=Jo.getValue(e,u,this._material);this._material=g,d=new so({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=ln.VERTEX_FORMAT,this._primitive=o.add(new zc({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),Y.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new Dn({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=Y.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new Dn({geometryInstances:u,appearance:new ln({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};wx.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),ct.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),ct.DONE):l(n)&&!n.ready||l(i)&&!i.ready?ct.PENDING:ct.FAILED};wx.prototype.isDestroyed=function(){return!1};wx.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ni=wx;var bLe={NONE:0,GEODESIC:1,RHUMB:2},Jt=Object.freeze(bLe);var Aie=P.EPSILON10;function TLe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,Aie)?(l(u)||(u=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(l(u)&&(u.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],Aie)&&(o&&(l(u)?i.splice(d,0,f):i.push(r-1)),l(u)?u.length-=1:u=e.slice(0,-1)),l(u)?u:e}var To=TLe;function CLe(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,o=(n-i)/n,r=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-o)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),u=c*a,f=Math.atan2(a,r),d=c*s,p=d*d,g=1-p,m=Math.sqrt(g),x=t/4,b=x*x,T=b*x,C=b*b,A=1+x-3*b/4+5*T/4-175*C/64,E=1-x+15*b/8-35*T/8,v=1-3*x+35*b/4,D=1-5*x,O=A*f-E*Math.sin(2*f)*x/2-v*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*C/512,R=e._constants;R.a=n,R.b=i,R.f=o,R.cosineHeading=r,R.sineHeading=s,R.tanU=a,R.cosineU=c,R.sineU=u,R.sigma=f,R.sineAlpha=d,R.sineSquaredAlpha=p,R.cosineSquaredAlpha=g,R.cosineAlpha=m,R.u2Over4=x,R.u4Over16=b,R.u6Over64=T,R.u8Over256=C,R.a0=A,R.a1=E,R.a2=v,R.a3=D,R.distanceRatio=O}function ALe(e,t){return e*t*(4+e*(4-3*t))/16}function Eie(e,t,n,i,o,r,s){let a=ALe(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function ELe(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,u=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(u),p=Math.sin(u),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,C=p*g,A=c,E=P.TWO_PI,v=Math.cos(A),D=Math.sin(A),O,R,M,N,_;do{v=Math.cos(A),D=Math.sin(A);let k=b-C*v;M=Math.sqrt(g*g*D*D+k*k),R=T+x*v,O=Math.atan2(M,R);let W;M===0?(W=0,N=1):(W=x*D/M,N=1-W*W),E=A,_=R-2*T/N,isFinite(_)||(_=0),A=c+Eie(a,W,N,O,M,R,_)}while(Math.abs(A-E)>P.EPSILON12);let S=N*(t*t-n*n)/(n*n),w=1+S*(4096+S*(S*(320-175*S)-768))/16384,I=S*(256+S*(S*(74-47*S)-128))/1024,L=_*_,B=I*M*(_+I*(R*(2*L-1)-I*_*(4*M*M-3)*(4*L-3)/6)/4),U=n*w*(O-B),V=Math.atan2(g*D,b-C*v),G=Math.atan2(d*D,b*v-C);e._distance=U,e._startHeading=V,e._endHeading=G,e._uSquared=S}var SLe=new h,h9=new h;function Sie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,h9),SLe),r=h.normalize(i.cartographicToCartesian(n,h9),h9);ELe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=fe.clone(t,e._start),e._end=fe.clone(n,e._end),e._start.height=0,e._end.height=0,CLe(e)}function JP(e,t,n){let i=y(n,ee.default);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&Sie(this,e,t,i)}Object.defineProperties(JP.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});JP.prototype.setEndPoints=function(e,t){Sie(this,e,t,this._ellipsoid)};JP.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};JP.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),u=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,m=n.u2Over4,x=n.u6Over64,b=n.u4Over16,T=2*p*g*o/3+i*(1-m+7*b/4-15*x/4+579*g/64-(b-15*x/4+187*g/16)*o-(5*x/4-115*g/16)*r-29*g*s/16)+(m/2-b+71*x/32-85*g/16)*a+(5*b/16-5*x/4+383*g/96)*c-d*((x-11*g/2)*a+5*g*c/2)+(29*x/96-29*g/16)*u+539*g*f/1536,C=Math.asin(Math.sin(T)*n.cosineAlpha),A=Math.atan(n.a/n.b*Math.tan(C));T=T-n.sigma;let E=Math.cos(2*n.sigma+T),v=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,R=n.sineU*v,N=Math.atan2(v*n.sineHeading,O-R*n.cosineHeading)-Eie(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,v,D,E);return l(t)?(t.longitude=this._start.longitude+N,t.latitude=A,t.height=0,t):new fe(this._start.longitude+N,A,0)};var Op=JP;function p9(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),m=Math.sin(10*u),x=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*m+1001*c/8388608*x)}function vLe(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,u=c*c,f=u*c,d=f*c,p=d*c,g=p*c,m=Math.sin(2*i),x=Math.cos(2*i),b=Math.sin(4*i),T=Math.cos(4*i),C=Math.sin(6*i),A=Math.cos(6*i),E=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),R=Math.sin(12*i);return i+i*c/4+7*i*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*x+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*T+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*A+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*m+(21*u/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*b+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*C+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*E+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*R}function cA(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function wLe(e,t,n,i,o){let r=cA(e._ellipticity,n),s=cA(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function DLe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)u=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=p9(e._ellipticity,t,o);u=(p9(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var ILe=new h,m9=new h;function vie(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,m9),ILe),r=h.normalize(i.cartographicToCartesian(n,m9),m9),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=fe.clone(t,e._start),e._start.height=0,e._end=fe.clone(n,e._end),e._end.height=0,e._heading=wLe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=DLe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function wie(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,u;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=p9(o,i,e.latitude),d=n*Math.cos(t),p=f+d;if(c=vLe(p,o,i),Math.abs(t)<P.EPSILON10)a=P.negativePiToPi(e.longitude);else{let g=cA(o,e.latitude),m=cA(o,c);u=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+u)}}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}u=n/f,t>0?a=P.negativePiToPi(e.longitude+u):a=P.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function Mp(e,t,n){let i=y(n,ee.default);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&vie(this,e,t,i)}Object.defineProperties(Mp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});Mp.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ee.default),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=P.negativePiToPi(t);let d=wie(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new Mp(e,d,r):(o.setEndPoints(e,d),o)};Mp.prototype.setEndPoints=function(e,t){vie(this,e,t,this._ellipsoid)};Mp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};Mp.prototype.interpolateUsingSurfaceDistance=function(e,t){return wie(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};Mp.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),l(t)||(t=new fe),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),u=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/u,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};Mp.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=cA(n,o.latitude),s=cA(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var Ra=Mp;var A9=[vi,wi],PLe=A9.length,Yie=Math.cos(P.toRadians(30)),Die=Math.cos(P.toRadians(150)),Xie=0,Kie=1e3;function qg(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,Jt.GEODESIC),this._ellipsoid=ee.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(qg.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ee.packedLength+1+1}}});qg.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<PLe;i++)if(t instanceof A9[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var RLe=new h,Iie=new h,Pie=new h;function C9(e,t,n,i,o){let r=Hc(i,e,0,RLe),s=Hc(i,e,n,Iie),a=Hc(i,t,0,Pie),c=Lp(s,r,Iie),u=Lp(a,r,Pie);return h.cross(u,c,o),h.normalize(o,o)}var OLe=new fe,MLe=new h,LLe=new h,NLe=new h;function _9(e,t,n,i,o,r,s,a,c,u,f){if(o===0)return;let d;r===Jt.GEODESIC?d=new Op(e,t,s):r===Jt.RHUMB&&(d=new Ra(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=C9(e,t,i,s,NLe),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,C=a.length;for(let A=0;A<T;A++){let E=d.interpolateUsingSurfaceDistance(b,OLe),v=Hc(s,E,n,MLe),D=Hc(s,E,i,LLe);h.pack(g,a,C),h.pack(v,c,C),h.pack(D,u,C),f.push(E.latitude),f.push(E.longitude),C+=3,b+=x}}var g9=new fe;function Hc(e,t,n,i){return fe.clone(t,g9),g9.height=n,fe.toCartesian(g9,e,i)}qg.pack=function(e,t,n){let i=y(n,0),o=e._positions,r=o.length;t[i++]=r;for(let s=0;s<r;++s){let a=o[s];h.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,ee.pack(e._ellipsoid,t,i),i+=ee.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};qg.unpack=function(e,t,n){let i=y(t,0),o=e[i++],r=new Array(o);for(let p=0;p<o;p++)r[p]=h.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],u=ee.unpack(e,i);i+=ee.packedLength;let f=e[i++],d=e[i++]===1;return l(n)||(n=new qg({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=u,n._projectionIndex=f,n._scene3DOnly=d,n};function Lp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function Rie(e,t,n,i){return i=Lp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var FLe=new h,BLe=new h,kLe=new h,Zie=new h,VLe=0,ULe=-1;function y9(e,t,n,i,o){let r=Lp(n,t,Zie),s=Rie(e,t,r,FLe),a=Rie(i,t,r,BLe);if(P.equalsEpsilon(h.dot(s,a),ULe,P.EPSILON5))return o=h.cross(r,s,o),o=h.normalize(o,o),o;o=h.add(a,s,o),o=h.normalize(o,o);let c=h.cross(r,o,kLe);return h.dot(a,c)<VLe&&(o=h.negate(o,o)),o}var mU=cn.fromPointNormal(h.ZERO,h.UNIT_Y),zLe=new h,HLe=new h,GLe=new h,WLe=new h,jLe=new h,fU=new h,dU=new fe,Oie=new fe,Mie=new fe;qg.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new A9[e._projectionIndex](i),a=Xie,c=Kie,u,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new Ra(void 0,void 0,i),C,A,E,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],C=$n.lineSegmentPlane(g,m,mU,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&(e.arcType===Jt.GEODESIC?v.push(h.clone(C)):e.arcType===Jt.RHUMB&&(E=i.cartesianToCartographic(C,dU).longitude,x=i.cartesianToCartographic(g,dU),b=i.cartesianToCartographic(m,Oie),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,Mie),C=i.cartographicToCartesian(A,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&v.push(h.clone(C)))),v.push(m);n&&(g=d[p-1],m=d[0],C=$n.lineSegmentPlane(g,m,mU,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&(e.arcType===Jt.GEODESIC?v.push(h.clone(C)):e.arcType===Jt.RHUMB&&(E=i.cartesianToCartographic(C,dU).longitude,x=i.cartesianToCartographic(g,dU),b=i.cartesianToCartographic(m,Oie),T.setEndPoints(x,b),A=T.findIntersectionWithLongitude(E,Mie),C=i.cartographicToCartesian(A,fU),l(C)&&!h.equalsEpsilon(C,g,P.EPSILON7)&&!h.equalsEpsilon(C,m,P.EPSILON7)&&v.push(h.clone(C)))));let D=v.length,O=new Array(D);for(f=0;f<D;f++){let q=fe.fromCartesian(v[f],i);q.height=0,O[f]=q}if(O=To(O,fe.equalsEpsilon),D=O.length,D<2)return;let R=[],M=[],N=[],_=[],S=zLe,w=HLe,I=GLe,L=WLe,B=jLe,U=O[0],V=O[1],G=O[D-1];for(S=Hc(i,G,a,S),L=Hc(i,V,a,L),w=Hc(i,U,a,w),I=Hc(i,U,c,I),n?B=y9(S,w,I,L,B):B=C9(U,V,c,i,B),h.pack(B,M,0),h.pack(w,N,0),h.pack(I,_,0),R.push(U.latitude),R.push(U.longitude),_9(U,V,a,c,o,r,i,M,N,_,R),f=1;f<D-1;++f){S=h.clone(w,S),w=h.clone(L,w);let q=O[f];Hc(i,q,c,I),Hc(i,O[f+1],a,L),y9(S,w,I,L,B),u=M.length,h.pack(B,M,u),h.pack(w,N,u),h.pack(I,_,u),R.push(q.latitude),R.push(q.longitude),_9(O[f],O[f+1],a,c,o,r,i,M,N,_,R)}let k=O[D-1],W=O[D-2];if(w=Hc(i,k,a,w),I=Hc(i,k,c,I),n){let q=O[0];S=Hc(i,W,a,S),L=Hc(i,q,a,L),B=y9(S,w,I,L,B)}else B=C9(W,k,c,i,B);if(u=M.length,h.pack(B,M,u),h.pack(w,N,u),h.pack(I,_,u),R.push(k.latitude),R.push(k.longitude),n){for(_9(k,U,a,c,o,r,i,M,N,_,R),u=M.length,f=0;f<3;++f)M[u+f]=M[f],N[u+f]=N[f],_[u+f]=_[f];R.push(U.latitude),R.push(U.longitude)}return gNe(n,s,N,_,M,R,t)};var qLe=new h,YLe=new $,XLe=new Oe;function Lie(e,t,n,i){let o=Lp(n,t,qLe),r=h.dot(o,e);if(r>Yie||r<Die){let s=Lp(i,n,Zie),a=r<Die?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Oe.fromAxisAngle(s,a,XLe),u=$.fromQuaternion(c,YLe);return $.multiplyByVector(u,e,e),!0}return!1}var Nie=new fe,KLe=new h,Fie=new h;function e1(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,KLe),s=h.add(r,n,Fie),a=!1,c=e._ellipsoid,u=c.cartesianToCartographic(s,Nie);Math.abs(t.longitude-u.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,Fie),u=c.cartesianToCartographic(s,Nie)),u.height=0;let f=e.project(u,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var ZLe=new h,Bie=new h;function kie(e,t,n,i,o,r){let s=h.subtract(t,e,ZLe);h.normalize(s,s);let a=n-Xie,c=h.multiplyByScalar(s,a,Bie);h.add(e,c,o);let u=i-Kie;c=h.multiplyByScalar(s,u,Bie),h.add(t,c,r)}var $Le=new h;function hU(e,t){let n=cn.getPointDistance(mU,e),i=cn.getPointDistance(mU,t),o=$Le;P.equalsEpsilon(n,0,P.EPSILON2)?(o=Lp(t,e,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=Lp(e,t,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(t,o,t))}function QLe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var $ie=new fe,Qie=new fe,Vie=new h,x9=new h,Uie=new h,zie=new h,JLe=new h,Hie=new h,eNe=[$ie,Qie],tNe=new re,nNe=new h,iNe=new h,oNe=new h,rNe=new h,sNe=new h,aNe=new h,b9=new h,T9=new h,cNe=new h,lNe=new h,uNe=new h,Gie=new h,fNe=new h,dNe=new h,hNe=new Gn,mNe=new Gn,Wie=new h,pNe=new h,jie=new h,_Ne=[new se,new se],Jie=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],qie=Jie.length;function gNe(e,t,n,i,o,r,s){let a,c,u=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,m=d>65535?new Uint32Array(g):new Uint16Array(g),x=new Float64Array(d*3),b=new Float32Array(p),T=new Float32Array(p),C=new Float32Array(p),A=new Float32Array(p),E=new Float32Array(p),v,D,O,R;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),R=new Float32Array(d*2));let M=r.length/2,N=0,_=$ie;_.height=0;let S=Qie;S.height=0;let w=Vie,I=x9;if(s)for(c=0,a=1;a<M;a++)_.latitude=r[c],_.longitude=r[c+1],S.latitude=r[c+2],S.longitude=r[c+3],w=t.project(_,w),I=t.project(S,I),N+=h.distance(w,I),c+=2;let L=i.length/3;I=h.unpack(i,0,I);let B=0;for(c=3,a=1;a<L;a++)w=h.clone(I,w),I=h.unpack(i,c,I),B+=h.distance(w,I),c+=3;let U;c=3;let V=0,G=0,k=0,W=0,q=!1,J=h.unpack(n,0,zie),j=h.unpack(i,0,x9),K=h.unpack(o,0,Hie);if(e){let Ae=h.unpack(n,n.length-6,Uie);Lie(K,Ae,J,j)&&(K=h.negate(K,K))}let Q=0,de=0,ye=0;for(a=0;a<f;a++){let Ae=h.clone(J,Uie),ke=h.clone(j,Vie),ze=h.clone(K,JLe);q&&(ze=h.negate(ze,ze)),J=h.unpack(n,c,zie),j=h.unpack(i,c,x9),K=h.unpack(o,c,Hie),q=Lie(K,Ae,J,j),_.latitude=r[V],_.longitude=r[V+1],S.latitude=r[V+2],S.longitude=r[V+3];let tt,wt,pt,Be;if(s){let Fi=QLe(_,S);tt=t.project(_,sNe),wt=t.project(S,aNe);let ks=Lp(wt,tt,Wie);ks.y=Math.abs(ks.y),pt=b9,Be=T9,Fi===0||h.dot(ks,h.UNIT_Y)>Yie?(pt=e1(t,_,ze,tt,b9),Be=e1(t,S,K,wt,T9)):Fi===1?(Be=e1(t,S,K,wt,T9),pt.x=0,pt.y=P.sign(_.longitude-Math.abs(S.longitude)),pt.z=0):(pt=e1(t,_,ze,tt,b9),Be.x=0,Be.y=P.sign(_.longitude-S.longitude),Be.z=0)}let Yt=h.distance(ke,j),Ct=Gn.fromCartesian(Ae,hNe),lt=h.subtract(J,Ae,cNe),tn=h.normalize(lt,Gie),Ce=h.subtract(ke,Ae,lNe);Ce=h.normalize(Ce,Ce);let Te=h.cross(tn,Ce,Gie);Te=h.normalize(Te,Te);let it=h.cross(Ce,ze,fNe);it=h.normalize(it,it);let Wi=h.subtract(j,J,uNe);Wi=h.normalize(Wi,Wi);let ut=h.cross(K,Wi,dNe);ut=h.normalize(ut,ut);let go=Yt/B,Yo=Q/B,Ya=0,Ir,Cs,Le,ot=0,qe=0;if(s){Ya=h.distance(tt,wt),Ir=Gn.fromCartesian(tt,mNe),Cs=h.subtract(wt,tt,Wie),Le=h.normalize(Cs,pNe);let Fi=Le.x;Le.x=Le.y,Le.y=-Fi,ot=Ya/N,qe=de/N}for(U=0;U<8;U++){let Fi=W+U*4,ks=G+U*2,Xr=Fi+3,lf=U<4?1:-1,yo=U===2||U===3||U===6||U===7?1:-1;h.pack(Ct.high,b,Fi),b[Xr]=lt.x,h.pack(Ct.low,T,Fi),T[Xr]=lt.y,h.pack(it,C,Fi),C[Xr]=lt.z,h.pack(ut,A,Fi),A[Xr]=go*lf,h.pack(Te,E,Fi);let Pr=Yo*yo;Pr===0&&yo<0&&(Pr=9),E[Xr]=Pr,s&&(v[Fi]=Ir.high.x,v[Fi+1]=Ir.high.y,v[Fi+2]=Ir.low.x,v[Fi+3]=Ir.low.y,O[Fi]=-pt.y,O[Fi+1]=pt.x,O[Fi+2]=Be.y,O[Fi+3]=-Be.x,D[Fi]=Cs.x,D[Fi+1]=Cs.y,D[Fi+2]=Le.x,D[Fi+3]=Le.y,R[ks]=ot*lf,Pr=qe*yo,Pr===0&&yo<0&&(Pr=9),R[ks+1]=Pr)}let Xe=oNe,dt=rNe,Gt=nNe,wn=iNe,Io=re.fromCartographicArray(eNe,tNe),Jn=li.getMinimumMaximumHeights(Io,u),ls=Jn.minimumTerrainHeight,Xa=Jn.maximumTerrainHeight;ye+=Math.abs(ls),ye+=Math.abs(Xa),kie(Ae,ke,ls,Xa,Xe,Gt),kie(J,j,ls,Xa,dt,wn);let Yr=h.multiplyByScalar(Te,P.EPSILON5,jie);h.add(Xe,Yr,Xe),h.add(dt,Yr,dt),h.add(Gt,Yr,Gt),h.add(wn,Yr,wn),hU(Xe,dt),hU(Gt,wn),h.pack(Xe,x,k),h.pack(dt,x,k+3),h.pack(wn,x,k+6),h.pack(Gt,x,k+9),Yr=h.multiplyByScalar(Te,-2*P.EPSILON5,jie),h.add(Xe,Yr,Xe),h.add(dt,Yr,dt),h.add(Gt,Yr,Gt),h.add(wn,Yr,wn),hU(Xe,dt),hU(Gt,wn),h.pack(Xe,x,k+12),h.pack(dt,x,k+15),h.pack(wn,x,k+18),h.pack(Gt,x,k+21),V+=2,c+=3,G+=16,k+=24,W+=32,Q+=Yt,de+=Ya}c=0;let ae=0;for(a=0;a<f;a++){for(U=0;U<qie;U++)m[c+U]=Jie[U]+ae;ae+=8,c+=qie}let _e=_Ne;se.fromVertices(n,h.ZERO,3,_e[0]),se.fromVertices(i,h.ZERO,3,_e[1]);let xe=se.fromBoundingSpheres(_e);xe.radius+=ye/(f*2);let De={position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:jg(b),startLoAndForwardOffsetY:jg(T),startNormalAndForwardOffsetZ:jg(C),endNormalAndTextureCoordinateNormalizationX:jg(A),rightNormalAndTextureCoordinateNormalizationY:jg(E)};return s&&(De.startHiLo2D=jg(v),De.offsetAndRight2D=jg(D),De.startEndNormals2D=jg(O),De.texcoordNormalization2D=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new at({attributes:De,indices:m,boundingSphere:xe})}function jg(e){return new Se({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}qg._projectNormal=e1;var Dx=qg;var t1=`in vec4 v_startPlaneNormalEcAndHalfWidth; +in vec4 v_endPlaneNormalEcAndBatchId; +in vec4 v_rightPlaneEC; // Technically can compute distance for this here +in vec4 v_endEcAndStartEcX; +in vec4 v_texcoordNormalizationAndStartEcYZ; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +void main(void) +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate); + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var n1=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var i1=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var o1=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var r1=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var _u=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var E9=`${_u} +${r1}`,yNe=Ax;Ht.isInternetExplorer()||(E9=`#define CLIP_POLYLINE +${E9}`);function Ix(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Ix.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,E9),this._fragmentShaderSource=y(e.fragmentShaderSource,yNe),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Ix.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Ix.VERTEX_FORMAT=Ie.POSITION_ONLY;Ix.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Ix.prototype.isTranslucent=no.prototype.isTranslucent;Ix.prototype.getRenderState=no.prototype.getRenderState;var Qr=Ix;var s1=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var Px=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var S9=`${_u} +${s1}`,xNe=Px;Ht.isInternetExplorer()||(S9=`#define CLIP_POLYLINE +${S9}`);function Rx(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=Rx.VERTEX_FORMAT;this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,S9),this._fragmentShaderSource=y(e.fragmentShaderSource,xNe),this._renderState=no.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(Rx.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});Rx.VERTEX_FORMAT=Ie.POSITION_AND_ST;Rx.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;Rx.prototype.isTranslucent=no.prototype.isTranslucent;Rx.prototype.getRenderState=no.prototype.getRenderState;var ca=Rx;function Np(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new ca),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,Vn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=eoe(!1),this._renderState3DTiles=eoe(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(Np.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});Np.initializeTerrainHeights=function(){return li.initialize()};function bNe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(o1);s=Dn._appendShowToShader(o,s),s=Dn._appendDistanceDisplayConditionToShader(o,s),s=Dn._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(i1);a=Dn._appendShowToShader(o,a),a=Dn._appendDistanceDisplayConditionToShader(o,a),a=Dn._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(t1),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new Ue({defines:u,sources:[s]}),m=new Ue({defines:p,sources:[d,c]});e._sp=Qt.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(x)){let T=new Ue({defines:u.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:T,fragmentShaderSource:m,attributeLocations:r})}e._sp2D=x;let b=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(b)){let T=new Ue({defines:u.concat([`MAX_TERRAIN_HEIGHT ${li._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(n1);let C=new Ue({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:C,attributeLocations:r})}e._spMorph=b}function eoe(e){return Ve.fromCache({cull:{enabled:!0},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})}function TNe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof Qr?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];l(g)||(g=o[d]=new Ze({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=ve.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=Ze.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=Ze.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=Ze.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=Ze.shallowClone(g,g.derivedCommands.colorMorph);T.renderState=e._renderStateMorph,T.shaderProgram=e._spMorph,T.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=T}}function toe(e,t,n,i,o,r,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function CNe(e,t,n,i,o,r,s){let a=e._primitive;Dn._updateBoundingVolumes(a,t,o);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&l(a._boundingSphere2D)?c=a._boundingSphere2D:l(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let u=t.mode===ne.MORPHING,f=e.classificationType,d=f!==Vn.CESIUM_3D_TILE,p=f!==Vn.TERRAIN&&!u,g,m=t.passes;if(m.render||m.pick&&a.allowPicking){let x=n.length;for(let b=0;b<x;++b){let T=c[b];d&&(g=n[b],toe(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,toe(e,g,t,o,r,T,s))}}}Np.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!li.initialized){Np.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s=new Array(r),a;for(t=0;t<r;++t)if(a=o[t].attributes,!l(a)||!l(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let u=c.attributes;for(let f in u)u.hasOwnProperty(f)&&(a[f]=u[f]);l(a.width)||(a.width=new sc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,Dx.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new St({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,u,f){bNe(n,u,f)},i._createCommandsFunction=function(c,u,f,d,p,g,m){TNe(n,u,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,u,f,d,p,g,m,x){CNe(n,u,f,d,p,g,m)},this._primitive=new Dn(i)}if(this.appearance instanceof Qr&&!this._hasPerInstanceColors)throw new he("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};Np.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};Np.isSupported=function(e){return e.frameState.context.depthTexture};Np.prototype.isDestroyed=function(){return!1};Np.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var Ld=Np;var ANe=new z(1,1),ENe=!1,SNe=H.WHITE;function lA(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(lA.prototype,{isConstant:{get:function(){return Y.isConstant(this._image)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:le("image"),repeat:le("repeat"),color:le("color"),transparent:le("transparent")});lA.prototype.getType=function(e){return"Image"};var vNe=new Z;lA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(vNe)),l(t)||(t={}),t.image=Y.getValueOrUndefined(this._image,e),t.repeat=Y.getValueOrClonedDefault(this._repeat,e,ANe,t.repeat),t.color=Y.getValueOrClonedDefault(this._color,e,SNe,t.color),Y.getValueOrDefault(this._transparent,e,ENe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};lA.prototype.equals=function(e){return this===e||e instanceof lA&&Y.equals(this._image,e._image)&&Y.equals(this._repeat,e._repeat)&&Y.equals(this._color,e._color)&&Y.equals(this._transparent,e._transparent)};var Yg=lA;function wNe(e){if(e instanceof H)return new Ut(e);if(typeof e=="string"||e instanceof we||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new Yg;return t.image=e,t}}function DNe(e,t){return le(e,t,wNe)}var Ro=DNe;function a1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(a1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),dimensions:le("dimensions"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});a1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new a1(this)};a1.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Ox=a1;var INe={FIXED:0,INERTIAL:1},Vi=Object.freeze(INe);function uA(){he.throwInstantiationError()}Object.defineProperties(uA.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError},referenceFrame:{get:he.throwInstantiationError}});uA.prototype.getValue=he.throwInstantiationError;uA.prototype.getValueInReferenceFrame=he.throwInstantiationError;uA.prototype.equals=he.throwInstantiationError;var noe=new $;uA.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=Mt.computeIcrfToCentralBodyFixedMatrix(e,noe);if(n===Vi.INERTIAL)return $.multiplyByVector(r,t,o);if(n===Vi.FIXED)return $.multiplyByVector($.transpose(r,noe),t,o)};var Nd=uA;function Mx(e,t){this._definitionChanged=new me,this._value=h.clone(e),this._referenceFrame=y(t,Vi.FIXED)}Object.defineProperties(Mx.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===Vi.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var PNe=new Z;Mx.prototype.getValue=function(e,t){return l(e)||(e=Z.now(PNe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Mx.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};Mx.prototype.getValueInReferenceFrame=function(e,t,n){return Nd.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};Mx.prototype.equals=function(e){return this===e||e instanceof Mx&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var Gc=Mx;function c1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(c1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});c1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new c1(this)};c1.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Lx=c1;function RNe(e){return e}function ONe(e,t){return le(e,t,RNe)}var Pl=ONe;function l1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(l1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),length:le("length"),topRadius:le("topRadius"),bottomRadius:le("bottomRadius"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),slices:le("slices"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});l1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new l1(this)};l1.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Nx=l1;function u1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(u1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),semiMajorAxis:le("semiMajorAxis"),semiMinorAxis:le("semiMinorAxis"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});u1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new u1(this)};u1.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Fx=u1;function f1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(f1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),radii:le("radii"),innerRadii:le("innerRadii"),minimumClock:le("minimumClock"),maximumClock:le("maximumClock"),minimumCone:le("minimumCone"),maximumCone:le("maximumCone"),heightReference:le("heightReference"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),stackPartitions:le("stackPartitions"),slicePartitions:le("slicePartitions"),subdivisions:le("subdivisions"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});f1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new f1(this)};f1.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Bx=f1;function d1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(d1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),text:le("text"),font:le("font"),style:le("style"),scale:le("scale"),showBackground:le("showBackground"),backgroundColor:le("backgroundColor"),backgroundPadding:le("backgroundPadding"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),fillColor:le("fillColor"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),scaleByDistance:le("scaleByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance")});d1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new d1(this)};d1.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var Fd=d1;var MNe=new h(1,1,1),LNe=h.ZERO,NNe=Oe.IDENTITY;function ioe(e,t,n){this.translation=h.clone(y(e,LNe)),this.rotation=Oe.clone(y(t,NNe)),this.scale=h.clone(y(n,MNe))}ioe.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&Oe.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var Xg=ioe;var v9=new Xg;function h1(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(h1.prototype,{isConstant:{get:function(){return Y.isConstant(this._translation)&&Y.isConstant(this._rotation)&&Y.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:le("translation"),rotation:le("rotation"),scale:le("scale")});var FNe=new Z;h1.prototype.getValue=function(e,t){return l(e)||(e=Z.now(FNe)),l(t)||(t=new Xg),t.translation=Y.getValueOrClonedDefault(this._translation,e,v9.translation,t.translation),t.rotation=Y.getValueOrClonedDefault(this._rotation,e,v9.rotation,t.rotation),t.scale=Y.getValueOrClonedDefault(this._scale,e,v9.scale,t.scale),t};h1.prototype.equals=function(e){return this===e||e instanceof h1&&Y.equals(this._translation,e._translation)&&Y.equals(this._rotation,e._rotation)&&Y.equals(this._scale,e._scale)};var kx=h1;function Fp(e,t){this._propertyNames=[],this._definitionChanged=new me,l(e)&&this.merge(e,t)}Object.defineProperties(Fp.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!Y.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});Fp.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function BNe(e){return new Kn(e)}Fp.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,le(e,!0,y(n,BNe))),l(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};Fp.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};var kNe=new Z;Fp.prototype.getValue=function(e,t){l(e)||(e=Z.now(kNe)),l(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=Y.getValueOrUndefined(this[r],e,t[r])}return t};Fp.prototype.merge=function(e,t){let n=this._propertyNames,i=l(e._propertyNames)?e._propertyNames:Object.keys(e);for(let o=0,r=i.length;o<r;o++){let s=i[o],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?l(a)&&l(a.merge)&&a.merge(c):l(c)&&l(c.merge)&&l(c.clone)?this[s]=c.clone():this[s]=c)}};function VNe(e,t){let n=e._propertyNames,i=t._propertyNames,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;++r){let s=n[r];if(i.indexOf(s)===-1||!Y.equals(e[s],t[s]))return!1}return!0}Fp.prototype.equals=function(e){return this===e||e instanceof Fp&&VNe(this,e)};var Rl=Fp;function ooe(e){return new kx(e)}function UNe(e){return new Rl(e,ooe)}function zNe(e){return new Rl(e)}function m1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._hasVerticalExaggeration=void 0,this._hasVerticalExaggerationSubscription=void 0,this._enableVerticalExaggeration=void 0,this._enableVerticalExaggerationSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(m1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),scale:le("scale"),enableVerticalExaggeration:le("enableVerticalExaggeration"),minimumPixelSize:le("minimumPixelSize"),maximumScale:le("maximumScale"),incrementallyLoadTextures:le("incrementallyLoadTextures"),runAnimations:le("runAnimations"),clampAnimations:le("clampAnimations"),shadows:le("shadows"),heightReference:le("heightReference"),silhouetteColor:le("silhouetteColor"),silhouetteSize:le("silhouetteSize"),color:le("color"),colorBlendMode:le("colorBlendMode"),colorBlendAmount:le("colorBlendAmount"),imageBasedLightingFactor:le("imageBasedLightingFactor"),lightColor:le("lightColor"),distanceDisplayCondition:le("distanceDisplayCondition"),nodeTransformations:le("nodeTransformations",void 0,UNe),articulations:le("articulations",void 0,zNe),clippingPlanes:le("clippingPlanes"),customShader:le("customShader")});m1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.enableVerticalExaggeration=this.enableVerticalExaggeration,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new m1(this)};m1.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.enableVerticalExaggeration=y(this.enableVerticalExaggeration,e.enableVerticalExaggeration),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(l(t)){let i=this.nodeTransformations;l(i)?i.merge(t):this.nodeTransformations=new Rl(t,ooe)}let n=e.articulations;if(l(n)){let i=this.articulations;l(i)?i.merge(n):this.articulations=new Rl(n)}};var Bp=m1;function p1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(p1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),maximumScreenSpaceError:le("maximumScreenSpaceError")});p1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new p1(this)};p1.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var Vx=p1;function _1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(_1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),leadTime:le("leadTime"),trailTime:le("trailTime"),width:le("width"),resolution:le("resolution"),material:Ro("material"),distanceDisplayCondition:le("distanceDisplayCondition")});_1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new _1(this)};_1.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var kp=_1;function g1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(g1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),plane:le("plane"),dimensions:le("dimensions"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});g1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new g1(this)};g1.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var y1=g1;function x1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(x1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),pixelSize:le("pixelSize"),heightReference:le("heightReference"),color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});x1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e.splitDirection=this.splitDirection,e):new x1(this)};x1.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance),this.splitDirection=y(this.splitDirection,e.splitDirection)};var Ux=x1;function HNe(e,t){this.positions=l(e)?e:[],this.holes=l(t)?t:[]}var Oa=HNe;function GNe(e){return Array.isArray(e)&&(e=new Oa(e)),new Kn(e)}function b1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(b1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),hierarchy:le("hierarchy",void 0,GNe),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),perPositionHeight:le("perPositionHeight"),closeTop:le("closeTop"),closeBottom:le("closeBottom"),arcType:le("arcType"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex"),textureCoordinates:le("textureCoordinates")});b1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new b1(this)};b1.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var Bd=b1;function T1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(T1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),granularity:le("granularity"),material:Ro("material"),depthFailMaterial:Ro("depthFailMaterial"),arcType:le("arcType"),clampToGround:le("clampToGround"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});T1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new T1(this)};T1.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var ac=T1;function C1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(C1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),shape:le("shape"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});C1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new C1(this)};C1.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var zx=C1;function A1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(A1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),coordinates:le("coordinates"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});A1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new A1(this)};A1.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var kd=A1;function E1(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(E1.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),minimumHeights:le("minimumHeights"),maximumHeights:le("maximumHeights"),granularity:le("granularity"),fill:le("fill"),material:Ro("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});E1.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new E1(this)};E1.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var Vp=E1;var WNe=new fe,w9=[];function jNe(e){return new Gc(e)}function qNe(e){return le(e,void 0,jNe)}function Gs(e,t){return le(e,void 0,function(n){return n instanceof t?n:new t(n)})}function Sf(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;l(t)||(t=Hn()),this._availability=void 0,this._id=t,this._definitionChanged=new me,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall",...w9],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function D9(e,t,n){let i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r._show;(!n&&s)!==(n&&s)&&D9(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(Sf.prototype,{availability:Pl("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:Pl("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&D9(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!l(this.entityCollection)||this.entityCollection.show)&&(!l(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(l(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,l(e)&&e._children.push(this);let i=this.isShowing;n!==i&&D9(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Gs("billboard",oc),box:Gs("box",Ox),corridor:Gs("corridor",Lx),cylinder:Gs("cylinder",Nx),description:le("description"),ellipse:Gs("ellipse",Fx),ellipsoid:Gs("ellipsoid",Bx),label:Gs("label",Fd),model:Gs("model",Bp),tileset:Gs("tileset",Vx),orientation:le("orientation"),path:Gs("path",kp),plane:Gs("plane",y1),point:Gs("point",Ux),polygon:Gs("polygon",Bd),polyline:Gs("polyline",ac),polylineVolume:Gs("polylineVolume",zx),properties:Gs("properties",Rl),position:qNe("position"),rectangle:Gs("rectangle",kd),viewFrom:le("viewFrom"),wall:Gs("wall",Vp)});Sf.registerEntityType=function(e,t){Object.defineProperties(Sf.prototype,{[e]:Gs(e,t)}),w9.includes(e)||w9.push(e)};Sf.prototype.isAvailable=function(e){let t=this._availability;return!l(t)||t.contains(e)};Sf.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,Pl(e,!0))};Sf.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};Sf.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=l(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r==="parent"||r==="name"||r==="availability"||r==="children")continue;let s=this[r],a=e[r];!l(s)&&t.indexOf(r)===-1&&this.addProperty(r),l(a)&&(l(s)?l(s.merge)&&s.merge(a):l(a.merge)&&l(a.clone)?this[r]=a.clone():this[r]=a)}};var roe=new $,soe=new h,aoe=new Oe;Sf.prototype.computeModelMatrix=function(e,t){let n=Y.getValueOrUndefined(this._position,e,soe);if(!l(n))return;let i=Y.getValueOrUndefined(this._orientation,e,aoe);return l(i)?t=F.fromRotationTranslation($.fromQuaternion(i,roe),n,t):t=Mt.eastNorthUpToFixedFrame(n,void 0,t),t};Sf.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=Y.getValueOrDefault(t,e,Ye.NONE),s=Y.getValueOrUndefined(this._position,e,soe);if(r===Ye.NONE||!l(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,WNe);Af(r)?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=Y.getValueOrUndefined(this._orientation,e,aoe);return l(c)?o=F.fromRotationTranslation($.fromQuaternion(c,roe),s,o):o=Mt.eastNorthUpToFixedFrame(s,void 0,o),o};Sf.supportsMaterialsforEntitiesOnTerrain=function(e){return zc.supportsMaterials(e)};Sf.supportsPolylinesOnTerrain=function(e){return Ld.isSupported(e)};var er=Sf;var YNe=new Ut(H.WHITE),XNe=new Kn(!0),KNe=new Kn(!0),ZNe=new Kn(!1),$Ne=new Kn(H.BLACK),QNe=new Kn(yn.DISABLED),JNe=new Kn(new Lt),eFe=new Kn(Vn.BOTH);function Wc(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new me,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=er.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Wc.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});Wc.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};Wc.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};Wc.prototype.createFillGeometryInstance=he.throwInstantiationError;Wc.prototype.createOutlineGeometryInstance=he.throwInstantiationError;Wc.prototype.isDestroyed=function(){return!1};Wc.prototype.destroy=function(){ue(this)};Wc.prototype._isHidden=function(e,t){let n=t.show;return l(n)&&n.isConstant&&!n.getValue(He.MINIMUM_VALUE)};Wc.prototype._isOnTerrain=function(e,t){return!1};Wc.prototype._getIsClosed=function(e){return!0};Wc.prototype._isDynamic=he.throwInstantiationError;Wc.prototype._setStaticOptions=he.throwInstantiationError;Wc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=l(r)&&r.isConstant?r.getValue(He.MINIMUM_VALUE):!0,a=o.outline,c=l(a);if(c&&a.isConstant&&(c=a.getValue(He.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let u=o.show;if(this._isHidden(e,o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(o.material,YNe),this._fillProperty=y(r,KNe),this._showProperty=y(u,XNe),this._showOutlineProperty=y(o.outline,ZNe),this._outlineColorProperty=c?y(o.outlineColor,$Ne):void 0,this._shadowsProperty=y(o.shadows,QNe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,JNe),this._classificationTypeProperty=y(o.classificationType,eFe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Ut);if(c&&f&&(xt(xt.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,o))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,o),this._isClosed=this._getIsClosed(this._options);let d=o.outlineWidth;this._outlineWidth=l(d)?d.getValue(He.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Wc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ii=Wc;function fA(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties(fA.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});var tFe=new Z;fA.prototype.getValue=function(e,t){return l(e)||(e=Z.now(tFe)),this._callback(e,t)};fA.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};fA.prototype.equals=function(e){return this===e||e instanceof fA&&this._callback===e._callback&&this._isConstant===e._isConstant};var Vd=fA;var coe=new h;function dA(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new h,this._cartographicPosition=new fe,this._normal=new h,this._definitionChanged=new me,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(l(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(He.MINIMUM_VALUE,coe);if(!l(r)||h.equals(r,h.ZERO)||!l(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(dA.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});dA.prototype._updateClamping=function(){l(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=this._position;if(h.equals(t,h.ZERO)){this._terrainHeight=0;return}let i=e.ellipsoid.cartesianToCartographic(t,this._cartographicPosition),o=e.getHeight(i,this._heightReference);l(o)?this._terrainHeight=o:this._terrainHeight=0;let r=s=>{this._terrainHeight=s.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(i,r,this._heightReference)};var nFe=new Z;dA.prototype.getValue=function(e,t){l(e)||(e=Z.now(nFe));let n=Y.getValueOrDefault(this._heightReference,e,Ye.NONE),i=Y.getValueOrDefault(this._extrudedHeightReference,e,Ye.NONE);if(n===Ye.NONE&&!JC(i))return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,coe);if(!l(r)||h.equals(r,h.ZERO)||!l(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,P.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};dA.prototype.isDestroyed=function(){return!1};dA.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var Hx=dA;function iFe(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Vd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Hx(this._scene,s,r)}}var Up=iFe;var loe=h.ZERO,uoe=new h,oFe=new h,foe=new H;function rFe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function gu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new rFe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&(gu.prototype=Object.create(ii.prototype),gu.prototype.constructor=gu);Object.defineProperties(gu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});gu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,foe)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,loe,uoe))),new St({id:t,geometry:Da.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:s})};gu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,foe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,loe,uoe))),new St({id:t,geometry:Md.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:r})};gu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};gu.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};gu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};gu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};gu.prototype._onEntityPropertyChanged=Up;gu.DynamicGeometryUpdater=hA;function hA(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(hA.prototype=Object.create(ni.prototype),hA.prototype.constructor=hA);hA.prototype._isHidden=function(e,t,n){let i=Y.getValueOrUndefined(e.position,n,oFe),o=this._options.dimensions;return!l(i)||!l(o)||ni.prototype._isHidden.call(this,e,t,n)};hA.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),o=this._options;o.dimensions=Y.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==Ye.NONE?an.ALL:void 0};var S1=gu;function Gx(e,t,n){this._callback=void 0,this._isConstant=void 0,this._referenceFrame=y(n,Vi.FIXED),this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties(Gx.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var sFe=new Z;Gx.prototype.getValue=function(e,t){return l(e)||(e=Z.now(sFe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Gx.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};Gx.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._callback(e,n);return Nd.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Gx.prototype.equals=function(e){return this===e||e instanceof Gx&&this._callback===e._callback&&this._isConstant===e._isConstant&&this._referenceFrame===e._referenceFrame};var v1=Gx;var woe=Vo(voe(),1);var wFe=0,F9={};function lm(e,t){let n,i=e;l(F9[i])?n=F9[i]:(n=wFe++,F9[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(lm.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!l(this._element)){let e=woe.default.sanitize(this._html),t=document.createElement("div");t.className="cesium-credit-wrapper",t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});lm.equals=function(e,t){return e===t||l(e)&&l(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};lm.prototype.equals=function(e){return lm.equals(this,e)};lm.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};lm.getIonCredit=function(e){let t=l(e.collapsible)&&!e.collapsible;return new lm(e.html,t)};lm.clone=function(e){if(l(e))return new lm(e.html,e.showOnScreen)};var vt=lm;function jx(e){this._url=e,this._cubeMapBuffers=void 0,this._texture=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new me}Object.defineProperties(jx.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});jx.isSupported=function(e){return(e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat)&&e.supportsTextureLod};function B9(e){e._cubeMapBuffers=void 0}jx.prototype.update=function(e){let{context:t}=e;if(!jx.isSupported(t))return;if(l(this._texture)){B9(this);return}if(!l(this._texture)&&!this._loading){let f=t.textureCache.getTexture(this._url);l(f)&&(B9(this),this._texture=f,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!l(n)&&!this._loading){let f=this;Sl(this._url).then(function(d){f._cubeMapBuffers=d,f._loading=!1}).catch(function(d){f.isDestroyed()||f._errorEvent.raiseEvent(d)}),this._loading=!0}if(!l(this._cubeMapBuffers))return;let{pixelDatatype:i}=n[0].positiveX;l(i)||(i=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT);let o=Je.RGBA,r=n.length;this._maximumMipmapLevel=r-1;let s=n[0].positiveX.width,a=Math.log2(s)+1;if(r!==a){let f={};Object.values(br.FaceName).forEach(d=>{f[d]=void 0});for(let d=r;d<a;d++)n.push(f)}let c=new $t({minificationFilter:Zt.LINEAR_MIPMAP_LINEAR}),u=new br({context:t,source:n[0],flipY:!1,pixelDatatype:i,pixelFormat:o,sampler:c});u.loadMipmaps(n.slice(1)),this._texture=u,this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture),this._ready=!0};jx.prototype.isDestroyed=function(){return!1};jx.prototype.destroy=function(){return B9(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var zd=jx;function O1(e){e=y(e,y.EMPTY_OBJECT);let t=l(e.imageBasedLightingFactor)?z.clone(e.imageBasedLightingFactor):new z(1,1);this._imageBasedLightingFactor=t;let n=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=n,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentCubeMap=void 0,this._specularEnvironmentCubeMapDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=z.clone(t),this._previousSphericalHarmonicCoefficients=n,this._removeErrorListener=void 0}Object.defineProperties(O1.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=z.clone(e,this._imageBasedLightingFactor)}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentCubeMapDirty=this._specularEnvironmentCubeMapDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},specularEnvironmentCubeMap:{get:function(){return this._specularEnvironmentCubeMap}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready||this._useDefaultSpecularMaps}}});function DFe(e,t){if(zd.isSupported(t)){if(e._specularEnvironmentCubeMap=e._specularEnvironmentCubeMap&&e._specularEnvironmentCubeMap.destroy(),l(e._specularEnvironmentMaps)){let n=new zd(e._specularEnvironmentMaps);e._specularEnvironmentCubeMap=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}O1.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;z.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=z.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentCubeMapDirty&&(DFe(this,t),this._specularEnvironmentCubeMapDirty=!1),l(this._specularEnvironmentCubeMap)&&(this._specularEnvironmentCubeMap.update(e),this._specularEnvironmentCubeMap.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};O1.prototype.isDestroyed=function(){return!1};O1.prototype.destroy=function(){return this._specularEnvironmentCubeMap=this._specularEnvironmentCubeMap&&this._specularEnvironmentCubeMap.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var qx=O1;var V9=Vo(au(),1);var k9,Doe="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiZjBmMDE4Ny05M2JlLTRlMzgtYjIxYi05YmJjM2QwMzJkYWMiLCJpZCI6MjU5LCJpYXQiOjE3MzA0NjY3MDl9.t-7gCGPUe-oGCyCoeXPtYmlMVdgqUQD9mn-Da23yUoI",yU={};yU.defaultAccessToken=Doe;yU.defaultServer=new we({url:"https://api.cesium.com/"});yU.getDefaultTokenCredit=function(e){if(e===Doe){if(!l(k9)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;k9=new vt(t,!0)}return k9}};var Hd=yU;function Yc(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:IFe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ce("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");we.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new V9.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(Yc.prototype=Object.create(we.prototype),Yc.prototype.constructor=Yc);Yc.fromAssetId=function(e,t){let n=Yc._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Yc(i,n)})};Object.defineProperties(Yc.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Yc.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Yc.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(vt.getIonCredit),i=Hd.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(vt.clone(i)),n};Yc.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new Yc(t._ionEndpoint,t._ionEndpointResource)),e=we.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Yc.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return we.prototype.fetchImage.call(this,e)};Yc.prototype._makeRequest=function(e){return this._isExternal||new V9.default(this.url).authority()!==this._ionEndpointDomain?we.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),we.prototype._makeRequest.call(this,e))};Yc._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Hd.defaultServer),i=y(t.accessToken,Hd.defaultAccessToken);n=we.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function IFe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var xu=Yc;function um(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(um.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});um.prototype.get=function(e){return this._array[e]};um.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};um.prototype.peek=function(){return this._array[this._length-1]};um.prototype.push=function(e){let t=this.length++;this._array[t]=e};um.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};um.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};um.prototype.resize=function(e){this.length=e};um.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var Xc=um;var zp={X:0,Y:1,Z:2};zp.Y_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));zp.Z_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));zp.X_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));zp.Z_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));zp.X_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));zp.Y_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));zp.fromName=function(e){return zp[e]};var Oo=Object.freeze(zp);function Ioe(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(Ioe.prototype,{metadata:{get:function(){return this._metadata}}});var Yx=Ioe;function Kg(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),Kg.decode(e)}Kg.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};Kg.decodeWithFromCharCode=function(e){let t="",n=PFe(e),i=n.length;for(let o=0;o<i;++o){let r=n[o];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t};function M1(e,t,n){return t<=e&&e<=n}function PFe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let u=e[c];if(i===0){if(M1(u,0,127)){s.push(u);continue}if(M1(u,194,223)){i=1,t=u&31;continue}if(M1(u,224,239)){u===224&&(o=160),u===237&&(r=159),i=2,t=u&15;continue}if(M1(u,240,244)){u===240&&(o=144),u===244&&(r=143),i=3,t=u&7;continue}throw new ce("String decoding failed.")}if(!M1(u,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|u&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?Kg.decode=Kg.decodeWithTextDecoder:Kg.decode=Kg.decodeWithFromCharCode;var Ol=Kg;function RFe(e,t){return t=y(t,0),Ol(e,t,Math.min(4,e.length))}var Gd=RFe;function wf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,l(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(wf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var L1=Uint32Array.BYTES_PER_ELEMENT;wf.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=L1;let c=a.getUint32(o,!0);if(c!==1)throw new ce(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=L1,o+=L1;let u=a.getUint32(o,!0);o+=L1;let f=n.queryParameters.compositeIndex;l(f)?f=`${f}_`:f="";let d=[];d.length=u;for(let m=0;m<u;++m){let x=Gd(s,o),b=a.getUint32(o+L1*2,!0),T=r[x],C=`${f}${m}`,A=n.getDerivedResource({queryParameters:{compositeIndex:C}});if(l(T))d[m]=Promise.resolve(T(e,t,A,i,o));else throw new ce(`Unknown tile content type, ${x}, inside Composite tile`);o+=b}let p=await Promise.all(d);return new wf(e,t,n,p)};wf.prototype.hasProperty=function(e,t){return!1};wf.prototype.getFeature=function(e){};wf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};wf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};wf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};wf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};wf.prototype.isDestroyed=function(){return!1};wf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var N1=wf;function OFe(e,t,n){return JSON.parse(Ol(e,t,n))}var Mo=OFe;function cc(e){this._id=Hn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let o=Math.min(t,kt.maximumTextureSize),r=Math.ceil(t/kt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new z(o,r),i=new oe(s,a,c,u)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(cc.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});cc.DEFAULT_COLOR_VALUE=H.WHITE;cc.DEFAULT_SHOW_VALUE=!0;function Poe(e){let t=e._textureDimensions;return t.x*t.y*4}function Roe(e){if(!l(e._batchValues)){let t=Poe(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Ooe(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}cc.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=Ooe(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Roe(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};cc.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};cc.prototype.getShow=function(e){if(!l(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var MFe=new Array(4);cc.prototype.setColor=function(e,t){if(H.equals(t,cc.DEFAULT_COLOR_VALUE)&&!l(this._batchValues))return;let n=t.toBytes(MFe),i=n[3],o=Roe(this),r=e*4,s=Ooe(this),a=e*2;if(o[r]!==n[0]||o[r+1]!==n[1]||o[r+2]!==n[2]||s[a+1]!==i){o[r]=n[0],o[r+1]=n[1],o[r+2]=n[2];let c=s[a+1]!==255,u=s[a]!==0;o[r+3]=u?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,l(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};cc.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};cc.prototype.getColor=function(e,t){if(!l(this._batchValues))return H.clone(cc.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return H.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};cc.prototype.getPickColor=function(e){return this._pickIds[e]};function Moe(e,t,n){let i=e._textureDimensions;return new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:$t.NEAREST})}function LFe(e,t){let n=e._featuresLength;if(!l(e._pickTexture)&&n>0){let i=e._pickIds,o=Poe(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let u=t.createPickId(s.getFeature(c));i.push(u);let f=u.color,d=c*4;r[d]=H.floatToByte(f.red),r[d+1]=H.floatToByte(f.green),r[d+2]=H.floatToByte(f.blue),r[d+3]=H.floatToByte(f.alpha)}e._pickTexture=Moe(e,t,r),l(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function NFe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}cc.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&LFe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,l(this._batchTexture)||(this._batchTexture=Moe(this,n,this._batchValues),l(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),NFe(this))};cc.prototype.isDestroyed=function(){return!1};cc.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Kc=cc;var FFe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},BFe={SCALAR:void 0,VEC2:z,VEC3:h,VEC4:oe,MAT2:Bi,MAT3:$,MAT4:F};function kFe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=FFe[e.type],o=BFe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var bu=kFe;function Hp(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,VFe(this,e.extension,e.binaryBody)}Object.defineProperties(Hp.prototype,{byteLength:{get:function(){return this._byteLength}}});function VFe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,u=t.parentCounts,f=t.parentIds,d=s,p=0;l(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=on.SCALAR,r=bu(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(l(u)){for(l(u.byteOffset)&&(u.componentType=y(u.componentType,X.UNSIGNED_SHORT),u.type=on.SCALAR,r=bu(u),u=r.createArrayBufferView(n.buffer,n.byteOffset+u.byteOffset,s),p+=u.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=u[i];p+=g.byteLength}l(f)&&l(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=on.SCALAR,r=bu(f),f=r.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let m=a.length;for(i=0;i<m;++i){let T=a[i].length,C=a[i].instances,A=UFe(T,C,n);p+=zFe(A),a[i].instances=yt(A,C)}let x=new Array(m).fill(0),b=new Uint16Array(s);for(i=0;i<s;++i)o=c[i],b[i]=x[o],++x[o];p+=b.byteLength,e._classes=a,e._classIds=c,e._classIndexes=b,e._parentCounts=u,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function UFe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function zFe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var HFe=[],GFe=[],WFe=0;function jFe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=HFe;c.length=Math.max(c.length,a);let u=++WFe,f=GFe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(d))return d;let p=o[t],g=s[t];for(let m=0;m<p;++m){let x=r[g+m];x!==t&&f.push(x)}}}function qFe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(l(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function F1(e,t,n){let i=e._parentCounts,o=e._parentIds;if(l(o)){if(l(i))return jFe(e,t,n)}else return n(e,t);return qFe(e,t,n)}Hp.prototype.hasProperty=function(e,t){let n=F1(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(l(s[t]))return!0});return l(n)};Hp.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(l(o[e]))return!0}return!1};Hp.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,F1(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o].instances;for(let s in r)r.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};Hp.prototype.getProperty=function(e,t){return F1(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(l(a))return l(a.typedArray)?YFe(a,s):Ge(a[s],!0)})};function YFe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}Hp.prototype.setProperty=function(e,t,n){let i=F1(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],u=a.instances[t];if(l(u))return l(u.typedArray)?XFe(u,c,n):u[c]=Ge(n,!0),!0});return l(i)};function XFe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}Hp.prototype.isClass=function(e,t){let n=F1(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return l(n)};Hp.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var Xx=Hp;var KFe={HIGHLIGHT:0,REPLACE:1,MIX:2},Ml=Object.freeze(KFe);var U9=Kc.DEFAULT_COLOR_VALUE,z9=Kc.DEFAULT_SHOW_VALUE;function ho(e,t,n,i,o){this.featuresLength=t;let r;l(n)&&(r=n.extensions),this._extensions=y(r,{});let s=ZFe(n);this._properties=s,this._batchTableHierarchy=$Fe(this,n,i);let a=Noe(t,s,i);this._binaryPropertiesByteLength=QFe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new Kc({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}ho._deprecationWarning=ds;Object.defineProperties(ho.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function ZFe(e){let t={};if(!l(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=Ge(e[n],!0));return t}function $Fe(e,t,n){if(!l(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(l(o)&&(ho._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=o,i=o),!!l(i))return new Xx({extension:i,binaryBody:n})}function Noe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=bu(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function QFe(e){if(!l(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}ho.getBinaryProperties=function(e,t,n){return Noe(e,t,n)};ho.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};ho.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};ho.prototype.getShow=function(e){return this._batchTexture.getShow(e)};ho.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};ho.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};ho.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};ho.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var JFe=new H;ho.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(U9),this.setAllShow(z9);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=l(e.color)?y(e.color.evaluateColor(o,JFe),U9):U9,s=l(e.show)?y(e.show.evaluate(o),z9):z9;this.setColor(i,r),this.setShow(i,s)}};function e2e(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function t2e(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}ho.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};ho.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};ho.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};ho.prototype.hasProperty=function(e,t){return l(this._properties[t])||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};ho.prototype.hasPropertyBySemantic=function(){return!1};ho.prototype.getPropertyIds=function(e,t){t=l(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};ho.prototype.getPropertyBySemantic=function(e,t){};ho.prototype.getProperty=function(e,t){if(l(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(l(i))return e2e(i,e)}let n=this._properties[t];if(l(n))return Ge(n[e],!0);if(l(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(l(i))return i}};ho.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(l(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(l(r)){t2e(r,e,n);return}}if(l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];l(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=Ge(n,!0)};function n2e(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + return vec2(centerX + (batchId * stepX), 0.5); +} +`:`uniform vec4 tile_textureStep; +uniform vec2 tile_textureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + float stepY = tile_textureStep.z; + float centerY = tile_textureStep.w; + float xId = mod(batchId, tile_textureDimensions.x); + float yId = floor(batchId / tile_textureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}ho.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=Foe(o,n,!1),s;return kt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${n2e(i)}${s}`}};function Loe(e,t){return e=Ue.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function i2e(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u<e.length;++u){let f=e.charAt(u);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=u+1;break}}let c=`tile_diffuse_final(${e.slice(o,r)}, tile_diffuse)`;e=e.slice(0,o)+c+e.slice(r),i=o+c.length,o=e.indexOf(n,i)}return e}function Foe(e,t,n){if(!l(t))return Loe(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!l(o))return Loe(e,n);let r=o[0],s=o[2];e=Ue.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} +vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) +{ + vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); + vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; + return vec4(diffuse.rgb, sourceDiffuse.a); +} +`,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +`,u;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),u=` vec4 source = ${f}; + tile_diffuse = tile_diffuse_final(source, tile_featureColor); + tile_main(); +`}else s==="sampler2D"&&(e=i2e(e,t),u=` tile_diffuse = tile_featureColor; + tile_main(); +`);return e=`uniform float tile_colorBlend; +vec4 tile_diffuse = vec4(1.0); +${a}${r} +${e} +void tile_color(vec4 tile_featureColor) +{ +${u}`,n&&(e+=c),e+=`} +`,e}ho.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=Foe(i,t,!0),kt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};ho.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=Ue.replaceMain(e,"tile_main"),kt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function o2e(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Ml.HIGHLIGHT)return 0;if(n===Ml.REPLACE)return 1;if(n===Ml.MIX)return P.clamp(i,P.EPSILON4,1)}ho.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return yt(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return o2e(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};ho.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Zg={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};ho.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=r2e(this);for(let u=t;u<i;++u){let f=n[u];if(f.pass===ve.COMPUTE)continue;let d=f.derivedCommands.tileset;(!l(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=s2e(f),f.dirty=!1);let p=d.originalCommand;c!==Zg.ALL_OPAQUE&&f.pass!==ve.TRANSLUCENT&&(l(d.translucent)||(d.translucent=a2e(p))),c!==Zg.ALL_TRANSLUCENT&&f.pass!==ve.TRANSLUCENT&&(l(d.opaque)||(d.opaque=c2e(p)),a&&(r||(l(d.zback)||(d.zback=u2e(e.context,p)),s._backfaceCommands.push(d.zback)),(!l(d.stencil)||o._selectionDepth!==d2e(d.stencil))&&(f.renderState.depthMask?d.stencil=f2e(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==ve.TRANSLUCENT?(c===Zg.ALL_OPAQUE&&(n[u]=g),c===Zg.ALL_TRANSLUCENT&&(n[u]=m),c===Zg.OPAQUE_AND_TRANSLUCENT&&(n[u]=g,n.push(m))):n[u]=p}};function r2e(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Zg.ALL_OPAQUE:t===e.featuresLength?Zg.ALL_TRANSLUCENT:Zg.OPAQUE_AND_TRANSLUCENT}function s2e(e){let t=Ze.shallowClone(e),n=t.pass===ve.TRANSLUCENT;return t.uniformMap=l(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function a2e(e){let t=Ze.shallowClone(e);return t.pass=ve.TRANSLUCENT,t.renderState=h2e(e.renderState),t}function c2e(e){let t=Ze.shallowClone(e);return t.renderState=m2e(e.renderState),t}function l2e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!l(n)){let i=t.fragmentShaderSource.clone();i.defines=l(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function u2e(e,t){let n=Ze.shallowClone(t),i=Ge(n.renderState,!0);i.cull.enabled=!0,i.cull.face=gi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Vt.setCesium3DTileBit(),i.stencilMask=Vt.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=Ge(t.uniformMap);let o=new z(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=l2e(e,t.shaderProgram),n}function f2e(e,t){let n=Ze.shallowClone(e),i=Ge(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Vt.SKIP_LOD_MASK,i.stencilTest.reference=Vt.CESIUM_3D_TILE_MASK|t<<Vt.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Un.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=ft.REPLACE,i.stencilTest.backFunction=Un.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=ft.REPLACE,i.stencilMask=Vt.CESIUM_3D_TILE_MASK|Vt.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function d2e(e){return(e.renderState.stencilTest.reference&Vt.SKIP_LOD_MASK)>>>Vt.SKIP_LOD_BIT_SHIFT}function h2e(e){let t=Ge(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=un.ALPHA_BLEND,t.stencilTest=Vt.setCesium3DTileBit(),t.stencilMask=Vt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function m2e(e){let t=Ge(e,!0);return t.stencilTest=Vt.setCesium3DTileBit(),t.stencilMask=Vt.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}ho.prototype.update=function(e,t){this._batchTexture.update(e,t)};ho.prototype.isDestroyed=function(){return!1};ho.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var Gp=ho;function p2e(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var fm=p2e;var mA=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;function Df(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(Df.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new H),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});Df.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};Df.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};Df.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};Df.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};Df.prototype.getPropertyInherited=function(e){return Df.getPropertyInherited(this._content,this._batchId,e)};Df.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};Df.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};Df.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};Df.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Ws=Df;var H9=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},G9=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},Ll=class e{static get version(){return"1.3.9"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index<this.expr.length;)if(i=this.code,i===e.SEMCOL_CODE||i===e.COMMA_CODE)this.index++;else if(o=this.gobbleExpression())n.push(o);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,e.max_binop_len),n=t.length;for(;n>0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,o,r,s,a,c,u;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(r={value:n,prec:e.binaryPrecedence(n),right_a:e.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),o=[s,r,a];n=this.gobbleBinaryOp();){if(i=e.binaryPrecedence(n),i===0){this.index-=n.length;break}r={value:n,prec:i,right_a:e.right_associative.has(n)},u=n;let f=d=>r.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let r=this.gobbleToken();return r||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:e.UNARY_EXP,operator:n,argument:r,prefix:!0})}n=n.substr(0,--i)}e.isIdentifierStart(t)?(o=this.gobbleIdentifier(),e.literals.hasOwnProperty(o.name)?o={type:e.LITERAL,value:e.literals[o.name],raw:o.name}:o.name===e.this_str&&(o={type:e.THIS_EXP})):t===e.OPAREN_CODE&&(o=this.gobbleGroup())}return o?(o=this.gobbleTokenProperty(o),this.runHook("after-token",o)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===e.PERIOD_CODE||n===e.OBRACK_CODE||n===e.OPAREN_CODE||n===e.QUMARK_CODE;){let i;if(n===e.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==e.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===e.OBRACK_CODE?(t={type:e.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},t.property||this.throwError('Unexpected "'+this.char+'"'),this.gobbleSpaces(),n=this.code,n!==e.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===e.OPAREN_CODE?t={type:e.CALL_EXP,arguments:this.gobbleArguments(e.CPAREN_CODE),callee:t}:(n===e.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:e.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===e.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,e.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===e.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===e.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:e.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),o=!1;for(;this.index<this.expr.length;){let r=this.expr.charAt(this.index++);if(r===i){o=!0;break}else if(r==="\\")switch(r=this.expr.charAt(this.index++),r){case"n":t+=` +`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=r}else t+=r}return o||this.throwError('Unclosed quote after "'+t+'"'),{type:e.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(e.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,e.isIdentifierPart(t));)this.index++;return{type:e.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,o=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let r=this.code;if(r===t){i=!0,this.index++,t===e.CPAREN_CODE&&o&&o>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s<o;s++)n.push(null)}}else if(n.length!==o&&o!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===e.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(e.CPAREN_CODE);if(this.code===e.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:e.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:e.ARRAY_EXP,elements:this.gobbleArguments(e.CBRACK_CODE)}}},_2e=new H9;Object.assign(Ll,{hooks:_2e,plugins:new G9(Ll),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});Ll.max_unop_len=Ll.getMaxKeyLen(Ll.unary_ops);Ll.max_binop_len=Ll.getMaxKeyLen(Ll.binary_ops);var $g=e=>new Ll(e).parse(),g2e=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(Ll).filter(e=>!g2e.includes(e)&&$g[e]===void 0).forEach(e=>{$g[e]=Ll[e]});$g.Jsep=Ll;var y2e="ConditionalExpression",x2e={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:y2e,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};$g.plugins.register(x2e);var b2e={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},ht=Object.freeze(b2e);function Wd(e,t){this._expression=e,e=M2e(e,t),e=N2e(L2e(e)),$g.addBinaryOp("=~",0),$g.addBinaryOp("!~",0);let n;try{n=$g(e)}catch(i){throw new ce(i)}this._runtimeAst=Ti(this,n)}Object.defineProperties(Wd.prototype,{expression:{get:function(){return this._expression}}});var On={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new z],cartesian3Array:[new h],cartesian4Array:[new oe],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new z),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new oe),this.cartesian4Array[this.cartesian4Index++]}};Wd.prototype.evaluate=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return t instanceof H&&n instanceof oe?H.fromCartesian4(n,t):n instanceof z||n instanceof h||n instanceof oe?n.clone(t):n};Wd.prototype.evaluateColor=function(e,t){On.reset();let n=this._runtimeAst.evaluate(e);return H.fromCartesian4(n,t)};Wd.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};Wd.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};Wd.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var T2e=["!","-","+"],Boe=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],TU=/\${(.*?)}/g,C2e=/\\/g,A2e="@#%",E2e=/@#%/g,CU=new H,AU={abs:js(Math.abs),sqrt:js(Math.sqrt),cos:js(Math.cos),sin:js(Math.sin),tan:js(Math.tan),acos:js(Math.acos),asin:js(Math.asin),atan:js(Math.atan),radians:js(P.toRadians),degrees:js(P.toDegrees),sign:js(P.sign),floor:js(Math.floor),ceil:js(Math.ceil),round:js(Math.round),exp:js(Math.exp),exp2:js(v2e),log:js(Math.log),log2:js(w2e),fract:js(S2e),length:D2e,normalize:I2e},EU={atan2:xU(Math.atan2,!1),pow:xU(Math.pow,!1),min:xU(Math.min,!0),max:xU(Math.max,!0),distance:P2e,dot:R2e,cross:O2e},q9={clamp:koe(P.clamp,!0),mix:koe(P.lerp,!0)};function S2e(e){return e-Math.floor(e)}function v2e(e){return Math.pow(2,e)}function w2e(e){return P.log2(e)}function js(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof z)return z.fromElements(e(n.x),e(n.y),On.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),On.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),On.getCartesian4());throw new ce(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function xU(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof z)return z.fromElements(e(i.x,o),e(i.y,o),On.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),On.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof z&&o instanceof z)return z.fromElements(e(i.x,o.x),e(i.y,o.y),On.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),On.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),On.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function koe(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof z&&o instanceof z)return z.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),On.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),On.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),On.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof z&&o instanceof z&&r instanceof z)return z.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),On.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),On.getCartesian3());if(i instanceof oe&&o instanceof oe&&r instanceof oe)return oe.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),On.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function D2e(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof z)return z.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof oe)return oe.magnitude(t);throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function I2e(e,t){if(typeof t=="number")return 1;if(t instanceof z)return z.normalize(t,On.getCartesian2());if(t instanceof h)return h.normalize(t,On.getCartesian3());if(t instanceof oe)return oe.normalize(t,On.getCartesian4());throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function P2e(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof z&&n instanceof z)return z.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof oe&&n instanceof oe)return oe.distance(t,n);throw new ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function R2e(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof z&&n instanceof z)return z.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof oe&&n instanceof oe)return oe.dot(t,n);throw new ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function O2e(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,On.getCartesian3());throw new ce(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function bt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,j2e(this)}function M2e(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function L2e(e){return e.replace(C2e,A2e)}function j9(e){return e.replace(E2e,"\\")}function N2e(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o<i)s=t.indexOf("'",o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(r>=0&&r<i)s=t.indexOf('"',r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new ce("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function F2e(e){let t=typeof e.value;if(e.value===null)return new bt(ht.LITERAL_NULL,null);if(t==="boolean")return new bt(ht.LITERAL_BOOLEAN,e.value);if(t==="number")return new bt(ht.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new bt(ht.VARIABLE_IN_STRING,e.value):new bt(ht.LITERAL_STRING,j9(e.value))}function B2e(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new ce(`${o} is not a function.`);return i===0?o==="test"?new bt(ht.LITERAL_BOOLEAN,!1):new bt(ht.LITERAL_NULL,null):(s=Ti(e,c),a=Ti(e,n[0]),new bt(ht.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=Ti(e,c),new bt(ht.FUNCTION_CALL,o,r);throw new ce(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new bt(ht.LITERAL_COLOR,o);if(r=Ti(e,n[0]),l(n[1])){let c=Ti(e,n[1]);return new bt(ht.LITERAL_COLOR,o,[r,c])}return new bt(ht.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ce(`${o} requires three arguments.`);return r=[Ti(e,n[0]),Ti(e,n[1]),Ti(e,n[2])],new bt(ht.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ce(`${o} requires four arguments.`);return r=[Ti(e,n[0]),Ti(e,n[1]),Ti(e,n[2]),Ti(e,n[3])],new bt(ht.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c<i;++c)r[c]=Ti(e,n[c]);return new bt(ht.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new bt(ht.LITERAL_BOOLEAN,!0):new bt(ht.LITERAL_BOOLEAN,!1):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new ce(`${o} requires exactly one argument.`);return r=Ti(e,n[0]),new bt(ht.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ce(`${o} does not take any argument.`);return new bt(ht.UNARY,o)}else if(l(AU[o])){if(i!==1)throw new ce(`${o} requires exactly one argument.`);return r=Ti(e,n[0]),new bt(ht.UNARY,o,r)}else if(l(EU[o])){if(i!==2)throw new ce(`${o} requires exactly two arguments.`);return s=Ti(e,n[0]),a=Ti(e,n[1]),new bt(ht.BINARY,o,s,a)}else if(l(q9[o])){if(i!==3)throw new ce(`${o} requires exactly three arguments.`);s=Ti(e,n[0]),a=Ti(e,n[1]);let c=Ti(e,n[2]);return new bt(ht.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new bt(ht.LITERAL_BOOLEAN,!1):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="Number")return i===0?new bt(ht.LITERAL_NUMBER,0):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="String")return i===0?new bt(ht.LITERAL_STRING,""):(r=Ti(e,n[0]),new bt(ht.UNARY,o,r));if(o==="regExp")return k2e(e,t)}}throw new ce(`Unexpected function call "${o}".`)}function k2e(e,t){let n=t.arguments;if(n.length===0)return new bt(ht.LITERAL_REGEX,new RegExp);let i=Ti(e,n[0]),o;if(n.length>1){let r=Ti(e,n[1]);if(W9(i)&&W9(r)){try{o=new RegExp(j9(String(i._value)),r._value)}catch(s){throw new ce(s)}return new bt(ht.LITERAL_REGEX,o)}return new bt(ht.REGEX,i,r)}if(W9(i)){try{o=new RegExp(j9(String(i._value)))}catch(r){throw new ce(r)}return new bt(ht.LITERAL_REGEX,o)}return new bt(ht.REGEX,i)}function V2e(e){if(G2e(e.name)){let t=W2e(e.name);return t.substr(0,8)==="tiles3d_"?new bt(ht.BUILTIN_VARIABLE,t):new bt(ht.VARIABLE,t)}else{if(e.name==="NaN")return new bt(ht.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new bt(ht.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new bt(ht.LITERAL_UNDEFINED,void 0)}throw new ce(`${e.name} is not defined.`)}function U2e(e){let t=e.property.name;if(t==="PI")return new bt(ht.LITERAL_NUMBER,Math.PI);if(t==="E")return new bt(ht.LITERAL_NUMBER,Math.E)}function z2e(e){if(e.property.name==="POSITIVE_INFINITY")return new bt(ht.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function H2e(e,t){if(t.object.name==="Math")return U2e(t);if(t.object.name==="Number")return z2e(t);let n,i=Ti(e,t.object);return t.computed?(n=Ti(e,t.property),new bt(ht.MEMBER,"brackets",i,n)):(n=new bt(ht.LITERAL_STRING,t.property.name),new bt(ht.MEMBER,"dot",i,n))}function W9(e){return e._type>=ht.LITERAL_NULL}function G2e(e){return e.substr(0,4)==="czm_"}function W2e(e){return e.substr(4)}function Ti(e,t){let n,i,o,r;if(t.type==="Literal")n=F2e(t);else if(t.type==="CallExpression")n=B2e(e,t);else if(t.type==="Identifier")n=V2e(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=Ti(e,t.argument);if(T2e.indexOf(i)>-1)n=new bt(ht.UNARY,i,s);else throw new ce(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=Ti(e,t.left),r=Ti(e,t.right),Boe.indexOf(i)>-1)n=new bt(ht.BINARY,i,o,r);else throw new ce(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=Ti(e,t.left),r=Ti(e,t.right),Boe.indexOf(i)>-1&&(n=new bt(ht.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=Ti(e,t.test);o=Ti(e,t.consequent),r=Ti(e,t.alternate),n=new bt(ht.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=H2e(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=Ti(e,t.elements[a]);n=new bt(ht.ARRAY,s)}else throw t.type==="Compound"?new ce("Provide exactly one expression."):new ce("Cannot parse expression.");return n}function j2e(e){e._type===ht.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===ht.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===ht.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:l(AU[e._value])&&(e.evaluate=Y2e(e._value)):e._type===ht.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l(EU[e._value])&&(e.evaluate=X2e(e._value)):e._type===ht.TERNARY?e.evaluate=K2e(e._value):e._type===ht.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===ht.ARRAY?e.evaluate=e._evaluateArray:e._type===ht.VARIABLE?e.evaluate=e._evaluateVariable:e._type===ht.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===ht.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===ht.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===ht.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===ht.REGEX?e.evaluate=e._evaluateRegExp:e._type===ht.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=q2e):e.evaluate=e._evaluateLiteral}function q2e(e){return l(e)?e.content.tileset.timeSinceLoad:0}function Y2e(e){let t=AU[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function X2e(e){let t=EU[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function K2e(e){let t=q9[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function SU(e,t){if(l(e))return e.getPropertyInherited(t)}bt.prototype._evaluateLiteral=function(){return this._value};bt.prototype._evaluateLiteralColor=function(e){let t=CU,n=this._left;if(this._value==="color")l(n)?n.length>1?(H.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):H.fromCssColorString(n[0].evaluate(e),t):H.fromBytes(255,255,255,255,t);else if(this._value==="rgb")H.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;H.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&H.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return oe.fromColor(t,On.getCartesian4())};bt.prototype._evaluateLiteralVector=function(e){let t=On.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a<o;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof z)t.push(c.x,c.y);else if(c instanceof h)t.push(c.x,c.y,c.z);else if(c instanceof oe)t.push(c.x,c.y,c.z,c.w);else throw new ce(`${n} argument must be a vector or number. Argument is ${c}.`)}let r=t.length,s=parseInt(n.charAt(3));if(r===0)throw new ce(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new ce(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ce(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return z.fromArray(t,0,On.getCartesian2());if(n==="vec3")return h.fromArray(t,0,On.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,On.getCartesian4())};bt.prototype._evaluateLiteralString=function(){return this._value};bt.prototype._evaluateVariableString=function(e){let t=this._value,n=TU.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=SU(e,o);l(r)||(r=""),t=t.replace(i,r),n=TU.exec(t)}return t};bt.prototype._evaluateVariable=function(e){return SU(e,this._value)};function Kx(e){return e._value==="feature"}bt.prototype._evaluateMemberDot=function(e){if(Kx(this._left))return SU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||t instanceof h||t instanceof oe){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};bt.prototype._evaluateMemberBrackets=function(e){if(Kx(this._left))return SU(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof z||t instanceof h||t instanceof oe){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};bt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};bt.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};bt.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof z)return z.negate(t,On.getCartesian2());if(t instanceof h)return h.negate(t,On.getCartesian3());if(t instanceof oe)return oe.negate(t,On.getCartesian4());if(typeof t=="number")return-t;throw new ce(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};bt.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof z||t instanceof h||t instanceof oe||typeof t=="number"))throw new ce(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};bt.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};bt.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};bt.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};bt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};bt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};bt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};bt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.add(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,On.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ce(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.subtract(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ce(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.multiplyComponents(t,n,On.getCartesian2());if(n instanceof z&&typeof t=="number")return z.multiplyByScalar(n,t,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.multiplyByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,On.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,On.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ce(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.divideComponents(t,n,On.getCartesian2());if(t instanceof z&&typeof n=="number")return z.divideByScalar(t,n,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,On.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,On.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ce(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof z&&t instanceof z)return z.fromElements(t.x%n.x,t.y%n.y,On.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,On.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,On.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ce(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?t.equals(n):t===n};bt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof z&&t instanceof z||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?!t.equals(n):t!==n};bt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ce(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};bt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};bt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};bt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};bt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};bt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};bt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};bt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};bt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};bt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ce(o)}return i};bt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};bt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new ce(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new ce(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};bt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof z||t instanceof h||t instanceof oe)return String(t);throw new ce(`Unexpected function call "${this._value}".`)};function Voe(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==ht.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return H.fromHsl(i,o,r,s,CU)}function Uoe(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==ht.LITERAL_NUMBER)return;let i=CU;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function Qg(e){return e%1===0?e.toFixed(1):e.toString()}function Z2e(e){let t=Qg(e.red),n=Qg(e.green),i=Qg(e.blue);return`vec3(${t}, ${n}, ${i})`}function bU(e){let t=Qg(e.red),n=Qg(e.green),i=Qg(e.blue),o=Qg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function zoe(e,t,n,i){let o=e.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=e[s].getShaderExpression(t,n,i);return r}function Hoe(e,t){return l(t[e])?t[e]:Wd.NULL_SENTINEL}Wd.NULL_SENTINEL="czm_infinity";bt.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;l(this._left)&&(Array.isArray(this._left)?o=zoe(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),l(this._right)&&(r=this._right.getShaderExpression(e,t,this)),l(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=zoe(this._value,e,t,this));let u,f,d;switch(a){case ht.VARIABLE:return Kx(this)?void 0:Hoe(c,e);case ht.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(l(AU[c]))return`${c}(${o})`;if(c==="isNaN")return`(${o} != ${o})`;if(c==="isFinite")return`(abs(${o}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new ce(`Error generating style shader: "${c}" is not supported.`);return c+o;case ht.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:l(EU[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case ht.TERNARY:if(l(q9[c]))return`${c}(${o}, ${r}, ${s})`;break;case ht.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case ht.MEMBER:return Kx(this._left)?Hoe(r,e):r==="r"||r==="x"||r==="0.0"?`${o}[0]`:r==="g"||r==="y"||r==="1.0"?`${o}[1]`:r==="b"||r==="z"||r==="2.0"?`${o}[2]`:r==="a"||r==="w"||r==="3.0"?`${o}[3]`:`${o}[int(${r})]`;case ht.FUNCTION_CALL:throw new ce(`Error generating style shader: "${c}" is not supported.`);case ht.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new ce("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case ht.REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case ht.VARIABLE_IN_STRING:throw new ce("Error generating style shader: Converting a variable to a string is not supported.");case ht.LITERAL_NULL:return Wd.NULL_SENTINEL;case ht.LITERAL_BOOLEAN:return c?"true":"false";case ht.LITERAL_NUMBER:return Qg(c);case ht.LITERAL_STRING:if(l(n)&&n._type===ht.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||Kx(n._left)))return c;if(i=H.fromCssColorString(c,CU),l(i))return Z2e(i);throw new ce("Error generating style shader: String literals are not supported.");case ht.LITERAL_COLOR:if(u=o,c==="color"){if(l(u)){if(u.length>1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=Uoe(this),l(i)?bU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=Uoe(this),l(i)?bU(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=Voe(this),l(i)?bU(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=Voe(this),l(i)?(i.alpha!==1&&(t.translucent=!0),bU(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case ht.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p<f;++p)d+=o[p],p<f-1&&(d+=", ");return d+=")",d;case ht.LITERAL_REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case ht.LITERAL_UNDEFINED:return Wd.NULL_SENTINEL;case ht.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};bt.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(l(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);else this._left.getVariables(e,this);if(l(this._right)&&this._right.getVariables(e,this),l(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);let a;switch(r){case ht.VARIABLE:Kx(this)||e.push(s);break;case ht.VARIABLE_IN_STRING:for(a=TU.exec(s);a!==null;)e.push(a[1]),a=TU.exec(s);break;case ht.LITERAL_STRING:l(t)&&t._type===ht.MEMBER&&Kx(t._left)&&e.push(s);break}};var If=Wd;function Wp(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,h.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,Vn.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(Wp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var $2e={position:0,a_batchId:1};function Q2e(e,t){if(l(e._va))return;let n=_t.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=_t.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),o=_t.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),r=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new ti({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ti({context:t,attributes:r,indexBuffer:_t.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function J2e(e,t){if(l(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,$2e),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(l(r)){e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=Ue.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`,e._spPick=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(mA),c=n.getFragmentShaderCallback(!1,void 0,!0)(Wg);o=n.getPickId();let u=new Ue({sources:[a]}),f=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._sp=Qt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),u=new Ue({sources:[mA]}),f=new Ue({defines:["VECTOR_TILE"],sources:[Wg]}),e._spStencil=Qt.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),c=Ue.replaceMain(c,"czm_non_pick_main"),c=`${c} +void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`;let d=new Ue({sources:[a]}),p=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._spPick=Qt.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function Goe(e){let t=e?Un.EQUAL:Un.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:t,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}var eBe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},tBe={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function nBe(e){l(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(Goe(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(Goe(!0)),e._rsColorPass=Ve.fromCache(eBe),e._rsPickPass=Ve.fromCache(tBe))}var Zx=new F,Woe=new h;function iBe(e,t){if(l(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return F.clone(i,Zx),F.multiplyByPoint(Zx,e._center,Woe),F.setTranslation(Zx,Woe,Zx),F.multiply(o,Zx,Zx),Zx},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function Y9(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d],m=new e.constructor(e.buffer,a*p,g);t.set(m,n),i[d]=n,n+=g}return n}function oBe(e,t){let n=e._indices,i=e._indexOffsets,o=e._indexCounts,r=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],u=Y9(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=u;t.length>0;){let f=t.pop();if(H.equals(f.color,a.color))u=Y9(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=Y9(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function X9(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function rBe(e,t){let n=e._indexOffsets,i=e._indexCounts,o=e._batchIdLookUp,r=t.pop(),s=[r],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,u=X9(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=u;t.length>0;){let d=t.pop();if(H.equals(d.color,r.color))u=X9(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=X9(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function sBe(e,t){return t.color.toRgba()-e.color.toRgba()}function aBe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(l(r[c])){o=!0;break}else r[c]=!0}if(!o)return e._batchDirty=!1,!1;if(o&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(sBe),t.webgl2?rBe(e,n):oBe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function cBe(e,t){let n=aBe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(l(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,u=y(e._modelMatrix,F.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<r;++p){let g=o[p].offset,m=o[p].count,x=i[p*2];l(x)||(x=i[p*2]=new Ze({owner:e})),x.vertexArray=a,x.modelMatrix=u,x.offset=g,x.count=m,x.renderState=e._rsStencilDepthPass,x.shaderProgram=c,x.uniformMap=f,x.boundingVolume=d,x.cull=!1,x.pass=ve.TERRAIN_CLASSIFICATION;let b=Ze.shallowClone(x,x.derivedCommands.tileset);b.renderState=e._rsStencilDepthPass3DTiles,b.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,x.derivedCommands.tileset=b;let T=i[p*2+1];l(T)||(T=i[p*2+1]=new Ze({owner:e})),T.vertexArray=a,T.modelMatrix=u,T.offset=g,T.count=m,T.renderState=e._rsColorPass,T.shaderProgram=c,T.uniformMap=f,T.boundingVolume=d,T.cull=!1,T.pass=ve.TERRAIN_CLASSIFICATION;let C=Ze.shallowClone(T,T.derivedCommands.tileset);C.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=C}e._commandsDirty=!0}function lBe(e,t){if(e.classificationType===Vn.TERRAIN||!t.invertClassification||l(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,o=e._spStencil,r=n.length,s=i.length=r/2,a=0;for(let c=0;c<s;++c){let u=i[c]=Ze.shallowClone(n[a],i[c]);u.shaderProgram=o,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function uBe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,o=e._spStencil,r=e._spPick,s=y(e._modelMatrix,F.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let u=e._indexOffsets[c],f=e._indexCounts[c],d=l(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];l(p)||(p=n[c*2]=new Ze({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=u,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=ve.TERRAIN_CLASSIFICATION;let g=Ze.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];l(m)||(m=n[c*2+1]=new Ze({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=u,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=ve.TERRAIN_CLASSIFICATION;let x=Ze.shallowClone(m,m.derivedCommands.tileset);x.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}Wp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ws(e,r)}};Wp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function fBe(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,o;for(o=0;o<i;++o){let s=n[o],a=t[s];a.show=!0,a.color=H.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=H.clone(H.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var dBe=new H,hBe=H.WHITE,mBe=!0,pBe=/\$/;Wp.prototype.applyStyle=function(e,t){if(!l(e)){fBe(this,t);return}let n=e.color,i=n instanceof If&&!pBe.test(n.expression);this._updatingAllCommands=i;let o=this._batchIds,r=o.length,s;for(s=0;s<r;++s){let a=o[s],c=t[a];c.color=l(e.color)?e.color.evaluateColor(c,dBe):hBe,c.show=l(e.show)?e.show.evaluate(c):mBe}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=H.clone(H.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};Wp.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!l(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,u=c.length,f;for(f=0;f<u;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new fm({color:H.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,m=g.length;for(let x=0;x<m;++x){let b=g[x];if(b===e)continue;let T=n[b];o[T]<s?d.push(b):p.push(b)}p.length!==0&&c.push(new fm({color:H.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function joe(e,t,n,i){let o=e.classificationType,r=o!==Vn.CESIUM_3D_TILE,s=o!==Vn.TERRAIN,a=t.commandList,c=n.length,u,f;for(f=0;f<c;++f)r&&(u=n[f],u.pass=ve.TERRAIN_CLASSIFICATION,a.push(u)),s&&(u=n[f].derivedCommands.tileset,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,a.push(u));if(!(!t.invertClassification||!l(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function _Be(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=ve.OPAQUE,n.push(r)}}function gBe(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;l(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Me.LINES):(n=e._rsColorPass,i=Me.TRIANGLES);let o=e._commands,r=o.length;for(let s=0;s<r;s+=2){let a=o[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}Wp.prototype.update=function(e){let t=e.context;Q2e(this,t),J2e(this,t),nBe(this),iBe(this,t);let n=e.passes;n.render&&(cBe(this,t),lBe(this,e),gBe(this),this._debugWireframe?_Be(e,this._commands):joe(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(uBe(this),joe(this,e,this._pickCommands))};Wp.prototype.isDestroyed=function(){return!1};Wp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),ue(this)};var $x=Wp;function Tu(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,l(this._center)||(l(this._boundingVolume)?this._center=h.clone(this._boundingVolume.center):this._center=h.clone(h.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Vn.BOTH}Object.defineProperties(Tu.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});Tu.packedBoxLength=F.packedLength+h.packedLength;Tu.packedCylinderLength=F.packedLength+2;Tu.packedEllipsoidLength=F.packedLength+h.packedLength;Tu.packedSphereLength=h.packedLength+1;function yBe(e){let t=new Float64Array(F.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,F.pack(e._modelMatrix,t,n),t}function xBe(e,t){let n=0,i=t[n++],o=t[n++],r=e._boundingVolumes=new Array(o);for(let c=0;c<o;++c)r[c]=se.unpack(t,n),n+=se.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let u=H.unpack(t,n);n+=H.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let m=0;m<p;++m)g[m]=t[n++];a[c]=new fm({color:u,offset:f,count:d,batchIds:g})}return i}var bBe=new pi("createVectorTileGeometries",5),TBe=new H;function CBe(e){if(!l(e._primitive)&&!l(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,o=e._cylinderBatchIds,r=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,u=e._batchTableColors,f=e._packedBuffer;if(!l(u)){let m=0;l(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),l(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),l(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),l(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),u=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,TBe);u[b]=T.toRgba()}f=e._packedBuffer=yBe(e)}let d=[];l(t)&&d.push(t.buffer,n.buffer),l(i)&&d.push(i.buffer,o.buffer),l(r)&&d.push(r.buffer,s.buffer),l(a)&&d.push(a.buffer,c.buffer),d.push(u.buffer,f.buffer);let p={boxes:l(t)?t.buffer:void 0,boxBatchIds:l(t)?n.buffer:void 0,cylinders:l(i)?i.buffer:void 0,cylinderBatchIds:l(i)?o.buffer:void 0,ellipsoids:l(r)?r.buffer:void 0,ellipsoidBatchIds:l(r)?s.buffer:void 0,spheres:l(a)?a.buffer:void 0,sphereBatchIds:l(a)?c.buffer:void 0,batchTableColors:u.buffer,packedBuffer:f.buffer},g=e._verticesPromise=bBe.scheduleTask(p,d);return l(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);xBe(e,x)===2?e._indices=new Uint16Array(m.indices):e._indices=new Uint32Array(m.indices),e._indexOffsets=new Uint32Array(m.indexOffsets),e._indexCounts=new Uint32Array(m.indexCounts),e._positions=new Float32Array(m.positions),e._vertexBatchIds=new Uint16Array(m.vertexBatchIds),e._batchIds=new Uint16Array(m.batchIds),ABe(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function ABe(e){l(e._primitive)||(e._primitive=new $x({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}Tu.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Tu.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Tu.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Tu.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Tu.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=CBe(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Tu.prototype.isDestroyed=function(){return!1};Tu.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var jp=Tu;function dm(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,vBe(this,i,o)}Object.defineProperties(dm.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function EBe(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function SBe(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let m=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!l(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!l(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=m++;if(!l(r)&&f>0)for(r=new Uint16Array(f),s=0;s<f;++s)r[s]=m++}return{boxes:n,cylinders:i,ellipsoids:o,spheres:r}}var Qx=Uint32Array.BYTES_PER_ELEMENT;function vBe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=Qx;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=Qx;let s=o.getUint32(n,!0);if(n+=Qx,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=Qx,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=Qx;let u=o.getUint32(n,!0);n+=Qx;let f=o.getUint32(n,!0);n+=Qx;let d=Mo(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;u>0&&(g=Mo(i,n,u),n+=u,f>0&&(m=new Uint8Array(t,n,f),m=new Uint8Array(m)));let x=y(d.BOXES_LENGTH,0),b=y(d.CYLINDERS_LENGTH,0),T=y(d.ELLIPSOIDS_LENGTH,0),C=y(d.SPHERES_LENGTH,0),A=x+b+T+C,E=new Gp(e,A,g,m,EBe(e));if(e._batchTable=E,A===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),F.multiplyByPoint(v,D,D));let O=SBe(d,p);if(x>0||b>0||T>0||C>0){let R,M,N,_;if(x>0){let S=p.byteOffset+d.BOXES.byteOffset;R=new Float32Array(p.buffer,S,jp.packedBoxLength*x)}if(b>0){let S=p.byteOffset+d.CYLINDERS.byteOffset;M=new Float32Array(p.buffer,S,jp.packedCylinderLength*b)}if(T>0){let S=p.byteOffset+d.ELLIPSOIDS.byteOffset;N=new Float32Array(p.buffer,S,jp.packedEllipsoidLength*T)}if(C>0){let S=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,S,jp.packedSphereLength*C)}return e._geometries=new jp({boxes:R,boxBatchIds:O.boxes,cylinders:M,cylinderBatchIds:O.cylinders,ellipsoids:N,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:E,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function qoe(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}dm.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};dm.prototype.getFeature=function(e){return qoe(this),this._features[e]};dm.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};dm.prototype.applyStyle=function(e){qoe(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};dm.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};dm.prototype.pick=function(e,t,n){};dm.prototype.isDestroyed=function(){return!1};dm.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var B1=dm;var K9={};K9.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),Yoe(i,o,r,s);return c};K9.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s<n;s*=2)o=1&Number(a/BigInt(2)),r=1&Number(a^BigInt(o)),Yoe(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function Yoe(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let o=t.x;t.x=t.y,t.y=o}var pA=K9;var Jx=30,wBe=1<<Jx,DBe=1<<Jx+1>>>0,Z9=2*Jx+1,Jg=4,Zoe=[],$oe=[],IBe=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],ey=1,_A=2,vU=[ey,0,0,ey|_A];function Jr(e){if(!Ht.supportsBigInt())throw new ce("S2 required BigInt support");this._cellId=e,this._level=Jr.getLevel(e)}Jr.fromToken=function(e){return new Jr(Jr.getIdFromToken(e))};Jr.isValidId=function(e){return!(e<=0||e>>BigInt(Z9)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Jr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Jr.isValidId(Jr.getIdFromToken(e)):!1};Jr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Jr.getTokenFromId=function(e){let t=Math.floor(VBe(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Jr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return Jx-(t>>1)};Jr.prototype.getChild=function(e){let t=ere(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Jr(n)};Jr.prototype.getParent=function(){let e=ere(this._cellId)<<BigInt(2);return new Jr(this._cellId&~e+BigInt(1)|e)};Jr.prototype.getParentAtLevel=function(e){let t=BBe(e);return new Jr(this._cellId&-t|t)};Jr.prototype.getCenter=function(e){e=y(e,ee.WGS84);let t=PBe(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,ee.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Jr.prototype.getVertex=function(e,t){t=y(t,ee.WGS84);let n=RBe(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,ee.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Jr.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),o=t.toString(2),r=Array(2*n-o.length+1).join("0"),s=Array(Z9-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Jr(a)};function PBe(e,t){let n=OBe(e,t);return MBe(n[0],n[1],n[2])}function RBe(e,t,n){let i=Qoe(e,t),o=LBe([i[1],i[2]],t),r=n>>1&1;return Joe(i[0],o[0][r^n&1],o[1][r])}function OBe(e,t){let n=Qoe(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function Qoe(e){Zoe.length===0&&FBe();let t=Number(e>>BigInt(Z9)),n=t&ey,i=(1<<Jg)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?Jx-7*Jg:Jg))-1;n+=Number(e>>BigInt(s*2*Jg+1)&BigInt(c))<<2,n=$oe[n];let u=s*Jg;o+=n>>Jg+2<<u,r+=(n>>2&i)<<u,n&=ey|_A}return[t,o,r]}function MBe(e,t,n){let i=Xoe(t),o=Xoe(n),r=wU(i),s=wU(o);return Joe(e,r,s)}function Joe(e,t,n){switch(e){case 0:return new h(1,t,n);case 1:return new h(-t,1,n);case 2:return new h(-t,-n,1);case 3:return new h(-1,-n,-t);case 4:return new h(n,-1,-t);default:return new h(n,t,-1)}}function wU(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Xoe(e){return 1/DBe*e}function LBe(e,t){let n=[[],[]],i=NBe(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=wU(Koe(r)),n[o][1]=wU(Koe(s))}return n}function NBe(e){return 1<<Jx-e>>>0}function Koe(e){return 1/wBe*e}function ty(e,t,n,i,o,r){if(e===Jg){let s=(t<<Jg)+n;Zoe[(s<<2)+i]=(o<<2)+r,$oe[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=IBe[r];ty(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^vU[0]),ty(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^vU[1]),ty(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^vU[2]),ty(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^vU[3])}}function FBe(){ty(0,0,0,0,0,0),ty(0,0,0,ey,0,ey),ty(0,0,0,_A,0,_A),ty(0,0,0,ey|_A,0,ey|_A)}function ere(e){return e&~e+BigInt(1)}function BBe(e){return BigInt(1)<<BigInt(2*(Jx-e))}var kBe=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function VBe(e){return kBe[(-e&e)%BigInt(67)]}var qp=Jr;function UBe(e,t){return l(e)&&l(e.extensions)&&l(e.extensions[t])}var oi=UBe;function $9(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(l(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new ce(`Availability bitstream must be exactly ${r} bytes long to store ${t} bits. Actual bitstream was ${o.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!l(n)&&s&&(n=zBe(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function zBe(e,t){let n=0;for(let i=0;i<t;i++){let o=i>>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties($9.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});$9.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var gA=$9;function Yp(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(Yp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Yp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};Yp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};Yp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};Yp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};Yp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};Yp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};Yp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var yA=Yp;var DU={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};DU.getBranchingFactor=function(e){switch(e){case DU.OCTREE:return 8;case DU.QUADTREE:return 4}};var es=Object.freeze(DU);function la(){}Object.defineProperties(la.prototype,{class:{get:function(){he.throwInstantiationError()}}});la.prototype.hasProperty=function(e){he.throwInstantiationError()};la.prototype.hasPropertyBySemantic=function(e){he.throwInstantiationError()};la.prototype.getPropertyIds=function(e){he.throwInstantiationError()};la.prototype.getProperty=function(e){he.throwInstantiationError()};la.prototype.setProperty=function(e,t){he.throwInstantiationError()};la.prototype.getPropertyBySemantic=function(e){he.throwInstantiationError()};la.prototype.setPropertyBySemantic=function(e,t){he.throwInstantiationError()};la.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};la.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};la.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};la.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Ge(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};la.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};la.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return la.getProperty(o.id,t,n)};la.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?la.setProperty(r.id,t,n,i):!1};var Fn=la;function Xp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Xp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Xp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Xp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Xp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Xp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Xp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Xp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Xp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var k1=Xp;var Nt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Nt.getMinimum=function(e){switch(e){case Nt.INT8:return-128;case Nt.UINT8:return 0;case Nt.INT16:return-32768;case Nt.UINT16:return 0;case Nt.INT32:return-2147483648;case Nt.UINT32:return 0;case Nt.INT64:return Ht.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Nt.UINT64:return Ht.supportsBigInt()?BigInt(0):0;case Nt.FLOAT32:return-34028234663852886e22;case Nt.FLOAT64:return-Number.MAX_VALUE}};Nt.getMaximum=function(e){switch(e){case Nt.INT8:return 127;case Nt.UINT8:return 255;case Nt.INT16:return 32767;case Nt.UINT16:return 65535;case Nt.INT32:return 2147483647;case Nt.UINT32:return 4294967295;case Nt.INT64:return Ht.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Nt.UINT64:return Ht.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Nt.FLOAT32:return 34028234663852886e22;case Nt.FLOAT64:return Number.MAX_VALUE}};Nt.isIntegerType=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.INT64:case Nt.UINT64:return!0;default:return!1}};Nt.isUnsignedIntegerType=function(e){switch(e){case Nt.UINT8:case Nt.UINT16:case Nt.UINT32:case Nt.UINT64:return!0;default:return!1}};Nt.isVectorCompatible=function(e){switch(e){case Nt.INT8:case Nt.UINT8:case Nt.INT16:case Nt.UINT16:case Nt.INT32:case Nt.UINT32:case Nt.FLOAT32:case Nt.FLOAT64:return!0;default:return!1}};Nt.normalize=function(e,t){return Math.max(Number(e)/Number(Nt.getMaximum(t)),-1)};Nt.unnormalize=function(e,t){let n=Nt.getMaximum(t),i=Nt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Nt.INT64||t===Nt.UINT64)&&Ht.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Nt.applyValueTransform=function(e,t,n){return n*e+t};Nt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Nt.getSizeInBytes=function(e){switch(e){case Nt.INT8:case Nt.UINT8:return 1;case Nt.INT16:case Nt.UINT16:return 2;case Nt.INT32:case Nt.UINT32:return 4;case Nt.INT64:case Nt.UINT64:return 8;case Nt.FLOAT32:return 4;case Nt.FLOAT64:return 8}};Nt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Nt.INT8;case X.UNSIGNED_BYTE:return Nt.UINT8;case X.SHORT:return Nt.INT16;case X.UNSIGNED_SHORT:return Nt.UINT16;case X.INT:return Nt.INT32;case X.UNSIGNED_INT:return Nt.UINT32;case X.FLOAT:return Nt.FLOAT32;case X.DOUBLE:return Nt.FLOAT64}};Nt.toComponentDatatype=function(e){switch(e){case Nt.INT8:return X.BYTE;case Nt.UINT8:return X.UNSIGNED_BYTE;case Nt.INT16:return X.SHORT;case Nt.UINT16:return X.UNSIGNED_SHORT;case Nt.INT32:return X.INT;case Nt.UINT32:return X.UNSIGNED_INT;case Nt.FLOAT32:return X.FLOAT;case Nt.FLOAT64:return X.DOUBLE}};var zt=Object.freeze(Nt);var Ho={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};Ho.isVectorType=function(e){switch(e){case Ho.VEC2:case Ho.VEC3:case Ho.VEC4:return!0;default:return!1}};Ho.isMatrixType=function(e){switch(e){case Ho.MAT2:case Ho.MAT3:case Ho.MAT4:return!0;default:return!1}};Ho.getComponentCount=function(e){switch(e){case Ho.SCALAR:case Ho.STRING:case Ho.ENUM:case Ho.BOOLEAN:return 1;case Ho.VEC2:return 2;case Ho.VEC3:return 3;case Ho.VEC4:return 4;case Ho.MAT2:return 4;case Ho.MAT3:return 9;case Ho.MAT4:return 16}};Ho.getMathType=function(e){switch(e){case Ho.VEC2:return z;case Ho.VEC3:return h;case Ho.VEC4:return oe;case Ho.MAT2:return Bi;case Ho.MAT3:return $;case Ho.MAT4:return F;default:return}};var At=Object.freeze(Ho);function Ma(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&zt.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=l(o)?o.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=Ge(e.min,!0),this._max=Ge(e.max,!0),this._normalized=r;let s=Ge(e.offset,!0),a=Ge(e.scale,!0),c=l(s)||l(a),u=!0;l(s)||(s=this.expandConstant(0,u)),l(a)||(a=this.expandConstant(1,u)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=Ge(e.noData,!0),this._default=Ge(e.default,!0),this._required=y(e.required,!0),this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}Ma.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=HBe(n),o=GBe(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new Ma({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(Ma.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function HBe(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===At.SCALAR||At.isMatrixType(t)||At.isVectorType(t))return!1;if(l(zt[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function GBe(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===At.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===At.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===At.SCALAR||At.isMatrixType(n)||At.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===At.BOOLEAN||n===At.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===At.BOOLEAN||i===At.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(zt[i]))return{type:At.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(zt[n]))return{type:At.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}Ma.prototype.normalize=function(e){return this._normalized?Q9(e,this._valueType,zt.normalize):e};Ma.prototype.unnormalize=function(e){return this._normalized?Q9(e,this._valueType,zt.unnormalize):e};Ma.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:Ma.valueTransformInPlace(e,this._offset,this._scale,zt.applyValueTransform)};Ma.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:Ma.valueTransformInPlace(e,this._offset,this._scale,zt.unapplyValueTransform)};Ma.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=At.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};Ma.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!ore(e,t))return e};function ore(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!ore(e[n],t[n]))return!1;return!0}Ma.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=At.getMathType(this._type),i=this._isArray,o=At.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};Ma.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=At.getMathType(this._type),i=this._isArray,o=At.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};Ma.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?WBe(this,e):rre(this,e)};function WBe(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let o=rre(e,t[i]);if(l(o))return o}}function rre(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return At.isVectorType(n)?jBe(t,n,i):At.isMatrixType(n)?qBe(t,n,i):n===At.STRING?YBe(t):n===At.BOOLEAN?XBe(t):n===At.ENUM?KBe(t,o):ZBe(t,i,r)}function jBe(e,t,n){if(!zt.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===At.VEC2&&!(e instanceof z))return`vector value ${e} must be a Cartesian2`;if(t===At.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===At.VEC4&&!(e instanceof oe))return`vector value ${e} must be a Cartesian4`}function qBe(e,t,n){if(!zt.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===At.MAT2&&!(e instanceof Bi))return`matrix value ${e} must be a Matrix2`;if(t===At.MAT3&&!(e instanceof $))return`matrix value ${e} must be a Matrix3`;if(t===At.MAT4&&!(e instanceof F))return`matrix value ${e} must be a Matrix4`}function YBe(e){if(typeof e!="string")return IU(e,At.STRING)}function XBe(e){if(typeof e!="boolean")return IU(e,At.BOOLEAN)}function KBe(e,t){let n=typeof e;if(l(t))return n!=="string"||!l(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function ZBe(e,t,n){let i=typeof e;switch(t){case zt.INT8:case zt.UINT8:case zt.INT16:case zt.UINT16:case zt.INT32:case zt.UINT32:case zt.FLOAT32:case zt.FLOAT64:return i!=="number"?IU(e,t):isFinite(e)?nre(e,t,n):ire(e,t);case zt.INT64:case zt.UINT64:return i!=="number"&&i!=="bigint"?IU(e,t):i==="number"&&!isFinite(e)?ire(e,t):nre(e,t,n)}}function IU(e,t){return`value ${e} does not match type ${t}`}function tre(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function nre(e,t,n){if(n){let i=zt.isUnsignedIntegerType(t)?0:-1;return e<i||e>1?tre(e,t,n):void 0}if(e<zt.getMinimum(t)||e>zt.getMaximum(t))return tre(e,t,n)}function ire(e,t){return`value ${e} of type ${t} must be finite`}function Q9(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=Q9(e[i],t,n);return e}Ma.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let o=0;o<e.length;o++)e[o]=Ma.valueTransformInPlace(e[o],t[o],n[o],i);return e};var ny=Ma;function V1(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,u=i.enumType,f=r===At.STRING,d=r===At.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(zt[_],zt.UINT32);let S=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new J9(o[S],_,t+1),p+=g.typedArray.byteLength}let m=At.getComponentCount(r),x;a?x=g.get(t)-g.get(0):s?x=t*i.arrayLength:x=t;let b=m*x,T;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(zt[_],zt.UINT32);let S=y(n.stringOffsets,n.stringOffsetBufferView);T=new J9(o[S],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=zt.UINT8);let C;f?C=T.get(b)-T.get(0):d?C=Math.ceil(b/8):C=b;let A=y(n.values,n.bufferView),E=new J9(o[A],c,C);p+=E.typedArray.byteLength;let v=n.offset,D=n.scale,O=i.hasValueTransform||l(v)||l(D);v=y(v,i.offset),D=y(D,i.scale),v=sre(v),D=sre(D);let R,M,N=this;f?R=function(_){return JBe(_,N._values,N._stringOffsets)}:d?(R=function(_){return e3e(_,N._values)},M=function(_,S){t3e(_,N._values,S)}):l(u)?(R=function(_){let S=N._values.get(_);return u.namesByValue[S]},M=function(_,S){let w=u.valuesByName[S];N._values.set(_,w)}):(R=function(_){return N._values.get(_)},M=function(_,S){N._values.set(_,S)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=E,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=O,this._getValue=R,this._setValue=M,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(V1.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});V1.prototype.get=function(e){let t=$Be(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=l3e(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};V1.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=u3e(this,t),t=n.unnormalize(t),QBe(this,e,t)};V1.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function sre(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function $Be(e,t){cre(e)&&lre(e);let n=e._classProperty,i=n.isArray,o=n.type,r=At.getComponentCount(o);if(l(e._unpackedValues)){let s=e._unpackedValues[t];return i?Ge(s,!0):s}return!i&&r===1?e._getValue(t):are(e,n,t)}function are(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=At.getComponentCount(t.type);i*=s,o*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,o=a}let r=new Array(o);for(let s=0;s<o;s++)r[s]=e._getValue(i+s);return r}function QBe(e,t,n){a3e(e,t,n)&&lre(e);let i=e._classProperty,o=i.isArray,r=i.type,s=At.getComponentCount(r);if(l(e._unpackedValues)){i.isArray&&(n=Ge(n,!0)),e._unpackedValues[t]=n;return}if(!o&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let u=0;u<c;++u)e._setValue(a+u,n[u])}function JBe(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Ol(t.typedArray,i,o)}function e3e(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function t3e(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function n3e(e,t){let n=t.dataView,i=e*8,o=0,r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function i3e(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return r&&(o=-o),o}function o3e(e,t){let n=t.dataView,i=e*8,o=n.getUint32(i,!0),r=n.getUint32(i+4,!0);return o+4294967296*r}function r3e(e,t){let n=t.dataView,i=e*8,o=BigInt(n.getUint32(i,!0)),r=BigInt(n.getUint32(i+4,!0));return o+BigInt(4294967296)*r}function s3e(e){switch(e){case zt.INT8:return X.BYTE;case zt.UINT8:return X.UNSIGNED_BYTE;case zt.INT16:return X.SHORT;case zt.UINT16:return X.UNSIGNED_SHORT;case zt.INT32:return X.INT;case zt.UINT32:return X.UNSIGNED_INT;case zt.FLOAT32:return X.FLOAT;case zt.FLOAT64:return X.DOUBLE}}function cre(e){if(l(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===At.STRING||i===zt.INT64&&!Ht.supportsBigInt64Array()||i===zt.UINT64&&!Ht.supportsBigUint64Array()}function a3e(e,t,n){if(cre(e))return!0;let i=e._arrayOffsets;if(l(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function lre(e){e._unpackedValues=c3e(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function c3e(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=At.getComponentCount(r);if(!o&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=are(e,i,a);return n}function l3e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:ny.valueTransformInPlace(t,e._offset,e._scale,zt.applyValueTransform)}function u3e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:ny.valueTransformInPlace(t,e._offset,e._scale,zt.unapplyValueTransform)}function J9(e,t,n){let i=this,o,r,s;if(t===zt.INT64)Ht.supportsBigInt()?Ht.supportsBigInt64Array()?(o=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return i3e(a,i)}):(xt("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return n3e(a,i)});else if(t===zt.UINT64)Ht.supportsBigInt()?Ht.supportsBigUint64Array()?(o=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return r3e(a,i)}):(xt("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return o3e(a,i)});else{let a=s3e(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,u){i.typedArray[c]=u}}l(r)||(r=function(a){return i.typedArray[a]}),this.typedArray=o,this.dataView=new DataView(o.buffer,o.byteOffset),this.get=r,this.set=s,this._componentType=t}var U1=V1;function jd(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(l(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new U1({count:t,property:e.properties[r],classProperty:n.properties[r],bufferViews:e.bufferViews});o[r]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=o,this._byteLength=i}Object.defineProperties(jd.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});jd.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};jd.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};jd.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};jd.prototype.getProperty=function(e,t){let n=this._properties[t],i;return l(n)?i=n.get(e):i=f3e(this._class,t),i};jd.prototype.setProperty=function(e,t,n){let i=this._properties[t];return l(i)?(i.set(e,n),!0):!1};jd.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(l(i)&&(n=i[t]),l(n))return this.getProperty(e,n.id)};jd.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return l(o)&&(i=o[t]),l(i)?this.setProperty(e,i.id,n):!1};jd.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(l(t))return t.getTypedArray()};jd.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(l(n)&&(t=n[e]),l(t))return this.getPropertyTypedArray(t.id)};function f3e(e,t){let n=e.properties;if(!l(n))return;let i=n[t];if(l(i)&&l(i.default)){let o=i.default;return i.isArray&&(o=Ge(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var Nl=jd;function iy(){}Object.defineProperties(iy.prototype,{cacheKey:{get:function(){he.throwInstantiationError()}}});iy.prototype.load=function(){he.throwInstantiationError()};iy.prototype.unload=function(){};iy.prototype.process=function(e){return!1};iy.prototype.getError=function(e,t){l(t)&&l(t.message)&&(e+=` +${t.message}`);let n=new ce(e);return l(t)&&(n.stack=`Original stack: +${t.stack} +Handler stack: +${n.stack}`),n};iy.prototype.isDestroyed=function(){return!1};iy.prototype.destroy=function(){return this.unload(),ue(this)};var Xi=iy;var d3e={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},mt=Object.freeze(d3e);function Kp(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(Kp.prototype=Object.create(Xi.prototype),Kp.prototype.constructor=Kp);Object.defineProperties(Kp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});Kp.prototype.load=async function(){return l(this._promise)?this._promise:l(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=h3e(this),this._promise)};async function h3e(e){let t=e._resource;e._state=mt.LOADING;try{let n=await Kp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=mt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=mt.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}Kp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};Kp.prototype.unload=function(){this._typedArray=void 0};var eb=Kp;var _re=Vo(pre(),1);function tb(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,u=a.byteOffset,f=a.byteLength,d=!1,p,g,m,x;if(oi(a,"EXT_meshopt_compression")){let T=a.extensions.EXT_meshopt_compression;c=T.buffer,u=y(T.byteOffset,0),f=T.byteLength,d=!0,p=T.byteStride,g=T.count,m=T.mode,x=y(T.filter,"NONE")}let b=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=m,this._meshoptFilter=x,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=b,this._bufferId=c,this._byteOffset=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(tb.prototype=Object.create(Xi.prototype),tb.prototype.constructor=tb);Object.defineProperties(tb.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function y3e(e){try{let t=x3e(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);_re.MeshoptDecoder.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=mt.READY,e}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load buffer view",t)}}tb.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=y3e(this),this._promise)};function x3e(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}tb.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var xA=tb;function Fr(){}Fr._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);Fr._decoderTaskProcessor=void 0;Fr._taskProcessorReady=!1;Fr._error=void 0;Fr._getDecoderTaskProcessor=function(){if(!l(Fr._decoderTaskProcessor)){let e=new pi("decodeDraco",Fr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?Fr._taskProcessorReady=!0:Fr._error=new ce("Draco decoder could not be initialized.")}).catch(t=>{Fr._error=t}),Fr._decoderTaskProcessor=e}return Fr._decoderTaskProcessor};Fr.decodePointCloud=function(e){let t=Fr._getDecoderTaskProcessor();if(l(Fr._error))throw Fr._error;if(Fr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Fr.decodeBufferView=function(e){let t=Fr._getDecoderTaskProcessor();if(l(Fr._error))throw Fr._error;if(Fr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var Zp=Fr;function oy(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=mt.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(oy.prototype=Object.create(Xi.prototype),oy.prototype.constructor=oy);Object.defineProperties(oy.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function b3e(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=mt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;gre(e,n)}}oy.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=b3e(this),this._promise)};function gre(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load Draco",t)}async function T3e(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=mt.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}oy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.PROCESSING||(l(this._dracoError)&&gre(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=Zp.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=T3e(this,c)};oy.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var bA=oy;function C3e(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return we.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(we.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new we({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var nb=C3e;function $p(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&($p.prototype=Object.create(Xi.prototype),$p.prototype.constructor=$p);Object.defineProperties($p.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});$p.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=A3e(this),this._promise):(this._promise=E3e(this),this._promise)};function yre(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function A3e(e){e._state=mt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await v3e(i);if(e.isDestroyed())return;let r=yre(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=mt.READY,e}catch(n){return e.isDestroyed()?void 0:xre(e,n,"Failed to load embedded image")}}async function E3e(e){e._state=mt.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await D3e(i);if(e.isDestroyed())return;let r=yre(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=mt.READY,e}catch(o){return e.isDestroyed()?void 0:xre(e,o,`Failed to load image: ${n}`)}}function xre(e,t,n){return e.unload(),e._state=mt.FAILED,Promise.reject(e.getError(n,t))}function S3e(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new ce("Image format is not recognized")}async function v3e(e){let t=S3e(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return Sl(n)}return $p._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var w3e=/(^data:image\/ktx2)|(\.ktx2$)/i;function D3e(e){let t=e.getUrlComponent(!1,!0);return w3e.test(t)?Sl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}$p.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};$p._loadImageFromTypedArray=nb;var TA=$p;var I3e={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},La=Object.freeze(I3e);function ry(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(ry.prototype=Object.create(Xi.prototype),ry.prototype.constructor=ry);Object.defineProperties(ry.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var P3e=new rW;ry.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=R3e(this),this._promise):(this._promise=O3e(this),this._promise)};async function R3e(e){e._state=mt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=mt.LOADED,e)}catch(n){if(e.isDestroyed())return;oW(e,n)}}async function O3e(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=mt.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=M3e(e,a),e._state=mt.PROCESSING,e}catch(s){if(e.isDestroyed())return;oW(e,s)}}function M3e(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ne.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,ds("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ne.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ne.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ne.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function oW(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load index buffer",t)}function rW(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}rW.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};rW.prototype.execute=function(){this.buffer=bre(this.typedArray,this.indexDatatype,this.context)};function bre(e,t,n){let i=_t.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}ry.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){oW(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=P3e;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,La.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=bre(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=mt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};ry.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var CA=ry;function L3e(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var Ss=L3e;function N3e(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var cr=N3e;function qt(){}qt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};qt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(l(r))return r}}};qt.topLevel=function(e,t,n){let i=e[t];return l(i)&&!Array.isArray(i)?qt.objectLegacy(i,n):qt.object(i,n)};qt.accessor=function(e,t){return qt.topLevel(e,"accessors",t)};qt.accessorWithSemantic=function(e,t,n){let i={};return qt.mesh(e,function(o){return qt.meshPrimitive(o,function(r){let s=qt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!l(i[a])){i[a]=!0;let u=n(a);if(l(u))return u}});return l(s)?s:qt.meshPrimitiveTarget(r,function(a){return qt.meshPrimitiveTargetAttribute(a,function(c,u){if(u.indexOf(t)===0&&!l(i[c])){i[c]=!0;let f=n(c);if(l(f))return f}})})})})};qt.accessorContainingVertexAttributeData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=qt.meshPrimitiveAttribute(o,function(s){if(!l(n[s])){n[s]=!0;let a=t(s);if(l(a))return a}});return l(r)?r:qt.meshPrimitiveTarget(o,function(s){return qt.meshPrimitiveTargetAttribute(s,function(a){if(!l(n[a])){n[a]=!0;let c=t(a);if(l(c))return c}})})})})};qt.accessorContainingIndexData=function(e,t){let n={};return qt.mesh(e,function(i){return qt.meshPrimitive(i,function(o){let r=o.indices;if(l(r)&&!l(n[r])){n[r]=!0;let s=t(r);if(l(s))return s}})})};qt.animation=function(e,t){return qt.topLevel(e,"animations",t)};qt.animationChannel=function(e,t){let n=e.channels;return qt.object(n,t)};qt.animationSampler=function(e,t){let n=e.samplers;return qt.object(n,t)};qt.buffer=function(e,t){return qt.topLevel(e,"buffers",t)};qt.bufferView=function(e,t){return qt.topLevel(e,"bufferViews",t)};qt.camera=function(e,t){return qt.topLevel(e,"cameras",t)};qt.image=function(e,t){return qt.topLevel(e,"images",t)};qt.material=function(e,t){return qt.topLevel(e,"materials",t)};qt.materialValue=function(e,t){let n=e.values;l(e.extensions)&&l(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.mesh=function(e,t){return qt.topLevel(e,"meshes",t)};qt.meshPrimitive=function(e,t){let n=e.primitives;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(l(s))return s}}};qt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(l(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(l(r))return r}}};qt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}};qt.node=function(e,t){return qt.topLevel(e,"nodes",t)};qt.nodeInTree=function(e,t,n){let i=e.nodes;if(l(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(l(a)){let c=n(a,s);if(l(c))return c;let u=a.children;if(l(u)&&(c=qt.nodeInTree(e,u,n),l(c)))return c}}}};qt.nodeInScene=function(e,t,n){let i=t.nodes;if(l(i))return qt.nodeInTree(e,i,n)};qt.program=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.programs,t):qt.topLevel(e,"programs",t)};qt.sampler=function(e,t){return qt.topLevel(e,"samplers",t)};qt.scene=function(e,t){return qt.topLevel(e,"scenes",t)};qt.shader=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.shaders,t):qt.topLevel(e,"shaders",t)};qt.skin=function(e,t){return qt.topLevel(e,"skins",t)};qt.skinJoint=function(e,t){let n=e.joints;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(l(s))return s}}};qt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};qt.technique=function(e,t){return cr(e,"KHR_techniques_webgl")?qt.object(e.extensions.KHR_techniques_webgl.techniques,t):qt.topLevel(e,"techniques",t)};qt.texture=function(e,t){return qt.topLevel(e,"textures",t)};var Pe=qt;function F3e(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var Cu=F3e;function B3e(e,t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n];if(l(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*Cu(t.type)}var Fl=B3e;function k3e(e){Pe.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=Ss(e.materials,o)}})}),Pe.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=Fl(e,i),r.target=te.ARRAY_BUFFER}}),Pe.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=te.ELEMENT_ARRAY_BUFFER}}),Pe.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Pe.materialValue(n,function(c){l(c.index)&&ib(c)}),ib(n.emissiveTexture),ib(n.normalTexture),ib(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),ib(s.baseColorTexture),ib(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),ib(a.specularGlossinessTexture))}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=V3e(e);return Pe.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Pe.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function V3e(e){let t={};return Pe.animation(e,function(n){Pe.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function ib(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var j1=k3e;function U3e(e){return Pe.shader(e,function(t){LU(t)}),Pe.buffer(e,function(t){LU(t)}),Pe.image(e,function(t){LU(t)}),LU(e),e}function LU(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var sy=U3e;function z3e(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var q1=z3e;function H3e(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),q1(e,t),n.length===0&&delete e.extensionsUsed}}var ob=H3e;var G3e=4;function W3e(e){if(Gd(e)!=="glTF")throw new ce("File is not valid binary glTF");let n=Tre(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ce("Binary glTF version is not 1 or 2");return i===1?j3e(e,n):q3e(e,n)}function Tre(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r<n;++r)o[r]=i.getUint32(e.byteOffset+t+r*G3e,!0);return o}function j3e(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new ce("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Ol(e,r,i),c=JSON.parse(a);sy(c);let u=e.subarray(s,n),f=c.buffers;if(l(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return ob(c,"KHR_binary_glTF"),c}function q3e(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=Tre(e,i,2),a=s[0],c=s[1];i+=8;let u=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Ol(u);o=JSON.parse(f),sy(o)}else c===5130562&&(r=u)}if(l(o)&&l(r)){let s=o.buffers;if(l(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var Y1=W3e;function Y3e(e){return Pe.shader(e,function(t){NU(t)}),Pe.buffer(e,function(t){NU(t)}),Pe.image(e,function(t){NU(t)}),NU(e),e}function NU(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var X1=Y3e;function X3e(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),Ss(n,t,!0)}var Pf=X3e;function K3e(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt8(n+s*o)};case X.UNSIGNED_BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint8(n+s*o)};case X.SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt16(n+s*o,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint16(n+s*o,!0)};case X.INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt32(n+s*o,!0)};case X.UNSIGNED_INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint32(n+s*o,!0)};case X.FLOAT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat32(n+s*o,!0)};case X.DOUBLE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat64(n+s*o,!0)}}}var Qp=K3e;function Z3e(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=Cu(t.type);if(!l(t.bufferView))return{min:new Array(r).fill(0),max:new Array(r).fill(0)};let s=new Array(r).fill(Number.POSITIVE_INFINITY),a=new Array(r).fill(Number.NEGATIVE_INFINITY),c=n[o],u=c.buffer,d=i[u].extras._pipeline.source,p=t.count,g=Fl(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),C=new Array(r),A=Qp(x);for(let E=0;E<p;E++){A(T,m,r,b,C);for(let v=0;v<r;v++){let D=C[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}m+=g}return{min:s,max:a}}var rb=Z3e;var $3e=[te.FUNC_ADD,te.FUNC_ADD],Q3e=[te.ONE,te.ZERO,te.ONE,te.ZERO];function Cre(e,t){let n=e.enable;return l(n)?n.indexOf(t)>-1:!1}var J3e=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function eke(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(J3e.indexOf(e[n])===-1)return t;return e}function tke(e){let t={},n={},i=e.techniques;return l(i)&&(Pe.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(Cre(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,$3e),blendFactors:eke(c.blendFuncSeparate,Q3e)})}Cre(s,te.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),Pf(e,"KHR_blend")),Pe.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Pe.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var K1=tke;function nke(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),Ss(n,t,!0),Pf(e,t)}var Z1=nke;function ike(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Pe.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Pe.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Pe.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=Ss(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=Ss(r.shaders,m,!0),u.program=Ss(r.programs,p),o[a.program]=u.program}i[c]=Ss(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,Pf(e,"KHR_techniques_webgl"),Z1(e,"KHR_techniques_webgl"))}return Pe.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Pe.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var $1=ike;function oke(e,t){xo.typeOf.object("material",e),xo.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let c=r.diffuseTexture,u=t(c.index,c);if(l(u))return u}if(l(r.specularGlossinessTexture)){let c=r.specularGlossinessTexture,u=t(c.index,c);if(l(u))return u}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:c,specularColorTexture:u}=s;if(l(c)){let f=t(c.index,c);if(l(f))return f}if(l(u)){let f=t(u.index,u);if(l(f))return f}}let a=i.KHR_materials_common;if(l(a)&&l(a.values)){let{diffuse:c,ambient:u,emission:f,specular:d}=a.values;if(l(c)&&l(c.index)){let p=t(c.index,c);if(l(p))return p}if(l(u)&&l(u.index)){let p=t(u.index,u);if(l(p))return p}if(l(f)&&l(f.index)){let p=t(f.index,f);if(l(p))return p}if(l(d)&&l(d.index)){let p=t(d.index,d);if(l(p))return p}}}let o=Pe.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var AA=oke;var Are=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function rke(e,t){return t=y(t,Are),Are.forEach(function(n){t.indexOf(n)>-1&&ake(e,n)}),e}var ske={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function ake(e,t){let n=ske[t],i=e[n];if(l(i)){let o=0,r=mm[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(hm[t](e,a-o),o++)}}function hm(){}hm.accessor=function(e,t){e.accessors.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){Pe.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Pe.meshPrimitiveTarget(o,function(a){Pe.meshPrimitiveTargetAttribute(a,function(c,u){c>t&&a[u]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Pe.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Pe.animation(e,function(i){Pe.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};hm.buffer=function(e,t){e.buffers.splice(t,1),Pe.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};hm.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Pe.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Pe.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),cr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),cr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];l(f.values)&&f.values>t&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};hm.image=function(e,t){e.images.splice(t,1),Pe.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};hm.mesh=function(e,t){e.meshes.splice(t,1),Pe.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};hm.node=function(e,t){e.nodes.splice(t,1),Pe.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Pe.animation(e,function(i){Pe.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Pe.technique(e,function(i){Pe.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Pe.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Pe.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};hm.material=function(e,t){e.materials.splice(t,1),Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};hm.sampler=function(e,t){e.samplers.splice(t,1),Pe.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};hm.texture=function(e,t){if(e.textures.splice(t,1),Pe.material(e,function(i){AA(i,function(o,r){r.index>t&&--r.index})}),cr(e,"EXT_feature_metadata")){Pe.mesh(e,function(r){Pe.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let g=u[d].featureIds.texture;g.index>t&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(cr(e,"EXT_mesh_features")&&Pe.mesh(e,function(i){Pe.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;u<c;++u){let f=a[u];l(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),cr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];f.index>t&&--f.index}}}}};function mm(){}mm.accessor=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Pe.meshPrimitiveTarget(i,function(r){Pe.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Pe.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Pe.animation(e,function(n){Pe.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),cr(e,"EXT_mesh_gpu_instancing")&&Pe.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),cr(e,"CESIUM_primitive_outline")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};mm.buffer=function(e){let t={};return Pe.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};mm.bufferView=function(e){let t={};if(Pe.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Pe.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),cr(e,"KHR_draco_mesh_compression")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),cr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.values)&&(t[u.values]=!0),l(u.arrayOffsets)&&(t[u.arrayOffsets]=!0),l(u.stringOffsets)&&(t[u.stringOffsets]=!0)}}}}return t};mm.image=function(e){let t={};return Pe.texture(e,function(n){l(n.source)&&(t[n.source]=!0),l(n.extensions)&&l(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:l(n.extensions)&&l(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};mm.mesh=function(e){let t={};return Pe.node(e,function(n){if(l(n.mesh&&l(e.meshes))){let i=e.meshes[n.mesh];l(i)&&l(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Ere(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Ere(e,o,n)}).length===0}mm.node=function(e){let t={};return Pe.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Pe.skinJoint(n,function(i){t[i]=!0})}),Pe.animation(e,function(n){Pe.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Pe.technique(e,function(n){Pe.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Pe.node(e,function(n,i){Ere(e,i,t)||(t[i]=!0)}),t};mm.material=function(e){let t={};return Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};mm.texture=function(e){let t={};if(Pe.material(e,function(n){AA(n,function(i){t[i]=!0})}),cr(e,"EXT_feature_metadata")){Pe.mesh(e,function(o){Pe.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f<u;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].texture;t[u.index]=!0}}}}if(cr(e,"EXT_mesh_features")&&Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(l(s)){let a=s.length;for(let c=0;c<a;++c){let u=s[c];l(u.texture)&&(t[u.texture.index]=!0)}}}})}),cr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];t[u.index]=!0}}}}return t};mm.sampler=function(e){let t={};return Pe.texture(e,function(n){l(n.sampler)&&(t[n.sampler]=!0)}),t};var Q1=rke;function cke(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:Ss(e.buffers,n),byteOffset:0,byteLength:t.length};return Ss(e.bufferViews,o)}var J1=cke;function lke(e,t){let n=Fl(e,t),i=X.getSizeInBytes(t.componentType),o=Cu(t.type),r=t.count,s=new Array(o*r);if(!l(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,u=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=Qp(t.componentType);for(let g=0;g<r;++g){p(f,u,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];u+=n}return s}var eR=lke;function uke(e){let t;return Pe.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?FU(e,i,X.UNSIGNED_BYTE):t!==te.UNSIGNED_BYTE&&t!==te.UNSIGNED_SHORT&&FU(e,i,X.UNSIGNED_SHORT)}),Pe.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?FU(e,i,X.UNSIGNED_BYTE):t===te.SHORT&&FU(e,i,X.UNSIGNED_SHORT)}),e}function FU(e,t,n){let i=X.createTypedArray(n,eR(e,t)),o=new Uint8Array(i.buffer);t.bufferView=J1(e,o),t.componentType=n,t.byteOffset=0}var tR=uke;function fke(e,t){return ob(e,t),t==="CESIUM_RTC"&&dke(e),sW(e,t)}function dke(e){Pe.technique(e,function(t){Pe.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function sW(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)sW(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;l(n)&&(i=n[t],l(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&sW(e[o],t);return i}}var sb=fke;var BU={.8:yke,"1.0":Vke,"2.0":void 0};function hke(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(BU,i)||(l(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(BU,i)||(i="1.0"));let o=BU[i];for(;l(o)&&i!==n;)o(e,t),i=e.asset.version,o=BU[i];return t.keepLegacyExtensions||(Hke(e,t),Gke(e)),e}function wre(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;l(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function mke(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,te.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function pke(e){let t=e.nodes,n=new h,i=new Oe;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(l(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Oe.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;l(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function _ke(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Oe;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let u=t[c],f=u.channels,d=u.parameters,p=u.samplers;if(l(f)){let g=f.length;for(let m=0;m<g;++m){let x=f[m];if(x.target.path==="rotation"){let b=d[p[x.sampler].output];if(l(r[b]))continue;r[b]=!0;let T=n[b],C=i[T.bufferView],E=o[C.buffer].extras._pipeline.source,v=E.byteOffset+C.byteOffset+T.byteOffset,D=T.componentType,O=T.count,R=Cu(T.type),M=T.count*R,N=X.createArrayBufferView(D,E.buffer,v,M);for(let _=0;_<O;_++){let S=_*R;h.unpack(N,S,s);let w=N[S+3];Oe.fromAxisAngle(s,w,a),Oe.pack(a,N,S)}}}}}}function gke(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.passes;if(l(o)){let r=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(o,r)){let s=o[r],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function yke(e){l(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(l(e.version)&&delete e.version,wre(e),mke(e),pke(e),_ke(e),gke(e),l(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),l(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,Pf(e,"KHR_materials_common")}}function xke(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.parameters;if(l(o)){let r=i.samplers;for(let s in r)if(Object.prototype.hasOwnProperty.call(r,s)){let a=r[s];a.input=o[a.input],a.output=o[a.output]}delete i.parameters}}}function Sre(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i];t[i]=n.length,n.push(o),l(o.name)||(o.name=i)}return n}function bke(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,o={},r=e.nodes;for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&(i=r[s].jointName,l(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&l(n[s])){let a={},c=e[s];e[s]=Sre(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);l(e.scene)&&(e.scene=n.scenes[e.scene]),Pe.bufferView(e,function(s){l(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Pe.accessor(e,function(s){l(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Pe.shader(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.program(e,function(s){l(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),l(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Pe.technique(e,function(s){l(s.program)&&(s.program=n.programs[s.program]),Pe.techniqueParameter(s,function(a){l(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Pe.mesh(e,function(s){Pe.meshPrimitive(s,function(a){l(a.indices)&&(a.indices=n.accessors[a.indices]),Pe.meshPrimitiveAttribute(a,function(c,u){a.attributes[u]=n.accessors[c]}),l(a.material)&&(a.material=n.materials[a.material])})}),Pe.node(e,function(s){let a=s.children;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(l(s.meshes)){let c=s.meshes,u=c.length;if(u>0)for(s.mesh=n.meshes[c[0]],t=1;t<u;++t){let f={mesh:n.meshes[c[t]]},d=Ss(e.nodes,f);l(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(l(s.camera)&&(s.camera=n.cameras[s.camera]),l(s.skin)&&(s.skin=n.skins[s.skin]),l(s.skeletons)){let c=s.skeletons;if(c.length>0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Pe.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t<u;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Pe.scene(e,function(s){let a=s.nodes;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Pe.animation(e,function(s){let a={};s.samplers=Sre(s.samplers,a),Pe.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Pe.animationChannel(s,function(c){c.sampler=a[c.sampler];let u=c.target;l(u)&&(u.node=n.nodes[u.id],delete u.id)})}),Pe.material(e,function(s){l(s.technique)&&(s.technique=n.techniques[s.technique]),Pe.materialValue(s,function(c,u){typeof c=="string"&&(s.values[u]={index:n.textures[c]})});let a=s.extensions;if(l(a)){let c=a.KHR_materials_common;l(c)&&l(c.values)&&Pe.materialValue(c,function(u,f){typeof u=="string"&&(c.values[f]={index:n.textures[u]})})}}),Pe.image(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Pe.texture(e,function(s){l(s.sampler)&&(s.sampler=n.samplers[s.sampler]),l(s.source)&&(s.source=n.images[s.source])})}function Tke(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){delete n.name})})}function Cke(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Pe.node(e,function(t){l(t.children)&&t.children.length===0&&delete t.children})}function Ake(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var Eke={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function Ske(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),l(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];l(Eke[o])&&e.extensionsRequired.push(o)}}}function vke(e){Pe.buffer(e,function(t){delete t.type})}function wke(e){Pe.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function Dke(e){Pe.mesh(e,function(t){Pe.meshPrimitive(t,function(n){Pe.meshPrimitiveAttribute(n,function(i,o){o==="TEXCOORD"?n.attributes.TEXCOORD_0=i:o==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Pe.technique(e,function(t){Pe.techniqueParameter(t,function(n){let i=n.semantic;l(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var Ike={POSITION:!0,NORMAL:!0,TANGENT:!0},Pke={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function Rke(e){let t={};Pe.mesh(e,function(n){Pe.meshPrimitive(n,function(i){Pe.meshPrimitiveAttribute(i,function(o,r){if(r.charAt(0)!=="_"){let s=r.search(/_[0-9]+/g),a=r,c="_0";s>=0&&(a=r.substring(0,s),c=r.substring(s));let u,f=Pke[a];l(f)?(u=f+c,t[r]=u):l(Ike[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Pe.technique(e,function(n){Pe.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function Oke(e){Pe.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function cW(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:Fl(e,t)}function Mke(e){Pe.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Pe.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=cW(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function Lke(e){let t,n,i,o=e.bufferViews,r={};Pe.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Pe.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let u=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=cW(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?cW(e,c[t+1]):void 0;if(g!==T){let C=Ge(i,!0);r[a]&&(C.byteStride=g),C.byteOffset+=u,C.byteLength=m+x-u;let A=Ss(o,C);for(n=f;n<=t;++n)p=c[n],p.bufferView=A,p.byteOffset=p.byteOffset-u;u=b?c[t+1].byteOffset:void 0,f=t+1}}}Q1(e,["accessor","bufferView","buffer"])}function Nke(e){Pe.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!l(n.min)||!l(n.max)){let i=rb(e,n);n.min=i.min,n.max=i.max}})}function Dre(e){return(!l(e.children)||e.children.length===0)&&(!l(e.meshes)||e.meshes.length===0)&&!l(e.camera)&&!l(e.skin)&&!l(e.skeletons)&&!l(e.jointName)&&(!l(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!l(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!l(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!l(e.matrix)||F.fromColumnMajorArray(e.matrix).equals(F.IDENTITY))&&!l(e.extensions)&&!l(e.extras)}function Ire(e,t){Pe.scene(e,function(n){let i=n.nodes;if(l(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Pe.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),Dre(n)&&Ire(e,i))}}),delete e.nodes[t]}function Fke(e){return Pe.node(e,function(t,n){Dre(t)&&Ire(e,n)}),e}function Bke(e){Pe.animation(e,function(t){Pe.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=rb(e,i);i.min=o.min,i.max=o.max}})})}function kke(e){Pe.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=rb(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function Vke(e){e.asset=y(e.asset,{}),e.asset.version="2.0",wre(e),xke(e),Fke(e),bke(e),Tke(e),Ake(e),Ske(e),Mke(e),Lke(e),Nke(e),Bke(e),kke(e),vke(e),wke(e),Dke(e),Rke(e),tR(e),Oke(e),K1(e),$1(e),Cke(e)}var Uke=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],zke=["u_diffuse","u_diffuse_mat"];function lW(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function uW(e){return l(e.index)}function fW(e){return Array.isArray(e)&&e.length===4}function Pre(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function Hke(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,Uke),i=y(t.baseColorFactorNames,zke);Pe.material(e,function(o){Pe.materialValue(o,function(r,s){n.indexOf(s)!==-1&&uW(r)?(lW(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&fW(r)&&(lW(o),o.pbrMetallicRoughness.baseColorFactor=Pre(r))})}),sb(e,"KHR_techniques_webgl"),sb(e,"KHR_blend")}function aW(e,t){l(t)&&(fW(t)?e.pbrMetallicRoughness.baseColorFactor=Pre(t):uW(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function vre(e,t){l(t)&&(fW(t)?e.emissiveFactor=t.slice(0,3):uW(t)&&(e.emissiveTexture=t))}function Gke(e){Pe.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(!l(n))return;let i=y(n.values,{}),o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,u=n.transparent;lW(t),n.technique==="CONSTANT"?(Pf(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},aW(t,s),aW(t,o)):(aW(t,r),vre(t,o),vre(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(u)&&(t.alphaMode=u?"BLEND":"OPAQUE")}),sb(e,"KHR_materials_common")}var nR=hke;var ri={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function Wke(e){switch(e){case ri.POSITION:return"positionMC";case ri.NORMAL:return"normalMC";case ri.TANGENT:return"tangentMC";case ri.TEXCOORD:return"texCoord";case ri.COLOR:return"color";case ri.JOINTS:return"joints";case ri.WEIGHTS:return"weights";case ri.FEATURE_ID:return"featureId"}}ri.hasSetIndex=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return!1;case ri.TEXCOORD:case ri.COLOR:case ri.JOINTS:case ri.WEIGHTS:case ri.FEATURE_ID:return!0}};ri.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return ri.POSITION;case"NORMAL":return ri.NORMAL;case"TANGENT":return ri.TANGENT;case"TEXCOORD":return ri.TEXCOORD;case"COLOR":return ri.COLOR;case"JOINTS":return ri.JOINTS;case"WEIGHTS":return ri.WEIGHTS;case"_FEATURE_ID":return ri.FEATURE_ID}};ri.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return ri.POSITION;case"RGBA":case"RGB":case"RGB565":return ri.COLOR;case"NORMAL":case"NORMAL_OCT16P":return ri.NORMAL;case"BATCH_ID":return ri.FEATURE_ID}};ri.getGlslType=function(e){switch(e){case ri.POSITION:case ri.NORMAL:case ri.TANGENT:return"vec3";case ri.TEXCOORD:return"vec2";case ri.COLOR:return"vec4";case ri.JOINTS:return"ivec4";case ri.WEIGHTS:return"vec4";case ri.FEATURE_ID:return"int"}};ri.getVariableName=function(e,t){let n=Wke(e);return l(t)&&(n+=`_${t}`),n};var Tt=Object.freeze(ri);function lc(){}lc.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new ce(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};lc.getNodeTransform=function(e){return l(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:Oe.IDENTITY,l(e.scale)?e.scale:h.ONE)};lc.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=l(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};lc.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.name===t)return r}};lc.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};lc.hasQuantizedAttributes=function(e){if(!l(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(l(n.quantization))return!0}return!1};lc.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;l(t)?(i=Tt.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=on.getGlslType(s);r&&(a="vec4");let c=l(e.quantization),u;return c&&(u=r?"vec4":on.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:u}};var jke=new h,qke=new h;lc.getPositionMinMax=function(e,t,n){let i=lc.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return l(n)&&l(t)&&(r=h.add(r,t,qke),o=h.add(o,n,jke)),{min:r,max:o}};lc.getAxisCorrectionMatrix=function(e,t,n){return n=F.clone(F.IDENTITY,n),e===Oo.Y?n=F.clone(Oo.Y_UP_TO_Z_UP,n):e===Oo.X&&(n=F.clone(Oo.X_UP_TO_Z_UP,n)),t===Oo.Z&&(n=F.multiplyTransformation(n,Oo.Z_UP_TO_X_UP,n)),n};var Yke=new $;lc.getCullFace=function(e,t){if(!Me.isTriangles(t))return gi.BACK;let n=F.getMatrix3(e,Yke);return $.determinant(n)<0?gi.FRONT:gi.BACK};lc.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};lc.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_specular:!0,KHR_materials_anisotropy:!0,KHR_materials_clearcoat:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};lc.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!lc.supportedExtensions[i])throw new ce(`Unsupported glTF Extension: ${i}`)}};var Kt=lc;function ay(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,o=e.typedArray,r=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=o,this._gltfJson=r,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(ay.prototype=Object.create(Xi.prototype),ay.prototype.constructor=ay);Object.defineProperties(ay.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});ay.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,l(this._gltfJson)?(this._promise=Rre(this,this._gltfJson),this._promise):l(this._typedArray)?(this._promise=Ore(this,this._typedArray),this._promise):(this._promise=Xke(this),this._promise))};async function Xke(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;dW(e,n)}return Ore(e,t)}function dW(e,t){e.unload(),e._state=mt.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function Kke(e,t){if(l(t.asset)&&t.asset.version==="2.0"&&!cr(t,"KHR_techniques_webgl")&&!cr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Pe.buffer(t,function(i){if(!l(i.extras._pipeline.source)&&l(i.uri)){let o=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:o});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),nR(t)}function Zke(e){let t=[];return Pe.buffer(e,function(n){let i=n.uri;!l(n.extras._pipeline.source)&&l(i)&&xp(i)&&(delete n.uri,t.push(we.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function $ke(e,t){let n=[];return Pe.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(l(r)&&!l(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:o,typedArray:r});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function Rre(e,t){try{sy(t),await Zke(t),await Kke(e,t),j1(t),await $ke(e,t),X1(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new ce(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return l(i)&&Kt.checkSupportedExtensions(i),e._gltf=t,e._state=mt.READY,e}catch(n){if(e.isDestroyed())return;dW(e,n)}}async function Ore(e,t){let n;try{Gd(t)==="glTF"?n=Y1(t):n=Mo(t)}catch(i){if(e.isDestroyed())return;dW(e,i)}return Rre(e,n)}ay.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};ay.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var EA=ay;var Qke={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},pm=Object.freeze(Qke);var Ao={};function Jke(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function eVe(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function tVe(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function nVe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function iVe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function oVe(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function rVe(){this.attributes=[]}function sVe(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function aVe(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function cVe(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function lVe(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function uVe(){this.nodes=[]}var fVe={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function dVe(){this.input=[],this.interpolation=void 0,this.output=[]}function hVe(){this.node=void 0,this.path=void 0}function mVe(){this.sampler=void 0,this.target=void 0}function pVe(){this.name=void 0,this.samplers=[],this.channels=[]}function _Ve(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function gVe(){this.name=void 0,this.stages=[]}function Mre(){this.credits=[]}function yVe(){this.asset=new Mre,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=F.clone(F.IDENTITY),this.extensions={}}function xVe(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=$.clone($.IDENTITY),this.scale=1,this.channels=void 0}function cy(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(cy.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=cy.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=cy.DEFAULT_ROUGHNESS_FACTOR}cy.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;cy.DEFAULT_METALLIC_FACTOR=1;cy.DEFAULT_ROUGHNESS_FACTOR=1;function ab(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(ab.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(ab.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=ab.DEFAULT_GLOSSINESS_FACTOR}ab.DEFAULT_DIFFUSE_FACTOR=oe.ONE;ab.DEFAULT_SPECULAR_FACTOR=h.ONE;ab.DEFAULT_GLOSSINESS_FACTOR=1;function iR(){this.specularFactor=iR.DEFAULT_SPECULAR_FACTOR,this.specularTexture=void 0,this.specularColorFactor=h.clone(iR.DEFAULT_SPECULAR_COLOR_FACTOR),this.specularColorTexture=void 0}iR.DEFAULT_SPECULAR_FACTOR=1;iR.DEFAULT_SPECULAR_COLOR_FACTOR=h.ONE;function oR(){this.anisotropyStrength=oR.DEFAULT_ANISOTROPY_STRENGTH,this.anisotropyRotation=oR.DEFAULT_ANISOTROPY_ROTATION,this.anisotropyTexture=void 0}oR.DEFAULT_ANISOTROPY_STRENGTH=0;oR.DEFAULT_ANISOTROPY_ROTATION=0;function rR(){this.clearcoatFactor=rR.DEFAULT_CLEARCOAT_FACTOR,this.clearcoatTexture=void 0,this.clearcoatRoughnessFactor=rR.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,this.clearcoatRoughnessTexture=void 0,this.clearcoatNormalTexture=void 0}rR.DEFAULT_CLEARCOAT_FACTOR=0;rR.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR=0;function hW(){this.metallicRoughness=new cy,this.specularGlossiness=void 0,this.specular=void 0,this.anisotropy=void 0,this.clearcoat=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(hW.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=pm.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}hW.DEFAULT_EMISSIVE_FACTOR=h.ZERO;Ao.Quantization=Jke;Ao.Attribute=eVe;Ao.Indices=tVe;Ao.FeatureIdAttribute=nVe;Ao.FeatureIdTexture=oVe;Ao.FeatureIdImplicitRange=iVe;Ao.MorphTarget=rVe;Ao.Primitive=sVe;Ao.Instances=aVe;Ao.Skin=cVe;Ao.Node=lVe;Ao.Scene=uVe;Ao.AnimatedPropertyType=Object.freeze(fVe);Ao.AnimationSampler=dVe;Ao.AnimationTarget=hVe;Ao.AnimationChannel=mVe;Ao.Animation=pVe;Ao.ArticulationStage=_Ve;Ao.Articulation=gVe;Ao.Asset=Mre;Ao.Components=yVe;Ao.TextureReader=xVe;Ao.MetallicRoughness=cy;Ao.SpecularGlossiness=ab;Ao.Specular=iR;Ao.Anisotropy=oR;Ao.Clearcoat=rR;Ao.Material=hW;var xn=Ao;var kU={};kU.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureId:n,supportedImageFormats:i}=e,o=t.textures[n],r=o.extensions;if(l(r)){if(i.webp&&l(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&l(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};kU.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,compressedTextureNoMipmap:i=!1}=e,o=Tn.REPEAT,r=Tn.REPEAT,s=Zt.LINEAR,a=di.LINEAR,c=n.index,f=t.textures[c].sampler;if(l(f)){let d=t.samplers[f];o=y(d.wrapS,o),r=y(d.wrapT,r),s=y(d.minFilter,s),a=y(d.magFilter,a)}return i&&s!==Zt.LINEAR&&s!==Zt.NEAREST&&(s===Zt.NEAREST_MIPMAP_NEAREST||s===Zt.NEAREST_MIPMAP_LINEAR?s=Zt.NEAREST:s=Zt.LINEAR),new $t({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var bVe=new z(1,1);kU.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let{textureInfo:t,channels:n,texture:i}=e,o=y(t.texCoord,0),r,s=t.extensions?.KHR_texture_transform;if(l(s)){o=y(s.texCoord,o);let c=l(s.offset)?z.unpack(s.offset):z.ZERO,u=y(s.rotation,0),f=l(s.scale)?z.unpack(s.scale):bVe;u=-u,r=new $(Math.cos(u)*f.x,-Math.sin(u)*f.y,c.x,Math.sin(u)*f.x,Math.cos(u)*f.y,c.y,0,0,1)}let a=new xn.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.scale=t.scale,a.transform=r,a.channels=n,a};var Bl=kU;function TVe(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var ly=TVe;function uy(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),u=i.index,f=Bl.getImageIdFromTexture({gltf:n,textureId:u,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=o,this._baseResource=r,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(uy.prototype=Object.create(Xi.prototype),uy.prototype.constructor=uy);Object.defineProperties(uy.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var CVe=new mW;async function AVe(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=mt.LOADED,e)}catch(n){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load texture",n)}}uy.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=AVe(this),this._promise)};function mW(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}mW.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};mW.prototype.execute=function(){this.texture=Lre(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Lre(e,t,n,i,o){let r=n.internalFormat,s=!1;Je.isCompressedFormat(r)&&!l(i)&&(s=!0);let a=Bl.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,u=a.wrapS,f=a.wrapT,d=c===Zt.NEAREST_MIPMAP_NEAREST||c===Zt.NEAREST_MIPMAP_LINEAR||c===Zt.LINEAR_MIPMAP_NEAREST||c===Zt.LINEAR_MIPMAP_LINEAR,p=!l(r)&&d,g=p||u===Tn.REPEAT||u===Tn.MIRRORED_REPEAT||f===Tn.REPEAT||f===Tn.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),x=g&&m,b;return l(r)?(!o.webgl2&&Je.isCompressedFormat(r)&&m&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),b=Pt.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(x&&(n=ly(n)),b=Pt.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}uy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING||l(this._texture)||!l(this._image))return!1;this._state=mt.PROCESSING;let t;if(this._asynchronous){let n=CVe;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,La.TEXTURE))return;t=n.texture}else t=Lre(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=mt.READY,this._resourceCache.statistics.addTextureLoader(this),!0};uy.prototype.unload=function(){l(this._texture)&&this._texture.destroy(),l(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var SA=uy;function fy(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,o=e.baseResource,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,u=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=o,this._gltf=n,this._bufferViewId=r,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=u,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(fy.prototype=Object.create(Xi.prototype),fy.prototype.constructor=fy);Object.defineProperties(fy.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function EVe(e,t){return l(e)&&l(e.attributes)&&l(e.attributes[t])}fy.prototype.load=async function(){return l(this._promise)?this._promise:EVe(this._draco,this._attributeSemantic)?(this._promise=vVe(this),this._promise):(this._promise=DVe(this),this._promise)};function SVe(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new xn.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=on.VEC2,a.normalizationRange=r;else{let c=on.getMathType(i);if(c===Number){let u=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=u,a.normalizationRange=r,a.quantizedVolumeStepSize=u*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let u=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(u);let f=u.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function vVe(e){e._state=mt.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=mt.LOADED,e)}catch{if(e.isDestroyed())return;pW(e)}}function wVe(e){e._state=mt.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,o=n[i],r=e._accessorId,a=e._gltf.accessors[r].type,c=o.array,u=o.data.quantization;l(u)&&(e._quantization=SVe(u,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function DVe(e){e._state=mt.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=mt.PROCESSING,e)}catch(n){if(e.isDestroyed())return;pW(e,n)}}function pW(e,t){throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load vertex buffer",t)}function _W(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}_W.prototype.set=function(e,t){this.typedArray=e,this.context=t};_W.prototype.execute=function(){this.buffer=Nre(this.typedArray,this.context)};function Nre(e,t){let n=_t.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var IVe=new _W;fy.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED&&this._state!==mt.PROCESSING)return!1;if(l(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){pW(this,i)}wVe(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=IVe;if(i.set(n,e.context),!e.jobScheduler.execute(i,La.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Nre(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=mt.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};fy.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var vA=fy;function sR(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}sR.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=ny.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new sR({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties(sR.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});sR.BATCH_TABLE_CLASS_NAME="_batchTable";var qd=sR;function VU(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}VU.fromJson=function(e){return new VU({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(VU.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var aR=VU;function UU(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a<r;++a){let c=n[a];i[c.value]=c.name,o[c.name]=c.value}let s=y(e.valueType,zt.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=o,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}UU.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return aR.fromJson(o)});return new UU({id:t,values:i,valueType:zt[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(UU.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var cR=UU;function zU(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}zU.fromJson=function(e){let t={};if(l(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=cR.fromJson({id:i,enum:e.enums[i]}));let n={};if(l(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=qd.fromJson({id:i,class:e.classes[i],enums:t}));return new zU({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(zU.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Au=zU;function cb(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=l(t)?Au.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(cb.prototype=Object.create(Xi.prototype),cb.prototype.constructor=cb);Object.defineProperties(cb.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});cb.prototype.load=async function(){return l(this._promise)?this._promise:l(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=PVe(this),this._promise)};async function PVe(e){let t=e._resource;e._state=mt.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=Au.fromJson(n),e._state=mt.READY,e)}catch(n){if(e.isDestroyed())return;e._state=mt.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}cb.prototype.unload=function(){this._schema=void 0};var wA=cb;var Yd={};function DA(e){return Kh(e.url)}function HU(e){let{byteOffset:t,byteLength:n}=e;if(oi(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function RVe(e,t){let n=t.byteOffset+e.byteOffset,{componentType:i,type:o,count:r}=e;return`${n}-${i}-${o}-${r}`}function Fre(e,t){return`${DA(e)}-buffer-id-${t}`}function lR(e,t,n,i){if(l(e.uri)){let o=i.getDerivedResource({url:e.uri});return DA(o)}return Fre(n,t)}function gW(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=lR(a,s,n,i),u=HU(r);return`${c}-range-${u}`}function Bre(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(l(s)){let p=i.getDerivedResource({url:s});return DA(p)}let a=e.bufferViews[r],c=a.buffer,u=e.buffers[c],f=lR(u,c,n,i),d=HU(a);return`${f}-range-${d}`}function OVe(e,t){let n=Bl.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}Yd.getSchemaCacheKey=function(e){let{schema:t,resource:n}=e;return l(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${DA(n)}`};Yd.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e;return`external-buffer:${DA(t)}`};Yd.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n}=e;return`embedded-buffer:${Fre(t,n)}`};Yd.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t}=e;return`gltf:${DA(t)}`};Yd.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];oi(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=lR(a,s,i,o),u=HU(r);return`buffer-view:${c}-range-${u}`};Yd.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e;return`draco:${gW(t,n,i,o)}`};Yd.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:c=!1,loadBuffer:u=!1,loadTypedArray:f=!1}=e,d="";if(c&&(d+="-dequantize"),u&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),l(s))return`vertex-buffer:${gW(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=lR(m,g,n,i),b=HU(p);return`vertex-buffer:${x}-range-${b}${d}`};Yd.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:a=!1,loadTypedArray:c=!1}=e,u="";if(a&&(u+="-buffer",u+=`-context-${r.context.id}`),c&&(u+="-typed-array"),l(s))return`index-buffer:${gW(t,s,i,o)}-draco${u}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=lR(m,g,i,o),b=RVe(f,p);return`index-buffer:${x}-accessor-${b}${u}`};Yd.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e;return`image:${Bre(t,n,i,o)}`};Yd.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}=e,a=n.index,c=Bl.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),u=Bre(t,c,i,o),f=OVe(t,n);return`texture:${u}-sampler-${f}-context-${s.context.id}`};var kl=Yd;function uR(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}uR.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};uR.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,o=0;l(n)&&(o+=n.sizeInBytes),l(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};uR.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};uR.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],l(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],l(i)&&(this.texturesByteLength-=i)};var fR=uR;function Nn(){}Nn.cacheEntries={};Nn.statistics=new fR;function MVe(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Nn.get=function(e){let t=Nn.cacheEntries[e];if(l(t))return++t.referenceCount,t.resourceLoader};Nn.add=function(e){let t=e.cacheKey;return Nn.cacheEntries[t]=new MVe(e),e};Nn.unload=function(e){let t=e.cacheKey,n=Nn.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Nn.statistics.removeLoader(e),e.destroy(),delete Nn.cacheEntries[t])};Nn.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{schema:t,resource:n}=e,i=kl.getSchemaCacheKey({schema:t,resource:n}),o=Nn.get(i);return l(o)?o:(o=new wA({schema:t,resource:n,cacheKey:i}),Nn.add(o))};Nn.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n,typedArray:i}=e,o=kl.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Nn.get(o);return l(r)?r:(r=new eb({typedArray:i,cacheKey:o}),Nn.add(r))};Nn.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e,n=kl.getExternalBufferCacheKey({resource:t}),i=Nn.get(n);return l(i)?i:(i=new eb({resource:t,cacheKey:n}),Nn.add(i))};Nn.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,baseResource:n,typedArray:i,gltfJson:o}=e,r=kl.getGltfCacheKey({gltfResource:t}),s=Nn.get(r);return l(s)?s:(s=new EA({resourceCache:Nn,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Nn.add(s))};Nn.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=kl.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new xA({resourceCache:Nn,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e,r=kl.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new bA({resourceCache:Nn,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,asynchronous:u=!0,dequantize:f=!1,loadBuffer:d=!1,loadTypedArray:p=!1}=e,g=kl.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Nn.get(g);return l(m)?m:(m=new vA({resourceCache:Nn,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:u,dequantize:f,loadBuffer:d,loadTypedArray:p}),Nn.add(m))};Nn.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,asynchronous:a=!0,loadBuffer:c=!1,loadTypedArray:u=!1}=e,f=kl.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:u}),d=Nn.get(f);return l(d)?d:(d=new CA({resourceCache:Nn,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:u}),Nn.add(d))};Nn.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e,r=kl.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Nn.get(r);return l(s)?s:(s=new TA({resourceCache:Nn,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Nn.add(s))};Nn.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a=!0}=e,c=kl.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),u=Nn.get(c);return l(u)?u:(u=new SA({resourceCache:Nn,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Nn.add(u))};Nn.clearForSpecs=function(){let e=[vA,CA,bA,SA,TA,xA,eb,wA,EA],t,n=Nn.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(r,s){let a=e.indexOf(r.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let o=i.length;for(let r=0;r<o;++r){let s=i[r];t=s.resourceLoader.cacheKey,l(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Nn.statistics.clear()};var Ci=Nn;function ua(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(ua.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});ua.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};ua.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};ua.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};ua.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};ua.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};ua.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};ua.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};ua.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===es.OCTREE&&(t=3),e>>t};ua.fromSubtreeJson=async function(e,t,n,i,o){let r=new ua(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=LVe(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let C=a.tileMetadata;c=a.propertyTables[C]}let u=[];if(l(a.contentMetadata)){let C=a.contentMetadata.length;for(let A=0;A<C;A++){let E=a.contentMetadata[A];u.push(a.propertyTables[E])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(l(p)){let C=p.class,A=d.classes[C];f=new k1({subtreeMetadata:p,class:A})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=u;let g={constant:0};a.contentAvailabilityHeaders=[],oi(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let m=NVe(a.buffers),x=FVe(a.bufferViews,m);BVe(a,x),l(c)&&kre(c,x);for(let C=0;C<u.length;C++){let A=u[C];kre(A,x)}let b=await kVe(r,m,s.binary),T=UVe(x,b);return zVe(r,a,i,T),l(c)&&(HVe(r,i,T),WVe(r)),GVe(r,i,T),jVe(r),r._ready=!0,r};function LVe(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Mo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function NVe(e){e=l(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=l(n.uri),n.isActive=!1}return e}function FVe(e,t){e=l(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],o=t[i.buffer];i.bufferHeader=o,i.isActive=!1}return e}function BVe(e,t){let n,i=e.tileAvailability;l(i.bitstream)?n=t[i.bitstream]:l(i.bufferView)&&(n=t[i.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,l(o[s].bitstream)?n=t[o[s].bitstream]:l(o[s].bufferView)&&(n=t[o[s].bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;l(r.bitstream)?n=t[r.bitstream]:l(r.bufferView)&&(n=t[r.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function kre(e,t){let n=e.properties,i;for(let o in n)if(n.hasOwnProperty(o)){let r=n[o],s=y(r.values,r.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(r.stringOffsets,r.stringOffsetBufferView);l(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);l(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function kVe(e,t,n){let i=[];for(let o=0;o<t.length;o++){let r=t[o];if(!r.isActive)i.push(Promise.resolve(void 0));else if(r.isExternal){let s=VVe(e,r);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(o){let r={};for(let s=0;s<o.length;s++){let a=o[s];l(a)&&(r[s]=a)}return r})}async function VVe(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Ci.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function UVe(e,t){let n={};for(let i=0;i<e.length;i++){let o=e[i];if(!o.isActive)continue;let r=o.byteOffset,s=r+o.byteLength,c=t[o.buffer].subarray(r,s);n[i]=c}return n}function zVe(e,t,n,i){let o=n.branchingFactor,r=n.subtreeLevels,s=(Math.pow(o,r)-1)/(o-1),a=Math.pow(o,r),c=oi(t,"3DTILES_metadata"),u=l(e._tilePropertyTableJson),f=c||u;e._tileAvailability=yW(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=yW(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=yW(t.childSubtreeAvailability,i,a)}function yW(e,t,n,i){if(l(e.constant))return new gA({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return l(e.bitstream)?o=t[e.bitstream]:l(e.bufferView)&&(o=t[e.bufferView]),new gA({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function HVe(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new Nl({class:a,count:o,properties:i.properties,bufferViews:n})}function GVe(e,t,n){let i=e._contentPropertyTableJsons,o=e._contentAvailabilityBitstreams,r=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=o[a].availableCount,d=c.class,p=r.classes[d],g=new Nl({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function Vre(e){let t=0,n=e.lengthBits,i=e.availableCount,o;i<256?o=new Uint8Array(n):i<65536?o=new Uint16Array(n):o=new Uint32Array(n);for(let r=0;r<e.lengthBits;r++)e.getBit(r)&&(o[r]=t,t++);return o}function WVe(e){let t=Vre(e._tileAvailability);e._tileJumpBuffer=t}function jVe(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=Vre(o);t.push(r)}}ua.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new ce("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};ua.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new ce("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function qVe(e,t){if(!l(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function YVe(e,t,n){let i=e._contentMetadataTables;if(!l(i))return;let o=i[n];if(!l(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}ua.prototype.getTileMetadataView=function(e){let t=qVe(this,e);if(!l(t))return;let n=this._tileMetadataTable;return new yA({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};ua.prototype.getContentMetadataView=function(e,t){let n=YVe(this,e,t);if(!l(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new yA({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};ua.prototype.isDestroyed=function(){return!1};ua.prototype.destroy=function(){return l(this._bufferLoader)&&Ci.unload(this._bufferLoader),ue(this)};var lb=ua;var XVe={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},ub=Object.freeze(XVe);var Xd={};Xd.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:Xd.parseBoundingVolumeSemantic("TILE",e),minimumHeight:Xd._parseMinimumHeight("TILE",e),maximumHeight:Xd._parseMaximumHeight("TILE",e)},content:{boundingVolume:Xd.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:Xd._parseMinimumHeight("CONTENT",e),maximumHeight:Xd._parseMaximumHeight("CONTENT",e)}}};Xd.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(l(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(l(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(l(a))return{sphere:a}};Xd._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};Xd._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var fb=Xd;function Zc(e,t,n){let i=t.implicitTileset,o=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=o,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let r=o.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:r});this._url=s.getUrlComponent(!0),this._ready=!1}Object.defineProperties(Zc.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Zc.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;l(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,u=await lb.fromSubtreeJson(n,i,s,a,c),f=new Zc(e,t,n);return f._implicitSubtree=u,KVe(f,u),f._ready=!0,f};function KVe(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=$Ve(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=ZVe(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],u=c.tile,f=sUe(e,u,c.childIndex);u.children.push(f),r.numberOfTilesTotal++}}function ZVe(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(l(s))for(let a=0;a<o;a++){let c=r*o+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function $Ve(e,t,n,i){let s=Ure(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],u=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let m=0;m<g;m++){let x=p+m;if(!t.tileIsAvailableAtIndex(x)){u.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],C=m%f.branchingFactor,A=Ure(e,t,T,C,x);T.children.push(A),a.numberOfTilesTotal++,u.push(A)}c=u,u=[]}return{rootTile:s,bottomRow:c}}function zre(e,t,n){let i=ub.TILE_GEOMETRIC_ERROR;return l(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function Ure(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,u,f;if(l(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=fb.parseAllBoundingVolumeSemantics(c);u=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let m=eUe(s,a,i,r,n,u),x=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let M={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},N=tUe(m,f);l(N)&&(M.boundingVolume=N),x.push(yt(M,s.contentHeaders[D]))}let b=zre(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},C=!0,A=Ge(s.tileHeader,C);delete A.boundingVolume,delete A.transform,delete A.metadata;let E=yt(T,A,C),v=qre(e,s.baseResource,E,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function GU(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(oi(e,"3DTILES_bounding_volume_S2")||l(e.region))}function bW(e,t){l(t)&&(oi(e,"3DTILES_bounding_volume_S2")?JVe(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&QVe(e.region,t.minimumHeight,t.maximumHeight))}function QVe(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function JVe(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function eUe(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!GU(r.boundingVolume,r)&&GU(e.boundingVolume,r)?s=Hre(e,t,n,y(i,!1),o):s=r.boundingVolume,bW(s,r),s}function tUe(e,t){let n;return l(t)&&(n=t.boundingVolume),GU(n,t)?bW(n,t):GU(e,t)&&(n=Ge(e,!0),bW(n,t)),n}function Hre(e,t,n,i,o){let r=e.boundingVolume;return oi(r,"3DTILES_bounding_volume_S2")?Gre(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:jre(r.region,t.level,t.x,t.y,t.z)}:{box:Wre(r.box,t.level,t.x,t.y,t.z)}}function Gre(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:qp.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),u=c%2===0?pA.encode2D(i,o,r):pA.encode2D(i,r,o),f=qp.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:qp.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var nUe=new h,iUe=new h,xW=new h,oUe=new $;function Wre(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,iUe),s=$.unpack(e,3,oUe),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,nUe);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,u,f,xW);p=$.multiplyByVector(s,p,xW),p=h.add(p,r,xW);let g=$.clone(s);g=$.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),$.pack(g,m,3),m}var rUe=new re;function jre(e,t,n,i,o){if(t===0)return e.slice();let r=re.unpack(e,0,rUe),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=P.negativePiToPi(r.west+n*u),d=P.negativePiToPi(f+u),p=c*r.height,g=P.negativePiToPi(r.south+i*p),m=P.negativePiToPi(g+p),x=s,b=a;if(l(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function sUe(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Hre(i,o,n,!1,t),s=zre(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=qre(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function qre(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Zc.prototype.hasProperty=function(e,t){return!1};Zc.prototype.getFeature=function(e){};Zc.prototype.applyDebugSettings=function(e,t){};Zc.prototype.applyStyle=function(e){};Zc.prototype.update=function(e,t){};Zc.prototype.pick=function(e,t,n){};Zc.prototype.isDestroyed=function(){return!1};Zc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Zc._deriveBoundingBox=Wre;Zc._deriveBoundingRegion=jre;Zc._deriveBoundingVolumeS2=Gre;var IA=Zc;var aUe={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},Vl=Object.freeze(aUe);function PA(e,t){this._distance=t,this._normal=new Yre(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(PA.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});PA.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new PA(e.normal,e.distance),t};PA.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new PA(e.normal,e.distance)};function Yre(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(Yre.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var db=PA;function uc(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.edgeColor=H.clone(y(e.edgeColor,H.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new me,this.planeRemoved=new me,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?Qre:Jre,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function Qre(e){return e===jt.OUTSIDE}function Jre(e){return e===jt.INSIDE}Object.defineProperties(uc.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?Qre:Jre)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function Xre(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}uc.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){Xre(n,i)},e.index=t,Xre(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};uc.prototype.get=function(e){return this._planes[e]};function ese(e,t){let n=e.length;for(let i=0;i<n;++i)if(cn.equals(e[i],t))return i;return-1}uc.prototype.contains=function(e){return ese(this._planes,e)!==-1};uc.prototype.remove=function(e){let t=this._planes,n=ese(t,e);if(n===-1)return!1;e instanceof db&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof db&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};uc.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof db&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var cUe=new oe,lUe=new oe;function Kre(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=Mn.octEncodeToCartesian4(a.normal,lUe);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let u=oe.packFloat(a.distance,cUe);i[r+4]=u.x,i[r+5]=u.y,i[r+6]=u.z,i[r+7]=u.w,r+=8}}function Zre(e,t,n){let i=e._float32View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=a.normal;i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=a.distance,r+=4}}function tse(e,t){let n=kt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var uUe=new z;uc.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=uc.useFloatTexture(n),o=i?this.length:this.length*2;if(l(t)){let s=t.width*t.height;(s<o||o<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!l(t)){let s=tse(o,uUe);s.y*=2,i?(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Pt({context:n,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let r=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&r===-1)){if(this._multipleDirtyPlanes)i?(Zre(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(Kre(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(r/t.width),s=Math.floor(r-a*t.width),Zre(this,r,r+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(r*2/t.width),s=Math.floor(r*2-a*t.width),Kre(this,r,r+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var fUe=new F,$re=new cn(h.UNIT_X,0);uc.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;l(t)&&(o=F.multiply(t,o,fUe));let r=jt.INSIDE;!this.unionClippingRegions&&i>0&&(r=jt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];cn.transform(a,o,$re);let c=e.intersectPlane($re);if(c===jt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};uc.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};uc.useFloatTexture=function(e){return e.floatingPointTexture};uc.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=uc.useFloatTexture(t)?e.length:e.length*2,r=tse(o,n);return r.y*=2,r};uc.prototype.isDestroyed=function(){return!1};uc.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var _s=uc;function AW(e,t,n=2){let i=t&&t.length,o=i?t[0]*n:e.length,r=ise(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;let a,c,u;if(i&&(r=_Ue(e,t,r,n)),e.length>80*n){a=1/0,c=1/0;let f=-1/0,d=-1/0;for(let p=n;p<o;p+=n){let g=e[p],m=e[p+1];g<a&&(a=g),m<c&&(c=m),g>f&&(f=g),m>d&&(d=m)}u=Math.max(f-a,d-c),u=u!==0?32767/u:0}return dR(r,s,n,a,c,u,0),s}function ise(e,t,n,i,o){let r;if(o===wUe(e,t,n,i)>0)for(let s=t;s<n;s+=i)r=nse(s/i|0,e[s],e[s+1],r);else for(let s=n-i;s>=t;s-=i)r=nse(s/i|0,e[s],e[s+1],r);return r&&qU(r,r.next)&&(mR(r),r=r.next),r}function hb(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(qU(n,n.next)||Br(n.prev,n,n.next)===0)){if(mR(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function dR(e,t,n,i,o,r,s){if(!e)return;!s&&r&&TUe(e,i,o,r);let a=e;for(;e.prev!==e.next;){let c=e.prev,u=e.next;if(r?hUe(e,i,o,r):dUe(e)){t.push(c.i,e.i,u.i),mR(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=mUe(hb(e),t),dR(e,t,n,i,o,r,2)):s===2&&pUe(e,t,n,i,o,r):dR(hb(e),t,n,i,o,r,1);break}}}function dUe(e){let t=e.prev,n=e,i=e.next;if(Br(t,n,i)>=0)return!1;let o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<u?a:u:c<u?c:u,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,m=i.next;for(;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&RA(o,a,r,c,s,u,m.x,m.y)&&Br(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function hUe(e,t,n,i){let o=e.prev,r=e,s=e.next;if(Br(o,r,s)>=0)return!1;let a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<u?a:u:c<u?c:u,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>u?a:u:c>u?c:u,b=f>d?f>p?f:p:d>p?d:p,T=TW(g,m,t,n,i),C=TW(x,b,t,n,i),A=e.prevZ,E=e.nextZ;for(;A&&A.z>=T&&E&&E.z<=C;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&RA(a,f,c,d,u,p,A.x,A.y)&&Br(A.prev,A,A.next)>=0||(A=A.prevZ,E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&RA(a,f,c,d,u,p,E.x,E.y)&&Br(E.prev,E,E.next)>=0))return!1;E=E.nextZ}for(;A&&A.z>=T;){if(A.x>=g&&A.x<=x&&A.y>=m&&A.y<=b&&A!==o&&A!==s&&RA(a,f,c,d,u,p,A.x,A.y)&&Br(A.prev,A,A.next)>=0)return!1;A=A.prevZ}for(;E&&E.z<=C;){if(E.x>=g&&E.x<=x&&E.y>=m&&E.y<=b&&E!==o&&E!==s&&RA(a,f,c,d,u,p,E.x,E.y)&&Br(E.prev,E,E.next)>=0)return!1;E=E.nextZ}return!0}function mUe(e,t){let n=e;do{let i=n.prev,o=n.next.next;!qU(i,o)&&ose(i,n,n.next,o)&&hR(i,o)&&hR(o,i)&&(t.push(i.i,n.i,o.i),mR(n),mR(n.next),n=e=o),n=n.next}while(n!==e);return hb(n)}function pUe(e,t,n,i,o,r){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&EUe(s,a)){let c=rse(s,a);s=hb(s,s.next),c=hb(c,c.next),dR(s,t,n,i,o,r,0),dR(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function _Ue(e,t,n,i){let o=[];for(let r=0,s=t.length;r<s;r++){let a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,u=ise(e,a,c,i,!1);u===u.next&&(u.steiner=!0),o.push(AUe(u))}o.sort(gUe);for(let r=0;r<o.length;r++)n=yUe(o[r],n);return n}function gUe(e,t){return e.x-t.x}function yUe(e,t){let n=xUe(e,t);if(!n)return t;let i=rse(n,e);return hb(i,i.next),hb(n,n.next)}function xUe(e,t){let n=t,i=e.x,o=e.y,r=-1/0,s;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){let d=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(d<=i&&d>r&&(r=d,s=n.x<n.next.x?n:n.next,d===i))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,c=s.x,u=s.y,f=1/0;n=s;do{if(i>=n.x&&n.x>=c&&i!==n.x&&RA(o<u?i:r,o,c,u,o<u?r:i,o,n.x,n.y)){let d=Math.abs(o-n.y)/(i-n.x);hR(n,e)&&(d<f||d===f&&(n.x>s.x||n.x===s.x&&bUe(s,n)))&&(s=n,f=d)}n=n.next}while(n!==a);return s}function bUe(e,t){return Br(e.prev,e,t.prev)<0&&Br(t.next,e,e.next)<0}function TUe(e,t,n,i){let o=e;do o.z===0&&(o.z=TW(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,CUe(o)}function CUe(e){let t,n=1;do{let i=e,o;e=null;let r=null;for(t=0;i;){t++;let s=i,a=0;for(let u=0;u<n&&(a++,s=s.nextZ,!!s);u++);let c=n;for(;a>0||c>0&&s;)a!==0&&(c===0||!s||i.z<=s.z)?(o=i,i=i.nextZ,a--):(o=s,s=s.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;i=s}r.nextZ=null,n*=2}while(t>1);return e}function TW(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function AUe(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function RA(e,t,n,i,o,r,s,a){return(o-s)*(t-a)>=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function EUe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!SUe(e,t)&&(hR(e,t)&&hR(t,e)&&vUe(e,t)&&(Br(e.prev,e,t.prev)||Br(e,t.prev,t))||qU(e,t)&&Br(e.prev,e,e.next)>0&&Br(t.prev,t,t.next)>0)}function Br(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function qU(e,t){return e.x===t.x&&e.y===t.y}function ose(e,t,n,i){let o=jU(Br(e,t,n)),r=jU(Br(e,t,i)),s=jU(Br(n,i,e)),a=jU(Br(n,i,t));return!!(o!==r&&s!==a||o===0&&WU(e,n,t)||r===0&&WU(e,i,t)||s===0&&WU(n,e,i)||a===0&&WU(n,t,i))}function WU(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function jU(e){return e>0?1:e<0?-1:0}function SUe(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&ose(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function hR(e,t){return Br(e.prev,e,e.next)<0?Br(e,t,e.next)>=0&&Br(e,e.prev,t)>=0:Br(e,t,e.prev)<0||Br(e,e.next,t)<0}function vUe(e,t){let n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function rse(e,t){let n=CW(e.i,e.x,e.y),i=CW(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function nse(e,t,n,i){let o=CW(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function mR(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function CW(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function wUe(e,t,n,i){let o=0;for(let r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}var DUe=new h,IUe=new h,dy={};dy.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];n+=r.x*s.y-s.x*r.y}return n*.5};dy.computeWindingOrder2D=function(e){return dy.computeArea2D(e)>0?hs.COUNTER_CLOCKWISE:hs.CLOCKWISE};dy.triangulate=function(e,t){let n=z.packArray(e);return AW(n,t,2)};var lse=new h,use=new h,fse=new h,sse=new h,ase=new h,cse=new h,Jp=new h,dse=new z,hse=new z,mse=new z,OA=new z;dy.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let A=t[a];if(u[d++]=A.x,u[d++]=A.y,u[d++]=A.z,r){let E=i[a];f[p++]=E.x,f[p++]=E.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=b*b;for(;s.length>0;){let A=s.pop(),E=s.pop(),v=s.pop(),D=h.fromArray(u,v*3,lse),O=h.fromArray(u,E*3,use),R=h.fromArray(u,A*3,fse),M,N,_;r&&(M=z.fromArray(f,v*2,dse),N=z.fromArray(f,E*2,hse),_=z.fromArray(f,A*2,mse));let S=h.multiplyByScalar(h.normalize(D,sse),x,sse),w=h.multiplyByScalar(h.normalize(O,ase),x,ase),I=h.multiplyByScalar(h.normalize(R,cse),x,cse),L=h.magnitudeSquared(h.subtract(S,w,Jp)),B=h.magnitudeSquared(h.subtract(w,I,Jp)),U=h.magnitudeSquared(h.subtract(I,S,Jp)),V=Math.max(L,B,U),G,k,W;V>T?L===V?(G=`${Math.min(v,E)} ${Math.max(v,E)}`,a=m[G],l(a)||(k=h.add(D,O,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(M,N,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(v,a,A),s.push(a,E,A)):B===V?(G=`${Math.min(E,A)} ${Math.max(E,A)}`,a=m[G],l(a)||(k=h.add(O,R,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(N,_,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(E,a,v),s.push(a,A,v)):U===V&&(G=`${Math.min(A,v)} ${Math.max(A,v)}`,a=m[G],l(a)||(k=h.add(R,D,Jp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=z.add(_,M,OA),z.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(A,a,E),s.push(a,v,E)):(g.push(v),g.push(E),g.push(A))}let C={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Me.TRIANGLES};return r&&(C.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new at(C)};var PUe=new fe,RUe=new fe,OUe=new fe,EW=new fe;dy.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(u[d++]=v.x,u[d++]=v.y,u[d++]=v.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=new Ra(void 0,void 0,e),C=new Ra(void 0,void 0,e),A=new Ra(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),O=s.pop(),R=h.fromArray(u,O*3,lse),M=h.fromArray(u,D*3,use),N=h.fromArray(u,v*3,fse),_,S,w;r&&(_=z.fromArray(f,O*2,dse),S=z.fromArray(f,D*2,hse),w=z.fromArray(f,v*2,mse));let I=e.cartesianToCartographic(R,PUe),L=e.cartesianToCartographic(M,RUe),B=e.cartesianToCartographic(N,OUe);T.setEndPoints(I,L);let U=T.surfaceDistance;C.setEndPoints(L,B);let V=C.surfaceDistance;A.setEndPoints(B,I);let G=A.surfaceDistance,k=Math.max(U,V,G),W,q,J,j,K;k>b?U===k?(W=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[W],l(a)||(q=T.interpolateUsingFraction(.5,EW),J=(I.height+L.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(_,S,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(O,a,v),s.push(a,D,v)):V===k?(W=`${Math.min(D,v)} ${Math.max(D,v)}`,a=m[W],l(a)||(q=C.interpolateUsingFraction(.5,EW),J=(L.height+B.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(S,w,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(D,a,O),s.push(a,v,O)):G===k&&(W=`${Math.min(v,O)} ${Math.max(v,O)}`,a=m[W],l(a)||(q=A.interpolateUsingFraction(.5,EW),J=(B.height+I.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,Jp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(K=z.add(w,_,OA),z.multiplyByScalar(K,.5,K),f.push(K.x,K.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let E={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Me.TRIANGLES};return r&&(E.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new at(E)};dy.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ee.default);let o=DUe,r=IUe;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;a<s;a+=3)h.fromArray(e,a,r),i&&(r=n.scaleToGeodeticSurface(r,r)),t!==0&&(o=n.geodeticSurfaceNormal(r,o),h.multiplyByScalar(o,t,o),h.add(r,o,r)),e[a]=r.x,e[a+1]=r.y,e[a+2]=r.z}return e};var si=dy;function hy(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(hy.prototype,{length:{get:function(){return this._length}}});hy.prototype.enqueue=function(e){this._array.push(e),this._length++};hy.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};hy.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};hy.prototype.contains=function(e){return this._array.indexOf(e)!==-1};hy.prototype.clear=function(){this._array.length=this._offset=this._length=0};hy.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var my=hy;var tr={};tr.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};tr.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u<c;++u,n+=i.packedLength)i.pack(s[u],t,n)}if(l(a)){let c=a.length;for(let u=0;u<c;++u)o.push(a[u])}}return n};tr.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],o=e[t++],r=new Array(i),s=o>0?new Array(o):void 0;for(let a=0;a<i;++a,t+=n.packedLength)r[a]=n.unpack(e,t);for(let a=0;a<o;++a)s[a]=tr.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var mb=new z;function gse(e,t,n,i){return z.subtract(t,e,mb),z.multiplyByScalar(mb,n/i,mb),z.add(e,mb,mb),[mb.x,mb.y]}var py=new h;function MUe(e,t,n,i){return h.subtract(t,e,py),h.multiplyByScalar(py,n/i,py),h.add(e,py,py),[py.x,py.y,py.z]}tr.subdivideLineCount=function(e,t,n){let o=h.distance(e,t)/n,r=Math.max(0,Math.ceil(P.log2(o)));return Math.pow(2,r)};var XU=new fe,KU=new fe,LUe=new fe,NUe=new h,YU=new Ra;tr.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,XU),r=e.cartesianToCartographic(n,KU),a=new Ra(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};tr.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=tr.subdivideLineCount(n,i,o),a=z.distance(e,t),c=a/s,u=r;u.length=s*2;let f=0;for(let d=0;d<s;d++){let p=gse(e,t,d*c,a);u[f++]=p[0],u[f++]=p[1]}return u};tr.subdivideLine=function(e,t,n,i){let o=tr.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;l(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let u=0;u<o;u++){let f=MUe(e,t,u*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};tr.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,XU),c=n.cartesianToCartographic(o,KU);YU.setEndPoints(a,c);let u=YU.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(u))),d=Math.pow(2,f),p=z.distance(e,t),g=p/d,m=s;m.length=d*2;let x=0;for(let b=0;b<d;b++){let T=gse(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};tr.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,XU),s=e.cartesianToCartographic(n,KU),a=new Ra(r,s,e),c=a.surfaceDistance/i,u=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,u),d=a.surfaceDistance/f;l(o)||(o=[]);let p=o;p.length=f*3;let g=0;for(let m=0;m<f;m++){let x=a.interpolateUsingSurfaceDistance(m*d,LUe),b=e.cartographicToCartesian(x,NUe);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var FUe=new h,BUe=new h,kUe=new h,VUe=new h;tr.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,ee.default);let r=FUe,s=BUe,a=kUe,c=VUe;if(l(e)&&l(e.attributes)&&l(e.attributes.position)){let u=e.attributes.position.values,f=u.length/2;for(let d=0;d<f;d+=3)h.fromArray(u,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),u[d+f]=s.x,u[d+1+f]=s.y,u[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),u[d]=s.x,u[d+1]=s.y,u[d+2]=s.z}return e};tr.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new my;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),u=c.positions;if(t)for(a=u.length,r=0;r<a;r++)n.scaleToGeodeticSurface(u[r],u[r]);if(u=To(u,h.equalsEpsilon,!0),u.length<3)continue;let f=c.holes?c.holes.length:0;for(r=0;r<f;r++){let d=c.holes[r],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=To(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(l(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(u)}return i};var UUe=new fe;function zUe(e,t,n){let i=n.cartesianToCartographic(e,XU),o=n.cartesianToCartographic(t,KU);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;YU.setEndPoints(i,o);let r=YU.findIntersectionWithLatitude(0,UUe);if(!l(r))return;let s=Math.min(i.longitude,o.longitude),a=Math.max(i.longitude,o.longitude);if(Math.abs(a-s)>P.PI){let c=s;s=a,a=c}if(!(r.longitude<s||r.longitude>a))return n.cartographicToCartesian(r)}function HUe(e,t,n,i){if(i===Jt.RHUMB)return zUe(e,t,n);let o=$n.lineSegmentPlane(e,t,cn.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var GUe=new fe;function WUe(e,t,n){let i=[],o,r,s,a,c,u=0;for(;u<e.length;){o=e[u],r=e[(u+1)%e.length],s=P.sign(o.z),a=P.sign(r.z);let f=d=>t.cartesianToCartographic(d,GUe).longitude;if(s===0)i.push({position:u,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=HUe(o,r,t,n),++u,!l(c))continue;e.splice(u,0,c),i.push({position:u,type:s,visited:!1,next:a,theta:f(c)})}++u}return i}function yse(e,t,n,i,o,r,s){let a=[],c=r,u=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(u(c)),g=i[p];if(!l(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let E=i[p-(s?1:-1)];if(E?.position===c+1)E.visited=!0;else{++c;continue}}if(!m&&s&&b>0||r===c&&!s&&b<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}m||f.push(c);let C=p+(s?1:-1),A=i[C];if(!l(A)){++c;continue}c=A.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=yse(e,++t,n,i,0,d,!s);return t}tr.splitPolygonsOnEquator=function(e,t,n,i){l(i)||(i=[]),i.splice(0,0,...e),i.length=e.length;let o=0;for(;o<i.length;){let r=i[o],s=r.slice();if(r.length<3){i[o]=s,++o;continue}let a=WUe(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((u,f)=>u.theta-f.theta);let c=s[0].z>=0;o=yse(i,o,s,a,1,0,c)}return i};tr.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new my;c.enqueue(e);let u=l(r);for(;c.length!==0;){let f=c.dequeue(),d=f.positions,p=f.holes,g,m;if(i)for(m=d.length,g=0;g<m;g++)o.scaleToGeodeticSurface(d[g],d[g]);if(t||(d=To(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!l(x))continue;let b=[],T=si.computeWindingOrder2D(x);if(T===hs.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),u){u=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new Oa(O,p));continue}}let C=d.slice(),A=l(p)?p.length:0,E=[],v;for(g=0;g<A;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,v=0;v<m;++v)o.scaleToGeodeticSurface(O[v],O[v]);if(t||(O=To(O,h.equalsEpsilon,!0)),O.length<3)continue;let R=n(O);if(!l(R))continue;T=si.computeWindingOrder2D(R),T===hs.CLOCKWISE&&(R.reverse(),O=O.slice().reverse()),E.push(O),b.push(C.length),C=C.concat(O),x=x.concat(R);let M=0;for(l(D.holes)&&(M=D.holes.length),v=0;v<M;v++)c.enqueue(D.holes[v])}s.push({outerRing:d,holes:E}),a.push({positions:C,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var jUe=new z,qUe=new h,YUe=new Oe,XUe=new $;tr.computeBoundingRectangle=function(e,t,n,i,o){let r=Oe.fromAxisAngle(e,i,YUe),s=$.fromQuaternion(r,XUe),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],qUe);$.multiplyByVector(s,g,g);let m=t(g,jUe);l(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),u=Math.min(u,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=u,o.width=c-a,o.height=f-u,o};tr.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=si.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,u=l(n),f=u?n.positions:void 0;if(o){let d=c.length,p=new Array(d*3),g=0;for(let b=0;b<d;b++){let T=c[b];p[g++]=T.x,p[g++]=T.y,p[g++]=T.z}let m={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Me.TRIANGLES};u&&(m.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:z.packArray(f)}));let x=new at(m);return r.normal?Ln.computeNormal(x):x}if(s===Jt.GEODESIC)return si.computeSubdivision(e,c,a,f,i);if(s===Jt.RHUMB)return si.computeRhumbLineSubdivision(e,c,a,f,i)};var pse=[],_se=[],KUe=new h,ZUe=new h;tr.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,u,f,d,p,g,m,x=e.length,b=0,T=0,C=l(t),A=C?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),C&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)u=e[c],f=e[(c+1)%x],s[b]=s[b+a]=u.x,++b,s[b]=s[b+a]=u.y,++b,s[b]=s[b+a]=u.z,++b,s[b]=s[b+a]=f.x,++b,s[b]=s[b+a]=f.y,++b,s[b]=s[b+a]=f.z,++b,C&&(d=A[c],p=A[(c+1)%x],g[T]=g[T+m]=d.x,++T,g[T]=g[T+m]=d.y,++T,g[T]=g[T+m]=p.x,++T,g[T]=g[T+m]=p.y,++T);else{let R=P.chordLength(i,n.maximumRadius),M=0;if(r===Jt.GEODESIC)for(c=0;c<x;c++)M+=tr.subdivideLineCount(e[c],e[(c+1)%x],R);else if(r===Jt.RHUMB)for(c=0;c<x;c++)M+=tr.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],R);for(a=(M+x)*3,s=new Array(a*2),C&&(m=(M+x)*2,g=new Array(m*2)),c=0;c<x;c++){u=e[c],f=e[(c+1)%x];let N,_;C&&(d=A[c],p=A[(c+1)%x]),r===Jt.GEODESIC?(N=tr.subdivideLine(u,f,R,_se),C&&(_=tr.subdivideTexcoordLine(d,p,u,f,R,pse))):r===Jt.RHUMB&&(N=tr.subdivideRhumbLine(n,u,f,R,_se),C&&(_=tr.subdivideTexcoordRhumbLine(d,p,n,u,f,R,pse)));let S=N.length;for(let w=0;w<S;++w,++b)s[b]=N[w],s[b+a]=N[w];if(s[b]=f.x,s[b+a]=f.x,++b,s[b]=f.y,s[b+a]=f.y,++b,s[b]=f.z,s[b+a]=f.z,++b,C){let w=_.length;for(let I=0;I<w;++I,++T)g[T]=_[I],g[T+m]=_[I];g[T]=p.x,g[T+m]=p.x,++T,g[T]=p.y,g[T+m]=p.y,++T}}}x=s.length;let E=Ne.createTypedArray(x/3,x-e.length*6),v=0;for(x/=6,c=0;c<x;c++){let R=c,M=R+1,N=R+x,_=N+1;u=h.fromArray(s,R*3,KUe),f=h.fromArray(s,M*3,ZUe),!h.equalsEpsilon(u,f,P.EPSILON10,P.EPSILON10)&&(E[v++]=R,E[v++]=N,E[v++]=M,E[v++]=M,E[v++]=N,E[v++]=_)}let D={attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:E,primitiveType:Me.TRIANGLES};return C&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new at(D)};var zn=tr;function kr(e,t){this.position=e,l(this.position)||(this.position=new z),this.tangentPlane=t,l(this.tangentPlane)||(this.tangentPlane=kr.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(kr.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let e=z.magnitude(this.position),t=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(P.PI_OVER_TWO-2*Math.atan2(e,t))}},longitude:{get:function(){let e=P.PI_OVER_TWO+Math.atan2(this.y,this.x);return e>Math.PI&&(e-=P.TWO_PI),e}}});var MA=new fe,$Ue=new h;kr.prototype.getLatitude=function(e){l(e)||(e=ee.default),MA.latitude=this.conformalLatitude,MA.longitude=this.longitude,MA.height=0;let t=this.ellipsoid.cartographicToCartesian(MA,$Ue);return e.cartesianToCartographic(t,MA),MA.latitude};var QUe=new mn,JUe=new h,eze=new h;kr.fromCartesian=function(e,t){let n=P.signNotZero(e.z),i=kr.NORTH_POLE_TANGENT_PLANE,o=kr.SOUTH_POLE;n<0&&(i=kr.SOUTH_POLE_TANGENT_PLANE,o=kr.NORTH_POLE);let r=QUe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,JUe),h.normalize(r.direction,r.direction);let s=$n.rayPlane(r,i.plane,eze),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),u=n*h.dot(i.yAxis,a);return l(t)?(t.position=new z(c,u),t.tangentPlane=i,t):new kr(new z(c,u),i)};kr.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=kr.fromCartesian(e[i],t[i]);return t};kr.clone=function(e,t){if(l(e))return l(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new kr(e.position,e.tangentPlane)};kr.HALF_UNIT_SPHERE=Object.freeze(new ee(.5,.5,.5));kr.NORTH_POLE=Object.freeze(new h(0,0,.5));kr.SOUTH_POLE=Object.freeze(new h(0,0,-.5));kr.NORTH_POLE_TANGENT_PLANE=Object.freeze(new $r(kr.NORTH_POLE,kr.HALF_UNIT_SPHERE));kr.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new $r(kr.SOUTH_POLE,kr.HALF_UNIT_SPHERE));var fc=kr;var tze=new fe,xse=new fe;function nze(e,t,n,i){let r=i.cartesianToCartographic(e,tze).height,s=i.cartesianToCartographic(t,xse);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,xse);a.height=r-100,i.cartographicToCartesian(a,n)}var bse=new je,ize=new h,oze=new h,rze=new h,sze=new h,aze=new h,cze=new h,ZU=new h,_m=new h,LA=new h,lze=new z,uze=new z,fze=new h,Tse=new Oe,dze=new $,hze=new $;function SW(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=l(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,u=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.rotationAxis,p=e.projectTo2d,g=e.ellipsoid,m=e.stRotation,x=e.perPositionHeight,b=lze;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,C;t.normal&&(x&&c&&!a?C=n.attributes.normal.values:C=new Float32Array(s));let A=t.tangent?new Float32Array(s):void 0,E=t.bitangent?new Float32Array(s):void 0,v=i?new Float32Array(s):void 0,D=0,O=0,R=oze,M=rze,N=sze,_=!0,S=dze,w=hze;if(m!==0){let B=Oe.fromAxisAngle(d,m,Tse);S=$.fromQuaternion(B,S),B=Oe.fromAxisAngle(d,-m,Tse),w=$.fromQuaternion(B,w)}else S=$.clone($.IDENTITY,S),w=$.clone($.IDENTITY,w);let I=0,L=0;c&&u&&(I=s/2,L=s/3,s/=2);for(let B=0;B<s;B+=3){let U=h.fromArray(o,B,fze);if(t.st&&!l(r)){let V=$.multiplyByVector(S,U,ize);V=g.scaleToGeodeticSurface(V,V);let G=p([V],uze)[0];z.subtract(G,b,G);let k=P.clamp(G.x/f.width,0,1),W=P.clamp(G.y/f.height,0,1);u&&(T[D+L]=k,T[D+1+L]=W),c&&(T[D]=k,T[D+1]=W),D+=2}if(t.normal||t.tangent||t.bitangent||i){let V=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,aze);if(_){let W=h.fromArray(o,B+s,cze);x&&nze(U,k,W,g),h.subtract(k,U,k),h.subtract(W,U,W),R=h.normalize(h.cross(W,k,R),R),_=!1}h.equalsEpsilon(k,U,P.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(N=g.geodeticSurfaceNormal(U,N),t.tangent&&(M=h.normalize(h.cross(N,R,M),M)))}else R=g.geodeticSurfaceNormal(U,R),(t.tangent||t.bitangent)&&(x&&(ZU=h.fromArray(C,O,ZU),_m=h.cross(h.UNIT_Z,ZU,_m),_m=h.normalize($.multiplyByVector(w,_m,_m),_m),t.bitangent&&(LA=h.normalize(h.cross(ZU,_m,LA),LA))),M=h.cross(h.UNIT_Z,R,M),M=h.normalize($.multiplyByVector(w,M,M),M),t.bitangent&&(N=h.normalize(h.cross(R,M,N),N)));t.normal&&(e.wall?(C[O+I]=R.x,C[V+I]=R.y,C[G+I]=R.z):u&&(C[O+I]=-R.x,C[V+I]=-R.y,C[G+I]=-R.z),(c&&!x||a)&&(C[O]=R.x,C[V]=R.y,C[G]=R.z)),i&&(a&&(R=g.geodeticSurfaceNormal(U,R)),v[O+I]=-R.x,v[V+I]=-R.y,v[G+I]=-R.z),t.tangent&&(e.wall?(A[O+I]=M.x,A[V+I]=M.y,A[G+I]=M.z):u&&(A[O+I]=-M.x,A[V+I]=-M.y,A[G+I]=-M.z),c&&(x?(A[O]=_m.x,A[V]=_m.y,A[G]=_m.z):(A[O]=M.x,A[V]=M.y,A[G]=M.z))),t.bitangent&&(u&&(E[O+I]=N.x,E[V+I]=N.y,E[G+I]=N.z),c&&(x?(E[O]=LA.x,E[V]=LA.y,E[G]=LA.z):(E[O]=N.x,E[V]=N.y,E[G]=N.z))),O+=3}}t.st&&!l(r)&&(n.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T})),t.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:E})),i&&(n.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:v}))}if(e.extrude&&l(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===an.TOP)c&&u||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===an.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var Cse=[];function mze(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let C=zn.createGeometryFromPositions(e,t,n,i,r,c,u),A=C.attributes.position.values,E=C.indices,v,D;if(s&&a){let O=A.concat(A);v=O.length/3,D=Ne.createTypedArray(v,E.length*2),D.set(E);let R=E.length,M=v/2;for(d=0;d<R;d+=3){let N=D[d]+M,_=D[d+1]+M,S=D[d+2]+M;D[d+R]=S,D[d+1+R]=_,D[d+2+R]=N}if(C.attributes.position.values=O,r&&c.normal){let N=C.attributes.normal.values;C.attributes.normal.values=new Float32Array(O.length),C.attributes.normal.values.set(N)}if(c.st&&l(n)){let N=C.attributes.st.values;C.attributes.st.values=new Float32Array(v*2),C.attributes.st.values=N.concat(N)}C.indices=D}else if(a){for(v=A.length/3,D=Ne.createTypedArray(v,E.length),d=0;d<E.length;d+=3)D[d]=E[d+2],D[d+1]=E[d+1],D[d+2]=E[d];C.indices=D}f.topAndBottom=new St({geometry:C})}let p=o.outerRing,g=$r.fromPoints(p,e),m=g.projectPointsOntoPlane(p,Cse),x=si.computeWindingOrder2D(m);x===hs.CLOCKWISE&&(p=p.slice().reverse());let b=zn.computeWallGeometry(p,n,e,i,r,u);f.walls.push(new St({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let C=T[d];m=g.projectPointsOntoPlane(C,Cse),x=si.computeWindingOrder2D(m),x===hs.COUNTER_CLOCKWISE&&(C=C.slice().reverse()),b=zn.computeWallGeometry(C,n,e,i,r,u),f.walls.push(new St({geometry:b}))}return f}function Of(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Ie.DEFAULT),i=y(e.ellipsoid,ee.default),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&l(e.extrudedHeight),u=y(e.height,0),f=y(e.extrudedHeight,u);if(!c){let d=Math.max(u,f);f=Math.min(u,f),u=d}this._vertexFormat=Ie.clone(n),this._ellipsoid=ee.clone(i),this._granularity=o,this._stRotation=r,this._height=u,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,Jt.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=zn.computeHierarchyPackedLength(t,h)+ee.packedLength+Ie.packedLength+(s?zn.computeHierarchyPackedLength(s,z):1)+12}Of.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new Of(t)};Of.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var pze=ee.clone(ee.UNIT_SPHERE),_ze=new Ie,gze={polygonHierarchy:{}};Of.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,pze);t+=ee.packedLength;let r=Ie.unpack(e,t,_ze);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,m=e[t++]===1,x=e[t++],b=e[t++],T=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,z);l(T)?(t=T.startingIndex,delete T.startingIndex):t++;let C=e[t++];return l(n)||(n=new Of(gze)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=u,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=m,n._offsetAttribute=x===-1?void 0:x,n._arcType=b,n._textureCoordinates=T,n.packedLength=C,n};var yze=new z,xze=new z,bze=new fc;function Ase(e,t,n,i,o,r){let s=e.longitude,a=s>=0?s:s+P.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),u=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==Jt.RHUMB){let p=z.subtract(t.position,e.position,yze),g=z.dot(t.position,p)/z.dot(p,p);if(g>0&&g<1){let m=z.add(t.position,z.multiplyByScalar(p,-g,p),xze),x=fc.clone(t,bze);x.position=m;let b=x.getLatitude(n);r.south=Math.min(r.south,b),r.north=Math.max(r.north,b),Math.abs(c)>Math.abs(b)&&(u=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=z.angleBetween(t.position,e.position)),u>=0&&(o.northAngle+=d),u<=0&&(o.southAngle+=d)}var Ese=new fc,Tze=new fc,Rf={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};Of.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new re),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,Rf.northAngle=0,Rf.southAngle=0,Rf.westOverIdl=Number.POSITIVE_INFINITY,Rf.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=fc.fromCartesian(e[0],Tze);for(let s=1;s<o;s++){let a=fc.fromCartesian(e[s],Ese);Ase(a,r,t,n,Rf,i),r=fc.clone(a,r)}return Ase(fc.fromCartesian(e[0],Ese),r,t,n,Rf,i),i.east-i.west>Rf.eastOverIdl-Rf.westOverIdl&&(i.west=Rf.westOverIdl,i.east=Rf.eastOverIdl,i.east>P.PI&&(i.east=i.east-P.TWO_PI),i.west>P.PI&&(i.west=i.west-P.TWO_PI)),P.equalsEpsilon(Math.abs(Rf.northAngle),P.TWO_PI,P.EPSILON10)&&(i.north=P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),P.equalsEpsilon(Math.abs(Rf.southAngle),P.TWO_PI,P.EPSILON10)&&(i.south=-P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),i};var Cze=new fc;function Aze(e,t,n){return e.height>=P.PI||e.width>=P.PI?fc.fromCartesian(t[0],Cze).tangentPlane:$r.fromPoints(t,n)}var Sse=new fe;function Eze(e,t,n){return(i,o)=>{if(e.height>=P.PI||e.width>=P.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s<i.length;++s){let a=n.cartesianToCartographic(i[s],Sse);o[s]=new z(a.longitude/P.PI,a.latitude/P.PI_OVER_TWO)}return o.length=i.length,o}return fc.fromCartesianArray(i,o)}return $r.fromPoints(t,n).projectPointsOntoPlane(i,o)}}function Sze(e,t,n){if(e.height>=P.PI||e.width>=P.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Sse);return l(r)||(r=new z),r.x=s.longitude/P.PI,r.y=s.latitude/P.PI_OVER_TWO,r}return fc.fromCartesian(o,r)};let i=$r.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function vze(e,t,n,i){return(o,r)=>!i&&(e.height>=P.PI_OVER_TWO||e.width>=2*P.PI_OVER_THREE)?zn.splitPolygonsOnEquator(o,t,n,r):o}function wze(e,t,n,i){if(t.height>=P.PI||t.width>=P.PI)return je.fromRectangle(t,void 0,bse);let o=e,r=$r.fromPoints(o,n);return zn.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,bse)}Of.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,u=e._arcType,f=e._textureCoordinates,d=l(f),p=r.positions;if(p.length<3)return;let g=e.rectangle,m=zn.polygonsFromHierarchy(r,d,Eze(g,p,n),!s,n,vze(g,n,u,s)),x=m.hierarchy,b=m.polygons,T=function(I){return I},C=d?zn.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let A=x[0].outerRing,E=wze(A,g,n,o),v=[],D=e._height,O=e._extrudedHeight,R=e._perPositionHeightExtrude||!P.equalsEpsilon(D,O,0,P.EPSILON2),M={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:Aze(g,A,n).plane.normal,projectTo2d:Sze(g,A,n),boundingRectangle:E,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},N;if(R)for(M.extrude=!0,M.top=a,M.bottom=c,M.shadowVolume=e._shadowVolume,M.offsetAttribute=e._offsetAttribute,N=0;N<b.length;N++){let I=mze(n,b[N],d?C[N]:void 0,i,x[N],s,a,c,t,u),L;a&&c?(L=I.topAndBottom,M.geometry=zn.scaleToGeodeticHeightExtruded(L.geometry,D,O,n,s)):a?(L=I.topAndBottom,L.geometry.attributes.position.values=si.scaleToGeodeticHeight(L.geometry.attributes.position.values,D,n,!s),M.geometry=L.geometry):c&&(L=I.topAndBottom,L.geometry.attributes.position.values=si.scaleToGeodeticHeight(L.geometry.attributes.position.values,O,n,!0),M.geometry=L.geometry),(a||c)&&(M.wall=!1,L.geometry=SW(M),v.push(L));let B=I.walls;M.wall=!0;for(let U=0;U<B.length;U++){let V=B[U];M.geometry=zn.scaleToGeodeticHeightExtruded(V.geometry,D,O,n,s),V.geometry=SW(M),v.push(V)}}else for(N=0;N<b.length;N++){let I=new St({geometry:zn.createGeometryFromPositions(n,b[N],d?C[N]:void 0,i,s,t,u)});if(I.geometry.attributes.position.values=si.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!s),M.geometry=I.geometry,I.geometry=SW(M),l(e._offsetAttribute)){let L=I.geometry.attributes.position.values.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(L/3).fill(B);I.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}v.push(I)}let _=Ln.combineInstances(v)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=Ne.createTypedArray(_.attributes.position.values.length/3,_.indices);let S=_.attributes,w=se.fromVertices(S.position.values);return t.position||delete S.position,new at({attributes:S,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:w,offsetAttribute:e._offsetAttribute})};Of.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Of({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function Dze(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,o=e.rectangle;return at._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(Of.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=Of.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=Dze(this)),this._textureCoordinateRotationPoints}}});var e_=Of;function pb(e){this._ellipsoid=y(e.ellipsoid,ee.default),this._positions=[...e.positions]}Object.defineProperties(pb.prototype,{length:{get:function(){return this._positions.length}},positions:{get:function(){return this._positions}},ellipsoid:{get:function(){return this._ellipsoid}}});pb.clone=function(e,t){return l(t)?(t._ellipsoid=e.ellipsoid,t._positions.length=0,t._positions.push(...e.positions),t):new pb({positions:e.positions,ellipsoid:e.ellipsoid})};pb.equals=function(e,t){return e.ellipsoid.equals(t.ellipsoid)&&e.positions===t.positions};pb.prototype.computeRectangle=function(e){return e_.computeRectangleFromPositions(this.positions,this.ellipsoid,void 0,e)};var Ize=new re,vse=new h;pb.prototype.computeSphericalExtents=function(e){l(e)||(e=new re);let t=this.computeRectangle(Ize),n=fe.toCartesian(re.southwest(t),this.ellipsoid,vse),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y);return e.south=o,e.west=r,n=fe.toCartesian(re.northeast(t),this.ellipsoid,vse),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y),e.north=o,e.east=r,e};var NA=pb;var pR=`in vec2 v_textureCoordinates; + +uniform int u_polygonsLength; +uniform int u_extentsLength; +uniform highp sampler2D u_polygonTexture; +uniform highp sampler2D u_extentsTexture; + +int getPolygonIndex(float dimension, vec2 coord) { + vec2 uv = coord.xy * dimension; + return int(floor(uv.y) * dimension + floor(uv.x)); +} + +vec2 getLookupUv(ivec2 dimensions, int i) { + int pixY = i / dimensions.x; + int pixX = i - (pixY * dimensions.x); + float pixelWidth = 1.0 / float(dimensions.x); + float pixelHeight = 1.0 / float(dimensions.y); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 getExtents(int i) { + return texture(u_extentsTexture, getLookupUv(textureSize(u_extentsTexture, 0), i)); +} + +ivec2 getPositionsLengthAndExtentsIndex(int i) { + vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); + vec4 value = texture(u_polygonTexture, uv); + return ivec2(int(value.x), int(value.y)); +} + +vec2 getPolygonPosition(int i) { + vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); + return texture(u_polygonTexture, uv).xy; +} + +vec2 getCoordinates(vec2 textureCoordinates, vec4 extents) { + float latitude = mix(extents.x, extents.x + 1.0 / extents.z, textureCoordinates.y); + float longitude = mix(extents.y, extents.y + 1.0 / extents.w, textureCoordinates.x); + return vec2(latitude, longitude); +} + +void main() { + int lastPolygonIndex = 0; + out_FragColor = vec4(1.0); + + // Get the relevant region of the texture + float dimension = float(u_extentsLength); + if (u_extentsLength > 2) { + dimension = ceil(log2(float(u_extentsLength))); + } + int regionIndex = getPolygonIndex(dimension, v_textureCoordinates); + + for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) { + ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex); + int positionsLength = positionsLengthAndExtents.x; + int polygonExtentsIndex = positionsLengthAndExtents.y; + lastPolygonIndex += 1; + + // Only compute signed distance for the relevant part of the atlas + if (polygonExtentsIndex == regionIndex) { + float clipAmount = czm_infinity; + vec4 extents = getExtents(polygonExtentsIndex); + vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension; + vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); + float s = 1.0; + + // Check each edge for absolute distance + for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) { + vec2 a = getPolygonPosition(lastPolygonIndex + i); + vec2 b = getPolygonPosition(lastPolygonIndex + j); + + vec2 ab = b - a; + vec2 pa = p - a; + float t = dot(pa, ab) / dot(ab, ab); + t = clamp(t, 0.0, 1.0); + + vec2 pq = pa - t * ab; + float d = length(pq); + + // Inside / outside computation to determine sign + bvec3 cond = bvec3(p.y >= a.y, + p.y < b.y, + ab.x * pa.y > ab.y * pa.x); + if (all(cond) || all(not(cond))) s = -s; + if (abs(d) < abs(clipAmount)) { + clipAmount = d; + } + } + + // Normalize the range to [0,1] + vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5; + // In the case where we've iterated through multiple polygons, take the minimum + out_FragColor = min(out_FragColor, result); + } + + lastPolygonIndex += positionsLength; + } +}`;function ts(e){e=y(e,y.EMPTY_OBJECT),this._polygons=[],this._totalPositions=0,this.enabled=y(e.enabled,!0),this.inverse=y(e.inverse,!1),this.polygonAdded=new me,this.polygonRemoved=new me,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this._polygons.push(t[i])}}Object.defineProperties(ts.prototype,{length:{get:function(){return this._polygons.length}},totalPositions:{get:function(){return this._totalPositions}},extentsTexture:{get:function(){return this._extentsTexture}},extentsCount:{get:function(){return this._extentsCount}},pixelsNeededForExtents:{get:function(){return this.length}},pixelsNeededForPolygonPositions:{get:function(){return this.totalPositions+this.length}},clippingTexture:{get:function(){return this._signedDistanceTexture}},owner:{get:function(){return this._owner}},clippingPolygonsState:{get:function(){return this.inverse?-this.extentsCount:this.extentsCount}}});ts.prototype.add=function(e){let t=this._polygons.length;return this._polygons.push(e),this.polygonAdded.raiseEvent(e,t),e};ts.prototype.get=function(e){return this._polygons[e]};ts.prototype.contains=function(e){return this._polygons.some(t=>NA.equals(t,e))};ts.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>NA.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};var Pze=new re;function Rze(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let a=e[r].computeSphericalExtents(),c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a);f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI);let d=[r];for(let p=0;p<t.length;++p){let g=t[p];if(l(g)&&l(re.simpleIntersection(g,f))&&!re.equals(g,f)){let m=n[p];d.push(...m),m.reduce((x,b)=>re.union(e[b].computeSphericalExtents(Pze),x,x),a),t[p]=void 0,n[p]=void 0,c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a,f),f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI),p=-1}}t.push(f),n.push(d)}let o=new Map;return n.filter(l).forEach((r,s)=>r.forEach(a=>o.set(a,s))),{extentsList:t.filter(l),extentsIndexByPolygon:o}}ts.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;n<t;++n){let i=e[n];this.polygonRemoved.raiseEvent(i,n)}this._polygons=[]};function Oze(e){let t=e._float32View,n=e._extentsFloat32View,i=e._polygons,{extentsList:o,extentsIndexByPolygon:r}=Rze(i),s=0;for(let[c,u]of i.entries()){let f=u.length;t[s++]=f,t[s++]=r.get(c);for(let d=0;d<f;++d){let p=u.positions[d],g=Math.hypot(p.x,p.y),m=P.fastApproximateAtan2(g,p.z),x=P.fastApproximateAtan2(p.x,p.y);t[s++]=m,t[s++]=x}}let a=0;for(let c of o){let u=1/(c.east-c.west),f=1/(c.north-c.south);n[a++]=c.south,n[a++]=c.west,n[a++]=f,n[a++]=u}e._extentsCount=o.length}var vW=new z;ts.prototype.update=function(e){let t=e.context;if(!ts.isSupported(e))throw new ce("ClippingPolygonCollections are only supported for WebGL 2.");let n=this._polygons.reduce((s,a)=>s+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s<this.pixelsNeededForPolygonPositions||this.pixelsNeededForPolygonPositions<.25*s)&&(i.destroy(),i=void 0,this._polygonsTexture=void 0)}if(!l(i)){let s=ts.getTextureResolution(i,this.pixelsNeededForPolygonPositions,vW);i=new Pt({context:t,width:s.x,height:s.y,pixelFormat:Je.RG,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*2),this._polygonsTexture=i}if(l(o)){let s=o.width*o.height;(s<this.pixelsNeededForExtents||this.pixelsNeededForExtents<.25*s)&&(o.destroy(),o=void 0,this._extentsTexture=void 0)}if(!l(o)){let s=ts.getTextureResolution(o,this.pixelsNeededForExtents,vW);o=new Pt({context:t,width:s.x,height:s.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,sampler:$t.NEAREST,flipY:!1}),this._extentsFloat32View=new Float32Array(s.x*s.y*4),this._extentsTexture=o}if(Oze(this),o.copyFrom({source:{width:o.width,height:o.height,arrayBufferView:this._extentsFloat32View}}),i.copyFrom({source:{width:i.width,height:i.height,arrayBufferView:this._float32View}}),!l(r)){let s=ts.getClippingDistanceTextureResolution(this,vW);r=new Pt({context:t,width:s.x,height:s.y,pixelFormat:t.webgl2?Je.RED:Je.LUMINANCE,pixelDatatype:Ke.FLOAT,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR}),flipY:!1}),this._signedDistanceTexture=r}this._signedDistanceComputeCommand=Mze(this)};ts.prototype.queueCommands=function(e){l(this._signedDistanceComputeCommand)&&e.commandList.push(this._signedDistanceComputeCommand)};function Mze(e){let t=e._polygonsTexture,n=e._extentsTexture;return new Nc({fragmentShaderSource:pR,outputTexture:e._signedDistanceTexture,uniformMap:{u_polygonsLength:function(){return e.length},u_extentsLength:function(){return e.extentsCount},u_extentsTexture:function(){return n},u_polygonTexture:function(){return t}},persists:!1,owner:e,postExecute:()=>{e._signedDistanceComputeCommand=void 0}})}var wse=new re,Lze=new re;ts.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=jt.OUTSIDE;this.inverse&&(o=jt.INSIDE);for(let r=0;r<i;++r){let a=n[r].computeRectangle(),c=e.rectangle;if(!l(c)&&l(e.boundingVolume?.computeCorners)){let f=e.boundingVolume.computeCorners();c=re.fromCartesianArray(f,t,wse)}l(c)||(c=re.fromBoundingSphere(e.boundingSphere,t,wse));let u=re.simpleIntersection(c,a,Lze);l(u)&&(o=jt.INTERSECTING)}return o};ts.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};ts.isSupported=function(e){return e?.context.webgl2};ts.getTextureResolution=function(e,t,n){if(l(e))return n.x=e.width,n.y=e.height,n;let i=kt.maximumTextureSize;return n.x=Math.min(t,i),n.y=Math.ceil(t/n.x),n.y*=2,n};ts.getClippingDistanceTextureResolution=function(e,t){let n=e.signedDistanceTexture;return l(n)?(t.x=n.width,t.y=n.height,t):(t.x=Math.min(kt.maximumTextureSize,4096),t.y=Math.min(kt.maximumTextureSize,4096),t)};ts.getClippingExtentsTextureResolution=function(e,t){let n=e.extentsTexture;return l(n)?(t.x=n.width,t.y=n.height,t):ts.getTextureResolution(n,e.pixelsNeededForExtents,t)};ts.prototype.isDestroyed=function(){return!1};ts.prototype.destroy=function(){return l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0),this._polygonsTexture=this._polygonsTexture&&this._polygonsTexture.destroy(),this._extentsTexture=this._extentsTexture&&this._extentsTexture.destroy(),this._signedDistanceTexture=this._signedDistanceTexture&&this._signedDistanceTexture.destroy(),ue(this)};var Kd=ts;var _R={NONE:0,SCENE_LIGHT:1,SUNLIGHT:2};_R.fromGlobeFlags=function(e){return e.enableLighting&&e.dynamicAtmosphereLighting?e.dynamicAtmosphereLightingFromSun?_R.SUNLIGHT:_R.SCENE_LIGHT:_R.NONE};var t_=Object.freeze(_R);function Dse(){this.lightIntensity=10,this.rayleighCoefficient=new h(55e-7,13e-6,284e-7),this.mieCoefficient=new h(21e-6,21e-6,21e-6),this.rayleighScaleHeight=1e4,this.mieScaleHeight=3200,this.mieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.dynamicLighting=t_.NONE}Dse.requiresColorCorrect=function(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))};var _b=Dse;var Zd=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var gR=`uniform samplerCube u_radianceMap; + +in vec2 v_textureCoordinates; + + +const float twoSqrtPi = 2.0 * sqrt(czm_pi); + +// Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf +float computeShBasis(int index, vec3 s) { + if (index == 0) { // l = 0, m = 0 + return 1.0 / twoSqrtPi; + } + + if (index == 1) { // l = 1, m = -1 + return -sqrt(3.0) * s.y / twoSqrtPi; + } + + if (index == 2) { // l = 1, m = 0 + return sqrt(3.0) * s.z / twoSqrtPi; + } + + if (index == 3) { // l = 1, m = 1 + return -sqrt(3.0) * s.x / twoSqrtPi; + } + + if (index == 4) { // l = 2, m = -2 + return sqrt(15.0) * s.y * s.x / twoSqrtPi; + } + + if (index == 5) { // l = 2, m = -1 + return -sqrt(15.0) * s.y * s.z / twoSqrtPi; + } + + if (index == 6) { // l = 2, m = 0 + return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi; + } + + if (index == 7) { // l = 2, m = 1 + return -sqrt(15.0) * s.x * s.z / twoSqrtPi; + } + + if (index == 8) { // l = 2, m = 2 + return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi; + } + + return 0.0; +} + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +// Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics +const int samples = 256; +const float solidAngle = 1.0 / float(samples); + +void main() { + // Get the current coefficient based on the uv + vec2 uv = v_textureCoordinates.xy * 3.0; + int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x)); + + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + float phi = czm_twoPi * xi.x; + float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi))); + + // Generate the spherical harmonics basis from the direction + float Ylm = computeShBasis(coefficientIndex, direction); + + vec3 lookupDirection = -direction.xyz; + lookupDirection.z = -lookupDirection.z; + + vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0); + + // Use the relevant function for this coefficient + out_FragColor += Ylm * color * solidAngle * sinTheta; + } + +} +`;var yR=`precision highp float; + +in vec2 v_textureCoordinates; + +uniform vec3 u_faceDirection; // Current cubemap face +uniform vec3 u_positionWC; +uniform mat4 u_enuToFixedFrame; +uniform vec4 u_brightnessSaturationGammaIntensity; +uniform vec4 u_groundColor; // alpha component represent albedo + +vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv * 2.0 - 1.0; + + if (faceDir.x != 0.0) { + return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0); + } else if (faceDir.y != 0.0) { + return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0); + } else { + return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); + } +} + +void main() { + float height = length(u_positionWC); + float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y; + float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0); + + // Scale the position to ensure the sky color is present, even when underground. + vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius); + + float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x; + float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius; + + vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz; + vec3 normalizedDirection = normalize(direction); + + czm_ray ray = czm_ray(positionWC, normalizedDirection); + czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius); + if (!czm_isEmpty(intersection)) { + intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii); + } + + bool onEllipsoid = intersection.start >= 0.0; + float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius); + + // Compute sky color for each position on a sphere at radius centered around the provided position's origin + vec3 skyPositionWC = positionWC + normalizedDirection * rayLength; + + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum)); + vec3 mieColor; + vec3 rayleighColor; + float opacity; + czm_computeScattering( + ray, + rayLength, + lightDirectionWC, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity); + +#ifdef ATMOSPHERE_COLOR_CORRECT + const bool ignoreBlackPixels = true; + atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels); +#endif + + vec3 lookupDirection = -normalizedDirection; + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + lookupDirection.x = -lookupDirection.x; + lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection); + lookupDirection.x = -lookupDirection.x; + + // Values outside the atmopshere are rendered as black, when they should be treated as transparent + float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0); + skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent + + // Blend starmap with atmopshere scattering + float intensity = u_brightnessSaturationGammaIntensity.w; + vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection); + vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a); + vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0); + + // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height + vec3 up = normalize(positionWC); + float occlusion = max(dot(lightDirectionWC, up), 0.05); + vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0); + vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0)); + + vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor); + + float brightness = u_brightnessSaturationGammaIntensity.x; + float saturation = u_brightnessSaturationGammaIntensity.y; + float gamma = u_brightnessSaturationGammaIntensity.z; + +#ifdef ENVIRONMENT_COLOR_CORRECT + color.rgb = mix(vec3(0.0), color.rgb, brightness); + color.rgb = czm_saturation(color.rgb, saturation); +#endif + color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0. + color.rgb = czm_gammaCorrect(color.rgb); + + out_FragColor = color; +} +`;var xR=`precision highp float; + +in vec3 v_textureCoordinates; + +uniform float u_roughness; +uniform samplerCube u_radianceTexture; +uniform vec3 u_faceDirection; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = czm_twoPi * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +// Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses +const int samples = 128; + +void main() { + vec3 normal = u_faceDirection; + vec3 V = normalize(v_textureCoordinates); + float roughness = u_roughness; + + vec4 color = vec4(0.0); + float weight = 0.0; + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + vec3 H = importanceSampleGGX(xi, roughness, V); + vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector + + float NdotL = max(dot(V, L), 0.0); + if (NdotL > 0.0) { + color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL; + weight += NdotL; + } + } + out_FragColor = color / weight; +} +`;var bR=`in vec3 position; +out vec3 v_textureCoordinates; + +uniform vec3 u_faceDirection; + +vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv; + + if (faceDir.x != 0.0) { + return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x); + } else if (faceDir.y != 0.0) { + return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y); + } else { + return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); + } +} + +void main() +{ + v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection); + v_textureCoordinates.y = -v_textureCoordinates.y; + v_textureCoordinates.z = -v_textureCoordinates.z; + gl_Position = vec4(position, 1.0); +} +`;function n_(e){this._position=void 0,this._radianceMapDirty=!1,this._radianceCommandsDirty=!1,this._convolutionsCommandsDirty=!1,this._irradianceCommandDirty=!1,this._irradianceTextureDirty=!1,this._sphericalHarmonicCoefficientsDirty=!1,this._shouldRegenerateShaders=!1,e=y(e,y.EMPTY_OBJECT);let t=y(e.mipmapLevels,10);this._mipmapLevels=t,this._radianceMapComputeCommands=new Array(6),this._convolutionComputeCommands=new Array((t-1)*6),this._irradianceComputeCommand=void 0,this._radianceMapFS=void 0,this._irradianceMapFS=void 0,this._convolveSP=void 0,this._va=void 0,this._radianceMapTextures=new Array(6),this._specularMapTextures=new Array((t-1)*6),this._radianceCubeMap=void 0,this._irradianceMapTexture=void 0,this._sphericalHarmonicCoefficients=new Array(9),this._lastTime=new Z;let n=Math.pow(2,t-1);this._textureDimensions=new z(n,n),this._radiiAndDynamicAtmosphereColor=new h,this._sceneEnvironmentMap=void 0,this._backgroundColor=void 0,this._owner=void 0,this.enabled=y(e.enabled,!0),this.shouldUpdate=!0,this.maximumSecondsDifference=y(e.maximumSecondsDifference,60*60),this.maximumPositionEpsilon=y(e.maximumPositionEpsilon,1e3),this.atmosphereScatteringIntensity=y(e.atmosphereScatteringIntensity,2),this.gamma=y(e.gamma,1),this.brightness=y(e.brightness,1),this.saturation=y(e.saturation,1),this.groundColor=y(e.groundColor,n_.AVERAGE_EARTH_GROUND_COLOR),this.groundAlbedo=y(e.groundAlbedo,.31)}Object.defineProperties(n_.prototype,{owner:{get:function(){return this._owner}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},position:{get:function(){return this._position},set:function(e){h.equalsEpsilon(e,this._position,0,this.maximumPositionEpsilon)||(this._position=h.clone(e,this._position),this.reset())}},radianceCubeMap:{get:function(){return this._radianceCubeMap}},maximumMipmapLevel:{get:function(){return this._mipmapLevels}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}}});n_.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};n_.prototype.reset=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;l(this._irradianceComputeCommand)&&(this._irradianceComputeCommand=void 0),this._radianceMapDirty=!0,this._radianceCommandsDirty=!0};var Nze=new h,Fze=new h;function Bze(e,t){let n=e._position,i=t.atmosphere,o=t.mapProjection.ellipsoid,r=o.scaleToGeodeticSurface(n,Fze),s=1.025,a=Nze,c=l(r)?h.magnitude(r):o.maximumRadius;return a.x=c*s,a.y=c,a.z=i.dynamicLighting,!h.equalsEpsilon(e._radiiAndDynamicAtmosphereColor,a)||t.environmentMap!==e._sceneEnvironmentMap||t.backgroundColor!==e._backgroundColor?(h.clone(a,e._radiiAndDynamicAtmosphereColor),e._sceneEnvironmentMap=t.environmentMap,e._backgroundColor=t.backgroundColor,!0):!1}var Ise=new h,kze=new F,Vze=new oe,Uze=new H;function zze(e,t){let n=t.context,i=e._textureDimensions;if(l(e._radianceCubeMap)||(e._radianceCubeMap=new br({context:n,width:i.x,height:i.y,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA})),e._radianceCommandsDirty){let o=e._radianceMapFS;l(o)||(o=new Ue({sources:[Zd,yR]}),e._radianceMapFS=o),_b.requiresColorCorrect(t.atmosphere)&&o.defines.push("ATMOSPHERE_COLOR_CORRECT");let r=e._position,s=e._radiiAndDynamicAtmosphereColor,a=t.mapProjection.ellipsoid,c=Mt.eastNorthUpToFixedFrame(r,a,kze),u=Vze;u.x=e.brightness,u.y=e.saturation,u.z=e.gamma,u.w=e.atmosphereScatteringIntensity,(e.brightness!==1||e.saturation!==1||e.gamma!==1)&&o.defines.push("ENVIRONMENT_COLOR_CORRECT");let f=0;for(let d of br.faceNames()){let p=e._radianceMapTextures[f];l(p)&&p.destroy(),p=new Pt({context:n,width:i.x,height:i.y,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA}),e._radianceMapTextures[f]=p;let g=f,m=new Nc({fragmentShaderSource:o,outputTexture:p,uniformMap:{u_radiiAndDynamicAtmosphereColor:()=>s,u_enuToFixedFrame:()=>c,u_faceDirection:()=>br.getDirection(d,Ise),u_positionWC:()=>r,u_brightnessSaturationGammaIntensity:()=>u,u_groundColor:()=>e.groundColor.withAlpha(e.groundAlbedo,Uze)},persists:!0,owner:e,postExecute:()=>{let x=e._radianceMapComputeCommands;if(!l(x[g]))return;x[g]=void 0;let b=new Mr({context:n,colorTextures:[e._radianceMapTextures[g]],destroyAttachments:!1});b._bind(),e._radianceCubeMap[d].copyFromFramebuffer(),b._unBind(),b.destroy(),x.some(l)||(e._convolutionsCommandsDirty=!0,e._shouldRegenerateShaders=!0)}});t.commandList.push(m),e._radianceMapComputeCommands[f]=m,f++}e._radianceCommandsDirty=!1}}function Hze(e,t){let n=e._radianceCubeMap;n.generateMipmap();let i=e._mipmapLevels,o=e._textureDimensions,r=o.x/2,s=o.y/2,a=t.context,c=0,u=(d,p,g,m)=>()=>{let x=e._convolutionComputeCommands;l(x[d])&&(x[d]=void 0,n.copyFace(t,p,g,m),c++,c===e._specularMapTextures.length&&(e._irradianceCommandDirty=!0,n.sampler=new $t({minificationFilter:Zt.LINEAR_MIPMAP_LINEAR}),e._shouldRegenerateShaders=!0))},f=0;for(let d=1;d<i;++d){for(let p of br.faceNames()){let g=e._specularMapTextures[f]=new Pt({context:a,width:r,height:s,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA}),m=e._va;l(m)||(m=br.createVertexArray(a,p),e._va=m);let x=e._convolveSP;l(x)||(x=Qt.fromCache({context:a,vertexShaderSource:bR,fragmentShaderSource:xR,attributeLocations:{positions:0}}),e._convolveSP=x);let b=new Nc({shaderProgram:x,vertexArray:m,outputTexture:g,persists:!0,owner:e,uniformMap:{u_roughness:()=>d/(i-1),u_radianceTexture:()=>n,u_faceDirection:()=>br.getDirection(p,Ise)},postExecute:u(f,g,p,d)});e._convolutionComputeCommands[f]=b,t.commandList.push(b),++f}r/=2,s/=2}}var Pse=new z(3,3);function Gze(e,t){let n=t.context,i=Pse,o=e._irradianceMapTexture;l(o)||(o=new Pt({context:n,width:i.x,height:i.y,pixelDatatype:Ke.FLOAT,pixelFormat:Je.RGBA}),e._irradianceMapTexture=o);let r=e._irradianceMapFS;l(r)||(r=new Ue({sources:[gR]}),e._irradianceMapFS=r);let s=new Nc({fragmentShaderSource:r,outputTexture:o,uniformMap:{u_radianceMap:()=>e._radianceCubeMap},postExecute:()=>{l(e._irradianceComputeCommand)&&(e._irradianceTextureDirty=!1,e._irradianceComputeCommand=void 0,e._sphericalHarmonicCoefficientsDirty=!0)}});e._irradianceComputeCommand=s,t.commandList.push(s),e._irradianceTextureDirty=!0}function Wze(e,t){let n=t.context,i=new Mr({context:n,colorTextures:[e._irradianceMapTexture],destroyAttachments:!1}),o=Pse,r=n.readPixels({x:0,y:0,width:o.x,height:o.y,framebuffer:i});for(let s=0;s<9;++s)e._sphericalHarmonicCoefficients[s]=h.unpack(r,s*4),h.multiplyByScalar(e._sphericalHarmonicCoefficients[s],e.atmosphereScatteringIntensity,e._sphericalHarmonicCoefficients[s]);i.destroy(),e._shouldRegenerateShaders=!0}n_.prototype.update=function(e){let t=e.mode;if(!this.enabled||!this.shouldUpdate||!l(this._position)||t===ne.MORPHING){this._shouldRegenerateShaders=!1;return}let n=e.atmosphere.dynamicLighting;if((Bze(this,e)||n===t_.SUNLIGHT&&!Z.equalsEpsilon(e.time,this._lastTime,this.maximumSecondsDifference))&&(this.reset(),this._lastTime=Z.clone(e.time,this._lastTime)),this._radianceMapDirty&&(zze(this,e),this._radianceMapDirty=!1),this._convolutionsCommandsDirty&&(Hze(this,e),this._convolutionsCommandsDirty=!1),this._irradianceCommandDirty&&(Gze(this,e),this._irradianceCommandDirty=!1),this._irradianceTextureDirty){this._shouldRegenerateShaders=!1;return}if(this._sphericalHarmonicCoefficientsDirty){Wze(this,e),this._sphericalHarmonicCoefficientsDirty=!1;return}this._shouldRegenerateShaders=!1};n_.prototype.isDestroyed=function(){return!1};n_.prototype.destroy=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;this._irradianceMapComputeCommand=void 0,e=this._radianceMapTextures.length;for(let t=0;t<e;++t)this._radianceMapTextures[t]=this._radianceMapTextures[t]&&this._radianceMapTextures[t].destroy();e=this._specularMapTextures.length;for(let t=0;t<e;++t)this._specularMapTextures[t]=this._specularMapTextures[t]&&this._specularMapTextures[t].destroy();return this._radianceCubeMap=this._radianceCubeMap&&this._radianceCubeMap.destroy(),this._irradianceMapTexture=this._irradianceMapTexture&&this._irradianceMapTexture.destroy(),ue(this)};n_.AVERAGE_EARTH_GROUND_COLOR=Object.freeze(H.fromCssColorString("#717145"));var i_=n_;var TR={HIGHLIGHT:0,REPLACE:1,MIX:2};TR.getColorBlend=function(e,t){if(e===TR.HIGHLIGHT)return 0;if(e===TR.REPLACE)return 1;if(e===TR.MIX)return P.clamp(t,P.EPSILON4,1)};var dc=Object.freeze(TR);var jze={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},hc=Object.freeze(jze);var qze={STEP:0,LINEAR:1,CUBICSPLINE:2},$d=Object.freeze(qze);var Rse={};function CR(e){this._count=e.count,this._properties=Ge(e.properties,!0)}CR.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,Rse)};CR.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,Rse,e)};CR.prototype.getProperty=function(e,t){let n=this._properties[t];if(l(n))return Ge(n[e],!0)};CR.prototype.setProperty=function(e,t,n){let i=this._properties[t];l(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=Ge(n,!0)};var o_=CR;function mc(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties(mc.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(l(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return l(this._metadataTable)&&(e+=this._metadataTable.byteLength),l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});mc.prototype.hasProperty=function(e,t){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(t)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};mc.prototype.hasPropertyBySemantic=function(e,t){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};mc.prototype.propertyExists=function(e){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(e)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};mc.prototype.propertyExistsBySemantic=function(e){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var wW=[];mc.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,l(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(wW)),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,wW)),l(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(wW)),t};mc.prototype.getProperty=function(e,t){let n;if(l(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),l(n))||l(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),l(n))||l(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),l(n)))return n};mc.prototype.setProperty=function(e,t,n){l(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(l(this._jsonMetadataTable)||(this._jsonMetadataTable=new o_({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};mc.prototype.getPropertyBySemantic=function(e,t){if(l(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};mc.prototype.setPropertyBySemantic=function(e,t,n){return l(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};mc.prototype.getPropertyTypedArray=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};mc.prototype.getPropertyTypedArrayBySemantic=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};mc.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};mc.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};mc.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};var $c=mc;function AR(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=l(t.channels)?t.channels:[0],r=t,s=Bl.createModelTextureReader({textureInfo:r,channels:Kze(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,u=n.hasValueTransform||l(a)||l(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=u,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(AR.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});AR.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?e.isVariableLengthArray?(xt(`Property texture property ${e.id} is a variable-length array, which is not supported`),!1):e.arrayLength>4?(xt(`Property texture property ${e.id} is an array of length ${e.arrayLength}, but may have at most a length of 4`),!1):t!==At.SCALAR?(xt(`Property texture property ${e.id} is an array of type ${t}, but only SCALAR is supported`),!1):n!==zt.UINT8?(xt(`Property texture property ${e.id} is an array with component type ${n}, but only UINT8 is supported`),!1):!0:At.isVectorType(t)||t===At.SCALAR?n!==zt.UINT8?(xt(`Property texture property ${e.id} has component type ${n}, but only UINT8 is supported`),!1):!0:(xt(`Property texture property ${e.id} has an unsupported type`),!1)};var Yze=[void 0,"float","vec2","vec3","vec4"],Xze=[void 0,"int","ivec2","ivec3","ivec4"];AR.prototype.getGlslType=function(){let e=this._classProperty,t=At.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?Yze[t]:Xze[t]};AR.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function Kze(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var ER=AR;function DW(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new ER({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(DW.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});DW.prototype.getProperty=function(e){return this._properties[e]};var r_=DW;function Ose(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||l(i)||l(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Ose.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var SR=Ose;function IW(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new SR({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(IW.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});IW.prototype.getProperty=function(e){return this._properties[e]};var gb=IW;function vR(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(vR.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!l(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});vR.prototype.getPropertyTable=function(e){return this._propertyTables[e]};vR.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};vR.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var qs=vR;function Zze(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(l(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],u=new Nl({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new $c({id:s,name:a.name,count:a.count,metadataTable:u,extras:a.extras,extensions:a.extensions}))}let o=[];if(l(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new r_({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(l(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new gb({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new qs({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var wR=Zze;function $ze(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(l(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],u=n.classes[c.class],f=new Nl({count:c.count,properties:c.properties,class:u,bufferViews:e.bufferViews});o.push(new $c({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(l(t.featureTextures))for(r=Object.keys(t.featureTextures).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTextures[a];s.push(new r_({id:a,propertyTexture:Qze(c),class:n.classes[c.class],textures:e.textures}))}return new qs({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function Qze(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i],r={channels:Jze(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=yt(o.texture,r,!0)}return t}function Jze(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var DR=$ze;function _y(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,extension:n,extensionLegacy:i,gltfResource:o,baseResource:r,supportedImageFormats:s,frameState:a,cacheKey:c,asynchronous:u=!0}=e;this._gltfResource=o,this._baseResource=r,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=u,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(_y.prototype=Object.create(Xi.prototype),_y.prototype.constructor=_y);Object.defineProperties(_y.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function e4e(e){try{let t=r4e(e),n=u4e(e),i=f4e(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=mt.LOADED,e)}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=mt.FAILED,e.getError("Failed to load structural metadata",t)}}_y.prototype.load=function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=e4e(this),this._promise)};function t4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function n4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function i4e(e){let t=e.propertyTables,n={};if(l(t))for(let i=0;i<t.length;i++){let o=t[i];t4e(o.properties,n)}return n}function o4e(e){let t=e.featureTables,n={};if(l(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;l(r)&&n4e(r,n)}}return n}async function r4e(e){let t;l(e._extension)?t=i4e(e._extension):t=o4e(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Ci.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(o),e._bufferViewIds.push(i),n.push(o.load())}return Promise.all(n)}function s4e(e){let t={},n=e.propertyTextures;if(l(n))for(let i=0;i<n.length;i++){let r=n[i].properties;l(r)&&a4e(r,t)}return t}function a4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function c4e(e){let t={},n=e.featureTextures;if(l(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;l(r)&&l4e(r,t)}}return t}function l4e(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function u4e(e){let t;l(e._extension)?t=s4e(e._extension):t=c4e(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let u in t)if(t.hasOwnProperty(u)){let f=Ci.getTextureLoader({gltf:n,textureInfo:t[u],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(u),c.push(f.load())}return Promise.all(c)}async function f4e(e){let t=y(e._extension,e._extensionLegacy),n;if(l(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Ci.getSchemaLoader({resource:i})}else n=Ci.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}_y.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let u=t[a].process(e);i=i&&u}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],u=this._bufferViewLoaders[a];if(!u.isDestroyed()){let f=new Uint8Array(u.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],u=t[a];u.isDestroyed()||(s[c]=u.texture)}return l(this._extension)?this._structuralMetadata=wR({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=DR({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Mse(this),this._state=mt.READY,!0};function Mse(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Ci.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function d4e(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Ci.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}_y.prototype.unload=function(){Mse(this),d4e(this),l(this._schemaLoader)&&Ci.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var IR=_y;var FA={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};FA.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return FA.TRANSLATION;case"ROTATION":return FA.ROTATION;case"SCALE":return FA.SCALE;case"_FEATURE_ID":return FA.FEATURE_ID}};var ns=Object.freeze(FA);var h4e=65534,m4e=255;function $U(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new Fse(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],p4e(this)}Object.defineProperties($U.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function p4e(e){let t=e._triangleIndices,n=e._edges,i=[],o=e._extraVertices,r=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],u=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,u),g=d||n.hasEdge(u,f),m=d||n.hasEdge(f,c),x=Lse(i,c,u,f,p,g,m);for(;l(x);){let b=s[x];if(!l(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>h4e&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>m4e&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===u?(u=b,t[a+1]=b):(f=b,t[a+2]=b),x=Lse(i,c,u,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Lse(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=PW(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=PW(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,C=PW(e,i,x,b,T);if(C===0)return i;let A=f&m&C,E,v,D;if(A&1)E=0,v=1,D=2;else if(A&2)E=0,D=1,v=2;else if(A&4)v=0,E=1,D=2;else if(A&8)v=0,D=1,E=2;else if(A&16)D=0,E=1,v=2;else if(A&32)D=0,v=1,E=2;else{let N=RW(f),_=RW(m),S=RW(C);return N<_&&N<S?t:_<S?n:i}let O=t*3;e[O+E]=a,e[O+v]=c,e[O+D]=u;let R=n*3;e[R+E]=d,e[R+v]=p,e[R+D]=g;let M=i*3;e[M+E]=x,e[M+v]=b,e[M+D]=T}function PW(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return l(s)?(s===n&&a===i&&c===o)<<0|(s===n&&a===o&&c===i)<<1|(s===i&&a===n&&c===o)<<2|(s===i&&a===o&&c===n)<<3|(s===o&&a===n&&c===i)<<4|(s===o&&a===i&&c===n)<<5:63}function RW(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}$U.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a<o;a++){let c=t[a]*i,u=n+a*i;for(let f=0;f<i;f++)s[u+f]=s[c+f]}return s};$U.createTexture=function(e){let t=e.cache.modelOutliningCache;if(l(t)||(t=e.cache.modelOutliningCache={}),l(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,kt.maximumTextureSize),i=n,o=Nse(i),r=[];for(;i>1;)i>>=1,r.push(Nse(i));let s=new Pt({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:Je.LUMINANCE,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR_MIPMAP_LINEAR,magnificationFilter:di.LINEAR})});return t.outlineTexture=s,s};function Nse(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Fse(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],o=e[n+1],r=Math.min(i,o),s=Math.max(i,o),a=r*this._originalVertexCount+s;this._edges.add(a)}}Fse.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),o=n*this._originalVertexCount+i;return this._edges.has(o)};var yb=$U;function Bse(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function _4e(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function QU(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}QU.prototype.postProcess=function(e){this.needsOutlines&&(g4e(this),x4e(this,e))};function g4e(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new yb({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Ne.fromTypedArray(n.typedArray);let r=y4e(o.outlineCoordinates),s=new Bse(r);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let u=0;u<c;u++){let f=a[u].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function y4e(e){let t=new xn.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=on.VEC3,t.normalized=!1,t.count=e.length/3,t}function x4e(e,t){b4e(e.attributePlans,t),l(e.indicesPlan)&&T4e(e.indicesPlan,t)}function b4e(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=o.attribute,s=r.typedArray;if(o.loadBuffer){let a=_t.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function T4e(e,t){let n=e.indices;if(e.loadBuffer){let i=_t.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}QU.AttributeLoadPlan=Bse;QU.IndicesLoadPlan=_4e;var xb=QU;function C4e(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var PR=C4e;function kse(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams}Object.defineProperties(kse.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}}});var RR=kse;function Vse(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams,this._covarianceMatrix=e.covarianceMatrix}Object.defineProperties(Vse.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}},covarianceMatrix:{get:function(){return this._covarianceMatrix}}});var OR=Vse;function Use(e){this._groupFlags=e.groupFlags,this._rotationThetas=e.rotationThetas,this._params=e.params}Object.defineProperties(Use.prototype,{groupFlags:{get:function(){return this._groupFlags}},rotationThetas:{get:function(){return this._rotationThetas}},params:{get:function(){return this._params}}});var MR=Use;var A4e={Direct:"Direct",Indirect:"Indirect"},gy=Object.freeze(A4e);function zse(e){this._storageType=e.storageType,this._anchorPointsIndirect=e.anchorPointsIndirect,this._anchorPointsDirect=e.anchorPointsDirect,this._intraTileCorrelationGroups=e.intraTileCorrelationGroups,this._covarianceDirect=e.covarianceDirect}Object.defineProperties(zse.prototype,{storageType:{get:function(){return this._storageType}},anchorPointsIndirect:{get:function(){return this._anchorPointsIndirect}},anchorPointsDirect:{get:function(){return this._anchorPointsDirect}},intraTileCorrelationGroups:{get:function(){return this._intraTileCorrelationGroups}},covarianceDirect:{get:function(){return this._covarianceDirect}}});var BA=zse;function Hse(e){this._A=e.A,this._alpha=e.alpha,this._beta=e.beta,this._T=e.T}Object.defineProperties(Hse.prototype,{A:{get:function(){return this._A}},alpha:{get:function(){return this._alpha}},beta:{get:function(){return this._beta}},T:{get:function(){return this._T}}});var LR=Hse;function kA(){}function Gse(e){return new $(e[0],e[1],e[3],e[1],e[2],e[4],e[3],e[4],e[5])}function E4e(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h);return new RR({position:t,adjustmentParams:n})}function S4e(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h),i=Gse(e.covarianceMatrix);return new OR({position:t,adjustmentParams:n,covarianceMatrix:i})}function v4e(e){let t=e.groupFlags,n=h.fromArray(e.rotationThetas,0,new h),i=[];for(let r of e.params){let s=new LR({A:r.A,alpha:r.alpha,beta:r.beta,T:r.T});i.push(s)}return new MR({groupFlags:t,rotationThetas:n,params:i})}kA.load=function(e){let t=e.storageType;if(t===gy.Direct)return kA.loadDirect(e);if(t===gy.Indirect)return kA.loadIndirect(e);throw new ce(`Invalid storage type in NGA_gpm_local - expected 'Direct' or 'Indirect', but found ${t}`)};kA.loadDirect=function(e){let t=[],n=e.anchorPointsDirect;for(let r of n){let s=E4e(r);t.push(s)}let i=Gse(e.covarianceDirectUpperTriangle);return new BA({storageType:gy.Direct,anchorPointsDirect:t,covarianceDirect:i})};kA.loadIndirect=function(e){let t=[],n=e.anchorPointsIndirect;for(let s of n){let a=S4e(s);t.push(a)}let i=e.intraTileCorrelationGroups,o=[];for(let s of i){let a=v4e(s);o.push(a)}return new BA({storageType:gy.Indirect,anchorPointsIndirect:t,intraTileCorrelationGroups:o})};var NR=kA;function Wse(e){this._traits=e.traits,this._noData=e.noData,this._offset=e.offset,this._scale=e.scale,this._index=e.index,this._texCoord=e.texCoord}Object.defineProperties(Wse.prototype,{traits:{get:function(){return this._traits}},noData:{get:function(){return this._noData}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},index:{get:function(){return this._index}},texCoord:{get:function(){return this._texCoord}}});var FR=Wse;function jse(e){this._min=e.min,this._max=e.max,this._source=e.source}Object.defineProperties(jse.prototype,{min:{get:function(){return this._min}},max:{get:function(){return this._max}},source:{get:function(){return this._source}}});var BR=jse;function qse(e){this._ppeTextures=e}Object.defineProperties(qse.prototype,{ppeTextures:{get:function(){return this._ppeTextures}}});var kR=qse;function Sr(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=e.cacheKey,c=y(e.asynchronous,!0);this._gltfResource=i,this._baseResource=o,this._gltf=t,this._extension=n,this._supportedImageFormats=r,this._frameState=s,this._cacheKey=a,this._asynchronous=c,this._textureLoaders=[],this._textureIds=[],this._meshPrimitiveGpmLocal=void 0,this._structuralMetadata=void 0,this._state=mt.UNLOADED,this._promise=void 0}l(Object.create)&&(Sr.prototype=Object.create(Xi.prototype),Sr.prototype.constructor=Sr);Object.defineProperties(Sr.prototype,{cacheKey:{get:function(){return this._cacheKey}},meshPrimitiveGpmLocal:{get:function(){return this._meshPrimitiveGpmLocal}},structuralMetadata:{get:function(){return this._structuralMetadata}}});Sr.prototype._loadResources=async function(){try{return await this._loadTextures(),this.isDestroyed()?void 0:(this._gltf=void 0,this._state=mt.LOADED,this)}catch(e){if(this.isDestroyed())return;throw this.unload(),this._state=mt.FAILED,this.getError("Failed to load GPM data",e)}};Sr.prototype.load=function(){return l(this._promise)?this._promise:(this._state=mt.LOADING,this._promise=this._loadResources(this),this._promise)};function w4e(e){let t={},n=e.ppeTextures;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];t[o.index]=o}return t}Sr.prototype._loadTextures=function(){let e;l(this._extension)&&(e=w4e(this._extension));let t=this._gltf,n=this._gltfResource,i=this._baseResource,o=this._supportedImageFormats,r=this._frameState,s=this._asynchronous,a=[];for(let c in e)if(e.hasOwnProperty(c)){let u=Ci.getTextureLoader({gltf:t,textureInfo:e[c],gltfResource:n,baseResource:i,supportedImageFormats:o,frameState:r,asynchronous:s});this._textureLoaders.push(u),this._textureIds.push(c),a.push(u.load())}return Promise.all(a)};Sr.ppeTexturesMetadataSchemaCache=new Map;Sr._createPpeTextureClassJson=function(e,t){let n=e.traits,i=n.source;return{name:`PPE texture class ${t}`,properties:{[i]:{name:"PPE",type:"SCALAR",componentType:"UINT8",normalized:!0,min:n.min,max:n.max}}}};Sr._obtainPpeTexturesMetadataSchema=function(e){let n=Sr._collectPpeTexturePropertyIdentifiers(e).toString(),i=Sr.ppeTexturesMetadataSchemaCache.get(n);if(l(i))return i;let r={id:`PPE_TEXTURE_SCHEMA_${Sr.ppeTexturesMetadataSchemaCache.size}`,classes:{}},s=e.ppeTextures;for(let a=0;a<s.length;a++){let c=s[a],u=`ppeTexture_${a}`,f=Sr._createPpeTextureClassJson(c,a);r.classes[u]=f}return i=Au.fromJson(r),Sr.ppeTexturesMetadataSchemaCache.set(n,i),i};Sr._collectPpeTexturePropertyIdentifiers=function(e){let t=[],n=e.ppeTextures;for(let i=0;i<n.length;i++){let o=n[i],r=Sr._createPpeTextureClassJson(o,i),s=JSON.stringify(r);t.push(s)}return t};Sr._convertToStructuralMetadata=function(e,t){let n=[],i=Sr._obtainPpeTexturesMetadataSchema(e),o=e.ppeTextures;for(let s=0;s<o.length;s++){let a=o[s],c=`ppeTexture_${s}`,f=a.traits.source,d=i.classes[c],p=(a.scale??1)*255,g={class:c,properties:{[f]:{index:a.index,texCoord:a.texCoord,offset:a.offset,scale:p}}};n.push(new r_({id:s,name:a.name,propertyTexture:g,class:d,textures:t}))}return new qs({schema:i,propertyTables:[],propertyTextures:n,propertyAttributes:[]})};Sr.prototype.process=function(e){if(this._state===mt.READY)return!0;if(this._state!==mt.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let u=0;u<n;++u){let d=t[u].process(e);i=i&&d}if(!i)return!1;let o={};for(let u=0;u<this._textureIds.length;++u){let f=this._textureIds[u],d=t[u];d.isDestroyed()||(o[f]=d.texture)}let r=[],s=this._extension;if(l(s.ppeTextures)){let u=s.ppeTextures;for(let f of u){let d=f.traits,p=new BR({min:d.min,max:d.max,source:d.source}),g=new FR({traits:p,noData:f.noData,offset:f.offset,scale:f.scale,index:f.index,texCoord:f.texCoord});r.push(g)}}let a=new kR(r);this._meshPrimitiveGpmLocal=a;let c=Sr._convertToStructuralMetadata(a,o);return this._structuralMetadata=c,this._state=mt.READY,!0};Sr.prototype._unloadTextures=function(){let e=this._textureLoaders,t=e.length;for(let n=0;n<t;++n)Ci.unload(e[n]);this._textureLoaders.length=0,this._textureIds.length=0};Sr.prototype.unload=function(){this._unloadTextures(),this._gltf=void 0,this._extension=void 0,this._structuralMetadata=void 0};var VR=Sr;var{Attribute:D4e,Indices:I4e,FeatureIdAttribute:Yse,FeatureIdTexture:Xse,FeatureIdImplicitRange:Kse,MorphTarget:P4e,Primitive:R4e,Instances:O4e,Skin:M4e,Node:L4e,AnimatedPropertyType:N4e,AnimationSampler:F4e,AnimationTarget:B4e,AnimationChannel:k4e,Animation:V4e,ArticulationStage:U4e,Articulation:z4e,Asset:H4e,Scene:G4e,Components:W4e,MetallicRoughness:j4e,SpecularGlossiness:q4e,Specular:Y4e,Anisotropy:OW,Clearcoat:MW,Material:X4e}=xn,Lo={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function Qd(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,typedArray:n,releaseGltfJson:i=!1,asynchronous:o=!0,incrementallyLoadTextures:r=!0,upAxis:s=Oo.Y,forwardAxis:a=Oo.Z,loadAttributesAsTypedArray:c=!1,loadAttributesFor2D:u=!1,enablePick:f=!1,loadIndicesForWireframe:d=!1,loadPrimitiveOutline:p=!0,loadForClassification:g=!1,renameBatchIdSemantic:m=!1}=e,{baseResource:x=t.clone()}=e;this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=x,this._typedArray=n,this._releaseGltfJson=i,this._asynchronous=o,this._incrementallyLoadTextures=r,this._upAxis=s,this._forwardAxis=a,this._loadAttributesAsTypedArray=c,this._loadAttributesFor2D=u,this._enablePick=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=m,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=Lo.NOT_LOADED,this._textureState=Lo.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._meshPrimitiveGpmLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._supportedImageFormats=void 0,this._postProcessBuffers=[],this._components=void 0}l(Object.create)&&(Qd.prototype=Object.create(Xi.prototype),Qd.prototype.constructor=Qd);Object.defineProperties(Qd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return l(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function K4e(e){e._state=Lo.LOADING,e._textureState=Lo.LOADING;try{let t=Ci.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=Lo.LOADED,e._textureState=Lo.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=Lo.FAILED,e._textureState=Lo.FAILED,JU(e,t)}}async function Z4e(e,t){Ht.supportsWebP.initialized||await Ht.supportsWebP.initialize(),e._supportedImageFormats=new PR({webp:Ht.supportsWebP(),basis:t.context.supportsBasis});let n=JHe(e,t);return e._state=Lo.PROCESSING,e._textureState=Lo.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(Ci.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),n}Qd.prototype.load=async function(){return l(this._promise)?this._promise:(this._promise=K4e(this),this._promise)};function JU(e,t){throw e.unload(),e.getError("Failed to load glTF",t)}function $4e(e,t){let n=!0,i=e._geometryLoaders;for(let s=0;s<i.length;++s){let a=i[s].process(t);a&&l(e._geometryCallbacks[s])&&(e._geometryCallbacks[s](),e._geometryCallbacks[s]=void 0),n=n&&a}let o=e._structuralMetadataLoader;if(l(o)){let s=o.process(t);s&&(e._components.structuralMetadata=o.structuralMetadata),n=n&&s}let r=e._meshPrimitiveGpmLoader;if(l(r)){let s=r.process(t);s&&(l(e._components.structuralMetadata)&&xt("structural-metadata-gpm","The model defines both the 'EXT_structural_metadata' extension and the 'NGA_gpm_local' extension. The data from the 'EXT_structural_metadata' extension will be replaced with the data from the 'NGA_gpm_local' extension, and will no longer be available for styling and picking."),e._components.structuralMetadata=r.structuralMetadata),n=n&&s}n&&(e._state=Lo.POST_PROCESSING)}function Q4e(e,t){let n=e._primitiveLoadPlans;for(let i=0;i<n.length;i++){let o=n[i];o.postProcess(t),o.needsOutlines&&J4e(e,o)}}function J4e(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;l(o)&&n.push(o.buffer);let r=i.attributes;for(let a=0;a<r.length;a++){let c=r[a];l(c.buffer)&&n.push(c.buffer)}let s=i.indices;l(s)&&l(s.buffer)&&n.push(s.buffer)}Qd.prototype._process=function(e){return this._state===Lo.READY?!0:(this._state===Lo.PROCESSING&&$4e(this,e),this._resourcesLoaded&&this._state===Lo.POST_PROCESSING&&(Q4e(this,e.context),this._state=Lo.PROCESSED),this._resourcesLoaded&&this._state===Lo.PROCESSED?(oae(this),this._typedArray=void 0,this._state=Lo.READY,!0):!1)};Qd.prototype._processTextures=function(e){if(this._textureState===Lo.READY)return!0;if(this._textureState!==Lo.PROCESSING)return!1;let t=!0,n=this._textureLoaders;for(let i=0;i<n.length;++i){let o=n[i].process(e);o&&l(this._textureCallbacks[i])&&(this._textureCallbacks[i](),this._textureCallbacks[i]=void 0),t=t&&o}return t?(this._textureState=Lo.READY,this._texturesLoaded=!0,!0):!1};Qd.prototype.process=function(e){if(this._state===Lo.LOADED&&!l(this._loadResourcesPromise)&&(this._loadResourcesPromise=Z4e(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=Lo.FAILED;let o=this._processError;this._processError=void 0,JU(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===Lo.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=Lo.FAILED,JU(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=Lo.FAILED,JU(this,o)}return this._incrementallyLoadTextures?n:n&&i};function eHe(e,t,n,i,o,r,s){let a=e.gltfJson,u=a.accessors[t].bufferView;return Ci.getVertexBufferLoader({gltf:a,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,bufferViewId:u,draco:i,attributeSemantic:n,accessorId:t,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function tHe(e,t,n,i,o,r){return Ci.getIndexBufferLoader({gltf:e.gltfJson,accessorId:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:r,draco:n,asynchronous:e._asynchronous,loadBuffer:i,loadTypedArray:o})}function nHe(e,t){let n=Ci.getBufferViewLoader({gltf:e.gltfJson,bufferViewId:t,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(n),n}function Zse(e,t,n){let i=t.byteOffset,o=Fl(e,t),r=t.count,s=Cu(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),m=Qp(t.componentType);i=n.byteOffset+i;for(let x=0;x<r;++x){m(p,i,s,c,g);for(let b=0;b<s;++b)d[x*s+b]=g[b];i+=o}return d}function iHe(e,t){let n=e.type;if(n===on.SCALAR)return t.fill(0);let i=on.getMathType(n);return t.fill(i.clone(i.ZERO))}function oHe(e,t,n,i){let o=e.type,r=e.count;if(o===on.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===on.VEC4&&i)for(let s=0;s<r;s++)n[s]=Oe.unpack(t,s*4);else{let s=on.getMathType(o),a=on.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function rHe(e,t,n,i,o){let{gltfJson:r}=e;if(await t.load(),e.isDestroyed())return;let s=Zse(r,n,t.typedArray);i=y(i,!1),oHe(n,s,o,i)}function ez(e,t,n){let i=new Array(t.count),o=t.bufferView;if(l(o)){let r=nHe(e,o),s=rHe(e,r,t,n,i);return e._loaderPromises.push(s),i}return iHe(t,i)}function Eu(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function sHe(e){return e===Number?0:new e}function aHe(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var cHe={VEC2:new z(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function lHe(e,t){let n=aHe(e.componentDatatype),i=cHe[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function uHe(e,t,n){let i=e.decodeMatrix,o=Eu(n,e.decodedMin),r=Eu(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new xn.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new z(i[6],i[7]),s.quantizedVolumeStepSize=new z(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new oe(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new oe(i[0],i[6],i[12],i[18])),t.quantization=s}function fHe(e,t,n,i,o){let r=e.accessors[t],s=on.getMathType(r.type),a=y(r.normalized,!1),c=new D4e;c.name=n,c.semantic=i,c.setIndex=o,c.constant=sHe(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=Eu(s,r.min),c.max=Eu(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=Fl(e,r),oi(r,"WEB3D_quantized_attributes")&&uHe(r.extensions.WEB3D_quantized_attributes,c,s);let u=c.semantic===Tt.POSITION||c.semantic===Tt.NORMAL||c.semantic===Tt.TANGENT||c.semantic===Tt.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&u&&lHe(c,s),c}function $se(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var dHe={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function LW(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=dHe;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function hHe(e){let t=e===Tt.POSITION,n=e===Tt.FEATURE_ID,i=e===Tt.TEXCOORD;return t||n||i}function mHe(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function pHe(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Zse(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Qse(e,t,n,i,o,r,s){let a=e.gltfJson,c=a.accessors[t],u=c.bufferView,f=n.gltfSemantic,d=n.renamedSemantic,p=n.modelSemantic,g=l(p)?$se(d):void 0,x=fHe(a,t,f,p,g);if(!l(i)&&!l(u))return x;let b=eHe(e,t,f,i,o,r,s),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let C=b.load();return e._loaderPromises.push(C),e._geometryCallbacks[T]=()=>{l(i)&&l(i.attributes)&&l(i.attributes[f])?mHe(x,b,o,r):pHe(a,c,x,b,o,r)},x}function Jse(e,t,n,i,o,r,s){let a=n.modelSemantic,c=a===Tt.POSITION,u=a===Tt.FEATURE_ID,f=c&&!o&&e._loadAttributesFor2D&&!s.scene3DOnly,d=c&&e._enablePick&&!s.context.webgl2,p=e._loadForClassification&&u,g=e._loadAttributesAsTypedArray,m=!g,x=g||f||d||p,C=Qse(e,t,n,i,r?!1:m,r?!0:x,s),A=new xb.AttributeLoadPlan(C);return A.loadBuffer=m,A.loadTypedArray=x,A}function _He(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=LW(e,ns,i),u=c.modelSemantic,f=u===ns.TRANSLATION||u===ns.ROTATION||u===ns.SCALE,d=u===ns.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!o.context.instancedArrays,g=e._enablePick&&!o.context.webgl2,m=!p,x=e._loadAttributesFor2D&&!o.scene3DOnly;return Qse(e,t,c,void 0,m,p||d&&(!a||x||g),o)}function gHe(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView;if(!l(n)&&!l(a))return;let c=new I4e;c.count=s.count;let u=e._loadAttributesAsTypedArray,f=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,d=e._loadForClassification&&i,g=!u,m=u||f||d,T=tHe(e,t,n,o?!1:g,o?!0:m,r),C=e._geometryLoaders.length;e._geometryLoaders.push(T);let A=T.load();e._loaderPromises.push(A),e._geometryCallbacks[C]=()=>{c.indexDatatype=T.indexDatatype,c.buffer=T.buffer,c.typedArray=T.typedArray};let E=new xb.IndicesLoadPlan(c);return E.loadBuffer=g,E.loadTypedArray=m,E}function Qc(e,t,n,i){let o=e.gltfJson,r=Bl.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=Ci.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=Bl.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let u=s.load().catch(f=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw f;e._textureState=Lo.FAILED,e._textureErrors.push(f)}});return e._texturesPromises.push(u),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function yHe(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new q4e;return l(i)&&(c.diffuseTexture=Qc(e,i,n)),l(o)&&(c.specularGlossinessTexture=Qc(e,o,n)),c.diffuseFactor=Eu(oe,r),c.specularFactor=Eu(h,s),c.glossinessFactor=a,c}function xHe(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new j4e;return l(i)&&(c.baseColorTexture=Qc(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Qc(e,o,n)),c.baseColorFactor=Eu(oe,r),c.metallicFactor=s,c.roughnessFactor=a,c}function bHe(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new Y4e;return l(o)&&(a.specularTexture=Qc(e,o,n)),l(s)&&(a.specularColorTexture=Qc(e,s,n)),a.specularFactor=i,a.specularColorFactor=Eu(h,r),a}function THe(e,t,n){let{anisotropyStrength:i=OW.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=OW.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new OW;return l(r)&&(s.anisotropyTexture=Qc(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function CHe(e,t,n){let{clearcoatFactor:i=MW.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=MW.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new MW;return l(o)&&(c.clearcoatTexture=Qc(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Qc(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Qc(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function AHe(e,t,n){let i=new X4e,o=y(t.extensions,y.EMPTY_OBJECT),r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,u=t.pbrMetallicRoughness;return i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=yHe(e,r,n):(l(u)&&(i.metallicRoughness=xHe(e,u,n)),l(s)&&!i.unlit&&(i.specular=bHe(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=THe(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=CHe(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Qc(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Qc(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Qc(e,t.occlusionTexture,n)),i.emissiveFactor=Eu(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided,i}function eae(e,t){let n=new Yse;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function tae(e,t,n,i){let o=new Yse,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=$se(r.attribute),o.positionalLabel=i,o}function nae(e,t){let n=new Kse;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function iae(e,t,n,i){let o=new Kse,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function EHe(e,t,n,i){let o=new Xse;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Qc(e,r,n,$t.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function SHe(e,t,n,i,o,r){let s=new Xse,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Qc(e,c,i,$t.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function vHe(e,t,n,i,o){let r=new P4e,s=void 0,a=!1;for(let c in t){if(!t.hasOwnProperty(c))continue;let u=t[c],f=LW(e,Tt,c),d=Jse(e,u,f,s,a,n,o);r.attributes.push(d.attribute),i.attributePlans.push(d)}return r}function wHe(e,t,n,i){let o=new R4e,r=new xb(o);e._primitiveLoadPlans.push(r);let s=t.material;l(s)&&(o.material=AHe(e,e.gltfJson.materials[s],i));let a=y(t.extensions,y.EMPTY_OBJECT),c=!1,u=a.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(u)&&(c=!0,r.needsOutlines=!0,r.outlineIndices=DHe(e,u,r));let f=e._loadForClassification,d=a.KHR_draco_mesh_compression,p=!1,g=t.attributes;if(l(g))for(let v in g){if(!g.hasOwnProperty(v))continue;let D=g[v],O=LW(e,Tt,v),R=O.modelSemantic;if(f&&!hHe(R))continue;R===Tt.FEATURE_ID&&(p=!0);let M=Jse(e,D,O,d,n,c,i);r.attributePlans.push(M),o.attributes.push(M.attribute)}let m=t.targets;if(l(m)&&!f)for(let v=0;v<m.length;++v)o.morphTargets.push(vHe(e,m[v],c,r,i));let x=t.indices;if(l(x)){let v=gHe(e,x,d,p,c,i);l(v)&&(r.indicesPlan=v,o.indices=v.indices)}let b=a.EXT_structural_metadata,T=a.EXT_mesh_features,C=a.EXT_feature_metadata,A=l(C);l(T)?IHe(e,o,T,i):A&&PHe(e,o,C,i),l(b)?RHe(o,b):A&&OHe(e,o,C);let E=t.mode;if(f&&E!==Me.TRIANGLES)throw new ce("Only triangle meshes can be used for classification.");return o.primitiveType=E,o}function DHe(e,t){let n=t.indices,i=e.gltfJson.accessors[n];return ez(e,i,!1)}function IHe(e,t,n,i){let o;l(n)&&l(n.featureIds)?o=n.featureIds:o=[];for(let r=0;r<o.length;r++){let s=o[r],a=`featureId_${r}`,c;l(s.texture)?c=EHe(e,s,i,a):l(s.attribute)?c=eae(s,a):c=nae(s,a),t.featureIds.push(c)}}function PHe(e,t,n,i){let{featureTables:o}=e.gltfJson.extensions.EXT_feature_metadata,r=0,s=n.featureIdAttributes;if(l(s))for(let c=0;c<s.length;++c){let u=s[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m;l(u.featureIds.attribute)?m=tae(u,d,p,g):m=iae(u,d,p,g),t.featureIds.push(m)}let a=n.featureIdTextures;if(l(a))for(let c=0;c<a.length;++c){let u=a[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m=SHe(e,u,d,i,p,g);t.featureIds.push(m)}}function RHe(e,t){l(t)&&(l(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),l(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function OHe(e,t,n){l(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function MHe(e,t,n){let i=t.EXT_mesh_gpu_instancing,o=new O4e,r=i.attributes;if(l(r))for(let u in r){if(!r.hasOwnProperty(u))continue;let f=r[u];o.attributes.push(_He(e,f,r,u,n))}let s=y(i.extensions,y.EMPTY_OBJECT),a=t.EXT_instance_features,c=s.EXT_feature_metadata;return l(a)?LHe(o,a):l(c)&&NHe(e.gltfJson,o,c,e._sortedPropertyTableIds),o}function LHe(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;l(o.attribute)?s=eae(o,r):s=nae(o,r),e.featureIds.push(s)}}function NHe(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(l(r))for(let s=0;s<r.length;++s){let a=r[s],c=a.featureTable,u=i.indexOf(c),f=o[c].count,d=`instanceFeatureId_${s}`,p;l(a.featureIds.attribute)?p=tae(a,u,f,d):p=iae(a,u,f,d),t.featureIds.push(p)}}function FHe(e,t,n){let i=new L4e;i.name=t.name,i.matrix=Eu(F,t.matrix),i.translation=Eu(h,t.translation),i.rotation=Eu(Oe,t.rotation),i.scale=Eu(h,t.scale);let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_mesh_gpu_instancing,s=o.AGI_articulations;if(l(r)){if(e._loadForClassification)throw new ce("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");i.instances=MHe(e,o,n)}l(s)&&(i.articulationName=s.articulationName);let a=t.mesh;if(l(a)){let c=e.gltfJson.meshes[a],u=c.primitives;for(let p=0;p<u.length;++p)i.primitives.push(wHe(e,u[p],l(i.instances),n));let f=y(t.weights,c.weights),d=i.primitives[0].morphTargets;i.morphWeights=l(f)?f.slice():new Array(d.length).fill(0)}return i}function BHe(e,t){let n=e.gltfJson.nodes;if(!l(n))return[];let i=n.map(function(o,r){let s=FHe(e,o,t);return s.index=r,s});for(let o=0;o<i.length;++o){let r=n[o].children;if(l(r))for(let s=0;s<r.length;++s)i[o].children.push(i[r[s]])}return i}function kHe(e,t,n){let i=new M4e,o=t.joints;i.joints=o.map(s=>n[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=ez(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(F.IDENTITY);return i}function VHe(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=kHe(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r<t.length;++r){let s=o[r].skin;l(s)&&(t[r].skin=i[s])}return i}async function UHe(e,t,n,i){let o=new IR({gltf:e.gltfJson,extension:t,extensionLegacy:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._structuralMetadataLoader=o,o.load()}async function zHe(e,t,n,i){let o=new VR({gltf:t,extension:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._meshPrimitiveGpmLoader=o,o.load()}function HHe(e,t){let n=new F4e,i=e.gltfJson.accessors,o=i[t.input];n.input=ez(e,o);let r=t.interpolation;n.interpolation=y($d[r],$d.LINEAR);let s=i[t.output];return n.output=ez(e,s,!0),n}function GHe(e,t){let n=new B4e,i=e.node;if(!l(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=N4e[o],n}function WHe(e,t,n){let i=new k4e,o=e.sampler;return i.sampler=t[o],i.target=GHe(e.target,n),i}function jHe(e,t,n){let i=new V4e;i.name=t.name;let o=t.samplers.map(function(s,a){let c=HHe(e,s);return c.index=a,c}),r=t.channels.map(function(s){return WHe(s,o,n)});return i.samplers=o,i.channels=r,i}function qHe(e,t){let n=e.gltfJson.animations;return e._loadForClassification||!l(n)?[]:n.map(function(o,r){let s=jHe(e,o,t);return s.index=r,s})}function YHe(e){let t=new U4e;t.name=e.name;let n=e.type.toUpperCase();return t.type=hc[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function XHe(e){let t=new z4e;return t.name=e.name,t.stages=e.stages.map(YHe),t}function KHe(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations?.articulations;return l(n)?n.map(XHe):[]}function ZHe(e){let t;return l(e.scenes)&&l(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=l(t)?t:[],t}function $He(e,t){let n=new G4e,i=ZHe(e);return n.nodes=i.map(function(o){return t[o]}),n}var QHe=new h;function JHe(e,t){let n=e.gltfJson,i=y(n.extensions,y.EMPTY_OBJECT),o=i.EXT_structural_metadata,r=i.EXT_feature_metadata,s=i.CESIUM_RTC;if(l(r)){let C=r.featureTables,A=r.featureTextures,E=l(C)?C:[],v=l(A)?A:[];e._sortedPropertyTableIds=Object.keys(E).sort(),e._sortedFeatureTextureIds=Object.keys(v).sort()}let a=BHe(e,t),c=VHe(e,a),u=qHe(e,a),f=KHe(n),d=$He(n,a),p=new W4e,g=new H4e,m=n.asset.copyright;if(l(m)){let C=m.split(";").map(function(A){return new vt(A.trim())});g.credits=C}if(p.asset=g,p.scene=d,p.nodes=a,p.skins=c,p.animations=u,p.articulations=f,p.upAxis=e._upAxis,p.forwardAxis=e._forwardAxis,l(s)){let C=h.fromArray(s.center,0,QHe);p.transform=F.fromTranslation(C,p.transform)}if(e._components=p,l(o)||l(r)){let C=UHe(e,o,r,t);e._loaderPromises.push(C)}let x=i.NGA_gpm_local;if(l(x)){let C=NR.load(x);e._components.extensions.NGA_gpm_local=C}let b=n.meshes;if(l(b))for(let C of b){let A=C.primitives;if(l(A))for(let E of A){let v=E.extensions;if(l(v)){let D=v.NGA_gpm_local;if(l(D)){let O=zHe(e,n,D,t);e._loaderPromises.push(O)}}}}let T=[];return T.push.apply(T,e._loaderPromises),e._incrementallyLoadTextures||T.push.apply(T,e._texturesPromises),Promise.all(T)}function e8e(e){let t=e._textureLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._textureLoaders.length=0}function oae(e){let t=e._bufferViewLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._bufferViewLoaders.length=0}function t8e(e){let t=e._geometryLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ci.unload(t[n]);e._geometryLoaders.length=0}function n8e(e){let t=e._postProcessBuffers;for(let n=0;n<t.length;n++){let i=t[n];i.isDestroyed()||i.destroy()}t.length=0}function i8e(e){l(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}function o8e(e){l(e._meshPrimitiveGpmLoader)&&!e._meshPrimitiveGpmLoader.isDestroyed()&&(e._meshPrimitiveGpmLoader.destroy(),e._meshPrimitiveGpmLoader=void 0)}Qd.prototype.isUnloaded=function(){return this._state===Lo.UNLOADED};Qd.prototype.unload=function(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Ci.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,e8e(this),oae(this),t8e(this),n8e(this),i8e(this),o8e(this),this._components=void 0,this._typedArray=void 0,this._state=Lo.UNLOADED};var s_=Qd;var UR=`uniform sampler2D u_pointCloud_colorGBuffer; +uniform sampler2D u_pointCloud_depthGBuffer; +uniform vec2 u_distanceAndEdlStrength; +in vec2 v_textureCoordinates; + +vec2 neighborContribution(float log2Depth, vec2 offset) +{ + float dist = u_distanceAndEdlStrength.x; + vec2 texCoordOrig = v_textureCoordinates + offset * dist; + vec2 texCoord0 = v_textureCoordinates + offset * floor(dist); + vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist); + + float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0)); + float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1)); + + // ignore depth values that are the clear depth + if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) { + return vec2(0.0); + } + + // interpolate the two adjacent depth values + float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix); + return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0); +} + +void main() +{ + float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates)); + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth); + eyeCoordinate /= eyeCoordinate.w; + + float log2Depth = log2(-eyeCoordinate.z); + + if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer + { + discard; + } + + vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates); + + // sample from neighbors left, right, down, up + vec2 texelSize = 1.0 / czm_viewport.zw; + + vec2 responseAndCount = vec2(0.0); + + responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y)); + + float response = responseAndCount.x / responseAndCount.y; + float strength = u_distanceAndEdlStrength.y; + float shade = exp(-response * 300.0 * strength); + color.rgb *= shade; + out_FragColor = vec4(color); + + // Input and output depth are the same. + gl_FragDepth = depthOrLogDepth; +} +`;function VA(){this._framebuffer=new hi({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(VA.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function r8e(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var NW=new z;function s8e(e,t){let n=new Ue({defines:["LOG_DEPTH_WRITE"],sources:[UR]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return NW.x=e._radius,NW.y=e._strength,NW}},o=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Vt.setCesium3DTileBit(),stencilMask:Vt.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:ve.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ei({framebuffer:e.framebuffer,color:new H(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:ve.CESIUM_3D_TILE,owner:e})}function a8e(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),s8e(e,t)}function rae(e){return e.drawBuffers&&e.fragmentDepth}VA.isSupported=rae;function c8e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=Ue.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main() +{ + czm_point_cloud_post_process_main(); +#ifdef LOG_DEPTH + czm_writeLogDepth(); + out_FragData_1 = czm_packDepth(gl_FragDepth); +#else + out_FragData_1 = czm_packDepth(gl_FragCoord.z); +#endif +}`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}VA.prototype.update=function(e,t,n,i){if(!rae(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,a8e(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let u=r[o];if(u.primitiveType!==Me.POINTS||u.pass===ve.TRANSLUCENT)continue;let f,d,p=u.derivedCommands.pointCloudProcessor;l(p)&&(f=p.command,d=p.originalShaderProgram),(!l(f)||u.dirty||d!==u.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=Ze.shallowClone(u,f),f.framebuffer=this.framebuffer,f.shaderProgram=c8e(e.context,u.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,l(p)||(p={command:f,originalShaderProgram:u.shaderProgram},u.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=u.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};VA.prototype.isDestroyed=function(){return!1};VA.prototype.destroy=function(){return r8e(this),ue(this)};var a_=VA;function sae(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}sae.isSupported=function(e){return a_.isSupported(e.context)};var gm=sae;var Na={},l8e=new oe(0,0,0,1),pc=new oe,u8e=new je,FW=new z,BW=new z;Na.worldToWindowCoordinates=function(e,t,n){return Na.worldWithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var aae=new oe,cae=new h;function zR(e,t,n,i){let o=n.viewMatrix,r=F.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,aae),aae),s=h.multiplyComponents(t,h.normalize(r,cae),cae);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,F.multiplyByVector(n.frustum.projectionMatrix,r,i)}var f8e=new fe(Math.PI,P.PI_OVER_TWO),d8e=new h,h8e=new h;Na.worldWithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=Na.computeActualEllipsoidPosition(o,t,l8e);if(!l(r))return;let s=e.canvas,a=u8e;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,u=!1;if(o.mode===ne.SCENE2D){let f=e.mapProjection,d=f8e,p=f.project(d,d8e),g=h.clone(c.position,h8e),m=c.frustum.clone(),x=F.computeViewportTransformation(a,0,1,new F),b=c.frustum.projectionMatrix,T=c.positionWC.y,C=h.fromElements(P.sign(T)*p.x-T,0,-c.positionWC.x),A=Mt.pointToGLWindowCoordinates(b,x,C);if(T===0||A.x<=0||A.x>=s.clientWidth)u=!0;else{if(A.x>s.clientWidth*.5){a.width=A.x,c.frustum.right=p.x-T,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,FW),a.x+=A.x,c.position.x=-c.position.x;let E=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-E,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,BW)}else{a.x+=A.x,a.width-=A.x,c.frustum.left=-p.x-T,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,FW),a.x=a.x-a.width,c.position.x=-c.position.x;let E=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-E,pc=zR(r,n,c,pc),Na.clipToGLWindowCoordinates(a,pc,BW)}h.clone(g,c.position),c.frustum=m.clone(),i=z.clone(FW,i),(i.x<0||i.x>s.clientWidth)&&(i.x=BW.x)}}if(o.mode!==ne.SCENE2D||u){if(pc=zR(r,n,c,pc),pc.z<0&&!(c.frustum instanceof rn)&&!(c.frustum instanceof Lr))return;i=Na.clipToGLWindowCoordinates(a,pc,i)}return i.y=s.clientHeight-i.y,i};Na.worldToDrawingBufferCoordinates=function(e,t,n){if(n=Na.worldToWindowCoordinates(e,t,n),!!l(n))return Na.transformWindowToDrawingBuffer(e,n,n)};var c_=new h,m8e=new fe;Na.computeActualEllipsoidPosition=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,m8e);if(!l(r))return;if(o.project(r,c_),i===ne.COLUMBUS_VIEW)return h.fromElements(c_.z,c_.x,c_.y,n);if(i===ne.SCENE2D)return h.fromElements(0,c_.x,c_.y,n);let s=e.morphTime;return h.fromElements(P.lerp(c_.z,t.x,s),P.lerp(c_.x,t.y,s),P.lerp(c_.y,t.z,s),n)};var lae=new h,uae=new h,fae=new F;Na.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,lae),F.computeViewportTransformation(e,0,1,fae),F.multiplyByPoint(fae,lae,uae),z.fromCartesian3(uae,n)};Na.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return z.fromElements(t.x*o,t.y*r,n)};var p8e=new oe,dae=new oe;Na.drawingBufferToWorldCoordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,m=Math.pow(2,g)-1;n=c*(1-a/(m+a))/(c-a)}let u=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,p8e);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=F.multiplyByVector(r.inverseViewProjection,f,dae);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=dae,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=F.multiplyByVector(r.inverseView,d,d)}return h.fromCartesian4(d,i)};var Ui=Na;var UA={};UA._deprecationWarning=ds;var l_=Uint32Array.BYTES_PER_ELEMENT;UA.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=l_;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=l_;let s=o.getUint32(t,!0);t+=l_;let a=o.getUint32(t,!0);t+=l_;let c=o.getUint32(t,!0);t+=l_;let u=o.getUint32(t,!0);t+=l_;let f=o.getUint32(t,!0);t+=l_;let d;u>=570425344?(t-=l_*2,d=a,u=c,f=0,a=0,c=0,UA._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=l_,d=u,u=a,f=c,a=0,c=0,UA._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Mo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Mo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(UA._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var HR=UA;function GR(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function hae(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function _8e(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}GR.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),hae(this,e,t,n,1,i.byteOffset)):i};GR.prototype.hasProperty=function(e){return l(this.json[e])};GR.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),hae(this,e,t,n,this.featuresLength,i.byteOffset)):_8e(this,e,t,i)};GR.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)o[a]=s[n*i+a];return o};var Jd=GR;function WR(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=g8e(n),a;l(s.jsonProperties)&&(a=new o_({count:t,properties:s.jsonProperties}));let c;l(s.hierarchy)&&(c=new Xx({extension:s.hierarchy,binaryBody:i}));let u=qd.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=x8e(t,u,f,i,r);g=b.transcodedSchema,p=[new gb({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=y8e(t,u,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new Nl({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(l(d)||l(a)||l(c)){let b=new $c({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});m.push(b)}let x={schema:g,propertyTables:m,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new qs(x)}function g8e(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;l(t)?(WR._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):l(i)&&(o=i["3DTILES_batch_table_hierarchy"]);let r,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(r=l(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function y8e(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!l(i))throw new ce(`Property ${d} requires a batch table binary.`);let p=n[d],g=bu(p);r[d]={bufferView:a},o[d]=mae(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let u=Au.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:u,transcodedClass:u.classes[t]}}function x8e(e,t,n,i,o){let r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!l(i)&&!l(p.typedArray))throw new ce(`Property ${d} requires a batch table binary.`);let g=Kt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=mae(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;l(b)||(b=bu(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new xn.Attribute;T.name=x,T.count=e,T.type=p.type;let C=X.fromTypedArray(b);(C===X.INT||C===X.UNSIGNED_INT||C===X.DOUBLE)&&(WR._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${x}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),b=new Float32Array(b)),T.componentDatatype=X.fromTypedArray(b),T.typedArray=b,o.push(T),s[g]={attribute:x}}let c={classes:{}};c.classes[t]={properties:r};let u=Au.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:u,transcodedClass:u.classes[t]}}function mae(e){let t=b8e(e.componentType);return{type:e.type,componentType:t}}function b8e(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}WR._deprecationWarning=ds;WR._oneTimeWarning=xt;var u_=WR;var bb={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},T8e=xn.FeatureIdAttribute;function yy(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Oo.Y),u=y(e.forwardAxis,Oo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.enablePick,!1),g=y(e.loadIndicesForWireframe,!1),m=y(e.loadPrimitiveOutline,!0),x=y(e.loadForClassification,!1);n=l(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._enablePick=p,this._loadIndicesForWireframe=g,this._loadPrimitiveOutline=m,this._loadForClassification=x,this._state=bb.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(yy.prototype=Object.create(Xi.prototype),yy.prototype.constructor=yy);Object.defineProperties(yy.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});yy.prototype.load=function(){if(l(this._promise))return this._promise;let e=HR.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Jd(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(a)&&(this._transform=F.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new s_({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=bb.LOADING;let u=this;return this._promise=c.load().then(function(){if(!u.isDestroyed())return u._state=bb.PROCESSING,u}).catch(function(f){if(!u.isDestroyed())return C8e(u,f)}),this._promise};function C8e(e,t){return e.unload(),e._state=bb.FAILED,t=e.getError("Failed to load b3dm",t),Promise.reject(t)}yy.prototype.process=function(e){if(this._state===bb.READY)return!0;if(this._state!==bb.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=F.multiplyTransformation(this._transform,n.transform,n.transform),A8e(this,n),this._components=n,this._arrayBuffer=void 0,this._state=bb.READY,!0};function A8e(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(l(n.json))o=u_({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new $c({name:qd.BATCH_TABLE_CLASS_NAME,count:i});o=new qs({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)pae(r[a]);t.structuralMetadata=o}function pae(e){let t=e.children.length;for(let i=0;i<t;i++)pae(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Kt.getAttributeBySemantic(o,Tt.FEATURE_ID);if(l(r)){r.setIndex=0;let s=new T8e;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}yy.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var jR=yy;function xy(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}l(Object.create)&&(xy.prototype=Object.create(Xi.prototype),xy.prototype.constructor=xy);Object.defineProperties(xy.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});xy.prototype.load=function(){return Promise.resolve(this)};xy.prototype.process=function(e){return l(this._components)||(this._components=F8e(this._geoJson,e),this._geoJson=void 0),!0};function E8e(){this.lines=void 0,this.points=void 0,this.properties=void 0}function S8e(){this.features=[]}function kW(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function VW(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=kW(e[o]);return[n]}function v8e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=VW(e[i])[0];return n}function _ae(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=VW(e[i])[0];return n}function w8e(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,_ae(e[i]));return n}function D8e(e){return[kW(e)]}function I8e(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=kW(e[i]);return n}var P8e={LineString:VW,MultiLineString:v8e,MultiPolygon:w8e,Polygon:_ae,MultiPoint:I8e,Point:D8e},R8e={LineString:Me.LINES,MultiLineString:Me.LINES,MultiPolygon:Me.LINES,Polygon:Me.LINES,MultiPoint:Me.POINTS,Point:Me.POINTS};function gae(e,t){if(!l(e.geometry))return;let n=e.geometry.type,i=P8e[n],o=R8e[n],r=e.geometry.coordinates;if(!l(i)||!l(r))return;let s=new E8e;o===Me.LINES?s.lines=i(r):o===Me.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function O8e(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)gae(n[o],t)}var M8e={FeatureCollection:O8e,Feature:gae},tz=new h;function L8e(e,t,n){let i=0,o=0,r=e.length;for(let M=0;M<r;M++){let N=e[M];if(l(N.lines)){let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S];i+=w.length,o+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ne.createTypedArray(i,o),u=Ne.fromTypedArray(c),f=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let M=0;M<r;M++){let N=e[M];if(!l(N.lines))continue;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],I=w.length;for(let L=0;L<I;L++){let B=w[L],U=h.fromDegrees(B.x,B.y,B.z,ee.WGS84,tz),V=F.multiplyByPoint(t,U,tz);h.minimumByComponent(f,V,f),h.maximumByComponent(d,V,d),h.pack(V,s,p*3),a[p]=M,L<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=_t.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=_t.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=_t.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:u});b.vertexArrayDestroyable=!1;let T=new xn.Attribute;T.semantic=Tt.POSITION,T.componentDatatype=X.FLOAT,T.type=on.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let C=new xn.Attribute;C.semantic=Tt.FEATURE_ID,C.setIndex=0,C.componentDatatype=X.FLOAT,C.type=on.SCALAR,C.count=i,C.buffer=x;let A=[T,C],E=new xn.Material;E.unlit=!0;let v=new xn.Indices;v.indexDatatype=u,v.count=c.length,v.buffer=b;let D=new xn.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],R=new xn.Primitive;return R.attributes=A,R.indices=v,R.featureIds=O,R.primitiveType=Me.LINES,R.material=E,R}function N8e(e,t,n){let i=0,o=e.length;for(let A=0;A<o;A++){let E=e[A];l(E.points)&&(i+=E.points.length)}let r=new Float32Array(i*3),s=new Float32Array(i),a=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),u=0;for(let A=0;A<o;A++){let E=e[A];if(!l(E.points))continue;let v=E.points.length;for(let D=0;D<v;D++){let O=E.points[D],R=h.fromDegrees(O.x,O.y,O.z,ee.WGS84,tz),M=F.multiplyByPoint(t,R,tz);h.minimumByComponent(a,M,a),h.maximumByComponent(c,M,c),h.pack(M,r,u*3),s[u]=A,u++}}let f=_t.createVertexBuffer({typedArray:r,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=_t.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new xn.Attribute;p.semantic=Tt.POSITION,p.componentDatatype=X.FLOAT,p.type=on.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new xn.Attribute;g.semantic=Tt.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=on.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new xn.Material;x.unlit=!0;let b=new xn.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],C=new xn.Primitive;return C.attributes=m,C.featureIds=T,C.primitiveType=Me.POINTS,C.material=x,C}function F8e(e,t){let n=new S8e,i=M8e[e.type];l(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new ce("GeoJSON must have at least one feature");let s={};for(let M=0;M<r;M++){let N=o[M],_=y(N.properties,y.EMPTY_OBJECT);for(let S in _)_.hasOwnProperty(S)&&(l(s[S])||(s[S]=new Array(r)))}for(let M=0;M<r;M++){let N=o[M];for(let _ in s)if(s.hasOwnProperty(_)){let S=y(N.properties[_],"");s[_][M]=S}}let a=new o_({count:r,properties:s}),u=[new $c({id:0,count:r,jsonMetadataTable:a})],f=Au.fromJson({}),d=new qs({schema:f,propertyTables:u}),p=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),m=!1,x=!1;for(let M=0;M<r;M++){let N=o[M];if(l(N.lines)){m=!0;let _=N.lines.length;for(let S=0;S<_;S++){let w=N.lines[S],I=w.length;for(let L=0;L<I;L++)h.minimumByComponent(p,w[L],p),h.maximumByComponent(g,w[L],g)}}if(l(N.points)){x=!0;let _=N.points.length;for(let S=0;S<_;S++){let w=N.points[S];h.minimumByComponent(p,w,p),h.maximumByComponent(g,w,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,ee.WGS84,new h),C=Mt.eastNorthUpToFixedFrame(T,ee.WGS84,new F),A=F.inverseTransformation(C,new F),E=[];m&&E.push(L8e(o,A,t)),x&&E.push(N8e(o,A,t));let v=new xn.Node;v.index=0,v.primitives=E;let D=[v],O=new xn.Scene;O.nodes=D;let R=new xn.Components;return R.scene=O,R.nodes=D,R.transform=C,R.structuralMetadata=d,R}xy.prototype.unload=function(){this._components=void 0};var qR=xy;var nz={};nz._deprecationWarning=ds;var by=Uint32Array.BYTES_PER_ELEMENT;nz.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=by;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=by;let s=o.getUint32(t,!0);t+=by;let a=o.getUint32(t,!0);if(a===0)throw new ce("featureTableJsonByteLength is zero, the feature table must be defined.");t+=by;let c=o.getUint32(t,!0);t+=by;let u=o.getUint32(t,!0);t+=by;let f=o.getUint32(t,!0);t+=by;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new ce(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=by;let p=Mo(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Mo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(nz._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var YR=nz;var f_={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},iz=xn.Attribute,B8e=xn.FeatureIdAttribute,xae=xn.Instances;function d_(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Oo.Y),u=y(e.forwardAxis,Oo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.enablePick,!1);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._enablePick=g,this._state=f_.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(d_.prototype=Object.create(Xi.prototype),d_.prototype.constructor=d_);Object.defineProperties(d_.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});d_.prototype.load=function(){if(l(this._promise))return this._promise;let e=YR.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Jd(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new ce("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=F.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Ol(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new s_(u);return this._gltfLoader=f,this._state=f_.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=f_.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw k8e(this,d)}),this._promise};function k8e(e,t){return e.unload(),e._state=f_.FAILED,e.getError("Failed to load i3dm",t)}d_.prototype.process=function(e){if(this._state===f_.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===f_.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=F.multiplyTransformation(this._transform,i.transform,i.transform),z8e(this,i,e),V8e(this,i),this._components=i,this._arrayBuffer=void 0,this._state=f_.READY,!0};function V8e(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=u_({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new $c({name:qd.BATCH_TABLE_CLASS_NAME,count:i});o=new qs({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var oz=new h,UW=new Array(4),U8e=new F;function z8e(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=G8e(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,C=new h,A=new $,E=new Oe,v=new Array(4),D=new h,O=new Array(3),R=new F;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let V=se.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],V.center,oz),f[3*i+0]=oz.x,f[3*i+1]=oz.y,f[3*i+2]=oz.z;let G=F.fromTranslation(V.center,U8e);t.transform=F.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),l(s)&&h.add(x,h.unpack(s),x),c&&(W8e(o,a,i,E,x,T,b,C,A,R),Oe.pack(E,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),u&&(j8e(o,i,D),h.pack(D,O,0),p[3*i+0]=O[0],p[3*i+1]=O[1],p[3*i+2]=O[2]);let V=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);l(V)||(V=i),g[i]=V}let M=new xae;M.transformInWorldSpace=!0;let N=e._buffers,_=new iz;if(_.name="Instance Translation",_.semantic=ns.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=on.VEC3,_.count=r,_.typedArray=f,!c){let V=_t.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,N.push(V),_.buffer=V}if(M.attributes.push(_),c){let V=new iz;V.name="Instance Rotation",V.semantic=ns.ROTATION,V.componentDatatype=X.FLOAT,V.type=on.VEC4,V.count=r,V.typedArray=d,M.attributes.push(V)}if(u){let V=new iz;if(V.name="Instance Scale",V.semantic=ns.SCALE,V.componentDatatype=X.FLOAT,V.type=on.VEC3,V.count=r,c)V.typedArray=p;else{let G=_t.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,N.push(G),V.buffer=G}M.attributes.push(V)}let S=new iz;S.name="Instance Feature ID",S.setIndex=0,S.semantic=ns.FEATURE_ID,S.componentDatatype=X.FLOAT,S.type=on.SCALAR,S.count=r;let w=_t.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,N.push(w),S.buffer=w,M.attributes.push(S);let I=new B8e;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",M.featureIds.push(I);let L=t.nodes,B=L.length,U=!1;for(i=0;i<B;i++){let V=L[i];V.primitives.length>0&&(V.instances=U?H8e(M):M,U=!0)}}function H8e(e){let t=new xae;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=Ge(n[o],!1);t.attributes.push(r)}return t.featureIds=e.featureIds,t}function G8e(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(o))throw new ce("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;r[c]=n[c]/65535*o[a]+i[a]}return r}else throw new ce("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var yae=new Array(4);function W8e(e,t,n,i,o,r,s,a,c,u){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,UW),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,yae),p=!1;if(l(f)){if(!l(d))throw new ce("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");h.unpack(f,0,r),h.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,UW),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,yae);if(l(g)){if(!l(m))throw new ce("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");Mn.octDecodeInRange(g[0],g[1],65535,r),Mn.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Mt.eastNorthUpToFixedFrame(o,ee.WGS84,u),F.getMatrix3(u,c)):$.clone($.IDENTITY,c)}p&&(h.cross(s,r,a),h.normalize(a,a),$.setColumn(c,0,s,c),$.setColumn(c,1,r,c),$.setColumn(c,2,a,c)),Oe.fromRotationMatrix(c,i)}function j8e(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);l(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,UW);l(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function q8e(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}d_.prototype.isUnloaded=function(){return this._state===f_.UNLOADED};d_.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),q8e(this),this._components=void 0,this._arrayBuffer=void 0,this._state=f_.UNLOADED};var XR=d_;var Y8e={STOPPED:0,ANIMATING:1},eh=Object.freeze(Y8e);function zA(){this.times=void 0,this.points=void 0,he.throwInstantiationError()}zA.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Oe)return Oe};zA.prototype.evaluate=he.throwInstantiationError;zA.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o<i-1&&!(e>=n[o]&&e<n[o+1]);++o);else for(o=t-1;o>=0&&!(e>=n[o]&&e<n[o+1]);--o);return o===i-1&&(o=i-2),o};zA.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],o=n-i,r;return e<i&&(r=Math.floor((i-e)/o)+1,e+=r*o),e>n&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};zA.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var io=zA;function HA(e){this._value=e,this._valueType=io.getPointType(e)}Object.defineProperties(HA.prototype,{value:{get:function(){return this._value}}});HA.prototype.findTimeInterval=function(e){};HA.prototype.wrapTime=function(e){return 0};HA.prototype.clampTime=function(e){return 0};HA.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var KR=HA;function GA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(GA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});GA.prototype.findTimeInterval=io.prototype.findTimeInterval;GA.prototype.wrapTime=io.prototype.wrapTime;GA.prototype.clampTime=io.prototype.clampTime;GA.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var Ty=GA;var bae={};bae.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a<r.length;a++)r[a]=new h,s[a]=new h;o[0]=n[0]/t[0],r[0]=h.multiplyByScalar(i[0],1/t[0],r[0]);let c;for(a=1;a<o.length;++a)c=1/(t[a]-o[a-1]*e[a-1]),o[a]=n[a]*c,r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]);for(c=1/(t[a]-o[a-1]*e[a-1]),r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]),s[s.length-1]=r[r.length-1],a=s.length-2;a>=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var WA=bae;var Tae=[],Cae=[],Aae=[],Eae=[];function X8e(e,t,n){let i=Tae,o=Aae,r=Cae,s=Eae;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new h),h.clone(t,c),a=1;a<i.length-1;++a)i[a]=o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c);return i[a]=0,o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c),r[a+1]=1,c=s[a+1],l(c)||(c=s[a+1]=new h),h.clone(n,c),WA.solve(i,r,o,s)}function K8e(e){let t=Tae,n=Aae,i=Cae,o=Eae;t.length=n.length=e.length-1,i.length=o.length=e.length;let r;t[0]=n[0]=1,i[0]=2;let s=o[0];for(l(s)||(s=o[0]=new h),h.subtract(e[1],e[0],s),h.multiplyByScalar(s,3,s),r=1;r<t.length;++r)t[r]=n[r]=1,i[r]=4,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r+1],e[r-1],s),h.multiplyByScalar(s,3,s);return i[r]=2,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),WA.solve(t,i,n,o)}function Ul(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,o=e.outTangents;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._inTangents=i,this._outTangents=o,this._lastTimeIndex=0}Object.defineProperties(Ul.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});Ul.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new Ul({times:t,points:n,inTangents:r,outTangents:o})};Ul.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new Ty({points:n,times:t});let i=K8e(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new Ul({times:t,points:n,inTangents:r,outTangents:o})};Ul.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,o=e.lastTangent,r=io.getPointType(n[0]);if(n.length<3)return new Ty({points:n,times:t});let s=X8e(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new Ul({times:t,points:n,inTangents:c,outTangents:a})};Ul.hermiteCoefficientMatrix=new F(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);Ul.prototype.findTimeInterval=io.prototype.findTimeInterval;var Z8e=new oe,jA=new h;Ul.prototype.wrapTime=io.prototype.wrapTime;Ul.prototype.clampTime=io.prototype.clampTime;Ul.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this.inTangents,r=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,u=Z8e;u.z=c,u.y=c*c,u.x=u.y*c,u.w=1;let f=F.multiplyByVector(Ul.hermiteCoefficientMatrix,u,u);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+r[s]*f.z+o[s]*f.w:(l(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,jA),d.add(t,jA,t),d.multiplyByScalar(r[s],f.z,jA),d.add(t,jA,t),d.multiplyByScalar(o[s],f.w,jA),d.add(t,jA,t))};var Cy=Ul;function qA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=io.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(qA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});qA.prototype.findTimeInterval=io.prototype.findTimeInterval;qA.prototype.wrapTime=io.prototype.wrapTime;qA.prototype.clampTime=io.prototype.clampTime;qA.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,o=this._pointType;return o===Number?n[i]:(l(t)||(t=new o),o.clone(n[i],t))};var ZR=qA;function $8e(e){let t=e.points,n=e.times;return function(i,o){l(o)||(o=new Oe);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=t[r],c=t[r+1];return Oe.fastSlerp(a,c,s,o)}}function YA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=$8e(this),this._lastTimeIndex=0}Object.defineProperties(YA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});YA.prototype.findTimeInterval=io.prototype.findTimeInterval;YA.prototype.wrapTime=io.prototype.wrapTime;YA.prototype.clampTime=io.prototype.clampTime;YA.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var $R=YA;var XA=xn.AnimatedPropertyType;function zW(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,nGe(this)}Object.defineProperties(zW.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function Q8e(e,t){let n=[],i=[],o=[],r=t.length;for(let s=0;s<r;s+=3)i.push(t[s]),n.push(t[s+1]),o.push(t[s+2]);return i.splice(0,1),o.length=o.length-1,new Cy({times:e,points:n,inTangents:i,outTangents:o})}function Sae(e,t,n,i){if(e.length===1&&t.length===1)return new KR(t[0]);switch(n){case $d.STEP:return new ZR({times:e,points:t});case $d.CUBICSPLINE:return Q8e(e,t);case $d.LINEAR:return i===XA.ROTATION?new $R({times:e,points:t}):new Ty({times:e,points:t})}}function J8e(e,t,n,i,o){let r=[];if(i===XA.WEIGHTS){let a=t.length/o,c,u;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===$d.CUBICSPLINE)for(u=0;u<a;u+=3)f[u]=t[d],f[u+1]=t[d+o],f[u+2]=t[d+2*o],d+=o*3;else for(u=0;u<a;u++)f[u]=t[d],d+=o;r.push(Sae(e,f,n,i))}}else r.push(Sae(e,t,n,i));return r}var eGe=new h,tGe=new Oe;function nGe(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,u=l(c.morphWeights)?c.morphWeights.length:1,f=J8e(i,o,r,a,u);e._splines=f,e._path=a}zW.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===XA.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],u=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(u)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);n===XA.TRANSLATION||n===XA.SCALE?o[n]=r.evaluate(s,eGe):n===XA.ROTATION&&(o[n]=r.evaluate(s,tGe))}}};var QR=zW;function HW(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=Z.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=Z.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,Vl.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new me,this.update=new me,this.stop=new me,this._state=eh.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,iGe(this)}Object.defineProperties(HW.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function iGe(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,r=e._animation.channels,s=r.length,a=[];for(let c=0;c<s;c++){let u=r[c],f=u.target;if(!l(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new QR({channel:u,runtimeAnimation:e,runtimeNode:p}),m=u.sampler.input;t=Math.min(t,m[0]),n=Math.max(n,m[m.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}HW.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var JR=HW;function h_(e){this.animationAdded=new me,this.animationRemoved=new me,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(h_.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function GW(e,t,n){let i=e._model,o=new JR(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}h_.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(l(i))return GW(this,n[i],e);let o=n.length;for(let r=0;r<o;++r)if(n[r].name===e.name){i=r;break}return GW(this,n[i],e)};h_.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],o=n.length;for(let r=0;r<o;++r){let s=GW(this,n[r],e);i.push(s)}return i};h_.prototype.remove=function(e){if(!l(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};h_.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};h_.prototype.contains=function(e){return l(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};h_.prototype.get=function(e){return this._runtimeAnimations[e]};var rz=[];function oGe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}h_.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&Z.equals(e.time,this._previousTime))return!1;this._previousTime=Z.clone(e.time,this._previousTime);let i=!1,o=e.time,r=this._model;for(let s=0;s<n;++s){let a=t[s];l(a._computedStartTime)||(a._computedStartTime=Z.addSeconds(y(a.startTime,o),a.delay,new Z)),l(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,u=a._duration,f=a.stopTime,d=Z.lessThanOrEquals(c,o),p=l(f)&&Z.greaterThan(o,f),g=0;if(u!==0){let b=Z.secondsDifference(p?f:o,c);g=l(a._animationTime)?a._animationTime(u,b):b/u}let m=a.loop===Vl.REPEAT||a.loop===Vl.MIRRORED_REPEAT,x=(d||m&&!l(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===eh.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===eh.ANIMATING){if(x&&a._state===eh.STOPPED&&(a._state=eh.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===Vl.REPEAT)g=g-Math.floor(g);else if(a.loop===Vl.MIRRORED_REPEAT){let T=Math.floor(g),C=g-T;g=T%2===1?1-C:C}a.reverse&&(g=1-g);let b=g*u*a.multiplier;b=P.clamp(b,a.localStartTime,a.localStopTime),a.animate(b),a.update.numberOfListeners>0&&(a._updateEventTime=b,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=eh.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&rz.push(a))}}n=rz.length;for(let s=0;s<n;++s){let a=rz[s];t.splice(t.indexOf(a),1),e.afterRender.push(oGe(this,r,a))}return rz.length=0,i};var eO=h_;function Tb(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(Tb.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return l(this._color)||(this._color=new H),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});Tb.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};Tb.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};Tb.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};Tb.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};Tb.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var tO=Tb;var nO={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};nO.getStyleCommandsNeeded=function(e,t){return t===0?nO.ALL_OPAQUE:t===e?nO.ALL_TRANSLUCENT:nO.OPAQUE_AND_TRANSLUCENT};var th=Object.freeze(nO);var Ay={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};Ay.is3DTiles=function(e){switch(e){case Ay.TILE_GLTF:case Ay.TILE_B3DM:case Ay.TILE_I3DM:case Ay.TILE_PNTS:case Ay.TILE_GEOJSON:return!0;case Ay.GLTF:return!1}};var lr=Object.freeze(Ay);function Vr(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=th.ALL_OPAQUE,rGe(this)}Object.defineProperties(Vr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return l(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function rGe(e){let t=e._model,n=lr.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let o,r=new Array(i);if(n){let s=t.content;for(o=0;o<i;o++)r[o]=new Ws(s,o)}else for(o=0;o<i;o++)r[o]=new tO({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new Kc({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}Vr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=th.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};Vr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};Vr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};Vr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};Vr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};Vr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};Vr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};Vr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};Vr.prototype.getFeature=function(e){return this._features[e]};Vr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};Vr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};Vr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};Vr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};Vr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};Vr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};Vr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};Vr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};Vr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var sGe=new H;Vr.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(Kc.DEFAULT_COLOR_VALUE),this.setAllShow(Kc.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=l(e.color)?y(e.color.evaluateColor(n,sGe),Kc.DEFAULT_COLOR_VALUE):Kc.DEFAULT_COLOR_VALUE,o=l(e.show)?y(e.show.evaluate(n),Kc.DEFAULT_SHOW_VALUE):Kc.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};Vr.prototype.isDestroyed=function(){return!1};Vr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var iO=Vr;var vae={name:"TilesetPipelineStage"};vae.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,pe.FRAGMENT);let r={u_polygonOffset:function(){return z.ZERO}};e.uniformMap=yt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Vt.setCesium3DTileBit(),i.stencilMask=Vt.CESIUM_3D_TILE_MASK};var oO=vae;var rO=`// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// +// This version uses only a single iteration for best performance. For fog +// rendering, the difference is negligible. +vec2 nearestPointOnEllipseFast(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + vec2 evoluteScale = (radii.x * radii.x - radii.y * radii.y) * vec2(1.0, -1.0) * inverseRadii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = cos(pi/4) + vec2 tTrigs = vec2(0.70710678118); + vec2 v = radii * tTrigs; + + // Find the evolute of the ellipse (center of curvature) at v. + vec2 evolute = evoluteScale * tTrigs * tTrigs * tTrigs; + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + + return v * sign(pos); +} + +vec3 computeEllipsoidPositionWC(vec3 positionMC) { + // Get the world-space position and project onto a meridian plane of + // the ellipsoid + vec3 positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + + vec2 positionEllipse = vec2(length(positionWC.xy), positionWC.z); + vec2 nearestPoint = nearestPointOnEllipseFast(positionEllipse, czm_ellipsoidRadii.xz); + + // Reconstruct a 3D point in world space + return vec3(nearestPoint.x * normalize(positionWC.xy), nearestPoint.y); +} + +void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection, float distanceToCamera) { + + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is dynamic lighting, apply that to the fog. + const float NONE = 0.0; + if (czm_atmosphereDynamicLighting != NONE) { + float darken = clamp(dot(normalize(czm_viewerPositionWC), lightDirection), czm_fogMinimumBrightness, 1.0); + fogColor *= darken; + } + + // Tonemap if HDR rendering is disabled + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, czm_fogVisualDensityScalar); + color = vec4(withFog, color.a); +} + +void atmosphereStage(inout vec4 color, in ProcessedAttributes attributes) { + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is in space, compute the position per-fragment for + // more accurate ground atmosphere. All other cases will use + // + // The if condition will be added in https://github.com/CesiumGS/cesium/issues/11717 + if (false) { + positionWC = computeEllipsoidPositionWC(attributes.positionMC); + lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); + + // The fog color is derived from the ground atmosphere color + czm_computeGroundAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + } else { + positionWC = attributes.positionWC; + lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + } + + //color correct rayleigh and mie colors + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, czm_atmosphereHsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, czm_atmosphereHsbShift, ignoreBlackPixels); + + vec4 groundAtmosphereColor = czm_computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + if (u_isInFog) { + float distanceToCamera = length(attributes.positionEC); + applyFog(color, groundAtmosphereColor, lightDirection, distanceToCamera); + } else { + // Ground atmosphere + } +} +`;var sO=`void atmosphereStage(ProcessedAttributes attributes) { + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_positionWC, czm_atmosphereDynamicLighting); + + czm_computeGroundAtmosphereScattering( + // This assumes the geometry stage came before this. + v_positionWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +} +`;var wae={name:"AtmospherePipelineStage"};wae.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_ATMOSPHERE",void 0,pe.BOTH),i.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),i.addVarying("vec3","v_atmosphereRayleighColor"),i.addVarying("vec3","v_atmosphereMieColor"),i.addVarying("float","v_atmosphereOpacity"),i.addVertexLines([sO]),i.addFragmentLines([rO]),i.addUniform("bool","u_isInFog",pe.FRAGMENT),e.uniformMap.u_isInFog=function(){let o=h.distance(n.camera.positionWC,t.boundingSphere.center);return P.fog(o,n.fog.density)>P.EPSILON3}};var aO=wae;var cO=`#ifdef DIFFUSE_IBL +vec3 sampleDiffuseEnvironment(vec3 cubeDir) +{ + #ifdef CUSTOM_SPHERICAL_HARMONICS + return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif +} +#endif + +#ifdef SPECULAR_IBL +vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness) +{ + #ifdef CUSTOM_SPECULAR_IBL + float lod = roughness * model_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb; + #else + float lod = roughness * czm_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb; + #endif +} +vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness) +{ + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness); + + return specularSample * (F * brdfLut.x + brdfLut.y); +} +#endif + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +/** + * Compute the light contributions from environment maps and spherical harmonic coefficients. + * See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation + * of the single- and multi-scattering terms. + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color. + */ +vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) { + vec3 f0 = material.specular; + float roughness = material.roughness; + float specularWeight = 1.0; + #ifdef USE_SPECULAR + specularWeight = material.specularWeight; + #endif + float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0); + + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y); + + #ifdef DIFFUSE_IBL + vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC); + vec3 irradiance = sampleDiffuseEnvironment(normalMC); + + vec3 averageFresnel = f0 + (1.0 - f0) / 21.0; + float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y); + vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems); + vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse; + vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x; + #else + vec3 diffuseContribution = vec3(0.0); + #endif + + #ifdef USE_ANISOTROPY + // Bend normal to account for anisotropic distortion of specular reflection + vec3 anisotropyDirection = material.anisotropicB; + vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC); + vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection); + float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness); + float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor; + vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4)); + vec3 reflectEC = reflect(-viewDirectionEC, bentNormal); + #else + vec3 reflectEC = reflect(-viewDirectionEC, normalEC); + #endif + + #ifdef SPECULAR_IBL + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC); + vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness); + vec3 specularContribution = radiance * FssEss * model_iblFactor.y; + #else + vec3 specularContribution = vec3(0.0); + #endif + + return diffuseContribution + specularContribution; +} +#endif +`;var Dae={name:"ImageBasedLightingPipelineStage"},aGe=new z;Dae.process=function(e,t,n){let i=t.imageBasedLighting,o=t.environmentMapManager,r=e.shaderBuilder,s;l(i.specularEnvironmentMaps)||(s=o.radianceCubeMap);let a=i.sphericalHarmonicCoefficients??o.sphericalHarmonicCoefficients;r.addDefine("USE_IBL_LIGHTING",void 0,pe.FRAGMENT),r.addUniform("vec2","model_iblFactor",pe.FRAGMENT),zd.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",pe.FRAGMENT),l(s)&&r.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),l(a)&&l(a[0])?(r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,pe.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",pe.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),l(i.specularEnvironmentCubeMap)&&i.specularEnvironmentCubeMap.ready||l(s)?(r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,pe.FRAGMENT),r.addUniform("samplerCube","model_specularEnvironmentMaps",pe.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",pe.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT)),r.addFragmentLines(cO);let c={model_iblFactor:function(){return z.multiplyByScalar(i.imageBasedLightingFactor,o?.intensity||1,aGe)},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_sphericalHarmonicCoefficients:function(){return a},model_specularEnvironmentMaps:function(){return i.specularEnvironmentCubeMap.texture},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentCubeMap.maximumMipmapLevel}};l(s)&&(c.model_specularEnvironmentMaps=function(){return s},c.model_specularEnvironmentMapsMaximumLOD=function(){return o.maximumMipmapLevel}),e.uniformMap=yt(c,e.uniformMap)};var lO=Dae;var cGe=P.EPSILON16;function jW(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(jW.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,cGe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var lGe=new h,WW=new $;jW.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=lGe,o;switch(t){case hc.XROTATE:o=$.fromRotationX(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.YROTATE:o=$.fromRotationY(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.ZROTATE:o=$.fromRotationZ(P.toRadians(n),WW),e=F.multiplyByMatrix3(e,o,e);break;case hc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case hc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case hc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case hc.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case hc.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case hc.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case hc.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var uO=jW;function sz(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,uGe(this)}Object.defineProperties(sz.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function uGe(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new uO({stage:a,runtimeArticulation:e});o.push(c);let u=a.name;r[u]=c}}sz.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];l(n)&&(n.currentValue=t)};var fGe=new F,dGe=new F;sz.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=F.clone(F.IDENTITY,fGe),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let o=this._runtimeNodes,r=o.length;for(t=0;t<r;t++){let s=o[t],a=F.multiplyTransformation(s.originalTransform,e,dGe);s.transform=a}};var fO=sz;var dO=`void modelColorStage(inout czm_modelMaterial material) +{ + material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend); + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight); + material.alpha *= model_color.a; +} +`;var KA={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};KA.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,pe.FRAGMENT),i.addFragmentLines(dO);let o={},r=t.color;r.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),r.alpha<1&&(e.alphaOptions.pass=ve.TRANSLUCENT),i.addUniform("vec4",KA.COLOR_UNIFORM_NAME,pe.FRAGMENT),o[KA.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",KA.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),o[KA.COLOR_BLEND_UNIFORM_NAME]=function(){return dc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=yt(o,e.uniformMap)};var Ey=KA;var hO=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +#else +// Handle uint8 clipping texture instead +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each + int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v))); + return czm_transformPlane(plane, transform); +} +#endif + +float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float pixelWidth = czm_metersPerPixel(position); + + #ifdef UNION_CLIPPING_REGIONS + float clipAmount; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below. + #else + float clipAmount = 0.0; + bool clipped = true; + #endif + + for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + + #ifdef UNION_CLIPPING_REGIONS + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) { + discard; + } + #else + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + #endif + } + + #ifndef UNION_CLIPPING_REGIONS + if (clipped) { + discard; + } + #endif + + return clipAmount; +} + +void modelClippingPlanesStage(inout vec4 color) +{ + float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a; + + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var Iae={name:"ModelClippingPlanesPipelineStage"},hGe=new z;Iae.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,pe.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,pe.FRAGMENT),_s.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,pe.FRAGMENT);let s=_s.getTextureResolution(i,o,hGe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,pe.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",pe.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",pe.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",pe.FRAGMENT),r.addFragmentLines(hO);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=H.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=yt(a,e.uniformMap)};var mO=Iae;var pO=`void modelClippingPolygonsStage(ProcessedAttributes attributes) +{ + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_regionIndex = -1; + v_clippingPosition = vec2(czm_infinity); + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + } + + float threshold = 0.01; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } +} +`;var _O=`void modelClippingPolygonsStage() +{ + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +} +`;var Pae={name:"ModelClippingPolygonsPipelineStage"};Pae.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,pe.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,pe.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,pe.BOTH),o.addUniform("sampler2D","model_clippingDistance",pe.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",pe.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(pO),o.addFragmentLines(_O);let r={model_clippingDistance:function(){return i.clippingTexture},model_clippingExtents:function(){return i.extentsTexture}};e.uniformMap=yt(r,e.uniformMap)};var gO=Pae;function Rae(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Rae.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var yO=Rae;var xO=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var bO=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var TO=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var az=new F,mGe=new F,pGe=new F,Mae={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:kae,_transformsToTypedArray:YW};Mae.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(xO);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=s._enablePick&&!n.context.webgl2,d=[];PGe(e,n,i,d,u,f),MGe(e,n,i,d);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",pe.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",pe.VERTEX),p.u_instance_modifiedModelView=function(){let g=F.multiplyTransformation(s.modelMatrix,a.components.transform,az);return u?F.multiplyTransformation(n.context.uniformState.view3D,g,az):(n.mode!==ne.SCENE3D&&(g=Mt.basisTo2D(n.mapProjection,g,az)),F.multiplyTransformation(n.context.uniformState.view,g,az))},p.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,mGe)},r.addVertexLines(TO)):r.addVertexLines(bO),u){r.addDefine("USE_2D_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_modelView2D",pe.VERTEX);let g=n.context,m=F.fromTranslation(c.instancingReferencePoint2D,new F);p.u_modelView2D=function(){return F.multiplyTransformation(g.uniformState.view,m,pGe)}}e.uniformMap=yt(p,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,d)};var CO=new F,_Ge=new h;function gGe(e,t,n,i,o){let r=F.multiplyTransformation(t,e,CO);return r=F.multiplyTransformation(r,n,CO),o=Mt.basisTo2D(i.mapProjection,r,o),o}function yGe(e,t,n,i,o){let r=F.fromTranslation(e,CO),s=F.multiplyTransformation(t,r,CO);s=F.multiplyTransformation(s,n,CO);let a=F.getTranslation(s,_Ge);return o=Ui.computeActualEllipsoidPosition(i,a,o),o}function Lae(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=F.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=F.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=F.clone(o.computedModelMatrix,t),t=F.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=F.clone(F.IDENTITY,n))}var Nae=new F,Fae=new F,xGe=new F,bGe=new h;function TGe(e,t,n,i){let o=Nae,r=Fae;Lae(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=gGe(f,o,r,n,xGe),p=F.getTranslation(d,bGe),g=h.subtract(p,a,p);i[u]=F.setTranslation(d,g,i[u])}return i}function CGe(e,t,n,i){let o=Nae,r=Fae;Lae(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=yGe(f,o,r,n,f);i[u]=h.subtract(d,a,i[u])}return i}var AGe=new h,EGe=new h;function Bae(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=F.multiplyByPoint(i,n.instancingTranslationMin,AGe),r=Ui.computeActualEllipsoidPosition(t,o,o),s=F.multiplyByPoint(i,n.instancingTranslationMax,EGe),a=Ui.computeActualEllipsoidPosition(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function YW(e){let n=e.length,i=new Float32Array(n*12);for(let o=0;o<n;o++){let r=e[o],s=12*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8],i[s+3]=r[12],i[s+4]=r[1],i[s+5]=r[5],i[s+6]=r[9],i[s+7]=r[13],i[s+8]=r[2],i[s+9]=r[6],i[s+10]=r[10],i[s+11]=r[14]}return i}function SGe(e){let n=e.length,i=new Float32Array(n*3);for(let o=0;o<n;o++){let r=e[o],s=3*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8]}return i}var vGe=new h,wGe=new Oe,DGe=new h;function kae(e,t,n){let i=new Array(t),o=Kt.getAttributeBySemantic(e,ns.TRANSLATION),r=Kt.getAttributeBySemantic(e,ns.ROTATION),s=Kt.getAttributeBySemantic(e,ns.SCALE),a=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),u=l(o),f=l(r),d=l(s),p=u?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=Mn.dequantize(g,r.componentDatatype,r.type,t));let m;d?m=s.typedArray:(m=new Float32Array(t*3),m.fill(1));for(let b=0;b<t;b++){let T=new h(p[b*3],p[b*3+1],p[b*3+2],vGe);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let C=new Oe(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,wGe),A=new h(m[b*3],m[b*3+1],m[b*3+2],DGe),E=F.fromTranslationQuaternionRotationScale(T,C,A,new F);i[b]=E}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,u&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function IGe(e,t,n){let i=new Array(t),o=e.typedArray,r=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let u=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=u,h.minimumByComponent(r,u,r),h.maximumByComponent(s,u,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function XW(e,t){let n=_t.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function PGe(e,t,n,i,o,r){let s=Kt.getAttributeBySemantic(n,ns.ROTATION);l(s)?RGe(e,n,i,t,o,r):OGe(e,n,i,t,o)}function RGe(e,t,n,i,o,r){let s=e.shaderBuilder,a=t.attributes[0].count,c=e.model,u=e.runtimeNode;s.addDefine("HAS_INSTANCE_MATRICES");let f="Transform",d,p=u.instancingTransformsBuffer;if(!l(p)){d=kae(t,a,e);let b=YW(d);p=XW(b,i),c._modelResources.push(p),r&&(u.transformsTypedArray=b),u.instancingTransformsBuffer=p}if(Oae(e,p,n,f),!o)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Bae(e,g);let m=u.instancingTransformsBuffer2D;if(!l(m)){let b=TGe(d,e,g,d),T=YW(b);m=XW(T,i),c._modelResources.push(m),u.instancingTransformsBuffer2D=m}Oae(e,m,n,"Transform2D")}function OGe(e,t,n,i,o,r){let s=e.shaderBuilder,a=e.runtimeNode,c=Kt.getAttributeBySemantic(t,ns.TRANSLATION),u=Kt.getAttributeBySemantic(t,ns.SCALE);if(l(u)&&(s.addDefine("HAS_INSTANCE_SCALE"),qW(e,u.buffer,u.byteOffset,u.byteStride,n,"Scale")),!l(c))return;let f,d=c.typedArray;if(l(d)?f=IGe(c,c.count,e):l(a.instancingTranslationMin)||(a.instancingTranslationMin=c.min,a.instancingTranslationMax=c.max),s.addDefine("HAS_INSTANCE_TRANSLATION"),qW(e,c.buffer,c.byteOffset,c.byteStride,n,"Translation"),!o&&!r)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Bae(e,g);let m=a.instancingTranslationBuffer2D;if(!l(m)){let C=CGe(f,e,g,f),A=SGe(C);r&&(a.transformsTypedArray=A),m=XW(A,i),e.model._modelResources.push(m),a.instancingTranslationBuffer2D=m}if(!o)return;qW(e,m,0,void 0,n,"Translation2D")}function Oae(e,t,n,i){let r=X.getSizeInBytes(X.FLOAT),s=r*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function qW(e,t,n,i,o,r){o.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${r}`)}function MGe(e,t,n,i){let o=n.attributes,r=e.shaderBuilder;for(let s=0;s<o.length;s++){let a=o[s];a.semantic===ns.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:on.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var AO=Mae;var KW={};KW.name="ModelMatrixUpdateStage";KW.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Vae(e,t,o,e.transformToRoot),e._transformDirty=!1}};function LGe(e,t,n){e.modelMatrix=F.multiplyTransformation(t,n,e.modelMatrix),e.cullFace=Kt.getCullFace(e.modelMatrix,e.primitiveType)}function Vae(e,t,n,i){let o;i=F.multiplyTransformation(i,e.transform,new F),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let a=e.runtimePrimitives[o];LGe(a.drawCommand,n,i)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=F.clone(i,a._transformToRoot),Vae(a,t,n,i),a._transformDirty=!1}}var EO=KW;var Uae={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:zae,_countGeneratedBuffers:Hae};Uae.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;zae(i,o),Hae(i,r)};function zae(e,t){if(!l(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r.buffer)&&e.addBuffer(r.buffer,!1)}}function Hae(e,t){l(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),l(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),l(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var SO=Uae;function ZA(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,o=e.sceneGraph,r=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=o,this._children=r,this._originalTransform=F.clone(n,this._originalTransform),this._transform=F.clone(n,this._transform),this._transformToRoot=F.clone(i,this._transformToRoot),this._computedTransform=new F,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,NGe(this)}Object.defineProperties(ZA.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=F.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return l(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;h.equals(n,e)||(t.translation=h.clone(e,t.translation),ZW(this,t))}},rotation:{get:function(){return l(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Oe.equals(n,e)||(t.rotation=Oe.clone(e,t.rotation),ZW(this,t))}},scale:{get:function(){return l(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;h.equals(n,e)||(t.scale=h.clone(e,t.scale),ZW(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function NGe(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=F.multiply(n,t,i);let o=e.node;l(o.matrix)||(e._transformParameters=new Xg(o.translation,o.rotation,o.scale)),l(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(l(r)){let c=e.sceneGraph._runtimeArticulations[r];l(c)&&c.runtimeNodes.push(e)}}function ZW(e,t){e._transformDirty=!0,e._transform=F.fromTranslationRotationScale(t,e._transform)}ZA.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};ZA.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,l(e.instances)&&t.push(AO),t.push(SO),n.push(EO)};ZA.prototype.updateComputedTransform=function(){this._computedTransform=F.multiply(this._transformToRoot,this._transform,this._computedTransform)};ZA.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!l(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){l(t[o])||(t[o]=new F);let r=F.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=F.inverseTransformation(r,t[o]);t[o]=F.multiplyTransformation(s,n[o],t[o])}};var vO=ZA;var Gae={name:"AlphaPipelineStage"};Gae.process=function(e,t,n){let i=e.alphaOptions,o=e.model;i.pass=y(i.pass,o.opaquePass);let r=e.renderStateOptions;i.pass===ve.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=un.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;l(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,pe.FRAGMENT),s.addUniform("float","u_alphaCutoff",pe.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var wO=Gae;var Wae={name:"BatchTexturePipelineStage"};Wae.process=function(e,t,n){let i=e.shaderBuilder,o={},r=e.model,s=r.featureTables[r.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),o.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),o.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),o.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=yt(o,e.uniformMap)};var DO=Wae;var jae={name:"ClassificationPipelineStage"};jae.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,pe.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||FGe(t,o)};function FGe(e,t){let n=Kt.getAttributeBySemantic(e,Tt.POSITION);if(!l(n))throw new ce("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Kt.getAttributeBySemantic(e,Tt.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let x=1;x<s;x++){let b=r?i[x]:x,T=c[b];if(T!==p){let C=x-g,A=x;u.push(C),f.push(A),g=A,p=T}}let m=s-g;u.push(m),t.batchLengths=u,t.batchOffsets=f}var IO=jae;var PO=`void filterByPassType(inout vec3 positionMC, vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + positionMC *= float(model_silhouettePass); + #else + positionMC *= 0.0; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + positionMC *= 0.0; + } +} + +void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature) +{ + float show = ceil(feature.color.a); + positionMC *= show; + + #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION) + filterByPassType(positionMC, feature.color); + #endif +} +`;var RO=`void filterByPassType(vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + if(!model_silhouettePass) { + discard; + } + #else + discard; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + discard; + } +} + +void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature) +{ + vec4 featureColor = feature.color; + if (featureColor.a == 0.0) + { + discard; + } + + // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader. + // So, we only apply in in the fragment shader if the feature ID texture is used. + #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION) + filterByPassType(featureColor); + #endif + + featureColor = czm_gammaCorrect(featureColor); + + // Classification models compute the diffuse differently. + #ifdef HAS_CLASSIFICATION + material.diffuse = featureColor.rgb * featureColor.a; + #else + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight); + #endif + + material.alpha *= featureColor.a; +} +`;var qae={name:"CPUStylingPipelineStage"};qae.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(PO),o.addFragmentLines(RO),o.addDefine("USE_CPU_STYLING",void 0,pe.BOTH),l(i.color)||(o.addUniform("float",Ey.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),e.uniformMap[Ey.COLOR_BLEND_UNIFORM_NAME]=function(){return dc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",pe.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===ve.TRANSLUCENT}};var OO=qae;var Yae={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};Yae.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var m_=Object.freeze(Yae);var MO=`void customShaderStage( + inout czm_modelVertexOutput vsOutput, + inout ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // VertexInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + VertexInput vsInput; + initializeInputStruct(vsInput, attributes); + vsInput.featureIds = featureIds; + vsInput.metadata = metadata; + vsInput.metadataClass = metadataClass; + vsInput.metadataStatistics = metadataStatistics; + vertexMain(vsInput, vsOutput); + attributes.positionMC = vsOutput.positionMC; +} +`;var LO=`void customShaderStage( + inout czm_modelMaterial material, + ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // FragmentInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + FragmentInput fsInput; + initializeInputStruct(fsInput, attributes); + fsInput.featureIds = featureIds; + fsInput.metadata = metadata; + fsInput.metadataClass = metadataClass; + fsInput.metadataStatistics = metadataStatistics; + fragmentMain(fsInput, material); +} +`;var NO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); +} +`;var FO=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) +{ + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); + setFeatureIdVaryings(); +} +`;var zi={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};zi.process=function(e,t,n){let i=e.shaderBuilder;BGe(i);let o=e.runtimeNode.node.instances;l(o)&&kGe(e,o,n),VGe(e,t,n),i.addVertexLines(FO),i.addFragmentLines(NO)};function BGe(e){e.addStruct(zi.STRUCT_ID_FEATURE_IDS_VS,zi.STRUCT_NAME_FEATURE_IDS,pe.VERTEX),e.addStruct(zi.STRUCT_ID_FEATURE_IDS_FS,zi.STRUCT_NAME_FEATURE_IDS,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.VERTEX),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.VERTEX),e.addFunction(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,zi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.FRAGMENT),e.addFunction(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,zi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,pe.VERTEX)}function kGe(e,t,n){let i=t.featureIds,o=t.attributes[0].count;for(let r=0;r<i.length;r++){let s=i[r],a=s.positionalLabel;s instanceof xn.FeatureIdAttribute?UGe(e,s,a):Xae(e,s,a,o,1,n);let c=s.label;l(c)&&Kae(e,a,c,pe.BOTH)}}function VGe(e,t,n){let i=t.featureIds,r=Kt.getAttributeBySemantic(t,Tt.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,u=pe.BOTH;a instanceof xn.FeatureIdAttribute?zGe(e,a,c):a instanceof xn.FeatureIdImplicitRange?Xae(e,a,c,r,void 0,n):(HGe(e,a,c,s,n),u=pe.FRAGMENT);let f=a.label;l(f)&&Kae(e,c,f,u)}}function UGe(e,t,n){let i=e.shaderBuilder;i.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=`a_${r}${o}`,a=`v_${r}${o}`,c=`featureIds.${n} = int(czm_round(${s}));`,u=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[u]),i.addVarying("float",a),i.addFunctionLines(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function zGe(e,t,n){let i=e.shaderBuilder;i.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${r}${o}));`];i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function Xae(e,t,n,i,o,r){GGe(e,t,i,o,r);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(zi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function HGe(e,t,n,i,o){let r=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[r]=function(){return y(a.texture,o.context.defaultTexture)};let c=a.channels,u=e.shaderBuilder;u.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n),u.addUniform("sampler2D",r,pe.FRAGMENT);let d=`v_texCoord_${a.texCoord}`,p=d,g=a.transform;if(l(g)&&!$.equals(g,$.IDENTITY)){let b=`${r}Transform`;u.addUniform("mat3",b,pe.FRAGMENT),s[b]=function(){return g},p=`vec2(${b} * vec3(${d}, 1.0))`}let m=`texture(${r}, ${p}).${c}`,x=`featureIds.${n} = czm_unpackUint(${m});`;u.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[x])}function Kae(e,t,n,i){let o=e.shaderBuilder,r=pe.includesVertexShader(i);r&&o.addStructField(zi.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(zi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(zi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function GGe(e,t,n,i,o){let r=e.model,s,a;if(l(t.repeat)){let u=WGe(t,n);s=_t.createVertexBuffer({context:o.context,typedArray:u,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s),r.statistics.addBuffer(s,!1)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function WGe(e,t){let n=e.offset,i=e.repeat,o=new Float32Array(t);for(let r=0;r<t;r++)o[r]=n+Math.floor(r/i);return o}var Sy=zi;var BO=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); +} +`;var kO=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); + setMetadataVaryings(); +} +`;var Ai={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};Ai.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=jGe(r.propertyAttributes,t,a),u=YGe(r.propertyTextures,a),f=c.concat(u);KGe(i,f),QGe(i),i.addVertexLines(kO),i.addFragmentLines(BO);for(let d=0;d<c.length;d++){let p=c[d];JGe(e,p)}for(let d=0;d<u.length;d++){let p=u[d];t5e(e,p)}};function jGe(e,t,n){return l(e)?e.flatMap(i=>qGe(i,t,n)):[]}function qGe(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Kt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:m,variableName:x}=o(g);u[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:pe.BOTH}}return u}function YGe(e,t){return l(e)?e.flatMap(n=>XGe(n,t)):[]}function XGe(e,t){let{sanitizeGlslIdentifier:n}=Kt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;a<r.length;a++){let[c,u]=r[a];s[a]={metadataVariable:n(c),property:u,type:u.classProperty.type,glslType:u.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:pe.FRAGMENT}}return s}function KGe(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:u,propertyStatistics:f}=t[a];n.add(u),l(f)&&c!==At.ENUM&&i.add(u)}let o=Ai.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=Ai.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,u){e.addStruct(a,a,pe.BOTH);for(let f=0;f<u.length;f++){let{shaderName:d}=u[f],p=u[f].type==="float"?$Ge(c):c;e.addStructField(a,p,d)}}}var ZGe={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function $Ge(e){let t=ZGe[e];return l(t)?t:e}function QGe(e){e.addStruct(Ai.STRUCT_ID_METADATA_VS,Ai.STRUCT_NAME_METADATA,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_FS,Ai.STRUCT_NAME_METADATA,pe.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_VS,Ai.STRUCT_NAME_METADATA_CLASS,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_CLASS_FS,Ai.STRUCT_NAME_METADATA_CLASS,pe.FRAGMENT),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_VS,Ai.STRUCT_NAME_METADATA_STATISTICS,pe.VERTEX),e.addStruct(Ai.STRUCT_ID_METADATA_STATISTICS_FS,Ai.STRUCT_NAME_METADATA_STATISTICS,pe.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.VERTEX),e.addFunction(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,Ai.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.FRAGMENT),e.addFunction(Ai.FUNCTION_ID_SET_METADATA_VARYINGS,Ai.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,pe.VERTEX)}function JGe(e,t){e5e(e,t),Zae(e.shaderBuilder,t),$ae(e.shaderBuilder,t)}function e5e(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=Jae({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:pe.BOTH,property:o});n.addStructField(Ai.STRUCT_ID_METADATA_VS,r,i),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function t5e(e,t){n5e(e,t),Zae(e.shaderBuilder,t),$ae(e.shaderBuilder,t)}function n5e(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:u,texture:f,transform:d}=s.textureReader,p=`u_propertyTexture_${u}`;i.hasOwnProperty(p)||(n.addUniform("sampler2D",p,pe.FRAGMENT),i[p]=()=>f),n.addStructField(Ai.STRUCT_ID_METADATA_FS,r,o);let g=`attributes.texCoord_${a}`,m=g;if(l(d)&&!$.equals(d,$.IDENTITY)){let A=`${p}Transform`;n.addUniform("mat3",A,pe.FRAGMENT),i[A]=function(){return d},m=`vec2(${A} * vec3(${g}, 1.0))`}let x=`texture(${p}, ${m}).${c}`,b=s.unpackInShader(x),T=Jae({valueExpression:b,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:pe.FRAGMENT,property:s}),C=`metadata.${o} = ${T};`;n.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,[C])}function Zae(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Qae(Ai.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,s),pe.includesVertexShader(r)&&(e.addStructField(Ai.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function $ae(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===At.ENUM)return;let s=Ai.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Qae(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_FS,c),pe.includesVertexShader(t.shaderDestination)&&(e.addStructField(Ai.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(Ai.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Qae(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function Jae(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var Mf=Ai;var i5e={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},vy=Object.freeze(i5e);var fa={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:xt};fa.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===vy.TRANSLUCENT?r.pass=ve.TRANSLUCENT:c===vy.OPAQUE&&(r.pass=void 0);let u=f5e(s,t);if(!u.customShaderEnabled)return;if(p5e(i,s,u),u.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,pe.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,pe.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,pe.FRAGMENT);let p=m_.getDefineName(s.mode);i.addDefine(p,void 0,pe.FRAGMENT)}let f=s.uniforms;for(let p in f)if(f.hasOwnProperty(p)){let g=f[p];i.addUniform(g.type,p)}let d=s.varyings;for(let p in d)if(d.hasOwnProperty(p)){let g=d[p];i.addVarying(g,p)}e.uniformMap=yt(e.uniformMap,s.uniformMap)};function o5e(e){let t={};for(let n=0;n<e.length;n++){let i=Kt.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var r5e={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},s5e={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function ece(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=r5e[t],i=s5e[t];if(l(n))return{attributeField:[n,e],value:i}}function a5e(e,t){if(!l(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=tce(t,n,!1),o=nce(t,n,!1),r,s=[],a=[];for(let c in i){if(!i.hasOwnProperty(c))continue;let f=[i[c].glslType,c];s.push(f),r=`vsInput.attributes.${c} = attributes.${c};`,a.push(r)}for(let c=0;c<o.length;c++){let u=o[c],f=ece(u);if(!l(f))return fa._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${u}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${u} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function c5e(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function l5e(e,t){if(!l(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=tce(t,n,!0),o=nce(t,n,!0),r,s=[],a=[];for(let u in i){if(!i.hasOwnProperty(u))continue;let d=[i[u].glslType,u];s.push(d),r=`fsInput.attributes.${u} = attributes.${u};`,a.push(r)}for(let u=0;u<o.length;u++){let f=o[u],d=ece(f);if(!l(d))return fa._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${f}, disabling custom fragment shader.`),{enabled:!1};s.push(d.attributeField),r=`fsInput.attributes.${f} = ${d.value};`,a.push(r)}let c=c5e(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var u5e={positionWC:!0,positionEC:!0};function tce(e,t,n){let i={};for(let o in e){if(!e.hasOwnProperty(o))continue;let r=e[o],s=o;n&&o==="normalMC"?s="normalEC":n&&o==="tangentMC"&&(s="tangentEC",r.glslType="vec3"),t.hasOwnProperty(s)&&(i[s]=r)}return i}function nce(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||u5e.hasOwnProperty(o))continue;let r=o;n&&o==="normalEC"?r="normalMC":n&&o==="tangentEC"&&(r="tangentMC"),e.hasOwnProperty(r)||i.push(o)}return i}function f5e(e,t){let n=o5e(t.attributes),i=a5e(e,n),o=l5e(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function d5e(e,t){let n=fa.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,fa.STRUCT_NAME_ATTRIBUTES,pe.VERTEX);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=fa.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,fa.STRUCT_NAME_VERTEX_INPUT,pe.VERTEX),e.addStructField(n,fa.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,Sy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Mf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=fa.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,fa.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,pe.VERTEX),e.addFunctionLines(r,o)}function h5e(e,t){let n=fa.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,fa.STRUCT_NAME_ATTRIBUTES,pe.FRAGMENT);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=fa.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,fa.STRUCT_NAME_FRAGMENT_INPUT,pe.FRAGMENT),e.addStructField(n,fa.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,Sy.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,Mf.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,Mf.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=fa.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,fa.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,pe.FRAGMENT),e.addFunctionLines(r,o)}var m5e=[];function p5e(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=m5e;i.enabled&&(d5e(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,MO),e.addVertexLines(r)),o.enabled&&(h5e(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,LO),e.addFragmentLines(r))}var VO=fa;var UO={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};UO.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,pe.VERTEX),i.addFunction(UO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,UO.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,pe.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],u=c.quantization;if(!l(u))continue;let f=c.semantic===Tt.POSITION,d=c.semantic===Tt.TEXCOORD;if(r&&!f&&!d)continue;let p=Kt.getAttributeInfo(c);g5e(i,p),_5e(e,p)}};function _5e(e,t){let n=e.shaderBuilder,i=e.uniformMap,o=t.variableName,r=t.attribute.quantization;if(r.octEncoded){let s=`model_normalizationRange_${o}`;n.addUniform("float",s,pe.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,pe.VERTEX),n.addUniform(c,a,pe.VERTEX);let u=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(u=ice(u,0),f=ice(f,1)),i[s]=function(){return u},i[a]=function(){return f}}}function ice(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function g5e(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=y5e(n,i):o=x5e(n),e.addFunctionLines(UO.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function y5e(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,o=`model_normalizationRange_${e}`,r=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${o})${r};`}function x5e(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var zO=UO;var HO=`void geometryStage(out ProcessedAttributes attributes) +{ + attributes.positionMC = v_positionMC; + attributes.positionEC = v_positionEC; + + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) + attributes.positionWC = v_positionWC; + #endif + + #ifdef HAS_NORMALS + // renormalize after interpolation + attributes.normalEC = normalize(v_normalEC); + #endif + + #ifdef HAS_TANGENTS + attributes.tangentEC = normalize(v_tangentEC); + #endif + + #ifdef HAS_BITANGENTS + attributes.bitangentEC = normalize(v_bitangentEC); + #endif + + // Everything else is dynamically generated in GeometryPipelineStage + setDynamicVaryings(attributes); +} +`;var GO=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) +{ + vec4 computedPosition; + + // Compute positions in different coordinate systems + vec3 positionMC = attributes.positionMC; + v_positionMC = positionMC; + v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + vec3 position2D = attributes.position2D; + vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; + computedPosition = czm_projection * vec4(positionEC, 1.0); + #else + computedPosition = czm_projection * vec4(v_positionEC, 1.0); + #endif + + // Sometimes the custom shader and/or style needs this + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) || defined(ENABLE_CLIPPING_POLYGONS) + // Note that this is a 32-bit position which may result in jitter on small + // scales. + v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + #endif + + #ifdef HAS_NORMALS + v_normalEC = normalize(normal * attributes.normalMC); + #endif + + #ifdef HAS_TANGENTS + v_tangentEC = normalize(normal * attributes.tangentMC); + #endif + + #ifdef HAS_BITANGENTS + v_bitangentEC = normalize(normal * attributes.bitangentMC); + #endif + + // All other varyings need to be dynamically generated in + // GeometryPipelineStage + setDynamicVaryings(attributes); + + return computedPosition; +} +`;var $A=`vec2 computeSt(float featureId) +{ + float stepX = model_textureStep.x; + float centerX = model_textureStep.y; + + #ifdef MULTILINE_BATCH_TEXTURE + float stepY = model_textureStep.z; + float centerY = model_textureStep.w; + + float xId = mod(featureId, model_textureDimensions.x); + float yId = floor(featureId / model_textureDimensions.x); + + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); + #else + return vec2(centerX + (featureId * stepX), 0.5); + #endif +} + +void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) +{ + int featureId = featureIds.SELECTED_FEATURE_ID; + + + if (featureId < model_featuresLength) + { + vec2 featureSt = computeSt(float(featureId)); + + feature.id = featureId; + feature.st = featureSt; + feature.color = texture(model_batchTexture, featureSt); + } + // Floating point comparisons can be unreliable in GLSL, so we + // increment the feature ID to make sure it's always greater + // then the model_featuresLength - a condition we check for in the + // pick ID, to avoid sampling the pick texture if the feature ID is + // greater than the number of features. + else + { + feature.id = model_featuresLength + 1; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + + #ifdef HAS_NULL_FEATURE_ID + if (featureId == model_nullFeatureId) { + feature.id = featureId; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + #endif +} +`;var WO={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature"};WO.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=b5e(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),T5e(i);let c=s.featureIds.nullFeatureId,u=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),u.model_nullFeatureId=function(){return c}),s.shaderDestination===pe.BOTH&&i.addVertexLines($A),i.addFragmentLines($A)};function oce(e){return e instanceof xn.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function rce(e){return e instanceof xn.FeatureIdTexture?pe.FRAGMENT:pe.BOTH}function b5e(e,t,n){let i,o;return l(t.instances)&&(o=Kt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:rce(o),featureIdDefine:oce(o)}):(o=Kt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:rce(o),featureIdDefine:oce(o)})}function T5e(e){e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(WO.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var wy=WO;var Ys={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};Ys.process=function(e,t,n){let{shaderBuilder:i,model:o}=e;i.addStruct(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",pe.VERTEX),i.addStruct(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",pe.FRAGMENT),i.addStruct(wy.STRUCT_ID_SELECTED_FEATURE,wy.STRUCT_NAME_SELECTED_FEATURE,pe.BOTH),i.addFunction(Ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Ys.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,pe.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.VERTEX),i.addFunction(Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Ys.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.FRAGMENT),o.type===lr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,pe.FRAGMENT);let r=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,s=l(e.runtimeNode.node.instances),a=r&&!s,c=t.attributes.length;for(let u=0;u<c;u++){let f=t.attributes[u],d=on.getAttributeLocationCount(f.type),p=f.semantic===Tt.POSITION,g;d>1?(g=e.attributeIndex,e.attributeIndex+=d):p&&!a?g=0:g=e.attributeIndex++,C5e(e,f,g,d,r,s)}R5e(i,t.attributes),t.primitiveType===Me.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(GO),i.addFragmentLines(HO)};function C5e(e,t,n,i,o,r){let s=e.shaderBuilder,a=Kt.getAttributeInfo(t),c=o&&!r;i>1?S5e(e,t,n,i):E5e(e,t,n,c),w5e(s,a,c),v5e(s,a),l(t.semantic)&&A5e(s,t),D5e(s,a,o),I5e(s,a,c),P5e(s,a)}function A5e(e,t){let{semantic:n,setIndex:i}=t;switch(n){case Tt.NORMAL:e.addDefine("HAS_NORMALS");break;case Tt.TANGENT:e.addDefine("HAS_TANGENTS");break;case Tt.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Tt.TEXCOORD:case Tt.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function E5e(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===Tt.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let u=r===Tt.POSITION,f=u?0:n,d=on.getNumberOfComponents(a),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!i)return;let g=e.runtimePrimitive.positionBuffer2D,m={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(m)}function S5e(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,u=on.getNumberOfComponents(s)/i,f=X.getSizeInBytes(a),d=u*f,p=t.byteStride;for(let g=0;g<i;g++){let m=t.byteOffset+g*d,x={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:u,componentDatatype:a,offsetInBytes:m,strideInBytes:p,normalize:r};e.attributes.push(x)}}function v5e(e,t){let n=t.variableName,i=`v_${n}`,o;n==="normalMC"?(i="v_normalEC",o=t.glslType):n==="tangentMC"?(o="vec3",i="v_tangentEC"):o=t.glslType,e.addVarying(o,i)}function w5e(e,t,n){let i=t.attribute.semantic,o=t.variableName,r,s;t.isQuantized?(r=`a_quantized_${o}`,s=t.quantizedGlslType):(r=`a_${o}`,s=t.glslType);let a=i===Tt.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function D5e(e,t,n){let i=Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,{variableName:r,glslType:s}=t;r==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(o,"vec3","tangentEC")):r==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(o,"vec3","normalEC")):(e.addStructField(i,s,r),e.addStructField(o,s,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function I5e(e,t,n){let i=Ys.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n&&e.addFunctionLines(i,["attributes.position2D = a_position2D;"]),t.isQuantized)return;let s=[];o==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${o} = a_${o};`),e.addFunctionLines(i,s)}function P5e(e,t){let{semantic:n,setIndex:i}=t.attribute;if(l(n)&&!l(i))return;let o=Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=Ys.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function R5e(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===Tt.NORMAL?n=!0:r.semantic===Tt.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Ys.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var jO=Ys;var qO=`#ifdef USE_IBL_LIGHTING +vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) + // Environment maps were provided, use them for IBL + vec3 viewDirection = -normalize(position); + vec3 iblColor = textureIBL(viewDirection, normal, material); + return iblColor; + #endif + + return vec3(0.0); +} +#endif + +#ifdef USE_CLEARCOAT +vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + vec3 viewDirection = -normalize(position); + vec3 halfwayDirection = normalize(viewDirection + lightDirection); + vec3 normal = material.clearcoatNormal; + float NdotL = clamp(dot(normal, lightDirection), 0.001, 1.0); + + // clearcoatF0 = vec3(pow((ior - 1.0) / (ior + 1.0), 2.0)), but without KHR_materials_ior, ior is a constant 1.5. + vec3 f0 = vec3(0.04); + vec3 f90 = vec3(1.0); + // Note: clearcoat Fresnel computed with dot(n, v) instead of dot(v, h). + // This is to make it energy conserving with a simple layering function. + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + // compute specular reflection from direct lighting + float roughness = material.clearcoatRoughness; + float alphaRoughness = roughness * roughness; + float directStrength = computeDirectSpecularStrength(normal, lightDirection, viewDirection, halfwayDirection, alphaRoughness); + vec3 directReflection = F * directStrength * NdotL; + vec3 color = lightColorHdr * directReflection; + + #ifdef SPECULAR_IBL + // Find the direction in which to sample the environment map + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal)); + vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness); + color += iblColor * material.occlusion; + #endif + + float clearcoatFactor = material.clearcoatFactor; + vec3 clearcoatColor = color * clearcoatFactor; + + // Dim base layer based on transmission loss through clearcoat + return baseLayerColor * (1.0 - clearcoatFactor * F) + clearcoatColor; +} +#endif + +#if defined(LIGHTING_PBR) && defined(HAS_NORMALS) +vec3 computePbrLighting(in czm_modelMaterial material, in vec3 position) +{ + #ifdef USE_CUSTOM_LIGHT_COLOR + vec3 lightColorHdr = model_lightColorHdr; + #else + vec3 lightColorHdr = czm_lightColorHdr; + #endif + + vec3 viewDirection = -normalize(position); + vec3 normal = material.normalEC; + vec3 lightDirection = normalize(czm_lightDirectionEC); + + vec3 directLighting = czm_pbrLighting(viewDirection, normal, lightDirection, material); + vec3 directColor = lightColorHdr * directLighting; + + // Accumulate colors from base layer + vec3 color = directColor + material.emissive; + #ifdef USE_IBL_LIGHTING + color += computeIBL(position, normal, lightDirection, lightColorHdr, material); + #endif + + #ifdef USE_CLEARCOAT + color = addClearcoatReflection(color, position, lightDirection, lightColorHdr, material); + #endif + + return color; +} +#endif + +/** + * Compute the material color under the current lighting conditions. + * All other material properties are passed through so further stages + * have access to them. + * + * @param {czm_modelMaterial} material The material properties from {@MaterialStageFS} + * @param {ProcessedAttributes} attributes + */ +void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) +{ + #ifdef LIGHTING_PBR + #ifdef HAS_NORMALS + vec3 color = computePbrLighting(material, attributes.positionEC); + #else + vec3 color = material.diffuse * material.occlusion + material.emissive; + #endif + // In HDR mode, the frame buffer is in linear color space. The + // post-processing stages (see PostProcessStageCollection) will handle + // tonemapping. However, if HDR is not enabled, we must tonemap else large + // values may be clamped to 1.0 + #ifndef HDR + color = czm_pbrNeutralTonemapping(color); + #endif + #else // unlit + vec3 color = material.diffuse; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + // The colors resulting from point cloud styles are adjusted differently. + color = czm_gammaCorrect(color); + #elif !defined(HDR) + // If HDR is not enabled, the frame buffer stores sRGB colors rather than + // linear colors so the linear value must be converted. + color = czm_linearToSrgb(color); + #endif + + material.diffuse = color; +} +`;var O5e={UNLIT:0,PBR:1},ym=Object.freeze(O5e);var sce={name:"LightingPipelineStage"};sce.process=function(e,t){let{model:n,lightingOptions:i,shaderBuilder:o}=e;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,pe.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",pe.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}let{lightingModel:r}=i;r===ym.PBR?o.addDefine("LIGHTING_PBR",void 0,pe.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,pe.FRAGMENT),o.addFragmentLines(qO)};var YO=sce;var XO=`// If the style color is white, it implies the feature has not been styled. +bool isDefaultStyleColor(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} + +vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) +{ + vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); + vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; + return color; +} + +vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform) +{ + return vec2(textureTransform * vec3(texCoord, 1.0)); +} + +#ifdef HAS_NORMAL_TEXTURE +vec2 getNormalTexCoords() +{ + vec2 texCoord = TEXCOORD_NORMAL; + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0)); + #endif + return texCoord; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) || defined(HAS_CLEARCOAT_NORMAL_TEXTURE) +vec3 computeTangent(in vec3 position, in vec2 normalTexCoords) +{ + vec2 tex_dx = dFdx(normalTexCoords); + vec2 tex_dy = dFdy(normalTexCoords); + float determinant = tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y; + vec3 tangent = tex_dy.t * dFdx(position) - tex_dx.t * dFdy(position); + return tangent / determinant; +} +#endif + +#ifdef USE_ANISOTROPY +struct NormalInfo { + vec3 tangent; + vec3 bitangent; + vec3 normal; + vec3 geometryNormal; +}; + +NormalInfo getNormalInfo(ProcessedAttributes attributes) +{ + vec3 geometryNormal = attributes.normalEC; + #ifdef HAS_NORMAL_TEXTURE + vec2 normalTexCoords = getNormalTexCoords(); + #endif + + #ifdef HAS_BITANGENTS + vec3 tangent = attributes.tangentEC; + vec3 bitangent = attributes.bitangentEC; + #else // Assume HAS_NORMAL_TEXTURE + vec3 tangent = computeTangent(attributes.positionEC, normalTexCoords); + tangent = normalize(tangent - geometryNormal * dot(geometryNormal, tangent)); + vec3 bitangent = normalize(cross(geometryNormal, tangent)); + #endif + + #ifdef HAS_NORMAL_TEXTURE + mat3 tbn = mat3(tangent, bitangent, geometryNormal); + vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + vec3 normal = normalize(tbn * normalSample); + #else + vec3 normal = geometryNormal; + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + tangent *= -1.0; + bitangent *= -1.0; + normal *= -1.0; + geometryNormal *= -1.0; + } + #endif + + NormalInfo normalInfo; + normalInfo.tangent = tangent; + normalInfo.bitangent = bitangent; + normalInfo.normal = normal; + normalInfo.geometryNormal = geometryNormal; + + return normalInfo; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) +vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = getNormalTexCoords(); + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_CLEARCOAT_NORMAL_TEXTURE +vec3 getClearcoatNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = TEXCOORD_CLEARCOAT_NORMAL; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_TRANSFORM + normalTexCoords = vec2(u_clearcoatNormalTextureTransform * vec3(normalTexCoords, 1.0)); + #endif + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + vec3 normalSample = texture(u_clearcoatNormalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_clearcoatNormalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_NORMALS +vec3 computeNormal(ProcessedAttributes attributes) +{ + // Geometry normal. This is already normalized + vec3 normal = attributes.normalEC; + + #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) + normal = getNormalFromTexture(attributes, normal); + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + normal = -normal; + } + #endif + + return normal; +} +#endif + +#ifdef HAS_BASE_COLOR_TEXTURE +vec4 getBaseColorFromTexture() +{ + vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); + #endif + + vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); + + #ifdef HAS_BASE_COLOR_FACTOR + baseColorWithAlpha *= u_baseColorFactor; + #endif + + return baseColorWithAlpha; +} +#endif + +#ifdef HAS_EMISSIVE_TEXTURE +vec3 getEmissiveFromTexture() +{ + vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; + #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM + emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); + #endif + + vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); + #ifdef HAS_EMISSIVE_FACTOR + emissive *= u_emissiveFactor; + #endif + + return emissive; +} +#endif + +#if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) +void setSpecularGlossiness(inout czm_modelMaterial material) +{ + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE + vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM + specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); + #endif + + vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); + vec3 specular = specularGlossiness.rgb; + float glossiness = specularGlossiness.a; + #ifdef HAS_LEGACY_SPECULAR_FACTOR + specular *= u_legacySpecularFactor; + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + glossiness *= u_glossinessFactor; + #endif + #else + #ifdef HAS_LEGACY_SPECULAR_FACTOR + vec3 specular = clamp(u_legacySpecularFactor, vec3(0.0), vec3(1.0)); + #else + vec3 specular = vec3(1.0); + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); + #else + float glossiness = 1.0; + #endif + #endif + + #ifdef HAS_DIFFUSE_TEXTURE + vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; + #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM + diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); + #endif + + vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); + #ifdef HAS_DIFFUSE_FACTOR + diffuse *= u_diffuseFactor; + #endif + #elif defined(HAS_DIFFUSE_FACTOR) + vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); + #else + vec4 diffuse = vec4(1.0); + #endif + + material.diffuse = diffuse.rgb * (1.0 - czm_maximumComponent(specular)); + // the specular glossiness extension's alpha overrides anything set + // by the base material. + material.alpha = diffuse.a; + + material.specular = specular; + + // glossiness is the opposite of roughness, but easier for artists to use. + material.roughness = 1.0 - glossiness; +} +#elif defined(LIGHTING_PBR) +float setMetallicRoughness(inout czm_modelMaterial material) +{ + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE + vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM + metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); + #endif + + vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; + float metalness = clamp(metallicRoughness.b, 0.0, 1.0); + float roughness = clamp(metallicRoughness.g, 0.0, 1.0); + #ifdef HAS_METALLIC_FACTOR + metalness = clamp(metalness * u_metallicFactor, 0.0, 1.0); + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + roughness = clamp(roughness * u_roughnessFactor, 0.0, 1.0); + #endif + #else + #ifdef HAS_METALLIC_FACTOR + float metalness = clamp(u_metallicFactor, 0.0, 1.0); + #else + float metalness = 1.0; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + float roughness = clamp(u_roughnessFactor, 0.0, 1.0); + #else + float roughness = 1.0; + #endif + #endif + + // dielectrics use f0 = 0.04, metals use albedo as f0 + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, material.baseColor.rgb, metalness); + + material.specular = f0; + + // diffuse only applies to dielectrics. + material.diffuse = mix(material.baseColor.rgb, vec3(0.0), metalness); + + // This is perceptual roughness. The square of this value is used for direct lighting + material.roughness = roughness; + + return metalness; +} +#ifdef USE_SPECULAR +void setSpecular(inout czm_modelMaterial material, in float metalness) +{ + #ifdef HAS_SPECULAR_TEXTURE + vec2 specularTexCoords = TEXCOORD_SPECULAR; + #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM + specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform); + #endif + float specularWeight = texture(u_specularTexture, specularTexCoords).a; + #ifdef HAS_SPECULAR_FACTOR + specularWeight *= u_specularFactor; + #endif + #else + #ifdef HAS_SPECULAR_FACTOR + float specularWeight = u_specularFactor; + #else + float specularWeight = 1.0; + #endif + #endif + + #ifdef HAS_SPECULAR_COLOR_TEXTURE + vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR; + #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM + specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform); + #endif + vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb; + vec3 specularColorFactor = czm_srgbToLinear(specularColorSample); + #ifdef HAS_SPECULAR_COLOR_FACTOR + specularColorFactor *= u_specularColorFactor; + #endif + #else + #ifdef HAS_SPECULAR_COLOR_FACTOR + vec3 specularColorFactor = u_specularColorFactor; + #else + vec3 specularColorFactor = vec3(1.0); + #endif + #endif + material.specularWeight = specularWeight; + vec3 f0 = material.specular; + vec3 dielectricSpecularF0 = min(f0 * specularColorFactor, vec3(1.0)); + material.specular = mix(dielectricSpecularF0, material.baseColor.rgb, metalness); +} +#endif +#ifdef USE_ANISOTROPY +void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo) +{ + mat2 rotation = mat2(u_anisotropy.xy, -u_anisotropy.y, u_anisotropy.x); + float anisotropyStrength = u_anisotropy.z; + + vec2 direction = vec2(1.0, 0.0); + #ifdef HAS_ANISOTROPY_TEXTURE + vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY; + #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM + anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform); + #endif + vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb; + direction = anisotropySample.rg * 2.0 - vec2(1.0); + anisotropyStrength *= anisotropySample.b; + #endif + + direction = rotation * direction; + mat3 tbn = mat3(normalInfo.tangent, normalInfo.bitangent, normalInfo.normal); + vec3 anisotropicT = tbn * normalize(vec3(direction, 0.0)); + vec3 anisotropicB = cross(normalInfo.geometryNormal, anisotropicT); + + material.anisotropicT = anisotropicT; + material.anisotropicB = anisotropicB; + material.anisotropyStrength = anisotropyStrength; +} +#endif +#ifdef USE_CLEARCOAT +void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attributes) +{ + #ifdef HAS_CLEARCOAT_TEXTURE + vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT; + #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM + clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform); + #endif + float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r; + #ifdef HAS_CLEARCOAT_FACTOR + clearcoatFactor *= u_clearcoatFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_FACTOR + float clearcoatFactor = u_clearcoatFactor; + #else + // PERFORMANCE_IDEA: this case should turn the whole extension off + float clearcoatFactor = 0.0; + #endif + #endif + + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE + vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS; + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM + clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform); + #endif + float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g; + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + clearcoatRoughness *= u_clearcoatRoughnessFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + float clearcoatRoughness = u_clearcoatRoughnessFactor; + #else + float clearcoatRoughness = 0.0; + #endif + #endif + + material.clearcoatFactor = clearcoatFactor; + // This is perceptual roughness. The square of this value is used for direct lighting + material.clearcoatRoughness = clearcoatRoughness; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE + material.clearcoatNormal = getClearcoatNormalFromTexture(attributes, attributes.normalEC); + #else + material.clearcoatNormal = attributes.normalEC; + #endif +} +#endif +#endif + +void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) +{ + #ifdef USE_ANISOTROPY + NormalInfo normalInfo = getNormalInfo(attributes); + material.normalEC = normalInfo.normal; + #elif defined(HAS_NORMALS) + material.normalEC = computeNormal(attributes); + #endif + + vec4 baseColorWithAlpha = vec4(1.0); + // Regardless of whether we use PBR, set a base color + #ifdef HAS_BASE_COLOR_TEXTURE + baseColorWithAlpha = getBaseColorFromTexture(); + #elif defined(HAS_BASE_COLOR_FACTOR) + baseColorWithAlpha = u_baseColorFactor; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + baseColorWithAlpha = v_pointCloudColor; + #elif defined(HAS_COLOR_0) + vec4 color = attributes.color_0; + // .pnts files store colors in the sRGB color space + #ifdef HAS_SRGB_COLOR + color = czm_srgbToLinear(color); + #endif + baseColorWithAlpha *= color; + #endif + + #ifdef USE_CPU_STYLING + baseColorWithAlpha.rgb = blend(baseColorWithAlpha.rgb, feature.color.rgb, model_colorBlend); + #endif + material.baseColor = baseColorWithAlpha; + material.diffuse = baseColorWithAlpha.rgb; + material.alpha = baseColorWithAlpha.a; + + #ifdef HAS_OCCLUSION_TEXTURE + vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; + #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM + occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); + #endif + material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; + #endif + + #ifdef HAS_EMISSIVE_TEXTURE + material.emissive = getEmissiveFromTexture(); + #elif defined(HAS_EMISSIVE_FACTOR) + material.emissive = u_emissiveFactor; + #endif + + #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) + setSpecularGlossiness(material); + #elif defined(LIGHTING_PBR) + float metalness = setMetallicRoughness(material); + #ifdef USE_SPECULAR + setSpecular(material, metalness); + #endif + #ifdef USE_ANISOTROPY + setAnisotropy(material, normalInfo); + #endif + #ifdef USE_CLEARCOAT + setClearcoat(material, attributes); + #endif + #endif +} +`;var{Material:M5e,MetallicRoughness:$W,SpecularGlossiness:QW,Specular:ace,Clearcoat:cce}=xn,lce={name:"MaterialPipelineStage",_processTexture:zl,_processTextureTransform:uce};lce.process=function(e,t,n){let i=t.material,{model:o,uniformMap:r,shaderBuilder:s}=e,a=l(o.classificationType),c=a,{defaultTexture:u,defaultNormalTexture:f,defaultEmissiveTexture:d}=n.context;N5e(i,r,s,u,f,d,c),l(i.specularGlossiness)?F5e(i.specularGlossiness,r,s,u,c):(l(i.specular)&&Kt.supportedExtensions.KHR_materials_specular&&B5e(i.specular,r,s,u,c),l(i.anisotropy)&&Kt.supportedExtensions.KHR_materials_anisotropy&&V5e(i.anisotropy,r,s,u,c),l(i.clearcoat)&&Kt.supportedExtensions.KHR_materials_clearcoat&&U5e(i.clearcoat,r,s,u,c),z5e(i.metallicRoughness,r,s,u,c));let p=Kt.getAttributeBySemantic(t,Tt.NORMAL),g=e.lightingOptions;i.unlit||!p||a?g.lightingModel=ym.UNLIT:g.lightingModel=ym.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===pm.BLEND?x.pass=ve.TRANSLUCENT:i.alphaMode===pm.MASK&&(x.alphaCutoff=i.alphaCutoff),s.addFragmentLines(XO),i.doubleSided&&s.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,pe.BOTH)};function uce(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,pe.FRAGMENT),t[s]=function(){return n.transform}}function L5e(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_SCALE`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Scale`;e.addUniform("float",s,pe.FRAGMENT),t[s]=function(){return n.scale}}function zl(e,t,n,i,o,r){e.addUniform("sampler2D",i,pe.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,pe.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,c,pe.FRAGMENT);let f=n.transform;l(f)&&!$.equals(f,$.IDENTITY)&&uce(e,t,n,i,o);let{scale:d}=n;l(d)&&d!==1&&L5e(e,t,n,i,o)}function N5e(e,t,n,i,o,r,s){let{emissiveFactor:a,emissiveTexture:c,normalTexture:u,occlusionTexture:f}=e;l(a)&&!h.equals(a,M5e.DEFAULT_EMISSIVE_FACTOR)&&(n.addUniform("vec3","u_emissiveFactor",pe.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,pe.FRAGMENT),l(c)&&!s&&zl(n,t,c,"u_emissiveTexture","EMISSIVE",r)),l(u)&&!s&&zl(n,t,u,"u_normalTexture","NORMAL",o),l(f)&&!s&&zl(n,t,f,"u_occlusionTexture","OCCLUSION",i)}function F5e(e,t,n,i,o){let{diffuseTexture:r,diffuseFactor:s,specularGlossinessTexture:a,specularFactor:c,glossinessFactor:u}=e;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,pe.FRAGMENT),l(r)&&!o&&zl(n,t,r,"u_diffuseTexture","DIFFUSE",i),l(s)&&!oe.equals(s,QW.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",pe.FRAGMENT),t.u_diffuseFactor=function(){return e.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&zl(n,t,a,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i),l(c)&&!h.equals(c,QW.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_legacySpecularFactor",pe.FRAGMENT),t.u_legacySpecularFactor=function(){return e.specularFactor},n.addDefine("HAS_LEGACY_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(u)&&u!==QW.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",pe.FRAGMENT),t.u_glossinessFactor=function(){return e.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,pe.FRAGMENT))}function B5e(e,t,n,i,o){let{specularTexture:r,specularFactor:s,specularColorTexture:a,specularColorFactor:c}=e;n.addDefine("USE_SPECULAR",void 0,pe.FRAGMENT),l(r)&&!o&&zl(n,t,r,"u_specularTexture","SPECULAR",i),l(s)&&s!==ace.DEFAULT_SPECULAR_FACTOR&&(n.addUniform("float","u_specularFactor",pe.FRAGMENT),t.u_specularFactor=function(){return e.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&zl(n,t,a,"u_specularColorTexture","SPECULAR_COLOR",i),l(c)&&!h.equals(c,ace.DEFAULT_SPECULAR_COLOR_FACTOR)&&(n.addUniform("vec3","u_specularColorFactor",pe.FRAGMENT),t.u_specularColorFactor=function(){return e.specularColorFactor},n.addDefine("HAS_SPECULAR_COLOR_FACTOR",void 0,pe.FRAGMENT))}var k5e=new h;function V5e(e,t,n,i,o){let{anisotropyStrength:r,anisotropyRotation:s,anisotropyTexture:a}=e;n.addDefine("USE_ANISOTROPY",void 0,pe.FRAGMENT),l(a)&&!o&&zl(n,t,a,"u_anisotropyTexture","ANISOTROPY",i);let c=Math.cos(s),u=Math.sin(s);n.addUniform("vec3","u_anisotropy",pe.FRAGMENT),t.u_anisotropy=function(){return h.fromElements(c,u,r,k5e)}}function U5e(e,t,n,i,o){let{clearcoatFactor:r,clearcoatTexture:s,clearcoatRoughnessFactor:a,clearcoatRoughnessTexture:c,clearcoatNormalTexture:u}=e;n.addDefine("USE_CLEARCOAT",void 0,pe.FRAGMENT),l(r)&&r!==cce.DEFAULT_CLEARCOAT_FACTOR&&(n.addUniform("float","u_clearcoatFactor",pe.FRAGMENT),t.u_clearcoatFactor=function(){return e.clearcoatFactor},n.addDefine("HAS_CLEARCOAT_FACTOR",void 0,pe.FRAGMENT)),l(s)&&!o&&zl(n,t,s,"u_clearcoatTexture","CLEARCOAT",i),l(a)&&r!==cce.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_clearcoatRoughnessFactor",pe.FRAGMENT),t.u_clearcoatRoughnessFactor=function(){return e.clearcoatRoughnessFactor},n.addDefine("HAS_CLEARCOAT_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT)),l(c)&&!o&&zl(n,t,c,"u_clearcoatRoughnessTexture","CLEARCOAT_ROUGHNESS",i),l(u)&&!o&&zl(n,t,u,"u_clearcoatNormalTexture","CLEARCOAT_NORMAL",i)}function z5e(e,t,n,i,o){n.addDefine("USE_METALLIC_ROUGHNESS",void 0,pe.FRAGMENT);let r=e.baseColorTexture;l(r)&&!o&&zl(n,t,r,"u_baseColorTexture","BASE_COLOR",i);let s=e.baseColorFactor;l(s)&&!oe.equals(s,$W.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",pe.FRAGMENT),t.u_baseColorFactor=function(){return e.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,pe.FRAGMENT));let a=e.metallicRoughnessTexture;l(a)&&!o&&zl(n,t,a,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let c=e.metallicFactor;l(c)&&c!==$W.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",pe.FRAGMENT),t.u_metallicFactor=function(){return e.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,pe.FRAGMENT));let u=e.roughnessFactor;l(u)&&u!==$W.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",pe.FRAGMENT),t.u_roughnessFactor=function(){return e.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT))}var KO=lce;var Jc={name:"MetadataPickingPipelineStage",METADATA_PICKING_ENABLED:"METADATA_PICKING_ENABLED",METADATA_PICKING_VALUE_TYPE:"METADATA_PICKING_VALUE_TYPE",METADATA_PICKING_VALUE_STRING:"METADATA_PICKING_VALUE_STRING",METADATA_PICKING_VALUE_COMPONENT_X:"METADATA_PICKING_VALUE_COMPONENT_X",METADATA_PICKING_VALUE_COMPONENT_Y:"METADATA_PICKING_VALUE_COMPONENT_Y",METADATA_PICKING_VALUE_COMPONENT_Z:"METADATA_PICKING_VALUE_COMPONENT_Z",METADATA_PICKING_VALUE_COMPONENT_W:"METADATA_PICKING_VALUE_COMPONENT_W"};Jc.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine(Jc.METADATA_PICKING_VALUE_TYPE,"float",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_STRING,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_X,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_Y,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_Z,"0.0",pe.FRAGMENT),i.addDefine(Jc.METADATA_PICKING_VALUE_COMPONENT_W,"0.0",pe.FRAGMENT),i.addFunction("metadataPickingStage","void metadataPickingStage(Metadata metadata, MetadataClass metadataClass, inout vec4 metadataValues)",pe.FRAGMENT),i.addFunctionLines("metadataPickingStage",[`${Jc.METADATA_PICKING_VALUE_TYPE} value = ${Jc.METADATA_PICKING_VALUE_TYPE}(${Jc.METADATA_PICKING_VALUE_STRING});`,`metadataValues.x = ${Jc.METADATA_PICKING_VALUE_COMPONENT_X};`,`metadataValues.y = ${Jc.METADATA_PICKING_VALUE_COMPONENT_Y};`,`metadataValues.z = ${Jc.METADATA_PICKING_VALUE_COMPONENT_Z};`,`metadataValues.w = ${Jc.METADATA_PICKING_VALUE_COMPONENT_W};`],pe.FRAGMENT)};var Su=Jc;var ZO=`void morphTargetsStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + attributes.positionMC = getMorphedPosition(positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = getMorphedNormal(normalMC); + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = getMorphedTangent(tangentMC); + #endif +}`;var Fa={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};Fa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,pe.VERTEX),Y5e(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,u=c.length;for(let f=0;f<u;f++){let d=c[f],p=d.semantic;p!==Tt.POSITION&&p!==Tt.NORMAL&&p!==Tt.TANGENT||(G5e(e,d,e.attributeIndex,a),e.attributeIndex++)}}X5e(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,pe.VERTEX),n.addVertexLines(ZO);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=yt(s,e.uniformMap)};var H5e={attributeString:void 0,functionId:void 0};function G5e(e,t,n,i){let o=e.shaderBuilder;W5e(e,t,n);let r=j5e(t,H5e);q5e(o,r,i)}function W5e(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:on.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function j5e(e,t){switch(e.semantic){case Tt.POSITION:t.attributeString="Position",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_POSITION;break;case Tt.NORMAL:t.attributeString="Normal",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Tt.TANGENT:t.attributeString="Tangent",t.functionId=Fa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function q5e(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function Y5e(e){e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_POSITION,Fa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_POSITION,["vec3 morphedPosition = position;"]),e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,Fa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,["vec3 morphedNormal = normal;"]),e.addFunction(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,Fa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,pe.VERTEX),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,["vec3 morphedTangent = tangent;"])}function X5e(e){e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_POSITION,["return morphedPosition;"]),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_NORMAL,["return morphedNormal;"]),e.addFunctionLines(Fa.FUNCTION_ID_GET_MORPHED_TANGENT,["return morphedTangent;"])}var $O=Fa;var fce={name:"PickingPipelineStage"};fce.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)K5e(e,t,a,i);else if(l(a))Z5e(e,i);else{let c=dce(e),u=i.createPickId(c);s._pipelineResources.push(u),s._pickIds.push(u),r.addUniform("vec4","czm_pickColor",pe.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return u.color},e.pickId="czm_pickColor"}};function dce(e,t){let n=e.model;if(l(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(lr.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,l(t)&&(o.instanceId=t),o}function K5e(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=Kt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Kt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",pe.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function Z5e(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let d=0;d<n;d++){let p=dce(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;o[d*4+0]=H.floatToByte(m.red),o[d*4+1]=H.floatToByte(m.green),o[d*4+2]=H.floatToByte(m.blue),o[d*4+3]=H.floatToByte(m.alpha)}r._pickIds=i;let a=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.statistics.addBuffer(a,!1),s.push(a);let u={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(u);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,pe.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var QO=fce;var $5e={ADD:0,REPLACE:1},Go=Object.freeze($5e);var JO=`float getPointSizeFromAttenuation(vec3 positionEC) { + // Variables are packed into a single vector to minimize gl.uniformXXX() calls + float pointSize = model_pointCloudParameters.x; + float geometricError = model_pointCloudParameters.y; + float depthMultiplier = model_pointCloudParameters.z; + + float depth = -positionEC.z; + return min((geometricError / depth) * depthMultiplier, pointSize); +} + +#ifdef HAS_POINT_CLOUD_SHOW_STYLE +float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#endif + +#ifdef HAS_POINT_CLOUD_COLOR_STYLE +vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); +} +#endif + +#ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#elif defined(HAS_POINT_CLOUD_ATTENUATION) +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + return getPointSizeFromAttenuation(v_positionEC); +} +#endif + +#ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING +float pointCloudBackFaceCullingStage() { + #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) + // This needs to be computed in eye coordinates so we can't use attributes.normalMC + return step(-v_normalEC.z, 0.0); + #else + return 1.0; + #endif +} +#endif`;var Q5e=new oe,mce={name:"PointCloudStylingPipelineStage"};mce.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,u=!l(a)&&c;if(l(r)&&!u){let x=n6e(a),b=i6e(r,x);o6e(i,b);let C=r6e(b).indexOf("normalMC")>=0,A=Kt.getAttributeBySemantic(t,Tt.NORMAL);if(C&&!A)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,pe.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=ve.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,pe.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,pe.VERTEX);let d,p,g;lr.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===Go.ADD),i.addUniform("vec4","model_pointCloudParameters",pe.VERTEX),i.addVertexLines(JO);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=Q5e,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=J5e(e,t,f,d);x.y=T*f.geometricErrorScale;let C=n.context,A=n.camera.frustum,E;return n.mode===ne.SCENE2D||A instanceof rn?E=Number.POSITIVE_INFINITY:E=C.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=E,p&&(x.w=d.tileset.timeSinceLoad),x}};var hce=new h;function J5e(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Kt.getAttributeBySemantic(t,Tt.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,hce);a=F.multiplyByPointAsVector(s,a,hce);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var e6e={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},t6e={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function n6e(e){let t=Ge(t6e);if(!l(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var JW="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function i6e(e,t){let n=e6e,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${JW})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${JW})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${JW})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function o6e(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,pe.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,pe.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,pe.VERTEX),e.addVertexLines(o))}function ej(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function r6e(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&ej(t,o),l(n)&&ej(n,o),l(i)&&ej(i,o),o}var eM=mce;var tM=`void primitiveOutlineStage() { + v_outlineCoordinates = a_outlineCoordinates; +} +`;var nM=`void primitiveOutlineStage(inout czm_modelMaterial material) { + if (!model_showOutline) { + return; + } + + float outlineX = + texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; + float outlineY = + texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; + float outlineZ = + texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; + float outlineness = max(outlineX, max(outlineY, outlineZ)); + + material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); +} + +`;var pce={name:"PrimitiveOutlinePipelineStage"};pce.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,pe.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:on.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",pe.FRAGMENT);let a=yb.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",pe.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",pe.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(tM),i.addFragmentLines(nM)};var iM=pce;var _ce={name:"PrimitiveStatisticsPipelineStage",_countGeometry:gce,_count2DPositions:yce,_countMorphTargetAttributes:xce,_countMaterialTextures:bce,_countFeatureIdTextures:Tce,_countBinaryMetadata:Cce};_ce.process=function(e,t,n){let i=e.model,o=i.statistics;gce(o,t),yce(o,e.runtimePrimitive),xce(o,t),bce(o,t.material),Tce(o,t.featureIds),Cce(o,i)};function gce(e,t){let n=l(t.indices)?t.indices.count:Kt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Me.POINTS?e.pointsLength+=n:Me.isTriangles(i)&&(e.trianglesLength+=s6e(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let u=o[c];if(l(u.buffer)){let f=l(u.typedArray);e.addBuffer(u.buffer,f)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function s6e(e,t){switch(e){case Me.TRIANGLES:return t/3;case Me.TRIANGLE_STRIP:case Me.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function yce(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function xce(e,t){let n=t.morphTargets;if(!l(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let u=s[c];l(u.buffer)&&e.addBuffer(u.buffer,i)}}}function bce(e,t){let n=a6e(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function a6e(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function Tce(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof xn.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function Cce(e,t){let n=t.structuralMetadata;l(n)&&(c6e(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function c6e(e,t){let n=t.propertyTextures;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].textureReader;l(u.texture)&&e.addTexture(u.texture)}}}var oM=_ce;var l6e=new F,u6e=new F,Ace={name:"SceneMode2DPipelineStage"};Ace.process=function(e,t,n){let i=Kt.getAttributeBySemantic(t,Tt.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,l6e),u=h6e(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=u;let d=e.runtimeNode.node.instances;if(l(d))return;if(l(i.typedArray)){let x=_6e(i,c,u,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,pe.VERTEX),o.addUniform("mat4","u_modelView2D",pe.VERTEX);let p=F.fromTranslation(u.center,new F),g=n.context,m={u_modelView2D:function(){return F.multiplyTransformation(g.uniformState.view,p,u6e)}};e.uniformMap=yt(m,e.uniformMap)};var f6e=new h,d6e=new h;function h6e(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,f6e),o=Ui.computeActualEllipsoidPosition(n,i,i),r=F.multiplyByPoint(t,e.positionMax,d6e),s=Ui.computeActualEllipsoidPosition(n,r,r);return se.fromCornerPoints(o,s,new se)}var Ece=new h;function m6e(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,Ece),c=h.multiplyComponents(a,r,a),u=h.add(c,o,c);i[s]=u.x,i[s+1]=u.y,i[s+2]=u.z}return i}function p6e(e,t,n,i){let o;l(e.quantization)?o=m6e(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let u=h.fromArray(o,c,Ece);if(isNaN(u.x)||isNaN(u.y)||isNaN(u.z))continue;let f=F.multiplyByPoint(t,u,u),d=Ui.computeActualEllipsoidPosition(i,f,f),p=h.subtract(d,n,d);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function _6e(e,t,n,i){let o=Ge(i);o.mode=ne.COLUMBUS_VIEW;let r=n.center,s=p6e(e,t,r,o),a=_t.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var rM=Ace;var sM=`void skinningStage(inout ProcessedAttributes attributes) +{ + mat4 skinningMatrix = getSkinningMatrix(); + mat3 skinningMatrixMat3 = mat3(skinningMatrix); + + vec4 positionMC = vec4(attributes.positionMC, 1.0); + attributes.positionMC = vec3(skinningMatrix * positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = skinningMatrixMat3 * normalMC; + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = skinningMatrixMat3 * tangentMC; + #endif +}`;var Cb={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};Cb.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,pe.VERTEX),y6e(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,pe.VERTEX),n.addVertexLines(sM);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=yt(r,e.uniformMap)};function g6e(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===Tt.JOINTS||r.semantic===Tt.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function y6e(e,t){e.addFunction(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,Cb.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,pe.VERTEX),e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,["mat4 skinnedMatrix = mat4(0);"]);let i,o,r=["x","y","z","w"],s=g6e(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],u=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,[u])}e.addFunctionLines(Cb.FUNCTION_ID_GET_SKINNING_MATRIX,["return skinnedMatrix;"])}var aM=Cb;var cM=`void verticalExaggerationStage( + inout ProcessedAttributes attributes +) { + // Compute the distance from the camera to the local center of curvature. + vec4 vertexPositionENU = czm_modelToEnu * vec4(attributes.positionMC, 1.0); + vec2 vertexAzimuth = normalize(vertexPositionENU.xy); + // Curvature = 1 / radius of curvature. + float azimuthalCurvature = dot(vertexAzimuth * vertexAzimuth, czm_eyeEllipsoidCurvature); + float eyeToCenter = 1.0 / azimuthalCurvature + czm_eyeHeight; + + // Compute the approximate ellipsoid normal at the vertex position. + // Uses a circular approximation for the Earth curvature along the geodesic. + vec3 vertexPositionEC = (czm_modelView * vec4(attributes.positionMC, 1.0)).xyz; + vec3 centerToVertex = eyeToCenter * czm_eyeEllipsoidNormalEC + vertexPositionEC; + vec3 vertexNormal = normalize(centerToVertex); + + // Estimate the (sine of the) angle between the camera direction and the vertex normal + float verticalDistance = dot(vertexPositionEC, czm_eyeEllipsoidNormalEC); + float horizontalDistance = length(vertexPositionEC - verticalDistance * czm_eyeEllipsoidNormalEC); + float sinTheta = horizontalDistance / (eyeToCenter + verticalDistance); + bool isSmallAngle = clamp(sinTheta, 0.0, 0.05) == sinTheta; + + // Approximate the change in height above the ellipsoid, from camera to vertex position. + float exactVersine = 1.0 - dot(czm_eyeEllipsoidNormalEC, vertexNormal); + float smallAngleVersine = 0.5 * sinTheta * sinTheta; + float versine = isSmallAngle ? smallAngleVersine : exactVersine; + float dHeight = dot(vertexPositionEC, vertexNormal) - eyeToCenter * versine; + float vertexHeight = czm_eyeHeight + dHeight; + + // Transform the approximate vertex normal to model coordinates. + vec3 vertexNormalMC = (czm_inverseModelView * vec4(vertexNormal, 0.0)).xyz; + vertexNormalMC = normalize(vertexNormalMC); + + // Compute the exaggeration and apply it along the approximate vertex normal. + float stretch = u_verticalExaggerationAndRelativeHeight.x; + float shift = u_verticalExaggerationAndRelativeHeight.y; + float exaggeration = (vertexHeight - shift) * (stretch - 1.0); + attributes.positionMC += exaggeration * vertexNormalMC; +} +`;var Sce={name:"VerticalExaggerationPipelineStage"},x6e=new z;Sce.process=function(e,t,n){let{shaderBuilder:i,uniformMap:o}=e;i.addVertexLines(cM),i.addDefine("HAS_VERTICAL_EXAGGERATION",void 0,pe.VERTEX),i.addUniform("vec2","u_verticalExaggerationAndRelativeHeight",pe.VERTEX),o.u_verticalExaggerationAndRelativeHeight=function(){return z.fromElements(n.verticalExaggeration,n.verticalExaggerationRelativeHeight,x6e)}};var lM=Sce;var tj={};function b6e(e){let t=Ne.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function T6e(e,t){let n=t.length,i=Ne.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function C6e(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function A6e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],u=t[a+1],f=t[a+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=c}return r}function E6e(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function S6e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let u=t[c+1],f=t[c+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=a}return r}tj.createWireframeIndices=function(e,t,n){let i=l(n);if(e===Me.TRIANGLES)return i?T6e(t,n):b6e(t);if(e===Me.TRIANGLE_STRIP)return i?A6e(t,n):C6e(t);if(e===Me.TRIANGLE_FAN)return i?S6e(t,n):E6e(t)};tj.getWireframeIndicesCount=function(e,t){return e===Me.TRIANGLES?t*2:e===Me.TRIANGLE_STRIP||e===Me.TRIANGLE_FAN?2+(t-2)*4:t};var QA=tj;var vce={name:"WireframePipelineStage"};vce.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,pe.FRAGMENT);let o=e.model,r=v6e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r,o.statistics.addBuffer(r,!1);let a=e.primitiveType,c=e.count;e.primitiveType=Me.LINES,e.count=QA.getWireframeIndicesCount(a,c)};function v6e(e,t,n){let o=Kt.getAttributeBySemantic(e,Tt.POSITION).count,r=n.context.webgl2,s;if(l(t)){let f=t.buffer,d=t.count;l(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Ne.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=QA.createWireframeIndices(a,o,s),u=Ne.fromSizeInBytes(c.BYTES_PER_ELEMENT);return _t.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:u})}var uM=vce;function wce(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}wce.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,u=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=e.verticalExaggeration!==1&&o.hasVerticalExaggeration,d=l(n.morphTargets)&&n.morphTargets.length>0,p=l(i.skin),g=l(r),x=!(g&&l(r.fragmentShaderText))||r.mode!==m_.REPLACE_MATERIAL,b=Kt.hasQuantizedAttributes(n.attributes),T=o.debugWireframe&&Me.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),C=o.pointCloudShading,A=l(C)&&C.attenuation,E=l(C)&&C.backFaceCulling,v=n.primitiveType===Me.POINTS&&(l(s)||A||E),D=o._enableShowOutline&&l(n.outlineCoordinates),O=w6e(o,i,n),R=l(o.classificationType);u&&t.push(rM),t.push(jO),T&&t.push(uM),R&&t.push(IO),d&&t.push($O),p&&t.push(aM),v&&t.push(eM),b&&t.push(zO),x&&t.push(KO),t.push(Sy),t.push(Mf),t.push(Su),O.hasPropertyTable&&(t.push(wy),t.push(DO),t.push(OO)),f&&t.push(lM),g&&t.push(VO),t.push(YO),o.allowPicking&&t.push(QO),D&&t.push(iM),t.push(wO),t.push(oM)};function w6e(e,t,n){let i;return l(t.instances)&&(i=Kt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Kt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var fM=wce;function nj(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],D6e(this)}Object.defineProperties(nj.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function D6e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let u=i[c].index,f=r[u];s.push(f);let d=n[c],p=Dce(f,d,new F);a.push(p)}}function Dce(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}nj.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=Dce(i,o,e[n])}};var dM=nj;function I6e(){this.pass=void 0,this.alphaCutoff=void 0}var hM=I6e;function P6e(e){this.shaderBuilder=new xx,this.model=e,this.uniformMap={},this.alphaOptions=new hM,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var mM=P6e;var pM=`void silhouetteStage(inout vec4 color) { + if(model_silhouettePass) { + color = czm_gammaCorrect(model_silhouetteColor); + } +}`;var _M=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { + #ifdef HAS_NORMALS + if(model_silhouettePass) { + vec3 normal = normalize(czm_normal3D * attributes.normalMC); + normal.x *= czm_projection[0][0]; + normal.y *= czm_projection[1][1]; + positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; + } + #endif +} +`;var cz={name:"ModelSilhouettePipelineStage"};cz.silhouettesLength=0;cz.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++cz.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,pe.BOTH),i.addVertexLines(_M),i.addFragmentLines(pM),i.addUniform("vec4","model_silhouetteColor",pe.FRAGMENT),i.addUniform("float","model_silhouetteSize",pe.VERTEX),i.addUniform("bool","model_silhouettePass",pe.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=yt(o,e.uniformMap),e.hasSilhouette=!0};var gM=cz;var yM=`void modelSplitterStage() +{ + // Don't split when rendering the shadow map, because it is rendered from + // the perspective of a totally different camera. +#ifndef SHADOW_MAP + if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var lz={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};lz.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,pe.FRAGMENT),i.addFragmentLines(yM);let o={};i.addUniform("float",lz.SPLIT_DIRECTION_UNIFORM_NAME,pe.FRAGMENT),o[lz.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=yt(o,e.uniformMap)};var xM=lz;function R6e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var bM=R6e;function O6e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,ym.UNLIT)}var TM=O6e;function M6e(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:Kt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Kt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=se.fromCornerPoints(this.positionMin,this.positionMax,new se),this.lightingOptions=new TM,this.pickId=void 0}var CM=M6e;function oj(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==Vn.CESIUM_3D_TILE,this._classifies3DTiles=o!==Vn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],B6e(this)}function L6e(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:ft.KEEP,zFail:ft.DECREMENT_WRAP,zPass:ft.KEEP},backFunction:e,backOperation:{fail:ft.KEEP,zFail:ft.INCREMENT_WRAP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},depthMask:!1}}var N6e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND},F6e={stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},backFunction:Un.NOT_EQUAL,backOperation:{fail:ft.ZERO,zFail:ft.ZERO,zPass:ft.ZERO},reference:0,mask:Vt.CLASSIFICATION_MASK},stencilMask:Vt.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},Rce=[];function B6e(e){let t=e._command,n=Rce;if(e._useDebugWireframe){t.pass=ve.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=AM(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=ve.TERRAIN_CLASSIFICATION,s=ij(t,r),a=Ice(t,r);n.length=0,n.push(s,a),e._commandListTerrain=AM(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=Pce(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=ve.CESIUM_3D_TILE_CLASSIFICATION,s=ij(t,r),a=Ice(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=AM(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=Pce(e,n,e._commandList3DTilesPicking))}}function AM(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let u=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=Ze.shallowClone(p);g.count=u,g.offset=f,n.push(g)}}return n}function ij(e,t){let n=Ze.shallowClone(e);n.cull=!1,n.pass=t;let i=t===ve.TERRAIN_CLASSIFICATION?Un.ALWAYS:Un.EQUAL,o=L6e(i);return n.renderState=Ve.fromCache(o),n}function Ice(e,t){let n=Ze.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(N6e),n}var k6e=[];function Pce(e,t,n){let i=Ve.fromCache(F6e),o=t[0],r=t[1],s=Ze.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=Ze.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=k6e;return c.length=0,c.push(s,a),AM(e,c,n)}Object.defineProperties(oj.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=se.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});oj.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=ij(this._command,o),s=Rce;s.length=0,s.push(r),this._commandListIgnoreShow=AM(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var EM=oj;function uz(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o;let r=t.pass===ve.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,u=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=se.clone(t.boundingVolume),this._modelMatrix2D=new F,this._boundingVolume2D=new se,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=u,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,V6e(this)}function p_(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}p_.clone=function(e){return new p_({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function V6e(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;e._originalCommand=new p_({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new p_({command:q6e(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new p_({command:Q6e(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new p_({command:J6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new p_({command:Y6e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new p_({command:X6e(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(uz.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=se.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,z6e(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,H6e(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,G6e(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,W6e(this))}}});function U6e(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=se.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function z6e(e){let t=e.shadows,n=yn.castShadows(t),i=yn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function H6e(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=Ge(r.renderState,!0);s.cull.enabled=t,r.renderState=Ve.fromCache(s)}}}function G6e(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=Ge(r.renderState,!0);s.cull.face=t,r.renderState=Ve.fromCache(s)}}}function W6e(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}uz.prototype.pushCommands=function(e,t){let n=Oce(this,e);n&&!this._has2DCommands&&(j6e(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(U6e(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==th.ALL_OPAQUE&&eE(t,this._translucentCommand,n),i===th.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||eE(o._backfaceCommands,this._skipLodBackfaceCommand,n),K6e(this,r,n),eE(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){eE(t,this._silhouetteModelCommand,n);return}return eE(t,this._originalCommand,n),t}};uz.prototype.pushSilhouetteCommands=function(e,t){let n=Oce(this,e);return eE(t,this._silhouetteColorCommand,n),t};function eE(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function Oce(e,t){if(t.mode!==ne.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*P.PI;return o<s&&r>s||o<-s&&r>-s}function JA(e,t){if(!l(t))return;let n=p_.clone(t),i=Ze.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function j6e(e){JA(e,e._originalCommand),JA(e,e._translucentCommand),JA(e,e._skipLodBackfaceCommand),JA(e,e._skipLodStencilCommand),JA(e,e._silhouetteModelCommand),JA(e,e._silhouetteColorCommand)}function q6e(e){let t=Ze.shallowClone(e);t.pass=ve.TRANSLUCENT;let n=Ge(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=un.ALPHA_BLEND,t.renderState=Ve.fromCache(n),t}function Y6e(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=Ge(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(o),i}function X6e(e,t){let n=t._silhouetteId%255,i=Ze.shallowClone(e),o=Ge(e.renderState,!0);o.cull.enabled=!1,(e.pass===ve.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=ve.TRANSLUCENT,o.depthMask=!1,o.blending=un.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP}};let s=Ge(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ve.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function K6e(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=Z6e(o);if(r!==s){let a=$6e(r),c=Ge(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function Z6e(e){return(e.renderState.stencilTest.reference&Vt.SKIP_LOD_MASK)>>>Vt.SKIP_LOD_BIT_SHIFT}function $6e(e){return Vt.CESIUM_3D_TILE_MASK|e<<Vt.SKIP_LOD_BIT_SHIFT}function Q6e(e){let t=Ze.shallowClone(e),n=Ge(e.renderState,!0);n.cull.enabled=!0,n.cull.face=gi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=Ge(t.uniformMap),o=new z(5,5);return i.u_polygonOffset=function(){return o},t.renderState=Ve.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function J6e(e){let t=Ze.shallowClone(e),n=Ge(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Vt.SKIP_LOD_MASK,i.reference=Vt.CESIUM_3D_TILE_MASK,i.frontFunction=Un.GREATER_OR_EQUAL,i.frontOperation.zPass=ft.REPLACE,i.backFunction=Un.GREATER_OR_EQUAL,i.backOperation.zPass=ft.REPLACE,n.stencilMask=Vt.CESIUM_3D_TILE_MASK|Vt.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var SM=uz;var vM=`precision highp float; + +czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { + czm_modelVertexOutput vsOutput; + vsOutput.positionMC = positionMC; + vsOutput.pointSize = 1.0; + return vsOutput; +} + +void main() +{ + // Initialize the attributes struct with all + // attributes except quantized ones. + ProcessedAttributes attributes; + initializeAttributes(attributes); + + // Dequantize the quantized ones and add them to the + // attributes struct. + #ifdef USE_DEQUANTIZATION + dequantizationStage(attributes); + #endif + + #ifdef HAS_MORPH_TARGETS + morphTargetsStage(attributes); + #endif + + #ifdef HAS_SKINNING + skinningStage(attributes); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(); + #endif + + // Compute the bitangent according to the formula in the glTF spec. + // Normal and tangents can be affected by morphing and skinning, so + // the bitangent should not be computed until their values are finalized. + #ifdef HAS_BITANGENTS + attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); + #endif + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + SelectedFeature feature; + selectedFeatureIdStage(feature, featureIds); + // Handle any show properties that come from the style. + cpuStylingStage(attributes.positionMC, feature); + #endif + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + // The scene mode 2D pipeline stage and instancing stage add a different + // model view matrix to accurately project the model to 2D. However, the + // output positions and normals should be transformed by the 3D matrices + // to keep the data the same for the fragment shader. + mat4 modelView = czm_modelView3D; + mat3 normal = czm_normal3D; + #else + // These are used for individual model projection because they will + // automatically change based on the scene mode. + mat4 modelView = czm_modelView; + mat3 normal = czm_normal; + #endif + + // Update the position for this instance in place + #ifdef HAS_INSTANCING + + // The legacy instance stage is used when rendering i3dm models that + // encode instances transforms in world space, as opposed to glTF models + // that use EXT_mesh_gpu_instancing, where instance transforms are encoded + // in object space. + #ifdef USE_LEGACY_INSTANCING + mat4 instanceModelView; + mat3 instanceModelViewInverseTranspose; + + legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); + + modelView = instanceModelView; + normal = instanceModelViewInverseTranspose; + #else + instancingStage(attributes); + #endif + + #ifdef USE_PICKING + v_pickColor = a_pickColor; + #endif + + #endif + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_VERTICAL_EXAGGERATION + verticalExaggerationStage(attributes); + #endif + + #ifdef HAS_CUSTOM_VERTEX_SHADER + czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); + customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + // Compute the final position in each coordinate system needed. + // This returns the value that will be assigned to gl_Position. + vec4 positionClip = geometryStage(attributes, modelView, normal); + + // This must go after the geometry stage as it needs v_positionWC + #ifdef HAS_ATMOSPHERE + atmosphereStage(attributes); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(attributes); + #endif + + #ifdef HAS_SILHOUETTE + silhouetteStage(attributes, positionClip); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + float show = pointCloudShowStylingStage(attributes, metadata); + #else + float show = 1.0; + #endif + + #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING + show *= pointCloudBackFaceCullingStage(); + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); + #endif + + #ifdef PRIMITIVE_TYPE_POINTS + #ifdef HAS_CUSTOM_VERTEX_SHADER + gl_PointSize = vsOutput.pointSize; + #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) + gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); + #else + gl_PointSize = 1.0; + #endif + + gl_PointSize *= show; + #endif + + gl_Position = show * positionClip; +} +`;var wM=` +precision highp float; +czm_modelMaterial defaultModelMaterial() +{ + czm_modelMaterial material; + material.diffuse = vec3(0.0); + material.specular = vec3(1.0); + material.roughness = 1.0; + material.occlusion = 1.0; + material.normalEC = vec3(0.0, 0.0, 1.0); + material.emissive = vec3(0.0); + material.alpha = 1.0; + return material; +} + +vec4 handleAlpha(vec3 color, float alpha) +{ + #ifdef ALPHA_MODE_MASK + if (alpha < u_alphaCutoff) { + discard; + } + #endif + + return vec4(color, alpha); +} + +SelectedFeature selectedFeature; + +void main() +{ + #ifdef HAS_MODEL_SPLITTER + modelSplitterStage(); + #endif + + czm_modelMaterial material = defaultModelMaterial(); + + ProcessedAttributes attributes; + geometryStage(attributes); + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #ifdef HAS_SELECTED_FEATURE_ID + selectedFeatureIdStage(selectedFeature, featureIds); + #endif + + #ifndef CUSTOM_SHADER_REPLACE_MATERIAL + materialStage(material, attributes, selectedFeature); + #endif + + #ifdef HAS_CUSTOM_FRAGMENT_SHADER + customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + lightingStage(material, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + cpuStylingStage(material, selectedFeature); + #endif + + #ifdef HAS_MODEL_COLOR + modelColorStage(material); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(material); + #endif + + vec4 color = handleAlpha(material.diffuse, material.alpha); + + // When not picking metadata END + //======================================================================== + #else + //======================================================================== + // When picking metadata START + + vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0); + metadataPickingStage(metadata, metadataClass, metadataValues); + vec4 color = metadataValues; + + #endif + // When picking metadata END + //======================================================================== + + #ifdef HAS_CLIPPING_PLANES + modelClippingPlanesStage(color); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(); + #endif + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) + silhouetteStage(color); + #endif + + #ifdef HAS_ATMOSPHERE + atmosphereStage(color, attributes); + #endif + + #endif + // When not picking metadata END + //======================================================================== + + out_FragColor = color; +} +`;function Mce(){}Mce.buildModelDrawCommand=function(e,t){let n=e.shaderBuilder,i=e9e(e,n,t),o=t9e(e,i,t),r=e.model;return l(r.classificationType)?new EM({primitiveRenderResources:e,command:o}):new SM({primitiveRenderResources:e,command:o})};function e9e(e,t,n){t.addVertexLines(vM),t.addFragmentLines(wM);let i=e.model,o=t.buildShaderProgram(n.context);return i._pipelineResources.push(o),o}function t9e(e,t,n){let i=n9e(e),o=new ti({context:n.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=e.alphaOptions.pass,a=r.sceneGraph,c=n.mode===ne.SCENE3D,u,f;if(!c&&!n.scene3DOnly&&r._projectTo2D)u=F.multiplyTransformation(a._computedModelMatrix,e.runtimeNode.computedTransform,new F),f=e.runtimePrimitive.boundingSphere2D;else{let T=c?a._computedModelMatrix:a._computedModelMatrix2D;u=F.multiplyTransformation(T,e.runtimeNode.computedTransform,new F),f=se.transform(e.boundingSphere,u)}let d=Ge(Ve.fromCache(e.renderStateOptions),!0);d.cull.face=Kt.getCullFace(u,e.primitiveType),d=Ve.fromCache(d);let p=l(r.classificationType),g=p?!1:yn.castShadows(r.shadows),m=p?!1:yn.receiveShadows(r.shadows),x=p?void 0:e.pickId;return new Ze({boundingVolume:f,modelMatrix:u,uniformMap:e.uniformMap,renderState:d,vertexArray:o,shaderProgram:t,cull:r.cull,pass:s,count:e.count,owner:r,pickId:x,pickMetadataAllowed:!0,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:g,receiveShadows:m})}function n9e(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var DM=Mce;function vu(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=F.clone(F.IDENTITY),this._computedModelMatrix2D=F.clone(F.IDENTITY),this._axisCorrectionMatrix=Kt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},i9e(this)}Object.defineProperties(vu.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function i9e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Lce(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let C=0;C<s;C++){let A=r[C],E=new fO({articulation:A,sceneGraph:e}),v=E.name;a[v]=E}let c=t.nodes,u=c.length;e._runtimeNodes=new Array(u);let d=n.nodes.length,p=F.IDENTITY;for(let C=0;C<d;C++){let A=n.nodes[C],E=Nce(e,A,p);e._rootNodes.push(E)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let C=0;C<x;C++){let A=g[C];m.push(new dM({skin:A,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let C=0;C<T;C++){let A=b[C],E=e._runtimeNodes[A],D=c[A].skin.index;E._runtimeSkin=m[D],E.updateJointMatrices()}e.applyArticulations()}function Lce(e,t){let n=e._components,i=e._model;e._computedModelMatrix=F.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=F.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=F.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var o9e=new h;function r9e(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,o9e);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Mt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Mt.ellipsoidTo2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=se.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function Nce(e,t,n){let i=[],o=Kt.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=F.multiplyTransformation(n,o,new F),g=Nce(e,d,p);i.push(g)}let s=new vO({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new fM({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let u=t.name;if(l(u)){let f=e._model,d=new yO(f,s);f._nodesByName[u]=d}return c}var s9e=new h,a9e=new h,c9e=new h,l9e=new h;vu.prototype.buildDrawCommands=function(e){let t=this._model,n=new mM(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,o,r,s;for(o=0;o<i.length;o++)i[o].process(n,t,e);let a=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,s9e),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,a9e);for(o=0;o<this._runtimeNodes.length;o++){let u=this._runtimeNodes[o];if(!l(u))continue;u.configurePipeline();let f=u.pipelineStages,d=new bM(n,u);for(r=0;r<f.length;r++)f[r].process(d,u.node,e);let p=u.computedTransform;for(r=0;r<u.runtimePrimitives.length;r++){let g=u.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new CM(d,g);for(s=0;s<m.length;s++)m[s].process(x,g.primitive,e);g.boundingSphere=se.clone(x.boundingSphere,new se);let b=F.multiplyByPoint(p,x.positionMin,c9e),T=F.multiplyByPoint(p,x.positionMax,l9e);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let C=DM.buildModelDrawCommand(x,e);g.drawCommand=C}}this._boundingSphere=se.fromCornerPoints(a,c,new se),this._boundingSphere=se.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=se.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=se.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};vu.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model,i=e.fog.enabled&&e.fog.renderable;l(n.color)&&t.push(Ey),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(lO),n.isClippingEnabled()&&t.push(mO),n.isClippingPolygonsEnabled()&&t.push(gO),n.hasSilhouette(e)&&t.push(gM),l(n.splitDirection)&&n.splitDirection!==Nr.NONE&&t.push(xM),lr.is3DTiles(n.type)&&t.push(oO),i&&t.push(aO))};vu.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==ne.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};vu.prototype.updateModelMatrix=function(e,t){Lce(this,e),t.mode!==ne.SCENE3D&&r9e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};vu.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function Fce(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let u=t.getChild(c);Fce(e,u,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let u=s[c];i(u,o)}}function fz(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];Fce(e,c,t,n,i)}}var u9e={backFaceCulling:void 0};vu.prototype.updateBackFaceCulling=function(e){let t=u9e;t.backFaceCulling=e,fz(this,!1,f9e,t)};function f9e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var d9e={shadowMode:void 0};vu.prototype.updateShadows=function(e){let t=d9e;t.shadowMode=e,fz(this,!1,h9e,t)};function h9e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var m9e={debugShowBoundingVolume:void 0};vu.prototype.updateShowBoundingVolume=function(e){let t=m9e;t.debugShowBoundingVolume=e,fz(this,!1,p9e,t)};function p9e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var Bce=[],_9e={frameState:void 0,hasSilhouette:void 0};vu.prototype.pushDrawCommands=function(e){let t=Bce;t.length=0;let n=_9e;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,fz(this,!0,g9e,n),e.commandList.push.apply(e.commandList,t)};function g9e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=Bce,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}vu.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];l(r)&&r.setArticulationStage(o,t)};vu.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var IM=vu;function tE(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new Et}Object.defineProperties(tE.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});tE.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};tE.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};tE.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};tE.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var PM=tE;var zce=Vo(tV(),1);var kce={},Ab=Uint32Array.BYTES_PER_ELEMENT;kce.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=Ab;let o=i.getUint32(t,!0);if(o!==1)throw new ce(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=Ab,t+=Ab;let r=i.getUint32(t,!0);if(r===0)throw new ce("Feature table must have a byte length greater than zero");t+=Ab;let s=i.getUint32(t,!0);t+=Ab;let a=i.getUint32(t,!0);t+=Ab;let c=i.getUint32(t,!0);t+=Ab;let u=Mo(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Mo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Jd(u,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!l(m))throw new ce("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(x)&&(x=h.unpack(x));let b=y9e(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=x9e(g);b.positions=T,b.hasPositions=b.hasPositions||l(T)}if(!b.hasPositions)throw new ce("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=T9e(g);b.normals=T,b.hasNormals=b.hasNormals||l(T)}if(!b.hasColors){let T=b9e(g);b.colors=T,b.hasColors=b.hasColors||l(T),b.hasConstantColor=l(b.constantColor),b.isTranslucent=l(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=C9e(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||l(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!l(T))throw new ce("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return l(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function y9e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!l(o)||!l(m)||!l(x))throw new ce("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:yt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function x9e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new ce("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Tt.POSITION,semantic:Tt.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:on.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:on.VEC3}}}function b9e(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:on.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=H.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:s}}}function T9e(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2),{name:Tt.NORMAL,semantic:Tt.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:on.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:on.VEC3}}function C9e(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:Tt.FEATURE_ID,semantic:Tt.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:on.SCALAR}}}var Eb=kce;var A9e=xn.Components,E9e=xn.Scene,S9e=xn.Node,v9e=xn.Primitive,w9e=xn.Attribute,Vce=xn.Quantization,D9e=xn.FeatureIdAttribute,I9e=xn.Material,P9e=xn.MetallicRoughness;function Dy(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=mt.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(Dy.prototype=Object.create(Xi.prototype),Dy.prototype.constructor=Dy);Object.defineProperties(Dy.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Dy.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=Eb.parse(this._arrayBuffer,this._byteOffset),this._state=mt.PROCESSING,this._promise=Promise.resolve(this)};Dy.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===mt.READY)return!0;if(this._state===mt.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=R9e(this,e.context)}return!1};function R9e(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=Zp.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&O9e(e,i,r),G9e(e,t),e._state=mt.READY,e}).catch(function(r){e.unload(),e._state=mt.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function O9e(e,t,n){e._state=mt.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:Tt.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,u=h.fromElements(c,c,c),f=h.unpack(a.minValues),d=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=d,o.quantizedVolumeOffset=f,o.quantizedVolumeScale=u,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=on.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:Tt.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=X.UNSIGNED_BYTE,o.quantizedType=on.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:Tt.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isTranslucent:!1}),l(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:Tt.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:on.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let u=c.data;r[a]={byteOffset:u.byteOffset,type:M9e(u.componentsPerAttribute),componentType:L9e(u.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function M9e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function L9e(e){switch(e){case te.BYTE:return"BYTE";case te.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case te.SHORT:return"SHORT";case te.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case te.INT:return"INT";case te.UNSIGNED_INT:return"UNSIGNED_INT";case te.DOUBLE:return"DOUBLE";case te.FLOAT:return"FLOAT"}}function RM(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new Vce,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new Vce;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new w9e;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=y(t.normalized,!1),r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=Mn.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=H.pack(t.constantColor,a)}else{let a=_t.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===Tt.POSITION&&s&&(r.typedArray=i),r}var Uce,dz;function N9e(e){if(!l(dz)){Uce=new zce.default(0),dz=new Array(e);for(let t=0;t<e;++t)dz[t]=Uce.random()}return dz}var F9e=new h,B9e=new h,k9e=new h;function V9e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=N9e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,F9e),u=h.fromElements(a,a,a,B9e),f,d,p;if(e.isQuantized)c=h.ZERO,u=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,k9e),h.minimumByComponent(c,p,c),h.maximumByComponent(u,p,u);e.min=h.clone(c),e.max=h.clone(u)}var U9e={name:Tt.COLOR,semantic:Tt.COLOR,setIndex:0,constantColor:H.DARKGRAY,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:!1};function z9e(e,t,n){let i=[],o,r=t.positions;return l(r)&&(V9e(r),o=RM(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=RM(e,t.normals,n),i.push(o)),l(t.colors)?(o=RM(e,t.colors,n),i.push(o)):(o=RM(e,U9e,n),i.push(o)),l(t.batchIds)&&(o=RM(e,t.batchIds,n),i.push(o)),i}function H9e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!l(e.batchIds);if(l(o)||e.hasDracoBatchTable){let s=y(n,i);return u_({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new qs({schema:{},propertyTables:[]})}function G9e(e,t){let n=e._parsedContent,i=new P9e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new I9e;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=pm.BLEND);let s=!l(n.normals);o.unlit=s;let a=new v9e;if(a.attributes=z9e(e,n,t),a.primitiveType=Me.POINTS,a.material=o,l(n.batchIds)){let g=new D9e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new S9e;c.index=0,c.primitives=[a];let u=new E9e;u.nodes=[c],u.upAxis=Oo.Z,u.forwardAxis=Oo.X;let f=new A9e;f.scene=u,f.nodes=[c];let d=[];f.structuralMetadata=H9e(n,d),d.length>0&&W9e(e,a,d,t),l(n.rtcCenter)&&(f.transform=F.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=F.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function W9e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=_t.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}Dy.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var OM=Dy;var j9e=new h,q9e=new h,Y9e=new h,X9e=new F,K9e=new F,Z9e=new F,$9e=new fe,Q9e=new se;function nE(e,t,n,i,o,r,s){if(!e._ready||n.mode===ne.MORPHING)return;let a=Number.MAX_VALUE,c=e.sceneGraph,u=c._runtimeNodes;for(let f=0;f<u.length;f++){let d=u[f],p=d.node,g=F.clone(d.computedTransform,X9e),m=F.clone(c.computedModelMatrix,K9e),x=p.instances;l(x)&&x.transformInWorldSpace&&(m=F.multiplyTransformation(e.modelMatrix,c.components.transform,m),g=F.multiplyTransformation(c.axisCorrectionMatrix,d.computedTransform,g));let b=F.multiplyTransformation(m,g,Z9e);n.mode!==ne.SCENE3D&&(b=Mt.basisTo2D(n.mapProjection,b,b));let T=[];if(l(x)){let A=x.attributes[0].count,E=x.attributes[0].componentDatatype,v=12,D=d.transformsTypedArray;if(!l(D)){let O=d.instancingTransformsBuffer;l(O)&&n.context.webgl2&&(D=X.createTypedArray(E,A*v),O.getBufferData(D))}if(l(D))for(let O=0;O<A;O++){let R=O*v,M=new F(D[R],D[R+1],D[R+2],D[R+3],D[R+4],D[R+5],D[R+6],D[R+7],D[R+8],D[R+9],D[R+10],D[R+11],0,0,0,1);x.transformInWorldSpace?(F.multiplyTransformation(M,g,M),F.multiplyTransformation(m,M,M)):F.multiplyTransformation(M,b,M),T.push(M)}}T.length===0&&T.push(b);let C=d.runtimePrimitives.length;for(let A=0;A<C;A++){let E=d.runtimePrimitives[A],v=E.primitive;if(l(E.boundingSphere)&&!l(x)){let q=se.transform(E.boundingSphere,b,Q9e),J=$n.raySphere(t,q);if(!l(J))continue}let D=Kt.getAttributeBySemantic(v,Tt.POSITION),O=D.byteOffset,R=D.byteStride,M=D.count;if(!l(v.indices))continue;let N=v.indices.typedArray;if(!l(N)){let q=v.indices.buffer,J=v.indices.count,j=v.indices.indexDatatype;l(q)&&n.context.webgl2&&(j===Ne.UNSIGNED_BYTE?N=new Uint8Array(J):j===Ne.UNSIGNED_SHORT?N=new Uint16Array(J):j===Ne.UNSIGNED_INT&&(N=new Uint32Array(J)),q.getBufferData(N))}let _=D.typedArray,S=D.componentDatatype,w=D.type,I=D.quantization;l(I)&&(S=D.quantization.componentDatatype,w=D.quantization.type);let L=on.getNumberOfComponents(w),B=X.getSizeInBytes(S),U=!l(_)&&l(R)&&R!==L*B,V=L,G=0;U&&(V=R/B,G=O/B);let k=M*V;if(!l(_)){let q=D.buffer;l(q)&&n.context.webgl2&&(_=X.createTypedArray(S,k),q.getBufferData(_,U?0:O,0,k)),I&&D.normalized&&(_=Mn.dequantize(_,S,w,M))}if(!l(N)||!l(_))return;r=y(r,ee.default),i=y(i,1),o=y(o,0);let W=N.length;for(let q=0;q<W;q+=3){let J=N[q],j=N[q+1],K=N[q+2];for(let Q of T){let de=rj(_,J,G,V,I,Q,i,o,r,j9e),ye=rj(_,j,G,V,I,Q,i,o,r,q9e),ae=rj(_,K,G,V,I,Q,i,o,r,Y9e),_e=$n.rayTriangleParametric(t,de,ye,ae,y(e.backFaceCulling,!0));l(_e)&&_e<a&&_e>=0&&(a=_e)}}}}if(a!==Number.MAX_VALUE){if(s=mn.getPoint(t,a,s),n.mode!==ne.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let f=n.mapProjection,d=f.ellipsoid,p=f.unproject(s,$9e);d.cartographicToCartesian(p,s)}return s}}function rj(e,t,n,i,o,r,s,a,c,u){let f=n+t*i;if(u.x=e[f],u.y=e[f+1],u.z=e[f+2],l(o))if(o.octEncoded){if(u=Mn.octDecodeInRange(u,o.normalizationRange,u),o.octEncodedZXY){let d=u.x;u.x=u.z,u.z=u.y,u.y=d}}else u=h.multiplyComponents(u,o.quantizedVolumeStepSize,u),u=h.add(u,o.quantizedVolumeOffset,u);return u=F.multiplyByPoint(r,u,u),s!==1&&Cr.getPosition(u,c,s,a,u),u}function ao(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,lr.GLTF),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new eO(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=H.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,dc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,H.RED);this._silhouetteColor=H.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,ve.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new se,this._initialRadius=void 0,this._heightReference=y(e.heightReference,Ye.NONE),this._heightDirty=this._heightReference!==Ye.NONE,this._removeUpdateHeightCallback=void 0,this._enableVerticalExaggeration=y(e.enableVerticalExaggeration,!0),this._hasVerticalExaggeration=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new gm(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?_s.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?Kd.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new qx,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._environmentMapManager=void 0;let c=new i_(e.environmentMapOptions);i_.setOwner(c,this,"_environmentMapManager"),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,yn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===lr.GLTF&&xt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let u=e.credit;typeof u=="string"&&(u=new vt(u)),this._credits=[],this._credit=u,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,Nr.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,H.BLACK),this._classificationType=e.classificationType,this._statistics=new PM,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new me,this._readyEvent=new me,this._texturesReadyEvent=new me,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function sj(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function J9e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new iO({model:e,propertyTable:s});n.push(a)}return n}function eWe(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],l(a.instances)&&(s=Kt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],u=Kt.getFeatureIdsByLabel(c.featureIds,n);if(l(u))return u.propertyTableId}if(t._featureTables.length===1)return 0}function lj(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(ao.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){lj(e,this._color)&&this.resetDrawCommands(),this._color=H.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!H.equals(e,this._silhouetteColor)){let t=lj(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=H.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Wce(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===lr.GLTF&&xt("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(_s.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(Kd.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},enableVerticalExaggeration:{get:function(){return this._enableVerticalExaggeration},set:function(e){e!==this._enableVerticalExaggeration&&this.resetDrawCommands(),this._enableVerticalExaggeration=e}},hasVerticalExaggeration:{get:function(){return this._hasVerticalExaggeration}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},environmentMapManager:{get:function(){return this._environmentMapManager},set:function(e){e!==this.environmentMapManager&&(i_.setOwner(e,this,"_environmentMapManager"),this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});ao.prototype.getNode=function(e){return this._nodesByName[e]};ao.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};ao.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};ao.prototype.getExtension=function(e){return this._loader.components.extensions[e]};ao.prototype.makeStyleDirty=function(){this._styleDirty=!0};ao.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var tWe=new F,nWe=new $,iWe=new F;ao.prototype.update=function(e){let t=!1;try{t=oWe(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")sj(this,n);else{let i=Kt.getError("model",this._resource,n);sj(this,i)}}if(rWe(this,e),sWe(this,e),aWe(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Kt.getError("model",this._resource,new ce("Failed to load model."));sj(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&J9e(this,i);let o=new IM({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(cWe(this),lWe(this),uWe(this,e),fWe(this),dWe(this,e),hWe(this,e),mWe(this,e),pWe(this,e),_We(this,e),gWe(this,e),yWe(this,e),this._defaultTexture=e.context.defaultTexture,xWe(this,e),bWe(this,e),TWe(this),CWe(this,e),vWe(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),EWe(this),wWe(this,e),DWe(this),IWe(this,e)}};function oWe(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function rWe(e,t){l(e._customShader)&&e._customShader.update(t)}function sWe(e,t){let n=e._environmentMapManager,i=t.passes.pick||t.passes.pickVoxel;e._ready&&n.owner===e&&!i&&(n.position=e._boundingSphere.center,n.shouldUpdate=!l(e._imageBasedLighting.sphericalHarmonicCoefficients)||!l(e._imageBasedLighting.specularEnvironmentMaps),n.update(t),n.shouldRegenerateShaders&&e.resetDrawCommands())}function aWe(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function cWe(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=eWe(t,e),e._styleDirty=!0,e.resetDrawCommands())}function lWe(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function uWe(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&Gce(e)}function Gce(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=th.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function fWe(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function dWe(e,t){e._silhouetteDirty&&(jce(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function hWe(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function mWe(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function pWe(e,t){let n=0;e.isClippingPolygonsEnabled()&&(e._clippingPolygons.owner===e&&(e._clippingPolygons.update(t),e._clippingPolygons.queueCommands(t)),n=e._clippingPolygons.clippingPolygonsState),n!==e._clippingPolygonsState&&(e.resetDrawCommands(),e._clippingPolygonsState=n)}function _We(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function gWe(e,t){let n=t.fog.enabled&&t.fog.renderable;n!==e._fogRenderable&&(e.resetDrawCommands(),e._fogRenderable=n)}function yWe(e,t){if(e.enableVerticalExaggeration){let n=t.verticalExaggeration!==1;e.hasVerticalExaggeration!==n&&(e.resetDrawCommands(),e._hasVerticalExaggeration=n)}else e.hasVerticalExaggeration&&(e.resetDrawCommands(),e._hasVerticalExaggeration=!1)}function xWe(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function bWe(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Iy=new h,aj=new fe;function TWe(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||e.heightReference===Ye.NONE){e._clampedModelMatrix=void 0;return}let n=y(t.ellipsoid,ee.default),i=e.modelMatrix;Iy.x=i[12],Iy.y=i[13],Iy.z=i[14];let o=n.cartesianToCartographic(Iy);l(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(i,new F)),e._removeUpdateHeightCallback=t.updateHeight(o,Hce(e,n,o),e.heightReference);let r=t.getHeight(o,e.heightReference);if(l(r)){let s=Hce(e,n,o);fe.clone(o,aj),aj.height=r,s(aj)}e._heightDirty=!1,e._updateModelMatrix=!0}function CWe(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;Wce(e,n),AWe(e,n,t)}function Wce(e,t){e._clampedScale=l(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=se.transform(e._boundingSphere,t,e._boundingSphere)}function AWe(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);F.getTranslation(t,Iy),e._sceneMode!==ne.SCENE3D&&Ui.computeActualEllipsoidPosition(n,Iy,Iy);let s=e._boundingSphere.radius,a=PWe(Iy,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function EWe(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}var SWe=new $(1,0,0,0,0,1,0,-1,0);function vWe(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=nWe,s=tWe;if(s=F.multiply(o.uniformState.view3D,i,s),r=F.getRotation(s,r),r=$.transpose(r,r),e._iblReferenceFrameMatrix=$.multiply(SWe,r,e._iblReferenceFrameMatrix),e.isClippingEnabled()){let a=iWe;a=F.multiply(o.uniformState.view3D,i,a),a=F.multiply(a,e._clippingPlanes.modelMatrix,a),e._clippingPlanesMatrix=F.inverseTranspose(a,e._clippingPlanesMatrix)}}function wWe(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function DWe(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(l(e._credit)){let s=vt.clone(e._credit);s.showOnScreen=s.showOnScreen||t,e._credits.push(s)}let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++){let a=vt.clone(n[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++){let a=vt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function IWe(e,t){let n=OWe(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(MWe(e,t),e._sceneGraph.pushDrawCommands(t))}var cj=new se;function PWe(e,t,n){return cj.center=e,cj.radius=t,n.camera.getPixelSize(cj,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}var hz=new h;function Hce(e,t,n){return function(i){JC(e.heightReference)&&(i.height+=n.height),t.cartographicToCartesian(i,hz);let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=hz.x,o[13]=hz.y,o[14]=hz.z,e._heightDirty=!0}}var RWe=new h;function OWe(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,RWe);Ui.computeActualEllipsoidPosition(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function MWe(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}ao.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};ao.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function jce(e){return e.context.stencilBuffer}ao.prototype.hasSilhouette=function(e){return jce(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};ao.prototype.hasSkipLevelOfDetail=function(e){if(!lr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};ao.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};ao.prototype.pick=function(e,t,n,i,o){return nE(this,e,t,n,i,o)};ao.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};ao.prototype.isDestroyed=function(){return!1};ao.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let r=t.length;for(let s=0;s<r;s++)t[s].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0;let i=this._clippingPolygons;l(i)&&!i.isDestroyed()&&i.owner===this&&i.destroy(),this._clippingPolygons=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0;let o=this._environmentMapManager;!o.isDestroyed()&&o.owner===this&&o.destroy(),this._environmentMapManager=void 0,ue(this)};ao.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};ao.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};ao.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=we.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=we.createIfNeeded(t);let r=new s_(n),a=l(e.content)?lr.TILE_GLTF:lr.GLTF,c=n.gltfResource,u=MM(r,a,e);u.resource=c,u.environmentMapOptions=e.environmentMapOptions;try{await r.load()}catch(g){throw r.destroy(),Kt.getError("model",c,g)}let f=e.gltfCallback;l(f)&&f(r.gltfJson);let d=new ao(u),p=d._resource.credits;if(l(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(vt.clone(p[m]))}return d};ao.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new jR(t);try{await n.load();let i=MM(n,lr.TILE_B3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new OM(t);try{await n.load();let i=MM(n,lr.TILE_PNTS,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new XR(t);try{await n.load();let i=MM(n,lr.TILE_I3DM,e);return new ao(i)}catch(i){throw n.destroy(),i}};ao.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new qR(t),i=MM(n,lr.TILE_GEOJSON,e);return new ao(i)};var LWe=new H;ao.prototype.applyColorAndShow=function(e){let t=H.clone(this._color,LWe),n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):H.clone(H.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,lj(t,this._color)&&this.resetDrawCommands()};ao.prototype.applyStyle=function(e){let t=this.type===lr.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),Gce(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function MM(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,enableVerticalExaggeration:n.enableVerticalExaggeration,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var nh=ao;function gs(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(gs.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});gs.prototype.getExtension=function(e){return this._model.getExtension(e)};gs.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};gs.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};gs.prototype.applyDebugSettings=function(e,t){t=e?t:H.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};gs.prototype.applyStyle=function(e){this._model.style=e};gs.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0);let r=e.environmentMapManager;n.environmentMapManager!==o&&(n._environmentMapManager=r),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0);let s=e.clippingPolygons;l(s)&&i.clippingPolygonsDirty&&(n._clippingPolygons=s.enabled&&i._isClippedByPolygon?s:void 0),l(s)&&l(n._clippingPolygons)&&n._clippingPolygons!==s&&(n._clippingPolygons=s,n._clippingPolygonsState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:Vl.REPEAT}),this._ready=!0)};gs.prototype.isDestroyed=function(){return!1};gs.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};gs.fromGltf=async function(e,t,n,i){let o=new gs(e,t,n),s=LM(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await nh.fromGltfAsync(s);return o._model=c,o};gs.fromB3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await nh.fromB3dm(a);return r._model=u,r};gs.fromI3dm=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await nh.fromI3dm(a);return r._model=c,r};gs.fromPnts=async function(e,t,n,i,o){let r=new gs(e,t,n),a=LM(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await nh.fromPnts(a);return r._model=c,r};gs.fromGeoJson=async function(e,t,n,i){let o=new gs(e,t,n),s=LM(e,t,o,{geoJson:i,resource:n}),a=await nh.fromGeoJson(s);return o._model=a,o};gs.prototype.pick=function(e,t,n){if(!l(this._model)||!this._ready)return;let i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight;return this._model.pick(e,t,i,o,ee.WGS84,n)};function LM(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:ve.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return yt(i,o)}var xm=gs;function Lf(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(Lf.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Lf.fromJson=function(e,t,n,i){let o=new Lf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};Lf.prototype.hasProperty=function(e,t){return!1};Lf.prototype.getFeature=function(e){};Lf.prototype.applyDebugSettings=function(e,t){};Lf.prototype.applyStyle=function(e){};Lf.prototype.update=function(e,t){};Lf.prototype.pick=function(e,t,n){};Lf.prototype.isDestroyed=function(){return!1};Lf.prototype.destroy=function(){return ue(this)};var NM=Lf;var FM=`uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; +in float v_splitDirection; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var BM=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +in float splitDirection; // splitDirection +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +out float v_splitDirection; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + v_splitDirection = splitDirection; +} +`;function yi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Lt.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=z.clone(y(e.pixelOffset,z.ZERO)),this._translate=new z(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,Ye.NONE),this._verticalOrigin=y(e.verticalOrigin,Rn.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,_i.CENTER),this._scale=y(e.scale,1),this._color=H.clone(y(e.color,H.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=Hn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping(),this._splitDirection=y(e.splitDirection,Nr.NONE)}var qce=yi.SHOW_INDEX=0,pz=yi.POSITION_INDEX=1,Zce=yi.PIXEL_OFFSET_INDEX=2,NWe=yi.EYE_OFFSET_INDEX=3,FWe=yi.HORIZONTAL_ORIGIN_INDEX=4,BWe=yi.VERTICAL_ORIGIN_INDEX=5,kWe=yi.SCALE_INDEX=6,_z=yi.IMAGE_INDEX_INDEX=7,Yce=yi.COLOR_INDEX=8,VWe=yi.ROTATION_INDEX=9,UWe=yi.ALIGNED_AXIS_INDEX=10,zWe=yi.SCALE_BY_DISTANCE_INDEX=11,HWe=yi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,GWe=yi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,WWe=yi.DISTANCE_DISPLAY_CONDITION=14,jWe=yi.DISABLE_DEPTH_DISTANCE=15;yi.TEXTURE_COORDINATE_BOUNDS=16;var Xce=yi.SDF_INDEX=17,qWe=yi.SPLIT_DIRECTION_INDEX=18;yi.NUMBER_OF_PROPERTIES=19;function No(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(yi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,No(this,qce))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),No(this,pz))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),No(this,pz))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;z.equals(t,e)||(z.clone(e,t),No(this,Zce))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),No(this,zWe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),No(this,HWe))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Bt.equals(t,e)||(this._pixelOffsetScaleByDistance=Bt.clone(e,t),No(this,GWe))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),No(this,NWe))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,No(this,FWe))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,No(this,BWe))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,No(this,kWe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),No(this,Yce))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,No(this,VWe))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),No(this,UWe))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,No(this,_z))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,No(this,_z))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,No(this,Yce))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),No(this,WWe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,No(this,jWe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof we?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(Hn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,No(this,_z))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),No(this,pz)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,No(this,qce))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),No(this,Xce))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,No(this,Xce))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,No(this,qWe))}}});yi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};yi.prototype._updateClamping=function(){yi._updateClamping(this._billboardCollection,this)};var gz=new fe;yi._updateClamping=function(e,t){let n=e._scene;if(!l(n))return;let i=y(n.ellipsoid,ee.default),o=n.frameState.mode,r=o!==t._mode;if(t._mode=o,(t._heightReference===Ye.NONE||r)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Ye.NONE||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let s=i.cartesianToCartographic(t._position);if(!l(s)){t._actualClampedPosition=void 0;return}function a(u){let f=i.cartographicToCartesian(u,t._clampedPosition);JC(t._heightReference)&&(t._mode===ne.SCENE3D?(u.height+=s.height,i.cartographicToCartesian(u,f)):f.x+=s.height),t._clampedPosition=f}t._removeCallbackFunc=n.updateHeight(s,a,t._heightReference),fe.clone(s,gz);let c=n.getHeight(s,t._heightReference);l(c)&&(gz.height=c),a(gz)};yi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!je.equals(r._imageSubRegion,i))return;let u=e.textureCoordinates[c];r._imageWidth=e.texture.width*u.width,r._imageHeight=e.texture.height*u.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,No(r,_z);let f=r._billboardCollection._scene;l(f)&&f.frameState.afterRender.push(()=>!0)}if(l(n)&&(o=e.addImage(t,n)),l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!l(o))return;let a=e.getImageIndex(t);if(l(a)&&!l(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};yi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};yi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&je.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=je.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};yi.prototype._setTranslate=function(e){let t=this._translate;z.equals(t,e)||(z.clone(e,t),No(this,Zce))};yi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};yi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),No(this,pz)};var Kce=new oe;yi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(F.multiplyByPoint(i,t,Kce),Ui.computeActualEllipsoidPosition(n,Kce))};var $ce=new h;yi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,$ce),a=Ui.worldWithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return z.add(a,i,a),a};var mz=new z(0,0);yi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new z),z.clone(this._pixelOffset,mz),z.add(mz,this._translate,mz);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,gz);o=a.cartographicToCartesian(c,$ce),i=F.IDENTITY}return yi._computeScreenSpacePosition(i,o,this._eyeOffset,mz,e,t)};yi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===_i.RIGHT?s-=i:e.horizontalOrigin===_i.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?a-=o:e.verticalOrigin===Rn.CENTER&&(a-=o*.5),l(n)||(n=new je),n.x=s,n.y=a,n.width=i,n.height=o,n};yi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&je.equals(this._imageSubRegion,e._imageSubRegion)&&H.equals(this._color,e._color)&&z.equals(this._pixelOffset,e._pixelOffset)&&z.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};yi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var co=yi;var YWe={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},Eo=Object.freeze(YWe);var XWe={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},Xs=Object.freeze(XWe);function __(e,t,n,i,o){this.bottomLeft=y(e,z.ZERO),this.topRight=y(t,z.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var KWe=new z(16,16);function Py(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,KWe);this._context=e.context,this._pixelFormat=y(e.pixelFormat,Je.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=Hn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Py.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Pt({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function ZWe(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),u=o*(a+t.height+r),f=s/c,d=a/u,p=new __(new z(s+r,r),new z(c,a)),g=new __(new z,new z(c,a),e._root,p),m=new __(new z(r,a+r),new z(c,u)),x=new __(new z,new z(c,u),g,m);for(let C=0;C<e._textureCoordinates.length;C++){let A=e._textureCoordinates[C];l(A)&&(A.x*=f,A.y*=d,A.width*=f,A.height*=d)}let b=new Pt({context:e._context,width:c,height:u,pixelFormat:e._pixelFormat}),T=new Mr({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,u),T._unBind(),T.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=b,e._root=x}else{let s=o*(t.width+2*r),a=o*(t.height+2*r);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Pt({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new __(new z(r,r),new z(s,a))}}function yz(e,t,n){if(l(t)){if(!l(t.childNode1)&&!l(t.childNode2)){if(l(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,o=t.topRight.y-t.bottomLeft.y,r=i-n.width,s=o-n.height;if(r<0||s<0)return;if(r===0&&s===0)return t;if(r>s){t.childNode1=new __(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new __(new z(a,t.bottomLeft.y),new z(t.topRight.x,t.topRight.y)))}else{t.childNode1=new __(new z(t.bottomLeft.x,t.bottomLeft.y),new z(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new __(new z(t.bottomLeft.x,a),new z(t.topRight.x,t.topRight.y)))}return yz(e,t.childNode1,n)}return yz(e,t.childNode1,n)||yz(e,t.childNode2,n)}}function Qce(e,t,n){let i=yz(e,e._root,t);if(l(i)){i.imageIndex=n;let o=e._texture.width,r=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/o,u=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new je(c,u,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else ZWe(e,t),Qce(e,t,n);e._guid=Hn()}function Jce(e,t){if(!l(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Qce(e,t,n),n}Py.prototype.getImageIndex=function(e){return this._indexHash[e]};Py.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return l(n)||(n=Jce(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Py.prototype.addImage=function(e,t){let n=this._idHash[e];if(l(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof we)&&(t=we.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=Jce(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};Py.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!l(n))throw new ce(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(o){if(o===-1)return-1;let r=i._texture.width,s=i._texture.height,a=i._textureCoordinates[o],c=a.x+t.x/r,u=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new je(c,u,f,d))-1;return i._indexHash[e]=p,i._guid=Hn(),p})};Py.prototype.isDestroyed=function(){return!1};Py.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var Ry=Py;var $We=co.SHOW_INDEX,VM=co.POSITION_INDEX,ele=co.PIXEL_OFFSET_INDEX,tle=co.EYE_OFFSET_INDEX,QWe=co.HORIZONTAL_ORIGIN_INDEX,JWe=co.VERTICAL_ORIGIN_INDEX,eje=co.SCALE_INDEX,kM=co.IMAGE_INDEX_INDEX,nle=co.COLOR_INDEX,tje=co.ROTATION_INDEX,nje=co.ALIGNED_AXIS_INDEX,ile=co.SCALE_BY_DISTANCE_INDEX,ole=co.TRANSLUCENCY_BY_DISTANCE_INDEX,rle=co.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,sle=co.DISTANCE_DISPLAY_CONDITION,ije=co.DISABLE_DEPTH_DISTANCE,oje=co.TEXTURE_COORDINATE_BOUNDS,ale=co.SDF_INDEX,cle=co.SPLIT_DIRECTION_INDEX,_j=co.NUMBER_OF_PROPERTIES,lo,rje={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11,splitDirection:12},sje={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12,splitDirection:13};function Bf(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(_j),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=H.clone(H.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(Bf.prototype,{length:{get:function(){return gj(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function lle(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Bf.prototype.add=function(e){let t=new co(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};Bf.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Bf.prototype.removeAll=function(){lle(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function gj(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}Bf.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};Bf.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};Bf.prototype.get=function(e){return gj(this),this._billboards[e]};var uj;function aje(e){let n=e.cache.billboardCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s+0,o[r+4]=s+2,o[r+5]=s+3;return n=_t.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function cje(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=_t.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function lje(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=_t.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}Bf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<_j;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function uje(e,t,n,i,o,r){let s=[{index:lo.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[VM]},{index:lo.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[VM]},{index:lo.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ele]},{index:lo.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ole]},{index:lo.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[nle]},{index:lo.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[tle]},{index:lo.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ile]},{index:lo.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[rle]},{index:lo.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[sle]},{index:lo.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[oje]},{index:lo.splitDirection,componentsPerAttribute:1,componentDatatype:X.FLOAT,usage:n[cle]}];i&&s.push({index:lo.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:lje(e)}),l(o)&&s.push({index:lo.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),r&&s.push({index:lo.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[ale]});let a=i?t:4*t;return new Dp(e,s,a,i)}var fj=new Gn;function ule(e,t,n,i,o){let r,s=i[lo.positionHighAndScale],a=i[lo.positionLowAndRotation],c=o._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(c,fj);let u=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,u);let d=fj.high,p=fj.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,u),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,u),s(r+1,d.x,d.y,d.z,u),s(r+2,d.x,d.y,d.z,u),s(r+3,d.x,d.y,d.z,u),a(r+0,p.x,p.y,p.z,f),a(r+1,p.x,p.y,p.z,f),a(r+2,p.x,p.y,p.z,f),a(r+3,p.x,p.y,p.z,f))}var Ff=new z,Nf=32768,iE=65536,dj=4096,bm=256,fje=128,dje=32,hje=8,fle=4,mje=1/256,dle=0,hle=2,mle=3,ple=1;function _le(e,t,n,i,o){let r,s=i[lo.compressedAttribute0],a=o.pixelOffset,c=a.x,u=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-u+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===Rn.BASELINE&&(m=Rn.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===_i.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===Rn.CENTER;let b=0,T=0,C=0,A=0,E=o._imageIndex;if(E!==-1){let U=n[E];b=U.x,T=U.y,C=U.width,A=U.height}let v=b+C,D=T+A,O=Math.floor(P.clamp(c,-Nf,Nf)+Nf)*fje;O+=(g+1)*dje,O+=(m+1)*hje,O+=(x?1:0)*fle;let R=Math.floor(P.clamp(u,-Nf,Nf)+Nf)*bm,M=Math.floor(P.clamp(d,-Nf,Nf)+Nf)*bm,N=(P.clamp(p,-Nf,Nf)+Nf)*mje,_=Math.floor(N),S=Math.floor((N-_)*bm);R+=_,M+=S,Ff.x=b,Ff.y=T;let w=Mn.compressTextureCoordinates(Ff);Ff.x=v;let I=Mn.compressTextureCoordinates(Ff);Ff.y=D;let L=Mn.compressTextureCoordinates(Ff);Ff.x=b;let B=Mn.compressTextureCoordinates(Ff);e._instanced?(r=o._index,s(r,O,R,M,w)):(r=o._index*4,s(r+0,O+dle,R,M,w),s(r+1,O+hle,R,M,I),s(r+2,O+mle,R,M,L),s(r+3,O+ple,R,M,B))}function gle(e,t,n,i,o){let r,s=i[lo.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,u=1,f=1,d=1,p=o.translucencyByDistance;l(p)&&(c=p.near,u=p.nearValue,f=p.far,d=p.farValue,(u!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,m=o._imageIndex;m!==-1&&(g=n[m].width);let x=e._textureAtlas.texture.width,b=Math.round(y(o.width,x*g));e._maxSize=Math.max(e._maxSize,b);let T=P.clamp(b,0,iE),C=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(C=Mn.octEncodeFloat(a)),u=P.clamp(u,0,1),u=u===1?255:u*255|0,T=T*bm+u,d=P.clamp(d,0,1),d=d===1?255:d*255|0,C=C*bm+d,e._instanced?(r=o._index,s(r,T,C,c,f)):(r=o._index*4,s(r+0,T,C,c,f),s(r+1,T,C,c,f),s(r+2,T,C,c,f),s(r+3,T,C,c,f))}function mj(e,t,n,i,o){let r,s=i[lo.compressedAttribute2],a=o.color,c=l(e._batchTable)?H.WHITE:o.getPickId(t.context).color,u=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&u===1;let d=0,p=o._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,m=Math.round(y(o.height,g.y*d));e._maxSize=Math.max(e._maxSize,m);let x=y(o._labelHorizontalOrigin,-2);x+=2;let b=m*fle+x,T=H.floatToByte(a.red),C=H.floatToByte(a.green),A=H.floatToByte(a.blue),E=T*iE+C*bm+A;T=H.floatToByte(c.red),C=H.floatToByte(c.green),A=H.floatToByte(c.blue);let v=T*iE+C*bm+A,D=H.floatToByte(a.alpha)*iE+H.floatToByte(c.alpha)*bm;D+=u*2+f,e._instanced?(r=o._index,s(r,E,v,D,b)):(r=o._index*4,s(r+0,E,v,D,b),s(r+1,E,v,D,b),s(r+2,E,v,D,b),s(r+3,E,v,D,b))}function pj(e,t,n,i,o){let r,s=i[lo.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==Ye.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let u=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];u=g.width,f=g.height}Ff.x=u,Ff.y=f;let p=Mn.compressTextureCoordinates(Ff);r=o._index,s(r,a.x,a.y,c,p)}else r=o._index*4,s(r+0,a.x,a.y,c,0),s(r+1,a.x,a.y,c,0),s(r+2,a.x,a.y,c,0),s(r+3,a.x,a.y,c,0)}function yle(e,t,n,i,o){let r,s=i[lo.scaleByDistance],a=0,c=1,u=1,f=1,d=o.scaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function xle(e,t,n,i,o){let r,s=i[lo.pixelOffsetScaleByDistance],a=0,c=1,u=1,f=1,d=o.pixelOffsetScaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function ble(e,t,n,i,o){let r,s=i[lo.compressedAttribute3],a=0,c=Number.MAX_VALUE,u=o.distanceDisplayCondition;l(u)&&(a=u.near,c=u.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=Af(o.heightReference)&&t.context.depthTexture;l(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,C=0,A=o._imageIndex;if(A!==-1){let v=n[A];T=v.height,C=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let E=e._textureAtlas.texture.width;g=Math.round(y(o.width,E*C))}let m=Math.floor(P.clamp(g,0,dj)),x=Math.floor(P.clamp(p,0,dj)),b=m*dj+x;e._instanced?(r=o._index,s(r,a,c,f,b)):(r=o._index*4,s(r+0,a,c,f,b),s(r+1,a,c,f,b),s(r+2,a,c,f,b),s(r+3,a,c,f,b))}function Tle(e,t,n,i,o){if(Af(o.heightReference)){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=l(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[lo.textureCoordinateBoundsOrLabelTranslate];if(kt.maximumVertexTextureImageUnits>0){let m=0,x=0;l(o._labelTranslate)&&(m=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,m,x,0,0)):(r=o._index*4,s(r+0,m,x,0,0),s(r+1,m,x,0,0),s(r+2,m,x,0,0),s(r+3,m,x,0,0));return}let a=0,c=0,u=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,u=m.width,f=m.height}let p=a+u,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function pje(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[lo.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function Cle(e,t,n,i,o){if(!e._sdf)return;let r,s=i[lo.sdf],a=o.outlineColor,c=o.outlineWidth,u=H.floatToByte(a.red),f=H.floatToByte(a.green),d=H.floatToByte(a.blue),p=u*iE+f*bm+d,g=c/Xs.RADIUS,m=H.floatToByte(a.alpha)*iE+H.floatToByte(g)*bm;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+dle,m),s(r+1,p+hle,m),s(r+2,p+mle,m),s(r+3,p+ple,m))}function Ale(e,t,n,i,o){let r=i[lo.splitDirection],s=0,a=o.splitDirection;l(a)&&(s=a);let c;e._instanced?(c=o._index,r(c,s)):(c=o._index*4,r(c+0,s),r(c+1,s),r(c+2,s),r(c+3,s))}function _je(e,t,n,i,o){ule(e,t,n,i,o),_le(e,t,n,i,o),gle(e,t,n,i,o),mj(e,t,n,i,o),pj(e,t,n,i,o),yle(e,t,n,i,o),xle(e,t,n,i,o),ble(e,t,n,i,o),Tle(e,t,n,i,o),pje(e,t,n,i,o),Cle(e,t,n,i,o),Ale(e,t,n,i,o)}function hj(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=co._computeActualPosition(u,f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function gje(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&hj(e,i,i.length,t,r,!0)):n===ne.MORPHING?hj(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&hj(e,o,e._billboardsToUpdateIndex,t,r,!1)}function yje(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function xje(e,t){let i=t.createViewportQuadCommand(`uniform sampler2D billboard_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = texture(billboard_texture, v_textureCoordinates); +} +`,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=ve.OVERLAY,i}var bje=[];Bf.prototype.update=function(e){if(gj(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,lo=this._instanced?sje:rje,uj=this._instanced?cje:aje;let o=this._textureAtlas;if(!l(o)){o=this._textureAtlas=new Ry({context:i});for(let R=0;R<n;++R)t[R]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;gje(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,u=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==u;this._textureAtlasGUID=u;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let R=0;R<_j;++R)c[R]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=uje(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let R=0;R<n;++R){let M=this._billboards[R];M._dirty=!1,_je(this,e,r,d,M)}this._vaf.commit(uj(i))}this._billboardsToUpdateIndex=0}else if(a>0){let R=bje;R.length=0,(c[VM]||c[tje]||c[eje])&&R.push(ule),(c[kM]||c[ele]||c[QWe]||c[JWe]||c[$We])&&(R.push(_le),this._instanced&&R.push(pj)),(c[kM]||c[nje]||c[ole])&&(R.push(gle),R.push(mj)),(c[kM]||c[nle])&&R.push(mj),c[tle]&&R.push(pj),c[ile]&&R.push(yle),c[rle]&&R.push(xle),(c[sle]||c[ije]||c[kM]||c[VM])&&R.push(ble),(c[kM]||c[VM])&&R.push(Tle),c[ale]&&R.push(Cle),c[cle]&&R.push(Ale);let M=R.length;if(d=this._vaf.writers,a/n>.1){for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<M;++S)R[S](this,e,r,d,_)}this._vaf.commit(uj(i))}else{for(let N=0;N<a;++N){let _=s[N];_._dirty=!1;for(let S=0;S<M;++S)R[S](this,e,r,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=F.IDENTITY;e.mode===ne.SCENE3D?(x=this.modelMatrix,m=se.clone(this._baseVolumeWC,this._boundingVolume)):m=se.clone(this._baseVolume2D,this._boundingVolume),yje(this,e,m);let b=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,b){this._blendOption===Eo.OPAQUE||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let R=this._blendOption===Eo.TRANSLUCENT;this._blendOption===Eo.TRANSLUCENT||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:R?te.LEQUAL:te.LESS},depthMask:R,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,C,A,E,v,D=kt.maximumVertexTextureImageUnits>0;if(b||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){T=BM,C=FM,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),C=this._batchTable.getFragmentShaderCallback(!1,void 0)(C)),A=new Ue({defines:v,sources:[T]}),this._instanced&&A.defines.push("INSTANCED"),this._shaderRotation&&A.defines.push("ROTATION"),this._shaderAlignedAxis&&A.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&A.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&A.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&A.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&A.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&A.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?A.defines.push("VERTEX_DEPTH_CHECK"):A.defines.push("FRAGMENT_DEPTH_CHECK"));let R=1-Xs.CUTOFF;this._sdf&&A.defines.push("SDF");let M=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT&&(E=new Ue({defines:["OPAQUE",M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo}),E=new Ue({defines:["TRANSLUCENT",M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),this._blendOption===Eo.OPAQUE&&(E=new Ue({defines:[M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._sp=Qt.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),this._blendOption===Eo.TRANSLUCENT&&(E=new Ue({defines:[M],sources:[C]}),this._shaderClampToGround&&(D?E.defines.push("VERTEX_DEPTH_CHECK"):E.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(E.defines.push("SDF"),E.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=Qt.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:A,fragmentShaderSource:E,attributeLocations:lo})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let R=this._colorCommands,M=this._blendOption===Eo.OPAQUE,N=this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,S=_.length,w=this._uniforms,I;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",R.length=S;let L=N?S*2:S;for(let B=0;B<L;++B){let U=R[B];l(U)||(U=R[B]=new Ze);let V=M||N&&B%2===0;U.pass=V||!N?ve.OPAQUE:ve.TRANSLUCENT,U.owner=this;let G=N?Math.floor(B/2):B;U.boundingVolume=m,U.modelMatrix=x,U.count=_[G].indicesCount,U.shaderProgram=V?this._sp:this._spTranslucent,U.uniformMap=w,U.vertexArray=_[G].va,U.renderState=V?this._rsOpaque:this._rsTranslucent,U.debugShowBoundingVolume=this.debugShowBoundingVolume,U.pickId=I,this._instanced&&(U.count=6,U.instanceCount=n),O.push(U)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=xje(this,e.context)),O.push(this.debugCommand))}};Bf.prototype.isDestroyed=function(){return!1};Bf.prototype.destroy=function(){return l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),lle(this._billboards),ue(this)};var wu=Bf;function Tje(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var Sb=Tje;function da(e,t,n,i,o){this._content=e,this._billboard=n,this._label=i,this._polyline=o,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),oE(this)}var Cje=new fe;Object.defineProperties(da.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=H.clone(e,this._color),oE(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,oE(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=H.clone(e,this._pointOutlineColor),oE(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,oE(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,Cje);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=H.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&oE(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});da.defaultColor=H.WHITE;da.defaultPointOutlineColor=H.BLACK;da.defaultPointOutlineWidth=0;da.defaultPointSize=8;function oE(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,da.defaultColor),i=y(e._pointOutlineColor,da.defaultPointOutlineColor),o=y(e._pointOutlineWidth,da.defaultPointOutlineWidth),r=y(e._pointSize,da.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(H.equals(n,s)&&H.equals(i,a)&&o===c&&r===u)return;e._billboardColor=H.clone(n,e._billboardColor),e._billboardOutlineColor=H.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,Sb(f,d,p,o,r))}da.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};da.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};da.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};da.prototype.getPropertyInherited=function(e){return Ws.getPropertyInherited(this._content,this._batchId,e)};da.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};da.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};da.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};da.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var g_=da;function Aje(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),u=100,f=r.width+u|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,C,A,E;for(T=0;T<x;++T)if(m[T]!==255){A=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){E=T/b|0;break}let v=-1;for(T=0;T<f&&v===-1;++T)for(C=0;C<d;++C){let D=T*4+C*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){v=T;break}}return{width:r.width,height:E-A,ascent:p-A,descent:E-p,minx:v-u/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var vb;function Eje(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),o=y(t.fill,!0),r=y(t.strokeWidth,1),s=y(t.backgroundColor,H.TRANSPARENT),a=y(t.padding,0),c=a*2,u=document.createElement("canvas");u.width=1,u.height=1,u.style.font=n;let f=u.getContext("2d",{willReadFrequently:!0});l(vb)||(l(f.imageSmoothingEnabled)?vb="imageSmoothingEnabled":l(f.mozImageSmoothingEnabled)?vb="mozImageSmoothingEnabled":l(f.webkitImageSmoothingEnabled)?vb="webkitImageSmoothingEnabled":l(f.msImageSmoothingEnabled)&&(vb="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[vb]=!1,u.style.visibility="hidden",document.body.appendChild(u);let d=Aje(f,e,n,i,o);u.dimensions=d,document.body.removeChild(u),u.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,m=d.height+c,x=m-d.ascent+a,b=m-x+c;if(u.width=g,u.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[vb]=!1,s!==H.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,u.width,u.height)),i){let T=y(t.strokeColor,H.BLACK);f.strokeStyle=T.toCssColorString(),f.strokeText(e,p+a,b)}if(o){let T=y(t.fillColor,H.WHITE);f.fillStyle=T.toCssColorString(),f.fillText(e,p+a,b)}return u}var wb=Eje;var Lle=Vo(wle(),1);var vje={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},Wo=Object.freeze(vje);var Dle={},Ile=0,wje=256,Dje=new H(.165,.165,.165,.8),Ije=new z(7,5),ys=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function Db(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function zM(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function HM(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function Rle(e){let t=Dle[e._font];if(!l(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(HM(n,"line-height"));isNaN(i)&&(i=void 0),t={family:HM(n,"font-family"),size:HM(n,"font-size").replace("px",""),style:HM(n,"font-style"),weight:HM(n,"font-weight"),lineHeight:i},document.body.removeChild(n),Ile<wje&&(Dle[e._font]=t,Ile++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function y_(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Bt.clone(o)),l(r)&&(r=Lt.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=H.clone(y(e.fillColor,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=H.clone(y(e.backgroundColor,Dje)),this._backgroundPadding=z.clone(y(e.backgroundPadding,Ije)),this._style=y(e.style,Wo.FILL),this._verticalOrigin=y(e.verticalOrigin,Rn.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,_i.LEFT),this._pixelOffset=z.clone(y(e.pixelOffset,z.ZERO)),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._position=h.clone(y(e.position,h.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=y(e.heightReference,Ye.NONE),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,Rle(this),this._updateClamping()}Object.defineProperties(y_.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),zM(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=y_.enableRightToLeftDetection?Nje(t):t,Db(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,Db(this),Rle(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;H.equals(t,e)||(H.clone(e,t),Db(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Db(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Db(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,Db(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!H.equals(t,e)){H.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;z.equals(t,e)||(z.clone(e,t),zM(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,Db(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!z.equals(t,e)){z.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Bt.equals(t,e)){this._translucencyByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Bt.equals(t,e)){this._pixelOffsetScaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Bt.equals(t,e)){this._scaleByDistance=Bt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,zM(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),zM(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),zM(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!Lt.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}}});y_.prototype._updateClamping=function(){co._updateClamping(this._labelCollection,this)};y_.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new z);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return co._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};y_.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?o-=s:e.verticalOrigin===Rn.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let u=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!l(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,C=m.dimensions.width*a,A=m.dimensions.height*a;e.verticalOrigin===Rn.BOTTOM||e.verticalOrigin===Rn.BASELINE?T-=A:e.verticalOrigin===Rn.CENTER&&(T-=A*.5),e._verticalOrigin===Rn.TOP?T+=Xs.PADDING*a:(e._verticalOrigin===Rn.BOTTOM||e._verticalOrigin===Rn.BASELINE)&&(T-=Xs.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),u=Math.max(u,b+C),f=Math.max(f,T+A)}r=u-i,s=f-o}return l(n)||(n=new je),n.x=i,n.y=o,n.width=r,n.height=s,n};y_.prototype.equals=function(e){return this===e||l(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&H.equals(this._fillColor,e._fillColor)&&H.equals(this._outlineColor,e._outlineColor)&&H.equals(this._backgroundColor,e._backgroundColor)&&z.equals(this._backgroundPadding,e._backgroundPadding)&&z.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Bt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};y_.prototype.isDestroyed=function(){return!1};y_.enableRightToLeftDetection=!1;function Pje(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=ys.LTR,a="",c=e.length;for(let u=0;u<c;++u){let f=e.charAt(u);t.test(f)?a=ys.RTL:n.test(f)?a=ys.LTR:i.test(f)?a=ys.BRACKETS:a=ys.WEAK,u===0&&(s=a),s===a&&a!==ys.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function Rje(e){return e.split("").reverse().join("")}function GM(e,t,n){return e.slice(0,t)+n+e.slice(t)}function Oje(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var Mje="\u05D0-\u05EA",Lje="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",Ple=new RegExp(`[${Mje}${Lje}]`);function Nje(e){let t=e.split(` +`),n="";for(let i=0;i<t.length;i++){let o=t[i],r=Ple.test(o.charAt(0)),s=Pje(o,Ple),a=0,c="";for(let u=0;u<s.length;++u){let f=s[u],d=f.Type===ys.BRACKETS?Oje(f.Word):Rje(f.Word);r?f.Type===ys.RTL?(c=d+c,a=0):f.Type===ys.LTR?(c=GM(c,a,f.Word),a+=f.Word.length):(f.Type===ys.WEAK||f.Type===ys.BRACKETS)&&(f.Type===ys.WEAK&&s[u-1].Type===ys.BRACKETS?c=d+c:s[u-1].Type===ys.RTL?(c=d+c,a=0):s.length>u+1?s[u+1].Type===ys.RTL?(c=d+c,a=0):(c=GM(c,a,f.Word),a+=f.Word.length):c=GM(c,0,d)):f.Type===ys.RTL?c=GM(c,a,d):f.Type===ys.LTR?(c+=f.Word,a=c.length):(f.Type===ys.WEAK||f.Type===ys.BRACKETS)&&(u>0&&s[u-1].Type===ys.RTL?s.length>u+1?s[u+1].Type===ys.RTL?c=GM(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` +`)}return n}var Oy=y_;var Nle=Vo(Ole(),1);function Bje(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function kje(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var Vje=1.2,Fle="ID_WHITE_PIXEL",yj=new z(4,4),Uje=new je(1,1,1,1);function zje(e){let t=document.createElement("canvas");t.width=yj.x,t.height=yj.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(Fle,t)}var kf={};function Hje(e,t,n,i,o,r,s){return kf.font=t,kf.fillColor=n,kf.strokeColor=i,kf.strokeWidth=o,kf.padding=Xs.PADDING,s===Rn.CENTER?kf.textBaseline="middle":s===Rn.TOP?kf.textBaseline="top":kf.textBaseline="bottom",kf.fill=r===Wo.FILL||r===Wo.FILL_AND_OUTLINE,kf.stroke=r===Wo.OUTLINE||r===Wo.FILL_AND_OUTLINE,kf.backgroundColor=H.BLACK,wb(e,kf)}function xj(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;l(n)&&(n.show=!1,n.image=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function Gje(e,t,n,i){i.index=e.addImageSync(t,n)}var Wje=new Nle.default;function jje(e,t){let n=t._renderedText,i=Wje.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,u;if(t._relativeSize=t._fontSize/Xs.FONT_SIZE,o<s)for(c=o;c<s;++c)xj(e,r[c]);r.length=o;let f=t.show&&t._showBackground&&n.split(` +`).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:Fle,imageSubRegion:Uje}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=_i.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance,d.clusterShow=t.clusterShow):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u<o;++u){let m=i[u],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!l(T)){let C=`${t._fontStyle} ${t._fontWeight} ${Xs.FONT_SIZE}px ${t._fontFamily}`,A=Hje(m,C,H.WHITE,H.WHITE,0,Wo.FILL,x);if(T=new kje(e,-1,A.dimensions),g[b]=T,A.width>0&&A.height>0){let E=(0,Lle.default)(A,{cutoff:Xs.CUTOFF,radius:Xs.RADIUS}),v=A.getContext("2d"),D=A.width,O=A.height,R=v.getImageData(0,0,D,O);for(let M=0;M<D;M++)for(let N=0;N<O;N++){let _=N*D+M,S=E[_]*255,w=_*4;R.data[w+0]=S,R.data[w+1]=S,R.data[w+2]=S,R.data[w+3]=S}v.putImageData(R,0,0),m!==" "&&Gje(e._textureAtlas,b,A,T)}}if(a=r[u],l(a)?T.index===-1?xj(e,a):l(a.textureInfo)&&(a.textureInfo=void 0):(a=new Bje,r[u]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let C=a.billboard,A=e._spareBillboards;l(C)||(A.length>0?C=A.pop():(C=e._billboardCollection.add({collection:e}),C._labelDimensions=new z,C._labelTranslate=new z),a.billboard=C),C.show=t._show,C.position=t._position,C.eyeOffset=t._eyeOffset,C.pixelOffset=t._pixelOffset,C.horizontalOrigin=_i.LEFT,C.verticalOrigin=t._verticalOrigin,C.heightReference=t._heightReference,C.scale=t.totalScale,C.pickPrimitive=t,C.id=t._id,C.image=b,C.translucencyByDistance=t._translucencyByDistance,C.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,C.scaleByDistance=t._scaleByDistance,C.distanceDisplayCondition=t._distanceDisplayCondition,C.disableDepthTestDistance=t._disableDepthTestDistance,C._batchIndex=t._batchIndex,C.outlineColor=t.outlineColor,t.style===Wo.FILL_AND_OUTLINE?(C.color=t._fillColor,C.outlineWidth=t.outlineWidth):t.style===Wo.FILL?(C.color=t._fillColor,C.outlineWidth=0):t.style===Wo.OUTLINE&&(C.color=H.TRANSPARENT,C.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Mle(e,t,n){return t===_i.CENTER?-e/2:t===_i.RIGHT?-(e+n.x):n.x}var ur=new z,qje=new z;function Yje(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=z.clone(l(g)?e._backgroundPadding:z.ZERO,qje);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===` +`?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,u=Math.max(u,o.height-o.descent),c=Math.max(c,o.descent),r+=o.width-o.minx,d<p-1&&(r+=t[d+1].dimensions.minx),s=Math.max(s,r));a.push(r);let x=u+c,b=e.totalScale,T=e._horizontalOrigin,C=e._verticalOrigin,A=0,E=a[A],v=Mle(E,T,m),D=(l(e._lineHeight)?e._lineHeight:Vje*e._fontSize)/e._relativeSize,O=D*(f-1),R=s,M=x+O;l(g)&&(R+=m.x*2,M+=m.y*2,g._labelHorizontalOrigin=T),ur.x=v*b,ur.y=0;let N=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===` +`)++A,_+=D,E=a[A],v=Mle(E,T,m),ur.x=v*b,N=!0;else if(i=t[d],o=i.dimensions,C===Rn.TOP?(ur.y=o.height-u-m.y,ur.y+=Xs.PADDING):C===Rn.CENTER?ur.y=(O+o.height-u)/2:C===Rn.BASELINE?(ur.y=O,ur.y-=Xs.PADDING):(ur.y=O+c+m.y,ur.y-=Xs.PADDING),ur.y=(ur.y-o.descent-_)*b,N&&(ur.x-=Xs.PADDING*b,N=!1),l(i.billboard)&&(i.billboard._setTranslate(ur),i.billboard._labelDimensions.x=R,i.billboard._labelDimensions.y=M,i.billboard._labelHorizontalOrigin=T),d<p-1){let S=t[d+1];ur.x+=(o.width-o.minx+S.dimensions.minx)*b}if(l(g)&&n.split(` +`).join("").length>0&&(T===_i.CENTER?v=-s/2-m.x:T===_i.RIGHT?v=-(s+m.x*2):v=0,ur.x=v*b,C===Rn.TOP?ur.y=x-u-c:C===Rn.CENTER?ur.y=(x-u)/2-c:C===Rn.BASELINE?ur.y=-m.y-c:ur.y=0,ur.y=ur.y*b,g.width=R,g.height=M,g._setTranslate(ur),g._labelTranslate=z.clone(ur,g._labelTranslate)),Af(e.heightReference))for(d=0;d<p;++d){i=t[d];let S=i.billboard;l(S)&&(S._labelTranslate=z.clone(ur,S._labelTranslate))}}function Ble(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)xj(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function Tm(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new wu({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new wu({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=H.clone(H.WHITE),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(Tm.prototype,{length:{get:function(){return this._labels.length}}});Tm.prototype.add=function(e){let t=new Oy(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};Tm.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),Ble(this,e),!0}return!1};Tm.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)Ble(this,e[t]);e.length=0};Tm.prototype.contains=function(e){return l(e)&&e._labelCollection===this};Tm.prototype.get=function(e){return this._labels[e]};Tm.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;l(this._textureAtlas)||(this._textureAtlas=new Ry({context:i}),t.textureAtlas=this._textureAtlas),l(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new Ry({context:i,initialSize:yj}),n.textureAtlas=this._backgroundTextureAtlas,zje(this._backgroundTextureAtlas));let o=this._labelsToUpdate.length;for(let s=0;s<o;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(jje(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(Yje(a),a._repositionAllGlyphs=!1);let u=a._glyphs.length-c;this._totalGlyphCount+=u}let r=n.length>0?Eo.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};Tm.prototype.isDestroyed=function(){return!1};Tm.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var Cm=Tm;var WM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var el={};el.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};el.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var Xje=new fe;el.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,Xje).height}return i};var Kje=new F,Zje=new h,kle=new h,$je=new cn(h.UNIT_X,0),Vle=new h,Qje=new cn(h.UNIT_X,0),Jje=new h,e7e=new h,Tj=[];function zle(e,t,n){let i=Tj;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var Tz=new fe,bz=new fe,My=new h,Cj=new h,t7e=new h,bj=new Op,jM=new Ra;function n7e(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,Cj),u=i.scaleToGeodeticSurface(t,t7e),f=el.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,Tz),p=i.cartesianToCartographic(u,bz),g=zle(f,o,r);bj.setEndPoints(d,p);let m=bj.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,My);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let C=bj.interpolateUsingSurfaceDistance(T*m,bz);C.height=g[T],b=i.cartographicToCartesian(C,My),h.pack(b,s,x),x+=3}return x}function i7e(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,Tz),u=i.cartesianToCartographic(t,bz),f=el.numberOfPointsRhumbLine(c,u,n);c.height=0,u.height=0;let d=zle(f,o,r);jM.ellipsoid.equals(i)||(jM=new Ra(void 0,void 0,i)),jM.setEndPoints(c,u);let p=jM.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,My);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=jM.interpolateUsingSurfaceDistance(x*p,bz);b.height=d[x],m=i.cartographicToCartesian(b,My),h.pack(m,s,g),g+=3}return g}el.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=y(t,F.IDENTITY);let o=F.inverseTransformation(t,Kje),r=F.multiplyByPoint(o,h.ZERO,Zje),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,kle),kle),a=cn.fromPointNormal(r,s,$je),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,Vle),Vle),u=cn.fromPointNormal(r,c,Qje),f=1;n.push(h.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let m=e[g];if(cn.getPointDistance(u,d)<0||cn.getPointDistance(u,m)<0){let x=$n.lineSegmentPlane(d,m,a,Jje);if(l(x)){let b=h.multiplyByScalar(s,5e-9,e7e);cn.getPointDistance(a,d)<0&&h.negate(b,b),n.push(h.add(x,b,new h)),i.push(f+1),h.negate(b,b),n.push(h.add(x,b,new h)),f=1}}n.push(h.clone(e[g])),f++,d=m}i.push(f)}return{positions:n,lengths:i}};el.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],Cj);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,My);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!l(s)){let x=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(x,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=el.numberOfPoints(t[c],t[c+1],s);let u=(a+1)*3,f=new Array(u),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,C=r?o[c+1]:o;d=n7e(x,b,s,i,T,C,f,d)}Tj.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,Tz);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,My);return h.pack(m,f,u-3),f};var Ule=new fe,o7e=new fe;el.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],Cj);if(o=r?o[0]:o,o!==0){let C=i.geodeticSurfaceNormal(T,My);h.multiplyByScalar(C,o,C),h.add(T,C,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,u=i.cartesianToCartographic(t[0],Ule),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],o7e),a+=el.numberOfPointsRhumbLine(u,f,s),u=fe.clone(f,Ule);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],C=t[c+1],A=r?o[c]:o,E=r?o[c+1]:o;g=i7e(T,C,s,i,A,E,p,g)}Tj.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,Tz);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,My);return h.pack(b,p,d-3),p};el.generateCartesianArc=function(e){let t=el.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};el.generateCartesianRhumbArc=function(e){let t=el.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};var Ii=el;function Du(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,l(this._material)||(this._material=qi.fromType(qi.ColorType,{color:new H(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=To(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Ii.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(Gle),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=se.fromPoints(this._actualPositions),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new se}var Hle=Du.POSITION_INDEX=0,r7e=Du.SHOW_INDEX=1,s7e=Du.WIDTH_INDEX=2,a7e=Du.MATERIAL_INDEX=3,qM=Du.POSITION_SIZE_INDEX=4,c7e=Du.DISTANCE_DISPLAY_CONDITION=5,Gle=Du.NUMBER_OF_PROPERTIES=6;function x_(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(Du.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,x_(this,r7e))}},positions:{get:function(){return this._positions},set:function(e){let t=To(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&x_(this,qM),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=se.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),x_(this,Hle),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,x_(this,a7e))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,x_(this,s7e))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,x_(this,qM)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),x_(this,c7e))}}});Du.prototype.update=function(){let e=F.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[Hle]>0||this._propertiesChanged[qM]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=Ii.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=se.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)x_(this,qM);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){x_(this,qM);break}}};Du.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};Du.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<Gle-1;++t)e[t]=0};Du.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var Vf=Du;var l7e=Vf.SHOW_INDEX,u7e=Vf.WIDTH_INDEX,Ej=Vf.POSITION_INDEX,f7e=Vf.MATERIAL_INDEX,Wle=Vf.POSITION_SIZE_INDEX,d7e=Vf.DISTANCE_DISPLAY_CONDITION,$le=Vf.NUMBER_OF_PROPERTIES,Hl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function ih(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array($le),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=H.clone(H.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(ih.prototype,{length:{get:function(){return Sj(this),this._polylines.length}}});ih.prototype.add=function(e){let t=new Vf(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};ih.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};ih.prototype.removeAll=function(){vj(this),nue(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};ih.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};ih.prototype.get=function(e){return Sj(this),this._polylines[e]};function h7e(e,t){l(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new Ex(t,n,e._polylines.length)}var Qle=new Gn,Jle=new oe,eue=new z;ih.prototype.update=function(e){if(Sj(this),this._polylines.length===0||!this.show)return;x7e(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(kt.maximumVertexTextureImageUnits===0)throw new ce("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");h7e(this,t),this._createBatchTable=!1}if(this._createVertexArray||p7e(this))Yle(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let u=c.length;for(let f=0;f<u;++f)i=c[f],i.update()}if(o[Wle]||o[f7e])Yle(this,t,n);else{let u=c.length,f=this._polylineBuckets;for(let d=0;d<u;++d){i=c[d],o=i._propertiesChanged;let p=i._bucket,g=0;for(let m in f)if(f.hasOwnProperty(m)){if(f[m]===p){o[Ej]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[l7e]||o[u7e])&&this._batchTable.setBatchedAttribute(i._index,0,new z(i._width,i._show)),this._batchTable.attributes.length>2){if(o[Ej]||o[Wle]){let m=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=Gn.fromCartesian(m.center,Qle),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,Jle);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[d7e]){let m=eue;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;l(x)&&(m.x=x.near,m.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,m)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<$le;++c)o[c]=0;let r=F.IDENTITY;e.mode===ne.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;m7e(this,e,c,r)}};var YM=new se,jle=new se;function m7e(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,u=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=u.length;for(let m=0;m<g;++m){let x=u[m],b=x.buckets,T=b.length;for(let C=0;C<T;++C){let A=b[C],E=A.offset,v=A.bucket.shaderProgram,D=A.bucket.polylines,O=D.length,R,M,N=0,_,S;for(let w=0;w<O;++w){let I=D[w],L=g7e(I._material);if(L!==R){if(l(R)&&N>0){let G=M.isTranslucent();a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=yt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(YM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,E+=N,N=0,c=!0,r.push(_)}M=I._material,M.update(o),R=L}let B=I._locatorBuckets,U=B.length;for(let G=0;G<U;++G){let k=B[G];k.locator===A&&(N+=k.count)}let V;t.mode===ne.SCENE3D?V=I._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=I._boundingVolume2D:t.mode===ne.SCENE2D?l(I._boundingVolume2D)&&(V=se.clone(I._boundingVolume2D,jle),V.center.x=0):l(I._boundingVolumeWC)&&l(I._boundingVolume2D)&&(V=se.union(I._boundingVolumeWC,I._boundingVolume2D,jle)),c?(c=!1,se.clone(V,YM)):se.union(V,YM,YM)}l(R)&&N>0&&(a>=s?(_=new Ze({owner:e}),n.push(_)):_=n[a],++a,S=yt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(YM,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=M.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=M.isTranslucent()?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=S,_.count=N,_.offset=E,c=!0,r.push(_)),R=void 0}}n.length=a}ih.prototype.isDestroyed=function(){return!1};ih.prototype.destroy=function(){return tue(this),vj(this),nue(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function p7e(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[Ej]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var qle=[0,0,0];function Yle(e,t,n){e._createVertexArray=!1,vj(e),tue(e),y7e(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let m=e._mode,x=new Float32Array(6*f*3),b=new Float32Array(f*4),T,C=0,A=0,E=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,C,A,E,r,t,n),m===ne.MORPHING&&(l(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,C));let S=g.lengthOfPositions;C+=6*S*3,A+=S*4,E+=S*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=_t.createVertexBuffer({context:t,typedArray:x,usage:v});let O;l(T)&&(O=_t.createVertexBuffer({context:t,typedArray:T,usage:v})),e._texCoordExpandAndBatchIndexBuffer=_t.createVertexBuffer({context:t,typedArray:b,usage:D});let R=3*Float32Array.BYTES_PER_ELEMENT,M=4*Float32Array.BYTES_PER_ELEMENT,N=0,_=i.length;for(let S=0;S<_;++S)if(o=i[S],o.length>0){let w=new Uint16Array(o),I=_t.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});N+=a[S];let L=6*(S*(R*P.SIXTY_FOUR_KILOBYTES)-N*R),B=R+L,U=R+B,V=R+U,G=R+V,k=R+G,W=S*(M*P.SIXTY_FOUR_KILOBYTES)-N*M,q=[{index:Hl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:L,strideInBytes:6*R},{index:Hl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Hl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:L,strideInBytes:6*R},{index:Hl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:Hl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Hl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Hl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:U,strideInBytes:6*R},{index:Hl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:Hl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Hl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Hl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:Hl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:Hl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:W}],J,j,K,Q;m===ne.SCENE3D?(j=e._positionBuffer,J="vertexBuffer",K=qle,Q="value"):m===ne.SCENE2D||m===ne.COLUMBUS_VIEW?(j=qle,J="value",K=e._positionBuffer,Q="vertexBuffer"):(j=O,J="vertexBuffer",K=e._positionBuffer,Q="vertexBuffer"),q[0][J]=j,q[1][J]=j,q[2][Q]=K,q[3][Q]=K,q[4][J]=j,q[5][J]=j,q[6][Q]=K,q[7][Q]=K,q[8][J]=j,q[9][J]=j,q[10][Q]=K,q[11][Q]=K;let de=new ti({context:t,attributes:q,indexBuffer:I});e._vertexArrays.push({va:de,buckets:u[S]})}}}function _7e(e,t){return t instanceof Pt?t.id:t}var Cz=[];function g7e(e){let t=qi._uniformList[e.type],n=t.length;Cz.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];Cz[i]=r,Cz[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(Cz,_7e)}`}function y7e(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,u=i[c.type];l(u)||(u=i[c.type]=new Am(c,t,n)),u.addPolyline(a)}}}function x7e(e,t){let n=t.mode;(e._mode!==n||!F.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=F.clone(e.modelMatrix),e._createVertexArray=!0)}function Sj(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function vj(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function tue(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}ih.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function nue(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function Aj(e,t,n){this.count=e,this.offset=t,this.bucket=n}function Am(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}Am.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};Am.prototype.updateShader=function(e,t,n){if(l(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),Ht.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new Ue({defines:i,sources:[`in vec4 v_pickColor; +`,this.material.shaderSource,Px]}),r=t.getVertexShaderCallback()(WM),s=new Ue({defines:i,sources:[_u,r]});this.shaderProgram=Qt.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:Hl})};function iue(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(cn.ORIGIN_ZX_PLANE)===jt.INTERSECTING}Am.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!iue(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var vs=new h,Uf=new h,zf=new h,Az=new h,b7e=new oe,T7e=new z;Am.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,u=a.ellipsoid.maximumRadius*P.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],m=g.width,x=g.show&&m>0,b=g._index,T=this.getSegments(g,a),C=T.positions,A=T.lengths,E=C.length,v=g.getPickId(s).color,D=0,O=0,R;for(let U=0;U<E;++U){U===0?g._loop?R=C[E-2]:(R=Az,h.subtract(C[0],C[1],R),h.add(C[0],R,R)):R=C[U-1],h.clone(R,Uf),h.clone(C[U],vs),U===E-1?g._loop?R=C[1]:(R=Az,h.subtract(C[E-1],C[E-2],R),h.add(C[E-1],R,R)):R=C[U+1],h.clone(R,zf);let V=A[D];U===O+V&&(O+=V,++D);let G=U-O===0,k=U===O+A[D]-1;c===ne.SCENE2D&&(Uf.z=0,vs.z=0,zf.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||k)&&u-Math.abs(vs.x)<1&&((vs.x<0&&Uf.x>0||vs.x>0&&Uf.x<0)&&h.clone(vs,Uf),(vs.x<0&&zf.x>0||vs.x>0&&zf.x<0)&&h.clone(vs,zf));let W=G?2:0,q=k?2:4;for(let J=W;J<q;++J){Gn.writeElements(vs,e,n),Gn.writeElements(Uf,e,n+6),Gn.writeElements(zf,e,n+12);let j=J-2<0?-1:1;t[o]=U/(E-1),t[o+1]=2*(J%2)-1,t[o+2]=j,t[o+3]=b,n+=6*3,o+=4}}let M=b7e;M.x=H.floatToByte(v.red),M.y=H.floatToByte(v.green),M.z=H.floatToByte(v.blue),M.w=H.floatToByte(v.alpha);let N=T7e;N.x=m,N.y=x?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,S=Gn.fromCartesian(_.center,Qle),w=S.high,I=oe.fromElements(S.low.x,S.low.y,S.low.z,_.radius,Jle),L=eue;L.x=0,L.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;l(B)&&(L.x=B.near,L.y=B.far),r.setBatchedAttribute(b,0,N),r.setBatchedAttribute(b,1,M),r.attributes.length>2&&(r.setBatchedAttribute(b,2,w),r.setBatchedAttribute(b,3,I),r.setBatchedAttribute(b,4,L))}};var C7e=new h,A7e=new h,E7e=new h,Xle=new h;Am.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,u=a.length,f=0,d=0;for(let p=0;p<u;++p){let g;p===0?s._loop?g=a[u-2]:(g=Xle,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=F.multiplyByPoint(n,g,A7e);let m=F.multiplyByPoint(n,a[p],C7e),x;p===u-1?s._loop?x=a[1]:(x=Xle,h.subtract(a[u-1],a[u-2],x),h.add(a[u-1],x,x)):x=a[p+1],x=F.multiplyByPoint(n,x,E7e);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,C=p===d+c[f]-1,A=T?2:0,E=C?2:4;for(let v=A;v<E;++v)Gn.writeElements(m,e,t),Gn.writeElements(g,e,t+6),Gn.writeElements(x,e,t+12),t+=6*3}}};var S7e=new Array(1);Am.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new Aj(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let u=this.polylines,f=u.length;for(let d=0;d<f;++d){let p=u[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=S7e;let x=p._actualPositions.length;if(x>0)g[0]=x;else continue}else g=p._segments.lengths;let m=g.length;if(m>0){let x=0;for(let b=0;b<m;++b){let T=g[b]-1;for(let C=0;C<T;++C)c+4>P.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new Aj(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new Aj(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Am.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var rE={positions:void 0,lengths:void 0},Kle=new Array(1),v7e=new h,w7e=new fe;Am.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return Kle[0]=n.length,rE.positions=n,rE.lengths=Kle,rE;iue(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=v7e;for(let u=0;u<s;++u)a=n[u],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,w7e)));if(o.length>0){e._boundingVolume2D=se.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(u.z,u.x,u.y)}return rE.positions=o,rE.lengths=e._segments.lengths,rE};var Zle;Am.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Zle,c=6*s*3;!l(a)||a.length<c?a=Zle=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.lengths,p=0,g=0,m=0,x;s=f.length;for(let b=0;b<s;++b){b===0?t._loop?x=f[s-2]:(x=Az,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,Uf),h.clone(f[b],vs),b===s-1?t._loop?x=f[1]:(x=Az,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,zf);let T=d[g];b===m+T&&(m+=T,++g);let C=b-m===0,A=b===m+d[g]-1;o===ne.SCENE2D&&(Uf.z=0,vs.z=0,zf.z=0),(o===ne.SCENE2D||o===ne.MORPHING)&&(C||A)&&r-Math.abs(vs.x)<1&&((vs.x<0&&Uf.x>0||vs.x>0&&Uf.x<0)&&h.clone(vs,Uf),(vs.x<0&&zf.x>0||vs.x>0&&zf.x<0)&&h.clone(vs,zf));let E=C?2:0,v=A?2:4;for(let D=E;D<v;++D)Gn.writeElements(vs,a,p),Gn.writeElements(Uf,a,p+6),Gn.writeElements(zf,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var oh=ih;function Ly(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new wu({batchTable:e.batchTable}),this._labelCollection=new Cm({batchTable:e.batchTable}),this._polylineCollection=new oh,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Ly.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function D7e(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+re.packedLength+ee.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,re.pack(n,s,a),a+=re.packedLength,ee.pack(t,s,a),s}var I7e=new pi("createVectorTilePoints",5),P7e=new h;function R7e(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=D7e(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=I7e.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let m=d[g],x=h.unpack(n,g*3,P7e),b=c.add();b.position=x,b._batchIndex=m;let T=u.add();T.text=" ",T.position=x,T._batchIndex=m;let C=f.add();C.positions=[h.clone(x),h.clone(x)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}Ly.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=n.get(a),f=i.get(a),d=o.get(a);t[c]=new g_(e,c,u,f,d)}};Ly.prototype.applyDebugSettings=function(e,t){e?(H.clone(t,this._billboardCollection._highlightColor),H.clone(t,this._labelCollection._highlightColor),H.clone(t,this._polylineCollection._highlightColor)):(H.clone(H.WHITE,this._billboardCollection._highlightColor),H.clone(H.WHITE,this._labelCollection._highlightColor),H.clone(H.WHITE,this._polylineCollection._highlightColor))};function O7e(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=g_.defaultPointSize,s.color=g_.defaultColor,s.pointOutlineColor=g_.defaultPointOutlineColor,s.pointOutlineWidth=g_.defaultPointOutlineWidth,s.labelColor=H.WHITE,s.labelOutlineColor=H.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=Wo.FILL,s.labelText=void 0,s.backgroundColor=new H(.165,.165,.165,.8),s.backgroundPadding=new z(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=H.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=_i.CENTER,s.verticalOrigin=Rn.CENTER,s.labelHorizontalOrigin=_i.RIGHT,s.labelVerticalOrigin=Rn.BASELINE}}var M7e=new H,L7e=new H,N7e=new H,F7e=new H,B7e=new H,k7e=new H,XM=new Bt,KM=new Bt,wj=new Lt;Ly.prototype.applyStyle=function(e,t){if(!l(e)){O7e(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,M7e)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,L7e)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,N7e)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,F7e)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,B7e)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(XM.near=a.x,XM.nearValue=a.y,XM.far=a.z,XM.farValue=a.w,s.scaleByDistance=XM):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(KM.near=a.x,KM.nearValue=a.y,KM.far=a.z,KM.farValue=a.w,s.translucencyByDistance=KM):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(wj.near=a.x,wj.far=a.y,s.distanceDisplayCondition=wj):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,k7e)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};Ly.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=R7e(this,e.mapProjection.ellipsoid)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};Ly.prototype.isDestroyed=function(){return!1};Ly.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),ue(this)};var ZM=Ly;function b_(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,h.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=Vn.BOTH}Object.defineProperties(b_.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function V7e(e){let t=new Float64Array(3+h.packedLength+ee.packedLength+re.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,re.pack(e._rectangle,t,n),t}function U7e(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=vn.unpack(t,n),n+=vn.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=H.unpack(t,n);n+=H.packedLength;let u=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new fm({color:c,offset:u,count:f,batchIds:p})}}var z7e=new pi("createVectorTilePolygons",5),H7e=new H;function G7e(e){if(l(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!l(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(re.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let g=e._batchTable,m=s.length;for(let x=0;x<m;++x){let b=g.getColor(x,H7e);s[x]=b.toRgba()}a=e._packedBuffer=V7e(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],u={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;l(f)&&l(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),u.minimumHeights=f,u.maximumHeights=d);let p=z7e.scheduleTask(u,c);if(l(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let m=new Float64Array(g.packedBuffer),x=m[0];U7e(e,m),e._indices=Ne.getSizeInBytes(x)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),W7e(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function W7e(e){l(e._primitive)||(e._primitive=new $x({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}b_.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};b_.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};b_.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};b_.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};b_.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=G7e(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};b_.prototype.isDestroyed=function(){return!1};b_.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var $M=b_;var QM=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function rh(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(rh.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function j7e(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var q7e=new pi("createVectorTilePolylines",5),sE={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function Y7e(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=j7e(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=q7e.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),X7e(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function X7e(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let u=_t.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=_t.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=_t.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=_t.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),m=_t.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),x=[{index:sE.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:sE.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:sE.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:x,indexBuffer:m}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var JM=new F,oue=new h;function K7e(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,JM),F.multiplyByPoint(JM,e._center,oue),F.setTranslation(JM,oue,JM),JM},u_highlightColor:function(){return e._highlightColor}})}function Z7e(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ve.fromCache({blending:un.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var $7e=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function Q7e(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(QM),o=n.getFragmentShaderCallback(!1,void 0,!1)($7e),r=new Ue({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[_u,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:sE})}function J7e(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:ve.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}rh.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let f=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let d=o[r],p=o[r+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[u++]=i[g],f[u++]=i[g+1],f[u++]=i[g+2]}}return f};rh.prototype.getPositions=function(e){return rh.getPolylinePositions(this,e)};rh.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ws(e,r)}};rh.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function eqe(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=H.WHITE}}var tqe=new H,nqe=H.WHITE,iqe=!0;rh.prototype.applyStyle=function(e,t){if(!l(e)){eqe(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,tqe):nqe,s.show=l(e.show)?e.show.evaluate(s):iqe}};rh.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Y7e(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}K7e(this,t),Q7e(this,t),Z7e(this);let n=e.passes;(n.render||n.pick)&&J7e(this,e)};rh.prototype.isDestroyed=function(){return!1};rh.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var Ib=rh;var eL=`in vec3 startEllipsoidNormal; +in vec3 endEllipsoidNormal; +in vec4 startPositionAndHeight; +in vec4 endPositionAndHeight; +in vec4 startFaceNormalAndVertexCorner; +in vec4 endFaceNormalAndHalfWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; +uniform vec2 u_minimumMaximumVectorHeights; + +out vec4 v_startPlaneEC; +out vec4 v_endPlaneEC; +out vec4 v_rightPlaneEC; +out float v_halfWidth; +out vec3 v_volumeUpEC; + +void main() +{ + // vertex corner IDs + // 3-----------7 + // /| left /| + // / | 1 / | + // 2-----------6 5 end + // | / | / + // start |/ right |/ + // 0-----------4 + // + float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end + float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top + + vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; + vec3 right = normalize(cross(forward, startEllipsoidNormal)); + + vec4 position = vec4(startPositionAndHeight.xyz, 1.0); + position.xyz += forward * isEnd; + + v_volumeUpEC = czm_normal * normalize(cross(right, forward)); + + // Push for volume height + float offset; + vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); + + // offset height to create volume + offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); + offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; + position.xyz += offset * ellipsoidNormal; + + // move from RTC to EC + position = u_modifiedModelView * position; + right = czm_normal * right; + + // Push for width in a direction that is in the start or end plane and in a plane with right + // N = normalEC ("right-facing" direction for push) + // R = right + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var tL=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function T_(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new z(li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight),this._boundingVolume=vn.fromRectangle(e.rectangle,li._defaultMinTerrainHeight,li._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=H.clone(H.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(T_.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function oqe(e,t,n){let i=li.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;vn.fromRectangle(c,o,r,n,a)}function rqe(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var sqe=new pi("createVectorTileClampedPolylines"),Ny={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function aqe(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=rqe(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=sqe.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),cqe(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function cqe(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=_t.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=_t.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=_t.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),m=_t.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),x=_t.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),b=_t.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),T=_t.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),C=_t.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),A=[{index:Ny.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Ny.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Ny.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Ny.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:A,indexBuffer:C}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var nL=new F,rue=new h;function lqe(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,nL),F.multiplyByPoint(nL,e._center,rue),F.setTranslation(nL,rue,nL),nL},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function sue(e){return Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.EQUAL,backOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})}function uqe(e){l(e._rs)||(e._rs=sue(!1),e._rs3DTiles=sue(!0))}function fqe(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(eL),o=n.getFragmentShaderCallback(!1,void 0,!0)(tL),r=new Ue({defines:["VECTOR_TILE",Ht.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[_u,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=Qt.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Ny})}function dqe(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new Ze({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:ve.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=Ze.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===Vn.TERRAIN||i===Vn.BOTH)&&t.commandList.push(n),(i===Vn.CESIUM_3D_TILE||i===Vn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}T_.prototype.getPositions=function(e){return Ib.getPolylinePositions(this,e)};T_.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Ws(e,r)}};T_.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function hqe(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=H.WHITE}}var mqe=new H,pqe=H.WHITE,_qe=!0;T_.prototype.applyStyle=function(e,t){if(!l(e)){hqe(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,mqe):pqe,s.show=l(e.show)?e.show.evaluate(s):_qe}};function gqe(e){return li.initialize().then(function(){oqe(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}T_.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=gqe(this).then(aqe(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}lqe(this,t),fqe(this,t),uqe(this);let n=e.passes;(n.render||n.pick)&&dqe(this,e)};T_.prototype.isDestroyed=function(){return!1};T_.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var iL=T_;var Dj=32767,yqe=new fe,xqe=new h;function bqe(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);Mn.zigZagDeltaDecode(s,a,c);let u=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],m=P.lerp(t.west,t.east,d/Dj),x=P.lerp(t.south,t.north,p/Dj),b=P.lerp(n,i,g/Dj),T=fe.fromRadians(m,x,b,yqe),C=o.cartographicToCartesian(T,xqe);h.pack(C,u,f*3)}return u}var oL=bqe;function ah(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,Sqe(this,i,o)}Object.defineProperties(ah.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function Tqe(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function Cqe(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var sh=Uint32Array.BYTES_PER_ELEMENT;function Aqe(e){return new Ib(e)}function Eqe(e){return new iL(e)}function Sqe(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=sh;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=sh;let s=o.getUint32(n,!0);if(n+=sh,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=sh,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=sh;let u=o.getUint32(n,!0);n+=sh;let f=o.getUint32(n,!0);n+=sh;let d=o.getUint32(n,!0);n+=sh;let p=o.getUint32(n,!0);n+=sh;let g=o.getUint32(n,!0);n+=sh;let m=o.getUint32(n,!0);n+=sh;let x=Mo(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,C;u>0&&(T=Mo(i,n,u),n+=u,f>0&&(C=new Uint8Array(t,n,f),C=new Uint8Array(C),n+=f));let A=y(x.POLYGONS_LENGTH,0),E=y(x.POLYLINES_LENGTH,0),v=y(x.POINTS_LENGTH,0),D=A+E+v,O=new Gp(e,D,T,C,Tqe(e));if(e._batchTable=O,D===0)return;let R=new Jd(x,b),M=R.getGlobalProperty("REGION");if(!l(M))throw new ce("Feature table global property: REGION must be defined");let N=re.unpack(M),_=M[4],S=M[5],w=e._tile.computedTransform,I=R.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(I)?(I=h.unpack(I),F.multiplyByPoint(w,I,I)):(I=re.center(N),I.height=P.lerp(_,S,.5),I=ee.WGS84.cartographicToCartesian(I));let L=Cqe(x,b);if(n+=(4-n%4)%4,A>0){R.featuresLength=A;let B=y(R.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let U=y(R.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(U))throw new ce("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=B.reduce(function(j,K){return j+K*2},0),G=U.reduce(function(j,K){return j+K},0),k=new Uint32Array(t,n,G);n+=d;let W=new Uint16Array(t,n,V);n+=p;let q,J;l(x.POLYGON_MINIMUM_HEIGHTS)&&l(x.POLYGON_MAXIMUM_HEIGHTS)&&(q=R.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),J=R.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new $M({positions:W,counts:B,indexCounts:U,indices:k,minimumHeight:_,maximumHeight:S,polygonMinimumHeights:q,polygonMaximumHeights:J,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:L.polygons,modelMatrix:w})}if(E>0){R.featuresLength=E;let B=y(R.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let U=R.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(U)){U=new Uint16Array(E);for(let J=0;J<E;++J)U[J]=2}let V=B.reduce(function(J,j){return J+j*3},0),G=new Uint16Array(t,n,V);n+=g;let k=e._tileset,W=k.examineVectorLinesFunction;if(l(W)){let J=oL(new Uint16Array(G),N,_,S,ee.WGS84);vqe(J,B,L.polylines,O,e.url,W)}let q=Aqe;l(k.classificationType)&&(q=Eqe),e._polylines=q({positions:G,widths:U,counts:B,batchIds:L.polylines,minimumHeight:_,maximumHeight:S,center:I,rectangle:N,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(v>0){let B=new Uint16Array(t,n,v*3);n+=m,e._points=new ZM({positions:B,batchIds:L.points,minimumHeight:_,maximumHeight:S,rectangle:N,batchTable:O})}}function Ij(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}ah.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};ah.prototype.getFeature=function(e){return l(this._features)||Ij(this),this._features[e]};ah.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};ah.prototype.applyStyle=function(e){l(this._features)||Ij(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};ah.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||Ij(this),this._batchTable.update(e,t),this._ready=!0)};ah.prototype.pick=function(e,t,n){};ah.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};ah.prototype.isDestroyed=function(){return!1};ah.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function vqe(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let u=t[c]*3,f=e.slice(a,a+u);a+=u,r(f,n[c],o,i)}}var rL=ah;var aue={b3dm:function(e,t,n,i,o){return xm.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return xm.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return xm.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return N1.fromTileType(e,t,n,i,o,aue)},externalTileset:function(e,t,n,i){return NM.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new B1(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new rL(e,t,n,i,o)},subt:function(e,t,n,i,o){return IA.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return IA.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ce("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return xm.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return xm.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return xm.fromGeoJson(e,t,n,i)}},Pb=aue;var wqe={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},jo=Object.freeze(wqe);var ch={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};ch.isBinaryFormat=function(e){switch(e){case ch.BATCHED_3D_MODEL:case ch.INSTANCED_3D_MODEL:case ch.COMPOSITE:case ch.POINT_CLOUD:case ch.VECTOR:case ch.GEOMETRY:case ch.IMPLICIT_SUBTREE:case ch.VOXEL_BINARY:case ch.GLTF_BINARY:return!0;default:return!1}};var ws=Object.freeze(ch);var Dqe={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},Hf=Object.freeze(Dqe);var Ks={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},C_=new Array(Ks.NUMBER_OF_PASSES);C_[Ks.RENDER]=Object.freeze({pass:Ks.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});C_[Ks.PICK]=Object.freeze({pass:Ks.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});C_[Ks.SHADOW]=Object.freeze({pass:Ks.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});C_[Ks.PRELOAD]=Object.freeze({pass:Ks.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.PRELOAD_FLIGHT]=Object.freeze({pass:Ks.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:Ks.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.MOST_DETAILED_PRELOAD]=Object.freeze({pass:Ks.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});C_[Ks.MOST_DETAILED_PICK]=Object.freeze({pass:Ks.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Ks.getPassOptions=function(e){return C_[e]};var Fo=Object.freeze(Ks);function Em(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties(Em.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});Em.prototype.hasProperty=function(e,t){return!1};Em.prototype.getFeature=function(e){};Em.prototype.applyDebugSettings=function(e,t){};Em.prototype.applyStyle=function(e){};Em.prototype.update=function(e,t){};Em.prototype.pick=function(e,t,n){};Em.prototype.isDestroyed=function(){return!1};Em.prototype.destroy=function(){return ue(this)};var aE=Em;function A_(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(A_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});A_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};A_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};A_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};A_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};A_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};A_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};A_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var sL=A_;function Pj(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){Pj._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new sL({content:n,class:o})}}Pj._oneTimeWarning=xt;var Rb=Pj;function Iqe(e,t){let n=e.metadataExtension;if(!l(n))return;let i=n.groups,o=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var Ob=Iqe;function E_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(E_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});E_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};E_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};E_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};E_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};E_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};E_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};E_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var aL=E_;function Rj(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){Rj._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new aL({tile:n,class:o})}}Rj._oneTimeWarning=xt;var cL=Rj;function Pqe(e){let t=new Uint8Array(e),n=Gd(t);if(n==="glTF"&&(n="glb"),ws.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=Rqe(t);if(l(i.root))return{contentType:ws.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:ws.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:ws.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:ws.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:ws.VOXEL_JSON,jsonPayload:i};throw new ce("Invalid tile content.")}function Rqe(e){let t;try{t=Mo(e)}catch{throw new ce("Invalid tile content.")}return t}var Sm=Pqe;function Gf(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;s<r;s++){let a=n.getDerivedResource({url:o[s].uri}),c=ec.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(Gf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function Oj(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function cue(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}Gf.prototype.requestInnerContents=function(){if(!Oqe(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;Oj(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=Mqe(this,n,t,this._tile._contentState);return Lqe(this)};function Oqe(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!ec.serverHasOpenSlots(n,t[n]))return!1;return ec.heapHasOpenSlots(e.length)}function Mqe(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new Ko({throttle:!0,throttleByServer:!0,type:fs.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let u=o.fetchArrayBuffer();if(l(u))return u.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){cue(e,i);return}return Oj(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){cue(e,i);return}Oj(e,-1),lue(e,t,f)}})}async function Lqe(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>Nqe(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function Nqe(e,t,n){if(l(t))try{let i=Sm(t);if(i.contentType===ws.EXTERNAL_TILESET)throw new ce("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===ws.GEOMETRY||i.contentType===ws.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=Pb[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=Rb(o,u));let f=Ob(o,u);return l(f)&&(a.group=new Yx({metadata:f})),a}catch(i){lue(e,n,i)}}function lue(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}Gf.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];l(t)&&t.cancel()}};Gf.prototype.hasProperty=function(e,t){return!1};Gf.prototype.getFeature=function(e){};Gf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};Gf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};Gf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};Gf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};Gf.prototype.isDestroyed=function(){return!1};Gf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var lL=Gf;var uue=Math.cos,fue=Math.sin,Fqe=Math.sqrt,Mj={};Mj.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,u=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=uue(f),p=fue(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*uue(m),b=d*fue(m),T=a.x*x,C=a.y*b,A=Fqe(T*x+C*b+g*p);if(r.x=T/A,r.y=C/A,r.z=g/A,n){let E=e.stNwCorner;l(E)?(f=E.latitude-e.stGranYCos*i+o*e.stGranXSin,m=E.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-u.west)*e.lonScalar,s.y=(f-u.south)*e.latScalar)}};var Bqe=new Bi,Wf=new h,kqe=new fe,Ez=new h,uL=new vi;function due(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,u=n*a,f=Math.sin(t),d=i*f,p=n*f;uL._ellipsoid=ee.default,Wf=uL.project(e,Wf),Wf=h.subtract(Wf,Ez,Wf);let g=Bi.fromRotation(t,Bqe);Wf=Bi.multiplyByVector(g,Wf,Wf),Wf=h.add(Wf,Ez,Wf),e=uL.unproject(Wf,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,C=Math.max(m,x,b,T),A=Math.min(m,x,b,T),E=e.longitude,v=E+r*u,D=E+s*d,O=E+s*d+r*u,R=Math.max(E,v,D,O),M=Math.min(E,v,D,O);return{north:C,south:A,east:R,west:M,granYCos:c,granYSin:d,granXCos:u,granXSin:p,nwCorner:e}}Mj.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,u=e.north,f=e.south,d=!1,p=!1;u===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=u-f;c>a?g=P.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,b=Math.ceil(m/t)+1,T=g/(x-1),C=m/(b-1),A=re.northwest(e,r),E=re.center(e,kqe);(n!==0||i!==0)&&(E.longitude<A.longitude&&(E.longitude+=P.TWO_PI),uL._ellipsoid=ee.default,Ez=uL.project(E,Ez));let v=C,D=T,O=0,R=0,M=re.clone(e,o),N={granYCos:v,granYSin:O,granXCos:D,granXSin:R,nwCorner:A,boundingRectangle:M,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=due(A,n,T,C,E,x,b);u=_.north,f=_.south,a=_.east,c=_.west,N.granYCos=_.granYCos,N.granYSin=_.granYSin,N.granXCos=_.granXCos,N.granXSin=_.granXSin,M.north=u,M.south=f,M.east=a,M.west=c}if(i!==0){n=n-i;let _=re.northwest(M,s),S=due(_,n,T,C,E,x,b);N.stGranYCos=S.granYCos,N.stGranXCos=S.granXCos,N.stGranYSin=S.granYSin,N.stGranXSin=S.granXSin,N.stNwCorner=_,N.stWest=S.west,N.stSouth=S.south}return N};var Ds=Mj;var Vqe=new se,Uqe=new se,zqe=new h,Hqe=new re;function hue(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,u=0,f=4;r&&(c-=1,a-=1,u+=1,f-=2),s&&(c-=1,a-=1,u+=1,f-=2),u+=c*o+2*a-f;let d=new Float64Array(u*3),p=0,g=0,m,x=zqe;if(r)Ds.computePosition(t,n,!1,g,0,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;else for(m=0;m<o;m++)Ds.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=o-1,g=1;g<i;g++)Ds.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;if(g=i-1,!s)for(m=o-2;m>=0;m--)Ds.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=0,g=i-2;g>0;g--)Ds.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;let b=d.length/3*2,T=Ne.createTypedArray(d.length/3,b),C=0;for(let E=0;E<d.length/3-1;E++)T[C++]=E,T[C++]=E+1;T[C++]=d.length/3-1,T[C++]=0;let A=new at({attributes:new fn,primitiveType:Me.LINES});return A.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),A.indices=T,A}function Gqe(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=hue(e,t),s=t.height,a=t.width,c=si.scaleToGeodeticHeight(r.attributes.position.values,n,o,!1),u=c.length,f=new Float64Array(u*2);f.set(c);let d=si.scaleToGeodeticHeight(r.attributes.position.values,i,o);f.set(d,u),r.attributes.position.values=f;let p=t.northCap,g=t.southCap,m=4;p&&(m-=1),g&&(m-=1);let x=(f.length/3+m)*2,b=Ne.createTypedArray(f.length/3,x);u=f.length/6;let T=0;for(let A=0;A<u-1;A++)b[T++]=A,b[T++]=A+1,b[T++]=A+u,b[T++]=A+u+1;b[T++]=u-1,b[T++]=0,b[T++]=u+u-1,b[T++]=u,b[T++]=0,b[T++]=u;let C;if(p)C=s-1;else{let A=a-1;b[T++]=A,b[T++]=A+u,C=a+s-2}if(b[T++]=C,b[T++]=C+u,!g){let A=a+C-1;b[T++]=A,b[T]=A+u}return r.indices=b,r}function lE(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,ee.default),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=re.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}lE.packedLength=re.packedLength+ee.packedLength+5;lE.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var mue=new re,pue=ee.clone(ee.UNIT_SPHERE),cE={rectangle:mue,ellipsoid:pue,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};lE.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,mue);t+=re.packedLength;let o=ee.unpack(e,t,pue);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=u===-1?void 0:u,n):(cE.granularity=r,cE.height=s,cE.rotation=a,cE.extrudedHeight=c,cE.offsetAttribute=u===-1?void 0:u,new lE(cE))};var Wqe=new fe;lE.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=Ds.computeOptions(t,e._granularity,e._rotation,0,Hqe,Wqe),o,r;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),u;if(c){if(o=Gqe(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===an.TOP?g=g.fill(1,0,p/2):(u=e._offsetAttribute===an.NONE?0:1,g=g.fill(u)),o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=se.fromRectangle3D(t,n,s,Uqe),d=se.fromRectangle3D(t,n,a,Vqe);r=se.union(f,d)}else{if(o=hue(e,i),o.attributes.position.values=si.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let f=o.attributes.position.values.length;u=e._offsetAttribute===an.NONE?0:1;let d=new Uint8Array(f/3).fill(u);o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=se.fromRectangle3D(t,n,s)}return new at({attributes:o.attributes,indices:o.indices,primitiveType:Me.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var Mb=lE;function fE(e){this.rectangle=re.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=y(e.ellipsoid,ee.WGS84);Kqe(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(fE.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});fE.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=vn.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)};var _ue=new h,Sz=new h,gue=new h,jqe=new h,qqe=new h,Yqe=new h,Xqe=new h,jf=new fe,yue=new cn(h.UNIT_X,0),uE=new mn;function Kqe(e,t,n){n.cartographicToCartesian(re.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(re.northeast(t),e.northeastCornerCartesian),jf.longitude=t.west,jf.latitude=(t.south+t.north)*.5,jf.height=0;let i=n.cartographicToCartesian(jf,Yqe),o=h.cross(i,h.UNIT_Z,jqe);h.normalize(o,e.westNormal),jf.longitude=t.east;let r=n.cartographicToCartesian(jf,Xqe),s=h.cross(h.UNIT_Z,r,_ue);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,_ue);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,qqe),u=t.south,f;if(u>0){jf.longitude=(t.west+t.east)*.5,jf.latitude=u;let x=n.cartographicToCartesian(jf,uE.origin);h.clone(c,uE.direction);let b=cn.fromPointNormal(e.southwestCornerCartesian,e.westNormal,yue);$n.rayPlane(uE,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,Sz)}else f=n.geodeticSurfaceNormalCartographic(re.southeast(t),Sz);let d=h.cross(f,a,gue);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){jf.longitude=(t.west+t.east)*.5,jf.latitude=p;let x=n.cartographicToCartesian(jf,uE.origin);h.negate(c,uE.direction);let b=cn.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,yue);$n.rayPlane(uE,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,Sz)}else g=n.geodeticSurfaceNormalCartographic(re.northwest(t),Sz);let m=h.cross(a,g,gue);h.normalize(m,e.northNormal)}var Zqe=new h,$qe=new h,Qqe=new h(0,-1,0),Jqe=new h(0,0,-1),xue=new h;function eYe(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!re.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(re.southwest(e.rectangle),Zqe),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(re.northeast(e.rectangle),$qe),f.z=f.y,f.y=f.x,f.x=0,d=Qqe,g=h.UNIT_Y,p=Jqe,m=h.UNIT_Z);let x=h.subtract(i,u,xue),b=h.dot(x,d),T=h.dot(x,p),C=h.subtract(i,f,xue),A=h.dot(C,g),E=h.dot(C,m);b>0?r+=b*b:A>0&&(r+=A*A),T>0?r+=T*T:E>0&&(r+=E*E)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s<a){let u=a-s;r+=u*u}return Math.sqrt(r)}fE.prototype.distanceToCamera=function(e){let t=eYe(this,e);if(e.mode===ne.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};fE.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};fE.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Mb({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new St({geometry:n,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var qf=fE;var fL={},tYe=new h,bue=new h,Tue=new h,Cue=new h,Aue=new vn;fL.validOutline=function(e){let n=vn.fromPoints(e,Aue).halfAxes,i=$.getColumn(n,0,bue),o=$.getColumn(n,1,Tue),r=$.getColumn(n,2,Cue),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};fL.computeProjectTo2DArguments=function(e,t,n,i){let o=vn.fromPoints(e,Aue),r=o.halfAxes,s=$.getColumn(r,0,bue),a=$.getColumn(r,1,Tue),c=$.getColumn(r,2,Cue),u=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(u,f,d);if(u===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===u?g=a:p===d&&(m=a),(p===u||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function Eue(e,t,n,i,o){let r=h.subtract(e,t,tYe),s=h.dot(n,r),a=h.dot(i,r);return z.fromElements(s,a,o)}fL.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=Eue(i[r],e,t,n);return o}};fL.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return Eue(i,e,t,n,o)}};var S_=fL;function nYe(e){let t=e.length,n=new Float64Array(t*3),i=Ne.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new at({attributes:s,indices:i,primitiveType:Me.LINES})}function Lb(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+1}Lb.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new Lb(t)};Lb.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var iYe={polygonHierarchy:{}};Lb.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return l(n)||(n=new Lb(iYe)),n._polygonHierarchy=i,n.packedLength=o,n};Lb.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=To(n,h.equalsEpsilon,!0),n.length<3||!S_.validOutline(n))return;let o=zn.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let u=new St({geometry:nYe(o[c])});r.push(u)}let s=Ln.combineInstances(r)[0],a=se.fromPoints(t.positions);return new at({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var Yf=Lb;var vz=new fe;function dL(e){let t=qp.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,ee.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=dYe(t,n,i,o);this._boundingPlanes=r;let s=_Ye(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=zj(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=zj(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=zj(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();vz=o.cartesianToCartographic(c,vz),vz.height=(i+n)/2,this.center=o.cartographicToCartesian(vz,c),this._boundingSphere=se.fromPoints(s)}var oYe=new h,rYe=new fe,sYe=new h,aYe=new fe,cYe=new h,lYe=new h,uYe=new h,fYe=new h;function dYe(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,oYe),a=i.cartesianToCartographic(r,rYe);a.height=n;let c=i.cartographicToCartesian(a,sYe),u=cn.fromPointNormal(c,s);o[0]=u;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,aYe),m.height=t;let b=cn.getPointDistance(u,i.cartographicToCartesian(m,cYe));b<f&&(f=b)}let x=cn.clone(u);for(x.normal=h.negate(x.normal,x.normal),x.distance=x.distance*-1+f,o[1]=x,d=0;d<4;d++){g=p[d];let b=p[(d+1)%4],T=i.geodeticSurfaceNormal(g,lYe),C=h.subtract(b,g,fYe),A=h.cross(C,T,uYe);A=h.normalize(A,A),o[2+d]=cn.fromPointNormal(g,A)}return o}var Nb=new h,Fb=new h,Bb=new h,Lj=new h,Nj=new h,Fj=new h,hYe=new h,mYe=new h,pYe=new h,Bj=new h,kj=new h,Vj=new h,Fy=new h,vm=new $;function Sue(e,t,n){Nb=e.normal,Fb=t.normal,Bb=n.normal,Lj=h.multiplyByScalar(e.normal,-e.distance,Lj),Nj=h.multiplyByScalar(t.normal,-t.distance,Nj),Fj=h.multiplyByScalar(n.normal,-n.distance,Fj),Bj=h.multiplyByScalar(h.cross(Fb,Bb,hYe),h.dot(Lj,Nb),Bj),kj=h.multiplyByScalar(h.cross(Bb,Nb,mYe),h.dot(Nj,Fb),kj),Vj=h.multiplyByScalar(h.cross(Nb,Fb,pYe),h.dot(Fj,Bb),Vj),vm[0]=Nb.x,vm[1]=Fb.x,vm[2]=Bb.x,vm[3]=Nb.y,vm[4]=Fb.y,vm[5]=Bb.y,vm[6]=Nb.z,vm[7]=Fb.z,vm[8]=Bb.z;let i=$.determinant(vm);return Fy=h.add(Bj,kj,Fy),Fy=h.add(Fy,Vj,Fy),new h(Fy.x/i,Fy.y/i,Fy.z/i)}function _Ye(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=Sue(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=Sue(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var Uj=new h,dE=new h;function zj(e,t){let n=[];for(let i=0;i<4;i++)Uj=h.subtract(t[(i+1)%4],t[i],Uj),dE=h.cross(e.normal,Uj,dE),dE=h.normalize(dE,dE),n[i]=h.clone(dE);return n}Object.defineProperties(dL.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var Hj=new h;dL.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;cn.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):cn.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,cn.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=Gj(cn.projectPointOntoPlane(c,t,Hj),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=vue(t,p[0],p[1]),h.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=Gj(cn.projectPointOntoPlane(c,t,Hj),i[r],c,this._edgeNormals[n[r]]),d=h.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=Gj(cn.projectPointOntoPlane(this._boundingPlanes[1],t,Hj),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+u)%4]):h.distance(t,this._vertices[4+(n[1]-2+u)%4])};var gYe=new h,yYe=new h;function vue(e,t,n){let i=h.subtract(n,t,gYe),o=h.subtract(e,t,yYe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var xYe=new cn(h.UNIT_X,0);function Gj(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let u=cn.fromPointNormal(t[c],i[c],xYe);cn.getPointDistance(u,e)<0||(a=vue(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}dL.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?jt.INSIDE:n===this._vertices.length?jt.OUTSIDE:jt.INTERSECTING};dL.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Yf({polygonHierarchy:{positions:this._planeVertices[0]}}),i=Yf.createGeometry(n),o=new St({geometry:i,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}}),r=new Yf({polygonHierarchy:{positions:this._planeVertices[1]}}),s=Yf.createGeometry(r),a=new St({geometry:s,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}}),c=[];for(let u=0;u<4;u++){let f=new Yf({polygonHierarchy:{positions:this._planeVertices[2+u]}}),d=Yf.createGeometry(f);c[u]=new St({geometry:d,id:"outline",modelMatrix:t,attributes:{color:Wt.fromColor(e)}})}return new Dn({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var hL=dL;var bYe=new h(1,1,1),wz=Math.cos,Dz=Math.sin;function hE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,bYe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),u=Math.round(y(e.subdivisions,128));this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=u,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}hE.packedLength=2*h.packedLength+8;hE.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var wue=new h,Due=new h,v_={radii:wue,innerRadii:Due,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};hE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,wue);t+=h.packedLength;let o=h.unpack(e,t,Due);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=u,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(v_.minimumClock=r,v_.maximumClock=s,v_.minimumCone=a,v_.maximumCone=c,v_.stackPartitions=u,v_.slicePartitions=f,v_.subdivisions=d,v_.offsetAttribute=p===-1?void 0:p,new hE(v_))};hE.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=ee.fromCartesian3(t),u=e._slicePartitions+1,f=e._stackPartitions+1;u=Math.round(u*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),u<2&&(u=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,m=!1,x=!1;g&&(p=2,r>0&&(m=!0,d+=u),s<Math.PI&&(x=!0,d+=u));let b=a*p*(f+u),T=new Float64Array(b*3),C=2*(b+d-(u+f)*p),A=Ne.createTypedArray(b,C),E,v,D,O,R=0,M=new Array(f),N=new Array(f);for(E=0;E<f;E++)O=r+E*(s-r)/(f-1),M[E]=Dz(O),N[E]=wz(O);let _=new Array(a),S=new Array(a);for(E=0;E<a;E++)D=i+E*(o-i)/(a-1),_[E]=Dz(D),S[E]=wz(D);for(E=0;E<f;E++)for(v=0;v<a;v++)T[R++]=t.x*M[E]*S[v],T[R++]=t.y*M[E]*_[v],T[R++]=t.z*N[E];if(g)for(E=0;E<f;E++)for(v=0;v<a;v++)T[R++]=n.x*M[E]*S[v],T[R++]=n.y*M[E]*_[v],T[R++]=n.z*N[E];for(M.length=a,N.length=a,E=0;E<a;E++)O=r+E*(s-r)/(a-1),M[E]=Dz(O),N[E]=wz(O);for(_.length=u,S.length=u,E=0;E<u;E++)D=i+E*(o-i)/(u-1),_[E]=Dz(D),S[E]=wz(D);for(E=0;E<a;E++)for(v=0;v<u;v++)T[R++]=t.x*M[E]*S[v],T[R++]=t.y*M[E]*_[v],T[R++]=t.z*N[E];if(g)for(E=0;E<a;E++)for(v=0;v<u;v++)T[R++]=n.x*M[E]*S[v],T[R++]=n.y*M[E]*_[v],T[R++]=n.z*N[E];for(R=0,E=0;E<f*p;E++){let L=E*a;for(v=0;v<a-1;v++)A[R++]=L+v,A[R++]=L+v+1}let w=f*a*p;for(E=0;E<u;E++)for(v=0;v<a-1;v++)A[R++]=w+E+v*u,A[R++]=w+E+(v+1)*u;if(g)for(w=f*a*p+u*a,E=0;E<u;E++)for(v=0;v<a-1;v++)A[R++]=w+E+v*u,A[R++]=w+E+(v+1)*u;if(g){let L=f*a*p,B=L+a*u;if(m)for(E=0;E<u;E++)A[R++]=L+E,A[R++]=B+E;if(x)for(L+=a*u-u,B+=a*u-u,E=0;E<u;E++)A[R++]=L+E,A[R++]=B+E}let I=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(l(e._offsetAttribute)){let L=T.length,B=e._offsetAttribute===an.NONE?0:1,U=new Uint8Array(L/3).fill(B);I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:U})}return new at({attributes:I,indices:A,primitiveType:Me.LINES,boundingSphere:se.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var Iu=hE;function mE(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new Iu(i),this._workerName="createSphereOutlineGeometry"}mE.packedLength=Iu.packedLength;mE.pack=function(e,t,n){return Iu.pack(e._ellipsoidGeometry,t,n)};var TYe=new Iu,kb={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};mE.unpack=function(e,t,n){let i=Iu.unpack(e,t,TYe);return kb.stackPartitions=i._stackPartitions,kb.slicePartitions=i._slicePartitions,kb.subdivisions=i._subdivisions,l(n)?(h.clone(i._radii,kb.radii),n._ellipsoidGeometry=new Iu(kb),n):(kb.radius=i._radii.x,new mE(kb))};mE.createGeometry=function(e){return Iu.createGeometry(e._ellipsoidGeometry)};var w_=mE;function pE(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new se(e,t)}Object.defineProperties(pE.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});pE.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};pE.prototype.intersectPlane=function(e){return se.intersectPlane(this._boundingSphere,e)};pE.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};pE.prototype.createDebugVolume=function(e){let t=new w_({radius:this.radius}),n=F.fromTranslation(this.center,new F.clone(F.IDENTITY)),i=new St({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var D_=pE;var CYe=new h,AYe=new h,EYe=new h,SYe=new h;function Vb(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function Wj(e,t){let n=h.normalize(e,SYe),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return Vb(e,i,t)}function Iue(e){let t=$.getColumn(e,0,CYe),n=$.getColumn(e,1,AYe),i=$.getColumn(e,2,EYe),o=h.equals(t,h.ZERO),r=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(o&&!r&&!s?t=Vb(n,i,t):!o&&r&&!s?n=Vb(t,i,n):!o&&!r&&s?i=Vb(n,t,i):o?r?s||(t=Wj(i,t),n=Vb(i,t,n)):(t=Wj(n,t),i=Vb(n,t,i)):(n=Wj(t,n),i=Vb(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function _E(e,t){t=Iue(t),this._orientedBoundingBox=new vn(e,t),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(_E.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});_E.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};_E.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};_E.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=Iue(t),$.clone(t,this._orientedBoundingBox.halfAxes),se.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};_E.prototype.createDebugVolume=function(e){let t=new Md({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new St({geometry:t,id:"outline",modelMatrix:n,attributes:{color:Wt.fromColor(e)}});return new Dn({geometryInstances:i,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})};var Pu=_E;function nr(e,t,n,i){this._tileset=e,this._header=n;let o=l(n.contents),r=o&&n.contents.length>1||oi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),u=l(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(u,this.transform,new F),this.computedTransform=c,this.metadata=cL(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,nr._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&nr._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?Go.REPLACE:Go.ADD):l(i)?p=i.refine:p=Go.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=we.createIfNeeded(t),r)x=jo.UNLOADED,b=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(nr._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(nr._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new aE(e,this),m=!0,x=jo.READY):(x=jo.UNLOADED,b=t.getDerivedResource({url:v}),T=ec.getServerKey(b.getUrlComponent()))}else g=new aE(e,this),m=!0,x=jo.READY;this._content=g,this._contentResource=b,this._contentState=x,this._expiredContent=void 0,this._serverKey=T,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let C=n.expire,A,E;l(C)&&(A=C.duration,l(C.date)&&(E=Z.fromIso8601(C.date))),this.expireDuration=A,this.expireDate=E,this.lastStyleTime=0,this._optimChildrenWithinParent=Hf.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=H.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new Z,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}nr._deprecationWarning=ds;Object.defineProperties(nr.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new H),H.clone(this._color)},set:function(e){this._color=H.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===jo.READY}},contentUnloaded:{get:function(){return this._contentState===jo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===jo.EXPIRED}},contentFailed:{get:function(){return this._contentState===jo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var By=new h;function vYe(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,By),c=h.add(s.positionWC,a,By),u=h.subtract(c,r,By);if(h.magnitude(u)>o){let E=h.normalize(u,By),v=h.multiplyByScalar(E,o,By),D=h.add(r,v,By),O=h.subtract(D,s.positionWC,By),R=h.normalize(O,By);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,R))}else e._foveatedFactor=0;let p=e.refine===Go.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Fo.PRELOAD_FLIGHT||n._pass===Fo.PRELOAD)return!1;let m=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*m;if(e._foveatedFactor<=x)return!1;let b=m-x,T=P.clamp((e._foveatedFactor-x)/b,0,1),C=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),A=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-C<=A}var Mue=new Z;nr.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof rn){let g=u.offCenterFrustum;l(g)&&(u=g);let m=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=u.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,b=i.dynamicScreenSpaceErrorFactor,T=P.fog(g,x)*b;p-=T}}return p/=e.pixelRatio,p};function wYe(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function DYe(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}nr.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:ps.MASK_INDETERMINATE;this.updateTransform(i,e),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ps.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=DYe(n,this),this._priorityProgressiveResolution=wYe(n,this),this.priorityDeferred=vYe(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};nr.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=Z.now(Mue);Z.lessThan(this.expireDate,e)&&(this._contentState=jo.EXPIRED,this._expiredContent=this._content)}};function IYe(e){if(!l(e.expireDuration))return;let t=Z.now(Mue);Z.addSeconds(t,e.expireDuration,t),l(e.expireDate)?Z.lessThan(e.expireDate,t)&&Z.clone(t,e.expireDate):e.expireDate=Z.clone(t)}function PYe(e){return function(){return e._priority}}nr.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?RYe(this):MYe(this)};function RYe(e){let t=e._content,n=e._tileset;if(!l(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new lL(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=jo.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=jo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=jo.FAILED,o})}async function OYe(e,t,n,i,o){let r=e._contentState;e._contentState=jo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=jo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await LYe(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=jo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=jo.FAILED,a}}function MYe(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new Ko({throttle:!0,throttleByServer:!0,type:fs.TILES3D,priorityFunction:PYe(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return OYe(e,o,i,n,r)}async function LYe(e,t){let n=Sm(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===ws.GEOMETRY||n.contentType===ws.VECTOR,(n.contentType===ws.IMPLICIT_SUBTREE||n.contentType===ws.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===ws.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=Pb[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=Rb(i,s));let a=Ob(i,s);return l(a)&&(o.group=new Yx({metadata:a})),o}nr.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};nr.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=jo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var Lue=new se;function qj(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Lue);e._boundingVolume2D=new D_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function NYe(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Lue);e._contentBoundingVolume2D=new D_(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}nr.prototype.visibility=function(e,t){let n=e.cullingVolume,i=qj(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==jt.INSIDE,a===jt.OUTSIDE)return ps.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==jt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};nr.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return jt.INSIDE;if(this._visibilityPlaneMask===ps.MASK_INSIDE)return jt.INSIDE;let t=e.cullingVolume,n=NYe(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==jt.INSIDE,s===jt.OUTSIDE)return jt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==jt.OUTSIDE,s===jt.INSIDE)return jt.OUTSIDE}return t.computeVisibility(n)};nr.prototype.distanceToTile=function(e){return qj(this,e).distanceToCamera(e)};var FYe=new h;nr.prototype.distanceToTileCenter=function(e){let n=qj(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,FYe);return h.dot(e.camera.directionWC,i)};nr.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var Nue=new $,Fue=new h,BYe=new $,Yj=new h,Bue=new re,kue=new vn,jj=new F;function kYe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Yj),o=$.fromArray(e,3,BYe);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,Nue);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new Pu(i,o)}function VYe(e,t,n,i){let o=re.unpack(e,0,Bue),r=e[4],s=e[5],a=vn.fromRectangle(o,r,s,ee.WGS84,kue),c=a.center,u=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,jj),jj),c=F.multiplyByPoint(t,c,c);let f=F.getMatrix3(t,Nue);return u=$.multiply(f,u,u),l(i)&&i instanceof Pu?(i.update(c,u),i):new Pu(c,u)}function UYe(e,t,n,i){if(!F.equalsEpsilon(t,n,P.EPSILON8))return VYe(e,t,n,i);let o=re.unpack(e,0,Bue);return l(i)?(i.rectangle=re.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(ee.WGS84),i):new qf({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function zYe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],Yj),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,Fue),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new D_(i,o)}nr.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=fb.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new ce("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new hL(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=kYe(r,t,n);return this._verticalExaggeration!==1&&Pue(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=UYe(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof Pu?Pue(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=Cr.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=Cr.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(ee.WGS84))),c}if(l(a)){let c=zYe(a,t,n);if(this._verticalExaggeration!==1){let u=Cr.getPosition(c.center,ee.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,Yj),f=c.radius*this._verticalExaggeration;c.update(u,f)}return c}throw new ce("boundingVolume must contain a sphere, region, or box")};var HYe=h.unpackArray(new Array(8*3).fill(0));function Pue(e,t,n){let i=e.boundingVolume.computeCorners(HYe).map(r=>Cr.getPosition(r,ee.WGS84,t,n,r)),o=vn.fromPoints(i,kue);e.update(o.center,o.halfAxes)}nr.prototype.updateTransform=function(e,t){e=y(e,F.IDENTITY);let n=F.multiplyTransformation(e,this.transform,jj),i=!F.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&F.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};nr.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,Fue),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function GYe(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=H.WHITE:c=H.DARKGRAY:c=H.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=Wt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(H.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(H.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=H.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function WYe(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=jo.FAILED,o}}function jYe(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function qYe(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}nr.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;jYe(this,e),qYe(this,e),GYe(this,e,t,n),WYe(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===ve.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1};var Rue=[];nr.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(IYe(this),this._selectedFrame=0,this.lastStyleTime=0,Z.now(this._loadTimestamp),this._contentState=jo.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=Rue;try{this._content.update(e,t)}catch(i){throw this._contentState=jo.FAILED,i}Rue.length=0,t.commandList=n};function Oue(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function Iz(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}nr.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,u=o,f=c+u,d=r,p=Math.pow(10,f),g=f+d,m=r,x=Math.pow(10,g),b=g+m,T=Math.pow(10,b),C=Iz(this._depth,n.depth,i.depth);C=t?1-C:C;let E=!e.isSkippingLevelOfDetail&&this.refine===Go.REPLACE?Iz(this._priorityHolder._distanceToCamera,n.distance,i.distance):Iz(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=Oue(E,a,s),D=this._priorityProgressiveResolution?0:p,O=Iz(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),R=Oue(O,u,c),M=this.priorityDeferred?x:0,N=e._pass===Fo.PRELOAD_FLIGHT?0:T;this._priority=C+v+D+R+M+N};nr.prototype.isDestroyed=function(){return!1};nr.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),ue(this)};var Xf=nr;function I_(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(I_.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});I_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};I_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};I_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};I_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};I_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};I_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};I_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var gE=I_;function P_(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(P_.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});P_.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};P_.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};P_.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};P_.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};P_.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};P_.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};P_.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var mL=P_;function Vue(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;l(i)&&(o=new mL({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let u=0;u<c;u++){let f=a[u];s.push(new gE({group:f,class:n.classes[f.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let u=0;u<c;u++){let f=r[u];if(a.hasOwnProperty(f)){let d=a[f];s.push(new gE({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Vue.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var Ub=Vue;var Uue={},YYe=new h;Uue.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Pu||i instanceof qf){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=Hf.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof Pu||a instanceof qf)){e._optimChildrenWithinParent=Hf.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,u=h.subtract(c.center,o.center,YYe),f=h.magnitude(u);h.divideByScalar(u,f,u);let d=Math.abs(o.halfAxes[0]*u.x)+Math.abs(o.halfAxes[1]*u.y)+Math.abs(o.halfAxes[2]*u.z)+Math.abs(o.halfAxes[3]*u.x)+Math.abs(o.halfAxes[4]*u.y)+Math.abs(o.halfAxes[5]*u.z)+Math.abs(o.halfAxes[6]*u.x)+Math.abs(o.halfAxes[7]*u.y)+Math.abs(o.halfAxes[8]*u.z),p=Math.abs(c.halfAxes[0]*u.x)+Math.abs(c.halfAxes[1]*u.y)+Math.abs(c.halfAxes[2]*u.z)+Math.abs(c.halfAxes[3]*u.x)+Math.abs(c.halfAxes[4]*u.y)+Math.abs(c.halfAxes[5]*u.z)+Math.abs(c.halfAxes[6]*u.x)+Math.abs(c.halfAxes[7]*u.y)+Math.abs(c.halfAxes[8]*u.z);if(d<=p+f){e._optimChildrenWithinParent=Hf.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===Hf.USE_OPTIMIZATION};var pL=Uue;function _L(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(_L.prototype,{length:{get:function(){return this._length}}});function XYe(e,t,n){this.item=e,this.previous=t,this.next=n}_L.prototype.add=function(e){let t=new XYe(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function zue(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}_L.prototype.remove=function(e){l(e)&&(zue(this,e),--this._length)};_L.prototype.splice=function(e,t){if(e===t)return;zue(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var gL=_L;function zb(){this._list=new gL,this._sentinel=this._list.add(),this._trimTiles=!1}zb.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};zb.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};zb.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};zb.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};zb.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=this._sentinel,r=i.head;for(;r!==o&&(e.totalMemoryUsageInBytes>e.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};zb.prototype.trim=function(){this._trimTiles=!0};var yL=zb;function Pz(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function Kj(e,t){let n;return t==="_loadTimestamp"?n=Z.toDate(e).getTime():n=e,n}Pz.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=Kj(e,n),this._referenceMaximum[n]=Kj(t,n)};function KYe(e,t){let n=e.tilePropertyName;if(l(n)){let i=Kj(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var Xj=[new H(.1,.1,.1,1),new H(.153,.278,.878,1),new H(.827,.231,.49,1),new H(.827,.188,.22,1),new H(1,.592,.259,1),new H(1,.843,0,1)];Pz.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=KYe(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,u=Xj.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=Xj[d],x=Xj[p],b=H.clone(H.WHITE);b.red=P.lerp(m.red,x.red,g),b.green=P.lerp(m.green,x.green,g),b.blue=P.lerp(m.blue,x.blue,g),e._debugColor=b};Pz.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var xL=Pz;function yE(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}yE.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function Rz(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p<d;++p)Rz(e,o[p],n,i)}}yE.prototype.incrementSelectionCounts=function(e){Rz(this,e,!1,!1)};yE.prototype.incrementLoadCounts=function(e){Rz(this,e,!1,!0)};yE.prototype.decrementLoadCounts=function(e){Rz(this,e,!0,!0)};yE.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var R_=yE;function bL(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(bL.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});bL.prototype.makeDirty=function(){this._styleDirty=!0};bL.prototype.resetDirty=function(){this._styleDirty=!1};bL.prototype.applyStyle=function(e){if(!l(e.root)||l(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var TL=bL;function ZYe(e,t,n){let i=oi(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!l(o.box)&&!l(o.region)&&!oi(o,"3DTILES_bounding_volume_S2")&&!oi(o,"3DTILES_bounding_volume_cylinder"))throw new ce("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new we({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=$Ye(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Ge(a,!0));let c=new we({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=QYe(t),this.subdivisionScheme=es[i.subdivisionScheme],this.branchingFactor=es.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function $Ye(e){if(oi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function QYe(e){let t=Ge(e,!0);return l(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var Hb=ZYe;var CL={};function Hue(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function Zj(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function Gue(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function $j(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}CL.encode2D=function(e,t){return(Hue(e)|Hue(t)<<1)>>>0};CL.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=Gue(e),t[1]=Gue(e>>1),t};CL.encode3D=function(e,t,n){return Zj(e)|Zj(t)<<1|Zj(n)<<2};CL.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=$j(e),t[1]=$j(e>>1),t[2]=$j(e>>2),t};var ky=CL;function qo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===es.OCTREE&&(this.z=e.z)}Object.defineProperties(qo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===es.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===es.OCTREE?ky.encode3D(this.x,this.y,this.z):ky.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===es.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});qo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===es.OCTREE){let o=(this.z<<e.level)+e.z;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};qo.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===es.OCTREE){let r=Math.floor(this.z/t);return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};qo.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===es.OCTREE){let r=e.z%n;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};qo.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===es.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new qo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};qo.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};qo.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};qo.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===es.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};qo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===es.OCTREE?this.z===e.z:!0)};qo.prototype.isImplicitTilesetRoot=function(){return this.level===0};qo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};qo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};qo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===es.OCTREE&&(e.z=this.z),e};var Wue=[0,0,0];qo.fromMortonIndex=function(e,t,n,i){let o;return e===es.OCTREE?(o=ky.decode3D(i,Wue),new qo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=ky.decode2D(i,Wue),new qo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};qo.fromTileIndex=function(e,t,n){let i,o,r;return e===es.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),qo.fromMortonIndex(e,t,i,r)};var Gb=qo;function O_(){}O_.selectTiles=function(e,t){he.throwInstantiationError()};O_.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};O_.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};O_.selectTile=function(e,t){if(e.contentVisibility(t)===jt.OUTSIDE)return;e._wasSelectedLastFrame=!0;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&(i._selectedTilesToStyle.push(e),e._wasSelectedLastFrame=!1),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};O_.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};O_.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};O_.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!JYe(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function JYe(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}O_.updateTile=function(e,t){jue(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,nXe(e),e._shouldSelect=!1,e._finalResolution=!0};function jue(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];jue(r,t),e._visible=r._visible;return}if(eXe(e,t)){e._visible=!1;return}let i=e.refine===Go.REPLACE,o=e._optimChildrenWithinParent===Hf.USE_OPTIMIZATION;if(i&&o&&n&&!tXe(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function eXe(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==Go.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function tXe(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function nXe(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var Zs=O_;function que(){}var AL={stack:new Xc,stackMaximumLength:0};que.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=Zs,s=AL.stack;for(s.push(i);s.length>0;){AL.stackMaximumLength=Math.max(AL.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===Go.ADD,u=a.refine===Go.REPLACE,f=iXe(a);f&&oXe(a,s,t),(c||u&&!f)&&(rXe(e,a),o(a,t),sXe(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return AL.stack.trim(AL.stackMaximumLength),n};function iXe(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function oXe(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function rXe(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function sXe(e,t){e.contentAvailable&&e.contentVisibility(t)!==jt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var EL=que;function Yue(){}var SL={stack:new Xc,stackMaximumLength:0},vL={stack:new Xc,stackMaximumLength:0};Yue.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;cXe(n,t),SL.stack.trim(SL.stackMaximumLength),vL.stack.trim(vL.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function Qj(e,t){e.contentAvailable&&Zs.selectTile(e,t)}function aXe(e,t,n){let i=e.refine===Go.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=Zs;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(Zs.sortChildrenByDistanceToCamera);let u=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let m=0;m<r.length;++m){let x=r[m];if(x.isVisible?(t.push(x),x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),d=!0):(u||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),u){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=lXe(x,n):b=!1,f=f&&b}}if(d||(f=!1),p!==-1&&i){let m=r[p];m._wasMinPriorityChild=!0;let x=(e._wasMinPriorityChild||e===o.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;x._foveatedFactor=Math.min(m._foveatedFactor,x._foveatedFactor),x._distanceToCamera=Math.min(m._distanceToCamera,x._distanceToCamera);for(let b=0;b<r.length;++b)r[b]._priorityHolder=x}return f}function cXe(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=Zs,a=SL.stack;for(a.push(e);a.length>0;){SL.stackMaximumLength=Math.max(SL.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?aXe(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===Go.ADD?(Qj(c,t),o(c,t)):c.refine===Go.REPLACE&&(o(c,t),d&&Qj(c,t)):(n._emptyTiles.push(c),o(c,t),d&&Qj(c,t)),r(c,t),s(c,t)}}function lXe(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=Zs,s=!0,a=vL.stack;for(a.push(e);a.length>0;){vL.stackMaximumLength=Math.max(vL.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c);if(!d&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let p=0;p<f;++p){let g=u[p];a.push(g)}}return e.hasEmptyContent||s}var wL=Yue;function Xue(){}var DL={stack:new Xc,stackMaximumLength:0},IL={stack:new Xc,stackMaximumLength:0},M_={stack:new Xc,stackMaximumLength:0,ancestorStack:new Xc,ancestorStackMaximumLength:0},uXe=2;Xue.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(Zs.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;_Xe(n,t),gXe(n,t),DL.stack.trim(DL.stackMaximumLength),IL.stack.trim(IL.stackMaximumLength),M_.stack.trim(M_.stackMaximumLength),M_.ancestorStack.trim(M_.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function fXe(e,t){let{updateTile:n,touchTile:i,selectTile:o}=Zs,r=IL.stack;for(r.push(e);r.length>0;){IL.stackMaximumLength=Math.max(IL.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let u=a[c];u.isVisible&&(u.contentAvailable?(n(u,t),i(u,t),o(u,t)):u._depth-e._depth<uXe&&r.push(u))}}}function Oz(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:fXe(e,t)}function dXe(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function hXe(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function mXe(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=Zs;for(let u=0;u<o.length;++u)r(o[u],n);o.sort(Zs.sortChildrenByDistanceToCamera);let c=!1;for(let u=0;u<o.length;++u){let f=o[u];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function pXe(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function _Xe(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=Zs,c=DL.stack;for(c.push(e);c.length>0;){DL.stackMaximumLength=Math.max(DL.stackMaximumLength,c.length);let u=c.pop();dXe(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?mXe(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===Go.ADD?(Oz(u,t),r(u,t)):u.refine===Go.REPLACE&&(pXe(u,i)?(r(u,t),p&&Oz(u,t)):p?(Oz(u,t),r(u,t)):hXe(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&Oz(u,t)),s(u,t),a(u,t)}}function gXe(e,t){let{selectTile:n,canTraverse:i}=Zs,{stack:o,ancestorStack:r}=M_,s;for(o.push(e);o.length>0||r.length>0;){if(M_.stackMaximumLength=Math.max(M_.stackMaximumLength,o.length),M_.ancestorStackMaximumLength=Math.max(M_.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===Go.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let u=a.children;for(let f=0;f<u.length;++f){let d=u[f];d.isVisible&&o.push(d)}}}}var PL=Xue;function ir(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new yL,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new Xc,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._memoryAdjustedScreenSpaceError=this._maximumScreenSpaceError,this._cacheBytes=y(e.cacheBytes,512*1024*1024);let t=y(e.maximumCacheOverflowBytes,512*1024*1024);this._maximumCacheOverflowBytes=t,this._styleEngine=new TL,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),this._addHeightCallbacks=[],this._statistics=new R_,this._statisticsLast=new R_,this._statisticsPerPass=new Array(Fo.NUMBER_OF_PASSES);for(let o=0;o<Fo.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new R_;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new xL(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._initialClippingPlanesOriginMatrix=F.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!0),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=y(e.dynamicScreenSpaceErrorDensity,2e-4),this.dynamicScreenSpaceErrorFactor=y(e.dynamicScreenSpaceErrorFactor,24),this.dynamicScreenSpaceErrorHeightFalloff=y(e.dynamicScreenSpaceErrorHeightFalloff,.25),this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=Ml.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new gm(e.pointCloudShading),this._pointCloudEyeDomeLighting=new a_,this.loadProgress=new me,this.allTilesLoaded=new me,this.initialTilesLoaded=new me,this.tileLoad=new me,this.tileUnload=new me,this.tileFailed=new me,this.tileVisible=new me,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,l(e.clippingPlanes)&&_s.setOwner(e.clippingPlanes,this,"_clippingPlanes"),this._clippingPolygons=void 0,l(e.clippingPolygons)&&Kd.setOwner(e.clippingPolygons,this,"_clippingPolygons"),l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new qx,this._shouldDestroyImageBasedLighting=!0),this._environmentMapManager=new i_(e.environmentMapOptions),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,H.BLACK),this.splitDirection=y(e.splitDirection,Nr.NONE),this.enableCollision=y(e.enableCollision,!1),this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&xt("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i}Object.defineProperties(ir.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Kd.setOwner(e,this,"_clippingPolygons")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return ds("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e,this._memoryAdjustedScreenSpaceError=e}},cacheBytes:{get:function(){return this._cacheBytes},set:function(e){this._cacheBytes=e}},maximumCacheOverflowBytes:{get:function(){return this._maximumCacheOverflowBytes},set:function(e){this._maximumCacheOverflowBytes=e}},memoryAdjustedScreenSpaceError:{get:function(){return this._memoryAdjustedScreenSpaceError}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(F.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):F.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},environmentMapManager:{get:function(){return this._environmentMapManager}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,nfe(this)}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});ir.fromIonAssetId=async function(e,t){let n=await xu.fromAssetId(e);return ir.fromUrl(n,t)};ir.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await ir.loadJson(n),r=await yXe(n,o),s=new ir(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras,nfe(s);let c=l(o.asset.gltfUpAxis)?Oo.fromName(o.asset.gltfUpAxis):Oo.Y,u=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,Oo.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=u,s._modelForwardAxis=f,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,F.IDENTITY).boundingSphere.center,g=s._ellipsoid.cartesianToCartographic(p);return l(g)&&g.height>li._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Mt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};ir.loadJson=function(e){return we.createIfNeeded(e).fetchJson()};ir.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};ir.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new ce("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ce("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&ir.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Kue(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===Go.ADD;let u=c._header.children;if(l(u))for(let f=0;f<u.length;++f){let d=u[f],p=Kue(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&pL.checkChildrenWithinParent(c)}return s};function Kue(e,t,n,i){if(!(l(n.implicitTiling)||oi(n,"3DTILES_implicit_tiling")))return new Xf(e,t,n,i);let r=e.schema,s=new Hb(t,n,r),a=new Gb({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=Ge(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new Xf(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function yXe(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Ci.getSchemaLoader({resource:e});else if(l(n.schema))i=Ci.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new Ub({schema:i.schema,metadataJson:n});return Ci.unload(i),o}var Zue=new h,xXe=new fe,bXe=new F,TXe=new h,CXe=new h,AXe=new h,EXe=new h;function SXe(e,t){let n,i,o,r,s,a=t.camera,c=e._root,u=c.contentBoundingVolume;if(u instanceof qf)n=h.normalize(a.positionWC,Zue),i=a.directionWC,o=a.positionCartographic.height,r=u.minimumHeight,s=u.maximumHeight;else{let x=F.inverseTransformation(c.computedTransform,bXe),b=t.mapProjection.ellipsoid,T=u.boundingVolume,C=F.multiplyByPoint(x,T.center,TXe);if(h.magnitude(C)>b.minimumRadius){let A=fe.fromCartesian(C,b,xXe);n=h.normalize(a.positionWC,Zue),i=a.directionWC,o=a.positionCartographic.height,r=0,s=A.height*2}else{let A=F.multiplyByPoint(x,a.positionWC,CXe);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(x,a.directionWC,AXe),i=h.normalize(i,i),o=A.z,u instanceof Pu){let E=$.getColumn(T.halfAxes,2,EXe),v=h.magnitude(E);r=C.z-v,s=C.z+v}else if(u instanceof D_){let E=T.radius;r=C.z-E,s=C.z+E}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.clamp((o-d)/(p-d),0,1),m=1-Math.abs(h.dot(i,n));m=m*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*m}function vXe(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{Jue(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?UXe(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Que(e,t){return e._priority-t._priority}ir.prototype.postPassesUpdate=function(e){l(this._root)&&(wXe(this,e),HXe(this,e),this._cache.unloadTiles(this,tfe),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};ir.prototype.prePassesUpdate=function(e){if(!l(this._root))return;LXe(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=Z.clone(e.time)),this._timeSinceLoad=Math.max(Z.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&SXe(this,e),e.newFrame&&this._cache.reset()};function wXe(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==jo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function DXe(e){let t=e._requestedTiles;t.sort(Que);for(let n=0;n<t.length;++n)vXe(e,t[n])}function Jue(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`),console.log(e.stack))}function IXe(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==jo.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}var PXe=new fe,RXe=new fe,OXe=new h;function MXe(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=fe.clone(r.positionCartographic,PXe),c=fe.fromCartesian(o.center,s,RXe);l(c)&&(a.height=c.height);let u=fe.toCartesian(a,s,OXe);h.distance(u,o.center)<=o.radius&&n.afterRender.push(()=>{l(r.callback)&&r.callback(a),r.invoked=!1})}}function LXe(e,t){IXe(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;c<n.length;++c){if(e.totalMemoryUsageInBytes>s){a=!0;break}let u=n[c];try{u.process(e,t),u.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(u))}catch(f){--r.numberOfTilesProcessing,Jue(f,e,u)}}e.totalMemoryUsageInBytes<i?FXe(e):a&&n.length>0&&NXe(e)}function NXe(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Que)}function FXe(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var Mz=new h,BXe={maximumFractionDigits:3};function $ue(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,BXe):Math.round(t).toLocaleString()}function Jj(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,Mz);if(l(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(l(n)){let r=h.normalize(i,Mz);r=h.multiplyByScalar(r,.75*n,Mz),o=h.add(r,i,Mz)}return o}function e7(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=` +Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=` +Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${$ue(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${$ue(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` +- ${s[a]}`;o+=s.length}else i+=` +Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function kXe(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:Jj(e.debugPickedTile),a=e7(e.debugPickedTile,e,s);a.pixelOffset=new z(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];e7(a,e,Jj(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&e7(a,e,Jj(a))}}e._tileDebugLabels.update(t)}function VXe(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ei({stencil:0,pass:ve.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Vt.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&u.raiseEvent(x),MXe(e,x,t),x.update(e,t,n),c.incrementSelectionCounts(x.content),++c.selected}let p=e._emptyTiles;for(let m=0;m<p.length;++m)p[m].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let m=e._backfaceCommands.values,x=m.length;i.length+=x;for(let b=g-1;b>=0;--b)i[d+x+b]=i[d+b];for(let b=0;b<x;++b)i[d+b]=m[b]}g=i.length-r,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new Cm),kXe(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var efe=[];function UXe(e,t){let n=t,i=efe;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(zXe(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function tfe(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function zXe(e,t){e._cache.unloadTile(e,t,tfe),t.destroy()}ir.prototype.trimLoadedTiles=function(){this._cache.trim()};function HXe(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;R_.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function GXe(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function WXe(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!F.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=F.clone(e.modelMatrix,e._previousModelMatrix)))}function jXe(e,t,n,i){if(t.mode===ne.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,GXe(e),WXe(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&DXe(e),VXe(e,t,i),R_.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function nfe(e){let t=e._credits;l(t)||(t=[]),t.length=0,l(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(vt.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new vt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}ir.prototype.getTraversal=function(e){let{pass:t}=e;return t===Fo.MOST_DETAILED_PRELOAD||t===Fo.MOST_DETAILED_PICK?EL:this.isSkippingLevelOfDetail?PL:wL};ir.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};ir.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Fo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Fo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Fo.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Fo.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),u=c.length;if(e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r),s.isRender){let p=this._environmentMapManager;l(this._root)&&(p.position=this.boundingSphere.center),p.update(e)}let f=this._clippingPolygons;l(f)&&f.enabled&&f.queueCommands(e);let d=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=jXe(this,e,d,s)),a&&(c.length=u),e.commandList=i,e.camera=o,e.cullingVolume=r};ir.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};ir.prototype.isDestroyed=function(){return!1};ir.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=efe;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,this._environmentMapManager.isDestroyed()||this._environmentMapManager.destroy(),this._environmentMapManager=void 0,ue(this)};ir.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};ir.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!ir.supportedExtensions[e[t]])throw new ce(`Unsupported 3D Tiles Extension: ${e[t]}`)};var qXe=new mn,YXe=new h,XXe=new fe;ir.prototype.getHeight=function(e,t){let n=t.ellipsoid;l(n)||(n=ee.WGS84);let i=qXe,o=n.cartographicToCartesian(e,i.direction);h.normalize(i.direction,i.direction),i.direction=h.normalize(o,i.direction),i.direction=h.negate(o,i.direction),i.origin=h.multiplyByScalar(i.direction,-2*n.maximumRadius,i.origin);let r=this.pick(i,t.frameState,YXe);if(l(r))return n.cartesianToCartographic(r,XXe)?.height};ir.prototype.updateHeight=function(e,t,n){n=y(n,ee.WGS84);let i={positionCartographic:e,ellipsoid:n,callback:t,invoked:!1},o=()=>{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a<s;++a)if(r[a]===i){r.splice(a,1);break}i.callback&&(i.callback=void 0)};return this._addHeightCallbacks.push(i),o};var KXe=new wa,ZXe=new h;ir.prototype.pick=function(e,t,n){if(!t.context.webgl2&&!this._enablePick)return;let i=this._selectedTiles,o=i.length,r=[];for(let c=0;c<o;++c){let u=i[c],f=$n.raySphere(e,u.contentBoundingVolume.boundingSphere,KXe);!l(f)||!l(u.content)||r.push(u)}let s=r.length;r.sort((c,u)=>{let f=se.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),d=se.distanceSquaredTo(u.contentBoundingVolume.boundingSphere,e.origin);return f-d});let a;for(let c=0;c<s;++c){let f=r[c].content.pick(e,t,ZXe);if(l(f))return a=h.clone(f,n),a}};var ha=ir;var $Xe=new F;function Vy(e,t){t.collectionChanged.addEventListener(Vy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}Vy.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,$Xe),c=we.createIfNeeded(Y.getValueOrUndefined(a._uri,e)));let p=l(u)?u.tilesetPrimitive:void 0;if(!f){l(p)&&(p.show=!1);continue}(!l(u)||c.url!==u.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],QXe(c,n,s,i)),l(p)&&(p.show=!0,l(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=Y.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};Vy.prototype.isDestroyed=function(){return!1};Vy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Vy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)t7(this,e[i],t,n);return ue(this)};Vy.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return ct.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(se.clone(i.boundingSphere,t),ct.DONE):ct.FAILED:ct.PENDING};Vy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(t7(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],t7(this,r,a,c),s.remove(r.id)};function t7(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function QXe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await ha.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var RL=Vy;var JXe=H.WHITE,eKe=H.BLACK,tKe=new z(2,2);function xE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(xE.prototype,{isConstant:{get:function(){return Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:le("evenColor"),oddColor:le("oddColor"),repeat:le("repeat")});xE.prototype.getType=function(e){return"Checkerboard"};var nKe=new Z;xE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(nKe)),l(t)||(t={}),t.lightColor=Y.getValueOrClonedDefault(this._evenColor,e,JXe,t.lightColor),t.darkColor=Y.getValueOrClonedDefault(this._oddColor,e,eKe,t.darkColor),t.repeat=Y.getValueOrDefault(this._repeat,e,tKe),t};xE.prototype.equals=function(e){return this===e||e instanceof xE&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._repeat,e._repeat)};var bE=xE;var ife={id:void 0};function OL(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function _c(e){this._owner=e,this._entities=new Et,this._addedEntities=new Et,this._removedEntities=new Et,this._changedEntities=new Et,this._suspendCount=0,this._collectionChanged=new me,this._id=Hn(),this._show=!0,this._firing=!1,this._refire=!1}_c.prototype.suspendEvents=function(){this._suspendCount++};_c.prototype.resumeEvents=function(){this._suspendCount--,OL(this)};Object.defineProperties(_c.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});_c.prototype.computeAvailability=function(){let e=He.MAXIMUM_VALUE,t=He.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(l(s)){let a=s.start,c=s.stop;Z.lessThan(a,e)&&!a.equals(He.MINIMUM_VALUE)&&(e=a),Z.greaterThan(c,t)&&!c.equals(He.MAXIMUM_VALUE)&&(t=c)}}return He.MAXIMUM_VALUE.equals(e)&&(e=He.MINIMUM_VALUE),He.MINIMUM_VALUE.equals(t)&&(t=He.MAXIMUM_VALUE),new Cn({start:e,stop:t})};_c.prototype.add=function(e){e instanceof er||(e=new er(e));let t=e.id,n=this._entities;if(n.contains(t))throw new he(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(_c.prototype._onEntityDefinitionChanged,this),OL(this),e};_c.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};_c.prototype.contains=function(e){return this._entities.get(e.id)===e};_c.prototype.removeById=function(e){if(!l(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(_c.prototype._onEntityDefinitionChanged,this),OL(this),!0):!1};_c.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);l(c)||(s.definitionChanged.removeEventListener(_c.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),OL(this)};_c.prototype.getById=function(e){return this._entities.get(e)};_c.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(ife.id=e,t=new er(ife),this.add(t)),t};_c.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),OL(this)};var $s=_c;var Lz={id:void 0},TE=new Array(2);function n7(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function ofe(e,t,n,i){TE[0]=n,TE[1]=i.id,t[JSON.stringify(TE)]=i.definitionChanged.addEventListener(Ur.prototype._onDefinitionChanged,e)}function rfe(e,t,n,i){TE[0]=n,TE[1]=i.id;let o=JSON.stringify(TE);t[o](),t[o]=void 0}function Uy(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,u,f=e._composite,d=new $s(e),p=e._eventHash,g;for(r=0;r<o;r++)for(u=i[r],u.collectionChanged.removeEventListener(Ur.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--)s=a[c],rfe(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(Ur.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],ofe(e,p,g,s);let x=d.getById(s.id);l(x)||(x=f.getById(s.id),l(x)?n7(x):(Lz.id=s.id,x=new er(Lz)),d.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let m=d.values;for(r=0;r<m.length;r++)f.add(m[r]);f.resumeEvents()}function Ur(e,t){this._owner=t,this._composite=new $s(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=Hn(),this._eventHash={},Uy(this),this._shouldRecomposite=!1}Object.defineProperties(Ur.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Ur.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),Uy(this)};Ur.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),Uy(this),!0):!1};Ur.prototype.removeAllCollections=function(){this._collections.length=0,Uy(this)};Ur.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Ur.prototype.contains=function(e){return this._composite.contains(e)};Ur.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Ur.prototype.getCollection=function(e){return this._collections[e]};Ur.prototype.getCollectionsLength=function(){return this._collections.length};function Nz(e,t){return e.indexOf(t)}function sfe(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,Uy(e)}Ur.prototype.raiseCollection=function(e){let t=Nz(this._collections,e);sfe(this,t,t+1)};Ur.prototype.lowerCollection=function(e){let t=Nz(this._collections,e);sfe(this,t,t-1)};Ur.prototype.raiseCollectionToTop=function(e){let t=Nz(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),Uy(this))};Ur.prototype.lowerCollectionToBottom=function(e){let t=Nz(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),Uy(this))};Ur.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Ur.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(Uy(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Ur.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Ur.prototype.getById=function(e){return this._composite.getById(e)};Ur.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,u,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];rfe(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),n7(u)),u.merge(c));l(u)||r.removeById(x),u=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];ofe(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),l(u)?n7(u):(Lz.id=x,u=new er(Lz),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};Ur.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let m=g[t];if(l(m)){if(d)if(d=!1,l(m.merge)&&l(m.clone))u=m.clone(u);else{u=m;break}u.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var i7=Ur;function o7(){this._removalFunctions=[]}o7.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};o7.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var fr=o7;function a7(e,t){return Z.compare(e.start,t.start)}function zr(e){if(this._intervals=[],this._changedEvent=new me,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(zr.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});zr.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof zr))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!Cn.equals(n[r],i[r],t))return!1;return!0};zr.prototype.get=function(e){return this._intervals[e]};zr.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};zr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};zr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};zr.prototype.contains=function(e){return this.indexOf(e)>=0};var r7=new Cn;zr.prototype.indexOf=function(e){let t=this._intervals;r7.start=e,r7.stop=e;let n=Po(t,r7,a7);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&Cn.contains(t[n-1],e)?n-1:~n)};zr.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};zr.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||Z.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Po(n,e,a7);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=Z.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(Z.greaterThan(e.stop,n[i-1].stop)?e=new Cn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Cn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=Z.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Cn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Cn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=Z.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Cn({start:e.start,stop:Z.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:Z.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Cn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};zr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Po(t,e,a7);n<0&&(n=~n);let i=!1;for(n>0&&(Z.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(Z.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Cn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Cn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new Cn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&Z.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new Cn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new Cn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(Z.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new Cn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};zr.prototype.intersect=function(e,t,n){let i=new zr,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],u=a[r];if(Z.lessThan(c.stop,u.start))++o;else if(Z.lessThan(u.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,u.data)||!l(t)&&u.data===c.data){let f=Cn.intersect(c,u,new Cn,n);f.isEmpty||i.addInterval(f,t)}Z.lessThan(c.stop,u.stop)||c.stop.equals(u.stop)&&!c.isStopIncluded&&u.isStopIncluded?++o:++r}}return i};zr.fromJulianDateArray=function(e,t){l(t)||(t=new zr);let n=e.julianDates,i=n.length,o=e.dataCallback,r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),u,f=0;a&&(++f,u=new Cn({start:He.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];u=new Cn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u),p=g}return c&&(u=new Cn({start:n[i-1],stop:He.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u)),t};var gc=new yp,ML=[0,31,28,31,30,31,30,31,31,30,31,30,31];function s7(e,t,n){l(n)||(n=new Z),Z.toGregorianDate(e,gc);let i=gc.millisecond+t.millisecond,o=gc.second+t.second,r=gc.minute+t.minute,s=gc.hour+t.hour,a=gc.day+t.day,c=gc.month+t.month,u=gc.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),ML[2]=Ad(u)?29:28;a>ML[c]||c>=13;)a>ML[c]&&(a-=ML[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),ML[2]=Ad(u)?29:28;return gc.millisecond=i,gc.second=o,gc.minute=r,gc.hour=s,gc.day=a,gc.month=c,gc.year=u,Z.fromGregorianDate(gc,n)}var iKe=new Z,oKe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function afe(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(oKe);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),Z.toGregorianDate(Z.fromIso8601(e,iKe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var LL=new yp;zr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=Z.fromIso8601(n[0]),o=Z.fromIso8601(n[1]),r=[];if(!afe(n[2],LL))r.push(i,o);else{let s=Z.clone(i);for(r.push(s);Z.compare(s,o)<0;)s=s7(s,LL),Z.compare(o,s)<=0&&Z.clone(o,s),r.push(s)}return zr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};zr.fromIso8601DateArray=function(e,t){return zr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return Z.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};zr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u<c;++u)(afe(i[u],LL)||u===0)&&(o&&l(a)?s=s7(a,LL):s=s7(n,LL),r.push(s),a=s);return zr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var Hr=zr;function rKe(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function Wb(){this._eventHelper=new fr,this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Wb.prototype._intervalsChanged,this)}Object.defineProperties(Wb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var sKe=new Z;Wb.prototype.getValue=function(e,t){l(e)||(e=Z.now(sKe));let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Wb.prototype.equals=function(e){return this===e||e instanceof Wb&&this._intervals.equals(e._intervals,Y.equals)};Wb.prototype._intervalsChanged=function(){rKe(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var yc=Wb;function zy(){this._definitionChanged=new me,this._composite=new yc,this._composite.definitionChanged.addEventListener(zy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(zy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});zy.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};var aKe=new Z;zy.prototype.getValue=function(e,t){l(e)||(e=Z.now(aKe));let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};zy.prototype.equals=function(e){return this===e||e instanceof zy&&this._composite.equals(e._composite,Y.equals)};zy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var CE=zy;function Hy(e){this._referenceFrame=y(e,Vi.FIXED),this._definitionChanged=new me,this._composite=new yc,this._composite.definitionChanged.addEventListener(Hy.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Hy.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});var cKe=new Z;Hy.prototype.getValue=function(e,t){return l(e)||(e=Z.now(cKe)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Hy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};Hy.prototype.equals=function(e){return this===e||e instanceof Hy&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,Y.equals)};Hy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ma=Hy;var lKe={ROUNDED:0,MITERED:1,BEVELED:2},Pi=Object.freeze(lKe);var pa=[new h,new h],uKe=new h,fKe=new h,dKe=new h,hKe=new h,mKe=new h,pKe=new h,_Ke=new h,gKe=new h,yKe=new h,AE=new h,Fz=new h,NL={},c7=new fe;function xKe(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];c7=t.cartesianToCartographic(o,c7),n[i]=c7.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function l7(e,t,n,i){let o=e[0],r=e[1],s=h.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),u;if(t===n){for(u=0;u<a;u++)c[u]=t;return c.push(n),c}let d=(n-t)/a;for(u=1;u<a;u++){let p=t+u*d;c[u]=p}return c[0]=t,c.push(n),c}var Bz=new h,kz=new h;function bKe(e,t,n,i){let o=new $r(n,i),r=o.projectPointOntoPlane(h.add(n,e,Bz),Bz),s=o.projectPointOntoPlane(h.add(n,t,kz),kz),a=z.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var TKe=new h(-1,0,0),jb=new F,CKe=new F,u7=new $,AKe=$.IDENTITY.clone(),EKe=new h,SKe=new oe,cfe=new h;function L_(e,t,n,i,o,r,s,a){let c=EKe,u=SKe;jb=Mt.eastNorthUpToFixedFrame(e,o,jb),c=F.multiplyByPointAsVector(jb,TKe,c),c=h.normalize(c,c);let f=bKe(c,t,e,o);u7=$.fromRotationZ(f,u7),cfe.z=r,jb=F.multiplyTransformation(jb,F.fromRotationTranslation(u7,cfe,CKe),jb);let d=AKe;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)u=h.fromArray(n,g,u),u=$.multiplyByVector(d,u,u),u=F.multiplyByPoint(jb,u,u),i.push(u.x,u.y,u.z);return i}var vKe=new h;function f7(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,vKe);i=L_(c,t,n,i,o,r[a/3],s,1)}return i}function wKe(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let u=a.x-r,f=a.y-s;i[o++]=u,i[o++]=0,i[o++]=f,i[o++]=u,i[o++]=0,i[o++]=f}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function lfe(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var ufe=new Oe,ffe=new h,dfe=new $;function hfe(e,t,n,i,o,r,s,a,c,u){let f=h.angleBetween(h.subtract(t,e,AE),h.subtract(n,e,Fz)),d=i===Pi.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=$.fromQuaternion(Oe.fromAxisAngle(h.negate(e,AE),f/(d+1),ufe),dfe):p=$.fromQuaternion(Oe.fromAxisAngle(e,f/(d+1),ufe),dfe);let g,m;if(t=h.clone(t,ffe),d>0){let x=u?2:1;for(let b=0;b<d;b++)t=$.multiplyByVector(p,t,t),g=h.subtract(t,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,Fz),s=L_(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,Fz),s=L_(m,g,a,s,r,c,1,1),n=h.clone(n,ffe),g=h.subtract(n,e,AE),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,Fz),s=L_(m,g,a,s,r,c,1,1);return s}NL.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];z.equals(r,s)||n.push(s)}return n};NL.angleIsGreaterThanPi=function(e,t,n,i){let o=new $r(n,i),r=o.projectPointOntoPlane(h.add(n,e,Bz),Bz),s=o.projectPointOntoPlane(h.add(n,t,kz),kz);return s.x*r.y-s.y*r.x>=0};var DKe=new h,IKe=new h;NL.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=xKe(e,r),a=i._granularity,c=i._cornerType,u=o?wKe(t,n):lfe(t,n),f=o?lfe(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=uKe,T=fKe,C=dKe,A=hKe,E=mKe,v=pKe,D=_Ke,O=gKe,R=yKe,M=e[0],N=e[1];A=r.geodeticSurfaceNormal(M,A),b=h.subtract(N,M,b),b=h.normalize(b,b),O=h.cross(A,b,O),O=h.normalize(O,O);let _=s[0],S=s[1];o&&(x=L_(M,O,f,x,r,_+d,1,1)),R=h.clone(M,R),M=N,T=h.negate(b,T);let w,I;for(let U=1;U<g-1;U++){let V=o?2:1;if(N=e[U+1],M.equals(N)){xt("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(N,M,b),b=h.normalize(b,b),A=r.geodeticSurfaceNormal(M,A);let G=h.multiplyByScalar(A,h.dot(b,A),DKe);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(A,h.dot(T,A),IKe);if(h.subtract(T,k,k),h.normalize(k,k),!P.equalsEpsilon(Math.abs(h.dot(G,k)),1,P.EPSILON7)){C=h.add(b,T,C),C=h.normalize(C,C),C=h.cross(C,A,C),C=h.cross(A,C,C),C=h.normalize(C,C);let q=1/Math.max(.25,h.magnitude(h.cross(C,T,AE))),J=NL.angleIsGreaterThanPi(b,T,M,r);J?(E=h.add(M,h.multiplyByScalar(C,q*p,C),E),v=h.add(E,h.multiplyByScalar(O,p,v),v),pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(v,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?hfe(E,v,D,c,J,r,m,u,S+d,o):(C=h.negate(C,C),m=L_(M,C,u,m,r,S+d,q,V)),R=h.clone(D,R)):(E=h.add(M,h.multiplyByScalar(C,q*p,C),E),v=h.add(E,h.multiplyByScalar(O,-p,v),v),pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(v,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),O=h.cross(A,b,O),O=h.normalize(O,O),D=h.add(E,h.multiplyByScalar(O,-p,D),D),c===Pi.ROUNDED||c===Pi.BEVELED?hfe(E,v,D,c,J,r,m,u,S+d,o):m=L_(M,C,u,m,r,S+d,q,V),R=h.clone(D,R)),T=h.negate(b,T)}else m=L_(R,O,u,m,r,_+d,1,1),R=M;_=S,S=s[U+1],M=N}pa[0]=h.clone(R,pa[0]),pa[1]=h.clone(M,pa[1]),w=l7(pa,_+d,S+d,a),I=Ii.generateArc({positions:pa,granularity:a,ellipsoid:r}),m=f7(I,O,u,m,r,w,1),o&&(x=L_(M,O,f,x,r,S+d,1,1)),g=m.length;let L=o?g+x.length:g,B=new Float64Array(L);return B.set(m),o&&B.set(x,g),B};var lh=NL;var h7={},EE=new h,yfe=new h,PKe=new h,mfe=new h,tl=[new h,new h],xfe=new h,bfe=new h,Tfe=new h,RKe=new h,OKe=new h,MKe=new h,LKe=new h,NKe=new h,FKe=new h,BKe=new h,pfe=new Oe,_fe=new $;function Vz(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,EE),h.subtract(n,e,yfe)),s=i===Pi.BEVELED?1:Math.ceil(r/P.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let u;o?u=$.fromQuaternion(Oe.fromAxisAngle(h.negate(e,EE),r/s,pfe),_fe):u=$.fromQuaternion(Oe.fromAxisAngle(e,r/s,pfe),_fe);let f=0;t=h.clone(t,EE);for(let d=0;d<s;d++)t=$.multiplyByVector(u,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function kKe(e){let t=xfe,n=bfe,i=Tfe,o=e[1];n=h.fromArray(e[1],o.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let r=Vz(t,n,i,Pi.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(o,0,i),t=h.midpoint(n,i,t);let c=Vz(t,n,i,Pi.ROUNDED,!1);return[r,c]}function gfe(e,t,n,i){let o=EE;return i?o=h.add(e,t,o):(t=h.negate(t,t),o=h.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function d7(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,EE),a=h.negate(s,yfe),c=0,u=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,PKe),p=h.add(d,a,mfe);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,mfe);r[u--]=g.z,r[u--]=g.y,r[u--]=g.x}return i.push(o,r),i}h7.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var VKe=new h,UKe=new h;h7.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=xfe,c=bfe,u=Tfe,f=RKe,d=OKe,p=MKe,g=LKe,m=NKe,x=FKe,b=BKe,T=[],C=s?[]:void 0,A=s?[]:void 0,E=n[0],v=n[1];c=h.normalize(h.subtract(v,E,c),c),a=i.geodeticSurfaceNormal(E,a),f=h.normalize(h.cross(a,c,f),f),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),g=h.clone(E,g),E=v,u=h.negate(c,u);let D,O=[],R,M=n.length;for(R=1;R<M-1;R++){a=i.geodeticSurfaceNormal(E,a),v=n[R+1],c=h.normalize(h.subtract(v,E,c),c);let _=h.multiplyByScalar(a,h.dot(c,a),VKe);h.subtract(c,_,_),h.normalize(_,_);let S=h.multiplyByScalar(a,h.dot(u,a),UKe);if(h.subtract(u,S,S),h.normalize(S,S),!P.equalsEpsilon(Math.abs(h.dot(_,S)),1,P.EPSILON7)){d=h.normalize(h.add(c,u,d),d),d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let I=o/Math.max(.25,h.magnitude(h.cross(d,u,EE))),L=lh.angleIsGreaterThanPi(c,u,E,i);d=h.multiplyByScalar(d,I,d),L?(m=h.add(E,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),p=h.clone(x,p),f=h.normalize(h.cross(a,c,f),f),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),g=h.add(m,h.multiplyByScalar(f,o,g),g),r===Pi.ROUNDED||r===Pi.BEVELED?O.push({leftPositions:Vz(m,p,x,r,L)}):O.push({leftPositions:gfe(E,h.negate(d,d),x,L)})):(x=h.add(E,d,x),b=h.add(x,h.negate(h.multiplyByScalar(f,o,b),b),b),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(b,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z)),p=h.clone(m,p),f=h.normalize(h.cross(a,c,f),f),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),g=h.add(x,h.negate(h.multiplyByScalar(f,o,g),g),g),r===Pi.ROUNDED||r===Pi.BEVELED?O.push({rightPositions:Vz(x,p,m,r,L)}):O.push({rightPositions:gfe(E,d,m,L)})),u=h.negate(c,u)}E=v}a=i.geodeticSurfaceNormal(E,a),tl[0]=h.clone(g,tl[0]),tl[1]=h.clone(E,tl[1]),D=Ii.generateArc({positions:tl,granularity:t,ellipsoid:i}),T=d7(D,f,o,T),s&&(C.push(f.x,f.y,f.z),A.push(a.x,a.y,a.z));let N;return r===Pi.ROUNDED&&(N=kKe(T)),{positions:T,corners:O,lefts:C,normals:A,endPositions:N}};var Hi=h7;var Efe=new h,Sfe=new h,Uz=new h,zz=new h,zKe=new h,vfe=new h,Gy=new h,SE=new h;function wfe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function uh(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,u=h.normalize(h.cross(n,t,Gy),Gy);r.normal&&Hi.addAttribute(s,t,i,o),r.tangent&&Hi.addAttribute(a,u,i,o),r.bitangent&&Hi.addAttribute(c,n,i,o)}function Dfe(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new fn,u,f=0,d=0,p,g=0,m;for(p=0;p<i.length;p+=2)m=i[p].length-3,f+=m,g+=m*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<o.length;p++){u=o[p];let Q=o[p].leftPositions;l(Q)?(m=Q.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=l(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,C=new Float64Array(T),A=t.normal?new Float32Array(T):void 0,E=t.tangent?new Float32Array(T):void 0,v=t.bitangent?new Float32Array(T):void 0,D={normals:A,tangents:E,bitangents:v},O=0,R=T-1,M,N,_,S,w=Efe,I=Sfe,L,B,U=b/2,V=Ne.createTypedArray(T/3,g),G=0;if(x){B=Uz,L=zz;let Q=r[0];for(w=h.fromArray(a,0,w),I=h.fromArray(s,0,I),p=0;p<U;p++)B=h.fromArray(Q,(U-1-p)*3,B),L=h.fromArray(Q,(U+p)*3,L),Hi.addAttribute(C,L,O),Hi.addAttribute(C,B,void 0,R),uh(D,w,I,O,R,t),N=O/3,S=N+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3}let k=0,W=0,q=i[k++],J=i[k++];C.set(q,O),C.set(J,R-J.length+1),I=h.fromArray(s,W,I);let j,K;for(m=J.length-3,p=0;p<m;p+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,p,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m-p,SE),SE),w=h.normalize(h.add(j,K,w),w),uh(D,w,I,O,R,t),N=O/3,S=N+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3;for(j=n.geodeticSurfaceNormal(h.fromArray(q,m,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m,SE),SE),w=h.normalize(h.add(j,K,w),w),W+=3,p=0;p<o.length;p++){let Q;u=o[p];let de=u.leftPositions,ye=u.rightPositions,ae,_e,xe=vfe,De=Uz,Ae=zz;if(w=h.fromArray(a,W,w),l(de)){for(uh(D,w,I,void 0,R,t),R-=3,ae=S,_e=_,Q=0;Q<de.length/3;Q++)xe=h.fromArray(de,Q*3,xe),V[G++]=ae,V[G++]=_e-Q-1,V[G++]=_e-Q,Hi.addAttribute(C,xe,void 0,R),De=h.fromArray(C,(_e-Q-1)*3,De),Ae=h.fromArray(C,ae*3,Ae),I=h.normalize(h.subtract(De,Ae,I),I),uh(D,w,I,void 0,R,t),R-=3;xe=h.fromArray(C,ae*3,xe),De=h.subtract(h.fromArray(C,_e*3,De),xe,De),Ae=h.subtract(h.fromArray(C,(_e-Q)*3,Ae),xe,Ae),I=h.normalize(h.add(De,Ae,I),I),uh(D,w,I,O,void 0,t),O+=3}else{for(uh(D,w,I,O,void 0,t),O+=3,ae=_,_e=S,Q=0;Q<ye.length/3;Q++)xe=h.fromArray(ye,Q*3,xe),V[G++]=ae,V[G++]=_e+Q,V[G++]=_e+Q+1,Hi.addAttribute(C,xe,O),De=h.fromArray(C,ae*3,De),Ae=h.fromArray(C,(_e+Q)*3,Ae),I=h.normalize(h.subtract(De,Ae,I),I),uh(D,w,I,O,void 0,t),O+=3;xe=h.fromArray(C,ae*3,xe),De=h.subtract(h.fromArray(C,(_e+Q)*3,De),xe,De),Ae=h.subtract(h.fromArray(C,_e*3,Ae),xe,Ae),I=h.normalize(h.negate(h.add(Ae,De,I),I),I),uh(D,w,I,void 0,R,t),R-=3}for(q=i[k++],J=i[k++],q.splice(0,3),J.splice(J.length-3,3),C.set(q,O),C.set(J,R-J.length+1),m=J.length-3,W+=3,I=h.fromArray(s,W,I),Q=0;Q<J.length;Q+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,Q,Gy),Gy),K=n.geodeticSurfaceNormal(h.fromArray(J,m-Q,SE),SE),w=h.normalize(h.add(j,K,w),w),uh(D,w,I,O,R,t),S=O/3,N=S-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3;O-=3,R+=3}if(w=h.fromArray(a,a.length-3,w),uh(D,w,I,O,R,t),x){O+=3,R-=3,B=Uz,L=zz;let Q=r[1];for(p=0;p<U;p++)B=h.fromArray(Q,(b-p-1)*3,B),L=h.fromArray(Q,p*3,L),Hi.addAttribute(C,B,void 0,R),Hi.addAttribute(C,L,O),uh(D,w,I,O,R,t),S=O/3,N=S-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=N,V[G++]=_,V[G++]=_,V[G++]=N,V[G++]=S,O+=3,R-=3}if(c.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:C}),t.st){let Q=new Float32Array(T/3*2),de,ye,ae=0;if(x){f/=3,d/=3;let _e=Math.PI/(b+1);ye=1/(f-b+1),de=1/(d-b+1);let xe,De=b/2;for(p=De+1;p<b+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=1;p<d-b+1;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=b;p>De;p--)xe=P.PI_OVER_TWO-p*_e,Q[ae++]=1-de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=De;p>0;p--)xe=P.PI_OVER_TWO-_e*p,Q[ae++]=1-ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=f-b;p>0;p--)Q[ae++]=p*ye,Q[ae++]=1;for(p=1;p<De+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe))}else{for(f/=3,d/=3,ye=1/(f-1),de=1/(d-1),p=0;p<d;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=f;p>0;p--)Q[ae++]=(p-1)*ye,Q[ae++]=1}c.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Q})}return t.normal&&(c.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function HKe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,u;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=Efe,m=Sfe,x=Uz,b=zz,T=zKe,C=vfe,A=c;for(u=0;u<s;u+=3){let E=A+c;g=h.fromArray(n,u,g),m=h.fromArray(n,u+s,m),x=h.fromArray(n,(u+3)%s,x),m=h.subtract(m,g,m),x=h.subtract(x,g,x),b=h.normalize(h.cross(m,x,b),b),t.normal&&(Hi.addAttribute(f,b,E),Hi.addAttribute(f,b,E+3),Hi.addAttribute(f,b,A),Hi.addAttribute(f,b,A+3)),(t.tangent||t.bitangent)&&(C=h.fromArray(i,u,C),t.bitangent&&(Hi.addAttribute(p,C,E),Hi.addAttribute(p,C,E+3),Hi.addAttribute(p,C,A),Hi.addAttribute(p,C,A+3)),t.tangent&&(T=h.normalize(h.cross(C,b,T),T),Hi.addAttribute(d,T,E),Hi.addAttribute(d,T,E+3),Hi.addAttribute(d,T,A),Hi.addAttribute(d,T,A+3))),A+=6}if(t.normal){for(f.set(i),u=0;u<s;u+=3)f[u+s]=-i[u],f[u+s+1]=-i[u+1],f[u+s+2]=-i[u+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let E=e.tangent.values;d.set(E),d.set(E,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],u=2;u<a;u+=2){let m=f[u],x=f[u+1];d[p++]=m,d[p++]=x,d[p++]=m,d[p++]=x}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function m7(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function GKe(e,t){let n=new Ie({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=Hi.computePositions(e),r=Dfe(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,u=r.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let m=new Float64Array(d*4);f=si.scaleToGeodeticHeight(f,s,i),m=m7(f,0,m),g=si.scaleToGeodeticHeight(g,a,i),m=m7(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=HKe(c,t);let x,b=d/3;if(e.shadowVolume){let M=c.normal.values;d=M.length;let N=new Float32Array(d*6);for(x=0;x<d;x++)M[x]=-M[x];N.set(M,d),N=m7(M,d*4,N),c.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let M=new Uint8Array(b*6);if(e.offsetAttribute===an.TOP)M=M.fill(1,0,b).fill(1,b*2,b*4);else{let N=e.offsetAttribute===an.NONE?0:1;M=M.fill(N)}c.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}let T=u.length,C=b+b,A=Ne.createTypedArray(p.length/3,T*2+C*3);A.set(u);let E=T;for(x=0;x<T;x+=3){let M=u[x],N=u[x+1],_=u[x+2];A[E++]=_+b,A[E++]=N+b,A[E++]=M+b}let v,D,O,R;for(x=0;x<C;x+=2)v=x+C,D=v+C,O=v+1,R=D+1,A[E++]=v,A[E++]=D,A[E++]=O,A[E++]=O,A[E++]=D,A[E++]=R;return{attributes:c,indices:A}}var Cfe=new h,FL=new h,Zf=new fe;function Afe(e,t,n,i,o,r){let s=h.subtract(t,e,Cfe);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,FL),c=h.cross(s,a,Cfe);h.multiplyByScalar(c,i,c);let u=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,FL),n.cartesianToCartographic(FL,Zf);let g=Zf.latitude,m=Zf.longitude;u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,FL),n.cartesianToCartographic(FL,Zf),g=Zf.latitude,m=Zf.longitude,u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=u,o.longitude=f,r.latitude=d,r.longitude=p}var Kf=new h,BL=new h,Gl=new fe,Wl=new fe;function Ife(e,t,n,i,o){e=wfe(e,t);let r=To(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new re;let a=n*.5;Gl.latitude=Number.POSITIVE_INFINITY,Gl.longitude=Number.POSITIVE_INFINITY,Wl.latitude=Number.NEGATIVE_INFINITY,Wl.longitude=Number.NEGATIVE_INFINITY;let c,u;if(i===Pi.ROUNDED){let p=r[0];h.subtract(p,r[1],Kf),h.normalize(Kf,Kf),h.multiplyByScalar(Kf,a,Kf),h.add(p,Kf,BL),t.cartesianToCartographic(BL,Zf),c=Zf.latitude,u=Zf.longitude,Gl.latitude=Math.min(Gl.latitude,c),Gl.longitude=Math.min(Gl.longitude,u),Wl.latitude=Math.max(Wl.latitude,c),Wl.longitude=Math.max(Wl.longitude,u)}for(let p=0;p<s-1;++p)Afe(r[p],r[p+1],t,a,Gl,Wl);let f=r[s-1];h.subtract(f,r[s-2],Kf),h.normalize(Kf,Kf),h.multiplyByScalar(Kf,a,Kf),h.add(f,Kf,BL),Afe(f,BL,t,a,Gl,Wl),i===Pi.ROUNDED&&(t.cartesianToCartographic(BL,Zf),c=Zf.latitude,u=Zf.longitude,Gl.latitude=Math.min(Gl.latitude,c),Gl.longitude=Math.min(Gl.longitude,u),Wl.latitude=Math.max(Wl.latitude,c),Wl.longitude=Math.max(Wl.longitude,u));let d=l(o)?o:new re;return d.north=Wl.latitude,d.south=Gl.latitude,d.east=Wl.longitude,d.west=Gl.longitude,d}function F_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+ee.packedLength+Ie.packedLength+7}F_.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Pfe=ee.clone(ee.UNIT_SPHERE),Rfe=new Ie,N_={positions:void 0,ellipsoid:Pfe,vertexFormat:Rfe,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};F_.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let m=0;m<i;++m,t+=h.packedLength)o[m]=h.unpack(e,t);let r=ee.unpack(e,t,Pfe);t+=ee.packedLength;let s=Ie.unpack(e,t,Rfe);t+=Ie.packedLength;let a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._vertexFormat=Ie.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=u,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(N_.positions=o,N_.width=a,N_.height=c,N_.extrudedHeight=u,N_.cornerType=f,N_.granularity=d,N_.shadowVolume=p,N_.offsetAttribute=g===-1?void 0:g,new F_(N_))};F_.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,ee.default),r=y(e.cornerType,Pi.ROUNDED);return Ife(n,o,i,r,t)};F_.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=wfe(t,i);let o=To(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c=e._vertexFormat,u={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)u.height=r,u.extrudedHeight=s,u.shadowVolume=e._shadowVolume,u.offsetAttribute=e._offsetAttribute,f=GKe(u,c);else{let g=Hi.computePositions(u);if(f=Dfe(g,c,i),f.attributes.position.values=si.scaleToGeodeticHeight(f.attributes.position.values,r,i),l(e._offsetAttribute)){let m=e._offsetAttribute===an.NONE?0:1,x=f.attributes.position.values.length,b=new Uint8Array(x/3).fill(m);f.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}}let d=f.attributes,p=se.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new at({attributes:d,indices:f.indices,primitiveType:Me.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};F_.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new F_({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(F_.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=Ife(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var qb=F_;var Ofe=new h,Mfe=new h,WKe=new h;function jKe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Lfe(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new fn,a,c=0,u=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,u+=i[f+1].length-3;for(c+=3,u+=3,f=0;f<o.length;f++){a=o[f];let L=o[f].leftPositions;l(L)?(p=L.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,u+=p,d+=p/3*2)}let g=l(r),m;g&&(m=r[0].length-3,c+=m,u+=m,m/=3,d+=m*4);let x=c+u,b=new Float64Array(x),T=0,C=x-1,A,E,v,D,O,R,M=m/2,N=Ne.createTypedArray(x/3,d+4),_=0;if(N[_++]=T/3,N[_++]=(C-2)/3,g){n.push(T/3),R=Ofe,O=Mfe;let L=r[0];for(f=0;f<M;f++)R=h.fromArray(L,(M-1-f)*3,R),O=h.fromArray(L,(M+f)*3,O),Hi.addAttribute(b,O,T),Hi.addAttribute(b,R,void 0,C),E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3}let S=0,w=i[S++],I=i[S++];for(b.set(w,T),b.set(I,C-I.length+1),p=I.length-3,n.push(T/3,(C-2)/3),f=0;f<p;f+=3)E=T/3,D=E+1,A=(C-2)/3,v=A-1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;for(f=0;f<o.length;f++){let L;a=o[f];let B=a.leftPositions,U=a.rightPositions,V,G=WKe;if(l(B)){for(C-=3,V=v,n.push(D),L=0;L<B.length/3;L++)G=h.fromArray(B,L*3,G),N[_++]=V-L-1,N[_++]=V-L,Hi.addAttribute(b,G,void 0,C),C-=3;n.push(V-Math.floor(B.length/6)),t===Pi.BEVELED&&n.push((C-2)/3+1),T+=3}else{for(T+=3,V=D,n.push(v),L=0;L<U.length/3;L++)G=h.fromArray(U,L*3,G),N[_++]=V+L,N[_++]=V+L+1,Hi.addAttribute(b,G,T),T+=3;n.push(V+Math.floor(U.length/6)),t===Pi.BEVELED&&n.push(T/3-1),C-=3}for(w=i[S++],I=i[S++],w.splice(0,3),I.splice(I.length-3,3),b.set(w,T),b.set(I,C-I.length+1),p=I.length-3,L=0;L<I.length;L+=3)D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;T-=3,C+=3,n.push(T/3,(C-2)/3)}if(g){T+=3,C-=3,R=Ofe,O=Mfe;let L=r[1];for(f=0;f<M;f++)R=h.fromArray(L,(m-f-1)*3,R),O=h.fromArray(L,f*3,O),Hi.addAttribute(b,R,void 0,C),Hi.addAttribute(b,O,T),D=T/3,E=D-1,v=(C-2)/3,A=v+1,N[_++]=A,N[_++]=v,N[_++]=E,N[_++]=D,T+=3,C-=3;n.push(T/3)}else n.push(T/3,(C-2)/3);return N[_++]=T/3,N[_++]=(C-2)/3,s.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:N,wallIndices:n}}function qKe(e){let t=e.ellipsoid,n=Hi.computePositions(e),i=Lfe(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,u=a.position.values,f=u.length,d=new Float64Array(f);d.set(u);let p=new Float64Array(f*2);if(u=si.scaleToGeodeticHeight(u,r,t),d=si.scaleToGeodeticHeight(d,s,t),p.set(u),p.set(d,f),a.position.values=p,f/=3,l(e.offsetAttribute)){let A=new Uint8Array(f*2);if(e.offsetAttribute===an.TOP)A=A.fill(1,0,f);else{let E=e.offsetAttribute===an.NONE?0:1;A=A.fill(E)}a.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}let g,m=c.length,x=Ne.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let A=c[g],E=c[g+1];x[b++]=A+f,x[b++]=E+f}let T,C;for(g=0;g<o.length;g++)T=o[g],C=T+f,x[b++]=T,x[b++]=C;return{attributes:a,indices:x}}function kL(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ee.packedLength+6}kL.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var Nfe=ee.clone(ee.UNIT_SPHERE),Wy={positions:void 0,ellipsoid:Nfe,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};kL.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)o[p]=h.unpack(e,t);let r=ee.unpack(e,t,Nfe);t+=ee.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=u,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):(Wy.positions=o,Wy.width=s,Wy.height=a,Wy.extrudedHeight=c,Wy.cornerType=u,Wy.granularity=f,Wy.offsetAttribute=d===-1?void 0:d,new kL(Wy))};kL.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=jKe(t,i);let o=To(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},u;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,u=qKe(c);else{let p=Hi.computePositions(c);if(u=Lfe(p,c.cornerType),u.attributes.position.values=si.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let g=u.attributes.position.values.length,m=e._offsetAttribute===an.NONE?0:1,x=new Uint8Array(g/3).fill(m);u.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=u.attributes,d=se.fromVertices(f.position.values,void 0,3);return new at({attributes:f,indices:u.indices,primitiveType:Me.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var VL=kL;var YKe=new Kn(0);function nl(e){ii.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(nl.prototype=Object.create(ii.prototype),nl.prototype.constructor=nl);Object.defineProperties(nl.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});nl.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&zc.isSupported(this._scene)};nl.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};nl.prototype._computeCenter=he.throwInstantiationError;nl.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&xt(xt.geometryZIndex),this._zIndex=y(o.zIndex,YKe),l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new Vd(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new Hx(this._scene,a,r,s)}};nl.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ii.prototype.destroy.call(this)};nl.getGeometryHeight=function(e,t){if(!l(e)){t!==Ye.NONE&&xt(xt.geometryHeightReference);return}return Af(t)?0:e};nl.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==Ye.NONE&&xt(xt.geometryExtrudedHeightReference);return}return Af(t)?nl.CLAMP_TO_GROUND:e};nl.CLAMP_TO_GROUND="clamp";nl.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=Ye.NONE),(!l(n)||!l(i))&&(i=Ye.NONE);let o=0;if(t!==Ye.NONE&&o++,i===Ye.RELATIVE_TO_GROUND&&o++,o===2)return an.ALL;if(o===1)return an.TOP};var Wn=nl;var Ffe=new H,Bfe=h.ZERO,kfe=new h,Vfe=new re;function XKe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function fh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new XKe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(fh.prototype=Object.create(Wn.prototype),fh.prototype.constructor=fh);fh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Ffe)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bfe,kfe))),new St({id:t,geometry:new qb(this._options),attributes:i})};fh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Ffe),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bfe,kfe))),new St({id:t,geometry:new VL(this._options),attributes:o})};fh.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};fh.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||ii.prototype._isHidden.call(this,e,t)};fh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.width)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};fh.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(He.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.cornerType=Y.getValueOrUndefined(t.cornerType,He.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(qb.computeRectangle(s,Vfe)).minimumTerrainHeight),s.extrudedHeight=o};fh.DynamicGeometryUpdater=vE;function vE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(vE.prototype=Object.create(ni.prototype),vE.prototype.constructor=vE);vE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||ni.prototype._isHidden.call(this,e,t,n)};vE.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.positions=Y.getValueOrUndefined(t.positions,n),i.width=Y.getValueOrUndefined(t.width,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(qb.computeRectangle(i,Vfe)).minimumTerrainHeight),i.extrudedHeight=s};var UL=fh;function Hz(){he.throwInstantiationError()}Object.defineProperties(Hz.prototype,{name:{get:he.throwInstantiationError},clock:{get:he.throwInstantiationError},entities:{get:he.throwInstantiationError},isLoading:{get:he.throwInstantiationError},changedEvent:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},loadingEvent:{get:he.throwInstantiationError},show:{get:he.throwInstantiationError},clustering:{get:he.throwInstantiationError}});Hz.prototype.update=function(e){he.throwInstantiationError()};Hz.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var Gr=Hz;function wm(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(wm.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Ufe=new h;wm.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Ufe);return _7(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};wm.prototype.isScaledSpacePointVisible=function(e){return _7(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var KKe=new h;wm.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=KKe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),_7(e,o,i)};wm.prototype.computeHorizonCullingPoint=function(e,t,n){return Gfe(this._ellipsoid,e,t,n)};var zfe=ee.clone(ee.UNIT_SPHERE);wm.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=Hfe(this._ellipsoid,n,zfe);return Gfe(o,e,t,i)};wm.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Wfe(this._ellipsoid,e,t,n,i,o)};wm.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=Hfe(this._ellipsoid,o,zfe);return Wfe(s,e,t,n,i,r)};var ZKe=[];wm.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=re.subsample(e,t,0,ZKe),o=se.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var $Ke=new h;function Hfe(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,$Ke);e=ee.fromCartesian3(i,n)}return e}function Gfe(e,t,n,i){l(i)||(i=new h);let o=Yfe(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],u=jfe(e,c,o);if(u<0)return;r=Math.max(r,u)}return qfe(o,r,i)}var Gz=new h;function Wfe(e,t,n,i,o,r){l(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=Yfe(e,t),a=0;for(let c=0,u=n.length;c<u;c+=i){Gz.x=n[c]+o.x,Gz.y=n[c+1]+o.y,Gz.z=n[c+2]+o.z;let f=jfe(e,Gz,s);if(f<0)return;a=Math.max(a,f)}return qfe(s,a,r)}function _7(e,t,n){let i=t,o=n,r=h.subtract(e,i,Ufe),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var QKe=new h,JKe=new h;function jfe(e,t,n){let i=e.transformPositionToScaledSpace(t,QKe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,JKe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function qfe(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var p7=new h;function Yfe(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,p7),h.normalize(p7,p7))}var B_=wm;function vr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Bt.clone(n)),l(i)&&(i=Bt.clone(i)),l(o)&&(o=Lt.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=H.clone(y(e.color,H.WHITE)),this._outlineColor=H.clone(y(e.outlineColor,H.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1,this._splitDirection=y(e.splitDirection,Nr.NONE)}var Xfe=vr.SHOW_INDEX=0,$fe=vr.POSITION_INDEX=1,eZe=vr.COLOR_INDEX=2,tZe=vr.OUTLINE_COLOR_INDEX=3,nZe=vr.OUTLINE_WIDTH_INDEX=4,iZe=vr.PIXEL_SIZE_INDEX=5,oZe=vr.SCALE_BY_DISTANCE_INDEX=6,rZe=vr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,sZe=vr.DISTANCE_DISPLAY_CONDITION_INDEX=8,aZe=vr.DISABLE_DEPTH_DISTANCE_INDEX=9,cZe=vr.SPLIT_DIRECTION_INDEX=10;vr.NUMBER_OF_PROPERTIES=11;function Ru(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(vr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Ru(this,Xfe))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),Ru(this,$fe))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Bt.equals(t,e)||(this._scaleByDistance=Bt.clone(e,t),Ru(this,oZe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Bt.equals(t,e)||(this._translucencyByDistance=Bt.clone(e,t),Ru(this,rZe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,Ru(this,iZe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),Ru(this,eZe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;H.equals(t,e)||(H.clone(e,t),Ru(this,tZe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,Ru(this,nZe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Lt.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Lt.clone(e,this._distanceDisplayCondition),Ru(this,sZe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,Ru(this,aZe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,Ru(this,Xfe))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,Ru(this,cZe))}}});vr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};vr.prototype._getActualPosition=function(){return this._actualPosition};vr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),Ru(this,$fe)};var Kfe=new oe;vr._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(F.multiplyByPoint(n,e,Kfe),Ui.computeActualEllipsoidPosition(t,Kfe))};var Zfe=new oe;vr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,Zfe),Zfe);return Ui.worldToWindowCoordinates(n,o,i)};vr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new z);let i=n.modelMatrix,o=vr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};vr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new je),n.x=r,n.y=s,n.width=a,n.height=c,n};vr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&H.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&H.equals(this._outlineColor,e._outlineColor)&&Bt.equals(this._scaleByDistance,e._scaleByDistance)&&Bt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Lt.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};vr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Is=vr;var jy=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; +in float v_splitDirection; + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var zL=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 distanceDisplayConditionAndDisableDepthAndSplitDirection; // near, far, disableDepthTestDistance, splitDirection + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; +out float v_splitDirection; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.x; + float farSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepthAndSplitDirection.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; + v_splitDirection = distanceDisplayConditionAndDisableDepthAndSplitDirection.w; +} +`;var lZe=Is.SHOW_INDEX,x7=Is.POSITION_INDEX,Qfe=Is.COLOR_INDEX,uZe=Is.OUTLINE_COLOR_INDEX,fZe=Is.OUTLINE_WIDTH_INDEX,dZe=Is.PIXEL_SIZE_INDEX,Jfe=Is.SCALE_BY_DISTANCE_INDEX,ede=Is.TRANSLUCENCY_BY_DISTANCE_INDEX,tde=Is.DISTANCE_DISPLAY_CONDITION_INDEX,hZe=Is.DISABLE_DEPTH_DISTANCE_INDEX,mZe=Is.SPLIT_DIRECTION_INDEX,b7=Is.NUMBER_OF_PROPERTIES,xc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepthAndSplitDirection:5};function $f(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(b7),this._maxPixelSize=1,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,Eo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties($f.prototype,{length:{get:function(){return T7(this),this._pointPrimitives.length}}});function nde(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}$f.prototype.add=function(e){let t=new Is(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};$f.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};$f.prototype.removeAll=function(){nde(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function T7(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}$f.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};$f.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};$f.prototype.get=function(e){return T7(this),this._pointPrimitives[e]};$f.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<b7;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function pZe(e,t,n){return new Dp(e,[{index:xc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[x7]},{index:xc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[x7]},{index:xc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Qfe]},{index:xc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[ede]},{index:xc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Jfe]},{index:xc.distanceDisplayConditionAndDisableDepthAndSplitDirection,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[tde]}],t)}var g7=new Gn;function ide(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Gn.fromCartesian(r,g7);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[xc.positionHighAndSize],u=g7.high;c(o,u.x,u.y,u.z,s);let f=n[xc.positionLowAndOutline],d=g7.low;f(o,d.x,d.y,d.z,a)}var Wz=65536,HL=256;function ode(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=H.floatToByte(r.red),u=H.floatToByte(r.green),f=H.floatToByte(r.blue),d=c*Wz+u*HL+f;c=H.floatToByte(a.red),u=H.floatToByte(a.green),f=H.floatToByte(a.blue);let p=c*Wz+u*HL+f;c=H.floatToByte(s.red),u=H.floatToByte(s.green),f=H.floatToByte(s.blue);let g=c*Wz+u*HL+f,m=H.floatToByte(r.alpha)*Wz+H.floatToByte(a.alpha)*HL+H.floatToByte(s.alpha),x=n[xc.compressedAttribute0];x(o,d,p,g,m)}function rde(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,u=i.translucencyByDistance;l(u)&&(r=u.near,s=u.nearValue,a=u.far,c=u.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*HL+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[xc.compressedAttribute1];g(o,d,p,r,a)}function sde(e,t,n,i){let o=i._index,r=n[xc.scaleByDistance],s=0,a=1,c=1,u=1,f=i.scaleByDistance;l(f)&&(s=f.near,a=f.nearValue,c=f.far,u=f.farValue,(a!==1||u!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,u)}function ade(e,t,n,i){let o=i._index,r=n[xc.distanceDisplayConditionAndDisableDepthAndSplitDirection],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let u=i.disableDepthTestDistance;u*=u,u>0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1));let f=0,d=i.splitDirection;l(d)&&(f=d),r(o,s,a,u,f)}function _Ze(e,t,n,i){ide(e,t,n,i),ode(e,t,n,i),rde(e,t,n,i),sde(e,t,n,i),ade(e,t,n,i)}function y7(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=Is._computeActualPosition(f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function gZe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&y7(e,i,i.length,t,r,!0)):n===ne.MORPHING?y7(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&y7(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function yZe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var xZe=[];$f.prototype.update=function(e){if(T7(this),!this.show)return;this._maxTotalPointSize=kt.maximumAliasedPointSize,gZe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,u=e.passes,f=u.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<b7;++v)r[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=pZe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,_Ze(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let v=xZe;v.length=0,(r[x7]||r[fZe]||r[dZe])&&v.push(ide),(r[Qfe]||r[uZe])&&v.push(ode),(r[lZe]||r[ede])&&v.push(rde),r[Jfe]&&v.push(sde),(r[tde]||r[hZe]||r[mZe])&&v.push(ade);let D=v.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let M=0;M<D;++M)v[M](this,c,a,R)}this._vaf.commit()}else{for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let M=0;M<D;++M)v[M](this,c,a,R);this._vaf.subCommit(R._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=F.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=se.clone(this._baseVolumeWC,this._boundingVolume)):d=se.clone(this._baseVolume2D,this._boundingVolume),yZe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===Eo.OPAQUE||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===Eo.TRANSLUCENT||this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!1,blending:un.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let m,x;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(m=new Ue({sources:[zL]}),this._shaderScaleByDistance&&m.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&m.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&m.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&m.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT&&(x=new Ue({defines:["OPAQUE"],sources:[jy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc}),x=new Ue({defines:["TRANSLUCENT"],sources:[jy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._blendOption===Eo.OPAQUE&&(x=new Ue({sources:[jy]}),this._sp=Qt.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._blendOption===Eo.TRANSLUCENT&&(x=new Ue({sources:[jy]}),this._spTranslucent=Qt.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:xc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,C,A,E=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===Eo.OPAQUE,O=this._blendOption===Eo.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,v.length=T;let R=O?T*2:T;for(A=0;A<R;++A){let M=D||O&&A%2===0;C=v[A],l(C)||(C=v[A]=new Ze),C.primitiveType=Me.POINTS,C.pass=M||!O?ve.OPAQUE:ve.TRANSLUCENT,C.owner=this;let N=O?Math.floor(A/2):A;C.boundingVolume=d,C.modelMatrix=p,C.shaderProgram=M?this._sp:this._spTranslucent,C.uniformMap=this._uniforms,C.vertexArray=b[N].va,C.renderState=M?this._rsOpaque:this._rsTranslucent,C.debugShowBoundingVolume=this.debugShowBoundingVolume,C.pickId="v_pickColor",E.push(C)}}};$f.prototype.isDestroyed=function(){return!1};$f.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),nde(this._pointPrimitives),ue(this)};var wE=$f;var cde=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],C7=1,GL=8,jL=class e{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==C7)throw new Error(`Got v${o} data when expected v${C7}.`);let r=cde[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=cde.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,GL,t),this.coords=new this.ArrayType(this.data,GL+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(GL+s+a+c),this.ids=new this.IndexArrayType(this.data,GL,t),this.coords=new this.ArrayType(this.data,GL+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(C7<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return E7(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],u=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let b=p;b<=d;b++){let T=s[2*b],C=s[2*b+1];T>=t&&T<=i&&C>=n&&C<=o&&u.push(r[b])}continue}let g=p+d>>1,m=s[2*g],x=s[2*g+1];m>=t&&m<=i&&x>=n&&x<=o&&u.push(r[g]),(f===0?t<=m:n<=x)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=m:o>=x)&&(c.push(g+1),c.push(d),c.push(1-f))}return u}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],u=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let b=p;b<=d;b++)lde(r[2*b],r[2*b+1],t,n)<=u&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];lde(m,x,t,n)<=u&&c.push(o[g]),(f===0?t-i<=m:n-i<=x)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=m:n+i>=x)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function E7(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;ude(e,t,s,i,o,r),E7(e,t,n,i,s-1,1-r),E7(e,t,n,s+1,o,1-r)}function ude(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/u+g)),x=Math.min(o,Math.floor(n+(u-f)*p/u+g));ude(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(WL(e,t,i,n),t[2*o+r]>s&&WL(e,t,i,o);a<c;){for(WL(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?WL(e,t,i,c):(c++,WL(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function WL(e,t,n,i){A7(e,n,i),A7(t,2*n,2*i),A7(t,2*n+1,2*i+1)}function A7(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function lde(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function dh(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new me,this.show=y(e.show,!0)}function fde(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var bZe=new je;function dde(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=Oy.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=co.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Is.getScreenSpaceBoundingBox(e,t,o)),fde(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&mde(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Oy.getScreenSpaceBoundingBox(s,t,bZe);fde(a,n),o=je.union(o,a,o)}return o}function TZe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&mde(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function hde(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function mde(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function S7(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),u=o._clusterBillboards&&l(a.id._billboard),f=o._clusterPoints&&l(a.id._point);if(c&&(f||u))continue;let d=a.computeScreenSpacePosition(n);l(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var CZe=new je,AZe=new je,EZe=new je;function SZe(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new Cm({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new wu({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new wE;let u=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,x=n.ellipsoid,b=n.camera.positionWC,T=new B_(x,b),C=[];e._clusterLabels&&S7(i,C,n,T,e),e._clusterBillboards&&S7(o,C,n,T,e),e._clusterPoints&&S7(r,C,n,T,e);let A,E,v,D,O,R,M,N,_,S,w,I;if(C.length>0){let L=new jL(C.length,64,Uint32Array);for(let B=0;B<C.length;++B)L.add(C[B].coord.x,C[B].coord.y);if(L.finish(),m<g)for(v=d.length,A=0;A<v;++A){let B=d[A];if(!T.isPointVisible(B.position))continue;let U=co._computeScreenSpacePosition(F.IDENTITY,B.position,h.ZERO,z.ZERO,n);if(!l(U))continue;let V=1-m/g,G=B.width=B.width*V,k=B.height=B.height*V;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let W=U.x-G*.5,q=U.y-k*.5,J=U.x+G,j=U.y+k;for(O=L.range(W,q,J,j),R=O.length,S=0,_=[],E=0;E<R;++E)M=O[E],N=C[M],N.clustered||(++S,w=N.collection,I=N.index,_.push(w.get(I).id));if(S>=f)for(hde(B.position,S,_,e),p.push(B),E=0;E<R;++E)C[O[E]].clustered=!0}for(v=C.length,A=0;A<v;++A){let B=C[A];if(B.clustered)continue;B.clustered=!0,w=B.collection,I=B.index;let U=w.get(I);D=dde(U,B.coord,u,e,CZe);let V=je.clone(D,AZe);O=L.range(D.x,D.y,D.x+D.width,D.y+D.height),R=O.length;let G=h.clone(U.position);for(S=1,_=[U.id],E=0;E<R;++E)if(M=O[E],N=C[M],!N.clustered){let k=N.collection.get(N.index),W=dde(k,N.coord,u,e,EZe);h.add(k.position,G,G),je.union(V,W,V),++S,_.push(k.id)}if(S>=f){let k=h.multiplyByScalar(G,1/S,G);for(hde(k,S,_,e),p.push({position:k,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),E=0;E<R;++E)C[O[E]].clustered=!0}else TZe(U,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=m}}dh.prototype._initialize=function(e){this._scene=e;let t=SZe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(dh.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function w7(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,u=this[n];u.length>0?(a=u.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function D7(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}dh.prototype.getLabel=w7("_labelCollection",Cm,"_unusedLabelIndices","labelIndex");dh.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,D7(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};dh.prototype.getBillboard=w7("_billboardCollection",wu,"_unusedBillboardIndices","billboardIndex");dh.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,D7(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};dh.prototype.getPoint=w7("_pointCollection",wE,"_unusedPointIndices","pointIndex");dh.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,D7(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function v7(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function vZe(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,v7(e._labelCollection),v7(e._billboardCollection),v7(e._pointCollection))}dh.prototype.update=function(e){if(!this.show)return;let t;l(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,vZe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};dh.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var Ou=dh;function I7(e){this._name=e,this._clock=void 0,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new $s(this),this._entityCluster=new Ou}Object.defineProperties(I7.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){Gr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});I7.prototype.update=function(e){return!0};var qL=I7;var pde={};pde.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,m=o?(a+i)*3:i*3;for(f=0;f<i;f++){let x=f/i*P.TWO_PI,b=Math.cos(x),T=Math.sin(x),C=b*n,A=T*n,E=b*t,v=T*t;u[p+g]=C,u[p+g+1]=A,u[p+g+2]=s,u[p+m]=E,u[p+m+1]=v,u[p+m+2]=r,p+=3,o&&(u[d++]=C,u[d++]=A,u[d++]=s,u[d++]=E,u[d++]=v,u[d++]=r)}return u};var Yb=pde;var P7=new z,wZe=new h,DZe=new h,IZe=new h,PZe=new h;function k_(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Ie.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}k_.packedLength=Ie.packedLength+5;k_.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var _de=new Ie,DE={vertexFormat:_de,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};k_.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,_de);t+=Ie.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(DE.length=o,DE.topRadius=r,DE.bottomRadius=s,DE.slices=a,DE.offsetAttribute=c===-1?void 0:c,new k_(DE))};k_.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,u=Yb.computePositions(t,n,i,r,!0),f=o.st?new Float32Array(c*2):void 0,d=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,g=o.bitangent?new Float32Array(c*3):void 0,m,x=o.normal||o.tangent||o.bitangent;if(x){let O=o.tangent||o.bitangent,R=0,M=0,N=0,_=Math.atan2(i-n,t),S=wZe;S.z=Math.sin(_);let w=Math.cos(_),I=IZe,L=DZe;for(m=0;m<r;m++){let B=m/r*P.TWO_PI,U=w*Math.cos(B),V=w*Math.sin(B);x&&(S.x=U,S.y=V,O&&(I=h.normalize(h.cross(h.UNIT_Z,S,I),I)),o.normal&&(d[R++]=S.x,d[R++]=S.y,d[R++]=S.z,d[R++]=S.x,d[R++]=S.y,d[R++]=S.z),o.tangent&&(p[M++]=I.x,p[M++]=I.y,p[M++]=I.z,p[M++]=I.x,p[M++]=I.y,p[M++]=I.z),o.bitangent&&(L=h.normalize(h.cross(S,I,L),L),g[N++]=L.x,g[N++]=L.y,g[N++]=L.z,g[N++]=L.x,g[N++]=L.y,g[N++]=L.z))}for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=-1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[N++]=0,g[N++]=-1,g[N++]=0);for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[N++]=0,g[N++]=1,g[N++]=0)}let b=12*r-12,T=Ne.createTypedArray(c,b),C=0,A=0;for(m=0;m<r-1;m++)T[C++]=A,T[C++]=A+2,T[C++]=A+3,T[C++]=A,T[C++]=A+3,T[C++]=A+1,A+=2;for(T[C++]=s-2,T[C++]=0,T[C++]=1,T[C++]=s-2,T[C++]=1,T[C++]=s-1,m=1;m<r-1;m++)T[C++]=s+m+1,T[C++]=s+m,T[C++]=s;for(m=1;m<r-1;m++)T[C++]=a,T[C++]=a+m,T[C++]=a+m+1;let E=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let R=h.fromArray(u,m*3,PZe);f[E++]=(R.x+O)/(2*O),f[E++]=(R.y+O)/(2*O)}}let v=new fn;o.position&&(v.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})),o.normal&&(v.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(v.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(v.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(v.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),P7.x=t*.5,P7.y=Math.max(i,n);let D=new se(h.ZERO,z.magnitude(P7));if(l(e._offsetAttribute)){t=u.length;let O=e._offsetAttribute===an.NONE?0:1,R=new Uint8Array(t/3).fill(O);v.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new at({attributes:v,indices:T,primitiveType:Me.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var R7;k_.getUnitCylinder=function(){return l(R7)||(R7=k_.createGeometry(new k_({topRadius:1,bottomRadius:1,length:1,vertexFormat:Ie.POSITION_ONLY}))),R7};var YL=k_;var O7=new z;function IE(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.slices,128),r=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}IE.packedLength=6;IE.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var Xb={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};IE.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(Xb.length=i,Xb.topRadius=o,Xb.bottomRadius=r,Xb.slices=s,Xb.numberOfVerticalLines=a,Xb.offsetAttribute=c===-1?void 0:c,new IE(Xb))};IE.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=Yb.computePositions(t,n,i,o,!1),c=o*2,u;if(r>0){let x=Math.min(r,o);u=Math.round(o/x),c+=x}let f=Ne.createTypedArray(s,c*2),d=0,p;for(p=0;p<o-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+o,f[d++]=p+1+o;if(f[d++]=o-1,f[d++]=0,f[d++]=o+o-1,f[d++]=o,r>0)for(p=0;p<o;p+=u)f[d++]=p,f[d++]=p+o;let g=new fn;g.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),O7.x=t*.5,O7.y=Math.max(i,n);let m=new se(h.ZERO,z.magnitude(O7));if(l(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===an.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new at({attributes:g,indices:f,primitiveType:Me.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var XL=IE;var gde=h.ZERO,yde=new h,RZe=new h,xde=new H;function OZe(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Mu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new OZe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(Mu.prototype=Object.create(ii.prototype),Mu.prototype.constructor=Mu);Object.defineProperties(Mu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Mu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,xde)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,gde,yde))),new St({id:t,geometry:new YL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:s})};Mu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,xde),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,gde,yde))),new St({id:t,geometry:new XL(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:r})};Mu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};Mu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||ii.prototype._isHidden.call(this,e,t)};Mu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!Y.isConstant(t.slices)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)};Mu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(He.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(He.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(He.MINIMUM_VALUE),i.slices=Y.getValueOrUndefined(t.slices,He.MINIMUM_VALUE),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};Mu.prototype._onEntityPropertyChanged=Up;Mu.DynamicGeometryUpdater=PE;function PE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(PE.prototype=Object.create(ni.prototype),PE.prototype.constructor=PE);PE.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,RZe);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||ni.prototype._isHidden.call(this,e,t,n)};PE.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),o=this._options;o.length=Y.getValueOrUndefined(t.length,n),o.topRadius=Y.getValueOrUndefined(t.topRadius,n),o.bottomRadius=Y.getValueOrUndefined(t.bottomRadius,n),o.slices=Y.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==Ye.NONE?an.ALL:void 0};var KL=Mu;var MZe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Wr=Object.freeze(MZe);var LZe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},mo=Object.freeze(LZe);var NZe={NONE:0,HOLD:1,EXTRAPOLATE:2},Lu=Object.freeze(NZe);var bde=Vo(au(),1);function FZe(e){let t=new bde.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var V_=FZe;var BZe=P.factorial;function M7(e,t,n,i,o,r){let s=0,a,c,u;if(i>0){for(c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(r.push(c),s+=M7(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(s*=e-n[t[c]])}return s}var jz={type:"Hermite"};jz.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};jz.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,u,f,d=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let b=new Array(d);for(p[r]=b,s=0;s<d;s++)b[s]=[]}let g=d,m=new Array(g);for(r=0;r<g;r++)m[r]=r;let x=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=m[s]*i+c,p[c][0].push(n[f]);for(r=1;r<g;r++){let b=!1;for(s=0;s<g-r;s++){let T=t[m[s]],C=t[m[s+r]],A;C-T<=0?(f=m[s]*i+i*r+c,A=n[f],p[c][r].push(A/BZe(r))):(A=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(A/(C-T))),b=b||A!==0}b||(x=r-1)}}for(a=0,u=0;a<=u;a++)for(r=a;r<=x;r++){let b=M7(e,m,t,a,r,[]);for(c=0;c<i;c++){let T=p[c][r][0];o[c+a*i]+=T*b}}return o};var kZe=[];jz.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,u=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)u[f*(o+1)+T]=f;let d=u.length,p=kZe,g=VZe(p,u,t,n,i,o),m=[],x=d*(d+1)/2,b=Math.min(g,r);for(let T=0;T<=b;T++)for(f=T;f<=g;f++){m.length=0;let C=M7(e,u,t,T,f,m),A=Math.floor(f*(1-f)/2)+d*f;for(let E=0;E<i;E++){let v=Math.floor(E*x),D=p[v+A];s[E+T*i]+=D*C}}return s};function VZe(e,t,n,i,o,r){let s,a,c=-1,u=t.length,f=u*(u+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<u;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<u;g++){let m=0,x=Math.floor(g*(1-g)/2)+u*g,b=!1;for(s=0;s<u-g;s++){let T=n[t[s]],C=n[t[s+g]],A,E;if(C-T<=0)a=t[s]*o*(r+1)+o*g+d,A=i[a],E=A/P.factorial(g),e[p+x+m]=E,m++;else{let v=Math.floor((g-1)*(2-g)/2)+u*(g-1);A=e[p+v+s+1]-e[p+v+s],E=A/(C-T),e[p+x+m]=E,m++}b=b||A!==0}b&&(c=Math.max(c,g))}}return c}var ZL=jz;var L7={type:"Lagrange"};L7.getRequiredDataPoints=function(e){return Math.max(e+1,2)};L7.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let u=t[r]-t[s];c*=(e-t[s])/u}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var $L=L7;var N7={type:"Linear"};N7.getRequiredDataPoints=function(e){return 2};N7.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],u=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+u*s-c*a)/(u-c);return o};var Kb=N7;function bc(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}bc.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new bc),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};bc.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new bc(e.clock,e.cone,e.magnitude)};bc.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new bc(e.clock,e.cone,1)};bc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};bc.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};bc.prototype.equals=function(e){return bc.equals(this,e)};bc.prototype.clone=function(e){return bc.clone(this,e)};bc.prototype.equalsEpsilon=function(e,t){return bc.equalsEpsilon(this,e,t)};bc.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var QL=bc;var iN=Vo(au(),1);var F7;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?F7=function(){return performance.now()}:F7=function(){return Date.now()};var xi=F7;function B7(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=Z.clone(t):l(n)?t=Z.clone(n):l(i)?t=Z.addDays(i,-1,new Z):t=Z.now(),l(n)?n=Z.clone(n):n=Z.clone(t),l(i)?i=Z.clone(i):i=Z.addDays(n,1,new Z),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Wr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new me,this.onStop=new me,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=xi(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,mo.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(B7.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){Z.equals(this._currentTime,e)||(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===mo.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=Z.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===mo.SYSTEM_CLOCK&&(this._clockStep=mo.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});B7.prototype.tick=function(){let e=xi(),t=Z.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===mo.SYSTEM_CLOCK)t=Z.now(t);else{let i=this._multiplier;if(n===mo.TICK_DEPENDENT)t=Z.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=Z.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Wr.CLAMPED)Z.lessThan(t,r)?t=Z.clone(r,t):Z.greaterThan(t,s)&&(t=Z.clone(s,t),this.onStop.raiseEvent(this));else if(o===Wr.LOOP_STOP)for(Z.lessThan(t,r)&&(t=Z.clone(r,t));Z.greaterThan(t,s);)t=Z.addSeconds(r,Z.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var hh=B7;function Zb(){this._definitionChanged=new me,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(Zb.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Pl("startTime"),stopTime:Pl("stopTime"),currentTime:Pl("currentTime"),clockRange:Pl("clockRange"),clockStep:Pl("clockStep"),multiplier:Pl("multiplier")});Zb.prototype.clone=function(e){return l(e)||(e=new Zb),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};Zb.prototype.equals=function(e){return this===e||l(e)&&Z.equals(this.startTime,e.startTime)&&Z.equals(this.stopTime,e.stopTime)&&Z.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};Zb.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};Zb.prototype.getValue=function(e){return l(e)||(e=new hh),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var mh=Zb;var UZe=H.WHITE,zZe=.1,HZe=new z(8,8),GZe=new z(0,0),WZe=new z(1,1);function RE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(RE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._cellAlpha)&&Y.isConstant(this._lineCount)&&Y.isConstant(this._lineThickness)&&Y.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),cellAlpha:le("cellAlpha"),lineCount:le("lineCount"),lineThickness:le("lineThickness"),lineOffset:le("lineOffset")});RE.prototype.getType=function(e){return"Grid"};var jZe=new Z;RE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(jZe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,UZe,t.color),t.cellAlpha=Y.getValueOrDefault(this._cellAlpha,e,zZe),t.lineCount=Y.getValueOrClonedDefault(this._lineCount,e,HZe,t.lineCount),t.lineThickness=Y.getValueOrClonedDefault(this._lineThickness,e,WZe,t.lineThickness),t.lineOffset=Y.getValueOrClonedDefault(this._lineOffset,e,GZe,t.lineOffset),t};RE.prototype.equals=function(e){return this===e||e instanceof RE&&Y.equals(this._color,e._color)&&Y.equals(this._cellAlpha,e._cellAlpha)&&Y.equals(this._lineCount,e._lineCount)&&Y.equals(this._lineThickness,e._lineThickness)&&Y.equals(this._lineOffset,e._lineOffset)};var OE=RE;function ME(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(ME.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});ME.prototype.getType=function(e){return"PolylineArrow"};var qZe=new Z;ME.prototype.getValue=function(e,t){return l(e)||(e=Z.now(qZe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,H.WHITE,t.color),t};ME.prototype.equals=function(e){return this===e||e instanceof ME&&Y.equals(this._color,e._color)};var LE=ME;var YZe=H.WHITE,XZe=H.TRANSPARENT,KZe=16,ZZe=255;function NE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(NE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._gapColor)&&Y.isConstant(this._dashLength)&&Y.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),gapColor:le("gapColor"),dashLength:le("dashLength"),dashPattern:le("dashPattern")});NE.prototype.getType=function(e){return"PolylineDash"};var $Ze=new Z;NE.prototype.getValue=function(e,t){return l(e)||(e=Z.now($Ze)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,YZe,t.color),t.gapColor=Y.getValueOrClonedDefault(this._gapColor,e,XZe,t.gapColor),t.dashLength=Y.getValueOrDefault(this._dashLength,e,KZe,t.dashLength),t.dashPattern=Y.getValueOrDefault(this._dashPattern,e,ZZe,t.dashPattern),t};NE.prototype.equals=function(e){return this===e||e instanceof NE&&Y.equals(this._color,e._color)&&Y.equals(this._gapColor,e._gapColor)&&Y.equals(this._dashLength,e._dashLength)&&Y.equals(this._dashPattern,e._dashPattern)};var FE=NE;var QZe=H.WHITE,JZe=.25,e$e=1;function BE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(BE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),glowPower:le("glowPower"),taperPower:le("taperPower")});BE.prototype.getType=function(e){return"PolylineGlow"};var t$e=new Z;BE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(t$e)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,QZe,t.color),t.glowPower=Y.getValueOrDefault(this._glowPower,e,JZe,t.glowPower),t.taperPower=Y.getValueOrDefault(this._taperPower,e,e$e,t.taperPower),t};BE.prototype.equals=function(e){return this===e||e instanceof BE&&Y.equals(this._color,e._color)&&Y.equals(this._glowPower,e._glowPower)&&Y.equals(this._taperPower,e._taperPower)};var kE=BE;var n$e=H.WHITE,i$e=H.BLACK,o$e=1;function VE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(VE.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._outlineColor)&&Y.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth")});VE.prototype.getType=function(e){return"PolylineOutline"};var r$e=new Z;VE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(r$e)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,n$e,t.color),t.outlineColor=Y.getValueOrClonedDefault(this._outlineColor,e,i$e,t.outlineColor),t.outlineWidth=Y.getValueOrDefault(this._outlineWidth,e,o$e),t};VE.prototype.equals=function(e){return this===e||e instanceof VE&&Y.equals(this._color,e._color)&&Y.equals(this._outlineColor,e._outlineColor)&&Y.equals(this._outlineWidth,e._outlineWidth)};var qy=VE;function U_(e,t){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new fr,this._referenceFrame=y(t,Vi.FIXED),this.setValue(e)}Object.defineProperties(U_.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var s$e=new Z;U_.prototype.getValue=function(e,t){return l(e)||(e=Z.now(s$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};U_.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};U_.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,U_.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};U_.prototype.equals=function(e){return this===e||e instanceof U_&&this._referenceFrame===e._referenceFrame&&Y.arrayEquals(this._value,e._value)};U_.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var z_=U_;function Yy(e){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new fr,this.setValue(e)}Object.defineProperties(Yy.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});var a$e=new Z;Yy.prototype.getValue=function(e,t){l(e)||(e=Z.now(a$e));let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};Yy.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Yy.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Yy.prototype.equals=function(e){return this===e||e instanceof Yy&&Y.arrayEquals(this._value,e._value)};Yy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var UE=Yy;function $b(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(Nu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function Nu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new me,e.collectionChanged.addEventListener(Nu.prototype._onCollectionChanged,this)}Object.defineProperties(Nu.prototype,{isConstant:{get:function(){return Y.isConstant($b(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=$b(this);return l(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return $b(this)}}});Nu.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new Nu(e,n,i)};var c$e=new Z;Nu.prototype.getValue=function(e,t){let n=$b(this);return l(e)||(e=Z.now(c$e)),l(n)?n.getValue(e,t):void 0};Nu.prototype.getValueInReferenceFrame=function(e,t,n){let i=$b(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};Nu.prototype.getType=function(e){let t=$b(this);return l(t)?t.getType(e):void 0};Nu.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};Nu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};Nu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(Nu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=$b(this),l(i)&&this._definitionChanged.raiseEvent(this))};var H_=Nu;var l$e={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){l(i)||(i=[]),t=y(t,0),n=y(n,e.length);let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-P.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+P.TWO_PI:o}},Qf=l$e;var Tde={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function Cde(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function Ade(e,t){return e instanceof Z?e:typeof e=="string"?Z.fromIso8601(e):Z.addSeconds(t,e,new Z)}var k7=[],V7=[];function qz(e,t,n,i,o){let r=0,s,a,c,u,f,d;for(;r<i.length;){f=Ade(i[r],e),c=Po(t,f,Z.compare);let p=0,g=0;if(c<0){for(c=~c,u=c*o,a=void 0,d=t[c];r<i.length&&(f=Ade(i[r],e),!(l(a)&&Z.compare(a,f)>=0||l(d)&&Z.compare(f,d)>=0));){for(k7[p++]=f,r=r+1,s=0;s<o;s++)V7[g++]=i[r],r=r+1;a=f}p>0&&(V7.length=g,Cde(n,u,V7),k7.length=p,Cde(t,c,k7))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function ph(e,t){let n=e;n===Number&&(n=Tde);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let u=t[c];u===Number&&(u=Tde);let f=u.packedLength;i+=f,o+=y(u.packedInterpolationLength,f),s[c]=u}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=Kb,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new me,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=Lu.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=Lu.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(ph.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});var u$e=new Z;ph.prototype.getValue=function(e,t){l(e)||(e=Z.now(u$e));let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Po(n,e,Z.compare);if(a<0){if(a=~a,a===0){let E=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===Lu.NONE||o!==0&&Z.secondsDifference(E,e)>o)return;if(this._backwardExtrapolationType===Lu.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let E=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===Lu.NONE||o!==0&&Z.secondsDifference(e,E)>o)return;if(this._forwardExtrapolationType===Lu.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let E=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);E!==this._numberOfPoints&&(this._numberOfPoints=E,c.length=E,u.length=E*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let E=a-(g/2|0)-1;E<m&&(E=m);let v=E+g;v>x&&(v=x,E=v-g,E<m&&(E=m)),m=E,x=v}let T=x-m+1;for(let E=0;E<T;++E)c[E]=Z.secondsDifference(n[m+E],n[x]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,u);else{let E=0,v=this._packedLength,D=m*v,O=(x+1)*v;for(;D<O;)u[E]=s[D],D++,E++}let C=Z.secondsDifference(e,n[x]),A;if(p===0||!l(f.interpolate))A=f.interpolateOrderZero(C,c,u,d,this._interpolationResult);else{let E=Math.floor(d/(p+1));A=f.interpolate(C,c,u,E,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(A,s,m,x,t):r.unpack(A,0,t)}return r.unpack(s,a*this._packedLength,t)};ph.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};ph.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}qz(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let u=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(u[d],a,a.length)}qz(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.addSamplesPackedArray=function(e,t){qz(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};ph.prototype.removeSample=function(e){let t=Po(this._times,e,Z.compare);return t<0?!1:(Ede(this,t,1),!0)};function Ede(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}ph.prototype.removeSamples=function(e){let t=this._times,n=Po(t,e.start,Z.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Po(t,e.stop,Z.compare);i<0?i=~i:e.isStopIncluded&&++i,Ede(this,n,i-n)};ph.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!Z.equals(a[r],c[r]))return!1;let u=this._values,f=e._values;for(s=u.length,r=0;r<s;r++)if(u[r]!==f[r])return!1;return!0};ph._mergeNewSamples=qz;var Fu=ph;function Jf(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new Fu(h,n),this._definitionChanged=new me,this._referenceFrame=y(e,Vi.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(Jf.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});var f$e=new Z;Jf.prototype.getValue=function(e,t){return l(e)||(e=Z.now(f$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Jf.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return Nd.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};Jf.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};Jf.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};Jf.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};Jf.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};Jf.prototype.removeSample=function(e){return this._property.removeSample(e)};Jf.prototype.removeSamples=function(e){this._property.removeSamples(e)};Jf.prototype.equals=function(e){return this===e||e instanceof Jf&&Y.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var _a=Jf;var d$e={HORIZONTAL:0,VERTICAL:1},_h=Object.freeze(d$e);var h$e=_h.HORIZONTAL,m$e=H.WHITE,p$e=H.BLACK,_$e=0,g$e=1;function zE(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(zE.prototype,{isConstant:{get:function(){return Y.isConstant(this._orientation)&&Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._offset)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:le("orientation"),evenColor:le("evenColor"),oddColor:le("oddColor"),offset:le("offset"),repeat:le("repeat")});zE.prototype.getType=function(e){return"Stripe"};var y$e=new Z;zE.prototype.getValue=function(e,t){return l(e)||(e=Z.now(y$e)),l(t)||(t={}),t.horizontal=Y.getValueOrDefault(this._orientation,e,h$e)===_h.HORIZONTAL,t.evenColor=Y.getValueOrClonedDefault(this._evenColor,e,m$e,t.evenColor),t.oddColor=Y.getValueOrClonedDefault(this._oddColor,e,p$e,t.oddColor),t.offset=Y.getValueOrDefault(this._offset,e,_$e),t.repeat=Y.getValueOrDefault(this._repeat,e,g$e),t};zE.prototype.equals=function(e){return this===e||e instanceof zE&&Y.equals(this._orientation,e._orientation)&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._offset,e._offset)&&Y.equals(this._repeat,e._repeat)};var HE=zE;function Xy(e){this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Xy.prototype._intervalsChanged,this),this._referenceFrame=y(e,Vi.FIXED)}Object.defineProperties(Xy.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});var x$e=new Z;Xy.prototype.getValue=function(e,t){return l(e)||(e=Z.now(x$e)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};Xy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return Nd.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};Xy.prototype.equals=function(e){return this===e||e instanceof Xy&&this._intervals.equals(e._intervals,Y.equals)&&this._referenceFrame===e._referenceFrame};Xy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var G_=Xy;function Qb(){this._definitionChanged=new me,this._intervals=new Hr,this._intervals.changedEvent.addEventListener(Qb.prototype._intervalsChanged,this)}Object.defineProperties(Qb.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var b$e=new Z;Qb.prototype.getValue=function(e,t){l(e)||(e=Z.now(b$e));let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};Qb.prototype.equals=function(e){return this===e||e instanceof Qb&&this._intervals.equals(e._intervals,Y.equals)};Qb.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var W_=Qb;function GE(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new me,this._normalize=y(t,!0),this.position=e}Object.defineProperties(GE.prototype,{isConstant:{get:function(){return Y.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var T$e=new h,Sde=new h,vde=new Z,C$e=new Z,U7=1/60;GE.prototype.getValue=function(e,t){return this._getValue(e,t)};GE.prototype._getValue=function(e,t,n){l(e)||(e=Z.now(C$e)),l(t)||(t=new h);let i=this._position;if(Y.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,T$e),r=i.getValue(Z.addSeconds(e,U7,vde),Sde);if(!l(o)||!l(r)&&(r=o,o=i.getValue(Z.addSeconds(e,-U7,vde),Sde),!l(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);l(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,U7,t)};GE.prototype.equals=function(e){return this===e||e instanceof GE&&Y.equals(this._position,e._position)};var Jb=GE;function JL(e,t){this._velocityVectorProperty=new Jb(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new me,this.ellipsoid=y(t,ee.default);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(JL.prototype,{isConstant:{get:function(){return Y.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var wde=new h,A$e=new h,Dde=new $,E$e=new Z;JL.prototype.getValue=function(e,t){l(e)||(e=Z.now(E$e));let n=this._velocityVectorProperty._getValue(e,A$e,wde);if(l(n))return Mt.rotationMatrixFromPositionVelocity(wde,n,this._ellipsoid,Dde),Oe.fromRotationMatrix(Dde,t)};JL.prototype.equals=function(e){return this===e||e instanceof JL&&Y.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var eN=JL;var j_={COMPLETE:0,BELOW_ELLIPSOID_HORIZON:1,ABOVE_ELLIPSOID_HORIZON:2};j_.validate=function(e){return e===j_.COMPLETE||e===j_.BELOW_ELLIPSOID_HORIZON||e===j_.ABOVE_ELLIPSOID_HORIZON};j_.toString=function(e){switch(e){case j_.COMPLETE:return"COMPLETE";case j_.BELOW_ELLIPSOID_HORIZON:return"BELOW_ELLIPSOID_HORIZON";case j_.ABOVE_ELLIPSOID_HORIZON:return"ABOVE_ELLIPSOID_HORIZON";default:throw new he("SensorVolumePortionToDisplay value is not valid and cannot be converted to a String.")}};var WE=j_;function Ky(){}Ky.packedLength=h.packedLength;Ky.unpack=h.unpack;Ky.pack=h.pack;var z7;function tN(e,t){return t[0]==="#"&&(t=z7+t),H_.fromString(e,t)}function Ide(e,t,n){if(l(n.reference))return tN(t,n.reference);if(l(n.velocityReference)){let i=tN(t,n.velocityReference);switch(e){case h:case Ky:return new Jb(i,e===Ky);case Oe:return new eN(i)}}throw new ce(`${JSON.stringify(n)} is not valid CZML.`)}function S$e(e,t){return new Vd(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Gi=new h,il=new QL,Tc=new fe,eT=new Cn,Yz=new Oe;function v$e(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===H.packedLength)return[H.byteToFloat(n[0]),H.byteToFloat(n[1]),H.byteToFloat(n[2]),H.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=H.byteToFloat(n[o+1]),t[o+2]=H.byteToFloat(n[o+2]),t[o+3]=H.byteToFloat(n[o+3]),t[o+4]=H.byteToFloat(n[o+4]);return t}function Pde(e,t){let n=y(e.uri,e);return l(t)?t.getDerivedResource({url:n}):we.createIfNeeded(n)}function w$e(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===re.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=P.toRadians(n[o+1]),t[o+2]=P.toRadians(n[o+2]),t[o+3]=P.toRadians(n[o+3]),t[o+4]=P.toRadians(n[o+4]);return t}function D$e(e){let t=e.length;if(il.magnitude=1,t===2)return il.clock=e[0],il.cone=e[1],h.fromSpherical(il,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],il.clock=e[i+1],il.cone=e[i+2],h.fromSpherical(il,Gi),n[o+1]=Gi.x,n[o+2]=Gi.y,n[o+3]=Gi.z;return n}function I$e(e){let t=e.length;if(t===3)return il.clock=e[0],il.cone=e[1],il.magnitude=e[2],h.fromSpherical(il,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],il.clock=e[i+1],il.cone=e[i+2],il.magnitude=e[i+3],h.fromSpherical(il,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function P$e(e){let t=e.length;if(t===3)return Tc.longitude=e[0],Tc.latitude=e[1],Tc.height=e[2],ee.default.cartographicToCartesian(Tc,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Tc.longitude=e[i+1],Tc.latitude=e[i+2],Tc.height=e[i+3],ee.default.cartographicToCartesian(Tc,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function R$e(e){let t=e.length;if(t===3)return Tc.longitude=P.toRadians(e[0]),Tc.latitude=P.toRadians(e[1]),Tc.height=e[2],ee.default.cartographicToCartesian(Tc,Gi),[Gi.x,Gi.y,Gi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Tc.longitude=P.toRadians(e[i+1]),Tc.latitude=P.toRadians(e[i+2]),Tc.height=e[i+3],ee.default.cartographicToCartesian(Tc,Gi),n[i+1]=Gi.x,n[i+2]=Gi.y,n[i+3]=Gi.z;return n}function H7(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return D$e(o);let r=e.spherical;if(l(r))return I$e(r);let s=e.cartographicRadians;if(l(s))return P$e(s);let a=e.cartographicDegrees;if(l(a))return R$e(a);throw new ce(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Rde(e,t){h.unpack(e,t,Gi),h.normalize(Gi,Gi),h.pack(Gi,e,t)}function O$e(e){let t=H7(e);if(t.length===3)return Rde(t,0),t;for(let n=1;n<t.length;n+=4)Rde(t,n);return t}function Ode(e,t){Oe.unpack(e,t,Yz),Oe.normalize(Yz,Yz),Oe.pack(Yz,e,t)}function M$e(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return Ode(t,0),t;for(let n=1;n<t.length;n+=5)Ode(t,n)}return t}function Mde(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?je:e.hasOwnProperty("cartesian2")?z:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?Ky:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?H:e.hasOwnProperty("arcType")?Jt:e.hasOwnProperty("classificationType")?Vn:e.hasOwnProperty("colorBlendMode")?dc:e.hasOwnProperty("cornerType")?Pi:e.hasOwnProperty("heightReference")?Ye:e.hasOwnProperty("horizontalOrigin")?_i:e.hasOwnProperty("date")?Z:e.hasOwnProperty("labelStyle")?Wo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Bt:e.hasOwnProperty("distanceDisplayCondition")?Lt:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Oe:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?_h:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?re:e.hasOwnProperty("uri")?iN.default:e.hasOwnProperty("verticalOrigin")?Rn:Object}function L$e(e,t,n){switch(e){case Jt:return Jt[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case je:return t.boundingRectangle;case z:return t.cartesian2;case h:return H7(t);case Ky:return O$e(t);case H:return v$e(t);case Vn:return Vn[y(t.classificationType,t)];case dc:return dc[y(t.colorBlendMode,t)];case Pi:return Pi[y(t.cornerType,t)];case Ye:return Ye[y(t.heightReference,t)];case _i:return _i[y(t.horizontalOrigin,t)];case Image:return Pde(t,n);case Z:return Z.fromIso8601(y(t.date,t));case Wo:return Wo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Bt:return t.nearFarScalar;case Lt:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Oe:return M$e(t);case Qf:return y(t.number,t);case WE:return WE[y(t.portionToDisplay,t)];case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case _h:return _h[y(t.stripeOrientation,t)];case re:return w$e(t);case iN.default:return Pde(t,n);case Rn:return Rn[y(t.verticalOrigin,t)];default:throw new ce(`Unknown CzmlDataSource interval type: ${e}`)}}var N$e={HERMITE:ZL,LAGRANGE:$L,LINEAR:Kb};function Xz(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:N$e[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=Lu[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=Lu[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var Lde={iso8601:void 0};function dr(e){if(l(e))return Lde.iso8601=e,Cn.fromIso8601(Lde)}function G7(e){let t=He.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Nde(e){let t=new yc;return t.intervals.addInterval(G7(e)),t}function Fde(e){let t=new ma(e.referenceFrame);return t.intervals.addInterval(G7(e)),t}function Kz(e,t,n,i,o,r,s){let a=dr(i.interval);l(o)&&(l(a)?a=Cn.intersect(a,o,eT):a=o);let c,u,f,d=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(He.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return Yde(t[n],a)}let g=!1;if(d){if(u=L$e(e,i,r),!l(u))return;c=y(e.packedLength,1),f=y(u.length,1),g=!l(i.array)&&typeof u!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==Qf;if(!g&&!p){d?t[n]=new Kn(m?e.unpack(u,0):u):t[n]=Ide(e,s,i);return}let x=t[n],b,T=i.epoch;if(l(T)&&(b=Z.fromIso8601(T)),g&&!p){x instanceof Fu||(t[n]=x=new Fu(e)),x.addSamplesPackedArray(u,b),Xz(i,x);return}let C;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(u,0):u:a.data=Ide(e,s,i),l(x)||(t[n]=x=d?new W_:new yc),d&&x instanceof W_?x.intervals.addInterval(a):x instanceof yc?(d&&(a.data=new Kn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Nde(x),d&&(a.data=new Kn(a.data)),x.intervals.addInterval(a));return}l(x)||(t[n]=x=new yc),x instanceof yc||(t[n]=x=Nde(x));let A=x.intervals;C=A.findInterval(a),(!l(C)||!(C.data instanceof Fu))&&(C=a.clone(),C.data=new Fu(e),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Xz(i,C.data)}function Yde(e,t){if(e instanceof Fu){e.removeSamples(t);return}else if(e instanceof W_){e.intervals.removeInterval(t);return}else if(e instanceof yc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Cn.intersect(n.get(i),t,eT);o.isEmpty||Yde(o.data,t)}n.removeInterval(t);return}}function ge(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)Kz(e,t,n,i[a],o,r,s);else Kz(e,t,n,i,o,r,s)}function Bde(e,t,n,i,o,r){let s=dr(n.interval);l(i)&&(l(s)?s=Cn.intersect(s,i,eT):s=i);let a=l(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),u,f,d=!l(n.reference),p=l(s)&&!s.equals(He.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Xde(e[t],s)}let g,m=!1;if(d&&(l(n.referenceFrame)&&(g=Vi[n.referenceFrame]),g=y(g,Vi.FIXED),u=H7(n),f=y(u.length,1),m=f>c),!m&&!p){d?e[t]=new Gc(h.unpack(u),g):e[t]=tN(r,n.reference);return}let x=e[t],b,T=n.epoch;if(l(T)&&(b=Z.fromIso8601(T)),m&&!p){(!(x instanceof _a)||l(g)&&x.referenceFrame!==g)&&(e[t]=x=new _a(g,a)),x.addSamplesPackedArray(u,b),Xz(n,x);return}let C;if(!m&&p){s=s.clone(),d?s.data=h.unpack(u):s.data=tN(r,n.reference),l(x)||(d?x=new G_(g):x=new ma(g),e[t]=x),d&&x instanceof G_&&l(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof ma?(d&&(s.data=new Gc(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=Fde(x),d&&(s.data=new Gc(s.data,g)),x.intervals.addInterval(s));return}l(x)?x instanceof ma||(e[t]=x=Fde(x)):e[t]=x=new ma(g);let A=x.intervals;C=A.findInterval(s),(!l(C)||!(C.data instanceof _a)||l(g)&&C.data.referenceFrame!==g)&&(C=s.clone(),C.data=new _a(g,a),A.addInterval(C)),C.data.addSamplesPackedArray(u,b),Xz(n,C.data)}function Xde(e,t){if(e instanceof _a){e.removeSamples(t);return}else if(e instanceof G_){e.intervals.removeInterval(t);return}else if(e instanceof ma){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Cn.intersect(n.get(i),t,eT);o.isEmpty||Xde(o.data,t)}n.removeInterval(t);return}}function Kde(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Bde(e,t,n[s],i,o,r);else Bde(e,t,n,i,o,r)}function kde(e,t,n,i){l(n.references)?Zz(e,t,n.references,n.interval,i,UE,yc):(l(n.cartesian2)?n.array=z.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=z.unpackArray(n.cartesian)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function Vde(e,t,n,i,o,r){let s=dr(n.interval);l(i)&&(l(s)?s=Cn.intersect(s,i,eT):s=i);let a=e[t],c,u;if(l(s)){a instanceof CE||(a=new CE,e[t]=a);let d=a.intervals;u=d.findInterval({start:s.start,stop:s.stop}),l(u)?c=u.data:(u=s.clone(),d.addInterval(u))}else c=a;let f;l(n.solidColor)?(c instanceof Ut||(c=new Ut),f=n.solidColor,ge(H,c,"color",f.color,void 0,void 0,r)):l(n.grid)?(c instanceof OE||(c=new OE),f=n.grid,ge(H,c,"color",f.color,void 0,o,r),ge(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),ge(z,c,"lineCount",f.lineCount,void 0,o,r),ge(z,c,"lineThickness",f.lineThickness,void 0,o,r),ge(z,c,"lineOffset",f.lineOffset,void 0,o,r)):l(n.image)?(c instanceof Yg||(c=new Yg),f=n.image,ge(Image,c,"image",f.image,void 0,o,r),ge(z,c,"repeat",f.repeat,void 0,o,r),ge(H,c,"color",f.color,void 0,o,r),ge(Boolean,c,"transparent",f.transparent,void 0,o,r)):l(n.stripe)?(c instanceof HE||(c=new HE),f=n.stripe,ge(_h,c,"orientation",f.orientation,void 0,o,r),ge(H,c,"evenColor",f.evenColor,void 0,o,r),ge(H,c,"oddColor",f.oddColor,void 0,o,r),ge(Number,c,"offset",f.offset,void 0,o,r),ge(Number,c,"repeat",f.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof qy||(c=new qy),f=n.polylineOutline,ge(H,c,"color",f.color,void 0,o,r),ge(H,c,"outlineColor",f.outlineColor,void 0,o,r),ge(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof kE||(c=new kE),f=n.polylineGlow,ge(H,c,"color",f.color,void 0,o,r),ge(Number,c,"glowPower",f.glowPower,void 0,o,r),ge(Number,c,"taperPower",f.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof LE||(c=new LE),f=n.polylineArrow,ge(H,c,"color",f.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof FE||(c=new FE),f=n.polylineDash,ge(H,c,"color",f.color,void 0,void 0,r),ge(H,c,"gapColor",f.gapColor,void 0,void 0,r),ge(Number,c,"dashLength",f.dashLength,void 0,o,r),ge(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof bE||(c=new bE),f=n.checkerboard,ge(H,c,"evenColor",f.evenColor,void 0,o,r),ge(H,c,"oddColor",f.oddColor,void 0,o,r),ge(z,c,"repeat",f.repeat,void 0,o,r)),l(u)?u.data=c:e[t]=c}function Bu(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Vde(e,t,n[s],i,o,r);else Vde(e,t,n,i,o,r)}function F$e(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function B$e(e,t,n,i){let o=t.description;l(o)&&ge(String,e,"description",o,void 0,i,n)}function k$e(e,t,n,i){let o=t.position;l(o)&&Kde(e,"position",o,void 0,i,n)}function V$e(e,t,n,i){let o=t.viewFrom;l(o)&&ge(h,e,"viewFrom",o,void 0,i,n)}function U$e(e,t,n,i){let o=t.orientation;l(o)&&ge(Oe,e,"orientation",o,void 0,i,n)}function z$e(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new Rl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)Kz(Mde(s[a]),e.properties,r,s[a],void 0,i,n);else Kz(Mde(s),e.properties,r,s,void 0,i,n)}}}function Zz(e,t,n,i,o,r,s){let a=n.map(function(c){return tN(o,c)});if(l(i)){i=dr(i);let c=e[t];if(!(c instanceof s)){let u=new s;u.intervals.addInterval(G7(c)),e[t]=c=u}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Ude(e,t,n,i){let o=n.references;l(o)?Zz(e,t,o,n.interval,i,UE,yc):ge(Array,e,t,n,void 0,void 0,i)}function zde(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Ude(e,t,n[o],i);else Ude(e,t,n,i)}function Hde(e,t,n,i){let o=n.references;l(o)?Zz(e,t,o,n.interval,i,z_,ma):(l(n.cartesian)?n.array=h.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ee.default):l(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ee.default)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function oN(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Hde(e,t,n[o],i);else Hde(e,t,n,i)}function H$e(e){return h.unpackArray(e)}function G$e(e){return h.fromRadiansArrayHeights(e,ee.default)}function W$e(e){return h.fromDegreesArrayHeights(e,ee.default)}function Gde(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return Zz(a,"positions",s,n.interval,i,z_,ma),a.positions});e[t]=new z_(r)}else l(n.cartesian)?n.array=n.cartesian.map(H$e):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(G$e):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(W$e)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i)}function j$e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Gde(e,t,n[o],i);else Gde(e,t,n,i)}function q$e(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)kde(e,t,n[o],i);else kde(e,t,n,i)}function Y$e(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new Hr),r.addInterval(dr(o[s]));else r=new Hr,r.addInterval(dr(o));e.availability=r}function X$e(e,t,n,i,o){l(t)&&ge(Ky,e,"alignedAxis",t,n,i,o)}function K$e(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=dr(o.interval),s=e.billboard;l(s)||(e.billboard=s=new oc),ge(Boolean,s,"show",o.show,r,i,n),ge(Image,s,"image",o.image,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(z,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),X$e(s,o.alignedAxis,r,i,n),ge(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(je,s,"imageSubRegion",o.imageSubRegion,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function Z$e(e,t,n,i){let o=t.box;if(!l(o))return;let r=dr(o.interval),s=e.box;l(s)||(e.box=s=new Ox),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"dimensions",o.dimensions,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function $$e(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=dr(o.interval),s=e.corridor;l(s)||(e.corridor=s=new Lx),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Pi,s,"cornerType",o.cornerType,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function Q$e(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=dr(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new Nx),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"length",o.length,r,i,n),ge(Number,s,"topRadius",o.topRadius,r,i,n),ge(Number,s,"bottomRadius",o.bottomRadius,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(Number,s,"slices",o.slices,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function J$e(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ce("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new ce("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function eQe(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=dr(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new Fx),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ge(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function tQe(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=dr(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new Bx),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"radii",o.radii,r,i,n),ge(h,s,"innerRadii",o.innerRadii,r,i,n),ge(Number,s,"minimumClock",o.minimumClock,r,i,n),ge(Number,s,"maximumClock",o.maximumClock,r,i,n),ge(Number,s,"minimumCone",o.minimumCone,r,i,n),ge(Number,s,"maximumCone",o.maximumCone,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ge(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ge(Number,s,"subdivisions",o.subdivisions,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function nQe(e,t,n,i){let o=t.label;if(!l(o))return;let r=dr(o.interval),s=e.label;l(s)||(e.label=s=new Fd),ge(Boolean,s,"show",o.show,r,i,n),ge(String,s,"text",o.text,r,i,n),ge(String,s,"font",o.font,r,i,n),ge(Wo,s,"style",o.style,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Boolean,s,"showBackground",o.showBackground,r,i,n),ge(H,s,"backgroundColor",o.backgroundColor,r,i,n),ge(z,s,"backgroundPadding",o.backgroundPadding,r,i,n),ge(z,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(_i,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(Rn,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"fillColor",o.fillColor,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Bt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function iQe(e,t,n,i){let o=t.model;if(!l(o))return;let r=dr(o.interval),s=e.model;l(s)||(e.model=s=new Bp),ge(Boolean,s,"show",o.show,r,i,n),ge(iN.default,s,"uri",o.gltf,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ge(Number,s,"maximumScale",o.maximumScale,r,i,n),ge(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ge(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ge(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"silhouetteColor",o.silhouetteColor,r,i,n),ge(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(dc,s,"colorBlendMode",o.colorBlendMode,r,i,n),ge(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Wde(s,u[a],r,i,n);else Wde(s,u,r,i,n);let f=o.articulations;if(l(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)jde(s,f[a],r,i,n);else jde(s,f,r,i,n)}function Wde(e,t,n,i,o){let r=dr(t.interval);l(n)&&(l(r)?r=Cn.intersect(r,n,eT):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!l(d))continue;l(s)||(e.nodeTransformations=s=new Rl),s.hasProperty(f)||s.addProperty(f);let p=s[f];l(p)||(s[f]=p=new kx),ge(h,p,"translation",d.translation,r,i,o),ge(Oe,p,"rotation",d.rotation,r,i,o),ge(h,p,"scale",d.scale,r,i,o)}}function jde(e,t,n,i,o){let r=dr(t.interval);l(n)&&(l(r)?r=Cn.intersect(r,n,eT):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];l(d)&&(l(s)||(e.articulations=s=new Rl),s.hasProperty(f)||s.addProperty(f),ge(Number,s,f,d,r,i,o))}}function oQe(e,t,n,i){let o=t.path;if(!l(o))return;let r=dr(o.interval),s=e.path;l(s)||(e.path=s=new kp),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"leadTime",o.leadTime,r,i,n),ge(Number,s,"trailTime",o.trailTime,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"resolution",o.resolution,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function rQe(e,t,n,i){let o=t.point;if(!l(o))return;let r=dr(o.interval),s=e.point;l(s)||(e.point=s=new Ux),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"pixelSize",o.pixelSize,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(H,s,"color",o.color,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Bt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Bt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function nN(e){this.polygon=e,this._definitionChanged=new me}Object.defineProperties(nN.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});nN.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new Oa(o)}))),l(t)?(t.positions=n,t.holes=i,t):new Oa(n,i)};nN.prototype.equals=function(e){return this===e||e instanceof nN&&Y.equals(this.polygon._positions,e.polygon._positions)&&Y.equals(this.polygon._holes,e.polygon._holes)};function sQe(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=dr(o.interval),s=e.polygon;l(s)||(e.polygon=s=new Bd),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"_positions",o.positions,n),j$e(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new nN(s)),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),ge(Boolean,s,"closeTop",o.closeTop,r,i,n),ge(Boolean,s,"closeBottom",o.closeBottom,r,i,n),ge(Jt,s,"arcType",o.arcType,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function aQe(e){return e?Jt.GEODESIC:Jt.NONE}function cQe(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=dr(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new ac),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),Bu(s,"material",o.material,r,i,n),Bu(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),ge(Jt,s,"arcType",o.arcType,r,i,n),ge(Boolean,s,"clampToGround",o.clampToGround,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};ge(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=S$e(a.followSurface,aQe)}}function lQe(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=dr(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new zx),oN(s,"positions",o.positions,n),q$e(s,"shape",o.shape,n),ge(Boolean,s,"show",o.show,r,i,n),ge(Pi,s,"cornerType",o.cornerType,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function uQe(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=dr(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new kd),ge(Boolean,s,"show",o.show,r,i,n),ge(re,s,"coordinates",o.coordinates,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ye,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ye,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Qf,s,"rotation",o.rotation,r,i,n),ge(Qf,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Vn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function fQe(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=dr(o.interval),s=e.tileset;l(s)||(e.tileset=s=new Vx),ge(Boolean,s,"show",o.show,r,i,n),ge(iN.default,s,"uri",o.uri,r,i,n),ge(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function dQe(e,t,n,i){let o=t.wall;if(!l(o))return;let r=dr(o.interval),s=e.wall;l(s)||(e.wall=s=new Vp),ge(Boolean,s,"show",o.show,r,i,n),oN(s,"positions",o.positions,n),zde(s,"minimumHeights",o.minimumHeights,n),zde(s,"maximumHeights",o.maximumHeights,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),Bu(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(H,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Lt,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function qde(e,t,n,i,o){let r=e.id;if(l(r)||(r=Hn()),z7=r,!l(o._version)&&r!=="document")throw new ce("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")J$e(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}z7=void 0}function hQe(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(He.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=Z.secondsDifference(s,r),c=Math.round(a/120);return t=new mh,t.startTime=Z.clone(r),t.stopTime=Z.clone(s),t.clockRange=Wr.LOOP_STOP,t.multiplier=c,t.currentTime=Z.clone(r),t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new mh,t.startTime=He.MINIMUM_VALUE.clone(),t.stopTime=He.MAXIMUM_VALUE.clone(),t.currentTime=He.MINIMUM_VALUE.clone(),t.clockRange=Wr.LOOP_STOP,t.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=dr(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=Z.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Wr[n.range],Wr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(mo[n.step],mo.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Zde(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new vt(s)),e._credit=s,typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return r=we.createIfNeeded(r),Gr.setLoading(e,!0),Promise.resolve(o).then(function(a){return mQe(e,a,r,i)}).catch(function(a){return Gr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function mQe(e,t,n,i){Gr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new $de,o.removeAll()),xs._processCzml(t,o,n,void 0,e);let r=hQe(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=V_(n.getUrlComponent()),r=!0),Gr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function $de(){this.name=void 0,this.clock=void 0}function xs(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._clock=void 0,this._documentPacket=new $de,this._version=void 0,this._entityCollection=new $s(this),this._entityCluster=new Ou,this._credit=void 0,this._resourceCredits=[]}xs.load=function(e,t){return new xs().load(e,t)};Object.defineProperties(xs.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});xs.updaters=[K$e,Z$e,$$e,Q$e,eQe,tQe,nQe,iQe,F$e,B$e,oQe,rQe,sQe,cQe,lQe,z$e,uQe,k$e,fQe,V$e,dQe,U$e,Y$e];xs.registerUpdater=function(e){xs.updaters.includes(e)||xs.updaters.push(e)};xs.unregisterUpdater=function(e){if(xs.updaters.includes(e)){let t=xs.updaters.indexOf(e);xs.updaters.splice(t,1)}};xs.prototype.process=function(e,t){return Zde(this,e,t,!1)};xs.prototype.load=function(e,t){return Zde(this,e,t,!0)};xs.prototype.update=function(e){return!0};xs.processPacketData=ge;xs.processPositionPacketData=Kde;xs.processMaterialPacketData=Bu;xs._processCzml=function(e,t,n,i,o){if(i=y(i,xs.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)qde(e[r],t,i,n,o);else qde(e,t,i,n,o)};var rN=xs;function ol(){this._dataSources=[],this._dataSourceAdded=new me,this._dataSourceRemoved=new me,this._dataSourceMoved=new me}Object.defineProperties(ol.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});ol.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};ol.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};ol.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};ol.prototype.contains=function(e){return this.indexOf(e)!==-1};ol.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};ol.prototype.get=function(e){return this._dataSources[e]};ol.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function $z(e,t){return e.indexOf(t)}function Qde(e,t,n){let i=e._dataSources,o=i.length-1;if(t=P.clamp(t,0,o),n=P.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}ol.prototype.raise=function(e){let t=$z(this._dataSources,e);Qde(this,t,t+1)};ol.prototype.lower=function(e){let t=$z(this._dataSources,e);Qde(this,t,t-1)};ol.prototype.raiseToTop=function(e){let t=$z(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};ol.prototype.lowerToBottom=function(e){let t=$z(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};ol.prototype.isDestroyed=function(){return!1};ol.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var sN=ol;function ga(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=Hn(),this._primitiveAdded=new me,this._primitiveRemoved=new me,this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(ga.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});ga.prototype.add=function(e,t){let n=l(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),this._primitiveAdded.raiseEvent(e),e};ga.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),this._primitiveRemoved.raiseEvent(e),!0}return!1};ga.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};ga.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy(),this._primitiveRemoved.raiseEvent(e[n]);this._primitives=[]};ga.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function Qz(e,t){return e._primitives.indexOf(t)}ga.prototype.raise=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};ga.prototype.raiseToTop=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};ga.prototype.lower=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};ga.prototype.lowerToBottom=function(e){if(l(e)){let t=Qz(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};ga.prototype.get=function(e){return this._primitives[e]};ga.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};ga.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};ga.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};ga.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};ga.prototype.isDestroyed=function(){return!1};ga.prototype.destroy=function(){return this.removeAll(),ue(this)};var jl=ga;function Dm(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(Dm.prototype,{length:{get:function(){return this._length}}});Dm.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!l(n)){n=new jl({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};Dm.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};Dm.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};Dm.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};Dm.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};Dm.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};Dm.prototype.isDestroyed=function(){return!1};Dm.prototype.destroy=function(){return this.removeAll(),ue(this)};var aN=Dm;function jE(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new Et}jE.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};jE.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};jE.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};jE.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};jE.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):ct.FAILED};var tT=jE;var j7={},Jz=new h,Jde=new h,ehe=new Oe,the=new $;function qE(e,t,n,i,o,r,s,a,c,u){let f=e+t;h.multiplyByScalar(i,Math.cos(f),Jz),h.multiplyByScalar(n,Math.sin(f),Jde),h.add(Jz,Jde,Jz);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let m=r/Math.sqrt(s*d+o*p)/a;return Oe.fromAxisAngle(Jz,m,ehe),$.fromQuaternion(ehe,the),$.multiplyByVector(the,c,u),h.normalize(u,u),h.multiplyByScalar(u,a,u),u}var nhe=new h,ihe=new h,W7=new h,pQe=new h;j7.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,u=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,nhe);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,ihe),x=i.geodeticSurfaceNormal(g,pQe),b=h.multiplyByScalar(x,o,W7);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+u]=m.x,a[d+u]=m.y,a[p+u]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var _Qe=new h,gQe=new h,yQe=new h;j7.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,u=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,_Qe),g=h.cross(h.UNIT_Z,s,gQe);g=h.normalize(g,g);let m=h.cross(p,g,yQe),x=1+Math.ceil(P.PI_OVER_TWO/a),b=P.PI_OVER_TWO/(x-1),T=P.PI_OVER_TWO-x*b;T<0&&(x-=Math.ceil(Math.abs(T)/b));let C=2*(x*(x+2)),A=t?new Array(C*3):void 0,E=0,v=nhe,D=ihe,O=x*4*3,R=O-1,M=0,N=n?new Array(O):void 0,_,S,w,I,L;for(T=P.PI_OVER_TWO,v=qE(T,r,m,g,c,f,u,d,p,v),t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z),n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x),T=P.PI_OVER_TWO-b,_=1;_<x+1;++_){if(v=qE(T,r,m,g,c,f,u,d,p,v),D=qE(Math.PI-T,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*_+2,S=1;S<w-1;++S)I=S/(w-1),L=h.lerp(v,D,I,W7),A[E++]=L.x,A[E++]=L.y,A[E++]=L.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,N[M++]=D.x,N[M++]=D.y,N[M++]=D.z),T=P.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=P.PI_OVER_TWO-(_-1)*b,v=qE(-T,r,m,g,c,f,u,d,p,v),D=qE(T+Math.PI,r,m,g,c,f,u,d,p,D),t){for(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,w=2*(_-1)+2,S=1;S<w-1;++S)I=S/(w-1),L=h.lerp(v,D,I,W7),A[E++]=L.x,A[E++]=L.y,A[E++]=L.z;A[E++]=D.x,A[E++]=D.y,A[E++]=D.z}n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,N[M++]=D.x,N[M++]=D.y,N[M++]=D.z)}T=P.PI_OVER_TWO,v=qE(-T,r,m,g,c,f,u,d,p,v);let B={};return t&&(A[E++]=v.x,A[E++]=v.y,A[E++]=v.z,B.positions=A,B.numPts=x),n&&(N[R--]=v.z,N[R--]=v.y,N[R--]=v.x,B.outerPositions=N),B};var ql=j7;var YE=new h,q7=new h,Y7=new h,ohe=new h,Ps=new z,rhe=new $,xQe=new $,X7=new Oe,she=new h,ahe=new h,che=new h,n4=new fe,lhe=new h,uhe=new z,fhe=new z;function dhe(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,u=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(u*2):void 0,p=i.normal?new Float32Array(u*3):void 0,g=i.tangent?new Float32Array(u*3):void 0,m=i.bitangent?new Float32Array(u*3):void 0,x=f?new Float32Array(u*3):void 0,b=0,T=she,C=ahe,A=che,E=new vi(a),v=E.project(a.cartesianToCartographic(o,n4),lhe),D=a.scaleToGeodeticSurface(o,YE);a.geodeticSurfaceNormal(D,D);let O=rhe,R=xQe;if(c!==0){let L=Oe.fromAxisAngle(D,c,X7);O=$.fromQuaternion(L,O),L=Oe.fromAxisAngle(D,-c,X7),R=$.fromQuaternion(L,R)}else O=$.clone($.IDENTITY,O),R=$.clone($.IDENTITY,R);let M=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,uhe),N=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,fhe),_=e.length,S=n?_:0,w=S/3*2;for(let L=0;L<_;L+=3){let B=L+1,U=L+2,V=h.fromArray(e,L,YE);if(i.st){let G=$.multiplyByVector(O,V,q7),k=E.project(a.cartesianToCartographic(G,n4),Y7);h.subtract(k,v,k),Ps.x=(k.x+r)/(2*r),Ps.y=(k.y+s)/(2*s),M.x=Math.min(Ps.x,M.x),M.y=Math.min(Ps.y,M.y),N.x=Math.max(Ps.x,N.x),N.y=Math.max(Ps.y,N.y),n&&(d[b+w]=Ps.x,d[b+1+w]=Ps.y),d[b++]=Ps.x,d[b++]=Ps.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(V,T),f&&(x[L+S]=-T.x,x[B+S]=-T.y,x[U+S]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(C=h.normalize(h.cross(h.UNIT_Z,T,C),C),$.multiplyByVector(R,C,C)),i.normal&&(p[L]=T.x,p[B]=T.y,p[U]=T.z,n&&(p[L+S]=-T.x,p[B+S]=-T.y,p[U+S]=-T.z)),i.tangent&&(g[L]=C.x,g[B]=C.y,g[U]=C.z,n&&(g[L+S]=-C.x,g[B+S]=-C.y,g[U+S]=-C.z)),i.bitangent&&(A=h.normalize(h.cross(T,C,A),A),m[L]=A.x,m[B]=A.y,m[U]=A.z,n&&(m[L+S]=A.x,m[B+S]=A.y,m[U+S]=A.z))))}if(i.st){_=d.length;for(let L=0;L<_;L+=2)d[L]=(d[L]-M.x)/(N.x-M.x),d[L+1]=(d[L+1]-M.y)/(N.y-M.y)}let I=new fn;if(i.position){let L=ql.raisePositionsToHeight(e,t,n);I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:L})}if(i.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(I.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),n&&l(t.offsetAttribute)){let L=new Uint8Array(u);if(t.offsetAttribute===an.TOP)L=L.fill(1,0,u/2);else{let B=t.offsetAttribute===an.NONE?0:1;L=L.fill(B)}I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:L})}return I}function hhe(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var nT=new h;function bQe(e){let t=e.center;nT=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,nT),e.height,nT),nT=h.add(t,nT,nT);let n=new se(nT,e.semiMajorAxis),i=ql.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=dhe(o,e,!1),a=hhe(r);return a=Ne.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function TQe(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,u=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,m=n.tangent?new Float32Array(f*3):void 0,x=n.bitangent?new Float32Array(f*3):void 0,b=t.shadowVolume,T=b?new Float32Array(f*3):void 0,C=0,A=she,E=ahe,v=che,D=new vi(s),O=D.project(s.cartesianToCartographic(i,n4),lhe),R=s.scaleToGeodeticSurface(i,YE);s.geodeticSurfaceNormal(R,R);let M=Oe.fromAxisAngle(R,u,X7),N=$.fromQuaternion(M,rhe),_=z.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,uhe),S=z.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,fhe),w=e.length,I=w/3*2;for(let B=0;B<w;B+=3){let U=B+1,V=B+2,G=h.fromArray(e,B,YE),k;if(n.st){let q=$.multiplyByVector(N,G,q7),J=D.project(s.cartesianToCartographic(q,n4),Y7);h.subtract(J,O,J),Ps.x=(J.x+o)/(2*o),Ps.y=(J.y+r)/(2*r),_.x=Math.min(Ps.x,_.x),_.y=Math.min(Ps.y,_.y),S.x=Math.max(Ps.x,S.x),S.y=Math.max(Ps.y,S.y),p[C+I]=Ps.x,p[C+1+I]=Ps.y,p[C++]=Ps.x,p[C++]=Ps.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,q7),A=s.geodeticSurfaceNormal(G,A),b&&(T[B+w]=-A.x,T[U+w]=-A.y,T[V+w]=-A.z);let W=h.multiplyByScalar(A,a,ohe);if(G=h.add(G,W,G),W=h.multiplyByScalar(A,c,W),k=h.add(k,W,k),n.position&&(d[B+w]=k.x,d[U+w]=k.y,d[V+w]=k.z,d[B]=G.x,d[U]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=h.clone(A,v);let q=h.fromArray(e,(B+3)%w,ohe);h.subtract(q,G,q);let J=h.subtract(k,G,Y7);A=h.normalize(h.cross(J,q,A),A),n.normal&&(g[B]=A.x,g[U]=A.y,g[V]=A.z,g[B+w]=A.x,g[U+w]=A.y,g[V+w]=A.z),n.tangent&&(E=h.normalize(h.cross(v,A,E),E),m[B]=E.x,m[U]=E.y,m[V]=E.z,m[B+w]=E.x,m[B+1+w]=E.y,m[B+2+w]=E.z),n.bitangent&&(x[B]=v.x,x[U]=v.y,x[V]=v.z,x[B+w]=v.x,x[U+w]=v.y,x[V+w]=v.z)}}if(n.st){w=p.length;for(let B=0;B<w;B+=2)p[B]=(p[B]-_.x)/(S.x-_.x),p[B+1]=(p[B+1]-_.y)/(S.y-_.y)}let L=new fn;if(n.position&&(L.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(L.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(L.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(L.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(L.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(L.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),l(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===an.TOP)B=B.fill(1,0,f/2);else{let U=t.offsetAttribute===an.NONE?0:1;B=B.fill(U)}L.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return L}function CQe(e){let t=e.length/3,n=Ne.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var e4=new se,t4=new se;function AQe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,YE),e.height,YE);e4.center=h.add(t,o,e4.center),e4.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),t4.center=h.add(t,o,t4.center),t4.radius=i;let r=ql.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,u=se.union(e4,t4),f=dhe(s,e,!0),d=hhe(a),p=d.length;d.length=p*2;let g=s.length/3;for(let E=0;E<p;E+=3)d[E+p]=d[E+2]+g,d[E+1+p]=d[E+1]+g,d[E+2+p]=d[E]+g;let m=Ne.createTypedArray(g*2/3,d),x=new at({attributes:f,indices:m,primitiveType:Me.TRIANGLES}),b=TQe(c,e);d=CQe(c);let T=Ne.createTypedArray(c.length*2/3,d),C=new at({attributes:b,indices:T,primitiveType:Me.TRIANGLES}),A=Ln.combineInstances([new St({geometry:x}),new St({geometry:C})]);return{boundingSphere:u,attributes:A[0].attributes,indices:A[0].indices}}function mhe(e,t,n,i,o,r,s){let c=ql.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,u=c.length/3,f=new Array(u);for(let p=0;p<u;++p)f[p]=h.fromArray(c,p*3);let d=re.fromCartesianArray(f,r,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function Pm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Ie.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ee.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Ie.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}Pm.packedLength=h.packedLength+ee.packedLength+Ie.packedLength+9;Pm.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var phe=new h,_he=new ee,ghe=new Ie,Im={center:phe,ellipsoid:_he,vertexFormat:ghe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Pm.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,phe);t+=h.packedLength;let o=ee.unpack(e,t,_he);t+=ee.packedLength;let r=Ie.unpack(e,t,ghe);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(Im.height=f,Im.extrudedHeight=p,Im.granularity=d,Im.stRotation=u,Im.rotation=c,Im.semiMajorAxis=s,Im.semiMinorAxis=a,Im.shadowVolume=g,Im.offsetAttribute=m===-1?void 0:m,new Pm(Im))};Pm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ee.default),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return mhe(n,o,r,a,s,i,t)};Pm.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=AQe(o);else if(r=bQe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new at({attributes:r.attributes,indices:r.indices,primitiveType:Me.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};Pm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Pm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};function EQe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=ql.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return at._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(Pm.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=mhe(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=EQe(this)),this._textureCoordinateRotationPoints}}});var rl=Pm;var yhe=new h,iT=new h;function SQe(e){let t=e.center;iT=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,iT),e.height,iT),iT=h.add(t,iT,iT);let n=new se(iT,e.semiMajorAxis),i=ql.computeEllipsePositions(e,!1,!0).outerPositions,o=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:ql.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Ne.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var i4=new se,o4=new se;function vQe(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,yhe),e.height,yhe);i4.center=h.add(t,o,i4.center),i4.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),o4.center=h.add(t,o,o4.center),o4.radius=i;let r=ql.computeEllipsePositions(e,!1,!0).outerPositions,s=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:ql.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=se.union(i4,o4),c=r.length/3;if(l(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===an.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===an.NONE?0:1;m=m.fill(x)}s.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let u=y(e.numberOfVerticalLines,16);u=P.clamp(u,0,c/2);let f=Ne.createTypedArray(c,c*2+u*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(u>0){let m=Math.min(u,c);g=Math.round(c/m);let x=Math.min(g*u,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function XE(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ee.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}XE.packedLength=h.packedLength+ee.packedLength+8;XE.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var xhe=new h,bhe=new ee,q_={center:xhe,ellipsoid:bhe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};XE.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,xhe);t+=h.packedLength;let o=ee.unpack(e,t,bhe);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=u,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(q_.height=c,q_.extrudedHeight=f,q_.granularity=u,q_.rotation=a,q_.semiMajorAxis=r,q_.semiMinorAxis=s,q_.numberOfVerticalLines=d,q_.offsetAttribute=p===-1?void 0:p,new XE(q_))};XE.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=vQe(o);else if(r=SQe(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===an.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new at({attributes:r.attributes,indices:r.indices,primitiveType:Me.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var ku=XE;var The=new H,Che=h.ZERO,Ahe=new h,Ehe=new re;function wQe(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function gh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new wQe(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(gh.prototype=Object.create(Wn.prototype),gh.prototype.constructor=gh);gh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,The)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Che,Ahe))),new St({id:t,geometry:new rl(this._options),attributes:i})};gh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,The),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Che,Ahe))),new St({id:t,geometry:new ku(this._options),attributes:r})};gh.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};gh.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||ii.prototype._isHidden.call(this,e,t)};gh.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!Y.isConstant(t.rotation)||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};gh.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(He.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(He.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(He.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=Y.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),s.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),s.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,He.MINIMUM_VALUE),s.offsetAttribute=Wn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Wn.getGeometryHeight(n,i),o=Wn.getGeometryExtrudedHeight(o,r),o===Wn.CLAMP_TO_GROUND&&(o=li.getMinimumMaximumHeights(rl.computeRectangle(s,Ehe)).minimumTerrainHeight),s.extrudedHeight=o};gh.DynamicGeometryUpdater=KE;function KE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(KE.prototype=Object.create(ni.prototype),KE.prototype.constructor=KE);KE.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||ni.prototype._isHidden.call(this,e,t,n)};KE.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.center=Y.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=Y.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=Y.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(rl.computeRectangle(i,Ehe)).minimumTerrainHeight),i.extrudedHeight=s};var cN=gh;var DQe=new h,IQe=new h,PQe=new h,RQe=new h,OQe=new h,MQe=new h(1,1,1),She=Math.cos,vhe=Math.sin;function Y_(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,MQe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),u=y(e.vertexFormat,Ie.DEFAULT);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Ie.clone(u),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}Y_.packedLength=2*h.packedLength+Ie.packedLength+7;Y_.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var whe=new h,Dhe=new h,Ihe=new Ie,Zy={radii:whe,innerRadii:Dhe,vertexFormat:Ihe,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};Y_.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,whe);t+=h.packedLength;let o=h.unpack(e,t,Dhe);t+=h.packedLength;let r=Ie.unpack(e,t,Ihe);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=u,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(Zy.minimumClock=s,Zy.maximumClock=a,Zy.minimumCone=c,Zy.maximumCone=u,Zy.stackPartitions=f,Zy.slicePartitions=d,Zy.offsetAttribute=p===-1?void 0:p,new Y_(Zy))};Y_.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,u=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),u=Math.round(u*Math.abs(s-r)/P.PI),c<2&&(c=2),u<2&&(u=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<u;f++)g.push(r+f*(s-r)/(u-1));for(g.push(s),d=0;d<c;d++)m.push(i+d*(o-i)/(c-1));m.push(o);let x=g.length,b=m.length,T=0,C=1,A=n.x!==t.x||n.y!==t.y||n.z!==t.z,E=!1,v=!1,D=!1;A&&(C=2,r>0&&(E=!0,T+=c-1),s<Math.PI&&(v=!0,T+=c-1),(o-i)%P.TWO_PI?(D=!0,T+=(u-1)*2+1):T+=1);let O=b*x*C,R=new Float64Array(O*3),M=new Array(O).fill(!1),N=new Array(O).fill(!1),_=c*u*C,S=6*(_+T+1-(c+u)*C),w=Ne.createTypedArray(_,S),I=a.normal?new Float32Array(O*3):void 0,L=a.tangent?new Float32Array(O*3):void 0,B=a.bitangent?new Float32Array(O*3):void 0,U=a.st?new Float32Array(O*2):void 0,V=new Array(x),G=new Array(x);for(f=0;f<x;f++)V[f]=vhe(g[f]),G[f]=She(g[f]);let k=new Array(b),W=new Array(b);for(d=0;d<b;d++)W[d]=She(m[d]),k[d]=vhe(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=t.x*V[f]*W[d],R[p++]=t.y*V[f]*k[d],R[p++]=t.z*G[f];let q=O/2;if(A)for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=n.x*V[f]*W[d],R[p++]=n.y*V[f]*k[d],R[p++]=n.z*G[f],M[q]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(N[q]=!0),q++;p=0;let J,j;for(f=1;f<x-2;f++)for(J=f*b,j=(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=j+d+1,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=J+d;if(A){let tt=x*b;for(f=1;f<x-2;f++)for(J=tt+f*b,j=tt+(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=J+d,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=j+d+1}let K,Q;if(A){if(E)for(Q=x*b,f=1;f<b-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=Q+f+1,w[p++]=f,w[p++]=Q+f+1,w[p++]=Q+f;if(v)for(K=x*b-b,Q=x*b*C-b,f=1;f<b-2;f++)w[p++]=K+f+1,w[p++]=K+f,w[p++]=Q+f,w[p++]=K+f+1,w[p++]=Q+f,w[p++]=Q+f+1}if(D){for(f=1;f<x-2;f++)Q=b*x+b*f,K=b*f,w[p++]=Q,w[p++]=K+b,w[p++]=K,w[p++]=Q,w[p++]=Q+b,w[p++]=K+b;for(f=1;f<x-2;f++)Q=b*x+b*(f+1)-1,K=b*(f+1)-1,w[p++]=K+b,w[p++]=Q,w[p++]=K,w[p++]=K+b,w[p++]=Q+b,w[p++]=Q}let de=new fn;a.position&&(de.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R}));let ye=0,ae=0,_e=0,xe=0,De=O/2,Ae,ke=ee.fromCartesian3(t),ze=ee.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){Ae=M[f]?ze:ke;let tt=h.fromArray(R,f*3,DQe),wt=Ae.geodeticSurfaceNormal(tt,IQe);if(N[f]&&h.negate(wt,wt),a.st){let pt=z.negate(wt,OQe);U[ye++]=Math.atan2(pt.y,pt.x)/P.TWO_PI+.5,U[ye++]=Math.asin(wt.z)/Math.PI+.5}if(a.normal&&(I[ae++]=wt.x,I[ae++]=wt.y,I[ae++]=wt.z),a.tangent||a.bitangent){let pt=PQe,Be=0,Yt;if(M[f]&&(Be=De),!E&&f>=Be&&f<Be+b*2?Yt=h.UNIT_X:Yt=h.UNIT_Z,h.cross(Yt,wt,pt),h.normalize(pt,pt),a.tangent&&(L[_e++]=pt.x,L[_e++]=pt.y,L[_e++]=pt.z),a.bitangent){let Ct=h.cross(wt,pt,RQe);h.normalize(Ct,Ct),B[xe++]=Ct.x,B[xe++]=Ct.y,B[xe++]=Ct.z}}}a.st&&(de.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:U})),a.normal&&(de.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(de.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:L})),a.bitangent&&(de.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(l(e._offsetAttribute)){let tt=R.length,wt=e._offsetAttribute===an.NONE?0:1,pt=new Uint8Array(tt/3).fill(wt);de.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:pt})}return new at({attributes:de,indices:w,primitiveType:Me.TRIANGLES,boundingSphere:se.fromEllipsoid(ke),offsetAttribute:e._offsetAttribute})};var K7;Y_.getUnitEllipsoid=function(){return l(K7)||(K7=Y_.createGeometry(new Y_({radii:new h(1,1,1),vertexFormat:Ie.POSITION_ONLY}))),K7};var Qs=Y_;var LQe=new Ut(H.WHITE),Z7=h.ZERO,$7=new h,NQe=new h,FQe=new h,Q7=new H,BQe=new h(1,1,1);function kQe(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function Vu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new kQe(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(Vu.prototype=Object.create(ii.prototype),Vu.prototype.constructor=Vu);Object.defineProperties(Vu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Vu.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=kn.fromDistanceDisplayCondition(a),u={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Ut){let f;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,Q7)),l(f)||(f=H.WHITE),r=Wt.fromColor(f),u.color=r}return l(this._options.offsetAttribute)&&(u.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Z7,$7))),new St({id:i,geometry:new Qs(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:u})};Vu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Q7),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(r),distanceDisplayCondition:kn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Z7,$7))),new St({id:i,geometry:new Iu(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:a})};Vu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};Vu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||ii.prototype._isHidden.call(this,e,t)};Vu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.radii.isConstant||!Y.isConstant(t.innerRadii)||!Y.isConstant(t.stackPartitions)||!Y.isConstant(t.slicePartitions)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.minimumClock)||!Y.isConstant(t.maximumClock)||!Y.isConstant(t.minimumCone)||!Y.isConstant(t.maximumCone)||!Y.isConstant(t.subdivisions)};Vu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Ut?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(He.MINIMUM_VALUE,i.radii),i.innerRadii=Y.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=Y.getValueOrUndefined(t.minimumClock,He.MINIMUM_VALUE),i.maximumClock=Y.getValueOrUndefined(t.maximumClock,He.MINIMUM_VALUE),i.minimumCone=Y.getValueOrUndefined(t.minimumCone,He.MINIMUM_VALUE),i.maximumCone=Y.getValueOrUndefined(t.maximumCone,He.MINIMUM_VALUE),i.stackPartitions=Y.getValueOrUndefined(t.stackPartitions,He.MINIMUM_VALUE),i.slicePartitions=Y.getValueOrUndefined(t.slicePartitions,He.MINIMUM_VALUE),i.subdivisions=Y.getValueOrUndefined(t.subdivisions,He.MINIMUM_VALUE),i.offsetAttribute=n!==Ye.NONE?an.ALL:void 0};Vu.prototype._onEntityPropertyChanged=Up;Vu.DynamicGeometryUpdater=lN;function lN(e,t,n){ni.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new F,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}l(Object.create)&&(lN.prototype=Object.create(ni.prototype),lN.prototype.constructor=lN);lN.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!Y.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=Y.getValueOrUndefined(n.radii,e,NQe),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=Y.getValueOrDefault(n.fill,e,!0),s=Y.getValueOrDefault(n.outline,e,!1),a=Y.getValueOrClonedDefault(n.outlineColor,e,H.BLACK,Q7),c=Jo.getValue(e,y(n.material,LQe),this._material),u=Y.getValueOrUndefined(n.innerRadii,e,FQe),f=Y.getValueOrUndefined(n.minimumClock,e),d=Y.getValueOrUndefined(n.maximumClock,e),p=Y.getValueOrUndefined(n.minimumCone,e),g=Y.getValueOrUndefined(n.maximumCone,e),m=Y.getValueOrUndefined(n.stackPartitions,e),x=Y.getValueOrUndefined(n.slicePartitions,e),b=Y.getValueOrUndefined(n.subdivisions,e),T=Y.getValueOrDefault(n.outlineWidth,e,1),C=Y.getValueOrDefault(n.heightReference,e,Ye.NONE),A=C!==Ye.NONE?an.ALL:void 0,E=this._scene.mode,v=E===ne.SCENE3D&&C===Ye.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),M=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),N=Y.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,Z7,$7);if(!v||this._lastSceneMode!==E||!l(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||l(u)&&!h.equals(D.innerRadii!==u)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==A){let S=this._primitives;S.removeAndDestroy(this._primitive),S.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=E,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=A,D.radii=h.clone(v?BQe:i,D.radii),l(u)?v?D.innerRadii=h.fromElements(u.x/i.x,u.y/i.y,u.z/i.z,D.innerRadii):D.innerRadii=h.clone(u,D.innerRadii):D.innerRadii=void 0,D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new so({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=S.add(new Dn({geometryInstances:I,appearance:w,asynchronous:!1,shadows:O}));let L=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=S.add(new Dn({geometryInstances:L,appearance:new ln({flat:!0,translucent:L.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(T)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=H.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=M,this._lastOffset=h.clone(N,this._lastOffset)}else if(this._primitive.ready){let S=this._primitive,w=this._outlinePrimitive;S.show=!0,w.show=!0,S.appearance.material=c;let I=this._attributes;l(I)||(I=S.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=gn.toValue(r,I.show),this._lastShow=r);let L=this._outlineAttributes;l(L)||(L=w.getGeometryInstanceAttributes(t),this._outlineAttributes=L),s!==this._lastOutlineShow&&(L.show=gn.toValue(s,L.show),this._lastOutlineShow=s),H.equals(a,this._lastOutlineColor)||(L.color=Wt.toValue(a,L.color),H.clone(a,this._lastOutlineColor)),Lt.equals(M,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=kn.toValue(M,I.distanceDisplayCondition),L.distanceDisplayCondition=kn.toValue(M,L.distanceDisplayCondition),Lt.clone(M,this._lastDistanceDisplayCondition)),h.equals(N,this._lastOffset)||(I.offset=Qi.toValue(N,I.offset),L.offset=Qi.toValue(N,I.offset),h.clone(N,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=F.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var uN=Vu;function ZE(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}ZE.packedLength=Ie.packedLength;ZE.pack=function(e,t,n){return n=y(n,0),Ie.pack(e._vertexFormat,t,n),t};var Phe=new Ie,VQe={vertexFormat:Phe};ZE.unpack=function(e,t,n){t=y(t,0);let i=Ie.unpack(e,t,Phe);return l(n)?(n._vertexFormat=Ie.clone(i,n._vertexFormat),n):new ZE(VQe)};var r4=new h(-.5,-.5,0),s4=new h(.5,.5,0);ZE.createGeometry=function(e){let t=e._vertexFormat,n=new fn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=r4.x,o[1]=r4.y,o[2]=0,o[3]=s4.x,o[4]=r4.y,o[5]=0,o[6]=s4.x,o[7]=s4.y,o[8]=0,o[9]=r4.x,o[10]=s4.y,o[11]=0,n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new at({attributes:n,indices:i,primitiveType:Me.TRIANGLES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var fN=ZE;function $E(){this._workerName="createPlaneOutlineGeometry"}$E.packedLength=0;$E.pack=function(e,t){return t};$E.unpack=function(e,t,n){return l(n)?n:new $E};var $y=new h(-.5,-.5,0),a4=new h(.5,.5,0);$E.createGeometry=function(){let e=new fn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=$y.x,n[1]=$y.y,n[2]=$y.z,n[3]=a4.x,n[4]=$y.y,n[5]=$y.z,n[6]=a4.x,n[7]=a4.y,n[8]=$y.z,n[9]=$y.x,n[10]=a4.y,n[11]=$y.z,e.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new at({attributes:e,indices:t,primitiveType:Me.LINES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var dN=$E;var UQe=new h,Rhe=new H;function zQe(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function ed(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new zQe(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(ed.prototype=Object.create(ii.prototype),ed.prototype.constructor=ed);ed.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let g;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Rhe)),l(g)||(g=H.WHITE),o=Wt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,u=this._options,f=t.computeModelMatrix(e),d=Y.getValueOrDefault(c.plane,e,u.plane),p=Y.getValueOrUndefined(c.dimensions,e,u.dimensions);return u.plane=d,u.dimensions=p,f=J7(d,p,f,f),new St({id:t,geometry:new fN(this._options),modelMatrix:f,attributes:i})};ed.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Rhe),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=Y.getValueOrDefault(r.plane,e,s.plane),u=Y.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=u,a=J7(c,u,a,a),new St({id:t,geometry:new dN,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};ed.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};ed.prototype._getIsClosed=function(e){return!1};ed.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};ed.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(He.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(He.MINIMUM_VALUE,i.dimensions)};ed.DynamicGeometryUpdater=QE;function QE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(QE.prototype=Object.create(ni.prototype),QE.prototype.constructor=QE);QE.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,UQe);return!l(o)||!l(i.plane)||!l(i.dimensions)||ni.prototype._isHidden.call(this,e,t,n)};QE.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=Y.getValueOrDefault(t.plane,n,i.plane),i.dimensions=Y.getValueOrUndefined(t.dimensions,n,i.dimensions)};var HQe=new h,GQe=new h,WQe=new h,jQe=new h,qQe=new $,YQe=new $,XQe=new F;function J7(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,WQe),a=h.clone(h.UNIT_Z,GQe);P.equalsEpsilon(Math.abs(h.dot(a,o)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,HQe);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let u=qQe;$.setColumn(u,0,c,u),$.setColumn(u,1,a,u),$.setColumn(u,2,o,u);let f=h.fromElements(t.x,t.y,1,jQe),d=$.multiplyByScale(u,f,YQe),p=F.fromRotationTranslation(d,s,XQe);return F.multiplyTransformation(n,p,i)}ed.createPrimitiveMatrix=J7;var hN=ed;var KQe=new h,ZQe=new je,$Qe=new z,QQe=new z,JQe=new h,eJe=new h,tJe=new h,mN=new h,nJe=new h,iJe=new h,Ohe=new Oe,oJe=new $,rJe=new $,sJe=new h;function aJe(e,t,n,i,o,r,s,a,c){let u=e.positions,f=si.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ne.createTypedArray(u.length,f.length);d.set(f);let p=oJe;if(i!==0){let _=Oe.fromAxisAngle(s,i,Ohe);if(p=$.fromQuaternion(_,p),t.tangent||t.bitangent){_=Oe.fromAxisAngle(s,-i,Ohe);let S=$.fromQuaternion(_,rJe);a=h.normalize($.multiplyByVector(S,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let g=QQe;t.st&&(g.x=n.x,g.y=n.y);let m=u.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,C=t.tangent?new Float32Array(x):void 0,A=t.bitangent?new Float32Array(x):void 0,E=t.st?new Float32Array(m*2):void 0,v=0,D=0,O=0,R=0,M=0;for(let _=0;_<m;_++){let S=u[_];if(b[v++]=S.x,b[v++]=S.y,b[v++]=S.z,t.st)if(l(o)&&o.positions.length===m)E[M++]=o.positions[_].x,E[M++]=o.positions[_].y;else{let w=$.multiplyByVector(p,S,KQe),I=r(w,$Qe);z.subtract(I,g,I);let L=P.clamp(I.x/n.width,0,1),B=P.clamp(I.y/n.height,0,1);E[M++]=L,E[M++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(C[R++]=a.x,C[R++]=a.y,C[R++]=a.z),t.bitangent&&(A[O++]=c.x,A[O++]=c.y,A[O++]=c.z)}let N=new fn;return t.position&&(N.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(N.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(N.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(N.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.st&&(N.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:E})),new at({attributes:N,indices:d,primitiveType:Me.TRIANGLES})}function oT(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Ie.DEFAULT);this._vertexFormat=Ie.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=zn.computeHierarchyPackedLength(t,h)+Ie.packedLength+ee.packedLength+(l(n)?zn.computeHierarchyPackedLength(n,z):1)+2}oT.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new oT(t)};oT.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=zn.packPolygonHierarchy(e._textureCoordinates,t,n,z):t[n++]=-1,t[n++]=e.packedLength,t};var cJe=ee.clone(ee.UNIT_SPHERE),lJe=new Ie,uJe={polygonHierarchy:{}};oT.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,cJe);t+=ee.packedLength;let r=Ie.unpack(e,t,lJe);t+=Ie.packedLength;let s=e[t++],a=e[t]===-1?void 0:zn.unpackPolygonHierarchy(e,t,z);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new oT(uJe)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};oT.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=To(s,h.equalsEpsilon,!0),s.length<3)return;let a=JQe,c=eJe,u=tJe,f=nJe,d=iJe;if(!S_.computeProjectTo2DArguments(s,mN,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(mN,h.ZERO,P.EPSILON6)){let M=e._ellipsoid.geodeticSurfaceNormal(mN,sJe);h.dot(a,M)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=S_.createProjectPointsTo2DFunction(mN,f,d),m=S_.createProjectPointTo2DFunction(mN,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(u=h.clone(d,u));let x=zn.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,C=function(M){return M},A=r?zn.polygonsFromHierarchy(o,!0,C,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let E=se.fromPoints(s),v=zn.computeBoundingRectangle(a,m,s,i,ZQe),D=[];for(let M=0;M<T.length;M++){let N=new St({geometry:aJe(T[M],t,v,i,r?A[M]:void 0,m,a,c,u)});D.push(N)}let O=Ln.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Ne.createTypedArray(O.attributes.position.values.length/3,O.indices);let R=O.attributes;return t.position||delete R.position,new at({attributes:R,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:E})};var pN=oT;var Mhe=[],c4=[];function fJe(e,t,n,i,o){let s=$r.fromPoints(t,e).projectPointsOntoPlane(t,Mhe);si.computeWindingOrder2D(s)===hs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),u=0;u<f;u++){let m=t[u],x=t[(u+1)%f];c[d++]=m.x,c[d++]=m.y,c[d++]=m.z,c[d++]=x.x,c[d++]=x.y,c[d++]=x.z}else{let m=0;if(o===Jt.GEODESIC)for(u=0;u<f;u++)m+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Jt.RHUMB)for(u=0;u<f;u++)m+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(m*3),u=0;u<f;u++){let x;o===Jt.GEODESIC?x=zn.subdivideLine(t[u],t[(u+1)%f],n,c4):o===Jt.RHUMB&&(x=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,c4));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=Ne.createTypedArray(f,p);for(d=0,u=0;u<f-1;u++)g[d++]=u,g[d++]=u+1;return g[d++]=f-1,g[d++]=0,new St({geometry:new at({attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Me.LINES})})}function dJe(e,t,n,i,o){let s=$r.fromPoints(t,e).projectPointsOntoPlane(t,Mhe);si.computeWindingOrder2D(s)===hs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),u=0;u<f;++u){d[u]=p/3;let b=t[u],T=t[(u+1)%f];c[p++]=b.x,c[p++]=b.y,c[p++]=b.z,c[p++]=T.x,c[p++]=T.y,c[p++]=T.z}else{let b=0;if(o===Jt.GEODESIC)for(u=0;u<f;u++)b+=zn.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===Jt.RHUMB)for(u=0;u<f;u++)b+=zn.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(b*3*2),u=0;u<f;++u){d[u]=p/3;let T;o===Jt.GEODESIC?T=zn.subdivideLine(t[u],t[(u+1)%f],n,c4):o===Jt.RHUMB&&(T=zn.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,c4));let C=T.length;for(let A=0;A<C;++A)c[p++]=T[A]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=Ne.createTypedArray(f+g,m);for(p=0,u=0;u<f;++u)x[p++]=u,x[p++]=(u+1)%f,x[p++]=u+f,x[p++]=(u+1)%f+f;for(u=0;u<g;u++){let b=d[u];x[p++]=b,x[p++]=b+f}return new St({geometry:new at({attributes:new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Me.LINES})})}function rT(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,ee.default),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&l(e.extrudedHeight),s=y(e.arcType,Jt.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let u=Math.max(a,c);c=Math.min(a,c),a=u}this._ellipsoid=ee.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=zn.computeHierarchyPackedLength(t,h)+ee.packedLength+8}rT.pack=function(e,t,n){return n=y(n,0),n=zn.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var hJe=ee.clone(ee.UNIT_SPHERE),mJe={polygonHierarchy:{}};rT.unpack=function(e,t,n){t=y(t,0);let i=zn.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,hJe);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,u=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return l(n)||(n=new rT(mJe)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=u,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};rT.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new rT(t)};rT.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=zn.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],u=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=dJe(t,s[m],u,o,r),a.geometry=zn.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,C=new Uint8Array(T);e._offsetAttribute===an.TOP?C=C.fill(1,0,T/2):(g=e._offsetAttribute===an.NONE?0:1,C=C.fill(g)),a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}else for(m=0;m<s.length;m++){if(a=fJe(t,s[m],u,o,r),a.geometry.attributes.position.values=si.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===an.NONE?0:1;let C=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}c.push(a)}let x=Ln.combineInstances(c)[0],b=se.fromVertices(x.attributes.position.values);return new at({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var _N=rT;var Lhe="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Nhe="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Fhe=new H,Bhe=h.ZERO,khe=new h,Vhe=new re,pJe=[],_Je=new z;function gJe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function Uu(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new gJe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(Uu.prototype=Object.create(Wn.prototype),Uu.prototype.constructor=Uu);Uu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Fhe)),l(s)||(s=H.WHITE),o.color=Wt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bhe,khe)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new pN(i):r=new e_(i),new St({id:t,geometry:r,attributes:o})};Uu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Fhe),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(o),distanceDisplayCondition:kn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Bhe,khe)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new Yf(i):a=new _N(i),new St({id:t,geometry:a,attributes:s})};Uu.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.ellipsoid,r=$r.fromPoints(i,o),s=r.projectPointsOntoPlane(i,pJe),a=s.length,c=0,u=a-1,f=new z;for(let p=0;p<a;u=p++){let g=s[p],m=s[u],x=g.x*m.y-m.x*g.y,b=z.add(g,m,_Je);b=z.multiplyByScalar(b,x,b),f=z.add(f,b,f),c+=x}let d=1/(c*3);return f=z.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};Uu.prototype._isHidden=function(e,t){return!l(t.hierarchy)||ii.prototype._isHidden.call(this,e,t)};Uu.prototype._isOnTerrain=function(e,t){let n=Wn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(He.MINIMUM_VALUE):!0);return n&&!o};Uu.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.textureCoordinates)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.perPositionHeight)||!Y.isConstant(t.closeTop)||!Y.isConstant(t.closeBottom)||!Y.isConstant(t.zIndex)||!Y.isConstant(t.arcType)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};Uu.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=this._options;i.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(He.MINIMUM_VALUE),r=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),s=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),c=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE),u=Y.getValueOrDefault(t.perPositionHeight,He.MINIMUM_VALUE,!1);r=Wn.getGeometryHeight(r,s);let f;if(u?(l(r)&&(r=void 0,xt(Lhe)),s!==Ye.NONE&&u&&(r=void 0,xt(Nhe))):(l(a)&&!l(r)&&(r=0),f=Wn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),i.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),i.perPositionHeight=u,i.closeTop=Y.getValueOrDefault(t.closeTop,He.MINIMUM_VALUE,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,He.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=Y.getValueOrDefault(t.arcType,He.MINIMUM_VALUE,Jt.GEODESIC),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,He.MINIMUM_VALUE),a=Wn.getGeometryExtrudedHeight(a,c),a===Wn.CLAMP_TO_GROUND){let d=e_.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,Vhe);a=li.getMinimumMaximumHeights(d).minimumTerrainHeight}i.extrudedHeight=a};Uu.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};Uu.DynamicGeometryUpdater=JE;function JE(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(JE.prototype=Object.create(ni.prototype),JE.prototype.constructor=JE);JE.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||ni.prototype._isHidden.call(this,e,t,n)};JE.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=Y.getValueOrUndefined(t.hierarchy,n);let o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,n),c=Y.getValueOrUndefined(t.perPositionHeight,n);o=Wn.getGeometryHeight(o,s);let u;if(c?(l(o)&&(o=void 0,xt(Lhe)),r!==Ye.NONE&&c&&(o=void 0,xt(Nhe))):(l(a)&&!l(o)&&(o=0),u=Wn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=Y.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=Y.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=u,i.height=o,i.arcType=Y.getValueOrDefault(t.arcType,n,Jt.GEODESIC),a=Wn.getGeometryExtrudedHeight(a,s),a===Wn.CLAMP_TO_GROUND){let f=e_.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,Vhe);a=li.getMinimumMaximumHeights(f).minimumTerrainHeight}i.extrudedHeight=a};var gN=Uu;function yJe(e,t,n,i){let o=new fn;i.position&&(o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=si.triangulate(t),u=(a-1)*r*6+c.length*2,f=Ne.createTypedArray(s,u),d,p,g,m,x,b,T=r*2,C=0;for(d=0;d<a-1;d++){for(p=0;p<r-1;p++)g=p*2+d*r*2,b=g+T,m=g+1,x=m+T,f[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[C++]=m,f[C++]=g,f[C++]=x,f[C++]=x,f[C++]=g,f[C++]=b}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),O=1/n.height,R=n.height/2,M,N,_=0;for(d=0;d<a;d++){for(M=d*D,N=O*(t[0].y+R),v[_++]=M,v[_++]=N,p=1;p<r;p++)N=O*(t[p].y+R),v[_++]=M,v[_++]=N,v[_++]=M,v[_++]=N;N=O*(t[0].y+R),v[_++]=M,v[_++]=N}for(p=0;p<r;p++)M=0,N=O*(t[p].y+R),v[_++]=M,v[_++]=N;for(p=0;p<r;p++)M=(a-1)*D,N=O*(t[p].y+R),v[_++]=M,v[_++]=N;o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let A=s-r*2;for(d=0;d<c.length;d+=3){let v=c[d]+A,D=c[d+1]+A,O=c[d+2]+A;f[C++]=v,f[C++]=D,f[C++]=O,f[C++]=O+r,f[C++]=D+r,f[C++]=v+r}let E=new at({attributes:o,indices:f,boundingSphere:se.fromVertices(e),primitiveType:Me.TRIANGLES});if(i.normal&&(E=Ln.computeNormal(E)),i.tangent||i.bitangent){try{E=Ln.computeTangentAndBitangent(E)}catch{xt("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(E.attributes.tangent=void 0),i.bitangent||(E.attributes.bitangent=void 0),i.st||(E.attributes.st=void 0)}return E}function xN(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ee.packedLength+Ie.packedLength+2}xN.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Uhe=ee.clone(ee.UNIT_SPHERE),zhe=new Ie,yN={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Uhe,vertexFormat:zhe,cornerType:void 0,granularity:void 0};xN.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t,Uhe);t+=ee.packedLength;let c=Ie.unpack(e,t,zhe);t+=Ie.packedLength;let u=e[t++],f=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._cornerType=u,n._granularity=f,n):(yN.polylinePositions=r,yN.shapePositions=s,yN.cornerType=u,yN.granularity=f,new xN(yN))};var xJe=new je;xN.createGeometry=function(e){let t=e._positions,n=To(t,h.equalsEpsilon),i=e._shape;if(i=lh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===hs.CLOCKWISE&&i.reverse();let o=je.fromPoints(i,xJe),r=lh.computePositions(n,i,o,e,!0);return yJe(r,i,o,e._vertexFormat)};var bN=xN;function bJe(e,t){let n=new fn;n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=Ne.createTypedArray(o,2*i*(s+1)),c,u,f=0;c=0;let d=c*i;for(u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,m=g+i;for(u=0;u<i;u++)a[f++]=u+g,a[f++]=u+m}return new at({attributes:n,indices:Ne.createTypedArray(o,a),boundingSphere:se.fromVertices(e),primitiveType:Me.LINES})}function CN(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Pi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*z.packedLength,this.packedLength=i+ee.packedLength+2}CN.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Hhe=ee.clone(ee.UNIT_SPHERE),TN={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Hhe,height:void 0,cornerType:void 0,granularity:void 0};CN.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t,Hhe);t+=ee.packedLength;let c=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=u,n):(TN.polylinePositions=r,TN.shapePositions=s,TN.cornerType=c,TN.granularity=u,new CN(TN))};var TJe=new je;CN.createGeometry=function(e){let t=e._positions,n=To(t,h.equalsEpsilon),i=e._shape;if(i=lh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;si.computeWindingOrder2D(i)===hs.CLOCKWISE&&i.reverse();let o=je.fromPoints(i,TJe),r=lh.computePositions(n,i,o,e,!1);return bJe(r,i)};var AN=CN;var Ghe=new H;function CJe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function Rm(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new CJe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(Rm.prototype=Object.create(ii.prototype),Rm.prototype.constructor=Rm);Rm.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Ghe)),l(c)||(c=H.WHITE),o=Wt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new St({id:t,geometry:new bN(this._options),attributes:i})};Rm.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,Ghe),o=this._distanceDisplayConditionProperty.getValue(e);return new St({id:t,geometry:new AN(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};Rm.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||ii.prototype._isHidden.call(this,e,t)};Rm.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!Y.isConstant(t.granularity)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)};Rm.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Ut;o.vertexFormat=r?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(He.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(He.MINIMUM_VALUE,o.shape),o.granularity=l(n)?n.getValue(He.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(He.MINIMUM_VALUE):void 0};Rm.DynamicGeometryUpdater=eS;function eS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(eS.prototype=Object.create(ni.prototype),eS.prototype.constructor=eS);eS.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||ni.prototype._isHidden.call(this,e,t,n)};eS.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=Y.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=Y.getValueOrUndefined(t.shape,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n)};var EN=Rm;var eq=new h,qhe=new h,Yhe=new h,Xhe=new h,Khe=new re,AJe=new z,EJe=new se,SJe=new se;function Zhe(e,t){let n=new at({attributes:new fn,primitiveType:Me.TRIANGLES});return n.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function vJe(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,u=Xhe,f=Yhe,d=qhe;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,eq),m=c+1,x=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),$.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,u),u)),t.normal&&(r[c]=d.x,r[m]=d.y,r[x]=d.z),t.tangent&&(s[c]=f.x,s[m]=f.y,s[x]=f.z),t.bitangent&&(a[c]=u.x,a[m]=u.y,a[x]=u.z),c+=3}return Zhe(t,{positions:e,normals:r,tangents:s,bitangents:a})}var tq=new h,$he=new h;function wJe(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,u=0,f=!0,d=Xhe,p=Yhe,g=qhe;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,eq),b=h.fromArray(e,(m+6)%i,tq);if(f){let T=h.fromArray(e,(m+3)%i,$he);h.subtract(b,x,b),h.subtract(T,x,T),g=h.normalize(h.cross(T,b,g),g),f=!1}h.equalsEpsilon(b,x,P.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(x,d),t.tangent&&(p=h.normalize(h.cross(d,g,p),p))),t.normal&&(o[a++]=g.x,o[a++]=g.y,o[a++]=g.z,o[a++]=g.x,o[a++]=g.y,o[a++]=g.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[u++]=d.x,s[u++]=d.y,s[u++]=d.z,s[u++]=d.x,s[u++]=d.y,s[u++]=d.z)}return Zhe(t,{positions:e,normals:o,tangents:r,bitangents:s})}function Qhe(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,u=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(u-=1,f-=1,d+=1),d+=r*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,m=0,x=0,b=eq,T=AJe,C=Number.MAX_VALUE,A=Number.MAX_VALUE,E=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let S=c;S<u;++S)for(let w=0;w<r;++w)Ds.computePosition(t,i,n.st,S,w,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y));if(s&&(Ds.computePosition(t,i,n.st,0,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,C=T.x,A=T.y,E=T.x,v=T.y)),a&&(Ds.computePosition(t,i,n.st,o-1,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m]=b.z,n.st&&(g[x++]=T.x,g[x]=T.y,C=Math.min(C,T.x),A=Math.min(A,T.y),E=Math.max(E,T.x),v=Math.max(v,T.y))),n.st&&(C<0||A<0||E>1||v>1))for(let S=0;S<g.length;S+=2)g[S]=(g[S]-C)/(E-C),g[S+1]=(g[S+1]-A)/(v-A);let D=vJe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let R=Ne.createTypedArray(d,O),M=0,N=0,_;for(_=0;_<f-1;++_){for(let S=0;S<r-1;++S){let w=M,I=w+r,L=I+1,B=w+1;R[N++]=w,R[N++]=I,R[N++]=B,R[N++]=B,R[N++]=I,R[N++]=L,++M}++M}if(s||a){let S=d-1,w=d-1;s&&a&&(S=d-2);let I,L;if(M=0,s)for(_=0;_<r-1;_++)I=M,L=I+1,R[N++]=S,R[N++]=I,R[N++]=L,++M;if(a)for(M=(f-1)*r,_=0;_<r-1;_++)I=M,L=I+1,R[N++]=I,R[N++]=w,R[N++]=L,++M}return D.indices=R,n.st&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function tS(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function nS(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var nq=new Ie;function DJe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,u=t.width,f;if(n){let Be=Ie.clone(o,nq);Be.normal=!0,e._vertexFormat=Be}let d=Qhe(e,t);n&&(e._vertexFormat=o);let p=si.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,m=g*2,x=new Float64Array(m);x.set(p);let b=si.scaleToGeodeticHeight(d.attributes.position.values,r,a);x.set(b,g),d.attributes.position.values=x;let T=o.normal?new Float32Array(m):void 0,C=o.tangent?new Float32Array(m):void 0,A=o.bitangent?new Float32Array(m):void 0,E=o.st?new Float32Array(m/3*2):void 0,v,D;if(o.normal){for(D=d.attributes.normal.values,T.set(D),f=0;f<g;f++)D[f]=-D[f];T.set(D,g),d.attributes.normal.values=T}if(n){D=d.attributes.normal.values,o.normal||(d.attributes.normal=void 0);let Be=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];Be.set(D,g),d.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:Be})}let O,R=l(i);if(R){let Be=g/3*2,Yt=new Uint8Array(Be);i===an.TOP?Yt=Yt.fill(1,0,Be/2):(O=i===an.NONE?0:1,Yt=Yt.fill(O)),d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Yt})}if(o.tangent){let Be=d.attributes.tangent.values;for(C.set(Be),f=0;f<g;f++)Be[f]=-Be[f];C.set(Be,g),d.attributes.tangent.values=C}if(o.bitangent){let Be=d.attributes.bitangent.values;A.set(Be),A.set(Be,g),d.attributes.bitangent.values=A}o.st&&(v=d.attributes.st.values,E.set(v),E.set(v,g/3*2),d.attributes.st.values=E);let M=d.indices,N=M.length,_=g/3,S=Ne.createTypedArray(m/3,N*2);for(S.set(M),f=0;f<N;f+=3)S[f+N]=M[f+2]+_,S[f+1+N]=M[f+1]+_,S[f+2+N]=M[f]+_;d.indices=S;let w=t.northCap,I=t.southCap,L=c,B=2,U=0,V=4,G=4;w&&(B-=1,L-=1,U+=1,V-=2,G-=1),I&&(B-=1,L-=1,U+=1,V-=2,G-=1),U+=B*u+2*L-V;let k=(U+G)*2,W=new Float64Array(k*3),q=n?new Float32Array(k*3):void 0,J=R?new Uint8Array(k):void 0,j=o.st?new Float32Array(k*2):void 0,K=i===an.TOP;R&&!K&&(O=i===an.ALL?1:0,J=J.fill(O));let Q=0,de=0,ye=0,ae=0,_e=u*L,xe;for(f=0;f<_e;f+=u)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);if(I){let Be=w?_e+1:_e;for(xe=Be*3,f=0;f<2;f++)W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,Be*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1)}else for(f=_e-u;f<_e;f++)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);for(f=_e-1;f>0;f-=u)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);if(w){let Be=_e;for(xe=Be*3,f=0;f<2;f++)W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,Be*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1)}else for(f=u-1;f>=0;f--)xe=f*3,W=tS(W,Q,xe,p,b),Q+=6,o.st&&(j=nS(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),K&&(J[ae++]=1,ae+=1);let De=wJe(W,o,a);o.st&&(De.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:j})),n&&(De.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:q})),R&&(De.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:J}));let Ae=Ne.createTypedArray(k,U*6),ke,ze,tt,wt;g=W.length/3;let pt=0;for(f=0;f<g-1;f+=2){ke=f,wt=(ke+2)%g;let Be=h.fromArray(W,ke*3,tq),Yt=h.fromArray(W,wt*3,$he);h.equalsEpsilon(Be,Yt,P.EPSILON10)||(ze=(ke+1)%g,tt=(ze+2)%g,Ae[pt++]=ke,Ae[pt++]=ze,Ae[pt++]=wt,Ae[pt++]=wt,Ae[pt++]=ze,Ae[pt++]=tt)}return De.indices=Ae,De=Ln.combineInstances([new St({geometry:d}),new St({geometry:De})]),De[0]}var IJe=[new h,new h,new h,new h],Jhe=new fe,PJe=new fe;function iq(e,t,n,i,o){if(n===0)return re.clone(e,o);let r=Ds.computeOptions(e,t,n,0,Khe,Jhe),s=r.height,a=r.width,c=IJe;return Ds.computePosition(r,i,!1,0,0,c[0]),Ds.computePosition(r,i,!1,0,a-1,c[1]),Ds.computePosition(r,i,!1,s-1,0,c[2]),Ds.computePosition(r,i,!1,s-1,a-1,c[3]),re.fromCartesianArray(c,i,o)}function Om(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=re.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}Om.packedLength=re.packedLength+ee.packedLength+Ie.packedLength+7;Om.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var eme=new re,tme=ee.clone(ee.UNIT_SPHERE),Qy={rectangle:eme,ellipsoid:tme,vertexFormat:nq,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};Om.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,eme);t+=re.packedLength;let o=ee.unpack(e,t,tme);t+=ee.packedLength;let r=Ie.unpack(e,t,nq);t+=Ie.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Ie.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=u,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(Qy.granularity=s,Qy.height=a,Qy.rotation=c,Qy.stRotation=u,Qy.extrudedHeight=f,Qy.shadowVolume=d,Qy.offsetAttribute=p===-1?void 0:p,new Om(Qy))};Om.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,ee.default),r=y(e.rotation,0);return iq(n,i,r,o,t)};var RJe=new $,Whe=new Oe,OJe=new fe;Om.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=Ds.computeOptions(t,e._granularity,i,o,Khe,Jhe,PJe),a=RJe;if(o!==0||i!==0){let g=re.center(t,OJe),m=n.geodeticSurfaceNormalCartographic(g,tq);Oe.fromAxisAngle(m,-o,Whe),$.fromQuaternion(Whe,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,u=e._extrudedHeight,f=!P.equalsEpsilon(c,u,0,P.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=DJe(e,s);let g=se.fromRectangle3D(t,n,c,SJe),m=se.fromRectangle3D(t,n,u,EJe);p=se.union(g,m)}else{if(d=Qhe(e,s),d.attributes.position.values=si.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===an.NONE?0:1,x=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}p=se.fromRectangle3D(t,n,c)}return r.position||delete d.attributes.position,new at({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};Om.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new Om({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};var jhe=new re,MJe=[new z,new z,new z],LJe=new Bi,NJe=new fe;function FJe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=re.clone(e._rectangle,jhe),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=iq(t,n,o,i,jhe),s=MJe;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=Bi.fromRotation(e._stRotation,LJe),u=re.center(a,NJe);for(let m=0;m<3;++m){let x=s[m];x.x-=u.longitude,x.y-=u.latitude,Bi.multiplyByVector(c,x,x),x.x+=u.longitude,x.y+=u.latitude,x.x=(x.x-a.west)/a.width,x.y=(x.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return z.pack(f,g),z.pack(d,g,2),z.pack(p,g,4),g}Object.defineProperties(Om.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=iq(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=FJe(this)),this._textureCoordinateRotationPoints}}});var sT=Om;var nme=new H,ime=h.ZERO,ome=new h,rme=new re,BJe=new re,kJe=new fe;function VJe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function yh(e,t){Wn.call(this,{entity:e,scene:t,geometryOptions:new VJe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(yh.prototype=Object.create(Wn.prototype),yh.prototype.constructor=yh);yh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:kn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Ut){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,nme)),l(o)||(o=H.WHITE),i.color=Wt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,ime,ome))),new St({id:t,geometry:new sT(this._options),attributes:i})};yh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,nme),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Qi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,ime,ome))),new St({id:t,geometry:new Mb(this._options),attributes:r})};yh.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.rectangle.coordinates,e,BJe);if(!l(n))return;let i=re.center(n,kJe);return fe.toCartesian(i,ee.default,t)};yh.prototype._isHidden=function(e,t){return!l(t.coordinates)||ii.prototype._isHidden.call(this,e,t)};yh.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.rotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Ut)};yh.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Ut,i=Y.getValueOrUndefined(t.height,He.MINIMUM_VALUE),o=Y.getValueOrDefault(t.heightReference,He.MINIMUM_VALUE,Ye.NONE),r=Y.getValueOrUndefined(t.extrudedHeight,He.MINIMUM_VALUE),s=Y.getValueOrDefault(t.extrudedHeightReference,He.MINIMUM_VALUE,Ye.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(He.MINIMUM_VALUE,a.rectangle),a.granularity=Y.getValueOrUndefined(t.granularity,He.MINIMUM_VALUE),a.stRotation=Y.getValueOrUndefined(t.stRotation,He.MINIMUM_VALUE),a.rotation=Y.getValueOrUndefined(t.rotation,He.MINIMUM_VALUE),a.offsetAttribute=Wn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Wn.getGeometryHeight(i,o),r=Wn.getGeometryExtrudedHeight(r,s),r===Wn.CLAMP_TO_GROUND&&(r=li.getMinimumMaximumHeights(sT.computeRectangle(a,rme)).minimumTerrainHeight),a.extrudedHeight=r};yh.DynamicGeometryUpdater=iS;function iS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(iS.prototype=Object.create(ni.prototype),iS.prototype.constructor=iS);iS.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||ni.prototype._isHidden.call(this,e,t,n)};iS.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ye.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ye.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=Y.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Wn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Wn.getGeometryHeight(o,r),s=Wn.getGeometryExtrudedHeight(s,a),s===Wn.CLAMP_TO_GROUND&&(s=li.getMinimumMaximumHeights(sT.computeRectangle(i,rme)).minimumTerrainHeight),i.extrudedHeight=s};var SN=yh;var sme={};function UJe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var zJe=new fe,HJe=new fe;function GJe(e,t,n,i){t=To(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),u=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,zJe);s&&(d.height=n[0]),c[0]=d.height,r?u[0]=i[0]:u[0]=0;let p=c[0],g=u[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],C=e.cartesianToCartographic(T,HJe);s&&(C.height=n[b]),m=m&&C.height===0,UJe(d,C)?d.height<C.height&&(c[x-1]=C.height):(a[x]=T,c[x]=C.height,r?u[x]=i[b]:u[x]=0,m=m&&c[x]===u[x],fe.clone(C,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,u.length=x,{positions:a,topHeights:c,bottomHeights:u}}var WJe=new Array(2),jJe=new Array(2),qJe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};sme.computePositions=function(e,t,n,i,o,r){let s=GJe(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,u,f,d=P.chordLength(o,e.maximumRadius),p=qJe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=Ii.numberOfPoints(t[m],t[m+1],d)+1;u=new Float64Array(g*3),f=new Float64Array(g*3);let x=WJe,b=jJe;p.positions=x,p.height=b;let T=0;for(m=0;m<a-1;m++){x[0]=t[m],x[1]=t[m+1],b[0]=n[m],b[1]=n[m+1];let C=Ii.generateArc(p);u.set(C,T),b[0]=i[m],b[1]=i[m+1],f.set(Ii.generateArc(p),T),T+=C.length}}else p.positions=t,p.height=n,u=new Float64Array(Ii.generateArc(p)),p.height=i,f=new Float64Array(Ii.generateArc(p));return{bottomPositions:f,topPositions:u,numCorners:c}};var aT=sme;var oq=new h,l4=new h,YJe=new h,ame=new h,XJe=new h,KJe=new h,ZJe=new h;function cT(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Ie.clone(o),this._granularity=r,this._ellipsoid=ee.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+ee.packedLength+Ie.packedLength+1}cT.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._granularity,t};var cme=ee.clone(ee.UNIT_SPHERE),lme=new Ie,vN={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:cme,vertexFormat:lme,granularity:void 0};cT.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ee.unpack(e,t,cme);t+=ee.packedLength;let u=Ie.unpack(e,t,lme);t+=Ie.packedLength;let f=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._vertexFormat=Ie.clone(u,n._vertexFormat),n._granularity=f,n):(vN.positions=r,vN.minimumHeights=s,vN.maximumHeights=a,vN.granularity=f,new cT(vN))};cT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new cT(c)};cT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=aT.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,u=a.topPositions,f=a.numCorners,d=u.length,p=d*2,g=o.position?new Float64Array(p):void 0,m=o.normal?new Float32Array(p):void 0,x=o.tangent?new Float32Array(p):void 0,b=o.bitangent?new Float32Array(p):void 0,T=o.st?new Float32Array(p/3*2):void 0,C=0,A=0,E=0,v=0,D=0,O=ZJe,R=KJe,M=XJe,N=!0;d/=3;let _,S=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=h.fromArray(u,V,oq),k=h.fromArray(c,V,l4);if(o.position&&(g[C++]=k.x,g[C++]=k.y,g[C++]=k.z,g[C++]=G.x,g[C++]=G.y,g[C++]=G.z),o.st&&(T[D++]=S,T[D++]=0,T[D++]=S,T[D++]=1),o.normal||o.tangent||o.bitangent){let W=h.clone(h.ZERO,ame),q=h.subtract(G,s.geodeticSurfaceNormal(G,l4),l4);if(_+1<d&&(W=h.fromArray(u,V+3,ame)),N){let J=h.subtract(W,G,YJe),j=h.subtract(q,G,oq);O=h.normalize(h.cross(j,J,O),O),N=!1}h.equalsEpsilon(G,W,P.EPSILON10)?N=!0:(S+=w,o.tangent&&(R=h.normalize(h.subtract(W,G,R),R)),o.bitangent&&(M=h.normalize(h.cross(O,R,M),M))),o.normal&&(m[A++]=O.x,m[A++]=O.y,m[A++]=O.z,m[A++]=O.x,m[A++]=O.y,m[A++]=O.z),o.tangent&&(x[v++]=R.x,x[v++]=R.y,x[v++]=R.z,x[v++]=R.x,x[v++]=R.y,x[v++]=R.z),o.bitangent&&(b[E++]=M.x,b[E++]=M.y,b[E++]=M.z,b[E++]=M.x,b[E++]=M.y,b[E++]=M.z)}}let I=new fn;o.position&&(I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}));let L=p/3;p-=6*(f+1);let B=Ne.createTypedArray(L,p),U=0;for(_=0;_<L-2;_+=2){let V=_,G=_+2,k=h.fromArray(g,V*3,oq),W=h.fromArray(g,G*3,l4);if(h.equalsEpsilon(k,W,P.EPSILON10))continue;let q=_+1,J=_+3;B[U++]=q,B[U++]=V,B[U++]=J,B[U++]=J,B[U++]=V,B[U++]=G}return new at({attributes:I,indices:B,primitiveType:Me.TRIANGLES,boundingSphere:new se.fromVertices(g)})};var wN=cT;var ume=new h,fme=new h;function lT(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ee.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+ee.packedLength+1}lT.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n]=e._granularity,t};var dme=ee.clone(ee.UNIT_SPHERE),DN={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:dme,granularity:void 0};lT.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ee.unpack(e,t,dme);t+=ee.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._granularity=u,n):(DN.positions=r,DN.minimumHeights=s,DN.maximumHeights=a,DN.granularity=u,new lT(DN))};lT.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new lT(c)};lT.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=aT.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,u=c.length,f=u*2,d=new Float64Array(f),p=0;u/=3;let g;for(g=0;g<u;++g){let C=g*3,A=h.fromArray(c,C,ume),E=h.fromArray(a,C,fme);d[p++]=E.x,d[p++]=E.y,d[p++]=E.z,d[p++]=A.x,d[p++]=A.y,d[p++]=A.z}let m=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=Ne.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let C=g,A=g+2,E=h.fromArray(d,C*3,ume),v=h.fromArray(d,A*3,fme);if(h.equalsEpsilon(E,v,P.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=C,b[T++]=D,b[T++]=O,b[T++]=C,b[T++]=A}return b[T++]=x-2,b[T++]=x-1,new at({attributes:m,indices:b,primitiveType:Me.LINES,boundingSphere:new se.fromVertices(d)})};var IN=lT;var hme=new H;function $Je(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function xh(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new $Je(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(xh.prototype=Object.create(ii.prototype),xh.prototype.constructor=xh);xh.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=kn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Ut){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,hme)),l(c)||(c=H.WHITE),o=Wt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new St({id:t,geometry:new wN(this._options),attributes:i})};xh.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,H.BLACK,hme),o=this._distanceDisplayConditionProperty.getValue(e);return new St({id:t,geometry:new IN(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:Wt.fromColor(i),distanceDisplayCondition:kn.fromDistanceDisplayCondition(o)}})};xh.prototype._isHidden=function(e,t){return!l(t.positions)||ii.prototype._isHidden.call(this,e,t)};xh.prototype._getIsClosed=function(e){return!1};xh.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.minimumHeights)||!Y.isConstant(t.maximumHeights)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.granularity)};xh.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Ut,s=this._options;s.vertexFormat=r?ln.VERTEX_FORMAT:so.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(He.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(He.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(He.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(He.MINIMUM_VALUE):void 0};xh.DynamicGeometryUpdater=oS;function oS(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(oS.prototype=Object.create(ni.prototype),oS.prototype.constructor=oS);oS.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||ni.prototype._isHidden.call(this,e,t,n)};oS.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=Y.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=Y.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=Y.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=Y.getValueOrUndefined(t.granularity,n)};var PN=xh;var uT=[S1,KL,UL,cN,uN,hN,gN,EN,SN,PN];function fT(e,t){this.entity=e,this.scene=t;let n=new Array(uT.length),i=new me,o=new fr;for(let r=0;r<n.length;r++){let s=new uT[r](e,t);o.add(s.geometryChanged,a=>{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(fT.prototype._onEntityPropertyChanged,this)}fT.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};fT.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};fT.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};fT.registerUpdater=function(e){uT.includes(e)||uT.push(e)};fT.unregisterUpdater=function(e){if(uT.includes(e)){let t=uT.indexOf(e);uT.splice(t,1)}};var dT=fT;var mme=new H,QJe=new Lt,JJe=new Lt,eet=h.ZERO,tet=new h;function bh(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(bh.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}bh.prototype.onMaterialChanged=function(){this.invalidated=!0};bh.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};bh.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};bh.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};bh.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new Dn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let b=u.fillMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,mme);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=Wt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}if(l(this.depthFailAppearanceType)&&u.depthFailMaterialProperty instanceof Ut&&(!u.depthFailMaterialProperty.isConstant||c)){let b=u.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,mme);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=Wt.toValue(T,d.depthFailColor))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,JJe,QJe);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,eet,tet);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};bh.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};bh.prototype.contains=function(e){return this.updaters.contains(e.id)};bh.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};bh.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function rS(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}rS.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new bh(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function pme(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}rS.prototype.remove=function(e){pme(this._solidItems,e)||pme(this._translucentItems,e)};function _me(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let u=a[r];s.remove(u),e.add(n,u),i=!0}}return i}function u4(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let u=0;u<c;u++)e.add(n,a[u]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}rS.prototype.update=function(e){let t=u4(this,this._solidItems,e,!0);t=u4(this,this._translucentItems,e,t)&&t;let n=_me(this,this._solidItems,e),i=_me(this,this._translucentItems,e);return(n||i)&&(t=u4(this,this._solidItems,e,t)&&t,t=u4(this,this._translucentItems,e,t)&&t),t};function gme(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return ct.FAILED}rS.prototype.getBoundingSphere=function(e,t){let n=gme(this._solidItems,e,t);return n===ct.FAILED?gme(this._translucentItems,e,t):n};function yme(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}rS.prototype.removeAllPrimitives=function(){yme(this._solidItems),yme(this._translucentItems)};var td=rS;var net=new Lt,iet=new Lt,oet=h.ZERO,ret=new h;function Th(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Th.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et}Th.prototype.onMaterialChanged=function(){this.invalidated=!0};Th.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};Th.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty)||!Y.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Th.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var set=new H;Th.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Jo.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new Dn({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Ut)&&(this.depthFailMaterial=Jo.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Ut&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,H.WHITE,set);H.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=H.clone(T,d._lastDepthFailColor),d.depthFailColor=Wt.toValue(T,d.depthFailColor))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,iet,net);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,oet,ret);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Th.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Th.prototype.contains=function(e){return this.updaters.contains(e.id)};Th.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};Th.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function sS(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}sS.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new Th(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};sS.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};sS.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};sS.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ct.FAILED};sS.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var nd=sS;var bme=Vo(xme(),1);function f4(){this._tree=new bme.default}function hT(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}hT.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};f4.prototype.insert=function(e,t){let n=hT.fromRectangleAndId(e,t,new hT);this._tree.insert(n)};function aet(e,t){return e.id===t.id}var cet=new hT;f4.prototype.remove=function(e,t){let n=hT.fromRectangleAndId(e,t,cet);this._tree.remove(n,aet)};var uet=new hT;f4.prototype.collides=function(e){let t=hT.fromRectangleAndId("",e,uet);return this._tree.collides(t)};var mT=f4;var fet=new H,det=new Lt,het=new Lt;function X_(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.subscriptions=new Et,this.showsUpdated=new Et,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new mT}X_.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};X_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};X_.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};X_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new zc({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let x=u.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,H.WHITE,fet);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=Wt.toValue(b,d.color))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,het,det);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};X_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};X_.prototype.contains=function(e){return this.updaters.contains(e.id)};X_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),ct.DONE):ct.FAILED};X_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function aS(e,t){this._batches=[],this._primitives=e,this._classificationType=t}aS.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=Y.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return l(r)||(r=new X_(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};aS.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};aS.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let u=0;u<c;u++){n=a[u],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};aS.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ct.FAILED};aS.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var cS=aS;var met=new Lt,pet=new Lt;function id(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(id.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new mT}id.prototype.onMaterialChanged=function(){this.invalidated=!0};id.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};id.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};id.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};id.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};id.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=Jo.getValue(e,this.materialProperty,this.material),n=new zc({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=Jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,pet,met);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};id.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};id.prototype.contains=function(e){return this.updaters.contains(e.id)};id.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};id.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function lS(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}lS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=pu.shouldUseSphericalCoordinates(o.geometry.rectangle),s=Y.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let u=n[c];if(u.isMaterial(t)&&u.usingSphericalTextureCoordinates===r&&u.zIndex===s&&!u.overlapping(o.geometry.rectangle)){u.add(e,t,o);return}}let a=new id(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};lS.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};lS.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};lS.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ct.FAILED};lS.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var RN=lS;var _et=new H,get=new Lt,yet=new Lt,xet=h.ZERO,bet=new h;function K_(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.updaters=new Et,this.updatersWithAttributes=new Et,this.attributes=new Et,this.itemsToRemove=[],this.subscriptions=new Et,this.showsUpdated=new Et}K_.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};K_.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};K_.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new Dn({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new ln({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.outlineColorProperty.isConstant||c){let b=u.outlineColorProperty,T=Y.getValueOrDefault(b,e,H.WHITE,_et);H.equals(d._lastColor,T)||(d._lastColor=H.clone(T,d._lastColor),d.color=Wt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}let p=u.entity.isShowing&&(u.hasConstantOutline||u.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,yet,get);Lt.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,xet,bet);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Qi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};K_.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};K_.prototype.contains=function(e){return this.updaters.contains(e.id)};K_.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};K_.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function uS(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new Et,this._translucentBatches=new Et}uS.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),l(r)||(r=new K_(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new K_(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};uS.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};uS.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,u,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}}while(d);return f};uS.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return ct.FAILED};uS.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var fS=uS;var Tet=[];function Yl(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new Et,this._removedObjects=new Et,this._changedObjects=new Et;let o=yn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=er.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new fS(n,e,s,!1),this._outlineBatches[o+s]=new fS(n,e,s,!0),this._closedColorBatches[s]=new td(n,ln,void 0,!0,s,!0),this._closedColorBatches[o+s]=new td(n,ln,void 0,!0,s,!1),this._closedMaterialBatches[s]=new nd(n,so,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new nd(n,so,void 0,!0,s,!1),this._openColorBatches[s]=new td(n,ln,void 0,!1,s,!0),this._openColorBatches[o+s]=new td(n,ln,void 0,!1,s,!1),this._openMaterialBatches[s]=new nd(n,so,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new nd(n,so,void 0,!1,s,!1);let a=Vn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),u=[];if(r)for(s=0;s<a;++s)u.push(new RN(i,s,so)),c[s]=new cS(i,s);else for(s=0;s<a;++s)c[s]=new cS(i,s);this._groundColorBatches=c,this._groundMaterialBatches=u,this._dynamicBatch=new tT(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new Et,this._updaterSets=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(Yl.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,Tet)}Yl.registerUpdater=function(e){dT.registerUpdater(e)};Yl.unregisterUpdater=function(e){dT.unregisterUpdater(e)};Yl.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),f.entity===c?f.forEach(function(x){d._removeUpdater(x),d._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new dT(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(Yl._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,m=g.length;for(a=0;a<m;a++)p=g[a].update(e)&&p;return p};var Cet=[],Aet=new se;Yl.prototype.getBoundingSphere=function(e,t){let n=Cet,i=Aet,o=0,r=ct.DONE,s=this._batches,a=s.length,c=e.id,u=this._updaterSets.get(c).updaters;for(let f=0;f<u.length;f++){let d=u[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===ct.PENDING)return ct.PENDING;r===ct.DONE&&(n[o]=se.clone(i,n[o]),o++)}}return o===0?ct.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ct.DONE)};Yl.prototype.isDestroyed=function(){return!1};Yl.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Yl.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),ue(this)};Yl.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};Yl.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=yn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof Ut?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Ut?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};Yl._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Yl.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var ON=Yl;var Eet=1,vet="30px sans-serif",wet=Wo.FILL,Det=H.WHITE,Iet=H.BLACK,Pet=1,Ret=!1,Oet=new H(.165,.165,.165,.8),Met=new z(7,5),Let=z.ZERO,Net=h.ZERO,Fet=Ye.NONE,Bet=_i.CENTER,ket=Rn.CENTER,Vet=new h,Uet=new H,zet=new H,Het=new H,Get=new z,Wet=new h,jet=new z,qet=new Bt,Yet=new Bt,Xet=new Bt,Ket=new Lt;function Tme(e){this.entity=e,this.label=void 0,this.index=void 0}function Jy(e,t){t.collectionChanged.addEventListener(Jy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}Jy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,u=r.label,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,Vet),c=Y.getValueOrUndefined(a._text,e),f=l(d)&&l(c)),!f){aq(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=Y.getValueOrDefault(a._heightReference,e,Fet);l(u)||(u=n.getLabel(s),u.id=s,r.label=u,p=h.equals(u.position,d)&&u.heightReference===g),u.show=!0,u.position=d,u.text=c,u.scale=Y.getValueOrDefault(a._scale,e,Eet),u.font=Y.getValueOrDefault(a._font,e,vet),u.style=Y.getValueOrDefault(a._style,e,wet),u.fillColor=Y.getValueOrDefault(a._fillColor,e,Det,Uet),u.outlineColor=Y.getValueOrDefault(a._outlineColor,e,Iet,zet),u.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,Pet),u.showBackground=Y.getValueOrDefault(a._showBackground,e,Ret),u.backgroundColor=Y.getValueOrDefault(a._backgroundColor,e,Oet,Het),u.backgroundPadding=Y.getValueOrDefault(a._backgroundPadding,e,Met,Get),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,Let,jet),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,Net,Wet),u.heightReference=g,u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,Bet),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,ket),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,qet),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,Yet),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Xet),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,Ket),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),p&&u._updateClamping()}return!0};Jy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return ct.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,ct.DONE};Jy.prototype.isDestroyed=function(){return!1};Jy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Jy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};Jy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new Tme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Tme(r)):(aq(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],aq(s.get(r.id),r,a),s.remove(r.id)};function aq(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var MN=Jy;var Zet=1,$et=!0,Qet=0,Jet=!0,ett=!0,ttt=yn.ENABLED,ntt=Ye.NONE,itt=H.RED,ott=0,rtt=H.WHITE,stt=dc.HIGHLIGHT,att=.5,ctt=new z(1,1),ltt=new F,utt=new F,Cme=new H,Ame=new Array(4),ftt=new h;function e0(e,t){t.collectionChanged.addEventListener(e0.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new Et,this._onCollectionChanged(t,t.values,[],[])}async function dtt(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await nh.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}e0.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,ltt),c=we.createIfNeeded(Y.getValueOrUndefined(a._uri,e)),f=l(d)&&l(c)),!f){l(u)&&u.modelPrimitive&&(u.modelPrimitive.show=!1);continue}if(!l(u)||c.url!==u.url){l(u?.modelPrimitive)&&(i.removeAndDestroy(u.modelPrimitive),delete n[s.id]),u={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1},n[s.id]=u;let m=Y.getValueOrDefault(a._incrementallyLoadTextures,e,Jet);dtt(this,s,c,m)}let p=u.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=Y.getValueOrDefault(a._scale,e,Zet),p.enableVerticalExaggeration=Y.getValueOrDefault(a._enableVerticalExaggeration,e,$et),p.minimumPixelSize=Y.getValueOrDefault(a._minimumPixelSize,e,Qet),p.maximumScale=Y.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(d,p.modelMatrix),p.shadows=Y.getValueOrDefault(a._shadows,e,ttt),p.heightReference=Y.getValueOrDefault(a._heightReference,e,ntt),p.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=Y.getValueOrDefault(a._silhouetteColor,e,itt,Cme),p.silhouetteSize=Y.getValueOrDefault(a._silhouetteSize,e,ott),p.color=Y.getValueOrDefault(a._color,e,rtt,Cme),p.colorBlendMode=Y.getValueOrDefault(a._colorBlendMode,e,stt),p.colorBlendAmount=Y.getValueOrDefault(a._colorBlendAmount,e,att),p.clippingPlanes=Y.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=Y.getValueOrDefault(a._clampAnimations,e,ett),p.imageBasedLighting.imageBasedLightingFactor=Y.getValueOrDefault(a._imageBasedLightingFactor,e,ctt);let g=Y.getValueOrUndefined(a._lightColor,e);if(l(g)&&(H.pack(g,Ame,0),g=h.unpack(Ame,0,ftt)),p.lightColor=g,p.customShader=Y.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=Y.getValueOrDefault(a._runAnimations,e,!0);u.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:Vl.REPEAT}):p.activeAnimations.removeAll(),u.animationsRunning=m);let x=Y.getValueOrUndefined(a._nodeTransformations,e,u.nodeTransformationsScratch);if(l(x)){let C=Object.keys(x);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=x[v];if(!l(D))continue;let O=p.getNode(v);if(!l(O))continue;let R=F.fromTranslationRotationScale(D,utt);O.matrix=F.multiply(O.originalMatrix,R,R)}}let b=!1,T=Y.getValueOrUndefined(a._articulations,e,u.articulationsScratch);if(l(T)){let C=Object.keys(T);for(let A=0,E=C.length;A<E;++A){let v=C[A],D=T[v];l(D)&&(b=!0,p.setArticulationStage(v,D))}}b&&p.applyArticulations()}}return!0};e0.prototype.isDestroyed=function(){return!1};e0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(e0.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)cq(this,e[i],t,n);return ue(this)};var d4=new h,htt=new fe;e0.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return ct.FAILED;if(n.loadFailed)return ct.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return ct.PENDING;if(!i.ready||!n.modelUpdated)return ct.PENDING;let o=this._scene,r=y(o.ellipsoid,ee.default);if(i.heightReference!==Ye.NONE){let a=i.modelMatrix;d4.x=a[12],d4.y=a[13],d4.z=a[14];let c=r.cartesianToCartographic(d4,htt),u=o.getHeight(c,i.heightReference);return l(u)&&(Af(i.heightReference)?c.height=u:c.height+=u),se.clone(i.boundingSphere,t),t.center=r.cartographicToCartesian(c),ct.DONE}return se.clone(i.boundingSphere,t),ct.DONE};e0.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?(mtt(r,a),s.set(r.id,r)):(cq(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],cq(this,r,a,c),s.remove(r.id)};function cq(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function mtt(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var LN=e0;function t0(e){this._definitionChanged=new me,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(t0.prototype,{isConstant:{get:function(){return Y.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:Vi.FIXED}}});var ptt=new Z;t0.prototype.getValue=function(e,t){return l(e)||(e=Z.now(ptt)),this.getValueInReferenceFrame(e,Vi.FIXED,t)};t0.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};t0.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?ee.default.scaleToGeodeticSurface(n,n):void 0};t0.prototype.equals=function(e){return this===e||e instanceof t0&&this._value===e._value};t0.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Mm=t0;var _tt=60,gtt=1,Sme=new Cn,lq=new Cn,uq=new Cn;function Eme(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function ytt(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||Z.lessThanOrEquals(o,t)||Z.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,C,A;for(;p<g;){if(!d&&Z.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[u]),l(f)&&(c[u++]=f),d=!0),Z.greaterThan(m,t)&&Z.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[u]),l(f)&&(c[u++]=f)),p<g-1){if(s>0&&!b){let E=i[p+1],v=Z.secondsDifference(E,m);b=v>s,b&&(T=Math.ceil(v/s),C=0,A=v/Math.max(T,2),T=Math.max(T-1,1))}if(b&&C<T){m=Z.addSeconds(m,A,new Z),C++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[u]),l(f)&&(c[u++]=f),u}function xtt(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=!l(i)||Z.lessThanOrEquals(i,t)||Z.greaterThanOrEquals(i,n);for(;Z.lessThan(d,n);)!p&&Z.greaterThanOrEquals(d,i)&&(p=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=Z.addSeconds(t,r*u,new Z);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function btt(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=Math.max(r,60),g=!l(i)||Z.lessThanOrEquals(i,t)||Z.greaterThanOrEquals(i,n);for(;Z.lessThan(d,n);)!g&&Z.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=Z.addSeconds(t,p*u,new Z);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function Ttt(e,t,n,i,o,r,s,a){uq.start=t,uq.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Cn.intersect(d,uq,Sme).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=Z.addSeconds(d.start,Z.secondsDifference(d.stop,d.start)/2,new Z));let g=e.getValueInReferenceFrame(p,o,a[c]);l(g)&&(a[c]=g,c++)}}return c}function Ctt(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function Att(e,t,n,i,o,r,s,a){lq.start=t,lq.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Cn.intersect(d,lq,Sme).isEmpty){let p=d.start,g=d.stop,m=t;Z.greaterThan(p,m)&&(m=p);let x=n;Z.lessThan(g,x)&&(x=g),c=vme(d.data,m,x,i,o,r,c,a)}}return c}function vme(e,t,n,i,o,r,s,a){for(;e instanceof H_;)e=e.resolvedProperty;if(e instanceof _a){let c=e._property._times;s=ytt(e,t,n,c,i,o,r,s,a)}else e instanceof v1?s=xtt(e,t,n,i,o,r,s,a):e instanceof ma?s=Att(e,t,n,i,o,r,s,a):e instanceof G_?s=Ttt(e,t,n,i,o,r,s,a):e instanceof Gc||e instanceof Mm&&Y.isConstant(e)?s=Ctt(e,t,n,i,o,r,s,a):s=btt(e,t,n,i,o,r,s,a);return s}function wme(e,t,n,i,o,r,s){l(s)||(s=[]);let a=vme(e,t,n,i,o,r,0,s);return s.length=a,s}var Ett=new $;function NN(e,t){this._unusedIndexes=[],this._polylineCollection=new oh,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}NN.prototype.update=function(e){if(this._referenceFrame===Vi.INERTIAL){let t=Mt.computeIcrfToCentralBodyFixedMatrix(e,Ett);F.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};NN.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,u=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(u){let d=Y.getValueOrUndefined(i._leadTime,e),p=Y.getValueOrUndefined(i._trailTime,e),g=n._availability,m=l(g),x=l(d),b=l(p);if(u=m||x&&b,u){if(b&&(r=Z.addSeconds(e,-p,new Z)),x&&(s=Z.addSeconds(e,d,new Z)),m){let T=g.start,C=g.stop;(!b||Z.greaterThan(T,r))&&(r=T),(!x||Z.lessThan(C,s))&&(s=C)}u=Z.lessThan(r,s)}}if(!u){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!l(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=Y.getValueOrDefault(i._resolution,e,_tt);c.show=!0,c.positions=wme(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=Jo.getValue(e,i._material,c.material),c.width=Y.getValueOrDefault(i._width,e,gtt),c.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};NN.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};NN.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function n0(e,t){t.collectionChanged.addEventListener(n0.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}n0.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],a=r.entity._position,c=r.updater,u=Vi.FIXED;this._scene.mode===ne.SCENE3D&&(u=a.referenceFrame);let f=this._updaters[u];if(c===f&&l(f)){f.updateObject(e,r);continue}l(c)&&c.removeObject(r),l(f)||(f=new NN(this._scene,u),f.update(e),this._updaters[u]=f),r.updater=f,l(f)&&f.updateObject(e,r)}return!0};n0.prototype.isDestroyed=function(){return!1};n0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(n0.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};n0.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new Eme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Eme(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};n0._subSample=wme;var FN=n0;var Dme=H.WHITE,Ime=H.BLACK,Pme=0,Rme=1,Ome=0,Mme=Nr.NONE,Lme=new H,Stt=new h,Nme=new H,Fme=new Bt,Bme=new Bt,kme=new Lt;function Vme(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function i0(e,t){t.collectionChanged.addEventListener(i0.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new Et,this._onCollectionChanged(t,t.values,[],[])}i0.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,u=r.billboard,f=Y.getValueOrDefault(a._heightReference,e,Ye.NONE),d=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),p;if(d&&(p=Y.getValueOrUndefined(s._position,e,Stt),d=l(p)),!d){BN(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==Ye.NONE&&!l(u)?(l(c)&&(BN(r,s,n),c=void 0),u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u,g=!0,m=h.equals(u.position,p)&&u.heightReference===f):f===Ye.NONE&&!l(c)&&(l(u)&&(BN(r,s,n),u=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Fme),c.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Bme),c.color=Y.getValueOrDefault(a._color,e,Dme,Lme),c.outlineColor=Y.getValueOrDefault(a._outlineColor,e,Ime,Nme),c.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,Pme),c.pixelSize=Y.getValueOrDefault(a._pixelSize,e,Rme),c.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,kme),c.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Ome),c.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Mme);else if(l(u)){u.show=!0,u.position=p,u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Fme),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Bme),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,kme),u.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Ome),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Mme),u.heightReference=f;let x=Y.getValueOrDefault(a._color,e,Dme,Lme),b=Y.getValueOrDefault(a._outlineColor,e,Ime,Nme),T=Math.round(Y.getValueOrDefault(a._outlineWidth,e,Pme)),C=Math.max(1,Math.round(Y.getValueOrDefault(a._pixelSize,e,Rme)));if(T>0?(u.scale=1,g=g||T!==r.outlineWidth||C!==r.pixelSize||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)):(u.scale=C/50,C=50,g=g||T!==r.outlineWidth||!H.equals(x,r.color)||!H.equals(b,r.outlineColor)),g){r.color=H.clone(x,r.color),r.outlineColor=H.clone(b,r.outlineColor),r.pixelSize=C,r.outlineWidth=T;let A=x.alpha,E=x.toCssColorString(),v=b.toCssColorString(),D=JSON.stringify([E,C,v,T]);u.setImage(D,Sb(A,E,v,T,C))}m&&u._updateClamping()}}return!0};i0.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return ct.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return ct.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,ct.DONE};i0.prototype.isDestroyed=function(){return!1};i0.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(i0.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};i0.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new Vme(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Vme(r)):(BN(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],BN(s.get(r.id),r,a),s.remove(r.id)};function BN(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var kN=i0;var Wme=[];function vtt(e,t,n,i,o){let r=Wme;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(H.equals(n,i)){for(s=0;s<o;s++)r[s]=H.clone(n);return r}let x=(d-a)/o,b=(p-c)/o,T=(g-u)/o,C=(m-f)/o;for(s=0;s<o;s++)r[s]=new H(a+s*x,c+s*b,u+s*T,f+s*C);return r}function VN(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),o=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Ie.clone(y(e.vertexFormat,Ie.DEFAULT)),this._arcType=y(e.arcType,Jt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=l(n)?1+n.length*H.packedLength:1,this.packedLength=r+ee.packedLength+Ie.packedLength+4}VN.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var jme=ee.clone(ee.UNIT_SPHERE),qme=new Ie,pT={positions:void 0,colors:void 0,ellipsoid:jme,vertexFormat:qme,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};VN.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=ee.unpack(e,t,jme);t+=ee.packedLength;let c=Ie.unpack(e,t,qme);t+=Ie.packedLength;let u=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Ie.clone(c,n._vertexFormat),n._width=u,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(pT.positions=r,pT.colors=s,pT.width=u,pT.colorsPerVertex=f,pT.arcType=d,pT.granularity=p,new VN(pT))};var Ume=new h,zme=new h,Hme=new h,Gme=new h;VN.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,u,f,d=[],p=To(e._positions,h.equalsEpsilon,!1,d);if(l(i)&&d.length>0){let L=0,B=d[0];i=i.filter(function(U,V){let G=!1;return o?G=V===B||V===0&&B===1:G=V+1===B,G?(L++,B=d[L],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===Jt.GEODESIC||r===Jt.RHUMB){let L,B;r===Jt.GEODESIC?(L=P.chordLength(s,a.maximumRadius),B=Ii.numberOfPoints):(L=s,B=Ii.numberOfPointsRhumbLine);let U=Ii.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c<g-1;++c)V+=B(p[c],p[c+1],L);let G=new Array(V),k=0;for(c=0;c<g-1;++c){let W=p[c],q=p[c+1],J=i[c],j=B(W,q,L);if(o&&c<V){let K=i[c+1],Q=vtt(W,q,J,K,j),de=Q.length;for(u=0;u<de;++u)G[k++]=Q[u]}else for(u=0;u<j;++u)G[k++]=H.clone(J)}G[k]=H.clone(i[i.length-1]),i=G,Wme.length=0}r===Jt.GEODESIC?p=Ii.generateCartesianArc({positions:p,minDistance:L,ellipsoid:a,height:U}):p=Ii.generateCartesianRhumbArc({positions:p,granularity:L,ellipsoid:a,height:U})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),C=new Float32Array(m*2),A=n.st?new Float32Array(m*2):void 0,E=l(i)?new Uint8Array(m*4):void 0,v=0,D=0,O=0,R=0,M;for(u=0;u<g;++u){u===0?(M=Ume,h.subtract(p[0],p[1],M),h.add(p[0],M,M)):M=p[u-1],h.clone(M,Hme),h.clone(p[u],zme),u===g-1?(M=Ume,h.subtract(p[g-1],p[g-2],M),h.add(p[g-1],M,M)):M=p[u+1],h.clone(M,Gme);let L,B;l(E)&&(u!==0&&!o?L=i[u-1]:L=i[u],u!==g-1&&(B=i[u]));let U=u===0?2:0,V=u===g-1?2:4;for(f=U;f<V;++f){h.pack(zme,x,v),h.pack(Hme,b,v),h.pack(Gme,T,v),v+=3;let G=f-2<0?-1:1;if(C[D++]=2*(f%2)-1,C[D++]=G*t,n.st&&(A[O++]=u/(g-1),A[O++]=Math.max(C[D-2],0)),l(E)){let k=f<2?L:B;E[R++]=H.floatToByte(k.red),E[R++]=H.floatToByte(k.green),E[R++]=H.floatToByte(k.blue),E[R++]=H.floatToByte(k.alpha)}}}let N=new fn;N.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),N.prevPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),N.nextPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),N.expandAndWidth=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C}),n.st&&(N.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A})),l(E)&&(N.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:E,normalize:!0}));let _=Ne.createTypedArray(m,g*6-6),S=0,w=0,I=g-1;for(u=0;u<I;++u)_[w++]=S,_[w++]=S+2,_[w++]=S+1,_[w++]=S+1,_[w++]=S+2,_[w++]=S+3,S+=4;return new at({attributes:N,indices:_,primitiveType:Me.TRIANGLES,boundingSphere:se.fromPoints(p),geometryType:gf.POLYLINES})};var Z_=VN;var wtt=new Kn(0),h4={},Yme=new H,Dtt=new Ut(H.WHITE),Itt=new Kn(!0),Ptt=new Kn(yn.DISABLED),Rtt=new Kn(new Lt),Ott=new Kn(Vn.BOTH);function Mtt(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Ltt(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Ch(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(Ch.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new me,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new Mtt,this._groundGeometryOptions=new Ltt,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=er.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(Ch.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});Ch.prototype.isOutlineVisible=function(e){return!1};Ch.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};Ch.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=kn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof Ut&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Yme)),l(a)||(a=H.WHITE),s.color=Wt.fromColor(a)),this.clampToGround?new St({id:t,geometry:new Dx(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Ut&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,Yme)),l(a)||(a=H.WHITE),s.depthFailColor=Wt.fromColor(a)),new St({id:t,geometry:new Z_(this._geometryOptions),attributes:s}))};Ch.prototype.createOutlineGeometryInstance=function(e){};Ch.prototype.isDestroyed=function(){return!1};Ch.prototype.destroy=function(){this._entitySubscription(),ue(this)};Ch.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(He.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,Dtt),u=c instanceof Ut;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,Itt),this._shadowsProperty=y(o.shadows,Ptt),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,Rtt),this._classificationTypeProperty=y(o.classificationType,Ott),this._fillEnabled=!0,this._zIndex=y(a,wtt);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!Y.isConstant(f)||!Y.isConstant(d)||!Y.isConstant(g)||!Y.isConstant(p)||!Y.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let m=this._geometryOptions,x=r.getValue(He.MINIMUM_VALUE,m.positions);if(!l(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;u&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Ut)?b=Qr.VERTEX_FORMAT:b=ca.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=l(f)?f.getValue(He.MINIMUM_VALUE):void 0,m.arcType=l(d)?d.getValue(He.MINIMUM_VALUE):void 0,m.granularity=l(g)?g.getValue(He.MINIMUM_VALUE):void 0;let T=this._groundGeometryOptions;T.positions=x,T.width=m.width,T.arcType=m.arcType,T.granularity=m.granularity,this._clampToGround=l(p)?p.getValue(He.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&xt("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Ch.prototype.createDynamicUpdater=function(e,t){return new UN(e,t,this)};var dS={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function UN(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function Xme(e){if(l(e._line))return e._line;let t=e._primitives,n=e._geometryUpdater._scene.id+t._guid,i=h4[n];!l(i)||i.isDestroyed()?(i=new oh,h4[n]=i,t.add(i)):t.contains(i)||t.add(i);let o=i.add();return o.id=e._geometryUpdater._entity,e._line=o,o}UN.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=Y.getValueOrUndefined(o,e,this._positions);t._clampToGround=Y.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=Y.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=Y.getValueOrDefault(i._arcType,e,Jt.GEODESIC),t._groundGeometryOptions.granularity=Y.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let d=t.fillMaterialProperty,p;if(d instanceof Ut)p=new Qr;else{let g=Jo.getValue(e,d,this._material);p=new ca({material:g,translucent:g.isTranslucent()}),this._material=g}this._groundPolylinePrimitive=s.add(new Ld({geometryInstances:t.createFillGeometryInstance(e),appearance:p,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),Y.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=Xme(this);if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=Jt.GEODESIC;c=Y.getValueOrDefault(i._arcType,e,c);let u=t._scene.globe,f=t._scene.ellipsoid;c!==Jt.NONE&&l(u)&&(dS.ellipsoid=f,dS.positions=r,dS.granularity=Y.getValueOrUndefined(i._granularity,e),dS.height=Ii.extractHeights(r,f),c===Jt.GEODESIC?r=Ii.generateCartesianArc(dS):r=Ii.generateCartesianRhumbArc(dS)),a.show=!0,a.positions=r.slice(),a.material=Jo.getValue(e,t.fillMaterialProperty,a.material),a.width=Y.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};UN.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return se.clone(n.boundingSphere,e),ct.DONE}return l(t)&&!t.ready?ct.PENDING:ct.DONE}else{let t=Xme(this);if(t.show&&t.positions.length>0)return se.fromPoints(t.positions,e),ct.DONE}return ct.FAILED};UN.prototype.isDestroyed=function(){return!1};UN.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=h4[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete h4[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var zN=Ch;var Ntt=new H,Ftt=new Lt,Btt=new Lt;function Ah(e,t,n,i,o){let r;n instanceof Ut?r=Qr:r=ca,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new Et,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new Et,this.material=void 0,this.updatersWithAttributes=new Et,this.attributes=new Et,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Ah.prototype.onMaterialChanged,this),this.subscriptions=new Et,this.showsUpdated=new Et,this.zIndex=i,this._asynchronous=o}Ah.prototype.onMaterialChanged=function(){this.invalidated=!0};Ah.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Ut&&t instanceof Ut?!0:l(t)&&t.equals(n)};Ah.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Ah.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};Ah.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new Ld({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===ca&&(this.material=Jo.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===ca&&(this.material=Jo.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let x=c.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,H.WHITE,Ntt);H.equals(d._lastColor,b)||(d._lastColor=H.clone(b,d._lastColor),d.color=Wt.toValue(b,d.color))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,Btt,Ftt);Lt.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Lt.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=kn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Ah.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Ah.prototype.contains=function(e){return this.updaters.contains(e.id)};Ah.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return ct.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?ct.FAILED:(i.boundingSphere.clone(t),ct.DONE)};Ah.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function hS(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}hS.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=Y.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new Ah(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};hS.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};hS.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};hS.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return ct.FAILED};hS.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var HN=hS;var ktt=[];function Kme(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function Zme(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Ut?1:2);let r;l(i)&&(r=i+o*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Ut?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function Lm(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new Et,this._removedObjects=new Et,this._changedObjects=new Et;let o,r=yn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new td(n,Qr,void 0,!1,o),this._materialBatches[o]=new nd(n,ca,void 0,!1,o),this._colorBatches[o+r]=new td(n,Qr,Qr,!1,o),this._materialBatches[o+r]=new nd(n,ca,Qr,!1,o),this._colorBatches[o+r*2]=new td(n,Qr,ca,!1,o),this._materialBatches[o+r*2]=new nd(n,ca,ca,!1,o);this._dynamicBatch=new tT(n,i);let s=Vn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new HN(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new Et,this._updaters=new Et,this._entityCollection=t,t.collectionChanged.addEventListener(Lm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,ktt)}Lm.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(Kme(this,f),Zme(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),Kme(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new zN(c,this._scene),this._updaters.set(u,f),Zme(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(Lm._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var Vtt=[],Utt=new se;Lm.prototype.getBoundingSphere=function(e,t){let n=Vtt,i=Utt,o=0,r=ct.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let u=0;u<a;u++){if(r=s[u].getBoundingSphere(c,i),r===ct.PENDING)return ct.PENDING;r===ct.DONE&&(n[o]=se.clone(i,n[o]),o++)}return o===0?ct.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),ct.DONE)};Lm.prototype.isDestroyed=function(){return!1};Lm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(Lm.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),ue(this)};Lm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};Lm.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var GN=Lm;function Xl(e){zc.initializeTerrainHeights(),Ld.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new fr,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,Xl.defaultVisualizersCallback);let i=!1,o=new jl,r=new jl;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;u<f;u++)this._onDataSourceAdded(n,n.get(u));let s=new qL;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let u=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),u._removeDefaultDataSourceListener=void 0,u._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}var mS=[];Xl.registerVisualizer=function(e){mS.includes(e)||mS.push(e)};Xl.unregisterVisualizer=function(e){if(mS.includes(e)){let t=mS.indexOf(e);mS.splice(t,1)}};Xl.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new mP(t,i),new ON(e,i,n._primitives,n._groundPrimitives),new MN(t,i),new LN(e,i),new RL(e,i),new kN(t,i),new FN(e,i),new GN(e,i,n._primitives,n._groundPrimitives),...mS.map(o=>new o(e,i))]};Object.defineProperties(Xl.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Xl.prototype.isDestroyed=function(){return!1};Xl.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};Xl.prototype.update=function(e){if(!li.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(l(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return!this._ready&&t&&this._scene.requestRender(),this._ready=t,t};Xl.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var ztt=[],Htt=new se;Xl.prototype.getBoundingSphere=function(e,t,n){if(!this._ready&&!t)return ct.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let g=p.get(i);if(g.entities.contains(e)){r=g;break}}}if(!l(r))return ct.FAILED;let s=ztt,a=Htt,c=0,u=ct.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(l(p.getBoundingSphere)){if(u=f[i].getBoundingSphere(e,a),!t&&u===ct.PENDING)return ct.PENDING;u===ct.DONE&&(s[c]=se.clone(a,s[c]),c++)}}return c===0?ct.FAILED:(s.length=c,se.fromBoundingSpheres(s,n),ct.DONE)};Xl.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new jl),s=o.add(new aN);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Xl.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let u=0;u<c;u++)a[u].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Xl.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var WN=Xl;function fq(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}fq.clone=function(e,t){if(l(e))return l(t)||(t=new fq),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var od=fq;var $me=new $,Qme=new $,Jme=new $,Gtt=new F,m4=new h,epe=new h,dq=new h,hq=new h,tpe=new h,npe=new h,pS=new Z,Wtt=1.25;function jtt(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(l(c)){let u=!1,f=!1,d,p,g;if(a===ne.SCENE3D){Z.addSeconds(r,.001,pS);let C=o.getValue(pS,m4);if(l(C)||(Z.addSeconds(r,-.001,pS),C=o.getValue(pS,m4),f=!0),l(C)){let A=Mt.computeFixedToIcrfMatrix(r,$me),E=Mt.computeFixedToIcrfMatrix(pS,Qme),v;!l(A)||!l(E)?(v=Mt.computeTemeToPseudoFixedMatrix(r,Jme),A=$.transpose(v,$me),E=Mt.computeTemeToPseudoFixedMatrix(pS,Qme),$.transpose(E,E)):v=$.transpose(A,Jme);let D=$.multiplyByVector(A,c,tpe),O=$.multiplyByVector(E,C,npe);h.subtract(D,O,hq);let R=h.magnitude(hq)*1e3,M=P.GRAVITATIONALPARAMETER,N=-M/(R*R-2*M/h.magnitude(D));N<0||N>Wtt*s.maximumRadius?(d=epe,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,dq),p=h.cross(g,d,m4),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,dq),h.normalize(g,g),u=!0)):h.equalsEpsilon(c,C,P.EPSILON7)||(g=epe,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,dq),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,m4),$.multiplyByVector(v,d,d),$.multiplyByVector(v,p,p),$.multiplyByVector(v,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,hq),x=h.clone(t.direction,tpe),b=h.clone(t.up,npe));let T=Gtt;u?(T[0]=d.x,T[1]=d.y,T[2]=d.z,T[3]=0,T[4]=p.x,T[5]=p.y,T[6]=p.z,T[7]=0,T[8]=g.x,T[9]=g.y,T[10]=g.z,T[11]=0,T[12]=c.x,T[13]=c.y,T[14]=c.z,T[15]=0):Mt.eastNorthUpToFixedFrame(c,s,T),t._setTransform(T),i&&(h.clone(m,t.position),h.clone(x,t.direction),h.clone(b,t.up),h.cross(x,b,t.right))}if(n){let u=a===ne.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function jN(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ee.default),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(jN,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});jN.defaultOffset3D=new h(-14e3,3500,3500);var p4=new od,qtt=new h;jN.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){p4.pitch=-P.PI_OVER_FOUR,p4.range=0;let m=s.getValue(e,qtt);if(l(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);p4.pitch*=x}u.viewBoundingSphere(t,p4),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&h.clone(jN._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&h.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,jtt(this,u,f,d,s,e,i)};var qN=jN;function XN(){this._cache={}}XN.prototype.fromColor=function(e,t){return _4(void 0,void 0,e,t,this._cache)};XN.prototype.fromUrl=function(e,t,n){return _4(e,void 0,t,n,this._cache)};XN.prototype.fromMakiIconId=function(e,t,n){return _4(nn(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};XN.prototype.fromText=function(e,t,n){return _4(void 0,e,t,n,this._cache)};var Ytt=new H;function Xtt(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Ytt).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function ipe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=H.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=H.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var YN=new Array(4);function _4(e,t,n,i,o){YN[0]=e,YN[1]=t,YN[2]=n,YN[3]=i;let r=JSON.stringify(YN),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(Xtt(c,n,i),l(e)){let f=we.createIfNeeded(e).fetchImage().then(function(d){return ipe(c,d,i),o[r]=a,a});return o[r]=f,f}else if(l(t)){let u=wb(t,{font:`bold ${i}px sans-serif`});ipe(c,u,i)}return o[r]=a,a}var $_=XN;var spe=Vo(rpe(),1);function y4(e){return h.fromDegrees(e[0],e[1],e[2])}var mq={"urn:ogc:def:crs:OGC:1.3:CRS84":y4,"EPSG:4326":y4,"urn:ogc:def:crs:EPSG::4326":y4},ape={},cpe={},pq=48,_q,gq=H.ROYALBLUE,yq=H.YELLOW,xq=2,bq=H.fromBytes(255,255,0,100),Tq=!1,Ktt={small:24,medium:48,large:64},Ztt=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function lpe(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||Ztt.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${lpe(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function $tt(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function Qtt(e,t){return new Vd($tt(lpe,e,t),!0)}function x4(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=Hn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new Kn(c):n(r,s))}return o}function Cq(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var upe={Feature:dpe,FeatureCollection:Jtt,GeometryCollection:hpe,LineString:ype,MultiLineString:xpe,MultiPoint:_pe,MultiPolygon:Cpe,Point:ppe,Polygon:Tpe,Topology:Ape},fpe={GeometryCollection:hpe,LineString:ype,MultiLineString:xpe,MultiPoint:_pe,MultiPolygon:Cpe,Point:ppe,Polygon:Tpe,Topology:Ape};function dpe(e,t,n,i,o){if(t.geometry===null){x4(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new ce("feature.geometry is required.");let r=t.geometry.type,s=fpe[r];if(!l(s))throw new ce(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function Jtt(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)dpe(e,r[s],void 0,i,o)}function hpe(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],u=c.type,f=fpe[u];if(!l(f))throw new ce(`Unknown geometry type: ${u}`);f(e,t,c,i,o)}}function mpe(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let g=c["marker-color"];l(g)&&(s=H.fromCssColorString(g)),a=y(Ktt[c["marker-size"]],a);let m=c["marker-symbol"];l(m)&&(r=m)}let u;l(r)?r.length===1?u=e._pinBuilder.fromText(r.toUpperCase(),s,a):u=e._pinBuilder.fromMakiIconId(r,s,a):u=e._pinBuilder.fromColor(s,a);let f=new oc;f.verticalOrigin=new Kn(Rn.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=Ye.CLAMP_TO_GROUND);let d=x4(t,e._entityCollection,o.describe);d.billboard=f,d.position=new Gc(n(i));let p=Promise.resolve(u).then(function(g){f.image=new Kn(g)}).catch(function(){f.image=new Kn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function ppe(e,t,n,i,o){mpe(e,t,i,n.coordinates,o)}function _pe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)mpe(e,t,i,r[s],o)}function gpe(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let f=a["stroke-width"];l(f)&&(s=new Kn(f));let d,p=a.stroke;l(p)&&(d=H.fromCssColorString(p));let g=a["stroke-opacity"];l(g)&&g!==1&&(l(d)||(d=r.color.getValue().clone()),d.alpha=g),l(d)&&(r=new Ut(d))}let c=x4(t,e._entityCollection,o.describe),u=new ac;c.polyline=u,u.clampToGround=o.clampToGround,u.material=r,u.width=s,u.positions=new Kn(Cq(i,n)),u.arcType=Jt.RHUMB}function ype(e,t,n,i,o){gpe(e,t,i,n.coordinates,o)}function xpe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)gpe(e,t,i,r[s],o)}function bpe(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(l(c)){let g=c["stroke-width"];l(g)&&(a=new Kn(g));let m,x=c.stroke;l(x)&&(m=H.fromCssColorString(x));let b=c["stroke-opacity"];l(b)&&b!==1&&(l(m)||(m=r.getValue().clone()),m.alpha=b),l(m)&&(r=new Kn(m));let T,C=c.fill,A=s.color.getValue();l(C)&&(T=H.fromCssColorString(C),T.alpha=A.alpha),b=c["fill-opacity"],l(b)&&b!==A.alpha&&(l(T)||(T=A.clone()),T.alpha=b),l(T)&&(s=new Ut(T))}let u=new Bd;u.outline=new Kn(!0),u.outlineColor=r,u.outlineWidth=a,u.material=s,u.arcType=Jt.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new Oa(Cq(i[g],n)));let d=i[0];u.hierarchy=new Kn(new Oa(Cq(d,n),f)),d[0].length>2?u.perPositionHeight=new Kn(!0):o.clampToGround||(u.height=0);let p=x4(t,e._entityCollection,o.describe);p.polygon=u}function Tpe(e,t,n,i,o){bpe(e,t,i,n.coordinates,o)}function Cpe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)bpe(e,t,i,r[s],o)}function Ape(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=spe.feature(n,n.objects[r]),a=upe[s.type];a(e,s,s,i,o)}}function o0(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new $s(this),this._promises=[],this._pinBuilder=new $_,this._entityCluster=new Ou,this._credit=void 0,this._resourceCredits=[]}o0.load=function(e,t){return new o0().load(e,t)};Object.defineProperties(o0,{markerSize:{get:function(){return pq},set:function(e){pq=e}},markerSymbol:{get:function(){return _q},set:function(e){_q=e}},markerColor:{get:function(){return gq},set:function(e){gq=e}},stroke:{get:function(){return yq},set:function(e){yq=e}},strokeWidth:{get:function(){return xq},set:function(e){xq=e}},fill:{get:function(){return bq},set:function(e){bq=e}},clampToGround:{get:function(){return Tq},set:function(e){Tq=e}},crsNames:{get:function(){return mq}},crsLinkHrefs:{get:function(){return ape}},crsLinkTypes:{get:function(){return cpe}}});Object.defineProperties(o0.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});o0.prototype.load=function(e,t){return Epe(this,e,t,!0)};o0.prototype.process=function(e,t){return Epe(this,e,t,!1)};function Epe(e,t,n,i){Gr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new vt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof we){t=we.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return n={describe:y(n.describe,Qtt),markerSize:y(n.markerSize,pq),markerSymbol:y(n.markerSymbol,_q),markerColor:y(n.markerColor,gq),strokeWidthProperty:new Kn(y(n.strokeWidth,xq)),strokeMaterialProperty:new Ut(y(n.stroke,yq)),fillMaterialProperty:new Ut(y(n.fill,bq)),clampToGround:y(n.clampToGround,Tq)},Promise.resolve(r).then(function(a){return ent(e,a,n,s,i)}).catch(function(a){throw Gr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}o0.prototype.update=function(e){return!0};function ent(e,t,n,i,o){let r;l(i)&&(r=V_(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=upe[t.type];if(!l(s))throw new ce(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?y4:null;if(l(a)){if(!l(a.properties))throw new ce("crs.properties is undefined.");let u=a.properties;if(a.type==="name"){if(c=mq[u.name],!l(c))throw new ce(`Unknown crs name: ${u.name}`)}else if(a.type==="link"){let f=ape[u.href];if(l(f)||(f=cpe[u.type]),!l(f))throw new ce(`Unable to resolve crs link: ${JSON.stringify(u)}`);c=f(u)}else if(a.type==="EPSG"){if(c=mq[`EPSG:${u.code}`],!l(c))throw new ce(`Unknown crs EPSG code: ${u.code}`)}else throw new ce(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(u){return o&&e._entityCollection.removeAll(),u!==null&&s(e,t,t,u,n),Promise.all(e._promises).then(function(){return e._promises.length=0,Gr.setLoading(e,!1),e})})}var KN=o0;var w_e=Vo(Hq(),1);var D_e;typeof DOMParser<"u"&&(D_e=new DOMParser);var Xit=new w_e.default({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),U4=32,x_e=2414016,b_e=1,T_e=16093e3,C_e=.1,Kit=[null,void 0,"http://www.topografix.com/GPX/1/1"],vo={gpx:Kit};function Zit(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function Gq(e,t){let n=QN(e,"id");return n=l(n)?n:Hn(),t.getOrCreateEntity(n)}function Wq(e){let t=A_e(e,"lon"),n=A_e(e,"lat"),i=ZN(e,"ele",vo.gpx);return h.fromDegrees(t,n,i)}function A_e(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function QN(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function c0(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function jq(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function ZN(e,t,n){let i=c0(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Kl(e,t,n){let i=c0(e,t,n);if(l(i))return i.textContent.trim()}function I_e(e){let t=new oc;return t.width=U4,t.height=U4,t.scaleByDistance=new Bt(x_e,b_e,T_e,C_e),t.pixelOffsetScaleByDistance=new Bt(x_e,b_e,T_e,C_e),t.verticalOrigin=new Kn(Rn.BOTTOM),t.image=e,t}function $it(){let e=new Fd;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Wo.FILL_AND_OUTLINE,e}function P_e(e){let t=new ac;return t.width=4,t.material=new qy,t.material.color=l(e)?e:H.RED,t.material.outlineWidth=2,t.material.outlineColor=H.BLACK,t}var E_e={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},$N;typeof document<"u"&&($N=document.createElement("div"));function qq(e,t){let n,i="",o=Object.keys(E_e),r=o.length;for(n=0;n<r;n++){let f=o[n],d=E_e[f];d.value=y(Kl(e,d.tag,vo.gpx),""),l(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!l(i)||i==="")return;i=Xit.link(i),$N.innerHTML=i;let s=$N.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=H.WHITE,c=H.BLACK,u='<div class="cesium-infoBox-description-lighter" style="';return u+="overflow:auto;",u+="word-wrap:break-word;",u+=`background-color:${a.toCssColorString()};`,u+=`color:${c.toCssColorString()};`,u+='">',u+=`${$N.innerHTML}</div>`,$N.innerHTML="",u}function R_e(e,t,n,i){let o=Wq(t),r=Gq(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,U4);r.billboard=I_e(s);let a=Kl(t,"name",vo.gpx);r.name=a,r.label=$it(),r.label.text=a,r.description=qq(t,r),i.clampToGround&&(r.billboard.heightReference=Ye.CLAMP_TO_GROUND,r.label.heightReference=Ye.CLAMP_TO_GROUND)}function Qit(e,t,n,i){let o=Gq(t,n);o.description=qq(t,o);let r=jq(t,"rtept",vo.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)R_e(e,r[a],n,i),s[a]=Wq(r[a]);o.polyline=P_e(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function Jit(e,t,n,i){let o=Gq(t,n);o.description=qq(t,o);let r=jq(t,"trkseg",vo.gpx),s=[],a=[],c,u=!0,f=new _a;for(let d=0;d<r.length;d++)c=eot(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",H.RED,U4);o.billboard=I_e(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=Ye.CLAMP_TO_GROUND),o.availability=new Hr,o.availability.addInterval(new Cn({start:a[0],stop:a[a.length-1]}))}o.polyline=P_e(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function eot(e){let t={positions:[],times:[]},n=jq(e,"trkpt",vo.gpx),i;for(let o=0;o<n.length;o++){let r=Wq(n[o]);t.positions.push(r),i=Kl(n[o],"time",vo.gpx),l(i)&&t.times.push(Z.fromIso8601(i))}return t}function tot(e){let t=c0(e,"metadata",vo.gpx);if(l(t)){let n={name:Kl(t,"name",vo.gpx),desc:Kl(t,"desc",vo.gpx),author:not(t),copyright:oot(t),link:O_e(t),time:Kl(t,"time",vo.gpx),keywords:Kl(t,"keywords",vo.gpx),bounds:rot(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function not(e){let t=c0(e,"author",vo.gpx);if(l(t)){let n={name:Kl(t,"name",vo.gpx),email:iot(t),link:O_e(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function iot(e){let t=c0(e,"email",vo.gpx);if(l(t)){let n=Kl(t,"id",vo.gpx),i=Kl(t,"domain",vo.gpx);return`${n}@${i}`}}function O_e(e){let t=c0(e,"link",vo.gpx);if(l(t)){let n={href:QN(t,"href"),text:Kl(t,"text",vo.gpx),mimeType:Kl(t,"type",vo.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function oot(e){let t=c0(e,"copyright",vo.gpx);if(l(t)){let n={author:QN(t,"author"),year:Kl(t,"year",vo.gpx),license:Kl(t,"license",vo.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function rot(e){let t=c0(e,"bounds",vo.gpx);if(l(t)){let n={minLat:ZN(t,"minlat",vo.gpx),maxLat:ZN(t,"maxlat",vo.gpx),minLon:ZN(t,"minlon",vo.gpx),maxLon:ZN(t,"maxlon",vo.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var S_e={wpt:R_e,rte:Qit,trk:Jit};function sot(e,t,n,i){let o=Object.keys(S_e),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=S_e[a],u=t.childNodes,f=u.length;for(let d=0;d<f;d++){let p=u[d];p.localName===a&&vo.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function v_e(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=QN(o,"version"),s=QN(o,"creator"),a,c=tot(o);l(c)&&(a=c.name),o.localName==="gpx"?sot(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let u,f=i.computeAvailability(),d=f.start,p=f.stop,g=Z.equals(d,He.MINIMUM_VALUE),m=Z.equals(p,He.MAXIMUM_VALUE);if(!g||!m){let b;g&&(b=new Date,b.setHours(0,0,0,0),d=Z.fromDate(b)),m&&(b=new Date,b.setHours(24,0,0,0),p=Z.fromDate(b)),u=new mh,u.startTime=d,u.stopTime=p,u.currentTime=Z.clone(d),u.clockRange=Wr.LOOP_STOP,u.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,u.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(p,d)/60,1),31556900))}let x=!1;return e._name!==a&&(e._name=a,x=!0),e._creator!==s&&(e._creator=s,x=!0),aot(e._metadata,c)&&(e._metadata=c,x=!0),e._version!==r&&(e._version=r,x=!0),u!==e._clock&&(x=!0,e._clock=u),x&&e._changed.raiseEvent(e),Gr.setLoading(e,!1),e}function aot(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function cot(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?Zit(r).then(function(s){let a,c;try{a=D_e.parseFromString(s,"application/xml")}catch(u){c=u.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let u=l(c)?c:a.documentElement.firstChild.nodeValue;throw u||(u=a.body.innerText),new ce(u)}return v_e(e,a,i)}):v_e(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function CS(){this._changed=new me,this._error=new me,this._loading=new me,this._clock=void 0,this._entityCollection=new $s(this),this._entityCluster=new Ou,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new $_}CS.load=function(e,t){return new CS().load(e,t)};Object.defineProperties(CS.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});CS.prototype.update=function(e){return!0};CS.prototype.load=function(e,t){if(!l(e))throw new he("data is required.");t=y(t,y.EMPTY_OBJECT),Gr.setLoading(this,!0);let n=this._name,i=this;return cot(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=Z.equals(s,He.MINIMUM_VALUE),u=Z.equals(a,He.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=Z.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=Z.fromDate(d)),o=new mh,o.startTime=s,o.stopTime=a,o.currentTime=Z.clone(s),o.clockRange=Wr.LOOP_STOP,o.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Gr.setLoading(i,!1),i}).catch(function(o){return Gr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var JN=CS;function lot(e,t){this.position=e,this.headingPitchRoll=t}var eF=lot;var mye=Vo(Hq(),1),EF=Vo(au(),1);function Y4(e){return X4(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function X4(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?X4(n):n),[])}var M_e=[0,1,2,3].concat(...Y4([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function mr(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,m,x,b=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,b++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,m=0,d>=c&&(m=a[d-c]),x=r[d*2],o.opt_len+=x*(g+m),s&&(o.static_len+=x*(s[d*2+1]+m)));if(b!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,b-=2}while(b>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c<a;c++)r[c*2]!==0?(o.heap[++o.heap_len]=f=c,o.depth[c]=0):r[c*2+1]=0;for(;o.heap_len<2;)d=o.heap[++o.heap_len]=f<2?++f:0,r[d*2]=1,o.depth[d]=0,o.opt_len--,s&&(o.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(o.heap_len/2);c>=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}mr._length_code=[0,1,2,3,4,5,6,7].concat(...Y4([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));mr.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];mr.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];mr.d_code=function(e){return e<256?M_e[e]:M_e[256+(e>>>7)]};mr.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];mr.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];mr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];mr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function ka(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var uot=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],fot=Y4([[144,8],[112,9],[24,7],[8,8]]);ka.static_ltree=X4(uot.map((e,t)=>[e,fot[t]]));var dot=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],hot=Y4([[30,5]]);ka.static_dtree=X4(dot.map((e,t)=>[e,hot[t]]));ka.static_l_desc=new ka(ka.static_ltree,mr.extra_lbits,257,286,15);ka.static_d_desc=new ka(ka.static_dtree,mr.extra_dbits,0,30,15);ka.static_bl_desc=new ka(null,mr.extra_blbits,0,19,7);var mot=9,pot=8;function Vm(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var N_e=0,j4=1,TT=2,Sh=[new Vm(0,0,0,0,N_e),new Vm(4,4,8,4,j4),new Vm(4,5,16,8,j4),new Vm(4,6,32,32,j4),new Vm(4,4,16,16,TT),new Vm(8,16,32,32,TT),new Vm(8,16,128,128,TT),new Vm(8,32,128,256,TT),new Vm(32,128,258,1024,TT),new Vm(32,258,258,4096,TT)],z4=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],rd=0,H4=1,tF=2,G4=3,_ot=32,Yq=42,W4=113,nF=666,Xq=8,got=0,Kq=1,yot=2,wr=3,q4=258,zu=q4+wr+1;function L_e(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function xot(){let e=this,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x,b,T,C,A,E,v,D,O,R,M,N,_,S,w,I,L,B,U,V=new mr,G=new mr,k=new mr;e.depth=[];let W,q,J,j,K,Q;e.bl_count=[],e.heap=[],L=[],B=[],U=[];function de(){u=2*r,d[g-1]=0;for(let Le=0;Le<g-1;Le++)d[Le]=0;N=Sh[_].max_lazy,w=Sh[_].good_length,I=Sh[_].nice_length,M=Sh[_].max_chain,v=0,T=0,O=0,C=R=wr-1,E=0,p=0}function ye(){let Le;for(Le=0;Le<286;Le++)L[Le*2]=0;for(Le=0;Le<30;Le++)B[Le*2]=0;for(Le=0;Le<19;Le++)U[Le*2]=0;L[256*2]=1,e.opt_len=e.static_len=0,q=J=0}function ae(){V.dyn_tree=L,V.stat_desc=ka.static_l_desc,G.dyn_tree=B,G.stat_desc=ka.static_d_desc,k.dyn_tree=U,k.stat_desc=ka.static_bl_desc,K=0,Q=0,j=8,ye()}e.pqdownheap=function(Le,ot){let qe=e.heap,Xe=qe[ot],dt=ot<<1;for(;dt<=e.heap_len&&(dt<e.heap_len&&L_e(Le,qe[dt+1],qe[dt],e.depth)&&dt++,!L_e(Le,Xe,qe[dt],e.depth));)qe[ot]=qe[dt],ot=dt,dt<<=1;qe[ot]=Xe};function _e(Le,ot){let qe=-1,Xe,dt=Le[0*2+1],Gt=0,wn=7,Io=4;dt===0&&(wn=138,Io=3),Le[(ot+1)*2+1]=65535;for(let Jn=0;Jn<=ot;Jn++)Xe=dt,dt=Le[(Jn+1)*2+1],!(++Gt<wn&&Xe==dt)&&(Gt<Io?U[Xe*2]+=Gt:Xe!==0?(Xe!=qe&&U[Xe*2]++,U[16*2]++):Gt<=10?U[17*2]++:U[18*2]++,Gt=0,qe=Xe,dt===0?(wn=138,Io=3):Xe==dt?(wn=6,Io=3):(wn=7,Io=4))}function xe(){let Le;for(_e(L,V.max_code),_e(B,G.max_code),k.build_tree(e),Le=18;Le>=3&&U[mr.bl_order[Le]*2+1]===0;Le--);return e.opt_len+=3*(Le+1)+5+5+4,Le}function De(Le){e.pending_buf[e.pending++]=Le}function Ae(Le){De(Le&255),De(Le>>>8&255)}function ke(Le){De(Le>>8&255),De(Le&255&255)}function ze(Le,ot){let qe,Xe=ot;Q>16-Xe?(qe=Le,K|=qe<<Q&65535,Ae(K),K=qe>>>16-Q,Q+=Xe-16):(K|=Le<<Q&65535,Q+=Xe)}function tt(Le,ot){let qe=Le*2;ze(ot[qe]&65535,ot[qe+1]&65535)}function wt(Le,ot){let qe,Xe=-1,dt,Gt=Le[0*2+1],wn=0,Io=7,Jn=4;for(Gt===0&&(Io=138,Jn=3),qe=0;qe<=ot;qe++)if(dt=Gt,Gt=Le[(qe+1)*2+1],!(++wn<Io&&dt==Gt)){if(wn<Jn)do tt(dt,U);while(--wn!==0);else dt!==0?(dt!=Xe&&(tt(dt,U),wn--),tt(16,U),ze(wn-3,2)):wn<=10?(tt(17,U),ze(wn-3,3)):(tt(18,U),ze(wn-11,7));wn=0,Xe=dt,Gt===0?(Io=138,Jn=3):dt==Gt?(Io=6,Jn=3):(Io=7,Jn=4)}}function pt(Le,ot,qe){let Xe;for(ze(Le-257,5),ze(ot-1,5),ze(qe-4,4),Xe=0;Xe<qe;Xe++)ze(U[mr.bl_order[Xe]*2+1],3);wt(L,Le-1),wt(B,ot-1)}function Be(){Q==16?(Ae(K),K=0,Q=0):Q>=8&&(De(K&255),K>>>=8,Q-=8)}function Yt(){ze(Kq<<1,3),tt(256,ka.static_ltree),Be(),1+j+10-Q<9&&(ze(Kq<<1,3),tt(256,ka.static_ltree),Be()),j=7}function Ct(Le,ot){let qe,Xe,dt;if(e.dist_buf[q]=Le,e.lc_buf[q]=ot&255,q++,Le===0?L[ot*2]++:(J++,Le--,L[(mr._length_code[ot]+256+1)*2]++,B[mr.d_code(Le)*2]++),!(q&8191)&&_>2){for(qe=q*8,Xe=v-T,dt=0;dt<30;dt++)qe+=B[dt*2]*(5+mr.extra_dbits[dt]);if(qe>>>=3,J<Math.floor(q/2)&&qe<Math.floor(Xe/2))return!0}return q==W-1}function lt(Le,ot){let qe,Xe,dt=0,Gt,wn;if(q!==0)do qe=e.dist_buf[dt],Xe=e.lc_buf[dt],dt++,qe===0?tt(Xe,Le):(Gt=mr._length_code[Xe],tt(Gt+256+1,Le),wn=mr.extra_lbits[Gt],wn!==0&&(Xe-=mr.base_length[Gt],ze(Xe,wn)),qe--,Gt=mr.d_code(qe),tt(Gt,ot),wn=mr.extra_dbits[Gt],wn!==0&&(qe-=mr.base_dist[Gt],ze(qe,wn)));while(dt<q);tt(256,Le),j=Le[256*2+1]}function tn(){Q>8?Ae(K):Q>0&&De(K&255),K=0,Q=0}function Ce(Le,ot,qe){tn(),j=8,qe&&(Ae(ot),Ae(~ot)),e.pending_buf.set(c.subarray(Le,Le+ot),e.pending),e.pending+=ot}function Te(Le,ot,qe){ze((got<<1)+(qe?1:0),3),Ce(Le,ot,!0)}function it(Le,ot,qe){let Xe,dt,Gt=0;_>0?(V.build_tree(e),G.build_tree(e),Gt=xe(),Xe=e.opt_len+3+7>>>3,dt=e.static_len+3+7>>>3,dt<=Xe&&(Xe=dt)):Xe=dt=ot+5,ot+4<=Xe&&Le!=-1?Te(Le,ot,qe):dt==Xe?(ze((Kq<<1)+(qe?1:0),3),lt(ka.static_ltree,ka.static_dtree)):(ze((yot<<1)+(qe?1:0),3),pt(V.max_code+1,G.max_code+1,Gt+1),lt(L,B)),ye(),qe&&tn()}function Wi(Le){it(T>=0?T:-1,v-T,Le),T=v,t.flush_pending()}function ut(){let Le,ot,qe,Xe;do{if(Xe=u-O-v,Xe===0&&v===0&&O===0)Xe=r;else if(Xe==-1)Xe--;else if(v>=r+r-zu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,T-=r,Le=g,qe=Le;do ot=d[--qe]&65535,d[qe]=ot>=r?ot-r:0;while(--Le!==0);Le=r,qe=Le;do ot=f[--qe]&65535,f[qe]=ot>=r?ot-r:0;while(--Le!==0);Xe+=r}if(t.avail_in===0)return;Le=t.read_buf(c,v+O,Xe),O+=Le,O>=wr&&(p=c[v]&255,p=(p<<b^c[v+1]&255)&x)}while(O<zu&&t.avail_in!==0)}function go(Le){let ot=65535,qe;for(ot>i-5&&(ot=i-5);;){if(O<=1){if(ut(),O===0&&Le==0)return rd;if(O===0)break}if(v+=O,O=0,qe=T+ot,(v===0||v>=qe)&&(O=v-qe,v=qe,Wi(!1),t.avail_out===0)||v-T>=r-zu&&(Wi(!1),t.avail_out===0))return rd}return Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Yo(Le){let ot=M,qe=v,Xe,dt,Gt=R,wn=v>r-zu?v-(r-zu):0,Io=I,Jn=a,ls=v+q4,Xa=c[qe+Gt-1],Yr=c[qe+Gt];R>=w&&(ot>>=2),Io>O&&(Io=O);do if(Xe=Le,!(c[Xe+Gt]!=Yr||c[Xe+Gt-1]!=Xa||c[Xe]!=c[qe]||c[++Xe]!=c[qe+1])){qe+=2,Xe++;do;while(c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&c[++qe]==c[++Xe]&&qe<ls);if(dt=q4-(ls-qe),qe=ls-q4,dt>Gt){if(D=Le,Gt=dt,dt>=Io)break;Xa=c[qe+Gt-1],Yr=c[qe+Gt]}}while((Le=f[Le&Jn]&65535)>wn&&--ot!==0);return Gt<=O?Gt:O}function Ya(Le){let ot=0,qe;for(;;){if(O<zu){if(ut(),O<zu&&Le==0)return rd;if(O===0)break}if(O>=wr&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v),ot!==0&&(v-ot&65535)<=r-zu&&S!=2&&(C=Yo(ot)),C>=wr)if(qe=Ct(v-D,C-wr),O-=C,C<=N&&O>=wr){C--;do v++,p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--C!==0);v++}else v+=C,C=0,p=c[v]&255,p=(p<<b^c[v+1]&255)&x;else qe=Ct(0,c[v]&255),O--,v++;if(qe&&(Wi(!1),t.avail_out===0))return rd}return Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Ir(Le){let ot=0,qe,Xe;for(;;){if(O<zu){if(ut(),O<zu&&Le==0)return rd;if(O===0)break}if(O>=wr&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v),R=C,A=D,C=wr-1,ot!==0&&R<N&&(v-ot&65535)<=r-zu&&(S!=2&&(C=Yo(ot)),C<=5&&(S==1||C==wr&&v-D>4096)&&(C=wr-1)),R>=wr&&C<=R){Xe=v+O-wr,qe=Ct(v-1-A,R-wr),O-=R-1,R-=2;do++v<=Xe&&(p=(p<<b^c[v+(wr-1)]&255)&x,ot=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--R!==0);if(E=0,C=wr-1,v++,qe&&(Wi(!1),t.avail_out===0))return rd}else if(E!==0){if(qe=Ct(0,c[v-1]&255),qe&&Wi(!1),v++,O--,t.avail_out===0)return rd}else E=1,v++,O--}return E!==0&&(qe=Ct(0,c[v-1]&255),E=0),Wi(Le==4),t.avail_out===0?Le==4?tF:rd:Le==4?G4:H4}function Cs(Le){return Le.total_in=Le.total_out=0,Le.msg=null,e.pending=0,e.pending_out=0,n=W4,o=0,ae(),de(),0}e.deflateInit=function(Le,ot,qe,Xe,dt,Gt){return Xe||(Xe=Xq),dt||(dt=pot),Gt||(Gt=0),Le.msg=null,ot==-1&&(ot=6),dt<1||dt>mot||Xe!=Xq||qe<9||qe>15||ot<0||ot>9||Gt<0||Gt>2?-2:(Le.dstate=e,s=qe,r=1<<s,a=r-1,m=dt+7,g=1<<m,x=g-1,b=Math.floor((m+wr-1)/wr),c=new Uint8Array(r*2),f=[],d=[],W=1<<dt+6,e.pending_buf=new Uint8Array(W*4),i=W*4,e.dist_buf=new Uint16Array(W),e.lc_buf=new Uint8Array(W),_=ot,S=Gt,Cs(Le))},e.deflateEnd=function(){return n!=Yq&&n!=W4&&n!=nF?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==W4?-3:0)},e.deflateParams=function(Le,ot,qe){let Xe=0;return ot==-1&&(ot=6),ot<0||ot>9||qe<0||qe>2?-2:(Sh[_].func!=Sh[ot].func&&Le.total_in!==0&&(Xe=Le.deflate(1)),_!=ot&&(_=ot,N=Sh[_].max_lazy,w=Sh[_].good_length,I=Sh[_].nice_length,M=Sh[_].max_chain),S=qe,Xe)},e.deflateSetDictionary=function(Le,ot,qe){let Xe=qe,dt,Gt=0;if(!ot||n!=Yq)return-2;if(Xe<wr)return 0;for(Xe>r-zu&&(Xe=r-zu,Gt=qe-Xe),c.set(ot.subarray(Gt,Gt+Xe),0),v=Xe,T=Xe,p=c[0]&255,p=(p<<b^c[1]&255)&x,dt=0;dt<=Xe-wr;dt++)p=(p<<b^c[dt+(wr-1)]&255)&x,f[dt&a]=d[p],d[p]=dt;return 0},e.deflate=function(Le,ot){let qe,Xe,dt,Gt,wn;if(ot>4||ot<0)return-2;if(!Le.next_out||!Le.next_in&&Le.avail_in!==0||n==nF&&ot!=4)return Le.msg=z4[4],-2;if(Le.avail_out===0)return Le.msg=z4[7],-5;if(t=Le,Gt=o,o=ot,n==Yq&&(Xe=Xq+(s-8<<4)<<8,dt=(_-1&255)>>1,dt>3&&(dt=3),Xe|=dt<<6,v!==0&&(Xe|=_ot),Xe+=31-Xe%31,n=W4,ke(Xe)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&&ot<=Gt&&ot!=4)return t.msg=z4[7],-5;if(n==nF&&t.avail_in!==0)return Le.msg=z4[7],-5;if(t.avail_in!==0||O!==0||ot!=0&&n!=nF){switch(wn=-1,Sh[_].func){case N_e:wn=go(ot);break;case j4:wn=Ya(ot);break;case TT:wn=Ir(ot);break;default:}if((wn==tF||wn==G4)&&(n=nF),wn==rd||wn==tF)return t.avail_out===0&&(o=-1),0;if(wn==H4){if(ot==1)Yt();else if(Te(0,0,!1),ot==3)for(qe=0;qe<g;qe++)d[qe]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return ot!=4?0:1}}function F_e(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}F_e.prototype={deflateInit(e,t){let n=this;return n.dstate=new xot,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf(e,t,n){let i=this,o=i.avail_in;return o>n&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function B_e(e){let t=this,n=new F_e,i=bot(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,m=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(r)):m.push(r.subarray(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return m.length>1?(f=new Uint8Array(g),m.forEach(function(x){f.set(x,p),p+=x.length})):f=m[0]?new Uint8Array(m[0]):new Uint8Array,f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function bot(e){return e+5*(Math.floor(e/16383)+1)}var Hu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],ige=1440,Tot=0,Cot=4,Aot=9,Eot=5,Sot=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],vot=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],wot=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],Dot=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],Iot=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],Pot=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],l0=15;function Jq(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,m,x,b,T,C,A){let E,v,D,O,R,M,N,_,S,w,I,L,B,U,V;w=0,R=d;do i[u[f+w]]++,w++,R--;while(R!==0);if(i[0]==d)return x[0]=-1,b[0]=0,0;for(_=b[0],M=1;M<=l0&&i[M]===0;M++);for(N=M,_<M&&(_=M),R=l0;R!==0&&i[R]===0;R--);for(D=R,_>R&&(_=R),b[0]=_,U=1<<M;M<R;M++,U<<=1)if((U-=i[M])<0)return-3;if((U-=i[R])<0)return-3;for(i[R]+=U,s[1]=M=0,w=1,B=2;--R!==0;)s[B]=M+=i[w],B++,w++;R=0,w=0;do(M=u[f+w])!==0&&(A[s[M]++]=R),w++;while(++R<d);for(d=s[D],s[0]=R=0,w=0,O=-1,L=-_,r[0]=0,I=0,V=0;N<=D;N++)for(E=i[N];E--!==0;){for(;N>L+_;){if(O++,L+=_,V=D-L,V=V>_?_:V,(v=1<<(M=N-L))>E+1&&(v-=E+1,B=N,M<V))for(;++M<V&&!((v<<=1)<=i[++B]);)v-=i[B];if(V=1<<M,C[0]+V>ige)return-3;r[O]=I=C[0],C[0]+=V,O!==0?(s[O]=R,o[0]=M,o[1]=_,M=R>>>L-_,o[2]=I-r[O-1]-M,T.set(o,(r[O-1]+M)*3)):x[0]=I}for(o[1]=N-L,w>=d?o[0]=192:A[w]<p?(o[0]=A[w]<256?0:96,o[2]=A[w++]):(o[0]=m[A[w]-p]+16+64,o[2]=g[A[w++]-p]),v=1<<N-L,M=R>>>L;M<V;M+=v)T.set(o,(I+M)*3);for(M=1<<N-1;R&M;M>>>=1)R^=M;for(R^=M,S=(1<<L)-1;(R&S)!=s[O];)O--,L-=_,S=(1<<L)-1}return U!==0&&D!=1?-5:0}function c(u){let f;for(t||(t=[],n=[],i=new Int32Array(l0+1),o=[],r=new Int32Array(l0),s=new Int32Array(l0+1)),n.length<u&&(n=[]),f=0;f<u;f++)n[f]=0;for(f=0;f<l0+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,l0),0),s.set(i.subarray(0,l0+1),0)}e.inflate_trees_bits=function(u,f,d,p,g){let m;return c(19),t[0]=0,m=a(u,0,19,19,null,null,d,f,p,t,n),m==-3?g.msg="oversubscribed dynamic bit lengths tree":(m==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",m=-3),m},e.inflate_trees_dynamic=function(u,f,d,p,g,m,x,b,T){let C;return c(288),t[0]=0,C=a(d,0,u,257,wot,Dot,m,p,b,t,n),C!=0||p[0]===0?(C==-3?T.msg="oversubscribed literal/length tree":C!=-4&&(T.msg="incomplete literal/length tree",C=-3),C):(c(288),C=a(d,u,f,0,Iot,Pot,x,g,b,t,n),C!=0||g[0]===0&&u>257?(C==-3?T.msg="oversubscribed distance tree":C==-5?(T.msg="incomplete distance tree",C=-3):C!=-4&&(T.msg="empty distance tree with lengths",C=-3),C):0)}}Jq.inflate_trees_fixed=function(e,t,n,i){return e[0]=Aot,t[0]=Eot,n[0]=Sot,i[0]=vot,0};var K4=0,k_e=1,V_e=2,U_e=3,z_e=4,H_e=5,G_e=6,Zq=7,W_e=8,Z4=9;function Rot(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,m=0;function x(b,T,C,A,E,v,D,O){let R,M,N,_,S,w,I,L,B,U,V,G,k,W,q,J;I=O.next_in_index,L=O.avail_in,S=D.bitb,w=D.bitk,B=D.write,U=B<D.read?D.read-B-1:D.end-B,V=Hu[b],G=Hu[T];do{for(;w<20;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;if(R=S&V,M=C,N=A,J=(N+R)*3,(_=M[J])===0){S>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],U--;continue}do{if(S>>=M[J+1],w-=M[J+1],_&16){for(_&=15,k=M[J+2]+(S&Hu[_]),S>>=_,w-=_;w<15;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;R=S&G,M=E,N=v,J=(N+R)*3,_=M[J];do if(S>>=M[J+1],w-=M[J+1],_&16){for(_&=15;w<_;)L--,S|=(O.read_byte(I++)&255)<<w,w+=8;if(W=M[J+2]+(S&Hu[_]),S>>=_,w-=_,U-=k,B>=W)q=B-W,B-q>0&&2>B-q?(D.win[B++]=D.win[q++],D.win[B++]=D.win[q++],k-=2):(D.win.set(D.win.subarray(q,q+2),B),B+=2,q+=2,k-=2);else{q=B-W;do q+=D.end;while(q<0);if(_=D.end-q,k>_){if(k-=_,B-q>0&&_>B-q)do D.win[B++]=D.win[q++];while(--_!==0);else D.win.set(D.win.subarray(q,q+_),B),B+=_,q+=_,_=0;q=0}}if(B-q>0&&k>B-q)do D.win[B++]=D.win[q++];while(--k!==0);else D.win.set(D.win.subarray(q,q+k),B),B+=k,q+=k,k=0;break}else if(!(_&64))R+=M[J+2],R+=S&Hu[_],J=(N+R)*3,_=M[J];else return O.msg="invalid distance code",k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3;while(!0);break}if(_&64)return _&32?(k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,1):(O.msg="invalid literal/length code",k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3);if(R+=M[J+2],R+=S&Hu[_],J=(N+R)*3,(_=M[J])===0){S>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],U--;break}}while(!0)}while(U>=258&&L>=10);return k=O.avail_in-L,k=w>>3<k?w>>3:k,L+=k,I-=k,w-=k<<3,D.bitb=S,D.bitk=w,O.avail_in=L,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,0}e.init=function(b,T,C,A,E,v){t=K4,u=b,f=T,d=C,p=A,g=E,m=v,i=null},e.proc=function(b,T,C){let A,E,v,D=0,O=0,R=0,M,N,_,S;for(R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N;;)switch(t){case K4:if(_>=258&&M>=10&&(b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,C=x(u,f,d,p,g,m,b,T),R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,N=b.write,_=N<b.read?b.read-N-1:b.end-N,C!=0)){t=C==1?Zq:Z4;break}r=u,i=d,o=p,t=k_e;case k_e:for(A=r;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(E=(o+(D&Hu[A]))*3,D>>>=i[E+1],O-=i[E+1],v=i[E],v===0){s=i[E+2],t=G_e;break}if(v&16){a=v&15,n=i[E+2],t=V_e;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}if(v&32){t=Zq;break}return t=Z4,T.msg="invalid literal/length code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case V_e:for(A=a;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}n+=D&Hu[A],D>>=A,O-=A,r=f,i=g,o=m,t=U_e;case U_e:for(A=r;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(E=(o+(D&Hu[A]))*3,D>>=i[E+1],O-=i[E+1],v=i[E],v&16){a=v&15,c=i[E+2],t=z_e;break}if(!(v&64)){r=v,o=E/3+i[E+2];break}return t=Z4,T.msg="invalid distance code",C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case z_e:for(A=a;O<A;){if(M!==0)C=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}c+=D&Hu[A],D>>=A,O-=A,t=H_e;case H_e:for(S=N-c;S<0;)S+=b.end;for(;n!==0;){if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);b.win[N++]=b.win[S++],_--,S==b.end&&(S=0),n--}t=K4;break;case G_e:if(_===0&&(N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0&&(b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,N==b.end&&b.read!==0&&(N=0,_=N<b.read?b.read-N-1:b.end-N),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);C=0,b.win[N++]=s,_--,t=K4;break;case Zq:if(O>7&&(O-=8,M++,R--),b.write=N,C=b.inflate_flush(T,C),N=b.write,_=N<b.read?b.read-N-1:b.end-N,b.read!=b.write)return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);t=W_e;case W_e:return C=1,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);case Z4:return C=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C);default:return C=-2,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=N,b.inflate_flush(T,C)}},e.free=function(){}}var j_e=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],AS=0,$q=1,q_e=2,Y_e=3,X_e=4,K_e=5,$4=6,Q4=7,Z_e=8,CT=9;function Oot(e,t){let n=this,i=AS,o=0,r=0,s=0,a,c=[0],u=[0],f=new Rot,d=0,p=new Int32Array(ige*3),g=0,m=new Jq;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,b){b&&(b[0]=g),i==$4&&f.free(x),i=AS,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,b){let T,C,A;return C=x.next_out_index,A=n.read,T=(A<=n.write?n.write:n.end)-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T,A==n.end&&(A=0,n.write==n.end&&(n.write=0),T=n.write-A,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(A,A+T),C),C+=T,A+=T),x.next_out_index=C,n.read=A,b},n.proc=function(x,b){let T,C,A,E,v,D,O,R;for(E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let M,N,_,S,w,I,L,B;switch(i){case AS:for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}switch(T=C&7,d=T&1,T>>>1){case 0:C>>>=3,A-=3,T=A&7,C>>>=T,A-=T,i=$q;break;case 1:M=[],N=[],_=[[]],S=[[]],Jq.inflate_trees_fixed(M,N,_,S),f.init(M[0],N[0],_[0],0,S[0],0),C>>>=3,A-=3,i=$4;break;case 2:C>>>=3,A-=3,i=Y_e;break;case 3:return C>>>=3,A-=3,i=CT,x.msg="invalid block type",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}break;case $q:for(;A<32;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if((~C>>>16&65535)!=(C&65535))return i=CT,x.msg="invalid stored block lengths",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);o=C&65535,C=A=0,i=o!==0?q_e:d!==0?Q4:AS;break;case q_e:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0&&(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0)))return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(b=0,T=o,T>v&&(T=v),T>O&&(T=O),n.win.set(x.read_buf(E,T),D),E+=T,v-=T,D+=T,O-=T,(o-=T)!==0)break;i=d!==0?Q4:AS;break;case Y_e:for(;A<14;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(r=T=C&16383,(T&31)>29||(T>>5&31)>29)return i=CT,x.msg="too many length or distance symbols",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);if(T=258+(T&31)+(T>>5&31),!a||a.length<T)a=[];else for(R=0;R<T;R++)a[R]=0;C>>>=14,A-=14,s=0,i=X_e;case X_e:for(;s<4+(r>>>10);){for(;A<3;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}a[j_e[s++]]=C&7,C>>>=3,A-=3}for(;s<19;)a[j_e[s++]]=0;if(c[0]=7,T=m.inflate_trees_bits(a,c,u,p,x),T!=0)return b=T,b==-3&&(a=null,i=CT),n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);s=0,i=K_e;case K_e:for(;T=r,!(s>=258+(T&31)+(T>>5&31));){let U,V;for(T=c[0];A<T;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(T=p[(u[0]+(C&Hu[T]))*3+1],V=p[(u[0]+(C&Hu[T]))*3+2],V<16)C>>>=T,A-=T,a[s++]=V;else{for(R=V==18?7:V-14,U=V==18?11:3;A<T+R;){if(v!==0)b=0;else return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);v--,C|=(x.read_byte(E++)&255)<<A,A+=8}if(C>>>=T,A-=T,U+=C&Hu[R],C>>>=R,A-=R,R=s,T=r,R+U>258+(T&31)+(T>>5&31)||V==16&&R<1)return a=null,i=CT,x.msg="invalid bit length repeat",b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);V=V==16?a[R-1]:0;do a[R++]=V;while(--U!==0);s=R}}if(u[0]=-1,w=[],I=[],L=[],B=[],w[0]=9,I[0]=6,T=r,T=m.inflate_trees_dynamic(257+(T&31),1+(T>>5&31),a,w,I,L,B,p,x),T!=0)return T==-3&&(a=null,i=CT),b=T,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);f.init(w[0],I[0],p,L[0],p,B[0]),i=$4;case $4:if(n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,(b=f.proc(n,x,b))!=1)return n.inflate_flush(x,b);if(b=0,f.free(x),E=x.next_in_index,v=x.avail_in,C=n.bitb,A=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=AS;break}i=Q4;case Q4:if(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);i=Z_e;case Z_e:return b=1,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);case CT:return b=-3,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b);default:return b=-2,n.bitb=C,n.bitk=A,x.avail_in=v,x.total_in+=E-x.next_in_index,x.next_in_index=E,n.write=D,n.inflate_flush(x,b)}}},n.free=function(x){n.reset(x,null),n.win=null,p=null},n.set_dictionary=function(x,b,T){n.win.set(x.subarray(b,b+T),0),n.read=n.write=T},n.sync_point=function(){return i==$q?1:0}}var Mot=32,Lot=8,Not=0,$_e=1,Q_e=2,J_e=3,ege=4,tge=5,Qq=6,iF=7,nge=12,u0=13,Fot=[0,0,255,255];function Bot(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=iF,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new Oot(n,1<<i),t(n),0)},e.inflate=function(n,i){let o,r;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==Cot?-5:0,o=-5;;)switch(s.mode){case Not:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=Lot){s.mode=u0,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=u0,n.msg="invalid win size",s.marker=5;break}s.mode=$_e;case $_e:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=u0,n.msg="incorrect header check",s.marker=5;break}if(!(r&Mot)){s.mode=iF;break}s.mode=Q_e;case Q_e:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=J_e;case J_e:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=ege;case ege:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=tge;case tge:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=Qq,2);case Qq:return s.mode=u0,n.msg="need dictionary",s.marker=0,-2;case iF:if(o=s.blocks.proc(n,o),o==-3){s.mode=u0,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=nge;case nge:return n.avail_in=0,1;case u0:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=Qq)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,r=o-s),a.blocks.set_dictionary(i,r,s),a.mode=iF,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=u0&&(c.mode=u0,c.marker=0),(i=n.avail_in)===0)return-5;for(o=n.next_in_index,r=c.marker;i!==0&&r<4;)n.read_byte(o)==Fot[r]?r++:n.read_byte(o)!==0?r=0:r=4-r,o++,i--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=i,c.marker=r,r!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=iF,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function oge(){}oge.prototype={inflateInit(e){let t=this;return t.istate=new Bot,e||(e=15),t.istate.inflateInit(t,e)},inflate(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte(e){return this.next_in[e]},read_buf(e,t){return this.next_in.subarray(e,e+t)}};function rge(e){let t=this,n=new oge,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=Tot,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let u=[],f,d,p=0,g=0,m=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(o),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?u.push(new Uint8Array(r)):u.push(r.subarray(0,n.next_out_index))),m+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(m),u.forEach(function(x){d.set(x,g),g+=x.length})):d=u[0]?new Uint8Array(u[0]):new Uint8Array,d}},t.flush=function(){n.inflateEnd()}}var ES="/",eY=new Date(2107,11,31),tY=new Date(1980,0,1),Ri=void 0,Gu="undefined",J_="function";var oF=class{constructor(t){return class extends null{constructor(n,i){let o=new t(i);super({transform(r,s){s.enqueue(o.append(r))},flush(r){let s=o.flush();s&&r.enqueue(s)}})}}}};var kot=64,sge=2;try{typeof navigator!=Gu&&navigator.hardwareConcurrency&&(sge=navigator.hardwareConcurrency)}catch{}var Vot={chunkSize:512*1024,maxWorkers:sge,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Ri,CompressionStreamNative:typeof CompressionStream!=Gu&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=Gu&&DecompressionStream},d0=Object.assign({},Vot);function rF(){return d0}function J4(e){return Math.max(e.chunkSize,kot)}function SS(e){let{baseURL:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,Deflate:a,Inflate:c,CompressionStream:u,DecompressionStream:f,workerScripts:d}=e;if(f0("baseURL",t),f0("chunkSize",n),f0("maxWorkers",i),f0("terminateWorkerTimeout",o),f0("useCompressionStream",r),f0("useWebWorkers",s),a&&(d0.CompressionStream=new oF(a)),c&&(d0.DecompressionStream=new oF(c)),f0("CompressionStream",u),f0("DecompressionStream",f),d!==Ri){let{deflate:p,inflate:g}=d;if((p||g)&&(d0.workerScripts||(d0.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");d0.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");d0.workerScripts.inflate=g}}}function f0(e,t){t!==Ri&&(d0[e]=t)}var age=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;age[e]=t}var eg=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^age[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var sF=class extends null{constructor(){let t,n=new eg;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};function vS(e){if(typeof TextEncoder==Gu){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var al={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=al.getPartial(n);return i===32?e.concat(t):al._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+al.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=al.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=al.getPartial(o);return i.push(al.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},aF={bytes:{fromBits(e){let n=al.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)r&3||(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(al.partial(8*(n&3),i)),t}}},cge={};cge.sha1=class{constructor(e){let t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){let e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){let t=this;typeof e=="string"&&(e=aF.utf8String.toBits(e));let n=t._buffer=al.concat(t._buffer,e),i=t._length,o=t._length=i+al.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=al.concat(t,[al.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<<e|t>>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var nY={};nY.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let m=0;m<4;m++)e[m][f]=g=g<<24^g>>>8,t[m][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],m=e[t?1:3]^n[3],x=4,b,T,C;for(let A=0;A<i;A++)b=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^u[m&255]^n[x],T=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^u[d&255]^n[x+1],C=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^u[p&255]^n[x+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[x+3],x+=4,d=b,p=T,g=C;for(let A=0;A<4;A++)o[t?3&-A:A]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[m&255]^n[x++],b=d,d=p,p=g,g=m,m=b;return o}};var lge={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},iY={};iY.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=al.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return al.clamp(t,o)}};var h0={importKey(e){return new h0.hmacSha1(aF.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=al;for(t=aF.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)d.setInt32(p,r[a]),p+=4}return f.slice(0,i/8)}};h0.hmacSha1=class{constructor(e){let t=this,n=t._hash=cge.sha1,i=[[],[]];t._baseHash=[new n,new n];let o=t._baseHash[0].blockSize/32;e.length>o&&(e=new n().update(e).finalize());for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var Uot=typeof crypto!=Gu&&typeof crypto.getRandomValues==J_,m0="Invalid password",AT="Invalid signature",tg="zipjs-abort-check-password";function eH(e){return Uot?crypto.getRandomValues(e):lge.getRandomValues(e)}var wS=16,zot="raw",dge={name:"PBKDF2"},Hot={name:"HMAC"},Got="SHA-1",Wot=Object.assign({hash:Hot},dge),oY=Object.assign({iterations:1e3,hash:{name:Got}},dge),jot=["deriveBits"],lF=[8,12,16],cF=[16,24,32],p0=10,qot=[0,0,0,0],iH=typeof crypto!=Gu,dF=iH&&crypto.subtle,hge=iH&&typeof dF!=Gu,Um=aF.bytes,Yot=nY.aes,Xot=iY.ctrGladman,Kot=h0.hmacSha1,uge=iH&&hge&&typeof dF.importKey==J_,fge=iH&&hge&&typeof dF.deriveBits==J_,tH=class extends null{constructor({password:t,rawPassword:n,signed:i,encryptionStrength:o,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:_ge(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:u,strength:f,resolveReady:d,ready:p}=c;u?(await Zot(c,f,u,sd(s,0,lF[f]+2)),s=sd(s,lF[f]+2),r?a.error(new Error(tg)):d()):await p;let g=new Uint8Array(s.length-p0-(s.length-p0)%wS);a.enqueue(mge(c,s,g,0,p0,!0))},async flush(s){let{signed:a,ctr:c,hmac:u,pending:f,ready:d}=this;if(u&&c){await d;let p=sd(f,0,f.length-p0),g=sd(f,f.length-p0),m=new Uint8Array;if(p.length){let x=fF(Um,p);u.update(x);let b=c.update(x);m=uF(Um,b)}if(a){let x=sd(uF(Um,u.digest()),0,p0);for(let b=0;b<p0;b++)if(x[b]!=g[b])throw new Error(AT)}s.enqueue(m)}}})}},nH=class extends null{constructor({password:t,rawPassword:n,encryptionStrength:i}){let o;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:_ge(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:u,resolveReady:f,ready:d}=a,p=new Uint8Array;c?(p=await $ot(a,u,c),f()):await d;let g=new Uint8Array(p.length+r.length-r.length%wS);g.set(p,0),s.enqueue(mge(a,r,g,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:u}=this;if(a&&s){await u;let f=new Uint8Array;if(c.length){let d=s.update(fF(Um,c));a.update(d),f=uF(Um,d)}o.signature=uF(Um,a.digest()).slice(0,p0),r.enqueue(rY(f,o.signature))}}}),o=this}};function mge(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,u=t.length-o;c.length&&(t=rY(c,t),n=ert(n,u-u%wS));let f;for(f=0;f<=u-wS;f+=wS){let d=fF(Um,sd(t,f,f+wS));r&&a.update(d);let p=s.update(d);r||a.update(p),n.set(uF(Um,p),f+i)}return e.pending=sd(t,f),n}async function Zot(e,t,n,i){let o=await pge(e,t,n,sd(i,0,lF[t])),r=sd(i,lF[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(m0)}async function $ot(e,t,n){let i=eH(new Uint8Array(lF[t])),o=await pge(e,t,n,i);return rY(i,o)}async function pge(e,t,n,i){e.password=null;let o=await Qot(zot,n,Wot,!1,jot),r=await Jot(Object.assign({salt:i},oY),o,8*(cF[t]*2+2)),s=new Uint8Array(r),a=fF(Um,sd(s,0,cF[t])),c=fF(Um,sd(s,cF[t],cF[t]*2)),u=sd(s,cF[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:u},ctr:new Xot(new Yot(a),Array.from(qot)),hmac:new Kot(c)}),u}async function Qot(e,t,n,i,o){if(uge)try{return await dF.importKey(e,t,n,i,o)}catch{return uge=!1,h0.importKey(t)}else return h0.importKey(t)}async function Jot(e,t,n){if(fge)try{return await dF.deriveBits(e,t,n)}catch{return fge=!1,h0.pbkdf2(t,e.salt,oY.iterations,n)}else return h0.pbkdf2(t,e.salt,oY.iterations,n)}function _ge(e,t){return t===Ri?vS(e):t}function rY(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function ert(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function sd(e,t,n){return e.subarray(t,n)}function uF(e,t){return e.fromBits(t)}function fF(e,t){return e.toBits(t)}var DS=12,oH=class extends null{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),bge(this,t)},transform(o,r){let s=this;if(s.password){let a=gge(s,o.subarray(0,DS));if(s.password=null,a[DS-1]!=s.passwordVerification)throw new Error(m0);o=o.subarray(DS)}i?r.error(new Error(tg)):r.enqueue(gge(s,o))}})}},rH=class extends null{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),bge(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=eH(new Uint8Array(DS));c[DS-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(yge(r,c),0),a=DS}else s=new Uint8Array(i.length),a=0;s.set(yge(r,i),a),o.enqueue(s)}})}};function gge(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Tge(e)^t[i],sY(e,n[i]);return n}function yge(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=Tge(e)^t[i],sY(e,t[i]);return n}function bge(e,t){let n=[305419896,591751049,878082192];Object.assign(e,{keys:n,crcKey0:new eg(n[0]),crcKey2:new eg(n[2])});for(let i=0;i<t.length;i++)sY(e,t.charCodeAt(i))}function sY(e,t){let[n,i,o]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),i=xge(Math.imul(xge(i+Cge(n)),134775813)+1),e.crcKey2.append([i>>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function Tge(e){let t=e.keys[2]|2;return Cge(Math.imul(t,t^1)>>>8)}function Cge(e){return e&255}function xge(e){return e&4294967295}var Age="deflate-raw",sH=class extends null{constructor(t,{chunkSize:n,CompressionStream:i,CompressionStreamNative:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:u,level:f}=t,d=this,p,g,m=Ege(super.readable);(!s||c)&&u&&(p=new sF,m=zm(m,p)),r&&(m=vge(m,a,{level:f,chunkSize:n},o,i)),s&&(c?m=zm(m,new rH(t)):(g=new nH(t),m=zm(m,g))),Sge(d,m,()=>{let x;s&&!c&&(x=g.signature),(!s||c)&&u&&(x=new DataView(p.value.buffer).getUint32(0)),d.signature=x})}},aH=class extends null{constructor(t,{chunkSize:n,DecompressionStream:i,DecompressionStreamNative:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:u,useCompressionStream:f}=t,d,p,g=Ege(super.readable);s&&(r?g=zm(g,new oH(t)):(p=new tH(t),g=zm(g,p))),u&&(g=vge(g,f,{chunkSize:n},o,i)),(!s||r)&&a&&(d=new sF,g=zm(g,d)),Sge(this,g,()=>{if((!s||r)&&a){let m=new DataView(d.value.buffer);if(c!=m.getUint32(0,!1))throw new Error(AT)}})}};function Ege(e){return zm(e,new null({transform(t,n){t&&t.length&&n.enqueue(t)}}))}function Sge(e,t,n){t=zm(t,new null({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function vge(e,t,n,i,o){try{let r=t&&i?i:o;e=zm(e,new r(Age,n))}catch{if(t)try{e=zm(e,new o(Age,n))}catch{return e}else return e}return e}function zm(e,t){return e.pipeThrough(t)}var wge="message",Dge="start",Ige="pull",aY="data",Pge="ack",cY="close",uH="deflate",fH="inflate";var cH=class extends null{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(uH)?r=sH:o.startsWith(fH)&&(r=aH);let s=0,a=0,c=new r(t,n),u=super.readable,f=new null({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){Object.assign(i,{inputSize:a})}}),d=new null({transform(p,g){p&&p.length&&(s+=p.length,g.enqueue(p))},flush(){let{signature:p}=c;Object.assign(i,{signature:p,outputSize:s,inputSize:a})}});Object.defineProperty(i,"readable",{get(){return u.pipeThrough(f).pipeThrough(c).pipeThrough(d)}})}},lH=class extends null{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var Mge=typeof Worker!=Gu;var IS=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,scripts:u},f){let{signal:d}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new lH(r.chunkSize)).pipeThrough(new uY(n,s),{signal:d}),writable:i,options:Object.assign({},o),scripts:u,transferStreams:c,terminate(){return new Promise(p=>{let{worker:g,busy:m}=t;g?(m?t.resolveTerminated=p:(g.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,f(t)}}),(a&&Mge?trt:Lge)(t,r)}},uY=class extends null{constructor(t,{onstart:n,onprogress:i,size:o,onend:r}){let s=0;super({async start(){n&&await lY(n,o)},async transform(a,c){s+=a.length,i&&await lY(i,s,o),c.enqueue(a)},async flush(){t.size=s,r&&await lY(r,s)}})}};async function lY(e,...t){try{await e(...t)}catch{}}function Lge(e,t){return{run:()=>nrt(e,t)}}function trt(e,t){let{baseURL:n,chunkSize:i}=t;if(!e.interface){let o;try{o=rrt(e.scripts[0],n,e)}catch{return Mge=!1,Lge(e,t)}Object.assign(e,{worker:o,interface:{run:()=>irt(e,{chunkSize:i})}})}return e.interface}async function nrt({options:e,readable:t,writable:n,onTaskFinished:i},o){try{let r=new cH(e,o);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}finally{i()}}async function irt(e,t){let n,i,o=new Promise((p,g)=>{n=p,i=g});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s,scripts:a}=e,{writable:c,closed:u}=ort(e.writable),f=dH({type:Dge,scripts:a.slice(1),options:s,config:t,readable:r,writable:c},e);f||Object.assign(e,{reader:r.getReader(),writer:c.getWriter()});let d=await o;return f||await c.getWriter().close(),await u,d}function ort(e){let t,n=new Promise(o=>t=o);return{writable:new WritableStream({async write(o){let r=e.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){t()},abort(o){return e.getWriter().abort(o)}}),closed:n}}var Rge=!0,Oge=!0;function rrt(e,t,n){let i={type:"module"},o,r;typeof e==J_&&(e=e());try{o=new URL(e,t)}catch{o=e}if(Rge)try{r=new Worker(o)}catch{Rge=!1,r=new Worker(o,i)}else r=new Worker(o,i);return r.addEventListener(wge,s=>srt(s,n)),r}function dH(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,c.push(e.value)),o&&Oge?(s&&c.push(s),a&&c.push(a)):e.readable=e.writable=null,c.length)try{return t.postMessage(e,c),!0}catch{Oge=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(r){throw n&&n.releaseLock(),i(),r}}async function srt({data:e},t){let{type:n,value:i,messageId:o,result:r,error:s}=e,{reader:a,writer:c,resolveResult:u,rejectResult:f,onTaskFinished:d}=t;try{if(s){let{message:g,stack:m,code:x,name:b}=s,T=new Error(g);Object.assign(T,{stack:m,code:x,name:b}),p(T)}else{if(n==Ige){let{value:g,done:m}=await a.read();dH({type:aY,value:g,done:m,messageId:o},t)}n==aY&&(await c.ready,await c.write(new Uint8Array(i)),dH({type:Pge,messageId:o},t)),n==cY&&p(null,r)}}catch(g){dH({type:cY,messageId:o},t),p(g)}function p(g,m){g?f(g):u(m),c&&c.releaseLock(),d()}}var ET=[],fY=[];var Nge=0;async function hH(e,t){let{options:n,config:i}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,codecType:a,compressed:c,signed:u,encrypted:f}=n,{workerScripts:d,maxWorkers:p}=i;t.transferStreams=o||o===Ri;let g=!c&&!u&&!f&&!t.transferStreams;return t.useWebWorkers=!g&&(r||r===Ri&&i.useWebWorkers),t.scripts=t.useWebWorkers&&d?d[a]:[],n.useCompressionStream=s||s===Ri&&i.useCompressionStream,(await m()).run();async function m(){let b=ET.find(T=>!T.busy);if(b)return Fge(b),new IS(b,e,t,x);if(ET.length<p){let T={indexWorker:Nge};return Nge++,ET.push(T),new IS(T,e,t,x)}else return new Promise(T=>fY.push({resolve:T,stream:e,workerOptions:t}))}function x(b){if(fY.length){let[{resolve:T,stream:C,workerOptions:A}]=fY.splice(0,1);T(new IS(b,C,A,x))}else b.worker?(Fge(b),art(b,t)):ET=ET.filter(T=>T!=b)}}function art(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{ET=ET.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function Fge(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var crt="Writer iterator completed too soon",lrt="text/plain";var urt="Content-Type";var frt=64*1024,mY="writable",PS=class{constructor(){this.size=0}init(){this.initialized=!0}},mH=class extends PS{get readable(){let t=this,{chunkSize:n=frt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this;o.enqueue(await Va(t,r+c,Math.min(n,s-c),a)),c+n>s?o.close():this.chunkOffset+=n}});return i}},dY=class extends PS{constructor(){super();let t=this,n=new WritableStream({write(i){return t.writeUint8Array(i)}});Object.defineProperty(t,mY,{get(){return n}})}writeUint8Array(){}};var pH=class extends dY{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i<Math.floor((r+t.length)/3)*3-r;i++)o+=String.fromCharCode(t[i]);for(;i<t.length;i++)n.pending+=String.fromCharCode(t[i]);o.length>2?n.data+=btoa(o):n.pending=o}getData(){return this.data+btoa(this.pending)}},ng=class extends mH{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||o<i.size?i.blob.slice(t,o):i.blob).arrayBuffer();return s.byteLength>n&&(s=s.slice(t,o)),new Uint8Array(s)}},hF=class extends PS{constructor(t){super();let n=this,i=new null,o=[];t&&o.push([urt,t]),Object.defineProperty(n,mY,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},_H=class extends ng{constructor(t){super(new Blob([t],{type:lrt}))}},gH=class extends hF{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var hY=class extends mH{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;c>=r[a].size;)c-=r[a].size,a++;let u=r[a],f=u.size;if(c+n<=f)s=await Va(u,c,n);else{let d=f-c;s=new Uint8Array(n),s.set(await Va(u,c,d)),s.set(await o.readUint8Array(t+d,n-d,i),d)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},yH=class extends PS{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(f){let{availableSize:d}=i;if(s)f.length>=d?(await c(f.slice(0,d)),await u(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(f.slice(d))):await c(f);else{let{value:p,done:g}=await t.next();if(g&&!p)throw new Error(crt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await Gm(o),r=p.writable,s=r.getWriter(),await this.write(f)}},async close(){await s.ready,await u()}});Object.defineProperty(i,mY,{get(){return a}});async function c(f){let d=f.length;d&&(await s.ready,await s.write(f),o.size+=d,i.size+=d,i.availableSize-=d)}async function u(){r.size=o.size,await s.close()}}};async function Gm(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function xH(e){return Array.isArray(e)&&(e=new hY(e)),e instanceof ReadableStream&&(e={readable:e}),e}function bH(e){e.writable===Ri&&typeof e.next==J_&&(e=new yH(e)),e instanceof WritableStream&&(e={writable:e});let{writable:t}=e;return t.size===Ri&&(t.size=0),e instanceof yH||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function Va(e,t,n,i){return e.readUint8Array(t,n,i)}var Bge="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),drt=Bge.length==256;function kge(e){if(drt){let t="";for(let n=0;n<e.length;n++)t+=Bge[e[n]];return t}else return new TextDecoder().decode(e)}function mF(e,t){return t&&t.trim().toLowerCase()=="cp437"?kge(e):new TextDecoder(t).decode(e)}var pY="filename",_Y="rawFilename",gY="comment",yY="rawComment",xY="uncompressedSize",bY="compressedSize",TY="offset",TH="diskNumberStart",RS="lastModDate",CH="rawLastModDate",pF="lastAccessDate",Vge="rawLastAccessDate",_F="creationDate",Uge="rawCreationDate",CY="internalFileAttribute",AY="externalFileAttribute",EY="msDosCompatible",AH="zip64",SY="encrypted",vY="version",wY="versionMadeBy",DY="zipCrypto",hrt=[pY,_Y,bY,xY,RS,CH,gY,yY,pF,_F,TY,TH,TH,CY,AY,EY,AH,SY,vY,wY,DY,"directory","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"],_0=class{constructor(t){hrt.forEach(n=>this[n]=t[n])}};var IY="File format is not recognized",grt="End of central directory not found",yrt="End of Zip64 central directory locator not found",xrt="Central directory header not found",brt="Local file header not found",Trt="Zip64 extra field not found",Crt="File contains encrypted entry",Art="Encryption method not supported",zge="Compression method not supported",Hge="Split zip file",Gge="utf-8",Wge="cp437",Ert=[[xY,4294967295],[bY,4294967295],[TY,4294967295],[TH,65535]],Srt={[65535]:{getValue:bs,bytes:4},[4294967295]:{getValue:EH,bytes:8}},RH=class{constructor(t,n={}){Object.assign(this,{reader:xH(t),options:n,config:rF()})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await Gm(i),(i.size===Ri||!i.readUint8Array)&&(i=new ng(await new Response(i.readable).blob()),await Gm(i)),i.size<22)throw new Error(IY);i.chunkSize=J4(o);let r=await Prt(i,101010256,i.size,22,65535*16);if(!r){let N=await Va(i,0,4),_=xa(N);throw bs(_)==134695760?new Error(Hge):new Error(grt)}let s=xa(r),a=bs(s,12),c=bs(s,16),u=r.offset,f=ya(s,20),d=u+22+f,p=ya(s,4),g=i.lastDiskNumber||0,m=ya(s,6),x=ya(s,8),b=0,T=0;if(c==4294967295||a==4294967295||x==65535||m==65535){let N=await Va(i,r.offset-20,20),_=xa(N);if(bs(_,0)==117853008){c=EH(_,8);let S=await Va(i,c,56,-1),w=xa(S),I=r.offset-20-56;if(bs(w,0)!=101075792&&c!=I){let L=c;c=I,b=c-L,S=await Va(i,c,56,-1),w=xa(S)}if(bs(w,0)!=101075792)throw new Error(yrt);p==65535&&(p=bs(w,16)),m==65535&&(m=bs(w,20)),x==65535&&(x=EH(w,32)),a==4294967295&&(a=EH(w,40)),c-=a}}if(c>=i.size&&(b=i.size-c-a-22,c=i.size-a-22),g!=p)throw new Error(Hge);if(c<0)throw new Error(IY);let C=0,A=await Va(i,c,a,m),E=xa(A);if(a){let N=r.offset-a;if(bs(E,C)!=33639248&&c!=N){let _=c;c=N,b+=c-_,A=await Va(i,c,a,m),E=xa(A)}}let v=r.offset-c-(i.lastDiskOffset||0);if(a!=v&&v>=0&&(a=v,A=await Va(i,c,a,m),E=xa(A)),c<0||c>=i.size)throw new Error(IY);let D=cl(n,t,"filenameEncoding"),O=cl(n,t,"commentEncoding");for(let N=0;N<x;N++){let _=new RY(i,o,n.options);if(bs(E,C)!=33639248)throw new Error(xrt);qge(_,E,C+6);let S=!!_.bitFlag.languageEncodingFlag,w=C+46,I=w+_.filenameLength,L=I+_.extraFieldLength,B=ya(E,C+4),U=(B&0)==0,V=A.subarray(w,I),G=ya(E,C+32),k=L+G,W=A.subarray(L,k),q=S,J=S,j=U&&(OS(E,C+38)&16)==16,K=bs(E,C+42)+b;Object.assign(_,{versionMadeBy:B,msDosCompatible:U,compressedSize:0,uncompressedSize:0,commentLength:G,directory:j,offset:K,diskNumberStart:ya(E,C+34),internalFileAttribute:ya(E,C+36),externalFileAttribute:bs(E,C+38),rawFilename:V,filenameUTF8:q,commentUTF8:J,rawExtraField:A.subarray(I,L)});let Q=cl(n,t,"decodeText")||mF,de=q?Gge:D||Wge,ye=J?Gge:O||Wge,ae=Q(V,de);ae===Ri&&(ae=mF(V,de));let _e=Q(W,ye);_e===Ri&&(_e=mF(W,ye)),Object.assign(_,{rawComment:W,filename:ae,comment:_e,directory:j||ae.endsWith(ES)}),T=Math.max(K,T),await Yge(_,_,E,C+6),_.zipCrypto=_.encrypted&&!_.extraFieldAES;let xe=new _0(_);xe.getData=(Ae,ke)=>_.getData(Ae,xe,ke),C=k;let{onprogress:De}=t;if(De)try{await De(N+1,x,new _0(_))}catch{}yield xe}let R=cl(n,t,"extractPrependedData"),M=cl(n,t,"extractAppendedData");return R&&(n.prependedData=T>0?await Va(i,0,T):new Uint8Array),n.comment=f?await Va(i,u+22,f):new Uint8Array,M&&(n.appendedData=d<i.size?await Va(i,d,i.size-d):new Uint8Array),!0}async getEntries(t={}){let n=[];for await(let i of this.getEntriesGenerator(t))n.push(i);return n}async close(){}};var RY=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,diskNumberStart:a,extraFieldAES:c,compressionMethod:u,config:f,bitFlag:d,signature:p,rawLastModDate:g,uncompressedSize:m,compressedSize:x}=o,b=n.localDirectory={},T=await Va(r,s,30,a),C=xa(T),A=cl(o,i,"password"),E=cl(o,i,"rawPassword"),v=cl(o,i,"passThrough");if(A=A&&A.length&&A,E=E&&E.length&&E,c&&c.originalCompressionMethod!=99)throw new Error(zge);if(u!=0&&u!=8&&!v)throw new Error(zge);if(bs(C,0)!=67324752)throw new Error(brt);qge(b,C,4),b.rawExtraField=b.extraFieldLength?await Va(r,s+30+b.filenameLength,b.extraFieldLength,a):new Uint8Array,await Yge(o,b,C,4,!0),Object.assign(n,{lastAccessDate:b.lastAccessDate,creationDate:b.creationDate});let D=o.encrypted&&b.encrypted&&!v,O=D&&!c;if(v||(n.zipCrypto=O),D){if(!O&&c.strength===Ri)throw new Error(Art);if(!A&&!E)throw new Error(Crt)}let R=s+30+b.filenameLength+b.extraFieldLength,M=x,N=r.readable;Object.assign(N,{diskNumberStart:a,offset:R,size:M});let _=cl(o,i,"signal"),S=cl(o,i,"checkPasswordOnly");S&&(t=new WritableStream),t=bH(t),await Gm(t,v?x:m);let{writable:w}=t,{onstart:I,onprogress:L,onend:B}=i,U={options:{codecType:fH,password:A,rawPassword:E,zipCrypto:O,encryptionStrength:c&&c.strength,signed:cl(o,i,"checkSignature")&&!v,passwordVerification:O&&(d.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:u!=0&&!v,encrypted:o.encrypted&&!v,useWebWorkers:cl(o,i,"useWebWorkers"),useCompressionStream:cl(o,i,"useCompressionStream"),transferStreams:cl(o,i,"transferStreams"),checkPasswordOnly:S},config:f,streamOptions:{signal:_,size:M,onstart:I,onprogress:L,onend:B}},V=0;try{({outputSize:V}=await hH({readable:N,writable:w},U))}catch(G){if(!S||G.message!=tg)throw G}finally{let G=cl(o,i,"preventClose");w.size+=V,!G&&!w.locked&&await w.getWriter().close()}return S?Ri:t.getData?t.getData():w}};function qge(e,t,n){let i=e.rawBitFlag=ya(t,n+2),o=(i&1)==1,r=bs(t,n+6);Object.assign(e,{encrypted:o,version:ya(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:Rrt(r),filenameLength:ya(t,n+22),extraFieldLength:ya(t,n+24)})}async function Yge(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=xa(new Uint8Array(r)),c=0;try{for(;c<r.length;){let T=ya(a,c),C=ya(a,c+2);s.set(T,{type:T,data:r.slice(c+4,c+4+C)}),c+=4+C}}catch{}let u=ya(n,i+4);Object.assign(t,{signature:bs(n,i+10),uncompressedSize:bs(n,i+18),compressedSize:bs(n,i+14)});let f=s.get(1);f&&(vrt(f,t),t.extraFieldZip64=f);let d=s.get(28789);d&&(await jge(d,pY,_Y,t,e),t.extraFieldUnicodePath=d);let p=s.get(25461);p&&(await jge(p,gY,yY,t,e),t.extraFieldUnicodeComment=p);let g=s.get(39169);g?(wrt(g,t,u),t.extraFieldAES=g):t.compressionMethod=u;let m=s.get(10);m&&(Drt(m,t),t.extraFieldNTFS=m);let x=s.get(21589);x&&(Irt(x,t,o),t.extraFieldExtendedTimestamp=x);let b=s.get(6534);b&&(t.extraFieldUSDZ=b)}function vrt(e,t){t.zip64=!0;let n=xa(e.data),i=Ert.filter(([o,r])=>t[o]==r);for(let o=0,r=0;o<i.length;o++){let[s,a]=i[o];if(t[s]==a){let c=Srt[a];t[s]=e[s]=c.getValue(n,r),r+=c.bytes}else if(e[s])throw new Error(Trt)}}async function jge(e,t,n,i,o){let r=xa(e.data),s=new eg;s.append(o[n]);let a=xa(new Uint8Array(4));a.setUint32(0,s.get(),!0);let c=bs(r,1);Object.assign(e,{version:OS(r,0),[t]:mF(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==bs(a,0)}),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function wrt(e,t,n){let i=xa(e.data),o=OS(i,4);Object.assign(e,{vendorVersion:OS(i,0),vendorId:OS(i,2),strength:o,originalCompressionMethod:n,compressionMethod:ya(i,5)}),t.compressionMethod=e.compressionMethod}function Drt(e,t){let n=xa(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=ya(n,i),s=ya(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=xa(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let u=PY(s),f=PY(a),d=PY(c),p={lastModDate:u,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function Irt(e,t,n){let i=xa(e.data),o=OS(i,0),r=[],s=[];n?((o&1)==1&&(r.push(RS),s.push(CH)),(o&2)==2&&(r.push(pF),s.push(Vge)),(o&4)==4&&(r.push(_F),s.push(Uge))):e.data.length>=5&&(r.push(RS),s.push(CH));let a=1;r.forEach((c,u)=>{if(e.data.length>=a+4){let f=bs(i,a);t[c]=e[c]=new Date(f*1e3);let d=s[u];e[d]=f}a+=4})}async function Prt(e,t,n,i,o){let r=new Uint8Array(4),s=xa(r);Ort(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await Va(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function cl(e,t,n){return t[n]===Ri?e.options[n]:t[n]}function Rrt(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function PY(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function OS(e,t){return e.getUint8(t)}function ya(e,t){return e.getUint16(t,!0)}function bs(e,t){return e.getUint32(t,!0)}function EH(e,t){return Number(e.getBigUint64(t,!0))}function Ort(e,t,n){e.setUint32(t,n,!0)}function xa(e){return new DataView(e.buffer)}var Frt="File already exists",Brt="Zip file comment exceeds 64KB",krt="File entry comment exceeds 64KB",Vrt="File entry name exceeds 64KB",Zge="Version exceeds 65535",Urt="The strength must equal 1, 2, or 3",zrt="Extra field type exceeds 65535",Hrt="Extra field data exceeds 64KB",jY="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Grt="Undefined uncompressed size",$ge=new Uint8Array([7,0,2,0,65,69,3,0,0]),GY=0,Qge=[],LH=class{constructor(t,n={}){t=bH(t);let i=t.availableSize!==Ri&&t.availableSize>0&&t.availableSize!==1/0&&t.maxSize!==Ri&&t.maxSize>0&&t.maxSize!==1/0;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:rF(),files:new Map,filenames:new Set,offset:n.offset===Ri?t.writable.size:n.offset,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;GY<s.maxWorkers?GY++:await new Promise(c=>Qge.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(Frt);return o.filenames.add(t),a=Wrt(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=Qge.shift();c?c():GY--}}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await Jrt(this,t,n),po(i,n,"preventClose")||await s.getWriter().close(),r.getData?r.getData():s}};async function Wrt(e,t,n,i){t=t.trim(),i.directory&&!t.endsWith(ES)?t+=ES:i.directory=t.endsWith(ES);let o=po(e,i,"encodeText",vS),r=o(t);if(r===Ri&&(r=vS(t)),Zi(r)>65535)throw new Error(Vrt);let s=i.comment||"",a=o(s);if(a===Ri&&(a=vS(s)),Zi(a)>65535)throw new Error(krt);let c=po(e,i,vY,20);if(c>65535)throw new Error(Zge);let u=po(e,i,wY,20);if(u>65535)throw new Error(Zge);let f=po(e,i,RS,new Date),d=po(e,i,pF),p=po(e,i,_F),g=po(e,i,EY,!0),m=po(e,i,CY,0),x=po(e,i,AY,0),b=po(e,i,"passThrough"),T,C;b||(T=po(e,i,"password"),C=po(e,i,"rawPassword"));let A=po(e,i,"encryptionStrength",3),E=po(e,i,DY),v=po(e,i,"extendedTimestamp",!0),D=po(e,i,"keepOrder",!0),O=po(e,i,"level"),R=po(e,i,"useWebWorkers"),M=po(e,i,"bufferedWrite"),N=po(e,i,"dataDescriptorSignature",!1),_=po(e,i,"signal"),S=po(e,i,"useUnicodeFileNames",!0),w=po(e,i,"useCompressionStream"),I=po(e,i,"compressionMethod"),L=po(e,i,"dataDescriptor",!0),B=po(e,i,AH);if(!E&&(T!==Ri||C!==Ri)&&!(A>=1&&A<=3))throw new Error(Urt);let U=new Uint8Array,{extraField:V}=i;if(V){let wt=0,pt=0;V.forEach(Be=>wt+=4+Zi(Be)),U=new Uint8Array(wt),V.forEach((Be,Yt)=>{if(Yt>65535)throw new Error(zrt);if(Zi(Be)>65535)throw new Error(Hrt);Os(U,new Uint16Array([Yt]),pt),Os(U,new Uint16Array([Zi(Be)]),pt+2),Os(U,Be,pt+4),pt+=4+Zi(Be)})}let G=0,k=0,W=0;if(b&&({uncompressedSize:W}=i,W===Ri))throw new Error(Grt);let q=B===!0;n&&(n=xH(n),await Gm(n),b?G=Jge(W):n.size===Ri?(L=!0,(B||B===Ri)&&(B=!0,W=G=4294967296)):(W=n.size,G=Jge(W)));let{diskOffset:J,diskNumber:j,maxSize:K}=e.writer,Q=q||W>4294967295,de=q||G>4294967295,ye=q||e.offset+e.pendingEntriesSize-J>4294967295,_e=po(e,i,"supportZip64SplitFile",!0)&&q||j+Math.ceil(e.pendingEntriesSize/K)>65535;if(ye||Q||de||_e){if(B===!1||!D)throw new Error(jY);B=!0}B=B||!1;let xe=po(e,i,SY),{signature:De}=i;i=Object.assign({},i,{rawFilename:r,rawComment:a,version:c,versionMadeBy:u,lastModDate:f,lastAccessDate:d,creationDate:p,rawExtraField:U,zip64:B,zip64UncompressedSize:Q,zip64CompressedSize:de,zip64Offset:ye,zip64DiskNumberStart:_e,password:T,rawPassword:C,level:!w&&e.config.CompressionStream===Ri&&e.config.CompressionStreamNative===Ri?0:O,useWebWorkers:R,encryptionStrength:A,extendedTimestamp:v,zipCrypto:E,bufferedWrite:M,keepOrder:D,useUnicodeFileNames:S,dataDescriptor:L,dataDescriptorSignature:N,signal:_,msDosCompatible:g,internalFileAttribute:m,externalFileAttribute:x,useCompressionStream:w,passThrough:b,encrypted:!!(T&&Zi(T)||C&&Zi(C))||b&&xe,signature:De,compressionMethod:I});let Ae=Yrt(i),ke=Krt(i),ze=Zi(Ae.localHeaderArray,ke.dataDescriptorArray);k=ze+G,e.options.usdz&&(k+=k+64),e.pendingEntriesSize+=k;let tt;try{tt=await jrt(e,t,n,{headerInfo:Ae,dataDescriptorInfo:ke,metadataSize:ze},i)}finally{e.pendingEntriesSize-=k}return Object.assign(tt,{name:t,comment:s,extraField:V}),new _0(tt)}async function jrt(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:u}=o,{headerInfo:f}=i,{usdz:d}=e.options,p=Array.from(r.values()).pop(),g={},m,x,b,T,C,A,E;r.set(t,g);try{let R;a&&(R=p&&p.lock,v()),(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&a||!c)&&!d?(A=new null,E=new Response(A.readable).blob(),A.writable.size=0,m=!0,e.bufferedWrites++,await Gm(s)):(A=s,await D()),await Gm(A);let{writable:M}=s,{diskOffset:N}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let S=new Uint8Array(4),w=Ua(S);Ki(w,0,134695760),await Wm(M,S),e.offset+=4}d&&Xrt(i,e.offset-N),m||(await R,await O(M));let{diskNumber:_}=s;if(C=!0,g.diskNumberStart=_,g=await qrt(n,A,g,i,e.config,o),C=!1,r.set(t,g),g.filename=t,m){await A.writable.getWriter().close();let S=await E;await R,await D(),T=!0,c||(S=await $rt(g,S,M,o)),await O(M),g.diskNumberStart=s.diskNumber,N=s.diskOffset,await S.stream().pipeTo(M,{preventClose:!0,preventAbort:!0,signal:u}),M.size+=S.size,T=!1}if(g.offset=e.offset-N,g.zip64)Qrt(g,o);else if(g.offset>4294967295)throw new Error(jY);return e.offset+=g.size,g}catch(R){if(m&&T||!m&&C){if(e.hasCorruptedEntries=!0,R)try{R.corruptedEntry=!0}catch{}m?e.offset+=A.writable.size:e.offset=A.writable.size}throw r.delete(t),R}finally{m&&e.bufferedWrites--,b&&b(),x&&x()}function v(){g.lock=new Promise(R=>b=R)}async function D(){e.writerLocked=!0;let{lockWriter:R}=e;e.lockWriter=new Promise(M=>x=()=>{e.writerLocked=!1,M()}),await R}async function O(R){Zi(f.localHeaderArray)>s.availableSize&&(s.availableSize=0,await Wm(R,new Uint8Array))}}async function qrt(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:u}=o,{localHeaderArray:f,headerArray:d,lastModDate:p,rawLastModDate:g,encrypted:m,compressed:x,version:b,compressionMethod:T,rawExtraFieldExtendedTimestamp:C,extraFieldExtendedTimestampFlag:A,rawExtraFieldNTFS:E,rawExtraFieldAES:v}=a,{dataDescriptorArray:D}=c,{rawFilename:O,lastAccessDate:R,creationDate:M,password:N,rawPassword:_,level:S,zip64:w,zip64UncompressedSize:I,zip64CompressedSize:L,zip64Offset:B,zip64DiskNumberStart:U,zipCrypto:V,dataDescriptor:G,directory:k,versionMadeBy:W,rawComment:q,rawExtraField:J,useWebWorkers:j,onstart:K,onprogress:Q,onend:de,signal:ye,encryptionStrength:ae,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:De,externalFileAttribute:Ae,useCompressionStream:ke,passThrough:ze}=s,tt={lock:i,versionMadeBy:W,zip64:w,directory:!!k,filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:q,rawExtraFieldExtendedTimestamp:C,rawExtraFieldNTFS:E,rawExtraFieldAES:v,rawExtraField:J,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:De,externalFileAttribute:Ae,diskNumberStart:n},{signature:wt,uncompressedSize:pt}=s,Be=0;ze||(pt=0);let{writable:Yt}=t;if(e){e.chunkSize=J4(r),await Wm(Yt,f);let lt=e.readable,tn=lt.size=e.size,Ce={options:{codecType:uH,level:S,rawPassword:_,password:N,encryptionStrength:ae,zipCrypto:m&&V,passwordVerification:m&&V&&g>>8&255,signed:!ze,compressed:x&&!ze,encrypted:m&&!ze,useWebWorkers:j,useCompressionStream:ke,transferStreams:!1},config:r,streamOptions:{signal:ye,size:tn,onstart:K,onprogress:Q,onend:de}},Te=await hH({readable:lt,writable:Yt},Ce);Be=Te.outputSize,ze||(pt=Te.inputSize,wt=Te.signature),Yt.size+=pt}else await Wm(Yt,f);let Ct;if(w){let lt=4;I&&(lt+=8),L&&(lt+=8),B&&(lt+=8),U&&(lt+=4),Ct=new Uint8Array(lt)}else Ct=new Uint8Array;return Zrt({signature:wt,rawExtraFieldZip64:Ct,compressedSize:Be,uncompressedSize:pt,headerInfo:a,dataDescriptorInfo:c},s),G&&await Wm(Yt,D),Object.assign(tt,{uncompressedSize:pt,compressedSize:Be,lastModDate:p,rawLastModDate:g,creationDate:M,lastAccessDate:R,encrypted:m,zipCrypto:V,size:u+Be,compressionMethod:T,version:b,headerArray:d,signature:wt,rawExtraFieldZip64:Ct,extraFieldExtendedTimestampFlag:A,zip64UncompressedSize:I,zip64CompressedSize:L,zip64Offset:B,zip64DiskNumberStart:U}),tt}function Yrt(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,level:r,zip64:s,zipCrypto:a,useUnicodeFileNames:c,dataDescriptor:u,directory:f,rawExtraField:d,encryptionStrength:p,extendedTimestamp:g,encrypted:m}=e,x=r!==0&&!f,{version:b,compressionMethod:T}=e,C;if(m&&!a){C=new Uint8Array(Zi($ge)+2);let B=Ua(C);oo(B,0,39169),Os(C,$ge,2),NH(B,8,p)}else C=new Uint8Array;let A,E,v;if(g){E=new Uint8Array(9+(i?4:0)+(o?4:0));let B=Ua(E);oo(B,0,21589),oo(B,2,Zi(E)-4),v=1+(i?2:0)+(o?4:0),NH(B,4,v);let U=5;Ki(B,U,Math.floor(n.getTime()/1e3)),U+=4,i&&(Ki(B,U,Math.floor(i.getTime()/1e3)),U+=4),o&&Ki(B,U,Math.floor(o.getTime()/1e3));try{A=new Uint8Array(36);let V=Ua(A),G=WY(n);oo(V,0,10),oo(V,2,32),oo(V,8,1),oo(V,10,24),Zl(V,12,G),Zl(V,20,WY(i)||G),Zl(V,28,WY(o)||G)}catch{A=new Uint8Array}}else A=E=new Uint8Array;let D=0;c&&(D=D|2048),u&&(D=D|8),T===Ri&&(T=x?8:0),T==8&&(r>=1&&r<3&&(D=D|6),r>=3&&r<5&&(D=D|1),r===9&&(D=D|2)),s&&(b=b>45?b:45),m&&(D=D|1,a||(b=b>51?b:51,C[9]=T,T=99));let O=new Uint8Array(26),R=Ua(O);oo(R,0,b),oo(R,2,D),oo(R,4,T);let M=new Uint32Array(1),N=Ua(M),_;n<tY?_=tY:n>eY?_=eY:_=n,oo(N,0,(_.getHours()<<6|_.getMinutes())<<5|_.getSeconds()/2),oo(N,2,(_.getFullYear()-1980<<4|_.getMonth()+1)<<5|_.getDate());let S=M[0];Ki(R,6,S),oo(R,22,Zi(t));let w=Zi(C,E,A,d);oo(R,24,w);let I=new Uint8Array(30+Zi(t)+w),L=Ua(I);return Ki(L,0,67324752),Os(I,O,4),Os(I,t,30),Os(I,C,30+Zi(t)),Os(I,E,30+Zi(t,C)),Os(I,A,30+Zi(t,C,E)),Os(I,d,30+Zi(t,C,E,A)),{localHeaderArray:I,headerArray:O,headerView:R,lastModDate:n,rawLastModDate:S,encrypted:m,compressed:x,version:b,compressionMethod:T,extraFieldExtendedTimestampFlag:v,rawExtraFieldExtendedTimestamp:E,rawExtraFieldNTFS:A,rawExtraFieldAES:C,extraFieldLength:w}}function Xrt(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=Ua(i),s=64-(t+Zi(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=Ua(a);oo(c,0,6534),oo(c,2,s-2);let u=i;n.localHeaderArray=i=new Uint8Array(Zi(u)+s),Os(i,u),Os(i,a,Zi(u)),r=Ua(i),oo(r,28,o+s),e.metadataSize+=s}function Krt(e){let{zip64:t,dataDescriptor:n,dataDescriptorSignature:i}=e,o=new Uint8Array,r,s=0;return n&&(o=new Uint8Array(t?i?24:20:i?16:12),r=Ua(o),i&&(s=4,Ki(r,0,134695760))),{dataDescriptorArray:o,dataDescriptorView:r,dataDescriptorOffset:s}}function Zrt(e,t){let{signature:n,rawExtraFieldZip64:i,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a}=e,{headerView:c,encrypted:u}=s,{dataDescriptorView:f,dataDescriptorOffset:d}=a,{zip64:p,zip64UncompressedSize:g,zip64CompressedSize:m,zipCrypto:x,dataDescriptor:b}=t;if((!u||x)&&n!==Ri&&(Ki(c,10,n),b&&Ki(f,d,n)),p){let T=Ua(i);oo(T,0,1),oo(T,2,Zi(i)-4);let C=4;g&&(Ki(c,18,4294967295),Zl(T,C,BigInt(r)),C+=8),m&&(Ki(c,14,4294967295),Zl(T,C,BigInt(o))),b&&(Zl(f,d+4,BigInt(o)),Zl(f,d+12,BigInt(r)))}else Ki(c,14,o),Ki(c,18,r),b&&(Ki(f,d+4,o),Ki(f,d+8,r))}async function $rt(e,t,n,{zipCrypto:i}){let o;o=await t.slice(0,26).arrayBuffer(),o.byteLength!=26&&(o=o.slice(0,26));let r=new DataView(o);return(!e.encrypted||i)&&Ki(r,14,e.signature),e.zip64?(Ki(r,18,4294967295),Ki(r,22,4294967295)):(Ki(r,18,e.compressedSize),Ki(r,22,e.uncompressedSize)),await Wm(n,new Uint8Array(o)),t.slice(o.byteLength)}function Qrt(e,t){let{rawExtraFieldZip64:n,offset:i,diskNumberStart:o}=e,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:a,zip64DiskNumberStart:c}=t,u=Ua(n),f=4;r&&(f+=8),s&&(f+=8),a&&(Zl(u,f,BigInt(i)),f+=8),c&&Ki(u,f,o)}async function Jrt(e,t,n){let{files:i,writer:o}=e,{diskOffset:r,writable:s}=o,{diskNumber:a}=o,c=0,u=0,f=e.offset-r,d=i.size;for(let[,v]of i){let{rawFilename:D,rawExtraFieldZip64:O,rawExtraFieldAES:R,rawComment:M,rawExtraFieldNTFS:N,rawExtraField:_,extendedTimestamp:S,extraFieldExtendedTimestampFlag:w,lastModDate:I}=v,L;if(S){L=new Uint8Array(9);let B=Ua(L);oo(B,0,21589),oo(B,2,5),NH(B,4,w),Ki(B,5,Math.floor(I.getTime()/1e3))}else L=new Uint8Array;v.rawExtraFieldCDExtendedTimestamp=L,u+=46+Zi(D,M,O,R,N,L,_)}let p=new Uint8Array(u),g=Ua(p);await Gm(o);let m=0;for(let[v,D]of Array.from(i.values()).entries()){let{offset:O,rawFilename:R,rawExtraFieldZip64:M,rawExtraFieldAES:N,rawExtraFieldCDExtendedTimestamp:_,rawExtraFieldNTFS:S,rawExtraField:w,rawComment:I,versionMadeBy:L,headerArray:B,directory:U,zip64:V,zip64UncompressedSize:G,zip64CompressedSize:k,zip64DiskNumberStart:W,zip64Offset:q,msDosCompatible:J,internalFileAttribute:j,externalFileAttribute:K,diskNumberStart:Q,uncompressedSize:de,compressedSize:ye}=D,ae=Zi(M,N,_,S,w);Ki(g,c,33639248),oo(g,c+4,L);let _e=Ua(B);G||Ki(_e,18,de),k||Ki(_e,14,ye),Os(p,B,c+6),oo(g,c+30,ae),oo(g,c+32,Zi(I)),oo(g,c+34,V&&W?65535:Q),oo(g,c+36,j),K?Ki(g,c+38,K):U&&J&&NH(g,c+38,16),Ki(g,c+42,V&&q?4294967295:O),Os(p,R,c+46),Os(p,M,c+46+Zi(R)),Os(p,N,c+46+Zi(R,M)),Os(p,_,c+46+Zi(R,M,N)),Os(p,S,c+46+Zi(R,M,N,_)),Os(p,w,c+46+Zi(R,M,N,_,S)),Os(p,I,c+46+Zi(R)+ae);let xe=46+Zi(R,I)+ae;if(c-m>o.availableSize&&(o.availableSize=0,await Wm(s,p.slice(m,c)),m=c),c+=xe,n.onprogress)try{await n.onprogress(v+1,i.size,new _0(D))}catch{}}await Wm(s,m?p.slice(m):p);let x=o.diskNumber,{availableSize:b}=o;b<22&&x++;let T=po(e,n,AH);if(f>4294967295||u>4294967295||d>65535||x>65535){if(T===!1)throw new Error(jY);T=!0}let C=new Uint8Array(T?98:22),A=Ua(C);c=0,T&&(Ki(A,0,101075792),Zl(A,4,BigInt(44)),oo(A,12,45),oo(A,14,45),Ki(A,16,x),Ki(A,20,a),Zl(A,24,BigInt(d)),Zl(A,32,BigInt(d)),Zl(A,40,BigInt(u)),Zl(A,48,BigInt(f)),Ki(A,56,117853008),Zl(A,64,BigInt(f)+BigInt(u)),Ki(A,72,x+1),po(e,n,"supportZip64SplitFile",!0)&&(x=65535,a=65535),d=65535,f=4294967295,u=4294967295,c+=76),Ki(A,c,101010256),oo(A,c+4,x),oo(A,c+6,a),oo(A,c+8,d),oo(A,c+10,d),Ki(A,c+12,u),Ki(A,c+16,f);let E=Zi(t);if(E)if(E<=65535)oo(A,c+20,E);else throw new Error(Brt);await Wm(s,C),E&&await Wm(s,t)}async function Wm(e,t){let n=e.getWriter();try{await n.ready,e.size+=Zi(t),await n.write(t)}finally{n.releaseLock()}}function WY(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function po(e,t,n,i){let o=t[n]===Ri?e.options[n]:t[n];return o===Ri?i:o}function Jge(e){return e+5*(Math.floor(e/16383)+1)}function NH(e,t,n){e.setUint8(t,n)}function oo(e,t,n){e.setUint16(t,n,!0)}function Ki(e,t,n){e.setUint32(t,n,!0)}function Zl(e,t,n){e.setBigUint64(t,n,!0)}function Os(e,t,n){e.set(t,n)}function Ua(e){return new DataView(e.buffer)}function Zi(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}SS({Deflate:B_e,Inflate:rge});function est(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var In=est;function tst(e,t){this.position=e,this.headingPitchRange=t}var xF=tst;function FH(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new me,this.tourEnd=new me,this.entryStart=new me,this.entryEnd=new me,this._activeEntries=[]}FH.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};FH.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;nye.call(this,e,t,function(i){n.playlistIndex=0,i||tye(n._activeEntries),n.tourEnd.raiseEvent(i)})};FH.prototype.stop=function(){tye(this._activeEntries)};function tye(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function nye(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=nst.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function nst(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,nye.call(this,e,t,n)}}var bF=FH;var Oi=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Oi.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Oi.Bounce.In(e*2)*.5:Oi.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),TF=function(){return performance.now()},ist=function(){function e(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];for(var o=0,r=n;o<r.length;o++){var s=r[o];(t=s._group)===null||t===void 0||t.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var i=0,o=t;i<o.length;i++){var r=o[i];r._group=void 0,delete this._tweens[r.getId()],delete this._tweensAddedDuringUpdate[r.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},e.prototype.update=function(t,n){t===void 0&&(t=TF()),n===void 0&&(n=!0);var i=Object.keys(this._tweens);if(i.length!==0)for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&this.remove(r)}i=Object.keys(this._tweensAddedDuringUpdate)}},e}(),MS={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=MS.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=MS.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=MS.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=MS.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},iye=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),qY=new ist,oye=function(){function e(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Oi.Linear.None,this._interpolationFunction=MS.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=iye.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof n=="object"?(this._group=n,n.add(this)):n===!0&&(this._group=qY,qY.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=TF()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),u=c?"array":typeof a,f=!c&&Array.isArray(i[s]);if(!(u==="undefined"||u==="function")){if(f){var d=i[s];if(d.length===0)continue;for(var p=[a],g=0,m=d.length;g<m;g+=1){var x=this._handleRelativeValue(a,d[g]);if(isNaN(x)){f=!1,console.warn("Found invalid interpolation list. Skipping.");break}p.push(x)}f&&(i[s]=p)}if((u==="object"||c)&&a&&!f){n[s]=c?[]:{};var b=a;for(var T in b)n[s][T]=b[T];o[s]=c?[]:{};var d=i[s];if(!this._isDynamic){var C={};for(var T in d)C[T]=d[T];i[s]=d=C}this._setupProperties(b,n[s],d,o[s],r)}else(typeof n[s]>"u"||r)&&(n[s]=a),c||(n[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(t){return t===void 0&&(t=TF()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},e.prototype.resume=function(t){return t===void 0&&(t=TF()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},e.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},e.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},e.prototype.easing=function(t){return t===void 0&&(t=Oi.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=MS.Linear),this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){var i=this,o;if(t===void 0&&(t=TF()),n===void 0&&(n=e.autoStartOnUpdate),this._isPaused)return!0;var r;if(!this._goToEnd&&!this._isPlaying)if(n)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=t-this._startTime,a=this._duration+((o=this._repeatDelayTime)!==null&&o!==void 0?o:this._delayTime),c=this._duration+this._repeat*a,u=function(){if(i._duration===0||s>c)return 1;var x=Math.trunc(s/a),b=s-x*a,T=Math.min(b/i._duration,1);return T===0&&s===i._duration?1:T},f=u(),d=this._easingFunction(f);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,f),this._duration===0||s>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((s-this._duration)/a)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(r in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[r]=="string"&&(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=a*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var g=0,m=this._chainedTweens.length;g<m;g++)this._chainedTweens[g].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),u=Array.isArray(a),f=!c&&u;f?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e.autoStartOnUpdate=!1,e}();var cti=iye.nextId,jm=qY,lti=jm.getAll.bind(jm),uti=jm.removeAll.bind(jm),fti=jm.add.bind(jm),dti=jm.remove.bind(jm),hti=jm.update.bind(jm);var ost={LINEAR_NONE:Oi.Linear.None,QUADRATIC_IN:Oi.Quadratic.In,QUADRATIC_OUT:Oi.Quadratic.Out,QUADRATIC_IN_OUT:Oi.Quadratic.InOut,CUBIC_IN:Oi.Cubic.In,CUBIC_OUT:Oi.Cubic.Out,CUBIC_IN_OUT:Oi.Cubic.InOut,QUARTIC_IN:Oi.Quartic.In,QUARTIC_OUT:Oi.Quartic.Out,QUARTIC_IN_OUT:Oi.Quartic.InOut,QUINTIC_IN:Oi.Quintic.In,QUINTIC_OUT:Oi.Quintic.Out,QUINTIC_IN_OUT:Oi.Quintic.InOut,SINUSOIDAL_IN:Oi.Sinusoidal.In,SINUSOIDAL_OUT:Oi.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Oi.Sinusoidal.InOut,EXPONENTIAL_IN:Oi.Exponential.In,EXPONENTIAL_OUT:Oi.Exponential.Out,EXPONENTIAL_IN_OUT:Oi.Exponential.InOut,CIRCULAR_IN:Oi.Circular.In,CIRCULAR_OUT:Oi.Circular.Out,CIRCULAR_IN_OUT:Oi.Circular.InOut,ELASTIC_IN:Oi.Elastic.In,ELASTIC_OUT:Oi.Elastic.Out,ELASTIC_IN_OUT:Oi.Elastic.InOut,BACK_IN:Oi.Back.In,BACK_OUT:Oi.Back.Out,BACK_IN_OUT:Oi.Back.InOut,BOUNCE_IN:Oi.Bounce.In,BOUNCE_OUT:Oi.Bounce.Out,BOUNCE_IN_OUT:Oi.Bounce.InOut},qr=Object.freeze(ost);function BH(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}BH.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new se(this.view.position);t.flyToBoundingSphere(o,i)}};BH.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};BH.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=qr.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=yt(t,e)),t};var CF=BH;function YY(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}YY.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};YY.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var AF=YY;var pye={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=Q0(t),pye[t]}},eX;typeof DOMParser<"u"&&(eX=new DOMParser);var rst=new mye.default({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),g0=32,rye=2414016,sye=1,aye=16093e3,cye=.1,lye=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],uye=["http://www.google.com/kml/ext/2.2"],sst=["http://www.w3.org/2005/Atom"],Re={kml:lye,gx:uye,atom:sst,kmlgx:lye.concat(uye)},tX={Document:Sye,Folder:Sst,Placemark:vst,NetworkLink:Nst,GroundOverlay:Ost,PhotoOverlay:Dye,ScreenOverlay:Rst,Tour:Dst};function qm(e){this._dataSource=e,this._deferred=Al(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(qm.prototype,{dataSource:{get:function(){return this._dataSource}}});qm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};qm.prototype.addPromise=function(e){this._promises.push(e)};qm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};qm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=qu._getTimestamp()),this._process(e)};qm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=qu._getTimestamp(),e._process(!0)},0)};qm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};qm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};qm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;l(i);){let o=tX[i.localName];if(l(o)&&(Re.kml.indexOf(i.namespaceURI)!==-1||Re.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||qu._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function ast(e){let t=e.slice(0,Math.min(4,e.size)),n=Al(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function cst(e){let t=Al(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function _ye(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function gye(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}function lst(e,t){return Promise.resolve(e.getData(new gH)).then(function(n){n=_ye(n),n=gye(n),t.kml=eX.parseFromString(n,"application/xml")})}function XY(e,t){let n=y(pye.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new pH(n))).then(function(i){t[e.filename]=i})}function Wu(e,t,n,i){let o=i.keys,r=new EF.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],u=c.getAttribute(n);if(l(u)){let d=new EF.default(u).absoluteTo(r).toString(),p=o.indexOf(d);if(p!==-1){let g=o[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function ju(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=nX(a,i);l(c)&&s.setAttribute(n,c.url)}}function yye(e,t,n){let i=Ms(e,"id");i=l(i)&&i.length!==0?i:Hn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=Hn(),l(n)&&(i=n+i)),o=t.add(new er({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new Vst),o}function SF(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function zH(e,t){if(!l(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,h.fromDegrees(i,o,r,t)}function kH(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=zH(n[s],t);return o}function y0(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function Ms(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Mi(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function fye(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function vh(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Qn(e,t,n){let i=Mi(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Pn(e,t,n){let i=Mi(e,t,n);if(l(i))return i.textContent.trim()}function wh(e,t,n){let i=Mi(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function nX(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new we({url:o});else{let r=new EF.default(t.getUrlComponent()),s=new EF.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new we({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var $l={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function QY(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?($l.maximumRed=r,$l.red=void 0):($l.maximumRed=void 0,$l.red=0),o>0?($l.maximumGreen=o,$l.green=void 0):($l.maximumGreen=void 0,$l.green=0),i>0?($l.maximumBlue=i,$l.blue=void 0):($l.maximumBlue=void 0,$l.blue=0),$l.alpha=n,H.fromRandom($l)):new H(r,o,i,n)}function ST(e,t,n){let i=Pn(e,t,n);if(l(i))return QY(i,Pn(e,"colorMode",n)==="random")}function ust(e){let t=Mi(e,"TimeStamp",Re.kmlgx),n=Pn(t,"when",Re.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=Z.fromIso8601(n),o=new Hr;return o.addInterval(new Cn({start:i,stop:He.MAXIMUM_VALUE})),o}function fst(e){let t=Mi(e,"TimeSpan",Re.kmlgx);if(!l(t))return;let n,i=Mi(t,"begin",Re.kmlgx),o=l(i)?Z.fromIso8601(i.textContent):void 0,r=Mi(t,"end",Re.kmlgx),s=l(r)?Z.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(Z.lessThan(s,o)){let a=o;o=s,s=a}n=new Hr,n.addInterval(new Cn({start:o,stop:s}))}else l(o)?(n=new Hr,n.addInterval(new Cn({start:o,stop:He.MAXIMUM_VALUE}))):l(s)&&(n=new Hr,n.addInterval(new Cn({start:He.MINIMUM_VALUE,stop:s})));return n}function xye(){let e=new oc;return e.width=g0,e.height=g0,e.scaleByDistance=new Bt(rye,sye,aye,cye),e.pixelOffsetScaleByDistance=new Bt(rye,sye,aye,cye),e}function iX(){let e=new Bd;return e.outline=!0,e.outlineColor=H.WHITE,e}function bye(){let e=new Fd;return e.translucencyByDistance=new Bt(3e6,1,5e6,0),e.pixelOffset=new z(17,0),e.horizontalOrigin=_i.LEFT,e.font="16px sans-serif",e.style=Wo.FILL_AND_OUTLINE,e}function oX(e,t,n,i,o){let r=Pn(e,"href",Re.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(Qn(e,"x",Re.gx),0),u=y(Qn(e,"y",Re.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=nX(r,n,i);if(o){let a=Pn(e,"refreshMode",Re.kml),c=Pn(e,"viewRefreshMode",Re.kml);a==="onInterval"||a==="onExpire"?xt(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&xt(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(Pn(e,"viewBoundScale",Re.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(Pn(e,"viewFormat",Re.kml),f),p=Pn(e,"httpQuery",Re.kml);l(d)&&s.setQueryParameters(cu(UH(d))),l(p)&&s.setQueryParameters(cu(UH(p)));let g=t._ellipsoid;return sX(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function dst(e,t,n,i,o){let r=Qn(t,"scale",Re.kml),s=Qn(t,"heading",Re.kml),a=ST(t,"color",Re.kml),c=Mi(t,"Icon",Re.kml),u=oX(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=Qn(c,"x",Re.gx),d=Qn(c,"y",Re.gx),p=Qn(c,"w",Re.gx),g=Qn(c,"h",Re.gx),m=Mi(t,"hotSpot",Re.kml),x=y0(m,"x"),b=y0(m,"y"),T=Ms(m,"xunits"),C=Ms(m,"yunits"),A=n.billboard;l(A)||(A=xye(),n.billboard=A),A.image=u,A.scale=r,A.color=a,(l(f)||l(d)||l(p)||l(g))&&(A.imageSubRegion=new je(f,d,p,g)),l(s)&&s!==0&&(A.rotation=P.toRadians(-s),A.alignedAxis=h.UNIT_Z),r=y(r,1);let E,v;l(x)&&(T==="pixels"?E=-x*r:T==="insetPixels"?E=(x-g0)*r:T==="fraction"&&(E=-x*g0*r),E+=g0*.5*r),l(b)&&(C==="pixels"?v=b*r:C==="insetPixels"?v=(-b+g0)*r:C==="fraction"&&(v=b*g0*r),v-=g0*.5*r),(l(E)||l(v))&&(A.pixelOffset=new z(E,v))}function VH(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")dst(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=bye(),n.label=c),c.scale=y(Qn(a,"scale",Re.kml),c.scale),c.fillColor=y(ST(a,"color",Re.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new ac,n.polyline=c),c.width=Qn(a,"width",Re.kml),c.material=ST(a,"color",Re.kml),l(ST(a,"outerColor",Re.gx))&&xt("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(Qn(a,"outerWidth",Re.gx))&&xt("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(Qn(a,"physicalWidth",Re.gx))&&xt("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(wh(a,"labelVisibility",Re.gx))&&xt("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=iX(),n.polygon=c),c.material=y(ST(a,"color",Re.kml),c.material),c.fill=y(wh(a,"fill",Re.kml),c.fill),c.outline=y(wh(a,"outline",Re.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(QY(Pn(a,"bgColor",Re.kml)),H.WHITE),u=y(QY(Pn(a,"textColor",Re.kml)),H.BLACK),f=Pn(a,"text",Re.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:u,text:f}}else if(a.localName==="ListStyle"){let c=Pn(a,"listItemType",Re.kml);(c==="radioFolder"||c==="checkOffOnly")&&xt(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function hst(e,t,n,i,o){let r=new er,s,a=-1,c=t.childNodes,u=c.length;for(let d=0;d<u;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")VH(e,d,r,i,o);else{let p=vh(d,"Pair",Re.kml);for(let g=0;g<p.length;g++){let m=p[g],x=Pn(m,"key",Re.kml);if(x==="normal"){let b=Pn(m,"styleUrl",Re.kml);if(l(b))s=n.getById(b),l(s)||(s=n.getById(`#${b}`)),l(s)&&r.merge(s);else{let T=Mi(m,"Style",Re.kml);VH(e,T,r,i,o)}}else xt(`kml-styleMap-${x}`,`KML - Unsupported StyleMap key: ${x}`)}}}let f=Pn(t,"styleUrl",Re.kml);if(l(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),l(s)||(s=n.getById(`#${d}`)),l(s)&&r.merge(s)}return r}function mst(e,t,n){return t.fetchXML().then(function(i){return Tye(e,i,n,t,!0)})}function Tye(e,t,n,i,o,r){let s,a,c,u,f=fye(t,"Style",Re.kml);if(l(f)){let x=f.length;for(s=0;s<x;s++)u=f[s],a=Ms(u,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new er({id:a}),n.add(c),VH(e,u,c,i,r)))}let d=fye(t,"StyleMap",Re.kml);if(l(d)){let x=d.length;for(s=0;s<x;s++){let b=d[s];if(a=Ms(b,"id"),l(a)){let T=vh(b,"Pair",Re.kml);for(let C=0;C<T.length;C++){let A=T[C],E=Pn(A,"key",Re.kml);if(E==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let v=Pn(A,"styleUrl",Re.kml);if(l(v)){v[0]!=="#"&&(v=`#${v}`),o&&l(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);l(D)&&c.merge(D)}else u=Mi(A,"Style",Re.kml),VH(e,u,c,i,r)}}else xt(`kml-styleMap-${E}`,`KML - Unsupported StyleMap key: ${E}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),m=g.length;for(s=0;s<m;s++){let x=g[s].textContent;if(x[0]!=="#"){let b=x.split("#");if(b.length===2){let T=b[0],C=i.getDerivedResource({url:T});p.push(mst(e,C,n))}}}return p}function rX(e,t,n){let i=new H_(e,t.id,["position"]),o=new Mm(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new ac,t.polyline.positions=new z_([i,o])}function Cye(e,t){return!l(e)&&!l(t)||e==="clampToGround"?Ye.CLAMP_TO_GROUND:e==="relativeToGround"?Ye.RELATIVE_TO_GROUND:e==="absolute"?Ye.NONE:t==="clampToSeaFloor"?(xt("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),Ye.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(xt("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),Ye.RELATIVE_TO_GROUND):(l(e)?xt("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):xt("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),Ye.CLAMP_TO_GROUND)}function pst(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new Mm(e))}function _st(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function HH(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():bye(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():xye(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(H.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new z(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function Aye(e,t){let n=e.path;l(n)||(n=new kp,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function gst(e,t,n,i,o){let r=Pn(n,"coordinates",Re.kml),s=Pn(n,"altitudeMode",Re.kml),a=Pn(n,"altitudeMode",Re.gx),c=wh(n,"extrude",Re.kml),u=e._ellipsoid,f=zH(r,u);return i.position=f,HH(e,i,o,Cye(s,a)),c&&SF(s,a)&&rX(t,i,o),!0}function dye(e,t,n,i,o){let r=Mi(n,"coordinates",Re.kml),s=Pn(n,"altitudeMode",Re.kml),a=Pn(n,"altitudeMode",Re.gx),c=wh(n,"extrude",Re.kml),u=wh(n,"tessellate",Re.kml),f=SF(s,a),d=Qn(n,"drawOrder",Re.gx),p=e._ellipsoid,g=kH(r,p),m=o.polyline;if(f&&c){let x=new Vp;i.wall=x,x.positions=g;let b=o.polygon;l(b)&&(x.fill=b.fill,x.material=b.material),x.outline=!0,l(m)?(x.outlineColor=l(m.material)?m.material.color:H.WHITE,x.outlineWidth=m.width):l(b)&&(x.outlineColor=l(b.material)?b.material.color:H.WHITE)}else if(e._clampToGround&&!f&&u){let x=new ac;x.clampToGround=!0,i.polyline=x,x.positions=g,l(m)?(x.material=l(m.material)?m.material.color.getValue(He.MINIMUM_VALUE):H.WHITE,x.width=y(m.width,1)):(x.material=H.WHITE,x.width=1),x.zIndex=d}else l(d)&&xt("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!u&&xt("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=l(m)?m.clone():new ac,i.polyline=m,m.positions=_st(g,s,a,p),(!u||f)&&(m.arcType=Jt.NONE);return!0}function yst(e,t,n,i,o){let r=Mi(n,"outerBoundaryIs",Re.kml),s=Mi(r,"LinearRing",Re.kml),a=Mi(s,"coordinates",Re.kml),c=e._ellipsoid,u=kH(a,c),f=wh(n,"extrude",Re.kml),d=Pn(n,"altitudeMode",Re.kml),p=Pn(n,"altitudeMode",Re.gx),g=SF(d,p),m=l(o.polygon)?o.polygon.clone():iX(),x=o.polyline;if(l(x)&&(m.outlineColor=l(x.material)?x.material.color:H.WHITE,m.outlineWidth=x.width),i.polygon=m,g?(m.perPositionHeight=!0,m.extrudedHeight=f?0:void 0):e._clampToGround||(m.height=0),l(u)){let b=new Oa(u),T=vh(n,"innerBoundaryIs",Re.kml);for(let C=0;C<T.length;C++){s=vh(T[C],"LinearRing",Re.kml);for(let A=0;A<s.length;A++)a=Mi(s[A],"coordinates",Re.kml),u=kH(a,c),l(u)&&b.holes.push(new Oa(u))}m.hierarchy=b}return!0}function xst(e,t,n,i,o){let r=Pn(n,"altitudeMode",Re.kml),s=Pn(n,"altitudeMode",Re.gx),a=vh(n,"coord",Re.gx),c=vh(n,"angles",Re.gx),u=vh(n,"when",Re.kml),f=wh(n,"extrude",Re.kml),d=SF(r,s),p=e._ellipsoid;c.length>0&&xt("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),m=[],x=[];for(let T=0;T<g;T++){let C=zH(a[T].textContent,p);m.push(C),x.push(Z.fromIso8601(u[T].textContent))}let b=new _a;return b.addSamples(x,m),i.position=b,HH(e,i,o,Cye(r,s)),Aye(i,o),i.availability=new Hr,u.length>0&&i.availability.addInterval(new Cn({start:x[0],stop:x[x.length-1]})),d&&f&&rX(t,i,o),!0}function hye(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new _a;d.addSamples(e,t),n.intervals.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:pst(d,s,a)})),i.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Cn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function bst(e,t,n,i,o){let r=wh(n,"interpolate",Re.gx),s=vh(n,"Track",Re.gx),a,c,u,f=!1,d=new W_,p=new Hr,g=new ma,m=e._ellipsoid;for(let x=0,b=s.length;x<b;x++){let T=s[x],C=vh(T,"when",Re.kml),A=vh(T,"coord",Re.gx),E=Pn(T,"altitudeMode",Re.kml),v=Pn(T,"altitudeMode",Re.gx),D=SF(E,v),O=wh(T,"extrude",Re.kml),R=Math.min(A.length,C.length),M=[];a=[];for(let N=0;N<R;N++){let _=zH(A[N].textContent,m);M.push(_),a.push(Z.fromIso8601(C[N].textContent))}r&&(l(c)&&hye([c,a[0]],[u,M[0]],g,p,d,!1,"absolute",void 0,!1),c=a[R-1],u=M[M.length-1]),hye(a,M,g,p,d,D&&O,E,v,!0),f=f||D&&O}return i.availability=p,i.position=g,HH(e,i,o),Aye(i,o),f&&(rX(t,i,o),i.polyline.show=d),!0}var Eye={Point:gst,LineString:dye,LinearRing:dye,Polygon:yst,Track:xst,MultiTrack:bst,MultiGeometry:Tst,Model:Cst};function Tst(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,u=s.length;c<u;c++){let f=s.item(c),d=Eye[f.localName];if(l(d)){let p=yye(f,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,o)&&(a=!0)}}return a}function Cst(e,t,n,i,o){return xt("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function Ast(e,t){let n=Mi(e,"ExtendedData",Re.kml);if(!l(n))return;l(Mi(n,"SchemaData",Re.kml))&&xt("kml-schemaData","KML - SchemaData is unsupported"),l(Ms(n,"xmlns:prefix"))&&xt("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=vh(n,"Data",Re.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=Ms(a,"name");l(c)&&(i[c]={displayName:Pn(a,"displayName",Re.kml),value:Pn(a,"value",Re.kml)})}}t.kml.extendedData=i}var _o;typeof document<"u"&&(_o=document.createElement("div"));function Est(e,t,n,i,o){let r,s,a,c=t.kml,u=c.extendedData,f=Pn(e,"description",Re.kml),d=y(t.balloonStyle,n.balloonStyle),p=H.WHITE,g=H.BLACK,m=f;l(d)&&(p=y(d.bgColor,H.WHITE),g=y(d.textColor,H.BLACK),m=y(d.text,f));let x;if(l(m)){if(m=m.replace("$[name]",y(t.name,"")),m=m.replace("$[description]",y(f,"")),m=m.replace("$[address]",y(c.address,"")),m=m.replace("$[Snippet]",y(c.snippet,"")),m=m.replace("$[id]",t.id),m=m.replace("$[geDirections]",""),l(u)){let C=m.match(/\$\[.+?\]/g);if(C!==null)for(r=0;r<C.length;r++){let A=C[r],E=A.substr(2,A.length-3),v=/\/displayName$/.test(E);E=E.replace(/\/displayName$/,""),x=u[E],l(x)&&(x=v?x.displayName:x.value),l(x)&&(m=m.replace(A,y(x,"")))}}}else if(l(u)&&(a=Object.keys(u),a.length>0)){for(m='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],x=u[s],m+=`<tr><th>${y(x.displayName,s)}</th><td>${y(x.value,"")}</td></tr>`;m+="</tbody></table>"}if(!l(m))return;m=rst.link(m),_o.innerHTML=m;let b=_o.querySelectorAll("a");for(r=0;r<b.length;r++)b[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Wu(_o,"a","href",i),Wu(_o,"link","href",i),Wu(_o,"area","href",i),Wu(_o,"img","src",i),Wu(_o,"iframe","src",i),Wu(_o,"video","src",i),Wu(_o,"audio","src",i),Wu(_o,"source","src",i),Wu(_o,"track","src",i),Wu(_o,"input","src",i),Wu(_o,"embed","src",i),Wu(_o,"script","src",i),Wu(_o,"video","poster",i)),ju(_o,"a","href",o),ju(_o,"link","href",o),ju(_o,"area","href",o),ju(_o,"img","src",o),ju(_o,"iframe","src",o),ju(_o,"video","src",o),ju(_o,"audio","src",o),ju(_o,"source","src",o),ju(_o,"track","src",o),ju(_o,"input","src",o),ju(_o,"embed","src",o),ju(_o,"script","src",o),ju(_o,"video","poster",o);let T='<div class="cesium-infoBox-description-lighter" style="';T+="overflow:auto;",T+="word-wrap:break-word;",T+=`background-color:${p.toCssColorString()};`,T+=`color:${g.toCssColorString()};`,T+='">',T+=`${_o.innerHTML}</div>`,_o.innerHTML="",t.description=T}function GH(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=yye(t,i,n.context),c=a.kml,u=hst(e,t,n.styleCollection,r,s),f=Pn(t,"name",Re.kml);a.name=f,a.parent=o;let d=fst(t);l(d)||(d=ust(t)),a.availability=d,cX(a);function p(A){return A?A.show&&p(A.parent):!0}let g=wh(t,"visibility",Re.kml);a.show=p(o)&&y(g,!0);let m=Mi(t,"author",Re.atom),x=c.author;x.name=Pn(m,"name",Re.atom),x.uri=Pn(m,"uri",Re.atom),x.email=Pn(m,"email",Re.atom);let b=Mi(t,"link",Re.atom),T=c.link;T.href=Ms(b,"href"),T.hreflang=Ms(b,"hreflang"),T.rel=Ms(b,"rel"),T.type=Ms(b,"type"),T.title=Ms(b,"title"),T.length=Ms(b,"length"),c.address=Pn(t,"address",Re.kml),c.phoneNumber=Pn(t,"phoneNumber",Re.kml),c.snippet=Pn(t,"Snippet",Re.kml),Ast(t,a),Est(t,a,u,s,r);let C=e._ellipsoid;return wye(t,a,C),vye(t,a,C),l(Mi(t,"Region",Re.kml))&&xt("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function Sye(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function Sst(e,t,n,i){let o=GH(e,t,n),r=Ge(n);r.parentEntity=o.entity,Sye(e,t,r,i)}function vst(e,t,n,i){let o=GH(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;u<f&&!a;u++){let d=c.item(u),p=Eye[d.localName];l(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),HH(e,r,s))}var wst={FlyTo:Pst,Wait:Ist,SoundCue:KY,AnimatedUpdate:KY,TourControl:KY};function Dst(e,t,n,i){let o=Pn(t,"name",Re.kml),r=Ms(t,"id"),s=new bF(o,r),a=Mi(t,"Playlist",Re.gx);if(a){let c=e._ellipsoid,u=a.childNodes;for(let f=0;f<u.length;f++){let d=u[f];if(d.localName){let p=wst[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function KY(e,t){xt(`KML Tour unsupported node ${t.localName}`)}function Ist(e,t){let n=Qn(t,"duration",Re.gx);e.addPlaylistEntry(new AF(n))}function Pst(e,t,n){let i=Qn(t,"duration",Re.gx),o=Pn(t,"flyToMode",Re.gx),r={kml:{}};wye(t,r,n),vye(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new CF(i,o,s);e.addPlaylistEntry(a)}function vye(e,t,n){let i=Mi(e,"Camera",Re.kml);if(l(i)){let o=y(Qn(i,"longitude",Re.kml),0),r=y(Qn(i,"latitude",Re.kml),0),s=y(Qn(i,"altitude",Re.kml),0),a=y(Qn(i,"heading",Re.kml),0),c=y(Qn(i,"tilt",Re.kml),0),u=y(Qn(i,"roll",Re.kml),0),f=h.fromDegrees(o,r,s,n),d=Sa.fromDegrees(a,c-90,u);t.kml.camera=new eF(f,d)}}function wye(e,t,n){let i=Mi(e,"LookAt",Re.kml);if(l(i)){let o=y(Qn(i,"longitude",Re.kml),0),r=y(Qn(i,"latitude",Re.kml),0),s=y(Qn(i,"altitude",Re.kml),0),a=Qn(i,"heading",Re.kml),c=Qn(i,"tilt",Re.kml),u=y(Qn(i,"range",Re.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new od(a,c-P.PI_OVER_TWO,u),d=h.fromDegrees(o,r,s,n);t.kml.lookAt=new xF(d,f)}}function Rst(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Mi(t,"Icon",Re.kml),c=oX(a,e,r,s,!1);if(!l(c))return;let u=document.createElement("img");e._screenOverlays.push(u),u.src=c.url,u.onload=function(){let f=["position: absolute"],d=Mi(t,"screenXY",Re.kml),p=Mi(t,"overlayXY",Re.kml),g=Mi(t,"size",Re.kml),m,x,b,T,C,A;l(g)&&(m=y0(g,"x"),x=y0(g,"y"),b=Ms(g,"xunits"),T=Ms(g,"yunits"),l(m)&&m!==-1&&m!==0&&(b==="fraction"?C=`width: ${Math.floor(m*100)}%`:b==="pixels"&&(C=`width: ${m}px`),f.push(C)),l(x)&&x!==-1&&x!==0&&(T==="fraction"?A=`height: ${Math.floor(x*100)}%`:T==="pixels"&&(A=`height: ${x}px`),f.push(A))),u.style=f.join(";");let E=0,v=u.height;l(p)&&(m=y0(p,"x"),x=y0(p,"y"),b=Ms(p,"xunits"),T=Ms(p,"yunits"),l(m)&&(b==="fraction"?E=m*u.width:(b==="pixels"||b==="insetPixels")&&(E=m)),l(x)&&(T==="fraction"?v=x*u.height:(T==="pixels"||T==="insetPixels")&&(v=x))),l(d)&&(m=y0(d,"x"),x=y0(d,"y"),b=Ms(d,"xunits"),T=Ms(d,"yunits"),l(m)&&(b==="fraction"?C=`left: calc(${Math.floor(m*100)}% - ${E}px)`:b==="pixels"?C=`left: ${m-E}px`:b==="insetPixels"&&(C=`right: ${m-E}px`),f.push(C)),l(x)&&(T==="fraction"?A=`bottom: calc(${Math.floor(x*100)}% - ${v}px)`:T==="pixels"?A=`bottom: ${x-v}px`:T==="insetPixels"&&(A=`top: ${x-v}px`),f.push(A))),u.style=f.join(";")},o.appendChild(u)}function Ost(e,t,n,i){let r=GH(e,t,n).entity,s,a=!1,c=e._ellipsoid,u=kH(Mi(t,"LatLonQuad",Re.gx),c),f=Qn(t,"drawOrder",Re.kml);if(l(u))s=iX(),s.hierarchy=new Oa(u),s.zIndex=f,r.polygon=s,a=!0;else{s=new kd,s.zIndex=f,r.rectangle=s;let m=Mi(t,"LatLonBox",Re.kml);if(l(m)){let x=Qn(m,"west",Re.kml),b=Qn(m,"south",Re.kml),T=Qn(m,"east",Re.kml),C=Qn(m,"north",Re.kml);l(x)&&(x=P.negativePiToPi(P.toRadians(x))),l(b)&&(b=P.clampToLatitudeRange(P.toRadians(b))),l(T)&&(T=P.negativePiToPi(P.toRadians(T))),l(C)&&(C=P.clampToLatitudeRange(P.toRadians(C))),s.coordinates=new re(x,b,T,C);let A=Qn(m,"rotation",Re.kml);if(l(A)){let E=P.toRadians(A);s.rotation=E,s.stRotation=E}}}let d=Mi(t,"Icon",Re.kml),p=oX(d,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&xt("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=Qn(d,"x",Re.gx),x=Qn(d,"y",Re.gx),b=Qn(d,"w",Re.gx),T=Qn(d,"h",Re.gx);(l(m)||l(x)||l(b)||l(T))&&xt("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=ST(t,"color",Re.kml),s.material.transparent=!0}else s.material=ST(t,"color",Re.kml);let g=Pn(t,"altitudeMode",Re.kml);l(g)?g==="absolute"?(s.height=Qn(t,"altitude",Re.kml),s.zIndex=void 0):g!=="clampToGround"&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=Pn(t,"altitudeMode",Re.gx),g==="relativeToSeaFloor"?(xt("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=Qn(t,"altitude",Re.kml),s.zIndex=void 0):g==="clampToSeaFloor"?xt("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(g)&&xt("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function Dye(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),xt(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var x0={INTERVAL:0,EXPIRE:1,STOP:2};function UH(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var Mst=new re,LS=new fe,ZY=new z,Lst=new h;function sX(e,t,n,i,o,r){function s(u){return u<-P.PI_OVER_TWO?-P.PI_OVER_TWO:u>P.PI_OVER_TWO?P.PI_OVER_TWO:u}function a(u){return u>P.PI?u-P.TWO_PI:u<-P.PI?u+P.TWO_PI:u}let c=tx(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,Mst),l(n)&&(ZY.x=n.clientWidth*.5,ZY.y=n.clientHeight*.5,u=t.pickEllipsoid(ZY,r,Lst)),l(u)?f=r.cartesianToCartographic(u,LS):(f=re.center(o,LS),u=r.cartographicToCartesian(f)),l(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let T=o.width*i*.5,C=o.height*i*.5;o=new re(a(f.longitude-T),s(f.latitude-C),a(f.longitude+T),s(f.latitude+C))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,LS),c=c.replace("[cameraLon]",P.toDegrees(LS.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(LS.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(LS.height).toString());let g=t.frustum,m=g.aspectRatio,x="",b="";if(l(m)){let T=P.toDegrees(g.fov);m>1?(x=T,b=T/m):(b=T,x=T*m)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",b.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(cu(c))}function Nst(e,t,n,i){let r=GH(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Mi(t,"Link",Re.kml);if(l(c)||(c=Mi(t,"Url",Re.kml)),l(c)){let u=Pn(c,"href",Re.kml),f,d;if(l(u)){let p=u;if(u=nX(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=Pn(c,"viewRefreshMode",Re.kml),f==="onRegion"){xt("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(Pn(c,"viewBoundScale",Re.kml),1);let b=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",T=y(Pn(c,"viewFormat",Re.kml),b),C=Pn(c,"httpQuery",Re.kml);l(T)&&u.setQueryParameters(cu(UH(T))),l(C)&&u.setQueryParameters(cu(UH(C)));let A=e._ellipsoid;sX(u,e.camera,e.canvas,d,e._lastCameraView.bbox,A)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},m=new $s,x=aX(e,m,u,g).then(function(b){let T=e._entityCollection,C=m.values;T.suspendEvents();for(let v=0;v<C.length;v++){let D=C[v];l(D.parent)||(D.parent=r,cX(D)),T.add(D)}T.resumeEvents();let A=Pn(c,"refreshMode",Re.kml),E=y(Qn(c,"refreshInterval",Re.kml),0);if(A==="onInterval"&&E>0||A==="onExpire"||f==="onStop"){let v=Mi(b,"NetworkLinkControl",Re.kml),D=l(v),O=Z.now(),R={id:Hn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},M=0;if(D&&(R.cookie=cu(y(Pn(v,"cookie",Re.kml),"")),M=y(Qn(v,"minRefreshPeriod",Re.kml),0)),A==="onInterval")D&&(E=Math.max(M,E)),R.refreshMode=x0.INTERVAL,R.time=E;else if(A==="onExpire"){let N;if(D&&(N=Pn(v,"expires",Re.kml)),l(N))try{let _=Z.fromIso8601(N),S=Z.secondsDifference(_,O);S>0&&S<M&&Z.addSeconds(O,M,_),R.refreshMode=x0.EXPIRE,R.time=_}catch{xt("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else xt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(R.refreshMode=x0.STOP,R.time=y(Qn(c,"viewRefreshTime",Re.kml),0)):xt("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(R.refreshMode)&&e._networkLinks.set(R.id,R)}}).catch(function(b){xt(`An error occured during loading ${u.url}`),e._error.raiseEvent(e,b)});i.addPromise(x)}}}function Fst(e,t,n,i){let o=tX[t.localName];return l(o)?o(e,t,n,i):Dye(e,t,n,i)}function JY(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Mi(a,"Document",Re.kml),u=Pn(c,"name",Re.kml);l(u)||(u=V_(i.getUrlComponent())),l(e._name)||(e._name=u);let f=new qu._DeferredLoading(e),d=new $s(e);return Promise.all(Tye(e,n,d,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let m=p.childNodes;for(let x=0;x<m.length;x++){let b=m[x];if(l(tX[b.localName])){p=b;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),Fst(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function Bst(e,t,n,i,o){let r=nn("ThirdParty/Workers/z-worker-pako.js");SS({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new RH(new ng(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],u={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!l(f)||!/\//i.test(p.filename))?(l(f)&&c.push(XY(f,u)),f=p):c.push(XY(p,u)))}return l(f)&&c.push(lst(f,u)),Promise.all(c).then(function(){if(s.close(),!l(u.kml))throw new ce("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),JY(e,t,u.kml,i,u,o)})})}function aX(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof we){n=we.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let u=e._resourceCredits,f=n.credits;if(l(f)){let d=f.length;for(let p=0;p<d;p++)u.push(f[p])}}else o=y(o,we.DEFAULT.clone());return o=we.createIfNeeded(o),l(a)&&(a=In(a)),Promise.resolve(c).then(function(u){return u instanceof Blob?ast(u).then(function(f){return f?Bst(e,t,u,o,a):cst(u).then(function(d){d=_ye(d),d=gye(d);let p,g;try{p=eX.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(l(g)||p.body||p.documentElement.tagName==="parsererror"){let m=l(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new ce(m)}return JY(e,t,p,o,r,a,s)})}):JY(e,t,u,o,r,a,s)}).catch(function(u){return e._error.raiseEvent(e,u),console.log(u),Promise.reject(u)})}function qu(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new me,this._error=new me,this._loading=new me,this._refresh=new me,this._unsupportedNode=new me,this._clock=void 0,this._entityCollection=new $s(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new $_,this._networkLinks=new Et,this._entityCluster=new Ou,this.canvas=n,this.camera=t,this._lastCameraView={position:l(t)?h.clone(t.positionWC):void 0,direction:l(t)?h.clone(t.directionWC):void 0,up:l(t)?h.clone(t.upWC):void 0,bbox:l(t)?t.computeViewRectangle():re.clone(re.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,ee.default);let i=e.credit;typeof i=="string"&&(i=new vt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}qu.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new qu(t).load(e,t)};Object.defineProperties(qu.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}},kmlTours:{get:function(){return this._kmlTours}}});qu.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),Gr.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return aX(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=Z.equals(s,He.MINIMUM_VALUE),u=Z.equals(a,He.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=Z.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=Z.fromDate(d)),o=new mh,o.startTime=s,o.stopTime=a,o.currentTime=Z.clone(s),o.clockRange=Wr.LOOP_STOP,o.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(Z.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),Gr.setLoading(i,!1),i}).catch(function(o){return Gr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};qu.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function cX(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function kst(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Mi(r,"NetworkLinkControl",Re.kml),c=l(a),u=0;if(c){if(l(Mi(a,"Update",Re.kml))){xt("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=cu(y(Pn(a,"cookie",Re.kml),"")),u=y(Qn(a,"minRefreshPeriod",Re.kml),0)}let f=Z.now(),d=t.refreshMode;if(d===x0.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===x0.EXPIRE){let O;if(l(a)&&(O=Pn(a,"expires",Re.kml)),l(O))try{let R=Z.fromIso8601(O),M=Z.secondsDifference(R,f);M>0&&M<u&&Z.addSeconds(f,u,R),t.time=R}catch{xt("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else xt("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,m=n.values;function x(O){g.remove(O);let R=O._children,M=R.length;for(let N=0;N<M;++N)x(R[N])}g.suspendEvents();let b=g.values.slice(),T;for(T=0;T<b.length;++T){let O=b[T];O.parent===p&&(O.parent=void 0,x(O))}for(g.resumeEvents(),g.suspendEvents(),T=0;T<m.length;T++){let O=m[T];l(O.parent)||(O.parent=p,cX(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let C=g.computeAvailability(),A=C.start,E=C.stop,v=Z.equals(A,He.MINIMUM_VALUE),D=Z.equals(E,He.MAXIMUM_VALUE);if(!v||!D){let O=e._clock;(O.startTime!==A||O.stopTime!==E)&&(O.startTime=A,O.stopTime=E,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var $Y=new Et;qu.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=Z.now(),i=this;$Y.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];$Y.set(m.id,m),o(m)}}let r=!1,s=this._lastCameraView,a=this.camera;l(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.EPSILON7))&&(s.position=h.clone(a.positionWC),s.direction=h.clone(a.directionWC),s.up=h.clone(a.upWC),s.bbox=a.computeViewRectangle(),r=!0);let c=new Et,u=!1;return t.values.forEach(function(f){let d=f.entity;if(!$Y.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===x0.INTERVAL?Z.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===x0.EXPIRE?Z.greaterThan(n,f.time)&&(p=!0):f.refreshMode===x0.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&Z.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new $s,m=f.href.clone();m.setQueryParameters(f.cookie);let x=y(i._ellipsoid,ee.default);sX(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,x),aX(i,g,m,{context:d.id}).then(kst(i,f,g,c,m)).catch(function(b){let T=`NetworkLink ${f.href} refresh failed: ${b}`;console.log(T),i._error.raiseEvent(i,T)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function Vst(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}qu._DeferredLoading=qm;qu._getTimestamp=xi;var vF=qu;function wF(){he.throwInstantiationError()}wF.prototype.update=he.throwInstantiationError;wF.prototype.getBoundingSphere=he.throwInstantiationError;wF.prototype.isDestroyed=he.throwInstantiationError;wF.prototype.destroy=he.throwInstantiationError;var lX=wF;var uX=32,Ust="http://www.opengis.net/kml/2.2",Ih="http://www.google.com/kml/ext/2.2",zst="http://www.w3.org/2000/xmlns/";function WH(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var Hst=/^data:image\/([^,;]+)/;WH.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof we){if(e=we.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(Hst);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function Gst(e,t){return function(n){e._files[t]=n}}WH.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new ce("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(Gst(this,r))}return o};Object.defineProperties(WH.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function jH(e){this._time=e}jH.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};jH.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return wT(n)};jH.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function fX(){this._ids={},this._styles={},this._count=0}fX.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};fX.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function Rye(){this._ids={}}Rye.prototype.get=function(e){if(!l(e))return this.get(Hn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function dX(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=dX._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(zst,"xmlns:gx",Ih);let a=r.createElement("Document");s.appendChild(a),Mye(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?Wst(f,c.files):{kml:f,externalFiles:c.files}})}function Wst(e,t){let n=nn("ThirdParty/Workers/z-worker-pako.js");SS({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new hF,o=new LH(i);return o.add("doc.kml",new _H(e)).then(function(){let r=Object.keys(t);return Oye(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function Oye(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new ng(n[o])).then(function(){return Oye(e,t,n,i+1)})}dX._createState=function(e){let t=e.entities,n=new fX,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===He.MINIMUM_VALUE?r.stop===He.MAXIMUM_VALUE?r=new Cn:Z.addSeconds(r.stop,-10*s,r.start):r.stop===He.MAXIMUM_VALUE&&Z.addSeconds(r.start,10*s,r.stop);let a=new WH(e.modelCallback);return{kmlDoc:document.implementation.createDocument(Ust,"kml"),ellipsoid:y(e.ellipsoid,ee.default),idManager:new Rye,styleCache:n,externalFileHandler:a,time:o,valueGetter:new jH(o),sampleDuration:s,defaultAvailability:new Hr([r])}};function Mye(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d<a;++d){let p=n[d];c=[],u=[],f=[],jst(e,p,u,f),qst(e,p.polyline,u,f),Pye(e,p.rectangle,u,f,c),Pye(e,p.polygon,u,f,c),Zst(e,p,p.model,u,f);let g,m=p.availability;l(m)&&(g=i.createElement("TimeSpan"),Z.equals(m.start,He.MINIMUM_VALUE)||g.appendChild(dn(i,"begin",Z.toIso8601(m.start))),Z.equals(m.stop,He.MAXIMUM_VALUE)||g.appendChild(dn(i,"end",Z.toIso8601(m.stop))));for(let T=0;T<c.length;++T){let C=c[T];C.setAttribute("id",s.get(p.id)),C.appendChild(dn(i,"name",p.name)),C.appendChild(dn(i,"visibility",p.show)),C.appendChild(dn(i,"description",p.description)),l(g)&&C.appendChild(g),t.appendChild(C)}let x=u.length;if(x>0){let T=i.createElement("Placemark");T.setAttribute("id",s.get(p.id));let C=p.name,A=p.label;if(l(A)){let v=i.createElement("LabelStyle"),D=r.get(A.text);C=l(D)&&D.length>0?D:C;let O=r.getColor(A.fillColor);l(O)&&(v.appendChild(dn(i,"color",O)),v.appendChild(dn(i,"colorMode","normal")));let R=r.get(A.scale);l(R)&&v.appendChild(dn(i,"scale",R)),f.push(v)}T.appendChild(dn(i,"name",C)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),l(g)&&T.appendChild(g),t.appendChild(T);let E=f.length;if(E>0){let v=i.createElement("Style");for(let D=0;D<E;++D)v.appendChild(f[D]);T.appendChild(dn(i,"styleUrl",o.get(v)))}if(u.length===1)T.appendChild(u[0]);else if(u.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<x;++D)v.appendChild(u[D]);T.appendChild(v)}}let b=p._children;if(b.length>0){let T=i.createElement("Folder");T.setAttribute("id",s.get(p.id)),T.appendChild(dn(i,"name",p.name)),T.appendChild(dn(i,"visibility",p.show)),T.appendChild(dn(i,"description",p.description)),t.appendChild(T),Mye(e,T,b)}}}var Ql=new h,ll=new fe,Dh=new Z;function jst(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){Lye(e,t,a,n,i);return}s.get(c,void 0,Ql);let u=dn(o,"coordinates",vT(Ql,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(DT(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof oc?Fye(e,a):Nye(e,a);i.push(p)}function Lye(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof ma?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof Bp,p,g,m,x=[];for(p=0;p<c.length;++p){let T=c.get(p),C=f?u:T.data,A=r.createElement("altitudeMode");C instanceof Mm?(C=C._value,A.appendChild(DT(e,Ye.CLAMP_TO_GROUND))):l(n)?A.appendChild(DT(e,n.heightReference)):A.appendChild(DT(e,Ye.NONE));let E=[],v=[];if(C.isConstant){a.get(C,void 0,Ql);let O=dn(r,"coordinates",vT(Ql,s));E.push(Z.toIso8601(T.start)),v.push(O),E.push(Z.toIso8601(T.stop)),v.push(O)}else if(C instanceof _a)for(m=C._property._times,g=0;g<m.length;++g)E.push(Z.toIso8601(m[g])),C.getValueInReferenceFrame(m[g],Vi.FIXED,Ql),v.push(vT(Ql,s));else if(C instanceof Fu){m=C._times;let O=C._values;for(g=0;g<m.length;++g)E.push(Z.toIso8601(m[g])),h.fromArray(O,g*3,Ql),v.push(vT(Ql,s))}else{let O=e.sampleDuration;T.start.clone(Dh),T.isStartIncluded||Z.addSeconds(Dh,O,Dh);let R=T.stop;for(;Z.lessThan(Dh,R);)C.getValue(Dh,Ql),E.push(Z.toIso8601(Dh)),v.push(vT(Ql,s)),Z.addSeconds(Dh,O,Dh);T.isStopIncluded&&Z.equals(Dh,R)&&(C.getValue(Dh,Ql),E.push(Z.toIso8601(Dh)),v.push(vT(Ql,s)))}let D=r.createElementNS(Ih,"Track");D.appendChild(A);for(let O=0;O<E.length;++O){let R=dn(r,"when",E[O]),M=dn(r,"coord",v[O],Ih);D.appendChild(R),D.appendChild(M)}d&&D.appendChild(Bye(e,n)),x.push(D)}if(x.length===1)i.push(x[0]);else if(x.length>1){let T=r.createElementNS(Ih,"MultiTrack");for(p=0;p<x.length;++p)T.appendChild(x[p]);i.push(T)}if(l(n)&&!d){let T=n instanceof oc?Fye(e,n):Nye(e,n);o.push(T)}let b=t.path;if(l(b)){let T=a.get(b.width),C=b.material;if(l(C)||l(T)){let A=r.createElement("LineStyle");l(T)&&A.appendChild(dn(r,"width",T)),hX(e,C,A),o.push(A)}}}function Nye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(dn(n,"color",r)),o.appendChild(dn(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(dn(n,"scale",s/uX)),o}function Fye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(dn(n,"href",s));let g=i.get(t.imageSubRegion);l(g)&&(p.appendChild(dn(n,"x",g.x,Ih)),p.appendChild(dn(n,"y",g.y,Ih)),p.appendChild(dn(n,"w",g.width,Ih)),p.appendChild(dn(n,"h",g.height,Ih))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(dn(n,"color",a)),r.appendChild(dn(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(dn(n,"scale",c));let u=i.get(t.pixelOffset);if(l(u)){c=y(c,1),z.divideByScalar(u,c,u);let p=i.get(t.width,uX),g=i.get(t.height,uX),m=i.get(t.horizontalOrigin,_i.CENTER);m===_i.CENTER?u.x-=p*.5:m===_i.RIGHT&&(u.x-=p);let x=i.get(t.verticalOrigin,Rn.CENTER);x===Rn.TOP?u.y+=g:x===Rn.CENTER&&(u.y+=g*.5);let b=n.createElement("hotSpot");b.setAttribute("x",-u.x),b.setAttribute("y",u.y),b.setAttribute("xunits","pixels"),b.setAttribute("yunits","pixels"),r.appendChild(b)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return l(f)&&h.equals(h.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),r.appendChild(dn(n,"heading",f))),r}function qst(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),u=s.get(t.clampToGround,!1),f;u?(a.appendChild(dn(o,"tessellate",!0)),f=o.createTextNode("clampToGround")):f=o.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=dn(o,"coordinates",vT(p,r));a.appendChild(g);let m=s.get(t.zIndex);u&&l(m)&&a.appendChild(dn(o,"drawOrder",m,Ih)),n.push(a);let x=o.createElement("LineStyle"),b=s.get(t.width);l(b)&&x.appendChild(dn(o,"width",b)),hX(e,t.material,x),i.push(x)}function Yst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[re.northeast,re.southeast,re.southwest,re.northwest];for(let g=0;g<4;++g)u[g](a,ll),c.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${r}`);let f=dn(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function Iye(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)fe.fromCartesian(t[f],r,ll),s.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${i?ll.height:n}`);let c=dn(o,"coordinates",s.join(" ")),u=o.createElement("LinearRing");return u.appendChild(c),u}function Xst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(Iye(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let m=0;m<g;++m){let x=i.createElement("innerBoundaryIs");x.appendChild(Iye(e,p[m].positions,r,s)),a.push(x)}}return a}function Pye(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof kd;if(a&&s.getMaterialType(t.material)==="Image"){Kst(e,t,o);return}let c=r.createElement("Polygon"),u=s.get(t.extrudedHeight,0);u>0&&c.appendChild(dn(r,"extrude",!0));let f=a?Yst(e,t,u):Xst(e,t,u),d=f.length;for(let b=0;b<d;++b)c.appendChild(f[b]);let p=r.createElement("altitudeMode");p.appendChild(DT(e,t.heightReference)),c.appendChild(p),n.push(c);let g=r.createElement("PolyStyle"),m=s.get(t.fill,!1);m&&g.appendChild(dn(r,"fill",m)),hX(e,t.material,g);let x=s.get(t.outline,!1);if(x){g.appendChild(dn(r,"outline",x));let b=r.createElement("LineStyle"),T=s.get(t.outlineWidth,1);b.appendChild(dn(r,"width",T));let C=s.getColor(t.outlineColor,H.BLACK);b.appendChild(dn(r,"color",C)),b.appendChild(dn(r,"colorMode","normal")),i.push(b)}i.push(g)}function Kst(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(DT(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(dn(i,"altitude",c));let u=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(dn(i,"north",P.toDegrees(u.north))),f.appendChild(dn(i,"south",P.toDegrees(u.south))),f.appendChild(dn(i,"east",P.toDegrees(u.east))),f.appendChild(dn(i,"west",P.toDegrees(u.west))),s.appendChild(f);let d=o.get(t.material),p=r.texture(d.image),g=i.createElement("Icon");g.appendChild(dn(i,"href",p)),s.appendChild(g);let m=d.color;l(m)&&s.appendChild(dn(i,"color",wT(d.color))),n.push(s)}function Bye(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let u=n.createElement("scale");u.appendChild(dn(n,"x",s)),u.appendChild(dn(n,"y",s)),u.appendChild(dn(n,"z",s)),r.appendChild(u)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(dn(n,"href",c)),r.appendChild(a),r}function Zst(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){Lye(e,t,n,i,o);return}let u=Bye(e,n),f=r.createElement("altitudeMode");f.appendChild(DT(e,n.heightReference)),u.appendChild(f),a.get(c,void 0,Ql),fe.fromCartesian(Ql,s,ll);let d=r.createElement("Location");d.appendChild(dn(r,"longitude",P.toDegrees(ll.longitude))),d.appendChild(dn(r,"latitude",P.toDegrees(ll.latitude))),d.appendChild(dn(r,"altitude",ll.height)),u.appendChild(d),i.push(u)}function hX(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,u;switch(a){case"Image":s=wT(H.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=wT(r.color);break;case"PolylineOutline":s=wT(r.color),c=wT(r.outlineColor),u=r.outlineWidth,n.appendChild(dn(i,"outerColor",c,Ih)),n.appendChild(dn(i,"outerWidth",u,Ih));break;case"Stripe":s=wT(r.oddColor);break}l(s)&&(n.appendChild(dn(i,"color",s)),n.appendChild(dn(i,"colorMode","normal")))}function DT(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,Ye.NONE),r;switch(o){case Ye.NONE:r=n.createTextNode("absolute");break;case Ye.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case Ye.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function vT(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,ll),i.push(`${P.toDegrees(ll.longitude)},${P.toDegrees(ll.latitude)},${ll.height}`);return i.join(" ")}function dn(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function wT(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var mX=dX;function $st(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` +${o}`),t}var Ym=$st;async function Qst(e,t,n,i){return l(i)||(i=!1),tat(e,t,n,i)}function Jst(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(Vye(i)):r=o.then(Vye(i)).catch(nat(i)),e.shift(),t.push(r),!0}function eat(e){return new Promise(function(t){setTimeout(t,e)})}function pX(e,t,n){return e.length?Jst(e,t,n)?pX(e,t,n):eat(100).then(()=>pX(e,t,n)):Promise.resolve()}function tat(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let u=o.positionToTileXY(n[r],t);if(!l(u))continue;let f=u.toString();if(!a.hasOwnProperty(f)){let d={x:u.x,y:u.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return pX(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function kye(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function Vye(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!kye(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];kye(s,i,n)}}):Promise.resolve()}}function nat(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var DF=Qst;var _X=new z;async function Uye(e,t,n){l(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let u=t[c],f=r.computeMaximumLevelAtPosition(u);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(u,1,_X);let p=e.loadTileDataAvailability(_X.x,_X.y,1);l(p)&&s.push(p)}let d=i[f];l(d)||(i[f]=d=[]),d.push(u)}await Promise.all(s),await Promise.all(i.map(function(c,u){if(l(c))return DF(e,u,c,n)}));let a=[];for(let c=0;c<t.length;++c){let u=t[c];r.computeMaximumLevelAtPosition(u)!==o[c]&&a.push(u)}return a.length>0&&await Uye(e,a,n),t}var IT=Uye;async function gX(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[re.center(e),re.southeast(e),re.southwest(e),re.northeast(e),re.northwest(e)],u=await gX._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,m){return l(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}gX._sampleTerrainMostDetailed=IT;var PT=gX;var iat={NONE:0,LERC:1},ad=Object.freeze(iat);var oat={NONE:0,BITS12:1},Js=Object.freeze(oat);var RT=new h,rat=new h,cd=new z,qH=new F,sat=new F,aat=Math.pow(2,12);function Ec(e,t,n,i,o,r,s,a,c,u){let f=Js.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,rat),b=i-n;Math.max(h.maximumComponent(x),b)<aat-1?f=Js.BITS12:f=Js.NONE,d=F.inverseTransformation(o,new F);let C=h.negate(g,RT);F.multiply(F.fromTranslation(C,qH),d,d);let A=RT;A.x=1/x.x,A.y=1/x.y,A.z=1/x.z,F.multiply(F.fromScale(A,qH),d,d),p=F.clone(o),F.setTranslation(p,h.ZERO,p),o=F.clone(o,new F);let E=F.fromTranslation(g,qH),v=F.fromScale(x,sat),D=F.multiply(E,v,qH);F.multiply(o,D,o),F.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=d,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(u,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}Ec.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,u=i.y;if(this.quantization===Js.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,RT),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((o-this.minimumHeight)/f,0,1);z.fromElements(n.x,n.y,cd);let p=Mn.compressTextureCoordinates(cd);z.fromElements(n.z,d,cd);let g=Mn.compressTextureCoordinates(cd);z.fromElements(c,u,cd);let m=Mn.compressTextureCoordinates(cd);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){z.fromElements(s,0,cd);let x=Mn.compressTextureCoordinates(cd);e[t++]=x}}else h.subtract(n,this.center,RT),e[t++]=RT.x,e[t++]=RT.y,e[t++]=RT.z,e[t++]=o,e[t++]=c,e[t++]=u,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=Mn.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var cat=new h,zye=new h;Ec.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*r+f;t[p]=e[d]}let a=this.decodePosition(t,s,cat),c=n.geodeticSurfaceNormal(a,zye),u=s*r+this._offsetGeodeticSurfaceNormal;t[u]=c.x,t[u+1]=c.y,t[u+2]=c.z}};Ec.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};Ec.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new h),t*=this.stride,this.quantization===Js.BITS12){let i=Mn.decompressTextureCoordinates(e[t],cd);n.x=i.x,n.y=i.y;let o=Mn.decompressTextureCoordinates(e[t+1],cd);return n.z=o.x,F.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};Ec.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,zye),a=this.decodeHeight(e,t),c=Cr.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};Ec.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new z),t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+2],n):z.fromElements(e[t+4],e[t+5],n)};Ec.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+1],cd).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};Ec.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===Js.BITS12?Mn.decompressTextureCoordinates(e[t+3],cd).x:e[t+6]};Ec.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return z.fromElements(o,r,n)};Ec.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};Ec.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case Js.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var YH={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},XH={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};Ec.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===Js.NONE){s(YH.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(YH.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(YH.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(XH.compressed0,a?4:3),c&&s(XH.compressed1,1),this.hasGeodeticSurfaceNormals&&s(XH.geodeticSurfaceNormal,3)}return r};Ec.prototype.getAttributeLocations=function(){return this.quantization===Js.NONE?YH:XH};Ec.clone=function(e,t){if(l(e))return l(t)||(t=new Ec),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=F.clone(e.toScaledENU),t.fromScaledENU=F.clone(e.fromScaledENU),t.matrix=F.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var Sc=Ec;var Xm={};Xm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var yX=new h,lat=new F,uat=new h,fat=new h;Xm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,u=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,ee.default),x=1/m.maximumRadius,b=re.clone(e.nativeRectangle),T=re.clone(e.rectangle),C,A,E,v;l(T)?(C=T.west,A=T.south,E=T.east,v=T.north):g?(C=a(b.west),A=a(b.south),E=a(b.east),v=a(b.north)):(C=b.west*x,A=s-2*o(r(-b.south*x)),E=b.east*x,v=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=l(D);D=O?D:h.ZERO;let R=y(e.includeWebMercatorT,!1),M=y(e.exaggeration,1),N=y(e.exaggerationRelativeHeight,0),S=M!==1,w=y(e.structure,Xm.DEFAULT_STRUCTURE),I=y(w.heightScale,Xm.DEFAULT_STRUCTURE.heightScale),L=y(w.heightOffset,Xm.DEFAULT_STRUCTURE.heightOffset),B=y(w.elementsPerHeight,Xm.DEFAULT_STRUCTURE.elementsPerHeight),U=y(w.stride,Xm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,Xm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,Xm.DEFAULT_STRUCTURE.isBigEndian),k=re.computeWidth(b),W=re.computeHeight(b),q=k/(u-1),J=W/(f-1);g||(k*=x,W*=x);let j=m.radiiSquared,K=j.x,Q=j.y,de=j.z,ye=65536,ae=-65536,_e=Mt.eastNorthUpToFixedFrame(D,m),xe=F.inverseTransformation(_e,lat),De,Ae;R&&(De=wi.geodeticLatitudeToMercatorAngle(A),Ae=1/(wi.geodeticLatitudeToMercatorAngle(v)-De));let ke=uat;ke.x=Number.POSITIVE_INFINITY,ke.y=Number.POSITIVE_INFINITY,ke.z=Number.POSITIVE_INFINITY;let ze=fat;ze.x=Number.NEGATIVE_INFINITY,ze.y=Number.NEGATIVE_INFINITY,ze.z=Number.NEGATIVE_INFINITY;let tt=Number.POSITIVE_INFINITY,wt=u*f,pt=d>0?u*2+f*2:0,Be=wt+pt,Yt=new Array(Be),Ct=new Array(Be),lt=new Array(Be),tn=R?new Array(Be):[],Ce=S?new Array(Be):[],Te=0,it=f,Wi=0,ut=u;p&&(--Te,++it,--Wi,++ut);let go=1e-5;for(let Xe=Te;Xe<it;++Xe){let dt=Xe;dt<0&&(dt=0),dt>=f&&(dt=f-1);let Gt=b.north-J*dt;g?Gt=a(Gt):Gt=s-2*o(r(-Gt*x));let wn=(Gt-A)/(v-A);wn=P.clamp(wn,0,1);let Io=Xe===Te,Jn=Xe===it-1;d>0&&(Io?Gt+=go*W:Jn&&(Gt-=go*W));let ls=t(Gt),Xa=n(Gt),Yr=de*Xa,Fi;R&&(Fi=(wi.geodeticLatitudeToMercatorAngle(Gt)-De)*Ae);for(let ks=Wi;ks<ut;++ks){let Xr=ks;Xr<0&&(Xr=0),Xr>=u&&(Xr=u-1);let lf=dt*(u*U)+Xr*U,yo;if(B===1)yo=c[lf];else{yo=0;let Bo;if(G)for(Bo=0;Bo<B;++Bo)yo=yo*V+c[lf+Bo];else for(Bo=B-1;Bo>=0;--Bo)yo=yo*V+c[lf+Bo]}yo=yo*I+L,ae=Math.max(ae,yo),ye=Math.min(ye,yo);let Pr=b.west+q*Xr;g?Pr=a(Pr):Pr=Pr*x;let mp=(Pr-C)/(E-C);mp=P.clamp(mp,0,1);let Kr=dt*u+Xr;if(d>0){let Bo=ks===Wi,sn=ks===ut-1,Ee=Io||Jn||Bo||sn;if((Io||Jn)&&(Bo||sn))continue;Ee&&(yo-=d,Bo?(Kr=wt+(f-dt-1),Pr-=go*k):Jn?Kr=wt+f+(u-Xr-1):sn?(Kr=wt+f+u+dt,Pr+=go*k):Io&&(Kr=wt+f+u+f+Xr))}let uf=ls*t(Pr),Ka=ls*n(Pr),X0=K*uf,Aa=Q*Ka,Oc=1/i(X0*uf+Aa*Ka+Yr*Xa),us=X0*Oc,ff=Aa*Oc,df=Yr*Oc,hf=new h;hf.x=us+uf*yo,hf.y=ff+Ka*yo,hf.z=df+Xa*yo,F.multiplyByPoint(xe,hf,yX),h.minimumByComponent(yX,ke,ke),h.maximumByComponent(yX,ze,ze),tt=Math.min(tt,yo),Yt[Kr]=hf,lt[Kr]=new z(mp,wn),Ct[Kr]=yo,R&&(tn[Kr]=Fi),S&&(Ce[Kr]=m.geodeticSurfaceNormal(hf))}}let Yo=se.fromPoints(Yt),Ya;l(T)&&(Ya=vn.fromRectangle(T,ye,ae,m));let Ir;O&&(Ir=new B_(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,Yt,ye));let Cs=new Gg(ke,ze,D),Le=new Sc(D,Cs,tt,ae,_e,!1,R,S,M,N),ot=new Float32Array(Be*Le.stride),qe=0;for(let Xe=0;Xe<Be;++Xe)qe=Le.encode(ot,qe,Yt[Xe],lt[Xe],Ct[Xe],void 0,tn[Xe],Ce[Xe]);return{vertices:ot,maximumHeight:ae,minimumHeight:ye,encoding:Le,boundingSphere3D:Yo,orientedBoundingBox:Ya,occludeePointInScaledSpace:Ir}};var NS=Xm;function b0(){he.throwInstantiationError()}Object.defineProperties(b0.prototype,{credits:{get:he.throwInstantiationError},waterMask:{get:he.throwInstantiationError}});b0.prototype.interpolateHeight=he.throwInstantiationError;b0.prototype.isChildAvailable=he.throwInstantiationError;b0.prototype.createMesh=he.throwInstantiationError;b0.prototype.upsample=he.throwInstantiationError;b0.prototype.wasCreatedByUpsampling=he.throwInstantiationError;b0.maximumAsynchronousTasks=5;var Ph=b0;function dat(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(u,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=m,this.northIndicesWestToEast=x}var ld=dat;function ul(){he.throwInstantiationError()}Object.defineProperties(ul.prototype,{errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},hasWaterMask:{get:he.throwInstantiationError},hasVertexNormals:{get:he.throwInstantiationError},availability:{get:he.throwInstantiationError}});var Hye=[];ul.getRegularGridIndices=function(e,t){let n=Hye[e];l(n)||(Hye[e]=n=[]);let i=n[t];return l(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),qye(e,t,i,0)),i};var Gye=[];ul.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=Gye[e];l(n)||(Gye[e]=n=[]);let i=n[t];if(!l(i)){let o=ul.getRegularGridIndices(e,t),r=jye(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,u=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:u}}return i};var Wye=[];ul.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=Wye[e];l(n)||(Wye[e]=n=[]);let i=n[t];if(!l(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,u=r+a,f=jye(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=Ne.createTypedArray(c,u);qye(e,t,x,0),ul.addSkirtIndices(d,p,g,m,o,x,r),i=n[t]={indices:x,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:m,indexCountWithoutSkirts:r}}return i};ul.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=KH(e,a,r,s),a+=e.length,s=KH(t,a,r,s),a+=t.length,s=KH(n,a,r,s),a+=n.length,KH(i,a,r,s)};function jye(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function qye(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,u=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=u,++o}++o}}function KH(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}ul.heightmapTerrainQuality=.25;ul.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*ul.heightmapTerrainQuality/(t*n)};ul.prototype.requestTileGeometry=he.throwInstantiationError;ul.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;ul.prototype.getTileDataAvailable=he.throwInstantiationError;ul.prototype.loadTileDataAvailability=he.throwInstantiationError;var os=ul;function ig(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,ad.NONE);let t=NS.DEFAULT_STRUCTURE,n=e.structure;l(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===ad.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(ig.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var Yye="createVerticesFromHeightmap",hat=new pi(Yye),mat=new pi(Yye,Ph.maximumAsynchronousTasks);ig.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(re.center(f)),p=this._structure,m=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?mat:hat).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof vi,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(b))return;let T=this;return Promise.resolve(b).then(function(C){let A;T._skirtHeight>0?A=os.getRegularGridAndSkirtIndicesAndEdgeIndices(C.gridWidth,C.gridHeight):A=os.getRegularGridIndicesAndEdgeIndices(C.gridWidth,C.gridHeight);let E=C.gridWidth*C.gridHeight;return T._mesh=new ld(d,new Float32Array(C.vertices),A.indices,A.indexCountWithoutSkirts,E,C.minimumHeight,C.maximumHeight,se.clone(C.boundingSphere3D),h.clone(C.occludeePointInScaledSpace),C.numberOfAttributes,vn.clone(C.orientedBoundingBox),Sc.clone(C.encoding),A.westIndicesSouthToNorth,A.southIndicesEastToWest,A.eastIndicesNorthToSouth,A.northIndicesWestToEast),T._buffer=void 0,T._mesh})};ig.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(re.center(u)),d=this._structure,g=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=NS.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:u,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof vi,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=os.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=os.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let b=m.gridWidth*m.gridHeight;return this._mesh=new ld(f,m.vertices,x.indices,x.indexCountWithoutSkirts,b,m.minimumHeight,m.maximumHeight,m.boundingSphere3D,m.occludeePointInScaledSpace,m.encoding.stride,m.orientedBoundingBox,m.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};ig.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===ad.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=Xye(b,T,f,d,e,i,o,t,n)}else x=pat(this._buffer,a,c,s,u,e,i,o,t,n),x=x*d+f;return x};ig.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,C=f.heightScale,A=f.elementsPerHeight,E=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(E,A-1);for(let O=0;O<u;++O){let R=P.lerp(b.north,b.south,O/(u-1));for(let M=0;M<c;++M){let N=P.lerp(b.west,b.east,M/(c-1)),_=Xye(g,m,T,C,x,c,u,N,R);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,_at(p,A,E,D,d,v,O*c+M,_)}}return Promise.resolve(new ig({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};ig.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};ig.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function pat(e,t,n,i,o,r,s,a,c,u){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(u-r.south)*(a-1)/(r.north-r.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let m=d|0,x=m+1;x>=a&&(x=a-1,m=a-2);let b=f-p,T=d-m;m=a-1-m,x=a-1-x;let C=ZH(e,t,n,i,o,m*s+p),A=ZH(e,t,n,i,o,m*s+g),E=ZH(e,t,n,i,o,x*s+p),v=ZH(e,t,n,i,o,x*s+g);return Kye(b,T,C,A,E,v)}function Xye(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,m=g+1;m>=s&&(m=s-1,g=s-2);let x=u-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,C=(t.decodeHeight(e,g*r+p)-n)/i,A=(t.decodeHeight(e,m*r+d)-n)/i,E=(t.decodeHeight(e,m*r+p)-n)/i;return Kye(x,b,T,C,A,E)}function Kye(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function ZH(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function _at(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var za=ig;function FS(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ee.default)})),this._levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me}Object.defineProperties(FS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});FS.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new za({buffer:new Uint8Array(16*16),width:16,height:16}))};FS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};FS.prototype.getTileDataAvailable=function(e,t,n){};FS.prototype.loadTileDataAvailability=function(e,t,n){};var Km=FS;var IF=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingDistance; +in vec2 v_clippingPosition; +flat in int v_regionIndex; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = czm_maximumComponent(colorDiff); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + #ifdef SHOW_REFLECTIVE_OCEAN + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } + #endif +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + #ifdef HAS_WATER_MASK + materialInput.waterMask = mask; + #endif + + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels); + #endif + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a); + + #else + // Apply ground atmosphere. This happens when the camera is far away from the earth. + + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var PF=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_verticalExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingExtents; +out vec2 v_clippingPosition; +flat out int v_regionIndex; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) || defined(APPLY_MATERIAL) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_verticalExaggerationAndRelativeHeight.x; + float relativeHeight = u_verticalExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_clippingPosition = vec2(czm_infinity); + v_regionIndex = -1; + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + float threshold = 0.01; + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } + } +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var BS=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var gat=new z;function yat(e,t){let n=e.unionClippingRegions,i=e.length,o=_s.useFloatTexture(t),r=_s.getTextureResolution(e,t,gat),s=r.x,a=r.y,c=o?Tat(s,a):Cat(s,a);return c+=` +`,c+=n?xat(i):bat(i),c}function xat(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function bat(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function Tat(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function Cat(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var og=yat;function Aat(e,t,n,i,o,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o,this.clippingPolygonShaderState=r}function xX(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function Eat(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function Sat(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex); + }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + }`}function vat(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return czm_unpackClippingExtents(extentsTexture, index); + }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return vec4(); + }`}function wat(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}xX.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.hasWaterMask,g=e.showReflectiveOcean,m=e.showOceanWaves,x=e.enableLighting,b=e.dynamicAtmosphereLighting,T=e.dynamicAtmosphereLightingFromSun,C=e.showGroundAtmosphere,A=e.perFragmentGroundAtmosphere,E=e.hasVertexNormals,v=e.useWebMercatorProjection,D=e.enableFog,O=e.enableClippingPlanes,R=e.clippingPlanes,M=e.enableClippingPolygons,N=e.clippingPolygons,_=e.clippedByBoundaries,S=e.hasImageryLayerCutout,w=e.colorCorrect,I=e.highlightFillTile,L=e.colorToAlpha,B=e.hasGeodeticSurfaceNormals,U=e.hasExaggeration,V=e.showUndergroundColor,G=e.translucent,k=0,W="",J=n.renderedMesh.encoding;J.quantization===Js.BITS12&&(k=1,W="QUANTIZATION_BITS12");let K=0,Q="";_&&(K=1,Q="TILE_LIMIT_RECTANGLE");let de=0,ye="";S&&(de=1,ye="APPLY_IMAGERY_CUTOUT");let ae=t.mode,_e=ae|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|C<<14|A<<15|E<<16|v<<17|D<<18|k<<19|d<<20|O<<21|M<<22|K<<23|de<<24|w<<25|I<<26|L<<27|B<<28|U<<29|V<<30|G<<31|f<<32,xe=0;l(R)&&R.length>0&&(xe=O?R.clippingPlanesState:0);let De=0;l(N)&&N.length>0&&(De=M?N.clippingPolygonsState:0);let Ae=n.surfaceShader;if(l(Ae)&&Ae.numberOfDayTextures===i&&Ae.flags===_e&&Ae.material===this.material&&Ae.clippingShaderState===xe&&Ae.clippingPolygonShaderState===De)return Ae.shaderProgram;let ke=this._shadersByTexturesFlags[i];if(l(ke)||(ke=this._shadersByTexturesFlags[i]=[]),Ae=ke[_e],!l(Ae)||Ae.material!==this.material||Ae.clippingShaderState!==xe||Ae.clippingPolygonShaderState!==De){let ze=this.baseVertexShaderSource.clone(),tt=this.baseFragmentShaderSource.clone();xe!==0&&tt.sources.unshift(og(R,t.context)),De!==0&&(tt.sources.unshift(Sat(t.context)),ze.sources.unshift(vat(t.context))),ze.defines.push(W),tt.defines.push(`TEXTURE_UNITS ${i}`,Q,ye),o&&tt.defines.push("APPLY_BRIGHTNESS"),r&&tt.defines.push("APPLY_CONTRAST"),s&&tt.defines.push("APPLY_HUE"),a&&tt.defines.push("APPLY_SATURATION"),c&&tt.defines.push("APPLY_GAMMA"),u&&tt.defines.push("APPLY_ALPHA"),f&&tt.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&tt.defines.push("HAS_WATER_MASK"),g&&(tt.defines.push("SHOW_REFLECTIVE_OCEAN"),ze.defines.push("SHOW_REFLECTIVE_OCEAN")),m&&tt.defines.push("SHOW_OCEAN_WAVES"),L&&tt.defines.push("APPLY_COLOR_TO_ALPHA"),V&&(ze.defines.push("UNDERGROUND_COLOR"),tt.defines.push("UNDERGROUND_COLOR")),G&&(ze.defines.push("TRANSLUCENT"),tt.defines.push("TRANSLUCENT")),x&&(E?(ze.defines.push("ENABLE_VERTEX_LIGHTING"),tt.defines.push("ENABLE_VERTEX_LIGHTING")):(ze.defines.push("ENABLE_DAYNIGHT_SHADING"),tt.defines.push("ENABLE_DAYNIGHT_SHADING"))),b&&(ze.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),tt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),T&&(ze.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),tt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),C&&(ze.defines.push("GROUND_ATMOSPHERE"),tt.defines.push("GROUND_ATMOSPHERE"),A&&(ze.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),tt.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),ze.defines.push("INCLUDE_WEB_MERCATOR_Y"),tt.defines.push("INCLUDE_WEB_MERCATOR_Y"),D&&(ze.defines.push("FOG"),tt.defines.push("FOG")),d&&tt.defines.push("APPLY_SPLIT"),O&&tt.defines.push("ENABLE_CLIPPING_PLANES"),M&&(tt.defines.push("ENABLE_CLIPPING_POLYGONS"),ze.defines.push("ENABLE_CLIPPING_POLYGONS"),N.inverse&&tt.defines.push("CLIPPING_INVERSE"),tt.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${N.extentsCount}`),ze.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${N.extentsCount}`)),w&&tt.defines.push("COLOR_CORRECT"),I&&tt.defines.push("HIGHLIGHT_FILL_TILE"),B&&ze.defines.push("GEODETIC_SURFACE_NORMALS"),U&&ze.defines.push("EXAGGERATION");let wt=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;S&&(wt+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let Be=0;Be<i;++Be)S?wt+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${Be}]; + texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; + cutoutAndColorResult = sampleAndBlend( +`:wt+=` color = sampleAndBlend( +`,wt+=` color, + u_dayTextures[${Be}], + u_dayTextureUseWebMercatorT[${Be}] ? textureCoordinates.xz : textureCoordinates.xy, + u_dayTextureTexCoordsRectangle[${Be}], + u_dayTextureTranslationAndScale[${Be}], + ${u?`u_dayTextureAlpha[${Be}]`:"1.0"}, + ${f?`u_dayTextureNightAlpha[${Be}]`:"1.0"}, +${f?`u_dayTextureDayAlpha[${Be}]`:"1.0"}, +${o?`u_dayTextureBrightness[${Be}]`:"0.0"}, + ${r?`u_dayTextureContrast[${Be}]`:"0.0"}, + ${s?`u_dayTextureHue[${Be}]`:"0.0"}, + ${a?`u_dayTextureSaturation[${Be}]`:"0.0"}, + ${c?`u_dayTextureOneOverGamma[${Be}]`:"0.0"}, + ${d?`u_dayTextureSplit[${Be}]`:"0.0"}, + ${L?`u_colorsToAlpha[${Be}]`:"vec4(0.0)"}, + nightBlend ); +`,S&&(wt+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); +`);wt+=` return color; + }`,tt.sources.push(wt),ze.sources.push(Eat(ae)),ze.sources.push(wat(v));let pt=Qt.fromCache({context:t.context,vertexShaderSource:ze,fragmentShaderSource:tt,attributeLocations:J.getAttributeLocations()});Ae=ke[_e]=new Aat(i,_e,this.material,pt,xe,De)}return n.surfaceShader=Ae,Ae.shaderProgram};xX.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!l(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],l(t)&&t.shaderProgram.destroy())}return ue(this)};var RF=xX;var Dat={NONE:-1,PARTIAL:0,FULL:1},pr=Object.freeze(Dat);function $H(e,t,n,i,o,r,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=o,this.timesRetried=y(r,0),this.retry=!1,this.error=s}$H.reportError=function(e,t,n,i,o,r,s,a){let c=e;return l(e)?(c.provider=t,c.message=i,c.x=o,c.y=r,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new $H(t,i,o,r,s,0,a),l(n)&&n.numberOfListeners>0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${Ym(i)}`),c};$H.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var wo=$H;var Iat={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},ai=Object.freeze(Iat);var Pat={START:0,LOADING:1,DONE:2,FAILED:3},ea=Object.freeze(Pat);var Rat={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},uo=Object.freeze(Rat);function or(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=uo.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new se,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(or.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===uo.RECEIVING||e===uo.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!l(s.loadingImagery)||s.loadingImagery.state!==ai.TRANSITIONING}return n}},renderedMesh:{get:function(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}}});var Oat=new fe;function bX(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(l(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,Oat);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var Mat=new h,Lat=new h,Nat=new h;or.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!l(r))return;let s=r.vertices,a=r.indices,c=r.encoding,u=a.length,f=Number.MAX_VALUE;for(let d=0;d<u;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=bX(c,t,n,s,p,Mat),b=bX(c,t,n,s,g,Lat),T=bX(c,t,n,s,m,Nat),C=$n.rayTriangleParametric(e,x,b,T,i);l(C)&&C<f&&C>=0&&(f=C)}return f!==Number.MAX_VALUE?mn.getPoint(e,f,o):void 0};or.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=uo.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};or.prototype.freeVertexArray=function(){or._freeVertexArray(this.vertexArray),this.vertexArray=void 0,or._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};or.initialize=function(e,t,n){let i=e.data;l(i)||(i=e.data=new or),e.state===ea.START&&(Fat(e,t,n),e.state=ea.LOADING)};or.processStateMachine=function(e,t,n,i,o,r,s){or.initialize(e,n,i);let a=e.data;if(e.state===ea.LOADING&&Bat(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=l(a.vertexArray);let u=a.terrainState===uo.READY;e.upsampledFromParent=l(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(u&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=ea.DONE}c&&(e.renderable=!0)};or.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,u,f;for(u=0,f=c.length;u<f;++u){let d=c[u];if(!l(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===ai.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(u,1),g._createTileImagerySkeletons(e,t,u),--u,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||l(d.readyImagery),r=r&&l(d.loadingImagery)&&(d.loadingImagery.state===ai.FAILED||d.loadingImagery.state===ai.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function Zye(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=Sc.clone(s);c.hasGeodeticSurfaceNormals=t,c=Sc.clone(c);let u=c.stride,f=new Float32Array(a*u);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=u,o!==e.mesh?(or._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=or._createVertexArrayForMesh(i.context,o)):(or._freeVertexArray(e.vertexArray),e.vertexArray=or._createVertexArrayForMesh(i.context,o)),or._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}or.prototype.addGeodeticSurfaceNormals=function(e,t){Zye(this,!0,e,t)};or.prototype.removeGeodeticSurfaceNormals=function(e){Zye(this,!1,void 0,e)};or.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.verticalExaggeration,s=t.verticalExaggerationRelativeHeight,a=r!==1,c=o.encoding,u=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(u||f){if(u)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=r,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let m=d[g];m.level=-1}}}};function Fat(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=uo.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function Bat(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===uo.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||or.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===uo.FAILED&&kat(s,e,t,n,e.x,e.y,e.level),s.terrainState===uo.UNLOADED&&Vat(s,n,e.x,e.y,e.level),s.terrainState===uo.RECEIVED&&zat(s,t,n,e.x,e.y,e.level),s.terrainState===uo.TRANSFORMED&&(Hat(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=uo.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)Wat(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function kat(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=ea.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=uo.RECEIVING,Promise.resolve(p).then(function(g){l(g)&&(e.terrainData=g,e.terrainState=uo.RECEIVED)}).catch(function(){e.terrainState=uo.FAILED}))}function Vat(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=uo.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=uo.RECEIVED,e.request=void 0}function s(c){if(e.request.state===Zn.CANCELLED){e.terrainData=void 0,e.terrainState=uo.UNLOADED,e.request=void 0;return}e.terrainState=uo.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=wo.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=uo.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=uo.UNLOADED,e.request=void 0)}a()}var Uat={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function zat(e,t,n,i,o,r){let s=n.tilingScheme,a=Uat;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=uo.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=uo.TRANSFORMED}).catch(function(){e.terrainState=uo.FAILED}))}or._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=_t.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=_t.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ti({context:e,attributes:o,indexBuffer:s})};or._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function Hat(e,t,n,i,o,r,s){e.vertexArray=or._createVertexArrayForMesh(t,e.mesh),e.terrainState=uo.READY,e.fill=e.fill&&e.fill.destroy(s)}function Gat(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Pt.create({context:e,pixelFormat:Je.LUMINANCE,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function Wat(e,t){let n=t.terrainData.waterMask,i=Gat(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Pt.create({context:e,pixelFormat:Je.LUMINANCE,pixelDatatype:Ke.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,oe.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}or.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};or.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var ud=or;function T0(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new wi(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new z(-i,-i),this._rectangleNortheastInMeters=new z(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new re(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(T0.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});T0.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};T0.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};T0.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(re.southwest(e)),o=n.project(re.northeast(e));return l(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new re(i.x,i.y,o.x,o.y)};T0.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.getNumberOfXTilesAtLevel(n),r=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*u,d=this._rectangleNortheastInMeters.y-(t+1)*u;return l(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new re(a,d,c,f)};T0.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new z(o.west,o.south)),a=r.unproject(new z(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};T0.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,m=p/a|0;m>=o&&(m=o-1);let x=g/u|0;return x>=r&&(x=r-1),l(n)?(n.x=m,n.y=x,n):new z(m,x)};var rs=T0;var TX,$ye="AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmQpcUfxe1Yndhf82d5oKkQJ4_7VPaBQGYSISOMaRew7Sy-eTX1JQ4XwaC8v5aCvV72O6LCPs5Ss1pXXH-0uEw6bSRhTeQYHOmikutC2OMyZt6lu0VfT7FA-jVMO_UsunWNTf2cycP2O4IeDN_UV9G-VNmUu2jRvCHioi8o72ua4238s2219cYLEmcoGRJGVJTA.AT1_PjLvyih0",kS={};kS.defaultAccessToken=$ye;kS.defaultWorldImageryServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});kS.defaultWorldHillshadeServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});kS.defaultWorldOceanServer=new we({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});kS.getDefaultTokenCredit=function(e){if(e===$ye){if(!l(TX)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';TX=new vt(t,!0)}return TX}};var Yu=kS;function CX(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=we.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=Ed(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f<d;++f){let p=u[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}CX.prototype.isReady=function(){return this._isReady};CX.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=Ed(e),o=e.width;for(let r=0,s=t.length;r<s;++r){let a=t[r],c=a.x*4+a.y*o;for(let u=0;u<4;++u){let f=c+u;if(i[f]!==n[f])return!1}}return!0};var OF=CX;function AX(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}AX.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let o=i.toLowerCase();t>1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};AX.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=`<tr><td>${o}</td><td>${t(r)}</td></tr>`:i+=`<tr><td>${o}</td><td>${r}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var Rh=AX;function VS(){he.throwInstantiationError()}Object.defineProperties(VS.prototype,{rectangle:{get:he.throwInstantiationError},tileWidth:{get:he.throwInstantiationError},tileHeight:{get:he.throwInstantiationError},maximumLevel:{get:he.throwInstantiationError},minimumLevel:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},tileDiscardPolicy:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},proxy:{get:he.throwInstantiationError},hasAlphaChannel:{get:he.throwInstantiationError}});VS.prototype.getTileCredits=function(e,t,n){he.throwInstantiationError()};VS.prototype.requestImage=function(e,t,n,i){he.throwInstantiationError()};VS.prototype.pickFeatures=function(e,t,n,i,o){he.throwInstantiationError()};var jat=/\.ktx2$/i;VS.loadImage=function(e,t){let n=we.createIfNeeded(t);return jat.test(n.url)?Sl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var fl=VS;var qat={SATELLITE:1,OCEANS:2,HILLSHADE:3},Oh=Object.freeze(qat);function Qye(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new Yi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new vt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}Qye.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new OF({missingImageUrl:Jye(e,0,0,this.maximumLevel).url,pixelsToCheck:[new z(0,0),new z(200,20),new z(20,200),new z(80,110),new z(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function Yat(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new rs({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new Yi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ce(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new wi,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new re(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=re.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new ce(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new vt(e.copyrightText)]:t.credit=new vt(e.copyrightText))}function Xat(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new ce(n)}async function Kat(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();Yat(i,t)}catch(i){Xat(e,i)}}function Zm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new Yi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new vt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new me}Zm.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case Oh.SATELLITE:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldImageryServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;case Oh.OCEANS:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldOceanServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;case Oh.HILLSHADE:{n=y(t.token,Yu.defaultAccessToken),i=we.createIfNeeded(Yu.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Yu.getDefaultTokenCredit(n);l(r)&&(o=vt.clone(r))}break;default:}return Zm.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function Jye(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof vi?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(Zm.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});Zm.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new Zm(t);i._resource=n;let o=new Qye(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Kat(n,o),o.build(i),i};Zm.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Zm.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,Jye(this,e,t,n,i))};Zm.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof vi)s=P.toDegrees(i),a=P.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new fe(i,o,0));s=p.x,a=p.y,c="3857"}let u="visible";l(this._layers)&&(u+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!l(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new Rh;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let C=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(C===4326||C===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(C===102100||C===900913||C===3857){let A=new wi;T.position=A.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};Zm._metadataCache={};var rg=Zm;var Zat={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},US=Object.freeze(Zat);function MF(e){}MF.prototype.isReady=function(){return!0};MF.prototype.shouldDiscardImage=function(e){return MF.EMPTY_IMAGE===e};var QH;Object.defineProperties(MF,{EMPTY_IMAGE:{get:function(){return l(QH)||(QH=new Image,QH.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),QH}}});var zS=MF;function e0e(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}e0e.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let o=t[n];if(o.credit instanceof vt)break;o.credit=new vt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],u=c.bbox;c.bbox=new re(P.toRadians(u[1]),P.toRadians(u[0]),P.toRadians(u[3]),P.toRadians(u[2]))}}};function $at(e,t){if(e.resourceSets.length!==1)throw new ce("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl;let i=n.imageryProviders;l(n.imageryProviders)&&(i=n.imageryProviders.filter(o=>o.coverageAreas?.some(r=>l(r.bbox)))),t.attributionList=i}function Qat(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ce(i)}async function Jat(e,t,n){let i=e.url,o=Ls._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),Ls._metadataCache[i]=o);try{let r=await o;return $at(r,t)}catch(r){Qat(e,r,n)}}function Ls(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,US.AERIAL),this._mapLayer=e.mapLayer,this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new zS),this._proxy=e.proxy,this._credit=new vt(`<a href="https://www.microsoft.com/en-us/maps/bing-maps/product"><img src="${Ls.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new rs({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new me}Object.defineProperties(Ls.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return l(this.mapLayer)}}});Ls.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,US.AERIAL),o=we.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new Ls(t);a._resource=o;let c=new e0e(t);return await Jat(s,c),c.build(a),a};var ect=new re;Ls.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,ect);return ict(this._attributionList,n,i)};Ls.prototype.requestImage=function(e,t,n,i){let o=fl.loadImage(this,tct(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?zS.EMPTY_IMAGE:Promise.reject(r)})};Ls.prototype.pickFeatures=function(e,t,n,i,o){};Ls.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;e&r&&(s|=1),t&r&&(s|=2),i+=s}return i};Ls.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];s&1&&(t|=r),s&2&&(n|=r)}return{x:t,y:n,level:i}};Ls._logoUrl=void 0;Object.defineProperties(Ls,{logoUrl:{get:function(){return l(Ls._logoUrl)||(Ls._logoUrl=nn("Assets/Images/bing_maps_credit.png")),Ls._logoUrl},set:function(e){Ls._logoUrl=e}}});function tct(e,t,n,i,o){let r=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:r,request:o,templateValues:{quadkey:Ls.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var nct=new re;function ict(e,t,n){++t;let i=[];for(let o=0,r=e.length;o<r;++o){let s=e[o],a=s.coverageAreas,c=!1;for(let u=0,f=s.coverageAreas.length;!c&&u<f;++u){let d=a[u];if(t>=d.zoomMin&&t<=d.zoomMax){let p=re.intersection(n,d.bbox,nct);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}Ls._metadataCache={};var LF=Ls;var t0e=/{[^}]+}/g,n0e={x:act,y:lct,z:dct,s:hct,reverseX:cct,reverseY:uct,reverseZ:fct,westDegrees:mct,southDegrees:pct,eastDegrees:_ct,northDegrees:gct,westProjected:yct,southProjected:xct,eastProjected:bct,northProjected:Tct,width:Cct,height:Act},oct=yt(n0e,{i:Ect,j:Sct,reverseI:vct,reverseJ:wct,longitudeDegrees:Ict,latitudeDegrees:Pct,longitudeProjected:Rct,latitudeProjected:Oct,format:Lct});function NF(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me;let t=we.createIfNeeded(e.url),n=we.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new rs({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=re.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new vt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=yt(n0e,r),a=yt(oct,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(NF.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});NF.prototype.getTileCredits=function(e,t,n){};NF.prototype.requestImage=function(e,t,n,i){return fl.loadImage(this,rct(this,e,t,n,i))};NF.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=sct(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var JH=!1,Xu=new re,e8=!1,FF=new re;function rct(e,t,n,i,o){JH=!1,e8=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(t0e);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var EX=!1,GS=new z,SX=!1;function sct(e,t,n,i,o,r,s){JH=!1,e8=!1,EX=!1,SX=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(t0e);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function WS(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function act(e,t,n,i){return WS(e,"{x}",t)}function cct(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return WS(e,"{reverseX}",o)}function lct(e,t,n,i){return WS(e,"{y}",n)}function uct(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return WS(e,"{reverseY}",o)}function fct(e,t,n,i){let o=e.maximumLevel,r=l(o)&&i<o?o-i-1:i;return WS(e,"{reverseZ}",r)}function dct(e,t,n,i){return WS(e,"{z}",i)}function hct(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function t8(e,t,n,i){JH||(e.tilingScheme.tileXYToRectangle(t,n,i,Xu),Xu.west=P.toDegrees(Xu.west),Xu.south=P.toDegrees(Xu.south),Xu.east=P.toDegrees(Xu.east),Xu.north=P.toDegrees(Xu.north),JH=!0)}function mct(e,t,n,i){return t8(e,t,n,i),Xu.west}function pct(e,t,n,i){return t8(e,t,n,i),Xu.south}function _ct(e,t,n,i){return t8(e,t,n,i),Xu.east}function gct(e,t,n,i){return t8(e,t,n,i),Xu.north}function n8(e,t,n,i){e8||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,FF),e8=!0)}function yct(e,t,n,i){return n8(e,t,n,i),FF.west}function xct(e,t,n,i){return n8(e,t,n,i),FF.south}function bct(e,t,n,i){return n8(e,t,n,i),FF.east}function Tct(e,t,n,i){return n8(e,t,n,i),FF.north}function Cct(e,t,n,i){return e.tileWidth}function Act(e,t,n,i){return e.tileHeight}function Ect(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),GS.x}function Sct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),GS.y}function vct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),e.tileWidth-GS.x-1}function wct(e,t,n,i,o,r,s){return i8(e,t,n,i,o,r),e.tileHeight-GS.y-1}var Dct=new re,HS=new h;function i8(e,t,n,i,o,r,s){if(EX)return;vX(e,t,n,i,o,r);let a=HS,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,Dct);GS.x=e.tileWidth*(a.x-c.west)/c.width|0,GS.y=e.tileHeight*(c.north-a.y)/c.height|0,EX=!0}function Ict(e,t,n,i,o,r,s){return P.toDegrees(o)}function Pct(e,t,n,i,o,r,s){return P.toDegrees(r)}function Rct(e,t,n,i,o,r,s){return vX(e,t,n,i,o,r),HS.x}function Oct(e,t,n,i,o,r,s){return vX(e,t,n,i,o,r),HS.y}var Mct=new fe;function vX(e,t,n,i,o,r,s){if(!SX){if(e.tilingScheme.projection instanceof vi)HS.x=P.toDegrees(o),HS.y=P.toDegrees(r);else{let a=Mct;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,HS)}SX=!0}}function Lct(e,t,n,i,o,r,s){return s}var Ha=NF;function fd(e){Ha.call(this,e)}fd._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return fd._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof $h)return fd._metadataFailure(e,t);throw o}};fd.fromUrl=async function(e,t){let n=we.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await fd._requestMetadata(t,i,o);return new fd(r)};l(Object.create)&&(fd.prototype=Object.create(Ha.prototype),fd.prototype.constructor=fd);function i0e(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function o0e(e,t,n){let i=e.positionToTileXY(re.southwest(t),n),o=e.positionToTileXY(re.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}fd._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let R=0;R<g.length;R++)if(r.test(g.item(R).nodeName))u=g.item(R);else if(a.test(g.item(R).nodeName)){d=g.item(R);let M=g.item(R).childNodes;for(let N=0;N<M.length;N++)s.test(M.item(N).nodeName)&&p.push(M.item(N))}else c.test(g.item(R).nodeName)&&(f=g.item(R));let m;if(!l(d)||!l(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,l(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ce(m);let x=y(t.fileExtension,u.getAttribute("extension")),b=y(t.tileWidth,parseInt(u.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(u.getAttribute("height"),10)),C=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),A=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),E=d.getAttribute("profile"),v=t.tilingScheme;if(!l(v))if(E==="geodetic"||E==="global-geodetic")v=new Yi({ellipsoid:t.ellipsoid});else if(E==="mercator"||E==="global-mercator")v=new rs({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${E}.`,l(o)&&wo.reportError(void 0,o,o.errorEvent,m),new ce(m);let D=re.clone(t.rectangle);if(!l(D)){let R,M,N,_;y(t.flipXY,!1)?(N=new z(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new z(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(N=new z(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new z(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=E==="geodetic"||E==="mercator";if(v.projection instanceof vi||w)R=fe.fromDegrees(N.x,N.y),M=fe.fromDegrees(_.x,_.y);else{let I=v.projection;R=I.unproject(N),M=I.unproject(_)}D=new re(R.longitude,R.latitude,M.longitude,M.latitude)}return D=i0e(D,v),C=o0e(v,D,C),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:v,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:C,maximumLevel:A,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};fd._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=l(e.tilingScheme)?e.tilingScheme:new rs({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=i0e(a,s);let c=o0e(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:o,minimumLevel:c,maximumLevel:r,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var C0=fd;function r0e(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}r0e.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function Nct(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let o=0;o<n.layers.length;o++)if(n.layers[o].id===t.channel){i=n.layers[o];break}if(!l(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new ce(o)}if(!l(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new ce(o)}if(t.version=i.version,l(n.projection)&&n.projection==="flat")t.tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!l(n.projection)||n.projection==="mercator")t.tilingScheme=new rs({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new ce(o)}return!0}function Fct(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw l(e)&&l(e.message)&&(i+=`: ${e.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function Bct(e,t,n){try{let i=await e.fetchText();Nct(i,t)}catch(i){Fct(i,e,n)}}function Jl(e){e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new vt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${Jl.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new me}Object.defineProperties(Jl.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});Jl.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=we.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new r0e(n);s.channel=t,await Bct(r,s);let a=new Jl(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Jl.prototype.getTileCredits=function(e,t,n){};Jl.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return fl.loadImage(this,o)};Jl.prototype.pickFeatures=function(e,t,n,i,o){};Jl._logoUrl=void 0;Object.defineProperties(Jl,{logoUrl:{get:function(){return l(Jl._logoUrl)||(Jl._logoUrl=nn("Assets/Images/google_earth_credit.png")),Jl._logoUrl},set:function(e){Jl._logoUrl=e}}});var BF=Jl;var kct=/\/$/,s0e=new vt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function jS(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();kct.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new vt(s))):s=s0e,this._resource=i,this._imageryProvider=new Ha({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(jS.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});jS.prototype.getTileCredits=function(e,t,n){};jS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};jS.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};jS._defaultCredit=s0e;var kF=jS;function OT(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,re.MAX_VALUE),n=new Yi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new me;let i=e.credit;typeof i=="string"&&(i=new vt(i)),this._credit=i;let o=we.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(OT.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function Vct(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=wo.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return wX(e,n,r);throw l(n)&&(n._hasError=!0),new ce(o)}async function wX(e,t,n){try{return await fl.loadImage(null,e)}catch(i){return Vct(e,i,t,n)}}OT.fromUrl=async function(e,t){let n=we.createIfNeeded(e),i=await wX(n);t=y(t,y.EMPTY_OBJECT);let o=new OT({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};OT.prototype.getTileCredits=function(e,t,n){};OT.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await wX(this._resource,this);return this._image=o,wo.reportSuccess(this._errorEvent),o}return this._image};OT.prototype.pickFeatures=function(e,t,n,i,o){};var VF=OT;function Uct(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=zct:e==="xml"?n=jct:(e==="html"||e==="text")&&(n=a0e)),this.callback=n}function zct(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new Rh;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),l(o.geometry)&&o.geometry.type==="Point"){let s=o.geometry.coordinates[0],a=o.geometry.coordinates[1];r.position=fe.fromDegrees(s,a)}t.push(r)}return t}var DX="http://www.mapinfo.com/mxp",Hct="http://www.esri.com/wms",Gct="http://www.opengis.net/wfs",Wct="http://www.opengis.net/gml";function jct(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===DX)return qct(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===Hct)return Yct(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===Gct)return Xct(e);if(t.localName==="ServiceExceptionReport")throw new ce(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Kct(e):Zct(e)}function qct(e){let t=[],i=e.documentElement.getElementsByTagNameNS(DX,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(DX,"Val");for(let u=0;u<a.length;++u){let f=a[u];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new Rh;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function Yct(e){let t=e.documentElement,n=[],i,o=t.getElementsByTagNameNS("*","FIELDS");if(o.length>0)for(let r=0;r<o.length;++r){let s=o[r];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let u=a[c];i[u.name]=u.value}n.push(o8(s,i))}else{let r=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<r.length;++s){let a=r[s];i={};let c=a.childNodes;for(let u=0;u<c.length;++u){let f=c[u];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(o8(a,i))}}return n}function Xct(e){let t=[],i=e.documentElement.getElementsByTagNameNS(Wct,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};IX(r,s),t.push(o8(r,s))}return t}function Kct(e){let t=[],n,i=e.documentElement.childNodes;for(let r=0;r<i.length;r++)if(i[r].nodeType===Node.ELEMENT_NODE){n=i[r];break}if(!l(n))throw new ce("Unable to find first child of the feature info xml document");let o=n.childNodes;for(let r=0;r<o.length;++r){let s=o[r];if(s.nodeType===Node.ELEMENT_NODE){let a={};IX(s,a),t.push(o8(s,a))}}return t}function IX(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let o=e.childNodes[i];o.nodeType===Node.ELEMENT_NODE&&(n=!1),!(o.localName==="Point"||o.localName==="LineString"||o.localName==="Polygon"||o.localName==="boundedBy")&&o.hasChildNodes()&&IX(o,t)&&(t[o.localName]=o.textContent)}return n}function o8(e,t){let n=new Rh;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function Zct(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new Rh;return o.data=e,o.description=n.innerHTML,[o]}var $ct=/<body>\s*<\/body>/im,Qct=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Jct=/<title>([\s\S]*)<\/title>/im;function a0e(e){if($ct.test(e)||Qct.test(e))return;let t,n=Jct.exec(e);n&&n.length>1&&(t=n[1]);let i=new Rh;return i.name=t,i.description=e,i.data=e,[i]}var MT=Uct;function UF(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(UF.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});UF.prototype.getFromCache=function(e,t,n,i){let o=c0e(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};UF.prototype.checkApproachingInterval=function(e,t,n,i){let o=c0e(e,t,n),r=this._tilesRequestedForInterval,s=l0e(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!u0e(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};UF.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=l0e(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=u0e(this,c,r),a||s.push(c)}}};function c0e(e,t,n){return`${e}-${t}-${n}`}function elt(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function l0e(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=Z.secondsDifference(c.stop,i),++a):(s=Z.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function u0e(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=elt(s),c=new Ko({throttle:!1,throttleByServer:!0,type:fs.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var LT=UF;var tlt=[3034,3035,3042,3043,3044],nlt=[4471,4559];function Mh(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new he("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=we.createIfNeeded(e.url),n=we.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Mh.DefaultParameters,!0),n.setQueryParameters(Mh.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(f0e(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(f0e(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new LT({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return d0e(i,s,a,c,u,f)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof wi?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!nlt.includes(a)||tlt.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof wi?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new Ha({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new Yi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Mh.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function d0e(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function ilt(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Mh.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Mh.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Mh.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=d0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Mh.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return ilt(this,e,t,n,i,o,s)};Mh.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Mh.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Mh.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new MT("json","application/json")),Object.freeze(new MT("xml","text/xml")),Object.freeze(new MT("text","text/html"))]);function f0e(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var zF=Mh;var olt=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function HF(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=we.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(olt),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new rs({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new LT({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return h0e(s,d,p,g,m,x)},reloadFunction:function(){l(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(re.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(re.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new me;let f=e.credit;this._credit=typeof f=="string"?new vt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function h0e(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),l(u)&&d.setTemplateValues(u),l(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(u)&&(g=yt(g,u)),l(f)&&(g=yt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return fl.loadImage(e,d)}Object.defineProperties(HF.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}}});HF.prototype.getTileCredits=function(e,t,n){};HF.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=h0e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};HF.prototype.pickFeatures=function(e,t,n,i,o){};var GF=HF;var rlt={ARCGIS_MAPSERVER:rg.fromUrl,BING:async(e,t)=>LF.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,BF.fromUrl(e,n,t)},MAPBOX:(e,t)=>new kF({url:e,...t}),SINGLE_TILE:VF.fromUrl,TMS:C0.fromUrl,URL_TEMPLATE:(e,t)=>new Ha({url:e,...t}),WMS:(e,t)=>new zF({url:e,...t}),WMTS:(e,t)=>new GF({url:e,...t})};function $m(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new me}Object.defineProperties($m.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});$m.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=xu._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=$m._endpointCache[i];l(o)||(o=n.fetchJson(),$m._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ce(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await C0.fromUrl(new xu(r,n));else{let u=rlt[a];if(!l(u))throw new ce(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new $m(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=xu.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};$m.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};$m.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};$m.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};$m._endpointCache={};var sg=$m;var slt={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ag=Object.freeze(slt);function alt(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ag.AERIAL);return sg.fromAssetId(t)}var cg=alt;var WF=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var jF=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;function qS(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=ai.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}qS.createPlaceholder=function(e){let t=new qS(e,0,0,0);return t.addReference(),t.state=ai.PLACEHOLDER,t};qS.prototype.addReference=function(){++this.referenceCount};qS.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};qS.prototype.processStateMachine=function(e,t,n){this.state===ai.UNLOADED&&!n&&(this.state=ai.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===ai.RECEIVED&&(this.state=ai.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===ai.READY&&t&&!this.texture;(this.state===ai.TEXTURE_LOADED||i)&&(this.state=ai.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var YS=qS;function PX(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}PX.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};PX.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===ai.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==ai.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==ai.FAILED&&r.state!==ai.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===ai.FAILED||i.state===ai.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var XS=PX;function bi(e,t){this._imageryProvider=e,this._readyEvent=new me,this._errorEvent=new me,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,bi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,bi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,bi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,bi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,bi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,bi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,bi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,bi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,re.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new XS(YS.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,bi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(bi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});bi.DEFAULT_BRIGHTNESS=1;bi.DEFAULT_CONTRAST=1;bi.DEFAULT_HUE=0;bi.DEFAULT_SATURATION=1;bi.DEFAULT_GAMMA=1;bi.DEFAULT_SPLIT=Nr.NONE;bi.DEFAULT_MINIFICATION_FILTER=Zt.LINEAR;bi.DEFAULT_MAGNIFICATION_FILTER=di.LINEAR;bi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;bi.fromProviderAsync=function(e,t){let n=new bi(void 0,t);return dlt(n,Promise.resolve(e)),n};bi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),bi.fromProviderAsync(cg({style:e.style}),e)};bi.prototype.isBaseLayer=function(){return this._isBaseLayer};bi.prototype.isDestroyed=function(){return!1};bi.prototype.destroy=function(){return ue(this)};var _0e=new re,m0e=new re,RX=new re,g0e=new re;bi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return re.intersection(e.rectangle,t)};bi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof wi&&e.rectangle.north<wi.MaximumLatitude&&e.rectangle.south>-wi.MaximumLatitude,s=re.intersection(o.rectangle,this._rectangle,_0e),a=re.intersection(e.rectangle,s,m0e);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=m0e,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=ult(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,m=g.positionToTileXY(re.northwest(a),d),x=g.positionToTileXY(re.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,C=g.tileXYToRectangle(m.x,m.y,d);Math.abs(C.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(C.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let A=g.tileXYToRectangle(x.x,x.y,d);Math.abs(A.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(A.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let E=re.clone(e.rectangle,g0e),v=g.tileXYToRectangle(m.x,m.y,d),D=re.intersection(v,s,RX),O;r?(g.rectangleToNativeRectangle(E,E),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=E.width/512,T=E.height/512):O=g.tileXYToRectangle.bind(g);let R,M=0,N=1,_;!this.isBaseLayer()&&Math.abs(D.west-E.west)>=b&&(M=Math.min(1,(D.west-E.west)/E.width)),!this.isBaseLayer()&&Math.abs(D.north-E.north)>=T&&(N=Math.max(0,(D.north-E.south)/E.height));let S=N;for(let w=m.x;w<=x.x;w++)if(R=M,v=O(w,m.y,d),D=re.simpleIntersection(v,s,RX),!!l(D)){M=Math.min(1,(D.east-E.west)/E.width),w===x.x&&(this.isBaseLayer()||Math.abs(D.east-E.east)<b)&&(M=1),N=S;for(let I=m.y;I<=x.y;I++){if(_=N,v=O(w,I,d),D=re.simpleIntersection(v,s,RX),!l(D))continue;N=Math.max(0,(D.south-E.south)/E.height),I===x.y&&(this.isBaseLayer()||Math.abs(D.south-E.south)<T)&&(N=0);let L=new oe(R,N,M,_),B=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new XS(B,L,r)),++n}}return!0};bi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,_0e),i=c.rectangleToNativeRectangle(i,g0e)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new oe(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};bi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=ai.RECEIVED,e.request=void 0,wo.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===Zn.CANCELLED){e.state=ai.UNLOADED,e.request=void 0;return}e.state=ai.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=wo.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new Ko({throttle:!1,throttleByServer:!0,type:fs.IMAGERY});e.request=s,e.state=ai.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=ai.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};bi.prototype._createTextureWebGL=function(e,t){let n=new $t({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Pt({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Pt({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?Je.RGBA:Je.RGB,sampler:n})};bi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=ai.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=ai.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof wi?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=ai.TEXTURE_LOADED};function p0e(e,t,n){return`${e}:${t}:${n}`}bi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===Zt.LINEAR&&i===di.LINEAR&&!Je.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=Zt.LINEAR_MIPMAP_LINEAR;let r=kt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=p0e(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(rm.NICEST),t.sampler=u}else{let r=p0e(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};bi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof vi)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new Nc({persists:!0,owner:this,preExecute:function(c){llt(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=ai.READY,t.releaseReference()},canceled:function(){t.state=ai.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=ai.READY};bi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};bi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};bi.prototype.getImageryFromCache=function(e,t,n,i){let o=y0e(e,t,n),r=this._imageryCache[o];return l(r)||(r=new YS(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};bi.prototype.removeImageryFromCache=function(e){let t=y0e(e.x,e.y,e.level);delete this._imageryCache[t]};function y0e(e,t,n){return JSON.stringify([e,t,n])}var r8={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new z,texture:void 0},clt=Ht.supportsTypedArrays()?new Float32Array(2*64):void 0;function llt(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let b=new Float32Array(2*64*2),T=0;for(let D=0;D<64;++D){let O=D/63;b[T++]=0,b[T++]=O,b[T++]=1,b[T++]=O}let C={position:0,webMercatorT:1},A=os.getRegularGridIndices(2,64),E=_t.createIndexBuffer({context:t,typedArray:A,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});o.vertexArray=new ti({context:t,attributes:[{index:C.position,vertexBuffer:_t.createVertexBuffer({context:t,typedArray:b,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:C.webMercatorT,vertexBuffer:_t.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:E});let v=new Ue({sources:[jF]});o.shaderProgram=Qt.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:WF,attributeLocations:C}),o.sampler=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;r8.textureDimensions.x=r,r8.textureDimensions.y=s,r8.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Pt({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(rm.NICEST);let p=i.south,g=i.north,m=clt,x=0;for(let b=0;b<64;++b){let T=b/63,C=P.lerp(p,g,T);a=Math.sin(C);let E=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=E,m[x++]=E}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=r8,e.vertexArray=o.vertexArray}function ult(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof vi?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function flt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function dlt(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){flt(e._errorEvent,i)}}var Ga=bi;var hlt={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},_n=hlt;var x0e={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=x0e.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},Xn=x0e;function ZS(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe}ZS.prototype.update=function(e,t,n){this.changedThisFrame&&(v0e(e,t,this.tile,n),this.changedThisFrame=!1)};ZS.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};ZS.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):ud._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var mlt=new my;ZS.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=mlt;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);Ns(e,n,c,u,s,_n.EAST,!1,a,i),Ns(e,n,c,f,s,_n.NORTH,!1,a,i),Ns(e,n,c,d,s,_n.WEST,!1,a,i),Ns(e,n,c,p,s,_n.SOUTH,!1,a,i);let g=u.findTileToNorth(r),m=u.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);Ns(e,n,c,g,s,_n.SOUTHEAST,!1,a,i),Ns(e,n,c,x,s,_n.SOUTHWEST,!1,a,i),Ns(e,n,c,m,s,_n.NORTHEAST,!1,a,i),Ns(e,n,c,b,s,_n.NORTHWEST,!1,a,i),c=a.dequeue()}};function Ns(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||Xn.wasKicked(u._lastSelectionResult)||Xn.originalResult(u._lastSelectionResult)===Xn.CULLED);){if(s)return;let f=u.parent;if(r>=_n.NORTHWEST&&f!==void 0)switch(r){case _n.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case _n.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case _n.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case _n.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===Xn.RENDERED){if(l(u.data.vertexArray))return;plt(e,t,n,u,r,o,a,c);return}if(Xn.originalResult(i._lastSelectionResult)!==Xn.CULLED)switch(r){case _n.WEST:Ns(e,t,n,i.northwestChild,o,r,!0,a,c),Ns(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.EAST:Ns(e,t,n,i.southeastChild,o,r,!0,a,c),Ns(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTH:Ns(e,t,n,i.southwestChild,o,r,!0,a,c),Ns(e,t,n,i.southeastChild,o,r,!0,a,c);break;case _n.NORTH:Ns(e,t,n,i.northeastChild,o,r,!0,a,c),Ns(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHWEST:Ns(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHEAST:Ns(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTHWEST:Ns(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.SOUTHEAST:Ns(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new he("Invalid edge")}}}function plt(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new ZS(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),_lt(e,t,n,i,o,a)}function _lt(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(v0e(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case _n.WEST:u=s.westMeshes,f=s.westTiles;break;case _n.SOUTH:u=s.southMeshes,f=s.southTiles;break;case _n.EAST:u=s.eastMeshes,f=s.eastTiles;break;case _n.NORTH:u=s.northMeshes,f=s.northTiles;break;case _n.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case _n.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case _n.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case _n.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case _n.WEST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.north,m.south,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.south,m.north,b));++p);break;case _n.SOUTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.west,m.east,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.east,m.west,b));++p);break;case _n.EAST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.south,m.north,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.north,m.south,b));++p);break;case _n.NORTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.east,m.west,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.west,m.east,b));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var NT=new fe,glt=new fe,KS=new h,NX=new h,OX=new z,MX=new z,Ku=new z;function d8(){this.height=0,this.encodedNormal=new z}function s8(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return w0e(e,t,n,i,u,c),c}var ylt={minimumHeight:0,maximumHeight:0},xlt=new h,b0e=new d8,T0e=new d8,C0e=new d8,A0e=new d8,blt=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,Tlt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function v0e(e,t,n,i){ud.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=c8(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,C0e),p=c8(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,b0e),g=c8(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,T0e),m=c8(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,A0e);d=s8(r,f,0,1,d,p,m,g,C0e),p=s8(r,f,0,0,p,d,g,m,b0e),g=s8(r,f,1,1,g,p,m,d,T0e),m=s8(r,f,1,1,m,g,d,p,A0e);let x=p.height,b=g.height,T=d.height,C=m.height,A=Math.min(x,b,T,C),E=Math.max(x,b,T,C),v=(A+E)*.5,D,O,R=e.getLevelMaximumGeometricError(n.level),M=f.maximumRadius-R,N=Math.acos(M/f.maximumRadius)*4;if(N*=1.5,s.width>N&&E-A<=R){let w=new za({width:9,height:9,buffer:blt,structure:{heightOffset:E}}),I=Tlt;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(I)}else{let w=u,I=re.center(s,glt);I.height=v;let L=f.cartographicToCartesian(I,xlt),B=new Sc(L,void 0,void 0,void 0,void 0,!0,!0,w,a,c),U=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)U+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)U+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)U+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)U+=V[D].southIndicesEastToWest.length;let G=ylt;G.minimumHeight=A,G.maximumHeight=E;let k=B.stride,W=new Float32Array(U*k),q=0,J=q;q=a8(f,s,B,W,q,0,1,d.height,d.encodedNormal,1,G),q=u8(r,f,B,W,q,r.westTiles,r.westMeshes,_n.EAST,G);let j=q;q=a8(f,s,B,W,q,0,0,p.height,p.encodedNormal,0,G),q=u8(r,f,B,W,q,r.southTiles,r.southMeshes,_n.NORTH,G);let K=q;q=a8(f,s,B,W,q,1,0,g.height,g.encodedNormal,0,G),q=u8(r,f,B,W,q,r.eastTiles,r.eastMeshes,_n.WEST,G);let Q=q;q=a8(f,s,B,W,q,1,1,m.height,m.encodedNormal,1,G),q=u8(r,f,B,W,q,r.northTiles,r.northMeshes,_n.SOUTH,G),A=G.minimumHeight,E=G.maximumHeight;let de=vn.fromRectangle(s,A,E,n.tilingScheme.ellipsoid),ye=wi.geodeticLatitudeToMercatorAngle(s.south),ae=1/(wi.geodeticLatitudeToMercatorAngle(s.north)-ye),_e=(wi.geodeticLatitudeToMercatorAngle(I.latitude)-ye)*ae,xe=f.geodeticSurfaceNormalCartographic(NT,NX),De=Mn.octEncode(xe,OX),Ae=q;B.encode(W,q*k,de.center,z.fromElements(.5,.5,Ku),v,De,_e,xe),++q;let ke=q,ze=ke<256?1:2,tt=(ke-1)*3,wt=tt*ze,pt=(W.length-ke*k)*Float32Array.BYTES_PER_ELEMENT,Be;if(pt>=wt){let Te=ke*k*Float32Array.BYTES_PER_ELEMENT;Be=ke<256?new Uint8Array(W.buffer,Te,tt):new Uint16Array(W.buffer,Te,tt)}else Be=ke<256?new Uint8Array(tt):new Uint16Array(tt);W=new Float32Array(W.buffer,0,ke*k);let Yt=0;for(D=0;D<ke-2;++D)Be[Yt++]=Ae,Be[Yt++]=D,Be[Yt++]=D+1;Be[Yt++]=Ae,Be[Yt++]=D,Be[Yt++]=0;let Ct=[];for(D=j;D>=J;--D)Ct.push(D);let lt=[];for(D=K;D>=j;--D)lt.push(D);let tn=[];for(D=Q;D>=K;--D)tn.push(D);let Ce=[];for(Ce.push(0),D=Ae-1;D>=Q;--D)Ce.push(D);r.mesh=new ld(B.center,W,Be,tt,ke,A,E,se.fromOrientedBoundingBox(de),Dlt(e,de.center,s,A,E),B.stride,de,B,Ct,lt,tn,Ce)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=ud._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let S=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(S)&&(--S.referenceCount,S.referenceCount===0&&S.destroy())}function a8(e,t,n,i,o,r,s,a,c,u,f){let d=NT;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,KS),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,NX));let m=MX;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var f8=new re;function qF(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=re.clone(e.rectangle,f8),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=re.clone(e.rectangle,f8),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var Clt=new z;function LX(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var Alt=new z,Elt=new h;function Slt(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=qF(t,n,f.decodeTextureCoordinates(d,o,Ku),Ku),g=qF(t,n,f.decodeTextureCoordinates(d,r,MX),MX),m;c?m=(s-p.x)/(g.x-p.x):m=(a-p.y)/(g.y-p.y);let x=f.decodeHeight(d,o),b=f.decodeHeight(d,r),T=n.rectangle;NT.longitude=P.lerp(T.west,T.east,s),NT.latitude=P.lerp(T.south,T.north,a),u.height=NT.height=P.lerp(x,b,m);let C;if(f.hasVertexNormals){let A=f.getOctEncodedNormal(d,o,Clt),E=f.getOctEncodedNormal(d,r,Alt),v=Mn.octDecode(A.x,A.y,KS),D=Mn.octDecode(E.x,E.y,Elt);C=h.lerp(v,D,m,KS),h.normalize(C,C),Mn.octEncode(C,u.encodedNormal)}else C=e.geodeticSurfaceNormalCartographic(NT,KS),Mn.octEncode(C,u.encodedNormal)}function w0e(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(NT,KS);Mn.octEncode(s,r.encodedNormal)}function c8(e,t,n,i,o,r,s,a,c,u,f){if(S0e(e,t,a,s,!1,n,i,f)||S0e(e,t,u,c,!0,n,i,f))return f;let p;if(FX(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],LX(r,p,n,i,f),f;let g;if(n===0?i===0?g=l8(e.westMeshes,e.westTiles,_n.EAST,e.southMeshes,e.southTiles,_n.NORTH,n,i):g=l8(e.northMeshes,e.northTiles,_n.SOUTH,e.westMeshes,e.westTiles,_n.EAST,n,i):i===0?g=l8(e.southMeshes,e.southTiles,_n.NORTH,e.eastMeshes,e.eastTiles,_n.WEST,n,i):g=l8(e.eastMeshes,e.eastTiles,_n.WEST,e.northMeshes,e.northTiles,_n.SOUTH,n,i),l(g))return w0e(e,t,n,i,g,f),f}function l8(e,t,n,i,o,r,s,a){let c=E0e(e,t,!1,n,s,a),u=E0e(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function u8(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=vlt(e,t,n,i,o,r[u],s[u],a,c);return o}function vlt(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===_n.EAST&&e.tile.x===0?(u=re.clone(r.rectangle,f8),u.west-=P.TWO_PI,u.east-=P.TWO_PI):a===_n.WEST&&r.x===0&&(u=re.clone(r.rectangle,f8),u.west+=P.TWO_PI,u.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,Ku),d=Ku.x,p=Ku.y);let g,m;switch(a){case _n.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case _n.NORTH:g=s.northIndicesWestToEast,m=!0;break;case _n.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case _n.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,C=s.vertices,A=n.stride,E,v;T.hasWebMercatorT&&(E=wi.geodeticLatitudeToMercatorAngle(f.south),v=1/(wi.geodeticLatitudeToMercatorAngle(f.north)-E));for(let D=0;D<g.length;++D){let O=g[D],R=T.decodeTextureCoordinates(C,O,Ku);qF(x,b,R,R);let M=R.x,N=R.y,_=m?M:N;if(_<0||_>1||Math.abs(M-d)<P.EPSILON5&&Math.abs(N-p)<P.EPSILON5)continue;let S=Math.abs(M)<P.EPSILON5||Math.abs(M-1)<P.EPSILON5,w=Math.abs(N)<P.EPSILON5||Math.abs(N-1)<P.EPSILON5;if(S&&w)continue;let I=T.decodePosition(C,O,KS),L=T.decodeHeight(C,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(C,O,OX):(B=OX,B.x=0,B.y=0);let U=N;if(T.hasWebMercatorT){let G=P.lerp(f.south,f.north,N);U=(wi.geodeticLatitudeToMercatorAngle(G)-E)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,NX)),n.encode(i,o*A,I,R,L,B,U,V),c.minimumHeight=Math.min(c.minimumHeight,L),c.maximumHeight=Math.max(c.maximumHeight,L),++o}return o}function E0e(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!FX(d,f))continue;let p;switch(i){case _n.WEST:p=f.westIndicesSouthToNorth;break;case _n.SOUTH:p=f.southIndicesEastToWest;break;case _n.EAST:p=f.eastIndicesNorthToSouth;break;case _n.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function FX(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function S0e(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(FX(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,u=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,u=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,Ku);let x=qF(g,e.tile,Ku,Ku);if(x.x===r&&x.y===s)return LX(m,p,r,s,a),!0;if(d=Po(c,u?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,Ku);let C=qF(g,e.tile,Ku,Ku);return f?u?C.x-r:C.y-s:u?r-C.x:s-C.y}),d<0){if(d=~d,d>0&&d<c.length)return Slt(t,g,e.tile,m,c[d-1],c[d],r,s,u,a),!0}else return LX(m,c[d],r,s,a),!0}return!1}var wlt=[new h,new h,new h,new h];function Dlt(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=wlt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var $S=ZS;function rr(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.showWaterEffect=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=yn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new me,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener(rr.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener(rr.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener(rr.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener(rr.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new me,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new H(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=re.clone(re.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0}Object.defineProperties(rr.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=oe.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(l(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Kd.setOwner(e,this,"_clippingPolygons")}}});function Ilt(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}rr.prototype.update=function(e){this._imageryLayers._update()};function Plt(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}rr.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(Ilt)})),Plt(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)ud._freeVertexArray(t[i]);t.length=0};rr.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let o=0,r=t.length;o<r;++o){let s=t[o];l(s)&&(s.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e);let i=this._clippingPolygons;l(i)&&i.enabled&&(i.update(e),i.queueCommands(e)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};rr.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:rc.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:rc.LESS_OR_EQUAL},blending:un.ALPHA_BLEND});let s=Ge(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ve.fromCache(s),s=Ge(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ve.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&$S.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.verticalExaggeration,i=e.verticalExaggerationRelativeHeight,o=this._oldVerticalExaggeration!==n||this._oldVerticalExaggerationRelativeHeight!==i;this._oldVerticalExaggeration=n,this._oldVerticalExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;eut(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function O0e(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}rr.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)O0e(t[n],e)};rr.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};rr.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};rr.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===Xn.CULLED_BUT_NEEDED,o=n.terrainState),ud.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==pr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,ud.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var Rlt=new se,M0e=new re,Olt=new re,Mlt=new fe;function m8(e,t){if(t.west<t.east)return t;let n=re.clone(t,Olt);return re.center(e,Mlt).longitude>0?n.east=P.PI:n.west=-P.PI,n}function L0e(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!re.equals(e.cartographicLimitRectangle,re.MAX_VALUE))}rr.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=L0e(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return pr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return pr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=m8(e.rectangle,this.cartographicLimitRectangle),f=re.simpleIntersection(u,e.rectangle,M0e);if(!l(f))return pr.NONE;if(re.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=Rlt,se.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&l(r.renderedMesh)&&(c=se.union(s.boundingSphere,c,c))),!l(c))return pr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let b=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=b!==jt.INSIDE,b===jt.OUTSIDE)return pr.NONE}let p=this._clippingPolygons;if(l(p)&&p.enabled){let b=p.computeIntersectionWithBoundingVolume(s);e.isClipped=b!==jt.OUTSIDE}let g,m=a.computeVisibility(c);if(m===jt.OUTSIDE?g=pr.NONE:m===jt.INTERSECTING?g=pr.PARTIAL:m===jt.INSIDE&&(g=pr.FULL),g===pr.NONE)return g;let x=t.mode===ne.SCENE3D&&t.camera.frustum instanceof rn;if(t.mode===ne.SCENE3D&&!x&&l(n)&&!o){let b=r.occludeePointInScaledSpace;return!l(b)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(b,s.minimumHeight)?g:pr.NONE}return g};rr.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var Llt=[],Nlt=[];rr.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=Llt;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===uo.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===ai.FAILED||p.state===ai.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let u=this.quadtree._lastSelectionFrameNumber,f=Nlt;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:Xn.NONE;if(p===Xn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===uo.READY)return!1;let m=d.data.imagery;for(a=0,c=m.length;a<c;++a){let x=m[a],b=x.loadingImagery,T=!l(b)||b.state===ai.FAILED||b.state===ai.INVALID,C=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[C])return!1}}else p===Xn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var Flt=new h;rr.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,Flt),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var D0e=new F,h8=new F,Blt=new oe,klt=new oe,Vlt=new oe,Ult=new h,I0e=new h,zlt=new h,Hlt=new h;rr.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Glt=[new h,new h,new h,new h];function P0e(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Glt;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}rr.prototype.computeDistanceToTile=function(e,t){Wlt(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,u=Math.abs(c-r),f=Math.abs(c-s);u>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function Wlt(e,t,n){let i=e.data;i===void 0&&(i=e.data=new ud);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new qf({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let m=g.mesh,x=g.terrainData;if(m!==void 0&&m.minimumHeight!==void 0&&m.maximumHeight!==void 0){r.minimumHeight=m.minimumHeight,r.maximumHeight=m.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}u=p}if(u!==void 0){let p=n.verticalExaggeration,g=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Cr.getHeight(r.minimumHeight,p,g),r.maximumHeight=Cr.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=vn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=se.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=P0e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=P0e(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}rr.prototype.isDestroyed=function(){return!1};rr.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function jlt(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}rr.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=jlt(d,e,n),s.state=ea.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=ea.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==Xn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};rr.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};rr.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};rr.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var qlt=new F,Ylt=new F;function R0e(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,I0e);return F.setTranslation(i,o,D0e),D0e},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,I0e);return F.setTranslation(i,r,h8),F.multiply(o,h8,h8),h8},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,qlt):F.IDENTITY;return F.inverseTranspose(o,Ylt)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new oe(0,0,.5,1),fillHighlightColor:new H(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new z(65e5,9e6),nightFadeDistance:new z(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new F,tileRectangle:new oe,verticalExaggerationAndRelativeHeight:new z(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new z,southMercatorYAndOneOverHeight:new z,waterMask:void 0,waterMaskTranslationAndScale:new oe,minMaxHeight:new z,scaleAndBias:new F,clippingPlanesEdgeColor:H.clone(H.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new oe,frontFaceAlphaByDistance:new oe,backFaceAlphaByDistance:new oe,localizedTranslucencyRectangle:new oe,undergroundColor:H.clone(H.TRANSPARENT),undergroundColorAlphaByDistance:new oe,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?yt(n,t.materialUniformMap):n}function Xlt(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Klt(e,r,o),i.wireframeVertexArray.mesh=o}}function Klt(e,t,n){let o={indices:n.indices,primitiveType:Me.TRIANGLES};Ln.toWireframe(o);let r=o.indices,s=_t.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ti({context:e,attributes:t._attributes,indexBuffer:s})}var N0e,F0e,p8;(function(){let e=new St({geometry:Md.fromDimensions({dimensions:new h(2,2,2)})}),t=new St({geometry:new w_({radius:1})}),n=new F,i,o;function r(s){return new Dn({geometryInstances:s,appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})}N0e=function(s,a){return s===i||(p8(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=Wt.fromColor(a),o=r(e)),o},F0e=function(s,a){return s===i||(p8(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=Wt.fromColor(a),o=r(t)),o},p8=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Zlt=new oe(0,0,0,0),$lt={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Qlt=H.TRANSPARENT,Jlt=new Bt;function eut(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new $S(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Te=r.credits;for(let it=0,Wi=Te.length;it<Wi;++it)o.addCreditToNextFrame(Te[it])}let s=kt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,Qlt),b=y(e.undergroundColorAlphaByDistance,Jlt),T=L0e(e,n)&&n.mode===ne.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),C=e.lambertDiffuseMultiplier,A=e.vertexShadowDarkness,E=e.hasWaterMask&&l(a),v=E&&e.showWaterEffect,D=e.oceanNormalMap,O=v&&l(D),R=e.terrainProvider,M=l(R)&&e.terrainProvider.hasVertexNormals,N=n.fog.enabled&&n.fog.renderable&&!u,_=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,S=yn.castShadows(e.shadows)&&!d,w=yn.receiveShadows(e.shadows)&&!d,I=e.hueShift,L=e.saturationShift,B=e.brightnessShift,U=!(P.equalsEpsilon(I,0,P.EPSILON7)&&P.equalsEpsilon(L,0,P.EPSILON7)&&P.equalsEpsilon(B,0,P.EPSILON7)),V=!1;if(_){let Te=h.magnitude(n.camera.positionWC),it=e.nightFadeOutDistance;V=Te>it}E&&--s,O&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=f.numberOfTextureUniforms;let G=i.renderedMesh,k=G.center,W=G.encoding,q=i.tileBoundingRegion,J=n.verticalExaggeration,j=n.verticalExaggerationRelativeHeight,K=J!==1,Q=W.hasGeodeticSurfaceNormals,de=Blt,ye=0,ae=0,_e=0,xe=0,De=!1;if(n.mode!==ne.SCENE3D){let Te=n.mapProjection,it=Te.project(re.southwest(t.rectangle),zlt),Wi=Te.project(re.northeast(t.rectangle),Hlt);if(de.x=it.x,de.y=it.y,de.z=Wi.x,de.w=Wi.y,n.mode!==ne.MORPHING&&(k=Ult,k.x=0,k.y=(de.z+de.x)*.5,k.z=(de.w+de.y)*.5,de.x-=k.y,de.y-=k.z,de.z-=k.y,de.w-=k.z),n.mode===ne.SCENE2D&&W.quantization===Js.BITS12){let ut=1/(Math.pow(2,12)-1)*.5,go=(de.z-de.x)*ut,Yo=(de.w-de.y)*ut;de.x-=go,de.y-=Yo,de.z+=go,de.w+=Yo}Te instanceof wi&&(ye=t.rectangle.south,ae=t.rectangle.north,_e=wi.geodeticLatitudeToMercatorAngle(ye),xe=1/(wi.geodeticLatitudeToMercatorAngle(ae)-_e),De=!0)}let Ae=$lt;Ae.frameState=n,Ae.surfaceTile=i,Ae.hasWaterMask=E,Ae.showReflectiveOcean=v,Ae.showOceanWaves=O,Ae.enableLighting=e.enableLighting,Ae.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ae.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ae.showGroundAtmosphere=_,Ae.atmosphereLightIntensity=e.atmosphereLightIntensity,Ae.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ae.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ae.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ae.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ae.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ae.perFragmentGroundAtmosphere=V,Ae.hasVertexNormals=M,Ae.useWebMercatorProjection=De,Ae.clippedByBoundaries=i.clippedByBoundaries,Ae.hasGeodeticSurfaceNormals=Q,Ae.hasExaggeration=K;let ke=i.imagery,ze=0,tt=ke.length,wt=e.showSkirts&&!u&&!d,pt=e.backFaceCulling&&!u&&!d,Be=pt?e._renderState:e._disableCullingRenderState,Yt=pt?e._blendRenderState:e._disableCullingBlendRenderState,Ct=Be,lt=e._firstPassInitialColor,tn=n.context;if(l(e._debug.boundingSphereTile)||p8(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Te=e._drawCommands.length;for(let it=0;it<Te;++it)e._uniformMaps[it]=R0e(n,e)}do{let Te=0,it,Wi;if(e._drawCommands.length<=e._usedDrawCommands?(it=new Ze,it.owner=t,it.cull=!1,it.boundingVolume=new se,it.orientedBoundingBox=void 0,Wi=R0e(n,e),e._drawCommands.push(it),e._uniformMaps.push(Wi)):(it=e._drawCommands[e._usedDrawCommands],Wi=e._uniformMaps[e._usedDrawCommands]),it.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let Aa=q.boundingVolume,bl=q.boundingSphere;l(Aa)?N0e(Aa,H.RED).update(n):l(bl)&&F0e(bl,H.RED).update(n)}let ut=Wi.properties;oe.clone(lt,ut.initialColor),ut.oceanNormalMap=D,ut.lightingFadeDistance.x=e.lightingFadeOutDistance,ut.lightingFadeDistance.y=e.lightingFadeInDistance,ut.nightFadeDistance.x=e.nightFadeOutDistance,ut.nightFadeDistance.y=e.nightFadeInDistance,ut.atmosphereLightIntensity=e.atmosphereLightIntensity,ut.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,ut.atmosphereMieCoefficient=e.atmosphereMieCoefficient,ut.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,ut.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,ut.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,ut.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let go=u?g:p,Yo=u?p:g;l(go)&&(oe.fromElements(go.near,go.nearValue,go.far,go.farValue,ut.frontFaceAlphaByDistance),oe.fromElements(Yo.near,Yo.nearValue,Yo.far,Yo.farValue,ut.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,ut.undergroundColorAlphaByDistance),H.clone(x,ut.undergroundColor),ut.lambertDiffuseMultiplier=C,ut.vertexShadowDarkness=A;let Ya=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;Ya&&H.clone(e.fillHighlightColor,ut.fillHighlightColor),ut.verticalExaggerationAndRelativeHeight.x=J,ut.verticalExaggerationAndRelativeHeight.y=j,ut.center3D=G.center,h.clone(k,ut.rtc),oe.clone(de,ut.tileRectangle),ut.southAndNorthLatitude.x=ye,ut.southAndNorthLatitude.y=ae,ut.southMercatorYAndOneOverHeight.x=_e,ut.southMercatorYAndOneOverHeight.y=xe;let Ir=klt,Cs=m8(t.rectangle,e.cartographicLimitRectangle),Le=Vlt,ot=m8(t.rectangle,m);h.fromElements(I,L,B,ut.hsbShift);let qe=t.rectangle,Xe=1/qe.width,dt=1/qe.height;Ir.x=(Cs.west-qe.west)*Xe,Ir.y=(Cs.south-qe.south)*dt,Ir.z=(Cs.east-qe.west)*Xe,Ir.w=(Cs.north-qe.south)*dt,oe.clone(Ir,ut.localizedCartographicLimitRectangle),Le.x=(ot.west-qe.west)*Xe,Le.y=(ot.south-qe.south)*dt,Le.z=(ot.east-qe.west)*Xe,Le.w=(ot.north-qe.south)*dt,oe.clone(Le,ut.localizedTranslucencyRectangle);let Gt=N&&P.fog(t._distance,n.fog.density)>P.EPSILON3;U=U&&(Gt||_);let wn=!1,Io=!1,Jn=!1,ls=!1,Xa=!1,Yr=!1,Fi=!1,ks=!1,Xr=!1,lf=!1;for(;Te<s&&ze<tt;){let Aa=ke[ze],bl=Aa.readyImagery;if(++ze,!l(bl)||bl.imageryLayer.alpha===0)continue;let Oc=Aa.useWebMercatorT?bl.textureWebMercator:bl.texture,us=bl.imageryLayer;l(Aa.textureTranslationAndScale)||(Aa.textureTranslationAndScale=us._calculateTextureTranslationAndScale(t,Aa)),ut.dayTextures[Te]=Oc,ut.dayTextureTranslationAndScale[Te]=Aa.textureTranslationAndScale,ut.dayTextureTexCoordsRectangle[Te]=Aa.textureCoordinateRectangle,ut.dayTextureUseWebMercatorT[Te]=Aa.useWebMercatorT,ut.dayTextureAlpha[Te]=us.alpha,Yr=Yr||ut.dayTextureAlpha[Te]!==1,ut.dayTextureNightAlpha[Te]=us.nightAlpha,Fi=Fi||ut.dayTextureNightAlpha[Te]!==1,ut.dayTextureDayAlpha[Te]=us.dayAlpha,Fi=Fi||ut.dayTextureDayAlpha[Te]!==1,ut.dayTextureBrightness[Te]=us.brightness,wn=wn||ut.dayTextureBrightness[Te]!==Ga.DEFAULT_BRIGHTNESS,ut.dayTextureContrast[Te]=us.contrast,Io=Io||ut.dayTextureContrast[Te]!==Ga.DEFAULT_CONTRAST,ut.dayTextureHue[Te]=us.hue,Jn=Jn||ut.dayTextureHue[Te]!==Ga.DEFAULT_HUE,ut.dayTextureSaturation[Te]=us.saturation,ls=ls||ut.dayTextureSaturation[Te]!==Ga.DEFAULT_SATURATION,ut.dayTextureOneOverGamma[Te]=1/us.gamma,Xa=Xa||ut.dayTextureOneOverGamma[Te]!==1/Ga.DEFAULT_GAMMA,ut.dayTextureSplit[Te]=us.splitDirection,ks=ks||ut.dayTextureSplit[Te]!==0;let ff=ut.dayTextureCutoutRectangles[Te];if(l(ff)||(ff=ut.dayTextureCutoutRectangles[Te]=new oe),oe.clone(oe.ZERO,ff),l(us.cutoutRectangle)){let Bo=m8(qe,us.cutoutRectangle),sn=re.simpleIntersection(Bo,qe,M0e);Xr=l(sn)||Xr,ff.x=(Bo.west-qe.west)*Xe,ff.y=(Bo.south-qe.south)*dt,ff.z=(Bo.east-qe.west)*Xe,ff.w=(Bo.north-qe.south)*dt}let df=ut.colorsToAlpha[Te];l(df)||(df=ut.colorsToAlpha[Te]=new oe);let hf=l(us.colorToAlpha)&&us.colorToAlphaThreshold>0;if(lf=lf||hf,hf){let Bo=us.colorToAlpha;df.x=Bo.red,df.y=Bo.green,df.z=Bo.blue,df.w=us.colorToAlphaThreshold}else df.w=-1;if(l(bl.credits)){let Bo=bl.credits;for(let sn=0,Ee=Bo.length;sn<Ee;++sn)o.addCreditToNextFrame(Bo[sn])}++Te}ut.dayTextures.length=Te,ut.waterMask=a,oe.clone(c,ut.waterMaskTranslationAndScale),ut.minMaxHeight.x=W.minimumHeight,ut.minMaxHeight.y=W.maximumHeight,F.clone(W.matrix,ut.scaleAndBias);let yo=e._clippingPlanes,Pr=l(yo)&&yo.enabled&&t.isClipped;Pr&&(ut.clippingPlanesEdgeColor=H.clone(yo.edgeColor,ut.clippingPlanesEdgeColor),ut.clippingPlanesEdgeWidth=yo.edgeWidth);let mp=e._clippingPolygons,Kr=l(mp)&&mp.enabled&&t.isClipped;Ae.numberOfDayTextures=Te,Ae.applyBrightness=wn,Ae.applyContrast=Io,Ae.applyHue=Jn,Ae.applySaturation=ls,Ae.applyGamma=Xa,Ae.applyAlpha=Yr,Ae.applyDayNightAlpha=Fi,Ae.applySplit=ks,Ae.enableFog=Gt,Ae.enableClippingPlanes=Pr,Ae.clippingPlanes=yo,Ae.enableClippingPolygons=Kr,Ae.clippingPolygons=mp,Ae.hasImageryLayerCutout=Xr,Ae.colorCorrect=U,Ae.highlightFillTile=Ya,Ae.colorToAlpha=lf,Ae.showUndergroundColor=T,Ae.translucent=d;let uf=i.renderedMesh.indices.length;wt||(uf=i.renderedMesh.indexCountWithoutSkirts),it.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ae),it.castShadows=S,it.receiveShadows=w,it.renderState=Ct,it.primitiveType=Me.TRIANGLES,it.vertexArray=i.vertexArray||i.fill.vertexArray,it.count=uf,it.uniformMap=Wi,it.pass=ve.GLOBE,e._debug.wireframe&&(Xlt(tn,e,t),l(i.wireframeVertexArray)&&(it.vertexArray=i.wireframeVertexArray,it.primitiveType=Me.LINES,it.count=uf*2));let Ka=it.boundingVolume,X0=it.orientedBoundingBox;n.mode!==ne.SCENE3D?(se.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,q.minimumHeight,q.maximumHeight,Ka),h.fromElements(Ka.center.z,Ka.center.x,Ka.center.y,Ka.center),n.mode===ne.MORPHING&&(Ka=se.union(q.boundingSphere,Ka,Ka))):(it.boundingVolume=se.clone(q.boundingSphere,Ka),it.orientedBoundingBox=vn.clone(q.boundingVolume,X0)),it.dirty=!0,d&&f.updateDerivedCommands(it,n),O0e(it,n),Ct=Yt,lt=Zlt}while(ze<tt)}var YF=rr;function B0e(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=re.clone(re.MAX_VALUE)}Object.defineProperties(B0e.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Bt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Bt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=re.clone(re.MAX_VALUE)),re.clone(e,this._rectangle)}}});var XF=B0e;function Fs(){this._layers=[],this.layerAdded=new me,this.layerRemoved=new me,this.layerMoved=new me,this.layerShownOrHidden=new me}Object.defineProperties(Fs.prototype,{length:{get:function(){return this._layers.length}}});Fs.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};Fs.prototype.addImageryProvider=function(e,t){let n=new Ga(e);return this.add(n,t),n};Fs.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};Fs.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};Fs.prototype.contains=function(e){return this.indexOf(e)!==-1};Fs.prototype.indexOf=function(e){return this._layers.indexOf(e)};Fs.prototype.get=function(e){return this._layers[e]};function _8(e,t){return e.indexOf(t)}function k0e(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}Fs.prototype.raise=function(e){let t=_8(this._layers,e);k0e(this,t,t+1)};Fs.prototype.lower=function(e){let t=_8(this._layers,e);k0e(this,t,t-1)};Fs.prototype.raiseToTop=function(e){let t=_8(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};Fs.prototype.lowerToBottom=function(e){let t=_8(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var tut=new re;function V0e(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];re.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!re.contains(u.rectangle,t))continue;let d=tut,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),re.contains(d,t)&&i(u)}}Fs.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[];if(V0e(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};Fs.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(V0e(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};Fs.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};Fs.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};Fs.prototype.isDestroyed=function(){return!1};Fs.prototype.destroy=function(){return this.removeAll(!0),ue(this)};Fs.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var KF=Fs;function U0e(e){this._ellipsoid=new B_(e.ellipsoid,h.ZERO)}Object.defineProperties(U0e.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var ZF=U0e;function dl(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=Xn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=ea.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}dl.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new dl({tilingScheme:e,x:s,y:r,level:0});return i};dl.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(dl.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new dl({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<ea.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});dl.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};dl.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};dl.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};dl.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};dl.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};dl.prototype.freeResources=function(){this.state=ea.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),g8(this._southwestChild),this._southwestChild=void 0,g8(this._southeastChild),this._southeastChild=void 0,g8(this._northwestChild),this._northwestChild=void 0,g8(this._northeastChild),this._northeastChild=void 0};function g8(e){l(e)&&e.freeResources()}var $F=dl;function y8(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}y8.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};y8.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),z0e(this,t)),t=i}};function z0e(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}y8.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&z0e(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var QF=y8;function dd(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new QF,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new ZF({ellipsoid:n}),this._tileLoadProgressEvent=new me,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(dd.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});dd.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function nut(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,G0e(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}dd.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==ea.START&&e(t),t=t.replacementNext};dd.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};dd.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};dd.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function G0e(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}dd.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(nut(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),G0e(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};dd.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),sut(this,e),_ut(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function iut(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=me.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}dd.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(dut(this,e),put(this,e),iut(this,e))};dd.prototype.isDestroyed=function(){return!1};dd.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var e2,H0e=new fe;function out(e,t){let n=re.center(e.rectangle,H0e),i=n.longitude-e2.longitude,o=n.latitude-e2.latitude;n=re.center(t.rectangle,H0e);let r=n.longitude-e2.longitude,s=n.latitude-e2.latitude;return i*i+o*o-(r*r+s*s)}var rut=new h,JF=[];function sut(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles)){let x=r.tilingScheme;if(l(x)){let b=r.tilingScheme;e._levelZeroTiles=$F.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(JF.length<T)for(JF=new Array(T),o=0;o<T;++o)JF[o]===void 0&&(JF[o]=new t2)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;e2=t.camera.positionCartographic,a.sort(out);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=F.getTranslation(g.transform,rut);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(m,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?Wa(e,s,r,t,c,!1,JF[o]):(lg(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function lg(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function t2(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function W0e(){this.southwest=new t2,this.southeast=new t2,this.northwest=new t2,this.northeast=new t2}W0e.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var VX=new Array(31);for(let e=0;e<VX.length;++e)VX[e]=new W0e;function aut(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=uut(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:Xn.NONE,g=e.tileProvider;if(s||i){let m=Xn.originalResult(p)===Xn.RENDERED,x=Xn.originalResult(p)===Xn.CULLED||p===Xn.NONE,b=n.state===ea.DONE,T=m||x||b;if(T||l(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&lg(e,e._tileLoadQueueMedium,n,t),x8(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&lg(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){x8(e,n),lg(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,C=e._tileLoadQueueHigh.length,A=e._tileToUpdateHeights.length;if(cut(e,a,c,u,f,t,i,o),x!==e._tilesToRender.length){let E=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!E&&!v){let R=e._tilesToRender;for(let N=x;N<R.length;++N){let _=R[N];for(;_!==void 0&&_._lastSelectionResult!==Xn.KICKED&&_!==n;)_._lastSelectionResult=Xn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=A,x8(e,n),n._lastSelectionResult=Xn.RENDERED;let M=p===Xn.RENDERED;!M&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=C,lg(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=M,M||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&lg(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=Xn.RENDERED,x8(e,n),lg(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===Xn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function cut(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=VX[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Wa(e,t,u,r,f,s,p),Wa(e,n,u,r,f,s,g),Wa(e,i,u,r,f,s,m),Wa(e,o,u,r,f,s,x)):(Wa(e,i,u,r,f,s,m),Wa(e,t,u,r,f,s,p),Wa(e,o,u,r,f,s,x),Wa(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(Wa(e,n,u,r,f,s,g),Wa(e,t,u,r,f,s,p),Wa(e,o,u,r,f,s,x),Wa(e,i,u,r,f,s,m)):(Wa(e,o,u,r,f,s,x),Wa(e,i,u,r,f,s,m),Wa(e,n,u,r,f,s,g),Wa(e,t,u,r,f,s,p)),d.combine(a)}function lut(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&re.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&re.contains(n,e._cameraReferenceFrameOriginCartographic)}function Wa(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==pr.NONE)return aut(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,lut(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&lg(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:Xn.NONE;c!==Xn.CULLED_BUT_NEEDED&&c!==Xn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=Xn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(lg(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=Xn.CULLED):t._lastSelectionResult=Xn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function uut(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof rn||t.camera.frustum instanceof Lr)return fut(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function fut(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function x8(e,t){e._tilesToRender.push(t)}function dut(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=xi()+e._loadQueueTimeSlice,s=e._tileProvider,a=BX(e,t,s,r,n,!1);a=BX(e,t,s,r,i,a),BX(e,t,s,r,o,a)}function hut(e,t){return e._loadPriority-t._loadPriority}function BX(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(hut);for(let s=0,a=o.length;s<a&&(xi()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var QS=new mn,kX=new fe,A0=new h,mut=[];function put(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=mut;n.length=0;let i=e._tileToUpdateHeights,o=xi(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:Xn.NONE;(x===Xn.RENDERED||x===Xn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,m=!1;for(f=e._lastTileIndex;f<g;++f){let x=p[f],b=d.data.terrainData,T=l(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(l(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let A=u.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,QS.direction),E=u.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,QS.origin);if(!l(E)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=h.multiplyByScalar(A,Math.abs(D)+1,A0);h.subtract(x.positionOnEllipsoidSurface,O,QS.origin)}}else fe.clone(x.positionCartographic,kX),kX.height=-11500,c.project(kX,A0),h.fromElements(A0.z,A0.x,A0.y,A0),h.clone(A0,QS.origin),h.clone(h.UNIT_X,QS.direction);let C=d.data.pick(QS,a,c,!1,A0);l(C)&&(l(x.callback)&&x.callback(C),x.level=d.level)}if(xi()>=s){m=!0;break}}if(m){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function _ut(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var n2=dd;function Lh(e){e=y(e,ee.default);let t=new Km({ellipsoid:e}),n=new KF;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new RF,this._material=void 0,this._surface=new n2({tileProvider:new YF({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new me,this._undergroundColor=H.clone(H.BLACK),this._undergroundColorAlphaByDistance=new Bt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new XF,zX(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new we({url:nn("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=ee.WGS84.equals(e),this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=P.PI_OVER_TWO*e.minimumRadius,this.lightingFadeInDistance=P.PI*e.minimumRadius,this.nightFadeOutDistance=P.PI_OVER_TWO*e.minimumRadius,this.nightFadeInDistance=5*P.PI_OVER_TWO*e.minimumRadius,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=yn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Lh.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=re.clone(re.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&zX(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,zX(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=H.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Bt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function zX(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[Zd,BS];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(IF),e._surfaceShaderSet.baseVertexShaderSource=new Ue({sources:[Zd,BS,PF],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new Ue({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function gut(e){return function(t,n){let i=se.distanceSquaredTo(t.pickBoundingSphere,e),o=se.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var yut=[],xut={start:0,stop:0};Lh.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=yut;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=se.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))se.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=$n.raySphere(e,g,xut);l(m)&&s.push(p)}s.sort(gut(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var but=new fe;Lh.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,but);n=this._ellipsoid.cartographicToCartesian(i,n)}return n};var Tut=new h,j0e=new h,Cut=new fe,Aut=new mn;function UX(e,t){return l(e)&&re.contains(e.rectangle,t)?e:void 0}Lh.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!re.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=UX(n._southwestChild,e)||UX(n._southeastChild,e)||UX(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,Tut),u=Aut,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,j0e);h.subtract(c,x,u.origin)}let p=n.data.pick(u,void 0,s,!1,j0e);if(l(p))return a.cartesianToCartographic(p,Cut).height};Lh.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Lh.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._oceanNormalMap=new Pt({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.showWaterEffect=this.showWaterEffect,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Lh.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Lh.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Lh.prototype.isDestroyed=function(){return!1};Lh.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var i2=Lh;function Eut(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var o2=Eut;var rxe={},Sut=32.184,vut=2451545,q0e=-.0529921,Y0e=-.1059842,X0e=13.0120009,K0e=13.3407154,Z0e=.9856003,$0e=26.4057084,Q0e=13.064993,J0e=.3287146,exe=1.7484877,txe=-.1589763,nxe=.0036096,ixe=.1643573,oxe=12.9590088,HX=new Z;rxe.ComputeMoon=function(e,t){l(e)||(e=Z.now()),HX=Z.addSeconds(e,Sut,HX);let n=Z.totalDays(HX)-vut,i=n/Yn.DAYS_PER_JULIAN_CENTURY,o=(125.045+q0e*n)*P.RADIANS_PER_DEGREE,r=(250.089+Y0e*n)*P.RADIANS_PER_DEGREE,s=(260.008+X0e*n)*P.RADIANS_PER_DEGREE,a=(176.625+K0e*n)*P.RADIANS_PER_DEGREE,c=(357.529+Z0e*n)*P.RADIANS_PER_DEGREE,u=(311.589+$0e*n)*P.RADIANS_PER_DEGREE,f=(134.963+Q0e*n)*P.RADIANS_PER_DEGREE,d=(276.617+J0e*n)*P.RADIANS_PER_DEGREE,p=(34.226+exe*n)*P.RADIANS_PER_DEGREE,g=(15.134+txe*n)*P.RADIANS_PER_DEGREE,m=(119.743+nxe*n)*P.RADIANS_PER_DEGREE,x=(239.961+ixe*n)*P.RADIANS_PER_DEGREE,b=(25.053+oxe*n)*P.RADIANS_PER_DEGREE,T=Math.sin(o),C=Math.sin(r),A=Math.sin(s),E=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),R=Math.sin(d),M=Math.sin(p),N=Math.sin(g),_=Math.sin(m),S=Math.sin(x),w=Math.sin(b),I=Math.cos(o),L=Math.cos(r),B=Math.cos(s),U=Math.cos(a),V=Math.cos(c),G=Math.cos(u),k=Math.cos(f),W=Math.cos(d),q=Math.cos(p),J=Math.cos(g),j=Math.cos(m),K=Math.cos(x),Q=Math.cos(b),de=(269.9949+.0031*i-3.8787*T-.1204*C+.07*A-.0172*E+.0072*D-.0052*N+.0043*w)*P.RADIANS_PER_DEGREE,ye=(66.5392+.013*i+1.5419*I+.0239*L-.0278*B+.0068*U-.0029*G+9e-4*k+8e-4*J-9e-4*Q)*P.RADIANS_PER_DEGREE,ae=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*C-.0642*A+.0158*E+.0252*v-.0066*D-.0047*O-.0046*R+.0028*M+.0052*N+.004*_+.0019*S-.0044*w)*P.RADIANS_PER_DEGREE,_e=(13.17635815-14e-13*(2*n)+3.561*I*q0e+.1208*L*Y0e-.0642*B*X0e+.0158*U*K0e+.0252*V*Z0e-.0066*G*$0e-.0047*k*Q0e-.0046*W*J0e+.0028*q*exe+.0052*J*txe+.004*j*nxe+.0019*K*ixe-.0044*Q*oxe)/86400*P.RADIANS_PER_DEGREE;return l(t)||(t=new o2),t.rightAscension=de,t.declination=ye,t.rotation=ae,t.rotationRate=_e,t};var r2=rxe;function sxe(e){(!l(e)||typeof e!="function")&&(e=r2.ComputeMoon),this._computeFunction=e}var wut=new h,Dut=new h,Iut=new h;function Put(e,t,n){let i=wut;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=Iut;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,Dut);return l(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var Rut=new $,Out=new Oe;sxe.prototype.evaluate=function(e,t){l(e)||(e=Z.now());let n=this._computeFunction(e),i=Put(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Oe.fromAxisAngle(h.UNIT_Z,o,Out),s=$.fromQuaternion(Oe.conjugate(r,r),Rut);return $.multiply(s,i,i)};var s2=sxe;var JS=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates + + vec2 st = czm_ellipsoidTextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var ev=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var GX={position:0};function b8(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new se,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this._computedModelMatrix=new F,this.show=y(e.show,!0),this.material=y(e.material,qi.fromType(qi.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new Ze({owner:y(e._owner,this)}),this._pickCommand=new Ze({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function Mut(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY}));return t=ti.fromGeometry({context:e,geometry:n,attributeLocations:GX,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}b8.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?un.ALPHA_BLEND:void 0})),l(this._va)||(this._va=Mut(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!F.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(F.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),F.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),se.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new Ue({sources:[ev]}),p=new Ue({sources:[this.material.shaderSource,JS]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=Qt.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:GX}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=yt(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,m=e.passes;if(m.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?ve.TRANSLUCENT:ve.OPAQUE,g.push(f)),m.pick){let x=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||u)&&(d=new Ue({sources:[ev]}),p=new Ue({sources:[this.material.shaderSource,JS],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=Qt.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:GX}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=yt(yt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?ve.TRANSLUCENT:ve.OPAQUE,g.push(x)}};b8.prototype.isDestroyed=function(){return!1};b8.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var a2=b8;function c2(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=nn("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ee.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new a2({radii:this.ellipsoid.radii,material:qi.fromType(qi.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new s2}Object.defineProperties(c2.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var T8=new $,Lut=new $,Nut=new h,C8=[];c2.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(Mt.computeIcrfToFixedMatrix(n,T8))||Mt.computeTemeToPseudoFixedMatrix(n,T8);let i=this._axes.evaluate(n,Lut);$.transpose(i,i),$.multiply(T8,i,i);let o=Vg.computeMoonPositionInEarthInertialFrame(n,Nut);$.multiplyByVector(T8,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=C8,C8.length=0,t.update(e),e.commandList=r,C8.length===1?C8[0]:void 0};c2.prototype.isDestroyed=function(){return!1};c2.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var l2=c2;var WX=[],jX=[];function Fut(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=WX,u=jX,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=u[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function qX(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);qX(e,t,n,i,r),qX(e,t,n,r+1,o),Fut(e,t,n,i,r,o)}function But(e,t,n){let i=e.length,o=Math.ceil(i*.5);WX.length=o,jX.length=o,qX(e,t,n,0,i-1),WX.length=0,jX.length=0}var ug=But;function vc(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var A8=new h;Object.defineProperties(vc.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,A8),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,A8);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,A8),A8)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});vc.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new vc(e,t)};var cxe=new h;vc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,cxe),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var kut=new h;vc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,kut),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,cxe),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var Vut=new h;vc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return pr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Vut),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?pr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?pr.FULL:pr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?pr.PARTIAL:pr.FULL))}}return pr.NONE};var E8=new h;vc.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,E8),E8),c=-h.dot(a,o),u=vc._anyRotationVector(o,a,c),f=vc._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=vc._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,E8),E8)};var Uut=[];vc.computeOccludeePointFromRectangle=function(e,t){t=y(t,ee.default);let n=re.subsample(e,t,0,Uut),i=se.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return vc.computeOccludeePoint(new se(o,t.minimumRadius),i.center,n)};var zut=new h;vc._anyRotationVector=function(e,t,n){let i=h.abs(t,zut),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var Hut=new h;vc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,Hut);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>P.EPSILON13)return h.normalize(s,new h)}return o};var YX=new h,Gut=new h,S8=new h,axe=new h;vc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,YX),s=h.clone(e.center,Gut),a=e.radius,c=h.subtract(s,r,S8),u=h.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),m=1/Math.sqrt(u),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,axe),axe),C=Math.sqrt(d-b*b),A=this._rotationVector(s,t,n,r,i),E=h.fromElements(A.x*A.x*c.x+(A.x*A.y-A.z)*c.y+(A.x*A.z+A.y)*c.z,(A.x*A.y+A.z)*c.x+A.y*A.y*c.y+(A.y*A.z-A.x)*c.z,(A.x*A.z-A.y)*c.x+(A.y*A.z+A.x)*c.y+A.z*A.z*c.z,YX);E=h.normalize(E,E);let v=h.multiplyByScalar(E,C,YX);A=h.normalize(h.subtract(h.add(T,v,S8),s,S8),S8);let D=h.dot(t,A);A=h.normalize(h.subtract(h.subtract(T,v,A),s,A),A);let O=h.dot(t,A);return D<O?D:O};var u2=vc;function Qm(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ps,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function XX(e){let{top:t,bottom:n,right:i,left:o,near:r,far:s}=e;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=F.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(Qm.prototype,{projectionMatrix:{get:function(){return XX(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return XX(this),this._infinitePerspective}}});var Wut=new h,jut=new h,qut=new h,Yut=new h;Qm.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,Wut),d=jut;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=qut;h.multiplyByScalar(t,u,p),h.add(e,p,p);let g=Yut;h.multiplyByScalar(f,a,g),h.add(d,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let m=i[0];return l(m)||(m=i[0]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(f,s,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),m=i[1],l(m)||(m=i[1]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(f,g,g),h.normalize(g,g),m=i[2],l(m)||(m=i[2]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(g,f,g),h.normalize(g,g),m=i[3],l(m)||(m=i[3]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),m=i[4],l(m)||(m=i[4]=new oe),m.x=t.x,m.y=t.y,m.z=t.z,m.w=-h.dot(t,d),h.negate(t,g),m=i[5],l(m)||(m=i[5]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,p),this._cullingVolume};Qm.prototype.getPixelDimensions=function(e,t,n,i,o){XX(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};Qm.prototype.clone=function(e){return l(e)||(e=new Qm),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};Qm.prototype.equals=function(e){return l(e)&&e instanceof Qm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};Qm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof Qm&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var hl=Qm;function eu(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new hl,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}eu.packedLength=6;eu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};eu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new eu),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function Nh(e){if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(eu.prototype,{projectionMatrix:{get:function(){return Nh(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return Nh(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return Nh(this),this._fovy}},sseDenominator:{get:function(){return Nh(this),this._sseDenominator}},offCenterFrustum:{get:function(){return Nh(this),this._offCenterFrustum}}});eu.prototype.computeCullingVolume=function(e,t,n){return Nh(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};eu.prototype.getPixelDimensions=function(e,t,n,i,o){return Nh(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};eu.prototype.clone=function(e){return l(e)||(e=new eu),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};eu.prototype.equals=function(e){return!l(e)||!(e instanceof eu)?!1:(Nh(this),Nh(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};eu.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof eu)?!1:(Nh(this),Nh(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var Si=eu;var f2=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; // 2.0 if NdotL = NdotV = 1.0 + if (GGX > 0.0) + { + return 0.5 / GGX; // 1/4 if NdotL = NdotV = 1.0 + } + return 0.0; +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + float alphaRoughness = roughness * roughness; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, alphaRoughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float G_Vis = 4.0 * G * VdotH * NdotL / NdotH; + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function d2(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(d2.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Xut(e,t,n){let i=t.createViewportQuadCommand(f2,{framebuffer:n,renderState:Ve.fromCache({viewport:new je(0,0,256,256)})});e._drawCommand=i}d2.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Pt({context:t,width:256,height:256,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST});this._colorTexture=n;let i=new Mr({context:t,colorTextures:[n],destroyAttachments:!1});Xut(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};d2.prototype.isDestroyed=function(){return!1};d2.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var h2=d2;var dxe={};function Kut(e,t,n){let i,o,r;if(e instanceof Si){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof hl)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Zut=new h,lxe=new h;function hxe(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function ZX(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,Zut),g=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),lxe)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),lxe));r=Math.min(Kut(d,g,m)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function m2(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var mxe=new h;function $ut(e,t,n,i,o,r,s,a){let c=e.camera,u=h.clone(c.position,mxe),f=c.pitch,d=m2(c.heading,i),p=m2(c.roll,r),g=ZX(c,n,u.z,n.z,s),m=hxe(f,o,g,a);function x(b){let T=b.time/t;c.setView({orientation:{heading:P.lerp(d,i,T),pitch:m(T),roll:P.lerp(p,r,T)}}),z.lerp(u,n,T,c.position),c.position.z=g(T)}return x}function Qut(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Jut(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var eft=new fe,tft=new fe;function nft(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,eft),m=f.pitch,x=m2(f.heading,i),b=m2(f.roll,r),T=p.cartesianToCartographic(n,tft);g.longitude=P.zeroToTwoPi(g.longitude),T.longitude=P.zeroToTwoPi(T.longitude);let C=!1;if(l(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),R=Math.max(g.longitude,T.longitude),M=D>=O&&D<=R;if(l(c)){let N=Math.abs(g.longitude-T.longitude),_=P.TWO_PI-N;(M?N:_)<(M?_:N)*c&&!M&&(C=!0)}else M||(C=!0)}C?Qut(g,T):Jut(g,T);let A=ZX(f,n,g.height,T.height,s),E=hxe(m,o,A,u);function v(){let D=g.longitude,O=T.longitude,R=g.latitude,M=T.latitude;return function(_){let S=_.time/t,w=h.fromRadians(P.lerp(D,O,S),P.lerp(R,M,S),A(S),p);f.setView({destination:w,orientation:{heading:P.lerp(x,i,S),pitch:E(S),roll:P.lerp(b,r,S)}})}}return v()}function ift(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,mxe),u=m2(a.heading,i),f=a.frustum.right-a.frustum.left,d=ZX(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(u,i,m)}}),z.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,C=(x-(b.right-b.left))*.5;b.right+=C,b.left-=C,b.top=T*b.right,b.bottom=-b.top}return p}var uxe=new fe,oft=new h;function KX(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function fxe(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}dxe.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return KX();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,uxe),n=r.project(uxe,oft));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let m=t.duration;l(m)||(m=Math.ceil(h.distance(p.position,n)/1e6)+2,m=Math.min(m,3));let x=y(t.heading,0),b=y(t.pitch,-P.PI_OVER_TWO),T=y(t.roll,0),C=e.screenSpaceCameraController;C.enableInputs=!1;let A=fxe(C,t.complete),E=fxe(C,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&z.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.SCENE2D&&h.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(b),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(T),P.negativePiToPi(p.roll),P.EPSILON10),D)return KX(A,E);let O=new Array(4);if(O[ne.SCENE2D]=ift,O[ne.SCENE3D]=nft,O[ne.COLUMBUS_VIEW]=$ut,m<=0)return KX(function(){O[i](e,1,n,x,b,T,a,c,u,f)({time:1}),typeof A=="function"&&A()},E);let R=O[i](e,m,n,x,b,T,a,c,u,f);if(!l(d)){let M=p.positionCartographic.height,N=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;M>N&&M>11500?d=qr.CUBIC_OUT:d=qr.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:R,complete:A,cancel:E}};var p2=dxe;var rft={ROTATE:0,INFINITE_SCROLL:1},tu=Object.freeze(rft);function en(e){this._scene=e,this._transform=F.clone(F.IDENTITY),this._invTransform=F.clone(F.IDENTITY),this._actualTransform=F.clone(F.IDENTITY),this._actualInvTransform=F.clone(F.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new fe,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new Si,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new me,this._moveEnd=new me,this._changed=new me,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,Cxe(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,Lxe(this,en.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*en.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}en.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);en.TRANSFORM_2D_INVERSE=F.inverseTransformation(en.TRANSFORM_2D,new F);en.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-95,-20,-70,90);en.DEFAULT_VIEW_FACTOR=.5;en.DEFAULT_OFFSET=new od(0,-P.PI_OVER_FOUR,0);function Cxe(e){F.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),F.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),F.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function sft(e){if(!l(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=xi()):e.timeSinceMoved=Math.max(xi()-e._lastMovedTimestamp,0)/1e3}}en.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};en.prototype._updateCameraChanged=function(){let e=this;if(sft(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%P.TWO_PI;s=s>P.PI?P.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,g=e._changedPosition,m=e.frustum,x=e._changedFrustum,b=p.x+m.left,T=p.x+m.right,C=g.x+x.left,A=g.x+x.right,E=p.y+m.bottom,v=p.y+m.top,D=g.y+x.bottom,O=g.y+x.top,R=Math.max(b,C),M=Math.min(T,A),N=Math.max(E,D),_=Math.min(v,O),S;if(R>=M||N>=v)S=1;else{let w=x;b<C&&T>A&&E<D&&v>O&&(w=m),S=1-(M-R)*(_-N)/((w.right-w.left)*(w.top-w.bottom))}S>t&&(e._changed.raiseEvent(S),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),u;l(e.frustum.fovy)?u=c/(e.frustum.fovy*.5):u=c;let d=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(u>t||d>t)&&(e._changed.raiseEvent(Math.max(u,d)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function aft(e){Mt.basisTo2D(e._projection,e._transform,e._actualTransform)}var cft=new fe,lft=new h,v8=new h,uft=new oe,fft=new oe,dft=new oe,hft=new oe,mft=new oe;function pft(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,uft),o=n.cartesianToCartographic(i,cft),r=t.project(o,lft),s=fft;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,mft),c=oe.add(F.getColumn(e._transform,0,v8),i,v8);n.cartesianToCartographic(c,o),t.project(o,r);let u=dft;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0;let f=hft;if(h.magnitudeSquared(u)>P.EPSILON10)h.cross(a,u,f);else{let d=oe.add(F.getColumn(e._transform,1,v8),i,v8);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,h.subtract(f,s,f),f.x=0,h.magnitudeSquared(f)<P.EPSILON10&&(oe.clone(oe.UNIT_Y,u),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,u),h.normalize(u,u),h.cross(a,u,f),h.normalize(f,f),F.setColumn(e._actualTransform,0,u,e._actualTransform),F.setColumn(e._actualTransform,1,f,e._actualTransform),F.setColumn(e._actualTransform,2,a,e._actualTransform),F.setColumn(e._actualTransform,3,s,e._actualTransform)}var $X=new h;function Dc(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,u=!h.equals(c,e.up);u&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let f=e._right,d=!h.equals(f,e.right);d&&(h.normalize(e.right,e.right),f=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(F.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(en.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?aft(e):pft(e):F.clone(e._transform,e._actualTransform),F.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=F.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=$X;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===ne.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||u||d){let m=h.dot(s,h.cross(c,f,$X));if(Math.abs(1-m)>P.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,$X);c=h.normalize(h.subtract(c,T,e._up),e._up),h.clone(c,e.up),f=h.cross(s,c,e._right),h.clone(f,e.right)}}(a||p)&&(e._directionWC=F.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=F.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=F.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&Cxe(e)}function Axe(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function Exe(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function Sxe(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var I8=new F,P8=new F;Object.defineProperties(en.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return Dc(this),this._invTransform}},viewMatrix:{get:function(){return Dc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return Dc(this),this._invViewMatrix}},positionCartographic:{get:function(){return Dc(this),this._positionCartographic}},positionWC:{get:function(){return Dc(this),this._positionWC}},directionWC:{get:function(){return Dc(this),this._directionWC}},upWC:{get:function(){return Dc(this),this._upWC}},rightWC:{get:function(){return Dc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Axe(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Exe(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,I8),n=Mt.eastNorthUpToFixedFrame(this.positionWC,e,P8);this._setTransform(n);let i=Sxe(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});en.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&Ixe(this,this.position)};var _ft=new h,gft=new h,yft=new h;en.prototype._setTransform=function(e){let t=h.clone(this.positionWC,_ft),n=h.clone(this.upWC,gft),i=h.clone(this.directionWC,yft);F.clone(e,this._transform),this._transformChanged=!0,Dc(this);let o=this._actualInvTransform;F.multiplyByPoint(o,t,this.position),F.multiplyByPointAsVector(o,i,this.direction),F.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),Dc(this)};var xft=new z,bft=new mn,Tft=new h,Cft=new h;function vxe(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=xft;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,bft);o=n.pickWorldCoordinates(a,t,!0,Tft)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,Cft));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}en.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof rn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=vxe(this)))};var R8=new h,nK=new F,Aft=new F,iK=new Oe,oK=new $,wxe=new fe;function Eft(e,t,n){let i=F.clone(e.transform,nK),o=Mt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,Aft);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function Sft(e,t,n,i){let o=F.clone(e.transform,nK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,wxe);t=a.project(c,R8)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function vft(e,t,n,i){let o=F.clone(e.transform,nK);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,wxe);t=c.project(u,R8)}z.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===tu.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Oe.fromHeadingPitchRoll(n,iK),s=$.fromQuaternion(r,oK);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var wft=new h,Dft=new h,Ift=new h;function Dxe(e,t,n,i){let o=h.clone(n.direction,wft),r=h.clone(n.up,Dft);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Mt.eastNorthUpToFixedFrame(t,a,I8),u=F.inverseTransformation(c,P8);F.multiplyByPointAsVector(u,o,o),F.multiplyByPointAsVector(u,r,r)}let s=h.cross(o,r,Ift);return i.heading=Axe(o,r),i.pitch=Exe(o),i.roll=Sxe(o,r,s),i}var tK={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},tv=new Sa;en.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,R8));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,R8),i=!1),l(t.direction)&&(t=Dxe(this,o,t,tK.orientation)),tv.heading=y(t.heading,0),tv.pitch=y(t.pitch,-P.PI_OVER_TWO),tv.roll=y(t.roll,0),n===ne.SCENE3D?Eft(this,o,tv):n===ne.SCENE2D?vft(this,o,tv,i):Sft(this,o,tv,i)};var Pft=new h;en.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:en.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(en.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*en.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,Pft).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};en.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new oe),Dc(this),F.multiplyByVector(this._actualInvTransform,e,t)};en.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPoint(this._actualInvTransform,e,t)};en.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};en.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new oe),Dc(this),F.multiplyByVector(this._actualTransform,e,t)};en.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPoint(this._actualTransform,e,t)};en.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),Dc(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function Ixe(e,t){let n=e._scene.mapMode2D===tu.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var pxe=new h;en.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,pxe),h.add(n,pxe,n),this._mode===ne.SCENE2D&&Ixe(this,n),this._adjustOrthographicFrustum(!0)};en.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?O8(this,e):this.move(this.direction,e)};en.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?O8(this,-e):this.move(this.direction,-e)};en.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};en.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};en.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};en.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};en.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};en.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};en.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};en.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var Rft=new Oe,Oft=new $;en.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Oe.fromAxisAngle(e,-n,Rft),o=$.fromQuaternion(i,Oft),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};en.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};en.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var Mft=new Oe,Lft=new $;en.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Oe.fromAxisAngle(e,-n,Mft),o=$.fromQuaternion(i,Lft);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};en.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),Pxe(this,e)};en.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),Pxe(this,-e)};var Nft=new h,Fft=new h,Bft=new h,_xe=new h;function Pxe(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,Nft),o=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,_xe),P.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,Fft),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,_xe)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let u=h.cross(s,i,Bft);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}en.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),Rxe(this,-e)};en.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),Rxe(this,e)};function Rxe(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function O8(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===tu.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===tu.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function Oxe(e,t){e.move(e.direction,t)}en.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?O8(this,e):Oxe(this,e)};en.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?O8(this,-e):Oxe(this,-e)};en.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return h.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var kft=new F;en.prototype.lookAt=function(e,t){let n=this._scene,i=y(n.ellipsoid,ee.default),o=Mt.eastNorthUpToFixedFrame(e,i,kft);this.lookAtTransform(o,t)};var Vft=new h,Uft=new Oe,zft=new Oe,Hft=new $;function Mxe(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Oe.fromAxisAngle(h.UNIT_Y,-t,Uft),o=Oe.fromAxisAngle(h.UNIT_Z,-e,zft),r=Oe.multiply(o,i,o),s=$.fromQuaternion(r,Hft),a=h.clone(h.UNIT_X,Vft);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}en.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=Mxe(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){z.clone(z.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<P.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(F.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<P.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var _2=new fe,Gft=new fe,Wft=new h,jft=new h,qft=new h,Yft=new h,Xft=new h,Kft=new h,Zft=new h,QX=new h,$ft={direction:new h,right:new h,up:new h},gxe;function wc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function Lxe(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:$ft,{north:s,south:a,west:c}=t,{east:u}=t;c>u&&(u+=P.TWO_PI);let f=(c+u)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let M=_2;M.longitude=f,M.latitude=s,M.height=0;let N=Gft;N.longitude=f,N.latitude=a,N.height=0;let _=gxe;(!l(_)||_.ellipsoid!==o)&&(gxe=_=new Op(void 0,void 0,o)),_.setEndPoints(M,N),d=_.interpolateUsingFraction(.5,_2).latitude}let p=_2;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Zft),m=_2;m.longitude=u,m.latitude=s;let x=o.cartographicToCartesian(m,Wft);m.longitude=c;let b=o.cartographicToCartesian(m,qft);m.longitude=f;let T=o.cartographicToCartesian(m,Xft);m.latitude=a;let C=o.cartographicToCartesian(m,Kft);m.longitude=u;let A=o.cartographicToCartesian(m,Yft);m.longitude=c;let E=o.cartographicToCartesian(m,jft);h.subtract(b,g,b),h.subtract(A,g,A),h.subtract(x,g,x),h.subtract(E,g,E),h.subtract(T,g,T),h.subtract(C,g,C);let v=o.geodeticSurfaceNormal(g,r.direction);h.negate(v,v);let D=h.cross(v,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,v,r.up),R;if(e.frustum instanceof rn){let M=Math.max(h.distance(x,b),h.distance(A,E)),N=Math.max(h.distance(x,A),h.distance(b,E)),_,S,w=e.frustum._offCenterFrustum,I=w.right/w.top,L=N*I;M>L?(_=M,S=_/I):(S=N,_=L),R=Math.max(_,S)}else{let M=Math.tan(e.frustum.fovy*.5),N=e.frustum.aspectRatio*M;if(R=Math.max(wc(v,O,b,M),wc(v,O,A,M),wc(v,O,x,M),wc(v,O,E,M),wc(v,O,T,M),wc(v,O,C,M),wc(v,D,b,N),wc(v,D,A,N),wc(v,D,x,N),wc(v,D,E,N),wc(v,D,T,N),wc(v,D,C,N)),a<0&&s>0){let _=_2;_.longitude=c,_.latitude=0,_.height=0;let S=o.cartographicToCartesian(_,QX);h.subtract(S,g,S),R=Math.max(R,wc(v,O,S,M),wc(v,D,S,N)),_.longitude=u,S=o.cartographicToCartesian(_,QX),h.subtract(S,g,S),R=Math.max(R,wc(v,O,S,M),wc(v,D,S,N))}}return h.add(g,h.multiplyByScalar(v,-R,QX),n)}var Qft=new fe,Jft=new h,edt=new h;function tdt(e,t,n){let i=e._projection;t.west>t.east&&(t=re.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Qft;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Jft);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,edt);if(F.multiplyByPoint(o,c,c),F.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var ndt=new fe,idt=new h,odt=new h;function rdt(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===tu.INFINITE_SCROLL?o+=P.TWO_PI:(t=re.MAX_VALUE,o=t.east));let r=ndt;r.longitude=o,r.latitude=t.north;let s=i.project(r,idt);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,odt),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=u,n=i.project(r,n),n}en.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===ne.SCENE3D)return Lxe(this,e,t);if(n===ne.COLUMBUS_VIEW)return tdt(this,e,t);if(n===ne.SCENE2D)return rdt(this,e,t)};var sdt=new mn;function adt(e,t,n,i){n=y(n,ee.default);let o=e.getPickRay(t,sdt),r=$n.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return mn.getPoint(o,s,i)}var cdt=new mn;function ldt(e,t,n,i){let r=e.getPickRay(t,cdt).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var udt=new mn;function fdt(e,t,n,i){let o=e.getPickRay(t,udt),r=-o.origin.x/o.direction.x;mn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}en.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=y(t,ee.default),this._mode===ne.SCENE3D)n=adt(this,e,t,n);else if(this._mode===ne.SCENE2D)n=ldt(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=fdt(this,e,this._projection,n);else return;return n}};var ddt=new h,hdt=new h,mdt=new h;function pdt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,u=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;h.clone(d,n.origin);let p=h.multiplyByScalar(e.directionWC,c,ddt);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,u*c*a,hdt),m=h.multiplyByScalar(e.upWC,f*c*s,mdt),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var w8=new h;function _dt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,w8),h.add(w8,f,f),h.multiplyByScalar(e.up,u,w8),h.add(w8,f,f),h.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}en.prototype.getPickRay=function(e,t){l(t)||(t=new mn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?pdt(this,e,t):_dt(this,e,t)};var gdt=new h,ydt=new h;en.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,gdt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),ydt);return Math.max(0,h.magnitude(n)-e.radius)};var xdt=new z;en.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,xdt);return Math.max(o.x,o.y)};function bdt(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let u=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:qr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var Tdt=new h,yxe=new h,Cdt=new h,Adt=new h;function Edt(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,Tdt),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,yxe),yxe);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,Cdt);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=h.magnitude(h.subtract(n,s,Adt)),f=c*u,d=a*u,p=e._maxCoord.x,g=e._maxCoord.y,m=Math.max(f-p,p),x=Math.max(d-g,g);if(n.z<-m||n.z>m||n.y<-x||n.y>x){let b=s.y<-m||s.y>m,T=s.z<-x||s.z>x;if(b||T)return bdt(e,n,s,m,x,t)}}en.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return Edt(this,e)};var Sdt=new h,ta={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};en.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};en.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=ta.destination,e.orientation.heading=ta.heading,e.orientation.pitch=ta.pitch,e.orientation.roll=ta.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};en.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof re;i&&(t=this.getRectangleCameraCoordinates(t,Sdt));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=Dxe(this,t,o,tK.orientation)),l(e.duration)&&e.duration<=0){let f=tK;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;ta.destination=t,ta.heading=o.heading,ta.pitch=o.pitch,ta.roll=o.roll,ta.duration=e.duration,ta.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},ta.cancel=e.cancel,ta.endTransform=e.endTransform,ta.convert=i?!1:e.convert,ta.maximumHeight=e.maximumHeight,ta.pitchAdjustHeight=e.pitchAdjustHeight,ta.flyOverLongitude=e.flyOverLongitude,ta.flyOverLongitudeWeight=e.flyOverLongitudeWeight,ta.easingFunction=e.easingFunction;let a=this._scene,c=p2.createTween(a,ta);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=en.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function vdt(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function wdt(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var Ddt=100;function Nxe(e,t,n){n=od.clone(l(n)?n:en.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=Ddt:e.frustum instanceof rn||e._mode===ne.SCENE2D?n.range=wdt(e,s):n.range=vdt(e,s),n.range=P.clamp(n.range,i,o)}return n}en.prototype.viewBoundingSphere=function(e,t){t=Nxe(this,e,t),this.lookAt(e.center,t)};var Idt=new F,Pdt=new h,Rdt=new h,Odt=new h,Mdt=new h,Ldt=new oe,Ndt=new Oe,Fdt=new $;en.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=Nxe(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,Pdt):o=Mxe(i.heading,i.pitch,i.range);let r=this._scene,s=y(r.ellipsoid,ee.default),a=Mt.eastNorthUpToFixedFrame(e.center,s,Idt);F.multiplyByPoint(a,o,o);let c,u;if(!n){if(c=h.subtract(e.center,o,Rdt),h.normalize(c,c),u=F.multiplyByPointAsVector(a,h.UNIT_Z,Odt),1-Math.abs(h.dot(c,u))<P.EPSILON6){let d=Oe.fromAxisAngle(c,i.heading,Ndt),p=$.fromQuaternion(d,Fdt);h.fromCartesian4(F.getColumn(a,1,Ldt),u),$.multiplyByVector(p,u,u)}let f=h.cross(c,u,Mdt);h.cross(f,c,u),h.normalize(u,u)}this.flyTo({destination:o,orientation:{direction:c,up:u},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var xxe=new h,bxe=new h,JX=new h,Txe=new h,g2=[new h,new h,new h,new h];function Bdt(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,xxe),r=h.magnitude(o),s=h.normalize(o,bxe),a,c;h.equalsEpsilon(s,h.UNIT_Z,P.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,JX),JX),c=h.normalize(h.cross(s,a,Txe),Txe));let u=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,xxe),d=u/r,p=h.multiplyByScalar(a,d,bxe),g=h.multiplyByScalar(c,d,JX),m=h.add(f,g,g2[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,g2[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,g2[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,g2[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),g2}var eK=new z,kdt=new h,E0=[new fe,new fe,new fe,new fe];function D8(e,t,n,i,o,r){eK.x=e,eK.y=t;let s=i.pickEllipsoid(eK,o,kdt);return l(s)?(E0[n]=o.cartesianToCartographic(s,E0[n]),1):(E0[n]=o.cartesianToCartographic(r[n],E0[n]),0)}en.prototype.computeViewRectangle=function(e,t){e=y(e,ee.default);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new se(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===jt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=Bdt(this,e);if(c+=D8(0,0,0,this,e,u),c+=D8(0,a,1,this,e,u),c+=D8(s,a,2,this,e,u),c+=D8(s,0,3,this,e,u),c<2)return re.MAX_VALUE;t=re.fromCartographicArray(E0,t);let f=0,d=E0[3].longitude;for(let p=0;p<4;++p){let g=E0[p].longitude,m=Math.abs(g-d);m>P.PI?f+=P.TWO_PI-m:f+=m,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,E0[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};en.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof Si)return;let e=this._scene;this.frustum=new Si,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};en.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof rn)return;let e=vxe(this),t=this._scene;this.frustum=new rn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};en.clone=function(e,t){return l(t)||(t=new en(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),F.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var ro=en;function Vdt(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var hd=Vdt;var Uxe=Vo(au(),1),Fxe=576,Udt=100,y2="#ffffff",M8="#48b";function zxe(e,t){this.credit=e,this.count=y(t,1)}function zdt(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(vt.equals(o,t))return!0}return!1}function Hdt(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;vt.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var Hxe="cesium-credit-delimiter";function Bxe(e){let t=document.createElement("span");return t.textContent=e,t.className=Hxe,t}function kxe(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function Vxe(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(Bxe(n));else{let f=o[u];f.className!==Hxe&&e.replaceChild(Bxe(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(kxe(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(kxe(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Gdt(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<Fxe?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=Fxe&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Wdt(e){let t=` +.cesium-credit-lightbox-overlay { + display: none; + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(80, 80, 80, 0.8); +} + +.cesium-credit-lightbox { + background-color: #303336; + color: ${y2}; + position: relative; + min-height: ${Udt}px; + margin: auto; +} +.cesium-credit-lightbox > ul > li a, +.cesium-credit-lightbox > ul > li a:visited, +.cesium-credit-wrapper a, +.cesium-credit-wrapper a:visited { + color: ${y2}; +} +.cesium-credit-lightbox > ul > li a:hover { + color: ${M8}; +} +.cesium-credit-lightbox.cesium-credit-lightbox-expanded { + border: 1px solid #444; + border-radius: 5px; + max-width: 370px; +} +.cesium-credit-lightbox.cesium-credit-lightbox-mobile { + height: 100%; + width: 100%; +} +.cesium-credit-lightbox-title { + padding: 20px 20px 0 20px; +} +.cesium-credit-lightbox-close { + font-size: 18pt; + cursor: pointer; + position: absolute; + top: 0; + right: 6px; + color: ${y2}; +} +.cesium-credit-lightbox-close:hover { + color: ${M8}; +} +.cesium-credit-lightbox > ul { + margin: 0; + padding: 12px 20px 12px 40px; + font-size: 13px; +} +.cesium-credit-lightbox > ul > li { + padding-bottom: 6px; +} +.cesium-credit-lightbox > ul > li * { + padding: 0; + margin: 0; +} + +.cesium-credit-expand-link { + padding-left: 5px; + cursor: pointer; + text-decoration: underline; + color: ${y2}; +} +.cesium-credit-expand-link:hover { + color: ${M8}; +} + +.cesium-credit-text { + color: ${y2}; +} + +.cesium-credit-delimiter { + padding: 0 5px; +} + +.cesium-credit-textContainer *, +.cesium-credit-logoContainer * { + display: inline; +} + +.cesium-credit-textContainer a:hover { + color: ${M8} +} + +.cesium-credit-textContainer .cesium-credit-wrapper:first-of-type { + padding-left: 5px; +} +`;function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function _r(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(m){r.contains(m.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),Wdt(e);let g=vt.clone(_r.cesiumCredit);this._delimiter=y(t,"\u2022"),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=u,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new Et,lightboxCredits:new Et},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Gxe(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new zxe(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}_r.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=vt.clone(Wxe())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Gxe(this,t,e)};_r.prototype.addStaticCredit=function(e){let t=this._staticCredits;zdt(t,e)||t.push(e)};_r.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};_r.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};_r.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};_r.prototype.update=function(){this._expanded&&Gdt(this)};_r.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&vt.equals(_r.cesiumCredit,this._cesiumCredit)||Gxe(this,s,r,Number.MAX_VALUE)}vt.equals(_r.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=vt.clone(_r.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};_r.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;Vxe(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",Vxe(this._creditList,t,void 0,"li"),Hdt(this)};_r.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};_r.prototype.isDestroyed=function(){return!1};_r._cesiumCredit=void 0;_r._cesiumCreditInitialized=!1;var L8;function Wxe(){if(!l(L8)){let e=nn("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Uxe.default(e).path()),L8=new vt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" style="vertical-align: -7px" title="Cesium ion"/></a>`,!0)}return _r._cesiumCreditInitialized||(_r._cesiumCredit=L8,_r._cesiumCreditInitialized=!0),L8}Object.defineProperties(_r,{cesiumCredit:{get:function(){return Wxe(),_r._cesiumCredit},set:function(e){_r._cesiumCredit=e,_r._cesiumCreditInitialized=!0}}});_r.CreditDisplayElement=zxe;var x2=_r;var N8=0,jdt=1;function FT(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Ie.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof Si?(s=N8,a=Si.packedLength):t instanceof rn&&(s=jdt,a=rn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Oe.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Oe.packedLength+Ie.packedLength}FT.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===N8?(Si.pack(o,t,n),n+=Si.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Oe.pack(e._orientation,t,n),n+=Oe.packedLength,Ie.pack(e._vertexFormat,t,n),n+=Ie.packedLength,t[n]=e._drawNearPlane?1:0,t};var qdt=new Si,Ydt=new rn,Xdt=new Oe,Kdt=new h,Zdt=new Ie;FT.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===N8?(o=Si.unpack(e,t,qdt),t+=Si.packedLength):(o=rn.unpack(e,t,Ydt),t+=rn.packedLength);let r=h.unpack(e,t,Kdt);t+=h.packedLength;let s=Oe.unpack(e,t,Xdt);t+=Oe.packedLength;let a=Ie.unpack(e,t,Zdt);t+=Ie.packedLength;let c=e[t]===1;if(!l(n))return new FT({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Oe.clone(s,n._orientation),n._vertexFormat=Ie.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function nv(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var $dt=new $,Qdt=new F,rK=new F,jxe=new h,qxe=new h,Yxe=new h,Jdt=new h,eht=new h,tht=new h,S0=new Array(3),b2=new Array(4);b2[0]=new oe(-1,-1,1,1);b2[1]=new oe(1,-1,1,1);b2[2]=new oe(1,1,1,1);b2[3]=new oe(-1,1,1,1);var Xxe=new Array(4);for(let e=0;e<4;++e)Xxe[e]=new oe;FT._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,$dt),u=y(r,jxe),f=y(s,qxe),d=y(a,Yxe);u=$.getColumn(c,0,u),f=$.getColumn(c,1,f),d=$.getColumn(c,2,d),h.normalize(u,u),h.normalize(f,f),h.normalize(d,d),h.negate(u,u);let p=F.computeView(e,d,f,u,Qdt),g,m,x=i.projectionMatrix;if(n===N8){let b=F.multiply(x,p,rK);m=F.inverse(b,rK)}else g=F.inverseTransformation(p,rK);l(m)?(S0[0]=i.near,S0[1]=i.far):(S0[0]=0,S0[1]=i.near,S0[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let C=oe.clone(b2[T],Xxe[T]);if(l(m)){C=F.multiplyByVector(m,C,C);let A=1/C.w;h.multiplyByScalar(C,A,C),h.subtract(C,e,C),h.normalize(C,C);let E=h.dot(d,C);h.multiplyByScalar(C,S0[b]/E,C),h.add(C,e,C)}else{let A=i.offCenterFrustum;l(A)&&(i=A);let E=S0[b],v=S0[b+1];C.x=(C.x*(i.right-i.left)+i.left+i.right)*.5,C.y=(C.y*(i.top-i.bottom)+i.bottom+i.top)*.5,C.z=(C.z*(E-v)-E-v)*.5,C.w=1,F.multiplyByVector(g,C,C)}o[12*b+T*3]=C.x,o[12*b+T*3+1]=C.y,o[12*b+T*3+2]=C.z}};FT.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);FT._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[4],c[u+5]=c[5],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[4],c[u+2]=c[5],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,m=l(s.bitangent)?new Float32Array(3*4*a):void 0,x=l(s.st)?new Float32Array(2*4*a):void 0,b=jxe,T=qxe,C=Yxe,A=h.negate(b,Jdt),E=h.negate(T,eht),v=h.negate(C,tht);u=0,r&&(nv(u,p,g,m,x,v,b,T),u+=3*4),nv(u,p,g,m,x,C,A,T),u+=3*4,nv(u,p,g,m,x,A,v,T),u+=3*4,nv(u,p,g,m,x,E,v,A),u+=3*4,nv(u,p,g,m,x,b,C,T),u+=3*4,nv(u,p,g,m,x,T,C,A),l(p)&&(f.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(m)&&(f.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),l(x)&&(f.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,m=p*4;d[g]=m,d[g+1]=m+1,d[g+2]=m+2,d[g+3]=m,d[g+4]=m+2,d[g+5]=m+3}return new at({attributes:f,indices:d,primitiveType:Me.TRIANGLES,boundingSphere:se.fromVertices(c)})};var BT=FT;var sK=0,nht=1;function T2(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof Si?(r=sK,s=Si.packedLength):t instanceof rn&&(r=nht,s=rn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Oe.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Oe.packedLength}T2.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===sK?(Si.pack(o,t,n),n+=Si.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Oe.pack(e._orientation,t,n),n+=Oe.packedLength,t[n]=e._drawNearPlane?1:0,t};var iht=new Si,oht=new rn,rht=new Oe,sht=new h;T2.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===sK?(o=Si.unpack(e,t,iht),t+=Si.packedLength):(o=rn.unpack(e,t,oht),t+=rn.packedLength);let r=h.unpack(e,t,sht);t+=h.packedLength;let s=Oe.unpack(e,t,rht);t+=Oe.packedLength;let a=e[t]===1;if(!l(n))return new T2({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Oe.clone(s,n._orientation),n._drawNearPlane=a,n};T2.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);BT._computeNearFarPlanes(i,o,t,n,s);let a=new fn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new at({attributes:a,indices:d,primitiveType:Me.LINES,boundingSphere:se.fromVertices(s)})};var C2=T2;function F8(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,H.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var aht=new h,cht=new $,lht=new Oe,uht=new Si,fht=new hl,dht=new rn,hht=new Lr,mht=new H,pht=[1,1e5];F8.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof Si?a=uht:s instanceof hl?a=fht:s instanceof rn?a=dht:a=hht,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=pht,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,aht);let m=cht;$.setColumn(m,0,g,m),$.setColumn(m,1,p,m),$.setColumn(m,2,d,m);let x=Oe.fromRotationMatrix(m,lht);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new Dn({geometryInstances:new St({geometry:new BT({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Wt.fromColor(H.fromAlpha(this._color,.1,mht))},id:this.id,pickPrimitive:this}),appearance:new ln({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new Dn({geometryInstances:new St({geometry:new C2({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:Wt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};F8.prototype.isDestroyed=function(){return!1};F8.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var Jm=F8;var A2=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var E2=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_modelViewProjection * position; + + czm_vertexLogDepth(); +} +`;function v2(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var S2=Ht.supportsTypedArrays()?new Float32Array(12):[],Kxe=new h,Zxe=new h,aK=new h,$xe=new h,B8=new h;function _ht(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof rn)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Kxe),g=h.normalize(p,Zxe),m=h.normalize(h.cross(h.UNIT_Z,p,aK),aK),x=h.normalize(h.cross(g,m,$xe),$xe),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Kxe);let C=T/b;r=h.multiplyByScalar(m,C,Zxe),s=h.multiplyByScalar(x,C,aK)}let a=h.add(o,s,B8);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,S2,0);let c=h.subtract(o,s,B8);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,S2,3);let u=h.add(o,s,B8);h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,S2,6);let f=h.subtract(o,s,B8);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,S2,9),S2}v2.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ee(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new Ze({renderState:this._rs,boundingVolume:new se(h.ZERO,i.maximumRadius),pass:ve.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new Ue({sources:[E2]}),a=new Ue({sources:[A2]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=Qt.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=_ht(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new at({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Me.TRIANGLES});this._va=ti.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};v2.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};v2.prototype.isDestroyed=function(){return!1};v2.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var w2=v2;function ov(){}var ght=/\bgl_FragDepth\b/,yht=/\bdiscard\b/;function xht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(l(n))return n;let i=t.fragmentShaderSource,o=!1,r=i.sources;for(let a=0;a<r.length;++a)if(ght.test(r[a])||yht.test(r[a])){o=!0;break}let s=i.defines.indexOf("LOG_DEPTH")>=0;if(!o&&!s){let a=`void main() +{ + out_FragColor = vec4(1.0); +} +`;i=new Ue({sources:[a]})}else if(!o&&s){let a=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`;i=new Ue({defines:["LOG_DEPTH"],sources:[a]})}return e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}function bht(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1};let r=Ve.fromCache(o);return n[t.id]=r,r}ov.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.depthOnlyCommand?.shaderProgram,r=i.depthOnlyCommand?.renderState;return i.depthOnlyCommand=Ze.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=xht(n,t.shaderProgram),i.depthOnlyCommand.renderState=bht(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var Tht=/\s+czm_writeLogDepth\(/,Cht=/\s+czm_vertexLogDepth\(/;function Aht(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(l(i))return i;let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a=!1,c=r.sources;for(let f=0;f<c.length;++f)if(Cht.test(c[f])){a=!0;break}if(!a){for(let d=0;d<c.length;++d)c[d]=Ue.replaceMain(c[d],"czm_log_depth_main");c.push(` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`)}c=s.sources,a=!1;for(let f=0;f<c.length;++f)Tht.test(c[f])&&(a=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(a=!0);let u="";if(!a){for(let f=0;f<c.length;f++)c[f]=Ue.replaceMain(c[f],"czm_log_depth_main");u=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}return c.push(u),e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}ov.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=Aht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function Eht(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(l(i))return i;let o=t._attributeLocations,{sources:r,defines:s}=t.fragmentShaderSource,c=r.some(g=>g.includes("out_FragData"))?"out_FragData_0":"out_FragColor",u=`void main () +{ + czm_non_pick_main(); + if (${c}.a == 0.0) { + discard; + } + ${c} = ${n}; +} `,f=r.length,d=new Array(f+1);for(let g=0;g<f;++g)d[g]=Ue.replaceMain(r[g],"czm_non_pick_main");d[f]=u;let p=new Ue({sources:d,defines:s});return e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:p,attributeLocations:o})}function Qxe(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.blending.enabled=!1,o.depthMask=!0;let r=Ve.fromCache(o);return n[t.id]=r,r}ov.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.pickCommand?.shaderProgram,r=i.pickCommand?.renderState;return i.pickCommand=Ze.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=Eht(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=Qxe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function iv(e,t,n){let i=e.length;for(let o=0;o<i;o++)e[o].trimStart().split(/\s+/)[0]===t&&(e[o]=`${t} ${n}`)}function Jxe(e){return e.isArray?e.arrayLength:At.getComponentCount(e.type)}function Sht(e){let t=Jxe(e);return e.normalized?t===1?"float":`vec${t}`:t===1?"int":`ivec${t}`}function vht(e,t,n){let i=n.schemaId,o=n.className,r=n.propertyName,s=`pickMetadata-${i}-${o}-${r}`,a=e.shaderCache.getDerivedShaderProgram(t,s);if(l(a))return a;let c=n.classProperty,u=Sht(c),f=["0.0","0.0","0.0","0.0"],d=Jxe(c);if(d===1)f[0]="float(value)";else{let x=["x","y","z","w"];for(let b=0;b<d;b++){let C=`value.${x[b]}`;f[b]=`float(${C})`}}if(!c.normalized)for(let x=0;x<d;x++)f[x]+=" / 255.0";let p=t.fragmentShaderSource.defines.slice();p.push(Su.METADATA_PICKING_ENABLED),iv(p,Su.METADATA_PICKING_VALUE_TYPE,u),iv(p,Su.METADATA_PICKING_VALUE_STRING,`metadata.${r}`),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_X,f[0]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_Y,f[1]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_Z,f[2]),iv(p,Su.METADATA_PICKING_VALUE_COMPONENT_W,f[3]);let g=new Ue({sources:t.fragmentShaderSource.sources,defines:p});return e.shaderCache.createDerivedShaderProgram(t,s,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:g,attributeLocations:t._attributeLocations})}ov.createPickMetadataDerivedCommand=function(e,t,n,i){return l(i)||(i={}),i.pickMetadataCommand=Ze.shallowClone(t,i.pickMetadataCommand),i.pickMetadataCommand.shaderProgram=vht(n,t.shaderProgram,t.pickedMetadataInfo),i.pickMetadataCommand.renderState=Qxe(e,t.renderState),i.shaderProgramId=t.shaderProgram.id,i};function wht(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(l(n))return n;let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();return o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}ov.createHdrCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=Ze.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=wht(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var ep=ov;function k8(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var Dht=new Oe,ebe=new Oe,Iht=new $;function Pht(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Oe.fromAxisAngle(o,n,ebe),c=Oe.fromAxisAngle(r,i,Dht),u=Oe.multiply(c,a,c),f=Oe.fromAxisAngle(s,t,ebe);Oe.multiply(f,u,u);let d=$.fromQuaternion(u,Iht);$.multiplyByVector(d,r,r),$.multiplyByVector(d,s,s),$.multiplyByVector(d,o,o)}k8.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;Pht(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};k8.prototype.isDestroyed=function(){return!1};k8.prototype.destroy=function(){return this._removeListener(),ue(this)};var D2=k8;function cK(){this.enabled=!0,this.renderable=!0,this.density=6e-4,this.heightScalar=.001,this._heightFalloff=.59,this.maxHeight=8e5,this.visualDensityScalar=.15,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}Object.defineProperties(cK.prototype,{heightFalloff:{get:function(){return this._heightFalloff},set:function(e){this._heightFalloff=e}}});var Rht=new h;cK.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>this.maxHeight||e.mode!==ne.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=this.density*this.heightScalar*Math.pow(Math.max(o/this.maxHeight,P.EPSILON4),-Math.max(this._heightFalloff,0)),s=h.normalize(n.positionWC,Rht),a=Math.abs(h.dot(n.directionWC,s));r*=1-a,e.fog.density=r,e.fog.visualDensityScalar=this.visualDensityScalar,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var I2=cK;function Oht(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,visualDensityScalar:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0,this.pickingMetadata=!1,this.pickedMetadataInfo=void 0}var P2=Oht;var ba={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},kT=ba.DERIVED_COMMANDS_MAXIMUM_LENGTH,ube=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function VT(){this._frontFaceAlphaByDistance=new Bt(0,1,0,1),this._backFaceAlphaByDistance=new Bt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=re.clone(re.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(kT),this._derivedBlendCommandTypes=new Array(kT),this._derivedPickCommandTypes=new Array(kT),this._derivedCommandTypesToUpdate=new Array(kT),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(VT.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});VT.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=tbe(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=tbe(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=nbe(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=nbe(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=Fht(this,e,t),this._sunVisibleThroughGlobe=Mht(this,e),this._environmentVisible=Lht(this,e),this._useDepthPlane=Nht(this,e),this._numberOfTextureUniforms=Bht(this),this._rectangle=re.clone(t.translucency.rectangle,this._rectangle),kht(this,e)};function tbe(e,t,n,i){return e?l(n)?(Bt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function nbe(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function Mht(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function Lht(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function Nht(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function Fht(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function Bht(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function kht(e,t){e._derivedCommandsLength=lK(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=lK(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=lK(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<kT;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Jht())}function lK(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?ba.PICK_FRONT_FACE:u?ba.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:ba.TRANSLUCENT_FRONT_FACE,d=i?ba.PICK_BACK_FACE:u?ba.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:ba.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=ba.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=ba.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=ba.DEPTH_ONLY_BACK_FACE),o[r++]=ba.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=ba.DEPTH_ONLY_FRONT_FACE),o[r++]=ba.OPAQUE_BACK_FACE,o[r++]=f),r)}function md(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function ibe(e,t){return e.indexOf(t)>-1}function Vht(e,t){md(e.defines,"TRANSLUCENT"),md(t.defines,"TRANSLUCENT")}function Uht(e,t){md(e.defines,"GROUND_ATMOSPHERE"),md(t.defines,"GROUND_ATMOSPHERE"),md(e.defines,"FOG"),md(t.defines,"FOG"),md(e.defines,"TRANSLUCENT"),md(t.defines,"TRANSLUCENT")}function uK(e,t){if(ibe(t.defines,"TILE_LIMIT_RECTANGLE")||ibe(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function fK(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=Ue.replaceMain(n[r],"czm_globe_translucency_main");n.push(` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`)}function fbe(e,t){fK(e,t),md(e.defines,"GROUND_ATMOSPHERE"),md(t.defines,"GROUND_ATMOSPHERE"),md(e.defines,"FOG"),md(t.defines,"FOG")}function zht(e,t){fK(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Hht(e,t){fbe(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function obe(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function Ght(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function Wht(e){e.cull.face=gi.BACK,e.cull.enabled=!0}function jht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0}function qht(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Yht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Xht(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function rbe(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function sbe(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=un.ALPHA_BLEND}function Kht(e){e.cull.face=gi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Zht(e){e.cull.face=gi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function $ht(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Ve.getState(e);i(s),r=Ve.fromCache(s),o[e.id]=r}return r}function rv(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Qht(e,t,n,i,o){return l(o)?!i&&l(n)?n:yt(t,o(e),!1):t}function Fh(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Jht(){return[new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:Vht,getRenderStateFunction:Wht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:Uht,getRenderStateFunction:jht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:qht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:Yht,getUniformMapFunction:void 0}),new Fh({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:uK,getRenderStateFunction:Xht,getUniformMapFunction:void 0}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:fK,getRenderStateFunction:rbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:fbe,getRenderStateFunction:sbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:zht,getRenderStateFunction:rbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Hht,getRenderStateFunction:sbe,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:obe,getRenderStateFunction:Kht,getUniformMapFunction:rv}),new Fh({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:obe,getRenderStateFunction:Zht,getUniformMapFunction:rv})]}var abe=new Array(kT),cbe=new Array(kT);VT.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)cbe[o]=this._derivedCommandPacks[n[o]],abe[o]=ube[n[o]];emt(this,e,i,n,abe,cbe,t)}};function emt(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,m=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=u),m&&(a.shaderProgramDirtyFrame=u),x&&(a.renderStateDirtyFrame=u),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let b=0;b<n;++b){let T=r[b],C=i[b],A=o[b],E=a[A],v,D,O;l(E)?(v=E.uniformMap,D=E.shaderProgram,O=E.renderState):(v=void 0,D=void 0,O=void 0),E=Ze.shallowClone(t,E),a[A]=E;let R=y(E.derivedCommands.uniformMapDirtyFrame,0),M=y(E.derivedCommands.shaderProgramDirtyFrame,0),N=y(E.derivedCommands.renderStateDirtyFrame,0),_=g||R<f,S=m||M<d,w=x||N<p;_&&(E.derivedCommands.uniformMapDirtyFrame=u),S&&(E.derivedCommands.shaderProgramDirtyFrame=u),w&&(E.derivedCommands.renderStateDirtyFrame=u),E.derivedCommands.type=C,E.pass=T.pass,E.pickOnly=T.pickOnly,E.uniformMap=Qht(e,t.uniformMap,v,_,T.getUniformMapFunction),E.shaderProgram=Ght(s.context,t.shaderProgram,D,S,T.getShaderProgramFunction,A),E.renderState=$ht(t.renderState,O,w,T.getRenderStateFunction,T.renderStateCache)}}}VT.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=ube[o[a]];n.commandList.push(s[c])}};function dbe(e,t,n,i,o,r){for(let s=0;s<t;++s){let a=e[s],c=a.derivedCommands.type;(!l(r)||r.indexOf(c)>-1)&&n(a,i,o)}}function lbe(e,t,n,i,o){for(let r=0;r<t;++r)n(e[r],i,o)}var tmt=[ba.OPAQUE_FRONT_FACE,ba.OPAQUE_BACK_FACE],nmt=[ba.DEPTH_ONLY_FRONT_FACE,ba.DEPTH_ONLY_BACK_FACE,ba.DEPTH_ONLY_FRONT_AND_BACK_FACE];VT.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[ve.GLOBE],a=e.indices[ve.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),dbe(s,a,t,i,o,tmt))};VT.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let{context:r}=i,{uniformState:s}=r,a=e.commands[ve.GLOBE],c=e.indices[ve.GLOBE],u=e.commands[ve.TERRAIN_CLASSIFICATION],f=e.indices[ve.TERRAIN_CLASSIFICATION];if(c===0||f===0)return;let d=this._frontFaceTranslucent,p=this._backFaceTranslucent;if((!d||!p)&&lbe(u,f,t,i,o),!d&&!p)return;this._globeTranslucencyFramebuffer=n;let g=s.globeDepthTexture,m=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,dbe(a,c,t,i,o,nmt),r.depthTexture){let x=n.packDepth(r,o);s.globeDepthTexture=x}lbe(u,f,t,i,o),s.globeDepthTexture=g,o.framebuffer=m};var R2=VT;var nu=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function tp(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new hi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new hi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ei({color:new H(0,0,0,0),owner:this}),this._clearCommand=new ei({color:new H(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(tp.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});tp.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var imt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:0,mask:Vt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},omt={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Un.NOT_EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:0,mask:Vt.CLASSIFICATION_MASK},blending:un.ALPHA_BLEND},rmt={depthMask:!0,depthTest:{enabled:!0},stencilTest:Vt.setCesium3DTileBit(),stencilMask:Vt.CESIUM_3D_TILE_MASK,blending:un.ALPHA_BLEND},smt=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,amt=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;tp.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Pt({context:e,width:s,height:a,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new du({context:e,width:s,height:a,format:kc.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(imt),this._rsClassified=Ve.fromCache(omt),this._rsDefault=Ve.fromCache(rmt)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?amt:smt,f=new Ue({defines:["UNCLASSIFIED"],sources:[u]}),d=new Ue({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(nu,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};tp.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};tp.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};tp.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};tp.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};tp.prototype.isDestroyed=function(){return!1};tp.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var sv=tp;function V8(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(V8.prototype,{total:{get:function(){return this._total}}});function v0(e){let t=new Array(La.NUMBER_OF_JOB_TYPES);t[La.TEXTURE]=new V8(l(e)?e[La.TEXTURE]:10),t[La.PROGRAM]=new V8(l(e)?e[La.PROGRAM]:10),t[La.BUFFER]=new V8(l(e)?e[La.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}v0.getTimestamp=xi;Object.defineProperties(v0.prototype,{totalBudget:{get:function(){return this._totalBudget}}});v0.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};v0.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};v0.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=v0.getTimestamp();e.execute();let a=v0.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var O2=v0;function U8(e){e=y(e,y.EMPTY_OBJECT);let t=In(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=xi(),this._lastMsSampleTime=xi(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(U8.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});U8.prototype.update=function(e){let t=xi(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};U8.prototype.destroy=function(){return ue(this)};var fg=U8;var ml={};ml.decodeRawMetadataValue=function(e,t,n){switch(e){case zt.INT8:return t.getInt8(n);case zt.UINT8:return t.getUint8(n);case zt.INT16:return t.getInt16(n);case zt.UINT16:return t.getUint16(n);case zt.INT32:return t.getInt32(n);case zt.UINT32:return t.getUint32(n);case zt.INT64:return t.getBigInt64(n);case zt.UINT64:return t.getBigUint64(n);case zt.FLOAT32:return t.getFloat32(n);case zt.FLOAT64:return t.getFloat64(n)}throw new ce(`Invalid component type: ${e}`)};ml.decodeRawMetadataValueComponent=function(e,t,n){let i=e.componentType,o=ml.decodeRawMetadataValue(i,t,n);return e.normalized?zt.normalize(o,i):o};ml.decodeRawMetadataValueElement=function(e,t,n){let i=e.componentType,o=zt.getSizeInBytes(i),r=e.type,s=At.getComponentCount(r),a=o*s;if(s>1){let f=Array(s);for(let d=0;d<s;d++){let p=n*a+d*o,g=ml.decodeRawMetadataValueComponent(e,t,p);f[d]=g}return f}let c=n*a;return ml.decodeRawMetadataValueComponent(e,t,c)};ml.decodeRawMetadataValues=function(e,t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=ml.decodeRawMetadataValueElement(e,n,s);r[s]=a}return r}return ml.decodeRawMetadataValueElement(e,n,0)};ml.convertToObjectType=function(e,t){if(!l(t)||e===At.SCALAR||e===At.STRING||e===At.BOOLEAN||e===At.ENUM)return t;let n=t.map(i=>Number(i));switch(e){case At.VEC2:return z.unpack(n,0,new z);case At.VEC3:return h.unpack(n,0,new h);case At.VEC4:return oe.unpack(n,0,new h);case At.MAT2:return Bi.unpack(n,0,new Bi);case At.MAT3:return $.unpack(n,0,new $);case At.MAT4:return F.unpack(n,0,new F)}return t};ml.decodeMetadataValues=function(e,t){let n=ml.decodeRawMetadataValues(e,t);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=n[s],c=ml.convertToObjectType(e.type,a);r[s]=c}return r}return ml.convertToObjectType(e.type,n)};var M2=Object.freeze(ml);function UT(){this._framebuffer=new hi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(UT.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function cmt(e,t,n){let{width:i,height:o}=n;e._framebuffer.update(t,i,o)}function lmt(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates); + float globeDepth = czm_unpackDepth(globeDepthPacked); + float depth = texture(colorTexture, v_textureCoordinates).r; + out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0, + czm_packDepth(depth), globeDepthPacked); +} +`,{renderState:Ve.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}UT.prototype.update=function(e,t){cmt(this,e,t),lmt(this,e,t)};var umt=new oe,fmt=new oe(1,1/255,1/65025,1/16581375);UT.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,umt);return oe.divideByScalar(o,255,o),oe.dot(o,fmt)};UT.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};UT.prototype.isDestroyed=function(){return!1};UT.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var L2=UT;function dmt(e,t){this.near=y(e,0),this.far=y(t,0);let n=ve.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var N2=dmt;var w0=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function np(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new hi,this._tempCopyDepthFramebuffer=new hi,this._updateDepthFramebuffer=new hi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new je,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(np.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function hbe(e,t,n,i,o){let r=e._viewport;r.width=n,r.height=i;let s=!je.equals(r,o.viewport),a=s!==e._useScissorTest;e._useScissorTest=s,je.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=je.clone(o.viewport,e._scissorRectangle),a=!0),(!l(e._rs)||!je.equals(r,e._rs.viewport)||a)&&(e._rs=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,frontOperation:{fail:ft.KEEP,zFail:ft.KEEP,zPass:ft.KEEP},backFunction:Un.NEVER,reference:Vt.CESIUM_3D_TILE_MASK,mask:Vt.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ei({color:new H(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}np.prototype.update=function(e,t,n,i,o,r){let{width:s,height:a}=n,c=o?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),hbe(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._clearGlobeDepth=r};np.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};np.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};np.prototype.executeUpdateDepth=function(e,t,n){let i=l(n)?n:t.framebuffer.depthStencilTexture;if(!this._clearGlobeDepth&&i===this.colorFramebufferManager.getDepthStencilTexture()){l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t);return}if(!l(this._updateDepthCommand))return;let o=this._updateDepthFramebuffer;if(!l(o.framebuffer)||o.getDepthStencilTexture()!==i||o.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture(),{width:s,height:a}=r;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,s,a),o.setColorTexture(r,0),o.setDepthStencilTexture(i),o.update(e,s,a),hbe(this,e,s,a,t)}this._tempCopyDepthTexture=i,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)};np.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};np.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(H.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};np.prototype.isDestroyed=function(){return!1};np.prototype.destroy=function(){return this._pickColorFramebuffer.destroy(),this._outputFramebuffer.destroy(),this._copyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.destroy(),this._updateDepthFramebuffer.destroy(),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var F2=np;function zT(){this._framebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new hi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new je,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(zT.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function hmt(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function mmt(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function pmt(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!je.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,je.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=je.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!je.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(w0,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ei({color:new H(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}zT.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;mmt(this,n,o,r,e),pmt(this,n,o,r,i),this._useHdr=e};zT.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};zT.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};zT.prototype.isDestroyed=function(){return!1};zT.prototype.destroy=function(){return hmt(this),ue(this)};var B2=zT;var av=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var k2=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function dg(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new hi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new hi({createColorAttachments:!1}),this._opaqueClearCommand=new ei({color:new H(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ei({color:new H(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ei({color:new H(0,0,0,0),owner:this}),this._alphaClearCommand=new ei({color:new H(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new je,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function mbe(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function dK(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function pbe(e){mbe(e),dK(e)}function _mt(e,t,n,i){mbe(e),e._accumulationTexture=new Pt({context:t,width:n,height:i,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT}),e._revealageTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.FLOAT,width:n,height:i,flipY:!1})}function gmt(e,t){dK(e);let n=te.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(dK(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(pbe(e),e._translucentMultipassSupport=!1,i=!1)}return i}dg.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,_mt(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!gmt(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new Ue({sources:[k2]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new Ue({defines:["MRT"],sources:[av]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new Ue({sources:[av]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!je.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,je.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=je.clone(t.viewport,this._scissorRectangle),m=!0),(!l(this._rs)||!je.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var ymt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA},xmt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ONE,functionDestinationRgb:Co.ONE,functionSourceAlpha:Co.ONE,functionDestinationAlpha:Co.ONE},bmt={enabled:!0,color:new H(0,0,0,0),equationRgb:Pa.ADD,equationAlpha:Pa.ADD,functionSourceRgb:Co.ZERO,functionDestinationRgb:Co.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Co.ZERO,functionDestinationAlpha:Co.ONE_MINUS_SOURCE_ALPHA};function hK(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Ve.getState(i);r.depthMask=!1,r.blending=t,o=Ve.fromCache(r),n[i.id]=o}return o}function Tmt(e,t,n){return hK(t,ymt,e._translucentRenderStateCache,n)}function Cmt(e,t,n){return hK(t,xmt,e._translucentRenderStateCache,n)}function Amt(e,t,n){return hK(t,bmt,e._alphaRenderStateCache,n)}var Emt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,Smt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,vmt=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function mK(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return Ue.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]}; +${u}`}return a.sources.push(u),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function wmt(e,t){return mK(e,t,"translucentMRT",Emt)}function Dmt(e,t){return mK(e,t,"translucentMultipass",Smt)}function Imt(e,t){return mK(e,t,"alphaMultipass",vmt)}dg.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=wmt(t,e.shaderProgram),n.translucentCommand.renderState=Tmt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=Ze.shallowClone(e,n.translucentCommand),n.alphaCommand=Ze.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=Dmt(t,e.shaderProgram),n.translucentCommand.renderState=Cmt(this,t,e.renderState),n.alphaCommand.shaderProgram=Imt(t,e.shaderProgram),n.alphaCommand.renderState=Amt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function Pmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=e._alphaFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.alphaCommand:x.derivedCommands.oit.alphaCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.alphaCommand:m.derivedCommands.oit.alphaCommand;n(x,t,i,g)}i.framebuffer=d}function Rmt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=d}dg.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){Rmt(this,e,t,n,i,o);return}Pmt(this,e,t,n,i,o)};dg.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};dg.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,H.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};dg.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};dg.prototype.isDestroyed=function(){return!1};dg.prototype.destroy=function(){return pbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var V2=dg;function U2(){this._framebuffer=new hi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(U2.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Omt(e){e._framebuffer.destroy()}function Mmt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new ic(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new je},o.viewport=new je,e._passState=o}U2.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&Mmt(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};U2.prototype.isDestroyed=function(){return!1};U2.prototype.destroy=function(){return Omt(this),ue(this)};var z2=U2;function cv(e){let t=new ic(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new je},t.viewport=new je,this._context=e,this._fb=new hi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}cv.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return je.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var H2=new H;cv.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+u+a);H2.red=H.byteToFloat(o[m]),H2.green=H.byteToFloat(o[m+1]),H2.blue=H.byteToFloat(o[m+2]),H2.alpha=H.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(H2);if(l(x))return x}if(u===f||u<0&&-u===f||u>0&&u===1-f){let m=d;d=-p,p=m}u+=d,f+=p}};cv.prototype.readCenterPixel=function(e){let t=y(e.width,1),n=y(e.height,1),o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};cv.prototype.isDestroyed=function(){return!1};cv.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var G2=cv;function hg(){this._numSamples=1,this._colorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new H(0,0,0,0),this._clearCommand=new ei({color:new H(0,0,0,0),depth:1,owner:this})}function Lmt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(hg.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});hg.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};hg.prototype.clear=function(e,t,n){H.clone(n,this._clearCommand.color),H.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};hg.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};hg.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};hg.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};hg.prototype.isDestroyed=function(){return!1};hg.prototype.destroy=function(){return Lmt(this),ue(this)};var HT=hg;function GT(){}GT.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};GT.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=Ue.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=Ue.replaceMain(o[u],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`)}return new Ue({defines:i,sources:o})};GT.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=Ue.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=Ue.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; +`),u+=`uniform vec4 shadowMap_lightPositionEC; +`),i?u+=`void main() +{ +`:u+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?u+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?u+=` out_FragColor = vec4(1.0); +`:u+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,u+=`} +`,r.push(u),new Ue({defines:o,sources:r})};GT.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};GT.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new Ue({defines:i,sources:o})};GT.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=Ue.findNormalVarying(e),s=!i&&l(r)||i&&o,a=Ue.findPositionVarying(e),c=l(a),u=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,m=t.debugCascadeColors,x=t.softShadows,b=d?t._pointBias:i?t._terrainBias:t._primitiveBias,T=e.defines.slice(0),C=e.sources.slice(0),A=C.length;for(let D=0;D<A;++D)C[D]=Ue.replaceMain(C[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):u&&T.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!d&&T.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?T.push("ENABLE_VERTEX_LIGHTING"):T.push("ENABLE_DAYNIGHT_SHADING")),n&&b.normalShading&&s&&(T.push("USE_NORMAL_SHADING"),b.normalShadingSmooth>0&&T.push("USE_NORMAL_SHADING_SMOOTH"));let E="";d?E+=`uniform samplerCube shadowMap_textureCube; +`:E+=`uniform sampler2D shadowMap_texture; +`;let v;return c?v=` return vec4(${a}, 1.0); +`:v=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,E+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${v}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${b.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,E+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,E+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?E+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:f||(E+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),d?E+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?E+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?E+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${m?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:E+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,E+=` out_FragColor.rgb *= visibility; +} +`,C.push(E),new Ue({defines:T,sources:C})};var ip=GT;function op(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(Ht.isInternetExplorer()||Ht.isEdge()||(Ht.isChrome()||Ht.isFirefox())&&Ht.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new F,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new oe,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new z8,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new se,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new z,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Lr:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new oe,new oe],this._cascadeMatrices=[new F,new F,new F,new F],this._cascadeDistances=new oe;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new Nmt(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,_K(this),this._clearCommand=new ei({depth:1,color:new H}),this._clearPassState=new ic(t),this._size=y(e.size,2048),this.size=this._size}op.MAXIMUM_DISTANCE=2e4;function Nmt(e){this.camera=new z8,this.passState=new ic(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function pK(e,t){return Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function _K(e){let t=!e._usesDepthTexture;e._primitiveRenderState=pK(t,e._primitiveBias),e._terrainRenderState=pK(t,e._terrainBias),e._pointRenderState=pK(t,e._pointBias)}op.prototype.debugCreateRenderStates=function(){_K(this)};Object.defineProperties(op.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){zmt(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function gK(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function Fmt(e,t){let n=new du({context:t,width:e._textureSize.x,height:e._textureSize.y,format:kc.DEPTH_COMPONENT16}),i=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST}),o=new Mr({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function Bmt(e,t){let n=new Pt({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST}),i=new Mr({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function kmt(e,t){let n=new du({context:t,width:e._textureSize.x,height:e._textureSize.y,format:kc.DEPTH_COMPONENT16}),i=new br({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,sampler:$t.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Mr({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function ybe(e,t){e._isPointLight?kmt(e,t):e._usesDepthTexture?Bmt(e,t):Fmt(e,t)}function Vmt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,_K(e),gK(e),ybe(e,t))}function Umt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(gK(e),ybe(e,t),Vmt(e,t),xbe(e,t))}function xbe(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function zmt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=kt.maximumCubeMapSize>=t?t:kt.maximumCubeMapSize,o.x=t,o.y=t;let r=new je(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=kt.maximumTextureSize>=t?t:kt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new je(0,0,t,t)):i===4&&(t=kt.maximumTextureSize>=t*2?t:kt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new je(0,0,t,t),n[1].passState.viewport=new je(t,0,t,t),n[2].passState.viewport=new je(0,t,t,t),n[3].passState.viewport=new je(t,t,t,t));e._clearPassState.viewport=new je(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new F(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var Hmt=new je;function Gmt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=ve.OVERLAY,i}function Wmt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Hmt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Gmt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!je.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:je.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var rp=new Array(8);rp[0]=new oe(-1,-1,-1,1);rp[1]=new oe(1,-1,-1,1);rp[2]=new oe(1,1,-1,1);rp[3]=new oe(-1,1,-1,1);rp[4]=new oe(-1,-1,1,1);rp[5]=new oe(1,-1,1,1);rp[6]=new oe(1,1,1,1);rp[7]=new oe(-1,1,1,1);var D0=new F,yK=new Array(8);for(let e=0;e<8;++e)yK[e]=new oe;function jmt(e,t){let n=new St({geometry:new Md({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:Wt.fromColor(t)}}),i=new St({geometry:new w_({radius:.5}),attributes:{color:Wt.fromColor(t)}});return new Dn({geometryInstances:[n,i],appearance:new ln({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var qmt=[H.RED,H.GREEN,H.BLUE,H.MAGENTA],Ymt=new h;function Xmt(e,t){Wmt(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new Jm({camera:e._sceneCamera,color:H.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new Jm({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new Jm({camera:e._passes[i].camera,color:qmt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Oe.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,Ymt),a=F.fromTranslationQuaternionRotationScale(i,o,s,D0);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=jmt(a,H.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new Jm({camera:e._shadowMapCamera,color:H.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function z8(){this.viewMatrix=new F,this.inverseViewMatrix=new F,this.frustum=void 0,this.positionCartographic=new fe,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new F}z8.prototype.clone=function(e){F.clone(e.viewMatrix,this.viewMatrix),F.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),fe.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var Kmt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);z8.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(Kmt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Zmt=new Array(5),$mt=new Si,Qmt=new Array(4),bbe=new h,Tbe=new h;function Jmt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Qmt,g=Zmt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let N=(a+1)/s,_=o*Math.pow(u,N),S=o+c*N,w=P.lerp(S,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let N=g[0];for(a=0;a<s-1;++a)N+=p[a],g[a+1]=N}oe.unpack(g,0,e._cascadeSplits[0]),oe.unpack(g,1,e._cascadeSplits[1]),oe.unpack(p,0,e._cascadeDistances);let m=n.frustum,x=m.left,b=m.right,T=m.bottom,C=m.top,A=m.near,E=m.far,v=n.positionWC,D=n.directionWC,O=n.upWC,R=i.frustum.clone($mt),M=n.getViewProjection();for(a=0;a<s;++a){R.near=g[a],R.far=g[a+1];let N=F.multiply(R.projectionMatrix,i.viewMatrix,D0),_=F.inverse(N,D0),S=F.multiply(M,_,D0),w=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,bbe),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Tbe);for(let G=0;G<8;++G){let k=oe.clone(rp[G],yK[G]);F.multiplyByVector(S,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,w,w),h.maximumByComponent(k,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let L=e._passes[a],B=L.camera;B.clone(n);let U=B.frustum;U.left=x+w.x*(b-x),U.right=x+I.x*(b-x),U.bottom=T+w.y*(C-T),U.top=T+I.y*(C-T),U.near=A+w.z*(E-A),U.far=A+I.z*(E-A),L.cullingVolume=B.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];F.multiply(B.getViewProjection(),i.inverseViewMatrix,V),F.multiply(L.textureOffsets,V,V)}}var ept=new F,tpt=new h,npt=new h,_be=new h;function ipt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,D0),r=F.inverse(o,D0),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,tpt);a=h.cross(c,s,npt),h.normalize(a,a),h.normalize(c,c);let u=h.fromElements(0,0,0,_be),f=F.computeView(u,s,a,c,ept),d=F.multiply(f,r,D0),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,bbe),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,Tbe);for(let E=0;E<8;++E){let v=oe.clone(rp[E],yK[E]);F.multiplyByVector(d,v,v),h.divideByScalar(v,v.w,v),h.minimumByComponent(v,p,p),h.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let m=_be;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=F.fromTranslation(m,D0);f=F.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),C=g.z-p.z,A=n.frustum;A.left=-b,A.right=b,A.bottom=-T,A.top=T,A.near=.01,A.far=C,F.clone(f,n.viewMatrix),F.inverse(f,n.inverseViewMatrix),F.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var opt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],rpt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],spt=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function apt(e,t){let n=new Si;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=opt[i],o.upWC=rpt[i],o.rightWC=spt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var cpt=new h,lpt=new h,Cbe=new se,gbe=Cbe.center;function upt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=Cbe;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,cpt),s=h.negate(i.directionWC,lpt),a=h.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===jt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,gbe),gbe);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===jt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere)}}function fpt(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;F.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),F.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=ro.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,upt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}op.prototype.update=function(e){if(fpt(this,e),this._needsUpdate)if(Umt(this,e.context),this._isPointLight&&apt(this,e),this._cascadesEnabled&&(ipt(this,e),this._numberOfCascades>1&&Jmt(this,e)),this._isPointLight)this._shadowMapCullingVolume=ps.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;F.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Xmt(this,e)};op.prototype.updatePass=function(e,t){xbe(this,e,t)};var dpt=new z;function Abe(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=dpt;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,oe.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return oe.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new oe,combinedUniforms2:new oe};return yt(t,o,!1)}function hpt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=Ze.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===ve.GLOBE,d=n.pass!==ve.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=ip.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,m),!l(s)){let b=u.vertexShaderSource,T=u.fragmentShaderSource,C=ip.createShadowCastVertexShader(b,p,f),A=ip.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,m,{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:u._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ge(a,!1),a.cull=Ge(a.cull,!1),a.cull.enabled=!1,a=Ve.fromCache(a)),c=Abe(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}op.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===ve.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=Ze.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||m||n||g){let x=ip.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!l(d)){let b=ip.createShadowReceiveVertexShader(a,u,f),T=ip.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=Abe(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};op.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=hpt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};op.prototype.isDestroyed=function(){return!1};op.prototype.destroy=function(){gK(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var mg=op;var W2=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var WT=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var mpt=!1;function I0(e){this._drawClassificationFBO=new hi({createDepthAttachments:!1}),this._accumulationFBO=new hi({createDepthAttachments:!1}),this._packFBO=new hi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ei({color:new H(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ei({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new je,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(I0.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function Ebe(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function Sbe(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function ppt(e,t,n,i){Ebe(e),e._translucentDepthStencilTexture=new Pt({context:t,width:n,height:i,pixelFormat:Je.DEPTH_STENCIL,pixelDatatype:Ke.UNSIGNED_INT_24_8,sampler:$t.NEAREST})}function _pt(e,t,n,i){Sbe(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function gpt(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(ppt(e,t,o,r),_pt(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new Ue({sources:[W2]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new Ue({sources:[WT]}),a={colorTexture:function(){return e._textureToComposite}},mpt&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new Ue({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=Ze.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new Ue({sources:[WT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new Ue({sources:[WT]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!je.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,je.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=je.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!je.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!je.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Un.EQUAL,reference:Vt.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!je.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:un.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}I0.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=e.frameState.useLogDepth,s=e.context,a=n.framebuffer;for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,u.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}}if(this._hasTranslucentDepth){gpt(this,s,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(s,n);for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,!u.depthForTranslucentClassification)continue;let f=u.derivedCommands.depth.depthOnlyCommand;t(f,e,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(s,n)),n.framebuffer=a}};I0.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(ve.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[ve.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[ve.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};I0.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),ypt(this,e,t)};function ypt(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}I0.prototype.isSupported=function(){return this._supported};I0.prototype.isDestroyed=function(){return!1};I0.prototype.destroy=function(){return Ebe(this),Sbe(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var j2=I0;function xpt(){this.command=void 0,this.near=void 0,this.far=void 0}function H8(e,t,n){let i=e.context,o;i.depthTexture&&(o=new F2);let r;e._useOIT&&i.depthTexture&&(r=new V2(i));let s=new ic(i);s.viewport=je.clone(n),this.camera=t,this._cameraClone=ro.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new G2(i),this.pickDepthFramebuffer=new z2,this.sceneFramebuffer=new HT,this.globeDepth=o,this.globeTranslucencyFramebuffer=new B2,this.oit=r,this.translucentTileClassification=new j2(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var xK=new h,bK=new h;function bpt(e,t,n){let i=Math.max(h.maximumComponent(h.abs(e.position,xK)),h.maximumComponent(h.abs(t.position,bK))),o=1/Math.max(1,i);return h.multiplyByScalar(e.position,o,xK),h.multiplyByScalar(t.position,o,bK),h.equalsEpsilon(xK,bK,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&F.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}H8.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return bpt(t,n,P.EPSILON15)?(this._cameraStartFired&&xi()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=xi(),ro.clone(t,n),!0)};function Tpt(e,t,n,i){let{frameState:o}=t,{camera:r,useLogDepth:s}=o,a=s?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,c=t.mode===ne.SCENE2D,u=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let f;c?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),f=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):f=Math.ceil(Math.log(i/n)/Math.log(a));let{frustumCommandsList:d}=e;d.length=f;for(let p=0;p<f;++p){let g,m;c?(g=Math.min(i-u,n+p*u),m=Math.min(i,g+u)):(g=Math.max(n,Math.pow(a,p)*n),m=Math.min(i,a*g));let x=d[p];l(x)?(x.near=g,x.far=m):x=d[p]=new N2(g,m)}}function Cpt(e,t,n){let{command:i,near:o,far:r}=n;t.debugShowFrustums&&(i.debugOverlappingFrustums=0);let{frustumCommandsList:s}=e;for(let a=0;a<s.length;++a){let c=s[a];if(o>c.far)continue;if(r<c.near)break;let u=i.pass,f=c.indices[u]++;if(c.commands[u][f]=i,t.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<a),i.executeInClosestFrustum)break}if(t.debugShowFrustums){let{debugFrustumStatistics:a}=e,{debugOverlappingFrustums:c}=i,u=a.commandsInFrustums;u[c]=l(u[c])?u[c]+1:1,++a.totalCommands}t.updateDerivedCommands(i)}var vbe=new ps,Apt=new wa;H8.prototype.createPotentiallyVisibleSet=function(e){let{frameState:t}=e,{camera:n,commandList:i,shadowState:o}=t,{positionWC:r,directionWC:s,frustum:a}=n,c=e._computeCommandList,u=e._overlayCommandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let f=this.frustumCommandsList;for(let M=0;M<f.length;++M)for(let N=0;N<ve.NUMBER_OF_PASSES;++N)f[M].indices[N]=0;c.length=0,u.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,x=-Number.MAX_VALUE,{shadowsEnabled:b}=o,T=+Number.MAX_VALUE,C=-Number.MAX_VALUE,A=Number.MAX_VALUE,E=t.mode===ne.SCENE3D?t.occluder:void 0,{cullingVolume:v}=t,D=vbe.planes;for(let M=0;M<5;++M)D[M]=v.planes[M];v=vbe;for(let M=0;M<i.length;++M){let N=i[M],{pass:_,boundingVolume:S}=N;if(_===ve.COMPUTE)c.push(N);else if(_===ve.OVERLAY)u.push(N);else{let w,I;if(l(S)){if(!e.isVisible(v,N,E))continue;let B=S.computePlaneDistances(r,s,Apt);if(w=B.start,I=B.stop,m=Math.min(m,w),x=Math.max(x,I),b&&N.receiveShadows&&w<mg.MAXIMUM_DISTANCE&&!(_===ve.GLOBE&&w<-100&&I>100)){let U=I-w;_!==ve.GLOBE&&w<100&&(A=Math.min(A,U)),T=Math.min(T,w),C=Math.max(C,I)}}else N instanceof ei?(w=a.near,I=a.far):(w=a.near,I=a.far,m=Math.min(m,w),x=Math.max(x,I));let L=d[g];l(L)||(L=d[g]=new xpt),L.command=N,L.near=w,L.far=I,g++}}b&&(T=Math.min(Math.max(T,a.near),a.far),C=Math.max(Math.min(C,a.far),T),o.nearPlane=T,o.farPlane=C,o.closestObjectSize=A),Tpt(this,e,m,x);for(let M=0;M<g;M++)Cpt(this,e,d[M]);if(g<p)for(let M=g;M<p;M++){let N=d[M];if(!l(N.command))break;N.command=void 0}let O=f.length,{frustumSplits:R}=t;R.length=O+1;for(let M=0;M<O;++M)R[M]=f[M].near,M===O-1&&(R[M+1]=f[M].far)};H8.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e=this.pickDepths;for(let t=0;t<e.length;++t)e[t].destroy()};var jT=H8;var Dbe=.1,Ept=new hd({pass:Fo.MOST_DETAILED_PRELOAD}),Spt=new hd({pass:Fo.MOST_DETAILED_PICK}),q2=new hd({pass:Fo.PICK});function na(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new je(0,0,1,1),n=new ro(e);n.frustum=new rn({width:Dbe,aspectRatio:1,near:.1}),this._pickOffscreenView=new jT(e,n,t)}na.prototype.update=function(){this._pickPositionCacheDirty=!0};na.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new L2,n[t]=i),i};var vpt=new Lr,wpt=new h,G8=new h,Dpt=new z,Ipt=new F;function Ppt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=F.clone(r.transform,Ipt);r._setTransform(F.IDENTITY);let d=h.clone(r.position,wpt);h.multiplyByScalar(r.right,c,G8),h.add(G8,d,d),h.multiplyByScalar(r.up,u,G8),h.add(G8,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,Dpt),g=vpt;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var Rpt=new hl,Opt=new z;function Mpt(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*u,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,Opt),x=m.x*n*.5,b=m.y*i*.5,T=Rpt;return T.top=g+b,T.bottom=g-b,T.right=p+x,T.left=p-x,T.near=a,T.far=s.far,T.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function W8(e,t,n,i,o){let r=e.camera.frustum;return r instanceof rn||r instanceof Lr?Ppt(e,t,n,i,o):Mpt(e,t,n,i,o)}var j8=new je(0,0,3,3),q8=new z,Y2=new H(0,0,0,0);function TK(e,t,n,i,o){return o.width=y(n,3),o.height=y(i,o.width),o.x=t.x-(o.width-1)*.5,o.y=e-t.y-(o.height-1)*.5,o}na.prototype.pick=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=je.clone(a,u.viewport);let f=Ui.transformWindowToDrawingBuffer(e,t,q8),d=TK(o.drawingBufferHeight,f,n,i,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=W8(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pick=!0,r.tilesetPassState=q2,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,Y2),e.resolveFramebuffers(u);let p=c.end(d);return o.endFrame(),p};na.prototype.pickVoxelCoordinate=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=je.clone(a,u.viewport);let f=Ui.transformWindowToDrawingBuffer(e,t,q8),d=TK(o.drawingBufferHeight,f,n,i,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=W8(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=q2,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,Y2),e.resolveFramebuffers(u);let p=c.readCenterPixel(d);return o.endFrame(),p};na.prototype.pickMetadata=function(e,t,n){let{context:i,frameState:o,defaultView:r}=e,{viewport:s,pickFramebuffer:a}=r;e.view=r,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=r.passState;c.viewport=je.clone(s,c.viewport);let u=Ui.transformWindowToDrawingBuffer(e,t,q8),f=TK(i.drawingBufferHeight,u,1,1,j8);e.jobScheduler.disableThisFrame(),e.updateFrameState(),o.cullingVolume=W8(e,u,f.width,f.height,s),o.invertClassification=!1,o.passes.pick=!0,o.tilesetPassState=q2,o.pickingMetadata=!0,o.pickedMetadataInfo=n,i.uniformState.update(o),e.updateEnvironment(),c=a.begin(f,s),e.updateAndExecuteCommands(c,Y2);let d=e._environmentState.useOIT;e._environmentState.useOIT=!1,e.resolveFramebuffers(c),e._environmentState.useOIT=d;let p=a.readCenterPixel(f);return i.endFrame(),o.pickingMetadata=!1,M2.decodeMetadataValues(n.classProperty,p)};function Lpt(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=je.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=W8(e,t,1,1,s),o.tilesetPassState=q2,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,Y2),e.resolveFramebuffers(c),i.endFrame()}var Npt=new Si,Fpt=new hl,Bpt=new rn,kpt=new Lr;na.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let u=Ui.transformWindowToDrawingBuffer(e,t,q8);e.pickTranslucentDepth?Lpt(e,u):(e.updateFrameState(),c.update(r),e.updateEnvironment()),u.y=e.drawingBufferHeight-u.y;let f;l(s.frustum.fov)?f=s.frustum.clone(Npt):l(s.frustum.infiniteProjectionMatrix)?f=s.frustum.clone(Fpt):l(s.frustum.width)?f=s.frustum.clone(Bpt):f=s.frustum.clone(kpt);let{frustumCommandsList:d}=a,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(o,u.x,u.y);if(l(x)&&x>0&&x<1){let b=d[g],T;return e.mode===ne.SCENE2D?(T=s.position.z,s.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,c.update(r),c.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,c.updateFrustum(f)),n=Ui.drawingBufferToWorldCoordinates(e,u,x,n),e.mode===ne.SCENE2D&&(s.position.z=T,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var Vpt=new fe;na.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,Vpt);o.cartographicToCartesian(r,n)}return n};function Ibe(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),u instanceof Ws&&(g=!0,u.show=!1,a.push(u)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}na.prototype.drillPick=function(e,t,n,i,o){let r=this;return Ibe(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var wbe=new h,Upt=new h;function zpt(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function Pbe(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,wbe),s=h.cross(o,r,wbe),a=h.cross(o,s,Upt);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,Dbe),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Hpt(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=Pbe(e,o,r,a),u=Ept;u.camera=a,u.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,u),f=f&&u.ready)}return f&&n._completePick(),f}na.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Hpt(this,e,t[n])&&t.splice(n--,1)};function Rbe(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof jl&&Rbe(o,t,n))}}function Y8(e,t,n,i,o,r){let s=[];if(Rbe(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new zpt(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Gpt(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Wpt(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,u=a.uniformState,f=e._pickOffscreenView;t.view=f,Pbe(e,n,o,f.camera);let d=je.clone(f.viewport,j8),p=f.pickFramebuffer.begin(d,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=Spt:c.tilesetPassState=q2,u.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(p,Y2),t.resolveFramebuffers(p);let g,m=f.pickFramebuffer.end(d);if(t.context.depthTexture){let{frustumCommandsList:x}=f,b=x.length;for(let T=0;T<b;++T){let A=e.getPickDepth(t,T).getDepth(a,0,0);if(l(A)&&A>0&&A<1){let E=x[T],v=E.near*(T!==0?t.opaqueFrustumNearOffset:1),D=E.far,O=v+A*(D-v);g=mn.getPoint(n,O);break}}}if(t.view=t.defaultView,a.endFrame(),l(m)||l(g))return{object:m,position:g,exclude:!l(g)&&r||Gpt(m,i)}}function Obe(e,t,n,i,o,r,s,a){return Ibe(i,function(){return Wpt(e,t,n,o,r,s,a)})}function lv(e,t,n,i,o,r,s){let a=Obe(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function Mbe(e,t,n,i,o,r,s,a){return Obe(e,t,n,i,o,r,s,a)}function X8(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}na.prototype.pickFromRay=function(e,t,n,i){return lv(this,e,t,n,i,!1,!1)};na.prototype.drillPickFromRay=function(e,t,n,i,o){return Mbe(this,e,t,n,i,o,!1,!1)};na.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=mn.clone(t),n=l(n)?n.slice():n,X8(e,Y8(o,e,t,n,i,function(){return lv(o,e,t,n,i,!1,!0)}))};na.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=mn.clone(t),i=l(i)?i.slice():i,X8(e,Y8(r,e,t,i,o,function(){return Mbe(r,e,t,n,i,o,!1,!0)}))};var jpt=new h,qpt=new h,Ypt=new mn,Lbe=new fe;function CK(e,t){let n=e.ellipsoid,i=li._defaultMaxTerrainHeight,o=n.geodeticSurfaceNormalCartographic(t,qpt),r=fe.toCartesian(t,n,jpt),s=Ypt;s.origin=r,s.direction=o;let a=new mn;return mn.getPoint(s,i,a.origin),h.negate(o,a.direction),a}function Nbe(e,t){let n=e.ellipsoid,i=fe.fromCartesian(t,n,Lbe);return CK(e,i)}function Fbe(e,t){let n=e.ellipsoid;return fe.fromCartesian(t,n,Lbe).height}function Xpt(e,t,n,i,o){let r=CK(t,n);return Y8(e,t,r,i,o,function(){let s=lv(e,t,r,i,o,!0,!0);if(l(s))return Fbe(t,s.position)})}function Kpt(e,t,n,i,o,r){let s=Nbe(t,n);return Y8(e,t,s,i,o,function(){let a=lv(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}na.prototype.sampleHeight=function(e,t,n,i){let o=CK(e,t),r=lv(this,e,o,n,i,!0,!1);if(l(r))return Fbe(e,r.position)};na.prototype.clampToHeight=function(e,t,n,i,o){let r=Nbe(e,t),s=lv(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};na.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Xpt(this,e,t[s],n,i);return X8(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};na.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Kpt(this,e,t[s],n,i,t[s]);return X8(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};na.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var X2=na;var K2=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var Z2=`precision highp float; + +uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +vec3 pixelToEye(vec2 screenCoordinate) +{ + vec2 uv = screenCoordinate / czm_viewport.zw; + float depth = czm_readDepth(depthTexture, uv); + vec2 xy = 2.0 * uv - vec2(1.0); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + return posEC.xyz / posEC.w; +} + +// Reconstruct surface normal in eye coordinates, avoiding edges +vec3 getNormalXEdge(vec3 positionEC) +{ + // Find the 3D surface positions at adjacent screen pixels + vec2 centerCoord = gl_FragCoord.xy; + vec3 positionLeft = pixelToEye(centerCoord + vec2(-1.0, 0.0)); + vec3 positionRight = pixelToEye(centerCoord + vec2(1.0, 0.0)); + vec3 positionUp = pixelToEye(centerCoord + vec2(0.0, 1.0)); + vec3 positionDown = pixelToEye(centerCoord + vec2(0.0, -1.0)); + + // Compute potential tangent vectors + vec3 dx0 = positionEC - positionLeft; + vec3 dx1 = positionRight - positionEC; + vec3 dy0 = positionEC - positionDown; + vec3 dy1 = positionUp - positionEC; + + // The shorter tangent is more likely to be on the same surface + vec3 dx = length(dx0) < length(dx1) ? dx0 : dx1; + vec3 dy = length(dy0) < length(dy1) ? dy0 : dy1; + + return normalize(cross(dx, dy)); +} + +void main(void) +{ + vec3 positionEC = pixelToEye(gl_FragCoord.xy); + + if (positionEC.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec3 normalEC = getNormalXEdge(positionEC); + + float ao = 0.0; + + const int ANGLE_STEPS = 4; + float angleStepScale = 1.0 / float(ANGLE_STEPS); + float angleStep = angleStepScale * czm_twoPi; + float cosStep = cos(angleStep); + float sinStep = sin(angleStep); + mat2 rotateStep = mat2(cosStep, sinStep, -sinStep, cosStep); + + // Initial sampling direction (different for each pixel) + const float randomTextureSize = 255.0; + vec2 randomTexCoord = fract(gl_FragCoord.xy / randomTextureSize); + float randomVal = texture(randomTexture, randomTexCoord).x; + vec2 sampleDirection = vec2(cos(angleStep * randomVal), sin(angleStep * randomVal)); + + // Loop over sampling directions + for (int i = 0; i < ANGLE_STEPS; i++) + { + sampleDirection = rotateStep * sampleDirection; + + float localAO = 0.0; + vec2 radialStep = stepSize * sampleDirection; + + for (int j = 0; j < 6; j++) + { + // Step along sampling direction, away from output pixel + vec2 newCoords = floor(gl_FragCoord.xy + float(j + 1) * radialStep) + vec2(0.5); + + // Exit if we stepped off the screen + if (clamp(newCoords, vec2(0.0), czm_viewport.zw) != newCoords) + { + break; + } + + vec3 stepPositionEC = pixelToEye(newCoords); + vec3 stepVector = stepPositionEC - positionEC; + float stepLength = length(stepVector); + + if (stepLength > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalEC, normalize(stepVector)), 0.0, 1.0); + if (dotVal < bias) + { + dotVal = 0.0; + } + + float weight = stepLength / lengthCap; + weight = 1.0 - weight * weight; + localAO = max(localAO, dotVal * weight); + } + ao += localAO; + } + + ao *= angleStepScale; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var $2=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var Q2=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var J2=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var eB=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var tB=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var nB=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var iB=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var oB=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var rB=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var sB=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_pbrNeutralTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var aB=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var P0=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var cB=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var lB=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var uB=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var fB=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var dB=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var hB=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;function qT(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new hi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new z,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(qT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function Bbe(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function Zpt(e,t){Bbe(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new hi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function kbe(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function $pt(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Qpt(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function Jpt(e,t){kbe(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Qpt(r,i),{framebuffer:n[r].framebuffer,uniformMap:$pt(e,r)});e._commands=o}qT.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ei({color:new H(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};qT.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Zpt(this,e),Jpt(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};qT.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};qT.prototype.isDestroyed=function(){return!1};qT.prototype.destroy=function(){return Bbe(this),kbe(this),ue(this)};var mB=qT;var e_t={NEAREST:0,LINEAR:1},Zu=e_t;function YT(e){e=y(e,y.EMPTY_OBJECT);let{fragmentShader:t,textureScale:n=1,pixelFormat:i=Je.RGBA}=e;this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,Zu.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,H.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new ic;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?je.clone(e.scissorRectangle):new je},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=Hn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(YT.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var t_t=/uniform\s+sampler2D\s+depthTexture/g;YT.prototype._isSupported=function(e){return!t_t.test(this._fragmentShader)||e.depthTexture};function n_t(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Pt&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Pt&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function i_t(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function o_t(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function r_t(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i){if(!i.hasOwnProperty(r))continue;typeof i[r]!="function"?(t[r]=i_t(e,r),n[r]=n_t(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Pt||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=o_t(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=yt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function s_t(e,t){return e=e.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${t}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${e}`}function a_t(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=s_t(n,o)}let i=new Ue({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function c_t(e){let t=e._sampleMode,n,i;t===Zu.LINEAR?(n=Zt.LINEAR,i=di.LINEAR):(n=Zt.NEAREST,i=di.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function l_t(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function u_t(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function f_t(e,t){let n=e._texturesToRelease;for(let a=0;a<n.length;++a){let c=n[a];c=c&&c.destroy()}n.length=0;let i=e._texturesToCreate;for(let a=0;a<i.length;++a){let{name:c,source:u}=i[a];e._actualUniforms[c]=new Pt({context:t,source:u})}i.length=0;let o=e._dirtyUniforms;if(o.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(o.length===0||l(e._texturePromise))return;let r=e._uniforms,s=[];for(let a=0;a<o.length;++a){let c=o[a],u=r[c],f=e._textureCache.getStageByName(u);if(l(f))e._actualUniforms[c]=u_t(e,u);else if(typeof u=="string"){let d=new we({url:u});s.push(d.fetchImage().then(l_t(e,c)))}else e._texturesToCreate.push({name:c,source:u})}o.length=0,s.length>0?(e._ready=!1,e._texturePromise=Promise.all(s).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function Vbe(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i){if(!i.hasOwnProperty(o))continue;let r=i[o];r instanceof Pt&&(l(t.getStageByName(n[o]))||r.destroy(),e._dirtyUniforms.push(o))}}function d_t(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength;if(l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;for(let o=0;o<e._combinedSelected.length;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function h_t(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i=0;for(let s=0;s<n.length;++s){let a=n[s];l(a.pickIds)?i+=a.pickIds.length:l(a.pickId)&&++i}if(n.length===0||i===0){let s=new Uint8Array([255,255,255,255]);e._selectedIdTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:s,width:1,height:1},sampler:$t.NEAREST});return}let o=0,r=new Uint8Array(i*4);for(let s=0;s<n.length;++s){let a=n[s];if(l(a.pickIds)){let c=a.pickIds,u=c.length;for(let f=0;f<u;++f){let d=c[f].color;r[o]=H.floatToByte(d.red),r[o+1]=H.floatToByte(d.green),r[o+2]=H.floatToByte(d.blue),r[o+3]=H.floatToByte(d.alpha),o+=4}}else if(l(a.pickId)){let c=a.pickId.color;r[o]=H.floatToByte(c.red),r[o+1]=H.floatToByte(c.green),r[o+2]=H.floatToByte(c.blue),r[o+3]=H.floatToByte(c.alpha),o+=4}}e._selectedIdTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:r,width:i,height:1},sampler:$t.NEAREST})}YT.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&Vbe(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=d_t(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,h_t(this,e),r_t(this),f_t(this,e),a_t(this,e),c_t(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new je(0,0,i.width,i.height)}))),this._command.renderState=o};YT.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,$t.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};YT.prototype.isDestroyed=function(){return!1};YT.prototype.destroy=function(){return Vbe(this),ue(this)};var fo=YT;function XT(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=Hn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(XT.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});XT.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};XT.prototype.get=function(e){return this._stages[e]};function m_t(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}XT.prototype.update=function(e,t){this._selectedDirty=m_t(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};XT.prototype.isDestroyed=function(){return!1};XT.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var pl=XT;var Dr={};function K8(e){let o=`#define USE_STEP_SIZE +${P0}`,r=new fo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Zu.LINEAR}),s=new fo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Zu.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new pl({name:e,stages:[r,s],uniforms:a})}Dr.createBlurStage=function(){return K8("czm_blur")};Dr.createDepthOfFieldStage=function(){let e=K8("czm_depth_of_field_blur"),t=new fo({name:"czm_depth_of_field_composite",fragmentShader:nB,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new pl({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};Dr.isDepthOfFieldSupported=function(e){return e.context.depthTexture};Dr.createEdgeDetectionStage=function(){let e=Hn();return new fo({name:`czm_edge_detection_${e}`,fragmentShader:oB,uniforms:{length:.25,color:H.clone(H.BLACK)}})};Dr.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function p_t(e){if(!l(e))return Dr.createEdgeDetectionStage();let t=new pl({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new fo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new pl({name:"czm_edge_detection_composite",stages:[t,s]})}Dr.createSilhouetteStage=function(e){let t=p_t(e),n=new fo({name:"czm_silhouette_color_edges",fragmentShader:dB,uniforms:{silhouetteTexture:t.name}});return new pl({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};Dr.isSilhouetteSupported=function(e){return e.context.depthTexture};Dr.createBloomStage=function(){let e=new fo({name:"czm_bloom_contrast_bias",fragmentShader:tB,uniforms:{contrast:128,brightness:-.3}}),t=K8("czm_bloom_blur"),n=new pl({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new fo({name:"czm_bloom_generate_composite",fragmentShader:J2,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new pl({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Dr.createAmbientOcclusionStage=function(){let e=new fo({name:"czm_ambient_occlusion_generate",fragmentShader:Z2,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=K8("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new pl({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new fo({name:"czm_ambient_occlusion_composite",fragmentShader:$2,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new pl({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};Dr.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var __t=`#define FXAA_QUALITY_PRESET 39 +${hB} +${aB}`;Dr.createFXAAStage=function(){return new fo({name:"czm_FXAA",fragmentShader:__t,sampleMode:Zu.LINEAR})};Dr.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=K2,new fo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=rB,new fo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createPbrNeutralTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=sB,new fo({name:"czm_pbr_neutral",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=fB,new fo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};Dr.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=lB,new fo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:H.WHITE,autoExposure:void 0,exposure:1}})};Dr.createAutoExposureStage=function(){return new mB};Dr.createBlackAndWhiteStage=function(){return new fo({name:"czm_black_and_white",fragmentShader:Q2,uniforms:{gradations:5}})};Dr.createBrightnessStage=function(){return new fo({name:"czm_brightness",fragmentShader:eB,uniforms:{brightness:.5}})};Dr.createNightVisionStage=function(){return new fo({name:"czm_night_vision",fragmentShader:uB})};Dr.createDepthViewStage=function(){return new fo({name:"czm_depth_view",fragmentShader:iB})};Dr.createLensFlareStage=function(){return new fo({name:"czm_lens_flare",fragmentShader:cB,uniforms:{dirtTexture:nn("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:nn("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ee.WGS84.maximumRadius}})};var $u=Dr;function pg(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function _B(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function AK(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[_B(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[_B(d)]=!0)}}}return i.name}function pB(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=pB(e,t,n,p,o):a=AK(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=_B(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=_B(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[_B(i.get(p))]=!0}return a}function g_t(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=pB(e,t,n,i,void 0);a=pB(e,t,n,o,a),a=AK(e,t,n,r,a),a=pB(e,t,n,e,a),AK(e,t,n,s,a)}else pB(e,t,n,e,void 0);return n}function y_t(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!H.equals(u,d.clearColor))continue;let m=d.stages,x=m.length,b=!1;for(let T=0;T<x;++T)if(n[m[T]]){b=!0;break}if(!b)break}return l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new hi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function x_t(e,t){let n=g_t(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=y_t(e,i,n[i]))}function EK(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function b_t(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new ei({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}pg.prototype.updateDependencies=function(){this._updateDependencies=!0};pg.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(EK(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&x_t(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,EK(this),b_t(this,e))};pg.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};pg.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};pg.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};pg.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};pg.prototype.isDestroyed=function(){return!1};pg.prototype.destroy=function(){return EK(this),ue(this)};var KT=pg;var T_t={REINHARD:"REINHARD",MODIFIED_REINHARD:"MODIFIED_REINHARD",FILMIC:"FILMIC",ACES:"ACES",PBR_NEUTRAL:"PBR_NEUTRAL"};var _g=Object.freeze(T_t);var SK=[];function _l(){let e=$u.createFXAAStage(),t=$u.createAmbientOcclusionStage(),n=$u.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=$u.createAutoExposureStage(),this._exposure=1,this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=_g.PBR_NEUTRAL;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new KT(this),r={},s=SK;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(_l.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return vK(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case _g.REINHARD:n=$u.createReinhardTonemappingStage(t);break;case _g.MODIFIED_REINHARD:n=$u.createModifiedReinhardTonemappingStage(t);break;case _g.FILMIC:n=$u.createFilmicTonemappingStage(t);break;case _g.PBR_NEUTRAL:n=$u.createPbrNeutralTonemappingStage(t);break;default:n=$u.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}else n.uniforms.exposure=this._exposure;this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}},exposure:{get:function(){return this._exposure},set:function(e){this._tonemapping.uniforms.exposure=e,this._exposure=e}}});function vK(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages;for(let i=0,o=0;i<n.length;++i){let r=n[i];r&&(r._index=o++,t.push(r))}e._stages=t}_l.prototype.add=function(e){let t=this._stageNames,n=SK;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};_l.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=SK;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};_l.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};_l.prototype.get=function(e){return vK(this),this._stages[e]};_l.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};_l.prototype.getStageByName=function(e){return this._stageNames[e]};_l.prototype.update=function(e,t,n){vK(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages;o.length=r.length;let s=0;for(let T=0;T<r.length;++T){let C=r[T];C.ready&&C.enabled&&C._isSupported(e)&&(o[s++]=C)}o.length=s;let a=s!==i.length;if(!a){for(let T=0;T<s;++T)if(o[T]!==i[T]){a=!0;break}}let c=this._ao,u=this._bloom,f=this._autoExposure,d=this._tonemapping,p=this._fxaa;d.enabled=n;let g=c.enabled&&c._isSupported(e),m=u.enabled&&u._isSupported(e),x=d.enabled&&d._isSupported(e),b=p.enabled&&p._isSupported(e);if((a||this._textureCacheDirty||g!==this._aoEnabled||m!==this._bloomEnabled||x!==this._tonemappingEnabled||b!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=g,this._bloomEnabled=m,this._tonemappingEnabled=x,this._fxaaEnabled=b,this._textureCacheDirty=!1),l(this._randomTexture)&&!g&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&g){let C=new Uint8Array(196608);for(let A=0;A<196608;A+=3)C[A]=Math.floor(Math.random()*255);this._randomTexture=new Pt({context:e,pixelFormat:Je.RGB,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:C,width:256,height:256},sampler:new $t({wrapS:Tn.REPEAT,wrapT:Tn.REPEAT,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})})}this._textureCache.update(e),p.update(e,t),c.update(e,t),u.update(e,t),d.update(e,t),this._autoExposureEnabled&&f.update(e,t);for(let T=0;T<r.length;++T)r[T].update(e,t);s=0;for(let T=0;T<r.length;++T){let C=r[T];C.ready&&C.enabled&&C._isSupported(e)&&s++}a=s!==o.length,a&&this.update(e,t,n)};_l.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function ZT(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}_l.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return ZT(t)};function sp(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}if(e.inputPreviousStageTexture){sp(e.get(0),t,n,i,o);for(let r=1;r<e.length;++r)sp(e.get(r),t,ZT(e.get(r-1)),i,o)}else for(let r=0;r<e.length;++r)sp(e.get(r),t,n,i,o)}_l.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,m=f.enabled&&f._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!d&&!p&&!m&&r===0)return;let b=t;d&&a.ready&&(sp(a,e,b,n,i),b=ZT(a)),p&&c.ready&&(sp(c,e,b,n,i),b=ZT(c)),g&&u.ready&&sp(u,e,b,n,i),m&&f.ready&&(sp(f,e,b,n,i),b=ZT(f));let T=b;if(r>0){sp(o[0],e,b,n,i);for(let C=1;C<r;++C)sp(o[C],e,ZT(o[C-1]),n,i);T=ZT(o[r-1])}x&&s.ready&&sp(s,e,T,n,i)};_l.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};_l.prototype.isDestroyed=function(){return!1};_l.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var gB=_l;var C_t={SHIFT:0,CTRL:1,ALT:2},ia=Object.freeze(C_t);var A_t={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},bn=Object.freeze(A_t);function R0(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function OK(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function $T(e){if(e.shiftKey)return ia.SHIFT;if(e.ctrlKey)return ia.CTRL;if(e.altKey)return ia.ALT}var Bs={LEFT:0,MIDDLE:1,RIGHT:2};function Qu(e,t,n,i){function o(r){i(e,r)}Ht.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function E_t(e){let t=e._element,n=l(t.disableRootEvents)?t:document;Ht.supportsPointerEvents()?(Qu(e,"pointerdown",t,P_t),Qu(e,"pointerup",t,Kbe),Qu(e,"pointermove",t,R_t),Qu(e,"pointercancel",t,Kbe)):(Qu(e,"mousedown",t,Zbe),Qu(e,"mouseup",n,$be),Qu(e,"mousemove",n,Qbe),Qu(e,"touchstart",t,D_t),Qu(e,"touchend",n,Wbe),Qu(e,"touchmove",n,I_t),Qu(e,"touchcancel",n,Wbe)),Qu(e,"dblclick",t,v_t);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Qu(e,i,t,w_t)}function S_t(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var Ube={position:new z};function MK(e){e._lastSeenTouchEvent=xi()}function LK(e){return xi()-e._lastSeenTouchEvent>Bh.mouseEmulationIgnoreMilliseconds}function RK(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function Zbe(e,t){if(!LK(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Bs.LEFT)i=bn.LEFT_DOWN;else if(n===Bs.MIDDLE)i=bn.MIDDLE_DOWN;else if(n===Bs.RIGHT)i=bn.RIGHT_DOWN;else return;let o=R0(e,t,e._primaryPosition);z.clone(o,e._primaryStartPosition),z.clone(o,e._primaryPreviousPosition);let r=$T(t),s=e.getInputAction(i,r);l(s)&&(z.clone(o,Ube.position),s(Ube),t.preventDefault())}var zbe={position:new z},Hbe={position:new z};function wK(e,t,n,i){let o=$T(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=R0(e,i,e._primaryPosition);if(l(r)&&(z.clone(a,zbe.position),r(zbe)),l(s)){let c=e._primaryStartPosition;RK(c,a,e._clickPixelTolerance)&&(z.clone(a,Hbe.position),s(Hbe))}}}function $be(e,t){if(!LK(e))return;let n=t.button;n!==Bs.LEFT&&n!==Bs.MIDDLE&&n!==Bs.RIGHT||(e._buttonDown[Bs.LEFT]&&(wK(e,bn.LEFT_UP,bn.LEFT_CLICK,t),e._buttonDown[Bs.LEFT]=!1),e._buttonDown[Bs.MIDDLE]&&(wK(e,bn.MIDDLE_UP,bn.MIDDLE_CLICK,t),e._buttonDown[Bs.MIDDLE]=!1),e._buttonDown[Bs.RIGHT]&&(wK(e,bn.RIGHT_UP,bn.RIGHT_CLICK,t),e._buttonDown[Bs.RIGHT]=!1))}var DK={startPosition:new z,endPosition:new z};function Qbe(e,t){if(!LK(e))return;let n=$T(t),i=R0(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(bn.MOUSE_MOVE,n);l(r)&&(z.clone(o,DK.startPosition),z.clone(i,DK.endPosition),r(DK)),z.clone(i,o),(e._buttonDown[Bs.LEFT]||e._buttonDown[Bs.MIDDLE]||e._buttonDown[Bs.RIGHT])&&t.preventDefault()}var Gbe={position:new z};function v_t(e,t){let n=t.button,i;if(n===Bs.LEFT)i=bn.LEFT_DOUBLE_CLICK;else return;let o=$T(t),r=e.getInputAction(i,o);l(r)&&(R0(e,t,Gbe.position),r(Gbe))}function w_t(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=$T(t),o=e.getInputAction(bn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function D_t(e,t){MK(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,R0(e,r,new z));Z8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,z.clone(a.get(s)))}function Wbe(e,t){MK(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);Z8(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var jbe={position:new z},IK={position1:new z,position2:new z},qbe={position:new z},Ybe={position:new z},Xbe={position:new z};function Z8(e,t){let n=$T(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Bs.LEFT]){if(e._buttonDown[Bs.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(bn.LEFT_UP,n),l(r)&&(z.clone(e._primaryPosition,qbe.position),r(qbe)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(bn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];RK(c,u,e._clickPixelTolerance)&&(z.clone(e._primaryPosition,Ybe.position),s(Ybe))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(bn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];z.clone(c,e._primaryPosition),z.clone(c,e._primaryStartPosition),z.clone(c,e._primaryPreviousPosition),e._buttonDown[Bs.LEFT]=!0,r=e.getInputAction(bn.LEFT_DOWN,n),l(r)&&(z.clone(c,jbe.position),r(jbe)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(bn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];RK(u,f,e._holdPixelTolerance)&&(z.clone(e._primaryPosition,Xbe.position),s(Xbe))}},Bh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(bn.PINCH_START,n),l(r)&&(z.clone(i.values[0],IK.position1),z.clone(i.values[1],IK.position2),r(IK),t.preventDefault()))}function I_t(e,t){MK(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let u=a.get(s);l(u)&&R0(e,r,u)}Jbe(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,z.clone(a.get(s),c.get(s))}var PK={startPosition:new z,endPosition:new z},yB={distance:{startPosition:new z,endPosition:new z},angleAndHeight:{startPosition:new z,endPosition:new z}};function Jbe(e,t){let n=$T(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Bs.LEFT]){let a=i.values[0];z.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(bn.MOUSE_MOVE,n),l(s)&&(z.clone(c,PK.startPosition),z.clone(a,PK.endPosition),s(PK)),z.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(bn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,m=f.x-u.x,x=f.y-u.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,C=(f.y+u.y)*.125,A=Math.atan2(p,d),E=Math.atan2(x,m);z.fromElements(0,b,yB.distance.startPosition),z.fromElements(0,g,yB.distance.endPosition),z.fromElements(E,C,yB.angleAndHeight.startPosition),z.fromElements(A,T,yB.angleAndHeight.endPosition),s(yB)}}function P_t(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,R0(e,t,new z)),Z8(e,t),e._previousPositions.set(i,z.clone(n.get(i)))}else Zbe(e,t)}function Kbe(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),Z8(e,t),e._previousPositions.remove(i)}else $be(e,t)}function R_t(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;R0(e,t,o),Jbe(e,t);let r=e._previousPositions;z.clone(n.get(i),r.get(i))}else Qbe(e,t)}function Bh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-Bh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new z,this._primaryPosition=new z,this._primaryPreviousPosition=new z,this._positions=new Et,this._previousPositions=new Et,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),E_t(this)}Bh.prototype.setInputAction=function(e,t,n){let i=OK(t,n);this._inputEvents[i]=e};Bh.prototype.getInputAction=function(e,t){let n=OK(e,t);return this._inputEvents[n]};Bh.prototype.removeInputAction=function(e,t){let n=OK(e,t);delete this._inputEvents[n]};Bh.prototype.isDestroyed=function(){return!1};Bh.prototype.destroy=function(){return S_t(this),ue(this)};Bh.mouseEmulationIgnoreMilliseconds=800;Bh.touchHoldDelayMilliseconds=1500;var Ju=Bh;function QT(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}QT.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};QT.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof rn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?ugt(this,e):ggt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var O_t=new h,M_t=new h,L_t=new h,N_t=new h,F_t=new h,B_t=new h,k_t=new h,V_t=new fe,U_t=new F,z_t=new Si,H_t=new rn,G_t={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};QT.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=O_t,o=M_t,r=L_t;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let u=n.camera;if(this._previousMode===ne.SCENE2D)h.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(u.positionWC,i),h.clone(u.directionWC,o),h.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,k_t),d=Mt.eastNorthUpToFixedFrame(f,t,U_t);F.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,V_t),i),F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=H_t,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=z_t,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=G_t;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=xgt(a);xB(this,c),this._previousMode===ne.SCENE2D?ygt(this,e,a,c):(a.position2D=F.multiplyByPoint(ro.TRANSFORM_2D,i,N_t),a.direction2D=F.multiplyByPointAsVector(ro.TRANSFORM_2D,o,F_t),a.up2D=F.multiplyByPointAsVector(ro.TRANSFORM_2D,r,B_t),n._mode=ne.MORPHING,uTe(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var BK={position:new h,direction:new h,up:new h,frustum:void 0},tTe=new Si;QT.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.SCENE2D)egt(this,e,t);else{let i;e>0?(i=BK,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=nTe(this,t);let o,r=n.camera;r.frustum instanceof rn?o=r.frustum.clone():(o=tTe,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=dTe(i);xB(this,s),FK(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};QT.prototype.isDestroyed=function(){return!1};QT.prototype.destroy=function(){return $8(this),ue(this)};function xB(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Ju(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,bn.LEFT_DOWN),e._morphHandler.setInputAction(n,bn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,bn.RIGHT_DOWN),e._morphHandler.setInputAction(n,bn.WHEEL)}}function $8(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var W_t=new fe,j_t=new h,q_t=new F;function nTe(e,t){let n=e._scene,i=n.camera,o=BK,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,W_t);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,j_t),f=Mt.eastNorthUpToFixedFrame(u,t,q_t);return F.multiplyByPointAsVector(f,i.direction,s),F.multiplyByPointAsVector(f,i.up,a),o}var Y_t=new h,X_t=new h,K_t=new h,Z_t=new h,$_t=new h,Q_t=new h;function FK(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,Y_t),a=h.clone(r.direction,X_t),c=h.clone(r.up,K_t),u=F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,n.position,Z_t),f=F.multiplyByPointAsVector(ro.TRANSFORM_2D_INVERSE,n.direction,$_t),d=F.multiplyByPointAsVector(ro.TRANSFORM_2D_INVERSE,n.up,Q_t);function p(m){pd(s,u,m.time,r.position),pd(a,f,m.time,r.direction),pd(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){fTe(e,o,0,1,t,i)}});e._currentTweens.push(g)}var J_t=new rn,iTe=new h,oTe=new h,rTe=new h,kK=new h,sTe=new h,aTe=new h;function egt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=BK,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=nTe(e,n));let s;e._morphToOrthographic?(s=J_t,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=tTe,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=dTe(r);xB(e,a);let c;e._morphToOrthographic?c=function(){FK(e,t,r,a)}:c=function(){lTe(e,t,r,function(){FK(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,kK),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function pd(e,t,n,i){return h.lerp(e,t,n,i)}function cTe(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof rn)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var tgt=new h,ngt=new h,igt=new h,NK=new h,ogt=new h,rgt=new h,sgt=new Lr,agt=new mn,cgt=new h,lgt={position:void 0,direction:void 0,up:void 0,frustum:void 0};function ugt(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,tgt),r=h.clone(i.direction,ngt),s=h.clone(i.up,igt),a=h.negate(h.UNIT_Z,ogt),c=h.clone(h.UNIT_Y,rgt),u=NK;if(t>0)h.clone(h.ZERO,NK),u.z=5*n.ellipsoid.maximumRadius;else{h.clone(o,NK);let b=agt;F.multiplyByPoint(ro.TRANSFORM_2D,o,b.origin),F.multiplyByPointAsVector(ro.TRANSFORM_2D,r,b.direction);let T=n.globe;if(l(T)){let C=T.pickWorldCoordinates(b,n,!0,cgt);l(C)&&(F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,C,u),u.z+=h.distance(o,u))}}let f=sgt;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=lgt;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=hTe(d);xB(e,p);function g(b){pd(o,u,b.time,i.position),pd(r,a,b.time,i.direction),pd(s,c,b.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function m(b,T){b.position.z=T}let x=n.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){cTe(e,t,d,m,p)}});e._currentTweens.push(x)}var eTe=new fe,fgt={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Lr},dgt={position:new h,direction:new h,up:new h,frustum:void 0},hgt=new h,mgt=new mn,pgt=new F,_gt=new h;function ggt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=fgt;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,eTe),i.mapProjection.project(eTe,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=mgt;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,_gt),m=Mt.eastNorthUpToFixedFrame(g,n,pgt);F.inverseTransformation(m,m),F.multiplyByPointAsVector(m,p,p),F.multiplyByPointAsVector(ro.TRANSFORM_2D,p,p);let x=i.globe;if(l(x)){let b=x.pickWorldCoordinates(d,i,!0,hgt);if(l(b)){let T=h.distance(r.position2D,b);b.x+=T,h.clone(b,r.position2D)}}}function s(d,p){d.position.x=p}F.multiplyByPoint(ro.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(ro.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(ro.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=dgt;F.multiplyByPoint(ro.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let u=hTe(c);xB(e,u);function f(){cTe(e,t,r,s,u)}uTe(e,t,r,f)}function lTe(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function ygt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,kK),a=h.clone(n.direction,sTe),c=h.clone(n.up,aTe);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=h.clone(r.position,iTe),d=h.clone(r.direction,oTe),p=h.clone(r.up,rTe);f.z=s.z;function g(x){pd(f,s,x.time,r.position),pd(d,a,x.time,r.direction),pd(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let m=o.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?u():lTe(e,0,n,u)}function uTe(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,iTe),a=h.clone(r.direction,oTe),c=h.clone(r.up,rTe),u=h.clone(n.position2D,kK),f=h.clone(n.direction2D,sTe),d=h.clone(n.up2D,aTe);function p(m){pd(s,u,m.time,r.position),pd(a,f,m.time,r.direction),pd(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:qr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){fTe(e,o,1,0,t,i)}});e._currentTweens.push(g)}function fTe(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:qr.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function dTe(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),$8(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function hTe(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),$8(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function xgt(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),$8(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var bB=QT;var bgt={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Li=Object.freeze(bgt);function oa(e,t){let n=`${e}`;return l(t)&&(n+=`+${t}`),n}function Tgt(e,t){z.clone(e.distance.startPosition,t.distance.startPosition),z.clone(e.distance.endPosition,t.distance.endPosition),z.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),z.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function mTe(e,t,n){let i=oa(Li.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new z;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new z,endPosition:new z},u.angleAndHeight={startPosition:new z,endPosition:new z},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,z.lerp(f.position1,f.position2,.5,s[i])},bn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},bn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(Tgt(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(z.clone(f.distance.endPosition,u.distance.endPosition),z.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},bn.PINCH_MOVE,t)}function pTe(e,t){let n=oa(Li.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new z,endPosition:new z,valid:!1}),s.startPosition=new z,z.clone(z.ZERO,s.startPosition),s.endPosition=new z,e._eventHandler.setInputAction(function(c){let u=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,z.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},bn.WHEEL,t)}function uv(e,t,n){let i=oa(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime;o[i]=!1,r[i]=new z;let a=e._lastMovement[i];l(a)||(a=e._lastMovement[i]={startPosition:new z,endPosition:new z,valid:!1});let c,u;n===Li.LEFT_DRAG?(c=bn.LEFT_DOWN,u=bn.LEFT_UP):n===Li.RIGHT_DRAG?(c=bn.RIGHT_DOWN,u=bn.RIGHT_UP):n===Li.MIDDLE_DRAG&&(c=bn.MIDDLE_DOWN,u=bn.MIDDLE_UP),e._eventHandler.setInputAction(function(f){e._buttonsDown++,a.valid=!1,o[i]=!0,s[i]=new Date,z.clone(f.position,r[i])},c,t),e._eventHandler.setInputAction(function(){VK(oa(n,void 0),e);for(let f of Object.values(ia)){let d=oa(n,f);VK(d,e)}},u,t)}function VK(e,t){let n=t._releaseTime,i=t._isDown;i[e]&&(t._buttonsDown=Math.max(t._buttonsDown-1,0)),i[e]=!1,n[e]=new Date}function _Te(e,t){z.clone(e.startPosition,t.startPosition),z.clone(e.endPosition,t.endPosition)}function Cgt(e,t,n){let i=n._isDown,o=!1,r=oa(e,t);for(let[c,u]of Object.entries(i))c.startsWith(e)&&u&&c!==r&&(o=!0,VK(c,n));if(!o)return;let s=n._pressTime,a=n._lastMovement[r];l(a)||(a=n._lastMovement[r]={startPosition:new z,endPosition:new z,valid:!1}),n._buttonsDown++,a.valid=!1,i[r]=!0,s[r]=new Date}function gTe(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Li)if(Li.hasOwnProperty(s)){let a=Li[s];if(l(a)){let c=oa(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new z,endPosition:new z,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new z,endPosition:new z})}}e._eventHandler.setInputAction(function(s){for(let a in Li)if(Li.hasOwnProperty(a)){let c=Li[a];if(l(c)){let u=oa(c,t);Cgt(c,t,e),r[u]&&(n[u]?(_Te(i[u],o[u]),o[u].valid=!0,_Te(s,i[u]),n[u]=!1):z.clone(s.endPosition,i[u].endPosition))}}z.clone(s.endPosition,e._currentMousePosition)},bn.MOUSE_MOVE,t)}function _d(e){this._eventHandler=new Ju(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new z,pTe(this,void 0),mTe(this,void 0,e),uv(this,void 0,Li.LEFT_DRAG),uv(this,void 0,Li.RIGHT_DRAG),uv(this,void 0,Li.MIDDLE_DRAG),gTe(this,void 0);for(let t in ia)if(ia.hasOwnProperty(t)){let n=ia[t];l(n)&&(pTe(this,n),mTe(this,n,e),uv(this,n,Li.LEFT_DRAG),uv(this,n,Li.RIGHT_DRAG),uv(this,n,Li.MIDDLE_DRAG),gTe(this,n))}}Object.defineProperties(_d.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[oa(Li.WHEEL)]||!this._update[oa(Li.WHEEL,ia.SHIFT)]||!this._update[oa(Li.WHEEL,ia.CTRL)]||!this._update[oa(Li.WHEEL,ia.ALT)];return this._buttonsDown>0||e}}});_d.prototype.isMoving=function(e,t){let n=oa(e,t);return!this._update[n]};_d.prototype.getMovement=function(e,t){let n=oa(e,t);return this._movement[n]};_d.prototype.getLastMovement=function(e,t){let n=oa(e,t),i=this._lastMovement[n];if(i.valid)return i};_d.prototype.isButtonDown=function(e,t){let n=oa(e,t);return this._isDown[n]};_d.prototype.getStartMousePosition=function(e,t){if(e===Li.WHEEL)return this._currentMousePosition;let n=oa(e,t);return this._eventStartPosition[n]};_d.prototype.getButtonPressTime=function(e,t){let n=oa(e,t);return this._pressTime[n]};_d.prototype.getButtonReleaseTime=function(e,t){let n=oa(e,t);return this._releaseTime[n]};_d.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};_d.prototype.isDestroyed=function(){return!1};_d.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var TB=_d;function Q8(e,t,n,i,o,r,s,a,c,u){this._tweens=e,this._tweenjs=t,this._startObject=Ge(n),this._stopObject=Ge(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=u,this.needsStart=!0}Object.defineProperties(Q8.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});Q8.prototype.cancelTween=function(){this._tweens.remove(this)};function kh(){this._tweens=[]}Object.defineProperties(kh.prototype,{length:{get:function(){return this._tweens.length}}});kh.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new Q8(this);let t=e.duration/Yn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/Yn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,qr.LINEAR_NONE),r=e.startObject,s=new oye(r);s.to(Ge(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new Q8(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};kh.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};kh.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};kh.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};kh.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};kh.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};kh.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};kh.prototype.get=function(e){return this._tweens[e]};kh.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/Yn.SECONDS_PER_MILLISECOND:xi();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var JT=kh;function AB(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.zoomFactor=5,this.translateEventTypes=Li.LEFT_DRAG,this.zoomEventTypes=[Li.RIGHT_DRAG,Li.WHEEL,Li.PINCH],this.rotateEventTypes=Li.LEFT_DRAG,this.tiltEventTypes=[Li.MIDDLE_DRAG,Li.PINCH,{eventType:Li.LEFT_DRAG,modifier:ia.CTRL},{eventType:Li.RIGHT_DRAG,modifier:ia.CTRL}],this.lookEventTypes={eventType:Li.LEFT_DRAG,modifier:ia.SHIFT};let t=y(e.ellipsoid,ee.default);this.minimumPickingTerrainHeight=ee.WGS84.equals(t)?15e4:t.minimumRadius*.025,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=ee.WGS84.equals(t)?4e3:t.minimumRadius*63e-5,this.minimumCollisionTerrainHeight=ee.WGS84.equals(t)?15e3:t.minimumRadius*.0025,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=ee.WGS84.equals(t)?75e5:t.minimumRadius*1.175,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this.maximumTiltAngle=void 0,this._scene=e,this._globe=void 0,this._ellipsoid=t,this._lastGlobeHeight=0,this._aggregator=new TB(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new JT,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new z(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new z(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new z,this._strafeEndMousePosition=new z,this._zoomMouseStart=new z(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new z,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let n=e.mapProjection;this._maxCoord=n.project(new fe(Math.PI,P.PI_OVER_TWO)),this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function Agt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function Egt(e){return z.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var Sgt=.4;function vgt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new z,endPosition:new z,motion:new z,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<Sgt){let g=Agt(p,i),m=e.getLastMovement(t,n);if(!l(m)||Egt(m)||!a.inertiaEnabled||(a.motion.x=(m.endPosition.x-m.startPosition.x)*.5,a.motion.y=(m.endPosition.y-m.startPosition.y)*.5,a.startPosition=z.clone(m.startPosition,a.startPosition),a.endPosition=z.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=z.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||z.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function wgt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var yTe=[];function gl(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(yTe[0]=n,n=yTe);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),wgt(e,r)):o<1&&vgt(s,f,d,o,i,e,r))}}var J8=new mn,Dgt=new h,Igt=new z,Pgt=new h,Rgt=new z,Ogt=new h,Mgt=new h,Lgt=new h,Ngt=new h,PTe=new h,Fgt=new h,Bgt=new h,kgt=new h,Vgt=new h,Ugt=new h,zgt=new h,Hgt=new h,Ggt=new h,Wgt=new h,jgt=new h,eC=new h,xTe=new h,bTe=new h,UK={orientation:new Sa};function XK(e,t,n,i,o,r){let s=1;l(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let m=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(m>0&&Math.abs(o-u)<1||m<0&&Math.abs(o-f)<1)return;o-m<u?m=o-u-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,C=UK.orientation;if(C.heading=b.heading,C.pitch=b.pitch,C.roll=b.roll,b.frustum instanceof rn){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let A=y(n.inertiaEnabled,z.equals(t,e._zoomMouseStart)),E=e._zoomingOnVector,v=e._rotatingZoom,D;if(A||(e._zoomMouseStart=z.clone(t,e._zoomMouseStart),l(e._globe)&&T===ne.SCENE2D?(D=b.getPickRay(t,J8).origin,D=h.fromElements(D.y,D.z,D.x)):l(e._globe)&&(D=gg(e,t,Dgt)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,E=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===ne.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(v=!0),!A||v){if(T===ne.SCENE2D){let R=e._zoomWorldPosition,M=b.position;if(!h.equals(R,M)&&b.positionCartographic.height<e._maxCoord.x*2){let N=b.position.x,_=h.subtract(R,M,Pgt);h.normalize(_,_);let S=h.distance(R,M)*m/(b.getMagnitude()*.5);b.move(_,S*.5),(b.position.x<0&&N>0||b.position.x>0&&N<0)&&(D=b.getPickRay(t,J8).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===ne.SCENE3D){let R=h.normalize(b.position,PTe);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,R))<.6)O=!0;else{let M=x.canvas,N=Rgt;N.x=M.clientWidth/2,N.y=M.clientHeight/2;let _=gg(e,N,Ogt);if(!l(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,R)>=-.5)O=!0;else{let S=Bgt;h.clone(b.position,S);let w=e._zoomWorldPosition,I=Fgt;if(I=h.normalize(w,I),h.dot(I,R)<0)return;let L=jgt,B=Ugt;h.clone(b.direction,B),h.add(S,h.multiplyByScalar(B,1e3,eC),L);let U=zgt,V=Hgt;h.subtract(w,S,U),h.normalize(U,V);let G=h.dot(R,V);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),W=h.magnitude(S),q=h.magnitude(w),J=W-m,j=h.magnitude(U),K=Math.asin(P.clamp(j/q*Math.sin(k),-1,1)),Q=Math.asin(P.clamp(J/q*Math.sin(k),-1,1)),de=K-Q+k,ye=kgt;h.normalize(S,ye);let ae=Vgt;ae=h.cross(V,ye,ae),ae=h.normalize(ae,ae),h.normalize(h.cross(ye,ae,eC),B),h.multiplyByScalar(h.normalize(L,eC),h.magnitude(L)-m,L),h.normalize(S,S),h.multiplyByScalar(S,J,S);let _e=Ggt;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,xTe),h.multiplyByScalar(B,Math.sin(de),bTe),eC),J,_e),h.add(S,_e,S),h.normalize(L,ye),h.normalize(h.cross(ye,ae,eC),B);let xe=Wgt;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,xTe),h.multiplyByScalar(B,Math.sin(de),bTe),eC),h.magnitude(L),xe),h.add(L,xe,L),h.clone(S,b.position),h.normalize(h.subtract(L,S,eC),b.direction),h.clone(b.direction,b.direction),h.cross(b.direction,b.up,b.right),h.cross(b.right,b.direction,b.up),b.setView(UK);return}else{let S=h.normalize(_,Mgt),w=h.normalize(e._zoomWorldPosition,Lgt),I=h.dot(w,S);if(I>0&&I<1){let L=P.acosClamped(I),B=h.cross(w,S,Ngt),U=Math.abs(L)>P.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,V=m/U;b.rotate(B,L*V)}}}}e._rotatingZoom=!O}if(!A&&O||E){let R,M=Ui.worldToWindowCoordinates(x,e._zoomWorldPosition,Igt);T!==ne.COLUMBUS_VIEW&&z.equals(t,e._zoomMouseStart)&&l(M)?R=b.getPickRay(M,J8):R=b.getPickRay(t,J8);let N=R.direction;(T===ne.COLUMBUS_VIEW||T===ne.SCENE2D)&&h.fromElements(N.y,N.z,N.x,N),b.move(N,m),e._zoomingOnVector=!0}else b.zoomIn(m);e._cameraUnderground||b.setView(UK)}var qgt=new mn,Ygt=new mn,Xgt=new h;function Kgt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,qgt).origin,s=o.getPickRay(n.endPosition,Ygt).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,Xgt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function TTe(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;XK(e,t,n,e.zoomFactor,o.getMagnitude())}var Zgt=new z,$gt=new z;function CTe(e,t,n){if(l(n.angleAndHeight)){Qgt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Zgt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=z.normalize(c,c);let u=$gt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=z.normalize(u,u);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(u.x);u.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Qgt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function Jgt(e){let t=e._scene.mapMode2D===tu.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(gl(e,e.enableTranslate,e.translateEventTypes,Kgt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),gl(e,e.enableZoom,e.zoomEventTypes,TTe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&gl(e,e.enableRotate,e.tiltEventTypes,CTe,e.inertiaSpin,"_lastInertiaTiltMovement")):(gl(e,e.enableZoom,e.zoomEventTypes,TTe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&gl(e,e.enableRotate,e.translateEventTypes,CTe,e.inertiaSpin,"_lastInertiaSpinMovement"))}var RTe=new mn,eyt=new h,tyt=new h;function gg(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,eyt)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,RTe),u=o.pickWorldCoordinates(c,i,a,tyt),f=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?h.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(u,n)}var nyt=new fe;function sG(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,nyt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var iyt=new h;function OTe(e,t){let n=t.origin,i=t.direction,o=sG(e),r=h.normalize(n,iyt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function MTe(e,t,n,i){let o=h.distance(t.origin,n),r=sG(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),mn.getPoint(t,o,i)}function LTe(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=sG(e))):o=sG(e),mn.getPoint(t,o,i)}var oyt=new z;function NTe(e,t){let n=t.endPosition,i=z.subtract(t.endPosition,t.startPosition,oyt),o=e._strafeEndMousePosition;z.add(o,i,o),t.endPosition=o,KK(e,t,e._strafeStartPosition),t.endPosition=n}var ATe=new mn,ryt=new mn,zK=new h,syt=new h,ayt=new h,cyt=new h,lyt=new cn(h.UNIT_X,0),uyt=new z,fyt=new z;function dyt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){tf(e,t,n);return}if(e._strafing){NTe(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=z.clone(n.startPosition,uyt),a=z.clone(n.endPosition,fyt),c=o.getPickRay(s,ATe),u=h.clone(h.ZERO,cyt),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=gg(e,s,zK),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let A=d;r&&(A=LTe(e,c,d,zK)),z.clone(t,e._strafeMousePosition),z.clone(t,e._strafeEndMousePosition),h.clone(A,e._strafeStartPosition),e._strafing=!0,KK(e,n,e._strafeStartPosition);return}let p=cn.fromPointNormal(u,f,lyt);c=o.getPickRay(s,ATe);let g=$n.rayPlane(c,p,zK),m=o.getPickRay(a,ryt),x=$n.rayPlane(m,p,syt);if(!l(g)||!l(x)){e._looking=!0,tf(e,t,n),z.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,ayt),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let C=h.magnitude(b);C>P.EPSILON6&&(h.normalize(b,b),o.move(b,C))}var FTe=new z,nG=new mn,iG=new h,hyt=new h,BTe=new F,myt=new F,pyt=new h,_yt=new cn(h.UNIT_X,0),HK=new h,jK=new fe,kTe=new F,gyt=new Oe,yyt=new $,oG=new h;function xyt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){tf(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,byt(e,t,n)):Tyt(e,t,n)}function byt(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=FTe;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,nG),c=h.UNIT_X,u=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,tf(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,iG);h.add(u,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,jK);x.cartographicToCartesian(b,g);let T=Mt.eastNorthUpToFixedFrame(g,x,BTe),C=e._globe,A=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let E=F.clone(o.transform,kTe);o._setTransform(T),ef(e,t,n,h.UNIT_Z),o._setTransform(E),e._globe=C,e._ellipsoid=A;let v=A.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function Tyt(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(z.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,iG);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=gg(e,t,iG)),!l(s)){a=o.getPickRay(t,nG);let _=a.origin,S=a.direction,w,I=h.dot(c,S);if(Math.abs(I)>P.EPSILON6&&(w=-h.dot(c,_)/I),!l(w)||w<=0){e._looking=!0,tf(e,t,n),z.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(S,w,iG),h.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,nG)),MTe(e,a,s,s)),z.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let u=i.canvas,f=FTe;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,nG);let d=h.clone(h.ZERO,pyt);d.x=s.x;let p=cn.fromPointNormal(d,c,_yt),g=$n.rayPlane(a,p,hyt),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,jK);x.cartographicToCartesian(b,s);let T=Mt.eastNorthUpToFixedFrame(s,x,BTe),C;l(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,jK),x.cartographicToCartesian(b,g),C=Mt.eastNorthUpToFixedFrame(g,x,myt)):C=T;let A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(o.transform,kTe);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,HK),HK),R=h.dot(o.right,O);if(ef(e,t,n,v,!1,!0),o._setTransform(C),R<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let S=o.constrainedAxis;o.constrainedAxis=void 0,ef(e,t,n,v,!0,!1),o.constrainedAxis=S}else ef(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,oG);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,o.right)<0&&h.negate(_,_),h.cross(_,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(D),e._globe=A,e._ellipsoid=E;let M=E.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let N=h.clone(o.positionWC,HK);if(e.enableCollisionDetection&&QK(e,!0),!h.equals(o.positionWC,N)){o._setTransform(C),o.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let S=h.angleBetween(N,o.position),w=h.cross(N,o.position,N);h.normalize(w,w);let I=Oe.fromAxisAngle(w,S,gyt),L=$.fromQuaternion(I,yyt);$.multiplyByVector(L,o.direction,o.direction),$.multiplyByVector(L,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var VTe=new z,UTe=new mn,zTe=new h;function Cyt(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=VTe,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,UTe),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=gg(e,a,zTe));let g;if(l(p)&&(g=h.distance(u,p)),s){let m=OTe(e,c,d);l(g)?g=Math.min(g,m):g=m}if(!l(g)){let m=h.UNIT_X;g=-h.dot(m,u)/h.dot(m,f)}XK(e,t,n,e.zoomFactor,g)}function Ayt(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))gl(e,e.enableRotate,e.rotateEventTypes,ef,e.inertiaSpin,"_lastInertiaSpinMovement"),gl(e,e.enableZoom,e.zoomEventTypes,GTe,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),gl(e,e.enableTilt,e.tiltEventTypes,xyt,e.inertiaSpin,"_lastInertiaTiltMovement"),gl(e,e.enableTranslate,e.translateEventTypes,dyt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),gl(e,e.enableZoom,e.zoomEventTypes,Cyt,e.inertiaZoom,"_lastInertiaZoomMovement"),gl(e,e.enableLook,e.lookEventTypes,tf),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var Eyt=new mn,Syt=new cn(h.UNIT_X,0),vyt=new h,wyt=new h;function KK(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,Eyt),s=h.clone(o.direction,wyt);i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=cn.fromPointNormal(n,s,Syt),c=$n.rayPlane(r,a,vyt);l(c)&&(s=h.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var ETe=new h,HTe=new fe,qK=new h,YK=new ee,Dyt=new h,Iyt=new h,Pyt=new h;function Ryt(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){ef(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,Dyt);if(z.equals(t,e._rotateMousePosition)){if(e._looking)tf(e,t,n,u);else if(e._rotating)ef(e,t,n);else if(e._strafing)NTe(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=qK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,YK),WK(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,HTe).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=gg(e,n.startPosition,Pyt);if(l(p)){let g=!1,m=o.getPickRay(n.startPosition,RTe);if(r)g=!0,LTe(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,Iyt);Math.abs(h.dot(m.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(z.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,KK(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=qK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,YK),WK(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,tf(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,ETe))?(WK(e,t,n,e._ellipsoid),h.clone(ETe,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,ef(e,t,n)):(e._looking=!0,tf(e,t,n,u));z.clone(t,e._rotateMousePosition)}function ef(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let f=h.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let m=d*p*Math.PI*2,x=d*g*Math.PI;if(l(i)&&l(e.maximumTiltAngle)){let b=e.maximumTiltAngle,T=h.dot(a.direction,i),C=Math.PI-Math.acos(T)+x;C>b&&(x-=C-b)}o||a.rotateRight(m),r||a.rotateUp(x),a.constrainedAxis=u}var GK=oe.clone(oe.UNIT_W),STe=oe.clone(oe.UNIT_W),eG=new h,fv=new h,tG=new h,vTe=new h,Oyt=new z,Myt=new z,Lyt=new z,Nyt=new z,Fyt=new mn;function WK(e,t,n,i){let o=e._scene,r=o.camera,s=z.clone(n.startPosition,Oyt),a=z.clone(n.endPosition,Myt),c=i.cartesianToCartographic(r.positionWC,HTe).height,u,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(u=h.clone(e._panLastWorldPosition,GK),!l(e._globe)&&!z.equalsEpsilon(s,e._panLastMousePosition)&&(u=gg(e,s,GK)),!l(e._globe)&&l(u))){let d=h.subtract(u,r.positionWC,fv),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),fv),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,Nyt),x=z.subtract(a,s,Lyt),b=h.multiplyByScalar(r.rightWC,x.x*m.x,fv),T=h.normalize(r.positionWC,PTe),C=r.getPickRay(a,Fyt).direction,A=h.subtract(C,h.projectVector(C,r.rightWC,tG),tG),E=h.angleBetween(A,r.directionWC),v=1;l(r.frustum.fov)&&(v=Math.max(Math.tan(E),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(v)*(1-D),R=h.multiplyByScalar(C,O,tG);D=Math.abs(h.dot(r.upWC,T));let M=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,vTe);f=h.add(u,b,STe),f=h.add(f,R,f),f=h.add(f,M,f),h.clone(f,e._panLastWorldPosition),z.clone(a,e._panLastMousePosition)}if((!l(u)||!l(f))&&(u=r.pickEllipsoid(s,i,GK),f=r.pickEllipsoid(a,i,STe)),!l(u)||!l(f)){e._rotating=!0,ef(e,t,n);return}if(u=r.worldToCameraCoordinates(u,u),f=r.worldToCameraCoordinates(f,f),l(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,eG);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,fv),m=h.magnitude(u),x=h.dot(d,u),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,tG);h.subtract(u,T,T),h.normalize(T,T);let C=h.magnitude(f),A=h.dot(d,f),E=Math.acos(A/C),v=h.multiplyByScalar(d,A,vTe);h.subtract(f,v,v),h.normalize(v,v);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=P.TWO_PI-D);let O=Math.acos(h.dot(v,p));h.dot(v,g)<0&&(O=P.TWO_PI-O);let R=D-O,M;h.equalsEpsilon(d,r.position,P.EPSILON2)?M=r.right:M=h.cross(d,r.position,eG);let N=h.cross(d,M,eG),_=h.dot(N,h.subtract(u,d,fv)),S=h.dot(N,h.subtract(f,d,fv)),w;_>0&&S>0?w=E-b:_>0&&S<=0?h.dot(r.position,d)>0?w=-b-E:w=b+E:w=b-E,r.rotateRight(R),r.rotateUp(w)}else{h.normalize(u,u),h.normalize(f,f);let d=h.dot(u,f),p=h.cross(u,f,eG);if(d<1&&!h.equalsEpsilon(p,h.ZERO,P.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var Byt=new h,kyt=new fe,wTe=0;function GTe(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=VTe,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,UTe),d,p=o.cartesianToCartographic(s.position,kyt).height,g=Math.abs(wTe)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=gg(e,u,zTe));let x;if(l(d)&&(x=h.distance(f.origin,d),wTe=x),c){let T=OTe(e,f,p);l(x)?x=Math.min(x,T):x=T}l(x)||(x=p);let b=h.normalize(s.position,Byt);XK(e,t,n,e.zoomFactor,x,h.dot(b,s.direction))}var WTe=new z,rG=new mn,CB=new h,Vyt=new h,jTe=new F,Uyt=new F,qTe=new F,zyt=new Oe,Hyt=new $,ZK=new fe,$K=new h;function Gyt(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),z.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,$K);tf(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,ZK);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,jyt(e,t,n)):qyt(e,t,n)}var Wyt=new fe;function jyt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,Wyt).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=WTe;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,rG),d,p=$n.rayEllipsoid(f,i);if(l(p))d=mn.getPoint(f,p.start,CB);else if(a>e._minimumTrackBallHeight){let C=$n.grazingAltitudeLocation(f,i);if(!l(C))return;let A=i.cartesianToCartographic(C,ZK);A.height=0,d=i.cartographicToCartesian(A,CB)}else{e._looking=!0;let C=e._ellipsoid.geodeticSurfaceNormal(r.position,$K);tf(e,t,n,C),z.clone(t,e._tiltCenterMousePosition);return}let g=Mt.eastNorthUpToFixedFrame(d,i,jTe),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=F.clone(r.transform,qTe);r._setTransform(g),ef(e,t,n,h.UNIT_Z),r._setTransform(b),e._globe=m,e._ellipsoid=x;let T=x.maximumRadius;e._rotateFactor=1/T,e._rotateRateRangeAdjustment=T}function qyt(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(z.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,CB);else{if(a=gg(e,t,CB),!l(a)){if(c=r.getPickRay(t,rG),u=$n.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,ZK).height<=e._minimumTrackBallHeight){e._looking=!0;let S=e._ellipsoid.geodeticSurfaceNormal(r.position,$K);tf(e,t,n,S),z.clone(t,e._tiltCenterMousePosition)}return}a=mn.getPoint(c,u.start,CB)}s&&(l(c)||(c=r.getPickRay(t,rG)),MTe(e,c,a,a)),z.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=WTe;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,rG);let p=h.magnitude(a),g=h.fromElements(p,p,p,qK),m=ee.fromCartesian3(g,YK);if(u=$n.rayEllipsoid(c,m),!l(u))return;let x=h.magnitude(c.origin)>p?u.start:u.stop,b=mn.getPoint(c,x,Vyt),T=Mt.eastNorthUpToFixedFrame(a,i,jTe),C=Mt.eastNorthUpToFixedFrame(b,m,Uyt),A=e._globe,E=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(r.transform,qTe);r._setTransform(C);let O=h.cross(b,r.positionWC,oG);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let S=r.constrainedAxis;r.constrainedAxis=void 0,ef(e,t,n,v,!0,!1),r.constrainedAxis=S}else ef(e,t,n,v,!0,!1);if(r._setTransform(T),ef(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,oG);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,r.right)<0&&h.negate(_,_),h.cross(_,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(D),e._globe=A,e._ellipsoid=E;let M=E.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let N=h.clone(r.positionWC,oG);if(e.enableCollisionDetection&&QK(e,!0),!h.equals(r.positionWC,N)){r._setTransform(C),r.worldToCameraCoordinatesPoint(N,N);let _=h.magnitudeSquared(N);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let S=h.angleBetween(N,r.position),w=h.cross(N,r.position,N);h.normalize(w,w);let I=Oe.fromAxisAngle(w,S,zyt),L=$.fromQuaternion(I,Hyt);$.multiplyByVector(L,r.direction,r.direction),$.multiplyByVector(L,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var Yyt=new z,Xyt=new z,DTe=new mn,ITe=new mn,Kyt=new h,Zyt=new h;function tf(e,t,n,i){let r=e._scene.camera,s=Yyt;s.x=n.startPosition.x,s.y=0;let a=Xyt;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,DTe),u=r.getPickRay(a,ITe),f=0,d,p;r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction);let g=h.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let m=e._horizontalRotationAxis;if(l(i)?r.look(i,-f):l(m)?r.look(m,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,DTe),u=r.getPickRay(a,ITe),f=0,r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction),g=h.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,m),l(i)){let x=r.direction,b=h.negate(i,Kyt),T=h.equalsEpsilon(x,i,P.EPSILON2),C=h.equalsEpsilon(x,b,P.EPSILON2);if(!T&&!C){g=h.dot(x,i);let A=P.acosClamped(g);f>0&&f>A&&(f=A-P.EPSILON4),g=h.dot(x,b),A=P.acosClamped(g),f<0&&-f>A&&(f=-A+P.EPSILON4);let E=h.cross(i,x,Zyt);r.look(E,f)}else(T&&f<0||C&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function $yt(e){gl(e,e.enableRotate,e.rotateEventTypes,Ryt,e.inertiaSpin,"_lastInertiaSpinMovement"),gl(e,e.enableZoom,e.zoomEventTypes,GTe,e.inertiaZoom,"_lastInertiaZoomMovement"),gl(e,e.enableTilt,e.tiltEventTypes,Gyt,e.inertiaSpin,"_lastInertiaTiltMovement"),gl(e,e.enableLook,e.lookEventTypes,tf)}var Qyt=new F,Jyt=new fe;function QK(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode;if(i===ne.SCENE2D||i===ne.MORPHING)return;let o=n.camera,r=y(n.ellipsoid,ee.WGS84),s=n.mapProjection,a,c;F.equals(o.transform,F.IDENTITY)||(a=F.clone(o.transform,Qyt),c=h.magnitude(o.position),o._setTransform(F.IDENTITY));let u=Jyt;i===ne.SCENE3D?r.cartesianToCartographic(o.position,u):s.unproject(o.position,u);let f=!1;if(u.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(l(d)){let p=d+e.minimumZoomDistance,g=d-e._lastGlobeHeight,m=g/e._lastGlobeHeight;u.height<p&&(t||Math.abs(m)<=.1)&&(u.height=p,i===ne.SCENE3D?r.cartographicToCartesian(u,o.position):s.project(u,o.position),f=!0),t||Math.abs(m)<=.1?e._lastGlobeHeight=d:e._lastGlobeHeight+=g*.1}}l(a)&&(o._setTransform(a),f&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}AB.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var e0t=new h,t0t=new h;AB.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=y(e.ellipsoid,ee.default)):(this._globe=void 0,this._ellipsoid=ee.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=Cr.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Cr.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Cr.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,e0t),c=h.clone(t.directionWC,t0t);if(i===ne.SCENE2D?Jgt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,Ayt(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,$yt(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let u=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);QK(this,u)}this._aggregator.reset()};AB.prototype.isDestroyed=function(){return!1};AB.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var EB=AB;var SB=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var vB=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function yg(){this._sceneFramebuffer=new HT;let e=.125,t=new Array(6);t[0]=new fo({fragmentShader:nu,textureScale:e,forcePowerOfTwo:!0,sampleMode:Zu.LINEAR});let n=t[1]=new fo({fragmentShader:vB,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new z,t[2]=new fo({fragmentShader:P0,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new fo({fragmentShader:P0,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new fo({fragmentShader:nu,sampleMode:Zu.LINEAR}),this._uCenter=new z,this._uRadius=void 0,t[5]=new fo({fragmentShader:SB,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new pl({stages:t});let o=new KT(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}yg.prototype.get=function(e){return this._stages.get(e)};yg.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var n0t=new oe,YTe=new z,i0t=new z,XTe=new F;function o0t(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=F.computeViewportTransformation(n,0,1,XTe),u=F.multiplyByPoint(r,o,n0t),f=Mt.pointToGLWindowCoordinates(s,c,o,YTe);u.x+=P.SOLAR_RADIUS;let d=Mt.pointToGLWindowCoordinates(a,c,u,u),p=z.magnitude(z.subtract(d,f,d))*30*2,g=i0t;g.x=p,g.y=p,e._uCenter=z.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let m=t.drawingBufferWidth,x=t.drawingBufferHeight,b=e._stages,T=b.get(0),C=T.outputTexture.width,A=T.outputTexture.height,E=new je;E.width=C,E.height=A,c=F.computeViewportTransformation(E,0,1,XTe),f=Mt.pointToGLWindowCoordinates(s,c,o,YTe),g.x*=C/m,g.y*=A/x;let v=T.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,m),v.height=Math.min(g.y,x);for(let D=1;D<4;++D)je.clone(v,b.get(D).scissorRectangle)}yg.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};yg.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),o0t(this,t,n),o};yg.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};yg.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(nu,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};yg.prototype.isDestroyed=function(){return!1};yg.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var wB=yg;function KTe(){this._cachedShowFrustumsShaders={}}function r0t(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function s0t(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=Ue.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let u=r0t(i);return Qt.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var DB=new H;function a0t(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=H.fromRandom()),t._debugColor):H.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(DB.red=t.debugOverlappingFrustums&1?1:0,DB.green=t.debugOverlappingFrustums&2?1:0,DB.blue=t.debugOverlappingFrustums&4?1:0,DB.alpha=1,DB):H.WHITE}),n}var c0t=new Ze;KTe.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=s0t(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=Ze.shallowClone(t,c0t);r.shaderProgram=o,r.uniformMap=a0t(e,t),r.execute(e.context,n)};var IB=KTe;function tC(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new vn}tC.fromKeyframeNode=function(e,t,n,i){let o=new tC(e,t,n),{spatialNode:r,metadata:s}=i;return o._metadata=l0t(e,s,n),o._orientedBoundingBox=f0t(e,r,n,o._orientedBoundingBox),o};function l0t(e,t,n){if(!l(t))return;let{names:i,types:o}=e.provider,r={};for(let s=0;s<i.length;s++){let a=i[s],c=At.getComponentCount(o[s]),u=t[s].slice(n*c,(n+1)*c);r[a]=u}return r}var ZTe=new h,u0t=new h;function f0t(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),u=a-c*o.x,f=h.fromElements(u,c,s,ZTe),d=h.divideComponents(h.subtract(f,e._paddingBefore,ZTe),e.dimensions,u0t);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,d,i)}Object.defineProperties(tC.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});tC.prototype.hasProperty=function(e){return l(this._metadata[e])};tC.prototype.getNames=function(){return Object.keys(this._metadata)};tC.prototype.getProperty=function(e){return this._metadata[e]};var PB=tC;var RB=`struct Ray { + vec3 pos; + vec3 dir; + vec3 rawDir; +}; + +#if defined(JITTER) +/** + * Generate a pseudo-random value for a given 2D screen coordinate. + * Similar to https://www.shadertoy.com/view/4djSRW with a modified hashscale. + */ +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +float minComponent(in vec3 v) { + return min(min(v.x, v.y), v.z); +} + +float maxComponent(in vec3 v) { + return max(max(v.x, v.y), v.z); +} + +struct PointJacobianT { + vec3 point; + mat3 jacobianT; +}; +`;var OB=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#if defined(PICKING_VOXEL) + #define ALPHA_ACCUM_MAX 0.1 +#else + #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 +#endif + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +vec3 getSampleSize(in int level) { + vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions); + vec3 sampleSizeUv = 1.0 / sampleCount; + return scaleShapeUvToShapeSpace(sampleSizeUv); +} + +#define MINIMUM_STEP_SCALAR (0.02) +#define SHIFT_FRACTION (0.001) + +/** + * Given a coordinate within a tile, and sample spacings along a ray through + * the coordinate, find the distance to the points where the ray entered and + * exited the voxel cell, along with the surface normals at those points. + * The surface normals are returned in shape space coordinates. + */ +RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) { + vec3 voxelCoord = tileUv * vec3(u_dimensions); + vec3 directions = sign(sampleSizeAlongRay); + vec3 positiveDirections = max(directions, 0.0); + vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections); + vec3 exitCoord = entryCoord + directions; + + vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay); + float lastEntry = maxComponent(distanceFromEntry); + bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay); + float firstExit = minComponent(distanceToExit); + bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit)); + vec3 exitNormal = vec3(isFirstExit) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + return RayShapeIntersection(entry, exit); +} + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) { + // The Jacobian is computed in a space where the shape spans [-1, 1]. + // But the ray is marched in a space where the shape fills [0, 1]. + // So we need to scale the Jacobian by 2. + vec3 gradient = 2.0 * viewRay.rawDir * jacobianT; + vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient; + + RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay); + + // Transform normal from shape space to Cartesian space + vec3 voxelNormal = normalize(jacobianT * voxelIntersection.entry.xyz); + // Compare with the shape intersection, to choose the appropriate normal + vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w); + vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry); + + float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize; + float shift = fixedStep * SHIFT_FRACTION; + float dt = voxelIntersection.exit.w + shift; + if ((currentT + dt) > shapeIntersection.exit.w) { + // Stop at end of shape + dt = shapeIntersection.exit.w - currentT + shift; + } + float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift); + + return vec4(entry.xyz, stepSize); +} + +vec2 packIntToVec2(int value) { + float shifted = float(value) / 255.0; + float lowBits = fract(shifted); + float highBits = floor(shifted) / 255.0; + return vec2(highBits, lowBits); +} + +vec2 packFloatToVec2(float value) { + float lowBits = fract(value); + float highBits = floor(value) / 255.0; + return vec2(highBits, lowBits); +} + +int getSampleIndex(in vec3 tileUv) { + ivec3 voxelDimensions = u_dimensions; + vec3 sampleCoordinate = tileUv * vec3(voxelDimensions); + // tileUv = 1.0 is a valid coordinate but sampleIndex = voxelDimensions is not. + // (tileUv = 1.0 corresponds to the last sample, at index = voxelDimensions - 1). + // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring + vec3 maxCoordinate = vec3(voxelDimensions) - vec3(0.5); + sampleCoordinate = clamp(sampleCoordinate, vec3(0.0), maxCoordinate); + ivec3 sampleIndex = ivec3(floor(sampleCoordinate)); + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + sampleIndex += u_paddingBefore; + #endif + // Convert to a 1D index for lookup in a 1D data array + return sampleIndex.x + voxelDimensions.x * (sampleIndex.y + voxelDimensions.y * sampleIndex.z); +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_ELLIPSOID) + // viewDirUv has been scaled to a space where the ellipsoid is a sphere. + // Undo this scaling to get the raw direction. + vec3 rawDir = viewDirUv * u_ellipsoidRadiiUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, rawDir); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currentT = shapeIntersection.entry.w; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currentT * viewDirUv; + PointJacobianT pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(pointJacobian.point, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currentT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum = vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = pointJacobian.point; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + fragmentInput.voxel.stepCount = stepCount; + fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex; + fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0].tileUv); + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currentT += step.w; + positionUv = viewPosUv + currentT * viewDirUv; + + // Check if there's more intersections. + if (currentT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currentT = shapeIntersection.entry.w; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currentT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + traverseOctreeFromExisting(pointJacobian.point, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #elif defined(PICKING_VOXEL) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex); + vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0].tileUv)); + out_FragColor = vec4(megatextureId, sampleIndex); + #else + out_FragColor = colorAccum; + #endif +} +`;var MB=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var LB=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1) +{ + if (intersect0.w == NO_HIT) { + return intersect1; + } else if (intersect1.w == NO_HIT) { + return intersect0; + } + return (intersect0.w <= intersect1.w) ? intersect0 : intersect1; +} + +vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1) +{ + return (intersect0.w >= intersect1.w) ? intersect0 : intersect1; +} + +RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1) +{ + bool missed = (intersect0.entry.w == NO_HIT) || + (intersect1.entry.w == NO_HIT) || + (intersect0.exit.w < intersect1.entry.w) || + (intersect0.entry.w > intersect1.exit.w); + if (missed) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + vec4 entry = intersectionMax(intersect0.entry, intersect1.entry); + vec4 exit = intersectionMin(intersect0.exit, intersect1.exit); + + return RayShapeIntersection(entry, exit); +} + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter)) +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var NB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var FB=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setShapeIntersection + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var dv=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, +// RayShapeIntersection + +vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign; + + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + float approachRate = dot(direction, planeNormal); + float distance = -dot(position, planeNormal); + + float t = (approachRate == 0.0) + ? NO_HIT + : distance / approachRate; + + return vec4(planeNormal, 0.0, t); +} + +RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal) +{ + vec4 intersection = intersectLongitude(ray, angle, positiveNormal); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0); + if (!hitFront) { + return RayShapeIntersection(intersection, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersection); + } +} + +void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2]) +{ + intersections[0] = intersectHalfSpace(ray, minMaxAngle.x, false); + intersections[1] = intersectHalfSpace(ray, minMaxAngle.y, true); +} + +bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign; + vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy; + return dot(hit, planeDirection) > 0.0; +} + +void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) { + vec4 intersection = intersectLongitude(ray, angle, true); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (hitPositiveHalfPlane(ray, intersection, true)) { + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = vec4(-1.0 * intersection.xy, 0.0, intersection.w); + intersections[1].entry = intersection; + intersections[1].exit = farSide; + } else { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + } +} + +RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle) +{ + // Note: works for maxAngle > minAngle + pi, where the "regular wedge" + // is actually a negative volume. + // Compute intersections with the two planes. + // Normals will point toward the "outside" (negative space) + vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false); + vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true); + + // Choose intersection with smallest T as the "first", the other as "last" + // Note: first or last could be in the "shadow" wedge, beyond the tip + bool inOrder = intersect1.w <= intersect2.w; + vec4 first = inOrder ? intersect1 : intersect2; + vec4 last = inOrder ? intersect2 : intersect1; + + bool firstIsAhead = first.w >= 0.0; + bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0; + bool exitFromInside = firstIsAhead == startedInsideFirst; + bool lastIsAhead = last.w > 0.0; + bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0; + bool enterFromOutside = lastIsAhead == startedOutsideLast; + + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + + if (exitFromInside && enterFromOutside) { + // Ray crosses both faces of negative wedge, exiting then entering the positive shape + return RayShapeIntersection(first, last); + } else if (!exitFromInside && enterFromOutside) { + // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry + return RayShapeIntersection(-1.0 * farSide, first); + } else if (exitFromInside && !enterFromOutside) { + // First intersection was in the shadow wedge, so last is actually the exit + return RayShapeIntersection(last, farSide); + } else { // !exitFromInside && !enterFromOutside + // Both intersections were in the shadow wedge + return RayShapeIntersection(miss, miss); + } +} +`;var BB=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection, +// NO_HIT, Intersections + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +RayShapeIntersection intersectBox(in Ray ray, in vec3 minBound, in vec3 maxBound) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (minBound - ray.pos) / ray.dir; + vec3 t1 = (maxBound - ray.pos) / ray.dir; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + vec3 directions = sign(ray.dir); + + // The actual intersection points are the furthest entry and the closest exit + float lastEntry = maxComponent(entries); + bvec3 isLastEntry = equal(entries, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + float firstExit = minComponent(exits); + bvec3 isFirstExit = equal(exits, vec3(firstExit)); + vec3 exitNormal = vec3(isLastEntry) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + if (entry.w > exit.w) { + entry.w = NO_HIT; + exit.w = NO_HIT; + } + + return RayShapeIntersection(entry, exit); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, u_renderMinBounds, u_renderMaxBounds); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var kB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection, +// intersectIntersections +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +uniform vec2 u_cylinderRenderRadiusMinMax; +uniform vec2 u_cylinderRenderHeightMinMax; +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +/** + * Find the intersection of a ray with the volume defined by two planes of constant z + */ +RayShapeIntersection intersectHeightBounds(in Ray ray, in vec2 minMaxHeight, in bool convex) +{ + float zPosition = ray.pos.z; + float zDirection = ray.dir.z; + + float tmin = (minMaxHeight.x - zPosition) / zDirection; + float tmax = (minMaxHeight.y - zPosition) / zDirection; + + // Normals point outside the volume + float signFlip = convex ? 1.0 : -1.0; + vec4 intersectMin = vec4(0.0, 0.0, -1.0 * signFlip, tmin); + vec4 intersectMax = vec4(0.0, 0.0, 1.0 * signFlip, tmax); + + bool topEntry = zDirection < 0.0; + vec4 entry = topEntry ? intersectMax : intersectMin; + vec4 exit = topEntry ? intersectMin : intersectMax; + + return RayShapeIntersection(entry, exit); +} + +/** + * Find the intersection of a ray with a right cylindrical surface of a given radius + * about the z-axis. + */ +RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex) +{ + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + + float a = dot(direction, direction); + float b = dot(position, direction); + float c = dot(position, position) - radius * radius; + float determinant = b * b - a * c; + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + float t1 = (-b - determinant) / a; + float t2 = (-b + determinant) / a; + float signFlip = convex ? 1.0 : -1.0; + vec4 intersect1 = vec4(normalize(position + t1 * direction) * signFlip, 0.0, t1); + vec4 intersect2 = vec4(normalize(position + t2 * direction) * signFlip, 0.0, t2); + + return RayShapeIntersection(intersect1, intersect2); +} + +/** + * Find the intersection of a ray with a right cylindrical solid of given + * radius and height bounds. NOTE: The shape is assumed to be convex. + */ +RayShapeIntersection intersectBoundedCylinder(in Ray ray, in float radius, in vec2 minMaxHeight) +{ + RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true); + RayShapeIntersection heightBoundsIntersection = intersectHeightBounds(ray, minMaxHeight, true); + return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, u_cylinderRenderRadiusMinMax.y, u_cylinderRenderHeightMinMax); + + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #endif +} +`;var VB=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +uniform float u_eccentricitySquared; +uniform vec2 u_ellipsoidRenderLatitudeSinMinMax; +uniform vec2 u_clipMinMaxHeight; + +RayShapeIntersection intersectZPlane(in Ray ray, in float z) { + float t = -ray.pos.z / ray.dir.z; + + bool startsOutside = sign(ray.pos.z) == sign(z); + bool entry = (t >= 0.0) != startsOutside; + + vec4 intersect = vec4(0.0, 0.0, z, t); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (entry) { + return RayShapeIntersection(intersect, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersect); + } +} + +RayShapeIntersection intersectHeight(in Ray ray, in float relativeHeight, in bool convex) +{ + // Scale the ray by the ellipsoid axes to make it a unit sphere + // Note: approximating ellipsoid + height as an ellipsoid + vec3 radiiCorrection = u_ellipsoidRadiiUv / (u_ellipsoidRadiiUv + relativeHeight); + vec3 position = ray.pos * radiiCorrection; + vec3 direction = ray.dir * radiiCorrection; + + float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled) + float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in + float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in. + float determinant = b * b - a * c; // ~ b * b when zoomed in + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(direction), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t1 = (-b - signB * determinant) / a; + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + float directionScale = convex ? 1.0 : -1.0; + vec3 d1 = directionScale * normalize(position + tmin * direction); + vec3 d2 = directionScale * normalize(position + tmax * direction); + + return RayShapeIntersection(vec4(d1, tmin), vec4(d2, tmax)); +} + +/** + * Given a circular cone around the z-axis, with apex at the origin, + * find the parametric distance(s) along a ray where that ray intersects + * the cone. + * The cone opening angle is described by the squared cosine of + * its half-angle (the angle between the Z-axis and the surface) + */ +vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle; + + float aSin = d.z * d.z * sinSqrHalfAngle; + float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle; + float a = aSin + aCos; + + float bSin = d.z * o.z * sinSqrHalfAngle; + float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle; + float b = bSin + bCos; + + float cSin = o.z * o.z * sinSqrHalfAngle; + float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle; + float c = cSin + cCos; + // determinant = b * b - a * c. But bSin * bSin = aSin * cSin. + // Avoid subtractive cancellation by expanding to eliminate these terms + float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos; + + if (determinant < 0.0) { + return vec2(NO_HIT); + } else if (a == 0.0) { + // Ray is parallel to cone surface + return (b == 0.0) + ? vec2(NO_HIT) // Ray is on cone surface + : vec2(-0.5 * c / b, NO_HIT); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + float t1 = (-b - signB * determinant) / a; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +/** + * Given a point on a conical surface, find the surface normal at that point. + */ +vec3 getConeNormal(in vec3 p, in bool convex) { + // Start with radial component pointing toward z-axis + vec2 radial = -abs(p.z) * normalize(p.xy); + // Z component points toward opening of cone + float zSign = (p.z < 0.0) ? -1.0 : 1.0; + float z = length(p.xy) * zSign; + // Flip normal if shape is convex + float flip = (convex) ? -1.0 : 1.0; + return normalize(vec3(radial, z) * flip); +} + +/** + * Compute the shift between the ellipsoid origin and the apex of a cone of latitude + */ +float getLatitudeConeShift(in float sinLatitude) { + // Find prime vertical radius of curvature: + // the distance along the ellipsoid normal to the intersection with the z-axis + float x2 = u_eccentricitySquared * sinLatitude * sinLatitude; + float primeVerticalRadius = inversesqrt(1.0 - x2); + + // Compute a shift from the origin to the intersection of the cone with the z-axis + return primeVerticalRadius * u_eccentricitySquared * sinLatitude; +} + +void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + // Initialize output with no intersections + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + + if (intersect.x == NO_HIT) { + return; + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, true), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, true), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + // no valid intersections + } else if (p0InShadowCone) { + intersections[0].exit = intersect1; + } else if (p1InShadowCone) { + intersections[0].entry = intersect0; + } else { + intersections[0].exit = intersect0; + intersections[1].entry = intersect1; + intersections[1].exit = farSide; + } +} + +RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (intersect.x == NO_HIT) { + return RayShapeIntersection(miss, miss); + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + return RayShapeIntersection(miss, miss); + } else if (p0InShadowCone) { + return RayShapeIntersection(intersect1, farSide); + } else if (p1InShadowCone) { + return RayShapeIntersection(-1.0 * farSide, intersect0); + } else { + return RayShapeIntersection(intersect0, intersect1); + } +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + // Outer ellipsoid + RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + // Inner ellipsoid + RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false); + + if (innerIntersect.entry.w == NO_HIT) { + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is large and thin it's possible for floating point math + // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. + // To prevent this from happening, clamp innerIntersect to outerIntersect and + // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w); + innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + } + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + RayShapeIntersection bottomConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + RayShapeIntersection topConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #endif +} +`;var nC=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var UB=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // For BOX, UV space = shape space, so we can use positionUv as-is, + // and the Jacobian is the identity matrix, except that a step of 1 + // only spans half the shape space [-1, 1], so the identity is scaled. + return PointJacobianT(positionUv, mat3(0.5)); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionShape * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionShape; +#endif +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return shapeUv / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +}`;var zB=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from Cartesian UV space [0, 1] to Cartesian local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + + float radius = length(position.xy); // [0, 1] + vec3 radial = normalize(vec3(position.xy, 0.0)); + + // Shape space height is defined within [0, 1] + float height = positionUv.z; // [0, 1] + vec3 z = vec3(0.0, 0.0, 1.0); + + float angle = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + vec3 point = vec3(radius, height, angle); + mat3 jacobianT = mat3(radial, z, east / length(position.xy)); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + float radius = positionShape.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; + #endif + + float height = positionShape.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; + #endif + + float angle = (positionShape.z + czm_pi) / czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; + #endif + + return vec3(radius, height, angle); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + float radius = shapeUv.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius /= u_cylinderUvToShapeUvRadius.x; + #endif + + float height = shapeUv.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height /= u_cylinderUvToShapeUvHeight.x; + #endif + + float angle = shapeUv.z * czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + angle /= u_cylinderUvToShapeUvAngle.x; + #endif + + return vec3(radius, height, angle); +} +`;var HB=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +uniform vec2 u_evoluteScale; // (radiiUv.x ^ 2 - radiiUv.z ^ 2) * vec2(1.0, -1.0) / radiiUv; +uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +uniform float u_ellipsoidInverseHeightDifferenceUv; + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Extended to return radius of curvature along with the point +vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = pi/4 + vec2 tTrigs = vec2(0.7071067811865476); + // Initial guess of point on ellipsoid + vec2 v = radii * tTrigs; + // Center of curvature of the ellipse at v + vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + } + + return vec3(v * sign(pos), length(v - evolute)); +} + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from UV space [0, 1] to local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + // Undo the scaling from ellipsoid to sphere + position = position * u_ellipsoidRadiiUv; + + float longitude = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) + // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal + float distanceFromZAxis = length(position.xy); + vec2 posEllipse = vec2(distanceFromZAxis, position.z); + vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadiiUv.xz); + vec2 surfacePoint = surfacePointAndRadius.xy; + + vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquaredUv.xz); + float latitude = atan(normal2d.y, normal2d.x); + vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x)); + + float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0; + float height = heightSign * length(posEllipse - surfacePoint); + vec3 up = normalize(cross(east, north)); + + vec3 point = vec3(longitude, latitude, height); + mat3 jacobianT = mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + // Longitude: shift & scale to [0, 1] + float longitude = (positionShape.x + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + + // Latitude: shift and scale to [0, 1] + float latitude = (positionShape.y + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + + // Height: scale to the range [0, 1] + float height = 1.0 + positionShape.z * u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + // Convert from [0, 1] to radians [-pi, pi] + float longitude = shapeUv.x * czm_twoPi; + #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude /= u_ellipsoidUvToShapeUvLongitude.x; + #endif + + // Convert from [0, 1] to radians [-pi/2, pi/2] + float latitude = shapeUv.y * czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude /= u_ellipsoidUvToShapeUvLatitude.x; + #endif + + float height = shapeUv.z / u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} +`;var GB=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = exp2(float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + return clamp(tileUv, vec3(0.0), vec3(1.0)); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = exp2(-1.0 * float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var WB=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function d0t(e){let t=new xx;this.shaderBuilder=t;let n=e._customShader,i=yt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,pe.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",pe.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([MB]),t.addFragmentLines([n.fragmentShaderText,"#line 0",GB,RB,LB,WB]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,pe.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,pe.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,pe.FRAGMENT),t.addFragmentLines([FB])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,pe.FRAGMENT),t.addFragmentLines([NB]));let a=e._provider.shape;a==="BOX"?t.addFragmentLines([UB,BB,nC]):a==="CYLINDER"?t.addFragmentLines([zB,dv,kB,nC]):a==="ELLIPSOID"&&(t.addDefine("SHAPE_ELLIPSOID",void 0,pe.FRAGMENT),t.addFragmentLines([HB,dv,VB,nC])),t.addFragmentLines([OB]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,pe.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,pe.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,pe.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,pe.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,pe.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,pe.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,pe.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,pe.FRAGMENT)}var jB=d0t;function h0t(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,pe.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=`PropertyStatistics_${M}`,S=`PropertyStatistics_${M}`;n.addStruct(_,S,pe.FRAGMENT);let w=aG(N);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=`PropertyStatistics_${M}`,_=M;n.addStructField(f,N,_)}let g="Metadata",m="Metadata",x="metadata";n.addStruct(g,m,pe.FRAGMENT),n.addStructField(g,d,p);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=aG(N);n.addStructField(g,_,M)}for(let R=0;R<c;R++){let M=i[R],N=o[R],_=p0t(N),S=`VoxelProperty_${M}`,w=`VoxelProperty_${M}`;n.addStruct(S,w,pe.FRAGMENT),n.addStructField(S,_,"partialDerivativeLocal"),n.addStructField(S,_,"partialDerivativeWorld"),n.addStructField(S,_,"partialDerivativeView"),n.addStructField(S,_,"partialDerivativeValid")}let b="Voxel",T="Voxel",C="voxel";n.addStruct(b,T,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=`VoxelProperty_${M}`;n.addStructField(b,N,M)}n.addStructField(b,"vec3","positionEC"),n.addStructField(b,"vec3","positionUv"),n.addStructField(b,"vec3","positionShapeUv"),n.addStructField(b,"vec3","positionUvLocal"),n.addStructField(b,"vec3","viewDirUv"),n.addStructField(b,"vec3","viewDirWorld"),n.addStructField(b,"vec3","surfaceNormal"),n.addStructField(b,"float","travelDistance"),n.addStructField(b,"int","stepCount"),n.addStructField(b,"int","tileIndex"),n.addStructField(b,"int","sampleIndex");let A="FragmentInput";n.addStruct(A,"FragmentInput",pe.FRAGMENT),n.addStructField(A,m,x),n.addStructField(A,T,C);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],N=o[R],_=aG(N);n.addStructField(v,_,M)}{let R="clearProperties";n.addFunction(R,`${D} clearProperties()`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=r[M],w=aG(_,S);n.addFunctionLines(R,[`${O}.${N} = ${w}(0.0);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="sumProperties";n.addFunction(R,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${O}.${N} = propertiesA.${N} + propertiesB.${N};`])}n.addFunctionLines(R,[`return ${O};`])}{let R="scaleProperties";n.addFunction(R,`${D} scaleProperties(${D} ${O}, float scale)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} scaledProperties = ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`scaledProperties.${N} *= scale;`])}n.addFunctionLines(R,["return scaledProperties;"])}{let R="mixProperties";n.addFunction(R,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${O}.${N} = mix(propertiesA.${N}, propertiesB.${N}, mixFactor);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="copyPropertiesToMetadata";n.addFunction(R,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${m} ${x})`,pe.FRAGMENT);for(let M=0;M<c;M++){let N=i[M];n.addFunctionLines(R,[`${x}.${N} = ${O}.${N};`])}}if(u){let R="setStatistics";n.addFunction(R,`void setStatistics(inout ${d} ${p})`,pe.FRAGMENT);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=At.getComponentCount(_);for(let w=0;w<S;w++){let I=_0t(_,w),L=s[M][w],B=a[M][w];n.addFunctionLines(R,[`${p}.${N}.min${I} = ${$Te(L)};`,`${p}.${N}.max${I} = ${$Te(B)};`])}}}{let R="getPropertiesFromMegatextureAtUv";n.addFunction(R,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let N=i[M],_=o[M],S=r[M],w=m0t(_,S);n.addFunctionLines(R,[`properties.${N} = texture(u_megatextureTextures[${M}], texcoord)${w};`])}n.addFunctionLines(R,[`return ${O};`])}}function aG(e){if(e===At.SCALAR)return"float";if(e===At.VEC2)return"vec2";if(e===At.VEC3)return"vec3";if(e===At.VEC4)return"vec4"}function m0t(e){if(e===At.SCALAR)return".r";if(e===At.VEC2)return".ra";if(e===At.VEC3)return".rgb";if(e===At.VEC4)return""}function p0t(e){if(e===At.SCALAR)return"vec3";if(e===At.VEC2)return"mat2";if(e===At.VEC3)return"mat3";if(e===At.VEC4)return"mat4"}function $Te(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function _0t(e,t){return e===At.SCALAR?"":`[${t}]`}var qB=h0t;function g0t(e,t){let n=new jB(e);qB(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let T="getClippingPlane",C=og(o,t),A=0,E=C.indexOf(")")+1,v=C.indexOf("{",E)+1,D=C.indexOf("}",v),O=C.slice(A,E),R=C.slice(v,D);i.addFunction(T,O,pe.FRAGMENT),i.addFunctionLines(T,[R])}let s=i.clone();s.addDefine("PICKING",void 0,pe.FRAGMENT);let a=i.clone();a.addDefine("PICKING_VOXEL",void 0,pe.FRAGMENT);let c=i.buildShaderProgram(t),u=s.buildShaderProgram(t),f=a.buildShaderProgram(t),d=Ve.fromCache({cull:{enabled:!0,face:gi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:un.PRE_MULTIPLIED_ALPHA_BLEND}),p=t.getViewportQuadVertexArray(),g=e._depthTest,m=new Ze({vertexArray:p,primitiveType:Me.TRIANGLES,renderState:d,shaderProgram:c,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:ve.VOXELS,executeInClosestFrustum:!0,owner:this,cull:g,occlude:g}),x=Ze.shallowClone(m,new Ze);x.shaderProgram=u,x.pickOnly=!0;let b=Ze.shallowClone(m,new Ze);if(b.shaderProgram=f,b.pickOnly=!0,l(e._drawCommand)){let T=e._drawCommand;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPick)){let T=e._drawCommandPick;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let T=e._drawCommandPickVoxel;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}e._drawCommand=m,e._drawCommandPick=x,e._drawCommandPickVoxel=b}var YB=g0t;function iu(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minBounds=h.clone(iu.DefaultMinBounds,new h),this._maxBounds=h.clone(iu.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var y0t=new h,JK=new h,x0t=new $,b0t=new h,T0t=new h,C0t=new h,A0t=new h,QTe=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F);iu.prototype.update=function(e,t,n,i,o){i=y(i,iu.DefaultMinBounds),o=y(o,iu.DefaultMaxBounds);let r=iu.DefaultMinBounds,s=iu.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,b0t),o=h.clamp(o,r,s,T0t);let a=h.clamp(t,i,o,C0t),c=h.clamp(n,i,o,A0t),u=F.getScale(e,JK);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=tZ(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let m in d)d.hasOwnProperty(m)&&(d[m]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=F.multiplyByPoint(QTe,a,f.renderMinBounds),f.renderMaxBounds=F.multiplyByPoint(QTe,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let m=t,x=n;f.boxUvToShapeUvScale=h.fromElements(2/(m.x===x.x?1:x.x-m.x),2/(m.y===x.y?1:x.y-m.y),2/(m.z===x.z?1:x.z-m.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=h.fromElements(-f.boxUvToShapeUvScale.x*(m.x*.5+.5),-f.boxUvToShapeUvScale.y*(m.y*.5+.5),-f.boxUvToShapeUvScale.z*(m.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var cG=new h,eZ=new h;iu.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),cG),u=h.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),eZ);return tZ(c,u,this.shapeTransform,o)};var JTe=new h;iu.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,JTe),s=h.multiplyByScalar(r,o,JTe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,cG),o,cG),c=h.add(a,s,eZ),u=this._minBounds,f=this._maxBounds,d=h.fromElements(P.lerp(u.x,f.x,a.x),P.lerp(u.y,f.y,a.y),P.lerp(u.z,f.z,a.z),cG),p=h.fromElements(P.lerp(u.x,f.x,c.x),P.lerp(u.y,f.y,c.y),P.lerp(u.z,f.z,c.z),eZ);return tZ(d,p,this.shapeTransform,i)};iu.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));iu.DefaultMaxBounds=Object.freeze(new h(1,1,1));function tZ(e,t,n,i){let o=iu.DefaultMinBounds,r=iu.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=F.getTranslation(n,i.center),i.halfAxes=F.getMatrix3(n,i.halfAxes);else{let a=F.getScale(n,JK),c=h.midpoint(e,t,y0t);i.center=F.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),JK);let u=F.getRotation(n,x0t);i.halfAxes=$.setScale(u,a,i.halfAxes)}return i}var ap=iu;function ss(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minimumRadius=ss.DefaultMinBounds.x,this._maximumRadius=ss.DefaultMaxBounds.x,this._minimumHeight=ss.DefaultMinBounds.y,this._maximumHeight=ss.DefaultMaxBounds.y,this._minimumAngle=ss.DefaultMinBounds.z,this._maximumAngle=ss.DefaultMaxBounds.z,this.shaderUniforms={cylinderRenderHeightMinMax:new z,cylinderRenderRadiusMinMax:new z,cylinderRenderAngleMinMax:new z,cylinderUvToShapeUvRadius:new z,cylinderUvToShapeUvHeight:new z,cylinderUvToShapeUvAngle:new z,cylinderShapeUvAngleMinMax:new z,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var iCe=new h;ss.prototype.update=function(e,t,n,i,o){i=y(i,ss.DefaultMinBounds),o=y(o,ss.DefaultMaxBounds);let r=ss.DefaultMinBounds.x,s=ss.DefaultMaxBounds.x,a=ss.DefaultMinBounds.y,c=ss.DefaultMaxBounds.y,u=ss.DefaultMinBounds.z,f=ss.DefaultMaxBounds.z,d=f-u,p=.5*d,g=P.EPSILON10,m=P.EPSILON3,x=P.EPSILON10,b=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),C=P.clamp(i.x,r,s),A=P.clamp(o.x,r,s),E=Math.max(b,C),v=Math.min(T,A),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),R=P.clamp(i.y,a,c),M=P.clamp(o.y,a,c),N=Math.max(D,R),_=Math.min(O,M),S=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),L=P.negativePiToPi(o.z),B=Math.max(S,I),U=Math.min(w,L),V=F.getScale(e,iCe);if(v===0||E>v||N>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=b,this._maximumRadius=T,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=S,this._maximumAngle=w,this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=iZ(E,v,N,_,B,U,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let W=b===r&&T===s,q=D===a&&O===c,J=w<S,j=w-S+J*d,K=j>p+x&&j<d-x,Q=j<p-x,de=j>=p-x&&j<=p+x,ye=K||Q||de,ae=P.equalsEpsilon(S,u,void 0,m),_e=P.equalsEpsilon(w,f,void 0,m),xe=E===r,De=U<B,Ae=U-B+De*d,ke=Ae>=p-x&&Ae<d-x,ze=Ae>x&&Ae<p-x,tt=Ae<=x,wt=ke||ze||tt,{shaderUniforms:pt,shaderDefines:Be}=this;for(let Ct in Be)Be.hasOwnProperty(Ct)&&(Be[Ct]=void 0);let Yt=0;if(Be.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=Yt,Yt+=1,xe||(Be.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,Be.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=Yt,Yt+=1),pt.cylinderRenderRadiusMinMax=z.fromElements(E,v,pt.cylinderRenderRadiusMinMax),E===v&&(Be.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),!W){Be.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Ct=T-b,lt=0,tn=1;Ct!==0&&(lt=1/Ct,tn=-b/Ct),pt.cylinderUvToShapeUvRadius=z.fromElements(lt,tn,pt.cylinderUvToShapeUvRadius)}if(!q){Be.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Ct=O-D,lt=0,tn=1;Ct!==0&&(lt=2/Ct,tn=-(D+1)/Ct),pt.cylinderUvToShapeUvHeight=z.fromElements(lt,tn,pt.cylinderUvToShapeUvHeight)}if(pt.cylinderRenderHeightMinMax=z.fromElements(N,_,pt.cylinderRenderHeightMinMax),J&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),wt&&(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,Be.CYLINDER_INTERSECTION_INDEX_ANGLE=Yt,ke?(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,Yt+=1):ze?(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,Yt+=2):tt&&(Be.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,Yt+=2),pt.cylinderRenderAngleMinMax=z.fromElements(B,U,pt.cylinderRenderAngleMinMax)),ye){Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,ae&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),_e&&(Be.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Ct=(S-u)/d,lt=(w-u)/d,tn=1-j/d;if(pt.cylinderShapeUvAngleMinMax=z.fromElements(Ct,lt,pt.cylinderShapeUvAngleMinMax),pt.cylinderShapeUvAngleRangeZeroMid=(lt+.5*tn)%1,j<=x)pt.cylinderUvToShapeUvAngle=z.fromElements(0,1,pt.cylinderUvToShapeUvAngle);else{let Ce=d/j,Te=-(S-u)/j;pt.cylinderUvToShapeUvAngle=z.fromElements(Ce,Te,pt.cylinderUvToShapeUvAngle)}}return this.shaderMaximumIntersectionsLength=Yt,!0};ss.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),m=P.lerp(a,c,n*d),x=P.lerp(a,c,(n+1)*d),b=P.lerp(u,f,i*d),T=P.lerp(u,f,(i+1)*d);return iZ(p,g,m,x,b,T,this.shapeTransform,o)};var eCe=new h,tCe=new h,E0t=new h;ss.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,eCe),s=h.multiplyByScalar(r,o,eCe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,tCe),o,tCe),c=h.add(a,s,E0t),u=this._minimumRadius,f=this._maximumRadius,d=this._minimumHeight,p=this._maximumHeight,g=this._minimumAngle,m=this._maximumAngle,x=P.lerp(u,f,a.x),b=P.lerp(u,f,c.x),T=P.lerp(d,p,a.y),C=P.lerp(d,p,c.y),A=P.lerp(g,m,a.z),E=P.lerp(g,m,c.z);return iZ(x,b,T,C,A,E,this.shapeTransform,i)};ss.DefaultMinBounds=Object.freeze(new h(0,-1,-P.PI));ss.DefaultMaxBounds=Object.freeze(new h(1,1,+P.PI));var S0t=5,v0t=new Array(S0t),w0t=new h,D0t=new $,I0t=new F,P0t=new F,R0t=new F,nZ=new F,O0t=new h,M0t=new h,L0t=new h,oCe=new Array(8);for(let e=0;e<8;e++)oCe[e]=new h;function nCe(e,t,n){return Math.abs(oe.dot(e,t))<n}function N0t(e){let t=F.getColumn(e,0,O0t),n=F.getColumn(e,1,M0t),i=F.getColumn(e,2,L0t),o=P.EPSILON4;return nCe(t,n,o)&&nCe(n,i,o)}function F0t(e,t){let n=oCe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)F.multiplyByPoint(e,n[i],n[i]);return vn.fromPoints(n,t)}function iZ(e,t,n,i,o,r,s,a){let c=ss.DefaultMinBounds,u=ss.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,m=c.z,x=u.z;if(e===f&&t===d&&n===p&&i===g&&o===m&&r===x)return a.center=F.getTranslation(s,a.center),a.halfAxes=F.getMatrix3(s,a.halfAxes),a;r<o&&(r+=P.TWO_PI);let T=r-o,C=o+T*.5,A=v0t,E=0;A[E++]=o,A[E++]=r,A[E++]=C,T>P.PI&&(A[E++]=C-P.PI_OVER_TWO,A[E++]=C+P.PI_OVER_TWO);let v=1,D=1,O=-1,R=-1;for(let J=0;J<E;++J){let j=A[J]-C,K=Math.cos(j),Q=Math.sin(j),de=K*e,ye=Q*e,ae=K*t,_e=Q*t;v=Math.min(v,de),D=Math.min(D,ye),v=Math.min(v,ae),D=Math.min(D,_e),O=Math.max(O,de),R=Math.max(R,ye),O=Math.max(O,ae),R=Math.max(R,_e)}let M=O-v,N=R-D,_=i-n,S=(v+O)*.5,w=(D+R)*.5,I=(n+i)*.5,L=h.fromElements(S,w,I,w0t),B=$.fromRotationZ(C,D0t),U=h.fromElements(M,N,_,iCe),V=F.fromScale(U,R0t),G=F.fromRotation(B,P0t),k=F.fromTranslation(L,I0t),W=F.multiplyTransformation(G,F.multiplyTransformation(k,V,nZ),nZ),q=F.multiplyTransformation(s,W,nZ);return N0t(q)?vn.fromTransformation(q,a):F0t(q,a)}var cp=ss;function xg(){this.orientedBoundingBox=new vn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._rectangle=new re,this._minimumHeight=xg.DefaultMinBounds.z,this._maximumHeight=xg.DefaultMaxBounds.z,this._ellipsoid=new ee,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,eccentricitySquared:0,evoluteScale:new z,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new z,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new z,ellipsoidUvToShapeUvLatitude:new z,ellipsoidRenderLatitudeSinMinMax:new z,ellipsoidInverseHeightDifferenceUv:0,clipMinMaxHeight:new z},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var B0t=new h,k0t=new h,V0t=new h,U0t=new h,z0t=new h,H0t=new h,G0t=new h,W0t=new h,j0t=new $,rCe=new h,sCe=new h,q0t=new re;xg.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=xg;i=y(i,r),o=y(o,s);let a=P.EPSILON10,c=P.EPSILON3,u=P.EPSILON10,f=P.EPSILON10,d=P.EPSILON3,p=F.getScale(e,W0t),g=h.clone(r,B0t);g.z=-h.minimumComponent(p);let m=h.clamp(t,g,s,k0t),x=h.clamp(n,g,s,V0t),b=h.clamp(i,g,s,U0t),T=h.clamp(o,g,s,z0t),C=h.maximumByComponent(m,b,H0t),A=h.minimumByComponent(x,T,G0t),E=h.add(p,h.fromElements(x.z,x.z,x.z,rCe),rCe),v=h.maximumComponent(E),D=h.add(p,h.fromElements(A.z,A.z,A.z,sCe),sCe);if(C.y>A.y||C.y===s.y||A.y===r.y||C.z>A.z||P.equalsEpsilon(D,h.ZERO,void 0,a))return!1;this._rectangle=re.fromRadians(m.x,m.y,x.x,x.y),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=ee.fromCartesian3(p,this._ellipsoid),this._minimumHeight=m.z,this._maximumHeight=x.z;let O=re.fromRadians(C.x,C.y,A.x,A.y,q0t);this.orientedBoundingBox=oZ(O,C.z,A.z,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=F.fromRotationTranslation($.setScale(this._rotation,E,j0t),this._translation,this.shapeTransform),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let R=s.x-r.x,M=.5*R,N=A.x<C.x,_=A.x-C.x+N*R,S=_<=u,w=_>=M-u&&_<R-u,I=_>u&&_<M-u,L=S||w||I,B=x.x<m.x,U=x.x-m.x+B*R,V=U>M+u&&U<R-u,G=U>=M-u&&U<=M+u,k=U<M-u,W=V||G||k,q=A.y<-d,J=A.y>=-d&&A.y<=+d,j=A.y>+d&&A.y<s.y-f,K=q||J||j,Q=C.y>r.y+f&&C.y<-d,de=C.y>=-d&&C.y<=+d,ye=C.y>+d,ae=Q||de||ye,_e=K||ae,xe=x.y-m.y,De=x.y<-d,Ae=x.y>=-d&&x.y<=+d,ke=x.y>+d&&x.y<s.y-f,ze=De||Ae||ke,tt=m.y>r.y+f&&m.y<-d,wt=m.y>=-d&&m.y<=+d,pt=m.y>+d,Yt=ze||(tt||wt||pt),{shaderUniforms:Ct,shaderDefines:lt}=this;for(let ut in lt)lt.hasOwnProperty(ut)&&(lt[ut]=void 0);Ct.ellipsoidRadiiUv=h.divideByScalar(E,v,Ct.ellipsoidRadiiUv);let{x:tn,z:Ce}=Ct.ellipsoidRadiiUv,Te=Ce/tn;Ct.eccentricitySquared=1-Te*Te,Ct.evoluteScale=z.fromElements((tn*tn-Ce*Ce)/tn,(Ce*Ce-tn*tn)/Ce,Ct.evoluteScale),Ct.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(Ct.ellipsoidRadiiUv,Ct.ellipsoidRadiiUv,Ct.ellipsoidInverseRadiiSquaredUv),Ct.ellipsoidInverseRadiiSquaredUv);let it=0;lt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=it,it+=1,lt.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=it,it+=1,Ct.clipMinMaxHeight=z.fromElements((C.z-x.z)/v,(A.z-x.z)/v,Ct.clipMinMaxHeight);let Wi=(x.z-m.z)/v;if(Ct.ellipsoidInverseHeightDifferenceUv=1/Wi,m.z===x.z&&(Ct.ellipsoidInverseHeightDifferenceUv=0),L&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=it,w?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,it+=1):I?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,it+=2):S&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,it+=2),Ct.ellipsoidRenderLongitudeMinMax=z.fromElements(C.x,A.x,Ct.ellipsoidRenderLongitudeMinMax)),W)if(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,x.x<m.x&&(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0),U<=u)Ct.ellipsoidUvToShapeUvLongitude=z.fromElements(0,1,Ct.ellipsoidUvToShapeUvLongitude);else{let go=R/U,Yo=-(m.x-r.x)/U;Ct.ellipsoidUvToShapeUvLongitude=z.fromElements(go,Yo,Ct.ellipsoidUvToShapeUvLongitude)}if(L){let ut=P.equalsEpsilon(C.x,r.x,void 0,c),go=P.equalsEpsilon(A.x,s.x,void 0,c);ut&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),go&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let Yo=(m.x-r.x)/R,Ya=(x.x-r.x)/R,Ir=(A.x-r.x)/R,Cs=1-_/R,Le=(Ir+.5*Cs)%1;Ct.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(Yo,Ya,Le,Ct.ellipsoidShapeUvLongitudeMinMaxMid)}if(_e&&(ae&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=it,Q?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,it+=1):de?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,it+=1):ye&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,it+=2)),K&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,lt.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=it,q?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,it+=2):J?(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,it+=1):j&&(lt.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,it+=1)),Ct.ellipsoidRenderLatitudeSinMinMax=z.fromElements(Math.sin(C.y),Math.sin(A.y),Ct.ellipsoidRenderLatitudeSinMinMax)),Yt)if(lt.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,xe<f)Ct.ellipsoidUvToShapeUvLatitude=z.fromElements(0,1,Ct.ellipsoidUvToShapeUvLatitude);else{let go=(s.y-r.y)/xe,Yo=(r.y-m.y)/xe;Ct.ellipsoidUvToShapeUvLatitude=z.fromElements(go,Yo,Ct.ellipsoidUvToShapeUvLatitude)}return this.shaderMaximumIntersectionsLength=it,!0};var lCe=new re;xg.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=re.subsection(this._rectangle,s,c,a,u,lCe),g=P.lerp(this._minimumHeight,this._maximumHeight,f),m=P.lerp(this._minimumHeight,this._maximumHeight,d);return oZ(p,g,m,this._ellipsoid,this._translation,this._rotation,o)};var aCe=new h,cCe=new h,Y0t=new h;xg.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,aCe),s=h.multiplyByScalar(r,o,aCe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,cCe),o,cCe),c=h.add(a,s,Y0t),u=re.subsection(this._rectangle,a.x,a.y,c.x,c.y,lCe),f=P.lerp(this._minimumHeight,this._maximumHeight,a.z),d=P.lerp(this._minimumHeight,this._maximumHeight,c.z);return oZ(u,f,d,this._ellipsoid,this._translation,this._rotation,i)};function oZ(e,t,n,i,o,r,s){return s=vn.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}xg.DefaultMinBounds=Object.freeze(new h(-P.PI,-P.PI_OVER_TWO,-ee.WGS84.minimumRadius));xg.DefaultMaxBounds=Object.freeze(new h(P.PI,P.PI_OVER_TWO,10*ee.WGS84.maximumRadius));var iC=xg;var nf={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};nf.getMinBounds=function(e){switch(e){case nf.BOX:return ap.DefaultMinBounds;case nf.ELLIPSOID:return iC.DefaultMinBounds;case nf.CYLINDER:return cp.DefaultMinBounds}};nf.getMaxBounds=function(e){switch(e){case nf.BOX:return ap.DefaultMaxBounds;case nf.ELLIPSOID:return iC.DefaultMaxBounds;case nf.CYLINDER:return cp.DefaultMaxBounds}};nf.getShapeConstructor=function(e){switch(e){case nf.BOX:return ap;case nf.ELLIPSOID:return iC;case nf.CYLINDER:return cp}};var Ni=Object.freeze(nf);function Vh(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(Vh.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});Vh.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new Vh({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};Vh.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};Vh.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)uCe(this,t)};Vh.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,uCe(this,i),t};Vh.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],fCe(this,0)),this._array[e-1]=void 0,t};Vh.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=rZ(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&fCe(this,n)}return this._array[e-1]=void 0,t};Vh.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};Vh.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[rZ(this,1,2)?1:2]};function lG(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function XB(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function rZ(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function uCe(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=XB(e,t,i);for(o!==n&&(lG(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(XB(e,t,r)!==o)break;lG(e,t,r),t=r}}function fCe(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){XB(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;XB(e,f,r)===i&&(r=f)}}if(XB(e,r,t)===i&&(lG(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);rZ(e,r,a)===i&&lG(e,r,a)}t=r}}var oC=Vh;var dCe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function uG(e,t){this.spatialNode=e,this.keyframe=t,this.state=dCe.UNLOADED,this.metadata=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}uG.priorityComparator=function(e,t){return e.priority-t.priority};uG.searchComparator=function(e,t){return e.keyframe-t.keyframe};uG.LoadState=dCe;var Ji=uG;function O0(e,t,n,i,o){i===zt.UNSIGNED_SHORT&&(i=zt.FLOAT32);let r=e.floatingPointTexture;if(i===zt.FLOAT32&&!r)throw new ce("Floating point texture not supported");let s;i===zt.FLOAT32||i===zt.FLOAT64?s=Ke.FLOAT:i===zt.UINT8&&(s=Ke.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?Je.RED:Je.LUMINANCE:n===2?a=e.webgl2?Je.RG:Je.LUMINANCE_ALPHA:n===3?a=Je.RGB:n===4&&(a=Je.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=kt.maximumTextureSize,d=zt.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),m=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/m),b=m*t.x,T=x*t.y,C=Math.floor(g/b),A=Math.floor(g/T);if(C===0||A===0)throw new ce("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=C*A,this.regionCountPerMegatexture=new z(C,A),this.voxelCountPerRegion=new z(b,T),this.sliceCountPerRegion=new z(m,x),this.voxelSizeUv=new z(1/g,1/g),this.sliceSizeUv=new z(t.x/g,t.y/g),this.regionSizeUv=new z(b/g,T/g),this.texture=new Pt({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})});let E=zt.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(E,b*T*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new X0t(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function X0t(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}O0.prototype.add=function(e){if(this.isFull())throw new he("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};O0.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new he("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};O0.prototype.isFull=function(){return this.emptyList===void 0};O0.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===zt.UNSIGNED_SHORT&&(i=zt.FLOAT32);let o=zt.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.x)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};O0.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let b=x%o.x*i.x,T=Math.floor(x/o.x)*i.y;for(let C=0;C<i.y;C++)for(let A=0;A<i.x;A++){let E=x*i.y*i.x+C*i.x+A,v=(T+C)*r.x+(b+A);for(let D=0;D<s;D++)a[v*s+D]=n[E*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,m={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};O0.prototype.isDestroyed=function(){return!1};O0.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var hv=O0;function gd(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new vn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var K0t=new h;gd.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,K0t),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};gd.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,u=r+1,f=a+1,d=t+1,p=[[d,r,s,a],[d,u,s,a],[d,r,c,a],[d,u,c,a],[d,r,s,f],[d,u,s,f],[d,r,c,f],[d,u,c,f]];this.children=p.map(([g,m,x,b])=>new gd(g,m,x,b,this,e,this.dimensions))};gd.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};gd.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var hCe={keyframe:0};function KB(e,t){return hCe.keyframe=e,Po(t,hCe,Ji.searchComparator)}gd.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Z0t(i,d),g=d[p],m=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),x=d[m],b=i-g.keyframe,T=mCe(n-t.level,b);T<a&&(a=T,r=g);let C=x.keyframe-o,A=mCe(n-t.level,C);if(A<c&&(c=A,s=x),b===0&&C===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:P.clamp((e-u)/(f-u),0,1)};function Z0t(e,t){let n=KB(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function mCe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}gd.prototype.isVisited=function(e){return this.visitedFrameNumber===e};gd.prototype.createKeyframeNode=function(e){let t=KB(e,this.keyframeNodes);if(t<0){t=~t;let n=new Ji(this,e);this.keyframeNodes.splice(t,0,n)}};gd.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=KB(n,this.keyframeNodes);if(i<0)throw new he("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=KB(n,this.renderableKeyframeNodes);if(o<0)throw new he("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Ji.LoadState.UNLOADED,e.metadata={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};gd.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Ji.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadata.length!==t.length)throw new he("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadata[o])}e.state=Ji.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=KB(e.keyframe,n);if(i>=0)throw new he("Keyframe already renderable");i=~i,n.splice(i,0,e)};gd.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var ZB=gd;function bg(e,t,n,i,o,r,s){this._primitive=e,this.megatextures=new Array(i.length);for(let m=0;m<i.length;m++){let x=i[m],b=At.getComponentCount(x),T=o[m];this.megatextures[m]=new hv(t,n,b,T,s)}let a=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let c=e._shape;this.rootNode=new ZB(0,0,0,0,void 0,c,n),this._priorityQueue=new oC({maximumLength:a,comparator:Ji.priorityComparator}),this._highPriorityKeyframeNodes=new Array(a),this._keyframeNodesInMegatexture=new Array(a),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let u=this._binaryTreeKeyframeWeighting;u[0]=0,u[r-1]=0,sZ(u,1,r-2,0);let f=9,d=2048,p=Math.floor(d/f),g=Math.ceil(a/p);this.internalNodeTexture=new Pt({context:t,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:d,height:g,sampler:new $t({minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),this.internalNodeTilesPerRow=p,this.internalNodeTexelSizeUv=new z(1/d,1/g),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new z}bg.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function sZ(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,sZ(e,t,o-1,i+1),sZ(e,o+1,n,i+1)}bg.simultaneousRequestCountMaximum=50;bg.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let C=Math.floor(512),A=Math.ceil(s/C);this.leafNodeTexture=new Pt({context:r,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,flipY:!1,width:1024,height:A,sampler:new $t({minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),this.leafNodeTexelSizeUv=z.fromElements(1/1024,1/A,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=C}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&pCe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=xi();J0t(this,e);let m=xi();nxt(this,d,c);let x=xi();if(this._debugPrint){let b=m-g,T=x-m,C=x-g;txt(this,b,T,C)}};bg.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};bg.prototype.isDestroyed=function(){return!1};bg.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function pCe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];pCe(e,i)}}function $0t(e,t){if(e._simultaneousRequestCount>=bg.simultaneousRequestCountMaximum)return;let n=e._primitive._provider;function i(c){e._simultaneousRequestCount--;let u=n.types.length;if(!l(c))t.state=Ji.LoadState.UNAVAILABLE;else if(c===Ji.LoadState.FAILED)t.state=Ji.LoadState.FAILED;else if(!Array.isArray(c)||c.length!==u)t.state=Ji.LoadState.FAILED;else{let f=e.megatextures;for(let d=0;d<u;d++){let{voxelCountPerTile:p,channelCount:g}=f[d],{x:m,y:x,z:b}=p,T=m*x*b,C=c[d],A=T*g;if(C.length===A)t.metadata[d]=C,t.state=Ji.LoadState.RECEIVED;else{t.state=Ji.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=Ji.LoadState.FAILED}let{keyframe:r,spatialNode:s}=t,a=n.requestData({tileLevel:s.level,tileX:s.x,tileY:s.y,tileZ:s.z,keyframe:r});l(a)?(e._simultaneousRequestCount++,t.state=Ji.LoadState.RECEIVING,a.then(i).catch(o)):t.state=Ji.LoadState.FAILED}function Q0t(e){return e/(1+e)}function J0t(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,r=i.screenSpaceError,s=e._priorityQueue,a=e._keyframeCount,c=P.clamp(Math.floor(e._keyframeLocation),0,a-2),u=c+1,{camera:f,context:d,pixelRatio:p}=t,{positionWC:g,frustum:m}=f,b=d.drawingBufferHeight/p/m.sseDenominator;function T(N,_){if(N.computeScreenSpaceError(g,b),_=N.visibility(t,_),_===ps.MASK_OUTSIDE)return;if(N.visitedFrameNumber=n,a===1)N.createKeyframeNode(0);else if(N.keyframeNodes.length!==a)for(let B=0;B<a;B++)N.createKeyframeNode(B);let{screenSpaceError:S,keyframeNodes:w}=N,I=Q0t(S),L=!1;for(let B=0;B<w.length;B++){let U=w[B];U.priority=10*I+ext(c,U.keyframe,u,e),U.state!==Ji.LoadState.UNAVAILABLE&&U.state!==Ji.LoadState.FAILED&&U.priority!==-Number.MAX_VALUE&&s.insert(U),U.state===Ji.LoadState.LOADED&&(L=!0)}if(S<r||!L){N.children=void 0;return}l(N.children)||N.constructChildNodes(o);for(let B=0;B<8;B++){let U=N.children[B];T(U,_)}}s.reset(),T(e.rootNode,ps.MASK_INDETERMINATE);let C=e._highPriorityKeyframeNodes,A=0,E;for(;s.length>0;)E=s.removeMaximum(),E.highPriorityFrameNumber=n,C[A]=E,A++;let v=e._keyframeNodesInMegatexture,D=e.megatextures[0],O=D.occupiedCount;v.length=O,v.sort(function(N,_){return N.highPriorityFrameNumber===_.highPriorityFrameNumber?_.priority-N.priority:_.highPriorityFrameNumber-N.highPriorityFrameNumber});let R=0,M=0;for(let N=0;N<A;N++)if(E=C[N],!(E.state===Ji.LoadState.LOADED||E.spatialNode===void 0)&&(E.state===Ji.LoadState.UNLOADED&&$0t(e,E),E.state===Ji.LoadState.RECEIVED)){let _=0;if(D.isFull()){_=O-1-R,R++;let S=v[_];S.spatialNode.destroyKeyframeNode(S,e.megatextures)}else _=O+M,M++;E.spatialNode.addKeyframeNodeToMegatextures(E,e.megatextures),v[_]=E}}function ext(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return P.lerp(a,s,.15+.85*s)}function txt(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Ji.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let T=0;T<s;T++){let C=new Array(o);a[T]=C;for(let A=0;A<o;A++)C[A]=0;c[T]=0}function f(T){let C=T.keyframeNodes;for(let A=0;A<C.length;A++){let E=C[A],v=E.keyframe,D=E.state;a[D][v]+=1,c[D]+=1,u++}if(l(T.children))for(let A=0;A<8;A++){let E=T.children[A];f(E)}}f(r);let d=`KEYFRAMES: ${a[Ji.LoadState.LOADED]}`,p=`UNLOADED: ${c[Ji.LoadState.UNLOADED]} | RECEIVING: ${c[Ji.LoadState.RECEIVING]} | RECEIVED: ${c[Ji.LoadState.RECEIVED]} | LOADED: ${c[Ji.LoadState.LOADED]} | FAILED: ${c[Ji.LoadState.FAILED]} | UNAVAILABLE: ${c[Ji.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,m=Math.round(n*100)/100,x=Math.round(i*100)/100,b=`LOAD: ${g} | OCT: ${m} | ALL: ${x}`;console.log(`${d} || ${p} || ${b}`)}var fG={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function nxt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,m,x,b,T){let C=!1;if(l(g.children))for(let A=0;A<8;A++){let E=g.children[A];E.computeSurroundingRenderableKeyframeNodes(o),E.isRenderable(r)&&(C=!0)}if(C){u[T]=fG.INTERNAL<<16|m,u[x]=b,a++,b=m,T=b*9+1;for(let A=0;A<8;A++){let E=g.children[A];m=a,x=m*9+0,d(E,m,x,b,T+A)}}else{if(s){let A=c*5,E=g.renderableKeyframeNodePrevious,v=g.level-E.spatialNode.level,D=E.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:E,R=ixt(g,i,n),M=v,N=1,_=E.megatextureIndex,S=O.megatextureIndex;f[A+0]=R,f[A+1]=M,f[A+2]=N,f[A+3]=_,f[A+4]=S,u[T]=fG.LEAF<<16|c}else{let A=g.renderableKeyframeNodePrevious,v=g.level-A.spatialNode.level===0?fG.LEAF:fG.PACKED_LEAF_FROM_PARENT;u[T]=v<<16|A.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),oxt(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&rxt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function ixt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return P.clamp(s,0,1)}function oxt(e,t,n,i){let o=Je.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let m=0;m<o;m++)c[g+m]=p>>>m*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function rxt(e,t,n,i){let o=Je.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],m=e[p*r+1],x=e[p*r+2],b=e[p*r+3],T=e[p*r+4],C=P.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=C>>>0&255,u[p*8+1]=C>>>8&255,u[p*8+2]=m&255,u[p*8+3]=x&255,u[p*8+4]=b>>>0&255,u[p*8+5]=b>>>8&255,u[p*8+6]=T>>>0&255,u[p*8+7]=T>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}bg.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=At.getComponentCount(a);o+=hv.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var mv=bg;var sxt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},pv=Object.freeze(sxt);function axt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var $B=axt;function _v(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}_v.prototype.getTexture=function(e){return this._textures[e]};function cxt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}_v.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):cxt(this,e,t)};function lxt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?dG(o,r,n):uxt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function dG(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?gCe(e,n):new Pt({context:n,source:t,sampler:o});return _Ce(o)&&r.generateMipmap(),r}function uxt(e,t,n){let{typedArray:i,sampler:o}=e,r=_Ce(o),s=o.wrapS===Tn.REPEAT||o.wrapS===Tn.MIRRORED_REPEAT||o.wrapT===Tn.REPEAT||o.wrapT===Tn.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(P.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===Ke.UNSIGNED_BYTE){let d=$B(i,a,c),p=ly(d);return dG({sampler:o},p,n)}}else{let d=ly(t);return dG(e,d,n)}else return dG(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),gCe(e,n)}function _Ce(e){return[Zt.NEAREST_MIPMAP_NEAREST,Zt.NEAREST_MIPMAP_LINEAR,Zt.LINEAR_MIPMAP_NEAREST,Zt.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function gCe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Pt({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}_v.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];lxt(this,o,t)}n.length=0};_v.prototype.isDestroyed=function(){return!1};_v.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var QB=_v;function JB(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,m_.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,vy.INHERIT),this._textureManager=new QB,this._defaultTexture=void 0,this.uniformMap=fxt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},mxt(this),pxt(this)}function fxt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===pv.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=dxt(e,i)):n[i]=hxt(e,i)}return n}function dxt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function hxt(e,t){return function(){return e.uniforms[t].value}}function rC(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function mxt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,rC(r,t,o),o=e.usedVariablesVertex.featureIdSet,rC(r,n,o),o=e.usedVariablesVertex.metadataSet,rC(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,rC(s,t,o),o=e.usedVariablesFragment.featureIdSet,rC(s,n,o),o=e.usedVariablesFragment.metadataSet,rC(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;rC(s,a,c)}}function yCe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function Ic(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${yCe(t)} is not available in the ${i} shader. Did you mean ${yCe(n)} instead?`;throw new he(o)}}function pxt(e){let t=e.usedVariablesVertex.attributeSet;Ic(t,"position","positionMC","vertex"),Ic(t,"normal","normalMC","vertex"),Ic(t,"tangent","tangentMC","vertex"),Ic(t,"bitangent","bitangentMC","vertex"),Ic(t,"positionWC","positionMC","vertex"),Ic(t,"positionEC","positionMC","vertex"),Ic(t,"normalEC","normalMC","vertex"),Ic(t,"tangentEC","tangentMC","vertex"),Ic(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;Ic(n,"position","positionEC","fragment"),Ic(n,"normal","normalEC","fragment"),Ic(n,"tangent","tangentEC","fragment"),Ic(n,"bitangent","bitangentEC","fragment"),Ic(n,"normalMC","normalEC","fragment"),Ic(n,"tangentMC","tangentEC","fragment"),Ic(n,"bitangentMC","bitangentEC","fragment")}JB.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===pv.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};JB.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};JB.prototype.isDestroyed=function(){return!1};JB.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var sC=JB;function lp(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,lp.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._exaggeratedMinBounds=new h,this._exaggeratedMinBoundsOld=new h,this._exaggeratedMaxBounds=new h,this._exaggeratedMaxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._exaggeratedModelMatrix=F.clone(this._modelMatrix),this._compoundModelMatrix=new F,this._compoundModelMatrixOld=new F,this._customShader=y(e.customShader,lp.DefaultCustomShader),this._customShaderCompilationEvent=new me,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new F,this._transformPositionUvToWorld=new F,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new oh,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new z,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new z,megatextureTextures:[],megatextureSliceDimensions:new z,megatextureTileDimensions:new z,megatextureVoxelSizeUv:new z,megatextureSliceSizeUv:new z,megatextureTileSizeUv:new z,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new F,transformPositionUvToView:new F,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new oe,clippingPlanesTexture:void 0,clippingPlanesMatrix:new F,stepSize:0,pickColor:new H},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;_xt(this,i)}function _xt(e,t){let{shape:n,minBounds:i=Ni.getMinBounds(n),maxBounds:o=Ni.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Ni.getMinBounds(n),e.maxClippingBounds=Ni.getMaxBounds(n),e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e._exaggeratedModelMatrix=F.clone(e._modelMatrix,e._exaggeratedModelMatrix),bCe(e,t);let r=Ni.getShapeConstructor(n);e._shape=new r,e._shapeVisible=TCe(e,e._shape,t)}Object.defineProperties(lp.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=lp.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var gxt=new h,yxt=new oe,xxt=new oe,bxt=new h,Txt=new h,Cxt=new $,Axt=new $,Ext=new F,Sxt=new F,vxt=new F,wxt=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F),Dxt=F.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new F);lp.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){Lxt(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}Oxt(this,e);let i=bCe(this,t),o=this._shape;if(i&&(this._shapeVisible=TCe(this,o,t),Bxt(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=kxt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&qxt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),Vxt(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=z.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&(YB(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=Hxt(p,d,xxt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=oe.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;f.transformPositionViewToUv=F.multiplyTransformation(this._transformPositionWorldToUv,x,f.transformPositionViewToUv);let b=n.uniformState.view;f.transformPositionUvToView=F.multiplyTransformation(b,this._transformPositionUvToWorld,f.transformPositionUvToView);let T=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,T,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let C=e.camera.positionWC;f.cameraPositionUv=F.multiplyByPoint(this._transformPositionWorldToUv,C,f.cameraPositionUv),f.stepSize=this._stepSizeMultiplier;let A=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;A.boundingVolume=o.boundingSphere,e.commandList.push(A)};var Ixt=new h,aZ=new h,Pxt=new fe,Rxt=new h;function Oxt(e,t){if(e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e.shape===Ni.ELLIPSOID){let n=t.verticalExaggerationRelativeHeight,i=t.verticalExaggeration;e._exaggeratedMinBounds.z=(e._minBounds.z-n)*i+n,e._exaggeratedMaxBounds.z=(e._maxBounds.z-n)*i+n}else if(e.shape===Ni.BOX){let n=h.fromElements(1,1,t.verticalExaggeration,Ixt);e._exaggeratedModelMatrix=F.multiplyByScale(e._modelMatrix,n,e._exaggeratedModelMatrix),e._exaggeratedModelMatrix=F.multiplyByTranslation(e._exaggeratedModelMatrix,Mxt(e,t),e._exaggeratedModelMatrix)}}function Mxt(e,t){let{shapeTransform:n=F.IDENTITY,globalTransform:i=F.IDENTITY}=e._provider,o=F.getTranslation(n,aZ),r=F.multiplyByPoint(e._modelMatrix,o,aZ),s=F.multiplyByPoint(i,r,aZ),c=ee.WGS84.cartesianToCartographic(s,Pxt),u=0;l(c)&&(u=c.height);let f=Cr.getHeight(u,t.verticalExaggeration,t.verticalExaggerationRelativeHeight);return h.fromElements(0,0,(f-u)/t.verticalExaggeration,Rxt)}function Lxt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=H.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ge(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=Nxt(e,t,n),Fxt(e._traversal,i)}function bCe(e,t){let n=y(t.shapeTransform,F.IDENTITY),i=y(t.globalTransform,F.IDENTITY);return F.multiplyTransformation(i,e._exaggeratedModelMatrix,e._compoundModelMatrix),F.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),aC(e,"_compoundModelMatrix","_compoundModelMatrixOld")+aC(e,"_minBounds","_minBoundsOld")+aC(e,"_maxBounds","_maxBoundsOld")+aC(e,"_exaggeratedMinBounds","_exaggeratedMinBoundsOld")+aC(e,"_exaggeratedMaxBounds","_exaggeratedMaxBoundsOld")+aC(e,"_minClippingBounds","_minClippingBoundsOld")+aC(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function aC(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function TCe(e,t,n){if(!t.update(e._compoundModelMatrix,e._exaggeratedMinBounds,e._exaggeratedMaxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=F.inverse(o,Ext),s=F.getRotation(o,Cxt),a=F.getScale(o,bxt),c=h.maximumComponent(a),u=h.divideByScalar(a,c,Txt),f=$.multiplyByScale(s,u,Axt);return e._transformPositionWorldToUv=F.multiplyTransformation(wxt,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=F.multiplyTransformation(o,Dxt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=F.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function Nxt(e,t,n){let i=h.clone(t.dimensions,gxt);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?mv.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new mv(e,n,i,t.types,t.componentTypes,s,r)}function Fxt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=z.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=z.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=z.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=z.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=z.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=z.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function Bxt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ge(n,!0)),i}function kxt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=Z.secondsDifference(i.stop,i.start),a=Z.secondsDifference(n,i.start)/r;return o+a}function Vxt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=F.transpose(F.multiplyTransformation(F.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}lp.prototype.isDestroyed=function(){return!1};lp.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var xCe=new Array(new oe(-1,-1,-1,1),new oe(1,-1,-1,1),new oe(-1,1,-1,1),new oe(1,1,-1,1),new oe(-1,-1,1,1),new oe(1,-1,1,1),new oe(-1,1,1,1),new oe(1,1,1,1)),Uxt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),zxt=new Array(new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe);function Hxt(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,Sxt),o=F.multiply(t,i,vxt),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=zxt,d=xCe.length;for(u=0;u<d;u++)F.multiplyByVector(o,xCe[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,m=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,m),c=Math.max(c,m)}else for(let g=0;g<3;g++){let m=Uxt[u*3+g],x=f[m];if(x.z>=-x.w){let b=p.z+p.w,T=x.z+x.w,C=b/(b-T),A=oe.lerp(p,x,C,yxt),E=A.x/A.w,v=A.y/A.w;r=Math.min(r,E),s=Math.max(s,E),a=Math.min(a,v),c=Math.max(c,v)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=oe.fromElements(r,a,s,c,n),n}var cZ=3e7,Gxt=new h(cZ,0,0),Wxt=new h(0,cZ,0),jxt=new h(0,0,cZ);function qxt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:qi.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[H.RED,H.LIME,H.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let m=0;m<8;m++)s(c.children[m])}r(e._shape.orientedBoundingBox,H.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,Gxt,H.RED,a),o(h.ZERO,Wxt,H.LIME,a),o(h.ZERO,jxt,H.BLUE,a),i.update(t)}lp.DefaultCustomShader=new sC({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function CCe(){this.ready=!0,this.shape=Ni.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[At.SCALAR],this.componentTypes=[zt.FLOAT32],this.maximumTileCount=1}CCe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};lp.DefaultProvider=new CCe;var M0=lp;function Yxt(e,t,n,i){if(!l(e)||l(t)&&e.id!==t)return;let r=(e.classes||{})[n];if(!l(r))return;let a=(r.properties||{})[i];if(l(a))return a}var e3=Yxt;function Xxt(e,t,n,i){this.schemaId=e,this.className=t,this.propertyName=n,this.classProperty=i}var t3=Xxt;var mG=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function ci(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ge(e.contextOptions),r=l(n),s=new aP(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=Hn(),this._jobScheduler=new O2,this._frameState=new P2(s,new x2(n,"\u2022",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new mw(s),this._ellipsoid=y(e.ellipsoid,ee.default),this._globe=void 0,this._globeTranslucencyState=new R2,this._primitives=new jl,this._groundPrimitives=new jl,this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=ci.defaultLogDepthBuffer&&s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new JT,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new w2(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ei({color:new H,stencil:0,owner:this}),this._depthClearCommand=new ei({depth:1,owner:this}),this._stencilClearCommand=new ei({stencil:0}),this._classificationStencilClearCommand=new ei({stencil:0,renderState:Ve.fromCache({stencilMask:Vt.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new bB(this),this._preUpdate=new me,this._postUpdate=new me,this._renderError=new me,this._preRender=new me,this._postRender=new me,this._minimumDisableDepthTestDistance=0,this._debugInspector=new IB,this._msaaSamples=y(e.msaaSamples,4),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new me,this.morphComplete=new me,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=H.clone(H.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new vi(this._ellipsoid),this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.atmosphere=new _b,this.fog=new I2,this.fog.enabled=ee.WGS84.equals(this._ellipsoid),ee.WGS84.equals(this._ellipsoid)||(ro.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-45,-45,45,45)),this._shadowMapCamera=new ro(this),this.shadowMap=new mg({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=H.clone(H.WHITE),this._actualInvertClassificationColor=H.clone(this._invertClassificationColor),this._invertClassification=new sv,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new gB,this._brdfLutGenerator=new h2,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new EB(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,tu.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=ec.requestCompletedEvent.addEventListener(mG(this)),this._removeTaskProcessorListenerCallback=pi.taskCompletedEvent.addEventListener(mG(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new je(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new ro(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new ro(this),this.preloadFlightCullingVolume=void 0,this._picking=new X2(this),this._defaultView=new jT(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentCubeMap=void 0,this.light=new wp,wCe(this,0,Z.now()),this.updateFrameState(),this.initializeFrame()}ci.defaultLogDepthBuffer=!0;function Kxt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(mG(e))),n.push(t.terrainProviderChanged.addEventListener(mG(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(ci.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return kt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return kt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return zd.isSupported(this._context)}},ellipsoid:{get:function(){return this._ellipsoid}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Kxt(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new ro(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new D2(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,kt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});ci.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function Zxt(e,t){let n=e.pickedMetadataInfo,i=t.pickedMetadataInfo;return n?.schemaId!==i?.schemaId||n?.className!==i?.className||n?.propertyName!==i?.propertyName}function ACe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,{lightShadowMaps:s,lightShadowsEnabled:a}=i.shadowState,c=t.derivedCommands;l(t.pickId)&&(c.picking=ep.createPickDerivedCommand(e,t,o,c.picking)),i.pickingMetadata&&t.pickMetadataAllowed&&(t.pickedMetadataInfo=i.pickedMetadataInfo,l(t.pickedMetadataInfo)&&(c.pickingMetadata=ep.createPickMetadataDerivedCommand(e,t,o,c.pickingMetadata))),t.pickOnly||(c.depth=ep.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=ep.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=mg.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===ve.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}ci.prototype.updateDerivedCommands=function(e){let{derivedCommands:t}=e;if(!l(t))return;let n=this._frameState,{shadowState:i,useLogDepth:o}=this._frameState,r=this._context,s=!1,a=i.lastDirtyTime;e.lastDirtyTime!==a&&(e.lastDirtyTime=a,e.dirty=!0,s=!0);let c=this._hdr,u=l(t.logDepth),f=l(t.hdr),d=l(t.originalCommand),p=o&&!u,g=c&&!f,m=(!o||!c)&&!d,x=n.pickingMetadata&&Zxt(e,n);if(e.dirty=e.dirty||p||g||m||x,!e.dirty)return;e.dirty=!1;let{shadowsEnabled:b,shadowMaps:T}=i;b&&e.castShadows&&(t.shadows=mg.createCastDerivedCommand(T,e,s,r,t.shadows)),(u||p)&&(t.logDepth=ep.createLogDepthCommand(e,r,t.logDepth),ACe(this,t.logDepth.command,s)),(d||m)&&ACe(this,e,s)};var $xt=new hd({pass:Fo.RENDER}),lZ=new hd({pass:Fo.PRELOAD}),uZ=new hd({pass:Fo.PRELOAD_FLIGHT}),Qxt=new hd({pass:Fo.REQUEST_RENDER_MODE_DEFER_CHECK}),ECe=new se,fZ;function Jxt(e){if(!(e._mode!==ne.SCENE3D||!e.globe?.show||e._cameraUnderground||e._globeTranslucencyState.translucent))return ECe.radius=e.ellipsoid.minimumRadius+e.frameState.minimumTerrainHeight,fZ=u2.fromBoundingSphere(ECe,e.camera.positionWC,fZ),fZ}ci.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function wCe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=Z.clone(n,i.time)}ci.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Jxt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof rn||this.camera.frustum instanceof Lr),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready?(t.specularEnvironmentMaps=this._specularEnvironmentCubeMap.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentCubeMap.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=H.clone(this.invertClassificationColor,this._actualInvertClassificationColor),sv.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};ci.prototype.isVisible=function(e,t,n){if(!l(t))return!1;let{boundingVolume:i}=t;return!l(i)||!t.cull?!0:e.computeVisibility(i)===jt.OUTSIDE?!1:!l(n)||!t.occlude||!i.isOccluded(n)};var hG=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);hG=F.inverseTransformation(hG,hG);function ebt(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a=h.clone(s.center);if(o.mode!==ne.SCENE3D){a=F.multiplyByPoint(hG,a,a);let m=o.mapProjection,x=m.unproject(a);a=m.ellipsoid.cartographicToCartesian(x)}let c,u,{radius:f}=s;l(f)?(c=Qs.createGeometry(new Qs({radii:new h(f,f,f),vertexFormat:ln.FLAT_VERTEX_FORMAT})),u=F.fromTranslation(a)):(c=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:ln.FLAT_VERTEX_FORMAT})),u=F.fromRotationTranslation(s.halfAxes,a,new F)),t._debugVolume=new Dn({geometryInstances:new St({geometry:Ln.toWireframe(c),modelMatrix:u,attributes:{color:new Wt(1,0,0,1)}}),appearance:new ln({flat:!0,translucent:!1}),asynchronous:!1});let d=o.commandList,p=o.commandList=[];t._debugVolume.update(o),e=p[0],o.useLogDepth&&(e=ep.createLogDepthCommand(e,r).command);let g;l(i)&&(g=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(g)&&(n.framebuffer=g),o.commandList=d}function up(e,t,n,i){let o=t._frameState,r=t._context;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ei){e.execute(r,n);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&ebt(e,t,n,i),o.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth){if(o.pickingMetadata&&l(e.derivedCommands.pickingMetadata)){e=e.derivedCommands.pickingMetadata.pickMetadataCommand,e.execute(r,n);return}if(!o.pickingMetadata&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(r,n);return}}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(r,n);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,n);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(r,n):e.execute(r,n)}function SCe(e,t,n){let{derivedCommands:i}=e;if(!l(i))return;let o=t._frameState,r=t._context;o.useLogDepth&&l(i.logDepth)&&(e=i.logDepth.command);let{picking:s,pickingMetadata:a,depth:c}=e.derivedCommands;l(a)&&(e=i.pickingMetadata.pickMetadataCommand,e.execute(r,n)),l(s)?(e=s.pickCommand,e.execute(r,n)):l(c)&&(e=c.depthOnlyCommand,e.execute(r,n))}function DCe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function tbt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function nbt(e,t,n,i,o){ug(i,DCe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function ibt(e,t,n,i,o){ug(i,tbt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function obt(e,t,n){e.context.uniformState.updatePass(ve.VOXELS);let i=n.commands[ve.VOXELS];i.length=n.indices[ve.VOXELS],ug(i,DCe,e.camera.positionWC);for(let o=0;o<i.length;++o)up(i[o],e,t)}var rbt=new Si,sbt=new hl,abt=new rn,cbt=new Lr;function lbt(e){let{frustum:t}=e;return l(t.fov)?t.clone(rbt):l(t.infiniteProjectionMatrix)?t.clone(sbt):l(t.width)?t.clone(abt):t.clone(cbt)}function ubt(e){if(e._environmentState.useOIT){if(!l(e._executeOITFunction)){let{view:t,context:n}=e;e._executeOITFunction=function(i,o,r,s,a){t.globeDepth.prepareColorTextures(n),t.oit.executeCommands(i,o,r,s,a)}}return e._executeOITFunction}return e.frameState.passes.render?nbt:ibt}function fbt(e,t,n){let{frameState:i,context:o}=e,{pick:r,pickVoxel:s}=i.passes,a=r||s,c;!a&&e._environmentState.useInvertClassification&&i.invertClassificationColor.alpha<1&&(c=e._invertClassification);let u=ubt(e);o.uniformState.updatePass(ve.TRANSLUCENT);let f=n.commands[ve.TRANSLUCENT];f.length=n.indices[ve.TRANSLUCENT],u(e,up,t,f,c)}function dbt(e,t,n){let{translucentTileClassification:i,globeDepth:o}=e._view;if(!(n.indices[ve.CESIUM_3D_TILE_CLASSIFICATION]>0)||!i.isSupported())return;let s=n.commands[ve.TRANSLUCENT];i.executeTranslucentCommands(e,up,t,s,o.depthStencilTexture),i.executeClassificationCommands(e,up,t,n)}function hZ(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s=lbt(n);s.near=n.frustum.near,s.far=n.frustum.far;let a=o.passes,c=a.pick||a.pickVoxel;c||hbt(e,t);let{clearGlobeDepth:u,renderTranslucentDepthForPick:f,useDepthPlane:d,useGlobeDepthFramebuffer:p,useInvertClassification:g,usePostProcessSelected:m}=e._environmentState,{globeDepth:x,globeTranslucencyFramebuffer:b,sceneFramebuffer:T,frustumCommandsList:C}=e._view,A=C.length,E=e._globeTranslucencyState,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,R=e._depthPlane,M=n.position.z;function N(S,w){r.updatePass(w);let I=S.commands[w],L=S.indices[w];for(let B=0;B<L;++B)up(I[B],e,t);return L}function _(S,w){r.updatePass(w);let I=S.commands[w],L=S.indices[w];for(let B=0;B<L;++B)SCe(I[B],e,t)}for(let S=0;S<A;++S){let w=A-S-1,I=C[w];e.mode===ne.SCENE2D?(n.position.z=M-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),E.translucent?(r.updatePass(ve.GLOBE),E.executeGlobeCommands(I,up,b,e,t)):N(I,ve.GLOBE),p&&x.executeCopyDepth(i,t),f||(E.translucent?(r.updatePass(ve.TERRAIN_CLASSIFICATION),E.executeGlobeClassificationCommands(I,up,b,e,t)):N(I,ve.TERRAIN_CLASSIFICATION)),u&&(v.execute(i,t),d&&R.execute(i,t));let L;if(!g||c||f)L=N(I,ve.CESIUM_3D_TILE),L>0&&(p&&(x.prepareColorTextures(i,u),x.executeUpdateDepth(i,t,x.depthStencilTexture)),f||(L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION)));else{e._invertClassification.clear(i,t);let U=t.framebuffer;t.framebuffer=e._invertClassification._fbo.framebuffer,L=N(I,ve.CESIUM_3D_TILE),p&&(e._invertClassification.prepareTextures(i),x.executeUpdateDepth(i,t,e._invertClassification._fbo.getDepthStencilTexture())),L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),t.framebuffer=U,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),L>0&&i.stencilBuffer&&O.execute(i,t),L=N(I,ve.CESIUM_3D_TILE_CLASSIFICATION)}if(L>0&&i.stencilBuffer&&D.execute(i,t),obt(e,t,I),N(I,ve.OPAQUE),w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,r.updateFrustum(s)),fbt(e,t,I),dbt(e,t,I),i.depthTexture&&e.useDepthPicking&&(p||f)){let U=e._picking.getPickDepth(e,w);U.update(i,x.depthStencilTexture),U.executeCopyDepth(i,t)}if(c||!m)continue;let B=t.framebuffer;t.framebuffer=T.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),E.translucent?(r.updatePass(ve.GLOBE),E.executeGlobeCommands(I,SCe,b,e,t)):_(I,ve.GLOBE),u&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),u&&d&&R.execute(i,t),_(I,ve.CESIUM_3D_TILE),_(I,ve.OPAQUE),_(I,ve.TRANSLUCENT),t.framebuffer=B}}function hbt(e,t){let{context:n,environmentState:i,view:o}=e;if(n.uniformState.updatePass(ve.ENVIRONMENT),l(i.skyBoxCommand)&&up(i.skyBoxCommand,e,t),i.isSkyAtmosphereVisible&&up(i.skyAtmosphereCommand,e,t),i.isSunVisible&&(i.sunDrawCommand.execute(n,t),e.sunBloom&&!i.useWebVR)){let r;i.useGlobeDepthFramebuffer?r=o.globeDepth.framebuffer:i.usePostProcess?r=o.sceneFramebuffer.framebuffer:r=i.originalFramebuffer,e._sunPostProcess.execute(n),e._sunPostProcess.copy(n,r),t.framebuffer=r}i.isMoonVisible&&i.moonCommand.execute(n,t)}function ICe(e){e.context.uniformState.updatePass(ve.COMPUTE);let t=e._environmentState.sunComputeCommand;l(t)&&t.execute(e._computeEngine);let n=e._computeCommandList;for(let i=0;i<n.length;++i)n[i].execute(e._computeEngine)}function mbt(e,t){e.context.uniformState.updatePass(ve.OVERLAY);let n=e.context,i=e._overlayCommandList;for(let o=0;o<i.length;++o)i[o].execute(n,t)}function pbt(e,t,n){let{shadowMapCullingVolume:i,isPointLight:o,passes:r}=n,s=r.length,a=[ve.GLOBE,ve.CESIUM_3D_TILE,ve.OPAQUE,ve.TRANSLUCENT];for(let c=0;c<t.length;++c){let u=t[c];if(e.updateDerivedCommands(u),!(!u.castShadows||a.indexOf(u.pass)<0||!e.isVisible(i,u)))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(p,u))r[d].commandList.push(u),f=!0;else if(f)break}}}}function PCe(e){let{shadowState:t,commandList:n}=e.frameState,{shadowsEnabled:i,shadowMaps:o}=t;if(!i)return;let{context:r}=e,{uniformState:s}=r;for(let a=0;a<o.length;++a){let c=o[a];if(c.outOfView)continue;let{passes:u}=c;for(let f=0;f<u.length;++f)u[f].commandList.length=0;pbt(e,n,c);for(let f=0;f<u.length;++f){let d=c.passes[f],{camera:p,commandList:g}=d;s.updateCamera(p),c.updatePass(r,f);for(let m=0;m<g.length;++m){let x=g[m];s.updatePass(x.pass);let b=x.derivedCommands.shadows.castCommands[a];up(b,e,d.passState)}}}}var _bt=new h;ci.prototype.updateAndExecuteCommands=function(e,t){Ibt(this,e,t),this._environmentState.useWebVR?gbt(this,e,t):this._frameState.mode!==ne.SCENE2D||this._mapMode2D===tu.ROTATE?L0(!0,this,e):vbt(this,e)};function gbt(e,t){let n=e._view,i=n.camera,r=e._environmentState.renderTranslucentDepthForPick;RCe(e),n.createPotentiallyVisibleSet(e),ICe(e),r||PCe(e);let s=t.viewport;s.x=0,s.y=0,s.width=s.width*.5;let a=ro.clone(i,e._cameraVR);a.frustum=i.frustum;let c=i.frustum.near,u=c*y(e.focalLength,5),f=y(e.eyeSeparation,u/30),d=h.multiplyByScalar(a.right,f*.5,_bt);i.frustum.aspectRatio=s.width/s.height;let p=.5*f*c/u;h.add(a.position,d,i.position),i.frustum.xOffset=p,hZ(e,t),s.x=s.width,h.subtract(a.position,d,i.position),i.frustum.xOffset=-p,hZ(e,t),ro.clone(a,i)}var ybt=new fe(Math.PI,P.PI_OVER_TWO),xbt=new h,bbt=new h,Tbt=new F,Cbt=new F,Abt=new h,Ebt=new h,Sbt=new je;function vbt(e,t){let{frameState:n,camera:i}=e,{uniformState:o}=e.context,r=t.viewport,s=je.clone(r,Sbt);t.viewport=s;let a=ybt,c=xbt;e.mapProjection.project(a,c);let f=h.clone(i.position,bbt),d=F.clone(i.transform,Cbt),p=i.frustum.clone();i._setTransform(F.IDENTITY);let g=F.computeViewportTransformation(s,0,1,Tbt),m=i.frustum.projectionMatrix,x=i.positionWC.y,b=h.fromElements(P.sign(x)*c.x-x,0,-i.positionWC.x,Abt),T=Mt.pointToGLWindowCoordinates(m,g,b,Ebt);T.x=Math.floor(T.x);let C=s.x,A=s.width;if(x===0||T.x<=C||T.x>=C+A)L0(!0,e,t);else if(Math.abs(C+A*.5-T.x)<1)s.width=T.x-s.x,i.position.x*=P.sign(i.position.x),i.frustum.right=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=T.x,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t);else if(T.x>C+A*.5){s.width=T.x-C;let E=i.frustum.right;i.frustum.right=c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=T.x,s.width=C+A-T.x,i.position.x=-i.position.x,i.frustum.left=-i.frustum.right,i.frustum.right=E-i.frustum.right*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t)}else{s.x=T.x,s.width=C+A-T.x;let E=i.frustum.left;i.frustum.left=-c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!0,e,t),s.x=C,s.width=T.x-C,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=E-i.frustum.left*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),L0(!1,e,t)}i._setTransform(d),h.clone(f,i.position),i.frustum=p.clone(),t.viewport=r}function L0(e,t,n){let i=t._view,{renderTranslucentDepthForPick:o}=t._environmentState;e||(t.frameState.commandList.length=0),RCe(t),i.createPotentiallyVisibleSet(t),e&&(ICe(t),o||PCe(t)),hZ(t,n)}var vCe=new ps;ci.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof rn||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(t_.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let T=r.dynamicLighting;s.setDynamicLighting(T),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let b=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(b)?b.drawCommand:void 0,n.sunComputeCommand=l(b)?b.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let u=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=u&&this.mode===ne.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let d=e.mode===ne.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,g=vCe.planes;for(let b=0;b<5;++b)g[b]=p.planes[b];p=vCe,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(p,n.sunDrawCommand,d),n.isMoonVisible=this.isVisible(p,n.moonCommand,d);let m=this.specularEnvironmentMaps,x=this._specularEnvironmentCubeMap;l(m)&&x?.url!==m?(x=x&&x.destroy(),this._specularEnvironmentCubeMap=new zd(m)):!l(m)&&l(x)&&(x.destroy(),this._specularEnvironmentCubeMap=void 0),l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.update(e)};function wbt(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new Jm({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function Dbt(e){let t=e._frameState,{passes:n,shadowState:i,shadowMaps:o}=t,r=o.length,s=r>0&&!n.pick&&!n.pickVoxel&&e.mode===ne.SCENE3D;if(s!==i.shadowsEnabled&&(++i.lastDirtyTime,i.shadowsEnabled=s),i.lightShadowsEnabled=!1,!!s){for(let a=0;a<r;++a)if(o[a]!==i.shadowMaps[a]){++i.lastDirtyTime;break}i.shadowMaps.length=0,i.lightShadowMaps.length=0;for(let a=0;a<r;++a){let c=o[a];c.update(t),i.shadowMaps.push(c),c.fromLightSource&&(i.lightShadowMaps.push(c),i.lightShadowsEnabled=!0),c.dirty&&(++i.lastDirtyTime,c.dirty=!1)}}}function RCe(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),wbt(e),Dbt(e),e._globe&&e._globe.render(t)}function Ibt(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=o.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new wB:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;H.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let m=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||m.length>0||m.ambientOcclusion.enabled||m.fxaa.enabled||m.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),m.update(i,o.useLogDepth,e._hdr),m.clear(i),x=r.usePostProcess=m.ready,r.usePostProcessSelected=x&&m.hasSelected),r.isSunVisible&&e.sunBloom&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let T;if(o.invertClassificationColor.alpha===1&&d&&(T=s.globeDepth.framebuffer),l(T)||i.depthTexture){if(e._invertClassification.previousFramebuffer=T,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),o.invertClassificationColor.alpha<1&&g){let C=e._invertClassification.unclassifiedCommand,A=C.derivedCommands;A.oit=p.createDerivedCommands(C,i,A.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}ci.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,{globeDepth:o,translucentTileClassification:r}=i;l(o)&&o.prepareColorTextures(t);let{useOIT:s,useGlobeDepthFramebuffer:a,usePostProcess:c,originalFramebuffer:u}=n,f=a?o.colorFramebufferManager:void 0,d=i.sceneFramebuffer._colorFramebuffer,p=i.sceneFramebuffer.idFramebuffer;if(s&&(e.framebuffer=c?d.framebuffer:u,i.oit.execute(t,e)),r.hasTranslucentDepth&&r.isSupported()&&r.execute(this,e),c){i.sceneFramebuffer.prepareColorTextures(t);let g=d;a&&!s&&(g=f);let m=this.postProcessStages,x=g.getColorTexture(0),b=p.getColorTexture(0),T=y(f,d).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,u)}!s&&!c&&a&&(e.framebuffer=u,o.executeCopyColor(t,e))};function Pbt(e){let t=e._frameState.afterRender;for(let n=0;n<t.length;++n)t[n]()&&e.requestRender();t.length=0}function Rbt(e){if(e.mode===ne.MORPHING)return;let t=e.camera.positionCartographic;return e.getHeight(t)}ci.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===Ye.CLAMP_TO_TERRAIN||t===Ye.RELATIVE_TO_TERRAIN,i=t===Ye.CLAMP_TO_3D_TILE||t===Ye.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=this.primitives.length;for(let a=0;a<s;++a){let c=this.primitives.get(a);if(!c.isCesium3DTileset||!c.show||!c.enableCollision)continue;let u=c.getHeight(e,this);l(u)&&u>o&&(o=u)}}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var dZ=new fe;ci.prototype.updateHeight=function(e,t,n){let i=()=>{fe.clone(e,dZ);let g=this.getHeight(e,n);l(g)&&(dZ.height=g,t(dZ))},o=n===Ye.CLAMP_TO_TERRAIN||n===Ye.RELATIVE_TO_TERRAIN,r=n===Ye.CLAMP_TO_3D_TILE||n===Ye.RELATIVE_TO_3D_TILE,s;!r&&l(this.globe)&&(s=this.globe._surface.updateHeight(e,i));let a={},c=this._ellipsoid,u=g=>{if(o||g.isDestroyed()||!g.isCesium3DTileset)return;let m=g.updateHeight(e,i,c);a[g.id]=m};if(!o){let g=this.primitives.length;for(let m=0;m<g;++m){let x=this.primitives.get(m);u(x)}}let f=this.primitives.primitiveAdded.addEventListener(u),d=this.primitives.primitiveRemoved.addEventListener(g=>{g.isDestroyed()||!g.isCesium3DTileset||(l(a[g.id])&&a[g.id](),delete a[g.id])});return()=>{s=s&&s(),Object.values(a).forEach(g=>g()),a={},f(),d()}};function Obt(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===ne.SCENE2D||n===ne.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}ci.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=Rbt(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=Obt(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function Mbt(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new fg({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function Lbt(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function Nbt(e){e.primitives.postPassesUpdate(e._frameState),ec.update()}var Fbt=new H;function Bbt(e){let t=e._frameState,n=e.context,{uniformState:i}=n,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=$xt;let r=y(e.backgroundColor,H.BLACK);e._hdr&&(r=H.clone(r,Fbt),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof wp?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=je.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,mbt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function cC(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function kbt(e){return e._picking.updateMostDetailedRayPicks(e)}ci.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=Z.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(Z.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=Z.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);wCe(this,o,e),t.newFrame=!0}cC(this,Lbt),this.primitives.show&&(cC(this,kbt),cC(this,Vbt),cC(this,Ubt),i||cC(this,zbt)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),cC(this,Bbt)),Mbt(this,i),cC(this,Nbt),Pbt(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};ci.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};ci.prototype.requestRender=function(){this._renderRequested=!0};ci.prototype.clampLineWidth=function(e){return Math.max(kt.minimumAliasedLineWidth,Math.min(e,kt.maximumAliasedLineWidth))};ci.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};ci.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof M0))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return PB.fromKeyframeNode(o,s,c,a)};ci.prototype.pickMetadata=function(e,t,n,i){let o=this.pick(e);if(!l(o))return;let r=o.detail?.model?.structuralMetadata?.schema,s=e3(r,t,n,i);if(!l(s))return;let a=new t3(t,n,i,s);return this._picking.pickMetadata(this,e,a)};ci.prototype.pickMetadataSchema=function(e){let t=this.pick(e);return l(t)?t.detail?.model?.structuralMetadata?.schema:void 0};ci.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};ci.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};ci.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function Vbt(e){let t=e._frameState;lZ.camera=t.camera,lZ.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,lZ)}function Ubt(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;uZ.camera=e.preloadFlightCamera,uZ.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,uZ)}function zbt(e){e.primitives.updateForPass(e._frameState,Qxt)}ci.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};ci.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};ci.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};ci.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};ci.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};ci.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};ci.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};ci.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};ci.prototype.cartesianToCanvasCoordinates=function(e,t){return Ui.worldToWindowCoordinates(this,e,t)};ci.prototype.completeMorph=function(){this._transitioner.completeMorph()};ci.prototype.morphTo2D=function(e){e=y(e,2),this._transitioner.morphTo2D(e,this._ellipsoid)};ci.prototype.morphToColumbusView=function(e){e=y(e,2),this._transitioner.morphToColumbusView(e,this._ellipsoid)};ci.prototype.morphTo3D=function(e){e=y(e,2),this._transitioner.morphTo3D(e,this._ellipsoid)};function Hbt(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}ci.prototype.setTerrain=function(e){return Hbt(this,e),e};ci.prototype.isDestroyed=function(){return!1};ci.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),ue(this)};var n3=ci;var gv=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var i3=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_pbrNeutralTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var o3=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function yv(e){e=y(e,ee.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=F.fromScale(n),this._modelMatrix=new F,this._command=new Ze({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(yv.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});yv.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var mZ=new F;yv.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,mZ),o=F.multiplyTransformation(i,Oo.Y_UP_TO_Z_UP,mZ),r=F.multiply(this._scaleMatrix,o,mZ);F.clone(r,this._modelMatrix);let s=e.context,a=Gbt(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=Qs.createGeometry(new Qs({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Ie.POSITION_ONLY}));f.vertexArray=ti.fromGeometry({context:s,geometry:p,attributeLocations:Ln.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:gi.FRONT},blending:un.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new Ue({defines:p,sources:[Zd,gv,o3]}),m=new Ue({defines:p,sources:[Zd,gv,i3]});this._spSkyAtmosphere=Qt.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function Gbt(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}yv.prototype.isDestroyed=function(){return!1};yv.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var r3=yv;var s3=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var a3=`in vec3 position; +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function bv(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new Ze({modelMatrix:F.clone(F.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}bv.prototype.update=function(e,t){let n=this,{mode:i,passes:o,context:r}=e;if(!this.show||i!==ne.SCENE3D&&i!==ne.MORPHING||!o.render)return;if(this._sources!==this.sources){this._sources=this.sources;let a=this.sources;typeof a.positiveX=="string"?dP(r,this._sources).then(function(c){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=c}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new br({context:r,source:a}))}let s=this._command;if(!l(s.vertexArray)){s.uniformMap={u_cubeMap:function(){return n._cubeMap}};let a=Da.createGeometry(Da.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Ie.POSITION_ONLY})),c=this._attributeLocations=Ln.createAttributeLocations(a);s.vertexArray=ti.fromGeometry({context:r,geometry:a,attributeLocations:c,bufferUsage:Fe.STATIC_DRAW}),s.renderState=Ve.fromCache({blending:un.ALPHA_BLEND})}if(!l(s.shaderProgram)||this._useHdr!==t){let a=new Ue({defines:[t?"HDR":""],sources:[s3]});s.shaderProgram=Qt.fromCache({context:r,vertexShaderSource:a3,fragmentShaderSource:a,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return s};bv.prototype.isDestroyed=function(){return!1};bv.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};function xv(e){return nn(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}bv.createEarthSkyBox=function(){return new bv({sources:{positiveX:xv("px"),negativeX:xv("mx"),positiveY:xv("py"),negativeY:xv("my"),positiveZ:xv("pz"),negativeZ:xv("mz")}})};var c3=bv;var l3=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var u3=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var f3=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function h3(){this.show=!0,this._drawCommand=new Ze({primitiveType:Me.TRIANGLES,boundingVolume:new se,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new se,this._boundingVolume2D=new se,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(h3.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var Wbt=new z,jbt=new z,qbt=new oe,d3=new oe;h3.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let E=Math.max(r,s);E=Math.pow(2,Math.ceil(Math.log(E)/Math.log(2))-2),E=Math.max(1,E);let v=n?o.halfFloatingPointTexture?Ke.HALF_FLOAT:Ke.FLOAT:Ke.UNSIGNED_BYTE;this._texture=new Pt({context:o,width:E,height:E,pixelFormat:Je.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new Nc({fragmentShaderSource:u3,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let E={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=_t.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:E.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],R=_t.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});a.vertexArray=new ti({context:o,attributes:O,indexBuffer:R}),a.shaderProgram=Qt.fromCache({context:o,vertexShaderSource:f3,fragmentShaderSource:l3,attributeLocations:E}),a.renderState=Ve.fromCache({blending:un.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?se.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&se.clone(d,a.boundingVolume);let p=Ui.computeActualEllipsoidPosition(e,c,d3),g=h.magnitude(h.subtract(p,e.camera.position,d3)),m=o.uniformState.projection,x=qbt;x.x=0,x.y=0,x.z=-g,x.w=1;let b=F.multiplyByVector(m,x,d3),T=Ui.clipToGLWindowCoordinates(t.viewport,b,Wbt);x.x=P.SOLAR_RADIUS;let C=F.multiplyByVector(m,x,d3),A=Ui.clipToGLWindowCoordinates(t.viewport,C,jbt);return this._size=z.magnitude(z.subtract(A,T,d3)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};h3.prototype.isDestroyed=function(){return!1};h3.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var m3=h3;var LCe=Vo(tV(),1);function Ybt(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var p3=Ybt;var Xbt={modifyFragmentShader:function(t){return t=Ue.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},Tv=Xbt;var lC={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function _3(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=H.clone(H.DARKGRAY),this._highlightColor=H.clone(H.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=lC.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,ve.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=F.clone(F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.time=0,this.shadows=yn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,Nr.NONE),this._splittingEnabled=!1,this._error=void 0,Kbt(this,e)}Object.defineProperties(_3.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return H.clone(this._highlightColor)},set:function(e){this._highlightColor=H.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=se.clone(e,this._boundingSphere)}}});function Kbt(e,t){let n=Eb.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=Gp.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=lC.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=H.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var Zbt=new h,$bt=new h,Qbt=new h,OCe,pG;function Jbt(e){if(!l(pG)){OCe=new LCe.default(0),pG=new Array(e);for(let t=0;t<e;++t)pG[t]=OCe.random()}return pG}function eTt(e){let n=e.length/3,i=Math.min(n,20),o=Jbt(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,Zbt),c=h.fromElements(s,s,s,$bt);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=h.unpack(e,d*3,Qbt);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let u=se.fromCornerPoints(a,c);return u.radius+=P.EPSILON2,u}function MCe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(xt("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var tTt=new oe,nTt=new oe,iTt=new H,NCe=0,_G=1,xZ=2,FCe=3,oTt=4,pZ=new F,rTt=new F;function sTt(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,x=e._quantizedRange,b=e._octEncodedRange,T=e._isRGB565,C=e._isTranslucent,A=e._hasColors,E=e._hasNormals,v=e._hasBatchIds,D,O,R=[],M={};if(e._styleableShaderAttributes=M,f){let V=oTt;for(let G in u)if(u.hasOwnProperty(G)){let k=u[G],W=MCe(k.typedArray,G);D=k.componentCount,O=X.fromTypedArray(W);let q=_t.createVertexBuffer({context:n,typedArray:W,usage:Fe.STATIC_DRAW});e._geometryByteLength+=q.sizeInBytes;let J={index:V,vertexBuffer:q,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};R.push(J),M[G]={location:V,componentCount:D},++V}}let N=_t.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=N.sizeInBytes;let _;A&&(_=_t.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let S;E&&(S=_t.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=S.sizeInBytes);let w;v&&(c.typedArray=MCe(c.typedArray,"batchIds"),w=_t.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:NCe,vertexBuffer:N,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=se.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=eTt(r.typedArray)),A)if(T)I.push({index:_G,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=C?4:3;I.push({index:_G,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}E&&(g?(D=2,O=X.UNSIGNED_BYTE):m?(D=2,O=b<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:xZ,vertexBuffer:S,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:FCe,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(R));let L=new ti({context:n,attributes:I}),B={depthTest:{enabled:!0}},U={depthTest:{enabled:!0},depthMask:!1,blending:un.ALPHA_BLEND};e._opaquePass===ve.CESIUM_3D_TILE&&(B.stencilTest=Vt.setCesium3DTileBit(),B.stencilMask=Vt.CESIUM_3D_TILE_MASK,U.stencilTest=Vt.setCesium3DTileBit(),U.stencilMask=Vt.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ve.fromCache(B),e._translucentRenderState=Ve.fromCache(U),e._drawCommand=new Ze({boundingVolume:new se,cull:e._cull,modelMatrix:new F,primitiveType:Me.POINTS,vertexArray:L,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:C?e._translucentRenderState:e._opaqueRenderState,pass:C?ve.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function aTt(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=tTt;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof rn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return H.TRANSPARENT;let c=H.clone(a.edgeColor,iTt);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return F.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);F.multiply(n.uniformState.view3D,c,pZ);let u=F.multiply(pZ,a.modelMatrix,pZ);return F.inverseTranspose(u,rTt)}};Tv.addUniforms(e,s),(i||o||r)&&(s=yt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=nTt;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function _Z(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function gZ(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function yZ(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var cTt={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function lTt(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,m=e._hasColors,x=e._hasNormals,b=e._hasBatchIds,T=e._backFaceCulling,C=e._normalShading,A=e._drawCommand.vertexArray,E=e.clippingPlanes,v=e._attenuation,D,O,R,M=g,N=Ge(cTt),_={},S=e._styleableShaderAttributes;for(o in S)S.hasOwnProperty(o)&&(r=S[o],N[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let ae={translucent:!1},_e="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${_e}`,N,ae),O=n.getShowShaderFunction(`getShowFromStyle${_e}`,N,ae),R=n.getPointSizeShaderFunction(`getPointSizeFromStyle${_e}`,N,ae),l(D)&&ae.translucent&&(M=!0)}e._styleTranslucent=M;let w=l(D),I=l(O),L=l(R),B=e.isClipped,U=[],V=[];w&&(_Z(D,U),gZ(D,V)),I&&(_Z(O,U),gZ(O,V)),L&&(_Z(R,U),gZ(R,V));let G=V.indexOf("COLOR")>=0,k=V.indexOf("NORMAL")>=0;if(k&&!x)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");for(o in S)if(S.hasOwnProperty(o)){r=S[o];let ae=U.indexOf(r.location)>=0,_e=yZ(A,r.location);_e.enabled=ae}let W=m&&(!w||G);if(m){let ae=yZ(A,_G);ae.enabled=W}let q=x&&(C||T||k);if(x){let ae=yZ(A,xZ);ae.enabled=q}let J={a_position:NCe};W&&(J.a_color=_G),q&&(J.a_normal=xZ),b&&(J.a_batchId=FCe);let j="",K=U.length;for(i=0;i<K;++i){let ae=U[i];r=_[ae];let _e=r.componentCount,xe=`czm_3dtiles_property_${ae}`,De;_e===1?De="float":De=`vec${_e}`,j+=`in ${De} ${xe}; +`,J[xe]=r.location}aTt(e,t);let Q=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;Q+=`float u_pointSize; +float tiles3d_tileset_time; +`,v&&(Q+=`float u_geometricError; +float u_depthMultiplier; +`),Q+=j,W&&(g?Q+=`in vec4 a_color; +`:p?Q+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:Q+=`in vec3 a_color; +`),q&&(f||d?Q+=`in vec2 a_normal; +`:Q+=`in vec3 a_normal; +`),b&&(Q+=`in float a_batchId; +`),(c||u||d)&&(Q+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),w&&(Q+=D),I&&(Q+=O),L&&(Q+=R),Q+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,v&&(Q+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),W?g?Q+=` vec4 color = a_color; +`:p?Q+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:Q+=` vec4 color = vec4(a_color, 1.0); +`:Q+=` vec4 color = u_constantColor; +`,c||u?Q+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:Q+=` vec3 position = a_position; +`,Q+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,q?(f?Q+=` vec3 normal = czm_octDecode(a_normal); +`:d?Q+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:Q+=` vec3 normal = a_normal; +`,Q+=` vec3 normalEC = czm_normal * normal; +`):Q+=` vec3 normal = vec3(1.0); +`,w&&(Q+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(Q+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),L?Q+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:v?Q+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:Q+=` gl_PointSize = u_pointSize; +`,Q+=` color = color * u_highlightColor; +`,q&&C&&(Q+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),Q+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,q&&T&&(Q+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(Q+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),Q+=`} +`;let de=`in vec4 v_color; +`;B&&(de+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,de+=` +`,de+=og(E,s),de+=` +`),de+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,B&&(de+=p3("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),de+=`} +`,e.splitDirection!==Nr.NONE&&(de=Tv.modifyFragmentShader(de)),l(e._vertexShaderLoaded)&&(Q=e._vertexShaderLoaded(Q)),l(e._fragmentShaderLoaded)&&(de=e._fragmentShaderLoaded(de));let ye=e._drawCommand;l(ye.shaderProgram)&&ye.shaderProgram.destroy(),ye.shaderProgram=Qt.fromCache({context:s,vertexShaderSource:Q,fragmentShaderSource:de,attributeLocations:J});try{ye.shaderProgram._bind()}catch{throw new ce("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function uTt(e,t){if(e._decodingState===lC.READY)return!1;if(e._decodingState===lC.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=Zp.decodePointCloud(i,t);l(o)&&(e._decodingState=lC.DECODING,o.then(function(r){e._decodingState=lC.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let b=r.POSITION.data.quantization,T=b.range;e._quantizedVolumeScale=h.fromElements(T,T,T),e._quantizedVolumeOffset=h.unpack(b.minValues),e._quantizedRange=(1<<b.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,m=i.batchTableProperties;for(let b in m)if(m.hasOwnProperty(b)){let T=r[b];l(g)||(g={}),g[b]={typedArray:T.array,componentCount:T.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let x=y(c,a);l(x)&&(n.colors={typedArray:x}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=lC.FAILED,e._error=r}))}return!0}var fTt=new oe,dTt=new h;_3.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(uTt(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(sTt(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,u),l(this._rtcCenter)&&F.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&F.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=F.getColumn(u,3,fTt);oe.equals(p,oe.UNIT_W)||Mt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(se.clone(this._boundingSphere,f),this._cull){let d=f.center;F.multiplyByPoint(u,d,d);let p=F.getScale(u,dTt);f.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==Nr.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&lTt(this,e,this._style),this._drawCommand.castShadows=yn.castShadows(this.shadows),this._drawCommand.receiveShadows=yn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?ve.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};_3.prototype.isDestroyed=function(){return!1};_3.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var g3=_3;function fC(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.shadows=y(e.shadows,yn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new gm(e.shading),this.style=e.style,this.frameFailed=new me,this.frameChanged=new me,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new a_,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(fC.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){_s.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function hTt(e){return`uniform vec4 czm_pickColor; +${e}`}function mTt(e){return function(t){return yt(t,{czm_pickColor:function(){return e._pickId.color}})}}function pTt(){return"czm_pickColor"}fC.prototype.makeStyleDirty=function(){this._styleDirty=!0};fC.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var _Tt=new Z;function TZ(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function uC(e,t){return e._intervals.indexOf(t.start)}function gTt(e,t){let n=e._intervals,i=e._clock,o=TZ(e);if(o===0)return;let r=e._getAverageLoadTime(),s=Z.addSeconds(i.currentTime,r*o,_Tt),a=n.indexOf(s),c=uC(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function yTt(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function xTt(e,t,n){let i=TZ(e),o=uC(e,t),r=uC(e,n);return i>=0?o>=r:o<=r}function kCe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function bTt(e,t,n){let i=uC(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:xi(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,we.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new g3({arrayBuffer:u,cull:!0,fragmentShaderLoaded:hTt,uniformMapLoaded:mTt(e),pickIdLoaded:pTt})}).catch(kCe(e,c))}return r}function TTt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function CTt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(VCe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(xi()-t.timestamp)/1e3;TTt(e,a)}}t.touchedFrameNumber=i.frameNumber}var ATt=new F;function ETt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function STt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var vTt=new gm;function VCe(e,t,n,i){let o=y(e.shading,vTt),r=t.pointCloud,s=y(t.transform,F.IDENTITY);r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,ATt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=ETt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=STt(e);try{r.update(i)}catch(a){kCe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function bZ(e,t,n,i){let o=bTt(e,t,i);CTt(e,o,n,i)}function wTt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function UCe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function DTt(e,t){let n=uC(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function BCe(e,t,n,i,o){return l(n)?n.ready?!0:(bZ(e,t,i,o),n.ready):!1}function ITt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=uC(e,n),d=uC(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],BCe(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],BCe(e,s,a,i,o))return s;return t}function PTt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var Cv={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};fC.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=Z.clone(e.time));let t=Math.max(Z.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&PTt(this,o,s),Cv.timeSinceLoad=t,Cv.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=yTt(this);if(!l(g))return;let m=!1,x=TZ(this),b=x===0;x!==this._clockMultiplier&&(m=!0,this._clockMultiplier=x),(!l(d)||b)&&(d=g),(!l(p)||m||xTt(this,g,p))&&(p=gTt(this,g)),d=ITt(this,d,g,Cv,e);let T=DTt(this,d);l(T)||(bZ(this,d,Cv,e),T=this._lastRenderedFrame),l(T)&&VCe(this,T,Cv,e),l(p)&&bZ(this,p,Cv,e);let C=this;l(T)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(T)&&T!==this._lastRenderedFrame&&C.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return C.frameChanged.raiseEvent(C),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=T;let A=this._totalMemoryUsageInBytes,E=this.maximumMemoryUsage*1024*1024;A>E&&UCe(this,wTt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};fC.prototype.isDestroyed=function(){return!1};fC.prototype.destroy=function(){return UCe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var Av=fC;function zCe(e,t){if(l(t)){let n=t.clock;l(n)&&n.getValue(e)}}function RTt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function HCe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function GCe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=HCe(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function WCe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Do(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=Ht.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=Ht.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?In(t.creditContainer):n;c.appendChild(a);let u=l(t.creditViewport)?In(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=u,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._entityView=void 0,this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._trackedEntityChanged=new me,this._allowDataSourcesToSuspendAnimation=!0,this._clock=l(t.clock)?t.clock:new hh,l(t.shouldAnimate)&&(this._clock.shouldAnimate=t.shouldAnimate),GCe(this);try{let p=y(t.ellipsoid,ee.default),g=new n3({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,ellipsoid:p,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=g,g.camera.constrainedAxis=h.UNIT_Z,HCe(this),WCe(this);let m=t.globe;l(m)||(m=new i2(p)),m!==!1&&(g.globe=m,g.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let x=t.skyBox;!l(x)&&ee.WGS84.equals(p)&&(x=c3.createEarthSkyBox()),x!==!1&&(g.skyBox=x,g.sun=new m3,ee.WGS84.equals(p)&&(g.moon=new l2));let b=t.skyAtmosphere;!l(b)&&ee.WGS84.equals(p)&&(b=new r3(p),b.show=t.globe!==!1&&m.show),b!==!1&&(g.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(l(T)||(T=Ga.fromWorldImagery()),g.imageryLayers.add(T)),l(t.terrainProvider)&&t.globe!==!1&&(g.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&g.setTerrain(t.terrain),this._screenSpaceEventHandler=new Ju(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let C=this;this._onRenderError=function(R,M){C._useDefaultRenderLoop=!1,C._renderLoopRunning=!1,C._showRenderLoopErrors&&C.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,M)},g.renderError.addEventListener(this._onRenderError);let A=t.dataSources,E=!1;l(A)||(A=new sN,E=!0);let v=new WN({scene:g,dataSourceCollection:A}),D=new fr;this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=t.automaticallyTrackDataSourceClocks??!0,this._dataSourceCollection=A,this._destroyDataSourceCollection=E,this._dataSourceDisplay=v,this._eventHelper=D,this._canAnimateUpdateCallback=this._updateCanAnimate,D.add(this._clock.onTick,Do.prototype._onTick,this),D.add(g.morphStart,Do.prototype._clearTrackedObject,this),D.add(A.dataSourceAdded,Do.prototype._onDataSourceAdded,this),D.add(A.dataSourceRemoved,Do.prototype._onDataSourceRemoved,this),D.add(g.postRender,Do.prototype._postRender,this);let O=A.length;for(let R=0;R<O;R++)this._dataSourceAdded(A,A.get(R));this._dataSourceAdded(void 0,v.defaultDataSource),D.add(A.dataSourceAdded,Do.prototype._dataSourceAdded,this),D.add(A.dataSourceRemoved,Do.prototype._dataSourceRemoved,this)}catch(p){throw f&&this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',p),p}}Object.defineProperties(Do.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},camera:{get:function(){return this._scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&RTt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,CZ(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(F.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,zCe(this.clock,e))}}});Do.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=Ym(n);u||(typeof n=="string"&&(n=new Error(n)),t=Ym({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${m}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let b=document.createElement("span");b.className="cesium-widget-errorPanel-more-details",b.appendChild(document.createTextNode("See more...")),x.appendChild(b),x.onclick=function(T){x.removeChild(b),x.appendChild(document.createTextNode(m)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};Do.prototype.isDestroyed=function(){return!1};Do.prototype.destroy=function(){let e=this.dataSources,t=e.length;for(let n=0;n<t;n++)this._dataSourceRemoved(e,e.get(n));this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),this._eventHelper.removeAll(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Do.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,GCe(this),WCe(this),this._scene.requestRender())};Do.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};Do.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Do.prototype._onEntityCollectionChanged,this)};Do.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Do.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0)};Do.prototype._updateCanAnimate=function(e){this._clock.canAnimate=e};var Ev=new se;Do.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&this._canAnimateUpdateCallback(n);let i=this._entityView;if(l(i)){let o=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(o,!0,Ev)===ct.DONE&&i.update(t,Ev)}};Do.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0)}};Do.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Do.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&zCe(this.clock,e)};Do.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Do.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Do.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Do.prototype.zoomTo=function(e,t){return jCe(this,e,{offset:t},!1)};Do.prototype.flyTo=function(e,t){return jCe(this,e,t,!0)};function jCe(e,t,n,i){CZ(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof Ga){let s;l(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return PT(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof ha||r instanceof Av||r instanceof M0){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=r.values??r,l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function y3(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function CZ(e){let t=e._zoomPromise;l(t)&&(y3(e),e._completeZoom(!1))}Do.prototype._postRender=function(){OTt(this),MTt(this)};function OTt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=e._zoomOptions??{},r;function s(f){l(o.offset)||(o.offset=new od(0,-.5,f.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(f,o.offset),i.lookAtTransform(F.IDENTITY),e._completeZoom(!0)),y3(e)}if(t instanceof Av){if(l(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof ha||t instanceof M0){s(t.boundingSphere);return}if(t instanceof fe){r={destination:n.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),y3(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,Ev);if(p===ct.PENDING)return;p!==ct.FAILED&&c.push(se.clone(Ev))}if(c.length===0){CZ(e);return}e.trackedEntity=void 0;let u=se.fromBoundingSpheres(c);e._zoomIsFlight?(y3(e),i.flyToBoundingSphere(u,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(F.IDENTITY),y3(e),e._completeZoom(!0))}function MTt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=Y.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,Ev);if(r===ct.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==ct.FAILED?Ev:void 0;e._entityView=new qN(t,o,o.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var x3=Do;var b3=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var T3=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var C3=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var A3=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var E3=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;function wv(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var dC=new re;function LTt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}wv.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)LTt(e,g,p,s)||s.push(new Sv(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,dC);let a=dC.west,c=dC.north;r.tileXYToRectangle(i,o,e,dC);let u=dC.east,f=dC.south,d=new VTt(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];AZ(g.extent,d)&&UTt(this._maximumLevel,g,d)}};wv.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(vv(i.extent,e)){t=i;break}}return l(t)?S3(void 0,t,e):-1};var NTt=[],FTt=[],BTt=new re,kTt=new re;wv.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=NTt;t.length=0,e.east<e.west?(t.push(re.fromRadians(-Math.PI,e.south,e.east,e.north,BTt)),t.push(re.fromRadians(e.west,e.south,Math.PI,e.north,kTt))):t.push(e);let n=FTt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)v3(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var qCe=new fe;wv.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,dC);return re.center(i,qCe),this.computeMaximumLevelAtPosition(qCe)>=e};wv.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function Sv(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(Sv.prototype,{nw:{get:function(){return this._nw||(this._nw=new Sv(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new Sv(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new Sv(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new Sv(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function VTt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function AZ(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function UTt(e,t,n){for(;t.level<e;)if(gG(t.nw.extent,n))t=t.nw;else if(gG(t.ne.extent,n))t=t.ne;else if(gG(t.sw.extent,n))t=t.sw;else if(gG(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Po(t.rectangles,n.level,zTt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function zTt(e,t){return e.level-t}function gG(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function vv(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function S3(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&vv(t._nw.extent,n),s=t._ne&&vv(t._ne.extent,n),a=t._sw&&vv(t._sw.extent,n),c=t._se&&vv(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,S3(t,t._nw,n))),s&&(i=Math.max(i,S3(t,t._ne,n))),a&&(i=Math.max(i,S3(t,t._sw,n))),c&&(i=Math.max(i,S3(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];vv(a,n)&&(i=a.level)}t=t.parent}return i}function v3(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||AZ(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=HTt(e[s.level],s)}v3(e,t._nw,n),v3(e,t._ne,n),v3(e,t._sw,n),v3(e,t._se,n)}function HTt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];AZ(o,t)?(o.west<t.west&&n.push(new re(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new re(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new re(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new re(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var Uh=wv;var GTt=15;function YCe(e){this.ellipsoid=y(e.ellipsoid,ee.default),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}YCe.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function WTt(e,t){let n=t.copyrightText;l(n)&&(e.credit=new vt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=re.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new Yi(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new z(r.xmin,r.ymin),s.rectangleNortheastInMeters=new z(r.xmax,r.ymax),e.tilingScheme=new rs(s)}else throw new ce("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new ce("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?ad.LERC:ad.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Uh(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Uh(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function jTt(e,t,n){try{let i=await t.fetchJson();WTt(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function N0(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new me}Object.defineProperties(N0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});N0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new YCe(t);await jTt(o,i);let r=new N0(t);return o.build(r),r._resource=n,r};N0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(EZ(this,n+1,e*2,t*2))){let d=XCe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new za({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):GTt,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(async function(d){if(l(a)&&a.state===Zn.CANCELLED){i.cancel();try{await i.deferred?.promise}catch{}return i.state=Zn.CANCELLED,Promise.reject(d)}return Promise.reject(d)})};function EZ(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}N0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};N0.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=EZ(this,n,e,t);if(l(i))return i;XCe(this,n,e,t)};N0.prototype.loadTileDataAvailability=function(e,t,n){};function qTt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},u=new z(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+u.x]!==s){f=!0;break}f?(a.push(new z(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let m=u.y*t;for(let x=e.x;x<=p;++x)if(i[m+x]!==s){d=!0;break}d?(a.push(new z(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function YTt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new z(0,0)];for(;a.length>0;){let c=a.pop(),u=qTt(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function XCe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let u=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=YTt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let m=e._tilesAvailable;for(let x=0;x<g.length;++x){let b=g[x];m.addAvailableTileRange(t,b.startX,b.startY,b.endX,b.endY)}return EZ(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var SZ=N0;var KCe="https://dev.virtualearth.net/REST/v1/Locations";function vZ(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new we({url:KCe,queryParameters:n}),this._credit=new vt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(vZ.prototype,{url:{get:function(){return KCe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});vZ.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],u=r[3];return{displayName:o.name,destination:re.fromDegrees(a,s,u,c)}})})};var wZ=vZ;function DZ(){}Object.defineProperties(DZ.prototype,{credit:{get:function(){}}});DZ.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var IZ=DZ;var XTt=new oe,ZCe=new h,Dv=new h;function KTt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new h);let u=(a-i)*o;return h.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=XTt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=h.subtract(t[2],c,ZCe),h.multiplyByScalar(d,.5,d),p=F.multiplyByVector(Cy.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=h.subtract(u,t[r-1],ZCe),h.multiplyByScalar(f,.5,f),p=F.multiplyByVector(Cy.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=F.multiplyByVector(F0.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(u,p.y,Dv),h.add(o,Dv,o),h.multiplyByScalar(f,p.z,Dv),h.add(o,Dv,o),h.multiplyByScalar(d,p.w,Dv),h.add(o,Dv,o)}}var ZTt=new h,$Tt=new h;function F0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=ZTt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=$Tt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=KTt(this),this._lastTimeIndex=0}Object.defineProperties(F0.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});F0.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);F0.prototype.findTimeInterval=io.prototype.findTimeInterval;F0.prototype.wrapTime=io.prototype.wrapTime;F0.prototype.clampTime=io.prototype.clampTime;F0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var PZ=F0;var yG={};yG.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let u=s+a+c,f,d,p,g,m,x;return u===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(m=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),m!==1&&(r.push(-1),r.push(2),r.push(0),r.push(m))):u===2?!s&&n!==e?(g=(e-i)/(n-i),m=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(m)):!a&&i!==e?(x=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};yG.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+u*m)*g,C=1-b-T;return l(c)?(c.x=b,c.y=T,c.z=C,c):new h(b,T,C)};yG.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new z),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var Tg=yG;function B0(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=bG(e.westIndices,o,t),this._southIndices=bG(e.southIndices,r,t),this._eastIndices=bG(e.eastIndices,o,t),this._northIndices=bG(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(B0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var xG=[];function bG(e,t,n){xG.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)xG[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(xG.sort(t),Ne.createTypedArray(n,xG)):e}var $Ce="createVerticesFromQuantizedTerrainMesh",QTt=new pi($Ce),JTt=new pi($Ce,Ph.maximumAsynchronousTasks);B0.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToRectangle(n,i,o),d=(a?JTt:QTt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(d))return;let p=this;return Promise.resolve(d).then(function(g){let m=p._quantizedVertices.length/3,x=m+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,b=Ne.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),C=g.center,A=g.minimumHeight,E=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),R=g.vertexStride,M=Sc.clone(g.encoding);return p._mesh=new ld(C,T,b,g.indexCountWithoutSkirts,m,A,E,v,O,R,D,M,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var eCt=new pi("upsampleQuantizedTerrainMesh",Ph.maximumAsynchronousTasks);B0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=eCt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let m=c?g*.5:this._westSkirtHeight,x=u?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=u?this._northSkirtHeight:g*.5,C=this._credits;return Promise.resolve(p).then(function(A){let E=new Uint16Array(A.vertices),v=Ne.createTypedArray(E.length/3,A.indices),D;return l(A.encodedNormals)&&(D=new Uint8Array(A.encodedNormals)),new B0({quantizedVertices:E,indices:v,encodedNormals:D,minimumHeight:A.minimumHeight,maximumHeight:A.maximumHeight,boundingSphere:se.clone(A.boundingSphere),orientedBoundingBox:vn.clone(A.orientedBoundingBox),horizonOcclusionPoint:h.clone(A.horizonOcclusionPoint),westIndices:A.westIndices,southIndices:A.southIndices,eastIndices:A.eastIndices,northIndices:A.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:C,createdByUpsampling:!0})})};var RZ=32767,QCe=new h;B0.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=RZ;let o=P.clamp((n-e.south)/e.height,0,1);return o*=RZ,l(this._mesh)?oCt(this,i,o):rCt(this,i,o)};function JCe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var tCt=new z,nCt=new z,iCt=new z;function oCt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,tCt),g=r.decodeTextureCoordinates(o,f,nCt),m=r.decodeTextureCoordinates(o,d,iCt);if(JCe(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=Tg.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,QCe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}}function rCt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],m=i[d],x=o[u],b=o[f],T=o[d];if(JCe(t,n,p,x,g,b,m,T)){let C=Tg.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,QCe);if(C.x>=-1e-15&&C.y>=-1e-15&&C.z>=-1e-15){let A=C.x*r[u]+C.y*r[f]+C.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,A/RZ)}}}}B0.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};B0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var hC=B0;function sCt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function tAe(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=y(e.ellipsoid,ee.default),this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}tAe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function nAe(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new rs({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(e.levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new Uh(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);l(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let C=0;C<b.length;++C){let A=b[C],E=T-A.endY-1,v=T-A.startY-1;e.overallAvailability[x].push([A.startX,E,A.endX,v]),g.addAvailableTileRange(x,A.startX,E,A.endX,v)}}}else l(d)&&(f=new Uh(e.tilingScheme,u),g=new Uh(e.tilingScheme,u),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new sCt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let m=t.parentUrl;return l(m)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await LZ(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function aCt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=wo.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return LZ(e,n);throw new ce(i)}async function cCt(e,t,n){await nAe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new Uh(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new vt(e.attribution);e.tileCredits.push(o)}return!0}async function LZ(e,t){try{let n=await e.layerJsonResource.fetchJson();return cCt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await nAe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):aCt(e,n,t)}}function zh(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new me;let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var OZ={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function eAe(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function lCt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new za({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function uCt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,g=Uint16Array.BYTES_PER_ELEMENT*3,m=3,x=Uint16Array.BYTES_PER_ELEMENT,b=x*m,T=new DataView(t),C=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let A=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let E=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new se(new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0)),T.getFloat64(a+f,!0));a+=d;let D=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let O=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let R=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,b=x*m);let M=R.subarray(0,O),N=R.subarray(O,2*O),_=R.subarray(O*2,3*O);Mn.zigZagDeltaDecode(M,N,_),a%x!==0&&(a+=x-a%x);let S=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ne.createTypedArrayFromArrayBuffer(O,t,a,S*m);a+=S*b;let I=0,L=w.length;for(let ae=0;ae<L;++ae){let _e=w[ae];w[ae]=I-_e,_e===0&&++I}let B=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let U=Ne.createTypedArrayFromArrayBuffer(O,t,a,B);a+=B*x;let V=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ne.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*x;let k=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let W=Ne.createTypedArrayFromArrayBuffer(O,t,a,k);a+=k*x;let q=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let J=Ne.createTypedArrayFromArrayBuffer(O,t,a,q);a+=q*x;let j,K;for(;a<T.byteLength;){let ae=T.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let _e=T.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,ae===OZ.OCT_VERTEX_NORMALS&&e._requestVertexNormals)j=new Uint8Array(t,a,O*2);else if(ae===OZ.WATER_MASK&&e._requestWaterMask)K=new Uint8Array(t,a,_e);else if(ae===OZ.METADATA&&e._requestMetadata){let xe=T.getUint32(a,!0);if(xe>0){let Ae=Mo(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,xe).available;if(l(Ae))for(let ke=0;ke<Ae.length;++ke){let ze=n+ke+1,tt=Ae[ke],wt=e._tilingScheme.getNumberOfYTilesAtLevel(ze);for(let pt=0;pt<tt.length;++pt){let Be=tt[pt],Yt=wt-Be.endY-1,Ct=wt-Be.startY-1;e.availability.addAvailableTileRange(ze,Be.startX,Yt,Be.endX,Ct),r.availability.addAvailableTileRange(ze,Be.startX,Yt,Be.endX,Ct)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=_e}let Q=e.getLevelMaximumGeometricError(n)*5,de=e._tilingScheme.tileXYToRectangle(i,o,n),ye=vn.fromRectangle(de,A,E,e._tilingScheme.ellipsoid);return new hC({center:C,minimumHeight:A,maximumHeight:E,boundingSphere:v,orientedBoundingBox:ye,horizonOcclusionPoint:D,quantizedVertices:R,encodedNormals:j,indices:w,westIndices:U,southIndices:G,eastIndices:W,northIndices:J,westSkirtHeight:Q,southSkirtHeight:Q,eastSkirtHeight:Q,northSkirtHeight:Q,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:K,credits:e._tileCredits})}zh.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let u=0;u<s;++u){let f=o[u];if(!l(f.availability)||f.availability.isTileAvailable(n,e,t)){r=f;break}let d=NZ(this,e,t,n,f,u===0);d.result&&(a=!0,c=c.then(()=>d.promise))}return!l(r)&&a?c.then(()=>new Promise(u=>{setTimeout(()=>{let f=this.requestTileGeometry(e,t,n,i);u(f)},0)})):iAe(this,e,t,n,r,i)};function iAe(e,t,n,i,o,r){if(!l(o))return Promise.reject(new ce("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=eAe(void 0)):u=eAe(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(m){return l(m)?l(e._heightmapStructure)?lCt(e,m,i,t,n):uCt(e,m,i,t,n,o):Promise.reject(new ce("Mesh buffer doesn't exist."))})}Object.defineProperties(zh.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});zh.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};zh.fromIonAssetId=async function(e,t){let n=await xu.fromAssetId(e);return zh.fromUrl(n,t)};zh.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=we.createIfNeeded(e);n.appendForwardSlash();let i=new tAe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await LZ(i);let o=new zh(t);return i.build(o),o};zh.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(NZ(this,e,t,n,i[r],r===0).result)return;return!1};zh.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=NZ(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function MZ(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function NZ(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=MZ(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});d=iAe(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=MZ(o,f.x,f.y,f.level)}return{result:!1}}zh._getAvailabilityTile=MZ;var mC=zh;function Cg(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new rl(n),this._workerName="createCircleGeometry"}Cg.packedLength=rl.packedLength;Cg.pack=function(e,t,n){return rl.pack(e._ellipseGeometry,t,n)};var oAe=new rl({center:new h,semiMajorAxis:1,semiMinorAxis:1}),ja={center:new h,radius:void 0,ellipsoid:ee.clone(ee.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Ie,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};Cg.unpack=function(e,t,n){let i=rl.unpack(e,t,oAe);return ja.center=h.clone(i._center,ja.center),ja.ellipsoid=ee.clone(i._ellipsoid,ja.ellipsoid),ja.ellipsoid=ee.clone(i._ellipsoid,oAe._ellipsoid),ja.height=i._height,ja.extrudedHeight=i._extrudedHeight,ja.granularity=i._granularity,ja.vertexFormat=Ie.clone(i._vertexFormat,ja.vertexFormat),ja.stRotation=i._stRotation,ja.shadowVolume=i._shadowVolume,l(n)?(ja.semiMajorAxis=i._semiMajorAxis,ja.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new rl(ja),n):(ja.radius=i._semiMajorAxis,new Cg(ja))};Cg.createGeometry=function(e){return rl.createGeometry(e._ellipseGeometry)};Cg.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new Cg({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Ie.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(Cg.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var FZ=Cg;function Iv(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new ku(n),this._workerName="createCircleOutlineGeometry"}Iv.packedLength=ku.packedLength;Iv.pack=function(e,t,n){return ku.pack(e._ellipseGeometry,t,n)};var fCt=new ku({center:new h,semiMajorAxis:1,semiMinorAxis:1}),of={center:new h,radius:void 0,ellipsoid:ee.clone(ee.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};Iv.unpack=function(e,t,n){let i=ku.unpack(e,t,fCt);return of.center=h.clone(i._center,of.center),of.ellipsoid=ee.clone(i._ellipsoid,of.ellipsoid),of.height=i._height,of.extrudedHeight=i._extrudedHeight,of.granularity=i._granularity,of.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(of.semiMajorAxis=i._semiMajorAxis,of.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new ku(of),n):(of.radius=i._semiMajorAxis,new Iv(of))};Iv.createGeometry=function(e){return ku.createGeometry(e._ellipseGeometry)};var BZ=Iv;function Pv(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new Yi({ellipsoid:y(e.ellipsoid,ee.default)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me;let n=e.credit;typeof n=="string"&&(n=new vt(n)),this._credit=n}Object.defineProperties(Pv.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});Pv.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new za({buffer:c,width:r,height:s})})};Pv.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Pv.prototype.getTileDataAvailable=function(e,t,n){};Pv.prototype.loadTileDataAvailability=function(e,t,n){};var kZ=Pv;function rAe(e){this.proxy=e}rAe.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var VZ=rAe;var dCt={SEARCH:0,AUTOCOMPLETE:1},k0=Object.freeze(dCt);function TG(){he.throwInstantiationError()}Object.defineProperties(TG.prototype,{credit:{get:he.throwInstantiationError}});TG.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(vt.getIonCredit)};TG.prototype.geocode=he.throwInstantiationError;var Rv=TG;function sAe(){he.throwInstantiationError()}sAe.createGeometry=function(e){he.throwInstantiationError()};var UZ=sAe;var yCt=Vo(zZ(),1);function hCt(e,t){return(e&t)!==0}var Pc=hCt;var mCt=[1,2,4,8],aAe=15,pCt=16,_Ct=64,gCt=128;function fp(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}fp.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new fp(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};fp.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};fp.prototype.hasSubtree=function(){return Pc(this._bits,pCt)};fp.prototype.hasImagery=function(){return Pc(this._bits,_Ct)};fp.prototype.hasTerrain=function(){return Pc(this._bits,gCt)};fp.prototype.hasChildren=function(){return Pc(this._bits,aAe)};fp.prototype.hasChild=function(e){return Pc(this._bits,mCt[e])};fp.prototype.getChildBitmask=function(){return this._bits&aAe};var w3=fp;function xCt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var bCt=xCt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function rf(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(rf.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});rf.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof we)&&(t=e.url);let n=we.createIfNeeded(t);n.appendForwardSlash();let i=new rf;i._resource=n;try{await TCt(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${lAe(i,"",1).url}: ${o}`;throw new ce(r)}return i};rf.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;Pc(t,r)?Pc(e,r)&&(s|=1):(s|=2,Pc(e,r)||(s|=1)),i+=s}return i};rf.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];Pc(s,2)?Pc(s,1)||(t|=r):(n|=r,Pc(s,1)&&(t|=r))}return{x:t,y:n,level:i}};rf.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var cAe=new pi("decodeGoogleEarthEnterprisePacket");rf.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=lAe(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return cAe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let m=u[e];f=r[e],f._bits|=m._bits,delete u[e]}let p=Object.keys(u);p.sort(function(m,x){return m.length-x.length});let g=p.length;for(let m=0;m<g;++m){let x=p[m];if(u[x]!==null){let T=w3.clone(u[x]),C=x.length;if(C===d)T.setParent(f);else if(C>1){let A=r[x.substring(0,x.length-1)];T.setParent(A)}r[x]=T}else r[x]=null}})})};rf.prototype.populateSubtree=function(e,t,n,i){let o=rf.tileXYToQuadKey(e,t,n);return WZ(this,o,i)};function WZ(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new Ko({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),WZ(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new ce(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new Ko({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),WZ(e,t,s)}).finally(function(){delete a[o]})}rf.prototype.getTileInformation=function(e,t,n){let i=rf.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};rf.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function lAe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var HZ,GZ;function TCt(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(GZ)){let n=nn("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;GZ=ex(n).then(function(){HZ=window.cesiumGoogleEarthDbRootParser(yCt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return GZ.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=HZ.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return cAe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=HZ.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new vt(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=bCt})}var Ag=rf;function pC(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(pC.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var dAe="createVerticesFromGoogleEarthEnterpriseBuffer",CCt=new pi(dAe),ACt=new pi(dAe,Ph.maximumAsynchronousTasks),uAe=new re,jZ=new re;pC.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,uAe),t.tileXYToRectangle(n,i,o,jZ);let u=c.cartographicToCartesian(re.center(jZ)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?ACt:CCt).scheduleTask({buffer:this._buffer,nativeRectangle:uAe,rectangle:jZ,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let m=this;return g.then(function(x){return m._mesh=new ld(u,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,se.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,vn.clone(x.orientedBoundingBox),Sc.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),m._minimumHeight=x.minimumHeight,m._maximumHeight=x.maximumHeight,m._buffer=void 0,m._mesh})};pC.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?DCt(this,i,o):RCt(this,i,o,e)};var ECt=new pi("upsampleQuantizedTerrainMesh",Ph.maximumAsynchronousTasks);pC.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=ECt.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(m){let x=new Uint16Array(m.vertices),b=Ne.createTypedArray(x.length/3,m.indices),T=g._skirtHeight;return new hC({quantizedVertices:x,indices:b,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:se.clone(m.boundingSphere),orientedBoundingBox:vn.clone(m.orientedBoundingBox),horizonOcclusionPoint:h.clone(m.horizonOcclusionPoint),westIndices:m.westIndices,southIndices:m.southIndices,eastIndices:m.eastIndices,northIndices:m.northIndices,westSkirtHeight:T,southSkirtHeight:T,eastSkirtHeight:T,northSkirtHeight:T,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};pC.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};pC.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var SCt=new z,vCt=new z,wCt=new z,hAe=new h;function DCt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,SCt),g=r.decodeTextureCoordinates(o,f,vCt),m=r.decodeTextureCoordinates(o,d,wCt),x=Tg.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,hAe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),C=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*C}}}var ICt=Uint16Array.BYTES_PER_ELEMENT,fAe=Uint32Array.BYTES_PER_ELEMENT,qZ=Int32Array.BYTES_PER_ELEMENT,PCt=Float32Array.BYTES_PER_ELEMENT,YZ=Float64Array.BYTES_PER_ELEMENT;function RCt(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=fAe;u+=fAe,u+=2*YZ;let f=P.toRadians(c.getFloat64(u,!0)*180);u+=YZ;let d=P.toRadians(c.getFloat64(u,!0)*180);u+=YZ;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(u,!0);u+=qZ;let x=c.getInt32(u,!0)*3;u+=qZ,u+=qZ;let b=new Array(m),T=new Array(m),C=new Array(m),A;for(A=0;A<m;++A)b[A]=s+c.getUint8(u++)*p,T[A]=a+c.getUint8(u++)*g,C[A]=c.getFloat32(u,!0)*6371010,u+=PCt;let E=new Array(x);for(A=0;A<x;++A)E[A]=c.getUint16(u,!0),u+=ICt;for(A=0;A<x;A+=3){let v=E[A],D=E[A+1],O=E[A+2],R=b[v],M=b[D],N=b[O],_=T[v],S=T[D],w=T[O],I=Tg.computeBarycentricCoordinates(t,n,R,_,M,S,N,w,hAe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*C[v]+I.y*C[D]+I.z*C[O]}}var Ov=pC;var yd={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},CG=new Z;function AG(){this._terrainCache={},this._lastTidy=Z.now()}AG.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:Z.now()}};AG.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};AG.prototype.tidy=function(){if(Z.now(CG),Z.secondsDifference(CG,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];Z.secondsDifference(CG,r.timestamp)>10&&delete e[o]}Z.clone(CG,this._lastTidy)}};function V0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new AG,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new me}Object.defineProperties(V0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});V0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new ce(`The server ${e.url} doesn't have terrain`);let n=new V0(t);return n._metadata=e,n};var OCt=new pi("decodeGoogleEarthEnterprisePacket");function mAe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===yd.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}V0.prototype.requestTileGeometry=function(e,t,n,i){let o=Ag.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new ce("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=yd.UNKNOWN);let u=r.get(o);if(l(u)){let T=s.providers[a.terrainProvider];return Promise.resolve(new Ov({buffer:u,childTileMask:mAe(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===yd.NONE)return Promise.reject(new ce("Terrain tile doesn't exist"))}else return Promise.resolve(new za({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case yd.SELF:p=a.terrainVersion;break;case yd.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case yd.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new ce("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,x,b;if(l(g[d]))x=g[d],b=m[d];else{b=i;let T=MCt(this,d,p,b).fetchArrayBuffer();if(!l(T))return;x=T.then(function(C){return l(C)?OCt.scheduleTask({buffer:C,type:"Terrain",key:s.key},[C]).then(function(A){let E=s.getTileInformationFromQuadKey(d);E.terrainState=yd.SELF,r.add(d,A[0]);let v=E.terrainProvider,D=A.length-1;for(let O=0;O<D;++O){let R=d+O.toString(),M=s.getTileInformationFromQuadKey(R);l(M)&&(r.add(R,A[O+1]),M.terrainState=yd.PARENT,M.terrainProvider===0&&(M.terrainProvider=v))}}):Promise.reject(new ce("Failed to load terrain."))}),g[d]=x,m[d]=b,x=x.finally(function(){delete g[d],delete m[d]})}return x.then(function(){let T=r.get(o);if(l(T)){let C=s.providers[a.terrainProvider];return new Ov({buffer:T,childTileMask:mAe(o,a,s),credits:l(C)?[C]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new ce("Failed to load terrain."))}).catch(function(T){return b.state===Zn.CANCELLED?(i.state=b.state,Promise.reject(T)):(a.terrainState=yd.NONE,Promise.reject(T))})};V0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};V0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=Ag.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===yd.NONE)return!1;if((!l(s)||s===yd.UNKNOWN)&&(r.terrainState=yd.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new Ko({throttle:!1,throttleByServer:!0,type:fs.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};V0.prototype.loadTileDataAvailability=function(e,t,n){};function MCt(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var XZ=V0;var EG={};EG.defaultApiKey=void 0;EG.mapTilesApiEndpoint=new we({url:"https://tile.googleapis.com/v1/"});EG.getDefaultCredit=function(){return new vt('<img src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align: -5px" alt="Google">',!0)};var _C=EG;var D3={};D3.type=void 0;D3.getRequiredDataPoints=he.throwInstantiationError;D3.interpolateOrderZero=he.throwInstantiationError;D3.interpolate=he.throwInstantiationError;var KZ=D3;function ZZ(e){this._url=we.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(ZZ.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});ZZ.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===k0.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=re.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var I3=ZZ;function $Z(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Hd.defaultAccessToken),n=we.createIfNeeded(y(e.server,Hd.defaultServer));n.appendForwardSlash();let i=Hd.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(vt.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new I3(o)}Object.defineProperties($Z.prototype,{credit:{get:function(){}}});$Z.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var P3=$Z;function SG(){he.throwInstantiationError()}Object.defineProperties(SG.prototype,{ellipsoid:{get:he.throwInstantiationError}});SG.prototype.project=he.throwInstantiationError;SG.prototype.unproject=he.throwInstantiationError;var QZ=SG;function Mv(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(Mv.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});Mv.prototype.findTimeInterval=io.prototype.findTimeInterval;Mv.prototype.wrapTime=io.prototype.wrapTime;Mv.prototype.clampTime=io.prototype.clampTime;Mv.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var JZ=Mv;function e$(e,t,n){e=we.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new vt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(e$.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});e$.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:yt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=re.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var t$=e$;var LCt={packedLength:void 0,pack:he.throwInstantiationError,unpack:he.throwInstantiationError},n$=LCt;var NCt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:he.throwInstantiationError,unpackInterpolationResult:he.throwInstantiationError},i$=NCt;function pAe(){he.throwInstantiationError()}pAe.prototype.getURL=he.throwInstantiationError;var o$=pAe;function FCt(e,t,n,i,o,r,s){let a=Ii.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,m=i.green,x=i.blue,b=i.alpha;if(H.equals(n,i)){for(c=0;c<a;c++)r[s++]=H.floatToByte(u),r[s++]=H.floatToByte(f),r[s++]=H.floatToByte(d),r[s++]=H.floatToByte(p);return s}let T=(g-u)/a,C=(m-f)/a,A=(x-d)/a,E=(b-p)/a,v=s;for(c=0;c<a;c++)r[v++]=H.floatToByte(u+c*T),r[v++]=H.floatToByte(f+c*C),r[v++]=H.floatToByte(d+c*A),r[v++]=H.floatToByte(p+c*E);return v}function R3(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,Jt.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,ee.default),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*H.packedLength:1,this.packedLength=o+ee.packedLength+3}R3.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=H.packedLength)H.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};R3.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=H.packedLength)s[i]=H.unpack(e,t);let a=ee.unpack(e,t);t+=ee.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new R3({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var vG=new Array(2),wG=new Array(2),BCt={positions:vG,height:wG,ellipsoid:void 0,minDistance:void 0,granularity:void 0};R3.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,m,x=0;if(o===Jt.GEODESIC||o===Jt.RHUMB){let E,v,D;o===Jt.GEODESIC?(E=P.chordLength(r,s.maximumRadius),v=Ii.numberOfPoints,D=Ii.generateArc):(E=r,v=Ii.numberOfPointsRhumbLine,D=Ii.generateRhumbArc);let O=Ii.extractHeights(t,s),R=BCt;if(o===Jt.GEODESIC?R.minDistance=a:R.granularity=r,R.ellipsoid=s,c){let M=0;for(u=0;u<f-1;u++)M+=v(t[u],t[u+1],E)+1;d=new Float64Array(M*3),g=new Uint8Array(M*4),R.positions=vG,R.height=wG;let N=0;for(u=0;u<f-1;++u){vG[0]=t[u],vG[1]=t[u+1],wG[0]=O[u],wG[1]=O[u+1];let _=D(R);if(l(n)){let S=_.length/3;m=n[u];for(let w=0;w<S;++w)g[N++]=H.floatToByte(m.red),g[N++]=H.floatToByte(m.green),g[N++]=H.floatToByte(m.blue),g[N++]=H.floatToByte(m.alpha)}d.set(_,x),x+=_.length}}else if(R.positions=t,R.height=O,d=new Float64Array(D(R)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let N=t[u],_=t[u+1],S=n[u],w=n[u+1];x=FCt(N,_,S,w,a,g,x)}let M=n[f-1];g[x++]=H.floatToByte(M.red),g[x++]=H.floatToByte(M.green),g[x++]=H.floatToByte(M.blue),g[x++]=H.floatToByte(M.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let E=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(h.pack(D,d,E),E+=3,m=n[u-1],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha)),c&&u===f-1)break;h.pack(D,d,E),E+=3,l(n)&&(m=n[u],g[v++]=H.floatToByte(m.red),g[v++]=H.floatToByte(m.green),g[v++]=H.floatToByte(m.blue),g[v++]=H.floatToByte(m.alpha))}}let b=new fn;b.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(b.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let T=(p-1)*2,C=Ne.createTypedArray(p,T),A=0;for(u=0;u<p-1;++u)C[A++]=u,C[A++]=u+1;return new at({attributes:b,indices:C,primitiveType:Me.LINES,boundingSphere:se.fromPoints(t)})};var r$=R3;function Lv(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new Qs(i),this._workerName="createSphereGeometry"}Lv.packedLength=Qs.packedLength;Lv.pack=function(e,t,n){return Qs.pack(e._ellipsoidGeometry,t,n)};var kCt=new Qs,U0={radius:void 0,radii:new h,vertexFormat:new Ie,stackPartitions:void 0,slicePartitions:void 0};Lv.unpack=function(e,t,n){let i=Qs.unpack(e,t,kCt);return U0.vertexFormat=Ie.clone(i._vertexFormat,U0.vertexFormat),U0.stackPartitions=i._stackPartitions,U0.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,U0.radii),n._ellipsoidGeometry=new Qs(U0),n):(U0.radius=i._radii.x,new Lv(U0))};Lv.createGeometry=function(e){return Qs.createGeometry(e._ellipsoidGeometry)};var s$=Lv;function z0(e){}Object.defineProperties(z0.prototype,{ellipsoid:{get:he.throwInstantiationError},rectangle:{get:he.throwInstantiationError},projection:{get:he.throwInstantiationError}});z0.prototype.getNumberOfXTilesAtLevel=he.throwInstantiationError;z0.prototype.getNumberOfYTilesAtLevel=he.throwInstantiationError;z0.prototype.rectangleToNativeRectangle=he.throwInstantiationError;z0.prototype.tileXYToNativeRectangle=he.throwInstantiationError;z0.prototype.tileXYToRectangle=he.throwInstantiationError;z0.prototype.positionToTileXY=he.throwInstantiationError;var a$=z0;function VCt(e,t){this.rectangle=e,this.maxLevel=t}function _Ae(e){this.ellipsoid=y(e.ellipsoid,ee.default),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}_Ae.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function UCt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new Yi({ellipsoid:e.ellipsoid});else throw new ce(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=os.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),u=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new VCt(new re(a,c,u,f),d))}}function zCt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),wo.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function HCt(e,t,n){try{let i=await t.fetchXML();UCt(e,i)}catch(i){zCt(t,i,n)}}function H0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(H0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});H0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new _Ae(t),i=we.createIfNeeded(e);await HCt(n,i);let o=new H0(t);return n.build(o),o._resource=i,o};H0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new za({buffer:Ed(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:GCt(a,e,t,n),structure:a._terrainDataStructure})})};H0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var gAe=new re;function GCt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=re.intersection(f,s,gAe);l(d)&&(DG(o,f,t*2,n*2,i+1)&&(a|=4),DG(o,f,t*2+1,n*2,i+1)&&(a|=8),DG(o,f,t*2,n*2+1,i+1)&&(a|=1),DG(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function DG(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(re.intersection(r,t,gAe))}H0.prototype.getTileDataAvailable=function(e,t,n){};H0.prototype.loadTileDataAvailability=function(e,t,n){};var c$=H0;function gC(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,He.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(gC.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(gC.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=WCt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});gC.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};gC.prototype.isDestroyed=function(){return!1};gC.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};gC.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,He.MINIMUM_VALUE),s=Z.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function WCt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var l$=gC;var jCt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},u$=Object.freeze(jCt);function qCt(e){return e=y(e,y.EMPTY_OBJECT),mC.fromIonAssetId(2426648,{requestVertexNormals:y(e.requestVertexNormals,!1)})}var O3=qCt;function YCt(e){return e=y(e,y.EMPTY_OBJECT),mC.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1),ellipsoid:ee.WGS84})}var yC=YCt;var XCt=1953029805,KCt=2917034100;function f$(e,t){if(f$.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new ce("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===XCt||o===KCt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}f$.passThroughDataForTesting=!1;var M3=f$;var ZCt=new h;function $Ct(e,t,n,i){let o=lx(e,t,n,i,ZCt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var d$=$Ct;function QCt(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var xC=QCt;function JCt(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var h$=JCt;function eAt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var L3=eAt;var tAt=new h(1,1,1);function m$(e){e=y(e,tAt),this._dimensions=h.clone(e)}Object.defineProperties(m$.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var nAt=new h;m$.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,nAt),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var p$=m$;function dp(){this.featurePropertiesDirty=!1}Object.defineProperties(dp.prototype,{featuresLength:{get:function(){he.throwInstantiationError()}},pointsLength:{get:function(){he.throwInstantiationError()}},trianglesLength:{get:function(){he.throwInstantiationError()}},geometryByteLength:{get:function(){he.throwInstantiationError()}},texturesByteLength:{get:function(){he.throwInstantiationError()}},batchTableByteLength:{get:function(){he.throwInstantiationError()}},innerContents:{get:function(){he.throwInstantiationError()}},ready:{get:function(){he.throwInstantiationError()}},tileset:{get:function(){he.throwInstantiationError()}},tile:{get:function(){he.throwInstantiationError()}},url:{get:function(){he.throwInstantiationError()}},batchTable:{get:function(){he.throwInstantiationError()}},metadata:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}},group:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}}});dp.prototype.hasProperty=function(e,t){he.throwInstantiationError()};dp.prototype.getFeature=function(e){he.throwInstantiationError()};dp.prototype.applyDebugSettings=function(e,t){he.throwInstantiationError()};dp.prototype.applyStyle=function(e){he.throwInstantiationError()};dp.prototype.update=function(e,t){he.throwInstantiationError()};dp.prototype.pick=function(e,t,n){he.throwInstantiationError()};dp.prototype.isDestroyed=function(){he.throwInstantiationError()};dp.prototype.destroy=function(){he.throwInstantiationError()};var _$=dp;function Nv(e,t){this._conditionsExpression=Ge(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,oAt(this,t)}Object.defineProperties(Nv.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function iAt(e,t){this.condition=e,this.expression=t}function oAt(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new iAt(new If(a,t),new If(c,t)))}e._runtimeConditions=n}Nv.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};Nv.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};Nv.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${u}) + { + return ${f}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};Nv.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var N3=Nv;function G0(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,rAt(this,e)}function rAt(e,t){t=y(Ge(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new If(o[r],i))}e._meta=n,e._ready=!0}function sr(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new If(String(t));if(typeof t=="string")return new If(t,n);if(l(t.conditions))return new N3(t,n)}else return;return t}function ar(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ge(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(G0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=sr(this,e),this._style.show=ar(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=sr(this,e),this._style.color=ar(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=sr(this,e),this._style.pointSize=ar(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=sr(this,e),this._style.pointOutlineColor=ar(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=sr(this,e),this._style.pointOutlineWidth=ar(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=sr(this,e),this._style.labelColor=ar(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=sr(this,e),this._style.labelOutlineColor=ar(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=sr(this,e),this._style.labelOutlineWidth=ar(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=sr(this,e),this._style.font=ar(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=sr(this,e),this._style.labelStyle=ar(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=sr(this,e),this._style.labelText=ar(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=sr(this,e),this._style.backgroundColor=ar(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=sr(this,e),this._style.backgroundPadding=ar(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=sr(this,e),this._style.backgroundEnabled=ar(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=sr(this,e),this._style.scaleByDistance=ar(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=sr(this,e),this._style.translucencyByDistance=ar(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=sr(this,e),this._style.distanceDisplayCondition=ar(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=sr(this,e),this._style.heightOffset=ar(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=sr(this,e),this._style.anchorLineEnabled=ar(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=sr(this,e),this._style.anchorLineColor=ar(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=sr(this,e),this._style.image=ar(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=sr(this,e),this._style.disableDepthTestDistance=ar(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=sr(this,e),this._style.horizontalOrigin=ar(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=sr(this,e),this._style.verticalOrigin=ar(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=sr(this,e),this._style.labelHorizontalOrigin=ar(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=sr(this,e),this._style.labelVerticalOrigin=ar(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});G0.fromUrl=function(e){return we.createIfNeeded(e).fetchJson(e).then(function(n){return new G0(n)})};G0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};G0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};G0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};G0.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var bC=G0;function F3(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new oC({comparator:F3.comparator})}F3.prototype.addSubtree=function(e){let t=new sAt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};F3.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};F3.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function sAt(e,t){this.subtree=e,this.stamp=t}var B3=F3;function IG(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties(IG.prototype,{metadataTable:{get:function(){return this._metadataTable}}});IG.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=cAt(n);let r=await aAt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,m=g+p.byteLength,b=r[p.buffer].subarray(g,m);s[d]=b}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new IG(e);return f._metadataTable=new Nl({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function aAt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function cAt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Mo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var k3=IG;function PG(e){e=y(e,y.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new B3}PG.fromUrl=async function(e){let t=we.createIfNeeded(e),n=await t.fetchJson();uAt(n);let i=pAt(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=oi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new Ub({metadataJson:a,schema:c}),f=new PG;_At(f,u,s);let d=new Hb(t,o,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:x,globalTransform:b}=fAt(o);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(r.dimensions),f.shapeTransform=x,f.globalTransform=b,f.maximumTileCount=lAt(u);let T,C;return l(r.padding)&&(T=h.unpack(r.padding.before),C=h.unpack(r.padding.after)),f.paddingBefore=T,f.paddingAfter=C,f._implicitTileset=d,Ci.unload(i),f};function lAt(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(ub.TILESET_TILE_COUNT)}function uAt(e){let t=e.root;if(!l(t.content))throw new ce("Root must have content");if(!oi(t.content,"3DTILES_content_voxels"))throw new ce("Root tile content must have 3DTILES_content_voxels extension");if(!oi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new ce("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!oi(e,"3DTILES_metadata"))throw new ce("Tileset must have a metadata schema")}function fAt(e){let t=e.boundingVolume,n;if(l(e.transform)?n=F.unpack(e.transform):n=F.clone(F.IDENTITY),l(t.box))return hAt(t.box,n);if(l(t.region))return dAt(t.region);if(oi(t,"3DTILES_bounding_volume_cylinder"))return mAt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new ce("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function dAt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(ee.WGS84.radii),c=new h(t,n,r),u=new h(i,o,s);return{shape:Ni.ELLIPSOID,minBounds:c,maxBounds:u,shapeTransform:a,globalTransform:F.clone(F.IDENTITY)}}function hAt(e,t){let n=vn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.BOX,minBounds:h.clone(ap.DefaultMinBounds),maxBounds:h.clone(ap.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function mAt(e,t){let n=vn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.CYLINDER,minBounds:h.clone(cp.DefaultMinBounds),maxBounds:h.clone(cp.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function pAt(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Ci.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Ci.getSchemaLoader({schema:i})}function _At(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:m}=p,x=r?.properties[d].min,b=r?.properties[d].max,T=At.getComponentCount(g),C=yAe(x,T),A=yAe(b,T);return{id:d,type:g,componentType:m,minValue:C,maxValue:A}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function yAe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function gAt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=Sm(o);return await k3.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function yAt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=Sm(a);return o=await lb.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}PG.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new Gb({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return yAt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?gAt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var g$=PG;function y$(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(y$.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});y$.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var V3=y$;var x$={CUMULUS:0};x$.validate=function(e){return e===x$.CUMULUS};var Fv=Object.freeze(x$);function Hh(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new z(this._maximumSize.x,this._maximumSize.y);else{this._scale=z.clone(y(e.scale,new z(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=H.clone(y(e.color,H.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var xAt=Hh.SHOW_INDEX=0,bAt=Hh.POSITION_INDEX=1,TAt=Hh.SCALE_INDEX=2,CAt=Hh.MAXIMUM_SIZE_INDEX=3,AAt=Hh.SLICE_INDEX=4,EAt=Hh.BRIGHTNESS_INDEX=5,SAt=Hh.COLOR_INDEX=6;Hh.NUMBER_OF_PROPERTIES=7;function TC(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(Hh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,TC(this,xAt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),TC(this,bAt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;z.equals(t,e)||(z.clone(e,t),TC(this,TAt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),TC(this,CAt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;H.equals(t,e)||(H.clone(e,t),TC(this,SAt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,TC(this,AAt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,TC(this,EAt))}}});Hh.prototype._destroy=function(){this._cloudCollection=void 0};var sf=Hh;var af,RG=new h,vAt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},wAt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},DAt=sf.SHOW_INDEX,IAt=sf.POSITION_INDEX,PAt=sf.SCALE_INDEX,RAt=sf.MAXIMUM_SIZE_INDEX,OAt=sf.SLICE_INDEX,MAt=sf.BRIGHTNESS_INDEX,LAt=sf.NUMBER_OF_PROPERTIES,NAt=sf.COLOR_INDEX;function Gh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(LAt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:xAe(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function xAe(e){return function(){return RG.x=e._textureSliceWidth,RG.y=e._noiseTextureRows,RG.z=1/e._noiseTextureRows,RG}}Object.defineProperties(Gh.prototype,{length:{get:function(){return T$(this),this._clouds.length}}});function bAe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Gh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,Fv.CUMULUS),n;return t===Fv.CUMULUS&&(n=new sf(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};Gh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Gh.prototype.removeAll=function(){bAe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function T$(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}Gh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};Gh.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};Gh.prototype.get=function(e){return T$(this),this._clouds[e]};var FAt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),BAt=new Uint16Array([0,1,2,0,2,3]);function kAt(e){let t=_t.createVertexBuffer({context:e,typedArray:FAt,usage:Fe.STATIC_DRAW}),n=_t.createIndexBuffer({context:e,typedArray:BAt,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ti({context:e,attributes:i,indexBuffer:n})}var C$;function VAt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=_t.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function UAt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=_t.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function zAt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=_t.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function HAt(e,t,n){let i=[{index:af.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:af.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:af.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:zAt(e)});let o=n?t:4*t;return new Dp(e,i,o,n)}var b$=new Gn;function TAe(e,t,n,i){let o,r=n[af.positionHighAndScaleX],s=n[af.positionLowAndScaleY],a=i.position;Gn.fromCartesian(a,b$);let c=i.scale,u=b$.high,f=b$.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function CAe(e,t,n,i){let o,r=n[af.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function AAe(e,t,n,i){let o,r=n[af.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function EAe(e,t,n,i){let o,r=n[af.color],s=i.color,a=H.floatToByte(s.red),c=H.floatToByte(s.green),u=H.floatToByte(s.blue),f=H.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function GAt(e,t,n,i){TAe(e,t,n,i),CAe(e,t,n,i),AAe(e,t,n,i),EAe(e,t,n,i)}function WAt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=kAt(a),o._spNoise=Qt.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Pt({context:a,width:r*r/s,height:r*s,pixelDatatype:Ke.UNSIGNED_BYTE,pixelFormat:Je.RGBA,sampler:new $t({wrapS:Tn.REPEAT,wrapT:Tn.REPEAT,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})});let f=new Nc({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:xAe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function jAt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=HAt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];GAt(e,t,s,c)}n._vaf.commit(C$(i))}}var qAt=[];function YAt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=qAt;u.length=0,(c[IAt]||c[PAt])&&u.push(TAe),(c[DAt]||c[MAt])&&u.push(CAe),(c[RAt]||c[OAt])&&u.push(AAe),c[NAt]&&u.push(EAe);let f=u.length,d=i._vaf.writers,p,g,m;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._vaf.commit(C$(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function XAt(e,t,n,i){let o=t.context,r=e,s=new Ue({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new Ue({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=Qt.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:af}),r._rs=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:un.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function KAt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new Ze),f.pass=ve.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}Gh.prototype.update=function(e){if(T$(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&WAt(this,e,A3,C3),this._instanced=e.context.instancedArrays,af=this._instanced?wAt:vAt,C$=this._instanced?UAt:VAt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?jAt(this,e):r>0&&YAt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&XAt(this,e,T3,b3),KAt(this,e))};Gh.prototype.isDestroyed=function(){return!1};Gh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),bAe(this._clouds),ue(this)};var A$=Gh;var ZAt=P.toRadians(30);function E$(e){this._angle=y(e,ZAt)}Object.defineProperties(E$.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});E$.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var S$=E$;function U3(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=no.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(U3.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});U3.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;U3.prototype.isTranslucent=no.prototype.isTranslucent;U3.prototype.getRenderState=no.prototype.getRenderState;var v$=U3;function OG(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.id=e.id,this._id=void 0,this._primitive=void 0}OG.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!F.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=F.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.RED,H.RED],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),n=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.GREEN,H.GREEN],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),i=new St({geometry:new Z_({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:Qr.VERTEX_FORMAT,colors:[H.BLUE,H.BLUE],arcType:Jt.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this});this._primitive=new Dn({geometryInstances:[t,n,i],appearance:new Qr,asynchronous:!1})}this._primitive.update(e)}};OG.prototype.isDestroyed=function(){return!1};OG.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var z3=OG;function $At(e){this.direction=h.clone(e.direction),this.color=H.clone(y(e.color,H.WHITE)),this.intensity=y(e.intensity,1)}var w$=$At;var H3=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var G3=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function CC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:qi.fromType(qi.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,G3),this._fragmentShaderSource=y(e.fragmentShaderSource,H3),this._renderState=no.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(CC.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return CC.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});CC.VERTEX_FORMAT=Ie.POSITION_AND_ST;CC.prototype.getFragmentShaderSource=no.prototype.getFragmentShaderSource;CC.prototype.isTranslucent=no.prototype.isTranslucent;CC.prototype.getRenderState=no.prototype.getRenderState;var D$=CC;function ou(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,ou.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,ou.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,ou.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,ou.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,ou.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new me,this._nominalFrameRate=new me,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){QAt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){JAt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}ou.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};ou.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new ou({scene:e})),e._frameRateMonitor};Object.defineProperties(ou.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});ou.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};ou.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};ou.prototype.isDestroyed=function(){return!1};ou.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function QAt(e,t){if(e._pauseCount>0)return;let n=xi();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/Yn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/Yn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/Yn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function JAt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var W3=ou;var SAe=Vo(zZ(),1);function I$(){this._image=new Image}I$.prototype.isReady=function(){return!0};I$.prototype.shouldDiscardImage=function(e){return e===this._image};function AC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new Yi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new vt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new I$),this._errorEvent=new me}Object.defineProperties(AC.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});AC.fromMetadata=function(e,t){if(!e.imageryPresent)throw new ce(`The server ${e.url} doesn't have imagery`);let n=new AC(t);return n._metadata=e,n};AC.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};AC.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=Ag.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new Ko({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=eEt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){M3(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=tEt(f)),!l(d)&&(!l(p)||p)){let g=nEt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:nb({uint8Array:f,format:d,flipY:!0})})};AC.prototype.pickFeatures=function(e,t,n,i,o){};function eEt(e,t,n,i,o,r){let s=Ag.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function tEt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function nEt(e){let t=SAe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new ce("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var P$=AC;var iEt=new H(1,1,1,.4),oEt=new H(0,1,0,.05),rEt=new H(0,.5,0,.2);function EC(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,iEt),this._glowColor=y(e.glowColor,oEt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,rEt),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(EC.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});EC.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};EC.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};EC.prototype.getTileCredits=function(e,t,n){};EC.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};EC.prototype.pickFeatures=function(e,t,n,i,o){};var R$=EC;function Wh(){}Wh._maxDecodingConcurrency=Math.max(Ht.hardwareConcurrency-1,1);Wh._decodeTaskProcessor=new pi("decodeI3S",Wh._maxDecodingConcurrency);Wh._promise=void 0;async function sEt(){if(await Wh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return Wh._decodeTaskProcessor;throw new ce("I3S decoder could not be initialized.")}Wh.decode=async function(e,t,n,i,o){return l(Wh._promise)||(Wh._promise=sEt()),Wh._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,u=0,f=0;l(s.obb)?(c=s.obb.center[0],u=s.obb.center[1],f=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],u=s.mbs[1],f=s.mbs[2]);let d=$.fromRotationX(-P.PI_OVER_TWO),p=new $;$.multiply(d,a,p);let g=fe.fromDegrees(c,u,f),m=ee.WGS84.cartographicToCartesian(g),x={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ee.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:g,cartesianCenter:m,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(x)})};var j3=Wh;function O$(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(O$.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});O$.prototype.load=async function(){return this._data=await jh.loadJson(this._resource),this._data};var q3=O$;function Eg(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(Eg.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function MG(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function aEt(e){return e==="String"?1:MG(e)}async function cEt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}Eg.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=cEt(this).catch(function(e){console.error(e)}),this._loadPromise)};Eg.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};Eg.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};Eg.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let u=0;u<a;++u){let f=this._parseValue(e,r.valueType,t);f.value.charCodeAt(0)!==0&&(c+=f.value),t=f.offset}this._values[o].push(c)}}}};Eg.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=MG(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=MG(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};Eg.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=aEt(i.valueType)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};Eg.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new ce(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=MG(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new ce(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new ce(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var Y3=Eg;function X3(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(X3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});X3.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var lEt=new h,uEt=new h,fEt=new h,dEt=new h,hEt=new h;function M$(e,t,n,i){let o=h.subtract(i,n,lEt),r=h.cross(o,h.subtract(e,n,uEt),dEt),s=h.cross(o,h.subtract(t,n,fEt),hEt);return h.dot(r,s)>=0}var mEt=new h,pEt=new h,_Et=new h,gEt=new h,yEt=new h,xEt=new h,bEt=new h,TEt=new h,CEt=new h,AEt=new h;X3.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,m,x;l(f)?(g=f[p],m=f[p+1],x=f[p+2]):(g=p*3,m=p*3+1,x=p*3+2);let b=h.fromElements(u[g*3],u[g*3+1],u[g*3+2],mEt),T=h.fromElements(u[m*3],u[m*3+1],u[m*3+2],pEt),C=new h(u[x*3],u[x*3+1],u[x*3+2],_Et);if(!M$(i,b,T,C)||!M$(i,T,b,C)||!M$(i,C,b,T))continue;let A=h.subtract(T,b,gEt),E=h.subtract(C,b,yEt),v=h.cross(A,E,xEt);if(h.magnitude(v)===0)continue;let D=h.normalize(v,bEt),O=h.subtract(i,b,TEt),R=Math.abs(h.dot(O,D));if(R<o){o=R,r=p;let M=h.magnitudeSquared(h.subtract(i,b,O)),N=h.magnitudeSquared(h.subtract(i,T,CEt)),_=h.magnitudeSquared(h.subtract(i,C,AEt));M<N&&M<_?(a=g,c=b,s=M):N<_?(a=m,c=T,s=N):(a=x,c=C,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function vAe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(xC(e[i])):t.push(e[i]);return t}X3.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},u=!1,f,d="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let A=this._parent._data.mesh.material.definition;if(A>=0&&A<this._layer._data.materialDefinitions.length){if(f=this._layer._data.materialDefinitions[A],c=f,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){u=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let E="0";if(l(this._layer._data.textureSetDefinitions))for(let v=0;v<this._layer._data.textureSetDefinitions.length;v++){let D=this._layer._data.textureSetDefinitions[v];for(let O=0;O<D.formats.length;O++){let R=D.formats[O];if(R.format==="jpg"){E=R.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(d=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${E}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=vAe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=vAe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(u=!0,d=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],g=[],m=[];u&&(p=[{sampler:0,source:0}],g=[{uri:d}],m=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let x=[],b=n.length;for(let C=0;C<b;C++){let A=n[C].primitives,E=A.length;for(let v=0;v<E;v++){let D=A[v];if(l(D.material)){for(;D.material>=x.length;){let R=Ge(c,!0);x.push(R)}let O=x[D.material];l(D.extra)&&D.extra.isTransparent?l(O.alphaMode)||(O.alphaMode="BLEND"):O.alphaMode==="BLEND"&&(O.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:x,textures:p,images:g,samplers:m,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var Bv=X3;function Rc(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(Rc.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});Rc.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new Xf(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await jh.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&l(e._parent.resource)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function wAe(e,t){let n=new Y3(e,t);return e._fields[t.name]=n,n.load()}Rc.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(wAe(this,i))}return Promise.all(t)};Rc.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return wAe(this,o)}return Promise.resolve()};Rc.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};Rc.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};Rc.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new Rc(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};Rc.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new Bv(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new Bv(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};Rc.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new q3(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};Rc.prototype._clearGeometryData=function(){this._geometryData=[]};Rc.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let T=0;T<this._dataProvider._geoidDataList.length;T++){let C=this._dataProvider._geoidDataList[T],A=C.projection.project(n);if(A.x>C.nativeExtent.west&&A.x<C.nativeExtent.east&&A.y>C.nativeExtent.south&&A.y<C.nativeExtent.north){n.height+=wEt(A.x,A.y,C);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=ee.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ee.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let T=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/T}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let T=this._data.lodThreshold;s=r/T}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let T=0;T<this._data.lodSelection.length;T++)this._data.lodSelection[T].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[T].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Sa(0,0,0),u=Mt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Oe(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=$.fromQuaternion(u),d=$.inverse(f,new $),p=new F(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=F.inverse(p,new F),m=F.clone(p);l(this._parent._globalTransform)&&F.multiply(p,this._parent._inverseGlobalTransform,m),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let x=[];for(let T=0;T<this._children.length;T++)x.push(this._children[T]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};Rc.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};Rc.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await j3.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function EEt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function SEt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function DAe(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await EEt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!SEt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}Rc.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=DAe(this,t);e.push(n)}return Promise.all(e)};Xf.prototype._hookedRequestContent=Xf.prototype.requestContent;Xf.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new we({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{DAe(e._i3sNode,n)})),e._isLoading=!1,t})}};function vEt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function LG(e,t,n,i){let o=e+t*n;return i[o]}function wEt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=LG(s,a,n.width,n.buffer),d=LG(c,a,n.width,n.buffer),p=LG(s,u,n.width,n.buffer),g=LG(c,u,n.width,n.buffer),m=vEt(o,r,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(Xf.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var kv=Rc;function NG(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(NG.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function L$(e,t){let n=[];for(let i=0;i<e.length;i++){let o=H.byteToFloat(e[i]);i<3?n.push(xC(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function Vv(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=L$(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=L$(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=L$(a.color,a.transparency)))}break}}return n}function DEt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=Vv(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let u=a[c],f=n;for(let d=0;d<u.length;d++){let p=u[d];d===u.length-1?f[p]=s:(l(f[p])||(f[p]={}),f=f[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=Vv(o.symbol,t)}return n}}function IEt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=y(o.classMaxValue,o.classMinValue),a=y(r.classMaxValue,r.classMinValue);return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(Vv(r.symbol,t)))}return i.symbols.push(void 0),i}}NG.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=Vv(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=Vv(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=DEt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=Vv(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=IEt(i,n))}};function IAe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?IAe(s,t,n,i):s}}function PEt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function REt(e,t,n){let i=t[n],o=PEt(e.ranges,i);return e.symbols[o]}NG.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>IAe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>REt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var K3=NG;function ru(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new we({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(ru.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});ru.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new ce(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new K3(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};ru.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};ru.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n)){for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}if(l(n[0]))return{bufferIndex:0,definition:n,geometryBufferInfo:n[0]}}};ru.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new kv(this,t,!0)}else this._rootNode=new kv(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};ru.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};ru._fetchJson=function(e){return e.fetchJson()};ru.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=ru._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};ru.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=re.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=re.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};ru.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?Ge(e):{},e.outlineColor=H.fromCartesian4(oe.fromArray(o))),this._tileset=await ha.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};ru.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};ru.prototype.filterByAttributes=function(e){this._filters=l(e)?Ge(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var SC=ru;function FG(e,t){this._dataProvider=e,this._resource=new we({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(FG.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});FG.prototype.load=async function(){return this._data=await jh.loadJson(this._resource),this._data};FG.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var Z3=FG;function $3(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=y(n.visibility,!0),this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties($3.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});$3._fromData=async function(e,t,n,i){let o=new $3(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let u=$3._fromData(e,t,r[c],o);s.push(u)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let u=a[c];o._sublayers.push(u),o._i3sLayers.push(...u._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new we({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await jh.loadJson(o._resource),c=new SC(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var Q3=$3;var OAe=Vo(PAe(),1);function Ts(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=y(e.showFeatures,!1),this._adjustMaterialAlphaMode=y(e.adjustMaterialAlphaMode,!1),this._applySymbology=y(e.applySymbology,!1),this._calculateNormals=y(e.calculateNormals,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(Ts.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});Ts.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};Ts.prototype.isDestroyed=function(){return!1};Ts.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};Ts.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};Ts.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};Ts.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function OEt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function RAe(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=OEt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=Q3._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new Z3(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=re.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new SC(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}Ts.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=we.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await Ts.loadJson(n),o=new Ts(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=RAe(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await RAe(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};Ts._fetchJson=function(e){return e.fetchJson()};Ts.loadJson=async function(e){let t=await Ts._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new ce(t.error)}return t};Ts.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new ce(`Failed to load binary: ${e.url}`);return t};Ts.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var MEt=new z;function LEt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=fe.fromRadians(t.west,t.north),a=fe.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=z.fromElements(d,p,MEt),m=g.toString();if(!o.hasOwnProperty(m)){let x={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[m]=x,i.push(x)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let m={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},x=d[g],b="Geographic";n._projection instanceof wi&&(b="WebMercator");let T={projectionType:b,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(m.x,m.y,m.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===ad.LERC){let C=OAe.default.decode(x._buffer);T.buffer=C.pixels[0]}else T.buffer=x._buffer;p.push(T)}return p})}async function NEt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await LEt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}Ts.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=NEt(this),this._geoidDataPromise)};Ts.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?re.union(e,n,e):e=re.clone(n)}this._extent=e};Ts.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};Ts.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};Ts.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var jh=Ts;function MAe(){}Object.defineProperties(MAe.prototype,{color:{get:he.throwInstantiationError},intensity:{get:he.throwInstantiationError}});var N$=MAe;var FEt=/\/$/,LAe=new vt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function Uv(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=we.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();FEt.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new vt(c))):c=LAe,this._resource=i,this._imageryProvider=new Ha({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(Uv.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});Uv.prototype.getTileCredits=function(e,t,n){};Uv.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};Uv.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};Uv._defaultCredit=LAe;var F$=Uv;function B$(e){}B$.prototype.isReady=function(){return!0};B$.prototype.shouldDiscardImage=function(e){return!1};var k$=B$;var BEt=new vt("MapQuest, Open Street Map and contributors, CC-BY-SA");function kG(e){e=y(e,y.EMPTY_OBJECT);let t=we.createIfNeeded(y(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${y(e.fileExtension,"png")}`;let n=new rs({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(re.southwest(a),r),u=n.positionToTileXY(re.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,BEt);typeof d=="string"&&(d=new vt(d)),Ha.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(kG.prototype=Object.create(Ha.prototype),kG.prototype.constructor=kG);var Sg=kG;var kEt=new z(1,1);function V$(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=H.clone(y(e.startColor,H.WHITE)),this.endColor=H.clone(y(e.endColor,H.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=z.clone(y(e.imageSize,kEt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(V$.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var NAe=new h;V$.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,NAe),h.add(this.position,NAe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var zv=V$;function FAe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(FAe.prototype,{complete:{get:function(){return this._complete}}});var U$=FAe;function BAe(e){}BAe.prototype.emit=function(e){he.throwInstantiationError()};var z$=BAe;var kAe=new z(1,1);function J3(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new V3(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._emitterModelMatrix=F.clone(y(e.emitterModelMatrix,F.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new F,this._startColor=H.clone(y(e.color,y(e.startColor,H.WHITE))),this._endColor=H.clone(y(e.color,y(e.endColor,H.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=z.clone(y(e.imageSize,y(e.minimumImageSize,kAe))),this._maximumImageSize=z.clone(y(e.imageSize,y(e.maximumImageSize,kAe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new me,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(J3.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._modelMatrix,e),F.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._emitterModelMatrix,e),F.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){H.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){H.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function VEt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new zv;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function UEt(e){let t=e._particlePool.pop();return l(t)||(t=new zv),t}function zEt(e,t){e._particlePool.push(t)}function HEt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function GEt(e){l(e._billboard)&&(e._billboard.show=!1)}function VAe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new H(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function WEt(e,t){t.startColor=H.clone(e._startColor,t.startColor),t.endColor=H.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function jEt(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var VG=new h;J3.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new wu),this._updateParticlePool&&(VEt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=Z.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?VAe(this,s):(GEt(s),zEt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=jEt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=UEt(this),this._emitter.emit(s),h.add(s.position,s.velocity,VG),F.multiplyByPoint(u,VG,VG),s.position=F.multiplyByPoint(u,s.position,s.position),h.subtract(VG,s.position,s.velocity),h.normalize(s.velocity,s.velocity),WEt(this,s),VAe(this,s)}if(this._billboardCollection.update(e),this._previousTime=Z.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&HEt(this)};J3.prototype.isDestroyed=function(){return!1};J3.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var H$=J3;function cf(){he.throwInstantiationError()}cf.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(cf.prototype,{quadtree:{get:he.throwInstantiationError,set:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError}});cf.prototype.update=he.throwInstantiationError;cf.prototype.beginUpdate=he.throwInstantiationError;cf.prototype.endUpdate=he.throwInstantiationError;cf.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;cf.prototype.loadTile=he.throwInstantiationError;cf.prototype.computeTileVisibility=he.throwInstantiationError;cf.prototype.showTileThisFrame=he.throwInstantiationError;cf.prototype.computeDistanceToTile=he.throwInstantiationError;cf.prototype.isDestroyed=he.throwInstantiationError;cf.prototype.destroy=he.throwInstantiationError;var G$=cf;function W$(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(W$.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});W$.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var j$=W$;function ek(){}ek.prototype.evaluate=function(e,t){he.throwInstantiationError()};ek.prototype.evaluateColor=function(e,t){he.throwInstantiationError()};ek.prototype.getShaderFunction=function(e,t,n,i){he.throwInstantiationError()};ek.prototype.getVariables=function(){he.throwInstantiationError()};var q$=ek;function Hv(e){this._ready=!1,this._provider=void 0,this._errorEvent=new me,this._readyEvent=new me,YEt(this,e)}Object.defineProperties(Hv.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});Hv.fromWorldTerrain=function(e){return new Hv(yC(e))};Hv.fromWorldBathymetry=function(e){return new Hv(O3(e))};function qEt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function YEt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){qEt(e._errorEvent,i)}}var tk=Hv;function Gv(){}Gv.prototype.boundingVolume=void 0;Gv.prototype.boundingSphere=void 0;Gv.prototype.distanceToCamera=function(e){he.throwInstantiationError()};Gv.prototype.intersectPlane=function(e){he.throwInstantiationError()};Gv.prototype.createDebugVolume=function(e){he.throwInstantiationError()};var Y$=Gv;function nk(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new Yi({ellipsoid:e.ellipsoid}),this._color=y(e.color,H.YELLOW),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(nk.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});nk.prototype.getTileCredits=function(e,t,n){};nk.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};nk.prototype.pickFeatures=function(e,t,n,i,o){};var ik=nk;function X$(e){he.throwInstantiationError()}X$.prototype.isReady=he.throwInstantiationError;X$.prototype.shouldDiscardImage=he.throwInstantiationError;var K$=X$;var XEt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},Z$=Object.freeze(XEt);function UG(e,t){this.show=!0,l(e)||(e=new je),this.rectangle=je.clone(e),l(t)||(t=qi.fromType(qi.ColorType,{color:new H(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}UG.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!je.equals(t.viewport,this.rectangle))&&(this._rs=Ve.fromCache({blending:un.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new Ue({sources:[this._material.shaderSource,E3]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=ve.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};UG.prototype.isDestroyed=function(){return!1};UG.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var $$=UG;function Q$(){he.throwInstantiationError()}Object.defineProperties(Q$.prototype,{globalTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shape:{get:he.throwInstantiationError},minBounds:{get:he.throwInstantiationError},maxBounds:{get:he.throwInstantiationError},dimensions:{get:he.throwInstantiationError},paddingBefore:{get:he.throwInstantiationError},paddingAfter:{get:he.throwInstantiationError},names:{get:he.throwInstantiationError},types:{get:he.throwInstantiationError},componentTypes:{get:he.throwInstantiationError},minimumValues:{get:he.throwInstantiationError},maximumValues:{get:he.throwInstantiationError},maximumTileCount:{get:he.throwInstantiationError},keyframeCount:{get:he.throwInstantiationError},timeIntervalCollection:{get:he.throwInstantiationError}});Q$.prototype.requestData=he.throwInstantiationError;var J$=Q$;function vC(){he.throwInstantiationError()}Object.defineProperties(vC.prototype,{orientedBoundingBox:{get:he.throwInstantiationError},boundingSphere:{get:he.throwInstantiationError},boundTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shaderUniforms:{get:he.throwInstantiationError},shaderDefines:{get:he.throwInstantiationError},shaderMaximumIntersectionsLength:{get:he.throwInstantiationError}});vC.prototype.update=he.throwInstantiationError;vC.prototype.computeOrientedBoundingBoxForTile=he.throwInstantiationError;vC.prototype.computeOrientedBoundingBoxForSample=he.throwInstantiationError;vC.DefaultMinBounds=he.throwInstantiationError;vC.DefaultMaxBounds=he.throwInstantiationError;var eQ=vC;var KEt=new H,ZEt=new H,$Et=new H,QEt=new H,UAe=new oe,ok=new Uint8Array(4);function zAe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return H.lerp(t.color,n.color,o,i)}function zG(e,t){return{height:e,color:H.clone(t)}}function HAe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?H.equals(t.color,i[n-1].color):!1,a=r?H.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?H.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function JEt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],m=P.clamp(g.height,su._minimumHeight,su._maximumHeight),x=H.clone(g.color,KEt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(zG(m,x))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];u=u&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():u||ug(c,function(g,m){return P.sign(g.height-m.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,zG(su._minimumHeight,c[0].color)),p&&c.splice(c.length,0,zG(su._maximumHeight,c[c.length-1].color)),c=HAe(c),i.push(c)}return i}function eSt(e){let t=JEt(e),n=[],i=[],o;function r(u,f){n.push(zG(u,f))}function s(u,f,d){let p=H.multiplyByScalar(d,1-f.alpha,QEt);p=H.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let m=f<p?u[f]:void 0,x=f>0?u[f-1]:void 0,b=f<p-1?u[f+1]:void 0,T=d<g?i[d]:void 0,C=d>0?i[d-1]:void 0,A=d<g-1?i[d+1]:void 0;if(l(m)&&l(T)&&m.height===T.height){let E=l(A)&&T.height===A.height,v=!l(C),D=!l(A),O=l(b)&&m.height===b.height,R=!l(x),M=!l(b);E?O?(s(m.height,m.color,T.color),s(m.height,b.color,A.color)):R?(r(m.height,T.color),s(m.height,m.color,A.color)):M?(s(m.height,m.color,T.color),r(m.height,A.color)):(s(m.height,m.color,T.color),s(m.height,m.color,A.color)):v?O?(r(m.height,m.color),s(m.height,b.color,T.color)):M?(r(m.height,m.color),r(m.height,T.color)):(R||r(m.height,m.color),s(m.height,m.color,T.color)):D?O?(s(m.height,m.color,T.color),r(m.height,b.color)):R?(r(m.height,T.color),r(m.height,m.color)):M?s(m.height,m.color,T.color):(s(m.height,m.color,T.color),r(m.height,m.color)):O?(s(m.height,m.color,T.color),s(m.height,b.color,T.color)):R?(r(m.height,T.color),s(m.height,m.color,T.color)):M?(s(m.height,m.color,T.color),r(m.height,T.color)):s(m.height,m.color,T.color),f+=O?2:1,d+=E?2:1}else if(l(m)&&l(T)&&l(C)&&m.height<T.height){let E=zAe(m.height,C,T,$Et);l(x)?l(b)?s(m.height,m.color,E):(s(m.height,m.color,E),r(m.height,E)):(r(m.height,E),s(m.height,m.color,E)),f++}else if(l(T)&&l(m)&&l(x)&&T.height<m.height){let E=zAe(T.height,x,m,ZEt);l(C)?l(A)?s(T.height,E,T.color):(s(T.height,E,T.color),r(T.height,E)):(r(T.height,E),s(T.height,E,T.color)),d++}else l(m)&&(!l(T)||m.height<T.height)?(l(T)&&!l(C)&&!l(b)?(r(m.height,m.color),r(m.height,su._emptyColor),r(T.height,su._emptyColor)):(!l(T)&&l(C)&&!l(x)&&(r(C.height,su._emptyColor),r(m.height,su._emptyColor)),r(m.height,m.color)),f++):l(T)&&(!l(m)||T.height<m.height)&&(r(T.height,T.color),d++)}}return HAe(n)}function su(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=eSt(n),r=o.length,s,a,c;if(!su._useFloatTexture(i)){a=Ke.UNSIGNED_BYTE,c=Je.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)oe.packFloat(o[g].height,UAe),oe.pack(UAe,s,g*4)}else{a=Ke.FLOAT,c=i.webgl2?Je.RED:Je.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Pt.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.NEAREST,magnificationFilter:di.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(ok),d[g*4+0]=ok[0],d[g*4+1]=ok[1],d[g*4+2]=ok[2],d[g*4+3]=ok[3];let p=Pt.create({context:i,pixelFormat:Je.RGBA,pixelDatatype:Ke.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new $t({wrapS:Tn.CLAMP_TO_EDGE,wrapT:Tn.CLAMP_TO_EDGE,minificationFilter:Zt.LINEAR,magnificationFilter:di.LINEAR})});return qi.fromType("ElevationBand",{heights:f,colors:p})}su._useFloatTexture=function(e){return e.floatingPointTexture};su._maximumHeight=5906376425472;su._minimumHeight=-5906376425472;su._emptyColor=new H(0,0,0,0);var tQ=su;async function tSt(e,t){if(t=y(t,{}),t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),t.enableCollision=y(t.enableCollision,!0),e=y(e,_C.defaultApiKey),!l(e))return nSt(t);let n,i=_C.getDefaultCredit();l(i)&&(n=[i]);let o=new we({url:`${_C.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return ha.fromUrl(o,t)}var GAe={};async function nSt(e){let i=GAe[2275207];l(i)||(i=xu.fromAssetId(2275207),GAe[2275207]=i);let o=await i;return ha.fromUrl(o,e)}var nQ=tSt;async function iSt(e){let t=await ha.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,H.WHITE).toCssColorString();n=new bC({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var iQ=iSt;function oSt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=F.clone(y(e.modelMatrix,F.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new Wt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new Wt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new St({geometry:Ln.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new Wt(0,0,1,1)},modelMatrix:o})),t.length>0)return new Dn({asynchronous:!1,geometryInstances:t,appearance:new ln({flat:!0,translucent:!1})})}var oQ=oSt;var rQ=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;function rSt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,Je.RGBA),this.pixelDatatype=y(e.pixelDatatype,Ke.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=we.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?Tn.REPEAT:Tn.CLAMP_TO_EDGE;this.sampler=new $t({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var sQ=rSt;var sSt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},aQ=Object.freeze(sSt);var aSt={SIGX:"SIGX",SIGY:"SIGY",SIGZ:"SIGZ",VARX:"VARX",VARY:"VARY",VARZ:"VARZ",SIGR:"VARZ"},cQ=Object.freeze(aSt);function cSt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${Ym(s)} + with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var lQ=cSt;globalThis.CESIUM_VERSION="1.123";var rk;typeof ko<"u"&&(rk=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,S){return _===null||typeof _ in x?_===S:!1}function u(_,S){var w;return function(){w||(w=m.a.setTimeout(function(){w=e,_()},S))}}function f(_,S){var w;return function(){clearTimeout(w),w=m.a.setTimeout(_,S)}}function d(_,S){S&&S!=="change"?S==="beforeChange"?this.pc(_):this.gb(_,S):this.qc(_)}function p(_,S){S!==null&&S.s&&S.s()}function g(_,S){var w=this.qd,I=w[E];I.ra||(this.Qb&&this.mb[S]?(w.uc(S,_,this.mb[S]),this.mb[S]=null,--this.Qb):I.I[S]||w.uc(S,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,S){for(var w=_.split("."),I=m,L=0;L<w.length-1;L++)I=I[w[L]];I[w[w.length-1]]=S},m.L=function(_,S,w){_[S]=w},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(j,K){for(var Q in j)L.call(j,Q)&&K(Q,j[Q])}function S(j,K){if(K)for(var Q in K)L.call(K,Q)&&(j[Q]=K[Q]);return j}function w(j,K){return j.__proto__=K,j}function I(j,K,Q,de){var ye=j[K].match(q)||[];m.a.D(Q.match(q),function(ae){m.a.Na(ye,ae,de)}),j[K]=ye.join(" ")}var L=Object.prototype.hasOwnProperty,B={__proto__:[]}instanceof Array,U=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(j,K){if(K.length)for(var Q=0,de=K.length;Q<de;Q++)G[K[Q]]=j});var k={propertychange:!0},W=n&&function(){for(var j=3,K=n.createElement("div"),Q=K.getElementsByTagName("i");K.innerHTML="<!--[if gt IE "+ ++j+"]><i></i><![endif]-->",Q[0];);return 4<j?j:e}(),q=/\S+/g,J;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(j,K,Q){for(var de=0,ye=j.length;de<ye;de++)K.call(Q,j[de],de,j)},A:typeof Array.prototype.indexOf=="function"?function(j,K){return Array.prototype.indexOf.call(j,K)}:function(j,K){for(var Q=0,de=j.length;Q<de;Q++)if(j[Q]===K)return Q;return-1},Lb:function(j,K,Q){for(var de=0,ye=j.length;de<ye;de++)if(K.call(Q,j[de],de,j))return j[de];return e},Pa:function(j,K){var Q=m.a.A(j,K);0<Q?j.splice(Q,1):Q===0&&j.shift()},wc:function(j){var K=[];return j&&m.a.D(j,function(Q){0>m.a.A(K,Q)&&K.push(Q)}),K},Mb:function(j,K,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)de.push(K.call(Q,j[ye],ye));return de},jb:function(j,K,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)K.call(Q,j[ye],ye)&&de.push(j[ye]);return de},Nb:function(j,K){if(K instanceof Array)j.push.apply(j,K);else for(var Q=0,de=K.length;Q<de;Q++)j.push(K[Q]);return j},Na:function(j,K,Q){var de=m.a.A(m.a.bc(j),K);0>de?Q&&j.push(K):Q||j.splice(de,1)},Ba:B,extend:S,setPrototypeOf:w,Ab:B?w:S,P:_,Ga:function(j,K,Q){if(!j)return j;var de={},ye;for(ye in j)L.call(j,ye)&&(de[ye]=K.call(Q,j[ye],ye,j));return de},Tb:function(j){for(;j.firstChild;)m.removeNode(j.firstChild)},Yb:function(j){j=m.a.la(j);for(var K=(j[0]&&j[0].ownerDocument||n).createElement("div"),Q=0,de=j.length;Q<de;Q++)K.appendChild(m.oa(j[Q]));return K},Ca:function(j,K){for(var Q=0,de=j.length,ye=[];Q<de;Q++){var ae=j[Q].cloneNode(!0);ye.push(K?m.oa(ae):ae)}return ye},va:function(j,K){if(m.a.Tb(j),K)for(var Q=0,de=K.length;Q<de;Q++)j.appendChild(K[Q])},Xc:function(j,K){var Q=j.nodeType?[j]:j;if(0<Q.length){for(var de=Q[0],ye=de.parentNode,ae=0,_e=K.length;ae<_e;ae++)ye.insertBefore(K[ae],de);for(ae=0,_e=Q.length;ae<_e;ae++)m.removeNode(Q[ae])}},Ua:function(j,K){if(j.length){for(K=K.nodeType===8&&K.parentNode||K;j.length&&j[0].parentNode!==K;)j.splice(0,1);for(;1<j.length&&j[j.length-1].parentNode!==K;)j.length--;if(1<j.length){var Q=j[0],de=j[j.length-1];for(j.length=0;Q!==de;)j.push(Q),Q=Q.nextSibling;j.push(de)}}return j},Zc:function(j,K){7>W?j.setAttribute("selected",K):j.selected=K},Db:function(j){return j===null||j===e?"":j.trim?j.trim():j.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(j,K){return j=j||"",K.length>j.length?!1:j.substring(0,K.length)===K},vd:function(j,K){if(j===K)return!0;if(j.nodeType===11)return!1;if(K.contains)return K.contains(j.nodeType!==1?j.parentNode:j);if(K.compareDocumentPosition)return(K.compareDocumentPosition(j)&16)==16;for(;j&&j!=K;)j=j.parentNode;return!!j},Sb:function(j){return m.a.vd(j,j.ownerDocument.documentElement)},kd:function(j){return!!m.a.Lb(j,m.a.Sb)},R:function(j){return j&&j.tagName&&j.tagName.toLowerCase()},Ac:function(j){return m.onError?function(){try{return j.apply(this,arguments)}catch(K){throw m.onError&&m.onError(K),K}}:j},setTimeout:function(j,K){return setTimeout(m.a.Ac(j),K)},Gc:function(j){setTimeout(function(){throw m.onError&&m.onError(j),j},0)},B:function(j,K,Q){var de=m.a.Ac(Q);if(Q=k[K],m.options.useOnlyNativeEvents||Q||!o)if(Q||typeof j.addEventListener!="function")if(typeof j.attachEvent<"u"){var ye=function(_e){de.call(j,_e)},ae="on"+K;j.attachEvent(ae,ye),m.a.K.za(j,function(){j.detachEvent(ae,ye)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else j.addEventListener(K,de,!1);else J||(J=typeof o(j).on=="function"?"on":"bind"),o(j)[J](K,de)},Fb:function(j,K){if(!j||!j.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var Q;if(m.a.R(j)==="input"&&j.type&&K.toLowerCase()=="click"?(Q=j.type,Q=Q=="checkbox"||Q=="radio"):Q=!1,m.options.useOnlyNativeEvents||!o||Q)if(typeof n.createEvent=="function")if(typeof j.dispatchEvent=="function")Q=n.createEvent(G[K]||"HTMLEvents"),Q.initEvent(K,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,j),j.dispatchEvent(Q);else throw Error("The supplied element doesn't support dispatchEvent");else if(Q&&j.click)j.click();else if(typeof j.fireEvent<"u")j.fireEvent("on"+K);else throw Error("Browser doesn't support triggering events");else o(j).trigger(K)},f:function(j){return m.O(j)?j():j},bc:function(j){return m.O(j)?j.v():j},Eb:function(j,K,Q){var de;K&&(typeof j.classList=="object"?(de=j.classList[Q?"add":"remove"],m.a.D(K.match(q),function(ye){de.call(j.classList,ye)})):typeof j.className.baseVal=="string"?I(j.className,"baseVal",K,Q):I(j,"className",K,Q))},Bb:function(j,K){var Q=m.a.f(K);(Q===null||Q===e)&&(Q="");var de=m.h.firstChild(j);!de||de.nodeType!=3||m.h.nextSibling(de)?m.h.va(j,[j.ownerDocument.createTextNode(Q)]):de.data=Q,m.a.Ad(j)},Yc:function(j,K){if(j.name=K,7>=W)try{var Q=j.name.replace(/[&<>'"]/g,function(de){return"&#"+de.charCodeAt(0)+";"});j.mergeAttributes(n.createElement("<input name='"+Q+"'/>"),!1)}catch{}},Ad:function(j){9<=W&&(j=j.nodeType==1?j:j.parentNode,j.style&&(j.style.zoom=j.style.zoom))},wd:function(j){if(W){var K=j.style.width;j.style.width=0,j.style.width=K}},Pd:function(j,K){j=m.a.f(j),K=m.a.f(K);for(var Q=[],de=j;de<=K;de++)Q.push(de);return Q},la:function(j){for(var K=[],Q=0,de=j.length;Q<de;Q++)K.push(j[Q]);return K},Da:function(j){return U?Symbol(j):j},Zd:W===6,$d:W===7,W,Lc:function(j,K){for(var Q=m.a.la(j.getElementsByTagName("input")).concat(m.a.la(j.getElementsByTagName("textarea"))),de=typeof K=="string"?function(_e){return _e.name===K}:function(_e){return K.test(_e.name)},ye=[],ae=Q.length-1;0<=ae;ae--)de(Q[ae])&&ye.push(Q[ae]);return ye},Nd:function(j){return typeof j=="string"&&(j=m.a.Db(j))?r&&r.parse?r.parse(j):new Function("return "+j)():null},hc:function(j,K,Q){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(m.a.f(j),K,Q)},Od:function(j,K,Q){Q=Q||{};var de=Q.params||{},ye=Q.includeFields||this.Jc,ae=j;if(typeof j=="object"&&m.a.R(j)==="form")for(var ae=j.action,_e=ye.length-1;0<=_e;_e--)for(var xe=m.a.Lc(j,ye[_e]),De=xe.length-1;0<=De;De--)de[xe[De].name]=xe[De].value;K=m.a.f(K);var Ae=n.createElement("form");Ae.style.display="none",Ae.action=ae,Ae.method="post";for(var ke in K)j=n.createElement("input"),j.type="hidden",j.name=ke,j.value=m.a.hc(m.a.f(K[ke])),Ae.appendChild(j);_(de,function(ze,tt){var wt=n.createElement("input");wt.type="hidden",wt.name=ze,wt.value=tt,Ae.appendChild(wt)}),n.body.appendChild(Ae),Q.submitter?Q.submitter(Ae):Ae.submit(),setTimeout(function(){Ae.parentNode.removeChild(Ae)},0)}}}(),m.b("utils",m.a),m.b("utils.arrayForEach",m.a.D),m.b("utils.arrayFirst",m.a.Lb),m.b("utils.arrayFilter",m.a.jb),m.b("utils.arrayGetDistinctValues",m.a.wc),m.b("utils.arrayIndexOf",m.a.A),m.b("utils.arrayMap",m.a.Mb),m.b("utils.arrayPushAll",m.a.Nb),m.b("utils.arrayRemoveItem",m.a.Pa),m.b("utils.cloneNodes",m.a.Ca),m.b("utils.createSymbolOrString",m.a.Da),m.b("utils.extend",m.a.extend),m.b("utils.fieldsIncludedWithJsonPost",m.a.Jc),m.b("utils.getFormFields",m.a.Lc),m.b("utils.objectMap",m.a.Ga),m.b("utils.peekObservable",m.a.bc),m.b("utils.postJson",m.a.Od),m.b("utils.parseJson",m.a.Nd),m.b("utils.registerEventHandler",m.a.B),m.b("utils.stringifyJson",m.a.hc),m.b("utils.range",m.a.Pd),m.b("utils.toggleDomNodeCssClass",m.a.Eb),m.b("utils.triggerEvent",m.a.Fb),m.b("utils.unwrapObservable",m.a.f),m.b("utils.objectForEach",m.a.P),m.b("utils.addOrRemoveItem",m.a.Na),m.b("utils.setTextContent",m.a.Bb),m.b("unwrap",m.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var S=this;if(arguments.length===1)return function(){return S.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),S.apply(_,I)}}),m.a.g=new function(){var _=0,S="__ko__"+new Date().getTime(),w={},I,L;return m.a.W?(I=function(B,U){var V=B[S];if(!V||V==="null"||!w[V]){if(!U)return e;V=B[S]="ko"+_++,w[V]={}}return w[V]},L=function(B){var U=B[S];return U?(delete w[U],B[S]=null,!0):!1}):(I=function(B,U){var V=B[S];return!V&&U&&(V=B[S]={}),V},L=function(B){return B[S]?(delete B[S],!0):!1}),{get:function(B,U){var V=I(B,!1);return V&&V[U]},set:function(B,U,V){(B=I(B,V!==e))&&(B[U]=V)},Ub:function(B,U,V){return B=I(B,!0),B[U]||(B[U]=V)},clear:L,Z:function(){return _+++S}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(U,V){var G=m.a.g.get(U,I);return G===e&&V&&(G=[],m.a.g.set(U,I,G)),G}function S(U){var V=_(U,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](U);m.a.g.clear(U),m.a.K.cleanExternalData(U),B[U.nodeType]&&w(U.childNodes,!0)}function w(U,V){for(var G=[],k,W=0;W<U.length;W++)if((!V||U[W].nodeType===8)&&(S(G[G.length]=k=U[W]),U[W]!==k))for(;W--&&m.a.A(G,U[W])==-1;);}var I=m.a.g.Z(),L={1:!0,8:!0,9:!0},B={1:!0,9:!0};return{za:function(U,V){if(typeof V!="function")throw Error("Callback must be a function");_(U,!0).push(V)},yb:function(U,V){var G=_(U,!1);G&&(m.a.Pa(G,V),G.length==0&&m.a.g.set(U,I,e))},oa:function(U){return m.u.G(function(){L[U.nodeType]&&(S(U),B[U.nodeType]&&w(U.getElementsByTagName("*")))}),U},removeNode:function(U){m.oa(U),U.parentNode&&U.parentNode.removeChild(U)},cleanExternalData:function(U){o&&typeof o.cleanData=="function"&&o.cleanData([U])}}},m.oa=m.a.K.oa,m.removeNode=m.a.K.removeNode,m.b("cleanNode",m.oa),m.b("removeNode",m.removeNode),m.b("utils.domNodeDisposal",m.a.K),m.b("utils.domNodeDisposal.addDisposeCallback",m.a.K.za),m.b("utils.domNodeDisposal.removeDisposeCallback",m.a.K.yb),function(){var _=[0,"",""],S=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],L={thead:S,tbody:S,tfoot:S,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},B=8>=m.a.W;m.a.ua=function(U,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(U,V)||[];else if((G=o.clean([U],V))&&G[0]){for(var k=G[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(G=V)||(G=n);var k=G.parentWindow||G.defaultView||t,W=m.a.Db(U).toLowerCase(),q=G.createElement("div"),J;for(J=(W=W.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&L[W[1]]||_,W=J[0],J="ignored<div>"+J[1]+U+J[2]+"</div>",typeof k.innerShiv=="function"?q.appendChild(k.innerShiv(J)):(B&&G.body.appendChild(q),q.innerHTML=J,B&&q.parentNode.removeChild(q));W--;)q=q.lastChild;G=m.a.la(q.lastChild.childNodes)}return G},m.a.Md=function(U,V){var G=m.a.ua(U,V);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(U,V){if(m.a.Tb(U),V=m.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(U).html(V);else for(var G=m.a.ua(V,U.ownerDocument),k=0;k<G.length;k++)U.appendChild(G[k])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var L=m.aa.Uc(w.nodeValue);L!=null&&I.push({ud:w,Kd:L})}else if(w.nodeType==1)for(var L=0,B=w.childNodes,U=B.length;L<U;L++)_(B[L],I)}}var S={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return S[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var L=S[w];if(L===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return L.apply(null,I||[]),!0}finally{delete S[w]}},cd:function(w,I){var L=[];_(w,L);for(var B=0,U=L.length;B<U;B++){var V=L[B].ud,G=[V];I&&m.a.Nb(G,I),m.aa.bd(L[B].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),m.b("memoization",m.aa),m.b("memoization.memoize",m.aa.Xb),m.b("memoization.unmemoize",m.aa.bd),m.b("memoization.parseMemoText",m.aa.Uc),m.b("memoization.unmemoizeDomNodeAndDescendants",m.aa.cd),m.na=function(){function _(){if(L){for(var V=L,G=0,k;U<L;)if(k=I[U++]){if(U>V){if(5e3<=++G){U=L,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=L}try{k()}catch(W){m.a.Gc(W)}}}}function S(){_(),U=L=I.length=0}var w,I=[],L=0,B=1,U=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(S):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return L||m.na.scheduler(S),I[L++]=V,B++},cancel:function(V){V=V-(B-L),V>=U&&V<L&&(I[V]=null)},resetForTesting:function(){var V=L-U;return U=L=I.length=0,V},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,S){_.throttleEvaluation=S;var w=null;return m.$({read:_,write:function(I){clearTimeout(w),w=m.a.setTimeout(function(){_(I)},S)}})},rateLimit:function(_,S){var w,I,L;typeof S=="number"?w=S:(w=S.timeout,I=S.method),_.Hb=!1,L=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:u,_.ub(function(B){return L(B,w,S)})},deferred:function(_,S){if(S!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,L=!1;return function(){if(!L){m.na.cancel(I),I=m.na.zb(w);try{L=!0,_.notifySubscribers(e,"dirty")}finally{L=!1}}}}))},notify:function(_,S){_.equalityComparer=S=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,S,w){this.da=_,this.lc=S,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,m.L(this,"dispose",this.s),m.L(this,"disposeWhenNodeIsRemoved",this.l)},m.ic.prototype.s=function(){this.Ib||(this.fb&&m.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},m.ic.prototype.l=function(_){this.Jb=_,m.a.K.za(_,this.fb=this.s.bind(this))},m.T=function(){m.a.Ab(this,b),b.qb(this)};var b={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,S,w){var I=this;w=w||"change";var L=new m.ic(I,S?_.bind(S):_,function(){m.a.Pa(I.U[w],L),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(L),L},notifySubscribers:function(_,S){if(S=S||"change",S==="change"&&this.Gb(),this.Wa(S)){var w=S==="change"&&this.ed||this.U[S].slice(0);try{m.u.xc();for(var I=0,L;L=w[I];++I)L.Ib||L.lc(_)}finally{m.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var S=this,w=m.O(S),I,L,B,U,V;S.gb||(S.gb=S.notifySubscribers,S.notifySubscribers=d);var G=_(function(){S.Ja=!1,w&&U===S&&(U=S.nc?S.nc():S());var k=L||V&&S.sb(B,U);V=L=I=!1,k&&S.gb(B=U)});S.qc=function(k,W){W&&S.Ja||(V=!W),S.ed=S.U.change.slice(0),S.Ja=I=!0,U=k,G()},S.pc=function(k){I||(B=k,S.gb(k,"beforeChange"))},S.rc=function(){V=!0},S.gd=function(){S.sb(B,S.v(!0))&&(L=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var S=0;return m.a.P(this.U,function(w,I){w!=="dirty"&&(S+=I.length)}),S},sb:function(_,S){return!this.equalityComparer||!this.equalityComparer(_,S)},toString:function(){return"[object Object]"},extend:function(_){var S=this;return _&&m.a.P(_,function(w,I){var L=m.Ta[w];typeof L=="function"&&(S=L(S,I)||S)}),S}};m.L(b,"init",b.qb),m.L(b,"subscribe",b.subscribe),m.L(b,"extend",b.extend),m.L(b,"getSubscriptionsCount",b.Bd),m.a.Ba&&m.a.setPrototypeOf(b,Function.prototype),m.T.fn=b,m.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},m.b("subscribable",m.T),m.b("isSubscribable",m.Qc),m.S=m.u=function(){function _(B){w.push(I),I=B}function S(){I=w.pop()}var w=[],I,L=0;return{xc:_,end:S,cc:function(B){if(I){if(!m.Qc(B))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,B,B.fd||(B.fd=++L))}},G:function(B,U,V){try{return _(),B.apply(U,V||[])}finally{S()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),m.b("computedContext",m.S),m.b("computedContext.getDependenciesCount",m.S.qa),m.b("computedContext.getDependencies",m.S.Va),m.b("computedContext.isInitial",m.S.Ya),m.b("computedContext.registerDependency",m.S.cc),m.b("ignoreDependencies",m.Yd=m.u.G);var T=m.a.Da("_latestValue");m.ta=function(_){function S(){return 0<arguments.length?(S.sb(S[T],arguments[0])&&(S.ya(),S[T]=arguments[0],S.xa()),this):(m.u.cc(S),S[T])}return S[T]=_,m.a.Ba||m.a.extend(S,m.T.fn),m.T.fn.qb(S),m.a.Ab(S,C),m.options.deferUpdates&&m.Ta.deferred(S,!0),S};var C={equalityComparer:c,v:function(){return this[T]},xa:function(){this.notifySubscribers(this[T],"spectate"),this.notifySubscribers(this[T])},ya:function(){this.notifySubscribers(this[T],"beforeChange")}};m.a.Ba&&m.a.setPrototypeOf(C,m.T.fn);var A=m.ta.Ma="__ko_proto__";C[A]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[A])&&_!==C[A]&&_!==m.o.fn[A])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[A]===C[A]||_[A]===m.o.fn[A]&&_.Nc)},m.b("observable",m.ta),m.b("isObservable",m.O),m.b("isWriteableObservable",m.Za),m.b("isWritableObservable",m.Za),m.b("observable.fn",C),m.L(C,"peek",C.v),m.L(C,"valueHasMutated",C.xa),m.L(C,"valueWillMutate",C.ya),m.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=m.ta(_),m.a.Ab(_,m.Ha.fn),_.extend({trackArrayChanges:!0})},m.Ha.fn={remove:function(_){for(var S=this.v(),w=[],I=typeof _!="function"||m.O(_)?function(U){return U===_}:_,L=0;L<S.length;L++){var B=S[L];if(I(B)){if(w.length===0&&this.ya(),S[L]!==B)throw Error("Array modified during remove; cannot remove item");w.push(B),S.splice(L,1),L--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var S=this.v(),w=S.slice(0);return this.ya(),S.splice(0,S.length),this.xa(),w}return _?this.remove(function(I){return 0<=m.a.A(_,I)}):[]},destroy:function(_){var S=this.v(),w=typeof _!="function"||m.O(_)?function(B){return B===_}:_;this.ya();for(var I=S.length-1;0<=I;I--){var L=S[I];w(L)&&(L._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(S){return 0<=m.a.A(_,S)}):[]},indexOf:function(_){var S=this();return m.a.A(S,_)},replace:function(_,S){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=S,this.xa())},sorted:function(_){var S=this().slice(0);return _?S.sort(_):S.sort()},reversed:function(){return this().slice(0).reverse()}},m.a.Ba&&m.a.setPrototypeOf(m.Ha.fn,m.ta.fn),m.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){m.Ha.fn[_]=function(){var S=this.v();this.ya(),this.zc(S,_,arguments);var w=S[_].apply(S,arguments);return this.xa(),w===S?this:w}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var S=this();return S[_].apply(S,arguments)}}),m.Pc=function(_){return m.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},m.b("observableArray",m.Ha),m.b("isObservableArray",m.Pc),m.Ta.trackArrayChanges=function(_,S){function w(){function q(){if(V){var J=[].concat(_.v()||[]),j;_.Wa("arrayChange")&&((!L||1<V)&&(L=m.a.Pb(G,J,_.Ob)),j=L),G=J,L=null,V=0,j&&j.length&&_.notifySubscribers(j,"arrayChange")}}I?q():(I=!0,U=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),L=null,B=_.subscribe(q))}if(_.Ob={},S&&typeof S=="object"&&m.a.extend(_.Ob,S),_.Ob.sparse=!0,!_.zc){var I=!1,L=null,B,U,V=0,G,k=_.Qa,W=_.hb;_.Qa=function(q){k&&k.call(_,q),q==="arrayChange"&&w()},_.hb=function(q){W&&W.call(_,q),q!=="arrayChange"||_.Wa("arrayChange")||(B&&B.s(),U&&U.s(),U=B=null,I=!1,G=e)},_.zc=function(q,J,j){function K(Ae,ke,ze){return Q[Q.length]={status:Ae,value:ke,index:ze}}if(I&&!V){var Q=[],de=q.length,ye=j.length,ae=0;switch(J){case"push":ae=de;case"unshift":for(J=0;J<ye;J++)K("added",j[J],ae+J);break;case"pop":ae=de-1;case"shift":de&&K("deleted",q[ae],ae);break;case"splice":J=Math.min(Math.max(0,0>j[0]?de+j[0]:j[0]),de);for(var de=ye===1?de:Math.min(J+(j[1]||0),de),ye=J+ye-2,ae=Math.max(de,ye),_e=[],xe=[],De=2;J<ae;++J,++De)J<de&&xe.push(K("deleted",q[J],J)),J<ye&&_e.push(K("added",j[De],J));m.a.Kc(xe,_e);break;default:return}L=Q}}}};var E=m.a.Da("_state");m.o=m.$=function(_,S,w){function I(){if(0<arguments.length){if(typeof L=="function")L.apply(B.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return B.ra||m.u.cc(I),(B.ka||B.J&&I.Xa())&&I.ha(),B.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var L=w.write,B={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:S||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[E]=B,I.Nc=typeof L=="function",m.a.Ba||m.a.extend(I,m.T.fn),m.T.fn.qb(I),m.a.Ab(I,v),w.pure?(B.wb=!0,B.J=!0,m.a.extend(I,D)):w.deferEvaluation&&m.a.extend(I,O),m.options.deferUpdates&&m.Ta.deferred(I,!0),B.l&&(B.jc=!0,B.l.nodeType||(B.l=null)),B.J||w.deferEvaluation||I.ha(),B.l&&I.ja()&&m.a.K.za(B.l,B.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[E].V},Va:function(){var _=[];return m.a.P(this[E].I,function(S,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[E].V)return!1;var S=this.Va();return m.a.A(S,_)!==-1?!0:!!m.a.Lb(S,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,S,w){if(this[E].wb&&S===this)throw Error("A 'pure' computed must not be called recursively");this[E].I[_]=w,w.Ka=this[E].V++,w.La=S.ob()},Xa:function(){var _,S,w=this[E].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(S=w[_],this.Ia&&S.da.Ja||S.da.Dd(S.La)))return!0},Jd:function(){this.Ia&&!this[E].rb&&this.Ia(!1)},ja:function(){var _=this[E];return _.ka||0<_.V},Rd:function(){this.Ja?this[E].ka&&(this[E].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var S=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){S.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,S=_.throttleEvaluation;S&&0<=S?(clearTimeout(this[E].Ic),this[E].Ic=m.a.setTimeout(function(){_.ha(!0)},S)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var S=this[E],w=S.Sa,I=!1;if(!S.rb&&!S.ra){if(S.l&&!m.a.Sb(S.l)||w&&w()){if(!S.jc){this.s();return}}else S.jc=!1;S.rb=!0;try{I=this.zd(_)}finally{S.rb=!1}return I}},zd:function(_){var S=this[E],I=!1,w=S.wb?e:!S.V,I={qd:this,mb:S.I,Qb:S.V};m.u.xc({pd:I,od:g,o:this,Ya:w}),S.I={},S.V=0;var L=this.yd(S,I);return S.V?I=this.sb(S.X,L):(this.s(),I=!0),I&&(S.J?this.Gb():this.notifySubscribers(S.X,"beforeChange"),S.X=L,this.notifySubscribers(S.X,"spectate"),!S.J&&_&&this.notifySubscribers(S.X),this.rc&&this.rc()),w&&this.notifySubscribers(S.X,"awake"),I},yd:function(_,S){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{m.u.end(),S.Qb&&!_.J&&m.a.P(S.mb,p),_.sa=_.ka=!1}},v:function(_){var S=this[E];return(S.ka&&(_||!S.V)||S.J&&this.Xa())&&this.ha(),S.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[E].J||(this[E].sa?this.ha():this[E].ka=!1),this[E].X},this.Ia=function(S){this.pc(this[E].X),this[E].ka=!0,S&&(this[E].sa=!0),this.qc(this,!S)}},s:function(){var _=this[E];!_.J&&_.I&&m.a.P(_.I,function(S,w){w.s&&w.s()}),_.l&&_.Rb&&m.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var S=this,w=S[E];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||S.Xa())w.I=null,w.V=0,S.ha()&&S.Gb();else{var I=[];m.a.P(w.I,function(L,B){I[B.Ka]=L}),m.a.D(I,function(L,B){var U=w.I[L],V=S.$c(U.da);V.Ka=B,V.La=U.La,w.I[L]=V}),S.Xa()&&S.ha()&&S.Gb()}w.ra||S.notifySubscribers(w.X,"awake")}},hb:function(_){var S=this[E];S.ra||_!="change"||this.Wa("change")||(m.a.P(S.I,function(w,I){I.s&&(S.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),S.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[E];return _.J&&(_.sa||this.Xa())&&this.ha(),m.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};m.a.Ba&&m.a.setPrototypeOf(v,m.T.fn);var R=m.ta.Ma;v[R]=m.o,m.Oc=function(_){return typeof _=="function"&&_[R]===v[R]},m.Fd=function(_){return m.Oc(_)&&_[E]&&_[E].wb},m.b("computed",m.o),m.b("dependentObservable",m.o),m.b("isComputed",m.Oc),m.b("isPureComputed",m.Fd),m.b("computed.fn",v),m.L(v,"peek",v.v),m.L(v,"dispose",v.s),m.L(v,"isActive",v.ja),m.L(v,"getDependenciesCount",v.qa),m.L(v,"getDependencies",v.Va),m.xb=function(_,S){return typeof _=="function"?m.o(_,S,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,S))},m.b("pureComputed",m.xb),function(){function _(I,L,B){if(B=B||new w,I=L(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var U=I instanceof Array?[]:{};return B.save(I,U),S(I,function(V){var G=L(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":U[V]=G;break;case"object":case"undefined":var k=B.get(G);U[V]=k!==e?k:_(G,L,B)}}),U}function S(I,L){if(I instanceof Array){for(var B=0;B<I.length;B++)L(B);typeof I.toJSON=="function"&&L("toJSON")}else for(B in I)L(B)}function w(){this.keys=[],this.values=[]}m.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(L){for(var B=0;m.O(L)&&10>B;B++)L=L();return L})},m.toJSON=function(I,L,B){return I=m.ad(I),m.a.hc(I,L,B)},w.prototype={constructor:w,save:function(I,L){var B=m.a.A(this.keys,I);0<=B?this.values[B]=L:(this.keys.push(I),this.values.push(L))},get:function(I){return I=m.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,S,w){function I(L){var B=m.xb(_,w).extend({ma:"always"}),U=B.subscribe(function(V){V&&(U.s(),L(V))});return B.notifySubscribers(B.v()),U}return typeof Promise!="function"||S?I(S.bind(w)):new Promise(I)},m.b("when",m.Wd),function(){m.w={M:function(_){switch(m.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?m.a.g.get(_,m.c.options.$b):7>=m.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,S,w){switch(m.a.R(_)){case"option":typeof S=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=S):(m.a.g.set(_,m.c.options.$b,S),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof S=="number"?S:"");break;case"select":(S===""||S===null)&&(S=e);for(var I=-1,L=0,B=_.options.length,U;L<B;++L)if(U=m.w.M(_.options[L]),U==S||U===""&&S===e){I=L;break}(w||0<=I||S===e&&1<_.size)&&(_.selectedIndex=I,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(S===null||S===e)&&(S=""),_.value=S}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(V){V=m.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` +,`;var G=[],k=V.match(I),W,q=[],J=0;if(1<k.length){for(var j=0,K;K=k[j];++j){var Q=K.charCodeAt(0);if(Q===44){if(0>=J){G.push(W&&q.length?{key:W,value:q.join("")}:{unknown:W||q.join("")}),W=J=0,q=[];continue}}else if(Q===58){if(!J&&!W&&q.length===1){W=q.pop();continue}}else{if(Q===47&&1<K.length&&(K.charCodeAt(1)===47||K.charCodeAt(1)===42))continue;Q===47&&j&&1<K.length?(Q=k[j-1].match(L))&&!B[Q[0]]&&(V=V.substr(V.indexOf(K)+1),k=V.match(I),j=-1,K="/"):Q===40||Q===123||Q===91?++J:Q===41||Q===125||Q===93?--J:W||q.length||Q!==34&&Q!==39||(K=K.slice(1,-1))}q.push(K)}if(0<J)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var S=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),L=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},U={};return{Ra:[],wa:U,ac:_,vb:function(V,G){function k(Q,de){var ye;if(!j){var ae=m.getBindingHandler(Q);if(ae&&ae.preprocess&&!(de=ae.preprocess(de,Q,k)))return;(ae=U[Q])&&(ye=de,0<=m.a.A(S,ye)?ye=!1:(ae=ye.match(w),ye=ae===null?!1:ae[1]?"Object("+ae[1]+")"+ae[2]:ye),ae=ye),ae&&q.push("'"+(typeof U[Q]=="string"?U[Q]:Q)+"':function(_z){"+ye+"=_z}")}J&&(de="function(){return "+de+" }"),W.push("'"+Q+"':"+de)}G=G||{};var W=[],q=[],J=G.valueAccessors,j=G.bindingParams,K=typeof V=="string"?_(V):V;return m.a.D(K,function(Q){k(Q.key||Q.unknown,Q.value)}),q.length&&k("_ko_property_writers","{"+q.join(",")+" }"),W.join(",")},Id:function(V,G){for(var k=0;k<V.length;k++)if(V[k].key==G)return!0;return!1},eb:function(V,G,k,W,q){V&&m.O(V)?!m.Za(V)||q&&V.v()===W||V(W):(V=G.get("_ko_property_writers"))&&V[k]&&V[k](W)}}}(),m.b("expressionRewriting",m.m),m.b("expressionRewriting.bindingRewriteValidators",m.m.Ra),m.b("expressionRewriting.parseObjectLiteral",m.m.ac),m.b("expressionRewriting.preProcessBindings",m.m.vb),m.b("expressionRewriting._twoWayBindings",m.m.wa),m.b("jsonExpressionRewriting",m.m),m.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",m.m.vb),function(){function _(k){return k.nodeType==8&&B.test(L?k.text:k.nodeValue)}function S(k){return k.nodeType==8&&U.test(L?k.text:k.nodeValue)}function w(k,W){for(var q=k,J=1,j=[];q=q.nextSibling;){if(S(q)&&(m.a.g.set(q,G,!0),J--,J===0))return j;j.push(q),_(q)&&J++}if(!W)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function I(k,W){var q=w(k,W);return q?0<q.length?q[q.length-1].nextSibling:k.nextSibling:null}var L=n&&n.createComment("test").text==="<!--test-->",B=L?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,U=L?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?w(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var W=0,q=k.length;W<q;W++)m.removeNode(k[W])}else m.a.Tb(k)},va:function(k,W){if(_(k)){m.h.Ea(k);for(var q=k.nextSibling,J=0,j=W.length;J<j;J++)q.parentNode.insertBefore(W[J],q)}else m.a.va(k,W)},Vc:function(k,W){var q;_(k)?(q=k.nextSibling,k=k.parentNode):q=k.firstChild,q?W!==q&&k.insertBefore(W,q):k.appendChild(W)},Wb:function(k,W,q){q?(q=q.nextSibling,_(k)&&(k=k.parentNode),q?W!==q&&k.insertBefore(W,q):k.appendChild(W)):m.h.Vc(k,W)},firstChild:function(k){if(_(k))return!k.nextSibling||S(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&S(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(_(k)&&(k=I(k)),k.nextSibling&&S(k.nextSibling)){var W=k.nextSibling;if(S(W)&&!m.a.g.get(W,G))throw Error("Found end comment without a matching opening comment, as child of "+k);return null}return k.nextSibling},Cd:_,Vd:function(k){return(k=(L?k.text:k.nodeValue).match(B))?k[1]:null},Sc:function(k){if(V[m.a.R(k)]){var W=k.firstChild;if(W)do if(W.nodeType===1){var q;q=W.firstChild;var J=null;if(q)do if(J)J.push(q);else if(_(q)){var j=I(q,!0);j?q=j:J=[q]}else S(q)&&(J=[q]);while(q=q.nextSibling);if(q=J)for(J=W.nextSibling,j=0;j<q.length;j++)J?k.insertBefore(q[j],J):k.appendChild(q[j])}while(W=W.nextSibling)}}}}(),m.b("virtualElements",m.h),m.b("virtualElements.allowedBindings",m.h.ea),m.b("virtualElements.emptyNode",m.h.Ea),m.b("virtualElements.insertAfter",m.h.Wb),m.b("virtualElements.prepend",m.h.Vc),m.b("virtualElements.setDomNodeChildren",m.h.va),function(){m.ga=function(){this.nd={}},m.a.extend(m.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||m.j.getComponentNameForNode(_);case 8:return m.h.Cd(_);default:return!1}},getBindings:function(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_):null;return m.j.tc(w,_,S,!1)},getBindingAccessors:function(_,S){var w=this.getBindingsString(_,S),w=w?this.parseBindingsString(w,S,_,{valueAccessors:!0}):null;return m.j.tc(w,_,S,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,S,w,I){try{var L=this.nd,B=_+(I&&I.valueAccessors||""),U;if(!(U=L[B])){var V,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),U=L[B]=V}return U(S,w)}catch(k){throw k.message=`Unable to parse bindings. +Bindings value: `+_+` +Message: `+k.message,k}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(ae){var _e=(ae=m.a.g.get(ae,ye))&&ae.N;_e&&(ae.N=null,_e.Tc())}function S(ae,_e,xe){this.node=ae,this.yc=_e,this.kb=[],this.H=!1,_e.N||m.a.K.za(ae,_),xe&&xe.N&&(xe.N.kb.push(ae),this.Kb=xe)}function w(ae){return function(){return ae}}function I(ae){return ae()}function L(ae){return m.a.Ga(m.u.G(ae),function(_e,xe){return function(){return ae()[xe]}})}function B(ae,_e,xe){return typeof ae=="function"?L(ae.bind(null,_e,xe)):m.a.Ga(ae,w)}function U(ae,_e){return L(this.getBindings.bind(this,ae,_e))}function V(ae,_e){var xe=m.h.firstChild(_e);if(xe){var De,Ae=m.ga.instance,ke=Ae.preprocessNode;if(ke){for(;De=xe;)xe=m.h.nextSibling(De),ke.call(Ae,De);xe=m.h.firstChild(_e)}for(;De=xe;)xe=m.h.nextSibling(De),G(ae,De)}m.i.ma(_e,m.i.H)}function G(ae,_e){var xe=ae,De=_e.nodeType===1;De&&m.h.Sc(_e),(De||m.ga.instance.nodeHasBindings(_e))&&(xe=W(_e,null,ae).bindingContextForDescendants),xe&&!Q[m.a.R(_e)]&&V(xe,_e)}function k(ae){var _e=[],xe={},De=[];return m.a.P(ae,function Ae(ke){if(!xe[ke]){var ze=m.getBindingHandler(ke);ze&&(ze.after&&(De.push(ke),m.a.D(ze.after,function(tt){if(ae[tt]){if(m.a.A(De,tt)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+De.join(", "));Ae(tt)}}),De.length--),_e.push({key:ke,Mc:ze})),xe[ke]=!0}}),_e}function W(ae,_e,xe){var De=m.a.g.Ub(ae,ye,{}),Ae=De.hd;if(!_e){if(Ae)throw Error("You cannot apply bindings multiple times to the same element.");De.hd=!0}Ae||(De.context=xe),De.Zb||(De.Zb={});var ke;if(_e&&typeof _e!="function")ke=_e;else{var ze=m.ga.instance,tt=ze.getBindingAccessors||U,wt=m.$(function(){return(ke=_e?_e(xe,ae):tt.call(ze,ae,xe))&&(xe[J]&&xe[J](),xe[K]&&xe[K]()),ke},null,{l:ae});ke&&wt.ja()||(wt=null)}var pt=xe,Be;if(ke){var Yt=function(){return m.a.Ga(wt?wt():ke,I)},Ct=wt?function(lt){return function(){return I(wt()[lt])}}:function(lt){return ke[lt]};Yt.get=function(lt){return ke[lt]&&I(Ct(lt))},Yt.has=function(lt){return lt in ke},m.i.H in ke&&m.i.subscribe(ae,m.i.H,function(){var lt=(0,ke[m.i.H])();if(lt){var tn=m.h.childNodes(ae);tn.length&<(tn,m.Ec(tn[0]))}}),m.i.pa in ke&&(pt=m.i.Cb(ae,xe),m.i.subscribe(ae,m.i.pa,function(){var lt=(0,ke[m.i.pa])();lt&&m.h.firstChild(ae)&<(ae)})),De=k(ke),m.a.D(De,function(lt){var tn=lt.Mc.init,Ce=lt.Mc.update,Te=lt.key;if(ae.nodeType===8&&!m.h.ea[Te])throw Error("The binding '"+Te+"' cannot be used with virtual elements");try{typeof tn=="function"&&m.u.G(function(){var it=tn(ae,Ct(Te),Yt,pt.$data,pt);if(it&&it.controlsDescendantBindings){if(Be!==e)throw Error("Multiple bindings ("+Be+" and "+Te+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");Be=Te}}),typeof Ce=="function"&&m.$(function(){Ce(ae,Ct(Te),Yt,pt.$data,pt)},null,{l:ae})}catch(it){throw it.message='Unable to process binding "'+Te+": "+ke[Te]+`" +Message: `+it.message,it}})}return De=Be===e,{shouldBindDescendants:De,bindingContextForDescendants:De&&pt}}function q(ae,_e){return ae&&ae instanceof m.fa?ae:new m.fa(ae,e,e,_e)}var J=m.a.Da("_subscribable"),j=m.a.Da("_ancestorBindingInfo"),K=m.a.Da("_dataDependency");m.c={};var Q={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(ae){return m.c[ae]};var de={};m.fa=function(ae,_e,xe,De,Ae){function ke(){var Ct=pt?wt():wt,lt=m.a.f(Ct);return _e?(m.a.extend(ze,_e),j in _e&&(ze[j]=_e[j])):(ze.$parents=[],ze.$root=lt,ze.ko=m),ze[J]=Be,tt?lt=ze.$data:(ze.$rawData=Ct,ze.$data=lt),xe&&(ze[xe]=lt),De&&De(ze,_e,lt),_e&&_e[J]&&!m.S.o().Vb(_e[J])&&_e[J](),Yt&&(ze[K]=Yt),ze.$data}var ze=this,tt=ae===de,wt=tt?e:ae,pt=typeof wt=="function"&&!m.O(wt),Be,Yt=Ae&&Ae.dataDependency;Ae&&Ae.exportDependencies?ke():(Be=m.xb(ke),Be.v(),Be.ja()?Be.equalityComparer=null:ze[J]=e)},m.fa.prototype.createChildContext=function(ae,_e,xe,De){if(!De&&_e&&typeof _e=="object"&&(De=_e,_e=De.as,xe=De.extend),_e&&De&&De.noChildContext){var Ae=typeof ae=="function"&&!m.O(ae);return new m.fa(de,this,null,function(ke){xe&&xe(ke),ke[_e]=Ae?ae():ae},De)}return new m.fa(ae,this,_e,function(ke,ze){ke.$parentContext=ze,ke.$parent=ze.$data,ke.$parents=(ze.$parents||[]).slice(0),ke.$parents.unshift(ke.$parent),xe&&xe(ke)},De)},m.fa.prototype.extend=function(ae,_e){return new m.fa(de,this,null,function(xe){m.a.extend(xe,typeof ae=="function"?ae(xe):ae)},_e)};var ye=m.a.g.Z();S.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},S.prototype.sd=function(ae){m.a.Pa(this.kb,ae),!this.kb.length&&this.H&&this.Cc()},S.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,m.a.K.yb(this.node,_),m.i.ma(this.node,m.i.pa),this.Tc())},m.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(ae,_e,xe,De,Ae){var ke=m.a.g.Ub(ae,ye,{});return ke.Fa||(ke.Fa=new m.T),Ae&&Ae.notifyImmediately&&ke.Zb[_e]&&m.u.G(xe,De,[ae]),ke.Fa.subscribe(xe,De,_e)},ma:function(ae,_e){var xe=m.a.g.get(ae,ye);if(xe&&(xe.Zb[_e]=!0,xe.Fa&&xe.Fa.notifySubscribers(ae,_e),_e==m.i.H)){if(xe.N)xe.N.Cc();else if(xe.N===e&&xe.Fa&&xe.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(ae,_e){var xe=m.a.g.Ub(ae,ye,{});return xe.N||(xe.N=new S(ae,xe,_e[j])),_e[j]==xe?_e:_e.extend(function(De){De[j]=xe})}},m.Td=function(ae){return(ae=m.a.g.get(ae,ye))&&ae.context},m.ib=function(ae,_e,xe){return ae.nodeType===1&&m.h.Sc(ae),W(ae,_e,q(xe))},m.ld=function(ae,_e,xe){return xe=q(xe),m.ib(ae,B(_e,xe,ae),xe)},m.Oa=function(ae,_e){_e.nodeType!==1&&_e.nodeType!==8||V(q(ae),_e)},m.vc=function(ae,_e,xe){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(_e=n.body,!_e)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!_e||_e.nodeType!==1&&_e.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(q(ae,xe),_e)},m.Dc=function(ae){return!ae||ae.nodeType!==1&&ae.nodeType!==8?e:m.Td(ae)},m.Ec=function(ae){return(ae=m.Dc(ae))?ae.$data:e},m.b("bindingHandlers",m.c),m.b("bindingEvent",m.i),m.b("bindingEvent.subscribe",m.i.subscribe),m.b("bindingEvent.startPossiblyAsyncContentBinding",m.i.Cb),m.b("applyBindings",m.vc),m.b("applyBindingsToDescendants",m.Oa),m.b("applyBindingAccessorsToNode",m.ib),m.b("applyBindingsToNode",m.ld),m.b("contextFor",m.Dc),m.b("dataFor",m.Ec)}(),function(_){function S(U,V){var G=Object.prototype.hasOwnProperty.call(L,U)?L[U]:_,k;G?G.subscribe(V):(G=L[U]=new m.T,G.subscribe(V),w(U,function(W,q){var J=!(!q||!q.synchronous);B[U]={definition:W,Gd:J},delete L[U],k||J?G.notifySubscribers(W):m.na.zb(function(){G.notifySubscribers(W)})}),k=!0)}function w(U,V){I("getConfig",[U],function(G){G?I("loadComponent",[U,G],function(k){V(k,G)}):V(null,null)})}function I(U,V,G,k){k||(k=m.j.loaders.slice(0));var W=k.shift();if(W){var q=W[U];if(q){var J=!1;if(q.apply(W,V.concat(function(j){J?G(null):j!==null?G(j):I(U,V,G,k)}))!==_&&(J=!0,!W.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(U,V,G,k)}else G(null)}var L={},B={};m.j={get:function(U,V){var G=Object.prototype.hasOwnProperty.call(B,U)?B[U]:_;G?G.Gd?m.u.G(function(){V(G.definition)}):m.na.zb(function(){V(G.definition)}):S(U,V)},Bc:function(U){delete B[U]},oc:I},m.j.loaders=[],m.b("components",m.j),m.b("components.get",m.j.get),m.b("components.clearCachedDefinition",m.j.Bc)}(),function(){function _(G,k,W,q){function J(){--K===0&&q(j)}var j={},K=2,Q=W.template;W=W.viewModel,Q?L(k,Q,function(de){m.j.oc("loadTemplate",[G,de],function(ye){j.template=ye,J()})}):J(),W?L(k,W,function(de){m.j.oc("loadViewModel",[G,de],function(ye){j[V]=ye,J()})}):J()}function S(G,k,W){if(typeof k=="function")W(function(J){return new k(J)});else if(typeof k[V]=="function")W(k[V]);else if("instance"in k){var q=k.instance;W(function(){return q})}else"viewModel"in k?S(G,k.viewModel,W):G("Unknown viewModel value: "+k)}function w(G){switch(m.a.R(G)){case"script":return m.a.ua(G.text);case"textarea":return m.a.ua(G.value);case"template":if(I(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function L(G,k,W){typeof k.require=="string"?a||t.require?(a||t.require)([k.require],function(q){q&&typeof q=="object"&&q.Xd&&q.default&&(q=q.default),W(q)}):G("Uses require, but no AMD loader is present"):W(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var U={};m.j.register=function(G,k){if(!k)throw Error("Invalid configuration for "+G);if(m.j.tb(G))throw Error("Component "+G+" is already registered");U[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(U,G)},m.j.unregister=function(G){delete U[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?U[G]:null)},loadComponent:function(G,k,W){var q=B(G);L(q,k,function(J){_(G,q,J,W)})},loadTemplate:function(G,k,W){if(G=B(G),typeof k=="string")W(m.a.ua(k));else if(k instanceof Array)W(k);else if(I(k))W(m.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)W(w(k));else if(typeof k=="string"){var q=n.getElementById(k);q?W(w(q)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,W){S(B(G),k,W)}};var V="createViewModel";m.b("components.register",m.j.register),m.b("components.isRegistered",m.j.tb),m.b("components.unregister",m.j.unregister),m.b("components.defaultLoader",m.j.Fc),m.j.loaders.push(m.j.Fc),m.j.dd=U}(),function(){function _(w,I){var L=w.getAttribute("params");if(L){var L=S.parseBindingsString(L,I,w,{valueAccessors:!0,bindingParams:!0}),L=m.a.Ga(L,function(V){return m.o(V,null,{l:w})}),B=m.a.Ga(L,function(V){var G=V.v();return V.ja()?m.o({read:function(){return m.a.f(V())},write:m.Za(G)&&function(k){V()(k)},l:w}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=L),B}return{$raw:{}}}m.j.getComponentNameForNode=function(w){var I=m.a.R(w);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=m.a.W&&w.tagName===I))return I},m.j.tc=function(w,I,L,B){if(I.nodeType===1){var U=m.j.getComponentNameForNode(I);if(U){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:U,params:_(I,L)};w.component=B?function(){return V}:V}}return w};var S=new m.ga;9>m.a.W&&(m.j.register=function(w){return function(I){return w.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),L=m.j.dd,B;for(B in L);return I}}(n.createDocumentFragment))}(),function(){function _(I,L,B){if(L=L.template,!L)throw Error("Component '"+I+"' has no template");I=m.a.Ca(L),m.h.va(B,I)}function S(I,L,B){var U=I.createViewModel;return U?U.call(I,L,B):L}var w=0;m.c.component={init:function(I,L,B,U,V){function G(){var j=k&&k.dispose;typeof j=="function"&&j.call(k),q&&q.s(),W=k=q=null}var k,W,q,J=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var j=m.a.f(L()),K,Q;if(typeof j=="string"?K=j:(K=m.a.f(j.name),Q=m.a.f(j.params)),!K)throw Error("No component name specified");var de=m.i.Cb(I,V),ye=W=++w;m.j.get(K,function(ae){if(W===ye){if(G(),!ae)throw Error("Unknown component '"+K+"'");_(K,ae,I);var _e=S(ae,Q,{element:I,templateNodes:J});ae=de.createChildContext(_e,{extend:function(xe){xe.$component=_e,xe.$componentTemplateNodes=J}}),_e&&_e.koDescendantsComplete&&(q=m.i.subscribe(I,m.i.pa,_e.koDescendantsComplete,_e)),k=_e,m.Oa(ae,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var M={class:"className",for:"htmlFor"};m.c.attr={update:function(_,S){var w=m.a.f(S())||{};m.a.P(w,function(I,L){L=m.a.f(L);var B=I.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(I.substr(0,B)),U=L===!1||L===null||L===e;U?B?_.removeAttributeNS(B,I):_.removeAttribute(I):L=L.toString(),8>=m.a.W&&I in M?(I=M[I],U?_.removeAttribute(I):_[I]=L):U||(B?_.setAttributeNS(B,I,L):_.setAttribute(I,L)),I==="name"&&m.a.Yc(_,U?"":L)})}},function(){m.c.checked={after:["value","attr"],init:function(_,S,w){function I(){var j=_.checked,K=B();if(!m.S.Ya()&&(j||!V&&!m.S.qa())){var Q=m.u.G(S);if(k){var de=W?Q.v():Q,ye=J;J=K,ye!==K?j&&(m.a.Na(de,K,!0),m.a.Na(de,ye,!1)):m.a.Na(de,K,j),W&&m.Za(Q)&&Q(de)}else U&&(K===e?K=j:j||(K=e)),m.m.eb(Q,w,"checked",K,!0)}}function L(){var j=m.a.f(S()),K=B();k?(_.checked=0<=m.a.A(j,K),J=K):_.checked=U&&K===e?!!j:B()===j}var B=m.xb(function(){if(w.has("checkedValue"))return m.a.f(w.get("checkedValue"));if(q)return w.has("value")?m.a.f(w.get("value")):_.value}),U=_.type=="checkbox",V=_.type=="radio";if(U||V){var G=S(),k=U&&m.a.f(G)instanceof Array,W=!(k&&G.push&&G.splice),q=V||k,J=k?B():e;V&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(L,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,S){_.value=m.a.f(S())}}}(),m.c.class={update:function(_,S){var w=m.a.Db(m.a.f(S()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,m.a.Eb(_,w,!0)}},m.c.css={update:function(_,S){var w=m.a.f(S());w!==null&&typeof w=="object"?m.a.P(w,function(I,L){L=m.a.f(L),m.a.Eb(_,I,L)}):m.c.class.update(_,S)}},m.c.enable={update:function(_,S){var w=m.a.f(S());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,S){m.c.enable.update(_,function(){return!m.a.f(S())})}},m.c.event={init:function(_,S,w,I,L){var B=S()||{};m.a.P(B,function(U){typeof U=="string"&&m.a.B(_,U,function(V){var G,k=S()[U];if(k){try{var W=m.a.la(arguments);I=L.$data,W.unshift(I),G=k.apply(I,W)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(U+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var S=_(),w=m.a.bc(S);return!w||typeof w.length=="number"?{foreach:S,templateEngine:m.ba.Ma}:(m.a.f(S),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:m.ba.Ma})}},init:function(_,S){return m.c.template.init(_,m.c.foreach.Rc(S))},update:function(_,S,w,I,L){return m.c.template.update(_,m.c.foreach.Rc(S),w,I,L)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,S,w){function I(U){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}U=G===_}V=S(),m.m.eb(V,w,"hasfocus",U,!0),_.__ko_hasfocusLastValue=U,_.__ko_hasfocusUpdating=!1}var L=I.bind(null,!0),B=I.bind(null,!1);m.a.B(_,"focus",L),m.a.B(_,"focusin",L),m.a.B(_,"blur",B),m.a.B(_,"focusout",B),_.__ko_hasfocusLastValue=!1},update:function(_,S){var w=!!m.a.f(S());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,w?"focusin":"focusout"]))}},m.m.wa.hasfocus=!0,m.c.hasFocus=m.c.hasfocus,m.m.wa.hasFocus="hasfocus",m.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,S){m.a.fc(_,S())}},function(){function _(S,w,I){m.c[S]={init:function(L,B,U,V,G){var k,W,q={},J,j,K;if(w){V=U.get("as");var Q=U.get("noChildContext");K=!(V&&Q),q={as:V,noChildContext:Q,exportDependencies:K}}return j=(J=U.get("completeOn")=="render")||U.has(m.i.pa),m.o(function(){var de=m.a.f(B()),ye=!I!=!de,ae=!W,_e;(K||ye!==k)&&(j&&(G=m.i.Cb(L,G)),ye&&((!w||K)&&(q.dataDependency=m.S.o()),_e=w?G.createChildContext(typeof de=="function"?de:B,q):m.S.qa()?G.extend(null,q):G),ae&&m.S.qa()&&(W=m.a.Ca(m.h.childNodes(L),!0)),ye?(ae||m.h.va(L,m.a.Ca(W)),m.Oa(_e,L)):(m.h.Ea(L),J||m.i.ma(L,m.i.H)),k=ye)},null,{l:L}),{controlsDescendantBindings:!0}}},m.m.Ra[S]=!1,m.h.ea[S]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,S,w,I,L){return S=L.extend(S),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var N={};m.c.options={init:function(_){if(m.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,S,w){function I(){return m.a.jb(_.options,function(Q){return Q.selected})}function L(Q,de,ye){var ae=typeof de;return ae=="function"?de(Q):ae=="string"?Q[de]:ye}function B(Q,de){if(j&&k)m.i.ma(_,m.i.H);else if(J.length){var ye=0<=m.a.A(J,m.w.M(de[0]));m.a.Zc(de[0],ye),j&&!ye&&m.u.G(m.a.Fb,null,[_,"change"])}}var U=_.multiple,V=_.length!=0&&U?_.scrollTop:null,G=m.a.f(S()),k=w.get("valueAllowUnset")&&w.has("value"),W=w.get("optionsIncludeDestroyed");S={};var q,J=[];k||(U?J=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&J.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),q=m.a.jb(G,function(Q){return W||Q===e||Q===null||!m.a.f(Q._destroy)}),w.has("optionsCaption")&&(G=m.a.f(w.get("optionsCaption")),G!==null&&G!==e&&q.unshift(N)));var j=!1;if(S.beforeRemove=function(Q){_.removeChild(Q)},G=B,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(Q,de){B(0,de),m.u.G(w.get("optionsAfterRender"),null,[de[0],Q!==N?Q:e])}),m.a.ec(_,q,function(Q,de,ye){return ye.length&&(J=!k&&ye[0].selected?[m.w.M(ye[0])]:[],j=!0),de=_.ownerDocument.createElement("option"),Q===N?(m.a.Bb(de,w.get("optionsCaption")),m.w.cb(de,e)):(ye=L(Q,w.get("optionsValue"),Q),m.w.cb(de,m.a.f(ye)),Q=L(Q,w.get("optionsText"),ye),m.a.Bb(de,Q)),[de]},S,G),!k){var K;U?K=J.length&&I().length<J.length:K=J.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==J[0]:J.length||0<=_.selectedIndex,K&&m.u.G(m.a.Fb,null,[_,"change"])}(k||m.S.Ya())&&m.i.ma(_,m.i.H),m.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,S,w){function I(){var U=S(),V=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(m.w.M(G))}),m.m.eb(U,w,"selectedOptions",V)}function L(){var U=m.a.f(S()),V=_.scrollTop;U&&typeof U.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(U,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=V}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var B;m.i.subscribe(_,m.i.H,function(){B?I():(m.a.B(_,"change",I),B=m.o(L,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,S){var w=m.a.f(S()||{});m.a.P(w,function(I,L){if(L=m.a.f(L),(L===null||L===e||L===!1)&&(L=""),o)o(_).css(I,L);else if(/^--/.test(I))_.style.setProperty(I,L);else{I=I.replace(/-(\w)/g,function(U,V){return V.toUpperCase()});var B=_.style[I];_.style[I]=L,L===B||_.style[I]!=B||isNaN(L)||(_.style[I]=L+"px")}})}},m.c.submit={init:function(_,S,w,I,L){if(typeof S()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var U,V=S();try{U=V.call(L.$data,_)}finally{U!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,S){m.a.Bb(_,S())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(q){if(q)return parseFloat(q[1])},S=t.navigator.userAgent,w,I,L,B,U;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(U=_(S.match(/Edge\/([^ ]+)$/)))||_(S.match(/Chrome\/([^ ]+)/))||(I=_(S.match(/Version\/([^ ]+) Safari/)))||(L=_(S.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(S.match(/MSIE ([^ ]+)/)))||(B=_(S.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var V=m.a.g.Z(),G=m.a.g.Z(),k=function(q){var J=this.activeElement;(J=J&&m.a.g.get(J,G))&&J(q)},W=function(q,J){var j=q.ownerDocument;m.a.g.get(j,V)||(m.a.g.set(j,V,!0),m.a.B(j,"selectionchange",k)),m.a.g.set(q,G,J)};m.c.textInput={init:function(q,J,j){function K(ke,ze){m.a.B(q,ke,ze)}function Q(){var ke=m.a.f(J());(ke===null||ke===e)&&(ke=""),xe!==e&&ke===xe?m.a.setTimeout(Q,4):q.value!==ke&&(Ae=!0,q.value=ke,Ae=!1,ae=q.value)}function de(){_e||(xe=q.value,_e=m.a.setTimeout(ye,4))}function ye(){clearTimeout(_e),xe=_e=e;var ke=q.value;ae!==ke&&(ae=ke,m.m.eb(J(),j,"textInput",ke))}var ae=q.value,_e,xe,De=m.a.W==9?de:ye,Ae=!1;B&&K("keypress",ye),11>B&&K("propertychange",function(ke){Ae||ke.propertyName!=="value"||De(ke)}),B==8&&(K("keyup",ye),K("keydown",ye)),W&&(W(q,De),K("dragend",de)),(!B||9<=B)&&K("input",De),5>I&&m.a.R(q)==="textarea"?(K("keydown",de),K("paste",de),K("cut",de)):11>w?K("keydown",de):4>L?(K("DOMAutoComplete",ye),K("dragdrop",ye),K("drop",ye)):U&&q.type==="number"&&K("keydown",de),K("change",ye),K("blur",ye),m.o(Q,null,{l:q})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(q,J,j){j("textInput",q)}}}(),m.c.uniqueName={init:function(_,S){if(S()){var w="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,w)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,S,w,I,L){var B;return w.has("as")&&(B={as:w.get("as"),noChildContext:w.get("noChildContext")}),S=L.createChildContext(S,B),m.Oa(S,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,S,w){var I=m.a.R(_),L=I=="input";if(!L||_.type!="checkbox"&&_.type!="radio"){var B=[],U=w.get("valueUpdate"),V=!1,G=null;U&&(typeof U=="string"?B=[U]:B=m.a.wc(U),m.a.Pa(B,"change"));var k=function(){G=null,V=!1;var J=S(),j=m.w.M(_);m.m.eb(J,w,"value",j)};!m.a.W||!L||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){V=!0}),m.a.B(_,"focus",function(){V=!1}),m.a.B(_,"blur",function(){V&&k()})),m.a.D(B,function(J){var j=k;m.a.Ud(J,"after")&&(j=function(){G=m.w.M(_),m.a.setTimeout(k,0)},J=J.substring(5)),m.a.B(_,J,j)});var W;if(W=L&&_.type=="file"?function(){var J=m.a.f(S());J===null||J===e||J===""?_.value="":m.u.G(k)}:function(){var J=m.a.f(S()),j=m.w.M(_);G!==null&&J===G?m.a.setTimeout(W,0):(J!==j||j===e)&&(I==="select"?(j=w.get("valueAllowUnset"),m.w.cb(_,J,j),j||J===m.w.M(_)||m.u.G(k)):m.w.cb(_,J))},I==="select"){var q;m.i.subscribe(_,m.i.H,function(){q?w.get("valueAllowUnset")?W():k():(m.a.B(_,"change",k),q=m.o(W,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(W,null,{l:_})}else m.ib(_,{checkedValue:S})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,S){var w=m.a.f(S()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,S){m.c.visible.update(_,function(){return!m.a.f(S())})}},function(_){m.c[_]={init:function(S,w,I,L,B){return m.c.event.init.call(this,S,function(){var U={};return U[_]=w(),U},I,L,B)}}}("click"),m.ca=function(){},m.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},m.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},m.ca.prototype.makeTemplateSource=function(_,S){if(typeof _=="string"){S=S||n;var w=S.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new m.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,S,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,S,w,I)},m.ca.prototype.isTemplateRewritten=function(_,S){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,S).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,S,w){_=this.makeTemplateSource(_,w),S=S(_.text()),_.text(S),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,L,B,U){I=m.m.ac(I);for(var V=m.m.Ra,G=0;G<I.length;G++){var k=I[G].key;if(Object.prototype.hasOwnProperty.call(V,k)){var W=V[k];if(typeof W=="function"){if(k=W(I[G].value))throw Error(k)}else if(!W)throw Error("This template engine does not support the '"+k+"' binding within its templates")}}return B="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+m.m.vb(I,{valueAccessors:!0})+" } })()},'"+B.toLowerCase()+"')",U.createJavaScriptEvaluatorBlock(B)+L}var S=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,L,B){L.isTemplateRewritten(I,B)||L.rewriteTemplate(I,function(U){return m.kc.Ld(U,L)},B)},Ld:function(I,L){return I.replace(S,function(B,U,V,G,k){return _(k,U,V,L)}).replace(w,function(B,U){return _(U,"<!-- ko -->","#comment",L)})},md:function(I,L){return m.aa.Xb(function(B,U){var V=B.nextSibling;V&&V.nodeName.toLowerCase()===L&&m.ib(V,I,U)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(w){if(this.F=w){var I=m.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?m.a.fc(this.F,I):this.F[w]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(w){if(arguments.length===1)return m.a.g.get(this.F,_+w);m.a.g.set(this.F,_+w,arguments[1])};var S=m.a.g.Z();m.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=m.a.g.get(w,S)||{},L=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!L||I.jd){var B=this.text();B&&B!==I.bb&&(L=m.a.Md(B,w.ownerDocument),m.a.g.set(w,S,{lb:L,bb:B,jd:!0}))}return L}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(w,S,{lb:I})},m.C.ia=function(w){this.F=w},m.C.ia.prototype=new m.C.F,m.C.ia.prototype.constructor=m.C.ia,m.C.ia.prototype.text=function(){if(arguments.length==0){var w=m.a.g.get(this.F,S)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}m.a.g.set(this.F,S,{bb:arguments[0]})},m.b("templateSources",m.C),m.b("templateSources.domElement",m.C.F),m.b("templateSources.anonymousTemplate",m.C.ia)}(),function(){function _(G,k,W){var q;for(k=m.h.nextSibling(k);G&&(q=G)!==k;)G=m.h.nextSibling(q),W(q,G)}function S(G,k){if(G.length){var W=G[0],q=G[G.length-1],J=W.parentNode,j=m.ga.instance,K=j.preprocessNode;if(K){if(_(W,q,function(Q,de){var ye=Q.previousSibling,ae=K.call(j,Q);ae&&(Q===W&&(W=ae[0]||de),Q===q&&(q=ae[ae.length-1]||ye))}),G.length=0,!W)return;W===q?G.push(W):(G.push(W,q),m.a.Ua(G,J))}_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.vc(k,Q)}),_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.aa.cd(Q,[k])}),m.a.Ua(G,J)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,k,W,q,J){J=J||{};var j=(G&&w(G)||W||{}).ownerDocument,K=J.templateEngine||B;if(m.kc.xd(W,K,j),W=K.renderTemplate(W,q,J,j),typeof W.length!="number"||0<W.length&&typeof W[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(j=!1,k){case"replaceChildren":m.h.va(G,W),j=!0;break;case"replaceNode":m.a.Xc(G,W),j=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return j&&(S(W,q),J.afterRender&&m.u.G(J.afterRender,null,[W,q[J.as||"$data"]]),k=="replaceChildren"&&m.i.ma(G,m.i.H)),W}function L(G,k,W){return m.O(G)?G():typeof G=="function"?G(k,W):G}var B;m.gc=function(G){if(G!=e&&!(G instanceof m.ca))throw Error("templateEngine must inherit from ko.templateEngine");B=G},m.dc=function(G,k,W,q,J){if(W=W||{},(W.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if(J=J||"replaceChildren",q){var j=w(q);return m.$(function(){var Q=k&&k instanceof m.fa?k:new m.fa(k,null,null,null,{exportDependencies:!0}),K=L(G,Q.$data,Q),Q=I(q,J,K,Q,W);J=="replaceNode"&&(q=Q,j=w(q))},null,{Sa:function(){return!j||!m.a.Sb(j)},l:j&&J=="replaceNode"?j.parentNode:j})}return m.aa.Xb(function(K){m.dc(G,k,W,K,"replaceNode")})},m.Qd=function(G,k,W,q,J){function j(xe,De){m.u.G(m.a.ec,null,[q,xe,Q,W,K,De]),m.i.ma(q,m.i.H)}function K(xe,De){S(De,de),W.afterRender&&W.afterRender(De,xe),de=null}function Q(xe,De){de=J.createChildContext(xe,{as:ye,noChildContext:W.noChildContext,extend:function(ke){ke.$index=De,ye&&(ke[ye+"Index"]=De)}});var Ae=L(G,xe,de);return I(q,"ignoreTargetNode",Ae,de,W)}var de,ye=W.as,ae=W.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!W.includeDestroyed;if(ae||W.beforeRemove||!m.Pc(k))return m.$(function(){var xe=m.a.f(k)||[];typeof xe.length>"u"&&(xe=[xe]),ae&&(xe=m.a.jb(xe,function(De){return De===e||De===null||!m.a.f(De._destroy)})),j(xe)},null,{l:q});j(k.v());var _e=k.subscribe(function(xe){j(k(),xe)},null,"arrayChange");return _e.l(q),_e};var U=m.a.g.Z(),V=m.a.g.Z();m.c.template={init:function(G,k){var W=m.a.f(k());if(typeof W=="string"||"name"in W)m.h.Ea(G);else if("nodes"in W){if(W=W.nodes||[],m.O(W))throw Error('The "nodes" option must be a plain, non-observable array.');var q=W[0]&&W[0].parentNode;q&&m.a.g.get(q,V)||(q=m.a.Yb(W),m.a.g.set(q,V,!0)),new m.C.ia(G).nodes(q)}else if(W=m.h.childNodes(G),0<W.length)q=m.a.Yb(W),new m.C.ia(G).nodes(q);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,k,W,q,J){var j=k();k=m.a.f(j),W=!0,q=null,typeof k=="string"?k={}:(j="name"in k?k.name:G,"if"in k&&(W=m.a.f(k.if)),W&&"ifnot"in k&&(W=!m.a.f(k.ifnot)),W&&!j&&(W=!1)),"foreach"in k?q=m.Qd(j,W&&k.foreach||[],k,G,J):W?(W=J,"data"in k&&(W=J.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),q=m.dc(j,W,k,G)):m.h.Ea(G),J=q,(k=m.a.g.get(G,U))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,U,!J||J.ja&&!J.ja()?e:J)}},m.m.Ra.template=function(G){return G=m.m.ac(G),G.length==1&&G[0].unknown||m.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},m.h.ea.template=!0}(),m.b("setTemplateEngine",m.gc),m.b("renderTemplate",m.dc),m.a.Kc=function(_,S,w){if(_.length&&S.length){var I,L,B,U,V;for(I=L=0;(!w||I<w)&&(U=_[L]);++L){for(B=0;V=S[B];++B)if(U.value===V.value){U.moved=V.index,V.moved=U.index,S.splice(B,1),I=B=0;break}I+=B}}},m.a.Pb=function(){function _(S,w,I,L,B){var U=Math.min,V=Math.max,G=[],k,W=S.length,q,J=w.length,j=J-W||1,K=W+J+1,Q,de,ye;for(k=0;k<=W;k++)for(de=Q,G.push(Q=[]),ye=U(J,k+j),q=V(0,k-1);q<=ye;q++)Q[q]=q?k?S[k-1]===w[q-1]?de[q-1]:U(de[q]||K,Q[q-1]||K)+1:q+1:k+1;for(U=[],V=[],j=[],k=W,q=J;k||q;)J=G[k][q]-1,q&&J===G[k][q-1]?V.push(U[U.length]={status:I,value:w[--q],index:q}):k&&J===G[k-1][q]?j.push(U[U.length]={status:L,value:S[--k],index:k}):(--q,--k,B.sparse||U.push({status:"retained",value:w[q]}));return m.a.Kc(j,V,!B.dontLimitMoves&&10*W),U.reverse()}return function(S,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},S=S||[],w=w||[],S.length<w.length?_(S,w,"added","deleted",I):_(w,S,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,L,B,U,V){var G=[],k=m.$(function(){var W=L(B,V,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,W),U&&m.u.G(U,null,[B,W,V])),G.length=0,m.a.Nb(G,W)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var S=m.a.g.Z(),w=m.a.g.Z();m.a.ec=function(I,L,B,U,V,G){function k(lt){Ae={Aa:lt,pb:m.ta(de++)},K.push(Ae),j||De.push(Ae)}function W(lt){Ae=J[lt],de!==Ae.pb.v()&&xe.push(Ae),Ae.pb(de++),m.a.Ua(Ae.Y,I),K.push(Ae)}function q(lt,tn){if(lt)for(var Ce=0,Te=tn.length;Ce<Te;Ce++)m.a.D(tn[Ce].Y,function(it){lt(it,Ce,tn[Ce].Aa)})}L=L||[],typeof L.length>"u"&&(L=[L]),U=U||{};var J=m.a.g.get(I,S),j=!J,K=[],Q=0,de=0,ye=[],ae=[],_e=[],xe=[],De=[],Ae,ke=0;if(j)m.a.D(L,k);else{if(!G||J&&J._countWaitingForRemove){var ze=m.a.Mb(J,function(lt){return lt.Aa});G=m.a.Pb(ze,L,{dontLimitMoves:U.dontLimitMoves,sparse:!0})}for(var ze=0,tt,wt,pt;tt=G[ze];ze++)switch(wt=tt.moved,pt=tt.index,tt.status){case"deleted":for(;Q<pt;)W(Q++);wt===e&&(Ae=J[Q],Ae.$&&(Ae.$.s(),Ae.$=e),m.a.Ua(Ae.Y,I).length&&(U.beforeRemove&&(K.push(Ae),ke++,Ae.Aa===w?Ae=null:_e.push(Ae)),Ae&&ye.push.apply(ye,Ae.Y))),Q++;break;case"added":for(;de<pt;)W(Q++);wt!==e?(ae.push(K.length),W(wt)):k(tt.value)}for(;de<L.length;)W(Q++);K._countWaitingForRemove=ke}m.a.g.set(I,S,K),q(U.beforeMove,xe),m.a.D(ye,U.beforeRemove?m.oa:m.removeNode);var Be,Yt,Ct;try{Ct=I.ownerDocument.activeElement}catch{}if(ae.length)for(;(ze=ae.shift())!=e;){for(Ae=K[ze],Be=e;ze;)if((Yt=K[--ze].Y)&&Yt.length){Be=Yt[Yt.length-1];break}for(L=0;Q=Ae.Y[L];Be=Q,L++)m.h.Wb(I,Q,Be)}for(ze=0;Ae=K[ze];ze++){for(Ae.Y||m.a.extend(Ae,_(I,B,Ae.Aa,V,Ae.pb)),L=0;Q=Ae.Y[L];Be=Q,L++)m.h.Wb(I,Q,Be);!Ae.Ed&&V&&(V(Ae.Aa,Ae.Y,Ae.pb),Ae.Ed=!0,Be=Ae.Y[Ae.Y.length-1])}for(Ct&&I.ownerDocument.activeElement!=Ct&&Ct.focus(),q(U.beforeRemove,_e),ze=0;ze<_e.length;++ze)_e[ze].Aa=w;q(U.afterMove,xe),q(U.afterAdd,De)}}(),m.b("utils.setDomNodeChildrenFromArrayMapping",m.a.ec),m.ba=function(){this.allowTemplateRewriting=!1},m.ba.prototype=new m.ca,m.ba.prototype.constructor=m.ba,m.ba.prototype.renderTemplateSource=function(_,S,w,I){return(S=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(S.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,I))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var S=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,I,L,B){if(B=B||n,L=L||{},2>S)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var U=w.data("precompiled");return U||(U=w.text()||"",U=o.template(null,"{{ko_with $item.koBindingContext}}"+U+"{{/ko_with}}"),w.data("precompiled",U)),w=[I.$data],I=o.extend({koBindingContext:I},L.templateOptions),I=o.tmpl(U,w,I),I.appendTo(B.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"</script>")},0<S&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},m.$a.prototype=new m.ca,m.$a.prototype.constructor=m.$a;var _=new m.$a;0<_.Hd&&m.gc(_),m.b("jqueryTmplTemplateEngine",m.$a)}()})})()})()})();var lSt=ko;typeof window<"u"?(ko=window.ko,typeof rk<"u"?window.ko=rk:delete window.ko):(ko=global.ko,typeof rk<"u"?global.ko=rk:delete global.ko);var wC=lSt;/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var uQ="__knockoutObservables",fQ="__knockoutSubscribable";function WAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=jAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===uQ||o===fQ)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&fSt(n,a)}}),e}function jAe(e,t){var n=e[uQ];return!n&&t&&(n={},Object.defineProperty(e,uQ,{value:n})),n}function uSt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),WAe.call(i,e,[t]),e}function fSt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=dSt(e,t,i))})}function dSt(e,t,n){var i=hSt(e,n);return i.subscribe(t)}function hSt(e,t){var n=t[fQ];if(!n){n=new e.subscribable,Object.defineProperty(t,fQ,{value:n});var i={};mSt(t,n,i),pSt(e,t,n,i)}return n}function mSt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function pSt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function qAe(e,t){if(!e)return null;var n=jAe(e,!1);return n&&n[t]||null}function _St(e,t){var n=qAe(e,t);n&&n.valueHasMutated()}function gSt(e){e.track=WAe,e.getObservable=qAe,e.valueHasMutated=_St,e.defineProperty=uSt}var sk={attachToKo:gSt};var YAe="http://www.w3.org/2000/svg",XAe="cesium-svgPath-svg",ySt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(YAe,"svg:svg");i.setAttribute("class",XAe);let o=document.createElementNS(YAe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${XAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},ak=ySt;sk.attachToKo(wC);ak.register(wC);var be=wC;function ck(e){l(e)||(e=new hh),this._clock=e,this._eventHelper=new fr,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=be.observable(Z.now()),this.systemTime.equalityComparer=Z.equals,this.startTime=be.observable(e.startTime),this.startTime.equalityComparer=Z.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=be.observable(e.stopTime),this.stopTime.equalityComparer=Z.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=be.observable(e.currentTime),this.currentTime.equalityComparer=Z.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=be.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=be.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=be.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=be.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=be.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),be.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(ck.prototype,{clock:{get:function(){return this._clock}}});ck.prototype.synchronize=function(){let e=this._clock;this.systemTime=Z.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};ck.prototype.isDestroyed=function(){return!1};ck.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var lk=ck;function xSt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,he.throwInstantiationError()}var dQ=xSt;var uk={};uk.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};uk.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};uk.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};uk.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var qa=uk;function KAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),be.track(this,["toggled","tooltip"])}Object.defineProperties(KAe.prototype,{command:{get:function(){return this._command}}});var W0=KAe;function bSt(e,t){t=y(t,!0);let n=new me,i=new me;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,be.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var An=bSt;function TSt(e,t,n,i,o){return n.call(i,e[t]),be.getObservable(e,t).subscribe(n,i,o)}var Ta=TSt;var DC="http://www.w3.org/2000/svg",QAe="http://www.w3.org/1999/xlink",HG,fk=H.fromCssColorString("rgba(247,250,255,0.384)"),GG=H.fromCssColorString("rgba(143,191,255,0.216)"),hQ=H.fromCssColorString("rgba(153,197,255,0.098)"),WG=H.fromCssColorString("rgba(255,255,255,0.086)"),CSt=H.fromCssColorString("rgba(255,255,255,0.267)"),ASt=H.fromCssColorString("rgba(255,255,255,0)"),ZAe=H.fromCssColorString("rgba(66,67,68,0.3)"),$Ae=H.fromCssColorString("rgba(0,0,0,0.5)");function j0(e){return H.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var dk={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function qh(e){let t=document.createElementNS(DC,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(qh(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(QAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function mQ(e,t,n){let i=document.createElementNS(DC,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(DC,"tspan");return o.textContent=n,i.appendChild(o),i}function ESt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var jG=new H;function as(e,t){let n=t.alpha,i=1-n;return jG.red=e.red*i+t.red*n,jG.green=e.green*i+t.green*n,jG.blue=e.blue*i+t.blue*n,jG.toCssColorString()}function pQ(e,t,n){let i=dk[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return qh(o)}function SSt(e,t,n){let i=dk[n],o=dk.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return qh(r)}function vSt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&HG!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let m=n.shuttleRingAngle;i||c<f.right&&c>f.left&&u>f.top&&u<f.bottom?(HG=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===HG&&(HG=void 0),n.shuttleRingDragging=!1}function vg(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[Ta(t,"toggled",this.setToggled,this),Ta(t,"tooltip",this.setTooltip,this),Ta(t.command,"canExecute",this.setEnabled,this)]}vg.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};vg.prototype.isDestroyed=function(){return!1};vg.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};vg.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};vg.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function Wv(e,t){e=In(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(DC,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",QAe);let s=document.createElementNS(DC,"g");this._topG=s,this._realtimeSVG=new vg(SSt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new vg(pQ(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new vg(pQ(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new vg(pQ(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(DC,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=qh({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=dk.animation_pathSwooshFX,f=dk.animation_pathPointer,d=qh({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=qh({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=qh({tagName:"g",transform:"translate(100,100)"});this._knobOuter=qh({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=qh({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=mQ(0,-24,""),this._knobTime=mQ(0,-7,""),this._knobStatus=mQ(0,-41,"");let x=qh({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(DC,"g");b.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(b),s.appendChild(p),s.appendChild(a),b.appendChild(c),b.appendChild(d),b.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(m),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let T=this;function C(O){vSt(T,O)}this._mouseCallback=C,c.addEventListener("mousedown",C,!0),c.addEventListener("touchstart",C,!0),d.addEventListener("mousedown",C,!0),d.addEventListener("touchstart",C,!0),n.addEventListener("mousemove",C,!0),n.addEventListener("touchmove",C,!0),n.addEventListener("mouseup",C,!0),n.addEventListener("touchend",C,!0),n.addEventListener("touchcancel",C,!0),this._shuttleRingPointer.addEventListener("mousedown",C,!0),this._shuttleRingPointer.addEventListener("touchstart",C,!0),this._knobOuter.addEventListener("mousedown",C,!0),this._knobOuter.addEventListener("touchstart",C,!0);let A=this._knobTime.childNodes[0],E=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[Ta(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),Ta(t,"shuttleRingAngle",function(O){ESt(T._shuttleRingPointer,T._knobOuter,O)}),Ta(t,"dateLabel",function(O){E.textContent!==O&&(E.textContent=O)}),Ta(t,"timeLabel",function(O){A.textContent!==O&&(A.textContent=O)}),Ta(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(Wv.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Wv.prototype.isDestroyed=function(){return!1};Wv.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};Wv.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};Wv.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=j0(this._themeNormal),n=j0(this._themeHover),i=j0(this._themeSelect),o=j0(this._themeDisabled),r=j0(this._themeKnob),s=j0(this._themePointer),a=j0(this._themeSwoosh),c=j0(this._themeSwooshHover),u=qh({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(t,fk)},{tagName:"stop",offset:"12%","stop-color":as(t,GG)},{tagName:"stop",offset:"46%","stop-color":as(t,hQ)},{tagName:"stop",offset:"81%","stop-color":as(t,WG)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(n,fk)},{tagName:"stop",offset:"12%","stop-color":as(n,GG)},{tagName:"stop",offset:"46%","stop-color":as(n,hQ)},{tagName:"stop",offset:"81%","stop-color":as(n,WG)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(i,fk)},{tagName:"stop",offset:"12%","stop-color":as(i,GG)},{tagName:"stop",offset:"46%","stop-color":as(i,hQ)},{tagName:"stop",offset:"81%","stop-color":as(i,WG)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":as(o,CSt)},{tagName:"stop",offset:"75%","stop-color":as(o,ASt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":as(s,$Ae)},{tagName:"stop",offset:"100%","stop-color":as(s,$Ae)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":as(r,fk)},{tagName:"stop",offset:"60%","stop-color":as(r,ZAe)},{tagName:"stop",offset:"85%","stop-color":as(r,GG)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":as(r,ZAe)},{tagName:"stop",offset:"60%","stop-color":as(r,fk)},{tagName:"stop",offset:"85%","stop-color":as(r,WG)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var hk=Wv;var wSt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],q0=15,jv=105;function JAe(e,t){return e-t}function _Q(e,t){let n=Po(t,e,JAe);return n<0?~n:n}function DSt(e,t){if(Math.abs(e)<=q0)return e/q0;let n=q0,i=jv,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function ISt(e,t,n){if(n.clockStep===mo.SYSTEM_CLOCK)return q0;if(Math.abs(e)<=1)return e*q0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=q0,r=jv,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function xd(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=xd.defaultDateFormatter,this._timeFormatter=xd.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,be.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(xd.defaultTicks),this.timeLabel=void 0,be.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,be.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,be.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===mo.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,be.defineProperty(this,"shuttleRingAngle",{get:function(){return ISt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,jv),-jv);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=mo.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===jv){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=DSt(s,a);if(t.snapToTicks)u=a[_Q(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>q0?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,be.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Wr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Wr.LOOP_STOP)d=Z.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=Z.greaterThan(u,f)&&Z.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,be.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Wr.UNBOUNDED)return!0;let c=s.systemTime;return Z.greaterThanOrEquals(c,s.startTime)&&Z.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,be.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=An(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new W0(n,{toggled:be.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=An(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new W0(i,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=An(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new W0(o,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==mo.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=An(function(){t._clockViewModel.clockStep=mo.SYSTEM_CLOCK},be.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new W0(r,{toggled:be.computed(function(){return e.clockStep===mo.SYSTEM_CLOCK}),tooltip:be.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=_Q(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=An(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=_Q(c,a)+1;u<a.length&&(s.multiplier=a[u])})}xd.defaultDateFormatter=function(e,t){let n=Z.toGregorianDate(e);return`${wSt[n.month-1]} ${n.day} ${n.year}`};xd.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];xd.defaultTimeFormatter=function(e,t){let n=Z.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};xd.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};xd.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(JAe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(xd.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});xd._maxShuttleRingAngle=jv;xd._realtimeShuttleRingAngle=q0;var mk=xd;function eEe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,be.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=be.getObservable(this,"imageryProviderViewModels"),r=be.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._imageryProviders=r;let s=be.getObservable(this,"terrainProviderViewModels"),a=be.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,be.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,m=l(p)?p.name:void 0;return l(g)&&l(m)?`${g} +${m}`:l(g)?g:m}),this.buttonImageUrl=void 0,be.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=be.observable();this._currentImageryLayers=[],be.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,m=g.length,x=this._globe.imageryLayers,b=!1;for(p=0;p<m;p++){let T=x.length;for(let C=0;C<T;C++){let A=x.get(C);if(A===g[p]){x.remove(A),b=!0;break}}}if(l(d)){let T=d.creationCommand();if(Array.isArray(T)){let C=T.length;for(this._currentImageryLayers=[],p=C-1;p>=0;p--){let A=Ga.fromProviderAsync(T[p]);x.add(A,0),this._currentImageryLayers.push(A)}}else{this._currentImageryLayers=[];let C=Ga.fromProviderAsync(T);if(C.name=d.name,b)x.add(C,0);else{let A=x.get(0);l(A)&&x.remove(A),x.add(C,0)}this._currentImageryLayers.push(C)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=be.observable();be.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;if(l(d)&&(p=d.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof Km),this._globe.terrainProvider=p;else if(l(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new tk(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof Km),this._globe.terrainProvider=T,b())})}u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=An(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=e.selectedTerrainProviderViewModel}Object.defineProperties(eEe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var pk=eEe;function qG(e,t){e=In(e);let n=new pk(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let m=document.createElement("div");m.className="cesium-baseLayerPicker-sectionTitle",m.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),m.innerHTML="Terrain",r.appendChild(m);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let b=document.createElement("div");b.className="cesium-baseLayerPicker-category",x.appendChild(b);let T=document.createElement("div");T.className="cesium-baseLayerPicker-categoryTitle",T.setAttribute("data-bind","text: name"),b.appendChild(T);let C=document.createElement("div");C.className="cesium-baseLayerPicker-choices",C.setAttribute("data-bind","foreach: providers"),b.appendChild(C);let A=document.createElement("div");A.className="cesium-baseLayerPicker-item",A.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),C.appendChild(A);let E=document.createElement("img");E.className="cesium-baseLayerPicker-itemIcon",E.setAttribute("data-bind","attr: { src: iconUrl }"),E.setAttribute("draggable","false"),A.appendChild(E);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),A.appendChild(v),be.applyBindings(n,i),be.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(qG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});qG.prototype.isDestroyed=function(){return!1};qG.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._element),be.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var _k=qG;function tEe(e){let t=e.creationFunction;l(t.canExecute)||(t=An(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),be.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(tEe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var cs=tEe;function PSt(){let e=[],t=devicePixelRatio>=2;return e.push(new cs({name:"Bing Maps Aerial",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.AERIAL})}})),e.push(new cs({name:"Bing Maps Aerial with Labels",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.AERIAL_WITH_LABELS})}})),e.push(new cs({name:"Bing Maps Roads",iconUrl:nn("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return cg({style:ag.ROAD})}})),e.push(new cs({name:"ArcGIS World Imagery",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.SATELLITE,{enablePickFeatures:!1})}})),e.push(new cs({name:"ArcGIS World Hillshade",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new cs({name:"Esri World Ocean",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return rg.fromBasemapType(Oh.OCEANS,{enablePickFeatures:!1})}})),e.push(new cs({name:"Open\xADStreet\xADMap",iconUrl:nn("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new Sg({url:"https://tile.openstreetmap.org/"})}})),e.push(new cs({name:"Stadia x Stamen Watercolor",iconUrl:nn("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia x Stamen Toner",iconUrl:nn("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. +https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia Alidade Smooth",iconUrl:nn("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Stadia Alidade Smooth Dark",iconUrl:nn("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new Sg({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new cs({name:"Sentinel-2",iconUrl:nn("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return sg.fromAssetId(3954)}})),e.push(new cs({name:"Blue Marble",iconUrl:nn("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return sg.fromAssetId(3845)}})),e.push(new cs({name:"Earth at night",iconUrl:nn("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return sg.fromAssetId(3812)}})),e.push(new cs({name:"Natural Earth\xA0II",iconUrl:nn("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return C0.fromUrl(nn("Assets/Textures/NaturalEarthII"))}})),e}var gk=PSt;function RSt(){let e=[];return e.push(new cs({name:"WGS84 Ellipsoid",iconUrl:nn("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new Km({ellipsoid:ee.WGS84})}})),e.push(new cs({name:"Cesium World Terrain",iconUrl:nn("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return yC({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var yk=RSt;function OSt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof ha&&(e.tileset=n.primitive),e.pickActive=!1}}function iEe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof ha&&(e.tileset=i.primitive)},bn.MOUSE_MOVE):(e._eventHandler.removeInputAction(bn.MOUSE_MOVE),e.picking=e.picking)}var MSt={maximumFractionDigits:3};function xk(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,MSt):Math.round(t).toLocaleString()}function bk(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Fo.PICK]:e._statisticsPerPass[Fo.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${xk(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${xk(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${xk(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function oEe(){let e=Ci.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${xk(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${xk(e.texturesByteLength)}</li> + </ul> + `}var LSt=[{text:"Highlight",value:Ml.HIGHLIGHT},{text:"Replace",value:Ml.REPLACE},{text:"Mix",value:Ml.MIX}],nEe=new H(1,1,0,.4),NSt=new H,YG=new H;function Ca(e,t){let n=this,i=e.canvas;this._eventHandler=new Ju(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new fg({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,be.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=be.observable({}),this.properties=[],be.defineProperty(this,"properties",function(){let k=[],W=n._properties();for(let q in W)W.hasOwnProperty(q)&&k.push(q);return k});let o=be.observable();be.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=be.observable();be.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),l(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=Ml.HIGHLIGHT;let s=be.observable(),a=be.observable();be.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(W){let q=e.pick(W.endPosition);if(q instanceof Ws?(n.feature=q,n.tile=q.content.tile):l(q)&&l(q.content)?(n.feature=void 0,n.tile=q.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(q)&&l(q.content)){let J;e.pickPositionSupported&&(J=e.pickPosition(W.endPosition),l(J)&&(n._tileset.debugPickPosition=J)),n._tileset.debugPickedTile=q.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},bn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(bn.MOUSE_MOVE))}}),this.picking=!0;let c=be.observable();be.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),l(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let u=be.observable();be.defineProperty(this,"wireframe",{get:function(){return u()},set:function(k){u(k),l(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let f=be.observable();be.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(k){f(k),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=be.observable();be.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(k){d(k),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=be.observable();be.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=be.observable();be.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),l(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,be.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=be.observable();be.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(k){m(k),l(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=be.observable();be.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let b=be.observable();be.defineProperty(this,"showMemoryUsage",{get:function(){return b()},set:function(k){b(k),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let T=be.observable();be.defineProperty(this,"showUrl",{get:function(){return T()},set:function(k){T(k),l(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let C=be.observable();be.defineProperty(this,"maximumScreenSpaceError",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let A=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,be.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(A(),1/6)},set:function(k){let W=Math.pow(k,6);A(W),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=W)}});let E=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=24;let v=OSt(this),D=be.observable();be.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(v,bn.LEFT_CLICK):n._eventHandler.removeInputAction(bn.LEFT_CLICK)}});let O=be.observable();be.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let R=be.observable();be.defineProperty(this,"geometricErrorScale",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let M=be.observable();be.defineProperty(this,"maximumAttenuation",{get:function(){return M()},set:function(k){k=Number(k),isNaN(k)||(M(k),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let N=be.observable();be.defineProperty(this,"baseResolution",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let _=be.observable();be.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(k){_(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let S=be.observable();be.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let w=be.observable();be.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(k){k=Number(k),isNaN(k)||(w(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=be.observable();be.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(k){I(k),l(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let L=be.observable();be.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return L()},set:function(k){k=Number(k),isNaN(k)||(L(k),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let B=be.observable();be.defineProperty(this,"baseScreenSpaceError",{get:function(){return B()},set:function(k){k=Number(k),isNaN(k)||(B(k),l(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let U=be.observable();be.defineProperty(this,"skipLevels",{get:function(){return U()},set:function(k){k=Number(k),isNaN(k)||(U(k),l(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let V=be.observable();be.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(k){V(k),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=be.observable();be.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(k){G(k),l(n._tileset)&&(n._tileset.loadSiblings=k)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||iEe(this,!0)}Object.defineProperties(Ca.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return LSt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=bk(e,!1),this._pickStatisticsText=bk(e,!0),this._resourceCacheStatisticsText=oEe(),iEe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,NSt):H.WHITE:t.color=YG,this._scene.requestRender()),l(e)&&(H.clone(e.color,YG),e.color=nEe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!gQ(t.content)&&(t.color=YG,this._scene.requestRender()),l(e)&&!gQ(e.content)&&(H.clone(e.color,YG),e.color=nEe,this._scene.requestRender()),this._tile=e}}});function gQ(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!gQ(t[i]))return!1;return!0}return!1}Ca.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};Ca.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Ca.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};Ca.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Ca.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};Ca.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};Ca.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};Ca.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};Ca.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};Ca.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};Ca.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new bC(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};Ca.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};Ca.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=bk(e,!1),this._pickStatisticsText=bk(e,!0),this._resourceCacheStatisticsText=oEe())};Ca.prototype.isDestroyed=function(){return!1};Ca.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};Ca.getStatistics=bk;var Tk=Ca;function XG(e,t){e=In(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new Tk(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=qa.createSection,c=qa.createCheckbox,u=qa.createRangeInput,f=qa.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),m=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),b=a(s,"Style","styleVisible","toggleStyle"),T=a(s,"Optimization","optimizationVisible","toggleOptimization"),C=document.createElement("div");C.className="field-group";let A=document.createElement("label");A.className="field-label",A.appendChild(document.createTextNode("Properties: "));let E=document.createElement("div");E.setAttribute("data-bind","text: properties"),C.appendChild(A),C.appendChild(E),d.appendChild(C),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let R=document.createElement("div");R.setAttribute("data-bind","visible: eyeDomeLighting"),R.appendChild(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),R.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(R),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let M=document.createElement("div");M.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(M);let N=document.createElement("div");N.setAttribute("data-bind","visible: dynamicScreenSpaceError"),N.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),N.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),g.appendChild(N),m.appendChild(c("Performance","performance")),m.appendChild(i),m.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),m.appendChild(_),m.appendChild(c("Pick Statistics","showPickStatistics"));let S=document.createElement("div");S.className="cesium-3dTilesInspector-statistics",S.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(S),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(w);let I=document.createElement("div");b.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let L=document.createElement("select");L.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(L);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(B);let U=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(U);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),T.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let W=document.createElement("div");W.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),T.appendChild(W),T.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),T.appendChild(c("Load siblings of visible tiles","loadSiblings")),be.applyBindings(o,n)}Object.defineProperties(XG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});XG.prototype.isDestroyed=function(){return!1};XG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Ck=XG;function FSt(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function yQ(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var BSt=new mn,kSt=new h;function Ak(e,t){let n=this,i=e.canvas,o=new Ju(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",be.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=An(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=An(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=An(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=be.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=be.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=be.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new fg({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=An(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=be.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=An(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new z3({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=be.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=An(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=be.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=be.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=be.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=An(function(){let u=n.depthFrustum+1;return n.depthFrustum=yQ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=An(function(){let u=n.depthFrustum-1;return n.depthFrustum=yQ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=be.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=An(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new ik({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=be.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=be.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=An(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=An(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=be.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=An(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=be.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,BSt),g=r.pick(p,n._scene,kSt);if(l(g)){let m=d.cartesianToCartographic(g),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let b=0;!f&&b<x.length;++b){let T=x[b];if(l(T))for(let C=0;!f&&C<T.length;++C){let A=T[C];re.contains(A.rectangle,m)&&(f=A)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=An(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=be.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(Ak.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return An(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return An(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return An(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return An(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return An(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});Ak.prototype._update=function(){this.frustums&&(this.frustumStatisticText=FSt(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=yQ(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};Ak.prototype.isDestroyed=function(){return!1};Ak.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var Ek=Ak;function KG(e,t){e=In(e);let n=document.createElement("div"),i=new Ek(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=qa.createSection,c=qa.createCheckbox,u=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(m);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(x);let b=document.createElement("input");b.type="button",b.value="-",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(b);let T=document.createElement("input");T.type="button",T.value="+",T.className="cesium-cesiumInspector-pickButton",T.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(T);let C=a(s,"Primitives","primitivesVisible","togglePrimitives"),A=document.createElement("div");A.className="cesium-cesiumInspector-pickSection",C.appendChild(A);let E=document.createElement("input");E.type="button",E.value="Pick a primitive",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(E),A.appendChild(v),A.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),A.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),A.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let R=document.createElement("input");R.type="button",R.value="Pick a tile",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(R),v.className="cesium-cesiumInspector-center",O.appendChild(v);let M=document.createElement("div");O.appendChild(M);let N=document.createElement("input");N.type="button",N.value="Parent",N.className="cesium-cesiumInspector-pickButton",N.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let S=document.createElement("input");S.type="button",S.value="NE",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let L=document.createElement("div");L.className="cesium-cesiumInspector-tileText",M.className="cesium-cesiumInspector-frustumStatistics",M.appendChild(L),M.setAttribute("data-bind","visible: hasPickedTile"),L.setAttribute("data-bind","html: tileText");let B=document.createElement("div");B.className="cesium-cesiumInspector-relativeText",B.textContent="Select relative:",M.appendChild(B);let U=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(N);let W=document.createElement("td");W.appendChild(_);let q=document.createElement("td");q.appendChild(S),V.appendChild(k),V.appendChild(W),V.appendChild(q);let J=document.createElement("td"),j=document.createElement("td");j.appendChild(w);let K=document.createElement("td");K.appendChild(I),G.appendChild(J),G.appendChild(j),G.appendChild(K),U.appendChild(V),U.appendChild(G),M.appendChild(U),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),be.applyBindings(i,this._element)}Object.defineProperties(KG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});KG.prototype.isDestroyed=function(){return!1};KG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var Sk=KG;function ZG(e,t){l(t)||(t=document.body),t=In(t);let n=this,i=be.observable(gr.fullscreen),o=be.observable(gr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,be.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,be.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&gr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=An(function(){gr.fullscreen?gr.exitFullscreen():gr.requestFullscreen(n._fullscreenElement)},be.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(In(e),r.body),this._callback=function(){i(gr.fullscreen)},r.addEventListener(gr.changeEventName,this._callback)}Object.defineProperties(ZG.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});ZG.prototype.isDestroyed=function(){return!1};ZG.prototype.destroy=function(){document.removeEventListener(gr.changeEventName,this._callback),ue(this)};var vk=ZG;var VSt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",USt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function $G(e,t){e=In(e);let n=new vk(t,e);n._exitFullScreenPath=USt,n._enterFullScreenPath=VSt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),be.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties($G.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});$G.prototype.isDestroyed=function(){return!1};$G.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var wk=$G;var rEe=1e3;function bd(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new P3({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new me,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=aEe,this._handleArrowUp=sEe;let t=this;this._suggestionsVisible=be.pureComputed(function(){let o=be.getObservable(t,"_suggestions")().length>0,r=be.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=An(function(i){if(i=y(i,k0.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)qSt(t);else return WSt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?sEe(t):r?aEe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;uEe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,bd.flyToDestination),this._focusTextbox=!1,be.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=be.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){bd._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,be.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,be.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,be.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(bd.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});bd.prototype.destroy=function(){this._suggestionSubscription.dispose()};function sEe(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],bd._adjustSuggestionsScroll(e,n)}function aEe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],bd._adjustSuggestionsScroll(e,i)}function zSt(e,t){let n=l(t)?t.availability:void 0;return l(n)?IT(t,[e]).then(function(i){return e=i[0],e.height+=rEe,e}):(e.height+=rEe,Promise.resolve(e))}function HSt(e,t){let n=e._scene,i=n.ellipsoid,o=n.camera,r=n.terrainProvider,s=t,a;return t instanceof re?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=re.center(t):a=PT(t,n):t=i.cartesianToCartographic(t),l(a)||(a=zSt(t,r)),a.then(function(c){s=i.cartographicToCartesian(c)}).finally(function(){o.flyTo({destination:s,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function GSt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function WSt(e,t,n){let i=e._searchText;if(lEe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await GSt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,bQ(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=cEe(e,Rv.getCreditsFromResult(s[0]));l(a)||xQ(e,t[o].credit);return}e._searchText=`${i} (not found)`}function xQ(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function cEe(e,t){return l(t)&&t.forEach(n=>xQ(e,n)),t}function bQ(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function jSt(e,t){let n=In(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function qSt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function lEe(e){return/^\s*$/.test(e)}function uEe(e){be.getObservable(e,"_suggestions").removeAll()}async function YSt(e){if(!e.autoComplete)return;let t=e._searchText;if(uEe(e),bQ(e),!lEe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,k0.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=Rv.getCreditsFromResult(r);o=o&&!l(s),cEe(e,s)}),o&&xQ(e,n.credit)}if(e._suggestions.length>=5)return}}bd.flyToDestination=HSt;bd._updateSearchSuggestions=YSt;bd._adjustSuggestionsScroll=jSt;bd.prototype.isDestroyed=function(){return!1};bd.prototype.destroy=function(){return bQ(this),ue(this)};var Dk=bd;var XSt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",KSt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function QG(e){let t=In(e.container),n=new Dk(e);n._startSearchPath=XSt,n._stopSearchPath=KSt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),be.applyBindings(n,i),be.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},Ht.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(QG.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});QG.prototype.isDestroyed=function(){return!1};QG.prototype.destroy=function(){let e=this._container;return Ht.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),be.cleanNode(this._form),be.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var Ik=QG;function fEe(e,t){this._scene=e,this._duration=t;let n=this;this._command=An(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",be.track(this,["tooltip"])}Object.defineProperties(fEe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var Pk=fEe;function JG(e,t,n){e=In(e);let i=new Pk(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(JG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});JG.prototype.isDestroyed=function(){return!1};JG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var Rk=JG;function ZSt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function hEe(e,t){be.track(e);for(let n=0;n<e.sublayers.length;n++)hEe(e.sublayers[n],t)}function e5(e){return e.modelName==="FullModel"}function mEe(e){return e.modelName==="Overview"}function pEe(e){return mEe(e)||e5(e)}function dEe(e,t){if(pEe(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:be.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function $St(e,t){if(pEe(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");e5(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function QSt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function JSt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:be.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:be.observable(!0),index:-1}],currentLayer:be.observable(),expandClickHandler:ZSt,setOptionDisable:function(i,o){be.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){$St(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){hEe(n[i],this.viewModel);let o=dEe(n[i],this.viewModel);l(o)&&(mEe(o)||!l(this.viewModel.defaultLayer)&&e5(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=dEe(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=e5(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return QSt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var Ok=JSt;function evt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=` + <h3>Building explorer</h3> + <select + data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer" + ></select> + <div id="bsl-wrapper"> + <h3>Select Level</h3> + <select data-bind="options: levels, value: currentLevel"></select> + <h3>Disciplines & Categories</h3> + <ul class="layersList" data-bind="foreach: sublayers"> + <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <li> + <div class="li-wrapper"> + <span + class="expandItem" + data-bind="click: $root.expandClickHandler" + >+</span + > + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + <ul class="nested" data-bind="attr: { id: name + '-expander'}"> + <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <div class="li-wrapper"> + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + </li> + </ul> + </li> + </ul> + </ul> + </div>`,n.appendChild(i);let o=new Ok(t);be.track(o),be.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var TQ=evt;var tvt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",nvt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function CQ(){this._cameraClicked=new me,this._closeClicked=new me,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",be.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,be.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?nvt:tvt}}),be.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}CQ.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(CQ.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var Mk=CQ;function t5(e){e=In(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new Mk;be.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,u=c.createElement("link");u.href=nn("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=Ta(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let x=window.getComputedStyle(g);if(x!==null){let b=x["background-color"],T=H.fromCssColorString(b);l(T)&&T.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let m=f.getBoundingClientRect().height;r.style.height=`${m}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(t5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});t5.prototype.isDestroyed=function(){return!1};t5.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var Lk=t5;function _Ee(){this.showInstructions=!1;let e=this;this._command=An(function(){e.showInstructions=!e.showInstructions}),this._showClick=An(function(){e._touch=!1}),this._showTouch=An(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",be.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(_Ee.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var Nk=_Ee;function n5(e){let t=In(e.container),n=new Nk,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=nn("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=nn("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),be.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(n5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});n5.prototype.isDestroyed=function(){return!1};n5.prototype.destroy=function(){return Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Fk=n5;function AQ(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,be.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=An(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=W3.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(AQ.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});AQ.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var Bk=AQ;function i5(e){let t=In(e.container),n=new Bk(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),be.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(i5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});i5.prototype.isDestroyed=function(){return!1};i5.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var kk=i5;function o5(e){this._scene=e,this._orthographic=e.camera.frustum instanceof rn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,be.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;be.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=An(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new fr,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof rn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=An(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=An(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(o5.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});o5.prototype.isDestroyed=function(){return!1};o5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var Vk=o5;var ivt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",ovt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function r5(e,t){e=In(e);let n=new Vk(t);n._perspectivePath=ivt,n._orthographicPath=ovt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),be.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(r5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});r5.prototype.isDestroyed=function(){return!1};r5.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Uk=r5;function s5(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new fr,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",be.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,be.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=An(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=An(function(){e.morphTo2D(n._duration)}),this._morphTo3D=An(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=An(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(s5.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});s5.prototype.isDestroyed=function(){return!1};s5.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var zk=s5;var rvt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",svt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",avt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function a5(e,t,n){e=In(e);let i=new zk(t,n);i._globePath=rvt,i._flatMapPath=svt,i._columbusViewPath=avt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),be.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},Ht.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(a5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});a5.prototype.isDestroyed=function(){return!1};a5.prototype.destroy=function(){return this._viewModel.destroy(),Ht.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var Hk=a5;var cvt=new z,c5="-1000px";function Gk(e,t,n){this._scene=e,this._screenPositionX=c5,this._screenPositionY=c5,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,be.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,be.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),be.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Ui.worldToWindowCoordinates(e,i,o)}}Gk.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,cvt);if(!l(e))this._screenPositionX=c5,this._screenPositionY=c5;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};Gk.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:qr.EXPONENTIAL_OUT})};Gk.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:qr.EXPONENTIAL_OUT})};Object.defineProperties(Gk.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var Wk=Gk;function l5(e,t){e=In(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new Wk(t,this._element,this._container);this._viewModel=c,be.applyBindings(this._viewModel,this._element)}Object.defineProperties(l5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});l5.prototype.isDestroyed=function(){return!1};l5.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),ue(this)};var jk=l5;function IC(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}IC.prototype.getHeight=function(){return this._height};IC.prototype.getBase=function(){return this._base};IC.prototype.getStartTime=function(){return this._start};IC.prototype.getStopTime=function(){return this._stop};IC.prototype.setRange=function(e,t){this._start=e,this._stop=t};IC.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=Z.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=Z.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var qk=IC;function gEe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new H(.5,.5,.5,1),this.backgroundColor=i||new H(0,0,0,0)}gEe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=Z.addSeconds(t.startJulian,t.duration,new Z);if(Z.lessThan(n,o)&&Z.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(Z.lessThanOrEquals(n,r)&&Z.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=Z.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new Z);!l(a)&&Z.greaterThanOrEquals(u,n)?a=s:!l(c)&&Z.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var Yk=gEe;var EQ=1e12,Td={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},yl={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},Y0=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],lvt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function xl(e,t){e=In(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=Td.none,this._touchMode=yl.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=uvt(this),this._onMouseUp=fvt(this),this._onMouseMove=dvt(this),this._onMouseWheel=hvt(this),this._onTouchStart=mvt(this),this._onTouchMove=_vt(this),this._onTouchEnd=pvt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}xl.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};xl.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};xl.prototype.isDestroyed=function(){return!1};xl.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};xl.prototype.addHighlightRange=function(e,t,n){let i=new qk(e,t,n);return this._highlightRanges.push(i),this.resize(),i};xl.prototype.addTrack=function(e,t,n,i){let o=new Yk(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};xl.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=Z.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Wr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=Z.secondsDifference(o,i),s=Z.secondsDifference(i,this._startJulian),a=Z.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=Z.addSeconds(this._endJulian,s,new Z),this._startJulian=i,this._timeBarSecondsSpan=Z.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=Z.addSeconds(this._startJulian,a,new Z),this._endJulian=o,this._timeBarSecondsSpan=Z.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};xl.prototype.zoomFrom=function(e){let t=Z.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(Z.addSeconds(this._startJulian,t-t*e,new Z),Z.addSeconds(this._endJulian,n*e-n,new Z))};function SQ(e){return e<10?`0${e.toString()}`:e.toString()}xl.prototype.makeLabel=function(e){let t=Z.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${lvt[t.month-1]} ${t.day} ${t.year} ${SQ(t.hour)}:${SQ(t.minute)}:${SQ(t.second)}${i}`};xl.prototype.smallestTicInPixels=7;xl.prototype._makeTics=function(){let e=this._timeBarEle,t=Z.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=Z.addSeconds(this._startJulian,a,new Z)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=Z.addSeconds(this._startJulian,c,new Z));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),x,b=Z.toGregorianDate(g);d>31536e4?x=Z.fromDate(new Date(Date.UTC(Math.floor(b.year/100)*100,0))):d>31536e3?x=Z.fromDate(new Date(Date.UTC(Math.floor(b.year/10)*10,0))):d>86400?x=Z.fromDate(new Date(Date.UTC(b.year,0))):x=Z.fromDate(new Date(Date.UTC(b.year,b.month,b.day)));let T=Z.secondsDifference(this._startJulian,Z.addSeconds(x,m,new Z)),C=T+d;this._epochJulian=x;function A(k){return Math.floor(T/k)*k}function E(k,W){return Math.ceil(k/W+.5)*W}function v(k){return(k-T)/d}function D(k,W){return k-W*Math.round(k/W)}this._rulerEle.innerHTML=this.makeLabel(Z.addSeconds(this._endJulian,-a,new Z));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let R=f;f-=u;let M={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(k){s+=k.render(M)});let N=0,_=0,S=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,L=-1,B=Y0.length,U;for(U=0;U<B;++U){let k=Y0[U];if(++I,N=k,k>w&&k>f)break;L<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(L=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(N,Y0[I]))<1e-5){Y0[I]>=f&&(_=Y0[I]);break}if(L>=0)for(;L<I;){if(Math.abs(D(_,Y0[L]))<1e-5&&Y0[L]>=f){S=Y0[L];break}++L}}f=R,f>u&&S<1e-5&&Math.abs(f-N)>u&&(S=f,f<=N+u&&(_=0));let V=-999999,G;if(p*(S/this._timeBarSecondsSpan)>=3)for(o=A(S);o<=C;o=E(o,S))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=A(_);o<=C;o=E(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(N/this._timeBarSecondsSpan)>=2){this._mainTicSpan=N,C+=N,o=A(N);let k=Z.computeTaiMinusUtc(x);for(;o<=C;){let W=Z.addSeconds(g,o-T,new Z);if(N>2.1){let K=Z.computeTaiMinusUtc(W);Math.abs(K-k)>.1&&(o+=K-k,W=Z.addSeconds(g,o-T,new Z))}let q=Math.round(p*v(o)),J=this.makeLabel(W);this._rulerEle.innerHTML=J,G=this._rulerEle.offsetWidth,G<10&&(G=O);let j=q-(G/2-1);j>V?(V=j+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${q.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${j.toString()}px;">${J}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${q.toString()}px;"></span>`,o=E(o,N)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),M.y=0,this._trackList.forEach(function(k){k.render(r._context,M),M.y+=k.height})};xl.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=Z.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(Z.addSeconds(this._startJulian,this._timelineDrag,new Z),Z.addSeconds(this._endJulian,this._timelineDrag,new Z)))};xl.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=Z.addSeconds(this._startJulian,t,new Z),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function uvt(e){return function(t){e._mouseMode!==Td.touchOnly&&(t.button===0?(e._mouseMode=Td.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Td.zoom:e._mouseMode=Td.slide)),t.preventDefault()}}function fvt(e){return function(t){e._mouseMode=Td.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function dvt(e){return function(t){let n;if(e._mouseMode===Td.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===Td.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(Z.addSeconds(e._startJulian,i,new Z),Z.addSeconds(e._endJulian,i,new Z))}}else e._mouseMode===Td.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function hvt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;EQ=Math.max(Math.min(Math.abs(n),EQ),1),n/=EQ,e.zoomFrom(Math.pow(1.05,-n))}}function mvt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Td.touchOnly,n===1?(i=Z.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=yl.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=yl.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=yl.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=yl.ignore}}function pvt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===yl.singleTap?(e._touchMode=yl.scrub,e._onTouchMove(t)):e._touchMode===yl.scrub&&e._onTouchMove(t),e._mouseMode=Td.touchOnly,n!==1?e._touchMode=n>0?yl.ignore:yl.none:e._touchMode===yl.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function _vt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===yl.singleTap&&(e._touchMode=yl.slideZoom),e._mouseMode=Td.touchOnly,e._touchMode===yl.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===yl.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=Z.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new Z)):(n=e._touchState.centerX-r,a=Z.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new Z)),e.zoomTo(a,Z.addSeconds(a,e._timeBarSecondsSpan*c,new Z)),e._touchState.centerX=r,e._touchState.spanX=s))}}xl.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var Xk=xl;var xEe=Vo(yEe(),1);function gvt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function bEe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function yvt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(bEe(),e._locked=!1),e._noSleep.disable(),gr.exitFullscreen(),n(!1)):(gr.fullscreen||gr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=gvt("landscape")),t.useWebVR=!0,n(!0)))}function u5(e,t){let n=this,i=be.observable(gr.enabled),o=be.observable(!1);this.isVRMode=void 0,be.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,be.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&gr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=be.observable(!1);this._isOrthographic=void 0,be.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new fr,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof rn)}),this._locked=!1,this._noSleep=new xEe.default,this._command=An(function(){yvt(n,e,o,r)},be.getObservable(this,"isVREnabled")),this._vrElement=y(In(t),document.body),this._callback=function(){!gr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(bEe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(gr.changeEventName,this._callback)}Object.defineProperties(u5.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});u5.prototype.isDestroyed=function(){return!1};u5.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(gr.changeEventName,this._callback),ue(this)};var Zk=u5;var xvt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",bvt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function f5(e,t,n){e=In(e);let i=new Zk(t,n);i._exitVRPath=bvt,i._enterVRPath=xvt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(f5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});f5.prototype.isDestroyed=function(){return!1};f5.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var $k=f5;var TEe=new se;function EEe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function Tvt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function Cvt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function CEe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof er)return i;if(n instanceof Ws)return new er({name:Cvt(n),description:Tvt(n),feature:n})}if(l(e.scene.globe))return Svt(e,t.position)}var Avt=new Z;function wQ(e,t){if(l(t)){let n=t.clock;if(l(n)&&l(e)){let i=n.startTime,o=n.stopTime;Z.equals(i,o)&&(o=Z.addSeconds(i,P.EPSILON2,Avt)),e.updateFromClock(),e.zoomTo(i,o)}}}var Evt=new h;function Svt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new er({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=AEe();return}let a=s[0],c=new er({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.ellipsoid.cartographicToCartesian(a.position,Evt);c.position=new Gc(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=AEe())}),r}function AEe(){return new er({id:"None",description:"No features found."})}function vvt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function $i(e,t){e=In(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new hh,u=new lk(c),f=!0);let d=new x3(r,{baseLayer:n&&l(t.selectedImageryProviderViewModel)||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,shouldAnimate:t.shouldAnimate,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,ellipsoid:t.ellipsoid,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,automaticallyTrackDataSourceClocks:t.automaticallyTrackDataSourceClocks,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,dataSources:t.dataSources,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=d.scene,g=new fr;g.add(c.onTick,$i.prototype._onTick,this);let m;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let W=document.createElement("div");W.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(W),m=new jk(W,p)}let x;if(!l(t.infoBox)||t.infoBox!==!1){let W=document.createElement("div");W.className="cesium-viewer-infoBoxContainer",o.appendChild(W),x=new Lk(W);let q=x.viewModel;g.add(q.cameraClicked,$i.prototype._onInfoBoxCameraClicked,this),g.add(q.closeClicked,$i.prototype._onInfoBoxClockClicked,this)}let b=document.createElement("div");b.className="cesium-viewer-toolbar",o.appendChild(b);let T;if(!l(t.geocoder)||t.geocoder!==!1){let W=document.createElement("div");W.className="cesium-viewer-geocoderContainer",b.appendChild(W);let q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),T=new Ik({container:W,geocoderServices:q,scene:p}),g.add(T.viewModel.search.beforeExecute,$i.prototype._clearObjects,this)}let C;(!l(t.homeButton)||t.homeButton!==!1)&&(C=new Rk(b,p),l(T)&&g.add(C.viewModel.command.afterExecute,function(){let W=T.viewModel;W.searchText="",W.isSearchInProgress&&W.search()}),g.add(C.viewModel.command.beforeExecute,$i.prototype._clearTrackedObject,this));let A;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(A=new Hk(b,p));let E;t.projectionPicker&&(E=new Uk(b,p));let v,D;if(n){let W=y(t.imageryProviderViewModels,gk()),q=y(t.terrainProviderViewModels,yk());v=new _k(b,{globe:p.globe,imageryProviderViewModels:W,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),D=b.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(v.viewModel.selectedImagery=void 0),p.imageryLayers.removeAll(),p.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(v.viewModel.selectedTerrain=void 0),p.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(p.globe.depthTestAgainstTerrain=!0),p.setTerrain(t.terrain));let O;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let W=!0;try{if(l(window.localStorage)){let q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(q)&&q?W=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}O=new Fk({container:b,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,W)})}let R;if(!l(t.animation)||t.animation!==!1){let W=document.createElement("div");W.className="cesium-viewer-animationContainer",o.appendChild(W),R=new hk(W,new mk(u))}let M;if(!l(t.timeline)||t.timeline!==!1){let W=document.createElement("div");W.className="cesium-viewer-timelineContainer",o.appendChild(W),M=new Xk(W,c),M.addEventListener("settime",EEe,!1),M.zoomTo(c.startTime,c.stopTime)}let N,_,S;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(S=document.createElement("div"),S.className="cesium-viewer-fullscreenContainer",o.appendChild(S),N=new wk(S,t.fullscreenElement),_=Ta(N.viewModel,"isFullscreenEnabled",function(W){S.style.display=W?"block":"none",l(M)&&(M.container.style.right=`${S.clientWidth}px`,M.resize())}));let w,I,L;if(t.vrButton){let W=document.createElement("div");W.className="cesium-viewer-vrContainer",o.appendChild(W),w=new $k(W,p,t.fullScreenElement),I=Ta(w.viewModel,"isVREnabled",function(q){W.style.display=q?"block":"none",l(N)&&(W.style.right=`${S.clientWidth}px`),l(M)&&(M.container.style.right=`${W.clientWidth}px`,M.resize())}),L=Ta(w.viewModel,"isVRMode",function(q){vvt(i,q)})}this._baseLayerPickerDropDown=D,this._fullscreenSubscription=_,this._vrSubscription=I,this._vrModeSubscription=L,this._dataSourceChangedListeners={},this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=m,this._infoBox=x,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=b,this._homeButton=C,this._sceneModePicker=A,this._projectionPicker=E,this._baseLayerPicker=v,this._navigationHelpButton=O,this._animation=R,this._timeline=M,this._fullscreenButton=N,this._vrButton=w,this._geocoder=T,this._eventHelper=g,this._lastWidth=0,this._lastHeight=0,this._enableInfoOrSelection=l(x)||l(m),this._selectedEntity=void 0,this._selectedEntityChanged=new me;let B=this._cesiumWidget.dataSources,U=this._cesiumWidget.dataSourceDisplay;g.add(B.dataSourceAdded,$i.prototype._onDataSourceAdded,this),g.add(B.dataSourceRemoved,$i.prototype._onDataSourceRemoved,this),g.add(p.postUpdate,$i.prototype.resize,this);let V=B.length;for(let W=0;W<V;W++)this._dataSourceAdded(B,B.get(W));this._dataSourceAdded(void 0,U.defaultDataSource),g.add(B.dataSourceAdded,$i.prototype._dataSourceAdded,this),g.add(B.dataSourceRemoved,$i.prototype._dataSourceRemoved,this);function G(W){let q=CEe(i,W);l(q)?Y.getValueOrUndefined(q.position,i.clock.currentTime)?i.trackedEntity=q:i.zoomTo(q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function k(W){i.selectedEntity=CEe(i,W)}d.screenSpaceEventHandler.setInputAction(k,bn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(G,bn.LEFT_DOUBLE_CLICK),d._canAnimateUpdateCallback=this._updateCanAnimate(this)}Object.defineProperties($i.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._cesiumWidget.dataSourceDisplay}},entities:{get:function(){return this._cesiumWidget.entities}},dataSources:{get:function(){return this._cesiumWidget.dataSources}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._cesiumWidget.allowDataSourcesToSuspendAnimation},set:function(e){this._cesiumWidget.allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._cesiumWidget.trackedEntity},set:function(e){this._cesiumWidget.trackedEntity=e}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._cesiumWidget.trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._cesiumWidget.clockTrackedDataSource},set:function(e){this._cesiumWidget.clockTrackedDataSource!==e&&(this._cesiumWidget.clockTrackedDataSource=e,wQ(this._timeline,e))}}});$i.prototype.extend=function(e,t){e(this,t)};$i.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let m=this._geocoder.searchSuggestionsContainer;m.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=5,p=3,g=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let m=this._lastWidth;u=this._animation.container,n>900?(f=169,m<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(m<600||m>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(m>600||m===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let m=this._fullscreenButton,x=this._vrButton,b=c.container,T=b.style;p=b.clientHeight+3,T.left=`${f}px`;let C=0;l(m)&&(C+=m.container.clientWidth),l(x)&&(C+=x.container.clientWidth),T.right=`${C}px`,c.resize()}!r&&l(this._fullscreenButton)&&(g=this._fullscreenButton.container.clientWidth),this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._bottomContainer.style.right=`${g}px`,this._lastWidth=n,this._lastHeight=i};$i.prototype.forceResize=function(){this._lastWidth=0,this.resize()};$i.prototype.render=function(){this._cesiumWidget.render()};$i.prototype.isDestroyed=function(){return!1};$i.prototype.destroy=function(){return l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(bn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(bn.LEFT_DOUBLE_CLICK)),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",EEe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._cesiumWidget=this._cesiumWidget.destroy(),ue(this)};$i.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener($i.prototype._onEntityCollectionChanged,this)};$i.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener($i.prototype._onEntityCollectionChanged,this),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};$i.prototype._updateCanAnimate=function(e){return function(t){e._clockViewModel.canAnimate=t}};$i.prototype._onTick=function(e){let t=e.currentTime,n,i=!1,o=this.selectedEntity,r=l(o)&&this._enableInfoOrSelection;r&&o.isShowing&&o.isAvailable(t)&&(this._cesiumWidget.dataSourceDisplay.getBoundingSphere(o,!0,TEe)!==ct.FAILED?n=TEe.center:l(o.position)&&(n=o.position.getValue(t,n)),i=l(n));let s=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(s)&&(s.position=h.clone(n,s.position),s.showSelection=r&&i,s.update());let a=l(this._infoBox)?this._infoBox.viewModel:void 0;l(a)&&(a.showInfo=r,a.enableCamera=i,a.isCameraTracking=this.trackedEntity===this.selectedEntity,r?(a.titleText=y(o.name,o.id),a.description=Y.getValueOrDefault(o.description,t,"")):(a.titleText="",a.description=""))};$i.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.selectedEntity===r&&(this.selectedEntity=void 0)}};$i.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};$i.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};$i.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};$i.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};$i.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&wQ(this.timeline,e)};$i.prototype._onDataSourceAdded=function(e,t){this._cesiumWidget._automaticallyTrackDataSourceClocks&&t===this.clockTrackedDataSource&&wQ(this._timeline,t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,$i.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};$i.prototype._onDataSourceRemoved=function(e,t){let n=t.entities.id;this._dataSourceChangedListeners[n](),this._dataSourceChangedListeners[n]=void 0};$i.prototype.zoomTo=function(e,t){return this._cesiumWidget.zoomTo(e,t)};$i.prototype.flyTo=function(e,t){return this._cesiumWidget.flyTo(e,t)};var DQ=$i;function wvt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new Ck(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var IQ=wvt;function Dvt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new Sk(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var PQ=Dvt;function Ivt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new me,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=In(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){SEe(s,u),s=f,RQ(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?RQ(s,u):SEe(s,u),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function u(f){PC(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let m=d[g],x=new FileReader;x.onload=Pvt(e,m,c,a),x.onerror=Rvt(e,m),x.readAsText(m)}}RQ(s,u),e.destroy=L3(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function PC(e){e.stopPropagation(),e.preventDefault()}function SEe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",PC,!1),n.removeEventListener("dragover",PC,!1),n.removeEventListener("dragexit",PC,!1))}function RQ(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",PC,!1),e.addEventListener("dragover",PC,!1),e.addEventListener("dragexit",PC,!1)}function Pvt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=rN.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=KN.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=vF.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=JN.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function Rvt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var OQ=Ivt;function Ovt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new kk({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var MQ=Ovt;function vEe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function Cd(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=be.observable();return be.defineProperty(t,r,{get:function(){return u()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=vEe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===Ni.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Ni.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Ni.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&hp(t)}})}var Mvt=new h,Lvt=new h,Nvt=new Sa,Fvt=new $;function hp(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,Mvt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,Lvt),i=Nvt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,Fvt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties(Cd.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=vEe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,hp(t)}}}});Cd.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};Cd.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};Cd.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};Cd.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};Cd.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};Cd.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};Cd.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new sC({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};Cd.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};Cd.prototype.isDestroyed=function(){return!1};Cd.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};var Qk=Cd;function d5(e,t){e=In(e);let n=document.createElement("div"),i=new Qk(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=qa.createSection,a=qa.createCheckbox,c=qa.createRangeInput,u=qa.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),m=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let x=10,b=10,T=P.PI;d.appendChild(c("Translation X","translationX",-x,+x)),d.appendChild(c("Translation Y","translationY",-x,+x)),d.appendChild(c("Translation Z","translationZ",-x,+x)),d.appendChild(c("Scale X","scaleX",0,+b)),d.appendChild(c("Scale Y","scaleY",0,+b)),d.appendChild(c("Scale Z","scaleZ",0,+b)),d.appendChild(c("Heading","angleX",-T,+T)),d.appendChild(c("Pitch","angleY",-T,+T)),d.appendChild(c("Roll","angleZ",-T,+T));let C=Ni.getMinBounds(Ni.BOX),A=Ni.getMaxBounds(Ni.BOX),E=h.fromElements(Ni.getMinBounds(Ni.ELLIPSOID).x,Ni.getMinBounds(Ni.ELLIPSOID).y,-ee.WGS84.maximumRadius,new h),v=h.fromElements(Ni.getMaxBounds(Ni.ELLIPSOID).x,Ni.getMaxBounds(Ni.ELLIPSOID).y,1e7,new h),D=Ni.getMinBounds(Ni.CYLINDER),O=Ni.getMaxBounds(Ni.CYLINDER);qv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",C,A,"shapeIsBox",p),qv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",E,v,"shapeIsEllipsoid",p),qv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),qv("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",C,A,"shapeIsBox",g),qv("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",E,v,"shapeIsEllipsoid",g),qv("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let R=document.createElement("div");m.appendChild(R);let M=document.createElement("textarea");M.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(M);let N=u("Compile (Ctrl+Enter)","compileShader");R.appendChild(N);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),R.appendChild(_),be.applyBindings(i,n)}Object.defineProperties(d5.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});d5.prototype.isDestroyed=function(){return!1};d5.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function qv(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){let b=qa.createRangeInput,T=p,C=g,A=x.appendChild(document.createElement("div"));A.setAttribute("data-bind",`if: ${m}`),A.appendChild(b(e,s,T.x,C.x)),A.appendChild(b(t,a,T.x,C.x)),A.appendChild(b(n,c,T.y,C.y)),A.appendChild(b(i,u,T.y,C.y)),A.appendChild(b(o,f,T.z,C.z)),A.appendChild(b(r,d,T.z,C.z))}var Jk=d5;function Bvt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new Jk(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var LQ=Bvt;globalThis.CESIUM_VERSION="1.123";var kvt="1.123";0&&(module.exports={AlphaMode,AlphaPipelineStage,AnchorPointDirect,AnchorPointIndirect,Animation,AnimationViewModel,Appearance,ApproximateTerrainHeights,ArcGISTiledElevationTerrainProvider,ArcGisBaseMapType,ArcGisMapServerImageryProvider,ArcGisMapService,ArcType,ArticulationStageType,AssociativeArray,Atmosphere,AtmospherePipelineStage,AttributeCompression,AttributeType,AutoExposure,AutomaticUniforms,Axis,AxisAlignedBoundingBox,B3dmLoader,B3dmParser,BaseLayerPicker,BaseLayerPickerViewModel,BatchTable,BatchTableHierarchy,BatchTexture,BatchTexturePipelineStage,Billboard,BillboardCollection,BillboardGraphics,BillboardVisualizer,BingMapsGeocoderService,BingMapsImageryProvider,BingMapsStyle,BlendEquation,BlendFunction,BlendOption,BlendingState,BoundingRectangle,BoundingSphere,BoundingSphereState,BoundingVolumeSemantics,BoxEmitter,BoxGeometry,BoxGeometryUpdater,BoxGraphics,BoxOutlineGeometry,BrdfLutGenerator,Buffer,BufferLoader,BufferUsage,CPUStylingPipelineStage,CallbackPositionProperty,CallbackProperty,Camera,CameraEventAggregator,CameraEventType,CameraFlightPath,Cartesian2,Cartesian3,Cartesian4,Cartographic,CartographicGeocoderService,CatmullRomSpline,Cesium3DContentGroup,Cesium3DTile,Cesium3DTileBatchTable,Cesium3DTileColorBlendMode,Cesium3DTileContent,Cesium3DTileContentFactory,Cesium3DTileContentState,Cesium3DTileContentType,Cesium3DTileFeature,Cesium3DTileFeatureTable,Cesium3DTileOptimizationHint,Cesium3DTileOptimizations,Cesium3DTilePass,Cesium3DTilePassState,Cesium3DTilePointFeature,Cesium3DTileRefine,Cesium3DTileStyle,Cesium3DTileStyleEngine,Cesium3DTilesInspector,Cesium3DTilesInspectorViewModel,Cesium3DTilesVoxelProvider,Cesium3DTileset,Cesium3DTilesetBaseTraversal,Cesium3DTilesetCache,Cesium3DTilesetGraphics,Cesium3DTilesetHeatmap,Cesium3DTilesetMetadata,Cesium3DTilesetMostDetailedTraversal,Cesium3DTilesetSkipTraversal,Cesium3DTilesetStatistics,Cesium3DTilesetTraversal,Cesium3DTilesetVisualizer,CesiumInspector,CesiumInspectorViewModel,CesiumTerrainProvider,CesiumWidget,Check,CheckerboardMaterialProperty,CircleEmitter,CircleGeometry,CircleOutlineGeometry,ClassificationModelDrawCommand,ClassificationPipelineStage,ClassificationPrimitive,ClassificationType,ClearCommand,ClippingPlane,ClippingPlaneCollection,ClippingPolygon,ClippingPolygonCollection,Clock,ClockRange,ClockStep,ClockViewModel,CloudCollection,CloudType,Color,ColorBlendMode,ColorGeometryInstanceAttribute,ColorMaterialProperty,Command,ComponentDatatype,Composite3DTileContent,CompositeEntityCollection,CompositeMaterialProperty,CompositePositionProperty,CompositeProperty,CompressedTextureBuffer,ComputeCommand,ComputeEngine,ConditionsExpression,ConeEmitter,ConstantPositionProperty,ConstantProperty,ConstantSpline,ContentMetadata,Context,ContextLimits,CoplanarPolygonGeometry,CoplanarPolygonGeometryLibrary,CoplanarPolygonOutlineGeometry,CornerType,CorrelationGroup,CorridorGeometry,CorridorGeometryLibrary,CorridorGeometryUpdater,CorridorGraphics,CorridorOutlineGeometry,Credit,CreditDisplay,CubeMap,CubeMapFace,CubicRealPolynomial,CullFace,CullingVolume,CumulusCloud,CustomDataSource,CustomHeightmapTerrainProvider,CustomShader,CustomShaderMode,CustomShaderPipelineStage,CustomShaderTranslucencyMode,CylinderGeometry,CylinderGeometryLibrary,CylinderGeometryUpdater,CylinderGraphics,CylinderOutlineGeometry,CzmlDataSource,DataSource,DataSourceClock,DataSourceCollection,DataSourceDisplay,DebugAppearance,DebugCameraPrimitive,DebugInspector,DebugModelMatrixPrimitive,DefaultProxy,DepthFunction,DepthPlane,DequantizationPipelineStage,DerivedCommand,DeveloperError,DeviceOrientationCameraController,DirectionalLight,DiscardEmptyTileImagePolicy,DiscardMissingTileImagePolicy,DistanceDisplayCondition,DistanceDisplayConditionGeometryInstanceAttribute,DoubleEndedPriorityQueue,DoublyLinkedList,DracoLoader,DrawCommand,DynamicAtmosphereLightingType,DynamicEnvironmentMapManager,DynamicGeometryBatch,DynamicGeometryUpdater,EarthOrientationParameters,EarthOrientationParametersSample,EasingFunction,EllipseGeometry,EllipseGeometryLibrary,EllipseGeometryUpdater,EllipseGraphics,EllipseOutlineGeometry,Ellipsoid,EllipsoidGeodesic,EllipsoidGeometry,EllipsoidGeometryUpdater,EllipsoidGraphics,EllipsoidOutlineGeometry,EllipsoidPrimitive,EllipsoidRhumbLine,EllipsoidSurfaceAppearance,EllipsoidTangentPlane,EllipsoidTerrainProvider,EllipsoidalOccluder,Empty3DTileContent,EncodedCartesian3,Entity,EntityCluster,EntityCollection,EntityView,Event,EventHelper,Expression,ExpressionNodeType,ExtrapolationType,FeatureDetection,FeatureIdPipelineStage,Fog,ForEach,FrameRateMonitor,FrameState,Framebuffer,FramebufferManager,FrustumCommands,FrustumGeometry,FrustumOutlineGeometry,Fullscreen,FullscreenButton,FullscreenButtonViewModel,GeoJsonDataSource,GeoJsonLoader,GeocodeType,Geocoder,GeocoderService,GeocoderViewModel,GeographicProjection,GeographicTilingScheme,Geometry,Geometry3DTileContent,GeometryAttribute,GeometryAttributes,GeometryFactory,GeometryInstance,GeometryInstanceAttribute,GeometryOffsetAttribute,GeometryPipeline,GeometryPipelineStage,GeometryType,GeometryUpdater,GeometryUpdaterSet,GeometryVisualizer,GetFeatureInfoFormat,Globe,GlobeDepth,GlobeSurfaceShaderSet,GlobeSurfaceTile,GlobeSurfaceTileProvider,GlobeTranslucency,GlobeTranslucencyFramebuffer,GlobeTranslucencyState,GltfBufferViewLoader,GltfDracoLoader,GltfGpmLoader,GltfGpmLocal,GltfImageLoader,GltfIndexBufferLoader,GltfJsonLoader,GltfLoader,GltfLoaderUtil,GltfMeshPrimitiveGpmLoader,GltfStructuralMetadataLoader,GltfTextureLoader,GltfVertexBufferLoader,GoogleEarthEnterpriseImageryProvider,GoogleEarthEnterpriseMapsProvider,GoogleEarthEnterpriseMetadata,GoogleEarthEnterpriseTerrainData,GoogleEarthEnterpriseTerrainProvider,GoogleEarthEnterpriseTileInformation,GoogleMaps,GpxDataSource,GregorianDate,GridImageryProvider,GridMaterialProperty,GroundGeometryUpdater,GroundPolylineGeometry,GroundPolylinePrimitive,GroundPrimitive,GroupMetadata,HeadingPitchRange,HeadingPitchRoll,Heap,HeightReference,HeightmapEncoding,HeightmapTerrainData,HeightmapTessellator,HermitePolynomialApproximation,HermiteSpline,HilbertOrder,HomeButton,HomeButtonViewModel,HorizontalOrigin,I3SBuildingSceneLayerExplorer,I3SBuildingSceneLayerExplorerViewModel,I3SDataProvider,I3SDecoder,I3SFeature,I3SField,I3SGeometry,I3SLayer,I3SNode,I3SStatistics,I3SSublayer,I3SSymbology,I3dmLoader,I3dmParser,Iau2000Orientation,Iau2006XysData,Iau2006XysSample,IauOrientationAxes,IauOrientationParameters,ImageBasedLighting,ImageBasedLightingPipelineStage,ImageMaterialProperty,Imagery,ImageryLayer,ImageryLayerCollection,ImageryLayerFeatureInfo,ImageryProvider,ImageryState,Implicit3DTileContent,ImplicitAvailabilityBitstream,ImplicitMetadataView,ImplicitSubdivisionScheme,ImplicitSubtree,ImplicitSubtreeCache,ImplicitSubtreeMetadata,ImplicitTileCoordinates,ImplicitTileset,IndexDatatype,InfoBox,InfoBoxViewModel,InspectorShared,InstanceAttributeSemantic,InstancingPipelineStage,InterpolationAlgorithm,InterpolationType,Intersect,IntersectionTests,Intersections2D,Interval,InvertClassification,Ion,IonGeocoderService,IonImageryProvider,IonResource,IonWorldImageryStyle,Iso8601,JobScheduler,JobType,JsonMetadataTable,JulianDate,KTX2Transcoder,KeyboardEventModifier,KeyframeNode,KmlCamera,KmlDataSource,KmlLookAt,KmlTour,KmlTourFlyTo,KmlTourWait,Label,LabelCollection,LabelGraphics,LabelStyle,LabelVisualizer,LagrangePolynomialApproximation,LeapSecond,Light,LightingModel,LightingPipelineStage,LinearApproximation,LinearSpline,ManagedArray,MapMode2D,MapProjection,MapboxImageryProvider,MapboxStyleImageryProvider,Material,MaterialAppearance,MaterialPipelineStage,MaterialProperty,Math,Matrix2,Matrix3,Matrix4,Megatexture,MeshPrimitiveGpmLocal,MetadataClass,MetadataClassProperty,MetadataComponentType,MetadataEntity,MetadataEnum,MetadataEnumValue,MetadataPicking,MetadataPickingPipelineStage,MetadataPipelineStage,MetadataSchema,MetadataSchemaLoader,MetadataSemantic,MetadataTable,MetadataTableProperty,MetadataType,MipmapHint,Model,Model3DTileContent,ModelAlphaOptions,ModelAnimation,ModelAnimationChannel,ModelAnimationCollection,ModelAnimationLoop,ModelAnimationState,ModelArticulation,ModelArticulationStage,ModelClippingPlanesPipelineStage,ModelClippingPolygonsPipelineStage,ModelColorPipelineStage,ModelComponents,ModelDrawCommand,ModelDrawCommands,ModelFeature,ModelFeatureTable,ModelGraphics,ModelLightingOptions,ModelMatrixUpdateStage,ModelNode,ModelRenderResources,ModelRuntimeNode,ModelRuntimePrimitive,ModelSceneGraph,ModelSilhouettePipelineStage,ModelSkin,ModelSplitterPipelineStage,ModelStatistics,ModelType,ModelUtility,ModelVisualizer,Moon,MorphTargetsPipelineStage,MorphWeightSpline,MortonOrder,Multiple3DTileContent,MultisampleFramebuffer,NavigationHelpButton,NavigationHelpButtonViewModel,NearFarScalar,NeverTileDiscardPolicy,NodeRenderResources,NodeStatisticsPipelineStage,NodeTransformationProperty,OIT,Occluder,OffsetGeometryInstanceAttribute,OpenCageGeocoderService,OpenStreetMapImageryProvider,OrderedGroundPrimitiveCollection,OrientedBoundingBox,OrthographicFrustum,OrthographicOffCenterFrustum,Packable,PackableForInterpolation,Particle,ParticleBurst,ParticleEmitter,ParticleSystem,Pass,PassState,PathGraphics,PathVisualizer,PeliasGeocoderService,PerInstanceColorAppearance,PerformanceDisplay,PerformanceWatchdog,PerformanceWatchdogViewModel,PerspectiveFrustum,PerspectiveOffCenterFrustum,PickDepth,PickDepthFramebuffer,PickFramebuffer,PickedMetadataInfo,Picking,PickingPipelineStage,PinBuilder,PixelDatatype,PixelFormat,Plane,PlaneGeometry,PlaneGeometryUpdater,PlaneGraphics,PlaneOutlineGeometry,PntsLoader,PntsParser,PointCloud,PointCloudEyeDomeLighting,PointCloudShading,PointCloudStylingPipelineStage,PointGraphics,PointPrimitive,PointPrimitiveCollection,PointVisualizer,PolygonGeometry,PolygonGeometryLibrary,PolygonGeometryUpdater,PolygonGraphics,PolygonHierarchy,PolygonOutlineGeometry,PolygonPipeline,Polyline,PolylineArrowMaterialProperty,PolylineCollection,PolylineColorAppearance,PolylineDashMaterialProperty,PolylineGeometry,PolylineGeometryUpdater,PolylineGlowMaterialProperty,PolylineGraphics,PolylineMaterialAppearance,PolylineOutlineMaterialProperty,PolylinePipeline,PolylineVisualizer,PolylineVolumeGeometry,PolylineVolumeGeometryLibrary,PolylineVolumeGeometryUpdater,PolylineVolumeGraphics,PolylineVolumeOutlineGeometry,PositionProperty,PositionPropertyArray,PostProcessStage,PostProcessStageCollection,PostProcessStageComposite,PostProcessStageLibrary,PostProcessStageSampleMode,PostProcessStageTextureCache,PpeMetadata,PpeSource,PpeTexture,Primitive,PrimitiveCollection,PrimitiveLoadPlan,PrimitiveOutlineGenerator,PrimitiveOutlinePipelineStage,PrimitivePipeline,PrimitiveRenderResources,PrimitiveState,PrimitiveStatisticsPipelineStage,PrimitiveType,ProjectionPicker,ProjectionPickerViewModel,Property,PropertyArray,PropertyAttribute,PropertyAttributeProperty,PropertyBag,PropertyTable,PropertyTexture,PropertyTextureProperty,ProviderViewModel,Proxy,QuadraticRealPolynomial,QuadtreeOccluders,QuadtreePrimitive,QuadtreeTile,QuadtreeTileLoadState,QuadtreeTileProvider,QuantizedMeshTerrainData,QuarticRealPolynomial,Quaternion,QuaternionSpline,Queue,Ray,Rectangle,RectangleCollisionChecker,RectangleGeometry,RectangleGeometryLibrary,RectangleGeometryUpdater,RectangleGraphics,RectangleOutlineGeometry,ReferenceFrame,ReferenceProperty,RenderState,Renderbuffer,RenderbufferFormat,Request,RequestErrorEvent,RequestScheduler,RequestState,RequestType,Resource,ResourceCache,ResourceCacheKey,ResourceCacheStatistics,ResourceLoader,ResourceLoaderState,Rotation,RuntimeError,S2Cell,SDFSettings,SampledPositionProperty,SampledProperty,Sampler,ScaledPositionProperty,Scene,SceneFramebuffer,SceneMode,SceneMode2DPipelineStage,SceneModePicker,SceneModePickerViewModel,SceneTransforms,SceneTransitioner,ScreenSpaceCameraController,ScreenSpaceEventHandler,ScreenSpaceEventType,SelectedFeatureIdPipelineStage,SelectionIndicator,SelectionIndicatorViewModel,SensorVolumePortionToDisplay,ShaderBuilder,ShaderCache,ShaderDestination,ShaderFunction,ShaderProgram,ShaderSource,ShaderStruct,ShadowMap,ShadowMapShader,ShadowMode,ShadowVolumeAppearance,ShowGeometryInstanceAttribute,Simon1994PlanetaryPositions,SimplePolylineGeometry,SingleTileImageryProvider,SkinningPipelineStage,SkyAtmosphere,SkyBox,SpatialNode,Spdcf,SpecularEnvironmentCubeMap,SphereEmitter,SphereGeometry,SphereOutlineGeometry,Spherical,Spline,SplitDirection,Splitter,StaticGeometryColorBatch,StaticGeometryPerMaterialBatch,StaticGroundGeometryColorBatch,StaticGroundGeometryPerMaterialBatch,StaticGroundPolylinePerMaterialBatch,StaticOutlineGeometryBatch,StencilConstants,StencilFunction,StencilOperation,SteppedSpline,Stereographic,StorageType,StripeMaterialProperty,StripeOrientation,StructuralMetadata,StyleCommandsNeeded,StyleExpression,Sun,SunLight,SunPostProcess,SupportedImageFormats,SvgPathBindingHandler,TaskProcessor,Terrain,TerrainData,TerrainEncoding,TerrainFillMesh,TerrainMesh,TerrainOffsetProperty,TerrainProvider,TerrainQuantization,TerrainState,Texture,TextureAtlas,TextureCache,TextureMagnificationFilter,TextureManager,TextureMinificationFilter,TextureUniform,TextureWrap,TileAvailability,TileBoundingRegion,TileBoundingS2Cell,TileBoundingSphere,TileBoundingVolume,TileCoordinatesImageryProvider,TileDiscardPolicy,TileEdge,TileImagery,TileMapServiceImageryProvider,TileMetadata,TileOrientedBoundingBox,TileProviderError,TileReplacementQueue,TileSelectionResult,TileState,Tileset3DTileContent,TilesetMetadata,TilesetPipelineStage,TilingScheme,TimeConstants,TimeDynamicImagery,TimeDynamicPointCloud,TimeInterval,TimeIntervalCollection,TimeIntervalCollectionPositionProperty,TimeIntervalCollectionProperty,TimeStandard,Timeline,TimelineHighlightRange,TimelineTrack,Tipsify,ToggleButtonViewModel,Tonemapper,Transforms,TranslationRotationScale,TranslucentTileClassification,TridiagonalSystemSolver,TrustedServers,TweenCollection,UniformState,UniformType,UrlTemplateImageryProvider,VERSION,VRButton,VRButtonViewModel,VRTheWorldTerrainProvider,VaryingType,Vector3DTileBatch,Vector3DTileClampedPolylines,Vector3DTileContent,Vector3DTileGeometry,Vector3DTilePoints,Vector3DTilePolygons,Vector3DTilePolylines,Vector3DTilePrimitive,VelocityOrientationProperty,VelocityVectorProperty,VertexArray,VertexArrayFacade,VertexAttributeSemantic,VertexFormat,VerticalExaggeration,VerticalExaggerationPipelineStage,VerticalOrigin,VideoSynchronizer,View,Viewer,ViewportQuad,Visibility,Visualizer,VoxelBoxShape,VoxelCell,VoxelContent,VoxelCylinderShape,VoxelEllipsoidShape,VoxelInspector,VoxelInspectorViewModel,VoxelPrimitive,VoxelProvider,VoxelRenderResources,VoxelShape,VoxelShapeType,VoxelTraversal,VulkanConstants,WallGeometry,WallGeometryLibrary,WallGeometryUpdater,WallGraphics,WallOutlineGeometry,WebGLConstants,WebMapServiceImageryProvider,WebMapTileServiceImageryProvider,WebMercatorProjection,WebMercatorTilingScheme,WindingOrder,WireframeIndexGenerator,WireframePipelineStage,_shadersAcesTonemappingStage,_shadersAdditiveBlend,_shadersAdjustTranslucentFS,_shadersAllMaterialAppearanceFS,_shadersAllMaterialAppearanceVS,_shadersAmbientOcclusionGenerate,_shadersAmbientOcclusionModulate,_shadersAspectRampMaterial,_shadersAtmosphereCommon,_shadersAtmosphereStageFS,_shadersAtmosphereStageVS,_shadersBasicMaterialAppearanceFS,_shadersBasicMaterialAppearanceVS,_shadersBillboardCollectionFS,_shadersBillboardCollectionVS,_shadersBlackAndWhite,_shadersBloomComposite,_shadersBrdfLutGeneratorFS,_shadersBrightPass,_shadersBrightness,_shadersBumpMapMaterial,_shadersCPUStylingStageFS,_shadersCPUStylingStageVS,_shadersCheckerboardMaterial,_shadersCloudCollectionFS,_shadersCloudCollectionVS,_shadersCloudNoiseFS,_shadersCloudNoiseVS,_shadersCompareAndPackTranslucentDepth,_shadersCompositeOITFS,_shadersCompositeTranslucentClassification,_shadersComputeIrradianceFS,_shadersComputeRadianceMapFS,_shadersContrastBias,_shadersConvolveSpecularMapFS,_shadersConvolveSpecularMapVS,_shadersCustomShaderStageFS,_shadersCustomShaderStageVS,_shadersCzmBuiltins,_shadersDepthOfField,_shadersDepthPlaneFS,_shadersDepthPlaneVS,_shadersDepthView,_shadersDepthViewPacked,_shadersDotMaterial,_shadersEdgeDetection,_shadersElevationBandMaterial,_shadersElevationContourMaterial,_shadersElevationRampMaterial,_shadersEllipsoidFS,_shadersEllipsoidSurfaceAppearanceFS,_shadersEllipsoidSurfaceAppearanceVS,_shadersEllipsoidVS,_shadersFXAA,_shadersFXAA3_11,_shadersFadeMaterial,_shadersFeatureIdStageFS,_shadersFeatureIdStageVS,_shadersFilmicTonemapping,_shadersGaussianBlur1D,_shadersGeometryStageFS,_shadersGeometryStageVS,_shadersGlobeFS,_shadersGlobeVS,_shadersGridMaterial,_shadersGroundAtmosphere,_shadersHSBToRGB,_shadersHSLToRGB,_shadersImageBasedLightingStageFS,_shadersInstancingStageCommon,_shadersInstancingStageVS,_shadersIntersectBox,_shadersIntersectClippingPlanes,_shadersIntersectCylinder,_shadersIntersectDepth,_shadersIntersectEllipsoid,_shadersIntersectLongitude,_shadersIntersection,_shadersIntersectionUtils,_shadersLegacyInstancingStageVS,_shadersLensFlare,_shadersLightingStageFS,_shadersMaterialStageFS,_shadersMegatexture,_shadersMetadataStageFS,_shadersMetadataStageVS,_shadersModelClippingPlanesStageFS,_shadersModelClippingPolygonsStageFS,_shadersModelClippingPolygonsStageVS,_shadersModelColorStageFS,_shadersModelFS,_shadersModelSilhouetteStageFS,_shadersModelSilhouetteStageVS,_shadersModelSplitterStageFS,_shadersModelVS,_shadersModifiedReinhardTonemapping,_shadersMorphTargetsStageVS,_shadersNightVision,_shadersNormalMapMaterial,_shadersOctree,_shadersPassThrough,_shadersPassThroughDepth,_shadersPbrNeutralTonemapping,_shadersPerInstanceColorAppearanceFS,_shadersPerInstanceColorAppearanceVS,_shadersPerInstanceFlatColorAppearanceFS,_shadersPerInstanceFlatColorAppearanceVS,_shadersPointCloudEyeDomeLighting,_shadersPointCloudStylingStageVS,_shadersPointPrimitiveCollectionFS,_shadersPointPrimitiveCollectionVS,_shadersPolygonSignedDistanceFS,_shadersPolylineArrowMaterial,_shadersPolylineColorAppearanceVS,_shadersPolylineCommon,_shadersPolylineDashMaterial,_shadersPolylineFS,_shadersPolylineGlowMaterial,_shadersPolylineMaterialAppearanceVS,_shadersPolylineOutlineMaterial,_shadersPolylineShadowVolumeFS,_shadersPolylineShadowVolumeMorphFS,_shadersPolylineShadowVolumeMorphVS,_shadersPolylineShadowVolumeVS,_shadersPolylineVS,_shadersPrimitiveOutlineStageFS,_shadersPrimitiveOutlineStageVS,_shadersRGBToHSB,_shadersRGBToHSL,_shadersRGBToXYZ,_shadersReinhardTonemapping,_shadersReprojectWebMercatorFS,_shadersReprojectWebMercatorVS,_shadersRimLightingMaterial,_shadersSelectedFeatureIdStageCommon,_shadersShadowVolumeAppearanceFS,_shadersShadowVolumeAppearanceVS,_shadersShadowVolumeFS,_shadersSilhouette,_shadersSkinningStageVS,_shadersSkyAtmosphereCommon,_shadersSkyAtmosphereFS,_shadersSkyAtmosphereVS,_shadersSkyBoxFS,_shadersSkyBoxVS,_shadersSlopeRampMaterial,_shadersStripeMaterial,_shadersSunFS,_shadersSunTextureFS,_shadersSunVS,_shadersTexturedMaterialAppearanceFS,_shadersTexturedMaterialAppearanceVS,_shadersVector3DTileClampedPolylinesFS,_shadersVector3DTileClampedPolylinesVS,_shadersVector3DTilePolylinesVS,_shadersVectorTileVS,_shadersVerticalExaggerationStageVS,_shadersViewportQuadFS,_shadersViewportQuadVS,_shadersVoxelFS,_shadersVoxelUtils,_shadersVoxelVS,_shadersWater,_shadersWaterMaskMaterial,_shadersXYZToRGB,_shadersacesTonemapping,_shadersalphaWeight,_shadersantialias,_shadersapplyHSBShift,_shadersapproximateSphericalCoordinates,_shadersapproximateTanh,_shadersbackFacing,_shadersbranchFreeTernary,_shaderscascadeColor,_shaderscascadeDistance,_shaderscascadeMatrix,_shaderscascadeWeights,_shadersclipPolygons,_shaderscolumbusViewMorph,_shaderscomputeAtmosphereColor,_shaderscomputeGroundAtmosphereScattering,_shaderscomputePosition,_shaderscomputeScattering,_shadersconvertUvToBox,_shadersconvertUvToCylinder,_shadersconvertUvToEllipsoid,_shaderscosineAndSine,_shadersdecompressTextureCoordinates,_shadersdegreesPerRadian,_shadersdepthClamp,_shadersdepthRange,_shadersdepthRangeStruct,_shaderseastNorthUpToEyeCoordinates,_shadersellipsoidContainsPoint,_shadersellipsoidTextureCoordinates,_shadersepsilon1,_shadersepsilon2,_shadersepsilon3,_shadersepsilon4,_shadersepsilon5,_shadersepsilon6,_shadersepsilon7,_shadersequalsEpsilon,_shaderseyeOffset,_shaderseyeToWindowCoordinates,_shadersfastApproximateAtan,_shadersfog,_shadersgammaCorrect,_shadersgeodeticSurfaceNormal,_shadersgetDefaultMaterial,_shadersgetDynamicAtmosphereLightDirection,_shadersgetLambertDiffuse,_shadersgetSpecular,_shadersgetWaterNoise,_shadershue,_shadersinfinity,_shadersinverseGamma,_shadersisEmpty,_shadersisFull,_shaderslatitudeToWebMercatorFraction,_shaderslineDistance,_shaderslinearToSrgb,_shadersluminance,_shadersmaterial,_shadersmaterialInput,_shadersmaximumComponent,_shadersmetersPerPixel,_shadersmodelMaterial,_shadersmodelToWindowCoordinates,_shadersmodelVertexOutput,_shadersmultiplyWithColorBalance,_shadersnearFarScalar,_shadersoctDecode,_shadersoneOverPi,_shadersoneOverTwoPi,_shaderspackDepth,_shaderspassCesium3DTile,_shaderspassCesium3DTileClassification,_shaderspassCesium3DTileClassificationIgnoreShow,_shaderspassClassification,_shaderspassCompute,_shaderspassEnvironment,_shaderspassGlobe,_shaderspassOpaque,_shaderspassOverlay,_shaderspassTerrainClassification,_shaderspassTranslucent,_shaderspassVoxels,_shaderspbrLighting,_shaderspbrNeutralTonemapping,_shadersphong,_shaderspi,_shaderspiOverFour,_shaderspiOverSix,_shaderspiOverThree,_shaderspiOverTwo,_shadersplaneDistance,_shaderspointAlongRay,_shadersradiansPerDegree,_shadersray,_shadersrayEllipsoidIntersectionInterval,_shadersraySegment,_shadersraySphereIntersectionInterval,_shadersreadDepth,_shadersreadNonPerspective,_shadersreverseLogDepth,_shadersround,_shaderssaturation,_shaderssceneMode2D,_shaderssceneMode3D,_shaderssceneModeColumbusView,_shaderssceneModeMorphing,_shadersshadowDepthCompare,_shadersshadowParameters,_shadersshadowVisibility,_shaderssignNotZero,_shaderssolarRadius,_shaderssphericalHarmonics,_shaderssrgbToLinear,_shaderstangentToEyeSpaceMatrix,_shaderstextureCube,_shadersthreePiOver2,_shaderstransformPlane,_shaderstranslateRelativeToEye,_shaderstranslucentPhong,_shaderstranspose,_shaderstwoPi,_shadersunpackClippingExtents,_shadersunpackDepth,_shadersunpackFloat,_shadersunpackUint,_shadersvalueTransform,_shadersvertexLogDepth,_shaderswebMercatorMaxLatitude,_shaderswindowToEyeCoordinates,_shaderswriteDepthClamp,_shaderswriteLogDepth,_shaderswriteNonPerspective,addBuffer,addDefaults,addExtensionsRequired,addExtensionsUsed,addPipelineExtras,addToArray,appendForwardSlash,arrayRemoveDuplicates,barycentricCoordinates,binarySearch,buildModuleUrl,buildVoxelDrawCommands,clone,combine,computeFlyToLocationForRectangle,createBillboardPointCallback,createCommand,createDefaultImageryProviderViewModels,createDefaultTerrainProviderViewModels,createElevationBandMaterial,createGooglePhotorealistic3DTileset,createGuid,createMaterialPropertyDescriptor,createOsmBuildingsAsync,createPropertyDescriptor,createRawPropertyDescriptor,createTangentSpaceDebugPrimitive,createTaskProcessorWorker,createUniform,createUniformArray,createWorldBathymetryAsync,createWorldImageryAsync,createWorldTerrainAsync,decodeGoogleEarthEnterpriseData,decodeVectorPolylinePositions,defaultValue,defer,defined,demodernizeShader,deprecationWarning,destroyObject,exportKml,findAccessorMinMax,findContentMetadata,findGroupMetadata,findTileMetadata,forEachTextureInMaterial,formatError,freezeRenderState,getAbsoluteUri,getAccessorByteStride,getBaseUri,getBinaryAccessor,getClipAndStyleCode,getClippingFunction,getComponentReader,getElement,getExtensionFromUri,getFilenameFromUri,getImageFromTypedArray,getImagePixels,getJsonFromTypedArray,getMagic,getMetadataClassProperty,getStringFromTypedArray,getTimestamp,hasExtension,heightReferenceOnEntityPropertyChanged,isBitSet,isBlobUri,isCrossOriginUrl,isDataUri,isLeapYear,knockout,knockout_3_5_1,knockout_es5,loadAndExecuteScript,loadCubeMap,loadImageFromTypedArray,loadKTX2,mergeSort,moveTechniqueRenderStates,moveTechniquesToExtension,numberOfComponentsForType,objectToQuery,oneTimeWarning,parseBatchTable,parseFeatureMetadataLegacy,parseGlb,parseResponseHeaders,parseStructuralMetadata,pickModel,pointInsideTriangle,preprocess3DTileContent,processVoxelProperties,queryToObject,readAccessorPacked,removeExtension,removeExtensionsRequired,removeExtensionsUsed,removePipelineExtras,removeUnusedElements,resizeImageToNextPowerOfTwo,sampleTerrain,sampleTerrainMostDetailed,scaleToGeodeticSurface,srgbToLinear,subdivideArray,subscribeAndEvaluate,updateAccessorComponentTypes,updateVersion,usesExtension,viewerCesium3DTilesInspectorMixin,viewerCesiumInspectorMixin,viewerDragDropMixin,viewerPerformanceWatchdogMixin,viewerVoxelInspectorMixin,webGLConstantToGlslType,wrapFunction,writeTextToCanvas}); diff --git a/app/plot_app/static/cesium/Build/Cesium/index.js b/app/plot_app/static/cesium/Build/Cesium/index.js new file mode 100644 index 000000000..57f705117 --- /dev/null +++ b/app/plot_app/static/cesium/Build/Cesium/index.js @@ -0,0 +1,16027 @@ +/** + * @license + * Cesium - https://github.com/CesiumGS/cesium + * Version 1.123 + * + * Copyright 2011-2022 Cesium Contributors + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Columbus View (Pat. Pend.) + * + * Portions licensed separately. + * See https://github.com/CesiumGS/cesium/blob/main/LICENSE.md for full licensing details. + */ + +var FCe=Object.create;var n$=Object.defineProperty;var BCe=Object.getOwnPropertyDescriptor;var kCe=Object.getOwnPropertyNames;var VCe=Object.getPrototypeOf,UCe=Object.prototype.hasOwnProperty;var qP=(e=>typeof require<"u"?require:typeof Proxy<"u"?new Proxy(e,{get:(t,n)=>(typeof require<"u"?require:t)[n]}):e)(function(e){if(typeof require<"u")return require.apply(this,arguments);throw Error('Dynamic require of "'+e+'" is not supported')});var Ul=(e,t)=>()=>(t||e((t={exports:{}}).exports,t),t.exports);var zCe=(e,t,n,i)=>{if(t&&typeof t=="object"||typeof t=="function")for(let o of kCe(t))!UCe.call(e,o)&&o!==n&&n$(e,o,{get:()=>t[o],enumerable:!(i=BCe(t,o))||i.enumerable});return e};var Er=(e,t,n)=>(n=e!=null?FCe(VCe(e)):{},zCe(t||!e||!e.__esModule?n$(n,"default",{value:e,enumerable:!0}):n,e));var YP=Ul((DEt,o$)=>{var Wm=function(e){e==null&&(e=new Date().getTime()),this.N=624,this.M=397,this.MATRIX_A=2567483615,this.UPPER_MASK=2147483648,this.LOWER_MASK=2147483647,this.mt=new Array(this.N),this.mti=this.N+1,e.constructor==Array?this.init_by_array(e,e.length):this.init_seed(e)};Wm.prototype.init_seed=function(e){for(this.mt[0]=e>>>0,this.mti=1;this.mti<this.N;this.mti++){var e=this.mt[this.mti-1]^this.mt[this.mti-1]>>>30;this.mt[this.mti]=(((e&4294901760)>>>16)*1812433253<<16)+(e&65535)*1812433253+this.mti,this.mt[this.mti]>>>=0}};Wm.prototype.init_by_array=function(e,t){var n,i,o;for(this.init_seed(19650218),n=1,i=0,o=this.N>t?this.N:t;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1664525<<16)+(r&65535)*1664525)+e[i]+i,this.mt[n]>>>=0,n++,i++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1),i>=t&&(i=0)}for(o=this.N-1;o;o--){var r=this.mt[n-1]^this.mt[n-1]>>>30;this.mt[n]=(this.mt[n]^(((r&4294901760)>>>16)*1566083941<<16)+(r&65535)*1566083941)-n,this.mt[n]>>>=0,n++,n>=this.N&&(this.mt[0]=this.mt[this.N-1],n=1)}this.mt[0]=2147483648};Wm.prototype.random_int=function(){var e,t=new Array(0,this.MATRIX_A);if(this.mti>=this.N){var n;for(this.mti==this.N+1&&this.init_seed(5489),n=0;n<this.N-this.M;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+this.M]^e>>>1^t[e&1];for(;n<this.N-1;n++)e=this.mt[n]&this.UPPER_MASK|this.mt[n+1]&this.LOWER_MASK,this.mt[n]=this.mt[n+(this.M-this.N)]^e>>>1^t[e&1];e=this.mt[this.N-1]&this.UPPER_MASK|this.mt[0]&this.LOWER_MASK,this.mt[this.N-1]=this.mt[this.M-1]^e>>>1^t[e&1],this.mti=0}return e=this.mt[this.mti++],e^=e>>>11,e^=e<<7&2636928640,e^=e<<15&4022730752,e^=e>>>18,e>>>0};Wm.prototype.random_int31=function(){return this.random_int()>>>1};Wm.prototype.random_incl=function(){return this.random_int()*(1/4294967295)};Wm.prototype.random=function(){return this.random_int()*(1/4294967296)};Wm.prototype.random_excl=function(){return(this.random_int()+.5)*(1/4294967296)};Wm.prototype.random_long=function(){var e=this.random_int()>>>5,t=this.random_int()>>>6;return(e*67108864+t)*(1/9007199254740992)};o$.exports=Wm});var I$=Ul((nT,iT)=>{/*! https://mths.be/punycode v1.4.0 by @mathias */(function(e){var t=typeof nT=="object"&&nT&&!nT.nodeType&&nT,n=typeof iT=="object"&&iT&&!iT.nodeType&&iT,i=typeof global=="object"&&global;(i.global===i||i.window===i||i.self===i)&&(e=i);var o,r=2147483647,s=36,a=1,c=26,u=38,f=700,d=72,p=128,g="-",m=/^xn--/,x=/[^\x20-\x7E]/,b=/[\x2E\u3002\uFF0E\uFF61]/g,T={overflow:"Overflow: input needs wider integers to process","not-basic":"Illegal input >= 0x80 (not a basic code point)","invalid-input":"Invalid input"},A=s-a,C=Math.floor,S=String.fromCharCode,v;function D(V){throw new RangeError(T[V])}function O(V,G){for(var k=V.length,W=[];k--;)W[k]=G(V[k]);return W}function R(V,G){var k=V.split("@"),W="";k.length>1&&(W=k[0]+"@",V=k[1]),V=V.replace(b,".");var q=V.split("."),J=O(q,G).join(".");return W+J}function M(V){for(var G=[],k=0,W=V.length,q,J;k<W;)q=V.charCodeAt(k++),q>=55296&&q<=56319&&k<W?(J=V.charCodeAt(k++),(J&64512)==56320?G.push(((q&1023)<<10)+(J&1023)+65536):(G.push(q),k--)):G.push(q);return G}function L(V){return O(V,function(G){var k="";return G>65535&&(G-=65536,k+=S(G>>>10&1023|55296),G=56320|G&1023),k+=S(G),k}).join("")}function _(V){return V-48<10?V-22:V-65<26?V-65:V-97<26?V-97:s}function E(V,G){return V+22+75*(V<26)-((G!=0)<<5)}function w(V,G,k){var W=0;for(V=k?C(V/f):V>>1,V+=C(V/G);V>A*c>>1;W+=s)V=C(V/A);return C(W+(A+1)*V/(V+u))}function I(V){var G=[],k=V.length,W,q=0,J=p,j=d,Z,Q,de,ye,ae,_e,xe,Ie,Ce;for(Z=V.lastIndexOf(g),Z<0&&(Z=0),Q=0;Q<Z;++Q)V.charCodeAt(Q)>=128&&D("not-basic"),G.push(V.charCodeAt(Q));for(de=Z>0?Z+1:0;de<k;){for(ye=q,ae=1,_e=s;de>=k&&D("invalid-input"),xe=_(V.charCodeAt(de++)),(xe>=s||xe>C((r-q)/ae))&&D("overflow"),q+=xe*ae,Ie=_e<=j?a:_e>=j+c?c:_e-j,!(xe<Ie);_e+=s)Ce=s-Ie,ae>C(r/Ce)&&D("overflow"),ae*=Ce;W=G.length+1,j=w(q-ye,W,ye==0),C(q/W)>r-J&&D("overflow"),J+=C(q/W),q%=W,G.splice(q++,0,J)}return L(G)}function N(V){var G,k,W,q,J,j,Z,Q,de,ye,ae,_e=[],xe,Ie,Ce,ke;for(V=M(V),xe=V.length,G=p,k=0,J=d,j=0;j<xe;++j)ae=V[j],ae<128&&_e.push(S(ae));for(W=q=_e.length,q&&_e.push(g);W<xe;){for(Z=r,j=0;j<xe;++j)ae=V[j],ae>=G&&ae<Z&&(Z=ae);for(Ie=W+1,Z-G>C((r-k)/Ie)&&D("overflow"),k+=(Z-G)*Ie,G=Z,j=0;j<xe;++j)if(ae=V[j],ae<G&&++k>r&&D("overflow"),ae==G){for(Q=k,de=s;ye=de<=J?a:de>=J+c?c:de-J,!(Q<ye);de+=s)ke=Q-ye,Ce=s-ye,_e.push(S(E(ye+ke%Ce,0))),Q=C(ke/Ce);_e.push(S(E(Q,0))),J=w(k,Ie,W==q),k=0,++W}++k,++G}return _e.join("")}function B(V){return R(V,function(G){return m.test(G)?I(G.slice(4).toLowerCase()):G})}function H(V){return R(V,function(G){return x.test(G)?"xn--"+N(G):G})}if(o={version:"1.3.2",ucs2:{decode:M,encode:L},decode:I,encode:N,toASCII:H,toUnicode:B},typeof define=="function"&&typeof define.amd=="object"&&define.amd)define("punycode",function(){return o});else if(t&&n)if(iT.exports==t)n.exports=o;else for(v in o)o.hasOwnProperty(v)&&(t[v]=o[v]);else e.punycode=o})(nT)});var R$=Ul((P$,h1)=>{/*! + * URI.js - Mutating URLs + * IPv6 Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof h1=="object"&&h1.exports?h1.exports=t():typeof define=="function"&&define.amd?define(t):e.IPv6=t(e)})(P$,function(e){"use strict";var t=e&&e.IPv6;function n(o){var r=o.toLowerCase(),s=r.split(":"),a=s.length,c=8;s[0]===""&&s[1]===""&&s[2]===""?(s.shift(),s.shift()):s[0]===""&&s[1]===""?s.shift():s[a-1]===""&&s[a-2]===""&&s.pop(),a=s.length,s[a-1].indexOf(".")!==-1&&(c=7);var u;for(u=0;u<a&&s[u]!=="";u++);if(u<c)for(s.splice(u,1,"0000");s.length<c;)s.splice(u,0,"0000");for(var f,d=0;d<c;d++){f=s[d].split("");for(var p=0;p<3&&(f[0]==="0"&&f.length>1);p++)f.splice(0,1);s[d]=f.join("")}var g=-1,m=0,x=0,b=-1,T=!1;for(d=0;d<c;d++)T?s[d]==="0"?x+=1:(T=!1,x>m&&(g=b,m=x)):s[d]==="0"&&(T=!0,b=d,x=1);x>m&&(g=b,m=x),m>1&&s.splice(g,m,""),a=s.length;var A="";for(s[0]===""&&(A=":"),d=0;d<a&&(A+=s[d],d!==a-1);d++)A+=":";return s[a-1]===""&&(A+=":"),A}function i(){return e.IPv6===this&&(e.IPv6=t),this}return{best:n,noConflict:i}})});var M$=Ul((O$,m1)=>{/*! + * URI.js - Mutating URLs + * Second Level Domain (SLD) Support + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof m1=="object"&&m1.exports?m1.exports=t():typeof define=="function"&&define.amd?define(t):e.SecondLevelDomains=t(e)})(O$,function(e){"use strict";var t=e&&e.SecondLevelDomains,n={list:{ac:" com gov mil net org ",ae:" ac co gov mil name net org pro sch ",af:" com edu gov net org ",al:" com edu gov mil net org ",ao:" co ed gv it og pb ",ar:" com edu gob gov int mil net org tur ",at:" ac co gv or ",au:" asn com csiro edu gov id net org ",ba:" co com edu gov mil net org rs unbi unmo unsa untz unze ",bb:" biz co com edu gov info net org store tv ",bh:" biz cc com edu gov info net org ",bn:" com edu gov net org ",bo:" com edu gob gov int mil net org tv ",br:" adm adv agr am arq art ato b bio blog bmd cim cng cnt com coop ecn edu eng esp etc eti far flog fm fnd fot fst g12 ggf gov imb ind inf jor jus lel mat med mil mus net nom not ntr odo org ppg pro psc psi qsl rec slg srv tmp trd tur tv vet vlog wiki zlg ",bs:" com edu gov net org ",bz:" du et om ov rg ",ca:" ab bc mb nb nf nl ns nt nu on pe qc sk yk ",ck:" biz co edu gen gov info net org ",cn:" ac ah bj com cq edu fj gd gov gs gx gz ha hb he hi hl hn jl js jx ln mil net nm nx org qh sc sd sh sn sx tj tw xj xz yn zj ",co:" com edu gov mil net nom org ",cr:" ac c co ed fi go or sa ",cy:" ac biz com ekloges gov ltd name net org parliament press pro tm ",do:" art com edu gob gov mil net org sld web ",dz:" art asso com edu gov net org pol ",ec:" com edu fin gov info med mil net org pro ",eg:" com edu eun gov mil name net org sci ",er:" com edu gov ind mil net org rochest w ",es:" com edu gob nom org ",et:" biz com edu gov info name net org ",fj:" ac biz com info mil name net org pro ",fk:" ac co gov net nom org ",fr:" asso com f gouv nom prd presse tm ",gg:" co net org ",gh:" com edu gov mil org ",gn:" ac com gov net org ",gr:" com edu gov mil net org ",gt:" com edu gob ind mil net org ",gu:" com edu gov net org ",hk:" com edu gov idv net org ",hu:" 2000 agrar bolt casino city co erotica erotika film forum games hotel info ingatlan jogasz konyvelo lakas media news org priv reklam sex shop sport suli szex tm tozsde utazas video ",id:" ac co go mil net or sch web ",il:" ac co gov idf k12 muni net org ",in:" ac co edu ernet firm gen gov i ind mil net nic org res ",iq:" com edu gov i mil net org ",ir:" ac co dnssec gov i id net org sch ",it:" edu gov ",je:" co net org ",jo:" com edu gov mil name net org sch ",jp:" ac ad co ed go gr lg ne or ",ke:" ac co go info me mobi ne or sc ",kh:" com edu gov mil net org per ",ki:" biz com de edu gov info mob net org tel ",km:" asso com coop edu gouv k medecin mil nom notaires pharmaciens presse tm veterinaire ",kn:" edu gov net org ",kr:" ac busan chungbuk chungnam co daegu daejeon es gangwon go gwangju gyeongbuk gyeonggi gyeongnam hs incheon jeju jeonbuk jeonnam k kg mil ms ne or pe re sc seoul ulsan ",kw:" com edu gov net org ",ky:" com edu gov net org ",kz:" com edu gov mil net org ",lb:" com edu gov net org ",lk:" assn com edu gov grp hotel int ltd net ngo org sch soc web ",lr:" com edu gov net org ",lv:" asn com conf edu gov id mil net org ",ly:" com edu gov id med net org plc sch ",ma:" ac co gov m net org press ",mc:" asso tm ",me:" ac co edu gov its net org priv ",mg:" com edu gov mil nom org prd tm ",mk:" com edu gov inf name net org pro ",ml:" com edu gov net org presse ",mn:" edu gov org ",mo:" com edu gov net org ",mt:" com edu gov net org ",mv:" aero biz com coop edu gov info int mil museum name net org pro ",mw:" ac co com coop edu gov int museum net org ",mx:" com edu gob net org ",my:" com edu gov mil name net org sch ",nf:" arts com firm info net other per rec store web ",ng:" biz com edu gov mil mobi name net org sch ",ni:" ac co com edu gob mil net nom org ",np:" com edu gov mil net org ",nr:" biz com edu gov info net org ",om:" ac biz co com edu gov med mil museum net org pro sch ",pe:" com edu gob mil net nom org sld ",ph:" com edu gov i mil net ngo org ",pk:" biz com edu fam gob gok gon gop gos gov net org web ",pl:" art bialystok biz com edu gda gdansk gorzow gov info katowice krakow lodz lublin mil net ngo olsztyn org poznan pwr radom slupsk szczecin torun warszawa waw wroc wroclaw zgora ",pr:" ac biz com edu est gov info isla name net org pro prof ",ps:" com edu gov net org plo sec ",pw:" belau co ed go ne or ",ro:" arts com firm info nom nt org rec store tm www ",rs:" ac co edu gov in org ",sb:" com edu gov net org ",sc:" com edu gov net org ",sh:" co com edu gov net nom org ",sl:" com edu gov net org ",st:" co com consulado edu embaixada gov mil net org principe saotome store ",sv:" com edu gob org red ",sz:" ac co org ",tr:" av bbs bel biz com dr edu gen gov info k12 name net org pol tel tsk tv web ",tt:" aero biz cat co com coop edu gov info int jobs mil mobi museum name net org pro tel travel ",tw:" club com ebiz edu game gov idv mil net org ",mu:" ac co com gov net or org ",mz:" ac co edu gov org ",na:" co com ",nz:" ac co cri geek gen govt health iwi maori mil net org parliament school ",pa:" abo ac com edu gob ing med net nom org sld ",pt:" com edu gov int net nome org publ ",py:" com edu gov mil net org ",qa:" com edu gov mil net org ",re:" asso com nom ",ru:" ac adygeya altai amur arkhangelsk astrakhan bashkiria belgorod bir bryansk buryatia cbg chel chelyabinsk chita chukotka chuvashia com dagestan e-burg edu gov grozny int irkutsk ivanovo izhevsk jar joshkar-ola kalmykia kaluga kamchatka karelia kazan kchr kemerovo khabarovsk khakassia khv kirov koenig komi kostroma kranoyarsk kuban kurgan kursk lipetsk magadan mari mari-el marine mil mordovia mosreg msk murmansk nalchik net nnov nov novosibirsk nsk omsk orenburg org oryol penza perm pp pskov ptz rnd ryazan sakhalin samara saratov simbirsk smolensk spb stavropol stv surgut tambov tatarstan tom tomsk tsaritsyn tsk tula tuva tver tyumen udm udmurtia ulan-ude vladikavkaz vladimir vladivostok volgograd vologda voronezh vrn vyatka yakutia yamal yekaterinburg yuzhno-sakhalinsk ",rw:" ac co com edu gouv gov int mil net ",sa:" com edu gov med net org pub sch ",sd:" com edu gov info med net org tv ",se:" a ac b bd c d e f g h i k l m n o org p parti pp press r s t tm u w x y z ",sg:" com edu gov idn net org per ",sn:" art com edu gouv org perso univ ",sy:" com edu gov mil net news org ",th:" ac co go in mi net or ",tj:" ac biz co com edu go gov info int mil name net nic org test web ",tn:" agrinet com defense edunet ens fin gov ind info intl mincom nat net org perso rnrt rns rnu tourism ",tz:" ac co go ne or ",ua:" biz cherkassy chernigov chernovtsy ck cn co com crimea cv dn dnepropetrovsk donetsk dp edu gov if in ivano-frankivsk kh kharkov kherson khmelnitskiy kiev kirovograd km kr ks kv lg lugansk lutsk lviv me mk net nikolaev od odessa org pl poltava pp rovno rv sebastopol sumy te ternopil uzhgorod vinnica vn zaporizhzhe zhitomir zp zt ",ug:" ac co go ne or org sc ",uk:" ac bl british-library co cym gov govt icnet jet lea ltd me mil mod national-library-scotland nel net nhs nic nls org orgn parliament plc police sch scot soc ",us:" dni fed isa kids nsn ",uy:" com edu gub mil net org ",ve:" co com edu gob info mil net org web ",vi:" co com k12 net org ",vn:" ac biz com edu gov health info int name net org pro ",ye:" co com gov ltd me net org plc ",yu:" ac co edu gov org ",za:" ac agric alt bourse city co cybernet db edu gov grondar iaccess imt inca landesign law mil net ngo nis nom olivetti org pix school tm web ",zm:" ac co com edu gov net org sch ",com:"ar br cn de eu gb gr hu jpn kr no qc ru sa se uk us uy za ",net:"gb jp se uk ",org:"ae",de:"com "},has:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(r+1,o)+" ")>=0:!1},is:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return!1;var r=i.lastIndexOf(".",o-1);if(r>=0)return!1;var s=n.list[i.slice(o+1)];return s?s.indexOf(" "+i.slice(0,o)+" ")>=0:!1},get:function(i){var o=i.lastIndexOf(".");if(o<=0||o>=i.length-1)return null;var r=i.lastIndexOf(".",o-1);if(r<=0||r>=o-1)return null;var s=n.list[i.slice(o+1)];return!s||s.indexOf(" "+i.slice(r+1,o)+" ")<0?null:i.slice(r+1)},noConflict:function(){return e.SecondLevelDomains===this&&(e.SecondLevelDomains=t),this}};return n})});var zl=Ul((L$,p1)=>{/*! + * URI.js - Mutating URLs + * + * Version: 1.19.11 + * + * Author: Rodney Rehm + * Web: http://medialize.github.io/URI.js/ + * + * Licensed under + * MIT License http://www.opensource.org/licenses/mit-license + * + */(function(e,t){"use strict";typeof p1=="object"&&p1.exports?p1.exports=t(I$(),R$(),M$()):typeof define=="function"&&define.amd?define(["./punycode","./IPv6","./SecondLevelDomains"],t):e.URI=t(e.punycode,e.IPv6,e.SecondLevelDomains,e)})(L$,function(e,t,n,i){"use strict";var o=i&&i.URI;function r(E,w){var I=arguments.length>=1,N=arguments.length>=2;if(!(this instanceof r))return I?N?new r(E,w):new r(E):new r;if(E===void 0){if(I)throw new TypeError("undefined is not a valid argument for URI");typeof location<"u"?E=location.href+"":E=""}if(E===null&&I)throw new TypeError("null is not a valid argument for URI");return this.href(E),w!==void 0?this.absoluteTo(w):this}function s(E){return/^[0-9]+$/.test(E)}r.version="1.19.11";var a=r.prototype,c=Object.prototype.hasOwnProperty;function u(E){return E.replace(/([.*+?^=!:${}()|[\]\/\\])/g,"\\$1")}function f(E){return E===void 0?"Undefined":String(Object.prototype.toString.call(E)).slice(8,-1)}function d(E){return f(E)==="Array"}function p(E,w){var I={},N,B;if(f(w)==="RegExp")I=null;else if(d(w))for(N=0,B=w.length;N<B;N++)I[w[N]]=!0;else I[w]=!0;for(N=0,B=E.length;N<B;N++){var H=I&&I[E[N]]!==void 0||!I&&w.test(E[N]);H&&(E.splice(N,1),B--,N--)}return E}function g(E,w){var I,N;if(d(w)){for(I=0,N=w.length;I<N;I++)if(!g(E,w[I]))return!1;return!0}var B=f(w);for(I=0,N=E.length;I<N;I++)if(B==="RegExp"){if(typeof E[I]=="string"&&E[I].match(w))return!0}else if(E[I]===w)return!0;return!1}function m(E,w){if(!d(E)||!d(w)||E.length!==w.length)return!1;E.sort(),w.sort();for(var I=0,N=E.length;I<N;I++)if(E[I]!==w[I])return!1;return!0}function x(E){var w=/^\/+|\/+$/g;return E.replace(w,"")}r._parts=function(){return{protocol:null,username:null,password:null,hostname:null,urn:null,port:null,path:null,query:null,fragment:null,preventInvalidHostname:r.preventInvalidHostname,duplicateQueryParameters:r.duplicateQueryParameters,escapeQuerySpace:r.escapeQuerySpace}},r.preventInvalidHostname=!1,r.duplicateQueryParameters=!1,r.escapeQuerySpace=!0,r.protocol_expression=/^[a-z][a-z0-9.+-]*$/i,r.idn_expression=/[^a-z0-9\._-]/i,r.punycode_expression=/(xn--)/i,r.ip4_expression=/^\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}$/,r.ip6_expression=/^\s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)(\.(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)){3}))|:)))(%.+)?\s*$/,r.find_uri_expression=/\b((?:[a-z][\w-]+:(?:\/{1,3}|[a-z0-9%])|www\d{0,3}[.]|[a-z0-9.\-]+[.][a-z]{2,4}\/)(?:[^\s()<>]+|\(([^\s()<>]+|(\([^\s()<>]+\)))*\))+(?:\(([^\s()<>]+|(\([^\s()<>]+\)))*\)|[^\s`!()\[\]{};:'".,<>?«»“”‘’]))/ig,r.findUri={start:/\b(?:([a-z][a-z0-9.+-]*:\/\/)|www\.)/gi,end:/[\s\r\n]|$/,trim:/[`!()\[\]{};:'".,<>?«»“”„‘’]+$/,parens:/(\([^\)]*\)|\[[^\]]*\]|\{[^}]*\}|<[^>]*>)/g},r.leading_whitespace_expression=/^[\x00-\x20\u00a0\u1680\u2000-\u200a\u2028\u2029\u202f\u205f\u3000\ufeff]+/,r.ascii_tab_whitespace=/[\u0009\u000A\u000D]+/g,r.defaultPorts={http:"80",https:"443",ftp:"21",gopher:"70",ws:"80",wss:"443"},r.hostProtocols=["http","https"],r.invalid_hostname_characters=/[^a-zA-Z0-9\.\-:_]/,r.domAttributes={a:"href",blockquote:"cite",link:"href",base:"href",script:"src",form:"action",img:"src",area:"href",iframe:"src",embed:"src",source:"src",track:"src",input:"src",audio:"src",video:"src"},r.getDomAttribute=function(E){if(!(!E||!E.nodeName)){var w=E.nodeName.toLowerCase();if(!(w==="input"&&E.type!=="image"))return r.domAttributes[w]}};function b(E){return escape(E)}function T(E){return encodeURIComponent(E).replace(/[!'()*]/g,b).replace(/\*/g,"%2A")}r.encode=T,r.decode=decodeURIComponent,r.iso8859=function(){r.encode=escape,r.decode=unescape},r.unicode=function(){r.encode=T,r.decode=decodeURIComponent},r.characters={pathname:{encode:{expression:/%(24|26|2B|2C|3B|3D|3A|40)/ig,map:{"%24":"$","%26":"&","%2B":"+","%2C":",","%3B":";","%3D":"=","%3A":":","%40":"@"}},decode:{expression:/[\/\?#]/g,map:{"/":"%2F","?":"%3F","#":"%23"}}},reserved:{encode:{expression:/%(21|23|24|26|27|28|29|2A|2B|2C|2F|3A|3B|3D|3F|40|5B|5D)/ig,map:{"%3A":":","%2F":"/","%3F":"?","%23":"#","%5B":"[","%5D":"]","%40":"@","%21":"!","%24":"$","%26":"&","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"="}}},urnpath:{encode:{expression:/%(21|24|27|28|29|2A|2B|2C|3B|3D|40)/ig,map:{"%21":"!","%24":"$","%27":"'","%28":"(","%29":")","%2A":"*","%2B":"+","%2C":",","%3B":";","%3D":"=","%40":"@"}},decode:{expression:/[\/\?#:]/g,map:{"/":"%2F","?":"%3F","#":"%23",":":"%3A"}}}},r.encodeQuery=function(E,w){var I=r.encode(E+"");return w===void 0&&(w=r.escapeQuerySpace),w?I.replace(/%20/g,"+"):I},r.decodeQuery=function(E,w){E+="",w===void 0&&(w=r.escapeQuerySpace);try{return r.decode(w?E.replace(/\+/g,"%20"):E)}catch{return E}};var A={encode:"encode",decode:"decode"},C,S=function(E,w){return function(I){try{return r[w](I+"").replace(r.characters[E][w].expression,function(N){return r.characters[E][w].map[N]})}catch{return I}}};for(C in A)r[C+"PathSegment"]=S("pathname",A[C]),r[C+"UrnPathSegment"]=S("urnpath",A[C]);var v=function(E,w,I){return function(N){var B;I?B=function(k){return r[w](r[I](k))}:B=r[w];for(var H=(N+"").split(E),V=0,G=H.length;V<G;V++)H[V]=B(H[V]);return H.join(E)}};r.decodePath=v("/","decodePathSegment"),r.decodeUrnPath=v(":","decodeUrnPathSegment"),r.recodePath=v("/","encodePathSegment","decode"),r.recodeUrnPath=v(":","encodeUrnPathSegment","decode"),r.encodeReserved=S("reserved","encode"),r.parse=function(E,w){var I;return w||(w={preventInvalidHostname:r.preventInvalidHostname}),E=E.replace(r.leading_whitespace_expression,""),E=E.replace(r.ascii_tab_whitespace,""),I=E.indexOf("#"),I>-1&&(w.fragment=E.substring(I+1)||null,E=E.substring(0,I)),I=E.indexOf("?"),I>-1&&(w.query=E.substring(I+1)||null,E=E.substring(0,I)),E=E.replace(/^(https?|ftp|wss?)?:+[/\\]*/i,"$1://"),E=E.replace(/^[/\\]{2,}/i,"//"),E.substring(0,2)==="//"?(w.protocol=null,E=E.substring(2),E=r.parseAuthority(E,w)):(I=E.indexOf(":"),I>-1&&(w.protocol=E.substring(0,I)||null,w.protocol&&!w.protocol.match(r.protocol_expression)?w.protocol=void 0:E.substring(I+1,I+3).replace(/\\/g,"/")==="//"?(E=E.substring(I+3),E=r.parseAuthority(E,w)):(E=E.substring(I+1),w.urn=!0))),w.path=E,w},r.parseHost=function(E,w){E||(E=""),E=E.replace(/\\/g,"/");var I=E.indexOf("/"),N,B;if(I===-1&&(I=E.length),E.charAt(0)==="[")N=E.indexOf("]"),w.hostname=E.substring(1,N)||null,w.port=E.substring(N+2,I)||null,w.port==="/"&&(w.port=null);else{var H=E.indexOf(":"),V=E.indexOf("/"),G=E.indexOf(":",H+1);G!==-1&&(V===-1||G<V)?(w.hostname=E.substring(0,I)||null,w.port=null):(B=E.substring(0,I).split(":"),w.hostname=B[0]||null,w.port=B[1]||null)}return w.hostname&&E.substring(I).charAt(0)!=="/"&&(I++,E="/"+E),w.preventInvalidHostname&&r.ensureValidHostname(w.hostname,w.protocol),w.port&&r.ensureValidPort(w.port),E.substring(I)||"/"},r.parseAuthority=function(E,w){return E=r.parseUserinfo(E,w),r.parseHost(E,w)},r.parseUserinfo=function(E,w){var I=E,N=E.indexOf("\\");N!==-1&&(E=E.replace(/\\/g,"/"));var B=E.indexOf("/"),H=E.lastIndexOf("@",B>-1?B:E.length-1),V;return H>-1&&(B===-1||H<B)?(V=E.substring(0,H).split(":"),w.username=V[0]?r.decode(V[0]):null,V.shift(),w.password=V[0]?r.decode(V.join(":")):null,E=I.substring(H+1)):(w.username=null,w.password=null),E},r.parseQuery=function(E,w){if(!E)return{};if(E=E.replace(/&+/g,"&").replace(/^\?*&*|&+$/g,""),!E)return{};for(var I={},N=E.split("&"),B=N.length,H,V,G,k=0;k<B;k++)H=N[k].split("="),V=r.decodeQuery(H.shift(),w),G=H.length?r.decodeQuery(H.join("="),w):null,V!=="__proto__"&&(c.call(I,V)?((typeof I[V]=="string"||I[V]===null)&&(I[V]=[I[V]]),I[V].push(G)):I[V]=G);return I},r.build=function(E){var w="",I=!1;return E.protocol&&(w+=E.protocol+":"),!E.urn&&(w||E.hostname)&&(w+="//",I=!0),w+=r.buildAuthority(E)||"",typeof E.path=="string"&&(E.path.charAt(0)!=="/"&&I&&(w+="/"),w+=E.path),typeof E.query=="string"&&E.query&&(w+="?"+E.query),typeof E.fragment=="string"&&E.fragment&&(w+="#"+E.fragment),w},r.buildHost=function(E){var w="";if(E.hostname)r.ip6_expression.test(E.hostname)?w+="["+E.hostname+"]":w+=E.hostname;else return"";return E.port&&(w+=":"+E.port),w},r.buildAuthority=function(E){return r.buildUserinfo(E)+r.buildHost(E)},r.buildUserinfo=function(E){var w="";return E.username&&(w+=r.encode(E.username)),E.password&&(w+=":"+r.encode(E.password)),w&&(w+="@"),w},r.buildQuery=function(E,w,I){var N="",B,H,V,G;for(H in E)if(H!=="__proto__"&&c.call(E,H))if(d(E[H]))for(B={},V=0,G=E[H].length;V<G;V++)E[H][V]!==void 0&&B[E[H][V]+""]===void 0&&(N+="&"+r.buildQueryParameter(H,E[H][V],I),w!==!0&&(B[E[H][V]+""]=!0));else E[H]!==void 0&&(N+="&"+r.buildQueryParameter(H,E[H],I));return N.substring(1)},r.buildQueryParameter=function(E,w,I){return r.encodeQuery(E,I)+(w!==null?"="+r.encodeQuery(w,I):"")},r.addQuery=function(E,w,I){if(typeof w=="object")for(var N in w)c.call(w,N)&&r.addQuery(E,N,w[N]);else if(typeof w=="string"){if(E[w]===void 0){E[w]=I;return}else typeof E[w]=="string"&&(E[w]=[E[w]]);d(I)||(I=[I]),E[w]=(E[w]||[]).concat(I)}else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter")},r.setQuery=function(E,w,I){if(typeof w=="object")for(var N in w)c.call(w,N)&&r.setQuery(E,N,w[N]);else if(typeof w=="string")E[w]=I===void 0?null:I;else throw new TypeError("URI.setQuery() accepts an object, string as the name parameter")},r.removeQuery=function(E,w,I){var N,B,H;if(d(w))for(N=0,B=w.length;N<B;N++)E[w[N]]=void 0;else if(f(w)==="RegExp")for(H in E)w.test(H)&&(E[H]=void 0);else if(typeof w=="object")for(H in w)c.call(w,H)&&r.removeQuery(E,H,w[H]);else if(typeof w=="string")I!==void 0?f(I)==="RegExp"?!d(E[w])&&I.test(E[w])?E[w]=void 0:E[w]=p(E[w],I):E[w]===String(I)&&(!d(I)||I.length===1)?E[w]=void 0:d(E[w])&&(E[w]=p(E[w],I)):E[w]=void 0;else throw new TypeError("URI.removeQuery() accepts an object, string, RegExp as the first parameter")},r.hasQuery=function(E,w,I,N){switch(f(w)){case"String":break;case"RegExp":for(var B in E)if(c.call(E,B)&&w.test(B)&&(I===void 0||r.hasQuery(E,B,I)))return!0;return!1;case"Object":for(var H in w)if(c.call(w,H)&&!r.hasQuery(E,H,w[H]))return!1;return!0;default:throw new TypeError("URI.hasQuery() accepts a string, regular expression or object as the name parameter")}switch(f(I)){case"Undefined":return w in E;case"Boolean":var V=!!(d(E[w])?E[w].length:E[w]);return I===V;case"Function":return!!I(E[w],w,E);case"Array":if(!d(E[w]))return!1;var G=N?g:m;return G(E[w],I);case"RegExp":return d(E[w])?N?g(E[w],I):!1:!!(E[w]&&E[w].match(I));case"Number":I=String(I);case"String":return d(E[w])?N?g(E[w],I):!1:E[w]===I;default:throw new TypeError("URI.hasQuery() accepts undefined, boolean, string, number, RegExp, Function as the value parameter")}},r.joinPaths=function(){for(var E=[],w=[],I=0,N=0;N<arguments.length;N++){var B=new r(arguments[N]);E.push(B);for(var H=B.segment(),V=0;V<H.length;V++)typeof H[V]=="string"&&w.push(H[V]),H[V]&&I++}if(!w.length||!I)return new r("");var G=new r("").segment(w);return(E[0].path()===""||E[0].path().slice(0,1)==="/")&&G.path("/"+G.path()),G.normalize()},r.commonPath=function(E,w){var I=Math.min(E.length,w.length),N;for(N=0;N<I;N++)if(E.charAt(N)!==w.charAt(N)){N--;break}return N<1?E.charAt(0)===w.charAt(0)&&E.charAt(0)==="/"?"/":"":((E.charAt(N)!=="/"||w.charAt(N)!=="/")&&(N=E.substring(0,N).lastIndexOf("/")),E.substring(0,N+1))},r.withinString=function(E,w,I){I||(I={});var N=I.start||r.findUri.start,B=I.end||r.findUri.end,H=I.trim||r.findUri.trim,V=I.parens||r.findUri.parens,G=/[a-z0-9-]=["']?$/i;for(N.lastIndex=0;;){var k=N.exec(E);if(!k)break;var W=k.index;if(I.ignoreHtml){var q=E.slice(Math.max(W-3,0),W);if(q&&G.test(q))continue}for(var J=W+E.slice(W).search(B),j=E.slice(W,J),Z=-1;;){var Q=V.exec(j);if(!Q)break;var de=Q.index+Q[0].length;Z=Math.max(Z,de)}if(Z>-1?j=j.slice(0,Z)+j.slice(Z).replace(H,""):j=j.replace(H,""),!(j.length<=k[0].length)&&!(I.ignore&&I.ignore.test(j))){J=W+j.length;var ye=w(j,W,J,E);if(ye===void 0){N.lastIndex=J;continue}ye=String(ye),E=E.slice(0,W)+ye+E.slice(J),N.lastIndex=W+ye.length}}return N.lastIndex=0,E},r.ensureValidHostname=function(E,w){var I=!!E,N=!!w,B=!1;if(N&&(B=g(r.hostProtocols,w)),B&&!I)throw new TypeError("Hostname cannot be empty, if protocol is "+w);if(E&&E.match(r.invalid_hostname_characters)){if(!e)throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_] and Punycode.js is not available');if(e.toASCII(E).match(r.invalid_hostname_characters))throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-:_]')}},r.ensureValidPort=function(E){if(E){var w=Number(E);if(!(s(w)&&w>0&&w<65536))throw new TypeError('Port "'+E+'" is not a valid port')}},r.noConflict=function(E){if(E){var w={URI:this.noConflict()};return i.URITemplate&&typeof i.URITemplate.noConflict=="function"&&(w.URITemplate=i.URITemplate.noConflict()),i.IPv6&&typeof i.IPv6.noConflict=="function"&&(w.IPv6=i.IPv6.noConflict()),i.SecondLevelDomains&&typeof i.SecondLevelDomains.noConflict=="function"&&(w.SecondLevelDomains=i.SecondLevelDomains.noConflict()),w}else i.URI===this&&(i.URI=o);return this},a.build=function(E){return E===!0?this._deferred_build=!0:(E===void 0||this._deferred_build)&&(this._string=r.build(this._parts),this._deferred_build=!1),this},a.clone=function(){return new r(this)},a.valueOf=a.toString=function(){return this.build(!1)._string};function D(E){return function(w,I){return w===void 0?this._parts[E]||"":(this._parts[E]=w||null,this.build(!I),this)}}function O(E,w){return function(I,N){return I===void 0?this._parts[E]||"":(I!==null&&(I=I+"",I.charAt(0)===w&&(I=I.substring(1))),this._parts[E]=I,this.build(!N),this)}}a.protocol=D("protocol"),a.username=D("username"),a.password=D("password"),a.hostname=D("hostname"),a.port=D("port"),a.query=O("query","?"),a.fragment=O("fragment","#"),a.search=function(E,w){var I=this.query(E,w);return typeof I=="string"&&I.length?"?"+I:I},a.hash=function(E,w){var I=this.fragment(E,w);return typeof I=="string"&&I.length?"#"+I:I},a.pathname=function(E,w){if(E===void 0||E===!0){var I=this._parts.path||(this._parts.hostname?"/":"");return E?(this._parts.urn?r.decodeUrnPath:r.decodePath)(I):I}else return this._parts.urn?this._parts.path=E?r.recodeUrnPath(E):"":this._parts.path=E?r.recodePath(E):"/",this.build(!w),this},a.path=a.pathname,a.href=function(E,w){var I;if(E===void 0)return this.toString();this._string="",this._parts=r._parts();var N=E instanceof r,B=typeof E=="object"&&(E.hostname||E.path||E.pathname);if(E.nodeName){var H=r.getDomAttribute(E);E=E[H]||"",B=!1}if(!N&&B&&E.pathname!==void 0&&(E=E.toString()),typeof E=="string"||E instanceof String)this._parts=r.parse(String(E),this._parts);else if(N||B){var V=N?E._parts:E;for(I in V)I!=="query"&&c.call(this._parts,I)&&(this._parts[I]=V[I]);V.query&&this.query(V.query,!1)}else throw new TypeError("invalid input");return this.build(!w),this},a.is=function(E){var w=!1,I=!1,N=!1,B=!1,H=!1,V=!1,G=!1,k=!this._parts.urn;switch(this._parts.hostname&&(k=!1,I=r.ip4_expression.test(this._parts.hostname),N=r.ip6_expression.test(this._parts.hostname),w=I||N,B=!w,H=B&&n&&n.has(this._parts.hostname),V=B&&r.idn_expression.test(this._parts.hostname),G=B&&r.punycode_expression.test(this._parts.hostname)),E.toLowerCase()){case"relative":return k;case"absolute":return!k;case"domain":case"name":return B;case"sld":return H;case"ip":return w;case"ip4":case"ipv4":case"inet4":return I;case"ip6":case"ipv6":case"inet6":return N;case"idn":return V;case"url":return!this._parts.urn;case"urn":return!!this._parts.urn;case"punycode":return G}return null};var R=a.protocol,M=a.port,L=a.hostname;a.protocol=function(E,w){if(E&&(E=E.replace(/:(\/\/)?$/,""),!E.match(r.protocol_expression)))throw new TypeError('Protocol "'+E+`" contains characters other than [A-Z0-9.+-] or doesn't start with [A-Z]`);return R.call(this,E,w)},a.scheme=a.protocol,a.port=function(E,w){return this._parts.urn?E===void 0?"":this:(E!==void 0&&(E===0&&(E=null),E&&(E+="",E.charAt(0)===":"&&(E=E.substring(1)),r.ensureValidPort(E))),M.call(this,E,w))},a.hostname=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E!==void 0){var I={preventInvalidHostname:this._parts.preventInvalidHostname},N=r.parseHost(E,I);if(N!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');E=I.hostname,this._parts.preventInvalidHostname&&r.ensureValidHostname(E,this._parts.protocol)}return L.call(this,E,w)},a.origin=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=this.protocol(),N=this.authority();return N?(I?I+"://":"")+this.authority():""}else{var B=r(E);return this.protocol(B.protocol()).authority(B.authority()).build(!w),this}},a.host=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildHost(this._parts):"";var I=r.parseHost(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.authority=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0)return this._parts.hostname?r.buildAuthority(this._parts):"";var I=r.parseAuthority(E,this._parts);if(I!=="/")throw new TypeError('Hostname "'+E+'" contains characters other than [A-Z0-9.-]');return this.build(!w),this},a.userinfo=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){var I=r.buildUserinfo(this._parts);return I&&I.substring(0,I.length-1)}else return E[E.length-1]!=="@"&&(E+="@"),r.parseUserinfo(E,this._parts),this.build(!w),this},a.resource=function(E,w){var I;return E===void 0?this.path()+this.search()+this.hash():(I=r.parse(E),this._parts.path=I.path,this._parts.query=I.query,this._parts.fragment=I.fragment,this.build(!w),this)},a.subdomain=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.length-this.domain().length-1;return this._parts.hostname.substring(0,I)||""}else{var N=this._parts.hostname.length-this.domain().length,B=this._parts.hostname.substring(0,N),H=new RegExp("^"+u(B));if(E&&E.charAt(E.length-1)!=="."&&(E+="."),E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");return E&&r.ensureValidHostname(E,this._parts.protocol),this._parts.hostname=this._parts.hostname.replace(H,E),this.build(!w),this}},a.domain=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(w=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.match(/\./g);if(I&&I.length<2)return this._parts.hostname;var N=this._parts.hostname.length-this.tld(w).length-1;return N=this._parts.hostname.lastIndexOf(".",N-1)+1,this._parts.hostname.substring(N)||""}else{if(!E)throw new TypeError("cannot set domain empty");if(E.indexOf(":")!==-1)throw new TypeError("Domains cannot contain colons");if(r.ensureValidHostname(E,this._parts.protocol),!this._parts.hostname||this.is("IP"))this._parts.hostname=E;else{var B=new RegExp(u(this.domain())+"$");this._parts.hostname=this._parts.hostname.replace(B,E)}return this.build(!w),this}},a.tld=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(typeof E=="boolean"&&(w=E,E=void 0),E===void 0){if(!this._parts.hostname||this.is("IP"))return"";var I=this._parts.hostname.lastIndexOf("."),N=this._parts.hostname.substring(I+1);return w!==!0&&n&&n.list[N.toLowerCase()]&&n.get(this._parts.hostname)||N}else{var B;if(E)if(E.match(/[^a-zA-Z0-9-]/))if(n&&n.is(E))B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E);else throw new TypeError('TLD "'+E+'" contains characters other than [A-Z0-9]');else{if(!this._parts.hostname||this.is("IP"))throw new ReferenceError("cannot set TLD on non-domain host");B=new RegExp(u(this.tld())+"$"),this._parts.hostname=this._parts.hostname.replace(B,E)}else throw new TypeError("cannot set TLD empty");return this.build(!w),this}},a.directory=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path&&!this._parts.hostname)return"";if(this._parts.path==="/")return"/";var I=this._parts.path.length-this.filename().length-1,N=this._parts.path.substring(0,I)||(this._parts.hostname?"/":"");return E?r.decodePath(N):N}else{var B=this._parts.path.length-this.filename().length,H=this._parts.path.substring(0,B),V=new RegExp("^"+u(H));return this.is("relative")||(E||(E="/"),E.charAt(0)!=="/"&&(E="/"+E)),E&&E.charAt(E.length-1)!=="/"&&(E+="/"),E=r.recodePath(E),this._parts.path=this._parts.path.replace(V,E),this.build(!w),this}},a.filename=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(typeof E!="string"){if(!this._parts.path||this._parts.path==="/")return"";var I=this._parts.path.lastIndexOf("/"),N=this._parts.path.substring(I+1);return E?r.decodePathSegment(N):N}else{var B=!1;E.charAt(0)==="/"&&(E=E.substring(1)),E.match(/\.?\//)&&(B=!0);var H=new RegExp(u(this.filename())+"$");return E=r.recodePath(E),this._parts.path=this._parts.path.replace(H,E),B?this.normalizePath(w):this.build(!w),this}},a.suffix=function(E,w){if(this._parts.urn)return E===void 0?"":this;if(E===void 0||E===!0){if(!this._parts.path||this._parts.path==="/")return"";var I=this.filename(),N=I.lastIndexOf("."),B,H;return N===-1?"":(B=I.substring(N+1),H=/^[a-z0-9%]+$/i.test(B)?B:"",E?r.decodePathSegment(H):H)}else{E.charAt(0)==="."&&(E=E.substring(1));var V=this.suffix(),G;if(V)E?G=new RegExp(u(V)+"$"):G=new RegExp(u("."+V)+"$");else{if(!E)return this;this._parts.path+="."+r.recodePath(E)}return G&&(E=r.recodePath(E),this._parts.path=this._parts.path.replace(G,E)),this.build(!w),this}},a.segment=function(E,w,I){var N=this._parts.urn?":":"/",B=this.path(),H=B.substring(0,1)==="/",V=B.split(N);if(E!==void 0&&typeof E!="number"&&(I=w,w=E,E=void 0),E!==void 0&&typeof E!="number")throw new Error('Bad segment "'+E+'", must be 0-based integer');if(H&&V.shift(),E<0&&(E=Math.max(V.length+E,0)),w===void 0)return E===void 0?V:V[E];if(E===null||V[E]===void 0)if(d(w)){V=[];for(var G=0,k=w.length;G<k;G++)!w[G].length&&(!V.length||!V[V.length-1].length)||(V.length&&!V[V.length-1].length&&V.pop(),V.push(x(w[G])))}else(w||typeof w=="string")&&(w=x(w),V[V.length-1]===""?V[V.length-1]=w:V.push(w));else w?V[E]=x(w):V.splice(E,1);return H&&V.unshift(""),this.path(V.join(N),I)},a.segmentCoded=function(E,w,I){var N,B,H;if(typeof E!="number"&&(I=w,w=E,E=void 0),w===void 0){if(N=this.segment(E,w,I),!d(N))N=N!==void 0?r.decode(N):void 0;else for(B=0,H=N.length;B<H;B++)N[B]=r.decode(N[B]);return N}if(!d(w))w=typeof w=="string"||w instanceof String?r.encode(w):w;else for(B=0,H=w.length;B<H;B++)w[B]=r.encode(w[B]);return this.segment(E,w,I)};var _=a.query;return a.query=function(E,w){if(E===!0)return r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="function"){var I=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace),N=E.call(this,I);return this._parts.query=r.buildQuery(N||I,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this}else return E!==void 0&&typeof E!="string"?(this._parts.query=r.buildQuery(E,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),this.build(!w),this):_.call(this,E,w)},a.setQuery=function(E,w,I){var N=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);if(typeof E=="string"||E instanceof String)N[E]=w!==void 0?w:null;else if(typeof E=="object")for(var B in E)c.call(E,B)&&(N[B]=E[B]);else throw new TypeError("URI.addQuery() accepts an object, string as the name parameter");return this._parts.query=r.buildQuery(N,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=w),this.build(!I),this},a.addQuery=function(E,w,I){var N=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.addQuery(N,E,w===void 0?null:w),this._parts.query=r.buildQuery(N,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=w),this.build(!I),this},a.removeQuery=function(E,w,I){var N=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.removeQuery(N,E,w),this._parts.query=r.buildQuery(N,this._parts.duplicateQueryParameters,this._parts.escapeQuerySpace),typeof E!="string"&&(I=w),this.build(!I),this},a.hasQuery=function(E,w,I){var N=r.parseQuery(this._parts.query,this._parts.escapeQuerySpace);return r.hasQuery(N,E,w,I)},a.setSearch=a.setQuery,a.addSearch=a.addQuery,a.removeSearch=a.removeQuery,a.hasSearch=a.hasQuery,a.normalize=function(){return this._parts.urn?this.normalizeProtocol(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build():this.normalizeProtocol(!1).normalizeHostname(!1).normalizePort(!1).normalizePath(!1).normalizeQuery(!1).normalizeFragment(!1).build()},a.normalizeProtocol=function(E){return typeof this._parts.protocol=="string"&&(this._parts.protocol=this._parts.protocol.toLowerCase(),this.build(!E)),this},a.normalizeHostname=function(E){return this._parts.hostname&&(this.is("IDN")&&e?this._parts.hostname=e.toASCII(this._parts.hostname):this.is("IPv6")&&t&&(this._parts.hostname=t.best(this._parts.hostname)),this._parts.hostname=this._parts.hostname.toLowerCase(),this.build(!E)),this},a.normalizePort=function(E){return typeof this._parts.protocol=="string"&&this._parts.port===r.defaultPorts[this._parts.protocol]&&(this._parts.port=null,this.build(!E)),this},a.normalizePath=function(E){var w=this._parts.path;if(!w)return this;if(this._parts.urn)return this._parts.path=r.recodeUrnPath(this._parts.path),this.build(!E),this;if(this._parts.path==="/")return this;w=r.recodePath(w);var I,N="",B,H;for(w.charAt(0)!=="/"&&(I=!0,w="/"+w),(w.slice(-3)==="/.."||w.slice(-2)==="/.")&&(w+="/"),w=w.replace(/(\/(\.\/)+)|(\/\.$)/g,"/").replace(/\/{2,}/g,"/"),I&&(N=w.substring(1).match(/^(\.\.\/)+/)||"",N&&(N=N[0]));B=w.search(/\/\.\.(\/|$)/),B!==-1;){if(B===0){w=w.substring(3);continue}H=w.substring(0,B).lastIndexOf("/"),H===-1&&(H=B),w=w.substring(0,H)+w.substring(B+3)}return I&&this.is("relative")&&(w=N+w.substring(1)),this._parts.path=w,this.build(!E),this},a.normalizePathname=a.normalizePath,a.normalizeQuery=function(E){return typeof this._parts.query=="string"&&(this._parts.query.length?this.query(r.parseQuery(this._parts.query,this._parts.escapeQuerySpace)):this._parts.query=null,this.build(!E)),this},a.normalizeFragment=function(E){return this._parts.fragment||(this._parts.fragment=null,this.build(!E)),this},a.normalizeSearch=a.normalizeQuery,a.normalizeHash=a.normalizeFragment,a.iso8859=function(){var E=r.encode,w=r.decode;r.encode=escape,r.decode=decodeURIComponent;try{this.normalize()}finally{r.encode=E,r.decode=w}return this},a.unicode=function(){var E=r.encode,w=r.decode;r.encode=T,r.decode=unescape;try{this.normalize()}finally{r.encode=E,r.decode=w}return this},a.readable=function(){var E=this.clone();E.username("").password("").normalize();var w="";if(E._parts.protocol&&(w+=E._parts.protocol+"://"),E._parts.hostname&&(E.is("punycode")&&e?(w+=e.toUnicode(E._parts.hostname),E._parts.port&&(w+=":"+E._parts.port)):w+=E.host()),E._parts.hostname&&E._parts.path&&E._parts.path.charAt(0)!=="/"&&(w+="/"),w+=E.path(!0),E._parts.query){for(var I="",N=0,B=E._parts.query.split("&"),H=B.length;N<H;N++){var V=(B[N]||"").split("=");I+="&"+r.decodeQuery(V[0],this._parts.escapeQuerySpace).replace(/&/g,"%26"),V[1]!==void 0&&(I+="="+r.decodeQuery(V[1],this._parts.escapeQuerySpace).replace(/&/g,"%26"))}w+="?"+I.substring(1)}return w+=r.decodeQuery(E.hash(),!0),w},a.absoluteTo=function(E){var w=this.clone(),I=["protocol","username","password","hostname","port"],N,B,H;if(this._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E instanceof r||(E=new r(E)),w._parts.protocol||(w._parts.protocol=E._parts.protocol,this._parts.hostname))return w;for(B=0;H=I[B];B++)w._parts[H]=E._parts[H];return w._parts.path?(w._parts.path.substring(-2)===".."&&(w._parts.path+="/"),w.path().charAt(0)!=="/"&&(N=E.directory(),N=N||(E.path().indexOf("/")===0?"/":""),w._parts.path=(N?N+"/":"")+w._parts.path,w.normalizePath())):(w._parts.path=E._parts.path,w._parts.query||(w._parts.query=E._parts.query)),w.build(),w},a.relativeTo=function(E){var w=this.clone().normalize(),I,N,B,H,V;if(w._parts.urn)throw new Error("URNs do not have any generally defined hierarchical components");if(E=new r(E).normalize(),I=w._parts,N=E._parts,H=w.path(),V=E.path(),H.charAt(0)!=="/")throw new Error("URI is already relative");if(V.charAt(0)!=="/")throw new Error("Cannot calculate a URI relative to another relative URI");if(I.protocol===N.protocol&&(I.protocol=null),I.username!==N.username||I.password!==N.password||I.protocol!==null||I.username!==null||I.password!==null)return w.build();if(I.hostname===N.hostname&&I.port===N.port)I.hostname=null,I.port=null;else return w.build();if(H===V)return I.path="",w.build();if(B=r.commonPath(H,V),!B)return w.build();var G=N.path.substring(B.length).replace(/[^\/]*$/,"").replace(/.*?\//g,"../");return I.path=G+I.path.substring(B.length)||"./",w.build()},a.equals=function(E){var w=this.clone(),I=new r(E),N={},B={},H={},V,G,k;if(w.normalize(),I.normalize(),w.toString()===I.toString())return!0;if(V=w.query(),G=I.query(),w.query(""),I.query(""),w.toString()!==I.toString()||V.length!==G.length)return!1;N=r.parseQuery(V,this._parts.escapeQuerySpace),B=r.parseQuery(G,this._parts.escapeQuerySpace);for(k in N)if(c.call(N,k)){if(d(N[k])){if(!m(N[k],B[k]))return!1}else if(N[k]!==B[k])return!1;H[k]=!0}for(k in B)if(c.call(B,k)&&!H[k])return!1;return!0},a.preventInvalidHostname=function(E){return this._parts.preventInvalidHostname=!!E,this},a.duplicateQueryParameters=function(E){return this._parts.duplicateQueryParameters=!!E,this},a.escapeQuerySpace=function(E){return this._parts.escapeQuerySpace=!!E,this},r})});var Pne=Ul((i9,o9)=>{/*! @license DOMPurify 3.1.7 | (c) Cure53 and other contributors | Released under the Apache license 2.0 and Mozilla Public License 2.0 | github.com/cure53/DOMPurify/blob/3.1.7/LICENSE */(function(e,t){typeof i9=="object"&&typeof o9<"u"?o9.exports=t():typeof define=="function"&&define.amd?define(t):(e=typeof globalThis<"u"?globalThis:e||self,e.DOMPurify=t())})(i9,function(){"use strict";let{entries:e,setPrototypeOf:t,isFrozen:n,getPrototypeOf:i,getOwnPropertyDescriptor:o}=Object,{freeze:r,seal:s,create:a}=Object,{apply:c,construct:u}=typeof Reflect<"u"&&Reflect;r||(r=function(Xe){return Xe}),s||(s=function(Xe){return Xe}),c||(c=function(Xe,Qe,We){return Xe.apply(Qe,We)}),u||(u=function(Xe,Qe){return new Xe(...Qe)});let f=D(Array.prototype.forEach),d=D(Array.prototype.pop),p=D(Array.prototype.push),g=D(String.prototype.toLowerCase),m=D(String.prototype.toString),x=D(String.prototype.match),b=D(String.prototype.replace),T=D(String.prototype.indexOf),A=D(String.prototype.trim),C=D(Object.prototype.hasOwnProperty),S=D(RegExp.prototype.test),v=O(TypeError);function D(we){return function(Xe){for(var Qe=arguments.length,We=new Array(Qe>1?Qe-1:0),Ut=1;Ut<Qe;Ut++)We[Ut-1]=arguments[Ut];return c(we,Xe,We)}}function O(we){return function(){for(var Xe=arguments.length,Qe=new Array(Xe),We=0;We<Xe;We++)Qe[We]=arguments[We];return u(we,Qe)}}function R(we,Xe){let Qe=arguments.length>2&&arguments[2]!==void 0?arguments[2]:g;t&&t(we,null);let We=Xe.length;for(;We--;){let Ut=Xe[We];if(typeof Ut=="string"){let Te=Qe(Ut);Te!==Ut&&(n(Xe)||(Xe[We]=Te),Ut=Te)}we[Ut]=!0}return we}function M(we){for(let Xe=0;Xe<we.length;Xe++)C(we,Xe)||(we[Xe]=null);return we}function L(we){let Xe=a(null);for(let[Qe,We]of e(we))C(we,Qe)&&(Array.isArray(We)?Xe[Qe]=M(We):We&&typeof We=="object"&&We.constructor===Object?Xe[Qe]=L(We):Xe[Qe]=We);return Xe}function _(we,Xe){for(;we!==null;){let We=o(we,Xe);if(We){if(We.get)return D(We.get);if(typeof We.value=="function")return D(We.value)}we=i(we)}function Qe(){return null}return Qe}let E=r(["a","abbr","acronym","address","area","article","aside","audio","b","bdi","bdo","big","blink","blockquote","body","br","button","canvas","caption","center","cite","code","col","colgroup","content","data","datalist","dd","decorator","del","details","dfn","dialog","dir","div","dl","dt","element","em","fieldset","figcaption","figure","font","footer","form","h1","h2","h3","h4","h5","h6","head","header","hgroup","hr","html","i","img","input","ins","kbd","label","legend","li","main","map","mark","marquee","menu","menuitem","meter","nav","nobr","ol","optgroup","option","output","p","picture","pre","progress","q","rp","rt","ruby","s","samp","section","select","shadow","small","source","spacer","span","strike","strong","style","sub","summary","sup","table","tbody","td","template","textarea","tfoot","th","thead","time","tr","track","tt","u","ul","var","video","wbr"]),w=r(["svg","a","altglyph","altglyphdef","altglyphitem","animatecolor","animatemotion","animatetransform","circle","clippath","defs","desc","ellipse","filter","font","g","glyph","glyphref","hkern","image","line","lineargradient","marker","mask","metadata","mpath","path","pattern","polygon","polyline","radialgradient","rect","stop","style","switch","symbol","text","textpath","title","tref","tspan","view","vkern"]),I=r(["feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence"]),N=r(["animate","color-profile","cursor","discard","font-face","font-face-format","font-face-name","font-face-src","font-face-uri","foreignobject","hatch","hatchpath","mesh","meshgradient","meshpatch","meshrow","missing-glyph","script","set","solidcolor","unknown","use"]),B=r(["math","menclose","merror","mfenced","mfrac","mglyph","mi","mlabeledtr","mmultiscripts","mn","mo","mover","mpadded","mphantom","mroot","mrow","ms","mspace","msqrt","mstyle","msub","msup","msubsup","mtable","mtd","mtext","mtr","munder","munderover","mprescripts"]),H=r(["maction","maligngroup","malignmark","mlongdiv","mscarries","mscarry","msgroup","mstack","msline","msrow","semantics","annotation","annotation-xml","mprescripts","none"]),V=r(["#text"]),G=r(["accept","action","align","alt","autocapitalize","autocomplete","autopictureinpicture","autoplay","background","bgcolor","border","capture","cellpadding","cellspacing","checked","cite","class","clear","color","cols","colspan","controls","controlslist","coords","crossorigin","datetime","decoding","default","dir","disabled","disablepictureinpicture","disableremoteplayback","download","draggable","enctype","enterkeyhint","face","for","headers","height","hidden","high","href","hreflang","id","inputmode","integrity","ismap","kind","label","lang","list","loading","loop","low","max","maxlength","media","method","min","minlength","multiple","muted","name","nonce","noshade","novalidate","nowrap","open","optimum","pattern","placeholder","playsinline","popover","popovertarget","popovertargetaction","poster","preload","pubdate","radiogroup","readonly","rel","required","rev","reversed","role","rows","rowspan","spellcheck","scope","selected","shape","size","sizes","span","srclang","start","src","srcset","step","style","summary","tabindex","title","translate","type","usemap","valign","value","width","wrap","xmlns","slot"]),k=r(["accent-height","accumulate","additive","alignment-baseline","amplitude","ascent","attributename","attributetype","azimuth","basefrequency","baseline-shift","begin","bias","by","class","clip","clippathunits","clip-path","clip-rule","color","color-interpolation","color-interpolation-filters","color-profile","color-rendering","cx","cy","d","dx","dy","diffuseconstant","direction","display","divisor","dur","edgemode","elevation","end","exponent","fill","fill-opacity","fill-rule","filter","filterunits","flood-color","flood-opacity","font-family","font-size","font-size-adjust","font-stretch","font-style","font-variant","font-weight","fx","fy","g1","g2","glyph-name","glyphref","gradientunits","gradienttransform","height","href","id","image-rendering","in","in2","intercept","k","k1","k2","k3","k4","kerning","keypoints","keysplines","keytimes","lang","lengthadjust","letter-spacing","kernelmatrix","kernelunitlength","lighting-color","local","marker-end","marker-mid","marker-start","markerheight","markerunits","markerwidth","maskcontentunits","maskunits","max","mask","media","method","mode","min","name","numoctaves","offset","operator","opacity","order","orient","orientation","origin","overflow","paint-order","path","pathlength","patterncontentunits","patterntransform","patternunits","points","preservealpha","preserveaspectratio","primitiveunits","r","rx","ry","radius","refx","refy","repeatcount","repeatdur","restart","result","rotate","scale","seed","shape-rendering","slope","specularconstant","specularexponent","spreadmethod","startoffset","stddeviation","stitchtiles","stop-color","stop-opacity","stroke-dasharray","stroke-dashoffset","stroke-linecap","stroke-linejoin","stroke-miterlimit","stroke-opacity","stroke","stroke-width","style","surfacescale","systemlanguage","tabindex","tablevalues","targetx","targety","transform","transform-origin","text-anchor","text-decoration","text-rendering","textlength","type","u1","u2","unicode","values","viewbox","visibility","version","vert-adv-y","vert-origin-x","vert-origin-y","width","word-spacing","wrap","writing-mode","xchannelselector","ychannelselector","x","x1","x2","xmlns","y","y1","y2","z","zoomandpan"]),W=r(["accent","accentunder","align","bevelled","close","columnsalign","columnlines","columnspan","denomalign","depth","dir","display","displaystyle","encoding","fence","frame","height","href","id","largeop","length","linethickness","lspace","lquote","mathbackground","mathcolor","mathsize","mathvariant","maxsize","minsize","movablelimits","notation","numalign","open","rowalign","rowlines","rowspacing","rowspan","rspace","rquote","scriptlevel","scriptminsize","scriptsizemultiplier","selection","separator","separators","stretchy","subscriptshift","supscriptshift","symmetric","voffset","width","xmlns"]),q=r(["xlink:href","xml:id","xlink:title","xml:space","xmlns:xlink"]),J=s(/\{\{[\w\W]*|[\w\W]*\}\}/gm),j=s(/<%[\w\W]*|[\w\W]*%>/gm),Z=s(/\${[\w\W]*}/gm),Q=s(/^data-[\-\w.\u00B7-\uFFFF]/),de=s(/^aria-[\-\w]+$/),ye=s(/^(?:(?:(?:f|ht)tps?|mailto|tel|callto|sms|cid|xmpp):|[^a-z]|[a-z+.\-]+(?:[^a-z+.\-:]|$))/i),ae=s(/^(?:\w+script|data):/i),_e=s(/[\u0000-\u0020\u00A0\u1680\u180E\u2000-\u2029\u205F\u3000]/g),xe=s(/^html$/i),Ie=s(/^[a-z][.\w]*(-[.\w]+)+$/i);var Ce=Object.freeze({__proto__:null,MUSTACHE_EXPR:J,ERB_EXPR:j,TMPLIT_EXPR:Z,DATA_ATTR:Q,ARIA_ATTR:de,IS_ALLOWED_URI:ye,IS_SCRIPT_OR_DATA:ae,ATTR_WHITESPACE:_e,DOCTYPE_NAME:xe,CUSTOM_ELEMENT:Ie});let ke={element:1,attribute:2,text:3,cdataSection:4,entityReference:5,entityNode:6,progressingInstruction:7,comment:8,document:9,documentType:10,documentFragment:11,notation:12},He=function(){return typeof window>"u"?null:window},rt=function(Xe,Qe){if(typeof Xe!="object"||typeof Xe.createPolicy!="function")return null;let We=null,Ut="data-tt-policy-suffix";Qe&&Qe.hasAttribute(Ut)&&(We=Qe.getAttribute(Ut));let Te="dompurify"+(We?"#"+We:"");try{return Xe.createPolicy(Te,{createHTML(Ae){return Ae},createScriptURL(Ae){return Ae}})}catch{return console.warn("TrustedTypes policy "+Te+" could not be created."),null}};function Lt(){let we=arguments.length>0&&arguments[0]!==void 0?arguments[0]:He(),Xe=Tn=>Lt(Tn);if(Xe.version="3.1.7",Xe.removed=[],!we||!we.document||we.document.nodeType!==ke.document)return Xe.isSupported=!1,Xe;let{document:Qe}=we,We=Qe,Ut=We.currentScript,{DocumentFragment:Te,HTMLTemplateElement:Ae,Node:st,Element:Fi,NodeFilter:ut,NamedNodeMap:_o=we.NamedNodeMap||we.MozNamedAttrMap,HTMLFormElement:cr,DOMParser:mc,trustedTypes:Tr}=we,Qr=Fi.prototype,Be=_(Qr,"cloneNode"),lt=_(Qr,"remove"),Ye=_(Qr,"nextSibling"),$e=_(Qr,"childNodes"),ht=_(Qr,"parentNode");if(typeof Ae=="function"){let Tn=Qe.createElement("template");Tn.content&&Tn.content.ownerDocument&&(Qe=Tn.content.ownerDocument)}let Dt,pn="",{implementation:fo,createNodeIterator:er,createDocumentFragment:Oa,getElementsByTagName:Ma}=Qe,{importNode:Jr}=We,Yn={};Xe.isSupported=typeof e=="function"&&typeof ht=="function"&&fo&&fo.createHTMLDocument!==void 0;let{MUSTACHE_EXPR:hs,ERB_EXPR:Ar,TMPLIT_EXPR:el,DATA_ATTR:go,ARIA_ATTR:kr,IS_SCRIPT_OR_DATA:Um,ATTR_WHITESPACE:tl,CUSTOM_ELEMENT:zm}=Ce,{IS_ALLOWED_URI:La}=Ce,Cr=null,pa=R({},[...E,...w,...I,...B,...V]),ho=null,S_=R({},[...G,...k,...W,...q]),ai=Object.seal(a(null,{tagNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},attributeNameCheck:{writable:!0,configurable:!1,enumerable:!0,value:null},allowCustomizedBuiltInElements:{writable:!0,configurable:!1,enumerable:!0,value:!1}})),pc=null,Vl=null,Bu=!0,yo=!0,ku=!1,Gb=!0,h0=!1,LG=!0,m0=!1,NG=!1,FG=!1,Wb=!1,zP=!1,HP=!1,NZ=!0,FZ=!1,DCe="user-content-",BG=!0,IS=!1,jb={},qb=null,BZ=R({},["annotation-xml","audio","colgroup","desc","foreignobject","head","iframe","math","mi","mn","mo","ms","mtext","noembed","noframes","noscript","plaintext","script","style","svg","template","thead","title","video","xmp"]),kZ=null,VZ=R({},["audio","video","img","source","image","track"]),kG=null,UZ=R({},["alt","class","for","id","label","name","pattern","placeholder","role","summary","title","value","style","xmlns"]),GP="http://www.w3.org/1998/Math/MathML",WP="http://www.w3.org/2000/svg",Hm="http://www.w3.org/1999/xhtml",Yb=Hm,VG=!1,UG=null,ICe=R({},[GP,WP,Hm],m),PS=null,PCe=["application/xhtml+xml","text/html"],RCe="text/html",qs=null,Xb=null,OCe=Qe.createElement("form"),zZ=function(Ee){return Ee instanceof RegExp||Ee instanceof Function},zG=function(){let Ee=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};if(!(Xb&&Xb===Ee)){if((!Ee||typeof Ee!="object")&&(Ee={}),Ee=L(Ee),PS=PCe.indexOf(Ee.PARSER_MEDIA_TYPE)===-1?RCe:Ee.PARSER_MEDIA_TYPE,qs=PS==="application/xhtml+xml"?m:g,Cr=C(Ee,"ALLOWED_TAGS")?R({},Ee.ALLOWED_TAGS,qs):pa,ho=C(Ee,"ALLOWED_ATTR")?R({},Ee.ALLOWED_ATTR,qs):S_,UG=C(Ee,"ALLOWED_NAMESPACES")?R({},Ee.ALLOWED_NAMESPACES,m):ICe,kG=C(Ee,"ADD_URI_SAFE_ATTR")?R(L(UZ),Ee.ADD_URI_SAFE_ATTR,qs):UZ,kZ=C(Ee,"ADD_DATA_URI_TAGS")?R(L(VZ),Ee.ADD_DATA_URI_TAGS,qs):VZ,qb=C(Ee,"FORBID_CONTENTS")?R({},Ee.FORBID_CONTENTS,qs):BZ,pc=C(Ee,"FORBID_TAGS")?R({},Ee.FORBID_TAGS,qs):{},Vl=C(Ee,"FORBID_ATTR")?R({},Ee.FORBID_ATTR,qs):{},jb=C(Ee,"USE_PROFILES")?Ee.USE_PROFILES:!1,Bu=Ee.ALLOW_ARIA_ATTR!==!1,yo=Ee.ALLOW_DATA_ATTR!==!1,ku=Ee.ALLOW_UNKNOWN_PROTOCOLS||!1,Gb=Ee.ALLOW_SELF_CLOSE_IN_ATTR!==!1,h0=Ee.SAFE_FOR_TEMPLATES||!1,LG=Ee.SAFE_FOR_XML!==!1,m0=Ee.WHOLE_DOCUMENT||!1,Wb=Ee.RETURN_DOM||!1,zP=Ee.RETURN_DOM_FRAGMENT||!1,HP=Ee.RETURN_TRUSTED_TYPE||!1,FG=Ee.FORCE_BODY||!1,NZ=Ee.SANITIZE_DOM!==!1,FZ=Ee.SANITIZE_NAMED_PROPS||!1,BG=Ee.KEEP_CONTENT!==!1,IS=Ee.IN_PLACE||!1,La=Ee.ALLOWED_URI_REGEXP||ye,Yb=Ee.NAMESPACE||Hm,ai=Ee.CUSTOM_ELEMENT_HANDLING||{},Ee.CUSTOM_ELEMENT_HANDLING&&zZ(Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck)&&(ai.tagNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.tagNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&zZ(Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck)&&(ai.attributeNameCheck=Ee.CUSTOM_ELEMENT_HANDLING.attributeNameCheck),Ee.CUSTOM_ELEMENT_HANDLING&&typeof Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements=="boolean"&&(ai.allowCustomizedBuiltInElements=Ee.CUSTOM_ELEMENT_HANDLING.allowCustomizedBuiltInElements),h0&&(yo=!1),zP&&(Wb=!0),jb&&(Cr=R({},V),ho=[],jb.html===!0&&(R(Cr,E),R(ho,G)),jb.svg===!0&&(R(Cr,w),R(ho,k),R(ho,q)),jb.svgFilters===!0&&(R(Cr,I),R(ho,k),R(ho,q)),jb.mathMl===!0&&(R(Cr,B),R(ho,W),R(ho,q))),Ee.ADD_TAGS&&(Cr===pa&&(Cr=L(Cr)),R(Cr,Ee.ADD_TAGS,qs)),Ee.ADD_ATTR&&(ho===S_&&(ho=L(ho)),R(ho,Ee.ADD_ATTR,qs)),Ee.ADD_URI_SAFE_ATTR&&R(kG,Ee.ADD_URI_SAFE_ATTR,qs),Ee.FORBID_CONTENTS&&(qb===BZ&&(qb=L(qb)),R(qb,Ee.FORBID_CONTENTS,qs)),BG&&(Cr["#text"]=!0),m0&&R(Cr,["html","head","body"]),Cr.table&&(R(Cr,["tbody"]),delete pc.tbody),Ee.TRUSTED_TYPES_POLICY){if(typeof Ee.TRUSTED_TYPES_POLICY.createHTML!="function")throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createHTML" hook.');if(typeof Ee.TRUSTED_TYPES_POLICY.createScriptURL!="function")throw v('TRUSTED_TYPES_POLICY configuration option must provide a "createScriptURL" hook.');Dt=Ee.TRUSTED_TYPES_POLICY,pn=Dt.createHTML("")}else Dt===void 0&&(Dt=rt(Tr,Ut)),Dt!==null&&typeof pn=="string"&&(pn=Dt.createHTML(""));r&&r(Ee),Xb=Ee}},HZ=R({},["mi","mo","mn","ms","mtext"]),GZ=R({},["annotation-xml"]),MCe=R({},["title","style","font","a","script"]),WZ=R({},[...w,...I,...N]),jZ=R({},[...B,...H]),LCe=function(Ee){let Mt=ht(Ee);(!Mt||!Mt.tagName)&&(Mt={namespaceURI:Yb,tagName:"template"});let hn=g(Ee.tagName),Uo=g(Mt.tagName);return UG[Ee.namespaceURI]?Ee.namespaceURI===WP?Mt.namespaceURI===Hm?hn==="svg":Mt.namespaceURI===GP?hn==="svg"&&(Uo==="annotation-xml"||HZ[Uo]):!!WZ[hn]:Ee.namespaceURI===GP?Mt.namespaceURI===Hm?hn==="math":Mt.namespaceURI===WP?hn==="math"&&GZ[Uo]:!!jZ[hn]:Ee.namespaceURI===Hm?Mt.namespaceURI===WP&&!GZ[Uo]||Mt.namespaceURI===GP&&!HZ[Uo]?!1:!jZ[hn]&&(MCe[hn]||!WZ[hn]):!!(PS==="application/xhtml+xml"&&UG[Ee.namespaceURI]):!1},ch=function(Ee){p(Xe.removed,{element:Ee});try{ht(Ee).removeChild(Ee)}catch{lt(Ee)}},jP=function(Ee,Mt){try{p(Xe.removed,{attribute:Mt.getAttributeNode(Ee),from:Mt})}catch{p(Xe.removed,{attribute:null,from:Mt})}if(Mt.removeAttribute(Ee),Ee==="is"&&!ho[Ee])if(Wb||zP)try{ch(Mt)}catch{}else try{Mt.setAttribute(Ee,"")}catch{}},qZ=function(Ee){let Mt=null,hn=null;if(FG)Ee="<remove></remove>"+Ee;else{let _a=x(Ee,/^[\r\n\t ]+/);hn=_a&&_a[0]}PS==="application/xhtml+xml"&&Yb===Hm&&(Ee='<html xmlns="http://www.w3.org/1999/xhtml"><head></head><body>'+Ee+"</body></html>");let Uo=Dt?Dt.createHTML(Ee):Ee;if(Yb===Hm)try{Mt=new mc().parseFromString(Uo,PS)}catch{}if(!Mt||!Mt.documentElement){Mt=fo.createDocument(Yb,"template",null);try{Mt.documentElement.innerHTML=VG?pn:Uo}catch{}}let Na=Mt.body||Mt.documentElement;return Ee&&hn&&Na.insertBefore(Qe.createTextNode(hn),Na.childNodes[0]||null),Yb===Hm?Ma.call(Mt,m0?"html":"body")[0]:m0?Mt.documentElement:Na},YZ=function(Ee){return er.call(Ee.ownerDocument||Ee,Ee,ut.SHOW_ELEMENT|ut.SHOW_COMMENT|ut.SHOW_TEXT|ut.SHOW_PROCESSING_INSTRUCTION|ut.SHOW_CDATA_SECTION,null)},XZ=function(Ee){return Ee instanceof cr&&(typeof Ee.nodeName!="string"||typeof Ee.textContent!="string"||typeof Ee.removeChild!="function"||!(Ee.attributes instanceof _o)||typeof Ee.removeAttribute!="function"||typeof Ee.setAttribute!="function"||typeof Ee.namespaceURI!="string"||typeof Ee.insertBefore!="function"||typeof Ee.hasChildNodes!="function")},KZ=function(Ee){return typeof st=="function"&&Ee instanceof st},Gm=function(Ee,Mt,hn){Yn[Ee]&&f(Yn[Ee],Uo=>{Uo.call(Xe,Mt,hn,Xb)})},ZZ=function(Ee){let Mt=null;if(Gm("beforeSanitizeElements",Ee,null),XZ(Ee))return ch(Ee),!0;let hn=qs(Ee.nodeName);if(Gm("uponSanitizeElement",Ee,{tagName:hn,allowedTags:Cr}),Ee.hasChildNodes()&&!KZ(Ee.firstElementChild)&&S(/<[/\w]/g,Ee.innerHTML)&&S(/<[/\w]/g,Ee.textContent)||Ee.nodeType===ke.progressingInstruction||LG&&Ee.nodeType===ke.comment&&S(/<[/\w]/g,Ee.data))return ch(Ee),!0;if(!Cr[hn]||pc[hn]){if(!pc[hn]&&QZ(hn)&&(ai.tagNameCheck instanceof RegExp&&S(ai.tagNameCheck,hn)||ai.tagNameCheck instanceof Function&&ai.tagNameCheck(hn)))return!1;if(BG&&!qb[hn]){let Uo=ht(Ee)||Ee.parentNode,Na=$e(Ee)||Ee.childNodes;if(Na&&Uo){let _a=Na.length;for(let nl=_a-1;nl>=0;--nl){let lh=Be(Na[nl],!0);lh.__removalCount=(Ee.__removalCount||0)+1,Uo.insertBefore(lh,Ye(Ee))}}}return ch(Ee),!0}return Ee instanceof Fi&&!LCe(Ee)||(hn==="noscript"||hn==="noembed"||hn==="noframes")&&S(/<\/no(script|embed|frames)/i,Ee.innerHTML)?(ch(Ee),!0):(h0&&Ee.nodeType===ke.text&&(Mt=Ee.textContent,f([hs,Ar,el],Uo=>{Mt=b(Mt,Uo," ")}),Ee.textContent!==Mt&&(p(Xe.removed,{element:Ee.cloneNode()}),Ee.textContent=Mt)),Gm("afterSanitizeElements",Ee,null),!1)},$Z=function(Ee,Mt,hn){if(NZ&&(Mt==="id"||Mt==="name")&&(hn in Qe||hn in OCe))return!1;if(!(yo&&!Vl[Mt]&&S(go,Mt))){if(!(Bu&&S(kr,Mt))){if(!ho[Mt]||Vl[Mt]){if(!(QZ(Ee)&&(ai.tagNameCheck instanceof RegExp&&S(ai.tagNameCheck,Ee)||ai.tagNameCheck instanceof Function&&ai.tagNameCheck(Ee))&&(ai.attributeNameCheck instanceof RegExp&&S(ai.attributeNameCheck,Mt)||ai.attributeNameCheck instanceof Function&&ai.attributeNameCheck(Mt))||Mt==="is"&&ai.allowCustomizedBuiltInElements&&(ai.tagNameCheck instanceof RegExp&&S(ai.tagNameCheck,hn)||ai.tagNameCheck instanceof Function&&ai.tagNameCheck(hn))))return!1}else if(!kG[Mt]){if(!S(La,b(hn,tl,""))){if(!((Mt==="src"||Mt==="xlink:href"||Mt==="href")&&Ee!=="script"&&T(hn,"data:")===0&&kZ[Ee])){if(!(ku&&!S(Um,b(hn,tl,"")))){if(hn)return!1}}}}}}return!0},QZ=function(Ee){return Ee!=="annotation-xml"&&x(Ee,zm)},JZ=function(Ee){Gm("beforeSanitizeAttributes",Ee,null);let{attributes:Mt}=Ee;if(!Mt)return;let hn={attrName:"",attrValue:"",keepAttr:!0,allowedAttributes:ho},Uo=Mt.length;for(;Uo--;){let Na=Mt[Uo],{name:_a,namespaceURI:nl,value:lh}=Na,RS=qs(_a),_c=_a==="value"?lh:A(lh);if(hn.attrName=RS,hn.attrValue=_c,hn.keepAttr=!0,hn.forceKeepAttr=void 0,Gm("uponSanitizeAttribute",Ee,hn),_c=hn.attrValue,hn.forceKeepAttr||(jP(_a,Ee),!hn.keepAttr))continue;if(!Gb&&S(/\/>/i,_c)){jP(_a,Ee);continue}h0&&f([hs,Ar,el],t$=>{_c=b(_c,t$," ")});let e$=qs(Ee.nodeName);if($Z(e$,RS,_c)){if(FZ&&(RS==="id"||RS==="name")&&(jP(_a,Ee),_c=DCe+_c),LG&&S(/((--!?|])>)|<\/(style|title)/i,_c)){jP(_a,Ee);continue}if(Dt&&typeof Tr=="object"&&typeof Tr.getAttributeType=="function"&&!nl)switch(Tr.getAttributeType(e$,RS)){case"TrustedHTML":{_c=Dt.createHTML(_c);break}case"TrustedScriptURL":{_c=Dt.createScriptURL(_c);break}}try{nl?Ee.setAttributeNS(nl,_a,_c):Ee.setAttribute(_a,_c),XZ(Ee)?ch(Ee):d(Xe.removed)}catch{}}}Gm("afterSanitizeAttributes",Ee,null)},NCe=function Tn(Ee){let Mt=null,hn=YZ(Ee);for(Gm("beforeSanitizeShadowDOM",Ee,null);Mt=hn.nextNode();)Gm("uponSanitizeShadowNode",Mt,null),!ZZ(Mt)&&(Mt.content instanceof Te&&Tn(Mt.content),JZ(Mt));Gm("afterSanitizeShadowDOM",Ee,null)};return Xe.sanitize=function(Tn){let Ee=arguments.length>1&&arguments[1]!==void 0?arguments[1]:{},Mt=null,hn=null,Uo=null,Na=null;if(VG=!Tn,VG&&(Tn="<!-->"),typeof Tn!="string"&&!KZ(Tn))if(typeof Tn.toString=="function"){if(Tn=Tn.toString(),typeof Tn!="string")throw v("dirty is not a string, aborting")}else throw v("toString is not a function");if(!Xe.isSupported)return Tn;if(NG||zG(Ee),Xe.removed=[],typeof Tn=="string"&&(IS=!1),IS){if(Tn.nodeName){let lh=qs(Tn.nodeName);if(!Cr[lh]||pc[lh])throw v("root node is forbidden and cannot be sanitized in-place")}}else if(Tn instanceof st)Mt=qZ("<!---->"),hn=Mt.ownerDocument.importNode(Tn,!0),hn.nodeType===ke.element&&hn.nodeName==="BODY"||hn.nodeName==="HTML"?Mt=hn:Mt.appendChild(hn);else{if(!Wb&&!h0&&!m0&&Tn.indexOf("<")===-1)return Dt&&HP?Dt.createHTML(Tn):Tn;if(Mt=qZ(Tn),!Mt)return Wb?null:HP?pn:""}Mt&&FG&&ch(Mt.firstChild);let _a=YZ(IS?Tn:Mt);for(;Uo=_a.nextNode();)ZZ(Uo)||(Uo.content instanceof Te&&NCe(Uo.content),JZ(Uo));if(IS)return Tn;if(Wb){if(zP)for(Na=Oa.call(Mt.ownerDocument);Mt.firstChild;)Na.appendChild(Mt.firstChild);else Na=Mt;return(ho.shadowroot||ho.shadowrootmode)&&(Na=Jr.call(We,Na,!0)),Na}let nl=m0?Mt.outerHTML:Mt.innerHTML;return m0&&Cr["!doctype"]&&Mt.ownerDocument&&Mt.ownerDocument.doctype&&Mt.ownerDocument.doctype.name&&S(xe,Mt.ownerDocument.doctype.name)&&(nl="<!DOCTYPE "+Mt.ownerDocument.doctype.name+`> +`+nl),h0&&f([hs,Ar,el],lh=>{nl=b(nl,lh," ")}),Dt&&HP?Dt.createHTML(nl):nl},Xe.setConfig=function(){let Tn=arguments.length>0&&arguments[0]!==void 0?arguments[0]:{};zG(Tn),NG=!0},Xe.clearConfig=function(){Xb=null,NG=!1},Xe.isValidAttribute=function(Tn,Ee,Mt){Xb||zG({});let hn=qs(Tn),Uo=qs(Ee);return $Z(hn,Uo,Mt)},Xe.addHook=function(Tn,Ee){typeof Ee=="function"&&(Yn[Tn]=Yn[Tn]||[],p(Yn[Tn],Ee))},Xe.removeHook=function(Tn){if(Yn[Tn])return d(Yn[Tn])},Xe.removeHooks=function(Tn){Yn[Tn]&&(Yn[Tn]=[])},Xe.removeAllHooks=function(){Yn={}},Xe}var Tt=Lt();return Tt})});var Sae=Ul((aSn,Eae)=>{"use strict";Eae.exports=uWe;var Iw=1e20;function uWe(e,t){t||(t={});var n=t.cutoff==null?.25:t.cutoff,i=t.radius==null?8:t.radius,o=t.channel||0,r,s,a,c,u,f,d,p,g,m,x;if(ArrayBuffer.isView(e)||Array.isArray(e)){if(!t.width||!t.height)throw Error("For raw data width and height should be provided by options");r=t.width,s=t.height,c=e,t.stride?f=t.stride:f=Math.floor(e.length/r/s)}else window.HTMLCanvasElement&&e instanceof window.HTMLCanvasElement?(p=e,d=p.getContext("2d"),r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.CanvasRenderingContext2D&&e instanceof window.CanvasRenderingContext2D?(p=e.canvas,d=e,r=p.width,s=p.height,g=d.getImageData(0,0,r,s),c=g.data,f=4):window.ImageData&&e instanceof window.ImageData&&(g=e,r=e.width,s=e.height,c=g.data,f=4);if(a=Math.max(r,s),window.Uint8ClampedArray&&c instanceof window.Uint8ClampedArray||window.Uint8Array&&c instanceof window.Uint8Array)for(u=c,c=Array(r*s),m=0,x=Math.floor(u.length/f);m<x;m++)c[m]=u[m*f+o]/255;else if(f!==1)throw Error("Raw data can have only 1 value per pixel");var b=Array(r*s),T=Array(r*s),A=Array(a),C=Array(a),S=Array(a+1),v=Array(a);for(m=0,x=r*s;m<x;m++){var D=c[m];b[m]=D===1?0:D===0?Iw:Math.pow(Math.max(0,.5-D),2),T[m]=D===1?Iw:D===0?0:Math.pow(Math.max(0,D-.5),2)}Aae(b,r,s,A,C,v,S),Aae(T,r,s,A,C,v,S);var O=window.Float32Array?new Float32Array(r*s):new Array(r*s);for(m=0,x=r*s;m<x;m++)O[m]=Math.min(Math.max(1-((b[m]-T[m])/i+n),0),1);return O}function Aae(e,t,n,i,o,r,s){for(var a=0;a<t;a++){for(var c=0;c<n;c++)i[c]=e[c*t+a];for(Cae(i,o,r,s,n),c=0;c<n;c++)e[c*t+a]=o[c]}for(c=0;c<n;c++){for(a=0;a<t;a++)i[a]=e[c*t+a];for(Cae(i,o,r,s,t),a=0;a<t;a++)e[c*t+a]=Math.sqrt(o[a])}}function Cae(e,t,n,i,o){n[0]=0,i[0]=-Iw,i[1]=+Iw;for(var r=1,s=0;r<o;r++){for(var a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);a<=i[s];)s--,a=(e[r]+r*r-(e[n[s]]+n[s]*n[s]))/(2*r-2*n[s]);s++,n[s]=r,i[s]=a,i[s+1]=+Iw}for(r=0,s=0;r<o;r++){for(;i[s+1]<r;)s++;t[r]=(r-n[s])*(r-n[s])+e[n[s]]}}});var Pae=Ul((ESn,hB)=>{function TWe(){var e=0,t=1,n=2,i=3,o=4,r=5,s=6,a=7,c=8,u=9,f=10,d=11,p=12,g=13,m=14,x=15,b=16,T=17,A=0,C=1,S=2,v=3,D=4;function O(_,E){return 55296<=_.charCodeAt(E)&&_.charCodeAt(E)<=56319&&56320<=_.charCodeAt(E+1)&&_.charCodeAt(E+1)<=57343}function R(_,E){E===void 0&&(E=0);var w=_.charCodeAt(E);if(55296<=w&&w<=56319&&E<_.length-1){var I=w,N=_.charCodeAt(E+1);return 56320<=N&&N<=57343?(I-55296)*1024+(N-56320)+65536:I}if(56320<=w&&w<=57343&&E>=1){var I=_.charCodeAt(E-1),N=w;return 55296<=I&&I<=56319?(I-55296)*1024+(N-56320)+65536:N}return w}function M(_,E,w){var I=[_].concat(E).concat([w]),N=I[I.length-2],B=w,H=I.lastIndexOf(m);if(H>1&&I.slice(1,H).every(function(k){return k==i})&&[i,g,T].indexOf(_)==-1)return S;var V=I.lastIndexOf(o);if(V>0&&I.slice(1,V).every(function(k){return k==o})&&[p,o].indexOf(N)==-1)return I.filter(function(k){return k==o}).length%2==1?v:D;if(N==e&&B==t)return A;if(N==n||N==e||N==t)return B==m&&E.every(function(k){return k==i})?S:C;if(B==n||B==e||B==t)return C;if(N==s&&(B==s||B==a||B==u||B==f))return A;if((N==u||N==a)&&(B==a||B==c))return A;if((N==f||N==c)&&B==c)return A;if(B==i||B==x)return A;if(B==r)return A;if(N==p)return A;var G=I.indexOf(i)!=-1?I.lastIndexOf(i)-1:I.length-2;return[g,T].indexOf(I[G])!=-1&&I.slice(G+1,-1).every(function(k){return k==i})&&B==m||N==x&&[b,T].indexOf(B)!=-1?A:E.indexOf(o)!=-1?S:N==o&&B==o?A:C}this.nextBreak=function(_,E){if(E===void 0&&(E=0),E<0)return 0;if(E>=_.length-1)return _.length;for(var w=L(R(_,E)),I=[],N=E+1;N<_.length;N++)if(!O(_,N-1)){var B=L(R(_,N));if(M(w,I,B))return N;I.push(B)}return _.length},this.splitGraphemes=function(_){for(var E=[],w=0,I;(I=this.nextBreak(_,w))<_.length;)E.push(_.slice(w,I)),w=I;return w<_.length&&E.push(_.slice(w)),E},this.iterateGraphemes=function(_){var E=0,w={next:function(){var I,N;return(N=this.nextBreak(_,E))<_.length?(I=_.slice(E,N),E=N,{value:I,done:!1}):E<_.length?(I=_.slice(E),E=_.length,{value:I,done:!1}):{value:void 0,done:!0}}.bind(this)};return typeof Symbol<"u"&&Symbol.iterator&&(w[Symbol.iterator]=function(){return w}),w},this.countGraphemes=function(_){for(var E=0,w=0,I;(I=this.nextBreak(_,w))<_.length;)w=I,E++;return w<_.length&&E++,E};function L(_){return 1536<=_&&_<=1541||_==1757||_==1807||_==2274||_==3406||_==69821||70082<=_&&_<=70083||_==72250||72326<=_&&_<=72329||_==73030?p:_==13?e:_==10?t:0<=_&&_<=9||11<=_&&_<=12||14<=_&&_<=31||127<=_&&_<=159||_==173||_==1564||_==6158||_==8203||8206<=_&&_<=8207||_==8232||_==8233||8234<=_&&_<=8238||8288<=_&&_<=8292||_==8293||8294<=_&&_<=8303||55296<=_&&_<=57343||_==65279||65520<=_&&_<=65528||65529<=_&&_<=65531||113824<=_&&_<=113827||119155<=_&&_<=119162||_==917504||_==917505||917506<=_&&_<=917535||917632<=_&&_<=917759||918e3<=_&&_<=921599?n:768<=_&&_<=879||1155<=_&&_<=1159||1160<=_&&_<=1161||1425<=_&&_<=1469||_==1471||1473<=_&&_<=1474||1476<=_&&_<=1477||_==1479||1552<=_&&_<=1562||1611<=_&&_<=1631||_==1648||1750<=_&&_<=1756||1759<=_&&_<=1764||1767<=_&&_<=1768||1770<=_&&_<=1773||_==1809||1840<=_&&_<=1866||1958<=_&&_<=1968||2027<=_&&_<=2035||2070<=_&&_<=2073||2075<=_&&_<=2083||2085<=_&&_<=2087||2089<=_&&_<=2093||2137<=_&&_<=2139||2260<=_&&_<=2273||2275<=_&&_<=2306||_==2362||_==2364||2369<=_&&_<=2376||_==2381||2385<=_&&_<=2391||2402<=_&&_<=2403||_==2433||_==2492||_==2494||2497<=_&&_<=2500||_==2509||_==2519||2530<=_&&_<=2531||2561<=_&&_<=2562||_==2620||2625<=_&&_<=2626||2631<=_&&_<=2632||2635<=_&&_<=2637||_==2641||2672<=_&&_<=2673||_==2677||2689<=_&&_<=2690||_==2748||2753<=_&&_<=2757||2759<=_&&_<=2760||_==2765||2786<=_&&_<=2787||2810<=_&&_<=2815||_==2817||_==2876||_==2878||_==2879||2881<=_&&_<=2884||_==2893||_==2902||_==2903||2914<=_&&_<=2915||_==2946||_==3006||_==3008||_==3021||_==3031||_==3072||3134<=_&&_<=3136||3142<=_&&_<=3144||3146<=_&&_<=3149||3157<=_&&_<=3158||3170<=_&&_<=3171||_==3201||_==3260||_==3263||_==3266||_==3270||3276<=_&&_<=3277||3285<=_&&_<=3286||3298<=_&&_<=3299||3328<=_&&_<=3329||3387<=_&&_<=3388||_==3390||3393<=_&&_<=3396||_==3405||_==3415||3426<=_&&_<=3427||_==3530||_==3535||3538<=_&&_<=3540||_==3542||_==3551||_==3633||3636<=_&&_<=3642||3655<=_&&_<=3662||_==3761||3764<=_&&_<=3769||3771<=_&&_<=3772||3784<=_&&_<=3789||3864<=_&&_<=3865||_==3893||_==3895||_==3897||3953<=_&&_<=3966||3968<=_&&_<=3972||3974<=_&&_<=3975||3981<=_&&_<=3991||3993<=_&&_<=4028||_==4038||4141<=_&&_<=4144||4146<=_&&_<=4151||4153<=_&&_<=4154||4157<=_&&_<=4158||4184<=_&&_<=4185||4190<=_&&_<=4192||4209<=_&&_<=4212||_==4226||4229<=_&&_<=4230||_==4237||_==4253||4957<=_&&_<=4959||5906<=_&&_<=5908||5938<=_&&_<=5940||5970<=_&&_<=5971||6002<=_&&_<=6003||6068<=_&&_<=6069||6071<=_&&_<=6077||_==6086||6089<=_&&_<=6099||_==6109||6155<=_&&_<=6157||6277<=_&&_<=6278||_==6313||6432<=_&&_<=6434||6439<=_&&_<=6440||_==6450||6457<=_&&_<=6459||6679<=_&&_<=6680||_==6683||_==6742||6744<=_&&_<=6750||_==6752||_==6754||6757<=_&&_<=6764||6771<=_&&_<=6780||_==6783||6832<=_&&_<=6845||_==6846||6912<=_&&_<=6915||_==6964||6966<=_&&_<=6970||_==6972||_==6978||7019<=_&&_<=7027||7040<=_&&_<=7041||7074<=_&&_<=7077||7080<=_&&_<=7081||7083<=_&&_<=7085||_==7142||7144<=_&&_<=7145||_==7149||7151<=_&&_<=7153||7212<=_&&_<=7219||7222<=_&&_<=7223||7376<=_&&_<=7378||7380<=_&&_<=7392||7394<=_&&_<=7400||_==7405||_==7412||7416<=_&&_<=7417||7616<=_&&_<=7673||7675<=_&&_<=7679||_==8204||8400<=_&&_<=8412||8413<=_&&_<=8416||_==8417||8418<=_&&_<=8420||8421<=_&&_<=8432||11503<=_&&_<=11505||_==11647||11744<=_&&_<=11775||12330<=_&&_<=12333||12334<=_&&_<=12335||12441<=_&&_<=12442||_==42607||42608<=_&&_<=42610||42612<=_&&_<=42621||42654<=_&&_<=42655||42736<=_&&_<=42737||_==43010||_==43014||_==43019||43045<=_&&_<=43046||43204<=_&&_<=43205||43232<=_&&_<=43249||43302<=_&&_<=43309||43335<=_&&_<=43345||43392<=_&&_<=43394||_==43443||43446<=_&&_<=43449||_==43452||_==43493||43561<=_&&_<=43566||43569<=_&&_<=43570||43573<=_&&_<=43574||_==43587||_==43596||_==43644||_==43696||43698<=_&&_<=43700||43703<=_&&_<=43704||43710<=_&&_<=43711||_==43713||43756<=_&&_<=43757||_==43766||_==44005||_==44008||_==44013||_==64286||65024<=_&&_<=65039||65056<=_&&_<=65071||65438<=_&&_<=65439||_==66045||_==66272||66422<=_&&_<=66426||68097<=_&&_<=68099||68101<=_&&_<=68102||68108<=_&&_<=68111||68152<=_&&_<=68154||_==68159||68325<=_&&_<=68326||_==69633||69688<=_&&_<=69702||69759<=_&&_<=69761||69811<=_&&_<=69814||69817<=_&&_<=69818||69888<=_&&_<=69890||69927<=_&&_<=69931||69933<=_&&_<=69940||_==70003||70016<=_&&_<=70017||70070<=_&&_<=70078||70090<=_&&_<=70092||70191<=_&&_<=70193||_==70196||70198<=_&&_<=70199||_==70206||_==70367||70371<=_&&_<=70378||70400<=_&&_<=70401||_==70460||_==70462||_==70464||_==70487||70502<=_&&_<=70508||70512<=_&&_<=70516||70712<=_&&_<=70719||70722<=_&&_<=70724||_==70726||_==70832||70835<=_&&_<=70840||_==70842||_==70845||70847<=_&&_<=70848||70850<=_&&_<=70851||_==71087||71090<=_&&_<=71093||71100<=_&&_<=71101||71103<=_&&_<=71104||71132<=_&&_<=71133||71219<=_&&_<=71226||_==71229||71231<=_&&_<=71232||_==71339||_==71341||71344<=_&&_<=71349||_==71351||71453<=_&&_<=71455||71458<=_&&_<=71461||71463<=_&&_<=71467||72193<=_&&_<=72198||72201<=_&&_<=72202||72243<=_&&_<=72248||72251<=_&&_<=72254||_==72263||72273<=_&&_<=72278||72281<=_&&_<=72283||72330<=_&&_<=72342||72344<=_&&_<=72345||72752<=_&&_<=72758||72760<=_&&_<=72765||_==72767||72850<=_&&_<=72871||72874<=_&&_<=72880||72882<=_&&_<=72883||72885<=_&&_<=72886||73009<=_&&_<=73014||_==73018||73020<=_&&_<=73021||73023<=_&&_<=73029||_==73031||92912<=_&&_<=92916||92976<=_&&_<=92982||94095<=_&&_<=94098||113821<=_&&_<=113822||_==119141||119143<=_&&_<=119145||119150<=_&&_<=119154||119163<=_&&_<=119170||119173<=_&&_<=119179||119210<=_&&_<=119213||119362<=_&&_<=119364||121344<=_&&_<=121398||121403<=_&&_<=121452||_==121461||_==121476||121499<=_&&_<=121503||121505<=_&&_<=121519||122880<=_&&_<=122886||122888<=_&&_<=122904||122907<=_&&_<=122913||122915<=_&&_<=122916||122918<=_&&_<=122922||125136<=_&&_<=125142||125252<=_&&_<=125258||917536<=_&&_<=917631||917760<=_&&_<=917999?i:127462<=_&&_<=127487?o:_==2307||_==2363||2366<=_&&_<=2368||2377<=_&&_<=2380||2382<=_&&_<=2383||2434<=_&&_<=2435||2495<=_&&_<=2496||2503<=_&&_<=2504||2507<=_&&_<=2508||_==2563||2622<=_&&_<=2624||_==2691||2750<=_&&_<=2752||_==2761||2763<=_&&_<=2764||2818<=_&&_<=2819||_==2880||2887<=_&&_<=2888||2891<=_&&_<=2892||_==3007||3009<=_&&_<=3010||3014<=_&&_<=3016||3018<=_&&_<=3020||3073<=_&&_<=3075||3137<=_&&_<=3140||3202<=_&&_<=3203||_==3262||3264<=_&&_<=3265||3267<=_&&_<=3268||3271<=_&&_<=3272||3274<=_&&_<=3275||3330<=_&&_<=3331||3391<=_&&_<=3392||3398<=_&&_<=3400||3402<=_&&_<=3404||3458<=_&&_<=3459||3536<=_&&_<=3537||3544<=_&&_<=3550||3570<=_&&_<=3571||_==3635||_==3763||3902<=_&&_<=3903||_==3967||_==4145||4155<=_&&_<=4156||4182<=_&&_<=4183||_==4228||_==6070||6078<=_&&_<=6085||6087<=_&&_<=6088||6435<=_&&_<=6438||6441<=_&&_<=6443||6448<=_&&_<=6449||6451<=_&&_<=6456||6681<=_&&_<=6682||_==6741||_==6743||6765<=_&&_<=6770||_==6916||_==6965||_==6971||6973<=_&&_<=6977||6979<=_&&_<=6980||_==7042||_==7073||7078<=_&&_<=7079||_==7082||_==7143||7146<=_&&_<=7148||_==7150||7154<=_&&_<=7155||7204<=_&&_<=7211||7220<=_&&_<=7221||_==7393||7410<=_&&_<=7411||_==7415||43043<=_&&_<=43044||_==43047||43136<=_&&_<=43137||43188<=_&&_<=43203||43346<=_&&_<=43347||_==43395||43444<=_&&_<=43445||43450<=_&&_<=43451||43453<=_&&_<=43456||43567<=_&&_<=43568||43571<=_&&_<=43572||_==43597||_==43755||43758<=_&&_<=43759||_==43765||44003<=_&&_<=44004||44006<=_&&_<=44007||44009<=_&&_<=44010||_==44012||_==69632||_==69634||_==69762||69808<=_&&_<=69810||69815<=_&&_<=69816||_==69932||_==70018||70067<=_&&_<=70069||70079<=_&&_<=70080||70188<=_&&_<=70190||70194<=_&&_<=70195||_==70197||70368<=_&&_<=70370||70402<=_&&_<=70403||_==70463||70465<=_&&_<=70468||70471<=_&&_<=70472||70475<=_&&_<=70477||70498<=_&&_<=70499||70709<=_&&_<=70711||70720<=_&&_<=70721||_==70725||70833<=_&&_<=70834||_==70841||70843<=_&&_<=70844||_==70846||_==70849||71088<=_&&_<=71089||71096<=_&&_<=71099||_==71102||71216<=_&&_<=71218||71227<=_&&_<=71228||_==71230||_==71340||71342<=_&&_<=71343||_==71350||71456<=_&&_<=71457||_==71462||72199<=_&&_<=72200||_==72249||72279<=_&&_<=72280||_==72343||_==72751||_==72766||_==72873||_==72881||_==72884||94033<=_&&_<=94078||_==119142||_==119149?r:4352<=_&&_<=4447||43360<=_&&_<=43388?s:4448<=_&&_<=4519||55216<=_&&_<=55238?a:4520<=_&&_<=4607||55243<=_&&_<=55291?c:_==44032||_==44060||_==44088||_==44116||_==44144||_==44172||_==44200||_==44228||_==44256||_==44284||_==44312||_==44340||_==44368||_==44396||_==44424||_==44452||_==44480||_==44508||_==44536||_==44564||_==44592||_==44620||_==44648||_==44676||_==44704||_==44732||_==44760||_==44788||_==44816||_==44844||_==44872||_==44900||_==44928||_==44956||_==44984||_==45012||_==45040||_==45068||_==45096||_==45124||_==45152||_==45180||_==45208||_==45236||_==45264||_==45292||_==45320||_==45348||_==45376||_==45404||_==45432||_==45460||_==45488||_==45516||_==45544||_==45572||_==45600||_==45628||_==45656||_==45684||_==45712||_==45740||_==45768||_==45796||_==45824||_==45852||_==45880||_==45908||_==45936||_==45964||_==45992||_==46020||_==46048||_==46076||_==46104||_==46132||_==46160||_==46188||_==46216||_==46244||_==46272||_==46300||_==46328||_==46356||_==46384||_==46412||_==46440||_==46468||_==46496||_==46524||_==46552||_==46580||_==46608||_==46636||_==46664||_==46692||_==46720||_==46748||_==46776||_==46804||_==46832||_==46860||_==46888||_==46916||_==46944||_==46972||_==47e3||_==47028||_==47056||_==47084||_==47112||_==47140||_==47168||_==47196||_==47224||_==47252||_==47280||_==47308||_==47336||_==47364||_==47392||_==47420||_==47448||_==47476||_==47504||_==47532||_==47560||_==47588||_==47616||_==47644||_==47672||_==47700||_==47728||_==47756||_==47784||_==47812||_==47840||_==47868||_==47896||_==47924||_==47952||_==47980||_==48008||_==48036||_==48064||_==48092||_==48120||_==48148||_==48176||_==48204||_==48232||_==48260||_==48288||_==48316||_==48344||_==48372||_==48400||_==48428||_==48456||_==48484||_==48512||_==48540||_==48568||_==48596||_==48624||_==48652||_==48680||_==48708||_==48736||_==48764||_==48792||_==48820||_==48848||_==48876||_==48904||_==48932||_==48960||_==48988||_==49016||_==49044||_==49072||_==49100||_==49128||_==49156||_==49184||_==49212||_==49240||_==49268||_==49296||_==49324||_==49352||_==49380||_==49408||_==49436||_==49464||_==49492||_==49520||_==49548||_==49576||_==49604||_==49632||_==49660||_==49688||_==49716||_==49744||_==49772||_==49800||_==49828||_==49856||_==49884||_==49912||_==49940||_==49968||_==49996||_==50024||_==50052||_==50080||_==50108||_==50136||_==50164||_==50192||_==50220||_==50248||_==50276||_==50304||_==50332||_==50360||_==50388||_==50416||_==50444||_==50472||_==50500||_==50528||_==50556||_==50584||_==50612||_==50640||_==50668||_==50696||_==50724||_==50752||_==50780||_==50808||_==50836||_==50864||_==50892||_==50920||_==50948||_==50976||_==51004||_==51032||_==51060||_==51088||_==51116||_==51144||_==51172||_==51200||_==51228||_==51256||_==51284||_==51312||_==51340||_==51368||_==51396||_==51424||_==51452||_==51480||_==51508||_==51536||_==51564||_==51592||_==51620||_==51648||_==51676||_==51704||_==51732||_==51760||_==51788||_==51816||_==51844||_==51872||_==51900||_==51928||_==51956||_==51984||_==52012||_==52040||_==52068||_==52096||_==52124||_==52152||_==52180||_==52208||_==52236||_==52264||_==52292||_==52320||_==52348||_==52376||_==52404||_==52432||_==52460||_==52488||_==52516||_==52544||_==52572||_==52600||_==52628||_==52656||_==52684||_==52712||_==52740||_==52768||_==52796||_==52824||_==52852||_==52880||_==52908||_==52936||_==52964||_==52992||_==53020||_==53048||_==53076||_==53104||_==53132||_==53160||_==53188||_==53216||_==53244||_==53272||_==53300||_==53328||_==53356||_==53384||_==53412||_==53440||_==53468||_==53496||_==53524||_==53552||_==53580||_==53608||_==53636||_==53664||_==53692||_==53720||_==53748||_==53776||_==53804||_==53832||_==53860||_==53888||_==53916||_==53944||_==53972||_==54e3||_==54028||_==54056||_==54084||_==54112||_==54140||_==54168||_==54196||_==54224||_==54252||_==54280||_==54308||_==54336||_==54364||_==54392||_==54420||_==54448||_==54476||_==54504||_==54532||_==54560||_==54588||_==54616||_==54644||_==54672||_==54700||_==54728||_==54756||_==54784||_==54812||_==54840||_==54868||_==54896||_==54924||_==54952||_==54980||_==55008||_==55036||_==55064||_==55092||_==55120||_==55148||_==55176?u:44033<=_&&_<=44059||44061<=_&&_<=44087||44089<=_&&_<=44115||44117<=_&&_<=44143||44145<=_&&_<=44171||44173<=_&&_<=44199||44201<=_&&_<=44227||44229<=_&&_<=44255||44257<=_&&_<=44283||44285<=_&&_<=44311||44313<=_&&_<=44339||44341<=_&&_<=44367||44369<=_&&_<=44395||44397<=_&&_<=44423||44425<=_&&_<=44451||44453<=_&&_<=44479||44481<=_&&_<=44507||44509<=_&&_<=44535||44537<=_&&_<=44563||44565<=_&&_<=44591||44593<=_&&_<=44619||44621<=_&&_<=44647||44649<=_&&_<=44675||44677<=_&&_<=44703||44705<=_&&_<=44731||44733<=_&&_<=44759||44761<=_&&_<=44787||44789<=_&&_<=44815||44817<=_&&_<=44843||44845<=_&&_<=44871||44873<=_&&_<=44899||44901<=_&&_<=44927||44929<=_&&_<=44955||44957<=_&&_<=44983||44985<=_&&_<=45011||45013<=_&&_<=45039||45041<=_&&_<=45067||45069<=_&&_<=45095||45097<=_&&_<=45123||45125<=_&&_<=45151||45153<=_&&_<=45179||45181<=_&&_<=45207||45209<=_&&_<=45235||45237<=_&&_<=45263||45265<=_&&_<=45291||45293<=_&&_<=45319||45321<=_&&_<=45347||45349<=_&&_<=45375||45377<=_&&_<=45403||45405<=_&&_<=45431||45433<=_&&_<=45459||45461<=_&&_<=45487||45489<=_&&_<=45515||45517<=_&&_<=45543||45545<=_&&_<=45571||45573<=_&&_<=45599||45601<=_&&_<=45627||45629<=_&&_<=45655||45657<=_&&_<=45683||45685<=_&&_<=45711||45713<=_&&_<=45739||45741<=_&&_<=45767||45769<=_&&_<=45795||45797<=_&&_<=45823||45825<=_&&_<=45851||45853<=_&&_<=45879||45881<=_&&_<=45907||45909<=_&&_<=45935||45937<=_&&_<=45963||45965<=_&&_<=45991||45993<=_&&_<=46019||46021<=_&&_<=46047||46049<=_&&_<=46075||46077<=_&&_<=46103||46105<=_&&_<=46131||46133<=_&&_<=46159||46161<=_&&_<=46187||46189<=_&&_<=46215||46217<=_&&_<=46243||46245<=_&&_<=46271||46273<=_&&_<=46299||46301<=_&&_<=46327||46329<=_&&_<=46355||46357<=_&&_<=46383||46385<=_&&_<=46411||46413<=_&&_<=46439||46441<=_&&_<=46467||46469<=_&&_<=46495||46497<=_&&_<=46523||46525<=_&&_<=46551||46553<=_&&_<=46579||46581<=_&&_<=46607||46609<=_&&_<=46635||46637<=_&&_<=46663||46665<=_&&_<=46691||46693<=_&&_<=46719||46721<=_&&_<=46747||46749<=_&&_<=46775||46777<=_&&_<=46803||46805<=_&&_<=46831||46833<=_&&_<=46859||46861<=_&&_<=46887||46889<=_&&_<=46915||46917<=_&&_<=46943||46945<=_&&_<=46971||46973<=_&&_<=46999||47001<=_&&_<=47027||47029<=_&&_<=47055||47057<=_&&_<=47083||47085<=_&&_<=47111||47113<=_&&_<=47139||47141<=_&&_<=47167||47169<=_&&_<=47195||47197<=_&&_<=47223||47225<=_&&_<=47251||47253<=_&&_<=47279||47281<=_&&_<=47307||47309<=_&&_<=47335||47337<=_&&_<=47363||47365<=_&&_<=47391||47393<=_&&_<=47419||47421<=_&&_<=47447||47449<=_&&_<=47475||47477<=_&&_<=47503||47505<=_&&_<=47531||47533<=_&&_<=47559||47561<=_&&_<=47587||47589<=_&&_<=47615||47617<=_&&_<=47643||47645<=_&&_<=47671||47673<=_&&_<=47699||47701<=_&&_<=47727||47729<=_&&_<=47755||47757<=_&&_<=47783||47785<=_&&_<=47811||47813<=_&&_<=47839||47841<=_&&_<=47867||47869<=_&&_<=47895||47897<=_&&_<=47923||47925<=_&&_<=47951||47953<=_&&_<=47979||47981<=_&&_<=48007||48009<=_&&_<=48035||48037<=_&&_<=48063||48065<=_&&_<=48091||48093<=_&&_<=48119||48121<=_&&_<=48147||48149<=_&&_<=48175||48177<=_&&_<=48203||48205<=_&&_<=48231||48233<=_&&_<=48259||48261<=_&&_<=48287||48289<=_&&_<=48315||48317<=_&&_<=48343||48345<=_&&_<=48371||48373<=_&&_<=48399||48401<=_&&_<=48427||48429<=_&&_<=48455||48457<=_&&_<=48483||48485<=_&&_<=48511||48513<=_&&_<=48539||48541<=_&&_<=48567||48569<=_&&_<=48595||48597<=_&&_<=48623||48625<=_&&_<=48651||48653<=_&&_<=48679||48681<=_&&_<=48707||48709<=_&&_<=48735||48737<=_&&_<=48763||48765<=_&&_<=48791||48793<=_&&_<=48819||48821<=_&&_<=48847||48849<=_&&_<=48875||48877<=_&&_<=48903||48905<=_&&_<=48931||48933<=_&&_<=48959||48961<=_&&_<=48987||48989<=_&&_<=49015||49017<=_&&_<=49043||49045<=_&&_<=49071||49073<=_&&_<=49099||49101<=_&&_<=49127||49129<=_&&_<=49155||49157<=_&&_<=49183||49185<=_&&_<=49211||49213<=_&&_<=49239||49241<=_&&_<=49267||49269<=_&&_<=49295||49297<=_&&_<=49323||49325<=_&&_<=49351||49353<=_&&_<=49379||49381<=_&&_<=49407||49409<=_&&_<=49435||49437<=_&&_<=49463||49465<=_&&_<=49491||49493<=_&&_<=49519||49521<=_&&_<=49547||49549<=_&&_<=49575||49577<=_&&_<=49603||49605<=_&&_<=49631||49633<=_&&_<=49659||49661<=_&&_<=49687||49689<=_&&_<=49715||49717<=_&&_<=49743||49745<=_&&_<=49771||49773<=_&&_<=49799||49801<=_&&_<=49827||49829<=_&&_<=49855||49857<=_&&_<=49883||49885<=_&&_<=49911||49913<=_&&_<=49939||49941<=_&&_<=49967||49969<=_&&_<=49995||49997<=_&&_<=50023||50025<=_&&_<=50051||50053<=_&&_<=50079||50081<=_&&_<=50107||50109<=_&&_<=50135||50137<=_&&_<=50163||50165<=_&&_<=50191||50193<=_&&_<=50219||50221<=_&&_<=50247||50249<=_&&_<=50275||50277<=_&&_<=50303||50305<=_&&_<=50331||50333<=_&&_<=50359||50361<=_&&_<=50387||50389<=_&&_<=50415||50417<=_&&_<=50443||50445<=_&&_<=50471||50473<=_&&_<=50499||50501<=_&&_<=50527||50529<=_&&_<=50555||50557<=_&&_<=50583||50585<=_&&_<=50611||50613<=_&&_<=50639||50641<=_&&_<=50667||50669<=_&&_<=50695||50697<=_&&_<=50723||50725<=_&&_<=50751||50753<=_&&_<=50779||50781<=_&&_<=50807||50809<=_&&_<=50835||50837<=_&&_<=50863||50865<=_&&_<=50891||50893<=_&&_<=50919||50921<=_&&_<=50947||50949<=_&&_<=50975||50977<=_&&_<=51003||51005<=_&&_<=51031||51033<=_&&_<=51059||51061<=_&&_<=51087||51089<=_&&_<=51115||51117<=_&&_<=51143||51145<=_&&_<=51171||51173<=_&&_<=51199||51201<=_&&_<=51227||51229<=_&&_<=51255||51257<=_&&_<=51283||51285<=_&&_<=51311||51313<=_&&_<=51339||51341<=_&&_<=51367||51369<=_&&_<=51395||51397<=_&&_<=51423||51425<=_&&_<=51451||51453<=_&&_<=51479||51481<=_&&_<=51507||51509<=_&&_<=51535||51537<=_&&_<=51563||51565<=_&&_<=51591||51593<=_&&_<=51619||51621<=_&&_<=51647||51649<=_&&_<=51675||51677<=_&&_<=51703||51705<=_&&_<=51731||51733<=_&&_<=51759||51761<=_&&_<=51787||51789<=_&&_<=51815||51817<=_&&_<=51843||51845<=_&&_<=51871||51873<=_&&_<=51899||51901<=_&&_<=51927||51929<=_&&_<=51955||51957<=_&&_<=51983||51985<=_&&_<=52011||52013<=_&&_<=52039||52041<=_&&_<=52067||52069<=_&&_<=52095||52097<=_&&_<=52123||52125<=_&&_<=52151||52153<=_&&_<=52179||52181<=_&&_<=52207||52209<=_&&_<=52235||52237<=_&&_<=52263||52265<=_&&_<=52291||52293<=_&&_<=52319||52321<=_&&_<=52347||52349<=_&&_<=52375||52377<=_&&_<=52403||52405<=_&&_<=52431||52433<=_&&_<=52459||52461<=_&&_<=52487||52489<=_&&_<=52515||52517<=_&&_<=52543||52545<=_&&_<=52571||52573<=_&&_<=52599||52601<=_&&_<=52627||52629<=_&&_<=52655||52657<=_&&_<=52683||52685<=_&&_<=52711||52713<=_&&_<=52739||52741<=_&&_<=52767||52769<=_&&_<=52795||52797<=_&&_<=52823||52825<=_&&_<=52851||52853<=_&&_<=52879||52881<=_&&_<=52907||52909<=_&&_<=52935||52937<=_&&_<=52963||52965<=_&&_<=52991||52993<=_&&_<=53019||53021<=_&&_<=53047||53049<=_&&_<=53075||53077<=_&&_<=53103||53105<=_&&_<=53131||53133<=_&&_<=53159||53161<=_&&_<=53187||53189<=_&&_<=53215||53217<=_&&_<=53243||53245<=_&&_<=53271||53273<=_&&_<=53299||53301<=_&&_<=53327||53329<=_&&_<=53355||53357<=_&&_<=53383||53385<=_&&_<=53411||53413<=_&&_<=53439||53441<=_&&_<=53467||53469<=_&&_<=53495||53497<=_&&_<=53523||53525<=_&&_<=53551||53553<=_&&_<=53579||53581<=_&&_<=53607||53609<=_&&_<=53635||53637<=_&&_<=53663||53665<=_&&_<=53691||53693<=_&&_<=53719||53721<=_&&_<=53747||53749<=_&&_<=53775||53777<=_&&_<=53803||53805<=_&&_<=53831||53833<=_&&_<=53859||53861<=_&&_<=53887||53889<=_&&_<=53915||53917<=_&&_<=53943||53945<=_&&_<=53971||53973<=_&&_<=53999||54001<=_&&_<=54027||54029<=_&&_<=54055||54057<=_&&_<=54083||54085<=_&&_<=54111||54113<=_&&_<=54139||54141<=_&&_<=54167||54169<=_&&_<=54195||54197<=_&&_<=54223||54225<=_&&_<=54251||54253<=_&&_<=54279||54281<=_&&_<=54307||54309<=_&&_<=54335||54337<=_&&_<=54363||54365<=_&&_<=54391||54393<=_&&_<=54419||54421<=_&&_<=54447||54449<=_&&_<=54475||54477<=_&&_<=54503||54505<=_&&_<=54531||54533<=_&&_<=54559||54561<=_&&_<=54587||54589<=_&&_<=54615||54617<=_&&_<=54643||54645<=_&&_<=54671||54673<=_&&_<=54699||54701<=_&&_<=54727||54729<=_&&_<=54755||54757<=_&&_<=54783||54785<=_&&_<=54811||54813<=_&&_<=54839||54841<=_&&_<=54867||54869<=_&&_<=54895||54897<=_&&_<=54923||54925<=_&&_<=54951||54953<=_&&_<=54979||54981<=_&&_<=55007||55009<=_&&_<=55035||55037<=_&&_<=55063||55065<=_&&_<=55091||55093<=_&&_<=55119||55121<=_&&_<=55147||55149<=_&&_<=55175||55177<=_&&_<=55203?f:_==9757||_==9977||9994<=_&&_<=9997||_==127877||127938<=_&&_<=127940||_==127943||127946<=_&&_<=127948||128066<=_&&_<=128067||128070<=_&&_<=128080||_==128110||128112<=_&&_<=128120||_==128124||128129<=_&&_<=128131||128133<=_&&_<=128135||_==128170||128372<=_&&_<=128373||_==128378||_==128400||128405<=_&&_<=128406||128581<=_&&_<=128583||128587<=_&&_<=128591||_==128675||128692<=_&&_<=128694||_==128704||_==128716||129304<=_&&_<=129308||129310<=_&&_<=129311||_==129318||129328<=_&&_<=129337||129341<=_&&_<=129342||129489<=_&&_<=129501?g:127995<=_&&_<=127999?m:_==8205?x:_==9792||_==9794||9877<=_&&_<=9878||_==9992||_==10084||_==127752||_==127806||_==127859||_==127891||_==127908||_==127912||_==127979||_==127981||_==128139||128187<=_&&_<=128188||_==128295||_==128300||_==128488||_==128640||_==128658?b:128102<=_&&_<=128105?T:d}return this}typeof hB<"u"&&hB.exports&&(hB.exports=TWe)});var yde=Ul((C7,E7)=>{(function(e,t){typeof C7=="object"&&typeof E7<"u"?E7.exports=t():typeof define=="function"&&define.amd?define(t):(e=e||self).RBush=t()})(C7,function(){"use strict";function e(b,T,A,C,S){(function v(D,O,R,M,L){for(;M>R;){if(M-R>600){var _=M-R+1,E=O-R+1,w=Math.log(_),I=.5*Math.exp(2*w/3),N=.5*Math.sqrt(w*I*(_-I)/_)*(E-_/2<0?-1:1),B=Math.max(R,Math.floor(O-E*I/_+N)),H=Math.min(M,Math.floor(O+(_-E)*I/_+N));v(D,O,B,H,L)}var V=D[O],G=R,k=M;for(t(D,R,O),L(D[M],V)>0&&t(D,R,M);G<k;){for(t(D,G,k),G++,k--;L(D[G],V)<0;)G++;for(;L(D[k],V)>0;)k--}L(D[R],V)===0?t(D,R,k):t(D,++k,M),k<=O&&(R=k+1),O<=k&&(M=k-1)}})(b,T,A||0,C||b.length-1,S||n)}function t(b,T,A){var C=b[T];b[T]=b[A],b[A]=C}function n(b,T){return b<T?-1:b>T?1:0}var i=function(b){b===void 0&&(b=9),this._maxEntries=Math.max(4,b),this._minEntries=Math.max(2,Math.ceil(.4*this._maxEntries)),this.clear()};function o(b,T,A){if(!A)return T.indexOf(b);for(var C=0;C<T.length;C++)if(A(b,T[C]))return C;return-1}function r(b,T){s(b,0,b.children.length,T,b)}function s(b,T,A,C,S){S||(S=m(null)),S.minX=1/0,S.minY=1/0,S.maxX=-1/0,S.maxY=-1/0;for(var v=T;v<A;v++){var D=b.children[v];a(S,b.leaf?C(D):D)}return S}function a(b,T){return b.minX=Math.min(b.minX,T.minX),b.minY=Math.min(b.minY,T.minY),b.maxX=Math.max(b.maxX,T.maxX),b.maxY=Math.max(b.maxY,T.maxY),b}function c(b,T){return b.minX-T.minX}function u(b,T){return b.minY-T.minY}function f(b){return(b.maxX-b.minX)*(b.maxY-b.minY)}function d(b){return b.maxX-b.minX+(b.maxY-b.minY)}function p(b,T){return b.minX<=T.minX&&b.minY<=T.minY&&T.maxX<=b.maxX&&T.maxY<=b.maxY}function g(b,T){return T.minX<=b.maxX&&T.minY<=b.maxY&&T.maxX>=b.minX&&T.maxY>=b.minY}function m(b){return{children:b,height:1,leaf:!0,minX:1/0,minY:1/0,maxX:-1/0,maxY:-1/0}}function x(b,T,A,C,S){for(var v=[T,A];v.length;)if(!((A=v.pop())-(T=v.pop())<=C)){var D=T+Math.ceil((A-T)/C/2)*C;e(b,D,T,A,S),v.push(T,D,D,A)}}return i.prototype.all=function(){return this._all(this.data,[])},i.prototype.search=function(b){var T=this.data,A=[];if(!g(b,T))return A;for(var C=this.toBBox,S=[];T;){for(var v=0;v<T.children.length;v++){var D=T.children[v],O=T.leaf?C(D):D;g(b,O)&&(T.leaf?A.push(D):p(b,O)?this._all(D,A):S.push(D))}T=S.pop()}return A},i.prototype.collides=function(b){var T=this.data;if(!g(b,T))return!1;for(var A=[];T;){for(var C=0;C<T.children.length;C++){var S=T.children[C],v=T.leaf?this.toBBox(S):S;if(g(b,v)){if(T.leaf||p(b,v))return!0;A.push(S)}}T=A.pop()}return!1},i.prototype.load=function(b){if(!b||!b.length)return this;if(b.length<this._minEntries){for(var T=0;T<b.length;T++)this.insert(b[T]);return this}var A=this._build(b.slice(),0,b.length-1,0);if(this.data.children.length)if(this.data.height===A.height)this._splitRoot(this.data,A);else{if(this.data.height<A.height){var C=this.data;this.data=A,A=C}this._insert(A,this.data.height-A.height-1,!0)}else this.data=A;return this},i.prototype.insert=function(b){return b&&this._insert(b,this.data.height-1),this},i.prototype.clear=function(){return this.data=m([]),this},i.prototype.remove=function(b,T){if(!b)return this;for(var A,C,S,v=this.data,D=this.toBBox(b),O=[],R=[];v||O.length;){if(v||(v=O.pop(),C=O[O.length-1],A=R.pop(),S=!0),v.leaf){var M=o(b,v.children,T);if(M!==-1)return v.children.splice(M,1),O.push(v),this._condense(O),this}S||v.leaf||!p(v,D)?C?(A++,v=C.children[A],S=!1):v=null:(O.push(v),R.push(A),A=0,C=v,v=v.children[0])}return this},i.prototype.toBBox=function(b){return b},i.prototype.compareMinX=function(b,T){return b.minX-T.minX},i.prototype.compareMinY=function(b,T){return b.minY-T.minY},i.prototype.toJSON=function(){return this.data},i.prototype.fromJSON=function(b){return this.data=b,this},i.prototype._all=function(b,T){for(var A=[];b;)b.leaf?T.push.apply(T,b.children):A.push.apply(A,b.children),b=A.pop();return T},i.prototype._build=function(b,T,A,C){var S,v=A-T+1,D=this._maxEntries;if(v<=D)return r(S=m(b.slice(T,A+1)),this.toBBox),S;C||(C=Math.ceil(Math.log(v)/Math.log(D)),D=Math.ceil(v/Math.pow(D,C-1))),(S=m([])).leaf=!1,S.height=C;var O=Math.ceil(v/D),R=O*Math.ceil(Math.sqrt(D));x(b,T,A,R,this.compareMinX);for(var M=T;M<=A;M+=R){var L=Math.min(M+R-1,A);x(b,M,L,O,this.compareMinY);for(var _=M;_<=L;_+=O){var E=Math.min(_+O-1,L);S.children.push(this._build(b,_,E,C-1))}}return r(S,this.toBBox),S},i.prototype._chooseSubtree=function(b,T,A,C){for(;C.push(T),!T.leaf&&C.length-1!==A;){for(var S=1/0,v=1/0,D=void 0,O=0;O<T.children.length;O++){var R=T.children[O],M=f(R),L=(_=b,E=R,(Math.max(E.maxX,_.maxX)-Math.min(E.minX,_.minX))*(Math.max(E.maxY,_.maxY)-Math.min(E.minY,_.minY))-M);L<v?(v=L,S=M<S?M:S,D=R):L===v&&M<S&&(S=M,D=R)}T=D||T.children[0]}var _,E;return T},i.prototype._insert=function(b,T,A){var C=A?b:this.toBBox(b),S=[],v=this._chooseSubtree(C,this.data,T,S);for(v.children.push(b),a(v,C);T>=0&&S[T].children.length>this._maxEntries;)this._split(S,T),T--;this._adjustParentBBoxes(C,S,T)},i.prototype._split=function(b,T){var A=b[T],C=A.children.length,S=this._minEntries;this._chooseSplitAxis(A,S,C);var v=this._chooseSplitIndex(A,S,C),D=m(A.children.splice(v,A.children.length-v));D.height=A.height,D.leaf=A.leaf,r(A,this.toBBox),r(D,this.toBBox),T?b[T-1].children.push(D):this._splitRoot(A,D)},i.prototype._splitRoot=function(b,T){this.data=m([b,T]),this.data.height=b.height+1,this.data.leaf=!1,r(this.data,this.toBBox)},i.prototype._chooseSplitIndex=function(b,T,A){for(var C,S,v,D,O,R,M,L=1/0,_=1/0,E=T;E<=A-T;E++){var w=s(b,0,E,this.toBBox),I=s(b,E,A,this.toBBox),N=(S=w,v=I,D=void 0,O=void 0,R=void 0,M=void 0,D=Math.max(S.minX,v.minX),O=Math.max(S.minY,v.minY),R=Math.min(S.maxX,v.maxX),M=Math.min(S.maxY,v.maxY),Math.max(0,R-D)*Math.max(0,M-O)),B=f(w)+f(I);N<L?(L=N,C=E,_=B<_?B:_):N===L&&B<_&&(_=B,C=E)}return C||A-T},i.prototype._chooseSplitAxis=function(b,T,A){var C=b.leaf?this.compareMinX:c,S=b.leaf?this.compareMinY:u;this._allDistMargin(b,T,A,C)<this._allDistMargin(b,T,A,S)&&b.children.sort(C)},i.prototype._allDistMargin=function(b,T,A,C){b.children.sort(C);for(var S=this.toBBox,v=s(b,0,T,S),D=s(b,A-T,A,S),O=d(v)+d(D),R=T;R<A-T;R++){var M=b.children[R];a(v,b.leaf?S(M):M),O+=d(v)}for(var L=A-T-1;L>=T;L--){var _=b.children[L];a(D,b.leaf?S(_):_),O+=d(D)}return O},i.prototype._adjustParentBBoxes=function(b,T,A){for(var C=A;C>=0;C--)a(T[C],b)},i.prototype._condense=function(b){for(var T=b.length-1,A=void 0;T>=0;T--)b[T].children.length===0?T>0?(A=b[T-1].children).splice(A.indexOf(b[T]),1):this.clear():r(b[T],this.toBBox)},i})});var GK=Ul((exports,module)=>{/*! + * protobuf.js v7.4.0 (c) 2016, daniel wirtz + * compiled thu, 22 aug 2024 20:30:39 utc + * licensed under the bsd-3-clause license + * see: https://github.com/dcodeio/protobuf.js for details + */(function(undefined){"use strict";(function(t,n,i){function o(s){var a=n[s];return a||t[s][0].call(a=n[s]={exports:{}},o,a,a.exports),a.exports}var r=o(i[0]);r.util.global.protobuf=r,typeof define=="function"&&define.amd&&define(["long"],function(s){return s&&s.isLong&&(r.util.Long=s,r.configure()),r}),typeof module=="object"&&module&&module.exports&&(module.exports=r)})({1:[function(e,t,n){"use strict";t.exports=i;function i(o,r){for(var s=new Array(arguments.length-1),a=0,c=2,u=!0;c<arguments.length;)s[a++]=arguments[c++];return new Promise(function(d,p){s[a]=function(m){if(u)if(u=!1,m)p(m);else{for(var x=new Array(arguments.length-1),b=0;b<x.length;)x[b++]=arguments[b];d.apply(null,x)}};try{o.apply(r||null,s)}catch(g){u&&(u=!1,p(g))}})}},{}],2:[function(e,t,n){"use strict";var i=n;i.length=function(u){var f=u.length;if(!f)return 0;for(var d=0;--f%4>1&&u.charAt(f)==="=";)++d;return Math.ceil(u.length*3)/4-d};for(var o=new Array(64),r=new Array(123),s=0;s<64;)r[o[s]=s<26?s+65:s<52?s+71:s<62?s-4:s-59|43]=s++;i.encode=function(u,f,d){for(var p=null,g=[],m=0,x=0,b;f<d;){var T=u[f++];switch(x){case 0:g[m++]=o[T>>2],b=(T&3)<<4,x=1;break;case 1:g[m++]=o[b|T>>4],b=(T&15)<<2,x=2;break;case 2:g[m++]=o[b|T>>6],g[m++]=o[T&63],x=0;break}m>8191&&((p||(p=[])).push(String.fromCharCode.apply(String,g)),m=0)}return x&&(g[m++]=o[b],g[m++]=61,x===1&&(g[m++]=61)),p?(m&&p.push(String.fromCharCode.apply(String,g.slice(0,m))),p.join("")):String.fromCharCode.apply(String,g.slice(0,m))};var a="invalid encoding";i.decode=function(u,f,d){for(var p=d,g=0,m,x=0;x<u.length;){var b=u.charCodeAt(x++);if(b===61&&g>1)break;if((b=r[b])===undefined)throw Error(a);switch(g){case 0:m=b,g=1;break;case 1:f[d++]=m<<2|(b&48)>>4,m=b,g=2;break;case 2:f[d++]=(m&15)<<4|(b&60)>>2,m=b,g=3;break;case 3:f[d++]=(m&3)<<6|b,g=0;break}}if(g===1)throw Error(a);return d-p},i.test=function(u){return/^(?:[A-Za-z0-9+/]{4})*(?:[A-Za-z0-9+/]{2}==|[A-Za-z0-9+/]{3}=)?$/.test(u)}},{}],3:[function(e,t,n){"use strict";t.exports=i;function i(){this._listeners={}}i.prototype.on=function(r,s,a){return(this._listeners[r]||(this._listeners[r]=[])).push({fn:s,ctx:a||this}),this},i.prototype.off=function(r,s){if(r===undefined)this._listeners={};else if(s===undefined)this._listeners[r]=[];else for(var a=this._listeners[r],c=0;c<a.length;)a[c].fn===s?a.splice(c,1):++c;return this},i.prototype.emit=function(r){var s=this._listeners[r];if(s){for(var a=[],c=1;c<arguments.length;)a.push(arguments[c++]);for(c=0;c<s.length;)s[c].fn.apply(s[c++].ctx,a)}return this}},{}],4:[function(e,t,n){"use strict";t.exports=i(i);function i(c){return typeof Float32Array<"u"?function(){var u=new Float32Array([-0]),f=new Uint8Array(u.buffer),d=f[3]===128;function p(b,T,A){u[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3]}function g(b,T,A){u[0]=b,T[A]=f[3],T[A+1]=f[2],T[A+2]=f[1],T[A+3]=f[0]}c.writeFloatLE=d?p:g,c.writeFloatBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],u[0]}function x(b,T){return f[3]=b[T],f[2]=b[T+1],f[1]=b[T+2],f[0]=b[T+3],u[0]}c.readFloatLE=d?m:x,c.readFloatBE=d?x:m}():function(){function u(d,p,g,m){var x=p<0?1:0;if(x&&(p=-p),p===0)d(1/p>0?0:2147483648,g,m);else if(isNaN(p))d(2143289344,g,m);else if(p>34028234663852886e22)d((x<<31|2139095040)>>>0,g,m);else if(p<11754943508222875e-54)d((x<<31|Math.round(p/1401298464324817e-60))>>>0,g,m);else{var b=Math.floor(Math.log(p)/Math.LN2),T=Math.round(p*Math.pow(2,-b)*8388608)&8388607;d((x<<31|b+127<<23|T)>>>0,g,m)}}c.writeFloatLE=u.bind(null,o),c.writeFloatBE=u.bind(null,r);function f(d,p,g){var m=d(p,g),x=(m>>31)*2+1,b=m>>>23&255,T=m&8388607;return b===255?T?NaN:x*(1/0):b===0?x*1401298464324817e-60*T:x*Math.pow(2,b-150)*(T+8388608)}c.readFloatLE=f.bind(null,s),c.readFloatBE=f.bind(null,a)}(),typeof Float64Array<"u"?function(){var u=new Float64Array([-0]),f=new Uint8Array(u.buffer),d=f[7]===128;function p(b,T,A){u[0]=b,T[A]=f[0],T[A+1]=f[1],T[A+2]=f[2],T[A+3]=f[3],T[A+4]=f[4],T[A+5]=f[5],T[A+6]=f[6],T[A+7]=f[7]}function g(b,T,A){u[0]=b,T[A]=f[7],T[A+1]=f[6],T[A+2]=f[5],T[A+3]=f[4],T[A+4]=f[3],T[A+5]=f[2],T[A+6]=f[1],T[A+7]=f[0]}c.writeDoubleLE=d?p:g,c.writeDoubleBE=d?g:p;function m(b,T){return f[0]=b[T],f[1]=b[T+1],f[2]=b[T+2],f[3]=b[T+3],f[4]=b[T+4],f[5]=b[T+5],f[6]=b[T+6],f[7]=b[T+7],u[0]}function x(b,T){return f[7]=b[T],f[6]=b[T+1],f[5]=b[T+2],f[4]=b[T+3],f[3]=b[T+4],f[2]=b[T+5],f[1]=b[T+6],f[0]=b[T+7],u[0]}c.readDoubleLE=d?m:x,c.readDoubleBE=d?x:m}():function(){function u(d,p,g,m,x,b){var T=m<0?1:0;if(T&&(m=-m),m===0)d(0,x,b+p),d(1/m>0?0:2147483648,x,b+g);else if(isNaN(m))d(0,x,b+p),d(2146959360,x,b+g);else if(m>17976931348623157e292)d(0,x,b+p),d((T<<31|2146435072)>>>0,x,b+g);else{var A;if(m<22250738585072014e-324)A=m/5e-324,d(A>>>0,x,b+p),d((T<<31|A/4294967296)>>>0,x,b+g);else{var C=Math.floor(Math.log(m)/Math.LN2);C===1024&&(C=1023),A=m*Math.pow(2,-C),d(A*4503599627370496>>>0,x,b+p),d((T<<31|C+1023<<20|A*1048576&1048575)>>>0,x,b+g)}}}c.writeDoubleLE=u.bind(null,o,0,4),c.writeDoubleBE=u.bind(null,r,4,0);function f(d,p,g,m,x){var b=d(m,x+p),T=d(m,x+g),A=(T>>31)*2+1,C=T>>>20&2047,S=4294967296*(T&1048575)+b;return C===2047?S?NaN:A*(1/0):C===0?A*5e-324*S:A*Math.pow(2,C-1075)*(S+4503599627370496)}c.readDoubleLE=f.bind(null,s,0,4),c.readDoubleBE=f.bind(null,a,4,0)}(),c}function o(c,u,f){u[f]=c&255,u[f+1]=c>>>8&255,u[f+2]=c>>>16&255,u[f+3]=c>>>24}function r(c,u,f){u[f]=c>>>24,u[f+1]=c>>>16&255,u[f+2]=c>>>8&255,u[f+3]=c&255}function s(c,u){return(c[u]|c[u+1]<<8|c[u+2]<<16|c[u+3]<<24)>>>0}function a(c,u){return(c[u]<<24|c[u+1]<<16|c[u+2]<<8|c[u+3])>>>0}},{}],5:[function(require,module,exports){"use strict";module.exports=inquire;function inquire(moduleName){try{var mod=eval("quire".replace(/^/,"re"))(moduleName);if(mod&&(mod.length||Object.keys(mod).length))return mod}catch(e){}return null}},{}],6:[function(e,t,n){"use strict";t.exports=i;function i(o,r,s){var a=s||8192,c=a>>>1,u=null,f=a;return function(p){if(p<1||p>c)return o(p);f+p>a&&(u=o(a),f=0);var g=r.call(u,f,f+=p);return f&7&&(f=(f|7)+1),g}}},{}],7:[function(e,t,n){"use strict";var i=n;i.length=function(r){for(var s=0,a=0,c=0;c<r.length;++c)a=r.charCodeAt(c),a<128?s+=1:a<2048?s+=2:(a&64512)===55296&&(r.charCodeAt(c+1)&64512)===56320?(++c,s+=4):s+=3;return s},i.read=function(r,s,a){var c=a-s;if(c<1)return"";for(var u=null,f=[],d=0,p;s<a;)p=r[s++],p<128?f[d++]=p:p>191&&p<224?f[d++]=(p&31)<<6|r[s++]&63:p>239&&p<365?(p=((p&7)<<18|(r[s++]&63)<<12|(r[s++]&63)<<6|r[s++]&63)-65536,f[d++]=55296+(p>>10),f[d++]=56320+(p&1023)):f[d++]=(p&15)<<12|(r[s++]&63)<<6|r[s++]&63,d>8191&&((u||(u=[])).push(String.fromCharCode.apply(String,f)),d=0);return u?(d&&u.push(String.fromCharCode.apply(String,f.slice(0,d))),u.join("")):String.fromCharCode.apply(String,f.slice(0,d))},i.write=function(r,s,a){for(var c=a,u,f,d=0;d<r.length;++d)u=r.charCodeAt(d),u<128?s[a++]=u:u<2048?(s[a++]=u>>6|192,s[a++]=u&63|128):(u&64512)===55296&&((f=r.charCodeAt(d+1))&64512)===56320?(u=65536+((u&1023)<<10)+(f&1023),++d,s[a++]=u>>18|240,s[a++]=u>>12&63|128,s[a++]=u>>6&63|128,s[a++]=u&63|128):(s[a++]=u>>12|224,s[a++]=u>>6&63|128,s[a++]=u&63|128);return a-c}},{}],8:[function(e,t,n){"use strict";var i=n;i.build="minimal",i.Writer=e(16),i.BufferWriter=e(17),i.Reader=e(9),i.BufferReader=e(10),i.util=e(15),i.rpc=e(12),i.roots=e(11),i.configure=o;function o(){i.util._configure(),i.Writer._configure(i.BufferWriter),i.Reader._configure(i.BufferReader)}o()},{10:10,11:11,12:12,15:15,16:16,17:17,9:9}],9:[function(e,t,n){"use strict";t.exports=c;var i=e(15),o,r=i.LongBits,s=i.utf8;function a(m,x){return RangeError("index out of range: "+m.pos+" + "+(x||1)+" > "+m.len)}function c(m){this.buf=m,this.pos=0,this.len=m.length}var u=typeof Uint8Array<"u"?function(x){if(x instanceof Uint8Array||Array.isArray(x))return new c(x);throw Error("illegal buffer")}:function(x){if(Array.isArray(x))return new c(x);throw Error("illegal buffer")},f=function(){return i.Buffer?function(b){return(c.create=function(A){return i.Buffer.isBuffer(A)?new o(A):u(A)})(b)}:u};c.create=f(),c.prototype._slice=i.Array.prototype.subarray||i.Array.prototype.slice,c.prototype.uint32=function(){var x=4294967295;return function(){if(x=(this.buf[this.pos]&127)>>>0,this.buf[this.pos++]<128||(x=(x|(this.buf[this.pos]&127)<<7)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<14)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&127)<<21)>>>0,this.buf[this.pos++]<128)||(x=(x|(this.buf[this.pos]&15)<<28)>>>0,this.buf[this.pos++]<128))return x;if((this.pos+=5)>this.len)throw this.pos=this.len,a(this,10);return x}}(),c.prototype.int32=function(){return this.uint32()|0},c.prototype.sint32=function(){var x=this.uint32();return x>>>1^-(x&1)|0};function d(){var m=new r(0,0),x=0;if(this.len-this.pos>4){for(;x<4;++x)if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m;if(m.lo=(m.lo|(this.buf[this.pos]&127)<<28)>>>0,m.hi=(m.hi|(this.buf[this.pos]&127)>>4)>>>0,this.buf[this.pos++]<128)return m;x=0}else{for(;x<3;++x){if(this.pos>=this.len)throw a(this);if(m.lo=(m.lo|(this.buf[this.pos]&127)<<x*7)>>>0,this.buf[this.pos++]<128)return m}return m.lo=(m.lo|(this.buf[this.pos++]&127)<<x*7)>>>0,m}if(this.len-this.pos>4){for(;x<5;++x)if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}else for(;x<5;++x){if(this.pos>=this.len)throw a(this);if(m.hi=(m.hi|(this.buf[this.pos]&127)<<x*7+3)>>>0,this.buf[this.pos++]<128)return m}throw Error("invalid varint encoding")}c.prototype.bool=function(){return this.uint32()!==0};function p(m,x){return(m[x-4]|m[x-3]<<8|m[x-2]<<16|m[x-1]<<24)>>>0}c.prototype.fixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)},c.prototype.sfixed32=function(){if(this.pos+4>this.len)throw a(this,4);return p(this.buf,this.pos+=4)|0};function g(){if(this.pos+8>this.len)throw a(this,8);return new r(p(this.buf,this.pos+=4),p(this.buf,this.pos+=4))}c.prototype.float=function(){if(this.pos+4>this.len)throw a(this,4);var x=i.float.readFloatLE(this.buf,this.pos);return this.pos+=4,x},c.prototype.double=function(){if(this.pos+8>this.len)throw a(this,4);var x=i.float.readDoubleLE(this.buf,this.pos);return this.pos+=8,x},c.prototype.bytes=function(){var x=this.uint32(),b=this.pos,T=this.pos+x;if(T>this.len)throw a(this,x);if(this.pos+=x,Array.isArray(this.buf))return this.buf.slice(b,T);if(b===T){var A=i.Buffer;return A?A.alloc(0):new this.buf.constructor(0)}return this._slice.call(this.buf,b,T)},c.prototype.string=function(){var x=this.bytes();return s.read(x,0,x.length)},c.prototype.skip=function(x){if(typeof x=="number"){if(this.pos+x>this.len)throw a(this,x);this.pos+=x}else do if(this.pos>=this.len)throw a(this);while(this.buf[this.pos++]&128);return this},c.prototype.skipType=function(m){switch(m){case 0:this.skip();break;case 1:this.skip(8);break;case 2:this.skip(this.uint32());break;case 3:for(;(m=this.uint32()&7)!==4;)this.skipType(m);break;case 5:this.skip(4);break;default:throw Error("invalid wire type "+m+" at offset "+this.pos)}return this},c._configure=function(m){o=m,c.create=f(),o._configure();var x=i.Long?"toLong":"toNumber";i.merge(c.prototype,{int64:function(){return d.call(this)[x](!1)},uint64:function(){return d.call(this)[x](!0)},sint64:function(){return d.call(this).zzDecode()[x](!1)},fixed64:function(){return g.call(this)[x](!0)},sfixed64:function(){return g.call(this)[x](!1)}})}},{15:15}],10:[function(e,t,n){"use strict";t.exports=r;var i=e(9);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(s){i.call(this,s)}r._configure=function(){o.Buffer&&(r.prototype._slice=o.Buffer.prototype.slice)},r.prototype.string=function(){var a=this.uint32();return this.buf.utf8Slice?this.buf.utf8Slice(this.pos,this.pos=Math.min(this.pos+a,this.len)):this.buf.toString("utf-8",this.pos,this.pos=Math.min(this.pos+a,this.len))},r._configure()},{15:15,9:9}],11:[function(e,t,n){"use strict";t.exports={}},{}],12:[function(e,t,n){"use strict";var i=n;i.Service=e(13)},{13:13}],13:[function(e,t,n){"use strict";t.exports=o;var i=e(15);(o.prototype=Object.create(i.EventEmitter.prototype)).constructor=o;function o(r,s,a){if(typeof r!="function")throw TypeError("rpcImpl must be a function");i.EventEmitter.call(this),this.rpcImpl=r,this.requestDelimited=!!s,this.responseDelimited=!!a}o.prototype.rpcCall=function r(s,a,c,u,f){if(!u)throw TypeError("request must be specified");var d=this;if(!f)return i.asPromise(r,d,s,a,c,u);if(!d.rpcImpl)return setTimeout(function(){f(Error("already ended"))},0),undefined;try{return d.rpcImpl(s,a[d.requestDelimited?"encodeDelimited":"encode"](u).finish(),function(g,m){if(g)return d.emit("error",g,s),f(g);if(m===null)return d.end(!0),undefined;if(!(m instanceof c))try{m=c[d.responseDelimited?"decodeDelimited":"decode"](m)}catch(x){return d.emit("error",x,s),f(x)}return d.emit("data",m,s),f(null,m)})}catch(p){return d.emit("error",p,s),setTimeout(function(){f(p)},0),undefined}},o.prototype.end=function(s){return this.rpcImpl&&(s||this.rpcImpl(null,null,null),this.rpcImpl=null,this.emit("end").off()),this}},{15:15}],14:[function(e,t,n){"use strict";t.exports=o;var i=e(15);function o(c,u){this.lo=c>>>0,this.hi=u>>>0}var r=o.zero=new o(0,0);r.toNumber=function(){return 0},r.zzEncode=r.zzDecode=function(){return this},r.length=function(){return 1};var s=o.zeroHash="\0\0\0\0\0\0\0\0";o.fromNumber=function(u){if(u===0)return r;var f=u<0;f&&(u=-u);var d=u>>>0,p=(u-d)/4294967296>>>0;return f&&(p=~p>>>0,d=~d>>>0,++d>4294967295&&(d=0,++p>4294967295&&(p=0))),new o(d,p)},o.from=function(u){if(typeof u=="number")return o.fromNumber(u);if(i.isString(u))if(i.Long)u=i.Long.fromString(u);else return o.fromNumber(parseInt(u,10));return u.low||u.high?new o(u.low>>>0,u.high>>>0):r},o.prototype.toNumber=function(u){if(!u&&this.hi>>>31){var f=~this.lo+1>>>0,d=~this.hi>>>0;return f||(d=d+1>>>0),-(f+d*4294967296)}return this.lo+this.hi*4294967296},o.prototype.toLong=function(u){return i.Long?new i.Long(this.lo|0,this.hi|0,!!u):{low:this.lo|0,high:this.hi|0,unsigned:!!u}};var a=String.prototype.charCodeAt;o.fromHash=function(u){return u===s?r:new o((a.call(u,0)|a.call(u,1)<<8|a.call(u,2)<<16|a.call(u,3)<<24)>>>0,(a.call(u,4)|a.call(u,5)<<8|a.call(u,6)<<16|a.call(u,7)<<24)>>>0)},o.prototype.toHash=function(){return String.fromCharCode(this.lo&255,this.lo>>>8&255,this.lo>>>16&255,this.lo>>>24,this.hi&255,this.hi>>>8&255,this.hi>>>16&255,this.hi>>>24)},o.prototype.zzEncode=function(){var u=this.hi>>31;return this.hi=((this.hi<<1|this.lo>>>31)^u)>>>0,this.lo=(this.lo<<1^u)>>>0,this},o.prototype.zzDecode=function(){var u=-(this.lo&1);return this.lo=((this.lo>>>1|this.hi<<31)^u)>>>0,this.hi=(this.hi>>>1^u)>>>0,this},o.prototype.length=function(){var u=this.lo,f=(this.lo>>>28|this.hi<<4)>>>0,d=this.hi>>>24;return d===0?f===0?u<16384?u<128?1:2:u<2097152?3:4:f<16384?f<128?5:6:f<2097152?7:8:d<128?9:10}},{15:15}],15:[function(e,t,n){"use strict";var i=n;i.asPromise=e(1),i.base64=e(2),i.EventEmitter=e(3),i.float=e(4),i.inquire=e(5),i.utf8=e(7),i.pool=e(6),i.LongBits=e(14),i.isNode=!!(typeof global<"u"&&global&&global.process&&global.process.versions&&global.process.versions.node),i.global=i.isNode&&global||typeof window<"u"&&window||typeof self<"u"&&self||this,i.emptyArray=Object.freeze?Object.freeze([]):[],i.emptyObject=Object.freeze?Object.freeze({}):{},i.isInteger=Number.isInteger||function(a){return typeof a=="number"&&isFinite(a)&&Math.floor(a)===a},i.isString=function(a){return typeof a=="string"||a instanceof String},i.isObject=function(a){return a&&typeof a=="object"},i.isset=i.isSet=function(a,c){var u=a[c];return u!=null&&a.hasOwnProperty(c)?typeof u!="object"||(Array.isArray(u)?u.length:Object.keys(u).length)>0:!1},i.Buffer=function(){try{var s=i.inquire("buffer").Buffer;return s.prototype.utf8Write?s:null}catch{return null}}(),i._Buffer_from=null,i._Buffer_allocUnsafe=null,i.newBuffer=function(a){return typeof a=="number"?i.Buffer?i._Buffer_allocUnsafe(a):new i.Array(a):i.Buffer?i._Buffer_from(a):typeof Uint8Array>"u"?a:new Uint8Array(a)},i.Array=typeof Uint8Array<"u"?Uint8Array:Array,i.Long=i.global.dcodeIO&&i.global.dcodeIO.Long||i.global.Long||i.inquire("long"),i.key2Re=/^true|false|0|1$/,i.key32Re=/^-?(?:0|[1-9][0-9]*)$/,i.key64Re=/^(?:[\\x00-\\xff]{8}|-?(?:0|[1-9][0-9]*))$/,i.longToHash=function(a){return a?i.LongBits.from(a).toHash():i.LongBits.zeroHash},i.longFromHash=function(a,c){var u=i.LongBits.fromHash(a);return i.Long?i.Long.fromBits(u.lo,u.hi,c):u.toNumber(!!c)};function o(s,a,c){for(var u=Object.keys(a),f=0;f<u.length;++f)(s[u[f]]===undefined||!c)&&(s[u[f]]=a[u[f]]);return s}i.merge=o,i.lcFirst=function(a){return a.charAt(0).toLowerCase()+a.substring(1)};function r(s){function a(c,u){if(!(this instanceof a))return new a(c,u);Object.defineProperty(this,"message",{get:function(){return c}}),Error.captureStackTrace?Error.captureStackTrace(this,a):Object.defineProperty(this,"stack",{value:new Error().stack||""}),u&&o(this,u)}return a.prototype=Object.create(Error.prototype,{constructor:{value:a,writable:!0,enumerable:!1,configurable:!0},name:{get:function(){return s},set:undefined,enumerable:!1,configurable:!0},toString:{value:function(){return this.name+": "+this.message},writable:!0,enumerable:!1,configurable:!0}}),a}i.newError=r,i.ProtocolError=r("ProtocolError"),i.oneOfGetter=function(a){for(var c={},u=0;u<a.length;++u)c[a[u]]=1;return function(){for(var f=Object.keys(this),d=f.length-1;d>-1;--d)if(c[f[d]]===1&&this[f[d]]!==undefined&&this[f[d]]!==null)return f[d]}},i.oneOfSetter=function(a){return function(c){for(var u=0;u<a.length;++u)a[u]!==c&&delete this[a[u]]}},i.toJSONOptions={longs:String,enums:String,bytes:String,json:!0},i._configure=function(){var s=i.Buffer;if(!s){i._Buffer_from=i._Buffer_allocUnsafe=null;return}i._Buffer_from=s.from!==Uint8Array.from&&s.from||function(c,u){return new s(c,u)},i._Buffer_allocUnsafe=s.allocUnsafe||function(c){return new s(c)}}},{1:1,14:14,2:2,3:3,4:4,5:5,6:6,7:7}],16:[function(e,t,n){"use strict";t.exports=d;var i=e(15),o,r=i.LongBits,s=i.base64,a=i.utf8;function c(C,S,v){this.fn=C,this.len=S,this.next=undefined,this.val=v}function u(){}function f(C){this.head=C.head,this.tail=C.tail,this.len=C.len,this.next=C.states}function d(){this.len=0,this.head=new c(u,0,0),this.tail=this.head,this.states=null}var p=function(){return i.Buffer?function(){return(d.create=function(){return new o})()}:function(){return new d}};d.create=p(),d.alloc=function(S){return new i.Array(S)},i.Array!==Array&&(d.alloc=i.pool(d.alloc,i.Array.prototype.subarray)),d.prototype._push=function(S,v,D){return this.tail=this.tail.next=new c(S,v,D),this.len+=v,this};function g(C,S,v){S[v]=C&255}function m(C,S,v){for(;C>127;)S[v++]=C&127|128,C>>>=7;S[v]=C}function x(C,S){this.len=C,this.next=undefined,this.val=S}x.prototype=Object.create(c.prototype),x.prototype.fn=m,d.prototype.uint32=function(S){return this.len+=(this.tail=this.tail.next=new x((S=S>>>0)<128?1:S<16384?2:S<2097152?3:S<268435456?4:5,S)).len,this},d.prototype.int32=function(S){return S<0?this._push(b,10,r.fromNumber(S)):this.uint32(S)},d.prototype.sint32=function(S){return this.uint32((S<<1^S>>31)>>>0)};function b(C,S,v){for(;C.hi;)S[v++]=C.lo&127|128,C.lo=(C.lo>>>7|C.hi<<25)>>>0,C.hi>>>=7;for(;C.lo>127;)S[v++]=C.lo&127|128,C.lo=C.lo>>>7;S[v++]=C.lo}d.prototype.uint64=function(S){var v=r.from(S);return this._push(b,v.length(),v)},d.prototype.int64=d.prototype.uint64,d.prototype.sint64=function(S){var v=r.from(S).zzEncode();return this._push(b,v.length(),v)},d.prototype.bool=function(S){return this._push(g,1,S?1:0)};function T(C,S,v){S[v]=C&255,S[v+1]=C>>>8&255,S[v+2]=C>>>16&255,S[v+3]=C>>>24}d.prototype.fixed32=function(S){return this._push(T,4,S>>>0)},d.prototype.sfixed32=d.prototype.fixed32,d.prototype.fixed64=function(S){var v=r.from(S);return this._push(T,4,v.lo)._push(T,4,v.hi)},d.prototype.sfixed64=d.prototype.fixed64,d.prototype.float=function(S){return this._push(i.float.writeFloatLE,4,S)},d.prototype.double=function(S){return this._push(i.float.writeDoubleLE,8,S)};var A=i.Array.prototype.set?function(S,v,D){v.set(S,D)}:function(S,v,D){for(var O=0;O<S.length;++O)v[D+O]=S[O]};d.prototype.bytes=function(S){var v=S.length>>>0;if(!v)return this._push(g,1,0);if(i.isString(S)){var D=d.alloc(v=s.length(S));s.decode(S,D,0),S=D}return this.uint32(v)._push(A,v,S)},d.prototype.string=function(S){var v=a.length(S);return v?this.uint32(v)._push(a.write,v,S):this._push(g,1,0)},d.prototype.fork=function(){return this.states=new f(this),this.head=this.tail=new c(u,0,0),this.len=0,this},d.prototype.reset=function(){return this.states?(this.head=this.states.head,this.tail=this.states.tail,this.len=this.states.len,this.states=this.states.next):(this.head=this.tail=new c(u,0,0),this.len=0),this},d.prototype.ldelim=function(){var S=this.head,v=this.tail,D=this.len;return this.reset().uint32(D),D&&(this.tail.next=S.next,this.tail=v,this.len+=D),this},d.prototype.finish=function(){for(var S=this.head.next,v=this.constructor.alloc(this.len),D=0;S;)S.fn(S.val,v,D),D+=S.len,S=S.next;return v},d._configure=function(C){o=C,d.create=p(),o._configure()}},{15:15}],17:[function(e,t,n){"use strict";t.exports=r;var i=e(16);(r.prototype=Object.create(i.prototype)).constructor=r;var o=e(15);function r(){i.call(this)}r._configure=function(){r.alloc=o._Buffer_allocUnsafe,r.writeBytesBuffer=o.Buffer&&o.Buffer.prototype instanceof Uint8Array&&o.Buffer.prototype.set.name==="set"?function(c,u,f){u.set(c,f)}:function(c,u,f){if(c.copy)c.copy(u,f,0,c.length);else for(var d=0;d<c.length;)u[f++]=c[d++]}},r.prototype.bytes=function(c){o.isString(c)&&(c=o._Buffer_from(c,"base64"));var u=c.length>>>0;return this.uint32(u),u&&this._push(r.writeBytesBuffer,u,c),this};function s(a,c,u){a.length<40?o.utf8.write(a,c,u):c.utf8Write?c.utf8Write(a,u):c.write(a,u)}r.prototype.string=function(c){var u=o.Buffer.byteLength(c);return this.uint32(u),u&&this._push(s,u,c),this},r._configure()},{15:15,16:16}]},{},[8])})()});var ZTe=Ul((rki,g8)=>{/* Copyright 2015-2018 Esri. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0 @preserve */(function(){var e=function(){var o={};o.defaultNoDataValue=-34027999387901484e22,o.decode=function(f,d){d=d||{};var p=d.encodedMaskData||d.encodedMaskData===null,g=c(f,d.inputOffset||0,p),m=d.noDataValue!==null?d.noDataValue:o.defaultNoDataValue,x=r(g,d.pixelType||Float32Array,d.encodedMaskData,m,d.returnMask),b={width:g.width,height:g.height,pixelData:x.resultPixels,minValue:x.minValue,maxValue:g.pixels.maxValue,noDataValue:m};return x.resultMask&&(b.maskData=x.resultMask),d.returnEncodedMask&&g.mask&&(b.encodedMaskData=g.mask.bitset?g.mask.bitset:null),d.returnFileInfo&&(b.fileInfo=s(g),d.computeUsedBitDepths&&(b.fileInfo.bitDepths=a(g))),b};var r=function(f,d,p,g,m){var x=0,b=f.pixels.numBlocksX,T=f.pixels.numBlocksY,A=Math.floor(f.width/b),C=Math.floor(f.height/T),S=2*f.maxZError,v=Number.MAX_VALUE,D;p=p||(f.mask?f.mask.bitset:null);var O,R;O=new d(f.width*f.height),m&&p&&(R=new Uint8Array(f.width*f.height));for(var M=new Float32Array(A*C),L,_,E=0;E<=T;E++){var w=E!==T?C:f.height%T;if(w!==0)for(var I=0;I<=b;I++){var N=I!==b?A:f.width%b;if(N!==0){var B=E*f.width*C+I*A,H=f.width-N,V=f.pixels.blocks[x],G,k,W;V.encoding<2?(V.encoding===0?G=V.rawData:(u(V.stuffedData,V.bitsPerPixel,V.numValidPixels,V.offset,S,M,f.pixels.maxValue),G=M),k=0):V.encoding===2?W=0:W=V.offset;var q;if(p)for(_=0;_<w;_++){for(B&7&&(q=p[B>>3],q<<=B&7),L=0;L<N;L++)B&7||(q=p[B>>3]),q&128?(R&&(R[B]=1),D=V.encoding<2?G[k++]:W,v=v>D?D:v,O[B++]=D):(R&&(R[B]=0),O[B++]=g),q<<=1;B+=H}else if(V.encoding<2)for(_=0;_<w;_++){for(L=0;L<N;L++)D=G[k++],v=v>D?D:v,O[B++]=D;B+=H}else for(v=v>W?W:v,_=0;_<w;_++){for(L=0;L<N;L++)O[B++]=W;B+=H}if(V.encoding===1&&k!==V.numValidPixels)throw"Block and Mask do not match";x++}}}return{resultPixels:O,resultMask:R,minValue:v}},s=function(f){return{fileIdentifierString:f.fileIdentifierString,fileVersion:f.fileVersion,imageType:f.imageType,height:f.height,width:f.width,maxZError:f.maxZError,eofOffset:f.eofOffset,mask:f.mask?{numBlocksX:f.mask.numBlocksX,numBlocksY:f.mask.numBlocksY,numBytes:f.mask.numBytes,maxValue:f.mask.maxValue}:null,pixels:{numBlocksX:f.pixels.numBlocksX,numBlocksY:f.pixels.numBlocksY,numBytes:f.pixels.numBytes,maxValue:f.pixels.maxValue,noDataValue:f.noDataValue}}},a=function(f){for(var d=f.pixels.numBlocksX*f.pixels.numBlocksY,p={},g=0;g<d;g++){var m=f.pixels.blocks[g];m.encoding===0?p.float32=!0:m.encoding===1?p[m.bitsPerPixel]=!0:p[0]=!0}return Object.keys(p)},c=function(f,d,p){var g={},m=new Uint8Array(f,d,10);if(g.fileIdentifierString=String.fromCharCode.apply(null,m),g.fileIdentifierString.trim()!=="CntZImage")throw"Unexpected file identifier string: "+g.fileIdentifierString;d+=10;var x=new DataView(f,d,24);if(g.fileVersion=x.getInt32(0,!0),g.imageType=x.getInt32(4,!0),g.height=x.getUint32(8,!0),g.width=x.getUint32(12,!0),g.maxZError=x.getFloat64(16,!0),d+=24,!p)if(x=new DataView(f,d,16),g.mask={},g.mask.numBlocksY=x.getUint32(0,!0),g.mask.numBlocksX=x.getUint32(4,!0),g.mask.numBytes=x.getUint32(8,!0),g.mask.maxValue=x.getFloat32(12,!0),d+=16,g.mask.numBytes>0){var b=new Uint8Array(Math.ceil(g.width*g.height/8));x=new DataView(f,d,g.mask.numBytes);var T=x.getInt16(0,!0),A=2,C=0;do{if(T>0)for(;T--;)b[C++]=x.getUint8(A++);else{var S=x.getUint8(A++);for(T=-T;T--;)b[C++]=S}T=x.getInt16(A,!0),A+=2}while(A<g.mask.numBytes);if(T!==-32768||C<b.length)throw"Unexpected end of mask RLE encoding";g.mask.bitset=b,d+=g.mask.numBytes}else g.mask.numBytes|g.mask.numBlocksY|g.mask.maxValue||(g.mask.bitset=new Uint8Array(Math.ceil(g.width*g.height/8)));x=new DataView(f,d,16),g.pixels={},g.pixels.numBlocksY=x.getUint32(0,!0),g.pixels.numBlocksX=x.getUint32(4,!0),g.pixels.numBytes=x.getUint32(8,!0),g.pixels.maxValue=x.getFloat32(12,!0),d+=16;var v=g.pixels.numBlocksX,D=g.pixels.numBlocksY,O=v+(g.width%v>0?1:0),R=D+(g.height%D>0?1:0);g.pixels.blocks=new Array(O*R);for(var M=0,L=0;L<R;L++)for(var _=0;_<O;_++){var E=0,w=f.byteLength-d;x=new DataView(f,d,Math.min(10,w));var I={};g.pixels.blocks[M++]=I;var N=x.getUint8(0);if(E++,I.encoding=N&63,I.encoding>3)throw"Invalid block encoding ("+I.encoding+")";if(I.encoding===2){d++;continue}if(N!==0&&N!==2){if(N>>=6,I.offsetType=N,N===2)I.offset=x.getInt8(1),E++;else if(N===1)I.offset=x.getInt16(1,!0),E+=2;else if(N===0)I.offset=x.getFloat32(1,!0),E+=4;else throw"Invalid block offset type";if(I.encoding===1)if(N=x.getUint8(E),E++,I.bitsPerPixel=N&63,N>>=6,I.numValidPixelsType=N,N===2)I.numValidPixels=x.getUint8(E),E++;else if(N===1)I.numValidPixels=x.getUint16(E,!0),E+=2;else if(N===0)I.numValidPixels=x.getUint32(E,!0),E+=4;else throw"Invalid valid pixel count type"}if(d+=E,I.encoding!==3){var B,H;if(I.encoding===0){var V=(g.pixels.numBytes-1)/4;if(V!==Math.floor(V))throw"uncompressed block has invalid length";B=new ArrayBuffer(V*4),H=new Uint8Array(B),H.set(new Uint8Array(f,d,V*4));var G=new Float32Array(B);I.rawData=G,d+=V*4}else if(I.encoding===1){var k=Math.ceil(I.numValidPixels*I.bitsPerPixel/8),W=Math.ceil(k/4);B=new ArrayBuffer(W*4),H=new Uint8Array(B),H.set(new Uint8Array(f,d,k)),I.stuffedData=new Uint32Array(B),d+=k}}}return g.eofOffset=d,g},u=function(f,d,p,g,m,x,b){var T=(1<<d)-1,A=0,C,S=0,v,D,O=Math.ceil((b-g)/m),R=f.length*4-Math.ceil(d*p/8);for(f[f.length-1]<<=8*R,C=0;C<p;C++){if(S===0&&(D=f[A++],S=32),S>=d)v=D>>>S-d&T,S-=d;else{var M=d-S;v=(D&T)<<M&T,D=f[A++],S=32-M,v+=D>>>S}x[C]=v<O?g+v*m:b}return x};return o}(),t=function(){"use strict";var o={unstuff:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S,v,D,O,R=c.length*4-Math.ceil(f*d/8);if(c[c.length-1]<<=8*R,p)for(A=0;A<d;A++)C===0&&(v=c[T++],C=32),C>=f?(S=v>>>C-f&b,C-=f):(D=f-C,S=(v&b)<<D&b,v=c[T++],C=32-D,S+=v>>>C),u[A]=p[S];else for(O=Math.ceil((x-g)/m),A=0;A<d;A++)C===0&&(v=c[T++],C=32),C>=f?(S=v>>>C-f&b,C-=f):(D=f-C,S=(v&b)<<D&b,v=c[T++],C=32-D,S+=v>>>C),u[A]=S<O?g+S*m:x},unstuffLUT:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,A=0,C=0,S,v=[],D=c.length*4-Math.ceil(u*f/8);c[c.length-1]<<=8*D;var O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(S=c[x++],A=32),A>=u?(C=S>>>A-u&m,A-=u):(T=u-A,C=(S&m)<<T&m,S=c[x++],A=32-T,C+=S>>>A),v[b]=C<O?d+C*p:g;return v.unshift(d),v},unstuff2:function(c,u,f,d,p,g,m,x){var b=(1<<f)-1,T=0,A,C=0,S=0,v,D,O;if(p)for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(v=D>>>S&b,C-=f,S+=f):(O=f-C,v=D>>>S&b,D=c[T++],C=32-O,v|=(D&(1<<O)-1)<<f-O,S=O),u[A]=p[v];else{var R=Math.ceil((x-g)/m);for(A=0;A<d;A++)C===0&&(D=c[T++],C=32,S=0),C>=f?(v=D>>>S&b,C-=f,S+=f):(O=f-C,v=D>>>S&b,D=c[T++],C=32-O,v|=(D&(1<<O)-1)<<f-O,S=O),u[A]=v<R?g+v*m:x}return u},unstuffLUT2:function(c,u,f,d,p,g){var m=(1<<u)-1,x=0,b=0,T=0,A=0,C=0,S=0,v,D=[],O=Math.ceil((g-d)/p);for(b=0;b<f;b++)A===0&&(v=c[x++],A=32,S=0),A>=u?(C=v>>>S&m,A-=u,S+=u):(T=u-A,C=v>>>S&m,v=c[x++],A=32-T,C|=(v&(1<<T)-1)<<u-T,S=T),D[b]=C<O?d+C*p:g;return D.unshift(d),D},originalUnstuff:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b,T,A,C=c.length*4-Math.ceil(f*d/8);for(c[c.length-1]<<=8*C,m=0;m<d;m++)x===0&&(T=c[g++],x=32),x>=f?(b=T>>>x-f&p,x-=f):(A=f-x,b=(T&p)<<A&p,T=c[g++],x=32-A,b+=T>>>x),u[m]=b;return u},originalUnstuff2:function(c,u,f,d){var p=(1<<f)-1,g=0,m,x=0,b=0,T,A,C;for(m=0;m<d;m++)x===0&&(A=c[g++],x=32,b=0),x>=f?(T=A>>>b&p,x-=f,b+=f):(C=f-x,T=A>>>b&p,A=c[g++],x=32-C,T|=(A&(1<<C)-1)<<f-C,b=C),u[m]=T;return u}},r={HUFFMAN_LUT_BITS_MAX:12,computeChecksumFletcher32:function(c){for(var u=65535,f=65535,d=c.length,p=Math.floor(d/2),g=0;p;){var m=p>=359?359:p;p-=m;do u+=c[g++]<<8,f+=u+=c[g++];while(--m);u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16)}return d&1&&(f+=u+=c[g]<<8),u=(u&65535)+(u>>>16),f=(f&65535)+(f>>>16),(f<<16|u)>>>0},readHeaderInfo:function(c,u){var f=u.ptr,d=new Uint8Array(c,f,6),p={};if(p.fileIdentifierString=String.fromCharCode.apply(null,d),p.fileIdentifierString.lastIndexOf("Lerc2",0)!==0)throw"Unexpected file identifier string (expect Lerc2 ): "+p.fileIdentifierString;f+=6;var g=new DataView(c,f,8),m=g.getInt32(0,!0);p.fileVersion=m,f+=4,m>=3&&(p.checksum=g.getUint32(4,!0),f+=4),g=new DataView(c,f,12),p.height=g.getUint32(0,!0),p.width=g.getUint32(4,!0),f+=8,m>=4?(p.numDims=g.getUint32(8,!0),f+=4):p.numDims=1,g=new DataView(c,f,40),p.numValidPixel=g.getUint32(0,!0),p.microBlockSize=g.getInt32(4,!0),p.blobSize=g.getInt32(8,!0),p.imageType=g.getInt32(12,!0),p.maxZError=g.getFloat64(16,!0),p.zMin=g.getFloat64(24,!0),p.zMax=g.getFloat64(32,!0),f+=40,u.headerInfo=p,u.ptr=f;var x,b;if(m>=3&&(b=m>=4?52:48,x=this.computeChecksumFletcher32(new Uint8Array(c,f-b,p.blobSize-14)),x!==p.checksum))throw"Checksum failed.";return!0},checkMinMaxRanges:function(c,u){var f=u.headerInfo,d=this.getDataTypeArray(f.imageType),p=f.numDims*this.getDataTypeSize(f.imageType),g=this.readSubArray(c,u.ptr,d,p),m=this.readSubArray(c,u.ptr+p,d,p);u.ptr+=2*p;var x,b=!0;for(x=0;x<f.numDims;x++)if(g[x]!==m[x]){b=!1;break}return f.minValues=g,f.maxValues=m,b},readSubArray:function(c,u,f,d){var p;if(f===Uint8Array)p=new Uint8Array(c,u,d);else{var g=new ArrayBuffer(d),m=new Uint8Array(g);m.set(new Uint8Array(c,u,d)),p=new f(g)}return p},readMask:function(c,u){var f=u.ptr,d=u.headerInfo,p=d.width*d.height,g=d.numValidPixel,m=new DataView(c,f,4),x={};if(x.numBytes=m.getUint32(0,!0),f+=4,(g===0||p===g)&&x.numBytes!==0)throw"invalid mask";var b,T;if(g===0)b=new Uint8Array(Math.ceil(p/8)),x.bitset=b,T=new Uint8Array(p),u.pixels.resultMask=T,f+=x.numBytes;else if(x.numBytes>0){b=new Uint8Array(Math.ceil(p/8)),m=new DataView(c,f,x.numBytes);var A=m.getInt16(0,!0),C=2,S=0,v=0;do{if(A>0)for(;A--;)b[S++]=m.getUint8(C++);else for(v=m.getUint8(C++),A=-A;A--;)b[S++]=v;A=m.getInt16(C,!0),C+=2}while(C<x.numBytes);if(A!==-32768||S<b.length)throw"Unexpected end of mask RLE encoding";T=new Uint8Array(p);var D=0,O=0;for(O=0;O<p;O++)O&7?(D=b[O>>3],D<<=O&7):D=b[O>>3],D&128&&(T[O]=1);u.pixels.resultMask=T,x.bitset=b,f+=x.numBytes}return u.ptr=f,u.mask=x,!0},readDataOneSweep:function(c,u,f){var d=u.ptr,p=u.headerInfo,g=p.numDims,m=p.width*p.height,x=p.imageType,b=p.numValidPixel*r.getDataTypeSize(x)*g,T,A=u.pixels.resultMask;if(f===Uint8Array)T=new Uint8Array(c,d,b);else{var C=new ArrayBuffer(b),S=new Uint8Array(C);S.set(new Uint8Array(c,d,b)),T=new f(C)}if(T.length===m*g)u.pixels.resultPixels=T;else{u.pixels.resultPixels=new f(m*g);var v=0,D=0,O=0,R=0;if(g>1)for(O=0;O<g;O++)for(R=O*m,D=0;D<m;D++)A[D]&&(u.pixels.resultPixels[R+D]=T[v++]);else for(D=0;D<m;D++)A[D]&&(u.pixels.resultPixels[D]=T[v++])}return d+=b,u.ptr=d,!0},readHuffmanTree:function(c,u){var f=this.HUFFMAN_LUT_BITS_MAX,d=new DataView(c,u.ptr,16);u.ptr+=16;var p=d.getInt32(0,!0);if(p<2)throw"unsupported Huffman version";var g=d.getInt32(4,!0),m=d.getInt32(8,!0),x=d.getInt32(12,!0);if(m>=x)return!1;var b=new Uint32Array(x-m);r.decodeBits(c,u,b);var T=[],A,C,S,v;for(A=m;A<x;A++)C=A-(A<g?0:g),T[C]={first:b[A-m],second:null};var D=c.byteLength-u.ptr,O=Math.ceil(D/4),R=new ArrayBuffer(O*4),M=new Uint8Array(R);M.set(new Uint8Array(c,u.ptr,D));var L=new Uint32Array(R),_=0,E,w=0;for(E=L[0],A=m;A<x;A++)C=A-(A<g?0:g),v=T[C].first,v>0&&(T[C].second=E<<_>>>32-v,32-_>=v?(_+=v,_===32&&(_=0,w++,E=L[w])):(_+=v-32,w++,E=L[w],T[C].second|=E>>>32-_));var I=0,N=0,B=new s;for(A=0;A<T.length;A++)T[A]!==void 0&&(I=Math.max(I,T[A].first));I>=f?N=f:N=I,I>=30&&console.log("WARning, large NUM LUT BITS IS "+I);var H=[],V,G,k,W,q,J;for(A=m;A<x;A++)if(C=A-(A<g?0:g),v=T[C].first,v>0)if(V=[v,C],v<=N)for(G=T[C].second<<N-v,k=1<<N-v,S=0;S<k;S++)H[G|S]=V;else for(G=T[C].second,J=B,W=v-1;W>=0;W--)q=G>>>W&1,q?(J.right||(J.right=new s),J=J.right):(J.left||(J.left=new s),J=J.left),W===0&&!J.val&&(J.val=V[1]);return{decodeLut:H,numBitsLUTQick:N,numBitsLUT:I,tree:B,stuffedData:L,srcPtr:w,bitPos:_}},readHuffman:function(c,u,f){var d=u.headerInfo,p=d.numDims,g=u.headerInfo.height,m=u.headerInfo.width,x=m*g,b=this.readHuffmanTree(c,u),T=b.decodeLut,A=b.tree,C=b.stuffedData,S=b.srcPtr,v=b.bitPos,D=b.numBitsLUTQick,O=b.numBitsLUT,R=u.headerInfo.imageType===0?128:0,M,L,_,E=u.pixels.resultMask,w,I,N,B,H,V,G,k=0;v>0&&(S++,v=0);var W=C[S],q=u.encodeMode===1,J=new f(x*p),j=J,Z;for(Z=0;Z<d.numDims;Z++){if(p>1&&(j=new f(J.buffer,x*Z,x),k=0),u.headerInfo.numValidPixel===m*g)for(V=0,B=0;B<g;B++)for(H=0;H<m;H++,V++){if(L=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=C[S+1]>>>64-v-D,I=w),T[I])L=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=C[S+1]>>>64-v-O,I=w),M=A,G=0;G<O;G++)if(N=w>>>O-G-1&1,M=N?M.right:M.left,!(M.left||M.right)){L=M.val,v=v+G+1;break}v>=32&&(v-=32,S++,W=C[S]),_=L-R,q?(H>0?_+=k:B>0?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}else for(V=0,B=0;B<g;B++)for(H=0;H<m;H++,V++)if(E[V]){if(L=0,w=W<<v>>>32-D,I=w,32-v<D&&(w|=C[S+1]>>>64-v-D,I=w),T[I])L=T[I][1],v+=T[I][0];else for(w=W<<v>>>32-O,I=w,32-v<O&&(w|=C[S+1]>>>64-v-O,I=w),M=A,G=0;G<O;G++)if(N=w>>>O-G-1&1,M=N?M.right:M.left,!(M.left||M.right)){L=M.val,v=v+G+1;break}v>=32&&(v-=32,S++,W=C[S]),_=L-R,q?(H>0&&E[V-1]?_+=k:B>0&&E[V-m]?_+=j[V-m]:_+=k,_&=255,j[V]=_,k=_):j[V]=_}u.ptr=u.ptr+(S+1)*4+(v>0?4:0)}u.pixels.resultPixels=J},decodeBits:function(c,u,f,d,p){{var g=u.headerInfo,m=g.fileVersion,x=0,b=new DataView(c,u.ptr,5),T=b.getUint8(0);x++;var A=T>>6,C=A===0?4:3-A,S=(T&32)>0,v=T&31,D=0;if(C===1)D=b.getUint8(x),x++;else if(C===2)D=b.getUint16(x,!0),x+=2;else if(C===4)D=b.getUint32(x,!0),x+=4;else throw"Invalid valid pixel count type";var O=2*g.maxZError,R,M,L,_,E,w,I,N,B,H,V=g.numDims>1?g.maxValues[p]:g.zMax;if(S){for(u.counter.lut++,N=b.getUint8(x),B=v,x++,_=Math.ceil((N-1)*v/8),E=Math.ceil(_/4),M=new ArrayBuffer(E*4),L=new Uint8Array(M),u.ptr+=x,L.set(new Uint8Array(c,u.ptr,_)),I=new Uint32Array(M),u.ptr+=_,H=0;N-1>>>H;)H++;_=Math.ceil(D*H/8),E=Math.ceil(_/4),M=new ArrayBuffer(E*4),L=new Uint8Array(M),L.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?w=o.unstuffLUT2(I,v,N-1,d,O,V):w=o.unstuffLUT(I,v,N-1,d,O,V),m>=3?o.unstuff2(R,f,H,D,w):o.unstuff(R,f,H,D,w)}else u.counter.bitstuffer++,H=v,u.ptr+=x,H>0&&(_=Math.ceil(D*H/8),E=Math.ceil(_/4),M=new ArrayBuffer(E*4),L=new Uint8Array(M),L.set(new Uint8Array(c,u.ptr,_)),R=new Uint32Array(M),u.ptr+=_,m>=3?d==null?o.originalUnstuff2(R,f,H,D):o.unstuff2(R,f,H,D,!1,d,O,V):d==null?o.originalUnstuff(R,f,H,D):o.unstuff(R,f,H,D,!1,d,O,V))}},readTiles:function(c,u,f){var d=u.headerInfo,p=d.width,g=d.height,m=d.microBlockSize,x=d.imageType,b=r.getDataTypeSize(x),T=Math.ceil(p/m),A=Math.ceil(g/m);u.pixels.numBlocksY=A,u.pixels.numBlocksX=T,u.pixels.ptr=0;var C=0,S=0,v=0,D=0,O=0,R=0,M=0,L=0,_=0,E=0,w=0,I=0,N=0,B=0,H=0,V=0,G,k,W,q,J,j,Z=new f(m*m),Q=g%m||m,de=p%m||m,ye,ae,_e=d.numDims,xe,Ie=u.pixels.resultMask,Ce=u.pixels.resultPixels;for(v=0;v<A;v++)for(O=v!==A-1?m:Q,D=0;D<T;D++)for(R=D!==T-1?m:de,w=v*p*m+D*m,I=p-R,xe=0;xe<_e;xe++){if(_e>1&&(Ce=new f(u.pixels.resultPixels.buffer,p*g*xe*b,p*g)),M=c.byteLength-u.ptr,G=new DataView(c,u.ptr,Math.min(10,M)),k={},V=0,L=G.getUint8(0),V++,_=L>>6&255,E=L>>2&15,E!==(D*m>>3&15))throw"integrity issue";if(j=L&3,j>3)throw u.ptr+=V,"Invalid block encoding ("+j+")";if(j===2){u.counter.constant++,u.ptr+=V;continue}else if(j===0){if(u.counter.uncompressed++,u.ptr+=V,N=O*R*b,B=c.byteLength-u.ptr,N=N<B?N:B,W=new ArrayBuffer(N%b===0?N:N+b-N%b),q=new Uint8Array(W),q.set(new Uint8Array(c,u.ptr,N)),J=new f(W),H=0,Ie)for(C=0;C<O;C++){for(S=0;S<R;S++)Ie[w]&&(Ce[w]=J[H++]),w++;w+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)Ce[w++]=J[H++];w+=I}u.ptr+=H*b}else if(ye=r.getDataTypeUsed(x,_),ae=r.getOnePixel(k,V,ye,G),V+=r.getDataTypeSize(ye),j===3)if(u.ptr+=V,u.counter.constantoffset++,Ie)for(C=0;C<O;C++){for(S=0;S<R;S++)Ie[w]&&(Ce[w]=ae),w++;w+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)Ce[w++]=ae;w+=I}else if(u.ptr+=V,r.decodeBits(c,u,Z,ae,xe),V=0,Ie)for(C=0;C<O;C++){for(S=0;S<R;S++)Ie[w]&&(Ce[w]=Z[V++]),w++;w+=I}else for(C=0;C<O;C++){for(S=0;S<R;S++)Ce[w++]=Z[V++];w+=I}}},formatFileInfo:function(c){return{fileIdentifierString:c.headerInfo.fileIdentifierString,fileVersion:c.headerInfo.fileVersion,imageType:c.headerInfo.imageType,height:c.headerInfo.height,width:c.headerInfo.width,numValidPixel:c.headerInfo.numValidPixel,microBlockSize:c.headerInfo.microBlockSize,blobSize:c.headerInfo.blobSize,maxZError:c.headerInfo.maxZError,pixelType:r.getPixelType(c.headerInfo.imageType),eofOffset:c.eofOffset,mask:c.mask?{numBytes:c.mask.numBytes}:null,pixels:{numBlocksX:c.pixels.numBlocksX,numBlocksY:c.pixels.numBlocksY,maxValue:c.headerInfo.zMax,minValue:c.headerInfo.zMin,noDataValue:c.noDataValue}}},constructConstantSurface:function(c){var u=c.headerInfo.zMax,f=c.headerInfo.numDims,d=c.headerInfo.height*c.headerInfo.width,p=d*f,g=0,m=0,x=0,b=c.pixels.resultMask;if(b)if(f>1)for(g=0;g<f;g++)for(x=g*d,m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[x+m]=u);else for(m=0;m<d;m++)b[m]&&(c.pixels.resultPixels[m]=u);else if(c.pixels.resultPixels.fill)c.pixels.resultPixels.fill(u);else for(m=0;m<p;m++)c.pixels.resultPixels[m]=u},getDataTypeArray:function(c){var u;switch(c){case 0:u=Int8Array;break;case 1:u=Uint8Array;break;case 2:u=Int16Array;break;case 3:u=Uint16Array;break;case 4:u=Int32Array;break;case 5:u=Uint32Array;break;case 6:u=Float32Array;break;case 7:u=Float64Array;break;default:u=Float32Array}return u},getPixelType:function(c){var u;switch(c){case 0:u="S8";break;case 1:u="U8";break;case 2:u="S16";break;case 3:u="U16";break;case 4:u="S32";break;case 5:u="U32";break;case 6:u="F32";break;case 7:u="F64";break;default:u="F32"}return u},isValidPixelValue:function(c,u){if(u==null)return!1;var f;switch(c){case 0:f=u>=-128&&u<=127;break;case 1:f=u>=0&&u<=255;break;case 2:f=u>=-32768&&u<=32767;break;case 3:f=u>=0&&u<=65536;break;case 4:f=u>=-2147483648&&u<=2147483647;break;case 5:f=u>=0&&u<=4294967296;break;case 6:f=u>=-34027999387901484e22&&u<=34027999387901484e22;break;case 7:f=u>=5e-324&&u<=17976931348623157e292;break;default:f=!1}return f},getDataTypeSize:function(c){var u=0;switch(c){case 0:case 1:u=1;break;case 2:case 3:u=2;break;case 4:case 5:case 6:u=4;break;case 7:u=8;break;default:u=c}return u},getDataTypeUsed:function(c,u){var f=c;switch(c){case 2:case 4:f=c-u;break;case 3:case 5:f=c-2*u;break;case 6:u===0?f=c:u===1?f=2:f=1;break;case 7:u===0?f=c:f=c-2*u+1;break;default:f=c;break}return f},getOnePixel:function(c,u,f,d){var p=0;switch(f){case 0:p=d.getInt8(u);break;case 1:p=d.getUint8(u);break;case 2:p=d.getInt16(u,!0);break;case 3:p=d.getUint16(u,!0);break;case 4:p=d.getInt32(u,!0);break;case 5:p=d.getUInt32(u,!0);break;case 6:p=d.getFloat32(u,!0);break;case 7:p=d.getFloat64(u,!0);break;default:throw"the decoder does not understand this pixel type"}return p}},s=function(c,u,f){this.val=c,this.left=u,this.right=f},a={decode:function(c,u){u=u||{};var f=u.noDataValue,d=0,p={};if(p.ptr=u.inputOffset||0,p.pixels={},!!r.readHeaderInfo(c,p)){var g=p.headerInfo,m=g.fileVersion,x=r.getDataTypeArray(g.imageType);r.readMask(c,p),g.numValidPixel!==g.width*g.height&&!p.pixels.resultMask&&(p.pixels.resultMask=u.maskData);var b=g.width*g.height;if(p.pixels.resultPixels=new x(b*g.numDims),p.counter={onesweep:0,uncompressed:0,lut:0,bitstuffer:0,constant:0,constantoffset:0},g.numValidPixel!==0)if(g.zMax===g.zMin)r.constructConstantSurface(p);else if(m>=4&&r.checkMinMaxRanges(c,p))r.constructConstantSurface(p);else{var T=new DataView(c,p.ptr,2),A=T.getUint8(0);if(p.ptr++,A)r.readDataOneSweep(c,p,x);else if(m>1&&g.imageType<=1&&Math.abs(g.maxZError-.5)<1e-5){var C=T.getUint8(1);if(p.ptr++,p.encodeMode=C,C>2||m<4&&C>1)throw"Invalid Huffman flag "+C;C?r.readHuffman(c,p,x):r.readTiles(c,p,x)}else r.readTiles(c,p,x)}p.eofOffset=p.ptr;var S;u.inputOffset?(S=p.headerInfo.blobSize+u.inputOffset-p.ptr,Math.abs(S)>=1&&(p.eofOffset=u.inputOffset+p.headerInfo.blobSize)):(S=p.headerInfo.blobSize-p.ptr,Math.abs(S)>=1&&(p.eofOffset=p.headerInfo.blobSize));var v={width:g.width,height:g.height,pixelData:p.pixels.resultPixels,minValue:g.zMin,maxValue:g.zMax,validPixelCount:g.numValidPixel,dimCount:g.numDims,dimStats:{minValues:g.minValues,maxValues:g.maxValues},maskData:p.pixels.resultMask};if(p.pixels.resultMask&&r.isValidPixelValue(g.imageType,f)){var D=p.pixels.resultMask;for(d=0;d<b;d++)D[d]||(v.pixelData[d]=f);v.noDataValue=f}return p.noDataValue=f,u.returnFileInfo&&(v.fileInfo=r.formatFileInfo(p)),v}},getBandCount:function(c){var u=0,f=0,d={};for(d.ptr=0,d.pixels={};f<c.byteLength-58;)r.readHeaderInfo(c,d),f+=d.headerInfo.blobSize,u++,d.ptr=f;return u}};return a}(),n=function(){var o=new ArrayBuffer(4),r=new Uint8Array(o),s=new Uint32Array(o);return s[0]=1,r[0]===1}(),i={decode:function(o,r){if(!n)throw"Big endian system is not supported.";r=r||{};var s=r.inputOffset||0,a=new Uint8Array(o,s,10),c=String.fromCharCode.apply(null,a),u,f;if(c.trim()==="CntZImage")u=e,f=1;else if(c.substring(0,5)==="Lerc2")u=t,f=2;else throw"Unexpected file identifier string: "+c;for(var d=0,p=o.byteLength-10,g,m=[],x,b,T={width:0,height:0,pixels:[],pixelType:r.pixelType,mask:null,statistics:[]};s<p;){var A=u.decode(o,{inputOffset:s,encodedMaskData:g,maskData:b,returnMask:d===0,returnEncodedMask:d===0,returnFileInfo:!0,pixelType:r.pixelType||null,noDataValue:r.noDataValue||null});s=A.fileInfo.eofOffset,d===0&&(g=A.encodedMaskData,b=A.maskData,T.width=A.width,T.height=A.height,T.dimCount=A.dimCount||1,T.pixelType=A.pixelType||A.fileInfo.pixelType,T.mask=A.maskData),f>1&&A.fileInfo.mask&&A.fileInfo.mask.numBytes>0&&m.push(A.maskData),d++,T.pixels.push(A.pixelData),T.statistics.push({minValue:A.minValue,maxValue:A.maxValue,noDataValue:A.noDataValue,dimStats:A.dimStats})}var C,S,v;if(f>1&&m.length>1){for(v=T.width*T.height,T.bandMasks=m,b=new Uint8Array(v),b.set(m[0]),C=1;C<m.length;C++)for(x=m[C],S=0;S<v;S++)b[S]=b[S]&x[S];T.maskData=b}return T}};typeof define=="function"&&define.amd?define([],function(){return i}):typeof g8<"u"&&g8.exports?g8.exports=i:this.Lerc=i})()});var fCe=Ul((rso,uCe)=>{uCe.exports={webm:"data:video/webm;base64,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",mp4:"data:video/mp4;base64,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"}});var hCe=Ul((sso,dCe)=>{var{webm:$Ct,mp4:QCt}=fCe(),PZ=()=>typeof navigator<"u"&&parseFloat((""+(/CPU.*OS ([0-9_]{3,4})[0-9_]{0,1}|(CPU like).*AppleWebKit.*Mobile/i.exec(navigator.userAgent)||[0,""])[1]).replace("undefined","3_2").replace("_",".").replace("_",""))<10&&!window.MSStream,RZ=()=>"wakeLock"in navigator,OZ=class{constructor(){if(this.enabled=!1,RZ()){this._wakeLock=null;let t=()=>{this._wakeLock!==null&&document.visibilityState==="visible"&&this.enable()};document.addEventListener("visibilitychange",t),document.addEventListener("fullscreenchange",t)}else PZ()?this.noSleepTimer=null:(this.noSleepVideo=document.createElement("video"),this.noSleepVideo.setAttribute("title","No Sleep"),this.noSleepVideo.setAttribute("playsinline",""),this._addSourceToVideo(this.noSleepVideo,"webm",$Ct),this._addSourceToVideo(this.noSleepVideo,"mp4",QCt),this.noSleepVideo.addEventListener("loadedmetadata",()=>{this.noSleepVideo.duration<=1?this.noSleepVideo.setAttribute("loop",""):this.noSleepVideo.addEventListener("timeupdate",()=>{this.noSleepVideo.currentTime>.5&&(this.noSleepVideo.currentTime=Math.random())})}))}_addSourceToVideo(t,n,i){var o=document.createElement("source");o.src=i,o.type=`video/${n}`,t.appendChild(o)}get isEnabled(){return this.enabled}enable(){return RZ()?navigator.wakeLock.request("screen").then(t=>{this._wakeLock=t,this.enabled=!0,console.log("Wake Lock active."),this._wakeLock.addEventListener("release",()=>{console.log("Wake Lock released.")})}).catch(t=>{throw this.enabled=!1,console.error(`${t.name}, ${t.message}`),t}):PZ()?(this.disable(),console.warn(` + NoSleep enabled for older iOS devices. This can interrupt + active or long-running network requests from completing successfully. + See https://github.com/richtr/NoSleep.js/issues/15 for more details. + `),this.noSleepTimer=window.setInterval(()=>{document.hidden||(window.location.href=window.location.href.split("#")[0],window.setTimeout(window.stop,0))},15e3),this.enabled=!0,Promise.resolve()):this.noSleepVideo.play().then(n=>(this.enabled=!0,n)).catch(n=>{throw this.enabled=!1,n})}disable(){RZ()?(this._wakeLock&&this._wakeLock.release(),this._wakeLock=null):PZ()?this.noSleepTimer&&(console.warn(` + NoSleep now disabled for older iOS devices. + `),window.clearInterval(this.noSleepTimer),this.noSleepTimer=null):this.noSleepVideo.pause(),this.enabled=!1}};dCe.exports=OZ});function HCe(e){return e!=null}var l=HCe;function p0(e){this.name="DeveloperError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(p0.prototype=Object.create(Error.prototype),p0.prototype.constructor=p0);p0.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};p0.throwInstantiationError=function(){throw new p0("This function defines an interface and should not be called directly.")};var he=p0;var ms={};ms.typeOf={};function GCe(e){return`${e} is required, actual value was undefined`}function Kb(e,t,n){return`Expected ${n} to be typeof ${t}, actual typeof was ${e}`}ms.defined=function(e,t){if(!l(t))throw new he(GCe(e))};ms.typeOf.func=function(e,t){if(typeof t!="function")throw new he(Kb(typeof t,"function",e))};ms.typeOf.string=function(e,t){if(typeof t!="string")throw new he(Kb(typeof t,"string",e))};ms.typeOf.number=function(e,t){if(typeof t!="number")throw new he(Kb(typeof t,"number",e))};ms.typeOf.number.lessThan=function(e,t,n){if(ms.typeOf.number(e,t),t>=n)throw new he(`Expected ${e} to be less than ${n}, actual value was ${t}`)};ms.typeOf.number.lessThanOrEquals=function(e,t,n){if(ms.typeOf.number(e,t),t>n)throw new he(`Expected ${e} to be less than or equal to ${n}, actual value was ${t}`)};ms.typeOf.number.greaterThan=function(e,t,n){if(ms.typeOf.number(e,t),t<=n)throw new he(`Expected ${e} to be greater than ${n}, actual value was ${t}`)};ms.typeOf.number.greaterThanOrEquals=function(e,t,n){if(ms.typeOf.number(e,t),t<n)throw new he(`Expected ${e} to be greater than or equal to ${n}, actual value was ${t}`)};ms.typeOf.object=function(e,t){if(typeof t!="object")throw new he(Kb(typeof t,"object",e))};ms.typeOf.bool=function(e,t){if(typeof t!="boolean")throw new he(Kb(typeof t,"boolean",e))};ms.typeOf.bigint=function(e,t){if(typeof t!="bigint")throw new he(Kb(typeof t,"bigint",e))};ms.typeOf.number.equals=function(e,t,n,i){if(ms.typeOf.number(e,n),ms.typeOf.number(t,i),n!==i)throw new he(`${e} must be equal to ${t}, the actual values are ${n} and ${i}`)};var xo=ms;function i$(e,t){return e??t}i$.EMPTY_OBJECT=Object.freeze({});var y=i$;var HG=Er(YP(),1);var ct={};ct.EPSILON1=.1;ct.EPSILON2=.01;ct.EPSILON3=.001;ct.EPSILON4=1e-4;ct.EPSILON5=1e-5;ct.EPSILON6=1e-6;ct.EPSILON7=1e-7;ct.EPSILON8=1e-8;ct.EPSILON9=1e-9;ct.EPSILON10=1e-10;ct.EPSILON11=1e-11;ct.EPSILON12=1e-12;ct.EPSILON13=1e-13;ct.EPSILON14=1e-14;ct.EPSILON15=1e-15;ct.EPSILON16=1e-16;ct.EPSILON17=1e-17;ct.EPSILON18=1e-18;ct.EPSILON19=1e-19;ct.EPSILON20=1e-20;ct.EPSILON21=1e-21;ct.GRAVITATIONALPARAMETER=3986004418e5;ct.SOLAR_RADIUS=6955e5;ct.LUNAR_RADIUS=1737400;ct.SIXTY_FOUR_KILOBYTES=64*1024;ct.FOUR_GIGABYTES=4*1024*1024*1024;ct.sign=y(Math.sign,function(t){return t=+t,t===0||t!==t?t:t>0?1:-1});ct.signNotZero=function(e){return e<0?-1:1};ct.toSNorm=function(e,t){return t=y(t,255),Math.round((ct.clamp(e,-1,1)*.5+.5)*t)};ct.fromSNorm=function(e,t){return t=y(t,255),ct.clamp(e,0,t)/t*2-1};ct.normalize=function(e,t,n){return n=Math.max(n-t,0),n===0?0:ct.clamp((e-t)/n,0,1)};ct.sinh=y(Math.sinh,function(t){return(Math.exp(t)-Math.exp(-t))/2});ct.cosh=y(Math.cosh,function(t){return(Math.exp(t)+Math.exp(-t))/2});ct.lerp=function(e,t,n){return(1-n)*e+n*t};ct.PI=Math.PI;ct.ONE_OVER_PI=1/Math.PI;ct.PI_OVER_TWO=Math.PI/2;ct.PI_OVER_THREE=Math.PI/3;ct.PI_OVER_FOUR=Math.PI/4;ct.PI_OVER_SIX=Math.PI/6;ct.THREE_PI_OVER_TWO=3*Math.PI/2;ct.TWO_PI=2*Math.PI;ct.ONE_OVER_TWO_PI=1/(2*Math.PI);ct.RADIANS_PER_DEGREE=Math.PI/180;ct.DEGREES_PER_RADIAN=180/Math.PI;ct.RADIANS_PER_ARCSECOND=ct.RADIANS_PER_DEGREE/3600;ct.toRadians=function(e){return e*ct.RADIANS_PER_DEGREE};ct.toDegrees=function(e){return e*ct.DEGREES_PER_RADIAN};ct.convertLongitudeRange=function(e){let t=ct.TWO_PI,n=e-Math.floor(e/t)*t;return n<-Math.PI?n+t:n>=Math.PI?n-t:n};ct.clampToLatitudeRange=function(e){return ct.clamp(e,-1*ct.PI_OVER_TWO,ct.PI_OVER_TWO)};ct.negativePiToPi=function(e){return e>=-ct.PI&&e<=ct.PI?e:ct.zeroToTwoPi(e+ct.PI)-ct.PI};ct.zeroToTwoPi=function(e){if(e>=0&&e<=ct.TWO_PI)return e;let t=ct.mod(e,ct.TWO_PI);return Math.abs(t)<ct.EPSILON14&&Math.abs(e)>ct.EPSILON14?ct.TWO_PI:t};ct.mod=function(e,t){return ct.sign(e)===ct.sign(t)&&Math.abs(e)<Math.abs(t)?e:(e%t+t)%t};ct.equalsEpsilon=function(e,t,n,i){n=y(n,0),i=y(i,n);let o=Math.abs(e-t);return o<=i||o<=n*Math.max(Math.abs(e),Math.abs(t))};ct.lessThan=function(e,t,n){return e-t<-n};ct.lessThanOrEquals=function(e,t,n){return e-t<n};ct.greaterThan=function(e,t,n){return e-t>n};ct.greaterThanOrEquals=function(e,t,n){return e-t>-n};var XP=[1];ct.factorial=function(e){let t=XP.length;if(e>=t){let n=XP[t-1];for(let i=t;i<=e;i++){let o=n*i;XP.push(o),n=o}}return XP[e]};ct.incrementWrap=function(e,t,n){return n=y(n,0),++e,e>t&&(e=n),e};ct.isPowerOfTwo=function(e){return e!==0&&(e&e-1)===0};ct.nextPowerOfTwo=function(e){return--e,e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,++e,e};ct.previousPowerOfTwo=function(e){return e|=e>>1,e|=e>>2,e|=e>>4,e|=e>>8,e|=e>>16,e|=e>>32,e=(e>>>0)-(e>>>1),e};ct.clamp=function(e,t,n){return e<t?t:e>n?n:e};var r$=new HG.default;ct.setRandomNumberSeed=function(e){r$=new HG.default(e)};ct.nextRandomNumber=function(){return r$.random()};ct.randomBetween=function(e,t){return ct.nextRandomNumber()*(t-e)+e};ct.acosClamped=function(e){return Math.acos(ct.clamp(e,-1,1))};ct.asinClamped=function(e){return Math.asin(ct.clamp(e,-1,1))};ct.chordLength=function(e,t){return 2*t*Math.sin(e*.5)};ct.logBase=function(e,t){return Math.log(e)/Math.log(t)};ct.cbrt=y(Math.cbrt,function(t){let n=Math.pow(Math.abs(t),.3333333333333333);return t<0?-n:n});ct.log2=y(Math.log2,function(t){return Math.log(t)*Math.LOG2E});ct.fog=function(e,t){let n=e*t;return 1-Math.exp(-(n*n))};ct.fastApproximateAtan=function(e){return e*(-.1784*Math.abs(e)-.0663*e*e+1.0301)};ct.fastApproximateAtan2=function(e,t){let n,i=Math.abs(e);n=Math.abs(t);let o=Math.max(i,n);n=Math.min(i,n);let r=n/o;return i=ct.fastApproximateAtan(r),i=Math.abs(t)>Math.abs(e)?ct.PI_OVER_TWO-i:i,i=e<0?ct.PI-i:i,i=t<0?-i:i,i};var P=ct;function Je(e,t,n){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0)}Je.fromSpherical=function(e,t){l(t)||(t=new Je);let n=e.clock,i=e.cone,o=y(e.magnitude,1),r=o*Math.sin(i);return t.x=r*Math.cos(n),t.y=r*Math.sin(n),t.z=o*Math.cos(i),t};Je.fromElements=function(e,t,n,i){return l(i)?(i.x=e,i.y=t,i.z=n,i):new Je(e,t,n)};Je.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t):new Je(e.x,e.y,e.z)};Je.fromCartesian4=Je.clone;Je.packedLength=3;Je.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n]=e.z,t};Je.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Je),n.x=e[t++],n.y=e[t++],n.z=e[t],n};Je.packArray=function(e,t){let n=e.length,i=n*3;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Je.pack(e[o],t,o*3);return t};Je.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/3:t=new Array(n/3);for(let i=0;i<n;i+=3){let o=i/3;t[o]=Je.unpack(e,i,t[o])}return t};Je.fromArray=Je.unpack;Je.maximumComponent=function(e){return Math.max(e.x,e.y,e.z)};Je.minimumComponent=function(e){return Math.min(e.x,e.y,e.z)};Je.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n};Je.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n};Je.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z);return i.x=o,i.y=r,i.z=s,i};Je.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z};Je.magnitude=function(e){return Math.sqrt(Je.magnitudeSquared(e))};var ZP=new Je;Je.distance=function(e,t){return Je.subtract(e,t,ZP),Je.magnitude(ZP)};Je.distanceSquared=function(e,t){return Je.subtract(e,t,ZP),Je.magnitudeSquared(ZP)};Je.normalize=function(e,t){let n=Je.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t};Je.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z};Je.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n};Je.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n};Je.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n};Je.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n};Je.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n};Je.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n};Je.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t};Je.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t};var s$=new Je;Je.lerp=function(e,t,n,i){return Je.multiplyByScalar(t,n,s$),i=Je.multiplyByScalar(e,1-n,i),Je.add(s$,i,i)};var KP=new Je,GG=new Je;Je.angleBetween=function(e,t){Je.normalize(e,KP),Je.normalize(t,GG);let n=Je.dot(KP,GG),i=Je.magnitude(Je.cross(KP,GG,KP));return Math.atan2(i,n)};var WCe=new Je;Je.mostOrthogonalAxis=function(e,t){let n=Je.normalize(e,WCe);return Je.abs(n,n),n.x<=n.y?n.x<=n.z?t=Je.clone(Je.UNIT_X,t):t=Je.clone(Je.UNIT_Z,t):n.y<=n.z?t=Je.clone(Je.UNIT_Y,t):t=Je.clone(Je.UNIT_Z,t),t};Je.projectVector=function(e,t,n){let i=Je.dot(e,t)/Je.dot(t,t);return Je.multiplyByScalar(t,i,n)};Je.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z};Je.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]};Je.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)};Je.cross=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=t.x,a=t.y,c=t.z,u=o*c-r*a,f=r*s-i*c,d=i*a-o*s;return n.x=u,n.y=f,n.z=d,n};Je.midpoint=function(e,t,n){return n.x=(e.x+t.x)*.5,n.y=(e.y+t.y)*.5,n.z=(e.z+t.z)*.5,n};Je.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(e),t=P.toRadians(t),Je.fromRadians(e,t,n,i,o)};var Vu=new Je,Zb=new Je;Je._ellipsoidRadiiSquared=new Je(6378137*6378137,6378137*6378137,6356752314245179e-9*6356752314245179e-9);Je.fromRadians=function(e,t,n,i,o){n=y(n,0);let r=l(i)?i.radiiSquared:Je._ellipsoidRadiiSquared,s=Math.cos(t);Vu.x=s*Math.cos(e),Vu.y=s*Math.sin(e),Vu.z=Math.sin(t),Vu=Je.normalize(Vu,Vu),Je.multiplyComponents(r,Vu,Zb);let a=Math.sqrt(Je.dot(Vu,Zb));return Zb=Je.divideByScalar(Zb,a,Zb),Vu=Je.multiplyByScalar(Vu,n,Vu),l(o)||(o=new Je),Je.add(Zb,Vu,o)};Je.fromDegreesArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Je.fromDegrees(r,s,0,t,n[a])}return n};Je.fromRadiansArray=function(e,t,n){let i=e.length;l(n)?n.length=i/2:n=new Array(i/2);for(let o=0;o<i;o+=2){let r=e[o],s=e[o+1],a=o/2;n[a]=Je.fromRadians(r,s,0,t,n[a])}return n};Je.fromDegreesArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Je.fromDegrees(r,s,a,t,n[c])}return n};Je.fromRadiansArrayHeights=function(e,t,n){let i=e.length;l(n)?n.length=i/3:n=new Array(i/3);for(let o=0;o<i;o+=3){let r=e[o],s=e[o+1],a=e[o+2],c=o/3;n[c]=Je.fromRadians(r,s,a,t,n[c])}return n};Je.ZERO=Object.freeze(new Je(0,0,0));Je.ONE=Object.freeze(new Je(1,1,1));Je.UNIT_X=Object.freeze(new Je(1,0,0));Je.UNIT_Y=Object.freeze(new Je(0,1,0));Je.UNIT_Z=Object.freeze(new Je(0,0,1));Je.prototype.clone=function(e){return Je.clone(this,e)};Je.prototype.equals=function(e){return Je.equals(this,e)};Je.prototype.equalsEpsilon=function(e,t,n){return Je.equalsEpsilon(this,e,t,n)};Je.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z})`};var h=Je;function gt(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}gt.fromElements=function(e,t,n,i,o){return l(o)?(o.x=e,o.y=t,o.z=n,o.w=i,o):new gt(e,t,n,i)};gt.fromColor=function(e,t){return l(t)?(t.x=e.red,t.y=e.green,t.z=e.blue,t.w=e.alpha,t):new gt(e.red,e.green,e.blue,e.alpha)};gt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new gt(e.x,e.y,e.z,e.w)};gt.packedLength=4;gt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};gt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new gt),n.x=e[t++],n.y=e[t++],n.z=e[t++],n.w=e[t],n};gt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)gt.pack(e[o],t,o*4);return t};gt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=gt.unpack(e,i,t[o])}return t};gt.fromArray=gt.unpack;gt.maximumComponent=function(e){return Math.max(e.x,e.y,e.z,e.w)};gt.minimumComponent=function(e){return Math.min(e.x,e.y,e.z,e.w)};gt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n.z=Math.min(e.z,t.z),n.w=Math.min(e.w,t.w),n};gt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n.z=Math.max(e.z,t.z),n.w=Math.max(e.w,t.w),n};gt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y),s=P.clamp(e.z,t.z,n.z),a=P.clamp(e.w,t.w,n.w);return i.x=o,i.y=r,i.z=s,i.w=a,i};gt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};gt.magnitude=function(e){return Math.sqrt(gt.magnitudeSquared(e))};var $P=new gt;gt.distance=function(e,t){return gt.subtract(e,t,$P),gt.magnitude($P)};gt.distanceSquared=function(e,t){return gt.subtract(e,t,$P),gt.magnitudeSquared($P)};gt.normalize=function(e,t){let n=gt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t.z=e.z/n,t.w=e.w/n,t};gt.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};gt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n.z=e.z*t.z,n.w=e.w*t.w,n};gt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n.z=e.z/t.z,n.w=e.w/t.w,n};gt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};gt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};gt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};gt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};gt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};gt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t.z=Math.abs(e.z),t.w=Math.abs(e.w),t};var a$=new gt;gt.lerp=function(e,t,n,i){return gt.multiplyByScalar(t,n,a$),i=gt.multiplyByScalar(e,1-n,i),gt.add(a$,i,i)};var jCe=new gt;gt.mostOrthogonalAxis=function(e,t){let n=gt.normalize(e,jCe);return gt.abs(n,n),n.x<=n.y?n.x<=n.z?n.x<=n.w?t=gt.clone(gt.UNIT_X,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t):n.y<=n.z?n.y<=n.w?t=gt.clone(gt.UNIT_Y,t):t=gt.clone(gt.UNIT_W,t):n.z<=n.w?t=gt.clone(gt.UNIT_Z,t):t=gt.clone(gt.UNIT_W,t),t};gt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};gt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]&&e.z===t[n+2]&&e.w===t[n+3]};gt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)&&P.equalsEpsilon(e.z,t.z,n,i)&&P.equalsEpsilon(e.w,t.w,n,i)};gt.ZERO=Object.freeze(new gt(0,0,0,0));gt.ONE=Object.freeze(new gt(1,1,1,1));gt.UNIT_X=Object.freeze(new gt(1,0,0,0));gt.UNIT_Y=Object.freeze(new gt(0,1,0,0));gt.UNIT_Z=Object.freeze(new gt(0,0,1,0));gt.UNIT_W=Object.freeze(new gt(0,0,0,1));gt.prototype.clone=function(e){return gt.clone(this,e)};gt.prototype.equals=function(e){return gt.equals(this,e)};gt.prototype.equalsEpsilon=function(e,t,n){return gt.equalsEpsilon(this,e,t,n)};gt.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var WG=new Float32Array(1),Fa=new Uint8Array(WG.buffer),qCe=new Uint32Array([287454020]),YCe=new Uint8Array(qCe.buffer),c$=YCe[0]===68;gt.packFloat=function(e,t){return l(t)||(t=new gt),WG[0]=e,c$?(t.x=Fa[0],t.y=Fa[1],t.z=Fa[2],t.w=Fa[3]):(t.x=Fa[3],t.y=Fa[2],t.z=Fa[1],t.w=Fa[0]),t};gt.unpackFloat=function(e){return c$?(Fa[0]=e.x,Fa[1]=e.y,Fa[2]=e.z,Fa[3]=e.w):(Fa[0]=e.w,Fa[1]=e.z,Fa[2]=e.y,Fa[3]=e.x),WG[0]};var oe=gt;function nt(e,t,n,i,o,r,s,a,c){this[0]=y(e,0),this[1]=y(i,0),this[2]=y(s,0),this[3]=y(t,0),this[4]=y(o,0),this[5]=y(a,0),this[6]=y(n,0),this[7]=y(r,0),this[8]=y(c,0)}nt.packedLength=9;nt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t};nt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new nt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n};nt.packArray=function(e,t){let n=e.length,i=n*9;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)nt.pack(e[o],t,o*9);return t};nt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/9:t=new Array(n/9);for(let i=0;i<n;i+=9){let o=i/9;t[o]=nt.unpack(e,i,t[o])}return t};nt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):new nt(e[0],e[3],e[6],e[1],e[4],e[7],e[2],e[5],e[8])};nt.fromArray=nt.unpack;nt.fromColumnMajorArray=function(e,t){return nt.clone(e,t)};nt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[3],t[2]=e[6],t[3]=e[1],t[4]=e[4],t[5]=e[7],t[6]=e[2],t[7]=e[5],t[8]=e[8],t):new nt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8])};nt.fromQuaternion=function(e,t){let n=e.x*e.x,i=e.x*e.y,o=e.x*e.z,r=e.x*e.w,s=e.y*e.y,a=e.y*e.z,c=e.y*e.w,u=e.z*e.z,f=e.z*e.w,d=e.w*e.w,p=n-s-u+d,g=2*(i-f),m=2*(o+c),x=2*(i+f),b=-n+s-u+d,T=2*(a-r),A=2*(o-c),C=2*(a+r),S=-n-s+u+d;return l(t)?(t[0]=p,t[1]=x,t[2]=A,t[3]=g,t[4]=b,t[5]=C,t[6]=m,t[7]=T,t[8]=S,t):new nt(p,g,m,x,b,T,A,C,S)};nt.fromHeadingPitchRoll=function(e,t){let n=Math.cos(-e.pitch),i=Math.cos(-e.heading),o=Math.cos(e.roll),r=Math.sin(-e.pitch),s=Math.sin(-e.heading),a=Math.sin(e.roll),c=n*i,u=-o*s+a*r*i,f=a*s+o*r*i,d=n*s,p=o*i+a*r*s,g=-a*i+o*r*s,m=-r,x=a*n,b=o*n;return l(t)?(t[0]=c,t[1]=d,t[2]=m,t[3]=u,t[4]=p,t[5]=x,t[6]=f,t[7]=g,t[8]=b,t):new nt(c,u,f,d,p,g,m,x,b)};nt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=e.y,t[5]=0,t[6]=0,t[7]=0,t[8]=e.z,t):new nt(e.x,0,0,0,e.y,0,0,0,e.z)};nt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=e,t[5]=0,t[6]=0,t[7]=0,t[8]=e,t):new nt(e,0,0,0,e,0,0,0,e)};nt.fromCrossProduct=function(e,t){return l(t)?(t[0]=0,t[1]=e.z,t[2]=-e.y,t[3]=-e.z,t[4]=0,t[5]=e.x,t[6]=e.y,t[7]=-e.x,t[8]=0,t):new nt(0,-e.z,e.y,e.z,0,-e.x,-e.y,e.x,0)};nt.fromRotationX=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=1,t[1]=0,t[2]=0,t[3]=0,t[4]=n,t[5]=i,t[6]=0,t[7]=-i,t[8]=n,t):new nt(1,0,0,0,n,-i,0,i,n)};nt.fromRotationY=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=0,t[2]=-i,t[3]=0,t[4]=1,t[5]=0,t[6]=i,t[7]=0,t[8]=n,t):new nt(n,0,i,0,1,0,-i,0,n)};nt.fromRotationZ=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=0,t[3]=-i,t[4]=n,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new nt(n,-i,0,i,n,0,0,0,1)};nt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8]]};nt.getElementIndex=function(e,t){return e*3+t};nt.getColumn=function(e,t,n){let i=t*3,o=e[i],r=e[i+1],s=e[i+2];return n.x=o,n.y=r,n.z=s,n};nt.setColumn=function(e,t,n,i){i=nt.clone(e,i);let o=t*3;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i};nt.getRow=function(e,t,n){let i=e[t],o=e[t+3],r=e[t+6];return n.x=i,n.y=o,n.z=r,n};nt.setRow=function(e,t,n,i){return i=nt.clone(e,i),i[t]=n.x,i[t+3]=n.y,i[t+6]=n.z,i};var XCe=new h;nt.setScale=function(e,t,n){let i=nt.getScale(e,XCe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var KCe=new h;nt.setUniformScale=function(e,t,n){let i=nt.getScale(e,KCe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3]*r,n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*s,n[7]=e[7]*s,n[8]=e[8]*s,n};var jG=new h;nt.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],jG)),t.y=h.magnitude(h.fromElements(e[3],e[4],e[5],jG)),t.z=h.magnitude(h.fromElements(e[6],e[7],e[8],jG)),t};var l$=new h;nt.getMaximumScale=function(e){return nt.getScale(e,l$),h.maximumComponent(l$)};var ZCe=new h;nt.setRotation=function(e,t,n){let i=nt.getScale(e,ZCe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=t[3]*i.y,n[4]=t[4]*i.y,n[5]=t[5]*i.y,n[6]=t[6]*i.z,n[7]=t[7]*i.z,n[8]=t[8]*i.z,n};var $Ce=new h;nt.getRotation=function(e,t){let n=nt.getScale(e,$Ce);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[3]/n.y,t[4]=e[4]/n.y,t[5]=e[5]/n.y,t[6]=e[6]/n.z,t[7]=e[7]/n.z,t[8]=e[8]/n.z,t};nt.multiply=function(e,t,n){let i=e[0]*t[0]+e[3]*t[1]+e[6]*t[2],o=e[1]*t[0]+e[4]*t[1]+e[7]*t[2],r=e[2]*t[0]+e[5]*t[1]+e[8]*t[2],s=e[0]*t[3]+e[3]*t[4]+e[6]*t[5],a=e[1]*t[3]+e[4]*t[4]+e[7]*t[5],c=e[2]*t[3]+e[5]*t[4]+e[8]*t[5],u=e[0]*t[6]+e[3]*t[7]+e[6]*t[8],f=e[1]*t[6]+e[4]*t[7]+e[7]*t[8],d=e[2]*t[6]+e[5]*t[7]+e[8]*t[8];return n[0]=i,n[1]=o,n[2]=r,n[3]=s,n[4]=a,n[5]=c,n[6]=u,n[7]=f,n[8]=d,n};nt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n};nt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n};nt.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[3]*o+e[6]*r,a=e[1]*i+e[4]*o+e[7]*r,c=e[2]*i+e[5]*o+e[8]*r;return n.x=s,n.y=a,n.z=c,n};nt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};nt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.x,n[3]=e[3]*t.y,n[4]=e[4]*t.y,n[5]=e[5]*t.y,n[6]=e[6]*t.z,n[7]=e[7]*t.z,n[8]=e[8]*t.z,n};nt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n};nt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t};nt.transpose=function(e,t){let n=e[0],i=e[3],o=e[6],r=e[1],s=e[4],a=e[7],c=e[2],u=e[5],f=e[8];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t[4]=s,t[5]=a,t[6]=c,t[7]=u,t[8]=f,t};function QCe(e){let t=0;for(let n=0;n<9;++n){let i=e[n];t+=i*i}return Math.sqrt(t)}var qG=[1,0,0],YG=[2,2,1];function JCe(e){let t=0;for(let n=0;n<3;++n){let i=e[nt.getElementIndex(YG[n],qG[n])];t+=2*i*i}return Math.sqrt(t)}function eEe(e,t){let n=P.EPSILON15,i=0,o=1;for(let u=0;u<3;++u){let f=Math.abs(e[nt.getElementIndex(YG[u],qG[u])]);f>i&&(o=u,i=f)}let r=1,s=0,a=qG[o],c=YG[o];if(Math.abs(e[nt.getElementIndex(c,a)])>n){let u=e[nt.getElementIndex(c,c)],f=e[nt.getElementIndex(a,a)],d=e[nt.getElementIndex(c,a)],p=(u-f)/2/d,g;p<0?g=-1/(-p+Math.sqrt(1+p*p)):g=1/(p+Math.sqrt(1+p*p)),r=1/Math.sqrt(1+g*g),s=g*r}return t=nt.clone(nt.IDENTITY,t),t[nt.getElementIndex(a,a)]=t[nt.getElementIndex(c,c)]=r,t[nt.getElementIndex(c,a)]=s,t[nt.getElementIndex(a,c)]=-s,t}var QP=new nt,u$=new nt;nt.computeEigenDecomposition=function(e,t){let n=P.EPSILON20,i=10,o=0,r=0;l(t)||(t={});let s=t.unitary=nt.clone(nt.IDENTITY,t.unitary),a=t.diagonal=nt.clone(e,t.diagonal),c=n*QCe(a);for(;r<i&&JCe(a)>c;)eEe(a,QP),nt.transpose(QP,u$),nt.multiply(a,QP,a),nt.multiply(u$,a,a),nt.multiply(s,QP,s),++o>2&&(++r,o=0);return t};nt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t};nt.determinant=function(e){let t=e[0],n=e[3],i=e[6],o=e[1],r=e[4],s=e[7],a=e[2],c=e[5],u=e[8];return t*(r*u-c*s)+o*(c*i-n*u)+a*(n*s-r*i)};nt.inverse=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[3],s=e[4],a=e[5],c=e[6],u=e[7],f=e[8],d=nt.determinant(e);t[0]=s*f-u*a,t[1]=u*o-i*f,t[2]=i*a-s*o,t[3]=c*a-r*f,t[4]=n*f-c*o,t[5]=r*o-n*a,t[6]=r*u-c*s,t[7]=c*i-n*u,t[8]=n*s-r*i;let p=1/d;return nt.multiplyByScalar(t,p,t)};var tEe=new nt;nt.inverseTranspose=function(e,t){return nt.inverse(nt.transpose(e,tEe),t)};nt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[7]===t[7]&&e[8]===t[8]};nt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n};nt.IDENTITY=Object.freeze(new nt(1,0,0,0,1,0,0,0,1));nt.ZERO=Object.freeze(new nt(0,0,0,0,0,0,0,0,0));nt.COLUMN0ROW0=0;nt.COLUMN0ROW1=1;nt.COLUMN0ROW2=2;nt.COLUMN1ROW0=3;nt.COLUMN1ROW1=4;nt.COLUMN1ROW2=5;nt.COLUMN2ROW0=6;nt.COLUMN2ROW1=7;nt.COLUMN2ROW2=8;Object.defineProperties(nt.prototype,{length:{get:function(){return nt.packedLength}}});nt.prototype.clone=function(e){return nt.clone(this,e)};nt.prototype.equals=function(e){return nt.equals(this,e)};nt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]};nt.prototype.equalsEpsilon=function(e,t){return nt.equalsEpsilon(this,e,t)};nt.prototype.toString=function(){return`(${this[0]}, ${this[3]}, ${this[6]}) +(${this[1]}, ${this[4]}, ${this[7]}) +(${this[2]}, ${this[5]}, ${this[8]})`};var $=nt;function OS(e){this.name="RuntimeError",this.message=e;let t;try{throw new Error}catch(n){t=n.stack}this.stack=t}l(Object.create)&&(OS.prototype=Object.create(Error.prototype),OS.prototype.constructor=OS);OS.prototype.toString=function(){let e=`${this.name}: ${this.message}`;return l(this.stack)&&(e+=` +${this.stack.toString()}`),e};var ce=OS;function tt(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this[0]=y(e,0),this[1]=y(o,0),this[2]=y(c,0),this[3]=y(p,0),this[4]=y(t,0),this[5]=y(r,0),this[6]=y(u,0),this[7]=y(g,0),this[8]=y(n,0),this[9]=y(s,0),this[10]=y(f,0),this[11]=y(m,0),this[12]=y(i,0),this[13]=y(a,0),this[14]=y(d,0),this[15]=y(x,0)}tt.packedLength=16;tt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t[n++]=e[4],t[n++]=e[5],t[n++]=e[6],t[n++]=e[7],t[n++]=e[8],t[n++]=e[9],t[n++]=e[10],t[n++]=e[11],t[n++]=e[12],t[n++]=e[13],t[n++]=e[14],t[n]=e[15],t};tt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new tt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n[4]=e[t++],n[5]=e[t++],n[6]=e[t++],n[7]=e[t++],n[8]=e[t++],n[9]=e[t++],n[10]=e[t++],n[11]=e[t++],n[12]=e[t++],n[13]=e[t++],n[14]=e[t++],n[15]=e[t],n};tt.packArray=function(e,t){let n=e.length,i=n*16;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)tt.pack(e[o],t,o*16);return t};tt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/16:t=new Array(n/16);for(let i=0;i<n;i+=16){let o=i/16;t[o]=tt.unpack(e,i,t[o])}return t};tt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):new tt(e[0],e[4],e[8],e[12],e[1],e[5],e[9],e[13],e[2],e[6],e[10],e[14],e[3],e[7],e[11],e[15])};tt.fromArray=tt.unpack;tt.fromColumnMajorArray=function(e,t){return tt.clone(e,t)};tt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=e[1],t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=e[2],t[9]=e[6],t[10]=e[10],t[11]=e[14],t[12]=e[3],t[13]=e[7],t[14]=e[11],t[15]=e[15],t):new tt(e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15])};tt.fromRotationTranslation=function(e,t,n){return t=y(t,h.ZERO),l(n)?(n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=0,n[4]=e[3],n[5]=e[4],n[6]=e[5],n[7]=0,n[8]=e[6],n[9]=e[7],n[10]=e[8],n[11]=0,n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=1,n):new tt(e[0],e[3],e[6],t.x,e[1],e[4],e[7],t.y,e[2],e[5],e[8],t.z,0,0,0,1)};tt.fromTranslationQuaternionRotationScale=function(e,t,n,i){l(i)||(i=new tt);let o=n.x,r=n.y,s=n.z,a=t.x*t.x,c=t.x*t.y,u=t.x*t.z,f=t.x*t.w,d=t.y*t.y,p=t.y*t.z,g=t.y*t.w,m=t.z*t.z,x=t.z*t.w,b=t.w*t.w,T=a-d-m+b,A=2*(c-x),C=2*(u+g),S=2*(c+x),v=-a+d-m+b,D=2*(p-f),O=2*(u-g),R=2*(p+f),M=-a-d+m+b;return i[0]=T*o,i[1]=S*o,i[2]=O*o,i[3]=0,i[4]=A*r,i[5]=v*r,i[6]=R*r,i[7]=0,i[8]=C*s,i[9]=D*s,i[10]=M*s,i[11]=0,i[12]=e.x,i[13]=e.y,i[14]=e.z,i[15]=1,i};tt.fromTranslationRotationScale=function(e,t){return tt.fromTranslationQuaternionRotationScale(e.translation,e.rotation,e.scale,t)};tt.fromTranslation=function(e,t){return tt.fromRotationTranslation($.IDENTITY,e,t)};tt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e.y,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e.z,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new tt(e.x,0,0,0,0,e.y,0,0,0,0,e.z,0,0,0,0,1)};tt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=e,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=e,t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t):new tt(e,0,0,0,0,e,0,0,0,0,e,0,0,0,0,1)};tt.fromRotation=function(e,t){return l(t)||(t=new tt),t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=0,t[4]=e[3],t[5]=e[4],t[6]=e[5],t[7]=0,t[8]=e[6],t[9]=e[7],t[10]=e[8],t[11]=0,t[12]=0,t[13]=0,t[14]=0,t[15]=1,t};var $b=new h,Qb=new h,MS=new h;tt.fromCamera=function(e,t){let n=e.position,i=e.direction,o=e.up;h.normalize(i,$b),h.normalize(h.cross($b,o,Qb),Qb),h.normalize(h.cross(Qb,$b,MS),MS);let r=Qb.x,s=Qb.y,a=Qb.z,c=$b.x,u=$b.y,f=$b.z,d=MS.x,p=MS.y,g=MS.z,m=n.x,x=n.y,b=n.z,T=r*-m+s*-x+a*-b,A=d*-m+p*-x+g*-b,C=c*m+u*x+f*b;return l(t)?(t[0]=r,t[1]=d,t[2]=-c,t[3]=0,t[4]=s,t[5]=p,t[6]=-u,t[7]=0,t[8]=a,t[9]=g,t[10]=-f,t[11]=0,t[12]=T,t[13]=A,t[14]=C,t[15]=1,t):new tt(r,s,a,T,d,p,g,A,-c,-u,-f,C,0,0,0,1)};tt.computePerspectiveFieldOfView=function(e,t,n,i,o){let s=1/Math.tan(e*.5),a=s/t,c=(i+n)/(n-i),u=2*i*n/(n-i);return o[0]=a,o[1]=0,o[2]=0,o[3]=0,o[4]=0,o[5]=s,o[6]=0,o[7]=0,o[8]=0,o[9]=0,o[10]=c,o[11]=-1,o[12]=0,o[13]=0,o[14]=u,o[15]=0,o};tt.computeOrthographicOffCenter=function(e,t,n,i,o,r,s){let a=1/(t-e),c=1/(i-n),u=1/(r-o),f=-(t+e)*a,d=-(i+n)*c,p=-(r+o)*u;return a*=2,c*=2,u*=-2,s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=0,s[9]=0,s[10]=u,s[11]=0,s[12]=f,s[13]=d,s[14]=p,s[15]=1,s};tt.computePerspectiveOffCenter=function(e,t,n,i,o,r,s){let a=2*o/(t-e),c=2*o/(i-n),u=(t+e)/(t-e),f=(i+n)/(i-n),d=-(r+o)/(r-o),p=-1,g=-2*r*o/(r-o);return s[0]=a,s[1]=0,s[2]=0,s[3]=0,s[4]=0,s[5]=c,s[6]=0,s[7]=0,s[8]=u,s[9]=f,s[10]=d,s[11]=p,s[12]=0,s[13]=0,s[14]=g,s[15]=0,s};tt.computeInfinitePerspectiveOffCenter=function(e,t,n,i,o,r){let s=2*o/(t-e),a=2*o/(i-n),c=(t+e)/(t-e),u=(i+n)/(i-n),f=-1,d=-1,p=-2*o;return r[0]=s,r[1]=0,r[2]=0,r[3]=0,r[4]=0,r[5]=a,r[6]=0,r[7]=0,r[8]=c,r[9]=u,r[10]=f,r[11]=d,r[12]=0,r[13]=0,r[14]=p,r[15]=0,r};tt.computeViewportTransformation=function(e,t,n,i){l(i)||(i=new tt),e=y(e,y.EMPTY_OBJECT);let o=y(e.x,0),r=y(e.y,0),s=y(e.width,0),a=y(e.height,0);t=y(t,0),n=y(n,1);let c=s*.5,u=a*.5,f=(n-t)*.5,d=c,p=u,g=f,m=o+c,x=r+u,b=t+f,T=1;return i[0]=d,i[1]=0,i[2]=0,i[3]=0,i[4]=0,i[5]=p,i[6]=0,i[7]=0,i[8]=0,i[9]=0,i[10]=g,i[11]=0,i[12]=m,i[13]=x,i[14]=b,i[15]=T,i};tt.computeView=function(e,t,n,i,o){return o[0]=i.x,o[1]=n.x,o[2]=-t.x,o[3]=0,o[4]=i.y,o[5]=n.y,o[6]=-t.y,o[7]=0,o[8]=i.z,o[9]=n.z,o[10]=-t.z,o[11]=0,o[12]=-h.dot(i,e),o[13]=-h.dot(n,e),o[14]=h.dot(t,e),o[15]=1,o};tt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t[4]=e[4],t[5]=e[5],t[6]=e[6],t[7]=e[7],t[8]=e[8],t[9]=e[9],t[10]=e[10],t[11]=e[11],t[12]=e[12],t[13]=e[13],t[14]=e[14],t[15]=e[15],t):[e[0],e[1],e[2],e[3],e[4],e[5],e[6],e[7],e[8],e[9],e[10],e[11],e[12],e[13],e[14],e[15]]};tt.getElementIndex=function(e,t){return e*4+t};tt.getColumn=function(e,t,n){let i=t*4,o=e[i],r=e[i+1],s=e[i+2],a=e[i+3];return n.x=o,n.y=r,n.z=s,n.w=a,n};tt.setColumn=function(e,t,n,i){i=tt.clone(e,i);let o=t*4;return i[o]=n.x,i[o+1]=n.y,i[o+2]=n.z,i[o+3]=n.w,i};tt.getRow=function(e,t,n){let i=e[t],o=e[t+4],r=e[t+8],s=e[t+12];return n.x=i,n.y=o,n.z=r,n.w=s,n};tt.setRow=function(e,t,n,i){return i=tt.clone(e,i),i[t]=n.x,i[t+4]=n.y,i[t+8]=n.z,i[t+12]=n.w,i};tt.setTranslation=function(e,t,n){return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=t.x,n[13]=t.y,n[14]=t.z,n[15]=e[15],n};var nEe=new h;tt.setScale=function(e,t,n){let i=tt.getScale(e,nEe),o=t.x/i.x,r=t.y/i.y,s=t.z/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var iEe=new h;tt.setUniformScale=function(e,t,n){let i=tt.getScale(e,iEe),o=t/i.x,r=t/i.y,s=t/i.z;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*o,n[3]=e[3],n[4]=e[4]*r,n[5]=e[5]*r,n[6]=e[6]*r,n[7]=e[7],n[8]=e[8]*s,n[9]=e[9]*s,n[10]=e[10]*s,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var XG=new h;tt.getScale=function(e,t){return t.x=h.magnitude(h.fromElements(e[0],e[1],e[2],XG)),t.y=h.magnitude(h.fromElements(e[4],e[5],e[6],XG)),t.z=h.magnitude(h.fromElements(e[8],e[9],e[10],XG)),t};var f$=new h;tt.getMaximumScale=function(e){return tt.getScale(e,f$),h.maximumComponent(f$)};var oEe=new h;tt.setRotation=function(e,t,n){let i=tt.getScale(e,oEe);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.x,n[3]=e[3],n[4]=t[3]*i.y,n[5]=t[4]*i.y,n[6]=t[5]*i.y,n[7]=e[7],n[8]=t[6]*i.z,n[9]=t[7]*i.z,n[10]=t[8]*i.z,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};var rEe=new h;tt.getRotation=function(e,t){let n=tt.getScale(e,rEe);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.x,t[3]=e[4]/n.y,t[4]=e[5]/n.y,t[5]=e[6]/n.y,t[6]=e[8]/n.z,t[7]=e[9]/n.z,t[8]=e[10]/n.z,t};tt.multiply=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[3],a=e[4],c=e[5],u=e[6],f=e[7],d=e[8],p=e[9],g=e[10],m=e[11],x=e[12],b=e[13],T=e[14],A=e[15],C=t[0],S=t[1],v=t[2],D=t[3],O=t[4],R=t[5],M=t[6],L=t[7],_=t[8],E=t[9],w=t[10],I=t[11],N=t[12],B=t[13],H=t[14],V=t[15],G=i*C+a*S+d*v+x*D,k=o*C+c*S+p*v+b*D,W=r*C+u*S+g*v+T*D,q=s*C+f*S+m*v+A*D,J=i*O+a*R+d*M+x*L,j=o*O+c*R+p*M+b*L,Z=r*O+u*R+g*M+T*L,Q=s*O+f*R+m*M+A*L,de=i*_+a*E+d*w+x*I,ye=o*_+c*E+p*w+b*I,ae=r*_+u*E+g*w+T*I,_e=s*_+f*E+m*w+A*I,xe=i*N+a*B+d*H+x*V,Ie=o*N+c*B+p*H+b*V,Ce=r*N+u*B+g*H+T*V,ke=s*N+f*B+m*H+A*V;return n[0]=G,n[1]=k,n[2]=W,n[3]=q,n[4]=J,n[5]=j,n[6]=Z,n[7]=Q,n[8]=de,n[9]=ye,n[10]=ae,n[11]=_e,n[12]=xe,n[13]=Ie,n[14]=Ce,n[15]=ke,n};tt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n[4]=e[4]+t[4],n[5]=e[5]+t[5],n[6]=e[6]+t[6],n[7]=e[7]+t[7],n[8]=e[8]+t[8],n[9]=e[9]+t[9],n[10]=e[10]+t[10],n[11]=e[11]+t[11],n[12]=e[12]+t[12],n[13]=e[13]+t[13],n[14]=e[14]+t[14],n[15]=e[15]+t[15],n};tt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n[4]=e[4]-t[4],n[5]=e[5]-t[5],n[6]=e[6]-t[6],n[7]=e[7]-t[7],n[8]=e[8]-t[8],n[9]=e[9]-t[9],n[10]=e[10]-t[10],n[11]=e[11]-t[11],n[12]=e[12]-t[12],n[13]=e[13]-t[13],n[14]=e[14]-t[14],n[15]=e[15]-t[15],n};tt.multiplyTransformation=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=e[12],g=e[13],m=e[14],x=t[0],b=t[1],T=t[2],A=t[4],C=t[5],S=t[6],v=t[8],D=t[9],O=t[10],R=t[12],M=t[13],L=t[14],_=i*x+s*b+u*T,E=o*x+a*b+f*T,w=r*x+c*b+d*T,I=i*A+s*C+u*S,N=o*A+a*C+f*S,B=r*A+c*C+d*S,H=i*v+s*D+u*O,V=o*v+a*D+f*O,G=r*v+c*D+d*O,k=i*R+s*M+u*L+p,W=o*R+a*M+f*L+g,q=r*R+c*M+d*L+m;return n[0]=_,n[1]=E,n[2]=w,n[3]=0,n[4]=I,n[5]=N,n[6]=B,n[7]=0,n[8]=H,n[9]=V,n[10]=G,n[11]=0,n[12]=k,n[13]=W,n[14]=q,n[15]=1,n};tt.multiplyByMatrix3=function(e,t,n){let i=e[0],o=e[1],r=e[2],s=e[4],a=e[5],c=e[6],u=e[8],f=e[9],d=e[10],p=t[0],g=t[1],m=t[2],x=t[3],b=t[4],T=t[5],A=t[6],C=t[7],S=t[8],v=i*p+s*g+u*m,D=o*p+a*g+f*m,O=r*p+c*g+d*m,R=i*x+s*b+u*T,M=o*x+a*b+f*T,L=r*x+c*b+d*T,_=i*A+s*C+u*S,E=o*A+a*C+f*S,w=r*A+c*C+d*S;return n[0]=v,n[1]=D,n[2]=O,n[3]=0,n[4]=R,n[5]=M,n[6]=L,n[7]=0,n[8]=_,n[9]=E,n[10]=w,n[11]=0,n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};tt.multiplyByTranslation=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=i*e[0]+o*e[4]+r*e[8]+e[12],a=i*e[1]+o*e[5]+r*e[9]+e[13],c=i*e[2]+o*e[6]+r*e[10]+e[14];return n[0]=e[0],n[1]=e[1],n[2]=e[2],n[3]=e[3],n[4]=e[4],n[5]=e[5],n[6]=e[6],n[7]=e[7],n[8]=e[8],n[9]=e[9],n[10]=e[10],n[11]=e[11],n[12]=s,n[13]=a,n[14]=c,n[15]=e[15],n};tt.multiplyByScale=function(e,t,n){let i=t.x,o=t.y,r=t.z;return i===1&&o===1&&r===1?tt.clone(e,n):(n[0]=i*e[0],n[1]=i*e[1],n[2]=i*e[2],n[3]=e[3],n[4]=o*e[4],n[5]=o*e[5],n[6]=o*e[6],n[7]=e[7],n[8]=r*e[8],n[9]=r*e[9],n[10]=r*e[10],n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n)};tt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3],n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7],n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11],n[12]=e[12],n[13]=e[13],n[14]=e[14],n[15]=e[15],n};tt.multiplyByVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=t.w,a=e[0]*i+e[4]*o+e[8]*r+e[12]*s,c=e[1]*i+e[5]*o+e[9]*r+e[13]*s,u=e[2]*i+e[6]*o+e[10]*r+e[14]*s,f=e[3]*i+e[7]*o+e[11]*r+e[15]*s;return n.x=a,n.y=c,n.z=u,n.w=f,n};tt.multiplyByPointAsVector=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r,a=e[1]*i+e[5]*o+e[9]*r,c=e[2]*i+e[6]*o+e[10]*r;return n.x=s,n.y=a,n.z=c,n};tt.multiplyByPoint=function(e,t,n){let i=t.x,o=t.y,r=t.z,s=e[0]*i+e[4]*o+e[8]*r+e[12],a=e[1]*i+e[5]*o+e[9]*r+e[13],c=e[2]*i+e[6]*o+e[10]*r+e[14];return n.x=s,n.y=a,n.z=c,n};tt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n[4]=e[4]*t,n[5]=e[5]*t,n[6]=e[6]*t,n[7]=e[7]*t,n[8]=e[8]*t,n[9]=e[9]*t,n[10]=e[10]*t,n[11]=e[11]*t,n[12]=e[12]*t,n[13]=e[13]*t,n[14]=e[14]*t,n[15]=e[15]*t,n};tt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t[4]=-e[4],t[5]=-e[5],t[6]=-e[6],t[7]=-e[7],t[8]=-e[8],t[9]=-e[9],t[10]=-e[10],t[11]=-e[11],t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=-e[15],t};tt.transpose=function(e,t){let n=e[1],i=e[2],o=e[3],r=e[6],s=e[7],a=e[11];return t[0]=e[0],t[1]=e[4],t[2]=e[8],t[3]=e[12],t[4]=n,t[5]=e[5],t[6]=e[9],t[7]=e[13],t[8]=i,t[9]=r,t[10]=e[10],t[11]=e[14],t[12]=o,t[13]=s,t[14]=a,t[15]=e[15],t};tt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t[4]=Math.abs(e[4]),t[5]=Math.abs(e[5]),t[6]=Math.abs(e[6]),t[7]=Math.abs(e[7]),t[8]=Math.abs(e[8]),t[9]=Math.abs(e[9]),t[10]=Math.abs(e[10]),t[11]=Math.abs(e[11]),t[12]=Math.abs(e[12]),t[13]=Math.abs(e[13]),t[14]=Math.abs(e[14]),t[15]=Math.abs(e[15]),t};tt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[12]===t[12]&&e[13]===t[13]&&e[14]===t[14]&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[4]===t[4]&&e[5]===t[5]&&e[6]===t[6]&&e[8]===t[8]&&e[9]===t[9]&&e[10]===t[10]&&e[3]===t[3]&&e[7]===t[7]&&e[11]===t[11]&&e[15]===t[15]};tt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n&&Math.abs(e[4]-t[4])<=n&&Math.abs(e[5]-t[5])<=n&&Math.abs(e[6]-t[6])<=n&&Math.abs(e[7]-t[7])<=n&&Math.abs(e[8]-t[8])<=n&&Math.abs(e[9]-t[9])<=n&&Math.abs(e[10]-t[10])<=n&&Math.abs(e[11]-t[11])<=n&&Math.abs(e[12]-t[12])<=n&&Math.abs(e[13]-t[13])<=n&&Math.abs(e[14]-t[14])<=n&&Math.abs(e[15]-t[15])<=n};tt.getTranslation=function(e,t){return t.x=e[12],t.y=e[13],t.z=e[14],t};tt.getMatrix3=function(e,t){return t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[4],t[4]=e[5],t[5]=e[6],t[6]=e[8],t[7]=e[9],t[8]=e[10],t};var sEe=new $,aEe=new $,cEe=new oe,lEe=new oe(0,0,0,1);tt.inverse=function(e,t){let n=e[0],i=e[4],o=e[8],r=e[12],s=e[1],a=e[5],c=e[9],u=e[13],f=e[2],d=e[6],p=e[10],g=e[14],m=e[3],x=e[7],b=e[11],T=e[15],A=p*T,C=g*b,S=d*T,v=g*x,D=d*b,O=p*x,R=f*T,M=g*m,L=f*b,_=p*m,E=f*x,w=d*m,I=A*a+v*c+D*u-(C*a+S*c+O*u),N=C*s+R*c+_*u-(A*s+M*c+L*u),B=S*s+M*a+E*u-(v*s+R*a+w*u),H=O*s+L*a+w*c-(D*s+_*a+E*c),V=C*i+S*o+O*r-(A*i+v*o+D*r),G=A*n+M*o+L*r-(C*n+R*o+_*r),k=v*n+R*i+w*r-(S*n+M*i+E*r),W=D*n+_*i+E*o-(O*n+L*i+w*o);A=o*u,C=r*c,S=i*u,v=r*a,D=i*c,O=o*a,R=n*u,M=r*s,L=n*c,_=o*s,E=n*a,w=i*s;let q=A*x+v*b+D*T-(C*x+S*b+O*T),J=C*m+R*b+_*T-(A*m+M*b+L*T),j=S*m+M*x+E*T-(v*m+R*x+w*T),Z=O*m+L*x+w*b-(D*m+_*x+E*b),Q=S*p+O*g+C*d-(D*g+A*d+v*p),de=L*g+A*f+M*p-(R*p+_*g+C*f),ye=R*d+w*g+v*f-(E*g+S*f+M*d),ae=E*p+D*f+_*d-(L*d+w*p+O*f),_e=n*I+i*N+o*B+r*H;if(Math.abs(_e)<P.EPSILON21){if($.equalsEpsilon(tt.getMatrix3(e,sEe),aEe,P.EPSILON7)&&oe.equals(tt.getRow(e,3,cEe),lEe))return t[0]=0,t[1]=0,t[2]=0,t[3]=0,t[4]=0,t[5]=0,t[6]=0,t[7]=0,t[8]=0,t[9]=0,t[10]=0,t[11]=0,t[12]=-e[12],t[13]=-e[13],t[14]=-e[14],t[15]=1,t;throw new ce("matrix is not invertible because its determinate is zero.")}return _e=1/_e,t[0]=I*_e,t[1]=N*_e,t[2]=B*_e,t[3]=H*_e,t[4]=V*_e,t[5]=G*_e,t[6]=k*_e,t[7]=W*_e,t[8]=q*_e,t[9]=J*_e,t[10]=j*_e,t[11]=Z*_e,t[12]=Q*_e,t[13]=de*_e,t[14]=ye*_e,t[15]=ae*_e,t};tt.inverseTransformation=function(e,t){let n=e[0],i=e[1],o=e[2],r=e[4],s=e[5],a=e[6],c=e[8],u=e[9],f=e[10],d=e[12],p=e[13],g=e[14],m=-n*d-i*p-o*g,x=-r*d-s*p-a*g,b=-c*d-u*p-f*g;return t[0]=n,t[1]=r,t[2]=c,t[3]=0,t[4]=i,t[5]=s,t[6]=u,t[7]=0,t[8]=o,t[9]=a,t[10]=f,t[11]=0,t[12]=m,t[13]=x,t[14]=b,t[15]=1,t};var uEe=new tt;tt.inverseTranspose=function(e,t){return tt.inverse(tt.transpose(e,uEe),t)};tt.IDENTITY=Object.freeze(new tt(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1));tt.ZERO=Object.freeze(new tt(0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0));tt.COLUMN0ROW0=0;tt.COLUMN0ROW1=1;tt.COLUMN0ROW2=2;tt.COLUMN0ROW3=3;tt.COLUMN1ROW0=4;tt.COLUMN1ROW1=5;tt.COLUMN1ROW2=6;tt.COLUMN1ROW3=7;tt.COLUMN2ROW0=8;tt.COLUMN2ROW1=9;tt.COLUMN2ROW2=10;tt.COLUMN2ROW3=11;tt.COLUMN3ROW0=12;tt.COLUMN3ROW1=13;tt.COLUMN3ROW2=14;tt.COLUMN3ROW3=15;Object.defineProperties(tt.prototype,{length:{get:function(){return tt.packedLength}}});tt.prototype.clone=function(e){return tt.clone(this,e)};tt.prototype.equals=function(e){return tt.equals(this,e)};tt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]&&e[4]===t[n+4]&&e[5]===t[n+5]&&e[6]===t[n+6]&&e[7]===t[n+7]&&e[8]===t[n+8]&&e[9]===t[n+9]&&e[10]===t[n+10]&&e[11]===t[n+11]&&e[12]===t[n+12]&&e[13]===t[n+13]&&e[14]===t[n+14]&&e[15]===t[n+15]};tt.prototype.equalsEpsilon=function(e,t){return tt.equalsEpsilon(this,e,t)};tt.prototype.toString=function(){return`(${this[0]}, ${this[4]}, ${this[8]}, ${this[12]}) +(${this[1]}, ${this[5]}, ${this[9]}, ${this[13]}) +(${this[2]}, ${this[6]}, ${this[10]}, ${this[14]}) +(${this[3]}, ${this[7]}, ${this[11]}, ${this[15]})`};var F=tt;var fEe={DEPTH_BUFFER_BIT:256,STENCIL_BUFFER_BIT:1024,COLOR_BUFFER_BIT:16384,POINTS:0,LINES:1,LINE_LOOP:2,LINE_STRIP:3,TRIANGLES:4,TRIANGLE_STRIP:5,TRIANGLE_FAN:6,ZERO:0,ONE:1,SRC_COLOR:768,ONE_MINUS_SRC_COLOR:769,SRC_ALPHA:770,ONE_MINUS_SRC_ALPHA:771,DST_ALPHA:772,ONE_MINUS_DST_ALPHA:773,DST_COLOR:774,ONE_MINUS_DST_COLOR:775,SRC_ALPHA_SATURATE:776,FUNC_ADD:32774,BLEND_EQUATION:32777,BLEND_EQUATION_RGB:32777,BLEND_EQUATION_ALPHA:34877,FUNC_SUBTRACT:32778,FUNC_REVERSE_SUBTRACT:32779,BLEND_DST_RGB:32968,BLEND_SRC_RGB:32969,BLEND_DST_ALPHA:32970,BLEND_SRC_ALPHA:32971,CONSTANT_COLOR:32769,ONE_MINUS_CONSTANT_COLOR:32770,CONSTANT_ALPHA:32771,ONE_MINUS_CONSTANT_ALPHA:32772,BLEND_COLOR:32773,ARRAY_BUFFER:34962,ELEMENT_ARRAY_BUFFER:34963,ARRAY_BUFFER_BINDING:34964,ELEMENT_ARRAY_BUFFER_BINDING:34965,STREAM_DRAW:35040,STATIC_DRAW:35044,DYNAMIC_DRAW:35048,BUFFER_SIZE:34660,BUFFER_USAGE:34661,CURRENT_VERTEX_ATTRIB:34342,FRONT:1028,BACK:1029,FRONT_AND_BACK:1032,CULL_FACE:2884,BLEND:3042,DITHER:3024,STENCIL_TEST:2960,DEPTH_TEST:2929,SCISSOR_TEST:3089,POLYGON_OFFSET_FILL:32823,SAMPLE_ALPHA_TO_COVERAGE:32926,SAMPLE_COVERAGE:32928,NO_ERROR:0,INVALID_ENUM:1280,INVALID_VALUE:1281,INVALID_OPERATION:1282,OUT_OF_MEMORY:1285,CW:2304,CCW:2305,LINE_WIDTH:2849,ALIASED_POINT_SIZE_RANGE:33901,ALIASED_LINE_WIDTH_RANGE:33902,CULL_FACE_MODE:2885,FRONT_FACE:2886,DEPTH_RANGE:2928,DEPTH_WRITEMASK:2930,DEPTH_CLEAR_VALUE:2931,DEPTH_FUNC:2932,STENCIL_CLEAR_VALUE:2961,STENCIL_FUNC:2962,STENCIL_FAIL:2964,STENCIL_PASS_DEPTH_FAIL:2965,STENCIL_PASS_DEPTH_PASS:2966,STENCIL_REF:2967,STENCIL_VALUE_MASK:2963,STENCIL_WRITEMASK:2968,STENCIL_BACK_FUNC:34816,STENCIL_BACK_FAIL:34817,STENCIL_BACK_PASS_DEPTH_FAIL:34818,STENCIL_BACK_PASS_DEPTH_PASS:34819,STENCIL_BACK_REF:36003,STENCIL_BACK_VALUE_MASK:36004,STENCIL_BACK_WRITEMASK:36005,VIEWPORT:2978,SCISSOR_BOX:3088,COLOR_CLEAR_VALUE:3106,COLOR_WRITEMASK:3107,UNPACK_ALIGNMENT:3317,PACK_ALIGNMENT:3333,MAX_TEXTURE_SIZE:3379,MAX_VIEWPORT_DIMS:3386,SUBPIXEL_BITS:3408,RED_BITS:3410,GREEN_BITS:3411,BLUE_BITS:3412,ALPHA_BITS:3413,DEPTH_BITS:3414,STENCIL_BITS:3415,POLYGON_OFFSET_UNITS:10752,POLYGON_OFFSET_FACTOR:32824,TEXTURE_BINDING_2D:32873,SAMPLE_BUFFERS:32936,SAMPLES:32937,SAMPLE_COVERAGE_VALUE:32938,SAMPLE_COVERAGE_INVERT:32939,COMPRESSED_TEXTURE_FORMATS:34467,DONT_CARE:4352,FASTEST:4353,NICEST:4354,GENERATE_MIPMAP_HINT:33170,BYTE:5120,UNSIGNED_BYTE:5121,SHORT:5122,UNSIGNED_SHORT:5123,INT:5124,UNSIGNED_INT:5125,FLOAT:5126,DEPTH_COMPONENT:6402,ALPHA:6406,RGB:6407,RGBA:6408,LUMINANCE:6409,LUMINANCE_ALPHA:6410,UNSIGNED_SHORT_4_4_4_4:32819,UNSIGNED_SHORT_5_5_5_1:32820,UNSIGNED_SHORT_5_6_5:33635,FRAGMENT_SHADER:35632,VERTEX_SHADER:35633,MAX_VERTEX_ATTRIBS:34921,MAX_VERTEX_UNIFORM_VECTORS:36347,MAX_VARYING_VECTORS:36348,MAX_COMBINED_TEXTURE_IMAGE_UNITS:35661,MAX_VERTEX_TEXTURE_IMAGE_UNITS:35660,MAX_TEXTURE_IMAGE_UNITS:34930,MAX_FRAGMENT_UNIFORM_VECTORS:36349,SHADER_TYPE:35663,DELETE_STATUS:35712,LINK_STATUS:35714,VALIDATE_STATUS:35715,ATTACHED_SHADERS:35717,ACTIVE_UNIFORMS:35718,ACTIVE_ATTRIBUTES:35721,SHADING_LANGUAGE_VERSION:35724,CURRENT_PROGRAM:35725,NEVER:512,LESS:513,EQUAL:514,LEQUAL:515,GREATER:516,NOTEQUAL:517,GEQUAL:518,ALWAYS:519,KEEP:7680,REPLACE:7681,INCR:7682,DECR:7683,INVERT:5386,INCR_WRAP:34055,DECR_WRAP:34056,VENDOR:7936,RENDERER:7937,VERSION:7938,NEAREST:9728,LINEAR:9729,NEAREST_MIPMAP_NEAREST:9984,LINEAR_MIPMAP_NEAREST:9985,NEAREST_MIPMAP_LINEAR:9986,LINEAR_MIPMAP_LINEAR:9987,TEXTURE_MAG_FILTER:10240,TEXTURE_MIN_FILTER:10241,TEXTURE_WRAP_S:10242,TEXTURE_WRAP_T:10243,TEXTURE_2D:3553,TEXTURE:5890,TEXTURE_CUBE_MAP:34067,TEXTURE_BINDING_CUBE_MAP:34068,TEXTURE_CUBE_MAP_POSITIVE_X:34069,TEXTURE_CUBE_MAP_NEGATIVE_X:34070,TEXTURE_CUBE_MAP_POSITIVE_Y:34071,TEXTURE_CUBE_MAP_NEGATIVE_Y:34072,TEXTURE_CUBE_MAP_POSITIVE_Z:34073,TEXTURE_CUBE_MAP_NEGATIVE_Z:34074,MAX_CUBE_MAP_TEXTURE_SIZE:34076,TEXTURE0:33984,TEXTURE1:33985,TEXTURE2:33986,TEXTURE3:33987,TEXTURE4:33988,TEXTURE5:33989,TEXTURE6:33990,TEXTURE7:33991,TEXTURE8:33992,TEXTURE9:33993,TEXTURE10:33994,TEXTURE11:33995,TEXTURE12:33996,TEXTURE13:33997,TEXTURE14:33998,TEXTURE15:33999,TEXTURE16:34e3,TEXTURE17:34001,TEXTURE18:34002,TEXTURE19:34003,TEXTURE20:34004,TEXTURE21:34005,TEXTURE22:34006,TEXTURE23:34007,TEXTURE24:34008,TEXTURE25:34009,TEXTURE26:34010,TEXTURE27:34011,TEXTURE28:34012,TEXTURE29:34013,TEXTURE30:34014,TEXTURE31:34015,ACTIVE_TEXTURE:34016,REPEAT:10497,CLAMP_TO_EDGE:33071,MIRRORED_REPEAT:33648,FLOAT_VEC2:35664,FLOAT_VEC3:35665,FLOAT_VEC4:35666,INT_VEC2:35667,INT_VEC3:35668,INT_VEC4:35669,BOOL:35670,BOOL_VEC2:35671,BOOL_VEC3:35672,BOOL_VEC4:35673,FLOAT_MAT2:35674,FLOAT_MAT3:35675,FLOAT_MAT4:35676,SAMPLER_2D:35678,SAMPLER_CUBE:35680,VERTEX_ATTRIB_ARRAY_ENABLED:34338,VERTEX_ATTRIB_ARRAY_SIZE:34339,VERTEX_ATTRIB_ARRAY_STRIDE:34340,VERTEX_ATTRIB_ARRAY_TYPE:34341,VERTEX_ATTRIB_ARRAY_NORMALIZED:34922,VERTEX_ATTRIB_ARRAY_POINTER:34373,VERTEX_ATTRIB_ARRAY_BUFFER_BINDING:34975,IMPLEMENTATION_COLOR_READ_TYPE:35738,IMPLEMENTATION_COLOR_READ_FORMAT:35739,COMPILE_STATUS:35713,LOW_FLOAT:36336,MEDIUM_FLOAT:36337,HIGH_FLOAT:36338,LOW_INT:36339,MEDIUM_INT:36340,HIGH_INT:36341,FRAMEBUFFER:36160,RENDERBUFFER:36161,RGBA4:32854,RGB5_A1:32855,RGB565:36194,DEPTH_COMPONENT16:33189,STENCIL_INDEX:6401,STENCIL_INDEX8:36168,DEPTH_STENCIL:34041,RENDERBUFFER_WIDTH:36162,RENDERBUFFER_HEIGHT:36163,RENDERBUFFER_INTERNAL_FORMAT:36164,RENDERBUFFER_RED_SIZE:36176,RENDERBUFFER_GREEN_SIZE:36177,RENDERBUFFER_BLUE_SIZE:36178,RENDERBUFFER_ALPHA_SIZE:36179,RENDERBUFFER_DEPTH_SIZE:36180,RENDERBUFFER_STENCIL_SIZE:36181,FRAMEBUFFER_ATTACHMENT_OBJECT_TYPE:36048,FRAMEBUFFER_ATTACHMENT_OBJECT_NAME:36049,FRAMEBUFFER_ATTACHMENT_TEXTURE_LEVEL:36050,FRAMEBUFFER_ATTACHMENT_TEXTURE_CUBE_MAP_FACE:36051,COLOR_ATTACHMENT0:36064,DEPTH_ATTACHMENT:36096,STENCIL_ATTACHMENT:36128,DEPTH_STENCIL_ATTACHMENT:33306,NONE:0,FRAMEBUFFER_COMPLETE:36053,FRAMEBUFFER_INCOMPLETE_ATTACHMENT:36054,FRAMEBUFFER_INCOMPLETE_MISSING_ATTACHMENT:36055,FRAMEBUFFER_INCOMPLETE_DIMENSIONS:36057,FRAMEBUFFER_UNSUPPORTED:36061,FRAMEBUFFER_BINDING:36006,RENDERBUFFER_BINDING:36007,MAX_RENDERBUFFER_SIZE:34024,INVALID_FRAMEBUFFER_OPERATION:1286,UNPACK_FLIP_Y_WEBGL:37440,UNPACK_PREMULTIPLY_ALPHA_WEBGL:37441,CONTEXT_LOST_WEBGL:37442,UNPACK_COLORSPACE_CONVERSION_WEBGL:37443,BROWSER_DEFAULT_WEBGL:37444,COMPRESSED_RGB_S3TC_DXT1_EXT:33776,COMPRESSED_RGBA_S3TC_DXT1_EXT:33777,COMPRESSED_RGBA_S3TC_DXT3_EXT:33778,COMPRESSED_RGBA_S3TC_DXT5_EXT:33779,COMPRESSED_RGB_PVRTC_4BPPV1_IMG:35840,COMPRESSED_RGB_PVRTC_2BPPV1_IMG:35841,COMPRESSED_RGBA_PVRTC_4BPPV1_IMG:35842,COMPRESSED_RGBA_PVRTC_2BPPV1_IMG:35843,COMPRESSED_RGBA_ASTC_4x4_WEBGL:37808,COMPRESSED_RGB_ETC1_WEBGL:36196,COMPRESSED_RGBA_BPTC_UNORM:36492,HALF_FLOAT_OES:36193,DOUBLE:5130,READ_BUFFER:3074,UNPACK_ROW_LENGTH:3314,UNPACK_SKIP_ROWS:3315,UNPACK_SKIP_PIXELS:3316,PACK_ROW_LENGTH:3330,PACK_SKIP_ROWS:3331,PACK_SKIP_PIXELS:3332,COLOR:6144,DEPTH:6145,STENCIL:6146,RED:6403,RGB8:32849,RGBA8:32856,RGB10_A2:32857,TEXTURE_BINDING_3D:32874,UNPACK_SKIP_IMAGES:32877,UNPACK_IMAGE_HEIGHT:32878,TEXTURE_3D:32879,TEXTURE_WRAP_R:32882,MAX_3D_TEXTURE_SIZE:32883,UNSIGNED_INT_2_10_10_10_REV:33640,MAX_ELEMENTS_VERTICES:33e3,MAX_ELEMENTS_INDICES:33001,TEXTURE_MIN_LOD:33082,TEXTURE_MAX_LOD:33083,TEXTURE_BASE_LEVEL:33084,TEXTURE_MAX_LEVEL:33085,MIN:32775,MAX:32776,DEPTH_COMPONENT24:33190,MAX_TEXTURE_LOD_BIAS:34045,TEXTURE_COMPARE_MODE:34892,TEXTURE_COMPARE_FUNC:34893,CURRENT_QUERY:34917,QUERY_RESULT:34918,QUERY_RESULT_AVAILABLE:34919,STREAM_READ:35041,STREAM_COPY:35042,STATIC_READ:35045,STATIC_COPY:35046,DYNAMIC_READ:35049,DYNAMIC_COPY:35050,MAX_DRAW_BUFFERS:34852,DRAW_BUFFER0:34853,DRAW_BUFFER1:34854,DRAW_BUFFER2:34855,DRAW_BUFFER3:34856,DRAW_BUFFER4:34857,DRAW_BUFFER5:34858,DRAW_BUFFER6:34859,DRAW_BUFFER7:34860,DRAW_BUFFER8:34861,DRAW_BUFFER9:34862,DRAW_BUFFER10:34863,DRAW_BUFFER11:34864,DRAW_BUFFER12:34865,DRAW_BUFFER13:34866,DRAW_BUFFER14:34867,DRAW_BUFFER15:34868,MAX_FRAGMENT_UNIFORM_COMPONENTS:35657,MAX_VERTEX_UNIFORM_COMPONENTS:35658,SAMPLER_3D:35679,SAMPLER_2D_SHADOW:35682,FRAGMENT_SHADER_DERIVATIVE_HINT:35723,PIXEL_PACK_BUFFER:35051,PIXEL_UNPACK_BUFFER:35052,PIXEL_PACK_BUFFER_BINDING:35053,PIXEL_UNPACK_BUFFER_BINDING:35055,FLOAT_MAT2x3:35685,FLOAT_MAT2x4:35686,FLOAT_MAT3x2:35687,FLOAT_MAT3x4:35688,FLOAT_MAT4x2:35689,FLOAT_MAT4x3:35690,SRGB:35904,SRGB8:35905,SRGB8_ALPHA8:35907,COMPARE_REF_TO_TEXTURE:34894,RGBA32F:34836,RGB32F:34837,RGBA16F:34842,RGB16F:34843,VERTEX_ATTRIB_ARRAY_INTEGER:35069,MAX_ARRAY_TEXTURE_LAYERS:35071,MIN_PROGRAM_TEXEL_OFFSET:35076,MAX_PROGRAM_TEXEL_OFFSET:35077,MAX_VARYING_COMPONENTS:35659,TEXTURE_2D_ARRAY:35866,TEXTURE_BINDING_2D_ARRAY:35869,R11F_G11F_B10F:35898,UNSIGNED_INT_10F_11F_11F_REV:35899,RGB9_E5:35901,UNSIGNED_INT_5_9_9_9_REV:35902,TRANSFORM_FEEDBACK_BUFFER_MODE:35967,MAX_TRANSFORM_FEEDBACK_SEPARATE_COMPONENTS:35968,TRANSFORM_FEEDBACK_VARYINGS:35971,TRANSFORM_FEEDBACK_BUFFER_START:35972,TRANSFORM_FEEDBACK_BUFFER_SIZE:35973,TRANSFORM_FEEDBACK_PRIMITIVES_WRITTEN:35976,RASTERIZER_DISCARD:35977,MAX_TRANSFORM_FEEDBACK_INTERLEAVED_COMPONENTS:35978,MAX_TRANSFORM_FEEDBACK_SEPARATE_ATTRIBS:35979,INTERLEAVED_ATTRIBS:35980,SEPARATE_ATTRIBS:35981,TRANSFORM_FEEDBACK_BUFFER:35982,TRANSFORM_FEEDBACK_BUFFER_BINDING:35983,RGBA32UI:36208,RGB32UI:36209,RGBA16UI:36214,RGB16UI:36215,RGBA8UI:36220,RGB8UI:36221,RGBA32I:36226,RGB32I:36227,RGBA16I:36232,RGB16I:36233,RGBA8I:36238,RGB8I:36239,RED_INTEGER:36244,RGB_INTEGER:36248,RGBA_INTEGER:36249,SAMPLER_2D_ARRAY:36289,SAMPLER_2D_ARRAY_SHADOW:36292,SAMPLER_CUBE_SHADOW:36293,UNSIGNED_INT_VEC2:36294,UNSIGNED_INT_VEC3:36295,UNSIGNED_INT_VEC4:36296,INT_SAMPLER_2D:36298,INT_SAMPLER_3D:36299,INT_SAMPLER_CUBE:36300,INT_SAMPLER_2D_ARRAY:36303,UNSIGNED_INT_SAMPLER_2D:36306,UNSIGNED_INT_SAMPLER_3D:36307,UNSIGNED_INT_SAMPLER_CUBE:36308,UNSIGNED_INT_SAMPLER_2D_ARRAY:36311,DEPTH_COMPONENT32F:36012,DEPTH32F_STENCIL8:36013,FLOAT_32_UNSIGNED_INT_24_8_REV:36269,FRAMEBUFFER_ATTACHMENT_COLOR_ENCODING:33296,FRAMEBUFFER_ATTACHMENT_COMPONENT_TYPE:33297,FRAMEBUFFER_ATTACHMENT_RED_SIZE:33298,FRAMEBUFFER_ATTACHMENT_GREEN_SIZE:33299,FRAMEBUFFER_ATTACHMENT_BLUE_SIZE:33300,FRAMEBUFFER_ATTACHMENT_ALPHA_SIZE:33301,FRAMEBUFFER_ATTACHMENT_DEPTH_SIZE:33302,FRAMEBUFFER_ATTACHMENT_STENCIL_SIZE:33303,FRAMEBUFFER_DEFAULT:33304,UNSIGNED_INT_24_8:34042,DEPTH24_STENCIL8:35056,UNSIGNED_NORMALIZED:35863,DRAW_FRAMEBUFFER_BINDING:36006,READ_FRAMEBUFFER:36008,DRAW_FRAMEBUFFER:36009,READ_FRAMEBUFFER_BINDING:36010,RENDERBUFFER_SAMPLES:36011,FRAMEBUFFER_ATTACHMENT_TEXTURE_LAYER:36052,MAX_COLOR_ATTACHMENTS:36063,COLOR_ATTACHMENT1:36065,COLOR_ATTACHMENT2:36066,COLOR_ATTACHMENT3:36067,COLOR_ATTACHMENT4:36068,COLOR_ATTACHMENT5:36069,COLOR_ATTACHMENT6:36070,COLOR_ATTACHMENT7:36071,COLOR_ATTACHMENT8:36072,COLOR_ATTACHMENT9:36073,COLOR_ATTACHMENT10:36074,COLOR_ATTACHMENT11:36075,COLOR_ATTACHMENT12:36076,COLOR_ATTACHMENT13:36077,COLOR_ATTACHMENT14:36078,COLOR_ATTACHMENT15:36079,FRAMEBUFFER_INCOMPLETE_MULTISAMPLE:36182,MAX_SAMPLES:36183,HALF_FLOAT:5131,RG:33319,RG_INTEGER:33320,R8:33321,RG8:33323,R16F:33325,R32F:33326,RG16F:33327,RG32F:33328,R8I:33329,R8UI:33330,R16I:33331,R16UI:33332,R32I:33333,R32UI:33334,RG8I:33335,RG8UI:33336,RG16I:33337,RG16UI:33338,RG32I:33339,RG32UI:33340,VERTEX_ARRAY_BINDING:34229,R8_SNORM:36756,RG8_SNORM:36757,RGB8_SNORM:36758,RGBA8_SNORM:36759,SIGNED_NORMALIZED:36764,COPY_READ_BUFFER:36662,COPY_WRITE_BUFFER:36663,COPY_READ_BUFFER_BINDING:36662,COPY_WRITE_BUFFER_BINDING:36663,UNIFORM_BUFFER:35345,UNIFORM_BUFFER_BINDING:35368,UNIFORM_BUFFER_START:35369,UNIFORM_BUFFER_SIZE:35370,MAX_VERTEX_UNIFORM_BLOCKS:35371,MAX_FRAGMENT_UNIFORM_BLOCKS:35373,MAX_COMBINED_UNIFORM_BLOCKS:35374,MAX_UNIFORM_BUFFER_BINDINGS:35375,MAX_UNIFORM_BLOCK_SIZE:35376,MAX_COMBINED_VERTEX_UNIFORM_COMPONENTS:35377,MAX_COMBINED_FRAGMENT_UNIFORM_COMPONENTS:35379,UNIFORM_BUFFER_OFFSET_ALIGNMENT:35380,ACTIVE_UNIFORM_BLOCKS:35382,UNIFORM_TYPE:35383,UNIFORM_SIZE:35384,UNIFORM_BLOCK_INDEX:35386,UNIFORM_OFFSET:35387,UNIFORM_ARRAY_STRIDE:35388,UNIFORM_MATRIX_STRIDE:35389,UNIFORM_IS_ROW_MAJOR:35390,UNIFORM_BLOCK_BINDING:35391,UNIFORM_BLOCK_DATA_SIZE:35392,UNIFORM_BLOCK_ACTIVE_UNIFORMS:35394,UNIFORM_BLOCK_ACTIVE_UNIFORM_INDICES:35395,UNIFORM_BLOCK_REFERENCED_BY_VERTEX_SHADER:35396,UNIFORM_BLOCK_REFERENCED_BY_FRAGMENT_SHADER:35398,INVALID_INDEX:4294967295,MAX_VERTEX_OUTPUT_COMPONENTS:37154,MAX_FRAGMENT_INPUT_COMPONENTS:37157,MAX_SERVER_WAIT_TIMEOUT:37137,OBJECT_TYPE:37138,SYNC_CONDITION:37139,SYNC_STATUS:37140,SYNC_FLAGS:37141,SYNC_FENCE:37142,SYNC_GPU_COMMANDS_COMPLETE:37143,UNSIGNALED:37144,SIGNALED:37145,ALREADY_SIGNALED:37146,TIMEOUT_EXPIRED:37147,CONDITION_SATISFIED:37148,WAIT_FAILED:37149,SYNC_FLUSH_COMMANDS_BIT:1,VERTEX_ATTRIB_ARRAY_DIVISOR:35070,ANY_SAMPLES_PASSED:35887,ANY_SAMPLES_PASSED_CONSERVATIVE:36202,SAMPLER_BINDING:35097,RGB10_A2UI:36975,INT_2_10_10_10_REV:36255,TRANSFORM_FEEDBACK:36386,TRANSFORM_FEEDBACK_PAUSED:36387,TRANSFORM_FEEDBACK_ACTIVE:36388,TRANSFORM_FEEDBACK_BINDING:36389,COMPRESSED_R11_EAC:37488,COMPRESSED_SIGNED_R11_EAC:37489,COMPRESSED_RG11_EAC:37490,COMPRESSED_SIGNED_RG11_EAC:37491,COMPRESSED_RGB8_ETC2:37492,COMPRESSED_SRGB8_ETC2:37493,COMPRESSED_RGB8_PUNCHTHROUGH_ALPHA1_ETC2:37494,COMPRESSED_SRGB8_PUNCHTHROUGH_ALPHA1_ETC2:37495,COMPRESSED_RGBA8_ETC2_EAC:37496,COMPRESSED_SRGB8_ALPHA8_ETC2_EAC:37497,TEXTURE_IMMUTABLE_FORMAT:37167,MAX_ELEMENT_INDEX:36203,TEXTURE_IMMUTABLE_LEVELS:33503,MAX_TEXTURE_MAX_ANISOTROPY_EXT:34047},te=Object.freeze(fEe);var dEe=new h;function It(e){this._size=e.size,this._datatype=e.datatype,this.getValue=e.getValue}var Ys={};Ys[te.FLOAT]="float";Ys[te.FLOAT_VEC2]="vec2";Ys[te.FLOAT_VEC3]="vec3";Ys[te.FLOAT_VEC4]="vec4";Ys[te.INT]="int";Ys[te.INT_VEC2]="ivec2";Ys[te.INT_VEC3]="ivec3";Ys[te.INT_VEC4]="ivec4";Ys[te.BOOL]="bool";Ys[te.BOOL_VEC2]="bvec2";Ys[te.BOOL_VEC3]="bvec3";Ys[te.BOOL_VEC4]="bvec4";Ys[te.FLOAT_MAT2]="mat2";Ys[te.FLOAT_MAT3]="mat3";Ys[te.FLOAT_MAT4]="mat4";Ys[te.SAMPLER_2D]="sampler2D";Ys[te.SAMPLER_CUBE]="samplerCube";It.prototype.getDeclaration=function(e){let t=`uniform ${Ys[this._datatype]} ${e}`,n=this._size;return n===1?t+=";":t+=`[${n.toString()}];`,t};var hEe={czm_viewport:new It({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.viewportCartesian4}}),czm_viewportOrthographic:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportOrthographic}}),czm_viewportTransformation:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewportTransformation}}),czm_globeDepthTexture:new It({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.globeDepthTexture}}),czm_model:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.model}}),czm_inverseModel:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModel}}),czm_view:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view}}),czm_view3D:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.view3D}}),czm_viewRotation:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation}}),czm_viewRotation3D:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.viewRotation3D}}),czm_inverseView:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView}}),czm_inverseView3D:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseView3D}}),czm_inverseViewRotation:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation}}),czm_inverseViewRotation3D:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseViewRotation3D}}),czm_projection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.projection}}),czm_inverseProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseProjection}}),czm_infiniteProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.infiniteProjection}}),czm_modelView:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView}}),czm_modelView3D:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelView3D}}),czm_modelViewRelativeToEye:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewRelativeToEye}}),czm_inverseModelView:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView}}),czm_inverseModelView3D:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelView3D}}),czm_viewProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.viewProjection}}),czm_inverseViewProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseViewProjection}}),czm_modelViewProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjection}}),czm_inverseModelViewProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.inverseModelViewProjection}}),czm_modelViewProjectionRelativeToEye:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewProjectionRelativeToEye}}),czm_modelViewInfiniteProjection:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelViewInfiniteProjection}}),czm_orthographicIn3D:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.orthographicIn3D?1:0}}),czm_normal:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal}}),czm_normal3D:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.normal3D}}),czm_inverseNormal:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal}}),czm_inverseNormal3D:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.inverseNormal3D}}),czm_eyeHeight:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.eyeHeight}}),czm_eyeHeight2D:new It({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeHeight2D}}),czm_eyeEllipsoidNormalEC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.eyeEllipsoidNormalEC}}),czm_eyeEllipsoidCurvature:new It({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.eyeEllipsoidCurvature}}),czm_modelToEnu:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.modelToEnu}}),czm_enuToModel:new It({size:1,datatype:te.FLOAT_MAT4,getValue:function(e){return e.enuToModel}}),czm_entireFrustum:new It({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.entireFrustum}}),czm_currentFrustum:new It({size:1,datatype:te.FLOAT_VEC2,getValue:function(e){return e.currentFrustum}}),czm_frustumPlanes:new It({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.frustumPlanes}}),czm_farDepthFromNearPlusOne:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.farDepthFromNearPlusOne}}),czm_log2FarDepthFromNearPlusOne:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.log2FarDepthFromNearPlusOne}}),czm_oneOverLog2FarDepthFromNearPlusOne:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.oneOverLog2FarDepthFromNearPlusOne}}),czm_sunPositionWC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionWC}}),czm_sunPositionColumbusView:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunPositionColumbusView}}),czm_sunDirectionEC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionEC}}),czm_sunDirectionWC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sunDirectionWC}}),czm_moonDirectionEC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.moonDirectionEC}}),czm_lightDirectionEC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionEC}}),czm_lightDirectionWC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightDirectionWC}}),czm_lightColor:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColor}}),czm_lightColorHdr:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.lightColorHdr}}),czm_encodedCameraPositionMCHigh:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCHigh}}),czm_encodedCameraPositionMCLow:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.encodedCameraPositionMCLow}}),czm_viewerPositionWC:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return F.getTranslation(e.inverseView,dEe)}}),czm_frameNumber:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.frameNumber}}),czm_morphTime:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.morphTime}}),czm_sceneMode:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.frameState.mode}}),czm_pass:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.pass}}),czm_backgroundColor:new It({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.backgroundColor}}),czm_brdfLut:new It({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.brdfLut}}),czm_environmentMap:new It({size:1,datatype:te.SAMPLER_CUBE,getValue:function(e){return e.environmentMap}}),czm_specularEnvironmentMaps:new It({size:1,datatype:te.SAMPLER_2D,getValue:function(e){return e.specularEnvironmentMaps}}),czm_specularEnvironmentMapsMaximumLOD:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.specularEnvironmentMapsMaximumLOD}}),czm_sphericalHarmonicCoefficients:new It({size:9,datatype:te.FLOAT_VEC3,getValue:function(e){return e.sphericalHarmonicCoefficients}}),czm_temeToPseudoFixed:new It({size:1,datatype:te.FLOAT_MAT3,getValue:function(e){return e.temeToPseudoFixedMatrix}}),czm_pixelRatio:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.pixelRatio}}),czm_fogDensity:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogDensity}}),czm_fogVisualDensityScalar:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogVisualDensityScalar}}),czm_fogMinimumBrightness:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.fogMinimumBrightness}}),czm_atmosphereHsbShift:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereHsbShift}}),czm_atmosphereLightIntensity:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereLightIntensity}}),czm_atmosphereRayleighCoefficient:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereRayleighCoefficient}}),czm_atmosphereRayleighScaleHeight:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereRayleighScaleHeight}}),czm_atmosphereMieCoefficient:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.atmosphereMieCoefficient}}),czm_atmosphereMieScaleHeight:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieScaleHeight}}),czm_atmosphereMieAnisotropy:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereMieAnisotropy}}),czm_atmosphereDynamicLighting:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.atmosphereDynamicLighting}}),czm_splitPosition:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.splitPosition}}),czm_geometricToleranceOverMeter:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.geometricToleranceOverMeter}}),czm_minimumDisableDepthTestDistance:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.minimumDisableDepthTestDistance}}),czm_invertClassificationColor:new It({size:1,datatype:te.FLOAT_VEC4,getValue:function(e){return e.invertClassificationColor}}),czm_gamma:new It({size:1,datatype:te.FLOAT,getValue:function(e){return e.gamma}}),czm_ellipsoidRadii:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.radii}}),czm_ellipsoidInverseRadii:new It({size:1,datatype:te.FLOAT_VEC3,getValue:function(e){return e.ellipsoid.oneOverRadii}})},v_=hEe;function mEe(){return"xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g,function(e){let t=Math.random()*16|0;return(e==="x"?t:t&3|8).toString(16)})}var zn=mEe;function pEe(){return!0}function _Ee(e,t){t=y(t,"This object was destroyed, i.e., destroy() was called.");function n(){}for(let i in e)typeof e[i]=="function"&&(e[i]=n);e.isDestroyed=pEe}var ue=_Ee;var Is={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT};Is.getSizeInBytes=function(e){switch(e){case Is.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Is.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Is.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT}};Is.fromSizeInBytes=function(e){switch(e){case 2:return Is.UNSIGNED_SHORT;case 4:return Is.UNSIGNED_INT;case 1:return Is.UNSIGNED_BYTE}};Is.validate=function(e){return l(e)&&(e===Is.UNSIGNED_BYTE||e===Is.UNSIGNED_SHORT||e===Is.UNSIGNED_INT)};Is.createTypedArray=function(e,t){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t):new Uint16Array(t)};Is.createTypedArrayFromArrayBuffer=function(e,t,n,i){return e>=P.SIXTY_FOUR_KILOBYTES?new Uint32Array(t,n,i):new Uint16Array(t,n,i)};Is.fromTypedArray=function(e){if(e instanceof Uint8Array)return Is.UNSIGNED_BYTE;if(e instanceof Uint16Array)return Is.UNSIGNED_SHORT;if(e instanceof Uint32Array)return Is.UNSIGNED_INT};var Ne=Object.freeze(Is);var JP={STREAM_DRAW:te.STREAM_DRAW,STATIC_DRAW:te.STATIC_DRAW,DYNAMIC_DRAW:te.DYNAMIC_DRAW,validate:function(e){return e===JP.STREAM_DRAW||e===JP.STATIC_DRAW||e===JP.DYNAMIC_DRAW}},Fe=Object.freeze(JP);function Uu(e){e=y(e,y.EMPTY_OBJECT);let t=e.context._gl,n=e.bufferTarget,i=e.typedArray,o=e.sizeInBytes,r=e.usage,s=l(i);s&&(o=i.byteLength);let a=t.createBuffer();t.bindBuffer(n,a),t.bufferData(n,s?i:o,r),t.bindBuffer(n,null),this._id=zn(),this._gl=t,this._webgl2=e.context._webgl2,this._bufferTarget=n,this._sizeInBytes=o,this._usage=r,this._buffer=a,this.vertexArrayDestroyable=!0}Uu.createVertexBuffer=function(e){return new Uu({context:e.context,bufferTarget:te.ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage})};Uu.createIndexBuffer=function(e){let t=e.context,n=e.indexDatatype,i=Ne.getSizeInBytes(n),o=new Uu({context:t,bufferTarget:te.ELEMENT_ARRAY_BUFFER,typedArray:e.typedArray,sizeInBytes:e.sizeInBytes,usage:e.usage}),r=o.sizeInBytes/i;return Object.defineProperties(o,{indexDatatype:{get:function(){return n}},bytesPerIndex:{get:function(){return i}},numberOfIndices:{get:function(){return r}}}),o};Object.defineProperties(Uu.prototype,{sizeInBytes:{get:function(){return this._sizeInBytes}},usage:{get:function(){return this._usage}}});Uu.prototype._getBuffer=function(){return this._buffer};Uu.prototype.copyFromArrayView=function(e,t){t=y(t,0);let n=this._gl,i=this._bufferTarget;n.bindBuffer(i,this._buffer),n.bufferSubData(i,t,e),n.bindBuffer(i,null)};Uu.prototype.copyFromBuffer=function(e,t,n,i){let o=te.COPY_READ_BUFFER,r=te.COPY_WRITE_BUFFER,s=this._gl;s.bindBuffer(r,this._buffer),s.bindBuffer(o,e._buffer),s.copyBufferSubData(o,r,t,n,i),s.bindBuffer(r,null),s.bindBuffer(o,null)};Uu.prototype.getBufferData=function(e,t,n,i){t=y(t,0),n=y(n,0);let o=this._gl,r=te.COPY_READ_BUFFER;o.bindBuffer(r,this._buffer),o.getBufferSubData(r,t,e,n,i),o.bindBuffer(r,null)};Uu.prototype.isDestroyed=function(){return!1};Uu.prototype.destroy=function(){return this._gl.deleteBuffer(this._buffer),ue(this)};var yt=Uu;var w_,Sr={requestFullscreen:void 0,exitFullscreen:void 0,fullscreenEnabled:void 0,fullscreenElement:void 0,fullscreenchange:void 0,fullscreenerror:void 0},il={};Object.defineProperties(il,{element:{get:function(){if(il.supportsFullscreen())return document[Sr.fullscreenElement]}},changeEventName:{get:function(){if(il.supportsFullscreen())return Sr.fullscreenchange}},errorEventName:{get:function(){if(il.supportsFullscreen())return Sr.fullscreenerror}},enabled:{get:function(){if(il.supportsFullscreen())return document[Sr.fullscreenEnabled]}},fullscreen:{get:function(){if(il.supportsFullscreen())return il.element!==null}}});il.supportsFullscreen=function(){if(l(w_))return w_;w_=!1;let e=document.body;if(typeof e.requestFullscreen=="function")return Sr.requestFullscreen="requestFullscreen",Sr.exitFullscreen="exitFullscreen",Sr.fullscreenEnabled="fullscreenEnabled",Sr.fullscreenElement="fullscreenElement",Sr.fullscreenchange="fullscreenchange",Sr.fullscreenerror="fullscreenerror",w_=!0,w_;let t=["webkit","moz","o","ms","khtml"],n;for(let i=0,o=t.length;i<o;++i){let r=t[i];n=`${r}RequestFullscreen`,typeof e[n]=="function"?(Sr.requestFullscreen=n,w_=!0):(n=`${r}RequestFullScreen`,typeof e[n]=="function"&&(Sr.requestFullscreen=n,w_=!0)),n=`${r}ExitFullscreen`,typeof document[n]=="function"?Sr.exitFullscreen=n:(n=`${r}CancelFullScreen`,typeof document[n]=="function"&&(Sr.exitFullscreen=n)),n=`${r}FullscreenEnabled`,document[n]!==void 0?Sr.fullscreenEnabled=n:(n=`${r}FullScreenEnabled`,document[n]!==void 0&&(Sr.fullscreenEnabled=n)),n=`${r}FullscreenElement`,document[n]!==void 0?Sr.fullscreenElement=n:(n=`${r}FullScreenElement`,document[n]!==void 0&&(Sr.fullscreenElement=n)),n=`${r}fullscreenchange`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenChange"),Sr.fullscreenchange=n),n=`${r}fullscreenerror`,document[`on${n}`]!==void 0&&(r==="ms"&&(n="MSFullscreenError"),Sr.fullscreenerror=n)}return w_};il.requestFullscreen=function(e,t){il.supportsFullscreen()&&e[Sr.requestFullscreen]({vrDisplay:t})};il.exitFullscreen=function(){il.supportsFullscreen()&&document[Sr.exitFullscreen]()};il._names=Sr;var vr=il;var Ba;typeof navigator<"u"?Ba=navigator:Ba={};function _0(e){let t=e.split(".");for(let n=0,i=t.length;n<i;++n)t[n]=parseInt(t[n],10);return t}var e1,d$;function e5(){if(!l(e1)&&(e1=!1,!s1())){let e=/ Chrome\/([\.0-9]+)/.exec(Ba.userAgent);e!==null&&(e1=!0,d$=_0(e[1]))}return e1}function gEe(){return e5()&&d$}var t1,h$;function m$(){if(!l(t1)&&(t1=!1,!e5()&&!s1()&&/ Safari\/[\.0-9]+/.test(Ba.userAgent))){let e=/ Version\/([\.0-9]+)/.exec(Ba.userAgent);e!==null&&(t1=!0,h$=_0(e[1]))}return t1}function yEe(){return m$()&&h$}var n1,QG;function p$(){if(!l(n1)){n1=!1;let e=/ AppleWebKit\/([\.0-9]+)(\+?)/.exec(Ba.userAgent);e!==null&&(n1=!0,QG=_0(e[1]),QG.isNightly=!!e[2])}return n1}function xEe(){return p$()&&QG}var LS,JG;function _$(){if(!l(LS)){LS=!1;let e;Ba.appName==="Microsoft Internet Explorer"?(e=/MSIE ([0-9]{1,}[\.0-9]{0,})/.exec(Ba.userAgent),e!==null&&(LS=!0,JG=_0(e[1]))):Ba.appName==="Netscape"&&(e=/Trident\/.*rv:([0-9]{1,}[\.0-9]{0,})/.exec(Ba.userAgent),e!==null&&(LS=!0,JG=_0(e[1])))}return LS}function bEe(){return _$()&&JG}var i1,g$;function s1(){if(!l(i1)){i1=!1;let e=/ Edg\/([\.0-9]+)/.exec(Ba.userAgent);e!==null&&(i1=!0,g$=_0(e[1]))}return i1}function TEe(){return s1()&&g$}var o1,t5;function a1(){if(!l(o1)){o1=!1;let e=/Firefox\/([\.0-9]+)/.exec(Ba.userAgent);e!==null&&(o1=!0,t5=_0(e[1]))}return o1}var KG;function AEe(){return l(KG)||(KG=/Windows/i.test(Ba.appVersion)),KG}var ZG;function CEe(){return l(ZG)||(ZG=navigator.platform==="iPhone"||navigator.platform==="iPod"||navigator.platform==="iPad"),ZG}function EEe(){return a1()&&t5}var $G;function SEe(){return l($G)||($G=!a1()&&typeof PointerEvent<"u"&&(!l(Ba.pointerEnabled)||Ba.pointerEnabled)),$G}var y$,r1;function x$(){if(!l(r1)){let e=document.createElement("canvas");e.setAttribute("style","image-rendering: -moz-crisp-edges;image-rendering: pixelated;");let t=e.style.imageRendering;r1=l(t)&&t!=="",r1&&(y$=t)}return r1}function vEe(){return x$()?y$:void 0}function gc(){return gc._result}gc._promise=void 0;gc._result=void 0;gc.initialize=function(){return l(gc._promise)||(gc._promise=new Promise(e=>{let t=new Image;t.onload=function(){gc._result=t.width>0&&t.height>0,e(gc._result)},t.onerror=function(){gc._result=!1,e(gc._result)},t.src="data:image/webp;base64,UklGRiIAAABXRUJQVlA4IBYAAAAwAQCdASoBAAEADsD+JaQAA3AAAAAA"})),gc._promise};Object.defineProperties(gc,{initialized:{get:function(){return l(gc._result)}}});var Jb=[];typeof ArrayBuffer<"u"&&(Jb.push(Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array),typeof Uint8ClampedArray<"u"&&Jb.push(Uint8ClampedArray),typeof Uint8ClampedArray<"u"&&Jb.push(Uint8ClampedArray),typeof BigInt64Array<"u"&&Jb.push(BigInt64Array),typeof BigUint64Array<"u"&&Jb.push(BigUint64Array));var zu={isChrome:e5,chromeVersion:gEe,isSafari:m$,safariVersion:yEe,isWebkit:p$,webkitVersion:xEe,isInternetExplorer:_$,internetExplorerVersion:bEe,isEdge:s1,edgeVersion:TEe,isFirefox:a1,firefoxVersion:EEe,isWindows:AEe,isIPadOrIOS:CEe,hardwareConcurrency:y(Ba.hardwareConcurrency,3),supportsPointerEvents:SEe,supportsImageRenderingPixelated:x$,supportsWebP:gc,imageRenderingValue:vEe,typedArrayTypes:Jb};zu.supportsBasis=function(e){return zu.supportsWebAssembly()&&e.context.supportsBasis};zu.supportsFullscreen=function(){return vr.supportsFullscreen()};zu.supportsTypedArrays=function(){return typeof ArrayBuffer<"u"};zu.supportsBigInt64Array=function(){return typeof BigInt64Array<"u"};zu.supportsBigUint64Array=function(){return typeof BigUint64Array<"u"};zu.supportsBigInt=function(){return typeof BigInt<"u"};zu.supportsWebWorkers=function(){return typeof Worker<"u"};zu.supportsWebAssembly=function(){return typeof WebAssembly<"u"};zu.supportsWebgl2=function(e){return e.context.webgl2};zu.supportsEsmWebWorkers=function(){return!a1()||parseInt(t5)>=114};var jt=zu;function n5(e,t,n){return n<0&&(n+=1),n>1&&(n-=1),n*6<1?e+(t-e)*6*n:n*2<1?t:n*3<2?e+(t-e)*(2/3-n)*6:e}function ie(e,t,n,i){this.red=y(e,1),this.green=y(t,1),this.blue=y(n,1),this.alpha=y(i,1)}ie.fromCartesian4=function(e,t){return l(t)?(t.red=e.x,t.green=e.y,t.blue=e.z,t.alpha=e.w,t):new ie(e.x,e.y,e.z,e.w)};ie.fromBytes=function(e,t,n,i,o){return e=ie.byteToFloat(y(e,255)),t=ie.byteToFloat(y(t,255)),n=ie.byteToFloat(y(n,255)),i=ie.byteToFloat(y(i,255)),l(o)?(o.red=e,o.green=t,o.blue=n,o.alpha=i,o):new ie(e,t,n,i)};ie.fromAlpha=function(e,t,n){return l(n)?(n.red=e.red,n.green=e.green,n.blue=e.blue,n.alpha=t,n):new ie(e.red,e.green,e.blue,t)};var i5,o5,jm;jt.supportsTypedArrays()&&(i5=new ArrayBuffer(4),o5=new Uint32Array(i5),jm=new Uint8Array(i5));ie.fromRgba=function(e,t){return o5[0]=e,ie.fromBytes(jm[0],jm[1],jm[2],jm[3],t)};ie.fromHsl=function(e,t,n,i,o){e=y(e,0)%1,t=y(t,0),n=y(n,0),i=y(i,1);let r=n,s=n,a=n;if(t!==0){let c;n<.5?c=n*(1+t):c=n+t-n*t;let u=2*n-c;r=n5(u,c,e+1/3),s=n5(u,c,e),a=n5(u,c,e-1/3)}return l(o)?(o.red=r,o.green=s,o.blue=a,o.alpha=i,o):new ie(r,s,a,i)};ie.fromRandom=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.red;if(!l(n)){let s=y(e.minimumRed,0),a=y(e.maximumRed,1);n=s+P.nextRandomNumber()*(a-s)}let i=e.green;if(!l(i)){let s=y(e.minimumGreen,0),a=y(e.maximumGreen,1);i=s+P.nextRandomNumber()*(a-s)}let o=e.blue;if(!l(o)){let s=y(e.minimumBlue,0),a=y(e.maximumBlue,1);o=s+P.nextRandomNumber()*(a-s)}let r=e.alpha;if(!l(r)){let s=y(e.minimumAlpha,0),a=y(e.maximumAlpha,1);r=s+P.nextRandomNumber()*(a-s)}return l(t)?(t.red=n,t.green=i,t.blue=o,t.alpha=r,t):new ie(n,i,o,r)};var wEe=/^#([0-9a-f])([0-9a-f])([0-9a-f])([0-9a-f])?$/i,DEe=/^#([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})([0-9a-f]{2})?$/i,IEe=/^rgba?\s*\(\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)\s*[,\s]+\s*([0-9.]+%?)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i,PEe=/^hsla?\s*\(\s*([0-9.]+)\s*[,\s]+\s*([0-9.]+%)\s*[,\s]+\s*([0-9.]+%)(?:\s*[,\s/]+\s*([0-9.]+))?\s*\)$/i;ie.fromCssColorString=function(e,t){l(t)||(t=new ie),e=e.trim();let n=ie[e.toUpperCase()];if(l(n))return ie.clone(n,t),t;let i=wEe.exec(e);return i!==null?(t.red=parseInt(i[1],16)/15,t.green=parseInt(i[2],16)/15,t.blue=parseInt(i[3],16)/15,t.alpha=parseInt(y(i[4],"f"),16)/15,t):(i=DEe.exec(e),i!==null?(t.red=parseInt(i[1],16)/255,t.green=parseInt(i[2],16)/255,t.blue=parseInt(i[3],16)/255,t.alpha=parseInt(y(i[4],"ff"),16)/255,t):(i=IEe.exec(e),i!==null?(t.red=parseFloat(i[1])/(i[1].substr(-1)==="%"?100:255),t.green=parseFloat(i[2])/(i[2].substr(-1)==="%"?100:255),t.blue=parseFloat(i[3])/(i[3].substr(-1)==="%"?100:255),t.alpha=parseFloat(y(i[4],"1.0")),t):(i=PEe.exec(e),i!==null?ie.fromHsl(parseFloat(i[1])/360,parseFloat(i[2])/100,parseFloat(i[3])/100,parseFloat(y(i[4],"1.0")),t):(t=void 0,t))))};ie.packedLength=4;ie.pack=function(e,t,n){return n=y(n,0),t[n++]=e.red,t[n++]=e.green,t[n++]=e.blue,t[n]=e.alpha,t};ie.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ie),n.red=e[t++],n.green=e[t++],n.blue=e[t++],n.alpha=e[t],n};ie.byteToFloat=function(e){return e/255};ie.floatToByte=function(e){return e===1?255:e*256|0};ie.clone=function(e,t){if(l(e))return l(t)?(t.red=e.red,t.green=e.green,t.blue=e.blue,t.alpha=e.alpha,t):new ie(e.red,e.green,e.blue,e.alpha)};ie.equals=function(e,t){return e===t||l(e)&&l(t)&&e.red===t.red&&e.green===t.green&&e.blue===t.blue&&e.alpha===t.alpha};ie.equalsArray=function(e,t,n){return e.red===t[n]&&e.green===t[n+1]&&e.blue===t[n+2]&&e.alpha===t[n+3]};ie.prototype.clone=function(e){return ie.clone(this,e)};ie.prototype.equals=function(e){return ie.equals(this,e)};ie.prototype.equalsEpsilon=function(e,t){return this===e||l(e)&&Math.abs(this.red-e.red)<=t&&Math.abs(this.green-e.green)<=t&&Math.abs(this.blue-e.blue)<=t&&Math.abs(this.alpha-e.alpha)<=t};ie.prototype.toString=function(){return`(${this.red}, ${this.green}, ${this.blue}, ${this.alpha})`};ie.prototype.toCssColorString=function(){let e=ie.floatToByte(this.red),t=ie.floatToByte(this.green),n=ie.floatToByte(this.blue);return this.alpha===1?`rgb(${e},${t},${n})`:`rgba(${e},${t},${n},${this.alpha})`};ie.prototype.toCssHexString=function(){let e=ie.floatToByte(this.red).toString(16);e.length<2&&(e=`0${e}`);let t=ie.floatToByte(this.green).toString(16);t.length<2&&(t=`0${t}`);let n=ie.floatToByte(this.blue).toString(16);if(n.length<2&&(n=`0${n}`),this.alpha<1){let i=ie.floatToByte(this.alpha).toString(16);return i.length<2&&(i=`0${i}`),`#${e}${t}${n}${i}`}return`#${e}${t}${n}`};ie.prototype.toBytes=function(e){let t=ie.floatToByte(this.red),n=ie.floatToByte(this.green),i=ie.floatToByte(this.blue),o=ie.floatToByte(this.alpha);return l(e)?(e[0]=t,e[1]=n,e[2]=i,e[3]=o,e):[t,n,i,o]};ie.prototype.toRgba=function(){return jm[0]=ie.floatToByte(this.red),jm[1]=ie.floatToByte(this.green),jm[2]=ie.floatToByte(this.blue),jm[3]=ie.floatToByte(this.alpha),o5[0]};ie.prototype.brighten=function(e,t){return e=1-e,t.red=1-(1-this.red)*e,t.green=1-(1-this.green)*e,t.blue=1-(1-this.blue)*e,t.alpha=this.alpha,t};ie.prototype.darken=function(e,t){return e=1-e,t.red=this.red*e,t.green=this.green*e,t.blue=this.blue*e,t.alpha=this.alpha,t};ie.prototype.withAlpha=function(e,t){return ie.fromAlpha(this,e,t)};ie.add=function(e,t,n){return n.red=e.red+t.red,n.green=e.green+t.green,n.blue=e.blue+t.blue,n.alpha=e.alpha+t.alpha,n};ie.subtract=function(e,t,n){return n.red=e.red-t.red,n.green=e.green-t.green,n.blue=e.blue-t.blue,n.alpha=e.alpha-t.alpha,n};ie.multiply=function(e,t,n){return n.red=e.red*t.red,n.green=e.green*t.green,n.blue=e.blue*t.blue,n.alpha=e.alpha*t.alpha,n};ie.divide=function(e,t,n){return n.red=e.red/t.red,n.green=e.green/t.green,n.blue=e.blue/t.blue,n.alpha=e.alpha/t.alpha,n};ie.mod=function(e,t,n){return n.red=e.red%t.red,n.green=e.green%t.green,n.blue=e.blue%t.blue,n.alpha=e.alpha%t.alpha,n};ie.lerp=function(e,t,n,i){return i.red=P.lerp(e.red,t.red,n),i.green=P.lerp(e.green,t.green,n),i.blue=P.lerp(e.blue,t.blue,n),i.alpha=P.lerp(e.alpha,t.alpha,n),i};ie.multiplyByScalar=function(e,t,n){return n.red=e.red*t,n.green=e.green*t,n.blue=e.blue*t,n.alpha=e.alpha*t,n};ie.divideByScalar=function(e,t,n){return n.red=e.red/t,n.green=e.green/t,n.blue=e.blue/t,n.alpha=e.alpha/t,n};ie.ALICEBLUE=Object.freeze(ie.fromCssColorString("#F0F8FF"));ie.ANTIQUEWHITE=Object.freeze(ie.fromCssColorString("#FAEBD7"));ie.AQUA=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.AQUAMARINE=Object.freeze(ie.fromCssColorString("#7FFFD4"));ie.AZURE=Object.freeze(ie.fromCssColorString("#F0FFFF"));ie.BEIGE=Object.freeze(ie.fromCssColorString("#F5F5DC"));ie.BISQUE=Object.freeze(ie.fromCssColorString("#FFE4C4"));ie.BLACK=Object.freeze(ie.fromCssColorString("#000000"));ie.BLANCHEDALMOND=Object.freeze(ie.fromCssColorString("#FFEBCD"));ie.BLUE=Object.freeze(ie.fromCssColorString("#0000FF"));ie.BLUEVIOLET=Object.freeze(ie.fromCssColorString("#8A2BE2"));ie.BROWN=Object.freeze(ie.fromCssColorString("#A52A2A"));ie.BURLYWOOD=Object.freeze(ie.fromCssColorString("#DEB887"));ie.CADETBLUE=Object.freeze(ie.fromCssColorString("#5F9EA0"));ie.CHARTREUSE=Object.freeze(ie.fromCssColorString("#7FFF00"));ie.CHOCOLATE=Object.freeze(ie.fromCssColorString("#D2691E"));ie.CORAL=Object.freeze(ie.fromCssColorString("#FF7F50"));ie.CORNFLOWERBLUE=Object.freeze(ie.fromCssColorString("#6495ED"));ie.CORNSILK=Object.freeze(ie.fromCssColorString("#FFF8DC"));ie.CRIMSON=Object.freeze(ie.fromCssColorString("#DC143C"));ie.CYAN=Object.freeze(ie.fromCssColorString("#00FFFF"));ie.DARKBLUE=Object.freeze(ie.fromCssColorString("#00008B"));ie.DARKCYAN=Object.freeze(ie.fromCssColorString("#008B8B"));ie.DARKGOLDENROD=Object.freeze(ie.fromCssColorString("#B8860B"));ie.DARKGRAY=Object.freeze(ie.fromCssColorString("#A9A9A9"));ie.DARKGREEN=Object.freeze(ie.fromCssColorString("#006400"));ie.DARKGREY=ie.DARKGRAY;ie.DARKKHAKI=Object.freeze(ie.fromCssColorString("#BDB76B"));ie.DARKMAGENTA=Object.freeze(ie.fromCssColorString("#8B008B"));ie.DARKOLIVEGREEN=Object.freeze(ie.fromCssColorString("#556B2F"));ie.DARKORANGE=Object.freeze(ie.fromCssColorString("#FF8C00"));ie.DARKORCHID=Object.freeze(ie.fromCssColorString("#9932CC"));ie.DARKRED=Object.freeze(ie.fromCssColorString("#8B0000"));ie.DARKSALMON=Object.freeze(ie.fromCssColorString("#E9967A"));ie.DARKSEAGREEN=Object.freeze(ie.fromCssColorString("#8FBC8F"));ie.DARKSLATEBLUE=Object.freeze(ie.fromCssColorString("#483D8B"));ie.DARKSLATEGRAY=Object.freeze(ie.fromCssColorString("#2F4F4F"));ie.DARKSLATEGREY=ie.DARKSLATEGRAY;ie.DARKTURQUOISE=Object.freeze(ie.fromCssColorString("#00CED1"));ie.DARKVIOLET=Object.freeze(ie.fromCssColorString("#9400D3"));ie.DEEPPINK=Object.freeze(ie.fromCssColorString("#FF1493"));ie.DEEPSKYBLUE=Object.freeze(ie.fromCssColorString("#00BFFF"));ie.DIMGRAY=Object.freeze(ie.fromCssColorString("#696969"));ie.DIMGREY=ie.DIMGRAY;ie.DODGERBLUE=Object.freeze(ie.fromCssColorString("#1E90FF"));ie.FIREBRICK=Object.freeze(ie.fromCssColorString("#B22222"));ie.FLORALWHITE=Object.freeze(ie.fromCssColorString("#FFFAF0"));ie.FORESTGREEN=Object.freeze(ie.fromCssColorString("#228B22"));ie.FUCHSIA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.GAINSBORO=Object.freeze(ie.fromCssColorString("#DCDCDC"));ie.GHOSTWHITE=Object.freeze(ie.fromCssColorString("#F8F8FF"));ie.GOLD=Object.freeze(ie.fromCssColorString("#FFD700"));ie.GOLDENROD=Object.freeze(ie.fromCssColorString("#DAA520"));ie.GRAY=Object.freeze(ie.fromCssColorString("#808080"));ie.GREEN=Object.freeze(ie.fromCssColorString("#008000"));ie.GREENYELLOW=Object.freeze(ie.fromCssColorString("#ADFF2F"));ie.GREY=ie.GRAY;ie.HONEYDEW=Object.freeze(ie.fromCssColorString("#F0FFF0"));ie.HOTPINK=Object.freeze(ie.fromCssColorString("#FF69B4"));ie.INDIANRED=Object.freeze(ie.fromCssColorString("#CD5C5C"));ie.INDIGO=Object.freeze(ie.fromCssColorString("#4B0082"));ie.IVORY=Object.freeze(ie.fromCssColorString("#FFFFF0"));ie.KHAKI=Object.freeze(ie.fromCssColorString("#F0E68C"));ie.LAVENDER=Object.freeze(ie.fromCssColorString("#E6E6FA"));ie.LAVENDAR_BLUSH=Object.freeze(ie.fromCssColorString("#FFF0F5"));ie.LAWNGREEN=Object.freeze(ie.fromCssColorString("#7CFC00"));ie.LEMONCHIFFON=Object.freeze(ie.fromCssColorString("#FFFACD"));ie.LIGHTBLUE=Object.freeze(ie.fromCssColorString("#ADD8E6"));ie.LIGHTCORAL=Object.freeze(ie.fromCssColorString("#F08080"));ie.LIGHTCYAN=Object.freeze(ie.fromCssColorString("#E0FFFF"));ie.LIGHTGOLDENRODYELLOW=Object.freeze(ie.fromCssColorString("#FAFAD2"));ie.LIGHTGRAY=Object.freeze(ie.fromCssColorString("#D3D3D3"));ie.LIGHTGREEN=Object.freeze(ie.fromCssColorString("#90EE90"));ie.LIGHTGREY=ie.LIGHTGRAY;ie.LIGHTPINK=Object.freeze(ie.fromCssColorString("#FFB6C1"));ie.LIGHTSEAGREEN=Object.freeze(ie.fromCssColorString("#20B2AA"));ie.LIGHTSKYBLUE=Object.freeze(ie.fromCssColorString("#87CEFA"));ie.LIGHTSLATEGRAY=Object.freeze(ie.fromCssColorString("#778899"));ie.LIGHTSLATEGREY=ie.LIGHTSLATEGRAY;ie.LIGHTSTEELBLUE=Object.freeze(ie.fromCssColorString("#B0C4DE"));ie.LIGHTYELLOW=Object.freeze(ie.fromCssColorString("#FFFFE0"));ie.LIME=Object.freeze(ie.fromCssColorString("#00FF00"));ie.LIMEGREEN=Object.freeze(ie.fromCssColorString("#32CD32"));ie.LINEN=Object.freeze(ie.fromCssColorString("#FAF0E6"));ie.MAGENTA=Object.freeze(ie.fromCssColorString("#FF00FF"));ie.MAROON=Object.freeze(ie.fromCssColorString("#800000"));ie.MEDIUMAQUAMARINE=Object.freeze(ie.fromCssColorString("#66CDAA"));ie.MEDIUMBLUE=Object.freeze(ie.fromCssColorString("#0000CD"));ie.MEDIUMORCHID=Object.freeze(ie.fromCssColorString("#BA55D3"));ie.MEDIUMPURPLE=Object.freeze(ie.fromCssColorString("#9370DB"));ie.MEDIUMSEAGREEN=Object.freeze(ie.fromCssColorString("#3CB371"));ie.MEDIUMSLATEBLUE=Object.freeze(ie.fromCssColorString("#7B68EE"));ie.MEDIUMSPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FA9A"));ie.MEDIUMTURQUOISE=Object.freeze(ie.fromCssColorString("#48D1CC"));ie.MEDIUMVIOLETRED=Object.freeze(ie.fromCssColorString("#C71585"));ie.MIDNIGHTBLUE=Object.freeze(ie.fromCssColorString("#191970"));ie.MINTCREAM=Object.freeze(ie.fromCssColorString("#F5FFFA"));ie.MISTYROSE=Object.freeze(ie.fromCssColorString("#FFE4E1"));ie.MOCCASIN=Object.freeze(ie.fromCssColorString("#FFE4B5"));ie.NAVAJOWHITE=Object.freeze(ie.fromCssColorString("#FFDEAD"));ie.NAVY=Object.freeze(ie.fromCssColorString("#000080"));ie.OLDLACE=Object.freeze(ie.fromCssColorString("#FDF5E6"));ie.OLIVE=Object.freeze(ie.fromCssColorString("#808000"));ie.OLIVEDRAB=Object.freeze(ie.fromCssColorString("#6B8E23"));ie.ORANGE=Object.freeze(ie.fromCssColorString("#FFA500"));ie.ORANGERED=Object.freeze(ie.fromCssColorString("#FF4500"));ie.ORCHID=Object.freeze(ie.fromCssColorString("#DA70D6"));ie.PALEGOLDENROD=Object.freeze(ie.fromCssColorString("#EEE8AA"));ie.PALEGREEN=Object.freeze(ie.fromCssColorString("#98FB98"));ie.PALETURQUOISE=Object.freeze(ie.fromCssColorString("#AFEEEE"));ie.PALEVIOLETRED=Object.freeze(ie.fromCssColorString("#DB7093"));ie.PAPAYAWHIP=Object.freeze(ie.fromCssColorString("#FFEFD5"));ie.PEACHPUFF=Object.freeze(ie.fromCssColorString("#FFDAB9"));ie.PERU=Object.freeze(ie.fromCssColorString("#CD853F"));ie.PINK=Object.freeze(ie.fromCssColorString("#FFC0CB"));ie.PLUM=Object.freeze(ie.fromCssColorString("#DDA0DD"));ie.POWDERBLUE=Object.freeze(ie.fromCssColorString("#B0E0E6"));ie.PURPLE=Object.freeze(ie.fromCssColorString("#800080"));ie.RED=Object.freeze(ie.fromCssColorString("#FF0000"));ie.ROSYBROWN=Object.freeze(ie.fromCssColorString("#BC8F8F"));ie.ROYALBLUE=Object.freeze(ie.fromCssColorString("#4169E1"));ie.SADDLEBROWN=Object.freeze(ie.fromCssColorString("#8B4513"));ie.SALMON=Object.freeze(ie.fromCssColorString("#FA8072"));ie.SANDYBROWN=Object.freeze(ie.fromCssColorString("#F4A460"));ie.SEAGREEN=Object.freeze(ie.fromCssColorString("#2E8B57"));ie.SEASHELL=Object.freeze(ie.fromCssColorString("#FFF5EE"));ie.SIENNA=Object.freeze(ie.fromCssColorString("#A0522D"));ie.SILVER=Object.freeze(ie.fromCssColorString("#C0C0C0"));ie.SKYBLUE=Object.freeze(ie.fromCssColorString("#87CEEB"));ie.SLATEBLUE=Object.freeze(ie.fromCssColorString("#6A5ACD"));ie.SLATEGRAY=Object.freeze(ie.fromCssColorString("#708090"));ie.SLATEGREY=ie.SLATEGRAY;ie.SNOW=Object.freeze(ie.fromCssColorString("#FFFAFA"));ie.SPRINGGREEN=Object.freeze(ie.fromCssColorString("#00FF7F"));ie.STEELBLUE=Object.freeze(ie.fromCssColorString("#4682B4"));ie.TAN=Object.freeze(ie.fromCssColorString("#D2B48C"));ie.TEAL=Object.freeze(ie.fromCssColorString("#008080"));ie.THISTLE=Object.freeze(ie.fromCssColorString("#D8BFD8"));ie.TOMATO=Object.freeze(ie.fromCssColorString("#FF6347"));ie.TURQUOISE=Object.freeze(ie.fromCssColorString("#40E0D0"));ie.VIOLET=Object.freeze(ie.fromCssColorString("#EE82EE"));ie.WHEAT=Object.freeze(ie.fromCssColorString("#F5DEB3"));ie.WHITE=Object.freeze(ie.fromCssColorString("#FFFFFF"));ie.WHITESMOKE=Object.freeze(ie.fromCssColorString("#F5F5F5"));ie.YELLOW=Object.freeze(ie.fromCssColorString("#FFFF00"));ie.YELLOWGREEN=Object.freeze(ie.fromCssColorString("#9ACD32"));ie.TRANSPARENT=Object.freeze(new ie(0,0,0,0));var z=ie;function c1(e){e=y(e,y.EMPTY_OBJECT),this.color=e.color,this.depth=e.depth,this.stencil=e.stencil,this.renderState=e.renderState,this.framebuffer=e.framebuffer,this.owner=e.owner,this.pass=e.pass}c1.ALL=Object.freeze(new c1({color:new z(0,0,0,0),depth:1,stencil:0}));c1.prototype.execute=function(e,t){e.clear(this,t)};var ei=c1;var REe={ENVIRONMENT:0,COMPUTE:1,GLOBE:2,TERRAIN_CLASSIFICATION:3,CESIUM_3D_TILE:4,CESIUM_3D_TILE_CLASSIFICATION:5,CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW:6,OPAQUE:7,TRANSLUCENT:8,VOXELS:9,OVERLAY:10,NUMBER_OF_PASSES:11},ve=Object.freeze(REe);function b$(e){e=y(e,y.EMPTY_OBJECT),this.vertexArray=e.vertexArray,this.fragmentShaderSource=e.fragmentShaderSource,this.shaderProgram=e.shaderProgram,this.uniformMap=e.uniformMap,this.outputTexture=e.outputTexture,this.preExecute=e.preExecute,this.postExecute=e.postExecute,this.canceled=e.canceled,this.persists=y(e.persists,!1),this.pass=ve.COMPUTE,this.owner=e.owner}b$.prototype.execute=function(e){e.execute(this)};var ol=b$;function kt(e,t){this.x=y(e,0),this.y=y(t,0)}kt.fromElements=function(e,t,n){return l(n)?(n.x=e,n.y=t,n):new kt(e,t)};kt.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t):new kt(e.x,e.y)};kt.fromCartesian3=kt.clone;kt.fromCartesian4=kt.clone;kt.packedLength=2;kt.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n]=e.y,t};kt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new kt),n.x=e[t++],n.y=e[t],n};kt.packArray=function(e,t){let n=e.length,i=n*2;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)kt.pack(e[o],t,o*2);return t};kt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/2:t=new Array(n/2);for(let i=0;i<n;i+=2){let o=i/2;t[o]=kt.unpack(e,i,t[o])}return t};kt.fromArray=kt.unpack;kt.maximumComponent=function(e){return Math.max(e.x,e.y)};kt.minimumComponent=function(e){return Math.min(e.x,e.y)};kt.minimumByComponent=function(e,t,n){return n.x=Math.min(e.x,t.x),n.y=Math.min(e.y,t.y),n};kt.maximumByComponent=function(e,t,n){return n.x=Math.max(e.x,t.x),n.y=Math.max(e.y,t.y),n};kt.clamp=function(e,t,n,i){let o=P.clamp(e.x,t.x,n.x),r=P.clamp(e.y,t.y,n.y);return i.x=o,i.y=r,i};kt.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y};kt.magnitude=function(e){return Math.sqrt(kt.magnitudeSquared(e))};var l1=new kt;kt.distance=function(e,t){return kt.subtract(e,t,l1),kt.magnitude(l1)};kt.distanceSquared=function(e,t){return kt.subtract(e,t,l1),kt.magnitudeSquared(l1)};kt.normalize=function(e,t){let n=kt.magnitude(e);return t.x=e.x/n,t.y=e.y/n,t};kt.dot=function(e,t){return e.x*t.x+e.y*t.y};kt.cross=function(e,t){return e.x*t.y-e.y*t.x};kt.multiplyComponents=function(e,t,n){return n.x=e.x*t.x,n.y=e.y*t.y,n};kt.divideComponents=function(e,t,n){return n.x=e.x/t.x,n.y=e.y/t.y,n};kt.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n};kt.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n};kt.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n};kt.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n};kt.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t};kt.abs=function(e,t){return t.x=Math.abs(e.x),t.y=Math.abs(e.y),t};var T$=new kt;kt.lerp=function(e,t,n,i){return kt.multiplyByScalar(t,n,T$),i=kt.multiplyByScalar(e,1-n,i),kt.add(T$,i,i)};var A$=new kt,C$=new kt;kt.angleBetween=function(e,t){return kt.normalize(e,A$),kt.normalize(t,C$),P.acosClamped(kt.dot(A$,C$))};var OEe=new kt;kt.mostOrthogonalAxis=function(e,t){let n=kt.normalize(e,OEe);return kt.abs(n,n),n.x<=n.y?t=kt.clone(kt.UNIT_X,t):t=kt.clone(kt.UNIT_Y,t),t};kt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y};kt.equalsArray=function(e,t,n){return e.x===t[n]&&e.y===t[n+1]};kt.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.x,t.x,n,i)&&P.equalsEpsilon(e.y,t.y,n,i)};kt.ZERO=Object.freeze(new kt(0,0));kt.ONE=Object.freeze(new kt(1,1));kt.UNIT_X=Object.freeze(new kt(1,0));kt.UNIT_Y=Object.freeze(new kt(0,1));kt.prototype.clone=function(e){return kt.clone(this,e)};kt.prototype.equals=function(e){return kt.equals(this,e)};kt.prototype.equalsEpsilon=function(e,t,n){return kt.equalsEpsilon(this,e,t,n)};kt.prototype.toString=function(){return`(${this.x}, ${this.y})`};var U=kt;var MEe=new h,LEe=new h;function NEe(e,t,n,i,o){let r=e.x,s=e.y,a=e.z,c=t.x,u=t.y,f=t.z,d=r*r*c*c,p=s*s*u*u,g=a*a*f*f,m=d+p+g,x=Math.sqrt(1/m),b=h.multiplyByScalar(e,x,MEe);if(m<i)return isFinite(x)?h.clone(b,o):void 0;let T=n.x,A=n.y,C=n.z,S=LEe;S.x=b.x*T*2,S.y=b.y*A*2,S.z=b.z*C*2;let v=(1-x)*h.magnitude(e)/(.5*h.magnitude(S)),D=0,O,R,M,L,_,E,w,I,N,B,H;do{v-=D,M=1/(1+v*T),L=1/(1+v*A),_=1/(1+v*C),E=M*M,w=L*L,I=_*_,N=E*M,B=w*L,H=I*_,O=d*E+p*w+g*I-1,R=d*N*T+p*B*A+g*H*C;let V=-2*R;D=O/V}while(Math.abs(O)>P.EPSILON12);return l(o)?(o.x=r*M,o.y=s*L,o.z=a*_,o):new h(r*M,s*L,a*_)}var eT=NEe;function Io(e,t,n){this.longitude=y(e,0),this.latitude=y(t,0),this.height=y(n,0)}Io.fromRadians=function(e,t,n,i){return n=y(n,0),l(i)?(i.longitude=e,i.latitude=t,i.height=n,i):new Io(e,t,n)};Io.fromDegrees=function(e,t,n,i){return e=P.toRadians(e),t=P.toRadians(t),Io.fromRadians(e,t,n,i)};var FEe=new h,BEe=new h,kEe=new h;Io._ellipsoidOneOverRadii=new h(1/6378137,1/6378137,1/6356752314245179e-9);Io._ellipsoidOneOverRadiiSquared=new h(1/(6378137*6378137),1/(6378137*6378137),1/(6356752314245179e-9*6356752314245179e-9));Io._ellipsoidCenterToleranceSquared=P.EPSILON1;Io.fromCartesian=function(e,t,n){let i=l(t)?t.oneOverRadii:Io._ellipsoidOneOverRadii,o=l(t)?t.oneOverRadiiSquared:Io._ellipsoidOneOverRadiiSquared,r=l(t)?t._centerToleranceSquared:Io._ellipsoidCenterToleranceSquared,s=eT(e,i,o,r,BEe);if(!l(s))return;let a=h.multiplyComponents(s,o,FEe);a=h.normalize(a,a);let c=h.subtract(e,s,kEe),u=Math.atan2(a.y,a.x),f=Math.asin(a.z),d=P.sign(h.dot(c,e))*h.magnitude(c);return l(n)?(n.longitude=u,n.latitude=f,n.height=d,n):new Io(u,f,d)};Io.toCartesian=function(e,t,n){return h.fromRadians(e.longitude,e.latitude,e.height,t,n)};Io.clone=function(e,t){if(l(e))return l(t)?(t.longitude=e.longitude,t.latitude=e.latitude,t.height=e.height,t):new Io(e.longitude,e.latitude,e.height)};Io.equals=function(e,t){return e===t||l(e)&&l(t)&&e.longitude===t.longitude&&e.latitude===t.latitude&&e.height===t.height};Io.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.longitude-t.longitude)<=n&&Math.abs(e.latitude-t.latitude)<=n&&Math.abs(e.height-t.height)<=n};Io.ZERO=Object.freeze(new Io(0,0,0));Io.prototype.clone=function(e){return Io.clone(this,e)};Io.prototype.equals=function(e){return Io.equals(this,e)};Io.prototype.equalsEpsilon=function(e,t){return Io.equalsEpsilon(this,e,t)};Io.prototype.toString=function(){return`(${this.longitude}, ${this.latitude}, ${this.height})`};var fe=Io;function S$(e,t,n,i){t=y(t,0),n=y(n,0),i=y(i,0),e._radii=new h(t,n,i),e._radiiSquared=new h(t*t,n*n,i*i),e._radiiToTheFourth=new h(t*t*t*t,n*n*n*n,i*i*i*i),e._oneOverRadii=new h(t===0?0:1/t,n===0?0:1/n,i===0?0:1/i),e._oneOverRadiiSquared=new h(t===0?0:1/(t*t),n===0?0:1/(n*n),i===0?0:1/(i*i)),e._minimumRadius=Math.min(t,n,i),e._maximumRadius=Math.max(t,n,i),e._centerToleranceSquared=P.EPSILON1,e._radiiSquared.z!==0&&(e._squaredXOverSquaredZ=e._radiiSquared.x/e._radiiSquared.z)}function fi(e,t,n){this._radii=void 0,this._radiiSquared=void 0,this._radiiToTheFourth=void 0,this._oneOverRadii=void 0,this._oneOverRadiiSquared=void 0,this._minimumRadius=void 0,this._maximumRadius=void 0,this._centerToleranceSquared=void 0,this._squaredXOverSquaredZ=void 0,S$(this,e,t,n)}Object.defineProperties(fi.prototype,{radii:{get:function(){return this._radii}},radiiSquared:{get:function(){return this._radiiSquared}},radiiToTheFourth:{get:function(){return this._radiiToTheFourth}},oneOverRadii:{get:function(){return this._oneOverRadii}},oneOverRadiiSquared:{get:function(){return this._oneOverRadiiSquared}},minimumRadius:{get:function(){return this._minimumRadius}},maximumRadius:{get:function(){return this._maximumRadius}}});fi.clone=function(e,t){if(!l(e))return;let n=e._radii;return l(t)?(h.clone(n,t._radii),h.clone(e._radiiSquared,t._radiiSquared),h.clone(e._radiiToTheFourth,t._radiiToTheFourth),h.clone(e._oneOverRadii,t._oneOverRadii),h.clone(e._oneOverRadiiSquared,t._oneOverRadiiSquared),t._minimumRadius=e._minimumRadius,t._maximumRadius=e._maximumRadius,t._centerToleranceSquared=e._centerToleranceSquared,t):new fi(n.x,n.y,n.z)};fi.fromCartesian3=function(e,t){return l(t)||(t=new fi),l(e)&&S$(t,e.x,e.y,e.z),t};fi.WGS84=Object.freeze(new fi(6378137,6378137,6356752314245179e-9));fi.UNIT_SPHERE=Object.freeze(new fi(1,1,1));fi.MOON=Object.freeze(new fi(P.LUNAR_RADIUS,P.LUNAR_RADIUS,P.LUNAR_RADIUS));fi._default=fi.WGS84;Object.defineProperties(fi,{default:{get:function(){return fi._default},set:function(e){fi._default=e,h._ellipsoidRadiiSquared=e.radiiSquared,fe._ellipsoidOneOverRadii=e.oneOverRadii,fe._ellipsoidOneOverRadiiSquared=e.oneOverRadiiSquared,fe._ellipsoidCenterToleranceSquared=e._centerToleranceSquared}}});fi.prototype.clone=function(e){return fi.clone(this,e)};fi.packedLength=h.packedLength;fi.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),t};fi.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t);return fi.fromCartesian3(i,n)};fi.prototype.geocentricSurfaceNormal=h.normalize;fi.prototype.geodeticSurfaceNormalCartographic=function(e,t){let n=e.longitude,i=e.latitude,o=Math.cos(i),r=o*Math.cos(n),s=o*Math.sin(n),a=Math.sin(i);return l(t)||(t=new h),t.x=r,t.y=s,t.z=a,h.normalize(t,t)};fi.prototype.geodeticSurfaceNormal=function(e,t){if(!h.equalsEpsilon(e,h.ZERO,P.EPSILON14))return l(t)||(t=new h),t=h.multiplyComponents(e,this._oneOverRadiiSquared,t),h.normalize(t,t)};var VEe=new h,UEe=new h;fi.prototype.cartographicToCartesian=function(e,t){let n=VEe,i=UEe;this.geodeticSurfaceNormalCartographic(e,n),h.multiplyComponents(this._radiiSquared,n,i);let o=Math.sqrt(h.dot(n,i));return h.divideByScalar(i,o,i),h.multiplyByScalar(n,e.height,n),l(t)||(t=new h),h.add(i,n,t)};fi.prototype.cartographicArrayToCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=this.cartographicToCartesian(e[i],t[i]);return t};var zEe=new h,HEe=new h,GEe=new h;fi.prototype.cartesianToCartographic=function(e,t){let n=this.scaleToGeodeticSurface(e,HEe);if(!l(n))return;let i=this.geodeticSurfaceNormal(n,zEe),o=h.subtract(e,n,GEe),r=Math.atan2(i.y,i.x),s=Math.asin(i.z),a=P.sign(h.dot(o,e))*h.magnitude(o);return l(t)?(t.longitude=r,t.latitude=s,t.height=a,t):new fe(r,s,a)};fi.prototype.cartesianArrayToCartographicArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.cartesianToCartographic(e[i],t[i]);return t};fi.prototype.scaleToGeodeticSurface=function(e,t){return eT(e,this._oneOverRadii,this._oneOverRadiiSquared,this._centerToleranceSquared,t)};fi.prototype.scaleToGeocentricSurface=function(e,t){l(t)||(t=new h);let n=e.x,i=e.y,o=e.z,r=this._oneOverRadiiSquared,s=1/Math.sqrt(n*n*r.x+i*i*r.y+o*o*r.z);return h.multiplyByScalar(e,s,t)};fi.prototype.transformPositionToScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._oneOverRadii,t)};fi.prototype.transformPositionFromScaledSpace=function(e,t){return l(t)||(t=new h),h.multiplyComponents(e,this._radii,t)};fi.prototype.equals=function(e){return this===e||l(e)&&h.equals(this._radii,e._radii)};fi.prototype.toString=function(){return this._radii.toString()};fi.prototype.getSurfaceNormalIntersectionWithZAxis=function(e,t,n){t=y(t,0);let i=this._squaredXOverSquaredZ;if(l(n)||(n=new h),n.x=0,n.y=0,n.z=e.z*(1-i),!(Math.abs(n.z)>=this._radii.z-t))return n};var WEe=new h;fi.prototype.getLocalCurvature=function(e,t){l(t)||(t=new U);let n=this.getSurfaceNormalIntersectionWithZAxis(e,0,WEe),i=h.distance(e,n),o=this.minimumRadius*i/this.maximumRadius**2,r=i*o**2;return U.fromElements(1/i,1/r,t)};var jEe=[.14887433898163,.43339539412925,.67940956829902,.86506336668898,.97390652851717,0],qEe=[.29552422471475,.26926671930999,.21908636251598,.14945134915058,.066671344308684,0];function E$(e,t,n){let i=.5*(t+e),o=.5*(t-e),r=0;for(let s=0;s<5;s++){let a=o*jEe[s];r+=qEe[s]*(n(i+a)+n(i-a))}return r*=o,r}fi.prototype.surfaceArea=function(e){let t=e.west,n=e.east,i=e.south,o=e.north;for(;n<t;)n+=P.TWO_PI;let r=this._radiiSquared,s=r.x,a=r.y,c=r.z,u=s*a;return E$(i,o,function(f){let d=Math.cos(f),p=Math.sin(f);return Math.cos(f)*E$(t,n,function(g){let m=Math.cos(g),x=Math.sin(g);return Math.sqrt(u*p*p+c*(a*m*m+s*x*x)*d*d)})})};var ee=fi;function u1(e){this._ellipsoid=y(e,ee.default),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(u1.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});u1.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=e.latitude*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};u1.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=e.y*n,r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var wi=u1;var YEe={OUTSIDE:-1,INTERSECTING:0,INSIDE:1},Yt=Object.freeze(YEe);function XEe(e,t,n){let i=0,o=e.length-1,r,s;for(;i<=o;){if(r=~~((i+o)/2),s=n(e[r],t),s<0){i=r+1;continue}if(s>0){o=r-1;continue}return r}return~(o+1)}var Po=XEe;function KEe(e,t,n,i,o){this.xPoleWander=e,this.yPoleWander=t,this.xPoleOffset=n,this.yPoleOffset=i,this.ut1MinusUtc=o}var g0=KEe;function ZEe(e){return e%4===0&&e%100!==0||e%400===0}var uh=ZEe;var v$=[31,28,31,30,31,30,31,31,30,31,30,31];function $Ee(e,t,n,i,o,r,s,a){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,0),o=y(o,0),r=y(r,0),s=y(s,0),a=y(a,!1),this.year=e,this.month=t,this.day=n,this.hour=i,this.minute=o,this.second=r,this.millisecond=s,this.isLeapSecond=a;function x(){xo.typeOf.number.greaterThanOrEquals("Year",e,1),xo.typeOf.number.lessThanOrEquals("Year",e,9999),xo.typeOf.number.greaterThanOrEquals("Month",t,1),xo.typeOf.number.lessThanOrEquals("Month",t,12),xo.typeOf.number.greaterThanOrEquals("Day",n,1),xo.typeOf.number.lessThanOrEquals("Day",n,31),xo.typeOf.number.greaterThanOrEquals("Hour",i,0),xo.typeOf.number.lessThanOrEquals("Hour",i,23),xo.typeOf.number.greaterThanOrEquals("Minute",o,0),xo.typeOf.number.lessThanOrEquals("Minute",o,59),xo.typeOf.bool("IsLeapSecond",a),xo.typeOf.number.greaterThanOrEquals("Second",r,0),xo.typeOf.number.lessThanOrEquals("Second",r,a?60:59),xo.typeOf.number.greaterThanOrEquals("Millisecond",s,0),xo.typeOf.number.lessThan("Millisecond",s,1e3)}function b(){let T=t===2&&uh(e)?v$[t-1]+1:v$[t-1];if(n>T)throw new he("Month and Day represents invalid date")}}var D_=$Ee;function QEe(e,t){this.julianDate=e,this.offset=t}var Wi=QEe;var JEe={SECONDS_PER_MILLISECOND:.001,SECONDS_PER_MINUTE:60,MINUTES_PER_HOUR:60,HOURS_PER_DAY:24,SECONDS_PER_HOUR:3600,MINUTES_PER_DAY:1440,SECONDS_PER_DAY:86400,DAYS_PER_JULIAN_CENTURY:36525,PICOSECOND:1e-9,MODIFIED_JULIAN_DATE_DIFFERENCE:24000005e-1},jn=Object.freeze(JEe);var eSe={UTC:0,TAI:1},Wn=Object.freeze(eSe);var D$=new D_,r5=[31,28,31,30,31,30,31,31,30,31,30,31],s5=29;function a5(e,t){return Rt.compare(e.julianDate,t.julianDate)}var tT=new Wi;function d1(e){tT.julianDate=e;let t=Rt.leapSeconds,n=Po(t,tT,a5);n<0&&(n=~n),n>=t.length&&(n=t.length-1);let i=t[n].offset;n>0&&Rt.secondsDifference(t[n].julianDate,e)>i&&(n--,i=t[n].offset),Rt.addSeconds(e,i,e)}function w$(e,t){tT.julianDate=e;let n=Rt.leapSeconds,i=Po(n,tT,a5);if(i<0&&(i=~i),i===0)return Rt.addSeconds(e,-n[0].offset,t);if(i>=n.length)return Rt.addSeconds(e,-n[i-1].offset,t);let o=Rt.secondsDifference(n[i].julianDate,e);if(o===0)return Rt.addSeconds(e,-n[i].offset,t);if(!(o<=1))return Rt.addSeconds(e,-n[--i].offset,t)}function I_(e,t,n){let i=t/jn.SECONDS_PER_DAY|0;return e+=i,t-=jn.SECONDS_PER_DAY*i,t<0&&(e--,t+=jn.SECONDS_PER_DAY),n.dayNumber=e,n.secondsOfDay=t,n}function c5(e,t,n,i,o,r,s){let a=(t-14)/12|0,c=e+4800+a,u=(1461*c/4|0)+(367*(t-2-12*a)/12|0)-(3*((c+100)/100|0)/4|0)+n-32075;i=i-12,i<0&&(i+=24);let f=r+(i*jn.SECONDS_PER_HOUR+o*jn.SECONDS_PER_MINUTE+s*jn.SECONDS_PER_MILLISECOND);return f>=43200&&(u-=1),[u,f]}var tSe=/^(\d{4})$/,nSe=/^(\d{4})-(\d{2})$/,iSe=/^(\d{4})-?(\d{3})$/,oSe=/^(\d{4})-?W(\d{2})-?(\d{1})?$/,rSe=/^(\d{4})-?(\d{2})-?(\d{2})$/,l5=/([Z+\-])?(\d{2})?:?(\d{2})?$/,sSe=/^(\d{2})(\.\d+)?/.source+l5.source,aSe=/^(\d{2}):?(\d{2})(\.\d+)?/.source+l5.source,cSe=/^(\d{2}):?(\d{2}):?(\d{2})(\.\d+)?/.source+l5.source;function Rt(e,t,n){this.dayNumber=void 0,this.secondsOfDay=void 0,e=y(e,0),t=y(t,0),n=y(n,Wn.UTC);let i=e|0;t=t+(e-i)*jn.SECONDS_PER_DAY,I_(i,t,this),n===Wn.UTC&&d1(this)}Rt.fromGregorianDate=function(e,t){let n=c5(e.year,e.month,e.day,e.hour,e.minute,e.second,e.millisecond);return l(t)?(I_(n[0],n[1],t),d1(t),t):new Rt(n[0],n[1],Wn.UTC)};Rt.fromDate=function(e,t){let n=c5(e.getUTCFullYear(),e.getUTCMonth()+1,e.getUTCDate(),e.getUTCHours(),e.getUTCMinutes(),e.getUTCSeconds(),e.getUTCMilliseconds());return l(t)?(I_(n[0],n[1],t),d1(t),t):new Rt(n[0],n[1],Wn.UTC)};Rt.fromIso8601=function(e,t){e=e.replace(",",".");let n=e.split("T"),i,o=1,r=1,s=0,a=0,c=0,u=0,f=n[0],d=n[1],p,g;if(n=f.match(rSe),n!==null)i=+n[1],o=+n[2],r=+n[3];else if(n=f.match(nSe),n!==null)i=+n[1],o=+n[2];else if(n=f.match(tSe),n!==null)i=+n[1];else{let T;if(n=f.match(iSe),n!==null)i=+n[1],T=+n[2],g=uh(i);else if(n=f.match(oSe),n!==null){i=+n[1];let A=+n[2],C=+n[3]||0,S=new Date(Date.UTC(i,0,4));T=A*7+C-S.getUTCDay()-3}p=new Date(Date.UTC(i,0,1)),p.setUTCDate(T),o=p.getUTCMonth()+1,r=p.getUTCDate()}g=uh(i);let m;if(l(d)){n=d.match(cSe),n!==null?(s=+n[1],a=+n[2],c=+n[3],u=+(n[4]||0)*1e3,m=5):(n=d.match(aSe),n!==null?(s=+n[1],a=+n[2],c=+(n[3]||0)*60,m=4):(n=d.match(sSe),n!==null&&(s=+n[1],a=+(n[2]||0)*60,m=3)));let T=n[m],A=+n[m+1],C=+(n[m+2]||0);switch(T){case"+":s=s-A,a=a-C;break;case"-":s=s+A,a=a+C;break;case"Z":break;default:a=a+new Date(Date.UTC(i,o-1,r,s,a)).getTimezoneOffset();break}}let x=c===60;for(x&&c--;a>=60;)a-=60,s++;for(;s>=24;)s-=24,r++;for(p=g&&o===2?s5:r5[o-1];r>p;)r-=p,o++,o>12&&(o-=12,i++),p=g&&o===2?s5:r5[o-1];for(;a<0;)a+=60,s--;for(;s<0;)s+=24,r--;for(;r<1;)o--,o<1&&(o+=12,i--),p=g&&o===2?s5:r5[o-1],r+=p;let b=c5(i,o,r,s,a,c,u);return l(t)?(I_(b[0],b[1],t),d1(t)):t=new Rt(b[0],b[1],Wn.UTC),x&&Rt.addSeconds(t,1,t),t};Rt.now=function(e){return Rt.fromDate(new Date,e)};var f1=new Rt(0,0,Wn.TAI);Rt.toGregorianDate=function(e,t){let n=!1,i=w$(e,f1);l(i)||(Rt.addSeconds(e,-1,f1),i=w$(f1,f1),n=!0);let o=i.dayNumber,r=i.secondsOfDay;r>=43200&&(o+=1);let s=o+68569|0,a=4*s/146097|0;s=s-((146097*a+3)/4|0)|0;let c=4e3*(s+1)/1461001|0;s=s-(1461*c/4|0)+31|0;let u=80*s/2447|0,f=s-(2447*u/80|0)|0;s=u/11|0;let d=u+2-12*s|0,p=100*(a-49)+c+s|0,g=r/jn.SECONDS_PER_HOUR|0,m=r-g*jn.SECONDS_PER_HOUR,x=m/jn.SECONDS_PER_MINUTE|0;m=m-x*jn.SECONDS_PER_MINUTE;let b=m|0,T=(m-b)/jn.SECONDS_PER_MILLISECOND;return g+=12,g>23&&(g-=24),n&&(b+=1),l(t)?(t.year=p,t.month=d,t.day=f,t.hour=g,t.minute=x,t.second=b,t.millisecond=T,t.isLeapSecond=n,t):new D_(p,d,f,g,x,b,T,n)};Rt.toDate=function(e){let t=Rt.toGregorianDate(e,D$),n=t.second;return t.isLeapSecond&&(n-=1),new Date(Date.UTC(t.year,t.month-1,t.day,t.hour,t.minute,n,t.millisecond))};Rt.toIso8601=function(e,t){let n=Rt.toGregorianDate(e,D$),i=n.year,o=n.month,r=n.day,s=n.hour,a=n.minute,c=n.second,u=n.millisecond;i===1e4&&o===1&&r===1&&s===0&&a===0&&c===0&&u===0&&(i=9999,o=12,r=31,s=24);let f;return!l(t)&&u!==0?(f=(u*.01).toString().replace(".",""),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`):!l(t)||t===0?`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}Z`:(f=(u*.01).toFixed(t).replace(".","").slice(0,t),`${i.toString().padStart(4,"0")}-${o.toString().padStart(2,"0")}-${r.toString().padStart(2,"0")}T${s.toString().padStart(2,"0")}:${a.toString().padStart(2,"0")}:${c.toString().padStart(2,"0")}.${f}Z`)};Rt.clone=function(e,t){if(l(e))return l(t)?(t.dayNumber=e.dayNumber,t.secondsOfDay=e.secondsOfDay,t):new Rt(e.dayNumber,e.secondsOfDay,Wn.TAI)};Rt.compare=function(e,t){let n=e.dayNumber-t.dayNumber;return n!==0?n:e.secondsOfDay-t.secondsOfDay};Rt.equals=function(e,t){return e===t||l(e)&&l(t)&&e.dayNumber===t.dayNumber&&e.secondsOfDay===t.secondsOfDay};Rt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(Rt.secondsDifference(e,t))<=n};Rt.totalDays=function(e){return e.dayNumber+e.secondsOfDay/jn.SECONDS_PER_DAY};Rt.secondsDifference=function(e,t){return(e.dayNumber-t.dayNumber)*jn.SECONDS_PER_DAY+(e.secondsOfDay-t.secondsOfDay)};Rt.daysDifference=function(e,t){let n=e.dayNumber-t.dayNumber,i=(e.secondsOfDay-t.secondsOfDay)/jn.SECONDS_PER_DAY;return n+i};Rt.computeTaiMinusUtc=function(e){tT.julianDate=e;let t=Rt.leapSeconds,n=Po(t,tT,a5);return n<0&&(n=~n,--n,n<0&&(n=0)),t[n].offset};Rt.addSeconds=function(e,t,n){return I_(e.dayNumber,e.secondsOfDay+t,n)};Rt.addMinutes=function(e,t,n){let i=e.secondsOfDay+t*jn.SECONDS_PER_MINUTE;return I_(e.dayNumber,i,n)};Rt.addHours=function(e,t,n){let i=e.secondsOfDay+t*jn.SECONDS_PER_HOUR;return I_(e.dayNumber,i,n)};Rt.addDays=function(e,t,n){let i=e.dayNumber+t;return I_(i,e.secondsOfDay,n)};Rt.lessThan=function(e,t){return Rt.compare(e,t)<0};Rt.lessThanOrEquals=function(e,t){return Rt.compare(e,t)<=0};Rt.greaterThan=function(e,t){return Rt.compare(e,t)>0};Rt.greaterThanOrEquals=function(e,t){return Rt.compare(e,t)>=0};Rt.prototype.clone=function(e){return Rt.clone(this,e)};Rt.prototype.equals=function(e){return Rt.equals(this,e)};Rt.prototype.equalsEpsilon=function(e,t){return Rt.equalsEpsilon(this,e,t)};Rt.prototype.toString=function(){return Rt.toIso8601(this)};Rt.leapSeconds=[new Wi(new Rt(2441317,43210,Wn.TAI),10),new Wi(new Rt(2441499,43211,Wn.TAI),11),new Wi(new Rt(2441683,43212,Wn.TAI),12),new Wi(new Rt(2442048,43213,Wn.TAI),13),new Wi(new Rt(2442413,43214,Wn.TAI),14),new Wi(new Rt(2442778,43215,Wn.TAI),15),new Wi(new Rt(2443144,43216,Wn.TAI),16),new Wi(new Rt(2443509,43217,Wn.TAI),17),new Wi(new Rt(2443874,43218,Wn.TAI),18),new Wi(new Rt(2444239,43219,Wn.TAI),19),new Wi(new Rt(2444786,43220,Wn.TAI),20),new Wi(new Rt(2445151,43221,Wn.TAI),21),new Wi(new Rt(2445516,43222,Wn.TAI),22),new Wi(new Rt(2446247,43223,Wn.TAI),23),new Wi(new Rt(2447161,43224,Wn.TAI),24),new Wi(new Rt(2447892,43225,Wn.TAI),25),new Wi(new Rt(2448257,43226,Wn.TAI),26),new Wi(new Rt(2448804,43227,Wn.TAI),27),new Wi(new Rt(2449169,43228,Wn.TAI),28),new Wi(new Rt(2449534,43229,Wn.TAI),29),new Wi(new Rt(2450083,43230,Wn.TAI),30),new Wi(new Rt(2450630,43231,Wn.TAI),31),new Wi(new Rt(2451179,43232,Wn.TAI),32),new Wi(new Rt(2453736,43233,Wn.TAI),33),new Wi(new Rt(2454832,43234,Wn.TAI),34),new Wi(new Rt(2456109,43235,Wn.TAI),35),new Wi(new Rt(2457204,43236,Wn.TAI),36),new Wi(new Rt(2457754,43237,Wn.TAI),37)];var K=Rt;var Y$=Er(zl(),1);function lSe(e){return(e.length===0||e[e.length-1]!=="/")&&(e=`${e}/`),e}var _1=lSe;function N$(e,t){if(e===null||typeof e!="object")return e;t=y(t,!1);let n=new e.constructor;for(let i in e)if(e.hasOwnProperty(i)){let o=e[i];t&&(o=N$(o,t)),n[i]=o}return n}var Ge=N$;function F$(e,t,n){n=y(n,!1);let i={},o=l(e),r=l(t),s,a,c;if(o)for(s in e)e.hasOwnProperty(s)&&(a=e[s],r&&n&&typeof a=="object"&&t.hasOwnProperty(s)?(c=t[s],typeof c=="object"?i[s]=F$(a,c,n):i[s]=a):i[s]=a);if(r)for(s in t)t.hasOwnProperty(s)&&!i.hasOwnProperty(s)&&(c=t[s],i[s]=c);return i}var xt=F$;function uSe(){let e,t,n=new Promise(function(i,o){e=i,t=o});return{resolve:e,reject:t,promise:n}}var Hl=uSe;var B$=Er(zl(),1);function u5(e,t){let n;return typeof document<"u"&&(n=document),u5._implementation(e,t,n)}u5._implementation=function(e,t,n){if(!l(t)){if(typeof n>"u")return e;t=y(n.baseURI,n.location.href)}let i=new B$.default(e);return i.scheme()!==""?i.toString():i.absoluteTo(t).toString()};var qm=u5;var k$=Er(zl(),1);function fSe(e,t){let n="",i=e.lastIndexOf("/");return i!==-1&&(n=e.substring(0,i+1)),t&&(e=new k$.default(e),e.query().length!==0&&(n+=`?${e.query()}`),e.fragment().length!==0&&(n+=`#${e.fragment()}`)),n}var g1=fSe;var V$=Er(zl(),1);function dSe(e){let t=new V$.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),i=n.lastIndexOf("."),i===-1?n="":n=n.substr(i+1),n}var oT=dSe;var U$={};function hSe(e,t,n){l(t)||(t=e.width),l(n)||(n=e.height);let i=U$[t];l(i)||(i={},U$[t]=i);let o=i[n];if(!l(o)){let r=document.createElement("canvas");r.width=t,r.height=n,o=r.getContext("2d",{willReadFrequently:!0}),o.globalCompositeOperation="copy",i[n]=o}return o.drawImage(e,0,0,t,n),o.getImageData(0,0,t,n).data}var fh=hSe;var mSe=/^blob:/i;function pSe(e){return mSe.test(e)}var rT=pSe;var dh;function _Se(e){l(dh)||(dh=document.createElement("a")),dh.href=window.location.href;let t=dh.host,n=dh.protocol;return dh.href=e,dh.href=dh.href,n!==dh.protocol||t!==dh.host}var y0=_Se;var gSe=/^data:/i;function ySe(e){return gSe.test(e)}var P_=ySe;function xSe(e){let t=document.createElement("script");return t.async=!0,t.src=e,new Promise((n,i)=>{window.crossOriginIsolated&&t.setAttribute("crossorigin","anonymous");let o=document.getElementsByTagName("head")[0];t.onload=function(){t.onload=void 0,o.removeChild(t),n()},t.onerror=function(r){i(r)},o.appendChild(t)})}var sT=xSe;function bSe(e){let t="";for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=`${encodeURIComponent(n)}=`;if(Array.isArray(i))for(let r=0,s=i.length;r<s;++r)t+=`${o+encodeURIComponent(i[r])}&`;else t+=`${o+encodeURIComponent(i)}&`}return t=t.slice(0,-1),t}var aT=bSe;function TSe(e){let t={};if(e==="")return t;let n=e.replace(/\+/g,"%20").split(/[&;]/);for(let i=0,o=n.length;i<o;++i){let r=n[i].split("="),s=decodeURIComponent(r[0]),a=r[1];l(a)?a=decodeURIComponent(a):a="";let c=t[s];typeof c=="string"?t[s]=[c,a]:Array.isArray(c)?c.push(a):t[s]=a}return t}var Hu=TSe;var ASe={UNISSUED:0,ISSUED:1,ACTIVE:2,RECEIVED:3,CANCELLED:4,FAILED:5},Zn=Object.freeze(ASe);var CSe={TERRAIN:0,IMAGERY:1,TILES3D:2,OTHER:3},ps=Object.freeze(CSe);function y1(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.throttleByServer,!1),n=y(e.throttle,!1);this.url=e.url,this.requestFunction=e.requestFunction,this.cancelFunction=e.cancelFunction,this.priorityFunction=e.priorityFunction,this.priority=y(e.priority,0),this.throttle=n,this.throttleByServer=t,this.type=y(e.type,ps.OTHER),this.serverKey=e.serverKey,this.state=Zn.UNISSUED,this.deferred=void 0,this.cancelled=!1}y1.prototype.cancel=function(){this.cancelled=!0};y1.prototype.clone=function(e){return l(e)?(e.url=this.url,e.requestFunction=this.requestFunction,e.cancelFunction=this.cancelFunction,e.priorityFunction=this.priorityFunction,e.priority=this.priority,e.throttle=this.throttle,e.throttleByServer=this.throttleByServer,e.type=this.type,e.serverKey=this.serverKey,e.state=Zn.UNISSUED,e.deferred=void 0,e.cancelled=!1,e):new y1(this)};var tr=y1;function ESe(e){let t={};if(!e)return t;let n=e.split(`\r +`);for(let i=0;i<n.length;++i){let o=n[i],r=o.indexOf(": ");if(r>0){let s=o.substring(0,r),a=o.substring(r+2);t[s]=a}}return t}var x1=ESe;function z$(e,t,n){this.statusCode=e,this.response=t,this.responseHeaders=n,typeof this.responseHeaders=="string"&&(this.responseHeaders=x1(this.responseHeaders))}z$.prototype.toString=function(){let e="Request has failed.";return l(this.statusCode)&&(e+=` Status Code: ${this.statusCode}`),e};var Ym=z$;var T1=Er(zl(),1);function NS(){this._listeners=[],this._scopes=[],this._toRemove=[],this._insideRaiseEvent=!1}Object.defineProperties(NS.prototype,{numberOfListeners:{get:function(){return this._listeners.length-this._toRemove.length}}});NS.prototype.addEventListener=function(e,t){this._listeners.push(e),this._scopes.push(t);let n=this;return function(){n.removeEventListener(e,t)}};NS.prototype.removeEventListener=function(e,t){let n=this._listeners,i=this._scopes,o=-1;for(let r=0;r<n.length;r++)if(n[r]===e&&i[r]===t){o=r;break}return o!==-1?(this._insideRaiseEvent?(this._toRemove.push(o),n[o]=void 0,i[o]=void 0):(n.splice(o,1),i.splice(o,1)),!0):!1};function SSe(e,t){return t-e}NS.prototype.raiseEvent=function(){this._insideRaiseEvent=!0;let e,t=this._listeners,n=this._scopes,i=t.length;for(e=0;e<i;e++){let r=t[e];l(r)&&t[e].apply(n[e],arguments)}let o=this._toRemove;if(i=o.length,i>0){for(o.sort(SSe),e=0;e<i;e++){let r=o[e];t.splice(r,1),n.splice(r,1)}o.length=0}this._insideRaiseEvent=!1};var me=NS;function x0(e){this._comparator=e.comparator,this._array=[],this._length=0,this._maximumLength=void 0}Object.defineProperties(x0.prototype,{length:{get:function(){return this._length}},internalArray:{get:function(){return this._array}},maximumLength:{get:function(){return this._maximumLength},set:function(e){let t=this._length;if(e<t){let n=this._array;for(let i=e;i<t;++i)n[i]=void 0;this._length=e,n.length=e}this._maximumLength=e}},comparator:{get:function(){return this._comparator}}});function f5(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}x0.prototype.reserve=function(e){e=y(e,this._length),this._array.length=e};x0.prototype.heapify=function(e){e=y(e,0);let t=this._length,n=this._comparator,i=this._array,o=-1,r=!0;for(;r;){let s=2*(e+1),a=s-1;a<t&&n(i[a],i[e])<0?o=a:o=e,s<t&&n(i[s],i[o])<0&&(o=s),o!==e?(f5(i,o,e),e=o):r=!1}};x0.prototype.resort=function(){let e=this._length;for(let t=Math.ceil(e/2);t>=0;--t)this.heapify(t)};x0.prototype.insert=function(e){let t=this._array,n=this._comparator,i=this._maximumLength,o=this._length++;for(o<t.length?t[o]=e:t.push(e);o!==0;){let s=Math.floor((o-1)/2);if(n(t[o],t[s])<0)f5(t,o,s),o=s;else break}let r;return l(i)&&this._length>i&&(r=t[i],this._length=i),r};x0.prototype.pop=function(e){if(e=y(e,0),this._length===0)return;let t=this._array,n=t[e];return f5(t,e,--this._length),this.heapify(e),t[this._length]=void 0,n};var b1=x0;function vSe(e,t){return e.priority-t.priority}var Xi={numberOfAttemptedRequests:0,numberOfActiveRequests:0,numberOfCancelledRequests:0,numberOfCancelledActiveRequests:0,numberOfFailedRequests:0,numberOfActiveRequestsEver:0,lastNumberOfActiveRequests:0},cT=20,ka=new b1({comparator:vSe});ka.maximumLength=cT;ka.reserve(cT);var hh=[],Xm={},wSe=typeof document<"u"?new T1.default(document.location.href):new T1.default,A1=new me;function zo(){}zo.maximumRequests=50;zo.maximumRequestsPerServer=18;zo.requestsByServer={};zo.throttleRequests=!0;zo.debugShowStatistics=!1;zo.requestCompletedEvent=A1;Object.defineProperties(zo,{statistics:{get:function(){return Xi}},priorityHeapLength:{get:function(){return cT},set:function(e){if(e<cT)for(;ka.length>e;){let t=ka.pop();b0(t)}cT=e,ka.maximumLength=e,ka.reserve(e)}}});function H$(e){l(e.priorityFunction)&&(e.priority=e.priorityFunction())}zo.serverHasOpenSlots=function(e,t){t=y(t,1);let n=y(zo.requestsByServer[e],zo.maximumRequestsPerServer);return Xm[e]+t<=n};zo.heapHasOpenSlots=function(e){return ka.length+e<=cT};function G$(e){return e.state===Zn.UNISSUED&&(e.state=Zn.ISSUED,e.deferred=Hl()),e.deferred.promise}function DSe(e){return function(t){if(e.state===Zn.CANCELLED)return;let n=e.deferred;--Xi.numberOfActiveRequests,--Xm[e.serverKey],A1.raiseEvent(),e.state=Zn.RECEIVED,e.deferred=void 0,n.resolve(t)}}function ISe(e){return function(t){e.state!==Zn.CANCELLED&&(++Xi.numberOfFailedRequests,--Xi.numberOfActiveRequests,--Xm[e.serverKey],A1.raiseEvent(t),e.state=Zn.FAILED,e.deferred.reject(t))}}function W$(e){let t=G$(e);return e.state=Zn.ACTIVE,hh.push(e),++Xi.numberOfActiveRequests,++Xi.numberOfActiveRequestsEver,++Xm[e.serverKey],e.requestFunction().then(DSe(e)).catch(ISe(e)),t}function b0(e){let t=e.state===Zn.ACTIVE;if(e.state=Zn.CANCELLED,++Xi.numberOfCancelledRequests,l(e.deferred)){let n=e.deferred;e.deferred=void 0,n.reject()}t&&(--Xi.numberOfActiveRequests,--Xm[e.serverKey],++Xi.numberOfCancelledActiveRequests),l(e.cancelFunction)&&e.cancelFunction()}zo.update=function(){let e,t,n=0,i=hh.length;for(e=0;e<i;++e){if(t=hh[e],t.cancelled&&b0(t),t.state!==Zn.ACTIVE){++n;continue}n>0&&(hh[e-n]=t)}hh.length-=n;let o=ka.internalArray,r=ka.length;for(e=0;e<r;++e)H$(o[e]);ka.resort();let s=Math.max(zo.maximumRequests-hh.length,0),a=0;for(;a<s&&ka.length>0;){if(t=ka.pop(),t.cancelled){b0(t);continue}if(t.throttleByServer&&!zo.serverHasOpenSlots(t.serverKey)){b0(t);continue}W$(t),++a}PSe()};zo.getServerKey=function(e){let t=new T1.default(e);t.scheme()===""&&(t=t.absoluteTo(wSe),t.normalize());let n=t.authority();/:/.test(n)||(n=`${n}:${t.scheme()==="https"?"443":"80"}`);let i=Xm[n];return l(i)||(Xm[n]=0),n};zo.request=function(e){if(P_(e.url)||rT(e.url))return A1.raiseEvent(),e.state=Zn.RECEIVED,e.requestFunction();if(++Xi.numberOfAttemptedRequests,l(e.serverKey)||(e.serverKey=zo.getServerKey(e.url)),zo.throttleRequests&&e.throttleByServer&&!zo.serverHasOpenSlots(e.serverKey))return;if(!zo.throttleRequests||!e.throttle)return W$(e);if(hh.length>=zo.maximumRequests)return;H$(e);let t=ka.insert(e);if(l(t)){if(t===e)return;b0(t)}return G$(e)};function PSe(){zo.debugShowStatistics&&(Xi.numberOfActiveRequests===0&&Xi.lastNumberOfActiveRequests>0&&(Xi.numberOfAttemptedRequests>0&&(console.log(`Number of attempted requests: ${Xi.numberOfAttemptedRequests}`),Xi.numberOfAttemptedRequests=0),Xi.numberOfCancelledRequests>0&&(console.log(`Number of cancelled requests: ${Xi.numberOfCancelledRequests}`),Xi.numberOfCancelledRequests=0),Xi.numberOfCancelledActiveRequests>0&&(console.log(`Number of cancelled active requests: ${Xi.numberOfCancelledActiveRequests}`),Xi.numberOfCancelledActiveRequests=0),Xi.numberOfFailedRequests>0&&(console.log(`Number of failed requests: ${Xi.numberOfFailedRequests}`),Xi.numberOfFailedRequests=0)),Xi.lastNumberOfActiveRequests=Xi.numberOfActiveRequests)}zo.clearForSpecs=function(){for(;ka.length>0;){let t=ka.pop();b0(t)}let e=hh.length;for(let t=0;t<e;++t)b0(hh[t]);hh.length=0,Xm={},Xi.numberOfAttemptedRequests=0,Xi.numberOfActiveRequests=0,Xi.numberOfCancelledRequests=0,Xi.numberOfCancelledActiveRequests=0,Xi.numberOfFailedRequests=0,Xi.numberOfActiveRequestsEver=0,Xi.lastNumberOfActiveRequests=0};zo.numberOfActiveRequestsByServer=function(e){return Xm[e]};zo.requestHeap=ka;var yc=zo;var j$=Er(zl(),1);var FS={},lT={};FS.add=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(lT[n])||(lT[n]=!0)};FS.remove=function(e,t){let n=`${e.toLowerCase()}:${t}`;l(lT[n])&&delete lT[n]};function RSe(e){let t=new j$.default(e);t.normalize();let n=t.authority();if(n.length!==0){if(t.authority(n),n.indexOf("@")!==-1&&(n=n.split("@")[1]),n.indexOf(":")===-1){let i=t.scheme();if(i.length===0&&(i=window.location.protocol,i=i.substring(0,i.length-1)),i==="http")n+=":80";else if(i==="https")n+=":443";else return}return n}}FS.contains=function(e){let t=RSe(e);return!!(l(t)&&l(lT[t]))};FS.clear=function(){lT={}};var BS=FS;var X$=function(){try{let e=new XMLHttpRequest;return e.open("GET","#",!0),e.responseType="blob",e.responseType==="blob"}catch{return!1}}();function Pt(e){e=y(e,y.EMPTY_OBJECT),typeof e=="string"&&(e={url:e}),this._url=void 0,this._templateValues=mh(e.templateValues,{}),this._queryParameters=mh(e.queryParameters,{}),this.headers=mh(e.headers,{}),this.request=y(e.request,new tr),this.proxy=e.proxy,this.retryCallback=e.retryCallback,this.retryAttempts=y(e.retryAttempts,0),this._retryCount=0,y(e.parseUrl,!0)?this.parseUrl(e.url,!0,!0):this._url=e.url,this._credits=e.credits}function mh(e,t){return l(e)?Ge(e):t}Pt.createIfNeeded=function(e){return e instanceof Pt?e.getDerivedResource({request:e.request}):typeof e!="string"?e:new Pt({url:e})};var uT;Pt.supportsImageBitmapOptions=function(){return l(uT)?uT:typeof createImageBitmap!="function"?(uT=Promise.resolve(!1),uT):(uT=Pt.fetchBlob({url:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAIAAACQd1PeAAAABGdBTUEAAE4g3rEiDgAAACBjSFJNAAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAADElEQVQI12Ng6GAAAAEUAIngE3ZiAAAAAElFTkSuQmCC"}).then(function(t){let n={imageOrientation:"flipY",premultiplyAlpha:"none",colorSpaceConversion:"none"};return Promise.all([createImageBitmap(t,n),createImageBitmap(t)])}).then(function(t){let n=fh(t[0]),i=fh(t[1]);return n[1]!==i[1]}).catch(function(){return!1}),uT)};Object.defineProperties(Pt,{isBlobSupported:{get:function(){return X$}}});Object.defineProperties(Pt.prototype,{queryParameters:{get:function(){return this._queryParameters}},templateValues:{get:function(){return this._templateValues}},url:{get:function(){return this.getUrlComponent(!0,!0)},set:function(e){this.parseUrl(e,!1,!1)}},extension:{get:function(){return oT(this._url)}},isDataUri:{get:function(){return P_(this._url)}},isBlobUri:{get:function(){return rT(this._url)}},isCrossOriginUrl:{get:function(){return y0(this._url)}},hasHeaders:{get:function(){return Object.keys(this.headers).length>0}},credits:{get:function(){return this._credits}}});Pt.prototype.toString=function(){return this.getUrlComponent(!0,!0)};Pt.prototype.parseUrl=function(e,t,n,i){let o=new Y$.default(e),r=OSe(o.query());this._queryParameters=t?E1(r,this.queryParameters,n):r,o.search(""),o.fragment(""),l(i)&&o.scheme()===""&&(o=o.absoluteTo(qm(i))),this._url=o.toString()};function OSe(e){return e.length===0?{}:e.indexOf("=")===-1?{[e]:void 0}:Hu(e)}function E1(e,t,n){if(!n)return xt(e,t);let i=Ge(e,!0);for(let o in t)if(t.hasOwnProperty(o)){let r=i[o],s=t[o];l(r)?(Array.isArray(r)||(r=i[o]=[r]),i[o]=r.concat(s)):i[o]=Array.isArray(s)?s.slice():s}return i}Pt.prototype.getUrlComponent=function(e,t){if(this.isDataUri)return this._url;let n=this._url;e&&(n=`${n}${MSe(this.queryParameters)}`),n=n.replace(/%7B/g,"{").replace(/%7D/g,"}");let i=this._templateValues;return Object.keys(i).length>0&&(n=n.replace(/{(.*?)}/g,function(o,r){let s=i[r];return l(s)?encodeURIComponent(s):o})),t&&l(this.proxy)&&(n=this.proxy.getURL(n)),n};function MSe(e){let t=Object.keys(e);return t.length===0?"":t.length===1&&!l(e[t[0]])?`?${t[0]}`:`?${aT(e)}`}Pt.prototype.setQueryParameters=function(e,t){t?this._queryParameters=E1(this._queryParameters,e,!1):this._queryParameters=E1(e,this._queryParameters,!1)};Pt.prototype.appendQueryParameters=function(e){this._queryParameters=E1(e,this._queryParameters,!0)};Pt.prototype.setTemplateValues=function(e,t){t?this._templateValues=xt(this._templateValues,e):this._templateValues=xt(e,this._templateValues)};Pt.prototype.getDerivedResource=function(e){let t=this.clone();if(t._retryCount=0,l(e.url)){let n=y(e.preserveQueryParameters,!1);t.parseUrl(e.url,!0,n,this._url)}return l(e.queryParameters)&&(t._queryParameters=xt(e.queryParameters,t.queryParameters)),l(e.templateValues)&&(t._templateValues=xt(e.templateValues,t.templateValues)),l(e.headers)&&(t.headers=xt(e.headers,t.headers)),l(e.proxy)&&(t.proxy=e.proxy),l(e.request)&&(t.request=e.request),l(e.retryCallback)&&(t.retryCallback=e.retryCallback),l(e.retryAttempts)&&(t.retryAttempts=e.retryAttempts),t};Pt.prototype.retryOnError=function(e){let t=this.retryCallback;if(typeof t!="function"||this._retryCount>=this.retryAttempts)return Promise.resolve(!1);let n=this;return Promise.resolve(t(this,e)).then(function(i){return++n._retryCount,i})};Pt.prototype.clone=function(e){return l(e)?(e._url=this._url,e._queryParameters=Ge(this._queryParameters),e._templateValues=Ge(this._templateValues),e.headers=Ge(this.headers),e.proxy=this.proxy,e.retryCallback=this.retryCallback,e.retryAttempts=this.retryAttempts,e._retryCount=0,e.request=this.request.clone(),e):new Pt({url:this._url,queryParameters:this.queryParameters,templateValues:this.templateValues,headers:this.headers,proxy:this.proxy,retryCallback:this.retryCallback,retryAttempts:this.retryAttempts,request:this.request.clone(),parseUrl:!1,credits:l(this.credits)?this.credits.slice():void 0})};Pt.prototype.getBaseUri=function(e){return g1(this.getUrlComponent(e),e)};Pt.prototype.appendForwardSlash=function(){this._url=_1(this._url)};Pt.prototype.fetchArrayBuffer=function(){return this.fetch({responseType:"arraybuffer"})};Pt.fetchArrayBuffer=function(e){return new Pt(e).fetchArrayBuffer()};Pt.prototype.fetchBlob=function(){return this.fetch({responseType:"blob"})};Pt.fetchBlob=function(e){return new Pt(e).fetchBlob()};Pt.prototype.fetchImage=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.preferImageBitmap,!1),n=y(e.preferBlob,!1),i=y(e.flipY,!1),o=y(e.skipColorSpaceConversion,!1);if(h5(this.request),!X$||this.isDataUri||this.isBlobUri||!this.hasHeaders&&!n)return d5({resource:this,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:t});let r=this.fetchBlob();if(!l(r))return;let s,a,c,u;return Pt.supportsImageBitmapOptions().then(function(f){return s=f,a=s&&t,r}).then(function(f){if(!l(f))return;if(u=f,a)return Pt.createImageBitmapFromBlob(f,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o});let d=window.URL.createObjectURL(f);return c=new Pt({url:d}),d5({resource:c,flipY:i,skipColorSpaceConversion:o,preferImageBitmap:!1})}).then(function(f){if(l(f))return f.blob=u,a||window.URL.revokeObjectURL(c.url),f}).catch(function(f){return l(c)&&window.URL.revokeObjectURL(c.url),f.blob=u,Promise.reject(f)})};function d5(e){let t=e.resource,n=e.flipY,i=e.skipColorSpaceConversion,o=e.preferImageBitmap,r=t.request;r.url=t.url,r.requestFunction=function(){let a=!1;!t.isDataUri&&!t.isBlobUri&&(a=t.isCrossOriginUrl);let c=Hl();return Pt._Implementations.createImage(r,a,c,n,i,o),c.promise};let s=yc.request(r);if(l(s))return s.catch(function(a){return r.state!==Zn.FAILED?Promise.reject(a):t.retryOnError(a).then(function(c){return c?(r.state=Zn.UNISSUED,r.deferred=void 0,d5({resource:t,flipY:n,skipColorSpaceConversion:i,preferImageBitmap:o})):Promise.reject(a)})})}Pt.fetchImage=function(e){return new Pt(e).fetchImage({flipY:e.flipY,skipColorSpaceConversion:e.skipColorSpaceConversion,preferBlob:e.preferBlob,preferImageBitmap:e.preferImageBitmap})};Pt.prototype.fetchText=function(){return this.fetch({responseType:"text"})};Pt.fetchText=function(e){return new Pt(e).fetchText()};Pt.prototype.fetchJson=function(){let e=this.fetch({responseType:"text",headers:{Accept:"application/json,*/*;q=0.01"}});if(l(e))return e.then(function(t){if(l(t))return JSON.parse(t)})};Pt.fetchJson=function(e){return new Pt(e).fetchJson()};Pt.prototype.fetchXML=function(){return this.fetch({responseType:"document",overrideMimeType:"text/xml"})};Pt.fetchXML=function(e){return new Pt(e).fetchXML()};Pt.prototype.fetchJsonp=function(e){e=y(e,"callback"),h5(this.request);let t;do t=`loadJsonp${P.nextRandomNumber().toString().substring(2,8)}`;while(l(window[t]));return K$(this,e,t)};function K$(e,t,n){let i={};i[t]=n,e.setQueryParameters(i);let o=e.request,r=e.url;o.url=r,o.requestFunction=function(){let a=Hl();return window[n]=function(c){a.resolve(c);try{delete window[n]}catch{window[n]=void 0}},Pt._Implementations.loadAndExecuteScript(r,n,a),a.promise};let s=yc.request(o);if(l(s))return s.catch(function(a){return o.state!==Zn.FAILED?Promise.reject(a):e.retryOnError(a).then(function(c){return c?(o.state=Zn.UNISSUED,o.deferred=void 0,K$(e,t,n)):Promise.reject(a)})})}Pt.fetchJsonp=function(e){return new Pt(e).fetchJsonp(e.callbackParameterName)};Pt.prototype._makeRequest=function(e){let t=this;h5(t.request);let n=t.request,i=t.url;n.url=i,n.requestFunction=function(){let r=e.responseType,s=xt(e.headers,t.headers),a=e.overrideMimeType,c=e.method,u=e.data,f=Hl(),d=Pt._Implementations.loadWithXhr(i,r,c,u,s,f,a);return l(d)&&l(d.abort)&&(n.cancelFunction=function(){d.abort()}),f.promise};let o=yc.request(n);if(l(o))return o.then(function(r){return n.cancelFunction=void 0,r}).catch(function(r){return n.cancelFunction=void 0,n.state!==Zn.FAILED?Promise.reject(r):t.retryOnError(r).then(function(s){return s?(n.state=Zn.UNISSUED,n.deferred=void 0,t.fetch(e)):Promise.reject(r)})})};function h5(e){if(e.state===Zn.ISSUED||e.state===Zn.ACTIVE)throw new ce("The Resource is already being fetched.");e.state=Zn.UNISSUED,e.deferred=void 0}var LSe=/^data:(.*?)(;base64)?,(.*)$/;function C1(e,t){let n=decodeURIComponent(t);return e?atob(n):n}function q$(e,t){let n=C1(e,t),i=new ArrayBuffer(n.length),o=new Uint8Array(i);for(let r=0;r<n.length;r++)o[r]=n.charCodeAt(r);return i}function NSe(e,t){t=y(t,"");let n=e[1],i=!!e[2],o=e[3],r,s;switch(t){case"":case"text":return C1(i,o);case"arraybuffer":return q$(i,o);case"blob":return r=q$(i,o),new Blob([r],{type:n});case"document":return s=new DOMParser,s.parseFromString(C1(i,o),n);case"json":return JSON.parse(C1(i,o));default:}}Pt.prototype.fetch=function(e){return e=mh(e,{}),e.method="GET",this._makeRequest(e)};Pt.fetch=function(e){return new Pt(e).fetch({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt.prototype.delete=function(e){return e=mh(e,{}),e.method="DELETE",this._makeRequest(e)};Pt.delete=function(e){return new Pt(e).delete({responseType:e.responseType,overrideMimeType:e.overrideMimeType,data:e.data})};Pt.prototype.head=function(e){return e=mh(e,{}),e.method="HEAD",this._makeRequest(e)};Pt.head=function(e){return new Pt(e).head({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt.prototype.options=function(e){return e=mh(e,{}),e.method="OPTIONS",this._makeRequest(e)};Pt.options=function(e){return new Pt(e).options({responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt.prototype.post=function(e,t){return xo.defined("data",e),t=mh(t,{}),t.method="POST",t.data=e,this._makeRequest(t)};Pt.post=function(e){return new Pt(e).post(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt.prototype.put=function(e,t){return xo.defined("data",e),t=mh(t,{}),t.method="PUT",t.data=e,this._makeRequest(t)};Pt.put=function(e){return new Pt(e).put(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt.prototype.patch=function(e,t){return xo.defined("data",e),t=mh(t,{}),t.method="PATCH",t.data=e,this._makeRequest(t)};Pt.patch=function(e){return new Pt(e).patch(e.data,{responseType:e.responseType,overrideMimeType:e.overrideMimeType})};Pt._Implementations={};Pt._Implementations.loadImageElement=function(e,t,n){let i=new Image;i.onload=function(){i.naturalWidth===0&&i.naturalHeight===0&&i.width===0&&i.height===0&&(i.width=300,i.height=150),n.resolve(i)},i.onerror=function(o){n.reject(o)},t&&(BS.contains(e)?i.crossOrigin="use-credentials":i.crossOrigin=""),i.src=e};Pt._Implementations.createImage=function(e,t,n,i,o,r){let s=e.url;Pt.supportsImageBitmapOptions().then(function(a){if(!(a&&r)){Pt._Implementations.loadImageElement(s,t,n);return}let c="blob",u="GET",f=Hl(),d=Pt._Implementations.loadWithXhr(s,c,u,void 0,void 0,f,void 0,void 0,void 0);return l(d)&&l(d.abort)&&(e.cancelFunction=function(){d.abort()}),f.promise.then(function(p){if(!l(p)){n.reject(new ce(`Successfully retrieved ${s} but it contained no content.`));return}return Pt.createImageBitmapFromBlob(p,{flipY:i,premultiplyAlpha:!1,skipColorSpaceConversion:o})}).then(function(p){n.resolve(p)})}).catch(function(a){n.reject(a)})};Pt.createImageBitmapFromBlob=function(e,t){return xo.defined("options",t),xo.typeOf.bool("options.flipY",t.flipY),xo.typeOf.bool("options.premultiplyAlpha",t.premultiplyAlpha),xo.typeOf.bool("options.skipColorSpaceConversion",t.skipColorSpaceConversion),createImageBitmap(e,{imageOrientation:t.flipY?"flipY":"none",premultiplyAlpha:t.premultiplyAlpha?"premultiply":"none",colorSpaceConversion:t.skipColorSpaceConversion?"none":"default"})};function FSe(e,t,n,i,o,r,s){fetch(e,{method:n,headers:o}).then(async a=>{if(!a.ok){let c={};a.headers.forEach((u,f)=>{c[f]=u}),r.reject(new Ym(a.status,a,c));return}switch(t){case"text":r.resolve(a.text());break;case"json":r.resolve(a.json());break;default:r.resolve(new Uint8Array(await a.arrayBuffer()).buffer);break}}).catch(()=>{r.reject(new Ym)})}var BSe=typeof XMLHttpRequest>"u";Pt._Implementations.loadWithXhr=function(e,t,n,i,o,r,s){let a=LSe.exec(e);if(a!==null){r.resolve(NSe(a,t));return}if(BSe){FSe(e,t,n,i,o,r,s);return}let c=new XMLHttpRequest;if(BS.contains(e)&&(c.withCredentials=!0),c.open(n,e,!0),l(s)&&l(c.overrideMimeType)&&c.overrideMimeType(s),l(o))for(let f in o)o.hasOwnProperty(f)&&c.setRequestHeader(f,o[f]);l(t)&&(c.responseType=t);let u=!1;return typeof e=="string"&&(u=e.indexOf("file://")===0||typeof window<"u"&&window.location.origin==="file://"),c.onload=function(){if((c.status<200||c.status>=300)&&!(u&&c.status===0)){r.reject(new Ym(c.status,c.response,c.getAllResponseHeaders()));return}let f=c.response,d=c.responseType;if(n==="HEAD"||n==="OPTIONS"){let g=c.getAllResponseHeaders().trim().split(/[\r\n]+/),m={};g.forEach(function(x){let b=x.split(": "),T=b.shift();m[T]=b.join(": ")}),r.resolve(m);return}if(c.status===204)r.resolve(void 0);else if(l(f)&&(!l(t)||d===t))r.resolve(f);else if(t==="json"&&typeof f=="string")try{r.resolve(JSON.parse(f))}catch(p){r.reject(p)}else(d===""||d==="document")&&l(c.responseXML)&&c.responseXML.hasChildNodes()?r.resolve(c.responseXML):(d===""||d==="text")&&l(c.responseText)?r.resolve(c.responseText):r.reject(new ce("Invalid XMLHttpRequest response type."))},c.onerror=function(f){r.reject(new Ym)},c.send(i),c};Pt._Implementations.loadAndExecuteScript=function(e,t,n){return sT(e,t).catch(function(i){n.reject(i)})};Pt._DefaultImplementations={};Pt._DefaultImplementations.createImage=Pt._Implementations.createImage;Pt._DefaultImplementations.loadWithXhr=Pt._Implementations.loadWithXhr;Pt._DefaultImplementations.loadAndExecuteScript=Pt._Implementations.loadAndExecuteScript;Pt.DEFAULT=Object.freeze(new Pt({url:typeof document>"u"?"":document.location.href.split("?")[0]}));var De=Pt;function VS(e){e=y(e,y.EMPTY_OBJECT),this._dates=void 0,this._samples=void 0,this._dateColumn=-1,this._xPoleWanderRadiansColumn=-1,this._yPoleWanderRadiansColumn=-1,this._ut1MinusUtcSecondsColumn=-1,this._xCelestialPoleOffsetRadiansColumn=-1,this._yCelestialPoleOffsetRadiansColumn=-1,this._taiMinusUtcSecondsColumn=-1,this._columnCount=0,this._lastIndex=-1,this._addNewLeapSeconds=y(e.addNewLeapSeconds,!0),l(e.data)?Z$(this,e.data):Z$(this,{columnNames:["dateIso8601","modifiedJulianDateUtc","xPoleWanderRadians","yPoleWanderRadians","ut1MinusUtcSeconds","lengthOfDayCorrectionSeconds","xCelestialPoleOffsetRadians","yCelestialPoleOffsetRadians","taiMinusUtcSeconds"],samples:[]})}VS.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e),i;try{i=await n.fetchJson()}catch{throw new ce(`An error occurred while retrieving the EOP data from the URL ${n.url}.`)}return new VS({addNewLeapSeconds:t.addNewLeapSeconds,data:i})};VS.NONE=Object.freeze({compute:function(e,t){return l(t)?(t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0):t=new g0(0,0,0,0,0),t}});VS.prototype.compute=function(e,t){if(!l(this._samples))return;if(l(t)||(t=new g0(0,0,0,0,0)),this._samples.length===0)return t.xPoleWander=0,t.yPoleWander=0,t.xPoleOffset=0,t.yPoleOffset=0,t.ut1MinusUtc=0,t;let n=this._dates,i=this._lastIndex,o=0,r=0;if(l(i)){let a=n[i],c=n[i+1],u=K.lessThanOrEquals(a,e),f=!l(c),d=f||K.greaterThanOrEquals(c,e);if(u&&d)return o=i,!f&&c.equals(e)&&++o,r=o+1,Q$(this,n,this._samples,e,o,r,t),t}let s=Po(n,e,K.compare,this._dateColumn);return s>=0?(s<n.length-1&&n[s+1].equals(e)&&++s,o=s,r=s):(r=~s,o=r-1,o<0&&(o=0)),this._lastIndex=o,Q$(this,n,this._samples,e,o,r,t),t};function kSe(e,t){return K.compare(e.julianDate,t)}function Z$(e,t){if(!l(t.columnNames))throw new ce("Error in loaded EOP data: The columnNames property is required.");if(!l(t.samples))throw new ce("Error in loaded EOP data: The samples property is required.");let n=t.columnNames.indexOf("modifiedJulianDateUtc"),i=t.columnNames.indexOf("xPoleWanderRadians"),o=t.columnNames.indexOf("yPoleWanderRadians"),r=t.columnNames.indexOf("ut1MinusUtcSeconds"),s=t.columnNames.indexOf("xCelestialPoleOffsetRadians"),a=t.columnNames.indexOf("yCelestialPoleOffsetRadians"),c=t.columnNames.indexOf("taiMinusUtcSeconds");if(n<0||i<0||o<0||r<0||s<0||a<0||c<0)throw new ce("Error in loaded EOP data: The columnNames property must include modifiedJulianDateUtc, xPoleWanderRadians, yPoleWanderRadians, ut1MinusUtcSeconds, xCelestialPoleOffsetRadians, yCelestialPoleOffsetRadians, and taiMinusUtcSeconds columns");let u=e._samples=t.samples,f=e._dates=[];e._dateColumn=n,e._xPoleWanderRadiansColumn=i,e._yPoleWanderRadiansColumn=o,e._ut1MinusUtcSecondsColumn=r,e._xCelestialPoleOffsetRadiansColumn=s,e._yCelestialPoleOffsetRadiansColumn=a,e._taiMinusUtcSecondsColumn=c,e._columnCount=t.columnNames.length,e._lastIndex=void 0;let d,p=e._addNewLeapSeconds;for(let g=0,m=u.length;g<m;g+=e._columnCount){let x=u[g+n],b=u[g+c],T=x+jn.MODIFIED_JULIAN_DATE_DIFFERENCE,A=new K(T,b,Wn.TAI);if(f.push(A),p){if(b!==d&&l(d)){let C=K.leapSeconds,S=Po(C,A,kSe);if(S<0){let v=new Wi(A,b);C.splice(~S,0,v)}}d=b}}}function $$(e,t,n,i,o){let r=n*i;o.xPoleWander=t[r+e._xPoleWanderRadiansColumn],o.yPoleWander=t[r+e._yPoleWanderRadiansColumn],o.xPoleOffset=t[r+e._xCelestialPoleOffsetRadiansColumn],o.yPoleOffset=t[r+e._yCelestialPoleOffsetRadiansColumn],o.ut1MinusUtc=t[r+e._ut1MinusUtcSecondsColumn]}function kS(e,t,n){return t+e*(n-t)}function Q$(e,t,n,i,o,r,s){let a=e._columnCount;if(r>t.length-1)return s.xPoleWander=0,s.yPoleWander=0,s.xPoleOffset=0,s.yPoleOffset=0,s.ut1MinusUtc=0,s;let c=t[o],u=t[r];if(c.equals(u)||i.equals(c))return $$(e,n,o,a,s),s;if(i.equals(u))return $$(e,n,r,a,s),s;let f=K.secondsDifference(i,c)/K.secondsDifference(u,c),d=o*a,p=r*a,g=n[d+e._ut1MinusUtcSecondsColumn],m=n[p+e._ut1MinusUtcSecondsColumn],x=m-g;if(x>.5||x<-.5){let b=n[d+e._taiMinusUtcSecondsColumn],T=n[p+e._taiMinusUtcSecondsColumn];b!==T&&(u.equals(i)?g=m:m-=T-b)}return s.xPoleWander=kS(f,n[d+e._xPoleWanderRadiansColumn],n[p+e._xPoleWanderRadiansColumn]),s.yPoleWander=kS(f,n[d+e._yPoleWanderRadiansColumn],n[p+e._yPoleWanderRadiansColumn]),s.xPoleOffset=kS(f,n[d+e._xCelestialPoleOffsetRadiansColumn],n[p+e._xCelestialPoleOffsetRadiansColumn]),s.yPoleOffset=kS(f,n[d+e._yCelestialPoleOffsetRadiansColumn],n[p+e._yCelestialPoleOffsetRadiansColumn]),s.ut1MinusUtc=kS(f,g,m),s}var S1=VS;function Va(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.roll=y(n,0)}Va.fromQuaternion=function(e,t){l(t)||(t=new Va);let n=2*(e.w*e.y-e.z*e.x),i=1-2*(e.x*e.x+e.y*e.y),o=2*(e.w*e.x+e.y*e.z),r=1-2*(e.y*e.y+e.z*e.z),s=2*(e.w*e.z+e.x*e.y);return t.heading=-Math.atan2(s,r),t.roll=Math.atan2(o,i),t.pitch=-P.asinClamped(n),t};Va.fromDegrees=function(e,t,n,i){return l(i)||(i=new Va),i.heading=e*P.RADIANS_PER_DEGREE,i.pitch=t*P.RADIANS_PER_DEGREE,i.roll=n*P.RADIANS_PER_DEGREE,i};Va.clone=function(e,t){if(l(e))return l(t)?(t.heading=e.heading,t.pitch=e.pitch,t.roll=e.roll,t):new Va(e.heading,e.pitch,e.roll)};Va.equals=function(e,t){return e===t||l(e)&&l(t)&&e.heading===t.heading&&e.pitch===t.pitch&&e.roll===t.roll};Va.equalsEpsilon=function(e,t,n,i){return e===t||l(e)&&l(t)&&P.equalsEpsilon(e.heading,t.heading,n,i)&&P.equalsEpsilon(e.pitch,t.pitch,n,i)&&P.equalsEpsilon(e.roll,t.roll,n,i)};Va.prototype.clone=function(e){return Va.clone(this,e)};Va.prototype.equals=function(e){return Va.equals(this,e)};Va.prototype.equalsEpsilon=function(e,t,n){return Va.equalsEpsilon(this,e,t,n)};Va.prototype.toString=function(){return`(${this.heading}, ${this.pitch}, ${this.roll})`};var Ua=Va;var J$=/((?:.*\/)|^)Cesium\.js(?:\?|\#|$)/;function VSe(){let e=document.getElementsByTagName("script");for(let t=0,n=e.length;t<n;++t){let i=e[t].getAttribute("src"),o=J$.exec(i);if(o!==null)return o[1]}}var v1;function eQ(e){return typeof document>"u"?e:(l(v1)||(v1=document.createElement("a")),v1.href=e,v1.href)}var T0;function tQ(){if(l(T0))return T0;let e;return typeof CESIUM_BASE_URL<"u"?e=CESIUM_BASE_URL:l(import.meta?.url)?e=qm(".",import.meta.url):typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(qP.toUrl)?e=qm("..",A0("Core/buildModuleUrl.js")):e=VSe(),T0=new De({url:eQ(e)}),T0.appendForwardSlash(),T0}function USe(e){return eQ(qP.toUrl(`../${e}`))}function nQ(e){return tQ().getDerivedResource({url:e}).url}var w1;function A0(e){return l(w1)||(typeof define=="object"&&l(define.amd)&&!define.amd.toUrlUndefined&&l(qP.toUrl)?w1=USe:w1=nQ),w1(e)}A0._cesiumScriptRegex=J$;A0._buildModuleUrlFromBaseUrl=nQ;A0._clearBaseResource=function(){T0=void 0};A0.setBaseUrl=function(e){T0=De.DEFAULT.getDerivedResource({url:e})};A0.getCesiumBaseUrl=tQ;var nn=A0;function zSe(e,t,n){this.x=e,this.y=t,this.s=n}var fT=zSe;function _5(e){e=y(e,y.EMPTY_OBJECT),this._xysFileUrlTemplate=De.createIfNeeded(e.xysFileUrlTemplate),this._interpolationOrder=y(e.interpolationOrder,9),this._sampleZeroJulianEphemerisDate=y(e.sampleZeroJulianEphemerisDate,24423965e-1),this._sampleZeroDateTT=new K(this._sampleZeroJulianEphemerisDate,0,Wn.TAI),this._stepSizeDays=y(e.stepSizeDays,1),this._samplesPerXysFile=y(e.samplesPerXysFile,1e3),this._totalSamples=y(e.totalSamples,27426),this._samples=new Array(this._totalSamples*3),this._chunkDownloadsInProgress=[];let t=this._interpolationOrder,n=this._denominators=new Array(t+1),i=this._xTable=new Array(t+1),o=Math.pow(this._stepSizeDays,t);for(let r=0;r<=t;++r){n[r]=o,i[r]=r*this._stepSizeDays;for(let s=0;s<=t;++s)s!==r&&(n[r]*=r-s);n[r]=1/n[r]}this._work=new Array(t+1),this._coef=new Array(t+1)}var HSe=new K(0,0,Wn.TAI);function m5(e,t,n){let i=HSe;return i.dayNumber=t,i.secondsOfDay=n,K.daysDifference(i,e._sampleZeroDateTT)}_5.prototype.preload=function(e,t,n,i){let o=m5(this,e,t),r=m5(this,n,i),s=o/this._stepSizeDays-this._interpolationOrder/2|0;s<0&&(s=0);let a=r/this._stepSizeDays-this._interpolationOrder/2|0+this._interpolationOrder;a>=this._totalSamples&&(a=this._totalSamples-1);let c=s/this._samplesPerXysFile|0,u=a/this._samplesPerXysFile|0,f=[];for(let d=c;d<=u;++d)f.push(p5(this,d));return Promise.all(f)};_5.prototype.computeXysRadians=function(e,t,n){let i=m5(this,e,t);if(i<0)return;let o=i/this._stepSizeDays|0;if(o>=this._totalSamples)return;let r=this._interpolationOrder,s=o-(r/2|0);s<0&&(s=0);let a=s+r;a>=this._totalSamples&&(a=this._totalSamples-1,s=a-r,s<0&&(s=0));let c=!1,u=this._samples;if(l(u[s*3])||(p5(this,s/this._samplesPerXysFile|0),c=!0),l(u[a*3])||(p5(this,a/this._samplesPerXysFile|0),c=!0),c)return;l(n)?(n.x=0,n.y=0,n.s=0):n=new fT(0,0,0);let f=i-s*this._stepSizeDays,d=this._work,p=this._denominators,g=this._coef,m=this._xTable,x,b;for(x=0;x<=r;++x)d[x]=f-m[x];for(x=0;x<=r;++x){for(g[x]=1,b=0;b<=r;++b)b!==x&&(g[x]*=d[b]);g[x]*=p[x];let T=(s+x)*3;n.x+=g[x]*u[T++],n.y+=g[x]*u[T++],n.s+=g[x]*u[T]}return n};function p5(e,t){if(e._chunkDownloadsInProgress[t])return e._chunkDownloadsInProgress[t];let n,i=e._xysFileUrlTemplate;l(i)?n=i.getDerivedResource({templateValues:{0:t}}):n=new De({url:nn(`Assets/IAU2006_XYS/IAU2006_XYS_${t}.json`)});let o=n.fetchJson().then(function(r){e._chunkDownloadsInProgress[t]=!1;let s=e._samples,a=r.samples,c=t*e._samplesPerXysFile*3;for(let u=0,f=a.length;u<f;++u)s[c+u]=a[u]});return e._chunkDownloadsInProgress[t]=o,o}var D1=_5;function ot(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.z=y(n,0),this.w=y(i,0)}var US=new h;ot.fromAxisAngle=function(e,t,n){let i=t/2,o=Math.sin(i);US=h.normalize(e,US);let r=US.x*o,s=US.y*o,a=US.z*o,c=Math.cos(i);return l(n)?(n.x=r,n.y=s,n.z=a,n.w=c,n):new ot(r,s,a,c)};var GSe=[1,2,0],WSe=new Array(3);ot.fromRotationMatrix=function(e,t){let n,i,o,r,s,a=e[$.COLUMN0ROW0],c=e[$.COLUMN1ROW1],u=e[$.COLUMN2ROW2],f=a+c+u;if(f>0)n=Math.sqrt(f+1),s=.5*n,n=.5/n,i=(e[$.COLUMN1ROW2]-e[$.COLUMN2ROW1])*n,o=(e[$.COLUMN2ROW0]-e[$.COLUMN0ROW2])*n,r=(e[$.COLUMN0ROW1]-e[$.COLUMN1ROW0])*n;else{let d=GSe,p=0;c>a&&(p=1),u>a&&u>c&&(p=2);let g=d[p],m=d[g];n=Math.sqrt(e[$.getElementIndex(p,p)]-e[$.getElementIndex(g,g)]-e[$.getElementIndex(m,m)]+1);let x=WSe;x[p]=.5*n,n=.5/n,s=(e[$.getElementIndex(m,g)]-e[$.getElementIndex(g,m)])*n,x[g]=(e[$.getElementIndex(g,p)]+e[$.getElementIndex(p,g)])*n,x[m]=(e[$.getElementIndex(m,p)]+e[$.getElementIndex(p,m)])*n,i=-x[0],o=-x[1],r=-x[2]}return l(t)?(t.x=i,t.y=o,t.z=r,t.w=s,t):new ot(i,o,r,s)};var iQ=new ot,oQ=new ot,g5=new ot,rQ=new ot;ot.fromHeadingPitchRoll=function(e,t){return rQ=ot.fromAxisAngle(h.UNIT_X,e.roll,iQ),g5=ot.fromAxisAngle(h.UNIT_Y,-e.pitch,t),t=ot.multiply(g5,rQ,g5),oQ=ot.fromAxisAngle(h.UNIT_Z,-e.heading,iQ),ot.multiply(oQ,t,t)};var I1=new h,y5=new h,Qf=new ot,sQ=new ot,P1=new ot;ot.packedLength=4;ot.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.z,t[n]=e.w,t};ot.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new ot),n.x=e[t],n.y=e[t+1],n.z=e[t+2],n.w=e[t+3],n};ot.packedInterpolationLength=3;ot.convertPackedArrayForInterpolation=function(e,t,n,i){ot.unpack(e,n*4,P1),ot.conjugate(P1,P1);for(let o=0,r=n-t+1;o<r;o++){let s=o*3;ot.unpack(e,(t+o)*4,Qf),ot.multiply(Qf,P1,Qf),Qf.w<0&&ot.negate(Qf,Qf),ot.computeAxis(Qf,I1);let a=ot.computeAngle(Qf);l(i)||(i=[]),i[s]=I1.x*a,i[s+1]=I1.y*a,i[s+2]=I1.z*a}};ot.unpackInterpolationResult=function(e,t,n,i,o){l(o)||(o=new ot),h.fromArray(e,0,y5);let r=h.magnitude(y5);return ot.unpack(t,i*4,sQ),r===0?ot.clone(ot.IDENTITY,Qf):ot.fromAxisAngle(y5,r,Qf),ot.multiply(Qf,sQ,o)};ot.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.z=e.z,t.w=e.w,t):new ot(e.x,e.y,e.z,e.w)};ot.conjugate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=e.w,t};ot.magnitudeSquared=function(e){return e.x*e.x+e.y*e.y+e.z*e.z+e.w*e.w};ot.magnitude=function(e){return Math.sqrt(ot.magnitudeSquared(e))};ot.normalize=function(e,t){let n=1/ot.magnitude(e),i=e.x*n,o=e.y*n,r=e.z*n,s=e.w*n;return t.x=i,t.y=o,t.z=r,t.w=s,t};ot.inverse=function(e,t){let n=ot.magnitudeSquared(e);return t=ot.conjugate(e,t),ot.multiplyByScalar(t,1/n,t)};ot.add=function(e,t,n){return n.x=e.x+t.x,n.y=e.y+t.y,n.z=e.z+t.z,n.w=e.w+t.w,n};ot.subtract=function(e,t,n){return n.x=e.x-t.x,n.y=e.y-t.y,n.z=e.z-t.z,n.w=e.w-t.w,n};ot.negate=function(e,t){return t.x=-e.x,t.y=-e.y,t.z=-e.z,t.w=-e.w,t};ot.dot=function(e,t){return e.x*t.x+e.y*t.y+e.z*t.z+e.w*t.w};ot.multiply=function(e,t,n){let i=e.x,o=e.y,r=e.z,s=e.w,a=t.x,c=t.y,u=t.z,f=t.w,d=s*a+i*f+o*u-r*c,p=s*c-i*u+o*f+r*a,g=s*u+i*c-o*a+r*f,m=s*f-i*a-o*c-r*u;return n.x=d,n.y=p,n.z=g,n.w=m,n};ot.multiplyByScalar=function(e,t,n){return n.x=e.x*t,n.y=e.y*t,n.z=e.z*t,n.w=e.w*t,n};ot.divideByScalar=function(e,t,n){return n.x=e.x/t,n.y=e.y/t,n.z=e.z/t,n.w=e.w/t,n};ot.computeAxis=function(e,t){let n=e.w;if(Math.abs(n-1)<P.EPSILON6||Math.abs(n+1)<P.EPSILON6)return t.x=1,t.y=t.z=0,t;let i=1/Math.sqrt(1-n*n);return t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t};ot.computeAngle=function(e){return Math.abs(e.w-1)<P.EPSILON6?0:2*Math.acos(e.w)};var x5=new ot;ot.lerp=function(e,t,n,i){return x5=ot.multiplyByScalar(t,n,x5),i=ot.multiplyByScalar(e,1-n,i),ot.add(x5,i,i)};var aQ=new ot,b5=new ot,T5=new ot;ot.slerp=function(e,t,n,i){let o=ot.dot(e,t),r=t;if(o<0&&(o=-o,r=aQ=ot.negate(t,aQ)),1-o<P.EPSILON6)return ot.lerp(e,r,n,i);let s=Math.acos(o);return b5=ot.multiplyByScalar(e,Math.sin((1-n)*s),b5),T5=ot.multiplyByScalar(r,Math.sin(n*s),T5),i=ot.add(b5,T5,i),ot.multiplyByScalar(i,1/Math.sin(s),i)};ot.log=function(e,t){let n=P.acosClamped(e.w),i=0;return n!==0&&(i=n/Math.sin(n)),h.multiplyByScalar(e,i,t)};ot.exp=function(e,t){let n=h.magnitude(e),i=0;return n!==0&&(i=Math.sin(n)/n),t.x=e.x*i,t.y=e.y*i,t.z=e.z*i,t.w=Math.cos(n),t};var jSe=new h,qSe=new h,zS=new ot,dT=new ot;ot.computeInnerQuadrangle=function(e,t,n,i){let o=ot.conjugate(t,zS);ot.multiply(o,n,dT);let r=ot.log(dT,jSe);ot.multiply(o,e,dT);let s=ot.log(dT,qSe);return h.add(r,s,r),h.multiplyByScalar(r,.25,r),h.negate(r,r),ot.exp(r,zS),ot.multiply(t,zS,i)};ot.squad=function(e,t,n,i,o,r){let s=ot.slerp(e,t,o,zS),a=ot.slerp(n,i,o,dT);return ot.slerp(s,a,2*o*(1-o),r)};var YSe=new ot,cQ=1.9011074535173003,R1=jt.supportsTypedArrays()?new Float32Array(8):[],O1=jt.supportsTypedArrays()?new Float32Array(8):[],Km=jt.supportsTypedArrays()?new Float32Array(8):[],Zm=jt.supportsTypedArrays()?new Float32Array(8):[];for(let e=0;e<7;++e){let t=e+1,n=2*t+1;R1[e]=1/(t*n),O1[e]=t/n}R1[7]=cQ/(8*17);O1[7]=cQ*8/17;ot.fastSlerp=function(e,t,n,i){let o=ot.dot(e,t),r;o>=0?r=1:(r=-1,o=-o);let s=o-1,a=1-n,c=n*n,u=a*a;for(let g=7;g>=0;--g)Km[g]=(R1[g]*c-O1[g])*s,Zm[g]=(R1[g]*u-O1[g])*s;let f=r*n*(1+Km[0]*(1+Km[1]*(1+Km[2]*(1+Km[3]*(1+Km[4]*(1+Km[5]*(1+Km[6]*(1+Km[7])))))))),d=a*(1+Zm[0]*(1+Zm[1]*(1+Zm[2]*(1+Zm[3]*(1+Zm[4]*(1+Zm[5]*(1+Zm[6]*(1+Zm[7])))))))),p=ot.multiplyByScalar(e,d,YSe);return ot.multiplyByScalar(t,f,i),ot.add(p,i,i)};ot.fastSquad=function(e,t,n,i,o,r){let s=ot.fastSlerp(e,t,o,zS),a=ot.fastSlerp(n,i,o,dT);return ot.fastSlerp(s,a,2*o*(1-o),r)};ot.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.z===t.z&&e.w===t.w};ot.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.x-t.x)<=n&&Math.abs(e.y-t.y)<=n&&Math.abs(e.z-t.z)<=n&&Math.abs(e.w-t.w)<=n};ot.ZERO=Object.freeze(new ot(0,0,0,0));ot.IDENTITY=Object.freeze(new ot(0,0,0,1));ot.prototype.clone=function(e){return ot.clone(this,e)};ot.prototype.equals=function(e){return ot.equals(this,e)};ot.prototype.equalsEpsilon=function(e,t){return ot.equalsEpsilon(this,e,t)};ot.prototype.toString=function(){return`(${this.x}, ${this.y}, ${this.z}, ${this.w})`};var Me=ot;var ci={},A5={up:{south:"east",north:"west",west:"south",east:"north"},down:{south:"west",north:"east",west:"north",east:"south"},south:{up:"west",down:"east",west:"down",east:"up"},north:{up:"east",down:"west",west:"up",east:"down"},west:{up:"north",down:"south",north:"down",south:"up"},east:{up:"south",down:"north",north:"up",south:"down"}},hT={north:[-1,0,0],east:[0,1,0],up:[0,0,1],south:[1,0,0],west:[0,-1,0],down:[0,0,-1]},C5={},rl={east:new h,north:new h,up:new h,west:new h,south:new h,down:new h},R_=new h,O_=new h,M_=new h;ci.localFrameToFixedFrameGenerator=function(e,t){if(!A5.hasOwnProperty(e)||!A5[e].hasOwnProperty(t))throw new he("firstAxis and secondAxis must be east, north, up, west, south or down.");let n=A5[e][t],i,o=e+t;return l(C5[o])?i=C5[o]:(i=function(r,s,a){if(l(a)||(a=new F),h.equalsEpsilon(r,h.ZERO,P.EPSILON14))h.unpack(hT[e],0,R_),h.unpack(hT[t],0,O_),h.unpack(hT[n],0,M_);else if(P.equalsEpsilon(r.x,0,P.EPSILON14)&&P.equalsEpsilon(r.y,0,P.EPSILON14)){let c=P.sign(r.z);h.unpack(hT[e],0,R_),e!=="east"&&e!=="west"&&h.multiplyByScalar(R_,c,R_),h.unpack(hT[t],0,O_),t!=="east"&&t!=="west"&&h.multiplyByScalar(O_,c,O_),h.unpack(hT[n],0,M_),n!=="east"&&n!=="west"&&h.multiplyByScalar(M_,c,M_)}else{s=y(s,ee.default),s.geodeticSurfaceNormal(r,rl.up);let c=rl.up,u=rl.east;u.x=-r.y,u.y=r.x,u.z=0,h.normalize(u,rl.east),h.cross(c,u,rl.north),h.multiplyByScalar(rl.up,-1,rl.down),h.multiplyByScalar(rl.east,-1,rl.west),h.multiplyByScalar(rl.north,-1,rl.south),R_=rl[e],O_=rl[t],M_=rl[n]}return a[0]=R_.x,a[1]=R_.y,a[2]=R_.z,a[3]=0,a[4]=O_.x,a[5]=O_.y,a[6]=O_.z,a[7]=0,a[8]=M_.x,a[9]=M_.y,a[10]=M_.z,a[11]=0,a[12]=r.x,a[13]=r.y,a[14]=r.z,a[15]=1,a},C5[o]=i),i};ci.eastNorthUpToFixedFrame=ci.localFrameToFixedFrameGenerator("east","north");ci.northEastDownToFixedFrame=ci.localFrameToFixedFrameGenerator("north","east");ci.northUpEastToFixedFrame=ci.localFrameToFixedFrameGenerator("north","up");ci.northWestUpToFixedFrame=ci.localFrameToFixedFrameGenerator("north","west");var XSe=new Me,KSe=new h(1,1,1),ZSe=new F;ci.headingPitchRollToFixedFrame=function(e,t,n,i,o){i=y(i,ci.eastNorthUpToFixedFrame);let r=Me.fromHeadingPitchRoll(t,XSe),s=F.fromTranslationQuaternionRotationScale(h.ZERO,r,KSe,ZSe);return o=i(e,n,o),F.multiply(o,s,o)};var $Se=new F,QSe=new $;ci.headingPitchRollQuaternion=function(e,t,n,i,o){let r=ci.headingPitchRollToFixedFrame(e,t,n,i,$Se),s=F.getMatrix3(r,QSe);return Me.fromRotationMatrix(s,o)};var JSe=new h(1,1,1),eve=new h,lQ=new F,tve=new F,nve=new $,ive=new Me;ci.fixedFrameToHeadingPitchRoll=function(e,t,n,i){t=y(t,ee.default),n=y(n,ci.eastNorthUpToFixedFrame),l(i)||(i=new Ua);let o=F.getTranslation(e,eve);if(h.equals(o,h.ZERO))return i.heading=0,i.pitch=0,i.roll=0,i;let r=F.inverseTransformation(n(o,t,lQ),lQ),s=F.setScale(e,JSe,tve);s=F.setTranslation(s,h.ZERO,s),r=F.multiply(r,s,r);let a=Me.fromRotationMatrix(F.getMatrix3(r,nve),ive);return a=Me.normalize(a,a),Ua.fromQuaternion(a,i)};var ove=6*3600+41*60+50.54841,rve=8640184812866e-6,sve=.093104,ave=-62e-7,cve=11772758384668e-32,lve=72921158553e-15,uve=P.TWO_PI/86400,M1=new K;ci.computeIcrfToCentralBodyFixedMatrix=function(e,t){let n=ci.computeIcrfToFixedMatrix(e,t);return l(n)||(n=ci.computeTemeToPseudoFixedMatrix(e,t)),n};ci.computeTemeToPseudoFixedMatrix=function(e,t){M1=K.addSeconds(e,-K.computeTaiMinusUtc(e),M1);let n=M1.dayNumber,i=M1.secondsOfDay,o,r=n-2451545;i>=43200?o=(r+.5)/jn.DAYS_PER_JULIAN_CENTURY:o=(r-.5)/jn.DAYS_PER_JULIAN_CENTURY;let a=(ove+o*(rve+o*(sve+o*ave)))*uve%P.TWO_PI,c=lve+cve*(n-24515455e-1),u=(i+jn.SECONDS_PER_DAY*.5)%jn.SECONDS_PER_DAY,f=a+c*u,d=Math.cos(f),p=Math.sin(f);return l(t)?(t[0]=d,t[1]=-p,t[2]=0,t[3]=p,t[4]=d,t[5]=0,t[6]=0,t[7]=0,t[8]=1,t):new $(d,p,0,-p,d,0,0,0,1)};ci.iau2006XysData=new D1;ci.earthOrientationParameters=S1.NONE;var v5=32.184,fve=2451545;ci.preloadIcrfFixed=function(e){let t=e.start.dayNumber,n=e.start.secondsOfDay+v5,i=e.stop.dayNumber,o=e.stop.secondsOfDay+v5;return ci.iau2006XysData.preload(t,n,i,o)};ci.computeIcrfToFixedMatrix=function(e,t){l(t)||(t=new $);let n=ci.computeFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var dve=32.184,hve=2451545,L1=new Ua,mve=new $,pve=new K;ci.computeMoonFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=K.addSeconds(e,dve,pve),i=K.totalDays(n)-hve,o=P.toRadians(12.112)-P.toRadians(.052992)*i,r=P.toRadians(24.224)-P.toRadians(.105984)*i,s=P.toRadians(227.645)+P.toRadians(13.012)*i,a=P.toRadians(261.105)+P.toRadians(13.340716)*i,c=P.toRadians(358)+P.toRadians(.9856)*i;return L1.pitch=P.toRadians(180)-P.toRadians(3.878)*Math.sin(o)-P.toRadians(.12)*Math.sin(r)+P.toRadians(.07)*Math.sin(s)-P.toRadians(.017)*Math.sin(a),L1.roll=P.toRadians(66.53-90)+P.toRadians(1.543)*Math.cos(o)+P.toRadians(.24)*Math.cos(r)-P.toRadians(.028)*Math.cos(s)+P.toRadians(.007)*Math.cos(a),L1.heading=P.toRadians(244.375-90)+P.toRadians(13.17635831)*i+P.toRadians(3.558)*Math.sin(o)+P.toRadians(.121)*Math.sin(r)-P.toRadians(.064)*Math.sin(s)+P.toRadians(.016)*Math.sin(a)+P.toRadians(.025)*Math.sin(c),$.fromHeadingPitchRoll(L1,mve)};ci.computeIcrfToMoonFixedMatrix=function(e,t){l(t)||(t=new $);let n=ci.computeMoonFixedToIcrfMatrix(e,t);if(l(n))return $.transpose(n,t)};var _ve=new fT(0,0,0),gve=new g0(0,0,0,0,0,0),E5=new $,S5=new $;ci.computeFixedToIcrfMatrix=function(e,t){l(t)||(t=new $);let n=ci.earthOrientationParameters.compute(e,gve);if(!l(n))return;let i=e.dayNumber,o=e.secondsOfDay+v5,r=ci.iau2006XysData.computeXysRadians(i,o,_ve);if(!l(r))return;let s=r.x+n.xPoleOffset,a=r.y+n.yPoleOffset,c=1/(1+Math.sqrt(1-s*s-a*a)),u=E5;u[0]=1-c*s*s,u[3]=-c*s*a,u[6]=s,u[1]=-c*s*a,u[4]=1-c*a*a,u[7]=a,u[2]=-s,u[5]=-a,u[8]=1-c*(s*s+a*a);let f=$.fromRotationZ(-r.s,S5),d=$.multiply(u,f,E5),p=e.dayNumber,g=e.secondsOfDay-K.computeTaiMinusUtc(e)+n.ut1MinusUtc,m=p-2451545,x=g/jn.SECONDS_PER_DAY,b=.779057273264+x+.00273781191135448*(m+x);b=b%1*P.TWO_PI;let T=$.fromRotationZ(b,S5),A=$.multiply(d,T,E5),C=Math.cos(n.xPoleWander),S=Math.cos(n.yPoleWander),v=Math.sin(n.xPoleWander),D=Math.sin(n.yPoleWander),O=i-fve+o/jn.SECONDS_PER_DAY;O/=36525;let R=-47e-6*O*P.RADIANS_PER_DEGREE/3600,M=Math.cos(R),L=Math.sin(R),_=S5;return _[0]=C*M,_[1]=C*L,_[2]=v,_[3]=-S*L+D*v*M,_[4]=S*M+D*v*L,_[5]=-D*C,_[6]=-D*L-S*v*M,_[7]=D*M-S*v*L,_[8]=S*C,$.multiply(A,_,t)};var yve=new oe;ci.pointToWindowCoordinates=function(e,t,n,i){return i=ci.pointToGLWindowCoordinates(e,t,n,i),i.y=2*t[5]-i.y,i};ci.pointToGLWindowCoordinates=function(e,t,n,i){l(i)||(i=new U);let o=yve;return F.multiplyByVector(e,oe.fromElements(n.x,n.y,n.z,1,o),o),oe.multiplyByScalar(o,1/o.w,o),F.multiplyByVector(t,o,o),U.fromCartesian4(o,i)};var xve=new h,bve=new h,Tve=new h;ci.rotationMatrixFromPositionVelocity=function(e,t,n,i){let o=y(n,ee.default).geodeticSurfaceNormal(e,xve),r=h.cross(t,o,bve);h.equalsEpsilon(r,h.ZERO,P.EPSILON6)&&(r=h.clone(h.UNIT_X,r));let s=h.cross(r,t,Tve);return h.normalize(s,s),h.cross(t,s,r),h.negate(r,r),h.normalize(r,r),l(i)||(i=new $),i[0]=t.x,i[1]=t.y,i[2]=t.z,i[3]=r.x,i[4]=r.y,i[5]=r.z,i[6]=s.x,i[7]=s.y,i[8]=s.z,i};var uQ=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1),fQ=new fe,w5=new h,Ave=new h,Cve=new $,D5=new F,dQ=new F;ci.basisTo2D=function(e,t,n){let i=F.getTranslation(t,Ave),o=e.ellipsoid,r;if(h.equals(i,h.ZERO))r=h.clone(h.ZERO,w5);else{let f=o.cartesianToCartographic(i,fQ);r=e.project(f,w5),h.fromElements(r.z,r.x,r.y,r)}let s=ci.eastNorthUpToFixedFrame(i,o,D5),a=F.inverseTransformation(s,dQ),c=F.getMatrix3(t,Cve),u=F.multiplyByMatrix3(a,c,n);return F.multiply(uQ,u,n),F.setTranslation(n,r,n),n};ci.ellipsoidTo2DModelMatrix=function(e,t,n){let i=e.ellipsoid,o=ci.eastNorthUpToFixedFrame(t,i,D5),r=F.inverseTransformation(o,dQ),s=i.cartesianToCartographic(t,fQ),a=e.project(s,w5);h.fromElements(a.z,a.x,a.y,a);let c=F.fromTranslation(a,D5);return F.multiply(uQ,r,n),F.multiply(c,n,n),n};var Nt=ci;var hQ={};function HS(e,t){l(hQ[e])||(hQ[e]=!0,console.warn(y(t,e)))}HS.geometryOutlines="Entity geometry outlines are unsupported on terrain. Outlines will be disabled. To enable outlines, disable geometry terrain clamping by explicitly setting height to 0.";HS.geometryZIndex="Entity geometry with zIndex are unsupported when height or extrudedHeight are defined. zIndex will be ignored";HS.geometryHeightReference="Entity corridor, ellipse, polygon or rectangle with heightReference must also have a defined height. heightReference will be ignored";HS.geometryExtrudedHeightReference="Entity corridor, ellipse, polygon or rectangle with extrudedHeightReference must also have a defined extrudedHeight. extrudedHeightReference will be ignored";var At=HS;function Eve(e,t){At(e,t)}var _s=Eve;function An(e,t,n,i){this.west=y(e,0),this.south=y(t,0),this.east=y(n,0),this.north=y(i,0)}Object.defineProperties(An.prototype,{width:{get:function(){return An.computeWidth(this)}},height:{get:function(){return An.computeHeight(this)}}});An.packedLength=4;An.pack=function(e,t,n){return n=y(n,0),t[n++]=e.west,t[n++]=e.south,t[n++]=e.east,t[n]=e.north,t};An.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new An),n.west=e[t++],n.south=e[t++],n.east=e[t++],n.north=e[t],n};An.computeWidth=function(e){let t=e.east,n=e.west;return t<n&&(t+=P.TWO_PI),t-n};An.computeHeight=function(e){return e.north-e.south};An.fromDegrees=function(e,t,n,i,o){return e=P.toRadians(y(e,0)),t=P.toRadians(y(t,0)),n=P.toRadians(y(n,0)),i=P.toRadians(y(i,0)),l(o)?(o.west=e,o.south=t,o.east=n,o.north=i,o):new An(e,t,n,i)};An.fromRadians=function(e,t,n,i,o){return l(o)?(o.west=y(e,0),o.south=y(t,0),o.east=y(n,0),o.north=y(i,0),o):new An(e,t,n,i)};An.fromCartographicArray=function(e,t){let n=Number.MAX_VALUE,i=-Number.MAX_VALUE,o=Number.MAX_VALUE,r=-Number.MAX_VALUE,s=Number.MAX_VALUE,a=-Number.MAX_VALUE;for(let c=0,u=e.length;c<u;c++){let f=e[c];n=Math.min(n,f.longitude),i=Math.max(i,f.longitude),s=Math.min(s,f.latitude),a=Math.max(a,f.latitude);let d=f.longitude>=0?f.longitude:f.longitude+P.TWO_PI;o=Math.min(o,d),r=Math.max(r,d)}return i-n>r-o&&(n=o,i=r,i>P.PI&&(i=i-P.TWO_PI),n>P.PI&&(n=n-P.TWO_PI)),l(t)?(t.west=n,t.south=s,t.east=i,t.north=a,t):new An(n,s,i,a)};An.fromCartesianArray=function(e,t,n){t=y(t,ee.default);let i=Number.MAX_VALUE,o=-Number.MAX_VALUE,r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=Number.MAX_VALUE,c=-Number.MAX_VALUE;for(let u=0,f=e.length;u<f;u++){let d=t.cartesianToCartographic(e[u]);i=Math.min(i,d.longitude),o=Math.max(o,d.longitude),a=Math.min(a,d.latitude),c=Math.max(c,d.latitude);let p=d.longitude>=0?d.longitude:d.longitude+P.TWO_PI;r=Math.min(r,p),s=Math.max(s,p)}return o-i>s-r&&(i=r,o=s,o>P.PI&&(o=o-P.TWO_PI),i>P.PI&&(i=i-P.TWO_PI)),l(n)?(n.west=i,n.south=a,n.east=o,n.north=c,n):new An(i,a,o,c)};var Sve=new h,vve=new h,wve=new h,Dve=new h,Ive=new h,I5=new Array(5);for(let e=0;e<I5.length;++e)I5[e]=new h;An.fromBoundingSphere=function(e,t,n){let i=e.center,o=e.radius;if(l(t)||(t=ee.default),l(n)||(n=new An),h.equals(i,h.ZERO))return An.clone(An.MAX_VALUE,n),n;let r=Nt.eastNorthUpToFixedFrame(i,t,Sve),s=F.multiplyByPointAsVector(r,h.UNIT_X,vve);h.normalize(s,s);let a=F.multiplyByPointAsVector(r,h.UNIT_Y,wve);h.normalize(a,a),h.multiplyByScalar(a,o,a),h.multiplyByScalar(s,o,s);let c=h.negate(a,Ive),u=h.negate(s,Dve),f=I5,d=f[0];return h.add(i,a,d),d=f[1],h.add(i,u,d),d=f[2],h.add(i,c,d),d=f[3],h.add(i,s,d),f[4]=i,An.fromCartesianArray(f,t,n)};An.clone=function(e,t){if(l(e))return l(t)?(t.west=e.west,t.south=e.south,t.east=e.east,t.north=e.north,t):new An(e.west,e.south,e.east,e.north)};An.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.west-t.west)<=n&&Math.abs(e.south-t.south)<=n&&Math.abs(e.east-t.east)<=n&&Math.abs(e.north-t.north)<=n};An.prototype.clone=function(e){return An.clone(this,e)};An.prototype.equals=function(e){return An.equals(this,e)};An.equals=function(e,t){return e===t||l(e)&&l(t)&&e.west===t.west&&e.south===t.south&&e.east===t.east&&e.north===t.north};An.prototype.equalsEpsilon=function(e,t){return An.equalsEpsilon(this,e,t)};An.validate=function(e){return _s("Rectangle.validate","Rectangle.validate is a no-op and has been deprecated. It will be removed in Cesium 1.124."),An._validate(e)};An._validate=function(e){};An.southwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.south,t.height=0,t):new fe(e.west,e.south)};An.northwest=function(e,t){return l(t)?(t.longitude=e.west,t.latitude=e.north,t.height=0,t):new fe(e.west,e.north)};An.northeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.north,t.height=0,t):new fe(e.east,e.north)};An.southeast=function(e,t){return l(t)?(t.longitude=e.east,t.latitude=e.south,t.height=0,t):new fe(e.east,e.south)};An.center=function(e,t){let n=e.east,i=e.west;n<i&&(n+=P.TWO_PI);let o=P.negativePiToPi((i+n)*.5),r=(e.south+e.north)*.5;return l(t)?(t.longitude=o,t.latitude=r,t.height=0,t):new fe(o,r)};An.intersection=function(e,t,n){let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.max(o,s)),c=P.negativePiToPi(Math.min(i,r));if((e.west<e.east||t.west<t.east)&&c<=a)return;let u=Math.max(e.south,t.south),f=Math.min(e.north,t.north);if(!(u>=f))return l(n)?(n.west=a,n.south=u,n.east=c,n.north=f,n):new An(a,u,c,f)};An.simpleIntersection=function(e,t,n){let i=Math.max(e.west,t.west),o=Math.max(e.south,t.south),r=Math.min(e.east,t.east),s=Math.min(e.north,t.north);if(!(o>=s||i>=r))return l(n)?(n.west=i,n.south=o,n.east=r,n.north=s,n):new An(i,o,r,s)};An.union=function(e,t,n){l(n)||(n=new An);let i=e.east,o=e.west,r=t.east,s=t.west;i<o&&r>0?i+=P.TWO_PI:r<s&&i>0&&(r+=P.TWO_PI),i<o&&s<0?s+=P.TWO_PI:r<s&&o<0&&(o+=P.TWO_PI);let a=P.negativePiToPi(Math.min(o,s)),c=P.negativePiToPi(Math.max(i,r));return n.west=a,n.south=Math.min(e.south,t.south),n.east=c,n.north=Math.max(e.north,t.north),n};An.expand=function(e,t,n){return l(n)||(n=new An),n.west=Math.min(e.west,t.longitude),n.south=Math.min(e.south,t.latitude),n.east=Math.max(e.east,t.longitude),n.north=Math.max(e.north,t.latitude),n};An.contains=function(e,t){let n=t.longitude,i=t.latitude,o=e.west,r=e.east;return r<o&&(r+=P.TWO_PI,n<0&&(n+=P.TWO_PI)),(n>o||P.equalsEpsilon(n,o,P.EPSILON14))&&(n<r||P.equalsEpsilon(n,r,P.EPSILON14))&&i>=e.south&&i<=e.north};var Pve=new fe;An.subsample=function(e,t,n,i){t=y(t,ee.default),n=y(n,0),l(i)||(i=[]);let o=0,r=e.north,s=e.south,a=e.east,c=e.west,u=Pve;u.height=n,u.longitude=c,u.latitude=r,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.latitude=s,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,r<0?u.latitude=r:s>0?u.latitude=s:u.latitude=0;for(let f=1;f<8;++f)u.longitude=-Math.PI+f*P.PI_OVER_TWO,An.contains(e,u)&&(i[o]=t.cartographicToCartesian(u,i[o]),o++);return u.latitude===0&&(u.longitude=c,i[o]=t.cartographicToCartesian(u,i[o]),o++,u.longitude=a,i[o]=t.cartographicToCartesian(u,i[o]),o++),i.length=o,i};An.subsection=function(e,t,n,i,o,r){if(l(r)||(r=new An),e.west<=e.east){let a=e.east-e.west;r.west=e.west+t*a,r.east=e.west+i*a}else{let a=P.TWO_PI+e.east-e.west;r.west=P.negativePiToPi(e.west+t*a),r.east=P.negativePiToPi(e.west+i*a)}let s=e.north-e.south;return r.south=e.south+n*s,r.north=e.south+o*s,t===1&&(r.west=e.east),i===1&&(r.east=e.east),n===1&&(r.south=e.north),o===1&&(r.north=e.north),r};An.MAX_VALUE=Object.freeze(new An(-Math.PI,-P.PI_OVER_TWO,Math.PI,P.PI_OVER_TWO));var re=An;function wr(e,t,n,i){this.x=y(e,0),this.y=y(t,0),this.width=y(n,0),this.height=y(i,0)}wr.packedLength=4;wr.pack=function(e,t,n){return n=y(n,0),t[n++]=e.x,t[n++]=e.y,t[n++]=e.width,t[n]=e.height,t};wr.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new wr),n.x=e[t++],n.y=e[t++],n.width=e[t++],n.height=e[t],n};wr.fromPoints=function(e,t){if(l(t)||(t=new wr),!l(e)||e.length===0)return t.x=0,t.y=0,t.width=0,t.height=0,t;let n=e.length,i=e[0].x,o=e[0].y,r=e[0].x,s=e[0].y;for(let a=1;a<n;a++){let c=e[a],u=c.x,f=c.y;i=Math.min(u,i),r=Math.max(u,r),o=Math.min(f,o),s=Math.max(f,s)}return t.x=i,t.y=o,t.width=r-i,t.height=s-o,t};var mQ=new wi,Rve=new fe,Ove=new fe;wr.fromRectangle=function(e,t,n){if(l(n)||(n=new wr),!l(e))return n.x=0,n.y=0,n.width=0,n.height=0,n;mQ._ellipsoid=ee.default,t=y(t,mQ);let i=t.project(re.southwest(e,Rve)),o=t.project(re.northeast(e,Ove));return U.subtract(o,i,o),n.x=i.x,n.y=i.y,n.width=o.x,n.height=o.y,n};wr.clone=function(e,t){if(l(e))return l(t)?(t.x=e.x,t.y=e.y,t.width=e.width,t.height=e.height,t):new wr(e.x,e.y,e.width,e.height)};wr.union=function(e,t,n){l(n)||(n=new wr);let i=Math.min(e.x,t.x),o=Math.min(e.y,t.y),r=Math.max(e.x+e.width,t.x+t.width),s=Math.max(e.y+e.height,t.y+t.height);return n.x=i,n.y=o,n.width=r-i,n.height=s-o,n};wr.expand=function(e,t,n){n=wr.clone(e,n);let i=t.x-n.x,o=t.y-n.y;return i>n.width?n.width=i:i<0&&(n.width-=i,n.x=t.x),o>n.height?n.height=o:o<0&&(n.height-=o,n.y=t.y),n};wr.intersect=function(e,t){let n=e.x,i=e.y,o=t.x,r=t.y;return n>o+t.width||n+e.width<o||i+e.height<r||i>r+t.height?Yt.OUTSIDE:Yt.INTERSECTING};wr.equals=function(e,t){return e===t||l(e)&&l(t)&&e.x===t.x&&e.y===t.y&&e.width===t.width&&e.height===t.height};wr.prototype.clone=function(e){return wr.clone(this,e)};wr.prototype.intersect=function(e){return wr.intersect(this,e)};wr.prototype.equals=function(e){return wr.equals(this,e)};var qe=wr;var ga={POINTS:te.POINTS,LINES:te.LINES,LINE_LOOP:te.LINE_LOOP,LINE_STRIP:te.LINE_STRIP,TRIANGLES:te.TRIANGLES,TRIANGLE_STRIP:te.TRIANGLE_STRIP,TRIANGLE_FAN:te.TRIANGLE_FAN};ga.isLines=function(e){return e===ga.LINES||e===ga.LINE_LOOP||e===ga.LINE_STRIP};ga.isTriangles=function(e){return e===ga.TRIANGLES||e===ga.TRIANGLE_STRIP||e===ga.TRIANGLE_FAN};ga.validate=function(e){return e===ga.POINTS||e===ga.LINES||e===ga.LINE_LOOP||e===ga.LINE_STRIP||e===ga.TRIANGLES||e===ga.TRIANGLE_STRIP||e===ga.TRIANGLE_FAN};var Le=Object.freeze(ga);var mT=`in vec4 position; +in vec2 textureCoordinates; + +out vec2 v_textureCoordinates; + +void main() +{ + gl_Position = position; + v_textureCoordinates = textureCoordinates; +} +`;var lr={CULL:1,OCCLUDE:2,EXECUTE_IN_CLOSEST_FRUSTUM:4,DEBUG_SHOW_BOUNDING_VOLUME:8,CAST_SHADOWS:16,RECEIVE_SHADOWS:32,PICK_ONLY:64,DEPTH_FOR_TRANSLUCENT_CLASSIFICATION:128};function GS(e){e=y(e,y.EMPTY_OBJECT),this._boundingVolume=e.boundingVolume,this._orientedBoundingBox=e.orientedBoundingBox,this._modelMatrix=e.modelMatrix,this._primitiveType=y(e.primitiveType,Le.TRIANGLES),this._vertexArray=e.vertexArray,this._count=e.count,this._offset=y(e.offset,0),this._instanceCount=y(e.instanceCount,0),this._shaderProgram=e.shaderProgram,this._uniformMap=e.uniformMap,this._renderState=e.renderState,this._framebuffer=e.framebuffer,this._pass=e.pass,this._owner=e.owner,this._debugOverlappingFrustums=0,this._pickId=e.pickId,this._pickMetadataAllowed=e.pickMetadataAllowed===!0,this._pickedMetadataInfo=void 0,this._flags=0,this.cull=y(e.cull,!0),this.occlude=y(e.occlude,!0),this.executeInClosestFrustum=y(e.executeInClosestFrustum,!1),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.castShadows=y(e.castShadows,!1),this.receiveShadows=y(e.receiveShadows,!1),this.pickOnly=y(e.pickOnly,!1),this.depthForTranslucentClassification=y(e.depthForTranslucentClassification,!1),this.dirty=!0,this.lastDirtyTime=0,this.derivedCommands={}}function za(e,t){return(e._flags&t)===t}function L_(e,t,n){n?e._flags|=t:e._flags&=~t}Object.defineProperties(GS.prototype,{boundingVolume:{get:function(){return this._boundingVolume},set:function(e){this._boundingVolume!==e&&(this._boundingVolume=e,this.dirty=!0)}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox},set:function(e){this._orientedBoundingBox!==e&&(this._orientedBoundingBox=e,this.dirty=!0)}},cull:{get:function(){return za(this,lr.CULL)},set:function(e){za(this,lr.CULL)!==e&&(L_(this,lr.CULL,e),this.dirty=!0)}},occlude:{get:function(){return za(this,lr.OCCLUDE)},set:function(e){za(this,lr.OCCLUDE)!==e&&(L_(this,lr.OCCLUDE,e),this.dirty=!0)}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix!==e&&(this._modelMatrix=e,this.dirty=!0)}},primitiveType:{get:function(){return this._primitiveType},set:function(e){this._primitiveType!==e&&(this._primitiveType=e,this.dirty=!0)}},vertexArray:{get:function(){return this._vertexArray},set:function(e){this._vertexArray!==e&&(this._vertexArray=e,this.dirty=!0)}},count:{get:function(){return this._count},set:function(e){this._count!==e&&(this._count=e,this.dirty=!0)}},offset:{get:function(){return this._offset},set:function(e){this._offset!==e&&(this._offset=e,this.dirty=!0)}},instanceCount:{get:function(){return this._instanceCount},set:function(e){this._instanceCount!==e&&(this._instanceCount=e,this.dirty=!0)}},shaderProgram:{get:function(){return this._shaderProgram},set:function(e){this._shaderProgram!==e&&(this._shaderProgram=e,this.dirty=!0)}},castShadows:{get:function(){return za(this,lr.CAST_SHADOWS)},set:function(e){za(this,lr.CAST_SHADOWS)!==e&&(L_(this,lr.CAST_SHADOWS,e),this.dirty=!0)}},receiveShadows:{get:function(){return za(this,lr.RECEIVE_SHADOWS)},set:function(e){za(this,lr.RECEIVE_SHADOWS)!==e&&(L_(this,lr.RECEIVE_SHADOWS,e),this.dirty=!0)}},uniformMap:{get:function(){return this._uniformMap},set:function(e){this._uniformMap!==e&&(this._uniformMap=e,this.dirty=!0)}},renderState:{get:function(){return this._renderState},set:function(e){this._renderState!==e&&(this._renderState=e,this.dirty=!0)}},framebuffer:{get:function(){return this._framebuffer},set:function(e){this._framebuffer!==e&&(this._framebuffer=e,this.dirty=!0)}},pass:{get:function(){return this._pass},set:function(e){this._pass!==e&&(this._pass=e,this.dirty=!0)}},executeInClosestFrustum:{get:function(){return za(this,lr.EXECUTE_IN_CLOSEST_FRUSTUM)},set:function(e){za(this,lr.EXECUTE_IN_CLOSEST_FRUSTUM)!==e&&(L_(this,lr.EXECUTE_IN_CLOSEST_FRUSTUM,e),this.dirty=!0)}},owner:{get:function(){return this._owner},set:function(e){this._owner!==e&&(this._owner=e,this.dirty=!0)}},debugShowBoundingVolume:{get:function(){return za(this,lr.DEBUG_SHOW_BOUNDING_VOLUME)},set:function(e){za(this,lr.DEBUG_SHOW_BOUNDING_VOLUME)!==e&&(L_(this,lr.DEBUG_SHOW_BOUNDING_VOLUME,e),this.dirty=!0)}},debugOverlappingFrustums:{get:function(){return this._debugOverlappingFrustums},set:function(e){this._debugOverlappingFrustums!==e&&(this._debugOverlappingFrustums=e,this.dirty=!0)}},pickId:{get:function(){return this._pickId},set:function(e){this._pickId!==e&&(this._pickId=e,this.dirty=!0)}},pickMetadataAllowed:{get:function(){return this._pickMetadataAllowed}},pickedMetadataInfo:{get:function(){return this._pickedMetadataInfo},set:function(e){this._pickedMetadataInfo!==e&&(this._pickedMetadataInfo=e,this.dirty=!0)}},pickOnly:{get:function(){return za(this,lr.PICK_ONLY)},set:function(e){za(this,lr.PICK_ONLY)!==e&&(L_(this,lr.PICK_ONLY,e),this.dirty=!0)}},depthForTranslucentClassification:{get:function(){return za(this,lr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)},set:function(e){za(this,lr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION)!==e&&(L_(this,lr.DEPTH_FOR_TRANSLUCENT_CLASSIFICATION,e),this.dirty=!0)}}});GS.shallowClone=function(e,t){if(l(e))return l(t)||(t=new GS),t._boundingVolume=e._boundingVolume,t._orientedBoundingBox=e._orientedBoundingBox,t._modelMatrix=e._modelMatrix,t._primitiveType=e._primitiveType,t._vertexArray=e._vertexArray,t._count=e._count,t._offset=e._offset,t._instanceCount=e._instanceCount,t._shaderProgram=e._shaderProgram,t._uniformMap=e._uniformMap,t._renderState=e._renderState,t._framebuffer=e._framebuffer,t._pass=e._pass,t._owner=e._owner,t._debugOverlappingFrustums=e._debugOverlappingFrustums,t._pickId=e._pickId,t._pickMetadataAllowed=e._pickMetadataAllowed,t._pickedMetadataInfo=e._pickedMetadataInfo,t._flags=e._flags,t.dirty=!0,t.lastDirtyTime=0,t};GS.prototype.execute=function(e,t){e.draw(this,t)};var et=GS;var li={UNSIGNED_BYTE:te.UNSIGNED_BYTE,UNSIGNED_SHORT:te.UNSIGNED_SHORT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,HALF_FLOAT:te.HALF_FLOAT_OES,UNSIGNED_INT_24_8:te.UNSIGNED_INT_24_8,UNSIGNED_SHORT_4_4_4_4:te.UNSIGNED_SHORT_4_4_4_4,UNSIGNED_SHORT_5_5_5_1:te.UNSIGNED_SHORT_5_5_5_1,UNSIGNED_SHORT_5_6_5:te.UNSIGNED_SHORT_5_6_5};li.toWebGLConstant=function(e,t){switch(e){case li.UNSIGNED_BYTE:return te.UNSIGNED_BYTE;case li.UNSIGNED_SHORT:return te.UNSIGNED_SHORT;case li.UNSIGNED_INT:return te.UNSIGNED_INT;case li.FLOAT:return te.FLOAT;case li.HALF_FLOAT:return t.webgl2?te.HALF_FLOAT:te.HALF_FLOAT_OES;case li.UNSIGNED_INT_24_8:return te.UNSIGNED_INT_24_8;case li.UNSIGNED_SHORT_4_4_4_4:return te.UNSIGNED_SHORT_4_4_4_4;case li.UNSIGNED_SHORT_5_5_5_1:return te.UNSIGNED_SHORT_5_5_5_1;case li.UNSIGNED_SHORT_5_6_5:return li.UNSIGNED_SHORT_5_6_5}};li.isPacked=function(e){return e===li.UNSIGNED_INT_24_8||e===li.UNSIGNED_SHORT_4_4_4_4||e===li.UNSIGNED_SHORT_5_5_5_1||e===li.UNSIGNED_SHORT_5_6_5};li.sizeInBytes=function(e){switch(e){case li.UNSIGNED_BYTE:return 1;case li.UNSIGNED_SHORT:case li.UNSIGNED_SHORT_4_4_4_4:case li.UNSIGNED_SHORT_5_5_5_1:case li.UNSIGNED_SHORT_5_6_5:case li.HALF_FLOAT:return 2;case li.UNSIGNED_INT:case li.FLOAT:case li.UNSIGNED_INT_24_8:return 4}};li.validate=function(e){return e===li.UNSIGNED_BYTE||e===li.UNSIGNED_SHORT||e===li.UNSIGNED_INT||e===li.FLOAT||e===li.HALF_FLOAT||e===li.UNSIGNED_INT_24_8||e===li.UNSIGNED_SHORT_4_4_4_4||e===li.UNSIGNED_SHORT_5_5_5_1||e===li.UNSIGNED_SHORT_5_6_5};li.getTypedArrayConstructor=function(e){let t=li.sizeInBytes(e);return t===Uint8Array.BYTES_PER_ELEMENT?Uint8Array:t===Uint16Array.BYTES_PER_ELEMENT?Uint16Array:t===Float32Array.BYTES_PER_ELEMENT&&e===li.FLOAT?Float32Array:Uint32Array};var Ze=Object.freeze(li);var at={DEPTH_COMPONENT:te.DEPTH_COMPONENT,DEPTH_STENCIL:te.DEPTH_STENCIL,ALPHA:te.ALPHA,RED:te.RED,RG:te.RG,RGB:te.RGB,RGBA:te.RGBA,LUMINANCE:te.LUMINANCE,LUMINANCE_ALPHA:te.LUMINANCE_ALPHA,RGB_DXT1:te.COMPRESSED_RGB_S3TC_DXT1_EXT,RGBA_DXT1:te.COMPRESSED_RGBA_S3TC_DXT1_EXT,RGBA_DXT3:te.COMPRESSED_RGBA_S3TC_DXT3_EXT,RGBA_DXT5:te.COMPRESSED_RGBA_S3TC_DXT5_EXT,RGB_PVRTC_4BPPV1:te.COMPRESSED_RGB_PVRTC_4BPPV1_IMG,RGB_PVRTC_2BPPV1:te.COMPRESSED_RGB_PVRTC_2BPPV1_IMG,RGBA_PVRTC_4BPPV1:te.COMPRESSED_RGBA_PVRTC_4BPPV1_IMG,RGBA_PVRTC_2BPPV1:te.COMPRESSED_RGBA_PVRTC_2BPPV1_IMG,RGBA_ASTC:te.COMPRESSED_RGBA_ASTC_4x4_WEBGL,RGB_ETC1:te.COMPRESSED_RGB_ETC1_WEBGL,RGB8_ETC2:te.COMPRESSED_RGB8_ETC2,RGBA8_ETC2_EAC:te.COMPRESSED_RGBA8_ETC2_EAC,RGBA_BC7:te.COMPRESSED_RGBA_BPTC_UNORM};at.componentsLength=function(e){switch(e){case at.RGB:return 3;case at.RGBA:return 4;case at.LUMINANCE_ALPHA:case at.RG:return 2;case at.ALPHA:case at.RED:case at.LUMINANCE:return 1;default:return 1}};at.validate=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL||e===at.ALPHA||e===at.RED||e===at.RG||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA||e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isColorFormat=function(e){return e===at.RED||e===at.ALPHA||e===at.RGB||e===at.RGBA||e===at.LUMINANCE||e===at.LUMINANCE_ALPHA};at.isDepthFormat=function(e){return e===at.DEPTH_COMPONENT||e===at.DEPTH_STENCIL};at.isCompressedFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5||e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1||e===at.RGBA_ASTC||e===at.RGB_ETC1||e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC||e===at.RGBA_BC7};at.isDXTFormat=function(e){return e===at.RGB_DXT1||e===at.RGBA_DXT1||e===at.RGBA_DXT3||e===at.RGBA_DXT5};at.isPVRTCFormat=function(e){return e===at.RGB_PVRTC_4BPPV1||e===at.RGB_PVRTC_2BPPV1||e===at.RGBA_PVRTC_4BPPV1||e===at.RGBA_PVRTC_2BPPV1};at.isASTCFormat=function(e){return e===at.RGBA_ASTC};at.isETC1Format=function(e){return e===at.RGB_ETC1};at.isETC2Format=function(e){return e===at.RGB8_ETC2||e===at.RGBA8_ETC2_EAC};at.isBC7Format=function(e){return e===at.RGBA_BC7};at.compressedTextureSizeInBytes=function(e,t,n){switch(e){case at.RGB_DXT1:case at.RGBA_DXT1:case at.RGB_ETC1:case at.RGB8_ETC2:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*8;case at.RGBA_DXT3:case at.RGBA_DXT5:case at.RGBA_ASTC:case at.RGBA8_ETC2_EAC:return Math.floor((t+3)/4)*Math.floor((n+3)/4)*16;case at.RGB_PVRTC_4BPPV1:case at.RGBA_PVRTC_4BPPV1:return Math.floor((Math.max(t,8)*Math.max(n,8)*4+7)/8);case at.RGB_PVRTC_2BPPV1:case at.RGBA_PVRTC_2BPPV1:return Math.floor((Math.max(t,16)*Math.max(n,8)*2+7)/8);case at.RGBA_BC7:return Math.ceil(t/4)*Math.ceil(n/4)*16;default:return 0}};at.textureSizeInBytes=function(e,t,n,i){let o=at.componentsLength(e);return Ze.isPacked(t)&&(o=1),o*Ze.sizeInBytes(t)*n*i};at.alignmentInBytes=function(e,t,n){let i=at.textureSizeInBytes(e,t,n,1)%4;return i===0?4:i===2?2:1};at.createTypedArray=function(e,t,n,i){let o=Ze.getTypedArrayConstructor(t),r=at.componentsLength(e)*n*i;return new o(r)};at.flipY=function(e,t,n,i,o){if(o===1)return e;let r=at.createTypedArray(t,n,i,o),s=at.componentsLength(t),a=i*s;for(let c=0;c<o;++c){let u=c*i*s,f=(o-c-1)*i*s;for(let d=0;d<a;++d)r[f+d]=e[u+d]}return r};at.toInternalFormat=function(e,t,n){if(!n.webgl2)return e;if(e===at.DEPTH_STENCIL)return te.DEPTH24_STENCIL8;if(e===at.DEPTH_COMPONENT){if(t===Ze.UNSIGNED_SHORT)return te.DEPTH_COMPONENT16;if(t===Ze.UNSIGNED_INT)return te.DEPTH_COMPONENT24}if(t===Ze.FLOAT)switch(e){case at.RGBA:return te.RGBA32F;case at.RGB:return te.RGB32F;case at.RG:return te.RG32F;case at.RED:return te.R32F}if(t===Ze.HALF_FLOAT)switch(e){case at.RGBA:return te.RGBA16F;case at.RGB:return te.RGB16F;case at.RG:return te.RG16F;case at.RED:return te.R16F}return e};var it=Object.freeze(at);var ur={_maximumCombinedTextureImageUnits:0,_maximumCubeMapSize:0,_maximumFragmentUniformVectors:0,_maximumTextureImageUnits:0,_maximumRenderbufferSize:0,_maximumTextureSize:0,_maximumVaryingVectors:0,_maximumVertexAttributes:0,_maximumVertexTextureImageUnits:0,_maximumVertexUniformVectors:0,_minimumAliasedLineWidth:0,_maximumAliasedLineWidth:0,_minimumAliasedPointSize:0,_maximumAliasedPointSize:0,_maximumViewportWidth:0,_maximumViewportHeight:0,_maximumTextureFilterAnisotropy:0,_maximumDrawBuffers:0,_maximumColorAttachments:0,_maximumSamples:0,_highpFloatSupported:!1,_highpIntSupported:!1};Object.defineProperties(ur,{maximumCombinedTextureImageUnits:{get:function(){return ur._maximumCombinedTextureImageUnits}},maximumCubeMapSize:{get:function(){return ur._maximumCubeMapSize}},maximumFragmentUniformVectors:{get:function(){return ur._maximumFragmentUniformVectors}},maximumTextureImageUnits:{get:function(){return ur._maximumTextureImageUnits}},maximumRenderbufferSize:{get:function(){return ur._maximumRenderbufferSize}},maximumTextureSize:{get:function(){return ur._maximumTextureSize}},maximumVaryingVectors:{get:function(){return ur._maximumVaryingVectors}},maximumVertexAttributes:{get:function(){return ur._maximumVertexAttributes}},maximumVertexTextureImageUnits:{get:function(){return ur._maximumVertexTextureImageUnits}},maximumVertexUniformVectors:{get:function(){return ur._maximumVertexUniformVectors}},minimumAliasedLineWidth:{get:function(){return ur._minimumAliasedLineWidth}},maximumAliasedLineWidth:{get:function(){return ur._maximumAliasedLineWidth}},minimumAliasedPointSize:{get:function(){return ur._minimumAliasedPointSize}},maximumAliasedPointSize:{get:function(){return ur._maximumAliasedPointSize}},maximumViewportWidth:{get:function(){return ur._maximumViewportWidth}},maximumViewportHeight:{get:function(){return ur._maximumViewportHeight}},maximumTextureFilterAnisotropy:{get:function(){return ur._maximumTextureFilterAnisotropy}},maximumDrawBuffers:{get:function(){return ur._maximumDrawBuffers}},maximumColorAttachments:{get:function(){return ur._maximumColorAttachments}},maximumSamples:{get:function(){return ur._maximumSamples}},highpFloatSupported:{get:function(){return ur._highpFloatSupported}},highpIntSupported:{get:function(){return ur._highpIntSupported}}});var zt=ur;function P5(e,t,n){let i=e._gl;i.framebufferTexture2D(i.FRAMEBUFFER,t,n._target,n._texture,0)}function N1(e,t,n){let i=e._gl;i.framebufferRenderbuffer(i.FRAMEBUFFER,t,i.RENDERBUFFER,n._getRenderbuffer())}function Jf(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumColorAttachments;if(this._gl=n,this._framebuffer=n.createFramebuffer(),this._colorTextures=[],this._colorRenderbuffers=[],this._activeColorAttachments=[],this._depthTexture=void 0,this._depthRenderbuffer=void 0,this._stencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this.destroyAttachments=y(e.destroyAttachments,!0),this._bind(),l(e.colorTextures)){let o=e.colorTextures,r=this._colorTextures.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;P5(this,c,a),this._activeColorAttachments[s]=c,this._colorTextures[s]=a}}if(l(e.colorRenderbuffers)){let o=e.colorRenderbuffers,r=this._colorRenderbuffers.length=this._activeColorAttachments.length=o.length;for(let s=0;s<r;++s){let a=o[s],c=this._gl.COLOR_ATTACHMENT0+s;N1(this,c,a),this._activeColorAttachments[s]=c,this._colorRenderbuffers[s]=a}}if(l(e.depthTexture)){let o=e.depthTexture;P5(this,this._gl.DEPTH_ATTACHMENT,o),this._depthTexture=o}if(l(e.depthRenderbuffer)){let o=e.depthRenderbuffer;N1(this,this._gl.DEPTH_ATTACHMENT,o),this._depthRenderbuffer=o}if(l(e.stencilRenderbuffer)){let o=e.stencilRenderbuffer;N1(this,this._gl.STENCIL_ATTACHMENT,o),this._stencilRenderbuffer=o}if(l(e.depthStencilTexture)){let o=e.depthStencilTexture;P5(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilTexture=o}if(l(e.depthStencilRenderbuffer)){let o=e.depthStencilRenderbuffer;N1(this,this._gl.DEPTH_STENCIL_ATTACHMENT,o),this._depthStencilRenderbuffer=o}this._unBind()}Object.defineProperties(Jf.prototype,{status:{get:function(){this._bind();let e=this._gl.checkFramebufferStatus(this._gl.FRAMEBUFFER);return this._unBind(),e}},numberOfColorAttachments:{get:function(){return this._activeColorAttachments.length}},depthTexture:{get:function(){return this._depthTexture}},depthRenderbuffer:{get:function(){return this._depthRenderbuffer}},stencilRenderbuffer:{get:function(){return this._stencilRenderbuffer}},depthStencilTexture:{get:function(){return this._depthStencilTexture}},depthStencilRenderbuffer:{get:function(){return this._depthStencilRenderbuffer}},hasDepthAttachment:{get:function(){return!!(this.depthTexture||this.depthRenderbuffer||this.depthStencilTexture||this.depthStencilRenderbuffer)}}});Jf.prototype._bind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,this._framebuffer)};Jf.prototype._unBind=function(){let e=this._gl;e.bindFramebuffer(e.FRAMEBUFFER,null)};Jf.prototype.bindDraw=function(){let e=this._gl;e.bindFramebuffer(e.DRAW_FRAMEBUFFER,this._framebuffer)};Jf.prototype.bindRead=function(){let e=this._gl;e.bindFramebuffer(e.READ_FRAMEBUFFER,this._framebuffer)};Jf.prototype._getActiveColorAttachments=function(){return this._activeColorAttachments};Jf.prototype.getColorTexture=function(e){return this._colorTextures[e]};Jf.prototype.getColorRenderbuffer=function(e){return this._colorRenderbuffers[e]};Jf.prototype.isDestroyed=function(){return!1};Jf.prototype.destroy=function(){if(this.destroyAttachments){let e=this._colorTextures;for(let n=0;n<e.length;++n){let i=e[n];l(i)&&i.destroy()}let t=this._colorRenderbuffers;for(let n=0;n<t.length;++n){let i=t[n];l(i)&&i.destroy()}this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy(),this._stencilRenderbuffer=this._stencilRenderbuffer&&this._stencilRenderbuffer.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()}return this._gl.deleteFramebuffer(this._framebuffer),ue(this)};var Vr=Jf;var F1={CLOCKWISE:te.CW,COUNTER_CLOCKWISE:te.CCW};F1.validate=function(e){return e===F1.CLOCKWISE||e===F1.COUNTER_CLOCKWISE};var gs=Object.freeze(F1);function pQ(e){if(typeof e!="object"||e===null)return e;let t,n=Object.keys(e);for(let i=0;i<n.length;i++)t=n[i],e.hasOwnProperty(t)&&t!=="_applyFunctions"&&(e[t]=pQ(e[t]));return Object.freeze(e)}var _Q=pQ;function _h(e){let t=y(e,y.EMPTY_OBJECT),n=y(t.cull,y.EMPTY_OBJECT),i=y(t.polygonOffset,y.EMPTY_OBJECT),o=y(t.scissorTest,y.EMPTY_OBJECT),r=y(o.rectangle,y.EMPTY_OBJECT),s=y(t.depthRange,y.EMPTY_OBJECT),a=y(t.depthTest,y.EMPTY_OBJECT),c=y(t.colorMask,y.EMPTY_OBJECT),u=y(t.blending,y.EMPTY_OBJECT),f=y(u.color,y.EMPTY_OBJECT),d=y(t.stencilTest,y.EMPTY_OBJECT),p=y(d.frontOperation,y.EMPTY_OBJECT),g=y(d.backOperation,y.EMPTY_OBJECT),m=y(t.sampleCoverage,y.EMPTY_OBJECT),x=t.viewport;this.frontFace=y(t.frontFace,gs.COUNTER_CLOCKWISE),this.cull={enabled:y(n.enabled,!1),face:y(n.face,te.BACK)},this.lineWidth=y(t.lineWidth,1),this.polygonOffset={enabled:y(i.enabled,!1),factor:y(i.factor,0),units:y(i.units,0)},this.scissorTest={enabled:y(o.enabled,!1),rectangle:qe.clone(r)},this.depthRange={near:y(s.near,0),far:y(s.far,1)},this.depthTest={enabled:y(a.enabled,!1),func:y(a.func,te.LESS)},this.colorMask={red:y(c.red,!0),green:y(c.green,!0),blue:y(c.blue,!0),alpha:y(c.alpha,!0)},this.depthMask=y(t.depthMask,!0),this.stencilMask=y(t.stencilMask,-1),this.blending={enabled:y(u.enabled,!1),color:new z(y(f.red,0),y(f.green,0),y(f.blue,0),y(f.alpha,0)),equationRgb:y(u.equationRgb,te.FUNC_ADD),equationAlpha:y(u.equationAlpha,te.FUNC_ADD),functionSourceRgb:y(u.functionSourceRgb,te.ONE),functionSourceAlpha:y(u.functionSourceAlpha,te.ONE),functionDestinationRgb:y(u.functionDestinationRgb,te.ZERO),functionDestinationAlpha:y(u.functionDestinationAlpha,te.ZERO)},this.stencilTest={enabled:y(d.enabled,!1),frontFunction:y(d.frontFunction,te.ALWAYS),backFunction:y(d.backFunction,te.ALWAYS),reference:y(d.reference,0),mask:y(d.mask,-1),frontOperation:{fail:y(p.fail,te.KEEP),zFail:y(p.zFail,te.KEEP),zPass:y(p.zPass,te.KEEP)},backOperation:{fail:y(g.fail,te.KEEP),zFail:y(g.zFail,te.KEEP),zPass:y(g.zPass,te.KEEP)}},this.sampleCoverage={enabled:y(m.enabled,!1),value:y(m.value,1),invert:y(m.invert,!1)},this.viewport=l(x)?new qe(x.x,x.y,x.width,x.height):void 0,this.id=0,this._applyFunctions=[]}var Mve=0,ph={};_h.fromCache=function(e){let t=JSON.stringify(e),n=ph[t];if(l(n))return++n.referenceCount,n.state;let i=new _h(e),o=JSON.stringify(i);return n=ph[o],l(n)||(i.id=Mve++,n={referenceCount:0,state:i},ph[o]=n),++n.referenceCount,ph[t]={referenceCount:1,state:n.state},n.state};_h.removeFromCache=function(e){let t=new _h(e),n=JSON.stringify(t),i=ph[n],o=JSON.stringify(e),r=ph[o];l(r)&&(--r.referenceCount,r.referenceCount===0&&(delete ph[o],l(i)&&--i.referenceCount)),l(i)&&i.referenceCount===0&&delete ph[n]};_h.getCache=function(){return ph};_h.clearCache=function(){ph={}};function C0(e,t,n){n?e.enable(t):e.disable(t)}function gQ(e,t){e.frontFace(t.frontFace)}function yQ(e,t){let n=t.cull,i=n.enabled;C0(e,e.CULL_FACE,i),i&&e.cullFace(n.face)}function xQ(e,t){e.lineWidth(t.lineWidth)}function bQ(e,t){let n=t.polygonOffset,i=n.enabled;C0(e,e.POLYGON_OFFSET_FILL,i),i&&e.polygonOffset(n.factor,n.units)}function TQ(e,t,n){let i=t.scissorTest,o=l(n.scissorTest)?n.scissorTest.enabled:i.enabled;if(C0(e,e.SCISSOR_TEST,o),o){let r=l(n.scissorTest)?n.scissorTest.rectangle:i.rectangle;e.scissor(r.x,r.y,r.width,r.height)}}function AQ(e,t){let n=t.depthRange;e.depthRange(n.near,n.far)}function CQ(e,t){let n=t.depthTest,i=n.enabled;C0(e,e.DEPTH_TEST,i),i&&e.depthFunc(n.func)}function EQ(e,t){let n=t.colorMask;e.colorMask(n.red,n.green,n.blue,n.alpha)}function SQ(e,t){e.depthMask(t.depthMask)}function vQ(e,t){e.stencilMask(t.stencilMask)}function Lve(e,t){e.blendColor(t.red,t.green,t.blue,t.alpha)}function wQ(e,t,n){let i=t.blending,o=l(n.blendingEnabled)?n.blendingEnabled:i.enabled;C0(e,e.BLEND,o),o&&(Lve(e,i.color),e.blendEquationSeparate(i.equationRgb,i.equationAlpha),e.blendFuncSeparate(i.functionSourceRgb,i.functionDestinationRgb,i.functionSourceAlpha,i.functionDestinationAlpha))}function DQ(e,t){let n=t.stencilTest,i=n.enabled;if(C0(e,e.STENCIL_TEST,i),i){let o=n.frontFunction,r=n.backFunction,s=n.reference,a=n.mask;e.stencilFunc(o,s,a),e.stencilFuncSeparate(e.BACK,r,s,a),e.stencilFuncSeparate(e.FRONT,o,s,a);let c=n.frontOperation,u=c.fail,f=c.zFail,d=c.zPass;e.stencilOpSeparate(e.FRONT,u,f,d);let p=n.backOperation,g=p.fail,m=p.zFail,x=p.zPass;e.stencilOpSeparate(e.BACK,g,m,x)}}function IQ(e,t){let n=t.sampleCoverage,i=n.enabled;C0(e,e.SAMPLE_COVERAGE,i),i&&e.sampleCoverage(n.value,n.invert)}var Nve=new qe;function PQ(e,t,n){let i=y(t.viewport,n.viewport);l(i)||(i=Nve,i.width=n.context.drawingBufferWidth,i.height=n.context.drawingBufferHeight),n.context.uniformState.viewport=i,e.viewport(i.x,i.y,i.width,i.height)}_h.apply=function(e,t,n){gQ(e,t),yQ(e,t),xQ(e,t),bQ(e,t),AQ(e,t),CQ(e,t),EQ(e,t),SQ(e,t),vQ(e,t),DQ(e,t),IQ(e,t),TQ(e,t,n),wQ(e,t,n),PQ(e,t,n)};function Fve(e,t){let n=[];return e.frontFace!==t.frontFace&&n.push(gQ),(e.cull.enabled!==t.cull.enabled||e.cull.face!==t.cull.face)&&n.push(yQ),e.lineWidth!==t.lineWidth&&n.push(xQ),(e.polygonOffset.enabled!==t.polygonOffset.enabled||e.polygonOffset.factor!==t.polygonOffset.factor||e.polygonOffset.units!==t.polygonOffset.units)&&n.push(bQ),(e.depthRange.near!==t.depthRange.near||e.depthRange.far!==t.depthRange.far)&&n.push(AQ),(e.depthTest.enabled!==t.depthTest.enabled||e.depthTest.func!==t.depthTest.func)&&n.push(CQ),(e.colorMask.red!==t.colorMask.red||e.colorMask.green!==t.colorMask.green||e.colorMask.blue!==t.colorMask.blue||e.colorMask.alpha!==t.colorMask.alpha)&&n.push(EQ),e.depthMask!==t.depthMask&&n.push(SQ),e.stencilMask!==t.stencilMask&&n.push(vQ),(e.stencilTest.enabled!==t.stencilTest.enabled||e.stencilTest.frontFunction!==t.stencilTest.frontFunction||e.stencilTest.backFunction!==t.stencilTest.backFunction||e.stencilTest.reference!==t.stencilTest.reference||e.stencilTest.mask!==t.stencilTest.mask||e.stencilTest.frontOperation.fail!==t.stencilTest.frontOperation.fail||e.stencilTest.frontOperation.zFail!==t.stencilTest.frontOperation.zFail||e.stencilTest.backOperation.fail!==t.stencilTest.backOperation.fail||e.stencilTest.backOperation.zFail!==t.stencilTest.backOperation.zFail||e.stencilTest.backOperation.zPass!==t.stencilTest.backOperation.zPass)&&n.push(DQ),(e.sampleCoverage.enabled!==t.sampleCoverage.enabled||e.sampleCoverage.value!==t.sampleCoverage.value||e.sampleCoverage.invert!==t.sampleCoverage.invert)&&n.push(IQ),n}_h.partialApply=function(e,t,n,i,o,r){if(t!==n){let f=n._applyFunctions[t.id];l(f)||(f=Fve(t,n),n._applyFunctions[t.id]=f);let d=f.length;for(let p=0;p<d;++p)f[p](e,n)}let s=l(i.scissorTest)?i.scissorTest:t.scissorTest,a=l(o.scissorTest)?o.scissorTest:n.scissorTest;(s!==a||r)&&TQ(e,n,o);let c=l(i.blendingEnabled)?i.blendingEnabled:t.blending.enabled,u=l(o.blendingEnabled)?o.blendingEnabled:n.blending.enabled;(c!==u||u&&t.blending!==n.blending)&&wQ(e,n,o),(t!==n||i!==o||i.context!==o.context)&&PQ(e,n,o)};_h.getState=function(e){return{frontFace:e.frontFace,cull:{enabled:e.cull.enabled,face:e.cull.face},lineWidth:e.lineWidth,polygonOffset:{enabled:e.polygonOffset.enabled,factor:e.polygonOffset.factor,units:e.polygonOffset.units},scissorTest:{enabled:e.scissorTest.enabled,rectangle:qe.clone(e.scissorTest.rectangle)},depthRange:{near:e.depthRange.near,far:e.depthRange.far},depthTest:{enabled:e.depthTest.enabled,func:e.depthTest.func},colorMask:{red:e.colorMask.red,green:e.colorMask.green,blue:e.colorMask.blue,alpha:e.colorMask.alpha},depthMask:e.depthMask,stencilMask:e.stencilMask,blending:{enabled:e.blending.enabled,color:z.clone(e.blending.color),equationRgb:e.blending.equationRgb,equationAlpha:e.blending.equationAlpha,functionSourceRgb:e.blending.functionSourceRgb,functionSourceAlpha:e.blending.functionSourceAlpha,functionDestinationRgb:e.blending.functionDestinationRgb,functionDestinationAlpha:e.blending.functionDestinationAlpha},stencilTest:{enabled:e.stencilTest.enabled,frontFunction:e.stencilTest.frontFunction,backFunction:e.stencilTest.backFunction,reference:e.stencilTest.reference,mask:e.stencilTest.mask,frontOperation:{fail:e.stencilTest.frontOperation.fail,zFail:e.stencilTest.frontOperation.zFail,zPass:e.stencilTest.frontOperation.zPass},backOperation:{fail:e.stencilTest.backOperation.fail,zFail:e.stencilTest.backOperation.zFail,zPass:e.stencilTest.backOperation.zPass}},sampleCoverage:{enabled:e.sampleCoverage.enabled,value:e.sampleCoverage.value,invert:e.sampleCoverage.invert},viewport:l(e.viewport)?qe.clone(e.viewport):void 0}};var Ve=_h;function Kt(e,t,n,i){this[0]=y(e,0),this[1]=y(n,0),this[2]=y(t,0),this[3]=y(i,0)}Kt.packedLength=4;Kt.pack=function(e,t,n){return n=y(n,0),t[n++]=e[0],t[n++]=e[1],t[n++]=e[2],t[n++]=e[3],t};Kt.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Kt),n[0]=e[t++],n[1]=e[t++],n[2]=e[t++],n[3]=e[t++],n};Kt.packArray=function(e,t){let n=e.length,i=n*4;l(t)?!Array.isArray(t)&&t.length!==i||t.length!==i&&(t.length=i):t=new Array(i);for(let o=0;o<n;++o)Kt.pack(e[o],t,o*4);return t};Kt.unpackArray=function(e,t){let n=e.length;l(t)?t.length=n/4:t=new Array(n/4);for(let i=0;i<n;i+=4){let o=i/4;t[o]=Kt.unpack(e,i,t[o])}return t};Kt.clone=function(e,t){if(l(e))return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):new Kt(e[0],e[2],e[1],e[3])};Kt.fromArray=Kt.unpack;Kt.fromColumnMajorArray=function(e,t){return Kt.clone(e,t)};Kt.fromRowMajorArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[2],t[2]=e[1],t[3]=e[3],t):new Kt(e[0],e[1],e[2],e[3])};Kt.fromScale=function(e,t){return l(t)?(t[0]=e.x,t[1]=0,t[2]=0,t[3]=e.y,t):new Kt(e.x,0,0,e.y)};Kt.fromUniformScale=function(e,t){return l(t)?(t[0]=e,t[1]=0,t[2]=0,t[3]=e,t):new Kt(e,0,0,e)};Kt.fromRotation=function(e,t){let n=Math.cos(e),i=Math.sin(e);return l(t)?(t[0]=n,t[1]=i,t[2]=-i,t[3]=n,t):new Kt(n,-i,i,n)};Kt.toArray=function(e,t){return l(t)?(t[0]=e[0],t[1]=e[1],t[2]=e[2],t[3]=e[3],t):[e[0],e[1],e[2],e[3]]};Kt.getElementIndex=function(e,t){return e*2+t};Kt.getColumn=function(e,t,n){let i=t*2,o=e[i],r=e[i+1];return n.x=o,n.y=r,n};Kt.setColumn=function(e,t,n,i){i=Kt.clone(e,i);let o=t*2;return i[o]=n.x,i[o+1]=n.y,i};Kt.getRow=function(e,t,n){let i=e[t],o=e[t+2];return n.x=i,n.y=o,n};Kt.setRow=function(e,t,n,i){return i=Kt.clone(e,i),i[t]=n.x,i[t+2]=n.y,i};var Bve=new U;Kt.setScale=function(e,t,n){let i=Kt.getScale(e,Bve),o=t.x/i.x,r=t.y/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var kve=new U;Kt.setUniformScale=function(e,t,n){let i=Kt.getScale(e,kve),o=t/i.x,r=t/i.y;return n[0]=e[0]*o,n[1]=e[1]*o,n[2]=e[2]*r,n[3]=e[3]*r,n};var RQ=new U;Kt.getScale=function(e,t){return t.x=U.magnitude(U.fromElements(e[0],e[1],RQ)),t.y=U.magnitude(U.fromElements(e[2],e[3],RQ)),t};var OQ=new U;Kt.getMaximumScale=function(e){return Kt.getScale(e,OQ),U.maximumComponent(OQ)};var Vve=new U;Kt.setRotation=function(e,t,n){let i=Kt.getScale(e,Vve);return n[0]=t[0]*i.x,n[1]=t[1]*i.x,n[2]=t[2]*i.y,n[3]=t[3]*i.y,n};var Uve=new U;Kt.getRotation=function(e,t){let n=Kt.getScale(e,Uve);return t[0]=e[0]/n.x,t[1]=e[1]/n.x,t[2]=e[2]/n.y,t[3]=e[3]/n.y,t};Kt.multiply=function(e,t,n){let i=e[0]*t[0]+e[2]*t[1],o=e[0]*t[2]+e[2]*t[3],r=e[1]*t[0]+e[3]*t[1],s=e[1]*t[2]+e[3]*t[3];return n[0]=i,n[1]=r,n[2]=o,n[3]=s,n};Kt.add=function(e,t,n){return n[0]=e[0]+t[0],n[1]=e[1]+t[1],n[2]=e[2]+t[2],n[3]=e[3]+t[3],n};Kt.subtract=function(e,t,n){return n[0]=e[0]-t[0],n[1]=e[1]-t[1],n[2]=e[2]-t[2],n[3]=e[3]-t[3],n};Kt.multiplyByVector=function(e,t,n){let i=e[0]*t.x+e[2]*t.y,o=e[1]*t.x+e[3]*t.y;return n.x=i,n.y=o,n};Kt.multiplyByScalar=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Kt.multiplyByScale=function(e,t,n){return n[0]=e[0]*t.x,n[1]=e[1]*t.x,n[2]=e[2]*t.y,n[3]=e[3]*t.y,n};Kt.multiplyByUniformScale=function(e,t,n){return n[0]=e[0]*t,n[1]=e[1]*t,n[2]=e[2]*t,n[3]=e[3]*t,n};Kt.negate=function(e,t){return t[0]=-e[0],t[1]=-e[1],t[2]=-e[2],t[3]=-e[3],t};Kt.transpose=function(e,t){let n=e[0],i=e[2],o=e[1],r=e[3];return t[0]=n,t[1]=i,t[2]=o,t[3]=r,t};Kt.abs=function(e,t){return t[0]=Math.abs(e[0]),t[1]=Math.abs(e[1]),t[2]=Math.abs(e[2]),t[3]=Math.abs(e[3]),t};Kt.equals=function(e,t){return e===t||l(e)&&l(t)&&e[0]===t[0]&&e[1]===t[1]&&e[2]===t[2]&&e[3]===t[3]};Kt.equalsArray=function(e,t,n){return e[0]===t[n]&&e[1]===t[n+1]&&e[2]===t[n+2]&&e[3]===t[n+3]};Kt.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e[0]-t[0])<=n&&Math.abs(e[1]-t[1])<=n&&Math.abs(e[2]-t[2])<=n&&Math.abs(e[3]-t[3])<=n};Kt.IDENTITY=Object.freeze(new Kt(1,0,0,1));Kt.ZERO=Object.freeze(new Kt(0,0,0,0));Kt.COLUMN0ROW0=0;Kt.COLUMN0ROW1=1;Kt.COLUMN1ROW0=2;Kt.COLUMN1ROW1=3;Object.defineProperties(Kt.prototype,{length:{get:function(){return Kt.packedLength}}});Kt.prototype.clone=function(e){return Kt.clone(this,e)};Kt.prototype.equals=function(e){return Kt.equals(this,e)};Kt.prototype.equalsEpsilon=function(e,t){return Kt.equalsEpsilon(this,e,t)};Kt.prototype.toString=function(){return`(${this[0]}, ${this[2]}) +(${this[1]}, ${this[3]})`};var Bi=Kt;function zve(e,t,n,i){switch(t.type){case e.FLOAT:return new MQ(e,t,n,i);case e.FLOAT_VEC2:return new LQ(e,t,n,i);case e.FLOAT_VEC3:return new NQ(e,t,n,i);case e.FLOAT_VEC4:return new FQ(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new R5(e,t,n,i);case e.INT:case e.BOOL:return new BQ(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new kQ(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new VQ(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new UQ(e,t,n,i);case e.FLOAT_MAT2:return new zQ(e,t,n,i);case e.FLOAT_MAT3:return new HQ(e,t,n,i);case e.FLOAT_MAT4:return new GQ(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function MQ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}MQ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1f(this._location,this.value))};function LQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new U,this._gl=e,this._location=i}LQ.prototype.set=function(){let e=this.value;U.equals(e,this._value)||(U.clone(e,this._value),this._gl.uniform2f(this._location,e.x,e.y))};function NQ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}NQ.prototype.set=function(){let e=this.value;l(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform3f(this._location,e.red,e.green,e.blue)):l(e.x)&&(h.equals(e,this._value)||(this._value=h.clone(e,this._value),this._gl.uniform3f(this._location,e.x,e.y,e.z)))};function FQ(e,t,n,i){this.name=n,this.value=void 0,this._value=void 0,this._gl=e,this._location=i}FQ.prototype.set=function(){let e=this.value;l(e.red)?z.equals(e,this._value)||(this._value=z.clone(e,this._value),this._gl.uniform4f(this._location,e.red,e.green,e.blue,e.alpha)):l(e.x)&&(oe.equals(e,this._value)||(this._value=oe.clone(e,this._value),this._gl.uniform4f(this._location,e.x,e.y,e.z,e.w)))};function R5(e,t,n,i){this.name=n,this.value=void 0,this._gl=e,this._location=i,this.textureUnitIndex=void 0}R5.prototype.set=function(){let e=this._gl;e.activeTexture(e.TEXTURE0+this.textureUnitIndex);let t=this.value;e.bindTexture(t._target,t._texture)};R5.prototype._setSampler=function(e){return this.textureUnitIndex=e,this._gl.uniform1i(this._location,e),e+1};function BQ(e,t,n,i){this.name=n,this.value=void 0,this._value=0,this._gl=e,this._location=i}BQ.prototype.set=function(){this.value!==this._value&&(this._value=this.value,this._gl.uniform1i(this._location,this.value))};function kQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new U,this._gl=e,this._location=i}kQ.prototype.set=function(){let e=this.value;U.equals(e,this._value)||(U.clone(e,this._value),this._gl.uniform2i(this._location,e.x,e.y))};function VQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new h,this._gl=e,this._location=i}VQ.prototype.set=function(){let e=this.value;h.equals(e,this._value)||(h.clone(e,this._value),this._gl.uniform3i(this._location,e.x,e.y,e.z))};function UQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new oe,this._gl=e,this._location=i}UQ.prototype.set=function(){let e=this.value;oe.equals(e,this._value)||(oe.clone(e,this._value),this._gl.uniform4i(this._location,e.x,e.y,e.z,e.w))};var Hve=new Float32Array(4);function zQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new Bi,this._gl=e,this._location=i}zQ.prototype.set=function(){if(!Bi.equalsArray(this.value,this._value,0)){Bi.clone(this.value,this._value);let e=Bi.toArray(this.value,Hve);this._gl.uniformMatrix2fv(this._location,!1,e)}};var Gve=new Float32Array(9);function HQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new $,this._gl=e,this._location=i}HQ.prototype.set=function(){if(!$.equalsArray(this.value,this._value,0)){$.clone(this.value,this._value);let e=$.toArray(this.value,Gve);this._gl.uniformMatrix3fv(this._location,!1,e)}};var Wve=new Float32Array(16);function GQ(e,t,n,i){this.name=n,this.value=void 0,this._value=new F,this._gl=e,this._location=i}GQ.prototype.set=function(){if(!F.equalsArray(this.value,this._value,0)){F.clone(this.value,this._value);let e=F.toArray(this.value,Wve);this._gl.uniformMatrix4fv(this._location,!1,e)}};var B1=zve;function jve(e,t,n,i){switch(t.type){case e.FLOAT:return new WQ(e,t,n,i);case e.FLOAT_VEC2:return new jQ(e,t,n,i);case e.FLOAT_VEC3:return new qQ(e,t,n,i);case e.FLOAT_VEC4:return new YQ(e,t,n,i);case e.SAMPLER_2D:case e.SAMPLER_CUBE:return new O5(e,t,n,i);case e.INT:case e.BOOL:return new XQ(e,t,n,i);case e.INT_VEC2:case e.BOOL_VEC2:return new KQ(e,t,n,i);case e.INT_VEC3:case e.BOOL_VEC3:return new ZQ(e,t,n,i);case e.INT_VEC4:case e.BOOL_VEC4:return new $Q(e,t,n,i);case e.FLOAT_MAT2:return new QQ(e,t,n,i);case e.FLOAT_MAT3:return new JQ(e,t,n,i);case e.FLOAT_MAT4:return new eJ(e,t,n,i);default:throw new ce(`Unrecognized uniform type: ${t.type} for uniform "${n}".`)}}function WQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._location=i[0]}WQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1fv(this._location,n)};function jQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*2),this._gl=e,this._location=i[0]}jQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];U.equalsArray(s,n,o)||(U.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2fv(this._location,n)};function qQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*3),this._gl=e,this._location=i[0]}qQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?(s.red!==n[o]||s.green!==n[o+1]||s.blue!==n[o+2])&&(n[o]=s.red,n[o+1]=s.green,n[o+2]=s.blue,i=!0):l(s.x)&&(h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0)),o+=3}i&&this._gl.uniform3fv(this._location,n)};function YQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}YQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];l(s.red)?z.equalsArray(s,n,o)||(z.pack(s,n,o),i=!0):l(s.x)&&(oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0)),o+=4}i&&this._gl.uniform4fv(this._location,n)};function O5(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o),this._gl=e,this._locations=i,this.textureUnitIndex=void 0}O5.prototype.set=function(){let e=this._gl,t=e.TEXTURE0+this.textureUnitIndex,n=this.value,i=n.length;for(let o=0;o<i;++o){let r=n[o];e.activeTexture(t+o),e.bindTexture(r._target,r._texture)}};O5.prototype._setSampler=function(e){this.textureUnitIndex=e;let t=this._locations,n=t.length;for(let i=0;i<n;++i){let o=e+i;this._gl.uniform1i(t[i],o)}return e+n};function XQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o),this._gl=e,this._location=i[0]}XQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1;for(let o=0;o<t;++o){let r=e[o];r!==n[o]&&(n[o]=r,i=!0)}i&&this._gl.uniform1iv(this._location,n)};function KQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*2),this._gl=e,this._location=i[0]}KQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];U.equalsArray(s,n,o)||(U.pack(s,n,o),i=!0),o+=2}i&&this._gl.uniform2iv(this._location,n)};function ZQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*3),this._gl=e,this._location=i[0]}ZQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];h.equalsArray(s,n,o)||(h.pack(s,n,o),i=!0),o+=3}i&&this._gl.uniform3iv(this._location,n)};function $Q(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Int32Array(o*4),this._gl=e,this._location=i[0]}$Q.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];oe.equalsArray(s,n,o)||(oe.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniform4iv(this._location,n)};function QQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*4),this._gl=e,this._location=i[0]}QQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];Bi.equalsArray(s,n,o)||(Bi.pack(s,n,o),i=!0),o+=4}i&&this._gl.uniformMatrix2fv(this._location,!1,n)};function JQ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*9),this._gl=e,this._location=i[0]}JQ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];$.equalsArray(s,n,o)||($.pack(s,n,o),i=!0),o+=9}i&&this._gl.uniformMatrix3fv(this._location,!1,n)};function eJ(e,t,n,i){let o=i.length;this.name=n,this.value=new Array(o),this._value=new Float32Array(o*16),this._gl=e,this._location=i[0]}eJ.prototype.set=function(){let e=this.value,t=e.length,n=this._value,i=!1,o=0;for(let r=0;r<t;++r){let s=e[r];F.equalsArray(s,n,o)||(F.pack(s,n,o),i=!0),o+=16}i&&this._gl.uniformMatrix4fv(this._location,!1,n)};var k1=jve;var qve=0;function $m(e){let t=e.vertexShaderText,n=e.fragmentShaderText;typeof spector<"u"&&(t=t.replace(/^#line/gm,"//#line"),n=n.replace(/^#line/gm,"//#line"));let i=Yve(t,n);this._gl=e.gl,this._logShaderCompilation=e.logShaderCompilation,this._debugShaders=e.debugShaders,this._attributeLocations=e.attributeLocations,this._program=void 0,this._numberOfVertexAttributes=void 0,this._vertexAttributes=void 0,this._uniformsByName=void 0,this._uniforms=void 0,this._automaticUniforms=void 0,this._manualUniforms=void 0,this._duplicateUniformNames=i.duplicateUniformNames,this._cachedShader=void 0,this.maximumTextureUnitIndex=void 0,this._vertexShaderSource=e.vertexShaderSource,this._vertexShaderText=e.vertexShaderText,this._fragmentShaderSource=e.fragmentShaderSource,this._fragmentShaderText=i.fragmentShaderText,this.id=qve++}$m.fromCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.getShaderProgram(e)};$m.replaceCache=function(e){return e=y(e,y.EMPTY_OBJECT),e.context.shaderCache.replaceShaderProgram(e)};Object.defineProperties($m.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},vertexAttributes:{get:function(){return V1(this),this._vertexAttributes}},numberOfVertexAttributes:{get:function(){return V1(this),this._numberOfVertexAttributes}},allUniforms:{get:function(){return V1(this),this._uniformsByName}}});function tJ(e){let t=[],n=e.match(/uniform.*?(?![^{]*})(?=[=\[;])/g);if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o].trim(),s=r.slice(r.lastIndexOf(" ")+1);t.push(s)}}return t}function Yve(e,t){let n={};if(!zt.highpFloatSupported||!zt.highpIntSupported){let i,o,r,s,a=tJ(e),c=tJ(t),u=a.length,f=c.length;for(i=0;i<u;i++)for(o=0;o<f;o++)if(a[i]===c[o]){r=a[i],s=`czm_mediump_${r}`;let d=new RegExp(`${r}\\b`,"g");t=t.replace(d,s),n[s]=r}}return{fragmentShaderText:t,duplicateUniformNames:n}}var gh="[Cesium WebGL] ";function Xve(e,t){let n=t._vertexShaderText,i=t._fragmentShaderText,o=e.createShader(e.VERTEX_SHADER);e.shaderSource(o,n),e.compileShader(o);let r=e.createShader(e.FRAGMENT_SHADER);e.shaderSource(r,i),e.compileShader(r);let s=e.createProgram();e.attachShader(s,o),e.attachShader(s,r);let a=t._attributeLocations;if(l(a))for(let p in a)a.hasOwnProperty(p)&&e.bindAttribLocation(s,a[p],p);e.linkProgram(s);let c;if(e.getProgramParameter(s,e.LINK_STATUS))return t._logShaderCompilation&&(c=e.getShaderInfoLog(o),l(c)&&c.length>0&&console.log(`${gh}Vertex shader compile log: ${c}`),c=e.getShaderInfoLog(r),l(c)&&c.length>0&&console.log(`${gh}Fragment shader compile log: ${c}`),c=e.getProgramInfoLog(s),l(c)&&c.length>0&&console.log(`${gh}Shader program link log: ${c}`)),e.deleteShader(o),e.deleteShader(r),s;let u,f=t._debugShaders;throw e.getShaderParameter(r,e.COMPILE_STATUS)?e.getShaderParameter(o,e.COMPILE_STATUS)?(c=e.getProgramInfoLog(s),console.error(`${gh}Shader program link log: ${c}`),d(o,"vertex"),d(r,"fragment"),u=`Program failed to link. Link log: ${c}`):(c=e.getShaderInfoLog(o),console.error(`${gh}Vertex shader compile log: ${c}`),console.error(`${gh} Vertex shader source: +${n}`),u=`Vertex shader failed to compile. Compile log: ${c}`):(c=e.getShaderInfoLog(r),console.error(`${gh}Fragment shader compile log: ${c}`),console.error(`${gh} Fragment shader source: +${i}`),u=`Fragment shader failed to compile. Compile log: ${c}`),e.deleteShader(o),e.deleteShader(r),e.deleteProgram(s),new ce(u);function d(p,g){if(!l(f))return;let m=f.getTranslatedShaderSource(p);if(m===""){console.error(`${gh}${g} shader translation failed.`);return}console.error(`${gh}Translated ${g} shaderSource: +${m}`)}}function Kve(e,t,n){let i={};for(let o=0;o<n;++o){let r=e.getActiveAttrib(t,o),s=e.getAttribLocation(t,r.name);i[r.name]={name:r.name,type:r.type,index:s}}return i}function Zve(e,t){let n={},i=[],o=[],r=e.getProgramParameter(t,e.ACTIVE_UNIFORMS);for(let s=0;s<r;++s){let a=e.getActiveUniform(t,s),c="[0]",u=a.name.indexOf(c,a.name.length-c.length)!==-1?a.name.slice(0,a.name.length-3):a.name;if(u.indexOf("gl_")!==0)if(a.name.indexOf("[")<0){let f=e.getUniformLocation(t,u);if(f!==null){let d=B1(e,a,u,f);n[u]=d,i.push(d),d._setSampler&&o.push(d)}}else{let f,d,p,g,m=u.indexOf("[");if(m>=0){if(f=n[u.slice(0,m)],!l(f))continue;d=f._locations,d.length<=1&&(p=f.value,g=e.getUniformLocation(t,u),g!==null&&(d.push(g),p.push(e.getUniform(t,g))))}else{d=[];for(let x=0;x<a.size;++x)g=e.getUniformLocation(t,`${u}[${x}]`),g!==null&&d.push(g);f=k1(e,a,u,d),n[u]=f,i.push(f),f._setSampler&&o.push(f)}}}return{uniformsByName:n,uniforms:i,samplerUniforms:o}}function $ve(e,t){let n=[],i=[];for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=o,a=e._duplicateUniformNames[s];l(a)&&(r.name=a,s=a);let c=v_[s];l(c)?n.push({uniform:r,automaticUniform:c}):i.push(r)}return{automaticUniforms:n,manualUniforms:i}}function Qve(e,t,n){e.useProgram(t);let i=0,o=n.length;for(let r=0;r<o;++r)i=n[r]._setSampler(i);return e.useProgram(null),i}function V1(e){l(e._program)||nJ(e)}function nJ(e){let t=e._program,n=e._gl,i=Xve(n,e,e._debugShaders),o=n.getProgramParameter(i,n.ACTIVE_ATTRIBUTES),r=Zve(n,i),s=$ve(e,r.uniformsByName);e._program=i,e._numberOfVertexAttributes=o,e._vertexAttributes=Kve(n,i,o),e._uniformsByName=r.uniformsByName,e._uniforms=r.uniforms,e._automaticUniforms=s.automaticUniforms,e._manualUniforms=s.manualUniforms,e.maximumTextureUnitIndex=Qve(n,i,r.samplerUniforms),t&&e._gl.deleteProgram(t),typeof spector<"u"&&(e._program.__SPECTOR_rebuildProgram=function(a,c,u,f){let d=e._vertexShaderText,p=e._fragmentShaderText,g=/ ! = /g;e._vertexShaderText=a.replace(g," != "),e._fragmentShaderText=c.replace(g," != ");try{nJ(e),u(e._program)}catch(m){e._vertexShaderText=d,e._fragmentShaderText=p;let b=/(?:Compile|Link) error: ([^]*)/.exec(m.message);f(b?b[1]:m.message)}})}$m.prototype._bind=function(){V1(this),this._gl.useProgram(this._program)};$m.prototype._setUniforms=function(e,t,n){let i,o;if(l(e)){let a=this._manualUniforms;for(i=a.length,o=0;o<i;++o){let c=a[o];c.value=e[c.name]()}}let r=this._automaticUniforms;for(i=r.length,o=0;o<i;++o){let a=r[o];a.uniform.value=a.automaticUniform.getValue(t)}let s=this._uniforms;for(i=s.length,o=0;o<i;++o)s[o].set();if(n){let a=this._gl,c=this._program;a.validateProgram(c)}};$m.prototype.isDestroyed=function(){return!1};$m.prototype.destroy=function(){this._cachedShader.cache.releaseShaderProgram(this)};$m.prototype.finalDestroy=function(){return this._gl.deleteProgram(this._program),ue(this)};var en=$m;function U1(e){this._context=e}var WS,Jve=new et({primitiveType:Le.TRIANGLES}),ewe=new ei({color:new z(0,0,0,0)});function twe(e,t){return new Vr({context:e,colorTextures:[t],destroyAttachments:!1})}function nwe(e,t){return en.fromCache({context:e,vertexShaderSource:mT,fragmentShaderSource:t,attributeLocations:{position:0,textureCoordinates:1}})}function iwe(e,t){return(!l(WS)||WS.viewport.width!==e||WS.viewport.height!==t)&&(WS=Ve.fromCache({viewport:new qe(0,0,e,t)})),WS}U1.prototype.execute=function(e){l(e.preExecute)&&e.preExecute(e);let t=e.outputTexture,n=t.width,i=t.height,o=this._context,r=l(e.vertexArray)?e.vertexArray:o.getViewportQuadVertexArray(),s=l(e.shaderProgram)?e.shaderProgram:nwe(o,e.fragmentShaderSource),a=twe(o,t),c=iwe(n,i),u=e.uniformMap,f=ewe;f.framebuffer=a,f.renderState=c,f.execute(o);let d=Jve;d.vertexArray=r,d.renderState=c,d.shaderProgram=s,d.uniformMap=u,d.framebuffer=a,d.execute(o),a.destroy(),e.persists||(s.destroy(),l(e.vertexArray)&&r.destroy()),l(e.postExecute)&&e.postExecute(t)};U1.prototype.isDestroyed=function(){return!1};U1.prototype.destroy=function(){return ue(this)};var z1=U1;var Cn={BYTE:te.BYTE,UNSIGNED_BYTE:te.UNSIGNED_BYTE,SHORT:te.SHORT,UNSIGNED_SHORT:te.UNSIGNED_SHORT,INT:te.INT,UNSIGNED_INT:te.UNSIGNED_INT,FLOAT:te.FLOAT,DOUBLE:te.DOUBLE};Cn.getSizeInBytes=function(e){switch(e){case Cn.BYTE:return Int8Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_BYTE:return Uint8Array.BYTES_PER_ELEMENT;case Cn.SHORT:return Int16Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_SHORT:return Uint16Array.BYTES_PER_ELEMENT;case Cn.INT:return Int32Array.BYTES_PER_ELEMENT;case Cn.UNSIGNED_INT:return Uint32Array.BYTES_PER_ELEMENT;case Cn.FLOAT:return Float32Array.BYTES_PER_ELEMENT;case Cn.DOUBLE:return Float64Array.BYTES_PER_ELEMENT}};Cn.fromTypedArray=function(e){if(e instanceof Int8Array)return Cn.BYTE;if(e instanceof Uint8Array)return Cn.UNSIGNED_BYTE;if(e instanceof Int16Array)return Cn.SHORT;if(e instanceof Uint16Array)return Cn.UNSIGNED_SHORT;if(e instanceof Int32Array)return Cn.INT;if(e instanceof Uint32Array)return Cn.UNSIGNED_INT;if(e instanceof Float32Array)return Cn.FLOAT;if(e instanceof Float64Array)return Cn.DOUBLE};Cn.validate=function(e){return l(e)&&(e===Cn.BYTE||e===Cn.UNSIGNED_BYTE||e===Cn.SHORT||e===Cn.UNSIGNED_SHORT||e===Cn.INT||e===Cn.UNSIGNED_INT||e===Cn.FLOAT||e===Cn.DOUBLE)};Cn.createTypedArray=function(e,t){switch(e){case Cn.BYTE:return new Int8Array(t);case Cn.UNSIGNED_BYTE:return new Uint8Array(t);case Cn.SHORT:return new Int16Array(t);case Cn.UNSIGNED_SHORT:return new Uint16Array(t);case Cn.INT:return new Int32Array(t);case Cn.UNSIGNED_INT:return new Uint32Array(t);case Cn.FLOAT:return new Float32Array(t);case Cn.DOUBLE:return new Float64Array(t)}};Cn.createArrayBufferView=function(e,t,n,i){switch(n=y(n,0),i=y(i,(t.byteLength-n)/Cn.getSizeInBytes(e)),e){case Cn.BYTE:return new Int8Array(t,n,i);case Cn.UNSIGNED_BYTE:return new Uint8Array(t,n,i);case Cn.SHORT:return new Int16Array(t,n,i);case Cn.UNSIGNED_SHORT:return new Uint16Array(t,n,i);case Cn.INT:return new Int32Array(t,n,i);case Cn.UNSIGNED_INT:return new Uint32Array(t,n,i);case Cn.FLOAT:return new Float32Array(t,n,i);case Cn.DOUBLE:return new Float64Array(t,n,i)}};Cn.fromName=function(e){switch(e){case"BYTE":return Cn.BYTE;case"UNSIGNED_BYTE":return Cn.UNSIGNED_BYTE;case"SHORT":return Cn.SHORT;case"UNSIGNED_SHORT":return Cn.UNSIGNED_SHORT;case"INT":return Cn.INT;case"UNSIGNED_INT":return Cn.UNSIGNED_INT;case"FLOAT":return Cn.FLOAT;case"DOUBLE":return Cn.DOUBLE}};var X=Object.freeze(Cn);var owe={NONE:0,TRIANGLES:1,LINES:2,POLYLINES:3},ed=Object.freeze(owe);function M5(e){e=y(e,y.EMPTY_OBJECT),this.attributes=e.attributes,this.indices=e.indices,this.primitiveType=y(e.primitiveType,Le.TRIANGLES),this.boundingSphere=e.boundingSphere,this.geometryType=y(e.geometryType,ed.NONE),this.boundingSphereCV=e.boundingSphereCV,this.offsetAttribute=e.offsetAttribute}M5.computeNumberOfVertices=function(e){let t=-1;for(let n in e.attributes)if(e.attributes.hasOwnProperty(n)&&l(e.attributes[n])&&l(e.attributes[n].values)){let i=e.attributes[n];t=i.values.length/i.componentsPerAttribute}return t};var rwe=new fe,swe=new h,iJ=new F,awe=[new fe,new fe,new fe],cwe=[new U,new U,new U],lwe=[new U,new U,new U],uwe=new h,fwe=new Me,dwe=new F,hwe=new Bi;M5._textureCoordinateRotationPoints=function(e,t,n,i){let o,r=re.center(i,rwe),s=fe.toCartesian(r,n,swe),a=Nt.eastNorthUpToFixedFrame(s,n,iJ),c=F.inverse(a,iJ),u=cwe,f=awe;f[0].longitude=i.west,f[0].latitude=i.south,f[1].longitude=i.west,f[1].latitude=i.north,f[2].longitude=i.east,f[2].latitude=i.south;let d=uwe;for(o=0;o<3;o++)fe.toCartesian(f[o],n,d),d=F.multiplyByPointAsVector(c,d,d),u[o].x=d.x,u[o].y=d.y;let p=Me.fromAxisAngle(h.UNIT_Z,-t,fwe),g=$.fromQuaternion(p,dwe),m=e.length,x=Number.POSITIVE_INFINITY,b=Number.POSITIVE_INFINITY,T=Number.NEGATIVE_INFINITY,A=Number.NEGATIVE_INFINITY;for(o=0;o<m;o++)d=F.multiplyByPointAsVector(c,e[o],d),d=$.multiplyByVector(g,d,d),x=Math.min(x,d.x),b=Math.min(b,d.y),T=Math.max(T,d.x),A=Math.max(A,d.y);let C=Bi.fromRotation(t,hwe),S=lwe;S[0].x=x,S[0].y=b,S[1].x=x,S[1].y=A,S[2].x=T,S[2].y=b;let v=u[0],D=u[2].x-v.x,O=u[1].y-v.y;for(o=0;o<3;o++){let E=S[o];Bi.multiplyByVector(C,E,E),E.x=(E.x-v.x)/D,E.y=(E.y-v.y)/O}let R=S[0],M=S[1],L=S[2],_=new Array(6);return U.pack(R,_),U.pack(M,_,2),U.pack(L,_,4),_};var ft=M5;function mwe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.values=e.values}var Se=mwe;function pT(e,t,n,i,o){this._format=e,this._datatype=t,this._width=n,this._height=i,this._buffer=o}Object.defineProperties(pT.prototype,{internalFormat:{get:function(){return this._format}},pixelDatatype:{get:function(){return this._datatype}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},bufferView:{get:function(){return this._buffer}},arrayBufferView:{get:function(){return this._buffer}}});pT.clone=function(e){if(l(e))return new pT(e._format,e._datatype,e._width,e._height,e._buffer)};pT.prototype.clone=function(){return pT.clone(this)};var H1=pT;var oJ=Er(zl(),1);function rJ(){if(!l(Xs._canTransferArrayBuffer)){let e=F5("transferTypedArrayTest");e.postMessage=y(e.webkitPostMessage,e.postMessage);let t=99,n=new Int8Array([t]);try{e.postMessage({array:n},[n.buffer])}catch{return Xs._canTransferArrayBuffer=!1,Xs._canTransferArrayBuffer}Xs._canTransferArrayBuffer=new Promise(i=>{e.onmessage=function(o){let r=o.data.array,s=l(r)&&r[0]===t;i(s),e.terminate(),Xs._canTransferArrayBuffer=s}})}return Xs._canTransferArrayBuffer}var N5=new me;function L5(e){let t;try{t=new Blob([e],{type:"application/javascript"})}catch{let o=window.BlobBuilder||window.WebKitBlobBuilder||window.MozBlobBuilder||window.MSBlobBuilder,r=new o;r.append(e),t=r.getBlob("application/javascript")}return(window.URL||window.webkitURL).createObjectURL(t)}function F5(e){let t=new oJ.default(e),n=t.scheme().length!==0&&t.fragment().length===0,i=e.replace(/\.js$/,""),o={},r,s;if(y0(e))s=e;else if(!n){let a=nn(`${Xs._workerModulePrefix}/${i}.js`);y0(a)&&(s=a)}if(s){let a=`import "${s}";`;return r=L5(a),o.type="module",new Worker(r,o)}if(!n&&typeof CESIUM_WORKERS<"u"){let a=` + importScripts("${L5(CESIUM_WORKERS)}"); + CesiumWorkers["${i}"](); + `;return r=L5(a),new Worker(r,o)}if(r=e,n||(r=nn(`${Xs._workerModulePrefix+i}.js`)),!jt.supportsEsmWebWorkers())throw new ce("This browser is not supported. Please update your browser to continue.");return o.type="module",new Worker(r,o)}async function pwe(e,t){let n={modulePath:void 0,wasmBinaryFile:void 0,wasmBinary:void 0};if(!jt.supportsWebAssembly()){if(!l(t.fallbackModulePath))throw new ce(`This browser does not support Web Assembly, and no backup module was provided for ${e._workerPath}`);return n.modulePath=nn(t.fallbackModulePath),n}n.wasmBinaryFile=nn(t.wasmBinaryFile);let i=await De.fetchArrayBuffer({url:n.wasmBinaryFile});return n.wasmBinary=i,n}function Xs(e,t){this._workerPath=e,this._maximumActiveTasks=y(t,Number.POSITIVE_INFINITY),this._activeTasks=0,this._nextID=0,this._webAssemblyPromise=void 0}var _we=(e,t,n,i)=>{let o=({data:r})=>{if(r.id===t){if(l(r.error)){let s=r.error;s.name==="RuntimeError"?(s=new ce(r.error.message),s.stack=r.error.stack):s.name==="DeveloperError"?(s=new he(r.error.message),s.stack=r.error.stack):s.name==="Error"&&(s=new Error(r.error.message),s.stack=r.error.stack),N5.raiseEvent(s),i(s)}else N5.raiseEvent(),n(r.result);e.removeEventListener("message",o)}};return o},gwe=[];async function ywe(e,t,n){let i=await Promise.resolve(rJ());l(n)?i||(n.length=0):n=gwe;let o=e._nextID++,r=new Promise((s,a)=>{e._worker.addEventListener("message",_we(e._worker,o,s,a))});return e._worker.postMessage({id:o,baseUrl:nn.getCesiumBaseUrl().url,parameters:t,canTransferArrayBuffer:i},n),r}async function xwe(e,t,n){++e._activeTasks;try{let i=await ywe(e,t,n);return--e._activeTasks,i}catch(i){throw--e._activeTasks,i}}Xs.prototype.scheduleTask=function(e,t){if(l(this._worker)||(this._worker=F5(this._workerPath)),!(this._activeTasks>=this._maximumActiveTasks))return xwe(this,e,t)};Xs.prototype.initWebAssemblyModule=async function(e){if(l(this._webAssemblyPromise))return this._webAssemblyPromise;let t=async()=>{let n=this._worker=F5(this._workerPath),i=await pwe(this,e),o=await Promise.resolve(rJ()),r,s=i.wasmBinary;l(s)&&o&&(r=[s]);let a=new Promise((c,u)=>{n.onmessage=function({data:f}){l(f)?c(f.result):u(new ce("Could not configure wasm module"))}});return n.postMessage({canTransferArrayBuffer:o,parameters:{webAssemblyConfig:i}},r),a};return this._webAssemblyPromise=t(),this._webAssemblyPromise};Xs.prototype.isDestroyed=function(){return!1};Xs.prototype.destroy=function(){return l(this._worker)&&this._worker.terminate(),ue(this)};Xs.taskCompletedEvent=N5;Xs._defaultWorkerModulePrefix="Workers/";Xs._workerModulePrefix=Xs._defaultWorkerModulePrefix;Xs._canTransferArrayBuffer=void 0;var _i=Xs;function Qm(){}Qm._transcodeTaskProcessor=new _i("transcodeKTX2",Number.POSITIVE_INFINITY);Qm._readyPromise=void 0;function bwe(){let e=Qm._transcodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/basis_transcoder.wasm"}).then(function(t){if(t)return Qm._transcodeTaskProcessor;throw new ce("KTX2 transcoder could not be initialized.")});Qm._readyPromise=e}Qm.transcode=function(e,t){return l(Qm._readyPromise)||bwe(),Qm._readyPromise.then(function(n){let i=e;e instanceof ArrayBuffer&&(i=new Uint8Array(e));let o={supportedTargetFormats:t,ktx2Buffer:i};return n.scheduleTask(o,[i.buffer])}).then(function(n){let i=n.length,o=Object.keys(n[0]);for(let r=0;r<i;r++){let s=n[r];for(let a=0;a<o.length;a++){let c=s[o[a]];s[o[a]]=new H1(c.internalFormat,c.datatype,c.width,c.height,c.levelBuffer)}}if(o.length===1){for(let r=0;r<i;++r)n[r]=n[r][o[0]];i===1&&(n=n[0])}return n}).catch(function(n){throw n})};var G1=Qm;var sJ;aJ.setKTX2SupportedFormats=function(e,t,n,i,o,r){sJ={s3tc:e,pvrtc:t,astc:n,etc:i,etc1:o,bc7:r}};function aJ(e){let t;return e instanceof ArrayBuffer||ArrayBuffer.isView(e)?t=Promise.resolve(e):t=De.createIfNeeded(e).fetchArrayBuffer(),t.then(function(n){return G1.transcode(n,sJ)})}var Gl=aJ;function Twe(e,t){this.start=y(e,0),this.stop=y(t,0)}var Ha=Twe;function fn(e,t){this.center=h.clone(y(e,h.ZERO)),this.radius=y(t,0)}var V5=new h,U5=new h,z5=new h,H5=new h,G5=new h,W5=new h,j5=new h,Ks=new h,q5=new h,Y5=new h,X5=new h,K5=new h,Awe=4/3*P.PI;fn.fromPoints=function(e,t){if(l(t)||(t=new fn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=h.clone(e[0],j5),i=h.clone(n,V5),o=h.clone(n,U5),r=h.clone(n,z5),s=h.clone(n,H5),a=h.clone(n,G5),c=h.clone(n,W5),u=e.length,f;for(f=1;f<u;f++){h.clone(e[f],n);let R=n.x,M=n.y,L=n.z;R<i.x&&h.clone(n,i),R>s.x&&h.clone(n,s),M<o.y&&h.clone(n,o),M>a.y&&h.clone(n,a),L<r.z&&h.clone(n,r),L>c.z&&h.clone(n,c)}let d=h.magnitudeSquared(h.subtract(s,i,Ks)),p=h.magnitudeSquared(h.subtract(a,o,Ks)),g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=i,x=s,b=d;p>b&&(b=p,m=o,x=a),g>b&&(b=g,m=r,x=c);let T=q5;T.x=(m.x+x.x)*.5,T.y=(m.y+x.y)*.5,T.z=(m.z+x.z)*.5;let A=h.magnitudeSquared(h.subtract(x,T,Ks)),C=Math.sqrt(A),S=Y5;S.x=i.x,S.y=o.y,S.z=r.z;let v=X5;v.x=s.x,v.y=a.y,v.z=c.z;let D=h.midpoint(S,v,K5),O=0;for(f=0;f<u;f++){h.clone(e[f],n);let R=h.magnitude(h.subtract(n,D,Ks));R>O&&(O=R);let M=h.magnitudeSquared(h.subtract(n,T,Ks));if(M>A){let L=Math.sqrt(M);C=(C+L)*.5,A=C*C;let _=L-C;T.x=(C*T.x+_*n.x)/L,T.y=(C*T.y+_*n.y)/L,T.z=(C*T.z+_*n.z)/L}}return C<O?(h.clone(T,t.center),t.radius=C):(h.clone(D,t.center),t.radius=O),t};var cJ=new wi,Cwe=new h,Ewe=new h,B5=new fe,k5=new fe;fn.fromRectangle2D=function(e,t,n){return fn.fromRectangleWithHeights2D(e,t,0,0,n)};fn.fromRectangleWithHeights2D=function(e,t,n,i,o){if(l(o)||(o=new fn),!l(e))return o.center=h.clone(h.ZERO,o.center),o.radius=0,o;cJ._ellipsoid=ee.default,t=y(t,cJ),re.southwest(e,B5),B5.height=n,re.northeast(e,k5),k5.height=i;let r=t.project(B5,Cwe),s=t.project(k5,Ewe),a=s.x-r.x,c=s.y-r.y,u=s.z-r.z;o.radius=Math.sqrt(a*a+c*c+u*u)*.5;let f=o.center;return f.x=r.x+a*.5,f.y=r.y+c*.5,f.z=r.z+u*.5,o};var Swe=[];fn.fromRectangle3D=function(e,t,n,i){if(t=y(t,ee.default),n=y(n,0),l(i)||(i=new fn),!l(e))return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;let o=re.subsample(e,t,n,Swe);return fn.fromPoints(o,i)};fn.fromVertices=function(e,t,n,i){if(l(i)||(i=new fn),!l(e)||e.length===0)return i.center=h.clone(h.ZERO,i.center),i.radius=0,i;t=y(t,h.ZERO),n=y(n,3);let o=j5;o.x=e[0]+t.x,o.y=e[1]+t.y,o.z=e[2]+t.z;let r=h.clone(o,V5),s=h.clone(o,U5),a=h.clone(o,z5),c=h.clone(o,H5),u=h.clone(o,G5),f=h.clone(o,W5),d=e.length,p;for(p=0;p<d;p+=n){let L=e[p]+t.x,_=e[p+1]+t.y,E=e[p+2]+t.z;o.x=L,o.y=_,o.z=E,L<r.x&&h.clone(o,r),L>c.x&&h.clone(o,c),_<s.y&&h.clone(o,s),_>u.y&&h.clone(o,u),E<a.z&&h.clone(o,a),E>f.z&&h.clone(o,f)}let g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=h.magnitudeSquared(h.subtract(u,s,Ks)),x=h.magnitudeSquared(h.subtract(f,a,Ks)),b=r,T=c,A=g;m>A&&(A=m,b=s,T=u),x>A&&(A=x,b=a,T=f);let C=q5;C.x=(b.x+T.x)*.5,C.y=(b.y+T.y)*.5,C.z=(b.z+T.z)*.5;let S=h.magnitudeSquared(h.subtract(T,C,Ks)),v=Math.sqrt(S),D=Y5;D.x=r.x,D.y=s.y,D.z=a.z;let O=X5;O.x=c.x,O.y=u.y,O.z=f.z;let R=h.midpoint(D,O,K5),M=0;for(p=0;p<d;p+=n){o.x=e[p]+t.x,o.y=e[p+1]+t.y,o.z=e[p+2]+t.z;let L=h.magnitude(h.subtract(o,R,Ks));L>M&&(M=L);let _=h.magnitudeSquared(h.subtract(o,C,Ks));if(_>S){let E=Math.sqrt(_);v=(v+E)*.5,S=v*v;let w=E-v;C.x=(v*C.x+w*o.x)/E,C.y=(v*C.y+w*o.y)/E,C.z=(v*C.z+w*o.z)/E}}return v<M?(h.clone(C,i.center),i.radius=v):(h.clone(R,i.center),i.radius=M),i};fn.fromEncodedCartesianVertices=function(e,t,n){if(l(n)||(n=new fn),!l(e)||!l(t)||e.length!==t.length||e.length===0)return n.center=h.clone(h.ZERO,n.center),n.radius=0,n;let i=j5;i.x=e[0]+t[0],i.y=e[1]+t[1],i.z=e[2]+t[2];let o=h.clone(i,V5),r=h.clone(i,U5),s=h.clone(i,z5),a=h.clone(i,H5),c=h.clone(i,G5),u=h.clone(i,W5),f=e.length,d;for(d=0;d<f;d+=3){let M=e[d]+t[d],L=e[d+1]+t[d+1],_=e[d+2]+t[d+2];i.x=M,i.y=L,i.z=_,M<o.x&&h.clone(i,o),M>a.x&&h.clone(i,a),L<r.y&&h.clone(i,r),L>c.y&&h.clone(i,c),_<s.z&&h.clone(i,s),_>u.z&&h.clone(i,u)}let p=h.magnitudeSquared(h.subtract(a,o,Ks)),g=h.magnitudeSquared(h.subtract(c,r,Ks)),m=h.magnitudeSquared(h.subtract(u,s,Ks)),x=o,b=a,T=p;g>T&&(T=g,x=r,b=c),m>T&&(T=m,x=s,b=u);let A=q5;A.x=(x.x+b.x)*.5,A.y=(x.y+b.y)*.5,A.z=(x.z+b.z)*.5;let C=h.magnitudeSquared(h.subtract(b,A,Ks)),S=Math.sqrt(C),v=Y5;v.x=o.x,v.y=r.y,v.z=s.z;let D=X5;D.x=a.x,D.y=c.y,D.z=u.z;let O=h.midpoint(v,D,K5),R=0;for(d=0;d<f;d+=3){i.x=e[d]+t[d],i.y=e[d+1]+t[d+1],i.z=e[d+2]+t[d+2];let M=h.magnitude(h.subtract(i,O,Ks));M>R&&(R=M);let L=h.magnitudeSquared(h.subtract(i,A,Ks));if(L>C){let _=Math.sqrt(L);S=(S+_)*.5,C=S*S;let E=_-S;A.x=(S*A.x+E*i.x)/_,A.y=(S*A.y+E*i.y)/_,A.z=(S*A.z+E*i.z)/_}}return S<R?(h.clone(A,n.center),n.radius=S):(h.clone(O,n.center),n.radius=R),n};fn.fromCornerPoints=function(e,t,n){l(n)||(n=new fn);let i=h.midpoint(e,t,n.center);return n.radius=h.distance(i,t),n};fn.fromEllipsoid=function(e,t){return l(t)||(t=new fn),h.clone(h.ZERO,t.center),t.radius=e.maximumRadius,t};var vwe=new h;fn.fromBoundingSpheres=function(e,t){if(l(t)||(t=new fn),!l(e)||e.length===0)return t.center=h.clone(h.ZERO,t.center),t.radius=0,t;let n=e.length;if(n===1)return fn.clone(e[0],t);if(n===2)return fn.union(e[0],e[1],t);let i=[],o;for(o=0;o<n;o++)i.push(e[o].center);t=fn.fromPoints(i,t);let r=t.center,s=t.radius;for(o=0;o<n;o++){let a=e[o];s=Math.max(s,h.distance(r,a.center,vwe)+a.radius)}return t.radius=s,t};var wwe=new h,Dwe=new h,Iwe=new h;fn.fromOrientedBoundingBox=function(e,t){l(t)||(t=new fn);let n=e.halfAxes,i=$.getColumn(n,0,wwe),o=$.getColumn(n,1,Dwe),r=$.getColumn(n,2,Iwe);return h.add(i,o,i),h.add(i,r,i),t.center=h.clone(e.center,t.center),t.radius=h.magnitude(i),t};var Pwe=new h,Rwe=new h;fn.fromTransformation=function(e,t){l(t)||(t=new fn);let n=F.getTranslation(e,Pwe),i=F.getScale(e,Rwe),o=.5*h.magnitude(i);return t.center=h.clone(n,t.center),t.radius=o,t};fn.clone=function(e,t){if(l(e))return l(t)?(t.center=h.clone(e.center,t.center),t.radius=e.radius,t):new fn(e.center,e.radius)};fn.packedLength=4;fn.pack=function(e,t,n){n=y(n,0);let i=e.center;return t[n++]=i.x,t[n++]=i.y,t[n++]=i.z,t[n]=e.radius,t};fn.unpack=function(e,t,n){t=y(t,0),l(n)||(n=new fn);let i=n.center;return i.x=e[t++],i.y=e[t++],i.z=e[t++],n.radius=e[t],n};var Owe=new h,Mwe=new h;fn.union=function(e,t,n){l(n)||(n=new fn);let i=e.center,o=e.radius,r=t.center,s=t.radius,a=h.subtract(r,i,Owe),c=h.magnitude(a);if(o>=c+s)return e.clone(n),n;if(s>=c+o)return t.clone(n),n;let u=(o+c+s)*.5,f=h.multiplyByScalar(a,(-o+u)/c,Mwe);return h.add(f,i,f),h.clone(f,n.center),n.radius=u,n};var Lwe=new h;fn.expand=function(e,t,n){n=fn.clone(e,n);let i=h.magnitude(h.subtract(t,n.center,Lwe));return i>n.radius&&(n.radius=i),n};fn.intersectPlane=function(e,t){let n=e.center,i=e.radius,o=t.normal,r=h.dot(o,n)+t.distance;return r<-i?Yt.OUTSIDE:r<i?Yt.INTERSECTING:Yt.INSIDE};fn.transform=function(e,t,n){return l(n)||(n=new fn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=F.getMaximumScale(t)*e.radius,n};var Nwe=new h;fn.distanceSquaredTo=function(e,t){let n=h.subtract(e.center,t,Nwe),i=h.magnitude(n)-e.radius;return i<=0?0:i*i};fn.transformWithoutScale=function(e,t,n){return l(n)||(n=new fn),n.center=F.multiplyByPoint(t,e.center,n.center),n.radius=e.radius,n};var Fwe=new h;fn.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Ha);let o=h.subtract(e.center,t,Fwe),r=h.dot(n,o);return i.start=r-e.radius,i.stop=r+e.radius,i};var lJ=new h,Bwe=new h,kwe=new h,Vwe=new h,Uwe=new h,zwe=new fe,fJ=new Array(8);for(let e=0;e<8;++e)fJ[e]=new h;var uJ=new wi;fn.projectTo2D=function(e,t,n){uJ._ellipsoid=ee.default,t=y(t,uJ);let i=t.ellipsoid,o=e.center,r=e.radius,s;h.equals(o,h.ZERO)?s=h.clone(h.UNIT_X,lJ):s=i.geodeticSurfaceNormal(o,lJ);let a=h.cross(h.UNIT_Z,s,Bwe);h.normalize(a,a);let c=h.cross(s,a,kwe);h.normalize(c,c),h.multiplyByScalar(s,r,s),h.multiplyByScalar(c,r,c),h.multiplyByScalar(a,r,a);let u=h.negate(c,Uwe),f=h.negate(a,Vwe),d=fJ,p=d[0];h.add(s,c,p),h.add(p,a,p),p=d[1],h.add(s,c,p),h.add(p,f,p),p=d[2],h.add(s,u,p),h.add(p,f,p),p=d[3],h.add(s,u,p),h.add(p,a,p),h.negate(s,s),p=d[4],h.add(s,c,p),h.add(p,a,p),p=d[5],h.add(s,c,p),h.add(p,f,p),p=d[6],h.add(s,u,p),h.add(p,f,p),p=d[7],h.add(s,u,p),h.add(p,a,p);let g=d.length;for(let T=0;T<g;++T){let A=d[T];h.add(o,A,A);let C=i.cartesianToCartographic(A,zwe);t.project(C,A)}n=fn.fromPoints(d,n),o=n.center;let m=o.x,x=o.y,b=o.z;return o.x=b,o.y=m,o.z=x,n};fn.isOccluded=function(e,t){return!t.isBoundingSphereVisible(e)};fn.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&e.radius===t.radius};fn.prototype.intersectPlane=function(e){return fn.intersectPlane(this,e)};fn.prototype.distanceSquaredTo=function(e){return fn.distanceSquaredTo(this,e)};fn.prototype.computePlaneDistances=function(e,t,n){return fn.computePlaneDistances(this,e,t,n)};fn.prototype.isOccluded=function(e){return fn.isOccluded(this,e)};fn.prototype.equals=function(e){return fn.equals(this,e)};fn.prototype.clone=function(e){return fn.clone(this,e)};fn.prototype.volume=function(){let e=this.radius;return Awe*e*e*e};var se=fn;function Hwe(e){e=y(e,y.EMPTY_OBJECT),this.position=e.position,this.normal=e.normal,this.st=e.st,this.bitangent=e.bitangent,this.tangent=e.tangent,this.color=e.color}var dn=Hwe;var Gwe={NONE:0,TOP:1,ALL:2},sn=Object.freeze(Gwe);function es(e){e=y(e,y.EMPTY_OBJECT),this.position=y(e.position,!1),this.normal=y(e.normal,!1),this.st=y(e.st,!1),this.bitangent=y(e.bitangent,!1),this.tangent=y(e.tangent,!1),this.color=y(e.color,!1)}es.POSITION_ONLY=Object.freeze(new es({position:!0}));es.POSITION_AND_NORMAL=Object.freeze(new es({position:!0,normal:!0}));es.POSITION_NORMAL_AND_ST=Object.freeze(new es({position:!0,normal:!0,st:!0}));es.POSITION_AND_ST=Object.freeze(new es({position:!0,st:!0}));es.POSITION_AND_COLOR=Object.freeze(new es({position:!0,color:!0}));es.ALL=Object.freeze(new es({position:!0,normal:!0,st:!0,tangent:!0,bitangent:!0}));es.DEFAULT=es.POSITION_NORMAL_AND_ST;es.packedLength=6;es.pack=function(e,t,n){return n=y(n,0),t[n++]=e.position?1:0,t[n++]=e.normal?1:0,t[n++]=e.st?1:0,t[n++]=e.tangent?1:0,t[n++]=e.bitangent?1:0,t[n]=e.color?1:0,t};es.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new es),n.position=e[t++]===1,n.normal=e[t++]===1,n.st=e[t++]===1,n.tangent=e[t++]===1,n.bitangent=e[t++]===1,n.color=e[t]===1,n};es.clone=function(e,t){if(l(e))return l(t)||(t=new es),t.position=e.position,t.normal=e.normal,t.st=e.st,t.tangent=e.tangent,t.bitangent=e.bitangent,t.color=e.color,t};var Pe=es;var Wwe=new h;function Wl(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum,i=y(e.vertexFormat,Pe.DEFAULT);this._minimum=h.clone(t),this._maximum=h.clone(n),this._vertexFormat=i,this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxGeometry"}Wl.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new Wl({minimum:h.negate(n,new h),maximum:n,vertexFormat:e.vertexFormat,offsetAttribute:e.offsetAttribute})};Wl.fromAxisAlignedBoundingBox=function(e){return new Wl({minimum:e.minimum,maximum:e.maximum})};Wl.packedLength=2*h.packedLength+Pe.packedLength+1;Wl.pack=function(e,t,n){return n=y(n,0),h.pack(e._minimum,t,n),h.pack(e._maximum,t,n+h.packedLength),Pe.pack(e._vertexFormat,t,n+2*h.packedLength),t[n+2*h.packedLength+Pe.packedLength]=y(e._offsetAttribute,-1),t};var hJ=new h,mJ=new h,pJ=new Pe,dJ={minimum:hJ,maximum:mJ,vertexFormat:pJ,offsetAttribute:void 0};Wl.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,hJ),o=h.unpack(e,t+h.packedLength,mJ),r=Pe.unpack(e,t+2*h.packedLength,pJ),s=e[t+2*h.packedLength+Pe.packedLength];return l(n)?(n._minimum=h.clone(i,n._minimum),n._maximum=h.clone(o,n._maximum),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._offsetAttribute=s===-1?void 0:s,n):(dJ.offsetAttribute=s===-1?void 0:s,new Wl(dJ))};Wl.createGeometry=function(e){let t=e._minimum,n=e._maximum,i=e._vertexFormat;if(h.equals(t,n))return;let o=new dn,r,s;if(i.position&&(i.st||i.normal||i.tangent||i.bitangent)){if(i.position&&(s=new Float64Array(6*4*3),s[0]=t.x,s[1]=t.y,s[2]=n.z,s[3]=n.x,s[4]=t.y,s[5]=n.z,s[6]=n.x,s[7]=n.y,s[8]=n.z,s[9]=t.x,s[10]=n.y,s[11]=n.z,s[12]=t.x,s[13]=t.y,s[14]=t.z,s[15]=n.x,s[16]=t.y,s[17]=t.z,s[18]=n.x,s[19]=n.y,s[20]=t.z,s[21]=t.x,s[22]=n.y,s[23]=t.z,s[24]=n.x,s[25]=t.y,s[26]=t.z,s[27]=n.x,s[28]=n.y,s[29]=t.z,s[30]=n.x,s[31]=n.y,s[32]=n.z,s[33]=n.x,s[34]=t.y,s[35]=n.z,s[36]=t.x,s[37]=t.y,s[38]=t.z,s[39]=t.x,s[40]=n.y,s[41]=t.z,s[42]=t.x,s[43]=n.y,s[44]=n.z,s[45]=t.x,s[46]=t.y,s[47]=n.z,s[48]=t.x,s[49]=n.y,s[50]=t.z,s[51]=n.x,s[52]=n.y,s[53]=t.z,s[54]=n.x,s[55]=n.y,s[56]=n.z,s[57]=t.x,s[58]=n.y,s[59]=n.z,s[60]=t.x,s[61]=t.y,s[62]=t.z,s[63]=n.x,s[64]=t.y,s[65]=t.z,s[66]=n.x,s[67]=t.y,s[68]=n.z,s[69]=t.x,s[70]=t.y,s[71]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})),i.normal){let u=new Float32Array(72);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=0,u[5]=1,u[6]=0,u[7]=0,u[8]=1,u[9]=0,u[10]=0,u[11]=1,u[12]=0,u[13]=0,u[14]=-1,u[15]=0,u[16]=0,u[17]=-1,u[18]=0,u[19]=0,u[20]=-1,u[21]=0,u[22]=0,u[23]=-1,u[24]=1,u[25]=0,u[26]=0,u[27]=1,u[28]=0,u[29]=0,u[30]=1,u[31]=0,u[32]=0,u[33]=1,u[34]=0,u[35]=0,u[36]=-1,u[37]=0,u[38]=0,u[39]=-1,u[40]=0,u[41]=0,u[42]=-1,u[43]=0,u[44]=0,u[45]=-1,u[46]=0,u[47]=0,u[48]=0,u[49]=1,u[50]=0,u[51]=0,u[52]=1,u[53]=0,u[54]=0,u[55]=1,u[56]=0,u[57]=0,u[58]=1,u[59]=0,u[60]=0,u[61]=-1,u[62]=0,u[63]=0,u[64]=-1,u[65]=0,u[66]=0,u[67]=-1,u[68]=0,u[69]=0,u[70]=-1,u[71]=0,o.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.st){let u=new Float32Array(48);u[0]=0,u[1]=0,u[2]=1,u[3]=0,u[4]=1,u[5]=1,u[6]=0,u[7]=1,u[8]=1,u[9]=0,u[10]=0,u[11]=0,u[12]=0,u[13]=1,u[14]=1,u[15]=1,u[16]=0,u[17]=0,u[18]=1,u[19]=0,u[20]=1,u[21]=1,u[22]=0,u[23]=1,u[24]=1,u[25]=0,u[26]=0,u[27]=0,u[28]=0,u[29]=1,u[30]=1,u[31]=1,u[32]=1,u[33]=0,u[34]=0,u[35]=0,u[36]=0,u[37]=1,u[38]=1,u[39]=1,u[40]=0,u[41]=0,u[42]=1,u[43]=0,u[44]=1,u[45]=1,u[46]=0,u[47]=1,o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:u})}if(i.tangent){let u=new Float32Array(72);u[0]=1,u[1]=0,u[2]=0,u[3]=1,u[4]=0,u[5]=0,u[6]=1,u[7]=0,u[8]=0,u[9]=1,u[10]=0,u[11]=0,u[12]=-1,u[13]=0,u[14]=0,u[15]=-1,u[16]=0,u[17]=0,u[18]=-1,u[19]=0,u[20]=0,u[21]=-1,u[22]=0,u[23]=0,u[24]=0,u[25]=1,u[26]=0,u[27]=0,u[28]=1,u[29]=0,u[30]=0,u[31]=1,u[32]=0,u[33]=0,u[34]=1,u[35]=0,u[36]=0,u[37]=-1,u[38]=0,u[39]=0,u[40]=-1,u[41]=0,u[42]=0,u[43]=-1,u[44]=0,u[45]=0,u[46]=-1,u[47]=0,u[48]=-1,u[49]=0,u[50]=0,u[51]=-1,u[52]=0,u[53]=0,u[54]=-1,u[55]=0,u[56]=0,u[57]=-1,u[58]=0,u[59]=0,u[60]=1,u[61]=0,u[62]=0,u[63]=1,u[64]=0,u[65]=0,u[66]=1,u[67]=0,u[68]=0,u[69]=1,u[70]=0,u[71]=0,o.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}if(i.bitangent){let u=new Float32Array(72);u[0]=0,u[1]=1,u[2]=0,u[3]=0,u[4]=1,u[5]=0,u[6]=0,u[7]=1,u[8]=0,u[9]=0,u[10]=1,u[11]=0,u[12]=0,u[13]=1,u[14]=0,u[15]=0,u[16]=1,u[17]=0,u[18]=0,u[19]=1,u[20]=0,u[21]=0,u[22]=1,u[23]=0,u[24]=0,u[25]=0,u[26]=1,u[27]=0,u[28]=0,u[29]=1,u[30]=0,u[31]=0,u[32]=1,u[33]=0,u[34]=0,u[35]=1,u[36]=0,u[37]=0,u[38]=1,u[39]=0,u[40]=0,u[41]=1,u[42]=0,u[43]=0,u[44]=1,u[45]=0,u[46]=0,u[47]=1,u[48]=0,u[49]=0,u[50]=1,u[51]=0,u[52]=0,u[53]=1,u[54]=0,u[55]=0,u[56]=1,u[57]=0,u[58]=0,u[59]=1,u[60]=0,u[61]=0,u[62]=1,u[63]=0,u[64]=0,u[65]=1,u[66]=0,u[67]=0,u[68]=1,u[69]=0,u[70]=0,u[71]=1,o.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:u})}r=new Uint16Array(6*2*3),r[0]=0,r[1]=1,r[2]=2,r[3]=0,r[4]=2,r[5]=3,r[6]=6,r[7]=5,r[8]=4,r[9]=7,r[10]=6,r[11]=4,r[12]=8,r[13]=9,r[14]=10,r[15]=8,r[16]=10,r[17]=11,r[18]=14,r[19]=13,r[20]=12,r[21]=15,r[22]=14,r[23]=12,r[24]=18,r[25]=17,r[26]=16,r[27]=19,r[28]=18,r[29]=16,r[30]=20,r[31]=21,r[32]=22,r[33]=20,r[34]=22,r[35]=23}else s=new Float64Array(8*3),s[0]=t.x,s[1]=t.y,s[2]=t.z,s[3]=n.x,s[4]=t.y,s[5]=t.z,s[6]=n.x,s[7]=n.y,s[8]=t.z,s[9]=t.x,s[10]=n.y,s[11]=t.z,s[12]=t.x,s[13]=t.y,s[14]=n.z,s[15]=n.x,s[16]=t.y,s[17]=n.z,s[18]=n.x,s[19]=n.y,s[20]=n.z,s[21]=t.x,s[22]=n.y,s[23]=n.z,o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s}),r=new Uint16Array(6*2*3),r[0]=4,r[1]=5,r[2]=6,r[3]=4,r[4]=6,r[5]=7,r[6]=1,r[7]=0,r[8]=3,r[9]=1,r[10]=3,r[11]=2,r[12]=1,r[13]=6,r[14]=5,r[15]=1,r[16]=2,r[17]=6,r[18]=2,r[19]=3,r[20]=7,r[21]=2,r[22]=7,r[23]=6,r[24]=3,r[25]=0,r[26]=4,r[27]=3,r[28]=4,r[29]=7,r[30]=0,r[31]=1,r[32]=5,r[33]=0,r[34]=5,r[35]=4;let a=h.subtract(n,t,Wwe),c=h.magnitude(a)*.5;if(l(e._offsetAttribute)){let u=s.length,f=e._offsetAttribute===sn.NONE?0:1,d=new Uint8Array(u/3).fill(f);o.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return new ft({attributes:o,indices:r,primitiveType:Le.TRIANGLES,boundingSphere:new se(h.ZERO,c),offsetAttribute:e._offsetAttribute})};var Z5;Wl.getUnitBox=function(){return l(Z5)||(Z5=Wl.createGeometry(Wl.fromDimensions({dimensions:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),Z5};var Ga=Wl;var Ki={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4"};Ki.getMathType=function(e){switch(e){case Ki.SCALAR:return Number;case Ki.VEC2:return U;case Ki.VEC3:return h;case Ki.VEC4:return oe;case Ki.MAT2:return Bi;case Ki.MAT3:return $;case Ki.MAT4:return F}};Ki.getNumberOfComponents=function(e){switch(e){case Ki.SCALAR:return 1;case Ki.VEC2:return 2;case Ki.VEC3:return 3;case Ki.VEC4:case Ki.MAT2:return 4;case Ki.MAT3:return 9;case Ki.MAT4:return 16}};Ki.getAttributeLocationCount=function(e){switch(e){case Ki.SCALAR:case Ki.VEC2:case Ki.VEC3:case Ki.VEC4:return 1;case Ki.MAT2:return 2;case Ki.MAT3:return 3;case Ki.MAT4:return 4}};Ki.getGlslType=function(e){switch(e){case Ki.SCALAR:return"float";case Ki.VEC2:return"vec2";case Ki.VEC3:return"vec3";case Ki.VEC4:return"vec4";case Ki.MAT2:return"mat2";case Ki.MAT3:return"mat3";case Ki.MAT4:return"mat4"}};var on=Object.freeze(Ki);var _J=1/256,gJ=256,mo={};mo.octEncodeInRange=function(e,t,n){if(n.x=e.x/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),n.y=e.y/(Math.abs(e.x)+Math.abs(e.y)+Math.abs(e.z)),e.z<0){let i=n.x,o=n.y;n.x=(1-Math.abs(o))*P.signNotZero(i),n.y=(1-Math.abs(i))*P.signNotZero(o)}return n.x=P.toSNorm(n.x,t),n.y=P.toSNorm(n.y,t),n};mo.octEncode=function(e,t){return mo.octEncodeInRange(e,255,t)};var jS=new U,yJ=new Uint8Array(1);function W1(e){return yJ[0]=e,yJ[0]}mo.octEncodeToCartesian4=function(e,t){return mo.octEncodeInRange(e,65535,jS),t.x=W1(jS.x*_J),t.y=W1(jS.x),t.z=W1(jS.y*_J),t.w=W1(jS.y),t};mo.octDecodeInRange=function(e,t,n,i){if(i.x=P.fromSNorm(e,n),i.y=P.fromSNorm(t,n),i.z=1-(Math.abs(i.x)+Math.abs(i.y)),i.z<0){let o=i.x;i.x=(1-Math.abs(i.y))*P.signNotZero(o),i.y=(1-Math.abs(o))*P.signNotZero(i.y)}return h.normalize(i,i)};mo.octDecode=function(e,t,n){return mo.octDecodeInRange(e,t,255,n)};mo.octDecodeFromCartesian4=function(e,t){let n=e.x,i=e.y,o=e.z,r=e.w,s=n*gJ+i,a=o*gJ+r;return mo.octDecodeInRange(s,a,65535,t)};mo.octPackFloat=function(e){return 256*e.x+e.y};var Q5=new U;mo.octEncodeFloat=function(e){return mo.octEncode(e,Q5),mo.octPackFloat(Q5)};mo.octDecodeFloat=function(e,t){let n=e/256,i=Math.floor(n),o=(n-i)*256;return mo.octDecode(i,o,t)};mo.octPack=function(e,t,n,i){let o=mo.octEncodeFloat(e),r=mo.octEncodeFloat(t),s=mo.octEncode(n,Q5);return i.x=65536*s.x+o,i.y=65536*s.y+r,i};mo.octUnpack=function(e,t,n,i){let o=e.x/65536,r=Math.floor(o),s=(o-r)*65536;o=e.y/65536;let a=Math.floor(o),c=(o-a)*65536;mo.octDecodeFloat(s,t),mo.octDecodeFloat(c,n),mo.octDecode(r,a,i)};mo.compressTextureCoordinates=function(e){let t=e.x*4095|0,n=e.y*4095|0;return 4096*t+n};mo.decompressTextureCoordinates=function(e,t){let n=e/4096,i=Math.floor(n);return t.x=i/4095,t.y=(e-i*4096)/4095,t};function $5(e){return e>>1^-(e&1)}mo.zigZagDeltaDecode=function(e,t,n){let i=e.length,o=0,r=0,s=0;for(let a=0;a<i;++a)o+=$5(e[a]),r+=$5(t[a]),e[a]=o,t[a]=r,l(n)&&(s+=$5(n[a]),n[a]=s)};mo.dequantize=function(e,t,n,i){let o=on.getNumberOfComponents(n),r;switch(t){case X.BYTE:r=127;break;case X.UNSIGNED_BYTE:r=255;break;case X.SHORT:r=32767;break;case X.UNSIGNED_SHORT:r=65535;break;case X.INT:r=2147483647;break;case X.UNSIGNED_INT:r=4294967295;break}let s=new Float32Array(i*o);for(let a=0;a<i;a++)for(let c=0;c<o;c++){let u=a*o+c;s[u]=Math.max(e[u]/r,-1)}return s};mo.decodeRGB565=function(e,t){let n=e.length;l(t)||(t=new Float32Array(n*3));let i=31,o=63,r=1/31,s=1/63;for(let a=0;a<n;a++){let c=e[a],u=c>>11,f=c>>5&o,d=c&i,p=3*a;t[p]=u*r,t[p+1]=f*s,t[p+2]=d*r}return t};var Ln=mo;var xJ=new h,bJ=new h,TJ=new h;function jwe(e,t,n,i,o){l(o)||(o=new h);let r,s,a,c,u,f,d,p;if(l(t.z)){if(h.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(h.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(h.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=h.subtract(n,t,xJ),s=h.subtract(i,t,bJ),a=h.subtract(e,t,TJ),c=h.dot(r,r),u=h.dot(r,s),f=h.dot(r,a),d=h.dot(s,s),p=h.dot(s,a)}else{if(U.equalsEpsilon(e,t,P.EPSILON14))return h.clone(h.UNIT_X,o);if(U.equalsEpsilon(e,n,P.EPSILON14))return h.clone(h.UNIT_Y,o);if(U.equalsEpsilon(e,i,P.EPSILON14))return h.clone(h.UNIT_Z,o);r=U.subtract(n,t,xJ),s=U.subtract(i,t,bJ),a=U.subtract(e,t,TJ),c=U.dot(r,r),u=U.dot(r,s),f=U.dot(r,a),d=U.dot(s,s),p=U.dot(s,a)}o.y=d*f-u*p,o.z=c*p-u*f;let g=c*d-u*u;if(g!==0)return o.y/=g,o.z/=g,o.x=1-o.y-o.z,o}var _T=jwe;function yh(){this.high=h.clone(h.ZERO),this.low=h.clone(h.ZERO)}yh.encode=function(e,t){l(t)||(t={high:0,low:0});let n;return e>=0?(n=Math.floor(e/65536)*65536,t.high=n,t.low=e-n):(n=Math.floor(-e/65536)*65536,t.high=-n,t.low=e+n),t};var Jm={high:0,low:0};yh.fromCartesian=function(e,t){l(t)||(t=new yh);let n=t.high,i=t.low;return yh.encode(e.x,Jm),n.x=Jm.high,i.x=Jm.low,yh.encode(e.y,Jm),n.y=Jm.high,i.y=Jm.low,yh.encode(e.z,Jm),n.z=Jm.high,i.z=Jm.low,t};var J5=new yh;yh.writeElements=function(e,t,n){yh.fromCartesian(e,J5);let i=J5.high,o=J5.low;t[n]=i.x,t[n+1]=i.y,t[n+2]=i.z,t[n+3]=o.x,t[n+4]=o.y,t[n+5]=o.z};var Hn=yh;var e6={};e6.computeDiscriminant=function(e,t,n){return t*t-4*e*n};function AJ(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}e6.computeRealRoots=function(e,t,n){let i;if(e===0)return t===0?[]:[-n/t];if(t===0){if(n===0)return[0,0];let c=Math.abs(n),u=Math.abs(e);if(c<u&&c/u<P.EPSILON14)return[0,0];if(c>u&&u/c<P.EPSILON14)return[];if(i=-n/e,i<0)return[];let f=Math.sqrt(i);return[-f,f]}else if(n===0)return i=-t/e,i<0?[i,0]:[0,i];let o=t*t,r=4*e*n,s=AJ(o,-r,P.EPSILON14);if(s<0)return[];let a=-.5*AJ(t,P.sign(t)*Math.sqrt(s),P.EPSILON14);return t>0?[a/e,n/a]:[n/a,a/e]};var sl=e6;var n6={};n6.computeDiscriminant=function(e,t,n,i){let o=e*e,r=t*t,s=n*n,a=i*i;return 18*e*t*n*i+r*s-27*o*a-4*(e*s*n+r*t*i)};function t6(e,t,n,i){let o=e,r=t/3,s=n/3,a=i,c=o*s,u=r*a,f=r*r,d=s*s,p=o*s-f,g=o*a-r*s,m=r*a-d,x=4*p*m-g*g,b,T;if(x<0){let W,q,J;f*u>=c*d?(W=o,q=p,J=-2*r*p+o*g):(W=a,q=m,J=-a*g+2*s*m);let Z=-(J<0?-1:1)*Math.abs(W)*Math.sqrt(-x);T=-J+Z;let Q=T/2,de=Q<0?-Math.pow(-Q,1/3):Math.pow(Q,1/3),ye=T===Z?-de:-q/de;return b=q<=0?de+ye:-J/(de*de+ye*ye+q),f*u>=c*d?[(b-r)/o]:[-a/(b+s)]}let A=p,C=-2*r*p+o*g,S=m,v=-a*g+2*s*m,D=Math.sqrt(x),O=Math.sqrt(3)/2,R=Math.abs(Math.atan2(o*D,-C)/3);b=2*Math.sqrt(-A);let M=Math.cos(R);T=b*M;let L=b*(-M/2-O*Math.sin(R)),_=T+L>2*r?T-r:L-r,E=o,w=_/E;R=Math.abs(Math.atan2(a*D,-v)/3),b=2*Math.sqrt(-S),M=Math.cos(R),T=b*M,L=b*(-M/2-O*Math.sin(R));let I=-a,N=T+L<2*s?T+s:L+s,B=I/N,H=E*N,V=-_*N-E*I,G=_*I,k=(s*V-r*G)/(-r*V+s*H);return w<=k?w<=B?k<=B?[w,k,B]:[w,B,k]:[B,w,k]:w<=B?[k,w,B]:k<=B?[k,B,w]:[B,k,w]}n6.computeRealRoots=function(e,t,n,i){let o,r;if(e===0)return sl.computeRealRoots(t,n,i);if(t===0){if(n===0){if(i===0)return[0,0,0];r=-i/e;let s=r<0?-Math.pow(-r,1/3):Math.pow(r,1/3);return[s,s,s]}else if(i===0)return o=sl.computeRealRoots(e,0,n),o.Length===0?[0]:[o[0],0,o[1]];return t6(e,0,n,i)}else{if(n===0)return i===0?(r=-t/e,r<0?[r,0,0]:[0,0,r]):t6(e,t,0,i);if(i===0)return o=sl.computeRealRoots(e,t,n),o.length===0?[0]:o[1]<=0?[o[0],o[1],0]:o[0]>=0?[0,o[0],o[1]]:[o[0],0,o[1]]}return t6(e,t,n,i)};var gT=n6;var i6={};i6.computeDiscriminant=function(e,t,n,i,o){let r=e*e,s=r*e,a=t*t,c=a*t,u=n*n,f=u*n,d=i*i,p=d*i,g=o*o,m=g*o;return a*u*d-4*c*p-4*e*f*d+18*e*t*n*p-27*r*d*d+256*s*m+o*(18*c*n*i-4*a*f+16*e*u*u-80*e*t*u*i-6*e*a*d+144*r*n*d)+g*(144*e*a*n-27*a*a-128*r*u-192*r*t*i)};function td(e,t,n,i){let o=e*e,r=t-3*o/8,s=n-t*e/2+o*e/8,a=i-n*e/4+t*o/16-3*o*o/256,c=gT.computeRealRoots(1,2*r,r*r-4*a,-s*s);if(c.length>0){let u=-e/4,f=c[c.length-1];if(Math.abs(f)<P.EPSILON14){let d=sl.computeRealRoots(1,r,a);if(d.length===2){let p=d[0],g=d[1],m;if(p>=0&&g>=0){let x=Math.sqrt(p),b=Math.sqrt(g);return[u-b,u-x,u+x,u+b]}else{if(p>=0&&g<0)return m=Math.sqrt(p),[u-m,u+m];if(p<0&&g>=0)return m=Math.sqrt(g),[u-m,u+m]}}return[]}else if(f>0){let d=Math.sqrt(f),p=(r+f-s/d)/2,g=(r+f+s/d)/2,m=sl.computeRealRoots(1,d,p),x=sl.computeRealRoots(1,-d,g);return m.length!==0?(m[0]+=u,m[1]+=u,x.length!==0?(x[0]+=u,x[1]+=u,m[1]<=x[0]?[m[0],m[1],x[0],x[1]]:x[1]<=m[0]?[x[0],x[1],m[0],m[1]]:m[0]>=x[0]&&m[1]<=x[1]?[x[0],m[0],m[1],x[1]]:x[0]>=m[0]&&x[1]<=m[1]?[m[0],x[0],x[1],m[1]]:m[0]>x[0]&&m[0]<x[1]?[x[0],m[0],x[1],m[1]]:[m[0],x[0],m[1],x[1]]):m):x.length!==0?(x[0]+=u,x[1]+=u,x):[]}}return[]}function qS(e,t,n,i){let o=n*n,r=t*t,s=e*e,a=-2*t,c=n*e+r-4*i,u=s*i-n*t*e+o,f=gT.computeRealRoots(1,a,c,u);if(f.length>0){let d=f[0],p=t-d,g=p*p,m=e/2,x=p/2,b=g-4*i,T=g+4*Math.abs(i),A=s-4*d,C=s+4*Math.abs(d),S,v;if(d<0||b*C<A*T){let E=Math.sqrt(A);S=E/2,v=E===0?0:(e*x-n)/E}else{let E=Math.sqrt(b);S=E===0?0:(e*x-n)/E,v=E/2}let D,O;m===0&&S===0?(D=0,O=0):P.sign(m)===P.sign(S)?(D=m+S,O=d/D):(O=m-S,D=d/O);let R,M;x===0&&v===0?(R=0,M=0):P.sign(x)===P.sign(v)?(R=x+v,M=i/R):(M=x-v,R=i/M);let L=sl.computeRealRoots(1,D,R),_=sl.computeRealRoots(1,O,M);if(L.length!==0)return _.length!==0?L[1]<=_[0]?[L[0],L[1],_[0],_[1]]:_[1]<=L[0]?[_[0],_[1],L[0],L[1]]:L[0]>=_[0]&&L[1]<=_[1]?[_[0],L[0],L[1],_[1]]:_[0]>=L[0]&&_[1]<=L[1]?[L[0],_[0],_[1],L[1]]:L[0]>_[0]&&L[0]<_[1]?[_[0],L[0],_[1],L[1]]:[L[0],_[0],L[1],_[1]]:L;if(_.length!==0)return _}return[]}i6.computeRealRoots=function(e,t,n,i,o){if(Math.abs(e)<P.EPSILON15)return gT.computeRealRoots(t,n,i,o);let r=t/e,s=n/e,a=i/e,c=o/e,u=r<0?1:0;switch(u+=s<0?u+1:u,u+=a<0?u+1:u,u+=c<0?u+1:u,u){case 0:return td(r,s,a,c);case 1:return qS(r,s,a,c);case 2:return qS(r,s,a,c);case 3:return td(r,s,a,c);case 4:return td(r,s,a,c);case 5:return qS(r,s,a,c);case 6:return td(r,s,a,c);case 7:return td(r,s,a,c);case 8:return qS(r,s,a,c);case 9:return td(r,s,a,c);case 10:return td(r,s,a,c);case 11:return qS(r,s,a,c);case 12:return td(r,s,a,c);case 13:return td(r,s,a,c);case 14:return td(r,s,a,c);case 15:return td(r,s,a,c);default:return}};var j1=i6;function q1(e,t){t=h.clone(y(t,h.ZERO)),h.equals(t,h.ZERO)||h.normalize(t,t),this.origin=h.clone(y(e,h.ZERO)),this.direction=t}q1.clone=function(e,t){if(l(e))return l(t)?(t.origin=h.clone(e.origin),t.direction=h.clone(e.direction),t):new q1(e.origin,e.direction)};q1.getPoint=function(e,t,n){return l(n)||(n=new h),n=h.multiplyByScalar(e.direction,t,n),h.add(e.origin,n,n)};var mn=q1;var Ro={};Ro.rayPlane=function(e,t,n){l(n)||(n=new h);let i=e.origin,o=e.direction,r=t.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON15)return;let a=(-t.distance-h.dot(r,i))/s;if(!(a<0))return n=h.multiplyByScalar(o,a,n),h.add(i,n,n)};var qwe=new h,Ywe=new h,PJ=new h,CJ=new h,EJ=new h;Ro.rayTriangleParametric=function(e,t,n,i,o){o=y(o,!1);let r=e.origin,s=e.direction,a=h.subtract(n,t,qwe),c=h.subtract(i,t,Ywe),u=h.cross(s,c,PJ),f=h.dot(a,u),d,p,g,m,x;if(o){if(f<P.EPSILON6||(d=h.subtract(r,t,CJ),g=h.dot(d,u),g<0||g>f)||(p=h.cross(d,a,EJ),m=h.dot(s,p),m<0||g+m>f))return;x=h.dot(c,p)/f}else{if(Math.abs(f)<P.EPSILON6)return;let b=1/f;if(d=h.subtract(r,t,CJ),g=h.dot(d,u)*b,g<0||g>1||(p=h.cross(d,a,EJ),m=h.dot(s,p)*b,m<0||g+m>1))return;x=h.dot(c,p)*b}return x};Ro.rayTriangle=function(e,t,n,i,o,r){let s=Ro.rayTriangleParametric(e,t,n,i,o);if(!(!l(s)||s<0))return l(r)||(r=new h),h.multiplyByScalar(e.direction,s,r),h.add(e.origin,r,r)};var Xwe=new mn;Ro.lineSegmentTriangle=function(e,t,n,i,o,r,s){let a=Xwe;h.clone(e,a.origin),h.subtract(t,e,a.direction),h.normalize(a.direction,a.direction);let c=Ro.rayTriangleParametric(a,n,i,o,r);if(!(!l(c)||c<0||c>h.distance(e,t)))return l(s)||(s=new h),h.multiplyByScalar(a.direction,c,s),h.add(a.origin,s,s)};function Kwe(e,t,n,i){let o=t*t-4*e*n;if(o<0)return;if(o>0){let s=1/(2*e),a=Math.sqrt(o),c=(-t+a)*s,u=(-t-a)*s;return c<u?(i.root0=c,i.root1=u):(i.root0=u,i.root1=c),i}let r=-t/(2*e);if(r!==0)return i.root0=i.root1=r,i}var Zwe={root0:0,root1:0};function RJ(e,t,n){l(n)||(n=new Ha);let i=e.origin,o=e.direction,r=t.center,s=t.radius*t.radius,a=h.subtract(i,r,PJ),c=h.dot(o,o),u=2*h.dot(o,a),f=h.magnitudeSquared(a)-s,d=Kwe(c,u,f,Zwe);if(l(d))return n.start=d.root0,n.stop=d.root1,n}Ro.raySphere=function(e,t,n){if(n=RJ(e,t,n),!(!l(n)||n.stop<0))return n.start=Math.max(n.start,0),n};var $we=new mn;Ro.lineSegmentSphere=function(e,t,n,i){let o=$we;h.clone(e,o.origin);let r=h.subtract(t,e,o.direction),s=h.magnitude(r);if(h.normalize(r,r),i=RJ(o,n,i),!(!l(i)||i.stop<0||i.start>s))return i.start=Math.max(i.start,0),i.stop=Math.min(i.stop,s),i};var Qwe=new h,Jwe=new h;Ro.rayEllipsoid=function(e,t){let n=t.oneOverRadii,i=h.multiplyComponents(n,e.origin,Qwe),o=h.multiplyComponents(n,e.direction,Jwe),r=h.magnitudeSquared(i),s=h.dot(i,o),a,c,u,f,d;if(r>1){if(s>=0)return;let p=s*s;if(a=r-1,c=h.magnitudeSquared(o),u=c*a,p<u)return;if(p>u){f=s*s-u,d=-s+Math.sqrt(f);let m=d/c,x=a/d;return m<x?new Ha(m,x):{start:x,stop:m}}let g=Math.sqrt(a/c);return new Ha(g,g)}else if(r<1)return a=r-1,c=h.magnitudeSquared(o),u=c*a,f=s*s-u,d=-s+Math.sqrt(f),new Ha(0,d/c);if(s<0)return c=h.magnitudeSquared(o),new Ha(0,-s/c)};function E0(e,t,n){let i=e+t;return P.sign(e)!==P.sign(t)&&Math.abs(i/Math.max(Math.abs(e),Math.abs(t)))<n?0:i}Ro.quadraticVectorExpression=function(e,t,n,i,o){let r=i*i,s=o*o,a=(e[$.COLUMN1ROW1]-e[$.COLUMN2ROW2])*s,c=o*(i*E0(e[$.COLUMN1ROW0],e[$.COLUMN0ROW1],P.EPSILON15)+t.y),u=e[$.COLUMN0ROW0]*r+e[$.COLUMN2ROW2]*s+i*t.x+n,f=s*E0(e[$.COLUMN2ROW1],e[$.COLUMN1ROW2],P.EPSILON15),d=o*(i*E0(e[$.COLUMN2ROW0],e[$.COLUMN0ROW2])+t.z),p,g=[];if(d===0&&f===0){if(p=sl.computeRealRoots(a,c,u),p.length===0)return g;let R=p[0],M=Math.sqrt(Math.max(1-R*R,0));if(g.push(new h(i,o*R,o*-M)),g.push(new h(i,o*R,o*M)),p.length===2){let L=p[1],_=Math.sqrt(Math.max(1-L*L,0));g.push(new h(i,o*L,o*-_)),g.push(new h(i,o*L,o*_))}return g}let m=d*d,x=f*f,b=a*a,T=d*f,A=b+x,C=2*(c*a+T),S=2*u*a+c*c-x+m,v=2*(u*c-T),D=u*u-m;if(A===0&&C===0&&S===0&&v===0)return g;p=j1.computeRealRoots(A,C,S,v,D);let O=p.length;if(O===0)return g;for(let R=0;R<O;++R){let M=p[R],L=M*M,_=Math.max(1-L,0),E=Math.sqrt(_),w;P.sign(a)===P.sign(u)?w=E0(a*L+u,c*M,P.EPSILON12):P.sign(u)===P.sign(c*M)?w=E0(a*L,c*M+u,P.EPSILON12):w=E0(a*L+c*M,u,P.EPSILON12);let I=E0(f*M,d,P.EPSILON15),N=w*I;N<0?g.push(new h(i,o*M,o*E)):N>0?g.push(new h(i,o*M,o*-E)):E!==0?(g.push(new h(i,o*M,o*-E)),g.push(new h(i,o*M,o*E)),++R):g.push(new h(i,o*M,o*E))}return g};var o6=new h,SJ=new h,vJ=new h,Y1=new h,eDe=new h,tDe=new $,nDe=new $,iDe=new $,oDe=new $,rDe=new $,wJ=new $,DJ=new $,IJ=new h,sDe=new h,aDe=new fe;Ro.grazingAltitudeLocation=function(e,t){let n=e.origin,i=e.direction;if(!h.equals(n,h.ZERO)){let D=t.geodeticSurfaceNormal(n,o6);if(h.dot(i,D)>=0)return n}let o=l(this.rayEllipsoid(e,t)),r=t.transformPositionToScaledSpace(i,o6),s=h.normalize(r,r),a=h.mostOrthogonalAxis(r,Y1),c=h.normalize(h.cross(a,s,SJ),SJ),u=h.normalize(h.cross(s,c,vJ),vJ),f=tDe;f[0]=s.x,f[1]=s.y,f[2]=s.z,f[3]=c.x,f[4]=c.y,f[5]=c.z,f[6]=u.x,f[7]=u.y,f[8]=u.z;let d=$.transpose(f,nDe),p=$.fromScale(t.radii,iDe),g=$.fromScale(t.oneOverRadii,oDe),m=rDe;m[0]=0,m[1]=-i.z,m[2]=i.y,m[3]=i.z,m[4]=0,m[5]=-i.x,m[6]=-i.y,m[7]=i.x,m[8]=0;let x=$.multiply($.multiply(d,g,wJ),m,wJ),b=$.multiply($.multiply(x,p,DJ),f,DJ),T=$.multiplyByVector(x,n,eDe),A=Ro.quadraticVectorExpression(b,h.negate(T,o6),0,0,1),C,S,v=A.length;if(v>0){let D=h.clone(h.ZERO,sDe),O=Number.NEGATIVE_INFINITY;for(let M=0;M<v;++M){C=$.multiplyByVector(p,$.multiplyByVector(f,A[M],IJ),IJ);let L=h.normalize(h.subtract(C,n,Y1),Y1),_=h.dot(L,i);_>O&&(O=_,D=h.clone(C,D))}let R=t.cartesianToCartographic(D,aDe);return O=P.clamp(O,0,1),S=h.magnitude(h.subtract(D,n,Y1))*Math.sqrt(1-O*O),S=o?-S:S,R.height=S,t.cartographicToCartesian(R,new h)}};var cDe=new h;Ro.lineSegmentPlane=function(e,t,n,i){l(i)||(i=new h);let o=h.subtract(t,e,cDe),r=n.normal,s=h.dot(r,o);if(Math.abs(s)<P.EPSILON6)return;let a=h.dot(r,e),c=-(n.distance+a)/s;if(!(c<0||c>1))return h.multiplyByScalar(o,c,i),h.add(e,i,i),i};Ro.trianglePlaneIntersection=function(e,t,n,i){let o=i.normal,r=i.distance,s=h.dot(o,e)+r<0,a=h.dot(o,t)+r<0,c=h.dot(o,n)+r<0,u=0;u+=s?1:0,u+=a?1:0,u+=c?1:0;let f,d;if((u===1||u===2)&&(f=new h,d=new h),u===1){if(s)return Ro.lineSegmentPlane(e,t,i,f),Ro.lineSegmentPlane(e,n,i,d),{positions:[e,t,n,f,d],indices:[0,3,4,1,2,4,1,4,3]};if(a)return Ro.lineSegmentPlane(t,n,i,f),Ro.lineSegmentPlane(t,e,i,d),{positions:[e,t,n,f,d],indices:[1,3,4,2,0,4,2,4,3]};if(c)return Ro.lineSegmentPlane(n,e,i,f),Ro.lineSegmentPlane(n,t,i,d),{positions:[e,t,n,f,d],indices:[2,3,4,0,1,4,0,4,3]}}else if(u===2)if(s)if(a){if(!c)return Ro.lineSegmentPlane(e,n,i,f),Ro.lineSegmentPlane(t,n,i,d),{positions:[e,t,n,f,d],indices:[0,1,4,0,4,3,2,3,4]}}else return Ro.lineSegmentPlane(n,t,i,f),Ro.lineSegmentPlane(e,t,i,d),{positions:[e,t,n,f,d],indices:[2,0,4,2,4,3,1,3,4]};else return Ro.lineSegmentPlane(t,e,i,f),Ro.lineSegmentPlane(n,e,i,d),{positions:[e,t,n,f,d],indices:[1,2,4,1,4,3,0,3,4]}};var $n=Ro;function Ps(e,t){this.normal=h.clone(e),this.distance=t}Ps.fromPointNormal=function(e,t,n){let i=-h.dot(t,e);return l(n)?(h.clone(t,n.normal),n.distance=i,n):new Ps(t,i)};var lDe=new h;Ps.fromCartesian4=function(e,t){let n=h.fromCartesian4(e,lDe),i=e.w;return l(t)?(h.clone(n,t.normal),t.distance=i,t):new Ps(n,i)};Ps.getPointDistance=function(e,t){return h.dot(e.normal,t)+e.distance};var uDe=new h;Ps.projectPointOntoPlane=function(e,t,n){l(n)||(n=new h);let i=Ps.getPointDistance(e,t),o=h.multiplyByScalar(e.normal,i,uDe);return h.subtract(t,o,n)};var fDe=new F,dDe=new oe,hDe=new h;Ps.transform=function(e,t,n){let i=e.normal,o=e.distance,r=F.inverseTranspose(t,fDe),s=oe.fromElements(i.x,i.y,i.z,o,dDe);s=F.multiplyByVector(r,s,s);let a=h.fromCartesian4(s,hDe);return s=oe.divideByScalar(s,h.magnitude(a),s),Ps.fromCartesian4(s,n)};Ps.clone=function(e,t){return l(t)?(h.clone(e.normal,t.normal),t.distance=e.distance,t):new Ps(e.normal,e.distance)};Ps.equals=function(e,t){return e.distance===t.distance&&h.equals(e.normal,t.normal)};Ps.ORIGIN_XY_PLANE=Object.freeze(new Ps(h.UNIT_Z,0));Ps.ORIGIN_YZ_PLANE=Object.freeze(new Ps(h.UNIT_X,0));Ps.ORIGIN_ZX_PLANE=Object.freeze(new Ps(h.UNIT_Y,0));var an=Ps;var r6={};r6.calculateACMR=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o=t.length;if(!l(n)){n=0;let a=0,c=t[a];for(;a<o;)c>n&&(n=c),++a,c=t[a]}let r=[];for(let a=0;a<n+1;a++)r[a]=0;let s=i+1;for(let a=0;a<o;++a)s-r[t[a]]>i&&(r[t[a]]=s,++s);return(s-i+1)/(o/3)};r6.tipsify=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.indices,n=e.maximumIndex,i=y(e.cacheSize,24),o;function r(_,E,w,I){for(;E.length>=1;){let N=E[E.length-1];if(E.splice(E.length-1,1),_[N].numLiveTriangles>0)return N}for(;o<I;){if(_[o].numLiveTriangles>0)return++o,o-1;++o}return-1}function s(_,E,w,I,N,B,H){let V=-1,G,k=-1,W=0;for(;W<w.length;){let q=w[W];I[q].numLiveTriangles&&(G=0,N-I[q].timeStamp+2*I[q].numLiveTriangles<=E&&(G=N-I[q].timeStamp),(G>k||k===-1)&&(k=G,V=q)),++W}return V===-1?r(I,B,_,H):V}let a=t.length,c=0,u=0,f=t[u],d=a;if(l(n))c=n+1;else{for(;u<d;)f>c&&(c=f),++u,f=t[u];if(c===-1)return 0;++c}let p=[],g;for(g=0;g<c;g++)p[g]={numLiveTriangles:0,timeStamp:0,vertexTriangles:[]};u=0;let m=0;for(;u<d;)p[t[u]].vertexTriangles.push(m),++p[t[u]].numLiveTriangles,p[t[u+1]].vertexTriangles.push(m),++p[t[u+1]].numLiveTriangles,p[t[u+2]].vertexTriangles.push(m),++p[t[u+2]].numLiveTriangles,++m,u+=3;let x=0,b=i+1;o=1;let T=[],A=[],C,S,v=0,D=[],O=a/3,R=[];for(g=0;g<O;g++)R[g]=!1;let M,L;for(;x!==-1;){T=[],S=p[x],L=S.vertexTriangles.length;for(let _=0;_<L;++_)if(m=S.vertexTriangles[_],!R[m]){R[m]=!0,u=m+m+m;for(let E=0;E<3;++E)M=t[u],T.push(M),A.push(M),D[v]=M,++v,C=p[M],--C.numLiveTriangles,b-C.timeStamp>i&&(C.timeStamp=b,++b),++u}x=s(t,i,T,p,b,A,c)}return D};var X1=r6;var xc={};function tR(e,t,n,i,o){e[t++]=n,e[t++]=i,e[t++]=i,e[t++]=o,e[t++]=o,e[t]=n}function mDe(e){let t=e.length,n=t/3*6,i=Ne.createTypedArray(t,n),o=0;for(let r=0;r<t;r+=3,o+=6)tR(i,o,e[r],e[r+1],e[r+2]);return i}function pDe(e){let t=e.length;if(t>=3){let n=(t-2)*6,i=Ne.createTypedArray(t,n);tR(i,0,e[0],e[1],e[2]);let o=6;for(let r=3;r<t;++r,o+=6)tR(i,o,e[r-1],e[r],e[r-2]);return i}return new Uint16Array}function _De(e){if(e.length>0){let t=e.length-1,n=(t-1)*6,i=Ne.createTypedArray(t,n),o=e[0],r=0;for(let s=1;s<t;++s,r+=6)tR(i,r,o,e[s],e[s+1]);return i}return new Uint16Array}xc.toWireframe=function(e){let t=e.indices;if(l(t)){switch(e.primitiveType){case Le.TRIANGLES:e.indices=mDe(t);break;case Le.TRIANGLE_STRIP:e.indices=pDe(t);break;case Le.TRIANGLE_FAN:e.indices=_De(t);break}e.primitiveType=Le.LINES}return e};xc.createLineSegmentsForVectors=function(e,t,n){t=y(t,"normal"),n=y(n,1e4);let i=e.attributes.position.values,o=e.attributes[t].values,r=i.length,s=new Float64Array(2*r),a=0;for(let f=0;f<r;f+=3)s[a++]=i[f],s[a++]=i[f+1],s[a++]=i[f+2],s[a++]=i[f]+o[f]*n,s[a++]=i[f+1]+o[f+1]*n,s[a++]=i[f+2]+o[f+2]*n;let c,u=e.boundingSphere;return l(u)&&(c=new se(u.center,u.radius+n)),new ft({attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})},primitiveType:Le.LINES,boundingSphere:c})};xc.createAttributeLocations=function(e){let t=["position","positionHigh","positionLow","position3DHigh","position3DLow","position2DHigh","position2DLow","pickColor","normal","st","tangent","bitangent","extrudeDirection","compressedAttributes"],n=e.attributes,i={},o=0,r,s=t.length;for(r=0;r<s;++r){let a=t[r];l(n[a])&&(i[a]=o++)}for(let a in n)n.hasOwnProperty(a)&&!l(i[a])&&(i[a]=o++);return i};xc.reorderForPreVertexCache=function(e){let t=ft.computeNumberOfVertices(e),n=e.indices;if(l(n)){let i=new Int32Array(t);for(let p=0;p<t;p++)i[p]=-1;let o=n,r=o.length,s=Ne.createTypedArray(t,r),a=0,c=0,u=0,f;for(;a<r;)f=i[o[a]],f!==-1?s[c]=f:(f=o[a],i[f]=u,s[c]=u,++u),++a,++c;e.indices=s;let d=e.attributes;for(let p in d)if(d.hasOwnProperty(p)&&l(d[p])&&l(d[p].values)){let g=d[p],m=g.values,x=0,b=g.componentsPerAttribute,T=X.createTypedArray(g.componentDatatype,u*b);for(;x<t;){let A=i[x];if(A!==-1)for(let C=0;C<b;C++)T[b*A+C]=m[b*x+C];++x}g.values=T}}return e};xc.reorderForPostVertexCache=function(e,t){let n=e.indices;if(e.primitiveType===Le.TRIANGLES&&l(n)){let i=n.length,o=0;for(let r=0;r<i;r++)n[r]>o&&(o=n[r]);e.indices=X1.tipsify({indices:n,maximumIndex:o,cacheSize:t})}return e};function OJ(e){let t={};for(let n in e)if(e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)){let i=e[n];t[n]=new Se({componentDatatype:i.componentDatatype,componentsPerAttribute:i.componentsPerAttribute,normalize:i.normalize,values:[]})}return t}function gDe(e,t,n){for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];for(let r=0;r<o.componentsPerAttribute;++r)e[i].values.push(o.values[n*o.componentsPerAttribute+r])}}xc.fitToUnsignedShortIndices=function(e){let t=[],n=ft.computeNumberOfVertices(e);if(l(e.indices)&&n>=P.SIXTY_FOUR_KILOBYTES){let i=[],o=[],r=0,s=OJ(e.attributes),a=e.indices,c=a.length,u;e.primitiveType===Le.TRIANGLES?u=3:e.primitiveType===Le.LINES?u=2:e.primitiveType===Le.POINTS&&(u=1);for(let f=0;f<c;f+=u){for(let d=0;d<u;++d){let p=a[f+d],g=i[p];l(g)||(g=r++,i[p]=g,gDe(s,e.attributes,p)),o.push(g)}r+u>=P.SIXTY_FOUR_KILOBYTES&&(t.push(new ft({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV})),i=[],o=[],r=0,s=OJ(e.attributes))}o.length!==0&&t.push(new ft({attributes:s,indices:o,primitiveType:e.primitiveType,boundingSphere:e.boundingSphere,boundingSphereCV:e.boundingSphereCV}))}else t.push(e);return t};var MJ=new h,yDe=new fe;xc.projectTo2D=function(e,t,n,i,o){let r=e.attributes[t];o=l(o)?o:new wi;let s=o.ellipsoid,a=r.values,c=new Float64Array(a.length),u=0;for(let f=0;f<a.length;f+=3){let d=h.fromArray(a,f,MJ),p=s.cartesianToCartographic(d,yDe),g=o.project(p,MJ);c[u++]=g.x,c[u++]=g.y,c[u++]=g.z}return e.attributes[n]=r,e.attributes[i]=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c}),delete e.attributes[t],e};var s6={high:0,low:0};xc.encodeAttribute=function(e,t,n,i){let o=e.attributes[t],r=o.values,s=r.length,a=new Float32Array(s),c=new Float32Array(s);for(let f=0;f<s;++f)Hn.encode(r[f],s6),a[f]=s6.high,c[f]=s6.low;let u=o.componentsPerAttribute;return e.attributes[n]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:a}),e.attributes[i]=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:u,values:c}),delete e.attributes[t],e};var id=new h;function a6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,id),F.multiplyByPoint(e,id,id),h.pack(id,n,o)}}function c6(e,t){if(l(t)){let n=t.values,i=n.length;for(let o=0;o<i;o+=3)h.unpack(n,o,id),$.multiplyByVector(e,id,id),id=h.normalize(id,id),h.pack(id,n,o)}}var K1=new F,Z1=new $;xc.transformToWorldCoordinates=function(e){let t=e.modelMatrix;if(F.equals(t,F.IDENTITY))return e;let n=e.geometry.attributes;a6(t,n.position),a6(t,n.prevPosition),a6(t,n.nextPosition),(l(n.normal)||l(n.tangent)||l(n.bitangent))&&(F.inverse(t,K1),F.transpose(K1,K1),F.getMatrix3(K1,Z1),c6(Z1,n.normal),c6(Z1,n.tangent),c6(Z1,n.bitangent));let i=e.geometry.boundingSphere;return l(i)&&(e.geometry.boundingSphere=se.transform(i,t,i)),e.modelMatrix=F.clone(F.IDENTITY),e};function xDe(e,t){let n=e.length,i={},o=e[0][t].attributes,r;for(r in o)if(o.hasOwnProperty(r)&&l(o[r])&&l(o[r].values)){let s=o[r],a=s.values.length,c=!0;for(let u=1;u<n;++u){let f=e[u][t].attributes[r];if(!l(f)||s.componentDatatype!==f.componentDatatype||s.componentsPerAttribute!==f.componentsPerAttribute||s.normalize!==f.normalize){c=!1;break}a+=f.values.length}c&&(i[r]=new Se({componentDatatype:s.componentDatatype,componentsPerAttribute:s.componentsPerAttribute,normalize:s.normalize,values:X.createTypedArray(s.componentDatatype,a)}))}return i}var bDe=new h;function l6(e,t){let n=e.length,i,o,r,s,a=e[0].modelMatrix,c=l(e[0][t].indices),u=e[0][t].primitiveType,f=xDe(e,t),d,p,g;for(i in f)if(f.hasOwnProperty(i))for(d=f[i].values,s=0,o=0;o<n;++o)for(p=e[o][t].attributes[i].values,g=p.length,r=0;r<g;++r)d[s++]=p[r];let m;if(c){let A=0;for(o=0;o<n;++o)A+=e[o][t].indices.length;let C=ft.computeNumberOfVertices(new ft({attributes:f,primitiveType:Le.POINTS})),S=Ne.createTypedArray(C,A),v=0,D=0;for(o=0;o<n;++o){let O=e[o][t].indices,R=O.length;for(s=0;s<R;++s)S[v++]=D+O[s];D+=ft.computeNumberOfVertices(e[o][t])}m=S}let x=new h,b=0,T;for(o=0;o<n;++o){if(T=e[o][t].boundingSphere,!l(T)){x=void 0;break}h.add(T.center,x,x)}if(l(x))for(h.divideByScalar(x,n,x),o=0;o<n;++o){T=e[o][t].boundingSphere;let A=h.magnitude(h.subtract(T.center,x,bDe))+T.radius;A>b&&(b=A)}return new ft({attributes:f,indices:m,primitiveType:u,boundingSphere:l(x)?new se(x,b):void 0})}xc.combineInstances=function(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let s=e[r];l(s.geometry)?t.push(s):l(s.westHemisphereGeometry)&&l(s.eastHemisphereGeometry)&&n.push(s)}let o=[];return t.length>0&&o.push(l6(t,"geometry")),n.length>0&&(o.push(l6(n,"westHemisphereGeometry")),o.push(l6(n,"eastHemisphereGeometry"))),o};var Gu=new h,YS=new h,yT=new h,xT=new h;xc.computeNormal=function(e){let t=e.indices,n=e.attributes,i=n.position.values,o=n.position.values.length/3,r=t.length,s=new Array(o),a=new Array(r/3),c=new Array(r),u;for(u=0;u<o;u++)s[u]={indexOffset:0,count:0,currentCount:0};let f=0;for(u=0;u<r;u+=3){let m=t[u],x=t[u+1],b=t[u+2],T=m*3,A=x*3,C=b*3;YS.x=i[T],YS.y=i[T+1],YS.z=i[T+2],yT.x=i[A],yT.y=i[A+1],yT.z=i[A+2],xT.x=i[C],xT.y=i[C+1],xT.z=i[C+2],s[m].count++,s[x].count++,s[b].count++,h.subtract(yT,YS,yT),h.subtract(xT,YS,xT),a[f]=h.cross(yT,xT,new h),f++}let d=0;for(u=0;u<o;u++)s[u].indexOffset+=d,d+=s[u].count;f=0;let p;for(u=0;u<r;u+=3){p=s[t[u]];let m=p.indexOffset+p.currentCount;c[m]=f,p.currentCount++,p=s[t[u+1]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,p=s[t[u+2]],m=p.indexOffset+p.currentCount,c[m]=f,p.currentCount++,f++}let g=new Float32Array(o*3);for(u=0;u<o;u++){let m=u*3;if(p=s[u],h.clone(h.ZERO,Gu),p.count>0){for(f=0;f<p.count;f++)h.add(Gu,a[c[p.indexOffset+f]],Gu);h.equalsEpsilon(h.ZERO,Gu,P.EPSILON10)&&h.clone(a[c[p.indexOffset]],Gu)}h.equalsEpsilon(h.ZERO,Gu,P.EPSILON10)&&(Gu.z=1),h.normalize(Gu,Gu),g[m]=Gu.x,g[m+1]=Gu.y,g[m+2]=Gu.z}return e.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e};var TDe=new h,LJ=new h,ADe=new h;xc.computeTangentAndBitangent=function(e){let t=e.attributes,n=e.indices,i=e.attributes.position.values,o=e.attributes.normal.values,r=e.attributes.st.values,s=e.attributes.position.values.length/3,a=n.length,c=new Array(s*3),u;for(u=0;u<c.length;u++)c[u]=0;let f,d,p;for(u=0;u<a;u+=3){let x=n[u],b=n[u+1],T=n[u+2];f=x*3,d=b*3,p=T*3;let A=x*2,C=b*2,S=T*2,v=i[f],D=i[f+1],O=i[f+2],R=r[A],M=r[A+1],L=r[C+1]-M,_=r[S+1]-M,E=1/((r[C]-R)*_-(r[S]-R)*L),w=(_*(i[d]-v)-L*(i[p]-v))*E,I=(_*(i[d+1]-D)-L*(i[p+1]-D))*E,N=(_*(i[d+2]-O)-L*(i[p+2]-O))*E;c[f]+=w,c[f+1]+=I,c[f+2]+=N,c[d]+=w,c[d+1]+=I,c[d+2]+=N,c[p]+=w,c[p+1]+=I,c[p+2]+=N}let g=new Float32Array(s*3),m=new Float32Array(s*3);for(u=0;u<s;u++){f=u*3,d=f+1,p=f+2;let x=h.fromArray(o,f,TDe),b=h.fromArray(c,f,ADe),T=h.dot(x,b);h.multiplyByScalar(x,T,LJ),h.normalize(h.subtract(b,LJ,b),b),g[f]=b.x,g[d]=b.y,g[p]=b.z,h.normalize(h.cross(x,b,b),b),m[f]=b.x,m[d]=b.y,m[p]=b.z}return e.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g}),e.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m}),e};var XS=new U,nd=new h,NJ=new h,FJ=new h,$1=new U;xc.compressVertices=function(e){let t=e.attributes.extrudeDirection,n,i;if(l(t)){let D=t.values;i=D.length/3;let O=new Float32Array(i*2),R=0;for(n=0;n<i;++n){if(h.fromArray(D,n*3,nd),h.equals(nd,h.ZERO)){R+=2;continue}$1=Ln.octEncodeInRange(nd,65535,$1),O[R++]=$1.x,O[R++]=$1.y}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:O}),delete e.attributes.extrudeDirection,e}let o=e.attributes.normal,r=e.attributes.st,s=l(o),a=l(r);if(!s&&!a)return e;let c=e.attributes.tangent,u=e.attributes.bitangent,f=l(c),d=l(u),p,g,m,x;s&&(p=o.values),a&&(g=r.values),f&&(m=c.values),d&&(x=u.values),i=(s?p.length:g.length)/(s?3:2);let A=i,C=a&&s?2:1;C+=f||d?1:0,A*=C;let S=new Float32Array(A),v=0;for(n=0;n<i;++n){a&&(U.fromArray(g,n*2,XS),S[v++]=Ln.compressTextureCoordinates(XS));let D=n*3;s&&l(m)&&l(x)?(h.fromArray(p,D,nd),h.fromArray(m,D,NJ),h.fromArray(x,D,FJ),Ln.octPack(nd,NJ,FJ,XS),S[v++]=XS.x,S[v++]=XS.y):(s&&(h.fromArray(p,D,nd),S[v++]=Ln.octEncodeFloat(nd)),f&&(h.fromArray(m,D,nd),S[v++]=Ln.octEncodeFloat(nd)),d&&(h.fromArray(x,D,nd),S[v++]=Ln.octEncodeFloat(nd)))}return e.attributes.compressedAttributes=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:C,values:S}),s&&delete e.attributes.normal,a&&delete e.attributes.st,d&&delete e.attributes.bitangent,f&&delete e.attributes.tangent,e};function CDe(e){if(l(e.indices))return e;let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function EDe(e){let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=1,n[1]=0,n[2]=2;let i=3;for(let o=3;o<t;++o)n[i++]=o-1,n[i++]=0,n[i++]=o;return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function SDe(e){let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-2)*3);n[0]=0,n[1]=1,n[2]=2,t>3&&(n[3]=0,n[4]=2,n[5]=3);let i=6;for(let o=3;o<t-1;o+=2)n[i++]=o,n[i++]=o-1,n[i++]=o+1,o+2<t&&(n[i++]=o,n[i++]=o+1,n[i++]=o+2);return e.indices=n,e.primitiveType=Le.TRIANGLES,e}function vDe(e){if(l(e.indices))return e;let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t);for(let i=0;i<t;++i)n[i]=i;return e.indices=n,e}function wDe(e){let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,(t-1)*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return e.indices=n,e.primitiveType=Le.LINES,e}function DDe(e){let t=ft.computeNumberOfVertices(e),n=Ne.createTypedArray(t,t*2);n[0]=0,n[1]=1;let i=2;for(let o=2;o<t;++o)n[i++]=o-1,n[i++]=o;return n[i++]=t-1,n[i]=0,e.indices=n,e.primitiveType=Le.LINES,e}function IDe(e){switch(e.primitiveType){case Le.TRIANGLE_FAN:return EDe(e);case Le.TRIANGLE_STRIP:return SDe(e);case Le.TRIANGLES:return CDe(e);case Le.LINE_STRIP:return wDe(e);case Le.LINE_LOOP:return DDe(e);case Le.LINES:return vDe(e)}return e}function N_(e,t){Math.abs(e.y)<P.EPSILON6&&(t?e.y=-P.EPSILON6:e.y=P.EPSILON6)}function PDe(e,t,n){if(e.y!==0&&t.y!==0&&n.y!==0){N_(e,e.y<0),N_(t,t.y<0),N_(n,n.y<0);return}let i=Math.abs(e.y),o=Math.abs(t.y),r=Math.abs(n.y),s;i>o?i>r?s=P.sign(e.y):s=P.sign(n.y):o>r?s=P.sign(t.y):s=P.sign(n.y);let a=s<0;N_(e,a),N_(t,a),N_(n,a)}var BJ=new h;function Wu(e,t,n,i){h.add(e,h.multiplyByScalar(h.subtract(t,e,BJ),e.y/(e.y-t.y),BJ),n),h.clone(n,i),N_(n,!0),N_(i,!1)}var S0=new h,v0=new h,w0=new h,D0=new h,u6={positions:new Array(7),indices:new Array(3*3)};function RDe(e,t,n){if(e.x>=0||t.x>=0||n.x>=0)return;PDe(e,t,n);let i=e.y<0,o=t.y<0,r=n.y<0,s=0;s+=i?1:0,s+=o?1:0,s+=r?1:0;let a=u6.indices;s===1?(a[1]=3,a[2]=4,a[5]=6,a[7]=6,a[8]=5,i?(Wu(e,t,S0,w0),Wu(e,n,v0,D0),a[0]=0,a[3]=1,a[4]=2,a[6]=1):o?(Wu(t,n,S0,w0),Wu(t,e,v0,D0),a[0]=1,a[3]=2,a[4]=0,a[6]=2):r&&(Wu(n,e,S0,w0),Wu(n,t,v0,D0),a[0]=2,a[3]=0,a[4]=1,a[6]=0)):s===2&&(a[2]=4,a[4]=4,a[5]=3,a[7]=5,a[8]=6,i?o?r||(Wu(n,e,S0,w0),Wu(n,t,v0,D0),a[0]=0,a[1]=1,a[3]=0,a[6]=2):(Wu(t,n,S0,w0),Wu(t,e,v0,D0),a[0]=2,a[1]=0,a[3]=2,a[6]=1):(Wu(e,t,S0,w0),Wu(e,n,v0,D0),a[0]=1,a[1]=2,a[3]=1,a[6]=0));let c=u6.positions;return c[0]=e,c[1]=t,c[2]=n,c.length=3,(s===1||s===2)&&(c[3]=S0,c[4]=v0,c[5]=w0,c[6]=D0,c.length=7),u6}function kJ(e,t){let n=e.attributes;if(n.position.values.length===0)return;for(let o in n)if(n.hasOwnProperty(o)&&l(n[o])&&l(n[o].values)){let r=n[o];r.values=X.createTypedArray(r.componentDatatype,r.values)}let i=ft.computeNumberOfVertices(e);return e.indices=Ne.createTypedArray(i,e.indices),t&&(e.boundingSphere=se.fromVertices(n.position.values)),e}function TT(e){let t=e.attributes,n={};for(let i in t)if(t.hasOwnProperty(i)&&l(t[i])&&l(t[i].values)){let o=t[i];n[i]=new Se({componentDatatype:o.componentDatatype,componentsPerAttribute:o.componentsPerAttribute,normalize:o.normalize,values:[]})}return new ft({attributes:n,indices:[],primitiveType:e.primitiveType})}function m6(e,t,n){let i=l(e.geometry.boundingSphere);t=kJ(t,i),n=kJ(n,i),l(n)&&!l(t)?e.geometry=n:!l(n)&&l(t)?e.geometry=t:(e.westHemisphereGeometry=t,e.eastHemisphereGeometry=n,e.geometry=void 0)}function p6(e,t){let n=new e,i=new e,o=new e;return function(r,s,a,c,u,f,d,p){let g=e.fromArray(u,r*t,n),m=e.fromArray(u,s*t,i),x=e.fromArray(u,a*t,o);e.multiplyByScalar(g,c.x,g),e.multiplyByScalar(m,c.y,m),e.multiplyByScalar(x,c.z,x);let b=e.add(g,m,g);e.add(b,x,b),p&&e.normalize(b,b),e.pack(b,f,d*t)}}var ODe=p6(oe,4),eR=p6(h,3),WJ=p6(U,2),MDe=function(e,t,n,i,o,r,s){let a=o[e]*i.x,c=o[t]*i.y,u=o[n]*i.z;r[s]=a+c+u>P.EPSILON6?1:0},KS=new h,f6=new h,d6=new h,LDe=new h;function Q1(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){if(!l(r)&&!l(s)&&!l(a)&&!l(c)&&!l(u)&&g===0)return;let b=h.fromArray(o,e*3,KS),T=h.fromArray(o,t*3,f6),A=h.fromArray(o,n*3,d6),C=_T(i,b,T,A,LDe);if(l(C)){if(l(r)&&eR(e,t,n,C,r,d.normal.values,x,!0),l(u)){let S=h.fromArray(u,e*3,KS),v=h.fromArray(u,t*3,f6),D=h.fromArray(u,n*3,d6);h.multiplyByScalar(S,C.x,S),h.multiplyByScalar(v,C.y,v),h.multiplyByScalar(D,C.z,D);let O;!h.equals(S,h.ZERO)||!h.equals(v,h.ZERO)||!h.equals(D,h.ZERO)?(O=h.add(S,v,S),h.add(O,D,O),h.normalize(O,O)):(O=KS,O.x=0,O.y=0,O.z=0),h.pack(O,d.extrudeDirection.values,x*3)}if(l(f)&&MDe(e,t,n,C,f,d.applyOffset.values,x),l(s)&&eR(e,t,n,C,s,d.tangent.values,x,!0),l(a)&&eR(e,t,n,C,a,d.bitangent.values,x,!0),l(c)&&WJ(e,t,n,C,c,d.st.values,x),g>0)for(let S=0;S<g;S++){let v=p[S];NDe(e,t,n,C,x,m[v],d[v])}}}function NDe(e,t,n,i,o,r,s){let a=r.componentsPerAttribute,c=r.values,u=s.values;switch(a){case 4:ODe(e,t,n,i,c,u,o,!1);break;case 3:eR(e,t,n,i,c,u,o,!1);break;case 2:WJ(e,t,n,i,c,u,o,!1);break;default:u[o]=c[e]*i.x+c[t]*i.y+c[n]*i.z}}function xh(e,t,n,i,o,r){let s=e.position.values.length/3;if(o!==-1){let a=i[o],c=n[a];return c===-1?(n[a]=s,e.position.values.push(r.x,r.y,r.z),t.push(s),s):(t.push(c),c)}return e.position.values.push(r.x,r.y,r.z),t.push(s),s}var FDe={position:!0,normal:!0,bitangent:!0,tangent:!0,st:!0,extrudeDirection:!0,applyOffset:!0};function VJ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.normal)?n.normal.values:void 0,r=l(n.bitangent)?n.bitangent.values:void 0,s=l(n.tangent)?n.tangent.values:void 0,a=l(n.st)?n.st.values:void 0,c=l(n.extrudeDirection)?n.extrudeDirection.values:void 0,u=l(n.applyOffset)?n.applyOffset.values:void 0,f=t.indices,d=[];for(let O in n)n.hasOwnProperty(O)&&!FDe[O]&&l(n[O])&&d.push(O);let p=d.length,g=TT(t),m=TT(t),x,b,T,A,C,S=[];S.length=i.length/3;let v=[];for(v.length=i.length/3,C=0;C<S.length;++C)S[C]=-1,v[C]=-1;let D=f.length;for(C=0;C<D;C+=3){let O=f[C],R=f[C+1],M=f[C+2],L=h.fromArray(i,O*3),_=h.fromArray(i,R*3),E=h.fromArray(i,M*3),w=RDe(L,_,E);if(l(w)&&w.positions.length>3){let I=w.positions,N=w.indices,B=N.length;for(let H=0;H<B;++H){let V=N[H],G=I[V];G.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=v),A=xh(x,b,T,f,V<3?C+V:-1,G),Q1(O,R,M,G,i,o,s,r,a,c,u,x,d,p,n,A)}}else l(w)&&(L=w.positions[0],_=w.positions[1],E=w.positions[2]),L.y<0?(x=m.attributes,b=m.indices,T=S):(x=g.attributes,b=g.indices,T=v),A=xh(x,b,T,f,C,L),Q1(O,R,M,L,i,o,s,r,a,c,u,x,d,p,n,A),A=xh(x,b,T,f,C+1,_),Q1(O,R,M,_,i,o,s,r,a,c,u,x,d,p,n,A),A=xh(x,b,T,f,C+2,E),Q1(O,R,M,E,i,o,s,r,a,c,u,x,d,p,n,A)}m6(e,m,g)}var jJ=an.fromPointNormal(h.ZERO,h.UNIT_Y),BDe=new h,kDe=new h;function bT(e,t,n,i,o,r,s){if(!l(s))return;let a=h.fromArray(i,e*3,KS);h.equalsEpsilon(a,n,P.EPSILON10)?r.applyOffset.values[o]=s[e]:r.applyOffset.values[o]=s[t]}function UJ(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=l(n.applyOffset)?n.applyOffset.values:void 0,r=t.indices,s=TT(t),a=TT(t),c,u=r.length,f=[];f.length=i.length/3;let d=[];for(d.length=i.length/3,c=0;c<f.length;++c)f[c]=-1,d[c]=-1;for(c=0;c<u;c+=2){let p=r[c],g=r[c+1],m=h.fromArray(i,p*3,KS),x=h.fromArray(i,g*3,f6),b;Math.abs(m.y)<P.EPSILON6&&(m.y<0?m.y=-P.EPSILON6:m.y=P.EPSILON6),Math.abs(x.y)<P.EPSILON6&&(x.y<0?x.y=-P.EPSILON6:x.y=P.EPSILON6);let T=s.attributes,A=s.indices,C=d,S=a.attributes,v=a.indices,D=f,O=$n.lineSegmentPlane(m,x,jJ,d6);if(l(O)){let R=h.multiplyByScalar(h.UNIT_Y,5*P.EPSILON9,BDe);m.y<0&&(h.negate(R,R),T=a.attributes,A=a.indices,C=f,S=s.attributes,v=s.indices,D=d);let M=h.add(O,R,kDe);b=xh(T,A,C,r,c,m),bT(p,g,m,i,b,T,o),b=xh(T,A,C,r,-1,M),bT(p,g,M,i,b,T,o),h.negate(R,R),h.add(O,R,M),b=xh(S,v,D,r,-1,M),bT(p,g,M,i,b,S,o),b=xh(S,v,D,r,c+1,x),bT(p,g,x,i,b,S,o)}else{let R,M,L;m.y<0?(R=a.attributes,M=a.indices,L=f):(R=s.attributes,M=s.indices,L=d),b=xh(R,M,L,r,c,m),bT(p,g,m,i,b,R,o),b=xh(R,M,L,r,c+1,x),bT(p,g,x,i,b,R,o)}}m6(e,a,s)}var zJ=new U,VDe=new U,qJ=new h,YJ=new h,h6=new h,UDe=new h,zDe=new h,HDe=new h,HJ=new oe;function GJ(e){let t=e.attributes,n=t.position.values,i=t.prevPosition.values,o=t.nextPosition.values,r=n.length;for(let s=0;s<r;s+=3){let a=h.unpack(n,s,qJ);if(a.x>0)continue;let c=h.unpack(i,s,YJ);(a.y<0&&c.y>0||a.y>0&&c.y<0)&&(s-3>0?(i[s]=n[s-3],i[s+1]=n[s-2],i[s+2]=n[s-1]):h.pack(a,i,s));let u=h.unpack(o,s,h6);(a.y<0&&u.y>0||a.y>0&&u.y<0)&&(s+3<r?(o[s]=n[s+3],o[s+1]=n[s+4],o[s+2]=n[s+5]):h.pack(a,o,s))}}var GDe=5*P.EPSILON9,J1=P.EPSILON6;function WDe(e){let t=e.geometry,n=t.attributes,i=n.position.values,o=n.prevPosition.values,r=n.nextPosition.values,s=n.expandAndWidth.values,a=l(n.st)?n.st.values:void 0,c=l(n.color)?n.color.values:void 0,u=TT(t),f=TT(t),d,p,g,m=!1,x=i.length/3;for(d=0;d<x;d+=4){let b=d,T=d+2,A=h.fromArray(i,b*3,qJ),C=h.fromArray(i,T*3,YJ);if(Math.abs(A.y)<J1)for(A.y=J1*(C.y<0?-1:1),i[d*3+1]=A.y,i[(d+1)*3+1]=A.y,p=b*3;p<b*3+4*3;p+=3)o[p]=i[d*3],o[p+1]=i[d*3+1],o[p+2]=i[d*3+2];if(Math.abs(C.y)<J1)for(C.y=J1*(A.y<0?-1:1),i[(d+2)*3+1]=C.y,i[(d+3)*3+1]=C.y,p=b*3;p<b*3+4*3;p+=3)r[p]=i[(d+2)*3],r[p+1]=i[(d+2)*3+1],r[p+2]=i[(d+2)*3+2];let S=u.attributes,v=u.indices,D=f.attributes,O=f.indices,R=$n.lineSegmentPlane(A,C,jJ,UDe);if(l(R)){m=!0;let M=h.multiplyByScalar(h.UNIT_Y,GDe,zDe);A.y<0&&(h.negate(M,M),S=f.attributes,v=f.indices,D=u.attributes,O=u.indices);let L=h.add(R,M,HDe);S.position.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.position.values.push(L.x,L.y,L.z),S.position.values.push(L.x,L.y,L.z),S.prevPosition.values.push(o[b*3],o[b*3+1],o[b*3+2]),S.prevPosition.values.push(o[b*3+3],o[b*3+4],o[b*3+5]),S.prevPosition.values.push(A.x,A.y,A.z,A.x,A.y,A.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),S.nextPosition.values.push(L.x,L.y,L.z),h.negate(M,M),h.add(R,M,L),D.position.values.push(L.x,L.y,L.z),D.position.values.push(L.x,L.y,L.z),D.position.values.push(C.x,C.y,C.z,C.x,C.y,C.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.prevPosition.values.push(L.x,L.y,L.z),D.nextPosition.values.push(C.x,C.y,C.z,C.x,C.y,C.z),D.nextPosition.values.push(r[T*3],r[T*3+1],r[T*3+2]),D.nextPosition.values.push(r[T*3+3],r[T*3+4],r[T*3+5]);let _=U.fromArray(s,b*2,zJ),E=Math.abs(_.y);S.expandAndWidth.values.push(-1,E,1,E),S.expandAndWidth.values.push(-1,-E,1,-E),D.expandAndWidth.values.push(-1,E,1,E),D.expandAndWidth.values.push(-1,-E,1,-E);let w=h.magnitudeSquared(h.subtract(R,A,h6));if(w/=h.magnitudeSquared(h.subtract(C,A,h6)),l(c)){let I=oe.fromArray(c,b*4,HJ),N=oe.fromArray(c,T*4,HJ),B=P.lerp(I.x,N.x,w),H=P.lerp(I.y,N.y,w),V=P.lerp(I.z,N.z,w),G=P.lerp(I.w,N.w,w);for(p=b*4;p<b*4+2*4;++p)S.color.values.push(c[p]);for(S.color.values.push(B,H,V,G),S.color.values.push(B,H,V,G),D.color.values.push(B,H,V,G),D.color.values.push(B,H,V,G),p=T*4;p<T*4+2*4;++p)D.color.values.push(c[p])}if(l(a)){let I=U.fromArray(a,b*2,zJ),N=U.fromArray(a,(d+3)*2,VDe),B=P.lerp(I.x,N.x,w);for(p=b*2;p<b*2+2*2;++p)S.st.values.push(a[p]);for(S.st.values.push(B,I.y),S.st.values.push(B,N.y),D.st.values.push(B,I.y),D.st.values.push(B,N.y),p=T*2;p<T*2+2*2;++p)D.st.values.push(a[p])}g=S.position.values.length/3-4,v.push(g,g+2,g+1),v.push(g+1,g+2,g+3),g=D.position.values.length/3-4,O.push(g,g+2,g+1),O.push(g+1,g+2,g+3)}else{let M,L;for(A.y<0?(M=f.attributes,L=f.indices):(M=u.attributes,L=u.indices),M.position.values.push(A.x,A.y,A.z),M.position.values.push(A.x,A.y,A.z),M.position.values.push(C.x,C.y,C.z),M.position.values.push(C.x,C.y,C.z),p=d*3;p<d*3+4*3;++p)M.prevPosition.values.push(o[p]),M.nextPosition.values.push(r[p]);for(p=d*2;p<d*2+4*2;++p)M.expandAndWidth.values.push(s[p]),l(a)&&M.st.values.push(a[p]);if(l(c))for(p=d*4;p<d*4+4*4;++p)M.color.values.push(c[p]);g=M.position.values.length/3-4,L.push(g,g+2,g+1),L.push(g+1,g+2,g+3)}}m&&(GJ(f),GJ(u)),m6(e,f,u)}xc.splitLongitude=function(e){let t=e.geometry,n=t.boundingSphere;if(l(n)&&(n.center.x-n.radius>0||se.intersectPlane(n,an.ORIGIN_ZX_PLANE)!==Yt.INTERSECTING))return e;if(t.geometryType!==ed.NONE)switch(t.geometryType){case ed.POLYLINES:WDe(e);break;case ed.TRIANGLES:VJ(e);break;case ed.LINES:UJ(e);break}else IDe(t),t.primitiveType===Le.TRIANGLES?VJ(e):t.primitiveType===Le.LINES&&UJ(e);return e};var Nn=xc;function ZS(e,t,n,i,o,r,s,a,c,u,f){this._context=e,this._texture=t,this._textureTarget=n,this._targetFace=i,this._pixelDatatype=s,this._internalFormat=o,this._pixelFormat=r,this._size=a,this._preMultiplyAlpha=c,this._flipY=u,this._initialized=f}Object.defineProperties(ZS.prototype,{pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},_target:{get:function(){return this._targetFace}}});ZS.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,{width:r,height:s}=i,a=this._context._gl,c=this._textureTarget,u=this._targetFace;a.activeTexture(a.TEXTURE0),a.bindTexture(c,this._texture);let f=i.arrayBufferView,d=this._size,p=this._pixelFormat,g=this._internalFormat,m=this._pixelDatatype,x=this._preMultiplyAlpha,b=this._flipY,T=4;l(f)&&(T=it.alignmentInBytes(p,m,r)),a.pixelStorei(a.UNPACK_ALIGNMENT,T),o?a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.NONE):a.pixelStorei(a.UNPACK_COLORSPACE_CONVERSION_WEBGL,a.BROWSER_DEFAULT_WEBGL);let A=!1;if(!this._initialized){let C;t===0&&n===0&&r===d&&s===d?(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=it.flipY(f,p,m,d,d)),C=f):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),C=i),A=!0):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),C=it.createTypedArray(p,m,d,d)),a.texImage2D(u,0,g,d,d,0,p,Ze.toWebGLConstant(m,this._context),C),this._initialized=!0}A||(l(f)?(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,!1),b&&(f=it.flipY(f,p,m,r,s)),a.texSubImage2D(u,0,t,n,r,s,p,Ze.toWebGLConstant(m,this._context),f)):(a.pixelStorei(a.UNPACK_PREMULTIPLY_ALPHA_WEBGL,x),a.pixelStorei(a.UNPACK_FLIP_Y_WEBGL,b),a.texSubImage2D(u,0,t,n,p,Ze.toWebGLConstant(m,this._context),i))),a.bindTexture(c,null)};ZS.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._size),r=y(r,this._size);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(this._targetFace,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};ZS.prototype.copyMipmapFromFramebuffer=function(e,t,n,i,o){e=y(e,0),t=y(t,0),n=y(n,this._size),i=y(i,this._size),o=y(o,0);let r=this._context._gl,s=this._textureTarget;r.activeTexture(r.TEXTURE0),r.bindTexture(s,this._texture),r.copyTexImage2D(this._targetFace,o,this._internalFormat,e,t,n,i,0),r.bindTexture(s,null),this._initialized=!0};var nR=ZS;var iR={DONT_CARE:te.DONT_CARE,FASTEST:te.FASTEST,NICEST:te.NICEST,validate:function(e){return e===iR.DONT_CARE||e===iR.FASTEST||e===iR.NICEST}},ep=Object.freeze(iR);var oR={NEAREST:te.NEAREST,LINEAR:te.LINEAR};oR.validate=function(e){return e===oR.NEAREST||e===oR.LINEAR};var di=Object.freeze(oR);var F_={NEAREST:te.NEAREST,LINEAR:te.LINEAR,NEAREST_MIPMAP_NEAREST:te.NEAREST_MIPMAP_NEAREST,LINEAR_MIPMAP_NEAREST:te.LINEAR_MIPMAP_NEAREST,NEAREST_MIPMAP_LINEAR:te.NEAREST_MIPMAP_LINEAR,LINEAR_MIPMAP_LINEAR:te.LINEAR_MIPMAP_LINEAR};F_.validate=function(e){return e===F_.NEAREST||e===F_.LINEAR||e===F_.NEAREST_MIPMAP_NEAREST||e===F_.LINEAR_MIPMAP_NEAREST||e===F_.NEAREST_MIPMAP_LINEAR||e===F_.LINEAR_MIPMAP_LINEAR};var $t=Object.freeze(F_);var rR={CLAMP_TO_EDGE:te.CLAMP_TO_EDGE,REPEAT:te.REPEAT,MIRRORED_REPEAT:te.MIRRORED_REPEAT,validate:function(e){return e===rR.CLAMP_TO_EDGE||e===rR.REPEAT||e===rR.MIRRORED_REPEAT}},En=Object.freeze(rR);function $S(e){e=y(e,y.EMPTY_OBJECT);let{wrapS:t=En.CLAMP_TO_EDGE,wrapT:n=En.CLAMP_TO_EDGE,minificationFilter:i=$t.LINEAR,magnificationFilter:o=di.LINEAR,maximumAnisotropy:r=1}=e;this._wrapS=t,this._wrapT=n,this._minificationFilter=i,this._magnificationFilter=o,this._maximumAnisotropy=r}Object.defineProperties($S.prototype,{wrapS:{get:function(){return this._wrapS}},wrapT:{get:function(){return this._wrapT}},minificationFilter:{get:function(){return this._minificationFilter}},magnificationFilter:{get:function(){return this._magnificationFilter}},maximumAnisotropy:{get:function(){return this._maximumAnisotropy}}});$S.equals=function(e,t){return e===t||l(e)&&l(t)&&e._wrapS===t._wrapS&&e._wrapT===t._wrapT&&e._minificationFilter===t._minificationFilter&&e._magnificationFilter===t._magnificationFilter&&e._maximumAnisotropy===t._maximumAnisotropy};$S.NEAREST=Object.freeze(new $S({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST}));var Qt=$S;function jDe(e,t,n,i){let o=l(t.vertexBuffer),r=l(t.value),s=t.value?t.value.length:t.componentsPerAttribute,a={index:y(t.index,n),enabled:y(t.enabled,!0),vertexBuffer:t.vertexBuffer,value:r?t.value.slice(0):void 0,componentsPerAttribute:s,componentDatatype:y(t.componentDatatype,X.FLOAT),normalize:y(t.normalize,!1),offsetInBytes:y(t.offsetInBytes,0),strideInBytes:y(t.strideInBytes,0),instanceDivisor:y(t.instanceDivisor,0)};if(o)a.vertexAttrib=function(c){let u=this.index;c.bindBuffer(c.ARRAY_BUFFER,this.vertexBuffer._getBuffer()),c.vertexAttribPointer(u,this.componentsPerAttribute,this.componentDatatype,this.normalize,this.strideInBytes,this.offsetInBytes),c.enableVertexAttribArray(u),this.instanceDivisor>0&&(i.glVertexAttribDivisor(u,this.instanceDivisor),i._vertexAttribDivisors[u]=this.instanceDivisor,i._previousDrawInstanced=!0)},a.disableVertexAttribArray=function(c){c.disableVertexAttribArray(this.index),this.instanceDivisor>0&&i.glVertexAttribDivisor(n,0)};else{switch(a.componentsPerAttribute){case 1:a.vertexAttrib=function(c){c.vertexAttrib1fv(this.index,this.value)};break;case 2:a.vertexAttrib=function(c){c.vertexAttrib2fv(this.index,this.value)};break;case 3:a.vertexAttrib=function(c){c.vertexAttrib3fv(this.index,this.value)};break;case 4:a.vertexAttrib=function(c){c.vertexAttrib4fv(this.index,this.value)};break}a.disableVertexAttribArray=function(c){}}e.push(a)}function KJ(e,t,n){for(let i=0;i<t.length;++i){let o=t[i];o.enabled&&o.vertexAttrib(e)}l(n)&&e.bindBuffer(e.ELEMENT_ARRAY_BUFFER,n._getBuffer())}function tp(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,i=e.attributes,o=e.indexBuffer,r,s=[],a=1,c=!1,u=!1,f=i.length;for(r=0;r<f;++r)jDe(s,i[r],r,t);for(f=s.length,r=0;r<f;++r){let p=s[r];if(l(p.vertexBuffer)&&p.instanceDivisor===0){let g=p.strideInBytes||p.componentsPerAttribute*X.getSizeInBytes(p.componentDatatype);a=p.vertexBuffer.sizeInBytes/g;break}}for(r=0;r<f;++r)s[r].instanceDivisor>0&&(c=!0),l(s[r].value)&&(u=!0);let d;t.vertexArrayObject&&(d=t.glCreateVertexArray(),t.glBindVertexArray(d),KJ(n,s,o),t.glBindVertexArray(null)),this._numberOfVertices=a,this._hasInstancedAttributes=c,this._hasConstantAttributes=u,this._context=t,this._gl=n,this._vao=d,this._attributes=s,this._indexBuffer=o}function XJ(e){return e.values.length/e.componentsPerAttribute}function qDe(e){return X.getSizeInBytes(e.componentDatatype)*e.componentsPerAttribute}function YDe(e){let t,n,i,o=[];for(n in e)e.hasOwnProperty(n)&&l(e[n])&&l(e[n].values)&&(o.push(n),e[n].componentDatatype===X.DOUBLE&&(e[n].componentDatatype=X.FLOAT,e[n].values=X.createTypedArray(X.FLOAT,e[n].values)));let r,s=o.length;if(s>0)for(r=XJ(e[o[0]]),t=1;t<s;++t){let u=XJ(e[o[t]]);if(u!==r)throw new ce(`Each attribute list must have the same number of vertices. Attribute ${o[t]} has a different number of vertices (${u.toString()}) than attribute ${o[0]} (${r.toString()}).`)}o.sort(function(u,f){return X.getSizeInBytes(e[f].componentDatatype)-X.getSizeInBytes(e[u].componentDatatype)});let a=0,c={};for(t=0;t<s;++t)n=o[t],i=e[n],c[n]=a,a+=qDe(i);if(a>0){let u=X.getSizeInBytes(e[o[0]].componentDatatype),f=a%u;f!==0&&(a+=u-f);let d=r*a,p=new ArrayBuffer(d),g={};for(t=0;t<s;++t){n=o[t];let m=X.getSizeInBytes(e[n].componentDatatype);g[n]={pointer:X.createTypedArray(e[n].componentDatatype,p),index:c[n]/m,strideInComponentType:a/m}}for(t=0;t<r;++t)for(let m=0;m<s;++m){n=o[m],i=e[n];let x=i.values,b=g[n],T=b.pointer,A=i.componentsPerAttribute;for(let C=0;C<A;++C)T[b.index+C]=x[t*A+C];b.index+=b.strideInComponentType}return{buffer:p,offsetsInBytes:c,vertexSizeInBytes:a}}}tp.fromGeometry=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=y(e.geometry,y.EMPTY_OBJECT),i=y(e.bufferUsage,Fe.DYNAMIC_DRAW),o=y(e.attributeLocations,y.EMPTY_OBJECT),r=y(e.interleave,!1),s=e.vertexArrayAttributes,a,c,u,f=l(s)?s:[],d=n.attributes;if(r){let m=YDe(d);if(l(m)){u=yt.createVertexBuffer({context:t,typedArray:m.buffer,usage:i});let x=m.offsetsInBytes,b=m.vertexSizeInBytes;for(a in d)d.hasOwnProperty(a)&&l(d[a])&&(c=d[a],l(c.values)?f.push({index:o[a],vertexBuffer:u,componentDatatype:c.componentDatatype,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize,offsetInBytes:x[a],strideInBytes:b}):f.push({index:o[a],value:c.value,componentDatatype:c.componentDatatype,normalize:c.normalize}))}}else for(a in d)if(d.hasOwnProperty(a)&&l(d[a])){c=d[a];let m=c.componentDatatype;m===X.DOUBLE&&(m=X.FLOAT),u=void 0,l(c.values)&&(u=yt.createVertexBuffer({context:t,typedArray:X.createTypedArray(m,c.values),usage:i})),f.push({index:o[a],vertexBuffer:u,value:c.value,componentDatatype:m,componentsPerAttribute:c.componentsPerAttribute,normalize:c.normalize})}let p,g=n.indices;return l(g)&&(ft.computeNumberOfVertices(n)>=P.SIXTY_FOUR_KILOBYTES&&t.elementIndexUint?p=yt.createIndexBuffer({context:t,typedArray:new Uint32Array(g),usage:i,indexDatatype:Ne.UNSIGNED_INT}):p=yt.createIndexBuffer({context:t,typedArray:new Uint16Array(g),usage:i,indexDatatype:Ne.UNSIGNED_SHORT})),new tp({context:t,attributes:f,indexBuffer:p})};Object.defineProperties(tp.prototype,{numberOfAttributes:{get:function(){return this._attributes.length}},numberOfVertices:{get:function(){return this._numberOfVertices}},indexBuffer:{get:function(){return this._indexBuffer}}});tp.prototype.getAttribute=function(e){return this._attributes[e]};function XDe(e){let t=e._context,n=e._hasInstancedAttributes;if(!n&&!t._previousDrawInstanced)return;t._previousDrawInstanced=n;let i=t._vertexAttribDivisors,o=e._attributes,r=zt.maximumVertexAttributes,s;if(n){let a=o.length;for(s=0;s<a;++s){let c=o[s];if(c.enabled){let u=c.instanceDivisor,f=c.index;u!==i[f]&&(t.glVertexAttribDivisor(f,u),i[f]=u)}}}else for(s=0;s<r;++s)i[s]>0&&(t.glVertexAttribDivisor(s,0),i[s]=0)}function KDe(e,t){let n=e._attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];r.enabled&&l(r.value)&&r.vertexAttrib(t)}}tp.prototype._bind=function(){l(this._vao)?(this._context.glBindVertexArray(this._vao),this._context.instancedArrays&&XDe(this),this._hasConstantAttributes&&KDe(this,this._gl)):KJ(this._gl,this._attributes,this._indexBuffer)};tp.prototype._unBind=function(){if(l(this._vao))this._context.glBindVertexArray(null);else{let e=this._attributes,t=this._gl;for(let n=0;n<e.length;++n){let i=e[n];i.enabled&&i.disableVertexAttribArray(t)}this._indexBuffer&&t.bindBuffer(t.ELEMENT_ARRAY_BUFFER,null)}};tp.prototype.isDestroyed=function(){return!1};tp.prototype.destroy=function(){let e=this._attributes;for(let n=0;n<e.length;++n){let i=e[n].vertexBuffer;l(i)&&!i.isDestroyed()&&i.vertexArrayDestroyable&&i.destroy()}let t=this._indexBuffer;return l(t)&&!t.isDestroyed()&&t.vertexArrayDestroyable&&t.destroy(),l(this._vao)&&this._context.glDeleteVertexArray(this._vao),ue(this)};var ti=tp;function Ho(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=it.RGBA,pixelDatatype:o=Ze.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new Qt}=e,c=e.preMultiplyAlpha||i===it.RGB||i===it.LUMINANCE,{width:u,height:f}=e;l(n)&&({width:u,height:f}=n.positiveX);let d=u,p=it.textureSizeInBytes(i,o,d,d)*6,g=it.toInternalFormat(i,o,t),m=t._gl,x=m.TEXTURE_CUBE_MAP,b=m.createTexture();this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=x,this._texture=b,this._pixelFormat=i,this._pixelDatatype=o,this._size=d,this._hasMipmap=!1,this._sizeInBytes=p,this._preMultiplyAlpha=c,this._flipY=r;let T=l(n);function A(C){return new nR(t,b,x,C,g,i,o,d,c,r,T)}this._positiveX=A(m.TEXTURE_CUBE_MAP_POSITIVE_X),this._negativeX=A(m.TEXTURE_CUBE_MAP_NEGATIVE_X),this._positiveY=A(m.TEXTURE_CUBE_MAP_POSITIVE_Y),this._negativeY=A(m.TEXTURE_CUBE_MAP_NEGATIVE_Y),this._positiveZ=A(m.TEXTURE_CUBE_MAP_POSITIVE_Z),this._negativeZ=A(m.TEXTURE_CUBE_MAP_NEGATIVE_Z),this._sampler=a,ZJ(this,a),m.activeTexture(m.TEXTURE0),m.bindTexture(x,b),s?m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.NONE):m.pixelStorei(m.UNPACK_COLORSPACE_CONVERSION_WEBGL,m.BROWSER_DEFAULT_WEBGL);for(let C of Ho.faceNames())_6(this[C],n?.[C],0);m.bindTexture(x,null)}Ho.prototype.copyFace=function(e,t,n,i){let o=e.context,r=new Vr({context:o,colorTextures:[t],destroyAttachments:!1});r._bind(),this[n].copyMipmapFromFramebuffer(0,0,t.width,t.height,y(i,0)),r._unBind(),r.destroy()};Ho.FaceName=Object.freeze({POSITIVEX:"positiveX",NEGATIVEX:"negativeX",POSITIVEY:"positiveY",NEGATIVEY:"negativeY",POSITIVEZ:"positiveZ",NEGATIVEZ:"negativeZ"});function*ZDe(){yield Ho.FaceName.POSITIVEX,yield Ho.FaceName.NEGATIVEX,yield Ho.FaceName.POSITIVEY,yield Ho.FaceName.NEGATIVEY,yield Ho.FaceName.POSITIVEZ,yield Ho.FaceName.NEGATIVEZ}Ho.faceNames=function(){return ZDe()};function _6(e,t,n){n=y(n,0);let i=e._targetFace,o=Math.max(Math.floor(e._size/2**n),1),r=e._pixelFormat,s=e._pixelDatatype,a=e._internalFormat,c=e._flipY,u=e._preMultiplyAlpha,f=e._context,d=f._gl;if(!l(t)){d.texImage2D(i,n,a,o,o,0,r,Ze.toWebGLConstant(s,f),null);return}let{arrayBufferView:p}=t,g=4;l(p)&&(g=it.alignmentInBytes(r,s,o)),d.pixelStorei(d.UNPACK_ALIGNMENT,g),l(p)?(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,!1),c&&(p=it.flipY(p,r,s,o,o)),d.texImage2D(i,n,a,o,o,0,r,Ze.toWebGLConstant(s,f),p)):(d.pixelStorei(d.UNPACK_PREMULTIPLY_ALPHA_WEBGL,u),d.pixelStorei(d.UNPACK_FLIP_Y_WEBGL,c),d.texImage2D(i,n,a,r,Ze.toWebGLConstant(s,f),t))}Ho.loadFace=_6;Object.defineProperties(Ho.prototype,{positiveX:{get:function(){return this._positiveX}},negativeX:{get:function(){return this._negativeX}},positiveY:{get:function(){return this._positiveY}},negativeY:{get:function(){return this._negativeY}},positiveZ:{get:function(){return this._positiveZ}},negativeZ:{get:function(){return this._negativeZ}},sampler:{get:function(){return this._sampler},set:function(e){ZJ(this,e),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},width:{get:function(){return this._size}},height:{get:function(){return this._size}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},_target:{get:function(){return this._textureTarget}}});Ho.getDirection=function(e,t){switch(e){case Ho.FaceName.POSITIVEX:return h.clone(h.UNIT_X,t);case Ho.FaceName.NEGATIVEX:return h.negate(h.UNIT_X,t);case Ho.FaceName.POSITIVEY:return h.clone(h.UNIT_Y,t);case Ho.FaceName.NEGATIVEY:return h.negate(h.UNIT_Y,t);case Ho.FaceName.POSITIVEZ:return h.clone(h.UNIT_Z,t);case Ho.FaceName.NEGATIVEZ:return h.negate(h.UNIT_Z,t)}};function ZJ(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[$t.NEAREST_MIPMAP_NEAREST,$t.NEAREST_MIPMAP_LINEAR,$t.LINEAR_MIPMAP_NEAREST,$t.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelDatatype;(s===Ze.FLOAT&&!r.textureFloatLinear||s===Ze.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?$t.NEAREST_MIPMAP_NEAREST:$t.NEAREST,i=di.NEAREST);let a=r._gl,c=e._textureTarget;a.activeTexture(a.TEXTURE0),a.bindTexture(c,e._texture),a.texParameteri(c,a.TEXTURE_MIN_FILTER,n),a.texParameteri(c,a.TEXTURE_MAG_FILTER,i),a.texParameteri(c,a.TEXTURE_WRAP_S,t.wrapS),a.texParameteri(c,a.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&a.texParameteri(c,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),a.bindTexture(c,null)}Ho.prototype.loadMipmaps=function(e,t){t=y(t,!1);let n=this._context._gl,i=this._texture,o=this._textureTarget;n.activeTexture(n.TEXTURE0),n.bindTexture(o,i),t?n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.NONE):n.pixelStorei(n.UNPACK_COLORSPACE_CONVERSION_WEBGL,n.BROWSER_DEFAULT_WEBGL);for(let r=0;r<e.length;r++){let s=e[r],a=r+1;for(let c of Ho.faceNames())_6(this[c],s[c],a)}n.bindTexture(o,null),this._hasMipmap=!0};Ho.prototype.generateMipmap=function(e){e=y(e,ep.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};Ho.createVertexArray=function(e){let t=Ga.createGeometry(Ga.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY})),n=this._attributeLocations=Nn.createAttributeLocations(t);return ti.fromGeometry({context:e,geometry:t,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW})};Ho.prototype.isDestroyed=function(){return!1};Ho.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),this._positiveX=ue(this._positiveX),this._negativeX=ue(this._negativeX),this._positiveY=ue(this._positiveY),this._negativeY=ue(this._negativeY),this._positiveZ=ue(this._positiveZ),this._negativeZ=ue(this._negativeZ),ue(this)};var Dr=Ho;function $De(e){this.context=e,this.framebuffer=void 0,this.blendingEnabled=void 0,this.scissorTest=void 0,this.viewport=void 0}var bc=$De;var sR=`/** + * A built-in GLSL floating-point constant for converting radians to degrees. + * + * @alias czm_degreesPerRadian + * @glslConstant + * + * @see CesiumMath.DEGREES_PER_RADIAN + * + * @example + * // GLSL declaration + * const float czm_degreesPerRadian = ...; + * + * // Example + * float deg = czm_degreesPerRadian * rad; + */ +const float czm_degreesPerRadian = 57.29577951308232; +`;var aR=`/** + * A built-in GLSL vec2 constant for defining the depth range. + * This is a workaround to a bug where IE11 does not implement gl_DepthRange. + * + * @alias czm_depthRange + * @glslConstant + * + * @example + * // GLSL declaration + * float depthRangeNear = czm_depthRange.near; + * float depthRangeFar = czm_depthRange.far; + * + */ +const czm_depthRangeStruct czm_depthRange = czm_depthRangeStruct(0.0, 1.0); +`;var cR=`/** + * 0.1 + * + * @name czm_epsilon1 + * @glslConstant + */ +const float czm_epsilon1 = 0.1; +`;var lR=`/** + * 0.01 + * + * @name czm_epsilon2 + * @glslConstant + */ +const float czm_epsilon2 = 0.01; +`;var uR=`/** + * 0.001 + * + * @name czm_epsilon3 + * @glslConstant + */ +const float czm_epsilon3 = 0.001; +`;var fR=`/** + * 0.0001 + * + * @name czm_epsilon4 + * @glslConstant + */ +const float czm_epsilon4 = 0.0001; +`;var dR=`/** + * 0.00001 + * + * @name czm_epsilon5 + * @glslConstant + */ +const float czm_epsilon5 = 0.00001; +`;var hR=`/** + * 0.000001 + * + * @name czm_epsilon6 + * @glslConstant + */ +const float czm_epsilon6 = 0.000001; +`;var mR=`/** + * 0.0000001 + * + * @name czm_epsilon7 + * @glslConstant + */ +const float czm_epsilon7 = 0.0000001; +`;var pR=`/** + * DOC_TBA + * + * @name czm_infinity + * @glslConstant + */ +const float czm_infinity = 5906376272000.0; // Distance from the Sun to Pluto in meters. TODO: What is best given lowp, mediump, and highp? +`;var _R=`/** + * A built-in GLSL floating-point constant for <code>1/pi</code>. + * + * @alias czm_oneOverPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverPi = ...; + * + * // Example + * float pi = 1.0 / czm_oneOverPi; + */ +const float czm_oneOverPi = 0.3183098861837907; +`;var gR=`/** + * A built-in GLSL floating-point constant for <code>1/2pi</code>. + * + * @alias czm_oneOverTwoPi + * @glslConstant + * + * @see CesiumMath.ONE_OVER_TWO_PI + * + * @example + * // GLSL declaration + * const float czm_oneOverTwoPi = ...; + * + * // Example + * float pi = 2.0 * czm_oneOverTwoPi; + */ +const float czm_oneOverTwoPi = 0.15915494309189535; +`;var yR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE} + * + * @name czm_passCesium3DTile + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTile = 4.0; +`;var xR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION} + * + * @name czm_passCesium3DTileClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassification = 5.0; +`;var bR=`/** + * The automatic GLSL constant for {@link Pass#CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW} + * + * @name czm_passCesium3DTileClassificationIgnoreShow + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCesium3DTileClassificationIgnoreShow = 6.0; +`;var TR=`/** + * The automatic GLSL constant for {@link Pass#CLASSIFICATION} + * + * @name czm_passClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passClassification = 7.0; +`;var AR=`/** + * The automatic GLSL constant for {@link Pass#COMPUTE} + * + * @name czm_passCompute + * @glslConstant + * + * @see czm_pass + */ +const float czm_passCompute = 1.0; +`;var CR=`/** + * The automatic GLSL constant for {@link Pass#ENVIRONMENT} + * + * @name czm_passEnvironment + * @glslConstant + * + * @see czm_pass + */ +const float czm_passEnvironment = 0.0; +`;var ER=`/** + * The automatic GLSL constant for {@link Pass#GLOBE} + * + * @name czm_passGlobe + * @glslConstant + * + * @see czm_pass + */ +const float czm_passGlobe = 2.0; +`;var SR=`/** + * The automatic GLSL constant for {@link Pass#OPAQUE} + * + * @name czm_passOpaque + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOpaque = 7.0; +`;var vR=`/** + * The automatic GLSL constant for {@link Pass#OVERLAY} + * + * @name czm_passOverlay + * @glslConstant + * + * @see czm_pass + */ +const float czm_passOverlay = 10.0; +`;var wR=`/** + * The automatic GLSL constant for {@link Pass#TERRAIN_CLASSIFICATION} + * + * @name czm_passTerrainClassification + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTerrainClassification = 3.0; +`;var DR=`/** + * The automatic GLSL constant for {@link Pass#TRANSLUCENT} + * + * @name czm_passTranslucent + * @glslConstant + * + * @see czm_pass + */ +const float czm_passTranslucent = 8.0; +`;var IR=`/** + * The automatic GLSL constant for {@link Pass#VOXELS} + * + * @name czm_passVoxels + * @glslConstant + * + * @see czm_pass + */ +const float czm_passVoxels = 9.0; +`;var PR=`/** + * A built-in GLSL floating-point constant for <code>Math.PI</code>. + * + * @alias czm_pi + * @glslConstant + * + * @see CesiumMath.PI + * + * @example + * // GLSL declaration + * const float czm_pi = ...; + * + * // Example + * float twoPi = 2.0 * czm_pi; + */ +const float czm_pi = 3.141592653589793; +`;var RR=`/** + * A built-in GLSL floating-point constant for <code>pi/4</code>. + * + * @alias czm_piOverFour + * @glslConstant + * + * @see CesiumMath.PI_OVER_FOUR + * + * @example + * // GLSL declaration + * const float czm_piOverFour = ...; + * + * // Example + * float pi = 4.0 * czm_piOverFour; + */ +const float czm_piOverFour = 0.7853981633974483; +`;var OR=`/** + * A built-in GLSL floating-point constant for <code>pi/6</code>. + * + * @alias czm_piOverSix + * @glslConstant + * + * @see CesiumMath.PI_OVER_SIX + * + * @example + * // GLSL declaration + * const float czm_piOverSix = ...; + * + * // Example + * float pi = 6.0 * czm_piOverSix; + */ +const float czm_piOverSix = 0.5235987755982988; +`;var MR=`/** + * A built-in GLSL floating-point constant for <code>pi/3</code>. + * + * @alias czm_piOverThree + * @glslConstant + * + * @see CesiumMath.PI_OVER_THREE + * + * @example + * // GLSL declaration + * const float czm_piOverThree = ...; + * + * // Example + * float pi = 3.0 * czm_piOverThree; + */ +const float czm_piOverThree = 1.0471975511965976; +`;var LR=`/** + * A built-in GLSL floating-point constant for <code>pi/2</code>. + * + * @alias czm_piOverTwo + * @glslConstant + * + * @see CesiumMath.PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_piOverTwo = ...; + * + * // Example + * float pi = 2.0 * czm_piOverTwo; + */ +const float czm_piOverTwo = 1.5707963267948966; +`;var NR=`/** + * A built-in GLSL floating-point constant for converting degrees to radians. + * + * @alias czm_radiansPerDegree + * @glslConstant + * + * @see CesiumMath.RADIANS_PER_DEGREE + * + * @example + * // GLSL declaration + * const float czm_radiansPerDegree = ...; + * + * // Example + * float rad = czm_radiansPerDegree * deg; + */ +const float czm_radiansPerDegree = 0.017453292519943295; +`;var FR=`/** + * The constant identifier for the 2D {@link SceneMode} + * + * @name czm_sceneMode2D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode2D = 2.0; +`;var BR=`/** + * The constant identifier for the 3D {@link SceneMode} + * + * @name czm_sceneMode3D + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneModeMorphing + */ +const float czm_sceneMode3D = 3.0; +`;var kR=`/** + * The constant identifier for the Columbus View {@link SceneMode} + * + * @name czm_sceneModeColumbusView + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneMode3D + * @see czm_sceneModeMorphing + */ +const float czm_sceneModeColumbusView = 1.0; +`;var VR=`/** + * The constant identifier for the Morphing {@link SceneMode} + * + * @name czm_sceneModeMorphing + * @glslConstant + * @see czm_sceneMode + * @see czm_sceneMode2D + * @see czm_sceneModeColumbusView + * @see czm_sceneMode3D + */ +const float czm_sceneModeMorphing = 0.0; +`;var UR=`/** + * A built-in GLSL floating-point constant for one solar radius. + * + * @alias czm_solarRadius + * @glslConstant + * + * @see CesiumMath.SOLAR_RADIUS + * + * @example + * // GLSL declaration + * const float czm_solarRadius = ...; + */ +const float czm_solarRadius = 695500000.0; +`;var zR=`/** + * A built-in GLSL floating-point constant for <code>3pi/2</code>. + * + * @alias czm_threePiOver2 + * @glslConstant + * + * @see CesiumMath.THREE_PI_OVER_TWO + * + * @example + * // GLSL declaration + * const float czm_threePiOver2 = ...; + * + * // Example + * float pi = (2.0 / 3.0) * czm_threePiOver2; + */ +const float czm_threePiOver2 = 4.71238898038469; +`;var HR=`/** + * A built-in GLSL floating-point constant for <code>2pi</code>. + * + * @alias czm_twoPi + * @glslConstant + * + * @see CesiumMath.TWO_PI + * + * @example + * // GLSL declaration + * const float czm_twoPi = ...; + * + * // Example + * float pi = czm_twoPi / 2.0; + */ +const float czm_twoPi = 6.283185307179586; +`;var GR=`/** + * The maximum latitude, in radians, both North and South, supported by a Web Mercator + * (EPSG:3857) projection. Technically, the Mercator projection is defined + * for any latitude up to (but not including) 90 degrees, but it makes sense + * to cut it off sooner because it grows exponentially with increasing latitude. + * The logic behind this particular cutoff value, which is the one used by + * Google Maps, Bing Maps, and Esri, is that it makes the projection + * square. That is, the rectangle is equal in the X and Y directions. + * + * The constant value is computed as follows: + * czm_pi * 0.5 - (2.0 * atan(exp(-czm_pi))) + * + * @name czm_webMercatorMaxLatitude + * @glslConstant + */ +const float czm_webMercatorMaxLatitude = 1.4844222297453324; +`;var WR=`/** + * @name czm_depthRangeStruct + * @glslStruct + */ +struct czm_depthRangeStruct +{ + float near; + float far; +}; +`;var jR=`/** + * Holds material information that can be used for lighting. Returned by all czm_getMaterial functions. + * + * @name czm_material + * @glslStruct + * + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} specular Intensity of incoming light reflecting in a single direction. + * @property {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * @property {vec3} normal Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {vec3} emission Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + */ +struct czm_material +{ + vec3 diffuse; + float specular; + float shininess; + vec3 normal; + vec3 emission; + float alpha; +}; +`;var qR=`/** + * Used as input to every material's czm_getMaterial function. + * + * @name czm_materialInput + * @glslStruct + * + * @property {float} s 1D texture coordinates. + * @property {vec2} st 2D texture coordinates. + * @property {vec3} str 3D texture coordinates. + * @property {vec3} normalEC Unperturbed surface normal in eye coordinates. + * @property {mat3} tangentToEyeMatrix Matrix for converting a tangent space normal to eye space. + * @property {vec3} positionToEyeEC Vector from the fragment to the eye in eye coordinates. The magnitude is the distance in meters from the fragment to the eye. + * @property {float} height The height of the terrain in meters above or below the ellipsoid. Only available for globe materials. + * @property {float} slope The slope of the terrain in radians. 0 is flat; pi/2 is vertical. Only available for globe materials. + * @property {float} aspect The aspect of the terrain in radians. 0 is East, pi/2 is North, pi is West, 3pi/2 is South. Only available for globe materials. +* @property {float} waterMask The value of the water mask. 0 is land, 1 is water. Only available for globe materials. + */ +struct czm_materialInput +{ + float s; + vec2 st; + vec3 str; + vec3 normalEC; + mat3 tangentToEyeMatrix; + vec3 positionToEyeEC; + float height; + float slope; + float aspect; + float waterMask; +}; +`;var YR=`/** + * Struct for representing a material for a {@link Model}. The model + * rendering pipeline will pass this struct between material, custom shaders, + * and lighting stages. This is not to be confused with {@link czm_material} + * which is used by the older Fabric materials system, although they are similar. + * <p> + * All color values (diffuse, specular, emissive) are in linear color space. + * </p> + * + * @name czm_modelMaterial + * @glslStruct + * + * @property {vec4} baseColor The base color of the material. + * @property {vec3} diffuse Incoming light that scatters evenly in all directions. + * @property {float} alpha Alpha of this material. 0.0 is completely transparent; 1.0 is completely opaque. + * @property {vec3} specular Color of reflected light at normal incidence in PBR materials. This is sometimes referred to as f0 in the literature. + * @property {float} roughness A number from 0.0 to 1.0 representing how rough the surface is. Values near 0.0 produce glossy surfaces, while values near 1.0 produce rough surfaces. + * @property {vec3} normalEC Surface's normal in eye coordinates. It is used for effects such as normal mapping. The default is the surface's unmodified normal. + * @property {float} occlusion Ambient occlusion recieved at this point on the material. 1.0 means fully lit, 0.0 means fully occluded. + * @property {vec3} emissive Light emitted by the material equally in all directions. The default is vec3(0.0), which emits no light. + */ +struct czm_modelMaterial { + vec4 baseColor; + vec3 diffuse; + float alpha; + vec3 specular; + float roughness; + vec3 normalEC; + float occlusion; + vec3 emissive; +#ifdef USE_SPECULAR + float specularWeight; +#endif +#ifdef USE_ANISOTROPY + vec3 anisotropicT; + vec3 anisotropicB; + float anisotropyStrength; +#endif +#ifdef USE_CLEARCOAT + float clearcoatFactor; + float clearcoatRoughness; + vec3 clearcoatNormal; + // Add clearcoatF0 when KHR_materials_ior is implemented +#endif +}; +`;var XR=`/** + * Struct for representing the output of a custom vertex shader. + * + * @name czm_modelVertexOutput + * @glslStruct + * + * @see {@link CustomShader} + * @see {@link Model} + * + * @property {vec3} positionMC The position of the vertex in model coordinates + * @property {float} pointSize A custom value for gl_PointSize. This is only used for point primitives. + */ +struct czm_modelVertexOutput { + vec3 positionMC; + float pointSize; +}; +`;var KR=`/** + * DOC_TBA + * + * @name czm_ray + * @glslStruct + */ +struct czm_ray +{ + vec3 origin; + vec3 direction; +}; +`;var ZR=`/** + * DOC_TBA + * + * @name czm_raySegment + * @glslStruct + */ +struct czm_raySegment +{ + float start; + float stop; +}; + +/** + * DOC_TBA + * + * @name czm_emptyRaySegment + * @glslConstant + */ +const czm_raySegment czm_emptyRaySegment = czm_raySegment(-czm_infinity, -czm_infinity); + +/** + * DOC_TBA + * + * @name czm_fullRaySegment + * @glslConstant + */ +const czm_raySegment czm_fullRaySegment = czm_raySegment(0.0, czm_infinity); +`;var $R=`struct czm_shadowParameters +{ +#ifdef USE_CUBE_MAP_SHADOW + vec3 texCoords; +#else + vec2 texCoords; +#endif + + float depthBias; + float depth; + float nDotL; + vec2 texelStepSize; + float normalShadingSmooth; + float darkness; +}; +`;var QR=`/** + * Converts an HSB color (hue, saturation, brightness) to RGB + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_HSBToRGB + * @glslFunction + * + * @param {vec3} hsb The color in HSB. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_HSB2RGB = vec4(1.0, 2.0 / 3.0, 1.0 / 3.0, 3.0); + +vec3 czm_HSBToRGB(vec3 hsb) +{ + vec3 p = abs(fract(hsb.xxx + K_HSB2RGB.xyz) * 6.0 - K_HSB2RGB.www); + return hsb.z * mix(K_HSB2RGB.xxx, clamp(p - K_HSB2RGB.xxx, 0.0, 1.0), hsb.y); +} +`;var JR=`/** + * Converts an HSL color (hue, saturation, lightness) to RGB + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_HSLToRGB + * @glslFunction + * + * @param {vec3} rgb The color in HSL. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 hueToRGB(float hue) +{ + float r = abs(hue * 6.0 - 3.0) - 1.0; + float g = 2.0 - abs(hue * 6.0 - 2.0); + float b = 2.0 - abs(hue * 6.0 - 4.0); + return clamp(vec3(r, g, b), 0.0, 1.0); +} + +vec3 czm_HSLToRGB(vec3 hsl) +{ + vec3 rgb = hueToRGB(hsl.x); + float c = (1.0 - abs(2.0 * hsl.z - 1.0)) * hsl.y; + return (rgb - 0.5) * c + hsl.z; +} +`;var eO=`/** + * Converts an RGB color to HSB (hue, saturation, brightness) + * HSB <-> RGB conversion with minimal branching: {@link http://lolengine.net/blog/2013/07/27/rgb-to-hsv-in-glsl} + * + * @name czm_RGBToHSB + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSB. + * + * @example + * vec3 hsb = czm_RGBToHSB(rgb); + * hsb.z *= 0.1; + * rgb = czm_HSBToRGB(hsb); + */ + +const vec4 K_RGB2HSB = vec4(0.0, -1.0 / 3.0, 2.0 / 3.0, -1.0); + +vec3 czm_RGBToHSB(vec3 rgb) +{ + vec4 p = mix(vec4(rgb.bg, K_RGB2HSB.wz), vec4(rgb.gb, K_RGB2HSB.xy), step(rgb.b, rgb.g)); + vec4 q = mix(vec4(p.xyw, rgb.r), vec4(rgb.r, p.yzx), step(p.x, rgb.r)); + + float d = q.x - min(q.w, q.y); + return vec3(abs(q.z + (q.w - q.y) / (6.0 * d + czm_epsilon7)), d / (q.x + czm_epsilon7), q.x); +} +`;var tO=`/** + * Converts an RGB color to HSL (hue, saturation, lightness) + * HSL <-> RGB conversion: {@link http://www.chilliant.com/rgb2hsv.html} + * + * @name czm_RGBToHSL + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in HSL. + * + * @example + * vec3 hsl = czm_RGBToHSL(rgb); + * hsl.z *= 0.1; + * rgb = czm_HSLToRGB(hsl); + */ + +vec3 RGBtoHCV(vec3 rgb) +{ + // Based on work by Sam Hocevar and Emil Persson + vec4 p = (rgb.g < rgb.b) ? vec4(rgb.bg, -1.0, 2.0 / 3.0) : vec4(rgb.gb, 0.0, -1.0 / 3.0); + vec4 q = (rgb.r < p.x) ? vec4(p.xyw, rgb.r) : vec4(rgb.r, p.yzx); + float c = q.x - min(q.w, q.y); + float h = abs((q.w - q.y) / (6.0 * c + czm_epsilon7) + q.z); + return vec3(h, c, q.x); +} + +vec3 czm_RGBToHSL(vec3 rgb) +{ + vec3 hcv = RGBtoHCV(rgb); + float l = hcv.z - hcv.y * 0.5; + float s = hcv.y / (1.0 - abs(l * 2.0 - 1.0) + czm_epsilon7); + return vec3(hcv.x, s, l); +} +`;var nO=`/** + * Converts an RGB color to CIE Yxy. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_RGBToXYZ + * @glslFunction + * + * @param {vec3} rgb The color in RGB. + * + * @returns {vec3} The color in CIE Yxy. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_RGBToXYZ(vec3 rgb) +{ + const mat3 RGB2XYZ = mat3(0.4124, 0.2126, 0.0193, + 0.3576, 0.7152, 0.1192, + 0.1805, 0.0722, 0.9505); + vec3 xyz = RGB2XYZ * rgb; + vec3 Yxy; + Yxy.r = xyz.g; + float temp = dot(vec3(1.0), xyz); + Yxy.gb = xyz.rg / temp; + return Yxy; +} +`;var iO=`/** + * Converts a CIE Yxy color to RGB. + * <p>The conversion is described in + * {@link http://content.gpwiki.org/index.php/D3DBook:High-Dynamic_Range_Rendering#Luminance_Transform|Luminance Transform} + * </p> + * + * @name czm_XYZToRGB + * @glslFunction + * + * @param {vec3} Yxy The color in CIE Yxy. + * + * @returns {vec3} The color in RGB. + * + * @example + * vec3 xyz = czm_RGBToXYZ(rgb); + * xyz.x = max(xyz.x - luminanceThreshold, 0.0); + * rgb = czm_XYZToRGB(xyz); + */ +vec3 czm_XYZToRGB(vec3 Yxy) +{ + const mat3 XYZ2RGB = mat3( 3.2405, -0.9693, 0.0556, + -1.5371, 1.8760, -0.2040, + -0.4985, 0.0416, 1.0572); + vec3 xyz; + xyz.r = Yxy.r * Yxy.g / Yxy.b; + xyz.g = Yxy.r; + xyz.b = Yxy.r * (1.0 - Yxy.g - Yxy.b) / Yxy.b; + + return XYZ2RGB * xyz; +} +`;var oO=`// See: +// https://knarkowicz.wordpress.com/2016/01/06/aces-filmic-tone-mapping-curve/ + +vec3 czm_acesTonemapping(vec3 color) { + float g = 0.985; + float a = 0.065; + float b = 0.0001; + float c = 0.433; + float d = 0.238; + + color = (color * (color + a) - b) / (color * (g * color + c) + d); + + color = clamp(color, 0.0, 1.0); + + return color; +} +`;var rO=`/** + * @private + */ +float czm_alphaWeight(float a) +{ + float z = (gl_FragCoord.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + + // See Weighted Blended Order-Independent Transparency for examples of different weighting functions: + // http://jcgt.org/published/0002/02/09/ + return pow(a + 0.01, 4.0) + max(1e-2, min(3.0 * 1e3, 0.003 / (1e-5 + pow(abs(z) / 200.0, 4.0)))); +} +`;var sO=`/** + * Procedural anti-aliasing by blurring two colors that meet at a sharp edge. + * + * @name czm_antialias + * @glslFunction + * + * @param {vec4} color1 The color on one side of the edge. + * @param {vec4} color2 The color on the other side of the edge. + * @param {vec4} currentcolor The current color, either <code>color1</code> or <code>color2</code>. + * @param {float} dist The distance to the edge in texture coordinates. + * @param {float} [fuzzFactor=0.1] Controls the blurriness between the two colors. + * @returns {vec4} The anti-aliased color. + * + * @example + * // GLSL declarations + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor); + * vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist); + * + * // get the color for a material that has a sharp edge at the line y = 0.5 in texture space + * float dist = abs(textureCoordinates.t - 0.5); + * vec4 currentColor = mix(bottomColor, topColor, step(0.5, textureCoordinates.t)); + * vec4 color = czm_antialias(bottomColor, topColor, currentColor, dist, 0.1); + */ +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist, float fuzzFactor) +{ + float val1 = clamp(dist / fuzzFactor, 0.0, 1.0); + float val2 = clamp((dist - 0.5) / fuzzFactor, 0.0, 1.0); + val1 = val1 * (1.0 - val2); + val1 = val1 * val1 * (3.0 - (2.0 * val1)); + val1 = pow(val1, 0.5); //makes the transition nicer + + vec4 midColor = (color1 + color2) * 0.5; + return mix(midColor, currentColor, val1); +} + +vec4 czm_antialias(vec4 color1, vec4 color2, vec4 currentColor, float dist) +{ + return czm_antialias(color1, color2, currentColor, dist, 0.1); +} +`;var aO=`/** + * Apply a HSB color shift to an RGB color. + * + * @param {vec3} rgb The color in RGB space. + * @param {vec3} hsbShift The amount to shift each component. The xyz components correspond to hue, saturation, and brightness. Shifting the hue by +/- 1.0 corresponds to shifting the hue by a full cycle. Saturation and brightness are clamped between 0 and 1 after the adjustment + * @param {bool} ignoreBlackPixels If true, black pixels will be unchanged. This is necessary in some shaders such as atmosphere-related effects. + * + * @return {vec3} The RGB color after shifting in HSB space and clamping saturation and brightness to a valid range. + */ +vec3 czm_applyHSBShift(vec3 rgb, vec3 hsbShift, bool ignoreBlackPixels) { + // Convert rgb color to hsb + vec3 hsb = czm_RGBToHSB(rgb); + + // Perform hsb shift + // Hue cycles around so no clamp is needed. + hsb.x += hsbShift.x; // hue + hsb.y = clamp(hsb.y + hsbShift.y, 0.0, 1.0); // saturation + + // brightness + // + // Some shaders such as atmosphere-related effects need to leave black + // pixels unchanged + if (ignoreBlackPixels) { + hsb.z = hsb.z > czm_epsilon7 ? hsb.z + hsbShift.z : 0.0; + } else { + hsb.z = hsb.z + hsbShift.z; + } + hsb.z = clamp(hsb.z, 0.0, 1.0); + + // Convert shifted hsb back to rgb + return czm_HSBToRGB(hsb); +} +`;var cO=`/** + * Approximately computes spherical coordinates given a normal. + * Uses approximate inverse trigonometry for speed and consistency, + * since inverse trigonometry can differ from vendor-to-vendor and when compared with the CPU. + * + * @name czm_approximateSphericalCoordinates + * @glslFunction + * + * @param {vec3} normal arbitrary-length normal. + * + * @returns {vec2} Approximate latitude and longitude spherical coordinates. + */ +vec2 czm_approximateSphericalCoordinates(vec3 normal) { + // Project into plane with vertical for latitude + float latitudeApproximation = czm_fastApproximateAtan(sqrt(normal.x * normal.x + normal.y * normal.y), normal.z); + float longitudeApproximation = czm_fastApproximateAtan(normal.x, normal.y); + return vec2(latitudeApproximation, longitudeApproximation); +} +`;var lO=`/** + * Compute a rational approximation to tanh(x) + * + * @param {float} x A real number input + * @returns {float} An approximation for tanh(x) +*/ +float czm_approximateTanh(float x) { + float x2 = x * x; + return max(-1.0, min(1.0, x * (27.0 + x2) / (27.0 + 9.0 * x2))); +} +`;var uO=`/** + * Determines if the fragment is back facing + * + * @name czm_backFacing + * @glslFunction + * + * @returns {bool} <code>true</code> if the fragment is back facing; otherwise, <code>false</code>. + */ +bool czm_backFacing() +{ + // !gl_FrontFacing doesn't work as expected on Mac/Intel so use the more verbose form instead. See https://github.com/CesiumGS/cesium/pull/8494. + return gl_FrontFacing == false; +} +`;var fO=`/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a float expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {float} a Value to return if the comparison is true. + * @param {float} b Value to return if the comparison is false. + * + * @returns {float} equivalent of comparison ? a : b + */ +float czm_branchFreeTernary(bool comparison, float a, float b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec2 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec2} a Value to return if the comparison is true. + * @param {vec2} b Value to return if the comparison is false. + * + * @returns {vec2} equivalent of comparison ? a : b + */ +vec2 czm_branchFreeTernary(bool comparison, vec2 a, vec2 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec3 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec3 czm_branchFreeTernary(bool comparison, vec3 a, vec3 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} + +/** + * Branchless ternary operator to be used when it's inexpensive to explicitly + * evaluate both possibilities for a vec4 expression. + * + * @name czm_branchFreeTernary + * @glslFunction + * + * @param {bool} comparison A comparison statement + * @param {vec3} a Value to return if the comparison is true. + * @param {vec3} b Value to return if the comparison is false. + * + * @returns {vec3} equivalent of comparison ? a : b + */ +vec4 czm_branchFreeTernary(bool comparison, vec4 a, vec4 b) { + float useA = float(comparison); + return a * useA + b * (1.0 - useA); +} +`;var dO=` +vec4 czm_cascadeColor(vec4 weights) +{ + return vec4(1.0, 0.0, 0.0, 1.0) * weights.x + + vec4(0.0, 1.0, 0.0, 1.0) * weights.y + + vec4(0.0, 0.0, 1.0, 1.0) * weights.z + + vec4(1.0, 0.0, 1.0, 1.0) * weights.w; +} +`;var hO=` +uniform vec4 shadowMap_cascadeDistances; + +float czm_cascadeDistance(vec4 weights) +{ + return dot(shadowMap_cascadeDistances, weights); +} +`;var mO=` +uniform mat4 shadowMap_cascadeMatrices[4]; + +mat4 czm_cascadeMatrix(vec4 weights) +{ + return shadowMap_cascadeMatrices[0] * weights.x + + shadowMap_cascadeMatrices[1] * weights.y + + shadowMap_cascadeMatrices[2] * weights.z + + shadowMap_cascadeMatrices[3] * weights.w; +} +`;var pO=` +uniform vec4 shadowMap_cascadeSplits[2]; + +vec4 czm_cascadeWeights(float depthEye) +{ + // One component is set to 1.0 and all others set to 0.0. + vec4 near = step(shadowMap_cascadeSplits[0], vec4(depthEye)); + vec4 far = step(depthEye, shadowMap_cascadeSplits[1]); + return near * far; +} +`;var _O=`float getSignedDistance(vec2 uv, highp sampler2D clippingDistance) { + float signedDistance = texture(clippingDistance, uv).r; + return (signedDistance - 0.5) * 2.0; +} + +void czm_clipPolygons(highp sampler2D clippingDistance, int extentsLength, vec2 clippingPosition, int regionIndex) { + // Position is completely outside of polygons bounds + vec2 rectUv = clippingPosition; + if (regionIndex < 0 || rectUv.x <= 0.0 || rectUv.y <= 0.0 || rectUv.x >= 1.0 || rectUv.y >= 1.0) { + #ifdef CLIPPING_INVERSE + discard; + #endif + return; + } + + vec2 clippingDistanceTextureDimensions = vec2(textureSize(clippingDistance, 0)); + vec2 sampleOffset = max(1.0 / clippingDistanceTextureDimensions, vec2(0.005)); + float dimension = float(extentsLength); + if (extentsLength > 2) { + dimension = ceil(log2(float(extentsLength))); + } + + vec2 textureOffset = vec2(mod(float(regionIndex), dimension), floor(float(regionIndex) / dimension)) / dimension; + vec2 uv = textureOffset + rectUv / dimension; + + float signedDistance = getSignedDistance(uv, clippingDistance); + + #ifdef CLIPPING_INVERSE + if (signedDistance > 0.0) { + discard; + } + #else + if (signedDistance < 0.0) { + discard; + } + #endif +} +`;var gO=`/** + * DOC_TBA + * + * @name czm_columbusViewMorph + * @glslFunction + */ +vec4 czm_columbusViewMorph(vec4 position2D, vec4 position3D, float time) +{ + // Just linear for now. + vec3 p = mix(position2D.xyz, position3D.xyz, time); + return vec4(p, 1.0); +} +`;var yO=`/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {vec3} positionWC Position of the fragment in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +/** + * Compute the atmosphere color, applying Rayleigh and Mie scattering. This + * builtin uses automatic uniforms so the atmophere settings are synced with the + * state of the Scene, even in other contexts like Model. + * + * @name czm_computeAtmosphereColor + * @glslFunction + * + * @param {czm_ray} primaryRay Ray from the origin to sky fragment to in world coords (low precision) + * @param {vec3} lightDirection Light direction from the sun or other light source. + * @param {vec3} rayleighColor The Rayleigh scattering color computed by a scattering function + * @param {vec3} mieColor The Mie scattering color computed by a scattering function + * @param {float} opacity The opacity computed by a scattering function. + */ +vec4 czm_computeAtmosphereColor( + czm_ray primaryRay, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + vec3 direction = normalize(primaryRay.direction); + + float cosAngle = dot(direction, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = czm_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * czm_atmosphereLightIntensity; + + return vec4(color, opacity); +} + +`;var xO=`/** + * Compute atmosphere scattering for the ground atmosphere and fog. This method + * uses automatic uniforms so it is always synced with the scene settings. + * + * @name czm_computeGroundAtmosphereScattering + * @glslfunction + * + * @param {vec3} positionWC The position of the fragment in world coordinates. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeGroundAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + czm_computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var bO=`/** + * Returns a position in model coordinates relative to eye taking into + * account the current scene mode: 3D, 2D, or Columbus view. + * <p> + * This uses standard position attributes, <code>position3DHigh</code>, + * <code>position3DLow</code>, <code>position2DHigh</code>, and <code>position2DLow</code>, + * and should be used when writing a vertex shader for an {@link Appearance}. + * </p> + * + * @name czm_computePosition + * @glslFunction + * + * @returns {vec4} The position relative to eye. + * + * @example + * vec4 p = czm_computePosition(); + * v_positionEC = (czm_modelViewRelativeToEye * p).xyz; + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * + * @see czm_translateRelativeToEye + */ +vec4 czm_computePosition(); +`;var TO=`/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. This function uses automatic uniforms + * so the atmosphere settings are always synced with the current scene. + * + * @name czm_computeScattering + * @glslfunction + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + */ +void czm_computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. + const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. + const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(czm_atmosphereRayleighScaleHeight, czm_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((czm_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (czm_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = czm_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = czm_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((czm_atmosphereMieCoefficient * opticalDepth.y) + (czm_atmosphereRayleighCoefficient * opticalDepth.x)))); +} +`;var AO=`/** + * @private + */ +vec2 cordic(float angle) +{ +// Scale the vector by the appropriate factor for the 24 iterations to follow. + vec2 vector = vec2(6.0725293500888267e-1, 0.0); +// Iteration 1 + float sense = (angle < 0.0) ? -1.0 : 1.0; + // float factor = sense * 1.0; // 2^-0 + mat2 rotation = mat2(1.0, sense, -sense, 1.0); + vector = rotation * vector; + angle -= sense * 7.8539816339744828e-1; // atan(2^-0) +// Iteration 2 + sense = (angle < 0.0) ? -1.0 : 1.0; + float factor = sense * 5.0e-1; // 2^-1 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.6364760900080609e-1; // atan(2^-1) +// Iteration 3 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.5e-1; // 2^-2 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4497866312686414e-1; // atan(2^-2) +// Iteration 4 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.25e-1; // 2^-3 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2435499454676144e-1; // atan(2^-3) +// Iteration 5 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.25e-2; // 2^-4 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.2418809995957350e-2; // atan(2^-4) +// Iteration 6 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.125e-2; // 2^-5 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.1239833430268277e-2; // atan(2^-5) +// Iteration 7 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.5625e-2; // 2^-6 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5623728620476831e-2; // atan(2^-6) +// Iteration 8 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.8125e-3; // 2^-7 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.8123410601011111e-3; // atan(2^-7) +// Iteration 9 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.90625e-3; // 2^-8 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.9062301319669718e-3; // atan(2^-8) +// Iteration 10 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.953125e-3; // 2^-9 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9531225164788188e-3; // atan(2^-9) +// Iteration 11 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.765625e-4; // 2^-10 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.7656218955931946e-4; // atan(2^-10) +// Iteration 12 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.8828125e-4; // 2^-11 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.8828121119489829e-4; // atan(2^-11) +// Iteration 13 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.44140625e-4; // 2^-12 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.4414062014936177e-4; // atan(2^-12) +// Iteration 14 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.220703125e-4; // 2^-13 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.2207031189367021e-4; // atan(2^-13) +// Iteration 15 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 6.103515625e-5; // 2^-14 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 6.1035156174208773e-5; // atan(2^-14) +// Iteration 16 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.0517578125e-5; // 2^-15 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.0517578115526096e-5; // atan(2^-15) +// Iteration 17 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.52587890625e-5; // 2^-16 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.5258789061315762e-5; // atan(2^-16) +// Iteration 18 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 7.62939453125e-6; // 2^-17 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 7.6293945311019700e-6; // atan(2^-17) +// Iteration 19 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 3.814697265625e-6; // 2^-18 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 3.8146972656064961e-6; // atan(2^-18) +// Iteration 20 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.9073486328125e-6; // 2^-19 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 1.9073486328101870e-6; // atan(2^-19) +// Iteration 21 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 9.5367431640625e-7; // 2^-20 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 9.5367431640596084e-7; // atan(2^-20) +// Iteration 22 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 4.76837158203125e-7; // 2^-21 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 4.7683715820308884e-7; // atan(2^-21) +// Iteration 23 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 2.384185791015625e-7; // 2^-22 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; + angle -= sense * 2.3841857910155797e-7; // atan(2^-22) +// Iteration 24 + sense = (angle < 0.0) ? -1.0 : 1.0; + factor = sense * 1.1920928955078125e-7; // 2^-23 + rotation[0][1] = factor; + rotation[1][0] = -factor; + vector = rotation * vector; +// angle -= sense * 1.1920928955078068e-7; // atan(2^-23) + + return vector; +} + +/** + * Computes the cosine and sine of the provided angle using the CORDIC algorithm. + * + * @name czm_cosineAndSine + * @glslFunction + * + * @param {float} angle The angle in radians. + * + * @returns {vec2} The resulting cosine of the angle (as the x coordinate) and sine of the angle (as the y coordinate). + * + * @example + * vec2 v = czm_cosineAndSine(czm_piOverSix); + * float cosine = v.x; + * float sine = v.y; + */ +vec2 czm_cosineAndSine(float angle) +{ + if (angle < -czm_piOverTwo || angle > czm_piOverTwo) + { + if (angle < 0.0) + { + return -cordic(angle + czm_pi); + } + else + { + return -cordic(angle - czm_pi); + } + } + else + { + return cordic(angle); + } +} +`;var CO=`/** + * Decompresses texture coordinates that were packed into a single float. + * + * @name czm_decompressTextureCoordinates + * @glslFunction + * + * @param {float} encoded The compressed texture coordinates. + * @returns {vec2} The decompressed texture coordinates. + */ + vec2 czm_decompressTextureCoordinates(float encoded) + { + float temp = encoded / 4096.0; + float xZeroTo4095 = floor(temp); + float stx = xZeroTo4095 / 4095.0; + float sty = (encoded - xZeroTo4095 * 4096.0) / 4095.0; + return vec2(stx, sty); + } +`;var EO=`// emulated noperspective +#if (__VERSION__ == 300 || defined(GL_EXT_frag_depth)) && !defined(LOG_DEPTH) +out float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP, which is not available in WebGL 1 or 2. + * GL_DEPTH_CLAMP clamps geometry that is outside the near and far planes, + * capping the shadow volume. More information here: + * https://www.khronos.org/registry/OpenGL/extensions/ARB/ARB_depth_clamp.txt. + * + * When GL_EXT_frag_depth is available we emulate GL_DEPTH_CLAMP by ensuring + * no geometry gets clipped by setting the clip space z value to 0.0 and then + * sending the unaltered screen space z value (using emulated noperspective + * interpolation) to the frag shader where it is clamped to [0,1] and then + * written with gl_FragDepth (see czm_writeDepthClamp). This technique is based on: + * https://stackoverflow.com/questions/5960757/how-to-emulate-gl-depth-clamp-nv. + * + * When GL_EXT_frag_depth is not available, which is the case on some mobile + * devices, we must attempt to fix this only in the vertex shader. + * The approach is to clamp the z value to the far plane, which closes the + * shadow volume but also distorts the geometry, so there can still be artifacts + * on frustum seams. + * + * @name czm_depthClamp + * @glslFunction + * + * @param {vec4} coords The vertex in clip coordinates. + * @returns {vec4} The modified vertex. + * + * @example + * gl_Position = czm_depthClamp(czm_modelViewProjection * vec4(position, 1.0)); + * + * @see czm_writeDepthClamp + */ +vec4 czm_depthClamp(vec4 coords) +{ +#ifndef LOG_DEPTH +#if __VERSION__ == 300 || defined(GL_EXT_frag_depth) + v_WindowZ = (0.5 * (coords.z / coords.w) + 0.5) * coords.w; + coords.z = 0.0; +#else + coords.z = min(coords.z, coords.w); +#endif +#endif + return coords; +} +`;var SO=`/** + * Computes a 3x3 rotation matrix that transforms vectors from an ellipsoid's east-north-up coordinate system + * to eye coordinates. In east-north-up coordinates, x points east, y points north, and z points along the + * surface normal. East-north-up can be used as an ellipsoid's tangent space for operations such as bump mapping. + * <br /><br /> + * The ellipsoid is assumed to be centered at the model coordinate's origin. + * + * @name czm_eastNorthUpToEyeCoordinates + * @glslFunction + * + * @param {vec3} positionMC The position on the ellipsoid in model coordinates. + * @param {vec3} normalEC The normalized ellipsoid surface normal, at <code>positionMC</code>, in eye coordinates. + * + * @returns {mat3} A 3x3 rotation matrix that transforms vectors from the east-north-up coordinate system to eye coordinates. + * + * @example + * // Transform a vector defined in the east-north-up coordinate + * // system, (0, 0, 1) which is the surface normal, to eye + * // coordinates. + * mat3 m = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + * vec3 normalEC = m * vec3(0.0, 0.0, 1.0); + */ +mat3 czm_eastNorthUpToEyeCoordinates(vec3 positionMC, vec3 normalEC) +{ + vec3 tangentMC = normalize(vec3(-positionMC.y, positionMC.x, 0.0)); // normalized surface tangent in model coordinates + vec3 tangentEC = normalize(czm_normal3D * tangentMC); // normalized surface tangent in eye coordinates + vec3 bitangentEC = normalize(cross(normalEC, tangentEC)); // normalized surface bitangent in eye coordinates + + return mat3( + tangentEC.x, tangentEC.y, tangentEC.z, + bitangentEC.x, bitangentEC.y, bitangentEC.z, + normalEC.x, normalEC.y, normalEC.z); +} +`;var vO=`/** + * DOC_TBA + * + * @name czm_ellipsoidContainsPoint + * @glslFunction + * + */ +bool czm_ellipsoidContainsPoint(vec3 ellipsoid_inverseRadii, vec3 point) +{ + vec3 scaled = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(point, 1.0)).xyz; + return (dot(scaled, scaled) <= 1.0); +} +`;var wO=`/** + * Approximate uv coordinates based on the ellipsoid normal. + * + * @name czm_ellipsoidTextureCoordinates + * @glslFunction + */ +vec2 czm_ellipsoidTextureCoordinates(vec3 normal) +{ + return vec2(atan(normal.y, normal.x) * czm_oneOverTwoPi + 0.5, asin(normal.z) * czm_oneOverPi + 0.5); +} +`;var DO=`/** + * Compares <code>left</code> and <code>right</code> componentwise. Returns <code>true</code> + * if they are within <code>epsilon</code> and <code>false</code> otherwise. The inputs + * <code>left</code> and <code>right</code> can be <code>float</code>s, <code>vec2</code>s, + * <code>vec3</code>s, or <code>vec4</code>s. + * + * @name czm_equalsEpsilon + * @glslFunction + * + * @param {} left The first vector. + * @param {} right The second vector. + * @param {float} epsilon The epsilon to use for equality testing. + * @returns {bool} <code>true</code> if the components are within <code>epsilon</code> and <code>false</code> otherwise. + * + * @example + * // GLSL declarations + * bool czm_equalsEpsilon(float left, float right, float epsilon); + * bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon); + * bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon); + * bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon); + */ +bool czm_equalsEpsilon(vec4 left, vec4 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec4(epsilon))); +} + +bool czm_equalsEpsilon(vec3 left, vec3 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec3(epsilon))); +} + +bool czm_equalsEpsilon(vec2 left, vec2 right, float epsilon) { + return all(lessThanEqual(abs(left - right), vec2(epsilon))); +} + +bool czm_equalsEpsilon(float left, float right, float epsilon) { + return (abs(left - right) <= epsilon); +} +`;var IO=`/** + * DOC_TBA + * + * @name czm_eyeOffset + * @glslFunction + * + * @param {vec4} positionEC DOC_TBA. + * @param {vec3} eyeOffset DOC_TBA. + * + * @returns {vec4} DOC_TBA. + */ +vec4 czm_eyeOffset(vec4 positionEC, vec3 eyeOffset) +{ + // This equation is approximate in x and y. + vec4 p = positionEC; + vec4 zEyeOffset = normalize(p) * eyeOffset.z; + p.xy += eyeOffset.xy + zEyeOffset.xy; + p.z += zEyeOffset.z; + return p; +} +`;var PO=`/** + * Transforms a position from eye to window coordinates. The transformation + * from eye to clip coordinates is done using {@link czm_projection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * + * @name czm_eyeToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in eye coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_projection + * @see czm_viewportTransformation + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + */ +vec4 czm_eyeToWindowCoordinates(vec4 positionEC) +{ + vec4 q = czm_projection * positionEC; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var RO=`/** + * Approxiamtes atan over the range [0, 1]. Safe to flip output for negative input. + * + * Based on Michal Drobot's approximation from ShaderFastLibs, which in turn is based on + * "Efficient approximations for the arctangent function," Rajan, S. Sichun Wang Inkol, R. Joyal, A., May 2006. + * Adapted from ShaderFastLibs under MIT License. + * + * Chosen for the following characteristics over range [0, 1]: + * - basically no error at 0 and 1, important for getting around range limit (naive atan2 via atan requires infinite range atan) + * - no visible artifacts from first-derivative discontinuities, unlike latitude via range-reduced sqrt asin approximations (at equator) + * + * The original code is x * (-0.1784 * abs(x) - 0.0663 * x * x + 1.0301); + * Removed the abs() in here because it isn't needed, the input range is guaranteed as [0, 1] by how we're approximating atan2. + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between 0 and 1 inclusive. + * + * @returns {float} Approximation of atan(x) + */ +float czm_fastApproximateAtan(float x) { + return x * (-0.1784 * x - 0.0663 * x * x + 1.0301); +} + +/** + * Approximation of atan2. + * + * Range reduction math based on nvidia's cg reference implementation for atan2: http://developer.download.nvidia.com/cg/atan2.html + * However, we replaced their atan curve with Michael Drobot's (see above). + * + * @name czm_fastApproximateAtan + * @glslFunction + * + * @param {float} x Value between -1 and 1 inclusive. + * @param {float} y Value between -1 and 1 inclusive. + * + * @returns {float} Approximation of atan2(x, y) + */ +float czm_fastApproximateAtan(float x, float y) { + // atan approximations are usually only reliable over [-1, 1], or, in our case, [0, 1] due to modifications. + // So range-reduce using abs and by flipping whether x or y is on top. + float t = abs(x); // t used as swap and atan result. + float opposite = abs(y); + float adjacent = max(t, opposite); + opposite = min(t, opposite); + + t = czm_fastApproximateAtan(opposite / adjacent); + + // Undo range reduction + t = czm_branchFreeTernary(abs(y) > abs(x), czm_piOverTwo - t, t); + t = czm_branchFreeTernary(x < 0.0, czm_pi - t, t); + t = czm_branchFreeTernary(y < 0.0, -t, t); + return t; +} +`;var OO=`/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-(scalar * scalar)); + return mix(color, fogColor, fog); +} + +/** + * Gets the color with fog at a distance from the camera. + * + * @name czm_fog + * @glslFunction + * + * @param {float} distanceToCamera The distance to the camera in meters. + * @param {vec3} color The original color. + * @param {vec3} fogColor The color of the fog. + * @param {float} fogModifierConstant A constant to modify the appearance of fog. + * + * @returns {vec3} The color adjusted for fog at the distance from the camera. + */ +vec3 czm_fog(float distanceToCamera, vec3 color, vec3 fogColor, float fogModifierConstant) +{ + float scalar = distanceToCamera * czm_fogDensity; + float fog = 1.0 - exp(-((fogModifierConstant * scalar + fogModifierConstant) * (scalar * (1.0 + fogModifierConstant)))); + return mix(color, fogColor, fog); +} +`;var MO=`/** + * Converts a color from RGB space to linear space. + * + * @name czm_gammaCorrect + * @glslFunction + * + * @param {vec3} color The color in RGB space. + * @returns {vec3} The color in linear space. + */ +vec3 czm_gammaCorrect(vec3 color) { +#ifdef HDR + color = pow(color, vec3(czm_gamma)); +#endif + return color; +} + +vec4 czm_gammaCorrect(vec4 color) { +#ifdef HDR + color.rgb = pow(color.rgb, vec3(czm_gamma)); +#endif + return color; +} +`;var LO=`/** + * DOC_TBA + * + * @name czm_geodeticSurfaceNormal + * @glslFunction + * + * @param {vec3} positionOnEllipsoid DOC_TBA + * @param {vec3} ellipsoidCenter DOC_TBA + * @param {vec3} oneOverEllipsoidRadiiSquared DOC_TBA + * + * @returns {vec3} DOC_TBA. + */ +vec3 czm_geodeticSurfaceNormal(vec3 positionOnEllipsoid, vec3 ellipsoidCenter, vec3 oneOverEllipsoidRadiiSquared) +{ + return normalize((positionOnEllipsoid - ellipsoidCenter) * oneOverEllipsoidRadiiSquared); +} +`;var NO=`/** + * An czm_material with default values. Every material's czm_getMaterial + * should use this default material as a base for the material it returns. + * The default normal value is given by materialInput.normalEC. + * + * @name czm_getDefaultMaterial + * @glslFunction + * + * @param {czm_materialInput} input The input used to construct the default material. + * + * @returns {czm_material} The default material. + * + * @see czm_materialInput + * @see czm_material + * @see czm_getMaterial + */ +czm_material czm_getDefaultMaterial(czm_materialInput materialInput) +{ + czm_material material; + material.diffuse = vec3(0.0); + material.specular = 0.0; + material.shininess = 1.0; + material.normal = materialInput.normalEC; + material.emission = vec3(0.0); + material.alpha = 1.0; + return material; +} +`;var FO=`/** + * Select which direction vector to use for dynamic atmosphere lighting based on an enum value + * + * @name czm_getDynamicAtmosphereLightDirection + * @glslfunction + * @see DynamicAtmosphereLightingType.js + * + * @param {vec3} positionWC the position of the vertex/fragment in world coordinates. This is normalized and returned when dynamic lighting is turned off. + * @param {float} lightEnum The enum value for selecting between light sources. + * @return {vec3} The normalized light direction vector. Depending on the enum value, it is either positionWC, czm_lightDirectionWC or czm_sunDirectionWC + */ +vec3 czm_getDynamicAtmosphereLightDirection(vec3 positionWC, float lightEnum) { + const float NONE = 0.0; + const float SCENE_LIGHT = 1.0; + const float SUNLIGHT = 2.0; + + vec3 lightDirection = + positionWC * float(lightEnum == NONE) + + czm_lightDirectionWC * float(lightEnum == SCENE_LIGHT) + + czm_sunDirectionWC * float(lightEnum == SUNLIGHT); + return normalize(lightDirection); +} +`;var BO=`/** + * Calculates the intensity of diffusely reflected light. + * + * @name czm_getLambertDiffuse + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * + * @returns {float} The intensity of the diffuse reflection. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getLambertDiffuse(vec3 lightDirectionEC, vec3 normalEC) +{ + return max(dot(lightDirectionEC, normalEC), 0.0); +} +`;var kO=`/** + * Calculates the specular intensity of reflected light. + * + * @name czm_getSpecular + * @glslFunction + * + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {vec3} toEyeEC Unit vector pointing to the eye position in eye coordinates. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {float} shininess The sharpness of the specular reflection. Higher values create a smaller, more focused specular highlight. + * + * @returns {float} The intensity of the specular highlight. + * + * @see czm_phong + * + * @example + * float diffuseIntensity = czm_getLambertDiffuse(lightDirectionEC, normalEC); + * float specularIntensity = czm_getSpecular(lightDirectionEC, toEyeEC, normalEC, 200); + * vec3 color = (diffuseColor * diffuseIntensity) + (specularColor * specularIntensity); + */ +float czm_getSpecular(vec3 lightDirectionEC, vec3 toEyeEC, vec3 normalEC, float shininess) +{ + vec3 toReflectedLight = reflect(-lightDirectionEC, normalEC); + float specular = max(dot(toReflectedLight, toEyeEC), 0.0); + + // pow has undefined behavior if both parameters <= 0. + // Prevent this by making sure shininess is at least czm_epsilon2. + return pow(specular, max(shininess, czm_epsilon2)); +} +`;var VO=`/** + * @private + */ +vec4 czm_getWaterNoise(sampler2D normalMap, vec2 uv, float time, float angleInRadians) +{ + float cosAngle = cos(angleInRadians); + float sinAngle = sin(angleInRadians); + + // time dependent sampling directions + vec2 s0 = vec2(1.0/17.0, 0.0); + vec2 s1 = vec2(-1.0/29.0, 0.0); + vec2 s2 = vec2(1.0/101.0, 1.0/59.0); + vec2 s3 = vec2(-1.0/109.0, -1.0/57.0); + + // rotate sampling direction by specified angle + s0 = vec2((cosAngle * s0.x) - (sinAngle * s0.y), (sinAngle * s0.x) + (cosAngle * s0.y)); + s1 = vec2((cosAngle * s1.x) - (sinAngle * s1.y), (sinAngle * s1.x) + (cosAngle * s1.y)); + s2 = vec2((cosAngle * s2.x) - (sinAngle * s2.y), (sinAngle * s2.x) + (cosAngle * s2.y)); + s3 = vec2((cosAngle * s3.x) - (sinAngle * s3.y), (sinAngle * s3.x) + (cosAngle * s3.y)); + + vec2 uv0 = (uv/103.0) + (time * s0); + vec2 uv1 = uv/107.0 + (time * s1) + vec2(0.23); + vec2 uv2 = uv/vec2(897.0, 983.0) + (time * s2) + vec2(0.51); + vec2 uv3 = uv/vec2(991.0, 877.0) + (time * s3) + vec2(0.71); + + uv0 = fract(uv0); + uv1 = fract(uv1); + uv2 = fract(uv2); + uv3 = fract(uv3); + vec4 noise = (texture(normalMap, uv0)) + + (texture(normalMap, uv1)) + + (texture(normalMap, uv2)) + + (texture(normalMap, uv3)); + + // average and scale to between -1 and 1 + return ((noise / 4.0) - 0.5) * 2.0; +} +`;var UO=`/** + * Adjusts the hue of a color. + * + * @name czm_hue + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the hue of the color in radians. + * + * @returns {float} The color with the hue adjusted. + * + * @example + * vec3 adjustHue = czm_hue(color, czm_pi); // The same as czm_hue(color, -czm_pi) + */ +vec3 czm_hue(vec3 rgb, float adjustment) +{ + const mat3 toYIQ = mat3(0.299, 0.587, 0.114, + 0.595716, -0.274453, -0.321263, + 0.211456, -0.522591, 0.311135); + const mat3 toRGB = mat3(1.0, 0.9563, 0.6210, + 1.0, -0.2721, -0.6474, + 1.0, -1.107, 1.7046); + + vec3 yiq = toYIQ * rgb; + float hue = atan(yiq.z, yiq.y) + adjustment; + float chroma = sqrt(yiq.z * yiq.z + yiq.y * yiq.y); + + vec3 color = vec3(yiq.x, chroma * cos(hue), chroma * sin(hue)); + return toRGB * color; +} +`;var zO=`/** + * Converts a color in linear space to RGB space. + * + * @name czm_inverseGamma + * @glslFunction + * + * @param {vec3} color The color in linear space. + * @returns {vec3} The color in RGB space. + */ +vec3 czm_inverseGamma(vec3 color) { + return pow(color, vec3(1.0 / czm_gamma)); +} +`;var HO=`/** + * Determines if a time interval is empty. + * + * @name czm_isEmpty + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isEmpty(czm_raySegment interval) +{ + return (interval.stop < 0.0); +} +`;var GO=`/** + * Determines if a time interval is empty. + * + * @name czm_isFull + * @glslFunction + * + * @param {czm_raySegment} interval The interval to test. + * + * @returns {bool} <code>true</code> if the time interval is empty; otherwise, <code>false</code>. + * + * @example + * bool b0 = czm_isEmpty(czm_emptyRaySegment); // true + * bool b1 = czm_isEmpty(czm_raySegment(0.0, 1.0)); // false + * bool b2 = czm_isEmpty(czm_raySegment(1.0, 1.0)); // false, contains 1.0. + */ +bool czm_isFull(czm_raySegment interval) +{ + return (interval.start == 0.0 && interval.stop == czm_infinity); +} +`;var WO=`/** + * Computes the fraction of a Web Wercator rectangle at which a given geodetic latitude is located. + * + * @name czm_latitudeToWebMercatorFraction + * @glslFunction + * + * @param {float} latitude The geodetic latitude, in radians. + * @param {float} southMercatorY The Web Mercator coordinate of the southern boundary of the rectangle. + * @param {float} oneOverMercatorHeight The total height of the rectangle in Web Mercator coordinates. + * + * @returns {float} The fraction of the rectangle at which the latitude occurs. If the latitude is the southern + * boundary of the rectangle, the return value will be zero. If it is the northern boundary, the return + * value will be 1.0. Latitudes in between are mapped according to the Web Mercator projection. + */ +float czm_latitudeToWebMercatorFraction(float latitude, float southMercatorY, float oneOverMercatorHeight) +{ + float sinLatitude = sin(latitude); + float mercatorY = 0.5 * log((1.0 + sinLatitude) / (1.0 - sinLatitude)); + + return (mercatorY - southMercatorY) * oneOverMercatorHeight; +} +`;var jO=`/** + * Computes distance from an point in 2D to a line in 2D. + * + * @name czm_lineDistance + * @glslFunction + * + * param {vec2} point1 A point along the line. + * param {vec2} point2 A point along the line. + * param {vec2} point A point that may or may not be on the line. + * returns {float} The distance from the point to the line. + */ +float czm_lineDistance(vec2 point1, vec2 point2, vec2 point) { + return abs((point2.y - point1.y) * point.x - (point2.x - point1.x) * point.y + point2.x * point1.y - point2.y * point1.x) / distance(point2, point1); +} +`;var qO=`/** + * Converts a linear RGB color to an sRGB color. + * + * @param {vec3|vec4} linearIn The color in linear color space. + * @returns {vec3|vec4} The color in sRGB color space. The vector type matches the input. + */ +vec3 czm_linearToSrgb(vec3 linearIn) +{ + return pow(linearIn, vec3(1.0/2.2)); +} + +vec4 czm_linearToSrgb(vec4 linearIn) +{ + vec3 srgbOut = pow(linearIn.rgb, vec3(1.0/2.2)); + return vec4(srgbOut, linearIn.a); +} +`;var YO=`/** + * Computes the luminance of a color. + * + * @name czm_luminance + * @glslFunction + * + * @param {vec3} rgb The color. + * + * @returns {float} The luminance. + * + * @example + * float light = czm_luminance(vec3(0.0)); // 0.0 + * float dark = czm_luminance(vec3(1.0)); // ~1.0 + */ +float czm_luminance(vec3 rgb) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + return dot(rgb, W); +} +`;var XO=`/** + * Find the maximum component of a vector. + * + * @name czm_maximumComponent + * @glslFunction + * + * @param {vec2|vec3|vec4} v The input vector. + * @returns {float} The value of the largest component. + */ +float czm_maximumComponent(vec2 v) +{ + return max(v.x, v.y); +} +float czm_maximumComponent(vec3 v) +{ + return max(max(v.x, v.y), v.z); +} +float czm_maximumComponent(vec4 v) +{ + return max(max(max(v.x, v.y), v.z), v.w); +} +`;var KO=`/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when passing in a custom pixel ratio. For example, passing in 1.0 will return meters per native device pixel. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * @param {float} pixelRatio The scaling factor from pixel space to coordinate space + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC, float pixelRatio) +{ + float width = czm_viewport.z; + float height = czm_viewport.w; + float pixelWidth; + float pixelHeight; + + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + if (czm_sceneMode == czm_sceneMode2D || czm_orthographicIn3D == 1.0) + { + float frustumWidth = right - left; + float frustumHeight = top - bottom; + pixelWidth = frustumWidth / width; + pixelHeight = frustumHeight / height; + } + else + { + float distanceToPixel = -positionEC.z; + float inverseNear = 1.0 / czm_currentFrustum.x; + float tanTheta = top * inverseNear; + pixelHeight = 2.0 * distanceToPixel * tanTheta / height; + tanTheta = right * inverseNear; + pixelWidth = 2.0 * distanceToPixel * tanTheta / width; + } + + return max(pixelWidth, pixelHeight) * pixelRatio; +} + +/** + * Computes the size of a pixel in meters at a distance from the eye. + * <p> + * Use this version when scaling by pixel ratio. + * </p> + * @name czm_metersPerPixel + * @glslFunction + * + * @param {vec3} positionEC The position to get the meters per pixel in eye coordinates. + * + * @returns {float} The meters per pixel at positionEC. + */ +float czm_metersPerPixel(vec4 positionEC) +{ + return czm_metersPerPixel(positionEC, czm_pixelRatio); +} +`;var ZO=`/** + * Transforms a position from model to window coordinates. The transformation + * from model to clip coordinates is done using {@link czm_modelViewProjection}. + * The transform from normalized device coordinates to window coordinates is + * done using {@link czm_viewportTransformation}, which assumes a depth range + * of <code>near = 0</code> and <code>far = 1</code>. + * <br /><br /> + * This transform is useful when there is a need to manipulate window coordinates + * in a vertex shader as done by {@link BillboardCollection}. + * <br /><br /> + * This function should not be confused with {@link czm_viewportOrthographic}, + * which is an orthographic projection matrix that transforms from window + * coordinates to clip coordinates. + * + * @name czm_modelToWindowCoordinates + * @glslFunction + * + * @param {vec4} position The position in model coordinates to transform. + * + * @returns {vec4} The transformed position in window coordinates. + * + * @see czm_eyeToWindowCoordinates + * @see czm_modelViewProjection + * @see czm_viewportTransformation + * @see czm_viewportOrthographic + * @see BillboardCollection + * + * @example + * vec4 positionWC = czm_modelToWindowCoordinates(positionMC); + */ +vec4 czm_modelToWindowCoordinates(vec4 position) +{ + vec4 q = czm_modelViewProjection * position; // clip coordinates + q.xyz /= q.w; // normalized device coordinates + q.xyz = (czm_viewportTransformation * vec4(q.xyz, 1.0)).xyz; // window coordinates + return q; +} +`;var $O=`/** + * DOC_TBA + * + * @name czm_multiplyWithColorBalance + * @glslFunction + */ +vec3 czm_multiplyWithColorBalance(vec3 left, vec3 right) +{ + // Algorithm from Chapter 10 of Graphics Shaders. + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + + vec3 target = left * right; + float leftLuminance = dot(left, W); + float rightLuminance = dot(right, W); + float targetLuminance = dot(target, W); + + return ((leftLuminance + rightLuminance) / (2.0 * targetLuminance)) * target; +} +`;var QO=`/** + * Computes a value that scales with distance. The scaling is clamped at the near and + * far distances, and does not extrapolate. This function works with the + * {@link NearFarScalar} JavaScript class. + * + * @name czm_nearFarScalar + * @glslFunction + * + * @param {vec4} nearFarScalar A vector with 4 components: Near distance (x), Near value (y), Far distance (z), Far value (w). + * @param {float} cameraDistSq The square of the current distance from the camera. + * + * @returns {float} The value at this distance. + */ +float czm_nearFarScalar(vec4 nearFarScalar, float cameraDistSq) +{ + float valueAtMin = nearFarScalar.y; + float valueAtMax = nearFarScalar.w; + float nearDistanceSq = nearFarScalar.x * nearFarScalar.x; + float farDistanceSq = nearFarScalar.z * nearFarScalar.z; + + float t = (cameraDistSq - nearDistanceSq) / (farDistanceSq - nearDistanceSq); + + t = pow(clamp(t, 0.0, 1.0), 0.2); + + return mix(valueAtMin, valueAtMax, t); +} +`;var JO=` /** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @param {float} range The maximum value of the SNORM range. The encoded vector is stored in log2(rangeMax+1) bits. + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded, float range) + { + if (encoded.x == 0.0 && encoded.y == 0.0) { + return vec3(0.0, 0.0, 0.0); + } + + encoded = encoded / range * 2.0 - 1.0; + vec3 v = vec3(encoded.x, encoded.y, 1.0 - abs(encoded.x) - abs(encoded.y)); + if (v.z < 0.0) + { + v.xy = (1.0 - abs(v.yx)) * czm_signNotZero(v.xy); + } + + return normalize(v); + } + +/** + * Decodes a unit-length vector in 'oct' encoding to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(vec2 encoded) + { + return czm_octDecode(encoded, 255.0); + } + + /** + * Decodes a unit-length vector in 'oct' encoding packed into a floating-point number to a normalized 3-component Cartesian vector. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {float} encoded The oct-encoded, unit-length vector + * @returns {vec3} The decoded and normalized vector + */ + vec3 czm_octDecode(float encoded) + { + float temp = encoded / 256.0; + float x = floor(temp); + float y = (temp - x) * 256.0; + return czm_octDecode(vec2(x, y)); + } + +/** + * Decodes three unit-length vectors in 'oct' encoding packed into two floating-point numbers to normalized 3-component Cartesian vectors. + * The 'oct' encoding is described in "A Survey of Efficient Representations of Independent Unit Vectors", + * Cigolle et al 2014: http://jcgt.org/published/0003/02/01/ + * + * @name czm_octDecode + * @param {vec2} encoded The packed oct-encoded, unit-length vectors. + * @param {vec3} vector1 One decoded and normalized vector. + * @param {vec3} vector2 One decoded and normalized vector. + * @param {vec3} vector3 One decoded and normalized vector. + */ + void czm_octDecode(vec2 encoded, out vec3 vector1, out vec3 vector2, out vec3 vector3) + { + float temp = encoded.x / 65536.0; + float x = floor(temp); + float encodedFloat1 = (temp - x) * 65536.0; + + temp = encoded.y / 65536.0; + float y = floor(temp); + float encodedFloat2 = (temp - y) * 65536.0; + + vector1 = czm_octDecode(encodedFloat1); + vector2 = czm_octDecode(encodedFloat2); + vector3 = czm_octDecode(vec2(x, y)); + } + +`;var eM=`/** + * Packs a depth value into a vec4 that can be represented by unsigned bytes. + * + * @name czm_packDepth + * @glslFunction + * + * @param {float} depth The floating-point depth. + * @returns {vec4} The packed depth. + */ +vec4 czm_packDepth(float depth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + vec4 enc = vec4(1.0, 255.0, 65025.0, 16581375.0) * depth; + enc = fract(enc); + enc -= enc.yzww * vec4(1.0 / 255.0, 1.0 / 255.0, 1.0 / 255.0, 0.0); + return enc; +} +`;var tM=`vec3 lambertianDiffuse(vec3 diffuseColor) +{ + return diffuseColor / czm_pi; +} + +vec3 fresnelSchlick2(vec3 f0, vec3 f90, float VdotH) +{ + float versine = 1.0 - VdotH; + // pow(versine, 5.0) is slow. See https://stackoverflow.com/a/68793086/10082269 + float versineSquared = versine * versine; + return f0 + (f90 - f0) * versineSquared * versineSquared * versine; +} + +#ifdef USE_ANISOTROPY +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} lightDirection The direction from the fragment to the light source, transformed to tangent-bitangent-normal coordinates + * @param {vec3} viewDirection The direction from the fragment to the camera, transformed to tangent-bitangent-normal coordinates + */ +float smithVisibilityGGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 lightDirection, vec3 viewDirection) +{ + vec3 roughnessScale = vec3(tangentialRoughness, bitangentRoughness, 1.0); + float GGXV = lightDirection.z * length(roughnessScale * viewDirection); + float GGXL = viewDirection.z * length(roughnessScale * lightDirection); + float v = 0.5 / (GGXV + GGXL); + return clamp(v, 0.0, 1.0); +} + +/** + * @param {float} bitangentRoughness Material roughness (along the anisotropy bitangent) + * @param {float} tangentialRoughness Anisotropic roughness (along the anisotropy tangent) + * @param {vec3} halfwayDirection The unit vector halfway between light and view directions, transformed to tangent-bitangent-normal coordinates + */ +float GGX_anisotropic(float bitangentRoughness, float tangentialRoughness, vec3 halfwayDirection) +{ + float roughnessSquared = bitangentRoughness * tangentialRoughness; + vec3 f = halfwayDirection * vec3(bitangentRoughness, tangentialRoughness, roughnessSquared); + float w2 = roughnessSquared / dot(f, f); + return roughnessSquared * w2 * w2 / czm_pi; +} +#endif + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; + if (GGX > 0.0) + { + return 0.5 / GGX; + } + return 0.0; +} + +/** + * Estimate the fraction of the microfacets in a surface that are aligned with + * the halfway vector, which is aligned halfway between the directions from + * the fragment to the camera and from the fragment to the light source. + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotH The cosine of the angle between the surface normal and the halfway vector. + * @return {float} The fraction of microfacets aligned to the halfway vector. + */ +float GGX(float alphaRoughness, float NdotH) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float f = (NdotH * alphaRoughnessSquared - NdotH) * NdotH + 1.0; + return alphaRoughnessSquared / (czm_pi * f * f); +} + +/** + * Compute the strength of the specular reflection due to direct lighting. + * + * @param {vec3} normal The surface normal. + * @param {vec3} lightDirection The unit vector pointing from the fragment to the light source. + * @param {vec3} viewDirection The unit vector pointing from the fragment to the camera. + * @param {vec3} halfwayDirection The unit vector pointing from the fragment to halfway between the light source and the camera. + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @return {float} The strength of the specular reflection. + */ +float computeDirectSpecularStrength(vec3 normal, vec3 lightDirection, vec3 viewDirection, vec3 halfwayDirection, float alphaRoughness) +{ + float NdotL = clamp(dot(normal, lightDirection), 0.0, 1.0); + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float NdotH = clamp(dot(normal, halfwayDirection), 0.0, 1.0); + float D = GGX(alphaRoughness, NdotH); + return G * D; +} + +/** + * Compute the diffuse and specular contributions using physically based + * rendering. This function only handles direct lighting. + * <p> + * This function only handles the lighting calculations. Metallic/roughness + * and specular/glossy must be handled separately. See {@MaterialStageFS} + * </p> + * + * @name czm_pbrLighting + * @glslFunction + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position + * @param {vec3} normalEC The surface normal in eye coordinates + * @param {vec3} lightDirectionEC Unit vector pointing to the light source in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color + */ +vec3 czm_pbrLighting(vec3 viewDirectionEC, vec3 normalEC, vec3 lightDirectionEC, czm_modelMaterial material) +{ + vec3 halfwayDirectionEC = normalize(viewDirectionEC + lightDirectionEC); + float VdotH = clamp(dot(viewDirectionEC, halfwayDirectionEC), 0.0, 1.0); + float NdotL = clamp(dot(normalEC, lightDirectionEC), 0.001, 1.0); + + vec3 f0 = material.specular; + float reflectance = czm_maximumComponent(f0); + // Typical dielectrics will have reflectance 0.04, so f90 will be 1.0. + // In this case, at grazing angle, all incident energy is reflected. + vec3 f90 = vec3(clamp(reflectance * 25.0, 0.0, 1.0)); + vec3 F = fresnelSchlick2(f0, f90, VdotH); + + #if defined(USE_SPECULAR) + F *= material.specularWeight; + #endif + + float alphaRoughness = material.roughness * material.roughness; + #ifdef USE_ANISOTROPY + mat3 tbn = mat3(material.anisotropicT, material.anisotropicB, normalEC); + vec3 lightDirection = lightDirectionEC * tbn; + vec3 viewDirection = viewDirectionEC * tbn; + vec3 halfwayDirection = halfwayDirectionEC * tbn; + float anisotropyStrength = material.anisotropyStrength; + float tangentialRoughness = mix(alphaRoughness, 1.0, anisotropyStrength * anisotropyStrength); + float bitangentRoughness = clamp(alphaRoughness, 0.001, 1.0); + float G = smithVisibilityGGX_anisotropic(bitangentRoughness, tangentialRoughness, lightDirection, viewDirection); + float D = GGX_anisotropic(bitangentRoughness, tangentialRoughness, halfwayDirection); + vec3 specularContribution = F * G * D; + #else + float specularStrength = computeDirectSpecularStrength(normalEC, lightDirectionEC, viewDirectionEC, halfwayDirectionEC, alphaRoughness); + vec3 specularContribution = F * specularStrength; + #endif + + vec3 diffuseColor = material.diffuse; + // F here represents the specular contribution + vec3 diffuseContribution = (1.0 - F) * lambertianDiffuse(diffuseColor); + + // Lo = (diffuse + specular) * Li * NdotL + return (diffuseContribution + specularContribution) * NdotL; +} +`;var nM=`// KhronosGroup https://github.com/KhronosGroup/ToneMapping/tree/main/PBR_Neutral + +// Input color is non-negative and resides in the Linear Rec. 709 color space. +// Output color is also Linear Rec. 709, but in the [0, 1] range. + +vec3 czm_pbrNeutralTonemapping(vec3 color) { + const float startCompression = 0.8 - 0.04; + const float desaturation = 0.15; + + float x = min(color.r, min(color.g, color.b)); + float offset = czm_branchFreeTernary(x < 0.08, x - 6.25 * x * x, 0.04); + color -= offset; + + float peak = max(color.r, max(color.g, color.b)); + if (peak < startCompression) return color; + + const float d = 1.0 - startCompression; + float newPeak = 1.0 - d * d / (peak + d - startCompression); + color *= newPeak / peak; + + float g = 1.0 - 1.0 / (desaturation * (peak - newPeak) + 1.0); + return mix(color, newPeak * vec3(1.0, 1.0, 1.0), g); +} +`;var iM=`float czm_private_getLambertDiffuseOfMaterial(vec3 lightDirectionEC, czm_material material) +{ + return czm_getLambertDiffuse(lightDirectionEC, material.normal); +} + +float czm_private_getSpecularOfMaterial(vec3 lightDirectionEC, vec3 toEyeEC, czm_material material) +{ + return czm_getSpecular(lightDirectionEC, toEyeEC, material.normal, material.shininess); +} + +/** + * Computes a color using the Phong lighting model. + * + * @name czm_phong + * @glslFunction + * + * @param {vec3} toEye A normalized vector from the fragment to the eye in eye coordinates. + * @param {czm_material} material The fragment's material. + * + * @returns {vec4} The computed color. + * + * @example + * vec3 positionToEyeEC = // ... + * czm_material material = // ... + * vec3 lightDirectionEC = // ... + * out_FragColor = czm_phong(normalize(positionToEyeEC), material, lightDirectionEC); + * + * @see czm_getMaterial + */ +vec4 czm_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down) + float diffuse = czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 0.0, 1.0), material); + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_private_getLambertDiffuseOfMaterial(vec3(0.0, 1.0, 0.0), material); + } + + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} + +vec4 czm_private_phong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + float diffuse = czm_private_getLambertDiffuseOfMaterial(lightDirectionEC, material); + float specular = czm_private_getSpecularOfMaterial(lightDirectionEC, toEye, material); + + vec3 ambient = vec3(0.0); + vec3 color = ambient + material.emission; + color += material.diffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var oM=`/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec4} plane A Plane in Hessian Normal Form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec4 plane, vec3 point) { + return (dot(plane.xyz, point) + plane.w); +} + +/** + * Computes distance from a point to a plane. + * + * @name czm_planeDistance + * @glslFunction + * + * param {vec3} planeNormal Normal for a plane in Hessian Normal Form. See Plane.js + * param {float} planeDistance Distance for a plane in Hessian Normal form. See Plane.js + * param {vec3} point A point in the same space as the plane. + * returns {float} The distance from the point to the plane. + */ +float czm_planeDistance(vec3 planeNormal, float planeDistance, vec3 point) { + return (dot(planeNormal, point) + planeDistance); +} +`;var rM=`/** + * Computes the point along a ray at the given time. <code>time</code> can be positive, negative, or zero. + * + * @name czm_pointAlongRay + * @glslFunction + * + * @param {czm_ray} ray The ray to compute the point along. + * @param {float} time The time along the ray. + * + * @returns {vec3} The point along the ray at the given time. + * + * @example + * czm_ray ray = czm_ray(vec3(0.0), vec3(1.0, 0.0, 0.0)); // origin, direction + * vec3 v = czm_pointAlongRay(ray, 2.0); // (2.0, 0.0, 0.0) + */ +vec3 czm_pointAlongRay(czm_ray ray, float time) +{ + return ray.origin + (time * ray.direction); +} +`;var sM=`/** + * DOC_TBA + * + * @name czm_rayEllipsoidIntersectionInterval + * @glslFunction + */ +czm_raySegment czm_rayEllipsoidIntersectionInterval(czm_ray ray, vec3 ellipsoid_center, vec3 ellipsoid_inverseRadii) +{ + // ray and ellipsoid center in eye coordinates. radii in model coordinates. + vec3 q = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.origin, 1.0)).xyz; + vec3 w = ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ray.direction, 0.0)).xyz; + + q = q - ellipsoid_inverseRadii * (czm_inverseModelView * vec4(ellipsoid_center, 1.0)).xyz; + + float q2 = dot(q, q); + float qw = dot(q, w); + + if (q2 > 1.0) // Outside ellipsoid. + { + if (qw >= 0.0) // Looking outward or tangent (0 intersections). + { + return czm_emptyRaySegment; + } + else // qw < 0.0. + { + float qw2 = qw * qw; + float difference = q2 - 1.0; // Positively valued. + float w2 = dot(w, w); + float product = w2 * difference; + + if (qw2 < product) // Imaginary roots (0 intersections). + { + return czm_emptyRaySegment; + } + else if (qw2 > product) // Distinct roots (2 intersections). + { + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Avoid cancellation. + float root0 = temp / w2; + float root1 = difference / temp; + if (root0 < root1) + { + czm_raySegment i = czm_raySegment(root0, root1); + return i; + } + else + { + czm_raySegment i = czm_raySegment(root1, root0); + return i; + } + } + else // qw2 == product. Repeated roots (2 intersections). + { + float root = sqrt(difference / w2); + czm_raySegment i = czm_raySegment(root, root); + return i; + } + } + } + else if (q2 < 1.0) // Inside ellipsoid (2 intersections). + { + float difference = q2 - 1.0; // Negatively valued. + float w2 = dot(w, w); + float product = w2 * difference; // Negatively valued. + float discriminant = qw * qw - product; + float temp = -qw + sqrt(discriminant); // Positively valued. + czm_raySegment i = czm_raySegment(0.0, temp / w2); + return i; + } + else // q2 == 1.0. On ellipsoid. + { + if (qw < 0.0) // Looking inward. + { + float w2 = dot(w, w); + czm_raySegment i = czm_raySegment(0.0, -qw / w2); + return i; + } + else // qw >= 0.0. Looking outward or tangent. + { + return czm_emptyRaySegment; + } + } +} +`;var aM=`/** + * Compute the intersection interval of a ray with a sphere. + * + * @name czm_raySphereIntersectionInterval + * @glslFunction + * + * @param {czm_ray} ray The ray. + * @param {vec3} center The center of the sphere. + * @param {float} radius The radius of the sphere. + * @return {czm_raySegment} The intersection interval of the ray with the sphere. + */ +czm_raySegment czm_raySphereIntersectionInterval(czm_ray ray, vec3 center, float radius) +{ + vec3 o = ray.origin; + vec3 d = ray.direction; + + vec3 oc = o - center; + + float a = dot(d, d); + float b = 2.0 * dot(d, oc); + float c = dot(oc, oc) - (radius * radius); + + float det = (b * b) - (4.0 * a * c); + + if (det < 0.0) { + return czm_emptyRaySegment; + } + + float sqrtDet = sqrt(det); + + float t0 = (-b - sqrtDet) / (2.0 * a); + float t1 = (-b + sqrtDet) / (2.0 * a); + + czm_raySegment result = czm_raySegment(t0, t1); + return result; +} +`;var cM=`float czm_readDepth(sampler2D depthTexture, vec2 texCoords) +{ + return czm_reverseLogDepth(texture(depthTexture, texCoords).r); +} +`;var lM=`/** + * Reads a value previously transformed with {@link czm_writeNonPerspective} + * by dividing it by \`w\`, the value used in the perspective divide. + * This function is intended to be called in a fragment shader to access a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The value should have been + * previously written in the vertex shader with a call to + * {@link czm_writeNonPerspective}. + * + * @name czm_readNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The non-perspective value to be read. + * @param {float} oneOverW One over the perspective divide value, \`w\`. Usually this is simply \`gl_FragCoord.w\`. + * @returns {float|vec2|vec3|vec4} The usable value. + */ +float czm_readNonPerspective(float value, float oneOverW) { + return value * oneOverW; +} + +vec2 czm_readNonPerspective(vec2 value, float oneOverW) { + return value * oneOverW; +} + +vec3 czm_readNonPerspective(vec3 value, float oneOverW) { + return value * oneOverW; +} + +vec4 czm_readNonPerspective(vec4 value, float oneOverW) { + return value * oneOverW; +} +`;var uM=`float czm_reverseLogDepth(float logZ) +{ +#ifdef LOG_DEPTH + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = logZ * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = pow(2.0, log2Depth) - 1.0; + return far * (1.0 - near / (depthFromNear + near)) / (far - near); +#endif + return logZ; +} +`;var fM=`/** + * Round a floating point value. This function exists because round() doesn't + * exist in GLSL 1.00. + * + * @param {float|vec2|vec3|vec4} value The value to round + * @param {float|vec2|vec3|vec3} The rounded value. The type matches the input. + */ +float czm_round(float value) { + return floor(value + 0.5); +} + +vec2 czm_round(vec2 value) { + return floor(value + 0.5); +} + +vec3 czm_round(vec3 value) { + return floor(value + 0.5); +} + +vec4 czm_round(vec4 value) { + return floor(value + 0.5); +} +`;var dM=`/** + * Adjusts the saturation of a color. + * + * @name czm_saturation + * @glslFunction + * + * @param {vec3} rgb The color. + * @param {float} adjustment The amount to adjust the saturation of the color. + * + * @returns {float} The color with the saturation adjusted. + * + * @example + * vec3 greyScale = czm_saturation(color, 0.0); + * vec3 doubleSaturation = czm_saturation(color, 2.0); + */ +vec3 czm_saturation(vec3 rgb, float adjustment) +{ + // Algorithm from Chapter 16 of OpenGL Shading Language + const vec3 W = vec3(0.2125, 0.7154, 0.0721); + vec3 intensity = vec3(dot(rgb, W)); + return mix(intensity, rgb, adjustment); +} +`;var hM=` +float czm_sampleShadowMap(highp samplerCube shadowMap, vec3 d) +{ + return czm_unpackDepth(czm_textureCube(shadowMap, d)); +} + +float czm_sampleShadowMap(highp sampler2D shadowMap, vec2 uv) +{ +#ifdef USE_SHADOW_DEPTH_TEXTURE + return texture(shadowMap, uv).r; +#else + return czm_unpackDepth(texture(shadowMap, uv)); +#endif +} + +float czm_shadowDepthCompare(samplerCube shadowMap, vec3 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} + +float czm_shadowDepthCompare(sampler2D shadowMap, vec2 uv, float depth) +{ + return step(depth, czm_sampleShadowMap(shadowMap, uv)); +} +`;var mM=` +float czm_private_shadowVisibility(float visibility, float nDotL, float normalShadingSmooth, float darkness) +{ +#ifdef USE_NORMAL_SHADING +#ifdef USE_NORMAL_SHADING_SMOOTH + float strength = clamp(nDotL / normalShadingSmooth, 0.0, 1.0); +#else + float strength = step(0.0, nDotL); +#endif + visibility *= strength; +#endif + + visibility = max(visibility, darkness); + return visibility; +} + +#ifdef USE_CUBE_MAP_SHADOW +float czm_shadowVisibility(samplerCube shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec3 uvw = shadowParameters.texCoords; + + depth -= depthBias; + float visibility = czm_shadowDepthCompare(shadowMap, uvw, depth); + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#else +float czm_shadowVisibility(sampler2D shadowMap, czm_shadowParameters shadowParameters) +{ + float depthBias = shadowParameters.depthBias; + float depth = shadowParameters.depth; + float nDotL = shadowParameters.nDotL; + float normalShadingSmooth = shadowParameters.normalShadingSmooth; + float darkness = shadowParameters.darkness; + vec2 uv = shadowParameters.texCoords; + + depth -= depthBias; +#ifdef USE_SOFT_SHADOWS + vec2 texelStepSize = shadowParameters.texelStepSize; + float radius = 1.0; + float dx0 = -texelStepSize.x * radius; + float dy0 = -texelStepSize.y * radius; + float dx1 = texelStepSize.x * radius; + float dy1 = texelStepSize.y * radius; + float visibility = ( + czm_shadowDepthCompare(shadowMap, uv, depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, 0.0), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(0.0, dy1), depth) + + czm_shadowDepthCompare(shadowMap, uv + vec2(dx1, dy1), depth) + ) * (1.0 / 9.0); +#else + float visibility = czm_shadowDepthCompare(shadowMap, uv, depth); +#endif + + return czm_private_shadowVisibility(visibility, nDotL, normalShadingSmooth, darkness); +} +#endif +`;var pM=`/** + * Returns 1.0 if the given value is positive or zero, and -1.0 if it is negative. This is similar to the GLSL + * built-in function <code>sign</code> except that returns 1.0 instead of 0.0 when the input value is 0.0. + * + * @name czm_signNotZero + * @glslFunction + * + * @param {} value The value for which to determine the sign. + * @returns {} 1.0 if the value is positive or zero, -1.0 if the value is negative. + */ +float czm_signNotZero(float value) +{ + return value >= 0.0 ? 1.0 : -1.0; +} + +vec2 czm_signNotZero(vec2 value) +{ + return vec2(czm_signNotZero(value.x), czm_signNotZero(value.y)); +} + +vec3 czm_signNotZero(vec3 value) +{ + return vec3(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z)); +} + +vec4 czm_signNotZero(vec4 value) +{ + return vec4(czm_signNotZero(value.x), czm_signNotZero(value.y), czm_signNotZero(value.z), czm_signNotZero(value.w)); +} +`;var _M=`/** + * Computes a color from the third order spherical harmonic coefficients and a normalized direction vector. + * <p> + * The order of the coefficients is [L00, L1_1, L10, L11, L2_2, L2_1, L20, L21, L22]. + * </p> + * + * @name czm_sphericalHarmonics + * @glslFunction + * + * @param {vec3} normal The normalized direction. + * @param {vec3[9]} coefficients The third order spherical harmonic coefficients. + * @returns {vec3} The color at the direction. + * + * @see https://graphics.stanford.edu/papers/envmap/envmap.pdf + */ +vec3 czm_sphericalHarmonics(vec3 normal, vec3 coefficients[9]) +{ + vec3 L00 = coefficients[0]; + vec3 L1_1 = coefficients[1]; + vec3 L10 = coefficients[2]; + vec3 L11 = coefficients[3]; + vec3 L2_2 = coefficients[4]; + vec3 L2_1 = coefficients[5]; + vec3 L20 = coefficients[6]; + vec3 L21 = coefficients[7]; + vec3 L22 = coefficients[8]; + + float x = normal.x; + float y = normal.y; + float z = normal.z; + + vec3 L = + L00 + + L1_1 * y + + L10 * z + + L11 * x + + L2_2 * (y * x) + + L2_1 * (y * z) + + L20 * (3.0 * z * z - 1.0) + + L21 * (z * x) + + L22 * (x * x - y * y); + + return max(L, vec3(0.0)); +} +`;var gM=`/** + * Converts an sRGB color to a linear RGB color. + * + * @param {vec3|vec4} srgbIn The color in sRGB space + * @returns {vec3|vec4} The color in linear color space. The vector type matches the input. + */ +vec3 czm_srgbToLinear(vec3 srgbIn) +{ + return pow(srgbIn, vec3(2.2)); +} + +vec4 czm_srgbToLinear(vec4 srgbIn) +{ + vec3 linearOut = pow(srgbIn.rgb, vec3(2.2)); + return vec4(linearOut, srgbIn.a); +} +`;var yM=`/** + * Creates a matrix that transforms vectors from tangent space to eye space. + * + * @name czm_tangentToEyeSpaceMatrix + * @glslFunction + * + * @param {vec3} normalEC The normal vector in eye coordinates. + * @param {vec3} tangentEC The tangent vector in eye coordinates. + * @param {vec3} bitangentEC The bitangent vector in eye coordinates. + * + * @returns {mat3} The matrix that transforms from tangent space to eye space. + * + * @example + * mat3 tangentToEye = czm_tangentToEyeSpaceMatrix(normalEC, tangentEC, bitangentEC); + * vec3 normal = tangentToEye * texture(normalMap, st).xyz; + */ +mat3 czm_tangentToEyeSpaceMatrix(vec3 normalEC, vec3 tangentEC, vec3 bitangentEC) +{ + vec3 normal = normalize(normalEC); + vec3 tangent = normalize(tangentEC); + vec3 bitangent = normalize(bitangentEC); + return mat3(tangent.x , tangent.y , tangent.z, + bitangent.x, bitangent.y, bitangent.z, + normal.x , normal.y , normal.z); +} +`;var xM=`/** + * A wrapper around the texture (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support. + * + * @name czm_textureCube + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p) { +#if __VERSION__ == 300 + return texture(sampler, p); +#else + return textureCube(sampler, p); +#endif +} + +/** + * A wrapper around the textureLod (WebGL2) / textureCube (WebGL1) + * function to allow for WebGL 1 support in fragment shaders. + * + * @name czm_textureCubeLod + * @glslFunction + * + * @param {samplerCube} sampler The sampler. + * @param {vec3} p The coordinate at which to sample the texture. + * @param {float} lod The mipmap level from which to sample. + */ +vec4 czm_textureCube(samplerCube sampler, vec3 p, float lod) { +#if __VERSION__ == 300 + return textureLod(sampler, p, lod); +#elif defined(GL_EXT_shader_texture_lod) + return textureCubeLodEXT(sampler, p, lod); +#endif +}`;var bM=`/** + * Transforms a plane. + * + * @name czm_transformPlane + * @glslFunction + * + * @param {vec4} plane The plane in Hessian Normal Form. + * @param {mat4} transform The inverse-transpose of a transformation matrix. + */ +vec4 czm_transformPlane(vec4 plane, mat4 transform) { + vec4 transformedPlane = transform * plane; + // Convert the transformed plane to Hessian Normal Form + float normalMagnitude = length(transformedPlane.xyz); + return transformedPlane / normalMagnitude; +} +`;var TM=`/** + * Translates a position (or any <code>vec3</code>) that was encoded with {@link EncodedCartesian3}, + * and then provided to the shader as separate <code>high</code> and <code>low</code> bits to + * be relative to the eye. As shown in the example, the position can then be transformed in eye + * or clip coordinates using {@link czm_modelViewRelativeToEye} or {@link czm_modelViewProjectionRelativeToEye}, + * respectively. + * <p> + * This technique, called GPU RTE, eliminates jittering artifacts when using large coordinates as + * described in {@link http://help.agi.com/AGIComponents/html/BlogPrecisionsPrecisions.htm|Precisions, Precisions}. + * </p> + * + * @name czm_translateRelativeToEye + * @glslFunction + * + * @param {vec3} high The position's high bits. + * @param {vec3} low The position's low bits. + * @returns {vec3} The position translated to be relative to the camera's position. + * + * @example + * in vec3 positionHigh; + * in vec3 positionLow; + * + * void main() + * { + * vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + * gl_Position = czm_modelViewProjectionRelativeToEye * p; + * } + * + * @see czm_modelViewRelativeToEye + * @see czm_modelViewProjectionRelativeToEye + * @see czm_computePosition + * @see EncodedCartesian3 + */ +vec4 czm_translateRelativeToEye(vec3 high, vec3 low) +{ + vec3 highDifference = high - czm_encodedCameraPositionMCHigh; + // This check handles the case when NaN values have gotten into \`highDifference\`. + // Such a thing could happen on devices running iOS. + if (length(highDifference) == 0.0) { + highDifference = vec3(0); + } + vec3 lowDifference = low - czm_encodedCameraPositionMCLow; + + return vec4(highDifference + lowDifference, 1.0); +} +`;var AM=`/** + * @private + */ +vec4 czm_translucentPhong(vec3 toEye, czm_material material, vec3 lightDirectionEC) +{ + // Diffuse from directional light sources at eye (for top-down and horizon views) + float diffuse = czm_getLambertDiffuse(vec3(0.0, 0.0, 1.0), material.normal); + + if (czm_sceneMode == czm_sceneMode3D) { + // (and horizon views in 3D) + diffuse += czm_getLambertDiffuse(vec3(0.0, 1.0, 0.0), material.normal); + } + + diffuse = clamp(diffuse, 0.0, 1.0); + + float specular = czm_getSpecular(lightDirectionEC, toEye, material.normal, material.shininess); + + // Temporary workaround for adding ambient. + vec3 materialDiffuse = material.diffuse * 0.5; + + vec3 ambient = materialDiffuse; + vec3 color = ambient + material.emission; + color += materialDiffuse * diffuse * czm_lightColor; + color += material.specular * specular * czm_lightColor; + + return vec4(color, material.alpha); +} +`;var CM=`/** + * Returns the transpose of the matrix. The input <code>matrix</code> can be + * a <code>mat2</code>, <code>mat3</code>, or <code>mat4</code>. + * + * @name czm_transpose + * @glslFunction + * + * @param {} matrix The matrix to transpose. + * + * @returns {} The transposed matrix. + * + * @example + * // GLSL declarations + * mat2 czm_transpose(mat2 matrix); + * mat3 czm_transpose(mat3 matrix); + * mat4 czm_transpose(mat4 matrix); + * + * // Transpose a 3x3 rotation matrix to find its inverse. + * mat3 eastNorthUpToEye = czm_eastNorthUpToEyeCoordinates( + * positionMC, normalEC); + * mat3 eyeToEastNorthUp = czm_transpose(eastNorthUpToEye); + */ +mat2 czm_transpose(mat2 matrix) +{ + return mat2( + matrix[0][0], matrix[1][0], + matrix[0][1], matrix[1][1]); +} + +mat3 czm_transpose(mat3 matrix) +{ + return mat3( + matrix[0][0], matrix[1][0], matrix[2][0], + matrix[0][1], matrix[1][1], matrix[2][1], + matrix[0][2], matrix[1][2], matrix[2][2]); +} + +mat4 czm_transpose(mat4 matrix) +{ + return mat4( + matrix[0][0], matrix[1][0], matrix[2][0], matrix[3][0], + matrix[0][1], matrix[1][1], matrix[2][1], matrix[3][1], + matrix[0][2], matrix[1][2], matrix[2][2], matrix[3][2], + matrix[0][3], matrix[1][3], matrix[2][3], matrix[3][3]); +} +`;var EM=`vec2 getLookupUv(vec2 dimensions, int i) { + int pixY = i / int(dimensions.x); + int pixX = i - (pixY * int(dimensions.x)); + float pixelWidth = 1.0 / dimensions.x; + float pixelHeight = 1.0 / dimensions.y; + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 czm_unpackClippingExtents(highp sampler2D extentsTexture, int index) { + vec2 textureDimensions = vec2(textureSize(extentsTexture, 0)); + return texture(extentsTexture, getLookupUv(textureDimensions, index)); +}`;var SM=`/** + * Unpacks a vec4 depth value to a float in [0, 1) range. + * + * @name czm_unpackDepth + * @glslFunction + * + * @param {vec4} packedDepth The packed depth. + * + * @returns {float} The floating-point depth in [0, 1) range. + */ +float czm_unpackDepth(vec4 packedDepth) +{ + // See Aras Pranckevi\u010Dius' post Encoding Floats to RGBA + // http://aras-p.info/blog/2009/07/30/encoding-floats-to-rgba-the-final/ + return dot(packedDepth, vec4(1.0, 1.0 / 255.0, 1.0 / 65025.0, 1.0 / 16581375.0)); +} +`;var vM=`/** + * Unpack an IEEE 754 single-precision float that is packed as a little-endian unsigned normalized vec4. + * + * @name czm_unpackFloat + * @glslFunction + * + * @param {vec4} packedFloat The packed float. + * + * @returns {float} The floating-point depth in arbitrary range. + */ +float czm_unpackFloat(vec4 packedFloat) +{ + // Convert to [0.0, 255.0] and round to integer + packedFloat = floor(packedFloat * 255.0 + 0.5); + float sign = 1.0 - step(128.0, packedFloat[3]) * 2.0; + float exponent = 2.0 * mod(packedFloat[3], 128.0) + step(128.0, packedFloat[2]) - 127.0; + if (exponent == -127.0) + { + return 0.0; + } + float mantissa = mod(packedFloat[2], 128.0) * 65536.0 + packedFloat[1] * 256.0 + packedFloat[0] + float(0x800000); + float result = sign * exp2(exponent - 23.0) * mantissa; + return result; +} +`;var wM=`/** + * Unpack unsigned integers of 1-4 bytes. in WebGL 1, there is no uint type, + * so the return value is an int. + * <p> + * There are also precision limitations in WebGL 1. highp int is still limited + * to 24 bits. Above the value of 2^24 = 16777216, precision loss may occur. + * </p> + * + * @param {float|vec2|vec3|vec4} packed The packed value. For vectors, the components are listed in little-endian order. + * + * @return {int} The unpacked value. + */ + int czm_unpackUint(float packedValue) { + float rounded = czm_round(packedValue * 255.0); + return int(rounded); + } + + int czm_unpackUint(vec2 packedValue) { + vec2 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec2(1.0, 256.0))); + } + + int czm_unpackUint(vec3 packedValue) { + vec3 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec3(1.0, 256.0, 65536.0))); + } + + int czm_unpackUint(vec4 packedValue) { + vec4 rounded = czm_round(packedValue * 255.0); + return int(dot(rounded, vec4(1.0, 256.0, 65536.0, 16777216.0))); + } +`;var DM=`/** + * Transform metadata values following the EXT_structural_metadata spec + * by multiplying by scale and adding the offset. Operations are always + * performed component-wise, even for matrices. + * + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} offset The offset to add + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} scale The scale factor to multiply + * @param {float|vec2|vec3|vec4|mat2|mat3|mat4} value The original value. + * + * @return {float|vec2|vec3|vec4|mat2|mat3|mat4} The transformed value of the same scalar/vector/matrix type as the input. + */ +float czm_valueTransform(float offset, float scale, float value) { + return scale * value + offset; +} + +vec2 czm_valueTransform(vec2 offset, vec2 scale, vec2 value) { + return scale * value + offset; +} + +vec3 czm_valueTransform(vec3 offset, vec3 scale, vec3 value) { + return scale * value + offset; +} + +vec4 czm_valueTransform(vec4 offset, vec4 scale, vec4 value) { + return scale * value + offset; +} + +mat2 czm_valueTransform(mat2 offset, mat2 scale, mat2 value) { + return matrixCompMult(scale, value) + offset; +} + +mat3 czm_valueTransform(mat3 offset, mat3 scale, mat3 value) { + return matrixCompMult(scale, value) + offset; +} + +mat4 czm_valueTransform(mat4 offset, mat4 scale, mat4 value) { + return matrixCompMult(scale, value) + offset; +} +`;var IM=`#ifdef LOG_DEPTH +// 1.0 at the near plane, increasing linearly from there. +out float v_depthFromNearPlusOne; +#ifdef SHADOW_MAP +out vec3 v_logPositionEC; +#endif +#endif + +vec4 czm_updatePositionDepth(vec4 coords) { +#if defined(LOG_DEPTH) + +#ifdef SHADOW_MAP + vec3 logPositionEC = (czm_inverseProjection * coords).xyz; + v_logPositionEC = logPositionEC; +#endif + + // With the very high far/near ratios used with the logarithmic depth + // buffer, floating point rounding errors can cause linear depth values + // to end up on the wrong side of the far plane, even for vertices that + // are really nowhere near it. Since we always write a correct logarithmic + // depth value in the fragment shader anyway, we just need to make sure + // such errors don't cause the primitive to be clipped entirely before + // we even get to the fragment shader. + coords.z = clamp(coords.z / coords.w, -1.0, 1.0) * coords.w; +#endif + + return coords; +} + +/** + * Writes the logarithmic depth to gl_Position using the already computed gl_Position. + * + * @name czm_vertexLogDepth + * @glslFunction + */ +void czm_vertexLogDepth() +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (gl_Position.w - czm_currentFrustum.x) + 1.0; + gl_Position = czm_updatePositionDepth(gl_Position); +#endif +} + +/** + * Writes the logarithmic depth to gl_Position using the provided clip coordinates. + * <p> + * An example use case for this function would be moving the vertex in window coordinates + * before converting back to clip coordinates. Use the original vertex clip coordinates. + * </p> + * @name czm_vertexLogDepth + * @glslFunction + * + * @param {vec4} clipCoords The vertex in clip coordinates. + * + * @example + * czm_vertexLogDepth(czm_projection * vec4(positionEyeCoordinates, 1.0)); + */ +void czm_vertexLogDepth(vec4 clipCoords) +{ +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = (clipCoords.w - czm_currentFrustum.x) + 1.0; + czm_updatePositionDepth(clipCoords); +#endif +} +`;var PM=`vec4 czm_screenToEyeCoordinates(vec4 screenCoordinate) +{ + // Reconstruct NDC coordinates + float x = 2.0 * screenCoordinate.x - 1.0; + float y = 2.0 * screenCoordinate.y - 1.0; + float z = (screenCoordinate.z - czm_viewportTransformation[3][2]) / czm_viewportTransformation[2][2]; + vec4 q = vec4(x, y, z, 1.0); + + // Reverse the perspective division to obtain clip coordinates. + q /= screenCoordinate.w; + + // Reverse the projection transformation to obtain eye coordinates. + if (!(czm_inverseProjection == mat4(0.0))) // IE and Edge sometimes do something weird with != between mat4s + { + q = czm_inverseProjection * q; + } + else + { + float top = czm_frustumPlanes.x; + float bottom = czm_frustumPlanes.y; + float left = czm_frustumPlanes.z; + float right = czm_frustumPlanes.w; + + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + + q.x = (q.x * (right - left) + left + right) * 0.5; + q.y = (q.y * (top - bottom) + bottom + top) * 0.5; + q.z = (q.z * (near - far) - near - far) * 0.5; + q.w = 1.0; + } + + return q; +} + +/** + * Transforms a position from window to eye coordinates. + * The transform from window to normalized device coordinates is done using components + * of (@link czm_viewport} and {@link czm_viewportTransformation} instead of calculating + * the inverse of <code>czm_viewportTransformation</code>. The transformation from + * normalized device coordinates to clip coordinates is done using <code>fragmentCoordinate.w</code>, + * which is expected to be the scalar used in the perspective divide. The transformation + * from clip to eye coordinates is done using {@link czm_inverseProjection}. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec4} fragmentCoordinate The position in window coordinates to transform. + * + * @returns {vec4} The transformed position in eye coordinates. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @example + * vec4 positionEC = czm_windowToEyeCoordinates(gl_FragCoord); + */ +vec4 czm_windowToEyeCoordinates(vec4 fragmentCoordinate) +{ + vec2 screenCoordXY = (fragmentCoordinate.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(vec4(screenCoordXY, fragmentCoordinate.zw)); +} + +vec4 czm_screenToEyeCoordinates(vec2 screenCoordinateXY, float depthOrLogDepth) +{ + // See reverseLogDepth.glsl. This is separate to re-use the pow. +#if defined(LOG_DEPTH) || defined(LOG_DEPTH_READ_ONLY) + float near = czm_currentFrustum.x; + float far = czm_currentFrustum.y; + float log2Depth = depthOrLogDepth * czm_log2FarDepthFromNearPlusOne; + float depthFromNear = exp2(log2Depth) - 1.0; + float depthFromCamera = depthFromNear + near; + vec4 screenCoord = vec4(screenCoordinateXY, far * (1.0 - near / depthFromCamera) / (far - near), 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); + eyeCoordinate.w = 1.0 / depthFromCamera; // Better precision + return eyeCoordinate; +#else + vec4 screenCoord = vec4(screenCoordinateXY, depthOrLogDepth, 1.0); + vec4 eyeCoordinate = czm_screenToEyeCoordinates(screenCoord); +#endif + return eyeCoordinate; +} + +/** + * Transforms a position given as window x/y and a depth or a log depth from window to eye coordinates. + * This function produces more accurate results for window positions with log depth than + * conventionally unpacking the log depth using czm_reverseLogDepth and using the standard version + * of czm_windowToEyeCoordinates. + * + * @name czm_windowToEyeCoordinates + * @glslFunction + * + * @param {vec2} fragmentCoordinateXY The XY position in window coordinates to transform. + * @param {float} depthOrLogDepth A depth or log depth for the fragment. + * + * @see czm_modelToWindowCoordinates + * @see czm_eyeToWindowCoordinates + * @see czm_inverseProjection + * @see czm_viewport + * @see czm_viewportTransformation + * + * @returns {vec4} The transformed position in eye coordinates. + */ +vec4 czm_windowToEyeCoordinates(vec2 fragmentCoordinateXY, float depthOrLogDepth) +{ + vec2 screenCoordXY = (fragmentCoordinateXY.xy - czm_viewport.xy) / czm_viewport.zw; + return czm_screenToEyeCoordinates(screenCoordXY, depthOrLogDepth); +} +`;var RM=`// emulated noperspective +#if !defined(LOG_DEPTH) +in float v_WindowZ; +#endif + +/** + * Emulates GL_DEPTH_CLAMP. Clamps a fragment to the near and far plane + * by writing the fragment's depth. See czm_depthClamp for more details. + * + * @name czm_writeDepthClamp + * @glslFunction + * + * @example + * out_FragColor = color; + * czm_writeDepthClamp(); + * + * @see czm_depthClamp + */ +void czm_writeDepthClamp() +{ +#if (!defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + gl_FragDepth = clamp(v_WindowZ * gl_FragCoord.w, 0.0, 1.0); +#endif +} +`;var OM=`#ifdef LOG_DEPTH +in float v_depthFromNearPlusOne; + +#ifdef POLYGON_OFFSET +uniform vec2 u_polygonOffset; +#endif + +#endif + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader does not call {@link czm_vertexLogDepth}, for example, when + * ray-casting geometry using a full screen quad. + * </p> + * @name czm_writeLogDepth + * @glslFunction + * + * @param {float} depth The depth coordinate, where 1.0 is on the near plane and + * depth increases in eye-space units from there + * + * @example + * czm_writeLogDepth((czm_projection * v_positionEyeCoordinates).w + 1.0); + */ +void czm_writeLogDepth(float depth) +{ +#if (defined(LOG_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + // Discard the vertex if it's not between the near and far planes. + // We allow a bit of epsilon on the near plane comparison because a 1.0 + // from the vertex shader (indicating the vertex should be _on_ the near + // plane) will not necessarily come here as exactly 1.0. + if (depth <= 0.9999999 || depth > czm_farDepthFromNearPlusOne) { + discard; + } + +#ifdef POLYGON_OFFSET + // Polygon offset: m * factor + r * units + float factor = u_polygonOffset[0]; + float units = u_polygonOffset[1]; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + // This factor doesn't work in IE 10 + if (factor != 0.0) { + // m = sqrt(dZdX^2 + dZdY^2); + float x = dFdx(depth); + float y = dFdy(depth); + float m = sqrt(x * x + y * y); + + // Apply the factor before computing the log depth. + depth += m * factor; + } +#endif + +#endif + + gl_FragDepth = log2(depth) * czm_oneOverLog2FarDepthFromNearPlusOne; + +#ifdef POLYGON_OFFSET + // Apply the units after the log depth. + gl_FragDepth += czm_epsilon7 * units; +#endif + +#endif +} + +/** + * Writes the fragment depth to the logarithmic depth buffer. + * <p> + * Use this when the vertex shader calls {@link czm_vertexLogDepth}. + * </p> + * + * @name czm_writeLogDepth + * @glslFunction + */ +void czm_writeLogDepth() { +#ifdef LOG_DEPTH + czm_writeLogDepth(v_depthFromNearPlusOne); +#endif +} +`;var MM=`/** + * Transforms a value for non-perspective interpolation by multiplying + * it by w, the value used in the perspective divide. This function is + * intended to be called in a vertex shader to compute the value of a + * \`varying\` that should not be subject to perspective interpolation. + * For example, screen-space texture coordinates. The fragment shader + * must call {@link czm_readNonPerspective} to retrieve the final + * non-perspective value. + * + * @name czm_writeNonPerspective + * @glslFunction + * + * @param {float|vec2|vec3|vec4} value The value to be interpolated without accounting for perspective. + * @param {float} w The perspective divide value. Usually this is the computed \`gl_Position.w\`. + * @returns {float|vec2|vec3|vec4} The transformed value, intended to be stored in a \`varying\` and read in the + * fragment shader with {@link czm_readNonPerspective}. + */ +float czm_writeNonPerspective(float value, float w) { + return value * w; +} + +vec2 czm_writeNonPerspective(vec2 value, float w) { + return value * w; +} + +vec3 czm_writeNonPerspective(vec3 value, float w) { + return value * w; +} + +vec4 czm_writeNonPerspective(vec4 value, float w) { + return value * w; +} +`;var AT={czm_degreesPerRadian:sR,czm_depthRange:aR,czm_epsilon1:cR,czm_epsilon2:lR,czm_epsilon3:uR,czm_epsilon4:fR,czm_epsilon5:dR,czm_epsilon6:hR,czm_epsilon7:mR,czm_infinity:pR,czm_oneOverPi:_R,czm_oneOverTwoPi:gR,czm_passCesium3DTile:yR,czm_passCesium3DTileClassification:xR,czm_passCesium3DTileClassificationIgnoreShow:bR,czm_passClassification:TR,czm_passCompute:AR,czm_passEnvironment:CR,czm_passGlobe:ER,czm_passOpaque:SR,czm_passOverlay:vR,czm_passTerrainClassification:wR,czm_passTranslucent:DR,czm_passVoxels:IR,czm_pi:PR,czm_piOverFour:RR,czm_piOverSix:OR,czm_piOverThree:MR,czm_piOverTwo:LR,czm_radiansPerDegree:NR,czm_sceneMode2D:FR,czm_sceneMode3D:BR,czm_sceneModeColumbusView:kR,czm_sceneModeMorphing:VR,czm_solarRadius:UR,czm_threePiOver2:zR,czm_twoPi:HR,czm_webMercatorMaxLatitude:GR,czm_depthRangeStruct:WR,czm_material:jR,czm_materialInput:qR,czm_modelMaterial:YR,czm_modelVertexOutput:XR,czm_ray:KR,czm_raySegment:ZR,czm_shadowParameters:$R,czm_HSBToRGB:QR,czm_HSLToRGB:JR,czm_RGBToHSB:eO,czm_RGBToHSL:tO,czm_RGBToXYZ:nO,czm_XYZToRGB:iO,czm_acesTonemapping:oO,czm_alphaWeight:rO,czm_antialias:sO,czm_applyHSBShift:aO,czm_approximateSphericalCoordinates:cO,czm_approximateTanh:lO,czm_backFacing:uO,czm_branchFreeTernary:fO,czm_cascadeColor:dO,czm_cascadeDistance:hO,czm_cascadeMatrix:mO,czm_cascadeWeights:pO,czm_clipPolygons:_O,czm_columbusViewMorph:gO,czm_computeAtmosphereColor:yO,czm_computeGroundAtmosphereScattering:xO,czm_computePosition:bO,czm_computeScattering:TO,czm_cosineAndSine:AO,czm_decompressTextureCoordinates:CO,czm_depthClamp:EO,czm_eastNorthUpToEyeCoordinates:SO,czm_ellipsoidContainsPoint:vO,czm_ellipsoidTextureCoordinates:wO,czm_equalsEpsilon:DO,czm_eyeOffset:IO,czm_eyeToWindowCoordinates:PO,czm_fastApproximateAtan:RO,czm_fog:OO,czm_gammaCorrect:MO,czm_geodeticSurfaceNormal:LO,czm_getDefaultMaterial:NO,czm_getDynamicAtmosphereLightDirection:FO,czm_getLambertDiffuse:BO,czm_getSpecular:kO,czm_getWaterNoise:VO,czm_hue:UO,czm_inverseGamma:zO,czm_isEmpty:HO,czm_isFull:GO,czm_latitudeToWebMercatorFraction:WO,czm_lineDistance:jO,czm_linearToSrgb:qO,czm_luminance:YO,czm_maximumComponent:XO,czm_metersPerPixel:KO,czm_modelToWindowCoordinates:ZO,czm_multiplyWithColorBalance:$O,czm_nearFarScalar:QO,czm_octDecode:JO,czm_packDepth:eM,czm_pbrLighting:tM,czm_pbrNeutralTonemapping:nM,czm_phong:iM,czm_planeDistance:oM,czm_pointAlongRay:rM,czm_rayEllipsoidIntersectionInterval:sM,czm_raySphereIntersectionInterval:aM,czm_readDepth:cM,czm_readNonPerspective:lM,czm_reverseLogDepth:uM,czm_round:fM,czm_saturation:dM,czm_shadowDepthCompare:hM,czm_shadowVisibility:mM,czm_signNotZero:pM,czm_sphericalHarmonics:_M,czm_srgbToLinear:gM,czm_tangentToEyeSpaceMatrix:yM,czm_textureCube:xM,czm_transformPlane:bM,czm_translateRelativeToEye:TM,czm_translucentPhong:AM,czm_transpose:CM,czm_unpackClippingExtents:EM,czm_unpackDepth:SM,czm_unpackFloat:vM,czm_unpackUint:wM,czm_valueTransform:DM,czm_vertexLogDepth:IM,czm_windowToEyeCoordinates:PM,czm_writeDepthClamp:RM,czm_writeLogDepth:OM,czm_writeNonPerspective:MM};function QDe(e,t){let n=e;return n=n.replaceAll("version 300 es",""),n=n.replaceAll(/(texture\()/g,"texture2D("),t?(n=n.replaceAll(/\n\s*(in)\s+(vec\d|mat\d|float)/g,` +varying $2`),/out_FragData_(\d+)/.test(n)&&(n=`#extension GL_EXT_draw_buffers : enable +${n}`,n=n.replaceAll(/layout\s+\(location\s*=\s*\d+\)\s*out\s+vec4\s+out_FragData_\d+;/g,""),n=n.replaceAll(/out_FragData_(\d+)/g,"gl_FragData[$1]")),n=n.replaceAll(/layout\s+\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,""),n=n.replaceAll(/out_FragColor/g,"gl_FragColor"),n=n.replaceAll(/out_FragColor\[(\d+)\]/g,"gl_FragColor[$1]"),/gl_FragDepth/.test(n)&&(n=`#extension GL_EXT_frag_depth : enable +${n}`,n=n.replaceAll(/gl_FragDepth/g,"gl_FragDepthEXT")),n=`#ifdef GL_EXT_shader_texture_lod +#extension GL_EXT_shader_texture_lod : enable +#endif +${n}`,n=`#ifdef GL_OES_standard_derivatives +#extension GL_OES_standard_derivatives : enable +#endif +${n}`):(n=n.replaceAll(/(in)\s+(vec\d|mat\d|float)/g,"attribute $2"),n=n.replaceAll(/(out)\s+(vec\d|mat\d|float)\s+([\w]+);/g,"varying $2 $3;")),n=`#version 100 +${n}`,n}var LM=QDe;function $J(e){return e=e.replace(/\/\/.*/g,""),e.replace(/\/\*\*[\s\S]*?\*\//gm,function(t){let n=t.match(/\n/gm).length,i="";for(let o=0;o<n;++o)i+=` +`;return i})}function QJ(e,t,n){let i;for(let o=0;o<n.length;++o)n[o].name===e&&(i=n[o]);return l(i)||(t=$J(t),i={name:e,glslSource:t,dependsOn:[],requiredBy:[],evaluated:!1},n.push(i)),i}function JJ(e,t){if(e.evaluated)return;e.evaluated=!0;let n=e.glslSource.match(/\bczm_[a-zA-Z0-9_]*/g);l(n)&&n!==null&&(n=n.filter(function(i,o){return n.indexOf(i)===o}),n.forEach(function(i){if(i!==e.name&&Rs._czmBuiltinsAndUniforms.hasOwnProperty(i)){let o=QJ(i,Rs._czmBuiltinsAndUniforms[i],t);e.dependsOn.push(o),o.requiredBy.push(e),JJ(o,t)}}))}function JDe(e){let t=[],n=[];for(;e.length>0;){let o=e.pop();n.push(o),o.requiredBy.length===0&&t.push(o)}for(;t.length>0;){let o=t.shift();e.push(o);for(let r=0;r<o.dependsOn.length;++r){let s=o.dependsOn[r],a=s.requiredBy.indexOf(o);s.requiredBy.splice(a,1),s.requiredBy.length===0&&t.push(s)}}let i=[];for(let o=0;o<n.length;++o)n[o].requiredBy.length!==0&&i.push(n[o])}function eIe(e){let t=[],n=QJ("main",e,t);JJ(n,t),JDe(t);let i="";for(let o=t.length-1;o>=0;--o)i=`${i+t[o].glslSource} +`;return i.replace(n.glslSource,"")}function eee(e,t,n){let i,o,r="",s=e.sources;if(l(s))for(i=0,o=s.length;i<o;++i)r+=` +#line 0 +${s[i]}`;r=$J(r);let a;r=r.replace(/#version\s+(.*?)\n/gm,function(x,b){return a=b,` +`});let c=[];r=r.replace(/#extension.*\n/gm,function(x){return c.push(x),` +`}),r=r.replace(/precision\s(lowp|mediump|highp)\s(float|int);/,"");let u=e.pickColorQualifier;l(u)&&(r=Rs.createPickFragmentShaderSource(r,u));let f="",d=c.length;for(i=0;i<d;i++)f+=c[i];t&&(f+=`#ifdef GL_FRAGMENT_PRECISION_HIGH + precision highp float; + precision highp int; +#else + precision mediump float; + precision mediump int; + #define highp mediump +#endif + +`);let p=e.defines;if(l(p))for(i=0,o=p.length;i<o;++i){let x=p[i];x.length!==0&&(f+=`#define ${x} +`)}n.textureFloatLinear&&(f+=`#define OES_texture_float_linear + +`),n.floatingPointTexture&&(f+=`#define OES_texture_float + +`);let g="";e.includeBuiltIns&&(g=eIe(r)),f+=` +#line 0 +`;let m=g+r;return n.webgl2&&t&&!/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g.test(m)&&!/czm_out_FragColor/g.test(m)&&/out_FragColor/g.test(m)&&(f+=`layout(location = 0) out vec4 out_FragColor; + +`),f+=g,f+=r,n.webgl2?f=`#version 300 es +${f}`:f=LM(f,t),f}function Rs(e){e=y(e,y.EMPTY_OBJECT);let t=e.pickColorQualifier;this.defines=l(e.defines)?e.defines.slice(0):[],this.sources=l(e.sources)?e.sources.slice(0):[],this.pickColorQualifier=t,this.includeBuiltIns=y(e.includeBuiltIns,!0)}Rs.prototype.clone=function(){return new Rs({sources:this.sources,defines:this.defines,pickColorQualifier:this.pickColorQualifier,includeBuiltIns:this.includeBuiltIns})};Rs.replaceMain=function(e,t){return t=`void ${t}()`,e.replace(/void\s+main\s*\(\s*(?:void)?\s*\)/g,t)};Rs.prototype.getCacheKey=function(){let t=this.defines.slice().sort().join(","),n=this.pickColorQualifier,i=this.includeBuiltIns,o=this.sources.join(` +`);return`${t}:${n}:${i}:${o}`};Rs.prototype.createCombinedVertexShader=function(e){return eee(this,!1,e)};Rs.prototype.createCombinedFragmentShader=function(e){return eee(this,!0,e)};Rs._czmBuiltinsAndUniforms={};for(let e in AT)AT.hasOwnProperty(e)&&(Rs._czmBuiltinsAndUniforms[e]=AT[e]);for(let e in v_)if(v_.hasOwnProperty(e)){let t=v_[e];typeof t.getDeclaration=="function"&&(Rs._czmBuiltinsAndUniforms[e]=t.getDeclaration(e))}Rs.createPickVertexShaderSource=function(e){return`${Rs.replaceMain(e,"czm_old_main")} +in vec4 pickColor; +out vec4 czm_pickColor; +void main() +{ + czm_old_main(); + czm_pickColor = pickColor; +}`};Rs.createPickFragmentShaderSource=function(e,t){let n=Rs.replaceMain(e,"czm_old_main"),i=`${t} vec4 czm_pickColor; +void main() +{ + czm_old_main(); + if (out_FragColor.a == 0.0) { + discard; + } + out_FragColor = czm_pickColor; +}`;return`${n} +${i}`};function tIe(e,t){let n=e.defines,i=n.length;for(let o=0;o<i;++o)if(n[o]===t)return!0;return!1}function tee(e,t){let n=e.sources,i=n.length;for(let o=0;o<i;++o)if(n[o].indexOf(t)!==-1)return!0;return!1}function nee(e,t){let n=t.length;for(let i=0;i<n;++i){let o=t[i];if(tee(e,o))return o}}var nIe=["v_normalEC","v_normal"];Rs.findNormalVarying=function(e){return tee(e,"#ifdef HAS_NORMALS")?tIe(e,"HAS_NORMALS")?"v_normalEC":void 0:nee(e,nIe)};var iIe=["v_positionEC"];Rs.findPositionVarying=function(e){return nee(e,iIe)};var Ue=Rs;function od(e){this._context=e,this._shaders={},this._numberOfShaders=0,this._shadersToRelease={}}Object.defineProperties(od.prototype,{numberOfShaders:{get:function(){return this._numberOfShaders}}});od.prototype.replaceShaderProgram=function(e){return l(e.shaderProgram)&&e.shaderProgram.destroy(),this.getShaderProgram(e)};function oIe(e){let t=Object.keys(e).sort();return JSON.stringify(e,t)}od.prototype.getShaderProgram=function(e){let t=e.vertexShaderSource,n=e.fragmentShaderSource,i=e.attributeLocations;typeof t=="string"&&(t=new Ue({sources:[t]})),typeof n=="string"&&(n=new Ue({sources:[n]}));let o=t.getCacheKey(),r=n.getCacheKey(),s=l(i)?oIe(i):"",a=`${o}:${r}:${s}`,c;if(l(this._shaders[a]))c=this._shaders[a],delete this._shadersToRelease[a];else{let u=this._context,f=t.createCombinedVertexShader(u),d=n.createCombinedFragmentShader(u),p=new en({gl:u._gl,logShaderCompilation:u.logShaderCompilation,debugShaders:u.debugShaders,vertexShaderSource:t,vertexShaderText:f,fragmentShaderSource:n,fragmentShaderText:d,attributeLocations:i});c={cache:this,shaderProgram:p,keyword:a,derivedKeywords:[],count:0},p._cachedShader=c,this._shaders[a]=c,++this._numberOfShaders}return++c.count,c.shaderProgram};od.prototype.replaceDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=this._shaders[o];if(l(r)){g6(this,r);let s=i.derivedKeywords.indexOf(t);s>-1&&i.derivedKeywords.splice(s,1)}return this.createDerivedShaderProgram(e,t,n)};od.prototype.getDerivedShaderProgram=function(e,t){let n=e._cachedShader,i=t+n.keyword,o=this._shaders[i];if(l(o))return o.shaderProgram};od.prototype.createDerivedShaderProgram=function(e,t,n){let i=e._cachedShader,o=t+i.keyword,r=n.vertexShaderSource,s=n.fragmentShaderSource,a=n.attributeLocations;typeof r=="string"&&(r=new Ue({sources:[r]})),typeof s=="string"&&(s=new Ue({sources:[s]}));let c=this._context,u=r.createCombinedVertexShader(c),f=s.createCombinedFragmentShader(c),d=new en({gl:c._gl,logShaderCompilation:c.logShaderCompilation,debugShaders:c.debugShaders,vertexShaderSource:r,vertexShaderText:u,fragmentShaderSource:s,fragmentShaderText:f,attributeLocations:a}),p={cache:this,shaderProgram:d,keyword:o,derivedKeywords:[],count:0};return i.derivedKeywords.push(t),d._cachedShader=p,this._shaders[o]=p,d};function g6(e,t){let n=t.derivedKeywords,i=n.length;for(let o=0;o<i;++o){let r=n[o]+t.keyword,s=e._shaders[r];g6(e,s)}delete e._shaders[t.keyword],t.shaderProgram.finalDestroy()}od.prototype.destroyReleasedShaderPrograms=function(){let e=this._shadersToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];g6(this,n),--this._numberOfShaders}this._shadersToRelease={}};od.prototype.releaseShaderProgram=function(e){if(l(e)){let t=e._cachedShader;t&&--t.count===0&&(this._shadersToRelease[t.keyword]=t)}};od.prototype.isDestroyed=function(){return!1};od.prototype.destroy=function(){let e=this._shaders;for(let t in e)e.hasOwnProperty(t)&&e[t].shaderProgram.finalDestroy();return ue(this)};var NM=od;function rd(e){e=y(e,y.EMPTY_OBJECT);let{context:t,source:n,pixelFormat:i=it.RGBA,pixelDatatype:o=Ze.UNSIGNED_BYTE,flipY:r=!0,skipColorSpaceConversion:s=!1,sampler:a=new Qt}=e,{width:c,height:u}=e;l(n)&&(l(c)||(c=n.videoWidth??n.naturalWidth??n.width),l(u)||(u=n.videoHeight??n.naturalHeight??n.height));let f=e.preMultiplyAlpha||i===it.RGB||i===it.LUMINANCE,d=it.toInternalFormat(i,o,t),p=it.isCompressedFormat(d),g=t._gl,m=p?it.compressedTextureSizeInBytes(i,c,u):it.textureSizeInBytes(i,o,c,u);this._id=zn(),this._context=t,this._textureFilterAnisotropic=t._textureFilterAnisotropic,this._textureTarget=g.TEXTURE_2D,this._texture=g.createTexture(),this._internalFormat=d,this._pixelFormat=i,this._pixelDatatype=o,this._width=c,this._height=u,this._dimensions=new U(c,u),this._hasMipmap=!1,this._sizeInBytes=m,this._preMultiplyAlpha=f,this._flipY=r,this._initialized=!1,this._sampler=void 0,this._sampler=a,iee(this,a),g.activeTexture(g.TEXTURE0),g.bindTexture(this._textureTarget,this._texture),l(n)?(s?g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.NONE):g.pixelStorei(g.UNPACK_COLORSPACE_CONVERSION_WEBGL,g.BROWSER_DEFAULT_WEBGL),l(n.arrayBufferView)?it.isCompressedFormat(d)?rIe(this,n):sIe(this,n):l(n.framebuffer)?aIe(this,n):cIe(this,n),this._initialized=!0):lIe(this),g.bindTexture(this._textureTarget,null)}function rIe(e,t){let i=e._context._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a}=e;if(i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),i.compressedTexImage2D(o,0,r,s,a,0,t.arrayBufferView),l(t.mipLevels)){let c=s,u=a;for(let f=0;f<t.mipLevels.length;++f)c=FM(c),u=FM(u),i.compressedTexImage2D(o,f+1,r,c,u,0,t.mipLevels[f])}}function sIe(e,t){let n=e._context,i=n._gl,o=e._textureTarget,r=e._internalFormat,{width:s,height:a,pixelFormat:c,pixelDatatype:u,flipY:f}=e,d=it.alignmentInBytes(c,u,s);i.pixelStorei(i.UNPACK_ALIGNMENT,d),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1);let p=t.arrayBufferView;if(f&&(p=it.flipY(p,c,u,s,a)),i.texImage2D(o,0,r,s,a,0,c,Ze.toWebGLConstant(u,n),p),l(t.mipLevels)){let g=s,m=a;for(let x=0;x<t.mipLevels.length;++x)g=FM(g),m=FM(m),i.texImage2D(o,x+1,r,g,m,0,c,Ze.toWebGLConstant(u,n),t.mipLevels[x])}}function aIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,!1),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._bind(),i.copyTexImage2D(e._textureTarget,0,e._internalFormat,t.xOffset,t.yOffset,e.width,e.height,0),t.framebuffer!==n.defaultFramebuffer&&t.framebuffer._unBind()}function cIe(e,t){let n=e._context,i=n._gl;i.pixelStorei(i.UNPACK_ALIGNMENT,4),i.pixelStorei(i.UNPACK_PREMULTIPLY_ALPHA_WEBGL,e.preMultiplyAlpha),i.pixelStorei(i.UNPACK_FLIP_Y_WEBGL,e.flipY),i.texImage2D(e._textureTarget,0,e._internalFormat,e.pixelFormat,Ze.toWebGLConstant(e.pixelDatatype,n),t)}function FM(e){let t=Math.floor(e/2)|0;return Math.max(t,1)}function lIe(e){let t=e._context;t._gl.texImage2D(e._textureTarget,0,e._internalFormat,e._width,e._height,0,e._pixelFormat,Ze.toWebGLConstant(e._pixelDatatype,t),null)}rd.create=function(e){return new rd(e)};rd.fromFramebuffer=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.context,n=t._gl,{pixelFormat:i=it.RGB,framebufferXOffset:o=0,framebufferYOffset:r=0,width:s=n.drawingBufferWidth,height:a=n.drawingBufferHeight,framebuffer:c}=e;return new rd({context:t,width:s,height:a,pixelFormat:i,source:{framebuffer:l(c)?c:t.defaultFramebuffer,xOffset:o,yOffset:r,width:s,height:a}})};Object.defineProperties(rd.prototype,{id:{get:function(){return this._id}},sampler:{get:function(){return this._sampler},set:function(e){iee(this,e),this._sampler=e}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},dimensions:{get:function(){return this._dimensions}},preMultiplyAlpha:{get:function(){return this._preMultiplyAlpha}},flipY:{get:function(){return this._flipY}},width:{get:function(){return this._width}},height:{get:function(){return this._height}},sizeInBytes:{get:function(){return this._hasMipmap?Math.floor(this._sizeInBytes*4/3):this._sizeInBytes}},_target:{get:function(){return this._textureTarget}}});function iee(e,t){let{minificationFilter:n,magnificationFilter:i}=t,o=[$t.NEAREST_MIPMAP_NEAREST,$t.NEAREST_MIPMAP_LINEAR,$t.LINEAR_MIPMAP_NEAREST,$t.LINEAR_MIPMAP_LINEAR].includes(n),r=e._context,s=e._pixelFormat,a=e._pixelDatatype;(a===Ze.FLOAT&&!r.textureFloatLinear||a===Ze.HALF_FLOAT&&!r.textureHalfFloatLinear)&&(n=o?$t.NEAREST_MIPMAP_NEAREST:$t.NEAREST,i=di.NEAREST),r.webgl2&&it.isDepthFormat(s)&&(n=$t.NEAREST,i=di.NEAREST);let c=r._gl,u=e._textureTarget;c.activeTexture(c.TEXTURE0),c.bindTexture(u,e._texture),c.texParameteri(u,c.TEXTURE_MIN_FILTER,n),c.texParameteri(u,c.TEXTURE_MAG_FILTER,i),c.texParameteri(u,c.TEXTURE_WRAP_S,t.wrapS),c.texParameteri(u,c.TEXTURE_WRAP_T,t.wrapT),l(e._textureFilterAnisotropic)&&c.texParameteri(u,e._textureFilterAnisotropic.TEXTURE_MAX_ANISOTROPY_EXT,t.maximumAnisotropy),c.bindTexture(u,null)}rd.prototype.copyFrom=function(e){let{xOffset:t=0,yOffset:n=0,source:i,skipColorSpaceConversion:o=!1}=e,r=this._context,s=r._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture);let{width:c,height:u}=i,f=i.arrayBufferView;l(i.videoWidth)&&l(i.videoHeight)?(c=i.videoWidth,u=i.videoHeight):l(i.naturalWidth)&&l(i.naturalHeight)&&(c=i.naturalWidth,u=i.naturalHeight);let d=this._width,p=this._height,g=this._internalFormat,m=this._pixelFormat,x=this._pixelDatatype,b=this._preMultiplyAlpha,T=this._flipY,A=4;l(f)&&(A=it.alignmentInBytes(m,x,c)),s.pixelStorei(s.UNPACK_ALIGNMENT,A),o?s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.NONE):s.pixelStorei(s.UNPACK_COLORSPACE_CONVERSION_WEBGL,s.BROWSER_DEFAULT_WEBGL);let C=!1;if(!this._initialized){let S;t===0&&n===0&&c===d&&u===p?(l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?S=it.flipY(f,m,x,d,p):S=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),S=i),C=!0):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),S=it.createTypedArray(m,x,d,p)),s.texImage2D(a,0,g,d,p,0,m,Ze.toWebGLConstant(x,r),S),this._initialized=!0}if(!C){let S;l(f)?(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,!1),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,!1),T?S=it.flipY(f,m,x,c,u):S=f):(s.pixelStorei(s.UNPACK_PREMULTIPLY_ALPHA_WEBGL,b),s.pixelStorei(s.UNPACK_FLIP_Y_WEBGL,T),S=i),s.texSubImage2D(a,0,t,n,c,u,m,Ze.toWebGLConstant(x,r),S)}s.bindTexture(a,null)};rd.prototype.copyFromFramebuffer=function(e,t,n,i,o,r){e=y(e,0),t=y(t,0),n=y(n,0),i=y(i,0),o=y(o,this._width),r=y(r,this._height);let s=this._context._gl,a=this._textureTarget;s.activeTexture(s.TEXTURE0),s.bindTexture(a,this._texture),s.copyTexSubImage2D(a,0,e,t,n,i,o,r),s.bindTexture(a,null),this._initialized=!0};rd.prototype.generateMipmap=function(e){e=y(e,ep.DONT_CARE),this._hasMipmap=!0;let t=this._context._gl,n=this._textureTarget;t.hint(t.GENERATE_MIPMAP_HINT,e),t.activeTexture(t.TEXTURE0),t.bindTexture(n,this._texture),t.generateMipmap(n),t.bindTexture(n,null)};rd.prototype.isDestroyed=function(){return!1};rd.prototype.destroy=function(){return this._context._gl.deleteTexture(this._texture),ue(this)};var Ot=rd;function I0(){this._textures={},this._numberOfTextures=0,this._texturesToRelease={}}Object.defineProperties(I0.prototype,{numberOfTextures:{get:function(){return this._numberOfTextures}}});I0.prototype.getTexture=function(e){let t=this._textures[e];if(l(t))return delete this._texturesToRelease[e],++t.count,t.texture};I0.prototype.addTexture=function(e,t){let n={texture:t,count:1};t.finalDestroy=t.destroy;let i=this;t.destroy=function(){--n.count===0&&(i._texturesToRelease[e]=n)},this._textures[e]=n,++this._numberOfTextures};I0.prototype.destroyReleasedTextures=function(){let e=this._texturesToRelease;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];delete this._textures[t],n.texture.finalDestroy(),--this._numberOfTextures}this._texturesToRelease={}};I0.prototype.isDestroyed=function(){return!1};I0.prototype.destroy=function(){let e=this._textures;for(let t in e)e.hasOwnProperty(t)&&e[t].texture.finalDestroy();return ue(this)};var BM=I0;function ju(e){this.planes=y(e,[])}var QS=[new h,new h,new h];h.clone(h.UNIT_X,QS[0]);h.clone(h.UNIT_Y,QS[1]);h.clone(h.UNIT_Z,QS[2]);var B_=new h,uIe=new h,oee=new an(new h(1,0,0),0);ju.fromBoundingSphere=function(e,t){l(t)||(t=new ju);let n=QS.length,i=t.planes;i.length=2*n;let o=e.center,r=e.radius,s=0;for(let a=0;a<n;++a){let c=QS[a],u=i[s],f=i[s+1];l(u)||(u=i[s]=new oe),l(f)||(f=i[s+1]=new oe),h.multiplyByScalar(c,-r,B_),h.add(o,B_,B_),u.x=c.x,u.y=c.y,u.z=c.z,u.w=-h.dot(c,B_),h.multiplyByScalar(c,r,B_),h.add(o,B_,B_),f.x=-c.x,f.y=-c.y,f.z=-c.z,f.w=-h.dot(h.negate(c,uIe),B_),s+=2}return t};ju.prototype.computeVisibility=function(e){let t=this.planes,n=!1;for(let i=0,o=t.length;i<o;++i){let r=e.intersectPlane(an.fromCartesian4(t[i],oee));if(r===Yt.OUTSIDE)return Yt.OUTSIDE;r===Yt.INTERSECTING&&(n=!0)}return n?Yt.INTERSECTING:Yt.INSIDE};ju.prototype.computeVisibilityWithPlaneMask=function(e,t){if(t===ju.MASK_OUTSIDE||t===ju.MASK_INSIDE)return t;let n=ju.MASK_INSIDE,i=this.planes;for(let o=0,r=i.length;o<r;++o){let s=o<31?1<<o:0;if(o<31&&!(t&s))continue;let a=e.intersectPlane(an.fromCartesian4(i[o],oee));if(a===Yt.OUTSIDE)return ju.MASK_OUTSIDE;a===Yt.INTERSECTING&&(n|=s)}return n};ju.MASK_OUTSIDE=4294967295;ju.MASK_INSIDE=0;ju.MASK_INDETERMINATE=2147483647;var ys=ju;function bh(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ys,this._orthographicMatrix=new F}function ree(e){(e.top!==e._top||e.bottom!==e._bottom||e.left!==e._left||e.right!==e._right||e.near!==e._near||e.far!==e._far)&&(e._left=e.left,e._right=e.right,e._top=e.top,e._bottom=e.bottom,e._near=e.near,e._far=e.far,e._orthographicMatrix=F.computeOrthographicOffCenter(e.left,e.right,e.bottom,e.top,e.near,e.far,e._orthographicMatrix))}Object.defineProperties(bh.prototype,{projectionMatrix:{get:function(){return ree(this),this._orthographicMatrix}}});var fIe=new h,dIe=new h,hIe=new h,y6=new h;bh.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,fIe);h.normalize(f,f);let d=dIe;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=hIe;h.multiplyByScalar(f,a,p),h.add(d,p,p);let g=i[0];return l(g)||(g=i[0]=new oe),g.x=f.x,g.y=f.y,g.z=f.z,g.w=-h.dot(f,p),h.multiplyByScalar(f,s,p),h.add(d,p,p),g=i[1],l(g)||(g=i[1]=new oe),g.x=-f.x,g.y=-f.y,g.z=-f.z,g.w=-h.dot(h.negate(f,y6),p),h.multiplyByScalar(n,r,p),h.add(d,p,p),g=i[2],l(g)||(g=i[2]=new oe),g.x=n.x,g.y=n.y,g.z=n.z,g.w=-h.dot(n,p),h.multiplyByScalar(n,o,p),h.add(d,p,p),g=i[3],l(g)||(g=i[3]=new oe),g.x=-n.x,g.y=-n.y,g.z=-n.z,g.w=-h.dot(h.negate(n,y6),p),g=i[4],l(g)||(g=i[4]=new oe),g.x=t.x,g.y=t.y,g.z=t.z,g.w=-h.dot(t,d),h.multiplyByScalar(t,u,p),h.add(e,p,p),g=i[5],l(g)||(g=i[5]=new oe),g.x=-t.x,g.y=-t.y,g.z=-t.z,g.w=-h.dot(h.negate(t,y6),p),this._cullingVolume};bh.prototype.getPixelDimensions=function(e,t,n,i,o){ree(this);let r=this.right-this.left,s=this.top-this.bottom,a=i*r/e,c=i*s/t;return o.x=a,o.y=c,o};bh.prototype.clone=function(e){return l(e)||(e=new bh),e.left=this.left,e.right=this.right,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};bh.prototype.equals=function(e){return l(e)&&e instanceof bh&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};bh.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof bh&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var Ur=bh;function al(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Ur,this.width=e.width,this._width=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far}al.packedLength=4;al.pack=function(e,t,n){return n=y(n,0),t[n++]=e.width,t[n++]=e.aspectRatio,t[n++]=e.near,t[n]=e.far,t};al.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new al),n.width=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t],n};function k_(e){let t=e._offCenterFrustum;if(e.width!==e._width||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far){e._aspectRatio=e.aspectRatio,e._width=e.width,e._near=e.near,e._far=e.far;let n=1/e.aspectRatio;t.right=e.width*.5,t.left=-t.right,t.top=n*t.right,t.bottom=-t.top,t.near=e.near,t.far=e.far}}Object.defineProperties(al.prototype,{projectionMatrix:{get:function(){return k_(this),this._offCenterFrustum.projectionMatrix}},offCenterFrustum:{get:function(){return k_(this),this._offCenterFrustum}}});al.prototype.computeCullingVolume=function(e,t,n){return k_(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};al.prototype.getPixelDimensions=function(e,t,n,i,o){return k_(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};al.prototype.clone=function(e){return l(e)||(e=new al),e.aspectRatio=this.aspectRatio,e.width=this.width,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._width=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};al.prototype.equals=function(e){return!l(e)||!(e instanceof al)?!1:(k_(this),k_(e),this.width===e.width&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};al.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof al)?!1:(k_(this),k_(e),P.equalsEpsilon(this.width,e.width,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var rn=al;var x6={};function mIe(e){let t=6.239996+.0172019696544*e;return .001657*Math.sin(t+.01671*Math.sin(t))}var pIe=32.184,_Ie=2451545;function Eee(e,t){t=K.addSeconds(e,pIe,t);let n=K.totalDays(t)-_Ie;return t=K.addSeconds(t,mIe(n),t),t}var kM=new K(2451545,0,Wn.TAI),gIe=1e3,qu=P.RADIANS_PER_DEGREE,jl=P.RADIANS_PER_ARCSECOND,ya=14959787e4,see=new $;function See(e,t,n,i,o,r,s){n<0&&(n=-n,o+=P.PI);let a=e*(1-t),c=i-o,u=o,f=xIe(r-i,t),d=yIe(t,0);EIe(c,n,u,see);let p=a*(1+t),g=Math.cos(f),m=Math.sin(f),x=1+t*g,b=p/x;return l(s)?(s.x=b*g,s.y=b*m,s.z=0):s=new h(b*g,b*m,0),$.multiplyByVector(see,s,s)}function yIe(e,t){return e<=t?"Circular":e<1-t?"Elliptical":e<=1+t?"Parabolic":"Hyperbolic"}function xIe(e,t){let n=AIe(e,t);return CIe(n,t)}var bIe=50,TIe=P.EPSILON8;function AIe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=e+t*Math.sin(e)/(1-Math.sin(e+t)+Math.sin(e)),o=Number.MAX_VALUE,r;for(r=0;r<bIe&&Math.abs(o-i)>TIe;++r){o=i;let s=o-t*Math.sin(o)-e,a=1-t*Math.cos(o);i=o-s/a}return o=i+n*P.TWO_PI,o}function CIe(e,t){let n=Math.floor(e/P.TWO_PI);e-=n*P.TWO_PI;let i=Math.cos(e)-t,o=Math.sin(e)*Math.sqrt(1-t*t),r=Math.atan2(o,i);return r=P.zeroToTwoPi(r),e<0&&(r-=P.TWO_PI),r+=n*P.TWO_PI,r}function EIe(e,t,n,i){let o=Math.cos(e),r=Math.sin(e),s=Math.cos(t),a=Math.sin(t),c=Math.cos(n),u=Math.sin(n);return l(i)?(i[0]=c*o-u*r*s,i[1]=u*o+c*r*s,i[2]=r*a,i[3]=-c*r-u*o*s,i[4]=-u*r+c*o*s,i[5]=o*a,i[6]=u*a,i[7]=-c*a,i[8]=s):i=new $(c*o-u*r*s,-c*r-u*o*s,u*a,u*o+c*r*s,-u*r+c*o*s,-c*a,r*a,o*a,s),i}var SIe=1.0000010178*ya,vIe=100.46645683*qu,wIe=129597742283429e-5*jl,aee=16002,cee=21863,lee=32004,uee=10931,fee=14529,dee=16368,hee=15318,mee=32794,DIe=64*1e-7*ya,IIe=-152*1e-7*ya,PIe=62*1e-7*ya,RIe=-8*1e-7*ya,OIe=32*1e-7*ya,MIe=-41*1e-7*ya,LIe=19*1e-7*ya,NIe=-11*1e-7*ya,FIe=-150*1e-7*ya,BIe=-46*1e-7*ya,kIe=68*1e-7*ya,VIe=54*1e-7*ya,UIe=14*1e-7*ya,zIe=24*1e-7*ya,HIe=-28*1e-7*ya,GIe=22*1e-7*ya,pee=10,_ee=16002,gee=21863,yee=10931,xee=1473,bee=32004,Tee=4387,Aee=73,WIe=-325*1e-7,jIe=-322*1e-7,qIe=-79*1e-7,YIe=232*1e-7,XIe=-52*1e-7,KIe=97*1e-7,ZIe=55*1e-7,$Ie=-41*1e-7,QIe=-105*1e-7,JIe=-137*1e-7,ePe=258*1e-7,tPe=35*1e-7,nPe=-116*1e-7,iPe=-88*1e-7,oPe=-112*1e-7,rPe=-80*1e-7,CT=new K(0,0,Wn.TAI);function sPe(e,t){Eee(e,CT);let i=(CT.dayNumber-kM.dayNumber+(CT.secondsOfDay-kM.secondsOfDay)/jn.SECONDS_PER_DAY)/(jn.DAYS_PER_JULIAN_CENTURY*10),o=.3595362*i,r=SIe+DIe*Math.cos(aee*o)+FIe*Math.sin(aee*o)+IIe*Math.cos(cee*o)+BIe*Math.sin(cee*o)+PIe*Math.cos(lee*o)+kIe*Math.sin(lee*o)+RIe*Math.cos(uee*o)+VIe*Math.sin(uee*o)+OIe*Math.cos(fee*o)+UIe*Math.sin(fee*o)+MIe*Math.cos(dee*o)+zIe*Math.sin(dee*o)+LIe*Math.cos(hee*o)+HIe*Math.sin(hee*o)+NIe*Math.cos(mee*o)+GIe*Math.sin(mee*o),s=vIe+wIe*i+WIe*Math.cos(pee*o)+QIe*Math.sin(pee*o)+jIe*Math.cos(_ee*o)+JIe*Math.sin(_ee*o)+qIe*Math.cos(gee*o)+ePe*Math.sin(gee*o)+YIe*Math.cos(yee*o)+tPe*Math.sin(yee*o)+XIe*Math.cos(xee*o)+nPe*Math.sin(xee*o)+KIe*Math.cos(bee*o)+iPe*Math.sin(bee*o)+ZIe*Math.cos(Tee*o)+oPe*Math.sin(Tee*o)+$Ie*Math.cos(Aee*o)+rPe*Math.sin(Aee*o),a=.0167086342-.0004203654*i,c=102.93734808*qu+11612.3529*jl*i,u=469.97289*jl*i,f=174.87317577*qu-8679.27034*jl*i;return See(r,a,u,c,f,s,t)}function vee(e,t){Eee(e,CT);let i=(CT.dayNumber-kM.dayNumber+(CT.secondsOfDay-kM.secondsOfDay)/jn.SECONDS_PER_DAY)/jn.DAYS_PER_JULIAN_CENTURY,o=i*i,r=o*i,s=r*i,a=383397.7725+.004*i,c=.055545526-16e-9*i,u=5.15668983*qu,f=-8e-5*i+.02966*o-42e-6*r-13e-8*s,d=83.35324312*qu,p=146434202669e-4*i-38.2702*o-.045047*r+21301e-8*s,g=125.04455501*qu,m=-69679193631e-4*i+6.3602*o+.007625*r-3586e-8*s,x=218.31664563*qu,b=17325593434847e-4*i-6.391*o+.006588*r-3169e-8*s,T=297.85019547*qu+jl*(1602961601209e-3*i-6.3706*o+.006593*r-3169e-8*s),A=93.27209062*qu+jl*(17395272628478e-4*i-12.7512*o-.001037*r+417e-8*s),C=134.96340251*qu+jl*(17179159232178e-4*i+31.8792*o+.051635*r-2447e-7*s),S=357.52910918*qu+jl*(1295965810481e-4*i-.5532*o+136e-6*r-1149e-8*s),v=310.17137918*qu-jl*(6967051436e-3*i+6.2068*o+.007618*r-3219e-8*s),D=2*T,O=4*T,R=6*T,M=2*C,L=3*C,_=4*C,E=2*A;a+=3400.4*Math.cos(D)-635.6*Math.cos(D-C)-235.6*Math.cos(C)+218.1*Math.cos(D-S)+181*Math.cos(D+C),c+=.014216*Math.cos(D-C)+.008551*Math.cos(D-M)-.001383*Math.cos(C)+.001356*Math.cos(D+C)-.001147*Math.cos(O-L)-914e-6*Math.cos(O-M)+869e-6*Math.cos(D-S-C)-627e-6*Math.cos(D)-394e-6*Math.cos(O-_)+282e-6*Math.cos(D-S-M)-279e-6*Math.cos(T-C)-236e-6*Math.cos(M)+231e-6*Math.cos(O)+229e-6*Math.cos(R-_)-201e-6*Math.cos(M-E),f+=486.26*Math.cos(D-E)-40.13*Math.cos(D)+37.51*Math.cos(E)+25.73*Math.cos(M-E)+19.97*Math.cos(D-S-E),p+=-55609*Math.sin(D-C)-34711*Math.sin(D-M)-9792*Math.sin(C)+9385*Math.sin(O-L)+7505*Math.sin(O-M)+5318*Math.sin(D+C)+3484*Math.sin(O-_)-3417*Math.sin(D-S-C)-2530*Math.sin(R-_)-2376*Math.sin(D)-2075*Math.sin(D-L)-1883*Math.sin(M)-1736*Math.sin(R-5*C)+1626*Math.sin(S)-1370*Math.sin(R-L),m+=-5392*Math.sin(D-E)-540*Math.sin(S)-441*Math.sin(D)+423*Math.sin(E)-288*Math.sin(M-E),b+=-3332.9*Math.sin(D)+1197.4*Math.sin(D-C)-662.5*Math.sin(S)+396.3*Math.sin(C)-218*Math.sin(D-S);let w=2*v,I=3*v;f+=46.997*Math.cos(v)*i-.614*Math.cos(D-E+v)*i+.614*Math.cos(D-E-v)*i-.0297*Math.cos(w)*o-.0335*Math.cos(v)*o+.0012*Math.cos(D-E+w)*o-16e-5*Math.cos(v)*r+4e-5*Math.cos(I)*r+4e-5*Math.cos(w)*r;let N=2.116*Math.sin(v)*i-.111*Math.sin(D-E-v)*i-.0015*Math.sin(v)*o;p+=N,b+=N,m+=-520.77*Math.sin(v)*i+13.66*Math.sin(D-E+v)*i+1.12*Math.sin(D-v)*i-1.06*Math.sin(E-v)*i+.66*Math.sin(w)*o+.371*Math.sin(v)*o-.035*Math.sin(D-E+w)*o-.015*Math.sin(D-E+v)*o+.0014*Math.sin(v)*r-.0011*Math.sin(I)*r-9e-4*Math.sin(w)*r,a*=gIe;let B=u+f*jl,H=d+p*jl,V=x+b*jl,G=g+m*jl;return See(a,c,B,H,G,V,t)}var Cee=.012300034,aPe=Cee/(Cee+1)*-1;function cPe(e,t){return t=vee(e,t),h.multiplyByScalar(t,aPe,t)}var wee=new $(1.0000000000000002,5619723173785822e-31,4690511510146299e-34,-5154129427414611e-31,.9174820620691819,-.39777715593191376,-223970096136568e-30,.39777715593191376,.9174820620691819),JS=new h;x6.computeSunPositionInEarthInertialFrame=function(e,t){return l(e)||(e=K.now()),l(t)||(t=new h),JS=sPe(e,JS),t=h.negate(JS,t),cPe(e,JS),h.subtract(t,JS,t),$.multiplyByVector(wee,t,t),t};x6.computeMoonPositionInEarthInertialFrame=function(e,t){return l(e)||(e=K.now()),t=vee(e,t),$.multiplyByVector(wee,t,t),t};var P0=x6;var VM={MORPHING:0,COLUMBUS_VIEW:1,SCENE2D:2,SCENE3D:3};VM.getMorphTime=function(e){return e===VM.SCENE3D?1:e===VM.MORPHING?void 0:0};var ne=Object.freeze(VM);function lPe(e){e=y(e,y.EMPTY_OBJECT),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,2)}var V_=lPe;function ET(){this.globeDepthTexture=void 0,this.gamma=void 0,this._viewport=new qe,this._viewportCartesian4=new oe,this._viewportDirty=!1,this._viewportOrthographicMatrix=F.clone(F.IDENTITY),this._viewportTransformation=F.clone(F.IDENTITY),this._model=F.clone(F.IDENTITY),this._view=F.clone(F.IDENTITY),this._inverseView=F.clone(F.IDENTITY),this._projection=F.clone(F.IDENTITY),this._infiniteProjection=F.clone(F.IDENTITY),this._entireFrustum=new U,this._currentFrustum=new U,this._frustumPlanes=new oe,this._farDepthFromNearPlusOne=void 0,this._log2FarDepthFromNearPlusOne=void 0,this._oneOverLog2FarDepthFromNearPlusOne=void 0,this._frameState=void 0,this._temeToPseudoFixed=$.clone(F.IDENTITY),this._view3DDirty=!0,this._view3D=new F,this._inverseView3DDirty=!0,this._inverseView3D=new F,this._inverseModelDirty=!0,this._inverseModel=new F,this._inverseTransposeModelDirty=!0,this._inverseTransposeModel=new $,this._viewRotation=new $,this._inverseViewRotation=new $,this._viewRotation3D=new $,this._inverseViewRotation3D=new $,this._inverseProjectionDirty=!0,this._inverseProjection=new F,this._modelViewDirty=!0,this._modelView=new F,this._modelView3DDirty=!0,this._modelView3D=new F,this._modelViewRelativeToEyeDirty=!0,this._modelViewRelativeToEye=new F,this._inverseModelViewDirty=!0,this._inverseModelView=new F,this._inverseModelView3DDirty=!0,this._inverseModelView3D=new F,this._viewProjectionDirty=!0,this._viewProjection=new F,this._inverseViewProjectionDirty=!0,this._inverseViewProjection=new F,this._modelViewProjectionDirty=!0,this._modelViewProjection=new F,this._inverseModelViewProjectionDirty=!0,this._inverseModelViewProjection=new F,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewProjectionRelativeToEye=new F,this._modelViewInfiniteProjectionDirty=!0,this._modelViewInfiniteProjection=new F,this._normalDirty=!0,this._normal=new $,this._normal3DDirty=!0,this._normal3D=new $,this._inverseNormalDirty=!0,this._inverseNormal=new $,this._inverseNormal3DDirty=!0,this._inverseNormal3D=new $,this._encodedCameraPositionMCDirty=!0,this._encodedCameraPositionMC=new Hn,this._cameraPosition=new h,this._sunPositionWC=new h,this._sunPositionColumbusView=new h,this._sunDirectionWC=new h,this._sunDirectionEC=new h,this._moonDirectionEC=new h,this._lightDirectionWC=new h,this._lightDirectionEC=new h,this._lightColor=new h,this._lightColorHdr=new h,this._pass=void 0,this._mode=void 0,this._mapProjection=void 0,this._ellipsoid=void 0,this._cameraDirection=new h,this._cameraRight=new h,this._cameraUp=new h,this._frustum2DWidth=0,this._eyeHeight=0,this._eyeHeight2D=new U,this._eyeEllipsoidNormalEC=new h,this._eyeEllipsoidCurvature=new U,this._modelToEnu=new F,this._enuToModel=new F,this._pixelRatio=1,this._orthographicIn3D=!1,this._backgroundColor=new z,this._brdfLut=void 0,this._environmentMap=void 0,this._sphericalHarmonicCoefficients=void 0,this._specularEnvironmentMaps=void 0,this._specularEnvironmentMapsMaximumLOD=void 0,this._fogDensity=void 0,this._fogVisualDensityScalar=void 0,this._fogMinimumBrightness=void 0,this._atmosphereHsbShift=void 0,this._atmosphereLightIntensity=void 0,this._atmosphereRayleighCoefficient=new h,this._atmosphereRayleighScaleHeight=new h,this._atmosphereMieCoefficient=new h,this._atmosphereMieScaleHeight=void 0,this._atmosphereMieAnisotropy=void 0,this._atmosphereDynamicLighting=void 0,this._invertClassificationColor=void 0,this._splitPosition=0,this._pixelSizePerMeter=void 0,this._geometricToleranceOverMeter=void 0,this._minimumDisableDepthTestDistance=void 0}Object.defineProperties(ET.prototype,{frameState:{get:function(){return this._frameState}},viewport:{get:function(){return this._viewport},set:function(e){if(!qe.equals(e,this._viewport)){qe.clone(e,this._viewport);let t=this._viewport,n=this._viewportCartesian4;n.x=t.x,n.y=t.y,n.z=t.width,n.w=t.height,this._viewportDirty=!0}}},viewportCartesian4:{get:function(){return this._viewportCartesian4}},viewportOrthographic:{get:function(){return Iee(this),this._viewportOrthographicMatrix}},viewportTransformation:{get:function(){return Iee(this),this._viewportTransformation}},model:{get:function(){return this._model},set:function(e){F.clone(e,this._model),this._modelView3DDirty=!0,this._inverseModelView3DDirty=!0,this._inverseModelDirty=!0,this._inverseTransposeModelDirty=!0,this._modelViewDirty=!0,this._inverseModelViewDirty=!0,this._modelViewRelativeToEyeDirty=!0,this._inverseModelViewDirty=!0,this._modelViewProjectionDirty=!0,this._inverseModelViewProjectionDirty=!0,this._modelViewProjectionRelativeToEyeDirty=!0,this._modelViewInfiniteProjectionDirty=!0,this._normalDirty=!0,this._inverseNormalDirty=!0,this._normal3DDirty=!0,this._inverseNormal3DDirty=!0,this._encodedCameraPositionMCDirty=!0}},inverseModel:{get:function(){return this._inverseModelDirty&&(this._inverseModelDirty=!1,F.inverse(this._model,this._inverseModel)),this._inverseModel}},inverseTransposeModel:{get:function(){let e=this._inverseTransposeModel;return this._inverseTransposeModelDirty&&(this._inverseTransposeModelDirty=!1,F.getMatrix3(this.inverseModel,e),$.transpose(e,e)),e}},view:{get:function(){return this._view}},view3D:{get:function(){return T6(this),this._view3D}},viewRotation:{get:function(){return T6(this),this._viewRotation}},viewRotation3D:{get:function(){return T6(this),this._viewRotation3D}},inverseView:{get:function(){return this._inverseView}},inverseView3D:{get:function(){return Oee(this),this._inverseView3D}},inverseViewRotation:{get:function(){return this._inverseViewRotation}},inverseViewRotation3D:{get:function(){return Oee(this),this._inverseViewRotation3D}},projection:{get:function(){return this._projection}},inverseProjection:{get:function(){return bPe(this),this._inverseProjection}},infiniteProjection:{get:function(){return this._infiniteProjection}},modelView:{get:function(){return TPe(this),this._modelView}},modelView3D:{get:function(){return APe(this),this._modelView3D}},modelViewRelativeToEye:{get:function(){return DPe(this),this._modelViewRelativeToEye}},inverseModelView:{get:function(){return CPe(this),this._inverseModelView}},inverseModelView3D:{get:function(){return EPe(this),this._inverseModelView3D}},viewProjection:{get:function(){return SPe(this),this._viewProjection}},inverseViewProjection:{get:function(){return vPe(this),this._inverseViewProjection}},modelViewProjection:{get:function(){return wPe(this),this._modelViewProjection}},inverseModelViewProjection:{get:function(){return IPe(this),this._inverseModelViewProjection}},modelViewProjectionRelativeToEye:{get:function(){return PPe(this),this._modelViewProjectionRelativeToEye}},modelViewInfiniteProjection:{get:function(){return RPe(this),this._modelViewInfiniteProjection}},normal:{get:function(){return OPe(this),this._normal}},normal3D:{get:function(){return MPe(this),this._normal3D}},inverseNormal:{get:function(){return LPe(this),this._inverseNormal}},inverseNormal3D:{get:function(){return NPe(this),this._inverseNormal3D}},entireFrustum:{get:function(){return this._entireFrustum}},currentFrustum:{get:function(){return this._currentFrustum}},frustumPlanes:{get:function(){return this._frustumPlanes}},farDepthFromNearPlusOne:{get:function(){return this._farDepthFromNearPlusOne}},log2FarDepthFromNearPlusOne:{get:function(){return this._log2FarDepthFromNearPlusOne}},oneOverLog2FarDepthFromNearPlusOne:{get:function(){return this._oneOverLog2FarDepthFromNearPlusOne}},eyeHeight:{get:function(){return this._eyeHeight}},eyeHeight2D:{get:function(){return this._eyeHeight2D}},eyeEllipsoidNormalEC:{get:function(){return this._eyeEllipsoidNormalEC}},eyeEllipsoidCurvature:{get:function(){return this._eyeEllipsoidCurvature}},modelToEnu:{get:function(){return this._modelToEnu}},enuToModel:{get:function(){return this._enuToModel}},sunPositionWC:{get:function(){return this._sunPositionWC}},sunPositionColumbusView:{get:function(){return this._sunPositionColumbusView}},sunDirectionWC:{get:function(){return this._sunDirectionWC}},sunDirectionEC:{get:function(){return this._sunDirectionEC}},moonDirectionEC:{get:function(){return this._moonDirectionEC}},lightDirectionWC:{get:function(){return this._lightDirectionWC}},lightDirectionEC:{get:function(){return this._lightDirectionEC}},lightColor:{get:function(){return this._lightColor}},lightColorHdr:{get:function(){return this._lightColorHdr}},encodedCameraPositionMCHigh:{get:function(){return Ree(this),this._encodedCameraPositionMC.high}},encodedCameraPositionMCLow:{get:function(){return Ree(this),this._encodedCameraPositionMC.low}},temeToPseudoFixedMatrix:{get:function(){return this._temeToPseudoFixed}},pixelRatio:{get:function(){return this._pixelRatio}},fogDensity:{get:function(){return this._fogDensity}},fogVisualDensityScalar:{get:function(){return this._fogVisualDensityScalar}},fogMinimumBrightness:{get:function(){return this._fogMinimumBrightness}},atmosphereHsbShift:{get:function(){return this._atmosphereHsbShift}},atmosphereLightIntensity:{get:function(){return this._atmosphereLightIntensity}},atmosphereRayleighCoefficient:{get:function(){return this._atmosphereRayleighCoefficient}},atmosphereRayleighScaleHeight:{get:function(){return this._atmosphereRayleighScaleHeight}},atmosphereMieCoefficient:{get:function(){return this._atmosphereMieCoefficient}},atmosphereMieScaleHeight:{get:function(){return this._atmosphereMieScaleHeight}},atmosphereMieAnisotropy:{get:function(){return this._atmosphereMieAnisotropy}},atmosphereDynamicLighting:{get:function(){return this._atmosphereDynamicLighting}},geometricToleranceOverMeter:{get:function(){return this._geometricToleranceOverMeter}},pass:{get:function(){return this._pass}},backgroundColor:{get:function(){return this._backgroundColor}},brdfLut:{get:function(){return this._brdfLut}},environmentMap:{get:function(){return this._environmentMap}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps}},specularEnvironmentMapsMaximumLOD:{get:function(){return this._specularEnvironmentMapsMaximumLOD}},splitPosition:{get:function(){return this._splitPosition}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance}},invertClassificationColor:{get:function(){return this._invertClassificationColor}},orthographicIn3D:{get:function(){return this._orthographicIn3D}},ellipsoid:{get:function(){return y(this._ellipsoid,ee.default)}}});function uPe(e,t){F.clone(t,e._view),F.getMatrix3(t,e._viewRotation),e._view3DDirty=!0,e._inverseView3DDirty=!0,e._modelViewDirty=!0,e._modelView3DDirty=!0,e._modelViewRelativeToEyeDirty=!0,e._inverseModelViewDirty=!0,e._inverseModelView3DDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0,e._modelViewInfiniteProjectionDirty=!0,e._normalDirty=!0,e._inverseNormalDirty=!0,e._normal3DDirty=!0,e._inverseNormal3DDirty=!0}function fPe(e,t){F.clone(t,e._inverseView),F.getMatrix3(t,e._inverseViewRotation)}function dPe(e,t){F.clone(t,e._projection),e._inverseProjectionDirty=!0,e._viewProjectionDirty=!0,e._inverseViewProjectionDirty=!0,e._modelViewProjectionDirty=!0,e._modelViewProjectionRelativeToEyeDirty=!0}function hPe(e,t){F.clone(t,e._infiniteProjection),e._modelViewInfiniteProjectionDirty=!0}var Dee=new h,mPe=new F;function pPe(e,t){h.clone(t.positionWC,e._cameraPosition),h.clone(t.directionWC,e._cameraDirection),h.clone(t.rightWC,e._cameraRight),h.clone(t.upWC,e._cameraUp);let n=e._ellipsoid,i,o=t.positionCartographic;if(l(o)?(e._eyeHeight=o.height,e._eyeEllipsoidNormalEC=n.geodeticSurfaceNormalCartographic(o,e._eyeEllipsoidNormalEC),i=h.fromRadians(o.longitude,o.latitude,0,n,Dee)):(e._eyeHeight=-n.maximumRadius,h.magnitude(t.positionWC)>0&&(e._eyeEllipsoidNormalEC=h.normalize(t.positionWC,e._eyeEllipsoidNormalEC)),i=n.scaleToGeodeticSurface(t.positionWC,Dee)),e._encodedCameraPositionMCDirty=!0,!l(i))return;e._eyeEllipsoidNormalEC=$.multiplyByVector(e._viewRotation,e._eyeEllipsoidNormalEC,e._eyeEllipsoidNormalEC);let r=Nt.eastNorthUpToFixedFrame(i,n,mPe);e._enuToModel=F.multiplyTransformation(e.inverseModel,r,e._enuToModel),e._modelToEnu=F.inverseTransformation(e._enuToModel,e._modelToEnu),P.equalsEpsilon(n._radii.x,n._radii.y,P.EPSILON15)&&(e._eyeEllipsoidCurvature=n.getLocalCurvature(i,e._eyeEllipsoidCurvature))}var b6=new $,_Pe=new fe;function gPe(e,t){Nt.computeIcrfToCentralBodyFixedMatrix(t.time,b6);let n=P0.computeSunPositionInEarthInertialFrame(t.time,e._sunPositionWC);$.multiplyByVector(b6,n,n),h.normalize(n,e._sunDirectionWC),n=$.multiplyByVector(e.viewRotation3D,n,e._sunDirectionEC),h.normalize(n,n),n=P0.computeMoonPositionInEarthInertialFrame(t.time,e._moonDirectionEC),$.multiplyByVector(b6,n,n),$.multiplyByVector(e.viewRotation3D,n,n),h.normalize(n,n);let i=t.mapProjection,r=i.ellipsoid.cartesianToCartographic(e._sunPositionWC,_Pe);i.project(r,e._sunPositionColumbusView)}ET.prototype.updateCamera=function(e){uPe(this,e.viewMatrix),fPe(this,e.inverseViewMatrix),pPe(this,e),this._entireFrustum.x=e.frustum.near,this._entireFrustum.y=e.frustum.far,this.updateFrustum(e.frustum),this._orthographicIn3D=this._mode!==ne.SCENE2D&&e.frustum instanceof rn};ET.prototype.updateFrustum=function(e){dPe(this,e.projectionMatrix),l(e.infiniteProjectionMatrix)&&hPe(this,e.infiniteProjectionMatrix),this._currentFrustum.x=e.near,this._currentFrustum.y=e.far,this._farDepthFromNearPlusOne=e.far-e.near+1,this._log2FarDepthFromNearPlusOne=P.log2(this._farDepthFromNearPlusOne),this._oneOverLog2FarDepthFromNearPlusOne=1/this._log2FarDepthFromNearPlusOne;let t=e.offCenterFrustum;l(t)&&(e=t),this._frustumPlanes.x=e.top,this._frustumPlanes.y=e.bottom,this._frustumPlanes.z=e.left,this._frustumPlanes.w=e.right};ET.prototype.updatePass=function(e){this._pass=e};var yPe=[],xPe=new V_;ET.prototype.update=function(e){this._mode=e.mode,this._mapProjection=e.mapProjection,this._ellipsoid=e.mapProjection.ellipsoid,this._pixelRatio=e.pixelRatio;let t=e.camera;this.updateCamera(t),e.mode===ne.SCENE2D?(this._frustum2DWidth=t.frustum.right-t.frustum.left,this._eyeHeight2D.x=this._frustum2DWidth*.5,this._eyeHeight2D.y=this._eyeHeight2D.x*this._eyeHeight2D.x):(this._frustum2DWidth=0,this._eyeHeight2D.x=0,this._eyeHeight2D.y=0),gPe(this,e);let n=y(e.light,xPe);n instanceof V_?(this._lightDirectionWC=h.clone(this._sunDirectionWC,this._lightDirectionWC),this._lightDirectionEC=h.clone(this._sunDirectionEC,this._lightDirectionEC)):(this._lightDirectionWC=h.normalize(h.negate(n.direction,this._lightDirectionWC),this._lightDirectionWC),this._lightDirectionEC=$.multiplyByVector(this.viewRotation3D,this._lightDirectionWC,this._lightDirectionEC));let i=n.color,o=h.fromElements(i.red,i.green,i.blue,this._lightColorHdr);o=h.multiplyByScalar(o,n.intensity,o);let r=h.maximumComponent(o);r>1?h.divideByScalar(o,r,this._lightColor):h.clone(o,this._lightColor);let s=e.brdfLutGenerator,a=l(s)?s.colorTexture:void 0;this._brdfLut=a,this._environmentMap=y(e.environmentMap,e.context.defaultCubeMap),this._sphericalHarmonicCoefficients=y(e.sphericalHarmonicCoefficients,yPe),this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentMapsMaximumLOD=e.specularEnvironmentMapsMaximumLOD,this._fogDensity=e.fog.density,this._fogVisualDensityScalar=e.fog.visualDensityScalar,this._fogMinimumBrightness=e.fog.minimumBrightness;let c=e.atmosphere;l(c)&&(this._atmosphereHsbShift=h.fromElements(c.hueShift,c.saturationShift,c.brightnessShift,this._atmosphereHsbShift),this._atmosphereLightIntensity=c.lightIntensity,this._atmosphereRayleighCoefficient=h.clone(c.rayleighCoefficient,this._atmosphereRayleighCoefficient),this._atmosphereRayleighScaleHeight=c.rayleighScaleHeight,this._atmosphereMieCoefficient=h.clone(c.mieCoefficient,this._atmosphereMieCoefficient),this._atmosphereMieScaleHeight=c.mieScaleHeight,this._atmosphereMieAnisotropy=c.mieAnisotropy,this._atmosphereDynamicLighting=c.dynamicLighting),this._invertClassificationColor=e.invertClassificationColor,this._frameState=e,this._temeToPseudoFixed=Nt.computeTemeToPseudoFixedMatrix(e.time,this._temeToPseudoFixed),this._splitPosition=e.splitPosition*e.context.drawingBufferWidth;let u=t.frustum.fov,f=this._viewport,d;l(u)?f.height>f.width?d=Math.tan(.5*u)*2/f.height:d=Math.tan(.5*u)*2/f.width:d=1/Math.max(f.width,f.height),this._geometricToleranceOverMeter=d*e.maximumScreenSpaceError,z.clone(e.backgroundColor,this._backgroundColor),this._minimumDisableDepthTestDistance=e.minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance*=this._minimumDisableDepthTestDistance,this._minimumDisableDepthTestDistance===Number.POSITIVE_INFINITY&&(this._minimumDisableDepthTestDistance=-1)};function Iee(e){if(e._viewportDirty){let t=e._viewport;F.computeOrthographicOffCenter(t.x,t.x+t.width,t.y,t.y+t.height,0,1,e._viewportOrthographicMatrix),F.computeViewportTransformation(t,0,1,e._viewportTransformation),e._viewportDirty=!1}}function bPe(e){e._inverseProjectionDirty&&(e._inverseProjectionDirty=!1,e._mode!==ne.SCENE2D&&e._mode!==ne.MORPHING&&!e._orthographicIn3D?F.inverse(e._projection,e._inverseProjection):F.clone(F.ZERO,e._inverseProjection))}function TPe(e){e._modelViewDirty&&(e._modelViewDirty=!1,F.multiplyTransformation(e._view,e._model,e._modelView))}function APe(e){e._modelView3DDirty&&(e._modelView3DDirty=!1,F.multiplyTransformation(e.view3D,e._model,e._modelView3D))}function CPe(e){e._inverseModelViewDirty&&(e._inverseModelViewDirty=!1,F.inverse(e.modelView,e._inverseModelView))}function EPe(e){e._inverseModelView3DDirty&&(e._inverseModelView3DDirty=!1,F.inverse(e.modelView3D,e._inverseModelView3D))}function SPe(e){e._viewProjectionDirty&&(e._viewProjectionDirty=!1,F.multiply(e._projection,e._view,e._viewProjection))}function vPe(e){e._inverseViewProjectionDirty&&(e._inverseViewProjectionDirty=!1,F.inverse(e.viewProjection,e._inverseViewProjection))}function wPe(e){e._modelViewProjectionDirty&&(e._modelViewProjectionDirty=!1,F.multiply(e._projection,e.modelView,e._modelViewProjection))}function DPe(e){if(e._modelViewRelativeToEyeDirty){e._modelViewRelativeToEyeDirty=!1;let t=e.modelView,n=e._modelViewRelativeToEye;n[0]=t[0],n[1]=t[1],n[2]=t[2],n[3]=t[3],n[4]=t[4],n[5]=t[5],n[6]=t[6],n[7]=t[7],n[8]=t[8],n[9]=t[9],n[10]=t[10],n[11]=t[11],n[12]=0,n[13]=0,n[14]=0,n[15]=t[15]}}function IPe(e){e._inverseModelViewProjectionDirty&&(e._inverseModelViewProjectionDirty=!1,F.inverse(e.modelViewProjection,e._inverseModelViewProjection))}function PPe(e){e._modelViewProjectionRelativeToEyeDirty&&(e._modelViewProjectionRelativeToEyeDirty=!1,F.multiply(e._projection,e.modelViewRelativeToEye,e._modelViewProjectionRelativeToEye))}function RPe(e){e._modelViewInfiniteProjectionDirty&&(e._modelViewInfiniteProjectionDirty=!1,F.multiply(e._infiniteProjection,e.modelView,e._modelViewInfiniteProjection))}function OPe(e){if(e._normalDirty){e._normalDirty=!1;let t=e._normal;F.getMatrix3(e.inverseModelView,t),$.transpose(t,t)}}function MPe(e){if(e._normal3DDirty){e._normal3DDirty=!1;let t=e._normal3D;F.getMatrix3(e.inverseModelView3D,t),$.transpose(t,t)}}function LPe(e){if(e._inverseNormalDirty){e._inverseNormalDirty=!1;let t=e._inverseNormal;F.getMatrix3(e.modelView,t),$.transpose(t,t)}}function NPe(e){if(e._inverseNormal3DDirty){e._inverseNormal3DDirty=!1;let t=e._inverseNormal3D;F.getMatrix3(e.modelView3D,t),$.transpose(t,t)}}var Pee=new h;function Ree(e){e._encodedCameraPositionMCDirty&&(e._encodedCameraPositionMCDirty=!1,F.multiplyByPoint(e.inverseModel,e._cameraPosition,Pee),Hn.fromCartesian(Pee,e._encodedCameraPositionMC))}var FPe=new h,BPe=new h,kPe=new h,VPe=new h,UPe=new fe,zPe=new h,HPe=new F;function GPe(e,t,n,i,o,r,s,a){let c=FPe;c.x=e.y,c.y=e.z,c.z=e.x;let u=BPe;u.x=n.y,u.y=n.z,u.z=n.x;let f=kPe;f.x=i.y,f.y=i.z,f.z=i.x;let d=VPe;d.x=t.y,d.y=t.z,d.z=t.x,r===ne.SCENE2D&&(c.z=o*.5);let p=s.unproject(c,UPe);p.longitude=P.clamp(p.longitude,-Math.PI,Math.PI),p.latitude=P.clamp(p.latitude,-P.PI_OVER_TWO,P.PI_OVER_TWO);let g=s.ellipsoid,m=g.cartographicToCartesian(p,zPe),x=Nt.eastNorthUpToFixedFrame(m,g,HPe);return F.multiplyByPointAsVector(x,u,u),F.multiplyByPointAsVector(x,f,f),F.multiplyByPointAsVector(x,d,d),l(a)||(a=new F),a[0]=u.x,a[1]=f.x,a[2]=-d.x,a[3]=0,a[4]=u.y,a[5]=f.y,a[6]=-d.y,a[7]=0,a[8]=u.z,a[9]=f.z,a[10]=-d.z,a[11]=0,a[12]=-h.dot(u,m),a[13]=-h.dot(f,m),a[14]=h.dot(d,m),a[15]=1,a}function T6(e){e._view3DDirty&&(e._mode===ne.SCENE3D?F.clone(e._view,e._view3D):GPe(e._cameraPosition,e._cameraDirection,e._cameraRight,e._cameraUp,e._frustum2DWidth,e._mode,e._mapProjection,e._view3D),F.getMatrix3(e._view3D,e._viewRotation3D),e._view3DDirty=!1)}function Oee(e){e._inverseView3DDirty&&(F.inverseTransformation(e.view3D,e._inverseView3D),F.getMatrix3(e._inverseView3D,e._inverseViewRotation3D),e._inverseView3DDirty=!1)}var UM=ET;function ql(e,t){let{getWebGLStub:n,requestWebgl1:i,webgl:o={},allowTextureFilterAnisotropic:r=!0}=y(t,{});o.alpha=y(o.alpha,!1),o.stencil=y(o.stencil,!0),o.powerPreference=y(o.powerPreference,"high-performance");let s=l(n)?n(e,o):WPe(e,o,i),c=typeof WebGL2RenderingContext<"u"&&s instanceof WebGL2RenderingContext;this._canvas=e,this._originalGLContext=s,this._gl=s,this._webgl2=c,this._id=zn(),this.validateFramebuffer=!1,this.validateShaderProgram=!1,this.logShaderCompilation=!1,this._throwOnWebGLError=!1,this._shaderCache=new NM(this),this._textureCache=new BM;let u=s;this._stencilBits=u.getParameter(u.STENCIL_BITS),zt._maximumCombinedTextureImageUnits=u.getParameter(u.MAX_COMBINED_TEXTURE_IMAGE_UNITS),zt._maximumCubeMapSize=u.getParameter(u.MAX_CUBE_MAP_TEXTURE_SIZE),zt._maximumFragmentUniformVectors=u.getParameter(u.MAX_FRAGMENT_UNIFORM_VECTORS),zt._maximumTextureImageUnits=u.getParameter(u.MAX_TEXTURE_IMAGE_UNITS),zt._maximumRenderbufferSize=u.getParameter(u.MAX_RENDERBUFFER_SIZE),zt._maximumTextureSize=u.getParameter(u.MAX_TEXTURE_SIZE),zt._maximumVaryingVectors=u.getParameter(u.MAX_VARYING_VECTORS),zt._maximumVertexAttributes=u.getParameter(u.MAX_VERTEX_ATTRIBS),zt._maximumVertexTextureImageUnits=u.getParameter(u.MAX_VERTEX_TEXTURE_IMAGE_UNITS),zt._maximumVertexUniformVectors=u.getParameter(u.MAX_VERTEX_UNIFORM_VECTORS),zt._maximumSamples=this._webgl2?u.getParameter(u.MAX_SAMPLES):0;let f=u.getParameter(u.ALIASED_LINE_WIDTH_RANGE);zt._minimumAliasedLineWidth=f[0],zt._maximumAliasedLineWidth=f[1];let d=u.getParameter(u.ALIASED_POINT_SIZE_RANGE);zt._minimumAliasedPointSize=d[0],zt._maximumAliasedPointSize=d[1];let p=u.getParameter(u.MAX_VIEWPORT_DIMS);zt._maximumViewportWidth=p[0],zt._maximumViewportHeight=p[1];let g=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_FLOAT);zt._highpFloatSupported=g.precision!==0;let m=u.getShaderPrecisionFormat(u.FRAGMENT_SHADER,u.HIGH_INT);zt._highpIntSupported=m.rangeMax!==0,this._antialias=u.getContextAttributes().antialias,this._standardDerivatives=!!fr(u,["OES_standard_derivatives"]),this._blendMinmax=!!fr(u,["EXT_blend_minmax"]),this._elementIndexUint=!!fr(u,["OES_element_index_uint"]),this._depthTexture=!!fr(u,["WEBGL_depth_texture","WEBKIT_WEBGL_depth_texture"]),this._fragDepth=!!fr(u,["EXT_frag_depth"]),this._debugShaders=fr(u,["WEBGL_debug_shaders"]),this._textureFloat=!!fr(u,["OES_texture_float"]),this._textureHalfFloat=!!fr(u,["OES_texture_half_float"]),this._textureFloatLinear=!!fr(u,["OES_texture_float_linear"]),this._textureHalfFloatLinear=!!fr(u,["OES_texture_half_float_linear"]),this._supportsTextureLod=!!fr(u,["EXT_shader_texture_lod"]),this._colorBufferFloat=!!fr(u,["EXT_color_buffer_float","WEBGL_color_buffer_float"]),this._floatBlend=!!fr(u,["EXT_float_blend"]),this._colorBufferHalfFloat=!!fr(u,["EXT_color_buffer_half_float"]),this._s3tc=!!fr(u,["WEBGL_compressed_texture_s3tc","MOZ_WEBGL_compressed_texture_s3tc","WEBKIT_WEBGL_compressed_texture_s3tc"]),this._pvrtc=!!fr(u,["WEBGL_compressed_texture_pvrtc","WEBKIT_WEBGL_compressed_texture_pvrtc"]),this._astc=!!fr(u,["WEBGL_compressed_texture_astc"]),this._etc=!!fr(u,["WEBG_compressed_texture_etc"]),this._etc1=!!fr(u,["WEBGL_compressed_texture_etc1"]),this._bc7=!!fr(u,["EXT_texture_compression_bptc"]),Gl.setKTX2SupportedFormats(this._s3tc,this._pvrtc,this._astc,this._etc,this._etc1,this._bc7);let x=r?fr(u,["EXT_texture_filter_anisotropic","WEBKIT_EXT_texture_filter_anisotropic"]):void 0;this._textureFilterAnisotropic=x,zt._maximumTextureFilterAnisotropy=l(x)?u.getParameter(x.MAX_TEXTURE_MAX_ANISOTROPY_EXT):1;let b,T,A,C,S,v,D,O,R,M;if(c){let w=this;b=function(){return w._gl.createVertexArray()},T=function(I){w._gl.bindVertexArray(I)},A=function(I){w._gl.deleteVertexArray(I)},C=function(I,N,B,H,V){u.drawElementsInstanced(I,N,B,H,V)},S=function(I,N,B,H){u.drawArraysInstanced(I,N,B,H)},v=function(I,N){u.vertexAttribDivisor(I,N)},D=function(I){u.drawBuffers(I)}}else O=fr(u,["OES_vertex_array_object"]),l(O)&&(b=function(){return O.createVertexArrayOES()},T=function(w){O.bindVertexArrayOES(w)},A=function(w){O.deleteVertexArrayOES(w)}),R=fr(u,["ANGLE_instanced_arrays"]),l(R)&&(C=function(w,I,N,B,H){R.drawElementsInstancedANGLE(w,I,N,B,H)},S=function(w,I,N,B){R.drawArraysInstancedANGLE(w,I,N,B)},v=function(w,I){R.vertexAttribDivisorANGLE(w,I)}),M=fr(u,["WEBGL_draw_buffers"]),l(M)&&(D=function(w){M.drawBuffersWEBGL(w)});this.glCreateVertexArray=b,this.glBindVertexArray=T,this.glDeleteVertexArray=A,this.glDrawElementsInstanced=C,this.glDrawArraysInstanced=S,this.glVertexAttribDivisor=v,this.glDrawBuffers=D,this._vertexArrayObject=!!O,this._instancedArrays=!!R,this._drawBuffers=!!M,zt._maximumDrawBuffers=this.drawBuffers?u.getParameter(te.MAX_DRAW_BUFFERS):1,zt._maximumColorAttachments=this.drawBuffers?u.getParameter(te.MAX_COLOR_ATTACHMENTS):1,this._clearColor=new z(0,0,0,0),this._clearDepth=1,this._clearStencil=0;let L=new UM,_=new bc(this),E=Ve.fromCache();this._defaultPassState=_,this._defaultRenderState=E,this._defaultTexture=void 0,this._defaultEmissiveTexture=void 0,this._defaultNormalTexture=void 0,this._defaultCubeMap=void 0,this._us=L,this._currentRenderState=E,this._currentPassState=_,this._currentFramebuffer=void 0,this._maxFrameTextureUnitIndex=0,this._vertexAttribDivisors=[],this._previousDrawInstanced=!1;for(let w=0;w<zt._maximumVertexAttributes;w++)this._vertexAttribDivisors.push(0);this._pickObjects={},this._nextPickColor=new Uint32Array(1),this.options={getWebGLStub:n,requestWebgl1:i,webgl:o,allowTextureFilterAnisotropic:r},this.cache={},Ve.apply(u,E,_)}function WPe(e,t,n){if(typeof WebGLRenderingContext>"u")throw new ce("The browser does not support WebGL. Visit http://get.webgl.org.");!n&&!(typeof WebGL2RenderingContext<"u")&&(n=!0);let o=n?"webgl":"webgl2",r=e.getContext(o,t);if(!l(r))throw new ce("The browser supports WebGL, but initialization failed.");return r}function jPe(e,t){let n="WebGL Error: ";switch(t){case e.INVALID_ENUM:n+="INVALID_ENUM";break;case e.INVALID_VALUE:n+="INVALID_VALUE";break;case e.INVALID_OPERATION:n+="INVALID_OPERATION";break;case e.OUT_OF_MEMORY:n+="OUT_OF_MEMORY";break;case e.CONTEXT_LOST_WEBGL:n+="CONTEXT_LOST_WEBGL lost";break;default:n+=`Unknown (${t})`}return n}function qPe(e,t,n,i){let o=`${jPe(e,i)}: ${t.name}(`;for(let r=0;r<n.length;++r)r!==0&&(o+=", "),o+=n[r];return o+=");",o}function YPe(e,t,n){let i=e.getError();if(i!==e.NO_ERROR)throw new ce(qPe(e,t,n,i))}function XPe(e,t,n){return{get:function(){let i=e[t];return n(e,`get: ${t}`,i),e[t]},set:function(i){e[t]=i,n(e,`set: ${t}`,i)}}}function KPe(e,t){if(!l(t))return e;function n(o){return function(){let r=o.apply(e,arguments);return t(e,o,arguments),r}}let i={};for(let o in e){let r=e[o];r instanceof Function?i[o]=n(r):Object.defineProperty(i,o,XPe(e,o,t))}return i}function fr(e,t){let n=t.length;for(let i=0;i<n;++i){let o=e.getExtension(t[i]);if(o)return o}}var ZPe={};Object.defineProperties(ql.prototype,{id:{get:function(){return this._id}},webgl2:{get:function(){return this._webgl2}},canvas:{get:function(){return this._canvas}},shaderCache:{get:function(){return this._shaderCache}},textureCache:{get:function(){return this._textureCache}},uniformState:{get:function(){return this._us}},stencilBits:{get:function(){return this._stencilBits}},stencilBuffer:{get:function(){return this._stencilBits>=8}},antialias:{get:function(){return this._antialias}},msaa:{get:function(){return this._webgl2}},standardDerivatives:{get:function(){return this._standardDerivatives||this._webgl2}},floatBlend:{get:function(){return this._floatBlend}},blendMinmax:{get:function(){return this._blendMinmax||this._webgl2}},elementIndexUint:{get:function(){return this._elementIndexUint||this._webgl2}},depthTexture:{get:function(){return this._depthTexture||this._webgl2}},floatingPointTexture:{get:function(){return this._webgl2||this._textureFloat}},halfFloatingPointTexture:{get:function(){return this._webgl2||this._textureHalfFloat}},textureFloatLinear:{get:function(){return this._textureFloatLinear}},textureHalfFloatLinear:{get:function(){return this._webgl2&&this._textureFloatLinear||!this._webgl2&&this._textureHalfFloatLinear}},supportsTextureLod:{get:function(){return this._webgl2||this._supportsTextureLod}},textureFilterAnisotropic:{get:function(){return!!this._textureFilterAnisotropic}},s3tc:{get:function(){return this._s3tc}},pvrtc:{get:function(){return this._pvrtc}},astc:{get:function(){return this._astc}},etc:{get:function(){return this._etc}},etc1:{get:function(){return this._etc1}},bc7:{get:function(){return this._bc7}},supportsBasis:{get:function(){return this._s3tc||this._pvrtc||this._astc||this._etc||this._etc1||this._bc7}},vertexArrayObject:{get:function(){return this._vertexArrayObject||this._webgl2}},fragmentDepth:{get:function(){return this._fragDepth||this._webgl2}},instancedArrays:{get:function(){return this._instancedArrays||this._webgl2}},colorBufferFloat:{get:function(){return this._colorBufferFloat}},colorBufferHalfFloat:{get:function(){return this._webgl2&&this._colorBufferFloat||!this._webgl2&&this._colorBufferHalfFloat}},drawBuffers:{get:function(){return this._drawBuffers||this._webgl2}},debugShaders:{get:function(){return this._debugShaders}},throwOnWebGLError:{get:function(){return this._throwOnWebGLError},set:function(e){this._throwOnWebGLError=e,this._gl=KPe(this._originalGLContext,e?YPe:void 0)}},defaultTexture:{get:function(){return this._defaultTexture===void 0&&(this._defaultTexture=new Ot({context:this,source:{width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])},flipY:!1})),this._defaultTexture}},defaultEmissiveTexture:{get:function(){return this._defaultEmissiveTexture===void 0&&(this._defaultEmissiveTexture=new Ot({context:this,pixelFormat:it.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([0,0,0])},flipY:!1})),this._defaultEmissiveTexture}},defaultNormalTexture:{get:function(){return this._defaultNormalTexture===void 0&&(this._defaultNormalTexture=new Ot({context:this,pixelFormat:it.RGB,source:{width:1,height:1,arrayBufferView:new Uint8Array([128,128,255])},flipY:!1})),this._defaultNormalTexture}},defaultCubeMap:{get:function(){if(this._defaultCubeMap===void 0){let e={width:1,height:1,arrayBufferView:new Uint8Array([255,255,255,255])};this._defaultCubeMap=new Dr({context:this,source:{positiveX:e,negativeX:e,positiveY:e,negativeY:e,positiveZ:e,negativeZ:e},flipY:!1})}return this._defaultCubeMap}},drawingBufferHeight:{get:function(){return this._gl.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._gl.drawingBufferWidth}},defaultFramebuffer:{get:function(){return ZPe}}});function Mee(e,t,n,i){let o=e._currentRenderState,r=e._currentPassState;e._currentRenderState=t,e._currentPassState=n,Ve.partialApply(e._gl,o,t,r,n,i)}var A6;typeof WebGLRenderingContext<"u"&&(A6=[te.BACK]);function C6(e,t){if(t!==e._currentFramebuffer){e._currentFramebuffer=t;let n=A6;if(l(t))t._bind(),n=t._getActiveColorAttachments();else{let i=e._gl;i.bindFramebuffer(i.FRAMEBUFFER,null)}e.drawBuffers&&e.glDrawBuffers(n)}}var $Pe=new ei;ql.prototype.clear=function(e,t){e=y(e,$Pe),t=y(t,this._defaultPassState);let n=this._gl,i=0,o=e.color,r=e.depth,s=e.stencil;l(o)&&(z.equals(this._clearColor,o)||(z.clone(o,this._clearColor),n.clearColor(o.red,o.green,o.blue,o.alpha)),i|=n.COLOR_BUFFER_BIT),l(r)&&(r!==this._clearDepth&&(this._clearDepth=r,n.clearDepth(r)),i|=n.DEPTH_BUFFER_BIT),l(s)&&(s!==this._clearStencil&&(this._clearStencil=s,n.clearStencil(s)),i|=n.STENCIL_BUFFER_BIT);let a=y(e.renderState,this._defaultRenderState);Mee(this,a,t,!0);let c=y(e.framebuffer,t.framebuffer);C6(this,c),n.clear(i)};function QPe(e,t,n,i,o){C6(e,t),Mee(e,o,n,!1),i._bind(),e._maxFrameTextureUnitIndex=Math.max(e._maxFrameTextureUnitIndex,i.maximumTextureUnitIndex)}function JPe(e,t,n,i){let o=t._primitiveType,r=t._vertexArray,s=t._offset,a=t._count,c=t.instanceCount;e._us.model=y(t._modelMatrix,F.IDENTITY),n._setUniforms(i,e._us,e.validateShaderProgram),r._bind();let u=r.indexBuffer;l(u)?(s=s*u.bytesPerIndex,l(a)?a=Math.min(a,u.numberOfIndices):a=u.numberOfIndices,c===0?e._gl.drawElements(o,a,u.indexDatatype,s):e.glDrawElementsInstanced(o,a,u.indexDatatype,s,c)):(l(a)?a=Math.min(a,r.numberOfVertices):a=r.numberOfVertices,c===0?e._gl.drawArrays(o,s,a):e.glDrawArraysInstanced(o,s,a,c)),r._unBind()}ql.prototype.draw=function(e,t,n,i){t=y(t,this._defaultPassState);let o=y(e._framebuffer,t.framebuffer),r=y(e._renderState,this._defaultRenderState);n=y(n,e._shaderProgram),i=y(i,e._uniformMap),QPe(this,o,t,n,r),JPe(this,e,n,i)};ql.prototype.endFrame=function(){let e=this._gl;e.useProgram(null),this._currentFramebuffer=void 0,e.bindFramebuffer(e.FRAMEBUFFER,null);let t=A6;this.drawBuffers&&this.glDrawBuffers(t);let n=this._maxFrameTextureUnitIndex;this._maxFrameTextureUnitIndex=0;for(let i=0;i<n;++i)e.activeTexture(e.TEXTURE0+i),e.bindTexture(e.TEXTURE_2D,null),e.bindTexture(e.TEXTURE_CUBE_MAP,null)};ql.prototype.readPixels=function(e){let t=this._gl;e=y(e,y.EMPTY_OBJECT);let n=Math.max(y(e.x,0),0),i=Math.max(y(e.y,0),0),o=y(e.width,t.drawingBufferWidth),r=y(e.height,t.drawingBufferHeight),s=e.framebuffer,a=Ze.UNSIGNED_BYTE;l(s)&&s.numberOfColorAttachments>0&&(a=s.getColorTexture(0).pixelDatatype);let c=it.createTypedArray(it.RGBA,a,o,r);return C6(this,s),t.readPixels(n,i,o,r,it.RGBA,Ze.toWebGLConstant(a,this),c),c};var Lee={position:0,textureCoordinates:1};ql.prototype.getViewportQuadVertexArray=function(){let e=this.cache.viewportQuad_vertexArray;if(!l(e)){let t=new ft({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[-1,-1,1,-1,1,1,-1,1]}),textureCoordinates:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:[0,0,1,0,1,1,0,1]})},indices:new Uint16Array([0,1,2,0,2,3]),primitiveType:Le.TRIANGLES});e=ti.fromGeometry({context:this,geometry:t,attributeLocations:Lee,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),this.cache.viewportQuad_vertexArray=e}return e};ql.prototype.createViewportQuadCommand=function(e,t){return t=y(t,y.EMPTY_OBJECT),new et({vertexArray:this.getViewportQuadVertexArray(),primitiveType:Le.TRIANGLES,renderState:t.renderState,shaderProgram:en.fromCache({context:this,vertexShaderSource:mT,fragmentShaderSource:e,attributeLocations:Lee}),uniformMap:t.uniformMap,owner:t.owner,framebuffer:t.framebuffer,pass:t.pass})};ql.prototype.getObjectByPickColor=function(e){return this._pickObjects[e.toRgba()]};function E6(e,t,n){this._pickObjects=e,this.key=t,this.color=n}Object.defineProperties(E6.prototype,{object:{get:function(){return this._pickObjects[this.key]},set:function(e){this._pickObjects[this.key]=e}}});E6.prototype.destroy=function(){delete this._pickObjects[this.key]};ql.prototype.createPickId=function(e){++this._nextPickColor[0];let t=this._nextPickColor[0];if(t===0)throw new ce("Out of unique Pick IDs.");return this._pickObjects[t]=e,new E6(this._pickObjects,t,z.fromRgba(t))};ql.prototype.isDestroyed=function(){return!1};ql.prototype.destroy=function(){let e=this.cache;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];l(n.destroy)&&n.destroy()}return this._shaderCache=this._shaderCache.destroy(),this._textureCache=this._textureCache.destroy(),this._defaultTexture=this._defaultTexture&&this._defaultTexture.destroy(),this._defaultEmissiveTexture=this._defaultEmissiveTexture&&this._defaultEmissiveTexture.destroy(),this._defaultNormalTexture=this._defaultNormalTexture&&this._defaultNormalTexture.destroy(),this._defaultCubeMap=this._defaultCubeMap&&this._defaultCubeMap.destroy(),ue(this)};ql._deprecationWarning=_s;var zM=ql;function ST(e){e=y(e,y.EMPTY_OBJECT);let{context:t,width:n,height:i,colorRenderbuffers:o,colorTextures:r,depthStencilRenderbuffer:s,depthStencilTexture:a,destroyAttachments:c}=e;if(this._width=n,this._height=i,l(o)!==l(r))throw new he("Both color renderbuffer and texture attachments must be provided.");if(l(s)!==l(a))throw new he("Both depth-stencil renderbuffer and texture attachments must be provided.");this._renderFramebuffer=new Vr({context:t,colorRenderbuffers:o,depthStencilRenderbuffer:s,destroyAttachments:c}),this._colorFramebuffer=new Vr({context:t,colorTextures:r,depthStencilTexture:a,destroyAttachments:c})}ST.prototype.getRenderFramebuffer=function(){return this._renderFramebuffer};ST.prototype.getColorFramebuffer=function(){return this._colorFramebuffer};ST.prototype.blitFramebuffers=function(e,t){this._renderFramebuffer.bindRead(),this._colorFramebuffer.bindDraw();let n=e._gl,i=0;this._colorFramebuffer._colorTextures.length>0&&(i|=n.COLOR_BUFFER_BIT),l(this._colorFramebuffer.depthStencilTexture)&&(i|=n.DEPTH_BUFFER_BIT|(t?n.STENCIL_BUFFER_BIT:0)),n.blitFramebuffer(0,0,this._width,this._height,0,0,this._width,this._height,i,n.NEAREST),n.bindFramebuffer(n.READ_FRAMEBUFFER,null),n.bindFramebuffer(n.DRAW_FRAMEBUFFER,null)};ST.prototype.isDestroyed=function(){return!1};ST.prototype.destroy=function(){return this._renderFramebuffer.destroy(),this._colorFramebuffer.destroy(),ue(this)};var HM=ST;var cl={RGBA4:te.RGBA4,RGBA8:te.RGBA8,RGBA16F:te.RGBA16F,RGBA32F:te.RGBA32F,RGB5_A1:te.RGB5_A1,RGB565:te.RGB565,DEPTH_COMPONENT16:te.DEPTH_COMPONENT16,STENCIL_INDEX8:te.STENCIL_INDEX8,DEPTH_STENCIL:te.DEPTH_STENCIL,DEPTH24_STENCIL8:te.DEPTH24_STENCIL8,validate:function(e){return e===cl.RGBA4||e===cl.RGBA8||e===cl.RGBA16F||e===cl.RGBA32F||e===cl.RGB5_A1||e===cl.RGB565||e===cl.DEPTH_COMPONENT16||e===cl.STENCIL_INDEX8||e===cl.DEPTH_STENCIL||e===cl.DEPTH24_STENCIL8},getColorFormat:function(e){return e===te.FLOAT?cl.RGBA32F:e===te.HALF_FLOAT_OES?cl.RGBA16F:cl.RGBA8}},ll=Object.freeze(cl);function ev(e){e=y(e,y.EMPTY_OBJECT);let n=e.context._gl,i=zt.maximumRenderbufferSize,o=y(e.format,ll.RGBA4),r=l(e.width)?e.width:n.drawingBufferWidth,s=l(e.height)?e.height:n.drawingBufferHeight,a=y(e.numSamples,1);this._gl=n,this._format=o,this._width=r,this._height=s,this._renderbuffer=this._gl.createRenderbuffer(),n.bindRenderbuffer(n.RENDERBUFFER,this._renderbuffer),a>1?n.renderbufferStorageMultisample(n.RENDERBUFFER,a,o,r,s):n.renderbufferStorage(n.RENDERBUFFER,o,r,s),n.bindRenderbuffer(n.RENDERBUFFER,null)}Object.defineProperties(ev.prototype,{format:{get:function(){return this._format}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});ev.prototype._getRenderbuffer=function(){return this._renderbuffer};ev.prototype.isDestroyed=function(){return!1};ev.prototype.destroy=function(){return this._gl.deleteRenderbuffer(this._renderbuffer),ue(this)};var Yu=ev;function xs(e){e=y(e,y.EMPTY_OBJECT),this._numSamples=y(e.numSamples,1),this._colorAttachmentsLength=y(e.colorAttachmentsLength,1),this._color=y(e.color,!0),this._depth=y(e.depth,!1),this._depthStencil=y(e.depthStencil,!1),this._supportsDepthTexture=y(e.supportsDepthTexture,!1),this._createColorAttachments=y(e.createColorAttachments,!0),this._createDepthAttachments=y(e.createDepthAttachments,!0),this._pixelDatatype=e.pixelDatatype,this._pixelFormat=e.pixelFormat,this._width=void 0,this._height=void 0,this._framebuffer=void 0,this._multisampleFramebuffer=void 0,this._colorTextures=void 0,this._color&&(this._colorTextures=new Array(this._colorAttachmentsLength),this._colorRenderbuffers=new Array(this._colorAttachmentsLength)),this._colorRenderbuffer=void 0,this._depthStencilRenderbuffer=void 0,this._depthStencilTexture=void 0,this._depthRenderbuffer=void 0,this._depthTexture=void 0,this._attachmentsDirty=!1}Object.defineProperties(xs.prototype,{framebuffer:{get:function(){return this._numSamples>1?this._multisampleFramebuffer.getRenderFramebuffer():this._framebuffer}},numSamples:{get:function(){return this._numSamples}},status:{get:function(){return this.framebuffer.status}}});xs.prototype.isDirty=function(e,t,n,i,o){n=y(n,1);let r=this._width!==e||this._height!==t,s=this._numSamples!==n,a=l(i)&&this._pixelDatatype!==i||l(o)&&this._pixelFormat!==o,c=n===1?l(this._framebuffer):l(this._multisampleFramebuffer);return this._attachmentsDirty||r||s||a||!c||this._color&&!l(this._colorTextures[0])};xs.prototype.update=function(e,t,n,i,o,r){if(i=e.msaa?y(i,1):1,o=y(o,this._color?y(this._pixelDatatype,Ze.UNSIGNED_BYTE):void 0),r=y(r,this._color?y(this._pixelFormat,it.RGBA):void 0),this.isDirty(t,n,i,o,r)){if(this.destroy(),this._width=t,this._height=n,this._numSamples=i,this._pixelDatatype=o,this._pixelFormat=r,this._attachmentsDirty=!1,this._color&&this._createColorAttachments){for(let s=0;s<this._colorAttachmentsLength;++s)if(this._colorTextures[s]=new Ot({context:e,width:t,height:n,pixelFormat:r,pixelDatatype:o,sampler:Qt.NEAREST}),this._numSamples>1){let a=ll.getColorFormat(o);this._colorRenderbuffers[s]=new Yu({context:e,width:t,height:n,format:a,numSamples:this._numSamples})}}this._depthStencil&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?(this._depthStencilTexture=new Ot({context:e,width:t,height:n,pixelFormat:it.DEPTH_STENCIL,pixelDatatype:Ze.UNSIGNED_INT_24_8,sampler:Qt.NEAREST}),this._numSamples>1&&(this._depthStencilRenderbuffer=new Yu({context:e,width:t,height:n,format:ll.DEPTH24_STENCIL8,numSamples:this._numSamples}))):this._depthStencilRenderbuffer=new Yu({context:e,width:t,height:n,format:ll.DEPTH_STENCIL})),this._depth&&this._createDepthAttachments&&(this._supportsDepthTexture&&e.depthTexture?this._depthTexture=new Ot({context:e,width:t,height:n,pixelFormat:it.DEPTH_COMPONENT,pixelDatatype:Ze.UNSIGNED_INT,sampler:Qt.NEAREST}):this._depthRenderbuffer=new Yu({context:e,width:t,height:n,format:ll.DEPTH_COMPONENT16})),this._numSamples>1?this._multisampleFramebuffer=new HM({context:e,width:this._width,height:this._height,colorTextures:this._colorTextures,colorRenderbuffers:this._colorRenderbuffers,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1}):this._framebuffer=new Vr({context:e,colorTextures:this._colorTextures,depthTexture:this._depthTexture,depthRenderbuffer:this._depthRenderbuffer,depthStencilTexture:this._depthStencilTexture,depthStencilRenderbuffer:this._depthStencilRenderbuffer,destroyAttachments:!1})}};xs.prototype.getColorTexture=function(e){return e=y(e,0),this._colorTextures[e]};xs.prototype.setColorTexture=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorTextures[t],this._colorTextures[t]=e};xs.prototype.getColorRenderbuffer=function(e){return e=y(e,0),this._colorRenderbuffers[e]};xs.prototype.setColorRenderbuffer=function(e,t){t=y(t,0),this._attachmentsDirty=e!==this._colorRenderbuffers[t],this._colorRenderbuffers[t]=e};xs.prototype.getDepthRenderbuffer=function(){return this._depthRenderbuffer};xs.prototype.setDepthRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthRenderbuffer,this._depthRenderbuffer=e};xs.prototype.getDepthTexture=function(){return this._depthTexture};xs.prototype.setDepthTexture=function(e){this._attachmentsDirty=e!==this._depthTexture,this._depthTexture=e};xs.prototype.getDepthStencilRenderbuffer=function(){return this._depthStencilRenderbuffer};xs.prototype.setDepthStencilRenderbuffer=function(e){this._attachmentsDirty=e!==this._depthStencilRenderbuffer,this._depthStencilRenderbuffer=e};xs.prototype.getDepthStencilTexture=function(){return this._depthStencilTexture};xs.prototype.setDepthStencilTexture=function(e){this._attachmentsDirty=e!==this._depthStencilTexture,this._depthStencilTexture=e};xs.prototype.prepareTextures=function(e,t){this._numSamples>1&&this._multisampleFramebuffer.blitFramebuffers(e,t)};xs.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this.framebuffer,t.execute(e,n),t.framebuffer=i};xs.prototype.destroyFramebuffer=function(){this._framebuffer=this._framebuffer&&this._framebuffer.destroy(),this._multisampleFramebuffer=this._multisampleFramebuffer&&this._multisampleFramebuffer.destroy()};xs.prototype.destroy=function(){if(this._color){let e=this._colorTextures,t=this._colorRenderbuffers;for(let n=0;n<e.length;++n){let i=e[n];this._createColorAttachments&&l(i)&&!i.isDestroyed()&&i.destroy(),l(i)&&i.isDestroyed()&&(e[n]=void 0);let o=t[n];this._createColorAttachments&&l(o)&&!o.isDestroyed()&&o.destroy(),l(o)&&o.isDestroyed()&&(t[n]=void 0)}}this._depthStencil&&(this._createDepthAttachments&&(this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy()),l(this._depthStencilTexture)&&this._depthStencilTexture.isDestroyed()&&(this._depthStencilTexture=void 0),l(this._depthStencilRenderbuffer)&&this._depthStencilRenderbuffer.isDestroyed()&&(this._depthStencilRenderbuffer=void 0)),this._depth&&(this._createDepthAttachments&&(this._depthTexture=this._depthTexture&&this._depthTexture.destroy(),this._depthRenderbuffer=this._depthRenderbuffer&&this._depthRenderbuffer.destroy()),l(this._depthTexture)&&this._depthTexture.isDestroyed()&&(this._depthTexture=void 0),l(this._depthRenderbuffer)&&this._depthRenderbuffer.isDestroyed()&&(this._depthRenderbuffer=void 0)),this.destroyFramebuffer()};var hi=xs;var R0={VERTEX:0,FRAGMENT:1,BOTH:2};R0.includesVertexShader=function(e){return e===R0.VERTEX||e===R0.BOTH};R0.includesFragmentShader=function(e){return e===R0.FRAGMENT||e===R0.BOTH};var pe=Object.freeze(R0);function S6(e){this.name=e,this.fields=[]}S6.prototype.addField=function(e,t){let n=` ${e} ${t};`;this.fields.push(n)};S6.prototype.generateGlslLines=function(){let e=this.fields;return e.length===0&&(e=[" float _empty;"]),[].concat(`struct ${this.name}`,"{",e,"};")};var GM=S6;function v6(e){this.signature=e,this.body=[]}v6.prototype.addLines=function(e){let t=this.body;if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;i++)t.push(` ${e[i]}`)}else t.push(` ${e}`)};v6.prototype.generateGlslLines=function(){return[].concat(this.signature,"{",this.body,"}")};var WM=v6;function Tc(){this._positionAttributeLine=void 0,this._nextAttributeLocation=1,this._attributeLocations={},this._attributeLines=[],this._structs={},this._functions={},this._vertexShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]},this._fragmentShaderParts={defineLines:[],uniformLines:[],shaderLines:[],varyingLines:[],structIds:[],functionIds:[]}}Object.defineProperties(Tc.prototype,{attributeLocations:{get:function(){return this._attributeLocations}}});Tc.prototype.addDefine=function(e,t,n){n=y(n,pe.BOTH);let i=e;l(t)&&(i+=` ${t.toString()}`),pe.includesVertexShader(n)&&this._vertexShaderParts.defineLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.defineLines.push(i)};Tc.prototype.addStruct=function(e,t,n){this._structs[e]=new GM(t),pe.includesVertexShader(n)&&this._vertexShaderParts.structIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.structIds.push(e)};Tc.prototype.addStructField=function(e,t,n){this._structs[e].addField(t,n)};Tc.prototype.addFunction=function(e,t,n){this._functions[e]=new WM(t),pe.includesVertexShader(n)&&this._vertexShaderParts.functionIds.push(e),pe.includesFragmentShader(n)&&this._fragmentShaderParts.functionIds.push(e)};Tc.prototype.addFunctionLines=function(e,t){this._functions[e].addLines(t)};Tc.prototype.addUniform=function(e,t,n){n=y(n,pe.BOTH);let i=`uniform ${e} ${t};`;pe.includesVertexShader(n)&&this._vertexShaderParts.uniformLines.push(i),pe.includesFragmentShader(n)&&this._fragmentShaderParts.uniformLines.push(i)};Tc.prototype.setPositionAttribute=function(e,t){return this._positionAttributeLine=`in ${e} ${t};`,this._attributeLocations[t]=0,0};Tc.prototype.addAttribute=function(e,t){let n=`in ${e} ${t};`;this._attributeLines.push(n);let i=this._nextAttributeLocation;return this._attributeLocations[t]=i,this._nextAttributeLocation+=t1e(e),i};Tc.prototype.addVarying=function(e,t,n){n=l(n)?`${n} `:"";let i=`${e} ${t};`;this._vertexShaderParts.varyingLines.push(`${n}out ${i}`),this._fragmentShaderParts.varyingLines.push(`${n}in ${i}`)};Tc.prototype.addVertexLines=function(e){let t=this._vertexShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Tc.prototype.addFragmentLines=function(e){let t=this._fragmentShaderParts.shaderLines;Array.isArray(e)?t.push.apply(t,e):t.push(e)};Tc.prototype.buildShaderProgram=function(e){let t=l(this._positionAttributeLine)?[this._positionAttributeLine]:[],n=e1e(this),i=n1e(this),o=t.concat(this._attributeLines,this._vertexShaderParts.uniformLines,this._vertexShaderParts.varyingLines,n.vertexLines,i.vertexLines,this._vertexShaderParts.shaderLines).join(` +`),r=new Ue({defines:this._vertexShaderParts.defineLines,sources:[o]}),s=this._fragmentShaderParts.uniformLines.concat(this._fragmentShaderParts.varyingLines,n.fragmentLines,i.fragmentLines,this._fragmentShaderParts.shaderLines).join(` +`),a=new Ue({defines:this._fragmentShaderParts.defineLines,sources:[s]});return en.fromCache({context:e,vertexShaderSource:r,fragmentShaderSource:a,attributeLocations:this._attributeLocations})};Tc.prototype.clone=function(){return Ge(this,!0)};function e1e(e){let t=[],n=[],i,o=e._vertexShaderParts.structIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.structIds,i=0;i<o.length;i++)r=o[i],s=e._structs[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}function t1e(e){switch(e){case"mat2":return 2;case"mat3":return 3;case"mat4":return 4;default:return 1}}function n1e(e){let t=[],n=[],i,o=e._vertexShaderParts.functionIds,r,s,a;for(i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),t.push.apply(t,a);for(o=e._fragmentShaderParts.functionIds,i=0;i<o.length;i++)r=o[i],s=e._functions[r],a=s.generateGlslLines(),n.push.apply(n,a);return{vertexLines:t,fragmentLines:n}}var vT=Tc;function Os(e,t,n,i){let o=Os._verifyAttributes(t);n=y(n,0);let r=[],s={},a,c,u=o.length;for(let d=0;d<u;++d){let p=o[d];if(p.vertexBuffer){r.push(p);continue}c=p.usage,a=s[c],l(a)||(a=s[c]=[]),a.push(p)}function f(d,p){return X.getSizeInBytes(p.componentDatatype)-X.getSizeInBytes(d.componentDatatype)}this._allBuffers=[];for(c in s)if(s.hasOwnProperty(c)){a=s[c],a.sort(f);let d=Os._vertexSizeInBytes(a),p=a[0].usage,g={vertexSizeInBytes:d,vertexBuffer:void 0,usage:p,needsCommit:!1,arrayBuffer:void 0,arrayViews:Os._createArrayViews(a,d)};this._allBuffers.push(g)}this._size=0,this._instanced=y(i,!1),this._precreated=r,this._context=e,this.writers=void 0,this.va=void 0,this.resize(n)}Os._verifyAttributes=function(e){let t=[];for(let i=0;i<e.length;++i){let o=e[i],r={index:y(o.index,i),enabled:y(o.enabled,!0),componentsPerAttribute:o.componentsPerAttribute,componentDatatype:y(o.componentDatatype,X.FLOAT),normalize:y(o.normalize,!1),vertexBuffer:o.vertexBuffer,usage:y(o.usage,Fe.STATIC_DRAW)};t.push(r)}let n=new Array(t.length);for(let i=0;i<t.length;++i){let r=t[i].index;n[r]=!0}return t};Os._vertexSizeInBytes=function(e){let t=0,n=e.length;for(let s=0;s<n;++s){let a=e[s];t+=a.componentsPerAttribute*X.getSizeInBytes(a.componentDatatype)}let i=n>0?X.getSizeInBytes(e[0].componentDatatype):0,o=i>0?t%i:0,r=o===0?0:i-o;return t+=r,t};Os._createArrayViews=function(e,t){let n=[],i=0,o=e.length;for(let r=0;r<o;++r){let s=e[r],a=s.componentDatatype;n.push({index:s.index,enabled:s.enabled,componentsPerAttribute:s.componentsPerAttribute,componentDatatype:a,normalize:s.normalize,offsetInBytes:i,vertexSizeInComponentType:t/X.getSizeInBytes(a),view:void 0}),i+=s.componentsPerAttribute*X.getSizeInBytes(a)}return n};Os.prototype.resize=function(e){this._size=e;let t=this._allBuffers;this.writers=[];for(let n=0,i=t.length;n<i;++n){let o=t[n];Os._resize(o,this._size),Os._appendWriters(this.writers,o)}w6(this)};Os._resize=function(e,t){if(e.vertexSizeInBytes>0){let n=new ArrayBuffer(t*e.vertexSizeInBytes);if(l(e.arrayBuffer)){let r=new Uint8Array(n),s=new Uint8Array(e.arrayBuffer),a=s.length;for(let c=0;c<a;++c)r[c]=s[c]}let i=e.arrayViews,o=i.length;for(let r=0;r<o;++r){let s=i[r];s.view=X.createArrayBufferView(s.componentDatatype,n,s.offsetInBytes)}e.arrayBuffer=n}};var i1e=[function(e,t,n){return function(i,o){t[i*n]=o,e.needsCommit=!0}},function(e,t,n){return function(i,o,r){let s=i*n;t[s]=o,t[s+1]=r,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s){let a=i*n;t[a]=o,t[a+1]=r,t[a+2]=s,e.needsCommit=!0}},function(e,t,n){return function(i,o,r,s,a){let c=i*n;t[c]=o,t[c+1]=r,t[c+2]=s,t[c+3]=a,e.needsCommit=!0}}];Os._appendWriters=function(e,t){let n=t.arrayViews,i=n.length;for(let o=0;o<i;++o){let r=n[o];e[r.index]=i1e[r.componentsPerAttribute-1](t,r.view,r.vertexSizeInComponentType)}};Os.prototype.commit=function(e){let t=!1,n=this._allBuffers,i,o,r;for(o=0,r=n.length;o<r;++o)i=n[o],t=o1e(this,i)||t;if(t||!l(this.va)){w6(this);let s=this.va=[],a=P.SIXTY_FOUR_KILOBYTES-4,c=l(e)&&!this._instanced?Math.ceil(this._size/a):1;for(let u=0;u<c;++u){let f=[];for(o=0,r=n.length;o<r;++o){i=n[o];let d=u*(i.vertexSizeInBytes*a);Os._appendAttributes(f,i,d,this._instanced)}f=f.concat(this._precreated),s.push({va:new ti({context:this._context,attributes:f,indexBuffer:e}),indicesCount:1.5*(u!==c-1?a:this._size%a)})}}};function o1e(e,t){if(t.needsCommit&&t.vertexSizeInBytes>0){t.needsCommit=!1;let n=t.vertexBuffer,i=e._size*t.vertexSizeInBytes,o=l(n);if(!o||n.sizeInBytes<i)return o&&n.destroy(),t.vertexBuffer=yt.createVertexBuffer({context:e._context,typedArray:t.arrayBuffer,usage:t.usage}),t.vertexBuffer.vertexArrayDestroyable=!1,!0;t.vertexBuffer.copyFromArrayView(t.arrayBuffer)}return!1}Os._appendAttributes=function(e,t,n,i){let o=t.arrayViews,r=o.length;for(let s=0;s<r;++s){let a=o[s];e.push({index:a.index,enabled:a.enabled,componentsPerAttribute:a.componentsPerAttribute,componentDatatype:a.componentDatatype,normalize:a.normalize,vertexBuffer:t.vertexBuffer,offsetInBytes:n+a.offsetInBytes,strideInBytes:t.vertexSizeInBytes,instanceDivisor:i?1:0})}};Os.prototype.subCommit=function(e,t){let n=this._allBuffers;for(let i=0,o=n.length;i<o;++i)r1e(n[i],e,t)};function r1e(e,t,n){if(e.needsCommit&&e.vertexSizeInBytes>0){let i=e.vertexSizeInBytes*t,o=e.vertexSizeInBytes*n;e.vertexBuffer.copyFromArrayView(new Uint8Array(e.arrayBuffer,i,o),i)}}Os.prototype.endSubCommits=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t)e[t].needsCommit=!1};function w6(e){let t=e.va;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].va.destroy();e.va=void 0}Os.prototype.isDestroyed=function(){return!1};Os.prototype.destroy=function(){let e=this._allBuffers;for(let t=0,n=e.length;t<n;++t){let i=e[t];i.vertexBuffer=i.vertexBuffer&&i.vertexBuffer.destroy()}return w6(this),ue(this)};var U_=Os;function s1e(e,t,n){let i={flipY:!0,skipColorSpaceConversion:n,preferImageBitmap:!0},o=[De.createIfNeeded(t.positiveX).fetchImage(i),De.createIfNeeded(t.negativeX).fetchImage(i),De.createIfNeeded(t.positiveY).fetchImage(i),De.createIfNeeded(t.negativeY).fetchImage(i),De.createIfNeeded(t.positiveZ).fetchImage(i),De.createIfNeeded(t.negativeZ).fetchImage(i)];return Promise.all(o).then(function(r){return new Dr({context:e,source:{positiveX:r[0],negativeX:r[1],positiveY:r[2],negativeY:r[3],positiveZ:r[4],negativeZ:r[5]}})})}var jM=s1e;function z_(e){this._value=void 0,this._hasClone=!1,this._hasEquals=!1,this._definitionChanged=new me,this.setValue(e)}Object.defineProperties(z_.prototype,{isConstant:{value:!0},definitionChanged:{get:function(){return this._definitionChanged}}});z_.prototype.getValue=function(e,t){return this._hasClone?this._value.clone(t):this._value};z_.prototype.setValue=function(e){let t=this._value;if(t!==e){let n=l(e),i=n&&typeof e.clone=="function",o=n&&typeof e.equals=="function";(!o||!e.equals(t))&&(this._hasClone=i,this._hasEquals=o,this._value=i?e.clone(this._value):e,this._definitionChanged.raiseEvent(this))}};z_.prototype.equals=function(e){return this===e||e instanceof z_&&(!this._hasEquals&&this._value===e._value||this._hasEquals&&this._value.equals(e._value))};z_.prototype.valueOf=function(){return this._value};z_.prototype.toString=function(){return String(this._value)};var Xn=z_;function a1e(e,t,n,i,o){return{configurable:i,get:function(){return this[t]},set:function(r){let s=this[t],a=this[n];l(a)&&(a(),this[n]=void 0),r!==void 0&&(!l(r)||!l(r.getValue))&&l(o)&&(r=o(r)),s!==r&&(this[t]=r,this._definitionChanged.raiseEvent(this,e,r,s)),l(r)&&l(r.definitionChanged)&&(this[n]=r.definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this,e,r,r)},this))}}}function c1e(e){return new Xn(e)}function l1e(e,t,n){return a1e(e,`_${e.toString()}`,`_${e.toString()}Subscription`,y(t,!1),y(n,c1e))}var le=l1e;function tv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._image=void 0,this._imageSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._alignedAxis=void 0,this._alignedAxisSubscription=void 0,this._sizeInMeters=void 0,this._sizeInMetersSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._imageSubRegion=void 0,this._imageSubRegionSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(tv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),image:le("image"),scale:le("scale"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),color:le("color"),rotation:le("rotation"),alignedAxis:le("alignedAxis"),sizeInMeters:le("sizeInMeters"),width:le("width"),height:le("height"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),imageSubRegion:le("imageSubRegion"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});tv.prototype.clone=function(e){return l(e)?(e.show=this._show,e.image=this._image,e.scale=this._scale,e.pixelOffset=this._pixelOffset,e.eyeOffset=this._eyeOffset,e.horizontalOrigin=this._horizontalOrigin,e.verticalOrigin=this._verticalOrigin,e.heightReference=this._heightReference,e.color=this._color,e.rotation=this._rotation,e.alignedAxis=this._alignedAxis,e.sizeInMeters=this._sizeInMeters,e.width=this._width,e.height=this._height,e.scaleByDistance=this._scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.pixelOffsetScaleByDistance=this._pixelOffsetScaleByDistance,e.imageSubRegion=this._imageSubRegion,e.distanceDisplayCondition=this._distanceDisplayCondition,e.disableDepthTestDistance=this._disableDepthTestDistance,e.splitDirection=this._splitDirection,e):new tv(this)};tv.prototype.merge=function(e){this.show=y(this._show,e.show),this.image=y(this._image,e.image),this.scale=y(this._scale,e.scale),this.pixelOffset=y(this._pixelOffset,e.pixelOffset),this.eyeOffset=y(this._eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this._horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this._verticalOrigin,e.verticalOrigin),this.heightReference=y(this._heightReference,e.heightReference),this.color=y(this._color,e.color),this.rotation=y(this._rotation,e.rotation),this.alignedAxis=y(this._alignedAxis,e.alignedAxis),this.sizeInMeters=y(this._sizeInMeters,e.sizeInMeters),this.width=y(this._width,e.width),this.height=y(this._height,e.height),this.scaleByDistance=y(this._scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this._pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.imageSubRegion=y(this._imageSubRegion,e.imageSubRegion),this.distanceDisplayCondition=y(this._distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this._disableDepthTestDistance,e.disableDepthTestDistance),this.splitDirection=y(this.splitDirection,e.splitDirection)};var Ac=tv;function O0(){this._array=[],this._hash={}}Object.defineProperties(O0.prototype,{length:{get:function(){return this._array.length}},values:{get:function(){return this._array}}});O0.prototype.contains=function(e){return l(this._hash[e])};O0.prototype.set=function(e,t){let n=this._hash[e];t!==n&&(this.remove(e),this._hash[e]=t,this._array.push(t))};O0.prototype.get=function(e){return this._hash[e]};O0.prototype.remove=function(e){let t=this._hash[e],n=l(t);if(n){let i=this._array;i.splice(i.indexOf(t),1),delete this._hash[e]}return n};O0.prototype.removeAll=function(){let e=this._array;e.length>0&&(this._hash={},e.length=0)};var St=O0;function Yl(e,t){e=y(e,0),this._near=e,t=y(t,Number.MAX_VALUE),this._far=t}Object.defineProperties(Yl.prototype,{near:{get:function(){return this._near},set:function(e){this._near=e}},far:{get:function(){return this._far},set:function(e){this._far=e}}});Yl.packedLength=2;Yl.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n]=e.far,t};Yl.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Yl),n.near=e[t++],n.far=e[t],n};Yl.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.far===t.far};Yl.clone=function(e,t){if(l(e))return l(t)||(t=new Yl),t.near=e.near,t.far=e.far,t};Yl.prototype.clone=function(e){return Yl.clone(this,e)};Yl.prototype.equals=function(e){return Yl.equals(this,e)};var Ft=Yl;function Xu(e,t,n,i){this.near=y(e,0),this.nearValue=y(t,0),this.far=y(n,1),this.farValue=y(i,0)}Xu.clone=function(e,t){if(l(e))return l(t)?(t.near=e.near,t.nearValue=e.nearValue,t.far=e.far,t.farValue=e.farValue,t):new Xu(e.near,e.nearValue,e.far,e.farValue)};Xu.packedLength=4;Xu.pack=function(e,t,n){return n=y(n,0),t[n++]=e.near,t[n++]=e.nearValue,t[n++]=e.far,t[n]=e.farValue,t};Xu.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Xu),n.near=e[t++],n.nearValue=e[t++],n.far=e[t++],n.farValue=e[t],n};Xu.equals=function(e,t){return e===t||l(e)&&l(t)&&e.near===t.near&&e.nearValue===t.nearValue&&e.far===t.far&&e.farValue===t.farValue};Xu.prototype.clone=function(e){return Xu.clone(this,e)};Xu.prototype.equals=function(e){return Xu.equals(this,e)};var Vt=Xu;var M0={NONE:0,CLAMP_TO_GROUND:1,RELATIVE_TO_GROUND:2,CLAMP_TO_TERRAIN:3,RELATIVE_TO_TERRAIN:4,CLAMP_TO_3D_TILE:5,RELATIVE_TO_3D_TILE:6},Ke=Object.freeze(M0);function Ku(e){return e===M0.CLAMP_TO_GROUND||e===M0.CLAMP_TO_3D_TILE||e===M0.CLAMP_TO_TERRAIN}function wT(e){return e===M0.RELATIVE_TO_GROUND||e===M0.RELATIVE_TO_3D_TILE||e===M0.RELATIVE_TO_TERRAIN}var u1e={CENTER:0,LEFT:1,RIGHT:-1},gi=Object.freeze(u1e);var f1e={CENTER:0,BOTTOM:1,BASELINE:2,TOP:-1},On=Object.freeze(f1e);var d1e={DONE:0,PENDING:1,FAILED:2},dt=Object.freeze(d1e);function sd(){he.throwInstantiationError()}Object.defineProperties(sd.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});sd.prototype.getValue=he.throwInstantiationError;sd.prototype.equals=he.throwInstantiationError;sd.equals=function(e,t){return e===t||l(e)&&e.equals(t)};sd.arrayEquals=function(e,t){if(e===t)return!0;if(!l(e)||!l(t)||e.length!==t.length)return!1;let n=e.length;for(let i=0;i<n;i++)if(!sd.equals(e[i],t[i]))return!1;return!0};sd.isConstant=function(e){return!l(e)||e.isConstant};sd.getValueOrUndefined=function(e,t,n){return l(e)?e.getValue(t,n):void 0};sd.getValueOrDefault=function(e,t,n,i){return l(e)?y(e.getValue(t,i),n):n};sd.getValueOrClonedDefault=function(e,t,n,i){let o;return l(e)&&(o=e.getValue(t,i)),l(o)||(o=n.clone(o)),o};var Y=sd;var h1e={LEFT:-1,NONE:0,RIGHT:1},zr=Object.freeze(h1e);var m1e=z.WHITE,p1e=h.ZERO,_1e=Ke.NONE,g1e=U.ZERO,y1e=1,x1e=0,b1e=h.ZERO,T1e=gi.CENTER,A1e=On.CENTER,C1e=!1,E1e=zr.NONE,S1e=new h,v1e=new z,w1e=new h,D1e=new U,I1e=new Vt,P1e=new Vt,R1e=new Vt,O1e=new qe,M1e=new Ft;function Nee(e){this.entity=e,this.billboard=void 0,this.textureValue=void 0}function H_(e,t){t.collectionChanged.addEventListener(H_.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new St,this._onCollectionChanged(t,t.values,[],[])}H_.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._billboard,c,u=r.billboard,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,S1e),c=Y.getValueOrUndefined(a._image,e),f=l(d)&&l(c)),!f){D6(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0),l(u)||(u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u),u.show=f,(!l(u.image)||r.textureValue!==c)&&(u.image=c,r.textureValue=c),u.position=d,u.color=Y.getValueOrDefault(a._color,e,m1e,v1e),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,p1e,w1e),u.heightReference=Y.getValueOrDefault(a._heightReference,e,_1e),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,g1e,D1e),u.scale=Y.getValueOrDefault(a._scale,e,y1e),u.rotation=Y.getValueOrDefault(a._rotation,e,x1e),u.alignedAxis=Y.getValueOrDefault(a._alignedAxis,e,b1e),u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,T1e),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,A1e),u.width=Y.getValueOrUndefined(a._width,e),u.height=Y.getValueOrUndefined(a._height,e),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,I1e),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,P1e),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,R1e),u.sizeInMeters=Y.getValueOrDefault(a._sizeInMeters,e,C1e),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,M1e),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,E1e);let p=Y.getValueOrUndefined(a._imageSubRegion,e,O1e);l(p)&&u.setImageSubRegion(u._imageId,p)}return!0};H_.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.billboard))return dt.FAILED;let i=n.billboard;if(i.heightReference===Ke.NONE)t.center=h.clone(i.position,t.center);else{if(!l(i._clampedPosition))return dt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,dt.DONE};H_.prototype.isDestroyed=function(){return!1};H_.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(H_.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeBillboard(e[t]);return ue(this)};H_.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._billboard)&&l(r._position)&&s.set(r.id,new Nee(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._billboard)&&l(r._position)?s.contains(r.id)||s.set(r.id,new Nee(r)):(D6(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],D6(s.get(r.id),r,a),s.remove(r.id)};function D6(e,t,n){l(e)&&(e.billboard=void 0,n.removeBillboard(t))}var qM=H_;var L1e=new h;function Th(e){e=y(e,y.EMPTY_OBJECT);let t=e.minimum,n=e.maximum;this._min=h.clone(t),this._max=h.clone(n),this._offsetAttribute=e.offsetAttribute,this._workerName="createBoxOutlineGeometry"}Th.fromDimensions=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.dimensions,n=h.multiplyByScalar(t,.5,new h);return new Th({minimum:h.negate(n,new h),maximum:n,offsetAttribute:e.offsetAttribute})};Th.fromAxisAlignedBoundingBox=function(e){return new Th({minimum:e.minimum,maximum:e.maximum})};Th.packedLength=2*h.packedLength+1;Th.pack=function(e,t,n){return n=y(n,0),h.pack(e._min,t,n),h.pack(e._max,t,n+h.packedLength),t[n+h.packedLength*2]=y(e._offsetAttribute,-1),t};var Bee=new h,kee=new h,Fee={minimum:Bee,maximum:kee,offsetAttribute:void 0};Th.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Bee),o=h.unpack(e,t+h.packedLength,kee),r=e[t+h.packedLength*2];return l(n)?(n._min=h.clone(i,n._min),n._max=h.clone(o,n._max),n._offsetAttribute=r===-1?void 0:r,n):(Fee.offsetAttribute=r===-1?void 0:r,new Th(Fee))};Th.createGeometry=function(e){let t=e._min,n=e._max;if(h.equals(t,n))return;let i=new dn,o=new Uint16Array(12*2),r=new Float64Array(8*3);r[0]=t.x,r[1]=t.y,r[2]=t.z,r[3]=n.x,r[4]=t.y,r[5]=t.z,r[6]=n.x,r[7]=n.y,r[8]=t.z,r[9]=t.x,r[10]=n.y,r[11]=t.z,r[12]=t.x,r[13]=t.y,r[14]=n.z,r[15]=n.x,r[16]=t.y,r[17]=n.z,r[18]=n.x,r[19]=n.y,r[20]=n.z,r[21]=t.x,r[22]=n.y,r[23]=n.z,i.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:r}),o[0]=4,o[1]=5,o[2]=5,o[3]=6,o[4]=6,o[5]=7,o[6]=7,o[7]=4,o[8]=0,o[9]=1,o[10]=1,o[11]=2,o[12]=2,o[13]=3,o[14]=3,o[15]=0,o[16]=0,o[17]=4,o[18]=1,o[19]=5,o[20]=2,o[21]=6,o[22]=3,o[23]=7;let s=h.subtract(n,t,L1e),a=h.magnitude(s)*.5;if(l(e._offsetAttribute)){let c=r.length,u=e._offsetAttribute===sn.NONE?0:1,f=new Uint8Array(c/3).fill(u);i.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:f})}return new ft({attributes:i,indices:o,primitiveType:Le.LINES,boundingSphere:new se(h.ZERO,a),offsetAttribute:e._offsetAttribute})};var Ah=Th;function DT(e,t,n,i){e=y(e,1),t=y(t,1),n=y(n,1),i=y(i,1),this.value=new Uint8Array([z.floatToByte(e),z.floatToByte(t),z.floatToByte(n),z.floatToByte(i)])}Object.defineProperties(DT.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 4}},normalize:{get:function(){return!0}}});DT.fromColor=function(e){return new DT(e.red,e.green,e.blue,e.alpha)};DT.toValue=function(e,t){return l(t)?e.toBytes(t):new Uint8Array(e.toBytes())};DT.equals=function(e,t){return e===t||l(e)&&l(t)&&e.value[0]===t.value[0]&&e.value[1]===t.value[1]&&e.value[2]===t.value[2]&&e.value[3]===t.value[3]};var qt=DT;function nv(e,t){e=y(e,0),t=y(t,Number.MAX_VALUE),this.value=new Float32Array([e,t])}Object.defineProperties(nv.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 2}},normalize:{get:function(){return!1}}});nv.fromDistanceDisplayCondition=function(e){return new nv(e.near,e.far)};nv.toValue=function(e,t){return l(t)?(t[0]=e.near,t[1]=e.far,t):new Float32Array([e.near,e.far])};var Bn=nv;function N1e(e){e=y(e,y.EMPTY_OBJECT),this.geometry=e.geometry,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.id=e.id,this.pickPrimitive=e.pickPrimitive,this.attributes=y(e.attributes,{}),this.westHemisphereGeometry=void 0,this.eastHemisphereGeometry=void 0}var vt=N1e;function Go(e){e=y(e,y.EMPTY_OBJECT),this.start=l(e.start)?K.clone(e.start):new K,this.stop=l(e.stop)?K.clone(e.stop):new K,this.data=e.data,this.isStartIncluded=y(e.isStartIncluded,!0),this.isStopIncluded=y(e.isStopIncluded,!0)}Object.defineProperties(Go.prototype,{isEmpty:{get:function(){let e=K.compare(this.stop,this.start);return e<0||e===0&&(!this.isStartIncluded||!this.isStopIncluded)}}});var IT={start:void 0,stop:void 0,isStartIncluded:void 0,isStopIncluded:void 0,data:void 0};Go.fromIso8601=function(e,t){let n=e.iso8601.split("/");if(n.length!==2)throw new he("options.iso8601 is an invalid ISO 8601 interval.");let i=K.fromIso8601(n[0]),o=K.fromIso8601(n[1]),r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=e.data;return l(t)?(t.start=i,t.stop=o,t.isStartIncluded=r,t.isStopIncluded=s,t.data=a,t):(IT.start=i,IT.stop=o,IT.isStartIncluded=r,IT.isStopIncluded=s,IT.data=a,new Go(IT))};Go.toIso8601=function(e,t){return`${K.toIso8601(e.start,t)}/${K.toIso8601(e.stop,t)}`};Go.clone=function(e,t){if(l(e))return l(t)?(t.start=e.start,t.stop=e.stop,t.isStartIncluded=e.isStartIncluded,t.isStopIncluded=e.isStopIncluded,t.data=e.data,t):new Go(e)};Go.equals=function(e,t,n){return e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&K.equals(e.start,t.start)&&K.equals(e.stop,t.stop)&&(e.data===t.data||l(n)&&n(e.data,t.data)))};Go.equalsEpsilon=function(e,t,n,i){return n=y(n,0),e===t||l(e)&&l(t)&&(e.isEmpty&&t.isEmpty||e.isStartIncluded===t.isStartIncluded&&e.isStopIncluded===t.isStopIncluded&&K.equalsEpsilon(e.start,t.start,n)&&K.equalsEpsilon(e.stop,t.stop,n)&&(e.data===t.data||l(i)&&i(e.data,t.data)))};Go.intersect=function(e,t,n,i){if(!l(t))return Go.clone(Go.EMPTY,n);let o=e.start,r=e.stop,s=t.start,a=t.stop,c=K.greaterThanOrEquals(s,o)&&K.greaterThanOrEquals(r,s),u=!c&&K.lessThanOrEquals(s,o)&&K.lessThanOrEquals(o,a);if(!c&&!u)return Go.clone(Go.EMPTY,n);let f=e.isStartIncluded,d=e.isStopIncluded,p=t.isStartIncluded,g=t.isStopIncluded,m=K.lessThan(r,a);return l(n)||(n=new Go),n.start=c?s:o,n.isStartIncluded=f&&p||!K.equals(s,o)&&(c&&p||u&&f),n.stop=m?r:a,n.isStopIncluded=m?d:d&&g||!K.equals(a,r)&&g,n.data=l(i)?i(e.data,t.data):e.data,n};Go.contains=function(e,t){if(e.isEmpty)return!1;let n=K.compare(e.start,t);if(n===0)return e.isStartIncluded;let i=K.compare(t,e.stop);return i===0?e.isStopIncluded:n<0&&i<0};Go.prototype.clone=function(e){return Go.clone(this,e)};Go.prototype.equals=function(e,t){return Go.equals(this,e,t)};Go.prototype.equalsEpsilon=function(e,t,n){return Go.equalsEpsilon(this,e,t,n)};Go.prototype.toString=function(){return Go.toIso8601(this)};Go.EMPTY=Object.freeze(new Go({start:new K,stop:new K,isStartIncluded:!1,isStopIncluded:!1}));var Sn=Go;var Vee=Object.freeze(K.fromIso8601("0000-01-01T00:00:00Z")),Uee=Object.freeze(K.fromIso8601("9999-12-31T24:00:00Z")),F1e=Object.freeze(new Sn({start:Vee,stop:Uee})),B1e={MINIMUM_VALUE:Vee,MAXIMUM_VALUE:Uee,MAXIMUM_INTERVAL:F1e},ze=B1e;function iv(e,t,n){e=y(e,0),t=y(t,0),n=y(n,0),this.value=new Float32Array([e,t,n])}Object.defineProperties(iv.prototype,{componentDatatype:{get:function(){return X.FLOAT}},componentsPerAttribute:{get:function(){return 3}},normalize:{get:function(){return!1}}});iv.fromCartesian3=function(e){return new iv(e.x,e.y,e.z)};iv.toValue=function(e,t){return l(t)||(t=new Float32Array([e.x,e.y,e.z])),t[0]=e.x,t[1]=e.y,t[2]=e.z,t};var Zi=iv;function YM(e){e=y(e,!0),this.value=YM.toValue(e)}Object.defineProperties(YM.prototype,{componentDatatype:{get:function(){return X.UNSIGNED_BYTE}},componentsPerAttribute:{get:function(){return 1}},normalize:{get:function(){return!1}}});YM.toValue=function(e,t){return l(t)?(t[0]=e,t):new Uint8Array([e])};var gn=YM;var XM=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec3 v_tangentEC; +in vec3 v_bitangentEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + mat3 tangentToEyeMatrix = czm_tangentToEyeSpaceMatrix(v_normalEC, v_tangentEC, v_bitangentEC); + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = tangentToEyeMatrix; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var KM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec3 tangent; +in vec3 bitangent; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec3 v_tangentEC; +out vec3 v_bitangentEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_tangentEC = czm_normal * tangent; // tangent in eye coordinates + v_bitangentEC = czm_normal * bitangent; // bitangent in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var ZM=`in vec3 v_positionEC; +in vec3 v_normalEC; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var $M=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var QM=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec2 v_st; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + materialInput.st = v_st; + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var JM=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec2 st; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var k1e={ADD:te.FUNC_ADD,SUBTRACT:te.FUNC_SUBTRACT,REVERSE_SUBTRACT:te.FUNC_REVERSE_SUBTRACT,MIN:te.MIN,MAX:te.MAX},Wa=Object.freeze(k1e);var V1e={ZERO:te.ZERO,ONE:te.ONE,SOURCE_COLOR:te.SRC_COLOR,ONE_MINUS_SOURCE_COLOR:te.ONE_MINUS_SRC_COLOR,DESTINATION_COLOR:te.DST_COLOR,ONE_MINUS_DESTINATION_COLOR:te.ONE_MINUS_DST_COLOR,SOURCE_ALPHA:te.SRC_ALPHA,ONE_MINUS_SOURCE_ALPHA:te.ONE_MINUS_SRC_ALPHA,DESTINATION_ALPHA:te.DST_ALPHA,ONE_MINUS_DESTINATION_ALPHA:te.ONE_MINUS_DST_ALPHA,CONSTANT_COLOR:te.CONSTANT_COLOR,ONE_MINUS_CONSTANT_COLOR:te.ONE_MINUS_CONSTANT_COLOR,CONSTANT_ALPHA:te.CONSTANT_ALPHA,ONE_MINUS_CONSTANT_ALPHA:te.ONE_MINUS_CONSTANT_ALPHA,SOURCE_ALPHA_SATURATE:te.SRC_ALPHA_SATURATE},Eo=Object.freeze(V1e);var U1e={DISABLED:Object.freeze({enabled:!1}),ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.SOURCE_ALPHA,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA}),PRE_MULTIPLIED_ALPHA_BLEND:Object.freeze({enabled:!0,equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.ONE,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA}),ADDITIVE_BLEND:Object.freeze({enabled:!0,equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.SOURCE_ALPHA,functionSourceAlpha:Eo.ONE,functionDestinationRgb:Eo.ONE,functionDestinationAlpha:Eo.ONE})},ln=Object.freeze(U1e);var z1e={FRONT:te.FRONT,BACK:te.BACK,FRONT_AND_BACK:te.FRONT_AND_BACK},yi=Object.freeze(z1e);function PT(e){e=y(e,y.EMPTY_OBJECT),this.material=e.material,this.translucent=y(e.translucent,!0),this._vertexShaderSource=e.vertexShaderSource,this._fragmentShaderSource=e.fragmentShaderSource,this._renderState=e.renderState,this._closed=y(e.closed,!1)}Object.defineProperties(PT.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}}});PT.prototype.getFragmentShaderSource=function(){let e=[];return this.flat&&e.push("#define FLAT"),this.faceForward&&e.push("#define FACE_FORWARD"),l(this.material)&&e.push(this.material.shaderSource),e.push(this.fragmentShaderSource),e.join(` +`)};PT.prototype.isTranslucent=function(){return l(this.material)&&this.material.isTranslucent()||!l(this.material)&&this.translucent};PT.prototype.getRenderState=function(){let e=this.isTranslucent(),t=Ge(this.renderState,!1);return e?(t.depthMask=!1,t.blending=ln.ALPHA_BLEND):t.depthMask=!0,t};PT.getDefaultRenderState=function(e,t,n){let i={depthTest:{enabled:!0}};return e&&(i.depthMask=!1,i.blending=ln.ALPHA_BLEND),t&&(i.cull={enabled:!0,face:yi.BACK}),l(n)&&(i=xt(n,i,!0)),i};var Ji=PT;var eL=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.aspect / (2.0 * czm_pi), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var tL=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + vec2 centerPixel = fract(repeat * st); + float centerBump = texture(image, centerPixel).channel; + + float imageWidth = float(imageDimensions.x); + vec2 rightPixel = fract(repeat * (st + vec2(1.0 / imageWidth, 0.0))); + float rightBump = texture(image, rightPixel).channel; + + float imageHeight = float(imageDimensions.y); + vec2 leftPixel = fract(repeat * (st + vec2(0.0, 1.0 / imageHeight))); + float topBump = texture(image, leftPixel).channel; + + vec3 normalTangentSpace = normalize(vec3(centerBump - rightBump, centerBump - topBump, clamp(1.0 - strength, 0.1, 1.0))); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + material.diffuse = vec3(0.01); + + return material; +} +`;var nL=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = mod(floor(repeat.s * st.s) + floor(repeat.t * st.t), 2.0); // 0.0 or 1.0 + + // Find the distance from the closest separator (region between two colors) + float scaledWidth = fract(repeat.s * st.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(repeat.t * st.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + float value = min(scaledWidth, scaledHeight); + + vec4 currentColor = mix(lightColor, darkColor, b); + vec4 color = czm_antialias(lightColor, darkColor, currentColor, value, 0.03); + + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var iL=`uniform vec4 lightColor; +uniform vec4 darkColor; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // From Stefan Gustavson's Procedural Textures in GLSL in OpenGL Insights + float b = smoothstep(0.3, 0.32, length(fract(repeat * materialInput.st) - 0.5)); // 0.0 or 1.0 + + vec4 color = mix(lightColor, darkColor, b); + color = czm_gammaCorrect(color); + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var oL=`uniform sampler2D heights; +uniform sampler2D colors; + +// This material expects heights to be sorted from lowest to highest. + +float getHeight(int idx, float invTexSize) +{ + vec2 uv = vec2((float(idx) + 0.5) * invTexSize, 0.5); +#ifdef OES_texture_float + return texture(heights, uv).x; +#else + return czm_unpackFloat(texture(heights, uv)); +#endif +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float height = materialInput.height; + float invTexSize = 1.0 / float(heightsDimensions.x); + + float minHeight = getHeight(0, invTexSize); + float maxHeight = getHeight(heightsDimensions.x - 1, invTexSize); + + // early-out when outside the height range + if (height < minHeight || height > maxHeight) { + material.diffuse = vec3(0.0); + material.alpha = 0.0; + return material; + } + + // Binary search to find heights above and below. + int idxBelow = 0; + int idxAbove = heightsDimensions.x; + float heightBelow = minHeight; + float heightAbove = maxHeight; + + // while loop not allowed, so use for loop with max iterations. + // maxIterations of 16 supports a texture size up to 65536 (2^16). + const int maxIterations = 16; + for (int i = 0; i < maxIterations; i++) { + if (idxBelow >= idxAbove - 1) { + break; + } + + int idxMid = (idxBelow + idxAbove) / 2; + float heightTex = getHeight(idxMid, invTexSize); + + if (height > heightTex) { + idxBelow = idxMid; + heightBelow = heightTex; + } else { + idxAbove = idxMid; + heightAbove = heightTex; + } + } + + float lerper = heightBelow == heightAbove ? 1.0 : (height - heightBelow) / (heightAbove - heightBelow); + vec2 colorUv = vec2(invTexSize * (float(idxBelow) + 0.5 + lerper), 0.5); + vec4 color = texture(colors, colorUv); + + // undo preumultiplied alpha + if (color.a > 0.0) + { + color.rgb /= color.a; + } + + color.rgb = czm_gammaCorrect(color.rgb); + + material.diffuse = color.rgb; + material.alpha = color.a; + return material; +} +`;var rL=`uniform vec4 color; +uniform float spacing; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float distanceToContour = mod(materialInput.height, spacing); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float dxc = abs(dFdx(materialInput.height)); + float dyc = abs(dFdy(materialInput.height)); + float dF = max(dxc, dyc) * czm_pixelRatio * width; + float alpha = (distanceToContour < dF) ? 1.0 : 0.0; +#else + // If no derivatives available (IE 10?), use pixel ratio + float alpha = (distanceToContour < (czm_pixelRatio * width)) ? 1.0 : 0.0; +#endif + + vec4 outColor = czm_gammaCorrect(vec4(color.rgb, alpha * color.a)); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var sL=`uniform sampler2D image; +uniform float minimumHeight; +uniform float maximumHeight; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + float scaledHeight = clamp((materialInput.height - minimumHeight) / (maximumHeight - minimumHeight), 0.0, 1.0); + vec4 rampColor = texture(image, vec2(scaledHeight, 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var aL=`uniform vec4 fadeInColor; +uniform vec4 fadeOutColor; +uniform float maximumDistance; +uniform bool repeat; +uniform vec2 fadeDirection; +uniform vec2 time; + +float getTime(float t, float coord) +{ + float scalar = 1.0 / maximumDistance; + float q = distance(t, coord) * scalar; + if (repeat) + { + float r = distance(t, coord + 1.0) * scalar; + float s = distance(t, coord - 1.0) * scalar; + q = min(min(r, s), q); + } + return clamp(q, 0.0, 1.0); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float s = getTime(time.x, st.s) * fadeDirection.s; + float t = getTime(time.y, st.t) * fadeDirection.t; + + float u = length(vec2(s, t)); + vec4 color = mix(fadeInColor, fadeOutColor, u); + + color = czm_gammaCorrect(color); + material.emission = color.rgb; + material.alpha = color.a; + + return material; +} +`;var cL=`uniform vec4 color; +uniform float cellAlpha; +uniform vec2 lineCount; +uniform vec2 lineThickness; +uniform vec2 lineOffset; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + + float scaledWidth = fract(lineCount.s * st.s - lineOffset.s); + scaledWidth = abs(scaledWidth - floor(scaledWidth + 0.5)); + float scaledHeight = fract(lineCount.t * st.t - lineOffset.t); + scaledHeight = abs(scaledHeight - floor(scaledHeight + 0.5)); + + float value; + + // Fuzz Factor - Controls blurriness of lines +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + const float fuzz = 1.2; + vec2 thickness = (lineThickness * czm_pixelRatio) - 1.0; + + // From "3D Engine Design for Virtual Globes" by Cozzi and Ring, Listing 4.13. + vec2 dx = abs(dFdx(st)); + vec2 dy = abs(dFdy(st)); + vec2 dF = vec2(max(dx.s, dy.s), max(dx.t, dy.t)) * lineCount; + value = min( + smoothstep(dF.s * thickness.s, dF.s * (fuzz + thickness.s), scaledWidth), + smoothstep(dF.t * thickness.t, dF.t * (fuzz + thickness.t), scaledHeight)); +#else + // If no derivatives available (IE 10?), revert to view-dependent fuzz + const float fuzz = 0.05; + + vec2 range = 0.5 - (lineThickness * 0.05); + value = min( + 1.0 - smoothstep(range.s, range.s + fuzz, scaledWidth), + 1.0 - smoothstep(range.t, range.t + fuzz, scaledHeight)); +#endif + + // Edges taken from RimLightingMaterial.glsl + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float dRim = 1.0 - abs(dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC))); + float sRim = smoothstep(0.8, 1.0, dRim); + value *= (1.0 - sRim); + + vec4 halfColor; + halfColor.rgb = color.rgb * 0.5; + halfColor.a = color.a * (1.0 - ((1.0 - cellAlpha) * value)); + halfColor = czm_gammaCorrect(halfColor); + material.diffuse = halfColor.rgb; + material.emission = halfColor.rgb; + material.alpha = halfColor.a; + + return material; +} +`;var lL=`uniform sampler2D image; +uniform float strength; +uniform vec2 repeat; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 textureValue = texture(image, fract(repeat * materialInput.st)); + vec3 normalTangentSpace = textureValue.channels; + normalTangentSpace.xy = normalTangentSpace.xy * 2.0 - 1.0; + normalTangentSpace.z = clamp(1.0 - strength, 0.1, 1.0); + normalTangentSpace = normalize(normalTangentSpace); + vec3 normalEC = materialInput.tangentToEyeMatrix * normalTangentSpace; + + material.normal = normalEC; + + return material; +} +`;var uL=`uniform vec4 color; + +float getPointOnLine(vec2 p0, vec2 p1, float x) +{ + float slope = (p0.y - p1.y) / (p0.x - p1.x); + return slope * (x - p0.x) + p0.y; +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float base = 1.0 - abs(fwidth(st.s)) * 10.0 * czm_pixelRatio; +#else + // If no derivatives available (IE 10?), 2.5% of the line will be the arrow head + float base = 0.975; +#endif + + vec2 center = vec2(1.0, 0.5); + float ptOnUpperLine = getPointOnLine(vec2(base, 1.0), center, st.s); + float ptOnLowerLine = getPointOnLine(vec2(base, 0.0), center, st.s); + + float halfWidth = 0.15; + float s = step(0.5 - halfWidth, st.t); + s *= 1.0 - step(0.5 + halfWidth, st.t); + s *= 1.0 - step(base, st.s); + + float t = step(base, materialInput.st.s); + t *= 1.0 - step(ptOnUpperLine, st.t); + t *= step(ptOnLowerLine, st.t); + + // Find the distance from the closest separator (region between two colors) + float dist; + if (st.s < base) + { + float d1 = abs(st.t - (0.5 - halfWidth)); + float d2 = abs(st.t - (0.5 + halfWidth)); + dist = min(d1, d2); + } + else + { + float d1 = czm_infinity; + if (st.t < 0.5 - halfWidth && st.t > 0.5 + halfWidth) + { + d1 = abs(st.s - base); + } + float d2 = abs(st.t - ptOnUpperLine); + float d3 = abs(st.t - ptOnLowerLine); + dist = min(min(d1, d2), d3); + } + + vec4 outsideColor = vec4(0.0); + vec4 currentColor = mix(outsideColor, color, clamp(s + t, 0.0, 1.0)); + vec4 outColor = czm_antialias(outsideColor, color, currentColor, dist); + + outColor = czm_gammaCorrect(outColor); + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + return material; +} +`;var fL=`uniform vec4 color; +uniform vec4 gapColor; +uniform float dashLength; +uniform float dashPattern; +in float v_polylineAngle; + +const float maskLength = 16.0; + +mat2 rotate(float rad) { + float c = cos(rad); + float s = sin(rad); + return mat2( + c, s, + -s, c + ); +} + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 pos = rotate(v_polylineAngle) * gl_FragCoord.xy; + + // Get the relative position within the dash from 0 to 1 + float dashPosition = fract(pos.x / (dashLength * czm_pixelRatio)); + // Figure out the mask index. + float maskIndex = floor(dashPosition * maskLength); + // Test the bit mask. + float maskTest = floor(dashPattern / pow(2.0, maskIndex)); + vec4 fragColor = (mod(maskTest, 2.0) < 1.0) ? gapColor : color; + if (fragColor.a < 0.005) { // matches 0/255 and 1/255 + discard; + } + + fragColor = czm_gammaCorrect(fragColor); + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + return material; +} +`;var dL=`uniform vec4 color; +uniform float glowPower; +uniform float taperPower; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float glow = glowPower / abs(st.t - 0.5) - (glowPower / 0.5); + + if (taperPower <= 0.99999) { + glow *= min(1.0, taperPower / (0.5 - st.s * 0.5) - (taperPower / 0.5)); + } + + vec4 fragColor; + fragColor.rgb = max(vec3(glow - 1.0 + color.rgb), color.rgb); + fragColor.a = clamp(0.0, 1.0, glow) * color.a; + fragColor = czm_gammaCorrect(fragColor); + + material.emission = fragColor.rgb; + material.alpha = fragColor.a; + + return material; +} +`;var hL=`uniform vec4 color; +uniform vec4 outlineColor; +uniform float outlineWidth; + +in float v_width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec2 st = materialInput.st; + float halfInteriorWidth = 0.5 * (v_width - outlineWidth) / v_width; + float b = step(0.5 - halfInteriorWidth, st.t); + b *= 1.0 - step(0.5 + halfInteriorWidth, st.t); + + // Find the distance from the closest separator (region between two colors) + float d1 = abs(st.t - (0.5 - halfInteriorWidth)); + float d2 = abs(st.t - (0.5 + halfInteriorWidth)); + float dist = min(d1, d2); + + vec4 currentColor = mix(outlineColor, color, b); + vec4 outColor = czm_antialias(outlineColor, color, currentColor, dist); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var mL=`uniform vec4 color; +uniform vec4 rimColor; +uniform float width; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // See http://www.fundza.com/rman_shaders/surface/fake_rim/fake_rim1.html + float d = 1.0 - dot(materialInput.normalEC, normalize(materialInput.positionToEyeEC)); + float s = smoothstep(1.0 - width, 1.0, d); + + vec4 outColor = czm_gammaCorrect(color); + vec4 outRimColor = czm_gammaCorrect(rimColor); + + material.diffuse = outColor.rgb; + material.emission = outRimColor.rgb * s; + material.alpha = mix(outColor.a, outRimColor.a, s); + + return material; +} +`;var pL=`uniform sampler2D image; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + vec4 rampColor = texture(image, vec2(materialInput.slope / (czm_pi / 2.0), 0.5)); + rampColor = czm_gammaCorrect(rampColor); + material.diffuse = rampColor.rgb; + material.alpha = rampColor.a; + return material; +} +`;var _L=`uniform vec4 evenColor; +uniform vec4 oddColor; +uniform float offset; +uniform float repeat; +uniform bool horizontal; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + // Based on the Stripes Fragment Shader in the Orange Book (11.1.2) + float coord = mix(materialInput.st.s, materialInput.st.t, float(horizontal)); + float value = fract((coord - offset) * (repeat * 0.5)); + float dist = min(value, min(abs(value - 0.5), 1.0 - value)); + + vec4 currentColor = mix(evenColor, oddColor, step(0.5, value)); + vec4 color = czm_antialias(evenColor, oddColor, currentColor, dist); + color = czm_gammaCorrect(color); + + material.diffuse = color.rgb; + material.alpha = color.a; + + return material; +} +`;var gL=`uniform vec4 waterColor; +uniform vec4 landColor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + vec4 outColor = mix(landColor, waterColor, materialInput.waterMask); + outColor = czm_gammaCorrect(outColor); + + material.diffuse = outColor.rgb; + material.alpha = outColor.a; + + return material; +} +`;var yL=`// Thanks for the contribution Jonas +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +uniform sampler2D specularMap; +uniform sampler2D normalMap; +uniform vec4 baseWaterColor; +uniform vec4 blendColor; +uniform float frequency; +uniform float animationSpeed; +uniform float amplitude; +uniform float specularIntensity; +uniform float fadeFactor; + +czm_material czm_getMaterial(czm_materialInput materialInput) +{ + czm_material material = czm_getDefaultMaterial(materialInput); + + float time = czm_frameNumber * animationSpeed; + + // fade is a function of the distance from the fragment and the frequency of the waves + float fade = max(1.0, (length(materialInput.positionToEyeEC) / 10000000000.0) * frequency * fadeFactor); + + float specularMapValue = texture(specularMap, materialInput.st).r; + + // note: not using directional motion at this time, just set the angle to 0.0; + vec4 noise = czm_getWaterNoise(normalMap, materialInput.st * frequency, time, 0.0); + vec3 normalTangentSpace = noise.xyz * vec3(1.0, 1.0, (1.0 / amplitude)); + + // fade out the normal perturbation as we move further from the water surface + normalTangentSpace.xy /= fade; + + // attempt to fade out the normal perturbation as we approach non water areas (low specular map value) + normalTangentSpace = mix(vec3(0.0, 0.0, 50.0), normalTangentSpace, specularMapValue); + + normalTangentSpace = normalize(normalTangentSpace); + + // get ratios for alignment of the new normal vector with a vector perpendicular to the tangent plane + float tsPerturbationRatio = clamp(dot(normalTangentSpace, vec3(0.0, 0.0, 1.0)), 0.0, 1.0); + + // fade out water effect as specular map value decreases + material.alpha = mix(blendColor.a, baseWaterColor.a, specularMapValue) * specularMapValue; + + // base color is a blend of the water and non-water color based on the value from the specular map + // may need a uniform blend factor to better control this + material.diffuse = mix(blendColor.rgb, baseWaterColor.rgb, specularMapValue); + + // diffuse highlights are based on how perturbed the normal is + material.diffuse += (0.1 * tsPerturbationRatio); + + material.diffuse = material.diffuse; + + material.normal = normalize(materialInput.tangentToEyeMatrix * normalTangentSpace); + + material.specular = specularIntensity; + material.shininess = 10.0; + + return material; +} +`;function je(e){this.type=void 0,this.shaderSource=void 0,this.materials=void 0,this.uniforms=void 0,this._uniforms=void 0,this.translucent=void 0,this._minificationFilter=y(e.minificationFilter,$t.LINEAR),this._magnificationFilter=y(e.magnificationFilter,di.LINEAR),this._strict=void 0,this._template=void 0,this._count=void 0,this._texturePaths={},this._loadedImages=[],this._loadedCubeMaps=[],this._textures={},this._updateFunctions=[],this._defaultTexture=void 0,H1e(e,this),Object.defineProperties(this,{type:{value:this.type,writable:!1}}),l(je._uniformList[this.type])||(je._uniformList[this.type]=Object.keys(this._uniforms))}je._uniformList={};je.fromType=function(e,t){let n=new je({fabric:{type:e}});if(l(t))for(let i in t)t.hasOwnProperty(i)&&(n.uniforms[i]=t[i]);return n};je.prototype.isTranslucent=function(){if(l(this.translucent))return typeof this.translucent=="function"?this.translucent():this.translucent;let e=!0,t=this._translucentFunctions,n=t.length;for(let i=0;i<n;++i){let o=t[i];if(typeof o=="function"?e=e&&o():e=e&&o,!e)break}return e};je.prototype.update=function(e){this._defaultTexture=e.defaultTexture;let t,n,i=this._loadedImages,o=i.length;for(t=0;t<o;++t){let c=i[t];n=c.id;let u=c.image,f;Array.isArray(u)&&(f=u.slice(1,u.length).map(function(x){return x.bufferView}),u=u[0]);let d=new Qt({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter}),p;l(u.internalFormat)?p=new Ot({context:e,pixelFormat:u.internalFormat,width:u.width,height:u.height,source:{arrayBufferView:u.bufferView,mipLevels:f},sampler:d}):p=new Ot({context:e,source:u,sampler:d});let g=this._textures[n];l(g)&&g!==this._defaultTexture&&g.destroy(),this._textures[n]=p;let m=`${n}Dimensions`;if(this.uniforms.hasOwnProperty(m)){let x=this.uniforms[m];x.x=p._width,x.y=p._height}}i.length=0;let r=this._loadedCubeMaps;for(o=r.length,t=0;t<o;++t){let c=r[t];n=c.id;let u=c.images,f=new Dr({context:e,source:{positiveX:u[0],negativeX:u[1],positiveY:u[2],negativeY:u[3],positiveZ:u[4],negativeZ:u[5]},sampler:new Qt({minificationFilter:this._minificationFilter,magnificationFilter:this._magnificationFilter})});this._textures[n]=f}r.length=0;let s=this._updateFunctions;for(o=s.length,t=0;t<o;++t)s[t](this,e);let a=this.materials;for(let c in a)a.hasOwnProperty(c)&&a[c].update(e)};je.prototype.isDestroyed=function(){return!1};je.prototype.destroy=function(){let e=this._textures;for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];i!==this._defaultTexture&&i.destroy()}let t=this.materials;for(let n in t)t.hasOwnProperty(n)&&t[n].destroy();return ue(this)};function H1e(e,t){e=y(e,y.EMPTY_OBJECT),t._strict=y(e.strict,!1),t._count=y(e.count,0),t._template=Ge(y(e.fabric,y.EMPTY_OBJECT)),t._template.uniforms=Ge(y(t._template.uniforms,y.EMPTY_OBJECT)),t._template.materials=Ge(y(t._template.materials,y.EMPTY_OBJECT)),t.type=l(t._template.type)?t._template.type:zn(),t.shaderSource="",t.materials={},t.uniforms={},t._uniforms={},t._translucentFunctions=[];let n,i=je._materialCache.getMaterial(t.type);if(l(i)){let r=Ge(i.fabric,!0);t._template=xt(t._template,r,!0),n=i.translucent}q1e(t),l(i)||je._materialCache.addMaterial(t.type,t),X1e(t),Q1e(t),eRe(t);let o=t._translucentFunctions.length===0?!0:void 0;if(n=y(n,o),n=y(e.translucent,n),l(n))if(typeof n=="function"){let r=function(){return n(t)};t._translucentFunctions.push(r)}else t._translucentFunctions.push(n)}function I6(e,t,n,i){if(l(e)){for(let o in e)if(e.hasOwnProperty(o)){let r=t.indexOf(o)!==-1;(i&&!r||!i&&r)&&n(o,t)}}}function zee(e,t){}function G1e(e,t){}var W1e=["type","materials","uniforms","components","source"],j1e=["diffuse","specular","shininess","normal","emission","alpha"];function q1e(e){let t=e._template,n=t.uniforms,i=t.materials,o=t.components;I6(t,W1e,zee,!0),I6(o,j1e,zee,!0);let r=[];for(let s in i)i.hasOwnProperty(s)&&r.push(s);I6(n,r,G1e,!1)}function Y1e(e,t){let n=t._template.materials;for(let i in n)if(n.hasOwnProperty(i)&&e.indexOf(i)>-1)return!0;return!1}function X1e(e){let t=e._template.components,n=e._template.source;if(l(n))e.shaderSource+=`${n} +`;else{if(e.shaderSource+=`czm_material czm_getMaterial(czm_materialInput materialInput) +{ +`,e.shaderSource+=`czm_material material = czm_getDefaultMaterial(materialInput); +`,l(t)){let i=Object.keys(e._template.materials).length>0;for(let o in t)if(t.hasOwnProperty(o))if(o==="diffuse"||o==="emission"){let s=i&&Y1e(t[o],e)?t[o]:`czm_gammaCorrect(${t[o]})`;e.shaderSource+=`material.${o} = ${s}; +`}else o==="alpha"?e.shaderSource+=`material.alpha = ${t.alpha}; +`:e.shaderSource+=`material.${o} = ${t[o]}; +`}e.shaderSource+=`return material; +} +`}}var Hee={mat2:Bi,mat3:$,mat4:F},K1e=/\.ktx2$/i;function Z1e(e){let t;return function(n,i){let o=n.uniforms,r=o[e],s=t!==r,a=!l(r)||r===je.DefaultImageId;t=r;let c=n._textures[e],u,f;if(r instanceof HTMLVideoElement){if(r.readyState>=2){if(s&&l(c)&&(c!==i.defaultTexture&&c.destroy(),c=void 0),!l(c)||c===i.defaultTexture){let p=new Qt({minificationFilter:n._minificationFilter,magnificationFilter:n._magnificationFilter});c=new Ot({context:i,source:r,sampler:p}),n._textures[e]=c;return}c.copyFrom({source:r})}else l(c)||(n._textures[e]=i.defaultTexture);return}if(r instanceof Ot&&r!==c){n._texturePaths[e]=void 0;let p=n._textures[e];l(p)&&p!==n._defaultTexture&&p.destroy(),n._textures[e]=r,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=r._width,f.y=r._height);return}if(s&&l(c)&&a&&(c!==n._defaultTexture&&c.destroy(),c=void 0),l(c)||(n._texturePaths[e]=void 0,c=n._textures[e]=n._defaultTexture,u=`${e}Dimensions`,o.hasOwnProperty(u)&&(f=o[u],f.x=c._width,f.y=c._height)),a)return;let d=r instanceof De;if(!l(n._texturePaths[e])||d&&r.url!==n._texturePaths[e].url||!d&&r!==n._texturePaths[e]){if(typeof r=="string"||d){let p=d?r:De.createIfNeeded(r),g;K1e.test(p.url)?g=Gl(p.url):g=p.fetchImage(),Promise.resolve(g).then(function(m){n._loadedImages.push({id:e,image:m})}).catch(function(){l(c)&&c!==n._defaultTexture&&c.destroy(),n._textures[e]=n._defaultTexture})}else(r instanceof HTMLCanvasElement||r instanceof HTMLImageElement)&&n._loadedImages.push({id:e,image:r});n._texturePaths[e]=r}}}function $1e(e){return function(t,n){let i=t.uniforms[e];if(i instanceof Dr){let r=t._textures[e];r!==t._defaultTexture&&r.destroy(),t._texturePaths[e]=void 0,t._textures[e]=i;return}if(l(t._textures[e])||(t._texturePaths[e]=void 0,t._textures[e]=n.defaultCubeMap),i===je.DefaultCubeMapId)return;let o=i.positiveX+i.negativeX+i.positiveY+i.negativeY+i.positiveZ+i.negativeZ;if(o!==t._texturePaths[e]){let r=[De.createIfNeeded(i.positiveX).fetchImage(),De.createIfNeeded(i.negativeX).fetchImage(),De.createIfNeeded(i.positiveY).fetchImage(),De.createIfNeeded(i.negativeY).fetchImage(),De.createIfNeeded(i.positiveZ).fetchImage(),De.createIfNeeded(i.negativeZ).fetchImage()];Promise.all(r).then(function(s){t._loadedCubeMaps.push({id:e,images:s})}),t._texturePaths[e]=o}}}function Q1e(e){let t=e._template.uniforms;for(let n in t)t.hasOwnProperty(n)&&Gee(e,n)}function Gee(e,t){let n=e._strict,i=e._template.uniforms,o=i[t],r=J1e(o),s;if(r==="channels")s=ov(e,t,o,!1);else{if(r==="sampler2D"){let u=`${t}Dimensions`;tRe(e,u)>0&&(i[u]={type:"ivec3",x:1,y:1},Gee(e,u))}if(!new RegExp(`uniform\\s+${r}\\s+${t}\\s*;`).test(e.shaderSource)){let u=`uniform ${r} ${t};`;e.shaderSource=u+e.shaderSource}let c=`${t}_${e._count++}`;if(s=ov(e,t,c),e.uniforms[t]=o,r==="sampler2D")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push(Z1e(t));else if(r==="samplerCube")e._uniforms[c]=function(){return e._textures[t]},e._updateFunctions.push($1e(t));else if(r.indexOf("mat")!==-1){let u=new Hee[r];e._uniforms[c]=function(){return Hee[r].fromColumnMajorArray(e.uniforms[t],u)}}else e._uniforms[c]=function(){return e.uniforms[t]}}}function J1e(e){let t=e.type;if(!l(t)){let n=typeof e;if(n==="number")t="float";else if(n==="boolean")t="bool";else if(n==="string"||e instanceof De||e instanceof HTMLCanvasElement||e instanceof HTMLImageElement)/^([rgba]){1,4}$/i.test(e)?t="channels":e===je.DefaultCubeMapId?t="samplerCube":t="sampler2D";else if(n==="object")if(Array.isArray(e))(e.length===4||e.length===9||e.length===16)&&(t=`mat${Math.sqrt(e.length)}`);else{let i=0;for(let o in e)e.hasOwnProperty(o)&&(i+=1);i>=2&&i<=4?t=`vec${i}`:i===6&&(t="samplerCube")}}return t}function eRe(e){let t=e._strict,n=e._template.materials;for(let i in n)if(n.hasOwnProperty(i)){let o=new je({strict:t,fabric:n[i],count:e._count});e._count=o._count,e._uniforms=xt(e._uniforms,o._uniforms,!0),e.materials[i]=o,e._translucentFunctions=e._translucentFunctions.concat(o._translucentFunctions);let r="czm_getMaterial",s=`${r}_${e._count++}`;ov(o,r,s),e.shaderSource=o.shaderSource+e.shaderSource;let a=`${s}(materialInput)`,c=ov(e,i,a)}}function ov(e,t,n,i){i=y(i,!0);let o=0,r="([\\w])?",s=`([\\w${i?".":""}])?`,a=new RegExp(s+t+r,"g");return e.shaderSource=e.shaderSource.replace(a,function(c,u,f){return u||f?c:(o+=1,n)}),o}function tRe(e,t,n){return ov(e,t,t,n)}je._materialCache={_materials:{},addMaterial:function(e,t){this._materials[e]=t},getMaterial:function(e){return this._materials[e]}};je.DefaultImageId="czm_defaultImage";je.DefaultCubeMapId="czm_defaultCubeMap";je.ColorType="Color";je._materialCache.addMaterial(je.ColorType,{fabric:{type:je.ColorType,uniforms:{color:new z(1,0,0,.5)},components:{diffuse:"color.rgb",alpha:"color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.ImageType="Image";je._materialCache.addMaterial(je.ImageType,{fabric:{type:je.ImageType,uniforms:{image:je.DefaultImageId,repeat:new U(1,1),color:new z(1,1,1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).rgb * color.rgb",alpha:"texture(image, fract(repeat * materialInput.st)).a * color.a"}},translucent:function(e){return e.uniforms.color.alpha<1}});je.DiffuseMapType="DiffuseMap";je._materialCache.addMaterial(je.DiffuseMapType,{fabric:{type:je.DiffuseMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new U(1,1)},components:{diffuse:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.AlphaMapType="AlphaMap";je._materialCache.addMaterial(je.AlphaMapType,{fabric:{type:je.AlphaMapType,uniforms:{image:je.DefaultImageId,channel:"a",repeat:new U(1,1)},components:{alpha:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!0});je.SpecularMapType="SpecularMap";je._materialCache.addMaterial(je.SpecularMapType,{fabric:{type:je.SpecularMapType,uniforms:{image:je.DefaultImageId,channel:"r",repeat:new U(1,1)},components:{specular:"texture(image, fract(repeat * materialInput.st)).channel"}},translucent:!1});je.EmissionMapType="EmissionMap";je._materialCache.addMaterial(je.EmissionMapType,{fabric:{type:je.EmissionMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",repeat:new U(1,1)},components:{emission:"texture(image, fract(repeat * materialInput.st)).channels"}},translucent:!1});je.BumpMapType="BumpMap";je._materialCache.addMaterial(je.BumpMapType,{fabric:{type:je.BumpMapType,uniforms:{image:je.DefaultImageId,channel:"r",strength:.8,repeat:new U(1,1)},source:tL},translucent:!1});je.NormalMapType="NormalMap";je._materialCache.addMaterial(je.NormalMapType,{fabric:{type:je.NormalMapType,uniforms:{image:je.DefaultImageId,channels:"rgb",strength:.8,repeat:new U(1,1)},source:lL},translucent:!1});je.GridType="Grid";je._materialCache.addMaterial(je.GridType,{fabric:{type:je.GridType,uniforms:{color:new z(0,1,0,1),cellAlpha:.1,lineCount:new U(8,8),lineThickness:new U(1,1),lineOffset:new U(0,0)},source:cL},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.cellAlpha<1}});je.StripeType="Stripe";je._materialCache.addMaterial(je.StripeType,{fabric:{type:je.StripeType,uniforms:{horizontal:!0,evenColor:new z(1,1,1,.5),oddColor:new z(0,0,1,.5),offset:0,repeat:5},source:_L},translucent:function(e){let t=e.uniforms;return t.evenColor.alpha<1||t.oddColor.alpha<1}});je.CheckerboardType="Checkerboard";je._materialCache.addMaterial(je.CheckerboardType,{fabric:{type:je.CheckerboardType,uniforms:{lightColor:new z(1,1,1,.5),darkColor:new z(0,0,0,.5),repeat:new U(5,5)},source:nL},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.DotType="Dot";je._materialCache.addMaterial(je.DotType,{fabric:{type:je.DotType,uniforms:{lightColor:new z(1,1,0,.75),darkColor:new z(0,1,1,.75),repeat:new U(5,5)},source:iL},translucent:function(e){let t=e.uniforms;return t.lightColor.alpha<1||t.darkColor.alpha<1}});je.WaterType="Water";je._materialCache.addMaterial(je.WaterType,{fabric:{type:je.WaterType,uniforms:{baseWaterColor:new z(.2,.3,.6,1),blendColor:new z(0,1,.699,1),specularMap:je.DefaultImageId,normalMap:je.DefaultImageId,frequency:10,animationSpeed:.01,amplitude:1,specularIntensity:.5,fadeFactor:1},source:yL},translucent:function(e){let t=e.uniforms;return t.baseWaterColor.alpha<1||t.blendColor.alpha<1}});je.RimLightingType="RimLighting";je._materialCache.addMaterial(je.RimLightingType,{fabric:{type:je.RimLightingType,uniforms:{color:new z(1,0,0,.7),rimColor:new z(1,1,1,.4),width:.3},source:mL},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.rimColor.alpha<1}});je.FadeType="Fade";je._materialCache.addMaterial(je.FadeType,{fabric:{type:je.FadeType,uniforms:{fadeInColor:new z(1,0,0,1),fadeOutColor:new z(0,0,0,0),maximumDistance:.5,repeat:!0,fadeDirection:{x:!0,y:!0},time:new U(.5,.5)},source:aL},translucent:function(e){let t=e.uniforms;return t.fadeInColor.alpha<1||t.fadeOutColor.alpha<1}});je.PolylineArrowType="PolylineArrow";je._materialCache.addMaterial(je.PolylineArrowType,{fabric:{type:je.PolylineArrowType,uniforms:{color:new z(1,1,1,1)},source:uL},translucent:!0});je.PolylineDashType="PolylineDash";je._materialCache.addMaterial(je.PolylineDashType,{fabric:{type:je.PolylineDashType,uniforms:{color:new z(1,0,1,1),gapColor:new z(0,0,0,0),dashLength:16,dashPattern:255},source:fL},translucent:!0});je.PolylineGlowType="PolylineGlow";je._materialCache.addMaterial(je.PolylineGlowType,{fabric:{type:je.PolylineGlowType,uniforms:{color:new z(0,.5,1,1),glowPower:.25,taperPower:1},source:dL},translucent:!0});je.PolylineOutlineType="PolylineOutline";je._materialCache.addMaterial(je.PolylineOutlineType,{fabric:{type:je.PolylineOutlineType,uniforms:{color:new z(1,1,1,1),outlineColor:new z(1,0,0,1),outlineWidth:1},source:hL},translucent:function(e){let t=e.uniforms;return t.color.alpha<1||t.outlineColor.alpha<1}});je.ElevationContourType="ElevationContour";je._materialCache.addMaterial(je.ElevationContourType,{fabric:{type:je.ElevationContourType,uniforms:{spacing:100,color:new z(1,0,0,1),width:1},source:rL},translucent:!1});je.ElevationRampType="ElevationRamp";je._materialCache.addMaterial(je.ElevationRampType,{fabric:{type:je.ElevationRampType,uniforms:{image:je.DefaultImageId,minimumHeight:0,maximumHeight:1e4},source:sL},translucent:!1});je.SlopeRampMaterialType="SlopeRamp";je._materialCache.addMaterial(je.SlopeRampMaterialType,{fabric:{type:je.SlopeRampMaterialType,uniforms:{image:je.DefaultImageId},source:pL},translucent:!1});je.AspectRampMaterialType="AspectRamp";je._materialCache.addMaterial(je.AspectRampMaterialType,{fabric:{type:je.AspectRampMaterialType,uniforms:{image:je.DefaultImageId},source:eL},translucent:!1});je.ElevationBandType="ElevationBand";je._materialCache.addMaterial(je.ElevationBandType,{fabric:{type:je.ElevationBandType,uniforms:{heights:je.DefaultImageId,colors:je.DefaultImageId},source:oL},translucent:!0});je.WaterMaskType="WaterMask";je._materialCache.addMaterial(je.WaterMaskType,{fabric:{type:je.WaterMaskType,source:gL,uniforms:{waterColor:new z(1,1,1,1),landColor:new z(0,0,0,0)}},translucent:!1});var ji=je;function L0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.materialSupport,L0.MaterialSupport.TEXTURED);this.material=l(e.material)?e.material:ji.fromType(ji.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,i.vertexShaderSource),this._fragmentShaderSource=y(e.fragmentShaderSource,i.fragmentShaderSource),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._materialSupport=i,this._vertexFormat=i.vertexFormat,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,!n)}Object.defineProperties(L0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},materialSupport:{get:function(){return this._materialSupport}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});L0.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;L0.prototype.isTranslucent=Ji.prototype.isTranslucent;L0.prototype.getRenderState=Ji.prototype.getRenderState;L0.MaterialSupport={BASIC:Object.freeze({vertexFormat:Pe.POSITION_AND_NORMAL,vertexShaderSource:$M,fragmentShaderSource:ZM}),TEXTURED:Object.freeze({vertexFormat:Pe.POSITION_NORMAL_AND_ST,vertexShaderSource:JM,fragmentShaderSource:QM}),ALL:Object.freeze({vertexFormat:Pe.ALL,vertexShaderSource:KM,fragmentShaderSource:XM})};var oo=L0;var xL=`in vec3 v_positionEC; +in vec3 v_normalEC; +in vec4 v_color; + +void main() +{ + vec3 positionToEyeEC = -v_positionEC; + + vec3 normalEC = normalize(v_normalEC); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + vec4 color = czm_gammaCorrect(v_color); + + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +} +`;var bL=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 normal; +in vec4 color; +in float batchId; + +out vec3 v_positionEC; +out vec3 v_normalEC; +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_normalEC = czm_normal * normal; // normal in eye coordinates + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;var RT=`in vec4 v_color; + +void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +} +`;var TL=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + vec4 p = czm_computePosition(); + + v_color = color; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function np(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.closed,!1),i=y(e.flat,!1),o=i?TL:bL,r=i?RT:xL,s=i?np.FLAT_VERTEX_FORMAT:np.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,o),this._fragmentShaderSource=y(e.fragmentShaderSource,r),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=s,this._flat=i,this._faceForward=y(e.faceForward,!n)}Object.defineProperties(np.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}}});np.VERTEX_FORMAT=Pe.POSITION_AND_NORMAL;np.FLAT_VERTEX_FORMAT=Pe.POSITION_ONLY;np.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;np.prototype.isTranslucent=Ji.prototype.isTranslucent;np.prototype.getRenderState=Ji.prototype.getRenderState;var cn=np;function OT(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(OT.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});OT.prototype.getType=function(e){return"Color"};var nRe=new K;OT.prototype.getValue=function(e,t){return l(e)||(e=K.now(nRe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};OT.prototype.equals=function(e){return this===e||e instanceof OT&&Y.equals(this._color,e._color)};var Gt=OT;function G_(e){e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._rectangle=y(e.rectangle,re.MAX_VALUE),this._projection=new wi(this._ellipsoid),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,2),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1)}Object.defineProperties(G_.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});G_.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};G_.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};G_.prototype.rectangleToNativeRectangle=function(e,t){let n=P.toDegrees(e.west),i=P.toDegrees(e.south),o=P.toDegrees(e.east),r=P.toDegrees(e.north);return l(t)?(t.west=n,t.south=i,t.east=o,t.north=r,t):new re(n,i,o,r)};G_.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.tileXYToRectangle(e,t,n,i);return o.west=P.toDegrees(o.west),o.south=P.toDegrees(o.south),o.east=P.toDegrees(o.east),o.north=P.toDegrees(o.north),o};G_.prototype.tileXYToRectangle=function(e,t,n,i){let o=this._rectangle,r=this.getNumberOfXTilesAtLevel(n),s=this.getNumberOfYTilesAtLevel(n),a=o.width/r,c=e*a+o.west,u=(e+1)*a+o.west,f=o.height/s,d=o.north-t*f,p=o.north-(t+1)*f;return l(i)||(i=new re(c,p,u,d)),i.west=c,i.south=p,i.east=u,i.north=d,i};G_.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),s=i.width/o,a=i.height/r,c=e.longitude;i.east<i.west&&(c+=P.TWO_PI);let u=(c-i.west)/s|0;u>=o&&(u=o-1);let f=(i.north-e.latitude)/a|0;return f>=r&&(f=r-1),l(n)?(n.x=u,n.y=f,n):new U(u,f)};var qi=G_;var Wee=new h,jee=new h,qee=new fe,P6=new h,iRe=new h,Yee=new se,oRe=new qi,rv=[new fe,new fe,new fe,new fe],sv=new U,Hr={};Hr.initialize=function(){let e=Hr._initPromise;return l(e)||(e=De.fetchJson(nn("Assets/approximateTerrainHeights.json")).then(function(t){Hr._terrainHeights=t}),Hr._initPromise=e),e};Hr.getMinimumMaximumHeights=function(e,t){t=y(t,ee.default);let n=Xee(e),i=Hr._defaultMinTerrainHeight,o=Hr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Hr._terrainHeights[r];l(s)&&(i=s[0],o=s[1]),t.cartographicToCartesian(re.northeast(e,qee),Wee),t.cartographicToCartesian(re.southwest(e,qee),jee),h.midpoint(jee,Wee,P6);let a=t.scaleToGeodeticSurface(P6,iRe);if(l(a)){let c=h.distance(P6,a);i=Math.min(i,-c)}else i=Hr._defaultMinTerrainHeight}return i=Math.max(Hr._defaultMinTerrainHeight,i),{minimumTerrainHeight:i,maximumTerrainHeight:o}};Hr.getBoundingSphere=function(e,t){t=y(t,ee.default);let n=Xee(e),i=Hr._defaultMaxTerrainHeight;if(l(n)){let r=`${n.level}-${n.x}-${n.y}`,s=Hr._terrainHeights[r];l(s)&&(i=s[1])}let o=se.fromRectangle3D(e,t,0);return se.fromRectangle3D(e,t,i,Yee),se.union(o,Yee,o)};function Xee(e){fe.fromRadians(e.east,e.north,0,rv[0]),fe.fromRadians(e.west,e.north,0,rv[1]),fe.fromRadians(e.east,e.south,0,rv[2]),fe.fromRadians(e.west,e.south,0,rv[3]);let t=0,n=0,i=0,o=0,r=Hr._terrainHeightsMaxLevel,s;for(s=0;s<=r;++s){let a=!1;for(let c=0;c<4;++c){let u=rv[c];if(oRe.positionToTileXY(u,s,sv),c===0)i=sv.x,o=sv.y;else if(i!==sv.x||o!==sv.y){a=!0;break}}if(a)break;t=i,n=o}if(s!==0)return{x:t,y:n,level:s>r?r:s-1}}Hr._terrainHeightsMaxLevel=6;Hr._defaultMaxTerrainHeight=9e3;Hr._defaultMinTerrainHeight=-1e5;Hr._terrainHeights=void 0;Hr._initPromise=void 0;Object.defineProperties(Hr,{initialized:{get:function(){return l(Hr._terrainHeights)}}});var ui=Hr;function Cc(e,t,n){this.minimum=h.clone(y(e,h.ZERO)),this.maximum=h.clone(y(t,h.ZERO)),l(n)?n=h.clone(n):n=h.midpoint(this.minimum,this.maximum,new h),this.center=n}Cc.fromCorners=function(e,t,n){return l(n)||(n=new Cc),n.minimum=h.clone(e,n.minimum),n.maximum=h.clone(t,n.maximum),n.center=h.midpoint(e,t,n.center),n};Cc.fromPoints=function(e,t){if(l(t)||(t=new Cc),!l(e)||e.length===0)return t.minimum=h.clone(h.ZERO,t.minimum),t.maximum=h.clone(h.ZERO,t.maximum),t.center=h.clone(h.ZERO,t.center),t;let n=e[0].x,i=e[0].y,o=e[0].z,r=e[0].x,s=e[0].y,a=e[0].z,c=e.length;for(let d=1;d<c;d++){let p=e[d],g=p.x,m=p.y,x=p.z;n=Math.min(g,n),r=Math.max(g,r),i=Math.min(m,i),s=Math.max(m,s),o=Math.min(x,o),a=Math.max(x,a)}let u=t.minimum;u.x=n,u.y=i,u.z=o;let f=t.maximum;return f.x=r,f.y=s,f.z=a,t.center=h.midpoint(u,f,t.center),t};Cc.clone=function(e,t){if(l(e))return l(t)?(t.minimum=h.clone(e.minimum,t.minimum),t.maximum=h.clone(e.maximum,t.maximum),t.center=h.clone(e.center,t.center),t):new Cc(e.minimum,e.maximum,e.center)};Cc.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&h.equals(e.minimum,t.minimum)&&h.equals(e.maximum,t.maximum)};var AL=new h;Cc.intersectPlane=function(e,t){AL=h.subtract(e.maximum,e.minimum,AL);let n=h.multiplyByScalar(AL,.5,AL),i=t.normal,o=n.x*Math.abs(i.x)+n.y*Math.abs(i.y)+n.z*Math.abs(i.z),r=h.dot(e.center,i)+t.distance;return r-o>0?Yt.INSIDE:r+o<0?Yt.OUTSIDE:Yt.INTERSECTING};Cc.prototype.clone=function(e){return Cc.clone(this,e)};Cc.prototype.intersectPlane=function(e){return Cc.intersectPlane(this,e)};Cc.prototype.equals=function(e){return Cc.equals(this,e)};var N0=Cc;var R6=new oe;function Ch(e,t){t=y(t,ee.default),e=t.scaleToGeodeticSurface(e);let n=Nt.eastNorthUpToFixedFrame(e,t);this._ellipsoid=t,this._origin=e,this._xAxis=h.fromCartesian4(F.getColumn(n,0,R6)),this._yAxis=h.fromCartesian4(F.getColumn(n,1,R6));let i=h.fromCartesian4(F.getColumn(n,2,R6));this._plane=an.fromPointNormal(e,i)}Object.defineProperties(Ch.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},origin:{get:function(){return this._origin}},plane:{get:function(){return this._plane}},xAxis:{get:function(){return this._xAxis}},yAxis:{get:function(){return this._yAxis}},zAxis:{get:function(){return this._plane.normal}}});var rRe=new N0;Ch.fromPoints=function(e,t){let n=N0.fromPoints(e,rRe);return new Ch(n.center,t)};var Kee=new mn,CL=new h;Ch.prototype.projectPointOntoPlane=function(e,t){let n=Kee;n.origin=e,h.normalize(e,n.direction);let i=$n.rayPlane(n,this._plane,CL);if(l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,CL)),l(i)){let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return l(t)?(t.x=r,t.y=s,t):new U(r,s)}};Ch.prototype.projectPointsOntoPlane=function(e,t){l(t)||(t=[]);let n=0,i=e.length;for(let o=0;o<i;o++){let r=this.projectPointOntoPlane(e[o],t[n]);l(r)&&(t[n]=r,n++)}return t.length=n,t};Ch.prototype.projectPointToNearestOnPlane=function(e,t){l(t)||(t=new U);let n=Kee;n.origin=e,h.clone(this._plane.normal,n.direction);let i=$n.rayPlane(n,this._plane,CL);l(i)||(h.negate(n.direction,n.direction),i=$n.rayPlane(n,this._plane,CL));let o=h.subtract(i,this._origin,i),r=h.dot(this._xAxis,o),s=h.dot(this._yAxis,o);return t.x=r,t.y=s,t};Ch.prototype.projectPointsToNearestOnPlane=function(e,t){l(t)||(t=[]);let n=e.length;t.length=n;for(let i=0;i<n;i++)t[i]=this.projectPointToNearestOnPlane(e[i],t[i]);return t};var sRe=new h;Ch.prototype.projectPointOntoEllipsoid=function(e,t){l(t)||(t=new h);let n=this._ellipsoid,i=this._origin,o=this._xAxis,r=this._yAxis,s=sRe;return h.multiplyByScalar(o,e.x,s),t=h.add(i,s,t),h.multiplyByScalar(r,e.y,s),h.add(t,s,t),n.scaleToGeocentricSurface(t,t),t};Ch.prototype.projectPointsOntoEllipsoid=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;++i)t[i]=this.projectPointOntoEllipsoid(e[i],t[i]);return t};var ts=Ch;function Di(e,t){this.center=h.clone(y(e,h.ZERO)),this.halfAxes=$.clone(y(t,$.ZERO))}Di.packedLength=h.packedLength+$.packedLength;Di.pack=function(e,t,n){return n=y(n,0),h.pack(e.center,t,n),$.pack(e.halfAxes,t,n+h.packedLength),t};Di.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Di),h.unpack(e,t,n.center),$.unpack(e,t+h.packedLength,n.halfAxes),n};var aRe=new h,cRe=new h,lRe=new h,uRe=new h,fRe=new h,dRe=new h,hRe=new $,mRe={unitary:new $,diagonal:new $};Di.fromPoints=function(e,t){if(l(t)||(t=new Di),!l(e)||e.length===0)return t.halfAxes=$.ZERO,t.center=h.ZERO,t;let n,i=e.length,o=h.clone(e[0],aRe);for(n=1;n<i;n++)h.add(o,e[n],o);let r=1/i;h.multiplyByScalar(o,r,o);let s=0,a=0,c=0,u=0,f=0,d=0,p;for(n=0;n<i;n++)p=h.subtract(e[n],o,cRe),s+=p.x*p.x,a+=p.x*p.y,c+=p.x*p.z,u+=p.y*p.y,f+=p.y*p.z,d+=p.z*p.z;s*=r,a*=r,c*=r,u*=r,f*=r,d*=r;let g=hRe;g[0]=s,g[1]=a,g[2]=c,g[3]=a,g[4]=u,g[5]=f,g[6]=c,g[7]=f,g[8]=d;let m=$.computeEigenDecomposition(g,mRe),x=$.clone(m.unitary,t.halfAxes),b=$.getColumn(x,0,uRe),T=$.getColumn(x,1,fRe),A=$.getColumn(x,2,dRe),C=-Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE,D=Number.MAX_VALUE,O=Number.MAX_VALUE,R=Number.MAX_VALUE;for(n=0;n<i;n++)p=e[n],C=Math.max(h.dot(b,p),C),S=Math.max(h.dot(T,p),S),v=Math.max(h.dot(A,p),v),D=Math.min(h.dot(b,p),D),O=Math.min(h.dot(T,p),O),R=Math.min(h.dot(A,p),R);b=h.multiplyByScalar(b,.5*(D+C),b),T=h.multiplyByScalar(T,.5*(O+S),T),A=h.multiplyByScalar(A,.5*(R+v),A);let M=h.add(b,T,t.center);h.add(M,A,M);let L=lRe;return L.x=C-D,L.y=S-O,L.z=v-R,h.multiplyByScalar(L,.5,L),$.multiplyByScale(t.halfAxes,L,t.halfAxes),t};var tte=new h,pRe=new h;function Zee(e,t,n,i,o,r,s,a,c,u,f){l(f)||(f=new Di);let d=f.halfAxes;$.setColumn(d,0,t,d),$.setColumn(d,1,n,d),$.setColumn(d,2,i,d);let p=tte;p.x=(o+r)/2,p.y=(s+a)/2,p.z=(c+u)/2;let g=pRe;g.x=(r-o)/2,g.y=(a-s)/2,g.z=(u-c)/2;let m=f.center;return p=$.multiplyByVector(d,p,p),h.add(e,p,m),$.multiplyByScale(d,g,d),f}var $ee=new fe,_Re=new h,gRe=new fe,yRe=new fe,xRe=new fe,bRe=new fe,TRe=new fe,ARe=new h,Qee=new h,CRe=new h,Jee=new h,ERe=new h,SRe=new U,vRe=new U,wRe=new U,DRe=new U,IRe=new U,PRe=new h,RRe=new h,ORe=new h,MRe=new h,LRe=new U,NRe=new h,FRe=new h,BRe=new h,kRe=new an(h.UNIT_X,0);Di.fromRectangle=function(e,t,n,i,o){t=y(t,0),n=y(n,0),i=y(i,ee.default);let r,s,a,c,u,f,d;if(e.width<=P.PI){let O=re.center(e,$ee),R=i.cartographicToCartesian(O,_Re),M=new ts(R,i);d=M.plane;let L=O.longitude,_=e.south<0&&e.north>0?0:O.latitude,E=fe.fromRadians(L,e.north,n,gRe),w=fe.fromRadians(e.west,e.north,n,yRe),I=fe.fromRadians(e.west,_,n,xRe),N=fe.fromRadians(e.west,e.south,n,bRe),B=fe.fromRadians(L,e.south,n,TRe),H=i.cartographicToCartesian(E,ARe),V=i.cartographicToCartesian(w,Qee),G=i.cartographicToCartesian(I,CRe),k=i.cartographicToCartesian(N,Jee),W=i.cartographicToCartesian(B,ERe),q=M.projectPointToNearestOnPlane(H,SRe),J=M.projectPointToNearestOnPlane(V,vRe),j=M.projectPointToNearestOnPlane(G,wRe),Z=M.projectPointToNearestOnPlane(k,DRe),Q=M.projectPointToNearestOnPlane(W,IRe);return r=Math.min(J.x,j.x,Z.x),s=-r,c=Math.max(J.y,q.y),a=Math.min(Z.y,Q.y),w.height=N.height=t,V=i.cartographicToCartesian(w,Qee),k=i.cartographicToCartesian(N,Jee),u=Math.min(an.getPointDistance(d,V),an.getPointDistance(d,k)),f=n,Zee(M.origin,M.xAxis,M.yAxis,M.zAxis,r,s,a,c,u,f,o)}let p=e.south>0,g=e.north<0,m=p?e.south:g?e.north:0,x=re.center(e,$ee).longitude,b=h.fromRadians(x,m,n,i,PRe);b.z=0;let A=Math.abs(b.x)<P.EPSILON10&&Math.abs(b.y)<P.EPSILON10?h.UNIT_X:h.normalize(b,RRe),C=h.UNIT_Z,S=h.cross(A,C,ORe);d=an.fromPointNormal(b,A,kRe);let v=h.fromRadians(x+P.PI_OVER_TWO,m,n,i,MRe);s=h.dot(an.projectPointOntoPlane(d,v,LRe),S),r=-s,c=h.fromRadians(0,e.north,g?t:n,i,NRe).z,a=h.fromRadians(0,e.south,p?t:n,i,FRe).z;let D=h.fromRadians(e.east,m,n,i,BRe);return u=an.getPointDistance(d,D),f=0,Zee(b,S,C,A,r,s,a,c,u,f,o)};Di.fromTransformation=function(e,t){return l(t)||(t=new Di),t.center=F.getTranslation(e,t.center),t.halfAxes=F.getMatrix3(e,t.halfAxes),t.halfAxes=$.multiplyByScalar(t.halfAxes,.5,t.halfAxes),t};Di.clone=function(e,t){if(l(e))return l(t)?(h.clone(e.center,t.center),$.clone(e.halfAxes,t.halfAxes),t):new Di(e.center,e.halfAxes)};Di.intersectPlane=function(e,t){let n=e.center,i=t.normal,o=e.halfAxes,r=i.x,s=i.y,a=i.z,c=Math.abs(r*o[$.COLUMN0ROW0]+s*o[$.COLUMN0ROW1]+a*o[$.COLUMN0ROW2])+Math.abs(r*o[$.COLUMN1ROW0]+s*o[$.COLUMN1ROW1]+a*o[$.COLUMN1ROW2])+Math.abs(r*o[$.COLUMN2ROW0]+s*o[$.COLUMN2ROW1]+a*o[$.COLUMN2ROW2]),u=h.dot(i,n)+t.distance;return u<=-c?Yt.OUTSIDE:u>=c?Yt.INSIDE:Yt.INTERSECTING};var nte=new h,ite=new h,ote=new h,VRe=new h,ete=new h,URe=new h;Di.distanceSquaredTo=function(e,t){let n=h.subtract(t,e.center,tte),i=e.halfAxes,o=$.getColumn(i,0,nte),r=$.getColumn(i,1,ite),s=$.getColumn(i,2,ote),a=h.magnitude(o),c=h.magnitude(r),u=h.magnitude(s),f=!0,d=!0,p=!0;a>0?h.divideByScalar(o,a,o):f=!1,c>0?h.divideByScalar(r,c,r):d=!1,u>0?h.divideByScalar(s,u,s):p=!1;let g=!f+!d+!p,m,x,b;if(g===1){let S=o;m=r,x=s,d?p||(S=s,x=o):(S=r,m=o),b=h.cross(m,x,ete),S===o?o=b:S===r?r=b:S===s&&(s=b)}else if(g===2){m=o,d?m=r:p&&(m=s);let S=h.UNIT_Y;S.equalsEpsilon(m,P.EPSILON3)&&(S=h.UNIT_X),x=h.cross(m,S,VRe),h.normalize(x,x),b=h.cross(m,x,ete),h.normalize(b,b),m===o?(r=x,s=b):m===r?(s=x,o=b):m===s&&(o=x,r=b)}else g===3&&(o=h.UNIT_X,r=h.UNIT_Y,s=h.UNIT_Z);let T=URe;T.x=h.dot(n,o),T.y=h.dot(n,r),T.z=h.dot(n,s);let A=0,C;return T.x<-a?(C=T.x+a,A+=C*C):T.x>a&&(C=T.x-a,A+=C*C),T.y<-c?(C=T.y+c,A+=C*C):T.y>c&&(C=T.y-c,A+=C*C),T.z<-u?(C=T.z+u,A+=C*C):T.z>u&&(C=T.z-u,A+=C*C),A};var zRe=new h,HRe=new h;Di.computePlaneDistances=function(e,t,n,i){l(i)||(i=new Ha);let o=Number.POSITIVE_INFINITY,r=Number.NEGATIVE_INFINITY,s=e.center,a=e.halfAxes,c=$.getColumn(a,0,nte),u=$.getColumn(a,1,ite),f=$.getColumn(a,2,ote),d=h.add(c,u,zRe);h.add(d,f,d),h.add(d,s,d);let p=h.subtract(d,t,HRe),g=h.dot(n,p);return o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.add(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.add(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.add(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),h.subtract(s,c,d),h.subtract(d,u,d),h.subtract(d,f,d),h.subtract(d,t,p),g=h.dot(n,p),o=Math.min(g,o),r=Math.max(g,r),i.start=o,i.stop=r,i};var GRe=new h,WRe=new h,jRe=new h;Di.computeCorners=function(e,t){l(t)||(t=[new h,new h,new h,new h,new h,new h,new h,new h]);let n=e.center,i=e.halfAxes,o=$.getColumn(i,0,GRe),r=$.getColumn(i,1,WRe),s=$.getColumn(i,2,jRe);return h.clone(n,t[0]),h.subtract(t[0],o,t[0]),h.subtract(t[0],r,t[0]),h.subtract(t[0],s,t[0]),h.clone(n,t[1]),h.subtract(t[1],o,t[1]),h.subtract(t[1],r,t[1]),h.add(t[1],s,t[1]),h.clone(n,t[2]),h.subtract(t[2],o,t[2]),h.add(t[2],r,t[2]),h.subtract(t[2],s,t[2]),h.clone(n,t[3]),h.subtract(t[3],o,t[3]),h.add(t[3],r,t[3]),h.add(t[3],s,t[3]),h.clone(n,t[4]),h.add(t[4],o,t[4]),h.subtract(t[4],r,t[4]),h.subtract(t[4],s,t[4]),h.clone(n,t[5]),h.add(t[5],o,t[5]),h.subtract(t[5],r,t[5]),h.add(t[5],s,t[5]),h.clone(n,t[6]),h.add(t[6],o,t[6]),h.add(t[6],r,t[6]),h.subtract(t[6],s,t[6]),h.clone(n,t[7]),h.add(t[7],o,t[7]),h.add(t[7],r,t[7]),h.add(t[7],s,t[7]),t};var qRe=new $;Di.computeTransformation=function(e,t){l(t)||(t=new F);let n=e.center,i=$.multiplyByUniformScale(e.halfAxes,2,qRe);return F.fromRotationTranslation(i,n,t)};var YRe=new se;Di.isOccluded=function(e,t){let n=se.fromOrientedBoundingBox(e,YRe);return!t.isBoundingSphereVisible(n)};Di.prototype.intersectPlane=function(e){return Di.intersectPlane(this,e)};Di.prototype.distanceSquaredTo=function(e){return Di.distanceSquaredTo(this,e)};Di.prototype.computePlaneDistances=function(e,t,n){return Di.computePlaneDistances(this,e,t,n)};Di.prototype.computeCorners=function(e){return Di.computeCorners(this,e)};Di.prototype.computeTransformation=function(e){return Di.computeTransformation(this,e)};Di.prototype.isOccluded=function(e){return Di.isOccluded(this,e)};Di.equals=function(e,t){return e===t||l(e)&&l(t)&&h.equals(e.center,t.center)&&$.equals(e.halfAxes,t.halfAxes)};Di.prototype.clone=function(e){return Di.clone(this,e)};Di.prototype.equals=function(e){return Di.equals(this,e)};var wn=Di;var EL={};EL.getHeight=function(e,t,n){return(e-n)*t+n};var XRe=new fe;EL.getPosition=function(e,t,n,i,o){let r=t.cartesianToCartographic(e,XRe);if(!l(r))return h.clone(e,o);let s=EL.getHeight(r.height,n,i);return h.fromRadians(r.longitude,r.latitude,s,t,o)};var Ir=EL;var SL=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; + +#ifdef EXTRUDED_GEOMETRY +in vec3 extrudeDirection; + +uniform float u_globeMinimumAltitude; +#endif // EXTRUDED_GEOMETRY + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif // PER_INSTANCE_COLOR + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +out vec4 v_sphericalExtents; +#else // SPHERICAL +out vec2 v_inversePlaneExtents; +out vec4 v_westPlane; +out vec4 v_southPlane; +#endif // SPHERICAL +out vec3 v_uvMinAndSphericalLongitudeRotation; +out vec3 v_uMaxAndInverseDistance; +out vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +void main() +{ + vec4 position = czm_computePosition(); + +#ifdef EXTRUDED_GEOMETRY + float delta = min(u_globeMinimumAltitude, czm_geometricToleranceOverMeter * length(position.xyz)); + delta *= czm_sceneMode == czm_sceneMode3D ? 1.0 : 0.0; + + //extrudeDirection is zero for the top layer + position = position + vec4(extrudeDirection * delta, 0.0); +#endif + +#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL + v_sphericalExtents = czm_batchTable_sphericalExtents(batchId); + v_uvMinAndSphericalLongitudeRotation.z = czm_batchTable_longitudeRotation(batchId); +#else // SPHERICAL +#ifdef COLUMBUS_VIEW_2D + vec4 planes2D_high = czm_batchTable_planes2D_HIGH(batchId); + vec4 planes2D_low = czm_batchTable_planes2D_LOW(batchId); + + // If the primitive is split across the IDL (planes2D_high.x > planes2D_high.w): + // - If this vertex is on the east side of the IDL (position3DLow.y > 0.0, comparison with position3DHigh may produce artifacts) + // - existing "east" is on the wrong side of the world, far away (planes2D_high/low.w) + // - so set "east" as beyond the eastmost extent of the projection (idlSplitNewPlaneHiLow) + vec2 idlSplitNewPlaneHiLow = vec2(EAST_MOST_X_HIGH - (WEST_MOST_X_HIGH - planes2D_high.w), EAST_MOST_X_LOW - (WEST_MOST_X_LOW - planes2D_low.w)); + bool idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y > 0.0; + planes2D_high.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.w); + planes2D_low.w = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.w); + + // - else, if this vertex is on the west side of the IDL (position3DLow.y < 0.0) + // - existing "west" is on the wrong side of the world, far away (planes2D_high/low.x) + // - so set "west" as beyond the westmost extent of the projection (idlSplitNewPlaneHiLow) + idlSplit = planes2D_high.x > planes2D_high.w && position3DLow.y < 0.0; + idlSplitNewPlaneHiLow = vec2(WEST_MOST_X_HIGH - (EAST_MOST_X_HIGH - planes2D_high.x), WEST_MOST_X_LOW - (EAST_MOST_X_LOW - planes2D_low.x)); + planes2D_high.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.x, planes2D_high.x); + planes2D_low.x = czm_branchFreeTernary(idlSplit, idlSplitNewPlaneHiLow.y, planes2D_low.x); + + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.xy), vec3(0.0, planes2D_low.xy))).xyz; + vec3 northWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.x, planes2D_high.z), vec3(0.0, planes2D_low.x, planes2D_low.z))).xyz; + vec3 southEastCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, planes2D_high.w, planes2D_high.y), vec3(0.0, planes2D_low.w, planes2D_low.y))).xyz; +#else // COLUMBUS_VIEW_2D + // 3D case has smaller "plane extents," so planes encoded as a 64 bit position and 2 vec3s for distances/direction + vec3 southWestCorner = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(czm_batchTable_southWest_HIGH(batchId), czm_batchTable_southWest_LOW(batchId))).xyz; + vec3 northWestCorner = czm_normal * czm_batchTable_northward(batchId) + southWestCorner; + vec3 southEastCorner = czm_normal * czm_batchTable_eastward(batchId) + southWestCorner; +#endif // COLUMBUS_VIEW_2D + + vec3 eastWard = southEastCorner - southWestCorner; + float eastExtent = length(eastWard); + eastWard /= eastExtent; + + vec3 northWard = northWestCorner - southWestCorner; + float northExtent = length(northWard); + northWard /= northExtent; + + v_westPlane = vec4(eastWard, -dot(eastWard, southWestCorner)); + v_southPlane = vec4(northWard, -dot(northWard, southWestCorner)); + v_inversePlaneExtents = vec2(1.0 / eastExtent, 1.0 / northExtent); +#endif // SPHERICAL + vec4 uvMinAndExtents = czm_batchTable_uvMinAndExtents(batchId); + vec4 uMaxVmax = czm_batchTable_uMaxVmax(batchId); + + v_uMaxAndInverseDistance = vec3(uMaxVmax.xy, uvMinAndExtents.z); + v_vMaxAndInverseDistance = vec3(uMaxVmax.zw, uvMinAndExtents.w); + v_uvMinAndSphericalLongitudeRotation.xy = uvMinAndExtents.xy; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif + + gl_Position = czm_depthClamp(czm_modelViewProjectionRelativeToEye * position); +} +`;var F0=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +void main(void) +{ +#ifdef VECTOR_TILE + out_FragColor = czm_gammaCorrect(u_highlightColor); +#else + out_FragColor = vec4(1.0); +#endif + czm_writeDepthClamp(); +} +`;var rte={TERRAIN:0,CESIUM_3D_TILE:1,BOTH:2};rte.NUMBER_OF_CLASSIFICATION_TYPES=3;var kn=Object.freeze(rte);var KRe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Ec=Object.freeze(KRe);function ZRe(e,t){let n=[],i=e.length,o=0;for(;o<i;){let r=Math.ceil((i-o)/t--);n.push(e.slice(o,o+r)),o+=r}return n}var vL=ZRe;function ip(e,t,n){if(this._attributes=t,this._numberOfInstances=n,t.length===0)return;let i=$Re(t),o=e.floatingPointTexture,r=i===Ze.FLOAT&&!o,s=QRe(t,r),a=JRe(s,t,r),c=Math.floor(zt.maximumTextureSize/a),u=Math.min(n,c),f=a*u,d=Math.ceil(n/u),p=1/f,g=p*.5,m=1/d,x=m*.5;this._textureDimensions=new U(f,d),this._textureStep=new oe(p,g,m,x),this._pixelDatatype=r?Ze.UNSIGNED_BYTE:i,this._packFloats=r,this._offsets=s,this._stride=a,this._texture=void 0;let b=4*f*d;this._batchValues=i===Ze.FLOAT&&!r?new Float32Array(b):new Uint8Array(b),this._batchValuesDirty=!1}Object.defineProperties(ip.prototype,{attributes:{get:function(){return this._attributes}},numberOfInstances:{get:function(){return this._numberOfInstances}}});function $Re(e){let t=!1,n=e.length;for(let i=0;i<n;++i)if(e[i].componentDatatype!==X.UNSIGNED_BYTE){t=!0;break}return t?Ze.FLOAT:Ze.UNSIGNED_BYTE}function ate(e,t){let n=e[t].componentsPerAttribute;return n===2?U:n===3?h:n===4?oe:Number}function QRe(e,t){let n=new Array(e.length),i=0,o=e.length;for(let r=0;r<o;++r){let a=e[r].componentDatatype;n[r]=i,a!==X.UNSIGNED_BYTE&&t?i+=4:++i}return n}function JRe(e,t,n){let i=e.length,o=e[i-1];return t[i-1].componentDatatype!==X.UNSIGNED_BYTE&&n?o+4:o+1}var av=new oe;function eOe(e,t,n){let i=oe.unpack(e,t,av),o=oe.unpackFloat(i);i=oe.unpack(e,t+4,av);let r=oe.unpackFloat(i);i=oe.unpack(e,t+8,av);let s=oe.unpackFloat(i);i=oe.unpack(e,t+12,av);let a=oe.unpackFloat(i);return oe.fromElements(o,r,s,a,n)}function tOe(e,t,n){let i=oe.packFloat(e.x,av);oe.pack(i,t,n),i=oe.packFloat(e.y,i),oe.pack(i,t,n+4),i=oe.packFloat(e.z,i),oe.pack(i,t,n+8),i=oe.packFloat(e.w,i),oe.pack(i,t,n+12)}var ste=new oe;ip.prototype.getBatchedAttribute=function(e,t,n){let i=this._attributes,o=this._offsets[t],s=4*this._stride*e+4*o,a;this._packFloats&&i[t].componentDatatype!==Ze.UNSIGNED_BYTE?a=eOe(this._batchValues,s,ste):a=oe.unpack(this._batchValues,s,ste);let c=ate(i,t);return l(c.fromCartesian4)?c.fromCartesian4(a,n):l(c.clone)?c.clone(a,n):a.x};var nOe=[void 0,void 0,new U,new h,new oe],iOe=new oe;ip.prototype.setBatchedAttribute=function(e,t,n){let i=this._attributes,o=nOe[i[t].componentsPerAttribute],r=this.getBatchedAttribute(e,t,o),s=ate(this._attributes,t);if(l(s.equals)?s.equals(r,n):r===n)return;let c=iOe;c.x=l(n.x)?n.x:n,c.y=l(n.y)?n.y:0,c.z=l(n.z)?n.z:0,c.w=l(n.w)?n.w:0;let u=this._offsets[t],d=4*this._stride*e+4*u;this._packFloats&&i[t].componentDatatype!==Ze.UNSIGNED_BYTE?tOe(c,this._batchValues,d):oe.pack(c,this._batchValues,d),this._batchValuesDirty=!0};function oOe(e,t){let n=e._textureDimensions;e._texture=new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:e._pixelDatatype,width:n.x,height:n.y,sampler:Qt.NEAREST,flipY:!1})}function rOe(e){let t=e._textureDimensions;e._texture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}ip.prototype.update=function(e){l(this._texture)&&!this._batchValuesDirty||this._attributes.length===0||(this._batchValuesDirty=!1,l(this._texture)||oOe(this,e.context),rOe(this))};ip.prototype.getUniformMapCallback=function(){let e=this;return function(t){return e._attributes.length===0?t:xt(t,{batchTexture:function(){return e._texture},batchTextureDimensions:function(){return e._textureDimensions},batchTextureStep:function(){return e._textureStep}})}};function sOe(e){let t=e._stride;return e._textureDimensions.y===1?`uniform vec4 batchTextureStep; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float numberOfAttributes = float(${t}); + return vec2(centerX + (batchId * numberOfAttributes * stepX), 0.5); +} +`:`uniform vec4 batchTextureStep; +uniform vec2 batchTextureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = batchTextureStep.x; + float centerX = batchTextureStep.y; + float stepY = batchTextureStep.z; + float centerY = batchTextureStep.w; + float numberOfAttributes = float(${t}); + float xId = mod(batchId * numberOfAttributes, batchTextureDimensions.x); + float yId = floor(batchId * numberOfAttributes / batchTextureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}function aOe(e){return e===1?"float":`vec${e}`}function cOe(e){return e===1?".x":e===2?".xy":e===3?".xyz":""}function lOe(e,t){let i=e._attributes[t],o=i.componentsPerAttribute,r=i.functionName,s=aOe(o),a=cOe(o),c=e._offsets[t],u=`${s} ${r}(float batchId) +{ + vec2 st = computeSt(batchId); + st.x += batchTextureStep.x * float(${c}); +`;return e._packFloats&&i.componentDatatype!==Ze.UNSIGNED_BYTE?u+=`vec4 textureValue; +textureValue.x = czm_unpackFloat(texture(batchTexture, st)); +textureValue.y = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x, 0.0))); +textureValue.z = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 2.0, 0.0))); +textureValue.w = czm_unpackFloat(texture(batchTexture, st + vec2(batchTextureStep.x * 3.0, 0.0))); +`:u+=` vec4 textureValue = texture(batchTexture, st); +`,u+=` ${s} value = textureValue${a}; +`,e._pixelDatatype===Ze.UNSIGNED_BYTE&&i.componentDatatype===X.UNSIGNED_BYTE&&!i.normalize?u+=`value *= 255.0; +`:e._pixelDatatype===Ze.FLOAT&&i.componentDatatype===X.UNSIGNED_BYTE&&i.normalize&&(u+=`value /= 255.0; +`),u+=` return value; +} +`,u}ip.prototype.getVertexShaderCallback=function(){let e=this._attributes;if(e.length===0)return function(i){return i};let t=`uniform highp sampler2D batchTexture; +`;t+=`${sOe(this)} +`;let n=e.length;for(let i=0;i<n;++i)t+=lOe(this,i);return function(i){let o=i.indexOf("void main"),r=i.substring(0,o),s=i.substring(o);return`${r} +${t} +${s}`}};ip.prototype.isDestroyed=function(){return!1};ip.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var MT=ip;function ul(e){this._ellipsoid=y(e,ee.WGS84),this._semimajorAxis=this._ellipsoid.maximumRadius,this._oneOverSemimajorAxis=1/this._semimajorAxis}Object.defineProperties(ul.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});ul.mercatorAngleToGeodeticLatitude=function(e){return P.PI_OVER_TWO-2*Math.atan(Math.exp(-e))};ul.geodeticLatitudeToMercatorAngle=function(e){e>ul.MaximumLatitude?e=ul.MaximumLatitude:e<-ul.MaximumLatitude&&(e=-ul.MaximumLatitude);let t=Math.sin(e);return .5*Math.log((1+t)/(1-t))};ul.MaximumLatitude=ul.mercatorAngleToGeodeticLatitude(Math.PI);ul.prototype.project=function(e,t){let n=this._semimajorAxis,i=e.longitude*n,o=ul.geodeticLatitudeToMercatorAngle(e.latitude)*n,r=e.height;return l(t)?(t.x=i,t.y=o,t.z=r,t):new h(i,o,r)};ul.prototype.unproject=function(e,t){let n=this._oneOverSemimajorAxis,i=e.x*n,o=ul.mercatorAngleToGeodeticLatitude(e.y*n),r=e.z;return l(t)?(t.longitude=i,t.latitude=o,t.height=r,t):new fe(i,o,r)};var Ii=ul;function uOe(e,t,n){let i=!n,o=e.length,r;if(!i&&o>1){let s=e[0].modelMatrix;for(r=1;r<o;++r)if(!F.equals(s,e[r].modelMatrix)){i=!0;break}}if(i)for(r=0;r<o;++r)l(e[r].geometry)&&Nn.transformToWorldCoordinates(e[r]);else F.multiplyTransformation(t,e[0].modelMatrix,t)}function O6(e,t){let n=e.attributes,i=n.position,o=i.values.length/i.componentsPerAttribute;n.batchId=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:1,values:new Float32Array(o)});let r=n.batchId.values;for(let s=0;s<o;++s)r[s]=t}function fOe(e){let t=e.length;for(let n=0;n<t;++n){let i=e[n];l(i.geometry)?O6(i.geometry,n):l(i.westHemisphereGeometry)&&l(i.eastHemisphereGeometry)&&(O6(i.westHemisphereGeometry,n),O6(i.eastHemisphereGeometry,n))}}function dOe(e){let t=e.instances,n=e.projection,i=e.elementIndexUintSupported,o=e.scene3DOnly,r=e.vertexCacheOptimize,s=e.compressVertices,a=e.modelMatrix,c,u,f,d=t.length;for(c=0;c<d;++c)if(l(t[c].geometry)){f=t[c].geometry.primitiveType;break}if(uOe(t,a,o),!o)for(c=0;c<d;++c)l(t[c].geometry)&&Nn.splitLongitude(t[c]);if(fOe(t),r)for(c=0;c<d;++c){let g=t[c];l(g.geometry)?(Nn.reorderForPostVertexCache(g.geometry),Nn.reorderForPreVertexCache(g.geometry)):l(g.westHemisphereGeometry)&&l(g.eastHemisphereGeometry)&&(Nn.reorderForPostVertexCache(g.westHemisphereGeometry),Nn.reorderForPreVertexCache(g.westHemisphereGeometry),Nn.reorderForPostVertexCache(g.eastHemisphereGeometry),Nn.reorderForPreVertexCache(g.eastHemisphereGeometry))}let p=Nn.combineInstances(t);for(d=p.length,c=0;c<d;++c){u=p[c];let g=u.attributes;if(o)for(let m in g)g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE&&Nn.encodeAttribute(u,m,`${m}3DHigh`,`${m}3DLow`);else for(let m in g)if(g.hasOwnProperty(m)&&g[m].componentDatatype===X.DOUBLE){let x=`${m}3D`,b=`${m}2D`;Nn.projectTo2D(u,m,x,b,n),l(u.boundingSphere)&&m==="position"&&(u.boundingSphereCV=se.fromVertices(u.attributes.position2D.values)),Nn.encodeAttribute(u,x,`${x}High`,`${x}Low`),Nn.encodeAttribute(u,b,`${b}High`,`${b}Low`)}s&&Nn.compressVertices(u)}if(!i){let g=[];for(d=p.length,c=0;c<d;++c)u=p[c],g=g.concat(Nn.fitToUnsignedShortIndices(u));p=g}return p}function M6(e,t,n,i){let o,r,s,a=i.length-1;if(a>=0){let u=i[a];o=u.offset+u.count,s=u.index,r=n[s].indices.length}else o=0,s=0,r=n[s].indices.length;let c=e.length;for(let u=0;u<c;++u){let d=e[u][t];if(!l(d))continue;let p=d.indices.length;o+p>r&&(o=0,r=n[++s].indices.length),i.push({index:s,offset:o,count:p}),o+=p}}function hOe(e,t){let n=[];return M6(e,"geometry",t,n),M6(e,"westHemisphereGeometry",t,n),M6(e,"eastHemisphereGeometry",t,n),n}var op={};op.combineGeometry=function(e){let t,n,i=e.instances,o=i.length,r,s,a=!1;o>0&&(t=dOe(e),t.length>0&&(n=Nn.createAttributeLocations(t[0]),e.createPickOffsets&&(r=hOe(i,t))),l(i[0].attributes)&&l(i[0].attributes.offset)&&(s=new Array(o),a=!0));let c=new Array(o),u=new Array(o);for(let f=0;f<o;++f){let d=i[f],p=d.geometry;l(p)&&(c[f]=p.boundingSphere,u[f]=p.boundingSphereCV,a&&(s[f]=d.geometry.offsetAttribute));let g=d.eastHemisphereGeometry,m=d.westHemisphereGeometry;l(g)&&l(m)&&(l(g.boundingSphere)&&l(m.boundingSphere)&&(c[f]=se.union(g.boundingSphere,m.boundingSphere)),l(g.boundingSphereCV)&&l(m.boundingSphereCV)&&(u[f]=se.union(g.boundingSphereCV,m.boundingSphereCV)))}return{geometries:t,modelMatrix:e.modelMatrix,attributeLocations:n,pickOffsets:r,offsetInstanceExtend:s,boundingSpheres:c,boundingSpheresCV:u}};function mOe(e,t){let n=e.attributes;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];l(o)&&l(o.values)&&t.push(o.values.buffer)}l(e.indices)&&t.push(e.indices.buffer)}function pOe(e,t){let n=e.length;for(let i=0;i<n;++i)mOe(e[i],t)}function _Oe(e){let t=1,n=e.length;for(let i=0;i<n;i++){let o=e[i];if(++t,!l(o))continue;let r=o.attributes;t+=7+2*se.packedLength+(l(o.indices)?o.indices.length:0);for(let s in r)if(r.hasOwnProperty(s)&&l(r[s])){let a=r[s];t+=5+a.values.length}}return t}op.packCreateGeometryResults=function(e,t){let n=new Float64Array(_Oe(e)),i=[],o={},r=e.length,s=0;n[s++]=r;for(let a=0;a<r;a++){let c=e[a],u=l(c);if(n[s++]=u?1:0,!u)continue;n[s++]=c.primitiveType,n[s++]=c.geometryType,n[s++]=y(c.offsetAttribute,-1);let f=l(c.boundingSphere)?1:0;n[s++]=f,f&&se.pack(c.boundingSphere,n,s),s+=se.packedLength;let d=l(c.boundingSphereCV)?1:0;n[s++]=d,d&&se.pack(c.boundingSphereCV,n,s),s+=se.packedLength;let p=c.attributes,g=[];for(let x in p)p.hasOwnProperty(x)&&l(p[x])&&(g.push(x),l(o[x])||(o[x]=i.length,i.push(x)));n[s++]=g.length;for(let x=0;x<g.length;x++){let b=g[x],T=p[b];n[s++]=o[b],n[s++]=T.componentDatatype,n[s++]=T.componentsPerAttribute,n[s++]=T.normalize?1:0,n[s++]=T.values.length,n.set(T.values,s),s+=T.values.length}let m=l(c.indices)?c.indices.length:0;n[s++]=m,m>0&&(n.set(c.indices,s),s+=m)}return t.push(n.buffer),{stringTable:i,packedData:n}};op.unpackCreateGeometryResults=function(e){let t=e.stringTable,n=e.packedData,i,o=new Array(n[0]),r=0,s=1;for(;s<n.length;){if(!(n[s++]===1)){o[r++]=void 0;continue}let c=n[s++],u=n[s++],f=n[s++];f===-1&&(f=void 0);let d,p;n[s++]===1&&(d=se.unpack(n,s)),s+=se.packedLength,n[s++]===1&&(p=se.unpack(n,s)),s+=se.packedLength;let x,b,T,A=new dn,C=n[s++];for(i=0;i<C;i++){let v=t[n[s++]],D=n[s++];T=n[s++];let O=n[s++]!==0;x=n[s++],b=X.createTypedArray(D,x);for(let R=0;R<x;R++)b[R]=n[s++];A[v]=new Se({componentDatatype:D,componentsPerAttribute:T,normalize:O,values:b})}let S;if(x=n[s++],x>0){let v=b.length/T;for(S=Ne.createTypedArray(v,x),i=0;i<x;i++)S[i]=n[s++]}o[r++]=new ft({primitiveType:c,geometryType:u,boundingSphere:d,boundingSphereCV:p,indices:S,attributes:A,offsetAttribute:f})}return o};function gOe(e,t){let n=e.length,i=new Float64Array(1+n*19),o=0;i[o++]=n;for(let r=0;r<n;r++){let s=e[r];if(F.pack(s.modelMatrix,i,o),o+=F.packedLength,l(s.attributes)&&l(s.attributes.offset)){let a=s.attributes.offset.value;i[o]=a[0],i[o+1]=a[1],i[o+2]=a[2]}o+=3}return t.push(i.buffer),i}function yOe(e){let t=e,n=new Array(t[0]),i=0,o=1;for(;o<t.length;){let r=F.unpack(t,o),s;o+=F.packedLength,l(t[o])&&(s={offset:new Zi(t[o],t[o+1],t[o+2])}),o+=3,n[i++]={modelMatrix:r,attributes:s}}return n}op.packCombineGeometryParameters=function(e,t){let n=e.createGeometryResults,i=n.length;for(let o=0;o<i;o++)t.push(n[o].packedData.buffer);return{createGeometryResults:e.createGeometryResults,packedInstances:gOe(e.instances,t),ellipsoid:e.ellipsoid,isGeographic:e.projection instanceof wi,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e.createPickOffsets}};op.unpackCombineGeometryParameters=function(e){let t=yOe(e.packedInstances),n=e.createGeometryResults,i=n.length,o=0;for(let a=0;a<i;a++){let c=op.unpackCreateGeometryResults(n[a]),u=c.length;for(let f=0;f<u;f++){let d=c[f],p=t[o];p.geometry=d,++o}}let r=ee.clone(e.ellipsoid),s=e.isGeographic?new wi(r):new Ii(r);return{instances:t,ellipsoid:r,projection:s,elementIndexUintSupported:e.elementIndexUintSupported,scene3DOnly:e.scene3DOnly,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:F.clone(e.modelMatrix),createPickOffsets:e.createPickOffsets}};function cte(e){let t=e.length,n=1+(se.packedLength+1)*t,i=new Float32Array(n),o=0;i[o++]=t;for(let r=0;r<t;++r){let s=e[r];l(s)?(i[o++]=1,se.pack(e[r],i,o)):i[o++]=0,o+=se.packedLength}return i}function lte(e){let t=new Array(e[0]),n=0,i=1;for(;i<e.length;)e[i++]===1&&(t[n]=se.unpack(e,i)),++n,i+=se.packedLength;return t}op.packCombineGeometryResults=function(e,t){l(e.geometries)&&pOe(e.geometries,t);let n=cte(e.boundingSpheres),i=cte(e.boundingSpheresCV);return t.push(n.buffer,i.buffer),{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:n,boundingSpheresCV:i}};op.unpackCombineGeometryResults=function(e){return{geometries:e.geometries,attributeLocations:e.attributeLocations,modelMatrix:e.modelMatrix,pickOffsets:e.pickOffsets,offsetInstanceExtend:e.offsetInstanceExtend,boundingSpheres:lte(e.boundingSpheres),boundingSpheresCV:lte(e.boundingSpheresCV)}};var LT=op;var xOe={READY:0,CREATING:1,CREATED:2,COMBINING:3,COMBINED:4,COMPLETE:5,FAILED:6},Pr=Object.freeze(xOe);var Xl={DISABLED:0,ENABLED:1,CAST_ONLY:2,RECEIVE_ONLY:3};Xl.NUMBER_OF_SHADOW_MODES=4;Xl.castShadows=function(e){return e===Xl.ENABLED||e===Xl.CAST_ONLY};Xl.receiveShadows=function(e){return e===Xl.ENABLED||e===Xl.RECEIVE_ONLY};Xl.fromCastReceive=function(e,t){return e&&t?Xl.ENABLED:e?Xl.CAST_ONLY:t?Xl.RECEIVE_ONLY:Xl.DISABLED};var yn=Object.freeze(Xl);function dr(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this.appearance=e.appearance,this._appearance=void 0,this._material=void 0,this.depthFailAppearance=e.depthFailAppearance,this._depthFailAppearance=void 0,this._depthFailMaterial=void 0,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.show=y(e.show,!0),this._vertexCacheOptimize=y(e.vertexCacheOptimize,!1),this._interleave=y(e.interleave,!1),this._releaseGeometryInstances=y(e.releaseGeometryInstances,!0),this._allowPicking=y(e.allowPicking,!0),this._asynchronous=y(e.asynchronous,!0),this._compressVertices=y(e.compressVertices,!0),this.cull=y(e.cull,!0),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.rtcCenter=e.rtcCenter,this.shadows=y(e.shadows,yn.DISABLED),this._translucent=void 0,this._state=Pr.READY,this._geometries=[],this._error=void 0,this._numberOfInstances=0,this._boundingSpheres=[],this._boundingSphereWC=[],this._boundingSphereCV=[],this._boundingSphere2D=[],this._boundingSphereMorph=[],this._perInstanceAttributeCache=new Map,this._instanceIds=[],this._lastPerInstanceAttributeIndex=0,this._va=[],this._attributeLocations=void 0,this._primitiveType=void 0,this._frontFaceRS=void 0,this._backFaceRS=void 0,this._sp=void 0,this._depthFailAppearance=void 0,this._spDepthFail=void 0,this._frontFaceDepthFailRS=void 0,this._backFaceDepthFailRS=void 0,this._pickIds=[],this._colorCommands=[],this._pickCommands=[],this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._createRenderStatesFunction=e._createRenderStatesFunction,this._createShaderProgramFunction=e._createShaderProgramFunction,this._createCommandsFunction=e._createCommandsFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._createPickOffsets=e._createPickOffsets,this._pickOffsets=void 0,this._createGeometryResults=void 0,this._ready=!1,this._batchTable=void 0,this._batchTableAttributeIndices=void 0,this._offsetInstanceExtend=void 0,this._batchTableOffsetAttribute2DIndex=void 0,this._batchTableOffsetsUpdated=!1,this._instanceBoundingSpheres=void 0,this._instanceBoundingSpheresCV=void 0,this._tempBoundingSpheres=void 0,this._recomputeBoundingSpheres=!1,this._batchTableBoundingSpheresUpdated=!1,this._batchTableBoundingSphereAttributeIndices=void 0}Object.defineProperties(dr.prototype,{vertexCacheOptimize:{get:function(){return this._vertexCacheOptimize}},interleave:{get:function(){return this._interleave}},releaseGeometryInstances:{get:function(){return this._releaseGeometryInstances}},allowPicking:{get:function(){return this._allowPicking}},asynchronous:{get:function(){return this._asynchronous}},compressVertices:{get:function(){return this._compressVertices}},ready:{get:function(){return this._ready}}});function bOe(e){let t=e.length,n=[],i=e[0].attributes,o;for(o in i)if(i.hasOwnProperty(o)&&l(i[o])){let r=i[o],s=!0;for(let a=1;a<t;++a){let c=e[a].attributes[o];if(!l(c)||r.componentDatatype!==c.componentDatatype||r.componentsPerAttribute!==c.componentsPerAttribute||r.normalize!==c.normalize){s=!1;break}}s&&n.push(o)}return n}var TOe=new U,AOe=new h,yte=new oe;function xte(e){let t=e.length;if(t===1)return e[0];if(t===2)return U.unpack(e,0,TOe);if(t===3)return h.unpack(e,0,AOe);if(t===4)return oe.unpack(e,0,yte)}function COe(e,t){let n=e.geometryInstances,i=Array.isArray(n)?n:[n],o=i.length;if(o===0)return;let r=bOe(i),s=r.length,a=[],c={},u={},f,p=i[0].attributes,g,m,x;for(g=0;g<s;++g)m=r[g],x=p[m],c[m]=g,a.push({functionName:`czm_batchTable_${m}`,componentDatatype:x.componentDatatype,componentsPerAttribute:x.componentsPerAttribute,normalize:x.normalize});r.indexOf("distanceDisplayCondition")!==-1&&(a.push({functionName:"czm_batchTable_boundingSphereCenter3DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter3DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereCenter2DLow",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"czm_batchTable_boundingSphereRadius",componentDatatype:X.FLOAT,componentsPerAttribute:1}),u.center3DHigh=a.length-5,u.center3DLow=a.length-4,u.center2DHigh=a.length-3,u.center2DLow=a.length-2,u.radius=a.length-1),r.indexOf("offset")!==-1&&(a.push({functionName:"czm_batchTable_offset2D",componentDatatype:X.FLOAT,componentsPerAttribute:3}),f=a.length-1),a.push({functionName:"czm_batchTable_pickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0});let b=a.length,T=new MT(t,a,o);for(g=0;g<o;++g){let A=i[g];p=A.attributes;for(let O=0;O<s;++O){m=r[O],x=p[m];let R=xte(x.value),M=c[m];T.setBatchedAttribute(g,M,R)}let C={primitive:y(A.pickPrimitive,e)};l(A.id)&&(C.id=A.id);let S=t.createPickId(C);e._pickIds.push(S);let v=S.color,D=yte;D.x=z.floatToByte(v.red),D.y=z.floatToByte(v.green),D.z=z.floatToByte(v.blue),D.w=z.floatToByte(v.alpha),T.setBatchedAttribute(g,b-1,D)}e._batchTable=T,e._batchTableAttributeIndices=c,e._batchTableBoundingSphereAttributeIndices=u,e._batchTableOffsetAttribute2DIndex=f}function EOe(e){let t;return Array.isArray(e.values)?t=e.values.slice(0):t=new e.values.constructor(e.values),new Se({componentDatatype:e.componentDatatype,componentsPerAttribute:e.componentsPerAttribute,normalize:e.normalize,values:t})}function SOe(e){let t=e.attributes,n=new dn;for(let o in t)t.hasOwnProperty(o)&&l(t[o])&&(n[o]=EOe(t[o]));let i;if(l(e.indices)){let o=e.indices;Array.isArray(o)?i=o.slice(0):i=new o.constructor(o)}return new ft({attributes:n,indices:i,primitiveType:e.primitiveType,boundingSphere:se.clone(e.boundingSphere)})}function vOe(e,t){return{geometry:t,attributes:e.attributes,modelMatrix:F.clone(e.modelMatrix),pickPrimitive:e.pickPrimitive,id:e.id}}var wOe=/in\s+vec(?:3|4)\s+(.*)3DHigh;/g;dr._modifyShaderPosition=function(e,t,n){let i,o="",r="",s="";for(;(i=wOe.exec(t))!==null;){let a=i[1],c=`vec4 czm_compute${a[0].toUpperCase()}${a.substr(1)}()`;c!=="vec4 czm_computePosition()"&&(o+=`${c}; +`),l(e.rtcCenter)?(t=t.replace(/in\s+vec(?:3|4)\s+position3DHigh;/g,""),t=t.replace(/in\s+vec(?:3|4)\s+position3DLow;/g,""),o+=`uniform mat4 u_modifiedModelView; +`,r+=`in vec4 position; +`,s+=`${c} +{ + return u_modifiedModelView * position; +} + +`,t=t.replace(/czm_modelViewRelativeToEye\s+\*\s+/g,""),t=t.replace(/czm_modelViewProjectionRelativeToEye/g,"czm_projection")):n?s+=`${c} +{ + return czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); +} + +`:(r+=`in vec3 ${a}2DHigh; +in vec3 ${a}2DLow; +`,s+=`${c} +{ + vec4 p; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(${a}2DHigh.zxy, ${a}2DLow.zxy), + czm_translateRelativeToEye(${a}3DHigh, ${a}3DLow), + czm_morphTime); + } + return p; +} + +`)}return[o,r,t,s].join(` +`)};dr._appendShowToShader=function(e,t){return l(e._batchTableAttributeIndices.show)?`${Ue.replaceMain(t,"czm_non_show_main")} +void main() +{ + czm_non_show_main(); + gl_Position *= czm_batchTable_show(batchId); +}`:t};dr._updateColorAttribute=function(e,t,n){if(!l(e._batchTableAttributeIndices.color)&&!l(e._batchTableAttributeIndices.depthFailColor)||t.search(/in\s+vec4\s+color;/g)===-1)return t;let i=t;return i=i.replace(/in\s+vec4\s+color;/g,""),n?i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_depthFailColor(batchId)$2"):i=i.replace(/(\b)color(\b)/g,"$1czm_batchTable_color(batchId)$2"),i};function ute(e){return`${Ue.replaceMain(e,"czm_non_pick_main")} +out vec4 v_pickColor; +void main() +{ + czm_non_pick_main(); + v_pickColor = czm_batchTable_pickColor(batchId); +}`}function fte(e){return`in vec4 v_pickColor; +${e}`}dr._updatePickColorAttribute=function(e){let t=e.replace(/in\s+vec4\s+pickColor;/g,"");return t=t.replace(/(\b)pickColor(\b)/g,"$1czm_batchTable_pickColor(batchId)$2"),t};dr._appendOffsetToShader=function(e,t){if(!l(e._batchTableAttributeIndices.offset))return t;let n=`in float batchId; +`;n+="in float applyOffset;";let i=t.replace(/in\s+float\s+batchId;/g,n),o=`vec4 $1 = czm_computePosition(); +`;return o+=` if (czm_sceneMode == czm_sceneMode3D) +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset(batchId) * applyOffset, 0.0);",o+=` } +`,o+=` else +`,o+=` { +`,o+=" $1 = $1 + vec4(czm_batchTable_offset2D(batchId) * applyOffset, 0.0);",o+=` } +`,i=i.replace(/vec4\s+([A-Za-z0-9_]+)\s+=\s+czm_computePosition\(\);/g,o),i};dr._appendDistanceDisplayConditionToShader=function(e,t,n){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition))return t;let i=Ue.replaceMain(t,"czm_non_distanceDisplayCondition_main"),o=`void main() +{ + czm_non_distanceDisplayCondition_main(); + vec2 distanceDisplayCondition = czm_batchTable_distanceDisplayCondition(batchId); + vec3 boundingSphereCenter3DHigh = czm_batchTable_boundingSphereCenter3DHigh(batchId); + vec3 boundingSphereCenter3DLow = czm_batchTable_boundingSphereCenter3DLow(batchId); + float boundingSphereRadius = czm_batchTable_boundingSphereRadius(batchId); +`;return n?o+=` vec4 centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); +`:o+=` vec3 boundingSphereCenter2DHigh = czm_batchTable_boundingSphereCenter2DHigh(batchId); + vec3 boundingSphereCenter2DLow = czm_batchTable_boundingSphereCenter2DLow(batchId); + vec4 centerRTE; + if (czm_morphTime == 1.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow); + } + else if (czm_morphTime == 0.0) + { + centerRTE = czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy); + } + else + { + centerRTE = czm_columbusViewMorph( + czm_translateRelativeToEye(boundingSphereCenter2DHigh.zxy, boundingSphereCenter2DLow.zxy), + czm_translateRelativeToEye(boundingSphereCenter3DHigh, boundingSphereCenter3DLow), + czm_morphTime); + } +`,o+=` float radiusSq = boundingSphereRadius * boundingSphereRadius; + float distanceSq; + if (czm_sceneMode == czm_sceneMode2D) + { + distanceSq = czm_eyeHeight2D.y - radiusSq; + } + else + { + distanceSq = dot(centerRTE.xyz, centerRTE.xyz) - radiusSq; + } + distanceSq = max(distanceSq, 0.0); + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + float show = (distanceSq >= nearSq && distanceSq <= farSq) ? 1.0 : 0.0; + gl_Position *= show; +}`,`${i} +${o}`};function dte(e,t){if(!e.compressVertices)return t;let n=t.search(/in\s+vec3\s+normal;/g)!==-1,i=t.search(/in\s+vec2\s+st;/g)!==-1;if(!n&&!i)return t;let o=t.search(/in\s+vec3\s+tangent;/g)!==-1,r=t.search(/in\s+vec3\s+bitangent;/g)!==-1,s=i&&n?2:1;s+=o||r?1:0;let a=s>1?`vec${s}`:"float",c="compressedAttributes",u=`in ${a} ${c};`,f="",d="";if(i){f+=`vec2 st; +`;let m=s>1?`${c}.x`:c;d+=` st = czm_decompressTextureCoordinates(${m}); +`}n&&o&&r?(f+=`vec3 normal; +vec3 tangent; +vec3 bitangent; +`,d+=` czm_octDecode(${c}.${i?"yz":"xy"}, normal, tangent, bitangent); +`):(n&&(f+=`vec3 normal; +`,d+=` normal = czm_octDecode(${c}${s>1?`.${i?"y":"x"}`:""}); +`),o&&(f+=`vec3 tangent; +`,d+=` tangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`),r&&(f+=`vec3 bitangent; +`,d+=` bitangent = czm_octDecode(${c}.${i&&n?"z":"y"}); +`));let p=t;p=p.replace(/in\s+vec3\s+normal;/g,""),p=p.replace(/in\s+vec2\s+st;/g,""),p=p.replace(/in\s+vec3\s+tangent;/g,""),p=p.replace(/in\s+vec3\s+bitangent;/g,""),p=Ue.replaceMain(p,"czm_non_compressed_main");let g=`void main() +{ +${d} czm_non_compressed_main(); +}`;return[u,f,p,g].join(` +`)}function DOe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + gl_Position = czm_depthClamp(gl_Position);} +`,t}function IOe(e){let t=Ue.replaceMain(e,"czm_non_depth_clamp_main");return t+=`void main() { + czm_non_depth_clamp_main(); + #if defined(LOG_DEPTH) + czm_writeLogDepth(); + #else + czm_writeDepthClamp(); + #endif +} +`,t}function hte(e,t){let n=e.vertexAttributes}function POe(e,t){return function(){return e[t]}}var L6=Math.max(jt.hardwareConcurrency-1,1),wL,ROe=new _i("combineGeometry");function OOe(e,t){let n,i,o,r,s=e._instanceIds;if(e._state===Pr.READY){n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let a=e._numberOfInstances=n.length,c=[],u=[];for(o=0;o<a;++o)i=n[o].geometry,s.push(n[o].id),u.push({moduleName:i._workerName,modulePath:i._workerPath,geometry:i});if(!l(wL))for(wL=new Array(L6),o=0;o<L6;o++)wL[o]=new _i("createGeometry");let f;for(u=vL(u,L6),o=0;o<u.length;o++){let d=0,p=u[o],g=p.length;for(r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(f.offset=d,d+=y(i.constructor.packedLength,i.packedLength));let m;if(d>0){let x=new Float64Array(d);for(m=[x.buffer],r=0;r<g;++r)f=p[r],i=f.geometry,l(i.constructor.pack)&&(i.constructor.pack(i,x,f.offset),f.geometry=x)}c.push(wL[o].scheduleTask({subTasks:u[o]},m))}e._state=Pr.CREATING,Promise.all(c).then(function(d){e._createGeometryResults=d,e._state=Pr.CREATED}).catch(function(d){lv(e,t,Pr.FAILED,d)})}else if(e._state===Pr.CREATED){let a=[];n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances];let c=t.scene3DOnly,u=t.mapProjection,f=ROe.scheduleTask(LT.packCombineGeometryParameters({createGeometryResults:e._createGeometryResults,instances:n,ellipsoid:u.ellipsoid,projection:u,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:c,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets},a),a);e._createGeometryResults=void 0,e._state=Pr.COMBINING,Promise.resolve(f).then(function(d){let p=LT.unpackCombineGeometryResults(d);e._geometries=p.geometries,e._attributeLocations=p.attributeLocations,e.modelMatrix=F.clone(p.modelMatrix,e.modelMatrix),e._pickOffsets=p.pickOffsets,e._offsetInstanceExtend=p.offsetInstanceExtend,e._instanceBoundingSpheres=p.boundingSpheres,e._instanceBoundingSpheresCV=p.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Pr.COMBINED):lv(e,t,Pr.FAILED,void 0)}).catch(function(d){lv(e,t,Pr.FAILED,d)})}}function MOe(e,t){let n=Array.isArray(e.geometryInstances)?e.geometryInstances:[e.geometryInstances],i=e._numberOfInstances=n.length,o=new Array(i),r=e._instanceIds,s,a,c=0;for(a=0;a<i;a++){s=n[a];let p=s.geometry,g;l(p.attributes)&&l(p.primitiveType)?g=SOe(p):g=p.constructor.createGeometry(p),o[c++]=vOe(s,g),r.push(s.id)}o.length=c;let u=t.scene3DOnly,f=t.mapProjection,d=LT.combineGeometry({instances:o,ellipsoid:f.ellipsoid,projection:f,elementIndexUintSupported:t.context.elementIndexUint,scene3DOnly:u,vertexCacheOptimize:e.vertexCacheOptimize,compressVertices:e.compressVertices,modelMatrix:e.modelMatrix,createPickOffsets:e._createPickOffsets});e._geometries=d.geometries,e._attributeLocations=d.attributeLocations,e.modelMatrix=F.clone(d.modelMatrix,e.modelMatrix),e._pickOffsets=d.pickOffsets,e._offsetInstanceExtend=d.offsetInstanceExtend,e._instanceBoundingSpheres=d.boundingSpheres,e._instanceBoundingSpheresCV=d.boundingSpheresCV,l(e._geometries)&&e._geometries.length>0?(e._recomputeBoundingSpheres=!0,e._state=Pr.COMBINED):lv(e,t,Pr.FAILED,void 0)}function LOe(e,t){let n=e._batchTableAttributeIndices.offset;if(!e._recomputeBoundingSpheres||!l(n)){e._recomputeBoundingSpheres=!1;return}let i,o=e._offsetInstanceExtend,r=e._instanceBoundingSpheres,s=r.length,a=e._tempBoundingSpheres;if(!l(a)){for(a=new Array(s),i=0;i<s;i++)a[i]=new se;e._tempBoundingSpheres=a}for(i=0;i<s;++i){let x=a[i],b=e._batchTable.getBatchedAttribute(i,n,new h);x=r[i].clone(x),Cte(x,b,o[i])}let c=[],u=[],f=[];for(i=0;i<s;++i){let x=a[i];x.center.x-x.radius>0||se.intersectPlane(x,an.ORIGIN_ZX_PLANE)!==Yt.INTERSECTING?c.push(x):(u.push(x),f.push(x))}let d=c[0],p=f[0],g=u[0];for(i=1;i<c.length;i++)d=se.union(d,c[i]);for(i=1;i<f.length;i++)p=se.union(p,f[i]);for(i=1;i<u.length;i++)g=se.union(g,u[i]);let m=[];for(l(d)&&m.push(d),l(p)&&m.push(p),l(g)&&m.push(g),i=0;i<m.length;i++){let x=m[i].clone(e._boundingSpheres[i]);e._boundingSpheres[i]=x,e._boundingSphereCV[i]=se.projectTo2D(x,t.mapProjection,e._boundingSphereCV[i])}dr._updateBoundingVolumes(e,t,e.modelMatrix,!0),e._recomputeBoundingSpheres=!1}var mte=new Hn,bte=new fe,Tte=new h,Ate=new se;function NOe(e,t){if(!l(e._batchTableAttributeIndices.distanceDisplayCondition)||e._batchTableBoundingSpheresUpdated)return;let i=e._batchTableBoundingSphereAttributeIndices,o=i.center3DHigh,r=i.center3DLow,s=i.center2DHigh,a=i.center2DLow,c=i.radius,u=t.mapProjection,f=u.ellipsoid,d=e._batchTable,p=e._instanceBoundingSpheres,g=p.length;for(let m=0;m<g;++m){let x=p[m];if(!l(x))continue;let b=e.modelMatrix;l(b)&&(x=se.transform(x,b,Ate));let T=x.center,A=x.radius,C=Hn.fromCartesian(T,mte);if(d.setBatchedAttribute(m,o,C.high),d.setBatchedAttribute(m,r,C.low),!t.scene3DOnly){let S=f.cartesianToCartographic(T,bte),v=u.project(S,Tte);C=Hn.fromCartesian(v,mte),d.setBatchedAttribute(m,s,C.high),d.setBatchedAttribute(m,a,C.low)}d.setBatchedAttribute(m,c,A)}e._batchTableBoundingSpheresUpdated=!0}var N6=new h,FOe=new h;function pte(e,t){if(!l(e._batchTableAttributeIndices.offset)||e._batchTableOffsetsUpdated||t.scene3DOnly)return;let i=e._batchTableOffsetAttribute2DIndex,o=t.mapProjection,r=o.ellipsoid,s=e._batchTable,a=e._instanceBoundingSpheres,c=a.length;for(let u=0;u<c;++u){let f=a[u];if(!l(f))continue;let d=s.getBatchedAttribute(u,e._batchTableAttributeIndices.offset);if(h.equals(d,h.ZERO)){s.setBatchedAttribute(u,i,h.ZERO);continue}let p=e.modelMatrix;l(p)&&(f=se.transform(f,p,Ate));let g=f.center;g=r.scaleToGeodeticSurface(g,FOe);let m=r.cartesianToCartographic(g,bte),x=o.project(m,Tte),b=h.add(d,g,N6);m=r.cartesianToCartographic(b,m);let T=o.project(m,N6),A=h.subtract(T,x,N6),C=A.x;A.x=A.z,A.z=A.y,A.y=C,s.setBatchedAttribute(u,i,A)}e._batchTableOffsetsUpdated=!0}function BOe(e,t){let n=e._attributeLocations,i=e._geometries,o=t.scene3DOnly,r=t.context,s=[],a=i.length;for(let c=0;c<a;++c){let u=i[c];if(s.push(ti.fromGeometry({context:r,geometry:u,attributeLocations:n,bufferUsage:Fe.STATIC_DRAW,interleave:e._interleave})),l(e._createBoundingVolumeFunction))e._createBoundingVolumeFunction(t,u);else if(e._boundingSpheres.push(se.clone(u.boundingSphere)),e._boundingSphereWC.push(new se),!o){let f=u.boundingSphereCV.center,d=f.x,p=f.y,g=f.z;f.x=g,f.y=d,f.z=p,e._boundingSphereCV.push(se.clone(u.boundingSphereCV)),e._boundingSphere2D.push(new se),e._boundingSphereMorph.push(new se)}}e._va=s,e._primitiveType=i[0].primitiveType,e.releaseGeometryInstances&&(e.geometryInstances=void 0),e._geometries=void 0,lv(e,t,Pr.COMPLETE,void 0)}function kOe(e,t,n,i){let o=n.getRenderState(),r;i?(r=Ge(o,!1),r.cull={enabled:!0,face:yi.BACK},e._frontFaceRS=Ve.fromCache(r),r.cull.face=yi.FRONT,e._backFaceRS=Ve.fromCache(r)):(e._frontFaceRS=Ve.fromCache(o),e._backFaceRS=e._frontFaceRS),r=Ge(o,!1),l(e._depthFailAppearance)&&(r.depthTest.enabled=!1),l(e._depthFailAppearance)&&(o=e._depthFailAppearance.getRenderState(),r=Ge(o,!1),r.depthTest.func=Ec.GREATER,i?(r.cull={enabled:!0,face:yi.BACK},e._frontFaceDepthFailRS=Ve.fromCache(r),r.cull.face=yi.FRONT,e._backFaceDepthFailRS=Ve.fromCache(r)):(e._frontFaceDepthFailRS=Ve.fromCache(r),e._backFaceDepthFailRS=e._frontFaceRS))}function VOe(e,t,n){let i=t.context,o=e._attributeLocations,r=e._batchTable.getVertexShaderCallback()(n.vertexShaderSource);r=dr._appendOffsetToShader(e,r),r=dr._appendShowToShader(e,r),r=dr._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=ute(r),r=dr._updateColorAttribute(e,r,!1),r=dte(e,r),r=dr._modifyShaderPosition(e,r,t.scene3DOnly);let s=n.getFragmentShaderSource();s=fte(s),e._sp=en.replaceCache({context:i,shaderProgram:e._sp,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),hte(e._sp,o),l(e._depthFailAppearance)&&(r=e._batchTable.getVertexShaderCallback()(e._depthFailAppearance.vertexShaderSource),r=dr._appendShowToShader(e,r),r=dr._appendDistanceDisplayConditionToShader(e,r,t.scene3DOnly),r=ute(r),r=dr._updateColorAttribute(e,r,!0),r=dte(e,r),r=dr._modifyShaderPosition(e,r,t.scene3DOnly),r=DOe(r),s=e._depthFailAppearance.getFragmentShaderSource(),s=fte(s),s=IOe(s),e._spDepthFail=en.replaceCache({context:i,shaderProgram:e._spDepthFail,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o}),hte(e._spDepthFail,o))}var cv=new F,_te=new h;function gte(e,t,n,i){let o=l(n)?n._uniforms:void 0,r={},s=t.uniforms;if(l(s))for(let c in s)s.hasOwnProperty(c)&&(r[c]=POe(s,c));let a=xt(r,o);return a=e._batchTable.getUniformMapCallback()(a),l(e.rtcCenter)&&(a.u_modifiedModelView=function(){let c=i.context.uniformState.view;return F.multiply(c,e._modelMatrix,cv),F.multiplyByPoint(cv,e.rtcCenter,_te),F.setTranslation(cv,_te,cv),cv}),a}function UOe(e,t,n,i,o,r,s,a){let c=gte(e,t,n,a),u;l(e._depthFailAppearance)&&(u=gte(e,e._depthFailAppearance,e._depthFailAppearance.material,a));let f=i?ve.TRANSLUCENT:ve.OPAQUE,d=o?2:1;d*=l(e._depthFailAppearance)?2:1,r.length=e._va.length*d;let p=r.length,g=0;for(let m=0;m<p;++m){let x;o&&(x=r[m],l(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,++m),x=r[m],l(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceRS,x.shaderProgram=e._sp,x.uniformMap=c,x.pass=f,l(e._depthFailAppearance)&&(o&&(++m,x=r[m],l(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._backFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++m,x=r[m],l(x)||(x=r[m]=new et({owner:e,primitiveType:e._primitiveType})),x.vertexArray=e._va[g],x.renderState=e._frontFaceDepthFailRS,x.shaderProgram=e._spDepthFail,x.uniformMap=u,x.pass=f),++g}}dr._updateBoundingVolumes=function(e,t,n,i){let o,r,s;if(i||!F.equals(n,e._modelMatrix))for(F.clone(n,e._modelMatrix),r=e._boundingSpheres.length,o=0;o<r;++o)s=e._boundingSpheres[o],l(s)&&(e._boundingSphereWC[o]=se.transform(s,n,e._boundingSphereWC[o]),t.scene3DOnly||(e._boundingSphere2D[o]=se.clone(e._boundingSphereCV[o],e._boundingSphere2D[o]),e._boundingSphere2D[o].center.x=0,e._boundingSphereMorph[o]=se.union(e._boundingSphereWC[o],e._boundingSphereCV[o])));let a=e.appearance.pixelSize;if(l(a))for(r=e._boundingSpheres.length,o=0;o<r;++o){s=e._boundingSpheres[o];let c=e._boundingSphereWC[o],f=t.camera.getPixelSize(s,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*a;c.radius=s.radius+f}};function zOe(e,t,n,i,o,r,s,a){dr._updateBoundingVolumes(e,t,o);let c;t.mode===ne.SCENE3D?c=e._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=e._boundingSphereCV:t.mode===ne.SCENE2D&&l(e._boundingSphere2D)?c=e._boundingSphere2D:l(e._boundingSphereMorph)&&(c=e._boundingSphereMorph);let u=t.commandList,f=t.passes;if(f.render||f.pick){let d=e.allowPicking,p=yn.castShadows(e.shadows),g=yn.receiveShadows(e.shadows),m=n.length,x=a?2:1;x*=l(e._depthFailAppearance)?2:1;for(let b=0;b<m;++b){let T=Math.floor(b/x),A=n[b];A.modelMatrix=o,A.boundingVolume=c[T],A.cull=r,A.debugShowBoundingVolume=s,A.castShadows=p,A.receiveShadows=g,d?A.pickId="v_pickColor":A.pickId=void 0,u.push(A)}}}dr.prototype.update=function(e){if(!l(this.geometryInstances)&&this._va.length===0||l(this.geometryInstances)&&Array.isArray(this.geometryInstances)&&this.geometryInstances.length===0||!l(this.appearance)||e.mode!==ne.SCENE3D&&e.scene3DOnly||!e.passes.render&&!e.passes.pick)return;if(l(this._error))throw this._error;if(this._state===Pr.FAILED)return;let t=e.context;if(l(this._batchTable)||COe(this,t),this._batchTable.attributes.length>0){if(zt.maximumVertexTextureImageUnits===0)throw new ce("Vertex texture fetch support is required to render primitives with per-instance attributes. The maximum number of vertex texture image units must be greater than zero.");this._batchTable.update(e)}if(this._state!==Pr.COMPLETE&&this._state!==Pr.COMBINED&&(this.asynchronous?OOe(this,e):MOe(this,e)),this._state===Pr.COMBINED&&(NOe(this,e),pte(this,e),BOe(this,e)),!this.show||this._state!==Pr.COMPLETE)return;this._batchTableOffsetsUpdated||pte(this,e),this._recomputeBoundingSpheres&&LOe(this,e);let n=this.appearance,i=n.material,o=!1,r=!1;this._appearance!==n?(this._appearance=n,this._material=i,o=!0,r=!0):this._material!==i&&(this._material=i,r=!0);let s=this.depthFailAppearance,a=l(s)?s.material:void 0;this._depthFailAppearance!==s?(this._depthFailAppearance=s,this._depthFailMaterial=a,o=!0,r=!0):this._depthFailMaterial!==a&&(this._depthFailMaterial=a,r=!0);let c=this._appearance.isTranslucent();this._translucent!==c&&(this._translucent=c,o=!0),l(this._material)&&this._material.update(t);let u=n.closed&&c;o&&y(this._createRenderStatesFunction,kOe)(this,t,n,u),r&&y(this._createShaderProgramFunction,VOe)(this,e,n),(o||r)&&y(this._createCommandsFunction,UOe)(this,n,i,c,u,this._colorCommands,this._pickCommands,e),y(this._updateAndQueueCommandsFunction,zOe)(this,e,this._colorCommands,this._pickCommands,this.modelMatrix,this.cull,this.debugShowBoundingVolume,u)};var HOe=new se,GOe=new se;function Cte(e,t,n){if(n===sn.TOP){let i=se.clone(e,HOe),o=se.clone(e,GOe);o.center=h.add(o.center,t,o.center),e=se.union(i,o,e)}else n===sn.ALL&&(e.center=h.add(e.center,t,e.center));return e}function WOe(e,t,n){return function(){let i=e.getBatchedAttribute(t,n),o=e.attributes[n],r=o.componentsPerAttribute,s=X.createTypedArray(o.componentDatatype,r);return l(i.constructor.pack)?i.constructor.pack(i,s,0):s[0]=i,s}}function jOe(e,t,n,i,o){return function(r){let s=xte(r);e.setBatchedAttribute(t,n,s),o==="offset"&&(i._recomputeBoundingSpheres=!0,i._batchTableOffsetsUpdated=!1)}}var qOe=new h;function YOe(e,t,n){t.boundingSphere={get:function(){let i=e._instanceBoundingSpheres[n];if(l(i)){i=i.clone();let o=e.modelMatrix,r=t.offset;l(r)&&Cte(i,h.fromArray(r.get(),0,qOe),e._offsetInstanceExtend[n]),l(o)&&(i=se.transform(i,o))}return i}},t.boundingSphereCV={get:function(){return e._instanceBoundingSpheresCV[n]}}}function XOe(e,t,n){t.pickId={get:function(){return e._pickIds[n]}}}dr.prototype.getGeometryInstanceAttributes=function(e){let t=this._perInstanceAttributeCache.get(e);if(l(t))return t;let n=-1,i=this._lastPerInstanceAttributeIndex,o=this._instanceIds,r=o.length;for(let u=0;u<r;++u){let f=(i+u)%r;if(e===o[f]){n=f;break}}if(n===-1)return;let s=this._batchTable,a=this._batchTableAttributeIndices;t={};let c={};for(let u in a)if(a.hasOwnProperty(u)){let f=a[u];c[u]={get:WOe(s,n,f),set:jOe(s,n,f,this,u)}}return YOe(this,c,n),XOe(this,c,n),Object.defineProperties(t,c),this._lastPerInstanceAttributeIndex=n,this._perInstanceAttributeCache.set(e,t),t};dr.prototype.isDestroyed=function(){return!1};dr.prototype.destroy=function(){let e,t;this._sp=this._sp&&this._sp.destroy(),this._spDepthFail=this._spDepthFail&&this._spDepthFail.destroy();let n=this._va;for(e=n.length,t=0;t<e;++t)n[t].destroy();this._va=void 0;let i=this._pickIds;for(e=i.length,t=0;t<e;++t)i[t].destroy();return this._pickIds=void 0,this._batchTable=this._batchTable&&this._batchTable.destroy(),this._instanceIds=void 0,this._perInstanceAttributeCache=void 0,this._attributeLocations=void 0,ue(this)};function lv(e,t,n,i){e._error=i,e._state=n,t.afterRender.push(function(){e._ready=e._state===Pr.COMPLETE||e._state===Pr.FAILED})}var In=dr;function KOe(e){e=y(e,y.EMPTY_OBJECT),this.componentDatatype=e.componentDatatype,this.componentsPerAttribute=e.componentsPerAttribute,this.normalize=y(e.normalize,!1),this.value=e.value}var Sc=KOe;var uv=`#ifdef TEXTURE_COORDINATES +#ifdef SPHERICAL +in vec4 v_sphericalExtents; +#else // SPHERICAL +in vec2 v_inversePlaneExtents; +in vec4 v_westPlane; +in vec4 v_southPlane; +#endif // SPHERICAL +in vec3 v_uvMinAndSphericalLongitudeRotation; +in vec3 v_uMaxAndInverseDistance; +in vec3 v_vMaxAndInverseDistance; +#endif // TEXTURE_COORDINATES + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +#ifdef NORMAL_EC +vec3 getEyeCoordinate3FromWindowCoordinate(vec2 fragCoord, float logDepthOrDepth) { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(fragCoord, logDepthOrDepth); + return eyeCoordinate.xyz / eyeCoordinate.w; +} + +vec3 vectorFromOffset(vec4 eyeCoordinate, vec2 positiveOffset) { + vec2 glFragCoordXY = gl_FragCoord.xy; + // Sample depths at both offset and negative offset + float upOrRightLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY + positiveOffset) / czm_viewport.zw)); + float downOrLeftLogDepth = czm_unpackDepth(texture(czm_globeDepthTexture, (glFragCoordXY - positiveOffset) / czm_viewport.zw)); + // Explicitly evaluate both paths + // Necessary for multifrustum and for edges of the screen + bvec2 upOrRightInBounds = lessThan(glFragCoordXY + positiveOffset, czm_viewport.zw); + float useUpOrRight = float(upOrRightLogDepth > 0.0 && upOrRightInBounds.x && upOrRightInBounds.y); + float useDownOrLeft = float(useUpOrRight == 0.0); + vec3 upOrRightEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY + positiveOffset, upOrRightLogDepth); + vec3 downOrLeftEC = getEyeCoordinate3FromWindowCoordinate(glFragCoordXY - positiveOffset, downOrLeftLogDepth); + return (upOrRightEC - (eyeCoordinate.xyz / eyeCoordinate.w)) * useUpOrRight + ((eyeCoordinate.xyz / eyeCoordinate.w) - downOrLeftEC) * useDownOrLeft; +} +#endif // NORMAL_EC + +void main(void) +{ +#ifdef REQUIRES_EC + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); +#endif + +#ifdef REQUIRES_WC + vec4 worldCoordinate4 = czm_inverseView * eyeCoordinate; + vec3 worldCoordinate = worldCoordinate4.xyz / worldCoordinate4.w; +#endif + +#ifdef TEXTURE_COORDINATES + vec2 uv; +#ifdef SPHERICAL + // Treat world coords as a sphere normal for spherical coordinates + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(worldCoordinate); + sphericalLatLong.y += v_uvMinAndSphericalLongitudeRotation.z; + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + uv.x = (sphericalLatLong.y - v_sphericalExtents.y) * v_sphericalExtents.w; + uv.y = (sphericalLatLong.x - v_sphericalExtents.x) * v_sphericalExtents.z; +#else // SPHERICAL + // Unpack planes and transform to eye space + uv.x = czm_planeDistance(v_westPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.x; + uv.y = czm_planeDistance(v_southPlane, eyeCoordinate.xyz / eyeCoordinate.w) * v_inversePlaneExtents.y; +#endif // SPHERICAL +#endif // TEXTURE_COORDINATES + +#ifdef PICK +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + // Check for logDepthOrDepth != 0.0 to make sure this should be classified. + if (0.0 <= uv.x && uv.x <= 1.0 && 0.0 <= uv.y && uv.y <= 1.0 || logDepthOrDepth != 0.0) { + out_FragColor.a = 1.0; // 0.0 alpha leads to discard from ShaderSource.createPickFragmentShaderSource + czm_writeDepthClamp(); + } +#else // CULL_FRAGMENTS + out_FragColor.a = 1.0; +#endif // CULL_FRAGMENTS +#else // PICK + +#ifdef CULL_FRAGMENTS + // When classifying translucent geometry, logDepthOrDepth == 0.0 + // indicates a region that should not be classified, possibly due to there + // being opaque pixels there in another buffer. + if (uv.x <= 0.0 || 1.0 <= uv.x || uv.y <= 0.0 || 1.0 <= uv.y || logDepthOrDepth == 0.0) { + discard; + } +#endif + +#ifdef NORMAL_EC + // Compute normal by sampling adjacent pixels in 2x2 block in screen space + vec3 downUp = vectorFromOffset(eyeCoordinate, vec2(0.0, 1.0)); + vec3 leftRight = vectorFromOffset(eyeCoordinate, vec2(1.0, 0.0)); + vec3 normalEC = normalize(cross(leftRight, downUp)); +#endif + + +#ifdef PER_INSTANCE_COLOR + + vec4 color = czm_gammaCorrect(v_color); +#ifdef FLAT + out_FragColor = color; +#else // FLAT + czm_materialInput materialInput; + materialInput.normalEC = normalEC; + materialInput.positionToEyeEC = -eyeCoordinate.xyz; + czm_material material = czm_getDefaultMaterial(materialInput); + material.diffuse = color.rgb; + material.alpha = color.a; + + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#else // PER_INSTANCE_COLOR + + // Material support. + // USES_ is distinct from REQUIRES_, because some things are dependencies of each other or + // dependencies for culling but might not actually be used by the material. + + czm_materialInput materialInput; + +#ifdef USES_NORMAL_EC + materialInput.normalEC = normalEC; +#endif + +#ifdef USES_POSITION_TO_EYE_EC + materialInput.positionToEyeEC = -eyeCoordinate.xyz; +#endif + +#ifdef USES_TANGENT_TO_EYE + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(worldCoordinate, normalEC); +#endif + +#ifdef USES_ST + // Remap texture coordinates from computed (approximately aligned with cartographic space) to the desired + // texture coordinate system, which typically forms a tight oriented bounding box around the geometry. + // Shader is provided a set of reference points for remapping. + materialInput.st.x = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_uMaxAndInverseDistance.xy, uv) * v_uMaxAndInverseDistance.z; + materialInput.st.y = czm_lineDistance(v_uvMinAndSphericalLongitudeRotation.xy, v_vMaxAndInverseDistance.xy, uv) * v_vMaxAndInverseDistance.z; +#endif + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else // FLAT + out_FragColor = czm_phong(normalize(-eyeCoordinate.xyz), material, czm_lightDirectionEC); +#endif // FLAT + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + +#endif // PER_INSTANCE_COLOR + czm_writeDepthClamp(); +#endif // PICK +} +`;function Zu(e,t,n){this._projectionExtentDefines={eastMostYhighDefine:"",eastMostYlowDefine:"",westMostYhighDefine:"",westMostYlowDefine:""};let i=new F6;i.requiresTextureCoordinates=e,i.requiresEC=!n.flat;let o=new F6;if(o.requiresTextureCoordinates=e,n instanceof cn)i.requiresNormalEC=!n.flat;else{let r=`${n.material.shaderSource} +${n.fragmentShaderSource}`;i.normalEC=r.indexOf("materialInput.normalEC")!==-1||r.indexOf("czm_getDefaultMaterial")!==-1,i.positionToEyeEC=r.indexOf("materialInput.positionToEyeEC")!==-1,i.tangentToEyeMatrix=r.indexOf("materialInput.tangentToEyeMatrix")!==-1,i.st=r.indexOf("materialInput.st")!==-1}this._colorShaderDependencies=i,this._pickShaderDependencies=o,this._appearance=n,this._extentsCulling=e,this._planarExtents=t}Zu.prototype.createFragmentShader=function(e){let t=this._appearance,n=this._colorShaderDependencies,i=[];!e&&!this._planarExtents&&i.push("SPHERICAL"),n.requiresEC&&i.push("REQUIRES_EC"),n.requiresWC&&i.push("REQUIRES_WC"),n.requiresTextureCoordinates&&i.push("TEXTURE_COORDINATES"),this._extentsCulling&&i.push("CULL_FRAGMENTS"),n.requiresNormalEC&&i.push("NORMAL_EC"),t instanceof cn&&i.push("PER_INSTANCE_COLOR"),n.normalEC&&i.push("USES_NORMAL_EC"),n.positionToEyeEC&&i.push("USES_POSITION_TO_EYE_EC"),n.tangentToEyeMatrix&&i.push("USES_TANGENT_TO_EYE"),n.st&&i.push("USES_ST"),t.flat&&i.push("FLAT");let o="";return t instanceof cn||(o=t.material.shaderSource),new Ue({defines:i,sources:[o,uv]})};Zu.prototype.createPickFragmentShader=function(e){let t=this._pickShaderDependencies,n=["PICK"];return!e&&!this._planarExtents&&n.push("SPHERICAL"),t.requiresEC&&n.push("REQUIRES_EC"),t.requiresWC&&n.push("REQUIRES_WC"),t.requiresTextureCoordinates&&n.push("TEXTURE_COORDINATES"),this._extentsCulling&&n.push("CULL_FRAGMENTS"),new Ue({defines:n,sources:[uv],pickColorQualifier:"in"})};Zu.prototype.createVertexShader=function(e,t,n,i){return Rte(this._colorShaderDependencies,this._planarExtents,n,e,t,this._appearance,i,this._projectionExtentDefines)};Zu.prototype.createPickVertexShader=function(e,t,n,i){return Rte(this._pickShaderDependencies,this._planarExtents,n,e,t,void 0,i,this._projectionExtentDefines)};var Ete=new h,Ste=new fe,vte={high:0,low:0};function Rte(e,t,n,i,o,r,s,a){let c=i.slice();if(a.eastMostYhighDefine===""){let u=Ste;u.longitude=P.PI,u.latitude=0,u.height=0;let f=s.project(u,Ete),d=Hn.encode(f.x,vte);a.eastMostYhighDefine=`EAST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.eastMostYlowDefine=`EAST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`;let p=Ste;p.longitude=-P.PI,p.latitude=0,p.height=0;let g=s.project(p,Ete);d=Hn.encode(g.x,vte),a.westMostYhighDefine=`WEST_MOST_X_HIGH ${d.high.toFixed(`${d.high}`.length+1)}`,a.westMostYlowDefine=`WEST_MOST_X_LOW ${d.low.toFixed(`${d.low}`.length+1)}`}return n&&(c.push(a.eastMostYhighDefine),c.push(a.eastMostYlowDefine),c.push(a.westMostYhighDefine),c.push(a.westMostYlowDefine)),l(r)&&r instanceof cn&&c.push("PER_INSTANCE_COLOR"),e.requiresTextureCoordinates&&(c.push("TEXTURE_COORDINATES"),t||n||c.push("SPHERICAL"),n&&c.push("COLUMBUS_VIEW_2D")),new Ue({defines:c,sources:[o]})}function F6(){this._requiresEC=!1,this._requiresWC=!1,this._requiresNormalEC=!1,this._requiresTextureCoordinates=!1,this._usesNormalEC=!1,this._usesPositionToEyeEC=!1,this._usesTangentToEyeMat=!1,this._usesSt=!1}Object.defineProperties(F6.prototype,{requiresEC:{get:function(){return this._requiresEC},set:function(e){this._requiresEC=e||this._requiresEC}},requiresWC:{get:function(){return this._requiresWC},set:function(e){this._requiresWC=e||this._requiresWC,this.requiresEC=this._requiresWC}},requiresNormalEC:{get:function(){return this._requiresNormalEC},set:function(e){this._requiresNormalEC=e||this._requiresNormalEC,this.requiresEC=this._requiresNormalEC}},requiresTextureCoordinates:{get:function(){return this._requiresTextureCoordinates},set:function(e){this._requiresTextureCoordinates=e||this._requiresTextureCoordinates,this.requiresWC=this._requiresTextureCoordinates}},normalEC:{set:function(e){this.requiresNormalEC=e,this._usesNormalEC=e},get:function(){return this._usesNormalEC}},tangentToEyeMatrix:{set:function(e){this.requiresWC=e,this.requiresNormalEC=e,this._usesTangentToEyeMat=e},get:function(){return this._usesTangentToEyeMat}},positionToEyeEC:{set:function(e){this.requiresEC=e,this._usesPositionToEyeEC=e},get:function(){return this._usesPositionToEyeEC}},st:{set:function(e){this.requiresTextureCoordinates=e,this._usesSt=e},get:function(){return this._usesSt}}});function wte(e,t,n){return Math.abs((t.y-e.y)*n.x-(t.x-e.x)*n.y+t.x*e.y-t.y*e.x)/U.distance(t,e)}var ZOe=[new U,new U,new U,new U];function Ote(e,t){let n=ZOe,i=U.unpack(t,0,n[0]),o=U.unpack(t,2,n[1]),r=U.unpack(t,4,n[2]);e.uMaxVmax=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[o.x,o.y,r.x,r.y]});let s=1/wte(i,o,r),a=1/wte(i,r,o);e.uvMinAndExtents=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[i.x,i.y,s,a]})}var Mte=new fe,Lte=new h,$Oe=new h,QOe=new h,DL={high:0,low:0};function Nte(e,t,n){let i=Mte;i.height=0,i.longitude=e.west,i.latitude=e.south;let o=t.project(i,Lte);i.latitude=e.north;let r=t.project(i,$Oe);i.longitude=e.east,i.latitude=e.south;let s=t.project(i,QOe),a=[0,0,0,0],c=[0,0,0,0],u=Hn.encode(o.x,DL);a[0]=u.high,c[0]=u.low,u=Hn.encode(o.y,DL),a[1]=u.high,c[1]=u.low,u=Hn.encode(r.y,DL),a[2]=u.high,c[2]=u.low,u=Hn.encode(s.x,DL),a[3]=u.high,c[3]=u.low,n.planes2D_HIGH=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:a}),n.planes2D_LOW=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:c})}var JOe=new F,eMe=new F,Dte=new h,tMe=new fe,nMe=[new fe,new fe,new fe,new fe,new fe,new fe,new fe,new fe];function iMe(e,t,n,i,o,r){let s=re.center(e,tMe);s.height=n;let a=fe.toCartesian(s,t,Dte),c=Nt.eastNorthUpToFixedFrame(a,t,JOe),u=F.inverse(c,eMe),f=e.west,d=e.east,p=e.north,g=e.south,m=nMe;m[0].latitude=g,m[0].longitude=f,m[1].latitude=p,m[1].longitude=f,m[2].latitude=p,m[2].longitude=d,m[3].latitude=g,m[3].longitude=d;let x=(f+d)*.5,b=(p+g)*.5;m[4].latitude=g,m[4].longitude=x,m[5].latitude=p,m[5].longitude=x,m[6].latitude=b,m[6].longitude=f,m[7].latitude=b,m[7].longitude=d;let T=Number.POSITIVE_INFINITY,A=Number.NEGATIVE_INFINITY,C=Number.POSITIVE_INFINITY,S=Number.NEGATIVE_INFINITY;for(let R=0;R<8;R++){m[R].height=n;let M=fe.toCartesian(m[R],t,Dte);F.multiplyByPoint(u,M,M),M.z=0,T=Math.min(T,M.x),A=Math.max(A,M.x),C=Math.min(C,M.y),S=Math.max(S,M.y)}let v=i;v.x=T,v.y=C,v.z=0,F.multiplyByPoint(c,v,v);let D=o;D.x=A,D.y=C,D.z=0,F.multiplyByPoint(c,D,D),h.subtract(D,v,o);let O=r;O.x=T,O.y=S,O.z=0,F.multiplyByPoint(c,O,O),h.subtract(O,v,r)}var oMe=new h,rMe=new h,sMe=new Hn;Zu.getPlanarTextureCoordinateAttributes=function(e,t,n,i,o){let r=Lte,s=oMe,a=rMe;iMe(e,n,y(o,0),r,s,a);let c={};Ote(c,t);let u=Hn.fromCartesian(r,sMe);return c.southWest_HIGH=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.high,[0,0,0])}),c.southWest_LOW=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(u.low,[0,0,0])}),c.eastward=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(s,[0,0,0])}),c.northward=new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:3,normalize:!1,value:h.pack(a,[0,0,0])}),Nte(e,i,c),c};var aMe=new h;function Ite(e,t,n,i){let o=Mte;o.latitude=e,o.longitude=t,o.height=0;let r=fe.toCartesian(o,n,aMe),s=Math.sqrt(r.x*r.x+r.y*r.y),a=P.fastApproximateAtan2(s,r.z),c=P.fastApproximateAtan2(r.x,r.y);return i.x=a,i.y=c,i}var Pte=new U;Zu.getSphericalExtentGeometryInstanceAttributes=function(e,t,n,i){let o=Ite(e.south,e.west,n,Pte),r=o.x,s=o.y,a=Ite(e.north,e.east,n,Pte),c=a.x,u=a.y,f=0;s>u&&(f=P.PI-s,s=-P.PI,u+=f),r-=P.EPSILON5,s-=P.EPSILON5,c+=P.EPSILON5,u+=P.EPSILON5;let d=1/(u-s),p=1/(c-r),g={sphericalExtents:new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,value:[r,s,p,d]}),longitudeRotation:new Sc({componentDatatype:X.FLOAT,componentsPerAttribute:1,normalize:!1,value:[f]})};return Ote(g,t),Nte(e,i,g),g};Zu.hasAttributesForTextureCoordinatePlanes=function(e){return l(e.southWest_HIGH)&&l(e.southWest_LOW)&&l(e.northward)&&l(e.eastward)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};Zu.hasAttributesForSphericalExtents=function(e){return l(e.sphericalExtents)&&l(e.longitudeRotation)&&l(e.planes2D_HIGH)&&l(e.planes2D_LOW)&&l(e.uMaxVmax)&&l(e.uvMinAndExtents)};function cMe(e){return Math.max(e.width,e.height)>Zu.MAX_WIDTH_FOR_PLANAR_EXTENTS}Zu.shouldUseSphericalCoordinates=function(e){return cMe(e)};Zu.MAX_WIDTH_FOR_PLANAR_EXTENTS=P.toRadians(1);var $u=Zu;var lMe={NEVER:te.NEVER,LESS:te.LESS,EQUAL:te.EQUAL,LESS_OR_EQUAL:te.LEQUAL,GREATER:te.GREATER,NOT_EQUAL:te.NOTEQUAL,GREATER_OR_EQUAL:te.GEQUAL,ALWAYS:te.ALWAYS},Vn=Object.freeze(lMe);var uMe={ZERO:te.ZERO,KEEP:te.KEEP,REPLACE:te.REPLACE,INCREMENT:te.INCR,DECREMENT:te.DECR,INVERT:te.INVERT,INCREMENT_WRAP:te.INCR_WRAP,DECREMENT_WRAP:te.DECR_WRAP},mt=Object.freeze(uMe);var IL={CESIUM_3D_TILE_MASK:128,SKIP_LOD_MASK:112,SKIP_LOD_BIT_SHIFT:4,CLASSIFICATION_MASK:15};IL.setCesium3DTileBit=function(){return{enabled:!0,frontFunction:Vn.ALWAYS,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.REPLACE},backFunction:Vn.ALWAYS,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.REPLACE},reference:IL.CESIUM_3D_TILE_MASK,mask:IL.CESIUM_3D_TILE_MASK}};var Ht=Object.freeze(IL);function B0(e){e=y(e,y.EMPTY_OBJECT);let t=e.geometryInstances;this.geometryInstances=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._debugShowShadowVolume=!1,this._extruded=y(e._extruded,!1),this._uniformMap=e._uniformMap,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._spColor=void 0,this._spPick2D=void 0,this._spColor2D=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._commandsIgnoreShow=[],this._ready=!1,this._primitive=void 0,this._pickPrimitive=e._pickPrimitive,this._hasSphericalExtentsAttribute=!1,this._hasPlanarExtentsAttributes=!1,this._hasPerColorAttribute=!1,this.appearance=e.appearance,this._createBoundingVolumeFunction=e._createBoundingVolumeFunction,this._updateAndQueueCommandsFunction=e._updateAndQueueCommandsFunction,this._usePickOffsets=!1,this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_createRenderStatesFunction:void 0,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0,_createPickOffsets:!0}}Object.defineProperties(B0.prototype,{vertexCacheOptimize:{get:function(){return this._primitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},compressVertices:{get:function(){return this._primitiveOptions.compressVertices}},ready:{get:function(){return this._ready}},_needs2DShader:{get:function(){return this._hasPlanarExtentsAttributes||this._hasSphericalExtentsAttribute}}});B0.isSupported=function(e){return e.context.stencilBuffer};function NT(e,t){let n=t?Vn.EQUAL:Vn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:e,frontFunction:n,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:n,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Ec.LESS_OR_EQUAL},depthMask:!1}}function k6(e){return{stencilTest:{enabled:e,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:ln.PRE_MULTIPLIED_ALPHA_BLEND}}var fMe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function dMe(e,t,n,i){if(l(e._rsStencilDepthPass))return;let o=!e.debugShowShadowVolume;e._rsStencilDepthPass=Ve.fromCache(NT(o,!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(NT(o,!0)),e._rsColorPass=Ve.fromCache(k6(o,!1)),e._rsPickPass=Ve.fromCache(fMe)}function hMe(e,t){if(!e.compressVertices)return t;if(t.search(/in\s+vec3\s+extrudeDirection;/g)!==-1){let n="compressedAttributes",i=`in vec2 ${n};`,o=`vec3 extrudeDirection; +`,r=` extrudeDirection = czm_octDecode(${n}, 65535.0); +`,s=t;s=s.replace(/in\s+vec3\s+extrudeDirection;/g,""),s=Ue.replaceMain(s,"czm_non_compressed_main");let a=`void main() +{ +${r} czm_non_compressed_main(); +}`;return[i,o,s,a].join(` +`)}}function mMe(e,t){let n=t.context,i=e._primitive,o=SL;o=e._primitive._batchTable.getVertexShaderCallback()(o),o=In._appendDistanceDisplayConditionToShader(i,o),o=In._modifyShaderPosition(e,o,t.scene3DOnly),o=In._updateColorAttribute(i,o);let r=e._hasPlanarExtentsAttributes,s=r||e._hasSphericalExtentsAttribute;e._extruded&&(o=hMe(i,o));let a=e._extruded?"EXTRUDED_GEOMETRY":"",c=new Ue({defines:[a],sources:[o]}),u=new Ue({sources:[F0]}),f=e._primitive._attributeLocations,d=new $u(s,r,e.appearance);if(e._spStencil=en.replaceCache({context:n,shaderProgram:e._spStencil,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f}),e._primitive.allowPicking){let m=Ue.createPickVertexShaderSource(o);m=In._appendShowToShader(i,m),m=In._updatePickColorAttribute(m);let x=d.createPickFragmentShader(!1),b=d.createPickVertexShader([a],m,!1,t.mapProjection);if(e._spPick=en.replaceCache({context:n,shaderProgram:e._spPick,vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f}),s){let T=n.shaderCache.getDerivedShaderProgram(e._spPick,"2dPick");if(!l(T)){let A=d.createPickFragmentShader(!0),C=d.createPickVertexShader([a],m,!0,t.mapProjection);T=n.shaderCache.createDerivedShaderProgram(e._spPick,"2dPick",{vertexShaderSource:C,fragmentShaderSource:A,attributeLocations:f})}e._spPick2D=T}}else e._spPick=en.fromCache({context:n,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});o=In._appendShowToShader(i,o),c=new Ue({defines:[a],sources:[o]}),e._sp=en.replaceCache({context:n,shaderProgram:e._sp,vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:f});let p=d.createFragmentShader(!1),g=d.createVertexShader([a],o,!1,t.mapProjection);if(e._spColor=en.replaceCache({context:n,shaderProgram:e._spColor,vertexShaderSource:g,fragmentShaderSource:p,attributeLocations:f}),s){let m=n.shaderCache.getDerivedShaderProgram(e._spColor,"2dColor");if(!l(m)){let x=d.createFragmentShader(!0),b=d.createVertexShader([a],o,!0,t.mapProjection);m=n.shaderCache.createDerivedShaderProgram(e._spColor,"2dColor",{vertexShaderSource:b,fragmentShaderSource:x,attributeLocations:f})}e._spColor2D=m}}function pMe(e,t){let n=e._primitive,i=n._va.length*2;t.length=i;let o,r,s,a=0,c=n._batchTable.getUniformMapCallback()(e._uniformMap),u=e._needs2DShader;for(o=0;o<i;o+=2){let g=n._va[a++];r=t[o],l(r)||(r=t[o]=new et({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsStencilDepthPass,r.shaderProgram=e._sp,r.uniformMap=c,r.pass=ve.TERRAIN_CLASSIFICATION,s=et.shallowClone(r,r.derivedCommands.tileset),s.renderState=e._rsStencilDepthPass3DTiles,s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,r=t[o+1],l(r)||(r=t[o+1]=new et({owner:e,primitiveType:n._primitiveType})),r.vertexArray=g,r.renderState=e._rsColorPass,r.shaderProgram=e._spColor,r.pass=ve.TERRAIN_CLASSIFICATION;let x=e.appearance.material;if(l(x)&&(c=xt(c,x._uniforms)),r.uniformMap=c,s=et.shallowClone(r,r.derivedCommands.tileset),s.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,r.derivedCommands.tileset=s,u){let b=et.shallowClone(r,r.derivedCommands.appearance2D);b.shaderProgram=e._spColor2D,r.derivedCommands.appearance2D=b,b=et.shallowClone(s,s.derivedCommands.appearance2D),b.shaderProgram=e._spColor2D,s.derivedCommands.appearance2D=b}}let f=e._commandsIgnoreShow,d=e._spStencil,p=0;i=f.length=i/2;for(let g=0;g<i;++g){let m=f[g]=et.shallowClone(t[p],f[g]);m.shaderProgram=d,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,p+=2}}function _Me(e,t){let n=e._usePickOffsets,i=e._primitive,o=i._va.length*2,r,s=0,a;n&&(r=i._pickOffsets,o=r.length*2),t.length=o;let c,u,f,d=0,p=i._batchTable.getUniformMapCallback()(e._uniformMap),g=e._needs2DShader;for(c=0;c<o;c+=2){let m=i._va[d++];if(n&&(a=r[s++],m=i._va[a.index]),u=t[c],l(u)||(u=t[c]=new et({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsStencilDepthPass,u.shaderProgram=e._sp,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=et.shallowClone(u,u.derivedCommands.tileset),f.renderState=e._rsStencilDepthPass3DTiles,f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,u=t[c+1],l(u)||(u=t[c+1]=new et({owner:e,primitiveType:i._primitiveType,pickOnly:!0})),u.vertexArray=m,u.renderState=e._rsPickPass,u.shaderProgram=e._spPick,u.uniformMap=p,u.pass=ve.TERRAIN_CLASSIFICATION,n&&(u.offset=a.offset,u.count=a.count),f=et.shallowClone(u,u.derivedCommands.tileset),f.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,u.derivedCommands.tileset=f,g){let x=et.shallowClone(u,u.derivedCommands.pick2D);x.shaderProgram=e._spPick2D,u.derivedCommands.pick2D=x,x=et.shallowClone(f,f.derivedCommands.pick2D),x.shaderProgram=e._spPick2D,f.derivedCommands.pick2D=x}}}function gMe(e,t,n,i,o,r,s){pMe(e,r),_Me(e,s)}function Fte(e,t){return Math.floor(e%t/2)}function B6(e,t,n,i,o,r){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,e.debugShowBoundingVolume=r,t.commandList.push(e)}function Bte(e,t,n,i,o){e.modelMatrix=n,e.boundingVolume=o,e.cull=i,t.commandList.push(e)}function yMe(e,t,n,i,o,r,s,a){let c=e._primitive;In._updateBoundingVolumes(c,t,o);let u;t.mode===ne.SCENE3D?u=c._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?u=c._boundingSphereCV:t.mode===ne.SCENE2D&&l(c._boundingSphere2D)?u=c._boundingSphere2D:l(c._boundingSphereMorph)&&(u=c._boundingSphereMorph);let f=e.classificationType,d=f!==kn.CESIUM_3D_TILE,p=f!==kn.TERRAIN,g=t.passes,m,x,b;if(g.render){let T=n.length;for(m=0;m<T;++m)x=u[Fte(m,T)],d&&(b=n[m],B6(b,t,o,r,x,s)),p&&(b=n[m].derivedCommands.tileset,B6(b,t,o,r,x,s));if(t.invertClassification){let A=e._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=u[m],b=A[m],B6(b,t,o,r,x,s)}}if(g.pick){let T=i.length,A=c._pickOffsets;for(m=0;m<T;++m){let C=A[Fte(m,T)];x=u[C.index],d&&(b=i[m],Bte(b,t,o,r,x)),p&&(b=i[m].derivedCommands.tileset,Bte(b,t,o,r,x))}}}B0.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;let t=this.appearance;l(t)&&l(t.material)&&t.material.update(e.context);let n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s,a,c,u=!1,f=!0,d,p=!1,g=!1;for(r>0&&(c=o[0].attributes,p=$u.hasAttributesForSphericalExtents(c),g=$u.hasAttributesForTextureCoordinatePlanes(c),d=c.color),s=0;s<r;s++){a=o[s];let x=a.attributes.color;l(x)&&(u=!0),f=f&&l(x)&&qt.equals(d,x)}if(!f&&!p&&!g)throw new he("All GeometryInstances must have the same color attribute except via GroundPrimitives");u&&!l(t)&&(t=new cn({flat:!0}),this.appearance=t),this._usePickOffsets=!p&&!g,this._hasSphericalExtentsAttribute=p,this._hasPlanarExtentsAttributes=g,this._hasPerColorAttribute=u;let m=new Array(r);for(s=0;s<r;++s)a=o[s],m[s]=new vt({geometry:a.geometry,attributes:a.attributes,modelMatrix:a.modelMatrix,id:a.id,pickPrimitive:y(this._pickPrimitive,n)});i.appearance=t,i.geometryInstances=m,l(this._createBoundingVolumeFunction)&&(i._createBoundingVolumeFunction=function(x,b){n._createBoundingVolumeFunction(x,b)}),i._createRenderStatesFunction=function(x,b,T,A){dMe(n,b)},i._createShaderProgramFunction=function(x,b,T){mMe(n,b)},i._createCommandsFunction=function(x,b,T,A,C,S,v){gMe(n,void 0,void 0,!0,!1,S,v)},l(this._updateAndQueueCommandsFunction)?i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,v,D){n._updateAndQueueCommandsFunction(x,b,T,A,C,S,v,D)}:i._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,v,D){yMe(n,b,T,A,C,S,v,D)},this._primitive=new In(i)}this.debugShowShadowVolume&&!this._debugShowShadowVolume&&this._ready?(this._debugShowShadowVolume=!0,this._rsStencilDepthPass=Ve.fromCache(NT(!1,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(NT(!1,!0)),this._rsColorPass=Ve.fromCache(k6(!1))):!this.debugShowShadowVolume&&this._debugShowShadowVolume&&(this._debugShowShadowVolume=!1,this._rsStencilDepthPass=Ve.fromCache(NT(!0,!1)),this._rsStencilDepthPass3DTiles=Ve.fromCache(NT(!0,!0)),this._rsColorPass=Ve.fromCache(k6(!0))),this._primitive.appearance!==t&&(this._primitive.appearance=t),this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};B0.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};B0.prototype.isDestroyed=function(){return!1};B0.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._spColor=this._spColor&&this._spColor.destroy(),this._spPick2D=void 0,this._spColor2D=void 0,ue(this)};var fv=B0;var xMe={u_globeMinimumAltitude:function(){return 55e3}};function fl(e){e=y(e,y.EMPTY_OBJECT);let t=e.appearance,n=e.geometryInstances;if(!l(t)&&l(n)){let o=Array.isArray(n)?n:[n],r=o.length;for(let s=0;s<r;s++){let a=o[s].attributes;if(l(a)&&l(a.color)){t=new cn({flat:!0});break}}}this.appearance=t,this.geometryInstances=e.geometryInstances,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._boundingVolumes=[],this._boundingVolumes2D=[],this._ready=!1,this._primitive=void 0,this._maxHeight=void 0,this._minHeight=void 0,this._maxTerrainHeight=ui._defaultMaxTerrainHeight,this._minTerrainHeight=ui._defaultMinTerrainHeight,this._boundingSpheresKeys=[],this._boundingSpheres=[],this._useFragmentCulling=!1,this._zIndex=void 0;let i=this;this._classificationPrimitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:y(e.vertexCacheOptimize,!1),interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:y(e.compressVertices,!0),_createBoundingVolumeFunction:void 0,_updateAndQueueCommandsFunction:void 0,_pickPrimitive:i,_extruded:!0,_uniformMap:xMe}}Object.defineProperties(fl.prototype,{vertexCacheOptimize:{get:function(){return this._classificationPrimitiveOptions.vertexCacheOptimize}},interleave:{get:function(){return this._classificationPrimitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._classificationPrimitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._classificationPrimitiveOptions.allowPicking}},asynchronous:{get:function(){return this._classificationPrimitiveOptions.asynchronous}},compressVertices:{get:function(){return this._classificationPrimitiveOptions.compressVertices}},ready:{get:function(){return this._ready}}});fl.isSupported=fv.isSupported;function kte(e){return function(t,n){let i=n.maximumRadius,o=i/Math.cos(t*.5)-i;return e._maxHeight+o}}function Vte(e){return function(t,n){return e._minHeight}}var bMe=new h,TMe=new h,AMe=new h,CMe=new fe,EMe=new re;function PL(e,t){let n=e.mapProjection.ellipsoid;if(!l(t.attributes)||!l(t.attributes.position3DHigh))return l(t.rectangle)?t.rectangle:void 0;let i=t.attributes.position3DHigh.values,o=t.attributes.position3DLow.values,r=i.length,s=Number.POSITIVE_INFINITY,a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.NEGATIVE_INFINITY;for(let d=0;d<r;d+=3){let p=h.unpack(i,d,bMe),g=h.unpack(o,d,TMe),m=h.add(p,g,AMe),x=n.cartesianToCartographic(m,CMe),b=x.latitude,T=x.longitude;s=Math.min(s,b),a=Math.min(a,T),c=Math.max(c,b),u=Math.max(u,T)}let f=EMe;return f.north=c,f.south=s,f.east=u,f.west=a,f}function SMe(e,t,n){let i=ui.getMinimumMaximumHeights(t,n);e._minTerrainHeight=i.minimumTerrainHeight,e._maxTerrainHeight=i.maximumTerrainHeight}function vMe(e,t,n){let i=t.mapProjection.ellipsoid,o=PL(t,n),r=wn.fromRectangle(o,e._minHeight,e._maxHeight,i);if(e._boundingVolumes.push(r),!t.scene3DOnly){let s=t.mapProjection,a=se.fromRectangleWithHeights2D(o,s,e._maxHeight,e._minHeight);h.fromElements(a.center.z,a.center.x,a.center.y,a.center),e._boundingVolumes2D.push(a)}}function V6(e,t){return Math.floor(e%t/2)}function U6(e,t,n,i,o,r,s){let a=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===a._spColor&&a._needs2DShader&&(t=t.derivedCommands.appearance2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function Ute(e,t,n,i,o,r){let s=e._primitive;n.mode!==ne.SCENE3D&&t.shaderProgram===s._spPick&&s._needs2DShader&&(t=t.derivedCommands.pick2D),t.owner=e,t.modelMatrix=i,t.boundingVolume=r,t.cull=o,n.commandList.push(t)}function wMe(e,t,n,i,o,r,s,a){let c;t.mode===ne.SCENE3D?c=e._boundingVolumes:c=e._boundingVolumes2D;let u=e.classificationType,f=u!==kn.CESIUM_3D_TILE,d=u!==kn.TERRAIN,p=t.passes,g=e._primitive,m,x,b;if(p.render){let T=n.length;for(m=0;m<T;++m)x=c[V6(m,T)],f&&(b=n[m],U6(e,b,t,o,r,x,s)),d&&(b=n[m].derivedCommands.tileset,U6(e,b,t,o,r,x,s));if(t.invertClassification){let A=g._commandsIgnoreShow,C=A.length;for(m=0;m<C;++m)x=c[m],b=A[m],U6(e,b,t,o,r,x,s)}}if(p.pick){let T=i.length,A;for(e._useFragmentCulling||(A=g._primitive._pickOffsets),m=0;m<T;++m){if(x=c[V6(m,T)],!e._useFragmentCulling){let C=A[V6(m,T)];x=c[C.index]}f&&(b=i[m],Ute(e,b,t,o,r,x)),d&&(b=i[m].derivedCommands.tileset,Ute(e,b,t,o,r,x))}}}fl.initializeTerrainHeights=function(){return ui.initialize()};fl.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!ui.initialized){fl.initializeTerrainHeights();return}let t=this,n=this._classificationPrimitiveOptions;if(!l(this._primitive)){let i=e.mapProjection.ellipsoid,o,r,s,a=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],c=a.length,u=new Array(c),f,d;for(f=0;f<c;++f){o=a[f],r=o.geometry;let x=PL(e,r);l(d)?l(x)&&re.union(d,x,d):d=re.clone(x);let b=o.id;if(l(b)&&l(x)){let T=ui.getBoundingSphere(x,i);this._boundingSpheresKeys.push(b),this._boundingSpheres.push(T)}s=r.constructor,!l(s)||l(s.createShadowVolume)}SMe(this,d,i);let p=e.verticalExaggeration,g=e.verticalExaggerationRelativeHeight;this._minHeight=Ir.getHeight(this._minTerrainHeight,p,g),this._maxHeight=Ir.getHeight(this._maxTerrainHeight,p,g);let m=fl._supportsMaterials(e.context);if(this._useFragmentCulling=m,m){let x,b=!0;for(f=0;f<c;++f)if(o=a[f],r=o.geometry,d=PL(e,r),$u.shouldUseSphericalCoordinates(d)){b=!1;break}for(f=0;f<c;++f){o=a[f],r=o.geometry,s=r.constructor;let T=PL(e,r),A=r.textureCoordinateRotationPoints;b?x=$u.getPlanarTextureCoordinateAttributes(T,A,i,e.mapProjection,this._maxHeight):x=$u.getSphericalExtentGeometryInstanceAttributes(T,A,i,e.mapProjection);let C=o.attributes;for(let S in C)C.hasOwnProperty(S)&&(x[S]=C[S]);u[f]=new vt({geometry:s.createShadowVolume(r,Vte(this),kte(this)),attributes:x,id:o.id})}}else for(f=0;f<c;++f)o=a[f],r=o.geometry,s=r.constructor,u[f]=new vt({geometry:s.createShadowVolume(r,Vte(this),kte(this)),attributes:o.attributes,id:o.id});n.geometryInstances=u,n.appearance=this.appearance,n._createBoundingVolumeFunction=function(x,b){vMe(t,x,b)},n._updateAndQueueCommandsFunction=function(x,b,T,A,C,S,v,D){wMe(t,b,T,A,C,S,v,D)},this._primitive=new fv(n)}this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowShadowVolume=this.debugShowShadowVolume,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};fl.prototype.getBoundingSphere=function(e){let t=this._boundingSpheresKeys.indexOf(e);if(t!==-1)return this._boundingSpheres[t]};fl.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};fl.prototype.isDestroyed=function(){return!1};fl.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};fl._supportsMaterials=function(e){return e.depthTexture};fl.supportsMaterials=function(e){return fl._supportsMaterials(e.frameState.context)};var dl=fl;function FT(){he.throwInstantiationError()}Object.defineProperties(FT.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError}});FT.prototype.getType=he.throwInstantiationError;FT.prototype.getValue=he.throwInstantiationError;FT.prototype.equals=he.throwInstantiationError;var DMe=new K;FT.getValue=function(e,t,n){let i;return l(e)||(e=K.now(DMe)),l(t)&&(i=t.getType(e),l(i))?((!l(n)||n.type!==i)&&(n=ji.fromType(i)),t.getValue(e,n.uniforms),n):((!l(n)||n.type!==ji.ColorType)&&(n=ji.fromType(ji.ColorType)),z.clone(z.WHITE,n.uniforms.color),n)};var nr=FT;function k0(e,t,n){this._primitives=t,this._orderedGroundPrimitives=n,this._primitive=void 0,this._outlinePrimitive=void 0,this._geometryUpdater=e,this._options=e._options,this._entity=e._entity,this._material=void 0}k0.prototype._isHidden=function(e,t,n){return!e.isShowing||!e.isAvailable(n)||!Y.getValueOrDefault(t.show,n,!0)};k0.prototype._setOptions=he.throwInstantiationError;k0.prototype.update=function(e){let t=this._geometryUpdater,n=t._onTerrain,i=this._primitives,o=this._orderedGroundPrimitives;n?o.remove(this._primitive):(i.removeAndDestroy(this._primitive),i.removeAndDestroy(this._outlinePrimitive),this._outlinePrimitive=void 0),this._primitive=void 0;let r=this._entity,s=r[this._geometryUpdater._geometryPropertyName];if(this._setOptions(r,s,e),this._isHidden(r,s,e))return;let a=this._geometryUpdater.shadowsProperty.getValue(e),c=this._options;if(!l(s.fill)||s.fill.getValue(e)){let u=t.fillMaterialProperty,f=u instanceof Gt,d,p=t._getIsClosed(c);if(f)d=new cn({closed:p,flat:n&&!t._supportsMaterialsforEntitiesOnTerrain});else{let g=nr.getValue(e,u,this._material);this._material=g,d=new oo({material:g,translucent:g.isTranslucent(),closed:p})}if(n)c.vertexFormat=cn.VERTEX_FORMAT,this._primitive=o.add(new dl({geometryInstances:this._geometryUpdater.createFillGeometryInstance(e),appearance:d,asynchronous:!1,shadows:a,classificationType:this._geometryUpdater.classificationTypeProperty.getValue(e)}),Y.getValueOrUndefined(this._geometryUpdater.zIndex,e));else{c.vertexFormat=d.vertexFormat;let g=this._geometryUpdater.createFillGeometryInstance(e);f&&(d.translucent=g.attributes.color.value[3]!==255),this._primitive=i.add(new In({geometryInstances:g,appearance:d,asynchronous:!1,shadows:a}))}}if(!n&&l(s.outline)&&s.outline.getValue(e)){let u=this._geometryUpdater.createOutlineGeometryInstance(e),f=Y.getValueOrDefault(s.outlineWidth,e,1);this._outlinePrimitive=i.add(new In({geometryInstances:u,appearance:new cn({flat:!0,translucent:u.attributes.color.value[3]!==255,renderState:{lineWidth:t._scene.clampLineWidth(f)}}),asynchronous:!1,shadows:a}))}};k0.prototype.getBoundingSphere=function(e){let t=this._entity,n=this._primitive,i=this._outlinePrimitive,o;return l(n)&&n.show&&n.ready&&(o=n.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),dt.DONE):l(i)&&i.show&&i.ready&&(o=i.getGeometryInstanceAttributes(t),l(o)&&l(o.boundingSphere))?(se.clone(o.boundingSphere,e),dt.DONE):l(n)&&!n.ready||l(i)&&!i.ready?dt.PENDING:dt.FAILED};k0.prototype.isDestroyed=function(){return!1};k0.prototype.destroy=function(){let e=this._primitives,t=this._orderedGroundPrimitives;this._geometryUpdater._onTerrain?t.remove(this._primitive):e.removeAndDestroy(this._primitive),e.removeAndDestroy(this._outlinePrimitive),ue(this)};var ni=k0;var IMe={NONE:0,GEODESIC:1,RHUMB:2},tn=Object.freeze(IMe);var zte=P.EPSILON10;function PMe(e,t,n,i){if(!l(e))return;n=y(n,!1);let o=l(i),r=e.length;if(r<2)return e;let s,a=e[0],c,u,f=0,d=-1;for(s=1;s<r;++s)c=e[s],t(a,c,zte)?(l(u)||(u=e.slice(0,s),f=s-1,d=0),o&&i.push(s)):(l(u)&&(u.push(c),f=s,o&&(d=i.length)),a=c);return n&&t(e[0],e[r-1],zte)&&(o&&(l(u)?i.splice(d,0,f):i.push(r-1)),l(u)?u.length-=1:u=e.slice(0,-1)),l(u)?u:e}var bo=PMe;function RMe(e){let t=e._uSquared,n=e._ellipsoid.maximumRadius,i=e._ellipsoid.minimumRadius,o=(n-i)/n,r=Math.cos(e._startHeading),s=Math.sin(e._startHeading),a=(1-o)*Math.tan(e._start.latitude),c=1/Math.sqrt(1+a*a),u=c*a,f=Math.atan2(a,r),d=c*s,p=d*d,g=1-p,m=Math.sqrt(g),x=t/4,b=x*x,T=b*x,A=b*b,C=1+x-3*b/4+5*T/4-175*A/64,S=1-x+15*b/8-35*T/8,v=1-3*x+35*b/4,D=1-5*x,O=C*f-S*Math.sin(2*f)*x/2-v*Math.sin(4*f)*b/16-D*Math.sin(6*f)*T/48-Math.sin(8*f)*5*A/512,R=e._constants;R.a=n,R.b=i,R.f=o,R.cosineHeading=r,R.sineHeading=s,R.tanU=a,R.cosineU=c,R.sineU=u,R.sigma=f,R.sineAlpha=d,R.sineSquaredAlpha=p,R.cosineSquaredAlpha=g,R.cosineAlpha=m,R.u2Over4=x,R.u4Over16=b,R.u6Over64=T,R.u8Over256=A,R.a0=C,R.a1=S,R.a2=v,R.a3=D,R.distanceRatio=O}function OMe(e,t){return e*t*(4+e*(4-3*t))/16}function Hte(e,t,n,i,o,r,s){let a=OMe(e,n);return(1-a)*e*t*(i+a*o*(s+a*r*(2*s*s-1)))}function MMe(e,t,n,i,o,r,s){let a=(t-n)/t,c=r-i,u=Math.atan((1-a)*Math.tan(o)),f=Math.atan((1-a)*Math.tan(s)),d=Math.cos(u),p=Math.sin(u),g=Math.cos(f),m=Math.sin(f),x=d*g,b=d*m,T=p*m,A=p*g,C=c,S=P.TWO_PI,v=Math.cos(C),D=Math.sin(C),O,R,M,L,_;do{v=Math.cos(C),D=Math.sin(C);let k=b-A*v;M=Math.sqrt(g*g*D*D+k*k),R=T+x*v,O=Math.atan2(M,R);let W;M===0?(W=0,L=1):(W=x*D/M,L=1-W*W),S=C,_=R-2*T/L,isFinite(_)||(_=0),C=c+Hte(a,W,L,O,M,R,_)}while(Math.abs(C-S)>P.EPSILON12);let E=L*(t*t-n*n)/(n*n),w=1+E*(4096+E*(E*(320-175*E)-768))/16384,I=E*(256+E*(E*(74-47*E)-128))/1024,N=_*_,B=I*M*(_+I*(R*(2*N-1)-I*_*(4*M*M-3)*(4*N-3)/6)/4),H=n*w*(O-B),V=Math.atan2(g*D,b-A*v),G=Math.atan2(d*D,b*v-A);e._distance=H,e._startHeading=V,e._endHeading=G,e._uSquared=E}var LMe=new h,z6=new h;function Gte(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,z6),LMe),r=h.normalize(i.cartographicToCartesian(n,z6),z6);MMe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude),e._start=fe.clone(t,e._start),e._end=fe.clone(n,e._end),e._start.height=0,e._end.height=0,RMe(e)}function dv(e,t,n){let i=y(n,ee.default);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._constants={},this._startHeading=void 0,this._endHeading=void 0,this._distance=void 0,this._uSquared=void 0,l(e)&&l(t)&&Gte(this,e,t,i)}Object.defineProperties(dv.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},startHeading:{get:function(){return this._startHeading}},endHeading:{get:function(){return this._endHeading}}});dv.prototype.setEndPoints=function(e,t){Gte(this,e,t,this._ellipsoid)};dv.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(this._distance*e,t)};dv.prototype.interpolateUsingSurfaceDistance=function(e,t){let n=this._constants,i=n.distanceRatio+e/n.b,o=Math.cos(2*i),r=Math.cos(4*i),s=Math.cos(6*i),a=Math.sin(2*i),c=Math.sin(4*i),u=Math.sin(6*i),f=Math.sin(8*i),d=i*i,p=i*d,g=n.u8Over256,m=n.u2Over4,x=n.u6Over64,b=n.u4Over16,T=2*p*g*o/3+i*(1-m+7*b/4-15*x/4+579*g/64-(b-15*x/4+187*g/16)*o-(5*x/4-115*g/16)*r-29*g*s/16)+(m/2-b+71*x/32-85*g/16)*a+(5*b/16-5*x/4+383*g/96)*c-d*((x-11*g/2)*a+5*g*c/2)+(29*x/96-29*g/16)*u+539*g*f/1536,A=Math.asin(Math.sin(T)*n.cosineAlpha),C=Math.atan(n.a/n.b*Math.tan(A));T=T-n.sigma;let S=Math.cos(2*n.sigma+T),v=Math.sin(T),D=Math.cos(T),O=n.cosineU*D,R=n.sineU*v,L=Math.atan2(v*n.sineHeading,O-R*n.cosineHeading)-Hte(n.f,n.sineAlpha,n.cosineSquaredAlpha,T,v,D,S);return l(t)?(t.longitude=this._start.longitude+L,t.latitude=C,t.height=0,t):new fe(this._start.longitude+L,C,0)};var W_=dv;function G6(e,t,n){if(e===0)return t*n;let i=e*e,o=i*i,r=o*i,s=r*i,a=s*i,c=a*i,u=n,f=Math.sin(2*u),d=Math.sin(4*u),p=Math.sin(6*u),g=Math.sin(8*u),m=Math.sin(10*u),x=Math.sin(12*u);return t*((1-i/4-3*o/64-5*r/256-175*s/16384-441*a/65536-4851*c/1048576)*u-(3*i/8+3*o/32+45*r/1024+105*s/4096+2205*a/131072+6237*c/524288)*f+(15*o/256+45*r/1024+525*s/16384+1575*a/65536+155925*c/8388608)*d-(35*r/3072+175*s/12288+3675*a/262144+13475*c/1048576)*p+(315*s/131072+2205*a/524288+43659*c/8388608)*g-(693*a/1310720+6237*c/5242880)*m+1001*c/8388608*x)}function NMe(e,t,n){let i=e/n;if(t===0)return i;let o=i*i,r=o*i,s=r*i,a=t,c=a*a,u=c*c,f=u*c,d=f*c,p=d*c,g=p*c,m=Math.sin(2*i),x=Math.cos(2*i),b=Math.sin(4*i),T=Math.cos(4*i),A=Math.sin(6*i),C=Math.cos(6*i),S=Math.sin(8*i),v=Math.cos(8*i),D=Math.sin(10*i),O=Math.cos(10*i),R=Math.sin(12*i);return i+i*c/4+7*i*u/64+15*i*f/256+579*i*d/16384+1515*i*p/65536+16837*i*g/1048576+(3*i*u/16+45*i*f/256-i*(32*o-561)*d/4096-i*(232*o-1677)*p/16384+i*(399985-90560*o+512*s)*g/5242880)*x+(21*i*f/256+483*i*d/4096-i*(224*o-1969)*p/16384-i*(33152*o-112599)*g/1048576)*T+(151*i*d/4096+4681*i*p/65536+1479*i*g/16384-453*r*g/32768)*C+(1097*i*p/65536+42783*i*g/1048576)*v+8011*i*g/1048576*O+(3*c/8+3*u/16+213*f/2048-3*o*f/64+255*d/4096-33*o*d/512+20861*p/524288-33*o*p/512+s*p/1024+28273*g/1048576-471*o*g/8192+9*s*g/4096)*m+(21*u/256+21*f/256+533*d/8192-21*o*d/512+197*p/4096-315*o*p/4096+584039*g/16777216-12517*o*g/131072+7*s*g/2048)*b+(151*f/6144+151*d/4096+5019*p/131072-453*o*p/16384+26965*g/786432-8607*o*g/131072)*A+(1097*d/131072+1097*p/65536+225797*g/10485760-1097*o*g/65536)*S+(8011*p/2621440+8011*g/1048576)*D+293393*g/251658240*R}function BT(e,t){if(e===0)return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)));let n=e*Math.sin(t);return Math.log(Math.tan(.5*(P.PI_OVER_TWO+t)))-e/2*Math.log((1+n)/(1-n))}function FMe(e,t,n,i,o){let r=BT(e._ellipticity,n),s=BT(e._ellipticity,o);return Math.atan2(P.negativePiToPi(i-t),s-r)}function BMe(e,t,n,i,o,r,s){let a=e._heading,c=r-i,u=0;if(P.equalsEpsilon(Math.abs(a),P.PI_OVER_TWO,P.EPSILON8))if(t===n)u=t*Math.cos(o)*P.negativePiToPi(c);else{let f=Math.sin(o);u=t*Math.cos(o)*P.negativePiToPi(c)/Math.sqrt(1-e._ellipticitySquared*f*f)}else{let f=G6(e._ellipticity,t,o);u=(G6(e._ellipticity,t,s)-f)/Math.cos(a)}return Math.abs(u)}var kMe=new h,H6=new h;function Wte(e,t,n,i){let o=h.normalize(i.cartographicToCartesian(t,H6),kMe),r=h.normalize(i.cartographicToCartesian(n,H6),H6),s=i.maximumRadius,a=i.minimumRadius,c=s*s,u=a*a;e._ellipticitySquared=(c-u)/c,e._ellipticity=Math.sqrt(e._ellipticitySquared),e._start=fe.clone(t,e._start),e._start.height=0,e._end=fe.clone(n,e._end),e._end.height=0,e._heading=FMe(e,t.longitude,t.latitude,n.longitude,n.latitude),e._distance=BMe(e,i.maximumRadius,i.minimumRadius,t.longitude,t.latitude,n.longitude,n.latitude)}function jte(e,t,n,i,o,r){if(n===0)return fe.clone(e,r);let s=o*o,a,c,u;if(Math.abs(P.PI_OVER_TWO-Math.abs(t))>P.EPSILON8){let f=G6(o,i,e.latitude),d=n*Math.cos(t),p=f+d;if(c=NMe(p,o,i),Math.abs(t)<P.EPSILON10)a=P.negativePiToPi(e.longitude);else{let g=BT(o,e.latitude),m=BT(o,c);u=Math.tan(t)*(m-g),a=P.negativePiToPi(e.longitude+u)}}else{c=e.latitude;let f;if(o===0)f=i*Math.cos(e.latitude);else{let d=Math.sin(e.latitude);f=i*Math.cos(e.latitude)/Math.sqrt(1-s*d*d)}u=n/f,t>0?a=P.negativePiToPi(e.longitude+u):a=P.negativePiToPi(e.longitude-u)}return l(r)?(r.longitude=a,r.latitude=c,r.height=0,r):new fe(a,c,0)}function rp(e,t,n){let i=y(n,ee.default);this._ellipsoid=i,this._start=new fe,this._end=new fe,this._heading=void 0,this._distance=void 0,this._ellipticity=void 0,this._ellipticitySquared=void 0,l(e)&&l(t)&&Wte(this,e,t,i)}Object.defineProperties(rp.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},surfaceDistance:{get:function(){return this._distance}},start:{get:function(){return this._start}},end:{get:function(){return this._end}},heading:{get:function(){return this._heading}}});rp.fromStartHeadingDistance=function(e,t,n,i,o){let r=y(i,ee.default),s=r.maximumRadius,a=r.minimumRadius,c=s*s,u=a*a,f=Math.sqrt((c-u)/c);t=P.negativePiToPi(t);let d=jte(e,t,n,r.maximumRadius,f);return!l(o)||l(i)&&!i.equals(o.ellipsoid)?new rp(e,d,r):(o.setEndPoints(e,d),o)};rp.prototype.setEndPoints=function(e,t){Wte(this,e,t,this._ellipsoid)};rp.prototype.interpolateUsingFraction=function(e,t){return this.interpolateUsingSurfaceDistance(e*this._distance,t)};rp.prototype.interpolateUsingSurfaceDistance=function(e,t){return jte(this._start,this._heading,e,this._ellipsoid.maximumRadius,this._ellipticity,t)};rp.prototype.findIntersectionWithLongitude=function(e,t){let n=this._ellipticity,i=this._heading,o=Math.abs(i),r=this._start;if(e=P.negativePiToPi(e),P.equalsEpsilon(Math.abs(e),Math.PI,P.EPSILON14)&&(e=P.sign(r.longitude)*Math.PI),l(t)||(t=new fe),Math.abs(P.PI_OVER_TWO-o)<=P.EPSILON8)return t.longitude=e,t.latitude=r.latitude,t.height=0,t;if(P.equalsEpsilon(Math.abs(P.PI_OVER_TWO-o),P.PI_OVER_TWO,P.EPSILON8))return P.equalsEpsilon(e,r.longitude,P.EPSILON12)?void 0:(t.longitude=e,t.latitude=P.PI_OVER_TWO*P.sign(P.PI_OVER_TWO-i),t.height=0,t);let s=r.latitude,a=n*Math.sin(s),c=Math.tan(.5*(P.PI_OVER_TWO+s))*Math.exp((e-r.longitude)/Math.tan(i)),u=(1+a)/(1-a),f=r.latitude,d;do{d=f;let p=n*Math.sin(d),g=(1+p)/(1-p);f=2*Math.atan(c*Math.pow(g/u,n/2))-P.PI_OVER_TWO}while(!P.equalsEpsilon(f,d,P.EPSILON12));return t.longitude=e,t.latitude=f,t.height=0,t};rp.prototype.findIntersectionWithLatitude=function(e,t){let n=this._ellipticity,i=this._heading,o=this._start;if(P.equalsEpsilon(Math.abs(i),P.PI_OVER_TWO,P.EPSILON8))return;let r=BT(n,o.latitude),s=BT(n,e),a=Math.tan(i)*(s-r),c=P.negativePiToPi(o.longitude+a);return l(t)?(t.longitude=c,t.latitude=e,t.height=0,t):new fe(c,e,0)};var ja=rp;var $6=[wi,Ii],VMe=$6.length,fne=Math.cos(P.toRadians(30)),qte=Math.cos(P.toRadians(150)),dne=0,hne=1e3;function q_(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions;this.width=y(e.width,1),this._positions=t,this.granularity=y(e.granularity,9999),this.loop=y(e.loop,!1),this.arcType=y(e.arcType,tn.GEODESIC),this._ellipsoid=ee.default,this._projectionIndex=0,this._workerName="createGroundPolylineGeometry",this._scene3DOnly=!1}Object.defineProperties(q_.prototype,{packedLength:{get:function(){return 1+this._positions.length*3+1+1+1+ee.packedLength+1+1}}});q_.setProjectionAndEllipsoid=function(e,t){let n=0;for(let i=0;i<VMe;i++)if(t instanceof $6[i]){n=i;break}e._projectionIndex=n,e._ellipsoid=t.ellipsoid};var UMe=new h,Yte=new h,Xte=new h;function Z6(e,t,n,i,o){let r=vc(i,e,0,UMe),s=vc(i,e,n,Yte),a=vc(i,t,0,Xte),c=sp(s,r,Yte),u=sp(a,r,Xte);return h.cross(u,c,o),h.normalize(o,o)}var zMe=new fe,HMe=new h,GMe=new h,WMe=new h;function W6(e,t,n,i,o,r,s,a,c,u,f){if(o===0)return;let d;r===tn.GEODESIC?d=new W_(e,t,s):r===tn.RHUMB&&(d=new ja(e,t,s));let p=d.surfaceDistance;if(p<o)return;let g=Z6(e,t,i,s,WMe),m=Math.ceil(p/o),x=p/m,b=x,T=m-1,A=a.length;for(let C=0;C<T;C++){let S=d.interpolateUsingSurfaceDistance(b,zMe),v=vc(s,S,n,HMe),D=vc(s,S,i,GMe);h.pack(g,a,A),h.pack(v,c,A),h.pack(D,u,A),f.push(S.latitude),f.push(S.longitude),A+=3,b+=x}}var j6=new fe;function vc(e,t,n,i){return fe.clone(t,j6),j6.height=n,fe.toCartesian(j6,e,i)}q_.pack=function(e,t,n){let i=y(n,0),o=e._positions,r=o.length;t[i++]=r;for(let s=0;s<r;++s){let a=o[s];h.pack(a,t,i),i+=3}return t[i++]=e.granularity,t[i++]=e.loop?1:0,t[i++]=e.arcType,ee.pack(e._ellipsoid,t,i),i+=ee.packedLength,t[i++]=e._projectionIndex,t[i++]=e._scene3DOnly?1:0,t};q_.unpack=function(e,t,n){let i=y(t,0),o=e[i++],r=new Array(o);for(let p=0;p<o;p++)r[p]=h.unpack(e,i),i+=3;let s=e[i++],a=e[i++]===1,c=e[i++],u=ee.unpack(e,i);i+=ee.packedLength;let f=e[i++],d=e[i++]===1;return l(n)||(n=new q_({positions:r})),n._positions=r,n.granularity=s,n.loop=a,n.arcType=c,n._ellipsoid=u,n._projectionIndex=f,n._scene3DOnly=d,n};function sp(e,t,n){return h.subtract(e,t,n),h.normalize(n,n),n}function Kte(e,t,n,i){return i=sp(e,t,i),i=h.cross(i,n,i),i=h.normalize(i,i),i=h.cross(n,i,i),i}var jMe=new h,qMe=new h,YMe=new h,mne=new h,XMe=0,KMe=-1;function q6(e,t,n,i,o){let r=sp(n,t,mne),s=Kte(e,t,r,jMe),a=Kte(i,t,r,qMe);if(P.equalsEpsilon(h.dot(s,a),KMe,P.EPSILON5))return o=h.cross(r,s,o),o=h.normalize(o,o),o;o=h.add(a,s,o),o=h.normalize(o,o);let c=h.cross(r,o,YMe);return h.dot(a,c)<XMe&&(o=h.negate(o,o)),o}var LL=an.fromPointNormal(h.ZERO,h.UNIT_Y),ZMe=new h,$Me=new h,QMe=new h,JMe=new h,eLe=new h,RL=new h,OL=new fe,Zte=new fe,$te=new fe;q_.createGeometry=function(e){let t=!e._scene3DOnly,n=e.loop,i=e._ellipsoid,o=e.granularity,r=e.arcType,s=new $6[e._projectionIndex](i),a=dne,c=hne,u,f,d=e._positions,p=d.length;p===2&&(n=!1);let g,m,x,b,T=new ja(void 0,void 0,i),A,C,S,v=[d[0]];for(f=0;f<p-1;f++)g=d[f],m=d[f+1],A=$n.lineSegmentPlane(g,m,LL,RL),l(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===tn.GEODESIC?v.push(h.clone(A)):e.arcType===tn.RHUMB&&(S=i.cartesianToCartographic(A,OL).longitude,x=i.cartesianToCartographic(g,OL),b=i.cartesianToCartographic(m,Zte),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,$te),A=i.cartographicToCartesian(C,RL),l(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&v.push(h.clone(A)))),v.push(m);n&&(g=d[p-1],m=d[0],A=$n.lineSegmentPlane(g,m,LL,RL),l(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&(e.arcType===tn.GEODESIC?v.push(h.clone(A)):e.arcType===tn.RHUMB&&(S=i.cartesianToCartographic(A,OL).longitude,x=i.cartesianToCartographic(g,OL),b=i.cartesianToCartographic(m,Zte),T.setEndPoints(x,b),C=T.findIntersectionWithLongitude(S,$te),A=i.cartographicToCartesian(C,RL),l(A)&&!h.equalsEpsilon(A,g,P.EPSILON7)&&!h.equalsEpsilon(A,m,P.EPSILON7)&&v.push(h.clone(A)))));let D=v.length,O=new Array(D);for(f=0;f<D;f++){let q=fe.fromCartesian(v[f],i);q.height=0,O[f]=q}if(O=bo(O,fe.equalsEpsilon),D=O.length,D<2)return;let R=[],M=[],L=[],_=[],E=ZMe,w=$Me,I=QMe,N=JMe,B=eLe,H=O[0],V=O[1],G=O[D-1];for(E=vc(i,G,a,E),N=vc(i,V,a,N),w=vc(i,H,a,w),I=vc(i,H,c,I),n?B=q6(E,w,I,N,B):B=Z6(H,V,c,i,B),h.pack(B,M,0),h.pack(w,L,0),h.pack(I,_,0),R.push(H.latitude),R.push(H.longitude),W6(H,V,a,c,o,r,i,M,L,_,R),f=1;f<D-1;++f){E=h.clone(w,E),w=h.clone(N,w);let q=O[f];vc(i,q,c,I),vc(i,O[f+1],a,N),q6(E,w,I,N,B),u=M.length,h.pack(B,M,u),h.pack(w,L,u),h.pack(I,_,u),R.push(q.latitude),R.push(q.longitude),W6(O[f],O[f+1],a,c,o,r,i,M,L,_,R)}let k=O[D-1],W=O[D-2];if(w=vc(i,k,a,w),I=vc(i,k,c,I),n){let q=O[0];E=vc(i,W,a,E),N=vc(i,q,a,N),B=q6(E,w,I,N,B)}else B=Z6(W,k,c,i,B);if(u=M.length,h.pack(B,M,u),h.pack(w,L,u),h.pack(I,_,u),R.push(k.latitude),R.push(k.longitude),n){for(W6(k,H,a,c,o,r,i,M,L,_,R),u=M.length,f=0;f<3;++f)M[u+f]=M[f],L[u+f]=L[f],_[u+f]=_[f];R.push(H.latitude),R.push(H.longitude)}return vLe(n,s,L,_,M,R,t)};var tLe=new h,nLe=new $,iLe=new Me;function Qte(e,t,n,i){let o=sp(n,t,tLe),r=h.dot(o,e);if(r>fne||r<qte){let s=sp(i,n,mne),a=r<qte?P.PI_OVER_TWO:-P.PI_OVER_TWO,c=Me.fromAxisAngle(s,a,iLe),u=$.fromQuaternion(c,nLe);return $.multiplyByVector(u,e,e),!0}return!1}var Jte=new fe,oLe=new h,ene=new h;function hv(e,t,n,i,o){let r=fe.toCartesian(t,e._ellipsoid,oLe),s=h.add(r,n,ene),a=!1,c=e._ellipsoid,u=c.cartesianToCartographic(s,Jte);Math.abs(t.longitude-u.longitude)>P.PI_OVER_TWO&&(a=!0,s=h.subtract(r,n,ene),u=c.cartesianToCartographic(s,Jte)),u.height=0;let f=e.project(u,o);return o=h.subtract(f,i,o),o.z=0,o=h.normalize(o,o),a&&h.negate(o,o),o}var rLe=new h,tne=new h;function nne(e,t,n,i,o,r){let s=h.subtract(t,e,rLe);h.normalize(s,s);let a=n-dne,c=h.multiplyByScalar(s,a,tne);h.add(e,c,o);let u=i-hne;c=h.multiplyByScalar(s,u,tne),h.add(t,c,r)}var sLe=new h;function ML(e,t){let n=an.getPointDistance(LL,e),i=an.getPointDistance(LL,t),o=sLe;P.equalsEpsilon(n,0,P.EPSILON2)?(o=sp(t,e,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(e,o,e)):P.equalsEpsilon(i,0,P.EPSILON2)&&(o=sp(e,t,o),h.multiplyByScalar(o,P.EPSILON2,o),h.add(t,o,t))}function aLe(e,t){let n=Math.abs(e.longitude),i=Math.abs(t.longitude);if(P.equalsEpsilon(n,P.PI,P.EPSILON11)){let o=P.sign(t.longitude);return e.longitude=o*(n-P.EPSILON11),1}else if(P.equalsEpsilon(i,P.PI,P.EPSILON11)){let o=P.sign(e.longitude);return t.longitude=o*(i-P.EPSILON11),2}return 0}var pne=new fe,_ne=new fe,ine=new h,Y6=new h,one=new h,rne=new h,cLe=new h,sne=new h,lLe=[pne,_ne],uLe=new re,fLe=new h,dLe=new h,hLe=new h,mLe=new h,pLe=new h,_Le=new h,X6=new h,K6=new h,gLe=new h,yLe=new h,xLe=new h,ane=new h,bLe=new h,TLe=new h,ALe=new Hn,CLe=new Hn,cne=new h,ELe=new h,lne=new h,SLe=[new se,new se],gne=[0,2,1,0,3,2,0,7,3,0,4,7,0,5,4,0,1,5,5,7,4,5,6,7,5,2,6,5,1,2,3,6,2,3,7,6],une=gne.length;function vLe(e,t,n,i,o,r,s){let a,c,u=t._ellipsoid,f=n.length/3-1,d=f*8,p=d*4,g=f*36,m=d>65535?new Uint32Array(g):new Uint16Array(g),x=new Float64Array(d*3),b=new Float32Array(p),T=new Float32Array(p),A=new Float32Array(p),C=new Float32Array(p),S=new Float32Array(p),v,D,O,R;s&&(v=new Float32Array(p),D=new Float32Array(p),O=new Float32Array(p),R=new Float32Array(d*2));let M=r.length/2,L=0,_=pne;_.height=0;let E=_ne;E.height=0;let w=ine,I=Y6;if(s)for(c=0,a=1;a<M;a++)_.latitude=r[c],_.longitude=r[c+1],E.latitude=r[c+2],E.longitude=r[c+3],w=t.project(_,w),I=t.project(E,I),L+=h.distance(w,I),c+=2;let N=i.length/3;I=h.unpack(i,0,I);let B=0;for(c=3,a=1;a<N;a++)w=h.clone(I,w),I=h.unpack(i,c,I),B+=h.distance(w,I),c+=3;let H;c=3;let V=0,G=0,k=0,W=0,q=!1,J=h.unpack(n,0,rne),j=h.unpack(i,0,Y6),Z=h.unpack(o,0,sne);if(e){let Ce=h.unpack(n,n.length-6,one);Qte(Z,Ce,J,j)&&(Z=h.negate(Z,Z))}let Q=0,de=0,ye=0;for(a=0;a<f;a++){let Ce=h.clone(J,one),ke=h.clone(j,ine),He=h.clone(Z,cLe);q&&(He=h.negate(He,He)),J=h.unpack(n,c,rne),j=h.unpack(i,c,Y6),Z=h.unpack(o,c,sne),q=Qte(Z,Ce,J,j),_.latitude=r[V],_.longitude=r[V+1],E.latitude=r[V+2],E.longitude=r[V+3];let rt,Lt,Tt,we;if(s){let Yn=aLe(_,E);rt=t.project(_,pLe),Lt=t.project(E,_Le);let hs=sp(Lt,rt,cne);hs.y=Math.abs(hs.y),Tt=X6,we=K6,Yn===0||h.dot(hs,h.UNIT_Y)>fne?(Tt=hv(t,_,He,rt,X6),we=hv(t,E,Z,Lt,K6)):Yn===1?(we=hv(t,E,Z,Lt,K6),Tt.x=0,Tt.y=P.sign(_.longitude-Math.abs(E.longitude)),Tt.z=0):(Tt=hv(t,_,He,rt,X6),we.x=0,we.y=P.sign(_.longitude-E.longitude),we.z=0)}let Xe=h.distance(ke,j),Qe=Hn.fromCartesian(Ce,ALe),We=h.subtract(J,Ce,gLe),Ut=h.normalize(We,ane),Te=h.subtract(ke,Ce,yLe);Te=h.normalize(Te,Te);let Ae=h.cross(Ut,Te,ane);Ae=h.normalize(Ae,Ae);let st=h.cross(Te,He,bLe);st=h.normalize(st,st);let Fi=h.subtract(j,J,xLe);Fi=h.normalize(Fi,Fi);let ut=h.cross(Z,Fi,TLe);ut=h.normalize(ut,ut);let _o=Xe/B,cr=Q/B,mc=0,Tr,Qr,Be,lt=0,Ye=0;if(s){mc=h.distance(rt,Lt),Tr=Hn.fromCartesian(rt,CLe),Qr=h.subtract(Lt,rt,cne),Be=h.normalize(Qr,ELe);let Yn=Be.x;Be.x=Be.y,Be.y=-Yn,lt=mc/L,Ye=de/L}for(H=0;H<8;H++){let Yn=W+H*4,hs=G+H*2,Ar=Yn+3,el=H<4?1:-1,go=H===2||H===3||H===6||H===7?1:-1;h.pack(Qe.high,b,Yn),b[Ar]=We.x,h.pack(Qe.low,T,Yn),T[Ar]=We.y,h.pack(st,A,Yn),A[Ar]=We.z,h.pack(ut,C,Yn),C[Ar]=_o*el,h.pack(Ae,S,Yn);let kr=cr*go;kr===0&&go<0&&(kr=9),S[Ar]=kr,s&&(v[Yn]=Tr.high.x,v[Yn+1]=Tr.high.y,v[Yn+2]=Tr.low.x,v[Yn+3]=Tr.low.y,O[Yn]=-Tt.y,O[Yn+1]=Tt.x,O[Yn+2]=we.y,O[Yn+3]=-we.x,D[Yn]=Qr.x,D[Yn+1]=Qr.y,D[Yn+2]=Be.x,D[Yn+3]=Be.y,R[hs]=lt*el,kr=Ye*go,kr===0&&go<0&&(kr=9),R[hs+1]=kr)}let $e=hLe,ht=mLe,Dt=fLe,pn=dLe,fo=re.fromCartographicArray(lLe,uLe),er=ui.getMinimumMaximumHeights(fo,u),Oa=er.minimumTerrainHeight,Ma=er.maximumTerrainHeight;ye+=Math.abs(Oa),ye+=Math.abs(Ma),nne(Ce,ke,Oa,Ma,$e,Dt),nne(J,j,Oa,Ma,ht,pn);let Jr=h.multiplyByScalar(Ae,P.EPSILON5,lne);h.add($e,Jr,$e),h.add(ht,Jr,ht),h.add(Dt,Jr,Dt),h.add(pn,Jr,pn),ML($e,ht),ML(Dt,pn),h.pack($e,x,k),h.pack(ht,x,k+3),h.pack(pn,x,k+6),h.pack(Dt,x,k+9),Jr=h.multiplyByScalar(Ae,-2*P.EPSILON5,lne),h.add($e,Jr,$e),h.add(ht,Jr,ht),h.add(Dt,Jr,Dt),h.add(pn,Jr,pn),ML($e,ht),ML(Dt,pn),h.pack($e,x,k+12),h.pack(ht,x,k+15),h.pack(pn,x,k+18),h.pack(Dt,x,k+21),V+=2,c+=3,G+=16,k+=24,W+=32,Q+=Xe,de+=mc}c=0;let ae=0;for(a=0;a<f;a++){for(H=0;H<une;H++)m[c+H]=gne[H]+ae;ae+=8,c+=une}let _e=SLe;se.fromVertices(n,h.ZERO,3,_e[0]),se.fromVertices(i,h.ZERO,3,_e[1]);let xe=se.fromBoundingSpheres(_e);xe.radius+=ye/(f*2);let Ie={position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,normalize:!1,values:x}),startHiAndForwardOffsetX:j_(b),startLoAndForwardOffsetY:j_(T),startNormalAndForwardOffsetZ:j_(A),endNormalAndTextureCoordinateNormalizationX:j_(C),rightNormalAndTextureCoordinateNormalizationY:j_(S)};return s&&(Ie.startHiLo2D=j_(v),Ie.offsetAndRight2D=j_(D),Ie.startEndNormals2D=j_(O),Ie.texcoordNormalization2D=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,normalize:!1,values:R})),new ft({attributes:Ie,indices:m,boundingSphere:xe})}function j_(e){return new Se({componentDatatype:X.FLOAT,componentsPerAttribute:4,normalize:!1,values:e})}q_._projectNormal=hv;var kT=q_;var NL=`in vec4 v_startPlaneNormalEcAndHalfWidth; +in vec4 v_endPlaneNormalEcAndBatchId; +in vec4 v_rightPlaneEC; // Technically can compute distance for this here +in vec4 v_endEcAndStartEcX; +in vec4 v_texcoordNormalizationAndStartEcYZ; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#endif + +void main(void) +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + vec3 ecStart = vec3(v_endEcAndStartEcX.w, v_texcoordNormalizationAndStartEcYZ.zw); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_startPlaneNormalEcAndHalfWidth.w * czm_metersPerPixel(eyeCoordinate); + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneNormalEcAndHalfWidth.xyz, -dot(ecStart, v_startPlaneNormalEcAndHalfWidth.xyz), eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneNormalEcAndBatchId.xyz, -dot(v_endEcAndStartEcX.xyz, v_endPlaneNormalEcAndBatchId.xyz), eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(1.0, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + // Check distance of the eye coordinate against start and end planes with normals in the right plane. + // For computing unskewed lengthwise texture coordinate. + // Can also be used for clipping extremely pointy miters, but in practice unnecessary because of miter breaking. + + // aligned plane: cross the right plane normal with miter plane normal, then cross the result with right again to point it more "forward" + vec3 alignedPlaneNormal; + + // start aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_startPlaneNormalEcAndHalfWidth.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromStart = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, ecStart), eyeCoordinate.xyz); + + // end aligned plane + alignedPlaneNormal = cross(v_rightPlaneEC.xyz, v_endPlaneNormalEcAndBatchId.xyz); + alignedPlaneNormal = normalize(cross(alignedPlaneNormal, v_rightPlaneEC.xyz)); + distanceFromEnd = czm_planeDistance(alignedPlaneNormal, -dot(alignedPlaneNormal, v_endEcAndStartEcX.xyz), eyeCoordinate.xyz); + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Clamp - distance to aligned planes may be negative due to mitering, + // so fragment texture coordinate might be out-of-bounds. + float s = clamp(distanceFromStart / (distanceFromStart + distanceFromEnd), 0.0, 1.0); + s = (s * v_texcoordNormalizationAndStartEcYZ.x) + v_texcoordNormalizationAndStartEcYZ.y; + float t = (widthwiseDistance + halfMaxWidth) / (2.0 * halfMaxWidth); + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, t); + materialInput.str = vec3(s, t, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR + + // Premultiply alpha. Required for classification primitives on translucent globe. + out_FragColor.rgb *= out_FragColor.a; + + czm_writeDepthClamp(); +} +`;var FL=`in vec3 v_forwardDirectionEC; +in vec3 v_texcoordNormalizationAndHalfWidth; +in float v_batchId; + +#ifdef PER_INSTANCE_COLOR +in vec4 v_color; +#else +in vec2 v_alignedPlaneDistances; +in float v_texcoordT; +#endif + +float rayPlaneDistanceUnsafe(vec3 origin, vec3 direction, vec3 planeNormal, float planeDistance) { + // We don't expect the ray to ever be parallel to the plane + return (-planeDistance - dot(planeNormal, origin)) / dot(planeNormal, direction); +} + +void main(void) +{ + vec4 eyeCoordinate = gl_FragCoord; + eyeCoordinate /= eyeCoordinate.w; + +#ifdef PER_INSTANCE_COLOR + out_FragColor = czm_gammaCorrect(v_color); +#else // PER_INSTANCE_COLOR + // Use distances for planes aligned with segment to prevent skew in dashing + float distanceFromStart = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, -v_forwardDirectionEC, v_forwardDirectionEC.xyz, v_alignedPlaneDistances.x); + float distanceFromEnd = rayPlaneDistanceUnsafe(eyeCoordinate.xyz, v_forwardDirectionEC, -v_forwardDirectionEC.xyz, v_alignedPlaneDistances.y); + + // Clamp - distance to aligned planes may be negative due to mitering + distanceFromStart = max(0.0, distanceFromStart); + distanceFromEnd = max(0.0, distanceFromEnd); + + float s = distanceFromStart / (distanceFromStart + distanceFromEnd); + s = (s * v_texcoordNormalizationAndHalfWidth.x) + v_texcoordNormalizationAndHalfWidth.y; + + czm_materialInput materialInput; + + materialInput.s = s; + materialInput.st = vec2(s, v_texcoordT); + materialInput.str = vec3(s, v_texcoordT, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#endif // PER_INSTANCE_COLOR +} +`;var BL=`in vec3 position3DHigh; +in vec3 position3DLow; + +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; + +in float batchId; + +out vec3 v_forwardDirectionEC; +out vec3 v_texcoordNormalizationAndHalfWidth; +out float v_batchId; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#else +out vec2 v_alignedPlaneDistances; +out float v_texcoordT; +#endif + +// Morphing planes using SLERP or NLERP doesn't seem to work, so instead draw the material directly on the shadow volume. +// Morph views are from very far away and aren't meant to be used precisely, so this should be sufficient. +void main() +{ + v_batchId = batchId; + + // Start position + vec4 posRelativeToEye2D = czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw)); + vec4 posRelativeToEye3D = czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz); + vec4 posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + vec3 posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + vec3 posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 startEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + + // Start plane + vec4 startPlane2D; + vec4 startPlane3D; + startPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlane3D.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlane2D.w = -dot(startPlane2D.xyz, posEc2D); + startPlane3D.w = -dot(startPlane3D.xyz, posEc3D); + + // Right plane + vec4 rightPlane2D; + vec4 rightPlane3D; + rightPlane2D.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + rightPlane3D.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + rightPlane2D.w = -dot(rightPlane2D.xyz, posEc2D); + rightPlane3D.w = -dot(rightPlane3D.xyz, posEc3D); + + // End position + posRelativeToEye2D = posRelativeToEye2D + vec4(0.0, offsetAndRight2D.xy, 0.0); + posRelativeToEye3D = posRelativeToEye3D + vec4(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w, 0.0); + posRelativeToEye = czm_columbusViewMorph(posRelativeToEye2D, posRelativeToEye3D, czm_morphTime); + posEc2D = (czm_modelViewRelativeToEye * posRelativeToEye2D).xyz; + posEc3D = (czm_modelViewRelativeToEye * posRelativeToEye3D).xyz; + vec3 endEC = (czm_modelViewRelativeToEye * posRelativeToEye).xyz; + vec3 forwardEc3D = czm_normal * normalize(vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w)); + vec3 forwardEc2D = czm_normal * normalize(vec3(0.0, offsetAndRight2D.xy)); + + // End plane + vec4 endPlane2D; + vec4 endPlane3D; + endPlane2D.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlane3D.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlane2D.w = -dot(endPlane2D.xyz, posEc2D); + endPlane3D.w = -dot(endPlane3D.xyz, posEc3D); + + // Forward direction + v_forwardDirectionEC = normalize(endEC - startEC); + + vec2 cleanTexcoordNormalization2D; + cleanTexcoordNormalization2D.x = abs(texcoordNormalization2D.x); + cleanTexcoordNormalization2D.y = czm_branchFreeTernary(texcoordNormalization2D.y > 1.0, 0.0, abs(texcoordNormalization2D.y)); + vec2 cleanTexcoordNormalization3D; + cleanTexcoordNormalization3D.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + cleanTexcoordNormalization3D.y = rightNormalAndTextureCoordinateNormalizationY.w; + cleanTexcoordNormalization3D.y = czm_branchFreeTernary(cleanTexcoordNormalization3D.y > 1.0, 0.0, abs(cleanTexcoordNormalization3D.y)); + + v_texcoordNormalizationAndHalfWidth.xy = mix(cleanTexcoordNormalization2D, cleanTexcoordNormalization3D, czm_morphTime); + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#else // PER_INSTANCE_COLOR + // For computing texture coordinates + + v_alignedPlaneDistances.x = -dot(v_forwardDirectionEC, startEC); + v_alignedPlaneDistances.y = -dot(-v_forwardDirectionEC, endEC); +#endif // PER_INSTANCE_COLOR + +#ifdef WIDTH_VARYING + float width = czm_batchTable_width(batchId); + float halfWidth = width * 0.5; + v_width = width; + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#else + float halfWidth = 0.5 * czm_batchTable_width(batchId); + v_texcoordNormalizationAndHalfWidth.z = halfWidth; +#endif + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + // Since this is morphing, compute both 3D and 2D positions and then blend. + + // ****** 3D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc3D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position3DHigh, position3DLow); // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlane3D, positionEc3D.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlane3D, positionEc3D.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane3D.xyz, endPlane3D.xyz); + vec3 upOrDown = normalize(cross(rightPlane3D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + vec3 geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc3D)); + geodeticSurfaceNormal *= float(0.0 <= rightNormalAndTextureCoordinateNormalizationY.w && rightNormalAndTextureCoordinateNormalizationY.w <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc3D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc3D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc3D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // ****** 2D ****** + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEc2D = czm_modelViewRelativeToEye * czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); // w = 1.0, see czm_computePosition + absStartPlaneDistance = abs(czm_planeDistance(startPlane2D, positionEc2D.xyz)); + absEndPlaneDistance = abs(czm_planeDistance(endPlane2D, positionEc2D.xyz)); + planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlane2D.xyz, endPlane2D.xyz); + upOrDown = normalize(cross(rightPlane2D.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Nudge the top vertex upwards to prevent flickering + geodeticSurfaceNormal = normalize(cross(normalEC, forwardEc2D)); + geodeticSurfaceNormal *= float(0.0 <= texcoordNormalization2D.y && texcoordNormalization2D.y <= 1.0); + geodeticSurfaceNormal *= MAX_TERRAIN_HEIGHT; + positionEc2D.xyz += geodeticSurfaceNormal; + + // Determine if this vertex is on the "left" or "right" + normalEC *= sign(texcoordNormalization2D.x); +#ifndef PER_INSTANCE_COLOR + // Use vertex's sidedness to compute its texture coordinate. + v_texcoordT = clamp(sign(texcoordNormalization2D.x), 0.0, 1.0); +#endif + + // A "perfect" implementation would push along normals according to the angle against forward. + // In practice, just pushing the normal out by halfWidth is sufficient for morph views. + positionEc2D.xyz += halfWidth * max(0.0, czm_metersPerPixel(positionEc2D)) * normalEC; // prevent artifacts when czm_metersPerPixel is negative (behind camera) + + // Blend for actual position + gl_Position = czm_projection * mix(positionEc2D, positionEc3D, czm_morphTime); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(v_forwardDirectionEC.x, -v_forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var kL=`in vec3 position3DHigh; +in vec3 position3DLow; + +// In 2D and in 3D, texture coordinate normalization component signs encodes: +// * X sign - sidedness relative to right plane +// * Y sign - is negative OR magnitude is greater than 1.0 if vertex is on bottom of volume +#ifndef COLUMBUS_VIEW_2D +in vec4 startHiAndForwardOffsetX; +in vec4 startLoAndForwardOffsetY; +in vec4 startNormalAndForwardOffsetZ; +in vec4 endNormalAndTextureCoordinateNormalizationX; +in vec4 rightNormalAndTextureCoordinateNormalizationY; +#else +in vec4 startHiLo2D; +in vec4 offsetAndRight2D; +in vec4 startEndNormals2D; +in vec2 texcoordNormalization2D; +#endif + +in float batchId; + +out vec4 v_startPlaneNormalEcAndHalfWidth; +out vec4 v_endPlaneNormalEcAndBatchId; +out vec4 v_rightPlaneEC; +out vec4 v_endEcAndStartEcX; +out vec4 v_texcoordNormalizationAndStartEcYZ; + +// For materials +#ifdef WIDTH_VARYING +out float v_width; +#endif +#ifdef ANGLE_VARYING +out float v_polylineAngle; +#endif + +#ifdef PER_INSTANCE_COLOR +out vec4 v_color; +#endif + +void main() +{ +#ifdef COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(vec3(0.0, startHiLo2D.xy), vec3(0.0, startHiLo2D.zw))).xyz; + + vec3 forwardDirectionEC = czm_normal * vec3(0.0, offsetAndRight2D.xy); + vec3 ecEnd = forwardDirectionEC + ecStart; + forwardDirectionEC = normalize(forwardDirectionEC); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * vec3(0.0, offsetAndRight2D.zw); + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.xy); + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * vec3(0.0, startEndNormals2D.zw); + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + v_texcoordNormalizationAndStartEcYZ.x = abs(texcoordNormalization2D.x); + v_texcoordNormalizationAndStartEcYZ.y = texcoordNormalization2D.y; + +#else // COLUMBUS_VIEW_2D + vec3 ecStart = (czm_modelViewRelativeToEye * czm_translateRelativeToEye(startHiAndForwardOffsetX.xyz, startLoAndForwardOffsetY.xyz)).xyz; + vec3 offset = czm_normal * vec3(startHiAndForwardOffsetX.w, startLoAndForwardOffsetY.w, startNormalAndForwardOffsetZ.w); + vec3 ecEnd = ecStart + offset; + + vec3 forwardDirectionEC = normalize(offset); + + // start plane + vec4 startPlaneEC; + startPlaneEC.xyz = czm_normal * startNormalAndForwardOffsetZ.xyz; + startPlaneEC.w = -dot(startPlaneEC.xyz, ecStart); + + // end plane + vec4 endPlaneEC; + endPlaneEC.xyz = czm_normal * endNormalAndTextureCoordinateNormalizationX.xyz; + endPlaneEC.w = -dot(endPlaneEC.xyz, ecEnd); + + // Right plane + v_rightPlaneEC.xyz = czm_normal * rightNormalAndTextureCoordinateNormalizationY.xyz; + v_rightPlaneEC.w = -dot(v_rightPlaneEC.xyz, ecStart); + + v_texcoordNormalizationAndStartEcYZ.x = abs(endNormalAndTextureCoordinateNormalizationX.w); + v_texcoordNormalizationAndStartEcYZ.y = rightNormalAndTextureCoordinateNormalizationY.w; + +#endif // COLUMBUS_VIEW_2D + + v_endEcAndStartEcX.xyz = ecEnd; + v_endEcAndStartEcX.w = ecStart.x; + v_texcoordNormalizationAndStartEcYZ.zw = ecStart.yz; + +#ifdef PER_INSTANCE_COLOR + v_color = czm_batchTable_color(batchId); +#endif // PER_INSTANCE_COLOR + + // Compute a normal along which to "push" the position out, extending the miter depending on view distance. + // Position has already been "pushed" by unit length along miter normal, and miter normals are encoded in the planes. + // Decode the normal to use at this specific vertex, push the position back, and then push to where it needs to be. + vec4 positionRelativeToEye = czm_computePosition(); + + // Check distance to the end plane and start plane, pick the plane that is closer + vec4 positionEC = czm_modelViewRelativeToEye * positionRelativeToEye; // w = 1.0, see czm_computePosition + float absStartPlaneDistance = abs(czm_planeDistance(startPlaneEC, positionEC.xyz)); + float absEndPlaneDistance = abs(czm_planeDistance(endPlaneEC, positionEC.xyz)); + vec3 planeDirection = czm_branchFreeTernary(absStartPlaneDistance < absEndPlaneDistance, startPlaneEC.xyz, endPlaneEC.xyz); + vec3 upOrDown = normalize(cross(v_rightPlaneEC.xyz, planeDirection)); // Points "up" for start plane, "down" at end plane. + vec3 normalEC = normalize(cross(planeDirection, upOrDown)); // In practice, the opposite seems to work too. + + // Extrude bottom vertices downward for far view distances, like for GroundPrimitives + upOrDown = cross(forwardDirectionEC, normalEC); + upOrDown = float(czm_sceneMode == czm_sceneMode3D) * upOrDown; + upOrDown = float(v_texcoordNormalizationAndStartEcYZ.y > 1.0 || v_texcoordNormalizationAndStartEcYZ.y < 0.0) * upOrDown; + upOrDown = min(GLOBE_MINIMUM_ALTITUDE, czm_geometricToleranceOverMeter * length(positionRelativeToEye.xyz)) * upOrDown; + positionEC.xyz += upOrDown; + + v_texcoordNormalizationAndStartEcYZ.y = czm_branchFreeTernary(v_texcoordNormalizationAndStartEcYZ.y > 1.0, 0.0, abs(v_texcoordNormalizationAndStartEcYZ.y)); + + // Determine distance along normalEC to push for a volume of appropriate width. + // Make volumes about double pixel width for a conservative fit - in practice the + // extra cost here is minimal compared to the loose volume heights. + // + // N = normalEC (guaranteed "right-facing") + // R = rightEC + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + float width = czm_batchTable_width(batchId); +#ifdef WIDTH_VARYING + v_width = width; +#endif + + v_startPlaneNormalEcAndHalfWidth.xyz = startPlaneEC.xyz; + v_startPlaneNormalEcAndHalfWidth.w = width * 0.5; + + v_endPlaneNormalEcAndBatchId.xyz = endPlaneEC.xyz; + v_endPlaneNormalEcAndBatchId.w = batchId; + + width = width * max(0.0, czm_metersPerPixel(positionEC)); // width = distance to push along R + width = width / dot(normalEC, v_rightPlaneEC.xyz); // width = distance to push along N + + // Determine if this vertex is on the "left" or "right" +#ifdef COLUMBUS_VIEW_2D + normalEC *= sign(texcoordNormalization2D.x); +#else + normalEC *= sign(endNormalAndTextureCoordinateNormalizationX.w); +#endif + + positionEC.xyz += width * normalEC; + gl_Position = czm_depthClamp(czm_projection * positionEC); + +#ifdef ANGLE_VARYING + // Approximate relative screen space direction of the line. + vec2 approxLineDirection = normalize(vec2(forwardDirectionEC.x, -forwardDirectionEC.y)); + approxLineDirection.y = czm_branchFreeTernary(approxLineDirection.x == 0.0 && approxLineDirection.y == 0.0, -1.0, approxLineDirection.y); + v_polylineAngle = czm_fastApproximateAtan(approxLineDirection.x, approxLineDirection.y); +#endif +} +`;var VL=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec4 color; +in float batchId; + +out vec4 v_color; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_color = color; +} +`;var Qu=`void clipLineSegmentToNearPlane( + vec3 p0, + vec3 p1, + out vec4 positionWC, + out bool clipped, + out bool culledByNearPlane, + out vec4 clippedPositionEC) +{ + culledByNearPlane = false; + clipped = false; + + vec3 p0ToP1 = p1 - p0; + float magnitude = length(p0ToP1); + vec3 direction = normalize(p0ToP1); + + // Distance that p0 is behind the near plane. Negative means p0 is + // in front of the near plane. + float endPoint0Distance = czm_currentFrustum.x + p0.z; + + // Camera looks down -Z. + // When moving a point along +Z: LESS VISIBLE + // * Points in front of the camera move closer to the camera. + // * Points behind the camrea move farther away from the camera. + // When moving a point along -Z: MORE VISIBLE + // * Points in front of the camera move farther away from the camera. + // * Points behind the camera move closer to the camera. + + // Positive denominator: -Z, becoming more visible + // Negative denominator: +Z, becoming less visible + // Nearly zero: parallel to near plane + float denominator = -direction.z; + + if (endPoint0Distance > 0.0 && abs(denominator) < czm_epsilon7) + { + // p0 is behind the near plane and the line to p1 is nearly parallel to + // the near plane, so cull the segment completely. + culledByNearPlane = true; + } + else if (endPoint0Distance > 0.0) + { + // p0 is behind the near plane, and the line to p1 is moving distinctly + // toward or away from it. + + // t = (-plane distance - dot(plane normal, ray origin)) / dot(plane normal, ray direction) + float t = endPoint0Distance / denominator; + if (t < 0.0 || t > magnitude) + { + // Near plane intersection is not between the two points. + // We already confirmed p0 is behind the naer plane, so now + // we know the entire segment is behind it. + culledByNearPlane = true; + } + else + { + // Segment crosses the near plane, update p0 to lie exactly on it. + p0 = p0 + t * direction; + + // Numerical noise might put us a bit on the wrong side of the near plane. + // Don't let that happen. + p0.z = min(p0.z, -czm_currentFrustum.x); + + clipped = true; + } + } + + clippedPositionEC = vec4(p0, 1.0); + positionWC = czm_eyeToWindowCoordinates(clippedPositionEC); +} + +vec4 getPolylineWindowCoordinatesEC(vec4 positionEC, vec4 prevEC, vec4 nextEC, float expandDirection, float width, bool usePrevious, out float angle) +{ + // expandDirection +1 is to the _left_ when looking from positionEC toward nextEC. + +#ifdef POLYLINE_DASH + // Compute the window coordinates of the points. + vec4 positionWindow = czm_eyeToWindowCoordinates(positionEC); + vec4 previousWindow = czm_eyeToWindowCoordinates(prevEC); + vec4 nextWindow = czm_eyeToWindowCoordinates(nextEC); + + // Determine the relative screen space direction of the line. + vec2 lineDir; + if (usePrevious) { + lineDir = normalize(positionWindow.xy - previousWindow.xy); + } + else { + lineDir = normalize(nextWindow.xy - positionWindow.xy); + } + angle = atan(lineDir.x, lineDir.y) - 1.570796327; // precomputed atan(1,0) + + // Quantize the angle so it doesn't change rapidly between segments. + angle = floor(angle / czm_piOverFour + 0.5) * czm_piOverFour; +#endif + + vec4 clippedPrevWC, clippedPrevEC; + bool prevSegmentClipped, prevSegmentCulled; + clipLineSegmentToNearPlane(prevEC.xyz, positionEC.xyz, clippedPrevWC, prevSegmentClipped, prevSegmentCulled, clippedPrevEC); + + vec4 clippedNextWC, clippedNextEC; + bool nextSegmentClipped, nextSegmentCulled; + clipLineSegmentToNearPlane(nextEC.xyz, positionEC.xyz, clippedNextWC, nextSegmentClipped, nextSegmentCulled, clippedNextEC); + + bool segmentClipped, segmentCulled; + vec4 clippedPositionWC, clippedPositionEC; + clipLineSegmentToNearPlane(positionEC.xyz, usePrevious ? prevEC.xyz : nextEC.xyz, clippedPositionWC, segmentClipped, segmentCulled, clippedPositionEC); + + if (segmentCulled) + { + return vec4(0.0, 0.0, 0.0, 1.0); + } + + vec2 directionToPrevWC = normalize(clippedPrevWC.xy - clippedPositionWC.xy); + vec2 directionToNextWC = normalize(clippedNextWC.xy - clippedPositionWC.xy); + + // If a segment was culled, we can't use the corresponding direction + // computed above. We should never see both of these be true without + // \`segmentCulled\` above also being true. + if (prevSegmentCulled) + { + directionToPrevWC = -directionToNextWC; + } + else if (nextSegmentCulled) + { + directionToNextWC = -directionToPrevWC; + } + + vec2 thisSegmentForwardWC, otherSegmentForwardWC; + if (usePrevious) + { + thisSegmentForwardWC = -directionToPrevWC; + otherSegmentForwardWC = directionToNextWC; + } + else + { + thisSegmentForwardWC = directionToNextWC; + otherSegmentForwardWC = -directionToPrevWC; + } + + vec2 thisSegmentLeftWC = vec2(-thisSegmentForwardWC.y, thisSegmentForwardWC.x); + + vec2 leftWC = thisSegmentLeftWC; + float expandWidth = width * 0.5; + + // When lines are split at the anti-meridian, the position may be at the + // same location as the next or previous position, and we need to handle + // that to avoid producing NaNs. + if (!czm_equalsEpsilon(prevEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1) && !czm_equalsEpsilon(nextEC.xyz - positionEC.xyz, vec3(0.0), czm_epsilon1)) + { + vec2 otherSegmentLeftWC = vec2(-otherSegmentForwardWC.y, otherSegmentForwardWC.x); + + vec2 leftSumWC = thisSegmentLeftWC + otherSegmentLeftWC; + float leftSumLength = length(leftSumWC); + leftWC = leftSumLength < czm_epsilon6 ? thisSegmentLeftWC : (leftSumWC / leftSumLength); + + // The sine of the angle between the two vectors is given by the formula + // |a x b| = |a||b|sin(theta) + // which is + // float sinAngle = length(cross(vec3(leftWC, 0.0), vec3(-thisSegmentForwardWC, 0.0))); + // Because the z components of both vectors are zero, the x and y coordinate will be zero. + // Therefore, the sine of the angle is just the z component of the cross product. + vec2 u = -thisSegmentForwardWC; + vec2 v = leftWC; + float sinAngle = abs(u.x * v.y - u.y * v.x); + expandWidth = clamp(expandWidth / sinAngle, 0.0, width * 2.0); + } + + vec2 offset = leftWC * expandDirection * expandWidth * czm_pixelRatio; + return vec4(clippedPositionWC.xy + offset, -clippedPositionWC.z, 1.0) * (czm_projection * clippedPositionEC).w; +} + +vec4 getPolylineWindowCoordinates(vec4 position, vec4 previous, vec4 next, float expandDirection, float width, bool usePrevious, out float angle) +{ + vec4 positionEC = czm_modelViewRelativeToEye * position; + vec4 prevEC = czm_modelViewRelativeToEye * previous; + vec4 nextEC = czm_modelViewRelativeToEye * next; + return getPolylineWindowCoordinatesEC(positionEC, prevEC, nextEC, expandDirection, width, usePrevious, angle); +} +`;var Q6=`${Qu} +${VL}`,wLe=RT;jt.isInternetExplorer()||(Q6=`#define CLIP_POLYLINE +${Q6}`);function V0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=V0.VERTEX_FORMAT;this.material=void 0,this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,Q6),this._fragmentShaderSource=y(e.fragmentShaderSource,wLe),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(V0.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});V0.VERTEX_FORMAT=Pe.POSITION_ONLY;V0.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;V0.prototype.isTranslucent=Ji.prototype.isTranslucent;V0.prototype.getRenderState=Ji.prototype.getRenderState;var ns=V0;var UL=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec2 expandAndWidth; +in vec2 st; +in float batchId; + +out float v_width; +out vec2 v_st; +out float v_polylineAngle; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = czm_computePosition(); + vec4 prev = czm_computePrevPosition(); + vec4 next = czm_computeNextPosition(); + + float angle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; + + v_width = width; + v_st.s = st.s; + v_st.t = czm_writeNonPerspective(st.t, gl_Position.w); + v_polylineAngle = angle; +} +`;var VT=`#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec2 st = v_st; + st.t = czm_readNonPerspective(st.t, gl_FragCoord.w); + + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = vec3(st, 0.0); + + czm_material material = czm_getMaterial(materialInput); + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#ifdef VECTOR_TILE + out_FragColor *= u_highlightColor; +#endif + + czm_writeLogDepth(); +} +`;var J6=`${Qu} +${UL}`,DLe=VT;jt.isInternetExplorer()||(J6=`#define CLIP_POLYLINE +${J6}`);function U0(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=!1,i=U0.VERTEX_FORMAT;this.material=l(e.material)?e.material:ji.fromType(ji.ColorType),this.translucent=t,this._vertexShaderSource=y(e.vertexShaderSource,J6),this._fragmentShaderSource=y(e.fragmentShaderSource,DLe),this._renderState=Ji.getDefaultRenderState(t,n,e.renderState),this._closed=n,this._vertexFormat=i}Object.defineProperties(U0.prototype,{vertexShaderSource:{get:function(){let e=this._vertexShaderSource;return this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&(e=`#define POLYLINE_DASH +${e}`),e}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return this._vertexFormat}}});U0.VERTEX_FORMAT=Pe.POSITION_AND_ST;U0.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;U0.prototype.isTranslucent=Ji.prototype.isTranslucent;U0.prototype.getRenderState=Ji.prototype.getRenderState;var xa=U0;function ap(e){e=y(e,y.EMPTY_OBJECT),this.geometryInstances=e.geometryInstances,this._hasPerInstanceColors=!0;let t=e.appearance;l(t)||(t=new xa),this.appearance=t,this.show=y(e.show,!0),this.classificationType=y(e.classificationType,kn.BOTH),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._debugShowShadowVolume=y(e.debugShowShadowVolume,!1),this._primitiveOptions={geometryInstances:void 0,appearance:void 0,vertexCacheOptimize:!1,interleave:y(e.interleave,!1),releaseGeometryInstances:y(e.releaseGeometryInstances,!0),allowPicking:y(e.allowPicking,!0),asynchronous:y(e.asynchronous,!0),compressVertices:!1,_createShaderProgramFunction:void 0,_createCommandsFunction:void 0,_updateAndQueueCommandsFunction:void 0},this._zIndex=void 0,this._ready=!1,this._primitive=void 0,this._sp=void 0,this._sp2D=void 0,this._spMorph=void 0,this._renderState=yne(!1),this._renderState3DTiles=yne(!0),this._renderStateMorph=Ve.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:!0},blending:ln.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1})}Object.defineProperties(ap.prototype,{interleave:{get:function(){return this._primitiveOptions.interleave}},releaseGeometryInstances:{get:function(){return this._primitiveOptions.releaseGeometryInstances}},allowPicking:{get:function(){return this._primitiveOptions.allowPicking}},asynchronous:{get:function(){return this._primitiveOptions.asynchronous}},ready:{get:function(){return this._ready}},debugShowShadowVolume:{get:function(){return this._debugShowShadowVolume}}});ap.initializeTerrainHeights=function(){return ui.initialize()};function ILe(e,t,n){let i=t.context,o=e._primitive,r=o._attributeLocations,s=o._batchTable.getVertexShaderCallback()(kL);s=In._appendShowToShader(o,s),s=In._appendDistanceDisplayConditionToShader(o,s),s=In._modifyShaderPosition(e,s,t.scene3DOnly);let a=o._batchTable.getVertexShaderCallback()(BL);a=In._appendShowToShader(o,a),a=In._appendDistanceDisplayConditionToShader(o,a),a=In._modifyShaderPosition(e,a,t.scene3DOnly);let c=o._batchTable.getVertexShaderCallback()(NL),u=[`GLOBE_MINIMUM_ALTITUDE ${t.mapProjection.ellipsoid.minimumRadius.toFixed(1)}`],f="",d="";l(n.material)?(d=l(n.material)?n.material.shaderSource:"",d.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&u.push("ANGLE_VARYING"),d.search(/in\s+float\s+v_width;/g)!==-1&&u.push("WIDTH_VARYING")):f="PER_INSTANCE_COLOR",u.push(f);let p=e.debugShowShadowVolume?["DEBUG_SHOW_VOLUME",f]:[f],g=new Ue({defines:u,sources:[s]}),m=new Ue({defines:p,sources:[d,c]});e._sp=en.replaceCache({context:i,shaderProgram:o._sp,vertexShaderSource:g,fragmentShaderSource:m,attributeLocations:r});let x=i.shaderCache.getDerivedShaderProgram(e._sp,"2dColor");if(!l(x)){let T=new Ue({defines:u.concat(["COLUMBUS_VIEW_2D"]),sources:[s]});x=i.shaderCache.createDerivedShaderProgram(e._sp,"2dColor",{context:i,shaderProgram:e._sp2D,vertexShaderSource:T,fragmentShaderSource:m,attributeLocations:r})}e._sp2D=x;let b=i.shaderCache.getDerivedShaderProgram(e._sp,"MorphColor");if(!l(b)){let T=new Ue({defines:u.concat([`MAX_TERRAIN_HEIGHT ${ui._defaultMaxTerrainHeight.toFixed(1)}`]),sources:[a]});c=o._batchTable.getVertexShaderCallback()(FL);let A=new Ue({defines:p,sources:[d,c]});b=i.shaderCache.createDerivedShaderProgram(e._sp,"MorphColor",{context:i,shaderProgram:e._spMorph,vertexShaderSource:T,fragmentShaderSource:A,attributeLocations:r})}e._spMorph=b}function yne(e){return Ve.fromCache({cull:{enabled:!0},blending:ln.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Vn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:Vn.EQUAL,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK}})}function PLe(e,t,n,i,o,r){let s=e._primitive,a=s._va.length;o.length=a,r.length=a;let u=t instanceof ns?{}:n._uniforms,f=s._batchTable.getUniformMapCallback()(u);for(let d=0;d<a;d++){let p=s._va[d],g=o[d];l(g)||(g=o[d]=new et({owner:e,primitiveType:s._primitiveType})),g.vertexArray=p,g.renderState=e._renderState,g.shaderProgram=e._sp,g.uniformMap=f,g.pass=ve.TERRAIN_CLASSIFICATION,g.pickId="czm_batchTable_pickColor(v_endPlaneNormalEcAndBatchId.w)";let m=et.shallowClone(g,g.derivedCommands.tileset);m.renderState=e._renderState3DTiles,m.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,g.derivedCommands.tileset=m;let x=et.shallowClone(g,g.derivedCommands.color2D);x.shaderProgram=e._sp2D,g.derivedCommands.color2D=x;let b=et.shallowClone(m,m.derivedCommands.color2D);b.shaderProgram=e._sp2D,m.derivedCommands.color2D=b;let T=et.shallowClone(g,g.derivedCommands.colorMorph);T.renderState=e._renderStateMorph,T.shaderProgram=e._spMorph,T.pickId="czm_batchTable_pickColor(v_batchId)",g.derivedCommands.colorMorph=T}}function xne(e,t,n,i,o,r,s){n.mode===ne.MORPHING?t=t.derivedCommands.colorMorph:n.mode!==ne.SCENE3D&&(t=t.derivedCommands.color2D),t.modelMatrix=i,t.boundingVolume=r,t.cull=o,t.debugShowBoundingVolume=s,n.commandList.push(t)}function RLe(e,t,n,i,o,r,s){let a=e._primitive;In._updateBoundingVolumes(a,t,o);let c;t.mode===ne.SCENE3D?c=a._boundingSphereWC:t.mode===ne.COLUMBUS_VIEW?c=a._boundingSphereCV:t.mode===ne.SCENE2D&&l(a._boundingSphere2D)?c=a._boundingSphere2D:l(a._boundingSphereMorph)&&(c=a._boundingSphereMorph);let u=t.mode===ne.MORPHING,f=e.classificationType,d=f!==kn.CESIUM_3D_TILE,p=f!==kn.TERRAIN&&!u,g,m=t.passes;if(m.render||m.pick&&a.allowPicking){let x=n.length;for(let b=0;b<x;++b){let T=c[b];d&&(g=n[b],xne(e,g,t,o,r,T,s)),p&&(g=n[b].derivedCommands.tileset,xne(e,g,t,o,r,T,s))}}}ap.prototype.update=function(e){if(!l(this._primitive)&&!l(this.geometryInstances))return;if(!ui.initialized){ap.initializeTerrainHeights();return}let t,n=this,i=this._primitiveOptions;if(!l(this._primitive)){let o=Array.isArray(this.geometryInstances)?this.geometryInstances:[this.geometryInstances],r=o.length,s=new Array(r),a;for(t=0;t<r;++t)if(a=o[t].attributes,!l(a)||!l(a.color)){this._hasPerInstanceColors=!1;break}for(t=0;t<r;++t){let c=o[t];a={};let u=c.attributes;for(let f in u)u.hasOwnProperty(f)&&(a[f]=u[f]);l(a.width)||(a.width=new Sc({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,value:[c.geometry.width]})),c.geometry._scene3DOnly=e.scene3DOnly,kT.setProjectionAndEllipsoid(c.geometry,e.mapProjection),s[t]=new vt({geometry:c.geometry,attributes:a,id:c.id,pickPrimitive:n})}i.geometryInstances=s,i.appearance=this.appearance,i._createShaderProgramFunction=function(c,u,f){ILe(n,u,f)},i._createCommandsFunction=function(c,u,f,d,p,g,m){PLe(n,u,f,d,g,m)},i._updateAndQueueCommandsFunction=function(c,u,f,d,p,g,m,x){RLe(n,u,f,d,p,g,m)},this._primitive=new In(i)}if(this.appearance instanceof ns&&!this._hasPerInstanceColors)throw new he("All GeometryInstances must have color attributes to use PolylineColorAppearance with GroundPolylinePrimitive.");this._primitive.appearance=this.appearance,this._primitive.show=this.show,this._primitive.debugShowBoundingVolume=this.debugShowBoundingVolume,this._primitive.update(e),e.afterRender.push(()=>{!this._ready&&l(this._primitive)&&this._primitive.ready&&(this._ready=!0,this.releaseGeometryInstances&&(this.geometryInstances=void 0))})};ap.prototype.getGeometryInstanceAttributes=function(e){return this._primitive.getGeometryInstanceAttributes(e)};ap.isSupported=function(e){return e.frameState.context.depthTexture};ap.prototype.isDestroyed=function(){return!1};ap.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),this._sp=this._sp&&this._sp.destroy(),this._sp2D=void 0,this._spMorph=void 0,ue(this)};var Eh=ap;var OLe=new U(1,1),MLe=!1,LLe=z.WHITE;function UT(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._image=void 0,this._imageSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._transparent=void 0,this._transparentSubscription=void 0,this.image=e.image,this.repeat=e.repeat,this.color=e.color,this.transparent=e.transparent}Object.defineProperties(UT.prototype,{isConstant:{get:function(){return Y.isConstant(this._image)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},image:le("image"),repeat:le("repeat"),color:le("color"),transparent:le("transparent")});UT.prototype.getType=function(e){return"Image"};var NLe=new K;UT.prototype.getValue=function(e,t){return l(e)||(e=K.now(NLe)),l(t)||(t={}),t.image=Y.getValueOrUndefined(this._image,e),t.repeat=Y.getValueOrClonedDefault(this._repeat,e,OLe,t.repeat),t.color=Y.getValueOrClonedDefault(this._color,e,LLe,t.color),Y.getValueOrDefault(this._transparent,e,MLe)&&(t.color.alpha=Math.min(.99,t.color.alpha)),t};UT.prototype.equals=function(e){return this===e||e instanceof UT&&Y.equals(this._image,e._image)&&Y.equals(this._repeat,e._repeat)&&Y.equals(this._color,e._color)&&Y.equals(this._transparent,e._transparent)};var z0=UT;function FLe(e){if(e instanceof z)return new Gt(e);if(typeof e=="string"||e instanceof De||e instanceof HTMLCanvasElement||e instanceof HTMLVideoElement){let t=new z0;return t.image=e,t}}function BLe(e,t){return le(e,t,FLe)}var Oo=BLe;function mv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(mv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),dimensions:le("dimensions"),heightReference:le("heightReference"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});mv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.dimensions=this.dimensions,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new mv(this)};mv.prototype.merge=function(e){this.show=y(this.show,e.show),this.dimensions=y(this.dimensions,e.dimensions),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var zT=mv;var kLe={FIXED:0,INERTIAL:1},ki=Object.freeze(kLe);function HT(){he.throwInstantiationError()}Object.defineProperties(HT.prototype,{isConstant:{get:he.throwInstantiationError},definitionChanged:{get:he.throwInstantiationError},referenceFrame:{get:he.throwInstantiationError}});HT.prototype.getValue=he.throwInstantiationError;HT.prototype.getValueInReferenceFrame=he.throwInstantiationError;HT.prototype.equals=he.throwInstantiationError;var bne=new $;HT.convertToReferenceFrame=function(e,t,n,i,o){if(!l(t))return t;if(l(o)||(o=new h),n===i)return h.clone(t,o);let r=Nt.computeIcrfToCentralBodyFixedMatrix(e,bne);if(n===ki.INERTIAL)return $.multiplyByVector(r,t,o);if(n===ki.FIXED)return $.multiplyByVector($.transpose(r,bne),t,o)};var Sh=HT;function H0(e,t){this._definitionChanged=new me,this._value=h.clone(e),this._referenceFrame=y(t,ki.FIXED)}Object.defineProperties(H0.prototype,{isConstant:{get:function(){return!l(this._value)||this._referenceFrame===ki.FIXED}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var VLe=new K;H0.prototype.getValue=function(e,t){return l(e)||(e=K.now(VLe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};H0.prototype.setValue=function(e,t){let n=!1;h.equals(this._value,e)||(n=!0,this._value=h.clone(e)),l(t)&&this._referenceFrame!==t&&(n=!0,this._referenceFrame=t),n&&this._definitionChanged.raiseEvent(this)};H0.prototype.getValueInReferenceFrame=function(e,t,n){return Sh.convertToReferenceFrame(e,this._value,this._referenceFrame,t,n)};H0.prototype.equals=function(e){return this===e||e instanceof H0&&h.equals(this._value,e._value)&&this._referenceFrame===e._referenceFrame};var hl=H0;function pv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(pv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});pv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new pv(this)};pv.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var GT=pv;function ULe(e){return e}function zLe(e,t){return le(e,t,ULe)}var Kl=zLe;function _v(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._length=void 0,this._lengthSubscription=void 0,this._topRadius=void 0,this._topRadiusSubscription=void 0,this._bottomRadius=void 0,this._bottomRadiusSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._slices=void 0,this._slicesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(_v.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),length:le("length"),topRadius:le("topRadius"),bottomRadius:le("bottomRadius"),heightReference:le("heightReference"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),slices:le("slices"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});_v.prototype.clone=function(e){return l(e)?(e.show=this.show,e.length=this.length,e.topRadius=this.topRadius,e.bottomRadius=this.bottomRadius,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.slices=this.slices,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new _v(this)};_v.prototype.merge=function(e){this.show=y(this.show,e.show),this.length=y(this.length,e.length),this.topRadius=y(this.topRadius,e.topRadius),this.bottomRadius=y(this.bottomRadius,e.bottomRadius),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.slices=y(this.slices,e.slices),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var WT=_v;function gv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._semiMajorAxis=void 0,this._semiMajorAxisSubscription=void 0,this._semiMinorAxis=void 0,this._semiMinorAxisSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._numberOfVerticalLines=void 0,this._numberOfVerticalLinesSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(gv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),semiMajorAxis:le("semiMajorAxis"),semiMinorAxis:le("semiMinorAxis"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),numberOfVerticalLines:le("numberOfVerticalLines"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});gv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.semiMajorAxis=this.semiMajorAxis,e.semiMinorAxis=this.semiMinorAxis,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.numberOfVerticalLines=this.numberOfVerticalLines,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new gv(this)};gv.prototype.merge=function(e){this.show=y(this.show,e.show),this.semiMajorAxis=y(this.semiMajorAxis,e.semiMajorAxis),this.semiMinorAxis=y(this.semiMinorAxis,e.semiMinorAxis),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.numberOfVerticalLines=y(this.numberOfVerticalLines,e.numberOfVerticalLines),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var jT=gv;function yv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._radii=void 0,this._radiiSubscription=void 0,this._innerRadii=void 0,this._innerRadiiSubscription=void 0,this._minimumClock=void 0,this._minimumClockSubscription=void 0,this._maximumClock=void 0,this._maximumClockSubscription=void 0,this._minimumCone=void 0,this._minimumConeSubscription=void 0,this._maximumCone=void 0,this._maximumConeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._stackPartitions=void 0,this._stackPartitionsSubscription=void 0,this._slicePartitions=void 0,this._slicePartitionsSubscription=void 0,this._subdivisions=void 0,this._subdivisionsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(yv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),radii:le("radii"),innerRadii:le("innerRadii"),minimumClock:le("minimumClock"),maximumClock:le("maximumClock"),minimumCone:le("minimumCone"),maximumCone:le("maximumCone"),heightReference:le("heightReference"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),stackPartitions:le("stackPartitions"),slicePartitions:le("slicePartitions"),subdivisions:le("subdivisions"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});yv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.radii=this.radii,e.innerRadii=this.innerRadii,e.minimumClock=this.minimumClock,e.maximumClock=this.maximumClock,e.minimumCone=this.minimumCone,e.maximumCone=this.maximumCone,e.heightReference=this.heightReference,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.stackPartitions=this.stackPartitions,e.slicePartitions=this.slicePartitions,e.subdivisions=this.subdivisions,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new yv(this)};yv.prototype.merge=function(e){this.show=y(this.show,e.show),this.radii=y(this.radii,e.radii),this.innerRadii=y(this.innerRadii,e.innerRadii),this.minimumClock=y(this.minimumClock,e.minimumClock),this.maximumClock=y(this.maximumClock,e.maximumClock),this.minimumCone=y(this.minimumCone,e.minimumCone),this.maximumCone=y(this.maximumCone,e.maximumCone),this.heightReference=y(this.heightReference,e.heightReference),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.stackPartitions=y(this.stackPartitions,e.stackPartitions),this.slicePartitions=y(this.slicePartitions,e.slicePartitions),this.subdivisions=y(this.subdivisions,e.subdivisions),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var qT=yv;function xv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._text=void 0,this._textSubscription=void 0,this._font=void 0,this._fontSubscription=void 0,this._style=void 0,this._styleSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._showBackground=void 0,this._showBackgroundSubscription=void 0,this._backgroundColor=void 0,this._backgroundColorSubscription=void 0,this._backgroundPadding=void 0,this._backgroundPaddingSubscription=void 0,this._pixelOffset=void 0,this._pixelOffsetSubscription=void 0,this._eyeOffset=void 0,this._eyeOffsetSubscription=void 0,this._horizontalOrigin=void 0,this._horizontalOriginSubscription=void 0,this._verticalOrigin=void 0,this._verticalOriginSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._fillColor=void 0,this._fillColorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._pixelOffsetScaleByDistance=void 0,this._pixelOffsetScaleByDistanceSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(xv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),text:le("text"),font:le("font"),style:le("style"),scale:le("scale"),showBackground:le("showBackground"),backgroundColor:le("backgroundColor"),backgroundPadding:le("backgroundPadding"),pixelOffset:le("pixelOffset"),eyeOffset:le("eyeOffset"),horizontalOrigin:le("horizontalOrigin"),verticalOrigin:le("verticalOrigin"),heightReference:le("heightReference"),fillColor:le("fillColor"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),translucencyByDistance:le("translucencyByDistance"),pixelOffsetScaleByDistance:le("pixelOffsetScaleByDistance"),scaleByDistance:le("scaleByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance")});xv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.text=this.text,e.font=this.font,e.style=this.style,e.scale=this.scale,e.showBackground=this.showBackground,e.backgroundColor=this.backgroundColor,e.backgroundPadding=this.backgroundPadding,e.pixelOffset=this.pixelOffset,e.eyeOffset=this.eyeOffset,e.horizontalOrigin=this.horizontalOrigin,e.verticalOrigin=this.verticalOrigin,e.heightReference=this.heightReference,e.fillColor=this.fillColor,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.translucencyByDistance=this.translucencyByDistance,e.pixelOffsetScaleByDistance=this.pixelOffsetScaleByDistance,e.scaleByDistance=this.scaleByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e):new xv(this)};xv.prototype.merge=function(e){this.show=y(this.show,e.show),this.text=y(this.text,e.text),this.font=y(this.font,e.font),this.style=y(this.style,e.style),this.scale=y(this.scale,e.scale),this.showBackground=y(this.showBackground,e.showBackground),this.backgroundColor=y(this.backgroundColor,e.backgroundColor),this.backgroundPadding=y(this.backgroundPadding,e.backgroundPadding),this.pixelOffset=y(this.pixelOffset,e.pixelOffset),this.eyeOffset=y(this.eyeOffset,e.eyeOffset),this.horizontalOrigin=y(this.horizontalOrigin,e.horizontalOrigin),this.verticalOrigin=y(this.verticalOrigin,e.verticalOrigin),this.heightReference=y(this.heightReference,e.heightReference),this.fillColor=y(this.fillColor,e.fillColor),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.translucencyByDistance=y(this.translucencyByDistance,e.translucencyByDistance),this.pixelOffsetScaleByDistance=y(this.pixelOffsetScaleByDistance,e.pixelOffsetScaleByDistance),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance)};var vh=xv;var HLe=new h(1,1,1),GLe=h.ZERO,WLe=Me.IDENTITY;function Tne(e,t,n){this.translation=h.clone(y(e,GLe)),this.rotation=Me.clone(y(t,WLe)),this.scale=h.clone(y(n,HLe))}Tne.prototype.equals=function(e){return this===e||l(e)&&h.equals(this.translation,e.translation)&&Me.equals(this.rotation,e.rotation)&&h.equals(this.scale,e.scale)};var G0=Tne;var e9=new G0;function bv(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._translation=void 0,this._translationSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this.translation=e.translation,this.rotation=e.rotation,this.scale=e.scale}Object.defineProperties(bv.prototype,{isConstant:{get:function(){return Y.isConstant(this._translation)&&Y.isConstant(this._rotation)&&Y.isConstant(this._scale)}},definitionChanged:{get:function(){return this._definitionChanged}},translation:le("translation"),rotation:le("rotation"),scale:le("scale")});var jLe=new K;bv.prototype.getValue=function(e,t){return l(e)||(e=K.now(jLe)),l(t)||(t=new G0),t.translation=Y.getValueOrClonedDefault(this._translation,e,e9.translation,t.translation),t.rotation=Y.getValueOrClonedDefault(this._rotation,e,e9.rotation,t.rotation),t.scale=Y.getValueOrClonedDefault(this._scale,e,e9.scale,t.scale),t};bv.prototype.equals=function(e){return this===e||e instanceof bv&&Y.equals(this._translation,e._translation)&&Y.equals(this._rotation,e._rotation)&&Y.equals(this._scale,e._scale)};var YT=bv;function cp(e,t){this._propertyNames=[],this._definitionChanged=new me,l(e)&&this.merge(e,t)}Object.defineProperties(cp.prototype,{propertyNames:{get:function(){return this._propertyNames}},isConstant:{get:function(){let e=this._propertyNames;for(let t=0,n=e.length;t<n;t++)if(!Y.isConstant(this[e[t]]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});cp.prototype.hasProperty=function(e){return this._propertyNames.indexOf(e)!==-1};function qLe(e){return new Xn(e)}cp.prototype.addProperty=function(e,t,n){this._propertyNames.push(e),Object.defineProperty(this,e,le(e,!0,y(n,qLe))),l(t)&&(this[e]=t),this._definitionChanged.raiseEvent(this)};cp.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e],this._definitionChanged.raiseEvent(this)};var YLe=new K;cp.prototype.getValue=function(e,t){l(e)||(e=K.now(YLe)),l(t)||(t={});let n=this._propertyNames;for(let i=0,o=n.length;i<o;i++){let r=n[i];t[r]=Y.getValueOrUndefined(this[r],e,t[r])}return t};cp.prototype.merge=function(e,t){let n=this._propertyNames,i=l(e._propertyNames)?e._propertyNames:Object.keys(e);for(let o=0,r=i.length;o<r;o++){let s=i[o],a=this[s],c=e[s];a===void 0&&n.indexOf(s)===-1&&this.addProperty(s,void 0,t),c!==void 0&&(a!==void 0?l(a)&&l(a.merge)&&a.merge(c):l(c)&&l(c.merge)&&l(c.clone)?this[s]=c.clone():this[s]=c)}};function XLe(e,t){let n=e._propertyNames,i=t._propertyNames,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;++r){let s=n[r];if(i.indexOf(s)===-1||!Y.equals(e[s],t[s]))return!1}return!0}cp.prototype.equals=function(e){return this===e||e instanceof cp&&XLe(this,e)};var Zl=cp;function Ane(e){return new YT(e)}function KLe(e){return new Zl(e,Ane)}function ZLe(e){return new Zl(e)}function Tv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._scale=void 0,this._scaleSubscription=void 0,this._hasVerticalExaggeration=void 0,this._hasVerticalExaggerationSubscription=void 0,this._enableVerticalExaggeration=void 0,this._enableVerticalExaggerationSubscription=void 0,this._minimumPixelSize=void 0,this._minimumPixelSizeSubscription=void 0,this._maximumScale=void 0,this._maximumScaleSubscription=void 0,this._incrementallyLoadTextures=void 0,this._incrementallyLoadTexturesSubscription=void 0,this._runAnimations=void 0,this._runAnimationsSubscription=void 0,this._clampAnimations=void 0,this._clampAnimationsSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._silhouetteColor=void 0,this._silhouetteColorSubscription=void 0,this._silhouetteSize=void 0,this._silhouetteSizeSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._colorBlendMode=void 0,this._colorBlendModeSubscription=void 0,this._colorBlendAmount=void 0,this._colorBlendAmountSubscription=void 0,this._imageBasedLightingFactor=void 0,this._imageBasedLightingFactorSubscription=void 0,this._lightColor=void 0,this._lightColorSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._nodeTransformations=void 0,this._nodeTransformationsSubscription=void 0,this._articulations=void 0,this._articulationsSubscription=void 0,this._clippingPlanes=void 0,this._clippingPlanesSubscription=void 0,this._customShader=void 0,this._customShaderSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Tv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),scale:le("scale"),enableVerticalExaggeration:le("enableVerticalExaggeration"),minimumPixelSize:le("minimumPixelSize"),maximumScale:le("maximumScale"),incrementallyLoadTextures:le("incrementallyLoadTextures"),runAnimations:le("runAnimations"),clampAnimations:le("clampAnimations"),shadows:le("shadows"),heightReference:le("heightReference"),silhouetteColor:le("silhouetteColor"),silhouetteSize:le("silhouetteSize"),color:le("color"),colorBlendMode:le("colorBlendMode"),colorBlendAmount:le("colorBlendAmount"),imageBasedLightingFactor:le("imageBasedLightingFactor"),lightColor:le("lightColor"),distanceDisplayCondition:le("distanceDisplayCondition"),nodeTransformations:le("nodeTransformations",void 0,KLe),articulations:le("articulations",void 0,ZLe),clippingPlanes:le("clippingPlanes"),customShader:le("customShader")});Tv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.scale=this.scale,e.enableVerticalExaggeration=this.enableVerticalExaggeration,e.minimumPixelSize=this.minimumPixelSize,e.maximumScale=this.maximumScale,e.incrementallyLoadTextures=this.incrementallyLoadTextures,e.runAnimations=this.runAnimations,e.clampAnimations=this.clampAnimations,e.heightReference=this._heightReference,e.silhouetteColor=this.silhouetteColor,e.silhouetteSize=this.silhouetteSize,e.color=this.color,e.colorBlendMode=this.colorBlendMode,e.colorBlendAmount=this.colorBlendAmount,e.imageBasedLightingFactor=this.imageBasedLightingFactor,e.lightColor=this.lightColor,e.distanceDisplayCondition=this.distanceDisplayCondition,e.nodeTransformations=this.nodeTransformations,e.articulations=this.articulations,e.clippingPlanes=this.clippingPlanes,e.customShader=this.customShader,e):new Tv(this)};Tv.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.scale=y(this.scale,e.scale),this.enableVerticalExaggeration=y(this.enableVerticalExaggeration,e.enableVerticalExaggeration),this.minimumPixelSize=y(this.minimumPixelSize,e.minimumPixelSize),this.maximumScale=y(this.maximumScale,e.maximumScale),this.incrementallyLoadTextures=y(this.incrementallyLoadTextures,e.incrementallyLoadTextures),this.runAnimations=y(this.runAnimations,e.runAnimations),this.clampAnimations=y(this.clampAnimations,e.clampAnimations),this.shadows=y(this.shadows,e.shadows),this.heightReference=y(this.heightReference,e.heightReference),this.silhouetteColor=y(this.silhouetteColor,e.silhouetteColor),this.silhouetteSize=y(this.silhouetteSize,e.silhouetteSize),this.color=y(this.color,e.color),this.colorBlendMode=y(this.colorBlendMode,e.colorBlendMode),this.colorBlendAmount=y(this.colorBlendAmount,e.colorBlendAmount),this.imageBasedLightingFactor=y(this.imageBasedLightingFactor,e.imageBasedLightingFactor),this.lightColor=y(this.lightColor,e.lightColor),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.clippingPlanes=y(this.clippingPlanes,e.clippingPlanes),this.customShader=y(this.customShader,e.customShader);let t=e.nodeTransformations;if(l(t)){let i=this.nodeTransformations;l(i)?i.merge(t):this.nodeTransformations=new Zl(t,Ane)}let n=e.articulations;if(l(n)){let i=this.articulations;l(i)?i.merge(n):this.articulations=new Zl(n)}};var Y_=Tv;function Av(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._uri=void 0,this._uriSubscription=void 0,this._maximumScreenSpaceError=void 0,this._maximumScreenSpaceErrorSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Av.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),uri:le("uri"),maximumScreenSpaceError:le("maximumScreenSpaceError")});Av.prototype.clone=function(e){return l(e)?(e.show=this.show,e.uri=this.uri,e.maximumScreenSpaceError=this.maximumScreenSpaceError,e):new Av(this)};Av.prototype.merge=function(e){this.show=y(this.show,e.show),this.uri=y(this.uri,e.uri),this.maximumScreenSpaceError=y(this.maximumScreenSpaceError,e.maximumScreenSpaceError)};var XT=Av;function Cv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._leadTime=void 0,this._leadTimeSubscription=void 0,this._trailTime=void 0,this._trailTimeSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._resolution=void 0,this._resolutionSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Cv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),leadTime:le("leadTime"),trailTime:le("trailTime"),width:le("width"),resolution:le("resolution"),material:Oo("material"),distanceDisplayCondition:le("distanceDisplayCondition")});Cv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.leadTime=this.leadTime,e.trailTime=this.trailTime,e.width=this.width,e.resolution=this.resolution,e.material=this.material,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new Cv(this)};Cv.prototype.merge=function(e){this.show=y(this.show,e.show),this.leadTime=y(this.leadTime,e.leadTime),this.trailTime=y(this.trailTime,e.trailTime),this.width=y(this.width,e.width),this.resolution=y(this.resolution,e.resolution),this.material=y(this.material,e.material),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var X_=Cv;function Ev(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._dimensions=void 0,this._dimensionsSubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Ev.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),plane:le("plane"),dimensions:le("dimensions"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});Ev.prototype.clone=function(e){return l(e)?(e.show=this.show,e.plane=this.plane,e.dimensions=this.dimensions,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new Ev(this)};Ev.prototype.merge=function(e){this.show=y(this.show,e.show),this.plane=y(this.plane,e.plane),this.dimensions=y(this.dimensions,e.dimensions),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var zL=Ev;function Sv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._pixelSize=void 0,this._pixelSizeSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._scaleByDistance=void 0,this._scaleByDistanceSubscription=void 0,this._translucencyByDistance=void 0,this._translucencyByDistanceSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._disableDepthTestDistance=void 0,this._disableDepthTestDistanceSubscription=void 0,this._splitDirection=void 0,this._splitDirectionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Sv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),pixelSize:le("pixelSize"),heightReference:le("heightReference"),color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),scaleByDistance:le("scaleByDistance"),translucencyByDistance:le("translucencyByDistance"),distanceDisplayCondition:le("distanceDisplayCondition"),disableDepthTestDistance:le("disableDepthTestDistance"),splitDirection:le("splitDirection")});Sv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.pixelSize=this.pixelSize,e.heightReference=this.heightReference,e.color=this.color,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.scaleByDistance=this.scaleByDistance,e.translucencyByDistance=this._translucencyByDistance,e.distanceDisplayCondition=this.distanceDisplayCondition,e.disableDepthTestDistance=this.disableDepthTestDistance,e.splitDirection=this.splitDirection,e):new Sv(this)};Sv.prototype.merge=function(e){this.show=y(this.show,e.show),this.pixelSize=y(this.pixelSize,e.pixelSize),this.heightReference=y(this.heightReference,e.heightReference),this.color=y(this.color,e.color),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.scaleByDistance=y(this.scaleByDistance,e.scaleByDistance),this.translucencyByDistance=y(this._translucencyByDistance,e.translucencyByDistance),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.disableDepthTestDistance=y(this.disableDepthTestDistance,e.disableDepthTestDistance),this.splitDirection=y(this.splitDirection,e.splitDirection)};var KT=Sv;function $Le(e,t){this.positions=l(e)?e:[],this.holes=l(t)?t:[]}var qa=$Le;function QLe(e){return Array.isArray(e)&&(e=new qa(e)),new Xn(e)}function vv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._hierarchy=void 0,this._hierarchySubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._perPositionHeight=void 0,this._perPositionHeightSubscription=void 0,this._closeTop=void 0,this._closeTopSubscription=void 0,this._closeBottom=void 0,this._closeBottomSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this._textureCoordinates=void 0,this._textureCoordinatesSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(vv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),hierarchy:le("hierarchy",void 0,QLe),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),perPositionHeight:le("perPositionHeight"),closeTop:le("closeTop"),closeBottom:le("closeBottom"),arcType:le("arcType"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex"),textureCoordinates:le("textureCoordinates")});vv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.hierarchy=this.hierarchy,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.perPositionHeight=this.perPositionHeight,e.closeTop=this.closeTop,e.closeBottom=this.closeBottom,e.arcType=this.arcType,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e.textureCoordinates=this.textureCoordinates,e):new vv(this)};vv.prototype.merge=function(e){this.show=y(this.show,e.show),this.hierarchy=y(this.hierarchy,e.hierarchy),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.perPositionHeight=y(this.perPositionHeight,e.perPositionHeight),this.closeTop=y(this.closeTop,e.closeTop),this.closeBottom=y(this.closeBottom,e.closeBottom),this.arcType=y(this.arcType,e.arcType),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex),this.textureCoordinates=y(this.textureCoordinates,e.textureCoordinates)};var wh=vv;function wv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._width=void 0,this._widthSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._depthFailMaterial=void 0,this._depthFailMaterialSubscription=void 0,this._arcType=void 0,this._arcTypeSubscription=void 0,this._clampToGround=void 0,this._clampToGroundSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(wv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),width:le("width"),granularity:le("granularity"),material:Oo("material"),depthFailMaterial:Oo("depthFailMaterial"),arcType:le("arcType"),clampToGround:le("clampToGround"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});wv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.width=this.width,e.granularity=this.granularity,e.material=this.material,e.depthFailMaterial=this.depthFailMaterial,e.arcType=this.arcType,e.clampToGround=this.clampToGround,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new wv(this)};wv.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.width=y(this.width,e.width),this.granularity=y(this.granularity,e.granularity),this.material=y(this.material,e.material),this.depthFailMaterial=y(this.depthFailMaterial,e.depthFailMaterial),this.arcType=y(this.arcType,e.arcType),this.clampToGround=y(this.clampToGround,e.clampToGround),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var wc=wv;function Dv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._shape=void 0,this._shapeSubscription=void 0,this._cornerType=void 0,this._cornerTypeSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubsription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Dv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),shape:le("shape"),cornerType:le("cornerType"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});Dv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.shape=this.shape,e.cornerType=this.cornerType,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new Dv(this)};Dv.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.shape=y(this.shape,e.shape),this.cornerType=y(this.cornerType,e.cornerType),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var ZT=Dv;function Iv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._coordinates=void 0,this._coordinatesSubscription=void 0,this._height=void 0,this._heightSubscription=void 0,this._heightReference=void 0,this._heightReferenceSubscription=void 0,this._extrudedHeight=void 0,this._extrudedHeightSubscription=void 0,this._extrudedHeightReference=void 0,this._extrudedHeightReferenceSubscription=void 0,this._rotation=void 0,this._rotationSubscription=void 0,this._stRotation=void 0,this._stRotationSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distancedisplayConditionSubscription=void 0,this._classificationType=void 0,this._classificationTypeSubscription=void 0,this._zIndex=void 0,this._zIndexSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Iv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),coordinates:le("coordinates"),height:le("height"),heightReference:le("heightReference"),extrudedHeight:le("extrudedHeight"),extrudedHeightReference:le("extrudedHeightReference"),rotation:le("rotation"),stRotation:le("stRotation"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition"),classificationType:le("classificationType"),zIndex:le("zIndex")});Iv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.coordinates=this.coordinates,e.height=this.height,e.heightReference=this.heightReference,e.extrudedHeight=this.extrudedHeight,e.extrudedHeightReference=this.extrudedHeightReference,e.rotation=this.rotation,e.stRotation=this.stRotation,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e.classificationType=this.classificationType,e.zIndex=this.zIndex,e):new Iv(this)};Iv.prototype.merge=function(e){this.show=y(this.show,e.show),this.coordinates=y(this.coordinates,e.coordinates),this.height=y(this.height,e.height),this.heightReference=y(this.heightReference,e.heightReference),this.extrudedHeight=y(this.extrudedHeight,e.extrudedHeight),this.extrudedHeightReference=y(this.extrudedHeightReference,e.extrudedHeightReference),this.rotation=y(this.rotation,e.rotation),this.stRotation=y(this.stRotation,e.stRotation),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition),this.classificationType=y(this.classificationType,e.classificationType),this.zIndex=y(this.zIndex,e.zIndex)};var Dh=Iv;function Pv(e){this._definitionChanged=new me,this._show=void 0,this._showSubscription=void 0,this._positions=void 0,this._positionsSubscription=void 0,this._minimumHeights=void 0,this._minimumHeightsSubscription=void 0,this._maximumHeights=void 0,this._maximumHeightsSubscription=void 0,this._granularity=void 0,this._granularitySubscription=void 0,this._fill=void 0,this._fillSubscription=void 0,this._material=void 0,this._materialSubscription=void 0,this._outline=void 0,this._outlineSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this._shadows=void 0,this._shadowsSubscription=void 0,this._distanceDisplayCondition=void 0,this._distanceDisplayConditionSubscription=void 0,this.merge(y(e,y.EMPTY_OBJECT))}Object.defineProperties(Pv.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},show:le("show"),positions:le("positions"),minimumHeights:le("minimumHeights"),maximumHeights:le("maximumHeights"),granularity:le("granularity"),fill:le("fill"),material:Oo("material"),outline:le("outline"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth"),shadows:le("shadows"),distanceDisplayCondition:le("distanceDisplayCondition")});Pv.prototype.clone=function(e){return l(e)?(e.show=this.show,e.positions=this.positions,e.minimumHeights=this.minimumHeights,e.maximumHeights=this.maximumHeights,e.granularity=this.granularity,e.fill=this.fill,e.material=this.material,e.outline=this.outline,e.outlineColor=this.outlineColor,e.outlineWidth=this.outlineWidth,e.shadows=this.shadows,e.distanceDisplayCondition=this.distanceDisplayCondition,e):new Pv(this)};Pv.prototype.merge=function(e){this.show=y(this.show,e.show),this.positions=y(this.positions,e.positions),this.minimumHeights=y(this.minimumHeights,e.minimumHeights),this.maximumHeights=y(this.maximumHeights,e.maximumHeights),this.granularity=y(this.granularity,e.granularity),this.fill=y(this.fill,e.fill),this.material=y(this.material,e.material),this.outline=y(this.outline,e.outline),this.outlineColor=y(this.outlineColor,e.outlineColor),this.outlineWidth=y(this.outlineWidth,e.outlineWidth),this.shadows=y(this.shadows,e.shadows),this.distanceDisplayCondition=y(this.distanceDisplayCondition,e.distanceDisplayCondition)};var K_=Pv;var JLe=new fe,t9=[];function eNe(e){return new hl(e)}function tNe(e){return le(e,void 0,eNe)}function Ms(e,t){return le(e,void 0,function(n){return n instanceof t?n:new t(n)})}function Ju(e){e=y(e,y.EMPTY_OBJECT);let t=e.id;l(t)||(t=zn()),this._availability=void 0,this._id=t,this._definitionChanged=new me,this._name=e.name,this._show=y(e.show,!0),this._parent=void 0,this._propertyNames=["billboard","box","corridor","cylinder","description","ellipse","ellipsoid","label","model","tileset","orientation","path","plane","point","polygon","polyline","polylineVolume","position","properties","rectangle","viewFrom","wall",...t9],this._billboard=void 0,this._billboardSubscription=void 0,this._box=void 0,this._boxSubscription=void 0,this._corridor=void 0,this._corridorSubscription=void 0,this._cylinder=void 0,this._cylinderSubscription=void 0,this._description=void 0,this._descriptionSubscription=void 0,this._ellipse=void 0,this._ellipseSubscription=void 0,this._ellipsoid=void 0,this._ellipsoidSubscription=void 0,this._label=void 0,this._labelSubscription=void 0,this._model=void 0,this._modelSubscription=void 0,this._tileset=void 0,this._tilesetSubscription=void 0,this._orientation=void 0,this._orientationSubscription=void 0,this._path=void 0,this._pathSubscription=void 0,this._plane=void 0,this._planeSubscription=void 0,this._point=void 0,this._pointSubscription=void 0,this._polygon=void 0,this._polygonSubscription=void 0,this._polyline=void 0,this._polylineSubscription=void 0,this._polylineVolume=void 0,this._polylineVolumeSubscription=void 0,this._position=void 0,this._positionSubscription=void 0,this._properties=void 0,this._propertiesSubscription=void 0,this._rectangle=void 0,this._rectangleSubscription=void 0,this._viewFrom=void 0,this._viewFromSubscription=void 0,this._wall=void 0,this._wallSubscription=void 0,this._children=[],this.entityCollection=void 0,this.parent=e.parent,this.merge(e)}function n9(e,t,n){let i=t.length;for(let o=0;o<i;o++){let r=t[o],s=r._show;(!n&&s)!==(n&&s)&&n9(r,r._children,n)}e._definitionChanged.raiseEvent(e,"isShowing",n,!n)}Object.defineProperties(Ju.prototype,{availability:Kl("availability"),id:{get:function(){return this._id}},definitionChanged:{get:function(){return this._definitionChanged}},name:Kl("name"),show:{get:function(){return this._show},set:function(e){if(e===this._show)return;let t=this.isShowing;this._show=e;let n=this.isShowing;t!==n&&n9(this,this._children,n),this._definitionChanged.raiseEvent(this,"show",e,!e)}},isShowing:{get:function(){return this._show&&(!l(this.entityCollection)||this.entityCollection.show)&&(!l(this._parent)||this._parent.isShowing)}},parent:{get:function(){return this._parent},set:function(e){let t=this._parent;if(t===e)return;let n=this.isShowing;if(l(t)){let o=t._children.indexOf(this);t._children.splice(o,1)}this._parent=e,l(e)&&e._children.push(this);let i=this.isShowing;n!==i&&n9(this,this._children,i),this._definitionChanged.raiseEvent(this,"parent",e,t)}},propertyNames:{get:function(){return this._propertyNames}},billboard:Ms("billboard",Ac),box:Ms("box",zT),corridor:Ms("corridor",GT),cylinder:Ms("cylinder",WT),description:le("description"),ellipse:Ms("ellipse",jT),ellipsoid:Ms("ellipsoid",qT),label:Ms("label",vh),model:Ms("model",Y_),tileset:Ms("tileset",XT),orientation:le("orientation"),path:Ms("path",X_),plane:Ms("plane",zL),point:Ms("point",KT),polygon:Ms("polygon",wh),polyline:Ms("polyline",wc),polylineVolume:Ms("polylineVolume",ZT),properties:Ms("properties",Zl),position:tNe("position"),rectangle:Ms("rectangle",Dh),viewFrom:le("viewFrom"),wall:Ms("wall",K_)});Ju.registerEntityType=function(e,t){Object.defineProperties(Ju.prototype,{[e]:Ms(e,t)}),t9.includes(e)||t9.push(e)};Ju.prototype.isAvailable=function(e){let t=this._availability;return!l(t)||t.contains(e)};Ju.prototype.addProperty=function(e){this._propertyNames.push(e),Object.defineProperty(this,e,Kl(e,!0))};Ju.prototype.removeProperty=function(e){let n=this._propertyNames.indexOf(e);this._propertyNames.splice(n,1),delete this[e]};Ju.prototype.merge=function(e){this.name=y(this.name,e.name),this.availability=y(this.availability,e.availability);let t=this._propertyNames,n=l(e._propertyNames)?e._propertyNames:Object.keys(e),i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r==="parent"||r==="name"||r==="availability"||r==="children")continue;let s=this[r],a=e[r];!l(s)&&t.indexOf(r)===-1&&this.addProperty(r),l(a)&&(l(s)?l(s.merge)&&s.merge(a):l(a.merge)&&l(a.clone)?this[r]=a.clone():this[r]=a)}};var Cne=new $,Ene=new h,Sne=new Me;Ju.prototype.computeModelMatrix=function(e,t){let n=Y.getValueOrUndefined(this._position,e,Ene);if(!l(n))return;let i=Y.getValueOrUndefined(this._orientation,e,Sne);return l(i)?t=F.fromRotationTranslation($.fromQuaternion(i,Cne),n,t):t=Nt.eastNorthUpToFixedFrame(n,void 0,t),t};Ju.prototype.computeModelMatrixForHeightReference=function(e,t,n,i,o){let r=Y.getValueOrDefault(t,e,Ke.NONE),s=Y.getValueOrUndefined(this._position,e,Ene);if(r===Ke.NONE||!l(s)||h.equalsEpsilon(s,h.ZERO,P.EPSILON8))return this.computeModelMatrix(e,o);let a=i.cartesianToCartographic(s,JLe);Ku(r)?a.height=n:a.height+=n,s=i.cartographicToCartesian(a,s);let c=Y.getValueOrUndefined(this._orientation,e,Sne);return l(c)?o=F.fromRotationTranslation($.fromQuaternion(c,Cne),s,o):o=Nt.eastNorthUpToFixedFrame(s,void 0,o),o};Ju.supportsMaterialsforEntitiesOnTerrain=function(e){return dl.supportsMaterials(e)};Ju.supportsPolylinesOnTerrain=function(e){return Eh.isSupported(e)};var ir=Ju;var nNe=new Gt(z.WHITE),iNe=new Xn(!0),oNe=new Xn(!0),rNe=new Xn(!1),sNe=new Xn(z.BLACK),aNe=new Xn(yn.DISABLED),cNe=new Xn(new Ft),lNe=new Xn(kn.BOTH);function Dc(e){let t=e.entity,n=e.geometryPropertyName;this._entity=t,this._scene=e.scene,this._fillEnabled=!1,this._isClosed=!1,this._onTerrain=!1,this._dynamic=!1,this._outlineEnabled=!1,this._geometryChanged=new me,this._showProperty=void 0,this._materialProperty=void 0,this._showOutlineProperty=void 0,this._outlineColorProperty=void 0,this._outlineWidth=1,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._options=e.geometryOptions,this._geometryPropertyName=n,this._id=`${n}-${t.id}`,this._observedPropertyNames=e.observedPropertyNames,this._supportsMaterialsforEntitiesOnTerrain=ir.supportsMaterialsforEntitiesOnTerrain(e.scene)}Object.defineProperties(Dc.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.isConstant(this._fillProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},outlineEnabled:{get:function(){return this._outlineEnabled}},hasConstantOutline:{get:function(){return!this._outlineEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)&&Y.isConstant(this._showOutlineProperty)}},outlineColorProperty:{get:function(){return this._outlineColorProperty}},outlineWidth:{get:function(){return this._outlineWidth}},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{get:function(){return this._isClosed}},onTerrain:{get:function(){return this._onTerrain}},geometryChanged:{get:function(){return this._geometryChanged}}});Dc.prototype.isOutlineVisible=function(e){let t=this._entity,n=this._outlineEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e);return y(n,!1)};Dc.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e);return y(n,!1)};Dc.prototype.createFillGeometryInstance=he.throwInstantiationError;Dc.prototype.createOutlineGeometryInstance=he.throwInstantiationError;Dc.prototype.isDestroyed=function(){return!1};Dc.prototype.destroy=function(){ue(this)};Dc.prototype._isHidden=function(e,t){let n=t.show;return l(n)&&n.isConstant&&!n.getValue(ze.MINIMUM_VALUE)};Dc.prototype._isOnTerrain=function(e,t){return!1};Dc.prototype._getIsClosed=function(e){return!0};Dc.prototype._isDynamic=he.throwInstantiationError;Dc.prototype._setStaticOptions=he.throwInstantiationError;Dc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.fill,s=l(r)&&r.isConstant?r.getValue(ze.MINIMUM_VALUE):!0,a=o.outline,c=l(a);if(c&&a.isConstant&&(c=a.getValue(ze.MINIMUM_VALUE)),!s&&!c){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}let u=o.show;if(this._isHidden(e,o)){(this._fillEnabled||this._outlineEnabled)&&(this._fillEnabled=!1,this._outlineEnabled=!1,this._geometryChanged.raiseEvent(this));return}this._materialProperty=y(o.material,nNe),this._fillProperty=y(r,oNe),this._showProperty=y(u,iNe),this._showOutlineProperty=y(o.outline,rNe),this._outlineColorProperty=c?y(o.outlineColor,sNe):void 0,this._shadowsProperty=y(o.shadows,aNe),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,cNe),this._classificationTypeProperty=y(o.classificationType,lNe),this._fillEnabled=s;let f=this._isOnTerrain(e,o)&&(this._supportsMaterialsforEntitiesOnTerrain||this._materialProperty instanceof Gt);if(c&&f&&(At(At.geometryOutlines),c=!1),this._onTerrain=f,this._outlineEnabled=c,this._isDynamic(e,o))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{this._setStaticOptions(e,o),this._isClosed=this._getIsClosed(this._options);let d=o.outlineWidth;this._outlineWidth=l(d)?d.getValue(ze.MINIMUM_VALUE):1,this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Dc.prototype.createDynamicUpdater=function(e,t){return new this.constructor.DynamicGeometryUpdater(this,e,t)};var ii=Dc;function $T(e,t){this._callback=void 0,this._isConstant=void 0,this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties($T.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}}});var uNe=new K;$T.prototype.getValue=function(e,t){return l(e)||(e=K.now(uNe)),this._callback(e,t)};$T.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};$T.prototype.equals=function(e){return this===e||e instanceof $T&&this._callback===e._callback&&this._isConstant===e._isConstant};var Ih=$T;var vne=new h;function QT(e,t,n,i){this._scene=e,this._heightReference=n,this._extrudedHeightReference=i,this._positionProperty=t,this._position=new h,this._cartographicPosition=new fe,this._normal=new h,this._definitionChanged=new me,this._terrainHeight=0,this._removeCallbackFunc=void 0,this._removeEventListener=void 0,this._removeModeListener=void 0;let o=this;if(l(e.globe)&&(this._removeEventListener=e.terrainProviderChanged.addEventListener(function(){o._updateClamping()}),this._removeModeListener=e.morphComplete.addEventListener(function(){o._updateClamping()})),t.isConstant){let r=t.getValue(ze.MINIMUM_VALUE,vne);if(!l(r)||h.equals(r,h.ZERO)||!l(e.globe))return;this._position=h.clone(r,this._position),this._updateClamping(),this._normal=e.ellipsoid.geodeticSurfaceNormal(r,this._normal)}}Object.defineProperties(QT.prototype,{isConstant:{get:function(){return!1}},definitionChanged:{get:function(){return this._definitionChanged}}});QT.prototype._updateClamping=function(){l(this._removeCallbackFunc)&&this._removeCallbackFunc();let e=this._scene,t=this._position;if(h.equals(t,h.ZERO)){this._terrainHeight=0;return}let i=e.ellipsoid.cartesianToCartographic(t,this._cartographicPosition),o=e.getHeight(i,this._heightReference);l(o)?this._terrainHeight=o:this._terrainHeight=0;let r=s=>{this._terrainHeight=s.height,this.definitionChanged.raiseEvent()};this._removeCallbackFunc=e.updateHeight(i,r,this._heightReference)};var fNe=new K;QT.prototype.getValue=function(e,t){l(e)||(e=K.now(fNe));let n=Y.getValueOrDefault(this._heightReference,e,Ke.NONE),i=Y.getValueOrDefault(this._extrudedHeightReference,e,Ke.NONE);if(n===Ke.NONE&&!wT(i))return this._position=h.clone(h.ZERO,this._position),h.clone(h.ZERO,t);if(this._positionProperty.isConstant)return h.multiplyByScalar(this._normal,this._terrainHeight,t);let o=this._scene,r=this._positionProperty.getValue(e,vne);if(!l(r)||h.equals(r,h.ZERO)||!l(o.globe))return h.clone(h.ZERO,t);if(h.equalsEpsilon(this._position,r,P.EPSILON10))return h.multiplyByScalar(this._normal,this._terrainHeight,t);this._position=h.clone(r,this._position),this._updateClamping();let s=o.ellipsoid.geodeticSurfaceNormal(r,this._normal);return h.multiplyByScalar(s,this._terrainHeight,t)};QT.prototype.isDestroyed=function(){return!1};QT.prototype.destroy=function(){return l(this._removeEventListener)&&this._removeEventListener(),l(this._removeModeListener)&&this._removeModeListener(),l(this._removeCallbackFunc)&&this._removeCallbackFunc(),ue(this)};var JT=QT;function dNe(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference;if(l(r)){let s=new Ih(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new JT(this._scene,s,r)}}var Z_=dNe;var wne=h.ZERO,Dne=new h,hNe=new h,Ine=new z;function mNe(e){this.id=e,this.vertexFormat=void 0,this.dimensions=void 0,this.offsetAttribute=void 0}function $l(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new mNe(e),geometryPropertyName:"box",observedPropertyNames:["availability","position","orientation","box"]}),this._onEntityPropertyChanged(e,"box",e.box,void 0)}l(Object.create)&&($l.prototype=Object.create(ii.prototype),$l.prototype.constructor=$l);Object.defineProperties($l.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});$l.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Gt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,Ine)),l(a)||(a=z.WHITE),s.color=qt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,wne,Dne))),new vt({id:t,geometry:Ga.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:s})};$l.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Ine),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,wne,Dne))),new vt({id:t,geometry:Ah.fromDimensions(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.box.heightReference,this._options.dimensions.z*.5,this._scene.ellipsoid),attributes:r})};$l.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};$l.prototype._isHidden=function(e,t){return!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};$l.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};$l.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Gt?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.dimensions=t.dimensions.getValue(ze.MINIMUM_VALUE,i.dimensions),i.offsetAttribute=n!==Ke.NONE?sn.ALL:void 0};$l.prototype._onEntityPropertyChanged=Z_;$l.DynamicGeometryUpdater=eA;function eA(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(eA.prototype=Object.create(ni.prototype),eA.prototype.constructor=eA);eA.prototype._isHidden=function(e,t,n){let i=Y.getValueOrUndefined(e.position,n,hNe),o=this._options.dimensions;return!l(i)||!l(o)||ni.prototype._isHidden.call(this,e,t,n)};eA.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),o=this._options;o.dimensions=Y.getValueOrUndefined(t.dimensions,n,o.dimensions),o.offsetAttribute=i!==Ke.NONE?sn.ALL:void 0};var HL=$l;function W0(e,t,n){this._callback=void 0,this._isConstant=void 0,this._referenceFrame=y(n,ki.FIXED),this._definitionChanged=new me,this.setCallback(e,t)}Object.defineProperties(W0.prototype,{isConstant:{get:function(){return this._isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var pNe=new K;W0.prototype.getValue=function(e,t){return l(e)||(e=K.now(pNe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};W0.prototype.setCallback=function(e,t){let n=this._callback!==e||this._isConstant!==t;this._callback=e,this._isConstant=t,n&&this._definitionChanged.raiseEvent(this)};W0.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._callback(e,n);return Sh.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};W0.prototype.equals=function(e){return this===e||e instanceof W0&&this._callback===e._callback&&this._isConstant===e._isConstant&&this._referenceFrame===e._referenceFrame};var GL=W0;var Rne=Er(Pne(),1);var _Ne=0,r9={};function Ph(e,t){let n,i=e;l(r9[i])?n=r9[i]:(n=_Ne++,r9[i]=n),t=y(t,!1),this._id=n,this._html=e,this._showOnScreen=t,this._element=void 0}Object.defineProperties(Ph.prototype,{html:{get:function(){return this._html}},id:{get:function(){return this._id}},showOnScreen:{get:function(){return this._showOnScreen},set:function(e){this._showOnScreen=e}},element:{get:function(){if(!l(this._element)){let e=Rne.default.sanitize(this._html),t=document.createElement("div");t.className="cesium-credit-wrapper",t._creditId=this._id,t.style.display="inline",t.innerHTML=e;let n=t.querySelectorAll("a");for(let i=0;i<n.length;i++)n[i].setAttribute("target","_blank");this._element=t}return this._element}}});Ph.equals=function(e,t){return e===t||l(e)&&l(t)&&e._id===t._id&&e._showOnScreen===t._showOnScreen};Ph.prototype.equals=function(e){return Ph.equals(this,e)};Ph.prototype.isIon=function(){return this.html.indexOf("ion-credit.png")!==-1};Ph.getIonCredit=function(e){let t=l(e.collapsible)&&!e.collapsible;return new Ph(e.html,t)};Ph.clone=function(e){if(l(e))return new Ph(e.html,e.showOnScreen)};var wt=Ph;function j0(e){this._url=e,this._cubeMapBuffers=void 0,this._texture=void 0,this._maximumMipmapLevel=void 0,this._loading=!1,this._ready=!1,this._errorEvent=new me}Object.defineProperties(j0.prototype,{url:{get:function(){return this._url}},errorEvent:{get:function(){return this._errorEvent}},texture:{get:function(){return this._texture}},maximumMipmapLevel:{get:function(){return this._maximumMipmapLevel}},ready:{get:function(){return this._ready}}});j0.isSupported=function(e){return(e.colorBufferHalfFloat&&e.halfFloatingPointTexture||e.floatingPointTexture&&e.colorBufferFloat)&&e.supportsTextureLod};function s9(e){e._cubeMapBuffers=void 0}j0.prototype.update=function(e){let{context:t}=e;if(!j0.isSupported(t))return;if(l(this._texture)){s9(this);return}if(!l(this._texture)&&!this._loading){let f=t.textureCache.getTexture(this._url);l(f)&&(s9(this),this._texture=f,this._maximumMipmapLevel=this._texture.maximumMipmapLevel,this._ready=!0)}let n=this._cubeMapBuffers;if(!l(n)&&!this._loading){let f=this;Gl(this._url).then(function(d){f._cubeMapBuffers=d,f._loading=!1}).catch(function(d){f.isDestroyed()||f._errorEvent.raiseEvent(d)}),this._loading=!0}if(!l(this._cubeMapBuffers))return;let{pixelDatatype:i}=n[0].positiveX;l(i)||(i=t.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT);let o=it.RGBA,r=n.length;this._maximumMipmapLevel=r-1;let s=n[0].positiveX.width,a=Math.log2(s)+1;if(r!==a){let f={};Object.values(Dr.FaceName).forEach(d=>{f[d]=void 0});for(let d=r;d<a;d++)n.push(f)}let c=new Qt({minificationFilter:$t.LINEAR_MIPMAP_LINEAR}),u=new Dr({context:t,source:n[0],flipY:!1,pixelDatatype:i,pixelFormat:o,sampler:c});u.loadMipmaps(n.slice(1)),this._texture=u,this._texture.maximumMipmapLevel=this._maximumMipmapLevel,t.textureCache.addTexture(this._url,this._texture),this._ready=!0};j0.prototype.isDestroyed=function(){return!1};j0.prototype.destroy=function(){return s9(this),this._texture=this._texture&&this._texture.destroy(),ue(this)};var Rh=j0;function Rv(e){e=y(e,y.EMPTY_OBJECT);let t=l(e.imageBasedLightingFactor)?U.clone(e.imageBasedLightingFactor):new U(1,1);this._imageBasedLightingFactor=t;let n=e.sphericalHarmonicCoefficients;this._sphericalHarmonicCoefficients=n,this._specularEnvironmentMaps=e.specularEnvironmentMaps,this._specularEnvironmentCubeMap=void 0,this._specularEnvironmentCubeMapDirty=!0,this._specularEnvironmentMapLoaded=!1,this._previousSpecularEnvironmentMapLoaded=!1,this._useDefaultSpecularMaps=!1,this._useDefaultSphericalHarmonics=!1,this._shouldRegenerateShaders=!1,this._previousFrameNumber=void 0,this._previousImageBasedLightingFactor=U.clone(t),this._previousSphericalHarmonicCoefficients=n,this._removeErrorListener=void 0}Object.defineProperties(Rv.prototype,{imageBasedLightingFactor:{get:function(){return this._imageBasedLightingFactor},set:function(e){this._previousImageBasedLightingFactor=U.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor),this._imageBasedLightingFactor=U.clone(e,this._imageBasedLightingFactor)}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients},set:function(e){this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients,this._sphericalHarmonicCoefficients=e}},specularEnvironmentMaps:{get:function(){return this._specularEnvironmentMaps},set:function(e){e!==this._specularEnvironmentMaps&&(this._specularEnvironmentCubeMapDirty=this._specularEnvironmentCubeMapDirty||e!==this._specularEnvironmentMaps,this._specularEnvironmentMapLoaded=!1),this._specularEnvironmentMaps=e}},enabled:{get:function(){return this._imageBasedLightingFactor.x>0||this._imageBasedLightingFactor.y>0}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},specularEnvironmentCubeMap:{get:function(){return this._specularEnvironmentCubeMap}},useDefaultSphericalHarmonics:{get:function(){return this._useDefaultSphericalHarmonics}},useDefaultSpecularMaps:{get:function(){return this._useDefaultSpecularMaps}},useSpecularEnvironmentMaps:{get:function(){return l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready||this._useDefaultSpecularMaps}}});function gNe(e,t){if(Rh.isSupported(t)){if(e._specularEnvironmentCubeMap=e._specularEnvironmentCubeMap&&e._specularEnvironmentCubeMap.destroy(),l(e._specularEnvironmentMaps)){let n=new Rh(e._specularEnvironmentMaps);e._specularEnvironmentCubeMap=n,e._removeErrorListener=n.errorEvent.addEventListener(i=>{console.error(`Error loading specularEnvironmentMaps: ${i}`)})}e._shouldRegenerateShaders=!0}}Rv.prototype.update=function(e){if(e.frameNumber===this._previousFrameNumber)return;this._previousFrameNumber=e.frameNumber;let t=e.context;e.brdfLutGenerator.update(e),this._shouldRegenerateShaders=!1;let n=this._imageBasedLightingFactor,i=this._previousImageBasedLightingFactor;U.equals(n,i)||(this._shouldRegenerateShaders=n.x>0&&i.x===0||n.x===0&&i.x>0,this._shouldRegenerateShaders=this._shouldRegenerateShaders||n.y>0&&i.y===0||n.y===0&&i.y>0,this._previousImageBasedLightingFactor=U.clone(this._imageBasedLightingFactor,this._previousImageBasedLightingFactor)),this._previousSphericalHarmonicCoefficients!==this._sphericalHarmonicCoefficients&&(this._shouldRegenerateShaders=this._shouldRegenerateShaders||l(this._previousSphericalHarmonicCoefficients)!==l(this._sphericalHarmonicCoefficients),this._previousSphericalHarmonicCoefficients=this._sphericalHarmonicCoefficients),this._shouldRegenerateShaders=this._shouldRegenerateShaders||this._previousSpecularEnvironmentMapLoaded!==this._specularEnvironmentMapLoaded,this._previousSpecularEnvironmentMapLoaded=this._specularEnvironmentMapLoaded,this._specularEnvironmentCubeMapDirty&&(gNe(this,t),this._specularEnvironmentCubeMapDirty=!1),l(this._specularEnvironmentCubeMap)&&(this._specularEnvironmentCubeMap.update(e),this._specularEnvironmentCubeMap.ready&&(this._specularEnvironmentMapLoaded=!0));let o=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps)&&!this._useDefaultSpecularMaps,r=!l(e.specularEnvironmentMaps)&&this._useDefaultSpecularMaps,s=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)&&!this._useDefaultSphericalHarmonics,a=!l(e.sphericalHarmonicCoefficients)&&this._useDefaultSphericalHarmonics;this._shouldRegenerateShaders=this._shouldRegenerateShaders||o||r||s||a,this._useDefaultSpecularMaps=!l(this._specularEnvironmentCubeMap)&&l(e.specularEnvironmentMaps),this._useDefaultSphericalHarmonics=!l(this._sphericalHarmonicCoefficients)&&l(e.sphericalHarmonicCoefficients)};Rv.prototype.isDestroyed=function(){return!1};Rv.prototype.destroy=function(){return this._specularEnvironmentCubeMap=this._specularEnvironmentCubeMap&&this._specularEnvironmentCubeMap.destroy(),this._removeErrorListener=this._removeErrorListener&&this._removeErrorListener(),ue(this)};var tA=Rv;var c9=Er(zl(),1);var a9,One="eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJqdGkiOiJiZjBmMDE4Ny05M2JlLTRlMzgtYjIxYi05YmJjM2QwMzJkYWMiLCJpZCI6MjU5LCJpYXQiOjE3MzA0NjY3MDl9.t-7gCGPUe-oGCyCoeXPtYmlMVdgqUQD9mn-Da23yUoI",WL={};WL.defaultAccessToken=One;WL.defaultServer=new De({url:"https://api.cesium.com/"});WL.getDefaultTokenCredit=function(e){if(e===One){if(!l(a9)){let t=`<b> This application is using Cesium's default ion access token. Please assign <i>Cesium.Ion.defaultAccessToken</i> with an access token from your ion account before making any Cesium API calls. You can sign up for a free ion account at <a href="https://cesium.com">https://cesium.com</a>.</b>`;a9=new wt(t,!0)}return a9}};var Oh=WL;function Ic(e,t){let n,i=e.externalType,o=l(i);if(!o)n={url:e.url,retryAttempts:1,retryCallback:yNe};else if(i==="3DTILES"||i==="STK_TERRAIN_SERVER")n={url:e.options.url};else throw new ce("Ion.createResource does not support external imagery assets; use IonImageryProvider instead.");De.call(this,n),this._ionEndpoint=e,this._ionEndpointDomain=o?void 0:new c9.default(e.url).authority(),this._ionEndpointResource=t,this._ionRoot=void 0,this._pendingPromise=void 0,this._credits=void 0,this._isExternal=o}l(Object.create)&&(Ic.prototype=Object.create(De.prototype),Ic.prototype.constructor=Ic);Ic.fromAssetId=function(e,t){let n=Ic._createEndpointResource(e,t);return n.fetchJson().then(function(i){return new Ic(i,n)})};Object.defineProperties(Ic.prototype,{credits:{get:function(){return l(this._ionRoot)?this._ionRoot.credits:l(this._credits)?this._credits:(this._credits=Ic.getCreditsFromEndpoint(this._ionEndpoint,this._ionEndpointResource),this._credits)}}});Ic.getCreditsFromEndpoint=function(e,t){let n=e.attributions.map(wt.getIonCredit),i=Oh.getDefaultTokenCredit(t.queryParameters.access_token);return l(i)&&n.push(wt.clone(i)),n};Ic.prototype.clone=function(e){let t=y(this._ionRoot,this);return l(e)||(e=new Ic(t._ionEndpoint,t._ionEndpointResource)),e=De.prototype.clone.call(this,e),e._ionRoot=t,e._isExternal=this._isExternal,e};Ic.prototype.fetchImage=function(e){if(!this._isExternal){let t=e;e={preferBlob:!0},l(t)&&(e.flipY=t.flipY,e.preferImageBitmap=t.preferImageBitmap)}return De.prototype.fetchImage.call(this,e)};Ic.prototype._makeRequest=function(e){return this._isExternal||new c9.default(this.url).authority()!==this._ionEndpointDomain?De.prototype._makeRequest.call(this,e):(l(e.headers)||(e.headers={}),e.headers.Authorization=`Bearer ${this._ionEndpoint.accessToken}`,e.headers["X-Cesium-Client"]="CesiumJS",typeof CESIUM_VERSION<"u"&&(e.headers["X-Cesium-Client-Version"]=CESIUM_VERSION),De.prototype._makeRequest.call(this,e))};Ic._createEndpointResource=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.server,Oh.defaultServer),i=y(t.accessToken,Oh.defaultAccessToken);n=De.createIfNeeded(n);let o={url:`v1/assets/${e}/endpoint`};return l(i)&&(o.queryParameters={access_token:i}),n.getDerivedResource(o)};function yNe(e,t){let n=y(e._ionRoot,e),i=n._ionEndpointResource,o=typeof Image<"u";return!l(t)||t.statusCode!==401&&!(o&&t.target instanceof Image)?Promise.resolve(!1):(l(n._pendingPromise)||(n._pendingPromise=i.fetchJson().then(function(r){return n._ionEndpoint=r,r}).finally(function(r){return n._pendingPromise=void 0,r})),n._pendingPromise.then(function(r){return e._ionEndpoint=r,!0}))}var ef=Ic;function Mh(e){e=y(e,0),this._array=new Array(e),this._length=e}Object.defineProperties(Mh.prototype,{length:{get:function(){return this._length},set:function(e){let t=this._array,n=this._length;if(e<n)for(let i=e;i<n;++i)t[i]=void 0;else e>t.length&&(t.length=e);this._length=e}},values:{get:function(){return this._array}}});Mh.prototype.get=function(e){return this._array[e]};Mh.prototype.set=function(e,t){e>=this._length&&(this.length=e+1),this._array[e]=t};Mh.prototype.peek=function(){return this._array[this._length-1]};Mh.prototype.push=function(e){let t=this.length++;this._array[t]=e};Mh.prototype.pop=function(){if(this._length===0)return;let e=this._array[this._length-1];return--this.length,e};Mh.prototype.reserve=function(e){e>this._array.length&&(this._array.length=e)};Mh.prototype.resize=function(e){this.length=e};Mh.prototype.trim=function(e){e=y(e,this._length),this._array.length=e};var ml=Mh;var lp={X:0,Y:1,Z:2};lp.Y_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,1,0,-1,0]));lp.Z_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([1,0,0,0,0,-1,0,1,0]));lp.X_UP_TO_Z_UP=F.fromRotationTranslation($.fromArray([0,0,1,0,1,0,-1,0,0]));lp.Z_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,0,-1,0,1,0,1,0,0]));lp.X_UP_TO_Y_UP=F.fromRotationTranslation($.fromArray([0,1,0,-1,0,0,0,0,1]));lp.Y_UP_TO_X_UP=F.fromRotationTranslation($.fromArray([0,-1,0,1,0,0,0,0,1]));lp.fromName=function(e){return lp[e]};var Mo=Object.freeze(lp);function Mne(e){e=y(e,y.EMPTY_OBJECT),this._metadata=e.metadata}Object.defineProperties(Mne.prototype,{metadata:{get:function(){return this._metadata}}});var nA=Mne;function $_(e,t,n){return t=y(t,0),n=y(n,e.byteLength-t),e=e.subarray(t,t+n),$_.decode(e)}$_.decodeWithTextDecoder=function(e){return new TextDecoder("utf-8").decode(e)};$_.decodeWithFromCharCode=function(e){let t="",n=xNe(e),i=n.length;for(let o=0;o<i;++o){let r=n[o];r<=65535?t+=String.fromCharCode(r):(r-=65536,t+=String.fromCharCode((r>>10)+55296,(r&1023)+56320))}return t};function Ov(e,t,n){return t<=e&&e<=n}function xNe(e){let t=0,n=0,i=0,o=128,r=191,s=[],a=e.length;for(let c=0;c<a;++c){let u=e[c];if(i===0){if(Ov(u,0,127)){s.push(u);continue}if(Ov(u,194,223)){i=1,t=u&31;continue}if(Ov(u,224,239)){u===224&&(o=160),u===237&&(r=159),i=2,t=u&15;continue}if(Ov(u,240,244)){u===240&&(o=144),u===244&&(r=143),i=3,t=u&7;continue}throw new ce("String decoding failed.")}if(!Ov(u,o,r)){t=i=n=0,o=128,r=191,--c;continue}o=128,r=191,t=t<<6|u&63,++n,n===i&&(s.push(t),t=i=n=0)}return s}typeof TextDecoder<"u"?$_.decode=$_.decodeWithTextDecoder:$_.decode=$_.decodeWithFromCharCode;var Ql=$_;function bNe(e,t){return t=y(t,0),Ql(e,t,Math.min(4,e.length))}var Lh=bNe;function tf(e,t,n,i){this._tileset=e,this._tile=t,this._resource=n,l(i)||(i=[]),this._contents=i,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(tf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].metadata=e}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e;let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].group=e}}});var Mv=Uint32Array.BYTES_PER_ELEMENT;tf.fromTileType=async function(e,t,n,i,o,r){o=y(o,0);let s=new Uint8Array(i),a=new DataView(i);o+=Mv;let c=a.getUint32(o,!0);if(c!==1)throw new ce(`Only Composite Tile version 1 is supported. Version ${c} is not.`);o+=Mv,o+=Mv;let u=a.getUint32(o,!0);o+=Mv;let f=n.queryParameters.compositeIndex;l(f)?f=`${f}_`:f="";let d=[];d.length=u;for(let m=0;m<u;++m){let x=Lh(s,o),b=a.getUint32(o+Mv*2,!0),T=r[x],A=`${f}${m}`,C=n.getDerivedResource({queryParameters:{compositeIndex:A}});if(l(T))d[m]=Promise.resolve(T(e,t,C,i,o));else throw new ce(`Unknown tile content type, ${x}, inside Composite tile`);o+=b}let p=await Promise.all(d);return new tf(e,t,n,p)};tf.prototype.hasProperty=function(e,t){return!1};tf.prototype.getFeature=function(e){};tf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};tf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};tf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};tf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};tf.prototype.isDestroyed=function(){return!1};tf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var jL=tf;function TNe(e,t,n){return JSON.parse(Ql(e,t,n))}var Lo=TNe;function Ya(e){this._id=zn();let t=e.featuresLength;this._showAlphaProperties=void 0,this._batchValues=void 0,this._batchValuesDirty=!1,this._batchTexture=void 0,this._defaultTexture=void 0,this._pickTexture=void 0,this._pickIds=[];let n,i;if(t>0){let o=Math.min(t,zt.maximumTextureSize),r=Math.ceil(t/zt.maximumTextureSize),s=1/o,a=s*.5,c=1/r,u=c*.5;n=new U(o,r),i=new oe(s,a,c,u)}this._translucentFeaturesLength=0,this._featuresLength=t,this._textureDimensions=n,this._textureStep=i,this._owner=e.owner,this._statistics=e.statistics,this._colorChangedCallback=e.colorChangedCallback}Object.defineProperties(Ya.prototype,{translucentFeaturesLength:{get:function(){return this._translucentFeaturesLength}},byteLength:{get:function(){let e=0;return l(this._pickTexture)&&(e+=this._pickTexture.sizeInBytes),l(this._batchTexture)&&(e+=this._batchTexture.sizeInBytes),e}},textureDimensions:{get:function(){return this._textureDimensions}},textureStep:{get:function(){return this._textureStep}},batchTexture:{get:function(){return this._batchTexture}},defaultTexture:{get:function(){return this._defaultTexture}},pickTexture:{get:function(){return this._pickTexture}}});Ya.DEFAULT_COLOR_VALUE=z.WHITE;Ya.DEFAULT_SHOW_VALUE=!0;function Lne(e){let t=e._textureDimensions;return t.x*t.y*4}function Nne(e){if(!l(e._batchValues)){let t=Lne(e),n=new Uint8Array(t).fill(255);e._batchValues=n}return e._batchValues}function Fne(e){if(!l(e._showAlphaProperties)){let t=2*e._featuresLength,n=new Uint8Array(t).fill(255);e._showAlphaProperties=n}return e._showAlphaProperties}Ya.prototype.setShow=function(e,t){if(t&&!l(this._showAlphaProperties))return;let n=Fne(this),i=e*2,o=t?255:0;if(n[i]!==o){n[i]=o;let r=Nne(this),s=e*4+3;r[s]=t?n[i+1]:0,this._batchValuesDirty=!0}};Ya.prototype.setAllShow=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setShow(n,e)};Ya.prototype.getShow=function(e){if(!l(this._showAlphaProperties))return!0;let t=e*2;return this._showAlphaProperties[t]===255};var ANe=new Array(4);Ya.prototype.setColor=function(e,t){if(z.equals(t,Ya.DEFAULT_COLOR_VALUE)&&!l(this._batchValues))return;let n=t.toBytes(ANe),i=n[3],o=Nne(this),r=e*4,s=Fne(this),a=e*2;if(o[r]!==n[0]||o[r+1]!==n[1]||o[r+2]!==n[2]||s[a+1]!==i){o[r]=n[0],o[r+1]=n[1],o[r+2]=n[2];let c=s[a+1]!==255,u=s[a]!==0;o[r+3]=u?i:0,s[a+1]=i;let f=i!==255;f&&!c?++this._translucentFeaturesLength:!f&&c&&--this._translucentFeaturesLength,this._batchValuesDirty=!0,l(this._colorChangedCallback)&&this._colorChangedCallback(e,t)}};Ya.prototype.setAllColor=function(e){let t=this._featuresLength;for(let n=0;n<t;++n)this.setColor(n,e)};Ya.prototype.getColor=function(e,t){if(!l(this._batchValues))return z.clone(Ya.DEFAULT_COLOR_VALUE,t);let n=this._batchValues,i=e*4,o=this._showAlphaProperties,r=e*2;return z.fromBytes(n[i],n[i+1],n[i+2],o[r+1],t)};Ya.prototype.getPickColor=function(e){return this._pickIds[e]};function Bne(e,t,n){let i=e._textureDimensions;return new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,source:{width:i.x,height:i.y,arrayBufferView:n},flipY:!1,sampler:Qt.NEAREST})}function CNe(e,t){let n=e._featuresLength;if(!l(e._pickTexture)&&n>0){let i=e._pickIds,o=Lne(e),r=new Uint8Array(o),s=e._owner,a=e._statistics;for(let c=0;c<n;++c){let u=t.createPickId(s.getFeature(c));i.push(u);let f=u.color,d=c*4;r[d]=z.floatToByte(f.red),r[d+1]=z.floatToByte(f.green),r[d+2]=z.floatToByte(f.blue),r[d+3]=z.floatToByte(f.alpha)}e._pickTexture=Bne(e,t,r),l(a)&&(a.batchTableByteLength+=e._pickTexture.sizeInBytes)}}function ENe(e){let t=e._textureDimensions;e._batchTexture.copyFrom({source:{width:t.x,height:t.y,arrayBufferView:e._batchValues}})}Ya.prototype.update=function(e,t){let n=t.context;this._defaultTexture=n.defaultTexture;let i=t.passes;(i.pick||i.postProcess)&&CNe(this,n),this._batchValuesDirty&&(this._batchValuesDirty=!1,l(this._batchTexture)||(this._batchTexture=Bne(this,n,this._batchValues),l(this._statistics)&&(this._statistics.batchTableByteLength+=this._batchTexture.sizeInBytes)),ENe(this))};Ya.prototype.isDestroyed=function(){return!1};Ya.prototype.destroy=function(){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),this._pickTexture=this._pickTexture&&this._pickTexture.destroy();let e=this._pickIds,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var pl=Ya;var SNe={SCALAR:1,VEC2:2,VEC3:3,VEC4:4,MAT2:4,MAT3:9,MAT4:16},vNe={SCALAR:void 0,VEC2:U,VEC3:h,VEC4:oe,MAT2:Bi,MAT3:$,MAT4:F};function wNe(e){let t=e.componentType,n;typeof t=="string"?n=X.fromName(t):n=t;let i=SNe[e.type],o=vNe[e.type];return{componentsPerAttribute:i,classType:o,createArrayBufferView:function(r,s,a){return X.createArrayBufferView(n,r,s,i*a)}}}var nf=wNe;function up(e){this._classes=void 0,this._classIds=void 0,this._classIndexes=void 0,this._parentCounts=void 0,this._parentIndexes=void 0,this._parentIds=void 0,this._byteLength=0,DNe(this,e.extension,e.binaryBody)}Object.defineProperties(up.prototype,{byteLength:{get:function(){return this._byteLength}}});function DNe(e,t,n){let i,o,r,s=t.instancesLength,a=t.classes,c=t.classIds,u=t.parentCounts,f=t.parentIds,d=s,p=0;l(c.byteOffset)&&(c.componentType=y(c.componentType,X.UNSIGNED_SHORT),c.type=on.SCALAR,r=nf(c),c=r.createArrayBufferView(n.buffer,n.byteOffset+c.byteOffset,s),p+=c.byteLength);let g;if(l(u)){for(l(u.byteOffset)&&(u.componentType=y(u.componentType,X.UNSIGNED_SHORT),u.type=on.SCALAR,r=nf(u),u=r.createArrayBufferView(n.buffer,n.byteOffset+u.byteOffset,s),p+=u.byteLength),g=new Uint16Array(s),d=0,i=0;i<s;++i)g[i]=d,d+=u[i];p+=g.byteLength}l(f)&&l(f.byteOffset)&&(f.componentType=y(f.componentType,X.UNSIGNED_SHORT),f.type=on.SCALAR,r=nf(f),f=r.createArrayBufferView(n.buffer,n.byteOffset+f.byteOffset,d),p+=f.byteLength);let m=a.length;for(i=0;i<m;++i){let T=a[i].length,A=a[i].instances,C=INe(T,A,n);p+=PNe(C),a[i].instances=xt(C,A)}let x=new Array(m).fill(0),b=new Uint16Array(s);for(i=0;i<s;++i)o=c[i],b[i]=x[o],++x[o];p+=b.byteLength,e._classes=a,e._classIds=c,e._classIndexes=b,e._parentCounts=u,e._parentIndexes=g,e._parentIds=f,e._byteLength=p}function INe(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=nf(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function PNe(e){let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}var RNe=[],ONe=[],MNe=0;function LNe(e,t,n){let i=e._classIds,o=e._parentCounts,r=e._parentIds,s=e._parentIndexes,a=i.length,c=RNe;c.length=Math.max(c.length,a);let u=++MNe,f=ONe;for(f.length=0,f.push(t);f.length>0;){if(t=f.pop(),c[t]===u)continue;c[t]=u;let d=n(e,t);if(l(d))return d;let p=o[t],g=s[t];for(let m=0;m<p;++m){let x=r[g+m];x!==t&&f.push(x)}}}function NNe(e,t,n){let i=!0;for(;i;){let o=n(e,t);if(l(o))return o;let r=e._parentIds[t];i=r!==t,t=r}}function Lv(e,t,n){let i=e._parentCounts,o=e._parentIds;if(l(o)){if(l(i))return LNe(e,t,n)}else return n(e,t);return NNe(e,t,n)}up.prototype.hasProperty=function(e,t){let n=Lv(this,e,function(i,o){let r=i._classIds[o],s=i._classes[r].instances;if(l(s[t]))return!0});return l(n)};up.prototype.propertyExists=function(e){let t=this._classes,n=t.length;for(let i=0;i<n;++i){let o=t[i].instances;if(l(o[e]))return!0}return!1};up.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,Lv(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o].instances;for(let s in r)r.hasOwnProperty(s)&&t.indexOf(s)===-1&&t.push(s)}),t};up.prototype.getProperty=function(e,t){return Lv(this,e,function(n,i){let o=n._classIds[i],r=n._classes[o],s=n._classIndexes[i],a=r.instances[t];if(l(a))return l(a.typedArray)?FNe(a,s):Ge(a[s],!0)})};function FNe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}up.prototype.setProperty=function(e,t,n){let i=Lv(this,e,function(o,r){let s=o._classIds[r],a=o._classes[s],c=o._classIndexes[r],u=a.instances[t];if(l(u))return l(u.typedArray)?BNe(u,c,n):u[c]=Ge(n,!0),!0});return l(i)};function BNe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}up.prototype.isClass=function(e,t){let n=Lv(this,e,function(i,o){let r=i._classIds[o];if(i._classes[r].name===t)return!0});return l(n)};up.prototype.getClassName=function(e){let t=this._classIds[e];return this._classes[t].name};var iA=up;var kNe={HIGHLIGHT:0,REPLACE:1,MIX:2},Jl=Object.freeze(kNe);var l9=pl.DEFAULT_COLOR_VALUE,u9=pl.DEFAULT_SHOW_VALUE;function ro(e,t,n,i,o){this.featuresLength=t;let r;l(n)&&(r=n.extensions),this._extensions=y(r,{});let s=VNe(n);this._properties=s,this._batchTableHierarchy=UNe(this,n,i);let a=Vne(t,s,i);this._binaryPropertiesByteLength=zNe(a),this._batchTableBinaryProperties=a,this._content=e,this._batchTexture=new pl({featuresLength:t,colorChangedCallback:o,owner:e,statistics:e.tileset.statistics})}ro._deprecationWarning=_s;Object.defineProperties(ro.prototype,{batchTableByteLength:{get:function(){let e=this._binaryPropertiesByteLength;return l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e+=this._batchTexture.byteLength,e}}});function VNe(e){let t={};if(!l(e))return t;for(let n in e)e.hasOwnProperty(n)&&n!=="HIERARCHY"&&n!=="extensions"&&n!=="extras"&&(t[n]=Ge(e[n],!0));return t}function UNe(e,t,n){if(!l(t))return;let i=e._extensions["3DTILES_batch_table_hierarchy"],o=t.HIERARCHY;if(l(o)&&(ro._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),e._extensions["3DTILES_batch_table_hierarchy"]=o,i=o),!!l(i))return new iA({extension:i,binaryBody:n})}function Vne(e,t,n){let i;for(let o in t)if(t.hasOwnProperty(o)){let r=t[o],s=r.byteOffset;if(l(s)){let a=r.componentType,c=r.type;if(!l(a))throw new ce("componentType is required.");if(!l(c))throw new ce("type is required.");if(!l(n))throw new ce(`Property ${o} requires a batch table binary.`);let u=nf(r),f=u.componentsPerAttribute,d=u.classType,p=u.createArrayBufferView(n.buffer,n.byteOffset+s,e);l(i)||(i={}),i[o]={typedArray:p,componentCount:f,type:d}}}return i}function zNe(e){if(!l(e))return 0;let t=0;for(let n in e)e.hasOwnProperty(n)&&(t+=e[n].typedArray.byteLength);return t}ro.getBinaryProperties=function(e,t,n){return Vne(e,t,n)};ro.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};ro.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};ro.prototype.getShow=function(e){return this._batchTexture.getShow(e)};ro.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};ro.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};ro.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};ro.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};var HNe=new z;ro.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(l9),this.setAllShow(u9);return}let t=this._content,n=this.featuresLength;for(let i=0;i<n;++i){let o=t.getFeature(i),r=l(e.color)?y(e.color.evaluateColor(o,HNe),l9):l9,s=l(e.show)?y(e.show.evaluate(o),u9):u9;this.setColor(i,r),this.setShow(i,s)}};function GNe(e,t){let n=e.typedArray,i=e.componentCount;return i===1?n[t]:e.type.unpack(n,t*i)}function WNe(e,t,n){let i=e.typedArray,o=e.componentCount;o===1?i[t]=n:e.type.pack(n,i,t*o)}ro.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};ro.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};ro.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};ro.prototype.hasProperty=function(e,t){return l(this._properties[t])||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)};ro.prototype.hasPropertyBySemantic=function(){return!1};ro.prototype.getPropertyIds=function(e,t){t=l(t)?t:[],t.length=0;let n=Object.keys(this._properties);return t.push.apply(t,n),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,n)),t};ro.prototype.getPropertyBySemantic=function(e,t){};ro.prototype.getProperty=function(e,t){if(l(this._batchTableBinaryProperties)){let i=this._batchTableBinaryProperties[t];if(l(i))return GNe(i,e)}let n=this._properties[t];if(l(n))return Ge(n[e],!0);if(l(this._batchTableHierarchy)){let i=this._batchTableHierarchy.getProperty(e,t);if(l(i))return i}};ro.prototype.setProperty=function(e,t,n){let i=this.featuresLength;if(l(this._batchTableBinaryProperties)){let r=this._batchTableBinaryProperties[t];if(l(r)){WNe(r,e,n);return}}if(l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n))return;let o=this._properties[t];l(o)||(this._properties[t]=new Array(i),o=this._properties[t]),o[e]=Ge(n,!0)};function jNe(e){return e._batchTexture.textureDimensions.y===1?`uniform vec4 tile_textureStep; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + return vec2(centerX + (batchId * stepX), 0.5); +} +`:`uniform vec4 tile_textureStep; +uniform vec2 tile_textureDimensions; +vec2 computeSt(float batchId) +{ + float stepX = tile_textureStep.x; + float centerX = tile_textureStep.y; + float stepY = tile_textureStep.z; + float centerY = tile_textureStep.w; + float xId = mod(batchId, tile_textureDimensions.x); + float yId = floor(batchId / tile_textureDimensions.x); + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); +} +`}ro.prototype.getVertexShaderCallback=function(e,t,n){if(this.featuresLength===0)return;let i=this;return function(o){let r=Une(o,n,!1),s;return zt.maximumVertexTextureImageUnits>0?(s="",e&&(s+=`uniform bool tile_translucentCommand; +`),s+=`uniform sampler2D tile_batchTexture; +out vec4 tile_featureColor; +out vec2 tile_featureSt; +void main() +{ + vec2 st = computeSt(${t}); + vec4 featureProperties = texture(tile_batchTexture, st); + tile_color(featureProperties); + float show = ceil(featureProperties.a); + gl_Position *= show; +`,e&&(s+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + gl_Position *= 0.0; + } + } + else + { + if (isStyleTranslucent) + { + gl_Position *= 0.0; + } + } +`),s+=` tile_featureColor = featureProperties; + tile_featureSt = st; +}`):s=`out vec2 tile_featureSt; +void main() +{ + tile_color(vec4(1.0)); + tile_featureSt = computeSt(${t}); +}`,`${r} +${jNe(i)}${s}`}};function kne(e,t){return e=Ue.replaceMain(e,"tile_main"),t?`${e}uniform float tile_colorBlend; +void tile_color(vec4 tile_featureColor) +{ + tile_main(); + tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +} +`:`${e}void tile_color(vec4 tile_featureColor) +{ + tile_main(); +} +`}function qNe(e,t){let n=`texture(${t}`,i=0,o=e.indexOf(n,i),r;for(;o>-1;){let s=0;for(let u=o;u<e.length;++u){let f=e.charAt(u);if(f==="(")++s;else if(f===")"&&(--s,s===0)){r=u+1;break}}let c=`tile_diffuse_final(${e.slice(o,r)}, tile_diffuse)`;e=e.slice(0,o)+c+e.slice(r),i=o+c.length,o=e.indexOf(n,i)}return e}function Une(e,t,n){if(!l(t))return kne(e,n);let i=new RegExp(`(uniform|attribute|in)\\s+(vec[34]|sampler2D)\\s+${t};`),o=e.match(i);if(!l(o))return kne(e,n);let r=o[0],s=o[2];e=Ue.replaceMain(e,"tile_main"),e=e.replace(r,"");let a=`bool isWhite(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} +vec4 tile_diffuse_final(vec4 sourceDiffuse, vec4 tileDiffuse) +{ + vec4 blendDiffuse = mix(sourceDiffuse, tileDiffuse, tile_colorBlend); + vec4 diffuse = isWhite(tileDiffuse.rgb) ? sourceDiffuse : blendDiffuse; + return vec4(diffuse.rgb, sourceDiffuse.a); +} +`,c=` tile_featureColor = czm_gammaCorrect(tile_featureColor); + out_FragColor.a *= tile_featureColor.a; + float highlight = ceil(tile_colorBlend); + out_FragColor.rgb *= mix(tile_featureColor.rgb, vec3(1.0), highlight); +`,u;if(s==="vec3"||s==="vec4"){let f=s==="vec3"?`vec4(${t}, 1.0)`:t,d=s==="vec3"?"tile_diffuse.xyz":"tile_diffuse";i=new RegExp(t,"g"),e=e.replace(i,d),u=` vec4 source = ${f}; + tile_diffuse = tile_diffuse_final(source, tile_featureColor); + tile_main(); +`}else s==="sampler2D"&&(e=qNe(e,t),u=` tile_diffuse = tile_featureColor; + tile_main(); +`);return e=`uniform float tile_colorBlend; +vec4 tile_diffuse = vec4(1.0); +${a}${r} +${e} +void tile_color(vec4 tile_featureColor) +{ +${u}`,n&&(e+=c),e+=`} +`,e}ro.prototype.getFragmentShaderCallback=function(e,t,n){if(this.featuresLength!==0)return function(i){return i=Une(i,t,!0),zt.maximumVertexTextureImageUnits>0?(i+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_color(tile_featureColor); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+="}"):(e&&(i+=`uniform bool tile_translucentCommand; +`),i+=`uniform sampler2D tile_pickTexture; +uniform sampler2D tile_batchTexture; +in vec2 tile_featureSt; +void main() +{ + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } +`,e&&(i+=` bool isStyleTranslucent = (featureProperties.a != 1.0); + if (czm_pass == czm_passTranslucent) + { + if (!isStyleTranslucent && !tile_translucentCommand) + { + discard; + } + } + else + { + if (isStyleTranslucent) + { + discard; + } + } +`),i+=` tile_color(featureProperties); +`,n&&(i+=` out_FragColor.rgb *= out_FragColor.a; +`),i+=`} +`),i}};ro.prototype.getClassificationFragmentShaderCallback=function(){if(this.featuresLength!==0)return function(e){return e=Ue.replaceMain(e,"tile_main"),zt.maximumVertexTextureImageUnits>0?e+=`uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +in vec4 tile_featureColor; +void main() +{ + tile_main(); + out_FragColor = tile_featureColor; + out_FragColor.rgb *= out_FragColor.a; +}`:e+=`uniform sampler2D tile_batchTexture; +uniform sampler2D tile_pickTexture; +in vec2 tile_featureSt; +void main() +{ + tile_main(); + vec4 featureProperties = texture(tile_batchTexture, tile_featureSt); + if (featureProperties.a == 0.0) { + discard; + } + out_FragColor = featureProperties; + out_FragColor.rgb *= out_FragColor.a; +} +`,e}};function YNe(e){let t=e._content.tileset,n=t.colorBlendMode,i=t.colorBlendAmount;if(n===Jl.HIGHLIGHT)return 0;if(n===Jl.REPLACE)return 1;if(n===Jl.MIX)return P.clamp(i,P.EPSILON4,1)}ro.prototype.getUniformMapCallback=function(){if(this.featuresLength===0)return;let e=this;return function(t){return xt(t,{tile_batchTexture:function(){return y(e._batchTexture.batchTexture,e._batchTexture.defaultTexture)},tile_textureDimensions:function(){return e._batchTexture.textureDimensions},tile_textureStep:function(){return e._batchTexture.textureStep},tile_colorBlend:function(){return YNe(e)},tile_pickTexture:function(){return e._batchTexture.pickTexture}})}};ro.prototype.getPickId=function(){return"texture(tile_pickTexture, tile_featureSt)"};var Q_={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};ro.prototype.addDerivedCommands=function(e,t){let n=e.commandList,i=n.length,o=this._content._tile,r=o._finalResolution,s=o.tileset,a=s.isSkippingLevelOfDetail&&s.hasMixedContent&&e.context.stencilBuffer,c=XNe(this);for(let u=t;u<i;++u){let f=n[u];if(f.pass===ve.COMPUTE)continue;let d=f.derivedCommands.tileset;(!l(d)||f.dirty)&&(d={},f.derivedCommands.tileset=d,d.originalCommand=KNe(f),f.dirty=!1);let p=d.originalCommand;c!==Q_.ALL_OPAQUE&&f.pass!==ve.TRANSLUCENT&&(l(d.translucent)||(d.translucent=ZNe(p))),c!==Q_.ALL_TRANSLUCENT&&f.pass!==ve.TRANSLUCENT&&(l(d.opaque)||(d.opaque=$Ne(p)),a&&(r||(l(d.zback)||(d.zback=JNe(e.context,p)),s._backfaceCommands.push(d.zback)),(!l(d.stencil)||o._selectionDepth!==tFe(d.stencil))&&(f.renderState.depthMask?d.stencil=eFe(p,o._selectionDepth):d.stencil=d.opaque)));let g=a?d.stencil:d.opaque,m=d.translucent;f.pass!==ve.TRANSLUCENT?(c===Q_.ALL_OPAQUE&&(n[u]=g),c===Q_.ALL_TRANSLUCENT&&(n[u]=m),c===Q_.OPAQUE_AND_TRANSLUCENT&&(n[u]=g,n.push(m))):n[u]=p}};function XNe(e){let t=e._batchTexture.translucentFeaturesLength;return t===0?Q_.ALL_OPAQUE:t===e.featuresLength?Q_.ALL_TRANSLUCENT:Q_.OPAQUE_AND_TRANSLUCENT}function KNe(e){let t=et.shallowClone(e),n=t.pass===ve.TRANSLUCENT;return t.uniformMap=l(t.uniformMap)?t.uniformMap:{},t.uniformMap.tile_translucentCommand=function(){return n},t}function ZNe(e){let t=et.shallowClone(e);return t.pass=ve.TRANSLUCENT,t.renderState=nFe(e.renderState),t}function $Ne(e){let t=et.shallowClone(e);return t.renderState=iFe(e.renderState),t}function QNe(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"zBackfaceLogDepth");if(!l(n)){let i=t.fragmentShaderSource.clone();i.defines=l(i.defines)?i.defines.slice(0):[],i.defines.push("POLYGON_OFFSET"),n=e.shaderCache.createDerivedShaderProgram(t,"zBackfaceLogDepth",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}return n}function JNe(e,t){let n=et.shallowClone(t),i=Ge(n.renderState,!0);i.cull.enabled=!0,i.cull.face=yi.FRONT,i.colorMask={red:!1,green:!1,blue:!1,alpha:!1},i.polygonOffset={enabled:!0,factor:5,units:5},i.stencilTest=Ht.setCesium3DTileBit(),i.stencilMask=Ht.CESIUM_3D_TILE_MASK,n.renderState=Ve.fromCache(i),n.castShadows=!1,n.receiveShadows=!1,n.uniformMap=Ge(t.uniformMap);let o=new U(5,5);return n.uniformMap.u_polygonOffset=function(){return o},n.shaderProgram=QNe(e,t.shaderProgram),n}function eFe(e,t){let n=et.shallowClone(e),i=Ge(n.renderState,!0);return i.stencilTest.enabled=!0,i.stencilTest.mask=Ht.SKIP_LOD_MASK,i.stencilTest.reference=Ht.CESIUM_3D_TILE_MASK|t<<Ht.SKIP_LOD_BIT_SHIFT,i.stencilTest.frontFunction=Vn.GREATER_OR_EQUAL,i.stencilTest.frontOperation.zPass=mt.REPLACE,i.stencilTest.backFunction=Vn.GREATER_OR_EQUAL,i.stencilTest.backOperation.zPass=mt.REPLACE,i.stencilMask=Ht.CESIUM_3D_TILE_MASK|Ht.SKIP_LOD_MASK,n.renderState=Ve.fromCache(i),n}function tFe(e){return(e.renderState.stencilTest.reference&Ht.SKIP_LOD_MASK)>>>Ht.SKIP_LOD_BIT_SHIFT}function nFe(e){let t=Ge(e,!0);return t.cull.enabled=!1,t.depthTest.enabled=!0,t.depthMask=!1,t.blending=ln.ALPHA_BLEND,t.stencilTest=Ht.setCesium3DTileBit(),t.stencilMask=Ht.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}function iFe(e){let t=Ge(e,!0);return t.stencilTest=Ht.setCesium3DTileBit(),t.stencilMask=Ht.CESIUM_3D_TILE_MASK,Ve.fromCache(t)}ro.prototype.update=function(e,t){this._batchTexture.update(e,t)};ro.prototype.isDestroyed=function(){return!1};ro.prototype.destroy=function(){return this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var J_=ro;function oFe(e){this.offset=e.offset,this.count=e.count,this.color=e.color,this.batchIds=e.batchIds}var fp=oFe;var Nv=`in vec3 position; +in float a_batchId; + +uniform mat4 u_modifiedModelViewProjection; + +void main() +{ + gl_Position = czm_depthClamp(u_modifiedModelViewProjection * vec4(position, 1.0)); +} +`;function of(e,t){this._content=e,this._batchId=t,this._color=void 0}Object.defineProperties(of.prototype,{show:{get:function(){return this._content.batchTable.getShow(this._batchId)},set:function(e){this._content.batchTable.setShow(this._batchId,e)}},color:{get:function(){return l(this._color)||(this._color=new z),this._content.batchTable.getColor(this._batchId,this._color)},set:function(e){this._content.batchTable.setColor(this._batchId,e)}},polylinePositions:{get:function(){if(l(this._content.getPolylinePositions))return this._content.getPolylinePositions(this._batchId)}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},featureId:{get:function(){return this._batchId}},pickId:{get:function(){return this._content.batchTable.getPickColor(this._batchId)}}});of.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};of.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};of.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};of.getPropertyInherited=function(e,t,n){let i=e.batchTable;if(l(i)){if(i.hasPropertyBySemantic(t,n))return i.getPropertyBySemantic(t,n);if(i.hasProperty(t,n))return i.getProperty(t,n)}let o=e.metadata;if(l(o)){if(o.hasPropertyBySemantic(n))return o.getPropertyBySemantic(n);if(o.hasProperty(n))return o.getProperty(n)}let r=e.tile,s=r.metadata;if(l(s)){if(s.hasPropertyBySemantic(n))return s.getPropertyBySemantic(n);if(s.hasProperty(n))return s.getProperty(n)}let a;if(l(r.implicitSubtree)&&(a=r.implicitSubtree.metadata),l(a)){if(a.hasPropertyBySemantic(n))return a.getPropertyBySemantic(n);if(a.hasProperty(n))return a.getProperty(n)}let c=l(e.group)?e.group.metadata:void 0;if(l(c)){if(c.hasPropertyBySemantic(n))return c.getPropertyBySemantic(n);if(c.hasProperty(n))return c.getProperty(n)}let u=e.tileset.metadata;if(l(u)){if(u.hasPropertyBySemantic(n))return u.getPropertyBySemantic(n);if(u.hasProperty(n))return u.getProperty(n)}};of.prototype.getPropertyInherited=function(e){return of.getPropertyInherited(this._content,this._batchId,e)};of.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};of.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};of.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};of.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Zs=of;var f9=class{add(t,n,i){if(typeof arguments[0]!="string")for(let o in arguments[0])this.add(o,arguments[0][o],arguments[1]);else(Array.isArray(t)?t:[t]).forEach(function(o){this[o]=this[o]||[],n&&this[o][i?"unshift":"push"](n)},this)}run(t,n){this[t]=this[t]||[],this[t].forEach(function(i){i.call(n&&n.context?n.context:n,n)})}},d9=class{constructor(t){this.jsep=t,this.registered={}}register(...t){t.forEach(n=>{if(typeof n!="object"||!n.name||!n.init)throw new Error("Invalid JSEP plugin format");this.registered[n.name]||(n.init(this.jsep),this.registered[n.name]=n)})}},_l=class e{static get version(){return"1.3.9"}static toString(){return"JavaScript Expression Parser (JSEP) v"+e.version}static addUnaryOp(t){return e.max_unop_len=Math.max(t.length,e.max_unop_len),e.unary_ops[t]=1,e}static addBinaryOp(t,n,i){return e.max_binop_len=Math.max(t.length,e.max_binop_len),e.binary_ops[t]=n,i?e.right_associative.add(t):e.right_associative.delete(t),e}static addIdentifierChar(t){return e.additional_identifier_chars.add(t),e}static addLiteral(t,n){return e.literals[t]=n,e}static removeUnaryOp(t){return delete e.unary_ops[t],t.length===e.max_unop_len&&(e.max_unop_len=e.getMaxKeyLen(e.unary_ops)),e}static removeAllUnaryOps(){return e.unary_ops={},e.max_unop_len=0,e}static removeIdentifierChar(t){return e.additional_identifier_chars.delete(t),e}static removeBinaryOp(t){return delete e.binary_ops[t],t.length===e.max_binop_len&&(e.max_binop_len=e.getMaxKeyLen(e.binary_ops)),e.right_associative.delete(t),e}static removeAllBinaryOps(){return e.binary_ops={},e.max_binop_len=0,e}static removeLiteral(t){return delete e.literals[t],e}static removeAllLiterals(){return e.literals={},e}get char(){return this.expr.charAt(this.index)}get code(){return this.expr.charCodeAt(this.index)}constructor(t){this.expr=t,this.index=0}static parse(t){return new e(t).parse()}static getMaxKeyLen(t){return Math.max(0,...Object.keys(t).map(n=>n.length))}static isDecimalDigit(t){return t>=48&&t<=57}static binaryPrecedence(t){return e.binary_ops[t]||0}static isIdentifierStart(t){return t>=65&&t<=90||t>=97&&t<=122||t>=128&&!e.binary_ops[String.fromCharCode(t)]||e.additional_identifier_chars.has(String.fromCharCode(t))}static isIdentifierPart(t){return e.isIdentifierStart(t)||e.isDecimalDigit(t)}throwError(t){let n=new Error(t+" at character "+this.index);throw n.index=this.index,n.description=t,n}runHook(t,n){if(e.hooks[t]){let i={context:this,node:n};return e.hooks.run(t,i),i.node}return n}searchHook(t){if(e.hooks[t]){let n={context:this};return e.hooks[t].find(function(i){return i.call(n.context,n),n.node}),n.node}}gobbleSpaces(){let t=this.code;for(;t===e.SPACE_CODE||t===e.TAB_CODE||t===e.LF_CODE||t===e.CR_CODE;)t=this.expr.charCodeAt(++this.index);this.runHook("gobble-spaces")}parse(){this.runHook("before-all");let t=this.gobbleExpressions(),n=t.length===1?t[0]:{type:e.COMPOUND,body:t};return this.runHook("after-all",n)}gobbleExpressions(t){let n=[],i,o;for(;this.index<this.expr.length;)if(i=this.code,i===e.SEMCOL_CODE||i===e.COMMA_CODE)this.index++;else if(o=this.gobbleExpression())n.push(o);else if(this.index<this.expr.length){if(i===t)break;this.throwError('Unexpected "'+this.char+'"')}return n}gobbleExpression(){let t=this.searchHook("gobble-expression")||this.gobbleBinaryExpression();return this.gobbleSpaces(),this.runHook("after-expression",t)}gobbleBinaryOp(){this.gobbleSpaces();let t=this.expr.substr(this.index,e.max_binop_len),n=t.length;for(;n>0;){if(e.binary_ops.hasOwnProperty(t)&&(!e.isIdentifierStart(this.code)||this.index+t.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+t.length))))return this.index+=n,t;t=t.substr(0,--n)}return!1}gobbleBinaryExpression(){let t,n,i,o,r,s,a,c,u;if(s=this.gobbleToken(),!s||(n=this.gobbleBinaryOp(),!n))return s;for(r={value:n,prec:e.binaryPrecedence(n),right_a:e.right_associative.has(n)},a=this.gobbleToken(),a||this.throwError("Expected expression after "+n),o=[s,r,a];n=this.gobbleBinaryOp();){if(i=e.binaryPrecedence(n),i===0){this.index-=n.length;break}r={value:n,prec:i,right_a:e.right_associative.has(n)},u=n;let f=d=>r.right_a&&d.right_a?i>d.prec:i<=d.prec;for(;o.length>2&&f(o[o.length-2]);)a=o.pop(),n=o.pop().value,s=o.pop(),t={type:e.BINARY_EXP,operator:n,left:s,right:a},o.push(t);t=this.gobbleToken(),t||this.throwError("Expected expression after "+u),o.push(r,t)}for(c=o.length-1,t=o[c];c>1;)t={type:e.BINARY_EXP,operator:o[c-1].value,left:o[c-2],right:t},c-=2;return t}gobbleToken(){let t,n,i,o;if(this.gobbleSpaces(),o=this.searchHook("gobble-token"),o)return this.runHook("after-token",o);if(t=this.code,e.isDecimalDigit(t)||t===e.PERIOD_CODE)return this.gobbleNumericLiteral();if(t===e.SQUOTE_CODE||t===e.DQUOTE_CODE)o=this.gobbleStringLiteral();else if(t===e.OBRACK_CODE)o=this.gobbleArray();else{for(n=this.expr.substr(this.index,e.max_unop_len),i=n.length;i>0;){if(e.unary_ops.hasOwnProperty(n)&&(!e.isIdentifierStart(this.code)||this.index+n.length<this.expr.length&&!e.isIdentifierPart(this.expr.charCodeAt(this.index+n.length)))){this.index+=i;let r=this.gobbleToken();return r||this.throwError("missing unaryOp argument"),this.runHook("after-token",{type:e.UNARY_EXP,operator:n,argument:r,prefix:!0})}n=n.substr(0,--i)}e.isIdentifierStart(t)?(o=this.gobbleIdentifier(),e.literals.hasOwnProperty(o.name)?o={type:e.LITERAL,value:e.literals[o.name],raw:o.name}:o.name===e.this_str&&(o={type:e.THIS_EXP})):t===e.OPAREN_CODE&&(o=this.gobbleGroup())}return o?(o=this.gobbleTokenProperty(o),this.runHook("after-token",o)):this.runHook("after-token",!1)}gobbleTokenProperty(t){this.gobbleSpaces();let n=this.code;for(;n===e.PERIOD_CODE||n===e.OBRACK_CODE||n===e.OPAREN_CODE||n===e.QUMARK_CODE;){let i;if(n===e.QUMARK_CODE){if(this.expr.charCodeAt(this.index+1)!==e.PERIOD_CODE)break;i=!0,this.index+=2,this.gobbleSpaces(),n=this.code}this.index++,n===e.OBRACK_CODE?(t={type:e.MEMBER_EXP,computed:!0,object:t,property:this.gobbleExpression()},t.property||this.throwError('Unexpected "'+this.char+'"'),this.gobbleSpaces(),n=this.code,n!==e.CBRACK_CODE&&this.throwError("Unclosed ["),this.index++):n===e.OPAREN_CODE?t={type:e.CALL_EXP,arguments:this.gobbleArguments(e.CPAREN_CODE),callee:t}:(n===e.PERIOD_CODE||i)&&(i&&this.index--,this.gobbleSpaces(),t={type:e.MEMBER_EXP,computed:!1,object:t,property:this.gobbleIdentifier()}),i&&(t.optional=!0),this.gobbleSpaces(),n=this.code}return t}gobbleNumericLiteral(){let t="",n,i;for(;e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(this.code===e.PERIOD_CODE)for(t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);if(n=this.char,n==="e"||n==="E"){for(t+=this.expr.charAt(this.index++),n=this.char,(n==="+"||n==="-")&&(t+=this.expr.charAt(this.index++));e.isDecimalDigit(this.code);)t+=this.expr.charAt(this.index++);e.isDecimalDigit(this.expr.charCodeAt(this.index-1))||this.throwError("Expected exponent ("+t+this.char+")")}return i=this.code,e.isIdentifierStart(i)?this.throwError("Variable names cannot start with a number ("+t+this.char+")"):(i===e.PERIOD_CODE||t.length===1&&t.charCodeAt(0)===e.PERIOD_CODE)&&this.throwError("Unexpected period"),{type:e.LITERAL,value:parseFloat(t),raw:t}}gobbleStringLiteral(){let t="",n=this.index,i=this.expr.charAt(this.index++),o=!1;for(;this.index<this.expr.length;){let r=this.expr.charAt(this.index++);if(r===i){o=!0;break}else if(r==="\\")switch(r=this.expr.charAt(this.index++),r){case"n":t+=` +`;break;case"r":t+="\r";break;case"t":t+=" ";break;case"b":t+="\b";break;case"f":t+="\f";break;case"v":t+="\v";break;default:t+=r}else t+=r}return o||this.throwError('Unclosed quote after "'+t+'"'),{type:e.LITERAL,value:t,raw:this.expr.substring(n,this.index)}}gobbleIdentifier(){let t=this.code,n=this.index;for(e.isIdentifierStart(t)?this.index++:this.throwError("Unexpected "+this.char);this.index<this.expr.length&&(t=this.code,e.isIdentifierPart(t));)this.index++;return{type:e.IDENTIFIER,name:this.expr.slice(n,this.index)}}gobbleArguments(t){let n=[],i=!1,o=0;for(;this.index<this.expr.length;){this.gobbleSpaces();let r=this.code;if(r===t){i=!0,this.index++,t===e.CPAREN_CODE&&o&&o>=n.length&&this.throwError("Unexpected token "+String.fromCharCode(t));break}else if(r===e.COMMA_CODE){if(this.index++,o++,o!==n.length){if(t===e.CPAREN_CODE)this.throwError("Unexpected token ,");else if(t===e.CBRACK_CODE)for(let s=n.length;s<o;s++)n.push(null)}}else if(n.length!==o&&o!==0)this.throwError("Expected comma");else{let s=this.gobbleExpression();(!s||s.type===e.COMPOUND)&&this.throwError("Expected comma"),n.push(s)}}return i||this.throwError("Expected "+String.fromCharCode(t)),n}gobbleGroup(){this.index++;let t=this.gobbleExpressions(e.CPAREN_CODE);if(this.code===e.CPAREN_CODE)return this.index++,t.length===1?t[0]:t.length?{type:e.SEQUENCE_EXP,expressions:t}:!1;this.throwError("Unclosed (")}gobbleArray(){return this.index++,{type:e.ARRAY_EXP,elements:this.gobbleArguments(e.CBRACK_CODE)}}},rFe=new f9;Object.assign(_l,{hooks:rFe,plugins:new d9(_l),COMPOUND:"Compound",SEQUENCE_EXP:"SequenceExpression",IDENTIFIER:"Identifier",MEMBER_EXP:"MemberExpression",LITERAL:"Literal",THIS_EXP:"ThisExpression",CALL_EXP:"CallExpression",UNARY_EXP:"UnaryExpression",BINARY_EXP:"BinaryExpression",ARRAY_EXP:"ArrayExpression",TAB_CODE:9,LF_CODE:10,CR_CODE:13,SPACE_CODE:32,PERIOD_CODE:46,COMMA_CODE:44,SQUOTE_CODE:39,DQUOTE_CODE:34,OPAREN_CODE:40,CPAREN_CODE:41,OBRACK_CODE:91,CBRACK_CODE:93,QUMARK_CODE:63,SEMCOL_CODE:59,COLON_CODE:58,unary_ops:{"-":1,"!":1,"~":1,"+":1},binary_ops:{"||":1,"&&":2,"|":3,"^":4,"&":5,"==":6,"!=":6,"===":6,"!==":6,"<":7,">":7,"<=":7,">=":7,"<<":8,">>":8,">>>":8,"+":9,"-":9,"*":10,"/":10,"%":10},right_associative:new Set,additional_identifier_chars:new Set(["$","_"]),literals:{true:!0,false:!1,null:null},this_str:"this"});_l.max_unop_len=_l.getMaxKeyLen(_l.unary_ops);_l.max_binop_len=_l.getMaxKeyLen(_l.binary_ops);var eg=e=>new _l(e).parse(),sFe=Object.getOwnPropertyNames(class{});Object.getOwnPropertyNames(_l).filter(e=>!sFe.includes(e)&&eg[e]===void 0).forEach(e=>{eg[e]=_l[e]});eg.Jsep=_l;var aFe="ConditionalExpression",cFe={name:"ternary",init(e){e.hooks.add("after-expression",function(n){if(n.node&&this.code===e.QUMARK_CODE){this.index++;let i=n.node,o=this.gobbleExpression();if(o||this.throwError("Expected expression"),this.gobbleSpaces(),this.code===e.COLON_CODE){this.index++;let r=this.gobbleExpression();if(r||this.throwError("Expected expression"),n.node={type:aFe,test:i,consequent:o,alternate:r},i.operator&&e.binary_ops[i.operator]<=.9){let s=i;for(;s.right.operator&&e.binary_ops[s.right.operator]<=.9;)s=s.right;n.node.test=s.right,s.right=n.node,n.node=i}}else this.throwError("Expected :")}})}};eg.plugins.register(cFe);var lFe={VARIABLE:0,UNARY:1,BINARY:2,TERNARY:3,CONDITIONAL:4,MEMBER:5,FUNCTION_CALL:6,ARRAY:7,REGEX:8,VARIABLE_IN_STRING:9,LITERAL_NULL:10,LITERAL_BOOLEAN:11,LITERAL_NUMBER:12,LITERAL_STRING:13,LITERAL_COLOR:14,LITERAL_VECTOR:15,LITERAL_REGEX:16,LITERAL_UNDEFINED:17,BUILTIN_VARIABLE:18},pt=Object.freeze(lFe);function ad(e,t){this._expression=e,e=AFe(e,t),e=EFe(CFe(e)),eg.addBinaryOp("=~",0),eg.addBinaryOp("!~",0);let n;try{n=eg(e)}catch(i){throw new ce(i)}this._runtimeAst=xi(this,n)}Object.defineProperties(ad.prototype,{expression:{get:function(){return this._expression}}});var Pn={arrayIndex:0,arrayArray:[[]],cartesian2Index:0,cartesian3Index:0,cartesian4Index:0,cartesian2Array:[new U],cartesian3Array:[new h],cartesian4Array:[new oe],reset:function(){this.arrayIndex=0,this.cartesian2Index=0,this.cartesian3Index=0,this.cartesian4Index=0},getArray:function(){this.arrayIndex>=this.arrayArray.length&&this.arrayArray.push([]);let e=this.arrayArray[this.arrayIndex++];return e.length=0,e},getCartesian2:function(){return this.cartesian2Index>=this.cartesian2Array.length&&this.cartesian2Array.push(new U),this.cartesian2Array[this.cartesian2Index++]},getCartesian3:function(){return this.cartesian3Index>=this.cartesian3Array.length&&this.cartesian3Array.push(new h),this.cartesian3Array[this.cartesian3Index++]},getCartesian4:function(){return this.cartesian4Index>=this.cartesian4Array.length&&this.cartesian4Array.push(new oe),this.cartesian4Array[this.cartesian4Index++]}};ad.prototype.evaluate=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return t instanceof z&&n instanceof oe?z.fromCartesian4(n,t):n instanceof U||n instanceof h||n instanceof oe?n.clone(t):n};ad.prototype.evaluateColor=function(e,t){Pn.reset();let n=this._runtimeAst.evaluate(e);return z.fromCartesian4(n,t)};ad.prototype.getShaderFunction=function(e,t,n,i){let o=this.getShaderExpression(t,n);return o=`${i} ${e} +{ + return ${o}; +} +`,o};ad.prototype.getShaderExpression=function(e,t){return this._runtimeAst.getShaderExpression(e,t)};ad.prototype.getVariables=function(){let e=[];return this._runtimeAst.getVariables(e),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var uFe=["!","-","+"],zne=["+","-","*","/","%","===","!==",">",">=","<","<=","&&","||","!~","=~"],XL=/\${(.*?)}/g,fFe=/\\/g,dFe="@#%",hFe=/@#%/g,KL=new z,ZL={abs:Ls(Math.abs),sqrt:Ls(Math.sqrt),cos:Ls(Math.cos),sin:Ls(Math.sin),tan:Ls(Math.tan),acos:Ls(Math.acos),asin:Ls(Math.asin),atan:Ls(Math.atan),radians:Ls(P.toRadians),degrees:Ls(P.toDegrees),sign:Ls(P.sign),floor:Ls(Math.floor),ceil:Ls(Math.ceil),round:Ls(Math.round),exp:Ls(Math.exp),exp2:Ls(pFe),log:Ls(Math.log),log2:Ls(_Fe),fract:Ls(mFe),length:gFe,normalize:yFe},$L={atan2:qL(Math.atan2,!1),pow:qL(Math.pow,!1),min:qL(Math.min,!0),max:qL(Math.max,!0),distance:xFe,dot:bFe,cross:TFe},p9={clamp:Hne(P.clamp,!0),mix:Hne(P.lerp,!0)};function mFe(e){return e-Math.floor(e)}function pFe(e){return Math.pow(2,e)}function _Fe(e){return P.log2(e)}function Ls(e){return function(t,n){if(typeof n=="number")return e(n);if(n instanceof U)return U.fromElements(e(n.x),e(n.y),Pn.getCartesian2());if(n instanceof h)return h.fromElements(e(n.x),e(n.y),e(n.z),Pn.getCartesian3());if(n instanceof oe)return oe.fromElements(e(n.x),e(n.y),e(n.z),e(n.w),Pn.getCartesian4());throw new ce(`Function "${t}" requires a vector or number argument. Argument is ${n}.`)}}function qL(e,t){return function(n,i,o){if(t&&typeof o=="number"){if(typeof i=="number")return e(i,o);if(i instanceof U)return U.fromElements(e(i.x,o),e(i.y,o),Pn.getCartesian2());if(i instanceof h)return h.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),Pn.getCartesian3());if(i instanceof oe)return oe.fromElements(e(i.x,o),e(i.y,o),e(i.z,o),e(i.w,o),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number")return e(i,o);if(i instanceof U&&o instanceof U)return U.fromElements(e(i.x,o.x),e(i.y,o.y),Pn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),Pn.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x),e(i.y,o.y),e(i.z,o.z),e(i.w,o.w),Pn.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i} and ${o}.`)}}function Hne(e,t){return function(n,i,o,r){if(t&&typeof r=="number"){if(typeof i=="number"&&typeof o=="number")return e(i,o,r);if(i instanceof U&&o instanceof U)return U.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),Pn.getCartesian2());if(i instanceof h&&o instanceof h)return h.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),Pn.getCartesian3());if(i instanceof oe&&o instanceof oe)return oe.fromElements(e(i.x,o.x,r),e(i.y,o.y,r),e(i.z,o.z,r),e(i.w,o.w,r),Pn.getCartesian4())}if(typeof i=="number"&&typeof o=="number"&&typeof r=="number")return e(i,o,r);if(i instanceof U&&o instanceof U&&r instanceof U)return U.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),Pn.getCartesian2());if(i instanceof h&&o instanceof h&&r instanceof h)return h.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),Pn.getCartesian3());if(i instanceof oe&&o instanceof oe&&r instanceof oe)return oe.fromElements(e(i.x,o.x,r.x),e(i.y,o.y,r.y),e(i.z,o.z,r.z),e(i.w,o.w,r.w),Pn.getCartesian4());throw new ce(`Function "${n}" requires vector or number arguments of matching types. Arguments are ${i}, ${o}, and ${r}.`)}}function gFe(e,t){if(typeof t=="number")return Math.abs(t);if(t instanceof U)return U.magnitude(t);if(t instanceof h)return h.magnitude(t);if(t instanceof oe)return oe.magnitude(t);throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function yFe(e,t){if(typeof t=="number")return 1;if(t instanceof U)return U.normalize(t,Pn.getCartesian2());if(t instanceof h)return h.normalize(t,Pn.getCartesian3());if(t instanceof oe)return oe.normalize(t,Pn.getCartesian4());throw new ce(`Function "${e}" requires a vector or number argument. Argument is ${t}.`)}function xFe(e,t,n){if(typeof t=="number"&&typeof n=="number")return Math.abs(t-n);if(t instanceof U&&n instanceof U)return U.distance(t,n);if(t instanceof h&&n instanceof h)return h.distance(t,n);if(t instanceof oe&&n instanceof oe)return oe.distance(t,n);throw new ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function bFe(e,t,n){if(typeof t=="number"&&typeof n=="number")return t*n;if(t instanceof U&&n instanceof U)return U.dot(t,n);if(t instanceof h&&n instanceof h)return h.dot(t,n);if(t instanceof oe&&n instanceof oe)return oe.dot(t,n);throw new ce(`Function "${e}" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)}function TFe(e,t,n){if(t instanceof h&&n instanceof h)return h.cross(t,n,Pn.getCartesian3());throw new ce(`Function "${e}" requires vec3 arguments. Arguments are ${t} and ${n}.`)}function bt(e,t,n,i,o){this._type=e,this._value=t,this._left=n,this._right=i,this._test=o,this.evaluate=void 0,LFe(this)}function AFe(e,t){if(!l(t))return e;for(let n in t)if(t.hasOwnProperty(n)){let i=new RegExp(`\\$\\{${n}\\}`,"g"),o=`(${t[n]})`;l(o)&&(e=e.replace(i,o))}return e}function CFe(e){return e.replace(fFe,dFe)}function m9(e){return e.replace(hFe,"\\")}function EFe(e){let t=e,n="",i=t.indexOf("${");for(;i>=0;){let o=t.indexOf("'"),r=t.indexOf('"'),s;if(o>=0&&o<i)s=t.indexOf("'",o+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else if(r>=0&&r<i)s=t.indexOf('"',r+1),n+=t.substr(0,s+1),t=t.substr(s+1),i=t.indexOf("${");else{n+=t.substr(0,i);let a=t.indexOf("}");if(a<0)throw new ce("Unmatched {.");n+=`czm_${t.substr(i+2,a-(i+2))}`,t=t.substr(a+1),i=t.indexOf("${")}}return n+=t,n}function SFe(e){let t=typeof e.value;if(e.value===null)return new bt(pt.LITERAL_NULL,null);if(t==="boolean")return new bt(pt.LITERAL_BOOLEAN,e.value);if(t==="number")return new bt(pt.LITERAL_NUMBER,e.value);if(t==="string")return e.value.indexOf("${")>=0?new bt(pt.VARIABLE_IN_STRING,e.value):new bt(pt.LITERAL_STRING,m9(e.value))}function vFe(e,t){let n=t.arguments,i=n.length,o,r,s,a;if(t.callee.type==="MemberExpression"){o=t.callee.property.name;let c=t.callee.object;if(o==="test"||o==="exec"){if(!l(c.callee)||c.callee.name!=="regExp")throw new ce(`${o} is not a function.`);return i===0?o==="test"?new bt(pt.LITERAL_BOOLEAN,!1):new bt(pt.LITERAL_NULL,null):(s=xi(e,c),a=xi(e,n[0]),new bt(pt.FUNCTION_CALL,o,s,a))}else if(o==="toString")return r=xi(e,c),new bt(pt.FUNCTION_CALL,o,r);throw new ce(`Unexpected function call "${o}".`)}if(o=t.callee.name,o==="color"){if(i===0)return new bt(pt.LITERAL_COLOR,o);if(r=xi(e,n[0]),l(n[1])){let c=xi(e,n[1]);return new bt(pt.LITERAL_COLOR,o,[r,c])}return new bt(pt.LITERAL_COLOR,o,[r])}else if(o==="rgb"||o==="hsl"){if(i<3)throw new ce(`${o} requires three arguments.`);return r=[xi(e,n[0]),xi(e,n[1]),xi(e,n[2])],new bt(pt.LITERAL_COLOR,o,r)}else if(o==="rgba"||o==="hsla"){if(i<4)throw new ce(`${o} requires four arguments.`);return r=[xi(e,n[0]),xi(e,n[1]),xi(e,n[2]),xi(e,n[3])],new bt(pt.LITERAL_COLOR,o,r)}else if(o==="vec2"||o==="vec3"||o==="vec4"){r=new Array(i);for(let c=0;c<i;++c)r[c]=xi(e,n[c]);return new bt(pt.LITERAL_VECTOR,o,r)}else{if(o==="isNaN"||o==="isFinite")return i===0?o==="isNaN"?new bt(pt.LITERAL_BOOLEAN,!0):new bt(pt.LITERAL_BOOLEAN,!1):(r=xi(e,n[0]),new bt(pt.UNARY,o,r));if(o==="isExactClass"||o==="isClass"){if(i<1||i>1)throw new ce(`${o} requires exactly one argument.`);return r=xi(e,n[0]),new bt(pt.UNARY,o,r)}else if(o==="getExactClassName"){if(i>0)throw new ce(`${o} does not take any argument.`);return new bt(pt.UNARY,o)}else if(l(ZL[o])){if(i!==1)throw new ce(`${o} requires exactly one argument.`);return r=xi(e,n[0]),new bt(pt.UNARY,o,r)}else if(l($L[o])){if(i!==2)throw new ce(`${o} requires exactly two arguments.`);return s=xi(e,n[0]),a=xi(e,n[1]),new bt(pt.BINARY,o,s,a)}else if(l(p9[o])){if(i!==3)throw new ce(`${o} requires exactly three arguments.`);s=xi(e,n[0]),a=xi(e,n[1]);let c=xi(e,n[2]);return new bt(pt.TERNARY,o,s,a,c)}else{if(o==="Boolean")return i===0?new bt(pt.LITERAL_BOOLEAN,!1):(r=xi(e,n[0]),new bt(pt.UNARY,o,r));if(o==="Number")return i===0?new bt(pt.LITERAL_NUMBER,0):(r=xi(e,n[0]),new bt(pt.UNARY,o,r));if(o==="String")return i===0?new bt(pt.LITERAL_STRING,""):(r=xi(e,n[0]),new bt(pt.UNARY,o,r));if(o==="regExp")return wFe(e,t)}}throw new ce(`Unexpected function call "${o}".`)}function wFe(e,t){let n=t.arguments;if(n.length===0)return new bt(pt.LITERAL_REGEX,new RegExp);let i=xi(e,n[0]),o;if(n.length>1){let r=xi(e,n[1]);if(h9(i)&&h9(r)){try{o=new RegExp(m9(String(i._value)),r._value)}catch(s){throw new ce(s)}return new bt(pt.LITERAL_REGEX,o)}return new bt(pt.REGEX,i,r)}if(h9(i)){try{o=new RegExp(m9(String(i._value)))}catch(r){throw new ce(r)}return new bt(pt.LITERAL_REGEX,o)}return new bt(pt.REGEX,i)}function DFe(e){if(OFe(e.name)){let t=MFe(e.name);return t.substr(0,8)==="tiles3d_"?new bt(pt.BUILTIN_VARIABLE,t):new bt(pt.VARIABLE,t)}else{if(e.name==="NaN")return new bt(pt.LITERAL_NUMBER,NaN);if(e.name==="Infinity")return new bt(pt.LITERAL_NUMBER,1/0);if(e.name==="undefined")return new bt(pt.LITERAL_UNDEFINED,void 0)}throw new ce(`${e.name} is not defined.`)}function IFe(e){let t=e.property.name;if(t==="PI")return new bt(pt.LITERAL_NUMBER,Math.PI);if(t==="E")return new bt(pt.LITERAL_NUMBER,Math.E)}function PFe(e){if(e.property.name==="POSITIVE_INFINITY")return new bt(pt.LITERAL_NUMBER,Number.POSITIVE_INFINITY)}function RFe(e,t){if(t.object.name==="Math")return IFe(t);if(t.object.name==="Number")return PFe(t);let n,i=xi(e,t.object);return t.computed?(n=xi(e,t.property),new bt(pt.MEMBER,"brackets",i,n)):(n=new bt(pt.LITERAL_STRING,t.property.name),new bt(pt.MEMBER,"dot",i,n))}function h9(e){return e._type>=pt.LITERAL_NULL}function OFe(e){return e.substr(0,4)==="czm_"}function MFe(e){return e.substr(4)}function xi(e,t){let n,i,o,r;if(t.type==="Literal")n=SFe(t);else if(t.type==="CallExpression")n=vFe(e,t);else if(t.type==="Identifier")n=DFe(t);else if(t.type==="UnaryExpression"){i=t.operator;let s=xi(e,t.argument);if(uFe.indexOf(i)>-1)n=new bt(pt.UNARY,i,s);else throw new ce(`Unexpected operator "${i}".`)}else if(t.type==="BinaryExpression")if(i=t.operator,o=xi(e,t.left),r=xi(e,t.right),zne.indexOf(i)>-1)n=new bt(pt.BINARY,i,o,r);else throw new ce(`Unexpected operator "${i}".`);else if(t.type==="LogicalExpression")i=t.operator,o=xi(e,t.left),r=xi(e,t.right),zne.indexOf(i)>-1&&(n=new bt(pt.BINARY,i,o,r));else if(t.type==="ConditionalExpression"){let s=xi(e,t.test);o=xi(e,t.consequent),r=xi(e,t.alternate),n=new bt(pt.CONDITIONAL,"?",o,r,s)}else if(t.type==="MemberExpression")n=RFe(e,t);else if(t.type==="ArrayExpression"){let s=[];for(let a=0;a<t.elements.length;a++)s[a]=xi(e,t.elements[a]);n=new bt(pt.ARRAY,s)}else throw t.type==="Compound"?new ce("Provide exactly one expression."):new ce("Cannot parse expression.");return n}function LFe(e){e._type===pt.CONDITIONAL?e.evaluate=e._evaluateConditional:e._type===pt.FUNCTION_CALL?e._value==="test"?e.evaluate=e._evaluateRegExpTest:e._value==="exec"?e.evaluate=e._evaluateRegExpExec:e._value==="toString"&&(e.evaluate=e._evaluateToString):e._type===pt.UNARY?e._value==="!"?e.evaluate=e._evaluateNot:e._value==="-"?e.evaluate=e._evaluateNegative:e._value==="+"?e.evaluate=e._evaluatePositive:e._value==="isNaN"?e.evaluate=e._evaluateNaN:e._value==="isFinite"?e.evaluate=e._evaluateIsFinite:e._value==="isExactClass"?e.evaluate=e._evaluateIsExactClass:e._value==="isClass"?e.evaluate=e._evaluateIsClass:e._value==="getExactClassName"?e.evaluate=e._evaluateGetExactClassName:e._value==="Boolean"?e.evaluate=e._evaluateBooleanConversion:e._value==="Number"?e.evaluate=e._evaluateNumberConversion:e._value==="String"?e.evaluate=e._evaluateStringConversion:l(ZL[e._value])&&(e.evaluate=FFe(e._value)):e._type===pt.BINARY?e._value==="+"?e.evaluate=e._evaluatePlus:e._value==="-"?e.evaluate=e._evaluateMinus:e._value==="*"?e.evaluate=e._evaluateTimes:e._value==="/"?e.evaluate=e._evaluateDivide:e._value==="%"?e.evaluate=e._evaluateMod:e._value==="==="?e.evaluate=e._evaluateEqualsStrict:e._value==="!=="?e.evaluate=e._evaluateNotEqualsStrict:e._value==="<"?e.evaluate=e._evaluateLessThan:e._value==="<="?e.evaluate=e._evaluateLessThanOrEquals:e._value===">"?e.evaluate=e._evaluateGreaterThan:e._value===">="?e.evaluate=e._evaluateGreaterThanOrEquals:e._value==="&&"?e.evaluate=e._evaluateAnd:e._value==="||"?e.evaluate=e._evaluateOr:e._value==="=~"?e.evaluate=e._evaluateRegExpMatch:e._value==="!~"?e.evaluate=e._evaluateRegExpNotMatch:l($L[e._value])&&(e.evaluate=BFe(e._value)):e._type===pt.TERNARY?e.evaluate=kFe(e._value):e._type===pt.MEMBER?e._value==="brackets"?e.evaluate=e._evaluateMemberBrackets:e.evaluate=e._evaluateMemberDot:e._type===pt.ARRAY?e.evaluate=e._evaluateArray:e._type===pt.VARIABLE?e.evaluate=e._evaluateVariable:e._type===pt.VARIABLE_IN_STRING?e.evaluate=e._evaluateVariableString:e._type===pt.LITERAL_COLOR?e.evaluate=e._evaluateLiteralColor:e._type===pt.LITERAL_VECTOR?e.evaluate=e._evaluateLiteralVector:e._type===pt.LITERAL_STRING?e.evaluate=e._evaluateLiteralString:e._type===pt.REGEX?e.evaluate=e._evaluateRegExp:e._type===pt.BUILTIN_VARIABLE?e._value==="tiles3d_tileset_time"&&(e.evaluate=NFe):e.evaluate=e._evaluateLiteral}function NFe(e){return l(e)?e.content.tileset.timeSinceLoad:0}function FFe(e){let t=ZL[e];return function(n){let i=this._left.evaluate(n);return t(e,i)}}function BFe(e){let t=$L[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n);return t(e,i,o)}}function kFe(e){let t=p9[e];return function(n){let i=this._left.evaluate(n),o=this._right.evaluate(n),r=this._test.evaluate(n);return t(e,i,o,r)}}function QL(e,t){if(l(e))return e.getPropertyInherited(t)}bt.prototype._evaluateLiteral=function(){return this._value};bt.prototype._evaluateLiteralColor=function(e){let t=KL,n=this._left;if(this._value==="color")l(n)?n.length>1?(z.fromCssColorString(n[0].evaluate(e),t),t.alpha=n[1].evaluate(e)):z.fromCssColorString(n[0].evaluate(e),t):z.fromBytes(255,255,255,255,t);else if(this._value==="rgb")z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),255,t);else if(this._value==="rgba"){let i=n[3].evaluate(e)*255;z.fromBytes(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),i,t)}else this._value==="hsl"?z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),1,t):this._value==="hsla"&&z.fromHsl(n[0].evaluate(e),n[1].evaluate(e),n[2].evaluate(e),n[3].evaluate(e),t);return oe.fromColor(t,Pn.getCartesian4())};bt.prototype._evaluateLiteralVector=function(e){let t=Pn.getArray(),n=this._value,i=this._left,o=i.length;for(let a=0;a<o;++a){let c=i[a].evaluate(e);if(typeof c=="number")t.push(c);else if(c instanceof U)t.push(c.x,c.y);else if(c instanceof h)t.push(c.x,c.y,c.z);else if(c instanceof oe)t.push(c.x,c.y,c.z,c.w);else throw new ce(`${n} argument must be a vector or number. Argument is ${c}.`)}let r=t.length,s=parseInt(n.charAt(3));if(r===0)throw new ce(`Invalid ${n} constructor. No valid arguments.`);if(r<s&&r>1)throw new ce(`Invalid ${n} constructor. Not enough arguments.`);if(r>s&&o>1)throw new ce(`Invalid ${n} constructor. Too many arguments.`);if(r===1){let a=t[0];t.push(a,a,a)}if(n==="vec2")return U.fromArray(t,0,Pn.getCartesian2());if(n==="vec3")return h.fromArray(t,0,Pn.getCartesian3());if(n==="vec4")return oe.fromArray(t,0,Pn.getCartesian4())};bt.prototype._evaluateLiteralString=function(){return this._value};bt.prototype._evaluateVariableString=function(e){let t=this._value,n=XL.exec(t);for(;n!==null;){let i=n[0],o=n[1],r=QL(e,o);l(r)||(r=""),t=t.replace(i,r),n=XL.exec(t)}return t};bt.prototype._evaluateVariable=function(e){return QL(e,this._value)};function q0(e){return e._value==="feature"}bt.prototype._evaluateMemberDot=function(e){if(q0(this._left))return QL(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof U||t instanceof h||t instanceof oe){if(n==="r")return t.x;if(n==="g")return t.y;if(n==="b")return t.z;if(n==="a")return t.w}return t[n]};bt.prototype._evaluateMemberBrackets=function(e){if(q0(this._left))return QL(e,this._right.evaluate(e));let t=this._left.evaluate(e);if(!l(t))return;let n=this._right.evaluate(e);if(t instanceof U||t instanceof h||t instanceof oe){if(n===0||n==="r")return t.x;if(n===1||n==="g")return t.y;if(n===2||n==="b")return t.z;if(n===3||n==="a")return t.w}return t[n]};bt.prototype._evaluateArray=function(e){let t=[];for(let n=0;n<this._value.length;n++)t[n]=this._value[n].evaluate(e);return t};bt.prototype._evaluateNot=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "!" requires a boolean argument. Argument is ${t}.`);return!t};bt.prototype._evaluateNegative=function(e){let t=this._left.evaluate(e);if(t instanceof U)return U.negate(t,Pn.getCartesian2());if(t instanceof h)return h.negate(t,Pn.getCartesian3());if(t instanceof oe)return oe.negate(t,Pn.getCartesian4());if(typeof t=="number")return-t;throw new ce(`Operator "-" requires a vector or number argument. Argument is ${t}.`)};bt.prototype._evaluatePositive=function(e){let t=this._left.evaluate(e);if(!(t instanceof U||t instanceof h||t instanceof oe||typeof t=="number"))throw new ce(`Operator "+" requires a vector or number argument. Argument is ${t}.`);return t};bt.prototype._evaluateLessThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<" requires number arguments. Arguments are ${t} and ${n}.`);return t<n};bt.prototype._evaluateLessThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator "<=" requires number arguments. Arguments are ${t} and ${n}.`);return t<=n};bt.prototype._evaluateGreaterThan=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">" requires number arguments. Arguments are ${t} and ${n}.`);return t>n};bt.prototype._evaluateGreaterThanOrEquals=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(typeof t!="number"||typeof n!="number")throw new ce(`Operator ">=" requires number arguments. Arguments are ${t} and ${n}.`);return t>=n};bt.prototype._evaluateOr=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "||" requires boolean arguments. First argument is ${t}.`);if(t)return!0;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "||" requires boolean arguments. Second argument is ${n}.`);return t||n};bt.prototype._evaluateAnd=function(e){let t=this._left.evaluate(e);if(typeof t!="boolean")throw new ce(`Operator "&&" requires boolean arguments. First argument is ${t}.`);if(!t)return!1;let n=this._right.evaluate(e);if(typeof n!="boolean")throw new ce(`Operator "&&" requires boolean arguments. Second argument is ${n}.`);return t&&n};bt.prototype._evaluatePlus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof U&&t instanceof U)return U.add(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.add(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.add(t,n,Pn.getCartesian4());if(typeof t=="string"||typeof n=="string")return t+n;if(typeof t=="number"&&typeof n=="number")return t+n;throw new ce(`Operator "+" requires vector or number arguments of matching types, or at least one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMinus=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof U&&t instanceof U)return U.subtract(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.subtract(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.subtract(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t-n;throw new ce(`Operator "-" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateTimes=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof U&&t instanceof U)return U.multiplyComponents(t,n,Pn.getCartesian2());if(n instanceof U&&typeof t=="number")return U.multiplyByScalar(n,t,Pn.getCartesian2());if(t instanceof U&&typeof n=="number")return U.multiplyByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.multiplyComponents(t,n,Pn.getCartesian3());if(n instanceof h&&typeof t=="number")return h.multiplyByScalar(n,t,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.multiplyByScalar(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.multiplyComponents(t,n,Pn.getCartesian4());if(n instanceof oe&&typeof t=="number")return oe.multiplyByScalar(n,t,Pn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.multiplyByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t*n;throw new ce(`Operator "*" requires vector or number arguments. If both arguments are vectors they must be matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateDivide=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof U&&t instanceof U)return U.divideComponents(t,n,Pn.getCartesian2());if(t instanceof U&&typeof n=="number")return U.divideByScalar(t,n,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.divideComponents(t,n,Pn.getCartesian3());if(t instanceof h&&typeof n=="number")return h.divideByScalar(t,n,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.divideComponents(t,n,Pn.getCartesian4());if(t instanceof oe&&typeof n=="number")return oe.divideByScalar(t,n,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t/n;throw new ce(`Operator "/" requires vector or number arguments of matching types, or a number as the second argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateMod=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(n instanceof U&&t instanceof U)return U.fromElements(t.x%n.x,t.y%n.y,Pn.getCartesian2());if(n instanceof h&&t instanceof h)return h.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,Pn.getCartesian3());if(n instanceof oe&&t instanceof oe)return oe.fromElements(t.x%n.x,t.y%n.y,t.z%n.z,t.w%n.w,Pn.getCartesian4());if(typeof t=="number"&&typeof n=="number")return t%n;throw new ce(`Operator "%" requires vector or number arguments of matching types. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof U&&t instanceof U||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?t.equals(n):t===n};bt.prototype._evaluateNotEqualsStrict=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);return n instanceof U&&t instanceof U||n instanceof h&&t instanceof h||n instanceof oe&&t instanceof oe?!t.equals(n):t!==n};bt.prototype._evaluateConditional=function(e){let t=this._test.evaluate(e);if(typeof t!="boolean")throw new ce(`Conditional argument of conditional expression must be a boolean. Argument is ${t}.`);return t?this._left.evaluate(e):this._right.evaluate(e)};bt.prototype._evaluateNaN=function(e){return isNaN(this._left.evaluate(e))};bt.prototype._evaluateIsFinite=function(e){return isFinite(this._left.evaluate(e))};bt.prototype._evaluateIsExactClass=function(e){return l(e)?e.isExactClass(this._left.evaluate(e)):!1};bt.prototype._evaluateIsClass=function(e){return l(e)?e.isClass(this._left.evaluate(e)):!1};bt.prototype._evaluateGetExactClassName=function(e){if(l(e))return e.getExactClassName()};bt.prototype._evaluateBooleanConversion=function(e){return!!this._left.evaluate(e)};bt.prototype._evaluateNumberConversion=function(e){return Number(this._left.evaluate(e))};bt.prototype._evaluateStringConversion=function(e){return String(this._left.evaluate(e))};bt.prototype._evaluateRegExp=function(e){let t=this._value.evaluate(e),n="";l(this._left)&&(n=this._left.evaluate(e));let i;try{i=new RegExp(t,n)}catch(o){throw new ce(o)}return i};bt.prototype._evaluateRegExpTest=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`RegExp.test requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);return t.test(n)};bt.prototype._evaluateRegExpMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return t.test(n);if(n instanceof RegExp&&typeof t=="string")return n.test(t);throw new ce(`Operator "=~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateRegExpNotMatch=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(t instanceof RegExp&&typeof n=="string")return!t.test(n);if(n instanceof RegExp&&typeof t=="string")return!n.test(t);throw new ce(`Operator "!~" requires one RegExp argument and one string argument. Arguments are ${t} and ${n}.`)};bt.prototype._evaluateRegExpExec=function(e){let t=this._left.evaluate(e),n=this._right.evaluate(e);if(!(t instanceof RegExp&&typeof n=="string"))throw new ce(`RegExp.exec requires the first argument to be a RegExp and the second argument to be a string. Arguments are ${t} and ${n}.`);let i=t.exec(n);return l(i)?i[1]:null};bt.prototype._evaluateToString=function(e){let t=this._left.evaluate(e);if(t instanceof RegExp||t instanceof U||t instanceof h||t instanceof oe)return String(t);throw new ce(`Unexpected function call "${this._value}".`)};function Gne(e){let t=e._left,n=t.length;for(let a=0;a<n;++a)if(t[a]._type!==pt.LITERAL_NUMBER)return;let i=t[0]._value,o=t[1]._value,r=t[2]._value,s=n===4?t[3]._value:1;return z.fromHsl(i,o,r,s,KL)}function Wne(e){let t=e._left,n=t.length;for(let o=0;o<n;++o)if(t[o]._type!==pt.LITERAL_NUMBER)return;let i=KL;return i.red=t[0]._value/255,i.green=t[1]._value/255,i.blue=t[2]._value/255,i.alpha=n===4?t[3]._value:1,i}function tg(e){return e%1===0?e.toFixed(1):e.toString()}function VFe(e){let t=tg(e.red),n=tg(e.green),i=tg(e.blue);return`vec3(${t}, ${n}, ${i})`}function YL(e){let t=tg(e.red),n=tg(e.green),i=tg(e.blue),o=tg(e.alpha);return`vec4(${t}, ${n}, ${i}, ${o})`}function jne(e,t,n,i){let o=e.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=e[s].getShaderExpression(t,n,i);return r}function qne(e,t){return l(t[e])?t[e]:ad.NULL_SENTINEL}ad.NULL_SENTINEL="czm_infinity";bt.prototype.getShaderExpression=function(e,t,n){let i,o,r,s,a=this._type,c=this._value;l(this._left)&&(Array.isArray(this._left)?o=jne(this._left,e,t,this):o=this._left.getShaderExpression(e,t,this)),l(this._right)&&(r=this._right.getShaderExpression(e,t,this)),l(this._test)&&(s=this._test.getShaderExpression(e,t,this)),Array.isArray(this._value)&&(c=jne(this._value,e,t,this));let u,f,d;switch(a){case pt.VARIABLE:return q0(this)?void 0:qne(c,e);case pt.UNARY:if(c==="Boolean")return`bool(${o})`;if(c==="Number")return`float(${o})`;if(c==="round")return`floor(${o} + 0.5)`;if(l(ZL[c]))return`${c}(${o})`;if(c==="isNaN")return`(${o} != ${o})`;if(c==="isFinite")return`(abs(${o}) < czm_infinity)`;if(c==="String"||c==="isExactClass"||c==="isClass"||c==="getExactClassName")throw new ce(`Error generating style shader: "${c}" is not supported.`);return c+o;case pt.BINARY:return c==="%"?`mod(${o}, ${r})`:c==="==="?`(${o} == ${r})`:c==="!=="?`(${o} != ${r})`:c==="atan2"?`atan(${o}, ${r})`:l($L[c])?`${c}(${o}, ${r})`:`(${o} ${c} ${r})`;case pt.TERNARY:if(l(p9[c]))return`${c}(${o}, ${r}, ${s})`;break;case pt.CONDITIONAL:return`(${s} ? ${o} : ${r})`;case pt.MEMBER:return q0(this._left)?qne(r,e):r==="r"||r==="x"||r==="0.0"?`${o}[0]`:r==="g"||r==="y"||r==="1.0"?`${o}[1]`:r==="b"||r==="z"||r==="2.0"?`${o}[2]`:r==="a"||r==="w"||r==="3.0"?`${o}[3]`:`${o}[int(${r})]`;case pt.FUNCTION_CALL:throw new ce(`Error generating style shader: "${c}" is not supported.`);case pt.ARRAY:if(c.length===4)return`vec4(${c[0]}, ${c[1]}, ${c[2]}, ${c[3]})`;if(c.length===3)return`vec3(${c[0]}, ${c[1]}, ${c[2]})`;if(c.length===2)return`vec2(${c[0]}, ${c[1]})`;throw new ce("Error generating style shader: Invalid array length. Array length should be 2, 3, or 4.");case pt.REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case pt.VARIABLE_IN_STRING:throw new ce("Error generating style shader: Converting a variable to a string is not supported.");case pt.LITERAL_NULL:return ad.NULL_SENTINEL;case pt.LITERAL_BOOLEAN:return c?"true":"false";case pt.LITERAL_NUMBER:return tg(c);case pt.LITERAL_STRING:if(l(n)&&n._type===pt.MEMBER&&(c==="r"||c==="g"||c==="b"||c==="a"||c==="x"||c==="y"||c==="z"||c==="w"||q0(n._left)))return c;if(i=z.fromCssColorString(c,KL),l(i))return VFe(i);throw new ce("Error generating style shader: String literals are not supported.");case pt.LITERAL_COLOR:if(u=o,c==="color"){if(l(u)){if(u.length>1){let p=u[0],g=u[1];return g!=="1.0"&&(t.translucent=!0),`vec4(${p}, ${g})`}}else return"vec4(1.0)";return`vec4(${u[0]}, 1.0)`}else{if(c==="rgb")return i=Wne(this),l(i)?YL(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, 1.0)`;if(c==="rgba")return u[3]!=="1.0"&&(t.translucent=!0),i=Wne(this),l(i)?YL(i):`vec4(${u[0]} / 255.0, ${u[1]} / 255.0, ${u[2]} / 255.0, ${u[3]})`;if(c==="hsl")return i=Gne(this),l(i)?YL(i):`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), 1.0)`;if(c==="hsla")return i=Gne(this),l(i)?(i.alpha!==1&&(t.translucent=!0),YL(i)):(u[3]!=="1.0"&&(t.translucent=!0),`vec4(czm_HSLToRGB(vec3(${u[0]}, ${u[1]}, ${u[2]})), ${u[3]})`)}break;case pt.LITERAL_VECTOR:f=o.length,d=`${c}(`;for(let p=0;p<f;++p)d+=o[p],p<f-1&&(d+=", ");return d+=")",d;case pt.LITERAL_REGEX:throw new ce("Error generating style shader: Regular expressions are not supported.");case pt.LITERAL_UNDEFINED:return ad.NULL_SENTINEL;case pt.BUILTIN_VARIABLE:if(c==="tiles3d_tileset_time")return c}};bt.prototype.getVariables=function(e,t){let n,i,o,r=this._type,s=this._value;if(l(this._left))if(Array.isArray(this._left))for(n=this._left,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);else this._left.getVariables(e,this);if(l(this._right)&&this._right.getVariables(e,this),l(this._test)&&this._test.getVariables(e,this),Array.isArray(this._value))for(n=this._value,i=n.length,o=0;o<i;++o)n[o].getVariables(e,this);let a;switch(r){case pt.VARIABLE:q0(this)||e.push(s);break;case pt.VARIABLE_IN_STRING:for(a=XL.exec(s);a!==null;)e.push(a[1]),a=XL.exec(s);break;case pt.LITERAL_STRING:l(t)&&t._type===pt.MEMBER&&q0(t._left)&&e.push(s);break}};var cd=ad;function dp(e){e=y(e,y.EMPTY_OBJECT),this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._vertexBatchIds=e.vertexBatchIds,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=e.indexOffsets,this._batchedIndices=e.batchedIndices,this._boundingVolume=e.boundingVolume,this._boundingVolumes=e.boundingVolumes,this._center=y(e.center,h.ZERO),this._va=void 0,this._sp=void 0,this._spStencil=void 0,this._spPick=void 0,this._uniformMap=void 0,this._vaSwap=void 0,this._rsStencilDepthPass=void 0,this._rsStencilDepthPass3DTiles=void 0,this._rsColorPass=void 0,this._rsPickPass=void 0,this._rsWireframe=void 0,this._commands=[],this._commandsIgnoreShow=[],this._pickCommands=[],this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._batchDirty=!0,this._pickCommandsDirty=!0,this._framesSinceLastRebatch=0,this._updatingAllCommands=!1,this._trianglesLength=this._indices.length/3,this._geometryByteLength=this._indices.byteLength+this._positions.byteLength+this._vertexBatchIds.byteLength,this.debugWireframe=!1,this._debugWireframe=this.debugWireframe,this._wireframeDirty=!1,this.forceRebatch=!1,this.classificationType=y(e.classificationType,kn.BOTH),this._vertexShaderSource=e._vertexShaderSource,this._fragmentShaderSource=e._fragmentShaderSource,this._attributeLocations=e._attributeLocations,this._uniformMap=e._uniformMap,this._pickId=e._pickId,this._modelMatrix=e._modelMatrix,this._boundingSphere=e._boundingSphere,this._batchIdLookUp={};let t=this._batchIds.length;for(let n=0;n<t;++n){let i=this._batchIds[n];this._batchIdLookUp[i]=n}}Object.defineProperties(dp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}}});var UFe={position:0,a_batchId:1};function zFe(e,t){if(l(e._va))return;let n=yt.createVertexBuffer({context:t,typedArray:e._positions,usage:Fe.STATIC_DRAW}),i=yt.createVertexBuffer({context:t,typedArray:e._vertexBatchIds,usage:Fe.STATIC_DRAW}),o=yt.createIndexBuffer({context:t,typedArray:e._indices,usage:Fe.DYNAMIC_DRAW,indexDatatype:e._indices.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),r=[{index:0,vertexBuffer:n,componentDatatype:X.fromTypedArray(e._positions),componentsPerAttribute:3},{index:1,vertexBuffer:i,componentDatatype:X.fromTypedArray(e._vertexBatchIds),componentsPerAttribute:1}];e._va=new ti({context:t,attributes:r,indexBuffer:o}),t.webgl2&&(e._vaSwap=new ti({context:t,attributes:r,indexBuffer:yt.createIndexBuffer({context:t,sizeInBytes:o.sizeInBytes,usage:Fe.DYNAMIC_DRAW,indexDatatype:o.indexDatatype})})),e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0}function HFe(e,t){if(l(e._sp))return;let n=e._batchTable,i=y(e._attributeLocations,UFe),o=e._pickId,r=e._vertexShaderSource,s=e._fragmentShaderSource;if(l(r)){e._sp=en.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i}),e._spStencil=e._sp,s=Ue.replaceMain(s,"czm_non_pick_main"),s=`${s}void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`,e._spPick=en.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:i});return}let a=n.getVertexShaderCallback(!1,"a_batchId",void 0)(Nv),c=n.getFragmentShaderCallback(!1,void 0,!0)(F0);o=n.getPickId();let u=new Ue({sources:[a]}),f=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._sp=en.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),u=new Ue({sources:[Nv]}),f=new Ue({defines:["VECTOR_TILE"],sources:[F0]}),e._spStencil=en.fromCache({context:t,vertexShaderSource:u,fragmentShaderSource:f,attributeLocations:i}),c=Ue.replaceMain(c,"czm_non_pick_main"),c=`${c} +void main() +{ + czm_non_pick_main(); + out_FragColor = ${o}; +} +`;let d=new Ue({sources:[a]}),p=new Ue({defines:["VECTOR_TILE"],sources:[c]});e._spPick=en.fromCache({context:t,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:i})}function Yne(e){let t=e?Vn.EQUAL:Vn.ALWAYS;return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:t,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:t,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Ec.LESS_OR_EQUAL},depthMask:!1}}var GFe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:ln.PRE_MULTIPLIED_ALPHA_BLEND},WFe={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1};function jFe(e){l(e._rsStencilDepthPass)||(e._rsStencilDepthPass=Ve.fromCache(Yne(!1)),e._rsStencilDepthPass3DTiles=Ve.fromCache(Yne(!0)),e._rsColorPass=Ve.fromCache(GFe),e._rsPickPass=Ve.fromCache(WFe))}var Y0=new F,Xne=new h;function qFe(e,t){if(l(e._uniformMap))return;let n={u_modifiedModelViewProjection:function(){let i=t.uniformState.view,o=t.uniformState.projection;return F.clone(i,Y0),F.multiplyByPoint(Y0,e._center,Xne),F.setTranslation(Y0,Xne,Y0),F.multiply(o,Y0,Y0),Y0},u_highlightColor:function(){return e._highlightColor}};e._uniformMap=e._batchTable.getUniformMapCallback()(n)}function _9(e,t,n,i,o,r,s){let a=e.constructor.BYTES_PER_ELEMENT,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d],m=new e.constructor(e.buffer,a*p,g);t.set(m,n),i[d]=n,n+=g}return n}function YFe(e,t){let n=e._indices,i=e._indexOffsets,o=e._indexCounts,r=e._batchIdLookUp,s=new n.constructor(n.length),a=t.pop(),c=[a],u=_9(n,s,0,i,o,a.batchIds,r);for(a.offset=0,a.count=u;t.length>0;){let f=t.pop();if(z.equals(f.color,a.color))u=_9(n,s,u,i,o,f.batchIds,r),a.batchIds=a.batchIds.concat(f.batchIds),a.count=u-a.offset;else{let d=u;u=_9(n,s,u,i,o,f.batchIds,r),f.offset=d,f.count=u-d,c.push(f),a=f}}e._va.indexBuffer.copyFromArrayView(s),e._indices=s,e._batchedIndices=c}function g9(e,t,n,i,o,r,s){let a=e.bytesPerIndex,c=r.length;for(let u=0;u<c;++u){let f=r[u],d=s[f],p=i[d],g=o[d];t.copyFromBuffer(e,p*a,n*a,g*a),i[d]=n,n+=g}return n}function XFe(e,t){let n=e._indexOffsets,i=e._indexCounts,o=e._batchIdLookUp,r=t.pop(),s=[r],a=e._va.indexBuffer,c=e._vaSwap.indexBuffer,u=g9(a,c,0,n,i,r.batchIds,o);for(r.offset=0,r.count=u;t.length>0;){let d=t.pop();if(z.equals(d.color,r.color))u=g9(a,c,u,n,i,d.batchIds,o),r.batchIds=r.batchIds.concat(d.batchIds),r.count=u-r.offset;else{let p=u;u=g9(a,c,u,n,i,d.batchIds,o),d.offset=p,d.count=u-p,s.push(d),r=d}}let f=e._va;e._va=e._vaSwap,e._vaSwap=f,e._batchedIndices=s}function KFe(e,t){return t.color.toRgba()-e.color.toRgba()}function ZFe(e,t){if(!e._batchDirty)return!1;let n=e._batchedIndices,i=n.length,o=!1,r={};for(let s=0;s<i;++s){let c=n[s].color.toRgba();if(l(r[c])){o=!0;break}else r[c]=!0}if(!o)return e._batchDirty=!1,!1;if(o&&!e.forceRebatch&&e._framesSinceLastRebatch<120){++e._framesSinceLastRebatch;return}return n.sort(KFe),t.webgl2?XFe(e,n):YFe(e,n),e._framesSinceLastRebatch=0,e._batchDirty=!1,e._pickCommandsDirty=!0,e._wireframeDirty=!0,!0}function $Fe(e,t){let n=ZFe(e,t),i=e._commands,o=e._batchedIndices,r=o.length,s=r*2;if(l(i)&&!n&&i.length===s)return;i.length=s;let a=e._va,c=e._sp,u=y(e._modelMatrix,F.IDENTITY),f=e._uniformMap,d=e._boundingVolume;for(let p=0;p<r;++p){let g=o[p].offset,m=o[p].count,x=i[p*2];l(x)||(x=i[p*2]=new et({owner:e})),x.vertexArray=a,x.modelMatrix=u,x.offset=g,x.count=m,x.renderState=e._rsStencilDepthPass,x.shaderProgram=c,x.uniformMap=f,x.boundingVolume=d,x.cull=!1,x.pass=ve.TERRAIN_CLASSIFICATION;let b=et.shallowClone(x,x.derivedCommands.tileset);b.renderState=e._rsStencilDepthPass3DTiles,b.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,x.derivedCommands.tileset=b;let T=i[p*2+1];l(T)||(T=i[p*2+1]=new et({owner:e})),T.vertexArray=a,T.modelMatrix=u,T.offset=g,T.count=m,T.renderState=e._rsColorPass,T.shaderProgram=c,T.uniformMap=f,T.boundingVolume=d,T.cull=!1,T.pass=ve.TERRAIN_CLASSIFICATION;let A=et.shallowClone(T,T.derivedCommands.tileset);A.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,T.derivedCommands.tileset=A}e._commandsDirty=!0}function QFe(e,t){if(e.classificationType===kn.TERRAIN||!t.invertClassification||l(e._commandsIgnoreShow)&&!e._commandsDirty)return;let n=e._commands,i=e._commandsIgnoreShow,o=e._spStencil,r=n.length,s=i.length=r/2,a=0;for(let c=0;c<s;++c){let u=i[c]=et.shallowClone(n[a],i[c]);u.shaderProgram=o,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,a+=2}e._commandsDirty=!1}function JFe(e){if(!e._pickCommandsDirty)return;let t=e._indexOffsets.length,n=e._pickCommands;n.length=t*2;let i=e._va,o=e._spStencil,r=e._spPick,s=y(e._modelMatrix,F.IDENTITY),a=e._uniformMap;for(let c=0;c<t;++c){let u=e._indexOffsets[c],f=e._indexCounts[c],d=l(e._boundingVolumes)?e._boundingVolumes[c]:e.boundingVolume,p=n[c*2];l(p)||(p=n[c*2]=new et({owner:e,pickOnly:!0})),p.vertexArray=i,p.modelMatrix=s,p.offset=u,p.count=f,p.renderState=e._rsStencilDepthPass,p.shaderProgram=o,p.uniformMap=a,p.boundingVolume=d,p.pass=ve.TERRAIN_CLASSIFICATION;let g=et.shallowClone(p,p.derivedCommands.tileset);g.renderState=e._rsStencilDepthPass3DTiles,g.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,p.derivedCommands.tileset=g;let m=n[c*2+1];l(m)||(m=n[c*2+1]=new et({owner:e,pickOnly:!0})),m.vertexArray=i,m.modelMatrix=s,m.offset=u,m.count=f,m.renderState=e._rsPickPass,m.shaderProgram=r,m.uniformMap=a,m.boundingVolume=d,m.pass=ve.TERRAIN_CLASSIFICATION;let x=et.shallowClone(m,m.derivedCommands.tileset);x.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,m.derivedCommands.tileset=x}e._pickCommandsDirty=!1}dp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Zs(e,r)}};dp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function e2e(e,t){e._updatingAllCommands=!0;let n=e._batchIds,i=n.length,o;for(o=0;o<i;++o){let s=n[o],a=t[s];a.show=!0,a.color=z.WHITE}let r=e._batchedIndices;for(i=r.length,o=0;o<i;++o)r[o].color=z.clone(z.WHITE);e._updatingAllCommands=!1,e._batchDirty=!0}var t2e=new z,n2e=z.WHITE,i2e=!0,o2e=/\$/;dp.prototype.applyStyle=function(e,t){if(!l(e)){e2e(this,t);return}let n=e.color,i=n instanceof cd&&!o2e.test(n.expression);this._updatingAllCommands=i;let o=this._batchIds,r=o.length,s;for(s=0;s<r;++s){let a=o[s],c=t[a];c.color=l(e.color)?e.color.evaluateColor(c,t2e):n2e,c.show=l(e.show)?e.show.evaluate(c):i2e}if(i){let a=this._batchedIndices;for(r=a.length,s=0;s<r;++s)a[s].color=z.clone(z.WHITE);this._updatingAllCommands=!1,this._batchDirty=!0}};dp.prototype.updateCommands=function(e,t){if(this._updatingAllCommands)return;let n=this._batchIdLookUp,i=n[e];if(!l(i))return;let o=this._indexOffsets,r=this._indexCounts,s=o[i],a=r[i],c=this._batchedIndices,u=c.length,f;for(f=0;f<u;++f){let x=c[f].offset,b=c[f].count;if(s>=x&&s<x+b)break}c.push(new fp({color:z.clone(t),offset:s,count:a,batchIds:[e]}));let d=[],p=[],g=c[f].batchIds,m=g.length;for(let x=0;x<m;++x){let b=g[x];if(b===e)continue;let T=n[b];o[T]<s?d.push(b):p.push(b)}p.length!==0&&c.push(new fp({color:z.clone(c[f].color),offset:s+a,count:c[f].offset+c[f].count-(s+a),batchIds:p})),d.length!==0?(c[f].count=s-c[f].offset,c[f].batchIds=d):c.splice(f,1),this._batchDirty=!0};function Kne(e,t,n,i){let o=e.classificationType,r=o!==kn.CESIUM_3D_TILE,s=o!==kn.TERRAIN,a=t.commandList,c=n.length,u,f;for(f=0;f<c;++f)r&&(u=n[f],u.pass=ve.TERRAIN_CLASSIFICATION,a.push(u)),s&&(u=n[f].derivedCommands.tileset,u.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,a.push(u));if(!(!t.invertClassification||!l(i)))for(c=i.length,f=0;f<c;++f)a.push(i[f])}function r2e(e,t){let n=e.commandList,i=t.length;for(let o=0;o<i;o+=2){let r=t[o+1];r.pass=ve.OPAQUE,n.push(r)}}function s2e(e){let t=e.debugWireframe===e._debugWireframe;if(t=t&&!(e.debugWireframe&&e._wireframeDirty),t)return;l(e._rsWireframe)||(e._rsWireframe=Ve.fromCache({}));let n,i;e.debugWireframe?(n=e._rsWireframe,i=Le.LINES):(n=e._rsColorPass,i=Le.TRIANGLES);let o=e._commands,r=o.length;for(let s=0;s<r;s+=2){let a=o[s+1];a.renderState=n,a.primitiveType=i}e._debugWireframe=e.debugWireframe,e._wireframeDirty=!1}dp.prototype.update=function(e){let t=e.context;zFe(this,t),HFe(this,t),jFe(this),qFe(this,t);let n=e.passes;n.render&&($Fe(this,t),QFe(this,e),s2e(this),this._debugWireframe?r2e(e,this._commands):Kne(this,e,this._commands,this._commandsIgnoreShow)),n.pick&&(JFe(this),Kne(this,e,this._pickCommands))};dp.prototype.isDestroyed=function(){return!1};dp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaSwap=this._vaSwap&&this._vaSwap.destroy(),ue(this)};var oA=dp;function eu(e){this._boxes=e.boxes,this._boxBatchIds=e.boxBatchIds,this._cylinders=e.cylinders,this._cylinderBatchIds=e.cylinderBatchIds,this._ellipsoids=e.ellipsoids,this._ellipsoidBatchIds=e.ellipsoidBatchIds,this._spheres=e.spheres,this._sphereBatchIds=e.sphereBatchIds,this._modelMatrix=e.modelMatrix,this._batchTable=e.batchTable,this._boundingVolume=e.boundingVolume,this._center=e.center,l(this._center)||(l(this._boundingVolume)?this._center=h.clone(this._boundingVolume.center):this._center=h.clone(h.ZERO)),this._boundingVolumes=void 0,this._batchedIndices=void 0,this._indices=void 0,this._indexOffsets=void 0,this._indexCounts=void 0,this._positions=void 0,this._vertexBatchIds=void 0,this._batchIds=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._verticesPromise=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=kn.BOTH}Object.defineProperties(eu.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});eu.packedBoxLength=F.packedLength+h.packedLength;eu.packedCylinderLength=F.packedLength+2;eu.packedEllipsoidLength=F.packedLength+h.packedLength;eu.packedSphereLength=h.packedLength+1;function a2e(e){let t=new Float64Array(F.packedLength+h.packedLength),n=0;return h.pack(e._center,t,n),n+=h.packedLength,F.pack(e._modelMatrix,t,n),t}function c2e(e,t){let n=0,i=t[n++],o=t[n++],r=e._boundingVolumes=new Array(o);for(let c=0;c<o;++c)r[c]=se.unpack(t,n),n+=se.packedLength;let s=t[n++],a=e._batchedIndices=new Array(s);for(let c=0;c<s;++c){let u=z.unpack(t,n);n+=z.packedLength;let f=t[n++],d=t[n++],p=t[n++],g=new Array(p);for(let m=0;m<p;++m)g[m]=t[n++];a[c]=new fp({color:u,offset:f,count:d,batchIds:g})}return i}var l2e=new _i("createVectorTileGeometries",5),u2e=new z;function f2e(e){if(!l(e._primitive)&&!l(e._verticesPromise)){let t=e._boxes,n=e._boxBatchIds,i=e._cylinders,o=e._cylinderBatchIds,r=e._ellipsoids,s=e._ellipsoidBatchIds,a=e._spheres,c=e._sphereBatchIds,u=e._batchTableColors,f=e._packedBuffer;if(!l(u)){let m=0;l(e._boxes)&&(t=e._boxes=t.slice(),n=e._boxBatchIds=n.slice(),m+=n.length),l(e._cylinders)&&(i=e._cylinders=i.slice(),o=e._cylinderBatchIds=o.slice(),m+=o.length),l(e._ellipsoids)&&(r=e._ellipsoids=r.slice(),s=e._ellipsoidBatchIds=s.slice(),m+=s.length),l(e._spheres)&&(a=e._sphere=a.slice(),c=e._sphereBatchIds=c.slice(),m+=c.length),u=e._batchTableColors=new Uint32Array(m);let x=e._batchTable;for(let b=0;b<m;++b){let T=x.getColor(b,u2e);u[b]=T.toRgba()}f=e._packedBuffer=a2e(e)}let d=[];l(t)&&d.push(t.buffer,n.buffer),l(i)&&d.push(i.buffer,o.buffer),l(r)&&d.push(r.buffer,s.buffer),l(a)&&d.push(a.buffer,c.buffer),d.push(u.buffer,f.buffer);let p={boxes:l(t)?t.buffer:void 0,boxBatchIds:l(t)?n.buffer:void 0,cylinders:l(i)?i.buffer:void 0,cylinderBatchIds:l(i)?o.buffer:void 0,ellipsoids:l(r)?r.buffer:void 0,ellipsoidBatchIds:l(r)?s.buffer:void 0,spheres:l(a)?a.buffer:void 0,sphereBatchIds:l(a)?c.buffer:void 0,batchTableColors:u.buffer,packedBuffer:f.buffer},g=e._verticesPromise=l2e.scheduleTask(p,d);return l(g)?g.then(function(m){if(e.isDestroyed())return;let x=new Float64Array(m.packedBuffer);c2e(e,x)===2?e._indices=new Uint16Array(m.indices):e._indices=new Uint32Array(m.indices),e._indexOffsets=new Uint32Array(m.indexOffsets),e._indexCounts=new Uint32Array(m.indexCounts),e._positions=new Float32Array(m.positions),e._vertexBatchIds=new Uint16Array(m.vertexBatchIds),e._batchIds=new Uint16Array(m.batchIds),d2e(e),e._ready=!0}).catch(m=>{e.isDestroyed()||(e._error=m)}):void 0}}function d2e(e){l(e._primitive)||(e._primitive=new oA({batchTable:e._batchTable,positions:e._positions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center,pickObject:y(e._pickObject,e)}),e._boxes=void 0,e._boxBatchIds=void 0,e._cylinders=void 0,e._cylinderBatchIds=void 0,e._ellipsoids=void 0,e._ellipsoidBatchIds=void 0,e._spheres=void 0,e._sphereBatchIds=void 0,e._center=void 0,e._modelMatrix=void 0,e._batchTable=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0,e._indices=void 0,e._indexOffsets=void 0,e._indexCounts=void 0,e._positions=void 0,e._vertexBatchIds=void 0,e._batchIds=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._verticesPromise=void 0)}eu.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};eu.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};eu.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};eu.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};eu.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=f2e(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};eu.prototype.isDestroyed=function(){return!1};eu.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var ng=eu;function Nh(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._geometries=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,p2e(this,i,o)}Object.defineProperties(Nh.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return l(this._geometries)?this._geometries.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._geometries)?this._geometries.geometryByteLength:0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function h2e(e){return function(t,n){l(e._geometries)&&e._geometries.updateCommands(t,n)}}function m2e(e,t){let n,i,o,r,s,a=y(e.BOXES_LENGTH,0),c=y(e.CYLINDERS_LENGTH,0),u=y(e.ELLIPSOIDS_LENGTH,0),f=y(e.SPHERES_LENGTH,0);if(a>0&&l(e.BOX_BATCH_IDS)){let m=t.byteOffset+e.BOX_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,m,a)}if(c>0&&l(e.CYLINDER_BATCH_IDS)){let m=t.byteOffset+e.CYLINDER_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,m,c)}if(u>0&&l(e.ELLIPSOID_BATCH_IDS)){let m=t.byteOffset+e.ELLIPSOID_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,m,u)}if(f>0&&l(e.SPHERE_BATCH_IDS)){let m=t.byteOffset+e.SPHERE_BATCH_IDS.byteOffset;r=new Uint16Array(t.buffer,m,f)}let d=l(n)||l(i)||l(o)||l(r),p=a>0&&!l(n)||c>0&&!l(i)||u>0&&!l(o)||f>0&&!l(r);if(d&&p)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)&&!l(r)){let m=0;if(!l(n)&&a>0)for(n=new Uint16Array(a),s=0;s<a;++s)n[s]=m++;if(!l(i)&&c>0)for(i=new Uint16Array(c),s=0;s<c;++s)i[s]=m++;if(!l(o)&&u>0)for(o=new Uint16Array(u),s=0;s<u;++s)o[s]=m++;if(!l(r)&&f>0)for(r=new Uint16Array(f),s=0;s<f;++s)r[s]=m++}return{boxes:n,cylinders:i,ellipsoids:o,spheres:r}}var X0=Uint32Array.BYTES_PER_ELEMENT;function p2e(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=X0;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Geometry tile version 1 is supported. Version ${r} is not.`);n+=X0;let s=o.getUint32(n,!0);if(n+=X0,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=X0,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=X0;let u=o.getUint32(n,!0);n+=X0;let f=o.getUint32(n,!0);n+=X0;let d=Lo(i,n,a);n+=a;let p=new Uint8Array(t,n,c);n+=c;let g,m;u>0&&(g=Lo(i,n,u),n+=u,f>0&&(m=new Uint8Array(t,n,f),m=new Uint8Array(m)));let x=y(d.BOXES_LENGTH,0),b=y(d.CYLINDERS_LENGTH,0),T=y(d.ELLIPSOIDS_LENGTH,0),A=y(d.SPHERES_LENGTH,0),C=x+b+T+A,S=new J_(e,C,g,m,h2e(e));if(e._batchTable=S,C===0)return;let v=e.tile.computedTransform,D;l(d.RTC_CENTER)&&(D=h.unpack(d.RTC_CENTER),F.multiplyByPoint(v,D,D));let O=m2e(d,p);if(x>0||b>0||T>0||A>0){let R,M,L,_;if(x>0){let E=p.byteOffset+d.BOXES.byteOffset;R=new Float32Array(p.buffer,E,ng.packedBoxLength*x)}if(b>0){let E=p.byteOffset+d.CYLINDERS.byteOffset;M=new Float32Array(p.buffer,E,ng.packedCylinderLength*b)}if(T>0){let E=p.byteOffset+d.ELLIPSOIDS.byteOffset;L=new Float32Array(p.buffer,E,ng.packedEllipsoidLength*T)}if(A>0){let E=p.byteOffset+d.SPHERES.byteOffset;_=new Float32Array(p.buffer,E,ng.packedSphereLength*A)}return e._geometries=new ng({boxes:R,boxBatchIds:O.boxes,cylinders:M,cylinderBatchIds:O.cylinders,ellipsoids:L,ellipsoidBatchIds:O.ellipsoids,spheres:_,sphereBatchIds:O.spheres,center:D,modelMatrix:v,batchTable:S,boundingVolume:e.tile.boundingVolume.boundingVolume}),e}return Promise.resolve(e)}function Zne(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._geometries)&&e._geometries.createFeatures(e,n),e._features=n}}Nh.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};Nh.prototype.getFeature=function(e){return Zne(this),this._features[e]};Nh.prototype.applyDebugSettings=function(e,t){l(this._geometries)&&this._geometries.applyDebugSettings(e,t)};Nh.prototype.applyStyle=function(e){Zne(this),l(this._geometries)&&this._geometries.applyStyle(e,this._features)};Nh.prototype.update=function(e,t){l(this._geometries)&&(this._geometries.classificationType=this._tileset.classificationType,this._geometries.debugWireframe=this._tileset.debugWireframe,this._geometries.update(t)),l(this._batchTable)&&this._geometries.ready&&(this._batchTable.update(e,t),this._ready=!0)};Nh.prototype.pick=function(e,t,n){};Nh.prototype.isDestroyed=function(){return!1};Nh.prototype.destroy=function(){return this._geometries=this._geometries&&this._geometries.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};var JL=Nh;var y9={};y9.encode2D=function(e,t,n){let i=Math.pow(2,e),o={x:t,y:n},r,s,a,c=BigInt(0);for(a=i/2;a>0;a/=2)r=(o.x&a)>0?1:0,s=(o.y&a)>0?1:0,c+=BigInt((3*r^s)*a*a),$ne(i,o,r,s);return c};y9.decode2D=function(e,t){let n=Math.pow(2,e),i={x:0,y:0},o,r,s,a;for(s=1,a=t;s<n;s*=2)o=1&Number(a/BigInt(2)),r=1&Number(a^BigInt(o)),$ne(s,i,o,r),i.x+=s*o,i.y+=s*r,a/=BigInt(4);return[i.x,i.y]};function $ne(e,t,n,i){if(i!==0)return;n===1&&(t.x=e-1-t.x,t.y=e-1-t.y);let o=t.x;t.x=t.y,t.y=o}var Fv=y9;var K0=30,_2e=1<<K0,g2e=1<<K0+1>>>0,x9=2*K0+1,ig=4,eie=[],tie=[],y2e=[[0,1,3,2],[0,2,3,1],[3,2,0,1],[3,1,0,2]],og=1,rA=2,eN=[og,0,0,og|rA];function Gr(e){if(!jt.supportsBigInt())throw new ce("S2 required BigInt support");this._cellId=e,this._level=Gr.getLevel(e)}Gr.fromToken=function(e){return new Gr(Gr.getIdFromToken(e))};Gr.isValidId=function(e){return!(e<=0||e>>BigInt(x9)>5||!(e&~e+BigInt(1)&BigInt("0x1555555555555555")))};Gr.isValidToken=function(e){return/^[0-9a-fA-F]{1,16}$/.test(e)?Gr.isValidId(Gr.getIdFromToken(e)):!1};Gr.getIdFromToken=function(e){return BigInt("0x"+e+"0".repeat(16-e.length))};Gr.getTokenFromId=function(e){let t=Math.floor(D2e(e)/4),n=e.toString(16).replace(/0*$/,"");return Array(17-t-n.length).join("0")+n};Gr.getLevel=function(e){let t=0;for(;e!==BigInt(0)&&!(e&BigInt(1));)t++,e=e>>BigInt(1);return K0-(t>>1)};Gr.prototype.getChild=function(e){let t=oie(this._cellId)>>BigInt(2),n=this._cellId+BigInt(2*e+1-4)*t;return new Gr(n)};Gr.prototype.getParent=function(){let e=oie(this._cellId)<<BigInt(2);return new Gr(this._cellId&~e+BigInt(1)|e)};Gr.prototype.getParentAtLevel=function(e){let t=v2e(e);return new Gr(this._cellId&-t|t)};Gr.prototype.getCenter=function(e){e=y(e,ee.WGS84);let t=x2e(this._cellId,this._level);t=h.normalize(t,t);let n=new fe.fromCartesian(t,ee.UNIT_SPHERE);return fe.toCartesian(n,e,new h)};Gr.prototype.getVertex=function(e,t){t=y(t,ee.WGS84);let n=b2e(this._cellId,this._level,e);n=h.normalize(n,n);let i=new fe.fromCartesian(n,ee.UNIT_SPHERE);return fe.toCartesian(i,t,new h)};Gr.fromFacePositionLevel=function(e,t,n){let i=(e<4?"0":"")+(e<2?"0":"")+e.toString(2),o=t.toString(2),r=Array(2*n-o.length+1).join("0"),s=Array(x9-2*n).join("0"),a=BigInt(`0b${i}${r}${o}1${s}`);return new Gr(a)};function x2e(e,t){let n=T2e(e,t);return A2e(n[0],n[1],n[2])}function b2e(e,t,n){let i=nie(e,t),o=C2e([i[1],i[2]],t),r=n>>1&1;return iie(i[0],o[0][r^n&1],o[1][r])}function T2e(e,t){let n=nie(e),i=n[0],o=n[1],r=n[2],s=t===30,a=!s&&(BigInt(o)^e>>BigInt(2))&BigInt(1),c=s?1:a?2:0,u=(o<<1)+c,f=(r<<1)+c;return[i,u,f]}function nie(e){eie.length===0&&S2e();let t=Number(e>>BigInt(x9)),n=t&og,i=(1<<ig)-1,o=0,r=0;for(let s=7;s>=0;s--){let c=(1<<2*(s===7?K0-7*ig:ig))-1;n+=Number(e>>BigInt(s*2*ig+1)&BigInt(c))<<2,n=tie[n];let u=s*ig;o+=n>>ig+2<<u,r+=(n>>2&i)<<u,n&=og|rA}return[t,o,r]}function A2e(e,t,n){let i=Qne(t),o=Qne(n),r=tN(i),s=tN(o);return iie(e,r,s)}function iie(e,t,n){switch(e){case 0:return new h(1,t,n);case 1:return new h(-t,1,n);case 2:return new h(-t,-n,1);case 3:return new h(-1,-n,-t);case 4:return new h(n,-1,-t);default:return new h(n,t,-1)}}function tN(e){return e>=.5?1/3*(4*e*e-1):1/3*(1-4*(1-e)*(1-e))}function Qne(e){return 1/g2e*e}function C2e(e,t){let n=[[],[]],i=E2e(t);for(let o=0;o<2;++o){let r=e[o]&-i,s=r+i;n[o][0]=tN(Jne(r)),n[o][1]=tN(Jne(s))}return n}function E2e(e){return 1<<K0-e>>>0}function Jne(e){return 1/_2e*e}function rg(e,t,n,i,o,r){if(e===ig){let s=(t<<ig)+n;eie[(s<<2)+i]=(o<<2)+r,tie[(o<<2)+i]=(s<<2)+r}else{e++,t<<=1,n<<=1,o<<=2;let s=y2e[r];rg(e,t+(s[0]>>1),n+(s[0]&1),i,o,r^eN[0]),rg(e,t+(s[1]>>1),n+(s[1]&1),i,o+1,r^eN[1]),rg(e,t+(s[2]>>1),n+(s[2]&1),i,o+2,r^eN[2]),rg(e,t+(s[3]>>1),n+(s[3]&1),i,o+3,r^eN[3])}}function S2e(){rg(0,0,0,0,0,0),rg(0,0,0,og,0,og),rg(0,0,0,rA,0,rA),rg(0,0,0,og|rA,0,og|rA)}function oie(e){return e&~e+BigInt(1)}function v2e(e){return BigInt(1)<<BigInt(2*(K0-e))}var w2e=[64,0,1,39,2,15,40,23,3,12,16,59,41,19,24,54,4,64,13,10,17,62,60,28,42,30,20,51,25,44,55,47,5,32,65,38,14,22,11,58,18,53,63,9,61,27,29,50,43,46,31,37,21,57,52,8,26,49,45,36,56,7,48,35,6,34,33,0];function D2e(e){return w2e[(-e&e)%BigInt(67)]}var sg=Gr;function I2e(e,t){return l(e)&&l(e.extensions)&&l(e.extensions[t])}var oi=I2e;function b9(e){let t=e.lengthBits,n=e.availableCount,i=e.constant,o=e.bitstream;if(l(i))n=t;else{let r=Math.ceil(t/8);if(o.length!==r)throw new ce(`Availability bitstream must be exactly ${r} bytes long to store ${t} bits. Actual bitstream was ${o.length} bytes long.`);let s=y(e.computeAvailableCountEnabled,!1);!l(n)&&s&&(n=P2e(o,t))}this._lengthBits=t,this._availableCount=n,this._constant=i,this._bitstream=o}function P2e(e,t){let n=0;for(let i=0;i<t;i++){let o=i>>3,r=i%8;n+=e[o]>>r&1}return n}Object.defineProperties(b9.prototype,{lengthBits:{get:function(){return this._lengthBits}},availableCount:{get:function(){return this._availableCount}}});b9.prototype.getBit=function(e){if(l(this._constant))return this._constant;let t=e>>3,n=e%8;return(this._bitstream[t]>>n&1)===1};var Bv=b9;function hp(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataTable,n=e.class,i=e.entityId,o=e.propertyTableJson;this._class=n,this._metadataTable=t,this._entityId=i,this._extensions=o.extensions,this._extras=o.extras}Object.defineProperties(hp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});hp.prototype.hasProperty=function(e){return this._metadataTable.hasProperty(e)};hp.prototype.hasPropertyBySemantic=function(e){return this._metadataTable.hasPropertyBySemantic(e)};hp.prototype.getPropertyIds=function(e){return this._metadataTable.getPropertyIds(e)};hp.prototype.getProperty=function(e){return this._metadataTable.getProperty(this._entityId,e)};hp.prototype.setProperty=function(e,t){return this._metadataTable.setProperty(this._entityId,e,t)};hp.prototype.getPropertyBySemantic=function(e){return this._metadataTable.getPropertyBySemantic(this._entityId,e)};hp.prototype.setPropertyBySemantic=function(e,t){return this._metadataTable.setPropertyBySemantic(this._entityId,e,t)};var kv=hp;var nN={QUADTREE:"QUADTREE",OCTREE:"OCTREE"};nN.getBranchingFactor=function(e){switch(e){case nN.OCTREE:return 8;case nN.QUADTREE:return 4}};var is=Object.freeze(nN);function $s(){}Object.defineProperties($s.prototype,{class:{get:function(){he.throwInstantiationError()}}});$s.prototype.hasProperty=function(e){he.throwInstantiationError()};$s.prototype.hasPropertyBySemantic=function(e){he.throwInstantiationError()};$s.prototype.getPropertyIds=function(e){he.throwInstantiationError()};$s.prototype.getProperty=function(e){he.throwInstantiationError()};$s.prototype.setProperty=function(e,t){he.throwInstantiationError()};$s.prototype.getPropertyBySemantic=function(e){he.throwInstantiationError()};$s.prototype.setPropertyBySemantic=function(e,t){he.throwInstantiationError()};$s.hasProperty=function(e,t,n){if(l(t[e]))return!0;let i=n.properties;if(!l(i))return!1;let o=i[e];return!!(l(o)&&l(o.default))};$s.hasPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return!1;let o=i[e];return l(o)};$s.getPropertyIds=function(e,t,n){n=l(n)?n:[],n.length=0;for(let o in e)e.hasOwnProperty(o)&&l(e[o])&&n.push(o);let i=t.properties;if(l(i))for(let o in i)i.hasOwnProperty(o)&&!l(e[o])&&l(i[o].default)&&n.push(o);return n};$s.getProperty=function(e,t,n){let i=n.properties[e],o=t[e];Array.isArray(o)&&(o=o.slice());let r=!0;if(o=i.handleNoData(o),!l(o)&&l(i.default))return o=Ge(i.default,!0),i.unpackVectorAndMatrixTypes(o,r);if(l(o))return o=i.normalize(o),o=i.applyValueTransform(o),i.unpackVectorAndMatrixTypes(o,r)};$s.setProperty=function(e,t,n,i){if(!l(n[e]))return!1;Array.isArray(t)&&(t=t.slice());let o,r=i.properties;return l(r)&&(o=r[e]),l(o)&&(t=o.packVectorAndMatrixTypes(t,!0),t=o.unapplyValueTransform(t),t=o.unnormalize(t)),n[e]=t,!0};$s.getPropertyBySemantic=function(e,t,n){let i=n.propertiesBySemantic;if(!l(i))return;let o=i[e];if(l(o))return $s.getProperty(o.id,t,n)};$s.setPropertyBySemantic=function(e,t,n,i){let o=i.propertiesBySemantic;if(!l(o))return!1;let r=i.propertiesBySemantic[e];return l(r)?$s.setProperty(r.id,t,n,i):!1};var Fn=$s;function mp(e){e=y(e,y.EMPTY_OBJECT);let t=e.subtreeMetadata,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(mp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});mp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};mp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};mp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};mp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};mp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};mp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};mp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var iN=mp;var Bt={INT8:"INT8",UINT8:"UINT8",INT16:"INT16",UINT16:"UINT16",INT32:"INT32",UINT32:"UINT32",INT64:"INT64",UINT64:"UINT64",FLOAT32:"FLOAT32",FLOAT64:"FLOAT64"};Bt.getMinimum=function(e){switch(e){case Bt.INT8:return-128;case Bt.UINT8:return 0;case Bt.INT16:return-32768;case Bt.UINT16:return 0;case Bt.INT32:return-2147483648;case Bt.UINT32:return 0;case Bt.INT64:return jt.supportsBigInt()?BigInt("-9223372036854775808"):-Math.pow(2,63);case Bt.UINT64:return jt.supportsBigInt()?BigInt(0):0;case Bt.FLOAT32:return-34028234663852886e22;case Bt.FLOAT64:return-Number.MAX_VALUE}};Bt.getMaximum=function(e){switch(e){case Bt.INT8:return 127;case Bt.UINT8:return 255;case Bt.INT16:return 32767;case Bt.UINT16:return 65535;case Bt.INT32:return 2147483647;case Bt.UINT32:return 4294967295;case Bt.INT64:return jt.supportsBigInt()?BigInt("9223372036854775807"):Math.pow(2,63)-1;case Bt.UINT64:return jt.supportsBigInt()?BigInt("18446744073709551615"):Math.pow(2,64)-1;case Bt.FLOAT32:return 34028234663852886e22;case Bt.FLOAT64:return Number.MAX_VALUE}};Bt.isIntegerType=function(e){switch(e){case Bt.INT8:case Bt.UINT8:case Bt.INT16:case Bt.UINT16:case Bt.INT32:case Bt.UINT32:case Bt.INT64:case Bt.UINT64:return!0;default:return!1}};Bt.isUnsignedIntegerType=function(e){switch(e){case Bt.UINT8:case Bt.UINT16:case Bt.UINT32:case Bt.UINT64:return!0;default:return!1}};Bt.isVectorCompatible=function(e){switch(e){case Bt.INT8:case Bt.UINT8:case Bt.INT16:case Bt.UINT16:case Bt.INT32:case Bt.UINT32:case Bt.FLOAT32:case Bt.FLOAT64:return!0;default:return!1}};Bt.normalize=function(e,t){return Math.max(Number(e)/Number(Bt.getMaximum(t)),-1)};Bt.unnormalize=function(e,t){let n=Bt.getMaximum(t),i=Bt.isUnsignedIntegerType(t)?0:-n;return e=P.sign(e)*Math.round(Math.abs(e)*Number(n)),(t===Bt.INT64||t===Bt.UINT64)&&jt.supportsBigInt()&&(e=BigInt(e)),e>n?n:e<i?i:e};Bt.applyValueTransform=function(e,t,n){return n*e+t};Bt.unapplyValueTransform=function(e,t,n){return n===0?0:(e-t)/n};Bt.getSizeInBytes=function(e){switch(e){case Bt.INT8:case Bt.UINT8:return 1;case Bt.INT16:case Bt.UINT16:return 2;case Bt.INT32:case Bt.UINT32:return 4;case Bt.INT64:case Bt.UINT64:return 8;case Bt.FLOAT32:return 4;case Bt.FLOAT64:return 8}};Bt.fromComponentDatatype=function(e){switch(e){case X.BYTE:return Bt.INT8;case X.UNSIGNED_BYTE:return Bt.UINT8;case X.SHORT:return Bt.INT16;case X.UNSIGNED_SHORT:return Bt.UINT16;case X.INT:return Bt.INT32;case X.UNSIGNED_INT:return Bt.UINT32;case X.FLOAT:return Bt.FLOAT32;case X.DOUBLE:return Bt.FLOAT64}};Bt.toComponentDatatype=function(e){switch(e){case Bt.INT8:return X.BYTE;case Bt.UINT8:return X.UNSIGNED_BYTE;case Bt.INT16:return X.SHORT;case Bt.UINT16:return X.UNSIGNED_SHORT;case Bt.INT32:return X.INT;case Bt.UINT32:return X.UNSIGNED_INT;case Bt.FLOAT32:return X.FLOAT;case Bt.FLOAT64:return X.DOUBLE}};var Wt=Object.freeze(Bt);var No={SCALAR:"SCALAR",VEC2:"VEC2",VEC3:"VEC3",VEC4:"VEC4",MAT2:"MAT2",MAT3:"MAT3",MAT4:"MAT4",BOOLEAN:"BOOLEAN",STRING:"STRING",ENUM:"ENUM"};No.isVectorType=function(e){switch(e){case No.VEC2:case No.VEC3:case No.VEC4:return!0;default:return!1}};No.isMatrixType=function(e){switch(e){case No.MAT2:case No.MAT3:case No.MAT4:return!0;default:return!1}};No.getComponentCount=function(e){switch(e){case No.SCALAR:case No.STRING:case No.ENUM:case No.BOOLEAN:return 1;case No.VEC2:return 2;case No.VEC3:return 3;case No.VEC4:return 4;case No.MAT2:return 4;case No.MAT3:return 9;case No.MAT4:return 16}};No.getMathType=function(e){switch(e){case No.VEC2:return U;case No.VEC3:return h;case No.VEC4:return oe;case No.MAT2:return Bi;case No.MAT3:return $;case No.MAT4:return F;default:return}};var Et=Object.freeze(No);function ba(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.type,i=e.componentType,o=e.enumType,r=l(i)&&Wt.isIntegerType(i)&&y(e.normalized,!1);this._id=t,this._name=e.name,this._description=e.description,this._semantic=e.semantic,this._isLegacyExtension=e.isLegacyExtension,this._type=n,this._componentType=i,this._enumType=o,this._valueType=l(o)?o.valueType:i,this._isArray=y(e.isArray,!1),this._isVariableLengthArray=y(e.isVariableLengthArray,!1),this._arrayLength=e.arrayLength,this._min=Ge(e.min,!0),this._max=Ge(e.max,!0),this._normalized=r;let s=Ge(e.offset,!0),a=Ge(e.scale,!0),c=l(s)||l(a),u=!0;l(s)||(s=this.expandConstant(0,u)),l(a)||(a=this.expandConstant(1,u)),this._offset=s,this._scale=a,this._hasValueTransform=c,this._noData=Ge(e.noData,!0),this._default=Ge(e.default,!0),this._required=y(e.required,!0),this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}ba.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.property,i=R2e(n),o=O2e(n,e.enums),r;return l(i)?i?r=l(n.optional)?!n.optional:!0:r=y(n.required,!1):r=!1,new ba({id:t,type:o.type,componentType:o.componentType,enumType:o.enumType,isArray:o.isArray,isVariableLengthArray:o.isVariableLengthArray,arrayLength:o.arrayLength,normalized:n.normalized,min:n.min,max:n.max,offset:n.offset,scale:n.scale,noData:n.noData,default:n.default,required:r,name:n.name,description:n.description,semantic:n.semantic,extras:n.extras,extensions:n.extensions,isLegacyExtension:i})};Object.defineProperties(ba.prototype,{id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},type:{get:function(){return this._type}},enumType:{get:function(){return this._enumType}},componentType:{get:function(){return this._componentType}},valueType:{get:function(){return this._valueType}},isArray:{get:function(){return this._isArray}},isVariableLengthArray:{get:function(){return this._isVariableLengthArray}},arrayLength:{get:function(){return this._arrayLength}},normalized:{get:function(){return this._normalized}},max:{get:function(){return this._max}},min:{get:function(){return this._min}},noData:{get:function(){return this._noData}},default:{get:function(){return this._default}},required:{get:function(){return this._required}},semantic:{get:function(){return this._semantic}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});function R2e(e){if(e.type==="ARRAY")return!0;let t=e.type;if(t===Et.SCALAR||Et.isMatrixType(t)||Et.isVectorType(t))return!1;if(l(Wt[t]))return!0;if(l(e.noData)||l(e.scale)||l(e.offset)||l(e.required)||l(e.count)||l(e.array)||l(e.optional))return!1}function O2e(e,t){let n=e.type,i=e.componentType,o=n==="ARRAY",r,s,a;o?(r=!0,s=e.componentCount,a=!l(s)):e.array?(r=!0,s=e.count,a=!l(e.count)):(r=!1,s=void 0,a=!1);let c;if(l(e.enumType)&&(c=t[e.enumType]),n===Et.ENUM)return{type:n,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&i===Et.ENUM)return{type:i,componentType:void 0,enumType:c,valueType:c.valueType,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Et.SCALAR||Et.isMatrixType(n)||Et.isVectorType(n))return{type:n,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(n===Et.BOOLEAN||n===Et.STRING)return{type:n,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(o&&(i===Et.BOOLEAN||i===Et.STRING))return{type:i,componentType:void 0,enumType:void 0,valueType:void 0,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(i)&&l(Wt[i]))return{type:Et.SCALAR,componentType:i,enumType:void 0,valueType:i,isArray:r,isVariableLengthArray:a,arrayLength:s};if(l(Wt[n]))return{type:Et.SCALAR,componentType:n,enumType:void 0,valueType:n,isArray:r,isVariableLengthArray:a,arrayLength:s}}ba.prototype.normalize=function(e){return this._normalized?T9(e,this._valueType,Wt.normalize):e};ba.prototype.unnormalize=function(e){return this._normalized?T9(e,this._valueType,Wt.unnormalize):e};ba.prototype.applyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ba.valueTransformInPlace(e,this._offset,this._scale,Wt.applyValueTransform)};ba.prototype.unapplyValueTransform=function(e){return!this._hasValueTransform||this._isVariableLengthArray?e:ba.valueTransformInPlace(e,this._offset,this._scale,Wt.unapplyValueTransform)};ba.prototype.expandConstant=function(e,t){t=y(t,!1);let n=this._isArray,i=this._arrayLength,o=Et.getComponentCount(this._type),r=n&&o>1;if(!n&&o===1)return e;if(!n)return new Array(o).fill(e);if(!r)return new Array(i).fill(e);if(!t)return new Array(this._arrayLength*o).fill(e);let s=new Array(o).fill(e);return new Array(this._arrayLength).fill(s)};ba.prototype.handleNoData=function(e){let t=this._noData;if(!l(t))return e;if(!cie(e,t))return e};function cie(e,t){if(!Array.isArray(e))return e===t;if(!Array.isArray(t)||e.length!==t.length)return!1;for(let n=0;n<e.length;n++)if(!cie(e[n],t[n]))return!1;return!0}ba.prototype.unpackVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Et.getMathType(this._type),i=this._isArray,o=Et.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.unpack(s)}):i?n.unpackArray(e):n.unpack(e):e};ba.prototype.packVectorAndMatrixTypes=function(e,t){t=y(t,!1);let n=Et.getMathType(this._type),i=this._isArray,o=Et.getComponentCount(this._type),r=i&&o>1;return l(n)?t&&r?e.map(function(s){return n.pack(s,[])}):i?n.packArray(e,[]):n.pack(e,[]):e};ba.prototype.validate=function(e){if(!(!l(e)&&l(this._default)))return this._required&&!l(e)?"required property must have a value":this._isArray?M2e(this,e):lie(this,e)};function M2e(e,t){if(!Array.isArray(t))return`value ${t} must be an array`;let n=t.length;if(!e._isVariableLengthArray&&n!==e._arrayLength)return"Array length does not match property.arrayLength";for(let i=0;i<n;i++){let o=lie(e,t[i]);if(l(o))return o}}function lie(e,t){let n=e._type,i=e._componentType,o=e._enumType,r=e._normalized;return Et.isVectorType(n)?L2e(t,n,i):Et.isMatrixType(n)?N2e(t,n,i):n===Et.STRING?F2e(t):n===Et.BOOLEAN?B2e(t):n===Et.ENUM?k2e(t,o):V2e(t,i,r)}function L2e(e,t,n){if(!Wt.isVectorCompatible(n))return`componentType ${n} is incompatible with vector type ${t}`;if(t===Et.VEC2&&!(e instanceof U))return`vector value ${e} must be a Cartesian2`;if(t===Et.VEC3&&!(e instanceof h))return`vector value ${e} must be a Cartesian3`;if(t===Et.VEC4&&!(e instanceof oe))return`vector value ${e} must be a Cartesian4`}function N2e(e,t,n){if(!Wt.isVectorCompatible(n))return`componentType ${n} is incompatible with matrix type ${t}`;if(t===Et.MAT2&&!(e instanceof Bi))return`matrix value ${e} must be a Matrix2`;if(t===Et.MAT3&&!(e instanceof $))return`matrix value ${e} must be a Matrix3`;if(t===Et.MAT4&&!(e instanceof F))return`matrix value ${e} must be a Matrix4`}function F2e(e){if(typeof e!="string")return oN(e,Et.STRING)}function B2e(e){if(typeof e!="boolean")return oN(e,Et.BOOLEAN)}function k2e(e,t){let n=typeof e;if(l(t))return n!=="string"||!l(t.valuesByName[e])?`value ${e} is not a valid enum name for ${t.id}`:void 0}function V2e(e,t,n){let i=typeof e;switch(t){case Wt.INT8:case Wt.UINT8:case Wt.INT16:case Wt.UINT16:case Wt.INT32:case Wt.UINT32:case Wt.FLOAT32:case Wt.FLOAT64:return i!=="number"?oN(e,t):isFinite(e)?sie(e,t,n):aie(e,t);case Wt.INT64:case Wt.UINT64:return i!=="number"&&i!=="bigint"?oN(e,t):i==="number"&&!isFinite(e)?aie(e,t):sie(e,t,n)}}function oN(e,t){return`value ${e} does not match type ${t}`}function rie(e,t,n){let i=`value ${e} is out of range for type ${t}`;return n&&(i+=" (normalized)"),i}function sie(e,t,n){if(n){let i=Wt.isUnsignedIntegerType(t)?0:-1;return e<i||e>1?rie(e,t,n):void 0}if(e<Wt.getMinimum(t)||e>Wt.getMaximum(t))return rie(e,t,n)}function aie(e,t){return`value ${e} of type ${t} must be finite`}function T9(e,t,n){if(!Array.isArray(e))return n(e,t);for(let i=0;i<e.length;i++)e[i]=T9(e[i],t,n);return e}ba.valueTransformInPlace=function(e,t,n,i){if(!Array.isArray(e))return i(e,t,n);for(let o=0;o<e.length;o++)e[o]=ba.valueTransformInPlace(e[o],t[o],n[o],i);return e};var Z0=ba;function Vv(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.property,i=e.classProperty,o=e.bufferViews,r=i.type,s=i.isArray,a=i.isVariableLengthArray,c=i.valueType,u=i.enumType,f=r===Et.STRING,d=r===Et.BOOLEAN,p=0,g;if(a){let _=y(n.arrayOffsetType,n.offsetType);_=y(Wt[_],Wt.UINT32);let E=y(n.arrayOffsets,n.arrayOffsetBufferView);g=new A9(o[E],_,t+1),p+=g.typedArray.byteLength}let m=Et.getComponentCount(r),x;a?x=g.get(t)-g.get(0):s?x=t*i.arrayLength:x=t;let b=m*x,T;if(f){let _=y(n.stringOffsetType,n.offsetType);_=y(Wt[_],Wt.UINT32);let E=y(n.stringOffsets,n.stringOffsetBufferView);T=new A9(o[E],_,b+1),p+=T.typedArray.byteLength}(f||d)&&(c=Wt.UINT8);let A;f?A=T.get(b)-T.get(0):d?A=Math.ceil(b/8):A=b;let C=y(n.values,n.bufferView),S=new A9(o[C],c,A);p+=S.typedArray.byteLength;let v=n.offset,D=n.scale,O=i.hasValueTransform||l(v)||l(D);v=y(v,i.offset),D=y(D,i.scale),v=uie(v),D=uie(D);let R,M,L=this;f?R=function(_){return H2e(_,L._values,L._stringOffsets)}:d?(R=function(_){return G2e(_,L._values)},M=function(_,E){W2e(_,L._values,E)}):l(u)?(R=function(_){let E=L._values.get(_);return u.namesByValue[E]},M=function(_,E){let w=u.valuesByName[E];L._values.set(_,w)}):(R=function(_){return L._values.get(_)},M=function(_,E){L._values.set(_,E)}),this._arrayOffsets=g,this._stringOffsets=T,this._values=S,this._classProperty=i,this._count=t,this._vectorComponentCount=m,this._min=n.min,this._max=n.max,this._offset=v,this._scale=D,this._hasValueTransform=O,this._getValue=R,this._setValue=M,this._unpackedValues=void 0,this._extras=n.extras,this._extensions=n.extensions,this._byteLength=p}Object.defineProperties(Vv.prototype,{hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){return this._byteLength}}});Vv.prototype.get=function(e){let t=U2e(this,e);return t=this._classProperty.handleNoData(t),l(t)?(t=this._classProperty.normalize(t),t=Q2e(this,t),this._classProperty.unpackVectorAndMatrixTypes(t)):(t=this._classProperty.default,this._classProperty.unpackVectorAndMatrixTypes(t))};Vv.prototype.set=function(e,t){let n=this._classProperty;t=n.packVectorAndMatrixTypes(t),t=J2e(this,t),t=n.unnormalize(t),z2e(this,e,t)};Vv.prototype.getTypedArray=function(){if(l(this._values))return this._values.typedArray};function uie(e){if(!Array.isArray(e))return e;let t=[];for(let n=0;n<e.length;n++){let i=e[n];Array.isArray(i)?t.push.apply(t,i):t.push(i)}return t}function U2e(e,t){die(e)&&hie(e);let n=e._classProperty,i=n.isArray,o=n.type,r=Et.getComponentCount(o);if(l(e._unpackedValues)){let s=e._unpackedValues[t];return i?Ge(s,!0):s}return!i&&r===1?e._getValue(t):fie(e,n,t)}function fie(e,t,n){let i,o;if(t.isVariableLengthArray){i=e._arrayOffsets.get(n),o=e._arrayOffsets.get(n+1)-i;let s=Et.getComponentCount(t.type);i*=s,o*=s}else{let a=y(t.arrayLength,1)*e._vectorComponentCount;i=n*a,o=a}let r=new Array(o);for(let s=0;s<o;s++)r[s]=e._getValue(i+s);return r}function z2e(e,t,n){Z2e(e,t,n)&&hie(e);let i=e._classProperty,o=i.isArray,r=i.type,s=Et.getComponentCount(r);if(l(e._unpackedValues)){i.isArray&&(n=Ge(n,!0)),e._unpackedValues[t]=n;return}if(!o&&s===1){e._setValue(t,n);return}let a,c;if(i.isVariableLengthArray)a=e._arrayOffsets.get(t),c=e._arrayOffsets.get(t+1)-a;else{let f=y(i.arrayLength,1)*e._vectorComponentCount;a=t*f,c=f}for(let u=0;u<c;++u)e._setValue(a+u,n[u])}function H2e(e,t,n){let i=n.get(e),o=n.get(e+1)-i;return Ql(t.typedArray,i,o)}function G2e(e,t){let n=e>>3,i=e%8;return(t.typedArray[n]>>i&1)===1}function W2e(e,t,n){let i=e>>3,o=e%8;n?t.typedArray[i]|=1<<o:t.typedArray[i]&=~(1<<o)}function j2e(e,t){let n=t.dataView,i=e*8,o=0,r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=c*Math.pow(256,a)}return r&&(o=-o),o}function q2e(e,t){let n=t.dataView,i=e*8,o=BigInt(0),r=(n.getUint8(i+7)&128)>0,s=!0;for(let a=0;a<8;++a){let c=n.getUint8(i+a);r&&(s?c!==0&&(c=~(c-1)&255,s=!1):c=~c&255),o+=BigInt(c)*(BigInt(1)<<BigInt(a*8))}return r&&(o=-o),o}function Y2e(e,t){let n=t.dataView,i=e*8,o=n.getUint32(i,!0),r=n.getUint32(i+4,!0);return o+4294967296*r}function X2e(e,t){let n=t.dataView,i=e*8,o=BigInt(n.getUint32(i,!0)),r=BigInt(n.getUint32(i+4,!0));return o+BigInt(4294967296)*r}function K2e(e){switch(e){case Wt.INT8:return X.BYTE;case Wt.UINT8:return X.UNSIGNED_BYTE;case Wt.INT16:return X.SHORT;case Wt.UINT16:return X.UNSIGNED_SHORT;case Wt.INT32:return X.INT;case Wt.UINT32:return X.UNSIGNED_INT;case Wt.FLOAT32:return X.FLOAT;case Wt.FLOAT64:return X.DOUBLE}}function die(e){if(l(e._unpackedValues))return!1;let t=e._classProperty,n=t.type,i=t.valueType;return n===Et.STRING||i===Wt.INT64&&!jt.supportsBigInt64Array()||i===Wt.UINT64&&!jt.supportsBigUint64Array()}function Z2e(e,t,n){if(die(e))return!0;let i=e._arrayOffsets;if(l(i)){let o=i.get(t+1)-i.get(t),r=n.length;if(o!==r)return!0}return!1}function hie(e){e._unpackedValues=$2e(e),e._arrayOffsets=void 0,e._stringOffsets=void 0,e._values=void 0}function $2e(e){let t=e._count,n=new Array(t),i=e._classProperty,o=i.isArray,r=i.type,s=Et.getComponentCount(r);if(!o&&s===1){for(let a=0;a<t;++a)n[a]=e._getValue(a);return n}for(let a=0;a<t;a++)n[a]=fie(e,i,a);return n}function Q2e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Z0.valueTransformInPlace(t,e._offset,e._scale,Wt.applyValueTransform)}function J2e(e,t){let i=e._classProperty.isVariableLengthArray;return!e._hasValueTransform||i?t:Z0.valueTransformInPlace(t,e._offset,e._scale,Wt.unapplyValueTransform)}function A9(e,t,n){let i=this,o,r,s;if(t===Wt.INT64)jt.supportsBigInt()?jt.supportsBigInt64Array()?(o=new BigInt64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return q2e(a,i)}):(At("INT64 type is not fully supported on this platform. Values greater than 2^53 - 1 or less than -(2^53 - 1) may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return j2e(a,i)});else if(t===Wt.UINT64)jt.supportsBigInt()?jt.supportsBigUint64Array()?(o=new BigUint64Array(e.buffer,e.byteOffset,n),s=function(a,c){i.typedArray[a]=BigInt(c)}):(o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return X2e(a,i)}):(At("UINT64 type is not fully supported on this platform. Values greater than 2^53 - 1 may lose precision when read."),o=new Uint8Array(e.buffer,e.byteOffset,n*8),r=function(a){return Y2e(a,i)});else{let a=K2e(t);o=X.createArrayBufferView(a,e.buffer,e.byteOffset,n),s=function(c,u){i.typedArray[c]=u}}l(r)||(r=function(a){return i.typedArray[a]}),this.typedArray=o,this.dataView=new DataView(o.buffer,o.byteOffset),this.get=r,this.set=s,this._componentType=t}var rN=Vv;function ld(e){e=y(e,y.EMPTY_OBJECT);let t=e.count,n=e.class,i=0,o={};if(l(e.properties)){for(let r in e.properties)if(e.properties.hasOwnProperty(r)){let s=new rN({count:t,property:e.properties[r],classProperty:n.properties[r],bufferViews:e.bufferViews});o[r]=s,i+=s.byteLength}}this._count=t,this._class=n,this._properties=o,this._byteLength=i}Object.defineProperties(ld.prototype,{count:{get:function(){return this._count}},class:{get:function(){return this._class}},byteLength:{get:function(){return this._byteLength}}});ld.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};ld.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};ld.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};ld.prototype.getProperty=function(e,t){let n=this._properties[t],i;return l(n)?i=n.get(e):i=eBe(this._class,t),i};ld.prototype.setProperty=function(e,t,n){let i=this._properties[t];return l(i)?(i.set(e,n),!0):!1};ld.prototype.getPropertyBySemantic=function(e,t){let n,i=this._class.propertiesBySemantic;if(l(i)&&(n=i[t]),l(n))return this.getProperty(e,n.id)};ld.prototype.setPropertyBySemantic=function(e,t,n){let i,o=this._class.propertiesBySemantic;return l(o)&&(i=o[t]),l(i)?this.setProperty(e,i.id,n):!1};ld.prototype.getPropertyTypedArray=function(e){let t=this._properties[e];if(l(t))return t.getTypedArray()};ld.prototype.getPropertyTypedArrayBySemantic=function(e){let t,n=this._class.propertiesBySemantic;if(l(n)&&(t=n[e]),l(t))return this.getPropertyTypedArray(t.id)};function eBe(e,t){let n=e.properties;if(!l(n))return;let i=n[t];if(l(i)&&l(i.default)){let o=i.default;return i.isArray&&(o=Ge(o,!0)),o=i.normalize(o),i.unpackVectorAndMatrixTypes(o)}}var tu=ld;function ag(){}Object.defineProperties(ag.prototype,{cacheKey:{get:function(){he.throwInstantiationError()}}});ag.prototype.load=function(){he.throwInstantiationError()};ag.prototype.unload=function(){};ag.prototype.process=function(e){return!1};ag.prototype.getError=function(e,t){l(t)&&l(t.message)&&(e+=` +${t.message}`);let n=new ce(e);return l(t)&&(n.stack=`Original stack: +${t.stack} +Handler stack: +${n.stack}`),n};ag.prototype.isDestroyed=function(){return!1};ag.prototype.destroy=function(){return this.unload(),ue(this)};var Yi=ag;var tBe={UNLOADED:0,LOADING:1,LOADED:2,PROCESSING:3,READY:4,FAILED:5},_t=Object.freeze(tBe);function pp(e){e=y(e,y.EMPTY_OBJECT);let t=e.typedArray,n=e.resource,i=e.cacheKey;this._typedArray=t,this._resource=n,this._cacheKey=i,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(pp.prototype=Object.create(Yi.prototype),pp.prototype.constructor=pp);Object.defineProperties(pp.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});pp.prototype.load=async function(){return l(this._promise)?this._promise:l(this._typedArray)?(this._promise=Promise.resolve(this),this._promise):(this._promise=nBe(this),this._promise)};async function nBe(e){let t=e._resource;e._state=_t.LOADING;try{let n=await pp._fetchArrayBuffer(t);return e.isDestroyed()?void 0:(e._typedArray=new Uint8Array(n),e._state=_t.READY,e)}catch(n){if(e.isDestroyed())return;e._state=_t.FAILED;let i=`Failed to load external buffer: ${t.url}`;throw e.getError(i,n)}}pp._fetchArrayBuffer=function(e){return e.fetchArrayBuffer()};pp.prototype.unload=function(){this._typedArray=void 0};var sA=pp;var PQt=function(){var e="b9H79TebbbeJq9Geueu9Geub9Gbb9Gvuuuuueu9Gduueu9Gluuuueu9Gvuuuuub9Gouuuuuub9Gluuuub9GiuuueuiKLdilevlevlooroowwvwbDDbelve9Weiiviebeoweuec:G:Qdkr;RiOo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWVbe8F9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949c919M9MWV9c9V919U9KbdE9TW79O9V9Wt9FW9U9J9V9KW9wWVtW949wWV79P9V9UbiY9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWVbl8E9TW79O9V9Wt9FW9U9J9V9KW69U9KW949c919M9MWV9c9V919U9Kbv8A9TW79O9V9Wt9FW9U9J9V9KW69U9KW949wWV79P9V9UboE9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JWbra9TW79O9V9Wt9FW9U9J9V9KW69U9KW949tWG91W9U9JW9c9V919U9KbwL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9p9JtbDK9TW79O9V9Wt9FW9U9J9V9KWS9P2tWV9r919HtbqL9TW79O9V9Wt9FW9U9J9V9KWS9P2tWVT949WbkE9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OWbPa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94J9H9J9OW9ttV9P9Wbsa9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9WbzK9TW79O9V9Wt9F79W9Ht9P9H29t9VVt9sW9T9H9WbHl79IV9RbODwebcekdQXq;A9pLdbk;QqeKu8Jjjjjbcjo9Rgv8Kjjjjbcbhodnalcefae0mbabcbRbN:kjjbc:GeV86bbavcjdfcbcjdzNjjjb8AdnaiTmbavcjdfadalz:tjjjb8Akabaefhrabcefhwavalfcbcbcjdal9RalcFe0EzNjjjb8Aavavcjdfalz:tjjjbhDcj;abal9Uc;WFbGgecjdaecjd6Ehqcbhkindndnaiak9nmbaDcjlfcbcjdzNjjjb8Aaqaiak9Rakaqfai6Egxcsfgecl4cifcd4hmadakal2fhPdndndnaec9WGgsTmbcbhzaPhHawhOxekdnaxmbalheinaraw9Ram6miawcbamzNjjjbamfhwaecufgembxvkkcbhAaPhOinaDaAfRbbhCaDcjlfheaOhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkaraw9Ram6mdaOcefhOawcbamzNjjjbamfhwaAcefgAal9hmbxlkkindnaxTmbaDazfRbbhCaDcjlfheaHhoaxhXinaeaoRbbgQaC9RgCcetaCcKtcK91cr4786bbaoalfhoaecefheaQhCaXcufgXmbkkaraO9Ram6mearaOcbamzNjjjbgLamfgw9RcK6mecbhKaDcjlfhOinaDcjlfaKfhYcwhAczhQceheindndnaegXce9hmbcuhoaYRbbmecbhodninaogecsSmeaecefhoaOaefcefRbbTmbkkcucbaecs6EhoxekaXcethocuaXtc;:bGcFb7hCcbheinaoaCaOaefRbb9nfhoaecefgecz9hmbkkaoaQaoaQ6geEhQaXaAaeEhAaXcetheaXcl6mbkdndndndnaAcufPdiebkaLaKco4fgeaeRbbcdciaAclSEaKci4coGtV86bbaAcw9hmeawaY8Pbb83bbawcwfaYcwf8Pbb83bbawczfhwxdkaLaKco4fgeaeRbbceaKci4coGtV86bbkdncwaA9Tg8Ambinawcb86bbawcefhwxbkkcuaAtcu7hYcbhEaOh3ina3hea8AhCcbhoinaeRbbgQaYcFeGgXaQaX6EaoaAtVhoaecefheaCcufgCmbkawao86bba3a8Afh3awcefhwaEa8AfgEcz6mbkcbheindnaOaefRbbgoaX6mbawao86bbawcefhwkaecefgecz9hmbkkdnaKczfgKas9pmbaOczfhOaraw9RcL0mekkaKas6meawTmeaHcefhHawhOazcefgzalSmixbkkcbhoxikcbhoaraw9Ralcaalca0E6mddnalc8F0mbawcbcaal9RgezNjjjbaefhwkawaDcjdfalz:tjjjbalfab9RhoxdkaDaPaxcufal2falz:tjjjb8Aaxakfhkawmbkcbhokavcjof8Kjjjjbaok9heeuaecaaeca0Eabcj;abae9Uc;WFbGgdcjdadcjd6Egdfcufad9Uae2adcl4cifcd4adV2fcefkmbcbabBdN:kjjbk:zse5u8Jjjjjbc;ae9Rgl8Kjjjjbcbhvdnaici9UgocHfae0mbabcbyd:e:kjjbgrc;GeV86bbalc;abfcFecjezNjjjb8AalcUfgw9cu83ibalc8WfgD9cu83ibalcyfgq9cu83ibalcafgk9cu83ibalcKfgx9cu83ibalczfgm9cu83ibal9cu83iwal9cu83ibabaefc9WfhPabcefgsaofhednaiTmbcmcsarcb9kgzEhHcbhOcbhAcbhCcbhXcbhQindnaeaP9nmbcbhvxikaQcufhvadaCcdtfgLydbhKaLcwfydbhYaLclfydbh8AcbhEdndndninalc;abfavcsGcitfgoydlh3dndndnaoydbgoaK9hmba3a8ASmekdnaoa8A9hmba3aY9hmbaEcefhExekaoaY9hmea3aK9hmeaEcdfhEkaEc870mdaXcufhvaLaEciGcx2goc:y1jjbfydbcdtfydbh3aLaocN1jjbfydbcdtfydbh8AaLaoc:q1jjbfydbcdtfydbhKcbhodnindnalavcsGcdtfydba39hmbaohYxdkcuhYavcufhvaocefgocz9hmbkkaOa3aOSgvaYce9iaYaH9oVgoGfhOdndndncbcsavEaYaoEgvcs9hmbarce9imba3a3aAa3cefaASgvEgAcefSmecmcsavEhvkasavaEcdtc;WeGV86bbavcs9hmea3aA9Rgvcetavc8F917hvinaeavcFb0crtavcFbGV86bbaecefheavcje6hoavcr4hvaoTmbka3hAxvkcPhvasaEcdtcPV86bba3hAkavTmiavaH9omicdhocehEaQhYxlkavcufhvaEclfgEc;ab9hmbkkdnaLceaYaOSceta8AaOSEcx2gvc:q1jjbfydbcdtfydbgKTaLavcN1jjbfydbcdtfydbg8AceSGaLavc:y1jjbfydbcdtfydbg3cdSGaOcb9hGazGg5ce9hmbaw9cu83ibaD9cu83ibaq9cu83ibak9cu83ibax9cu83ibam9cu83ibal9cu83iwal9cu83ibcbhOkcbhEaXcufgvhodnindnalaocsGcdtfydba8A9hmbaEhYxdkcuhYaocufhoaEcefgEcz9hmbkkcbhodnindnalavcsGcdtfydba39hmbaohExdkcuhEavcufhvaocefgocz9hmbkkaOaKaOSg8EfhLdndnaYcm0mbaYcefhYxekcbcsa8AaLSgvEhYaLavfhLkdndnaEcm0mbaEcefhExekcbcsa3aLSgvEhEaLavfhLkc9:cua8EEh8FcbhvaEaYcltVgacFeGhodndndninavcj1jjbfRbbaoSmeavcefgvcz9hmbxdkka5aKaO9havcm0VVmbasavc;WeV86bbxekasa8F86bbaeaa86bbaecefhekdna8EmbaKaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombkaKhAkdnaYcs9hmba8AaA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka8AhAkdnaEcs9hmba3aA9Rgvcetavc8F917hvinaeavcFb0gocrtavcFbGV86bbavcr4hvaecefheaombka3hAkalaXcdtfaKBdbaXcefcsGhvdndnaYPzbeeeeeeeeeeeeeebekalavcdtfa8ABdbaXcdfcsGhvkdndnaEPzbeeeeeeeeeeeeeebekalavcdtfa3BdbavcefcsGhvkcihoalc;abfaQcitfgEaKBdlaEa8ABdbaQcefcsGhYcdhEavhXaLhOxekcdhoalaXcdtfa3BdbcehEaXcefcsGhXaQhYkalc;abfaYcitfgva8ABdlava3Bdbalc;abfaQaEfcsGcitfgva3BdlavaKBdbascefhsaQaofcsGhQaCcifgCai6mbkkcbhvaeaP0mbcbhvinaeavfavcj1jjbfRbb86bbavcefgvcz9hmbkaeab9Ravfhvkalc;aef8KjjjjbavkZeeucbhddninadcefgdc8F0meceadtae6mbkkadcrfcFeGcr9Uci2cdfabci9U2cHfkmbcbabBd:e:kjjbk:ydewu8Jjjjjbcz9Rhlcbhvdnaicvfae0mbcbhvabcbRb:e:kjjbc;qeV86bbal9cb83iwabcefhoabaefc98fhrdnaiTmbcbhwcbhDindnaoar6mbcbskadaDcdtfydbgqalcwfawaqav9Rgvavc8F91gv7av9Rc507gwcdtfgkydb9Rgvc8E91c9:Gavcdt7awVhvinaoavcFb0gecrtavcFbGV86bbavcr4hvaocefhoaembkakaqBdbaqhvaDcefgDai9hmbkkcbhvaoar0mbaocbBbbaoab9RclfhvkavkBeeucbhddninadcefgdc8F0meceadtae6mbkkadcwfcFeGcr9Uab2cvfk:bvli99dui99ludnaeTmbcuadcetcuftcu7:Yhvdndncuaicuftcu7:YgoJbbbZMgr:lJbbb9p9DTmbar:Ohwxekcjjjj94hwkcbhicbhDinalclfIdbgrJbbbbJbbjZalIdbgq:lar:lMalcwfIdbgk:lMgr:varJbbbb9BEgrNhxaqarNhrdndnakJbbbb9GTmbaxhqxekJbbjZar:l:tgqaq:maxJbbbb9GEhqJbbjZax:l:tgxax:marJbbbb9GEhrkdndnalcxfIdbgxJbbj:;axJbbj:;9GEgkJbbjZakJbbjZ9FEavNJbbbZJbbb:;axJbbbb9GEMgx:lJbbb9p9DTmbax:Ohmxekcjjjj94hmkdndnaqJbbj:;aqJbbj:;9GEgxJbbjZaxJbbjZ9FEaoNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:OhPxekcjjjj94hPkdndnarJbbj:;arJbbj:;9GEgqJbbjZaqJbbjZ9FEaoNJbbbZJbbb:;arJbbbb9GEMgr:lJbbb9p9DTmbar:Ohsxekcjjjj94hskdndnadcl9hmbabaifgzas86bbazcifam86bbazcdfaw86bbazcefaP86bbxekabaDfgzas87ebazcofam87ebazclfaw87ebazcdfaP87ebkalczfhlaiclfhiaDcwfhDaecufgembkkk;hlld99eud99eudnaeTmbdndncuaicuftcu7:YgvJbbbZMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikaic;8FiGhrinabcofcicdalclfIdb:lalIdb:l9EgialcwfIdb:lalaicdtfIdb:l9EEgialcxfIdb:lalaicdtfIdb:l9EEgiarV87ebdndnJbbj:;JbbjZalaicdtfIdbJbbbb9DEgoalaicd7cdtfIdbJ;Zl:1ZNNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabcdfaq87ebdndnalaicefciGcdtfIdbJ;Zl:1ZNaoNgwJbbj:;awJbbj:;9GEgDJbbjZaDJbbjZ9FEavNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohqxekcjjjj94hqkabaq87ebdndnaoalaicufciGcdtfIdbJ;Zl:1ZNNgoJbbj:;aoJbbj:;9GEgwJbbjZawJbbjZ9FEavNJbbbZJbbb:;aoJbbbb9GEMgo:lJbbb9p9DTmbao:Ohixekcjjjj94hikabclfai87ebabcwfhbalczfhlaecufgembkkk;3viDue99eu8Jjjjjbcjd9Rgo8Kjjjjbadcd4hrdndndndnavcd9hmbadcl6meaohwarhDinawc:CuBdbawclfhwaDcufgDmbkaeTmiadcl6mdarcdthqalhkcbhxinaohwakhDarhminawawydbgPcbaDIdbgs:8cL4cFeGc:cufasJbbbb9BEgzaPaz9kEBdbaDclfhDawclfhwamcufgmmbkakaqfhkaxcefgxaeSmixbkkaeTmdxekaeTmekarcdthkavce9hhqadcl6hdcbhxindndndnaqmbadmdc:CuhDalhwarhminaDcbawIdbgs:8cL4cFeGc:cufasJbbbb9BEgPaDaP9kEhDawclfhwamcufgmmbxdkkc:CuhDdndnavPleddbdkadmdaohwalhmarhPinawcbamIdbgs:8cL4cFeGgzc;:bazc;:b9kEc:cufasJbbbb9BEBdbamclfhmawclfhwaPcufgPmbxdkkadmecbhwarhminaoawfcbalawfIdbgs:8cL4cFeGgPc8AaPc8A9kEc:cufasJbbbb9BEBdbawclfhwamcufgmmbkkadmbcbhwarhPinaDhmdnavceSmbaoawfydbhmkdndnalawfIdbgscjjj;8iamai9RcefgmcLt9R::NJbbbZJbbb:;asJbbbb9GEMgs:lJbbb9p9DTmbas:Ohzxekcjjjj94hzkabawfazcFFFrGamcKtVBdbawclfhwaPcufgPmbkkabakfhbalakfhlaxcefgxae9hmbkkaocjdf8Kjjjjbk;HqdCui998Jjjjjbc:qd9Rgv8Kjjjjbavc:Sefcbc;KbzNjjjb8AcbhodnadTmbcbhoaiTmbdnabae9hmbavcuadcdtgradcFFFFi0Ecbyd:m:kjjbHjjjjbbgeBd:SeavceBd:mdaeabarz:tjjjb8Akavc:GefcwfcbBdbav9cb83i:Geavc:Gefaeadaiavc:Sefz:njjjbavyd:Gehwadci9UgDcbyd:m:kjjbHjjjjbbhravc:Sefavyd:mdgqcdtfarBdbavaqcefgkBd:mdarcbaDzNjjjbhxavc:SefakcdtfcuaicdtaicFFFFi0Ecbyd:m:kjjbHjjjjbbgmBdbavaqcdfgPBd:mdawhramhkinakalIdbalarydbgscwascw6Ecdtfc;ebfIdbMUdbarclfhrakclfhkaicufgimbkavc:SefaPcdtfcuaDcdtadcFFFF970Ecbyd:m:kjjbHjjjjbbgPBdbdnadci6mbaehraPhkaDhiinakamarydbcdtfIdbamarclfydbcdtfIdbMamarcwfydbcdtfIdbMUdbarcxfhrakclfhkaicufgimbkkaqcifhoavc;qbfhzavhravyd:KehHavyd:OehOcbhscbhkcbhAcehCinarhXcihQaeakci2gLcdtfgrydbhdarclfydbhqabaAcx2fgicwfarcwfydbgKBdbaiclfaqBdbaiadBdbaxakfce86bbazaKBdwazaqBdlazadBdbaPakcdtfcbBdbdnasTmbcihQaXhiinazaQcdtfaiydbgrBdbaQaraK9harad9haraq9hGGfhQaiclfhiascufgsmbkkaAcefhAcbhsinaOaHaeasaLfcdtfydbcdtgifydbcdtfgKhrawaifgqydbgdhidnadTmbdninarydbakSmearclfhraicufgiTmdxbkkaraKadcdtfc98fydbBdbaqaqydbcufBdbkascefgsci9hmbkdndnaQTmbcuhkJbbbbhYcbhqavyd:KehKavyd:OehLindndnawazaqcdtfydbcdtgsfydbgrmbaqcefhqxekaqcs0hiamasfgdIdbh8AadalcbaqcefgqaiEcdtfIdbalarcwarcw6Ecdtfc;ebfIdbMgEUdbaEa8A:thEarcdthiaLaKasfydbcdtfhrinaParydbgscdtfgdaEadIdbMg8AUdba8AaYaYa8A9DgdEhYasakadEhkarclfhraic98fgimbkkaqaQ9hmbkakcu9hmekaCaD9pmdindnaxaCfRbbmbaChkxdkaDaCcefgC9hmbxikkaQczaQcz6EhsazhraXhzakcu9hmbkkaocdtavc:Seffc98fhrdninaoTmearydbcbyd1:kjjbH:bjjjbbarc98fhraocufhoxbkkavc:qdf8Kjjjjbk;IlevucuaicdtgvaicFFFFi0Egocbyd:m:kjjbHjjjjbbhralalyd9GgwcdtfarBdbalawcefBd9GabarBdbaocbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdlcuadcdtadcFFFFi0Ecbyd:m:kjjbHjjjjbbhralalyd9GgocdtfarBdbalaocefBd9GabarBdwabydbcbavzNjjjb8Aadci9UhDdnadTmbabydbhoaehladhrinaoalydbcdtfgvavydbcefBdbalclfhlarcufgrmbkkdnaiTmbabydbhlabydlhrcbhvaihoinaravBdbarclfhralydbavfhvalclfhlaocufgombkkdnadci6mbabydlhrabydwhvcbhlinaecwfydbhoaeclfydbhdaraeydbcdtfgwawydbgwcefBdbavawcdtfalBdbaradcdtfgdadydbgdcefBdbavadcdtfalBdbaraocdtfgoaoydbgocefBdbavaocdtfalBdbaecxfheaDalcefgl9hmbkkdnaiTmbabydlheabydbhlinaeaeydbalydb9RBdbalclfhlaeclfheaicufgimbkkkQbabaeadaic:01jjbz:mjjjbkQbabaeadaic:C:jjjbz:mjjjbk9DeeuabcFeaicdtzNjjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk;Wkivuo99lu8Jjjjjbc;W;Gb9Rgl8Kjjjjbcbhvalcj;Gbfcbc;KbzNjjjb8AalcuadcdtadcFFFFi0Egocbyd:m:kjjbHjjjjbbgrBdj9GalceBd;G9GalcFFF;7rBdwal9cFFF;7;3FF:;Fb83dbalcFFF97Bd;S9Gal9cFFF;7FFF:;u83d;K9Gaicd4hwdndnadmbJFFuFhDJFFuuhqJFFuuhkJFFuFhxJFFuuhmJFFuFhPxekawcdthsaehzincbhiinalaifgHazaifIdbgDaHIdbgxaxaD9EEUdbalc;K;GbfaifgHaDaHIdbgxaxaD9DEUdbaiclfgicx9hmbkazasfhzavcefgvad9hmbkalIdwhqalId;S9GhDalIdlhkalId;O9GhxalIdbhmalId;K9GhPkdndnadTmbJbbbbJbbjZJbbbbaPam:tgPaPJbbbb9DEgPaxak:tgxaxaP9DEgxaDaq:tgDaDax9DEgD:vaDJbbbb9BEhDawcdthsarhHadhzindndnaDaeIdbam:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcv2c;j:KM;jbGhvdndnaDaeclfIdbak:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcq2cM;j:KMeGavVhvdndnaDaecwfIdbaq:tNJb;au9eNJbbbZMgx:lJbbb9p9DTmbax:Ohixekcjjjj94hikaHavaicztaicwtcj;GiGVaicsGVc:p;G:dKGcH2c;d;H:WKGcC2c:KM;j:KdGVBdbaeasfheaHclfhHazcufgzmbkalcbcj;GbzNjjjbhiarhHadheinaiaHydbgzcFrGcx2fgvavydbcefBdbaiazcq4cFrGcx2fgvavydlcefBdlaiazcC4cFrGcx2fgzazydwcefBdwaHclfhHaecufgembxdkkalcbcj;GbzNjjjb8AkcbhHcbhzcbhecbhvinalaHfgiydbhsaiazBdbaicwfgwydbhOawavBdbaiclfgiydbhwaiaeBdbasazfhzaOavfhvawaefheaHcxfgHcj;Gb9hmbkcbhHalaocbyd:m:kjjbHjjjjbbgiBd:e9GdnadTmbabhzinazaHBdbazclfhzadaHcefgH9hmbkabhHadhzinalaraHydbgecdtfydbcFrGcx2fgvavydbgvcefBdbaiavcdtfaeBdbaHclfhHazcufgzmbkaihHadhzinalaraHydbgecdtfydbcq4cFrGcx2fgvavydlgvcefBdlabavcdtfaeBdbaHclfhHazcufgzmbkabhHadhzinalaraHydbgecdtfydbcC4cFrGcx2fgvavydwgvcefBdwaiavcdtfaeBdbaHclfhHazcufgzmbkcbhHinabaiydbcdtfaHBdbaiclfhiadaHcefgH9hmbkkclhidninaic98Smealcj;Gbfaifydbcbyd1:kjjbH:bjjjbbaic98fhixbkkalc;W;Gbf8Kjjjjbk9teiucbcbyd:q:kjjbgeabcifc98GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd:q:kjjbgeabcrfc94GfgbBd:q:kjjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd:q:kjjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd:q:kjjbfgdBd:q:kjjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akkk:Iddbcjwk:edb4:h9w9N94:P:gW:j9O:ye9Pbbbbbbebbbdbbbebbbdbbbbbbbdbbbbbbbebbbbbbb:l29hZ;69:9kZ;N;76Z;rg97Z;z;o9xZ8J;B85Z;:;u9yZ;b;k9HZ:2;Z9DZ9e:l9mZ59A8KZ:r;T3Z:A:zYZ79OHZ;j4::8::Y:D9V8:bbbb9s:49:Z8R:hBZ9M9M;M8:L;z;o8:;8:PG89q;x:J878R:hQ8::M:B;e87bbbbbbjZbbjZbbjZ:E;V;N8::Y:DsZ9i;H;68:xd;R8:;h0838:;W:NoZbbbb:WV9O8:uf888:9i;H;68:9c9G;L89;n;m9m89;D8Ko8:bbbbf:8tZ9m836ZS:2AZL;zPZZ818EZ9e:lxZ;U98F8:819E;68:bc:eqkzebbbebbbdbbba:vbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(g){n=g.instance,n.exports.__wasm_call_ctors(),n.exports.meshopt_encodeVertexVersion(0),n.exports.meshopt_encodeIndexVersion(1)});function o(g){for(var m=new Uint8Array(g.length),x=0;x<g.length;++x){var b=g.charCodeAt(x);m[x]=b>96?b-97:b>64?b-39:b+4}for(var T=0,x=0;x<g.length;++x)m[T++]=m[x]<60?t[m[x]]:(m[x]-60)*64+m[++x];return m.buffer.slice(0,T)}function r(g){if(!g)throw new Error("Assertion failed")}function s(g){return new Uint8Array(g.buffer,g.byteOffset,g.byteLength)}function a(g,m,x,b){var T=n.exports.sbrk,A=T(m.length*4),C=T(x*4),S=new Uint8Array(n.exports.memory.buffer),v=s(m);S.set(v,A),b&&b(A,A,m.length,x);var D=g(C,A,m.length,x);S=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(x);new Uint8Array(O.buffer).set(S.subarray(C,C+x*4)),v.set(S.subarray(A,A+m.length*4)),T(A-T(0));for(var R=0;R<m.length;++R)m[R]=O[m[R]];return[O,D]}function c(g,m,x,b){var T=n.exports.sbrk,A=T(x*4),C=T(x*b),S=new Uint8Array(n.exports.memory.buffer);S.set(s(m),C),g(A,C,x,b),S=new Uint8Array(n.exports.memory.buffer);var v=new Uint32Array(x);return new Uint8Array(v.buffer).set(S.subarray(A,A+x*4)),T(A-T(0)),v}function u(g,m,x,b,T){var A=n.exports.sbrk,C=A(m),S=A(b*T),v=new Uint8Array(n.exports.memory.buffer);v.set(s(x),S);var D=g(C,m,S,b,T),O=new Uint8Array(D);return O.set(v.subarray(C,C+D)),A(C-A(0)),O}function f(g){for(var m=0,x=0;x<g.length;++x){var b=g[x];m=m<b?b:m}return m}function d(g,m){if(r(m==2||m==4),m==4)return new Uint32Array(g.buffer,g.byteOffset,g.byteLength/4);var x=new Uint16Array(g.buffer,g.byteOffset,g.byteLength/2);return new Uint32Array(x)}function p(g,m,x,b,T,A,C){var S=n.exports.sbrk,v=S(x*b),D=S(x*A),O=new Uint8Array(n.exports.memory.buffer);O.set(s(m),D),g(v,x,b,T,D,C);var R=new Uint8Array(x*b);return R.set(O.subarray(v,v+x*b)),S(v-S(0)),R}return{ready:i,supported:!0,reorderMesh:function(g,m,x){var b=m?x?n.exports.meshopt_optimizeVertexCacheStrip:n.exports.meshopt_optimizeVertexCache:void 0;return a(n.exports.meshopt_optimizeVertexFetchRemap,g,f(g)+1,b)},reorderPoints:function(g,m){return r(g instanceof Float32Array),r(g.length%m==0),r(m>=3),c(n.exports.meshopt_spatialSortRemap,g,g.length/m,m*4)},encodeVertexBuffer:function(g,m,x){r(x>0&&x<=256),r(x%4==0);var b=n.exports.meshopt_encodeVertexBufferBound(m,x);return u(n.exports.meshopt_encodeVertexBuffer,b,g,m,x)},encodeIndexBuffer:function(g,m,x){r(x==2||x==4),r(m%3==0);var b=d(g,x),T=n.exports.meshopt_encodeIndexBufferBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexBuffer,T,b,m,4)},encodeIndexSequence:function(g,m,x){r(x==2||x==4);var b=d(g,x),T=n.exports.meshopt_encodeIndexSequenceBound(m,f(b)+1);return u(n.exports.meshopt_encodeIndexSequence,T,b,m,4)},encodeGltfBuffer:function(g,m,x,b){var T={ATTRIBUTES:this.encodeVertexBuffer,TRIANGLES:this.encodeIndexBuffer,INDICES:this.encodeIndexSequence};return r(T[b]),T[b](g,m,x)},encodeFilterOct:function(g,m,x,b){return r(x==4||x==8),r(b>=1&&b<=16),p(n.exports.meshopt_encodeFilterOct,g,m,x,b,16)},encodeFilterQuat:function(g,m,x,b){return r(x==8),r(b>=4&&b<=16),p(n.exports.meshopt_encodeFilterQuat,g,m,x,b,16)},encodeFilterExp:function(g,m,x,b,T){r(x>0&&x%4==0),r(b>=1&&b<=24);var A={Separate:0,SharedVector:1,SharedComponent:2,Clamped:3};return p(n.exports.meshopt_encodeFilterExp,g,m,x,b,x,T?A[T]:1)}}}();var mie=function(){var e="b9H79Tebbbe8Fv9Gbb9Gvuuuuueu9Giuuub9Geueu9Giuuueuikqbeeedddillviebeoweuec:q:Odkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbeY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVbdE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbiL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtblK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbol79IV9Rbrq;w8Wqdbk;esezu8Jjjjjbcj;eb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Radz1jjjbhwcj;abad9Uc;WFbGgocjdaocjd6EhDaicefhocbhqdnindndndnaeaq9nmbaDaeaq9RaqaDfae6Egkcsfglcl4cifcd4hxalc9WGgmTmecbhPawcjdfhsaohzinaraz9Rax6mvarazaxfgo9RcK6mvczhlcbhHinalgic9WfgOawcj;cbffhldndndndndnazaOco4fRbbaHcoG4ciGPlbedibkal9cb83ibalcwf9cb83ibxikalaoRblaoRbbgOco4gAaAciSgAE86bbawcj;cbfaifglcGfaoclfaAfgARbbaOcl4ciGgCaCciSgCE86bbalcVfaAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc7faAaCfgARbbaOciGgOaOciSgOE86bbalctfaAaOfgARbbaoRbegOco4gCaCciSgCE86bbalc91faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc4faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc93faAaCfgARbbaOciGgOaOciSgOE86bbalc94faAaOfgARbbaoRbdgOco4gCaCciSgCE86bbalc95faAaCfgARbbaOcl4ciGgCaCciSgCE86bbalc96faAaCfgARbbaOcd4ciGgCaCciSgCE86bbalc97faAaCfgARbbaOciGgOaOciSgOE86bbalc98faAaOfgORbbaoRbigoco4gAaAciSgAE86bbalc99faOaAfgORbbaocl4ciGgAaAciSgAE86bbalc9:faOaAfgORbbaocd4ciGgAaAciSgAE86bbalcufaOaAfglRbbaociGgoaociSgoE86bbalaofhoxdkalaoRbwaoRbbgOcl4gAaAcsSgAE86bbawcj;cbfaifglcGfaocwfaAfgARbbaOcsGgOaOcsSgOE86bbalcVfaAaOfgORbbaoRbegAcl4gCaCcsSgCE86bbalc7faOaCfgORbbaAcsGgAaAcsSgAE86bbalctfaOaAfgORbbaoRbdgAcl4gCaCcsSgCE86bbalc91faOaCfgORbbaAcsGgAaAcsSgAE86bbalc4faOaAfgORbbaoRbigAcl4gCaCcsSgCE86bbalc93faOaCfgORbbaAcsGgAaAcsSgAE86bbalc94faOaAfgORbbaoRblgAcl4gCaCcsSgCE86bbalc95faOaCfgORbbaAcsGgAaAcsSgAE86bbalc96faOaAfgORbbaoRbvgAcl4gCaCcsSgCE86bbalc97faOaCfgORbbaAcsGgAaAcsSgAE86bbalc98faOaAfgORbbaoRbogAcl4gCaCcsSgCE86bbalc99faOaCfgORbbaAcsGgAaAcsSgAE86bbalc9:faOaAfgORbbaoRbrgocl4gAaAcsSgAE86bbalcufaOaAfglRbbaocsGgoaocsSgoE86bbalaofhoxekalao8Pbb83bbalcwfaocwf8Pbb83bbaoczfhokdnaiam9pmbaHcdfhHaiczfhlarao9RcL0mekkaiam6mvaoTmvdnakTmbawaPfRbbhHawcj;cbfhlashiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkkascefhsaohzaPcefgPad9hmbxikkcbc99arao9Radcaadca0ESEhoxlkaoaxad2fhCdnakmbadhlinaoTmlarao9Rax6mlaoaxfhoalcufglmbkaChoxekcbhmawcjdfhAinarao9Rax6miawamfRbbhHawcj;cbfhlaAhiakhOinaialRbbgzce4cbazceG9R7aHfgH86bbaiadfhialcefhlaOcufgOmbkaAcefhAaoaxfhoamcefgmad9hmbkaChokabaqad2fawcjdfakad2z1jjjb8Aawawcjdfakcufad2fadz1jjjb8Aakaqfhqaombkc9:hoxekc9:hokavcj;ebf8Kjjjjbaok;cseHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecjez:jjjjb8AavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:Lvoeue99dud99eud99dndnadcl9hmbaeTmeindndnabcdfgd8Sbb:Yab8Sbbgi:Ygl:l:tabcefgv8Sbbgo:Ygr:l:tgwJbb;:9cawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai86bbdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad86bbdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad86bbabclfhbaecufgembxdkkaeTmbindndnabclfgd8Ueb:Yab8Uebgi:Ygl:l:tabcdfgv8Uebgo:Ygr:l:tgwJb;:FSawawNJbbbbawawJbbbb9GgDEgq:mgkaqaicb9iEalMgwawNakaqaocb9iEarMgqaqNMM:r:vglNJbbbZJbbb:;aDEMgr:lJbbb9p9DTmbar:Ohixekcjjjj94hikadai87ebdndnaqalNJbbbZJbbb:;aqJbbbb9GEMgq:lJbbb9p9DTmbaq:Ohdxekcjjjj94hdkavad87ebdndnawalNJbbbZJbbb:;awJbbbb9GEMgw:lJbbb9p9DTmbaw:Ohdxekcjjjj94hdkabad87ebabcwfhbaecufgembkkk;oiliui99iue99dnaeTmbcbhiabhlindndnJ;Zl81Zalcof8UebgvciV:Y:vgoal8Ueb:YNgrJb;:FSNJbbbZJbbb:;arJbbbb9GEMgw:lJbbb9p9DTmbaw:OhDxekcjjjj94hDkalclf8Uebhqalcdf8UebhkabaiavcefciGfcetfaD87ebdndnaoak:YNgwJb;:FSNJbbbZJbbb:;awJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavciGfgkcd7cetfaD87ebdndnaoaq:YNgoJb;:FSNJbbbZJbbb:;aoJbbbb9GEMgx:lJbbb9p9DTmbax:OhDxekcjjjj94hDkabaiavcufciGfcetfaD87ebdndnJbbjZararN:tawawN:taoaoN:tgrJbbbbarJbbbb9GE:rJb;:FSNJbbbZMgr:lJbbb9p9DTmbar:Ohvxekcjjjj94hvkabakcetfav87ebalcwfhlaiclfhiaecufgembkkk9mbdnadcd4ae2gdTmbinababydbgecwtcw91:Yaece91cjjj98Gcjjj;8if::NUdbabclfhbadcufgdmbkkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabkkkebcjwklzNbb",t="b9H79TebbbeKl9Gbb9Gvuuuuueu9Giuuub9Geueuikqbbebeedddilve9Weeeviebeoweuec:q:6dkr;leDo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9KW9J9V9KW9wWVtW949c919M9MWVbdY9TW79O9V9Wt9F9KW9J9V9KW69U9KW949c919M9MWVblE9TW79O9V9Wt9F9KW9J9V9KW69U9KW949tWG91W9U9JWbvL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9p9JtboK9TW79O9V9Wt9F9KW9J9V9KWS9P2tWV9r919HtbrL9TW79O9V9Wt9F9KW9J9V9KWS9P2tWVT949Wbwl79IV9RbDq:p9sqlbzik9:evu8Jjjjjbcz9Rhbcbheincbhdcbhiinabcwfadfaicjuaead4ceGglE86bbaialfhiadcefgdcw9hmbkaec:q:yjjbfai86bbaecitc:q1jjbfab8Piw83ibaecefgecjd9hmbkk:N8JlHud97euo978Jjjjjbcj;kb9Rgv8Kjjjjbc9:hodnadcefal0mbcuhoaiRbbc:Ge9hmbavaialfgrad9Rad;8qbbcj;abad9UhlaicefhodnaeTmbadTmbalc;WFbGglcjdalcjd6EhwcbhDinawaeaD9RaDawfae6Egqcsfglc9WGgkci2hxakcethmalcl4cifcd4hPabaDad2fhsakc;ab6hzcbhHincbhOaohAdndninaraA9RaP6meavcj;cbfaOak2fhCaAaPfhocbhidnazmbarao9Rc;Gb6mbcbhlinaCalfhidndndndndnaAalco4fRbbgXciGPlbedibkaipxbbbbbbbbbbbbbbbbpklbxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklbaoczfhokdndndndndnaXcd4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklzxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklzaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklzaoczfhokdndndndndnaXcl4ciGPlbedibkaipxbbbbbbbbbbbbbbbbpklaxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spklaaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaiaopbbbpklaaoczfhokdndndndndnaXco4Plbedibkaipxbbbbbbbbbbbbbbbbpkl8WxikaiaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaoclfaYpQbfaXc:q:yjjbfRbbfhoxdkaiaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibaXc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgXcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkl8WaocwfaYpQbfaXc:q:yjjbfRbbfhoxekaiaopbbbpkl8Waoczfhokalc;abfhialcjefak0meaihlarao9Rc;Fb0mbkkdnaiak9pmbaici4hlinarao9RcK6miaCaifhXdndndndndnaAaico4fRbbalcoG4ciGPlbedibkaXpxbbbbbbbbbbbbbbbbpkbbxikaXaopbblaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLgQcdp:meaQpmbzeHdOiAlCvXoQrLpxiiiiiiiiiiiiiiiip9ogLpxiiiiiiiiiiiiiiiip8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaoclfaYpQbfaKc:q:yjjbfRbbfhoxdkaXaopbbwaopbbbgQclp:meaQpmbzeHdOiAlCvXoQrLpxssssssssssssssssp9ogLpxssssssssssssssssp8JgQp5b9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibaKc:q:yjjbfpbbbgYaYpmbbbbbbbbbbbbbbbbaQp5e9cjF;8;4;W;G;ab9:9cU1:NgKcitc:q1jjbfpbibp9UpmbedilvorzHOACXQLpPaLaQp9spkbbaocwfaYpQbfaKc:q:yjjbfRbbfhoxekaXaopbbbpkbbaoczfhokalcdfhlaiczfgiak6mbkkaoTmeaohAaOcefgOclSmdxbkkc9:hoxlkdnakTmbavcjdfaHfhiavaHfpbdbhYcbhXinaiavcj;cbfaXfglpblbgLcep9TaLpxeeeeeeeeeeeeeeeegQp9op9Hp9rgLalakfpblbg8Acep9Ta8AaQp9op9Hp9rg8ApmbzeHdOiAlCvXoQrLgEalamfpblbg3cep9Ta3aQp9op9Hp9rg3alaxfpblbg5cep9Ta5aQp9op9Hp9rg5pmbzeHdOiAlCvXoQrLg8EpmbezHdiOAlvCXorQLgQaQpmbedibedibedibediaYp9UgYp9AdbbaiadfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaEa8EpmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwKDYq8AkEx3m5P8Es8FgLa3a5pmwKDYq8AkEx3m5P8Es8Fg8ApmbezHdiOAlvCXorQLgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfglaYaLa8ApmwDKYqk8AExm35Ps8E8FgQaQpmbedibedibedibedip9UgYp9AdbbaladfglaYaQaQpmlvorlvorlvorlvorp9UgYp9AdbbaladfglaYaQaQpmwDqkwDqkwDqkwDqkp9UgYp9AdbbaladfglaYaQaQpmxmPsxmPsxmPsxmPsp9UgYp9AdbbaladfhiaXczfgXak6mbkkaHclfgHad6mbkasavcjdfaqad2;8qbbavavcjdfaqcufad2fad;8qbbaqaDfgDae6mbkkcbc99arao9Radcaadca0ESEhokavcj;kbf8Kjjjjbaokwbz:bjjjbk::seHu8Jjjjjbc;ae9Rgv8Kjjjjbc9:hodnaeci9UgrcHfal0mbcuhoaiRbbgwc;WeGc;Ge9hmbawcsGgwce0mbavc;abfcFecje;8kbavcUf9cu83ibavc8Wf9cu83ibavcyf9cu83ibavcaf9cu83ibavcKf9cu83ibavczf9cu83ibav9cu83iwav9cu83ibaialfc9WfhDaicefgqarfhidnaeTmbcmcsawceSEhkcbhxcbhmcbhPcbhwcbhlindnaiaD9nmbc9:hoxikdndnaqRbbgoc;Ve0mbavc;abfalaocu7gscl4fcsGcitfgzydlhrazydbhzdnaocsGgHak9pmbavawasfcsGcdtfydbaxaHEhoaHThsdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkaxasfhxcdhHavawcdtfaoBdbawasfhwcehsalhOxdkdndnaHcsSmbaHc987aHamffcefhoxekaicefhoai8SbbgHcFeGhsdndnaHcu9mmbaohixekaicvfhiascFbGhscrhHdninao8SbbgOcFbGaHtasVhsaOcu9kmeaocefhoaHcrfgHc8J9hmbxdkkaocefhikasce4cbasceG9R7amfhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhHavawcdtfaoBdbcehsawcefhwalhOaohmxekdnaocpe0mbaxcefgHavawaDaocsGfRbbgocl49RcsGcdtfydbaocz6gzEhravawao9RcsGcdtfydbaHazfgAaocsGgHEhoaHThCdndnadcd9hmbabaPcetfgHax87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHaxBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfaxBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgOaxBdlaOarBdbavawazfgwcsGcdtfaoBdbalcefcsGhOawaCfhwaxhzaAaCfhxxekaxcbaiRbbgOEgzaoc;:eSgHfhraOcsGhCaOcl4hAdndnaOcs0mbarcefhoxekarhoavawaA9RcsGcdtfydbhrkdndnaCmbaocefhxxekaohxavawaO9RcsGcdtfydbhokdndnaHTmbaicefhHxekaicdfhHai8SbegscFeGhzdnascu9kmbaicofhXazcFbGhzcrhidninaH8SbbgscFbGaitazVhzascu9kmeaHcefhHaicrfgic8J9hmbkaXhHxekaHcefhHkazce4cbazceG9R7amfgmhzkdndnaAcsSmbaHhsxekaHcefhsaH8SbbgicFeGhrdnaicu9kmbaHcvfhXarcFbGhrcrhidninas8SbbgHcFbGaitarVhraHcu9kmeascefhsaicrfgic8J9hmbkaXhsxekascefhskarce4cbarceG9R7amfgmhrkdndnaCcsSmbashixekascefhias8SbbgocFeGhHdnaocu9kmbascvfhXaHcFbGhHcrhodninai8SbbgscFbGaotaHVhHascu9kmeaicefhiaocrfgoc8J9hmbkaXhixekaicefhikaHce4cbaHceG9R7amfgmhokdndnadcd9hmbabaPcetfgHaz87ebaHclfao87ebaHcdfar87ebxekabaPcdtfgHazBdbaHcwfaoBdbaHclfarBdbkcdhsavawcdtfazBdbavawcefgwcsGcdtfarBdbcihHavc;abfalcitfgXazBdlaXarBdbavawaOcz6aAcsSVfgwcsGcdtfaoBdbawaCTaCcsSVfhwalcefcsGhOkaqcefhqavc;abfaOcitfgOarBdlaOaoBdbavc;abfalasfcsGcitfgraoBdlarazBdbawcsGhwalaHfcsGhlaPcifgPae6mbkkcbc99aiaDSEhokavc;aef8Kjjjjbaok:flevu8Jjjjjbcz9Rhvc9:hodnaecvfal0mbcuhoaiRbbc;:eGc;qe9hmbav9cb83iwaicefhraialfc98fhwdnaeTmbdnadcdSmbcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcdtfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfglBdbaoalBdbaDcefgDae9hmbxdkkcbhDindnaraw6mbc9:skarcefhoar8SbbglcFeGhidndnalcu9mmbaohrxekarcvfhraicFbGhicrhldninao8SbbgdcFbGaltaiVhiadcu9kmeaocefhoalcrfglc8J9hmbxdkkaocefhrkabaDcetfaic8Etc8F91aicd47avcwfaiceGcdtVgoydbfgl87ebaoalBdbaDcefgDae9hmbkkcbc99arawSEhokaok:wPliuo97eue978Jjjjjbca9Rhiaec98Ghldndnadcl9hmbdnalTmbcbhvabhdinadadpbbbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDpxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpkbbadczfhdavclfgval6mbkkalaeSmeaipxbbbbbbbbbbbbbbbbgqpklbaiabalcdtfgdaeciGglcdtgv;8qbbdnalTmbaiaipblbgocKp:RecKp:Sep;6egraocwp:RecKp:Sep;6earp;Geaoczp:RecKp:Sep;6egwp;Gep;Kep;LegDaqp:2egqarpxbbbjbbbjbbbjbbbjgkp9op9rp;Kegrpxbb;:9cbb;:9cbb;:9cbb;:9cararp;MeaDaDp;Meawaqawakp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFbbbFbbbFbbbFbbbp9oaopxbbbFbbbFbbbFbbbFp9op9qarawp;Meaqp;Kecwp:RepxbFbbbFbbbFbbbFbbp9op9qaDawp;Meaqp;Keczp:RepxbbFbbbFbbbFbbbFbp9op9qpklbkadaiav;8qbbskdnalTmbcbhvabhdinadczfgxaxpbbbgopxbbbbbbFFbbbbbbFFgkp9oadpbbbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpkbbadaDakp9oaoarpmbezHdiOAlvCXorQLp9qpkbbadcafhdavclfgval6mbkkalaeSmbaiaeciGgvcitgdfcbcaad9R;8kbaiabalcitfglad;8qbbdnavTmbaiaipblzgopxbbbbbbFFbbbbbbFFgkp9oaipblbgDaopmbediwDqkzHOAKY8AEgwczp:Reczp:Sep;6egraDaopmlvorxmPsCXQL358E8FpxFubbFubbFubbFubbp9op;6eawczp:Sep;6egwp;Gearp;Gep;Kep;Legopxbbbbbbbbbbbbbbbbp:2egqarpxbbbjbbbjbbbjbbbjgmp9op9rp;Kegrpxb;:FSb;:FSb;:FSb;:FSararp;Meaoaop;Meawaqawamp9op9rp;Kegrarp;Mep;Kep;Kep;Jep;Negwp;Mepxbbn0bbn0bbn0bbn0gqp;KepxFFbbFFbbFFbbFFbbp9oaoawp;Meaqp;Keczp:Rep9qgoarawp;Meaqp;KepxFFbbFFbbFFbbFFbbp9ogrpmwDKYqk8AExm35Ps8E8Fp9qpklzaiaDakp9oaoarpmbezHdiOAlvCXorQLp9qpklbkalaiad;8qbbkk;4wllue97euv978Jjjjjbc8W9Rhidnaec98GglTmbcbhvabhoinaiaopbbbgraoczfgwpbbbgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklbaopxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblbpEb:T:j83ibaocwfarp5eaipblbpEe:T:j83ibawaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblbpEd:T:j83ibaocKfakp5eaipblbpEi:T:j83ibaocafhoavclfgval6mbkkdnalaeSmbaiaeciGgvcitgofcbcaao9R;8kbaiabalcitfgwao;8qbbdnavTmbaiaipblbgraipblzgDpmlvorxmPsCXQL358E8Fgqczp:Segkclp:RepklaaipxbbjZbbjZbbjZbbjZpx;Zl81Z;Zl81Z;Zl81Z;Zl81Zakpxibbbibbbibbbibbbp9qp;6ep;NegkaraDpmbediwDqkzHOAKY8AEgrczp:Reczp:Sep;6ep;MegDaDp;Meakarczp:Sep;6ep;Megxaxp;Meakaqczp:Reczp:Sep;6ep;Megqaqp;Mep;Kep;Kep;Lepxbbbbbbbbbbbbbbbbp:4ep;Jepxb;:FSb;:FSb;:FSb;:FSgkp;Mepxbbn0bbn0bbn0bbn0grp;KepxFFbbFFbbFFbbFFbbgmp9oaxakp;Mearp;Keczp:Rep9qgxaDakp;Mearp;Keamp9oaqakp;Mearp;Keczp:Rep9qgkpmbezHdiOAlvCXorQLgrp5baipblapEb:T:j83ibaiarp5eaipblapEe:T:j83iwaiaxakpmwDKYqk8AExm35Ps8E8Fgkp5baipblapEd:T:j83izaiakp5eaipblapEi:T:j83iKkawaiao;8qbbkk:Pddiue978Jjjjjbc;ab9Rhidnadcd4ae2glc98GgvTmbcbheabhdinadadpbbbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepkbbadczfhdaeclfgeav6mbkkdnavalSmbaialciGgecdtgdVcbc;abad9R;8kbaiabavcdtfgvad;8qbbdnaeTmbaiaipblbgocwp:Recwp:Sep;6eaocep:SepxbbjFbbjFbbjFbbjFp9opxbbjZbbjZbbjZbbjZp:Uep;Mepklbkavaiad;8qbbkk9teiucbcbydj1jjbgeabcifc98GfgbBdj1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaikkkebcjwklz:Dbb",n=new Uint8Array([0,97,115,109,1,0,0,0,1,4,1,96,0,0,3,3,2,0,0,5,3,1,0,1,12,1,0,10,22,2,12,0,65,0,65,0,65,0,252,10,0,0,11,7,0,65,0,253,15,26,11]),i=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var o=WebAssembly.validate(n)?a(t):a(e),r,s=WebAssembly.instantiate(o,{}).then(function(T){r=T.instance,r.exports.__wasm_call_ctors()});function a(T){for(var A=new Uint8Array(T.length),C=0;C<T.length;++C){var S=T.charCodeAt(C);A[C]=S>96?S-97:S>64?S-39:S+4}for(var v=0,C=0;C<T.length;++C)A[v++]=A[C]<60?i[A[C]]:(A[C]-60)*64+A[++C];return A.buffer.slice(0,v)}function c(T,A,C,S,v,D,O){var R=T.exports.sbrk,M=S+3&-4,L=R(M*v),_=R(D.length),E=new Uint8Array(T.exports.memory.buffer);E.set(D,_);var w=A(L,S,v,_,D.length);if(w==0&&O&&O(L,M,v),C.set(E.subarray(L,L+S*v)),R(L-R(0)),w!=0)throw new Error("Malformed buffer data: "+w)}var u={NONE:"",OCTAHEDRAL:"meshopt_decodeFilterOct",QUATERNION:"meshopt_decodeFilterQuat",EXPONENTIAL:"meshopt_decodeFilterExp"},f={ATTRIBUTES:"meshopt_decodeVertexBuffer",TRIANGLES:"meshopt_decodeIndexBuffer",INDICES:"meshopt_decodeIndexSequence"},d=[],p=0;function g(T){var A={object:new Worker(T),pending:0,requests:{}};return A.object.onmessage=function(C){var S=C.data;A.pending-=S.count,A.requests[S.id][S.action](S.value),delete A.requests[S.id]},A}function m(T){for(var A="self.ready = WebAssembly.instantiate(new Uint8Array(["+new Uint8Array(o)+"]), {}).then(function(result) { result.instance.exports.__wasm_call_ctors(); return result.instance; });self.onmessage = "+b.name+";"+c.toString()+b.toString(),C=new Blob([A],{type:"text/javascript"}),S=URL.createObjectURL(C),v=d.length;v<T;++v)d[v]=g(S);for(var v=T;v<d.length;++v)d[v].object.postMessage({});d.length=T,URL.revokeObjectURL(S)}function x(T,A,C,S,v){for(var D=d[0],O=1;O<d.length;++O)d[O].pending<D.pending&&(D=d[O]);return new Promise(function(R,M){var L=new Uint8Array(C),_=++p;D.pending+=T,D.requests[_]={resolve:R,reject:M},D.object.postMessage({id:_,count:T,size:A,source:L,mode:S,filter:v},[L.buffer])})}function b(T){var A=T.data;if(!A.id)return self.close();self.ready.then(function(C){try{var S=new Uint8Array(A.count*A.size);c(C,C.exports[A.mode],S,A.count,A.size,A.source,C.exports[A.filter]),self.postMessage({id:A.id,count:A.count,action:"resolve",value:S},[S.buffer])}catch(v){self.postMessage({id:A.id,count:A.count,action:"reject",value:v})}})}return{ready:s,supported:!0,useWorkers:function(T){m(T)},decodeVertexBuffer:function(T,A,C,S,v){c(r,r.exports.meshopt_decodeVertexBuffer,T,A,C,S,r.exports[u[v]])},decodeIndexBuffer:function(T,A,C,S){c(r,r.exports.meshopt_decodeIndexBuffer,T,A,C,S)},decodeIndexSequence:function(T,A,C,S){c(r,r.exports.meshopt_decodeIndexSequence,T,A,C,S)},decodeGltfBuffer:function(T,A,C,S,v,D){c(r,r.exports[f[v]],T,A,C,S,r.exports[u[D]])},decodeGltfBufferAsync:function(T,A,C,S,v){return d.length>0?x(T,A,C,f[S],u[v]):s.then(function(){var D=new Uint8Array(T*A);return c(r,r.exports[f[S]],D,T,A,C,r.exports[u[v]]),D})}}}();var MQt=function(){var e="b9H79Tebbbe9Hk9Geueu9Geub9Gbb9Gsuuuuuuuuuuuu99uueu9Gvuuuuub9Gvuuuuue999Gquuuuuuu99uueu9Gwuuuuuu99ueu9Giuuue999Gluuuueu9GiuuueuizsdilvoirwDbqqbeqlve9Weiiviebeoweuecj:Pdkr:Tewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bbz9TW79O9V9Wt9F79P9T9W29P9M95bl8E9TW79O9V9Wt9F79P9T9W29P9M959x9Pt9OcttV9P9I91tW7bvQ9TW79O9V9Wt9F79P9T9W29P9M959q9V9P9Ut7boX9TW79O9V9Wt9F79P9T9W29P9M959t9J9H2Wbra9TW79O9V9Wt9F9V9Wt9P9T9P96W9wWVtW94SWt9J9O9sW9T9H9Wbwl79IV9RbDDwebcekdmxq;UMesdbk:kfvKue99euY99Qu8Jjjjjbc;W;qb9Rgs8Kjjjjbcbhzascxfcbc;Kbz:ljjjb8AdnabaeSmbabaeadcdtz:kjjjb8AkdnamcdGTmbalcrfci4gHcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhAcbhlcbhednadTmbcbhlabheadhHinaAaeydbgOci4fgCaCRbbgCceaOcrGgOtV86bbaCcu7aO4ceGalfhlaeclfheaHcufgHmbkcualcdtalcFFFFi0Ehekaecbyd;S1jjbHjjjjbbhzascxfasyd2gecdtfazBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhXcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhQdnadTmbaecufhCcbhLinabaXcdtfgKydbgAc:v;t;h;Ev2hOcbhedndninaQaOaCGgOcdtfgYydbgHcuSmeazaHcdtfydbaASmdaecefgeaOfhOaeaC9nmbxdkkazaLcdtfaABdbaYaLBdbaLhHaLcefhLkaKaHBdbaXcefgXad9hmbkkaQcbyd;O1jjbH:bjjjbbasasyd2cufBd2kcualcefgecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbh8Aascxfasyd2gecdtfa8ABdbasa8ABdlasaecefBd2cuadcitadcFFFFe0Ecbyd;S1jjbHjjjjbbhEascxfasyd2gecdtfaEBdbasaEBdwasaecefBd2asclfabadalcbz:cjjjbcualcdtg3alcFFFFi0Eg5cbyd;S1jjbHjjjjbbhQascxfasyd2gecdtfaQBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Eascxfasyd2gecdtfa8EBdbasaecefBd2alcd4alfhOcehHinaHgecethHaeaO6mbkcbhLcuaecdtgOaecFFFFi0Ecbyd;S1jjbHjjjjbbhHascxfasyd2gCcdtfaHBdbasaCcefBd2aHcFeaOz:ljjjbhXdnalTmbavcd4hCaecufhHinaLhednazTmbazaLcdtfydbhekaiaeaC2cdtfgeydlgOcH4aO7c:F:b:DD2aeydbgOcH4aO7c;D;O:B8J27aeydwgecH4ae7c:3F;N8N27aHGheaLcdth8FdndndndndnazTmbaza8FfhKcbhOinaXaecdtfgYydbgAcuSmlaiazaAcdtfydbaC2cdtfaiaKydbaC2cdtfcxz:ojjjbTmiaOcefgOaefaHGheaOaH9nmbxdkkaiaLaC2cdtfhKcbhOinaXaecdtfgYydbgAcuSmiaiaAaC2cdtfaKcxz:ojjjbTmdaOcefgOaefaHGheaOaH9nmbkkcbhYkaYydbgecu9hmekaYaLBdbaLhekaQa8FfaeBdbaLcefgLal9hmbkcbhea8EhHinaHaeBdbaHclfhHalaecefge9hmbkcbheaQhHa8EhOindnaeaHydbgCSmbaOa8EaCcdtfgCydbBdbaCaeBdbkaHclfhHaOclfhOalaecefge9hmbkkcbhaaXcbyd;O1jjbH:bjjjbbasasyd2cufBd2alcbyd;S1jjbHjjjjbbhXascxfasyd2gecdtfaXBdbasaecefBd2a5cbyd;S1jjbHjjjjbbheascxfasyd2gHcdtfaeBdbasaHcefBd2a5cbyd;S1jjbHjjjjbbhHascxfasyd2gOcdtfaHBdbasaOcefBd2aecFea3z:ljjjbhhaHcFea3z:ljjjbhgdnalTmbaEcwfh8Jindna8AaagOcefgacdtfydbgCa8AaOcdtgefydbgHSmbaCaH9Rh8FaEaHcitfh3agaefh8KahaefhLcbhAindndna3aAcitfydbgYaO9hmbaLaOBdba8KaOBdbxekdna8AaYcdtg8LfgeclfydbgHaeydbgeSmbaEaecitgCfydbaOSmeaHae9Rh8Maecu7aHfhKa8JaCfhHcbheinaKaeSmeaecefheaHydbhCaHcwfhHaCaO9hmbkaea8M6mekaga8LfgeaOaYaeydbcuSEBdbaLaYaOaLydbcuSEBdbkaAcefgAa8F9hmbkkaaal9hmbkaQhHa8EhOaghCahhAcbheindndnaeaHydbgY9hmbdnaeaOydbgY9hmbaAydbhYdnaCydbgKcu9hmbaYcu9hmbaXaefcb86bbxikaXaefhLdnaeaKSmbaeaYSmbaLce86bbxikaLcl86bbxdkdnaea8EaYcdtgKfydb9hmbdnaCydbgLcuSmbaeaLSmbaAydbg8FcuSmbaea8FSmbagaKfydbg3cuSmba3aYSmbahaKfydbgKcuSmbaKaYSmbdnaQaLcdtfydbgYaQaKcdtfydb9hmbaYaQa8FcdtfydbgKSmbaKaQa3cdtfydb9hmbaXaefcd86bbxlkaXaefcl86bbxikaXaefcl86bbxdkaXaefcl86bbxekaXaefaXaYfRbb86bbkaHclfhHaOclfhOaCclfhCaAclfhAalaecefge9hmbkdnaqTmbdndnazTmbazheaQhHalhOindnaqaeydbfRbbTmbaXaHydbfcl86bbkaeclfheaHclfhHaOcufgOmbxdkkaQhealhHindnaqRbbTmbaXaeydbfcl86bbkaqcefhqaeclfheaHcufgHmbkkaQhealhOaXhHindnaXaeydbfRbbcl9hmbaHcl86bbkaeclfheaHcefhHaOcufgOmbkkamceGTmbaXhealhHindnaeRbbce9hmbaecl86bbkaecefheaHcufgHmbkkcualcx2alc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhaascxfasyd2gecdtfaaBdbasaecefBd2aaaialavazz:djjjbh8NdndnaDmbcbhycbh8Jxekcbh8JawhecbhHindnaeIdbJbbbb9ETmbasc;Wbfa8JcdtfaHBdba8Jcefh8JkaeclfheaDaHcefgH9hmbkcua8Jal2gecdtaecFFFFi0Ecbyd;S1jjbHjjjjbbhyascxfasyd2gecdtfayBdbasaecefBd2alTmba8JTmbarcd4hLdnazTmba8JcdthicbhYayhKinaoazaYcdtfydbaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbxdkka8JcdthicbhYayhKinaoaYaL2cdtfhAasc;WbfheaKhHa8JhOinaHaAaeydbcdtgCfIdbawaCfIdbNUdbaeclfheaHclfhHaOcufgOmbkaKaifhKaYcefgYal9hmbkkcualc8S2gHalc;D;O;f8U0EgCcbyd;S1jjbHjjjjbbheascxfasyd2gOcdtfaeBdbasaOcefBd2aecbaHz:ljjjbhqdndndndna8JTmbaCcbyd;S1jjbHjjjjbbhvascxfasyd2gecdtfavBdbcehOasaecefBd2avcbaHz:ljjjb8Acua8Jal2gecltgHaecFFFFb0Ecbyd;S1jjbHjjjjbbhrascxfasyd2gecdtfarBdbasaecefBd2arcbaHz:ljjjb8AadmexikcbhvadTmecbhrkcbhAabhHindnaaaHclfydbgYcx2fgeIdbaaaHydbgKcx2fgOIdbg8P:tgIaaaHcwfydbgLcx2fgCIdlaOIdlg8R:tg8SNaCIdba8P:tgRaeIdla8R:tg8UN:tg8Va8VNa8UaCIdwaOIdwg8W:tg8XNa8SaeIdwa8W:tg8UN:tg8Sa8SNa8UaRNa8XaIN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaKcdtfydbc8S2fgea8SaR:rgRa8SNNg8UaeIdbMUdbaeaIaRaINg8YNg8XaeIdlMUdlaea8VaRa8VNg8ZNg80aeIdwMUdwaea8Ya8SNg8YaeIdxMUdxaea8Za8SNg81aeIdzMUdzaea8ZaINg8ZaeIdCMUdCaea8SaRa8Va8WNa8Sa8PNa8RaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaYcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaLcdtfydbc8S2fgea8UaeIdbMUdbaea8XaeIdlMUdlaea80aeIdwMUdwaea8YaeIdxMUdxaea81aeIdzMUdzaea8ZaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdyaHcxfhHaAcifgAad6mbkcbhiabhKinabaicdtfhYcbhHinaXaYaHc:G1jjbfydbcdtfydbgOfRbbhedndnaXaKaHfydbgCfRbbgAc99fcFeGcpe0mbaeceSmbaecd9hmekdnaAcufcFeGce0mbahaCcdtfydbaO9hmekdnaecufcFeGce0mbagaOcdtfydbaC9hmekdnaAcv2aefcj1jjbfRbbTmbaQaOcdtfydbaQaCcdtfydb0mekJbbacJbbacJbbjZaeceSEaAceSEh8ZdnaaaYaHc:K1jjbfydbcdtfydbcx2fgeIdwaaaCcx2fgAIdwg8R:tg8VaaaOcx2fgLIdwa8R:tg8Sa8SNaLIdbaAIdbg8W:tgIaINaLIdlaAIdlg8U:tgRaRNMMg8PNa8Va8SNaeIdba8W:tg80aINaRaeIdla8U:tg8YNMMg8Xa8SN:tg8Va8VNa80a8PNa8XaIN:tg8Sa8SNa8Ya8PNa8XaRN:tgIaINMM:rgRJbbbb9ETmba8VaR:vh8VaIaR:vhIa8SaR:vh8SkaqaQaCcdtfydbc8S2fgea8Sa8Za8P:rNgRa8SNNg8XaeIdbMUdbaeaIaRaINg8ZNg80aeIdlMUdlaea8VaRa8VNg8PNg8YaeIdwMUdwaea8Za8SNg8ZaeIdxMUdxaea8Pa8SNg81aeIdzMUdzaea8PaINgBaeIdCMUdCaea8SaRa8Va8RNa8Sa8WNa8UaINMM:mg8RNg8PNg8SaeIdKMUdKaeaIa8PNgIaeId3MUd3aea8Va8PNg8VaeIdaMUdaaea8Pa8RNg8PaeId8KMUd8KaeaRaeIdyMUdyaqaQaOcdtfydbc8S2fgea8XaeIdbMUdbaea80aeIdlMUdlaea8YaeIdwMUdwaea8ZaeIdxMUdxaea81aeIdzMUdzaeaBaeIdCMUdCaea8SaeIdKMUdKaeaIaeId3MUd3aea8VaeIdaMUdaaea8PaeId8KMUd8KaeaRaeIdyMUdykaHclfgHcx9hmbkaKcxfhKaicifgiad6mbkdna8JTmbcbhKinJbbbbh8WaaabaKcdtfgeclfydbgLcx2fgHIdwaaaeydbgicx2fgOIdwg8Y:tgIaINaHIdbaOIdbg81:tg8Va8VNaHIdlaOIdlgB:tgRaRNMMg8Zaaaecwfydbg8Fcx2fgeIdwa8Y:tg8PNaIaIa8PNa8VaeIdba81:tg8RNaRaeIdlaB:tg8UNMMg8SN:tJbbbbJbbjZa8Za8Pa8PNa8Ra8RNa8Ua8UNMMg80Na8Sa8SN:tg8X:va8XJbbbb9BEg8XNh83a80aINa8Pa8SN:ta8XNhUa8Za8UNaRa8SN:ta8XNh85a80aRNa8Ua8SN:ta8XNh86a8Za8RNa8Va8SN:ta8XNh87a80a8VNa8Ra8SN:ta8XNh88a8Va8UNa8RaRN:tg8Sa8SNaRa8PNa8UaIN:tg8Sa8SNaIa8RNa8Pa8VN:tg8Sa8SNMM:rJbbbZNh8Sayaia8J2g3cdtfhHaya8Fa8J2gwcdtfhOayaLa8J2g8LcdtfhCa8Y:mh89aB:mh8:a81:mhZcbhAa8JhYJbbbbh8UJbbbbh8XJbbbbh8ZJbbbbh80Jbbbbh8YJbbbbh81JbbbbhBJbbbbhnJbbbbhcinasc;WbfaAfgecwfa8SaUaCIdbaHIdbg8P:tgRNa83aOIdba8P:tg8RNMgINUdbaeclfa8Sa86aRNa85a8RNMg8VNUdbaea8Sa88aRNa87a8RNMgRNUdbaecxfa8Sa89aINa8:a8VNa8PaZaRNMMMg8PNUdba8SaIa8VNNa80Mh80a8SaIaRNNa8YMh8Ya8Sa8VaRNNa81Mh81a8Sa8Pa8PNNa8WMh8Wa8SaIa8PNNa8UMh8Ua8Sa8Va8PNNa8XMh8Xa8SaRa8PNNa8ZMh8Za8SaIaINNaBMhBa8Sa8Va8VNNanMhna8SaRaRNNacMhcaHclfhHaCclfhCaOclfhOaAczfhAaYcufgYmbkavaic8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyavaLc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyava8Fc8S2fgeacaeIdbMUdbaeanaeIdlMUdlaeaBaeIdwMUdwaea81aeIdxMUdxaea8YaeIdzMUdzaea80aeIdCMUdCaea8ZaeIdKMUdKaea8XaeId3MUd3aea8UaeIdaMUdaaea8WaeId8KMUd8Kaea8SaeIdyMUdyara3cltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkara8LcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkarawcltfhYcbhHa8JhCinaYaHfgeasc;WbfaHfgOIdbaeIdbMUdbaeclfgAaOclfIdbaAIdbMUdbaecwfgAaOcwfIdbaAIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaCcufgCmbkaKcifgKad6mbkkcbhOxekcehOcbhrkcbh8FdndnamcwGg9cmbJbbbbh8ZcbhJcbhocbhCxekcbhea5cbyd;S1jjbHjjjjbbhCascxfasyd2gHcdtfaCBdbasaHcefBd2dnalTmbaChHinaHaeBdbaHclfhHalaecefge9hmbkkdnaOmbcbhiinabaicdtfhLcbhKinaQaLaKcdtgec:G1jjbfydbcdtfydbcdtfydbhHdnaCaQaLaefydbcdtfydbgOcdtfgAydbgeaOSmbinaAaCaegOcdtfgYydbgeBdbaYhAaOae9hmbkkdnaCaHcdtfgAydbgeaHSmbinaAaCaegHcdtfgYydbgeBdbaYhAaHae9hmbkkdnaOaHSmbaCaOaHaOaH0EcdtfaOaHaOaH6EBdbkaKcefgKci9hmbkaicifgiad6mbkkcbhJdnalTmbcbhYindnaQaYcdtgefydbaY9hmbaYhHdnaCaefgKydbgeaYSmbaKhOinaOaCaegHcdtfgAydbgeBdbaAhOaHae9hmbkkaKaHBdbkaYcefgYal9hmbkcbheaQhOaChHcbhJindndnaeaOydbgA9hmbdnaeaHydbgA9hmbaHaJBdbaJcefhJxdkaHaCaAcdtfydbBdbxekaHaCaAcdtfydbBdbkaOclfhOaHclfhHalaecefge9hmbkkcuaJcltgeaJcjjjjiGEcbyd;S1jjbHjjjjbbhoascxfasyd2gHcdtfaoBdbasaHcefBd2aocbaez:ljjjbhAdnalTmbaChOaahealhYinaecwfIdbh8SaeclfIdbhIaAaOydbcltfgHaeIdbaHIdbMUdbaHclfgKaIaKIdbMUdbaHcwfgKa8SaKIdbMUdbaHcxfgHaHIdbJbbjZMUdbaOclfhOaecxfheaYcufgYmbkkdnaJTmbaAheaJhHinaecxfgOIdbh8SaOcbBdbaeaeIdbJbbbbJbbjZa8S:va8SJbbbb9BEg8SNUdbaeclfgOa8SaOIdbNUdbaecwfgOa8SaOIdbNUdbaeczfheaHcufgHmbkkdnalTmbaChOaahealhYinaAaOydbcltfgHcxfgKaecwfIdbaHcwfIdb:tg8Sa8SNaeIdbaHIdb:tg8Sa8SNaeclfIdbaHclfIdb:tg8Sa8SNMMg8SaKIdbgIaIa8S9DEUdbaOclfhOaecxfheaYcufgYmbkkdnaJmbcbhJJFFuuh8ZxekaAcxfheaAhHaJhOinaHaeIdbUdbaeczfheaHclfhHaOcufgOmbkJFFuuh8ZaAheaJhHinaeIdbg8Sa8Za8Za8S9EEh8ZaeclfheaHcufgHmbkkasydlh9ednalTmba9eclfhea9eydbhAaXhHalhYcbhOincbaeydbgKaA9RaHRbbcpeGEaOfhOaHcefhHaeclfheaKhAaYcufgYmbkaOce4h8Fkcuada8F9RcifgTcx2aTc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbhDascxfasyd2gecdtfaDBdbasaecefBd2cuaTcdtaTcFFFFi0Ecbyd;S1jjbHjjjjbbhSascxfasyd2gecdtfaSBdbasaecefBd2a5cbyd;S1jjbHjjjjbbh8Mascxfasyd2gecdtfa8MBdbasaecefBd2alcbyd;S1jjbHjjjjbbh9hascxfasyd2gecdtfa9hBdbasaecefBd2axaxNa8NJbbjZamclGEg83a83N:vhcJbbbbhndnadak9nmbdnaTci6mba8Jclth9iaDcwfh6JbbbbhBJbbbbhninasclfabadalaQz:cjjjbabh8FcbhEcbh5inaba5cdtfh3cbheindnaQa8FaefydbgOcdtgifydbgYaQa3aec:W1jjbfydbcdtfydbgHcdtgwfydbgKSmbaXaHfRbbgLcv2aXaOfRbbgAfc;a1jjbfRbbg8AaAcv2aLfg8Lc;a1jjbfRbbg8KVcFeGTmbdnaKaY9nmba8Lcj1jjbfRbbcFeGmekaAcufhYdnaAaL9hmbaYcFeGce0mbahaifydbaH9hmekdndnaAclSmbaLcl9hmekdnaYcFeGce0mbahaifydbaH9hmdkaLcufcFeGce0mbagawfydbaO9hmekaDaEcx2fgAaHaOa8KcFeGgYEBdlaAaOaHaYEBdbaAaYa8AGcb9hBdwaEcefhEkaeclfgecx9hmbkdna5cifg5ad9pmba8Fcxfh8FaEcifaT9nmekkaETmdcbhiinJbbbbJbbjZaqaQaDaicx2fgAydlgKaAydbgYaAydwgHEgLcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaYaKaHEg8Fcx2fgHIdwgRNaeIdzaHIdbg8PNaeIdaMg8Sa8SMMaRNaeIdlaHIdlg8RNaeIdCaRNaeId3Mg8Sa8SMMa8RNaeIdba8PNaeIdxa8RNaeIdKMg8Sa8SMMa8PNaeId8KMMM:lNh80JbbbbJbbjZaqaQaYcdtfydbc8S2fgeIdyg8S:va8SJbbbb9BEaeIdwaaaKcx2fgHIdwg8VNaeIdzaHIdbg8WNaeIdaMg8Sa8SMMa8VNaeIdlaHIdlg8UNaeIdCa8VNaeId3Mg8Sa8SMMa8UNaeIdba8WNaeIdxa8UNaeIdKMg8Sa8SMMa8WNaeId8KMMM:lNh8YaAcwfh3aAclfhwdna8JTmbavaYc8S2fgOIdwa8VNaOIdza8WNaOIdaMg8Sa8SMMa8VNaOIdla8UNaOIdCa8VNaOId3Mg8Sa8SMMa8UNaOIdba8WNaOIdxa8UNaOIdKMg8Sa8SMMa8WNaOId8KMMMh8SayaKa8J2cdtfhHaraYa8J2cltfheaOIdyh8Xa8JhOinaHIdbgIaIa8XNaecxfIdba8VaecwfIdbNa8WaeIdbNa8UaeclfIdbNMMMgIaIM:tNa8SMh8SaHclfhHaeczfheaOcufgOmbkavaLc8S2fgOIdwaRNaOIdza8PNaOIdaMgIaIMMaRNaOIdla8RNaOIdCaRNaOId3MgIaIMMa8RNaOIdba8PNaOIdxa8RNaOIdKMgIaIMMa8PNaOId8KMMMhIaya8Fa8J2cdtfhHaraLa8J2cltfheaOIdyh8Wa8JhOinaHIdbg8Va8Va8WNaecxfIdbaRaecwfIdbNa8PaeIdbNa8RaeclfIdbNMMMg8Va8VM:tNaIMhIaHclfhHaeczfheaOcufgOmbka80aI:lMh80a8Ya8S:lMh8YkawaKa8Fa8Ya809FgeEBdbaAaYaLaeEBdba3a8Ya80aeEUdbaicefgiaE9hmbkasc;Wbfcbcj;qbz:ljjjb8Aa6heaEhHinasc;WbfaeydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbcefBdbaecxfheaHcufgHmbkcbhecbhHinasc;WbfaefgOydbhAaOaHBdbaAaHfhHaeclfgecj;qb9hmbkcbhea6hHinasc;WbfaHydbcA4cF8FGgOcFAaOcFA6EcdtfgOaOydbgOcefBdbaSaOcdtfaeBdbaHcxfhHaEaecefge9hmbkadak9RgOci9Uh9kdnalTmbcbhea8MhHinaHaeBdbaHclfhHalaecefge9hmbkkcbh0a9hcbalz:ljjjbh9maOcO9Uh9na9kce4h9oasydwh9pcbh8KcbhwdninaDaSawcdtfydbcx2fg3Idwg8Sac9Emea8Ka9k9pmeJFFuuhIdna9oaE9pmbaDaSa9ocdtfydbcx2fIdwJbb;aZNhIkdna8SaI9ETmba8San9ETmba8Ka9n0mdkdna9maQa3ydlgicdtg9qfydbgAfg9rRbba9maQa3ydbgLcdtg9sfydbgHfg9tRbbVmbaXaLfRbbh9udna9eaHcdtfgeclfydbgOaeydbgeSmbaOae9RhKa9paecitfheaaaAcx2fg8Lcwfh5a8Lclfh9vaaaHcx2fg8Acwfh9wa8Aclfh9xcbhHceh8Fdnindna8MaeydbcdtfydbgOaASmba8MaeclfydbcdtfydbgYaASmbaOaYSmbaaaYcx2fgYIdbaaaOcx2fgOIdbg8V:tg8Sa9xIdbaOIdlgR:tg8WNa8AIdba8V:tg8UaYIdlaR:tgIN:tg8Pa8Sa9vIdbaR:tg8XNa8LIdba8V:tg80aIN:tgRNaIa9wIdbaOIdwg8R:tg8YNa8WaYIdwa8R:tg8VN:tg8WaIa5Idba8R:tg81Na8Xa8VN:tgINa8Va8UNa8Ya8SN:tg8Ra8Va80Na81a8SN:tg8SNMMa8Pa8PNa8Wa8WNa8Ra8RNMMaRaRNaIaINa8Sa8SNMMN:rJbbj8:N9FmdkaecwfheaHcefgHaK6h8FaKaH9hmbkka8FceGTmba9ocefh9oxeka3cwfhHdndndndna9uc9:fPdebdkaLheina8MaecdtgefaiBdba8EaefydbgeaL9hmbxikkdnagahaha9sfydbaiSEa8Ea9sfydbgLcdtfydbgecu9hmba8Ea9qfydbheka8Ma9sfaiBdbaehika8MaLcdtfaiBdbka9tce86bba9rce86bbaHIdbg8Sanana8S9DEhna0cefh0cecda9uceSEa8Kfh8KkawcefgwaE9hmbkka0TmddnalTmbcbhKcbhiindna8MaicdtgefydbgOaiSmbaQaOcdtfydbh8FdnaiaQaefydb9hg3mbaqa8Fc8S2fgeaqaic8S2fgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdyka8JTmbavaOc8S2fgeavaic8S2gwfgHIdbaeIdbMUdbaeaHIdlaeIdlMUdlaeaHIdwaeIdwMUdwaeaHIdxaeIdxMUdxaeaHIdzaeIdzMUdzaeaHIdCaeIdCMUdCaeaHIdKaeIdKMUdKaeaHId3aeId3MUd3aeaHIdaaeIdaMUdaaeaHId8KaeId8KMUd8KaeaHIdyaeIdyMUdya9iaO2hLarhHa8JhAinaHaLfgeaHaKfgOIdbaeIdbMUdbaeclfgYaOclfIdbaYIdbMUdbaecwfgYaOcwfIdbaYIdbMUdbaecxfgeaOcxfIdbaeIdbMUdbaHczfhHaAcufgAmbka3mbJbbbbJbbjZaqawfgeIdyg8S:va8SJbbbb9BEaeIdwaaa8Fcx2fgHIdwg8SNaeIdzaHIdbgINaeIdaMg8Va8VMMa8SNaeIdlaHIdlg8VNaeIdCa8SNaeId3Mg8Sa8SMMa8VNaeIdbaINaeIdxa8VNaeIdKMg8Sa8SMMaINaeId8KMMM:lNg8SaBaBa8S9DEhBkaKa9ifhKaicefgial9hmbkcbhHahheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOahaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkcbhHagheindnaeydbgOcuSmbdnaHa8MaOcdtgAfydbgO9hmbcuhOagaAfydbgAcuSmba8MaAcdtfydbhOkaeaOBdbkaeclfhealaHcefgH9hmbkkaBana8JEhBcbhYabhecbhKindna8MaeydbcdtfydbgHa8MaeclfydbcdtfydbgOSmbaHa8MaecwfydbcdtfydbgASmbaOaASmbabaYcdtfgLaHBdbaLcwfaABdbaLclfaOBdbaYcifhYkaecxfheaKcifgKad6mbkdndna9cTmbaYak9nmba8ZaB9FTmbcbhdabhecbhHindnaoaCaeydbgOcdtfydbcdtfIdbaB9ETmbabadcdtfgAaOBdbaAclfaeclfydbBdbaAcwfaecwfydbBdbadcifhdkaecxfheaHcifgHaY6mbkJFFuuh8ZaJTmeaoheaJhHJFFuuh8SinaeIdbgIa8Sa8SaI9EEg8Va8SaIaB9EgOEh8Sa8Va8ZaOEh8ZaeclfheaHcufgHmbxdkkaYhdkadak0mbxdkkasclfabadalaQz:cjjjbkdndnadak0mbadhOxekdna9cmbadhOxekdna8Zac9FmbadhOxekina8ZJbb;aZNg8Saca8Sac9DEh8VJbbbbh8SdnaJTmbaoheaJhHinaeIdbgIa8SaIa8V9FEa8SaIa8S9EEh8SaeclfheaHcufgHmbkkcbhOabhecbhHindnaoaCaeydbgAcdtfydbcdtfIdba8V9ETmbabaOcdtfgYaABdbaYclfaeclfydbBdbaYcwfaecwfydbBdbaOcifhOkaecxfheaHcifgHad6mbkJFFuuh8ZdnaJTmbaoheaJhHJFFuuhIinaeIdbgRaIaIaR9EEg8PaIaRa8V9EgAEhIa8Pa8ZaAEh8ZaeclfheaHcufgHmbkkdnaOad9hmbadhOxdka8Sanana8S9DEhnaOak9nmeaOhda8Zac9FmbkkdnamcjjjjlGTmbazmbaOTmbcbhQabheinaXaeydbgAfRbbc3thKaecwfgLydbhHdndnahaAcdtg8FfydbaeclfgiydbgCSmbcbhYagaCcdtfydbaA9hmekcjjjj94hYkaeaKaYVaAVBdbaXaCfRbbc3thKdndnahaCcdtfydbaHSmbcbhYagaHcdtfydbaC9hmekcjjjj94hYkaiaKaYVaCVBdbaXaHfRbbc3thYdndnahaHcdtfydbaASmbcbhCaga8FfydbaH9hmekcjjjj94hCkaLaYaCVaHVBdbaecxfheaQcifgQaO6mbkkdnazTmbaOTmbaOheinabazabydbcdtfydbBdbabclfhbaecufgembkkdnaPTmbaPa83an:rNUdbkasyd2gecdtascxffc98fhHdninaeTmeaHydbcbyd;O1jjbH:bjjjbbaHc98fhHaecufhexbkkasc;W;qbf8KjjjjbaOk;Yieouabydlhvabydbclfcbaicdtz:ljjjbhoadci9UhrdnadTmbdnalTmbaehwadhDinaoalawydbcdtfydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbxdkkaehwadhDinaoawydbcdtfgqaqydbcefBdbawclfhwaDcufgDmbkkdnaiTmbcbhDaohwinawydbhqawaDBdbawclfhwaqaDfhDaicufgimbkkdnadci6mbinaecwfydbhwaeclfydbhDaeydbhidnalTmbalawcdtfydbhwalaDcdtfydbhDalaicdtfydbhikavaoaicdtfgqydbcitfaDBdbavaqydbcitfawBdlaqaqydbcefBdbavaoaDcdtfgqydbcitfawBdbavaqydbcitfaiBdlaqaqydbcefBdbavaoawcdtfgwydbcitfaiBdbavawydbcitfaDBdlawawydbcefBdbaecxfhearcufgrmbkkabydbcbBdbk;Podvuv998Jjjjjbca9RgvcFFF;7rBd3av9cFFF;7;3FF:;Fb83dCavcFFF97Bdzav9cFFF;7FFF:;u83dwdnadTmbaicd4hodnabmbdnalTmbcbhrinaealarcdtfydbao2cdtfhwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxikkaocdthrcbhwincbhiinavcCfaifgDaeaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkaearfheawcefgwad9hmbxdkkdnalTmbcbhrinabarcx2fgiaealarcdtfydbao2cdtfgwIdbUdbaiawIdlUdlaiawIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkarcefgrad9hmbxdkkaocdthlcbhraehwinabarcx2fgiaearao2cdtfgDIdbUdbaiaDIdlUdlaiaDIdwUdwcbhiinavcCfaifgDawaifIdbgqaDIdbgkakaq9EEUdbavcwfaifgDaqaDIdbgkakaq9DEUdbaiclfgicx9hmbkawalfhwarcefgrad9hmbkkJbbbbavIdwavIdCgk:tgqaqJbbbb9DEgqavIdxavIdKgx:tgmamaq9DEgqavIdzavId3gm:tgPaPaq9DEhPdnabTmbadTmbJbbbbJbbjZaP:vaPJbbbb9BEhqinabaqabIdbak:tNUdbabclfgvaqavIdbax:tNUdbabcwfgvaqavIdbam:tNUdbabcxfhbadcufgdmbkkaPk8MbabaeadaialavcbcbcbcbcbaoarawaDz:bjjjbk8MbabaeadaialavaoarawaDaqakaxamaPz:bjjjbk:nCoDud99rue99lul998Jjjjjbc;Wb9Rgw8KjjjjbdndnarmbcbhDxekawcxfcbc;Kbz:ljjjb8Aawcuadcx2adc;v:Q;v:Qe0Ecbyd;S1jjbHjjjjbbgqBdxawceBd2aqaeadaicbz:djjjb8AawcuadcdtadcFFFFi0Egkcbyd;S1jjbHjjjjbbgxBdzawcdBd2adcd4adfhmceheinaegicetheaiam6mbkcbhPawcuaicdtgsaicFFFFi0Ecbyd;S1jjbHjjjjbbgzBdCawciBd2dndnar:ZgH:rJbbbZMgO:lJbbb9p9DTmbaO:Ohexekcjjjj94hekaicufhAc:bwhmcbhCadhXcbhQinaChLaeamgKcufaeaK9iEaPgDcefaeaD9kEhYdndnadTmbaYcuf:YhOaqhiaxheadhmindndnaiIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdbaONJbbbZMg8A:lJbbb9p9DTmba8A:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbh5cbh8Eindna3axa8EcdtfydbgCcm4aC7c:v;t;h;Ev2gics4ai7aAGgmcdtfgEydbgecuSmbaeaCSmbcehiina3amaifaAGgmcdtfgEydbgecuSmeaicefhiaeaC9hmbkkaEaCBdba5aecuSfh5a8Ecefg8Ead9hmbxdkkazcFeasz:ljjjb8Acbh5kaDaYa5ar0giEhPaLa5aiEhCdna5arSmbaYaKaiEgmaP9Rcd9imbdndnaQcl0mbdnaX:ZgOaL:Zg8A:taY:Yg8FaD:Y:tgaa8FaK:Y:tgha5:ZggaH:tNNNaOaH:tahNa8Aag:tNa8AaH:taaNagaO:tNM:va8FMJbbbZMgO:lJbbb9p9DTmbaO:Ohexdkcjjjj94hexekaPamfcd9Theka5aXaiEhXaQcefgQcs9hmekkdndnaCmbcihicbhDxekcbhiawakcbyd;S1jjbHjjjjbbg8EBdKawclBd2aPcuf:Yh8AdndnadTmbaqhiaxheadhmindndnaiIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhCxekcjjjj94hCkaCcCthCdndnaiclfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaEcqtaCVhCdndnaicwfIdba8ANJbbbZMgO:lJbbb9p9DTmbaO:OhExekcjjjj94hEkaeaCaEVBdbaicxfhiaeclfheamcufgmmbkazcFeasz:ljjjbh3cbhDcbh5inaxa5cdtgYfydbgCcm4aC7c:v;t;h;Ev2gics4ai7hecbhidndnina3aeaAGgmcdtfgEydbgecuSmednaxaecdtgEfydbaCSmbaicefgiamfheaiaA9nmekka8EaEfydbhixekaEa5BdbaDhiaDcefhDka8EaYfaiBdba5cefg5ad9hmbkcuaDc32giaDc;j:KM;jb0EhexekazcFeasz:ljjjb8AcbhDcbhekawaecbyd;S1jjbHjjjjbbgeBd3awcvBd2aecbaiz:ljjjbhEavcd4hxdnadTmbdnalTmbaxcdth3a8EhCalheaqhmadhAinaEaCydbc32fgiamIdbaiIdbMUdbaiamclfIdbaiIdlMUdlaiamcwfIdbaiIdwMUdwaiaeIdbaiIdxMUdxaiaeclfIdbaiIdzMUdzaiaecwfIdbaiIdCMUdCaiaiIdKJbbjZMUdKaCclfhCaea3fheamcxfhmaAcufgAmbxdkka8EhmaqheadhCinaEamydbc32fgiaeIdbaiIdbMUdbaiaeclfIdbaiIdlMUdlaiaecwfIdbaiIdwMUdwaiaiIdxJbbbbMUdxaiaiIdzJbbbbMUdzaiaiIdCJbbbbMUdCaiaiIdKJbbjZMUdKamclfhmaecxfheaCcufgCmbkkdnaDTmbaEhiaDheinaiaiIdbJbbbbJbbjZaicKfIdbgO:vaOJbbbb9BEgONUdbaiclfgmaOamIdbNUdbaicwfgmaOamIdbNUdbaicxfgmaOamIdbNUdbaiczfgmaOamIdbNUdbaicCfgmaOamIdbNUdbaic3fhiaecufgembkkcbhCawcuaDcdtgYaDcFFFFi0Egicbyd;S1jjbHjjjjbbgeBdaawcoBd2awaicbyd;S1jjbHjjjjbbg3Bd8KaecFeaYz:ljjjbh5dnadTmbJbbjZJbbjZa8A:vaPceSEaoNgOaONh8Aaxcdthxalheina8Aaec;C1jjbalEgmIdwaEa8EydbgAc32fgiIdC:tgOaONamIdbaiIdx:tgOaONamIdlaiIdz:tgOaONMMNaqcwfIdbaiIdw:tgOaONaqIdbaiIdb:tgOaONaqclfIdbaiIdl:tgOaONMMMhOdndna5aAcdtgifgmydbcuSmba3aifIdbaO9ETmekamaCBdba3aifaOUdbka8Eclfh8EaeaxfheaqcxfhqadaCcefgC9hmbkkaba5aYz:kjjjb8AcrhikaicdthiinaiTmeaic98fgiawcxffydbcbyd;O1jjbH:bjjjbbxbkkawc;Wbf8KjjjjbaDk:Odieui99iu8Jjjjjbca9RgicFFF;7rBd3ai9cFFF;7;3FF:;Fb83dCaicFFF97Bdzai9cFFF;7FFF:;u83dwdndnaembJbbjFhlJbbjFhvJbbjFhoxekadcd4cdthrcbhwincbhdinaicCfadfgDabadfIdbglaDIdbgvaval9EEUdbaicwfadfgDalaDIdbgvaval9DEUdbadclfgdcx9hmbkabarfhbawcefgwae9hmbkaiIdzaiId3:thoaiIdxaiIdK:thvaiIdwaiIdC:thlkJbbbbalalJbbbb9DEglavaval9DEglaoaoal9DEk9DeeuabcFeaicdtz:ljjjbhlcbhbdnadTmbindnalaeydbcdtfgiydbcu9hmbaiabBdbabcefhbkaeclfheadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcifc98GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd;W1jjbgeabcrfc94GfgbBd;W1jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd;W1jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd;W1jjbfgdBd;W1jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk6eiucbhidnadTmbdninabRbbglaeRbbgv9hmeaecefheabcefhbadcufgdmbxdkkalav9Rhikaikk:bedbcjwk9Oeeebeebebbeeebebbbbbebebbbbbbbbbebbbdbbbbbbbebbbebbbdbbbbbbbbbbbeeeeebebbebbebebbbeebbbbbbbbbbbbbbbbbbbbbc;OwkxebbbdbbbjNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var A=0,b=0;b<m.length;++b)x[A++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,A)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}function a(m,x,b){var T=n.exports.sbrk,A=T(x.length*4),C=T(b*4),S=new Uint8Array(n.exports.memory.buffer),v=s(x);S.set(v,A);var D=m(C,A,x.length,b);S=new Uint8Array(n.exports.memory.buffer);var O=new Uint32Array(b);new Uint8Array(O.buffer).set(S.subarray(C,C+b*4)),v.set(S.subarray(A,A+x.length*4)),T(A-T(0));for(var R=0;R<x.length;++R)x[R]=O[x[R]];return[O,D]}function c(m){for(var x=0,b=0;b<m.length;++b){var T=m[b];x=x<T?T:x}return x}function u(m,x,b,T,A,C,S,v,D){var O=n.exports.sbrk,R=O(4),M=O(b*4),L=O(A*C),_=O(b*4),E=new Uint8Array(n.exports.memory.buffer);E.set(s(T),L),E.set(s(x),_);var w=m(M,_,b,L,A,C,S,v,D,R);E=new Uint8Array(n.exports.memory.buffer);var I=new Uint32Array(w);s(I).set(E.subarray(M,M+w*4));var N=new Float32Array(1);return s(N).set(E.subarray(R,R+4)),O(R-O(0)),[I,N[0]]}function f(m,x,b,T,A,C,S,v,D,O,R,M,L){var _=n.exports.sbrk,E=_(4),w=_(b*4),I=_(A*C),N=_(A*v),B=_(D.length*4),H=_(b*4),V=O?_(A):0,G=new Uint8Array(n.exports.memory.buffer);G.set(s(T),I),G.set(s(S),N),G.set(s(D),B),G.set(s(x),H),O&&G.set(s(O),V);var k=m(w,H,b,I,A,C,N,v,B,D.length,V,R,M,L,E);G=new Uint8Array(n.exports.memory.buffer);var W=new Uint32Array(k);s(W).set(G.subarray(w,w+k*4));var q=new Float32Array(1);return s(q).set(G.subarray(E,E+4)),_(E-_(0)),[W,q[0]]}function d(m,x,b,T){var A=n.exports.sbrk,C=A(b*T),S=new Uint8Array(n.exports.memory.buffer);S.set(s(x),C);var v=m(C,b,T);return A(C-A(0)),v}function p(m,x,b,T,A,C,S,v){var D=n.exports.sbrk,O=D(v*4),R=D(b*T),M=D(b*C),L=new Uint8Array(n.exports.memory.buffer);L.set(s(x),R),A&&L.set(s(A),M);var _=m(O,R,b,T,M,C,S,v);L=new Uint8Array(n.exports.memory.buffer);var E=new Uint32Array(_);return s(E).set(L.subarray(O,O+_*4)),D(O-D(0)),E}var g={LockBorder:1,Sparse:2,ErrorAbsolute:4,Prune:8,_InternalDebug:1<<30};return{ready:i,supported:!0,useExperimentalFeatures:!1,compactMesh:function(m){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0);var x=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return a(n.exports.meshopt_optimizeVertexFetchRemap,x,c(m)+1)},simplify:function(m,x,b,T,A,C){r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T>=0&&T<=m.length),r(T%3==0),r(A>=0);for(var S=0,v=0;v<(C?C.length:0);++v)r(C[v]in g),r(this.useExperimentalFeatures||C[v]!="Prune"),S|=g[C[v]];var D=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),O=u(n.exports.meshopt_simplify,D,m.length,x,x.length/b,b*4,T,A,S);return O[0]=m instanceof Uint32Array?O[0]:new m.constructor(O[0]),O},simplifyWithAttributes:function(m,x,b,T,A,C,S,v,D,O){r(this.useExperimentalFeatures),r(m instanceof Uint32Array||m instanceof Int32Array||m instanceof Uint16Array||m instanceof Int16Array),r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T instanceof Float32Array),r(T.length%A==0),r(A>=0),r(S==null||S instanceof Uint8Array),r(S==null||S.length==x.length/b),r(v>=0&&v<=m.length),r(v%3==0),r(D>=0),r(Array.isArray(C)),r(A>=C.length),r(C.length<=32);for(var R=0;R<C.length;++R)r(C[R]>=0);for(var M=0,R=0;R<(O?O.length:0);++R)r(O[R]in g),M|=g[O[R]];var L=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m),_=f(n.exports.meshopt_simplifyWithAttributes,L,m.length,x,x.length/b,b*4,T,A*4,new Float32Array(C),S?new Uint8Array(S):null,v,D,M);return _[0]=m instanceof Uint32Array?_[0]:new m.constructor(_[0]),_},getScale:function(m,x){return r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),d(n.exports.meshopt_simplifyScale,m,m.length/x,x*4)},simplifyPoints:function(m,x,b,T,A,C){return r(this.useExperimentalFeatures),r(m instanceof Float32Array),r(m.length%x==0),r(x>=3),r(b>=0&&b<=m.length/x),T?(r(T instanceof Float32Array),r(T.length%A==0),r(A>=3),r(m.length/x==T.length/A),p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,T,A*4,C,b)):p(n.exports.meshopt_simplifyPoints,m,m.length/x,x*4,void 0,0,0,b)}}}();var NQt=function(){var e="b9H79Tebbbefx9Geueu9Geub9Gbb9Giuuueu9Gkuuuuuuuuuu99eu9Gvuuuuueu9Gkuuuuuuuuu9999eu9Gruuuuuuub9Gkuuuuuuuuuuueu9Gouuuuuub9Giuuub9GluuuubiOHdilvorwDqrkbiibeilve9Weiiviebeoweuec:q:Odkr:Yewo9TW9T9VV95dbH9F9F939H79T9F9J9H229F9Jt9VV7bb8A9TW79O9V9Wt9F9I919P29K9nW79O2Wt79c9V919U9KbeX9TW79O9V9Wt9F9I919P29K9nW79O2Wt7bd39TW79O9V9Wt9F9J9V9T9W91tWJ2917tWV9c9V919U9K7br39TW79O9V9Wt9F9J9V9T9W91tW9nW79O2Wt9c9V919U9K7bDL9TW79O9V9Wt9F9V9Wt9P9T9P96W9nW79O2Wtbql79IV9RbkDwebcekdsPq;L9kHdbkIbabaec9:fgefcufae9Ugeabci9Uadfcufad9Ugbaeab0Ek:oAlPue99eux998Jjjjjbc:We9Rgk8Kjjjjbakc;mbfcbc;Kbz:njjjb8AakcuaocdtgxaocFFFFi0Egmcbyd:e1jjbHjjjjbbgPBd9makceBd:SeakaPBdnakamcbyd:e1jjbHjjjjbbgsBd9qakcdBd:SeakasBd9eakcualcdtalcFFFFi0Ecbyd:e1jjbHjjjjbbgzBd9uakazBd9iakciBd:SeaPcbaxz:njjjbhHalci9UhOdnalTmbaihPalhAinaHaPydbcdtfgCaCydbcefBdbaPclfhPaAcufgAmbkkdnaoTmbcbhPashAaHhCaohXinaAaPBdbaAclfhAaCydbaPfhPaCclfhCaXcufgXmbkkdnalci6mbcbhPaihAinaAcwfydbhCaAclfydbhXasaAydbcdtfgQaQydbgQcefBdbazaQcdtfaPBdbasaXcdtfgXaXydbgXcefBdbazaXcdtfaPBdbasaCcdtfgCaCydbgCcefBdbazaCcdtfaPBdbaAcxfhAaOaPcefgP9hmbkkdnaoTmbaHhAashPaohCinaPaPydbaAydb9RBdbaAclfhAaPclfhPaCcufgCmbkkakamcbyd:e1jjbHjjjjbbgPBd9yakclBd:SeaPaHaxz:mjjjbhmakaOcbyd:e1jjbHjjjjbbgPBd9CakcvBd:SeaPcbaOz:njjjbhLakcuaOcK2alcjjjjd0Ecbyd:e1jjbHjjjjbbgKBd9GakcoBd:SeJbbbbhYdnalci6g8Ambarcd4hxaihAaKhPaOhrJbbbbhEinavaAclfydbax2cdtfgCIdlh3avaAydbax2cdtfgXIdlhYavaAcwfydbax2cdtfgQIdlh5aCIdwh8EaXIdwh8FaQIdwhaaPaCIdbghaXIdbggMaQIdbg8JMJbbnn:vUdbaPclfaXIdlaCIdlMaQIdlMJbbnn:vUdbaQIdwh8KaCIdwh8LaXIdwh8MaPcxfa3aY:tg3aaa8F:tgaNa5aY:tg5a8Ea8F:tg8EN:tgYJbbbbJbbjZahag:tgha5Na8Jag:tgga3N:tg8Fa8FNaYaYNa8EagNaaahN:tgYaYNMM:rgg:vagJbbbb9BEg3NUdbaPczfaYa3NUdbaPcCfa8Fa3NUdbaPcwfa8Ka8Ma8LMMJbbnn:vUdbaEagMhEaAcxfhAaPcKfhParcufgrmbkaEaO:Z:vJbbbZNhYkakcuaOcdtalcFFFF970Ecbyd:e1jjbHjjjjbbgCBd9KakcrBd:SeaYaD:ZN:rhYdna8AmbcbhPaChAinaAaPBdbaAclfhAaOaPcefgP9hmbkkaYJbbbZNh8MakcuaOcltalcFFFFd0Ecbyd:e1jjbHjjjjbbg8ABd9OakcwBd:Secba8AaKaCaOz:djjjb8Aakaocbyd:e1jjbHjjjjbbgPBd2aPcFeaoz:njjjbhrakc8Wfcwf9cb83ibak9cb83i8WcbhPJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgcbhlinJbbbbh3dnaPTmbJbbjZaP:Z:vh3kaka8Ea3NgaUdaaka5a3NghUd3akaEa3Ng8JUdKJbbbbh3dnagagNaYaYNa8Fa8FNMMg8KJbbbb9BmbJbbjZa8K:r:vh3kakaga3NUd8Saka8Fa3NUdyakaYa3NUd8Kdndndnakyd8WgQakydUgAakcKfaeaiakc;abfaKamara8Maqz:ejjjbgCcuSmbdnaPaD9pmbaAaraiaCcx2fgXydbfRbbcFeSfaraXclfydbfRbbcFeSfaraXcwfydbfRbbcFeSfaw9nmdkaQaAcbaeaiakc;abfaKamara8MJbbbbz:ejjjbgCcu9hmekakaaUdCakahUdzaka8JUdxakcuBdwakcFFF;7rBdla8AcbaKaLakcxfakcwfakclfz:fjjjbakydwgCcuSmekdnakc8WfaiaCcx2fgOydbgPaOclfydbgAaOcwfydbgXarabaeadalawaDz:gjjjbTmbalcefhlJbbbbhEJbbbbh5Jbbbbh8EJbbbbhYJbbbbh8FJbbbbhgkamaPcdtfgPaPydbcufBdbamaAcdtfgPaPydbcufBdbamaXcdtfgPaPydbcufBdbcbhXinazasaOaXcdtfydbcdtgAfydbcdtfgxhPaHaAfgvydbgQhAdnaQTmbdninaPydbaCSmeaPclfhPaAcufgATmdxbkkaPaxaQcdtfc98fydbBdbavavydbcufBdbkaXcefgXci9hmbkaKaCcK2fgPIdbh3aPIdlhaaPIdwhhaPIdxh8JaPIdzh8KaPIdCh8LaLaCfce86bbaga8LMhga8Fa8KMh8FaYa8JMhYa8EahMh8Ea5aaMh5aEa3MhEakyd88hPxekkdnaPTmbdnakyd80gAaPci2fgCciGTmbadaCfcbaPaAcu7fciGcefz:njjjb8AkabalcltfgPak8Pi8W83dbaPcwfakc8Wfcwf8Pib83dbalcefhlkcahPdninaPc98Smeakc;mbfaPfydbcbydj1jjbH:bjjjbbaPc98fhPxbkkakc:Wef8Kjjjjbalk;3vivuv99lu8Jjjjjbca9Rgv8Kjjjjbdndnalcw0mbaiydbhoaeabcitfgralcdtcufBdlaraoBdbdnalcd6mbaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkkalabfhrxekcbhDavczfcwfcbBdbav9cb83izavcwfcbBdbav9cb83ibJbbjZhqJbbjZhkinadaiaDcdtfydbcK2fhwcbhrinavczfarfgoawarfIdbgxaoIdbgm:tgPakNamMgmUdbavarfgoaPaxam:tNaoIdbMUdbarclfgrcx9hmbkJbbjZaqJbbjZMgq:vhkaDcefgDal9hmbkcbhoadcbcecdavIdlgxavIdwgm9GEgravIdbgPam9GEaraPax9GEgscdtgrfhzavczfarfIdbhxaihralhwinaiaocdtfgDydbhHaDarydbgOBdbaraHBdbarclfhraoazaOcK2fIdbax9Dfhoawcufgwmbkaeabcitfhrdndnaocv6mbaoalc98f6mekaraiydbBdbaralcdtcufBdlaiclfhoalcufhwarcxfhrinaoydbhDarcuBdbarc98faDBdbarcwfhraoclfhoawcufgwmbkalabfhrxekaraxUdbaeabcitfgrarydlc98GasVBdlabcefaeadaiaoz:djjjbhwararydlciGawabcu7fcdtVBdlawaeadaiaocdtfalao9Rz:djjjbhrkavcaf8Kjjjjbark;Bloeue99vue99Due99dndnaembcuhkxekJbbjZaq:thxaiabcdtfhmavydbhPavydlhsavydwhzcbhHJFFuuhOcvhbcuhkindnaPamaHcdtfydbcdtgvfydbgATmbazasavfydbcdtfhiindndnawalaiydbgCcx2fgvclfydbgXfRbbcFeSawavydbgQfRbbcFeSfawavcwfydbgLfRbbcFeSfgKmbcbhvxekcehvaraQcdtfydbgYceSmbcehvaraXcdtfydbg8AceSmbcehvaraLcdtfydbgEceSmbdna8AcdSaYcdSfaEcdSfcd6mbaKcefhvxekaKcdfhvkdnavab9kmbdndnadTmbaoaCcK2fgQIdwadIdw:tg3a3NaQIdbadIdb:tg3a3NaQIdladIdl:tg3a3NMM:raD:vaxNJbbjZMJ9VO:d86JbbjZaQIdCadIdCNaQIdxadIdxNaQIdzadIdzNMMaqN:tg3a3J9VO:d869DENh3xekaraQcdtfydbaraXcdtfydbfaraLcdtfydbfc99f:Zh3kaCakavab6a3aO9DVgQEhkavabaQEhba3aOaQEhOkaiclfhiaAcufgAmbkkaHcefgHae9hmbkkakk;bddlue99dndndnabaecitfgrydlgwciGgDci9hmbarclfhqxekinabcbawcd4gwalaDcdtfIdbabaecitfIdb:tgkJbbbb9FEgDaecefgefadaialavaoz:fjjjbak:laoIdb9FTmdabaDaw7aefgecitfgrydlgwciGgDci9hmbkarclfhqkabaecitfhecuhbindnaiaeydbgDfRbbmbadaDcK2fgrIdwalIdw:tgkakNarIdbalIdb:tgkakNarIdlalIdl:tgkakNMM:rgkaoIdb9DTmbaoakUdbavaDBdbaqydbhwkaecwfheabcefgbawcd46mbkkk;yleoudnaladfgkRbbcFeSalaefgxRbbgmcFeSfabydwgPfalaifgsRbbcFeSfaD0abydxaq9pVgzce9hmbavawcltfgmab8Pdb83dbamcwfabcwfgm8Pdb83dbdndnamydbmbcbhqxekcbhDaohminalamabydbcdtfydbfcFe86bbamclfhmaDcefgDabydwgq6mbkkdnabydxglci2gDabydlgmfgPciGTmbaraPfcbalamcu7fciGcefz:njjjb8Aabydxci2hDabydlhmabydwhqkab9cb83dwababydbaqfBdbabaDcifc98GamfBdlaxRbbhmcbhPkdnamcFeGcFe9hmbaxaP86bbababydwgmcefBdwaoabydbcdtfamcdtfaeBdbkdnakRbbcFe9hmbakabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfadBdbkdnasRbbcFe9hmbasabydw86bbababydwgmcefBdwaoabydbcdtfamcdtfaiBdbkarabydlfabydxci2faxRbb86bbarabydlfabydxci2fcefakRbb86bbarabydlfabydxci2fcdfasRbb86bbababydxcefBdxazk;Ckovud99euv99eul998Jjjjjbc:G;ae9Rgo8KjjjjbdndnadTmbavcd4hrcbhwcbhDindnaiaeclfydbar2cdtfgvIdbaiaeydbar2cdtfgqIdbgk:tgxaiaecwfydbar2cdtfgmIdlaqIdlgP:tgsNamIdbak:tgzavIdlaP:tgPN:tgkakNaPamIdwaqIdwgH:tgONasavIdwaH:tgHN:tgPaPNaHazNaOaxN:tgxaxNMM:rgsJbbbb9Bmbaoc:G:qefawcx2fgAakas:vUdwaAaxas:vUdlaAaPas:vUdbaocafawc8K2fgAaq8Pdb83dbaAav8Pdb83dxaAam8Pdb83dKaAcwfaqcwfydbBdbaAcCfavcwfydbBdbaAcafamcwfydbBdbawcefhwkaecxfheaDcifgDad6mbkab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbawTmeao9cb83iKao9cb83izaoczfaocafawci2z1jjjbaoIdKhCaoIdChXaoIdzhQao9cb83iwao9cb83ibaoaoc:G:qefawz1jjjbJbbjZhkaoIdwgPJbbbbJbbjZaPaPNaoIdbgPaPNaoIdlgsasNMM:rgx:vaxJbbbb9BEgzNhxasazNhsaPazNhzaoc:G:qefheawhvinaecwfIdbaxNaeIdbazNasaeclfIdbNMMgPakaPak9DEhkaecxfheavcufgvmbkabaCUdwabaXUdlabaQUdbabaoId3UdxdndnakJ;n;m;m899FmbJbbbbhPaoc:G:qefheaocafhvinaCavcwfIdb:taecwfIdbgHNaQavIdb:taeIdbgONaXavclfIdb:taeclfIdbgLNMMaxaHNazaONasaLNMM:vgHaPaHaP9EEhPavc8KfhvaecxfheawcufgwmbkabazUd3abc8KfaxUdbabcafasUdbabcKfaCaxaPN:tUdbabcCfaXasaPN:tUdbabaQazaPN:tUdzabJbbjZakakN:t:rgkUdydndnaxJbbj:;axJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;axJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohexekcjjjj94hekabc8Ufae86bbdndnasJbbj:;asJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;asJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohvxekcjjjj94hvkabcRfav86bbdndnazJbbj:;azJbbj:;9GEgPJbbjZaPJbbjZ9FEJbb;:9cNJbbbZJbbb:;azJbbbb9GEMgP:lJbbb9p9DTmbaP:Ohqxekcjjjj94hqkabaq86b8SdndnaecKtcK91:YJbb;:9c:vax:t:lavcKtcK91:YJbb;:9c:vas:t:laqcKtcK91:YJbb;:9c:vaz:t:lakMMMJbb;:9cNJbbjZMgk:lJbbb9p9DTmbak:Ohexekcjjjj94hekaecFbaecFb9iEhexekabcjjj;8iBdycFbhekabae86b8Vxekab9cb83dbabcyf9cb83dbabcaf9cb83dbabcKf9cb83dbabczf9cb83dbabcwf9cb83dbkaoc:G;aef8Kjjjjbk:mvdouq99cbhi8Jjjjjbca9RglczfcwfcbBdbal9cb83izalcwfcbBdbal9cb83ibdnadTmbcbhvinaeaifhocbhrinalczfarfgwavawydbgwaoarfIdbgDaearawcx2ffIdb9DEBdbalarfgwavawydbgwaDaearawcx2ffIdb9EEBdbarclfgrcx9hmbkaicxfhiavcefgvad9hmbkkJbbbbhDcbhrcbhicbhvinaealarfydbcx2fgwIdwaealczfarfydbcx2fgoIdw:tgqaqNawIdbaoIdb:tgqaqNawIdlaoIdl:tgqaqNMMgqaDaqaD9EgwEhDavaiawEhiarclfhravcefgvci9hmbkaealczfaicdtgvfydbcx2fgrIdwaealavfydbcx2fglIdwMJbbbZNhqarIdlalIdlMJbbbZNhkarIdbalIdbMJbbbZNhxaD:rJbbbZNhDdnadTmbindnaecwfIdbgmaq:tgPaPNaeIdbgsax:tgPaPNaeclfIdbgzak:tgPaPNMMgPaDaDN9ETmbaqaDaP:rgH:vJbbbZNJbbbZMgPNamJbbjZaP:tgONMhqakaPNazaONMhkaxaPNasaONMhxaDaHMJbbbZNhDkaecxfheadcufgdmbkkabaDUdxabaqUdwabakUdlabaxUdbkjeeiu8Jjjjjbcj8W9Rgr8Kjjjjbaici2hwdnaiTmbawceawce0EhDarhiinaiaeadRbbcdtfydbBdbadcefhdaiclfhiaDcufgDmbkkabarawaladaoz:hjjjbarcj8Wf8Kjjjjbk:Ylequ8Jjjjjbcjx9Rgl8Kjjjjbcbhvalcjqfcbaiz:njjjb8AdndnadTmbcjehoaehrincuhwarhDcuhqavhkdninawakaoalcjqfaDcefRbbfRbb9RcFeGci6aoalcjqfaDRbbfRbb9RcFeGci6faoalcjqfaDcdfRbbfRbb9RcFeGci6fgxaq9mgmEhwdnammbaxce0mdkaxaqaxaq9kEhqaDcifhDadakcefgk9hmbkkaeawci2fgDcdfRbbhqaDcefRbbhxaDRbbhkaeavci2fgDcifaDawav9Rci2z:qjjjb8Aakalcjqffaocefgo86bbaxalcjqffao86bbaDcdfaq86bbaDcefax86bbaDak86bbaqalcjqffao86bbarcifhravcefgvad9hmbkalcFeaiz:njjjbhoadci2gDceaDce0EhqcbhxindnaoaeRbbgkfgwRbbgDcFe9hmbawax86bbaocjdfaxcdtfabakcdtfydbBdbaxhDaxcefhxkaeaD86bbaecefheaqcufgqmbkaxcdthDxekcbhDkabalcjdfaDz:mjjjb8Aalcjxf8Kjjjjbk9teiucbcbyd11jjbgeabcifc98GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik;LeeeudndnaeabVciGTmbabhixekdndnadcz9pmbabhixekabhiinaiaeydbBdbaiclfaeclfydbBdbaicwfaecwfydbBdbaicxfaecxfydbBdbaeczfheaiczfhiadc9Wfgdcs0mbkkadcl6mbinaiaeydbBdbaeclfheaiclfhiadc98fgdci0mbkkdnadTmbinaiaeRbb86bbaicefhiaecefheadcufgdmbkkabk;aeedudndnabciGTmbabhixekaecFeGc:b:c:ew2hldndnadcz9pmbabhixekabhiinaialBdbaicxfalBdbaicwfalBdbaiclfalBdbaiczfhiadc9Wfgdcs0mbkkadcl6mbinaialBdbaiclfhiadc98fgdci0mbkkdnadTmbinaiae86bbaicefhiadcufgdmbkkabk9teiucbcbyd11jjbgeabcrfc94GfgbBd11jjbdndnabZbcztgd9nmbcuhiabad9RcFFifcz4nbcuSmekaehikaik9:eiuZbhedndncbyd11jjbgdaecztgi9nmbcuheadai9RcFFifcz4nbcuSmekadhekcbabae9Rcifc98Gcbyd11jjbfgdBd11jjbdnadZbcztge9nmbadae9RcFFifcz4nb8Akk:;Deludndndnadch9pmbabaeSmdaeabadfgi9Rcbadcet9R0mekabaead;8qbbxekaeab7ciGhldndndnabae9pmbdnalTmbadhvabhixikdnabciGmbadhvabhixdkadTmiabaeRbb86bbadcufhvdnabcefgiciGmbaecefhexdkavTmiabaeRbe86beadc9:fhvdnabcdfgiciGmbaecdfhexdkavTmiabaeRbd86bdadc99fhvdnabcifgiciGmbaecifhexdkavTmiabaeRbi86biabclfhiaeclfheadc98fhvxekdnalmbdnaiciGTmbadTmlabadcufgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc9:fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc99fgifglaeaifRbb86bbdnalciGmbaihdxekaiTmlabadc98fgdfaeadfRbb86bbkadcl6mbdnadc98fgocd4cefciGgiTmbaec98fhlabc98fhvinavadfaladfydbBdbadc98fhdaicufgimbkkaocx6mbaec9Wfhvabc9WfhoinaoadfgicxfavadfglcxfydbBdbaicwfalcwfydbBdbaiclfalclfydbBdbaialydbBdbadc9Wfgdci0mbkkadTmdadhidnadciGglTmbaecufhvabcufhoadhiinaoaifavaifRbb86bbaicufhialcufglmbkkadcl6mdaec98fhlabc98fhvinavaifgecifalaifgdcifRbb86bbaecdfadcdfRbb86bbaecefadcefRbb86bbaeadRbb86bbaic98fgimbxikkavcl6mbdnavc98fglcd4cefcrGgdTmbavadcdt9RhvinaiaeydbBdbaeclfheaiclfhiadcufgdmbkkalc36mbinaiaeydbBdbaiaeydlBdlaiaeydwBdwaiaeydxBdxaiaeydzBdzaiaeydCBdCaiaeydKBdKaiaeyd3Bd3aecafheaicafhiavc9Gfgvci0mbkkavTmbdndnavcrGgdmbavhlxekavc94GhlinaiaeRbb86bbaicefhiaecefheadcufgdmbkkavcw6mbinaiaeRbb86bbaiaeRbe86beaiaeRbd86bdaiaeRbi86biaiaeRbl86blaiaeRbv86bvaiaeRbo86boaiaeRbr86braicwfhiaecwfhealc94fglmbkkabkkAebcjwkxebbbdbbbzNbb",t=new Uint8Array([32,0,65,2,1,106,34,33,3,128,11,4,13,64,6,253,10,7,15,116,127,5,8,12,40,16,19,54,20,9,27,255,113,17,42,67,24,23,146,148,18,14,22,45,70,69,56,114,101,21,25,63,75,136,108,28,118,29,73,115]);if(typeof WebAssembly!="object")return{supported:!1};var n,i=WebAssembly.instantiate(o(e),{}).then(function(m){n=m.instance,n.exports.__wasm_call_ctors()});function o(m){for(var x=new Uint8Array(m.length),b=0;b<m.length;++b){var T=m.charCodeAt(b);x[b]=T>96?T-97:T>64?T-39:T+4}for(var A=0,b=0;b<m.length;++b)x[A++]=x[b]<60?t[x[b]]:(x[b]-60)*64+x[++b];return x.buffer.slice(0,A)}function r(m){if(!m)throw new Error("Assertion failed")}function s(m){return new Uint8Array(m.buffer,m.byteOffset,m.byteLength)}var a=48,c=16;function u(m,x){var b=m.meshlets[x*4+0],T=m.meshlets[x*4+1],A=m.meshlets[x*4+2],C=m.meshlets[x*4+3];return{vertices:m.vertices.subarray(b,b+A),triangles:m.triangles.subarray(T,T+C*3)}}function f(m,x,b,T,A,C,S){var v=n.exports.sbrk,D=n.exports.meshopt_buildMeshletsBound(m.length,A,C),O=v(D*c),R=v(D*A*4),M=v(D*C*3),L=v(m.byteLength),_=v(x.byteLength),E=new Uint8Array(n.exports.memory.buffer);E.set(s(m),L),E.set(s(x),_);var w=n.exports.meshopt_buildMeshlets(O,R,M,L,m.length,_,b,T,A,C,S);E=new Uint8Array(n.exports.memory.buffer);for(var I=E.subarray(O,O+w*c),N=new Uint32Array(I.buffer,I.byteOffset,I.byteLength/4).slice(),B=0;B<w;++B){var H=N[B*4+0],V=N[B*4+1],b=N[B*4+2],G=N[B*4+3];n.exports.meshopt_optimizeMeshlet(R+H*4,M+V,G,b)}var k=N[(w-1)*4+0],W=N[(w-1)*4+1],q=N[(w-1)*4+2],J=N[(w-1)*4+3],j=k+q,Z=W+(J*3+3&-4),Q={meshlets:N,vertices:new Uint32Array(E.buffer,R,j).slice(),triangles:new Uint8Array(E.buffer,M,Z*3).slice(),meshletCount:w};return v(O-v(0)),Q}function d(m){var x=new Float32Array(n.exports.memory.buffer,m,a/4);return{centerX:x[0],centerY:x[1],centerZ:x[2],radius:x[3],coneApexX:x[4],coneApexY:x[5],coneApexZ:x[6],coneAxisX:x[7],coneAxisY:x[8],coneAxisZ:x[9],coneCutoff:x[10]}}function p(m,x,b,T){var A=n.exports.sbrk,C=[],S=A(x.byteLength),v=A(m.vertices.byteLength),D=A(m.triangles.byteLength),O=A(a),R=new Uint8Array(n.exports.memory.buffer);R.set(s(x),S),R.set(s(m.vertices),v),R.set(s(m.triangles),D);for(var M=0;M<m.meshletCount;++M){var L=m.meshlets[M*4+0],_=m.meshlets[M*4+0+1],E=m.meshlets[M*4+0+3];n.exports.meshopt_computeMeshletBounds(O,v+L*4,D+_,E,S,b,T),C.push(d(O))}return A(S-A(0)),C}function g(m,x,b,T){var A=n.exports.sbrk,C=A(a),S=A(m.byteLength),v=A(x.byteLength),D=new Uint8Array(n.exports.memory.buffer);D.set(s(m),S),D.set(s(x),v),n.exports.meshopt_computeClusterBounds(C,S,m.length,v,b,T);var O=d(C);return A(C-A(0)),O}return{ready:i,supported:!0,buildMeshlets:function(m,x,b,T,A,C){r(m.length%3==0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),r(T<=255||T>0),r(A<=512),r(A%4==0),C=C||0;var S=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return f(S,x,x.length/b,b*4,T,A,C)},computeClusterBounds:function(m,x,b){r(m.length%3==0),r(m.length/3<=512),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3);var T=m.BYTES_PER_ELEMENT==4?m:new Uint32Array(m);return g(T,x,x.length/b,b*4)},computeMeshletBounds:function(m,x,b){return r(m.meshletCount!=0),r(x instanceof Float32Array),r(x.length%b==0),r(b>=3),p(m,x,x.length/b,b*4)},extractMeshlet:function(m,x){return r(x>=0&&x<m.meshletCount),u(m,x)}}}();function $0(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.bufferViewId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.bufferViews[i],c=a.buffer,u=a.byteOffset,f=a.byteLength,d=!1,p,g,m,x;if(oi(a,"EXT_meshopt_compression")){let T=a.extensions.EXT_meshopt_compression;c=T.buffer,u=y(T.byteOffset,0),f=T.byteLength,d=!0,p=T.byteStride,g=T.count,m=T.mode,x=y(T.filter,"NONE")}let b=n.buffers[c];this._hasMeshopt=d,this._meshoptByteStride=p,this._meshoptCount=g,this._meshoptMode=m,this._meshoptFilter=x,this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._buffer=b,this._bufferId=c,this._byteOffset=u,this._byteLength=f,this._cacheKey=s,this._bufferLoader=void 0,this._typedArray=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&($0.prototype=Object.create(Yi.prototype),$0.prototype.constructor=$0);Object.defineProperties($0.prototype,{cacheKey:{get:function(){return this._cacheKey}},typedArray:{get:function(){return this._typedArray}}});async function iBe(e){try{let t=oBe(e);if(e._bufferLoader=t,await t.load(),e.isDestroyed())return;let n=t.typedArray,i=new Uint8Array(n.buffer,n.byteOffset+e._byteOffset,e._byteLength);if(e.unload(),e._typedArray=i,e._hasMeshopt){let o=e._meshoptCount,r=e._meshoptByteStride,s=new Uint8Array(o*r);mie.decodeGltfBuffer(s,o,r,e._typedArray,e._meshoptMode,e._meshoptFilter),e._typedArray=s}return e._state=_t.READY,e}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load buffer view",t)}}$0.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,this._promise=iBe(this),this._promise)};function oBe(e){let t=e._resourceCache,n=e._buffer;if(l(n.uri)){let o=e._baseResource.getDerivedResource({url:n.uri});return t.getExternalBufferLoader({resource:o})}return t.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:e._bufferId})}$0.prototype.unload=function(){l(this._bufferLoader)&&!this._bufferLoader.isDestroyed()&&this._resourceCache.unload(this._bufferLoader),this._bufferLoader=void 0,this._typedArray=void 0};var Uv=$0;function Rr(){}Rr._maxDecodingConcurrency=Math.max(jt.hardwareConcurrency-1,1);Rr._decoderTaskProcessor=void 0;Rr._taskProcessorReady=!1;Rr._error=void 0;Rr._getDecoderTaskProcessor=function(){if(!l(Rr._decoderTaskProcessor)){let e=new _i("decodeDraco",Rr._maxDecodingConcurrency);e.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}).then(function(t){t?Rr._taskProcessorReady=!0:Rr._error=new ce("Draco decoder could not be initialized.")}).catch(t=>{Rr._error=t}),Rr._decoderTaskProcessor=e}return Rr._decoderTaskProcessor};Rr.decodePointCloud=function(e){let t=Rr._getDecoderTaskProcessor();if(l(Rr._error))throw Rr._error;if(Rr._taskProcessorReady)return t.scheduleTask(e,[e.buffer.buffer])};Rr.decodeBufferView=function(e){let t=Rr._getDecoderTaskProcessor();if(l(Rr._error))throw Rr._error;if(Rr._taskProcessorReady)return t.scheduleTask(e,[e.array.buffer])};var cg=Rr;function lg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.draco,o=e.gltfResource,r=e.baseResource,s=e.cacheKey;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._draco=i,this._cacheKey=s,this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodePromise=void 0,this._decodedData=void 0,this._state=_t.UNLOADED,this._promise=void 0,this._dracoError=void 0}l(Object.create)&&(lg.prototype=Object.create(Yi.prototype),lg.prototype.constructor=lg);Object.defineProperties(lg.prototype,{cacheKey:{get:function(){return this._cacheKey}},decodedData:{get:function(){return this._decodedData}}});async function rBe(e){let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._draco.bufferView,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._bufferViewTypedArray=n.typedArray,e._state=_t.PROCESSING,e)}catch(n){if(e.isDestroyed())return;pie(e,n)}}lg.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,this._promise=rBe(this),this._promise)};function pie(e,t){throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load Draco",t)}async function sBe(e,t){try{let n=await t;return e.isDestroyed()?void 0:(e.unload(),e._decodedData={indices:n.indexArray,vertexAttributes:n.attributeData},e._state=_t.READY,e._baseResource)}catch(n){if(e.isDestroyed())return;e._dracoError=n}}lg.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.PROCESSING||(l(this._dracoError)&&pie(this,this._dracoError),!l(this._bufferViewTypedArray))||l(this._decodePromise))return!1;let t=this._draco,i=this._gltf.bufferViews,o=t.bufferView,r=i[o],s=t.attributes,a={array:new Uint8Array(this._bufferViewTypedArray),bufferView:r,compressedAttributes:s,dequantizeInShader:!0},c=cg.decodeBufferView(a);if(!l(c))return!1;this._decodePromise=sBe(this,c)};lg.prototype.unload=function(){l(this._bufferViewLoader)&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._bufferViewTypedArray=void 0,this._decodedData=void 0,this._gltf=void 0};var zv=lg;function aBe(e){let t=e.uint8Array,n=e.format,i=e.request,o=y(e.flipY,!1),r=y(e.skipColorSpaceConversion,!1),s=new Blob([t],{type:n}),a;return De.supportsImageBitmapOptions().then(function(c){return c?Promise.resolve(De.createImageBitmapFromBlob(s,{flipY:o,premultiplyAlpha:!1,skipColorSpaceConversion:r})):(a=window.URL.createObjectURL(s),new De({url:a,request:i}).fetchImage({flipY:o,skipColorSpaceConversion:r}))}).then(function(c){return l(a)&&window.URL.revokeObjectURL(a),c}).catch(function(c){return l(a)&&window.URL.revokeObjectURL(a),Promise.reject(c)})}var aA=aBe;function _p(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.imageId,o=e.gltfResource,r=e.baseResource,s=e.cacheKey,a=n.images[i],c=a.bufferView,u=a.uri;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._bufferViewId=c,this._uri=u,this._cacheKey=s,this._bufferViewLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(_p.prototype=Object.create(Yi.prototype),_p.prototype.constructor=_p);Object.defineProperties(_p.prototype,{cacheKey:{get:function(){return this._cacheKey}},image:{get:function(){return this._image}},mipLevels:{get:function(){return this._mipLevels}}});_p.prototype.load=function(){return l(this._promise)?this._promise:l(this._bufferViewId)?(this._promise=cBe(this),this._promise):(this._promise=lBe(this),this._promise)};function _ie(e){let t;return Array.isArray(e)&&(t=e.slice(1,e.length).map(function(n){return n.bufferView}),e=e[0]),{image:e,mipLevels:t}}async function cBe(e){e._state=_t.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=n,await n.load(),e.isDestroyed())return;let i=n.typedArray,o=await fBe(i);if(e.isDestroyed())return;let r=_ie(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=_t.READY,e}catch(n){return e.isDestroyed()?void 0:gie(e,n,"Failed to load embedded image")}}async function lBe(e){e._state=_t.LOADING;let t=e._baseResource,n=e._uri,i=t.getDerivedResource({url:n});try{let o=await hBe(i);if(e.isDestroyed())return;let r=_ie(o);return e.unload(),e._image=r.image,e._mipLevels=r.mipLevels,e._state=_t.READY,e}catch(o){return e.isDestroyed()?void 0:gie(e,o,`Failed to load image: ${n}`)}}function gie(e,t,n){return e.unload(),e._state=_t.FAILED,Promise.reject(e.getError(n,t))}function uBe(e){let t=e.subarray(0,2),n=e.subarray(0,4),i=e.subarray(8,12);if(t[0]===255&&t[1]===216)return"image/jpeg";if(t[0]===137&&t[1]===80)return"image/png";if(t[0]===171&&t[1]===75)return"image/ktx2";if(n[0]===82&&n[1]===73&&n[2]===70&&n[3]===70&&i[0]===87&&i[1]===69&&i[2]===66&&i[3]===80)return"image/webp";throw new ce("Image format is not recognized")}async function fBe(e){let t=uBe(e);if(t==="image/ktx2"){let n=new Uint8Array(e);return Gl(n)}return _p._loadImageFromTypedArray({uint8Array:e,format:t,flipY:!1,skipColorSpaceConversion:!0})}var dBe=/(^data:image\/ktx2)|(\.ktx2$)/i;function hBe(e){let t=e.getUrlComponent(!1,!0);return dBe.test(t)?Gl(e):e.fetchImage({skipColorSpaceConversion:!0,preferImageBitmap:!0})}_p.prototype.unload=function(){l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&this._resourceCache.unload(this._bufferViewLoader),this._bufferViewLoader=void 0,this._uri=void 0,this._image=void 0,this._mipLevels=void 0,this._gltf=void 0};_p._loadImageFromTypedArray=aA;var Hv=_p;var mBe={TEXTURE:0,PROGRAM:1,BUFFER:2,NUMBER_OF_JOB_TYPES:3},Xa=Object.freeze(mBe);function ug(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.accessorId,o=e.gltfResource,r=e.baseResource,s=e.draco,a=e.cacheKey,c=y(e.asynchronous,!0),u=y(e.loadBuffer,!1),f=y(e.loadTypedArray,!1),d=n.accessors[i].componentType;this._resourceCache=t,this._gltfResource=o,this._baseResource=r,this._gltf=n,this._accessorId=i,this._indexDatatype=d,this._draco=s,this._cacheKey=a,this._asynchronous=c,this._loadBuffer=u,this._loadTypedArray=f,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(ug.prototype=Object.create(Yi.prototype),ug.prototype.constructor=ug);Object.defineProperties(ug.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},indexDatatype:{get:function(){return this._indexDatatype}}});var pBe=new E9;ug.prototype.load=async function(){return l(this._promise)?this._promise:l(this._draco)?(this._promise=_Be(this),this._promise):(this._promise=gBe(this),this._promise)};async function _Be(e){e._state=_t.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=_t.LOADED,e)}catch(n){if(e.isDestroyed())return;C9(e,n)}}async function gBe(e){let t=e._gltf,n=e._accessorId,o=t.accessors[n].bufferView;e._state=_t.LOADING;let r=e._resourceCache;try{let s=r.getBufferViewLoader({gltf:t,bufferViewId:o,gltfResource:e._gltfResource,baseResource:e._baseResource});if(e._bufferViewLoader=s,await s.load(),e.isDestroyed())return;let a=s.typedArray;return e._typedArray=yBe(e,a),e._state=_t.PROCESSING,e}catch(s){if(e.isDestroyed())return;C9(e,s)}}function yBe(e,t){let n=e._gltf,i=e._accessorId,o=n.accessors[i],r=o.count,s=o.componentType,a=Ne.getSizeInBytes(s),c=t.buffer,u=t.byteOffset+o.byteOffset;if(u%a!==0){let d=r*a,p=new Uint8Array(c,u,d);c=new Uint8Array(p).buffer,u=0,_s("index-buffer-unaligned",`The index array is not aligned to a ${a}-byte boundary.`)}let f;return s===Ne.UNSIGNED_BYTE?f=new Uint8Array(c,u,r):s===Ne.UNSIGNED_SHORT?f=new Uint16Array(c,u,r):s===Ne.UNSIGNED_INT&&(f=new Uint32Array(c,u,r)),f}function C9(e,t){throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load index buffer",t)}function E9(){this.typedArray=void 0,this.indexDatatype=void 0,this.context=void 0,this.buffer=void 0}E9.prototype.set=function(e,t,n){this.typedArray=e,this.indexDatatype=t,this.context=n};E9.prototype.execute=function(){this.buffer=yie(this.typedArray,this.indexDatatype,this.context)};function yie(e,t,n){let i=yt.createIndexBuffer({typedArray:e,context:n,usage:Fe.STATIC_DRAW,indexDatatype:t});return i.vertexArrayDestroyable=!1,i}ug.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.LOADED&&this._state!==_t.PROCESSING)return!1;let t=this._typedArray,n=this._indexDatatype;if(l(this._dracoLoader))try{this._dracoLoader.process(e)&&(t=this._dracoLoader.decodedData.indices.typedArray,this._typedArray=t,n=X.fromTypedArray(t),this._indexDatatype=n)}catch(o){C9(this,o)}if(!l(t))return!1;let i;if(this._loadBuffer&&this._asynchronous){let o=pBe;if(o.set(t,n,e.context),!e.jobScheduler.execute(o,Xa.BUFFER))return!1;i=o.buffer}else this._loadBuffer&&(i=yie(t,n,e.context));return this.unload(),this._buffer=i,this._typedArray=this._loadTypedArray?t:void 0,this._state=_t.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};ug.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var Gv=ug;function xBe(e,t,n){if(n=y(n,!1),n){let i=e.indexOf(t);if(i>-1)return i}return e.push(t),e.length-1}var Ns=xBe;function bBe(e,t){return l(e.extensionsUsed)&&e.extensionsUsed.indexOf(t)>=0}var hr=bBe;function Xt(){}Xt.objectLegacy=function(e,t){if(l(e)){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}}};Xt.object=function(e,t){if(l(e)){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=t(o,i);if(l(r))return r}}};Xt.topLevel=function(e,t,n){let i=e[t];return l(i)&&!Array.isArray(i)?Xt.objectLegacy(i,n):Xt.object(i,n)};Xt.accessor=function(e,t){return Xt.topLevel(e,"accessors",t)};Xt.accessorWithSemantic=function(e,t,n){let i={};return Xt.mesh(e,function(o){return Xt.meshPrimitive(o,function(r){let s=Xt.meshPrimitiveAttribute(r,function(a,c){if(c.indexOf(t)===0&&!l(i[a])){i[a]=!0;let u=n(a);if(l(u))return u}});return l(s)?s:Xt.meshPrimitiveTarget(r,function(a){return Xt.meshPrimitiveTargetAttribute(a,function(c,u){if(u.indexOf(t)===0&&!l(i[c])){i[c]=!0;let f=n(c);if(l(f))return f}})})})})};Xt.accessorContainingVertexAttributeData=function(e,t){let n={};return Xt.mesh(e,function(i){return Xt.meshPrimitive(i,function(o){let r=Xt.meshPrimitiveAttribute(o,function(s){if(!l(n[s])){n[s]=!0;let a=t(s);if(l(a))return a}});return l(r)?r:Xt.meshPrimitiveTarget(o,function(s){return Xt.meshPrimitiveTargetAttribute(s,function(a){if(!l(n[a])){n[a]=!0;let c=t(a);if(l(c))return c}})})})})};Xt.accessorContainingIndexData=function(e,t){let n={};return Xt.mesh(e,function(i){return Xt.meshPrimitive(i,function(o){let r=o.indices;if(l(r)&&!l(n[r])){n[r]=!0;let s=t(r);if(l(s))return s}})})};Xt.animation=function(e,t){return Xt.topLevel(e,"animations",t)};Xt.animationChannel=function(e,t){let n=e.channels;return Xt.object(n,t)};Xt.animationSampler=function(e,t){let n=e.samplers;return Xt.object(n,t)};Xt.buffer=function(e,t){return Xt.topLevel(e,"buffers",t)};Xt.bufferView=function(e,t){return Xt.topLevel(e,"bufferViews",t)};Xt.camera=function(e,t){return Xt.topLevel(e,"cameras",t)};Xt.image=function(e,t){return Xt.topLevel(e,"images",t)};Xt.material=function(e,t){return Xt.topLevel(e,"materials",t)};Xt.materialValue=function(e,t){let n=e.values;l(e.extensions)&&l(e.extensions.KHR_techniques_webgl)&&(n=e.extensions.KHR_techniques_webgl.values);for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Xt.mesh=function(e,t){return Xt.topLevel(e,"meshes",t)};Xt.meshPrimitive=function(e,t){let n=e.primitives;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r,o);if(l(s))return s}}};Xt.meshPrimitiveAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Xt.meshPrimitiveTarget=function(e,t){let n=e.targets;if(l(n)){let i=n.length;for(let o=0;o<i;++o){let r=t(n[o],o);if(l(r))return r}}};Xt.meshPrimitiveTargetAttribute=function(e,t){for(let n in e)if(Object.prototype.hasOwnProperty.call(e,n)){let i=e[n],o=t(i,n);if(l(o))return o}};Xt.node=function(e,t){return Xt.topLevel(e,"nodes",t)};Xt.nodeInTree=function(e,t,n){let i=e.nodes;if(l(i)){let o=t.length;for(let r=0;r<o;r++){let s=t[r],a=i[s];if(l(a)){let c=n(a,s);if(l(c))return c;let u=a.children;if(l(u)&&(c=Xt.nodeInTree(e,u,n),l(c)))return c}}}};Xt.nodeInScene=function(e,t,n){let i=t.nodes;if(l(i))return Xt.nodeInTree(e,i,n)};Xt.program=function(e,t){return hr(e,"KHR_techniques_webgl")?Xt.object(e.extensions.KHR_techniques_webgl.programs,t):Xt.topLevel(e,"programs",t)};Xt.sampler=function(e,t){return Xt.topLevel(e,"samplers",t)};Xt.scene=function(e,t){return Xt.topLevel(e,"scenes",t)};Xt.shader=function(e,t){return hr(e,"KHR_techniques_webgl")?Xt.object(e.extensions.KHR_techniques_webgl.shaders,t):Xt.topLevel(e,"shaders",t)};Xt.skin=function(e,t){return Xt.topLevel(e,"skins",t)};Xt.skinJoint=function(e,t){let n=e.joints;if(l(n)){let i=n.length;for(let o=0;o<i;o++){let r=n[o],s=t(r);if(l(s))return s}}};Xt.techniqueAttribute=function(e,t){let n=e.attributes;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Xt.techniqueUniform=function(e,t){let n=e.uniforms;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Xt.techniqueParameter=function(e,t){let n=e.parameters;for(let i in n)if(Object.prototype.hasOwnProperty.call(n,i)){let o=t(n[i],i);if(l(o))return o}};Xt.technique=function(e,t){return hr(e,"KHR_techniques_webgl")?Xt.object(e.extensions.KHR_techniques_webgl.techniques,t):Xt.topLevel(e,"techniques",t)};Xt.texture=function(e,t){return Xt.topLevel(e,"textures",t)};var Re=Xt;function TBe(e){switch(e){case"SCALAR":return 1;case"VEC2":return 2;case"VEC3":return 3;case"VEC4":case"MAT2":return 4;case"MAT3":return 9;case"MAT4":return 16}}var rf=TBe;function ABe(e,t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n];if(l(i.byteStride)&&i.byteStride>0)return i.byteStride}return X.getSizeInBytes(t.componentType)*rf(t.type)}var nu=ABe;function CBe(e){Re.accessor(e,function(n){l(n.bufferView)&&(n.byteOffset=y(n.byteOffset,0))}),Re.bufferView(e,function(n){l(n.buffer)&&(n.byteOffset=y(n.byteOffset,0))}),Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){if(i.mode=y(i.mode,te.TRIANGLES),!l(i.material)){l(e.materials)||(e.materials=[]);let o={name:"default"};i.material=Ns(e.materials,o)}})}),Re.accessorContainingVertexAttributeData(e,function(n){let i=e.accessors[n],o=i.bufferView;if(i.normalized=y(i.normalized,!1),l(o)){let r=e.bufferViews[o];r.byteStride=nu(e,i),r.target=te.ARRAY_BUFFER}}),Re.accessorContainingIndexData(e,function(n){let o=e.accessors[n].bufferView;if(l(o)){let r=e.bufferViews[o];r.target=te.ELEMENT_ARRAY_BUFFER}}),Re.material(e,function(n){let i=y(n.extensions,y.EMPTY_OBJECT),o=i.KHR_materials_common;if(l(o)){let c=o.technique,u=l(o.values)?o.values:{};o.values=u,u.ambient=l(u.ambient)?u.ambient:[0,0,0,1],u.emission=l(u.emission)?u.emission:[0,0,0,1],u.transparency=y(u.transparency,1),c!=="CONSTANT"&&(u.diffuse=l(u.diffuse)?u.diffuse:[0,0,0,1],c!=="LAMBERT"&&(u.specular=l(u.specular)?u.specular:[0,0,0,1],u.shininess=y(u.shininess,0))),o.transparent=y(o.transparent,!1),o.doubleSided=y(o.doubleSided,!1);return}n.emissiveFactor=y(n.emissiveFactor,[0,0,0]),n.alphaMode=y(n.alphaMode,"OPAQUE"),n.doubleSided=y(n.doubleSided,!1),n.alphaMode==="MASK"&&(n.alphaCutoff=y(n.alphaCutoff,.5));let r=i.KHR_techniques_webgl;l(r)&&Re.materialValue(n,function(c){l(c.index)&&Q0(c)}),Q0(n.emissiveTexture),Q0(n.normalTexture),Q0(n.occlusionTexture);let s=n.pbrMetallicRoughness;l(s)&&(s.baseColorFactor=y(s.baseColorFactor,[1,1,1,1]),s.metallicFactor=y(s.metallicFactor,1),s.roughnessFactor=y(s.roughnessFactor,1),Q0(s.baseColorTexture),Q0(s.metallicRoughnessTexture));let a=i.KHR_materials_pbrSpecularGlossiness;l(a)&&(a.diffuseFactor=y(a.diffuseFactor,[1,1,1,1]),a.specularFactor=y(a.specularFactor,[1,1,1]),a.glossinessFactor=y(a.glossinessFactor,1),Q0(a.specularGlossinessTexture))}),Re.animation(e,function(n){Re.animationSampler(n,function(i){i.interpolation=y(i.interpolation,"LINEAR")})});let t=EBe(e);return Re.node(e,function(n,i){l(t[i])||l(n.translation)||l(n.rotation)||l(n.scale)?(n.translation=y(n.translation,[0,0,0]),n.rotation=y(n.rotation,[0,0,0,1]),n.scale=y(n.scale,[1,1,1])):n.matrix=y(n.matrix,[1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1])}),Re.sampler(e,function(n){n.wrapS=y(n.wrapS,te.REPEAT),n.wrapT=y(n.wrapT,te.REPEAT)}),l(e.scenes)&&!l(e.scene)&&(e.scene=0),e}function EBe(e){let t={};return Re.animation(e,function(n){Re.animationChannel(n,function(i){let o=i.target,r=o.node,s=o.path;(s==="translation"||s==="rotation"||s==="scale")&&(t[r]=!0)})}),t}function Q0(e){l(e)&&(e.texCoord=y(e.texCoord,0))}var sN=CBe;function SBe(e){return Re.shader(e,function(t){aN(t)}),Re.buffer(e,function(t){aN(t)}),Re.image(e,function(t){aN(t)}),aN(e),e}function aN(e){e.extras=l(e.extras)?e.extras:{},e.extras._pipeline=l(e.extras._pipeline)?e.extras._pipeline:{}}var J0=SBe;function vBe(e,t){let n=e.extensionsRequired;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),n.length===0&&delete e.extensionsRequired}}var cN=vBe;function wBe(e,t){let n=e.extensionsUsed;if(l(n)){let i=n.indexOf(t);i>=0&&n.splice(i,1),cN(e,t),n.length===0&&delete e.extensionsUsed}}var cA=wBe;var DBe=4;function IBe(e){if(Lh(e)!=="glTF")throw new ce("File is not valid binary glTF");let n=xie(e,0,5),i=n[1];if(i!==1&&i!==2)throw new ce("Binary glTF version is not 1 or 2");return i===1?PBe(e,n):RBe(e,n)}function xie(e,t,n){let i=new DataView(e.buffer),o=new Array(n);for(let r=0;r<n;++r)o[r]=i.getUint32(e.byteOffset+t+r*DBe,!0);return o}function PBe(e,t){let n=t[2],i=t[3];if(t[4]!==0)throw new ce("Binary glTF scene format is not JSON");let r=20,s=r+i,a=Ql(e,r,i),c=JSON.parse(a);J0(c);let u=e.subarray(s,n),f=c.buffers;if(l(f)&&Object.keys(f).length>0){let d=y(f.binary_glTF,f.KHR_binary_glTF);l(d)&&(d.extras._pipeline.source=u,delete d.uri)}return cA(c,"KHR_binary_glTF"),c}function RBe(e,t){let n=t[2],i=12,o,r;for(;i<n;){let s=xie(e,i,2),a=s[0],c=s[1];i+=8;let u=e.subarray(i,i+a);if(i+=a,c===1313821514){let f=Ql(u);o=JSON.parse(f),J0(o)}else c===5130562&&(r=u)}if(l(o)&&l(r)){let s=o.buffers;if(l(s)&&s.length>0){let a=s[0];a.extras._pipeline.source=r}}return o}var lN=IBe;function OBe(e){return Re.shader(e,function(t){uN(t)}),Re.buffer(e,function(t){uN(t)}),Re.image(e,function(t){uN(t)}),uN(e),e}function uN(e){l(e.extras)&&(l(e.extras._pipeline)&&delete e.extras._pipeline,Object.keys(e.extras).length===0&&delete e.extras)}var fN=OBe;function MBe(e,t){let n=e.extensionsUsed;l(n)||(n=[],e.extensionsUsed=n),Ns(n,t,!0)}var ud=MBe;function LBe(e){switch(e){case X.BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt8(n+s*o)};case X.UNSIGNED_BYTE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint8(n+s*o)};case X.SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt16(n+s*o,!0)};case X.UNSIGNED_SHORT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint16(n+s*o,!0)};case X.INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getInt32(n+s*o,!0)};case X.UNSIGNED_INT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getUint32(n+s*o,!0)};case X.FLOAT:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat32(n+s*o,!0)};case X.DOUBLE:return function(t,n,i,o,r){for(let s=0;s<i;++s)r[s]=t.getFloat64(n+s*o,!0)}}}var fg=LBe;function NBe(e,t){let n=e.bufferViews,i=e.buffers,o=t.bufferView,r=rf(t.type);if(!l(t.bufferView))return{min:new Array(r).fill(0),max:new Array(r).fill(0)};let s=new Array(r).fill(Number.POSITIVE_INFINITY),a=new Array(r).fill(Number.NEGATIVE_INFINITY),c=n[o],u=c.buffer,d=i[u].extras._pipeline.source,p=t.count,g=nu(e,t),m=t.byteOffset+c.byteOffset+d.byteOffset,x=t.componentType,b=X.getSizeInBytes(x),T=new DataView(d.buffer),A=new Array(r),C=fg(x);for(let S=0;S<p;S++){C(T,m,r,b,A);for(let v=0;v<r;v++){let D=A[v];s[v]=Math.min(s[v],D),a[v]=Math.max(a[v],D)}m+=g}return{min:s,max:a}}var lA=NBe;var FBe=[te.FUNC_ADD,te.FUNC_ADD],BBe=[te.ONE,te.ZERO,te.ONE,te.ZERO];function bie(e,t){let n=e.enable;return l(n)?n.indexOf(t)>-1:!1}var kBe=[te.ZERO,te.ONE,te.SRC_COLOR,te.ONE_MINUS_SRC_COLOR,te.SRC_ALPHA,te.ONE_MINUS_SRC_ALPHA,te.DST_ALPHA,te.ONE_MINUS_DST_ALPHA,te.DST_COLOR,te.ONE_MINUS_DST_COLOR];function VBe(e,t){if(!l(e))return t;for(let n=0;n<4;n++)if(kBe.indexOf(e[n])===-1)return t;return e}function UBe(e){let t={},n={},i=e.techniques;return l(i)&&(Re.technique(e,function(o,r){let s=o.states;if(l(s)){let a=n[r]={};if(bie(s,te.BLEND)){a.alphaMode="BLEND";let c=s.functions;l(c)&&(l(c.blendEquationSeparate)||l(c.blendFuncSeparate))&&(t[r]={blendEquation:y(c.blendEquationSeparate,FBe),blendFactors:VBe(c.blendFuncSeparate,BBe)})}bie(s,te.CULL_FACE)||(a.doubleSided=!0),delete o.states}}),Object.keys(t).length>0&&(l(e.extensions)||(e.extensions={}),ud(e,"KHR_blend")),Re.material(e,function(o){if(l(o.technique)){let r=n[o.technique];Re.objectLegacy(r,function(a,c){o[c]=a});let s=t[o.technique];l(s)&&(l(o.extensions)||(o.extensions={}),o.extensions.KHR_blend=s)}})),e}var dN=UBe;function zBe(e,t){let n=e.extensionsRequired;l(n)||(n=[],e.extensionsRequired=n),Ns(n,t,!0),ud(e,t)}var hN=zBe;function HBe(e){let t=e.techniques,n={},i={},o={};if(l(t)){let r={programs:[],shaders:[],techniques:[]},s=e.glExtensionsUsed;delete e.glExtensionsUsed,Re.technique(e,function(a,c){let u={name:a.name,program:void 0,attributes:{},uniforms:{}},f;if(Re.techniqueAttribute(a,function(d,p){f=a.parameters[d],u.attributes[p]={semantic:f.semantic}}),Re.techniqueUniform(a,function(d,p){f=a.parameters[d],u.uniforms[p]={count:f.count,node:f.node,type:f.type,semantic:f.semantic,value:f.value},l(n[c])||(n[c]={}),n[c][d]=p}),l(o[a.program]))u.program=o[a.program];else{let d=e.programs[a.program],p={name:d.name,fragmentShader:void 0,vertexShader:void 0,glExtensions:s},g=e.shaders[d.fragmentShader];p.fragmentShader=Ns(r.shaders,g,!0);let m=e.shaders[d.vertexShader];p.vertexShader=Ns(r.shaders,m,!0),u.program=Ns(r.programs,p),o[a.program]=u.program}i[c]=Ns(r.techniques,u)}),r.techniques.length>0&&(l(e.extensions)||(e.extensions={}),e.extensions.KHR_techniques_webgl=r,ud(e,"KHR_techniques_webgl"),hN(e,"KHR_techniques_webgl"))}return Re.material(e,function(r){if(l(r.technique)){let s={technique:i[r.technique]};Re.objectLegacy(r.values,function(a,c){l(s.values)||(s.values={});let u=n[r.technique][c];l(u)&&(s.values[u]=a)}),l(r.extensions)||(r.extensions={}),r.extensions.KHR_techniques_webgl=s}delete r.technique,delete r.values}),delete e.techniques,delete e.programs,delete e.shaders,e}var mN=HBe;function GBe(e,t){xo.typeOf.object("material",e),xo.defined("handler",t);let n=e.pbrMetallicRoughness;if(l(n)){if(l(n.baseColorTexture)){let r=n.baseColorTexture,s=t(r.index,r);if(l(s))return s}if(l(n.metallicRoughnessTexture)){let r=n.metallicRoughnessTexture,s=t(r.index,r);if(l(s))return s}}let{extensions:i}=e;if(l(i)){let r=i.KHR_materials_pbrSpecularGlossiness;if(l(r)){if(l(r.diffuseTexture)){let c=r.diffuseTexture,u=t(c.index,c);if(l(u))return u}if(l(r.specularGlossinessTexture)){let c=r.specularGlossinessTexture,u=t(c.index,c);if(l(u))return u}}let s=i.KHR_materials_specular;if(l(s)){let{specularTexture:c,specularColorTexture:u}=s;if(l(c)){let f=t(c.index,c);if(l(f))return f}if(l(u)){let f=t(u.index,u);if(l(f))return f}}let a=i.KHR_materials_common;if(l(a)&&l(a.values)){let{diffuse:c,ambient:u,emission:f,specular:d}=a.values;if(l(c)&&l(c.index)){let p=t(c.index,c);if(l(p))return p}if(l(u)&&l(u.index)){let p=t(u.index,u);if(l(p))return p}if(l(f)&&l(f.index)){let p=t(f.index,f);if(l(p))return p}if(l(d)&&l(d.index)){let p=t(d.index,d);if(l(p))return p}}}let o=Re.materialValue(e,function(r){if(l(r.index)){let s=t(r.index,r);if(l(s))return s}});if(l(o))return o;if(l(e.emissiveTexture)){let r=e.emissiveTexture,s=t(r.index,r);if(l(s))return s}if(l(e.normalTexture)){let r=e.normalTexture,s=t(r.index,r);if(l(s))return s}if(l(e.occlusionTexture)){let r=e.occlusionTexture,s=t(r.index,r);if(l(s))return s}}var Wv=GBe;var Tie=["mesh","node","material","accessor","bufferView","buffer","texture","sampler","image"];function WBe(e,t){return t=y(t,Tie),Tie.forEach(function(n){t.indexOf(n)>-1&&qBe(e,n)}),e}var jBe={accessor:"accessors",buffer:"buffers",bufferView:"bufferViews",image:"images",node:"nodes",material:"materials",mesh:"meshes",sampler:"samplers",texture:"textures"};function qBe(e,t){let n=jBe[t],i=e[n];if(l(i)){let o=0,r=Bh[t](e),s=i.length;for(let a=0;a<s;++a)r[a]||(Fh[t](e,a-o),o++)}}function Fh(){}Fh.accessor=function(e,t){e.accessors.splice(t,1),Re.mesh(e,function(i){Re.meshPrimitive(i,function(o){Re.meshPrimitiveAttribute(o,function(a,c){a>t&&o.attributes[c]--}),Re.meshPrimitiveTarget(o,function(a){Re.meshPrimitiveTargetAttribute(a,function(c,u){c>t&&a[u]--})});let r=o.indices;l(r)&&r>t&&o.indices--;let s=o.extensions;l(s)&&l(s.CESIUM_primitive_outline)&&s.CESIUM_primitive_outline.indices>t&&--s.CESIUM_primitive_outline.indices})}),Re.skin(e,function(i){l(i.inverseBindMatrices)&&i.inverseBindMatrices>t&&i.inverseBindMatrices--}),Re.animation(e,function(i){Re.animationSampler(i,function(o){l(o.input)&&o.input>t&&o.input--,l(o.output)&&o.output>t&&o.output--})})};Fh.buffer=function(e,t){e.buffers.splice(t,1),Re.bufferView(e,function(i){l(i.buffer)&&i.buffer>t&&i.buffer--,l(i.extensions)&&l(i.extensions.EXT_meshopt_compression)&&i.extensions.EXT_meshopt_compression.buffer--})};Fh.bufferView=function(e,t){if(e.bufferViews.splice(t,1),Re.accessor(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Re.shader(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),Re.image(e,function(i){l(i.bufferView)&&i.bufferView>t&&i.bufferView--}),hr(e,"KHR_draco_mesh_compression")&&Re.mesh(e,function(i){Re.meshPrimitive(i,function(o){l(o.extensions)&&l(o.extensions.KHR_draco_mesh_compression)&&o.extensions.KHR_draco_mesh_compression.bufferView>t&&o.extensions.KHR_draco_mesh_compression.bufferView--})}),hr(e,"EXT_feature_metadata")){let o=e.extensions.EXT_feature_metadata.featureTables;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.bufferView)&&u.bufferView>t&&u.bufferView--,l(u.arrayOffsetBufferView)&&u.arrayOffsetBufferView>t&&u.arrayOffsetBufferView--,l(u.stringOffsetBufferView)&&u.stringOffsetBufferView>t&&u.stringOffsetBufferView--}}}}if(hr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTables;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];l(f.values)&&f.values>t&&f.values--,l(f.arrayOffsets)&&f.arrayOffsets>t&&f.arrayOffsets--,l(f.stringOffsets)&&f.stringOffsets>t&&f.stringOffsets--}}}}};Fh.image=function(e,t){e.images.splice(t,1),Re.texture(e,function(i){l(i.source)&&i.source>t&&--i.source;let o=i.extensions;l(o)&&l(o.EXT_texture_webp)&&o.EXT_texture_webp.source>t?--i.extensions.EXT_texture_webp.source:l(o)&&l(o.KHR_texture_basisu)&&o.KHR_texture_basisu.source>t&&--i.extensions.KHR_texture_basisu.source})};Fh.mesh=function(e,t){e.meshes.splice(t,1),Re.node(e,function(i){l(i.mesh)&&(i.mesh>t?i.mesh--:i.mesh===t&&delete i.mesh)})};Fh.node=function(e,t){e.nodes.splice(t,1),Re.skin(e,function(i){l(i.skeleton)&&i.skeleton>t&&i.skeleton--,i.joints=i.joints.map(function(o){return o>t?o-1:o})}),Re.animation(e,function(i){Re.animationChannel(i,function(o){l(o.target)&&l(o.target.node)&&o.target.node>t&&o.target.node--})}),Re.technique(e,function(i){Re.techniqueUniform(i,function(o){l(o.node)&&o.node>t&&o.node--})}),Re.node(e,function(i){l(i.children)&&(i.children=i.children.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o}))}),Re.scene(e,function(i){i.nodes=i.nodes.filter(function(o){return o!==t}).map(function(o){return o>t?o-1:o})})};Fh.material=function(e,t){e.materials.splice(t,1),Re.mesh(e,function(i){Re.meshPrimitive(i,function(o){l(o.material)&&o.material>t&&o.material--})})};Fh.sampler=function(e,t){e.samplers.splice(t,1),Re.texture(e,function(i){l(i.sampler)&&i.sampler>t&&--i.sampler})};Fh.texture=function(e,t){if(e.textures.splice(t,1),Re.material(e,function(i){Wv(i,function(o,r){r.index>t&&--r.index})}),hr(e,"EXT_feature_metadata")){Re.mesh(e,function(r){Re.meshPrimitive(r,function(s){let a=s.extensions;if(l(a)&&l(a.EXT_feature_metadata)){let u=a.EXT_feature_metadata.featureIdTextures;if(l(u)){let f=u.length;for(let d=0;d<f;++d){let g=u[d].featureIds.texture;g.index>t&&--g.index}}}})});let o=e.extensions.EXT_feature_metadata.featureTextures;for(let r in o)if(o.hasOwnProperty(r)){let a=o[r].properties;if(l(a)){for(let c in a)if(a.hasOwnProperty(c)){let f=a[c].texture;f.index>t&&--f.index}}}}if(hr(e,"EXT_mesh_features")&&Re.mesh(e,function(i){Re.meshPrimitive(i,function(o){let r=o.extensions;if(l(r)&&l(r.EXT_mesh_features)){let a=r.EXT_mesh_features.featureIds;if(l(a)){let c=a.length;for(let u=0;u<c;++u){let f=a[u];l(f.texture)&&f.texture.index>t&&--f.texture.index}}}})}),hr(e,"EXT_structural_metadata")){let o=e.extensions.EXT_structural_metadata.propertyTextures;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let c=o[s].properties;for(let u in c)if(c.hasOwnProperty(u)){let f=c[u];f.index>t&&--f.index}}}}};function Bh(){}Bh.accessor=function(e){let t={};return Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){Re.meshPrimitiveAttribute(i,function(r){t[r]=!0}),Re.meshPrimitiveTarget(i,function(r){Re.meshPrimitiveTargetAttribute(r,function(s){t[s]=!0})});let o=i.indices;l(o)&&(t[o]=!0)})}),Re.skin(e,function(n){l(n.inverseBindMatrices)&&(t[n.inverseBindMatrices]=!0)}),Re.animation(e,function(n){Re.animationSampler(n,function(i){l(i.input)&&(t[i.input]=!0),l(i.output)&&(t[i.output]=!0)})}),hr(e,"EXT_mesh_gpu_instancing")&&Re.node(e,function(n){l(n.extensions)&&l(n.extensions.EXT_mesh_gpu_instancing)&&Object.keys(n.extensions.EXT_mesh_gpu_instancing.attributes).forEach(function(i){let o=n.extensions.EXT_mesh_gpu_instancing.attributes[i];t[o]=!0})}),hr(e,"CESIUM_primitive_outline")&&Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.CESIUM_primitive_outline)){let s=o.CESIUM_primitive_outline.indices;l(s)&&(t[s]=!0)}})}),t};Bh.buffer=function(e){let t={};return Re.bufferView(e,function(n){l(n.buffer)&&(t[n.buffer]=!0),l(n.extensions)&&l(n.extensions.EXT_meshopt_compression)&&(t[n.extensions.EXT_meshopt_compression.buffer]=!0)}),t};Bh.bufferView=function(e){let t={};if(Re.accessor(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Re.shader(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),Re.image(e,function(n){l(n.bufferView)&&(t[n.bufferView]=!0)}),hr(e,"KHR_draco_mesh_compression")&&Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){l(i.extensions)&&l(i.extensions.KHR_draco_mesh_compression)&&(t[i.extensions.KHR_draco_mesh_compression.bufferView]=!0)})}),hr(e,"EXT_feature_metadata")){let i=e.extensions.EXT_feature_metadata.featureTables;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let c=s[a];l(c.bufferView)&&(t[c.bufferView]=!0),l(c.arrayOffsetBufferView)&&(t[c.arrayOffsetBufferView]=!0),l(c.stringOffsetBufferView)&&(t[c.stringOffsetBufferView]=!0)}}}}if(hr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTables;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];l(u.values)&&(t[u.values]=!0),l(u.arrayOffsets)&&(t[u.arrayOffsets]=!0),l(u.stringOffsets)&&(t[u.stringOffsets]=!0)}}}}return t};Bh.image=function(e){let t={};return Re.texture(e,function(n){l(n.source)&&(t[n.source]=!0),l(n.extensions)&&l(n.extensions.EXT_texture_webp)?t[n.extensions.EXT_texture_webp.source]=!0:l(n.extensions)&&l(n.extensions.KHR_texture_basisu)&&(t[n.extensions.KHR_texture_basisu.source]=!0)}),t};Bh.mesh=function(e){let t={};return Re.node(e,function(n){if(l(n.mesh&&l(e.meshes))){let i=e.meshes[n.mesh];l(i)&&l(i.primitives)&&i.primitives.length>0&&(t[n.mesh]=!0)}}),t};function Aie(e,t,n){let i=e.nodes[t];return l(i.mesh)||l(i.camera)||l(i.skin)||l(i.weights)||l(i.extras)||l(i.extensions)&&Object.keys(i.extensions).length!==0||l(n[t])?!1:!l(i.children)||i.children.filter(function(o){return!Aie(e,o,n)}).length===0}Bh.node=function(e){let t={};return Re.skin(e,function(n){l(n.skeleton)&&(t[n.skeleton]=!0),Re.skinJoint(n,function(i){t[i]=!0})}),Re.animation(e,function(n){Re.animationChannel(n,function(i){l(i.target)&&l(i.target.node)&&(t[i.target.node]=!0)})}),Re.technique(e,function(n){Re.techniqueUniform(n,function(i){l(i.node)&&(t[i.node]=!0)})}),Re.node(e,function(n,i){Aie(e,i,t)||(t[i]=!0)}),t};Bh.material=function(e){let t={};return Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){l(i.material)&&(t[i.material]=!0)})}),t};Bh.texture=function(e){let t={};if(Re.material(e,function(n){Wv(n,function(i){t[i]=!0})}),hr(e,"EXT_feature_metadata")){Re.mesh(e,function(o){Re.meshPrimitive(o,function(r){let s=r.extensions;if(l(s)&&l(s.EXT_feature_metadata)){let c=s.EXT_feature_metadata.featureIdTextures;if(l(c)){let u=c.length;for(let f=0;f<u;++f){let p=c[f].featureIds.texture;t[p.index]=!0}}}})});let i=e.extensions.EXT_feature_metadata.featureTextures;for(let o in i)if(i.hasOwnProperty(o)){let s=i[o].properties;if(l(s)){for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].texture;t[u.index]=!0}}}}if(hr(e,"EXT_mesh_features")&&Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){let o=i.extensions;if(l(o)&&l(o.EXT_mesh_features)){let s=o.EXT_mesh_features.featureIds;if(l(s)){let a=s.length;for(let c=0;c<a;++c){let u=s[c];l(u.texture)&&(t[u.texture.index]=!0)}}}})}),hr(e,"EXT_structural_metadata")){let i=e.extensions.EXT_structural_metadata.propertyTextures;if(l(i)){let o=i.length;for(let r=0;r<o;++r){let a=i[r].properties;for(let c in a)if(a.hasOwnProperty(c)){let u=a[c];t[u.index]=!0}}}}return t};Bh.sampler=function(e){let t={};return Re.texture(e,function(n){l(n.sampler)&&(t[n.sampler]=!0)}),t};var pN=WBe;function YBe(e,t){let n={byteLength:t.length,extras:{_pipeline:{source:t}}},o={buffer:Ns(e.buffers,n),byteOffset:0,byteLength:t.length};return Ns(e.bufferViews,o)}var _N=YBe;function XBe(e,t){let n=nu(e,t),i=X.getSizeInBytes(t.componentType),o=rf(t.type),r=t.count,s=new Array(o*r);if(!l(t.bufferView))return s.fill(0);let a=e.bufferViews[t.bufferView],c=e.buffers[a.buffer].extras._pipeline.source,u=t.byteOffset+a.byteOffset+c.byteOffset,f=new DataView(c.buffer),d=new Array(o),p=fg(t.componentType);for(let g=0;g<r;++g){p(f,u,o,i,d);for(let m=0;m<o;++m)s[g*o+m]=d[m];u+=n}return s}var gN=XBe;function KBe(e){let t;return Re.accessorWithSemantic(e,"JOINTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?yN(e,i,X.UNSIGNED_BYTE):t!==te.UNSIGNED_BYTE&&t!==te.UNSIGNED_SHORT&&yN(e,i,X.UNSIGNED_SHORT)}),Re.accessorWithSemantic(e,"WEIGHTS_0",function(n){let i=e.accessors[n];t=i.componentType,t===te.BYTE?yN(e,i,X.UNSIGNED_BYTE):t===te.SHORT&&yN(e,i,X.UNSIGNED_SHORT)}),e}function yN(e,t,n){let i=X.createTypedArray(n,gN(e,t)),o=new Uint8Array(i.buffer);t.bufferView=_N(e,o),t.componentType=n,t.byteOffset=0}var xN=KBe;function ZBe(e,t){return cA(e,t),t==="CESIUM_RTC"&&$Be(e),S9(e,t)}function $Be(e){Re.technique(e,function(t){Re.techniqueUniform(t,function(n){n.semantic==="CESIUM_RTC_MODELVIEW"&&(n.semantic="MODELVIEW")})})}function S9(e,t){if(Array.isArray(e)){let n=e.length;for(let i=0;i<n;++i)S9(e[i],t)}else if(e!==null&&typeof e=="object"&&e.constructor===Object){let n=e.extensions,i;l(n)&&(i=n[t],l(i)&&(delete n[t],Object.keys(n).length===0&&delete e.extensions));for(let o in e)Object.prototype.hasOwnProperty.call(e,o)&&S9(e[o],t);return i}}var uA=ZBe;var bN={.8:i3e,"1.0":E3e,"2.0":void 0};function QBe(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.targetVersion,i=e.version;e.asset=y(e.asset,{version:"1.0"}),e.asset.version=y(e.asset.version,"1.0"),i=y(i,e.asset.version).toString(),Object.prototype.hasOwnProperty.call(bN,i)||(l(i)&&(i=i.substring(0,3)),Object.prototype.hasOwnProperty.call(bN,i)||(i="1.0"));let o=bN[i];for(;l(o)&&i!==n;)o(e,t),i=e.asset.version,o=bN[i];return t.keepLegacyExtensions||(w3e(e,t),D3e(e)),e}function Sie(e){let t=e.materials;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.instanceTechnique;l(o)&&(i.technique=o.technique,i.values=o.values,delete i.instanceTechnique)}}function JBe(e){let t=e.meshes;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let o=t[n].primitives;if(l(o)){let r=o.length;for(let s=0;s<r;++s){let a=o[s],c=y(a.primitive,te.TRIANGLES);a.mode=y(a.mode,c),delete a.primitive}}}}function e3e(e){let t=e.nodes,n=new h,i=new Me;for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o];if(l(r.rotation)){let a=r.rotation;h.fromArray(a,0,n),Me.fromAxisAngle(n,a[3],i),r.rotation=[i.x,i.y,i.z,i.w]}let s=r.instanceSkin;l(s)&&(r.skeletons=s.skeletons,r.skin=s.skin,r.meshes=s.meshes,delete r.instanceSkin)}}function t3e(e){let t=e.animations,n=e.accessors,i=e.bufferViews,o=e.buffers,r={},s=new h,a=new Me;for(let c in t)if(Object.prototype.hasOwnProperty.call(t,c)){let u=t[c],f=u.channels,d=u.parameters,p=u.samplers;if(l(f)){let g=f.length;for(let m=0;m<g;++m){let x=f[m];if(x.target.path==="rotation"){let b=d[p[x.sampler].output];if(l(r[b]))continue;r[b]=!0;let T=n[b],A=i[T.bufferView],S=o[A.buffer].extras._pipeline.source,v=S.byteOffset+A.byteOffset+T.byteOffset,D=T.componentType,O=T.count,R=rf(T.type),M=T.count*R,L=X.createArrayBufferView(D,S.buffer,v,M);for(let _=0;_<O;_++){let E=_*R;h.unpack(L,E,s);let w=L[E+3];Me.fromAxisAngle(s,w,a),Me.pack(a,L,E)}}}}}}function n3e(e){let t=e.techniques;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.passes;if(l(o)){let r=y(i.pass,"defaultPass");if(Object.prototype.hasOwnProperty.call(o,r)){let s=o[r],a=s.instanceProgram;i.attributes=y(i.attributes,a.attributes),i.program=y(i.program,a.program),i.uniforms=y(i.uniforms,a.uniforms),i.states=y(i.states,s.states)}delete i.passes,delete i.pass}}}function i3e(e){l(e.asset)||(e.asset={});let t=e.asset;if(t.version="1.0",typeof t.profile=="string"){let n=t.profile.split(" ");t.profile={api:n[0],version:n[1]}}else t.profile={};if(l(e.version)&&delete e.version,Sie(e),JBe(e),e3e(e),t3e(e),n3e(e),l(e.allExtensions)&&(e.extensionsUsed=e.allExtensions,delete e.allExtensions),l(e.lights)){let n=y(e.extensions,{});e.extensions=n;let i=y(n.KHR_materials_common,{});n.KHR_materials_common=i,i.lights=e.lights,delete e.lights,ud(e,"KHR_materials_common")}}function o3e(e){let t=e.animations;for(let n in t)if(Object.prototype.hasOwnProperty.call(t,n)){let i=t[n],o=i.parameters;if(l(o)){let r=i.samplers;for(let s in r)if(Object.prototype.hasOwnProperty.call(r,s)){let a=r[s];a.input=o[a.input],a.output=o[a.output]}delete i.parameters}}}function Cie(e,t){let n=[];for(let i in e)if(Object.prototype.hasOwnProperty.call(e,i)){let o=e[i];t[i]=n.length,n.push(o),l(o.name)||(o.name=i)}return n}function r3e(e){let t,n={accessors:{},animations:{},buffers:{},bufferViews:{},cameras:{},images:{},materials:{},meshes:{},nodes:{},programs:{},samplers:{},scenes:{},shaders:{},skins:{},textures:{},techniques:{}},i,o={},r=e.nodes;for(let s in r)Object.prototype.hasOwnProperty.call(r,s)&&(i=r[s].jointName,l(i)&&(o[i]=s));for(let s in e)if(Object.prototype.hasOwnProperty.call(e,s)&&l(n[s])){let a={},c=e[s];e[s]=Cie(c,a),n[s]=a}for(i in o)Object.prototype.hasOwnProperty.call(o,i)&&(o[i]=n.nodes[o[i]]);l(e.scene)&&(e.scene=n.scenes[e.scene]),Re.bufferView(e,function(s){l(s.buffer)&&(s.buffer=n.buffers[s.buffer])}),Re.accessor(e,function(s){l(s.bufferView)&&(s.bufferView=n.bufferViews[s.bufferView])}),Re.shader(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Re.program(e,function(s){l(s.vertexShader)&&(s.vertexShader=n.shaders[s.vertexShader]),l(s.fragmentShader)&&(s.fragmentShader=n.shaders[s.fragmentShader])}),Re.technique(e,function(s){l(s.program)&&(s.program=n.programs[s.program]),Re.techniqueParameter(s,function(a){l(a.node)&&(a.node=n.nodes[a.node]);let c=a.value;typeof c=="string"&&(a.value={index:n.textures[c]})})}),Re.mesh(e,function(s){Re.meshPrimitive(s,function(a){l(a.indices)&&(a.indices=n.accessors[a.indices]),Re.meshPrimitiveAttribute(a,function(c,u){a.attributes[u]=n.accessors[c]}),l(a.material)&&(a.material=n.materials[a.material])})}),Re.node(e,function(s){let a=s.children;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}if(l(s.meshes)){let c=s.meshes,u=c.length;if(u>0)for(s.mesh=n.meshes[c[0]],t=1;t<u;++t){let f={mesh:n.meshes[c[t]]},d=Ns(e.nodes,f);l(a)||(a=[],s.children=a),a.push(d)}delete s.meshes}if(l(s.camera)&&(s.camera=n.cameras[s.camera]),l(s.skin)&&(s.skin=n.skins[s.skin]),l(s.skeletons)){let c=s.skeletons;if(c.length>0&&l(s.skin)){let f=e.skins[s.skin];f.skeleton=n.nodes[c[0]]}delete s.skeletons}l(s.jointName)&&delete s.jointName}),Re.skin(e,function(s){l(s.inverseBindMatrices)&&(s.inverseBindMatrices=n.accessors[s.inverseBindMatrices]);let a=s.jointNames;if(l(a)){let c=[],u=a.length;for(t=0;t<u;++t)c[t]=o[a[t]];s.joints=c,delete s.jointNames}}),Re.scene(e,function(s){let a=s.nodes;if(l(a)){let c=a.length;for(t=0;t<c;++t)a[t]=n.nodes[a[t]]}}),Re.animation(e,function(s){let a={};s.samplers=Cie(s.samplers,a),Re.animationSampler(s,function(c){c.input=n.accessors[c.input],c.output=n.accessors[c.output]}),Re.animationChannel(s,function(c){c.sampler=a[c.sampler];let u=c.target;l(u)&&(u.node=n.nodes[u.id],delete u.id)})}),Re.material(e,function(s){l(s.technique)&&(s.technique=n.techniques[s.technique]),Re.materialValue(s,function(c,u){typeof c=="string"&&(s.values[u]={index:n.textures[c]})});let a=s.extensions;if(l(a)){let c=a.KHR_materials_common;l(c)&&l(c.values)&&Re.materialValue(c,function(u,f){typeof u=="string"&&(c.values[f]={index:n.textures[u]})})}}),Re.image(e,function(s){let a=s.extensions;if(l(a)){let c=a.KHR_binary_glTF;l(c)&&(s.bufferView=n.bufferViews[c.bufferView],s.mimeType=c.mimeType,delete a.KHR_binary_glTF),Object.keys(a).length===0&&delete s.extensions}}),Re.texture(e,function(s){l(s.sampler)&&(s.sampler=n.samplers[s.sampler]),l(s.source)&&(s.source=n.images[s.source])})}function s3e(e){Re.animation(e,function(t){Re.animationSampler(t,function(n){delete n.name})})}function a3e(e){for(let t in e)if(Object.prototype.hasOwnProperty.call(e,t)){let n=e[t];Array.isArray(n)&&n.length===0&&delete e[t]}Re.node(e,function(t){l(t.children)&&t.children.length===0&&delete t.children})}function c3e(e){let t=e.asset;delete t.profile,delete t.premultipliedAlpha}var l3e={CESIUM_RTC:!0,KHR_materials_common:!0,WEB3D_quantized_attributes:!0};function u3e(e){let t=e.extensionsUsed;if(e.extensionsRequired=y(e.extensionsRequired,[]),l(t)){let n=t.length;for(let i=0;i<n;++i){let o=t[i];l(l3e[o])&&e.extensionsRequired.push(o)}}}function f3e(e){Re.buffer(e,function(t){delete t.type})}function d3e(e){Re.texture(e,function(t){delete t.format,delete t.internalFormat,delete t.target,delete t.type})}function h3e(e){Re.mesh(e,function(t){Re.meshPrimitive(t,function(n){Re.meshPrimitiveAttribute(n,function(i,o){o==="TEXCOORD"?n.attributes.TEXCOORD_0=i:o==="COLOR"&&(n.attributes.COLOR_0=i)}),delete n.attributes.TEXCOORD,delete n.attributes.COLOR})}),Re.technique(e,function(t){Re.techniqueParameter(t,function(n){let i=n.semantic;l(i)&&(i==="TEXCOORD"?n.semantic="TEXCOORD_0":i==="COLOR"&&(n.semantic="COLOR_0"))})})}var m3e={POSITION:!0,NORMAL:!0,TANGENT:!0},p3e={COLOR:"COLOR",JOINT:"JOINTS",JOINTS:"JOINTS",TEXCOORD:"TEXCOORD",WEIGHT:"WEIGHTS",WEIGHTS:"WEIGHTS"};function _3e(e){let t={};Re.mesh(e,function(n){Re.meshPrimitive(n,function(i){Re.meshPrimitiveAttribute(i,function(o,r){if(r.charAt(0)!=="_"){let s=r.search(/_[0-9]+/g),a=r,c="_0";s>=0&&(a=r.substring(0,s),c=r.substring(s));let u,f=p3e[a];l(f)?(u=f+c,t[r]=u):l(m3e[a])||(u=`_${r}`,t[r]=u)}});for(let o in t)if(Object.prototype.hasOwnProperty.call(t,o)){let r=t[o],s=i.attributes[o];l(s)&&(delete i.attributes[o],i.attributes[r]=s)}})}),Re.technique(e,function(n){Re.techniqueParameter(n,function(i){let o=t[i.semantic];l(o)&&(i.semantic=o)})})}function g3e(e){Re.camera(e,function(t){let n=t.perspective;if(l(n)){let i=n.aspectRatio;l(i)&&i===0&&delete n.aspectRatio;let o=n.yfov;l(o)&&o===0&&(n.yfov=1)}})}function w9(e,t){return l(t.byteStride)&&t.byteStride!==0?t.byteStride:nu(e,t)}function y3e(e){Re.buffer(e,function(t){l(t.byteLength)||(t.byteLength=t.extras._pipeline.source.length)}),Re.accessor(e,function(t){let n=t.bufferView;if(l(n)){let i=e.bufferViews[n],o=w9(e,t),r=t.byteOffset+t.count*o;i.byteLength=Math.max(y(i.byteLength,0),r)}})}function x3e(e){let t,n,i,o=e.bufferViews,r={};Re.accessorContainingVertexAttributeData(e,function(a){let c=e.accessors[a];l(c.bufferView)&&(r[c.bufferView]=!0)});let s={};Re.accessor(e,function(a){l(a.bufferView)&&(s[a.bufferView]=y(s[a.bufferView],[]),s[a.bufferView].push(a))});for(let a in s)if(Object.prototype.hasOwnProperty.call(s,a)){i=o[a];let c=s[a];c.sort(function(p,g){return p.byteOffset-g.byteOffset});let u=0,f=0,d=c.length;for(t=0;t<d;++t){let p=c[t],g=w9(e,p),m=p.byteOffset,x=p.count*g;delete p.byteStride;let b=t<d-1,T=b?w9(e,c[t+1]):void 0;if(g!==T){let A=Ge(i,!0);r[a]&&(A.byteStride=g),A.byteOffset+=u,A.byteLength=m+x-u;let C=Ns(o,A);for(n=f;n<=t;++n)p=c[n],p.bufferView=C,p.byteOffset=p.byteOffset-u;u=b?c[t+1].byteOffset:void 0,f=t+1}}}pN(e,["accessor","bufferView","buffer"])}function b3e(e){Re.accessorWithSemantic(e,"POSITION",function(t){let n=e.accessors[t];if(!l(n.min)||!l(n.max)){let i=lA(e,n);n.min=i.min,n.max=i.max}})}function vie(e){return(!l(e.children)||e.children.length===0)&&(!l(e.meshes)||e.meshes.length===0)&&!l(e.camera)&&!l(e.skin)&&!l(e.skeletons)&&!l(e.jointName)&&(!l(e.translation)||h.fromArray(e.translation).equals(h.ZERO))&&(!l(e.scale)||h.fromArray(e.scale).equals(new h(1,1,1)))&&(!l(e.rotation)||oe.fromArray(e.rotation).equals(new oe(0,0,0,1)))&&(!l(e.matrix)||F.fromColumnMajorArray(e.matrix).equals(F.IDENTITY))&&!l(e.extensions)&&!l(e.extras)}function wie(e,t){Re.scene(e,function(n){let i=n.nodes;if(l(i)){let o=i.length;for(let r=o;r>=0;--r)if(i[r]===t){i.splice(r,1);return}}}),Re.node(e,function(n,i){if(l(n.children)){let o=n.children.indexOf(t);o>-1&&(n.children.splice(o,1),vie(n)&&wie(e,i))}}),delete e.nodes[t]}function T3e(e){return Re.node(e,function(t,n){vie(t)&&wie(e,n)}),e}function A3e(e){Re.animation(e,function(t){Re.animationSampler(t,function(n){let i=e.accessors[n.input];if(!l(i.min)||!l(i.max)){let o=lA(e,i);i.min=o.min,i.max=o.max}})})}function C3e(e){Re.accessor(e,function(t){if(l(t.min)||l(t.max)){let n=lA(e,t);l(t.min)&&(t.min=n.min),l(t.max)&&(t.max=n.max)}})}function E3e(e){e.asset=y(e.asset,{}),e.asset.version="2.0",Sie(e),o3e(e),T3e(e),r3e(e),s3e(e),c3e(e),u3e(e),y3e(e),x3e(e),b3e(e),A3e(e),C3e(e),f3e(e),d3e(e),h3e(e),_3e(e),xN(e),g3e(e),dN(e),mN(e),a3e(e)}var S3e=["u_tex","u_diffuse","u_emission","u_diffuse_tex"],v3e=["u_diffuse","u_diffuse_mat"];function D9(e){e.pbrMetallicRoughness=l(e.pbrMetallicRoughness)?e.pbrMetallicRoughness:{},e.pbrMetallicRoughness.roughnessFactor=1,e.pbrMetallicRoughness.metallicFactor=0}function I9(e){return l(e.index)}function P9(e){return Array.isArray(e)&&e.length===4}function Die(e){let t=new Array(4);t[3]=e[3];for(let n=0;n<3;n++){let i=e[n];i<=.04045?t[n]=e[n]*.07739938080495357:t[n]=Math.pow((i+.055)*.9478672985781991,2.4)}return t}function w3e(e,t){t=y(t,y.EMPTY_OBJECT);let n=y(t.baseColorTextureNames,S3e),i=y(t.baseColorFactorNames,v3e);Re.material(e,function(o){Re.materialValue(o,function(r,s){n.indexOf(s)!==-1&&I9(r)?(D9(o),o.pbrMetallicRoughness.baseColorTexture=r):i.indexOf(s)!==-1&&P9(r)&&(D9(o),o.pbrMetallicRoughness.baseColorFactor=Die(r))})}),uA(e,"KHR_techniques_webgl"),uA(e,"KHR_blend")}function v9(e,t){l(t)&&(P9(t)?e.pbrMetallicRoughness.baseColorFactor=Die(t):I9(t)&&(e.pbrMetallicRoughness.baseColorTexture=t))}function Eie(e,t){l(t)&&(P9(t)?e.emissiveFactor=t.slice(0,3):I9(t)&&(e.emissiveTexture=t))}function D3e(e){Re.material(e,function(t){let n=y(t.extensions,y.EMPTY_OBJECT).KHR_materials_common;if(!l(n))return;let i=y(n.values,{}),o=i.ambient,r=i.diffuse,s=i.emission,a=i.transparency,c=n.doubleSided,u=n.transparent;D9(t),n.technique==="CONSTANT"?(ud(e,"KHR_materials_unlit"),t.extensions=l(t.extensions)?t.extensions:{},t.extensions.KHR_materials_unlit={},v9(t,s),v9(t,o)):(v9(t,r),Eie(t,o),Eie(t,s)),l(c)&&(t.doubleSided=c),l(a)&&(l(t.pbrMetallicRoughness.baseColorFactor)?t.pbrMetallicRoughness.baseColorFactor[3]*=a:t.pbrMetallicRoughness.baseColorFactor=[1,1,1,a]),l(u)&&(t.alphaMode=u?"BLEND":"OPAQUE")}),uA(e,"KHR_materials_common")}var TN=QBe;var Qn={POSITION:"POSITION",NORMAL:"NORMAL",TANGENT:"TANGENT",TEXCOORD:"TEXCOORD",COLOR:"COLOR",JOINTS:"JOINTS",WEIGHTS:"WEIGHTS",FEATURE_ID:"_FEATURE_ID"};function I3e(e){switch(e){case Qn.POSITION:return"positionMC";case Qn.NORMAL:return"normalMC";case Qn.TANGENT:return"tangentMC";case Qn.TEXCOORD:return"texCoord";case Qn.COLOR:return"color";case Qn.JOINTS:return"joints";case Qn.WEIGHTS:return"weights";case Qn.FEATURE_ID:return"featureId"}}Qn.hasSetIndex=function(e){switch(e){case Qn.POSITION:case Qn.NORMAL:case Qn.TANGENT:return!1;case Qn.TEXCOORD:case Qn.COLOR:case Qn.JOINTS:case Qn.WEIGHTS:case Qn.FEATURE_ID:return!0}};Qn.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"POSITION":return Qn.POSITION;case"NORMAL":return Qn.NORMAL;case"TANGENT":return Qn.TANGENT;case"TEXCOORD":return Qn.TEXCOORD;case"COLOR":return Qn.COLOR;case"JOINTS":return Qn.JOINTS;case"WEIGHTS":return Qn.WEIGHTS;case"_FEATURE_ID":return Qn.FEATURE_ID}};Qn.fromPntsSemantic=function(e){switch(e){case"POSITION":case"POSITION_QUANTIZED":return Qn.POSITION;case"RGBA":case"RGB":case"RGB565":return Qn.COLOR;case"NORMAL":case"NORMAL_OCT16P":return Qn.NORMAL;case"BATCH_ID":return Qn.FEATURE_ID}};Qn.getGlslType=function(e){switch(e){case Qn.POSITION:case Qn.NORMAL:case Qn.TANGENT:return"vec3";case Qn.TEXCOORD:return"vec2";case Qn.COLOR:return"vec4";case Qn.JOINTS:return"ivec4";case Qn.WEIGHTS:return"vec4";case Qn.FEATURE_ID:return"int"}};Qn.getVariableName=function(e,t){let n=I3e(e);return l(t)&&(n+=`_${t}`),n};var Ct=Object.freeze(Qn);function Ka(){}Ka.getError=function(e,t,n){let i=`Failed to load ${e}: ${t}`;l(n)&&l(n.message)&&(i+=` +${n.message}`);let o=new ce(i);return l(n)&&(o.stack=`Original stack: +${n.stack} +Handler stack: +${o.stack}`),o};Ka.getNodeTransform=function(e){return l(e.matrix)?e.matrix:F.fromTranslationQuaternionRotationScale(l(e.translation)?e.translation:h.ZERO,l(e.rotation)?e.rotation:Me.IDENTITY,l(e.scale)?e.scale:h.ONE)};Ka.getAttributeBySemantic=function(e,t,n){let i=e.attributes,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=l(n)?s.setIndex===n:!0;if(s.semantic===t&&a)return s}};Ka.getAttributeByName=function(e,t){let n=e.attributes,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.name===t)return r}};Ka.getFeatureIdsByLabel=function(e,t){for(let n=0;n<e.length;n++){let i=e[n];if(i.positionalLabel===t||i.label===t)return i}};Ka.hasQuantizedAttributes=function(e){if(!l(e))return!1;for(let t=0;t<e.length;t++){let n=e[t];if(l(n.quantization))return!0}return!1};Ka.getAttributeInfo=function(e){let t=e.semantic,n=e.setIndex,i,o=!1;l(t)?(i=Ct.getVariableName(t,n),o=!0):(i=e.name,i=i.replace(/^_/,""),i=i.toLowerCase());let r=/^color_\d+$/.test(i),s=e.type,a=on.getGlslType(s);r&&(a="vec4");let c=l(e.quantization),u;return c&&(u=r?"vec4":on.getGlslType(e.quantization.type)),{attribute:e,isQuantized:c,variableName:i,hasSemantic:o,glslType:a,quantizedGlslType:u}};var P3e=new h,R3e=new h;Ka.getPositionMinMax=function(e,t,n){let i=Ka.getAttributeBySemantic(e,"POSITION"),o=i.max,r=i.min;return l(n)&&l(t)&&(r=h.add(r,t,R3e),o=h.add(o,n,P3e)),{min:r,max:o}};Ka.getAxisCorrectionMatrix=function(e,t,n){return n=F.clone(F.IDENTITY,n),e===Mo.Y?n=F.clone(Mo.Y_UP_TO_Z_UP,n):e===Mo.X&&(n=F.clone(Mo.X_UP_TO_Z_UP,n)),t===Mo.Z&&(n=F.multiplyTransformation(n,Mo.Z_UP_TO_X_UP,n)),n};var O3e=new $;Ka.getCullFace=function(e,t){if(!Le.isTriangles(t))return yi.BACK;let n=F.getMatrix3(e,O3e);return $.determinant(n)<0?yi.FRONT:yi.BACK};Ka.sanitizeGlslIdentifier=function(e){let t=e.replaceAll(/[^A-Za-z0-9]+/g,"_");return t=t.replace(/^gl_/,""),/^\d/.test(t)&&(t=`_${t}`),t};Ka.supportedExtensions={AGI_articulations:!0,CESIUM_primitive_outline:!0,CESIUM_RTC:!0,EXT_feature_metadata:!0,EXT_instance_features:!0,EXT_mesh_features:!0,EXT_mesh_gpu_instancing:!0,EXT_meshopt_compression:!0,EXT_structural_metadata:!0,EXT_texture_webp:!0,KHR_blend:!0,KHR_draco_mesh_compression:!0,KHR_techniques_webgl:!0,KHR_materials_common:!0,KHR_materials_pbrSpecularGlossiness:!0,KHR_materials_specular:!0,KHR_materials_anisotropy:!0,KHR_materials_clearcoat:!0,KHR_materials_unlit:!0,KHR_mesh_quantization:!0,KHR_texture_basisu:!0,KHR_texture_transform:!0,WEB3D_quantized_attributes:!0};Ka.checkSupportedExtensions=function(e){let t=e.length;for(let n=0;n<t;n++){let i=e[n];if(!Ka.supportedExtensions[i])throw new ce(`Unsupported glTF Extension: ${i}`)}};var Zt=Ka;function dg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltfResource,i=e.baseResource,o=e.typedArray,r=e.gltfJson,s=e.cacheKey;this._resourceCache=t,this._gltfResource=n,this._baseResource=i,this._typedArray=o,this._gltfJson=r,this._cacheKey=s,this._gltf=void 0,this._bufferLoaders=[],this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(dg.prototype=Object.create(Yi.prototype),dg.prototype.constructor=dg);Object.defineProperties(dg.prototype,{cacheKey:{get:function(){return this._cacheKey}},gltf:{get:function(){return this._gltf}}});dg.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,l(this._gltfJson)?(this._promise=Iie(this,this._gltfJson),this._promise):l(this._typedArray)?(this._promise=Pie(this,this._typedArray),this._promise):(this._promise=M3e(this),this._promise))};async function M3e(e){let t;try{let n=await e._fetchGltf();if(e.isDestroyed())return;t=new Uint8Array(n)}catch(n){if(e.isDestroyed())return;R9(e,n)}return Pie(e,t)}function R9(e,t){e.unload(),e._state=_t.FAILED;let n=`Failed to load glTF: ${e._gltfResource.url}`;throw e.getError(n,t)}async function L3e(e,t){if(l(t.asset)&&t.asset.version==="2.0"&&!hr(t,"KHR_techniques_webgl")&&!hr(t,"KHR_materials_common"))return Promise.resolve();let n=[];Re.buffer(t,function(i){if(!l(i.extras._pipeline.source)&&l(i.uri)){let o=e._baseResource.getDerivedResource({url:i.uri}),s=e._resourceCache.getExternalBufferLoader({resource:o});e._bufferLoaders.push(s),n.push(s.load().then(function(){s.isDestroyed()||(i.extras._pipeline.source=s.typedArray)}))}}),await Promise.all(n),TN(t)}function N3e(e){let t=[];return Re.buffer(e,function(n){let i=n.uri;!l(n.extras._pipeline.source)&&l(i)&&P_(i)&&(delete n.uri,t.push(De.fetchArrayBuffer(i).then(function(o){n.extras._pipeline.source=new Uint8Array(o)})))}),Promise.all(t)}function F3e(e,t){let n=[];return Re.buffer(t,function(i,o){let r=i.extras._pipeline.source;if(l(r)&&!l(i.uri)){let a=e._resourceCache.getEmbeddedBufferLoader({parentResource:e._gltfResource,bufferId:o,typedArray:r});e._bufferLoaders.push(a),n.push(a.load())}}),Promise.all(n)}async function Iie(e,t){try{J0(t),await N3e(t),await L3e(e,t),sN(t),await F3e(e,t),fN(t);let n=t.asset.version;if(n!=="1.0"&&n!=="2.0")throw new ce(`Unsupported glTF version: ${n}`);let i=t.extensionsRequired;return l(i)&&Zt.checkSupportedExtensions(i),e._gltf=t,e._state=_t.READY,e}catch(n){if(e.isDestroyed())return;R9(e,n)}}async function Pie(e,t){let n;try{Lh(t)==="glTF"?n=lN(t):n=Lo(t)}catch(i){if(e.isDestroyed())return;R9(e,i)}return Iie(e,n)}dg.prototype.unload=function(){let e=this._bufferLoaders,t=e.length;for(let n=0;n<t;++n)e[n]=!e[n].isDestroyed()&&this._resourceCache.unload(e[n]);this._bufferLoaders.length=0,this._gltf=void 0};dg.prototype._fetchGltf=function(){return this._gltfResource.fetchArrayBuffer()};var jv=dg;var B3e={OPAQUE:"OPAQUE",MASK:"MASK",BLEND:"BLEND"},gp=Object.freeze(B3e);var To={};function k3e(){this.octEncoded=!1,this.octEncodedZXY=!1,this.normalizationRange=void 0,this.quantizedVolumeOffset=void 0,this.quantizedVolumeDimensions=void 0,this.quantizedVolumeStepSize=void 0,this.componentDatatype=void 0,this.type=void 0}function V3e(){this.name=void 0,this.semantic=void 0,this.setIndex=void 0,this.componentDatatype=void 0,this.type=void 0,this.normalized=!1,this.count=void 0,this.min=void 0,this.max=void 0,this.constant=void 0,this.quantization=void 0,this.typedArray=void 0,this.buffer=void 0,this.byteOffset=0,this.byteStride=void 0}function U3e(){this.indexDatatype=void 0,this.count=void 0,this.buffer=void 0,this.typedArray=void 0}function z3e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.setIndex=void 0,this.label=void 0,this.positionalLabel=void 0}function H3e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.offset=0,this.repeat=void 0,this.label=void 0,this.positionalLabel=void 0}function G3e(){this.featureCount=void 0,this.nullFeatureId=void 0,this.propertyTableId=void 0,this.textureReader=void 0,this.label=void 0,this.positionalLabel=void 0}function W3e(){this.attributes=[]}function j3e(){this.attributes=[],this.morphTargets=[],this.indices=void 0,this.material=void 0,this.primitiveType=void 0,this.featureIds=[],this.propertyTextureIds=[],this.propertyAttributeIds=[],this.outlineCoordinates=void 0}function q3e(){this.attributes=[],this.featureIds=[],this.transformInWorldSpace=!1}function Y3e(){this.index=void 0,this.joints=[],this.inverseBindMatrices=[]}function X3e(){this.name=void 0,this.index=void 0,this.children=[],this.primitives=[],this.instances=void 0,this.skin=void 0,this.matrix=void 0,this.translation=void 0,this.rotation=void 0,this.scale=void 0,this.morphWeights=[],this.articulationName=void 0}function K3e(){this.nodes=[]}var Z3e={TRANSLATION:"translation",ROTATION:"rotation",SCALE:"scale",WEIGHTS:"weights"};function $3e(){this.input=[],this.interpolation=void 0,this.output=[]}function Q3e(){this.node=void 0,this.path=void 0}function J3e(){this.sampler=void 0,this.target=void 0}function eke(){this.name=void 0,this.samplers=[],this.channels=[]}function tke(){this.name=void 0,this.type=void 0,this.minimumValue=void 0,this.maximumValue=void 0,this.initialValue=void 0}function nke(){this.name=void 0,this.stages=[]}function Rie(){this.credits=[]}function ike(){this.asset=new Rie,this.scene=void 0,this.nodes=[],this.skins=[],this.animations=[],this.articulations=[],this.structuralMetadata=void 0,this.upAxis=void 0,this.forwardAxis=void 0,this.transform=F.clone(F.IDENTITY),this.extensions={}}function oke(){this.texture=void 0,this.index=void 0,this.texCoord=0,this.transform=$.clone($.IDENTITY),this.scale=1,this.channels=void 0}function hg(){this.baseColorTexture=void 0,this.metallicRoughnessTexture=void 0,this.baseColorFactor=oe.clone(hg.DEFAULT_BASE_COLOR_FACTOR),this.metallicFactor=hg.DEFAULT_METALLIC_FACTOR,this.roughnessFactor=hg.DEFAULT_ROUGHNESS_FACTOR}hg.DEFAULT_BASE_COLOR_FACTOR=oe.ONE;hg.DEFAULT_METALLIC_FACTOR=1;hg.DEFAULT_ROUGHNESS_FACTOR=1;function ex(){this.diffuseTexture=void 0,this.specularGlossinessTexture=void 0,this.diffuseFactor=oe.clone(ex.DEFAULT_DIFFUSE_FACTOR),this.specularFactor=h.clone(ex.DEFAULT_SPECULAR_FACTOR),this.glossinessFactor=ex.DEFAULT_GLOSSINESS_FACTOR}ex.DEFAULT_DIFFUSE_FACTOR=oe.ONE;ex.DEFAULT_SPECULAR_FACTOR=h.ONE;ex.DEFAULT_GLOSSINESS_FACTOR=1;function qv(){this.specularFactor=qv.DEFAULT_SPECULAR_FACTOR,this.specularTexture=void 0,this.specularColorFactor=h.clone(qv.DEFAULT_SPECULAR_COLOR_FACTOR),this.specularColorTexture=void 0}qv.DEFAULT_SPECULAR_FACTOR=1;qv.DEFAULT_SPECULAR_COLOR_FACTOR=h.ONE;function Yv(){this.anisotropyStrength=Yv.DEFAULT_ANISOTROPY_STRENGTH,this.anisotropyRotation=Yv.DEFAULT_ANISOTROPY_ROTATION,this.anisotropyTexture=void 0}Yv.DEFAULT_ANISOTROPY_STRENGTH=0;Yv.DEFAULT_ANISOTROPY_ROTATION=0;function Xv(){this.clearcoatFactor=Xv.DEFAULT_CLEARCOAT_FACTOR,this.clearcoatTexture=void 0,this.clearcoatRoughnessFactor=Xv.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,this.clearcoatRoughnessTexture=void 0,this.clearcoatNormalTexture=void 0}Xv.DEFAULT_CLEARCOAT_FACTOR=0;Xv.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR=0;function O9(){this.metallicRoughness=new hg,this.specularGlossiness=void 0,this.specular=void 0,this.anisotropy=void 0,this.clearcoat=void 0,this.emissiveTexture=void 0,this.normalTexture=void 0,this.occlusionTexture=void 0,this.emissiveFactor=h.clone(O9.DEFAULT_EMISSIVE_FACTOR),this.alphaMode=gp.OPAQUE,this.alphaCutoff=.5,this.doubleSided=!1,this.unlit=!1}O9.DEFAULT_EMISSIVE_FACTOR=h.ZERO;To.Quantization=k3e;To.Attribute=V3e;To.Indices=U3e;To.FeatureIdAttribute=z3e;To.FeatureIdTexture=G3e;To.FeatureIdImplicitRange=H3e;To.MorphTarget=W3e;To.Primitive=j3e;To.Instances=q3e;To.Skin=Y3e;To.Node=X3e;To.Scene=K3e;To.AnimatedPropertyType=Object.freeze(Z3e);To.AnimationSampler=$3e;To.AnimationTarget=Q3e;To.AnimationChannel=J3e;To.Animation=eke;To.ArticulationStage=tke;To.Articulation=nke;To.Asset=Rie;To.Components=ike;To.TextureReader=oke;To.MetallicRoughness=hg;To.SpecularGlossiness=ex;To.Specular=qv;To.Anisotropy=Yv;To.Clearcoat=Xv;To.Material=O9;var xn=To;var AN={};AN.getImageIdFromTexture=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureId:n,supportedImageFormats:i}=e,o=t.textures[n],r=o.extensions;if(l(r)){if(i.webp&&l(r.EXT_texture_webp))return r.EXT_texture_webp.source;if(i.basis&&l(r.KHR_texture_basisu))return r.KHR_texture_basisu.source}return o.source};AN.createSampler=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,compressedTextureNoMipmap:i=!1}=e,o=En.REPEAT,r=En.REPEAT,s=$t.LINEAR,a=di.LINEAR,c=n.index,f=t.textures[c].sampler;if(l(f)){let d=t.samplers[f];o=y(d.wrapS,o),r=y(d.wrapT,r),s=y(d.minFilter,s),a=y(d.magFilter,a)}return i&&s!==$t.LINEAR&&s!==$t.NEAREST&&(s===$t.NEAREST_MIPMAP_NEAREST||s===$t.NEAREST_MIPMAP_LINEAR?s=$t.NEAREST:s=$t.LINEAR),new Qt({wrapS:o,wrapT:r,minificationFilter:s,magnificationFilter:a})};var rke=new U(1,1);AN.createModelTextureReader=function(e){e=y(e,y.EMPTY_OBJECT);let{textureInfo:t,channels:n,texture:i}=e,o=y(t.texCoord,0),r,s=t.extensions?.KHR_texture_transform;if(l(s)){o=y(s.texCoord,o);let c=l(s.offset)?U.unpack(s.offset):U.ZERO,u=y(s.rotation,0),f=l(s.scale)?U.unpack(s.scale):rke;u=-u,r=new $(Math.cos(u)*f.x,-Math.sin(u)*f.y,c.x,Math.sin(u)*f.x,Math.cos(u)*f.y,c.y,0,0,1)}let a=new xn.TextureReader;return a.index=t.index,a.texture=i,a.texCoord=o,a.scale=t.scale,a.transform=r,a.channels=n,a};var iu=AN;function ske(e){let t=document.createElement("canvas");return t.width=P.nextPowerOfTwo(e.width),t.height=P.nextPowerOfTwo(e.height),t.getContext("2d").drawImage(e,0,0,e.width,e.height,0,0,t.width,t.height),t}var tx=ske;function mg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.textureInfo,o=e.gltfResource,r=e.baseResource,s=e.supportedImageFormats,a=e.cacheKey,c=y(e.asynchronous,!0),u=i.index,f=iu.getImageIdFromTexture({gltf:n,textureId:u,supportedImageFormats:s});this._resourceCache=t,this._gltf=n,this._textureInfo=i,this._imageId=f,this._gltfResource=o,this._baseResource=r,this._cacheKey=a,this._asynchronous=c,this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(mg.prototype=Object.create(Yi.prototype),mg.prototype.constructor=mg);Object.defineProperties(mg.prototype,{cacheKey:{get:function(){return this._cacheKey}},texture:{get:function(){return this._texture}}});var ake=new M9;async function cke(e){let t=e._resourceCache;try{let n=t.getImageLoader({gltf:e._gltf,imageId:e._imageId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._imageLoader=n,await n.load(),e.isDestroyed()?void 0:(e._image=n.image,e._mipLevels=n.mipLevels,e._state=_t.LOADED,e)}catch(n){if(e.isDestroyed())return;throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load texture",n)}}mg.prototype.load=async function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,this._promise=cke(this),this._promise)};function M9(){this.gltf=void 0,this.textureInfo=void 0,this.image=void 0,this.context=void 0,this.texture=void 0}M9.prototype.set=function(e,t,n,i,o){this.gltf=e,this.textureInfo=t,this.image=n,this.mipLevels=i,this.context=o};M9.prototype.execute=function(){this.texture=Oie(this.gltf,this.textureInfo,this.image,this.mipLevels,this.context)};function Oie(e,t,n,i,o){let r=n.internalFormat,s=!1;it.isCompressedFormat(r)&&!l(i)&&(s=!0);let a=iu.createSampler({gltf:e,textureInfo:t,compressedTextureNoMipmap:s}),c=a.minificationFilter,u=a.wrapS,f=a.wrapT,d=c===$t.NEAREST_MIPMAP_NEAREST||c===$t.NEAREST_MIPMAP_LINEAR||c===$t.LINEAR_MIPMAP_NEAREST||c===$t.LINEAR_MIPMAP_LINEAR,p=!l(r)&&d,g=p||u===En.REPEAT||u===En.MIRRORED_REPEAT||f===En.REPEAT||f===En.MIRRORED_REPEAT,m=!P.isPowerOfTwo(n.width)||!P.isPowerOfTwo(n.height),x=g&&m,b;return l(r)?(!o.webgl2&&it.isCompressedFormat(r)&&m&&g&&console.warn("Compressed texture uses REPEAT or MIRRORED_REPEAT texture wrap mode and dimensions are not powers of two. The texture may be rendered incorrectly."),b=Ot.create({context:o,source:{arrayBufferView:n.bufferView,mipLevels:i},width:n.width,height:n.height,pixelFormat:n.internalFormat,sampler:a})):(x&&(n=tx(n)),b=Ot.create({context:o,source:n,sampler:a,flipY:!1,skipColorSpaceConversion:!0})),p&&b.generateMipmap(),b}mg.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.LOADED&&this._state!==_t.PROCESSING||l(this._texture)||!l(this._image))return!1;this._state=_t.PROCESSING;let t;if(this._asynchronous){let n=ake;if(n.set(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context),!e.jobScheduler.execute(n,Xa.TEXTURE))return;t=n.texture}else t=Oie(this._gltf,this._textureInfo,this._image,this._mipLevels,e.context);return this.unload(),this._texture=t,this._state=_t.READY,this._resourceCache.statistics.addTextureLoader(this),!0};mg.prototype.unload=function(){l(this._texture)&&this._texture.destroy(),l(this._imageLoader)&&!this._imageLoader.isDestroyed()&&this._resourceCache.unload(this._imageLoader),this._imageLoader=void 0,this._image=void 0,this._mipLevels=void 0,this._texture=void 0,this._gltf=void 0};var Kv=mg;function pg(e){e=y(e,y.EMPTY_OBJECT);let t=e.resourceCache,n=e.gltf,i=e.gltfResource,o=e.baseResource,r=e.bufferViewId,s=e.draco,a=e.attributeSemantic,c=e.accessorId,u=e.cacheKey,f=y(e.asynchronous,!0),d=y(e.loadBuffer,!1),p=y(e.loadTypedArray,!1);this._resourceCache=t,this._gltfResource=i,this._baseResource=o,this._gltf=n,this._bufferViewId=r,this._draco=s,this._attributeSemantic=a,this._accessorId=c,this._cacheKey=u,this._asynchronous=f,this._loadBuffer=d,this._loadTypedArray=p,this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._quantization=void 0,this._typedArray=void 0,this._buffer=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(pg.prototype=Object.create(Yi.prototype),pg.prototype.constructor=pg);Object.defineProperties(pg.prototype,{cacheKey:{get:function(){return this._cacheKey}},buffer:{get:function(){return this._buffer}},typedArray:{get:function(){return this._typedArray}},quantization:{get:function(){return this._quantization}}});function lke(e,t){return l(e)&&l(e.attributes)&&l(e.attributes[t])}pg.prototype.load=async function(){return l(this._promise)?this._promise:lke(this._draco,this._attributeSemantic)?(this._promise=fke(this),this._promise):(this._promise=hke(this),this._promise)};function uke(e,t,n,i){let r=(1<<e.quantizationBits)-1,s=1/r,a=new xn.Quantization;if(a.componentDatatype=t,a.octEncoded=e.octEncoded,a.octEncodedZXY=!0,a.type=i,a.octEncoded)a.type=on.VEC2,a.normalizationRange=r;else{let c=on.getMathType(i);if(c===Number){let u=e.range;a.quantizedVolumeOffset=e.minValues[0],a.quantizedVolumeDimensions=u,a.normalizationRange=r,a.quantizedVolumeStepSize=u*s}else{a.quantizedVolumeOffset=c.unpack(e.minValues),a.normalizationRange=c.unpack(new Array(n).fill(r));let u=new Array(n).fill(e.range);a.quantizedVolumeDimensions=c.unpack(u);let f=u.map(function(d){return d*s});a.quantizedVolumeStepSize=c.unpack(f)}}return a}async function fke(e){e._state=_t.LOADING;let t=e._resourceCache;try{let n=t.getDracoLoader({gltf:e._gltf,draco:e._draco,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._dracoLoader=n,await n.load(),e.isDestroyed()?void 0:(e._state=_t.LOADED,e)}catch{if(e.isDestroyed())return;L9(e)}}function dke(e){e._state=_t.PROCESSING;let n=e._dracoLoader.decodedData.vertexAttributes,i=e._attributeSemantic,o=n[i],r=e._accessorId,a=e._gltf.accessors[r].type,c=o.array,u=o.data.quantization;l(u)&&(e._quantization=uke(u,o.data.componentDatatype,o.data.componentsPerAttribute,a)),e._typedArray=new Uint8Array(c.buffer,c.byteOffset,c.byteLength)}async function hke(e){e._state=_t.LOADING;let t=e._resourceCache;try{let n=t.getBufferViewLoader({gltf:e._gltf,bufferViewId:e._bufferViewId,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoader=n,await n.load(),e.isDestroyed()?void 0:(e._typedArray=n.typedArray,e._state=_t.PROCESSING,e)}catch(n){if(e.isDestroyed())return;L9(e,n)}}function L9(e,t){throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load vertex buffer",t)}function N9(){this.typedArray=void 0,this.context=void 0,this.buffer=void 0}N9.prototype.set=function(e,t){this.typedArray=e,this.context=t};N9.prototype.execute=function(){this.buffer=Mie(this.typedArray,this.context)};function Mie(e,t){let n=yt.createVertexBuffer({typedArray:e,context:t,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}var mke=new N9;pg.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.LOADED&&this._state!==_t.PROCESSING)return!1;if(l(this._dracoLoader)){try{if(!this._dracoLoader.process(e))return!1}catch(i){L9(this,i)}dke(this)}let t,n=this._typedArray;if(this._loadBuffer&&this._asynchronous){let i=mke;if(i.set(n,e.context),!e.jobScheduler.execute(i,Xa.BUFFER))return!1;t=i.buffer}else this._loadBuffer&&(t=Mie(n,e.context));return this.unload(),this._buffer=t,this._typedArray=this._loadTypedArray?n:void 0,this._state=_t.READY,this._resourceCache.statistics.addGeometryLoader(this),!0};pg.prototype.unload=function(){l(this._buffer)&&this._buffer.destroy();let e=this._resourceCache;l(this._bufferViewLoader)&&!this._bufferViewLoader.isDestroyed()&&e.unload(this._bufferViewLoader),l(this._dracoLoader)&&e.unload(this._dracoLoader),this._bufferViewLoader=void 0,this._dracoLoader=void 0,this._typedArray=void 0,this._buffer=void 0,this._gltf=void 0};var Zv=pg;function $v(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=y(e.properties,{}),i={};for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r.semantic)&&(i[r.semantic]=r)}this._id=t,this._name=e.name,this._description=e.description,this._properties=n,this._propertiesBySemantic=i,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}$v.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.class,i={};for(let o in n.properties)if(n.properties.hasOwnProperty(o)){let r=Z0.fromJson({id:o,property:n.properties[o],enums:e.enums});i[o]=r}return new $v({id:t,name:n.name,description:n.description,properties:i,extras:n.extras,extensions:n.extensions})};Object.defineProperties($v.prototype,{properties:{get:function(){return this._properties}},propertiesBySemantic:{get:function(){return this._propertiesBySemantic}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});$v.BATCH_TABLE_CLASS_NAME="_batchTable";var kh=$v;function CN(e){e=y(e,y.EMPTY_OBJECT);let t=e.value,n=e.name;this._value=t,this._name=n,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}CN.fromJson=function(e){return new CN({value:e.value,name:e.name,description:e.description,extras:e.extras,extensions:e.extensions})};Object.defineProperties(CN.prototype,{value:{get:function(){return this._value}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var EN=CN;function SN(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.values,i={},o={},r=n.length;for(let a=0;a<r;++a){let c=n[a];i[c.value]=c.name,o[c.name]=c.value}let s=y(e.valueType,Wt.UINT16);this._values=n,this._namesByValue=i,this._valuesByName=o,this._valueType=s,this._id=t,this._name=e.name,this._description=e.description,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}SN.fromJson=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.enum,i=n.values.map(function(o){return EN.fromJson(o)});return new SN({id:t,values:i,valueType:Wt[n.valueType],name:n.name,description:n.description,extras:n.extras,extensions:n.extensions})};Object.defineProperties(SN.prototype,{values:{get:function(){return this._values}},namesByValue:{get:function(){return this._namesByValue}},valuesByName:{get:function(){return this._valuesByName}},valueType:{get:function(){return this._valueType}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var vN=SN;function wN(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.classes,{}),n=y(e.enums,{});this._classes=t,this._enums=n,this._id=e.id,this._name=e.name,this._description=e.description,this._version=e.version,this._extras=Ge(e.extras,!0),this._extensions=Ge(e.extensions,!0)}wN.fromJson=function(e){let t={};if(l(e.enums))for(let i in e.enums)e.enums.hasOwnProperty(i)&&(t[i]=vN.fromJson({id:i,enum:e.enums[i]}));let n={};if(l(e.classes))for(let i in e.classes)e.classes.hasOwnProperty(i)&&(n[i]=kh.fromJson({id:i,class:e.classes[i],enums:t}));return new wN({id:e.id,name:e.name,description:e.description,version:e.version,classes:n,enums:t,extras:e.extras,extensions:e.extensions})};Object.defineProperties(wN.prototype,{classes:{get:function(){return this._classes}},enums:{get:function(){return this._enums}},id:{get:function(){return this._id}},name:{get:function(){return this._name}},description:{get:function(){return this._description}},version:{get:function(){return this._version}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var sf=wN;function nx(e){e=y(e,y.EMPTY_OBJECT);let t=e.schema,n=e.resource,i=e.cacheKey;this._schema=l(t)?sf.fromJson(t):void 0,this._resource=n,this._cacheKey=i,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(nx.prototype=Object.create(Yi.prototype),nx.prototype.constructor=nx);Object.defineProperties(nx.prototype,{cacheKey:{get:function(){return this._cacheKey}},schema:{get:function(){return this._schema}}});nx.prototype.load=async function(){return l(this._promise)?this._promise:l(this._schema)?(this._promise=Promise.resolve(this),this._promise):(this._promise=pke(this),this._promise)};async function pke(e){let t=e._resource;e._state=_t.LOADING;try{let n=await t.fetchJson();return e.isDestroyed()?void 0:(e._schema=sf.fromJson(n),e._state=_t.READY,e)}catch(n){if(e.isDestroyed())return;e._state=_t.FAILED;let i=`Failed to load schema: ${t.url}`;throw e.getError(i,n)}}nx.prototype.unload=function(){this._schema=void 0};var Qv=nx;var fd={};function fA(e){return qm(e.url)}function DN(e){let{byteOffset:t,byteLength:n}=e;if(oi(e,"EXT_meshopt_compression")){let i=e.extensions.EXT_meshopt_compression;t=y(i.byteOffset,0),n=i.byteLength}return`${t}-${t+n}`}function _ke(e,t){let n=t.byteOffset+e.byteOffset,{componentType:i,type:o,count:r}=e;return`${n}-${i}-${o}-${r}`}function Lie(e,t){return`${fA(e)}-buffer-id-${t}`}function Jv(e,t,n,i){if(l(e.uri)){let o=i.getDerivedResource({url:e.uri});return fA(o)}return Lie(n,t)}function F9(e,t,n,i){let o=t.bufferView,r=e.bufferViews[o],s=r.buffer,a=e.buffers[s],c=Jv(a,s,n,i),u=DN(r);return`${c}-range-${u}`}function Nie(e,t,n,i){let o=e.images[t],r=o.bufferView,s=o.uri;if(l(s)){let p=i.getDerivedResource({url:s});return fA(p)}let a=e.bufferViews[r],c=a.buffer,u=e.buffers[c],f=Jv(u,c,n,i),d=DN(a);return`${f}-range-${d}`}function gke(e,t){let n=iu.createSampler({gltf:e,textureInfo:t});return`${n.wrapS}-${n.wrapT}-${n.minificationFilter}-${n.magnificationFilter}`}fd.getSchemaCacheKey=function(e){let{schema:t,resource:n}=e;return l(t)?`embedded-schema:${JSON.stringify(t)}`:`external-schema:${fA(n)}`};fd.getExternalBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e;return`external-buffer:${fA(t)}`};fd.getEmbeddedBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n}=e;return`embedded-buffer:${Lie(t,n)}`};fd.getGltfCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t}=e;return`gltf:${fA(t)}`};fd.getBufferViewCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=t.bufferViews[n],s=r.buffer,a=t.buffers[s];oi(r,"EXT_meshopt_compression")&&(s=r.extensions.EXT_meshopt_compression.buffer);let c=Jv(a,s,i,o),u=DN(r);return`buffer-view:${c}-range-${u}`};fd.getDracoCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e;return`draco:${F9(t,n,i,o)}`};fd.getVertexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:c=!1,loadBuffer:u=!1,loadTypedArray:f=!1}=e,d="";if(c&&(d+="-dequantize"),u&&(d+="-buffer",d+=`-context-${o.context.id}`),f&&(d+="-typed-array"),l(s))return`vertex-buffer:${F9(t,s,n,i)}-draco-${a}${d}`;let p=t.bufferViews[r],g=p.buffer,m=t.buffers[g],x=Jv(m,g,n,i),b=DN(p);return`vertex-buffer:${x}-range-${b}${d}`};fd.getIndexBufferCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:a=!1,loadTypedArray:c=!1}=e,u="";if(a&&(u+="-buffer",u+=`-context-${r.context.id}`),c&&(u+="-typed-array"),l(s))return`index-buffer:${F9(t,s,i,o)}-draco${u}`;let f=t.accessors[n],d=f.bufferView,p=t.bufferViews[d],g=p.buffer,m=t.buffers[g],x=Jv(m,g,i,o),b=_ke(f,p);return`index-buffer:${x}-accessor-${b}${u}`};fd.getImageCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e;return`image:${Nie(t,n,i,o)}`};fd.getTextureCacheKey=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}=e,a=n.index,c=iu.getImageIdFromTexture({gltf:t,textureId:a,supportedImageFormats:r}),u=Nie(t,c,i,o),f=gke(t,n);return`texture:${u}-sampler-${f}-context-${s.context.id}`};var ou=fd;function ew(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}}ew.prototype.clear=function(){this.geometryByteLength=0,this.texturesByteLength=0,this._geometrySizes={},this._textureSizes={}};ew.prototype.addGeometryLoader=function(e){let t=e.cacheKey;if(this._geometrySizes.hasOwnProperty(t))return;this._geometrySizes[t]=0;let n=e.buffer,i=e.typedArray,o=0;l(n)&&(o+=n.sizeInBytes),l(i)&&(o+=i.byteLength),this.geometryByteLength+=o,this._geometrySizes[t]=o};ew.prototype.addTextureLoader=function(e){let t=e.cacheKey;if(this._textureSizes.hasOwnProperty(t))return;this._textureSizes[t]=0;let n=e.texture.sizeInBytes;this.texturesByteLength+=e.texture.sizeInBytes,this._textureSizes[t]=n};ew.prototype.removeLoader=function(e){let t=e.cacheKey,n=this._geometrySizes[t];delete this._geometrySizes[t],l(n)&&(this.geometryByteLength-=n);let i=this._textureSizes[t];delete this._textureSizes[t],l(i)&&(this.texturesByteLength-=i)};var IN=ew;function Mn(){}Mn.cacheEntries={};Mn.statistics=new IN;function yke(e){this.referenceCount=1,this.resourceLoader=e,this._statisticsPromise=void 0}Mn.get=function(e){let t=Mn.cacheEntries[e];if(l(t))return++t.referenceCount,t.resourceLoader};Mn.add=function(e){let t=e.cacheKey;return Mn.cacheEntries[t]=new yke(e),e};Mn.unload=function(e){let t=e.cacheKey,n=Mn.cacheEntries[t];--n.referenceCount,n.referenceCount===0&&(Mn.statistics.removeLoader(e),e.destroy(),delete Mn.cacheEntries[t])};Mn.getSchemaLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{schema:t,resource:n}=e,i=ou.getSchemaCacheKey({schema:t,resource:n}),o=Mn.get(i);return l(o)?o:(o=new Qv({schema:t,resource:n,cacheKey:i}),Mn.add(o))};Mn.getEmbeddedBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{parentResource:t,bufferId:n,typedArray:i}=e,o=ou.getEmbeddedBufferCacheKey({parentResource:t,bufferId:n}),r=Mn.get(o);return l(r)?r:(r=new sA({typedArray:i,cacheKey:o}),Mn.add(r))};Mn.getExternalBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{resource:t}=e,n=ou.getExternalBufferCacheKey({resource:t}),i=Mn.get(n);return l(i)?i:(i=new sA({resource:t,cacheKey:n}),Mn.add(i))};Mn.getGltfJsonLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,baseResource:n,typedArray:i,gltfJson:o}=e,r=ou.getGltfCacheKey({gltfResource:t}),s=Mn.get(r);return l(s)?s:(s=new jv({resourceCache:Mn,gltfResource:t,baseResource:n,typedArray:i,gltfJson:o,cacheKey:r}),Mn.add(s))};Mn.getBufferViewLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}=e,r=ou.getBufferViewCacheKey({gltf:t,bufferViewId:n,gltfResource:i,baseResource:o}),s=Mn.get(r);return l(s)?s:(s=new Uv({resourceCache:Mn,gltf:t,bufferViewId:n,gltfResource:i,baseResource:o,cacheKey:r}),Mn.add(s))};Mn.getDracoLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,draco:n,gltfResource:i,baseResource:o}=e,r=ou.getDracoCacheKey({gltf:t,draco:n,gltfResource:i,baseResource:o}),s=Mn.get(r);return l(s)?s:(s=new zv({resourceCache:Mn,gltf:t,draco:n,gltfResource:i,baseResource:o,cacheKey:r}),Mn.add(s))};Mn.getVertexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,asynchronous:u=!0,dequantize:f=!1,loadBuffer:d=!1,loadTypedArray:p=!1}=e,g=ou.getVertexBufferCacheKey({gltf:t,gltfResource:n,baseResource:i,frameState:o,bufferViewId:r,draco:s,attributeSemantic:a,dequantize:f,loadBuffer:d,loadTypedArray:p}),m=Mn.get(g);return l(m)?m:(m=new Zv({resourceCache:Mn,gltf:t,gltfResource:n,baseResource:i,bufferViewId:r,draco:s,attributeSemantic:a,accessorId:c,cacheKey:g,asynchronous:u,dequantize:f,loadBuffer:d,loadTypedArray:p}),Mn.add(m))};Mn.getIndexBufferLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,asynchronous:a=!0,loadBuffer:c=!1,loadTypedArray:u=!1}=e,f=ou.getIndexBufferCacheKey({gltf:t,accessorId:n,gltfResource:i,baseResource:o,frameState:r,draco:s,loadBuffer:c,loadTypedArray:u}),d=Mn.get(f);return l(d)?d:(d=new Gv({resourceCache:Mn,gltf:t,accessorId:n,gltfResource:i,baseResource:o,draco:s,cacheKey:f,asynchronous:a,loadBuffer:c,loadTypedArray:u}),Mn.add(d))};Mn.getImageLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,imageId:n,gltfResource:i,baseResource:o}=e,r=ou.getImageCacheKey({gltf:t,imageId:n,gltfResource:i,baseResource:o}),s=Mn.get(r);return l(s)?s:(s=new Hv({resourceCache:Mn,gltf:t,imageId:n,gltfResource:i,baseResource:o,cacheKey:r}),Mn.add(s))};Mn.getTextureLoader=function(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a=!0}=e,c=ou.getTextureCacheKey({gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s}),u=Mn.get(c);return l(u)?u:(u=new Kv({resourceCache:Mn,gltf:t,textureInfo:n,gltfResource:i,baseResource:o,supportedImageFormats:r,cacheKey:c,asynchronous:a}),Mn.add(u))};Mn.clearForSpecs=function(){let e=[Zv,Gv,zv,Kv,Hv,Uv,sA,Qv,jv],t,n=Mn.cacheEntries,i=[];for(t in n)n.hasOwnProperty(t)&&i.push(n[t]);i.sort(function(r,s){let a=e.indexOf(r.resourceLoader.constructor),c=e.indexOf(s.resourceLoader.constructor);return a-c});let o=i.length;for(let r=0;r<o;++r){let s=i[r];t=s.resourceLoader.cacheKey,l(n[t])&&(s.resourceLoader.destroy(),delete n[t])}Mn.statistics.clear()};var Ai=Mn;function Qs(e,t,n){this._resource=e,this._subtreeJson=void 0,this._bufferLoader=void 0,this._tileAvailability=void 0,this._contentAvailabilityBitstreams=[],this._childSubtreeAvailability=void 0,this._implicitCoordinates=n,this._subtreeLevels=t.subtreeLevels,this._subdivisionScheme=t.subdivisionScheme,this._branchingFactor=t.branchingFactor,this._metadata=void 0,this._tileMetadataTable=void 0,this._tilePropertyTableJson=void 0,this._contentMetadataTables=[],this._contentPropertyTableJsons=[],this._tileJumpBuffer=void 0,this._contentJumpBuffers=[],this._ready=!1}Object.defineProperties(Qs.prototype,{ready:{get:function(){return this._ready}},metadata:{get:function(){return this._metadata}},tileMetadataTable:{get:function(){return this._tileMetadataTable}},tilePropertyTableJson:{get:function(){return this._tilePropertyTableJson}},contentMetadataTables:{get:function(){return this._contentMetadataTables}},contentPropertyTableJsons:{get:function(){return this._contentPropertyTableJsons}},implicitCoordinates:{get:function(){return this._implicitCoordinates}}});Qs.prototype.tileIsAvailableAtIndex=function(e){return this._tileAvailability.getBit(e)};Qs.prototype.tileIsAvailableAtCoordinates=function(e){let t=this.getTileIndex(e);return this.tileIsAvailableAtIndex(t)};Qs.prototype.contentIsAvailableAtIndex=function(e,t){return t=y(t,0),this._contentAvailabilityBitstreams[t].getBit(e)};Qs.prototype.contentIsAvailableAtCoordinates=function(e,t){let n=this.getTileIndex(e);return this.contentIsAvailableAtIndex(n,t)};Qs.prototype.childSubtreeIsAvailableAtIndex=function(e){return this._childSubtreeAvailability.getBit(e)};Qs.prototype.childSubtreeIsAvailableAtCoordinates=function(e){let t=this.getChildSubtreeIndex(e);return this.childSubtreeIsAvailableAtIndex(t)};Qs.prototype.getLevelOffset=function(e){let t=this._branchingFactor;return(Math.pow(t,e)-1)/(t-1)};Qs.prototype.getParentMortonIndex=function(e){let t=2;return this._subdivisionScheme===is.OCTREE&&(t=3),e>>t};Qs.fromSubtreeJson=async function(e,t,n,i,o){let r=new Qs(e,i,o),s;l(t)?s={json:t,binary:void 0}:s=xke(n);let a=s.json;r._subtreeJson=a;let c;if(oi(a,"3DTILES_metadata"))c=a.extensions["3DTILES_metadata"];else if(l(a.tileMetadata)){let A=a.tileMetadata;c=a.propertyTables[A]}let u=[];if(l(a.contentMetadata)){let A=a.contentMetadata.length;for(let C=0;C<A;C++){let S=a.contentMetadata[C];u.push(a.propertyTables[S])}}let f,d=i.metadataSchema,p=a.subtreeMetadata;if(l(p)){let A=p.class,C=d.classes[A];f=new iN({subtreeMetadata:p,class:C})}r._metadata=f,r._tilePropertyTableJson=c,r._contentPropertyTableJsons=u;let g={constant:0};a.contentAvailabilityHeaders=[],oi(a,"3DTILES_multiple_contents")?a.contentAvailabilityHeaders=a.extensions["3DTILES_multiple_contents"].contentAvailability:Array.isArray(a.contentAvailability)?a.contentAvailabilityHeaders=a.contentAvailability:a.contentAvailabilityHeaders.push(y(a.contentAvailability,g));let m=bke(a.buffers),x=Tke(a.bufferViews,m);Ake(a,x),l(c)&&Fie(c,x);for(let A=0;A<u.length;A++){let C=u[A];Fie(C,x)}let b=await Cke(r,m,s.binary),T=Ske(x,b);return vke(r,a,i,T),l(c)&&(wke(r,i,T),Ike(r)),Dke(r,i,T),Pke(r),r._ready=!0,r};function xke(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Lo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}function bke(e){e=l(e)?e:[];for(let t=0;t<e.length;t++){let n=e[t];n.isExternal=l(n.uri),n.isActive=!1}return e}function Tke(e,t){e=l(e)?e:[];for(let n=0;n<e.length;n++){let i=e[n],o=t[i.buffer];i.bufferHeader=o,i.isActive=!1}return e}function Ake(e,t){let n,i=e.tileAvailability;l(i.bitstream)?n=t[i.bitstream]:l(i.bufferView)&&(n=t[i.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);let o=e.contentAvailabilityHeaders;for(let s=0;s<o.length;s++)n=void 0,l(o[s].bitstream)?n=t[o[s].bitstream]:l(o[s].bufferView)&&(n=t[o[s].bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0);n=void 0;let r=e.childSubtreeAvailability;l(r.bitstream)?n=t[r.bitstream]:l(r.bufferView)&&(n=t[r.bufferView]),l(n)&&(n.isActive=!0,n.bufferHeader.isActive=!0)}function Fie(e,t){let n=e.properties,i;for(let o in n)if(n.hasOwnProperty(o)){let r=n[o],s=y(r.values,r.bufferView);i=t[s],i.isActive=!0,i.bufferHeader.isActive=!0;let a=y(r.stringOffsets,r.stringOffsetBufferView);l(a)&&(i=t[a],i.isActive=!0,i.bufferHeader.isActive=!0);let c=y(r.arrayOffsets,r.arrayOffsetBufferView);l(c)&&(i=t[c],i.isActive=!0,i.bufferHeader.isActive=!0)}}function Cke(e,t,n){let i=[];for(let o=0;o<t.length;o++){let r=t[o];if(!r.isActive)i.push(Promise.resolve(void 0));else if(r.isExternal){let s=Eke(e,r);i.push(s)}else i.push(Promise.resolve(n))}return Promise.all(i).then(function(o){let r={};for(let s=0;s<o.length;s++){let a=o[s];l(a)&&(r[s]=a)}return r})}async function Eke(e,t){let i=e._resource.getDerivedResource({url:t.uri}),o=Ai.getExternalBufferLoader({resource:i});e._bufferLoader=o;try{await o.load()}catch(r){if(o.isDestroyed())return;throw r}return o.typedArray}function Ske(e,t){let n={};for(let i=0;i<e.length;i++){let o=e[i];if(!o.isActive)continue;let r=o.byteOffset,s=r+o.byteLength,c=t[o.buffer].subarray(r,s);n[i]=c}return n}function vke(e,t,n,i){let o=n.branchingFactor,r=n.subtreeLevels,s=(Math.pow(o,r)-1)/(o-1),a=Math.pow(o,r),c=oi(t,"3DTILES_metadata"),u=l(e._tilePropertyTableJson),f=c||u;e._tileAvailability=B9(t.tileAvailability,i,s,f);let d=e._contentPropertyTableJsons.length>0;f=f||d;for(let p=0;p<t.contentAvailabilityHeaders.length;p++){let g=B9(t.contentAvailabilityHeaders[p],i,s,f);e._contentAvailabilityBitstreams.push(g)}e._childSubtreeAvailability=B9(t.childSubtreeAvailability,i,a)}function B9(e,t,n,i){if(l(e.constant))return new Bv({constant:!!e.constant,lengthBits:n,availableCount:e.availableCount});let o;return l(e.bitstream)?o=t[e.bitstream]:l(e.bufferView)&&(o=t[e.bufferView]),new Bv({bitstream:o,lengthBits:n,availableCount:e.availableCount,computeAvailableCountEnabled:i})}function wke(e,t,n){let i=e._tilePropertyTableJson,o=e._tileAvailability.availableCount,r=t.metadataSchema,s=i.class,a=r.classes[s];e._tileMetadataTable=new tu({class:a,count:o,properties:i.properties,bufferViews:n})}function Dke(e,t,n){let i=e._contentPropertyTableJsons,o=e._contentAvailabilityBitstreams,r=t.metadataSchema,s=e._contentMetadataTables;for(let a=0;a<i.length;a++){let c=i[a],f=o[a].availableCount,d=c.class,p=r.classes[d],g=new tu({class:p,count:f,properties:c.properties,bufferViews:n});s.push(g)}}function Bie(e){let t=0,n=e.lengthBits,i=e.availableCount,o;i<256?o=new Uint8Array(n):i<65536?o=new Uint16Array(n):o=new Uint32Array(n);for(let r=0;r<e.lengthBits;r++)e.getBit(r)&&(o[r]=t,t++);return o}function Ike(e){let t=Bie(e._tileAvailability);e._tileJumpBuffer=t}function Pke(e){let t=e._contentJumpBuffers,n=e._contentAvailabilityBitstreams;for(let i=0;i<n.length;i++){let o=n[i],r=Bie(o);t.push(r)}}Qs.prototype.getTileIndex=function(e){let t=e.level-this._implicitCoordinates.level;if(t<0||this._subtreeLevels<=t)throw new ce("level is out of bounds for this subtree");return e.getSubtreeCoordinates().getOffsetCoordinates(e).tileIndex};Qs.prototype.getChildSubtreeIndex=function(e){if(e.level-this._implicitCoordinates.level!==this._implicitCoordinates.subtreeLevels)throw new ce("level is out of bounds for this subtree");return e.getParentSubtreeCoordinates().getOffsetCoordinates(e).mortonIndex};function Rke(e,t){if(!l(e._tileMetadataTable))return;let n=e.getTileIndex(t);if(e._tileAvailability.getBit(n))return e._tileJumpBuffer[n]}function Oke(e,t,n){let i=e._contentMetadataTables;if(!l(i))return;let o=i[n];if(!l(o))return;let r=e._contentAvailabilityBitstreams[n],s=e.getTileIndex(t);if(r.getBit(s))return e._contentJumpBuffers[n][s]}Qs.prototype.getTileMetadataView=function(e){let t=Rke(this,e);if(!l(t))return;let n=this._tileMetadataTable;return new kv({class:n.class,metadataTable:n,entityId:t,propertyTableJson:this._tilePropertyTableJson})};Qs.prototype.getContentMetadataView=function(e,t){let n=Oke(this,e,t);if(!l(n))return;let i=this._contentMetadataTables[t],o=this._contentPropertyTableJsons[t];return new kv({class:i.class,metadataTable:i,entityId:n,contentIndex:t,propertyTableJson:o})};Qs.prototype.isDestroyed=function(){return!1};Qs.prototype.destroy=function(){return l(this._bufferLoader)&&Ai.unload(this._bufferLoader),ue(this)};var dA=Qs;var Mke={ID:"ID",NAME:"NAME",DESCRIPTION:"DESCRIPTION",TILESET_TILE_COUNT:"TILESET_TILE_COUNT",TILE_BOUNDING_BOX:"TILE_BOUNDING_BOX",TILE_BOUNDING_REGION:"TILE_BOUNDING_REGION",TILE_BOUNDING_SPHERE:"TILE_BOUNDING_SPHERE",TILE_MINIMUM_HEIGHT:"TILE_MINIMUM_HEIGHT",TILE_MAXIMUM_HEIGHT:"TILE_MAXIMUM_HEIGHT",TILE_HORIZON_OCCLUSION_POINT:"TILE_HORIZON_OCCLUSION_POINT",TILE_GEOMETRIC_ERROR:"TILE_GEOMETRIC_ERROR",CONTENT_BOUNDING_BOX:"CONTENT_BOUNDING_BOX",CONTENT_BOUNDING_REGION:"CONTENT_BOUNDING_REGION",CONTENT_BOUNDING_SPHERE:"CONTENT_BOUNDING_SPHERE",CONTENT_MINIMUM_HEIGHT:"CONTENT_MINIMUM_HEIGHT",CONTENT_MAXIMUM_HEIGHT:"CONTENT_MAXIMUM_HEIGHT",CONTENT_HORIZON_OCCLUSION_POINT:"CONTENT_HORIZON_OCCLUSION_POINT"},hA=Object.freeze(Mke);var dd={};dd.parseAllBoundingVolumeSemantics=function(e){return{tile:{boundingVolume:dd.parseBoundingVolumeSemantic("TILE",e),minimumHeight:dd._parseMinimumHeight("TILE",e),maximumHeight:dd._parseMaximumHeight("TILE",e)},content:{boundingVolume:dd.parseBoundingVolumeSemantic("CONTENT",e),minimumHeight:dd._parseMinimumHeight("CONTENT",e),maximumHeight:dd._parseMaximumHeight("CONTENT",e)}}};dd.parseBoundingVolumeSemantic=function(e,t){let n=`${e}_BOUNDING_BOX`,i=t.getPropertyBySemantic(n);if(l(i))return{box:i};let o=`${e}_BOUNDING_REGION`,r=t.getPropertyBySemantic(o);if(l(r))return{region:r};let s=`${e}_BOUNDING_SPHERE`,a=t.getPropertyBySemantic(s);if(l(a))return{sphere:a}};dd._parseMinimumHeight=function(e,t){let n=`${e}_MINIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};dd._parseMaximumHeight=function(e,t){let n=`${e}_MAXIMUM_HEIGHT`;return t.getPropertyBySemantic(n)};var mA=dd;function Pc(e,t,n){let i=t.implicitTileset,o=t.implicitCoordinates;this._implicitTileset=i,this._implicitCoordinates=o,this._implicitSubtree=void 0,this._tileset=e,this._tile=t,this._resource=n,this._metadata=void 0,this.featurePropertiesDirty=!1,this._group=void 0;let r=o.getTemplateValues(),s=i.subtreeUriTemplate.getDerivedResource({templateValues:r});this._url=s.getUrlComponent(!0),this._ready=!1}Object.defineProperties(Pc.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._url}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){return this._group},set:function(e){this._group=e}}});Pc.fromSubtreeJson=async function(e,t,n,i,o,r){r=y(r,0);let s;l(o)&&(s=new Uint8Array(o,r));let a=t.implicitTileset,c=t.implicitCoordinates,u=await dA.fromSubtreeJson(n,i,s,a,c),f=new Pc(e,t,n);return f._implicitSubtree=u,Lke(f,u),f._ready=!0,f};function Lke(e,t){let n=e._tile,i=e._implicitCoordinates.childIndex,o=Fke(e,t,n,i),r=e._tileset.statistics;n.children.push(o.rootTile),r.numberOfTilesTotal++;let s=Nke(e,t,o.bottomRow);for(let a=0;a<s.length;a++){let c=s[a],u=c.tile,f=jke(e,u,c.childIndex);u.children.push(f),r.numberOfTilesTotal++}}function Nke(e,t,n){let i=[],o=e._implicitTileset.branchingFactor;for(let r=0;r<n.length;r++){let s=n[r];if(l(s))for(let a=0;a<o;a++){let c=r*o+a;t.childSubtreeIsAvailableAtIndex(c)&&i.push({tile:s,childIndex:a})}}return i}function Fke(e,t,n,i){let s=kie(e,t,n,i,0,!0),a=e._tileset.statistics,c=[s],u=[],f=e._implicitTileset;for(let d=1;d<f.subtreeLevels;d++){let p=t.getLevelOffset(d),g=f.branchingFactor*c.length;for(let m=0;m<g;m++){let x=p+m;if(!t.tileIsAvailableAtIndex(x)){u.push(void 0);continue}let b=t.getParentMortonIndex(m),T=c[b],A=m%f.branchingFactor,C=kie(e,t,T,A,x);T.children.push(C),a.numberOfTilesTotal++,u.push(C)}c=u,u=[]}return{rootTile:s,bottomRow:c}}function Vie(e,t,n){let i=hA.TILE_GEOMETRIC_ERROR;return l(e)&&e.hasPropertyBySemantic(i)?e.getPropertyBySemantic(i):t.geometricError/Math.pow(2,n.level)}function kie(e,t,n,i,o,r){let s=e._implicitTileset,a;y(r,!1)?a=n.implicitCoordinates:a=n.implicitCoordinates.getChildCoordinates(i);let c,u,f;if(l(t.tilePropertyTableJson)){c=t.getTileMetadataView(a);let D=mA.parseAllBoundingVolumeSemantics(c);u=D.tile,f=D.content}let p=t.contentPropertyTableJsons.length,g=!1;for(let D=0;D<p;D++)if(t.contentIsAvailableAtCoordinates(a,D)){g=!0;break}let m=Vke(s,a,i,r,n,u),x=[];for(let D=0;D<s.contentCount;D++){if(!t.contentIsAvailableAtIndex(o,D))continue;let M={uri:s.contentUriTemplates[D].getDerivedResource({templateValues:a.getTemplateValues()}).url},L=Uke(m,f);l(L)&&(M.boundingVolume=L),x.push(xt(M,s.contentHeaders[D]))}let b=Vie(c,s,a),T={boundingVolume:m,geometricError:b,refine:s.refine,contents:x},A=!0,C=Ge(s.tileHeader,A);delete C.boundingVolume,delete C.transform,delete C.metadata;let S=xt(T,C,A),v=Wie(e,s.baseResource,S,n);return v.implicitCoordinates=a,v.implicitSubtree=t,v.metadata=c,v.hasImplicitContentMetadata=g,v}function PN(e,t){return l(e)&&l(t)&&(l(t.minimumHeight)||l(t.maximumHeight))&&(oi(e,"3DTILES_bounding_volume_S2")||l(e.region))}function V9(e,t){l(t)&&(oi(e,"3DTILES_bounding_volume_S2")?kke(e.extensions["3DTILES_bounding_volume_S2"],t.minimumHeight,t.maximumHeight):l(e.region)&&Bke(e.region,t.minimumHeight,t.maximumHeight))}function Bke(e,t,n){l(t)&&(e[4]=t),l(n)&&(e[5]=n)}function kke(e,t,n){l(t)&&(e.minimumHeight=t),l(n)&&(e.maximumHeight=n)}function Vke(e,t,n,i,o,r){let s;return!l(r)||!l(r.boundingVolume)||!PN(r.boundingVolume,r)&&PN(e.boundingVolume,r)?s=Uie(e,t,n,y(i,!1),o):s=r.boundingVolume,V9(s,r),s}function Uke(e,t){let n;return l(t)&&(n=t.boundingVolume),PN(n,t)?V9(n,t):PN(e,t)&&(n=Ge(e,!0),V9(n,t)),n}function Uie(e,t,n,i,o){let r=e.boundingVolume;return oi(r,"3DTILES_bounding_volume_S2")?zie(i,o,n,t.level,t.x,t.y,t.z):l(r.region)?{region:Gie(r.region,t.level,t.x,t.y,t.z)}:{box:Hie(r.box,t.level,t.x,t.y,t.z)}}function zie(e,t,n,i,o,r,s){let a=t._boundingVolume;if(e)return{extensions:{"3DTILES_bounding_volume_S2":{token:sg.getTokenFromId(a.s2Cell._cellId),minimumHeight:a.minimumHeight,maximumHeight:a.maximumHeight}}};let c=Number(t._boundingVolume.s2Cell._cellId>>BigInt(61)),u=c%2===0?Fv.encode2D(i,o,r):Fv.encode2D(i,r,o),f=sg.fromFacePositionLevel(c,BigInt(u),i),d,p;if(l(s)){let g=(a.maximumHeight+a.minimumHeight)/2;d=n<4?a.minimumHeight:g,p=n<4?g:a.maximumHeight}else d=a.minimumHeight,p=a.maximumHeight;return{extensions:{"3DTILES_bounding_volume_S2":{token:sg.getTokenFromId(f._cellId),minimumHeight:d,maximumHeight:p}}}}var zke=new h,Hke=new h,k9=new h,Gke=new $;function Hie(e,t,n,i,o){if(t===0)return e;let r=h.unpack(e,0,Hke),s=$.unpack(e,3,Gke),a=Math.pow(2,-t),c=-1+(2*n+1)*a,u=-1+(2*i+1)*a,f=0,d=h.fromElements(a,a,1,zke);l(o)&&(f=-1+(2*o+1)*a,d.z=a);let p=h.fromElements(c,u,f,k9);p=$.multiplyByVector(s,p,k9),p=h.add(p,r,k9);let g=$.clone(s);g=$.multiplyByScale(g,d,g);let m=new Array(12);return h.pack(p,m),$.pack(g,m,3),m}var Wke=new re;function Gie(e,t,n,i,o){if(t===0)return e.slice();let r=re.unpack(e,0,Wke),s=e[4],a=e[5],c=Math.pow(2,-t),u=c*r.width,f=P.negativePiToPi(r.west+n*u),d=P.negativePiToPi(f+u),p=c*r.height,g=P.negativePiToPi(r.south+i*p),m=P.negativePiToPi(g+p),x=s,b=a;if(l(o)){let T=c*(a-s);x+=o*T,b=x+T}return[f,g,d,m,x,b]}function jke(e,t,n){let i=e._implicitTileset,o=t.implicitCoordinates.getChildCoordinates(n),r=Uie(i,o,n,!1,t),s=Vie(void 0,i,o),a=i.subtreeUriTemplate.getDerivedResource({templateValues:o.getTemplateValues()}).url,c={boundingVolume:r,geometricError:s,refine:i.refine,contents:[{uri:a}]},u=Wie(e,i.baseResource,c,t);return u.implicitTileset=i,u.implicitCoordinates=o,u}function Wie(e,t,n,i){let o=e._tile.constructor;return new o(e._tileset,t,n,i)}Pc.prototype.hasProperty=function(e,t){return!1};Pc.prototype.getFeature=function(e){};Pc.prototype.applyDebugSettings=function(e,t){};Pc.prototype.applyStyle=function(e){};Pc.prototype.update=function(e,t){};Pc.prototype.pick=function(e,t,n){};Pc.prototype.isDestroyed=function(){return!1};Pc.prototype.destroy=function(){return this._implicitSubtree=this._implicitSubtree&&this._implicitSubtree.destroy(),ue(this)};Pc._deriveBoundingBox=Hie;Pc._deriveBoundingRegion=Gie;Pc._deriveBoundingVolumeS2=zie;var tw=Pc;var qke={NONE:0,REPEAT:1,MIRRORED_REPEAT:2},ru=Object.freeze(qke);function pA(e,t){this._distance=t,this._normal=new jie(e,this),this.onChangeCallback=void 0,this.index=-1}Object.defineProperties(pA.prototype,{distance:{get:function(){return this._distance},set:function(e){l(this.onChangeCallback)&&e!==this._distance&&this.onChangeCallback(this.index),this._distance=e}},normal:{get:function(){return this._normal},set:function(e){l(this.onChangeCallback)&&!h.equals(this._normal._cartesian3,e)&&this.onChangeCallback(this.index),h.clone(e,this._normal._cartesian3)}}});pA.fromPlane=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance):t=new pA(e.normal,e.distance),t};pA.clone=function(e,t){return l(t)?(t.normal=e.normal,t.distance=e.distance,t):new pA(e.normal,e.distance)};function jie(e,t){this._clippingPlane=t,this._cartesian3=h.clone(e)}Object.defineProperties(jie.prototype,{x:{get:function(){return this._cartesian3.x},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.x&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.x=e}},y:{get:function(){return this._cartesian3.y},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.y&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.y=e}},z:{get:function(){return this._cartesian3.z},set:function(e){l(this._clippingPlane.onChangeCallback)&&e!==this._cartesian3.z&&this._clippingPlane.onChangeCallback(this._clippingPlane.index),this._cartesian3.z=e}}});var _A=pA;function Za(e){e=y(e,y.EMPTY_OBJECT),this._planes=[],this._dirtyIndex=-1,this._multipleDirtyPlanes=!1,this._enabled=y(e.enabled,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.edgeColor=z.clone(y(e.edgeColor,z.WHITE)),this.edgeWidth=y(e.edgeWidth,0),this.planeAdded=new me,this.planeRemoved=new me,this._owner=void 0;let t=y(e.unionClippingRegions,!1);this._unionClippingRegions=t,this._testIntersection=t?Zie:$ie,this._uint8View=void 0,this._float32View=void 0,this._clippingPlanesTexture=void 0;let n=e.planes;if(l(n)){let i=n.length;for(let o=0;o<i;++o)this.add(n[o])}}function Zie(e){return e===Yt.OUTSIDE}function $ie(e){return e===Yt.INSIDE}Object.defineProperties(Za.prototype,{length:{get:function(){return this._planes.length}},unionClippingRegions:{get:function(){return this._unionClippingRegions},set:function(e){this._unionClippingRegions!==e&&(this._unionClippingRegions=e,this._testIntersection=e?Zie:$ie)}},enabled:{get:function(){return this._enabled},set:function(e){this._enabled!==e&&(this._enabled=e)}},texture:{get:function(){return this._clippingPlanesTexture}},owner:{get:function(){return this._owner}},clippingPlanesState:{get:function(){return this._unionClippingRegions?this._planes.length:-this._planes.length}}});function qie(e,t){e._multipleDirtyPlanes=e._multipleDirtyPlanes||e._dirtyIndex!==-1&&e._dirtyIndex!==t,e._dirtyIndex=t}Za.prototype.add=function(e){let t=this._planes.length,n=this;e.onChangeCallback=function(i){qie(n,i)},e.index=t,qie(this,t),this._planes.push(e),this.planeAdded.raiseEvent(e,t)};Za.prototype.get=function(e){return this._planes[e]};function Qie(e,t){let n=e.length;for(let i=0;i<n;++i)if(an.equals(e[i],t))return i;return-1}Za.prototype.contains=function(e){return Qie(this._planes,e)!==-1};Za.prototype.remove=function(e){let t=this._planes,n=Qie(t,e);if(n===-1)return!1;e instanceof _A&&(e.onChangeCallback=void 0,e.index=-1);let i=t.length-1;for(let o=n;o<i;++o){let r=t[o+1];t[o]=r,r instanceof _A&&(r.index=o)}return this._multipleDirtyPlanes=!0,t.length=i,this.planeRemoved.raiseEvent(e,n),!0};Za.prototype.removeAll=function(){let e=this._planes,t=e.length;for(let n=0;n<t;++n){let i=e[n];i instanceof _A&&(i.onChangeCallback=void 0,i.index=-1),this.planeRemoved.raiseEvent(i,n)}this._multipleDirtyPlanes=!0,this._planes=[]};var Yke=new oe,Xke=new oe;function Yie(e,t,n){let i=e._uint8View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=Ln.octEncodeToCartesian4(a.normal,Xke);i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=c.w;let u=oe.packFloat(a.distance,Yke);i[r+4]=u.x,i[r+5]=u.y,i[r+6]=u.z,i[r+7]=u.w,r+=8}}function Xie(e,t,n){let i=e._float32View,o=e._planes,r=0;for(let s=t;s<n;++s){let a=o[s],c=a.normal;i[r]=c.x,i[r+1]=c.y,i[r+2]=c.z,i[r+3]=a.distance,r+=4}}function Jie(e,t){let n=zt.maximumTextureSize;return t.x=Math.min(e,n),t.y=Math.ceil(e/t.x),t}var Kke=new U;Za.prototype.update=function(e){let t=this._clippingPlanesTexture,n=e.context,i=Za.useFloatTexture(n),o=i?this.length:this.length*2;if(l(t)){let s=t.width*t.height;(s<o||o<.25*s)&&(t.destroy(),t=void 0,this._clippingPlanesTexture=void 0)}if(this.length===0)return;if(!l(t)){let s=Jie(o,Kke);s.y*=2,i?(t=new Ot({context:n,width:s.x,height:s.y,pixelFormat:it.RGBA,pixelDatatype:Ze.FLOAT,sampler:Qt.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*4)):(t=new Ot({context:n,width:s.x,height:s.y,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,sampler:Qt.NEAREST,flipY:!1}),this._uint8View=new Uint8Array(s.x*s.y*4)),this._clippingPlanesTexture=t,this._multipleDirtyPlanes=!0}let r=this._dirtyIndex;if(!(!this._multipleDirtyPlanes&&r===-1)){if(this._multipleDirtyPlanes)i?(Xie(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._float32View}})):(Yie(this,0,this._planes.length),t.copyFrom({source:{width:t.width,height:t.height,arrayBufferView:this._uint8View}}));else{let s=0,a=0;i?(a=Math.floor(r/t.width),s=Math.floor(r-a*t.width),Xie(this,r,r+1),t.copyFrom({source:{width:1,height:1,arrayBufferView:this._float32View},xOffset:s,yOffset:a})):(a=Math.floor(r*2/t.width),s=Math.floor(r*2-a*t.width),Yie(this,r,r+1),t.copyFrom({source:{width:2,height:1,arrayBufferView:this._uint8View},xOffset:s,yOffset:a}))}this._multipleDirtyPlanes=!1,this._dirtyIndex=-1}};var Zke=new F,Kie=new an(h.UNIT_X,0);Za.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._planes,i=n.length,o=this.modelMatrix;l(t)&&(o=F.multiply(t,o,Zke));let r=Yt.INSIDE;!this.unionClippingRegions&&i>0&&(r=Yt.OUTSIDE);for(let s=0;s<i;++s){let a=n[s];an.transform(a,o,Kie);let c=e.intersectPlane(Kie);if(c===Yt.INTERSECTING)r=c;else if(this._testIntersection(c))return c}return r};Za.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};Za.useFloatTexture=function(e){return e.floatingPointTexture};Za.getTextureResolution=function(e,t,n){let i=e.texture;if(l(i))return n.x=i.width,n.y=i.height,n;let o=Za.useFloatTexture(t)?e.length:e.length*2,r=Jie(o,n);return r.y*=2,r};Za.prototype.isDestroyed=function(){return!1};Za.prototype.destroy=function(){return this._clippingPlanesTexture=this._clippingPlanesTexture&&this._clippingPlanesTexture.destroy(),ue(this)};var bs=Za;function H9(e,t,n=2){let i=t&&t.length,o=i?t[0]*n:e.length,r=toe(e,0,o,n,!0),s=[];if(!r||r.next===r.prev)return s;let a,c,u;if(i&&(r=tVe(e,t,r,n)),e.length>80*n){a=1/0,c=1/0;let f=-1/0,d=-1/0;for(let p=n;p<o;p+=n){let g=e[p],m=e[p+1];g<a&&(a=g),m<c&&(c=m),g>f&&(f=g),m>d&&(d=m)}u=Math.max(f-a,d-c),u=u!==0?32767/u:0}return nw(r,s,n,a,c,u,0),s}function toe(e,t,n,i,o){let r;if(o===dVe(e,t,n,i)>0)for(let s=t;s<n;s+=i)r=eoe(s/i|0,e[s],e[s+1],r);else for(let s=n-i;s>=t;s-=i)r=eoe(s/i|0,e[s],e[s+1],r);return r&&MN(r,r.next)&&(ow(r),r=r.next),r}function ix(e,t){if(!e)return e;t||(t=e);let n=e,i;do if(i=!1,!n.steiner&&(MN(n,n.next)||Or(n.prev,n,n.next)===0)){if(ow(n),n=t=n.prev,n===n.next)break;i=!0}else n=n.next;while(i||n!==t);return t}function nw(e,t,n,i,o,r,s){if(!e)return;!s&&r&&sVe(e,i,o,r);let a=e;for(;e.prev!==e.next;){let c=e.prev,u=e.next;if(r?Qke(e,i,o,r):$ke(e)){t.push(c.i,e.i,u.i),ow(e),e=u.next,a=u.next;continue}if(e=u,e===a){s?s===1?(e=Jke(ix(e),t),nw(e,t,n,i,o,r,2)):s===2&&eVe(e,t,n,i,o,r):nw(ix(e),t,n,i,o,r,1);break}}}function $ke(e){let t=e.prev,n=e,i=e.next;if(Or(t,n,i)>=0)return!1;let o=t.x,r=n.x,s=i.x,a=t.y,c=n.y,u=i.y,f=o<r?o<s?o:s:r<s?r:s,d=a<c?a<u?a:u:c<u?c:u,p=o>r?o>s?o:s:r>s?r:s,g=a>c?a>u?a:u:c>u?c:u,m=i.next;for(;m!==t;){if(m.x>=f&&m.x<=p&&m.y>=d&&m.y<=g&&gA(o,a,r,c,s,u,m.x,m.y)&&Or(m.prev,m,m.next)>=0)return!1;m=m.next}return!0}function Qke(e,t,n,i){let o=e.prev,r=e,s=e.next;if(Or(o,r,s)>=0)return!1;let a=o.x,c=r.x,u=s.x,f=o.y,d=r.y,p=s.y,g=a<c?a<u?a:u:c<u?c:u,m=f<d?f<p?f:p:d<p?d:p,x=a>c?a>u?a:u:c>u?c:u,b=f>d?f>p?f:p:d>p?d:p,T=U9(g,m,t,n,i),A=U9(x,b,t,n,i),C=e.prevZ,S=e.nextZ;for(;C&&C.z>=T&&S&&S.z<=A;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&gA(a,f,c,d,u,p,C.x,C.y)&&Or(C.prev,C,C.next)>=0||(C=C.prevZ,S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&gA(a,f,c,d,u,p,S.x,S.y)&&Or(S.prev,S,S.next)>=0))return!1;S=S.nextZ}for(;C&&C.z>=T;){if(C.x>=g&&C.x<=x&&C.y>=m&&C.y<=b&&C!==o&&C!==s&&gA(a,f,c,d,u,p,C.x,C.y)&&Or(C.prev,C,C.next)>=0)return!1;C=C.prevZ}for(;S&&S.z<=A;){if(S.x>=g&&S.x<=x&&S.y>=m&&S.y<=b&&S!==o&&S!==s&&gA(a,f,c,d,u,p,S.x,S.y)&&Or(S.prev,S,S.next)>=0)return!1;S=S.nextZ}return!0}function Jke(e,t){let n=e;do{let i=n.prev,o=n.next.next;!MN(i,o)&&noe(i,n,n.next,o)&&iw(i,o)&&iw(o,i)&&(t.push(i.i,n.i,o.i),ow(n),ow(n.next),n=e=o),n=n.next}while(n!==e);return ix(n)}function eVe(e,t,n,i,o,r){let s=e;do{let a=s.next.next;for(;a!==s.prev;){if(s.i!==a.i&&lVe(s,a)){let c=ioe(s,a);s=ix(s,s.next),c=ix(c,c.next),nw(s,t,n,i,o,r,0),nw(c,t,n,i,o,r,0);return}a=a.next}s=s.next}while(s!==e)}function tVe(e,t,n,i){let o=[];for(let r=0,s=t.length;r<s;r++){let a=t[r]*i,c=r<s-1?t[r+1]*i:e.length,u=toe(e,a,c,i,!1);u===u.next&&(u.steiner=!0),o.push(cVe(u))}o.sort(nVe);for(let r=0;r<o.length;r++)n=iVe(o[r],n);return n}function nVe(e,t){return e.x-t.x}function iVe(e,t){let n=oVe(e,t);if(!n)return t;let i=ioe(n,e);return ix(i,i.next),ix(n,n.next)}function oVe(e,t){let n=t,i=e.x,o=e.y,r=-1/0,s;do{if(o<=n.y&&o>=n.next.y&&n.next.y!==n.y){let d=n.x+(o-n.y)*(n.next.x-n.x)/(n.next.y-n.y);if(d<=i&&d>r&&(r=d,s=n.x<n.next.x?n:n.next,d===i))return s}n=n.next}while(n!==t);if(!s)return null;let a=s,c=s.x,u=s.y,f=1/0;n=s;do{if(i>=n.x&&n.x>=c&&i!==n.x&&gA(o<u?i:r,o,c,u,o<u?r:i,o,n.x,n.y)){let d=Math.abs(o-n.y)/(i-n.x);iw(n,e)&&(d<f||d===f&&(n.x>s.x||n.x===s.x&&rVe(s,n)))&&(s=n,f=d)}n=n.next}while(n!==a);return s}function rVe(e,t){return Or(e.prev,e,t.prev)<0&&Or(t.next,e,e.next)<0}function sVe(e,t,n,i){let o=e;do o.z===0&&(o.z=U9(o.x,o.y,t,n,i)),o.prevZ=o.prev,o.nextZ=o.next,o=o.next;while(o!==e);o.prevZ.nextZ=null,o.prevZ=null,aVe(o)}function aVe(e){let t,n=1;do{let i=e,o;e=null;let r=null;for(t=0;i;){t++;let s=i,a=0;for(let u=0;u<n&&(a++,s=s.nextZ,!!s);u++);let c=n;for(;a>0||c>0&&s;)a!==0&&(c===0||!s||i.z<=s.z)?(o=i,i=i.nextZ,a--):(o=s,s=s.nextZ,c--),r?r.nextZ=o:e=o,o.prevZ=r,r=o;i=s}r.nextZ=null,n*=2}while(t>1);return e}function U9(e,t,n,i,o){return e=(e-n)*o|0,t=(t-i)*o|0,e=(e|e<<8)&16711935,e=(e|e<<4)&252645135,e=(e|e<<2)&858993459,e=(e|e<<1)&1431655765,t=(t|t<<8)&16711935,t=(t|t<<4)&252645135,t=(t|t<<2)&858993459,t=(t|t<<1)&1431655765,e|t<<1}function cVe(e){let t=e,n=e;do(t.x<n.x||t.x===n.x&&t.y<n.y)&&(n=t),t=t.next;while(t!==e);return n}function gA(e,t,n,i,o,r,s,a){return(o-s)*(t-a)>=(e-s)*(r-a)&&(e-s)*(i-a)>=(n-s)*(t-a)&&(n-s)*(r-a)>=(o-s)*(i-a)}function lVe(e,t){return e.next.i!==t.i&&e.prev.i!==t.i&&!uVe(e,t)&&(iw(e,t)&&iw(t,e)&&fVe(e,t)&&(Or(e.prev,e,t.prev)||Or(e,t.prev,t))||MN(e,t)&&Or(e.prev,e,e.next)>0&&Or(t.prev,t,t.next)>0)}function Or(e,t,n){return(t.y-e.y)*(n.x-t.x)-(t.x-e.x)*(n.y-t.y)}function MN(e,t){return e.x===t.x&&e.y===t.y}function noe(e,t,n,i){let o=ON(Or(e,t,n)),r=ON(Or(e,t,i)),s=ON(Or(n,i,e)),a=ON(Or(n,i,t));return!!(o!==r&&s!==a||o===0&&RN(e,n,t)||r===0&&RN(e,i,t)||s===0&&RN(n,e,i)||a===0&&RN(n,t,i))}function RN(e,t,n){return t.x<=Math.max(e.x,n.x)&&t.x>=Math.min(e.x,n.x)&&t.y<=Math.max(e.y,n.y)&&t.y>=Math.min(e.y,n.y)}function ON(e){return e>0?1:e<0?-1:0}function uVe(e,t){let n=e;do{if(n.i!==e.i&&n.next.i!==e.i&&n.i!==t.i&&n.next.i!==t.i&&noe(n,n.next,e,t))return!0;n=n.next}while(n!==e);return!1}function iw(e,t){return Or(e.prev,e,e.next)<0?Or(e,t,e.next)>=0&&Or(e,e.prev,t)>=0:Or(e,t,e.prev)<0||Or(e,e.next,t)<0}function fVe(e,t){let n=e,i=!1,o=(e.x+t.x)/2,r=(e.y+t.y)/2;do n.y>r!=n.next.y>r&&n.next.y!==n.y&&o<(n.next.x-n.x)*(r-n.y)/(n.next.y-n.y)+n.x&&(i=!i),n=n.next;while(n!==e);return i}function ioe(e,t){let n=z9(e.i,e.x,e.y),i=z9(t.i,t.x,t.y),o=e.next,r=t.prev;return e.next=t,t.prev=e,n.next=o,o.prev=n,i.next=n,n.prev=i,r.next=i,i.prev=r,i}function eoe(e,t,n,i){let o=z9(e,t,n);return i?(o.next=i.next,o.prev=i,i.next.prev=o,i.next=o):(o.prev=o,o.next=o),o}function ow(e){e.next.prev=e.prev,e.prev.next=e.next,e.prevZ&&(e.prevZ.nextZ=e.nextZ),e.nextZ&&(e.nextZ.prevZ=e.prevZ)}function z9(e,t,n){return{i:e,x:t,y:n,prev:null,next:null,z:0,prevZ:null,nextZ:null,steiner:!1}}function dVe(e,t,n,i){let o=0;for(let r=t,s=n-i;r<n;r+=i)o+=(e[s]-e[r])*(e[r+1]+e[s+1]),s=r;return o}var hVe=new h,mVe=new h,_g={};_g.computeArea2D=function(e){let t=e.length,n=0;for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];n+=r.x*s.y-s.x*r.y}return n*.5};_g.computeWindingOrder2D=function(e){return _g.computeArea2D(e)>0?gs.COUNTER_CLOCKWISE:gs.CLOCKWISE};_g.triangulate=function(e,t){let n=U.packArray(e);return H9(n,t,2)};var aoe=new h,coe=new h,loe=new h,ooe=new h,roe=new h,soe=new h,yp=new h,uoe=new U,foe=new U,doe=new U,yA=new U;_g.computeSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let C=t[a];if(u[d++]=C.x,u[d++]=C.y,u[d++]=C.z,r){let S=i[a];f[p++]=S.x,f[p++]=S.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=b*b;for(;s.length>0;){let C=s.pop(),S=s.pop(),v=s.pop(),D=h.fromArray(u,v*3,aoe),O=h.fromArray(u,S*3,coe),R=h.fromArray(u,C*3,loe),M,L,_;r&&(M=U.fromArray(f,v*2,uoe),L=U.fromArray(f,S*2,foe),_=U.fromArray(f,C*2,doe));let E=h.multiplyByScalar(h.normalize(D,ooe),x,ooe),w=h.multiplyByScalar(h.normalize(O,roe),x,roe),I=h.multiplyByScalar(h.normalize(R,soe),x,soe),N=h.magnitudeSquared(h.subtract(E,w,yp)),B=h.magnitudeSquared(h.subtract(w,I,yp)),H=h.magnitudeSquared(h.subtract(I,E,yp)),V=Math.max(N,B,H),G,k,W;V>T?N===V?(G=`${Math.min(v,S)} ${Math.max(v,S)}`,a=m[G],l(a)||(k=h.add(D,O,yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=U.add(M,L,yA),U.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(v,a,C),s.push(a,S,C)):B===V?(G=`${Math.min(S,C)} ${Math.max(S,C)}`,a=m[G],l(a)||(k=h.add(O,R,yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=U.add(L,_,yA),U.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(S,a,v),s.push(a,C,v)):H===V&&(G=`${Math.min(C,v)} ${Math.max(C,v)}`,a=m[G],l(a)||(k=h.add(R,D,yp),h.multiplyByScalar(k,.5,k),u.push(k.x,k.y,k.z),a=u.length/3-1,m[G]=a,r&&(W=U.add(_,M,yA),U.multiplyByScalar(W,.5,W),f.push(W.x,W.y))),s.push(C,a,S),s.push(a,v,S)):(g.push(v),g.push(S),g.push(C))}let A={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(A.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ft(A)};var pVe=new fe,_Ve=new fe,gVe=new fe,G9=new fe;_g.computeRhumbLineSubdivision=function(e,t,n,i,o){o=y(o,P.RADIANS_PER_DEGREE);let r=l(i),s=n.slice(0),a,c=t.length,u=new Array(c*3),f=new Array(c*2),d=0,p=0;for(a=0;a<c;a++){let v=t[a];if(u[d++]=v.x,u[d++]=v.y,u[d++]=v.z,r){let D=i[a];f[p++]=D.x,f[p++]=D.y}}let g=[],m={},x=e.maximumRadius,b=P.chordLength(o,x),T=new ja(void 0,void 0,e),A=new ja(void 0,void 0,e),C=new ja(void 0,void 0,e);for(;s.length>0;){let v=s.pop(),D=s.pop(),O=s.pop(),R=h.fromArray(u,O*3,aoe),M=h.fromArray(u,D*3,coe),L=h.fromArray(u,v*3,loe),_,E,w;r&&(_=U.fromArray(f,O*2,uoe),E=U.fromArray(f,D*2,foe),w=U.fromArray(f,v*2,doe));let I=e.cartesianToCartographic(R,pVe),N=e.cartesianToCartographic(M,_Ve),B=e.cartesianToCartographic(L,gVe);T.setEndPoints(I,N);let H=T.surfaceDistance;A.setEndPoints(N,B);let V=A.surfaceDistance;C.setEndPoints(B,I);let G=C.surfaceDistance,k=Math.max(H,V,G),W,q,J,j,Z;k>b?H===k?(W=`${Math.min(O,D)} ${Math.max(O,D)}`,a=m[W],l(a)||(q=T.interpolateUsingFraction(.5,G9),J=(I.height+N.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(Z=U.add(_,E,yA),U.multiplyByScalar(Z,.5,Z),f.push(Z.x,Z.y))),s.push(O,a,v),s.push(a,D,v)):V===k?(W=`${Math.min(D,v)} ${Math.max(D,v)}`,a=m[W],l(a)||(q=A.interpolateUsingFraction(.5,G9),J=(N.height+B.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(Z=U.add(E,w,yA),U.multiplyByScalar(Z,.5,Z),f.push(Z.x,Z.y))),s.push(D,a,O),s.push(a,v,O)):G===k&&(W=`${Math.min(v,O)} ${Math.max(v,O)}`,a=m[W],l(a)||(q=C.interpolateUsingFraction(.5,G9),J=(B.height+I.height)*.5,j=h.fromRadians(q.longitude,q.latitude,J,e,yp),u.push(j.x,j.y,j.z),a=u.length/3-1,m[W]=a,r&&(Z=U.add(w,_,yA),U.multiplyByScalar(Z,.5,Z),f.push(Z.x,Z.y))),s.push(v,a,D),s.push(a,O,D)):(g.push(O),g.push(D),g.push(v))}let S={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})},indices:g,primitiveType:Le.TRIANGLES};return r&&(S.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),new ft(S)};_g.scaleToGeodeticHeight=function(e,t,n,i){n=y(n,ee.default);let o=hVe,r=mVe;if(t=y(t,0),i=y(i,!0),l(e)){let s=e.length;for(let a=0;a<s;a+=3)h.fromArray(e,a,r),i&&(r=n.scaleToGeodeticSurface(r,r)),t!==0&&(o=n.geodeticSurfaceNormal(r,o),h.multiplyByScalar(o,t,o),h.add(r,o,r)),e[a]=r.x,e[a+1]=r.y,e[a+2]=r.z}return e};var ri=_g;function gg(){this._array=[],this._offset=0,this._length=0}Object.defineProperties(gg.prototype,{length:{get:function(){return this._length}}});gg.prototype.enqueue=function(e){this._array.push(e),this._length++};gg.prototype.dequeue=function(){if(this._length===0)return;let e=this._array,t=this._offset,n=e[t];return e[t]=void 0,t++,t>10&&t*2>e.length&&(this._array=e.slice(t),t=0),this._offset=t,this._length--,n};gg.prototype.peek=function(){if(this._length!==0)return this._array[this._offset]};gg.prototype.contains=function(e){return this._array.indexOf(e)!==-1};gg.prototype.clear=function(){this._array.length=this._offset=this._length=0};gg.prototype.sort=function(e){this._offset>0&&(this._array=this._array.slice(this._offset),this._offset=0),this._array.sort(e)};var ox=gg;var Wo={};Wo.computeHierarchyPackedLength=function(e,t){let n=0,i=[e];for(;i.length>0;){let o=i.pop();if(!l(o))continue;n+=2;let r=o.positions,s=o.holes;if(l(r)&&r.length>0&&(n+=r.length*t.packedLength),l(s)){let a=s.length;for(let c=0;c<a;++c)i.push(s[c])}}return n};Wo.packPolygonHierarchy=function(e,t,n,i){let o=[e];for(;o.length>0;){let r=o.pop();if(!l(r))continue;let s=r.positions,a=r.holes;if(t[n++]=l(s)?s.length:0,t[n++]=l(a)?a.length:0,l(s)){let c=s.length;for(let u=0;u<c;++u,n+=i.packedLength)i.pack(s[u],t,n)}if(l(a)){let c=a.length;for(let u=0;u<c;++u)o.push(a[u])}}return n};Wo.unpackPolygonHierarchy=function(e,t,n){let i=e[t++],o=e[t++],r=new Array(i),s=o>0?new Array(o):void 0;for(let a=0;a<i;++a,t+=n.packedLength)r[a]=n.unpack(e,t);for(let a=0;a<o;++a)s[a]=Wo.unpackPolygonHierarchy(e,t,n),t=s[a].startingIndex,delete s[a].startingIndex;return{positions:r,holes:s,startingIndex:t}};var rx=new U;function poe(e,t,n,i){return U.subtract(t,e,rx),U.multiplyByScalar(rx,n/i,rx),U.add(e,rx,rx),[rx.x,rx.y]}var yg=new h;function yVe(e,t,n,i){return h.subtract(t,e,yg),h.multiplyByScalar(yg,n/i,yg),h.add(e,yg,yg),[yg.x,yg.y,yg.z]}Wo.subdivideLineCount=function(e,t,n){let o=h.distance(e,t)/n,r=Math.max(0,Math.ceil(P.log2(o)));return Math.pow(2,r)};var NN=new fe,FN=new fe,xVe=new fe,bVe=new h,LN=new ja;Wo.subdivideRhumbLineCount=function(e,t,n,i){let o=e.cartesianToCartographic(t,NN),r=e.cartesianToCartographic(n,FN),a=new ja(o,r,e).surfaceDistance/i,c=Math.max(0,Math.ceil(P.log2(a)));return Math.pow(2,c)};Wo.subdivideTexcoordLine=function(e,t,n,i,o,r){let s=Wo.subdivideLineCount(n,i,o),a=U.distance(e,t),c=a/s,u=r;u.length=s*2;let f=0;for(let d=0;d<s;d++){let p=poe(e,t,d*c,a);u[f++]=p[0],u[f++]=p[1]}return u};Wo.subdivideLine=function(e,t,n,i){let o=Wo.subdivideLineCount(e,t,n),r=h.distance(e,t),s=r/o;l(i)||(i=[]);let a=i;a.length=o*3;let c=0;for(let u=0;u<o;u++){let f=yVe(e,t,u*s,r);a[c++]=f[0],a[c++]=f[1],a[c++]=f[2]}return a};Wo.subdivideTexcoordRhumbLine=function(e,t,n,i,o,r,s){let a=n.cartesianToCartographic(i,NN),c=n.cartesianToCartographic(o,FN);LN.setEndPoints(a,c);let u=LN.surfaceDistance/r,f=Math.max(0,Math.ceil(P.log2(u))),d=Math.pow(2,f),p=U.distance(e,t),g=p/d,m=s;m.length=d*2;let x=0;for(let b=0;b<d;b++){let T=poe(e,t,b*g,p);m[x++]=T[0],m[x++]=T[1]}return m};Wo.subdivideRhumbLine=function(e,t,n,i,o){let r=e.cartesianToCartographic(t,NN),s=e.cartesianToCartographic(n,FN),a=new ja(r,s,e),c=a.surfaceDistance/i,u=Math.max(0,Math.ceil(P.log2(c))),f=Math.pow(2,u),d=a.surfaceDistance/f;l(o)||(o=[]);let p=o;p.length=f*3;let g=0;for(let m=0;m<f;m++){let x=a.interpolateUsingSurfaceDistance(m*d,xVe),b=e.cartographicToCartesian(x,bVe);p[g++]=b.x,p[g++]=b.y,p[g++]=b.z}return p};var TVe=new h,AVe=new h,CVe=new h,EVe=new h;Wo.scaleToGeodeticHeightExtruded=function(e,t,n,i,o){i=y(i,ee.default);let r=TVe,s=AVe,a=CVe,c=EVe;if(l(e)&&l(e.attributes)&&l(e.attributes.position)){let u=e.attributes.position.values,f=u.length/2;for(let d=0;d<f;d+=3)h.fromArray(u,d,a),i.geodeticSurfaceNormal(a,r),c=i.scaleToGeodeticSurface(a,c),s=h.multiplyByScalar(r,n,s),s=h.add(c,s,s),u[d+f]=s.x,u[d+1+f]=s.y,u[d+2+f]=s.z,o&&(c=h.clone(a,c)),s=h.multiplyByScalar(r,t,s),s=h.add(c,s,s),u[d]=s.x,u[d+1]=s.y,u[d+2]=s.z}return e};Wo.polygonOutlinesFromHierarchy=function(e,t,n){let i=[],o=new ox;o.enqueue(e);let r,s,a;for(;o.length!==0;){let c=o.dequeue(),u=c.positions;if(t)for(a=u.length,r=0;r<a;r++)n.scaleToGeodeticSurface(u[r],u[r]);if(u=bo(u,h.equalsEpsilon,!0),u.length<3)continue;let f=c.holes?c.holes.length:0;for(r=0;r<f;r++){let d=c.holes[r],p=d.positions;if(t)for(a=p.length,s=0;s<a;++s)n.scaleToGeodeticSurface(p[s],p[s]);if(p=bo(p,h.equalsEpsilon,!0),p.length<3)continue;i.push(p);let g=0;for(l(d.holes)&&(g=d.holes.length),s=0;s<g;s++)o.enqueue(d.holes[s])}i.push(u)}return i};var SVe=new fe;function vVe(e,t,n){let i=n.cartesianToCartographic(e,NN),o=n.cartesianToCartographic(t,FN);if(Math.sign(i.latitude)===Math.sign(o.latitude))return;LN.setEndPoints(i,o);let r=LN.findIntersectionWithLatitude(0,SVe);if(!l(r))return;let s=Math.min(i.longitude,o.longitude),a=Math.max(i.longitude,o.longitude);if(Math.abs(a-s)>P.PI){let c=s;s=a,a=c}if(!(r.longitude<s||r.longitude>a))return n.cartographicToCartesian(r)}function wVe(e,t,n,i){if(i===tn.RHUMB)return vVe(e,t,n);let o=$n.lineSegmentPlane(e,t,an.ORIGIN_XY_PLANE);if(l(o))return n.scaleToGeodeticSurface(o,o)}var DVe=new fe;function IVe(e,t,n){let i=[],o,r,s,a,c,u=0;for(;u<e.length;){o=e[u],r=e[(u+1)%e.length],s=P.sign(o.z),a=P.sign(r.z);let f=d=>t.cartesianToCartographic(d,DVe).longitude;if(s===0)i.push({position:u,type:s,visited:!1,next:a,theta:f(o)});else if(a!==0){if(c=wVe(o,r,t,n),++u,!l(c))continue;e.splice(u,0,c),i.push({position:u,type:s,visited:!1,next:a,theta:f(c)})}++u}return i}function _oe(e,t,n,i,o,r,s){let a=[],c=r,u=d=>p=>p.position===d,f=[];do{let d=n[c];a.push(d);let p=i.findIndex(u(c)),g=i[p];if(!l(g)){++c;continue}let{visited:m,type:x,next:b}=g;if(g.visited=!0,x===0){if(b===0){let S=i[p-(s?1:-1)];if(S?.position===c+1)S.visited=!0;else{++c;continue}}if(!m&&s&&b>0||r===c&&!s&&b<0){++c;continue}}if(!(s?x>=0:x<=0)){++c;continue}m||f.push(c);let A=p+(s?1:-1),C=i[A];if(!l(C)){++c;continue}c=C.position}while(c<n.length&&c>=0&&c!==r&&a.length<n.length);e.splice(t,o,a);for(let d of f)t=_oe(e,++t,n,i,0,d,!s);return t}Wo.splitPolygonsOnEquator=function(e,t,n,i){l(i)||(i=[]),i.splice(0,0,...e),i.length=e.length;let o=0;for(;o<i.length;){let r=i[o],s=r.slice();if(r.length<3){i[o]=s,++o;continue}let a=IVe(s,t,n);if(s.length===r.length||a.length<=1){i[o]=s,++o;continue}a.sort((u,f)=>u.theta-f.theta);let c=s[0].z>=0;o=_oe(i,o,s,a,1,0,c)}return i};Wo.polygonsFromHierarchy=function(e,t,n,i,o,r){let s=[],a=[],c=new ox;c.enqueue(e);let u=l(r);for(;c.length!==0;){let f=c.dequeue(),d=f.positions,p=f.holes,g,m;if(i)for(m=d.length,g=0;g<m;g++)o.scaleToGeodeticSurface(d[g],d[g]);if(t||(d=bo(d,h.equalsEpsilon,!0)),d.length<3)continue;let x=n(d);if(!l(x))continue;let b=[],T=ri.computeWindingOrder2D(x);if(T===gs.CLOCKWISE&&(x.reverse(),d=d.slice().reverse()),u){u=!1;let D=[d];if(D=r(D,D),D.length>1){for(let O of D)c.enqueue(new qa(O,p));continue}}let A=d.slice(),C=l(p)?p.length:0,S=[],v;for(g=0;g<C;g++){let D=p[g],O=D.positions;if(i)for(m=O.length,v=0;v<m;++v)o.scaleToGeodeticSurface(O[v],O[v]);if(t||(O=bo(O,h.equalsEpsilon,!0)),O.length<3)continue;let R=n(O);if(!l(R))continue;T=ri.computeWindingOrder2D(R),T===gs.CLOCKWISE&&(R.reverse(),O=O.slice().reverse()),S.push(O),b.push(A.length),A=A.concat(O),x=x.concat(R);let M=0;for(l(D.holes)&&(M=D.holes.length),v=0;v<M;v++)c.enqueue(D.holes[v])}s.push({outerRing:d,holes:S}),a.push({positions:A,positions2D:x,holes:b})}return{hierarchy:s,polygons:a}};var PVe=new U,RVe=new h,OVe=new Me,MVe=new $;Wo.computeBoundingRectangle=function(e,t,n,i,o){let r=Me.fromAxisAngle(e,i,OVe),s=$.fromQuaternion(r,MVe),a=Number.POSITIVE_INFINITY,c=Number.NEGATIVE_INFINITY,u=Number.POSITIVE_INFINITY,f=Number.NEGATIVE_INFINITY,d=n.length;for(let p=0;p<d;++p){let g=h.clone(n[p],RVe);$.multiplyByVector(s,g,g);let m=t(g,PVe);l(m)&&(a=Math.min(a,m.x),c=Math.max(c,m.x),u=Math.min(u,m.y),f=Math.max(f,m.y))}return o.x=a,o.y=u,o.width=c-a,o.height=f-u,o};Wo.createGeometryFromPositions=function(e,t,n,i,o,r,s){let a=ri.triangulate(t.positions2D,t.holes);a.length<3&&(a=[0,1,2]);let c=t.positions,u=l(n),f=u?n.positions:void 0;if(o){let d=c.length,p=new Array(d*3),g=0;for(let b=0;b<d;b++){let T=c[b];p[g++]=T.x,p[g++]=T.y,p[g++]=T.z}let m={attributes:{position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:p})},indices:a,primitiveType:Le.TRIANGLES};u&&(m.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:U.packArray(f)}));let x=new ft(m);return r.normal?Nn.computeNormal(x):x}if(s===tn.GEODESIC)return ri.computeSubdivision(e,c,a,f,i);if(s===tn.RHUMB)return ri.computeRhumbLineSubdivision(e,c,a,f,i)};var hoe=[],moe=[],LVe=new h,NVe=new h;Wo.computeWallGeometry=function(e,t,n,i,o,r){let s,a,c,u,f,d,p,g,m,x=e.length,b=0,T=0,A=l(t),C=A?t.positions:void 0;if(o)for(a=x*3*2,s=new Array(a*2),A&&(m=x*2*2,g=new Array(m*2)),c=0;c<x;c++)u=e[c],f=e[(c+1)%x],s[b]=s[b+a]=u.x,++b,s[b]=s[b+a]=u.y,++b,s[b]=s[b+a]=u.z,++b,s[b]=s[b+a]=f.x,++b,s[b]=s[b+a]=f.y,++b,s[b]=s[b+a]=f.z,++b,A&&(d=C[c],p=C[(c+1)%x],g[T]=g[T+m]=d.x,++T,g[T]=g[T+m]=d.y,++T,g[T]=g[T+m]=p.x,++T,g[T]=g[T+m]=p.y,++T);else{let R=P.chordLength(i,n.maximumRadius),M=0;if(r===tn.GEODESIC)for(c=0;c<x;c++)M+=Wo.subdivideLineCount(e[c],e[(c+1)%x],R);else if(r===tn.RHUMB)for(c=0;c<x;c++)M+=Wo.subdivideRhumbLineCount(n,e[c],e[(c+1)%x],R);for(a=(M+x)*3,s=new Array(a*2),A&&(m=(M+x)*2,g=new Array(m*2)),c=0;c<x;c++){u=e[c],f=e[(c+1)%x];let L,_;A&&(d=C[c],p=C[(c+1)%x]),r===tn.GEODESIC?(L=Wo.subdivideLine(u,f,R,moe),A&&(_=Wo.subdivideTexcoordLine(d,p,u,f,R,hoe))):r===tn.RHUMB&&(L=Wo.subdivideRhumbLine(n,u,f,R,moe),A&&(_=Wo.subdivideTexcoordRhumbLine(d,p,n,u,f,R,hoe)));let E=L.length;for(let w=0;w<E;++w,++b)s[b]=L[w],s[b+a]=L[w];if(s[b]=f.x,s[b+a]=f.x,++b,s[b]=f.y,s[b+a]=f.y,++b,s[b]=f.z,s[b+a]=f.z,++b,A){let w=_.length;for(let I=0;I<w;++I,++T)g[T]=_[I],g[T+m]=_[I];g[T]=p.x,g[T+m]=p.x,++T,g[T]=p.y,g[T+m]=p.y,++T}}}x=s.length;let S=Ne.createTypedArray(x/3,x-e.length*6),v=0;for(x/=6,c=0;c<x;c++){let R=c,M=R+1,L=R+x,_=L+1;u=h.fromArray(s,R*3,LVe),f=h.fromArray(s,M*3,NVe),!h.equalsEpsilon(u,f,P.EPSILON10,P.EPSILON10)&&(S[v++]=R,S[v++]=L,S[v++]=M,S[v++]=M,S[v++]=L,S[v++]=_)}let D={attributes:new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),indices:S,primitiveType:Le.TRIANGLES};return A&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),new ft(D)};var Un=Wo;function Mr(e,t){this.position=e,l(this.position)||(this.position=new U),this.tangentPlane=t,l(this.tangentPlane)||(this.tangentPlane=Mr.NORTH_POLE_TANGENT_PLANE)}Object.defineProperties(Mr.prototype,{ellipsoid:{get:function(){return this.tangentPlane.ellipsoid}},x:{get:function(){return this.position.x}},y:{get:function(){return this.position.y}},conformalLatitude:{get:function(){let e=U.magnitude(this.position),t=2*this.ellipsoid.maximumRadius;return this.tangentPlane.plane.normal.z*(P.PI_OVER_TWO-2*Math.atan2(e,t))}},longitude:{get:function(){let e=P.PI_OVER_TWO+Math.atan2(this.y,this.x);return e>Math.PI&&(e-=P.TWO_PI),e}}});var xA=new fe,FVe=new h;Mr.prototype.getLatitude=function(e){l(e)||(e=ee.default),xA.latitude=this.conformalLatitude,xA.longitude=this.longitude,xA.height=0;let t=this.ellipsoid.cartographicToCartesian(xA,FVe);return e.cartesianToCartographic(t,xA),xA.latitude};var BVe=new mn,kVe=new h,VVe=new h;Mr.fromCartesian=function(e,t){let n=P.signNotZero(e.z),i=Mr.NORTH_POLE_TANGENT_PLANE,o=Mr.SOUTH_POLE;n<0&&(i=Mr.SOUTH_POLE_TANGENT_PLANE,o=Mr.NORTH_POLE);let r=BVe;r.origin=i.ellipsoid.scaleToGeocentricSurface(e,r.origin),r.direction=h.subtract(r.origin,o,kVe),h.normalize(r.direction,r.direction);let s=$n.rayPlane(r,i.plane,VVe),a=h.subtract(s,o,s),c=h.dot(i.xAxis,a),u=n*h.dot(i.yAxis,a);return l(t)?(t.position=new U(c,u),t.tangentPlane=i,t):new Mr(new U(c,u),i)};Mr.fromCartesianArray=function(e,t){let n=e.length;l(t)?t.length=n:t=new Array(n);for(let i=0;i<n;i++)t[i]=Mr.fromCartesian(e[i],t[i]);return t};Mr.clone=function(e,t){if(l(e))return l(t)?(t.position=e.position,t.tangentPlane=e.tangentPlane,t):new Mr(e.position,e.tangentPlane)};Mr.HALF_UNIT_SPHERE=Object.freeze(new ee(.5,.5,.5));Mr.NORTH_POLE=Object.freeze(new h(0,0,.5));Mr.SOUTH_POLE=Object.freeze(new h(0,0,-.5));Mr.NORTH_POLE_TANGENT_PLANE=Object.freeze(new ts(Mr.NORTH_POLE,Mr.HALF_UNIT_SPHERE));Mr.SOUTH_POLE_TANGENT_PLANE=Object.freeze(new ts(Mr.SOUTH_POLE,Mr.HALF_UNIT_SPHERE));var Rc=Mr;var UVe=new fe,goe=new fe;function zVe(e,t,n,i){let r=i.cartesianToCartographic(e,UVe).height,s=i.cartesianToCartographic(t,goe);s.height=r,i.cartographicToCartesian(s,t);let a=i.cartesianToCartographic(n,goe);a.height=r-100,i.cartographicToCartesian(a,n)}var yoe=new qe,HVe=new h,GVe=new h,WVe=new h,jVe=new h,qVe=new h,YVe=new h,BN=new h,Vh=new h,bA=new h,XVe=new U,KVe=new U,ZVe=new h,xoe=new Me,$Ve=new $,QVe=new $;function W9(e){let t=e.vertexFormat,n=e.geometry,i=e.shadowVolume,o=n.attributes.position.values,r=l(n.attributes.st)?n.attributes.st.values:void 0,s=o.length,a=e.wall,c=e.top||a,u=e.bottom||a;if(t.st||t.normal||t.tangent||t.bitangent||i){let f=e.boundingRectangle,d=e.rotationAxis,p=e.projectTo2d,g=e.ellipsoid,m=e.stRotation,x=e.perPositionHeight,b=XVe;b.x=f.x,b.y=f.y;let T=t.st?new Float32Array(2*(s/3)):void 0,A;t.normal&&(x&&c&&!a?A=n.attributes.normal.values:A=new Float32Array(s));let C=t.tangent?new Float32Array(s):void 0,S=t.bitangent?new Float32Array(s):void 0,v=i?new Float32Array(s):void 0,D=0,O=0,R=GVe,M=WVe,L=jVe,_=!0,E=$Ve,w=QVe;if(m!==0){let B=Me.fromAxisAngle(d,m,xoe);E=$.fromQuaternion(B,E),B=Me.fromAxisAngle(d,-m,xoe),w=$.fromQuaternion(B,w)}else E=$.clone($.IDENTITY,E),w=$.clone($.IDENTITY,w);let I=0,N=0;c&&u&&(I=s/2,N=s/3,s/=2);for(let B=0;B<s;B+=3){let H=h.fromArray(o,B,ZVe);if(t.st&&!l(r)){let V=$.multiplyByVector(E,H,HVe);V=g.scaleToGeodeticSurface(V,V);let G=p([V],KVe)[0];U.subtract(G,b,G);let k=P.clamp(G.x/f.width,0,1),W=P.clamp(G.y/f.height,0,1);u&&(T[D+N]=k,T[D+1+N]=W),c&&(T[D]=k,T[D+1]=W),D+=2}if(t.normal||t.tangent||t.bitangent||i){let V=O+1,G=O+2;if(a){if(B+3<s){let k=h.fromArray(o,B+3,qVe);if(_){let W=h.fromArray(o,B+s,YVe);x&&zVe(H,k,W,g),h.subtract(k,H,k),h.subtract(W,H,W),R=h.normalize(h.cross(W,k,R),R),_=!1}h.equalsEpsilon(k,H,P.EPSILON10)&&(_=!0)}(t.tangent||t.bitangent)&&(L=g.geodeticSurfaceNormal(H,L),t.tangent&&(M=h.normalize(h.cross(L,R,M),M)))}else R=g.geodeticSurfaceNormal(H,R),(t.tangent||t.bitangent)&&(x&&(BN=h.fromArray(A,O,BN),Vh=h.cross(h.UNIT_Z,BN,Vh),Vh=h.normalize($.multiplyByVector(w,Vh,Vh),Vh),t.bitangent&&(bA=h.normalize(h.cross(BN,Vh,bA),bA))),M=h.cross(h.UNIT_Z,R,M),M=h.normalize($.multiplyByVector(w,M,M),M),t.bitangent&&(L=h.normalize(h.cross(R,M,L),L)));t.normal&&(e.wall?(A[O+I]=R.x,A[V+I]=R.y,A[G+I]=R.z):u&&(A[O+I]=-R.x,A[V+I]=-R.y,A[G+I]=-R.z),(c&&!x||a)&&(A[O]=R.x,A[V]=R.y,A[G]=R.z)),i&&(a&&(R=g.geodeticSurfaceNormal(H,R)),v[O+I]=-R.x,v[V+I]=-R.y,v[G+I]=-R.z),t.tangent&&(e.wall?(C[O+I]=M.x,C[V+I]=M.y,C[G+I]=M.z):u&&(C[O+I]=-M.x,C[V+I]=-M.y,C[G+I]=-M.z),c&&(x?(C[O]=Vh.x,C[V]=Vh.y,C[G]=Vh.z):(C[O]=M.x,C[V]=M.y,C[G]=M.z))),t.bitangent&&(u&&(S[O+I]=L.x,S[V+I]=L.y,S[G+I]=L.z),c&&(x?(S[O]=bA.x,S[V]=bA.y,S[G]=bA.z):(S[O]=L.x,S[V]=L.y,S[G]=L.z))),O+=3}}t.st&&!l(r)&&(n.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T})),t.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:S})),i&&(n.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:v}))}if(e.extrude&&l(e.offsetAttribute)){let f=o.length/3,d=new Uint8Array(f);if(e.offsetAttribute===sn.TOP)c&&u||a?d=d.fill(1,0,f/2):c&&(d=d.fill(1));else{let p=e.offsetAttribute===sn.NONE?0:1;d=d.fill(p)}n.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}return n}var boe=[];function JVe(e,t,n,i,o,r,s,a,c,u){let f={walls:[]},d;if(s||a){let A=Un.createGeometryFromPositions(e,t,n,i,r,c,u),C=A.attributes.position.values,S=A.indices,v,D;if(s&&a){let O=C.concat(C);v=O.length/3,D=Ne.createTypedArray(v,S.length*2),D.set(S);let R=S.length,M=v/2;for(d=0;d<R;d+=3){let L=D[d]+M,_=D[d+1]+M,E=D[d+2]+M;D[d+R]=E,D[d+1+R]=_,D[d+2+R]=L}if(A.attributes.position.values=O,r&&c.normal){let L=A.attributes.normal.values;A.attributes.normal.values=new Float32Array(O.length),A.attributes.normal.values.set(L)}if(c.st&&l(n)){let L=A.attributes.st.values;A.attributes.st.values=new Float32Array(v*2),A.attributes.st.values=L.concat(L)}A.indices=D}else if(a){for(v=C.length/3,D=Ne.createTypedArray(v,S.length),d=0;d<S.length;d+=3)D[d]=S[d+2],D[d+1]=S[d+1],D[d+2]=S[d];A.indices=D}f.topAndBottom=new vt({geometry:A})}let p=o.outerRing,g=ts.fromPoints(p,e),m=g.projectPointsOntoPlane(p,boe),x=ri.computeWindingOrder2D(m);x===gs.CLOCKWISE&&(p=p.slice().reverse());let b=Un.computeWallGeometry(p,n,e,i,r,u);f.walls.push(new vt({geometry:b}));let T=o.holes;for(d=0;d<T.length;d++){let A=T[d];m=g.projectPointsOntoPlane(A,boe),x=ri.computeWindingOrder2D(m),x===gs.COUNTER_CLOCKWISE&&(A=A.slice().reverse()),b=Un.computeWallGeometry(A,n,e,i,r,u),f.walls.push(new vt({geometry:b}))}return f}function cf(e){let t=e.polygonHierarchy,n=y(e.vertexFormat,Pe.DEFAULT),i=y(e.ellipsoid,ee.default),o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.stRotation,0),s=e.textureCoordinates,a=y(e.perPositionHeight,!1),c=a&&l(e.extrudedHeight),u=y(e.height,0),f=y(e.extrudedHeight,u);if(!c){let d=Math.max(u,f);f=Math.min(u,f),u=d}this._vertexFormat=Pe.clone(n),this._ellipsoid=ee.clone(i),this._granularity=o,this._stRotation=r,this._height=u,this._extrudedHeight=f,this._closeTop=y(e.closeTop,!0),this._closeBottom=y(e.closeBottom,!0),this._polygonHierarchy=t,this._perPositionHeight=a,this._perPositionHeightExtrude=c,this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createPolygonGeometry",this._offsetAttribute=e.offsetAttribute,this._arcType=y(e.arcType,tn.GEODESIC),this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0,this._textureCoordinates=s,this.packedLength=Un.computeHierarchyPackedLength(t,h)+ee.packedLength+Pe.packedLength+(s?Un.computeHierarchyPackedLength(s,U):1)+12}cf.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,closeTop:e.closeTop,closeBottom:e.closeBottom,offsetAttribute:e.offsetAttribute,arcType:e.arcType,textureCoordinates:e.textureCoordinates};return new cf(t)};cf.pack=function(e,t,n){return n=y(n,0),n=Un.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._stRotation,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._closeTop?1:0,t[n++]=e._closeBottom?1:0,t[n++]=e._shadowVolume?1:0,t[n++]=y(e._offsetAttribute,-1),t[n++]=e._arcType,l(e._textureCoordinates)?n=Un.packPolygonHierarchy(e._textureCoordinates,t,n,U):t[n++]=-1,t[n++]=e.packedLength,t};var eUe=ee.clone(ee.UNIT_SPHERE),tUe=new Pe,nUe={polygonHierarchy:{}};cf.unpack=function(e,t,n){t=y(t,0);let i=Un.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,eUe);t+=ee.packedLength;let r=Pe.unpack(e,t,tUe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++]===1,d=e[t++]===1,p=e[t++]===1,g=e[t++]===1,m=e[t++]===1,x=e[t++],b=e[t++],T=e[t]===-1?void 0:Un.unpackPolygonHierarchy(e,t,U);l(T)?(t=T.startingIndex,delete T.startingIndex):t++;let A=e[t++];return l(n)||(n=new cf(nUe)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._height=s,n._extrudedHeight=a,n._granularity=c,n._stRotation=u,n._perPositionHeightExtrude=f,n._perPositionHeight=d,n._closeTop=p,n._closeBottom=g,n._shadowVolume=m,n._offsetAttribute=x===-1?void 0:x,n._arcType=b,n._textureCoordinates=T,n.packedLength=A,n};var iUe=new U,oUe=new U,rUe=new Rc;function Toe(e,t,n,i,o,r){let s=e.longitude,a=s>=0?s:s+P.TWO_PI;o.westOverIdl=Math.min(o.westOverIdl,a),o.eastOverIdl=Math.max(o.eastOverIdl,a),r.west=Math.min(r.west,s),r.east=Math.max(r.east,s);let c=e.getLatitude(n),u=c;if(r.south=Math.min(r.south,c),r.north=Math.max(r.north,c),i!==tn.RHUMB){let p=U.subtract(t.position,e.position,iUe),g=U.dot(t.position,p)/U.dot(p,p);if(g>0&&g<1){let m=U.add(t.position,U.multiplyByScalar(p,-g,p),oUe),x=Rc.clone(t,rUe);x.position=m;let b=x.getLatitude(n);r.south=Math.min(r.south,b),r.north=Math.max(r.north,b),Math.abs(c)>Math.abs(b)&&(u=b)}}let f=t.x*e.y-e.x*t.y,d=Math.sign(f);d!==0&&(d*=U.angleBetween(t.position,e.position)),u>=0&&(o.northAngle+=d),u<=0&&(o.southAngle+=d)}var Aoe=new Rc,sUe=new Rc,af={northAngle:0,southAngle:0,westOverIdl:0,eastOverIdl:0};cf.computeRectangleFromPositions=function(e,t,n,i){if(l(i)||(i=new re),e.length<3)return i;i.west=Number.POSITIVE_INFINITY,i.east=Number.NEGATIVE_INFINITY,i.south=Number.POSITIVE_INFINITY,i.north=Number.NEGATIVE_INFINITY,af.northAngle=0,af.southAngle=0,af.westOverIdl=Number.POSITIVE_INFINITY,af.eastOverIdl=Number.NEGATIVE_INFINITY;let o=e.length,r=Rc.fromCartesian(e[0],sUe);for(let s=1;s<o;s++){let a=Rc.fromCartesian(e[s],Aoe);Toe(a,r,t,n,af,i),r=Rc.clone(a,r)}return Toe(Rc.fromCartesian(e[0],Aoe),r,t,n,af,i),i.east-i.west>af.eastOverIdl-af.westOverIdl&&(i.west=af.westOverIdl,i.east=af.eastOverIdl,i.east>P.PI&&(i.east=i.east-P.TWO_PI),i.west>P.PI&&(i.west=i.west-P.TWO_PI)),P.equalsEpsilon(Math.abs(af.northAngle),P.TWO_PI,P.EPSILON10)&&(i.north=P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),P.equalsEpsilon(Math.abs(af.southAngle),P.TWO_PI,P.EPSILON10)&&(i.south=-P.PI_OVER_TWO,i.east=P.PI,i.west=-P.PI),i};var aUe=new Rc;function cUe(e,t,n){return e.height>=P.PI||e.width>=P.PI?Rc.fromCartesian(t[0],aUe).tangentPlane:ts.fromPoints(t,n)}var Coe=new fe;function lUe(e,t,n){return(i,o)=>{if(e.height>=P.PI||e.width>=P.PI){if(e.south<0&&e.north>0){l(o)||(o=[]);for(let s=0;s<i.length;++s){let a=n.cartesianToCartographic(i[s],Coe);o[s]=new U(a.longitude/P.PI,a.latitude/P.PI_OVER_TWO)}return o.length=i.length,o}return Rc.fromCartesianArray(i,o)}return ts.fromPoints(t,n).projectPointsOntoPlane(i,o)}}function uUe(e,t,n){if(e.height>=P.PI||e.width>=P.PI)return(o,r)=>{if(e.south<0&&e.north>0){let s=n.cartesianToCartographic(o,Coe);return l(r)||(r=new U),r.x=s.longitude/P.PI,r.y=s.latitude/P.PI_OVER_TWO,r}return Rc.fromCartesian(o,r)};let i=ts.fromPoints(t,n);return(o,r)=>i.projectPointsOntoPlane(o,r)}function fUe(e,t,n,i){return(o,r)=>!i&&(e.height>=P.PI_OVER_TWO||e.width>=2*P.PI_OVER_THREE)?Un.splitPolygonsOnEquator(o,t,n,r):o}function dUe(e,t,n,i){if(t.height>=P.PI||t.width>=P.PI)return qe.fromRectangle(t,void 0,yoe);let o=e,r=ts.fromPoints(o,n);return Un.computeBoundingRectangle(r.plane.normal,r.projectPointOntoPlane.bind(r),o,i,yoe)}cf.createGeometry=function(e){let t=e._vertexFormat,n=e._ellipsoid,i=e._granularity,o=e._stRotation,r=e._polygonHierarchy,s=e._perPositionHeight,a=e._closeTop,c=e._closeBottom,u=e._arcType,f=e._textureCoordinates,d=l(f),p=r.positions;if(p.length<3)return;let g=e.rectangle,m=Un.polygonsFromHierarchy(r,d,lUe(g,p,n),!s,n,fUe(g,n,u,s)),x=m.hierarchy,b=m.polygons,T=function(I){return I},A=d?Un.polygonsFromHierarchy(f,!0,T,!1,n).polygons:void 0;if(x.length===0)return;let C=x[0].outerRing,S=dUe(C,g,n,o),v=[],D=e._height,O=e._extrudedHeight,R=e._perPositionHeightExtrude||!P.equalsEpsilon(D,O,0,P.EPSILON2),M={perPositionHeight:s,vertexFormat:t,geometry:void 0,rotationAxis:cUe(g,C,n).plane.normal,projectTo2d:uUe(g,C,n),boundingRectangle:S,ellipsoid:n,stRotation:o,textureCoordinates:void 0,bottom:!1,top:!0,wall:!1,extrude:!1,arcType:u},L;if(R)for(M.extrude=!0,M.top=a,M.bottom=c,M.shadowVolume=e._shadowVolume,M.offsetAttribute=e._offsetAttribute,L=0;L<b.length;L++){let I=JVe(n,b[L],d?A[L]:void 0,i,x[L],s,a,c,t,u),N;a&&c?(N=I.topAndBottom,M.geometry=Un.scaleToGeodeticHeightExtruded(N.geometry,D,O,n,s)):a?(N=I.topAndBottom,N.geometry.attributes.position.values=ri.scaleToGeodeticHeight(N.geometry.attributes.position.values,D,n,!s),M.geometry=N.geometry):c&&(N=I.topAndBottom,N.geometry.attributes.position.values=ri.scaleToGeodeticHeight(N.geometry.attributes.position.values,O,n,!0),M.geometry=N.geometry),(a||c)&&(M.wall=!1,N.geometry=W9(M),v.push(N));let B=I.walls;M.wall=!0;for(let H=0;H<B.length;H++){let V=B[H];M.geometry=Un.scaleToGeodeticHeightExtruded(V.geometry,D,O,n,s),V.geometry=W9(M),v.push(V)}}else for(L=0;L<b.length;L++){let I=new vt({geometry:Un.createGeometryFromPositions(n,b[L],d?A[L]:void 0,i,s,t,u)});if(I.geometry.attributes.position.values=ri.scaleToGeodeticHeight(I.geometry.attributes.position.values,D,n,!s),M.geometry=I.geometry,I.geometry=W9(M),l(e._offsetAttribute)){let N=I.geometry.attributes.position.values.length,B=e._offsetAttribute===sn.NONE?0:1,H=new Uint8Array(N/3).fill(B);I.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:H})}v.push(I)}let _=Nn.combineInstances(v)[0];_.attributes.position.values=new Float64Array(_.attributes.position.values),_.indices=Ne.createTypedArray(_.attributes.position.values.length/3,_.indices);let E=_.attributes,w=se.fromVertices(E.position.values);return t.position||delete E.position,new ft({attributes:E,indices:_.indices,primitiveType:_.primitiveType,boundingSphere:w,offsetAttribute:e._offsetAttribute})};cf.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new cf({polygonHierarchy:e._polygonHierarchy,ellipsoid:o,stRotation:e._stRotation,granularity:i,perPositionHeight:!1,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0,arcType:e._arcType})};function hUe(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let n=e._ellipsoid,i=e._polygonHierarchy.positions,o=e.rectangle;return ft._textureCoordinateRotationPoints(i,t,n,o)}Object.defineProperties(cf.prototype,{rectangle:{get:function(){if(!l(this._rectangle)){let e=this._polygonHierarchy.positions;this._rectangle=cf.computeRectangleFromPositions(e,this._ellipsoid,this._arcType)}return this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=hUe(this)),this._textureCoordinateRotationPoints}}});var xg=cf;function sx(e){this._ellipsoid=y(e.ellipsoid,ee.default),this._positions=[...e.positions]}Object.defineProperties(sx.prototype,{length:{get:function(){return this._positions.length}},positions:{get:function(){return this._positions}},ellipsoid:{get:function(){return this._ellipsoid}}});sx.clone=function(e,t){return l(t)?(t._ellipsoid=e.ellipsoid,t._positions.length=0,t._positions.push(...e.positions),t):new sx({positions:e.positions,ellipsoid:e.ellipsoid})};sx.equals=function(e,t){return e.ellipsoid.equals(t.ellipsoid)&&e.positions===t.positions};sx.prototype.computeRectangle=function(e){return xg.computeRectangleFromPositions(this.positions,this.ellipsoid,void 0,e)};var mUe=new re,Eoe=new h;sx.prototype.computeSphericalExtents=function(e){l(e)||(e=new re);let t=this.computeRectangle(mUe),n=fe.toCartesian(re.southwest(t),this.ellipsoid,Eoe),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y);return e.south=o,e.west=r,n=fe.toCartesian(re.northeast(t),this.ellipsoid,Eoe),i=Math.sqrt(n.x*n.x+n.y*n.y),o=P.fastApproximateAtan2(i,n.z),r=P.fastApproximateAtan2(n.x,n.y),e.north=o,e.east=r,e};var rw=sx;var kN=`in vec2 v_textureCoordinates; + +uniform int u_polygonsLength; +uniform int u_extentsLength; +uniform highp sampler2D u_polygonTexture; +uniform highp sampler2D u_extentsTexture; + +int getPolygonIndex(float dimension, vec2 coord) { + vec2 uv = coord.xy * dimension; + return int(floor(uv.y) * dimension + floor(uv.x)); +} + +vec2 getLookupUv(ivec2 dimensions, int i) { + int pixY = i / dimensions.x; + int pixX = i - (pixY * dimensions.x); + float pixelWidth = 1.0 / float(dimensions.x); + float pixelHeight = 1.0 / float(dimensions.y); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + return vec2(u, v); +} + +vec4 getExtents(int i) { + return texture(u_extentsTexture, getLookupUv(textureSize(u_extentsTexture, 0), i)); +} + +ivec2 getPositionsLengthAndExtentsIndex(int i) { + vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); + vec4 value = texture(u_polygonTexture, uv); + return ivec2(int(value.x), int(value.y)); +} + +vec2 getPolygonPosition(int i) { + vec2 uv = getLookupUv(textureSize(u_polygonTexture, 0), i); + return texture(u_polygonTexture, uv).xy; +} + +vec2 getCoordinates(vec2 textureCoordinates, vec4 extents) { + float latitude = mix(extents.x, extents.x + 1.0 / extents.z, textureCoordinates.y); + float longitude = mix(extents.y, extents.y + 1.0 / extents.w, textureCoordinates.x); + return vec2(latitude, longitude); +} + +void main() { + int lastPolygonIndex = 0; + out_FragColor = vec4(1.0); + + // Get the relevant region of the texture + float dimension = float(u_extentsLength); + if (u_extentsLength > 2) { + dimension = ceil(log2(float(u_extentsLength))); + } + int regionIndex = getPolygonIndex(dimension, v_textureCoordinates); + + for (int polygonIndex = 0; polygonIndex < u_polygonsLength; polygonIndex++) { + ivec2 positionsLengthAndExtents = getPositionsLengthAndExtentsIndex(lastPolygonIndex); + int positionsLength = positionsLengthAndExtents.x; + int polygonExtentsIndex = positionsLengthAndExtents.y; + lastPolygonIndex += 1; + + // Only compute signed distance for the relevant part of the atlas + if (polygonExtentsIndex == regionIndex) { + float clipAmount = czm_infinity; + vec4 extents = getExtents(polygonExtentsIndex); + vec2 textureOffset = vec2(mod(float(polygonExtentsIndex), dimension), floor(float(polygonExtentsIndex) / dimension)) / dimension; + vec2 p = getCoordinates((v_textureCoordinates - textureOffset) * dimension, extents); + float s = 1.0; + + // Check each edge for absolute distance + for (int i = 0, j = positionsLength - 1; i < positionsLength; j = i, i++) { + vec2 a = getPolygonPosition(lastPolygonIndex + i); + vec2 b = getPolygonPosition(lastPolygonIndex + j); + + vec2 ab = b - a; + vec2 pa = p - a; + float t = dot(pa, ab) / dot(ab, ab); + t = clamp(t, 0.0, 1.0); + + vec2 pq = pa - t * ab; + float d = length(pq); + + // Inside / outside computation to determine sign + bvec3 cond = bvec3(p.y >= a.y, + p.y < b.y, + ab.x * pa.y > ab.y * pa.x); + if (all(cond) || all(not(cond))) s = -s; + if (abs(d) < abs(clipAmount)) { + clipAmount = d; + } + } + + // Normalize the range to [0,1] + vec4 result = (s * vec4(clipAmount * length(extents.zw))) / 2.0 + 0.5; + // In the case where we've iterated through multiple polygons, take the minimum + out_FragColor = min(out_FragColor, result); + } + + lastPolygonIndex += positionsLength; + } +}`;function Wr(e){e=y(e,y.EMPTY_OBJECT),this._polygons=[],this._totalPositions=0,this.enabled=y(e.enabled,!0),this.inverse=y(e.inverse,!1),this.polygonAdded=new me,this.polygonRemoved=new me,this._owner=void 0,this._float32View=void 0,this._extentsFloat32View=void 0,this._extentsCount=0,this._polygonsTexture=void 0,this._extentsTexture=void 0,this._signedDistanceTexture=void 0,this._signedDistanceComputeCommand=void 0;let t=e.polygons;if(l(t)){let n=t.length;for(let i=0;i<n;++i)this._polygons.push(t[i])}}Object.defineProperties(Wr.prototype,{length:{get:function(){return this._polygons.length}},totalPositions:{get:function(){return this._totalPositions}},extentsTexture:{get:function(){return this._extentsTexture}},extentsCount:{get:function(){return this._extentsCount}},pixelsNeededForExtents:{get:function(){return this.length}},pixelsNeededForPolygonPositions:{get:function(){return this.totalPositions+this.length}},clippingTexture:{get:function(){return this._signedDistanceTexture}},owner:{get:function(){return this._owner}},clippingPolygonsState:{get:function(){return this.inverse?-this.extentsCount:this.extentsCount}}});Wr.prototype.add=function(e){let t=this._polygons.length;return this._polygons.push(e),this.polygonAdded.raiseEvent(e,t),e};Wr.prototype.get=function(e){return this._polygons[e]};Wr.prototype.contains=function(e){return this._polygons.some(t=>rw.equals(t,e))};Wr.prototype.remove=function(e){let t=this._polygons,n=t.findIndex(i=>rw.equals(i,e));return n===-1?!1:(t.splice(n,1),this.polygonRemoved.raiseEvent(e,n),!0)};var pUe=new re;function _Ue(e){let t=[],n=[],i=e.length;for(let r=0;r<i;++r){let a=e[r].computeSphericalExtents(),c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a);f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI);let d=[r];for(let p=0;p<t.length;++p){let g=t[p];if(l(g)&&l(re.simpleIntersection(g,f))&&!re.equals(g,f)){let m=n[p];d.push(...m),m.reduce((x,b)=>re.union(e[b].computeSphericalExtents(pUe),x,x),a),t[p]=void 0,n[p]=void 0,c=Math.max(a.height*2.5,.001),u=Math.max(a.width*2.5,.001),f=re.clone(a,f),f.south-=c,f.west-=u,f.north+=c,f.east+=u,f.south=Math.max(f.south,-Math.PI),f.west=Math.max(f.west,-Math.PI),f.north=Math.min(f.north,Math.PI),f.east=Math.min(f.east,Math.PI),p=-1}}t.push(f),n.push(d)}let o=new Map;return n.filter(l).forEach((r,s)=>r.forEach(a=>o.set(a,s))),{extentsList:t.filter(l),extentsIndexByPolygon:o}}Wr.prototype.removeAll=function(){let e=this._polygons,t=e.length;for(let n=0;n<t;++n){let i=e[n];this.polygonRemoved.raiseEvent(i,n)}this._polygons=[]};function gUe(e){let t=e._float32View,n=e._extentsFloat32View,i=e._polygons,{extentsList:o,extentsIndexByPolygon:r}=_Ue(i),s=0;for(let[c,u]of i.entries()){let f=u.length;t[s++]=f,t[s++]=r.get(c);for(let d=0;d<f;++d){let p=u.positions[d],g=Math.hypot(p.x,p.y),m=P.fastApproximateAtan2(g,p.z),x=P.fastApproximateAtan2(p.x,p.y);t[s++]=m,t[s++]=x}}let a=0;for(let c of o){let u=1/(c.east-c.west),f=1/(c.north-c.south);n[a++]=c.south,n[a++]=c.west,n[a++]=f,n[a++]=u}e._extentsCount=o.length}var j9=new U;Wr.prototype.update=function(e){let t=e.context;if(!Wr.isSupported(e))throw new ce("ClippingPolygonCollections are only supported for WebGL 2.");let n=this._polygons.reduce((s,a)=>s+a.length,0);if(n===this.totalPositions||(this._totalPositions=n,this.length===0))return;l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0,this._signedDistanceComputeCommand=void 0);let i=this._polygonsTexture,o=this._extentsTexture,r=this._signedDistanceTexture;if(l(i)){let s=i.width*i.height;(s<this.pixelsNeededForPolygonPositions||this.pixelsNeededForPolygonPositions<.25*s)&&(i.destroy(),i=void 0,this._polygonsTexture=void 0)}if(!l(i)){let s=Wr.getTextureResolution(i,this.pixelsNeededForPolygonPositions,j9);i=new Ot({context:t,width:s.x,height:s.y,pixelFormat:it.RG,pixelDatatype:Ze.FLOAT,sampler:Qt.NEAREST,flipY:!1}),this._float32View=new Float32Array(s.x*s.y*2),this._polygonsTexture=i}if(l(o)){let s=o.width*o.height;(s<this.pixelsNeededForExtents||this.pixelsNeededForExtents<.25*s)&&(o.destroy(),o=void 0,this._extentsTexture=void 0)}if(!l(o)){let s=Wr.getTextureResolution(o,this.pixelsNeededForExtents,j9);o=new Ot({context:t,width:s.x,height:s.y,pixelFormat:it.RGBA,pixelDatatype:Ze.FLOAT,sampler:Qt.NEAREST,flipY:!1}),this._extentsFloat32View=new Float32Array(s.x*s.y*4),this._extentsTexture=o}if(gUe(this),o.copyFrom({source:{width:o.width,height:o.height,arrayBufferView:this._extentsFloat32View}}),i.copyFrom({source:{width:i.width,height:i.height,arrayBufferView:this._float32View}}),!l(r)){let s=Wr.getClippingDistanceTextureResolution(this,j9);r=new Ot({context:t,width:s.x,height:s.y,pixelFormat:t.webgl2?it.RED:it.LUMINANCE,pixelDatatype:Ze.FLOAT,sampler:new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:di.LINEAR}),flipY:!1}),this._signedDistanceTexture=r}this._signedDistanceComputeCommand=yUe(this)};Wr.prototype.queueCommands=function(e){l(this._signedDistanceComputeCommand)&&e.commandList.push(this._signedDistanceComputeCommand)};function yUe(e){let t=e._polygonsTexture,n=e._extentsTexture;return new ol({fragmentShaderSource:kN,outputTexture:e._signedDistanceTexture,uniformMap:{u_polygonsLength:function(){return e.length},u_extentsLength:function(){return e.extentsCount},u_extentsTexture:function(){return n},u_polygonTexture:function(){return t}},persists:!1,owner:e,postExecute:()=>{e._signedDistanceComputeCommand=void 0}})}var Soe=new re,xUe=new re;Wr.prototype.computeIntersectionWithBoundingVolume=function(e,t){let n=this._polygons,i=n.length,o=Yt.OUTSIDE;this.inverse&&(o=Yt.INSIDE);for(let r=0;r<i;++r){let a=n[r].computeRectangle(),c=e.rectangle;if(!l(c)&&l(e.boundingVolume?.computeCorners)){let f=e.boundingVolume.computeCorners();c=re.fromCartesianArray(f,t,Soe)}l(c)||(c=re.fromBoundingSphere(e.boundingSphere,t,Soe));let u=re.simpleIntersection(c,a,xUe);l(u)&&(o=Yt.INTERSECTING)}return o};Wr.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};Wr.isSupported=function(e){return e?.context.webgl2};Wr.getTextureResolution=function(e,t,n){if(l(e))return n.x=e.width,n.y=e.height,n;let i=zt.maximumTextureSize;return n.x=Math.min(t,i),n.y=Math.ceil(t/n.x),n.y*=2,n};Wr.getClippingDistanceTextureResolution=function(e,t){let n=e.signedDistanceTexture;return l(n)?(t.x=n.width,t.y=n.height,t):(t.x=Math.min(zt.maximumTextureSize,4096),t.y=Math.min(zt.maximumTextureSize,4096),t)};Wr.getClippingExtentsTextureResolution=function(e,t){let n=e.extentsTexture;return l(n)?(t.x=n.width,t.y=n.height,t):Wr.getTextureResolution(n,e.pixelsNeededForExtents,t)};Wr.prototype.isDestroyed=function(){return!1};Wr.prototype.destroy=function(){return l(this._signedDistanceComputeCommand)&&(this._signedDistanceComputeCommand.canceled=!0),this._polygonsTexture=this._polygonsTexture&&this._polygonsTexture.destroy(),this._extentsTexture=this._extentsTexture&&this._extentsTexture.destroy(),this._signedDistanceTexture=this._signedDistanceTexture&&this._signedDistanceTexture.destroy(),ue(this)};var Uh=Wr;var sw={NONE:0,SCENE_LIGHT:1,SUNLIGHT:2};sw.fromGlobeFlags=function(e){return e.enableLighting&&e.dynamicAtmosphereLighting?e.dynamicAtmosphereLightingFromSun?sw.SUNLIGHT:sw.SCENE_LIGHT:sw.NONE};var bg=Object.freeze(sw);function voe(){this.lightIntensity=10,this.rayleighCoefficient=new h(55e-7,13e-6,284e-7),this.mieCoefficient=new h(21e-6,21e-6,21e-6),this.rayleighScaleHeight=1e4,this.mieScaleHeight=3200,this.mieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.dynamicLighting=bg.NONE}voe.requiresColorCorrect=function(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))};var TA=voe;var zh=`uniform vec3 u_radiiAndDynamicAtmosphereColor; + +uniform float u_atmosphereLightIntensity; +uniform float u_atmosphereRayleighScaleHeight; +uniform float u_atmosphereMieScaleHeight; +uniform float u_atmosphereMieAnisotropy; +uniform vec3 u_atmosphereRayleighCoefficient; +uniform vec3 u_atmosphereMieCoefficient; + +const float ATMOSPHERE_THICKNESS = 111e3; // The thickness of the atmosphere in meters. +const int PRIMARY_STEPS_MAX = 16; // Maximum number of times the ray from the camera to the world position (primary ray) is sampled. +const int LIGHT_STEPS_MAX = 4; // Maximum number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + +/** + * This function computes the colors contributed by Rayliegh and Mie scattering on a given ray, as well as + * the transmittance value for the ray. + * + * @param {czm_ray} primaryRay The ray from the camera to the position. + * @param {float} primaryRayLength The length of the primary ray. + * @param {vec3} lightDirection The direction of the light to calculate the scattering from. + * @param {vec3} rayleighColor The variable the Rayleigh scattering will be written to. + * @param {vec3} mieColor The variable the Mie scattering will be written to. + * @param {float} opacity The variable the transmittance will be written to. + * @glslFunction + */ +void computeScattering( + czm_ray primaryRay, + float primaryRayLength, + vec3 lightDirection, + float atmosphereInnerRadius, + out vec3 rayleighColor, + out vec3 mieColor, + out float opacity +) { + + // Initialize the default scattering amounts to 0. + rayleighColor = vec3(0.0); + mieColor = vec3(0.0); + opacity = 0.0; + + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + + vec3 origin = vec3(0.0); + + // Calculate intersection from the camera to the outer ring of the atmosphere. + czm_raySegment primaryRayAtmosphereIntersect = czm_raySphereIntersectionInterval(primaryRay, origin, atmosphereOuterRadius); + + // Return empty colors if no intersection with the atmosphere geometry. + if (primaryRayAtmosphereIntersect == czm_emptyRaySegment) { + return; + } + + // To deal with smaller values of PRIMARY_STEPS (e.g. 4) + // we implement a split strategy: sky or horizon. + // For performance reasons, instead of a if/else branch + // a soft choice is implemented through a weight 0.0 <= w_stop_gt_lprl <= 1.0 + float x = 1e-7 * primaryRayAtmosphereIntersect.stop / length(primaryRayLength); + // Value close to 0.0: close to the horizon + // Value close to 1.0: above in the sky + float w_stop_gt_lprl = 0.5 * (1.0 + czm_approximateTanh(x)); + + // The ray should start from the first intersection with the outer atmopshere, or from the camera position, if it is inside the atmosphere. + float start_0 = primaryRayAtmosphereIntersect.start; + primaryRayAtmosphereIntersect.start = max(primaryRayAtmosphereIntersect.start, 0.0); + // The ray should end at the exit from the atmosphere or at the distance to the vertex, whichever is smaller. + primaryRayAtmosphereIntersect.stop = min(primaryRayAtmosphereIntersect.stop, length(primaryRayLength)); + + // For the number of ray steps, distinguish inside or outside atmosphere (outer space) + // (1) from outer space we have to use more ray steps to get a realistic rendering + // (2) within atmosphere we need fewer steps for faster rendering + float x_o_a = start_0 - ATMOSPHERE_THICKNESS; // ATMOSPHERE_THICKNESS used as an ad-hoc constant, no precise meaning here, only the order of magnitude matters + float w_inside_atmosphere = 1.0 - 0.5 * (1.0 + czm_approximateTanh(x_o_a)); + int PRIMARY_STEPS = PRIMARY_STEPS_MAX - int(w_inside_atmosphere * 12.0); // Number of times the ray from the camera to the world position (primary ray) is sampled. + int LIGHT_STEPS = LIGHT_STEPS_MAX - int(w_inside_atmosphere * 2.0); // Number of times the light is sampled from the light source's intersection with the atmosphere to a sample position on the primary ray. + + // Setup for sampling positions along the ray - starting from the intersection with the outer ring of the atmosphere. + float rayPositionLength = primaryRayAtmosphereIntersect.start; + // (1) Outside the atmosphere: constant rayStepLength + // (2) Inside atmosphere: variable rayStepLength to compensate the rough rendering of the smaller number of ray steps + float totalRayLength = primaryRayAtmosphereIntersect.stop - rayPositionLength; + float rayStepLengthIncrease = w_inside_atmosphere * ((1.0 - w_stop_gt_lprl) * totalRayLength / (float(PRIMARY_STEPS * (PRIMARY_STEPS + 1)) / 2.0)); + float rayStepLength = max(1.0 - w_inside_atmosphere, w_stop_gt_lprl) * totalRayLength / max(7.0 * w_inside_atmosphere, float(PRIMARY_STEPS)); + + vec3 rayleighAccumulation = vec3(0.0); + vec3 mieAccumulation = vec3(0.0); + vec2 opticalDepth = vec2(0.0); + vec2 heightScale = vec2(u_atmosphereRayleighScaleHeight, u_atmosphereMieScaleHeight); + + // Sample positions on the primary ray. + for (int i = 0; i < PRIMARY_STEPS_MAX; ++i) { + + // The loop should be: for (int i = 0; i < PRIMARY_STEPS; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= PRIMARY_STEPS) { + break; + } + + // Calculate sample position along viewpoint ray. + vec3 samplePosition = primaryRay.origin + primaryRay.direction * (rayPositionLength + rayStepLength); + + // Calculate height of sample position above ellipsoid. + float sampleHeight = length(samplePosition) - atmosphereInnerRadius; + + // Calculate and accumulate density of particles at the sample position. + vec2 sampleDensity = exp(-sampleHeight / heightScale) * rayStepLength; + opticalDepth += sampleDensity; + + // Generate ray from the sample position segment to the light source, up to the outer ring of the atmosphere. + czm_ray lightRay = czm_ray(samplePosition, lightDirection); + czm_raySegment lightRayAtmosphereIntersect = czm_raySphereIntersectionInterval(lightRay, origin, atmosphereOuterRadius); + + float lightStepLength = lightRayAtmosphereIntersect.stop / float(LIGHT_STEPS); + float lightPositionLength = 0.0; + + vec2 lightOpticalDepth = vec2(0.0); + + // Sample positions along the light ray, to accumulate incidence of light on the latest sample segment. + for (int j = 0; j < LIGHT_STEPS_MAX; ++j) { + + // The loop should be: for (int j = 0; i < LIGHT_STEPS; ++j) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (j >= LIGHT_STEPS) { + break; + } + + // Calculate sample position along light ray. + vec3 lightPosition = samplePosition + lightDirection * (lightPositionLength + lightStepLength * 0.5); + + // Calculate height of the light sample position above ellipsoid. + float lightHeight = length(lightPosition) - atmosphereInnerRadius; + + // Calculate density of photons at the light sample position. + lightOpticalDepth += exp(-lightHeight / heightScale) * lightStepLength; + + // Increment distance on light ray. + lightPositionLength += lightStepLength; + } + + // Compute attenuation via the primary ray and the light ray. + vec3 attenuation = exp(-((u_atmosphereMieCoefficient * (opticalDepth.y + lightOpticalDepth.y)) + (u_atmosphereRayleighCoefficient * (opticalDepth.x + lightOpticalDepth.x)))); + + // Accumulate the scattering. + rayleighAccumulation += sampleDensity.x * attenuation; + mieAccumulation += sampleDensity.y * attenuation; + + // Increment distance on primary ray. + rayPositionLength += (rayStepLength += rayStepLengthIncrease); + } + + // Compute the scattering amount. + rayleighColor = u_atmosphereRayleighCoefficient * rayleighAccumulation; + mieColor = u_atmosphereMieCoefficient * mieAccumulation; + + // Compute the transmittance i.e. how much light is passing through the atmosphere. + opacity = length(exp(-((u_atmosphereMieCoefficient * opticalDepth.y) + (u_atmosphereRayleighCoefficient * opticalDepth.x)))); +} + +vec4 computeAtmosphereColor( + vec3 positionWC, + vec3 lightDirection, + vec3 rayleighColor, + vec3 mieColor, + float opacity +) { + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + + float cosAngle = dot(cameraToPositionWCDirection, lightDirection); + float cosAngleSq = cosAngle * cosAngle; + + float G = u_atmosphereMieAnisotropy; + float GSq = G * G; + + // The Rayleigh phase function. + float rayleighPhase = 3.0 / (50.2654824574) * (1.0 + cosAngleSq); + // The Mie phase function. + float miePhase = 3.0 / (25.1327412287) * ((1.0 - GSq) * (cosAngleSq + 1.0)) / (pow(1.0 + GSq - 2.0 * cosAngle * G, 1.5) * (2.0 + GSq)); + + // The final color is generated by combining the effects of the Rayleigh and Mie scattering. + vec3 rayleigh = rayleighPhase * rayleighColor; + vec3 mie = miePhase * mieColor; + + vec3 color = (rayleigh + mie) * u_atmosphereLightIntensity; + + return vec4(color, opacity); +} +`;var VN=`uniform samplerCube u_radianceMap; + +in vec2 v_textureCoordinates; + + +const float twoSqrtPi = 2.0 * sqrt(czm_pi); + +// Coutesy of https://www.ppsloan.org/publications/StupidSH36.pdf +float computeShBasis(int index, vec3 s) { + if (index == 0) { // l = 0, m = 0 + return 1.0 / twoSqrtPi; + } + + if (index == 1) { // l = 1, m = -1 + return -sqrt(3.0) * s.y / twoSqrtPi; + } + + if (index == 2) { // l = 1, m = 0 + return sqrt(3.0) * s.z / twoSqrtPi; + } + + if (index == 3) { // l = 1, m = 1 + return -sqrt(3.0) * s.x / twoSqrtPi; + } + + if (index == 4) { // l = 2, m = -2 + return sqrt(15.0) * s.y * s.x / twoSqrtPi; + } + + if (index == 5) { // l = 2, m = -1 + return -sqrt(15.0) * s.y * s.z / twoSqrtPi; + } + + if (index == 6) { // l = 2, m = 0 + return sqrt(5.0) * (3.0 * s.z * s.z - 1.0) / 2.0 / twoSqrtPi; + } + + if (index == 7) { // l = 2, m = 1 + return -sqrt(15.0) * s.x * s.z / twoSqrtPi; + } + + if (index == 8) { // l = 2, m = 2 + return sqrt(15.0) * (s.x * s.x - s.y * s.y) / 2.0 / twoSqrtPi; + } + + return 0.0; +} + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +// Sample count is relatively low for the sake of performance, but should still be enough to capture directionality needed for third-order harmonics +const int samples = 256; +const float solidAngle = 1.0 / float(samples); + +void main() { + // Get the current coefficient based on the uv + vec2 uv = v_textureCoordinates.xy * 3.0; + int coefficientIndex = int(floor(uv.y) * 3.0 + floor(uv.x)); + + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + float phi = czm_twoPi * xi.x; + float cosTheta = 1.0 - 2.0 * sqrt(1.0 - xi.y * xi.y); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 direction = normalize(vec3(sinTheta * cos(phi), cosTheta, sinTheta * sin(phi))); + + // Generate the spherical harmonics basis from the direction + float Ylm = computeShBasis(coefficientIndex, direction); + + vec3 lookupDirection = -direction.xyz; + lookupDirection.z = -lookupDirection.z; + + vec4 color = czm_textureCube(u_radianceMap, lookupDirection, 0.0); + + // Use the relevant function for this coefficient + out_FragColor += Ylm * color * solidAngle * sinTheta; + } + +} +`;var UN=`precision highp float; + +in vec2 v_textureCoordinates; + +uniform vec3 u_faceDirection; // Current cubemap face +uniform vec3 u_positionWC; +uniform mat4 u_enuToFixedFrame; +uniform vec4 u_brightnessSaturationGammaIntensity; +uniform vec4 u_groundColor; // alpha component represent albedo + +vec4 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv * 2.0 - 1.0; + + if (faceDir.x != 0.0) { + return vec4(faceDir.x, scaledUV.x * faceDir.x, -scaledUV.y, 0.0); + } else if (faceDir.y != 0.0) { + return vec4(scaledUV.x, -scaledUV.y * faceDir.y, faceDir.y, 0.0); + } else { + return vec4(scaledUV.x * faceDir.z, -faceDir.z, -scaledUV.y, 0.0); + } +} + +void main() { + float height = length(u_positionWC); + float atmosphereInnerRadius = u_radiiAndDynamicAtmosphereColor.y; + float ellipsoidHeight = max(height - atmosphereInnerRadius, 0.0); + + // Scale the position to ensure the sky color is present, even when underground. + vec3 positionWC = u_positionWC / height * (ellipsoidHeight + atmosphereInnerRadius); + + float atmosphereOuterRadius = u_radiiAndDynamicAtmosphereColor.x; + float atmosphereHeight = atmosphereOuterRadius - atmosphereInnerRadius; + + vec3 direction = (u_enuToFixedFrame * getCubeMapDirection(v_textureCoordinates, u_faceDirection)).xyz; + vec3 normalizedDirection = normalize(direction); + + czm_ray ray = czm_ray(positionWC, normalizedDirection); + czm_raySegment intersection = czm_raySphereIntersectionInterval(ray, vec3(0.0), atmosphereInnerRadius); + if (!czm_isEmpty(intersection)) { + intersection = czm_rayEllipsoidIntersectionInterval(ray, vec3(0.0), czm_ellipsoidInverseRadii); + } + + bool onEllipsoid = intersection.start >= 0.0; + float rayLength = czm_branchFreeTernary(onEllipsoid, intersection.start, atmosphereOuterRadius); + + // Compute sky color for each position on a sphere at radius centered around the provided position's origin + vec3 skyPositionWC = positionWC + normalizedDirection * rayLength; + + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirectionWC = normalize(czm_getDynamicAtmosphereLightDirection(skyPositionWC, lightEnum)); + vec3 mieColor; + vec3 rayleighColor; + float opacity; + czm_computeScattering( + ray, + rayLength, + lightDirectionWC, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + vec4 atmopshereColor = czm_computeAtmosphereColor(ray, lightDirectionWC, rayleighColor, mieColor, opacity); + +#ifdef ATMOSPHERE_COLOR_CORRECT + const bool ignoreBlackPixels = true; + atmopshereColor.rgb = czm_applyHSBShift(atmopshereColor.rgb, czm_atmosphereHsbShift, ignoreBlackPixels); +#endif + + vec3 lookupDirection = -normalizedDirection; + // Flipping the X vector is a cheap way to get the inverse of czm_temeToPseudoFixed, since that's a rotation about Z. + lookupDirection.x = -lookupDirection.x; + lookupDirection = -normalize(czm_temeToPseudoFixed * lookupDirection); + lookupDirection.x = -lookupDirection.x; + + // Values outside the atmopshere are rendered as black, when they should be treated as transparent + float skyAlpha = clamp((1.0 - ellipsoidHeight / atmosphereHeight) * atmopshereColor.a, 0.0, 1.0); + skyAlpha = czm_branchFreeTernary(length(atmopshereColor.rgb) <= czm_epsilon7, 0.0, skyAlpha); // Treat black as transparent + + // Blend starmap with atmopshere scattering + float intensity = u_brightnessSaturationGammaIntensity.w; + vec4 sceneSkyBoxColor = czm_textureCube(czm_environmentMap, lookupDirection); + vec3 skyBackgroundColor = mix(czm_backgroundColor.rgb, sceneSkyBoxColor.rgb, sceneSkyBoxColor.a); + vec4 combinedSkyColor = vec4(mix(skyBackgroundColor, atmopshereColor.rgb * intensity, skyAlpha), 1.0); + + // Compute ground color based on amount of reflected light, then blend it with ground atmosphere based on height + vec3 up = normalize(positionWC); + float occlusion = max(dot(lightDirectionWC, up), 0.05); + vec4 groundColor = vec4(u_groundColor.rgb * u_groundColor.a * (vec3(intensity * occlusion) + atmopshereColor.rgb), 1.0); + vec4 blendedGroundColor = mix(groundColor, atmopshereColor, clamp(ellipsoidHeight / atmosphereHeight, 0.0, 1.0)); + + vec4 color = czm_branchFreeTernary(onEllipsoid, blendedGroundColor, combinedSkyColor); + + float brightness = u_brightnessSaturationGammaIntensity.x; + float saturation = u_brightnessSaturationGammaIntensity.y; + float gamma = u_brightnessSaturationGammaIntensity.z; + +#ifdef ENVIRONMENT_COLOR_CORRECT + color.rgb = mix(vec3(0.0), color.rgb, brightness); + color.rgb = czm_saturation(color.rgb, saturation); +#endif + color.rgb = pow(color.rgb, vec3(gamma)); // Normally this would be in the ifdef above, but there is a precision issue with the atmopshere scattering transmittance (alpha). Having this line is a workaround for that issue, even when gamma is 1.0. + color.rgb = czm_gammaCorrect(color.rgb); + + out_FragColor = color; +} +`;var zN=`precision highp float; + +in vec3 v_textureCoordinates; + +uniform float u_roughness; +uniform samplerCube u_radianceTexture; +uniform vec3 u_faceDirection; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = czm_twoPi * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +// Sample count is relatively low for the sake of performance, but should still be enough to prevent artifacting in lower roughnesses +const int samples = 128; + +void main() { + vec3 normal = u_faceDirection; + vec3 V = normalize(v_textureCoordinates); + float roughness = u_roughness; + + vec4 color = vec4(0.0); + float weight = 0.0; + for (int i = 0; i < samples; ++i) { + vec2 xi = hammersley2D(i, samples); + vec3 H = importanceSampleGGX(xi, roughness, V); + vec3 L = 2.0 * dot(V, H) * H - V; // reflected vector + + float NdotL = max(dot(V, L), 0.0); + if (NdotL > 0.0) { + color += vec4(texture(u_radianceTexture, L).rgb, 1.0) * NdotL; + weight += NdotL; + } + } + out_FragColor = color / weight; +} +`;var HN=`in vec3 position; +out vec3 v_textureCoordinates; + +uniform vec3 u_faceDirection; + +vec3 getCubeMapDirection(vec2 uv, vec3 faceDir) { + vec2 scaledUV = uv; + + if (faceDir.x != 0.0) { + return vec3(faceDir.x, scaledUV.y, scaledUV.x * faceDir.x); + } else if (faceDir.y != 0.0) { + return vec3(scaledUV.x, -faceDir.y, -scaledUV.y * faceDir.y); + } else { + return vec3(scaledUV.x * faceDir.z, scaledUV.y, -faceDir.z); + } +} + +void main() +{ + v_textureCoordinates = getCubeMapDirection(position.xy, u_faceDirection); + v_textureCoordinates.y = -v_textureCoordinates.y; + v_textureCoordinates.z = -v_textureCoordinates.z; + gl_Position = vec4(position, 1.0); +} +`;function xp(e){this._position=void 0,this._radianceMapDirty=!1,this._radianceCommandsDirty=!1,this._convolutionsCommandsDirty=!1,this._irradianceCommandDirty=!1,this._irradianceTextureDirty=!1,this._sphericalHarmonicCoefficientsDirty=!1,this._shouldRegenerateShaders=!1,e=y(e,y.EMPTY_OBJECT);let t=y(e.mipmapLevels,10);this._mipmapLevels=t,this._radianceMapComputeCommands=new Array(6),this._convolutionComputeCommands=new Array((t-1)*6),this._irradianceComputeCommand=void 0,this._radianceMapFS=void 0,this._irradianceMapFS=void 0,this._convolveSP=void 0,this._va=void 0,this._radianceMapTextures=new Array(6),this._specularMapTextures=new Array((t-1)*6),this._radianceCubeMap=void 0,this._irradianceMapTexture=void 0,this._sphericalHarmonicCoefficients=new Array(9),this._lastTime=new K;let n=Math.pow(2,t-1);this._textureDimensions=new U(n,n),this._radiiAndDynamicAtmosphereColor=new h,this._sceneEnvironmentMap=void 0,this._backgroundColor=void 0,this._owner=void 0,this.enabled=y(e.enabled,!0),this.shouldUpdate=!0,this.maximumSecondsDifference=y(e.maximumSecondsDifference,60*60),this.maximumPositionEpsilon=y(e.maximumPositionEpsilon,1e3),this.atmosphereScatteringIntensity=y(e.atmosphereScatteringIntensity,2),this.gamma=y(e.gamma,1),this.brightness=y(e.brightness,1),this.saturation=y(e.saturation,1),this.groundColor=y(e.groundColor,xp.AVERAGE_EARTH_GROUND_COLOR),this.groundAlbedo=y(e.groundAlbedo,.31)}Object.defineProperties(xp.prototype,{owner:{get:function(){return this._owner}},shouldRegenerateShaders:{get:function(){return this._shouldRegenerateShaders}},position:{get:function(){return this._position},set:function(e){h.equalsEpsilon(e,this._position,0,this.maximumPositionEpsilon)||(this._position=h.clone(e,this._position),this.reset())}},radianceCubeMap:{get:function(){return this._radianceCubeMap}},maximumMipmapLevel:{get:function(){return this._mipmapLevels}},sphericalHarmonicCoefficients:{get:function(){return this._sphericalHarmonicCoefficients}}});xp.setOwner=function(e,t,n){e!==t[n]&&(t[n]=t[n]&&t[n].destroy(),l(e)&&(e._owner=t,t[n]=e))};xp.prototype.reset=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;l(this._irradianceComputeCommand)&&(this._irradianceComputeCommand=void 0),this._radianceMapDirty=!0,this._radianceCommandsDirty=!0};var bUe=new h,TUe=new h;function AUe(e,t){let n=e._position,i=t.atmosphere,o=t.mapProjection.ellipsoid,r=o.scaleToGeodeticSurface(n,TUe),s=1.025,a=bUe,c=l(r)?h.magnitude(r):o.maximumRadius;return a.x=c*s,a.y=c,a.z=i.dynamicLighting,!h.equalsEpsilon(e._radiiAndDynamicAtmosphereColor,a)||t.environmentMap!==e._sceneEnvironmentMap||t.backgroundColor!==e._backgroundColor?(h.clone(a,e._radiiAndDynamicAtmosphereColor),e._sceneEnvironmentMap=t.environmentMap,e._backgroundColor=t.backgroundColor,!0):!1}var woe=new h,CUe=new F,EUe=new oe,SUe=new z;function vUe(e,t){let n=t.context,i=e._textureDimensions;if(l(e._radianceCubeMap)||(e._radianceCubeMap=new Dr({context:n,width:i.x,height:i.y,pixelDatatype:Ze.UNSIGNED_BYTE,pixelFormat:it.RGBA})),e._radianceCommandsDirty){let o=e._radianceMapFS;l(o)||(o=new Ue({sources:[zh,UN]}),e._radianceMapFS=o),TA.requiresColorCorrect(t.atmosphere)&&o.defines.push("ATMOSPHERE_COLOR_CORRECT");let r=e._position,s=e._radiiAndDynamicAtmosphereColor,a=t.mapProjection.ellipsoid,c=Nt.eastNorthUpToFixedFrame(r,a,CUe),u=EUe;u.x=e.brightness,u.y=e.saturation,u.z=e.gamma,u.w=e.atmosphereScatteringIntensity,(e.brightness!==1||e.saturation!==1||e.gamma!==1)&&o.defines.push("ENVIRONMENT_COLOR_CORRECT");let f=0;for(let d of Dr.faceNames()){let p=e._radianceMapTextures[f];l(p)&&p.destroy(),p=new Ot({context:n,width:i.x,height:i.y,pixelDatatype:Ze.UNSIGNED_BYTE,pixelFormat:it.RGBA}),e._radianceMapTextures[f]=p;let g=f,m=new ol({fragmentShaderSource:o,outputTexture:p,uniformMap:{u_radiiAndDynamicAtmosphereColor:()=>s,u_enuToFixedFrame:()=>c,u_faceDirection:()=>Dr.getDirection(d,woe),u_positionWC:()=>r,u_brightnessSaturationGammaIntensity:()=>u,u_groundColor:()=>e.groundColor.withAlpha(e.groundAlbedo,SUe)},persists:!0,owner:e,postExecute:()=>{let x=e._radianceMapComputeCommands;if(!l(x[g]))return;x[g]=void 0;let b=new Vr({context:n,colorTextures:[e._radianceMapTextures[g]],destroyAttachments:!1});b._bind(),e._radianceCubeMap[d].copyFromFramebuffer(),b._unBind(),b.destroy(),x.some(l)||(e._convolutionsCommandsDirty=!0,e._shouldRegenerateShaders=!0)}});t.commandList.push(m),e._radianceMapComputeCommands[f]=m,f++}e._radianceCommandsDirty=!1}}function wUe(e,t){let n=e._radianceCubeMap;n.generateMipmap();let i=e._mipmapLevels,o=e._textureDimensions,r=o.x/2,s=o.y/2,a=t.context,c=0,u=(d,p,g,m)=>()=>{let x=e._convolutionComputeCommands;l(x[d])&&(x[d]=void 0,n.copyFace(t,p,g,m),c++,c===e._specularMapTextures.length&&(e._irradianceCommandDirty=!0,n.sampler=new Qt({minificationFilter:$t.LINEAR_MIPMAP_LINEAR}),e._shouldRegenerateShaders=!0))},f=0;for(let d=1;d<i;++d){for(let p of Dr.faceNames()){let g=e._specularMapTextures[f]=new Ot({context:a,width:r,height:s,pixelDatatype:Ze.UNSIGNED_BYTE,pixelFormat:it.RGBA}),m=e._va;l(m)||(m=Dr.createVertexArray(a,p),e._va=m);let x=e._convolveSP;l(x)||(x=en.fromCache({context:a,vertexShaderSource:HN,fragmentShaderSource:zN,attributeLocations:{positions:0}}),e._convolveSP=x);let b=new ol({shaderProgram:x,vertexArray:m,outputTexture:g,persists:!0,owner:e,uniformMap:{u_roughness:()=>d/(i-1),u_radianceTexture:()=>n,u_faceDirection:()=>Dr.getDirection(p,woe)},postExecute:u(f,g,p,d)});e._convolutionComputeCommands[f]=b,t.commandList.push(b),++f}r/=2,s/=2}}var Doe=new U(3,3);function DUe(e,t){let n=t.context,i=Doe,o=e._irradianceMapTexture;l(o)||(o=new Ot({context:n,width:i.x,height:i.y,pixelDatatype:Ze.FLOAT,pixelFormat:it.RGBA}),e._irradianceMapTexture=o);let r=e._irradianceMapFS;l(r)||(r=new Ue({sources:[VN]}),e._irradianceMapFS=r);let s=new ol({fragmentShaderSource:r,outputTexture:o,uniformMap:{u_radianceMap:()=>e._radianceCubeMap},postExecute:()=>{l(e._irradianceComputeCommand)&&(e._irradianceTextureDirty=!1,e._irradianceComputeCommand=void 0,e._sphericalHarmonicCoefficientsDirty=!0)}});e._irradianceComputeCommand=s,t.commandList.push(s),e._irradianceTextureDirty=!0}function IUe(e,t){let n=t.context,i=new Vr({context:n,colorTextures:[e._irradianceMapTexture],destroyAttachments:!1}),o=Doe,r=n.readPixels({x:0,y:0,width:o.x,height:o.y,framebuffer:i});for(let s=0;s<9;++s)e._sphericalHarmonicCoefficients[s]=h.unpack(r,s*4),h.multiplyByScalar(e._sphericalHarmonicCoefficients[s],e.atmosphereScatteringIntensity,e._sphericalHarmonicCoefficients[s]);i.destroy(),e._shouldRegenerateShaders=!0}xp.prototype.update=function(e){let t=e.mode;if(!this.enabled||!this.shouldUpdate||!l(this._position)||t===ne.MORPHING){this._shouldRegenerateShaders=!1;return}let n=e.atmosphere.dynamicLighting;if((AUe(this,e)||n===bg.SUNLIGHT&&!K.equalsEpsilon(e.time,this._lastTime,this.maximumSecondsDifference))&&(this.reset(),this._lastTime=K.clone(e.time,this._lastTime)),this._radianceMapDirty&&(vUe(this,e),this._radianceMapDirty=!1),this._convolutionsCommandsDirty&&(wUe(this,e),this._convolutionsCommandsDirty=!1),this._irradianceCommandDirty&&(DUe(this,e),this._irradianceCommandDirty=!1),this._irradianceTextureDirty){this._shouldRegenerateShaders=!1;return}if(this._sphericalHarmonicCoefficientsDirty){IUe(this,e),this._sphericalHarmonicCoefficientsDirty=!1;return}this._shouldRegenerateShaders=!1};xp.prototype.isDestroyed=function(){return!1};xp.prototype.destroy=function(){let e=this._radianceMapComputeCommands.length;for(let t=0;t<e;++t)this._radianceMapComputeCommands[t]=void 0;e=this._convolutionComputeCommands.length;for(let t=0;t<e;++t)this._convolutionComputeCommands[t]=void 0;this._irradianceMapComputeCommand=void 0,e=this._radianceMapTextures.length;for(let t=0;t<e;++t)this._radianceMapTextures[t]=this._radianceMapTextures[t]&&this._radianceMapTextures[t].destroy();e=this._specularMapTextures.length;for(let t=0;t<e;++t)this._specularMapTextures[t]=this._specularMapTextures[t]&&this._specularMapTextures[t].destroy();return this._radianceCubeMap=this._radianceCubeMap&&this._radianceCubeMap.destroy(),this._irradianceMapTexture=this._irradianceMapTexture&&this._irradianceMapTexture.destroy(),ue(this)};xp.AVERAGE_EARTH_GROUND_COLOR=Object.freeze(z.fromCssColorString("#717145"));var Tg=xp;var aw={HIGHLIGHT:0,REPLACE:1,MIX:2};aw.getColorBlend=function(e,t){if(e===aw.HIGHLIGHT)return 0;if(e===aw.REPLACE)return 1;if(e===aw.MIX)return P.clamp(t,P.EPSILON4,1)};var Oc=Object.freeze(aw);var PUe={XTRANSLATE:"xTranslate",YTRANSLATE:"yTranslate",ZTRANSLATE:"zTranslate",XROTATE:"xRotate",YROTATE:"yRotate",ZROTATE:"zRotate",XSCALE:"xScale",YSCALE:"yScale",ZSCALE:"zScale",UNIFORMSCALE:"uniformScale"},Mc=Object.freeze(PUe);var RUe={STEP:0,LINEAR:1,CUBICSPLINE:2},Hh=Object.freeze(RUe);var Ioe={};function cw(e){this._count=e.count,this._properties=Ge(e.properties,!0)}cw.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,Ioe)};cw.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,Ioe,e)};cw.prototype.getProperty=function(e,t){let n=this._properties[t];if(l(n))return Ge(n[e],!0)};cw.prototype.setProperty=function(e,t,n){let i=this._properties[t];l(i)||(i=new Array(this._count),this._properties[t]=i),i[e]=Ge(n,!0)};var Ag=cw;function $a(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._id=e.id,this._count=e.count,this._extras=e.extras,this._extensions=e.extensions,this._metadataTable=e.metadataTable,this._jsonMetadataTable=e.jsonMetadataTable,this._batchTableHierarchy=e.batchTableHierarchy}Object.defineProperties($a.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},count:{get:function(){return this._count}},class:{get:function(){if(l(this._metadataTable))return this._metadataTable.class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},byteLength:{get:function(){let e=0;return l(this._metadataTable)&&(e+=this._metadataTable.byteLength),l(this._batchTableHierarchy)&&(e+=this._batchTableHierarchy.byteLength),e}}});$a.prototype.hasProperty=function(e,t){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(t)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.hasProperty(e,t)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(t))};$a.prototype.hasPropertyBySemantic=function(e,t){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(t):!1};$a.prototype.propertyExists=function(e){return!!(l(this._metadataTable)&&this._metadataTable.hasProperty(e)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.propertyExists(e)||l(this._jsonMetadataTable)&&this._jsonMetadataTable.hasProperty(e))};$a.prototype.propertyExistsBySemantic=function(e){return l(this._metadataTable)?this._metadataTable.hasPropertyBySemantic(e):!1};var q9=[];$a.prototype.getPropertyIds=function(e,t){return t=l(t)?t:[],t.length=0,l(this._metadataTable)&&t.push.apply(t,this._metadataTable.getPropertyIds(q9)),l(this._batchTableHierarchy)&&t.push.apply(t,this._batchTableHierarchy.getPropertyIds(e,q9)),l(this._jsonMetadataTable)&&t.push.apply(t,this._jsonMetadataTable.getPropertyIds(q9)),t};$a.prototype.getProperty=function(e,t){let n;if(l(this._metadataTable)&&(n=this._metadataTable.getProperty(e,t),l(n))||l(this._batchTableHierarchy)&&(n=this._batchTableHierarchy.getProperty(e,t),l(n))||l(this._jsonMetadataTable)&&(n=this._jsonMetadataTable.getProperty(e,t),l(n)))return n};$a.prototype.setProperty=function(e,t,n){l(this._metadataTable)&&this._metadataTable.setProperty(e,t,n)||l(this._batchTableHierarchy)&&this._batchTableHierarchy.setProperty(e,t,n)||(l(this._jsonMetadataTable)||(this._jsonMetadataTable=new Ag({count:this._count,properties:{}})),this._jsonMetadataTable.setProperty(e,t,n))};$a.prototype.getPropertyBySemantic=function(e,t){if(l(this._metadataTable))return this._metadataTable.getPropertyBySemantic(e,t)};$a.prototype.setPropertyBySemantic=function(e,t,n){return l(this._metadataTable)?this._metadataTable.setPropertyBySemantic(e,t,n):!1};$a.prototype.getPropertyTypedArray=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArray(e)};$a.prototype.getPropertyTypedArrayBySemantic=function(e){if(l(this._metadataTable))return this._metadataTable.getPropertyTypedArrayBySemantic(e)};$a.prototype.isClass=function(e,t){let n=this._batchTableHierarchy;return l(n)?n.isClass(e,t):!1};$a.prototype.isExactClass=function(e,t){return this.getExactClassName(e)===t};$a.prototype.getExactClassName=function(e){let t=this._batchTableHierarchy;if(l(t))return t.getClassName(e)};var gl=$a;function lw(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty,i=e.textures,o=l(t.channels)?t.channels:[0],r=t,s=iu.createModelTextureReader({textureInfo:r,channels:LUe(o),texture:i[r.index]});this._min=t.min,this._max=t.max;let a=t.offset,c=t.scale,u=n.hasValueTransform||l(a)||l(c);a=y(a,n.offset),c=y(c,n.scale),a=n.unpackVectorAndMatrixTypes(a),c=n.unpackVectorAndMatrixTypes(c),this._offset=a,this._scale=c,this._hasValueTransform=u,this._textureReader=s,this._classProperty=n,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(lw.prototype,{textureReader:{get:function(){return this._textureReader}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});lw.prototype.isGpuCompatible=function(){let e=this._classProperty,t=e.type,n=e.componentType;return e.isArray?e.isVariableLengthArray?(At(`Property texture property ${e.id} is a variable-length array, which is not supported`),!1):e.arrayLength>4?(At(`Property texture property ${e.id} is an array of length ${e.arrayLength}, but may have at most a length of 4`),!1):t!==Et.SCALAR?(At(`Property texture property ${e.id} is an array of type ${t}, but only SCALAR is supported`),!1):n!==Wt.UINT8?(At(`Property texture property ${e.id} is an array with component type ${n}, but only UINT8 is supported`),!1):!0:Et.isVectorType(t)||t===Et.SCALAR?n!==Wt.UINT8?(At(`Property texture property ${e.id} has component type ${n}, but only UINT8 is supported`),!1):!0:(At(`Property texture property ${e.id} has an unsupported type`),!1)};var OUe=[void 0,"float","vec2","vec3","vec4"],MUe=[void 0,"int","ivec2","ivec3","ivec4"];lw.prototype.getGlslType=function(){let e=this._classProperty,t=Et.getComponentCount(e.type);return e.isArray&&(t=e.arrayLength),e.normalized?OUe[t]:MUe[t]};lw.prototype.unpackInShader=function(e){return this._classProperty.normalized?e:`${this.getGlslType()}(255.0 * ${e})`};function LUe(e){return e.map(function(t){return"rgba".charAt(t)}).join("")}var GN=lw;function Y9(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyTexture,n=e.class,i=e.textures,o=t.extensions,r=t.extras,s={};if(l(t.properties))for(let a in t.properties)t.properties.hasOwnProperty(a)&&(s[a]=new GN({property:t.properties[a],classProperty:n.properties[a],textures:i}));this._name=e.name,this._id=e.id,this._class=n,this._properties=s,this._extras=r,this._extensions=o}Object.defineProperties(Y9.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Y9.prototype.getProperty=function(e){return this._properties[e]};var Cg=Y9;function Poe(e){e=y(e,y.EMPTY_OBJECT);let t=e.property,n=e.classProperty;this._attribute=t.attribute,this._classProperty=n,this._min=t.min,this._max=t.max;let i=t.offset,o=t.scale,r=n.hasValueTransform||l(i)||l(o);i=y(i,n.offset),o=y(o,n.scale),i=n.unpackVectorAndMatrixTypes(i),o=n.unpackVectorAndMatrixTypes(o),this._offset=i,this._scale=o,this._hasValueTransform=r,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Poe.prototype,{attribute:{get:function(){return this._attribute}},hasValueTransform:{get:function(){return this._hasValueTransform}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},classProperty:{get:function(){return this._classProperty}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var WN=Poe;function X9(e){e=y(e,y.EMPTY_OBJECT);let t=e.propertyAttribute,n=e.class,i={};if(l(t.properties))for(let o in t.properties)t.properties.hasOwnProperty(o)&&(i[o]=new WN({property:t.properties[o],classProperty:n.properties[o]}));this._name=e.name,this._id=e.id,this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(X9.prototype,{name:{get:function(){return this._name}},id:{get:function(){return this._id}},class:{get:function(){return this._class}},properties:{get:function(){return this._properties}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});X9.prototype.getProperty=function(e){return this._properties[e]};var AA=X9;function uw(e){e=y(e,y.EMPTY_OBJECT),this._schema=e.schema;let t=e.propertyTables;this._propertyTableCount=l(t)?t.length:0,this._propertyTables=t,this._propertyTextures=e.propertyTextures,this._propertyAttributes=e.propertyAttributes,this._statistics=e.statistics,this._extras=e.extras,this._extensions=e.extensions}Object.defineProperties(uw.prototype,{schema:{get:function(){return this._schema}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}},propertyTableCount:{get:function(){return this._propertyTableCount}},propertyTables:{get:function(){return this._propertyTables}},propertyTextures:{get:function(){return this._propertyTextures}},propertyAttributes:{get:function(){return this._propertyAttributes}},propertyTablesByteLength:{get:function(){if(!l(this._propertyTables))return 0;let e=0,t=this._propertyTables.length;for(let n=0;n<t;n++)e+=this._propertyTables[n].byteLength;return e}}});uw.prototype.getPropertyTable=function(e){return this._propertyTables[e]};uw.prototype.getPropertyTexture=function(e){return this._propertyTextures[e]};uw.prototype.getPropertyAttribute=function(e){return this._propertyAttributes[e]};var Js=uw;function NUe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i=[];if(l(t.propertyTables))for(let s=0;s<t.propertyTables.length;s++){let a=t.propertyTables[s],c=n.classes[a.class],u=new tu({count:a.count,properties:a.properties,class:c,bufferViews:e.bufferViews});i.push(new gl({id:s,name:a.name,count:a.count,metadataTable:u,extras:a.extras,extensions:a.extensions}))}let o=[];if(l(t.propertyTextures))for(let s=0;s<t.propertyTextures.length;s++){let a=t.propertyTextures[s];o.push(new Cg({id:s,name:a.name,propertyTexture:a,class:n.classes[a.class],textures:e.textures}))}let r=[];if(l(t.propertyAttributes))for(let s=0;s<t.propertyAttributes.length;s++){let a=t.propertyAttributes[s];r.push(new AA({id:s,name:a.name,class:n.classes[a.class],propertyAttribute:a}))}return new Js({schema:n,propertyTables:i,propertyTextures:o,propertyAttributes:r,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}var jN=NUe;function FUe(e){e=y(e,y.EMPTY_OBJECT);let t=e.extension,n=e.schema,i,o=[],r;if(l(t.featureTables))for(r=Object.keys(t.featureTables).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTables[a],u=n.classes[c.class],f=new tu({count:c.count,properties:c.properties,class:u,bufferViews:e.bufferViews});o.push(new gl({id:a,count:c.count,metadataTable:f,extras:c.extras,extensions:c.extensions}))}let s=[];if(l(t.featureTextures))for(r=Object.keys(t.featureTextures).sort(),i=0;i<r.length;i++){let a=r[i],c=t.featureTextures[a];s.push(new Cg({id:a,propertyTexture:BUe(c),class:n.classes[c.class],textures:e.textures}))}return new Js({schema:n,propertyTables:o,propertyTextures:s,statistics:t.statistics,extras:t.extras,extensions:t.extensions})}function BUe(e){let t={class:e.class,properties:{}},n=e.properties;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i],r={channels:kUe(o.channels),extras:o.extras,extensions:o.extensions};t.properties[i]=xt(o.texture,r,!0)}return t}function kUe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]="rgba".indexOf(e[i]);return n}var qN=FUe;function Eg(e){e=y(e,y.EMPTY_OBJECT);let{gltf:t,extension:n,extensionLegacy:i,gltfResource:o,baseResource:r,supportedImageFormats:s,frameState:a,cacheKey:c,asynchronous:u=!0}=e;this._gltfResource=o,this._baseResource=r,this._gltf=t,this._extension=n,this._extensionLegacy=i,this._supportedImageFormats=s,this._frameState=a,this._cacheKey=c,this._asynchronous=u,this._bufferViewLoaders=[],this._bufferViewIds=[],this._textureLoaders=[],this._textureIds=[],this._schemaLoader=void 0,this._structuralMetadata=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(Eg.prototype=Object.create(Yi.prototype),Eg.prototype.constructor=Eg);Object.defineProperties(Eg.prototype,{cacheKey:{get:function(){return this._cacheKey}},structuralMetadata:{get:function(){return this._structuralMetadata}}});async function VUe(e){try{let t=WUe(e),n=KUe(e),i=ZUe(e);return await Promise.all([t,n,i]),e.isDestroyed()?void 0:(e._gltf=void 0,e._state=_t.LOADED,e)}catch(t){if(e.isDestroyed())return;throw e.unload(),e._state=_t.FAILED,e.getError("Failed to load structural metadata",t)}}Eg.prototype.load=function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,this._promise=VUe(this),this._promise)};function UUe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.values,r=i.arrayOffsets,s=i.stringOffsets;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function zUe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n],o=i.bufferView,r=i.arrayOffsetBufferView,s=i.stringOffsetBufferView;l(o)&&(t[o]=!0),l(r)&&(t[r]=!0),l(s)&&(t[s]=!0)}}function HUe(e){let t=e.propertyTables,n={};if(l(t))for(let i=0;i<t.length;i++){let o=t[i];UUe(o.properties,n)}return n}function GUe(e){let t=e.featureTables,n={};if(l(t)){for(let i in t)if(t.hasOwnProperty(i)){let r=t[i].properties;l(r)&&zUe(r,n)}}return n}async function WUe(e){let t;l(e._extension)?t=HUe(e._extension):t=GUe(e._extensionLegacy);let n=[];for(let i in t)if(t.hasOwnProperty(i)){let o=Ai.getBufferViewLoader({gltf:e._gltf,bufferViewId:parseInt(i),gltfResource:e._gltfResource,baseResource:e._baseResource});e._bufferViewLoaders.push(o),e._bufferViewIds.push(i),n.push(o.load())}return Promise.all(n)}function jUe(e){let t={},n=e.propertyTextures;if(l(n))for(let i=0;i<n.length;i++){let r=n[i].properties;l(r)&&qUe(r,t)}return t}function qUe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let i=e[n];t[i.index]=i}}function YUe(e){let t={},n=e.featureTextures;if(l(n)){for(let i in n)if(n.hasOwnProperty(i)){let r=n[i].properties;l(r)&&XUe(r,t)}}return t}function XUe(e,t){for(let n in e)if(e.hasOwnProperty(n)){let o=e[n].texture;t[o.index]=o}}function KUe(e){let t;l(e._extension)?t=jUe(e._extension):t=YUe(e._extensionLegacy);let n=e._gltf,i=e._gltfResource,o=e._baseResource,r=e._supportedImageFormats,s=e._frameState,a=e._asynchronous,c=[];for(let u in t)if(t.hasOwnProperty(u)){let f=Ai.getTextureLoader({gltf:n,textureInfo:t[u],gltfResource:i,baseResource:o,supportedImageFormats:r,frameState:s,asynchronous:a});e._textureLoaders.push(f),e._textureIds.push(u),c.push(f.load())}return Promise.all(c)}async function ZUe(e){let t=y(e._extension,e._extensionLegacy),n;if(l(t.schemaUri)){let i=e._baseResource.getDerivedResource({url:t.schemaUri});n=Ai.getSchemaLoader({resource:i})}else n=Ai.getSchemaLoader({schema:t.schema});if(e._schemaLoader=n,await n.load(),!n.isDestroyed())return n.schema}Eg.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let a=0;a<n;++a){let u=t[a].process(e);i=i&&u}if(!i)return!1;let o=this._schemaLoader.schema,r={};for(let a=0;a<this._bufferViewIds.length;++a){let c=this._bufferViewIds[a],u=this._bufferViewLoaders[a];if(!u.isDestroyed()){let f=new Uint8Array(u.typedArray);r[c]=f}}let s={};for(let a=0;a<this._textureIds.length;++a){let c=this._textureIds[a],u=t[a];u.isDestroyed()||(s[c]=u.texture)}return l(this._extension)?this._structuralMetadata=jN({extension:this._extension,schema:o,bufferViews:r,textures:s}):this._structuralMetadata=qN({extension:this._extensionLegacy,schema:o,bufferViews:r,textures:s}),Roe(this),this._state=_t.READY,!0};function Roe(e){let t=e._bufferViewLoaders,n=t.length;for(let i=0;i<n;++i)Ai.unload(t[i]);e._bufferViewLoaders.length=0,e._bufferViewIds.length=0}function $Ue(e){let t=e._textureLoaders,n=t.length;for(let i=0;i<n;++i)Ai.unload(t[i]);e._textureLoaders.length=0,e._textureIds.length=0}Eg.prototype.unload=function(){Roe(this),$Ue(this),l(this._schemaLoader)&&Ai.unload(this._schemaLoader),this._schemaLoader=void 0,this._structuralMetadata=void 0};var YN=Eg;var CA={TRANSLATION:"TRANSLATION",ROTATION:"ROTATION",SCALE:"SCALE",FEATURE_ID:"_FEATURE_ID"};CA.fromGltfSemantic=function(e){let t=e,i=/^(\w+)_\d+$/.exec(e);switch(i!==null&&(t=i[1]),t){case"TRANSLATION":return CA.TRANSLATION;case"ROTATION":return CA.ROTATION;case"SCALE":return CA.SCALE;case"_FEATURE_ID":return CA.FEATURE_ID}};var os=Object.freeze(CA);var QUe=65534,JUe=255;function XN(e){e=y(e,y.EMPTY_OBJECT);let t=e.triangleIndices,n=e.outlineIndices,i=e.originalVertexCount;this._triangleIndices=t,this._originalVertexCount=i,this._edges=new Loe(n,i),this._outlineCoordinatesTypedArray=void 0,this._extraVertices=[],eze(this)}Object.defineProperties(XN.prototype,{updatedTriangleIndices:{get:function(){return this._triangleIndices}},outlineCoordinates:{get:function(){return this._outlineCoordinatesTypedArray}}});function eze(e){let t=e._triangleIndices,n=e._edges,i=[],o=e._extraVertices,r=e._originalVertexCount,s={};for(let a=0;a<t.length;a+=3){let c=t[a],u=t[a+1],f=t[a+2],d=!1,p=d||n.hasEdge(c,u),g=d||n.hasEdge(u,f),m=d||n.hasEdge(f,c),x=Ooe(i,c,u,f,p,g,m);for(;l(x);){let b=s[x];if(!l(b)){b=r+o.length;let T=x;for(;T>=r;)T=o[T-r];o.push(T),s[x]=b}b>QUe&&(t instanceof Uint16Array||t instanceof Uint8Array)?t=new Uint32Array(t):b>JUe&&t instanceof Uint8Array&&(t=new Uint16Array(t)),x===c?(c=b,t[a]=b):x===u?(u=b,t[a+1]=b):(f=b,t[a+2]=b),x=Ooe(i,c,u,f,p,g,m)}}e._triangleIndices=t,e._outlineCoordinatesTypedArray=new Float32Array(i)}function Ooe(e,t,n,i,o,r,s){let a=s?1:0,c=o?1:0,u=0,f=K9(e,t,a,c,u);if(f===0)return t;let d=0,p=o?1:0,g=r?1:0,m=K9(e,n,d,p,g);if(m===0)return n;let x=s?1:0,b=0,T=r?1:0,A=K9(e,i,x,b,T);if(A===0)return i;let C=f&m&A,S,v,D;if(C&1)S=0,v=1,D=2;else if(C&2)S=0,D=1,v=2;else if(C&4)v=0,S=1,D=2;else if(C&8)v=0,D=1,S=2;else if(C&16)D=0,S=1,v=2;else if(C&32)D=0,v=1,S=2;else{let L=Z9(f),_=Z9(m),E=Z9(A);return L<_&&L<E?t:_<E?n:i}let O=t*3;e[O+S]=a,e[O+v]=c,e[O+D]=u;let R=n*3;e[R+S]=d,e[R+v]=p,e[R+D]=g;let M=i*3;e[M+S]=x,e[M+v]=b,e[M+D]=T}function K9(e,t,n,i,o){let r=t*3,s=e[r],a=e[r+1],c=e[r+2];return l(s)?(s===n&&a===i&&c===o)<<0|(s===n&&a===o&&c===i)<<1|(s===i&&a===n&&c===o)<<2|(s===i&&a===o&&c===n)<<3|(s===o&&a===n&&c===i)<<4|(s===o&&a===i&&c===n)<<5:63}function Z9(e){return(e&1)+(e>>1&1)+(e>>2&1)+(e>>3&1)+(e>>4&1)+(e>>5&1)}XN.prototype.updateAttribute=function(e){let t=this._extraVertices,n=e.length,i=n/this._originalVertexCount,o=t.length,r=e.constructor,s=new r(e.length+o*i);s.set(e);for(let a=0;a<o;a++){let c=t[a]*i,u=n+a*i;for(let f=0;f<i;f++)s[u+f]=s[c+f]}return s};XN.createTexture=function(e){let t=e.cache.modelOutliningCache;if(l(t)||(t=e.cache.modelOutliningCache={}),l(t.outlineTexture))return t.outlineTexture;let n=Math.min(4096,zt.maximumTextureSize),i=n,o=Moe(i),r=[];for(;i>1;)i>>=1,r.push(Moe(i));let s=new Ot({context:e,source:{arrayBufferView:o,mipLevels:r},width:n,height:1,pixelFormat:it.LUMINANCE,sampler:new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR_MIPMAP_LINEAR,magnificationFilter:di.LINEAR})});return t.outlineTexture=s,s};function Moe(e){let t=new Uint8Array(e);return t[e-1]=192,e===8?t[e-1]=96:e===4?t[e-1]=48:e===2?t[e-1]=24:e===1&&(t[e-1]=12),t}function Loe(e,t){this._originalVertexCount=t,this._edges=new Set;for(let n=0;n<e.length;n+=2){let i=e[n],o=e[n+1],r=Math.min(i,o),s=Math.max(i,o),a=r*this._originalVertexCount+s;this._edges.add(a)}}Loe.prototype.hasEdge=function(e,t){let n=Math.min(e,t),i=Math.max(e,t),o=n*this._originalVertexCount+i;return this._edges.has(o)};var EA=XN;function Noe(e){this.attribute=e,this.loadBuffer=!1,this.loadTypedArray=!1}function tze(e){this.indices=e,this.loadBuffer=!1,this.loadTypedArray=!1}function KN(e){this.primitive=e,this.attributePlans=[],this.indicesPlan=void 0,this.needsOutlines=!1,this.outlineIndices=void 0}KN.prototype.postProcess=function(e){this.needsOutlines&&(nze(this),oze(this,e))};function nze(e){let t=e.primitive,n=t.indices,i=t.attributes[0].count,o=new EA({triangleIndices:n.typedArray,outlineIndices:e.outlineIndices,originalVertexCount:i});n.typedArray=o.updatedTriangleIndices,n.indexDatatype=Ne.fromTypedArray(n.typedArray);let r=ize(o.outlineCoordinates),s=new Noe(r);s.loadBuffer=!0,s.loadTypedArray=!1,e.attributePlans.push(s),t.outlineCoordinates=s.attribute;let a=e.attributePlans,c=e.attributePlans.length;for(let u=0;u<c;u++){let f=a[u].attribute;f.typedArray=o.updateAttribute(f.typedArray)}}function ize(e){let t=new xn.Attribute;return t.name="_OUTLINE_COORDINATES",t.typedArray=e,t.componentDatatype=X.FLOAT,t.type=on.VEC3,t.normalized=!1,t.count=e.length/3,t}function oze(e,t){rze(e.attributePlans,t),l(e.indicesPlan)&&sze(e.indicesPlan,t)}function rze(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i],r=o.attribute,s=r.typedArray;if(o.loadBuffer){let a=yt.createVertexBuffer({typedArray:s,context:t,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.buffer=a}o.loadTypedArray||(r.typedArray=void 0)}}function sze(e,t){let n=e.indices;if(e.loadBuffer){let i=yt.createIndexBuffer({typedArray:n.typedArray,context:t,usage:Fe.STATIC_DRAW,indexDatatype:n.indexDatatype});n.buffer=i,i.vertexArrayDestroyable=!1}e.loadTypedArray||(n.typedArray=void 0)}KN.AttributeLoadPlan=Noe;KN.IndicesLoadPlan=tze;var SA=KN;function aze(e){e=y(e,y.EMPTY_OBJECT),this.webp=y(e.webp,!1),this.basis=y(e.basis,!1)}var ZN=aze;function Foe(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams}Object.defineProperties(Foe.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}}});var $N=Foe;function Boe(e){this._position=e.position,this._adjustmentParams=e.adjustmentParams,this._covarianceMatrix=e.covarianceMatrix}Object.defineProperties(Boe.prototype,{position:{get:function(){return this._position}},adjustmentParams:{get:function(){return this._adjustmentParams}},covarianceMatrix:{get:function(){return this._covarianceMatrix}}});var QN=Boe;function koe(e){this._groupFlags=e.groupFlags,this._rotationThetas=e.rotationThetas,this._params=e.params}Object.defineProperties(koe.prototype,{groupFlags:{get:function(){return this._groupFlags}},rotationThetas:{get:function(){return this._rotationThetas}},params:{get:function(){return this._params}}});var JN=koe;var cze={Direct:"Direct",Indirect:"Indirect"},ax=Object.freeze(cze);function Voe(e){this._storageType=e.storageType,this._anchorPointsIndirect=e.anchorPointsIndirect,this._anchorPointsDirect=e.anchorPointsDirect,this._intraTileCorrelationGroups=e.intraTileCorrelationGroups,this._covarianceDirect=e.covarianceDirect}Object.defineProperties(Voe.prototype,{storageType:{get:function(){return this._storageType}},anchorPointsIndirect:{get:function(){return this._anchorPointsIndirect}},anchorPointsDirect:{get:function(){return this._anchorPointsDirect}},intraTileCorrelationGroups:{get:function(){return this._intraTileCorrelationGroups}},covarianceDirect:{get:function(){return this._covarianceDirect}}});var fw=Voe;function Uoe(e){this._A=e.A,this._alpha=e.alpha,this._beta=e.beta,this._T=e.T}Object.defineProperties(Uoe.prototype,{A:{get:function(){return this._A}},alpha:{get:function(){return this._alpha}},beta:{get:function(){return this._beta}},T:{get:function(){return this._T}}});var eF=Uoe;function vA(){}function zoe(e){return new $(e[0],e[1],e[3],e[1],e[2],e[4],e[3],e[4],e[5])}function lze(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h);return new $N({position:t,adjustmentParams:n})}function uze(e){let t=h.fromArray(e.position,0,new h),n=h.fromArray(e.adjustmentParams,0,new h),i=zoe(e.covarianceMatrix);return new QN({position:t,adjustmentParams:n,covarianceMatrix:i})}function fze(e){let t=e.groupFlags,n=h.fromArray(e.rotationThetas,0,new h),i=[];for(let r of e.params){let s=new eF({A:r.A,alpha:r.alpha,beta:r.beta,T:r.T});i.push(s)}return new JN({groupFlags:t,rotationThetas:n,params:i})}vA.load=function(e){let t=e.storageType;if(t===ax.Direct)return vA.loadDirect(e);if(t===ax.Indirect)return vA.loadIndirect(e);throw new ce(`Invalid storage type in NGA_gpm_local - expected 'Direct' or 'Indirect', but found ${t}`)};vA.loadDirect=function(e){let t=[],n=e.anchorPointsDirect;for(let r of n){let s=lze(r);t.push(s)}let i=zoe(e.covarianceDirectUpperTriangle);return new fw({storageType:ax.Direct,anchorPointsDirect:t,covarianceDirect:i})};vA.loadIndirect=function(e){let t=[],n=e.anchorPointsIndirect;for(let s of n){let a=uze(s);t.push(a)}let i=e.intraTileCorrelationGroups,o=[];for(let s of i){let a=fze(s);o.push(a)}return new fw({storageType:ax.Indirect,anchorPointsIndirect:t,intraTileCorrelationGroups:o})};var tF=vA;function Hoe(e){this._traits=e.traits,this._noData=e.noData,this._offset=e.offset,this._scale=e.scale,this._index=e.index,this._texCoord=e.texCoord}Object.defineProperties(Hoe.prototype,{traits:{get:function(){return this._traits}},noData:{get:function(){return this._noData}},offset:{get:function(){return this._offset}},scale:{get:function(){return this._scale}},index:{get:function(){return this._index}},texCoord:{get:function(){return this._texCoord}}});var nF=Hoe;function Goe(e){this._min=e.min,this._max=e.max,this._source=e.source}Object.defineProperties(Goe.prototype,{min:{get:function(){return this._min}},max:{get:function(){return this._max}},source:{get:function(){return this._source}}});var iF=Goe;function Woe(e){this._ppeTextures=e}Object.defineProperties(Woe.prototype,{ppeTextures:{get:function(){return this._ppeTextures}}});var oF=Woe;function mr(e){e=y(e,y.EMPTY_OBJECT);let t=e.gltf,n=e.extension,i=e.gltfResource,o=e.baseResource,r=e.supportedImageFormats,s=e.frameState,a=e.cacheKey,c=y(e.asynchronous,!0);this._gltfResource=i,this._baseResource=o,this._gltf=t,this._extension=n,this._supportedImageFormats=r,this._frameState=s,this._cacheKey=a,this._asynchronous=c,this._textureLoaders=[],this._textureIds=[],this._meshPrimitiveGpmLocal=void 0,this._structuralMetadata=void 0,this._state=_t.UNLOADED,this._promise=void 0}l(Object.create)&&(mr.prototype=Object.create(Yi.prototype),mr.prototype.constructor=mr);Object.defineProperties(mr.prototype,{cacheKey:{get:function(){return this._cacheKey}},meshPrimitiveGpmLocal:{get:function(){return this._meshPrimitiveGpmLocal}},structuralMetadata:{get:function(){return this._structuralMetadata}}});mr.prototype._loadResources=async function(){try{return await this._loadTextures(),this.isDestroyed()?void 0:(this._gltf=void 0,this._state=_t.LOADED,this)}catch(e){if(this.isDestroyed())return;throw this.unload(),this._state=_t.FAILED,this.getError("Failed to load GPM data",e)}};mr.prototype.load=function(){return l(this._promise)?this._promise:(this._state=_t.LOADING,this._promise=this._loadResources(this),this._promise)};function dze(e){let t={},n=e.ppeTextures;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];t[o.index]=o}return t}mr.prototype._loadTextures=function(){let e;l(this._extension)&&(e=dze(this._extension));let t=this._gltf,n=this._gltfResource,i=this._baseResource,o=this._supportedImageFormats,r=this._frameState,s=this._asynchronous,a=[];for(let c in e)if(e.hasOwnProperty(c)){let u=Ai.getTextureLoader({gltf:t,textureInfo:e[c],gltfResource:n,baseResource:i,supportedImageFormats:o,frameState:r,asynchronous:s});this._textureLoaders.push(u),this._textureIds.push(c),a.push(u.load())}return Promise.all(a)};mr.ppeTexturesMetadataSchemaCache=new Map;mr._createPpeTextureClassJson=function(e,t){let n=e.traits,i=n.source;return{name:`PPE texture class ${t}`,properties:{[i]:{name:"PPE",type:"SCALAR",componentType:"UINT8",normalized:!0,min:n.min,max:n.max}}}};mr._obtainPpeTexturesMetadataSchema=function(e){let n=mr._collectPpeTexturePropertyIdentifiers(e).toString(),i=mr.ppeTexturesMetadataSchemaCache.get(n);if(l(i))return i;let r={id:`PPE_TEXTURE_SCHEMA_${mr.ppeTexturesMetadataSchemaCache.size}`,classes:{}},s=e.ppeTextures;for(let a=0;a<s.length;a++){let c=s[a],u=`ppeTexture_${a}`,f=mr._createPpeTextureClassJson(c,a);r.classes[u]=f}return i=sf.fromJson(r),mr.ppeTexturesMetadataSchemaCache.set(n,i),i};mr._collectPpeTexturePropertyIdentifiers=function(e){let t=[],n=e.ppeTextures;for(let i=0;i<n.length;i++){let o=n[i],r=mr._createPpeTextureClassJson(o,i),s=JSON.stringify(r);t.push(s)}return t};mr._convertToStructuralMetadata=function(e,t){let n=[],i=mr._obtainPpeTexturesMetadataSchema(e),o=e.ppeTextures;for(let s=0;s<o.length;s++){let a=o[s],c=`ppeTexture_${s}`,f=a.traits.source,d=i.classes[c],p=(a.scale??1)*255,g={class:c,properties:{[f]:{index:a.index,texCoord:a.texCoord,offset:a.offset,scale:p}}};n.push(new Cg({id:s,name:a.name,propertyTexture:g,class:d,textures:t}))}return new Js({schema:i,propertyTables:[],propertyTextures:n,propertyAttributes:[]})};mr.prototype.process=function(e){if(this._state===_t.READY)return!0;if(this._state!==_t.LOADED)return!1;let t=this._textureLoaders,n=t.length,i=!0;for(let u=0;u<n;++u){let d=t[u].process(e);i=i&&d}if(!i)return!1;let o={};for(let u=0;u<this._textureIds.length;++u){let f=this._textureIds[u],d=t[u];d.isDestroyed()||(o[f]=d.texture)}let r=[],s=this._extension;if(l(s.ppeTextures)){let u=s.ppeTextures;for(let f of u){let d=f.traits,p=new iF({min:d.min,max:d.max,source:d.source}),g=new nF({traits:p,noData:f.noData,offset:f.offset,scale:f.scale,index:f.index,texCoord:f.texCoord});r.push(g)}}let a=new oF(r);this._meshPrimitiveGpmLocal=a;let c=mr._convertToStructuralMetadata(a,o);return this._structuralMetadata=c,this._state=_t.READY,!0};mr.prototype._unloadTextures=function(){let e=this._textureLoaders,t=e.length;for(let n=0;n<t;++n)Ai.unload(e[n]);this._textureLoaders.length=0,this._textureIds.length=0};mr.prototype.unload=function(){this._unloadTextures(),this._gltf=void 0,this._extension=void 0,this._structuralMetadata=void 0};var rF=mr;var{Attribute:hze,Indices:mze,FeatureIdAttribute:joe,FeatureIdTexture:qoe,FeatureIdImplicitRange:Yoe,MorphTarget:pze,Primitive:_ze,Instances:gze,Skin:yze,Node:xze,AnimatedPropertyType:bze,AnimationSampler:Tze,AnimationTarget:Aze,AnimationChannel:Cze,Animation:Eze,ArticulationStage:Sze,Articulation:vze,Asset:wze,Scene:Dze,Components:Ize,MetallicRoughness:Pze,SpecularGlossiness:Rze,Specular:Oze,Anisotropy:$9,Clearcoat:Q9,Material:Mze}=xn,So={NOT_LOADED:0,LOADING:1,LOADED:2,PROCESSING:3,POST_PROCESSING:4,PROCESSED:5,READY:6,FAILED:7,UNLOADED:8};function hd(e){e=y(e,y.EMPTY_OBJECT);let{gltfResource:t,typedArray:n,releaseGltfJson:i=!1,asynchronous:o=!0,incrementallyLoadTextures:r=!0,upAxis:s=Mo.Y,forwardAxis:a=Mo.Z,loadAttributesAsTypedArray:c=!1,loadAttributesFor2D:u=!1,enablePick:f=!1,loadIndicesForWireframe:d=!1,loadPrimitiveOutline:p=!0,loadForClassification:g=!1,renameBatchIdSemantic:m=!1}=e,{baseResource:x=t.clone()}=e;this._gltfJson=e.gltfJson,this._gltfResource=t,this._baseResource=x,this._typedArray=n,this._releaseGltfJson=i,this._asynchronous=o,this._incrementallyLoadTextures=r,this._upAxis=s,this._forwardAxis=a,this._loadAttributesAsTypedArray=c,this._loadAttributesFor2D=u,this._enablePick=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._loadForClassification=g,this._renameBatchIdSemantic=m,this._sortedPropertyTableIds=void 0,this._sortedFeatureTextureIds=void 0,this._gltfJsonLoader=void 0,this._state=So.NOT_LOADED,this._textureState=So.NOT_LOADED,this._promise=void 0,this._processError=void 0,this._textureErrors=[],this._primitiveLoadPlans=[],this._loaderPromises=[],this._textureLoaders=[],this._texturesPromises=[],this._textureCallbacks=[],this._bufferViewLoaders=[],this._geometryLoaders=[],this._geometryCallbacks=[],this._structuralMetadataLoader=void 0,this._meshPrimitiveGpmLoader=void 0,this._loadResourcesPromise=void 0,this._resourcesLoaded=!1,this._texturesLoaded=!1,this._supportedImageFormats=void 0,this._postProcessBuffers=[],this._components=void 0}l(Object.create)&&(hd.prototype=Object.create(Yi.prototype),hd.prototype.constructor=hd);Object.defineProperties(hd.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},gltfJson:{get:function(){return l(this._gltfJsonLoader)?this._gltfJsonLoader.gltf:this._gltfJson}},incrementallyLoadTextures:{get:function(){return this._incrementallyLoadTextures}},texturesLoaded:{get:function(){return this._texturesLoaded}}});async function Lze(e){e._state=So.LOADING,e._textureState=So.LOADING;try{let t=Ai.getGltfJsonLoader({gltfResource:e._gltfResource,baseResource:e._baseResource,typedArray:e._typedArray,gltfJson:e._gltfJson});return e._gltfJsonLoader=t,await t.load(),e.isDestroyed()||e.isUnloaded()||t.isDestroyed()?void 0:(e._state=So.LOADED,e._textureState=So.LOADED,e)}catch(t){if(e.isDestroyed())return;e._state=So.FAILED,e._textureState=So.FAILED,sF(e,t)}}async function Nze(e,t){jt.supportsWebP.initialized||await jt.supportsWebP.initialize(),e._supportedImageFormats=new ZN({webp:jt.supportsWebP(),basis:t.context.supportsBasis});let n=k4e(e,t);return e._state=So.PROCESSING,e._textureState=So.PROCESSING,l(e._gltfJsonLoader)&&e._releaseGltfJson&&(Ai.unload(e._gltfJsonLoader),e._gltfJsonLoader=void 0),n}hd.prototype.load=async function(){return l(this._promise)?this._promise:(this._promise=Lze(this),this._promise)};function sF(e,t){throw e.unload(),e.getError("Failed to load glTF",t)}function Fze(e,t){let n=!0,i=e._geometryLoaders;for(let s=0;s<i.length;++s){let a=i[s].process(t);a&&l(e._geometryCallbacks[s])&&(e._geometryCallbacks[s](),e._geometryCallbacks[s]=void 0),n=n&&a}let o=e._structuralMetadataLoader;if(l(o)){let s=o.process(t);s&&(e._components.structuralMetadata=o.structuralMetadata),n=n&&s}let r=e._meshPrimitiveGpmLoader;if(l(r)){let s=r.process(t);s&&(l(e._components.structuralMetadata)&&At("structural-metadata-gpm","The model defines both the 'EXT_structural_metadata' extension and the 'NGA_gpm_local' extension. The data from the 'EXT_structural_metadata' extension will be replaced with the data from the 'NGA_gpm_local' extension, and will no longer be available for styling and picking."),e._components.structuralMetadata=r.structuralMetadata),n=n&&s}n&&(e._state=So.POST_PROCESSING)}function Bze(e,t){let n=e._primitiveLoadPlans;for(let i=0;i<n.length;i++){let o=n[i];o.postProcess(t),o.needsOutlines&&kze(e,o)}}function kze(e,t){let n=e._postProcessBuffers,i=t.primitive,o=i.outlineCoordinates;l(o)&&n.push(o.buffer);let r=i.attributes;for(let a=0;a<r.length;a++){let c=r[a];l(c.buffer)&&n.push(c.buffer)}let s=i.indices;l(s)&&l(s.buffer)&&n.push(s.buffer)}hd.prototype._process=function(e){return this._state===So.READY?!0:(this._state===So.PROCESSING&&Fze(this,e),this._resourcesLoaded&&this._state===So.POST_PROCESSING&&(Bze(this,e.context),this._state=So.PROCESSED),this._resourcesLoaded&&this._state===So.PROCESSED?(nre(this),this._typedArray=void 0,this._state=So.READY,!0):!1)};hd.prototype._processTextures=function(e){if(this._textureState===So.READY)return!0;if(this._textureState!==So.PROCESSING)return!1;let t=!0,n=this._textureLoaders;for(let i=0;i<n.length;++i){let o=n[i].process(e);o&&l(this._textureCallbacks[i])&&(this._textureCallbacks[i](),this._textureCallbacks[i]=void 0),t=t&&o}return t?(this._textureState=So.READY,this._texturesLoaded=!0,!0):!1};hd.prototype.process=function(e){if(this._state===So.LOADED&&!l(this._loadResourcesPromise)&&(this._loadResourcesPromise=Nze(this,e).then(()=>{this._resourcesLoaded=!0}).catch(o=>{this._processError=o})),l(this._processError)){this._state=So.FAILED;let o=this._processError;this._processError=void 0,sF(this,o)}let t=this._textureErrors.pop();if(l(t)){let o=this.getError("Failed to load glTF texture",t);throw o.name="TextureError",o}if(this._state===So.FAILED)return!1;let n=!1;try{n=this._process(e)}catch(o){this._state=So.FAILED,sF(this,o)}let i=!1;try{i=this._processTextures(e)}catch(o){this._textureState=So.FAILED,sF(this,o)}return this._incrementallyLoadTextures?n:n&&i};function Vze(e,t,n,i,o,r,s){let a=e.gltfJson,u=a.accessors[t].bufferView;return Ai.getVertexBufferLoader({gltf:a,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:s,bufferViewId:u,draco:i,attributeSemantic:n,accessorId:t,asynchronous:e._asynchronous,loadBuffer:o,loadTypedArray:r})}function Uze(e,t,n,i,o,r){return Ai.getIndexBufferLoader({gltf:e.gltfJson,accessorId:t,gltfResource:e._gltfResource,baseResource:e._baseResource,frameState:r,draco:n,asynchronous:e._asynchronous,loadBuffer:i,loadTypedArray:o})}function zze(e,t){let n=Ai.getBufferViewLoader({gltf:e.gltfJson,bufferViewId:t,gltfResource:e._gltfResource,baseResource:e._baseResource});return e._bufferViewLoaders.push(n),n}function Xoe(e,t,n){let i=t.byteOffset,o=nu(e,t),r=t.count,s=rf(t.type),a=t.componentType,c=X.getSizeInBytes(a),u=c*s,f=r*s;if(o===u)return n=new Uint8Array(n),X.createArrayBufferView(a,n.buffer,n.byteOffset+i,f);let d=X.createTypedArray(a,f),p=new DataView(n.buffer),g=new Array(s),m=fg(t.componentType);i=n.byteOffset+i;for(let x=0;x<r;++x){m(p,i,s,c,g);for(let b=0;b<s;++b)d[x*s+b]=g[b];i+=o}return d}function Hze(e,t){let n=e.type;if(n===on.SCALAR)return t.fill(0);let i=on.getMathType(n);return t.fill(i.clone(i.ZERO))}function Gze(e,t,n,i){let o=e.type,r=e.count;if(o===on.SCALAR)for(let s=0;s<r;s++)n[s]=t[s];else if(o===on.VEC4&&i)for(let s=0;s<r;s++)n[s]=Me.unpack(t,s*4);else{let s=on.getMathType(o),a=on.getNumberOfComponents(o);for(let c=0;c<r;c++)n[c]=s.unpack(t,c*a)}return n}async function Wze(e,t,n,i,o){let{gltfJson:r}=e;if(await t.load(),e.isDestroyed())return;let s=Xoe(r,n,t.typedArray);i=y(i,!1),Gze(n,s,o,i)}function aF(e,t,n){let i=new Array(t.count),o=t.bufferView;if(l(o)){let r=zze(e,o),s=Wze(e,r,t,n,i);return e._loaderPromises.push(s),i}return Hze(t,i)}function su(e,t){if(l(t))return e===Number?t[0]:e.unpack(t)}function jze(e){return e===Number?0:new e}function qze(e){switch(e){case X.BYTE:return 127;case X.UNSIGNED_BYTE:return 255;case X.SHORT:return 32767;case X.UNSIGNED_SHORT:return 65535;default:return 1}}var Yze={VEC2:new U(-1,-1),VEC3:new h(-1,-1,-1),VEC4:new oe(-1,-1,-1,-1)};function Xze(e,t){let n=qze(e.componentDatatype),i=Yze[e.type],o=e.min;l(o)&&(o=t.divideByScalar(o,n,o),o=t.maximumByComponent(o,i,o));let r=e.max;l(r)&&(r=t.divideByScalar(r,n,r),r=t.maximumByComponent(r,i,r)),e.min=o,e.max=r}function Kze(e,t,n){let i=e.decodeMatrix,o=su(n,e.decodedMin),r=su(n,e.decodedMax);l(o)&&l(r)&&(t.min=o,t.max=r);let s=new xn.Quantization;s.componentDatatype=t.componentDatatype,s.type=t.type,i.length===4?(s.quantizedVolumeOffset=i[2],s.quantizedVolumeStepSize=i[0]):i.length===9?(s.quantizedVolumeOffset=new U(i[6],i[7]),s.quantizedVolumeStepSize=new U(i[0],i[4])):i.length===16?(s.quantizedVolumeOffset=new h(i[12],i[13],i[14]),s.quantizedVolumeStepSize=new h(i[0],i[5],i[10])):i.length===25&&(s.quantizedVolumeOffset=new oe(i[20],i[21],i[22],i[23]),s.quantizedVolumeStepSize=new oe(i[0],i[6],i[12],i[18])),t.quantization=s}function Zze(e,t,n,i,o){let r=e.accessors[t],s=on.getMathType(r.type),a=y(r.normalized,!1),c=new hze;c.name=n,c.semantic=i,c.setIndex=o,c.constant=jze(s),c.componentDatatype=r.componentType,c.normalized=a,c.count=r.count,c.type=r.type,c.min=su(s,r.min),c.max=su(s,r.max),c.byteOffset=r.byteOffset,c.byteStride=nu(e,r),oi(r,"WEB3D_quantized_attributes")&&Kze(r.extensions.WEB3D_quantized_attributes,c,s);let u=c.semantic===Ct.POSITION||c.semantic===Ct.NORMAL||c.semantic===Ct.TANGENT||c.semantic===Ct.TEXCOORD;return e.extensionsRequired?.includes("KHR_mesh_quantization")&&a&&u&&Xze(c,s),c}function Koe(e){let n=/^\w+_(\d+)$/.exec(e);if(n!==null)return parseInt(n[1])}var $ze={gltfSemantic:void 0,renamedSemantic:void 0,modelSemantic:void 0};function J9(e,t,n){let i=n;e._renameBatchIdSemantic&&(n==="_BATCHID"||n==="BATCHID")&&(i="_FEATURE_ID_0");let o=t.fromGltfSemantic(i),r=$ze;return r.gltfSemantic=n,r.renamedSemantic=i,r.modelSemantic=o,r}function Qze(e){let t=e===Ct.POSITION,n=e===Ct.FEATURE_ID,i=e===Ct.TEXCOORD;return t||n||i}function Jze(e,t,n,i){if(e.byteOffset=0,e.byteStride=void 0,e.quantization=t.quantization,n&&(e.buffer=t.buffer),i){let o=l(t.quantization)?t.quantization.componentDatatype:e.componentDatatype;e.typedArray=X.createArrayBufferView(o,t.typedArray.buffer)}}function e4e(e,t,n,i,o,r){if(o&&(n.buffer=i.buffer),r){let s=i.typedArray;n.typedArray=Xoe(e,t,s),o||(n.byteOffset=0,n.byteStride=void 0)}}function Zoe(e,t,n,i,o,r,s){let a=e.gltfJson,c=a.accessors[t],u=c.bufferView,f=n.gltfSemantic,d=n.renamedSemantic,p=n.modelSemantic,g=l(p)?Koe(d):void 0,x=Zze(a,t,f,p,g);if(!l(i)&&!l(u))return x;let b=Vze(e,t,f,i,o,r,s),T=e._geometryLoaders.length;e._geometryLoaders.push(b);let A=b.load();return e._loaderPromises.push(A),e._geometryCallbacks[T]=()=>{l(i)&&l(i.attributes)&&l(i.attributes[f])?Jze(x,b,o,r):e4e(a,c,x,b,o,r)},x}function $oe(e,t,n,i,o,r,s){let a=n.modelSemantic,c=a===Ct.POSITION,u=a===Ct.FEATURE_ID,f=c&&!o&&e._loadAttributesFor2D&&!s.scene3DOnly,d=c&&e._enablePick&&!s.context.webgl2,p=e._loadForClassification&&u,g=e._loadAttributesAsTypedArray,m=!g,x=g||f||d||p,A=Zoe(e,t,n,i,r?!1:m,r?!0:x,s),C=new SA.AttributeLoadPlan(A);return C.loadBuffer=m,C.loadTypedArray=x,C}function t4e(e,t,n,i,o){let r=e.gltfJson.accessors,s=l(n.ROTATION),a=l(n.TRANSLATION)&&l(r[n.TRANSLATION].min)&&l(r[n.TRANSLATION].max),c=J9(e,os,i),u=c.modelSemantic,f=u===os.TRANSLATION||u===os.ROTATION||u===os.SCALE,d=u===os.TRANSLATION,p=e._loadAttributesAsTypedArray||s&&f||!o.context.instancedArrays,g=e._enablePick&&!o.context.webgl2,m=!p,x=e._loadAttributesFor2D&&!o.scene3DOnly;return Zoe(e,t,c,void 0,m,p||d&&(!a||x||g),o)}function n4e(e,t,n,i,o,r){let s=e.gltfJson.accessors[t],a=s.bufferView;if(!l(n)&&!l(a))return;let c=new mze;c.count=s.count;let u=e._loadAttributesAsTypedArray,f=(e._loadIndicesForWireframe||e._enablePick)&&!r.context.webgl2,d=e._loadForClassification&&i,g=!u,m=u||f||d,T=Uze(e,t,n,o?!1:g,o?!0:m,r),A=e._geometryLoaders.length;e._geometryLoaders.push(T);let C=T.load();e._loaderPromises.push(C),e._geometryCallbacks[A]=()=>{c.indexDatatype=T.indexDatatype,c.buffer=T.buffer,c.typedArray=T.typedArray};let S=new SA.IndicesLoadPlan(c);return S.loadBuffer=g,S.loadTypedArray=m,S}function Lc(e,t,n,i){let o=e.gltfJson,r=iu.getImageIdFromTexture({gltf:o,textureId:t.index,supportedImageFormats:e._supportedImageFormats});if(!l(r))return;let s=Ai.getTextureLoader({gltf:o,textureInfo:t,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:n,asynchronous:e._asynchronous}),a=iu.createModelTextureReader({textureInfo:t}),c=e._textureLoaders.length;e._textureLoaders.push(s);let u=s.load().catch(f=>{if(!e.isDestroyed()){if(!e._incrementallyLoadTextures)throw f;e._textureState=So.FAILED,e._textureErrors.push(f)}});return e._texturesPromises.push(u),e._textureCallbacks[c]=()=>{a.texture=s.texture,l(i)&&(a.texture.sampler=i)},a}function i4e(e,t,n){let{diffuseTexture:i,specularGlossinessTexture:o,diffuseFactor:r,specularFactor:s,glossinessFactor:a}=t,c=new Rze;return l(i)&&(c.diffuseTexture=Lc(e,i,n)),l(o)&&(c.specularGlossinessTexture=Lc(e,o,n)),c.diffuseFactor=su(oe,r),c.specularFactor=su(h,s),c.glossinessFactor=a,c}function o4e(e,t,n){let{baseColorTexture:i,metallicRoughnessTexture:o,baseColorFactor:r,metallicFactor:s,roughnessFactor:a}=t,c=new Pze;return l(i)&&(c.baseColorTexture=Lc(e,i,n)),l(o)&&(c.metallicRoughnessTexture=Lc(e,o,n)),c.baseColorFactor=su(oe,r),c.metallicFactor=s,c.roughnessFactor=a,c}function r4e(e,t,n){let{specularFactor:i,specularTexture:o,specularColorFactor:r,specularColorTexture:s}=t,a=new Oze;return l(o)&&(a.specularTexture=Lc(e,o,n)),l(s)&&(a.specularColorTexture=Lc(e,s,n)),a.specularFactor=i,a.specularColorFactor=su(h,r),a}function s4e(e,t,n){let{anisotropyStrength:i=$9.DEFAULT_ANISOTROPY_STRENGTH,anisotropyRotation:o=$9.DEFAULT_ANISOTROPY_ROTATION,anisotropyTexture:r}=t,s=new $9;return l(r)&&(s.anisotropyTexture=Lc(e,r,n)),s.anisotropyStrength=i,s.anisotropyRotation=o,s}function a4e(e,t,n){let{clearcoatFactor:i=Q9.DEFAULT_CLEARCOAT_FACTOR,clearcoatTexture:o,clearcoatRoughnessFactor:r=Q9.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR,clearcoatRoughnessTexture:s,clearcoatNormalTexture:a}=t,c=new Q9;return l(o)&&(c.clearcoatTexture=Lc(e,o,n)),l(s)&&(c.clearcoatRoughnessTexture=Lc(e,s,n)),l(a)&&(c.clearcoatNormalTexture=Lc(e,a,n)),c.clearcoatFactor=i,c.clearcoatRoughnessFactor=r,c}function c4e(e,t,n){let i=new Mze,o=y(t.extensions,y.EMPTY_OBJECT),r=o.KHR_materials_pbrSpecularGlossiness,s=o.KHR_materials_specular,a=o.KHR_materials_anisotropy,c=o.KHR_materials_clearcoat,u=t.pbrMetallicRoughness;return i.unlit=l(o.KHR_materials_unlit),l(r)?i.specularGlossiness=i4e(e,r,n):(l(u)&&(i.metallicRoughness=o4e(e,u,n)),l(s)&&!i.unlit&&(i.specular=r4e(e,s,n)),l(a)&&!i.unlit&&(i.anisotropy=s4e(e,a,n)),l(c)&&!i.unlit&&(i.clearcoat=a4e(e,c,n))),l(t.emissiveTexture)&&(i.emissiveTexture=Lc(e,t.emissiveTexture,n)),l(t.normalTexture)&&!e._loadForClassification&&(i.normalTexture=Lc(e,t.normalTexture,n)),l(t.occlusionTexture)&&(i.occlusionTexture=Lc(e,t.occlusionTexture,n)),i.emissiveFactor=su(h,t.emissiveFactor),i.alphaMode=t.alphaMode,i.alphaCutoff=t.alphaCutoff,i.doubleSided=t.doubleSided,i}function Qoe(e,t){let n=new joe;return n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.propertyTableId=e.propertyTable,n.setIndex=e.attribute,n.label=e.label,n.positionalLabel=t,n}function Joe(e,t,n,i){let o=new joe,r=e.featureIds;return o.featureCount=n,o.propertyTableId=t,o.setIndex=Koe(r.attribute),o.positionalLabel=i,o}function ere(e,t){let n=new Yoe;return n.propertyTableId=e.propertyTable,n.featureCount=e.featureCount,n.nullFeatureId=e.nullFeatureId,n.label=e.label,n.positionalLabel=t,n.offset=0,n.repeat=1,n}function tre(e,t,n,i){let o=new Yoe,r=e.featureIds;o.propertyTableId=t,o.featureCount=n,o.offset=y(r.constant,0);let s=y(r.divisor,0);return o.repeat=s===0?void 0:s,o.positionalLabel=i,o}function l4e(e,t,n,i){let o=new qoe;o.featureCount=t.featureCount,o.nullFeatureId=t.nullFeatureId,o.propertyTableId=t.propertyTable,o.label=t.label,o.positionalLabel=i;let r=t.texture;o.textureReader=Lc(e,r,n,Qt.NEAREST);let a=(l(r.channels)?r.channels:[0]).map(function(c){return"rgba".charAt(c)}).join("");return o.textureReader.channels=a,o}function u4e(e,t,n,i,o,r){let s=new qoe,a=t.featureIds,c=a.texture;return s.featureCount=o,s.propertyTableId=n,s.textureReader=Lc(e,c,i,Qt.NEAREST),s.textureReader.channels=a.channels,s.positionalLabel=r,s}function f4e(e,t,n,i,o){let r=new pze,s=void 0,a=!1;for(let c in t){if(!t.hasOwnProperty(c))continue;let u=t[c],f=J9(e,Ct,c),d=$oe(e,u,f,s,a,n,o);r.attributes.push(d.attribute),i.attributePlans.push(d)}return r}function d4e(e,t,n,i){let o=new _ze,r=new SA(o);e._primitiveLoadPlans.push(r);let s=t.material;l(s)&&(o.material=c4e(e,e.gltfJson.materials[s],i));let a=y(t.extensions,y.EMPTY_OBJECT),c=!1,u=a.CESIUM_primitive_outline;e._loadPrimitiveOutline&&l(u)&&(c=!0,r.needsOutlines=!0,r.outlineIndices=h4e(e,u,r));let f=e._loadForClassification,d=a.KHR_draco_mesh_compression,p=!1,g=t.attributes;if(l(g))for(let v in g){if(!g.hasOwnProperty(v))continue;let D=g[v],O=J9(e,Ct,v),R=O.modelSemantic;if(f&&!Qze(R))continue;R===Ct.FEATURE_ID&&(p=!0);let M=$oe(e,D,O,d,n,c,i);r.attributePlans.push(M),o.attributes.push(M.attribute)}let m=t.targets;if(l(m)&&!f)for(let v=0;v<m.length;++v)o.morphTargets.push(f4e(e,m[v],c,r,i));let x=t.indices;if(l(x)){let v=n4e(e,x,d,p,c,i);l(v)&&(r.indicesPlan=v,o.indices=v.indices)}let b=a.EXT_structural_metadata,T=a.EXT_mesh_features,A=a.EXT_feature_metadata,C=l(A);l(T)?m4e(e,o,T,i):C&&p4e(e,o,A,i),l(b)?_4e(o,b):C&&g4e(e,o,A);let S=t.mode;if(f&&S!==Le.TRIANGLES)throw new ce("Only triangle meshes can be used for classification.");return o.primitiveType=S,o}function h4e(e,t){let n=t.indices,i=e.gltfJson.accessors[n];return aF(e,i,!1)}function m4e(e,t,n,i){let o;l(n)&&l(n.featureIds)?o=n.featureIds:o=[];for(let r=0;r<o.length;r++){let s=o[r],a=`featureId_${r}`,c;l(s.texture)?c=l4e(e,s,i,a):l(s.attribute)?c=Qoe(s,a):c=ere(s,a),t.featureIds.push(c)}}function p4e(e,t,n,i){let{featureTables:o}=e.gltfJson.extensions.EXT_feature_metadata,r=0,s=n.featureIdAttributes;if(l(s))for(let c=0;c<s.length;++c){let u=s[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m;l(u.featureIds.attribute)?m=Joe(u,d,p,g):m=tre(u,d,p,g),t.featureIds.push(m)}let a=n.featureIdTextures;if(l(a))for(let c=0;c<a.length;++c){let u=a[c],f=u.featureTable,d=e._sortedPropertyTableIds.indexOf(f),p=o[f].count,g=`featureId_${r}`;r++;let m=u4e(e,u,d,i,p,g);t.featureIds.push(m)}}function _4e(e,t){l(t)&&(l(t.propertyTextures)&&(e.propertyTextureIds=t.propertyTextures),l(t.propertyAttributes)&&(e.propertyAttributeIds=t.propertyAttributes))}function g4e(e,t,n){l(n.featureTextures)&&(t.propertyTextureIds=n.featureTextures.map(function(i){return e._sortedFeatureTextureIds.indexOf(i)}))}function y4e(e,t,n){let i=t.EXT_mesh_gpu_instancing,o=new gze,r=i.attributes;if(l(r))for(let u in r){if(!r.hasOwnProperty(u))continue;let f=r[u];o.attributes.push(t4e(e,f,r,u,n))}let s=y(i.extensions,y.EMPTY_OBJECT),a=t.EXT_instance_features,c=s.EXT_feature_metadata;return l(a)?x4e(o,a):l(c)&&b4e(e.gltfJson,o,c,e._sortedPropertyTableIds),o}function x4e(e,t){let n=t.featureIds;for(let i=0;i<n.length;i++){let o=n[i],r=`instanceFeatureId_${i}`,s;l(o.attribute)?s=Qoe(o,r):s=ere(o,r),e.featureIds.push(s)}}function b4e(e,t,n,i){let o=e.extensions.EXT_feature_metadata.featureTables,r=n.featureIdAttributes;if(l(r))for(let s=0;s<r.length;++s){let a=r[s],c=a.featureTable,u=i.indexOf(c),f=o[c].count,d=`instanceFeatureId_${s}`,p;l(a.featureIds.attribute)?p=Joe(a,u,f,d):p=tre(a,u,f,d),t.featureIds.push(p)}}function T4e(e,t,n){let i=new xze;i.name=t.name,i.matrix=su(F,t.matrix),i.translation=su(h,t.translation),i.rotation=su(Me,t.rotation),i.scale=su(h,t.scale);let o=y(t.extensions,y.EMPTY_OBJECT),r=o.EXT_mesh_gpu_instancing,s=o.AGI_articulations;if(l(r)){if(e._loadForClassification)throw new ce("Models with the EXT_mesh_gpu_instancing extension cannot be used for classification.");i.instances=y4e(e,o,n)}l(s)&&(i.articulationName=s.articulationName);let a=t.mesh;if(l(a)){let c=e.gltfJson.meshes[a],u=c.primitives;for(let p=0;p<u.length;++p)i.primitives.push(d4e(e,u[p],l(i.instances),n));let f=y(t.weights,c.weights),d=i.primitives[0].morphTargets;i.morphWeights=l(f)?f.slice():new Array(d.length).fill(0)}return i}function A4e(e,t){let n=e.gltfJson.nodes;if(!l(n))return[];let i=n.map(function(o,r){let s=T4e(e,o,t);return s.index=r,s});for(let o=0;o<i.length;++o){let r=n[o].children;if(l(r))for(let s=0;s<r.length;++s)i[o].children.push(i[r[s]])}return i}function C4e(e,t,n){let i=new yze,o=t.joints;i.joints=o.map(s=>n[s]);let r=t.inverseBindMatrices;if(l(r)){let s=e.gltfJson.accessors[r];i.inverseBindMatrices=aF(e,s)}else i.inverseBindMatrices=new Array(o.length).fill(F.IDENTITY);return i}function E4e(e,t){let n=e.gltfJson.skins;if(e._loadForClassification||!l(n))return[];let i=n.map(function(r,s){let a=C4e(e,r,t);return a.index=s,a}),o=e.gltfJson.nodes;for(let r=0;r<t.length;++r){let s=o[r].skin;l(s)&&(t[r].skin=i[s])}return i}async function S4e(e,t,n,i){let o=new YN({gltf:e.gltfJson,extension:t,extensionLegacy:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._structuralMetadataLoader=o,o.load()}async function v4e(e,t,n,i){let o=new rF({gltf:t,extension:n,gltfResource:e._gltfResource,baseResource:e._baseResource,supportedImageFormats:e._supportedImageFormats,frameState:i,asynchronous:e._asynchronous});return e._meshPrimitiveGpmLoader=o,o.load()}function w4e(e,t){let n=new Tze,i=e.gltfJson.accessors,o=i[t.input];n.input=aF(e,o);let r=t.interpolation;n.interpolation=y(Hh[r],Hh.LINEAR);let s=i[t.output];return n.output=aF(e,s,!0),n}function D4e(e,t){let n=new Aze,i=e.node;if(!l(i))return;n.node=t[i];let o=e.path.toUpperCase();return n.path=bze[o],n}function I4e(e,t,n){let i=new Cze,o=e.sampler;return i.sampler=t[o],i.target=D4e(e.target,n),i}function P4e(e,t,n){let i=new Eze;i.name=t.name;let o=t.samplers.map(function(s,a){let c=w4e(e,s);return c.index=a,c}),r=t.channels.map(function(s){return I4e(s,o,n)});return i.samplers=o,i.channels=r,i}function R4e(e,t){let n=e.gltfJson.animations;return e._loadForClassification||!l(n)?[]:n.map(function(o,r){let s=P4e(e,o,t);return s.index=r,s})}function O4e(e){let t=new Sze;t.name=e.name;let n=e.type.toUpperCase();return t.type=Mc[n],t.minimumValue=e.minimumValue,t.maximumValue=e.maximumValue,t.initialValue=e.initialValue,t}function M4e(e){let t=new vze;return t.name=e.name,t.stages=e.stages.map(O4e),t}function L4e(e){let n=y(e.extensions,y.EMPTY_OBJECT).AGI_articulations?.articulations;return l(n)?n.map(M4e):[]}function N4e(e){let t;return l(e.scenes)&&l(e.scene)&&(t=e.scenes[e.scene].nodes),t=y(t,e.nodes),t=l(t)?t:[],t}function F4e(e,t){let n=new Dze,i=N4e(e);return n.nodes=i.map(function(o){return t[o]}),n}var B4e=new h;function k4e(e,t){let n=e.gltfJson,i=y(n.extensions,y.EMPTY_OBJECT),o=i.EXT_structural_metadata,r=i.EXT_feature_metadata,s=i.CESIUM_RTC;if(l(r)){let A=r.featureTables,C=r.featureTextures,S=l(A)?A:[],v=l(C)?C:[];e._sortedPropertyTableIds=Object.keys(S).sort(),e._sortedFeatureTextureIds=Object.keys(v).sort()}let a=A4e(e,t),c=E4e(e,a),u=R4e(e,a),f=L4e(n),d=F4e(n,a),p=new Ize,g=new wze,m=n.asset.copyright;if(l(m)){let A=m.split(";").map(function(C){return new wt(C.trim())});g.credits=A}if(p.asset=g,p.scene=d,p.nodes=a,p.skins=c,p.animations=u,p.articulations=f,p.upAxis=e._upAxis,p.forwardAxis=e._forwardAxis,l(s)){let A=h.fromArray(s.center,0,B4e);p.transform=F.fromTranslation(A,p.transform)}if(e._components=p,l(o)||l(r)){let A=S4e(e,o,r,t);e._loaderPromises.push(A)}let x=i.NGA_gpm_local;if(l(x)){let A=tF.load(x);e._components.extensions.NGA_gpm_local=A}let b=n.meshes;if(l(b))for(let A of b){let C=A.primitives;if(l(C))for(let S of C){let v=S.extensions;if(l(v)){let D=v.NGA_gpm_local;if(l(D)){let O=v4e(e,n,D,t);e._loaderPromises.push(O)}}}}let T=[];return T.push.apply(T,e._loaderPromises),e._incrementallyLoadTextures||T.push.apply(T,e._texturesPromises),Promise.all(T)}function V4e(e){let t=e._textureLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ai.unload(t[n]);e._textureLoaders.length=0}function nre(e){let t=e._bufferViewLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ai.unload(t[n]);e._bufferViewLoaders.length=0}function U4e(e){let t=e._geometryLoaders;for(let n=0;n<t.length;++n)t[n]=!t[n].isDestroyed()&&Ai.unload(t[n]);e._geometryLoaders.length=0}function z4e(e){let t=e._postProcessBuffers;for(let n=0;n<t.length;n++){let i=t[n];i.isDestroyed()||i.destroy()}t.length=0}function H4e(e){l(e._structuralMetadataLoader)&&!e._structuralMetadataLoader.isDestroyed()&&(e._structuralMetadataLoader.destroy(),e._structuralMetadataLoader=void 0)}function G4e(e){l(e._meshPrimitiveGpmLoader)&&!e._meshPrimitiveGpmLoader.isDestroyed()&&(e._meshPrimitiveGpmLoader.destroy(),e._meshPrimitiveGpmLoader=void 0)}hd.prototype.isUnloaded=function(){return this._state===So.UNLOADED};hd.prototype.unload=function(){l(this._gltfJsonLoader)&&!this._gltfJsonLoader.isDestroyed()&&Ai.unload(this._gltfJsonLoader),this._gltfJsonLoader=void 0,V4e(this),nre(this),U4e(this),z4e(this),H4e(this),G4e(this),this._components=void 0,this._typedArray=void 0,this._state=So.UNLOADED};var Sg=hd;var cF=`uniform sampler2D u_pointCloud_colorGBuffer; +uniform sampler2D u_pointCloud_depthGBuffer; +uniform vec2 u_distanceAndEdlStrength; +in vec2 v_textureCoordinates; + +vec2 neighborContribution(float log2Depth, vec2 offset) +{ + float dist = u_distanceAndEdlStrength.x; + vec2 texCoordOrig = v_textureCoordinates + offset * dist; + vec2 texCoord0 = v_textureCoordinates + offset * floor(dist); + vec2 texCoord1 = v_textureCoordinates + offset * ceil(dist); + + float depthOrLogDepth0 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord0)); + float depthOrLogDepth1 = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, texCoord1)); + + // ignore depth values that are the clear depth + if (depthOrLogDepth0 == 0.0 || depthOrLogDepth1 == 0.0) { + return vec2(0.0); + } + + // interpolate the two adjacent depth values + float depthMix = mix(depthOrLogDepth0, depthOrLogDepth1, fract(dist)); + vec4 eyeCoordinate = czm_windowToEyeCoordinates(texCoordOrig, depthMix); + return vec2(max(0.0, log2Depth - log2(-eyeCoordinate.z / eyeCoordinate.w)), 1.0); +} + +void main() +{ + float depthOrLogDepth = czm_unpackDepth(texture(u_pointCloud_depthGBuffer, v_textureCoordinates)); + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, depthOrLogDepth); + eyeCoordinate /= eyeCoordinate.w; + + float log2Depth = log2(-eyeCoordinate.z); + + if (depthOrLogDepth == 0.0) // 0.0 is the clear value for the gbuffer + { + discard; + } + + vec4 color = texture(u_pointCloud_colorGBuffer, v_textureCoordinates); + + // sample from neighbors left, right, down, up + vec2 texelSize = 1.0 / czm_viewport.zw; + + vec2 responseAndCount = vec2(0.0); + + responseAndCount += neighborContribution(log2Depth, vec2(-texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(+texelSize.x, 0.0)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, -texelSize.y)); + responseAndCount += neighborContribution(log2Depth, vec2(0.0, +texelSize.y)); + + float response = responseAndCount.x / responseAndCount.y; + float strength = u_distanceAndEdlStrength.y; + float shade = exp(-response * 300.0 * strength); + color.rgb *= shade; + out_FragColor = vec4(color); + + // Input and output depth are the same. + gl_FragDepth = depthOrLogDepth; +} +`;function wA(){this._framebuffer=new hi({colorAttachmentsLength:2,depth:!0,supportsDepthTexture:!0}),this._drawCommand=void 0,this._clearCommand=void 0,this._strength=1,this._radius=1}Object.defineProperties(wA.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}},colorGBuffer:{get:function(){return this._framebuffer.getColorTexture(0)}},depthGBuffer:{get:function(){return this._framebuffer.getColorTexture(1)}}});function W4e(e){e._framebuffer.destroy(),e._drawCommand=void 0,e._clearCommand=void 0}var eW=new U;function j4e(e,t){let n=new Ue({defines:["LOG_DEPTH_WRITE"],sources:[cF]}),i={u_pointCloud_colorGBuffer:function(){return e.colorGBuffer},u_pointCloud_depthGBuffer:function(){return e.depthGBuffer},u_distanceAndEdlStrength:function(){return eW.x=e._radius,eW.y=e._strength,eW}},o=Ve.fromCache({blending:ln.ALPHA_BLEND,depthMask:!0,depthTest:{enabled:!0},stencilTest:Ht.setCesium3DTileBit(),stencilMask:Ht.CESIUM_3D_TILE_MASK});e._drawCommand=t.createViewportQuadCommand(n,{uniformMap:i,renderState:o,pass:ve.CESIUM_3D_TILE,owner:e}),e._clearCommand=new ei({framebuffer:e.framebuffer,color:new z(0,0,0,0),depth:1,renderState:Ve.fromCache(),pass:ve.CESIUM_3D_TILE,owner:e})}function q4e(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i),j4e(e,t)}function ire(e){return e.drawBuffers&&e.fragmentDepth}wA.isSupported=ire;function Y4e(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"EC");if(!l(n)){let i=t._attributeLocations,o=t.fragmentShaderSource.clone();o.sources.splice(0,0,`layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1;`),o.sources=o.sources.map(function(r){return r=Ue.replaceMain(r,"czm_point_cloud_post_process_main"),r=r.replaceAll(/out_FragColor/g,"out_FragData_0"),r}),o.sources.push(`void main() +{ + czm_point_cloud_post_process_main(); +#ifdef LOG_DEPTH + czm_writeLogDepth(); + out_FragData_1 = czm_packDepth(gl_FragDepth); +#else + out_FragData_1 = czm_packDepth(gl_FragCoord.z); +#endif +}`),n=e.shaderCache.createDerivedShaderProgram(t,"EC",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:o,attributeLocations:i})}return n}wA.prototype.update=function(e,t,n,i){if(!ire(e.context))return;this._strength=n.eyeDomeLightingStrength,this._radius=n.eyeDomeLightingRadius*e.pixelRatio,q4e(this,e.context);let o,r=e.commandList,s=r.length;for(o=t;o<s;++o){let u=r[o];if(u.primitiveType!==Le.POINTS||u.pass===ve.TRANSLUCENT)continue;let f,d,p=u.derivedCommands.pointCloudProcessor;l(p)&&(f=p.command,d=p.originalShaderProgram),(!l(f)||u.dirty||d!==u.shaderProgram||f.framebuffer!==this.framebuffer)&&(f=et.shallowClone(u,f),f.framebuffer=this.framebuffer,f.shaderProgram=Y4e(e.context,u.shaderProgram),f.castShadows=!1,f.receiveShadows=!1,l(p)||(p={command:f,originalShaderProgram:u.shaderProgram},u.derivedCommands.pointCloudProcessor=p),p.originalShaderProgram=u.shaderProgram),r[o]=f}let a=this._clearCommand,c=this._drawCommand;c.boundingVolume=i,r.push(c),r.push(a)};wA.prototype.isDestroyed=function(){return!1};wA.prototype.destroy=function(){return W4e(this),ue(this)};var vg=wA;function ore(e){let t=y(e,{});this.attenuation=y(t.attenuation,!1),this.geometricErrorScale=y(t.geometricErrorScale,1),this.maximumAttenuation=t.maximumAttenuation,this.baseResolution=t.baseResolution,this.eyeDomeLighting=y(t.eyeDomeLighting,!0),this.eyeDomeLightingStrength=y(t.eyeDomeLightingStrength,1),this.eyeDomeLightingRadius=y(t.eyeDomeLightingRadius,1),this.backFaceCulling=y(t.backFaceCulling,!1),this.normalShading=y(t.normalShading,!0)}ore.isSupported=function(e){return vg.isSupported(e.context)};var bp=ore;var Ta={},X4e=new oe(0,0,0,1),Qa=new oe,K4e=new qe,tW=new U,nW=new U;Ta.worldToWindowCoordinates=function(e,t,n){return Ta.worldWithEyeOffsetToWindowCoordinates(e,t,h.ZERO,n)};var rre=new oe,sre=new h;function dw(e,t,n,i){let o=n.viewMatrix,r=F.multiplyByVector(o,oe.fromElements(e.x,e.y,e.z,1,rre),rre),s=h.multiplyComponents(t,h.normalize(r,sre),sre);return r.x+=t.x+s.x,r.y+=t.y+s.y,r.z+=s.z,F.multiplyByVector(n.frustum.projectionMatrix,r,i)}var Z4e=new fe(Math.PI,P.PI_OVER_TWO),$4e=new h,Q4e=new h;Ta.worldWithEyeOffsetToWindowCoordinates=function(e,t,n,i){let o=e.frameState,r=Ta.computeActualEllipsoidPosition(o,t,X4e);if(!l(r))return;let s=e.canvas,a=K4e;a.x=0,a.y=0,a.width=s.clientWidth,a.height=s.clientHeight;let c=e.camera,u=!1;if(o.mode===ne.SCENE2D){let f=e.mapProjection,d=Z4e,p=f.project(d,$4e),g=h.clone(c.position,Q4e),m=c.frustum.clone(),x=F.computeViewportTransformation(a,0,1,new F),b=c.frustum.projectionMatrix,T=c.positionWC.y,A=h.fromElements(P.sign(T)*p.x-T,0,-c.positionWC.x),C=Nt.pointToGLWindowCoordinates(b,x,A);if(T===0||C.x<=0||C.x>=s.clientWidth)u=!0;else{if(C.x>s.clientWidth*.5){a.width=C.x,c.frustum.right=p.x-T,Qa=dw(r,n,c,Qa),Ta.clipToGLWindowCoordinates(a,Qa,tW),a.x+=C.x,c.position.x=-c.position.x;let S=c.frustum.right;c.frustum.right=-c.frustum.left,c.frustum.left=-S,Qa=dw(r,n,c,Qa),Ta.clipToGLWindowCoordinates(a,Qa,nW)}else{a.x+=C.x,a.width-=C.x,c.frustum.left=-p.x-T,Qa=dw(r,n,c,Qa),Ta.clipToGLWindowCoordinates(a,Qa,tW),a.x=a.x-a.width,c.position.x=-c.position.x;let S=c.frustum.left;c.frustum.left=-c.frustum.right,c.frustum.right=-S,Qa=dw(r,n,c,Qa),Ta.clipToGLWindowCoordinates(a,Qa,nW)}h.clone(g,c.position),c.frustum=m.clone(),i=U.clone(tW,i),(i.x<0||i.x>s.clientWidth)&&(i.x=nW.x)}}if(o.mode!==ne.SCENE2D||u){if(Qa=dw(r,n,c,Qa),Qa.z<0&&!(c.frustum instanceof rn)&&!(c.frustum instanceof Ur))return;i=Ta.clipToGLWindowCoordinates(a,Qa,i)}return i.y=s.clientHeight-i.y,i};Ta.worldToDrawingBufferCoordinates=function(e,t,n){if(n=Ta.worldToWindowCoordinates(e,t,n),!!l(n))return Ta.transformWindowToDrawingBuffer(e,n,n)};var Tp=new h,J4e=new fe;Ta.computeActualEllipsoidPosition=function(e,t,n){let i=e.mode;if(i===ne.SCENE3D)return h.clone(t,n);let o=e.mapProjection,r=o.ellipsoid.cartesianToCartographic(t,J4e);if(!l(r))return;if(o.project(r,Tp),i===ne.COLUMBUS_VIEW)return h.fromElements(Tp.z,Tp.x,Tp.y,n);if(i===ne.SCENE2D)return h.fromElements(0,Tp.x,Tp.y,n);let s=e.morphTime;return h.fromElements(P.lerp(Tp.z,t.x,s),P.lerp(Tp.x,t.y,s),P.lerp(Tp.y,t.z,s),n)};var are=new h,cre=new h,lre=new F;Ta.clipToGLWindowCoordinates=function(e,t,n){return h.divideByScalar(t,t.w,are),F.computeViewportTransformation(e,0,1,lre),F.multiplyByPoint(lre,are,cre),U.fromCartesian3(cre,n)};Ta.transformWindowToDrawingBuffer=function(e,t,n){let i=e.canvas,o=e.drawingBufferWidth/i.clientWidth,r=e.drawingBufferHeight/i.clientHeight;return U.fromElements(t.x*o,t.y*r,n)};var eHe=new oe,ure=new oe;Ta.drawingBufferToWorldCoordinates=function(e,t,n,i){let r=e.context.uniformState,s=r.currentFrustum,a=s.x,c=s.y;if(e.frameState.useLogDepth){let g=n*r.log2FarDepthFromNearPlusOne,m=Math.pow(2,g)-1;n=c*(1-a/(m+a))/(c-a)}let u=e.view.passState.viewport,f=oe.clone(oe.UNIT_W,eHe);f.x=(t.x-u.x)/u.width*2-1,f.y=(t.y-u.y)/u.height*2-1,f.z=n*2-1,f.w=1;let d,p=e.camera.frustum;if(l(p.fovy)){d=F.multiplyByVector(r.inverseViewProjection,f,ure);let g=1/d.w;h.multiplyByScalar(d,g,d)}else{let g=p.offCenterFrustum;l(g)&&(p=g),d=ure,d.x=(f.x*(p.right-p.left)+p.left+p.right)*.5,d.y=(f.y*(p.top-p.bottom)+p.bottom+p.top)*.5,d.z=(f.z*(a-c)-a-c)*.5,d.w=1,d=F.multiplyByVector(r.inverseView,d,d)}return h.fromCartesian4(d,i)};var Vi=Ta;var DA={};DA._deprecationWarning=_s;var Ap=Uint32Array.BYTES_PER_ELEMENT;DA.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Ap;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Batched 3D Model version 1 is supported. Version ${r} is not.`);t+=Ap;let s=o.getUint32(t,!0);t+=Ap;let a=o.getUint32(t,!0);t+=Ap;let c=o.getUint32(t,!0);t+=Ap;let u=o.getUint32(t,!0);t+=Ap;let f=o.getUint32(t,!0);t+=Ap;let d;u>=570425344?(t-=Ap*2,d=a,u=c,f=0,a=0,c=0,DA._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchLength] [batchTableByteLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel.")):f>=570425344&&(t-=Ap,d=u,u=a,f=c,a=0,c=0,DA._deprecationWarning("b3dm-legacy-header","This b3dm header is using the legacy format [batchTableJsonByteLength] [batchTableBinaryByteLength] [batchLength]. The new format is [featureTableJsonByteLength] [featureTableBinaryByteLength] [batchTableJsonByteLength] [batchTableBinaryByteLength] from https://github.com/CesiumGS/3d-tiles/tree/main/specification/TileFormats/Batched3DModel."));let p;a===0?p={BATCH_LENGTH:y(d,0)}:(p=Lo(i,t,a),t+=a);let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Lo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(DA._deprecationWarning("b3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{batchLength:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var lF=DA;function hw(e,t){this.json=e,this.buffer=t,this._cachedTypedArrays={},this.featuresLength=0}function fre(e,t,n,i,o,r){let s=e._cachedTypedArrays,a=s[t];return l(a)||(a=X.createArrayBufferView(n,e.buffer.buffer,e.buffer.byteOffset+r,o*i),s[t]=a),a}function tHe(e,t,n,i){let o=e._cachedTypedArrays,r=o[t];return l(r)||(r=X.createTypedArray(n,i),o[t]=r),r}hw.prototype.getGlobalProperty=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(t=y(t,X.UNSIGNED_INT),n=y(n,1),fre(this,e,t,n,1,i.byteOffset)):i};hw.prototype.hasProperty=function(e){return l(this.json[e])};hw.prototype.getPropertyArray=function(e,t,n){let i=this.json[e];if(l(i))return l(i.byteOffset)?(l(i.componentType)&&(t=X.fromName(i.componentType)),fre(this,e,t,n,this.featuresLength,i.byteOffset)):tHe(this,e,t,i)};hw.prototype.getProperty=function(e,t,n,i,o){let r=this.json[e];if(!l(r))return;let s=this.getPropertyArray(e,t,n);if(n===1)return s[i];for(let a=0;a<n;++a)o[a]=s[n*i+a];return o};var Gh=hw;function mw(e){let t=e.count,n=e.batchTable,i=e.binaryBody,o=y(e.parseAsPropertyAttributes,!1),r=e.customAttributeOutput,s=nHe(n),a;l(s.jsonProperties)&&(a=new Ag({count:t,properties:s.jsonProperties}));let c;l(s.hierarchy)&&(c=new iA({extension:s.hierarchy,binaryBody:i}));let u=kh.BATCH_TABLE_CLASS_NAME,f=s.binaryProperties,d,p,g;if(o){let b=oHe(t,u,f,i,r);g=b.transcodedSchema,p=[new AA({propertyAttribute:b.propertyAttributeJson,class:b.transcodedClass})]}else{let b=iHe(t,u,f,i);g=b.transcodedSchema;let T=b.featureTableJson;d=new tu({count:T.count,properties:T.properties,class:b.transcodedClass,bufferViews:b.bufferViewsTypedArrays}),p=[]}let m=[];if(l(d)||l(a)||l(c)){let b=new gl({id:0,name:"Batch Table",count:t,metadataTable:d,jsonMetadataTable:a,batchTableHierarchy:c});m.push(b)}let x={schema:g,propertyTables:m,propertyAttributes:p,extensions:s.extensions,extras:s.extras};return new Js(x)}function nHe(e){let t=e.HIERARCHY,n=e.extras,i=e.extensions,o;l(t)?(mw._deprecationWarning("batchTableHierarchyExtension","The batch table HIERARCHY property has been moved to an extension. Use extensions.3DTILES_batch_table_hierarchy instead."),o=t):l(i)&&(o=i["3DTILES_batch_table_hierarchy"]);let r,s={};for(let a in e){if(!e.hasOwnProperty(a)||a==="HIERARCHY"||a==="extensions"||a==="extras")continue;let c=e[a];Array.isArray(c)?(r=l(r)?r:{},r[a]=c):s[a]=c}return{binaryProperties:s,jsonProperties:r,hierarchy:o,extras:n,extensions:i}}function iHe(e,t,n,i){let o={},r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;if(!l(i))throw new ce(`Property ${d} requires a batch table binary.`);let p=n[d],g=nf(p);r[d]={bufferView:a},o[d]=dre(p),s[a]=g.createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e),a++}let c={classes:{}};c.classes[t]={properties:o};let u=sf.fromJson(c);return{featureTableJson:{class:t,count:e,properties:r},bufferViewsTypedArrays:s,transcodedSchema:u,transcodedClass:u.classes[t]}}function oHe(e,t,n,i,o){let r={},s={},a=0;for(let d in n){if(!n.hasOwnProperty(d))continue;let p=n[d];if(!l(i)&&!l(p.typedArray))throw new ce(`Property ${d} requires a batch table binary.`);let g=Zt.sanitizeGlslIdentifier(d);(g===""||r.hasOwnProperty(g))&&(g=`property_${a}`,a++);let m=dre(p);m.name=d,r[g]=m;let x=g.toUpperCase();x.startsWith("_")||(x=`_${x}`);let b=p.typedArray;l(b)||(b=nf(p).createArrayBufferView(i.buffer,i.byteOffset+p.byteOffset,e));let T=new xn.Attribute;T.name=x,T.count=e,T.type=p.type;let A=X.fromTypedArray(b);(A===X.INT||A===X.UNSIGNED_INT||A===X.DOUBLE)&&(mw._oneTimeWarning("Cast pnts property to floats",`Point cloud property "${x}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),b=new Float32Array(b)),T.componentDatatype=X.fromTypedArray(b),T.typedArray=b,o.push(T),s[g]={attribute:x}}let c={classes:{}};c.classes[t]={properties:r};let u=sf.fromJson(c);return{class:t,propertyAttributeJson:{properties:s},transcodedSchema:u,transcodedClass:u.classes[t]}}function dre(e){let t=rHe(e.componentType);return{type:e.type,componentType:t}}function rHe(e){switch(e){case"BYTE":return"INT8";case"UNSIGNED_BYTE":return"UINT8";case"SHORT":return"INT16";case"UNSIGNED_SHORT":return"UINT16";case"INT":return"INT32";case"UNSIGNED_INT":return"UINT32";case"FLOAT":return"FLOAT32";case"DOUBLE":return"FLOAT64"}}mw._deprecationWarning=_s;mw._oneTimeWarning=At;var wg=mw;var cx={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,FAILED:4},sHe=xn.FeatureIdAttribute;function Dg(e){e=y(e,y.EMPTY_OBJECT);let t=e.b3dmResource,n=e.baseResource,i=e.arrayBuffer,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Mo.Y),u=y(e.forwardAxis,Mo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadAttributesFor2D,!1),p=y(e.enablePick,!1),g=y(e.loadIndicesForWireframe,!1),m=y(e.loadPrimitiveOutline,!0),x=y(e.loadForClassification,!1);n=l(n)?n:t.clone(),this._b3dmResource=t,this._baseResource=n,this._arrayBuffer=i,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadAttributesFor2D=d,this._enablePick=p,this._loadIndicesForWireframe=g,this._loadPrimitiveOutline=m,this._loadForClassification=x,this._state=cx.UNLOADED,this._promise=void 0,this._gltfLoader=void 0,this._batchLength=0,this._propertyTable=void 0,this._batchTable=void 0,this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(Dg.prototype=Object.create(Yi.prototype),Dg.prototype.constructor=Dg);Object.defineProperties(Dg.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Dg.prototype.load=function(){if(l(this._promise))return this._promise;let e=lF.parse(this._arrayBuffer,this._byteOffset),t=e.batchLength,n=e.featureTableJson,i=e.featureTableBinary,o=e.batchTableJson,r=e.batchTableBinary,s=new Gh(n,i);t=s.getGlobalProperty("BATCH_LENGTH"),this._batchLength=t;let a=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(a)&&(this._transform=F.fromTranslation(h.fromArray(a))),this._batchTable={json:o,binary:r};let c=new Sg({typedArray:e.gltf,upAxis:this._upAxis,forwardAxis:this._forwardAxis,gltfResource:this._b3dmResource,baseResource:this._baseResource,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,loadAttributesFor2D:this._loadAttributesFor2D,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline,loadForClassification:this._loadForClassification,renameBatchIdSemantic:!0});this._gltfLoader=c,this._state=cx.LOADING;let u=this;return this._promise=c.load().then(function(){if(!u.isDestroyed())return u._state=cx.PROCESSING,u}).catch(function(f){if(!u.isDestroyed())return aHe(u,f)}),this._promise};function aHe(e,t){return e.unload(),e._state=cx.FAILED,t=e.getError("Failed to load b3dm",t),Promise.reject(t)}Dg.prototype.process=function(e){if(this._state===cx.READY)return!0;if(this._state!==cx.PROCESSING||!this._gltfLoader.process(e))return!1;let n=this._gltfLoader.components;return n.transform=F.multiplyTransformation(this._transform,n.transform,n.transform),cHe(this,n),this._components=n,this._arrayBuffer=void 0,this._state=cx.READY,!0};function cHe(e,t){let n=e._batchTable,i=e._batchLength;if(i===0)return;let o;if(l(n.json))o=wg({count:i,batchTable:n.json,binaryBody:n.binary});else{let a=new gl({name:kh.BATCH_TABLE_CLASS_NAME,count:i});o=new Js({schema:{},propertyTables:[a]})}let r=t.scene.nodes,s=r.length;for(let a=0;a<s;a++)hre(r[a]);t.structuralMetadata=o}function hre(e){let t=e.children.length;for(let i=0;i<t;i++)hre(e.children[i]);let n=e.primitives.length;for(let i=0;i<n;i++){let o=e.primitives[i],r=Zt.getAttributeBySemantic(o,Ct.FEATURE_ID);if(l(r)){r.setIndex=0;let s=new sHe;s.propertyTableId=0,s.setIndex=0,s.positionalLabel="featureId_0",o.featureIds.push(s)}}}Dg.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),this._components=void 0,this._arrayBuffer=void 0};var uF=Dg;function Ig(e){e=y(e,y.EMPTY_OBJECT),this._geoJson=e.geoJson,this._components=void 0}l(Object.create)&&(Ig.prototype=Object.create(Yi.prototype),Ig.prototype.constructor=Ig);Object.defineProperties(Ig.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Ig.prototype.load=function(){return Promise.resolve(this)};Ig.prototype.process=function(e){return l(this._components)||(this._components=THe(this._geoJson,e),this._geoJson=void 0),!0};function lHe(){this.lines=void 0,this.points=void 0,this.properties=void 0}function uHe(){this.features=[]}function iW(e){let t=e[0],n=e[1],i=y(e[2],0);return new h(t,n,i)}function oW(e){let t=e.length,n=new Array(t);for(let o=0;o<t;o++)n[o]=iW(e[o]);return[n]}function fHe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=oW(e[i])[0];return n}function mre(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=oW(e[i])[0];return n}function dHe(e){let t=e.length,n=[];for(let i=0;i<t;i++)Array.prototype.push.apply(n,mre(e[i]));return n}function hHe(e){return[iW(e)]}function mHe(e){let t=e.length,n=new Array(t);for(let i=0;i<t;i++)n[i]=iW(e[i]);return n}var pHe={LineString:oW,MultiLineString:fHe,MultiPolygon:dHe,Polygon:mre,MultiPoint:mHe,Point:hHe},_He={LineString:Le.LINES,MultiLineString:Le.LINES,MultiPolygon:Le.LINES,Polygon:Le.LINES,MultiPoint:Le.POINTS,Point:Le.POINTS};function pre(e,t){if(!l(e.geometry))return;let n=e.geometry.type,i=pHe[n],o=_He[n],r=e.geometry.coordinates;if(!l(i)||!l(r))return;let s=new lHe;o===Le.LINES?s.lines=i(r):o===Le.POINTS&&(s.points=i(r)),s.properties=e.properties,t.features.push(s)}function gHe(e,t){let n=e.features,i=n.length;for(let o=0;o<i;o++)pre(n[o],t)}var yHe={FeatureCollection:gHe,Feature:pre},fF=new h;function xHe(e,t,n){let i=0,o=0,r=e.length;for(let M=0;M<r;M++){let L=e[M];if(l(L.lines)){let _=L.lines.length;for(let E=0;E<_;E++){let w=L.lines[E];i+=w.length,o+=(w.length-1)*2}}}let s=new Float32Array(i*3),a=new Float32Array(i),c=Ne.createTypedArray(i,o),u=Ne.fromTypedArray(c),f=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),d=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),p=0,g=0;for(let M=0;M<r;M++){let L=e[M];if(!l(L.lines))continue;let _=L.lines.length;for(let E=0;E<_;E++){let w=L.lines[E],I=w.length;for(let N=0;N<I;N++){let B=w[N],H=h.fromDegrees(B.x,B.y,B.z,ee.WGS84,fF),V=F.multiplyByPoint(t,H,fF);h.minimumByComponent(f,V,f),h.maximumByComponent(d,V,d),h.pack(V,s,p*3),a[p]=M,N<I-1&&(c[g*2]=p,c[g*2+1]=p+1,g++),p++}}}let m=yt.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});m.vertexArrayDestroyable=!1;let x=yt.createVertexBuffer({typedArray:a,context:n.context,usage:Fe.STATIC_DRAW});x.vertexArrayDestroyable=!1;let b=yt.createIndexBuffer({typedArray:c,context:n.context,usage:Fe.STATIC_DRAW,indexDatatype:u});b.vertexArrayDestroyable=!1;let T=new xn.Attribute;T.semantic=Ct.POSITION,T.componentDatatype=X.FLOAT,T.type=on.VEC3,T.count=i,T.min=f,T.max=d,T.buffer=m;let A=new xn.Attribute;A.semantic=Ct.FEATURE_ID,A.setIndex=0,A.componentDatatype=X.FLOAT,A.type=on.SCALAR,A.count=i,A.buffer=x;let C=[T,A],S=new xn.Material;S.unlit=!0;let v=new xn.Indices;v.indexDatatype=u,v.count=c.length,v.buffer=b;let D=new xn.FeatureIdAttribute;D.featureCount=r,D.propertyTableId=0,D.setIndex=0,D.positionalLabel="featureId_0";let O=[D],R=new xn.Primitive;return R.attributes=C,R.indices=v,R.featureIds=O,R.primitiveType=Le.LINES,R.material=S,R}function bHe(e,t,n){let i=0,o=e.length;for(let C=0;C<o;C++){let S=e[C];l(S.points)&&(i+=S.points.length)}let r=new Float32Array(i*3),s=new Float32Array(i),a=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),c=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),u=0;for(let C=0;C<o;C++){let S=e[C];if(!l(S.points))continue;let v=S.points.length;for(let D=0;D<v;D++){let O=S.points[D],R=h.fromDegrees(O.x,O.y,O.z,ee.WGS84,fF),M=F.multiplyByPoint(t,R,fF);h.minimumByComponent(a,M,a),h.maximumByComponent(c,M,c),h.pack(M,r,u*3),s[u]=C,u++}}let f=yt.createVertexBuffer({typedArray:r,context:n.context,usage:Fe.STATIC_DRAW});f.vertexArrayDestroyable=!1;let d=yt.createVertexBuffer({typedArray:s,context:n.context,usage:Fe.STATIC_DRAW});d.vertexArrayDestroyable=!1;let p=new xn.Attribute;p.semantic=Ct.POSITION,p.componentDatatype=X.FLOAT,p.type=on.VEC3,p.count=i,p.min=a,p.max=c,p.buffer=f;let g=new xn.Attribute;g.semantic=Ct.FEATURE_ID,g.setIndex=0,g.componentDatatype=X.FLOAT,g.type=on.SCALAR,g.count=i,g.buffer=d;let m=[p,g],x=new xn.Material;x.unlit=!0;let b=new xn.FeatureIdAttribute;b.featureCount=o,b.propertyTableId=0,b.setIndex=0,b.positionalLabel="featureId_0";let T=[b],A=new xn.Primitive;return A.attributes=m,A.featureIds=T,A.primitiveType=Le.POINTS,A.material=x,A}function THe(e,t){let n=new uHe,i=yHe[e.type];l(i)&&i(e,n);let o=n.features,r=o.length;if(r===0)throw new ce("GeoJSON must have at least one feature");let s={};for(let M=0;M<r;M++){let L=o[M],_=y(L.properties,y.EMPTY_OBJECT);for(let E in _)_.hasOwnProperty(E)&&(l(s[E])||(s[E]=new Array(r)))}for(let M=0;M<r;M++){let L=o[M];for(let _ in s)if(s.hasOwnProperty(_)){let E=y(L.properties[_],"");s[_][M]=E}}let a=new Ag({count:r,properties:s}),u=[new gl({id:0,count:r,jsonMetadataTable:a})],f=sf.fromJson({}),d=new Js({schema:f,propertyTables:u}),p=new h(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY),g=new h(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY),m=!1,x=!1;for(let M=0;M<r;M++){let L=o[M];if(l(L.lines)){m=!0;let _=L.lines.length;for(let E=0;E<_;E++){let w=L.lines[E],I=w.length;for(let N=0;N<I;N++)h.minimumByComponent(p,w[N],p),h.maximumByComponent(g,w[N],g)}}if(l(L.points)){x=!0;let _=L.points.length;for(let E=0;E<_;E++){let w=L.points[E];h.minimumByComponent(p,w,p),h.maximumByComponent(g,w,g)}}}let b=h.midpoint(p,g,new h),T=h.fromDegrees(b.x,b.y,b.z,ee.WGS84,new h),A=Nt.eastNorthUpToFixedFrame(T,ee.WGS84,new F),C=F.inverseTransformation(A,new F),S=[];m&&S.push(xHe(o,C,t)),x&&S.push(bHe(o,C,t));let v=new xn.Node;v.index=0,v.primitives=S;let D=[v],O=new xn.Scene;O.nodes=D;let R=new xn.Components;return R.scene=O,R.nodes=D,R.transform=A,R.structuralMetadata=d,R}Ig.prototype.unload=function(){this._components=void 0};var dF=Ig;var hF={};hF._deprecationWarning=_s;var Pg=Uint32Array.BYTES_PER_ELEMENT;hF.parse=function(e,t){let n=y(t,0);t=n;let i=new Uint8Array(e),o=new DataView(e);t+=Pg;let r=o.getUint32(t,!0);if(r!==1)throw new ce(`Only Instanced 3D Model version 1 is supported. Version ${r} is not.`);t+=Pg;let s=o.getUint32(t,!0);t+=Pg;let a=o.getUint32(t,!0);if(a===0)throw new ce("featureTableJsonByteLength is zero, the feature table must be defined.");t+=Pg;let c=o.getUint32(t,!0);t+=Pg;let u=o.getUint32(t,!0);t+=Pg;let f=o.getUint32(t,!0);t+=Pg;let d=o.getUint32(t,!0);if(d!==1&&d!==0)throw new ce(`Only glTF format 0 (uri) or 1 (embedded) are supported. Format ${d} is not.`);t+=Pg;let p=Lo(i,t,a);t+=a;let g=new Uint8Array(e,t,c);t+=c;let m,x;u>0&&(m=Lo(i,t,u),t+=u,f>0&&(x=new Uint8Array(e,t,f),x=new Uint8Array(x),t+=f));let b=n+s-t;if(b===0)throw new ce("glTF byte length must be greater than 0.");let T;return t%4===0?T=new Uint8Array(e,t,b):(hF._deprecationWarning("i3dm-glb-unaligned","The embedded glb is not aligned to a 4-byte boundary."),T=new Uint8Array(i.subarray(t,t+b))),{gltfFormat:d,featureTableJson:p,featureTableBinary:g,batchTableJson:m,batchTableBinary:x,gltf:T}};var mF=hF;var Cp={NOT_LOADED:0,LOADING:1,PROCESSING:2,POST_PROCESSING:3,READY:4,FAILED:5,UNLOADED:6},pF=xn.Attribute,AHe=xn.FeatureIdAttribute,gre=xn.Instances;function Ep(e){e=y(e,y.EMPTY_OBJECT);let t=e.i3dmResource,n=e.arrayBuffer,i=e.baseResource,o=y(e.byteOffset,0),r=y(e.releaseGltfJson,!1),s=y(e.asynchronous,!0),a=y(e.incrementallyLoadTextures,!0),c=y(e.upAxis,Mo.Y),u=y(e.forwardAxis,Mo.X),f=y(e.loadAttributesAsTypedArray,!1),d=y(e.loadIndicesForWireframe,!1),p=y(e.loadPrimitiveOutline,!0),g=y(e.enablePick,!1);i=l(i)?i:t.clone(),this._i3dmResource=t,this._baseResource=i,this._arrayBuffer=n,this._byteOffset=o,this._releaseGltfJson=r,this._asynchronous=s,this._incrementallyLoadTextures=a,this._upAxis=c,this._forwardAxis=u,this._loadAttributesAsTypedArray=f,this._loadIndicesForWireframe=d,this._loadPrimitiveOutline=p,this._enablePick=g,this._state=Cp.NOT_LOADED,this._promise=void 0,this._gltfLoader=void 0,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY,this._batchTable=void 0,this._featureTable=void 0,this._instancesLength=0}l(Object.create)&&(Ep.prototype=Object.create(Yi.prototype),Ep.prototype.constructor=Ep);Object.defineProperties(Ep.prototype,{texturesLoaded:{get:function(){return this._gltfLoader?.texturesLoaded}},cacheKey:{get:function(){}},components:{get:function(){return this._components}}});Ep.prototype.load=function(){if(l(this._promise))return this._promise;let e=mF.parse(this._arrayBuffer,this._byteOffset),t=e.featureTableJson,n=e.featureTableBinary,i=e.batchTableJson,o=e.batchTableBinary,r=e.gltfFormat,s=new Gh(t,n);this._featureTable=s;let a=s.getGlobalProperty("INSTANCES_LENGTH");if(s.featuresLength=a,!l(a))throw new ce("Feature table global property: INSTANCES_LENGTH must be defined");this._instancesLength=a;let c=s.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(c)&&(this._transform=F.fromTranslation(h.fromArray(c))),this._batchTable={json:i,binary:o};let u={upAxis:this._upAxis,forwardAxis:this._forwardAxis,releaseGltfJson:this._releaseGltfJson,incrementallyLoadTextures:this._incrementallyLoadTextures,loadAttributesAsTypedArray:this._loadAttributesAsTypedArray,enablePick:this._enablePick,loadIndicesForWireframe:this._loadIndicesForWireframe,loadPrimitiveOutline:this._loadPrimitiveOutline};if(r===0){let d=Ql(e.gltf);d=d.replace(/[\s\0]+$/,"");let p=this._baseResource.getDerivedResource({url:d});u.gltfResource=p,u.baseResource=p}else u.gltfResource=this._i3dmResource,u.typedArray=e.gltf;let f=new Sg(u);return this._gltfLoader=f,this._state=Cp.LOADING,this._promise=f.load().then(()=>{if(!this.isDestroyed())return this._state=Cp.PROCESSING,this}).catch(d=>{if(!this.isDestroyed())throw CHe(this,d)}),this._promise};function CHe(e,t){return e.unload(),e._state=Cp.FAILED,e.getError("Failed to load i3dm",t)}Ep.prototype.process=function(e){if(this._state===Cp.READY)return!0;let t=this._gltfLoader,n=!1;if(this._state===Cp.PROCESSING&&(n=t.process(e)),!n)return!1;let i=t.components;return i.transform=F.multiplyTransformation(this._transform,i.transform,i.transform),vHe(this,i,e),EHe(this,i),this._components=i,this._arrayBuffer=void 0,this._state=Cp.READY,!0};function EHe(e,t){let n=e._batchTable,i=e._instancesLength;if(i===0)return;let o;if(l(n.json))o=wg({count:i,batchTable:n.json,binaryBody:n.binary});else{let r=new gl({name:kh.BATCH_TABLE_CLASS_NAME,count:i});o=new Js({schema:{},propertyTables:[r]})}t.structuralMetadata=o}var _F=new h,rW=new Array(4),SHe=new F;function vHe(e,t,n){let i,o=e._featureTable,r=e._instancesLength;if(r===0)return;let s=o.getGlobalProperty("RTC_CENTER",X.FLOAT,3),a=o.getGlobalProperty("EAST_NORTH_UP"),c=o.hasProperty("NORMAL_UP")||o.hasProperty("NORMAL_UP_OCT32P")||a,u=o.hasProperty("SCALE")||o.hasProperty("SCALE_NON_UNIFORM"),f=DHe(o,r),d;c&&(d=new Float32Array(4*r));let p;u&&(p=new Float32Array(3*r));let g=new Float32Array(r),m=h.unpackArray(f),x=new h,b=new h,T=new h,A=new h,C=new $,S=new Me,v=new Array(4),D=new h,O=new Array(3),R=new F;if(!l(s)||h.equals(h.unpack(s),h.ZERO)){let V=se.fromPoints(m);for(i=0;i<m.length;i++)h.subtract(m[i],V.center,_F),f[3*i+0]=_F.x,f[3*i+1]=_F.y,f[3*i+2]=_F.z;let G=F.fromTranslation(V.center,SHe);t.transform=F.multiplyTransformation(G,t.transform,t.transform)}for(i=0;i<r;i++){x=h.clone(m[i]),l(s)&&h.add(x,h.unpack(s),x),c&&(IHe(o,a,i,S,x,T,b,A,C,R),Me.pack(S,v,0),d[4*i+0]=v[0],d[4*i+1]=v[1],d[4*i+2]=v[2],d[4*i+3]=v[3]),u&&(PHe(o,i,D),h.pack(D,O,0),p[3*i+0]=O[0],p[3*i+1]=O[1],p[3*i+2]=O[2]);let V=o.getProperty("BATCH_ID",X.UNSIGNED_SHORT,1,i);l(V)||(V=i),g[i]=V}let M=new gre;M.transformInWorldSpace=!0;let L=e._buffers,_=new pF;if(_.name="Instance Translation",_.semantic=os.TRANSLATION,_.componentDatatype=X.FLOAT,_.type=on.VEC3,_.count=r,_.typedArray=f,!c){let V=yt.createVertexBuffer({context:n.context,typedArray:f,usage:Fe.STATIC_DRAW});V.vertexArrayDestroyable=!1,L.push(V),_.buffer=V}if(M.attributes.push(_),c){let V=new pF;V.name="Instance Rotation",V.semantic=os.ROTATION,V.componentDatatype=X.FLOAT,V.type=on.VEC4,V.count=r,V.typedArray=d,M.attributes.push(V)}if(u){let V=new pF;if(V.name="Instance Scale",V.semantic=os.SCALE,V.componentDatatype=X.FLOAT,V.type=on.VEC3,V.count=r,c)V.typedArray=p;else{let G=yt.createVertexBuffer({context:n.context,typedArray:p,usage:Fe.STATIC_DRAW});G.vertexArrayDestroyable=!1,L.push(G),V.buffer=G}M.attributes.push(V)}let E=new pF;E.name="Instance Feature ID",E.setIndex=0,E.semantic=os.FEATURE_ID,E.componentDatatype=X.FLOAT,E.type=on.SCALAR,E.count=r;let w=yt.createVertexBuffer({context:n.context,typedArray:g,usage:Fe.STATIC_DRAW});w.vertexArrayDestroyable=!1,L.push(w),E.buffer=w,M.attributes.push(E);let I=new AHe;I.propertyTableId=0,I.setIndex=0,I.positionalLabel="instanceFeatureId_0",M.featureIds.push(I);let N=t.nodes,B=N.length,H=!1;for(i=0;i<B;i++){let V=N[i];V.primitives.length>0&&(V.instances=H?wHe(M):M,H=!0)}}function wHe(e){let t=new gre;t.transformInWorldSpace=e.transformInWorldSpace;let n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=Ge(n[o],!1);t.attributes.push(r)}return t.featureIds=e.featureIds,t}function DHe(e,t){if(e.hasProperty("POSITION"))return e.getPropertyArray("POSITION",X.FLOAT,3);if(e.hasProperty("POSITION_QUANTIZED")){let n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3),i=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");let o=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(o))throw new ce("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let r=new Float32Array(n.length);for(let s=0;s<n.length/3;s++)for(let a=0;a<3;a++){let c=3*s+a;r[c]=n[c]/65535*o[a]+i[a]}return r}else throw new ce("Either POSITION or POSITION_QUANTIZED must be defined for each instance.")}var _re=new Array(4);function IHe(e,t,n,i,o,r,s,a,c,u){let f=e.getProperty("NORMAL_UP",X.FLOAT,3,n,rW),d=e.getProperty("NORMAL_RIGHT",X.FLOAT,3,n,_re),p=!1;if(l(f)){if(!l(d))throw new ce("To define a custom orientation, both NORMAL_UP and NORMAL_RIGHT must be defined.");h.unpack(f,0,r),h.unpack(d,0,s),p=!0}else{let g=e.getProperty("NORMAL_UP_OCT32P",X.UNSIGNED_SHORT,2,n,rW),m=e.getProperty("NORMAL_RIGHT_OCT32P",X.UNSIGNED_SHORT,2,n,_re);if(l(g)){if(!l(m))throw new ce("To define a custom orientation with oct-encoded vectors, both NORMAL_UP_OCT32P and NORMAL_RIGHT_OCT32P must be defined.");Ln.octDecodeInRange(g[0],g[1],65535,r),Ln.octDecodeInRange(m[0],m[1],65535,s),p=!0}else t?(Nt.eastNorthUpToFixedFrame(o,ee.WGS84,u),F.getMatrix3(u,c)):$.clone($.IDENTITY,c)}p&&(h.cross(s,r,a),h.normalize(a,a),$.setColumn(c,0,s,c),$.setColumn(c,1,r,c),$.setColumn(c,2,a,c)),Me.fromRotationMatrix(c,i)}function PHe(e,t,n){n=h.fromElements(1,1,1,n);let i=e.getProperty("SCALE",X.FLOAT,1,t);l(i)&&h.multiplyByScalar(n,i,n);let o=e.getProperty("SCALE_NON_UNIFORM",X.FLOAT,3,t,rW);l(o)&&(n.x*=o[0],n.y*=o[1],n.z*=o[2])}function RHe(e){let t=e._buffers,n=t.length;for(let i=0;i<n;i++){let o=t[i];o.isDestroyed()||o.destroy()}t.length=0}Ep.prototype.isUnloaded=function(){return this._state===Cp.UNLOADED};Ep.prototype.unload=function(){l(this._gltfLoader)&&!this._gltfLoader.isDestroyed()&&this._gltfLoader.unload(),RHe(this),this._components=void 0,this._arrayBuffer=void 0,this._state=Cp.UNLOADED};var gF=Ep;var OHe={STOPPED:0,ANIMATING:1},Wh=Object.freeze(OHe);function IA(){this.times=void 0,this.points=void 0,he.throwInstantiationError()}IA.getPointType=function(e){if(typeof e=="number")return Number;if(e instanceof h)return h;if(e instanceof Me)return Me};IA.prototype.evaluate=he.throwInstantiationError;IA.prototype.findTimeInterval=function(e,t){let n=this.times,i=n.length;if(t=y(t,0),e>=n[t]){if(t+1<i&&e<n[t+1])return t;if(t+2<i&&e<n[t+2])return t+1}else if(t-1>=0&&e>=n[t-1])return t-1;let o;if(e>n[t])for(o=t;o<i-1&&!(e>=n[o]&&e<n[o+1]);++o);else for(o=t-1;o>=0&&!(e>=n[o]&&e<n[o+1]);--o);return o===i-1&&(o=i-2),o};IA.prototype.wrapTime=function(e){let t=this.times,n=t[t.length-1],i=t[0],o=n-i,r;return e<i&&(r=Math.floor((i-e)/o)+1,e+=r*o),e>n&&(r=Math.floor((e-n)/o)+1,e-=r*o),e};IA.prototype.clampTime=function(e){let t=this.times;return P.clamp(e,t[0],t[t.length-1])};var eo=IA;function PA(e){this._value=e,this._valueType=eo.getPointType(e)}Object.defineProperties(PA.prototype,{value:{get:function(){return this._value}}});PA.prototype.findTimeInterval=function(e){};PA.prototype.wrapTime=function(e){return 0};PA.prototype.clampTime=function(e){return 0};PA.prototype.evaluate=function(e,t){let n=this._value,i=this._valueType;return i===Number?n:i.clone(n,t)};var yF=PA;function RA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=eo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(RA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});RA.prototype.findTimeInterval=eo.prototype.findTimeInterval;RA.prototype.wrapTime=eo.prototype.wrapTime;RA.prototype.clampTime=eo.prototype.clampTime;RA.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);return this._pointType===Number?(1-r)*n[o]+r*n[o+1]:(l(t)||(t=new h),h.lerp(n[o],n[o+1],r,t))};var lx=RA;var yre={};yre.solve=function(e,t,n,i){let o=new Array(n.length),r=new Array(i.length),s=new Array(i.length),a;for(a=0;a<r.length;a++)r[a]=new h,s[a]=new h;o[0]=n[0]/t[0],r[0]=h.multiplyByScalar(i[0],1/t[0],r[0]);let c;for(a=1;a<o.length;++a)c=1/(t[a]-o[a-1]*e[a-1]),o[a]=n[a]*c,r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]);for(c=1/(t[a]-o[a-1]*e[a-1]),r[a]=h.subtract(i[a],h.multiplyByScalar(r[a-1],e[a-1],r[a]),r[a]),r[a]=h.multiplyByScalar(r[a],c,r[a]),s[s.length-1]=r[r.length-1],a=s.length-2;a>=0;--a)s[a]=h.subtract(r[a],h.multiplyByScalar(s[a+1],o[a],s[a]),s[a]);return s};var pw=yre;var xre=[],bre=[],Tre=[],Are=[];function MHe(e,t,n){let i=xre,o=Tre,r=bre,s=Are;i.length=o.length=e.length-1,r.length=s.length=e.length;let a;i[0]=r[0]=1,o[0]=0;let c=s[0];for(l(c)||(c=s[0]=new h),h.clone(t,c),a=1;a<i.length-1;++a)i[a]=o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c);return i[a]=0,o[a]=1,r[a]=4,c=s[a],l(c)||(c=s[a]=new h),h.subtract(e[a+1],e[a-1],c),h.multiplyByScalar(c,3,c),r[a+1]=1,c=s[a+1],l(c)||(c=s[a+1]=new h),h.clone(n,c),pw.solve(i,r,o,s)}function LHe(e){let t=xre,n=Tre,i=bre,o=Are;t.length=n.length=e.length-1,i.length=o.length=e.length;let r;t[0]=n[0]=1,i[0]=2;let s=o[0];for(l(s)||(s=o[0]=new h),h.subtract(e[1],e[0],s),h.multiplyByScalar(s,3,s),r=1;r<t.length;++r)t[r]=n[r]=1,i[r]=4,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r+1],e[r-1],s),h.multiplyByScalar(s,3,s);return i[r]=2,s=o[r],l(s)||(s=o[r]=new h),h.subtract(e[r],e[r-1],s),h.multiplyByScalar(s,3,s),pw.solve(t,i,n,o)}function yl(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.inTangents,o=e.outTangents;this._times=n,this._points=t,this._pointType=eo.getPointType(t[0]),this._inTangents=i,this._outTangents=o,this._lastTimeIndex=0}Object.defineProperties(yl.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},inTangents:{get:function(){return this._inTangents}},outTangents:{get:function(){return this._outTangents}}});yl.createC1=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.tangents,o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new yl({times:t,points:n,inTangents:r,outTangents:o})};yl.createNaturalCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points;if(n.length<3)return new lx({points:n,times:t});let i=LHe(n),o=i.slice(0,i.length-1),r=i.slice(1,i.length);return new yl({times:t,points:n,inTangents:r,outTangents:o})};yl.createClampedCubic=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.times,n=e.points,i=e.firstTangent,o=e.lastTangent,r=eo.getPointType(n[0]);if(n.length<3)return new lx({points:n,times:t});let s=MHe(n,i,o),a=s.slice(0,s.length-1),c=s.slice(1,s.length);return new yl({times:t,points:n,inTangents:c,outTangents:a})};yl.hermiteCoefficientMatrix=new F(2,-3,0,1,-2,3,0,0,1,-2,1,0,1,-1,0,0);yl.prototype.findTimeInterval=eo.prototype.findTimeInterval;var NHe=new oe,OA=new h;yl.prototype.wrapTime=eo.prototype.wrapTime;yl.prototype.clampTime=eo.prototype.clampTime;yl.prototype.evaluate=function(e,t){let n=this.points,i=this.times,o=this.inTangents,r=this.outTangents;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let s=this._lastTimeIndex,a=i[s+1]-i[s],c=(e-i[s])/a,u=NHe;u.z=c,u.y=c*c,u.x=u.y*c,u.w=1;let f=F.multiplyByVector(yl.hermiteCoefficientMatrix,u,u);f.z*=a,f.w*=a;let d=this._pointType;return d===Number?n[s]*f.x+n[s+1]*f.y+r[s]*f.z+o[s]*f.w:(l(t)||(t=new d),t=d.multiplyByScalar(n[s],f.x,t),d.multiplyByScalar(n[s+1],f.y,OA),d.add(t,OA,t),d.multiplyByScalar(r[s],f.z,OA),d.add(t,OA,t),d.multiplyByScalar(o[s],f.w,OA),d.add(t,OA,t))};var ux=yl;function MA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._pointType=eo.getPointType(t[0]),this._lastTimeIndex=0}Object.defineProperties(MA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});MA.prototype.findTimeInterval=eo.prototype.findTimeInterval;MA.prototype.wrapTime=eo.prototype.wrapTime;MA.prototype.clampTime=eo.prototype.clampTime;MA.prototype.evaluate=function(e,t){let n=this.points;this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex);let i=this._lastTimeIndex,o=this._pointType;return o===Number?n[i]:(l(t)||(t=new o),o.clone(n[i],t))};var xF=MA;function FHe(e){let t=e.points,n=e.times;return function(i,o){l(o)||(o=new Me);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=t[r],c=t[r+1];return Me.fastSlerp(a,c,s,o)}}function LA(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times;this._times=n,this._points=t,this._evaluateFunction=FHe(this),this._lastTimeIndex=0}Object.defineProperties(LA.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}}});LA.prototype.findTimeInterval=eo.prototype.findTimeInterval;LA.prototype.wrapTime=eo.prototype.wrapTime;LA.prototype.clampTime=eo.prototype.clampTime;LA.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var bF=LA;var NA=xn.AnimatedPropertyType;function sW(e){e=y(e,y.EMPTY_OBJECT);let t=e.channel,n=e.runtimeAnimation,i=e.runtimeNode;this._channel=t,this._runtimeAnimation=n,this._runtimeNode=i,this._splines=[],this._path=void 0,zHe(this)}Object.defineProperties(sW.prototype,{channel:{get:function(){return this._channel}},runtimeAnimation:{get:function(){return this._runtimeAnimation}},runtimeNode:{get:function(){return this._runtimeNode}},splines:{get:function(){return this._splines}}});function BHe(e,t){let n=[],i=[],o=[],r=t.length;for(let s=0;s<r;s+=3)i.push(t[s]),n.push(t[s+1]),o.push(t[s+2]);return i.splice(0,1),o.length=o.length-1,new ux({times:e,points:n,inTangents:i,outTangents:o})}function Cre(e,t,n,i){if(e.length===1&&t.length===1)return new yF(t[0]);switch(n){case Hh.STEP:return new xF({times:e,points:t});case Hh.CUBICSPLINE:return BHe(e,t);case Hh.LINEAR:return i===NA.ROTATION?new bF({times:e,points:t}):new lx({times:e,points:t})}}function kHe(e,t,n,i,o){let r=[];if(i===NA.WEIGHTS){let a=t.length/o,c,u;for(c=0;c<o;c++){let f=new Array(a),d=c;if(n===Hh.CUBICSPLINE)for(u=0;u<a;u+=3)f[u]=t[d],f[u+1]=t[d+o],f[u+2]=t[d+2*o],d+=o*3;else for(u=0;u<a;u++)f[u]=t[d],d+=o;r.push(Cre(e,f,n,i))}}else r.push(Cre(e,t,n,i));return r}var VHe=new h,UHe=new Me;function zHe(e){let t=e._channel,n=t.sampler,i=n.input,o=n.output,r=n.interpolation,a=t.target.path,c=e._runtimeNode,u=l(c.morphWeights)?c.morphWeights.length:1,f=kHe(i,o,r,a,u);e._splines=f,e._path=a}sW.prototype.animate=function(e){let t=this._splines,n=this._path,i=this._runtimeAnimation.model,o=this._runtimeNode;if(n===NA.WEIGHTS){let r=o.morphWeights,s=r.length;for(let a=0;a<s;a++){let c=t[a],u=i.clampAnimations?c.clampTime(e):c.wrapTime(e);r[a]=c.evaluate(u)}}else{if(o.userAnimated)return;{let r=t[0],s=i.clampAnimations?r.clampTime(e):r.wrapTime(e);n===NA.TRANSLATION||n===NA.SCALE?o[n]=r.evaluate(s,VHe):n===NA.ROTATION&&(o[n]=r.evaluate(s,UHe))}}};var TF=sW;function aW(e,t,n){this._animation=t,this._name=t.name,this._runtimeChannels=void 0,this._startTime=K.clone(n.startTime),this._delay=y(n.delay,0),this._stopTime=K.clone(n.stopTime),this.removeOnStop=y(n.removeOnStop,!1),this._multiplier=y(n.multiplier,1),this._reverse=y(n.reverse,!1),this._loop=y(n.loop,ru.NONE),this._animationTime=n.animationTime,this._prevAnimationDelta=void 0,this.start=new me,this.update=new me,this.stop=new me,this._state=Wh.STOPPED,this._computedStartTime=void 0,this._duration=void 0;let i=this;this._raiseStartEvent=function(){i.start.raiseEvent(e,i)},this._updateEventTime=0,this._raiseUpdateEvent=function(){i.update.raiseEvent(e,i,i._updateEventTime)},this._raiseStopEvent=function(){i.stop.raiseEvent(e,i)},this._model=e,this._localStartTime=void 0,this._localStopTime=void 0,HHe(this)}Object.defineProperties(aW.prototype,{animation:{get:function(){return this._animation}},name:{get:function(){return this._name}},runtimeChannels:{get:function(){return this._runtimeChannels}},model:{get:function(){return this._model}},localStartTime:{get:function(){return this._localStartTime}},localStopTime:{get:function(){return this._localStopTime}},startTime:{get:function(){return this._startTime}},delay:{get:function(){return this._delay}},stopTime:{get:function(){return this._stopTime}},multiplier:{get:function(){return this._multiplier}},reverse:{get:function(){return this._reverse}},loop:{get:function(){return this._loop}},animationTime:{get:function(){return this._animationTime}}});function HHe(e){let t=Number.MAX_VALUE,n=-Number.MAX_VALUE,i=e._model.sceneGraph,r=e._animation.channels,s=r.length,a=[];for(let c=0;c<s;c++){let u=r[c],f=u.target;if(!l(f))continue;let d=f.node.index,p=i._runtimeNodes[d],g=new TF({channel:u,runtimeAnimation:e,runtimeNode:p}),m=u.sampler.input;t=Math.min(t,m[0]),n=Math.max(n,m[m.length-1]),a.push(g)}e._runtimeChannels=a,e._localStartTime=t,e._localStopTime=n}aW.prototype.animate=function(e){let t=this._runtimeChannels,n=t.length;for(let i=0;i<n;i++)t[i].animate(e)};var AF=aW;function Sp(e){this.animationAdded=new me,this.animationRemoved=new me,this.animateWhilePaused=!1,this._model=e,this._runtimeAnimations=[],this._previousTime=void 0}Object.defineProperties(Sp.prototype,{length:{get:function(){return this._runtimeAnimations.length}},model:{get:function(){return this._model}}});function cW(e,t,n){let i=e._model,o=new AF(i,t,n);return e._runtimeAnimations.push(o),e.animationAdded.raiseEvent(i,o),o}Sp.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=e.index;if(l(i))return cW(this,n[i],e);let o=n.length;for(let r=0;r<o;++r)if(n[r].name===e.name){i=r;break}return cW(this,n[i],e)};Sp.prototype.addAll=function(e){e=y(e,y.EMPTY_OBJECT);let n=this._model.sceneGraph.components.animations,i=[],o=n.length;for(let r=0;r<o;++r){let s=cW(this,n[r],e);i.push(s)}return i};Sp.prototype.remove=function(e){if(!l(e))return!1;let t=this._runtimeAnimations,n=t.indexOf(e);return n!==-1?(t.splice(n,1),this.animationRemoved.raiseEvent(this._model,e),!0):!1};Sp.prototype.removeAll=function(){let e=this._model,t=this._runtimeAnimations,n=t.length;this._runtimeAnimations.length=0;for(let i=0;i<n;++i)this.animationRemoved.raiseEvent(e,t[i])};Sp.prototype.contains=function(e){return l(e)?this._runtimeAnimations.indexOf(e)!==-1:!1};Sp.prototype.get=function(e){return this._runtimeAnimations[e]};var CF=[];function GHe(e,t,n){return function(){e.animationRemoved.raiseEvent(t,n)}}Sp.prototype.update=function(e){let t=this._runtimeAnimations,n=t.length;if(n===0)return this._previousTime=void 0,!1;if(!this.animateWhilePaused&&K.equals(e.time,this._previousTime))return!1;this._previousTime=K.clone(e.time,this._previousTime);let i=!1,o=e.time,r=this._model;for(let s=0;s<n;++s){let a=t[s];l(a._computedStartTime)||(a._computedStartTime=K.addSeconds(y(a.startTime,o),a.delay,new K)),l(a._duration)||(a._duration=a.localStopTime*(1/a.multiplier));let c=a._computedStartTime,u=a._duration,f=a.stopTime,d=K.lessThanOrEquals(c,o),p=l(f)&&K.greaterThan(o,f),g=0;if(u!==0){let b=K.secondsDifference(p?f:o,c);g=l(a._animationTime)?a._animationTime(u,b):b/u}let m=a.loop===ru.REPEAT||a.loop===ru.MIRRORED_REPEAT,x=(d||m&&!l(a.startTime))&&(g<=1||m)&&!p;if(g===a._prevAnimationDelta){let b=a._state===Wh.STOPPED;if(x!==b)continue}if(a._prevAnimationDelta=g,x||a._state===Wh.ANIMATING){if(x&&a._state===Wh.STOPPED&&(a._state=Wh.ANIMATING,a.start.numberOfListeners>0&&e.afterRender.push(a._raiseStartEvent)),a.loop===ru.REPEAT)g=g-Math.floor(g);else if(a.loop===ru.MIRRORED_REPEAT){let T=Math.floor(g),A=g-T;g=T%2===1?1-A:A}a.reverse&&(g=1-g);let b=g*u*a.multiplier;b=P.clamp(b,a.localStartTime,a.localStopTime),a.animate(b),a.update.numberOfListeners>0&&(a._updateEventTime=b,e.afterRender.push(a._raiseUpdateEvent)),i=!0,x||(a._state=Wh.STOPPED,a.stop.numberOfListeners>0&&e.afterRender.push(a._raiseStopEvent),a.removeOnStop&&CF.push(a))}}n=CF.length;for(let s=0;s<n;++s){let a=CF[s];t.splice(t.indexOf(a),1),e.afterRender.push(GHe(this,r,a))}return CF.length=0,i};var EF=Sp;function fx(e){this._model=e.model,this._featureTable=e.featureTable,this._featureId=e.featureId,this._color=void 0}Object.defineProperties(fx.prototype,{show:{get:function(){return this._featureTable.getShow(this._featureId)},set:function(e){this._featureTable.setShow(this._featureId,e)}},color:{get:function(){return l(this._color)||(this._color=new z),this._featureTable.getColor(this._featureId,this._color)},set:function(e){this._featureTable.setColor(this._featureId,e)}},primitive:{get:function(){return this._model}},featureTable:{get:function(){return this._featureTable}},featureId:{get:function(){return this._featureId}}});fx.prototype.hasProperty=function(e){return this._featureTable.hasProperty(this._featureId,e)};fx.prototype.getProperty=function(e){return this._featureTable.getProperty(this._featureId,e)};fx.prototype.getPropertyInherited=function(e){return this._featureTable.hasPropertyBySemantic(this._featureId,e)?this._featureTable.getPropertyBySemantic(this._featureId,e):this._featureTable.getProperty(this._featureId,e)};fx.prototype.getPropertyIds=function(e){return this._featureTable.getPropertyIds(e)};fx.prototype.setProperty=function(e,t){return this._featureTable.setProperty(this._featureId,e,t)};var SF=fx;var _w={ALL_OPAQUE:0,ALL_TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2};_w.getStyleCommandsNeeded=function(e,t){return t===0?_w.ALL_OPAQUE:t===e?_w.ALL_TRANSLUCENT:_w.OPAQUE_AND_TRANSLUCENT};var jh=Object.freeze(_w);var Rg={GLTF:"GLTF",TILE_GLTF:"TILE_GLTF",TILE_B3DM:"B3DM",TILE_I3DM:"I3DM",TILE_PNTS:"PNTS",TILE_GEOJSON:"TILE_GEOJSON"};Rg.is3DTiles=function(e){switch(e){case Rg.TILE_GLTF:case Rg.TILE_B3DM:case Rg.TILE_I3DM:case Rg.TILE_PNTS:case Rg.TILE_GEOJSON:return!0;case Rg.GLTF:return!1}};var pr=Object.freeze(Rg);function Lr(e){let t=e.model,n=e.propertyTable;this._propertyTable=n,this._model=t,this._features=void 0,this._featuresLength=0,this._batchTexture=void 0,this._styleCommandsNeededDirty=!1,this._styleCommandsNeeded=jh.ALL_OPAQUE,WHe(this)}Object.defineProperties(Lr.prototype,{batchTexture:{get:function(){return this._batchTexture}},featuresLength:{get:function(){return this._featuresLength}},batchTextureByteLength:{get:function(){return l(this._batchTexture)?this._batchTexture.byteLength:0}},styleCommandsNeededDirty:{get:function(){return this._styleCommandsNeededDirty}}});function WHe(e){let t=e._model,n=pr.is3DTiles(t.type),i=e._propertyTable.count;if(i===0)return;let o,r=new Array(i);if(n){let s=t.content;for(o=0;o<i;o++)r[o]=new Zs(s,o)}else for(o=0;o<i;o++)r[o]=new SF({model:t,featureId:o,featureTable:e});e._features=r,e._featuresLength=i,e._batchTexture=new pl({featuresLength:i,owner:e,statistics:n?t.content.tileset.statistics:void 0})}Lr.prototype.update=function(e){this._styleCommandsNeededDirty=!1,this._batchTexture.update(void 0,e);let t=jh.getStyleCommandsNeeded(this._featuresLength,this._batchTexture.translucentFeaturesLength);this._styleCommandsNeeded!==t&&(this._styleCommandsNeededDirty=!0,this._styleCommandsNeeded=t)};Lr.prototype.setShow=function(e,t){this._batchTexture.setShow(e,t)};Lr.prototype.setAllShow=function(e){this._batchTexture.setAllShow(e)};Lr.prototype.getShow=function(e){return this._batchTexture.getShow(e)};Lr.prototype.setColor=function(e,t){this._batchTexture.setColor(e,t)};Lr.prototype.setAllColor=function(e){this._batchTexture.setAllColor(e)};Lr.prototype.getColor=function(e,t){return this._batchTexture.getColor(e,t)};Lr.prototype.getPickColor=function(e){return this._batchTexture.getPickColor(e)};Lr.prototype.getFeature=function(e){return this._features[e]};Lr.prototype.hasProperty=function(e,t){return this._propertyTable.hasProperty(e,t)};Lr.prototype.hasPropertyBySemantic=function(e,t){return this._propertyTable.hasPropertyBySemantic(e,t)};Lr.prototype.getProperty=function(e,t){return this._propertyTable.getProperty(e,t)};Lr.prototype.getPropertyBySemantic=function(e,t){return this._propertyTable.getPropertyBySemantic(e,t)};Lr.prototype.getPropertyIds=function(e){return this._propertyTable.getPropertyIds(e)};Lr.prototype.setProperty=function(e,t,n){return this._propertyTable.setProperty(e,t,n)};Lr.prototype.isClass=function(e,t){return this._propertyTable.isClass(e,t)};Lr.prototype.isExactClass=function(e,t){return this._propertyTable.isExactClass(e,t)};Lr.prototype.getExactClassName=function(e){return this._propertyTable.getExactClassName(e)};var jHe=new z;Lr.prototype.applyStyle=function(e){if(!l(e)){this.setAllColor(pl.DEFAULT_COLOR_VALUE),this.setAllShow(pl.DEFAULT_SHOW_VALUE);return}for(let t=0;t<this._featuresLength;t++){let n=this.getFeature(t),i=l(e.color)?y(e.color.evaluateColor(n,jHe),pl.DEFAULT_COLOR_VALUE):pl.DEFAULT_COLOR_VALUE,o=l(e.show)?y(e.show.evaluate(n),pl.DEFAULT_SHOW_VALUE):pl.DEFAULT_SHOW_VALUE;this.setColor(t,i),this.setShow(t,o)}};Lr.prototype.isDestroyed=function(){return!1};Lr.prototype.destroy=function(e){this._batchTexture=this._batchTexture&&this._batchTexture.destroy(),ue(this)};var vF=Lr;var Ere={name:"TilesetPipelineStage"};Ere.process=function(e,t,n){if(t.hasSkipLevelOfDetail(n)){e.shaderBuilder.addDefine("POLYGON_OFFSET",void 0,pe.FRAGMENT);let r={u_polygonOffset:function(){return U.ZERO}};e.uniformMap=xt(r,e.uniformMap),e.hasSkipLevelOfDetail=!0}let i=e.renderStateOptions;i.stencilTest=Ht.setCesium3DTileBit(),i.stencilMask=Ht.CESIUM_3D_TILE_MASK};var wF=Ere;var DF=`// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// +// This version uses only a single iteration for best performance. For fog +// rendering, the difference is negligible. +vec2 nearestPointOnEllipseFast(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + vec2 evoluteScale = (radii.x * radii.x - radii.y * radii.y) * vec2(1.0, -1.0) * inverseRadii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = cos(pi/4) + vec2 tTrigs = vec2(0.70710678118); + vec2 v = radii * tTrigs; + + // Find the evolute of the ellipse (center of curvature) at v. + vec2 evolute = evoluteScale * tTrigs * tTrigs * tTrigs; + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + + return v * sign(pos); +} + +vec3 computeEllipsoidPositionWC(vec3 positionMC) { + // Get the world-space position and project onto a meridian plane of + // the ellipsoid + vec3 positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + + vec2 positionEllipse = vec2(length(positionWC.xy), positionWC.z); + vec2 nearestPoint = nearestPointOnEllipseFast(positionEllipse, czm_ellipsoidRadii.xz); + + // Reconstruct a 3D point in world space + return vec3(nearestPoint.x * normalize(positionWC.xy), nearestPoint.y); +} + +void applyFog(inout vec4 color, vec4 groundAtmosphereColor, vec3 lightDirection, float distanceToCamera) { + + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is dynamic lighting, apply that to the fog. + const float NONE = 0.0; + if (czm_atmosphereDynamicLighting != NONE) { + float darken = clamp(dot(normalize(czm_viewerPositionWC), lightDirection), czm_fogMinimumBrightness, 1.0); + fogColor *= darken; + } + + // Tonemap if HDR rendering is disabled + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + vec3 withFog = czm_fog(distanceToCamera, color.rgb, fogColor, czm_fogVisualDensityScalar); + color = vec4(withFog, color.a); +} + +void atmosphereStage(inout vec4 color, in ProcessedAttributes attributes) { + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is in space, compute the position per-fragment for + // more accurate ground atmosphere. All other cases will use + // + // The if condition will be added in https://github.com/CesiumGS/cesium/issues/11717 + if (false) { + positionWC = computeEllipsoidPositionWC(attributes.positionMC); + lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); + + // The fog color is derived from the ground atmosphere color + czm_computeGroundAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + } else { + positionWC = attributes.positionWC; + lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC, czm_atmosphereDynamicLighting); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + } + + //color correct rayleigh and mie colors + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, czm_atmosphereHsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, czm_atmosphereHsbShift, ignoreBlackPixels); + + vec4 groundAtmosphereColor = czm_computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + if (u_isInFog) { + float distanceToCamera = length(attributes.positionEC); + applyFog(color, groundAtmosphereColor, lightDirection, distanceToCamera); + } else { + // Ground atmosphere + } +} +`;var IF=`void atmosphereStage(ProcessedAttributes attributes) { + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_positionWC, czm_atmosphereDynamicLighting); + + czm_computeGroundAtmosphereScattering( + // This assumes the geometry stage came before this. + v_positionWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +} +`;var Sre={name:"AtmospherePipelineStage"};Sre.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_ATMOSPHERE",void 0,pe.BOTH),i.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),i.addVarying("vec3","v_atmosphereRayleighColor"),i.addVarying("vec3","v_atmosphereMieColor"),i.addVarying("float","v_atmosphereOpacity"),i.addVertexLines([IF]),i.addFragmentLines([DF]),i.addUniform("bool","u_isInFog",pe.FRAGMENT),e.uniformMap.u_isInFog=function(){let o=h.distance(n.camera.positionWC,t.boundingSphere.center);return P.fog(o,n.fog.density)>P.EPSILON3}};var PF=Sre;var RF=`#ifdef DIFFUSE_IBL +vec3 sampleDiffuseEnvironment(vec3 cubeDir) +{ + #ifdef CUSTOM_SPHERICAL_HARMONICS + return czm_sphericalHarmonics(cubeDir, model_sphericalHarmonicCoefficients); + #else + return czm_sphericalHarmonics(cubeDir, czm_sphericalHarmonicCoefficients); + #endif +} +#endif + +#ifdef SPECULAR_IBL +vec3 sampleSpecularEnvironment(vec3 cubeDir, float roughness) +{ + #ifdef CUSTOM_SPECULAR_IBL + float lod = roughness * model_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(model_specularEnvironmentMaps, cubeDir, lod).rgb; + #else + float lod = roughness * czm_specularEnvironmentMapsMaximumLOD; + return czm_textureCube(czm_specularEnvironmentMaps, cubeDir, lod).rgb; + #endif +} +vec3 computeSpecularIBL(vec3 cubeDir, float NdotV, vec3 f0, float roughness) +{ + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 specularSample = sampleSpecularEnvironment(cubeDir, roughness); + + return specularSample * (F * brdfLut.x + brdfLut.y); +} +#endif + +#if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) +/** + * Compute the light contributions from environment maps and spherical harmonic coefficients. + * See Fdez-Aguera, https://www.jcgt.org/published/0008/01/03/paper.pdf, for explanation + * of the single- and multi-scattering terms. + * + * @param {vec3} viewDirectionEC Unit vector pointing from the fragment to the eye position. + * @param {vec3} normalEC The surface normal in eye coordinates. + * @param {czm_modelMaterial} The material properties. + * @return {vec3} The computed HDR color. + */ +vec3 textureIBL(vec3 viewDirectionEC, vec3 normalEC, czm_modelMaterial material) { + vec3 f0 = material.specular; + float roughness = material.roughness; + float specularWeight = 1.0; + #ifdef USE_SPECULAR + specularWeight = material.specularWeight; + #endif + float NdotV = clamp(dot(normalEC, viewDirectionEC), 0.0, 1.0); + + // see https://bruop.github.io/ibl/ at Single Scattering Results + // Roughness dependent fresnel, from Fdez-Aguera + vec3 f90 = max(vec3(1.0 - roughness), f0); + vec3 singleScatterFresnel = fresnelSchlick2(f0, f90, NdotV); + + vec2 brdfLut = texture(czm_brdfLut, vec2(NdotV, roughness)).rg; + vec3 FssEss = specularWeight * (singleScatterFresnel * brdfLut.x + brdfLut.y); + + #ifdef DIFFUSE_IBL + vec3 normalMC = normalize(model_iblReferenceFrameMatrix * normalEC); + vec3 irradiance = sampleDiffuseEnvironment(normalMC); + + vec3 averageFresnel = f0 + (1.0 - f0) / 21.0; + float Ems = specularWeight * (1.0 - brdfLut.x - brdfLut.y); + vec3 FmsEms = FssEss * averageFresnel * Ems / (1.0 - averageFresnel * Ems); + vec3 dielectricScattering = (1.0 - FssEss - FmsEms) * material.diffuse; + vec3 diffuseContribution = irradiance * (FmsEms + dielectricScattering) * model_iblFactor.x; + #else + vec3 diffuseContribution = vec3(0.0); + #endif + + #ifdef USE_ANISOTROPY + // Bend normal to account for anisotropic distortion of specular reflection + vec3 anisotropyDirection = material.anisotropicB; + vec3 anisotropicTangent = cross(anisotropyDirection, viewDirectionEC); + vec3 anisotropicNormal = cross(anisotropicTangent, anisotropyDirection); + float bendFactor = 1.0 - material.anisotropyStrength * (1.0 - roughness); + float bendFactorPow4 = bendFactor * bendFactor * bendFactor * bendFactor; + vec3 bentNormal = normalize(mix(anisotropicNormal, normalEC, bendFactorPow4)); + vec3 reflectEC = reflect(-viewDirectionEC, bentNormal); + #else + vec3 reflectEC = reflect(-viewDirectionEC, normalEC); + #endif + + #ifdef SPECULAR_IBL + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflectEC); + vec3 radiance = sampleSpecularEnvironment(reflectMC, roughness); + vec3 specularContribution = radiance * FssEss * model_iblFactor.y; + #else + vec3 specularContribution = vec3(0.0); + #endif + + return diffuseContribution + specularContribution; +} +#endif +`;var vre={name:"ImageBasedLightingPipelineStage"},qHe=new U;vre.process=function(e,t,n){let i=t.imageBasedLighting,o=t.environmentMapManager,r=e.shaderBuilder,s;l(i.specularEnvironmentMaps)||(s=o.radianceCubeMap);let a=i.sphericalHarmonicCoefficients??o.sphericalHarmonicCoefficients;r.addDefine("USE_IBL_LIGHTING",void 0,pe.FRAGMENT),r.addUniform("vec2","model_iblFactor",pe.FRAGMENT),Rh.isSupported(n.context)&&((i.useSphericalHarmonics||i.useSpecularEnvironmentMaps||i.enabled)&&r.addUniform("mat3","model_iblReferenceFrameMatrix",pe.FRAGMENT),l(s)&&r.addDefine("COMPUTE_POSITION_WC_ATMOSPHERE",void 0,pe.BOTH),l(a)&&l(a[0])?(r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPHERICAL_HARMONICS",void 0,pe.FRAGMENT),r.addUniform("vec3","model_sphericalHarmonicCoefficients[9]",pe.FRAGMENT)):i.useDefaultSphericalHarmonics&&r.addDefine("DIFFUSE_IBL",void 0,pe.FRAGMENT),l(i.specularEnvironmentCubeMap)&&i.specularEnvironmentCubeMap.ready||l(s)?(r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT),r.addDefine("CUSTOM_SPECULAR_IBL",void 0,pe.FRAGMENT),r.addUniform("samplerCube","model_specularEnvironmentMaps",pe.FRAGMENT),r.addUniform("float","model_specularEnvironmentMapsMaximumLOD",pe.FRAGMENT)):t.useDefaultSpecularMaps&&r.addDefine("SPECULAR_IBL",void 0,pe.FRAGMENT)),r.addFragmentLines(RF);let c={model_iblFactor:function(){return U.multiplyByScalar(i.imageBasedLightingFactor,o?.intensity||1,qHe)},model_iblReferenceFrameMatrix:function(){return t._iblReferenceFrameMatrix},model_sphericalHarmonicCoefficients:function(){return a},model_specularEnvironmentMaps:function(){return i.specularEnvironmentCubeMap.texture},model_specularEnvironmentMapsMaximumLOD:function(){return i.specularEnvironmentCubeMap.maximumMipmapLevel}};l(s)&&(c.model_specularEnvironmentMaps=function(){return s},c.model_specularEnvironmentMapsMaximumLOD=function(){return o.maximumMipmapLevel}),e.uniformMap=xt(c,e.uniformMap)};var OF=vre;var YHe=P.EPSILON16;function uW(e){e=y(e,y.EMPTY_OBJECT);let t=e.stage,n=e.runtimeArticulation;this._stage=t,this._runtimeArticulation=n,this._name=t.name,this._type=t.type,this._minimumValue=t.minimumValue,this._maximumValue=t.maximumValue,this._currentValue=t.initialValue}Object.defineProperties(uW.prototype,{stage:{get:function(){return this._stage}},runtimeArticulation:{get:function(){return this._runtimeArticulation}},name:{get:function(){return this._name}},type:{get:function(){return this._type}},minimumValue:{get:function(){return this._minimumValue}},maximumValue:{get:function(){return this._maximumValue}},currentValue:{get:function(){return this._currentValue},set:function(e){e=P.clamp(e,this.minimumValue,this.maximumValue),P.equalsEpsilon(this._currentValue,e,YHe)||(this._currentValue=e,this.runtimeArticulation._dirty=!0)}}});var XHe=new h,lW=new $;uW.prototype.applyStageToMatrix=function(e){let t=this.type,n=this.currentValue,i=XHe,o;switch(t){case Mc.XROTATE:o=$.fromRotationX(P.toRadians(n),lW),e=F.multiplyByMatrix3(e,o,e);break;case Mc.YROTATE:o=$.fromRotationY(P.toRadians(n),lW),e=F.multiplyByMatrix3(e,o,e);break;case Mc.ZROTATE:o=$.fromRotationZ(P.toRadians(n),lW),e=F.multiplyByMatrix3(e,o,e);break;case Mc.XTRANSLATE:i.x=n,i.y=0,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case Mc.YTRANSLATE:i.x=0,i.y=n,i.z=0,e=F.multiplyByTranslation(e,i,e);break;case Mc.ZTRANSLATE:i.x=0,i.y=0,i.z=n,e=F.multiplyByTranslation(e,i,e);break;case Mc.XSCALE:i.x=n,i.y=1,i.z=1,e=F.multiplyByScale(e,i,e);break;case Mc.YSCALE:i.x=1,i.y=n,i.z=1,e=F.multiplyByScale(e,i,e);break;case Mc.ZSCALE:i.x=1,i.y=1,i.z=n,e=F.multiplyByScale(e,i,e);break;case Mc.UNIFORMSCALE:e=F.multiplyByUniformScale(e,n,e);break;default:break}return e};var MF=uW;function LF(e){e=y(e,y.EMPTY_OBJECT);let t=e.articulation,n=e.sceneGraph;this._articulation=t,this._sceneGraph=n,this._name=t.name,this._runtimeStages=[],this._runtimeStagesByName={},this._runtimeNodes=[],this._dirty=!0,KHe(this)}Object.defineProperties(LF.prototype,{articulation:{get:function(){return this._articulation}},sceneGraph:{get:function(){return this._sceneGraph}},name:{get:function(){return this._name}},runtimeStages:{get:function(){return this._runtimeStages}},runtimeNodes:{get:function(){return this._runtimeNodes}}});function KHe(e){let n=e.articulation.stages,i=n.length,o=e._runtimeStages,r=e._runtimeStagesByName;for(let s=0;s<i;s++){let a=n[s],c=new MF({stage:a,runtimeArticulation:e});o.push(c);let u=a.name;r[u]=c}}LF.prototype.setArticulationStage=function(e,t){let n=this._runtimeStagesByName[e];l(n)&&(n.currentValue=t)};var ZHe=new F,$He=new F;LF.prototype.apply=function(){if(!this._dirty)return;this._dirty=!1;let e=F.clone(F.IDENTITY,ZHe),t,n=this._runtimeStages,i=n.length;for(t=0;t<i;t++)e=n[t].applyStageToMatrix(e);let o=this._runtimeNodes,r=o.length;for(t=0;t<r;t++){let s=o[t],a=F.multiplyTransformation(s.originalTransform,e,$He);s.transform=a}};var NF=LF;var FF=`void modelColorStage(inout czm_modelMaterial material) +{ + material.diffuse = mix(material.diffuse, model_color.rgb, model_colorBlend); + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(model_color.rgb, vec3(1.0), highlight); + material.alpha *= model_color.a; +} +`;var FA={name:"ModelColorPipelineStage",COLOR_UNIFORM_NAME:"model_color",COLOR_BLEND_UNIFORM_NAME:"model_colorBlend"};FA.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_COLOR",void 0,pe.FRAGMENT),i.addFragmentLines(FF);let o={},r=t.color;r.alpha===0&&!t.hasSilhouette(n)&&(e.renderStateOptions.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),r.alpha<1&&(e.alphaOptions.pass=ve.TRANSLUCENT),i.addUniform("vec4",FA.COLOR_UNIFORM_NAME,pe.FRAGMENT),o[FA.COLOR_UNIFORM_NAME]=function(){return t.color},i.addUniform("float",FA.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),o[FA.COLOR_BLEND_UNIFORM_NAME]=function(){return Oc.getColorBlend(t.colorBlendMode,t.colorBlendAmount)},e.uniformMap=xt(o,e.uniformMap)};var dx=FA;var BF=`#ifdef USE_CLIPPING_PLANES_FLOAT_TEXTURE +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int pixY = clippingPlaneNumber / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneNumber - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +#else +// Handle uint8 clipping texture instead +vec4 getClippingPlane( + highp sampler2D packedClippingPlanes, + int clippingPlaneNumber, + mat4 transform +) { + int clippingPlaneStartIndex = clippingPlaneNumber * 2; // clipping planes are two pixels each + int pixY = clippingPlaneStartIndex / CLIPPING_PLANES_TEXTURE_WIDTH; + int pixX = clippingPlaneStartIndex - (pixY * CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelWidth = 1.0 / float(CLIPPING_PLANES_TEXTURE_WIDTH); + float pixelHeight = 1.0 / float(CLIPPING_PLANES_TEXTURE_HEIGHT); + float u = (float(pixX) + 0.5) * pixelWidth; // sample from center of pixel + float v = (float(pixY) + 0.5) * pixelHeight; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + pixelWidth, v))); + return czm_transformPlane(plane, transform); +} +#endif + +float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) { + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float pixelWidth = czm_metersPerPixel(position); + + #ifdef UNION_CLIPPING_REGIONS + float clipAmount; // For union planes, we want to get the min distance. So we set the initial value to the first plane distance in the loop below. + #else + float clipAmount = 0.0; + bool clipped = true; + #endif + + for (int i = 0; i < CLIPPING_PLANES_LENGTH; ++i) { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + + #ifdef UNION_CLIPPING_REGIONS + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) { + discard; + } + #else + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + #endif + } + + #ifndef UNION_CLIPPING_REGIONS + if (clipped) { + discard; + } + #endif + + return clipAmount; +} + +void modelClippingPlanesStage(inout vec4 color) +{ + float clipDistance = clip(gl_FragCoord, model_clippingPlanes, model_clippingPlanesMatrix); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = model_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = model_clippingPlanesEdgeStyle.a; + + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) { + color = clippingPlanesEdgeColor; + } +} +`;var wre={name:"ModelClippingPlanesPipelineStage"},QHe=new U;wre.process=function(e,t,n){let i=t.clippingPlanes,o=n.context,r=e.shaderBuilder;r.addDefine("HAS_CLIPPING_PLANES",void 0,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_LENGTH",i.length,pe.FRAGMENT),i.unionClippingRegions&&r.addDefine("UNION_CLIPPING_REGIONS",void 0,pe.FRAGMENT),bs.useFloatTexture(o)&&r.addDefine("USE_CLIPPING_PLANES_FLOAT_TEXTURE",void 0,pe.FRAGMENT);let s=bs.getTextureResolution(i,o,QHe);r.addDefine("CLIPPING_PLANES_TEXTURE_WIDTH",s.x,pe.FRAGMENT),r.addDefine("CLIPPING_PLANES_TEXTURE_HEIGHT",s.y,pe.FRAGMENT),r.addUniform("sampler2D","model_clippingPlanes",pe.FRAGMENT),r.addUniform("vec4","model_clippingPlanesEdgeStyle",pe.FRAGMENT),r.addUniform("mat4","model_clippingPlanesMatrix",pe.FRAGMENT),r.addFragmentLines(BF);let a={model_clippingPlanes:function(){return i.texture},model_clippingPlanesEdgeStyle:function(){let c=z.clone(i.edgeColor);return c.alpha=i.edgeWidth,c},model_clippingPlanesMatrix:function(){return t._clippingPlanesMatrix}};e.uniformMap=xt(a,e.uniformMap)};var kF=wre;var VF=`void modelClippingPolygonsStage(ProcessedAttributes attributes) +{ + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(v_positionWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_regionIndex = -1; + v_clippingPosition = vec2(czm_infinity); + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = czm_unpackClippingExtents(model_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + } + + float threshold = 0.01; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } +} +`;var UF=`void modelClippingPolygonsStage() +{ + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + czm_clipPolygons(model_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +} +`;var Dre={name:"ModelClippingPolygonsPipelineStage"};Dre.process=function(e,t,n){let i=t.clippingPolygons,o=e.shaderBuilder;o.addDefine("ENABLE_CLIPPING_POLYGONS",void 0,pe.BOTH),i.inverse&&o.addDefine("CLIPPING_INVERSE",void 0,pe.FRAGMENT),o.addDefine("CLIPPING_POLYGON_REGIONS_LENGTH",i.extentsCount,pe.BOTH),o.addUniform("sampler2D","model_clippingDistance",pe.FRAGMENT),o.addUniform("sampler2D","model_clippingExtents",pe.VERTEX),o.addVarying("vec2","v_clippingPosition"),o.addVarying("int","v_regionIndex","flat"),o.addVertexLines(VF),o.addFragmentLines(UF);let r={model_clippingDistance:function(){return i.clippingTexture},model_clippingExtents:function(){return i.extentsTexture}};e.uniformMap=xt(r,e.uniformMap)};var zF=Dre;function Ire(e,t){this._model=e,this._runtimeNode=t}Object.defineProperties(Ire.prototype,{name:{get:function(){return this._runtimeNode._name}},id:{get:function(){return this._runtimeNode._id}},show:{get:function(){return this._runtimeNode.show},set:function(e){this._runtimeNode.show=e}},matrix:{get:function(){return this._runtimeNode.transform},set:function(e){l(e)?(this._runtimeNode.transform=e,this._runtimeNode.userAnimated=!0,this._model._userAnimationDirty=!0):(this._runtimeNode.transform=this.originalMatrix,this._runtimeNode.userAnimated=!1)}},originalMatrix:{get:function(){return this._runtimeNode.originalTransform}}});var HF=Ire;var GF=`mat4 getInstancingTransform() +{ + mat4 instancingTransform; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform = mat4( + a_instancingTransformRow0.x, a_instancingTransformRow1.x, a_instancingTransformRow2.x, 0.0, // Column 1 + a_instancingTransformRow0.y, a_instancingTransformRow1.y, a_instancingTransformRow2.y, 0.0, // Column 2 + a_instancingTransformRow0.z, a_instancingTransformRow1.z, a_instancingTransformRow2.z, 0.0, // Column 3 + a_instancingTransformRow0.w, a_instancingTransformRow1.w, a_instancingTransformRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation = a_instanceTranslation; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation.x, translation.y, translation.z, 1.0 + ); + #endif + + return instancingTransform; +} + +#ifdef USE_2D_INSTANCING +mat4 getInstancingTransform2D() +{ + mat4 instancingTransform2D; + + #ifdef HAS_INSTANCE_MATRICES + instancingTransform2D = mat4( + a_instancingTransform2DRow0.x, a_instancingTransform2DRow1.x, a_instancingTransform2DRow2.x, 0.0, // Column 1 + a_instancingTransform2DRow0.y, a_instancingTransform2DRow1.y, a_instancingTransform2DRow2.y, 0.0, // Column 2 + a_instancingTransform2DRow0.z, a_instancingTransform2DRow1.z, a_instancingTransform2DRow2.z, 0.0, // Column 3 + a_instancingTransform2DRow0.w, a_instancingTransform2DRow1.w, a_instancingTransform2DRow2.w, 1.0 // Column 4 + ); + #else + vec3 translation2D = vec3(0.0, 0.0, 0.0); + vec3 scale = vec3(1.0, 1.0, 1.0); + + #ifdef HAS_INSTANCE_TRANSLATION + translation2D = a_instanceTranslation2D; + #endif + #ifdef HAS_INSTANCE_SCALE + scale = a_instanceScale; + #endif + + instancingTransform2D = mat4( + scale.x, 0.0, 0.0, 0.0, + 0.0, scale.y, 0.0, 0.0, + 0.0, 0.0, scale.z, 0.0, + translation2D.x, translation2D.y, translation2D.z, 1.0 + ); + #endif + + return instancingTransform2D; +} +#endif +`;var WF=`void instancingStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + attributes.positionMC = (instancingTransform * vec4(positionMC, 1.0)).xyz; + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = (instancingTransform * vec4(normalMC, 0.0)).xyz; + #endif + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var jF=`void legacyInstancingStage( + inout ProcessedAttributes attributes, + out mat4 instanceModelView, + out mat3 instanceModelViewInverseTranspose) +{ + vec3 positionMC = attributes.positionMC; + + mat4 instancingTransform = getInstancingTransform(); + + mat4 instanceModel = instancingTransform * u_instance_nodeTransform; + instanceModelView = u_instance_modifiedModelView; + instanceModelViewInverseTranspose = mat3(u_instance_modifiedModelView * instanceModel); + + attributes.positionMC = (instanceModel * vec4(positionMC, 1.0)).xyz; + + #ifdef USE_2D_INSTANCING + mat4 instancingTransform2D = getInstancingTransform2D(); + attributes.position2D = (instancingTransform2D * vec4(positionMC, 1.0)).xyz; + #endif +} +`;var qF=new F,JHe=new F,e8e=new F,Rre={name:"InstancingPipelineStage",_getInstanceTransformsAsMatrices:Fre,_transformsToTypedArray:dW};Rre.process=function(e,t,n){let i=t.instances,o=i.attributes[0].count,r=e.shaderBuilder;r.addDefine("HAS_INSTANCING"),r.addVertexLines(GF);let s=e.model,a=s.sceneGraph,c=e.runtimeNode,u=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&s._projectTo2D,f=s._enablePick&&!n.context.webgl2,d=[];p8e(e,n,i,d,u,f),y8e(e,n,i,d);let p={};if(i.transformInWorldSpace?(r.addDefine("USE_LEGACY_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_instance_modifiedModelView",pe.VERTEX),r.addUniform("mat4","u_instance_nodeTransform",pe.VERTEX),p.u_instance_modifiedModelView=function(){let g=F.multiplyTransformation(s.modelMatrix,a.components.transform,qF);return u?F.multiplyTransformation(n.context.uniformState.view3D,g,qF):(n.mode!==ne.SCENE3D&&(g=Nt.basisTo2D(n.mapProjection,g,qF)),F.multiplyTransformation(n.context.uniformState.view,g,qF))},p.u_instance_nodeTransform=function(){return F.multiplyTransformation(a.axisCorrectionMatrix,c.computedTransform,JHe)},r.addVertexLines(jF)):r.addVertexLines(WF),u){r.addDefine("USE_2D_INSTANCING",void 0,pe.VERTEX),r.addUniform("mat4","u_modelView2D",pe.VERTEX);let g=n.context,m=F.fromTranslation(c.instancingReferencePoint2D,new F);p.u_modelView2D=function(){return F.multiplyTransformation(g.uniformState.view,m,e8e)}}e.uniformMap=xt(p,e.uniformMap),e.instanceCount=o,e.attributes.push.apply(e.attributes,d)};var gw=new F,t8e=new h;function n8e(e,t,n,i,o){let r=F.multiplyTransformation(t,e,gw);return r=F.multiplyTransformation(r,n,gw),o=Nt.basisTo2D(i.mapProjection,r,o),o}function i8e(e,t,n,i,o){let r=F.fromTranslation(e,gw),s=F.multiplyTransformation(t,r,gw);s=F.multiplyTransformation(s,n,gw);let a=F.getTranslation(s,t8e);return o=Vi.computeActualEllipsoidPosition(i,a,o),o}function Ore(e,t,n){let i=e.model,o=i.sceneGraph;e.runtimeNode.node.instances.transformInWorldSpace?(t=F.multiplyTransformation(i.modelMatrix,o.components.transform,t),n=F.multiplyTransformation(o.axisCorrectionMatrix,e.runtimeNode.computedTransform,n)):(t=F.clone(o.computedModelMatrix,t),t=F.multiplyTransformation(t,e.runtimeNode.computedTransform,t),n=F.clone(F.IDENTITY,n))}var Mre=new F,Lre=new F,o8e=new F,r8e=new h;function s8e(e,t,n,i){let o=Mre,r=Lre;Ore(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=n8e(f,o,r,n,o8e),p=F.getTranslation(d,r8e),g=h.subtract(p,a,p);i[u]=F.setTranslation(d,g,i[u])}return i}function a8e(e,t,n,i){let o=Mre,r=Lre;Ore(t,o,r);let a=t.runtimeNode.instancingReferencePoint2D,c=e.length;for(let u=0;u<c;u++){let f=e[u],d=i8e(f,o,r,n,f);i[u]=h.subtract(d,a,i[u])}return i}var c8e=new h,l8e=new h;function Nre(e,t){let n=e.runtimeNode,i=e.model.sceneGraph.computedModelMatrix,o=F.multiplyByPoint(i,n.instancingTranslationMin,c8e),r=Vi.computeActualEllipsoidPosition(t,o,o),s=F.multiplyByPoint(i,n.instancingTranslationMax,l8e),a=Vi.computeActualEllipsoidPosition(t,s,s);n.instancingReferencePoint2D=h.lerp(r,a,.5,new h)}function dW(e){let n=e.length,i=new Float32Array(n*12);for(let o=0;o<n;o++){let r=e[o],s=12*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8],i[s+3]=r[12],i[s+4]=r[1],i[s+5]=r[5],i[s+6]=r[9],i[s+7]=r[13],i[s+8]=r[2],i[s+9]=r[6],i[s+10]=r[10],i[s+11]=r[14]}return i}function u8e(e){let n=e.length,i=new Float32Array(n*3);for(let o=0;o<n;o++){let r=e[o],s=3*o;i[s+0]=r[0],i[s+1]=r[4],i[s+2]=r[8]}return i}var f8e=new h,d8e=new Me,h8e=new h;function Fre(e,t,n){let i=new Array(t),o=Zt.getAttributeBySemantic(e,os.TRANSLATION),r=Zt.getAttributeBySemantic(e,os.ROTATION),s=Zt.getAttributeBySemantic(e,os.SCALE),a=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE),c=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),u=l(o),f=l(r),d=l(s),p=u?o.typedArray:new Float32Array(t*3),g=f?r.typedArray:new Float32Array(t*4);f&&r.normalized&&(g=Ln.dequantize(g,r.componentDatatype,r.type,t));let m;d?m=s.typedArray:(m=new Float32Array(t*3),m.fill(1));for(let b=0;b<t;b++){let T=new h(p[b*3],p[b*3+1],p[b*3+2],f8e);h.maximumByComponent(a,T,a),h.minimumByComponent(c,T,c);let A=new Me(g[b*4],g[b*4+1],g[b*4+2],f?g[b*4+3]:1,d8e),C=new h(m[b*3],m[b*3+1],m[b*3+2],h8e),S=F.fromTranslationQuaternionRotationScale(T,A,C,new F);i[b]=S}let x=n.runtimeNode;return x.instancingTranslationMin=c,x.instancingTranslationMax=a,u&&(o.typedArray=void 0),f&&(r.typedArray=void 0),d&&(s.typedArray=void 0),i}function m8e(e,t,n){let i=new Array(t),o=e.typedArray,r=new h(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE),s=new h(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE);for(let c=0;c<t;c++){let u=new h(o[c*3],o[c*3+1],o[c*3+2]);i[c]=u,h.minimumByComponent(r,u,r),h.maximumByComponent(s,u,s)}let a=n.runtimeNode;return a.instancingTranslationMin=r,a.instancingTranslationMax=s,e.typedArray=void 0,i}function hW(e,t){let n=yt.createVertexBuffer({context:t.context,typedArray:e,usage:Fe.STATIC_DRAW});return n.vertexArrayDestroyable=!1,n}function p8e(e,t,n,i,o,r){let s=Zt.getAttributeBySemantic(n,os.ROTATION);l(s)?_8e(e,n,i,t,o,r):g8e(e,n,i,t,o)}function _8e(e,t,n,i,o,r){let s=e.shaderBuilder,a=t.attributes[0].count,c=e.model,u=e.runtimeNode;s.addDefine("HAS_INSTANCE_MATRICES");let f="Transform",d,p=u.instancingTransformsBuffer;if(!l(p)){d=Fre(t,a,e);let b=dW(d);p=hW(b,i),c._modelResources.push(p),r&&(u.transformsTypedArray=b),u.instancingTransformsBuffer=p}if(Pre(e,p,n,f),!o)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Nre(e,g);let m=u.instancingTransformsBuffer2D;if(!l(m)){let b=s8e(d,e,g,d),T=dW(b);m=hW(T,i),c._modelResources.push(m),u.instancingTransformsBuffer2D=m}Pre(e,m,n,"Transform2D")}function g8e(e,t,n,i,o,r){let s=e.shaderBuilder,a=e.runtimeNode,c=Zt.getAttributeBySemantic(t,os.TRANSLATION),u=Zt.getAttributeBySemantic(t,os.SCALE);if(l(u)&&(s.addDefine("HAS_INSTANCE_SCALE"),fW(e,u.buffer,u.byteOffset,u.byteStride,n,"Scale")),!l(c))return;let f,d=c.typedArray;if(l(d)?f=m8e(c,c.count,e):l(a.instancingTranslationMin)||(a.instancingTranslationMin=c.min,a.instancingTranslationMax=c.max),s.addDefine("HAS_INSTANCE_TRANSLATION"),fW(e,c.buffer,c.byteOffset,c.byteStride,n,"Translation"),!o&&!r)return;let g=Ge(i);g.mode=ne.COLUMBUS_VIEW,Nre(e,g);let m=a.instancingTranslationBuffer2D;if(!l(m)){let A=a8e(f,e,g,f),C=u8e(A);r&&(a.transformsTypedArray=C),m=hW(C,i),e.model._modelResources.push(m),a.instancingTranslationBuffer2D=m}if(!o)return;fW(e,m,0,void 0,n,"Translation2D")}function Pre(e,t,n,i){let r=X.getSizeInBytes(X.FLOAT),s=r*12,a=[{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:0,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*4,strideInBytes:s,instanceDivisor:1},{index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:4,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:r*8,strideInBytes:s,instanceDivisor:1}],c=e.shaderBuilder;c.addAttribute("vec4",`a_instancing${i}Row0`),c.addAttribute("vec4",`a_instancing${i}Row1`),c.addAttribute("vec4",`a_instancing${i}Row2`),n.push.apply(n,a)}function fW(e,t,n,i,o,r){o.push({index:e.attributeIndex++,vertexBuffer:t,componentsPerAttribute:3,componentDatatype:X.FLOAT,normalize:!1,offsetInBytes:n,strideInBytes:i,instanceDivisor:1}),e.shaderBuilder.addAttribute("vec3",`a_instance${r}`)}function y8e(e,t,n,i){let o=n.attributes,r=e.shaderBuilder;for(let s=0;s<o.length;s++){let a=o[s];a.semantic===os.FEATURE_ID&&(a.setIndex>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=a.setIndex+1),i.push({index:e.attributeIndex++,vertexBuffer:a.buffer,componentsPerAttribute:on.getNumberOfComponents(a.type),componentDatatype:a.componentDatatype,normalize:!1,offsetInBytes:a.byteOffset,strideInBytes:a.byteStride,instanceDivisor:1}),r.addAttribute("float",`a_instanceFeatureId_${a.setIndex}`))}}var YF=Rre;var mW={};mW.name="ModelMatrixUpdateStage";mW.update=function(e,t,n){let i=n.mode!==ne.SCENE3D;if(!(i&&t._model._projectTo2D)&&e._transformDirty){let o=i?t._computedModelMatrix2D:t._computedModelMatrix;Bre(e,t,o,e.transformToRoot),e._transformDirty=!1}};function x8e(e,t,n){e.modelMatrix=F.multiplyTransformation(t,n,e.modelMatrix),e.cullFace=Zt.getCullFace(e.modelMatrix,e.primitiveType)}function Bre(e,t,n,i){let o;i=F.multiplyTransformation(i,e.transform,new F),e.updateComputedTransform();let r=e.runtimePrimitives.length;for(o=0;o<r;o++){let a=e.runtimePrimitives[o];x8e(a.drawCommand,n,i)}let s=e.children.length;for(o=0;o<s;o++){let a=t._runtimeNodes[e.children[o]];a._transformToRoot=F.clone(i,a._transformToRoot),Bre(a,t,n,i),a._transformDirty=!1}}var XF=mW;var kre={name:"NodeStatisticsPipelineStage",_countInstancingAttributes:Vre,_countGeneratedBuffers:Ure};kre.process=function(e,t,n){let i=e.model.statistics,o=t.instances,r=e.runtimeNode;Vre(i,o),Ure(i,r)};function Vre(e,t){if(!l(t))return;let n=t.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r.buffer)&&e.addBuffer(r.buffer,!1)}}function Ure(e,t){l(t.instancingTransformsBuffer)&&e.addBuffer(t.instancingTransformsBuffer,!1),l(t.instancingTransformsBuffer2D)&&e.addBuffer(t.instancingTransformsBuffer2D,!1),l(t.instancingTranslationBuffer2D)&&e.addBuffer(t.instancingTranslationBuffer2D,!1)}var KF=kre;function BA(e){e=y(e,y.EMPTY_OBJECT);let t=e.node,n=e.transform,i=e.transformToRoot,o=e.sceneGraph,r=e.children;this._node=t,this._name=t.name,this._id=t.index,this._sceneGraph=o,this._children=r,this._originalTransform=F.clone(n,this._originalTransform),this._transform=F.clone(n,this._transform),this._transformToRoot=F.clone(i,this._transformToRoot),this._computedTransform=new F,this._transformDirty=!1,this._transformParameters=void 0,this._morphWeights=[],this._runtimeSkin=void 0,this._computedJointMatrices=[],this.show=!0,this.userAnimated=!1,this.pipelineStages=[],this.runtimePrimitives=[],this.updateStages=[],this.instancingTranslationMin=void 0,this.instancingTranslationMax=void 0,this.instancingTransformsBuffer=void 0,this.instancingTransformsBuffer2D=void 0,this.instancingTranslationBuffer2D=void 0,this.instancingReferencePoint2D=void 0,b8e(this)}Object.defineProperties(BA.prototype,{node:{get:function(){return this._node}},sceneGraph:{get:function(){return this._sceneGraph}},children:{get:function(){return this._children}},transform:{get:function(){return this._transform},set:function(e){this._transformDirty=!0,this._transform=F.clone(e,this._transform)}},transformToRoot:{get:function(){return this._transformToRoot}},computedTransform:{get:function(){return this._computedTransform}},originalTransform:{get:function(){return this._originalTransform}},translation:{get:function(){return l(this._transformParameters)?this._transformParameters.translation:void 0},set:function(e){let t=this._transformParameters,n=t.translation;h.equals(n,e)||(t.translation=h.clone(e,t.translation),pW(this,t))}},rotation:{get:function(){return l(this._transformParameters)?this._transformParameters.rotation:void 0},set:function(e){let t=this._transformParameters,n=t.rotation;Me.equals(n,e)||(t.rotation=Me.clone(e,t.rotation),pW(this,t))}},scale:{get:function(){return l(this._transformParameters)?this._transformParameters.scale:void 0},set:function(e){let t=this._transformParameters,n=t.scale;h.equals(n,e)||(t.scale=h.clone(e,t.scale),pW(this,t))}},morphWeights:{get:function(){return this._morphWeights},set:function(e){let t=e.length;for(let n=0;n<t;n++)this._morphWeights[n]=e[n]}},runtimeSkin:{get:function(){return this._runtimeSkin}},computedJointMatrices:{get:function(){return this._computedJointMatrices}}});function b8e(e){let t=e.transform,n=e.transformToRoot,i=e._computedTransform;e._computedTransform=F.multiply(n,t,i);let o=e.node;l(o.matrix)||(e._transformParameters=new G0(o.translation,o.rotation,o.scale)),l(o.morphWeights)&&(e._morphWeights=o.morphWeights.slice());let r=o.articulationName;if(l(r)){let c=e.sceneGraph._runtimeArticulations[r];l(c)&&c.runtimeNodes.push(e)}}function pW(e,t){e._transformDirty=!0,e._transform=F.fromTranslationRotationScale(t,e._transform)}BA.prototype.getChild=function(e){return this.sceneGraph._runtimeNodes[this.children[e]]};BA.prototype.configurePipeline=function(){let e=this.node,t=this.pipelineStages;t.length=0;let n=this.updateStages;n.length=0,l(e.instances)&&t.push(YF),t.push(KF),n.push(XF)};BA.prototype.updateComputedTransform=function(){this._computedTransform=F.multiply(this._transformToRoot,this._transform,this._computedTransform)};BA.prototype.updateJointMatrices=function(){let e=this._runtimeSkin;if(!l(e))return;e.updateJointMatrices();let t=this._computedJointMatrices,n=e.jointMatrices,i=n.length;for(let o=0;o<i;o++){l(t[o])||(t[o]=new F);let r=F.multiplyTransformation(this.transformToRoot,this.transform,t[o]),s=F.inverseTransformation(r,t[o]);t[o]=F.multiplyTransformation(s,n[o],t[o])}};var ZF=BA;var zre={name:"AlphaPipelineStage"};zre.process=function(e,t,n){let i=e.alphaOptions,o=e.model;i.pass=y(i.pass,o.opaquePass);let r=e.renderStateOptions;i.pass===ve.TRANSLUCENT&&(r.cull.enabled=!1,r.depthMask=!1,r.blending=ln.ALPHA_BLEND);let s=e.shaderBuilder,a=e.uniformMap;l(i.alphaCutoff)&&(s.addDefine("ALPHA_MODE_MASK",void 0,pe.FRAGMENT),s.addUniform("float","u_alphaCutoff",pe.FRAGMENT),a.u_alphaCutoff=function(){return i.alphaCutoff})};var $F=zre;var Hre={name:"BatchTexturePipelineStage"};Hre.process=function(e,t,n){let i=e.shaderBuilder,o={},r=e.model,s=r.featureTables[r.featureTableId],a=s.featuresLength;i.addUniform("int","model_featuresLength"),o.model_featuresLength=function(){return a};let c=s.batchTexture;i.addUniform("sampler2D","model_batchTexture"),o.model_batchTexture=function(){return y(c.batchTexture,c.defaultTexture)},i.addUniform("vec4","model_textureStep"),o.model_textureStep=function(){return c.textureStep},c.textureDimensions.y>1&&(i.addDefine("MULTILINE_BATCH_TEXTURE"),i.addUniform("vec2","model_textureDimensions"),o.model_textureDimensions=function(){return c.textureDimensions}),e.uniformMap=xt(o,e.uniformMap)};var QF=Hre;var Gre={name:"ClassificationPipelineStage"};Gre.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_CLASSIFICATION",void 0,pe.BOTH);let o=e.runtimePrimitive;l(o.batchLengths)||T8e(t,o)};function T8e(e,t){let n=Zt.getAttributeBySemantic(e,Ct.POSITION);if(!l(n))throw new ce("Primitives must have a position attribute to be used for classification.");let i,o=e.indices,r=l(o);r&&(i=o.typedArray,o.typedArray=void 0);let s=r?o.count:n.count,a=Zt.getAttributeBySemantic(e,Ct.FEATURE_ID,0);if(!l(a)){t.batchLengths=[s],t.batchOffsets=[0];return}let c=a.typedArray;a.typedArray=void 0;let u=[],f=[0],d=r?i[0]:0,p=c[d],g=0;for(let x=1;x<s;x++){let b=r?i[x]:x,T=c[b];if(T!==p){let A=x-g,C=x;u.push(A),f.push(C),g=C,p=T}}let m=s-g;u.push(m),t.batchLengths=u,t.batchOffsets=f}var JF=Gre;var e2=`void filterByPassType(inout vec3 positionMC, vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + positionMC *= float(model_silhouettePass); + #else + positionMC *= 0.0; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + positionMC *= 0.0; + } +} + +void cpuStylingStage(inout vec3 positionMC, inout SelectedFeature feature) +{ + float show = ceil(feature.color.a); + positionMC *= show; + + #if defined(HAS_SELECTED_FEATURE_ID_ATTRIBUTE) && !defined(HAS_CLASSIFICATION) + filterByPassType(positionMC, feature.color); + #endif +} +`;var t2=`void filterByPassType(vec4 featureColor) +{ + bool styleTranslucent = (featureColor.a != 1.0); + // Only render translucent features in the translucent pass (if the style or the original command has translucency). + if (czm_pass == czm_passTranslucent && !styleTranslucent && !model_commandTranslucent) + { + // If the model has a translucent silhouette, it needs to render during the silhouette color command, + // (i.e. the command where model_silhouettePass = true), even if the model isn't translucent. + #ifdef HAS_SILHOUETTE + if(!model_silhouettePass) { + discard; + } + #else + discard; + #endif + } + // If the current pass is not the translucent pass and the style is not translucent, don't render the feature. + else if (czm_pass != czm_passTranslucent && styleTranslucent) + { + discard; + } +} + +void cpuStylingStage(inout czm_modelMaterial material, SelectedFeature feature) +{ + vec4 featureColor = feature.color; + if (featureColor.a == 0.0) + { + discard; + } + + // If a feature ID vertex attribute is used, the pass type filter is applied in the vertex shader. + // So, we only apply in in the fragment shader if the feature ID texture is used. + #if defined(HAS_SELECTED_FEATURE_ID_TEXTURE) && !defined(HAS_CLASSIFICATION) + filterByPassType(featureColor); + #endif + + featureColor = czm_gammaCorrect(featureColor); + + // Classification models compute the diffuse differently. + #ifdef HAS_CLASSIFICATION + material.diffuse = featureColor.rgb * featureColor.a; + #else + float highlight = ceil(model_colorBlend); + material.diffuse *= mix(featureColor.rgb, vec3(1.0), highlight); + #endif + + material.alpha *= featureColor.a; +} +`;var Wre={name:"CPUStylingPipelineStage"};Wre.process=function(e,t,n){let i=e.model,o=e.shaderBuilder;o.addVertexLines(e2),o.addFragmentLines(t2),o.addDefine("USE_CPU_STYLING",void 0,pe.BOTH),l(i.color)||(o.addUniform("float",dx.COLOR_BLEND_UNIFORM_NAME,pe.FRAGMENT),e.uniformMap[dx.COLOR_BLEND_UNIFORM_NAME]=function(){return Oc.getColorBlend(i.colorBlendMode,i.colorBlendAmount)}),o.addUniform("bool","model_commandTranslucent",pe.BOTH),e.uniformMap.model_commandTranslucent=function(){return e.alphaOptions.pass===ve.TRANSLUCENT}};var n2=Wre;var jre={MODIFY_MATERIAL:"MODIFY_MATERIAL",REPLACE_MATERIAL:"REPLACE_MATERIAL"};jre.getDefineName=function(e){return`CUSTOM_SHADER_${e}`};var Og=Object.freeze(jre);var i2=`void customShaderStage( + inout czm_modelVertexOutput vsOutput, + inout ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // VertexInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + VertexInput vsInput; + initializeInputStruct(vsInput, attributes); + vsInput.featureIds = featureIds; + vsInput.metadata = metadata; + vsInput.metadataClass = metadataClass; + vsInput.metadataStatistics = metadataStatistics; + vertexMain(vsInput, vsOutput); + attributes.positionMC = vsOutput.positionMC; +} +`;var o2=`void customShaderStage( + inout czm_modelMaterial material, + ProcessedAttributes attributes, + FeatureIds featureIds, + Metadata metadata, + MetadataClass metadataClass, + MetadataStatistics metadataStatistics +) { + // FragmentInput and initializeInputStruct() are dynamically generated in JS, + // see CustomShaderPipelineStage.js + FragmentInput fsInput; + initializeInputStruct(fsInput, attributes); + fsInput.featureIds = featureIds; + fsInput.metadata = metadata; + fsInput.metadataClass = metadataClass; + fsInput.metadataStatistics = metadataStatistics; + fragmentMain(fsInput, material); +} +`;var r2=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) { + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); +} +`;var s2=`void featureIdStage(out FeatureIds featureIds, ProcessedAttributes attributes) +{ + initializeFeatureIds(featureIds, attributes); + initializeFeatureIdAliases(featureIds); + setFeatureIdVaryings(); +} +`;var Pi={name:"FeatureIdPipelineStage",STRUCT_ID_FEATURE_IDS_VS:"FeatureIdsVS",STRUCT_ID_FEATURE_IDS_FS:"FeatureIdsFS",STRUCT_NAME_FEATURE_IDS:"FeatureIds",FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS:"initializeFeatureIdsVS",FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS:"initializeFeatureIdsFS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS:"initializeFeatureIdAliasesVS",FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS:"initializeFeatureIdAliasesFS",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS:"void initializeFeatureIds(out FeatureIds featureIds, ProcessedAttributes attributes)",FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES:"void initializeFeatureIdAliases(inout FeatureIds featureIds)",FUNCTION_ID_SET_FEATURE_ID_VARYINGS:"setFeatureIdVaryings",FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS:"void setFeatureIdVaryings()"};Pi.process=function(e,t,n){let i=e.shaderBuilder;A8e(i);let o=e.runtimeNode.node.instances;l(o)&&C8e(e,o,n),E8e(e,t,n),i.addVertexLines(s2),i.addFragmentLines(r2)};function A8e(e){e.addStruct(Pi.STRUCT_ID_FEATURE_IDS_VS,Pi.STRUCT_NAME_FEATURE_IDS,pe.VERTEX),e.addStruct(Pi.STRUCT_ID_FEATURE_IDS_FS,Pi.STRUCT_NAME_FEATURE_IDS,pe.FRAGMENT),e.addFunction(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,Pi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.VERTEX),e.addFunction(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,Pi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_IDS,pe.FRAGMENT),e.addFunction(Pi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,Pi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.VERTEX),e.addFunction(Pi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,Pi.FUNCTION_SIGNATURE_INITIALIZE_FEATURE_ID_ALIASES,pe.FRAGMENT),e.addFunction(Pi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,Pi.FUNCTION_SIGNATURE_SET_FEATURE_ID_VARYINGS,pe.VERTEX)}function C8e(e,t,n){let i=t.featureIds,o=t.attributes[0].count;for(let r=0;r<i.length;r++){let s=i[r],a=s.positionalLabel;s instanceof xn.FeatureIdAttribute?S8e(e,s,a):qre(e,s,a,o,1,n);let c=s.label;l(c)&&Yre(e,a,c,pe.BOTH)}}function E8e(e,t,n){let i=t.featureIds,r=Zt.getAttributeBySemantic(t,Ct.POSITION).count;for(let s=0;s<i.length;s++){let a=i[s],c=a.positionalLabel,u=pe.BOTH;a instanceof xn.FeatureIdAttribute?v8e(e,a,c):a instanceof xn.FeatureIdImplicitRange?qre(e,a,c,r,void 0,n):(w8e(e,a,c,s,n),u=pe.FRAGMENT);let f=a.label;l(f)&&Yre(e,c,f,u)}}function S8e(e,t,n){let i=e.shaderBuilder;i.addStructField(Pi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Pi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=`a_${r}${o}`,a=`v_${r}${o}`,c=`featureIds.${n} = int(czm_round(${s}));`,u=`featureIds.${n} = int(czm_round(${a}));`;i.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[c]),i.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[u]),i.addVarying("float",a),i.addFunctionLines(Pi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${a} = ${s};`])}function v8e(e,t,n){let i=e.shaderBuilder;i.addStructField(Pi.STRUCT_ID_FEATURE_IDS_VS,"int",n),i.addStructField(Pi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let o=t.setIndex,r=n.replace(/_\d+$/,"_"),s=[`featureIds.${n} = int(czm_round(attributes.${r}${o}));`];i.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,s),i.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,s)}function qre(e,t,n,i,o,r){D8e(e,t,i,o,r);let s=e.shaderBuilder,a=`a_implicit_${n}`;s.addAttribute("float",a);let c=`v_implicit_${n}`;s.addVarying("float",c),s.addStructField(Pi.STRUCT_ID_FEATURE_IDS_VS,"int",n),s.addStructField(Pi.STRUCT_ID_FEATURE_IDS_FS,"int",n),s.addFunctionLines(Pi.FUNCTION_ID_SET_FEATURE_ID_VARYINGS,[`${c} = ${a};`]),s.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_VS,[`featureIds.${n} = int(czm_round(${a}));`]),s.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[`featureIds.${n} = int(czm_round(${c}));`])}function w8e(e,t,n,i,o){let r=`u_featureIdTexture_${i}`,s=e.uniformMap,a=t.textureReader;s[r]=function(){return y(a.texture,o.context.defaultTexture)};let c=a.channels,u=e.shaderBuilder;u.addStructField(Pi.STRUCT_ID_FEATURE_IDS_FS,"int",n),u.addUniform("sampler2D",r,pe.FRAGMENT);let d=`v_texCoord_${a.texCoord}`,p=d,g=a.transform;if(l(g)&&!$.equals(g,$.IDENTITY)){let b=`${r}Transform`;u.addUniform("mat3",b,pe.FRAGMENT),s[b]=function(){return g},p=`vec2(${b} * vec3(${d}, 1.0))`}let m=`texture(${r}, ${p}).${c}`,x=`featureIds.${n} = czm_unpackUint(${m});`;u.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_IDS_FS,[x])}function Yre(e,t,n,i){let o=e.shaderBuilder,r=pe.includesVertexShader(i);r&&o.addStructField(Pi.STRUCT_ID_FEATURE_IDS_VS,"int",n),o.addStructField(Pi.STRUCT_ID_FEATURE_IDS_FS,"int",n);let s=[`featureIds.${n} = featureIds.${t};`];r&&o.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_VS,s),o.addFunctionLines(Pi.FUNCTION_ID_INITIALIZE_FEATURE_ID_ALIASES_FS,s)}function D8e(e,t,n,i,o){let r=e.model,s,a;if(l(t.repeat)){let u=I8e(t,n);s=yt.createVertexBuffer({context:o.context,typedArray:u,usage:Fe.STATIC_DRAW}),s.vertexArrayDestroyable=!1,r._pipelineResources.push(s),r.statistics.addBuffer(s,!1)}else a=[t.offset];let c={index:e.attributeIndex++,instanceDivisor:i,value:a,vertexBuffer:s,normalize:!1,componentsPerAttribute:1,componentDatatype:X.FLOAT,strideInBytes:X.getSizeInBytes(X.FLOAT),offsetInBytes:0};e.attributes.push(c)}function I8e(e,t){let n=e.offset,i=e.repeat,o=new Float32Array(t);for(let r=0;r<t;r++)o[r]=n+Math.floor(r/i);return o}var hx=Pi;var a2=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); +} +`;var c2=`void metadataStage( + out Metadata metadata, + out MetadataClass metadataClass, + out MetadataStatistics metadataStatistics, + ProcessedAttributes attributes + ) +{ + initializeMetadata(metadata, metadataClass, metadataStatistics, attributes); + setMetadataVaryings(); +} +`;var bi={name:"MetadataPipelineStage",STRUCT_ID_METADATA_VS:"MetadataVS",STRUCT_ID_METADATA_FS:"MetadataFS",STRUCT_NAME_METADATA:"Metadata",STRUCT_ID_METADATA_CLASS_VS:"MetadataClassVS",STRUCT_ID_METADATA_CLASS_FS:"MetadataClassFS",STRUCT_NAME_METADATA_CLASS:"MetadataClass",STRUCT_ID_METADATA_STATISTICS_VS:"MetadataStatisticsVS",STRUCT_ID_METADATA_STATISTICS_FS:"MetadataStatisticsFS",STRUCT_NAME_METADATA_STATISTICS:"MetadataStatistics",FUNCTION_ID_INITIALIZE_METADATA_VS:"initializeMetadataVS",FUNCTION_ID_INITIALIZE_METADATA_FS:"initializeMetadataFS",FUNCTION_SIGNATURE_INITIALIZE_METADATA:"void initializeMetadata(out Metadata metadata, out MetadataClass metadataClass, out MetadataStatistics metadataStatistics, ProcessedAttributes attributes)",FUNCTION_ID_SET_METADATA_VARYINGS:"setMetadataVaryings",FUNCTION_SIGNATURE_SET_METADATA_VARYINGS:"void setMetadataVaryings()",METADATA_CLASS_FIELDS:[{specName:"noData",shaderName:"noData"},{specName:"default",shaderName:"defaultValue"},{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"}],METADATA_STATISTICS_FIELDS:[{specName:"min",shaderName:"minValue"},{specName:"max",shaderName:"maxValue"},{specName:"mean",shaderName:"mean",type:"float"},{specName:"median",shaderName:"median"},{specName:"standardDeviation",shaderName:"standardDeviation",type:"float"},{specName:"variance",shaderName:"variance",type:"float"},{specName:"sum",shaderName:"sum"}]};bi.process=function(e,t,n){let{shaderBuilder:i,model:o}=e,{structuralMetadata:r={},content:s}=o,a=s?.tileset.metadataExtension?.statistics,c=P8e(r.propertyAttributes,t,a),u=O8e(r.propertyTextures,a),f=c.concat(u);L8e(i,f),B8e(i),i.addVertexLines(c2),i.addFragmentLines(a2);for(let d=0;d<c.length;d++){let p=c[d];k8e(e,p)}for(let d=0;d<u.length;d++){let p=u[d];U8e(e,p)}};function P8e(e,t,n){return l(e)?e.flatMap(i=>R8e(i,t,n)):[]}function R8e(e,t,n){let{getAttributeByName:i,getAttributeInfo:o,sanitizeGlslIdentifier:r}=Zt,s=e.class.id,a=n?.classes[s],c=Object.entries(e.properties),u=new Array(c.length);for(let f=0;f<c.length;f++){let[d,p]=c[f],g=i(t,p.attribute),{glslType:m,variableName:x}=o(g);u[f]={metadataVariable:r(d),property:p,type:p.classProperty.type,glslType:m,variableName:x,propertyStatistics:a?.properties[d],shaderDestination:pe.BOTH}}return u}function O8e(e,t){return l(e)?e.flatMap(n=>M8e(n,t)):[]}function M8e(e,t){let{sanitizeGlslIdentifier:n}=Zt,i=e.class.id,o=t?.classes[i],r=Object.entries(e.properties).filter(([a,c])=>c.isGpuCompatible()),s=new Array(r.length);for(let a=0;a<r.length;a++){let[c,u]=r[a];s[a]={metadataVariable:n(c),property:u,type:u.classProperty.type,glslType:u.getGlslType(),propertyStatistics:o?.properties[c],shaderDestination:pe.FRAGMENT}}return s}function L8e(e,t){let n=new Set,i=new Set;for(let a=0;a<t.length;a++){let{type:c,glslType:u,propertyStatistics:f}=t[a];n.add(u),l(f)&&c!==Et.ENUM&&i.add(u)}let o=bi.METADATA_CLASS_FIELDS;for(let a of n){let c=`${a}MetadataClass`;s(c,a,o)}let r=bi.METADATA_STATISTICS_FIELDS;for(let a of i){let c=`${a}MetadataStatistics`;s(c,a,r)}function s(a,c,u){e.addStruct(a,a,pe.BOTH);for(let f=0;f<u.length;f++){let{shaderName:d}=u[f],p=u[f].type==="float"?F8e(c):c;e.addStructField(a,p,d)}}}var N8e={int:"float",ivec2:"vec2",ivec3:"vec3",ivec4:"vec4"};function F8e(e){let t=N8e[e];return l(t)?t:e}function B8e(e){e.addStruct(bi.STRUCT_ID_METADATA_VS,bi.STRUCT_NAME_METADATA,pe.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_FS,bi.STRUCT_NAME_METADATA,pe.FRAGMENT),e.addStruct(bi.STRUCT_ID_METADATA_CLASS_VS,bi.STRUCT_NAME_METADATA_CLASS,pe.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_CLASS_FS,bi.STRUCT_NAME_METADATA_CLASS,pe.FRAGMENT),e.addStruct(bi.STRUCT_ID_METADATA_STATISTICS_VS,bi.STRUCT_NAME_METADATA_STATISTICS,pe.VERTEX),e.addStruct(bi.STRUCT_ID_METADATA_STATISTICS_FS,bi.STRUCT_NAME_METADATA_STATISTICS,pe.FRAGMENT),e.addFunction(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,bi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.VERTEX),e.addFunction(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,bi.FUNCTION_SIGNATURE_INITIALIZE_METADATA,pe.FRAGMENT),e.addFunction(bi.FUNCTION_ID_SET_METADATA_VARYINGS,bi.FUNCTION_SIGNATURE_SET_METADATA_VARYINGS,pe.VERTEX)}function k8e(e,t){V8e(e,t),Xre(e.shaderBuilder,t),Kre(e.shaderBuilder,t)}function V8e(e,t){let{shaderBuilder:n}=e,{metadataVariable:i,property:o,glslType:r}=t,s=$re({valueExpression:`attributes.${t.variableName}`,renderResources:e,glslType:r,metadataVariable:i,shaderDestination:pe.BOTH,property:o});n.addStructField(bi.STRUCT_ID_METADATA_VS,r,i),n.addStructField(bi.STRUCT_ID_METADATA_FS,r,i);let a=`metadata.${i} = ${s};`;n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,[a]),n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,[a])}function U8e(e,t){z8e(e,t),Xre(e.shaderBuilder,t),Kre(e.shaderBuilder,t)}function z8e(e,t){let{shaderBuilder:n,uniformMap:i}=e,{metadataVariable:o,glslType:r,property:s}=t,{texCoord:a,channels:c,index:u,texture:f,transform:d}=s.textureReader,p=`u_propertyTexture_${u}`;i.hasOwnProperty(p)||(n.addUniform("sampler2D",p,pe.FRAGMENT),i[p]=()=>f),n.addStructField(bi.STRUCT_ID_METADATA_FS,r,o);let g=`attributes.texCoord_${a}`,m=g;if(l(d)&&!$.equals(d,$.IDENTITY)){let C=`${p}Transform`;n.addUniform("mat3",C,pe.FRAGMENT),i[C]=function(){return d},m=`vec2(${C} * vec3(${g}, 1.0))`}let x=`texture(${p}, ${m}).${c}`,b=s.unpackInShader(x),T=$re({valueExpression:b,renderResources:e,glslType:r,metadataVariable:o,shaderDestination:pe.FRAGMENT,property:s}),A=`metadata.${o} = ${T};`;n.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,[A])}function Xre(e,t){let{classProperty:n}=t.property,{metadataVariable:i,glslType:o,shaderDestination:r}=t,s=Zre(bi.METADATA_CLASS_FIELDS,n,`metadataClass.${i}`,o),a=`${o}MetadataClass`;e.addStructField(bi.STRUCT_ID_METADATA_CLASS_FS,a,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,s),pe.includesVertexShader(r)&&(e.addStructField(bi.STRUCT_ID_METADATA_CLASS_VS,a,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,s))}function Kre(e,t){let{propertyStatistics:n}=t;if(!l(n))return;let{metadataVariable:i,type:o,glslType:r}=t;if(o===Et.ENUM)return;let s=bi.METADATA_STATISTICS_FIELDS,a=`metadataStatistics.${i}`,c=Zre(s,n,a,r),u=`${r}MetadataStatistics`;e.addStructField(bi.STRUCT_ID_METADATA_STATISTICS_FS,u,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_FS,c),pe.includesVertexShader(t.shaderDestination)&&(e.addStructField(bi.STRUCT_ID_METADATA_STATISTICS_VS,u,i),e.addFunctionLines(bi.FUNCTION_ID_INITIALIZE_METADATA_VS,c))}function Zre(e,t,n,i){function o(r){let s=t[r.specName];if(l(s))return`${n}.${r.shaderName} = ${i}(${s});`}return l(t)?e.map(o).filter(l):[]}function $re(e){let{valueExpression:t,property:n}=e;if(!n.hasValueTransform)return t;let i=e.metadataVariable,o=`u_${i}_offset`,r=`u_${i}_scale`,{shaderBuilder:s,uniformMap:a}=e.renderResources,{glslType:c,shaderDestination:u}=e;s.addUniform(c,o,u),s.addUniform(c,r,u);let{offset:f,scale:d}=n;return a[o]=()=>f,a[r]=()=>d,`czm_valueTransform(${o}, ${r}, ${t})`}var md=bi;var H8e={INHERIT:0,OPAQUE:1,TRANSLUCENT:2},mx=Object.freeze(H8e);var ea={name:"CustomShaderPipelineStage",STRUCT_ID_ATTRIBUTES_VS:"AttributesVS",STRUCT_ID_ATTRIBUTES_FS:"AttributesFS",STRUCT_NAME_ATTRIBUTES:"Attributes",STRUCT_ID_VERTEX_INPUT:"VertexInput",STRUCT_NAME_VERTEX_INPUT:"VertexInput",STRUCT_ID_FRAGMENT_INPUT:"FragmentInput",STRUCT_NAME_FRAGMENT_INPUT:"FragmentInput",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS:"initializeInputStructVS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS:"void initializeInputStruct(out VertexInput vsInput, ProcessedAttributes attributes)",FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS:"initializeInputStructFS",FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS:"void initializeInputStruct(out FragmentInput fsInput, ProcessedAttributes attributes)",_oneTimeWarning:At};ea.process=function(e,t,n){let{shaderBuilder:i,model:o,alphaOptions:r}=e,{customShader:s}=o,{lightingModel:a,translucencyMode:c}=s;l(a)&&(e.lightingOptions.lightingModel=a),c===mx.TRANSLUCENT?r.pass=ve.TRANSLUCENT:c===mx.OPAQUE&&(r.pass=void 0);let u=Z8e(s,t);if(!u.customShaderEnabled)return;if(eGe(i,s,u),u.shouldComputePositionWC&&i.addDefine("COMPUTE_POSITION_WC_CUSTOM_SHADER",void 0,pe.BOTH),l(s.vertexShaderText)&&i.addDefine("HAS_CUSTOM_VERTEX_SHADER",void 0,pe.VERTEX),l(s.fragmentShaderText)){i.addDefine("HAS_CUSTOM_FRAGMENT_SHADER",void 0,pe.FRAGMENT);let p=Og.getDefineName(s.mode);i.addDefine(p,void 0,pe.FRAGMENT)}let f=s.uniforms;for(let p in f)if(f.hasOwnProperty(p)){let g=f[p];i.addUniform(g.type,p)}let d=s.varyings;for(let p in d)if(d.hasOwnProperty(p)){let g=d[p];i.addVarying(g,p)}e.uniformMap=xt(e.uniformMap,s.uniformMap)};function G8e(e){let t={};for(let n=0;n<e.length;n++){let i=Zt.getAttributeInfo(e[n]);t[i.variableName]=i}return t}var W8e={position:"vec3",normal:"vec3",tangent:"vec3",bitangent:"vec3",texCoord:"vec2",color:"vec4",joints:"ivec4",weights:"vec4"},j8e={position:"vec3(0.0)",normal:"vec3(0.0, 0.0, 1.0)",tangent:"vec3(1.0, 0.0, 0.0)",bitangent:"vec3(0.0, 1.0, 0.0)",texCoord:"vec2(0.0)",color:"vec4(1.0)",joints:"ivec4(0)",weights:"vec4(0.0)"};function Qre(e){let t=e.replace(/_[0-9]+$/,"");t=t.replace(/(MC|EC)$/,"");let n=W8e[t],i=j8e[t];if(l(n))return{attributeField:[n,e],value:i}}function q8e(e,t){if(!l(e.vertexShaderText))return{enabled:!1};let n=e.usedVariablesVertex.attributeSet,i=Jre(t,n,!1),o=ese(t,n,!1),r,s=[],a=[];for(let c in i){if(!i.hasOwnProperty(c))continue;let f=[i[c].glslType,c];s.push(f),r=`vsInput.attributes.${c} = attributes.${c};`,a.push(r)}for(let c=0;c<o.length;c++){let u=o[c],f=Qre(u);if(!l(f))return ea._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveVS",`Primitive is missing attribute ${u}, disabling custom vertex shader`),{enabled:!1};s.push(f.attributeField),r=`vsInput.attributes.${u} = ${f.value};`,a.push(r)}return{enabled:!0,attributeFields:s,initializationLines:a}}function Y8e(e){let t=[],n=[],i=e.usedVariablesFragment.attributeSet;return i.hasOwnProperty("positionWC")&&(t.push(["vec3","positionWC"]),n.push("fsInput.attributes.positionWC = attributes.positionWC;")),i.hasOwnProperty("positionEC")&&(t.push(["vec3","positionEC"]),n.push("fsInput.attributes.positionEC = attributes.positionEC;")),{attributeFields:t,initializationLines:n}}function X8e(e,t){if(!l(e.fragmentShaderText))return{enabled:!1};let n=e.usedVariablesFragment.attributeSet,i=Jre(t,n,!0),o=ese(t,n,!0),r,s=[],a=[];for(let u in i){if(!i.hasOwnProperty(u))continue;let d=[i[u].glslType,u];s.push(d),r=`fsInput.attributes.${u} = attributes.${u};`,a.push(r)}for(let u=0;u<o.length;u++){let f=o[u],d=Qre(f);if(!l(d))return ea._oneTimeWarning("CustomShaderPipelineStage.incompatiblePrimitiveFS",`Primitive is missing attribute ${f}, disabling custom fragment shader.`),{enabled:!1};s.push(d.attributeField),r=`fsInput.attributes.${f} = ${d.value};`,a.push(r)}let c=Y8e(e);return{enabled:!0,attributeFields:s.concat(c.attributeFields),initializationLines:c.initializationLines.concat(a)}}var K8e={positionWC:!0,positionEC:!0};function Jre(e,t,n){let i={};for(let o in e){if(!e.hasOwnProperty(o))continue;let r=e[o],s=o;n&&o==="normalMC"?s="normalEC":n&&o==="tangentMC"&&(s="tangentEC",r.glslType="vec3"),t.hasOwnProperty(s)&&(i[s]=r)}return i}function ese(e,t,n){let i=[];for(let o in t){if(!t.hasOwnProperty(o)||K8e.hasOwnProperty(o))continue;let r=o;n&&o==="normalEC"?r="normalMC":n&&o==="tangentEC"&&(r="tangentMC"),e.hasOwnProperty(r)||i.push(o)}return i}function Z8e(e,t){let n=G8e(t.attributes),i=q8e(e,n),o=X8e(e,n),s=e.usedVariablesFragment.attributeSet.hasOwnProperty("positionWC")&&o.enabled;return{vertexLines:i,fragmentLines:o,customShaderEnabled:i.enabled||o.enabled,shouldComputePositionWC:s}}function $8e(e,t){let n=ea.STRUCT_ID_ATTRIBUTES_VS;e.addStruct(n,ea.STRUCT_NAME_ATTRIBUTES,pe.VERTEX);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=ea.STRUCT_ID_VERTEX_INPUT,e.addStruct(n,ea.STRUCT_NAME_VERTEX_INPUT,pe.VERTEX),e.addStructField(n,ea.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,hx.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,md.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,md.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,md.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=ea.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_VS;e.addFunction(r,ea.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_VS,pe.VERTEX),e.addFunctionLines(r,o)}function Q8e(e,t){let n=ea.STRUCT_ID_ATTRIBUTES_FS;e.addStruct(n,ea.STRUCT_NAME_ATTRIBUTES,pe.FRAGMENT);let{attributeFields:i,initializationLines:o}=t;for(let s=0;s<i.length;s++){let[a,c]=i[s];e.addStructField(n,a,c)}n=ea.STRUCT_ID_FRAGMENT_INPUT,e.addStruct(n,ea.STRUCT_NAME_FRAGMENT_INPUT,pe.FRAGMENT),e.addStructField(n,ea.STRUCT_NAME_ATTRIBUTES,"attributes"),e.addStructField(n,hx.STRUCT_NAME_FEATURE_IDS,"featureIds"),e.addStructField(n,md.STRUCT_NAME_METADATA,"metadata"),e.addStructField(n,md.STRUCT_NAME_METADATA_CLASS,"metadataClass"),e.addStructField(n,md.STRUCT_NAME_METADATA_STATISTICS,"metadataStatistics");let r=ea.FUNCTION_ID_INITIALIZE_INPUT_STRUCT_FS;e.addFunction(r,ea.FUNCTION_SIGNATURE_INITIALIZE_INPUT_STRUCT_FS,pe.FRAGMENT),e.addFunctionLines(r,o)}var J8e=[];function eGe(e,t,n){let{vertexLines:i,fragmentLines:o}=n,r=J8e;i.enabled&&($8e(e,i),r.length=0,r.push("#line 0",t.vertexShaderText,i2),e.addVertexLines(r)),o.enabled&&(Q8e(e,o),r.length=0,r.push("#line 0",t.fragmentShaderText,o2),e.addFragmentLines(r))}var l2=ea;var yw={name:"DequantizationPipelineStage",FUNCTION_ID_DEQUANTIZATION_STAGE_VS:"dequantizationStage",FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS:"void dequantizationStage(inout ProcessedAttributes attributes)"};yw.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=l(o.classificationType);i.addDefine("USE_DEQUANTIZATION",void 0,pe.VERTEX),i.addFunction(yw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,yw.FUNCTION_SIGNATURE_DEQUANTIZATION_STAGE_VS,pe.VERTEX);let s=t.attributes;for(let a=0;a<s.length;a++){let c=s[a],u=c.quantization;if(!l(u))continue;let f=c.semantic===Ct.POSITION,d=c.semantic===Ct.TEXCOORD;if(r&&!f&&!d)continue;let p=Zt.getAttributeInfo(c);nGe(i,p),tGe(e,p)}};function tGe(e,t){let n=e.shaderBuilder,i=e.uniformMap,o=t.variableName,r=t.attribute.quantization;if(r.octEncoded){let s=`model_normalizationRange_${o}`;n.addUniform("float",s,pe.VERTEX),i[s]=function(){return r.normalizationRange}}else{let s=`model_quantizedVolumeOffset_${o}`,a=`model_quantizedVolumeStepSize_${o}`,c=t.glslType;n.addUniform(c,s,pe.VERTEX),n.addUniform(c,a,pe.VERTEX);let u=r.quantizedVolumeOffset,f=r.quantizedVolumeStepSize;/^color_\d+$/.test(o)&&(u=tse(u,0),f=tse(f,1)),i[s]=function(){return u},i[a]=function(){return f}}}function tse(e,t){return e instanceof oe?e:new oe(e.x,e.y,e.z,t)}function nGe(e,t){let n=t.variableName,i=t.attribute.quantization,o;i.octEncoded?o=iGe(n,i):o=oGe(n),e.addFunctionLines(yw.FUNCTION_ID_DEQUANTIZATION_STAGE_VS,[o])}function iGe(e,t){let n=`attributes.${e}`,i=`a_quantized_${e}`,o=`model_normalizationRange_${e}`,r=t.octEncodedZXY?".zxy":".xyz";return`${n} = czm_octDecode(${i}, ${o})${r};`}function oGe(e){let t=`attributes.${e}`,n=`a_quantized_${e}`,i=`model_quantizedVolumeOffset_${e}`,o=`model_quantizedVolumeStepSize_${e}`;return`${t} = ${i} + ${n} * ${o};`}var u2=yw;var f2=`void geometryStage(out ProcessedAttributes attributes) +{ + attributes.positionMC = v_positionMC; + attributes.positionEC = v_positionEC; + + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) + attributes.positionWC = v_positionWC; + #endif + + #ifdef HAS_NORMALS + // renormalize after interpolation + attributes.normalEC = normalize(v_normalEC); + #endif + + #ifdef HAS_TANGENTS + attributes.tangentEC = normalize(v_tangentEC); + #endif + + #ifdef HAS_BITANGENTS + attributes.bitangentEC = normalize(v_bitangentEC); + #endif + + // Everything else is dynamically generated in GeometryPipelineStage + setDynamicVaryings(attributes); +} +`;var d2=`vec4 geometryStage(inout ProcessedAttributes attributes, mat4 modelView, mat3 normal) +{ + vec4 computedPosition; + + // Compute positions in different coordinate systems + vec3 positionMC = attributes.positionMC; + v_positionMC = positionMC; + v_positionEC = (modelView * vec4(positionMC, 1.0)).xyz; + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + vec3 position2D = attributes.position2D; + vec3 positionEC = (u_modelView2D * vec4(position2D, 1.0)).xyz; + computedPosition = czm_projection * vec4(positionEC, 1.0); + #else + computedPosition = czm_projection * vec4(v_positionEC, 1.0); + #endif + + // Sometimes the custom shader and/or style needs this + #if defined(COMPUTE_POSITION_WC_CUSTOM_SHADER) || defined(COMPUTE_POSITION_WC_STYLE) || defined(COMPUTE_POSITION_WC_ATMOSPHERE) || defined(ENABLE_CLIPPING_POLYGONS) + // Note that this is a 32-bit position which may result in jitter on small + // scales. + v_positionWC = (czm_model * vec4(positionMC, 1.0)).xyz; + #endif + + #ifdef HAS_NORMALS + v_normalEC = normalize(normal * attributes.normalMC); + #endif + + #ifdef HAS_TANGENTS + v_tangentEC = normalize(normal * attributes.tangentMC); + #endif + + #ifdef HAS_BITANGENTS + v_bitangentEC = normalize(normal * attributes.bitangentMC); + #endif + + // All other varyings need to be dynamically generated in + // GeometryPipelineStage + setDynamicVaryings(attributes); + + return computedPosition; +} +`;var xw=`vec2 computeSt(float featureId) +{ + float stepX = model_textureStep.x; + float centerX = model_textureStep.y; + + #ifdef MULTILINE_BATCH_TEXTURE + float stepY = model_textureStep.z; + float centerY = model_textureStep.w; + + float xId = mod(featureId, model_textureDimensions.x); + float yId = floor(featureId / model_textureDimensions.x); + + return vec2(centerX + (xId * stepX), centerY + (yId * stepY)); + #else + return vec2(centerX + (featureId * stepX), 0.5); + #endif +} + +void selectedFeatureIdStage(out SelectedFeature feature, FeatureIds featureIds) +{ + int featureId = featureIds.SELECTED_FEATURE_ID; + + + if (featureId < model_featuresLength) + { + vec2 featureSt = computeSt(float(featureId)); + + feature.id = featureId; + feature.st = featureSt; + feature.color = texture(model_batchTexture, featureSt); + } + // Floating point comparisons can be unreliable in GLSL, so we + // increment the feature ID to make sure it's always greater + // then the model_featuresLength - a condition we check for in the + // pick ID, to avoid sampling the pick texture if the feature ID is + // greater than the number of features. + else + { + feature.id = model_featuresLength + 1; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + + #ifdef HAS_NULL_FEATURE_ID + if (featureId == model_nullFeatureId) { + feature.id = featureId; + feature.st = vec2(0.0); + feature.color = vec4(1.0); + } + #endif +} +`;var bw={name:"SelectedFeatureIdPipelineStage",STRUCT_ID_SELECTED_FEATURE:"SelectedFeature",STRUCT_NAME_SELECTED_FEATURE:"SelectedFeature"};bw.process=function(e,t,n){let i=e.shaderBuilder;e.hasPropertyTable=!0;let o=e.model,r=e.runtimeNode.node,s=rGe(o,r,t),a=s.shaderDestination;i.addDefine("HAS_SELECTED_FEATURE_ID",void 0,a),i.addDefine("SELECTED_FEATURE_ID",s.variableName,a),i.addDefine(s.featureIdDefine,void 0,a),sGe(i);let c=s.featureIds.nullFeatureId,u=e.uniformMap;l(c)&&(i.addDefine("HAS_NULL_FEATURE_ID",void 0,a),i.addUniform("int","model_nullFeatureId",a),u.model_nullFeatureId=function(){return c}),s.shaderDestination===pe.BOTH&&i.addVertexLines(xw),i.addFragmentLines(xw)};function nse(e){return e instanceof xn.FeatureIdTexture?"HAS_SELECTED_FEATURE_ID_TEXTURE":"HAS_SELECTED_FEATURE_ID_ATTRIBUTE"}function ise(e){return e instanceof xn.FeatureIdTexture?pe.FRAGMENT:pe.BOTH}function rGe(e,t,n){let i,o;return l(t.instances)&&(o=Zt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(o))?(i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:ise(o),featureIdDefine:nse(o)}):(o=Zt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),i=y(o.label,o.positionalLabel),{featureIds:o,variableName:i,shaderDestination:ise(o),featureIdDefine:nse(o)})}function sGe(e){e.addStructField(bw.STRUCT_ID_SELECTED_FEATURE,"int","id"),e.addStructField(bw.STRUCT_ID_SELECTED_FEATURE,"vec2","st"),e.addStructField(bw.STRUCT_ID_SELECTED_FEATURE,"vec4","color")}var px=bw;var Fs={name:"GeometryPipelineStage",STRUCT_ID_PROCESSED_ATTRIBUTES_VS:"ProcessedAttributesVS",STRUCT_ID_PROCESSED_ATTRIBUTES_FS:"ProcessedAttributesFS",STRUCT_NAME_PROCESSED_ATTRIBUTES:"ProcessedAttributes",FUNCTION_ID_INITIALIZE_ATTRIBUTES:"initializeAttributes",FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES:"void initializeAttributes(out ProcessedAttributes attributes)",FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS:"setDynamicVaryingsVS",FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS:"setDynamicVaryingsFS",FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS:"void setDynamicVaryings(inout ProcessedAttributes attributes)"};Fs.process=function(e,t,n){let{shaderBuilder:i,model:o}=e;i.addStruct(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"ProcessedAttributes",pe.VERTEX),i.addStruct(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"ProcessedAttributes",pe.FRAGMENT),i.addStruct(px.STRUCT_ID_SELECTED_FEATURE,px.STRUCT_NAME_SELECTED_FEATURE,pe.BOTH),i.addFunction(Fs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,Fs.FUNCTION_SIGNATURE_INITIALIZE_ATTRIBUTES,pe.VERTEX),i.addVarying("vec3","v_positionWC"),i.addVarying("vec3","v_positionEC"),i.addStructField(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionWC"),i.addStructField(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","positionEC"),i.addFunction(Fs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,Fs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.VERTEX),i.addFunction(Fs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,Fs.FUNCTION_SIGNATURE_SET_DYNAMIC_VARYINGS,pe.FRAGMENT),o.type===pr.TILE_PNTS&&i.addDefine("HAS_SRGB_COLOR",void 0,pe.FRAGMENT);let r=n.mode!==ne.SCENE3D&&!n.scene3DOnly&&o._projectTo2D,s=l(e.runtimeNode.node.instances),a=r&&!s,c=t.attributes.length;for(let u=0;u<c;u++){let f=t.attributes[u],d=on.getAttributeLocationCount(f.type),p=f.semantic===Ct.POSITION,g;d>1?(g=e.attributeIndex,e.attributeIndex+=d):p&&!a?g=0:g=e.attributeIndex++,aGe(e,f,g,d,r,s)}_Ge(i,t.attributes),t.primitiveType===Le.POINTS&&i.addDefine("PRIMITIVE_TYPE_POINTS"),i.addVertexLines(d2),i.addFragmentLines(f2)};function aGe(e,t,n,i,o,r){let s=e.shaderBuilder,a=Zt.getAttributeInfo(t),c=o&&!r;i>1?uGe(e,t,n,i):lGe(e,t,n,c),dGe(s,a,c),fGe(s,a),l(t.semantic)&&cGe(s,t),hGe(s,a,o),mGe(s,a,c),pGe(s,a)}function cGe(e,t){let{semantic:n,setIndex:i}=t;switch(n){case Ct.NORMAL:e.addDefine("HAS_NORMALS");break;case Ct.TANGENT:e.addDefine("HAS_TANGENTS");break;case Ct.FEATURE_ID:e.addDefine(`HAS${n}_${i}`);break;case Ct.TEXCOORD:case Ct.COLOR:e.addDefine(`HAS_${n}_${i}`)}}function lGe(e,t,n,i){let{quantization:o,semantic:r,setIndex:s}=t,{type:a,componentDatatype:c}=l(o)?o:t;r===Ct.FEATURE_ID&&s>=e.featureIdVertexAttributeSetIndex&&(e.featureIdVertexAttributeSetIndex=s+1);let u=r===Ct.POSITION,f=u?0:n,d=on.getNumberOfComponents(a),p={index:f,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,count:t.count,componentsPerAttribute:d,componentDatatype:c,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};if(e.attributes.push(p),!u||!i)return;let g=e.runtimePrimitive.positionBuffer2D,m={index:n,vertexBuffer:g,count:t.count,componentsPerAttribute:d,componentDatatype:X.FLOAT,offsetInBytes:0,strideInBytes:void 0,normalize:t.normalized};e.attributes.push(m)}function uGe(e,t,n,i){let{quantization:o,normalized:r}=t,{type:s,componentDatatype:a}=l(o)?o:t,u=on.getNumberOfComponents(s)/i,f=X.getSizeInBytes(a),d=u*f,p=t.byteStride;for(let g=0;g<i;g++){let m=t.byteOffset+g*d,x={index:n+g,vertexBuffer:t.buffer,componentsPerAttribute:u,componentDatatype:a,offsetInBytes:m,strideInBytes:p,normalize:r};e.attributes.push(x)}}function fGe(e,t){let n=t.variableName,i=`v_${n}`,o;n==="normalMC"?(i="v_normalEC",o=t.glslType):n==="tangentMC"?(o="vec3",i="v_tangentEC"):o=t.glslType,e.addVarying(o,i)}function dGe(e,t,n){let i=t.attribute.semantic,o=t.variableName,r,s;t.isQuantized?(r=`a_quantized_${o}`,s=t.quantizedGlslType):(r=`a_${o}`,s=t.glslType);let a=i===Ct.POSITION;a?e.setPositionAttribute(s,r):e.addAttribute(s,r),a&&n&&e.addAttribute("vec3","a_position2D")}function hGe(e,t,n){let i=Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,o=Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,{variableName:r,glslType:s}=t;r==="tangentMC"?(e.addStructField(i,"vec3","tangentMC"),e.addStructField(i,"float","tangentSignMC"),e.addStructField(o,"vec3","tangentEC")):r==="normalMC"?(e.addStructField(i,"vec3","normalMC"),e.addStructField(o,"vec3","normalEC")):(e.addStructField(i,s,r),e.addStructField(o,s,r)),r==="positionMC"&&n&&e.addStructField(i,"vec3","position2D")}function mGe(e,t,n){let i=Fs.FUNCTION_ID_INITIALIZE_ATTRIBUTES,o=t.variableName;if(o==="positionMC"&&n&&e.addFunctionLines(i,["attributes.position2D = a_position2D;"]),t.isQuantized)return;let s=[];o==="tangentMC"?(s.push("attributes.tangentMC = a_tangentMC.xyz;"),s.push("attributes.tangentSignMC = a_tangentMC.w;")):s.push(`attributes.${o} = a_${o};`),e.addFunctionLines(i,s)}function pGe(e,t){let{semantic:n,setIndex:i}=t.attribute;if(l(n)&&!l(i))return;let o=Fs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_VS,r=t.variableName,s=`v_${r} = attributes.${r};`;e.addFunctionLines(o,[s]),o=Fs.FUNCTION_ID_SET_DYNAMIC_VARYINGS_FS,s=`attributes.${r} = v_${r};`,e.addFunctionLines(o,[s])}function _Ge(e,t){let n=!1,i=!1;for(let o=0;o<t.length;o++){let r=t[o];r.semantic===Ct.NORMAL?n=!0:r.semantic===Ct.TANGENT&&(i=!0)}!n||!i||(e.addDefine("HAS_BITANGENTS"),e.addVarying("vec3","v_bitangentEC"),e.addStructField(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_VS,"vec3","bitangentMC"),e.addStructField(Fs.STRUCT_ID_PROCESSED_ATTRIBUTES_FS,"vec3","bitangentEC"))}var h2=Fs;var m2=`#ifdef USE_IBL_LIGHTING +vec3 computeIBL(vec3 position, vec3 normal, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + #if defined(DIFFUSE_IBL) || defined(SPECULAR_IBL) + // Environment maps were provided, use them for IBL + vec3 viewDirection = -normalize(position); + vec3 iblColor = textureIBL(viewDirection, normal, material); + return iblColor; + #endif + + return vec3(0.0); +} +#endif + +#ifdef USE_CLEARCOAT +vec3 addClearcoatReflection(vec3 baseLayerColor, vec3 position, vec3 lightDirection, vec3 lightColorHdr, czm_modelMaterial material) +{ + vec3 viewDirection = -normalize(position); + vec3 halfwayDirection = normalize(viewDirection + lightDirection); + vec3 normal = material.clearcoatNormal; + float NdotL = clamp(dot(normal, lightDirection), 0.001, 1.0); + + // clearcoatF0 = vec3(pow((ior - 1.0) / (ior + 1.0), 2.0)), but without KHR_materials_ior, ior is a constant 1.5. + vec3 f0 = vec3(0.04); + vec3 f90 = vec3(1.0); + // Note: clearcoat Fresnel computed with dot(n, v) instead of dot(v, h). + // This is to make it energy conserving with a simple layering function. + float NdotV = clamp(dot(normal, viewDirection), 0.0, 1.0); + vec3 F = fresnelSchlick2(f0, f90, NdotV); + + // compute specular reflection from direct lighting + float roughness = material.clearcoatRoughness; + float alphaRoughness = roughness * roughness; + float directStrength = computeDirectSpecularStrength(normal, lightDirection, viewDirection, halfwayDirection, alphaRoughness); + vec3 directReflection = F * directStrength * NdotL; + vec3 color = lightColorHdr * directReflection; + + #ifdef SPECULAR_IBL + // Find the direction in which to sample the environment map + vec3 reflectMC = normalize(model_iblReferenceFrameMatrix * reflect(-viewDirection, normal)); + vec3 iblColor = computeSpecularIBL(reflectMC, NdotV, f0, roughness); + color += iblColor * material.occlusion; + #endif + + float clearcoatFactor = material.clearcoatFactor; + vec3 clearcoatColor = color * clearcoatFactor; + + // Dim base layer based on transmission loss through clearcoat + return baseLayerColor * (1.0 - clearcoatFactor * F) + clearcoatColor; +} +#endif + +#if defined(LIGHTING_PBR) && defined(HAS_NORMALS) +vec3 computePbrLighting(in czm_modelMaterial material, in vec3 position) +{ + #ifdef USE_CUSTOM_LIGHT_COLOR + vec3 lightColorHdr = model_lightColorHdr; + #else + vec3 lightColorHdr = czm_lightColorHdr; + #endif + + vec3 viewDirection = -normalize(position); + vec3 normal = material.normalEC; + vec3 lightDirection = normalize(czm_lightDirectionEC); + + vec3 directLighting = czm_pbrLighting(viewDirection, normal, lightDirection, material); + vec3 directColor = lightColorHdr * directLighting; + + // Accumulate colors from base layer + vec3 color = directColor + material.emissive; + #ifdef USE_IBL_LIGHTING + color += computeIBL(position, normal, lightDirection, lightColorHdr, material); + #endif + + #ifdef USE_CLEARCOAT + color = addClearcoatReflection(color, position, lightDirection, lightColorHdr, material); + #endif + + return color; +} +#endif + +/** + * Compute the material color under the current lighting conditions. + * All other material properties are passed through so further stages + * have access to them. + * + * @param {czm_modelMaterial} material The material properties from {@MaterialStageFS} + * @param {ProcessedAttributes} attributes + */ +void lightingStage(inout czm_modelMaterial material, ProcessedAttributes attributes) +{ + #ifdef LIGHTING_PBR + #ifdef HAS_NORMALS + vec3 color = computePbrLighting(material, attributes.positionEC); + #else + vec3 color = material.diffuse * material.occlusion + material.emissive; + #endif + // In HDR mode, the frame buffer is in linear color space. The + // post-processing stages (see PostProcessStageCollection) will handle + // tonemapping. However, if HDR is not enabled, we must tonemap else large + // values may be clamped to 1.0 + #ifndef HDR + color = czm_pbrNeutralTonemapping(color); + #endif + #else // unlit + vec3 color = material.diffuse; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + // The colors resulting from point cloud styles are adjusted differently. + color = czm_gammaCorrect(color); + #elif !defined(HDR) + // If HDR is not enabled, the frame buffer stores sRGB colors rather than + // linear colors so the linear value must be converted. + color = czm_linearToSrgb(color); + #endif + + material.diffuse = color; +} +`;var gGe={UNLIT:0,PBR:1},vp=Object.freeze(gGe);var ose={name:"LightingPipelineStage"};ose.process=function(e,t){let{model:n,lightingOptions:i,shaderBuilder:o}=e;if(l(n.lightColor)){o.addDefine("USE_CUSTOM_LIGHT_COLOR",void 0,pe.FRAGMENT),o.addUniform("vec3","model_lightColorHdr",pe.FRAGMENT);let s=e.uniformMap;s.model_lightColorHdr=function(){return n.lightColor}}let{lightingModel:r}=i;r===vp.PBR?o.addDefine("LIGHTING_PBR",void 0,pe.FRAGMENT):o.addDefine("LIGHTING_UNLIT",void 0,pe.FRAGMENT),o.addFragmentLines(m2)};var p2=ose;var _2=`// If the style color is white, it implies the feature has not been styled. +bool isDefaultStyleColor(vec3 color) +{ + return all(greaterThan(color, vec3(1.0 - czm_epsilon3))); +} + +vec3 blend(vec3 sourceColor, vec3 styleColor, float styleColorBlend) +{ + vec3 blendColor = mix(sourceColor, styleColor, styleColorBlend); + vec3 color = isDefaultStyleColor(styleColor.rgb) ? sourceColor : blendColor; + return color; +} + +vec2 computeTextureTransform(vec2 texCoord, mat3 textureTransform) +{ + return vec2(textureTransform * vec3(texCoord, 1.0)); +} + +#ifdef HAS_NORMAL_TEXTURE +vec2 getNormalTexCoords() +{ + vec2 texCoord = TEXCOORD_NORMAL; + #ifdef HAS_NORMAL_TEXTURE_TRANSFORM + texCoord = vec2(u_normalTextureTransform * vec3(texCoord, 1.0)); + #endif + return texCoord; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) || defined(HAS_CLEARCOAT_NORMAL_TEXTURE) +vec3 computeTangent(in vec3 position, in vec2 normalTexCoords) +{ + vec2 tex_dx = dFdx(normalTexCoords); + vec2 tex_dy = dFdy(normalTexCoords); + float determinant = tex_dx.x * tex_dy.y - tex_dy.x * tex_dx.y; + vec3 tangent = tex_dy.t * dFdx(position) - tex_dx.t * dFdy(position); + return tangent / determinant; +} +#endif + +#ifdef USE_ANISOTROPY +struct NormalInfo { + vec3 tangent; + vec3 bitangent; + vec3 normal; + vec3 geometryNormal; +}; + +NormalInfo getNormalInfo(ProcessedAttributes attributes) +{ + vec3 geometryNormal = attributes.normalEC; + #ifdef HAS_NORMAL_TEXTURE + vec2 normalTexCoords = getNormalTexCoords(); + #endif + + #ifdef HAS_BITANGENTS + vec3 tangent = attributes.tangentEC; + vec3 bitangent = attributes.bitangentEC; + #else // Assume HAS_NORMAL_TEXTURE + vec3 tangent = computeTangent(attributes.positionEC, normalTexCoords); + tangent = normalize(tangent - geometryNormal * dot(geometryNormal, tangent)); + vec3 bitangent = normalize(cross(geometryNormal, tangent)); + #endif + + #ifdef HAS_NORMAL_TEXTURE + mat3 tbn = mat3(tangent, bitangent, geometryNormal); + vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + vec3 normal = normalize(tbn * normalSample); + #else + vec3 normal = geometryNormal; + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + tangent *= -1.0; + bitangent *= -1.0; + normal *= -1.0; + geometryNormal *= -1.0; + } + #endif + + NormalInfo normalInfo; + normalInfo.tangent = tangent; + normalInfo.bitangent = bitangent; + normalInfo.normal = normal; + normalInfo.geometryNormal = geometryNormal; + + return normalInfo; +} +#endif + +#if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) +vec3 getNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = getNormalTexCoords(); + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + vec3 normalSample = texture(u_normalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_normalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_CLEARCOAT_NORMAL_TEXTURE +vec3 getClearcoatNormalFromTexture(ProcessedAttributes attributes, vec3 geometryNormal) +{ + vec2 normalTexCoords = TEXCOORD_CLEARCOAT_NORMAL; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_TRANSFORM + normalTexCoords = vec2(u_clearcoatNormalTextureTransform * vec3(normalTexCoords, 1.0)); + #endif + + // If HAS_BITANGENTS is set, then HAS_TANGENTS is also set + #ifdef HAS_BITANGENTS + vec3 t = attributes.tangentEC; + vec3 b = attributes.bitangentEC; + #else + vec3 t = computeTangent(attributes.positionEC, normalTexCoords); + t = normalize(t - geometryNormal * dot(geometryNormal, t)); + vec3 b = normalize(cross(geometryNormal, t)); + #endif + + mat3 tbn = mat3(t, b, geometryNormal); + vec3 normalSample = texture(u_clearcoatNormalTexture, normalTexCoords).rgb; + normalSample = 2.0 * normalSample - 1.0; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE_SCALE + normalSample.xy *= u_clearcoatNormalTextureScale; + #endif + return normalize(tbn * normalSample); +} +#endif + +#ifdef HAS_NORMALS +vec3 computeNormal(ProcessedAttributes attributes) +{ + // Geometry normal. This is already normalized + vec3 normal = attributes.normalEC; + + #if defined(HAS_NORMAL_TEXTURE) && !defined(HAS_WIREFRAME) + normal = getNormalFromTexture(attributes, normal); + #endif + + #ifdef HAS_DOUBLE_SIDED_MATERIAL + if (czm_backFacing()) { + normal = -normal; + } + #endif + + return normal; +} +#endif + +#ifdef HAS_BASE_COLOR_TEXTURE +vec4 getBaseColorFromTexture() +{ + vec2 baseColorTexCoords = TEXCOORD_BASE_COLOR; + #ifdef HAS_BASE_COLOR_TEXTURE_TRANSFORM + baseColorTexCoords = computeTextureTransform(baseColorTexCoords, u_baseColorTextureTransform); + #endif + + vec4 baseColorWithAlpha = czm_srgbToLinear(texture(u_baseColorTexture, baseColorTexCoords)); + + #ifdef HAS_BASE_COLOR_FACTOR + baseColorWithAlpha *= u_baseColorFactor; + #endif + + return baseColorWithAlpha; +} +#endif + +#ifdef HAS_EMISSIVE_TEXTURE +vec3 getEmissiveFromTexture() +{ + vec2 emissiveTexCoords = TEXCOORD_EMISSIVE; + #ifdef HAS_EMISSIVE_TEXTURE_TRANSFORM + emissiveTexCoords = computeTextureTransform(emissiveTexCoords, u_emissiveTextureTransform); + #endif + + vec3 emissive = czm_srgbToLinear(texture(u_emissiveTexture, emissiveTexCoords).rgb); + #ifdef HAS_EMISSIVE_FACTOR + emissive *= u_emissiveFactor; + #endif + + return emissive; +} +#endif + +#if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) +void setSpecularGlossiness(inout czm_modelMaterial material) +{ + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE + vec2 specularGlossinessTexCoords = TEXCOORD_SPECULAR_GLOSSINESS; + #ifdef HAS_SPECULAR_GLOSSINESS_TEXTURE_TRANSFORM + specularGlossinessTexCoords = computeTextureTransform(specularGlossinessTexCoords, u_specularGlossinessTextureTransform); + #endif + + vec4 specularGlossiness = czm_srgbToLinear(texture(u_specularGlossinessTexture, specularGlossinessTexCoords)); + vec3 specular = specularGlossiness.rgb; + float glossiness = specularGlossiness.a; + #ifdef HAS_LEGACY_SPECULAR_FACTOR + specular *= u_legacySpecularFactor; + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + glossiness *= u_glossinessFactor; + #endif + #else + #ifdef HAS_LEGACY_SPECULAR_FACTOR + vec3 specular = clamp(u_legacySpecularFactor, vec3(0.0), vec3(1.0)); + #else + vec3 specular = vec3(1.0); + #endif + + #ifdef HAS_GLOSSINESS_FACTOR + float glossiness = clamp(u_glossinessFactor, 0.0, 1.0); + #else + float glossiness = 1.0; + #endif + #endif + + #ifdef HAS_DIFFUSE_TEXTURE + vec2 diffuseTexCoords = TEXCOORD_DIFFUSE; + #ifdef HAS_DIFFUSE_TEXTURE_TRANSFORM + diffuseTexCoords = computeTextureTransform(diffuseTexCoords, u_diffuseTextureTransform); + #endif + + vec4 diffuse = czm_srgbToLinear(texture(u_diffuseTexture, diffuseTexCoords)); + #ifdef HAS_DIFFUSE_FACTOR + diffuse *= u_diffuseFactor; + #endif + #elif defined(HAS_DIFFUSE_FACTOR) + vec4 diffuse = clamp(u_diffuseFactor, vec4(0.0), vec4(1.0)); + #else + vec4 diffuse = vec4(1.0); + #endif + + material.diffuse = diffuse.rgb * (1.0 - czm_maximumComponent(specular)); + // the specular glossiness extension's alpha overrides anything set + // by the base material. + material.alpha = diffuse.a; + + material.specular = specular; + + // glossiness is the opposite of roughness, but easier for artists to use. + material.roughness = 1.0 - glossiness; +} +#elif defined(LIGHTING_PBR) +float setMetallicRoughness(inout czm_modelMaterial material) +{ + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE + vec2 metallicRoughnessTexCoords = TEXCOORD_METALLIC_ROUGHNESS; + #ifdef HAS_METALLIC_ROUGHNESS_TEXTURE_TRANSFORM + metallicRoughnessTexCoords = computeTextureTransform(metallicRoughnessTexCoords, u_metallicRoughnessTextureTransform); + #endif + + vec3 metallicRoughness = texture(u_metallicRoughnessTexture, metallicRoughnessTexCoords).rgb; + float metalness = clamp(metallicRoughness.b, 0.0, 1.0); + float roughness = clamp(metallicRoughness.g, 0.0, 1.0); + #ifdef HAS_METALLIC_FACTOR + metalness = clamp(metalness * u_metallicFactor, 0.0, 1.0); + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + roughness = clamp(roughness * u_roughnessFactor, 0.0, 1.0); + #endif + #else + #ifdef HAS_METALLIC_FACTOR + float metalness = clamp(u_metallicFactor, 0.0, 1.0); + #else + float metalness = 1.0; + #endif + + #ifdef HAS_ROUGHNESS_FACTOR + float roughness = clamp(u_roughnessFactor, 0.0, 1.0); + #else + float roughness = 1.0; + #endif + #endif + + // dielectrics use f0 = 0.04, metals use albedo as f0 + const vec3 REFLECTANCE_DIELECTRIC = vec3(0.04); + vec3 f0 = mix(REFLECTANCE_DIELECTRIC, material.baseColor.rgb, metalness); + + material.specular = f0; + + // diffuse only applies to dielectrics. + material.diffuse = mix(material.baseColor.rgb, vec3(0.0), metalness); + + // This is perceptual roughness. The square of this value is used for direct lighting + material.roughness = roughness; + + return metalness; +} +#ifdef USE_SPECULAR +void setSpecular(inout czm_modelMaterial material, in float metalness) +{ + #ifdef HAS_SPECULAR_TEXTURE + vec2 specularTexCoords = TEXCOORD_SPECULAR; + #ifdef HAS_SPECULAR_TEXTURE_TRANSFORM + specularTexCoords = computeTextureTransform(specularTexCoords, u_specularTextureTransform); + #endif + float specularWeight = texture(u_specularTexture, specularTexCoords).a; + #ifdef HAS_SPECULAR_FACTOR + specularWeight *= u_specularFactor; + #endif + #else + #ifdef HAS_SPECULAR_FACTOR + float specularWeight = u_specularFactor; + #else + float specularWeight = 1.0; + #endif + #endif + + #ifdef HAS_SPECULAR_COLOR_TEXTURE + vec2 specularColorTexCoords = TEXCOORD_SPECULAR_COLOR; + #ifdef HAS_SPECULAR_COLOR_TEXTURE_TRANSFORM + specularColorTexCoords = computeTextureTransform(specularColorTexCoords, u_specularColorTextureTransform); + #endif + vec3 specularColorSample = texture(u_specularColorTexture, specularColorTexCoords).rgb; + vec3 specularColorFactor = czm_srgbToLinear(specularColorSample); + #ifdef HAS_SPECULAR_COLOR_FACTOR + specularColorFactor *= u_specularColorFactor; + #endif + #else + #ifdef HAS_SPECULAR_COLOR_FACTOR + vec3 specularColorFactor = u_specularColorFactor; + #else + vec3 specularColorFactor = vec3(1.0); + #endif + #endif + material.specularWeight = specularWeight; + vec3 f0 = material.specular; + vec3 dielectricSpecularF0 = min(f0 * specularColorFactor, vec3(1.0)); + material.specular = mix(dielectricSpecularF0, material.baseColor.rgb, metalness); +} +#endif +#ifdef USE_ANISOTROPY +void setAnisotropy(inout czm_modelMaterial material, in NormalInfo normalInfo) +{ + mat2 rotation = mat2(u_anisotropy.xy, -u_anisotropy.y, u_anisotropy.x); + float anisotropyStrength = u_anisotropy.z; + + vec2 direction = vec2(1.0, 0.0); + #ifdef HAS_ANISOTROPY_TEXTURE + vec2 anisotropyTexCoords = TEXCOORD_ANISOTROPY; + #ifdef HAS_ANISOTROPY_TEXTURE_TRANSFORM + anisotropyTexCoords = computeTextureTransform(anisotropyTexCoords, u_anisotropyTextureTransform); + #endif + vec3 anisotropySample = texture(u_anisotropyTexture, anisotropyTexCoords).rgb; + direction = anisotropySample.rg * 2.0 - vec2(1.0); + anisotropyStrength *= anisotropySample.b; + #endif + + direction = rotation * direction; + mat3 tbn = mat3(normalInfo.tangent, normalInfo.bitangent, normalInfo.normal); + vec3 anisotropicT = tbn * normalize(vec3(direction, 0.0)); + vec3 anisotropicB = cross(normalInfo.geometryNormal, anisotropicT); + + material.anisotropicT = anisotropicT; + material.anisotropicB = anisotropicB; + material.anisotropyStrength = anisotropyStrength; +} +#endif +#ifdef USE_CLEARCOAT +void setClearcoat(inout czm_modelMaterial material, in ProcessedAttributes attributes) +{ + #ifdef HAS_CLEARCOAT_TEXTURE + vec2 clearcoatTexCoords = TEXCOORD_CLEARCOAT; + #ifdef HAS_CLEARCOAT_TEXTURE_TRANSFORM + clearcoatTexCoords = computeTextureTransform(clearcoatTexCoords, u_clearcoatTextureTransform); + #endif + float clearcoatFactor = texture(u_clearcoatTexture, clearcoatTexCoords).r; + #ifdef HAS_CLEARCOAT_FACTOR + clearcoatFactor *= u_clearcoatFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_FACTOR + float clearcoatFactor = u_clearcoatFactor; + #else + // PERFORMANCE_IDEA: this case should turn the whole extension off + float clearcoatFactor = 0.0; + #endif + #endif + + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE + vec2 clearcoatRoughnessTexCoords = TEXCOORD_CLEARCOAT_ROUGHNESS; + #ifdef HAS_CLEARCOAT_ROUGHNESS_TEXTURE_TRANSFORM + clearcoatRoughnessTexCoords = computeTextureTransform(clearcoatRoughnessTexCoords, u_clearcoatRoughnessTextureTransform); + #endif + float clearcoatRoughness = texture(u_clearcoatRoughnessTexture, clearcoatRoughnessTexCoords).g; + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + clearcoatRoughness *= u_clearcoatRoughnessFactor; + #endif + #else + #ifdef HAS_CLEARCOAT_ROUGHNESS_FACTOR + float clearcoatRoughness = u_clearcoatRoughnessFactor; + #else + float clearcoatRoughness = 0.0; + #endif + #endif + + material.clearcoatFactor = clearcoatFactor; + // This is perceptual roughness. The square of this value is used for direct lighting + material.clearcoatRoughness = clearcoatRoughness; + #ifdef HAS_CLEARCOAT_NORMAL_TEXTURE + material.clearcoatNormal = getClearcoatNormalFromTexture(attributes, attributes.normalEC); + #else + material.clearcoatNormal = attributes.normalEC; + #endif +} +#endif +#endif + +void materialStage(inout czm_modelMaterial material, ProcessedAttributes attributes, SelectedFeature feature) +{ + #ifdef USE_ANISOTROPY + NormalInfo normalInfo = getNormalInfo(attributes); + material.normalEC = normalInfo.normal; + #elif defined(HAS_NORMALS) + material.normalEC = computeNormal(attributes); + #endif + + vec4 baseColorWithAlpha = vec4(1.0); + // Regardless of whether we use PBR, set a base color + #ifdef HAS_BASE_COLOR_TEXTURE + baseColorWithAlpha = getBaseColorFromTexture(); + #elif defined(HAS_BASE_COLOR_FACTOR) + baseColorWithAlpha = u_baseColorFactor; + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + baseColorWithAlpha = v_pointCloudColor; + #elif defined(HAS_COLOR_0) + vec4 color = attributes.color_0; + // .pnts files store colors in the sRGB color space + #ifdef HAS_SRGB_COLOR + color = czm_srgbToLinear(color); + #endif + baseColorWithAlpha *= color; + #endif + + #ifdef USE_CPU_STYLING + baseColorWithAlpha.rgb = blend(baseColorWithAlpha.rgb, feature.color.rgb, model_colorBlend); + #endif + material.baseColor = baseColorWithAlpha; + material.diffuse = baseColorWithAlpha.rgb; + material.alpha = baseColorWithAlpha.a; + + #ifdef HAS_OCCLUSION_TEXTURE + vec2 occlusionTexCoords = TEXCOORD_OCCLUSION; + #ifdef HAS_OCCLUSION_TEXTURE_TRANSFORM + occlusionTexCoords = computeTextureTransform(occlusionTexCoords, u_occlusionTextureTransform); + #endif + material.occlusion = texture(u_occlusionTexture, occlusionTexCoords).r; + #endif + + #ifdef HAS_EMISSIVE_TEXTURE + material.emissive = getEmissiveFromTexture(); + #elif defined(HAS_EMISSIVE_FACTOR) + material.emissive = u_emissiveFactor; + #endif + + #if defined(LIGHTING_PBR) && defined(USE_SPECULAR_GLOSSINESS) + setSpecularGlossiness(material); + #elif defined(LIGHTING_PBR) + float metalness = setMetallicRoughness(material); + #ifdef USE_SPECULAR + setSpecular(material, metalness); + #endif + #ifdef USE_ANISOTROPY + setAnisotropy(material, normalInfo); + #endif + #ifdef USE_CLEARCOAT + setClearcoat(material, attributes); + #endif + #endif +} +`;var{Material:yGe,MetallicRoughness:_W,SpecularGlossiness:gW,Specular:rse,Clearcoat:sse}=xn,ase={name:"MaterialPipelineStage",_processTexture:xl,_processTextureTransform:cse};ase.process=function(e,t,n){let i=t.material,{model:o,uniformMap:r,shaderBuilder:s}=e,a=l(o.classificationType),c=a,{defaultTexture:u,defaultNormalTexture:f,defaultEmissiveTexture:d}=n.context;bGe(i,r,s,u,f,d,c),l(i.specularGlossiness)?TGe(i.specularGlossiness,r,s,u,c):(l(i.specular)&&Zt.supportedExtensions.KHR_materials_specular&&AGe(i.specular,r,s,u,c),l(i.anisotropy)&&Zt.supportedExtensions.KHR_materials_anisotropy&&EGe(i.anisotropy,r,s,u,c),l(i.clearcoat)&&Zt.supportedExtensions.KHR_materials_clearcoat&&SGe(i.clearcoat,r,s,u,c),vGe(i.metallicRoughness,r,s,u,c));let p=Zt.getAttributeBySemantic(t,Ct.NORMAL),g=e.lightingOptions;i.unlit||!p||a?g.lightingModel=vp.UNLIT:g.lightingModel=vp.PBR;let m=o.backFaceCulling&&!i.doubleSided;e.renderStateOptions.cull.enabled=m;let x=e.alphaOptions;i.alphaMode===gp.BLEND?x.pass=ve.TRANSLUCENT:i.alphaMode===gp.MASK&&(x.alphaCutoff=i.alphaCutoff),s.addFragmentLines(_2),i.doubleSided&&s.addDefine("HAS_DOUBLE_SIDED_MATERIAL",void 0,pe.BOTH)};function cse(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_TRANSFORM`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Transform`;e.addUniform("mat3",s,pe.FRAGMENT),t[s]=function(){return n.transform}}function xGe(e,t,n,i,o){let r=`HAS_${o}_TEXTURE_SCALE`;e.addDefine(r,void 0,pe.FRAGMENT);let s=`${i}Scale`;e.addUniform("float",s,pe.FRAGMENT),t[s]=function(){return n.scale}}function xl(e,t,n,i,o,r){e.addUniform("sampler2D",i,pe.FRAGMENT),t[i]=function(){return y(n.texture,r)};let s=`HAS_${o}_TEXTURE`;e.addDefine(s,void 0,pe.FRAGMENT);let c=`v_texCoord_${n.texCoord}`,u=`TEXCOORD_${o}`;e.addDefine(u,c,pe.FRAGMENT);let f=n.transform;l(f)&&!$.equals(f,$.IDENTITY)&&cse(e,t,n,i,o);let{scale:d}=n;l(d)&&d!==1&&xGe(e,t,n,i,o)}function bGe(e,t,n,i,o,r,s){let{emissiveFactor:a,emissiveTexture:c,normalTexture:u,occlusionTexture:f}=e;l(a)&&!h.equals(a,yGe.DEFAULT_EMISSIVE_FACTOR)&&(n.addUniform("vec3","u_emissiveFactor",pe.FRAGMENT),t.u_emissiveFactor=function(){return e.emissiveFactor},n.addDefine("HAS_EMISSIVE_FACTOR",void 0,pe.FRAGMENT),l(c)&&!s&&xl(n,t,c,"u_emissiveTexture","EMISSIVE",r)),l(u)&&!s&&xl(n,t,u,"u_normalTexture","NORMAL",o),l(f)&&!s&&xl(n,t,f,"u_occlusionTexture","OCCLUSION",i)}function TGe(e,t,n,i,o){let{diffuseTexture:r,diffuseFactor:s,specularGlossinessTexture:a,specularFactor:c,glossinessFactor:u}=e;n.addDefine("USE_SPECULAR_GLOSSINESS",void 0,pe.FRAGMENT),l(r)&&!o&&xl(n,t,r,"u_diffuseTexture","DIFFUSE",i),l(s)&&!oe.equals(s,gW.DEFAULT_DIFFUSE_FACTOR)&&(n.addUniform("vec4","u_diffuseFactor",pe.FRAGMENT),t.u_diffuseFactor=function(){return e.diffuseFactor},n.addDefine("HAS_DIFFUSE_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&xl(n,t,a,"u_specularGlossinessTexture","SPECULAR_GLOSSINESS",i),l(c)&&!h.equals(c,gW.DEFAULT_SPECULAR_FACTOR)&&(n.addUniform("vec3","u_legacySpecularFactor",pe.FRAGMENT),t.u_legacySpecularFactor=function(){return e.specularFactor},n.addDefine("HAS_LEGACY_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(u)&&u!==gW.DEFAULT_GLOSSINESS_FACTOR&&(n.addUniform("float","u_glossinessFactor",pe.FRAGMENT),t.u_glossinessFactor=function(){return e.glossinessFactor},n.addDefine("HAS_GLOSSINESS_FACTOR",void 0,pe.FRAGMENT))}function AGe(e,t,n,i,o){let{specularTexture:r,specularFactor:s,specularColorTexture:a,specularColorFactor:c}=e;n.addDefine("USE_SPECULAR",void 0,pe.FRAGMENT),l(r)&&!o&&xl(n,t,r,"u_specularTexture","SPECULAR",i),l(s)&&s!==rse.DEFAULT_SPECULAR_FACTOR&&(n.addUniform("float","u_specularFactor",pe.FRAGMENT),t.u_specularFactor=function(){return e.specularFactor},n.addDefine("HAS_SPECULAR_FACTOR",void 0,pe.FRAGMENT)),l(a)&&!o&&xl(n,t,a,"u_specularColorTexture","SPECULAR_COLOR",i),l(c)&&!h.equals(c,rse.DEFAULT_SPECULAR_COLOR_FACTOR)&&(n.addUniform("vec3","u_specularColorFactor",pe.FRAGMENT),t.u_specularColorFactor=function(){return e.specularColorFactor},n.addDefine("HAS_SPECULAR_COLOR_FACTOR",void 0,pe.FRAGMENT))}var CGe=new h;function EGe(e,t,n,i,o){let{anisotropyStrength:r,anisotropyRotation:s,anisotropyTexture:a}=e;n.addDefine("USE_ANISOTROPY",void 0,pe.FRAGMENT),l(a)&&!o&&xl(n,t,a,"u_anisotropyTexture","ANISOTROPY",i);let c=Math.cos(s),u=Math.sin(s);n.addUniform("vec3","u_anisotropy",pe.FRAGMENT),t.u_anisotropy=function(){return h.fromElements(c,u,r,CGe)}}function SGe(e,t,n,i,o){let{clearcoatFactor:r,clearcoatTexture:s,clearcoatRoughnessFactor:a,clearcoatRoughnessTexture:c,clearcoatNormalTexture:u}=e;n.addDefine("USE_CLEARCOAT",void 0,pe.FRAGMENT),l(r)&&r!==sse.DEFAULT_CLEARCOAT_FACTOR&&(n.addUniform("float","u_clearcoatFactor",pe.FRAGMENT),t.u_clearcoatFactor=function(){return e.clearcoatFactor},n.addDefine("HAS_CLEARCOAT_FACTOR",void 0,pe.FRAGMENT)),l(s)&&!o&&xl(n,t,s,"u_clearcoatTexture","CLEARCOAT",i),l(a)&&r!==sse.DEFAULT_CLEARCOAT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_clearcoatRoughnessFactor",pe.FRAGMENT),t.u_clearcoatRoughnessFactor=function(){return e.clearcoatRoughnessFactor},n.addDefine("HAS_CLEARCOAT_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT)),l(c)&&!o&&xl(n,t,c,"u_clearcoatRoughnessTexture","CLEARCOAT_ROUGHNESS",i),l(u)&&!o&&xl(n,t,u,"u_clearcoatNormalTexture","CLEARCOAT_NORMAL",i)}function vGe(e,t,n,i,o){n.addDefine("USE_METALLIC_ROUGHNESS",void 0,pe.FRAGMENT);let r=e.baseColorTexture;l(r)&&!o&&xl(n,t,r,"u_baseColorTexture","BASE_COLOR",i);let s=e.baseColorFactor;l(s)&&!oe.equals(s,_W.DEFAULT_BASE_COLOR_FACTOR)&&(n.addUniform("vec4","u_baseColorFactor",pe.FRAGMENT),t.u_baseColorFactor=function(){return e.baseColorFactor},n.addDefine("HAS_BASE_COLOR_FACTOR",void 0,pe.FRAGMENT));let a=e.metallicRoughnessTexture;l(a)&&!o&&xl(n,t,a,"u_metallicRoughnessTexture","METALLIC_ROUGHNESS",i);let c=e.metallicFactor;l(c)&&c!==_W.DEFAULT_METALLIC_FACTOR&&(n.addUniform("float","u_metallicFactor",pe.FRAGMENT),t.u_metallicFactor=function(){return e.metallicFactor},n.addDefine("HAS_METALLIC_FACTOR",void 0,pe.FRAGMENT));let u=e.roughnessFactor;l(u)&&u!==_W.DEFAULT_ROUGHNESS_FACTOR&&(n.addUniform("float","u_roughnessFactor",pe.FRAGMENT),t.u_roughnessFactor=function(){return e.roughnessFactor},n.addDefine("HAS_ROUGHNESS_FACTOR",void 0,pe.FRAGMENT))}var g2=ase;var Nc={name:"MetadataPickingPipelineStage",METADATA_PICKING_ENABLED:"METADATA_PICKING_ENABLED",METADATA_PICKING_VALUE_TYPE:"METADATA_PICKING_VALUE_TYPE",METADATA_PICKING_VALUE_STRING:"METADATA_PICKING_VALUE_STRING",METADATA_PICKING_VALUE_COMPONENT_X:"METADATA_PICKING_VALUE_COMPONENT_X",METADATA_PICKING_VALUE_COMPONENT_Y:"METADATA_PICKING_VALUE_COMPONENT_Y",METADATA_PICKING_VALUE_COMPONENT_Z:"METADATA_PICKING_VALUE_COMPONENT_Z",METADATA_PICKING_VALUE_COMPONENT_W:"METADATA_PICKING_VALUE_COMPONENT_W"};Nc.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine(Nc.METADATA_PICKING_VALUE_TYPE,"float",pe.FRAGMENT),i.addDefine(Nc.METADATA_PICKING_VALUE_STRING,"0.0",pe.FRAGMENT),i.addDefine(Nc.METADATA_PICKING_VALUE_COMPONENT_X,"0.0",pe.FRAGMENT),i.addDefine(Nc.METADATA_PICKING_VALUE_COMPONENT_Y,"0.0",pe.FRAGMENT),i.addDefine(Nc.METADATA_PICKING_VALUE_COMPONENT_Z,"0.0",pe.FRAGMENT),i.addDefine(Nc.METADATA_PICKING_VALUE_COMPONENT_W,"0.0",pe.FRAGMENT),i.addFunction("metadataPickingStage","void metadataPickingStage(Metadata metadata, MetadataClass metadataClass, inout vec4 metadataValues)",pe.FRAGMENT),i.addFunctionLines("metadataPickingStage",[`${Nc.METADATA_PICKING_VALUE_TYPE} value = ${Nc.METADATA_PICKING_VALUE_TYPE}(${Nc.METADATA_PICKING_VALUE_STRING});`,`metadataValues.x = ${Nc.METADATA_PICKING_VALUE_COMPONENT_X};`,`metadataValues.y = ${Nc.METADATA_PICKING_VALUE_COMPONENT_Y};`,`metadataValues.z = ${Nc.METADATA_PICKING_VALUE_COMPONENT_Z};`,`metadataValues.w = ${Nc.METADATA_PICKING_VALUE_COMPONENT_W};`],pe.FRAGMENT)};var lf=Nc;var y2=`void morphTargetsStage(inout ProcessedAttributes attributes) +{ + vec3 positionMC = attributes.positionMC; + attributes.positionMC = getMorphedPosition(positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = getMorphedNormal(normalMC); + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = getMorphedTangent(tangentMC); + #endif +}`;var Aa={name:"MorphTargetsPipelineStage",FUNCTION_ID_GET_MORPHED_POSITION:"getMorphedPosition",FUNCTION_SIGNATURE_GET_MORPHED_POSITION:"vec3 getMorphedPosition(in vec3 position)",FUNCTION_ID_GET_MORPHED_NORMAL:"getMorphedNormal",FUNCTION_SIGNATURE_GET_MORPHED_NORMAL:"vec3 getMorphedNormal(in vec3 normal)",FUNCTION_ID_GET_MORPHED_TANGENT:"getMorphedTangent",FUNCTION_SIGNATURE_GET_MORPHED_TANGENT:"vec3 getMorphedTangent(in vec3 tangent)"};Aa.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_MORPH_TARGETS",void 0,pe.VERTEX),OGe(n);let i=t.morphTargets.length;for(let a=0;a<i;a++){let c=t.morphTargets[a].attributes,u=c.length;for(let f=0;f<u;f++){let d=c[f],p=d.semantic;p!==Ct.POSITION&&p!==Ct.NORMAL&&p!==Ct.TANGENT||(DGe(e,d,e.attributeIndex,a),e.attributeIndex++)}}MGe(n);let r=e.runtimeNode.morphWeights.length;n.addUniform("float",`u_morphWeights[${r}]`,pe.VERTEX),n.addVertexLines(y2);let s={u_morphWeights:function(){return e.runtimeNode.morphWeights}};e.uniformMap=xt(s,e.uniformMap)};var wGe={attributeString:void 0,functionId:void 0};function DGe(e,t,n,i){let o=e.shaderBuilder;IGe(e,t,n);let r=PGe(t,wGe);RGe(o,r,i)}function IGe(e,t,n){let i={index:n,value:l(t.buffer)?void 0:t.constant,vertexBuffer:t.buffer,componentsPerAttribute:on.getNumberOfComponents(t.type),componentDatatype:t.componentDatatype,offsetInBytes:t.byteOffset,strideInBytes:t.byteStride,normalize:t.normalized};e.attributes.push(i)}function PGe(e,t){switch(e.semantic){case Ct.POSITION:t.attributeString="Position",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_POSITION;break;case Ct.NORMAL:t.attributeString="Normal",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_NORMAL;break;case Ct.TANGENT:t.attributeString="Tangent",t.functionId=Aa.FUNCTION_ID_GET_MORPHED_TANGENT;break;default:break}return t}function RGe(e,t,n){let i=t.attributeString,o=`a_target${i}_${n}`,r=`morphed${i} += u_morphWeights[${n}] * a_target${i}_${n};`;e.addAttribute("vec3",o),e.addFunctionLines(t.functionId,[r])}function OGe(e){e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_POSITION,Aa.FUNCTION_SIGNATURE_GET_MORPHED_POSITION,pe.VERTEX),e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_POSITION,["vec3 morphedPosition = position;"]),e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,Aa.FUNCTION_SIGNATURE_GET_MORPHED_NORMAL,pe.VERTEX),e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,["vec3 morphedNormal = normal;"]),e.addFunction(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,Aa.FUNCTION_SIGNATURE_GET_MORPHED_TANGENT,pe.VERTEX),e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,["vec3 morphedTangent = tangent;"])}function MGe(e){e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_POSITION,["return morphedPosition;"]),e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_NORMAL,["return morphedNormal;"]),e.addFunctionLines(Aa.FUNCTION_ID_GET_MORPHED_TANGENT,["return morphedTangent;"])}var x2=Aa;var lse={name:"PickingPipelineStage"};lse.process=function(e,t,n){let i=n.context,o=e.runtimeNode,r=e.shaderBuilder,s=e.model,a=o.node.instances;if(e.hasPropertyTable)LGe(e,t,a,i);else if(l(a))NGe(e,i);else{let c=use(e),u=i.createPickId(c);s._pipelineResources.push(u),s._pickIds.push(u),r.addUniform("vec4","czm_pickColor",pe.FRAGMENT);let f=e.uniformMap;f.czm_pickColor=function(){return u.color},e.pickId="czm_pickColor"}};function use(e,t){let n=e.model;if(l(n.pickObject))return n.pickObject;let i={model:n,node:e.runtimeNode,primitive:e.runtimePrimitive},o;if(pr.is3DTiles(n.type)){let r=n.content;o={content:r,primitive:r.tileset,detail:i}}else o={primitive:n,detail:i};return o.id=n.id,l(t)&&(o.instanceId=t),o}function LGe(e,t,n){let i=e.model,o,r,s=i.featureIdLabel,a=i.instanceFeatureIdLabel;l(i.featureTableId)?o=i.featureTableId:l(n)?(r=Zt.getFeatureIdsByLabel(n.featureIds,a),o=r.propertyTableId):(r=Zt.getFeatureIdsByLabel(t.featureIds,s),o=r.propertyTableId);let c=i.featureTables[o];e.shaderBuilder.addUniform("sampler2D","model_pickTexture",pe.FRAGMENT);let f=c.batchTexture;e.uniformMap.model_pickTexture=function(){return y(f.pickTexture,f.defaultTexture)},e.pickId="((selectedFeature.id < int(model_featuresLength)) ? texture(model_pickTexture, selectedFeature.st) : vec4(0.0))"}function NGe(e,t){let n=e.instanceCount,i=new Array(n),o=new Uint8Array(n*4),r=e.model,s=r._pipelineResources;for(let d=0;d<n;d++){let p=use(e,d),g=t.createPickId(p);s.push(g),i[d]=g;let m=g.color;o[d*4+0]=z.floatToByte(m.red),o[d*4+1]=z.floatToByte(m.green),o[d*4+2]=z.floatToByte(m.blue),o[d*4+3]=z.floatToByte(m.alpha)}r._pickIds=i;let a=yt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,r.statistics.addBuffer(a,!1),s.push(a);let u={index:e.attributeIndex++,vertexBuffer:a,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0,instanceDivisor:1};e.attributes.push(u);let f=e.shaderBuilder;f.addDefine("USE_PICKING",void 0,pe.BOTH),f.addAttribute("vec4","a_pickColor"),f.addVarying("vec4","v_pickColor"),e.pickId="v_pickColor"}var b2=lse;var FGe={ADD:0,REPLACE:1},jo=Object.freeze(FGe);var T2=`float getPointSizeFromAttenuation(vec3 positionEC) { + // Variables are packed into a single vector to minimize gl.uniformXXX() calls + float pointSize = model_pointCloudParameters.x; + float geometricError = model_pointCloudParameters.y; + float depthMultiplier = model_pointCloudParameters.z; + + float depth = -positionEC.z; + return min((geometricError / depth) * depthMultiplier, pointSize); +} + +#ifdef HAS_POINT_CLOUD_SHOW_STYLE +float pointCloudShowStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getShowFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#endif + +#ifdef HAS_POINT_CLOUD_COLOR_STYLE +vec4 pointCloudColorStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return getColorFromStyle(attributes, metadata, tiles3d_tileset_time); +} +#endif + +#ifdef HAS_POINT_CLOUD_POINT_SIZE_STYLE +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + float tiles3d_tileset_time = model_pointCloudParameters.w; + return float(getPointSizeFromStyle(attributes, metadata, tiles3d_tileset_time)); +} +#elif defined(HAS_POINT_CLOUD_ATTENUATION) +float pointCloudPointSizeStylingStage(in ProcessedAttributes attributes, in Metadata metadata) { + return getPointSizeFromAttenuation(v_positionEC); +} +#endif + +#ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING +float pointCloudBackFaceCullingStage() { + #if defined(HAS_NORMALS) && !defined(HAS_DOUBLE_SIDED_MATERIAL) + // This needs to be computed in eye coordinates so we can't use attributes.normalMC + return step(-v_normalEC.z, 0.0); + #else + return 1.0; + #endif +} +#endif`;var BGe=new oe,dse={name:"PointCloudStylingPipelineStage"};dse.process=function(e,t,n){let i=e.shaderBuilder,o=e.model,r=o.style,s=o.structuralMetadata,a=l(s)?s.propertyAttributes:void 0,c=l(o.featureTableId)&&o.featureTables[o.featureTableId].featuresLength>0,u=!l(a)&&c;if(l(r)&&!u){let x=zGe(a),b=HGe(r,x);GGe(i,b);let A=WGe(b).indexOf("normalMC")>=0,C=Zt.getAttributeBySemantic(t,Ct.NORMAL);if(A&&!C)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");i.addDefine("COMPUTE_POSITION_WC_STYLE",void 0,pe.VERTEX),b.styleTranslucent&&(e.alphaOptions.pass=ve.TRANSLUCENT)}let f=o.pointCloudShading;f.attenuation&&i.addDefine("HAS_POINT_CLOUD_ATTENUATION",void 0,pe.VERTEX),f.backFaceCulling&&i.addDefine("HAS_POINT_CLOUD_BACK_FACE_CULLING",void 0,pe.VERTEX);let d,p,g;pr.is3DTiles(o.type)&&(p=!0,d=o.content,g=d.tile.refine===jo.ADD),i.addUniform("vec4","model_pointCloudParameters",pe.VERTEX),i.addVertexLines(T2);let m=e.uniformMap;m.model_pointCloudParameters=function(){let x=BGe,b=1;p&&(b=g?5:d.tileset.memoryAdjustedScreenSpaceError),x.x=y(f.maximumAttenuation,b),x.x*=n.pixelRatio;let T=kGe(e,t,f,d);x.y=T*f.geometricErrorScale;let A=n.context,C=n.camera.frustum,S;return n.mode===ne.SCENE2D||C instanceof rn?S=Number.POSITIVE_INFINITY:S=A.drawingBufferHeight/n.camera.frustum.sseDenominator,x.z=S,p&&(x.w=d.tileset.timeSinceLoad),x}};var fse=new h;function kGe(e,t,n,i){if(l(i)){let f=i.tile.geometricError;if(f>0)return f}if(l(n.baseResolution))return n.baseResolution;let o=Zt.getAttributeBySemantic(t,Ct.POSITION),r=o.count,s=e.runtimeNode.transform,a=h.subtract(o.max,o.min,fse);a=F.multiplyByPointAsVector(s,a,fse);let c=a.x*a.y*a.z;return P.cbrt(c/r)}var VGe={colorStyleFunction:void 0,showStyleFunction:void 0,pointSizeStyleFunction:void 0,styleTranslucent:!1},UGe={POSITION:"attributes.positionMC",POSITION_ABSOLUTE:"v_positionWC",COLOR:"attributes.color_0",NORMAL:"attributes.normalMC"};function zGe(e){let t=Ge(UGe);if(!l(e))return t;for(let n=0;n<e.length;n++){let o=e[n].properties;for(let r in o)o.hasOwnProperty(r)&&(t[r]=`metadata.${r}`)}return t}var yW="ProcessedAttributes attributes, Metadata metadata, float tiles3d_tileset_time";function HGe(e,t){let n=VGe,i={translucent:!1};return n.colorStyleFunction=e.getColorShaderFunction(`getColorFromStyle(${yW})`,t,i),n.showStyleFunction=e.getShowShaderFunction(`getShowFromStyle(${yW})`,t,i),n.pointSizeStyleFunction=e.getPointSizeShaderFunction(`getPointSizeFromStyle(${yW})`,t,i),n.styleTranslucent=l(n.colorStyleFunction)&&i.translucent,n}function GGe(e,t){let n=t.colorStyleFunction;l(n)&&(e.addDefine("HAS_POINT_CLOUD_COLOR_STYLE",void 0,pe.BOTH),e.addVertexLines(n),e.addVarying("vec4","v_pointCloudColor"));let i=t.showStyleFunction;l(i)&&(e.addDefine("HAS_POINT_CLOUD_SHOW_STYLE",void 0,pe.VERTEX),e.addVertexLines(i));let o=t.pointSizeStyleFunction;l(o)&&(e.addDefine("HAS_POINT_CLOUD_POINT_SIZE_STYLE",void 0,pe.VERTEX),e.addVertexLines(o))}function xW(e,t){let n=/attributes\.(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function WGe(e){let t=e.colorStyleFunction,n=e.showStyleFunction,i=e.pointSizeStyleFunction,o=[];return l(t)&&xW(t,o),l(n)&&xW(n,o),l(i)&&xW(i,o),o}var A2=dse;var C2=`void primitiveOutlineStage() { + v_outlineCoordinates = a_outlineCoordinates; +} +`;var E2=`void primitiveOutlineStage(inout czm_modelMaterial material) { + if (!model_showOutline) { + return; + } + + float outlineX = + texture(model_outlineTexture, vec2(v_outlineCoordinates.x, 0.5)).r; + float outlineY = + texture(model_outlineTexture, vec2(v_outlineCoordinates.y, 0.5)).r; + float outlineZ = + texture(model_outlineTexture, vec2(v_outlineCoordinates.z, 0.5)).r; + float outlineness = max(outlineX, max(outlineY, outlineZ)); + + material.diffuse = mix(material.diffuse, model_outlineColor.rgb, model_outlineColor.a * outlineness); +} + +`;var hse={name:"PrimitiveOutlinePipelineStage"};hse.process=function(e,t,n){let i=e.shaderBuilder,o=e.uniformMap;i.addDefine("HAS_PRIMITIVE_OUTLINE",void 0,pe.BOTH),i.addAttribute("vec3","a_outlineCoordinates"),i.addVarying("vec3","v_outlineCoordinates");let r=t.outlineCoordinates,s={index:e.attributeIndex++,vertexBuffer:r.buffer,componentsPerAttribute:on.getNumberOfComponents(r.type),componentDatatype:r.componentDatatype,offsetInBytes:r.byteOffset,strideInBytes:r.byteStride,normalize:r.normalized};e.attributes.push(s),i.addUniform("sampler2D","model_outlineTexture",pe.FRAGMENT);let a=EA.createTexture(n.context);o.model_outlineTexture=function(){return a};let c=e.model;i.addUniform("vec4","model_outlineColor",pe.FRAGMENT),o.model_outlineColor=function(){return c.outlineColor},i.addUniform("bool","model_showOutline",pe.FRAGMENT),o.model_showOutline=function(){return c.showOutline},i.addVertexLines(C2),i.addFragmentLines(E2)};var S2=hse;var mse={name:"PrimitiveStatisticsPipelineStage",_countGeometry:pse,_count2DPositions:_se,_countMorphTargetAttributes:gse,_countMaterialTextures:yse,_countFeatureIdTextures:xse,_countBinaryMetadata:bse};mse.process=function(e,t,n){let i=e.model,o=i.statistics;pse(o,t),_se(o,e.runtimePrimitive),gse(o,t),yse(o,t.material),xse(o,t.featureIds),bse(o,i)};function pse(e,t){let n=l(t.indices)?t.indices.count:Zt.getAttributeBySemantic(t,"POSITION").count,i=t.primitiveType;i===Le.POINTS?e.pointsLength+=n:Le.isTriangles(i)&&(e.trianglesLength+=jGe(i,n));let o=t.attributes,r=o.length;for(let c=0;c<r;c++){let u=o[c];if(l(u.buffer)){let f=l(u.typedArray);e.addBuffer(u.buffer,f)}}let s=t.outlineCoordinates;l(s)&&l(s.buffer)&&e.addBuffer(s.buffer,!1);let a=t.indices;if(l(a)&&l(a.buffer)){let c=l(a.typedArray);e.addBuffer(a.buffer,c)}}function jGe(e,t){switch(e){case Le.TRIANGLES:return t/3;case Le.TRIANGLE_STRIP:case Le.TRIANGLE_FAN:return Math.max(t-2,0);default:return 0}}function _se(e,t){let n=t.positionBuffer2D;l(n)&&e.addBuffer(n,!0)}function gse(e,t){let n=t.morphTargets;if(!l(n))return;let i=!1,o=n.length;for(let r=0;r<o;r++){let s=n[r].attributes,a=s.length;for(let c=0;c<a;c++){let u=s[c];l(u.buffer)&&e.addBuffer(u.buffer,i)}}}function yse(e,t){let n=qGe(t),i=n.length;for(let o=0;o<i;o++){let r=n[o];l(r)&&l(r.texture)&&e.addTexture(r.texture)}}function qGe(e){let t=e.metallicRoughness,n=[e.emissiveTexture,e.normalTexture,e.occlusionTexture,t.baseColorTexture,t.metallicRoughnessTexture],i=e.specularGlossiness;return l(i)&&(n.push(i.diffuseTexture),n.push(i.specularGlossinessTexture)),n}function xse(e,t){let n=t.length;for(let i=0;i<n;i++){let o=t[i];if(o instanceof xn.FeatureIdTexture){let r=o.textureReader;l(r.texture)&&e.addTexture(r.texture)}}}function bse(e,t){let n=t.structuralMetadata;l(n)&&(YGe(e,n),e.propertyTablesByteLength+=n.propertyTablesByteLength);let i=t.featureTables;if(!l(i))return;let o=i.length;for(let r=0;r<o;r++){let s=i[r];e.addBatchTexture(s.batchTexture)}}function YGe(e,t){let n=t.propertyTextures;if(!l(n))return;let i=n.length;for(let o=0;o<i;o++){let s=n[o].properties;for(let a in s)if(s.hasOwnProperty(a)){let u=s[a].textureReader;l(u.texture)&&e.addTexture(u.texture)}}}var v2=mse;var XGe=new F,KGe=new F,Tse={name:"SceneMode2DPipelineStage"};Tse.process=function(e,t,n){let i=Zt.getAttributeBySemantic(t,Ct.POSITION),o=e.shaderBuilder,r=e.model,s=r.sceneGraph.computedModelMatrix,a=e.runtimeNode.computedTransform,c=F.multiplyTransformation(s,a,XGe),u=QGe(e,c,n),f=e.runtimePrimitive;f.boundingSphere2D=u;let d=e.runtimeNode.node.instances;if(l(d))return;if(l(i.typedArray)){let x=t5e(i,c,u,n);f.positionBuffer2D=x,r._modelResources.push(x),i.typedArray=void 0}o.addDefine("USE_2D_POSITIONS",void 0,pe.VERTEX),o.addUniform("mat4","u_modelView2D",pe.VERTEX);let p=F.fromTranslation(u.center,new F),g=n.context,m={u_modelView2D:function(){return F.multiplyTransformation(g.uniformState.view,p,KGe)}};e.uniformMap=xt(m,e.uniformMap)};var ZGe=new h,$Ge=new h;function QGe(e,t,n){let i=F.multiplyByPoint(t,e.positionMin,ZGe),o=Vi.computeActualEllipsoidPosition(n,i,i),r=F.multiplyByPoint(t,e.positionMax,$Ge),s=Vi.computeActualEllipsoidPosition(n,r,r);return se.fromCornerPoints(o,s,new se)}var Ase=new h;function JGe(e,t){let n=e.length,i=new Float32Array(n),o=t.quantizedVolumeOffset,r=t.quantizedVolumeStepSize;for(let s=0;s<n;s+=3){let a=h.fromArray(e,s,Ase),c=h.multiplyComponents(a,r,a),u=h.add(c,o,c);i[s]=u.x,i[s+1]=u.y,i[s+2]=u.z}return i}function e5e(e,t,n,i){let o;l(e.quantization)?o=JGe(e.typedArray,e.quantization):o=e.typedArray.slice();let r=e.byteOffset/Float32Array.BYTES_PER_ELEMENT,s=o.length,a=l(e.byteStride)?e.byteStride/Float32Array.BYTES_PER_ELEMENT:3;for(let c=r;c<s;c+=a){let u=h.fromArray(o,c,Ase);if(isNaN(u.x)||isNaN(u.y)||isNaN(u.z))continue;let f=F.multiplyByPoint(t,u,u),d=Vi.computeActualEllipsoidPosition(i,f,f),p=h.subtract(d,n,d);o[c]=p.x,o[c+1]=p.y,o[c+2]=p.z}return o}function t5e(e,t,n,i){let o=Ge(i);o.mode=ne.COLUMBUS_VIEW;let r=n.center,s=e5e(e,t,r,o),a=yt.createVertexBuffer({context:i.context,typedArray:s,usage:Fe.STATIC_DRAW});return a.vertexArrayDestroyable=!1,a}var w2=Tse;var D2=`void skinningStage(inout ProcessedAttributes attributes) +{ + mat4 skinningMatrix = getSkinningMatrix(); + mat3 skinningMatrixMat3 = mat3(skinningMatrix); + + vec4 positionMC = vec4(attributes.positionMC, 1.0); + attributes.positionMC = vec3(skinningMatrix * positionMC); + + #ifdef HAS_NORMALS + vec3 normalMC = attributes.normalMC; + attributes.normalMC = skinningMatrixMat3 * normalMC; + #endif + + #ifdef HAS_TANGENTS + vec3 tangentMC = attributes.tangentMC; + attributes.tangentMC = skinningMatrixMat3 * tangentMC; + #endif +}`;var _x={name:"SkinningPipelineStage",FUNCTION_ID_GET_SKINNING_MATRIX:"getSkinningMatrix",FUNCTION_SIGNATURE_GET_SKINNING_MATRIX:"mat4 getSkinningMatrix()"};_x.process=function(e,t){let n=e.shaderBuilder;n.addDefine("HAS_SKINNING",void 0,pe.VERTEX),i5e(n,t);let i=e.runtimeNode,o=i.computedJointMatrices;n.addUniform("mat4",`u_jointMatrices[${o.length}]`,pe.VERTEX),n.addVertexLines(D2);let r={u_jointMatrices:function(){return i.computedJointMatrices}};e.uniformMap=xt(r,e.uniformMap)};function n5e(e){let t=-1,n=e.attributes,i=n.length;for(let o=0;o<i;o++){let r=n[o];(r.semantic===Ct.JOINTS||r.semantic===Ct.WEIGHTS)&&(t=Math.max(t,r.setIndex))}return t}function i5e(e,t){e.addFunction(_x.FUNCTION_ID_GET_SKINNING_MATRIX,_x.FUNCTION_SIGNATURE_GET_SKINNING_MATRIX,pe.VERTEX),e.addFunctionLines(_x.FUNCTION_ID_GET_SKINNING_MATRIX,["mat4 skinnedMatrix = mat4(0);"]);let i,o,r=["x","y","z","w"],s=n5e(t);for(i=0;i<=s;i++)for(o=0;o<=3;o++){let c=r[o],u=`skinnedMatrix += a_weights_${i}.${c} * u_jointMatrices[int(a_joints_${i}.${c})];`;e.addFunctionLines(_x.FUNCTION_ID_GET_SKINNING_MATRIX,[u])}e.addFunctionLines(_x.FUNCTION_ID_GET_SKINNING_MATRIX,["return skinnedMatrix;"])}var I2=_x;var P2=`void verticalExaggerationStage( + inout ProcessedAttributes attributes +) { + // Compute the distance from the camera to the local center of curvature. + vec4 vertexPositionENU = czm_modelToEnu * vec4(attributes.positionMC, 1.0); + vec2 vertexAzimuth = normalize(vertexPositionENU.xy); + // Curvature = 1 / radius of curvature. + float azimuthalCurvature = dot(vertexAzimuth * vertexAzimuth, czm_eyeEllipsoidCurvature); + float eyeToCenter = 1.0 / azimuthalCurvature + czm_eyeHeight; + + // Compute the approximate ellipsoid normal at the vertex position. + // Uses a circular approximation for the Earth curvature along the geodesic. + vec3 vertexPositionEC = (czm_modelView * vec4(attributes.positionMC, 1.0)).xyz; + vec3 centerToVertex = eyeToCenter * czm_eyeEllipsoidNormalEC + vertexPositionEC; + vec3 vertexNormal = normalize(centerToVertex); + + // Estimate the (sine of the) angle between the camera direction and the vertex normal + float verticalDistance = dot(vertexPositionEC, czm_eyeEllipsoidNormalEC); + float horizontalDistance = length(vertexPositionEC - verticalDistance * czm_eyeEllipsoidNormalEC); + float sinTheta = horizontalDistance / (eyeToCenter + verticalDistance); + bool isSmallAngle = clamp(sinTheta, 0.0, 0.05) == sinTheta; + + // Approximate the change in height above the ellipsoid, from camera to vertex position. + float exactVersine = 1.0 - dot(czm_eyeEllipsoidNormalEC, vertexNormal); + float smallAngleVersine = 0.5 * sinTheta * sinTheta; + float versine = isSmallAngle ? smallAngleVersine : exactVersine; + float dHeight = dot(vertexPositionEC, vertexNormal) - eyeToCenter * versine; + float vertexHeight = czm_eyeHeight + dHeight; + + // Transform the approximate vertex normal to model coordinates. + vec3 vertexNormalMC = (czm_inverseModelView * vec4(vertexNormal, 0.0)).xyz; + vertexNormalMC = normalize(vertexNormalMC); + + // Compute the exaggeration and apply it along the approximate vertex normal. + float stretch = u_verticalExaggerationAndRelativeHeight.x; + float shift = u_verticalExaggerationAndRelativeHeight.y; + float exaggeration = (vertexHeight - shift) * (stretch - 1.0); + attributes.positionMC += exaggeration * vertexNormalMC; +} +`;var Cse={name:"VerticalExaggerationPipelineStage"},o5e=new U;Cse.process=function(e,t,n){let{shaderBuilder:i,uniformMap:o}=e;i.addVertexLines(P2),i.addDefine("HAS_VERTICAL_EXAGGERATION",void 0,pe.VERTEX),i.addUniform("vec2","u_verticalExaggerationAndRelativeHeight",pe.VERTEX),o.u_verticalExaggerationAndRelativeHeight=function(){return U.fromElements(n.verticalExaggeration,n.verticalExaggerationRelativeHeight,o5e)}};var R2=Cse;var bW={};function r5e(e){let t=Ne.createTypedArray(e,e*2),n=e,i=0;for(let o=0;o<n;o+=3)t[i++]=o,t[i++]=o+1,t[i++]=o+1,t[i++]=o+2,t[i++]=o+2,t[i++]=o;return t}function s5e(e,t){let n=t.length,i=Ne.createTypedArray(e,n*2),o=0;for(let r=0;r<n;r+=3){let s=t[r],a=t[r+1],c=t[r+2];i[o++]=s,i[o++]=a,i[o++]=a,i[o++]=c,i[o++]=c,i[o++]=s}return i}function a5e(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=r;return i}function c5e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0;r[s++]=t[0],r[s++]=t[1];for(let a=0;a<i;a++){let c=t[a],u=t[a+1],f=t[a+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=c}return r}function l5e(e){let t=e-2,n=2+t*4,i=Ne.createTypedArray(e,n),o=0;i[o++]=0,i[o++]=1;for(let r=0;r<t;r++)i[o++]=r+1,i[o++]=r+2,i[o++]=r+2,i[o++]=0;return i}function u5e(e,t){let i=t.length-2,o=2+i*4,r=Ne.createTypedArray(e,o),s=0,a=t[0];r[s++]=a,r[s++]=t[1];for(let c=0;c<i;c++){let u=t[c+1],f=t[c+2];r[s++]=u,r[s++]=f,r[s++]=f,r[s++]=a}return r}bW.createWireframeIndices=function(e,t,n){let i=l(n);if(e===Le.TRIANGLES)return i?s5e(t,n):r5e(t);if(e===Le.TRIANGLE_STRIP)return i?c5e(t,n):a5e(t);if(e===Le.TRIANGLE_FAN)return i?u5e(t,n):l5e(t)};bW.getWireframeIndicesCount=function(e,t){return e===Le.TRIANGLES?t*2:e===Le.TRIANGLE_STRIP||e===Le.TRIANGLE_FAN?2+(t-2)*4:t};var Tw=bW;var Ese={name:"WireframePipelineStage"};Ese.process=function(e,t,n){e.shaderBuilder.addDefine("HAS_WIREFRAME",void 0,pe.FRAGMENT);let o=e.model,r=f5e(t,e.indices,n);o._pipelineResources.push(r),e.wireframeIndexBuffer=r,o.statistics.addBuffer(r,!1);let a=e.primitiveType,c=e.count;e.primitiveType=Le.LINES,e.count=Tw.getWireframeIndicesCount(a,c)};function f5e(e,t,n){let o=Zt.getAttributeBySemantic(e,Ct.POSITION).count,r=n.context.webgl2,s;if(l(t)){let f=t.buffer,d=t.count;l(f)&&r?(s=f.sizeInBytes===d?new Uint8Array(d):Ne.createTypedArray(o,d),f.getBufferData(s)):s=t.typedArray}let a=e.primitiveType,c=Tw.createWireframeIndices(a,o,s),u=Ne.fromSizeInBytes(c.BYTES_PER_ELEMENT);return yt.createIndexBuffer({context:n.context,typedArray:c,usage:Fe.STATIC_DRAW,indexDatatype:u})}var O2=Ese;function Sse(e){e=y(e,y.EMPTY_OBJECT);let t=e.primitive,n=e.node,i=e.model;this.primitive=t,this.node=n,this.model=i,this.pipelineStages=[],this.drawCommand=void 0,this.boundingSphere=void 0,this.boundingSphere2D=void 0,this.positionBuffer2D=void 0,this.batchLengths=void 0,this.batchOffsets=void 0,this.updateStages=[]}Sse.prototype.configurePipeline=function(e){let t=this.pipelineStages;t.length=0;let n=this.primitive,i=this.node,o=this.model,r=o.customShader,s=o.style,a=e.context.webgl2,u=e.mode!==ne.SCENE3D&&!e.scene3DOnly&&o._projectTo2D,f=e.verticalExaggeration!==1&&o.hasVerticalExaggeration,d=l(n.morphTargets)&&n.morphTargets.length>0,p=l(i.skin),g=l(r),x=!(g&&l(r.fragmentShaderText))||r.mode!==Og.REPLACE_MATERIAL,b=Zt.hasQuantizedAttributes(n.attributes),T=o.debugWireframe&&Le.isTriangles(n.primitiveType)&&(o._enableDebugWireframe||a),A=o.pointCloudShading,C=l(A)&&A.attenuation,S=l(A)&&A.backFaceCulling,v=n.primitiveType===Le.POINTS&&(l(s)||C||S),D=o._enableShowOutline&&l(n.outlineCoordinates),O=d5e(o,i,n),R=l(o.classificationType);u&&t.push(w2),t.push(h2),T&&t.push(O2),R&&t.push(JF),d&&t.push(x2),p&&t.push(I2),v&&t.push(A2),b&&t.push(u2),x&&t.push(g2),t.push(hx),t.push(md),t.push(lf),O.hasPropertyTable&&(t.push(px),t.push(QF),t.push(n2)),f&&t.push(R2),g&&t.push(l2),t.push(p2),o.allowPicking&&t.push(b2),D&&t.push(S2),t.push($F),t.push(v2)};function d5e(e,t,n){let i;return l(t.instances)&&(i=Zt.getFeatureIdsByLabel(t.instances.featureIds,e.instanceFeatureIdLabel),l(i))?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:(i=Zt.getFeatureIdsByLabel(n.featureIds,e.featureIdLabel),l(i)?{hasFeatureIds:!0,hasPropertyTable:l(i.propertyTableId)}:{hasFeatureIds:!1,hasPropertyTable:!1})}var M2=Sse;function TW(e){e=y(e,y.EMPTY_OBJECT),this._sceneGraph=e.sceneGraph;let t=e.skin;this._skin=t,this._inverseBindMatrices=void 0,this._joints=[],this._jointMatrices=[],h5e(this)}Object.defineProperties(TW.prototype,{skin:{get:function(){return this._skin}},sceneGraph:{get:function(){return this._sceneGraph}},inverseBindMatrices:{get:function(){return this._inverseBindMatrices}},joints:{get:function(){return this._joints}},jointMatrices:{get:function(){return this._jointMatrices}}});function h5e(e){let t=e.skin,n=t.inverseBindMatrices;e._inverseBindMatrices=n;let i=t.joints,o=i.length,r=e.sceneGraph._runtimeNodes,s=e.joints,a=e._jointMatrices;for(let c=0;c<o;c++){let u=i[c].index,f=r[u];s.push(f);let d=n[c],p=vse(f,d,new F);a.push(p)}}function vse(e,t,n){let i=F.multiplyTransformation(e.transformToRoot,e.transform,n);return n=F.multiplyTransformation(i,t,n),n}TW.prototype.updateJointMatrices=function(){let e=this._jointMatrices,t=e.length;for(let n=0;n<t;n++){let i=this.joints[n],o=this.inverseBindMatrices[n];e[n]=vse(i,o,e[n])}};var L2=TW;function m5e(){this.pass=void 0,this.alphaCutoff=void 0}var N2=m5e;function p5e(e){this.shaderBuilder=new vT,this.model=e,this.uniformMap={},this.alphaOptions=new N2,this.renderStateOptions=Ve.getState(Ve.fromCache({depthTest:{enabled:!0,func:Ec.LESS_OR_EQUAL}})),this.hasSilhouette=!1,this.hasSkipLevelOfDetail=!1}var F2=p5e;var B2=`void silhouetteStage(inout vec4 color) { + if(model_silhouettePass) { + color = czm_gammaCorrect(model_silhouetteColor); + } +}`;var k2=`void silhouetteStage(in ProcessedAttributes attributes, inout vec4 positionClip) { + #ifdef HAS_NORMALS + if(model_silhouettePass) { + vec3 normal = normalize(czm_normal3D * attributes.normalMC); + normal.x *= czm_projection[0][0]; + normal.y *= czm_projection[1][1]; + positionClip.xy += normal.xy * positionClip.w * model_silhouetteSize * czm_pixelRatio / czm_viewport.z; + } + #endif +} +`;var V2={name:"ModelSilhouettePipelineStage"};V2.silhouettesLength=0;V2.process=function(e,t,n){l(t._silhouetteId)||(t._silhouetteId=++V2.silhouettesLength);let i=e.shaderBuilder;i.addDefine("HAS_SILHOUETTE",void 0,pe.BOTH),i.addVertexLines(k2),i.addFragmentLines(B2),i.addUniform("vec4","model_silhouetteColor",pe.FRAGMENT),i.addUniform("float","model_silhouetteSize",pe.VERTEX),i.addUniform("bool","model_silhouettePass",pe.BOTH);let o={model_silhouetteColor:function(){return t.silhouetteColor},model_silhouetteSize:function(){return t.silhouetteSize},model_silhouettePass:function(){return!1}};e.uniformMap=xt(o,e.uniformMap),e.hasSilhouette=!0};var U2=V2;var z2=`void modelSplitterStage() +{ + // Don't split when rendering the shadow map, because it is rendered from + // the perspective of a totally different camera. +#ifndef SHADOW_MAP + if (model_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (model_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif +} +`;var H2={name:"ModelSplitterPipelineStage",SPLIT_DIRECTION_UNIFORM_NAME:"model_splitDirection"};H2.process=function(e,t,n){let i=e.shaderBuilder;i.addDefine("HAS_MODEL_SPLITTER",void 0,pe.FRAGMENT),i.addFragmentLines(z2);let o={};i.addUniform("float",H2.SPLIT_DIRECTION_UNIFORM_NAME,pe.FRAGMENT),o[H2.SPLIT_DIRECTION_UNIFORM_NAME]=function(){return t.splitDirection},e.uniformMap=xt(o,e.uniformMap)};var G2=H2;function _5e(e,t){this.model=e.model,this.shaderBuilder=e.shaderBuilder.clone(),this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.runtimeNode=t,this.attributes=[],this.attributeIndex=1,this.featureIdVertexAttributeSetIndex=0,this.instanceCount=0}var W2=_5e;function g5e(e){e=y(e,y.EMPTY_OBJECT),this.lightingModel=y(e.lightingModel,vp.UNLIT)}var j2=g5e;function y5e(e,t){this.model=e.model,this.runtimeNode=e.runtimeNode,this.attributes=e.attributes.slice(),this.attributeIndex=e.attributeIndex,this.featureIdVertexAttributeSetIndex=e.featureIdVertexAttributeSetIndex,this.uniformMap=Ge(e.uniformMap),this.alphaOptions=Ge(e.alphaOptions),this.renderStateOptions=Ge(e.renderStateOptions,!0),this.hasSilhouette=e.hasSilhouette,this.hasSkipLevelOfDetail=e.hasSkipLevelOfDetail,this.shaderBuilder=e.shaderBuilder.clone(),this.instanceCount=e.instanceCount,this.runtimePrimitive=t;let n=t.primitive;this.count=l(n.indices)?n.indices.count:Zt.getAttributeBySemantic(n,"POSITION").count,this.hasPropertyTable=!1,this.indices=n.indices,this.wireframeIndexBuffer=void 0,this.primitiveType=n.primitiveType;let i=Zt.getPositionMinMax(n,this.runtimeNode.instancingTranslationMin,this.runtimeNode.instancingTranslationMax);this.positionMin=h.clone(i.min,new h),this.positionMax=h.clone(i.max,new h),this.boundingSphere=se.fromCornerPoints(this.positionMin,this.positionMax,new se),this.lightingOptions=new j2,this.pickId=void 0}var q2=y5e;function CW(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._command=t,this._model=i,this._runtimePrimitive=n.runtimePrimitive,this._modelMatrix=t.modelMatrix,this._boundingVolume=t.boundingVolume,this._cullFace=t.renderState.cull.face;let o=i.classificationType;this._classificationType=o,this._classifiesTerrain=o!==kn.CESIUM_3D_TILE,this._classifies3DTiles=o!==kn.TERRAIN,this._useDebugWireframe=i._enableDebugWireframe&&i.debugWireframe,this._pickId=n.pickId,this._commandListTerrain=[],this._commandList3DTiles=[],this._commandListIgnoreShow=[],this._commandListDebugWireframe=[],this._commandListTerrainPicking=[],this._commandList3DTilesPicking=[],A5e(this)}function x5e(e){return{colorMask:{red:!1,green:!1,blue:!1,alpha:!1},stencilTest:{enabled:!0,frontFunction:e,frontOperation:{fail:mt.KEEP,zFail:mt.DECREMENT_WRAP,zPass:mt.KEEP},backFunction:e,backOperation:{fail:mt.KEEP,zFail:mt.INCREMENT_WRAP,zPass:mt.KEEP},reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!0,func:Ec.LESS_OR_EQUAL},depthMask:!1}}var b5e={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1,blending:ln.PRE_MULTIPLIED_ALPHA_BLEND},T5e={stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},backFunction:Vn.NOT_EQUAL,backOperation:{fail:mt.ZERO,zFail:mt.ZERO,zPass:mt.ZERO},reference:0,mask:Ht.CLASSIFICATION_MASK},stencilMask:Ht.CLASSIFICATION_MASK,depthTest:{enabled:!1},depthMask:!1},Ise=[];function A5e(e){let t=e._command,n=Ise;if(e._useDebugWireframe){t.pass=ve.OPAQUE,n.length=0,n.push(t),e._commandListDebugWireframe=Aw(e,n,e._commandListDebugWireframe);let r=e._commandListDebugWireframe,s=r.length;for(let a=0;a<s;a++){let c=r[a];c.count*=2,c.offset*=2}return}let o=e.model.allowPicking;if(e._classifiesTerrain){let r=ve.TERRAIN_CLASSIFICATION,s=AW(t,r),a=wse(t,r);n.length=0,n.push(s,a),e._commandListTerrain=Aw(e,n,e._commandListTerrain),o&&(e._commandListTerrainPicking=Dse(e,n,e._commandListTerrainPicking))}if(e._classifies3DTiles){let r=ve.CESIUM_3D_TILE_CLASSIFICATION,s=AW(t,r),a=wse(t,r);n.length=0,n.push(s,a),e._commandList3DTiles=Aw(e,n,e._commandList3DTiles),o&&(e._commandList3DTilesPicking=Dse(e,n,e._commandList3DTilesPicking))}}function Aw(e,t,n){let i=e._runtimePrimitive,o=i.batchLengths,r=i.batchOffsets,s=o.length,a=t.length;for(let c=0;c<s;c++){let u=o[c],f=r[c];for(let d=0;d<a;d++){let p=t[d],g=et.shallowClone(p);g.count=u,g.offset=f,n.push(g)}}return n}function AW(e,t){let n=et.shallowClone(e);n.cull=!1,n.pass=t;let i=t===ve.TERRAIN_CLASSIFICATION?Vn.ALWAYS:Vn.EQUAL,o=x5e(i);return n.renderState=Ve.fromCache(o),n}function wse(e,t){let n=et.shallowClone(e);return n.cull=!1,n.pass=t,n.renderState=Ve.fromCache(b5e),n}var C5e=[];function Dse(e,t,n){let i=Ve.fromCache(T5e),o=t[0],r=t[1],s=et.shallowClone(o);s.cull=!0,s.pickOnly=!0;let a=et.shallowClone(r);a.cull=!0,a.pickOnly=!0,a.renderState=i,a.pickId=e._pickId;let c=C5e;return c.length=0,c.push(s,a),Aw(e,c,n)}Object.defineProperties(CW.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},batchLengths:{get:function(){return this._runtimePrimitive.batchLengths}},batchOffsets:{get:function(){return this._runtimePrimitive.batchOffsets}},model:{get:function(){return this._model}},classificationType:{get:function(){return this._classificationType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix);let t=this._runtimePrimitive.boundingSphere;this._boundingVolume=se.transform(t,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace=e}}});CW.prototype.pushCommands=function(e,t){let n=e.passes;if(n.render){if(this._useDebugWireframe){t.push.apply(t,this._commandListDebugWireframe);return}if(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrain),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTiles),e.invertClassification&&this._classifies3DTiles){if(this._commandListIgnoreShow.length===0){let o=ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW,r=AW(this._command,o),s=Ise;s.length=0,s.push(r),this._commandListIgnoreShow=Aw(this,s,this._commandListIgnoreShow)}t.push.apply(t,this._commandListIgnoreShow)}}return n.pick&&(this._classifiesTerrain&&t.push.apply(t,this._commandListTerrainPicking),this._classifies3DTiles&&t.push.apply(t,this._commandList3DTilesPicking)),t};var Y2=CW;function X2(e){e=y(e,y.EMPTY_OBJECT);let t=e.command,n=e.primitiveRenderResources,i=n.model;this._model=i;let o=n.runtimePrimitive;this._runtimePrimitive=o;let r=t.pass===ve.TRANSLUCENT,a=!o.primitive.material.doubleSided&&!r,c=n.hasSilhouette,u=!r&&!c,f=n.hasSkipLevelOfDetail&&!r,d=c;this._command=t,this._modelMatrix=F.clone(t.modelMatrix),this._boundingVolume=se.clone(t.boundingVolume),this._modelMatrix2D=new F,this._boundingVolume2D=new se,this._modelMatrix2DDirty=!1,this._backFaceCulling=t.renderState.cull.enabled,this._cullFace=t.renderState.cull.face,this._shadows=i.shadows,this._debugShowBoundingVolume=t.debugShowBoundingVolume,this._usesBackFaceCulling=a,this._needsTranslucentCommand=u,this._needsSkipLevelOfDetailCommands=f,this._needsSilhouetteCommands=d,this._originalCommand=void 0,this._translucentCommand=void 0,this._skipLodBackfaceCommand=void 0,this._skipLodStencilCommand=void 0,this._silhouetteModelCommand=void 0,this._silhouetteColorCommand=void 0,this._derivedCommands=[],this._has2DCommands=!1,E5e(this)}function wp(e){this.command=e.command,this.updateShadows=e.updateShadows,this.updateBackFaceCulling=e.updateBackFaceCulling,this.updateCullFace=e.updateCullFace,this.updateDebugShowBoundingVolume=e.updateDebugShowBoundingVolume,this.is2D=y(e.is2D,!1),this.derivedCommand2D=void 0}wp.clone=function(e){return new wp({command:e.command,updateShadows:e.updateShadows,updateBackFaceCulling:e.updateBackFaceCulling,updateCullFace:e.updateCullFace,updateDebugShowBoundingVolume:e.updateDebugShowBoundingVolume,is2D:e.is2D,derivedCommand2D:e.derivedCommand2D})};function E5e(e){let t=e._command;t.modelMatrix=e._modelMatrix,t.boundingVolume=e._boundingVolume;let n=e._model,i=e._usesBackFaceCulling,o=e._derivedCommands;e._originalCommand=new wp({command:t,updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0,is2D:!1}),o.push(e._originalCommand),e._needsTranslucentCommand&&(e._translucentCommand=new wp({command:R5e(t),updateShadows:!0,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!0}),o.push(e._translucentCommand)),e._needsSkipLevelOfDetailCommands&&(e._skipLodBackfaceCommand=new wp({command:B5e(t),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:i,updateDebugShowBoundingVolume:!1}),e._skipLodStencilCommand=new wp({command:k5e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),o.push(e._skipLodBackfaceCommand),o.push(e._skipLodStencilCommand)),e._needsSilhouetteCommands&&(e._silhouetteModelCommand=new wp({command:O5e(t,n),updateShadows:!0,updateBackFaceCulling:i,updateCullFace:i,updateDebugShowBoundingVolume:!0}),e._silhouetteColorCommand=new wp({command:M5e(t,n),updateShadows:!1,updateBackFaceCulling:!1,updateCullFace:!1,updateDebugShowBoundingVolume:!1}),o.push(e._silhouetteModelCommand),o.push(e._silhouetteColorCommand))}Object.defineProperties(X2.prototype,{command:{get:function(){return this._command}},runtimePrimitive:{get:function(){return this._runtimePrimitive}},model:{get:function(){return this._model}},primitiveType:{get:function(){return this._command.primitiveType}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix),this._modelMatrix2DDirty=!0,this._boundingVolume=se.transform(this.runtimePrimitive.boundingSphere,this._modelMatrix,this._boundingVolume)}},boundingVolume:{get:function(){return this._boundingVolume}},shadows:{get:function(){return this._shadows},set:function(e){this._shadows=e,v5e(this)}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){this._backFaceCulling!==e&&(this._backFaceCulling=e,w5e(this))}},cullFace:{get:function(){return this._cullFace},set:function(e){this._cullFace!==e&&(this._cullFace=e,D5e(this))}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolume=e,I5e(this))}}});function S5e(e,t){let n=e._modelMatrix;e._modelMatrix2D=F.clone(n,e._modelMatrix2D),e._modelMatrix2D[13]-=P.sign(n[13])*2*P.PI*t.mapProjection.ellipsoid.maximumRadius,e._boundingVolume2D=se.transform(e.runtimePrimitive.boundingSphere,e._modelMatrix2D,e._boundingVolume2D)}function v5e(e){let t=e.shadows,n=yn.castShadows(t),i=yn.receiveShadows(t),o=e._derivedCommands;for(let r=0;r<o.length;++r){let s=o[r];if(s.updateShadows){let a=s.command;a.castShadows=n,a.receiveShadows=i}}}function w5e(e){let t=e.backFaceCulling,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateBackFaceCulling){let r=o.command,s=Ge(r.renderState,!0);s.cull.enabled=t,r.renderState=Ve.fromCache(s)}}}function D5e(e){let t=e.cullFace,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateCullFace){let r=o.command,s=Ge(r.renderState,!0);s.cull.face=t,r.renderState=Ve.fromCache(s)}}}function I5e(e){let t=e.debugShowBoundingVolume,n=e._derivedCommands;for(let i=0;i<n.length;++i){let o=n[i];if(o.updateDebugShowBoundingVolume){let r=o.command;r.debugShowBoundingVolume=t}}}X2.prototype.pushCommands=function(e,t){let n=Pse(this,e);n&&!this._has2DCommands&&(P5e(this),this._has2DCommands=!0,this._modelMatrix2DDirty=!0),this._modelMatrix2DDirty&&(S5e(this,e),this._modelMatrix2DDirty=!1);let i=this.model.styleCommandsNeeded;if(!(this._needsTranslucentCommand&&l(i)&&(i!==jh.ALL_OPAQUE&&VA(t,this._translucentCommand,n),i===jh.ALL_TRANSLUCENT))){if(this._needsSkipLevelOfDetailCommands){let{tileset:o,tile:r}=this._model.content;if(o.hasMixedContent){r._finalResolution||VA(o._backfaceCommands,this._skipLodBackfaceCommand,n),L5e(this,r,n),VA(t,this._skipLodStencilCommand,n);return}}if(this._needsSilhouetteCommands){VA(t,this._silhouetteModelCommand,n);return}return VA(t,this._originalCommand,n),t}};X2.prototype.pushSilhouetteCommands=function(e,t){let n=Pse(this,e);return VA(t,this._silhouetteColorCommand,n),t};function VA(e,t,n){e.push(t.command),n&&e.push(t.derivedCommand2D.command)}function Pse(e,t){if(t.mode!==ne.SCENE2D||e.model._projectTo2D)return!1;let i=e.model.sceneGraph._boundingSphere2D,o=i.center.y-i.radius,r=i.center.y+i.radius,s=t.mapProjection.ellipsoid.maximumRadius*P.PI;return o<s&&r>s||o<-s&&r>-s}function kA(e,t){if(!l(t))return;let n=wp.clone(t),i=et.shallowClone(t.command);return i.modelMatrix=e._modelMatrix2D,i.boundingVolume=e._boundingVolume2D,n.command=i,n.updateShadows=!1,n.is2D=!0,t.derivedCommand2D=n,e._derivedCommands.push(n),n}function P5e(e){kA(e,e._originalCommand),kA(e,e._translucentCommand),kA(e,e._skipLodBackfaceCommand),kA(e,e._skipLodStencilCommand),kA(e,e._silhouetteModelCommand),kA(e,e._silhouetteColorCommand)}function R5e(e){let t=et.shallowClone(e);t.pass=ve.TRANSLUCENT;let n=Ge(e.renderState,!0);return n.cull.enabled=!1,n.depthMask=!1,n.blending=ln.ALPHA_BLEND,t.renderState=Ve.fromCache(n),t}function O5e(e,t){let n=t._silhouetteId%255,i=et.shallowClone(e),o=Ge(e.renderState,!0);return o.stencilTest={enabled:!0,frontFunction:te.ALWAYS,backFunction:te.ALWAYS,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.REPLACE}},t.isInvisible()&&(o.colorMask={red:!1,green:!1,blue:!1,alpha:!1}),i.renderState=Ve.fromCache(o),i}function M5e(e,t){let n=t._silhouetteId%255,i=et.shallowClone(e),o=Ge(e.renderState,!0);o.cull.enabled=!1,(e.pass===ve.TRANSLUCENT||t.silhouetteColor.alpha<1)&&(i.pass=ve.TRANSLUCENT,o.depthMask=!1,o.blending=ln.ALPHA_BLEND),o.stencilTest={enabled:!0,frontFunction:te.NOTEQUAL,backFunction:te.NOTEQUAL,reference:n,mask:-1,frontOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP},backOperation:{fail:te.KEEP,zFail:te.KEEP,zPass:te.KEEP}};let s=Ge(e.uniformMap);return s.model_silhouettePass=function(){return!0},i.renderState=Ve.fromCache(o),i.uniformMap=s,i.castShadows=!1,i.receiveShadows=!1,i}function L5e(e,t,n){let i=e._skipLodStencilCommand,o=i.command,r=t._selectionDepth,s=N5e(o);if(r!==s){let a=F5e(r),c=Ge(o.renderState,!0);c.stencilTest.reference=a,o.renderState=Ve.fromCache(c),n&&(i.derivedCommand2D.renderState=c)}}function N5e(e){return(e.renderState.stencilTest.reference&Ht.SKIP_LOD_MASK)>>>Ht.SKIP_LOD_BIT_SHIFT}function F5e(e){return Ht.CESIUM_3D_TILE_MASK|e<<Ht.SKIP_LOD_BIT_SHIFT}function B5e(e){let t=et.shallowClone(e),n=Ge(e.renderState,!0);n.cull.enabled=!0,n.cull.face=yi.FRONT,n.colorMask={red:!1,green:!1,blue:!1,alpha:!1},n.polygonOffset={enabled:!0,factor:5,units:5};let i=Ge(t.uniformMap),o=new U(5,5);return i.u_polygonOffset=function(){return o},t.renderState=Ve.fromCache(n),t.uniformMap=i,t.castShadows=!1,t.receiveShadows=!1,t}function k5e(e){let t=et.shallowClone(e),n=Ge(e.renderState,!0),{stencilTest:i}=n;return i.enabled=!0,i.mask=Ht.SKIP_LOD_MASK,i.reference=Ht.CESIUM_3D_TILE_MASK,i.frontFunction=Vn.GREATER_OR_EQUAL,i.frontOperation.zPass=mt.REPLACE,i.backFunction=Vn.GREATER_OR_EQUAL,i.backOperation.zPass=mt.REPLACE,n.stencilMask=Ht.CESIUM_3D_TILE_MASK|Ht.SKIP_LOD_MASK,t.renderState=Ve.fromCache(n),t}var K2=X2;var Z2=`precision highp float; + +czm_modelVertexOutput defaultVertexOutput(vec3 positionMC) { + czm_modelVertexOutput vsOutput; + vsOutput.positionMC = positionMC; + vsOutput.pointSize = 1.0; + return vsOutput; +} + +void main() +{ + // Initialize the attributes struct with all + // attributes except quantized ones. + ProcessedAttributes attributes; + initializeAttributes(attributes); + + // Dequantize the quantized ones and add them to the + // attributes struct. + #ifdef USE_DEQUANTIZATION + dequantizationStage(attributes); + #endif + + #ifdef HAS_MORPH_TARGETS + morphTargetsStage(attributes); + #endif + + #ifdef HAS_SKINNING + skinningStage(attributes); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(); + #endif + + // Compute the bitangent according to the formula in the glTF spec. + // Normal and tangents can be affected by morphing and skinning, so + // the bitangent should not be computed until their values are finalized. + #ifdef HAS_BITANGENTS + attributes.bitangentMC = normalize(cross(attributes.normalMC, attributes.tangentMC) * attributes.tangentSignMC); + #endif + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + SelectedFeature feature; + selectedFeatureIdStage(feature, featureIds); + // Handle any show properties that come from the style. + cpuStylingStage(attributes.positionMC, feature); + #endif + + #if defined(USE_2D_POSITIONS) || defined(USE_2D_INSTANCING) + // The scene mode 2D pipeline stage and instancing stage add a different + // model view matrix to accurately project the model to 2D. However, the + // output positions and normals should be transformed by the 3D matrices + // to keep the data the same for the fragment shader. + mat4 modelView = czm_modelView3D; + mat3 normal = czm_normal3D; + #else + // These are used for individual model projection because they will + // automatically change based on the scene mode. + mat4 modelView = czm_modelView; + mat3 normal = czm_normal; + #endif + + // Update the position for this instance in place + #ifdef HAS_INSTANCING + + // The legacy instance stage is used when rendering i3dm models that + // encode instances transforms in world space, as opposed to glTF models + // that use EXT_mesh_gpu_instancing, where instance transforms are encoded + // in object space. + #ifdef USE_LEGACY_INSTANCING + mat4 instanceModelView; + mat3 instanceModelViewInverseTranspose; + + legacyInstancingStage(attributes, instanceModelView, instanceModelViewInverseTranspose); + + modelView = instanceModelView; + normal = instanceModelViewInverseTranspose; + #else + instancingStage(attributes); + #endif + + #ifdef USE_PICKING + v_pickColor = a_pickColor; + #endif + + #endif + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + #ifdef HAS_VERTICAL_EXAGGERATION + verticalExaggerationStage(attributes); + #endif + + #ifdef HAS_CUSTOM_VERTEX_SHADER + czm_modelVertexOutput vsOutput = defaultVertexOutput(attributes.positionMC); + customShaderStage(vsOutput, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + // Compute the final position in each coordinate system needed. + // This returns the value that will be assigned to gl_Position. + vec4 positionClip = geometryStage(attributes, modelView, normal); + + // This must go after the geometry stage as it needs v_positionWC + #ifdef HAS_ATMOSPHERE + atmosphereStage(attributes); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(attributes); + #endif + + #ifdef HAS_SILHOUETTE + silhouetteStage(attributes, positionClip); + #endif + + #ifdef HAS_POINT_CLOUD_SHOW_STYLE + float show = pointCloudShowStylingStage(attributes, metadata); + #else + float show = 1.0; + #endif + + #ifdef HAS_POINT_CLOUD_BACK_FACE_CULLING + show *= pointCloudBackFaceCullingStage(); + #endif + + #ifdef HAS_POINT_CLOUD_COLOR_STYLE + v_pointCloudColor = pointCloudColorStylingStage(attributes, metadata); + #endif + + #ifdef PRIMITIVE_TYPE_POINTS + #ifdef HAS_CUSTOM_VERTEX_SHADER + gl_PointSize = vsOutput.pointSize; + #elif defined(HAS_POINT_CLOUD_POINT_SIZE_STYLE) || defined(HAS_POINT_CLOUD_ATTENUATION) + gl_PointSize = pointCloudPointSizeStylingStage(attributes, metadata); + #else + gl_PointSize = 1.0; + #endif + + gl_PointSize *= show; + #endif + + gl_Position = show * positionClip; +} +`;var $2=` +precision highp float; +czm_modelMaterial defaultModelMaterial() +{ + czm_modelMaterial material; + material.diffuse = vec3(0.0); + material.specular = vec3(1.0); + material.roughness = 1.0; + material.occlusion = 1.0; + material.normalEC = vec3(0.0, 0.0, 1.0); + material.emissive = vec3(0.0); + material.alpha = 1.0; + return material; +} + +vec4 handleAlpha(vec3 color, float alpha) +{ + #ifdef ALPHA_MODE_MASK + if (alpha < u_alphaCutoff) { + discard; + } + #endif + + return vec4(color, alpha); +} + +SelectedFeature selectedFeature; + +void main() +{ + #ifdef HAS_MODEL_SPLITTER + modelSplitterStage(); + #endif + + czm_modelMaterial material = defaultModelMaterial(); + + ProcessedAttributes attributes; + geometryStage(attributes); + + FeatureIds featureIds; + featureIdStage(featureIds, attributes); + + Metadata metadata; + MetadataClass metadataClass; + MetadataStatistics metadataStatistics; + metadataStage(metadata, metadataClass, metadataStatistics, attributes); + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #ifdef HAS_SELECTED_FEATURE_ID + selectedFeatureIdStage(selectedFeature, featureIds); + #endif + + #ifndef CUSTOM_SHADER_REPLACE_MATERIAL + materialStage(material, attributes, selectedFeature); + #endif + + #ifdef HAS_CUSTOM_FRAGMENT_SHADER + customShaderStage(material, attributes, featureIds, metadata, metadataClass, metadataStatistics); + #endif + + lightingStage(material, attributes); + + #ifdef HAS_SELECTED_FEATURE_ID + cpuStylingStage(material, selectedFeature); + #endif + + #ifdef HAS_MODEL_COLOR + modelColorStage(material); + #endif + + #ifdef HAS_PRIMITIVE_OUTLINE + primitiveOutlineStage(material); + #endif + + vec4 color = handleAlpha(material.diffuse, material.alpha); + + // When not picking metadata END + //======================================================================== + #else + //======================================================================== + // When picking metadata START + + vec4 metadataValues = vec4(0.0, 0.0, 0.0, 0.0); + metadataPickingStage(metadata, metadataClass, metadataValues); + vec4 color = metadataValues; + + #endif + // When picking metadata END + //======================================================================== + + #ifdef HAS_CLIPPING_PLANES + modelClippingPlanesStage(color); + #endif + + #ifdef ENABLE_CLIPPING_POLYGONS + modelClippingPolygonsStage(); + #endif + + //======================================================================== + // When not picking metadata START + #ifndef METADATA_PICKING_ENABLED + + #if defined(HAS_SILHOUETTE) && defined(HAS_NORMALS) + silhouetteStage(color); + #endif + + #ifdef HAS_ATMOSPHERE + atmosphereStage(color, attributes); + #endif + + #endif + // When not picking metadata END + //======================================================================== + + out_FragColor = color; +} +`;function Rse(){}Rse.buildModelDrawCommand=function(e,t){let n=e.shaderBuilder,i=V5e(e,n,t),o=U5e(e,i,t),r=e.model;return l(r.classificationType)?new Y2({primitiveRenderResources:e,command:o}):new K2({primitiveRenderResources:e,command:o})};function V5e(e,t,n){t.addVertexLines(Z2),t.addFragmentLines($2);let i=e.model,o=t.buildShaderProgram(n.context);return i._pipelineResources.push(o),o}function U5e(e,t,n){let i=z5e(e),o=new ti({context:n.context,indexBuffer:i,attributes:e.attributes}),r=e.model;r._pipelineResources.push(o);let s=e.alphaOptions.pass,a=r.sceneGraph,c=n.mode===ne.SCENE3D,u,f;if(!c&&!n.scene3DOnly&&r._projectTo2D)u=F.multiplyTransformation(a._computedModelMatrix,e.runtimeNode.computedTransform,new F),f=e.runtimePrimitive.boundingSphere2D;else{let T=c?a._computedModelMatrix:a._computedModelMatrix2D;u=F.multiplyTransformation(T,e.runtimeNode.computedTransform,new F),f=se.transform(e.boundingSphere,u)}let d=Ge(Ve.fromCache(e.renderStateOptions),!0);d.cull.face=Zt.getCullFace(u,e.primitiveType),d=Ve.fromCache(d);let p=l(r.classificationType),g=p?!1:yn.castShadows(r.shadows),m=p?!1:yn.receiveShadows(r.shadows),x=p?void 0:e.pickId;return new et({boundingVolume:f,modelMatrix:u,uniformMap:e.uniformMap,renderState:d,vertexArray:o,shaderProgram:t,cull:r.cull,pass:s,count:e.count,owner:r,pickId:x,pickMetadataAllowed:!0,instanceCount:e.instanceCount,primitiveType:e.primitiveType,debugShowBoundingVolume:r.debugShowBoundingVolume,castShadows:g,receiveShadows:m})}function z5e(e){let t=e.wireframeIndexBuffer;if(l(t))return t;let n=e.indices;if(l(n))return n.buffer}var Q2=Rse;function au(e){e=y(e,y.EMPTY_OBJECT);let t=e.modelComponents;this._model=e.model,this._components=t,this._pipelineStages=[],this._updateStages=[],this._runtimeNodes=[],this._rootNodes=[],this._skinnedNodes=[],this._runtimeSkins=[],this.modelPipelineStages=[],this._boundingSphere=void 0,this._boundingSphere2D=void 0,this._computedModelMatrix=F.clone(F.IDENTITY),this._computedModelMatrix2D=F.clone(F.IDENTITY),this._axisCorrectionMatrix=Zt.getAxisCorrectionMatrix(t.upAxis,t.forwardAxis,new F),this._runtimeArticulations={},H5e(this)}Object.defineProperties(au.prototype,{components:{get:function(){return this._components}},computedModelMatrix:{get:function(){return this._computedModelMatrix}},axisCorrectionMatrix:{get:function(){return this._axisCorrectionMatrix}},boundingSphere:{get:function(){return this._boundingSphere}}});function H5e(e){let t=e._components,n=t.scene,o=e._model.modelMatrix;Ose(e,o);let r=t.articulations,s=r.length,a=e._runtimeArticulations;for(let A=0;A<s;A++){let C=r[A],S=new NF({articulation:C,sceneGraph:e}),v=S.name;a[v]=S}let c=t.nodes,u=c.length;e._runtimeNodes=new Array(u);let d=n.nodes.length,p=F.IDENTITY;for(let A=0;A<d;A++){let C=n.nodes[A],S=Mse(e,C,p);e._rootNodes.push(S)}let g=t.skins,m=e._runtimeSkins,x=g.length;for(let A=0;A<x;A++){let C=g[A];m.push(new L2({skin:C,sceneGraph:e}))}let b=e._skinnedNodes,T=b.length;for(let A=0;A<T;A++){let C=b[A],S=e._runtimeNodes[C],D=c[C].skin.index;S._runtimeSkin=m[D],S.updateJointMatrices()}e.applyArticulations()}function Ose(e,t){let n=e._components,i=e._model;e._computedModelMatrix=F.multiplyTransformation(t,n.transform,e._computedModelMatrix),e._computedModelMatrix=F.multiplyTransformation(e._computedModelMatrix,e._axisCorrectionMatrix,e._computedModelMatrix),e._computedModelMatrix=F.multiplyByUniformScale(e._computedModelMatrix,i.computedScale,e._computedModelMatrix)}var G5e=new h;function W5e(e,t){let n=e._computedModelMatrix,i=F.getTranslation(n,G5e);if(!h.equals(i,h.ZERO))e._computedModelMatrix2D=Nt.basisTo2D(t.mapProjection,n,e._computedModelMatrix2D);else{let o=e.boundingSphere.center,r=Nt.ellipsoidTo2DModelMatrix(t.mapProjection,o,e._computedModelMatrix2D);e._computedModelMatrix2D=F.multiply(r,n,e._computedModelMatrix2D)}e._boundingSphere2D=se.transform(e._boundingSphere,e._computedModelMatrix2D,e._boundingSphere2D)}function Mse(e,t,n){let i=[],o=Zt.getNodeTransform(t),r=t.children.length;for(let f=0;f<r;f++){let d=t.children[f],p=F.multiplyTransformation(n,o,new F),g=Mse(e,d,p);i.push(g)}let s=new ZF({node:t,transform:o,transformToRoot:n,children:i,sceneGraph:e}),a=t.primitives.length;for(let f=0;f<a;f++)s.runtimePrimitives.push(new M2({primitive:t.primitives[f],node:t,model:e._model}));let c=t.index;e._runtimeNodes[c]=s,l(t.skin)&&e._skinnedNodes.push(c);let u=t.name;if(l(u)){let f=e._model,d=new HF(f,s);f._nodesByName[u]=d}return c}var j5e=new h,q5e=new h,Y5e=new h,X5e=new h;au.prototype.buildDrawCommands=function(e){let t=this._model,n=new F2(t);t.statistics.clear(),this.configurePipeline(e);let i=this.modelPipelineStages,o,r,s;for(o=0;o<i.length;o++)i[o].process(n,t,e);let a=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,j5e),c=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,q5e);for(o=0;o<this._runtimeNodes.length;o++){let u=this._runtimeNodes[o];if(!l(u))continue;u.configurePipeline();let f=u.pipelineStages,d=new W2(n,u);for(r=0;r<f.length;r++)f[r].process(d,u.node,e);let p=u.computedTransform;for(r=0;r<u.runtimePrimitives.length;r++){let g=u.runtimePrimitives[r];g.configurePipeline(e);let m=g.pipelineStages,x=new q2(d,g);for(s=0;s<m.length;s++)m[s].process(x,g.primitive,e);g.boundingSphere=se.clone(x.boundingSphere,new se);let b=F.multiplyByPoint(p,x.positionMin,Y5e),T=F.multiplyByPoint(p,x.positionMax,X5e);h.minimumByComponent(a,b,a),h.maximumByComponent(c,T,c);let A=Q2.buildModelDrawCommand(x,e);g.drawCommand=A}}this._boundingSphere=se.fromCornerPoints(a,c,new se),this._boundingSphere=se.transformWithoutScale(this._boundingSphere,this._axisCorrectionMatrix,this._boundingSphere),this._boundingSphere=se.transform(this._boundingSphere,this._components.transform,this._boundingSphere),t._boundingSphere=se.transform(this._boundingSphere,t.modelMatrix,t._boundingSphere),t._initialRadius=t._boundingSphere.radius,t._boundingSphere.radius*=t._clampedScale};au.prototype.configurePipeline=function(e){let t=this.modelPipelineStages;t.length=0;let n=this._model,i=e.fog.enabled&&e.fog.renderable;l(n.color)&&t.push(dx),!l(n.classificationType)&&(n.imageBasedLighting.enabled&&t.push(OF),n.isClippingEnabled()&&t.push(kF),n.isClippingPolygonsEnabled()&&t.push(zF),n.hasSilhouette(e)&&t.push(U2),l(n.splitDirection)&&n.splitDirection!==zr.NONE&&t.push(G2),pr.is3DTiles(n.type)&&t.push(wF),i&&t.push(PF))};au.prototype.update=function(e,t){let n,i,o;for(n=0;n<this._runtimeNodes.length;n++){let r=this._runtimeNodes[n];if(!l(r))continue;for(i=0;i<r.updateStages.length;i++)r.updateStages[i].update(r,this,e);let s=e.mode!==ne.SCENE3D&&this._model._projectTo2D;for(t&&!s&&this.updateJointMatrices(),i=0;i<r.runtimePrimitives.length;i++){let a=r.runtimePrimitives[i];for(o=0;o<a.updateStages.length;o++)a.updateStages[o].update(a,this)}}};au.prototype.updateModelMatrix=function(e,t){Ose(this,e),t.mode!==ne.SCENE3D&&W5e(this,t);let n=this._rootNodes;for(let i=0;i<n.length;i++){let o=this._runtimeNodes[n[i]];o._transformDirty=!0}};au.prototype.updateJointMatrices=function(){let e=this._skinnedNodes,t=e.length;for(let n=0;n<t;n++){let i=e[n];this._runtimeNodes[i].updateJointMatrices()}};function Lse(e,t,n,i,o){if(n&&!t.show)return;let r=t.children.length;for(let c=0;c<r;c++){let u=t.getChild(c);Lse(e,u,n,i,o)}let s=t.runtimePrimitives,a=s.length;for(let c=0;c<a;c++){let u=s[c];i(u,o)}}function J2(e,t,n,i){let o=e._rootNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s],c=e._runtimeNodes[a];Lse(e,c,t,n,i)}}var K5e={backFaceCulling:void 0};au.prototype.updateBackFaceCulling=function(e){let t=K5e;t.backFaceCulling=e,J2(this,!1,Z5e,t)};function Z5e(e,t){let n=e.drawCommand;n.backFaceCulling=t.backFaceCulling}var $5e={shadowMode:void 0};au.prototype.updateShadows=function(e){let t=$5e;t.shadowMode=e,J2(this,!1,Q5e,t)};function Q5e(e,t){let n=e.drawCommand;n.shadows=t.shadowMode}var J5e={debugShowBoundingVolume:void 0};au.prototype.updateShowBoundingVolume=function(e){let t=J5e;t.debugShowBoundingVolume=e,J2(this,!1,e6e,t)};function e6e(e,t){let n=e.drawCommand;n.debugShowBoundingVolume=t.debugShowBoundingVolume}var Nse=[],t6e={frameState:void 0,hasSilhouette:void 0};au.prototype.pushDrawCommands=function(e){let t=Nse;t.length=0;let n=t6e;n.hasSilhouette=this._model.hasSilhouette(e),n.frameState=e,J2(this,!0,n6e,n),e.commandList.push.apply(e.commandList,t)};function n6e(e,t){let n=t.frameState,i=t.hasSilhouette,o=n.passes,r=Nse,s=e.drawCommand;s.pushCommands(n,n.commandList),i&&!o.pick&&s.pushSilhouetteCommands(n,r)}au.prototype.setArticulationStage=function(e,t){let n=e.split(" ");if(n.length!==2)return;let i=n[0],o=n[1],r=this._runtimeArticulations[i];l(r)&&r.setArticulationStage(o,t)};au.prototype.applyArticulations=function(){let e=this._runtimeArticulations;for(let t in e)e.hasOwnProperty(t)&&e[t].apply()};var eB=au;function UA(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap=new St}Object.defineProperties(UA.prototype,{batchTexturesByteLength:{get:function(){let e=this._batchTextureIdMap.length,t=this._batchTextureIdMap.values,n=0;for(let i=0;i<e;i++)n+=t[i].byteLength;return n}}});UA.prototype.clear=function(){this.pointsLength=0,this.trianglesLength=0,this.geometryByteLength=0,this.texturesByteLength=0,this.propertyTablesByteLength=0,this._bufferIdSet={},this._textureIdSet={},this._batchTextureIdMap.removeAll()};UA.prototype.addBuffer=function(e,t){if(!this._bufferIdSet.hasOwnProperty(e._id)){let n=t?2:1;this.geometryByteLength+=e.sizeInBytes*n}this._bufferIdSet[e._id]=!0};UA.prototype.addTexture=function(e){this._textureIdSet.hasOwnProperty(e._id)||(this.texturesByteLength+=e.sizeInBytes),this._textureIdSet[e._id]=!0};UA.prototype.addBatchTexture=function(e){this._batchTextureIdMap.contains(e._id)||this._batchTextureIdMap.set(e._id,e)};var tB=UA;var Vse=Er(YP(),1);var Fse={},gx=Uint32Array.BYTES_PER_ELEMENT;Fse.parse=function(e,t){t=y(t,0);let n=new Uint8Array(e),i=new DataView(e);t+=gx;let o=i.getUint32(t,!0);if(o!==1)throw new ce(`Only Point Cloud tile version 1 is supported. Version ${o} is not.`);t+=gx,t+=gx;let r=i.getUint32(t,!0);if(r===0)throw new ce("Feature table must have a byte length greater than zero");t+=gx;let s=i.getUint32(t,!0);t+=gx;let a=i.getUint32(t,!0);t+=gx;let c=i.getUint32(t,!0);t+=gx;let u=Lo(n,t,r);t+=r;let f=new Uint8Array(e,t,s);t+=s;let d,p;a>0&&(d=Lo(n,t,a),t+=a,c>0&&(p=new Uint8Array(e,t,c),t+=c));let g=new Gh(u,f),m=g.getGlobalProperty("POINTS_LENGTH");if(g.featuresLength=m,!l(m))throw new ce("Feature table global property: POINTS_LENGTH must be defined");let x=g.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(x)&&(x=h.unpack(x));let b=i6e(g,d);if(b.rtcCenter=x,b.pointsLength=m,!b.hasPositions){let T=o6e(g);b.positions=T,b.hasPositions=b.hasPositions||l(T)}if(!b.hasPositions)throw new ce("Either POSITION or POSITION_QUANTIZED must be defined.");if(!b.hasNormals){let T=s6e(g);b.normals=T,b.hasNormals=b.hasNormals||l(T)}if(!b.hasColors){let T=r6e(g);b.colors=T,b.hasColors=b.hasColors||l(T),b.hasConstantColor=l(b.constantColor),b.isTranslucent=l(T)&&T.isTranslucent}if(!b.hasBatchIds){let T=a6e(g);b.batchIds=T,b.hasBatchIds=b.hasBatchIds||l(T)}if(b.hasBatchIds){let T=g.getGlobalProperty("BATCH_LENGTH");if(!l(T))throw new ce("Global property: BATCH_LENGTH must be defined when BATCH_ID is defined.");b.batchLength=T}return l(p)&&(p=new Uint8Array(p),b.batchTableJson=d,b.batchTableBinary=p),b};function i6e(e,t){let n=e.json,i,o,r,s=l(n.extensions)?n.extensions["3DTILES_draco_point_compression"]:void 0,a=l(t)&&l(t.extensions)?t.extensions["3DTILES_draco_point_compression"]:void 0;l(a)&&(r=a.properties);let c,u,f,d,p;if(l(s)){o=s.properties;let m=s.byteOffset,x=s.byteLength;if(!l(o)||!l(m)||!l(x))throw new ce("Draco properties, byteOffset, and byteLength must be defined");i=e.buffer.slice(m,m+x),c=l(o.POSITION),u=l(o.RGB)||l(o.RGBA),f=l(o.NORMAL),d=l(o.BATCH_ID),p=l(o.RGBA)}let g;return l(i)&&(g={buffer:i,featureTableProperties:o,batchTableProperties:r,properties:xt(o,r),dequantizeInShader:!0}),{draco:g,hasPositions:c,hasColors:u,isTranslucent:p,hasNormals:f,hasBatchIds:d}}function o6e(e){let t=e.json,n;if(l(t.POSITION))return n=e.getPropertyArray("POSITION",X.FLOAT,3),{name:Ct.POSITION,semantic:Ct.POSITION,typedArray:n,isQuantized:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(l(t.POSITION_QUANTIZED)){n=e.getPropertyArray("POSITION_QUANTIZED",X.UNSIGNED_SHORT,3);let i=e.getGlobalProperty("QUANTIZED_VOLUME_SCALE",X.FLOAT,3);if(!l(i))throw new ce("Global property: QUANTIZED_VOLUME_SCALE must be defined for quantized positions.");let o=65535,r=e.getGlobalProperty("QUANTIZED_VOLUME_OFFSET",X.FLOAT,3);if(!l(r))throw new ce("Global property: QUANTIZED_VOLUME_OFFSET must be defined for quantized positions.");return{name:Ct.POSITION,semantic:Ct.POSITION,typedArray:n,isQuantized:!0,componentDatatype:X.FLOAT,type:on.VEC3,quantizedRange:o,quantizedVolumeOffset:h.unpack(r),quantizedVolumeScale:h.unpack(i),quantizedComponentDatatype:X.UNSIGNED_SHORT,quantizedType:on.VEC3}}}function r6e(e){let t=e.json,n;if(l(t.RGBA))return n=e.getPropertyArray("RGBA",X.UNSIGNED_BYTE,4),{name:Ct.COLOR,semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isRGB565:!1,isTranslucent:!0};if(l(t.RGB))return n=e.getPropertyArray("RGB",X.UNSIGNED_BYTE,3),{name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isRGB565:!1,isTranslucent:!1};if(l(t.RGB565))return n=e.getPropertyArray("RGB565",X.UNSIGNED_SHORT,1),{name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n,componentDatatype:X.FLOAT,type:on.VEC3,normalized:!1,isRGB565:!0,isTranslucent:!1};if(l(t.CONSTANT_RGBA)){let i=e.getGlobalProperty("CONSTANT_RGBA",X.UNSIGNED_BYTE,4),o=i[3],r=z.fromBytes(i[0],i[1],i[2],o),s=o<255;return{name:Ct.COLOR,semantic:Ct.COLOR,setIndex:0,constantColor:r,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:s}}}function s6e(e){let t=e.json,n;if(l(t.NORMAL))return n=e.getPropertyArray("NORMAL",X.FLOAT,3),{name:Ct.NORMAL,semantic:Ct.NORMAL,typedArray:n,octEncoded:!1,octEncodedZXY:!1,componentDatatype:X.FLOAT,type:on.VEC3};if(l(t.NORMAL_OCT16P))return n=e.getPropertyArray("NORMAL_OCT16P",X.UNSIGNED_BYTE,2),{name:Ct.NORMAL,semantic:Ct.NORMAL,typedArray:n,octEncoded:!0,octEncodedZXY:!1,quantizedRange:(1<<8)-1,quantizedType:on.VEC2,quantizedComponentDatatype:X.UNSIGNED_BYTE,componentDatatype:X.FLOAT,type:on.VEC3}}function a6e(e){let t=e.json;if(l(t.BATCH_ID)){let n=e.getPropertyArray("BATCH_ID",X.UNSIGNED_SHORT,1);return{name:Ct.FEATURE_ID,semantic:Ct.FEATURE_ID,setIndex:0,typedArray:n,componentDatatype:X.fromTypedArray(n),type:on.SCALAR}}}var zA=Fse;var c6e=xn.Components,l6e=xn.Scene,u6e=xn.Node,f6e=xn.Primitive,d6e=xn.Attribute,Bse=xn.Quantization,h6e=xn.FeatureIdAttribute,m6e=xn.Material,p6e=xn.MetallicRoughness;function Mg(e){e=y(e,y.EMPTY_OBJECT);let t=e.arrayBuffer,n=y(e.byteOffset,0);this._arrayBuffer=t,this._byteOffset=n,this._loadAttributesFor2D=y(e.loadAttributesFor2D,!1),this._parsedContent=void 0,this._decodePromise=void 0,this._decodedAttributes=void 0,this._promise=void 0,this._error=void 0,this._state=_t.UNLOADED,this._buffers=[],this._components=void 0,this._transform=F.IDENTITY}l(Object.create)&&(Mg.prototype=Object.create(Yi.prototype),Mg.prototype.constructor=Mg);Object.defineProperties(Mg.prototype,{cacheKey:{get:function(){}},components:{get:function(){return this._components}},transform:{get:function(){return this._transform}}});Mg.prototype.load=function(){if(l(this._promise))return this._promise;this._parsedContent=zA.parse(this._arrayBuffer,this._byteOffset),this._state=_t.PROCESSING,this._promise=Promise.resolve(this)};Mg.prototype.process=function(e){if(l(this._error)){let t=this._error;throw this._error=void 0,t}if(this._state===_t.READY)return!0;if(this._state===_t.PROCESSING){if(l(this._decodePromise))return!1;this._decodePromise=_6e(this,e.context)}return!1};function _6e(e,t){let i=e._parsedContent.draco,o;if(l(i)?o=cg.decodePointCloud(i,t):o=Promise.resolve(),!!l(o))return e._decodePromise=o,o.then(function(r){if(!e.isDestroyed())return l(r)&&g6e(e,i,r),D6e(e,t),e._state=_t.READY,e}).catch(function(r){e.unload(),e._state=_t.FAILED;let s="Failed to load Draco pnts";e._error=e.getError(s,r)})}function g6e(e,t,n){e._state=_t.READY;let i=e._parsedContent,o;if(l(n.POSITION)){if(o={name:"POSITION",semantic:Ct.POSITION,typedArray:n.POSITION.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1},l(n.POSITION.data.quantization)){let a=n.POSITION.data.quantization,c=a.range,u=h.fromElements(c,c,c),f=h.unpack(a.minValues),d=(1<<a.quantizationBits)-1;o.isQuantized=!0,o.quantizedRange=d,o.quantizedVolumeOffset=f,o.quantizedVolumeScale=u,o.quantizedComponentDatatype=d<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT,o.quantizedType=on.VEC3}i.positions=o}if(l(n.NORMAL)){if(o={name:"NORMAL",semantic:Ct.NORMAL,typedArray:n.NORMAL.array,componentDatatype:X.FLOAT,type:on.VEC3,isQuantized:!1,octEncoded:!1,octEncodedZXY:!1},l(n.NORMAL.data.quantization)){let a=(1<<n.NORMAL.data.quantization.quantizationBits)-1;o.quantizedRange=a,o.octEncoded=!0,o.octEncodedZXY=!0,o.quantizedComponentDatatype=X.UNSIGNED_BYTE,o.quantizedType=on.VEC2}i.normals=o}if(l(n.RGBA)?i.colors={name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n.RGBA.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC4,normalized:!0,isTranslucent:!0}:l(n.RGB)&&(i.colors={name:"COLOR",semantic:Ct.COLOR,setIndex:0,typedArray:n.RGB.array,componentDatatype:X.UNSIGNED_BYTE,type:on.VEC3,normalized:!0,isTranslucent:!1}),l(n.BATCH_ID)){let a=n.BATCH_ID.array;i.batchIds={name:"_FEATURE_ID",semantic:Ct.FEATURE_ID,setIndex:0,typedArray:a,componentDatatype:X.fromTypedArray(a),type:on.SCALAR}}let r=i.batchTableJson,s=t.batchTableProperties;for(let a in s)if(s.hasOwnProperty(a)){let c=n[a];l(r)||(r={}),i.hasDracoBatchTable=!0;let u=c.data;r[a]={byteOffset:u.byteOffset,type:y6e(u.componentsPerAttribute),componentType:x6e(u.componentDatatype),typedArray:c.array}}i.batchTableJson=r}function y6e(e){switch(e){case 1:return"SCALAR";case 2:return"VEC2";case 3:return"VEC3";case 4:return"VEC4"}}function x6e(e){switch(e){case te.BYTE:return"BYTE";case te.UNSIGNED_BYTE:return"UNSIGNED_BYTE";case te.SHORT:return"SHORT";case te.UNSIGNED_SHORT:return"UNSIGNED_SHORT";case te.INT:return"INT";case te.UNSIGNED_INT:return"UNSIGNED_INT";case te.DOUBLE:return"DOUBLE";case te.FLOAT:return"FLOAT"}}function Cw(e,t,n){let i=t.typedArray,o;if(t.octEncoded&&(o=new Bse,o.octEncoded=t.octEncoded,o.octEncodedZXY=t.octEncodedZXY,o.normalizationRange=t.quantizedRange,o.type=t.quantizedType,o.componentDatatype=t.quantizedComponentDatatype),t.isQuantized){o=new Bse;let a=t.quantizedRange;o.normalizationRange=a,o.quantizedVolumeOffset=h.ZERO;let c=t.quantizedVolumeScale;o.quantizedVolumeDimensions=c,o.quantizedVolumeStepSize=h.divideByScalar(c,a,new h),o.componentDatatype=t.quantizedComponentDatatype,o.type=t.quantizedType}let r=new d6e;if(r.name=t.name,r.semantic=t.semantic,r.setIndex=t.setIndex,r.componentDatatype=t.componentDatatype,r.type=t.type,r.normalized=y(t.normalized,!1),r.min=t.min,r.max=t.max,r.quantization=o,t.isRGB565&&(i=Ln.decodeRGB565(i)),l(t.constantColor)){let a=new Array(4);r.constant=z.pack(t.constantColor,a)}else{let a=yt.createVertexBuffer({typedArray:i,context:n,usage:Fe.STATIC_DRAW});a.vertexArrayDestroyable=!1,e._buffers.push(a),r.buffer=a}let s=e._loadAttributesFor2D;return r.semantic===Ct.POSITION&&s&&(r.typedArray=i),r}var kse,nB;function b6e(e){if(!l(nB)){kse=new Vse.default(0),nB=new Array(e);for(let t=0;t<e;++t)nB[t]=kse.random()}return nB}var T6e=new h,A6e=new h,C6e=new h;function E6e(e){let t=e.typedArray,n=20,i=t.length/3,o=Math.min(i,n),r=b6e(n),s=Number.MAX_VALUE,a=-Number.MAX_VALUE,c=h.fromElements(s,s,s,T6e),u=h.fromElements(a,a,a,A6e),f,d,p;if(e.isQuantized)c=h.ZERO,u=e.quantizedVolumeScale;else for(f=0;f<o;++f)d=Math.floor(r[f]*i),p=h.unpack(t,d*3,C6e),h.minimumByComponent(c,p,c),h.maximumByComponent(u,p,u);e.min=h.clone(c),e.max=h.clone(u)}var S6e={name:Ct.COLOR,semantic:Ct.COLOR,setIndex:0,constantColor:z.DARKGRAY,componentDatatype:X.FLOAT,type:on.VEC4,isQuantized:!1,isTranslucent:!1};function v6e(e,t,n){let i=[],o,r=t.positions;return l(r)&&(E6e(r),o=Cw(e,r,n),o.count=t.pointsLength,i.push(o)),l(t.normals)&&(o=Cw(e,t.normals,n),i.push(o)),l(t.colors)?(o=Cw(e,t.colors,n),i.push(o)):(o=Cw(e,S6e,n),i.push(o)),l(t.batchIds)&&(o=Cw(e,t.batchIds,n),i.push(o)),i}function w6e(e,t){let n=e.batchLength,i=e.pointsLength,o=e.batchTableBinary,r=!l(e.batchIds);if(l(o)||e.hasDracoBatchTable){let s=y(n,i);return wg({count:s,batchTable:e.batchTableJson,binaryBody:o,parseAsPropertyAttributes:r,customAttributeOutput:t})}return new Js({schema:{},propertyTables:[]})}function D6e(e,t){let n=e._parsedContent,i=new p6e;i.metallicFactor=0,i.roughnessFactor=.9;let o=new m6e;o.metallicRoughness=i;let r=n.colors;l(r)&&r.isTranslucent&&(o.alphaMode=gp.BLEND);let s=!l(n.normals);o.unlit=s;let a=new f6e;if(a.attributes=v6e(e,n,t),a.primitiveType=Le.POINTS,a.material=o,l(n.batchIds)){let g=new h6e;g.propertyTableId=0,g.setIndex=0,g.positionalLabel="featureId_0",a.featureIds.push(g)}let c=new u6e;c.index=0,c.primitives=[a];let u=new l6e;u.nodes=[c],u.upAxis=Mo.Z,u.forwardAxis=Mo.X;let f=new c6e;f.scene=u,f.nodes=[c];let d=[];f.structuralMetadata=w6e(n,d),d.length>0&&I6e(e,a,d,t),l(n.rtcCenter)&&(f.transform=F.multiplyByTranslation(f.transform,n.rtcCenter,f.transform));let p=n.positions;l(p)&&p.isQuantized&&(f.transform=F.multiplyByTranslation(f.transform,p.quantizedVolumeOffset,f.transform)),e._components=f,e._parsedContent=void 0,e._arrayBuffer=void 0}function I6e(e,t,n,i){let o=t.attributes,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=yt.createVertexBuffer({typedArray:a.typedArray,context:i,usage:Fe.STATIC_DRAW});c.vertexArrayDestroyable=!1,e._buffers.push(c),a.buffer=c,a.typedArray=void 0,o.push(a)}t.propertyAttributeIds=[0]}Mg.prototype.unload=function(){let e=this._buffers;for(let t=0;t<e.length;t++)e[t].destroy();e.length=0,this._components=void 0,this._parsedContent=void 0,this._arrayBuffer=void 0};var iB=Mg;var P6e=new h,R6e=new h,O6e=new h,M6e=new F,L6e=new F,N6e=new F,F6e=new fe,B6e=new se;function Ew(e,t,n,i,o,r,s){if(!e._ready||n.mode===ne.MORPHING)return;let a=Number.MAX_VALUE,c=e.sceneGraph,u=c._runtimeNodes;for(let f=0;f<u.length;f++){let d=u[f],p=d.node,g=F.clone(d.computedTransform,M6e),m=F.clone(c.computedModelMatrix,L6e),x=p.instances;l(x)&&x.transformInWorldSpace&&(m=F.multiplyTransformation(e.modelMatrix,c.components.transform,m),g=F.multiplyTransformation(c.axisCorrectionMatrix,d.computedTransform,g));let b=F.multiplyTransformation(m,g,N6e);n.mode!==ne.SCENE3D&&(b=Nt.basisTo2D(n.mapProjection,b,b));let T=[];if(l(x)){let C=x.attributes[0].count,S=x.attributes[0].componentDatatype,v=12,D=d.transformsTypedArray;if(!l(D)){let O=d.instancingTransformsBuffer;l(O)&&n.context.webgl2&&(D=X.createTypedArray(S,C*v),O.getBufferData(D))}if(l(D))for(let O=0;O<C;O++){let R=O*v,M=new F(D[R],D[R+1],D[R+2],D[R+3],D[R+4],D[R+5],D[R+6],D[R+7],D[R+8],D[R+9],D[R+10],D[R+11],0,0,0,1);x.transformInWorldSpace?(F.multiplyTransformation(M,g,M),F.multiplyTransformation(m,M,M)):F.multiplyTransformation(M,b,M),T.push(M)}}T.length===0&&T.push(b);let A=d.runtimePrimitives.length;for(let C=0;C<A;C++){let S=d.runtimePrimitives[C],v=S.primitive;if(l(S.boundingSphere)&&!l(x)){let q=se.transform(S.boundingSphere,b,B6e),J=$n.raySphere(t,q);if(!l(J))continue}let D=Zt.getAttributeBySemantic(v,Ct.POSITION),O=D.byteOffset,R=D.byteStride,M=D.count;if(!l(v.indices))continue;let L=v.indices.typedArray;if(!l(L)){let q=v.indices.buffer,J=v.indices.count,j=v.indices.indexDatatype;l(q)&&n.context.webgl2&&(j===Ne.UNSIGNED_BYTE?L=new Uint8Array(J):j===Ne.UNSIGNED_SHORT?L=new Uint16Array(J):j===Ne.UNSIGNED_INT&&(L=new Uint32Array(J)),q.getBufferData(L))}let _=D.typedArray,E=D.componentDatatype,w=D.type,I=D.quantization;l(I)&&(E=D.quantization.componentDatatype,w=D.quantization.type);let N=on.getNumberOfComponents(w),B=X.getSizeInBytes(E),H=!l(_)&&l(R)&&R!==N*B,V=N,G=0;H&&(V=R/B,G=O/B);let k=M*V;if(!l(_)){let q=D.buffer;l(q)&&n.context.webgl2&&(_=X.createTypedArray(E,k),q.getBufferData(_,H?0:O,0,k)),I&&D.normalized&&(_=Ln.dequantize(_,E,w,M))}if(!l(L)||!l(_))return;r=y(r,ee.default),i=y(i,1),o=y(o,0);let W=L.length;for(let q=0;q<W;q+=3){let J=L[q],j=L[q+1],Z=L[q+2];for(let Q of T){let de=EW(_,J,G,V,I,Q,i,o,r,P6e),ye=EW(_,j,G,V,I,Q,i,o,r,R6e),ae=EW(_,Z,G,V,I,Q,i,o,r,O6e),_e=$n.rayTriangleParametric(t,de,ye,ae,y(e.backFaceCulling,!0));l(_e)&&_e<a&&_e>=0&&(a=_e)}}}}if(a!==Number.MAX_VALUE){if(s=mn.getPoint(t,a,s),n.mode!==ne.SCENE3D){h.fromElements(s.y,s.z,s.x,s);let f=n.mapProjection,d=f.ellipsoid,p=f.unproject(s,F6e);d.cartographicToCartesian(p,s)}return s}}function EW(e,t,n,i,o,r,s,a,c,u){let f=n+t*i;if(u.x=e[f],u.y=e[f+1],u.z=e[f+2],l(o))if(o.octEncoded){if(u=Ln.octDecodeInRange(u,o.normalizationRange,u),o.octEncodedZXY){let d=u.x;u.x=u.z,u.z=u.y,u.y=d}}else u=h.multiplyComponents(u,o.quantizedVolumeStepSize,u),u=h.add(u,o.quantizedVolumeOffset,u);return u=F.multiplyByPoint(r,u,u),s!==1&&Ir.getPosition(u,c,s,a,u),u}function to(e){e=y(e,y.EMPTY_OBJECT),this._loader=e.loader,this._resource=e.resource,this.type=y(e.type,pr.GLTF),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(this.modelMatrix),this._scale=y(e.scale,1),this._minimumPixelSize=y(e.minimumPixelSize,0),this._maximumScale=e.maximumScale,this._clampedScale=l(this._maximumScale)?Math.min(this._scale,this._maximumScale):this._scale,this._computedScale=this._clampedScale,this._updateModelMatrix=!1,this.referenceMatrix=void 0,this._iblReferenceFrameMatrix=$.clone($.IDENTITY),this._resourcesLoaded=!1,this._drawCommandsBuilt=!1,this._ready=!1,this._customShader=e.customShader,this._content=e.content,this._texturesLoaded=!1,this._defaultTexture=void 0,this._activeAnimations=new EF(this),this._clampAnimations=y(e.clampAnimations,!0),this._userAnimationDirty=!1,this._id=e.id,this._idDirty=!1,this._color=z.clone(e.color),this._colorBlendMode=y(e.colorBlendMode,Oc.HIGHLIGHT),this._colorBlendAmount=y(e.colorBlendAmount,.5);let t=y(e.silhouetteColor,z.RED);this._silhouetteColor=z.clone(t),this._silhouetteSize=y(e.silhouetteSize,0),this._silhouetteDirty=!1,this._silhouetteId=void 0,this._cull=y(e.cull,!0),this._opaquePass=y(e.opaquePass,ve.OPAQUE),this._allowPicking=y(e.allowPicking,!0),this._show=y(e.show,!0),this._style=void 0,this._styleDirty=!1,this._styleCommandsNeeded=void 0;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i,this._featureTables=[],this._featureTableId=void 0,this._featureTableIdDirty=!0,this._pipelineResources=[],this._modelResources=[],this._pickIds=[],this._boundingSphere=new se,this._initialRadius=void 0,this._heightReference=y(e.heightReference,Ke.NONE),this._heightDirty=this._heightReference!==Ke.NONE,this._removeUpdateHeightCallback=void 0,this._enableVerticalExaggeration=y(e.enableVerticalExaggeration,!0),this._hasVerticalExaggeration=!1,this._clampedModelMatrix=void 0;let o=e.scene;l(o)&&l(o.terrainProviderChanged)&&(this._terrainProviderChangedCallback=o.terrainProviderChanged.addEventListener(()=>{this._heightDirty=!0})),this._scene=o,this._distanceDisplayCondition=e.distanceDisplayCondition;let r=new bp(e.pointCloudShading);this._pointCloudShading=r,this._attenuation=r.attenuation,this._pointCloudBackFaceCulling=r.backFaceCulling;let s=e.clippingPlanes;l(s)&&s.owner===void 0?bs.setOwner(s,this,"_clippingPlanes"):this._clippingPlanes=s,this._clippingPlanesState=0,this._clippingPlanesMatrix=F.clone(F.IDENTITY);let a=e.clippingPolygons;l(a)&&a.owner===void 0?Uh.setOwner(a,this,"_clippingPolygons"):this._clippingPolygons=a,this._clippingPolygonsState=0,this._lightColor=h.clone(e.lightColor),this._imageBasedLighting=l(e.imageBasedLighting)?e.imageBasedLighting:new tA,this._shouldDestroyImageBasedLighting=!l(e.imageBasedLighting),this._environmentMapManager=void 0;let c=new Tg(e.environmentMapOptions);Tg.setOwner(c,this,"_environmentMapManager"),this._backFaceCulling=y(e.backFaceCulling,!0),this._backFaceCullingDirty=!1,this._shadows=y(e.shadows,yn.ENABLED),this._shadowsDirty=!1,this._debugShowBoundingVolumeDirty=!1,this._debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this._enableShowOutline=y(e.enableShowOutline,!0),this._debugWireframe=y(e.debugWireframe,!1),this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===pr.GLTF&&At("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltf, otherwise debugWireframe will be ignored.");let u=e.credit;typeof u=="string"&&(u=new wt(u)),this._credits=[],this._credit=u,this._resourceCredits=[],this._gltfCredits=[],this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._showCreditsOnScreenDirty=!0,this._splitDirection=y(e.splitDirection,zr.NONE),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this._classificationType=e.classificationType,this._statistics=new tB,this._sceneMode=void 0,this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this._fogRenderable=void 0,this._skipLevelOfDetail=!1,this._ignoreCommands=y(e.ignoreCommands,!1),this._errorEvent=new me,this._readyEvent=new me,this._texturesReadyEvent=new me,this._sceneGraph=void 0,this._nodesByName={},this.pickObject=e.pickObject}function SW(e,t){if(e._errorEvent.numberOfListeners>0){e._errorEvent.raiseEvent(t);return}console.log(t)}function k6e(e,t){let n=e._featureTables,i=t.propertyTables,o=i.length;for(let r=0;r<o;r++){let s=i[r],a=new vF({model:e,propertyTable:s});n.push(a)}return n}function V6e(e,t){let n=t._featureIdLabel,i=t._instanceFeatureIdLabel,o,r,s,a;for(o=0;o<e.nodes.length;o++)if(a=e.nodes[o],l(a.instances)&&(s=Zt.getFeatureIdsByLabel(a.instances.featureIds,i),l(s)&&l(s.propertyTableId)))return s.propertyTableId;for(o=0;o<e.nodes.length;o++)for(a=e.nodes[o],r=0;r<a.primitives.length;r++){let c=a.primitives[r],u=Zt.getFeatureIdsByLabel(c.featureIds,n);if(l(u))return u.propertyTableId}if(t._featureTables.length===1)return 0}function DW(e,t){if(!l(e)&&!l(t))return!1;if(l(e)!==l(t))return!0;let n=e.alpha,i=t.alpha;return Math.floor(n)!==Math.floor(i)||Math.ceil(n)!==Math.ceil(i)}Object.defineProperties(to.prototype,{ready:{get:function(){return this._ready}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},incrementallyLoadTextures:{get:function(){return y(this._loader.incrementallyLoadTextures,!1)}},texturesReadyEvent:{get:function(){return this._texturesReadyEvent}},loader:{get:function(){return this._loader}},statistics:{get:function(){return this._statistics}},activeAnimations:{get:function(){return this._activeAnimations}},clampAnimations:{get:function(){return this._clampAnimations},set:function(e){this._clampAnimations=e}},cull:{get:function(){return this._cull}},opaquePass:{get:function(){return this._opaquePass}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){e!==this._pointCloudShading&&this.resetDrawCommands(),this._pointCloudShading=e}},customShader:{get:function(){return this._customShader},set:function(e){e!==this._customShader&&this.resetDrawCommands(),this._customShader=e}},sceneGraph:{get:function(){return this._sceneGraph}},content:{get:function(){return this._content}},heightReference:{get:function(){return this._heightReference},set:function(e){e!==this._heightReference&&(this._heightDirty=!0),this._heightReference=e}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Ft.clone(e,this._distanceDisplayCondition)}},structuralMetadata:{get:function(){return this._sceneGraph.components.structuralMetadata}},featureTableId:{get:function(){return this._featureTableId},set:function(e){this._featureTableId=e}},featureTables:{get:function(){return this._featureTables},set:function(e){this._featureTables=e}},id:{get:function(){return this._id},set:function(e){e!==this._id&&(this._idDirty=!0),this._id=e}},allowPicking:{get:function(){return this._allowPicking}},style:{get:function(){return this._style},set:function(e){this._style=e,this._styleDirty=!0}},color:{get:function(){return this._color},set:function(e){DW(e,this._color)&&this.resetDrawCommands(),this._color=z.clone(e,this._color)}},colorBlendMode:{get:function(){return this._colorBlendMode},set:function(e){this._colorBlendMode=e}},colorBlendAmount:{get:function(){return this._colorBlendAmount},set:function(e){this._colorBlendAmount=e}},silhouetteColor:{get:function(){return this._silhouetteColor},set:function(e){if(!z.equals(e,this._silhouetteColor)){let t=DW(e,this._silhouetteColor);this._silhouetteDirty=this._silhouetteDirty||t}this._silhouetteColor=z.clone(e,this._silhouetteColor)}},silhouetteSize:{get:function(){return this._silhouetteSize},set:function(e){if(e!==this._silhouetteSize){let t=this._silhouetteSize,n=e>0&&t===0||e===0&&t>0;this._silhouetteDirty=this._silhouetteDirty||n,this._backFaceCullingDirty=this._backFaceCullingDirty||n}this._silhouetteSize=e}},boundingSphere:{get:function(){let e=l(this._clampedModelMatrix)?this._clampedModelMatrix:this.modelMatrix;return Hse(this,e),this._boundingSphere}},debugShowBoundingVolume:{get:function(){return this._debugShowBoundingVolume},set:function(e){this._debugShowBoundingVolume!==e&&(this._debugShowBoundingVolumeDirty=!0),this._debugShowBoundingVolume=e}},debugWireframe:{get:function(){return this._debugWireframe},set:function(e){this._debugWireframe!==e&&this.resetDrawCommands(),this._debugWireframe=e,this._debugWireframe===!0&&this._enableDebugWireframe===!1&&this.type===pr.GLTF&&At("model-debug-wireframe-ignored","enableDebugWireframe must be set to true in Model.fromGltfAsync, otherwise debugWireframe will be ignored.")}},show:{get:function(){return this._show},set:function(e){this._show=e}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),e!==this._featureIdLabel&&(this._featureTableIdDirty=!0),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),e!==this._instanceFeatureIdLabel&&(this._featureTableIdDirty=!0),this._instanceFeatureIdLabel=e}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){e!==this._clippingPlanes&&(bs.setOwner(e,this,"_clippingPlanes"),this.resetDrawCommands())}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){e!==this._clippingPolygons&&(Uh.setOwner(e,this,"_clippingPolygons"),this.resetDrawCommands())}},enableVerticalExaggeration:{get:function(){return this._enableVerticalExaggeration},set:function(e){e!==this._enableVerticalExaggeration&&this.resetDrawCommands(),this._enableVerticalExaggeration=e}},hasVerticalExaggeration:{get:function(){return this._hasVerticalExaggeration}},lightColor:{get:function(){return this._lightColor},set:function(e){l(e)!==l(this._lightColor)&&this.resetDrawCommands(),this._lightColor=h.clone(e,this._lightColor)}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1,this.resetDrawCommands())}},environmentMapManager:{get:function(){return this._environmentMapManager},set:function(e){e!==this.environmentMapManager&&(Tg.setOwner(e,this,"_environmentMapManager"),this.resetDrawCommands())}},backFaceCulling:{get:function(){return this._backFaceCulling},set:function(e){e!==this._backFaceCulling&&(this._backFaceCullingDirty=!0),this._backFaceCulling=e}},scale:{get:function(){return this._scale},set:function(e){e!==this._scale&&(this._updateModelMatrix=!0),this._scale=e}},computedScale:{get:function(){return this._computedScale}},minimumPixelSize:{get:function(){return this._minimumPixelSize},set:function(e){e!==this._minimumPixelSize&&(this._updateModelMatrix=!0),this._minimumPixelSize=e}},maximumScale:{get:function(){return this._maximumScale},set:function(e){e!==this._maximumScale&&(this._updateModelMatrix=!0),this._maximumScale=e}},shadows:{get:function(){return this._shadows},set:function(e){e!==this._shadows&&(this._shadowsDirty=!0),this._shadows=e}},credit:{get:function(){return this._credit}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen!==e&&(this._showCreditsOnScreenDirty=!0),this._showCreditsOnScreen=e}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&this.resetDrawCommands(),this._splitDirection=e}},classificationType:{get:function(){return this._classificationType}},pickIds:{get:function(){return this._pickIds}},styleCommandsNeeded:{get:function(){return this._styleCommandsNeeded}}});to.prototype.getNode=function(e){return this._nodesByName[e]};to.prototype.setArticulationStage=function(e,t){this._sceneGraph.setArticulationStage(e,t)};to.prototype.applyArticulations=function(){this._sceneGraph.applyArticulations()};to.prototype.getExtension=function(e){return this._loader.components.extensions[e]};to.prototype.makeStyleDirty=function(){this._styleDirty=!0};to.prototype.resetDrawCommands=function(){this._drawCommandsBuilt=!1};var U6e=new F,z6e=new $,H6e=new F;to.prototype.update=function(e){let t=!1;try{t=G6e(this,e)}catch(n){if(!this._loader.incrementallyLoadTextures&&n.name==="TextureError")SW(this,n);else{let i=Zt.getError("model",this._resource,n);SW(this,i)}}if(W6e(this,e),j6e(this,e),q6e(this,e),!this._resourcesLoaded&&t){this._resourcesLoaded=!0;let n=this._loader.components;if(!l(n)){if(this._loader.isUnloaded())return;let r=Zt.getError("model",this._resource,new ce("Failed to load model."));SW(r),this._rejectLoad=this._rejectLoad&&this._rejectLoad(r)}let i=n.structuralMetadata;l(i)&&i.propertyTableCount>0&&k6e(this,i);let o=new eB({model:this,modelComponents:n});this._sceneGraph=o,this._gltfCredits=o.components.asset.credits}if(!(!this._resourcesLoaded||e.mode===ne.MORPHING)){if(Y6e(this),X6e(this),K6e(this,e),Z6e(this),$6e(this,e),Q6e(this,e),J6e(this,e),e9e(this,e),t9e(this,e),n9e(this,e),i9e(this,e),this._defaultTexture=e.context.defaultTexture,o9e(this,e),r9e(this,e),s9e(this),a9e(this,e),f9e(this,e),!this._ready){e.afterRender.push(()=>{this._ready=!0,this._readyEvent.raiseEvent(this)});return}this._loader.incrementallyLoadTextures&&!this._texturesLoaded&&this._loader.texturesLoaded&&(this.resetDrawCommands(),this._texturesLoaded=!0,this._texturesReadyEvent.raiseEvent(this)),l9e(this),d9e(this,e),h9e(this),m9e(this,e)}};function G6e(e,t){return!e._resourcesLoaded||e._loader.incrementallyLoadTextures&&!e._texturesLoaded?(t.afterRender.push(()=>!0),e._loader.process(t)):!0}function W6e(e,t){l(e._customShader)&&e._customShader.update(t)}function j6e(e,t){let n=e._environmentMapManager,i=t.passes.pick||t.passes.pickVoxel;e._ready&&n.owner===e&&!i&&(n.position=e._boundingSphere.center,n.shouldUpdate=!l(e._imageBasedLighting.sphericalHarmonicCoefficients)||!l(e._imageBasedLighting.specularEnvironmentMaps),n.update(t),n.shouldRegenerateShaders&&e.resetDrawCommands())}function q6e(e,t){e._imageBasedLighting.update(t),e._imageBasedLighting.shouldRegenerateShaders&&e.resetDrawCommands()}function Y6e(e){if(!e._featureTableIdDirty)return;e._featureTableIdDirty=!1;let t=e._sceneGraph.components,n=t.structuralMetadata;l(n)&&n.propertyTableCount>0&&(e.featureTableId=V6e(t,e),e._styleDirty=!0,e.resetDrawCommands())}function X6e(e){e._styleDirty&&(e.applyStyle(e._style),e._styleDirty=!1)}function K6e(e,t){let n=e._featureTables,i=n.length,o=!1;for(let r=0;r<i;r++)n[r].update(t),n[r].styleCommandsNeededDirty&&(o=!0);o&&zse(e)}function zse(e){let t=e.featureTables[e.featureTableId];e._styleCommandsNeeded=jh.getStyleCommandsNeeded(t.featuresLength,t.batchTexture.translucentFeaturesLength)}function Z6e(e){let t=e.pointCloudShading;t.attenuation!==e._attenuation&&(e.resetDrawCommands(),e._attenuation=t.attenuation),t.backFaceCulling!==e._pointCloudBackFaceCulling&&(e.resetDrawCommands(),e._pointCloudBackFaceCulling=t.backFaceCulling)}function $6e(e,t){e._silhouetteDirty&&(Gse(t)&&e.resetDrawCommands(),e._silhouetteDirty=!1)}function Q6e(e,t){let n=e.hasSkipLevelOfDetail(t);n!==e._skipLevelOfDetail&&(e.resetDrawCommands(),e._skipLevelOfDetail=n)}function J6e(e,t){let n=0;e.isClippingEnabled()&&(e._clippingPlanes.owner===e&&e._clippingPlanes.update(t),n=e._clippingPlanes.clippingPlanesState),n!==e._clippingPlanesState&&(e.resetDrawCommands(),e._clippingPlanesState=n)}function e9e(e,t){let n=0;e.isClippingPolygonsEnabled()&&(e._clippingPolygons.owner===e&&(e._clippingPolygons.update(t),e._clippingPolygons.queueCommands(t)),n=e._clippingPolygons.clippingPolygonsState),n!==e._clippingPolygonsState&&(e.resetDrawCommands(),e._clippingPolygonsState=n)}function t9e(e,t){t.mode!==e._sceneMode&&(e._projectTo2D?e.resetDrawCommands():e._updateModelMatrix=!0,e._sceneMode=t.mode)}function n9e(e,t){let n=t.fog.enabled&&t.fog.renderable;n!==e._fogRenderable&&(e.resetDrawCommands(),e._fogRenderable=n)}function i9e(e,t){if(e.enableVerticalExaggeration){let n=t.verticalExaggeration!==1;e.hasVerticalExaggeration!==n&&(e.resetDrawCommands(),e._hasVerticalExaggeration=n)}else e.hasVerticalExaggeration&&(e.resetDrawCommands(),e._hasVerticalExaggeration=!1)}function o9e(e,t){e._drawCommandsBuilt||(e.destroyPipelineResources(),e._sceneGraph.buildDrawCommands(t),e._drawCommandsBuilt=!0)}function r9e(e,t){F.equals(e.modelMatrix,e._modelMatrix)||(e._updateModelMatrix=!0,e._modelMatrix=F.clone(e.modelMatrix,e._modelMatrix))}var Lg=new h,vW=new fe;function s9e(e){if(!e._updateModelMatrix&&!e._heightDirty&&e._minimumPixelSize===0)return;l(e._removeUpdateHeightCallback)&&(e._removeUpdateHeightCallback(),e._removeUpdateHeightCallback=void 0);let t=e._scene;if(!l(t)||e.heightReference===Ke.NONE){e._clampedModelMatrix=void 0;return}let n=y(t.ellipsoid,ee.default),i=e.modelMatrix;Lg.x=i[12],Lg.y=i[13],Lg.z=i[14];let o=n.cartesianToCartographic(Lg);l(e._clampedModelMatrix)||(e._clampedModelMatrix=F.clone(i,new F)),e._removeUpdateHeightCallback=t.updateHeight(o,Use(e,n,o),e.heightReference);let r=t.getHeight(o,e.heightReference);if(l(r)){let s=Use(e,n,o);fe.clone(o,vW),vW.height=r,s(vW)}e._heightDirty=!1,e._updateModelMatrix=!0}function a9e(e,t){if(!e._updateModelMatrix&&e._minimumPixelSize===0)return;let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;Hse(e,n),c9e(e,n,t)}function Hse(e,t){e._clampedScale=l(e._maximumScale)?Math.min(e._scale,e._maximumScale):e._scale,e._boundingSphere.center=h.multiplyByScalar(e._sceneGraph.boundingSphere.center,e._clampedScale,e._boundingSphere.center),e._boundingSphere.radius=e._initialRadius*e._clampedScale,e._boundingSphere=se.transform(e._boundingSphere,t,e._boundingSphere)}function c9e(e,t,n){let i=e.scale;if(e.minimumPixelSize!==0&&!e._projectTo2D){let o=n.context,r=Math.max(o.drawingBufferWidth,o.drawingBufferHeight);F.getTranslation(t,Lg),e._sceneMode!==ne.SCENE3D&&Vi.computeActualEllipsoidPosition(n,Lg,Lg);let s=e._boundingSphere.radius,a=p9e(Lg,s,n),c=1/a;Math.min(c*(2*s),r)<e.minimumPixelSize&&(i=e.minimumPixelSize*a/(2*e._initialRadius))}e._computedScale=l(e.maximumScale)?Math.min(e.maximumScale,i):i}function l9e(e){if(!e._idDirty)return;e._idDirty=!1;let t=e._id,n=e._pickIds,i=n.length;for(let o=0;o<i;++o)n[o].object.id=t}var u9e=new $(1,0,0,0,0,1,0,-1,0);function f9e(e,t){let n=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix,i=y(e.referenceMatrix,n),o=t.context,r=z6e,s=U6e;if(s=F.multiply(o.uniformState.view3D,i,s),r=F.getRotation(s,r),r=$.transpose(r,r),e._iblReferenceFrameMatrix=$.multiply(u9e,r,e._iblReferenceFrameMatrix),e.isClippingEnabled()){let a=H6e;a=F.multiply(o.uniformState.view3D,i,a),a=F.multiply(a,e._clippingPlanes.modelMatrix,a),e._clippingPlanesMatrix=F.inverseTranspose(a,e._clippingPlanesMatrix)}}function d9e(e,t){let n=e._sceneGraph;if(e._updateModelMatrix||e._minimumPixelSize!==0){let o=l(e._clampedModelMatrix)?e._clampedModelMatrix:e.modelMatrix;n.updateModelMatrix(o,t),e._updateModelMatrix=!1}e._backFaceCullingDirty&&(n.updateBackFaceCulling(e._backFaceCulling),e._backFaceCullingDirty=!1),e._shadowsDirty&&(n.updateShadows(e._shadows),e._shadowsDirty=!1),e._debugShowBoundingVolumeDirty&&(n.updateShowBoundingVolume(e._debugShowBoundingVolume),e._debugShowBoundingVolumeDirty=!1);let i=!1;l(e.classificationType)||(i=e._userAnimationDirty||e._activeAnimations.update(t)),n.update(t,i),e._userAnimationDirty=!1}function h9e(e){if(!e._showCreditsOnScreenDirty)return;e._showCreditsOnScreenDirty=!1,e._credits.length=0;let t=e._showCreditsOnScreen;if(l(e._credit)){let s=wt.clone(e._credit);s.showOnScreen=s.showOnScreen||t,e._credits.push(s)}let n=e._resourceCredits,i=n.length;for(let s=0;s<i;s++){let a=wt.clone(n[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}let o=e._gltfCredits,r=o.length;for(let s=0;s<r;s++){let a=wt.clone(o[s]);a.showOnScreen=a.showOnScreen||t,e._credits.push(a)}}function m9e(e,t){let n=g9e(e,t),i=e.isInvisible(),o=e.hasSilhouette(t),r=e._show&&e._computedScale!==0&&n&&(!i||o),s=t.passes,a=s.render||s.pick&&e.allowPicking;r&&!e._ignoreCommands&&a&&(y9e(e,t),e._sceneGraph.pushDrawCommands(t))}var wW=new se;function p9e(e,t,n){return wW.center=e,wW.radius=t,n.camera.getPixelSize(wW,n.context.drawingBufferWidth,n.context.drawingBufferHeight)}var oB=new h;function Use(e,t,n){return function(i){wT(e.heightReference)&&(i.height+=n.height),t.cartographicToCartesian(i,oB);let o=e._clampedModelMatrix;F.clone(e.modelMatrix,o),o[12]=oB.x,o[13]=oB.y,o[14]=oB.z,e._heightDirty=!0}}var _9e=new h;function g9e(e,t){let n=e.distanceDisplayCondition;if(!l(n))return!0;let i=n.near*n.near,o=n.far*n.far,r;if(t.mode===ne.SCENE2D){let a=(t.camera.frustum.right-t.camera.frustum.left)*.5;r=a*a}else{let s=F.getTranslation(e.modelMatrix,_9e);Vi.computeActualEllipsoidPosition(t,s,s),r=h.distanceSquared(s,t.camera.positionWC)}return r>=i&&r<=o}function y9e(e,t){let n=t.creditDisplay,i=e._credits,o=i.length;for(let r=0;r<o;r++)n.addCreditToNextFrame(i[r])}to.prototype.isTranslucent=function(){let e=this.color;return l(e)&&e.alpha>0&&e.alpha<1};to.prototype.isInvisible=function(){let e=this.color;return l(e)&&e.alpha===0};function Gse(e){return e.context.stencilBuffer}to.prototype.hasSilhouette=function(e){return Gse(e)&&this._silhouetteSize>0&&this._silhouetteColor.alpha>0&&!l(this._classificationType)};to.prototype.hasSkipLevelOfDetail=function(e){if(!pr.is3DTiles(this.type))return!1;let t=e.context.stencilBuffer,n=this._content.tileset;return t&&n.isSkippingLevelOfDetail};to.prototype.isClippingEnabled=function(){let e=this._clippingPlanes;return l(e)&&e.enabled&&e.length!==0};to.prototype.pick=function(e,t,n,i,o){return Ew(this,e,t,n,i,o)};to.prototype.isClippingPolygonsEnabled=function(){let e=this._clippingPolygons;return l(e)&&e.enabled&&e.length!==0};to.prototype.isDestroyed=function(){return!1};to.prototype.destroy=function(){let e=this._loader;l(e)&&e.destroy();let t=this._featureTables;if(l(t)){let r=t.length;for(let s=0;s<r;s++)t[s].destroy()}this.destroyPipelineResources(),this.destroyModelResources(),l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),l(this._terrainProviderChangedCallback)&&(this._terrainProviderChangedCallback(),this._terrainProviderChangedCallback=void 0);let n=this._clippingPlanes;l(n)&&!n.isDestroyed()&&n.owner===this&&n.destroy(),this._clippingPlanes=void 0;let i=this._clippingPolygons;l(i)&&!i.isDestroyed()&&i.owner===this&&i.destroy(),this._clippingPolygons=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0;let o=this._environmentMapManager;!o.isDestroyed()&&o.owner===this&&o.destroy(),this._environmentMapManager=void 0,ue(this)};to.prototype.destroyPipelineResources=function(){let e=this._pipelineResources;for(let t=0;t<e.length;t++)e[t].destroy();this._pipelineResources.length=0,this._pickIds.length=0};to.prototype.destroyModelResources=function(){let e=this._modelResources;for(let t=0;t<e.length;t++)e[t].destroy();this._modelResources.length=0};to.fromGltfAsync=async function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.url,e.gltf),n={releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},i=y(e.basePath,""),o=De.createIfNeeded(i);l(t.asset)?(n.gltfJson=t,n.baseResource=o,n.gltfResource=o):t instanceof Uint8Array?(n.typedArray=t,n.baseResource=o,n.gltfResource=o):n.gltfResource=De.createIfNeeded(t);let r=new Sg(n),a=l(e.content)?pr.TILE_GLTF:pr.GLTF,c=n.gltfResource,u=Sw(r,a,e);u.resource=c,u.environmentMapOptions=e.environmentMapOptions;try{await r.load()}catch(g){throw r.destroy(),Zt.getError("model",c,g)}let f=e.gltfCallback;l(f)&&f(r.gltfJson);let d=new to(u),p=d._resource.credits;if(l(p)){let g=p.length;for(let m=0;m<g;m++)d._resourceCredits.push(wt.clone(p[m]))}return d};to.fromB3dm=async function(e){let t={b3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline,loadForClassification:l(e.classificationType)},n=new uF(t);try{await n.load();let i=Sw(n,pr.TILE_B3DM,e);return new to(i)}catch(i){throw n.destroy(),i}};to.fromPnts=async function(e){let t={arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,loadAttributesFor2D:e.projectTo2D},n=new iB(t);try{await n.load();let i=Sw(n,pr.TILE_PNTS,e);return new to(i)}catch(i){throw n.destroy(),i}};to.fromI3dm=async function(e){let t={i3dmResource:e.resource,arrayBuffer:e.arrayBuffer,byteOffset:e.byteOffset,releaseGltfJson:e.releaseGltfJson,asynchronous:e.asynchronous,incrementallyLoadTextures:e.incrementallyLoadTextures,upAxis:e.upAxis,forwardAxis:e.forwardAxis,loadAttributesFor2D:e.projectTo2D,enablePick:e.enablePick,loadIndicesForWireframe:e.enableDebugWireframe,loadPrimitiveOutline:e.enableShowOutline},n=new gF(t);try{await n.load();let i=Sw(n,pr.TILE_I3DM,e);return new to(i)}catch(i){throw n.destroy(),i}};to.fromGeoJson=async function(e){let t={geoJson:e.geoJson},n=new dF(t),i=Sw(n,pr.TILE_GEOJSON,e);return new to(i)};var x9e=new z;to.prototype.applyColorAndShow=function(e){let t=z.clone(this._color,x9e),n=l(e)&&l(e.color),i=l(e)&&l(e.show);this._color=n?e.color.evaluateColor(void 0,this._color):z.clone(z.WHITE,this._color),this._show=i?e.show.evaluate(void 0):!0,DW(t,this._color)&&this.resetDrawCommands()};to.prototype.applyStyle=function(e){let t=this.type===pr.TILE_PNTS,n=l(this.featureTableId)&&this.featureTables[this.featureTableId].featuresLength>0,i=l(this.structuralMetadata)?this.structuralMetadata.propertyAttributes:void 0,o=l(i)&&l(i[0]);if(t&&(!n||o)){this.resetDrawCommands();return}n?(this.featureTables[this.featureTableId].applyStyle(e),zse(this,e)):(this.applyColorAndShow(e),this._styleCommandsNeeded=void 0)};function Sw(e,t,n){return{loader:e,type:t,resource:n.resource,show:n.show,modelMatrix:n.modelMatrix,scale:n.scale,enableVerticalExaggeration:n.enableVerticalExaggeration,minimumPixelSize:n.minimumPixelSize,maximumScale:n.maximumScale,id:n.id,allowPicking:n.allowPicking,clampAnimations:n.clampAnimations,shadows:n.shadows,debugShowBoundingVolume:n.debugShowBoundingVolume,enableDebugWireframe:n.enableDebugWireframe,debugWireframe:n.debugWireframe,cull:n.cull,opaquePass:n.opaquePass,customShader:n.customShader,content:n.content,heightReference:n.heightReference,scene:n.scene,distanceDisplayCondition:n.distanceDisplayCondition,color:n.color,colorBlendAmount:n.colorBlendAmount,colorBlendMode:n.colorBlendMode,silhouetteColor:n.silhouetteColor,silhouetteSize:n.silhouetteSize,enableShowOutline:n.enableShowOutline,showOutline:n.showOutline,outlineColor:n.outlineColor,clippingPlanes:n.clippingPlanes,clippingPolygons:n.clippingPolygons,lightColor:n.lightColor,imageBasedLighting:n.imageBasedLighting,backFaceCulling:n.backFaceCulling,credit:n.credit,showCreditsOnScreen:n.showCreditsOnScreen,splitDirection:n.splitDirection,projectTo2D:n.projectTo2D,enablePick:n.enablePick,featureIdLabel:n.featureIdLabel,instanceFeatureIdLabel:n.instanceFeatureIdLabel,pointCloudShading:n.pointCloudShading,classificationType:n.classificationType,pickObject:n.pickObject}}var qh=to;function rs(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this._model=void 0,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(rs.prototype,{featuresLength:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;return l(t)&&l(t[n])?t[n].featuresLength:0}},pointsLength:{get:function(){return this._model.statistics.pointsLength}},trianglesLength:{get:function(){return this._model.statistics.trianglesLength}},geometryByteLength:{get:function(){return this._model.statistics.geometryByteLength}},texturesByteLength:{get:function(){return this._model.statistics.texturesByteLength}},batchTableByteLength:{get:function(){let e=this._model.statistics;return e.propertyTablesByteLength+e.batchTexturesByteLength}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){let e=this._model,t=e.featureTables,n=e.featureTableId;if(l(t)&&l(t[n]))return t[n]}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});rs.prototype.getExtension=function(e){return this._model.getExtension(e)};rs.prototype.getFeature=function(e){let t=this._model,n=t.featureTableId;return t.featureTables[n].getFeature(e)};rs.prototype.hasProperty=function(e,t){let n=this._model,i=n.featureTableId;return l(i)?n.featureTables[i].hasProperty(e,t):!1};rs.prototype.applyDebugSettings=function(e,t){t=e?t:z.WHITE,this.featuresLength===0?this._model.color=t:l(this.batchTable)&&this.batchTable.setAllColor(t)};rs.prototype.applyStyle=function(e){this._model.style=e};rs.prototype.update=function(e,t){let n=this._model,i=this._tile;n.colorBlendAmount=e.colorBlendAmount,n.colorBlendMode=e.colorBlendMode,n.modelMatrix=i.computedTransform,n.customShader=e.customShader,n.featureIdLabel=e.featureIdLabel,n.instanceFeatureIdLabel=e.instanceFeatureIdLabel,n.lightColor=e.lightColor,n.imageBasedLighting=e.imageBasedLighting,n.backFaceCulling=e.backFaceCulling,n.shadows=e.shadows,n.showCreditsOnScreen=e.showCreditsOnScreen,n.splitDirection=e.splitDirection,n.debugWireframe=e.debugWireframe,n.showOutline=e.showOutline,n.outlineColor=e.outlineColor,n.pointCloudShading=e.pointCloudShading;let o=e.clippingPlanes;n.referenceMatrix=e.clippingPlanesOriginMatrix,l(o)&&i.clippingPlanesDirty&&(n._clippingPlanes=o.enabled&&i._isClipped?o:void 0);let r=e.environmentMapManager;n.environmentMapManager!==o&&(n._environmentMapManager=r),l(o)&&l(n._clippingPlanes)&&n._clippingPlanes!==o&&(n._clippingPlanes=o,n._clippingPlanesState=0);let s=e.clippingPolygons;l(s)&&i.clippingPolygonsDirty&&(n._clippingPolygons=s.enabled&&i._isClippedByPolygon?s:void 0),l(s)&&l(n._clippingPolygons)&&n._clippingPolygons!==s&&(n._clippingPolygons=s,n._clippingPolygonsState=0),n.update(t),!this._ready&&n.ready&&(n.activeAnimations.addAll({loop:ru.REPEAT}),this._ready=!0)};rs.prototype.isDestroyed=function(){return!1};rs.prototype.destroy=function(){return this._model=this._model&&this._model.destroy(),ue(this)};rs.fromGltf=async function(e,t,n,i){let o=new rs(e,t,n),s=vw(e,t,o,{gltf:i,basePath:n}),a=e.vectorClassificationOnly?void 0:e.classificationType;s.classificationType=a;let c=await qh.fromGltfAsync(s);return o._model=c,o};rs.fromB3dm=async function(e,t,n,i,o){let r=new rs(e,t,n),a=vw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=e.vectorClassificationOnly?void 0:e.classificationType;a.classificationType=c;let u=await qh.fromB3dm(a);return r._model=u,r};rs.fromI3dm=async function(e,t,n,i,o){let r=new rs(e,t,n),a=vw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await qh.fromI3dm(a);return r._model=c,r};rs.fromPnts=async function(e,t,n,i,o){let r=new rs(e,t,n),a=vw(e,t,r,{arrayBuffer:i,byteOffset:o,resource:n}),c=await qh.fromPnts(a);return r._model=c,r};rs.fromGeoJson=async function(e,t,n,i){let o=new rs(e,t,n),s=vw(e,t,o,{geoJson:i,resource:n}),a=await qh.fromGeoJson(s);return o._model=a,o};rs.prototype.pick=function(e,t,n){if(!l(this._model)||!this._ready)return;let i=t.verticalExaggeration,o=t.verticalExaggerationRelativeHeight;return this._model.pick(e,t,i,o,ee.WGS84,n)};function vw(e,t,n,i){let o={cull:!1,releaseGltfJson:!0,opaquePass:ve.CESIUM_3D_TILE,modelMatrix:t.computedTransform,upAxis:e._modelUpAxis,forwardAxis:e._modelForwardAxis,incrementallyLoadTextures:!1,customShader:e.customShader,content:n,colorBlendMode:e.colorBlendMode,colorBlendAmount:e.colorBlendAmount,lightColor:e.lightColor,imageBasedLighting:e.imageBasedLighting,featureIdLabel:e.featureIdLabel,instanceFeatureIdLabel:e.instanceFeatureIdLabel,pointCloudShading:e.pointCloudShading,clippingPlanes:e.clippingPlanes,backFaceCulling:e.backFaceCulling,shadows:e.shadows,showCreditsOnScreen:e.showCreditsOnScreen,splitDirection:e.splitDirection,enableDebugWireframe:e._enableDebugWireframe,debugWireframe:e.debugWireframe,projectTo2D:e._projectTo2D,enablePick:e._enablePick,enableShowOutline:e._enableShowOutline,showOutline:e.showOutline,outlineColor:e.outlineColor};return xt(i,o)}var Dp=rs;function uf(e,t,n){this._tileset=e,this._tile=t,this._resource=n,this.featurePropertiesDirty=!1,this._metadata=void 0,this._group=void 0,this._ready=!1}Object.defineProperties(uf.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},batchTable:{get:function(){}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},group:{get:function(){return this._group},set:function(e){this._group=e}}});uf.fromJson=function(e,t,n,i){let o=new uf(e,t,n);return o._tileset.loadTileset(o._resource,i,o._tile),o._ready=!0,o};uf.prototype.hasProperty=function(e,t){return!1};uf.prototype.getFeature=function(e){};uf.prototype.applyDebugSettings=function(e,t){};uf.prototype.applyStyle=function(e){};uf.prototype.update=function(e,t){};uf.prototype.pick=function(e,t,n){};uf.prototype.isDestroyed=function(){return!1};uf.prototype.destroy=function(){return ue(this)};var rB=uf;var sB=`uniform sampler2D u_atlas; + +#ifdef VECTOR_TILE +uniform vec4 u_highlightColor; +#endif + +in vec2 v_textureCoordinates; +in vec4 v_pickColor; +in vec4 v_color; +in float v_splitDirection; + +#ifdef SDF +in vec4 v_outlineColor; +in float v_outlineWidth; +#endif + +#ifdef FRAGMENT_DEPTH_CHECK +in vec4 v_textureCoordinateBounds; // the min and max x and y values for the texture coordinates +in vec4 v_originTextureCoordinateAndTranslate; // texture coordinate at the origin, billboard translate (used for label glyphs) +in vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +in mat2 v_rotationMatrix; + +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +float getGlobeDepth(vec2 adjustedST, vec2 depthLookupST, bool applyTranslate, vec2 dimensions, vec2 imageSize) +{ + vec2 lookupVector = imageSize * (depthLookupST - adjustedST); + lookupVector = v_rotationMatrix * lookupVector; + vec2 labelOffset = (dimensions - imageSize) * (depthLookupST - vec2(0.0, v_originTextureCoordinateAndTranslate.y)); // aligns label glyph with bounding rectangle. Will be zero for billboards because dimensions and imageSize will be equal + + vec2 translation = v_originTextureCoordinateAndTranslate.zw; + + if (applyTranslate) + { + // this is only needed for labels where the horizontal origin is not LEFT + // it moves the label back to where the "origin" should be since all label glyphs are set to HorizontalOrigin.LEFT + translation += (dimensions * v_originTextureCoordinateAndTranslate.xy * vec2(1.0, 0.0)); + } + + vec2 st = ((lookupVector - translation + labelOffset) + gl_FragCoord.xy) / czm_viewport.zw; + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + + if (logDepthOrDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif + + +#ifdef SDF + +// Get the distance from the edge of a glyph at a given position sampling an SDF texture. +float getDistance(vec2 position) +{ + return texture(u_atlas, position).r; +} + +// Samples the sdf texture at the given position and produces a color based on the fill color and the outline. +vec4 getSDFColor(vec2 position, float outlineWidth, vec4 outlineColor, float smoothing) +{ + float distance = getDistance(position); + + if (outlineWidth > 0.0) + { + // Don't get the outline edge exceed the SDF_EDGE + float outlineEdge = clamp(SDF_EDGE - outlineWidth, 0.0, SDF_EDGE); + float outlineFactor = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + vec4 sdfColor = mix(outlineColor, v_color, outlineFactor); + float alpha = smoothstep(outlineEdge - smoothing, outlineEdge + smoothing, distance); + return vec4(sdfColor.rgb, sdfColor.a * alpha); + } + else + { + float alpha = smoothstep(SDF_EDGE - smoothing, SDF_EDGE + smoothing, distance); + return vec4(v_color.rgb, v_color.a * alpha); + } +} +#endif + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + vec4 color = texture(u_atlas, v_textureCoordinates); + +#ifdef SDF + float outlineWidth = v_outlineWidth; + vec4 outlineColor = v_outlineColor; + + // Get the current distance + float distance = getDistance(v_textureCoordinates); + +#if (__VERSION__ == 300 || defined(GL_OES_standard_derivatives)) + float smoothing = fwidth(distance); + // Get an offset that is approximately half the distance to the neighbor pixels + // 0.354 is approximately half of 1/sqrt(2) + vec2 sampleOffset = 0.354 * vec2(dFdx(v_textureCoordinates) + dFdy(v_textureCoordinates)); + + // Sample the center point + vec4 center = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); + + // Sample the 4 neighbors + vec4 color1 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color2 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color3 = getSDFColor(v_textureCoordinates + vec2(-sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + vec4 color4 = getSDFColor(v_textureCoordinates + vec2(sampleOffset.x, -sampleOffset.y), outlineWidth, outlineColor, smoothing); + + // Equally weight the center sample and the 4 neighboring samples + color = (center + color1 + color2 + color3 + color4)/5.0; +#else + // If no derivatives available (IE 10?), just do a single sample + float smoothing = 1.0/32.0; + color = getSDFColor(v_textureCoordinates, outlineWidth, outlineColor, smoothing); +#endif + + color = czm_gammaCorrect(color); +#else + color = czm_gammaCorrect(color); + color *= czm_gammaCorrect(v_color); +#endif + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + +#ifdef VECTOR_TILE + color *= u_highlightColor; +#endif + out_FragColor = color; + +#ifdef LOG_DEPTH + czm_writeLogDepth(); +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + float temp = v_compressed.y; + + temp = temp * SHIFT_RIGHT1; + + float temp2 = (temp - floor(temp)) * SHIFT_LEFT1; + bool enableDepthTest = temp2 != 0.0; + bool applyTranslate = floor(temp) != 0.0; + + if (enableDepthTest) { + temp = v_compressed.z; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); + + temp = v_compressed.w; + temp = temp * SHIFT_RIGHT12; + + vec2 imageSize; + imageSize.y = (temp - floor(temp)) * SHIFT_LEFT12; + imageSize.x = floor(temp); + + vec2 adjustedST = v_textureCoordinates - v_textureCoordinateBounds.xy; + adjustedST = adjustedST / vec2(v_textureCoordinateBounds.z - v_textureCoordinateBounds.x, v_textureCoordinateBounds.w - v_textureCoordinateBounds.y); + + float epsilonEyeDepth = v_compressed.x + czm_epsilon1; + float globeDepth1 = getGlobeDepth(adjustedST, v_originTextureCoordinateAndTranslate.xy, applyTranslate, dimensions, imageSize); + + // negative values go into the screen + if (globeDepth1 != 0.0 && globeDepth1 > epsilonEyeDepth) + { + float globeDepth2 = getGlobeDepth(adjustedST, vec2(0.0, 1.0), applyTranslate, dimensions, imageSize); // top left corner + if (globeDepth2 != 0.0 && globeDepth2 > epsilonEyeDepth) + { + float globeDepth3 = getGlobeDepth(adjustedST, vec2(1.0, 1.0), applyTranslate, dimensions, imageSize); // top right corner + if (globeDepth3 != 0.0 && globeDepth3 > epsilonEyeDepth) + { + discard; + } + } + } + } +#endif + +} +`;var aB=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScale; +in vec4 positionLowAndRotation; +in vec4 compressedAttribute0; // pixel offset, translate, horizontal origin, vertical origin, show, direction, texture coordinates (texture offset) +in vec4 compressedAttribute1; // aligned axis, translucency by distance, image width +in vec4 compressedAttribute2; // label horizontal origin, image height, color, pick color, size in meters, valid aligned axis, 13 bits free +in vec4 eyeOffset; // eye offset in meters, 4 bytes free (texture range) +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 pixelOffsetScaleByDistance; // near, nearScale, far, farScale +in vec4 compressedAttribute3; // distance display condition near, far, disableDepthTestDistance, dimensions +in vec2 sdf; // sdf outline color (rgb) and width (w) +in float splitDirection; // splitDirection +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) +in vec4 textureCoordinateBoundsOrLabelTranslate; // the min and max x and y values for the texture coordinates +#endif +#ifdef VECTOR_TILE +in float a_batchId; +#endif + +out vec2 v_textureCoordinates; +#ifdef FRAGMENT_DEPTH_CHECK +out vec4 v_textureCoordinateBounds; +out vec4 v_originTextureCoordinateAndTranslate; +out vec4 v_compressed; // x: eyeDepth, y: applyTranslate & enableDepthCheck, z: dimensions, w: imageSize +out mat2 v_rotationMatrix; +#endif + +out vec4 v_pickColor; +out vec4 v_color; +out float v_splitDirection; +#ifdef SDF +out vec4 v_outlineColor; +out float v_outlineWidth; +#endif + +const float UPPER_BOUND = 32768.0; + +const float SHIFT_LEFT16 = 65536.0; +const float SHIFT_LEFT12 = 4096.0; +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_LEFT7 = 128.0; +const float SHIFT_LEFT5 = 32.0; +const float SHIFT_LEFT3 = 8.0; +const float SHIFT_LEFT2 = 4.0; +const float SHIFT_LEFT1 = 2.0; + +const float SHIFT_RIGHT12 = 1.0 / 4096.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; +const float SHIFT_RIGHT7 = 1.0 / 128.0; +const float SHIFT_RIGHT5 = 1.0 / 32.0; +const float SHIFT_RIGHT3 = 1.0 / 8.0; +const float SHIFT_RIGHT2 = 1.0 / 4.0; +const float SHIFT_RIGHT1 = 1.0 / 2.0; + +vec4 addScreenSpaceOffset(vec4 positionEC, vec2 imageSize, float scale, vec2 direction, vec2 origin, vec2 translate, vec2 pixelOffset, vec3 alignedAxis, bool validAlignedAxis, float rotation, bool sizeInMeters, out mat2 rotationMatrix, out float mpp) +{ + // Note the halfSize cannot be computed in JavaScript because it is sent via + // compressed vertex attributes that coerce it to an integer. + vec2 halfSize = imageSize * scale * 0.5; + halfSize *= ((direction * 2.0) - 1.0); + + vec2 originTranslate = origin * abs(halfSize); + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + if (validAlignedAxis || rotation != 0.0) + { + float angle = rotation; + if (validAlignedAxis) + { + vec4 projectedAlignedAxis = czm_modelView3D * vec4(alignedAxis, 0.0); + angle += sign(-projectedAlignedAxis.x) * acos(sign(projectedAlignedAxis.y) * (projectedAlignedAxis.y * projectedAlignedAxis.y) / + (projectedAlignedAxis.x * projectedAlignedAxis.x + projectedAlignedAxis.y * projectedAlignedAxis.y)); + } + + float cosTheta = cos(angle); + float sinTheta = sin(angle); + rotationMatrix = mat2(cosTheta, sinTheta, -sinTheta, cosTheta); + halfSize = rotationMatrix * halfSize; + } + else + { + rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); + } +#endif + + mpp = czm_metersPerPixel(positionEC); + positionEC.xy += (originTranslate + halfSize) * czm_branchFreeTernary(sizeInMeters, 1.0, mpp); + positionEC.xy += (translate + pixelOffset) * mpp; + + return positionEC; +} + +#ifdef VERTEX_DEPTH_CHECK +float getGlobeDepth(vec4 positionEC) +{ + vec4 posWC = czm_eyeToWindowCoordinates(positionEC); + + float globeDepth = czm_unpackDepth(texture(czm_globeDepthTexture, posWC.xy / czm_viewport.zw)); + + if (globeDepth == 0.0) + { + return 0.0; // not on the globe + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(posWC.xy, globeDepth); + return eyeCoordinate.z / eyeCoordinate.w; +} +#endif +void main() +{ + // Modifying this shader may also require modifications to Billboard._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndScale.xyz; + vec3 positionLow = positionLowAndRotation.xyz; + float scale = positionHighAndScale.w; + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + float rotation = positionLowAndRotation.w; +#else + float rotation = 0.0; +#endif + + float compressed = compressedAttribute0.x; + + vec2 pixelOffset; + pixelOffset.x = floor(compressed * SHIFT_RIGHT7); + compressed -= pixelOffset.x * SHIFT_LEFT7; + pixelOffset.x -= UPPER_BOUND; + + vec2 origin; + origin.x = floor(compressed * SHIFT_RIGHT5); + compressed -= origin.x * SHIFT_LEFT5; + + origin.y = floor(compressed * SHIFT_RIGHT3); + compressed -= origin.y * SHIFT_LEFT3; + +#ifdef FRAGMENT_DEPTH_CHECK + vec2 depthOrigin = origin.xy; +#endif + origin -= vec2(1.0); + + float show = floor(compressed * SHIFT_RIGHT2); + compressed -= show * SHIFT_LEFT2; + +#ifdef INSTANCED + vec2 textureCoordinatesBottomLeft = czm_decompressTextureCoordinates(compressedAttribute0.w); + vec2 textureCoordinatesRange = czm_decompressTextureCoordinates(eyeOffset.w); + vec2 textureCoordinates = textureCoordinatesBottomLeft + direction * textureCoordinatesRange; +#else + vec2 direction; + direction.x = floor(compressed * SHIFT_RIGHT1); + direction.y = compressed - direction.x * SHIFT_LEFT1; + + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressedAttribute0.w); +#endif + + float temp = compressedAttribute0.y * SHIFT_RIGHT8; + pixelOffset.y = -(floor(temp) - UPPER_BOUND); + + vec2 translate; + translate.y = (temp - floor(temp)) * SHIFT_LEFT16; + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + translate.x = floor(temp) - UPPER_BOUND; + + translate.y += (temp - floor(temp)) * SHIFT_LEFT8; + translate.y -= UPPER_BOUND; + + temp = compressedAttribute1.x * SHIFT_RIGHT8; + float temp2 = floor(compressedAttribute2.w * SHIFT_RIGHT2); + + vec2 imageSize = vec2(floor(temp), temp2); + +#ifdef FRAGMENT_DEPTH_CHECK + float labelHorizontalOrigin = floor(compressedAttribute2.w - (temp2 * SHIFT_LEFT2)); + float applyTranslate = 0.0; + if (labelHorizontalOrigin != 0.0) // is a billboard, so set apply translate to false + { + applyTranslate = 1.0; + labelHorizontalOrigin -= 2.0; + depthOrigin.x = labelHorizontalOrigin + 1.0; + } + + depthOrigin = vec2(1.0) - (depthOrigin * 0.5); +#endif + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + +#if defined(VERTEX_DEPTH_CHECK) || defined(FRAGMENT_DEPTH_CHECK) + temp = compressedAttribute3.w; + temp = temp * SHIFT_RIGHT12; + + vec2 dimensions; + dimensions.y = (temp - floor(temp)) * SHIFT_LEFT12; + dimensions.x = floor(temp); +#endif + +#ifdef ALIGNED_AXIS + vec3 alignedAxis = czm_octDecode(floor(compressedAttribute1.y * SHIFT_RIGHT8)); + temp = compressedAttribute2.z * SHIFT_RIGHT5; + bool validAlignedAxis = (temp - floor(temp)) * SHIFT_LEFT1 > 0.0; +#else + vec3 alignedAxis = vec3(0.0); + bool validAlignedAxis = false; +#endif + + vec4 pickColor; + vec4 color; + + temp = compressedAttribute2.y; + temp = temp * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + temp = compressedAttribute2.x; + temp = temp * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + temp = compressedAttribute2.z * SHIFT_RIGHT8; + bool sizeInMeters = floor((temp - floor(temp)) * SHIFT_LEFT7) > 0.0; + temp = floor(temp) * SHIFT_RIGHT8; + + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor /= 255.0; + + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + +#if defined(FRAGMENT_DEPTH_CHECK) || defined(VERTEX_DEPTH_CHECK) + float eyeDepth = positionEC.z; +#endif + + positionEC = czm_eyeOffset(positionEC, eyeOffset.xyz); + positionEC.xyz *= show; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(EYE_DISTANCE_PIXEL_OFFSET) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + float distanceScale = czm_nearFarScalar(scaleByDistance, lengthSq); + scale *= distanceScale; + translate *= distanceScale; + // push vertex behind near plane for clipping + if (scale == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency == 0.0) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef EYE_DISTANCE_PIXEL_OFFSET + float pixelOffsetScale = czm_nearFarScalar(pixelOffsetScaleByDistance, lengthSq); + pixelOffset *= pixelOffsetScale; +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = compressedAttribute3.x; + float farSq = compressedAttribute3.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + positionEC.xyz = vec3(0.0); + } +#endif + + mat2 rotationMatrix; + float mpp; + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = compressedAttribute3.z; +#endif + +#ifdef VERTEX_DEPTH_CHECK +if (lengthSq < disableDepthTestDistance) { + float depthsilon = 10.0; + + vec2 labelTranslate = textureCoordinateBoundsOrLabelTranslate.xy; + vec4 pEC1 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth1 = getGlobeDepth(pEC1); + + if (globeDepth1 != 0.0 && pEC1.z + depthsilon < globeDepth1) + { + vec4 pEC2 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(0.0, 1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth2 = getGlobeDepth(pEC2); + + if (globeDepth2 != 0.0 && pEC2.z + depthsilon < globeDepth2) + { + vec4 pEC3 = addScreenSpaceOffset(positionEC, dimensions, scale, vec2(1.0), origin, labelTranslate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + float globeDepth3 = getGlobeDepth(pEC3); + if (globeDepth3 != 0.0 && pEC3.z + depthsilon < globeDepth3) + { + positionEC.xyz = vec3(0.0); + } + } + } +} +#endif + + positionEC = addScreenSpaceOffset(positionEC, imageSize, scale, direction, origin, translate, pixelOffset, alignedAxis, validAlignedAxis, rotation, sizeInMeters, rotationMatrix, mpp); + gl_Position = czm_projection * positionEC; + v_textureCoordinates = textureCoordinates; + +#ifdef LOG_DEPTH + czm_vertexLogDepth(); +#endif + +#ifdef DISABLE_DEPTH_DISTANCE + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + v_depthFromNearPlusOne = 1.0; +#endif + } + } +#endif + +#ifdef FRAGMENT_DEPTH_CHECK + if (sizeInMeters) { + translate /= mpp; + dimensions /= mpp; + imageSize /= mpp; + } + +#if defined(ROTATION) || defined(ALIGNED_AXIS) + v_rotationMatrix = rotationMatrix; +#else + v_rotationMatrix = mat2(1.0, 0.0, 0.0, 1.0); +#endif + + float enableDepthCheck = 0.0; + if (lengthSq < disableDepthTestDistance) + { + enableDepthCheck = 1.0; + } + + float dw = floor(clamp(dimensions.x, 0.0, SHIFT_LEFT12)); + float dh = floor(clamp(dimensions.y, 0.0, SHIFT_LEFT12)); + + float iw = floor(clamp(imageSize.x, 0.0, SHIFT_LEFT12)); + float ih = floor(clamp(imageSize.y, 0.0, SHIFT_LEFT12)); + + v_compressed.x = eyeDepth; + v_compressed.y = applyTranslate * SHIFT_LEFT1 + enableDepthCheck; + v_compressed.z = dw * SHIFT_LEFT12 + dh; + v_compressed.w = iw * SHIFT_LEFT12 + ih; + v_originTextureCoordinateAndTranslate.xy = depthOrigin; + v_originTextureCoordinateAndTranslate.zw = translate; + v_textureCoordinateBounds = textureCoordinateBoundsOrLabelTranslate; + +#endif + +#ifdef SDF + vec4 outlineColor; + float outlineWidth; + + temp = sdf.x; + temp = temp * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + temp = sdf.y; + temp = temp * SHIFT_RIGHT8; + float temp3 = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineWidth = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.a = floor(temp); + outlineColor /= 255.0; + + v_outlineWidth = outlineWidth / 255.0; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency; +#endif + + v_pickColor = pickColor; + + v_color = color; + v_color.a *= translucency; + v_splitDirection = splitDirection; +} +`;function mi(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Vt.clone(n)),l(i)&&(i=Vt.clone(i)),l(o)&&(o=Vt.clone(o)),l(r)&&(r=Ft.clone(r)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._pixelOffset=U.clone(y(e.pixelOffset,U.ZERO)),this._translate=new U(0,0),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._heightReference=y(e.heightReference,Ke.NONE),this._verticalOrigin=y(e.verticalOrigin,On.CENTER),this._horizontalOrigin=y(e.horizontalOrigin,gi.CENTER),this._scale=y(e.scale,1),this._color=z.clone(y(e.color,z.WHITE)),this._rotation=y(e.rotation,0),this._alignedAxis=h.clone(y(e.alignedAxis,h.ZERO)),this._width=e.width,this._height=e.height,this._scaleByDistance=o,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._sizeInMeters=y(e.sizeInMeters,!1),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._id=e.id,this._collection=y(e.collection,t),this._pickId=void 0,this._pickPrimitive=y(e._pickPrimitive,this),this._billboardCollection=t,this._dirty=!1,this._index=-1,this._batchIndex=void 0,this._imageIndex=-1,this._imageIndexPromise=void 0,this._imageId=void 0,this._image=void 0,this._imageSubRegion=void 0,this._imageWidth=void 0,this._imageHeight=void 0,this._labelDimensions=void 0,this._labelHorizontalOrigin=void 0,this._labelTranslate=void 0;let s=e.image,a=e.imageId;l(s)&&(l(a)||(typeof s=="string"?a=s:l(s.src)?a=s.src:a=zn()),this._imageId=a,this._image=s),l(e.imageSubRegion)&&(this._imageId=a,this._imageSubRegion=e.imageSubRegion),l(this._billboardCollection._textureAtlas)&&this._loadImage(),this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=ne.SCENE3D,this._clusterShow=!0,this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,0),this._updateClamping(),this._splitDirection=y(e.splitDirection,zr.NONE)}var Wse=mi.SHOW_INDEX=0,lB=mi.POSITION_INDEX=1,Xse=mi.PIXEL_OFFSET_INDEX=2,b9e=mi.EYE_OFFSET_INDEX=3,T9e=mi.HORIZONTAL_ORIGIN_INDEX=4,A9e=mi.VERTICAL_ORIGIN_INDEX=5,C9e=mi.SCALE_INDEX=6,uB=mi.IMAGE_INDEX_INDEX=7,jse=mi.COLOR_INDEX=8,E9e=mi.ROTATION_INDEX=9,S9e=mi.ALIGNED_AXIS_INDEX=10,v9e=mi.SCALE_BY_DISTANCE_INDEX=11,w9e=mi.TRANSLUCENCY_BY_DISTANCE_INDEX=12,D9e=mi.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX=13,I9e=mi.DISTANCE_DISPLAY_CONDITION=14,P9e=mi.DISABLE_DEPTH_DISTANCE=15;mi.TEXTURE_COORDINATE_BOUNDS=16;var qse=mi.SDF_INDEX=17,R9e=mi.SPLIT_DIRECTION_INDEX=18;mi.NUMBER_OF_PROPERTIES=19;function vo(e,t){let n=e._billboardCollection;l(n)&&(n._updateBillboard(e,t),e._dirty=!0)}Object.defineProperties(mi.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,vo(this,Wse))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),this._updateClamping(),vo(this,lB))}},heightReference:{get:function(){return this._heightReference},set:function(e){let t=this._heightReference;e!==t&&(this._heightReference=e,this._updateClamping(),vo(this,lB))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;U.equals(t,e)||(U.clone(e,t),vo(this,Xse))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Vt.equals(t,e)||(this._scaleByDistance=Vt.clone(e,t),vo(this,v9e))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Vt.equals(t,e)||(this._translucencyByDistance=Vt.clone(e,t),vo(this,w9e))}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;Vt.equals(t,e)||(this._pixelOffsetScaleByDistance=Vt.clone(e,t),vo(this,D9e))}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;h.equals(t,e)||(h.clone(e,t),vo(this,b9e))}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,vo(this,T9e))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin!==e&&(this._verticalOrigin=e,vo(this,A9e))}},scale:{get:function(){return this._scale},set:function(e){this._scale!==e&&(this._scale=e,vo(this,C9e))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),vo(this,jse))}},rotation:{get:function(){return this._rotation},set:function(e){this._rotation!==e&&(this._rotation=e,vo(this,E9e))}},alignedAxis:{get:function(){return this._alignedAxis},set:function(e){let t=this._alignedAxis;h.equals(t,e)||(h.clone(e,t),vo(this,S9e))}},width:{get:function(){return y(this._width,this._imageWidth)},set:function(e){this._width!==e&&(this._width=e,vo(this,uB))}},height:{get:function(){return y(this._height,this._imageHeight)},set:function(e){this._height!==e&&(this._height=e,vo(this,uB))}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters!==e&&(this._sizeInMeters=e,vo(this,jse))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ft.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Ft.clone(e,this._distanceDisplayCondition),vo(this,I9e))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,vo(this,P9e))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickPrimitive:{get:function(){return this._pickPrimitive},set:function(e){this._pickPrimitive=e,l(this._pickId)&&(this._pickId.object.primitive=e)}},pickId:{get:function(){return this._pickId}},image:{get:function(){return this._imageId},set:function(e){l(e)?typeof e=="string"?this.setImage(e,e):e instanceof De?this.setImage(e.url,e):l(e.src)?this.setImage(e.src,e):this.setImage(zn(),e):(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=void 0,this._image=void 0,this._imageIndexPromise=void 0,vo(this,uB))}},ready:{get:function(){return this._imageIndex!==-1}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition),vo(this,lB)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,vo(this,Wse))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),vo(this,qse))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,vo(this,qse))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,vo(this,R9e))}}});mi.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this._pickPrimitive,collection:this._collection,id:this._id})),this._pickId};mi.prototype._updateClamping=function(){mi._updateClamping(this._billboardCollection,this)};var fB=new fe;mi._updateClamping=function(e,t){let n=e._scene;if(!l(n))return;let i=y(n.ellipsoid,ee.default),o=n.frameState.mode,r=o!==t._mode;if(t._mode=o,(t._heightReference===Ke.NONE||r)&&l(t._removeCallbackFunc)&&(t._removeCallbackFunc(),t._removeCallbackFunc=void 0,t._clampedPosition=void 0),t._heightReference===Ke.NONE||!l(t._position))return;l(t._removeCallbackFunc)&&t._removeCallbackFunc();let s=i.cartesianToCartographic(t._position);if(!l(s)){t._actualClampedPosition=void 0;return}function a(u){let f=i.cartographicToCartesian(u,t._clampedPosition);wT(t._heightReference)&&(t._mode===ne.SCENE3D?(u.height+=s.height,i.cartographicToCartesian(u,f)):f.x+=s.height),t._clampedPosition=f}t._removeCallbackFunc=n.updateHeight(s,a,t._heightReference),fe.clone(s,fB);let c=n.getHeight(s,t._heightReference);l(c)&&(fB.height=c),a(fB)};mi.prototype._loadImage=function(){let e=this._billboardCollection._textureAtlas,t=this._imageId,n=this._image,i=this._imageSubRegion,o,r=this;function s(c){if(r._imageId!==t||r._image!==n||!qe.equals(r._imageSubRegion,i))return;let u=e.textureCoordinates[c];r._imageWidth=e.texture.width*u.width,r._imageHeight=e.texture.height*u.height,r._imageIndex=c,r._ready=!0,r._image=void 0,r._imageIndexPromise=void 0,vo(r,uB);let f=r._billboardCollection._scene;l(f)&&f.frameState.afterRender.push(()=>!0)}if(l(n)&&(o=e.addImage(t,n)),l(i)&&(o=e.addSubRegion(t,i)),this._imageIndexPromise=o,!l(o))return;let a=e.getImageIndex(t);if(l(a)&&!l(i)){s(a);return}o.then(s).catch(function(c){console.error(`Error loading image for billboard: ${c}`),r._imageIndexPromise=void 0})};mi.prototype.setImage=function(e,t){this._imageId!==e&&(this._imageIndex=-1,this._imageSubRegion=void 0,this._imageId=e,this._image=t,l(this._billboardCollection._textureAtlas)&&this._loadImage())};mi.prototype.setImageSubRegion=function(e,t){this._imageId===e&&qe.equals(this._imageSubRegion,t)||(this._imageIndex=-1,this._imageId=e,this._imageSubRegion=qe.clone(t),l(this._billboardCollection._textureAtlas)&&this._loadImage())};mi.prototype._setTranslate=function(e){let t=this._translate;U.equals(t,e)||(U.clone(e,t),vo(this,Xse))};mi.prototype._getActualPosition=function(){return l(this._clampedPosition)?this._clampedPosition:this._actualPosition};mi.prototype._setActualPosition=function(e){l(this._clampedPosition)||h.clone(e,this._actualPosition),vo(this,lB)};var Yse=new oe;mi._computeActualPosition=function(e,t,n,i){return l(e._clampedPosition)?(n.mode!==e._mode&&e._updateClamping(),e._clampedPosition):n.mode===ne.SCENE3D?t:(F.multiplyByPoint(i,t,Yse),Vi.computeActualEllipsoidPosition(n,Yse))};var Kse=new h;mi._computeScreenSpacePosition=function(e,t,n,i,o,r){let s=F.multiplyByPoint(e,t,Kse),a=Vi.worldWithEyeOffsetToWindowCoordinates(o,s,n,r);if(l(a))return U.add(a,i,a),a};var cB=new U(0,0);mi.prototype.computeScreenSpacePosition=function(e,t){let n=this._billboardCollection;l(t)||(t=new U),U.clone(this._pixelOffset,cB),U.add(cB,this._translate,cB);let i=n.modelMatrix,o=this._position;if(l(this._clampedPosition)&&(o=this._clampedPosition,e.mode!==ne.SCENE3D)){let s=e.mapProjection,a=s.ellipsoid,c=s.unproject(o,fB);o=a.cartographicToCartesian(c,Kse),i=F.IDENTITY}return mi._computeScreenSpacePosition(i,o,this._eyeOffset,cB,e,t)};mi.getScreenSpaceBoundingBox=function(e,t,n){let i=e.width,o=e.height,r=e.scale;i*=r,o*=r;let s=t.x;e.horizontalOrigin===gi.RIGHT?s-=i:e.horizontalOrigin===gi.CENTER&&(s-=i*.5);let a=t.y;return e.verticalOrigin===On.BOTTOM||e.verticalOrigin===On.BASELINE?a-=o:e.verticalOrigin===On.CENTER&&(a-=o*.5),l(n)||(n=new qe),n.x=s,n.y=a,n.width=i,n.height=o,n};mi.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&this._imageId===e._imageId&&this._show===e._show&&this._scale===e._scale&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&qe.equals(this._imageSubRegion,e._imageSubRegion)&&z.equals(this._color,e._color)&&U.equals(this._pixelOffset,e._pixelOffset)&&U.equals(this._translate,e._translate)&&h.equals(this._eyeOffset,e._eyeOffset)&&Vt.equals(this._scaleByDistance,e._scaleByDistance)&&Vt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Vt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Ft.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};mi.prototype._destroy=function(){l(this._customData)&&(this._billboardCollection._scene.globe._surface.removeTileCustomData(this._customData),this._customData=void 0),l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this.image=void 0,this._pickId=this._pickId&&this._pickId.destroy(),this._billboardCollection=void 0};var so=mi;var O9e={OPAQUE:0,TRANSLUCENT:1,OPAQUE_AND_TRANSLUCENT:2},wo=Object.freeze(O9e);var M9e={FONT_SIZE:48,PADDING:10,RADIUS:8,CUTOFF:.25},ta=Object.freeze(M9e);function Ip(e,t,n,i,o){this.bottomLeft=y(e,U.ZERO),this.topRight=y(t,U.ZERO),this.childNode1=n,this.childNode2=i,this.imageIndex=o}var L9e=new U(16,16);function Ng(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.borderWidthInPixels,1),n=y(e.initialSize,L9e);this._context=e.context,this._pixelFormat=y(e.pixelFormat,it.RGBA),this._borderWidthInPixels=t,this._textureCoordinates=[],this._guid=zn(),this._idHash={},this._indexHash={},this._initialSize=n,this._root=void 0}Object.defineProperties(Ng.prototype,{borderWidthInPixels:{get:function(){return this._borderWidthInPixels}},textureCoordinates:{get:function(){return this._textureCoordinates}},texture:{get:function(){return l(this._texture)||(this._texture=new Ot({context:this._context,width:this._initialSize.x,height:this._initialSize.y,pixelFormat:this._pixelFormat})),this._texture}},numberOfImages:{get:function(){return this._textureCoordinates.length}},guid:{get:function(){return this._guid}}});function N9e(e,t){let n=e._context,i=e.numberOfImages,o=2,r=e._borderWidthInPixels;if(i>0){let s=e._texture.width,a=e._texture.height,c=o*(s+t.width+r),u=o*(a+t.height+r),f=s/c,d=a/u,p=new Ip(new U(s+r,r),new U(c,a)),g=new Ip(new U,new U(c,a),e._root,p),m=new Ip(new U(r,a+r),new U(c,u)),x=new Ip(new U,new U(c,u),g,m);for(let A=0;A<e._textureCoordinates.length;A++){let C=e._textureCoordinates[A];l(C)&&(C.x*=f,C.y*=d,C.width*=f,C.height*=d)}let b=new Ot({context:e._context,width:c,height:u,pixelFormat:e._pixelFormat}),T=new Vr({context:n,colorTextures:[e._texture],destroyAttachments:!1});T._bind(),b.copyFromFramebuffer(0,0,0,0,c,u),T._unBind(),T.destroy(),e._texture=e._texture&&e._texture.destroy(),e._texture=b,e._root=x}else{let s=o*(t.width+2*r),a=o*(t.height+2*r);s<e._initialSize.x&&(s=e._initialSize.x),a<e._initialSize.y&&(a=e._initialSize.y),e._texture=e._texture&&e._texture.destroy(),e._texture=new Ot({context:e._context,width:s,height:a,pixelFormat:e._pixelFormat}),e._root=new Ip(new U(r,r),new U(s,a))}}function dB(e,t,n){if(l(t)){if(!l(t.childNode1)&&!l(t.childNode2)){if(l(t.imageIndex))return;let i=t.topRight.x-t.bottomLeft.x,o=t.topRight.y-t.bottomLeft.y,r=i-n.width,s=o-n.height;if(r<0||s<0)return;if(r===0&&s===0)return t;if(r>s){t.childNode1=new Ip(new U(t.bottomLeft.x,t.bottomLeft.y),new U(t.bottomLeft.x+n.width,t.topRight.y));let a=t.bottomLeft.x+n.width+e._borderWidthInPixels;a<t.topRight.x&&(t.childNode2=new Ip(new U(a,t.bottomLeft.y),new U(t.topRight.x,t.topRight.y)))}else{t.childNode1=new Ip(new U(t.bottomLeft.x,t.bottomLeft.y),new U(t.topRight.x,t.bottomLeft.y+n.height));let a=t.bottomLeft.y+n.height+e._borderWidthInPixels;a<t.topRight.y&&(t.childNode2=new Ip(new U(t.bottomLeft.x,a),new U(t.topRight.x,t.topRight.y)))}return dB(e,t.childNode1,n)}return dB(e,t.childNode1,n)||dB(e,t.childNode2,n)}}function Zse(e,t,n){let i=dB(e,e._root,t);if(l(i)){i.imageIndex=n;let o=e._texture.width,r=e._texture.height,s=i.topRight.x-i.bottomLeft.x,a=i.topRight.y-i.bottomLeft.y,c=i.bottomLeft.x/o,u=i.bottomLeft.y/r,f=s/o,d=a/r;e._textureCoordinates[n]=new qe(c,u,f,d),e._texture.copyFrom({source:t,xOffset:i.bottomLeft.x,yOffset:i.bottomLeft.y})}else N9e(e,t),Zse(e,t,n);e._guid=zn()}function $se(e,t){if(!l(e)||e.isDestroyed())return-1;let n=e.numberOfImages;return Zse(e,t,n),n}Ng.prototype.getImageIndex=function(e){return this._indexHash[e]};Ng.prototype.addImageSync=function(e,t){let n=this._indexHash[e];return l(n)||(n=$se(this,t),this._idHash[e]=Promise.resolve(n),this._indexHash[e]=n),n};Ng.prototype.addImage=function(e,t){let n=this._idHash[e];if(l(n))return n;typeof t=="function"?t=t(e):(typeof t=="string"||t instanceof De)&&(t=De.createIfNeeded(t).fetchImage());let i=this;return n=Promise.resolve(t).then(function(o){let r=$se(i,o);return i._indexHash[e]=r,r}),this._idHash[e]=n,n};Ng.prototype.addSubRegion=function(e,t){let n=this._idHash[e];if(!l(n))throw new ce(`image with id "${e}" not found in the atlas.`);let i=this;return Promise.resolve(n).then(function(o){if(o===-1)return-1;let r=i._texture.width,s=i._texture.height,a=i._textureCoordinates[o],c=a.x+t.x/r,u=a.y+t.y/s,f=t.width/r,d=t.height/s,p=i._textureCoordinates.push(new qe(c,u,f,d))-1;return i._indexHash[e]=p,i._guid=zn(),p})};Ng.prototype.isDestroyed=function(){return!1};Ng.prototype.destroy=function(){return this._texture=this._texture&&this._texture.destroy(),ue(this)};var yx=Ng;var F9e=so.SHOW_INDEX,Dw=so.POSITION_INDEX,Qse=so.PIXEL_OFFSET_INDEX,Jse=so.EYE_OFFSET_INDEX,B9e=so.HORIZONTAL_ORIGIN_INDEX,k9e=so.VERTICAL_ORIGIN_INDEX,V9e=so.SCALE_INDEX,ww=so.IMAGE_INDEX_INDEX,eae=so.COLOR_INDEX,U9e=so.ROTATION_INDEX,z9e=so.ALIGNED_AXIS_INDEX,tae=so.SCALE_BY_DISTANCE_INDEX,nae=so.TRANSLUCENCY_BY_DISTANCE_INDEX,iae=so.PIXEL_OFFSET_SCALE_BY_DISTANCE_INDEX,oae=so.DISTANCE_DISPLAY_CONDITION,H9e=so.DISABLE_DEPTH_DISTANCE,G9e=so.TEXTURE_COORDINATE_BOUNDS,rae=so.SDF_INDEX,sae=so.SPLIT_DIRECTION_INDEX,NW=so.NUMBER_OF_PROPERTIES,no,W9e={positionHighAndScale:0,positionLowAndRotation:1,compressedAttribute0:2,compressedAttribute1:3,compressedAttribute2:4,eyeOffset:5,scaleByDistance:6,pixelOffsetScaleByDistance:7,compressedAttribute3:8,textureCoordinateBoundsOrLabelTranslate:9,a_batchId:10,sdf:11,splitDirection:12},j9e={direction:0,positionHighAndScale:1,positionLowAndRotation:2,compressedAttribute0:3,compressedAttribute1:4,compressedAttribute2:5,eyeOffset:6,scaleByDistance:7,pixelOffsetScaleByDistance:8,compressedAttribute3:9,textureCoordinateBoundsOrLabelTranslate:10,a_batchId:11,sdf:12,splitDirection:13};function hf(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._textureAtlasGUID=void 0,this._destroyTextureAtlas=!0,this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!1,this._shaderRotation=!1,this._compiledShaderRotation=!1,this._shaderAlignedAxis=!1,this._compiledShaderAlignedAxis=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderPixelOffsetScaleByDistance=!1,this._compiledShaderPixelOffsetScaleByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._shaderClampToGround=!1,this._compiledShaderClampToGround=!1,this._propertiesChanged=new Uint32Array(NW),this._maxSize=0,this._maxEyeOffset=0,this._maxScale=1,this._maxPixelOffset=0,this._allHorizontalCenter=!0,this._allVerticalCenter=!0,this._allSizedInMeters=!0,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowTextureAtlas=y(e.debugShowTextureAtlas,!1),this.blendOption=y(e.blendOption,wo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW],this._highlightColor=z.clone(z.WHITE);let t=this;this._uniforms={u_atlas:function(){return t._textureAtlas.texture},u_highlightColor:function(){return t._highlightColor}};let n=this._scene;l(n)&&l(n.terrainProviderChanged)&&(this._removeCallbackFunc=n.terrainProviderChanged.addEventListener(function(){let i=this._billboards,o=i.length;for(let r=0;r<o;++r)l(i[r])&&i[r]._updateClamping()},this))}Object.defineProperties(hf.prototype,{length:{get:function(){return FW(this),this._billboards.length}},textureAtlas:{get:function(){return this._textureAtlas},set:function(e){this._textureAtlas!==e&&(this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._textureAtlas=e,this._createVertexArray=!0)}},destroyTextureAtlas:{get:function(){return this._destroyTextureAtlas},set:function(e){this._destroyTextureAtlas=e}}});function aae(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}hf.prototype.add=function(e){let t=new so(e,this);return t._index=this._billboards.length,this._billboards.push(t),this._createVertexArray=!0,t};hf.prototype.remove=function(e){return this.contains(e)?(this._billboards[e._index]=void 0,this._billboardsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};hf.prototype.removeAll=function(){aae(this._billboards),this._billboards=[],this._billboardsToUpdate=[],this._billboardsToUpdateIndex=0,this._billboardsRemoved=!1,this._createVertexArray=!0};function FW(e){if(e._billboardsRemoved){e._billboardsRemoved=!1;let t=[],n=e._billboards,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(s._index=r++,t.push(s))}e._billboards=t}}hf.prototype._updateBillboard=function(e,t){e._dirty||(this._billboardsToUpdate[this._billboardsToUpdateIndex++]=e),++this._propertiesChanged[t]};hf.prototype.contains=function(e){return l(e)&&e._billboardCollection===this};hf.prototype.get=function(e){return FW(this),this._billboards[e]};var IW;function q9e(e){let n=e.cache.billboardCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s+0,o[r+4]=s+2,o[r+5]=s+3;return n=yt.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferBatched=n,n}function Y9e(e){let t=e.cache.billboardCollection_indexBufferInstanced;return l(t)||(t=yt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_indexBufferInstanced=t),t}function X9e(e){let t=e.cache.billboardCollection_vertexBufferInstanced;return l(t)||(t=yt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.billboardCollection_vertexBufferInstanced=t),t}hf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<NW;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function K9e(e,t,n,i,o,r){let s=[{index:no.positionHighAndScale,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Dw]},{index:no.positionLowAndRotation,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Dw]},{index:no.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Qse]},{index:no.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[nae]},{index:no.compressedAttribute2,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[eae]},{index:no.eyeOffset,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Jse]},{index:no.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[tae]},{index:no.pixelOffsetScaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[iae]},{index:no.compressedAttribute3,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[oae]},{index:no.textureCoordinateBoundsOrLabelTranslate,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[G9e]},{index:no.splitDirection,componentsPerAttribute:1,componentDatatype:X.FLOAT,usage:n[sae]}];i&&s.push({index:no.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:X9e(e)}),l(o)&&s.push({index:no.a_batchId,componentsPerAttribute:1,componentDatatype:X.FLOAT,bufferUsage:Fe.STATIC_DRAW}),r&&s.push({index:no.sdf,componentsPerAttribute:2,componentDatatype:X.FLOAT,usage:n[rae]});let a=i?t:4*t;return new U_(e,s,a,i)}var PW=new Hn;function cae(e,t,n,i,o){let r,s=i[no.positionHighAndScale],a=i[no.positionLowAndRotation],c=o._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,c,e._baseVolume),e._boundingVolumeDirty=!0),Hn.fromCartesian(c,PW);let u=o.scale,f=o.rotation;f!==0&&(e._shaderRotation=!0),e._maxScale=Math.max(e._maxScale,u);let d=PW.high,p=PW.low;e._instanced?(r=o._index,s(r,d.x,d.y,d.z,u),a(r,p.x,p.y,p.z,f)):(r=o._index*4,s(r+0,d.x,d.y,d.z,u),s(r+1,d.x,d.y,d.z,u),s(r+2,d.x,d.y,d.z,u),s(r+3,d.x,d.y,d.z,u),a(r+0,p.x,p.y,p.z,f),a(r+1,p.x,p.y,p.z,f),a(r+2,p.x,p.y,p.z,f),a(r+3,p.x,p.y,p.z,f))}var df=new U,ff=32768,HA=65536,RW=4096,Yh=256,Z9e=128,$9e=32,Q9e=8,lae=4,J9e=1/256,uae=0,fae=2,dae=3,hae=1;function mae(e,t,n,i,o){let r,s=i[no.compressedAttribute0],a=o.pixelOffset,c=a.x,u=a.y,f=o._translate,d=f.x,p=f.y;e._maxPixelOffset=Math.max(e._maxPixelOffset,Math.abs(c+d),Math.abs(-u+p));let g=o.horizontalOrigin,m=o._verticalOrigin,x=o.show&&o.clusterShow;o.color.alpha===0&&(x=!1),m===On.BASELINE&&(m=On.BOTTOM),e._allHorizontalCenter=e._allHorizontalCenter&&g===gi.CENTER,e._allVerticalCenter=e._allVerticalCenter&&m===On.CENTER;let b=0,T=0,A=0,C=0,S=o._imageIndex;if(S!==-1){let H=n[S];b=H.x,T=H.y,A=H.width,C=H.height}let v=b+A,D=T+C,O=Math.floor(P.clamp(c,-ff,ff)+ff)*Z9e;O+=(g+1)*$9e,O+=(m+1)*Q9e,O+=(x?1:0)*lae;let R=Math.floor(P.clamp(u,-ff,ff)+ff)*Yh,M=Math.floor(P.clamp(d,-ff,ff)+ff)*Yh,L=(P.clamp(p,-ff,ff)+ff)*J9e,_=Math.floor(L),E=Math.floor((L-_)*Yh);R+=_,M+=E,df.x=b,df.y=T;let w=Ln.compressTextureCoordinates(df);df.x=v;let I=Ln.compressTextureCoordinates(df);df.y=D;let N=Ln.compressTextureCoordinates(df);df.x=b;let B=Ln.compressTextureCoordinates(df);e._instanced?(r=o._index,s(r,O,R,M,w)):(r=o._index*4,s(r+0,O+uae,R,M,w),s(r+1,O+fae,R,M,I),s(r+2,O+dae,R,M,N),s(r+3,O+hae,R,M,B))}function pae(e,t,n,i,o){let r,s=i[no.compressedAttribute1],a=o.alignedAxis;h.equals(a,h.ZERO)||(e._shaderAlignedAxis=!0);let c=0,u=1,f=1,d=1,p=o.translucencyByDistance;l(p)&&(c=p.near,u=p.nearValue,f=p.far,d=p.farValue,(u!==1||d!==1)&&(e._shaderTranslucencyByDistance=!0));let g=0,m=o._imageIndex;m!==-1&&(g=n[m].width);let x=e._textureAtlas.texture.width,b=Math.round(y(o.width,x*g));e._maxSize=Math.max(e._maxSize,b);let T=P.clamp(b,0,HA),A=0;Math.abs(h.magnitudeSquared(a)-1)<P.EPSILON6&&(A=Ln.octEncodeFloat(a)),u=P.clamp(u,0,1),u=u===1?255:u*255|0,T=T*Yh+u,d=P.clamp(d,0,1),d=d===1?255:d*255|0,A=A*Yh+d,e._instanced?(r=o._index,s(r,T,A,c,f)):(r=o._index*4,s(r+0,T,A,c,f),s(r+1,T,A,c,f),s(r+2,T,A,c,f),s(r+3,T,A,c,f))}function MW(e,t,n,i,o){let r,s=i[no.compressedAttribute2],a=o.color,c=l(e._batchTable)?z.WHITE:o.getPickId(t.context).color,u=o.sizeInMeters?1:0,f=Math.abs(h.magnitudeSquared(o.alignedAxis)-1)<P.EPSILON6?1:0;e._allSizedInMeters=e._allSizedInMeters&&u===1;let d=0,p=o._imageIndex;p!==-1&&(d=n[p].height);let g=e._textureAtlas.texture.dimensions,m=Math.round(y(o.height,g.y*d));e._maxSize=Math.max(e._maxSize,m);let x=y(o._labelHorizontalOrigin,-2);x+=2;let b=m*lae+x,T=z.floatToByte(a.red),A=z.floatToByte(a.green),C=z.floatToByte(a.blue),S=T*HA+A*Yh+C;T=z.floatToByte(c.red),A=z.floatToByte(c.green),C=z.floatToByte(c.blue);let v=T*HA+A*Yh+C,D=z.floatToByte(a.alpha)*HA+z.floatToByte(c.alpha)*Yh;D+=u*2+f,e._instanced?(r=o._index,s(r,S,v,D,b)):(r=o._index*4,s(r+0,S,v,D,b),s(r+1,S,v,D,b),s(r+2,S,v,D,b),s(r+3,S,v,D,b))}function LW(e,t,n,i,o){let r,s=i[no.eyeOffset],a=o.eyeOffset,c=a.z;if(o._heightReference!==Ke.NONE&&(c*=1.005),e._maxEyeOffset=Math.max(e._maxEyeOffset,Math.abs(a.x),Math.abs(a.y),Math.abs(c)),e._instanced){let u=0,f=0,d=o._imageIndex;if(d!==-1){let g=n[d];u=g.width,f=g.height}df.x=u,df.y=f;let p=Ln.compressTextureCoordinates(df);r=o._index,s(r,a.x,a.y,c,p)}else r=o._index*4,s(r+0,a.x,a.y,c,0),s(r+1,a.x,a.y,c,0),s(r+2,a.x,a.y,c,0),s(r+3,a.x,a.y,c,0)}function _ae(e,t,n,i,o){let r,s=i[no.scaleByDistance],a=0,c=1,u=1,f=1,d=o.scaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function gae(e,t,n,i,o){let r,s=i[no.pixelOffsetScaleByDistance],a=0,c=1,u=1,f=1,d=o.pixelOffsetScaleByDistance;l(d)&&(a=d.near,c=d.nearValue,u=d.far,f=d.farValue,(c!==1||f!==1)&&(e._shaderPixelOffsetScaleByDistance=!0)),e._instanced?(r=o._index,s(r,a,c,u,f)):(r=o._index*4,s(r+0,a,c,u,f),s(r+1,a,c,u,f),s(r+2,a,c,u,f),s(r+3,a,c,u,f))}function yae(e,t,n,i,o){let r,s=i[no.compressedAttribute3],a=0,c=Number.MAX_VALUE,u=o.distanceDisplayCondition;l(u)&&(a=u.near,c=u.far,a*=a,c*=c,e._shaderDistanceDisplayCondition=!0);let f=o.disableDepthTestDistance,d=Ku(o.heightReference)&&t.context.depthTexture;l(f)||(f=d?5e3:0),f*=f,(d||f>0)&&(e._shaderDisableDepthDistance=!0,f===Number.POSITIVE_INFINITY&&(f=-1));let p,g;if(l(o._labelDimensions))g=o._labelDimensions.x,p=o._labelDimensions.y;else{let T=0,A=0,C=o._imageIndex;if(C!==-1){let v=n[C];T=v.height,A=v.width}p=Math.round(y(o.height,e._textureAtlas.texture.dimensions.y*T));let S=e._textureAtlas.texture.width;g=Math.round(y(o.width,S*A))}let m=Math.floor(P.clamp(g,0,RW)),x=Math.floor(P.clamp(p,0,RW)),b=m*RW+x;e._instanced?(r=o._index,s(r,a,c,f,b)):(r=o._index*4,s(r+0,a,c,f,b),s(r+1,a,c,f,b),s(r+2,a,c,f,b),s(r+3,a,c,f,b))}function xae(e,t,n,i,o){if(Ku(o.heightReference)){let m=e._scene,x=t.context,b=t.globeTranslucencyState.translucent,T=l(m.globe)&&m.globe.depthTestAgainstTerrain;e._shaderClampToGround=x.depthTexture&&!b&&T}let r,s=i[no.textureCoordinateBoundsOrLabelTranslate];if(zt.maximumVertexTextureImageUnits>0){let m=0,x=0;l(o._labelTranslate)&&(m=o._labelTranslate.x,x=o._labelTranslate.y),e._instanced?(r=o._index,s(r,m,x,0,0)):(r=o._index*4,s(r+0,m,x,0,0),s(r+1,m,x,0,0),s(r+2,m,x,0,0),s(r+3,m,x,0,0));return}let a=0,c=0,u=0,f=0,d=o._imageIndex;if(d!==-1){let m=n[d];a=m.x,c=m.y,u=m.width,f=m.height}let p=a+u,g=c+f;e._instanced?(r=o._index,s(r,a,c,p,g)):(r=o._index*4,s(r+0,a,c,p,g),s(r+1,a,c,p,g),s(r+2,a,c,p,g),s(r+3,a,c,p,g))}function eWe(e,t,n,i,o){if(!l(e._batchTable))return;let r=i[no.a_batchId],s=o._batchIndex,a;e._instanced?(a=o._index,r(a,s)):(a=o._index*4,r(a+0,s),r(a+1,s),r(a+2,s),r(a+3,s))}function bae(e,t,n,i,o){if(!e._sdf)return;let r,s=i[no.sdf],a=o.outlineColor,c=o.outlineWidth,u=z.floatToByte(a.red),f=z.floatToByte(a.green),d=z.floatToByte(a.blue),p=u*HA+f*Yh+d,g=c/ta.RADIUS,m=z.floatToByte(a.alpha)*HA+z.floatToByte(g)*Yh;e._instanced?(r=o._index,s(r,p,m)):(r=o._index*4,s(r+0,p+uae,m),s(r+1,p+fae,m),s(r+2,p+dae,m),s(r+3,p+hae,m))}function Tae(e,t,n,i,o){let r=i[no.splitDirection],s=0,a=o.splitDirection;l(a)&&(s=a);let c;e._instanced?(c=o._index,r(c,s)):(c=o._index*4,r(c+0,s),r(c+1,s),r(c+2,s),r(c+3,s))}function tWe(e,t,n,i,o){cae(e,t,n,i,o),mae(e,t,n,i,o),pae(e,t,n,i,o),MW(e,t,n,i,o),LW(e,t,n,i,o),_ae(e,t,n,i,o),gae(e,t,n,i,o),yae(e,t,n,i,o),xae(e,t,n,i,o),eWe(e,t,n,i,o),bae(e,t,n,i,o),Tae(e,t,n,i,o)}function OW(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=so._computeActualPosition(u,f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function nWe(e,t){let n=t.mode,i=e._billboards,o=e._billboardsToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&OW(e,i,i.length,t,r,!0)):n===ne.MORPHING?OW(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&OW(e,o,e._billboardsToUpdateIndex,t,r,!1)}function iWe(e,t,n){let i=1;(!e._allSizedInMeters||e._maxPixelOffset!==0)&&(i=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight));let o=i*e._maxScale*e._maxSize*2;e._allHorizontalCenter&&e._allVerticalCenter&&(o*=.5);let r=i*e._maxPixelOffset+e._maxEyeOffset;n.radius+=o+r}function oWe(e,t){let i=t.createViewportQuadCommand(`uniform sampler2D billboard_texture; +in vec2 v_textureCoordinates; +void main() +{ + out_FragColor = texture(billboard_texture, v_textureCoordinates); +} +`,{uniformMap:{billboard_texture:function(){return e._textureAtlas.texture}}});return i.pass=ve.OVERLAY,i}var rWe=[];hf.prototype.update=function(e){if(FW(this),!this.show)return;let t=this._billboards,n=t.length,i=e.context;this._instanced=i.instancedArrays,no=this._instanced?j9e:W9e,IW=this._instanced?Y9e:q9e;let o=this._textureAtlas;if(!l(o)){o=this._textureAtlas=new yx({context:i});for(let R=0;R<n;++R)t[R]._loadImage()}let r=o.textureCoordinates;if(r.length===0)return;nWe(this,e),t=this._billboards,n=t.length;let s=this._billboardsToUpdate,a=this._billboardsToUpdateIndex,c=this._propertiesChanged,u=o.guid,f=this._createVertexArray||this._textureAtlasGUID!==u;this._textureAtlasGUID=u;let d,p=e.passes,g=p.pick;if(f||!g&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let R=0;R<NW;++R)c[R]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=K9e(i,n,this._buffersUsage,this._instanced,this._batchTable,this._sdf),d=this._vaf.writers;for(let R=0;R<n;++R){let M=this._billboards[R];M._dirty=!1,tWe(this,e,r,d,M)}this._vaf.commit(IW(i))}this._billboardsToUpdateIndex=0}else if(a>0){let R=rWe;R.length=0,(c[Dw]||c[U9e]||c[V9e])&&R.push(cae),(c[ww]||c[Qse]||c[B9e]||c[k9e]||c[F9e])&&(R.push(mae),this._instanced&&R.push(LW)),(c[ww]||c[z9e]||c[nae])&&(R.push(pae),R.push(MW)),(c[ww]||c[eae])&&R.push(MW),c[Jse]&&R.push(LW),c[tae]&&R.push(_ae),c[iae]&&R.push(gae),(c[oae]||c[H9e]||c[ww]||c[Dw])&&R.push(yae),(c[ww]||c[Dw])&&R.push(xae),c[rae]&&R.push(bae),c[sae]&&R.push(Tae);let M=R.length;if(d=this._vaf.writers,a/n>.1){for(let L=0;L<a;++L){let _=s[L];_._dirty=!1;for(let E=0;E<M;++E)R[E](this,e,r,d,_)}this._vaf.commit(IW(i))}else{for(let L=0;L<a;++L){let _=s[L];_._dirty=!1;for(let E=0;E<M;++E)R[E](this,e,r,d,_);this._instanced?this._vaf.subCommit(_._index,1):this._vaf.subCommit(_._index*4,4)}this._vaf.endSubCommits()}this._billboardsToUpdateIndex=0}if(a>n*1.5&&(s.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let m,x=F.IDENTITY;e.mode===ne.SCENE3D?(x=this.modelMatrix,m=se.clone(this._baseVolumeWC,this._boundingVolume)):m=se.clone(this._baseVolume2D,this._boundingVolume),iWe(this,e,m);let b=this._blendOption!==this.blendOption;if(this._blendOption=this.blendOption,b){this._blendOption===wo.OPAQUE||this._blendOption===wo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!0}):this._rsOpaque=void 0;let R=this._blendOption===wo.TRANSLUCENT;this._blendOption===wo.TRANSLUCENT||this._blendOption===wo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:R?te.LEQUAL:te.LESS},depthMask:R,blending:ln.ALPHA_BLEND}):this._rsTranslucent=void 0}this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let T,A,C,S,v,D=zt.maximumVertexTextureImageUnits>0;if(b||this._shaderRotation!==this._compiledShaderRotation||this._shaderAlignedAxis!==this._compiledShaderAlignedAxis||this._shaderScaleByDistance!==this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance!==this._compiledShaderTranslucencyByDistance||this._shaderPixelOffsetScaleByDistance!==this._compiledShaderPixelOffsetScaleByDistance||this._shaderDistanceDisplayCondition!==this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance||this._shaderClampToGround!==this._compiledShaderClampToGround||this._sdf!==this._compiledSDF){T=aB,A=sB,v=[],l(this._batchTable)&&(v.push("VECTOR_TILE"),T=this._batchTable.getVertexShaderCallback(!1,"a_batchId",void 0)(T),A=this._batchTable.getFragmentShaderCallback(!1,void 0)(A)),C=new Ue({defines:v,sources:[T]}),this._instanced&&C.defines.push("INSTANCED"),this._shaderRotation&&C.defines.push("ROTATION"),this._shaderAlignedAxis&&C.defines.push("ALIGNED_AXIS"),this._shaderScaleByDistance&&C.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&C.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderPixelOffsetScaleByDistance&&C.defines.push("EYE_DISTANCE_PIXEL_OFFSET"),this._shaderDistanceDisplayCondition&&C.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&C.defines.push("DISABLE_DEPTH_DISTANCE"),this._shaderClampToGround&&(D?C.defines.push("VERTEX_DEPTH_CHECK"):C.defines.push("FRAGMENT_DEPTH_CHECK"));let R=1-ta.CUTOFF;this._sdf&&C.defines.push("SDF");let M=l(this._batchTable)?"VECTOR_TILE":"";this._blendOption===wo.OPAQUE_AND_TRANSLUCENT&&(S=new Ue({defines:["OPAQUE",M],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=en.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:no}),S=new Ue({defines:["TRANSLUCENT",M],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=en.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:no})),this._blendOption===wo.OPAQUE&&(S=new Ue({defines:[M],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._sp=en.replaceCache({context:i,shaderProgram:this._sp,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:no})),this._blendOption===wo.TRANSLUCENT&&(S=new Ue({defines:[M],sources:[A]}),this._shaderClampToGround&&(D?S.defines.push("VERTEX_DEPTH_CHECK"):S.defines.push("FRAGMENT_DEPTH_CHECK")),this._sdf&&(S.defines.push("SDF"),S.defines.push(`SDF_EDGE ${R}`)),this._spTranslucent=en.replaceCache({context:i,shaderProgram:this._spTranslucent,vertexShaderSource:C,fragmentShaderSource:S,attributeLocations:no})),this._compiledShaderRotation=this._shaderRotation,this._compiledShaderAlignedAxis=this._shaderAlignedAxis,this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderPixelOffsetScaleByDistance=this._shaderPixelOffsetScaleByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance,this._compiledShaderClampToGround=this._shaderClampToGround,this._compiledSDF=this._sdf}let O=e.commandList;if(p.render||p.pick){let R=this._colorCommands,M=this._blendOption===wo.OPAQUE,L=this._blendOption===wo.OPAQUE_AND_TRANSLUCENT,_=this._vaf.va,E=_.length,w=this._uniforms,I;l(this._batchTable)?(w=this._batchTable.getUniformMapCallback()(w),I=this._batchTable.getPickId()):I="v_pickColor",R.length=E;let N=L?E*2:E;for(let B=0;B<N;++B){let H=R[B];l(H)||(H=R[B]=new et);let V=M||L&&B%2===0;H.pass=V||!L?ve.OPAQUE:ve.TRANSLUCENT,H.owner=this;let G=L?Math.floor(B/2):B;H.boundingVolume=m,H.modelMatrix=x,H.count=_[G].indicesCount,H.shaderProgram=V?this._sp:this._spTranslucent,H.uniformMap=w,H.vertexArray=_[G].va,H.renderState=V?this._rsOpaque:this._rsTranslucent,H.debugShowBoundingVolume=this.debugShowBoundingVolume,H.pickId=I,this._instanced&&(H.count=6,H.instanceCount=n),O.push(H)}this.debugShowTextureAtlas&&(l(this.debugCommand)||(this.debugCommand=oWe(this,e.context)),O.push(this.debugCommand))}};hf.prototype.isDestroyed=function(){return!1};hf.prototype.destroy=function(){return l(this._removeCallbackFunc)&&(this._removeCallbackFunc(),this._removeCallbackFunc=void 0),this._textureAtlas=this._destroyTextureAtlas&&this._textureAtlas&&this._textureAtlas.destroy(),this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),aae(this._billboards),ue(this)};var mf=hf;function sWe(e,t,n,i,o){return function(){let r=document.createElement("canvas"),s=o+2*i;r.height=r.width=s;let a=r.getContext("2d");return a.clearRect(0,0,s,s),i!==0&&(a.beginPath(),a.arc(s/2,s/2,s/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=n,a.fill(),e<1&&(a.save(),a.globalCompositeOperation="destination-out",a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle="black",a.fill(),a.restore())),a.beginPath(),a.arc(s/2,s/2,o/2,0,2*Math.PI,!0),a.closePath(),a.fillStyle=t,a.fill(),r}}var GA=sWe;function na(e,t,n,i,o){this._content=e,this._billboard=n,this._label=i,this._polyline=o,this._batchId=t,this._billboardImage=void 0,this._billboardColor=void 0,this._billboardOutlineColor=void 0,this._billboardOutlineWidth=void 0,this._billboardSize=void 0,this._pointSize=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._heightOffset=void 0,this._pickIds=new Array(3),WA(this)}var aWe=new fe;Object.defineProperties(na.prototype,{show:{get:function(){return this._label.show},set:function(e){this._label.show=e,this._billboard.show=e,this._polyline.show=e}},color:{get:function(){return this._color},set:function(e){this._color=z.clone(e,this._color),WA(this)}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=e,WA(this)}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=z.clone(e,this._pointOutlineColor),WA(this)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=e,WA(this)}},labelColor:{get:function(){return this._label.fillColor},set:function(e){this._label.fillColor=e,this._polyline.show=this._label.show&&e.alpha>0}},labelOutlineColor:{get:function(){return this._label.outlineColor},set:function(e){this._label.outlineColor=e}},labelOutlineWidth:{get:function(){return this._label.outlineWidth},set:function(e){this._label.outlineWidth=e}},font:{get:function(){return this._label.font},set:function(e){this._label.font=e}},labelStyle:{get:function(){return this._label.style},set:function(e){this._label.style=e}},labelText:{get:function(){return this._label.text},set:function(e){l(e)||(e=""),this._label.text=e}},backgroundColor:{get:function(){return this._label.backgroundColor},set:function(e){this._label.backgroundColor=e}},backgroundPadding:{get:function(){return this._label.backgroundPadding},set:function(e){this._label.backgroundPadding=e}},backgroundEnabled:{get:function(){return this._label.showBackground},set:function(e){this._label.showBackground=e}},scaleByDistance:{get:function(){return this._label.scaleByDistance},set:function(e){this._label.scaleByDistance=e,this._billboard.scaleByDistance=e}},translucencyByDistance:{get:function(){return this._label.translucencyByDistance},set:function(e){this._label.translucencyByDistance=e,this._billboard.translucencyByDistance=e}},distanceDisplayCondition:{get:function(){return this._label.distanceDisplayCondition},set:function(e){this._label.distanceDisplayCondition=e,this._polyline.distanceDisplayCondition=e,this._billboard.distanceDisplayCondition=e}},heightOffset:{get:function(){return this._heightOffset},set:function(e){let t=y(this._heightOffset,0),n=this._content.tileset.ellipsoid,i=n.cartesianToCartographic(this._billboard.position,aWe);i.height=i.height-t+e;let o=n.cartographicToCartesian(i);this._billboard.position=o,this._label.position=this._billboard.position,this._polyline.positions=[this._polyline.positions[0],o],this._heightOffset=e}},anchorLineEnabled:{get:function(){return this._polyline.show},set:function(e){this._polyline.show=e}},anchorLineColor:{get:function(){return this._polyline.material.uniforms.color},set:function(e){this._polyline.material.uniforms.color=z.clone(e,this._polyline.material.uniforms.color)}},image:{get:function(){return this._billboardImage},set:function(e){let t=this._billboardImage!==e;this._billboardImage=e,t&&WA(this)}},disableDepthTestDistance:{get:function(){return this._label.disableDepthTestDistance},set:function(e){this._label.disableDepthTestDistance=e,this._billboard.disableDepthTestDistance=e}},horizontalOrigin:{get:function(){return this._billboard.horizontalOrigin},set:function(e){this._billboard.horizontalOrigin=e}},verticalOrigin:{get:function(){return this._billboard.verticalOrigin},set:function(e){this._billboard.verticalOrigin=e}},labelHorizontalOrigin:{get:function(){return this._label.horizontalOrigin},set:function(e){this._label.horizontalOrigin=e}},labelVerticalOrigin:{get:function(){return this._label.verticalOrigin},set:function(e){this._label.verticalOrigin=e}},content:{get:function(){return this._content}},tileset:{get:function(){return this._content.tileset}},primitive:{get:function(){return this._content.tileset}},pickIds:{get:function(){let e=this._pickIds;return e[0]=this._billboard.pickId,e[1]=this._label.pickId,e[2]=this._polyline.pickId,e}}});na.defaultColor=z.WHITE;na.defaultPointOutlineColor=z.BLACK;na.defaultPointOutlineWidth=0;na.defaultPointSize=8;function WA(e){let t=e._billboard;if(l(e._billboardImage)&&e._billboardImage!==t.image){t.image=e._billboardImage;return}if(l(e._billboardImage))return;let n=y(e._color,na.defaultColor),i=y(e._pointOutlineColor,na.defaultPointOutlineColor),o=y(e._pointOutlineWidth,na.defaultPointOutlineWidth),r=y(e._pointSize,na.defaultPointSize),s=e._billboardColor,a=e._billboardOutlineColor,c=e._billboardOutlineWidth,u=e._billboardSize;if(z.equals(n,s)&&z.equals(i,a)&&o===c&&r===u)return;e._billboardColor=z.clone(n,e._billboardColor),e._billboardOutlineColor=z.clone(i,e._billboardOutlineColor),e._billboardOutlineWidth=o,e._billboardSize=r;let f=n.alpha,d=n.toCssColorString(),p=i.toCssColorString(),g=JSON.stringify([d,r,p,o]);t.setImage(g,GA(f,d,p,o,r))}na.prototype.hasProperty=function(e){return this._content.batchTable.hasProperty(this._batchId,e)};na.prototype.getPropertyIds=function(e){return this._content.batchTable.getPropertyIds(this._batchId,e)};na.prototype.getProperty=function(e){return this._content.batchTable.getProperty(this._batchId,e)};na.prototype.getPropertyInherited=function(e){return Zs.getPropertyInherited(this._content,this._batchId,e)};na.prototype.setProperty=function(e,t){this._content.batchTable.setProperty(this._batchId,e,t),this._content.featurePropertiesDirty=!0};na.prototype.isExactClass=function(e){return this._content.batchTable.isExactClass(this._batchId,e)};na.prototype.isClass=function(e){return this._content.batchTable.isClass(this._batchId,e)};na.prototype.getExactClassName=function(){return this._content.batchTable.getExactClassName(this._batchId)};var Fg=na;function cWe(e,t,n,i,o){let r=e.measureText(t);if(!!/\S/.test(t)){let a=document.defaultView.getComputedStyle(e.canvas).getPropertyValue("font-size").replace("px",""),c=document.createElement("canvas"),u=100,f=r.width+u|0,d=3*a,p=d/2;c.width=f,c.height=d;let g=c.getContext("2d");g.font=n,g.fillStyle="white",g.fillRect(0,0,c.width+1,c.height+1),i&&(g.strokeStyle="black",g.lineWidth=e.lineWidth,g.strokeText(t,u/2,p)),o&&(g.fillStyle="black",g.fillText(t,u/2,p));let m=g.getImageData(0,0,f,d).data,x=m.length,b=f*4,T,A,C,S;for(T=0;T<x;++T)if(m[T]!==255){C=T/b|0;break}for(T=x-1;T>=0;--T)if(m[T]!==255){S=T/b|0;break}let v=-1;for(T=0;T<f&&v===-1;++T)for(A=0;A<d;++A){let D=T*4+A*b;if(m[D]!==255||m[D+1]!==255||m[D+2]!==255||m[D+3]!==255){v=T;break}}return{width:r.width,height:S-C,ascent:p-C,descent:S-p,minx:v-u/2}}return{width:r.width,height:0,ascent:0,descent:0,minx:0}}var xx;function lWe(e,t){if(e==="")return;t=y(t,y.EMPTY_OBJECT);let n=y(t.font,"10px sans-serif"),i=y(t.stroke,!1),o=y(t.fill,!0),r=y(t.strokeWidth,1),s=y(t.backgroundColor,z.TRANSPARENT),a=y(t.padding,0),c=a*2,u=document.createElement("canvas");u.width=1,u.height=1,u.style.font=n;let f=u.getContext("2d",{willReadFrequently:!0});l(xx)||(l(f.imageSmoothingEnabled)?xx="imageSmoothingEnabled":l(f.mozImageSmoothingEnabled)?xx="mozImageSmoothingEnabled":l(f.webkitImageSmoothingEnabled)?xx="webkitImageSmoothingEnabled":l(f.msImageSmoothingEnabled)&&(xx="msImageSmoothingEnabled")),f.font=n,f.lineJoin="round",f.lineWidth=r,f[xx]=!1,u.style.visibility="hidden",document.body.appendChild(u);let d=cWe(f,e,n,i,o);u.dimensions=d,document.body.removeChild(u),u.style.visibility="";let p=-d.minx,g=Math.ceil(d.width)+p+c,m=d.height+c,x=m-d.ascent+a,b=m-x+c;if(u.width=g,u.height=m,f.font=n,f.lineJoin="round",f.lineWidth=r,f[xx]=!1,s!==z.TRANSPARENT&&(f.fillStyle=s.toCssColorString(),f.fillRect(0,0,u.width,u.height)),i){let T=y(t.strokeColor,z.BLACK);f.strokeStyle=T.toCssColorString(),f.strokeText(e,p+a,b)}if(o){let T=y(t.fillColor,z.WHITE);f.fillStyle=T.toCssColorString(),f.fillText(e,p+a,b)}return u}var jA=lWe;var Oae=Er(Sae(),1);var fWe={FILL:0,OUTLINE:1,FILL_AND_OUTLINE:2},qo=Object.freeze(fWe);var vae={},wae=0,dWe=256,hWe=new z(.165,.165,.165,.8),mWe=new U(7,5),ss=Object.freeze({LTR:0,RTL:1,WEAK:2,BRACKETS:3});function bx(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._rebindAllGlyphs=!0}function Pw(e){!e._rebindAllGlyphs&&!e._repositionAllGlyphs&&e._labelCollection._labelsToUpdate.push(e),e._repositionAllGlyphs=!0}function Rw(e,t){return document.defaultView.getComputedStyle(e,null).getPropertyValue(t)}function Iae(e){let t=vae[e._font];if(!l(t)){let n=document.createElement("div");n.style.position="absolute",n.style.opacity=0,n.style.font=e._font,document.body.appendChild(n);let i=parseFloat(Rw(n,"line-height"));isNaN(i)&&(i=void 0),t={family:Rw(n,"font-family"),size:Rw(n,"font-size").replace("px",""),style:Rw(n,"font-style"),weight:Rw(n,"font-weight"),lineHeight:i},document.body.removeChild(n),wae<dWe&&(vae[e._font]=t,wae++)}e._fontFamily=t.family,e._fontSize=t.size,e._fontStyle=t.style,e._fontWeight=t.weight,e._lineHeight=t.lineHeight}function Pp(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.pixelOffsetScaleByDistance,o=e.scaleByDistance,r=e.distanceDisplayCondition;l(n)&&(n=Vt.clone(n)),l(i)&&(i=Vt.clone(i)),l(o)&&(o=Vt.clone(o)),l(r)&&(r=Ft.clone(r)),this._renderedText=void 0,this._text=void 0,this._show=y(e.show,!0),this._font=y(e.font,"30px sans-serif"),this._fillColor=z.clone(y(e.fillColor,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.BLACK)),this._outlineWidth=y(e.outlineWidth,1),this._showBackground=y(e.showBackground,!1),this._backgroundColor=z.clone(y(e.backgroundColor,hWe)),this._backgroundPadding=U.clone(y(e.backgroundPadding,mWe)),this._style=y(e.style,qo.FILL),this._verticalOrigin=y(e.verticalOrigin,On.BASELINE),this._horizontalOrigin=y(e.horizontalOrigin,gi.LEFT),this._pixelOffset=U.clone(y(e.pixelOffset,U.ZERO)),this._eyeOffset=h.clone(y(e.eyeOffset,h.ZERO)),this._position=h.clone(y(e.position,h.ZERO)),this._scale=y(e.scale,1),this._id=e.id,this._translucencyByDistance=n,this._pixelOffsetScaleByDistance=i,this._scaleByDistance=o,this._heightReference=y(e.heightReference,Ke.NONE),this._distanceDisplayCondition=r,this._disableDepthTestDistance=e.disableDepthTestDistance,this._labelCollection=t,this._glyphs=[],this._backgroundBillboard=void 0,this._batchIndex=void 0,this._rebindAllGlyphs=!0,this._repositionAllGlyphs=!0,this._actualClampedPosition=void 0,this._removeCallbackFunc=void 0,this._mode=void 0,this._clusterShow=!0,this.text=y(e.text,""),this._relativeSize=1,Iae(this),this._updateClamping()}Object.defineProperties(Pp.prototype,{show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.show=e)}let n=this._backgroundBillboard;l(n)&&(n.show=e)}}},position:{get:function(){return this._position},set:function(e){let t=this._position;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o].billboard;l(s)&&(s.position=e)}let i=this._backgroundBillboard;l(i)&&(i.position=e),this._updateClamping()}}},heightReference:{get:function(){return this._heightReference},set:function(e){if(e!==this._heightReference){this._heightReference=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i].billboard;l(r)&&(r.heightReference=e)}let n=this._backgroundBillboard;l(n)&&(n.heightReference=e),Pw(this),this._updateClamping()}}},text:{get:function(){return this._text},set:function(e){if(this._text!==e){this._text=e;let t=e.replace(/\u00ad/g,"");this._renderedText=Pp.enableRightToLeftDetection?bWe(t):t,bx(this)}}},font:{get:function(){return this._font},set:function(e){this._font!==e&&(this._font=e,bx(this),Iae(this))}},fillColor:{get:function(){return this._fillColor},set:function(e){let t=this._fillColor;z.equals(t,e)||(z.clone(e,t),bx(this))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),bx(this))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,bx(this))}},showBackground:{get:function(){return this._showBackground},set:function(e){this._showBackground!==e&&(this._showBackground=e,bx(this))}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){let t=this._backgroundColor;if(!z.equals(t,e)){z.clone(e,t);let n=this._backgroundBillboard;l(n)&&(n.color=t)}}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){let t=this._backgroundPadding;U.equals(t,e)||(U.clone(e,t),Pw(this))}},style:{get:function(){return this._style},set:function(e){this._style!==e&&(this._style=e,bx(this))}},pixelOffset:{get:function(){return this._pixelOffset},set:function(e){let t=this._pixelOffset;if(!U.equals(t,e)){U.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffset=e)}}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;if(!Vt.equals(t,e)){this._translucencyByDistance=Vt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.translucencyByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.translucencyByDistance=e)}}},pixelOffsetScaleByDistance:{get:function(){return this._pixelOffsetScaleByDistance},set:function(e){let t=this._pixelOffsetScaleByDistance;if(!Vt.equals(t,e)){this._pixelOffsetScaleByDistance=Vt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.pixelOffsetScaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.pixelOffsetScaleByDistance=e)}}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;if(!Vt.equals(t,e)){this._scaleByDistance=Vt.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.scaleByDistance=e)}let i=this._backgroundBillboard;l(i)&&(i.scaleByDistance=e)}}},eyeOffset:{get:function(){return this._eyeOffset},set:function(e){let t=this._eyeOffset;if(!h.equals(t,e)){h.clone(e,t);let n=this._glyphs;for(let o=0,r=n.length;o<r;o++){let s=n[o];l(s.billboard)&&(s.billboard.eyeOffset=e)}let i=this._backgroundBillboard;l(i)&&(i.eyeOffset=e)}}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin!==e&&(this._horizontalOrigin=e,Pw(this))}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){if(this._verticalOrigin!==e){this._verticalOrigin=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.verticalOrigin=e)}let n=this._backgroundBillboard;l(n)&&(n.verticalOrigin=e),Pw(this)}}},scale:{get:function(){return this._scale},set:function(e){if(this._scale!==e){this._scale=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.scale=e*this._relativeSize)}let n=this._backgroundBillboard;l(n)&&(n.scale=e*this._relativeSize),Pw(this)}}},totalScale:{get:function(){return this._scale*this._relativeSize}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){if(!Ft.equals(e,this._distanceDisplayCondition)){this._distanceDisplayCondition=Ft.clone(e,this._distanceDisplayCondition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.distanceDisplayCondition=e)}let n=this._backgroundBillboard;l(n)&&(n.distanceDisplayCondition=e)}}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){if(this._disableDepthTestDistance!==e){this._disableDepthTestDistance=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.disableDepthTestDistance=e)}let n=this._backgroundBillboard;l(n)&&(n.disableDepthTestDistance=e)}}},id:{get:function(){return this._id},set:function(e){if(this._id!==e){this._id=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.id=e)}let n=this._backgroundBillboard;l(n)&&(n.id=e)}}},pickId:{get:function(){if(!(this._glyphs.length===0||!l(this._glyphs[0].billboard)))return this._glyphs[0].billboard.pickId}},_clampedPosition:{get:function(){return this._actualClampedPosition},set:function(e){this._actualClampedPosition=h.clone(e,this._actualClampedPosition);let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard._clampedPosition=e)}let n=this._backgroundBillboard;l(n)&&(n._clampedPosition=e)}},clusterShow:{get:function(){return this._clusterShow},set:function(e){if(this._clusterShow!==e){this._clusterShow=e;let t=this._glyphs;for(let i=0,o=t.length;i<o;i++){let r=t[i];l(r.billboard)&&(r.billboard.clusterShow=e)}let n=this._backgroundBillboard;l(n)&&(n.clusterShow=e)}}}});Pp.prototype._updateClamping=function(){so._updateClamping(this._labelCollection,this)};Pp.prototype.computeScreenSpacePosition=function(e,t){l(t)||(t=new U);let i=this._labelCollection.modelMatrix,o=l(this._actualClampedPosition)?this._actualClampedPosition:this._position;return so._computeScreenSpacePosition(i,o,this._eyeOffset,this._pixelOffset,e,t)};Pp.getScreenSpaceBoundingBox=function(e,t,n){let i=0,o=0,r=0,s=0,a=e.totalScale,c=e._backgroundBillboard;if(l(c))i=t.x+c._translate.x,o=t.y-c._translate.y,r=c.width*a,s=c.height*a,e.verticalOrigin===On.BOTTOM||e.verticalOrigin===On.BASELINE?o-=s:e.verticalOrigin===On.CENTER&&(o-=s*.5);else{i=Number.POSITIVE_INFINITY,o=Number.POSITIVE_INFINITY;let u=0,f=0,d=e._glyphs,p=d.length;for(let g=0;g<p;++g){let m=d[g],x=m.billboard;if(!l(x))continue;let b=t.x+x._translate.x,T=t.y-x._translate.y,A=m.dimensions.width*a,C=m.dimensions.height*a;e.verticalOrigin===On.BOTTOM||e.verticalOrigin===On.BASELINE?T-=C:e.verticalOrigin===On.CENTER&&(T-=C*.5),e._verticalOrigin===On.TOP?T+=ta.PADDING*a:(e._verticalOrigin===On.BOTTOM||e._verticalOrigin===On.BASELINE)&&(T-=ta.PADDING*a),i=Math.min(i,b),o=Math.min(o,T),u=Math.max(u,b+A),f=Math.max(f,T+C)}r=u-i,s=f-o}return l(n)||(n=new qe),n.x=i,n.y=o,n.width=r,n.height=s,n};Pp.prototype.equals=function(e){return this===e||l(e)&&this._show===e._show&&this._scale===e._scale&&this._outlineWidth===e._outlineWidth&&this._showBackground===e._showBackground&&this._style===e._style&&this._verticalOrigin===e._verticalOrigin&&this._horizontalOrigin===e._horizontalOrigin&&this._heightReference===e._heightReference&&this._renderedText===e._renderedText&&this._font===e._font&&h.equals(this._position,e._position)&&z.equals(this._fillColor,e._fillColor)&&z.equals(this._outlineColor,e._outlineColor)&&z.equals(this._backgroundColor,e._backgroundColor)&&U.equals(this._backgroundPadding,e._backgroundPadding)&&U.equals(this._pixelOffset,e._pixelOffset)&&h.equals(this._eyeOffset,e._eyeOffset)&&Vt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Vt.equals(this._pixelOffsetScaleByDistance,e._pixelOffsetScaleByDistance)&&Vt.equals(this._scaleByDistance,e._scaleByDistance)&&Ft.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._id===e._id};Pp.prototype.isDestroyed=function(){return!1};Pp.enableRightToLeftDetection=!1;function pWe(e,t){let n=/[a-zA-Z0-9]/,i=/[()[\]{}<>]/,o=[],r="",s=ss.LTR,a="",c=e.length;for(let u=0;u<c;++u){let f=e.charAt(u);t.test(f)?a=ss.RTL:n.test(f)?a=ss.LTR:i.test(f)?a=ss.BRACKETS:a=ss.WEAK,u===0&&(s=a),s===a&&a!==ss.BRACKETS?r+=f:(r!==""&&o.push({Type:s,Word:r}),s=a,r=f)}return o.push({Type:a,Word:r}),o}function _We(e){return e.split("").reverse().join("")}function Ow(e,t,n){return e.slice(0,t)+n+e.slice(t)}function gWe(e){switch(e){case"(":return")";case")":return"(";case"[":return"]";case"]":return"[";case"{":return"}";case"}":return"{";case"<":return">";case">":return"<"}}var yWe="\u05D0-\u05EA",xWe="\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF",Dae=new RegExp(`[${yWe}${xWe}]`);function bWe(e){let t=e.split(` +`),n="";for(let i=0;i<t.length;i++){let o=t[i],r=Dae.test(o.charAt(0)),s=pWe(o,Dae),a=0,c="";for(let u=0;u<s.length;++u){let f=s[u],d=f.Type===ss.BRACKETS?gWe(f.Word):_We(f.Word);r?f.Type===ss.RTL?(c=d+c,a=0):f.Type===ss.LTR?(c=Ow(c,a,f.Word),a+=f.Word.length):(f.Type===ss.WEAK||f.Type===ss.BRACKETS)&&(f.Type===ss.WEAK&&s[u-1].Type===ss.BRACKETS?c=d+c:s[u-1].Type===ss.RTL?(c=d+c,a=0):s.length>u+1?s[u+1].Type===ss.RTL?(c=d+c,a=0):(c=Ow(c,a,f.Word),a+=f.Word.length):c=Ow(c,0,d)):f.Type===ss.RTL?c=Ow(c,a,d):f.Type===ss.LTR?(c+=f.Word,a=c.length):(f.Type===ss.WEAK||f.Type===ss.BRACKETS)&&(u>0&&s[u-1].Type===ss.RTL?s.length>u+1?s[u+1].Type===ss.RTL?c=Ow(c,a,d):(c+=f.Word,a=c.length):c+=f.Word:(c+=f.Word,a=c.length))}n+=c,i<t.length-1&&(n+=` +`)}return n}var Tx=Pp;var Mae=Er(Pae(),1);function AWe(){this.textureInfo=void 0,this.dimensions=void 0,this.billboard=void 0}function CWe(e,t,n){this.labelCollection=e,this.index=t,this.dimensions=n}var EWe=1.2,Lae="ID_WHITE_PIXEL",BW=new U(4,4),SWe=new qe(1,1,1,1);function vWe(e){let t=document.createElement("canvas");t.width=BW.x,t.height=BW.y;let n=t.getContext("2d");return n.fillStyle="#fff",n.fillRect(0,0,t.width,t.height),e.addImage(Lae,t)}var pf={};function wWe(e,t,n,i,o,r,s){return pf.font=t,pf.fillColor=n,pf.strokeColor=i,pf.strokeWidth=o,pf.padding=ta.PADDING,s===On.CENTER?pf.textBaseline="middle":s===On.TOP?pf.textBaseline="top":pf.textBaseline="bottom",pf.fill=r===qo.FILL||r===qo.FILL_AND_OUTLINE,pf.stroke=r===qo.OUTLINE||r===qo.FILL_AND_OUTLINE,pf.backgroundColor=z.BLACK,jA(e,pf)}function kW(e,t){t.textureInfo=void 0,t.dimensions=void 0;let n=t.billboard;l(n)&&(n.show=!1,n.image=void 0,l(n._removeCallbackFunc)&&(n._removeCallbackFunc(),n._removeCallbackFunc=void 0),e._spareBillboards.push(n),t.billboard=void 0)}function DWe(e,t,n,i){i.index=e.addImageSync(t,n)}var IWe=new Mae.default;function PWe(e,t){let n=t._renderedText,i=IWe.splitGraphemes(n),o=i.length,r=t._glyphs,s=r.length,a,c,u;if(t._relativeSize=t._fontSize/ta.FONT_SIZE,o<s)for(c=o;c<s;++c)kW(e,r[c]);r.length=o;let f=t.show&&t._showBackground&&n.split(` +`).join("").length>0,d=t._backgroundBillboard,p=e._backgroundBillboardCollection;f?(l(d)||(d=p.add({collection:e,image:Lae,imageSubRegion:SWe}),t._backgroundBillboard=d),d.color=t._backgroundColor,d.show=t._show,d.position=t._position,d.eyeOffset=t._eyeOffset,d.pixelOffset=t._pixelOffset,d.horizontalOrigin=gi.LEFT,d.verticalOrigin=t._verticalOrigin,d.heightReference=t._heightReference,d.scale=t.totalScale,d.pickPrimitive=t,d.id=t._id,d.translucencyByDistance=t._translucencyByDistance,d.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,d.scaleByDistance=t._scaleByDistance,d.distanceDisplayCondition=t._distanceDisplayCondition,d.disableDepthTestDistance=t._disableDepthTestDistance,d.clusterShow=t.clusterShow):l(d)&&(p.remove(d),t._backgroundBillboard=d=void 0);let g=e._glyphTextureCache;for(u=0;u<o;++u){let m=i[u],x=t._verticalOrigin,b=JSON.stringify([m,t._fontFamily,t._fontStyle,t._fontWeight,+x]),T=g[b];if(!l(T)){let A=`${t._fontStyle} ${t._fontWeight} ${ta.FONT_SIZE}px ${t._fontFamily}`,C=wWe(m,A,z.WHITE,z.WHITE,0,qo.FILL,x);if(T=new CWe(e,-1,C.dimensions),g[b]=T,C.width>0&&C.height>0){let S=(0,Oae.default)(C,{cutoff:ta.CUTOFF,radius:ta.RADIUS}),v=C.getContext("2d"),D=C.width,O=C.height,R=v.getImageData(0,0,D,O);for(let M=0;M<D;M++)for(let L=0;L<O;L++){let _=L*D+M,E=S[_]*255,w=_*4;R.data[w+0]=E,R.data[w+1]=E,R.data[w+2]=E,R.data[w+3]=E}v.putImageData(R,0,0),m!==" "&&DWe(e._textureAtlas,b,C,T)}}if(a=r[u],l(a)?T.index===-1?kW(e,a):l(a.textureInfo)&&(a.textureInfo=void 0):(a=new AWe,r[u]=a),a.textureInfo=T,a.dimensions=T.dimensions,T.index!==-1){let A=a.billboard,C=e._spareBillboards;l(A)||(C.length>0?A=C.pop():(A=e._billboardCollection.add({collection:e}),A._labelDimensions=new U,A._labelTranslate=new U),a.billboard=A),A.show=t._show,A.position=t._position,A.eyeOffset=t._eyeOffset,A.pixelOffset=t._pixelOffset,A.horizontalOrigin=gi.LEFT,A.verticalOrigin=t._verticalOrigin,A.heightReference=t._heightReference,A.scale=t.totalScale,A.pickPrimitive=t,A.id=t._id,A.image=b,A.translucencyByDistance=t._translucencyByDistance,A.pixelOffsetScaleByDistance=t._pixelOffsetScaleByDistance,A.scaleByDistance=t._scaleByDistance,A.distanceDisplayCondition=t._distanceDisplayCondition,A.disableDepthTestDistance=t._disableDepthTestDistance,A._batchIndex=t._batchIndex,A.outlineColor=t.outlineColor,t.style===qo.FILL_AND_OUTLINE?(A.color=t._fillColor,A.outlineWidth=t.outlineWidth):t.style===qo.FILL?(A.color=t._fillColor,A.outlineWidth=0):t.style===qo.OUTLINE&&(A.color=z.TRANSPARENT,A.outlineWidth=t.outlineWidth)}}t._repositionAllGlyphs=!0}function Rae(e,t,n){return t===gi.CENTER?-e/2:t===gi.RIGHT?-(e+n.x):n.x}var or=new U,RWe=new U;function OWe(e){let t=e._glyphs,n=e._renderedText,i,o,r=0,s=0,a=[],c=Number.NEGATIVE_INFINITY,u=0,f=1,d,p=t.length,g=e._backgroundBillboard,m=U.clone(l(g)?e._backgroundPadding:U.ZERO,RWe);for(m.x/=e._relativeSize,m.y/=e._relativeSize,d=0;d<p;++d)n.charAt(d)===` +`?(a.push(r),++f,r=0):(i=t[d],o=i.dimensions,u=Math.max(u,o.height-o.descent),c=Math.max(c,o.descent),r+=o.width-o.minx,d<p-1&&(r+=t[d+1].dimensions.minx),s=Math.max(s,r));a.push(r);let x=u+c,b=e.totalScale,T=e._horizontalOrigin,A=e._verticalOrigin,C=0,S=a[C],v=Rae(S,T,m),D=(l(e._lineHeight)?e._lineHeight:EWe*e._fontSize)/e._relativeSize,O=D*(f-1),R=s,M=x+O;l(g)&&(R+=m.x*2,M+=m.y*2,g._labelHorizontalOrigin=T),or.x=v*b,or.y=0;let L=!0,_=0;for(d=0;d<p;++d)if(n.charAt(d)===` +`)++C,_+=D,S=a[C],v=Rae(S,T,m),or.x=v*b,L=!0;else if(i=t[d],o=i.dimensions,A===On.TOP?(or.y=o.height-u-m.y,or.y+=ta.PADDING):A===On.CENTER?or.y=(O+o.height-u)/2:A===On.BASELINE?(or.y=O,or.y-=ta.PADDING):(or.y=O+c+m.y,or.y-=ta.PADDING),or.y=(or.y-o.descent-_)*b,L&&(or.x-=ta.PADDING*b,L=!1),l(i.billboard)&&(i.billboard._setTranslate(or),i.billboard._labelDimensions.x=R,i.billboard._labelDimensions.y=M,i.billboard._labelHorizontalOrigin=T),d<p-1){let E=t[d+1];or.x+=(o.width-o.minx+E.dimensions.minx)*b}if(l(g)&&n.split(` +`).join("").length>0&&(T===gi.CENTER?v=-s/2-m.x:T===gi.RIGHT?v=-(s+m.x*2):v=0,or.x=v*b,A===On.TOP?or.y=x-u-c:A===On.CENTER?or.y=(x-u)/2-c:A===On.BASELINE?or.y=-m.y-c:or.y=0,or.y=or.y*b,g.width=R,g.height=M,g._setTranslate(or),g._labelTranslate=U.clone(or,g._labelTranslate)),Ku(e.heightReference))for(d=0;d<p;++d){i=t[d];let E=i.billboard;l(E)&&(E._labelTranslate=U.clone(or,E._labelTranslate))}}function Nae(e,t){let n=t._glyphs;for(let i=0,o=n.length;i<o;++i)kW(e,n[i]);l(t._backgroundBillboard)&&(e._backgroundBillboardCollection.remove(t._backgroundBillboard),t._backgroundBillboard=void 0),t._labelCollection=void 0,l(t._removeCallbackFunc)&&t._removeCallbackFunc(),ue(t)}function Xh(e){e=y(e,y.EMPTY_OBJECT),this._scene=e.scene,this._batchTable=e.batchTable,this._textureAtlas=void 0,this._backgroundTextureAtlas=void 0,this._backgroundBillboardCollection=new mf({scene:this._scene}),this._backgroundBillboardCollection.destroyTextureAtlas=!1,this._billboardCollection=new mf({scene:this._scene,batchTable:this._batchTable}),this._billboardCollection.destroyTextureAtlas=!1,this._billboardCollection._sdf=!0,this._spareBillboards=[],this._glyphTextureCache={},this._labels=[],this._labelsToUpdate=[],this._totalGlyphCount=0,this._highlightColor=z.clone(z.WHITE),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,wo.OPAQUE_AND_TRANSLUCENT)}Object.defineProperties(Xh.prototype,{length:{get:function(){return this._labels.length}}});Xh.prototype.add=function(e){let t=new Tx(e,this);return this._labels.push(t),this._labelsToUpdate.push(t),t};Xh.prototype.remove=function(e){if(l(e)&&e._labelCollection===this){let t=this._labels.indexOf(e);if(t!==-1)return this._labels.splice(t,1),Nae(this,e),!0}return!1};Xh.prototype.removeAll=function(){let e=this._labels;for(let t=0,n=e.length;t<n;++t)Nae(this,e[t]);e.length=0};Xh.prototype.contains=function(e){return l(e)&&e._labelCollection===this};Xh.prototype.get=function(e){return this._labels[e]};Xh.prototype.update=function(e){if(!this.show)return;let t=this._billboardCollection,n=this._backgroundBillboardCollection;t.modelMatrix=this.modelMatrix,t.debugShowBoundingVolume=this.debugShowBoundingVolume,n.modelMatrix=this.modelMatrix,n.debugShowBoundingVolume=this.debugShowBoundingVolume;let i=e.context;l(this._textureAtlas)||(this._textureAtlas=new yx({context:i}),t.textureAtlas=this._textureAtlas),l(this._backgroundTextureAtlas)||(this._backgroundTextureAtlas=new yx({context:i,initialSize:BW}),n.textureAtlas=this._backgroundTextureAtlas,vWe(this._backgroundTextureAtlas));let o=this._labelsToUpdate.length;for(let s=0;s<o;++s){let a=this._labelsToUpdate[s];if(a.isDestroyed())continue;let c=a._glyphs.length;a._rebindAllGlyphs&&(PWe(this,a),a._rebindAllGlyphs=!1),a._repositionAllGlyphs&&(OWe(a),a._repositionAllGlyphs=!1);let u=a._glyphs.length-c;this._totalGlyphCount+=u}let r=n.length>0?wo.TRANSLUCENT:this.blendOption;t.blendOption=r,n.blendOption=r,t._highlightColor=this._highlightColor,n._highlightColor=this._highlightColor,this._labelsToUpdate.length=0,n.update(e),t.update(e)};Xh.prototype.isDestroyed=function(){return!1};Xh.prototype.destroy=function(){return this.removeAll(),this._billboardCollection=this._billboardCollection.destroy(),this._textureAtlas=this._textureAtlas&&this._textureAtlas.destroy(),this._backgroundBillboardCollection=this._backgroundBillboardCollection.destroy(),this._backgroundTextureAtlas=this._backgroundTextureAtlas&&this._backgroundTextureAtlas.destroy(),ue(this)};var Rp=Xh;var mB=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec3 position2DHigh; +in vec3 position2DLow; +in vec3 prevPosition3DHigh; +in vec3 prevPosition3DLow; +in vec3 prevPosition2DHigh; +in vec3 prevPosition2DLow; +in vec3 nextPosition3DHigh; +in vec3 nextPosition3DLow; +in vec3 nextPosition2DHigh; +in vec3 nextPosition2DLow; +in vec4 texCoordExpandAndBatchIndex; + +out vec2 v_st; +out float v_width; +out vec4 v_pickColor; +out float v_polylineAngle; + +void main() +{ + float texCoord = texCoordExpandAndBatchIndex.x; + float expandDir = texCoordExpandAndBatchIndex.y; + bool usePrev = texCoordExpandAndBatchIndex.z < 0.0; + float batchTableIndex = texCoordExpandAndBatchIndex.w; + + vec2 widthAndShow = batchTable_getWidthAndShow(batchTableIndex); + float width = widthAndShow.x + 0.5; + float show = widthAndShow.y; + + if (width < 1.0) + { + show = 0.0; + } + + vec4 pickColor = batchTable_getPickColor(batchTableIndex); + + vec4 p, prev, next; + if (czm_morphTime == 1.0) + { + p = czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz); + prev = czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz); + next = czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz); + } + else if (czm_morphTime == 0.0) + { + p = czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy); + prev = czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy); + next = czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy); + } + else + { + p = czm_columbusViewMorph( + czm_translateRelativeToEye(position2DHigh.zxy, position2DLow.zxy), + czm_translateRelativeToEye(position3DHigh.xyz, position3DLow.xyz), + czm_morphTime); + prev = czm_columbusViewMorph( + czm_translateRelativeToEye(prevPosition2DHigh.zxy, prevPosition2DLow.zxy), + czm_translateRelativeToEye(prevPosition3DHigh.xyz, prevPosition3DLow.xyz), + czm_morphTime); + next = czm_columbusViewMorph( + czm_translateRelativeToEye(nextPosition2DHigh.zxy, nextPosition2DLow.zxy), + czm_translateRelativeToEye(nextPosition3DHigh.xyz, nextPosition3DLow.xyz), + czm_morphTime); + } + + #ifdef DISTANCE_DISPLAY_CONDITION + vec3 centerHigh = batchTable_getCenterHigh(batchTableIndex); + vec4 centerLowAndRadius = batchTable_getCenterLowAndRadius(batchTableIndex); + vec3 centerLow = centerLowAndRadius.xyz; + float radius = centerLowAndRadius.w; + vec2 distanceDisplayCondition = batchTable_getDistanceDisplayCondition(batchTableIndex); + + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + lengthSq = czm_eyeHeight2D.y; + } + else + { + vec4 center = czm_translateRelativeToEye(centerHigh.xyz, centerLow.xyz); + lengthSq = max(0.0, dot(center.xyz, center.xyz) - radius * radius); + } + + float nearSq = distanceDisplayCondition.x * distanceDisplayCondition.x; + float farSq = distanceDisplayCondition.y * distanceDisplayCondition.y; + if (lengthSq < nearSq || lengthSq > farSq) + { + show = 0.0; + } + #endif + + float polylineAngle; + vec4 positionWC = getPolylineWindowCoordinates(p, prev, next, expandDir, width, usePrev, polylineAngle); + gl_Position = czm_viewportOrthographic * positionWC * show; + + v_st.s = texCoord; + v_st.t = czm_writeNonPerspective(clamp(expandDir, 0.0, 1.0), gl_Position.w); + + v_width = width; + v_pickColor = pickColor; + v_polylineAngle = polylineAngle; +} +`;var Fc={};Fc.numberOfPoints=function(e,t,n){let i=h.distance(e,t);return Math.ceil(i/n)};Fc.numberOfPointsRhumbLine=function(e,t,n){let i=Math.pow(e.longitude-t.longitude,2)+Math.pow(e.latitude-t.latitude,2);return Math.max(1,Math.ceil(Math.sqrt(i/(n*n))))};var MWe=new fe;Fc.extractHeights=function(e,t){let n=e.length,i=new Array(n);for(let o=0;o<n;o++){let r=e[o];i[o]=t.cartesianToCartographic(r,MWe).height}return i};var LWe=new F,NWe=new h,Fae=new h,FWe=new an(h.UNIT_X,0),Bae=new h,BWe=new an(h.UNIT_X,0),kWe=new h,VWe=new h,UW=[];function Vae(e,t,n){let i=UW;i.length=e;let o;if(t===n){for(o=0;o<e;o++)i[o]=t;return i}let s=(n-t)/e;for(o=0;o<e;o++){let a=t+o*s;i[o]=a}return i}var _B=new fe,pB=new fe,Bg=new h,zW=new h,UWe=new h,VW=new W_,Mw=new ja;function zWe(e,t,n,i,o,r,s,a){let c=i.scaleToGeodeticSurface(e,zW),u=i.scaleToGeodeticSurface(t,UWe),f=Fc.numberOfPoints(e,t,n),d=i.cartesianToCartographic(c,_B),p=i.cartesianToCartographic(u,pB),g=Vae(f,o,r);VW.setEndPoints(d,p);let m=VW.surfaceDistance/f,x=a;d.height=o;let b=i.cartographicToCartesian(d,Bg);h.pack(b,s,x),x+=3;for(let T=1;T<f;T++){let A=VW.interpolateUsingSurfaceDistance(T*m,pB);A.height=g[T],b=i.cartographicToCartesian(A,Bg),h.pack(b,s,x),x+=3}return x}function HWe(e,t,n,i,o,r,s,a){let c=i.cartesianToCartographic(e,_B),u=i.cartesianToCartographic(t,pB),f=Fc.numberOfPointsRhumbLine(c,u,n);c.height=0,u.height=0;let d=Vae(f,o,r);Mw.ellipsoid.equals(i)||(Mw=new ja(void 0,void 0,i)),Mw.setEndPoints(c,u);let p=Mw.surfaceDistance/f,g=a;c.height=o;let m=i.cartographicToCartesian(c,Bg);h.pack(m,s,g),g+=3;for(let x=1;x<f;x++){let b=Mw.interpolateUsingSurfaceDistance(x*p,pB);b.height=d[x],m=i.cartographicToCartesian(b,Bg),h.pack(m,s,g),g+=3}return g}Fc.wrapLongitude=function(e,t){let n=[],i=[];if(l(e)&&e.length>0){t=y(t,F.IDENTITY);let o=F.inverseTransformation(t,LWe),r=F.multiplyByPoint(o,h.ZERO,NWe),s=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_Y,Fae),Fae),a=an.fromPointNormal(r,s,FWe),c=h.normalize(F.multiplyByPointAsVector(o,h.UNIT_X,Bae),Bae),u=an.fromPointNormal(r,c,BWe),f=1;n.push(h.clone(e[0]));let d=n[0],p=e.length;for(let g=1;g<p;++g){let m=e[g];if(an.getPointDistance(u,d)<0||an.getPointDistance(u,m)<0){let x=$n.lineSegmentPlane(d,m,a,kWe);if(l(x)){let b=h.multiplyByScalar(s,5e-9,VWe);an.getPointDistance(a,d)<0&&h.negate(b,b),n.push(h.add(x,b,new h)),i.push(f+1),h.negate(b,b),n.push(h.add(x,b,new h)),f=1}}n.push(h.clone(e[g])),f++,d=m}i.push(f)}return{positions:n,lengths:i}};Fc.generateArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let x=i.scaleToGeodeticSurface(t[0],zW);if(o=r?o[0]:o,o!==0){let b=i.geodeticSurfaceNormal(x,Bg);h.multiplyByScalar(b,o,b),h.add(x,b,x)}return[x.x,x.y,x.z]}let s=e.minDistance;if(!l(s)){let x=y(e.granularity,P.RADIANS_PER_DEGREE);s=P.chordLength(x,i.maximumRadius)}let a=0,c;for(c=0;c<n-1;c++)a+=Fc.numberOfPoints(t[c],t[c+1],s);let u=(a+1)*3,f=new Array(u),d=0;for(c=0;c<n-1;c++){let x=t[c],b=t[c+1],T=r?o[c]:o,A=r?o[c+1]:o;d=zWe(x,b,s,i,T,A,f,d)}UW.length=0;let p=t[n-1],g=i.cartesianToCartographic(p,_B);g.height=r?o[n-1]:o;let m=i.cartographicToCartesian(g,Bg);return h.pack(m,f,u-3),f};var kae=new fe,GWe=new fe;Fc.generateRhumbArc=function(e){l(e)||(e={});let t=e.positions,n=t.length,i=y(e.ellipsoid,ee.default),o=y(e.height,0),r=Array.isArray(o);if(n<1)return[];if(n===1){let T=i.scaleToGeodeticSurface(t[0],zW);if(o=r?o[0]:o,o!==0){let A=i.geodeticSurfaceNormal(T,Bg);h.multiplyByScalar(A,o,A),h.add(T,A,T)}return[T.x,T.y,T.z]}let s=y(e.granularity,P.RADIANS_PER_DEGREE),a=0,c,u=i.cartesianToCartographic(t[0],kae),f;for(c=0;c<n-1;c++)f=i.cartesianToCartographic(t[c+1],GWe),a+=Fc.numberOfPointsRhumbLine(u,f,s),u=fe.clone(f,kae);let d=(a+1)*3,p=new Array(d),g=0;for(c=0;c<n-1;c++){let T=t[c],A=t[c+1],C=r?o[c]:o,S=r?o[c+1]:o;g=HWe(T,A,s,i,C,S,p,g)}UW.length=0;let m=t[n-1],x=i.cartesianToCartographic(m,_B);x.height=r?o[n-1]:o;let b=i.cartographicToCartesian(x,Bg);return h.pack(b,p,d-3),p};Fc.generateCartesianArc=function(e){let t=Fc.generateArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};Fc.generateCartesianRhumbArc=function(e){let t=Fc.generateRhumbArc(e),n=t.length/3,i=new Array(n);for(let o=0;o<n;o++)i[o]=h.unpack(t,o*3);return i};var Ri=Fc;function cu(e,t){e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._width=y(e.width,1),this._loop=y(e.loop,!1),this._distanceDisplayCondition=e.distanceDisplayCondition,this._material=e.material,l(this._material)||(this._material=ji.fromType(ji.ColorType,{color:new z(1,1,1,1)}));let n=e.positions;l(n)||(n=[]),this._positions=n,this._actualPositions=bo(n,h.equalsEpsilon),this._loop&&this._actualPositions.length>2&&(this._actualPositions===this._positions&&(this._actualPositions=n.slice()),this._actualPositions.push(h.clone(this._actualPositions[0]))),this._length=this._actualPositions.length,this._id=e.id;let i;l(t)&&(i=F.clone(t.modelMatrix)),this._modelMatrix=i,this._segments=Ri.wrapLongitude(this._actualPositions,i),this._actualLength=void 0,this._propertiesChanged=new Uint32Array(zae),this._polylineCollection=t,this._dirty=!1,this._pickId=void 0,this._boundingVolume=se.fromPoints(this._actualPositions),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix),this._boundingVolume2D=new se}var Uae=cu.POSITION_INDEX=0,WWe=cu.SHOW_INDEX=1,jWe=cu.WIDTH_INDEX=2,qWe=cu.MATERIAL_INDEX=3,Lw=cu.POSITION_SIZE_INDEX=4,YWe=cu.DISTANCE_DISPLAY_CONDITION=5,zae=cu.NUMBER_OF_PROPERTIES=6;function Op(e,t){++e._propertiesChanged[t];let n=e._polylineCollection;l(n)&&(n._updatePolyline(e,t),e._dirty=!0)}Object.defineProperties(cu.prototype,{show:{get:function(){return this._show},set:function(e){e!==this._show&&(this._show=e,Op(this,WWe))}},positions:{get:function(){return this._positions},set:function(e){let t=bo(e,h.equalsEpsilon);this._loop&&t.length>2&&(t===e&&(t=e.slice()),t.push(h.clone(t[0]))),(this._actualPositions.length!==t.length||this._actualPositions.length!==this._length)&&Op(this,Lw),this._positions=e,this._actualPositions=t,this._length=t.length,this._boundingVolume=se.fromPoints(this._actualPositions,this._boundingVolume),this._boundingVolumeWC=se.transform(this._boundingVolume,this._modelMatrix,this._boundingVolumeWC),Op(this,Uae),this.update()}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,Op(this,qWe))}},width:{get:function(){return this._width},set:function(e){let t=this._width;e!==t&&(this._width=e,Op(this,jWe))}},loop:{get:function(){return this._loop},set:function(e){if(e!==this._loop){let t=this._actualPositions;e?t.length>2&&!h.equals(t[0],t[t.length-1])&&(t.length===this._positions.length&&(this._actualPositions=t=this._positions.slice()),t.push(h.clone(t[0]))):t.length>2&&h.equals(t[0],t[t.length-1])&&(t.length-1===this._positions.length?this._actualPositions=this._positions:t.pop()),this._loop=e,Op(this,Lw)}}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},isDestroyed:{get:function(){return!l(this._polylineCollection)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ft.equals(e,this._distanceDisplayCondition)||(this._distanceDisplayCondition=Ft.clone(e,this._distanceDisplayCondition),Op(this,YWe))}}});cu.prototype.update=function(){let e=F.IDENTITY;l(this._polylineCollection)&&(e=this._polylineCollection.modelMatrix);let t=this._segments.positions.length,n=this._segments.lengths,i=this._propertiesChanged[Uae]>0||this._propertiesChanged[Lw]>0;if((!F.equals(e,this._modelMatrix)||i)&&(this._segments=Ri.wrapLongitude(this._actualPositions,e),this._boundingVolumeWC=se.transform(this._boundingVolume,e,this._boundingVolumeWC)),this._modelMatrix=F.clone(e,this._modelMatrix),this._segments.positions.length!==t)Op(this,Lw);else{let o=n.length;for(let r=0;r<o;++r)if(n[r]!==this._segments.lengths[r]){Op(this,Lw);break}}};cu.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._polylineCollection,id:this._id})),this._pickId};cu.prototype._clean=function(){this._dirty=!1;let e=this._propertiesChanged;for(let t=0;t<zae-1;++t)e[t]=0};cu.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._material=this._material&&this._material.destroy(),this._polylineCollection=void 0};var pd=cu;var XWe=pd.SHOW_INDEX,KWe=pd.WIDTH_INDEX,GW=pd.POSITION_INDEX,ZWe=pd.MATERIAL_INDEX,Hae=pd.POSITION_SIZE_INDEX,$We=pd.DISTANCE_DISPLAY_CONDITION,Kae=pd.NUMBER_OF_PROPERTIES,bl={texCoordExpandAndBatchIndex:0,position3DHigh:1,position3DLow:2,position2DHigh:3,position2DLow:4,prevPosition3DHigh:5,prevPosition3DLow:6,prevPosition2DHigh:7,prevPosition2DLow:8,nextPosition3DHigh:9,nextPosition3DLow:10,nextPosition2DHigh:11,nextPosition2DLow:12};function _d(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this._opaqueRS=void 0,this._translucentRS=void 0,this._colorCommands=[],this._polylinesUpdated=!1,this._polylinesRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(Kae),this._polylines=[],this._polylineBuckets={},this._positionBufferUsage={bufferUsage:Fe.STATIC_DRAW,frameCount:0},this._mode=void 0,this._polylinesToUpdate=[],this._vertexArrays=[],this._positionBuffer=void 0,this._texCoordExpandAndBatchIndexBuffer=void 0,this._batchTable=void 0,this._createBatchTable=!1,this._useHighlightColor=!1,this._highlightColor=z.clone(z.WHITE);let t=this;this._uniformMap={u_highlightColor:function(){return t._highlightColor}}}Object.defineProperties(_d.prototype,{length:{get:function(){return WW(this),this._polylines.length}}});_d.prototype.add=function(e){let t=new pd(e,this);return t._index=this._polylines.length,this._polylines.push(t),this._createVertexArray=!0,this._createBatchTable=!0,t};_d.prototype.remove=function(e){if(this.contains(e)){if(this._polylinesRemoved=!0,this._createVertexArray=!0,this._createBatchTable=!0,l(e._bucket)){let t=e._bucket;t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()}return e._destroy(),!0}return!1};_d.prototype.removeAll=function(){jW(this),ece(this),this._polylineBuckets={},this._polylinesRemoved=!1,this._polylines.length=0,this._polylinesToUpdate.length=0,this._createVertexArray=!0};_d.prototype.contains=function(e){return l(e)&&e._polylineCollection===this};_d.prototype.get=function(e){return WW(this),this._polylines[e]};function QWe(e,t){l(e._batchTable)&&e._batchTable.destroy();let n=[{functionName:"batchTable_getWidthAndShow",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:2},{functionName:"batchTable_getPickColor",componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,normalize:!0},{functionName:"batchTable_getCenterHigh",componentDatatype:X.FLOAT,componentsPerAttribute:3},{functionName:"batchTable_getCenterLowAndRadius",componentDatatype:X.FLOAT,componentsPerAttribute:4},{functionName:"batchTable_getDistanceDisplayCondition",componentDatatype:X.FLOAT,componentsPerAttribute:2}];e._batchTable=new MT(t,n,e._polylines.length)}var Zae=new Hn,$ae=new oe,Qae=new U;_d.prototype.update=function(e){if(WW(this),this._polylines.length===0||!this.show)return;oje(this,e);let t=e.context,n=e.mapProjection,i,o=this._propertiesChanged;if(this._createBatchTable){if(zt.maximumVertexTextureImageUnits===0)throw new ce("Vertex texture fetch support is required to render polylines. The maximum number of vertex texture image units must be greater than zero.");QWe(this,t),this._createBatchTable=!1}if(this._createVertexArray||eje(this))jae(this,t,n);else if(this._polylinesUpdated){let c=this._polylinesToUpdate;if(this._mode!==ne.SCENE3D){let u=c.length;for(let f=0;f<u;++f)i=c[f],i.update()}if(o[Hae]||o[ZWe])jae(this,t,n);else{let u=c.length,f=this._polylineBuckets;for(let d=0;d<u;++d){i=c[d],o=i._propertiesChanged;let p=i._bucket,g=0;for(let m in f)if(f.hasOwnProperty(m)){if(f[m]===p){o[GW]&&p.writeUpdate(g,i,this._positionBuffer,n);break}g+=f[m].lengthOfPositions}if((o[XWe]||o[KWe])&&this._batchTable.setBatchedAttribute(i._index,0,new U(i._width,i._show)),this._batchTable.attributes.length>2){if(o[GW]||o[Hae]){let m=e.mode===ne.SCENE2D?i._boundingVolume2D:i._boundingVolumeWC,x=Hn.fromCartesian(m.center,Zae),b=oe.fromElements(x.low.x,x.low.y,x.low.z,m.radius,$ae);this._batchTable.setBatchedAttribute(i._index,2,x.high),this._batchTable.setBatchedAttribute(i._index,3,b)}if(o[$We]){let m=Qae;m.x=0,m.y=Number.MAX_VALUE;let x=i.distanceDisplayCondition;l(x)&&(m.x=x.near,m.y=x.far),this._batchTable.setBatchedAttribute(i._index,4,m)}}i._clean()}}c.length=0,this._polylinesUpdated=!1}o=this._propertiesChanged;for(let c=0;c<Kae;++c)o[c]=0;let r=F.IDENTITY;e.mode===ne.SCENE3D&&(r=this.modelMatrix);let s=e.passes,a=e.morphTime!==0;if((!l(this._opaqueRS)||this._opaqueRS.depthTest.enabled!==a)&&(this._opaqueRS=Ve.fromCache({depthMask:a,depthTest:{enabled:a}})),(!l(this._translucentRS)||this._translucentRS.depthTest.enabled!==a)&&(this._translucentRS=Ve.fromCache({blending:ln.ALPHA_BLEND,depthMask:!a,depthTest:{enabled:a}})),this._batchTable.update(e),s.render||s.pick){let c=this._colorCommands;JWe(this,e,c,r)}};var Nw=new se,Gae=new se;function JWe(e,t,n,i){let o=t.context,r=t.commandList,s=n.length,a=0,c=!0,u=e._vertexArrays,f=e.debugShowBoundingVolume,p=e._batchTable.getUniformMapCallback(),g=u.length;for(let m=0;m<g;++m){let x=u[m],b=x.buckets,T=b.length;for(let A=0;A<T;++A){let C=b[A],S=C.offset,v=C.bucket.shaderProgram,D=C.bucket.polylines,O=D.length,R,M,L=0,_,E;for(let w=0;w<O;++w){let I=D[w],N=nje(I._material);if(N!==R){if(l(R)&&L>0){let G=M.isTranslucent();a>=s?(_=new et({owner:e}),n.push(_)):_=n[a],++a,E=xt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(Nw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=G?e._translucentRS:e._opaqueRS,_.pass=G?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=L,_.offset=S,S+=L,L=0,c=!0,r.push(_)}M=I._material,M.update(o),R=N}let B=I._locatorBuckets,H=B.length;for(let G=0;G<H;++G){let k=B[G];k.locator===C&&(L+=k.count)}let V;t.mode===ne.SCENE3D?V=I._boundingVolumeWC:t.mode===ne.COLUMBUS_VIEW?V=I._boundingVolume2D:t.mode===ne.SCENE2D?l(I._boundingVolume2D)&&(V=se.clone(I._boundingVolume2D,Gae),V.center.x=0):l(I._boundingVolumeWC)&&l(I._boundingVolume2D)&&(V=se.union(I._boundingVolumeWC,I._boundingVolume2D,Gae)),c?(c=!1,se.clone(V,Nw)):se.union(V,Nw,Nw)}l(R)&&L>0&&(a>=s?(_=new et({owner:e}),n.push(_)):_=n[a],++a,E=xt(p(M._uniforms),e._uniformMap),_.boundingVolume=se.clone(Nw,_.boundingVolume),_.modelMatrix=i,_.shaderProgram=v,_.vertexArray=x.va,_.renderState=M.isTranslucent()?e._translucentRS:e._opaqueRS,_.pass=M.isTranslucent()?ve.TRANSLUCENT:ve.OPAQUE,_.debugShowBoundingVolume=f,_.pickId="v_pickColor",_.uniformMap=E,_.count=L,_.offset=S,c=!0,r.push(_)),R=void 0}}n.length=a}_d.prototype.isDestroyed=function(){return!1};_d.prototype.destroy=function(){return Jae(this),jW(this),ece(this),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function eje(e){let t=!1,n=e._propertiesChanged,i=e._positionBufferUsage;return n[GW]?(i.bufferUsage!==Fe.STREAM_DRAW&&(t=!0,i.bufferUsage=Fe.STREAM_DRAW),i.frameCount=100):i.bufferUsage!==Fe.STATIC_DRAW&&(i.frameCount===0?(t=!0,i.bufferUsage=Fe.STATIC_DRAW):i.frameCount--),t}var Wae=[0,0,0];function jae(e,t,n){e._createVertexArray=!1,jW(e),Jae(e),ije(e);let i=[[]],o=i[0],r=e._batchTable,s=e._useHighlightColor,a=[0],c=0,u=[[]],f=0,d=e._polylineBuckets,p,g;for(p in d)d.hasOwnProperty(p)&&(g=d[p],g.updateShader(t,r,s),f+=g.lengthOfPositions);if(f>0){let m=e._mode,x=new Float32Array(6*f*3),b=new Float32Array(f*4),T,A=0,C=0,S=0;for(p in d)if(d.hasOwnProperty(p)){g=d[p],g.write(x,b,A,C,S,r,t,n),m===ne.MORPHING&&(l(T)||(T=new Float32Array(6*f*3)),g.writeForMorph(T,A));let E=g.lengthOfPositions;A+=6*E*3,C+=E*4,S+=E*4,c=g.updateIndices(i,a,u,c)}let v=e._positionBufferUsage.bufferUsage,D=Fe.STATIC_DRAW;e._positionBuffer=yt.createVertexBuffer({context:t,typedArray:x,usage:v});let O;l(T)&&(O=yt.createVertexBuffer({context:t,typedArray:T,usage:v})),e._texCoordExpandAndBatchIndexBuffer=yt.createVertexBuffer({context:t,typedArray:b,usage:D});let R=3*Float32Array.BYTES_PER_ELEMENT,M=4*Float32Array.BYTES_PER_ELEMENT,L=0,_=i.length;for(let E=0;E<_;++E)if(o=i[E],o.length>0){let w=new Uint16Array(o),I=yt.createIndexBuffer({context:t,typedArray:w,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});L+=a[E];let N=6*(E*(R*P.SIXTY_FOUR_KILOBYTES)-L*R),B=R+N,H=R+B,V=R+H,G=R+V,k=R+G,W=E*(M*P.SIXTY_FOUR_KILOBYTES)-L*M,q=[{index:bl.position3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:N,strideInBytes:6*R},{index:bl.position3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:bl.position2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:N,strideInBytes:6*R},{index:bl.position2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:B,strideInBytes:6*R},{index:bl.prevPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:H,strideInBytes:6*R},{index:bl.prevPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:bl.prevPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:H,strideInBytes:6*R},{index:bl.prevPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:V,strideInBytes:6*R},{index:bl.nextPosition3DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:bl.nextPosition3DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:bl.nextPosition2DHigh,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:G,strideInBytes:6*R},{index:bl.nextPosition2DLow,componentsPerAttribute:3,componentDatatype:X.FLOAT,offsetInBytes:k,strideInBytes:6*R},{index:bl.texCoordExpandAndBatchIndex,componentsPerAttribute:4,componentDatatype:X.FLOAT,vertexBuffer:e._texCoordExpandAndBatchIndexBuffer,offsetInBytes:W}],J,j,Z,Q;m===ne.SCENE3D?(j=e._positionBuffer,J="vertexBuffer",Z=Wae,Q="value"):m===ne.SCENE2D||m===ne.COLUMBUS_VIEW?(j=Wae,J="value",Z=e._positionBuffer,Q="vertexBuffer"):(j=O,J="vertexBuffer",Z=e._positionBuffer,Q="vertexBuffer"),q[0][J]=j,q[1][J]=j,q[2][Q]=Z,q[3][Q]=Z,q[4][J]=j,q[5][J]=j,q[6][Q]=Z,q[7][Q]=Z,q[8][J]=j,q[9][J]=j,q[10][Q]=Z,q[11][Q]=Z;let de=new ti({context:t,attributes:q,indexBuffer:I});e._vertexArrays.push({va:de,buckets:u[E]})}}}function tje(e,t){return t instanceof Ot?t.id:t}var gB=[];function nje(e){let t=ji._uniformList[e.type],n=t.length;gB.length=2*n;let i=0;for(let o=0;o<n;++o){let r=t[o];gB[i]=r,gB[i+1]=e._uniforms[r](),i+=2}return`${e.type}:${JSON.stringify(gB,tje)}`}function ije(e){let t=e._mode,n=e._modelMatrix,i=e._polylineBuckets={},o=e._polylines,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a._actualPositions.length>1){a.update();let c=a.material,u=i[c.type];l(u)||(u=i[c.type]=new Kh(c,t,n)),u.addPolyline(a)}}}function oje(e,t){let n=t.mode;(e._mode!==n||!F.equals(e._modelMatrix,e.modelMatrix))&&(e._mode=n,e._modelMatrix=F.clone(e.modelMatrix),e._createVertexArray=!0)}function WW(e){if(e._polylinesRemoved){e._polylinesRemoved=!1;let t=[],n=[],i=0,o,r=e._polylines.length;for(let s=0;s<r;++s)o=e._polylines[s],o.isDestroyed||(o._index=i++,n.push(o),t.push(o));e._polylines=t,e._polylinesToUpdate=n}}function jW(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)if(!t[i].isDestroyed){let o=t[i]._bucket;l(o)&&(o.shaderProgram=o.shaderProgram&&o.shaderProgram.destroy())}}function Jae(e){let t=e._vertexArrays.length;for(let n=0;n<t;++n)e._vertexArrays[n].va.destroy();e._vertexArrays.length=0}_d.prototype._updatePolyline=function(e,t){this._polylinesUpdated=!0,e._dirty||this._polylinesToUpdate.push(e),++this._propertiesChanged[t]};function ece(e){let t=e._polylines,n=t.length;for(let i=0;i<n;++i)t[i].isDestroyed||t[i]._destroy()}function HW(e,t,n){this.count=e,this.offset=t,this.bucket=n}function Kh(e,t,n){this.polylines=[],this.lengthOfPositions=0,this.material=e,this.shaderProgram=void 0,this.mode=t,this.modelMatrix=n}Kh.prototype.addPolyline=function(e){this.polylines.push(e),e._actualLength=this.getPolylinePositionsLength(e),this.lengthOfPositions+=e._actualLength,e._bucket=this};Kh.prototype.updateShader=function(e,t,n){if(l(this.shaderProgram))return;let i=["DISTANCE_DISPLAY_CONDITION"];n&&i.push("VECTOR_TILE"),this.material.shaderSource.search(/in\s+float\s+v_polylineAngle;/g)!==-1&&i.push("POLYLINE_DASH"),jt.isInternetExplorer()||i.push("CLIP_POLYLINE");let o=new Ue({defines:i,sources:[`in vec4 v_pickColor; +`,this.material.shaderSource,VT]}),r=t.getVertexShaderCallback()(mB),s=new Ue({defines:i,sources:[Qu,r]});this.shaderProgram=en.fromCache({context:e,vertexShaderSource:s,fragmentShaderSource:o,attributeLocations:bl})};function tce(e){return h.dot(h.UNIT_X,e._boundingVolume.center)<0||e._boundingVolume.intersectPlane(an.ORIGIN_ZX_PLANE)===Yt.INTERSECTING}Kh.prototype.getPolylinePositionsLength=function(e){let t;if(this.mode===ne.SCENE3D||!tce(e))return t=e._actualPositions.length,t*4-4;let n=0,i=e._segments.lengths;t=i.length;for(let o=0;o<t;++o)n+=i[o]*4-4;return n};var Ts=new h,_f=new h,gf=new h,yB=new h,rje=new oe,sje=new U;Kh.prototype.write=function(e,t,n,i,o,r,s,a){let c=this.mode,u=a.ellipsoid.maximumRadius*P.PI,f=this.polylines,d=f.length;for(let p=0;p<d;++p){let g=f[p],m=g.width,x=g.show&&m>0,b=g._index,T=this.getSegments(g,a),A=T.positions,C=T.lengths,S=A.length,v=g.getPickId(s).color,D=0,O=0,R;for(let H=0;H<S;++H){H===0?g._loop?R=A[S-2]:(R=yB,h.subtract(A[0],A[1],R),h.add(A[0],R,R)):R=A[H-1],h.clone(R,_f),h.clone(A[H],Ts),H===S-1?g._loop?R=A[1]:(R=yB,h.subtract(A[S-1],A[S-2],R),h.add(A[S-1],R,R)):R=A[H+1],h.clone(R,gf);let V=C[D];H===O+V&&(O+=V,++D);let G=H-O===0,k=H===O+C[D]-1;c===ne.SCENE2D&&(_f.z=0,Ts.z=0,gf.z=0),(c===ne.SCENE2D||c===ne.MORPHING)&&(G||k)&&u-Math.abs(Ts.x)<1&&((Ts.x<0&&_f.x>0||Ts.x>0&&_f.x<0)&&h.clone(Ts,_f),(Ts.x<0&&gf.x>0||Ts.x>0&&gf.x<0)&&h.clone(Ts,gf));let W=G?2:0,q=k?2:4;for(let J=W;J<q;++J){Hn.writeElements(Ts,e,n),Hn.writeElements(_f,e,n+6),Hn.writeElements(gf,e,n+12);let j=J-2<0?-1:1;t[o]=H/(S-1),t[o+1]=2*(J%2)-1,t[o+2]=j,t[o+3]=b,n+=6*3,o+=4}}let M=rje;M.x=z.floatToByte(v.red),M.y=z.floatToByte(v.green),M.z=z.floatToByte(v.blue),M.w=z.floatToByte(v.alpha);let L=sje;L.x=m,L.y=x?1:0;let _=c===ne.SCENE2D?g._boundingVolume2D:g._boundingVolumeWC,E=Hn.fromCartesian(_.center,Zae),w=E.high,I=oe.fromElements(E.low.x,E.low.y,E.low.z,_.radius,$ae),N=Qae;N.x=0,N.y=Number.MAX_VALUE;let B=g.distanceDisplayCondition;l(B)&&(N.x=B.near,N.y=B.far),r.setBatchedAttribute(b,0,L),r.setBatchedAttribute(b,1,M),r.attributes.length>2&&(r.setBatchedAttribute(b,2,w),r.setBatchedAttribute(b,3,I),r.setBatchedAttribute(b,4,N))}};var aje=new h,cje=new h,lje=new h,qae=new h;Kh.prototype.writeForMorph=function(e,t){let n=this.modelMatrix,i=this.polylines,o=i.length;for(let r=0;r<o;++r){let s=i[r],a=s._segments.positions,c=s._segments.lengths,u=a.length,f=0,d=0;for(let p=0;p<u;++p){let g;p===0?s._loop?g=a[u-2]:(g=qae,h.subtract(a[0],a[1],g),h.add(a[0],g,g)):g=a[p-1],g=F.multiplyByPoint(n,g,cje);let m=F.multiplyByPoint(n,a[p],aje),x;p===u-1?s._loop?x=a[1]:(x=qae,h.subtract(a[u-1],a[u-2],x),h.add(a[u-1],x,x)):x=a[p+1],x=F.multiplyByPoint(n,x,lje);let b=c[f];p===d+b&&(d+=b,++f);let T=p-d===0,A=p===d+c[f]-1,C=T?2:0,S=A?2:4;for(let v=C;v<S;++v)Hn.writeElements(m,e,t),Hn.writeElements(g,e,t+6),Hn.writeElements(x,e,t+12),t+=6*3}}};var uje=new Array(1);Kh.prototype.updateIndices=function(e,t,n,i){let o=n.length-1,r=new HW(0,i,this);n[o].push(r);let s=0,a=e[e.length-1],c=0;a.length>0&&(c=a[a.length-1]+1);let u=this.polylines,f=u.length;for(let d=0;d<f;++d){let p=u[d];p._locatorBuckets=[];let g;if(this.mode===ne.SCENE3D){g=uje;let x=p._actualPositions.length;if(x>0)g[0]=x;else continue}else g=p._segments.lengths;let m=g.length;if(m>0){let x=0;for(let b=0;b<m;++b){let T=g[b]-1;for(let A=0;A<T;++A)c+4>P.SIXTY_FOUR_KILOBYTES&&(p._locatorBuckets.push({locator:r,count:x}),x=0,t.push(4),a=[],e.push(a),c=0,r.count=s,s=0,i=0,r=new HW(0,0,this),n[++o]=[r]),a.push(c,c+2,c+1),a.push(c+1,c+2,c+3),x+=6,s+=6,i+=6,c+=4}p._locatorBuckets.push({locator:r,count:x}),c+4>P.SIXTY_FOUR_KILOBYTES&&(t.push(0),a=[],e.push(a),c=0,r.count=s,i=0,s=0,r=new HW(0,0,this),n[++o]=[r])}p._clean()}return r.count=s,i};Kh.prototype.getPolylineStartIndex=function(e){let t=this.polylines,n=0,i=t.length;for(let o=0;o<i;++o){let r=t[o];if(r===e)break;n+=r._actualLength}return n};var qA={positions:void 0,lengths:void 0},Yae=new Array(1),fje=new h,dje=new fe;Kh.prototype.getSegments=function(e,t){let n=e._actualPositions;if(this.mode===ne.SCENE3D)return Yae[0]=n.length,qA.positions=n,qA.lengths=Yae,qA;tce(e)&&(n=e._segments.positions);let i=t.ellipsoid,o=[],r=this.modelMatrix,s=n.length,a,c=fje;for(let u=0;u<s;++u)a=n[u],c=F.multiplyByPoint(r,a,c),o.push(t.project(i.cartesianToCartographic(c,dje)));if(o.length>0){e._boundingVolume2D=se.fromPoints(o,e._boundingVolume2D);let u=e._boundingVolume2D.center;e._boundingVolume2D.center=new h(u.z,u.x,u.y)}return qA.positions=o,qA.lengths=e._segments.lengths,qA};var Xae;Kh.prototype.writeUpdate=function(e,t,n,i){let o=this.mode,r=i.ellipsoid.maximumRadius*P.PI,s=t._actualLength;if(s){e+=this.getPolylineStartIndex(t);let a=Xae,c=6*s*3;!l(a)||a.length<c?a=Xae=new Float32Array(c):a.length>c&&(a=new Float32Array(a.buffer,0,c));let u=this.getSegments(t,i),f=u.positions,d=u.lengths,p=0,g=0,m=0,x;s=f.length;for(let b=0;b<s;++b){b===0?t._loop?x=f[s-2]:(x=yB,h.subtract(f[0],f[1],x),h.add(f[0],x,x)):x=f[b-1],h.clone(x,_f),h.clone(f[b],Ts),b===s-1?t._loop?x=f[1]:(x=yB,h.subtract(f[s-1],f[s-2],x),h.add(f[s-1],x,x)):x=f[b+1],h.clone(x,gf);let T=d[g];b===m+T&&(m+=T,++g);let A=b-m===0,C=b===m+d[g]-1;o===ne.SCENE2D&&(_f.z=0,Ts.z=0,gf.z=0),(o===ne.SCENE2D||o===ne.MORPHING)&&(A||C)&&r-Math.abs(Ts.x)<1&&((Ts.x<0&&_f.x>0||Ts.x>0&&_f.x<0)&&h.clone(Ts,_f),(Ts.x<0&&gf.x>0||Ts.x>0&&gf.x<0)&&h.clone(Ts,gf));let S=A?2:0,v=C?2:4;for(let D=S;D<v;++D)Hn.writeElements(Ts,a,p),Hn.writeElements(_f,a,p+6),Hn.writeElements(gf,a,p+12),p+=6*3}n.copyFromArrayView(a,6*3*Float32Array.BYTES_PER_ELEMENT*e)}};var Zh=_d;function kg(e){this._positions=e.positions,this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._rectangle=e.rectangle,this._minHeight=e.minimumHeight,this._maxHeight=e.maximumHeight,this._billboardCollection=new mf({batchTable:e.batchTable}),this._labelCollection=new Rp({batchTable:e.batchTable}),this._polylineCollection=new Zh,this._polylineCollection._useHighlightColor=!0,this._packedBuffer=void 0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(kg.prototype,{ready:{get:function(){return this._ready}},pointsLength:{get:function(){return this._billboardCollection.length}},texturesByteLength:{get:function(){let e=this._billboardCollection.textureAtlas.texture.sizeInBytes,t=this._labelCollection._textureAtlas.texture.sizeInBytes;return e+t}}});function hje(e,t){let n=e._rectangle,i=e._minHeight,o=e._maxHeight,r=2+re.packedLength+ee.packedLength,s=new Float64Array(r),a=0;return s[a++]=i,s[a++]=o,re.pack(n,s,a),a+=re.packedLength,ee.pack(t,s,a),s}var mje=new _i("createVectorTilePoints",5),pje=new h;function _je(e,t){let n=e._positions,i=e._packedBuffer;l(i)||(n=e._positions=n.slice(),e._batchIds=e._batchIds.slice(),i=e._packedBuffer=hje(e,t));let o=[n.buffer,i.buffer],r={positions:n.buffer,packedBuffer:i.buffer},s=mje.scheduleTask(r,o);if(l(s))return s.then(a=>{if(e.isDestroyed())return;e._positions=new Float64Array(a.positions);let c=e._billboardCollection,u=e._labelCollection,f=e._polylineCollection;n=e._positions;let d=e._batchIds,p=n.length/3;for(let g=0;g<p;++g){let m=d[g],x=h.unpack(n,g*3,pje),b=c.add();b.position=x,b._batchIndex=m;let T=u.add();T.text=" ",T.position=x,T._batchIndex=m;let A=f.add();A.positions=[h.clone(x),h.clone(x)]}e._positions=void 0,e._packedBuffer=void 0,e._ready=!0}).catch(a=>{e.isDestroyed()||(e._error=a)})}kg.prototype.createFeatures=function(e,t){let n=this._billboardCollection,i=this._labelCollection,o=this._polylineCollection,r=this._batchIds,s=r.length;for(let a=0;a<s;++a){let c=r[a],u=n.get(a),f=i.get(a),d=o.get(a);t[c]=new Fg(e,c,u,f,d)}};kg.prototype.applyDebugSettings=function(e,t){e?(z.clone(t,this._billboardCollection._highlightColor),z.clone(t,this._labelCollection._highlightColor),z.clone(t,this._polylineCollection._highlightColor)):(z.clone(z.WHITE,this._billboardCollection._highlightColor),z.clone(z.WHITE,this._labelCollection._highlightColor),z.clone(z.WHITE,this._polylineCollection._highlightColor))};function gje(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.pointSize=Fg.defaultPointSize,s.color=Fg.defaultColor,s.pointOutlineColor=Fg.defaultPointOutlineColor,s.pointOutlineWidth=Fg.defaultPointOutlineWidth,s.labelColor=z.WHITE,s.labelOutlineColor=z.WHITE,s.labelOutlineWidth=1,s.font="30px sans-serif",s.labelStyle=qo.FILL,s.labelText=void 0,s.backgroundColor=new z(.165,.165,.165,.8),s.backgroundPadding=new U(7,5),s.backgroundEnabled=!1,s.scaleByDistance=void 0,s.translucencyByDistance=void 0,s.distanceDisplayCondition=void 0,s.heightOffset=0,s.anchorLineEnabled=!1,s.anchorLineColor=z.WHITE,s.image=void 0,s.disableDepthTestDistance=0,s.horizontalOrigin=gi.CENTER,s.verticalOrigin=On.CENTER,s.labelHorizontalOrigin=gi.RIGHT,s.labelVerticalOrigin=On.BASELINE}}var yje=new z,xje=new z,bje=new z,Tje=new z,Aje=new z,Cje=new z,Fw=new Vt,Bw=new Vt,qW=new Ft;kg.prototype.applyStyle=function(e,t){if(!l(e)){gje(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];if(l(e.show)&&(s.show=e.show.evaluate(s)),l(e.pointSize)&&(s.pointSize=e.pointSize.evaluate(s)),l(e.color)&&(s.color=e.color.evaluateColor(s,yje)),l(e.pointOutlineColor)&&(s.pointOutlineColor=e.pointOutlineColor.evaluateColor(s,xje)),l(e.pointOutlineWidth)&&(s.pointOutlineWidth=e.pointOutlineWidth.evaluate(s)),l(e.labelColor)&&(s.labelColor=e.labelColor.evaluateColor(s,bje)),l(e.labelOutlineColor)&&(s.labelOutlineColor=e.labelOutlineColor.evaluateColor(s,Tje)),l(e.labelOutlineWidth)&&(s.labelOutlineWidth=e.labelOutlineWidth.evaluate(s)),l(e.font)&&(s.font=e.font.evaluate(s)),l(e.labelStyle)&&(s.labelStyle=e.labelStyle.evaluate(s)),l(e.labelText)?s.labelText=e.labelText.evaluate(s):s.labelText=void 0,l(e.backgroundColor)&&(s.backgroundColor=e.backgroundColor.evaluateColor(s,Aje)),l(e.backgroundPadding)&&(s.backgroundPadding=e.backgroundPadding.evaluate(s)),l(e.backgroundEnabled)&&(s.backgroundEnabled=e.backgroundEnabled.evaluate(s)),l(e.scaleByDistance)){let a=e.scaleByDistance.evaluate(s);l(a)?(Fw.near=a.x,Fw.nearValue=a.y,Fw.far=a.z,Fw.farValue=a.w,s.scaleByDistance=Fw):s.scaleByDistance=void 0}else s.scaleByDistance=void 0;if(l(e.translucencyByDistance)){let a=e.translucencyByDistance.evaluate(s);l(a)?(Bw.near=a.x,Bw.nearValue=a.y,Bw.far=a.z,Bw.farValue=a.w,s.translucencyByDistance=Bw):s.translucencyByDistance=void 0}else s.translucencyByDistance=void 0;if(l(e.distanceDisplayCondition)){let a=e.distanceDisplayCondition.evaluate(s);l(a)?(qW.near=a.x,qW.far=a.y,s.distanceDisplayCondition=qW):s.distanceDisplayCondition=void 0}else s.distanceDisplayCondition=void 0;l(e.heightOffset)&&(s.heightOffset=e.heightOffset.evaluate(s)),l(e.anchorLineEnabled)&&(s.anchorLineEnabled=e.anchorLineEnabled.evaluate(s)),l(e.anchorLineColor)&&(s.anchorLineColor=e.anchorLineColor.evaluateColor(s,Cje)),l(e.image)?s.image=e.image.evaluate(s):s.image=void 0,l(e.disableDepthTestDistance)&&(s.disableDepthTestDistance=e.disableDepthTestDistance.evaluate(s)),l(e.horizontalOrigin)&&(s.horizontalOrigin=e.horizontalOrigin.evaluate(s)),l(e.verticalOrigin)&&(s.verticalOrigin=e.verticalOrigin.evaluate(s)),l(e.labelHorizontalOrigin)&&(s.labelHorizontalOrigin=e.labelHorizontalOrigin.evaluate(s)),l(e.labelVerticalOrigin)&&(s.labelVerticalOrigin=e.labelVerticalOrigin.evaluate(s))}};kg.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=_je(this,e.mapProjection.ellipsoid)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._polylineCollection.update(e),this._billboardCollection.update(e),this._labelCollection.update(e)};kg.prototype.isDestroyed=function(){return!1};kg.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._polylineCollection=this._polylineCollection&&this._polylineCollection.destroy(),ue(this)};var xB=kg;function Mp(e){this._batchTable=e.batchTable,this._batchIds=e.batchIds,this._positions=e.positions,this._counts=e.counts,this._indices=e.indices,this._indexCounts=e.indexCounts,this._indexOffsets=void 0,this._batchTableColors=void 0,this._packedBuffer=void 0,this._batchedPositions=void 0,this._transferrableBatchIds=void 0,this._vertexBatchIds=void 0,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._polygonMinimumHeights=e.polygonMinimumHeights,this._polygonMaximumHeights=e.polygonMaximumHeights,this._center=y(e.center,h.ZERO),this._rectangle=e.rectangle,this._center=void 0,this._boundingVolume=e.boundingVolume,this._boundingVolumes=void 0,this._batchedIndices=void 0,this._ready=!1,this._promise=void 0,this._error=void 0,this._primitive=void 0,this.debugWireframe=!1,this.forceRebatch=!1,this.classificationType=kn.BOTH}Object.defineProperties(Mp.prototype,{trianglesLength:{get:function(){return l(this._primitive)?this._primitive.trianglesLength:0}},geometryByteLength:{get:function(){return l(this._primitive)?this._primitive.geometryByteLength:0}},ready:{get:function(){return this._ready}}});function Eje(e){let t=new Float64Array(3+h.packedLength+ee.packedLength+re.packedLength),n=0;return t[n++]=e._indices.BYTES_PER_ELEMENT,t[n++]=e._minimumHeight,t[n++]=e._maximumHeight,h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,re.pack(e._rectangle,t,n),t}function Sje(e,t){let n=1,i=t[n++],o=e._boundingVolumes=new Array(i);for(let a=0;a<i;++a)o[a]=wn.unpack(t,n),n+=wn.packedLength;let r=t[n++],s=e._batchedIndices=new Array(r);for(let a=0;a<r;++a){let c=z.unpack(t,n);n+=z.packedLength;let u=t[n++],f=t[n++],d=t[n++],p=new Array(d);for(let g=0;g<d;++g)p[g]=t[n++];s[a]=new fp({color:c,offset:u,count:f,batchIds:p})}}var vje=new _i("createVectorTilePolygons",5),wje=new z;function Dje(e){if(l(e._primitive))return;let t=e._positions,n=e._counts,i=e._indexCounts,o=e._indices,r=e._transferrableBatchIds,s=e._batchTableColors,a=e._packedBuffer;if(!l(s)){t=e._positions=e._positions.slice(),n=e._counts=e._counts.slice(),i=e._indexCounts=e._indexCounts.slice(),o=e._indices=e._indices.slice(),e._center=e._ellipsoid.cartographicToCartesian(re.center(e._rectangle)),r=e._transferrableBatchIds=new Uint32Array(e._batchIds),s=e._batchTableColors=new Uint32Array(r.length);let g=e._batchTable,m=s.length;for(let x=0;x<m;++x){let b=g.getColor(x,wje);s[x]=b.toRgba()}a=e._packedBuffer=Eje(e)}let c=[t.buffer,n.buffer,i.buffer,o.buffer,r.buffer,s.buffer,a.buffer],u={packedBuffer:a.buffer,positions:t.buffer,counts:n.buffer,indexCounts:i.buffer,indices:o.buffer,batchIds:r.buffer,batchTableColors:s.buffer},f=e._polygonMinimumHeights,d=e._polygonMaximumHeights;l(f)&&l(d)&&(f=f.slice(),d=d.slice(),c.push(f.buffer,d.buffer),u.minimumHeights=f,u.maximumHeights=d);let p=vje.scheduleTask(u,c);if(l(p))return p.then(g=>{if(e.isDestroyed())return;e._positions=void 0,e._counts=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0;let m=new Float64Array(g.packedBuffer),x=m[0];Sje(e,m),e._indices=Ne.getSizeInBytes(x)===2?new Uint16Array(g.indices):new Uint32Array(g.indices),e._indexOffsets=new Uint32Array(g.indexOffsets),e._indexCounts=new Uint32Array(g.indexCounts),e._batchedPositions=new Float32Array(g.positions),e._vertexBatchIds=new Uint16Array(g.batchIds),Ije(e),e._ready=!0}).catch(g=>{e.isDestroyed()||(e._error=g)})}function Ije(e){l(e._primitive)||(e._primitive=new oA({batchTable:e._batchTable,positions:e._batchedPositions,batchIds:e._batchIds,vertexBatchIds:e._vertexBatchIds,indices:e._indices,indexOffsets:e._indexOffsets,indexCounts:e._indexCounts,batchedIndices:e._batchedIndices,boundingVolume:e._boundingVolume,boundingVolumes:e._boundingVolumes,center:e._center}),e._batchTable=void 0,e._batchIds=void 0,e._positions=void 0,e._counts=void 0,e._indices=void 0,e._indexCounts=void 0,e._indexOffsets=void 0,e._batchTableColors=void 0,e._packedBuffer=void 0,e._batchedPositions=void 0,e._transferrableBatchIds=void 0,e._vertexBatchIds=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._polygonMinimumHeights=void 0,e._polygonMaximumHeights=void 0,e._center=void 0,e._rectangle=void 0,e._boundingVolume=void 0,e._boundingVolumes=void 0,e._batchedIndices=void 0)}Mp.prototype.createFeatures=function(e,t){this._primitive.createFeatures(e,t)};Mp.prototype.applyDebugSettings=function(e,t){this._primitive.applyDebugSettings(e,t)};Mp.prototype.applyStyle=function(e,t){this._primitive.applyStyle(e,t)};Mp.prototype.updateCommands=function(e,t){this._primitive.updateCommands(e,t)};Mp.prototype.update=function(e){if(!this._ready){if(l(this._promise)||(this._promise=Dje(this)),l(this._error)){let t=this._error;throw this._error=void 0,t}return}this._primitive.debugWireframe=this.debugWireframe,this._primitive.forceRebatch=this.forceRebatch,this._primitive.classificationType=this.classificationType,this._primitive.update(e)};Mp.prototype.isDestroyed=function(){return!1};Mp.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var bB=Mp;var TB=`in vec4 currentPosition; +in vec4 previousPosition; +in vec4 nextPosition; +in vec2 expandAndWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; + +void main() +{ + float expandDir = expandAndWidth.x; + float width = abs(expandAndWidth.y) + 0.5; + bool usePrev = expandAndWidth.y < 0.0; + + vec4 p = u_modifiedModelView * currentPosition; + vec4 prev = u_modifiedModelView * previousPosition; + vec4 next = u_modifiedModelView * nextPosition; + + float angle; + vec4 positionWC = getPolylineWindowCoordinatesEC(p, prev, next, expandDir, width, usePrev, angle); + gl_Position = czm_viewportOrthographic * positionWC; +} +`;function gd(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._boundingVolume=e.boundingVolume,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._currentPositions=void 0,this._previousPositions=void 0,this._nextPositions=void 0,this._expandAndWidth=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(gd.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function Pje(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var Rje=new _i("createVectorTilePolylines",5),YA={previousPosition:0,currentPosition:1,nextPosition:2,expandAndWidth:3,a_batchId:4};function Oje(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=Pje(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=Rje.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._currentPositions=new Float32Array(f.currentPositions),e._previousPositions=new Float32Array(f.previousPositions),e._nextPositions=new Float32Array(f.nextPositions),e._expandAndWidth=new Float32Array(f.expandAndWidth),e._vertexBatchIds=new Uint16Array(f.batchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),Mje(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function Mje(e,t){if(!l(e._va)){let n=e._currentPositions,i=e._previousPositions,o=e._nextPositions,r=e._expandAndWidth,s=e._vertexBatchIds,a=e._indices,c=i.byteLength+n.byteLength+o.byteLength;c+=r.byteLength+s.byteLength+a.byteLength,e._trianglesLength=a.length/3,e._geometryByteLength=c;let u=yt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),f=yt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),d=yt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),p=yt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),g=yt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),m=yt.createIndexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:a.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),x=[{index:YA.previousPosition,vertexBuffer:u,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:YA.currentPosition,vertexBuffer:f,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:YA.nextPosition,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:YA.expandAndWidth,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:2},{index:YA.a_batchId,vertexBuffer:g,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:x,indexBuffer:m}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._currentPositions=void 0,e._previousPositions=void 0,e._nextPositions=void 0,e._expandAndWidth=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var kw=new F,nce=new h;function Lje(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,kw),F.multiplyByPoint(kw,e._center,nce),F.setTranslation(kw,nce,kw),kw},u_highlightColor:function(){return e._highlightColor}})}function Nje(e){if(l(e._rs))return;let t={enabled:!0,factor:-5,units:-5};e._rs=Ve.fromCache({blending:ln.ALPHA_BLEND,depthMask:!1,depthTest:{enabled:!0},polygonOffset:t})}var Fje=`uniform vec4 u_highlightColor; +void main() +{ + out_FragColor = u_highlightColor; +} +`;function Bje(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(TB),o=n.getFragmentShaderCallback(!1,void 0,!1)(Fje),r=new Ue({defines:["VECTOR_TILE",jt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Qu,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=en.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:YA})}function kje(e,t){if(!l(e._command)){let n=e._batchTable.getUniformMapCallback()(e._uniformMap);e._command=new et({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:n,boundingVolume:e._boundingVolume,pass:ve.TRANSLUCENT,pickId:e._batchTable.getPickId()})}t.commandList.push(e._command)}gd.getPolylinePositions=function(e,t){let n=e._batchIds,i=e._decodedPositions,o=e._decodedPositionOffsets;if(!l(n)||!l(i))return;let r,s,a=n.length,c=0,u=0;for(r=0;r<a;++r)n[r]===t&&(c+=o[r+1]-o[r]);if(c===0)return;let f=new Float64Array(c*3);for(r=0;r<a;++r)if(n[r]===t){let d=o[r],p=o[r+1]-d;for(s=0;s<p;++s){let g=(d+s)*3;f[u++]=i[g],f[u++]=i[g+1],f[u++]=i[g+2]}}return f};gd.prototype.getPositions=function(e){return gd.getPolylinePositions(this,e)};gd.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Zs(e,r)}};gd.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function Vje(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var Uje=new z,zje=z.WHITE,Hje=!0;gd.prototype.applyStyle=function(e,t){if(!l(e)){Vje(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,Uje):zje,s.show=l(e.show)?e.show.evaluate(s):Hje}};gd.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=Oje(this,t)),l(this._error)){let i=this._error;throw this._error=void 0,i}return}Lje(this,t),Bje(this,t),Nje(this);let n=e.passes;(n.render||n.pick)&&kje(this,e)};gd.prototype.isDestroyed=function(){return!1};gd.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var XA=gd;var AB=`in vec3 startEllipsoidNormal; +in vec3 endEllipsoidNormal; +in vec4 startPositionAndHeight; +in vec4 endPositionAndHeight; +in vec4 startFaceNormalAndVertexCorner; +in vec4 endFaceNormalAndHalfWidth; +in float a_batchId; + +uniform mat4 u_modifiedModelView; +uniform vec2 u_minimumMaximumVectorHeights; + +out vec4 v_startPlaneEC; +out vec4 v_endPlaneEC; +out vec4 v_rightPlaneEC; +out float v_halfWidth; +out vec3 v_volumeUpEC; + +void main() +{ + // vertex corner IDs + // 3-----------7 + // /| left /| + // / | 1 / | + // 2-----------6 5 end + // | / | / + // start |/ right |/ + // 0-----------4 + // + float isEnd = floor(startFaceNormalAndVertexCorner.w * 0.251); // 0 for front, 1 for end + float isTop = floor(startFaceNormalAndVertexCorner.w * mix(0.51, 0.19, isEnd)); // 0 for bottom, 1 for top + + vec3 forward = endPositionAndHeight.xyz - startPositionAndHeight.xyz; + vec3 right = normalize(cross(forward, startEllipsoidNormal)); + + vec4 position = vec4(startPositionAndHeight.xyz, 1.0); + position.xyz += forward * isEnd; + + v_volumeUpEC = czm_normal * normalize(cross(right, forward)); + + // Push for volume height + float offset; + vec3 ellipsoidNormal = mix(startEllipsoidNormal, endEllipsoidNormal, isEnd); + + // offset height to create volume + offset = mix(startPositionAndHeight.w, endPositionAndHeight.w, isEnd); + offset = mix(u_minimumMaximumVectorHeights.y, u_minimumMaximumVectorHeights.x, isTop) - offset; + position.xyz += offset * ellipsoidNormal; + + // move from RTC to EC + position = u_modifiedModelView * position; + right = czm_normal * right; + + // Push for width in a direction that is in the start or end plane and in a plane with right + // N = normalEC ("right-facing" direction for push) + // R = right + // p = angle between N and R + // w = distance to push along R if R == N + // d = distance to push along N + // + // N R + // { p| } * cos(p) = dot(N, R) = w / d + // d | |w * d = w / dot(N, R) + // { | } + // o---------- polyline segment ----> + // + vec3 scratchNormal = mix(-startFaceNormalAndVertexCorner.xyz, endFaceNormalAndHalfWidth.xyz, isEnd); + scratchNormal = cross(scratchNormal, mix(startEllipsoidNormal, endEllipsoidNormal, isEnd)); + vec3 miterPushNormal = czm_normal * normalize(scratchNormal); + + offset = 2.0 * endFaceNormalAndHalfWidth.w * max(0.0, czm_metersPerPixel(position)); // offset = widthEC + offset = offset / dot(miterPushNormal, right); + position.xyz += miterPushNormal * (offset * sign(0.5 - mod(startFaceNormalAndVertexCorner.w, 2.0))); + + gl_Position = czm_depthClamp(czm_projection * position); + + position = u_modifiedModelView * vec4(startPositionAndHeight.xyz, 1.0); + vec3 startNormalEC = czm_normal * startFaceNormalAndVertexCorner.xyz; + v_startPlaneEC = vec4(startNormalEC, -dot(startNormalEC, position.xyz)); + v_rightPlaneEC = vec4(right, -dot(right, position.xyz)); + + position = u_modifiedModelView * vec4(endPositionAndHeight.xyz, 1.0); + vec3 endNormalEC = czm_normal * endFaceNormalAndHalfWidth.xyz; + v_endPlaneEC = vec4(endNormalEC, -dot(endNormalEC, position.xyz)); + v_halfWidth = endFaceNormalAndHalfWidth.w; +} +`;var CB=`in vec4 v_startPlaneEC; +in vec4 v_endPlaneEC; +in vec4 v_rightPlaneEC; +in float v_halfWidth; +in vec3 v_volumeUpEC; + +uniform vec4 u_highlightColor; +void main() +{ + float logDepthOrDepth = czm_branchFreeTernary(czm_sceneMode == czm_sceneMode2D, gl_FragCoord.z, czm_unpackDepth(texture(czm_globeDepthTexture, gl_FragCoord.xy / czm_viewport.zw))); + + // Discard for sky + if (logDepthOrDepth == 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(0.0, 0.0, 1.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + eyeCoordinate /= eyeCoordinate.w; + + float halfMaxWidth = v_halfWidth * czm_metersPerPixel(eyeCoordinate); + + // Expand halfMaxWidth if direction to camera is almost perpendicular with the volume's up direction + halfMaxWidth += halfMaxWidth * (1.0 - dot(-normalize(eyeCoordinate.xyz), v_volumeUpEC)); + + // Check distance of the eye coordinate against the right-facing plane + float widthwiseDistance = czm_planeDistance(v_rightPlaneEC, eyeCoordinate.xyz); + + // Check eye coordinate against the mitering planes + float distanceFromStart = czm_planeDistance(v_startPlaneEC, eyeCoordinate.xyz); + float distanceFromEnd = czm_planeDistance(v_endPlaneEC, eyeCoordinate.xyz); + + if (abs(widthwiseDistance) > halfMaxWidth || distanceFromStart < 0.0 || distanceFromEnd < 0.0) { +#ifdef DEBUG_SHOW_VOLUME + out_FragColor = vec4(logDepthOrDepth, 0.0, 0.0, 0.5); + return; +#else // DEBUG_SHOW_VOLUME + discard; +#endif // DEBUG_SHOW_VOLUME + } + out_FragColor = u_highlightColor; + + czm_writeDepthClamp(); +} +`;function Lp(e){this._positions=e.positions,this._widths=e.widths,this._counts=e.counts,this._batchIds=e.batchIds,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._center=e.center,this._rectangle=e.rectangle,this._batchTable=e.batchTable,this._va=void 0,this._sp=void 0,this._rs=void 0,this._uniformMap=void 0,this._command=void 0,this._transferrableBatchIds=void 0,this._packedBuffer=void 0,this._minimumMaximumVectorHeights=new U(ui._defaultMinTerrainHeight,ui._defaultMaxTerrainHeight),this._boundingVolume=wn.fromRectangle(e.rectangle,ui._defaultMinTerrainHeight,ui._defaultMaxTerrainHeight,this._ellipsoid),this._classificationType=e.classificationType,this._keepDecodedPositions=e.keepDecodedPositions,this._decodedPositions=void 0,this._decodedPositionOffsets=void 0,this._startEllipsoidNormals=void 0,this._endEllipsoidNormals=void 0,this._startPositionAndHeights=void 0,this._startFaceNormalAndVertexCornerIds=void 0,this._endPositionAndHeights=void 0,this._endFaceNormalAndHalfWidths=void 0,this._vertexBatchIds=void 0,this._indices=void 0,this._constantColor=z.clone(z.WHITE),this._highlightColor=this._constantColor,this._trianglesLength=0,this._geometryByteLength=0,this._ready=!1,this._promise=void 0,this._error=void 0}Object.defineProperties(Lp.prototype,{trianglesLength:{get:function(){return this._trianglesLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}}});function Gje(e,t,n){let i=ui.getMinimumMaximumHeights(t,n),o=i.minimumTerrainHeight,r=i.maximumTerrainHeight,s=e._minimumMaximumVectorHeights;s.x=o,s.y=r;let a=e._boundingVolume,c=e._rectangle;wn.fromRectangle(c,o,r,n,a)}function Wje(e){let t=e._rectangle,n=e._minimumHeight,i=e._maximumHeight,o=e._ellipsoid,r=e._center,s=2+re.packedLength+ee.packedLength+h.packedLength,a=new Float64Array(s),c=0;return a[c++]=n,a[c++]=i,re.pack(t,a,c),c+=re.packedLength,ee.pack(o,a,c),c+=ee.packedLength,h.pack(r,a,c),a}var jje=new _i("createVectorTileClampedPolylines"),Vg={startEllipsoidNormal:0,endEllipsoidNormal:1,startPositionAndHeight:2,endPositionAndHeight:3,startFaceNormalAndVertexCorner:4,endFaceNormalAndHalfWidth:5,a_batchId:6};function qje(e,t){if(l(e._va))return;let n=e._positions,i=e._widths,o=e._counts,r=e._transferrableBatchIds,s=e._packedBuffer;l(s)||(n=e._positions=n.slice(),i=e._widths=i.slice(),o=e._counts=o.slice(),r=e._transferrableBatchIds=e._batchIds.slice(),s=e._packedBuffer=Wje(e));let a=[n.buffer,i.buffer,o.buffer,r.buffer,s.buffer],c={positions:n.buffer,widths:i.buffer,counts:o.buffer,batchIds:r.buffer,packedBuffer:s.buffer,keepDecodedPositions:e._keepDecodedPositions},u=jje.scheduleTask(c,a);if(l(u))return u.then(function(f){if(e.isDestroyed())return;e._keepDecodedPositions&&(e._decodedPositions=new Float64Array(f.decodedPositions),e._decodedPositionOffsets=new Uint32Array(f.decodedPositionOffsets)),e._startEllipsoidNormals=new Float32Array(f.startEllipsoidNormals),e._endEllipsoidNormals=new Float32Array(f.endEllipsoidNormals),e._startPositionAndHeights=new Float32Array(f.startPositionAndHeights),e._startFaceNormalAndVertexCornerIds=new Float32Array(f.startFaceNormalAndVertexCornerIds),e._endPositionAndHeights=new Float32Array(f.endPositionAndHeights),e._endFaceNormalAndHalfWidths=new Float32Array(f.endFaceNormalAndHalfWidths),e._vertexBatchIds=new Uint16Array(f.vertexBatchIds);let d=f.indexDatatype;e._indices=d===Ne.UNSIGNED_SHORT?new Uint16Array(f.indices):new Uint32Array(f.indices),Yje(e,t),e._ready=!0}).catch(f=>{e.isDestroyed()||(e._error=f)})}function Yje(e,t){if(!l(e._va)){let n=e._startEllipsoidNormals,i=e._endEllipsoidNormals,o=e._startPositionAndHeights,r=e._endPositionAndHeights,s=e._startFaceNormalAndVertexCornerIds,a=e._endFaceNormalAndHalfWidths,c=e._vertexBatchIds,u=e._indices,f=n.byteLength+i.byteLength;f+=o.byteLength+r.byteLength,f+=s.byteLength+a.byteLength,f+=c.byteLength+u.byteLength,e._trianglesLength=u.length/3,e._geometryByteLength=f;let d=yt.createVertexBuffer({context:t,typedArray:n,usage:Fe.STATIC_DRAW}),p=yt.createVertexBuffer({context:t,typedArray:i,usage:Fe.STATIC_DRAW}),g=yt.createVertexBuffer({context:t,typedArray:o,usage:Fe.STATIC_DRAW}),m=yt.createVertexBuffer({context:t,typedArray:r,usage:Fe.STATIC_DRAW}),x=yt.createVertexBuffer({context:t,typedArray:s,usage:Fe.STATIC_DRAW}),b=yt.createVertexBuffer({context:t,typedArray:a,usage:Fe.STATIC_DRAW}),T=yt.createVertexBuffer({context:t,typedArray:c,usage:Fe.STATIC_DRAW}),A=yt.createIndexBuffer({context:t,typedArray:u,usage:Fe.STATIC_DRAW,indexDatatype:u.BYTES_PER_ELEMENT===2?Ne.UNSIGNED_SHORT:Ne.UNSIGNED_INT}),C=[{index:Vg.startEllipsoidNormal,vertexBuffer:d,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Vg.endEllipsoidNormal,vertexBuffer:p,componentDatatype:X.FLOAT,componentsPerAttribute:3},{index:Vg.startPositionAndHeight,vertexBuffer:g,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Vg.endPositionAndHeight,vertexBuffer:m,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Vg.startFaceNormalAndVertexCorner,vertexBuffer:x,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Vg.endFaceNormalAndHalfWidth,vertexBuffer:b,componentDatatype:X.FLOAT,componentsPerAttribute:4},{index:Vg.a_batchId,vertexBuffer:T,componentDatatype:X.UNSIGNED_SHORT,componentsPerAttribute:1}];e._va=new ti({context:t,attributes:C,indexBuffer:A}),e._positions=void 0,e._widths=void 0,e._counts=void 0,e._ellipsoid=void 0,e._minimumHeight=void 0,e._maximumHeight=void 0,e._rectangle=void 0,e._transferrableBatchIds=void 0,e._packedBuffer=void 0,e._startEllipsoidNormals=void 0,e._endEllipsoidNormals=void 0,e._startPositionAndHeights=void 0,e._startFaceNormalAndVertexCornerIds=void 0,e._endPositionAndHeights=void 0,e._endFaceNormalAndHalfWidths=void 0,e._vertexBatchIds=void 0,e._indices=void 0}}var Vw=new F,ice=new h;function Xje(e,t){l(e._uniformMap)||(e._uniformMap={u_modifiedModelView:function(){let n=t.uniformState.view;return F.clone(n,Vw),F.multiplyByPoint(Vw,e._center,ice),F.setTranslation(Vw,ice,Vw),Vw},u_highlightColor:function(){return e._highlightColor},u_minimumMaximumVectorHeights:function(){return e._minimumMaximumVectorHeights}})}function oce(e){return Ve.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:ln.PRE_MULTIPLIED_ALPHA_BLEND,depthMask:!1,stencilTest:{enabled:e,frontFunction:Vn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:Vn.EQUAL,backOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK}})}function Kje(e){l(e._rs)||(e._rs=oce(!1),e._rs3DTiles=oce(!0))}function Zje(e,t){if(l(e._sp))return;let n=e._batchTable,i=n.getVertexShaderCallback(!1,"a_batchId",void 0)(AB),o=n.getFragmentShaderCallback(!1,void 0,!0)(CB),r=new Ue({defines:["VECTOR_TILE",jt.isInternetExplorer()?"":"CLIP_POLYLINE"],sources:[Qu,i]}),s=new Ue({defines:["VECTOR_TILE"],sources:[o]});e._sp=en.fromCache({context:t,vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:Vg})}function $je(e,t){let n=e._command;if(!l(e._command)){let o=e._batchTable.getUniformMapCallback()(e._uniformMap);n=e._command=new et({owner:e,vertexArray:e._va,renderState:e._rs,shaderProgram:e._sp,uniformMap:o,boundingVolume:e._boundingVolume,pass:ve.TERRAIN_CLASSIFICATION,pickId:e._batchTable.getPickId()});let r=et.shallowClone(n,n.derivedCommands.tileset);r.renderState=e._rs3DTiles,r.pass=ve.CESIUM_3D_TILE_CLASSIFICATION,n.derivedCommands.tileset=r}let i=e._classificationType;(i===kn.TERRAIN||i===kn.BOTH)&&t.commandList.push(n),(i===kn.CESIUM_3D_TILE||i===kn.BOTH)&&t.commandList.push(n.derivedCommands.tileset)}Lp.prototype.getPositions=function(e){return XA.getPolylinePositions(this,e)};Lp.prototype.createFeatures=function(e,t){let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o];t[r]=new Zs(e,r)}};Lp.prototype.applyDebugSettings=function(e,t){this._highlightColor=e?t:this._constantColor};function Qje(e,t){let n=e._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.show=!0,s.color=z.WHITE}}var Jje=new z,e7e=z.WHITE,t7e=!0;Lp.prototype.applyStyle=function(e,t){if(!l(e)){Qje(this,t);return}let n=this._batchIds,i=n.length;for(let o=0;o<i;++o){let r=n[o],s=t[r];s.color=l(e.color)?e.color.evaluateColor(s,Jje):e7e,s.show=l(e.show)?e.show.evaluate(s):t7e}};function n7e(e){return ui.initialize().then(function(){Gje(e,e._rectangle,e._ellipsoid)}).catch(t=>{e.isDestroyed()||(e._error=t)})}Lp.prototype.update=function(e){let t=e.context;if(!this._ready){if(l(this._promise)||(this._promise=n7e(this).then(qje(this,t))),l(this._error)){let i=this._error;throw this._error=void 0,i}return}Xje(this,t),Zje(this,t),Kje(this);let n=e.passes;(n.render||n.pick)&&$je(this,e)};Lp.prototype.isDestroyed=function(){return!1};Lp.prototype.destroy=function(){return this._va=this._va&&this._va.destroy(),this._sp=this._sp&&this._sp.destroy(),ue(this)};var EB=Lp;var YW=32767,i7e=new fe,o7e=new h;function r7e(e,t,n,i,o){let r=e.length/3,s=e.subarray(0,r),a=e.subarray(r,2*r),c=e.subarray(2*r,3*r);Ln.zigZagDeltaDecode(s,a,c);let u=new Float64Array(e.length);for(let f=0;f<r;++f){let d=s[f],p=a[f],g=c[f],m=P.lerp(t.west,t.east,d/YW),x=P.lerp(t.south,t.north,p/YW),b=P.lerp(n,i,g/YW),T=fe.fromRadians(m,x,b,i7e),A=o.cartographicToCartesian(T,o7e);h.pack(A,u,f*3)}return u}var SB=r7e;function xd(e,t,n,i,o){this._tileset=e,this._tile=t,this._resource=n,this._polygons=void 0,this._polylines=void 0,this._points=void 0,this._metadata=void 0,this._batchTable=void 0,this._features=void 0,this.featurePropertiesDirty=!1,this._group=void 0,this._ready=!1,u7e(this,i,o)}Object.defineProperties(xd.prototype,{featuresLength:{get:function(){return l(this._batchTable)?this._batchTable.featuresLength:0}},pointsLength:{get:function(){return l(this._points)?this._points.pointsLength:0}},trianglesLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.trianglesLength),l(this._polylines)&&(e+=this._polylines.trianglesLength),e}},geometryByteLength:{get:function(){let e=0;return l(this._polygons)&&(e+=this._polygons.geometryByteLength),l(this._polylines)&&(e+=this._polylines.geometryByteLength),e}},texturesByteLength:{get:function(){return l(this._points)?this._points.texturesByteLength:0}},batchTableByteLength:{get:function(){return l(this._batchTable)?this._batchTable.batchTableByteLength:0}},innerContents:{get:function(){}},ready:{get:function(){return this._ready}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){return this._resource.getUrlComponent(!0)}},metadata:{get:function(){return this._metadata},set:function(e){this._metadata=e}},batchTable:{get:function(){return this._batchTable}},group:{get:function(){return this._group},set:function(e){this._group=e}}});function s7e(e){return function(t,n){l(e._polygons)&&e._polygons.updateCommands(t,n)}}function a7e(e,t){let n,i,o,r,s=y(e.POLYGONS_LENGTH,0),a=y(e.POLYLINES_LENGTH,0),c=y(e.POINTS_LENGTH,0);if(s>0&&l(e.POLYGON_BATCH_IDS)){let p=t.byteOffset+e.POLYGON_BATCH_IDS.byteOffset;n=new Uint16Array(t.buffer,p,s)}if(a>0&&l(e.POLYLINE_BATCH_IDS)){let p=t.byteOffset+e.POLYLINE_BATCH_IDS.byteOffset;i=new Uint16Array(t.buffer,p,a)}if(c>0&&l(e.POINT_BATCH_IDS)){let p=t.byteOffset+e.POINT_BATCH_IDS.byteOffset;o=new Uint16Array(t.buffer,p,c)}let u=l(n)||l(i)||l(o),f=s>0&&!l(n)||a>0&&!l(i)||c>0&&!l(o);if(u&&f)throw new ce("If one group of batch ids is defined, then all batch ids must be defined");if(!l(n)&&!l(i)&&!l(o)){let p=0;if(!l(n)&&s>0)for(n=new Uint16Array(s),r=0;r<s;++r)n[r]=p++;if(!l(i)&&a>0)for(i=new Uint16Array(a),r=0;r<a;++r)i[r]=p++;if(!l(o)&&c>0)for(o=new Uint16Array(c),r=0;r<c;++r)o[r]=p++}return{polygons:n,polylines:i,points:o}}var yd=Uint32Array.BYTES_PER_ELEMENT;function c7e(e){return new XA(e)}function l7e(e){return new EB(e)}function u7e(e,t,n){n=y(n,0);let i=new Uint8Array(t),o=new DataView(t);n+=yd;let r=o.getUint32(n,!0);if(r!==1)throw new ce(`Only Vector tile version 1 is supported. Version ${r} is not.`);n+=yd;let s=o.getUint32(n,!0);if(n+=yd,s===0){e._ready=!0;return}let a=o.getUint32(n,!0);if(n+=yd,a===0)throw new ce("Feature table must have a byte length greater than zero");let c=o.getUint32(n,!0);n+=yd;let u=o.getUint32(n,!0);n+=yd;let f=o.getUint32(n,!0);n+=yd;let d=o.getUint32(n,!0);n+=yd;let p=o.getUint32(n,!0);n+=yd;let g=o.getUint32(n,!0);n+=yd;let m=o.getUint32(n,!0);n+=yd;let x=Lo(i,n,a);n+=a;let b=new Uint8Array(t,n,c);n+=c;let T,A;u>0&&(T=Lo(i,n,u),n+=u,f>0&&(A=new Uint8Array(t,n,f),A=new Uint8Array(A),n+=f));let C=y(x.POLYGONS_LENGTH,0),S=y(x.POLYLINES_LENGTH,0),v=y(x.POINTS_LENGTH,0),D=C+S+v,O=new J_(e,D,T,A,s7e(e));if(e._batchTable=O,D===0)return;let R=new Gh(x,b),M=R.getGlobalProperty("REGION");if(!l(M))throw new ce("Feature table global property: REGION must be defined");let L=re.unpack(M),_=M[4],E=M[5],w=e._tile.computedTransform,I=R.getGlobalProperty("RTC_CENTER",X.FLOAT,3);l(I)?(I=h.unpack(I),F.multiplyByPoint(w,I,I)):(I=re.center(L),I.height=P.lerp(_,E,.5),I=ee.WGS84.cartographicToCartesian(I));let N=a7e(x,b);if(n+=(4-n%4)%4,C>0){R.featuresLength=C;let B=y(R.getPropertyArray("POLYGON_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYGON_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let H=y(R.getPropertyArray("POLYGON_INDEX_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYGON_INDEX_COUNT",X.UNSIGNED_INT,1));if(!l(H))throw new ce("Feature table property: POLYGON_INDEX_COUNTS must be defined when POLYGONS_LENGTH is greater than 0");let V=B.reduce(function(j,Z){return j+Z*2},0),G=H.reduce(function(j,Z){return j+Z},0),k=new Uint32Array(t,n,G);n+=d;let W=new Uint16Array(t,n,V);n+=p;let q,J;l(x.POLYGON_MINIMUM_HEIGHTS)&&l(x.POLYGON_MAXIMUM_HEIGHTS)&&(q=R.getPropertyArray("POLYGON_MINIMUM_HEIGHTS",X.FLOAT,1),J=R.getPropertyArray("POLYGON_MAXIMUM_HEIGHTS",X.FLOAT,1)),e._polygons=new bB({positions:W,counts:B,indexCounts:H,indices:k,minimumHeight:_,maximumHeight:E,polygonMinimumHeights:q,polygonMaximumHeights:J,center:I,rectangle:L,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,batchIds:N.polygons,modelMatrix:w})}if(S>0){R.featuresLength=S;let B=y(R.getPropertyArray("POLYLINE_COUNTS",X.UNSIGNED_INT,1),R.getPropertyArray("POLYLINE_COUNT",X.UNSIGNED_INT,1));if(!l(B))throw new ce("Feature table property: POLYLINE_COUNTS must be defined when POLYLINES_LENGTH is greater than 0");let H=R.getPropertyArray("POLYLINE_WIDTHS",X.UNSIGNED_SHORT,1);if(!l(H)){H=new Uint16Array(S);for(let J=0;J<S;++J)H[J]=2}let V=B.reduce(function(J,j){return J+j*3},0),G=new Uint16Array(t,n,V);n+=g;let k=e._tileset,W=k.examineVectorLinesFunction;if(l(W)){let J=SB(new Uint16Array(G),L,_,E,ee.WGS84);f7e(J,B,N.polylines,O,e.url,W)}let q=c7e;l(k.classificationType)&&(q=l7e),e._polylines=q({positions:G,widths:H,counts:B,batchIds:N.polylines,minimumHeight:_,maximumHeight:E,center:I,rectangle:L,boundingVolume:e.tile.boundingVolume.boundingVolume,batchTable:O,classificationType:k.classificationType,keepDecodedPositions:k.vectorKeepDecodedPositions})}if(v>0){let B=new Uint16Array(t,n,v*3);n+=m,e._points=new xB({positions:B,batchIds:N.points,minimumHeight:_,maximumHeight:E,rectangle:L,batchTable:O})}}function XW(e){let t=e.featuresLength;if(!l(e._features)&&t>0){let n=new Array(t);l(e._polygons)&&e._polygons.createFeatures(e,n),l(e._polylines)&&e._polylines.createFeatures(e,n),l(e._points)&&e._points.createFeatures(e,n),e._features=n}}xd.prototype.hasProperty=function(e,t){return this._batchTable.hasProperty(e,t)};xd.prototype.getFeature=function(e){return l(this._features)||XW(this),this._features[e]};xd.prototype.applyDebugSettings=function(e,t){l(this._polygons)&&this._polygons.applyDebugSettings(e,t),l(this._polylines)&&this._polylines.applyDebugSettings(e,t),l(this._points)&&this._points.applyDebugSettings(e,t)};xd.prototype.applyStyle=function(e){l(this._features)||XW(this),l(this._polygons)&&this._polygons.applyStyle(e,this._features),l(this._polylines)&&this._polylines.applyStyle(e,this._features),l(this._points)&&this._points.applyStyle(e,this._features)};xd.prototype.update=function(e,t){let n=!0;l(this._polygons)&&(this._polygons.classificationType=this._tileset.classificationType,this._polygons.debugWireframe=this._tileset.debugWireframe,this._polygons.update(t),n=n&&this._polygons.ready),l(this._polylines)&&(this._polylines.update(t),n=n&&this._polylines.ready),l(this._points)&&(this._points.update(t),n=n&&this._points.ready),l(this._batchTable)&&n&&(l(this._features)||XW(this),this._batchTable.update(e,t),this._ready=!0)};xd.prototype.pick=function(e,t,n){};xd.prototype.getPolylinePositions=function(e){let t=this._polylines;if(l(t))return t.getPositions(e)};xd.prototype.isDestroyed=function(){return!1};xd.prototype.destroy=function(){return this._polygons=this._polygons&&this._polygons.destroy(),this._polylines=this._polylines&&this._polylines.destroy(),this._points=this._points&&this._points.destroy(),this._batchTable=this._batchTable&&this._batchTable.destroy(),ue(this)};function f7e(e,t,n,i,o,r){let s=t.length,a=0;for(let c=0;c<s;c++){let u=t[c]*3,f=e.slice(a,a+u);a+=u,r(f,n[c],o,i)}}var vB=xd;var rce={b3dm:function(e,t,n,i,o){return Dp.fromB3dm(e,t,n,i,o)},pnts:function(e,t,n,i,o){return Dp.fromPnts(e,t,n,i,o)},i3dm:function(e,t,n,i,o){return Dp.fromI3dm(e,t,n,i,o)},cmpt:function(e,t,n,i,o){return jL.fromTileType(e,t,n,i,o,rce)},externalTileset:function(e,t,n,i){return rB.fromJson(e,t,n,i)},geom:function(e,t,n,i,o){return new JL(e,t,n,i,o)},vctr:function(e,t,n,i,o){return new vB(e,t,n,i,o)},subt:function(e,t,n,i,o){return tw.fromSubtreeJson(e,t,n,void 0,i,o)},subtreeJson:function(e,t,n,i){return tw.fromSubtreeJson(e,t,n,i)},glb:function(e,t,n,i,o){if(i.byteLength<12)throw new ce("Invalid glb content");let a=new DataView(i,o).getUint32(8,!0),c=new Uint8Array(i,o,a);return Dp.fromGltf(e,t,n,c)},gltf:function(e,t,n,i){return Dp.fromGltf(e,t,n,i)},geoJson:function(e,t,n,i){return Dp.fromGeoJson(e,t,n,i)}},KA=rce;var d7e={UNLOADED:0,LOADING:1,PROCESSING:2,READY:3,EXPIRED:4,FAILED:5},Yo=Object.freeze(d7e);var bd={BATCHED_3D_MODEL:"b3dm",INSTANCED_3D_MODEL:"i3dm",COMPOSITE:"cmpt",POINT_CLOUD:"pnts",VECTOR:"vctr",GEOMETRY:"geom",GLTF:"gltf",GLTF_BINARY:"glb",IMPLICIT_SUBTREE:"subt",IMPLICIT_SUBTREE_JSON:"subtreeJson",EXTERNAL_TILESET:"externalTileset",MULTIPLE_CONTENT:"multipleContent",GEOJSON:"geoJson",VOXEL_BINARY:"voxl",VOXEL_JSON:"voxelJson"};bd.isBinaryFormat=function(e){switch(e){case bd.BATCHED_3D_MODEL:case bd.INSTANCED_3D_MODEL:case bd.COMPOSITE:case bd.POINT_CLOUD:case bd.VECTOR:case bd.GEOMETRY:case bd.IMPLICIT_SUBTREE:case bd.VOXEL_BINARY:case bd.GLTF_BINARY:return!0;default:return!1}};var Bs=Object.freeze(bd);var h7e={NOT_COMPUTED:-1,USE_OPTIMIZATION:1,SKIP_OPTIMIZATION:0},Td=Object.freeze(h7e);var ks={RENDER:0,PICK:1,SHADOW:2,PRELOAD:3,PRELOAD_FLIGHT:4,REQUEST_RENDER_MODE_DEFER_CHECK:5,MOST_DETAILED_PRELOAD:6,MOST_DETAILED_PICK:7,NUMBER_OF_PASSES:8},Np=new Array(ks.NUMBER_OF_PASSES);Np[ks.RENDER]=Object.freeze({pass:ks.RENDER,isRender:!0,requestTiles:!0,ignoreCommands:!1});Np[ks.PICK]=Object.freeze({pass:ks.PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});Np[ks.SHADOW]=Object.freeze({pass:ks.SHADOW,isRender:!1,requestTiles:!0,ignoreCommands:!1});Np[ks.PRELOAD]=Object.freeze({pass:ks.PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Np[ks.PRELOAD_FLIGHT]=Object.freeze({pass:ks.PRELOAD_FLIGHT,isRender:!1,requestTiles:!0,ignoreCommands:!0});Np[ks.REQUEST_RENDER_MODE_DEFER_CHECK]=Object.freeze({pass:ks.REQUEST_RENDER_MODE_DEFER_CHECK,isRender:!1,requestTiles:!0,ignoreCommands:!0});Np[ks.MOST_DETAILED_PRELOAD]=Object.freeze({pass:ks.MOST_DETAILED_PRELOAD,isRender:!1,requestTiles:!0,ignoreCommands:!0});Np[ks.MOST_DETAILED_PICK]=Object.freeze({pass:ks.MOST_DETAILED_PICK,isRender:!1,requestTiles:!1,ignoreCommands:!1});ks.getPassOptions=function(e){return Np[e]};var Fo=Object.freeze(ks);function $h(e,t){this._tileset=e,this._tile=t,this.featurePropertiesDirty=!1}Object.defineProperties($h.prototype,{featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){}},ready:{get:function(){return!0}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(e){}},batchTable:{get:function(){}},group:{get:function(){},set:function(e){}}});$h.prototype.hasProperty=function(e,t){return!1};$h.prototype.getFeature=function(e){};$h.prototype.applyDebugSettings=function(e,t){};$h.prototype.applyStyle=function(e){};$h.prototype.update=function(e,t){};$h.prototype.pick=function(e,t,n){};$h.prototype.isDestroyed=function(){return!1};$h.prototype.destroy=function(){return ue(this)};var Uw=$h;function Fp(e){e=y(e,y.EMPTY_OBJECT);let t=e.content,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(Fp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Fp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Fp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Fp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Fp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Fp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Fp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Fp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var wB=Fp;function KW(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){KW._oneTimeWarning("findContentMetadata-missing-root-schema","Could not find a metadata schema for content metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new wB({content:n,class:o})}}KW._oneTimeWarning=At;var ZA=KW;function m7e(e,t){let n=e.metadataExtension;if(!l(n))return;let i=n.groups,o=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"].group:t.group;if(typeof o=="number")return i[o];let r=n.groupIds.findIndex(function(s){return s===o});return r>=0?i[r]:void 0}var $A=m7e;function Bp(e){e=y(e,y.EMPTY_OBJECT);let t=e.tile,n=e.class;this._class=n,this._properties=t.properties,this._extensions=t.extensions,this._extras=t.extras}Object.defineProperties(Bp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Bp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Bp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Bp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Bp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Bp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Bp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Bp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var DB=Bp;function ZW(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t.metadata;if(!l(n))return;if(!l(e.schema)){ZW._oneTimeWarning("findTileMetadata-missing-root-schema","Could not find a metadata schema for tile metadata. For tilesets that contain external tilesets, make sure the schema is added to the root tileset.json.");return}let i=y(e.schema.classes,y.EMPTY_OBJECT);if(l(n.class)){let o=i[n.class];return new DB({tile:n,class:o})}}ZW._oneTimeWarning=At;var IB=ZW;function p7e(e){let t=new Uint8Array(e),n=Lh(t);if(n==="glTF"&&(n="glb"),Bs.isBinaryFormat(n))return{contentType:n,binaryPayload:t};let i=_7e(t);if(l(i.root))return{contentType:Bs.EXTERNAL_TILESET,jsonPayload:i};if(l(i.asset))return{contentType:Bs.GLTF,jsonPayload:i};if(l(i.tileAvailability))return{contentType:Bs.IMPLICIT_SUBTREE_JSON,jsonPayload:i};if(l(i.type))return{contentType:Bs.GEOJSON,jsonPayload:i};if(l(i.voxelTable))return{contentType:Bs.VOXEL_JSON,jsonPayload:i};throw new ce("Invalid tile content.")}function _7e(e){let t;try{t=Lo(e)}catch{throw new ce("Invalid tile content.")}return t}var kp=p7e;function yf(e,t,n,i){this._tileset=e,this._tile=t,this._tilesetResource=n,this._contents=[],this._contentsCreated=!1;let o=l(i.contents)?i.contents:i.content;this._innerContentHeaders=o,this._requestsInFlight=0,this._cancelCount=0;let r=this._innerContentHeaders.length;this._arrayFetchPromises=new Array(r),this._requests=new Array(r),this._ready=!1,this._innerContentResources=new Array(r),this._serverKeys=new Array(r);for(let s=0;s<r;s++){let a=n.getDerivedResource({url:o[s].uri}),c=yc.getServerKey(a.getUrlComponent());this._innerContentResources[s]=a,this._serverKeys[s]=c}}Object.defineProperties(yf.prototype,{featurePropertiesDirty:{get:function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)if(e[n].featurePropertiesDirty)return!0;return!1},set:function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].featurePropertiesDirty=e}},featuresLength:{get:function(){return 0}},pointsLength:{get:function(){return 0}},trianglesLength:{get:function(){return 0}},geometryByteLength:{get:function(){return 0}},texturesByteLength:{get:function(){return 0}},batchTableByteLength:{get:function(){return 0}},innerContents:{get:function(){return this._contents}},ready:{get:function(){return this._contentsCreated?this._ready:!1}},tileset:{get:function(){return this._tileset}},tile:{get:function(){return this._tile}},url:{get:function(){}},metadata:{get:function(){},set:function(){}},batchTable:{get:function(){}},group:{get:function(){},set:function(){}},innerContentUrls:{get:function(){return this._innerContentHeaders.map(function(e){return e.uri})}}});function $W(e,t){e._requestsInFlight+=t,e.tileset.statistics.numberOfPendingRequests+=t}function sce(e,t){e._cancelCount++,e._tile._contentState=t;let n=e.tileset.statistics;n.numberOfPendingRequests-=e._requestsInFlight,n.numberOfAttemptedRequests+=e._requestsInFlight,e._requestsInFlight=0;let i=e._innerContentHeaders.length;e._arrayFetchPromises=new Array(i)}yf.prototype.requestInnerContents=function(){if(!g7e(this._serverKeys)){this.tileset.statistics.numberOfAttemptedRequests+=this._serverKeys.length;return}let e=this._innerContentHeaders;$W(this,e.length);let t=this._cancelCount;for(let n=0;n<e.length;n++)this._arrayFetchPromises[n]=y7e(this,n,t,this._tile._contentState);return x7e(this)};function g7e(e){let t={};for(let n=0;n<e.length;n++){let i=e[n];l(t[i])?t[i]++:t[i]=1}for(let n in t)if(t.hasOwnProperty(n)&&!yc.serverHasOpenSlots(n,t[n]))return!1;return yc.heapHasOpenSlots(e.length)}function y7e(e,t,n,i){let o=e._innerContentResources[t].clone(),r=e.tile,s=function(){return r._priority},a=e._serverKeys[t],c=new tr({throttle:!0,throttleByServer:!0,type:ps.TILES3D,priorityFunction:s,serverKey:a});o.request=c,e._requests[t]=c;let u=o.fetchArrayBuffer();if(l(u))return u.then(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){sce(e,i);return}return $W(e,-1),f}}).catch(function(f){if(!(n<e._cancelCount)){if(o.request.cancelled||o.request.state===Zn.CANCELLED){sce(e,i);return}$W(e,-1),ace(e,t,f)}})}async function x7e(e){let t=e._cancelCount,n=await Promise.all(e._arrayFetchPromises);if(t<e._cancelCount)return;let i=n.map((r,s)=>b7e(e,r,s)),o=await Promise.all(i);return e._contentsCreated=!0,e._contents=o.filter(l),o}async function b7e(e,t,n){if(l(t))try{let i=kp(t);if(i.contentType===Bs.EXTERNAL_TILESET)throw new ce("External tilesets are disallowed inside multiple contents");e._disableSkipLevelOfDetail=e._disableSkipLevelOfDetail||i.contentType===Bs.GEOMETRY||i.contentType===Bs.VECTOR;let o=e._tileset,r=e._innerContentResources[n],s=e._tile,a,c=KA[i.contentType];l(i.binaryPayload)?a=await Promise.resolve(c(o,s,r,i.binaryPayload.buffer,0)):a=await Promise.resolve(c(o,s,r,i.jsonPayload));let u=e._innerContentHeaders[n];if(s.hasImplicitContentMetadata){let d=s.implicitSubtree,p=s.implicitCoordinates;a.metadata=d.getContentMetadataView(p,n)}else s.hasImplicitContent||(a.metadata=ZA(o,u));let f=$A(o,u);return l(f)&&(a.group=new nA({metadata:f})),a}catch(i){ace(e,n,i)}}function ace(e,t,n){let i=e._tileset,o=e._innerContentResources[t].url,r=l(n.message)?n.message:n.toString();i.tileFailed.numberOfListeners>0?i.tileFailed.raiseEvent({url:o,message:r}):(console.log(`A content failed to load: ${o}`),console.log(`Error: ${r}`))}yf.prototype.cancelRequests=function(){for(let e=0;e<this._requests.length;e++){let t=this._requests[e];l(t)&&t.cancel()}};yf.prototype.hasProperty=function(e,t){return!1};yf.prototype.getFeature=function(e){};yf.prototype.applyDebugSettings=function(e,t){let n=this._contents,i=n.length;for(let o=0;o<i;++o)n[o].applyDebugSettings(e,t)};yf.prototype.applyStyle=function(e){let t=this._contents,n=t.length;for(let i=0;i<n;++i)t[i].applyStyle(e)};yf.prototype.update=function(e,t){let n=this._contents,i=n.length,o=!0;for(let r=0;r<i;++r)n[r].update(e,t),o=o&&n[r].ready;!this._ready&&o&&(this._ready=!0)};yf.prototype.pick=function(e,t,n){if(!this._ready)return;let i,o=Number.POSITIVE_INFINITY,r=this._contents,s=r.length;for(let a=0;a<s;++a){let c=r[a].pick(e,t,n);if(!l(c))continue;let u=h.distance(e.origin,c);u<o&&(i=c,o=u)}if(l(i))return n};yf.prototype.isDestroyed=function(){return!1};yf.prototype.destroy=function(){let e=this._contents,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var PB=yf;var cce=Math.cos,lce=Math.sin,T7e=Math.sqrt,QW={};QW.computePosition=function(e,t,n,i,o,r,s){let a=t.radiiSquared,c=e.nwCorner,u=e.boundingRectangle,f=c.latitude-e.granYCos*i+o*e.granXSin,d=cce(f),p=lce(f),g=a.z*p,m=c.longitude+i*e.granYSin+o*e.granXCos,x=d*cce(m),b=d*lce(m),T=a.x*x,A=a.y*b,C=T7e(T*x+A*b+g*p);if(r.x=T/C,r.y=A/C,r.z=g/C,n){let S=e.stNwCorner;l(S)?(f=S.latitude-e.stGranYCos*i+o*e.stGranXSin,m=S.longitude+i*e.stGranYSin+o*e.stGranXCos,s.x=(m-e.stWest)*e.lonScalar,s.y=(f-e.stSouth)*e.latScalar):(s.x=(m-u.west)*e.lonScalar,s.y=(f-u.south)*e.latScalar)}};var A7e=new Bi,xf=new h,C7e=new fe,RB=new h,zw=new wi;function uce(e,t,n,i,o,r,s){let a=Math.cos(t),c=i*a,u=n*a,f=Math.sin(t),d=i*f,p=n*f;zw._ellipsoid=ee.default,xf=zw.project(e,xf),xf=h.subtract(xf,RB,xf);let g=Bi.fromRotation(t,A7e);xf=Bi.multiplyByVector(g,xf,xf),xf=h.add(xf,RB,xf),e=zw.unproject(xf,e),r-=1,s-=1;let m=e.latitude,x=m+r*p,b=m-c*s,T=m-c*s+r*p,A=Math.max(m,x,b,T),C=Math.min(m,x,b,T),S=e.longitude,v=S+r*u,D=S+s*d,O=S+s*d+r*u,R=Math.max(S,v,D,O),M=Math.min(S,v,D,O);return{north:A,south:C,east:R,west:M,granYCos:c,granYSin:d,granXCos:u,granXSin:p,nwCorner:e}}QW.computeOptions=function(e,t,n,i,o,r,s){let a=e.east,c=e.west,u=e.north,f=e.south,d=!1,p=!1;u===P.PI_OVER_TWO&&(d=!0),f===-P.PI_OVER_TWO&&(p=!0);let g,m=u-f;c>a?g=P.TWO_PI-c+a:g=a-c;let x=Math.ceil(g/t)+1,b=Math.ceil(m/t)+1,T=g/(x-1),A=m/(b-1),C=re.northwest(e,r),S=re.center(e,C7e);(n!==0||i!==0)&&(S.longitude<C.longitude&&(S.longitude+=P.TWO_PI),zw._ellipsoid=ee.default,RB=zw.project(S,RB));let v=A,D=T,O=0,R=0,M=re.clone(e,o),L={granYCos:v,granYSin:O,granXCos:D,granXSin:R,nwCorner:C,boundingRectangle:M,width:x,height:b,northCap:d,southCap:p};if(n!==0){let _=uce(C,n,T,A,S,x,b);u=_.north,f=_.south,a=_.east,c=_.west,L.granYCos=_.granYCos,L.granYSin=_.granYSin,L.granXCos=_.granXCos,L.granXSin=_.granXSin,M.north=u,M.south=f,M.east=a,M.west=c}if(i!==0){n=n-i;let _=re.northwest(M,s),E=uce(_,n,T,A,S,x,b);L.stGranYCos=E.granYCos,L.stGranXCos=E.granXCos,L.stGranYSin=E.granYSin,L.stGranXSin=E.granXSin,L.stNwCorner=_,L.stWest=E.west,L.stSouth=E.south}return L};var Vs=QW;var E7e=new se,S7e=new se,v7e=new h,w7e=new re;function fce(e,t){let n=e._ellipsoid,i=t.height,o=t.width,r=t.northCap,s=t.southCap,a=i,c=2,u=0,f=4;r&&(c-=1,a-=1,u+=1,f-=2),s&&(c-=1,a-=1,u+=1,f-=2),u+=c*o+2*a-f;let d=new Float64Array(u*3),p=0,g=0,m,x=v7e;if(r)Vs.computePosition(t,n,!1,g,0,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;else for(m=0;m<o;m++)Vs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=o-1,g=1;g<i;g++)Vs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;if(g=i-1,!s)for(m=o-2;m>=0;m--)Vs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;for(m=0,g=i-2;g>0;g--)Vs.computePosition(t,n,!1,g,m,x),d[p++]=x.x,d[p++]=x.y,d[p++]=x.z;let b=d.length/3*2,T=Ne.createTypedArray(d.length/3,b),A=0;for(let S=0;S<d.length/3-1;S++)T[A++]=S,T[A++]=S+1;T[A++]=d.length/3-1,T[A++]=0;let C=new ft({attributes:new dn,primitiveType:Le.LINES});return C.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),C.indices=T,C}function D7e(e,t){let n=e._surfaceHeight,i=e._extrudedHeight,o=e._ellipsoid,r=fce(e,t),s=t.height,a=t.width,c=ri.scaleToGeodeticHeight(r.attributes.position.values,n,o,!1),u=c.length,f=new Float64Array(u*2);f.set(c);let d=ri.scaleToGeodeticHeight(r.attributes.position.values,i,o);f.set(d,u),r.attributes.position.values=f;let p=t.northCap,g=t.southCap,m=4;p&&(m-=1),g&&(m-=1);let x=(f.length/3+m)*2,b=Ne.createTypedArray(f.length/3,x);u=f.length/6;let T=0;for(let C=0;C<u-1;C++)b[T++]=C,b[T++]=C+1,b[T++]=C+u,b[T++]=C+u+1;b[T++]=u-1,b[T++]=0,b[T++]=u+u-1,b[T++]=u,b[T++]=0,b[T++]=u;let A;if(p)A=s-1;else{let C=a-1;b[T++]=C,b[T++]=C+u,A=a+s-2}if(b[T++]=A,b[T++]=A+u,!g){let C=a+A-1;b[T++]=C,b[T]=C+u}return r.indices=b,r}function JA(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.granularity,P.RADIANS_PER_DEGREE),i=y(e.ellipsoid,ee.default),o=y(e.rotation,0),r=y(e.height,0),s=y(e.extrudedHeight,r);this._rectangle=re.clone(t),this._granularity=n,this._ellipsoid=i,this._surfaceHeight=Math.max(r,s),this._rotation=o,this._extrudedHeight=Math.min(r,s),this._offsetAttribute=e.offsetAttribute,this._workerName="createRectangleOutlineGeometry"}JA.packedLength=re.packedLength+ee.packedLength+5;JA.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._extrudedHeight,t[n]=y(e._offsetAttribute,-1),t};var dce=new re,hce=ee.clone(ee.UNIT_SPHERE),QA={rectangle:dce,ellipsoid:hce,granularity:void 0,height:void 0,rotation:void 0,extrudedHeight:void 0,offsetAttribute:void 0};JA.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,dce);t+=re.packedLength;let o=ee.unpack(e,t,hce);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._surfaceHeight=s,n._rotation=a,n._extrudedHeight=c,n._offsetAttribute=u===-1?void 0:u,n):(QA.granularity=r,QA.height=s,QA.rotation=a,QA.extrudedHeight=c,QA.offsetAttribute=u===-1?void 0:u,new JA(QA))};var I7e=new fe;JA.createGeometry=function(e){let t=e._rectangle,n=e._ellipsoid,i=Vs.computeOptions(t,e._granularity,e._rotation,0,w7e,I7e),o,r;if(P.equalsEpsilon(t.north,t.south,P.EPSILON10)||P.equalsEpsilon(t.east,t.west,P.EPSILON10))return;let s=e._surfaceHeight,a=e._extrudedHeight,c=!P.equalsEpsilon(s,a,0,P.EPSILON2),u;if(c){if(o=D7e(e,i),l(e._offsetAttribute)){let p=o.attributes.position.values.length/3,g=new Uint8Array(p);e._offsetAttribute===sn.TOP?g=g.fill(1,0,p/2):(u=e._offsetAttribute===sn.NONE?0:1,g=g.fill(u)),o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:g})}let f=se.fromRectangle3D(t,n,s,S7e),d=se.fromRectangle3D(t,n,a,E7e);r=se.union(f,d)}else{if(o=fce(e,i),o.attributes.position.values=ri.scaleToGeodeticHeight(o.attributes.position.values,s,n,!1),l(e._offsetAttribute)){let f=o.attributes.position.values.length;u=e._offsetAttribute===sn.NONE?0:1;let d=new Uint8Array(f/3).fill(u);o.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:d})}r=se.fromRectangle3D(t,n,s)}return new ft({attributes:o.attributes,indices:o.indices,primitiveType:Le.LINES,boundingSphere:r,offsetAttribute:e._offsetAttribute})};var eC=JA;function nC(e){this.rectangle=re.clone(e.rectangle),this.minimumHeight=y(e.minimumHeight,0),this.maximumHeight=y(e.maximumHeight,0),this.southwestCornerCartesian=new h,this.northeastCornerCartesian=new h,this.westNormal=new h,this.southNormal=new h,this.eastNormal=new h,this.northNormal=new h;let t=y(e.ellipsoid,ee.WGS84);L7e(this,e.rectangle,t),this._orientedBoundingBox=void 0,this._boundingSphere=void 0,y(e.computeBoundingVolumes,!0)&&this.computeBoundingVolumes(t)}Object.defineProperties(nC.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});nC.prototype.computeBoundingVolumes=function(e){this._orientedBoundingBox=wn.fromRectangle(this.rectangle,this.minimumHeight,this.maximumHeight,e),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)};var mce=new h,OB=new h,pce=new h,P7e=new h,R7e=new h,O7e=new h,M7e=new h,bf=new fe,_ce=new an(h.UNIT_X,0),tC=new mn;function L7e(e,t,n){n.cartographicToCartesian(re.southwest(t),e.southwestCornerCartesian),n.cartographicToCartesian(re.northeast(t),e.northeastCornerCartesian),bf.longitude=t.west,bf.latitude=(t.south+t.north)*.5,bf.height=0;let i=n.cartographicToCartesian(bf,O7e),o=h.cross(i,h.UNIT_Z,P7e);h.normalize(o,e.westNormal),bf.longitude=t.east;let r=n.cartographicToCartesian(bf,M7e),s=h.cross(h.UNIT_Z,r,mce);h.normalize(s,e.eastNormal);let a=h.subtract(i,r,mce);h.magnitude(a)===0&&(a=h.clone(o,a));let c=h.normalize(a,R7e),u=t.south,f;if(u>0){bf.longitude=(t.west+t.east)*.5,bf.latitude=u;let x=n.cartographicToCartesian(bf,tC.origin);h.clone(c,tC.direction);let b=an.fromPointNormal(e.southwestCornerCartesian,e.westNormal,_ce);$n.rayPlane(tC,b,e.southwestCornerCartesian),f=n.geodeticSurfaceNormal(x,OB)}else f=n.geodeticSurfaceNormalCartographic(re.southeast(t),OB);let d=h.cross(f,a,pce);h.normalize(d,e.southNormal);let p=t.north,g;if(p<0){bf.longitude=(t.west+t.east)*.5,bf.latitude=p;let x=n.cartographicToCartesian(bf,tC.origin);h.negate(c,tC.direction);let b=an.fromPointNormal(e.northeastCornerCartesian,e.eastNormal,_ce);$n.rayPlane(tC,b,e.northeastCornerCartesian),g=n.geodeticSurfaceNormal(x,OB)}else g=n.geodeticSurfaceNormalCartographic(re.northwest(t),OB);let m=h.cross(a,g,pce);h.normalize(m,e.northNormal)}var N7e=new h,F7e=new h,B7e=new h(0,-1,0),k7e=new h(0,0,-1),gce=new h;function V7e(e,t){let n=t.camera,i=n.positionWC,o=n.positionCartographic,r=0;if(!re.contains(e.rectangle,o)){let u=e.southwestCornerCartesian,f=e.northeastCornerCartesian,d=e.westNormal,p=e.southNormal,g=e.eastNormal,m=e.northNormal;t.mode!==ne.SCENE3D&&(u=t.mapProjection.project(re.southwest(e.rectangle),N7e),u.z=u.y,u.y=u.x,u.x=0,f=t.mapProjection.project(re.northeast(e.rectangle),F7e),f.z=f.y,f.y=f.x,f.x=0,d=B7e,g=h.UNIT_Y,p=k7e,m=h.UNIT_Z);let x=h.subtract(i,u,gce),b=h.dot(x,d),T=h.dot(x,p),A=h.subtract(i,f,gce),C=h.dot(A,g),S=h.dot(A,m);b>0?r+=b*b:C>0&&(r+=C*C),T>0?r+=T*T:S>0&&(r+=S*S)}let s,a,c;if(t.mode===ne.SCENE3D?(s=o.height,a=e.minimumHeight,c=e.maximumHeight):(s=i.x,a=0,c=0),s>c){let u=s-c;r+=u*u}else if(s<a){let u=a-s;r+=u*u}return Math.sqrt(r)}nC.prototype.distanceToCamera=function(e){let t=V7e(this,e);if(e.mode===ne.SCENE3D&&l(this._orientedBoundingBox)){let n=Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC));return Math.max(t,n)}return t};nC.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};nC.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new eC({rectangle:this.rectangle,height:this.minimumHeight,extrudedHeight:this.maximumHeight}),i=new vt({geometry:n,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}});return new In({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var Ad=nC;var Hw={},U7e=new h,yce=new h,xce=new h,bce=new h,Tce=new wn;Hw.validOutline=function(e){let n=wn.fromPoints(e,Tce).halfAxes,i=$.getColumn(n,0,yce),o=$.getColumn(n,1,xce),r=$.getColumn(n,2,bce),s=h.magnitude(i),a=h.magnitude(o),c=h.magnitude(r);return!(s===0&&(a===0||c===0)||a===0&&c===0)};Hw.computeProjectTo2DArguments=function(e,t,n,i){let o=wn.fromPoints(e,Tce),r=o.halfAxes,s=$.getColumn(r,0,yce),a=$.getColumn(r,1,xce),c=$.getColumn(r,2,bce),u=h.magnitude(s),f=h.magnitude(a),d=h.magnitude(c),p=Math.min(u,f,d);if(u===0&&(f===0||d===0)||f===0&&d===0)return!1;let g,m;return(p===f||p===d)&&(g=s),p===u?g=a:p===d&&(m=a),(p===u||p===f)&&(m=c),h.normalize(g,n),h.normalize(m,i),h.clone(o.center,t),!0};function Ace(e,t,n,i,o){let r=h.subtract(e,t,U7e),s=h.dot(n,r),a=h.dot(i,r);return U.fromElements(s,a,o)}Hw.createProjectPointsTo2DFunction=function(e,t,n){return function(i){let o=new Array(i.length);for(let r=0;r<i.length;r++)o[r]=Ace(i[r],e,t,n);return o}};Hw.createProjectPointTo2DFunction=function(e,t,n){return function(i,o){return Ace(i,e,t,n,o)}};var Ug=Hw;function z7e(e){let t=e.length,n=new Float64Array(t*3),i=Ne.createTypedArray(t,t*2),o=0,r=0;for(let a=0;a<t;a++){let c=e[a];n[o++]=c.x,n[o++]=c.y,n[o++]=c.z,i[r++]=a,i[r++]=(a+1)%t}let s=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n})});return new ft({attributes:s,indices:i,primitiveType:Le.LINES})}function Ax(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy;this._polygonHierarchy=t,this._workerName="createCoplanarPolygonOutlineGeometry",this.packedLength=Un.computeHierarchyPackedLength(t,h)+1}Ax.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions}};return new Ax(t)};Ax.pack=function(e,t,n){return n=y(n,0),n=Un.packPolygonHierarchy(e._polygonHierarchy,t,n,h),t[n]=e.packedLength,t};var H7e={polygonHierarchy:{}};Ax.unpack=function(e,t,n){t=y(t,0);let i=Un.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=e[t];return l(n)||(n=new Ax(H7e)),n._polygonHierarchy=i,n.packedLength=o,n};Ax.createGeometry=function(e){let t=e._polygonHierarchy,n=t.positions;if(n=bo(n,h.equalsEpsilon,!0),n.length<3||!Ug.validOutline(n))return;let o=Un.polygonOutlinesFromHierarchy(t,!1);if(o.length===0)return;let r=[];for(let c=0;c<o.length;c++){let u=new vt({geometry:z7e(o[c])});r.push(u)}let s=Nn.combineInstances(r)[0],a=se.fromPoints(t.positions);return new ft({attributes:s.attributes,indices:s.indices,primitiveType:s.primitiveType,boundingSphere:a})};var Cd=Ax;var MB=new fe;function Gw(e){let t=sg.fromToken(e.token),n=y(e.minimumHeight,0),i=y(e.maximumHeight,0),o=y(e.ellipsoid,ee.WGS84);this.s2Cell=t,this.minimumHeight=n,this.maximumHeight=i,this.ellipsoid=o;let r=$7e(t,n,i,o);this._boundingPlanes=r;let s=tqe(r);this._vertices=s,this._edgeNormals=new Array(6),this._edgeNormals[0]=sj(r[0],s.slice(0,4));let a;for(a=0;a<4;a++)this._edgeNormals[0][a]=h.negate(this._edgeNormals[0][a],this._edgeNormals[0][a]);for(this._edgeNormals[1]=sj(r[1],s.slice(4,8)),a=0;a<4;a++)this._edgeNormals[2+a]=sj(r[2+a],[s[a%4],s[(a+1)%4],s[4+(a+1)%4],s[4+a]]);for(this._planeVertices=[this._vertices.slice(0,4),this._vertices.slice(4,8)],a=0;a<4;a++)this._planeVertices.push([this._vertices[a%4],this._vertices[(a+1)%4],this._vertices[4+(a+1)%4],this._vertices[4+a]]);let c=t.getCenter();MB=o.cartesianToCartographic(c,MB),MB.height=(i+n)/2,this.center=o.cartographicToCartesian(MB,c),this._boundingSphere=se.fromPoints(s)}var G7e=new h,W7e=new fe,j7e=new h,q7e=new fe,Y7e=new h,X7e=new h,K7e=new h,Z7e=new h;function $7e(e,t,n,i){let o=new Array(6),r=e.getCenter(),s=i.geodeticSurfaceNormal(r,G7e),a=i.cartesianToCartographic(r,W7e);a.height=n;let c=i.cartographicToCartesian(a,j7e),u=an.fromPointNormal(c,s);o[0]=u;let f=0,d,p=[],g,m;for(d=0;d<4;d++){g=e.getVertex(d),p[d]=g,m=i.cartesianToCartographic(g,q7e),m.height=t;let b=an.getPointDistance(u,i.cartographicToCartesian(m,Y7e));b<f&&(f=b)}let x=an.clone(u);for(x.normal=h.negate(x.normal,x.normal),x.distance=x.distance*-1+f,o[1]=x,d=0;d<4;d++){g=p[d];let b=p[(d+1)%4],T=i.geodeticSurfaceNormal(g,X7e),A=h.subtract(b,g,Z7e),C=h.cross(A,T,K7e);C=h.normalize(C,C),o[2+d]=an.fromPointNormal(g,C)}return o}var Cx=new h,Ex=new h,Sx=new h,JW=new h,ej=new h,tj=new h,Q7e=new h,J7e=new h,eqe=new h,nj=new h,ij=new h,oj=new h,zg=new h,Qh=new $;function Cce(e,t,n){Cx=e.normal,Ex=t.normal,Sx=n.normal,JW=h.multiplyByScalar(e.normal,-e.distance,JW),ej=h.multiplyByScalar(t.normal,-t.distance,ej),tj=h.multiplyByScalar(n.normal,-n.distance,tj),nj=h.multiplyByScalar(h.cross(Ex,Sx,Q7e),h.dot(JW,Cx),nj),ij=h.multiplyByScalar(h.cross(Sx,Cx,J7e),h.dot(ej,Ex),ij),oj=h.multiplyByScalar(h.cross(Cx,Ex,eqe),h.dot(tj,Sx),oj),Qh[0]=Cx.x,Qh[1]=Ex.x,Qh[2]=Sx.x,Qh[3]=Cx.y,Qh[4]=Ex.y,Qh[5]=Sx.y,Qh[6]=Cx.z,Qh[7]=Ex.z,Qh[8]=Sx.z;let i=$.determinant(Qh);return zg=h.add(nj,ij,zg),zg=h.add(zg,oj,zg),new h(zg.x/i,zg.y/i,zg.z/i)}function tqe(e){let t=new Array(8);for(let n=0;n<4;n++)t[n]=Cce(e[0],e[2+(n+3)%4],e[2+n%4]),t[n+4]=Cce(e[1],e[2+(n+3)%4],e[2+n%4]);return t}var rj=new h,iC=new h;function sj(e,t){let n=[];for(let i=0;i<4;i++)rj=h.subtract(t[(i+1)%4],t[i],rj),iC=h.cross(e.normal,rj,iC),iC=h.normalize(iC,iC),n[i]=h.clone(iC);return n}Object.defineProperties(Gw.prototype,{boundingVolume:{get:function(){return this}},boundingSphere:{get:function(){return this._boundingSphere}}});var aj=new h;Gw.prototype.distanceToCamera=function(e){let t=e.camera.positionWC,n=[],i=[],o;an.getPointDistance(this._boundingPlanes[0],t)>0?(n.push(0),i.push(this._planeVertices[0]),o=this._edgeNormals[0]):an.getPointDistance(this._boundingPlanes[1],t)>0&&(n.push(1),i.push(this._planeVertices[1]),o=this._edgeNormals[1]);let r,s;for(r=0;r<4;r++)s=2+r,an.getPointDistance(this._boundingPlanes[s],t)>0&&(n.push(s),i.push(this._planeVertices[s]),o=this._edgeNormals[s]);if(n.length===0)return 0;let a,c;if(n.length===1)return c=this._boundingPlanes[n[0]],a=cj(an.projectPointOntoPlane(c,t,aj),i[0],c,o),h.distance(a,t);if(n.length===2){if(n[0]===0){let p=[this._vertices[4*n[0]+(n[1]-2)],this._vertices[4*n[0]+(n[1]-2+1)%4]];return a=Ece(t,p[0],p[1]),h.distance(a,t)}let f=Number.MAX_VALUE,d;for(r=0;r<2;r++)c=this._boundingPlanes[n[r]],a=cj(an.projectPointOntoPlane(c,t,aj),i[r],c,this._edgeNormals[n[r]]),d=h.distanceSquared(a,t),d<f&&(f=d);return Math.sqrt(f)}else if(n.length>3)return a=cj(an.projectPointOntoPlane(this._boundingPlanes[1],t,aj),this._planeVertices[1],this._boundingPlanes[1],this._edgeNormals[1]),h.distance(a,t);let u=n[1]===2&&n[2]===5?0:1;return n[0]===0?h.distance(t,this._vertices[(n[1]-2+u)%4]):h.distance(t,this._vertices[4+(n[1]-2+u)%4])};var nqe=new h,iqe=new h;function Ece(e,t,n){let i=h.subtract(n,t,nqe),o=h.subtract(e,t,iqe),r=h.dot(i,o);if(r<=0)return t;let s=h.dot(i,i);return r>=s?n:(r=r/s,new h((1-r)*t.x+r*n.x,(1-r)*t.y+r*n.y,(1-r)*t.z+r*n.z))}var oqe=new an(h.UNIT_X,0);function cj(e,t,n,i){let o=Number.MAX_VALUE,r,s,a;for(let c=0;c<t.length;c++){let u=an.fromPointNormal(t[c],i[c],oqe);an.getPointDistance(u,e)<0||(a=Ece(e,t[c],t[(c+1)%4]),r=h.distance(e,a),r<o&&(o=r,s=a))}return l(s)?s:e}Gw.prototype.intersectPlane=function(e){let t=0,n=0;for(let i=0;i<this._vertices.length;i++)h.dot(e.normal,this._vertices[i])+e.distance<0?n++:t++;return t===this._vertices.length?Yt.INSIDE:n===this._vertices.length?Yt.OUTSIDE:Yt.INTERSECTING};Gw.prototype.createDebugVolume=function(e){let t=new F.clone(F.IDENTITY),n=new Cd({polygonHierarchy:{positions:this._planeVertices[0]}}),i=Cd.createGeometry(n),o=new vt({geometry:i,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}}),r=new Cd({polygonHierarchy:{positions:this._planeVertices[1]}}),s=Cd.createGeometry(r),a=new vt({geometry:s,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}}),c=[];for(let u=0;u<4;u++){let f=new Cd({polygonHierarchy:{positions:this._planeVertices[2+u]}}),d=Cd.createGeometry(f);c[u]=new vt({geometry:d,id:"outline",modelMatrix:t,attributes:{color:qt.fromColor(e)}})}return new In({geometryInstances:[c[0],c[1],c[2],c[3],a,o],appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var LB=Gw;var rqe=new h(1,1,1),NB=Math.cos,FB=Math.sin;function oC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,rqe),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,10)),c=Math.round(y(e.slicePartitions,8)),u=Math.round(y(e.subdivisions,128));this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._subdivisions=u,this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidOutlineGeometry"}oC.packedLength=2*h.packedLength+8;oC.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n++]=e._subdivisions,t[n]=y(e._offsetAttribute,-1),t};var Sce=new h,vce=new h,Vp={radii:Sce,innerRadii:vce,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0,offsetAttribute:void 0};oC.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,Sce);t+=h.packedLength;let o=h.unpack(e,t,vce);t+=h.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._minimumClock=r,n._maximumClock=s,n._minimumCone=a,n._maximumCone=c,n._stackPartitions=u,n._slicePartitions=f,n._subdivisions=d,n._offsetAttribute=p===-1?void 0:p,n):(Vp.minimumClock=r,Vp.maximumClock=s,Vp.minimumCone=a,Vp.maximumCone=c,Vp.stackPartitions=u,Vp.slicePartitions=f,Vp.subdivisions=d,Vp.offsetAttribute=p===-1?void 0:p,new oC(Vp))};oC.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._subdivisions,c=ee.fromCartesian3(t),u=e._slicePartitions+1,f=e._stackPartitions+1;u=Math.round(u*Math.abs(o-i)/P.TWO_PI),f=Math.round(f*Math.abs(s-r)/P.PI),u<2&&(u=2),f<2&&(f=2);let d=0,p=1,g=n.x!==t.x||n.y!==t.y||n.z!==t.z,m=!1,x=!1;g&&(p=2,r>0&&(m=!0,d+=u),s<Math.PI&&(x=!0,d+=u));let b=a*p*(f+u),T=new Float64Array(b*3),A=2*(b+d-(u+f)*p),C=Ne.createTypedArray(b,A),S,v,D,O,R=0,M=new Array(f),L=new Array(f);for(S=0;S<f;S++)O=r+S*(s-r)/(f-1),M[S]=FB(O),L[S]=NB(O);let _=new Array(a),E=new Array(a);for(S=0;S<a;S++)D=i+S*(o-i)/(a-1),_[S]=FB(D),E[S]=NB(D);for(S=0;S<f;S++)for(v=0;v<a;v++)T[R++]=t.x*M[S]*E[v],T[R++]=t.y*M[S]*_[v],T[R++]=t.z*L[S];if(g)for(S=0;S<f;S++)for(v=0;v<a;v++)T[R++]=n.x*M[S]*E[v],T[R++]=n.y*M[S]*_[v],T[R++]=n.z*L[S];for(M.length=a,L.length=a,S=0;S<a;S++)O=r+S*(s-r)/(a-1),M[S]=FB(O),L[S]=NB(O);for(_.length=u,E.length=u,S=0;S<u;S++)D=i+S*(o-i)/(u-1),_[S]=FB(D),E[S]=NB(D);for(S=0;S<a;S++)for(v=0;v<u;v++)T[R++]=t.x*M[S]*E[v],T[R++]=t.y*M[S]*_[v],T[R++]=t.z*L[S];if(g)for(S=0;S<a;S++)for(v=0;v<u;v++)T[R++]=n.x*M[S]*E[v],T[R++]=n.y*M[S]*_[v],T[R++]=n.z*L[S];for(R=0,S=0;S<f*p;S++){let N=S*a;for(v=0;v<a-1;v++)C[R++]=N+v,C[R++]=N+v+1}let w=f*a*p;for(S=0;S<u;S++)for(v=0;v<a-1;v++)C[R++]=w+S+v*u,C[R++]=w+S+(v+1)*u;if(g)for(w=f*a*p+u*a,S=0;S<u;S++)for(v=0;v<a-1;v++)C[R++]=w+S+v*u,C[R++]=w+S+(v+1)*u;if(g){let N=f*a*p,B=N+a*u;if(m)for(S=0;S<u;S++)C[R++]=N+S,C[R++]=B+S;if(x)for(N+=a*u-u,B+=a*u-u,S=0;S<u;S++)C[R++]=N+S,C[R++]=B+S}let I=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T})});if(l(e._offsetAttribute)){let N=T.length,B=e._offsetAttribute===sn.NONE?0:1,H=new Uint8Array(N/3).fill(B);I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:H})}return new ft({attributes:I,indices:C,primitiveType:Le.LINES,boundingSphere:se.fromEllipsoid(c),offsetAttribute:e._offsetAttribute})};var Tf=oC;function rC(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,subdivisions:e.subdivisions};this._ellipsoidGeometry=new Tf(i),this._workerName="createSphereOutlineGeometry"}rC.packedLength=Tf.packedLength;rC.pack=function(e,t,n){return Tf.pack(e._ellipsoidGeometry,t,n)};var sqe=new Tf,vx={radius:void 0,radii:new h,stackPartitions:void 0,slicePartitions:void 0,subdivisions:void 0};rC.unpack=function(e,t,n){let i=Tf.unpack(e,t,sqe);return vx.stackPartitions=i._stackPartitions,vx.slicePartitions=i._slicePartitions,vx.subdivisions=i._subdivisions,l(n)?(h.clone(i._radii,vx.radii),n._ellipsoidGeometry=new Tf(vx),n):(vx.radius=i._radii.x,new rC(vx))};rC.createGeometry=function(e){return Tf.createGeometry(e._ellipsoidGeometry)};var Hg=rC;function sC(e,t){t===0&&(t=P.EPSILON7),this._boundingSphere=new se(e,t)}Object.defineProperties(sC.prototype,{center:{get:function(){return this._boundingSphere.center}},radius:{get:function(){return this._boundingSphere.radius}},boundingVolume:{get:function(){return this._boundingSphere}},boundingSphere:{get:function(){return this._boundingSphere}}});sC.prototype.distanceToCamera=function(e){let t=this._boundingSphere;return Math.max(0,h.distance(t.center,e.camera.positionWC)-t.radius)};sC.prototype.intersectPlane=function(e){return se.intersectPlane(this._boundingSphere,e)};sC.prototype.update=function(e,t){h.clone(e,this._boundingSphere.center),this._boundingSphere.radius=t};sC.prototype.createDebugVolume=function(e){let t=new Hg({radius:this.radius}),n=F.fromTranslation(this.center,new F.clone(F.IDENTITY)),i=new vt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:qt.fromColor(e)}});return new In({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var Gg=sC;var aqe=new h,cqe=new h,lqe=new h,uqe=new h;function wx(e,t,n){n=h.cross(e,t,n);let i=h.magnitude(n);return h.multiplyByScalar(n,P.EPSILON7/i,n)}function lj(e,t){let n=h.normalize(e,uqe),i=h.equalsEpsilon(n,h.UNIT_X,P.EPSILON6)?h.UNIT_Y:h.UNIT_X;return wx(e,i,t)}function wce(e){let t=$.getColumn(e,0,aqe),n=$.getColumn(e,1,cqe),i=$.getColumn(e,2,lqe),o=h.equals(t,h.ZERO),r=h.equals(n,h.ZERO),s=h.equals(i,h.ZERO);return!o&&!r&&!s?e:o&&r&&s?(e[0]=P.EPSILON7,e[4]=P.EPSILON7,e[8]=P.EPSILON7,e):(o&&!r&&!s?t=wx(n,i,t):!o&&r&&!s?n=wx(t,i,n):!o&&!r&&s?i=wx(n,t,i):o?r?s||(t=lj(i,t),n=wx(i,t,n)):(t=lj(n,t),i=wx(n,t,i)):(n=lj(t,n),i=wx(n,t,i)),$.setColumn(e,0,t,e),$.setColumn(e,1,n,e),$.setColumn(e,2,i,e),e)}function aC(e,t){t=wce(t),this._orientedBoundingBox=new wn(e,t),this._boundingSphere=se.fromOrientedBoundingBox(this._orientedBoundingBox)}Object.defineProperties(aC.prototype,{boundingVolume:{get:function(){return this._orientedBoundingBox}},boundingSphere:{get:function(){return this._boundingSphere}}});aC.prototype.distanceToCamera=function(e){return Math.sqrt(this._orientedBoundingBox.distanceSquaredTo(e.camera.positionWC))};aC.prototype.intersectPlane=function(e){return this._orientedBoundingBox.intersectPlane(e)};aC.prototype.update=function(e,t){h.clone(e,this._orientedBoundingBox.center),t=wce(t),$.clone(t,this._orientedBoundingBox.halfAxes),se.fromOrientedBoundingBox(this._orientedBoundingBox,this._boundingSphere)};aC.prototype.createDebugVolume=function(e){let t=new Ah({minimum:new h(-1,-1,-1),maximum:new h(1,1,1)}),n=F.fromRotationTranslation(this.boundingVolume.halfAxes,this.boundingVolume.center),i=new vt({geometry:t,id:"outline",modelMatrix:n,attributes:{color:qt.fromColor(e)}});return new In({geometryInstances:i,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})};var Af=aC;function Xo(e,t,n,i){this._tileset=e,this._header=n;let o=l(n.contents),r=o&&n.contents.length>1||oi(n,"3DTILES_multiple_contents"),s=o&&!r?n.contents[0]:n.content;this._contentHeader=s,this.transform=l(n.transform)?F.unpack(n.transform):F.clone(F.IDENTITY);let a=l(i)?i.computedTransform:e.modelMatrix,c=F.multiply(a,this.transform,new F),u=l(i)?i._initialTransform:F.IDENTITY;this._initialTransform=F.multiply(u,this.transform,new F),this.computedTransform=c,this.metadata=IB(e,n),this._verticalExaggeration=1,this._verticalExaggerationRelativeHeight=0,this._boundingVolume=this.createBoundingVolume(n.boundingVolume,c),this._boundingVolume2D=void 0;let f;l(s)&&l(s.boundingVolume)&&(f=this.createBoundingVolume(s.boundingVolume,c)),this._contentBoundingVolume=f,this._contentBoundingVolume2D=void 0;let d;l(n.viewerRequestVolume)&&(d=this.createBoundingVolume(n.viewerRequestVolume,c)),this._viewerRequestVolume=d,this.geometricError=n.geometricError,this._geometricError=n.geometricError,l(this._geometricError)||(this._geometricError=l(i)?i._geometricError:e._geometricError,Xo._deprecationWarning("geometricErrorUndefined","Required property geometricError is undefined for this tile. Using parent's geometric error instead.")),this.updateGeometricErrorScale();let p;l(n.refine)?((n.refine==="replace"||n.refine==="add")&&Xo._deprecationWarning("lowercase-refine",`This tile uses a lowercase refine "${n.refine}". Instead use "${n.refine.toUpperCase()}".`),p=n.refine.toUpperCase()==="REPLACE"?jo.REPLACE:jo.ADD):l(i)?p=i.refine:p=jo.REPLACE,this.refine=p,this.children=[],this.parent=i;let g,m=!1,x,b,T;if(t=De.createIfNeeded(t),r)x=Yo.UNLOADED,b=t.clone();else if(l(s)){let v=s.uri;l(s.url)&&(Xo._deprecationWarning("contentUrl",'This tileset JSON uses the "content.url" property which has been deprecated. Use "content.uri" instead.'),v=s.url),v===""?(Xo._deprecationWarning("contentUriEmpty","content.uri property is an empty string, which creates a circular dependency, making this tileset invalid. Omit the content property instead"),g=new Uw(e,this),m=!0,x=Yo.READY):(x=Yo.UNLOADED,b=t.getDerivedResource({url:v}),T=yc.getServerKey(b.getUrlComponent()))}else g=new Uw(e,this),m=!0,x=Yo.READY;this._content=g,this._contentResource=b,this._contentState=x,this._expiredContent=void 0,this._serverKey=T,this.hasEmptyContent=m,this.hasTilesetContent=!1,this.hasImplicitContent=!1,this.hasImplicitContentMetadata=!1,this.hasMultipleContents=r,this.cacheNode=void 0;let A=n.expire,C,S;l(A)&&(C=A.duration,l(A.date)&&(S=K.fromIso8601(A.date))),this.expireDuration=C,this.expireDate=S,this.lastStyleTime=0,this._optimChildrenWithinParent=Td.NOT_COMPUTED,this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1,this.priorityDeferred=!1,this.implicitTileset=void 0,this.implicitCoordinates=void 0,this.implicitSubtree=void 0,this._distanceToCamera=0,this._centerZDepth=0,this._screenSpaceError=0,this._screenSpaceErrorProgressiveResolution=0,this._visibilityPlaneMask=0,this._visible=!1,this._inRequestVolume=!1,this._finalResolution=!0,this._depth=0,this._stackLength=0,this._selectionDepth=0,this._updatedVisibilityFrame=0,this._touchedFrame=0,this._visitedFrame=0,this._selectedFrame=0,this._wasSelectedLastFrame=!1,this._requestedFrame=0,this._ancestorWithContent=void 0,this._ancestorWithContentAvailable=void 0,this._refines=!1,this._shouldSelect=!1,this._isClipped=!0,this._isClippedByPolygon=!1,this._clippingPlanesState=0,this._clippingPolygonsState=0,this._debugBoundingVolume=void 0,this._debugContentBoundingVolume=void 0,this._debugViewerRequestVolume=void 0,this._debugColor=z.fromRandom({alpha:1}),this._debugColorizeTiles=!1,this._priority=0,this._priorityHolder=this,this._priorityProgressiveResolution=!1,this._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1,this._priorityReverseScreenSpaceError=0,this._foveatedFactor=0,this._wasMinPriorityChild=!1,this._loadTimestamp=new K,this._commandsLength=0,this._color=void 0,this._colorDirty=!1,this._request=void 0}Xo._deprecationWarning=_s;Object.defineProperties(Xo.prototype,{tileset:{get:function(){return this._tileset}},content:{get:function(){return this._content}},boundingVolume:{get:function(){return this._boundingVolume}},contentBoundingVolume:{get:function(){return y(this._contentBoundingVolume,this._boundingVolume)}},boundingSphere:{get:function(){return this._boundingVolume.boundingSphere}},isVisible:{get:function(){return this._visible&&this._inRequestVolume}},extras:{get:function(){return this._header.extras}},color:{get:function(){return l(this._color)||(this._color=new z),z.clone(this._color)},set:function(e){this._color=z.clone(e,this._color),this._colorDirty=!0}},hasRenderableContent:{get:function(){return!this.hasEmptyContent&&!this.hasTilesetContent&&!this.hasImplicitContent}},contentAvailable:{get:function(){return this.contentReady&&this.hasRenderableContent||l(this._expiredContent)&&!this.contentFailed}},contentReady:{get:function(){return this._contentState===Yo.READY}},contentUnloaded:{get:function(){return this._contentState===Yo.UNLOADED}},hasUnloadedRenderableContent:{get:function(){return this.hasRenderableContent&&this.contentUnloaded}},contentExpired:{get:function(){return this._contentState===Yo.EXPIRED}},contentFailed:{get:function(){return this._contentState===Yo.FAILED}},commandsLength:{get:function(){return this._commandsLength}}});var Wg=new h;function fqe(e,t){let{tileset:n,boundingSphere:i}=e,{radius:o,center:r}=i,{camera:s}=t,a=h.multiplyByScalar(s.directionWC,e._centerZDepth,Wg),c=h.add(s.positionWC,a,Wg),u=h.subtract(c,r,Wg);if(h.magnitude(u)>o){let S=h.normalize(u,Wg),v=h.multiplyByScalar(S,o,Wg),D=h.add(r,v,Wg),O=h.subtract(D,s.positionWC,Wg),R=h.normalize(O,Wg);e._foveatedFactor=1-Math.abs(h.dot(s.directionWC,R))}else e._foveatedFactor=0;let p=e.refine===jo.REPLACE,g=n.isSkippingLevelOfDetail;if(p&&!g||!n.foveatedScreenSpaceError||n.foveatedConeSize===1||e._priorityProgressiveResolution&&p&&g||n._pass===Fo.PRELOAD_FLIGHT||n._pass===Fo.PRELOAD)return!1;let m=1-Math.cos(s.frustum.fov*.5),x=n.foveatedConeSize*m;if(e._foveatedFactor<=x)return!1;let b=m-x,T=P.clamp((e._foveatedFactor-x)/b,0,1),A=n.foveatedInterpolationCallback(n.foveatedMinimumScreenSpaceErrorRelaxation,n.memoryAdjustedScreenSpaceError,T),C=e._screenSpaceError===0&&l(e.parent)?e.parent._screenSpaceError*.5:e._screenSpaceError;return n.memoryAdjustedScreenSpaceError-A<=C}var Rce=new K;Xo.prototype.getScreenSpaceError=function(e,t,n){let i=this._tileset,o=y(n,1),r=l(this.parent)?this.parent.geometricError:i._scaledGeometricError,s=t?r:this.geometricError;if(s===0)return 0;let{camera:a,context:c}=e,u=a.frustum,f=c.drawingBufferWidth,d=c.drawingBufferHeight*o,p;if(e.mode===ne.SCENE2D||u instanceof rn){let g=u.offCenterFrustum;l(g)&&(u=g);let m=Math.max(u.top-u.bottom,u.right-u.left)/Math.max(f,d);p=s/m}else{let g=Math.max(this._distanceToCamera,P.EPSILON7),m=u.sseDenominator;if(p=s*d/(g*m),i.dynamicScreenSpaceError){let x=i._dynamicScreenSpaceErrorComputedDensity,b=i.dynamicScreenSpaceErrorFactor,T=P.fog(g,x)*b;p-=T}}return p/=e.pixelRatio,p};function dqe(e,t){if(e.progressiveResolutionHeightFraction<=0||e.progressiveResolutionHeightFraction>.5)return!1;let n=e.memoryAdjustedScreenSpaceError,i=t._screenSpaceErrorProgressiveResolution>n;t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!1;let o=t.parent,r=t._screenSpaceErrorProgressiveResolution<=n,s=l(o)&&o._screenSpaceErrorProgressiveResolution>n;return r&&s&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf=!0,i=!0),i}function hqe(e,t){let n=t.parent,o=l(n)&&(!e.isSkippingLevelOfDetail||t._screenSpaceError===0||n.hasTilesetContent||n.hasImplicitContent)?n._screenSpaceError:t._screenSpaceError;return e.root._screenSpaceError-o}Xo.prototype.updateVisibility=function(e){let{parent:t,tileset:n}=this;if(this._updatedVisibilityFrame===n._updatedVisibilityFrame)return;let i=l(t)?t.computedTransform:n.modelMatrix,o=l(t)?t._visibilityPlaneMask:ys.MASK_INDETERMINATE;this.updateTransform(i,e),this._distanceToCamera=this.distanceToTile(e),this._centerZDepth=this.distanceToTileCenter(e),this._screenSpaceError=this.getScreenSpaceError(e,!1),this._screenSpaceErrorProgressiveResolution=this.getScreenSpaceError(e,!1,n.progressiveResolutionHeightFraction),this._visibilityPlaneMask=this.visibility(e,o),this._visible=this._visibilityPlaneMask!==ys.MASK_OUTSIDE,this._inRequestVolume=this.insideViewerRequestVolume(e),this._priorityReverseScreenSpaceError=hqe(n,this),this._priorityProgressiveResolution=dqe(n,this),this.priorityDeferred=fqe(this,e),this._updatedVisibilityFrame=n._updatedVisibilityFrame};Xo.prototype.updateExpiration=function(){if(l(this.expireDate)&&this.contentReady&&!this.hasEmptyContent&&!this.hasMultipleContents){let e=K.now(Rce);K.lessThan(this.expireDate,e)&&(this._contentState=Yo.EXPIRED,this._expiredContent=this._content)}};function mqe(e){if(!l(e.expireDuration))return;let t=K.now(Rce);K.addSeconds(t,e.expireDuration,t),l(e.expireDate)?K.lessThan(e.expireDate,t)&&K.clone(t,e.expireDate):e.expireDate=K.clone(t)}function pqe(e){return function(){return e._priority}}Xo.prototype.requestContent=function(){if(!this.hasEmptyContent)return this.hasMultipleContents?_qe(this):yqe(this)};function _qe(e){let t=e._content,n=e._tileset;if(!l(t)){let o=oi(e._header,"3DTILES_multiple_contents")?e._header.extensions["3DTILES_multiple_contents"]:e._header;t=new PB(n,e,e._contentResource.clone(),o),e._content=t}let i=t.requestInnerContents();if(l(i))return e._contentState=Yo.LOADING,i.then(o=>{if(!e.isDestroyed()&&l(o))return e._contentState=Yo.PROCESSING,t}).catch(o=>{if(!e.isDestroyed())throw e._contentState=Yo.FAILED,o})}async function gqe(e,t,n,i,o){let r=e._contentState;e._contentState=Yo.LOADING,++t.statistics.numberOfPendingRequests;let s;try{s=await o}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,++t.statistics.numberOfAttemptedRequests;return}throw e._contentState=Yo.FAILED,a}if(e.isDestroyed()){--t.statistics.numberOfPendingRequests;return}if(n.cancelled||n.state===Zn.CANCELLED){e._contentState=r,--t.statistics.numberOfPendingRequests,++t.statistics.numberOfAttemptedRequests;return}try{let a=await xqe(e,s);return--t.statistics.numberOfPendingRequests,e.isDestroyed()?void 0:(i&&(e.expireDate=void 0),e._content=a,e._contentState=Yo.PROCESSING,a)}catch(a){if(--t.statistics.numberOfPendingRequests,e.isDestroyed())return;throw e._contentState=Yo.FAILED,a}}function yqe(e){let t=e._contentResource.clone(),n=e.contentExpired;n&&t.setQueryParameters({expired:e.expireDate.toString()});let i=new tr({throttle:!0,throttleByServer:!0,type:ps.TILES3D,priorityFunction:pqe(e),serverKey:e._serverKey});e._request=i,t.request=i;let o=e._tileset,r=t.fetchArrayBuffer();if(!l(r)){++o.statistics.numberOfAttemptedRequests;return}return gqe(e,o,i,n,r)}async function xqe(e,t){let n=kp(t),i=e._tileset;i._disableSkipLevelOfDetail=i._disableSkipLevelOfDetail||n.contentType===Bs.GEOMETRY||n.contentType===Bs.VECTOR,(n.contentType===Bs.IMPLICIT_SUBTREE||n.contentType===Bs.IMPLICIT_SUBTREE_JSON)&&(e.hasImplicitContent=!0),n.contentType===Bs.EXTERNAL_TILESET&&(e.hasTilesetContent=!0);let o,r=KA[n.contentType];if(e.isDestroyed())return;l(n.binaryPayload)?o=await Promise.resolve(r(i,e,e._contentResource,n.binaryPayload.buffer,0)):o=await Promise.resolve(r(i,e,e._contentResource,n.jsonPayload));let s=e._contentHeader;if(e.hasImplicitContentMetadata){let c=e.implicitSubtree,u=e.implicitCoordinates;o.metadata=c.getContentMetadataView(u,0)}else e.hasImplicitContent||(o.metadata=ZA(i,s));let a=$A(i,s);return l(a)&&(o.group=new nA({metadata:a})),o}Xo.prototype.cancelRequests=function(){this.hasMultipleContents?this._content.cancelRequests():this._request.cancel()};Xo.prototype.unloadContent=function(){this.hasRenderableContent&&(this._content=this._content&&this._content.destroy(),this._contentState=Yo.UNLOADED,this.lastStyleTime=0,this.clippingPlanesDirty=this._clippingPlanesState===0,this._clippingPlanesState=0,this.clippingPolygonsDirty=this._clippingPolygonsState===0,this._clippingPolygonsState=0,this._debugColorizeTiles=!1,this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy())};var Oce=new se;function fj(e,t){if(t.mode!==ne.SCENE3D&&!l(e._boundingVolume2D)){let n=e._boundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Oce);e._boundingVolume2D=new Gg(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._boundingVolume2D:e._boundingVolume}function bqe(e,t){if(t.mode!==ne.SCENE3D&&!l(e._contentBoundingVolume2D)){let n=e._contentBoundingVolume.boundingSphere,i=se.projectTo2D(n,t.mapProjection,Oce);e._contentBoundingVolume2D=new Gg(i.center,i.radius)}return t.mode!==ne.SCENE3D?e._contentBoundingVolume2D:e._contentBoundingVolume}Xo.prototype.visibility=function(e,t){let n=e.cullingVolume,i=fj(this,e),o=this._tileset,r=o.clippingPlanes;if(l(r)&&r.enabled){let a=r.computeIntersectionWithBoundingVolume(i,o.clippingPlanesOriginMatrix);if(this._isClipped=a!==Yt.INSIDE,a===Yt.OUTSIDE)return ys.MASK_OUTSIDE}let s=o.clippingPolygons;if(l(s)&&s.enabled){let a=s.computeIntersectionWithBoundingVolume(i);this._isClippedByPolygon=a!==Yt.OUTSIDE}return n.computeVisibilityWithPlaneMask(i,t)};Xo.prototype.contentVisibility=function(e){if(!l(this._contentBoundingVolume))return Yt.INSIDE;if(this._visibilityPlaneMask===ys.MASK_INSIDE)return Yt.INSIDE;let t=e.cullingVolume,n=bqe(this,e),i=this._tileset,o=i.clippingPlanes;if(l(o)&&o.enabled){let s=o.computeIntersectionWithBoundingVolume(n,i.clippingPlanesOriginMatrix);if(this._isClipped=s!==Yt.INSIDE,s===Yt.OUTSIDE)return Yt.OUTSIDE}let r=i.clippingPolygons;if(l(r)&&r.enabled){let s=r.computeIntersectionWithBoundingVolume(n);if(this._isClippedByPolygon=s!==Yt.OUTSIDE,s===Yt.INSIDE)return Yt.OUTSIDE}return t.computeVisibility(n)};Xo.prototype.distanceToTile=function(e){return fj(this,e).distanceToCamera(e)};var Tqe=new h;Xo.prototype.distanceToTileCenter=function(e){let n=fj(this,e).boundingVolume,i=h.subtract(n.center,e.camera.positionWC,Tqe);return h.dot(e.camera.directionWC,i)};Xo.prototype.insideViewerRequestVolume=function(e){let t=this._viewerRequestVolume;return!l(t)||t.distanceToCamera(e)===0};var Mce=new $,Lce=new h,Aqe=new $,dj=new h,Nce=new re,Fce=new wn,uj=new F;function Cqe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],dj),o=$.fromArray(e,3,Aqe);i=F.multiplyByPoint(t,i,i);let r=F.getMatrix3(t,Mce);return o=$.multiply(r,o,o),l(n)?(n.update(i,o),n):new Af(i,o)}function Eqe(e,t,n,i){let o=re.unpack(e,0,Nce),r=e[4],s=e[5],a=wn.fromRectangle(o,r,s,ee.WGS84,Fce),c=a.center,u=a.halfAxes;t=F.multiplyTransformation(t,F.inverseTransformation(n,uj),uj),c=F.multiplyByPoint(t,c,c);let f=F.getMatrix3(t,Mce);return u=$.multiply(f,u,u),l(i)&&i instanceof Af?(i.update(c,u),i):new Af(c,u)}function Sqe(e,t,n,i){if(!F.equalsEpsilon(t,n,P.EPSILON8))return Eqe(e,t,n,i);let o=re.unpack(e,0,Nce);return l(i)?(i.rectangle=re.clone(o,i.rectangle),i.minimumHeight=e[4],i.maximumHeight=e[5],i.computeBoundingVolumes(ee.WGS84),i):new Ad({rectangle:o,minimumHeight:e[4],maximumHeight:e[5]})}function vqe(e,t,n){let i=h.fromElements(e[0],e[1],e[2],dj),o=e[3];i=F.multiplyByPoint(t,i,i);let r=F.getScale(t,Lce),s=h.maximumComponent(r);return o*=s,l(n)?(n.update(i,o),n):new Gg(i,o)}Xo.prototype.createBoundingVolume=function(e,t,n){let i=this.metadata,o;if(l(i)&&(o=mA.parseBoundingVolumeSemantic("TILE",i)),l(o)&&(e=o),!l(e))throw new ce("boundingVolume must be defined");if(oi(e,"3DTILES_bounding_volume_S2"))return new LB(e.extensions["3DTILES_bounding_volume_S2"]);let{box:r,region:s,sphere:a}=e;if(l(r)){let c=Cqe(r,t,n);return this._verticalExaggeration!==1&&Dce(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c}if(l(s)){let c=Sqe(s,t,this._initialTransform,n);return this._verticalExaggeration===1||(c instanceof Af?Dce(c,this._verticalExaggeration,this._verticalExaggerationRelativeHeight):(c.minimumHeight=Ir.getHeight(c.minimumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.maximumHeight=Ir.getHeight(c.maximumHeight,this._verticalExaggeration,this._verticalExaggerationRelativeHeight),c.computeBoundingVolumes(ee.WGS84))),c}if(l(a)){let c=vqe(a,t,n);if(this._verticalExaggeration!==1){let u=Ir.getPosition(c.center,ee.WGS84,this._verticalExaggeration,this._verticalExaggerationRelativeHeight,dj),f=c.radius*this._verticalExaggeration;c.update(u,f)}return c}throw new ce("boundingVolume must contain a sphere, region, or box")};var wqe=h.unpackArray(new Array(8*3).fill(0));function Dce(e,t,n){let i=e.boundingVolume.computeCorners(wqe).map(r=>Ir.getPosition(r,ee.WGS84,t,n,r)),o=wn.fromPoints(i,Fce);e.update(o.center,o.halfAxes)}Xo.prototype.updateTransform=function(e,t){e=y(e,F.IDENTITY);let n=F.multiplyTransformation(e,this.transform,uj),i=!F.equals(n,this.computedTransform),o=l(t)&&(this._verticalExaggeration!==t.verticalExaggeration||this._verticalExaggerationRelativeHeight!==t.verticalExaggerationRelativeHeight);if(!i&&!o)return;i&&F.clone(n,this.computedTransform),o&&(this._verticalExaggeration=t.verticalExaggeration,this._verticalExaggerationRelativeHeight=t.verticalExaggerationRelativeHeight);let r=this._header,s=this._contentHeader;this._boundingVolume=this.createBoundingVolume(r.boundingVolume,this.computedTransform,this._boundingVolume),l(this._contentBoundingVolume)&&(this._contentBoundingVolume=this.createBoundingVolume(s.boundingVolume,this.computedTransform,this._contentBoundingVolume)),l(this._viewerRequestVolume)&&(this._viewerRequestVolume=this.createBoundingVolume(r.viewerRequestVolume,this.computedTransform,this._viewerRequestVolume)),this.updateGeometricErrorScale(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy()};Xo.prototype.updateGeometricErrorScale=function(){let e=F.getScale(this.computedTransform,Lce),t=h.maximumComponent(e);if(this.geometricError=this._geometricError*t,!l(this.parent)){let n=this._tileset;n._scaledGeometricError=n._geometricError*t}};function Dqe(e,t,n,i){if(!i.isRender)return;let o=l(e._contentHeader)&&l(e._contentHeader.boundingVolume),r=t.debugShowBoundingVolume||t.debugShowContentBoundingVolume&&!o;if(r){let c;e._finalResolution?e.hasRenderableContent?c=z.WHITE:c=z.DARKGRAY:c=z.YELLOW,l(e._debugBoundingVolume)||(e._debugBoundingVolume=e._boundingVolume.createDebugVolume(c)),e._debugBoundingVolume.update(n);let u=e._debugBoundingVolume.getGeometryInstanceAttributes("outline");u.color=qt.toValue(c,u.color)}else!r&&l(e._debugBoundingVolume)&&(e._debugBoundingVolume=e._debugBoundingVolume.destroy());t.debugShowContentBoundingVolume&&o?(l(e._debugContentBoundingVolume)||(e._debugContentBoundingVolume=e._contentBoundingVolume.createDebugVolume(z.BLUE)),e._debugContentBoundingVolume.update(n)):!t.debugShowContentBoundingVolume&&l(e._debugContentBoundingVolume)&&(e._debugContentBoundingVolume=e._debugContentBoundingVolume.destroy()),t.debugShowViewerRequestVolume&&l(e._viewerRequestVolume)?(l(e._debugViewerRequestVolume)||(e._debugViewerRequestVolume=e._viewerRequestVolume.createDebugVolume(z.YELLOW)),e._debugViewerRequestVolume.update(n)):!t.debugShowViewerRequestVolume&&l(e._debugViewerRequestVolume)&&(e._debugViewerRequestVolume=e._debugViewerRequestVolume.destroy());let s=t.debugColorizeTiles&&!e._debugColorizeTiles||l(t._heatmap.tilePropertyName),a=!t.debugColorizeTiles&&e._debugColorizeTiles;s?(t._heatmap.colorize(e,n),e._debugColorizeTiles=!0,e.color=e._debugColor):a&&(e._debugColorizeTiles=!1,e.color=z.WHITE),e._colorDirty&&(e._colorDirty=!1,e._content.applyDebugSettings(!0,e._color)),a&&t.makeStyleDirty()}function Iqe(e,t,n){let i=e._expiredContent;if(!e.hasMultipleContents&&l(i)){if(!e.contentReady){try{i.update(t,n)}catch{}return}e._expiredContent.destroy(),e._expiredContent=void 0}if(l(e.content))try{e.content.update(t,n)}catch(o){throw e._contentState=Yo.FAILED,o}}function Pqe(e,t){let n=t.clippingPlanes,i=0;l(n)&&e._isClipped&&n.enabled&&(i=n.clippingPlanesState),i!==e._clippingPlanesState&&(e._clippingPlanesState=i,e.clippingPlanesDirty=!0)}function Rqe(e,t){let n=t.clippingPolygons,i=0;l(n)&&e._isClippedByPolygon&&n.enabled&&(i=n.clippingPolygonsState),i!==e._clippingPolygonsState&&(e._clippingPolygonsState=i,e.clippingPolygonsDirty=!0)}Xo.prototype.update=function(e,t,n){let{commandList:i}=t,o=i.length;Pqe(this,e),Rqe(this,e),Dqe(this,e,t,n),Iqe(this,e,t);let r=i.length;this._commandsLength=r-o;for(let s=o;s<r;++s){let a=i[s],c=a.pass===ve.TRANSLUCENT;a.depthForTranslucentClassification=c}this.clippingPlanesDirty=!1,this.clippingPolygonsDirty=!1};var Ice=[];Xo.prototype.process=function(e,t){!this.contentExpired&&!this.contentReady&&this._content.ready&&(mqe(this),this._selectedFrame=0,this.lastStyleTime=0,K.now(this._loadTimestamp),this._contentState=Yo.READY,!this.hasTilesetContent&&!this.hasImplicitContent&&(e._statistics.incrementLoadCounts(this.content),++e._statistics.numberOfTilesWithContentReady,++e._statistics.numberOfLoadedTilesTotal,e._cache.add(this)));let n=t.commandList;t.commandList=Ice;try{this._content.update(e,t)}catch(i){throw this._contentState=Yo.FAILED,i}Ice.length=0,t.commandList=n};function Pce(e,t,n){let i=e*Math.pow(10,t);return parseInt(i)*Math.pow(10,n)}function BB(e,t,n){return Math.max(P.normalize(e,t,n)-P.EPSILON7,0)}Xo.prototype.updatePriority=function(){let e=this.tileset,t=e.preferLeaves,n=e._minimumPriority,i=e._maximumPriority,o=4,r=1,s=0,a=o,c=s+a,u=o,f=c+u,d=r,p=Math.pow(10,f),g=f+d,m=r,x=Math.pow(10,g),b=g+m,T=Math.pow(10,b),A=BB(this._depth,n.depth,i.depth);A=t?1-A:A;let S=!e.isSkippingLevelOfDetail&&this.refine===jo.REPLACE?BB(this._priorityHolder._distanceToCamera,n.distance,i.distance):BB(this._priorityReverseScreenSpaceError,n.reverseScreenSpaceError,i.reverseScreenSpaceError),v=Pce(S,a,s),D=this._priorityProgressiveResolution?0:p,O=BB(this._priorityHolder._foveatedFactor,n.foveatedFactor,i.foveatedFactor),R=Pce(O,u,c),M=this.priorityDeferred?x:0,L=e._pass===Fo.PRELOAD_FLIGHT?0:T;this._priority=A+v+D+R+M+L};Xo.prototype.isDestroyed=function(){return!1};Xo.prototype.destroy=function(){return this._content=this._content&&this._content.destroy(),this._expiredContent=this._expiredContent&&!this._expiredContent.isDestroyed()&&this._expiredContent.destroy(),this._debugBoundingVolume=this._debugBoundingVolume&&this._debugBoundingVolume.destroy(),this._debugContentBoundingVolume=this._debugContentBoundingVolume&&this._debugContentBoundingVolume.destroy(),this._debugViewerRequestVolume=this._debugViewerRequestVolume&&this._debugViewerRequestVolume.destroy(),ue(this)};var Ed=Xo;function Up(e){e=y(e,y.EMPTY_OBJECT);let t=e.id,n=e.group,i=e.class,o=l(n.properties)?n.properties:{};this._class=i,this._properties=o,this._id=t,this._extras=n.extras,this._extensions=n.extensions}Object.defineProperties(Up.prototype,{class:{get:function(){return this._class}},id:{get:function(){return this._id}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});Up.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};Up.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};Up.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};Up.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};Up.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};Up.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};Up.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var Ww=Up;function zp(e){e=y(e,y.EMPTY_OBJECT);let t=e.tileset,n=e.class,i=l(t.properties)?t.properties:{};this._class=n,this._properties=i,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(zp.prototype,{class:{get:function(){return this._class}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});zp.prototype.hasProperty=function(e){return Fn.hasProperty(e,this._properties,this._class)};zp.prototype.hasPropertyBySemantic=function(e){return Fn.hasPropertyBySemantic(e,this._properties,this._class)};zp.prototype.getPropertyIds=function(e){return Fn.getPropertyIds(this._properties,this._class,e)};zp.prototype.getProperty=function(e){return Fn.getProperty(e,this._properties,this._class)};zp.prototype.setProperty=function(e,t){return Fn.setProperty(e,t,this._properties,this._class)};zp.prototype.getPropertyBySemantic=function(e){return Fn.getPropertyBySemantic(e,this._properties,this._class)};zp.prototype.setPropertyBySemantic=function(e,t){return Fn.setPropertyBySemantic(e,t,this._properties,this._class)};var kB=zp;function Bce(e){e=y(e,y.EMPTY_OBJECT);let t=e.metadataJson,n=e.schema,i=y(t.metadata,t.tileset),o;l(i)&&(o=new kB({tileset:i,class:n.classes[i.class]}));let r=[],s=[],a=t.groups;if(Array.isArray(a)){let c=a.length;for(let u=0;u<c;u++){let f=a[u];s.push(new Ww({group:f,class:n.classes[f.class]}))}}else if(l(a)){r=Object.keys(a).sort();let c=r.length;for(let u=0;u<c;u++){let f=r[u];if(a.hasOwnProperty(f)){let d=a[f];s.push(new Ww({id:f,group:a[f],class:n.classes[d.class]}))}}}this._schema=n,this._groups=s,this._groupIds=r,this._tileset=o,this._statistics=t.statistics,this._extras=t.extras,this._extensions=t.extensions}Object.defineProperties(Bce.prototype,{schema:{get:function(){return this._schema}},groups:{get:function(){return this._groups}},groupIds:{get:function(){return this._groupIds}},tileset:{get:function(){return this._tileset}},statistics:{get:function(){return this._statistics}},extras:{get:function(){return this._extras}},extensions:{get:function(){return this._extensions}}});var cC=Bce;var kce={},Oqe=new h;kce.checkChildrenWithinParent=function(e){let t=e.children,n=t.length,i=e.boundingVolume;if(i instanceof Af||i instanceof Ad){let o=i._orientedBoundingBox;e._optimChildrenWithinParent=Td.USE_OPTIMIZATION;for(let r=0;r<n;++r){let a=t[r].boundingVolume;if(!(a instanceof Af||a instanceof Ad)){e._optimChildrenWithinParent=Td.SKIP_OPTIMIZATION;break}let c=a._orientedBoundingBox,u=h.subtract(c.center,o.center,Oqe),f=h.magnitude(u);h.divideByScalar(u,f,u);let d=Math.abs(o.halfAxes[0]*u.x)+Math.abs(o.halfAxes[1]*u.y)+Math.abs(o.halfAxes[2]*u.z)+Math.abs(o.halfAxes[3]*u.x)+Math.abs(o.halfAxes[4]*u.y)+Math.abs(o.halfAxes[5]*u.z)+Math.abs(o.halfAxes[6]*u.x)+Math.abs(o.halfAxes[7]*u.y)+Math.abs(o.halfAxes[8]*u.z),p=Math.abs(c.halfAxes[0]*u.x)+Math.abs(c.halfAxes[1]*u.y)+Math.abs(c.halfAxes[2]*u.z)+Math.abs(c.halfAxes[3]*u.x)+Math.abs(c.halfAxes[4]*u.y)+Math.abs(c.halfAxes[5]*u.z)+Math.abs(c.halfAxes[6]*u.x)+Math.abs(c.halfAxes[7]*u.y)+Math.abs(c.halfAxes[8]*u.z);if(d<=p+f){e._optimChildrenWithinParent=Td.SKIP_OPTIMIZATION;break}}}return e._optimChildrenWithinParent===Td.USE_OPTIMIZATION};var VB=kce;function jw(){this.head=void 0,this.tail=void 0,this._length=0}Object.defineProperties(jw.prototype,{length:{get:function(){return this._length}}});function Mqe(e,t,n){this.item=e,this.previous=t,this.next=n}jw.prototype.add=function(e){let t=new Mqe(e,this.tail,void 0);return l(this.tail)?(this.tail.next=t,this.tail=t):(this.head=t,this.tail=t),++this._length,t};function Vce(e,t){l(t.previous)&&l(t.next)?(t.previous.next=t.next,t.next.previous=t.previous):l(t.previous)?(t.previous.next=void 0,e.tail=t.previous):l(t.next)?(t.next.previous=void 0,e.head=t.next):(e.head=void 0,e.tail=void 0),t.next=void 0,t.previous=void 0}jw.prototype.remove=function(e){l(e)&&(Vce(this,e),--this._length)};jw.prototype.splice=function(e,t){if(e===t)return;Vce(this,t);let n=e.next;e.next=t,this.tail===e?this.tail=t:n.previous=t,t.next=n,t.previous=e};var UB=jw;function Dx(){this._list=new UB,this._sentinel=this._list.add(),this._trimTiles=!1}Dx.prototype.reset=function(){this._list.splice(this._list.tail,this._sentinel)};Dx.prototype.touch=function(e){let t=e.cacheNode;l(t)&&this._list.splice(this._sentinel,t)};Dx.prototype.add=function(e){l(e.cacheNode)||(e.cacheNode=this._list.add(e))};Dx.prototype.unloadTile=function(e,t,n){let i=t.cacheNode;l(i)&&(this._list.remove(i),t.cacheNode=void 0,n(e,t))};Dx.prototype.unloadTiles=function(e,t){let n=this._trimTiles;this._trimTiles=!1;let i=this._list,o=this._sentinel,r=i.head;for(;r!==o&&(e.totalMemoryUsageInBytes>e.cacheBytes||n);){let s=r.item;r=r.next,this.unloadTile(e,s,t)}};Dx.prototype.trim=function(){this._trimTiles=!0};var zB=Dx;function HB(e){this.tilePropertyName=e,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE,this._previousMinimum=Number.MAX_VALUE,this._previousMaximum=-Number.MAX_VALUE,this._referenceMinimum={},this._referenceMaximum={}}function mj(e,t){let n;return t==="_loadTimestamp"?n=K.toDate(e).getTime():n=e,n}HB.prototype.setReferenceMinimumMaximum=function(e,t,n){this._referenceMinimum[n]=mj(e,n),this._referenceMaximum[n]=mj(t,n)};function Lqe(e,t){let n=e.tilePropertyName;if(l(n)){let i=mj(t[n],n);return l(i)?(e._maximum=Math.max(i,e._maximum),e._minimum=Math.min(i,e._minimum),i):(e.tilePropertyName=void 0,i)}}var hj=[new z(.1,.1,.1,1),new z(.153,.278,.878,1),new z(.827,.231,.49,1),new z(.827,.188,.22,1),new z(1,.592,.259,1),new z(1,.843,0,1)];HB.prototype.colorize=function(e,t){let n=this.tilePropertyName;if(!l(n)||!e.contentAvailable||e._selectedFrame!==t.frameNumber)return;let i=Lqe(this,e),o=this._previousMinimum,r=this._previousMaximum;if(o===Number.MAX_VALUE||r===-Number.MAX_VALUE)return;let s=r-o+P.EPSILON7,c=P.clamp(i-o,0,s)/s,u=hj.length-1,f=c*u,d=Math.floor(f),p=Math.ceil(f),g=f-d,m=hj[d],x=hj[p],b=z.clone(z.WHITE);b.red=P.lerp(m.red,x.red,g),b.green=P.lerp(m.green,x.green,g),b.blue=P.lerp(m.blue,x.blue,g),e._debugColor=b};HB.prototype.resetMinimumMaximum=function(){let e=this.tilePropertyName;if(l(e)){let t=this._referenceMinimum[e],n=this._referenceMaximum[e],i=l(t)&&l(n);this._previousMinimum=i?t:this._minimum,this._previousMaximum=i?n:this._maximum,this._minimum=Number.MAX_VALUE,this._maximum=-Number.MAX_VALUE}};var GB=HB;function lC(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfPendingRequests=0,this.numberOfTilesProcessing=0,this.numberOfTilesWithContentReady=0,this.numberOfTilesTotal=0,this.numberOfLoadedTilesTotal=0,this.numberOfFeaturesSelected=0,this.numberOfFeaturesLoaded=0,this.numberOfPointsSelected=0,this.numberOfPointsLoaded=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0,this.geometryByteLength=0,this.texturesByteLength=0,this.batchTableByteLength=0}lC.prototype.clear=function(){this.selected=0,this.visited=0,this.numberOfCommands=0,this.numberOfAttemptedRequests=0,this.numberOfFeaturesSelected=0,this.numberOfPointsSelected=0,this.numberOfTrianglesSelected=0,this.numberOfTilesStyled=0,this.numberOfFeaturesStyled=0,this.numberOfTilesCulledWithChildrenUnion=0};function WB(e,t,n,i){let o=t.innerContents,r=t.pointsLength,s=t.trianglesLength,a=t.featuresLength,c=t.geometryByteLength,u=t.texturesByteLength,f=t.batchTableByteLength;if(i?(e.numberOfFeaturesLoaded+=n?-a:a,e.numberOfPointsLoaded+=n?-r:r,e.geometryByteLength+=n?-c:c,e.texturesByteLength+=n?-u:u,e.batchTableByteLength+=n?-f:f):(e.numberOfFeaturesSelected+=n?-a:a,e.numberOfPointsSelected+=n?-r:r,e.numberOfTrianglesSelected+=n?-s:s),l(o)){let d=o.length;for(let p=0;p<d;++p)WB(e,o[p],n,i)}}lC.prototype.incrementSelectionCounts=function(e){WB(this,e,!1,!1)};lC.prototype.incrementLoadCounts=function(e){WB(this,e,!1,!0)};lC.prototype.decrementLoadCounts=function(e){WB(this,e,!0,!0)};lC.clone=function(e,t){t.selected=e.selected,t.visited=e.visited,t.numberOfCommands=e.numberOfCommands,t.selected=e.selected,t.numberOfAttemptedRequests=e.numberOfAttemptedRequests,t.numberOfPendingRequests=e.numberOfPendingRequests,t.numberOfTilesProcessing=e.numberOfTilesProcessing,t.numberOfTilesWithContentReady=e.numberOfTilesWithContentReady,t.numberOfTilesTotal=e.numberOfTilesTotal,t.numberOfFeaturesSelected=e.numberOfFeaturesSelected,t.numberOfFeaturesLoaded=e.numberOfFeaturesLoaded,t.numberOfPointsSelected=e.numberOfPointsSelected,t.numberOfPointsLoaded=e.numberOfPointsLoaded,t.numberOfTrianglesSelected=e.numberOfTrianglesSelected,t.numberOfTilesStyled=e.numberOfTilesStyled,t.numberOfFeaturesStyled=e.numberOfFeaturesStyled,t.numberOfTilesCulledWithChildrenUnion=e.numberOfTilesCulledWithChildrenUnion,t.geometryByteLength=e.geometryByteLength,t.texturesByteLength=e.texturesByteLength,t.batchTableByteLength=e.batchTableByteLength};var jg=lC;function qw(){this._style=void 0,this._styleDirty=!1,this._lastStyleTime=0}Object.defineProperties(qw.prototype,{style:{get:function(){return this._style},set:function(e){e!==this._style&&(this._style=e,this._styleDirty=!0)}}});qw.prototype.makeDirty=function(){this._styleDirty=!0};qw.prototype.resetDirty=function(){this._styleDirty=!1};qw.prototype.applyStyle=function(e){if(!l(e.root)||l(this._style)&&!this._style._ready)return;let t=this._styleDirty;t&&++this._lastStyleTime;let n=this._lastStyleTime,i=e._statistics,o=t?e._selectedTiles:e._selectedTilesToStyle,r=o.length;for(let s=0;s<r;++s){let a=o[s];if(a.lastStyleTime!==n){let c=a.content;a.lastStyleTime=n,c.applyStyle(this._style),i.numberOfFeaturesStyled+=c.featuresLength,++i.numberOfTilesStyled}}};var jB=qw;function Nqe(e,t,n){let i=oi(t,"3DTILES_implicit_tiling")?t.extensions["3DTILES_implicit_tiling"]:t.implicitTiling;this.baseResource=e,this.geometricError=t.geometricError,this.metadataSchema=n;let o=t.boundingVolume;if(!l(o.box)&&!l(o.region)&&!oi(o,"3DTILES_bounding_volume_S2")&&!oi(o,"3DTILES_bounding_volume_cylinder"))throw new ce("Only box, region, 3DTILES_bounding_volume_S2, and 3DTILES_bounding_volume_cylinder are supported for implicit tiling");this.boundingVolume=o,this.refine=t.refine,this.subtreeUriTemplate=new De({url:i.subtrees.uri}),this.contentUriTemplates=[],this.contentHeaders=[];let r=Fqe(t);for(let s=0;s<r.length;s++){let a=r[s];this.contentHeaders.push(Ge(a,!0));let c=new De({url:a.uri});this.contentUriTemplates.push(c)}this.contentCount=this.contentHeaders.length,this.tileHeader=Bqe(t),this.subdivisionScheme=is[i.subdivisionScheme],this.branchingFactor=is.getBranchingFactor(this.subdivisionScheme),this.subtreeLevels=i.subtreeLevels,l(i.availableLevels)?this.availableLevels=i.availableLevels:this.availableLevels=i.maximumLevel+1}function Fqe(e){if(oi(e,"3DTILES_multiple_contents")){let t=e.extensions["3DTILES_multiple_contents"];return l(t.contents)?t.contents:t.content}return l(e.contents)?e.contents:l(e.content)?[e.content]:[]}function Bqe(e){let t=Ge(e,!0);return l(t.extensions)&&(delete t.extensions["3DTILES_implicit_tiling"],delete t.extensions["3DTILES_multiple_contents"],Object.keys(t.extensions).length===0&&delete t.extensions),delete t.implicitTiling,delete t.contents,delete t.content,t}var uC=Nqe;var Yw={};function Uce(e){return e=(e^e<<8)&16711935,e=(e^e<<4)&252645135,e=(e^e<<2)&858993459,e=(e^e<<1)&1431655765,e}function pj(e){return e=(e^e<<16)&50331903,e=(e^e<<8)&50393103,e=(e^e<<4)&51130563,e=(e^e<<2)&153391689,e}function zce(e){return e&=1431655765,e=(e^e>>1)&858993459,e=(e^e>>2)&252645135,e=(e^e>>4)&16711935,e=(e^e>>8)&65535,e}function _j(e){return e&=153391689,e=(e^e>>2)&51130563,e=(e^e>>4)&50393103,e=(e^e>>8)&4278190335,e=(e^e>>16)&1023,e}Yw.encode2D=function(e,t){return(Uce(e)|Uce(t)<<1)>>>0};Yw.decode2D=function(e,t){return l(t)||(t=new Array(2)),t[0]=zce(e),t[1]=zce(e>>1),t};Yw.encode3D=function(e,t,n){return pj(e)|pj(t)<<1|pj(n)<<2};Yw.decode3D=function(e,t){return l(t)||(t=new Array(3)),t[0]=_j(e),t[1]=_j(e>>1),t[2]=_j(e>>2),t};var Ix=Yw;function Bo(e){this.subdivisionScheme=e.subdivisionScheme,this.subtreeLevels=e.subtreeLevels,this.level=e.level,this.x=e.x,this.y=e.y,this.z=void 0,e.subdivisionScheme===is.OCTREE&&(this.z=e.z)}Object.defineProperties(Bo.prototype,{childIndex:{get:function(){let e=0;return e|=this.x&1,e|=(this.y&1)<<1,this.subdivisionScheme===is.OCTREE&&(e|=(this.z&1)<<2),e}},mortonIndex:{get:function(){return this.subdivisionScheme===is.OCTREE?Ix.encode3D(this.x,this.y,this.z):Ix.encode2D(this.x,this.y)}},tileIndex:{get:function(){let e=this.subdivisionScheme===is.OCTREE?((1<<3*this.level)-1)/7:((1<<2*this.level)-1)/3,t=this.mortonIndex;return e+t}}});Bo.prototype.getDescendantCoordinates=function(e){let t=this.level+e.level,n=(this.x<<e.level)+e.x,i=(this.y<<e.level)+e.y;if(this.subdivisionScheme===is.OCTREE){let o=(this.z<<e.level)+e.z;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Bo.prototype.getAncestorCoordinates=function(e){let t=1<<e,n=this.level-e,i=Math.floor(this.x/t),o=Math.floor(this.y/t);if(this.subdivisionScheme===is.OCTREE){let r=Math.floor(this.z/t);return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o,z:r})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:n,x:i,y:o})};Bo.prototype.getOffsetCoordinates=function(e){let t=e.level-this.level,n=1<<t,i=e.x%n,o=e.y%n;if(this.subdivisionScheme===is.OCTREE){let r=e.z%n;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o,z:r})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:i,y:o})};Bo.prototype.getChildCoordinates=function(e){let t=this.level+1,n=2*this.x+e%2,i=2*this.y+Math.floor(e/2)%2;if(this.subdivisionScheme===is.OCTREE){let o=2*this.z+Math.floor(e/4)%2;return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i,z:o})}return new Bo({subdivisionScheme:this.subdivisionScheme,subtreeLevels:this.subtreeLevels,level:t,x:n,y:i})};Bo.prototype.getSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels)};Bo.prototype.getParentSubtreeCoordinates=function(){return this.getAncestorCoordinates(this.level%this.subtreeLevels+this.subtreeLevels)};Bo.prototype.isAncestor=function(e){let t=e.level-this.level;if(t<=0)return!1;let n=e.x>>t,i=e.y>>t,o=this.x===n,r=this.y===i;if(this.subdivisionScheme===is.OCTREE){let s=e.z>>t,a=this.z===s;return o&&r&&a}return o&&r};Bo.prototype.isEqual=function(e){return this.subdivisionScheme===e.subdivisionScheme&&this.subtreeLevels===e.subtreeLevels&&this.level===e.level&&this.x===e.x&&this.y===e.y&&(this.subdivisionScheme===is.OCTREE?this.z===e.z:!0)};Bo.prototype.isImplicitTilesetRoot=function(){return this.level===0};Bo.prototype.isSubtreeRoot=function(){return this.level%this.subtreeLevels===0};Bo.prototype.isBottomOfSubtree=function(){return this.level%this.subtreeLevels===this.subtreeLevels-1};Bo.prototype.getTemplateValues=function(){let e={level:this.level,x:this.x,y:this.y};return this.subdivisionScheme===is.OCTREE&&(e.z=this.z),e};var Hce=[0,0,0];Bo.fromMortonIndex=function(e,t,n,i){let o;return e===is.OCTREE?(o=Ix.decode3D(i,Hce),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1],z:o[2]})):(o=Ix.decode2D(i,Hce),new Bo({subdivisionScheme:e,subtreeLevels:t,level:n,x:o[0],y:o[1]}))};Bo.fromTileIndex=function(e,t,n){let i,o,r;return e===is.OCTREE?(i=Math.floor(P.log2(7*n+1)/3),o=((1<<3*i)-1)/7,r=n-o):(i=Math.floor(P.log2(3*n+1)/2),o=((1<<2*i)-1)/3,r=n-o),Bo.fromMortonIndex(e,t,i,r)};var fC=Bo;function Hp(){}Hp.selectTiles=function(e,t){he.throwInstantiationError()};Hp.sortChildrenByDistanceToCamera=function(e,t){return t._distanceToCamera===0&&e._distanceToCamera===0?t._centerZDepth-e._centerZDepth:t._distanceToCamera-e._distanceToCamera};Hp.canTraverse=function(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:e._screenSpaceError>e.tileset.memoryAdjustedScreenSpaceError};Hp.selectTile=function(e,t){if(e.contentVisibility(t)===Yt.OUTSIDE)return;e._wasSelectedLastFrame=!0;let{content:n,tileset:i}=e;n.featurePropertiesDirty?(n.featurePropertiesDirty=!1,e.lastStyleTime=0,i._selectedTilesToStyle.push(e)):e._selectedFrame<t.frameNumber-1&&(i._selectedTilesToStyle.push(e),e._wasSelectedLastFrame=!1),e._selectedFrame=t.frameNumber,i._selectedTiles.push(e)};Hp.visitTile=function(e,t){++e.tileset._statistics.visited,e._visitedFrame=t.frameNumber};Hp.touchTile=function(e,t){e._touchedFrame!==t.frameNumber&&(e.tileset._cache.touch(e),e._touchedFrame=t.frameNumber)};Hp.loadTile=function(e,t){let{tileset:n}=e;if(e._requestedFrame===t.frameNumber||!e.hasUnloadedRenderableContent&&!e.contentExpired||!kqe(e,t))return;let i=t.camera.timeSinceMoved<n.foveatedTimeDelay;e.priorityDeferred&&i||(e._requestedFrame=t.frameNumber,n._requestedTiles.push(e))};function kqe(e,t){let{tileset:n}=e;if(!n._cullRequestsWhileMoving)return!0;let{positionWCDeltaMagnitude:i,positionWCDeltaMagnitudeLastFrame:o}=t.camera,r=i!==0?i:o,s=Math.max(e.boundingSphere.radius*2,1);return n.cullRequestsWhileMovingMultiplier*r/s<1}Hp.updateTile=function(e,t){Gce(e,t),e.updateExpiration(),e._wasMinPriorityChild=!1,e._priorityHolder=e,zqe(e),e._shouldSelect=!1,e._finalResolution=!0};function Gce(e,t){if(e.updateVisibility(t),!e.isVisible)return;let n=e.children.length>0;if((e.hasTilesetContent||e.hasImplicitContent)&&n){let r=e.children[0];Gce(r,t),e._visible=r._visible;return}if(Vqe(e,t)){e._visible=!1;return}let i=e.refine===jo.REPLACE,o=e._optimChildrenWithinParent===Td.USE_OPTIMIZATION;if(i&&o&&n&&!Uqe(e,t)){++e.tileset._statistics.numberOfTilesCulledWithChildrenUnion,e._visible=!1;return}}function Vqe(e,t){let{parent:n,tileset:i}=e;return!l(n)||n.hasTilesetContent||n.hasImplicitContent||n.refine!==jo.ADD?!1:e.getScreenSpaceError(t,!0)<=i.memoryAdjustedScreenSpaceError}function Uqe(e,t){let n=!1,i=e.children;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(t),n=n||r.isVisible}return n}function zqe(e){let t=e.tileset._minimumPriority,n=e.tileset._maximumPriority,i=e._priorityHolder;n.distance=Math.max(i._distanceToCamera,n.distance),t.distance=Math.min(i._distanceToCamera,t.distance),n.depth=Math.max(e._depth,n.depth),t.depth=Math.min(e._depth,t.depth),n.foveatedFactor=Math.max(i._foveatedFactor,n.foveatedFactor),t.foveatedFactor=Math.min(i._foveatedFactor,t.foveatedFactor),n.reverseScreenSpaceError=Math.max(e._priorityReverseScreenSpaceError,n.reverseScreenSpaceError),t.reverseScreenSpaceError=Math.min(e._priorityReverseScreenSpaceError,t.reverseScreenSpaceError)}var ia=Hp;function Wce(){}var Xw={stack:new ml,stackMaximumLength:0};Wce.selectTiles=function(e,t){e._selectedTiles.length=0,e._requestedTiles.length=0,e.hasMixedContent=!1;let n=!0,i=e.root;if(i.updateVisibility(t),!i.isVisible)return n;let{touchTile:o,visitTile:r}=ia,s=Xw.stack;for(s.push(i);s.length>0;){Xw.stackMaximumLength=Math.max(Xw.stackMaximumLength,s.length);let a=s.pop(),c=a.refine===jo.ADD,u=a.refine===jo.REPLACE,f=Hqe(a);f&&Gqe(a,s,t),(c||u&&!f)&&(Wqe(e,a),o(a,t),jqe(a,t),a.hasRenderableContent&&!a.contentAvailable&&(n=!1)),r(a,t)}return Xw.stack.trim(Xw.stackMaximumLength),n};function Hqe(e){return e.children.length===0?!1:e.hasTilesetContent||e.hasImplicitContent?!e.contentExpired:(e.hasEmptyContent,!0)}function Gqe(e,t,n){let{children:i}=e;for(let o=0;o<i.length;++o){let r=i[o];r.updateVisibility(n),r.isVisible&&t.push(r)}}function Wqe(e,t){(t.hasUnloadedRenderableContent||t.contentExpired)&&(t._priority=0,e._requestedTiles.push(t))}function jqe(e,t){e.contentAvailable&&e.contentVisibility(t)!==Yt.OUTSIDE&&e.tileset._selectedTiles.push(e)}var qB=Wce;function jce(){}var Kw={stack:new ml,stackMaximumLength:0},Zw={stack:new ml,stackMaximumLength:0};jce.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(ia.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;Yqe(n,t),Kw.stack.trim(Kw.stackMaximumLength),Zw.stack.trim(Zw.stackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function gj(e,t){e.contentAvailable&&ia.selectTile(e,t)}function qqe(e,t,n){let i=e.refine===jo.REPLACE,{tileset:o,children:r}=e,{updateTile:s,loadTile:a,touchTile:c}=ia;for(let m=0;m<r.length;++m)s(r[m],n);r.sort(ia.sortChildrenByDistanceToCamera);let u=i&&e.hasRenderableContent,f=!0,d=!1,p=-1,g=Number.MAX_VALUE;for(let m=0;m<r.length;++m){let x=r[m];if(x.isVisible?(t.push(x),x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),d=!0):(u||o.loadSiblings)&&(x._foveatedFactor<g&&(p=m,g=x._foveatedFactor),a(x,n),c(x,n)),u){let b;x._inRequestVolume?x.hasRenderableContent?b=x.contentAvailable:b=Xqe(x,n):b=!1,f=f&&b}}if(d||(f=!1),p!==-1&&i){let m=r[p];m._wasMinPriorityChild=!0;let x=(e._wasMinPriorityChild||e===o.root)&&g<=e._priorityHolder._foveatedFactor?e._priorityHolder:e;x._foveatedFactor=Math.min(m._foveatedFactor,x._foveatedFactor),x._distanceToCamera=Math.min(m._distanceToCamera,x._distanceToCamera);for(let b=0;b<r.length;++b)r[b]._priorityHolder=x}return f}function Yqe(e,t){let{tileset:n}=e,{canTraverse:i,loadTile:o,visitTile:r,touchTile:s}=ia,a=Kw.stack;for(a.push(e);a.length>0;){Kw.stackMaximumLength=Math.max(Kw.stackMaximumLength,a.length);let c=a.pop(),u=c.parent,f=!l(u)||u._refines;c._refines=i(c)?qqe(c,a,t)&&f:!1;let d=!c._refines&&f;c.hasRenderableContent?c.refine===jo.ADD?(gj(c,t),o(c,t)):c.refine===jo.REPLACE&&(o(c,t),d&&gj(c,t)):(n._emptyTiles.push(c),o(c,t),d&&gj(c,t)),r(c,t),s(c,t)}}function Xqe(e,t){let{canTraverse:n,updateTile:i,loadTile:o,touchTile:r}=ia,s=!0,a=Zw.stack;for(a.push(e);a.length>0;){Zw.stackMaximumLength=Math.max(Zw.stackMaximumLength,a.length);let c=a.pop(),u=c.children,f=u.length,d=!c.hasRenderableContent&&n(c);if(!d&&!c.contentAvailable&&(s=!1),i(c,t),c.isVisible||(o(c,t),r(c,t)),d)for(let p=0;p<f;++p){let g=u[p];a.push(g)}}return e.hasEmptyContent||s}var YB=jce;function qce(){}var $w={stack:new ml,stackMaximumLength:0},Qw={stack:new ml,stackMaximumLength:0},Gp={stack:new ml,stackMaximumLength:0,ancestorStack:new ml,ancestorStackMaximumLength:0},Kqe=2;qce.selectTiles=function(e,t){if(e._requestedTiles.length=0,e.debugFreezeFrame)return;e._selectedTiles.length=0,e._selectedTilesToStyle.length=0,e._emptyTiles.length=0,e.hasMixedContent=!1;let n=e.root;if(ia.updateTile(n,t),!n.isVisible||n.getScreenSpaceError(t,!0)<=e.memoryAdjustedScreenSpaceError)return;tYe(n,t),nYe(n,t),$w.stack.trim($w.stackMaximumLength),Qw.stack.trim(Qw.stackMaximumLength),Gp.stack.trim(Gp.stackMaximumLength),Gp.ancestorStack.trim(Gp.ancestorStackMaximumLength);let i=e._requestedTiles;for(let o=0;o<i.length;++o)i[o].updatePriority()};function Zqe(e,t){let{updateTile:n,touchTile:i,selectTile:o}=ia,r=Qw.stack;for(r.push(e);r.length>0;){Qw.stackMaximumLength=Math.max(Qw.stackMaximumLength,r.length);let a=r.pop().children;for(let c=0;c<a.length;++c){let u=a[c];u.isVisible&&(u.contentAvailable?(n(u,t),i(u,t),o(u,t)):u._depth-e._depth<Kqe&&r.push(u))}}}function XB(e,t){let n=e.contentAvailable?e:e._ancestorWithContentAvailable;l(n)?n._shouldSelect=!0:Zqe(e,t)}function $qe(e,t){e._ancestorWithContent=void 0,e._ancestorWithContentAvailable=void 0;let{parent:n}=e;if(!l(n))return;let i=!n.hasUnloadedRenderableContent||n._requestedFrame===t.frameNumber;e._ancestorWithContent=i?n:n._ancestorWithContent,e._ancestorWithContentAvailable=n.contentAvailable?n:n._ancestorWithContentAvailable}function Qqe(e,t){let n=t._ancestorWithContent;return!e.immediatelyLoadDesiredLevelOfDetail&&(t._priorityProgressiveResolutionScreenSpaceErrorLeaf||l(n)&&t._screenSpaceError<n._screenSpaceError/e.skipScreenSpaceErrorFactor&&t._depth>n._depth+e.skipLevels)}function Jqe(e,t,n){let{tileset:i,children:o}=e,{updateTile:r,loadTile:s,touchTile:a}=ia;for(let u=0;u<o.length;++u)r(o[u],n);o.sort(ia.sortChildrenByDistanceToCamera);let c=!1;for(let u=0;u<o.length;++u){let f=o[u];f.isVisible?(t.push(f),c=!0):i.loadSiblings&&(s(f,n),a(f,n))}return c}function eYe(e,t){let{tileset:n}=e;return n.immediatelyLoadDesiredLevelOfDetail?!1:l(e._ancestorWithContent)?e._screenSpaceError===0?e.parent._screenSpaceError>t:e._screenSpaceError>t:!0}function tYe(e,t){let{tileset:n}=e,i=n.immediatelyLoadDesiredLevelOfDetail?Number.MAX_VALUE:Math.max(n.baseScreenSpaceError,n.memoryAdjustedScreenSpaceError),{canTraverse:o,loadTile:r,visitTile:s,touchTile:a}=ia,c=$w.stack;for(c.push(e);c.length>0;){$w.stackMaximumLength=Math.max($w.stackMaximumLength,c.length);let u=c.pop();$qe(u,t);let f=u.parent,d=!l(f)||f._refines;u._refines=o(u)?Jqe(u,c,t)&&d:!1;let p=!u._refines&&d;u.hasRenderableContent?u.refine===jo.ADD?(XB(u,t),r(u,t)):u.refine===jo.REPLACE&&(eYe(u,i)?(r(u,t),p&&XB(u,t)):p?(XB(u,t),r(u,t)):Qqe(n,u)&&r(u,t)):(n._emptyTiles.push(u),r(u,t),p&&XB(u,t)),s(u,t),a(u,t)}}function nYe(e,t){let{selectTile:n,canTraverse:i}=ia,{stack:o,ancestorStack:r}=Gp,s;for(o.push(e);o.length>0||r.length>0;){if(Gp.stackMaximumLength=Math.max(Gp.stackMaximumLength,o.length),Gp.ancestorStackMaximumLength=Math.max(Gp.ancestorStackMaximumLength,r.length),r.length>0){let u=r.peek();if(u._stackLength===o.length){r.pop(),u!==s&&(u._finalResolution=!1),n(u,t);continue}}let a=o.pop();if(!l(a))continue;let c=i(a);if(a._shouldSelect)if(a.refine===jo.ADD)n(a,t);else{if(a._selectionDepth=r.length,a._selectionDepth>0&&(a.tileset.hasMixedContent=!0),s=a,!c){n(a,t);continue}r.push(a),a._stackLength=o.length}if(c){let u=a.children;for(let f=0;f<u.length;++f){let d=u[f];d.isVisible&&o.push(d)}}}}var KB=qce;function Ko(e){e=y(e,y.EMPTY_OBJECT),this._url=void 0,this._basePath=void 0,this._root=void 0,this._resource=void 0,this._asset=void 0,this._properties=void 0,this._geometricError=void 0,this._scaledGeometricError=void 0,this._extensionsUsed=void 0,this._extensions=void 0,this._modelUpAxis=void 0,this._modelForwardAxis=void 0,this._cache=new zB,this._processingQueue=[],this._selectedTiles=[],this._emptyTiles=[],this._requestedTiles=[],this._selectedTilesToStyle=[],this._loadTimestamp=void 0,this._timeSinceLoad=0,this._updatedVisibilityFrame=0,this._updatedModelMatrixFrame=0,this._modelMatrixChanged=!1,this._previousModelMatrix=void 0,this._extras=void 0,this._credits=void 0,this._showCreditsOnScreen=y(e.showCreditsOnScreen,!1),this._cullWithChildrenBounds=y(e.cullWithChildrenBounds,!0),this._allTilesAdditive=!0,this._hasMixedContent=!1,this._stencilClearCommand=void 0,this._backfaceCommands=new ml,this._maximumScreenSpaceError=y(e.maximumScreenSpaceError,16),this._memoryAdjustedScreenSpaceError=this._maximumScreenSpaceError,this._cacheBytes=y(e.cacheBytes,512*1024*1024);let t=y(e.maximumCacheOverflowBytes,512*1024*1024);this._maximumCacheOverflowBytes=t,this._styleEngine=new jB,this._styleApplied=!1,this._modelMatrix=l(e.modelMatrix)?F.clone(e.modelMatrix):F.clone(F.IDENTITY),this._addHeightCallbacks=[],this._statistics=new jg,this._statisticsLast=new jg,this._statisticsPerPass=new Array(Fo.NUMBER_OF_PASSES);for(let o=0;o<Fo.NUMBER_OF_PASSES;++o)this._statisticsPerPass[o]=new jg;this._requestedTilesInFlight=[],this._maximumPriority={foveatedFactor:-Number.MAX_VALUE,depth:-Number.MAX_VALUE,distance:-Number.MAX_VALUE,reverseScreenSpaceError:-Number.MAX_VALUE},this._minimumPriority={foveatedFactor:Number.MAX_VALUE,depth:Number.MAX_VALUE,distance:Number.MAX_VALUE,reverseScreenSpaceError:Number.MAX_VALUE},this._heatmap=new GB(e.debugHeatmapTilePropertyName),this.cullRequestsWhileMoving=y(e.cullRequestsWhileMoving,!0),this._cullRequestsWhileMoving=!1,this.cullRequestsWhileMovingMultiplier=y(e.cullRequestsWhileMovingMultiplier,60),this.progressiveResolutionHeightFraction=P.clamp(y(e.progressiveResolutionHeightFraction,.3),0,.5),this.preferLeaves=y(e.preferLeaves,!1),this._tilesLoaded=!1,this._initialTilesLoaded=!1,this._tileDebugLabels=void 0,this._classificationType=e.classificationType,this._ellipsoid=y(e.ellipsoid,ee.WGS84),this._initialClippingPlanesOriginMatrix=F.IDENTITY,this._clippingPlanesOriginMatrix=void 0,this._clippingPlanesOriginMatrixDirty=!0,this._vectorClassificationOnly=y(e.vectorClassificationOnly,!1),this._vectorKeepDecodedPositions=y(e.vectorKeepDecodedPositions,!1),this.preloadWhenHidden=y(e.preloadWhenHidden,!1),this.preloadFlightDestinations=y(e.preloadFlightDestinations,!0),this._pass=void 0,this.dynamicScreenSpaceError=y(e.dynamicScreenSpaceError,!0),this.foveatedScreenSpaceError=y(e.foveatedScreenSpaceError,!0),this._foveatedConeSize=y(e.foveatedConeSize,.1),this._foveatedMinimumScreenSpaceErrorRelaxation=y(e.foveatedMinimumScreenSpaceErrorRelaxation,0),this.foveatedInterpolationCallback=y(e.foveatedInterpolationCallback,P.lerp),this.foveatedTimeDelay=y(e.foveatedTimeDelay,.2),this.dynamicScreenSpaceErrorDensity=y(e.dynamicScreenSpaceErrorDensity,2e-4),this.dynamicScreenSpaceErrorFactor=y(e.dynamicScreenSpaceErrorFactor,24),this.dynamicScreenSpaceErrorHeightFalloff=y(e.dynamicScreenSpaceErrorHeightFalloff,.25),this._dynamicScreenSpaceErrorComputedDensity=0,this.shadows=y(e.shadows,yn.ENABLED),this.show=y(e.show,!0),this.colorBlendMode=Jl.HIGHLIGHT,this.colorBlendAmount=.5,this._pointCloudShading=new bp(e.pointCloudShading),this._pointCloudEyeDomeLighting=new vg,this.loadProgress=new me,this.allTilesLoaded=new me,this.initialTilesLoaded=new me,this.tileLoad=new me,this.tileUnload=new me,this.tileFailed=new me,this.tileVisible=new me,this.skipLevelOfDetail=y(e.skipLevelOfDetail,!1),this._disableSkipLevelOfDetail=!1,this.baseScreenSpaceError=y(e.baseScreenSpaceError,1024),this.skipScreenSpaceErrorFactor=y(e.skipScreenSpaceErrorFactor,16),this.skipLevels=y(e.skipLevels,1),this.immediatelyLoadDesiredLevelOfDetail=y(e.immediatelyLoadDesiredLevelOfDetail,!1),this.loadSiblings=y(e.loadSiblings,!1),this._clippingPlanes=void 0,l(e.clippingPlanes)&&bs.setOwner(e.clippingPlanes,this,"_clippingPlanes"),this._clippingPolygons=void 0,l(e.clippingPolygons)&&Uh.setOwner(e.clippingPolygons,this,"_clippingPolygons"),l(e.imageBasedLighting)?(this._imageBasedLighting=e.imageBasedLighting,this._shouldDestroyImageBasedLighting=!1):(this._imageBasedLighting=new tA,this._shouldDestroyImageBasedLighting=!0),this._environmentMapManager=new Tg(e.environmentMapOptions),this.lightColor=e.lightColor,this.backFaceCulling=y(e.backFaceCulling,!0),this._enableShowOutline=y(e.enableShowOutline,!0),this.showOutline=y(e.showOutline,!0),this.outlineColor=y(e.outlineColor,z.BLACK),this.splitDirection=y(e.splitDirection,zr.NONE),this.enableCollision=y(e.enableCollision,!1),this._projectTo2D=y(e.projectTo2D,!1),this._enablePick=y(e.enablePick,!1),this.debugFreezeFrame=y(e.debugFreezeFrame,!1),this.debugColorizeTiles=y(e.debugColorizeTiles,!1),this._enableDebugWireframe=y(e.enableDebugWireframe,!1),this.debugWireframe=y(e.debugWireframe,!1),this.debugWireframe===!0&&this._enableDebugWireframe===!1&&At("tileset-debug-wireframe-ignored","enableDebugWireframe must be set to true in the Cesium3DTileset constructor, otherwise debugWireframe will be ignored."),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.debugShowContentBoundingVolume=y(e.debugShowContentBoundingVolume,!1),this.debugShowViewerRequestVolume=y(e.debugShowViewerRequestVolume,!1),this._tileDebugLabels=void 0,this.debugPickedTileLabelOnly=!1,this.debugPickedTile=void 0,this.debugPickPosition=void 0,this.debugShowGeometricError=y(e.debugShowGeometricError,!1),this.debugShowRenderingStatistics=y(e.debugShowRenderingStatistics,!1),this.debugShowMemoryUsage=y(e.debugShowMemoryUsage,!1),this.debugShowUrl=y(e.debugShowUrl,!1),this.examineVectorLinesFunction=void 0,this._metadataExtension=void 0,this._customShader=e.customShader;let n=y(e.featureIdLabel,"featureId_0");typeof n=="number"&&(n=`featureId_${n}`),this._featureIdLabel=n;let i=y(e.instanceFeatureIdLabel,"instanceFeatureId_0");typeof i=="number"&&(i=`instanceFeatureId_${i}`),this._instanceFeatureIdLabel=i}Object.defineProperties(Ko.prototype,{isCesium3DTileset:{get:function(){return!0}},asset:{get:function(){return this._asset}},extensions:{get:function(){return this._extensions}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){bs.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Uh.setOwner(e,this,"_clippingPolygons")}},properties:{get:function(){return this._properties}},tilesLoaded:{get:function(){return this._tilesLoaded}},resource:{get:function(){return this._resource}},basePath:{get:function(){return _s("Cesium3DTileset.basePath","Cesium3DTileset.basePath has been deprecated. All tiles are relative to the url of the tileset JSON file that contains them. Use the url property instead."),this._basePath}},style:{get:function(){return this._styleEngine.style},set:function(e){this._styleEngine.style=e}},customShader:{get:function(){return this._customShader},set:function(e){this._customShader=e}},hasMixedContent:{get:function(){return this._hasMixedContent},set:function(e){this._hasMixedContent=e}},isSkippingLevelOfDetail:{get:function(){return this.skipLevelOfDetail&&!l(this._classificationType)&&!this._disableSkipLevelOfDetail&&!this._allTilesAdditive}},metadataExtension:{get:function(){return this._metadataExtension}},metadata:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.tileset}},schema:{get:function(){if(l(this._metadataExtension))return this._metadataExtension.schema}},maximumScreenSpaceError:{get:function(){return this._maximumScreenSpaceError},set:function(e){this._maximumScreenSpaceError=e,this._memoryAdjustedScreenSpaceError=e}},cacheBytes:{get:function(){return this._cacheBytes},set:function(e){this._cacheBytes=e}},maximumCacheOverflowBytes:{get:function(){return this._maximumCacheOverflowBytes},set:function(e){this._maximumCacheOverflowBytes=e}},memoryAdjustedScreenSpaceError:{get:function(){return this._memoryAdjustedScreenSpaceError}},pointCloudShading:{get:function(){return this._pointCloudShading},set:function(e){this._pointCloudShading=e}},root:{get:function(){return this._root}},boundingSphere:{get:function(){return this._root.updateTransform(this._modelMatrix),this._root.boundingSphere}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},timeSinceLoad:{get:function(){return this._timeSinceLoad}},totalMemoryUsageInBytes:{get:function(){let e=this._statistics;return e.texturesByteLength+e.geometryByteLength+e.batchTableByteLength}},clippingPlanesOriginMatrix:{get:function(){return l(this._clippingPlanesOriginMatrix)?(this._clippingPlanesOriginMatrixDirty&&(F.multiply(this.root.computedTransform,this._initialClippingPlanesOriginMatrix,this._clippingPlanesOriginMatrix),this._clippingPlanesOriginMatrixDirty=!1),this._clippingPlanesOriginMatrix):F.IDENTITY}},styleEngine:{get:function(){return this._styleEngine}},statistics:{get:function(){return this._statistics}},classificationType:{get:function(){return this._classificationType}},ellipsoid:{get:function(){return this._ellipsoid}},foveatedConeSize:{get:function(){return this._foveatedConeSize},set:function(e){this._foveatedConeSize=e}},foveatedMinimumScreenSpaceErrorRelaxation:{get:function(){return this._foveatedMinimumScreenSpaceErrorRelaxation},set:function(e){this._foveatedMinimumScreenSpaceErrorRelaxation=e}},extras:{get:function(){return this._extras}},imageBasedLighting:{get:function(){return this._imageBasedLighting},set:function(e){e!==this._imageBasedLighting&&(this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=e,this._shouldDestroyImageBasedLighting=!1)}},environmentMapManager:{get:function(){return this._environmentMapManager}},vectorClassificationOnly:{get:function(){return this._vectorClassificationOnly}},vectorKeepDecodedPositions:{get:function(){return this._vectorKeepDecodedPositions}},showCreditsOnScreen:{get:function(){return this._showCreditsOnScreen},set:function(e){this._showCreditsOnScreen=e,ele(this)}},featureIdLabel:{get:function(){return this._featureIdLabel},set:function(e){typeof e=="number"&&(e=`featureId_${e}`),this._featureIdLabel=e}},instanceFeatureIdLabel:{get:function(){return this._instanceFeatureIdLabel},set:function(e){typeof e=="number"&&(e=`instanceFeatureId_${e}`),this._instanceFeatureIdLabel=e}}});Ko.fromIonAssetId=async function(e,t){let n=await ef.fromAssetId(e);return Ko.fromUrl(n,t)};Ko.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e),i;n.extension==="json"?i=n.getBaseUri(!0):n.isDataUri&&(i="");let o=await Ko.loadJson(n),r=await iYe(n,o),s=new Ko(t);s._resource=n,s._url=n.url,s._basePath=i,s._metadataExtension=r,s._geometricError=o.geometricError,s._scaledGeometricError=o.geometricError;let a=o.asset;s._asset=a,s._extras=o.extras,ele(s);let c=l(o.asset.gltfUpAxis)?Mo.fromName(o.asset.gltfUpAxis):Mo.Y,u=y(t.modelUpAxis,c),f=y(t.modelForwardAxis,Mo.X);s._properties=o.properties,s._extensionsUsed=o.extensionsUsed,s._extensions=o.extensions,s._modelUpAxis=u,s._modelForwardAxis=f,s._root=s.loadTileset(n,o);let p=s._root.createBoundingVolume(o.root.boundingVolume,F.IDENTITY).boundingSphere.center,g=s._ellipsoid.cartesianToCartographic(p);return l(g)&&g.height>ui._defaultMinTerrainHeight&&(s._initialClippingPlanesOriginMatrix=Nt.eastNorthUpToFixedFrame(p)),s._clippingPlanesOriginMatrix=F.clone(s._initialClippingPlanesOriginMatrix),s};Ko.loadJson=function(e){return De.createIfNeeded(e).fetchJson()};Ko.prototype.makeStyleDirty=function(){this._styleEngine.makeDirty()};Ko.prototype.loadTileset=function(e,t,n){let i=t.asset;if(!l(i))throw new ce("Tileset must have an asset property.");if(i.version!=="0.0"&&i.version!=="1.0"&&i.version!=="1.1")throw new ce("The tileset must be 3D Tiles version 0.0, 1.0, or 1.1");l(t.extensionsRequired)&&Ko.checkSupportedExtensions(t.extensionsRequired);let o=this._statistics,r=i.tilesetVersion;l(r)&&(this._basePath+=`?v=${r}`,e=e.clone(),e.setQueryParameters({v:r}));let s=Yce(this,e,t.root,n);l(n)&&(n.children.push(s),s._depth=n._depth+1);let a=[];for(a.push(s);a.length>0;){let c=a.pop();++o.numberOfTilesTotal,this._allTilesAdditive=this._allTilesAdditive&&c.refine===jo.ADD;let u=c._header.children;if(l(u))for(let f=0;f<u.length;++f){let d=u[f],p=Yce(this,e,d,c);c.children.push(p),p._depth=c._depth+1,a.push(p)}this._cullWithChildrenBounds&&VB.checkChildrenWithinParent(c)}return s};function Yce(e,t,n,i){if(!(l(n.implicitTiling)||oi(n,"3DTILES_implicit_tiling")))return new Ed(e,t,n,i);let r=e.schema,s=new uC(t,n,r),a=new fC({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:0,x:0,y:0,z:0}),c=s.subtreeUriTemplate.getDerivedResource({templateValues:a.getTemplateValues()}).url,f=Ge(n,!0);f.contents=[{uri:c}],delete f.content,delete f.extensions;let d=new Ed(e,t,f,i);return d.implicitTileset=s,d.implicitCoordinates=a,d}async function iYe(e,t){let n=oi(t,"3DTILES_metadata")?t.extensions["3DTILES_metadata"]:t,i;if(l(n.schemaUri))e=e.getDerivedResource({url:n.schemaUri}),i=Ai.getSchemaLoader({resource:e});else if(l(n.schema))i=Ai.getSchemaLoader({schema:n.schema});else return;await i.load();let o=new cC({schema:i.schema,metadataJson:n});return Ai.unload(i),o}var Xce=new h,oYe=new fe,rYe=new F,sYe=new h,aYe=new h,cYe=new h,lYe=new h;function uYe(e,t){let n,i,o,r,s,a=t.camera,c=e._root,u=c.contentBoundingVolume;if(u instanceof Ad)n=h.normalize(a.positionWC,Xce),i=a.directionWC,o=a.positionCartographic.height,r=u.minimumHeight,s=u.maximumHeight;else{let x=F.inverseTransformation(c.computedTransform,rYe),b=t.mapProjection.ellipsoid,T=u.boundingVolume,A=F.multiplyByPoint(x,T.center,sYe);if(h.magnitude(A)>b.minimumRadius){let C=fe.fromCartesian(A,b,oYe);n=h.normalize(a.positionWC,Xce),i=a.directionWC,o=a.positionCartographic.height,r=0,s=C.height*2}else{let C=F.multiplyByPoint(x,a.positionWC,aYe);if(n=h.UNIT_Z,i=F.multiplyByPointAsVector(x,a.directionWC,cYe),i=h.normalize(i,i),o=C.z,u instanceof Af){let S=$.getColumn(T.halfAxes,2,lYe),v=h.magnitude(S);r=A.z-v,s=A.z+v}else if(u instanceof Gg){let S=T.radius;r=A.z-S,s=A.z+S}}}let f=e.dynamicScreenSpaceErrorHeightFalloff,d=r+(s-r)*f,p=s,g=P.clamp((o-d)/(p-d),0,1),m=1-Math.abs(h.dot(i,n));m=m*(1-g),e._dynamicScreenSpaceErrorComputedDensity=e.dynamicScreenSpaceErrorDensity*m}function fYe(e,t){if(t.hasEmptyContent)return;let{statistics:n}=e,i=t.contentExpired,o=t.requestContent();l(o)&&(o.then(r=>{!l(r)||t.isDestroyed()||e.isDestroyed()||(e._processingQueue.push(t),++n.numberOfTilesProcessing)}).catch(r=>{$ce(r,e,t)}),i&&(t.hasTilesetContent||t.hasImplicitContent?SYe(e,t):(n.decrementLoadCounts(t.content),--n.numberOfTilesWithContentReady)),e._requestedTilesInFlight.push(t))}function Zce(e,t){return e._priority-t._priority}Ko.prototype.postPassesUpdate=function(e){l(this._root)&&(dYe(this,e),wYe(this,e),this._cache.unloadTiles(this,Jce),this._styleApplied&&this._styleEngine.resetDirty(),this._styleApplied=!1)};Ko.prototype.prePassesUpdate=function(e){if(!l(this._root))return;xYe(this,e);let t=this._clippingPlanes;this._clippingPlanesOriginMatrixDirty=!0,l(t)&&t.enabled&&t.update(e);let n=this._clippingPolygons;l(n)&&n.enabled&&n.update(e),l(this._loadTimestamp)||(this._loadTimestamp=K.clone(e.time)),this._timeSinceLoad=Math.max(K.secondsDifference(e.time,this._loadTimestamp)*1e3,0),this.dynamicScreenSpaceError&&uYe(this,e),e.newFrame&&this._cache.reset()};function dYe(e,t){let n=e._requestedTilesInFlight,i=0;for(let o=0;o<n.length;++o){let r=n[o],s=t.frameNumber-r._touchedFrame>=1;if(r._contentState!==Yo.LOADING){++i;continue}else if(s){r.cancelRequests(),++i;continue}i>0&&(n[o-i]=r)}n.length-=i}function hYe(e){let t=e._requestedTiles;t.sort(Zce);for(let n=0;n<t.length;++n)fYe(e,t[n])}function $ce(e,t,n){if(t.isDestroyed())return;let i;n.isDestroyed()||(i=n._contentResource.url);let o=l(e.message)?e.message:e.toString();t.tileFailed.numberOfListeners>0?t.tileFailed.raiseEvent({url:i,message:o}):(console.log(`A 3D tile failed to load: ${i}`),console.log(`Error: ${o}`),console.log(e.stack))}function mYe(e){let t=e._processingQueue,n=0;for(let i=0;i<t.length;++i){let o=t[i];if(o.isDestroyed()||o._contentState!==Yo.PROCESSING){++n;continue}n>0&&(t[i-n]=o)}t.length-=n}var pYe=new fe,_Ye=new fe,gYe=new h;function yYe(e,t,n){if(!e.enableCollision||!e.show)return;let i=e._addHeightCallbacks,o=t.boundingSphere;for(let r of i){if(r.invoked||t._wasSelectedLastFrame)continue;let s=r.ellipsoid,a=fe.clone(r.positionCartographic,pYe),c=fe.fromCartesian(o.center,s,_Ye);l(c)&&(a.height=c.height);let u=fe.toCartesian(a,s,gYe);h.distance(u,o.center)<=o.radius&&n.afterRender.push(()=>{l(r.callback)&&r.callback(a),r.invoked=!1})}}function xYe(e,t){mYe(e);let n=e._processingQueue,{cacheBytes:i,maximumCacheOverflowBytes:o,statistics:r}=e,s=i+o,a=!1;for(let c=0;c<n.length;++c){if(e.totalMemoryUsageInBytes>s){a=!0;break}let u=n[c];try{u.process(e,t),u.contentReady&&(--r.numberOfTilesProcessing,e.tileLoad.raiseEvent(u))}catch(f){--r.numberOfTilesProcessing,$ce(f,e,u)}}e.totalMemoryUsageInBytes<i?TYe(e):a&&n.length>0&&bYe(e)}function bYe(e){e._memoryAdjustedScreenSpaceError*=1.02;let t=e._processingQueue;for(let n=0;n<t.length;++n)t[n].updatePriority();t.sort(Zce)}function TYe(e){e._memoryAdjustedScreenSpaceError=Math.max(e.memoryAdjustedScreenSpaceError/1.02,e.maximumScreenSpaceError)}var ZB=new h,AYe={maximumFractionDigits:3};function Kce(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,AYe):Math.round(t).toLocaleString()}function yj(e){let{halfAxes:t,radius:n,center:i}=e.boundingVolume.boundingVolume,o=h.clone(i,ZB);if(l(t))o.x+=.75*(t[0]+t[3]+t[6]),o.y+=.75*(t[1]+t[4]+t[7]),o.z+=.75*(t[2]+t[5]+t[8]);else if(l(n)){let r=h.normalize(i,ZB);r=h.multiplyByScalar(r,.75*n,ZB),o=h.add(r,i,ZB)}return o}function xj(e,t,n){let i="",o=0;if(t.debugShowGeometricError&&(i+=` +Geometric error: ${e.geometricError}`,o++),t.debugShowRenderingStatistics&&(i+=` +Commands: ${e.commandsLength}`,o++,e.content.pointsLength>0&&(i+=` +Points: ${e.content.pointsLength}`,o++),e.content.trianglesLength>0&&(i+=` +Triangles: ${e.content.trianglesLength}`,o++),i+=` +Features: ${e.content.featuresLength}`,o++),t.debugShowMemoryUsage&&(i+=` +Texture Memory: ${Kce(e.content.texturesByteLength)}`,i+=` +Geometry Memory: ${Kce(e.content.geometryByteLength)}`,o+=2),t.debugShowUrl)if(e.hasMultipleContents){i+=` +Urls:`;let s=e.content.innerContentUrls;for(let a=0;a<s.length;a++)i+=` +- ${s[a]}`;o+=s.length}else i+=` +Url: ${e._contentHeader.uri}`,o++;let r={text:i.substring(1),position:n,font:`${19-o}px sans-serif`,showBackground:!0,disableDepthTestDistance:Number.POSITIVE_INFINITY};return t._tileDebugLabels.add(r)}function CYe(e,t){let n=e._selectedTiles,i=n.length,o=e._emptyTiles,r=o.length;if(e._tileDebugLabels.removeAll(),e.debugPickedTileLabelOnly){if(l(e.debugPickedTile)){let s=l(e.debugPickPosition)?e.debugPickPosition:yj(e.debugPickedTile),a=xj(e.debugPickedTile,e,s);a.pixelOffset=new U(15,-15)}}else{for(let s=0;s<i;++s){let a=n[s];xj(a,e,yj(a))}for(let s=0;s<r;++s){let a=o[s];(a.hasTilesetContent||a.hasImplicitContent)&&xj(a,e,yj(a))}}e._tileDebugLabels.update(t)}function EYe(e,t,n){e._styleEngine.applyStyle(e),e._styleApplied=!0;let{commandList:i,context:o}=t,r=i.length,s=e._selectedTiles,a=e.isSkippingLevelOfDetail&&e._hasMixedContent&&o.stencilBuffer&&s.length>0;e._backfaceCommands.length=0,a&&(l(e._stencilClearCommand)||(e._stencilClearCommand=new ei({stencil:0,pass:ve.CESIUM_3D_TILE,renderState:Ve.fromCache({stencilMask:Ht.SKIP_LOD_MASK})})),i.push(e._stencilClearCommand));let{statistics:c,tileVisible:u}=e,f=n.isRender,d=i.length;for(let m=0;m<s.length;++m){let x=s[m];f&&u.raiseEvent(x),yYe(e,x,t),x.update(e,t,n),c.incrementSelectionCounts(x.content),++c.selected}let p=e._emptyTiles;for(let m=0;m<p.length;++m)p[m].update(e,t,n);let g=i.length-d;if(e._backfaceCommands.trim(),a){let m=e._backfaceCommands.values,x=m.length;i.length+=x;for(let b=g-1;b>=0;--b)i[d+x+b]=i[d+b];for(let b=0;b<x;++b)i[d+b]=m[b]}g=i.length-r,c.numberOfCommands=g,f&&(e.pointCloudShading.attenuation&&e.pointCloudShading.eyeDomeLighting&&g>0&&e._pointCloudEyeDomeLighting.update(t,r,e.pointCloudShading,e.boundingSphere),e.debugShowGeometricError||e.debugShowRenderingStatistics||e.debugShowMemoryUsage||e.debugShowUrl?(l(e._tileDebugLabels)||(e._tileDebugLabels=new Rp),CYe(e,t)):e._tileDebugLabels=e._tileDebugLabels&&e._tileDebugLabels.destroy())}var Qce=[];function SYe(e,t){let n=t,i=Qce;for(i.push(t);i.length>0;){t=i.pop();let o=t.children;for(let r=0;r<o.length;++r)i.push(o[r]);t!==n&&(vYe(e,t),--e._statistics.numberOfTilesTotal)}n.children=[]}function Jce(e,t){e.tileUnload.raiseEvent(t),e._statistics.decrementLoadCounts(t.content),--e._statistics.numberOfTilesWithContentReady,t.unloadContent()}function vYe(e,t){e._cache.unloadTile(e,t,Jce),t.destroy()}Ko.prototype.trimLoadedTiles=function(){this._cache.trim()};function wYe(e,t){let n=e._statistics,i=e._statisticsLast,o=n.numberOfPendingRequests,r=n.numberOfTilesProcessing,s=i.numberOfPendingRequests,a=i.numberOfTilesProcessing;jg.clone(n,i);let c=o!==s||r!==a;c&&t.afterRender.push(function(){return e.loadProgress.raiseEvent(o,r),!0}),e._tilesLoaded=n.numberOfPendingRequests===0&&n.numberOfTilesProcessing===0&&n.numberOfAttemptedRequests===0,c&&e._tilesLoaded&&(t.afterRender.push(function(){return e.allTilesLoaded.raiseEvent(),!0}),e._initialTilesLoaded||(e._initialTilesLoaded=!0,t.afterRender.push(function(){return e.initialTilesLoaded.raiseEvent(),!0})))}function DYe(e){e._heatmap.resetMinimumMaximum(),e._minimumPriority.depth=Number.MAX_VALUE,e._maximumPriority.depth=-Number.MAX_VALUE,e._minimumPriority.foveatedFactor=Number.MAX_VALUE,e._maximumPriority.foveatedFactor=-Number.MAX_VALUE,e._minimumPriority.distance=Number.MAX_VALUE,e._maximumPriority.distance=-Number.MAX_VALUE,e._minimumPriority.reverseScreenSpaceError=Number.MAX_VALUE,e._maximumPriority.reverseScreenSpaceError=-Number.MAX_VALUE}function IYe(e,t){t.frameNumber===e._updatedModelMatrixFrame&&l(e._previousModelMatrix)||(e._updatedModelMatrixFrame=t.frameNumber,e._modelMatrixChanged=!F.equals(e.modelMatrix,e._previousModelMatrix),e._modelMatrixChanged&&(e._previousModelMatrix=F.clone(e.modelMatrix,e._previousModelMatrix)))}function PYe(e,t,n,i){if(t.mode===ne.MORPHING||!l(e._root))return!1;let o=e._statistics;o.clear(),++e._updatedVisibilityFrame,DYe(e),IYe(e,t),e._cullRequestsWhileMoving=e.cullRequestsWhileMoving&&!e._modelMatrixChanged;let r=e.getTraversal(i).selectTiles(e,t);if(i.requestTiles&&hYe(e),EYe(e,t,i),jg.clone(o,n),i.isRender){let s=e._credits;if(l(s)&&o.selected!==0)for(let a=0;a<s.length;++a){let c=s[a];t.creditDisplay.addCreditToNextFrame(c)}}return r}function ele(e){let t=e._credits;l(t)||(t=[]),t.length=0,l(e.resource.credits)&&e.resource.credits.forEach(i=>{t.push(wt.clone(i))});let n=e.asset.extras;if(l(n)&&l(n.cesium)&&l(n.cesium.credits)){let i=n.cesium.credits;for(let o=0;o<i.length;++o){let r=i[o];t.push(new wt(r.html))}}t.forEach(i=>i.showOnScreen=i.showOnScreen||e._showCreditsOnScreen),e._credits=t}Ko.prototype.getTraversal=function(e){let{pass:t}=e;return t===Fo.MOST_DETAILED_PRELOAD||t===Fo.MOST_DETAILED_PICK?qB:this.isSkippingLevelOfDetail?KB:YB};Ko.prototype.update=function(e){this.updateForPass(e,e.tilesetPassState)};Ko.prototype.updateForPass=function(e,t){let n=t.pass;if(n===Fo.PRELOAD&&(!this.preloadWhenHidden||this.show)||n===Fo.PRELOAD_FLIGHT&&(!this.preloadFlightDestinations||!this.show&&!this.preloadWhenHidden)||n===Fo.REQUEST_RENDER_MODE_DEFER_CHECK&&(!this._cullRequestsWhileMoving&&this.foveatedTimeDelay<=0||!this.show))return;let i=e.commandList,o=e.camera,r=e.cullingVolume;t.ready=!1;let s=Fo.getPassOptions(n),a=s.ignoreCommands,c=y(t.commandList,i),u=c.length;if(e.commandList=c,e.camera=y(t.camera,o),e.cullingVolume=y(t.cullingVolume,r),s.isRender){let p=this._environmentMapManager;l(this._root)&&(p.position=this.boundingSphere.center),p.update(e)}let f=this._clippingPolygons;l(f)&&f.enabled&&f.queueCommands(e);let d=this._statisticsPerPass[n];(this.show||a)&&(this._pass=n,t.ready=PYe(this,e,d,s)),a&&(c.length=u),e.commandList=i,e.camera=o,e.cullingVolume=r};Ko.prototype.hasExtension=function(e){return l(this._extensionsUsed)?this._extensionsUsed.indexOf(e)>-1:!1};Ko.prototype.isDestroyed=function(){return!1};Ko.prototype.destroy=function(){if(this._tileDebugLabels=this._tileDebugLabels&&this._tileDebugLabels.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),l(this._root)){let e=Qce;for(e.push(this._root);e.length>0;){let t=e.pop();t.destroy();let n=t.children;for(let i=0;i<n.length;++i)e.push(n[i])}}return this._root=void 0,this._shouldDestroyImageBasedLighting&&!this._imageBasedLighting.isDestroyed()&&this._imageBasedLighting.destroy(),this._imageBasedLighting=void 0,this._environmentMapManager.isDestroyed()||this._environmentMapManager.destroy(),this._environmentMapManager=void 0,ue(this)};Ko.supportedExtensions={"3DTILES_metadata":!0,"3DTILES_implicit_tiling":!0,"3DTILES_content_gltf":!0,"3DTILES_multiple_contents":!0,"3DTILES_bounding_volume_S2":!0,"3DTILES_batch_table_hierarchy":!0,"3DTILES_draco_point_compression":!0,MAXAR_content_geojson:!0};Ko.checkSupportedExtensions=function(e){for(let t=0;t<e.length;t++)if(!Ko.supportedExtensions[e[t]])throw new ce(`Unsupported 3D Tiles Extension: ${e[t]}`)};var RYe=new mn,OYe=new h,MYe=new fe;Ko.prototype.getHeight=function(e,t){let n=t.ellipsoid;l(n)||(n=ee.WGS84);let i=RYe,o=n.cartographicToCartesian(e,i.direction);h.normalize(i.direction,i.direction),i.direction=h.normalize(o,i.direction),i.direction=h.negate(o,i.direction),i.origin=h.multiplyByScalar(i.direction,-2*n.maximumRadius,i.origin);let r=this.pick(i,t.frameState,OYe);if(l(r))return n.cartesianToCartographic(r,MYe)?.height};Ko.prototype.updateHeight=function(e,t,n){n=y(n,ee.WGS84);let i={positionCartographic:e,ellipsoid:n,callback:t,invoked:!1},o=()=>{let r=this._addHeightCallbacks,s=r.length;for(let a=0;a<s;++a)if(r[a]===i){r.splice(a,1);break}i.callback&&(i.callback=void 0)};return this._addHeightCallbacks.push(i),o};var LYe=new Ha,NYe=new h;Ko.prototype.pick=function(e,t,n){if(!t.context.webgl2&&!this._enablePick)return;let i=this._selectedTiles,o=i.length,r=[];for(let c=0;c<o;++c){let u=i[c],f=$n.raySphere(e,u.contentBoundingVolume.boundingSphere,LYe);!l(f)||!l(u.content)||r.push(u)}let s=r.length;r.sort((c,u)=>{let f=se.distanceSquaredTo(c.contentBoundingVolume.boundingSphere,e.origin),d=se.distanceSquaredTo(u.contentBoundingVolume.boundingSphere,e.origin);return f-d});let a;for(let c=0;c<s;++c){let f=r[c].content.pick(e,t,NYe);if(l(f))return a=h.clone(f,n),a}};var Ca=Ko;var FYe=new F;function qg(e,t){t.collectionChanged.addEventListener(qg.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._tilesetHash={},this._entitiesToVisualize=new St,this._onCollectionChanged(t,t.values,[],[])}qg.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._tilesetHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._tileset,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;f&&(d=s.computeModelMatrix(e,FYe),c=De.createIfNeeded(Y.getValueOrUndefined(a._uri,e)));let p=l(u)?u.tilesetPrimitive:void 0;if(!f){l(p)&&(p.show=!1);continue}(!l(u)||c.url!==u.url)&&(l(p)&&i.removeAndDestroy(p),delete n[s.id],BYe(c,n,s,i)),l(p)&&(p.show=!0,l(d)&&(p.modelMatrix=d),p.maximumScreenSpaceError=Y.getValueOrDefault(a.maximumScreenSpaceError,e,p.maximumScreenSpaceError))}return!0};qg.prototype.isDestroyed=function(){return!1};qg.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(qg.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._tilesetHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)bj(this,e[i],t,n);return ue(this)};qg.prototype.getBoundingSphere=function(e,t){let n=this._tilesetHash[e.id];if(!l(n)||n.loadFail)return dt.FAILED;let i=n.tilesetPrimitive;return l(i)?i.show?(se.clone(i.boundingSphere,t),dt.DONE):dt.FAILED:dt.PENDING};qg.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._tilesetHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._tileset)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._tileset)?s.set(r.id,r):(bj(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],bj(this,r,a,c),s.remove(r.id)};function bj(e,t,n,i){let o=n[t.id];l(o)&&(l(o.tilesetPrimitive)&&i.removeAndDestroy(o.tilesetPrimitive),delete n[t.id])}async function BYe(e,t,n,i){t[n.id]={url:e.url,loadFail:!1};try{let o=await Ca.fromUrl(e);if(o.id=n,i.add(o),!l(t[n.id]))return;t[n.id].tilesetPrimitive=o}catch(o){console.error(o),t[n.id].loadFail=!0}}var $B=qg;var kYe=z.WHITE,VYe=z.BLACK,UYe=new U(2,2);function dC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.repeat=e.repeat}Object.defineProperties(dC.prototype,{isConstant:{get:function(){return Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},evenColor:le("evenColor"),oddColor:le("oddColor"),repeat:le("repeat")});dC.prototype.getType=function(e){return"Checkerboard"};var zYe=new K;dC.prototype.getValue=function(e,t){return l(e)||(e=K.now(zYe)),l(t)||(t={}),t.lightColor=Y.getValueOrClonedDefault(this._evenColor,e,kYe,t.lightColor),t.darkColor=Y.getValueOrClonedDefault(this._oddColor,e,VYe,t.darkColor),t.repeat=Y.getValueOrDefault(this._repeat,e,UYe),t};dC.prototype.equals=function(e){return this===e||e instanceof dC&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._repeat,e._repeat)};var Jw=dC;var tle={id:void 0};function eD(e){if(e._firing){e._refire=!0;return}if(e._suspendCount===0){let t=e._addedEntities,n=e._removedEntities,i=e._changedEntities;if(i.length!==0||t.length!==0||n.length!==0){e._firing=!0;do{e._refire=!1;let o=t.values.slice(0),r=n.values.slice(0),s=i.values.slice(0);t.removeAll(),n.removeAll(),i.removeAll(),e._collectionChanged.raiseEvent(e,o,r,s)}while(e._refire);e._firing=!1}}}function Ja(e){this._owner=e,this._entities=new St,this._addedEntities=new St,this._removedEntities=new St,this._changedEntities=new St,this._suspendCount=0,this._collectionChanged=new me,this._id=zn(),this._show=!0,this._firing=!1,this._refire=!1}Ja.prototype.suspendEvents=function(){this._suspendCount++};Ja.prototype.resumeEvents=function(){this._suspendCount--,eD(this)};Object.defineProperties(Ja.prototype,{collectionChanged:{get:function(){return this._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._entities.values}},show:{get:function(){return this._show},set:function(e){if(e===this._show)return;this.suspendEvents();let t,n=[],i=this._entities.values,o=i.length;for(t=0;t<o;t++)n.push(i[t].isShowing);for(this._show=e,t=0;t<o;t++){let r=n[t],s=i[t];r!==s.isShowing&&s.definitionChanged.raiseEvent(s,"isShowing",s.isShowing,r)}this.resumeEvents()}},owner:{get:function(){return this._owner}}});Ja.prototype.computeAvailability=function(){let e=ze.MAXIMUM_VALUE,t=ze.MINIMUM_VALUE,n=this._entities.values;for(let i=0,o=n.length;i<o;i++){let s=n[i].availability;if(l(s)){let a=s.start,c=s.stop;K.lessThan(a,e)&&!a.equals(ze.MINIMUM_VALUE)&&(e=a),K.greaterThan(c,t)&&!c.equals(ze.MAXIMUM_VALUE)&&(t=c)}}return ze.MAXIMUM_VALUE.equals(e)&&(e=ze.MINIMUM_VALUE),ze.MINIMUM_VALUE.equals(t)&&(t=ze.MAXIMUM_VALUE),new Sn({start:e,stop:t})};Ja.prototype.add=function(e){e instanceof ir||(e=new ir(e));let t=e.id,n=this._entities;if(n.contains(t))throw new he(`An entity with id ${t} already exists in this collection.`);return e.entityCollection=this,n.set(t,e),this._removedEntities.remove(t)||this._addedEntities.set(t,e),e.definitionChanged.addEventListener(Ja.prototype._onEntityDefinitionChanged,this),eD(this),e};Ja.prototype.remove=function(e){return l(e)?this.removeById(e.id):!1};Ja.prototype.contains=function(e){return this._entities.get(e.id)===e};Ja.prototype.removeById=function(e){if(!l(e))return!1;let n=this._entities.get(e);return this._entities.remove(e)?(this._addedEntities.remove(e)||(this._removedEntities.set(e,n),this._changedEntities.remove(e)),this._entities.remove(e),n.definitionChanged.removeEventListener(Ja.prototype._onEntityDefinitionChanged,this),eD(this),!0):!1};Ja.prototype.removeAll=function(){let e=this._entities,t=e.length,n=e.values,i=this._addedEntities,o=this._removedEntities;for(let r=0;r<t;r++){let s=n[r],a=s.id,c=i.get(a);l(c)||(s.definitionChanged.removeEventListener(Ja.prototype._onEntityDefinitionChanged,this),o.set(a,s))}e.removeAll(),i.removeAll(),this._changedEntities.removeAll(),eD(this)};Ja.prototype.getById=function(e){return this._entities.get(e)};Ja.prototype.getOrCreateEntity=function(e){let t=this._entities.get(e);return l(t)||(tle.id=e,t=new ir(tle),this.add(t)),t};Ja.prototype._onEntityDefinitionChanged=function(e){let t=e.id;this._addedEntities.contains(t)||this._changedEntities.set(t,e),eD(this)};var oa=Ja;var QB={id:void 0},hC=new Array(2);function Tj(e){let t=e.propertyNames,n=t.length;for(let i=0;i<n;i++)e[t[i]]=void 0;e._name=void 0,e._availability=void 0}function nle(e,t,n,i){hC[0]=n,hC[1]=i.id,t[JSON.stringify(hC)]=i.definitionChanged.addEventListener(Nr.prototype._onDefinitionChanged,e)}function ile(e,t,n,i){hC[0]=n,hC[1]=i.id;let o=JSON.stringify(hC);t[o](),t[o]=void 0}function Yg(e){if(e._shouldRecomposite=!0,e._suspendCount!==0)return;let t=e._collections,n=t.length,i=e._collectionsCopy,o=i.length,r,s,a,c,u,f=e._composite,d=new oa(e),p=e._eventHash,g;for(r=0;r<o;r++)for(u=i[r],u.collectionChanged.removeEventListener(Nr.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--)s=a[c],ile(e,p,g,s);for(r=n-1;r>=0;r--)for(u=t[r],u.collectionChanged.addEventListener(Nr.prototype._onCollectionChanged,e),a=u.values,g=u.id,c=a.length-1;c>-1;c--){s=a[c],nle(e,p,g,s);let x=d.getById(s.id);l(x)||(x=f.getById(s.id),l(x)?Tj(x):(QB.id=s.id,x=new ir(QB)),d.add(x)),x.merge(s)}e._collectionsCopy=t.slice(0),f.suspendEvents(),f.removeAll();let m=d.values;for(r=0;r<m.length;r++)f.add(m[r]);f.resumeEvents()}function Nr(e,t){this._owner=t,this._composite=new oa(this),this._suspendCount=0,this._collections=l(e)?e.slice():[],this._collectionsCopy=[],this._id=zn(),this._eventHash={},Yg(this),this._shouldRecomposite=!1}Object.defineProperties(Nr.prototype,{collectionChanged:{get:function(){return this._composite._collectionChanged}},id:{get:function(){return this._id}},values:{get:function(){return this._composite.values}},owner:{get:function(){return this._owner}}});Nr.prototype.addCollection=function(e,t){l(t)?this._collections.splice(t,0,e):(t=this._collections.length,this._collections.push(e)),Yg(this)};Nr.prototype.removeCollection=function(e){let t=this._collections.indexOf(e);return t!==-1?(this._collections.splice(t,1),Yg(this),!0):!1};Nr.prototype.removeAllCollections=function(){this._collections.length=0,Yg(this)};Nr.prototype.containsCollection=function(e){return this._collections.indexOf(e)!==-1};Nr.prototype.contains=function(e){return this._composite.contains(e)};Nr.prototype.indexOfCollection=function(e){return this._collections.indexOf(e)};Nr.prototype.getCollection=function(e){return this._collections[e]};Nr.prototype.getCollectionsLength=function(){return this._collections.length};function JB(e,t){return e.indexOf(t)}function ole(e,t,n){let i=e._collections;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,Yg(e)}Nr.prototype.raiseCollection=function(e){let t=JB(this._collections,e);ole(this,t,t+1)};Nr.prototype.lowerCollection=function(e){let t=JB(this._collections,e);ole(this,t,t-1)};Nr.prototype.raiseCollectionToTop=function(e){let t=JB(this._collections,e);t!==this._collections.length-1&&(this._collections.splice(t,1),this._collections.push(e),Yg(this))};Nr.prototype.lowerCollectionToBottom=function(e){let t=JB(this._collections,e);t!==0&&(this._collections.splice(t,1),this._collections.splice(0,0,e),Yg(this))};Nr.prototype.suspendEvents=function(){this._suspendCount++,this._composite.suspendEvents()};Nr.prototype.resumeEvents=function(){this._suspendCount--,this._shouldRecomposite&&this._suspendCount===0&&(Yg(this),this._shouldRecomposite=!1),this._composite.resumeEvents()};Nr.prototype.computeAvailability=function(){return this._composite.computeAvailability()};Nr.prototype.getById=function(e){return this._composite.getById(e)};Nr.prototype._onCollectionChanged=function(e,t,n){let i=this._collectionsCopy,o=i.length,r=this._composite;r.suspendEvents();let s,a,c,u,f=n.length,d=this._eventHash,p=e.id;for(s=0;s<f;s++){let m=n[s];ile(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),Tj(u)),u.merge(c));l(u)||r.removeById(x),u=void 0}let g=t.length;for(s=0;s<g;s++){let m=t[s];nle(this,d,p,m);let x=m.id;for(a=o-1;a>=0;a--)c=i[a].getById(x),l(c)&&(l(u)||(u=r.getById(x),l(u)?Tj(u):(QB.id=x,u=new ir(QB),r.add(u))),u.merge(c));u=void 0}r.resumeEvents()};Nr.prototype._onDefinitionChanged=function(e,t,n,i){let o=this._collections,r=this._composite,s=o.length,a=e.id,c=r.getById(a),u=c[t],f=!l(u),d=!0;for(let p=s-1;p>=0;p--){let g=o[p].getById(e.id);if(l(g)){let m=g[t];if(l(m)){if(d)if(d=!1,l(m.merge)&&l(m.clone))u=m.clone(u);else{u=m;break}u.merge(m)}}}f&&c.propertyNames.indexOf(t)===-1&&c.addProperty(t),c[t]=u};var rle=Nr;function Aj(){this._removalFunctions=[]}Aj.prototype.add=function(e,t,n){let i=e.addEventListener(t,n);this._removalFunctions.push(i);let o=this;return function(){i();let r=o._removalFunctions;r.splice(r.indexOf(i),1)}};Aj.prototype.removeAll=function(){let e=this._removalFunctions;for(let t=0,n=e.length;t<n;++t)e[t]();e.length=0};var _r=Aj;function Sj(e,t){return K.compare(e.start,t.start)}function Fr(e){if(this._intervals=[],this._changedEvent=new me,l(e)){let t=e.length;for(let n=0;n<t;n++)this.addInterval(e[n])}}Object.defineProperties(Fr.prototype,{changedEvent:{get:function(){return this._changedEvent}},start:{get:function(){let e=this._intervals;return e.length===0?void 0:e[0].start}},isStartIncluded:{get:function(){let e=this._intervals;return e.length===0?!1:e[0].isStartIncluded}},stop:{get:function(){let e=this._intervals,t=e.length;return t===0?void 0:e[t-1].stop}},isStopIncluded:{get:function(){let e=this._intervals,t=e.length;return t===0?!1:e[t-1].isStopIncluded}},length:{get:function(){return this._intervals.length}},isEmpty:{get:function(){return this._intervals.length===0}}});Fr.prototype.equals=function(e,t){if(this===e)return!0;if(!(e instanceof Fr))return!1;let n=this._intervals,i=e._intervals,o=n.length;if(o!==i.length)return!1;for(let r=0;r<o;r++)if(!Sn.equals(n[r],i[r],t))return!1;return!0};Fr.prototype.get=function(e){return this._intervals[e]};Fr.prototype.removeAll=function(){this._intervals.length>0&&(this._intervals.length=0,this._changedEvent.raiseEvent(this))};Fr.prototype.findIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t]:void 0};Fr.prototype.findDataForIntervalContainingDate=function(e){let t=this.indexOf(e);return t>=0?this._intervals[t].data:void 0};Fr.prototype.contains=function(e){return this.indexOf(e)>=0};var Cj=new Sn;Fr.prototype.indexOf=function(e){let t=this._intervals;Cj.start=e,Cj.stop=e;let n=Po(t,Cj,Sj);return n>=0?t[n].isStartIncluded?n:n>0&&t[n-1].stop.equals(e)&&t[n-1].isStopIncluded?n-1:~n:(n=~n,n>0&&n-1<t.length&&Sn.contains(t[n-1],e)?n-1:~n)};Fr.prototype.findInterval=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.start,n=e.stop,i=e.isStartIncluded,o=e.isStopIncluded,r=this._intervals;for(let s=0,a=r.length;s<a;s++){let c=r[s];if((!l(t)||c.start.equals(t))&&(!l(n)||c.stop.equals(n))&&(!l(i)||c.isStartIncluded===i)&&(!l(o)||c.isStopIncluded===o))return r[s]}};Fr.prototype.addInterval=function(e,t){if(e.isEmpty)return;let n=this._intervals;if(n.length===0||K.greaterThan(e.start,n[n.length-1].stop)){n.push(e),this._changedEvent.raiseEvent(this);return}let i=Po(n,e,Sj);i<0?i=~i:i>0&&e.isStartIncluded&&n[i-1].isStartIncluded&&n[i-1].start.equals(e.start)?--i:i<n.length&&!e.isStartIncluded&&n[i].isStartIncluded&&n[i].start.equals(e.start)&&++i;let o;for(i>0&&(o=K.compare(n[i-1].stop,e.start),(o>0||o===0&&(n[i-1].isStopIncluded||e.isStartIncluded))&&((l(t)?t(n[i-1].data,e.data):n[i-1].data===e.data)?(K.greaterThan(e.stop,n[i-1].stop)?e=new Sn({start:n[i-1].start,stop:e.stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:e.isStopIncluded,data:e.data}):e=new Sn({start:n[i-1].start,stop:n[i-1].stop,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:n[i-1].isStopIncluded||e.stop.equals(n[i-1].stop)&&e.isStopIncluded,data:e.data}),n.splice(i-1,1),--i):(o=K.compare(n[i-1].stop,e.stop),(o>0||o===0&&n[i-1].isStopIncluded&&!e.isStopIncluded)&&n.splice(i,0,new Sn({start:e.stop,stop:n[i-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i-1].isStopIncluded,data:n[i-1].data})),n[i-1]=new Sn({start:n[i-1].start,stop:e.start,isStartIncluded:n[i-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:n[i-1].data}))));i<n.length&&(o=K.compare(e.stop,n[i].start),o>0||o===0&&(e.isStopIncluded||n[i].isStartIncluded));)if(l(t)?t(n[i].data,e.data):n[i].data===e.data)e=new Sn({start:e.start,stop:K.greaterThan(n[i].stop,e.stop)?n[i].stop:e.stop,isStartIncluded:e.isStartIncluded,isStopIncluded:K.greaterThan(n[i].stop,e.stop)?n[i].isStopIncluded:e.isStopIncluded,data:e.data}),n.splice(i,1);else if(n[i]=new Sn({start:e.stop,stop:n[i].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:n[i].isStopIncluded,data:n[i].data}),n[i].isEmpty)n.splice(i,1);else break;n.splice(i,0,e),this._changedEvent.raiseEvent(this)};Fr.prototype.removeInterval=function(e){if(e.isEmpty)return!1;let t=this._intervals,n=Po(t,e,Sj);n<0&&(n=~n);let i=!1;for(n>0&&(K.greaterThan(t[n-1].stop,e.start)||t[n-1].stop.equals(e.start)&&t[n-1].isStopIncluded&&e.isStartIncluded)&&(i=!0,(K.greaterThan(t[n-1].stop,e.stop)||t[n-1].isStopIncluded&&!e.isStopIncluded&&t[n-1].stop.equals(e.stop))&&t.splice(n,0,new Sn({start:e.stop,stop:t[n-1].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n-1].isStopIncluded,data:t[n-1].data})),t[n-1]=new Sn({start:t[n-1].start,stop:e.start,isStartIncluded:t[n-1].isStartIncluded,isStopIncluded:!e.isStartIncluded,data:t[n-1].data})),n<t.length&&!e.isStartIncluded&&t[n].isStartIncluded&&e.start.equals(t[n].start)&&(i=!0,t.splice(n,0,new Sn({start:t[n].start,stop:t[n].start,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data})),++n);n<t.length&&K.greaterThan(e.stop,t[n].stop);)i=!0,t.splice(n,1);return n<t.length&&e.stop.equals(t[n].stop)&&(i=!0,!e.isStopIncluded&&t[n].isStopIncluded?n+1<t.length&&t[n+1].start.equals(e.stop)&&t[n].data===t[n+1].data?(t.splice(n,1),t[n]=new Sn({start:t[n].start,stop:t[n].stop,isStartIncluded:!0,isStopIncluded:t[n].isStopIncluded,data:t[n].data})):t[n]=new Sn({start:e.stop,stop:e.stop,isStartIncluded:!0,isStopIncluded:!0,data:t[n].data}):t.splice(n,1)),n<t.length&&(K.greaterThan(e.stop,t[n].start)||e.stop.equals(t[n].start)&&e.isStopIncluded&&t[n].isStartIncluded)&&(i=!0,t[n]=new Sn({start:e.stop,stop:t[n].stop,isStartIncluded:!e.isStopIncluded,isStopIncluded:t[n].isStopIncluded,data:t[n].data})),i&&this._changedEvent.raiseEvent(this),i};Fr.prototype.intersect=function(e,t,n){let i=new Fr,o=0,r=0,s=this._intervals,a=e._intervals;for(;o<s.length&&r<a.length;){let c=s[o],u=a[r];if(K.lessThan(c.stop,u.start))++o;else if(K.lessThan(u.stop,c.start))++r;else{if(l(n)||l(t)&&t(c.data,u.data)||!l(t)&&u.data===c.data){let f=Sn.intersect(c,u,new Sn,n);f.isEmpty||i.addInterval(f,t)}K.lessThan(c.stop,u.stop)||c.stop.equals(u.stop)&&!c.isStopIncluded&&u.isStopIncluded?++o:++r}}return i};Fr.fromJulianDateArray=function(e,t){l(t)||(t=new Fr);let n=e.julianDates,i=n.length,o=e.dataCallback,r=y(e.isStartIncluded,!0),s=y(e.isStopIncluded,!0),a=y(e.leadingInterval,!1),c=y(e.trailingInterval,!1),u,f=0;a&&(++f,u=new Sn({start:ze.MINIMUM_VALUE,stop:n[0],isStartIncluded:!0,isStopIncluded:!r}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u));for(let d=0;d<i-1;++d){let p=n[d],g=n[d+1];u=new Sn({start:p,stop:g,isStartIncluded:t.length===f?r:!0,isStopIncluded:d===i-2?s:!1}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u),p=g}return c&&(u=new Sn({start:n[i-1],stop:ze.MAXIMUM_VALUE,isStartIncluded:!s,isStopIncluded:!0}),u.data=l(o)?o(u,t.length):t.length,t.addInterval(u)),t};var ec=new D_,tD=[0,31,28,31,30,31,30,31,31,30,31,30,31];function Ej(e,t,n){l(n)||(n=new K),K.toGregorianDate(e,ec);let i=ec.millisecond+t.millisecond,o=ec.second+t.second,r=ec.minute+t.minute,s=ec.hour+t.hour,a=ec.day+t.day,c=ec.month+t.month,u=ec.year+t.year;for(i>=1e3&&(o+=Math.floor(i/1e3),i=i%1e3),o>=60&&(r+=Math.floor(o/60),o=o%60),r>=60&&(s+=Math.floor(r/60),r=r%60),s>=24&&(a+=Math.floor(s/24),s=s%24),tD[2]=uh(u)?29:28;a>tD[c]||c>=13;)a>tD[c]&&(a-=tD[c],++c),c>=13&&(--c,u+=Math.floor(c/12),c=c%12,++c),tD[2]=uh(u)?29:28;return ec.millisecond=i,ec.second=o,ec.minute=r,ec.hour=s,ec.day=a,ec.month=c,ec.year=u,K.fromGregorianDate(ec,n)}var HYe=new K,GYe=/P(?:([\d.,]+)Y)?(?:([\d.,]+)M)?(?:([\d.,]+)W)?(?:([\d.,]+)D)?(?:T(?:([\d.,]+)H)?(?:([\d.,]+)M)?(?:([\d.,]+)S)?)?/;function sle(e,t){if(!l(e)||e.length===0)return!1;if(t.year=0,t.month=0,t.day=0,t.hour=0,t.minute=0,t.second=0,t.millisecond=0,e[0]==="P"){let n=e.match(GYe);if(!l(n))return!1;if(l(n[1])&&(t.year=Number(n[1].replace(",","."))),l(n[2])&&(t.month=Number(n[2].replace(",","."))),l(n[3])&&(t.day=Number(n[3].replace(",","."))*7),l(n[4])&&(t.day+=Number(n[4].replace(",","."))),l(n[5])&&(t.hour=Number(n[5].replace(",","."))),l(n[6])&&(t.minute=Number(n[6].replace(",","."))),l(n[7])){let i=Number(n[7].replace(",","."));t.second=Math.floor(i),t.millisecond=i%1*1e3}}else e[e.length-1]!=="Z"&&(e+="Z"),K.toGregorianDate(K.fromIso8601(e,HYe),t);return t.year||t.month||t.day||t.hour||t.minute||t.second||t.millisecond}var nD=new D_;Fr.fromIso8601=function(e,t){let n=e.iso8601.split("/"),i=K.fromIso8601(n[0]),o=K.fromIso8601(n[1]),r=[];if(!sle(n[2],nD))r.push(i,o);else{let s=K.clone(i);for(r.push(s);K.compare(s,o)<0;)s=Ej(s,nD),K.compare(o,s)<=0&&K.clone(o,s),r.push(s)}return Fr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Fr.fromIso8601DateArray=function(e,t){return Fr.fromJulianDateArray({julianDates:e.iso8601Dates.map(function(n){return K.fromIso8601(n)}),isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};Fr.fromIso8601DurationArray=function(e,t){let n=e.epoch,i=e.iso8601Durations,o=y(e.relativeToPrevious,!1),r=[],s,a,c=i.length;for(let u=0;u<c;++u)(sle(i[u],nD)||u===0)&&(o&&l(a)?s=Ej(a,nD):s=Ej(n,nD),r.push(s),a=s);return Fr.fromJulianDateArray({julianDates:r,isStartIncluded:e.isStartIncluded,isStopIncluded:e.isStopIncluded,leadingInterval:e.leadingInterval,trailingInterval:e.trailingInterval,dataCallback:e.dataCallback},t)};var jr=Fr;function WYe(e,t,n,i){function o(){n.raiseEvent(e)}let r=[];t.removeAll();let s=i.length;for(let a=0;a<s;a++){let c=i.get(a);l(c.data)&&r.indexOf(c.data)===-1&&t.add(c.data.definitionChanged,o)}}function Px(){this._eventHelper=new _r,this._definitionChanged=new me,this._intervals=new jr,this._intervals.changedEvent.addEventListener(Px.prototype._intervalsChanged,this)}Object.defineProperties(Px.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var jYe=new K;Px.prototype.getValue=function(e,t){l(e)||(e=K.now(jYe));let n=this._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Px.prototype.equals=function(e){return this===e||e instanceof Px&&this._intervals.equals(e._intervals,Y.equals)};Px.prototype._intervalsChanged=function(){WYe(this,this._eventHelper,this._definitionChanged,this._intervals),this._definitionChanged.raiseEvent(this)};var Bc=Px;function Xg(){this._definitionChanged=new me,this._composite=new Bc,this._composite.definitionChanged.addEventListener(Xg.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Xg.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite._intervals}}});Xg.prototype.getType=function(e){let t=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(t))return t.getType(e)};var qYe=new K;Xg.prototype.getValue=function(e,t){l(e)||(e=K.now(qYe));let n=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(n))return n.getValue(e,t)};Xg.prototype.equals=function(e){return this===e||e instanceof Xg&&this._composite.equals(e._composite,Y.equals)};Xg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var iD=Xg;function Kg(e){this._referenceFrame=y(e,ki.FIXED),this._definitionChanged=new me,this._composite=new Bc,this._composite.definitionChanged.addEventListener(Kg.prototype._raiseDefinitionChanged,this)}Object.defineProperties(Kg.prototype,{isConstant:{get:function(){return this._composite.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._composite.intervals}},referenceFrame:{get:function(){return this._referenceFrame},set:function(e){this._referenceFrame=e}}});var YYe=new K;Kg.prototype.getValue=function(e,t){return l(e)||(e=K.now(YYe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};Kg.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._composite._intervals.findDataForIntervalContainingDate(e);if(l(i))return i.getValueInReferenceFrame(e,t,n)};Kg.prototype.equals=function(e){return this===e||e instanceof Kg&&this._referenceFrame===e._referenceFrame&&this._composite.equals(e._composite,Y.equals)};Kg.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var Ea=Kg;var XYe={ROUNDED:0,MITERED:1,BEVELED:2},Oi=Object.freeze(XYe);var ra=[new h,new h],KYe=new h,ZYe=new h,$Ye=new h,QYe=new h,JYe=new h,eXe=new h,tXe=new h,nXe=new h,iXe=new h,mC=new h,e3=new h,oD={},vj=new fe;function oXe(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++){let o=e[i];vj=t.cartesianToCartographic(o,vj),n[i]=vj.height,e[i]=t.scaleToGeodeticSurface(o,o)}return n}function wj(e,t,n,i){let o=e[0],r=e[1],s=h.angleBetween(o,r),a=Math.ceil(s/i),c=new Array(a),u;if(t===n){for(u=0;u<a;u++)c[u]=t;return c.push(n),c}let d=(n-t)/a;for(u=1;u<a;u++){let p=t+u*d;c[u]=p}return c[0]=t,c.push(n),c}var t3=new h,n3=new h;function rXe(e,t,n,i){let o=new ts(n,i),r=o.projectPointOntoPlane(h.add(n,e,t3),t3),s=o.projectPointOntoPlane(h.add(n,t,n3),n3),a=U.angleBetween(r,s);return s.x*r.y-s.y*r.x>=0?-a:a}var sXe=new h(-1,0,0),Rx=new F,aXe=new F,Dj=new $,cXe=$.IDENTITY.clone(),lXe=new h,uXe=new oe,ale=new h;function Wp(e,t,n,i,o,r,s,a){let c=lXe,u=uXe;Rx=Nt.eastNorthUpToFixedFrame(e,o,Rx),c=F.multiplyByPointAsVector(Rx,sXe,c),c=h.normalize(c,c);let f=rXe(c,t,e,o);Dj=$.fromRotationZ(f,Dj),ale.z=r,Rx=F.multiplyTransformation(Rx,F.fromRotationTranslation(Dj,ale,aXe),Rx);let d=cXe;d[0]=s;for(let p=0;p<a;p++)for(let g=0;g<n.length;g+=3)u=h.fromArray(n,g,u),u=$.multiplyByVector(d,u,u),u=F.multiplyByPoint(Rx,u,u),i.push(u.x,u.y,u.z);return i}var fXe=new h;function Ij(e,t,n,i,o,r,s){for(let a=0;a<e.length;a+=3){let c=h.fromArray(e,a,fXe);i=Wp(c,t,n,i,o,r[a/3],s,1)}return i}function dXe(e,t){let n=e.length,i=new Array(n*6),o=0,r=t.x+t.width/2,s=t.y+t.height/2,a=e[0];i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s;for(let c=1;c<n;c++){a=e[c];let u=a.x-r,f=a.y-s;i[o++]=u,i[o++]=0,i[o++]=f,i[o++]=u,i[o++]=0,i[o++]=f}return a=e[0],i[o++]=a.x-r,i[o++]=0,i[o++]=a.y-s,i}function cle(e,t){let n=e.length,i=new Array(n*3),o=0,r=t.x+t.width/2,s=t.y+t.height/2;for(let a=0;a<n;a++)i[o++]=e[a].x-r,i[o++]=0,i[o++]=e[a].y-s;return i}var lle=new Me,ule=new h,fle=new $;function dle(e,t,n,i,o,r,s,a,c,u){let f=h.angleBetween(h.subtract(t,e,mC),h.subtract(n,e,e3)),d=i===Oi.BEVELED?0:Math.ceil(f/P.toRadians(5)),p;o?p=$.fromQuaternion(Me.fromAxisAngle(h.negate(e,mC),f/(d+1),lle),fle):p=$.fromQuaternion(Me.fromAxisAngle(e,f/(d+1),lle),fle);let g,m;if(t=h.clone(t,ule),d>0){let x=u?2:1;for(let b=0;b<d;b++)t=$.multiplyByVector(p,t,t),g=h.subtract(t,e,mC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,e3),s=Wp(m,g,a,s,r,c,1,x)}else g=h.subtract(t,e,mC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(t,e3),s=Wp(m,g,a,s,r,c,1,1),n=h.clone(n,ule),g=h.subtract(n,e,mC),g=h.normalize(g,g),o||(g=h.negate(g,g)),m=r.scaleToGeodeticSurface(n,e3),s=Wp(m,g,a,s,r,c,1,1);return s}oD.removeDuplicatesFromShape=function(e){let t=e.length,n=[];for(let i=t-1,o=0;o<t;i=o++){let r=e[i],s=e[o];U.equals(r,s)||n.push(s)}return n};oD.angleIsGreaterThanPi=function(e,t,n,i){let o=new ts(n,i),r=o.projectPointOntoPlane(h.add(n,e,t3),t3),s=o.projectPointOntoPlane(h.add(n,t,n3),n3);return s.x*r.y-s.y*r.x>=0};var hXe=new h,mXe=new h;oD.computePositions=function(e,t,n,i,o){let r=i._ellipsoid,s=oXe(e,r),a=i._granularity,c=i._cornerType,u=o?dXe(t,n):cle(t,n),f=o?cle(t,n):void 0,d=n.height/2,p=n.width/2,g=e.length,m=[],x=o?[]:void 0,b=KYe,T=ZYe,A=$Ye,C=QYe,S=JYe,v=eXe,D=tXe,O=nXe,R=iXe,M=e[0],L=e[1];C=r.geodeticSurfaceNormal(M,C),b=h.subtract(L,M,b),b=h.normalize(b,b),O=h.cross(C,b,O),O=h.normalize(O,O);let _=s[0],E=s[1];o&&(x=Wp(M,O,f,x,r,_+d,1,1)),R=h.clone(M,R),M=L,T=h.negate(b,T);let w,I;for(let H=1;H<g-1;H++){let V=o?2:1;if(L=e[H+1],M.equals(L)){At("Positions are too close and are considered equivalent with rounding error.");continue}b=h.subtract(L,M,b),b=h.normalize(b,b),C=r.geodeticSurfaceNormal(M,C);let G=h.multiplyByScalar(C,h.dot(b,C),hXe);h.subtract(b,G,G),h.normalize(G,G);let k=h.multiplyByScalar(C,h.dot(T,C),mXe);if(h.subtract(T,k,k),h.normalize(k,k),!P.equalsEpsilon(Math.abs(h.dot(G,k)),1,P.EPSILON7)){A=h.add(b,T,A),A=h.normalize(A,A),A=h.cross(A,C,A),A=h.cross(C,A,A),A=h.normalize(A,A);let q=1/Math.max(.25,h.magnitude(h.cross(A,T,mC))),J=oD.angleIsGreaterThanPi(b,T,M,r);J?(S=h.add(M,h.multiplyByScalar(A,q*p,A),S),v=h.add(S,h.multiplyByScalar(O,p,v),v),ra[0]=h.clone(R,ra[0]),ra[1]=h.clone(v,ra[1]),w=wj(ra,_+d,E+d,a),I=Ri.generateArc({positions:ra,granularity:a,ellipsoid:r}),m=Ij(I,O,u,m,r,w,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,p,D),D),c===Oi.ROUNDED||c===Oi.BEVELED?dle(S,v,D,c,J,r,m,u,E+d,o):(A=h.negate(A,A),m=Wp(M,A,u,m,r,E+d,q,V)),R=h.clone(D,R)):(S=h.add(M,h.multiplyByScalar(A,q*p,A),S),v=h.add(S,h.multiplyByScalar(O,-p,v),v),ra[0]=h.clone(R,ra[0]),ra[1]=h.clone(v,ra[1]),w=wj(ra,_+d,E+d,a),I=Ri.generateArc({positions:ra,granularity:a,ellipsoid:r}),m=Ij(I,O,u,m,r,w,1),O=h.cross(C,b,O),O=h.normalize(O,O),D=h.add(S,h.multiplyByScalar(O,-p,D),D),c===Oi.ROUNDED||c===Oi.BEVELED?dle(S,v,D,c,J,r,m,u,E+d,o):m=Wp(M,A,u,m,r,E+d,q,V),R=h.clone(D,R)),T=h.negate(b,T)}else m=Wp(R,O,u,m,r,_+d,1,1),R=M;_=E,E=s[H+1],M=L}ra[0]=h.clone(R,ra[0]),ra[1]=h.clone(M,ra[1]),w=wj(ra,_+d,E+d,a),I=Ri.generateArc({positions:ra,granularity:a,ellipsoid:r}),m=Ij(I,O,u,m,r,w,1),o&&(x=Wp(M,O,f,x,r,E+d,1,1)),g=m.length;let N=o?g+x.length:g,B=new Float64Array(N);return B.set(m),o&&B.set(x,g),B};var Jh=oD;var Rj={},pC=new h,gle=new h,pXe=new h,hle=new h,kc=[new h,new h],yle=new h,xle=new h,ble=new h,_Xe=new h,gXe=new h,yXe=new h,xXe=new h,bXe=new h,TXe=new h,AXe=new h,mle=new Me,ple=new $;function i3(e,t,n,i,o){let r=h.angleBetween(h.subtract(t,e,pC),h.subtract(n,e,gle)),s=i===Oi.BEVELED?1:Math.ceil(r/P.toRadians(5))+1,a=s*3,c=new Array(a);c[a-3]=n.x,c[a-2]=n.y,c[a-1]=n.z;let u;o?u=$.fromQuaternion(Me.fromAxisAngle(h.negate(e,pC),r/s,mle),ple):u=$.fromQuaternion(Me.fromAxisAngle(e,r/s,mle),ple);let f=0;t=h.clone(t,pC);for(let d=0;d<s;d++)t=$.multiplyByVector(u,t,t),c[f++]=t.x,c[f++]=t.y,c[f++]=t.z;return c}function CXe(e){let t=yle,n=xle,i=ble,o=e[1];n=h.fromArray(e[1],o.length-3,n),i=h.fromArray(e[0],0,i),t=h.midpoint(n,i,t);let r=i3(t,n,i,Oi.ROUNDED,!1),s=e.length-1,a=e[s-1];o=e[s],n=h.fromArray(a,a.length-3,n),i=h.fromArray(o,0,i),t=h.midpoint(n,i,t);let c=i3(t,n,i,Oi.ROUNDED,!1);return[r,c]}function _le(e,t,n,i){let o=pC;return i?o=h.add(e,t,o):(t=h.negate(t,t),o=h.add(e,t,o)),[o.x,o.y,o.z,n.x,n.y,n.z]}function Pj(e,t,n,i){let o=new Array(e.length),r=new Array(e.length),s=h.multiplyByScalar(t,n,pC),a=h.negate(s,gle),c=0,u=e.length-1;for(let f=0;f<e.length;f+=3){let d=h.fromArray(e,f,pXe),p=h.add(d,a,hle);o[c++]=p.x,o[c++]=p.y,o[c++]=p.z;let g=h.add(d,s,hle);r[u--]=g.z,r[u--]=g.y,r[u--]=g.x}return i.push(o,r),i}Rj.addAttribute=function(e,t,n,i){let o=t.x,r=t.y,s=t.z;l(n)&&(e[n]=o,e[n+1]=r,e[n+2]=s),l(i)&&(e[i]=s,e[i-1]=r,e[i-2]=o)};var EXe=new h,SXe=new h;Rj.computePositions=function(e){let t=e.granularity,n=e.positions,i=e.ellipsoid,o=e.width/2,r=e.cornerType,s=e.saveAttributes,a=yle,c=xle,u=ble,f=_Xe,d=gXe,p=yXe,g=xXe,m=bXe,x=TXe,b=AXe,T=[],A=s?[]:void 0,C=s?[]:void 0,S=n[0],v=n[1];c=h.normalize(h.subtract(v,S,c),c),a=i.geodeticSurfaceNormal(S,a),f=h.normalize(h.cross(a,c,f),f),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),g=h.clone(S,g),S=v,u=h.negate(c,u);let D,O=[],R,M=n.length;for(R=1;R<M-1;R++){a=i.geodeticSurfaceNormal(S,a),v=n[R+1],c=h.normalize(h.subtract(v,S,c),c);let _=h.multiplyByScalar(a,h.dot(c,a),EXe);h.subtract(c,_,_),h.normalize(_,_);let E=h.multiplyByScalar(a,h.dot(u,a),SXe);if(h.subtract(u,E,E),h.normalize(E,E),!P.equalsEpsilon(Math.abs(h.dot(_,E)),1,P.EPSILON7)){d=h.normalize(h.add(c,u,d),d),d=h.cross(d,a,d),d=h.cross(a,d,d),d=h.normalize(d,d);let I=o/Math.max(.25,h.magnitude(h.cross(d,u,pC))),N=Jh.angleIsGreaterThanPi(c,u,S,i);d=h.multiplyByScalar(d,I,d),N?(m=h.add(S,d,m),b=h.add(m,h.multiplyByScalar(f,o,b),b),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),kc[0]=h.clone(g,kc[0]),kc[1]=h.clone(b,kc[1]),D=Ri.generateArc({positions:kc,granularity:t,ellipsoid:i}),T=Pj(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),p=h.clone(x,p),f=h.normalize(h.cross(a,c,f),f),x=h.add(m,h.multiplyByScalar(f,o*2,x),x),g=h.add(m,h.multiplyByScalar(f,o,g),g),r===Oi.ROUNDED||r===Oi.BEVELED?O.push({leftPositions:i3(m,p,x,r,N)}):O.push({leftPositions:_le(S,h.negate(d,d),x,N)})):(x=h.add(S,d,x),b=h.add(x,h.negate(h.multiplyByScalar(f,o,b),b),b),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),kc[0]=h.clone(g,kc[0]),kc[1]=h.clone(b,kc[1]),D=Ri.generateArc({positions:kc,granularity:t,ellipsoid:i}),T=Pj(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z)),p=h.clone(m,p),f=h.normalize(h.cross(a,c,f),f),m=h.add(x,h.negate(h.multiplyByScalar(f,o*2,m),m),m),g=h.add(x,h.negate(h.multiplyByScalar(f,o,g),g),g),r===Oi.ROUNDED||r===Oi.BEVELED?O.push({rightPositions:i3(x,p,m,r,N)}):O.push({rightPositions:_le(S,d,m,N)})),u=h.negate(c,u)}S=v}a=i.geodeticSurfaceNormal(S,a),kc[0]=h.clone(g,kc[0]),kc[1]=h.clone(S,kc[1]),D=Ri.generateArc({positions:kc,granularity:t,ellipsoid:i}),T=Pj(D,f,o,T),s&&(A.push(f.x,f.y,f.z),C.push(a.x,a.y,a.z));let L;return r===Oi.ROUNDED&&(L=CXe(T)),{positions:T,corners:O,lefts:A,normals:C,endPositions:L}};var Ui=Rj;var Cle=new h,Ele=new h,o3=new h,r3=new h,vXe=new h,Sle=new h,Zg=new h,_C=new h;function vle(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Sd(e,t,n,i,o,r){let s=e.normals,a=e.tangents,c=e.bitangents,u=h.normalize(h.cross(n,t,Zg),Zg);r.normal&&Ui.addAttribute(s,t,i,o),r.tangent&&Ui.addAttribute(a,u,i,o),r.bitangent&&Ui.addAttribute(c,n,i,o)}function wle(e,t,n){let i=e.positions,o=e.corners,r=e.endPositions,s=e.lefts,a=e.normals,c=new dn,u,f=0,d=0,p,g=0,m;for(p=0;p<i.length;p+=2)m=i[p].length-3,f+=m,g+=m*2,d+=i[p+1].length-3;for(f+=3,d+=3,p=0;p<o.length;p++){u=o[p];let Q=o[p].leftPositions;l(Q)?(m=Q.length,f+=m,g+=m):(m=o[p].rightPositions.length,d+=m,g+=m)}let x=l(r),b;x&&(b=r[0].length-3,f+=b,d+=b,b/=3,g+=b*6);let T=f+d,A=new Float64Array(T),C=t.normal?new Float32Array(T):void 0,S=t.tangent?new Float32Array(T):void 0,v=t.bitangent?new Float32Array(T):void 0,D={normals:C,tangents:S,bitangents:v},O=0,R=T-1,M,L,_,E,w=Cle,I=Ele,N,B,H=b/2,V=Ne.createTypedArray(T/3,g),G=0;if(x){B=o3,N=r3;let Q=r[0];for(w=h.fromArray(a,0,w),I=h.fromArray(s,0,I),p=0;p<H;p++)B=h.fromArray(Q,(H-1-p)*3,B),N=h.fromArray(Q,(H+p)*3,N),Ui.addAttribute(A,N,O),Ui.addAttribute(A,B,void 0,R),Sd(D,w,I,O,R,t),L=O/3,E=L+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=E,O+=3,R-=3}let k=0,W=0,q=i[k++],J=i[k++];A.set(q,O),A.set(J,R-J.length+1),I=h.fromArray(s,W,I);let j,Z;for(m=J.length-3,p=0;p<m;p+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,p,Zg),Zg),Z=n.geodeticSurfaceNormal(h.fromArray(J,m-p,_C),_C),w=h.normalize(h.add(j,Z,w),w),Sd(D,w,I,O,R,t),L=O/3,E=L+1,M=(R-2)/3,_=M-1,V[G++]=M,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=E,O+=3,R-=3;for(j=n.geodeticSurfaceNormal(h.fromArray(q,m,Zg),Zg),Z=n.geodeticSurfaceNormal(h.fromArray(J,m,_C),_C),w=h.normalize(h.add(j,Z,w),w),W+=3,p=0;p<o.length;p++){let Q;u=o[p];let de=u.leftPositions,ye=u.rightPositions,ae,_e,xe=Sle,Ie=o3,Ce=r3;if(w=h.fromArray(a,W,w),l(de)){for(Sd(D,w,I,void 0,R,t),R-=3,ae=E,_e=_,Q=0;Q<de.length/3;Q++)xe=h.fromArray(de,Q*3,xe),V[G++]=ae,V[G++]=_e-Q-1,V[G++]=_e-Q,Ui.addAttribute(A,xe,void 0,R),Ie=h.fromArray(A,(_e-Q-1)*3,Ie),Ce=h.fromArray(A,ae*3,Ce),I=h.normalize(h.subtract(Ie,Ce,I),I),Sd(D,w,I,void 0,R,t),R-=3;xe=h.fromArray(A,ae*3,xe),Ie=h.subtract(h.fromArray(A,_e*3,Ie),xe,Ie),Ce=h.subtract(h.fromArray(A,(_e-Q)*3,Ce),xe,Ce),I=h.normalize(h.add(Ie,Ce,I),I),Sd(D,w,I,O,void 0,t),O+=3}else{for(Sd(D,w,I,O,void 0,t),O+=3,ae=_,_e=E,Q=0;Q<ye.length/3;Q++)xe=h.fromArray(ye,Q*3,xe),V[G++]=ae,V[G++]=_e+Q,V[G++]=_e+Q+1,Ui.addAttribute(A,xe,O),Ie=h.fromArray(A,ae*3,Ie),Ce=h.fromArray(A,(_e+Q)*3,Ce),I=h.normalize(h.subtract(Ie,Ce,I),I),Sd(D,w,I,O,void 0,t),O+=3;xe=h.fromArray(A,ae*3,xe),Ie=h.subtract(h.fromArray(A,(_e+Q)*3,Ie),xe,Ie),Ce=h.subtract(h.fromArray(A,_e*3,Ce),xe,Ce),I=h.normalize(h.negate(h.add(Ce,Ie,I),I),I),Sd(D,w,I,void 0,R,t),R-=3}for(q=i[k++],J=i[k++],q.splice(0,3),J.splice(J.length-3,3),A.set(q,O),A.set(J,R-J.length+1),m=J.length-3,W+=3,I=h.fromArray(s,W,I),Q=0;Q<J.length;Q+=3)j=n.geodeticSurfaceNormal(h.fromArray(q,Q,Zg),Zg),Z=n.geodeticSurfaceNormal(h.fromArray(J,m-Q,_C),_C),w=h.normalize(h.add(j,Z,w),w),Sd(D,w,I,O,R,t),E=O/3,L=E-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=E,O+=3,R-=3;O-=3,R+=3}if(w=h.fromArray(a,a.length-3,w),Sd(D,w,I,O,R,t),x){O+=3,R-=3,B=o3,N=r3;let Q=r[1];for(p=0;p<H;p++)B=h.fromArray(Q,(b-p-1)*3,B),N=h.fromArray(Q,p*3,N),Ui.addAttribute(A,B,void 0,R),Ui.addAttribute(A,N,O),Sd(D,w,I,O,R,t),E=O/3,L=E-1,_=(R-2)/3,M=_+1,V[G++]=M,V[G++]=L,V[G++]=_,V[G++]=_,V[G++]=L,V[G++]=E,O+=3,R-=3}if(c.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:A}),t.st){let Q=new Float32Array(T/3*2),de,ye,ae=0;if(x){f/=3,d/=3;let _e=Math.PI/(b+1);ye=1/(f-b+1),de=1/(d-b+1);let xe,Ie=b/2;for(p=Ie+1;p<b+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=1;p<d-b+1;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=b;p>Ie;p--)xe=P.PI_OVER_TWO-p*_e,Q[ae++]=1-de*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=Ie;p>0;p--)xe=P.PI_OVER_TWO-_e*p,Q[ae++]=1-ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe));for(p=f-b;p>0;p--)Q[ae++]=p*ye,Q[ae++]=1;for(p=1;p<Ie+1;p++)xe=P.PI_OVER_TWO+_e*p,Q[ae++]=ye*(1+Math.cos(xe)),Q[ae++]=.5*(1+Math.sin(xe))}else{for(f/=3,d/=3,ye=1/(f-1),de=1/(d-1),p=0;p<d;p++)Q[ae++]=p*de,Q[ae++]=0;for(p=f;p>0;p--)Q[ae++]=(p-1)*ye,Q[ae++]=1}c.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:Q})}return t.normal&&(c.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.normals})),t.tangent&&(c.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.tangents})),t.bitangent&&(c.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:D.bitangents})),{attributes:c,indices:V}}function wXe(e,t){if(!t.normal&&!t.tangent&&!t.bitangent&&!t.st)return e;let n=e.position.values,i,o;(t.normal||t.bitangent)&&(i=e.normal.values,o=e.bitangent.values);let r=e.position.values.length/18,s=r*3,a=r*2,c=s*2,u;if(t.normal||t.bitangent||t.tangent){let f=t.normal?new Float32Array(s*6):void 0,d=t.tangent?new Float32Array(s*6):void 0,p=t.bitangent?new Float32Array(s*6):void 0,g=Cle,m=Ele,x=o3,b=r3,T=vXe,A=Sle,C=c;for(u=0;u<s;u+=3){let S=C+c;g=h.fromArray(n,u,g),m=h.fromArray(n,u+s,m),x=h.fromArray(n,(u+3)%s,x),m=h.subtract(m,g,m),x=h.subtract(x,g,x),b=h.normalize(h.cross(m,x,b),b),t.normal&&(Ui.addAttribute(f,b,S),Ui.addAttribute(f,b,S+3),Ui.addAttribute(f,b,C),Ui.addAttribute(f,b,C+3)),(t.tangent||t.bitangent)&&(A=h.fromArray(i,u,A),t.bitangent&&(Ui.addAttribute(p,A,S),Ui.addAttribute(p,A,S+3),Ui.addAttribute(p,A,C),Ui.addAttribute(p,A,C+3)),t.tangent&&(T=h.normalize(h.cross(A,b,T),T),Ui.addAttribute(d,T,S),Ui.addAttribute(d,T,S+3),Ui.addAttribute(d,T,C),Ui.addAttribute(d,T,C+3))),C+=6}if(t.normal){for(f.set(i),u=0;u<s;u+=3)f[u+s]=-i[u],f[u+s+1]=-i[u+1],f[u+s+2]=-i[u+2];e.normal.values=f}else e.normal=void 0;if(t.bitangent?(p.set(o),p.set(o,s),e.bitangent.values=p):e.bitangent=void 0,t.tangent){let S=e.tangent.values;d.set(S),d.set(S,s),e.tangent.values=d}}if(t.st){let f=e.st.values,d=new Float32Array(a*6);d.set(f),d.set(f,a);let p=a*2;for(let g=0;g<2;g++){for(d[p++]=f[0],d[p++]=f[1],u=2;u<a;u+=2){let m=f[u],x=f[u+1];d[p++]=m,d[p++]=x,d[p++]=m,d[p++]=x}d[p++]=f[0],d[p++]=f[1]}e.st.values=d}return e}function Oj(e,t,n){n[t++]=e[0],n[t++]=e[1],n[t++]=e[2];for(let i=3;i<e.length;i+=3){let o=e[i],r=e[i+1],s=e[i+2];n[t++]=o,n[t++]=r,n[t++]=s,n[t++]=o,n[t++]=r,n[t++]=s}return n[t++]=e[0],n[t++]=e[1],n[t++]=e[2],n}function DXe(e,t){let n=new Pe({position:t.position,normal:t.normal||t.bitangent||e.shadowVolume,tangent:t.tangent,bitangent:t.normal||t.bitangent,st:t.st}),i=e.ellipsoid,o=Ui.computePositions(e),r=wle(o,n,i),s=e.height,a=e.extrudedHeight,c=r.attributes,u=r.indices,f=c.position.values,d=f.length,p=new Float64Array(d*6),g=new Float64Array(d);g.set(f);let m=new Float64Array(d*4);f=ri.scaleToGeodeticHeight(f,s,i),m=Oj(f,0,m),g=ri.scaleToGeodeticHeight(g,a,i),m=Oj(g,d*2,m),p.set(f),p.set(g,d),p.set(m,d*2),c.position.values=p,c=wXe(c,t);let x,b=d/3;if(e.shadowVolume){let M=c.normal.values;d=M.length;let L=new Float32Array(d*6);for(x=0;x<d;x++)M[x]=-M[x];L.set(M,d),L=Oj(M,d*4,L),c.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:L}),t.normal||(c.normal=void 0)}if(l(e.offsetAttribute)){let M=new Uint8Array(b*6);if(e.offsetAttribute===sn.TOP)M=M.fill(1,0,b).fill(1,b*2,b*4);else{let L=e.offsetAttribute===sn.NONE?0:1;M=M.fill(L)}c.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:M})}let T=u.length,A=b+b,C=Ne.createTypedArray(p.length/3,T*2+A*3);C.set(u);let S=T;for(x=0;x<T;x+=3){let M=u[x],L=u[x+1],_=u[x+2];C[S++]=_+b,C[S++]=L+b,C[S++]=M+b}let v,D,O,R;for(x=0;x<A;x+=2)v=x+A,D=v+A,O=v+1,R=D+1,C[S++]=v,C[S++]=D,C[S++]=O,C[S++]=O,C[S++]=D,C[S++]=R;return{attributes:c,indices:C}}var Tle=new h,rD=new h,Ef=new fe;function Ale(e,t,n,i,o,r){let s=h.subtract(t,e,Tle);h.normalize(s,s);let a=n.geodeticSurfaceNormal(e,rD),c=h.cross(s,a,Tle);h.multiplyByScalar(c,i,c);let u=o.latitude,f=o.longitude,d=r.latitude,p=r.longitude;h.add(e,c,rD),n.cartesianToCartographic(rD,Ef);let g=Ef.latitude,m=Ef.longitude;u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),h.subtract(e,c,rD),n.cartesianToCartographic(rD,Ef),g=Ef.latitude,m=Ef.longitude,u=Math.min(u,g),f=Math.min(f,m),d=Math.max(d,g),p=Math.max(p,m),o.latitude=u,o.longitude=f,r.latitude=d,r.longitude=p}var Cf=new h,sD=new h,Tl=new fe,Al=new fe;function Dle(e,t,n,i,o){e=vle(e,t);let r=bo(e,h.equalsEpsilon),s=r.length;if(s<2||n<=0)return new re;let a=n*.5;Tl.latitude=Number.POSITIVE_INFINITY,Tl.longitude=Number.POSITIVE_INFINITY,Al.latitude=Number.NEGATIVE_INFINITY,Al.longitude=Number.NEGATIVE_INFINITY;let c,u;if(i===Oi.ROUNDED){let p=r[0];h.subtract(p,r[1],Cf),h.normalize(Cf,Cf),h.multiplyByScalar(Cf,a,Cf),h.add(p,Cf,sD),t.cartesianToCartographic(sD,Ef),c=Ef.latitude,u=Ef.longitude,Tl.latitude=Math.min(Tl.latitude,c),Tl.longitude=Math.min(Tl.longitude,u),Al.latitude=Math.max(Al.latitude,c),Al.longitude=Math.max(Al.longitude,u)}for(let p=0;p<s-1;++p)Ale(r[p],r[p+1],t,a,Tl,Al);let f=r[s-1];h.subtract(f,r[s-2],Cf),h.normalize(Cf,Cf),h.multiplyByScalar(Cf,a,Cf),h.add(f,Cf,sD),Ale(f,sD,t,a,Tl,Al),i===Oi.ROUNDED&&(t.cartesianToCartographic(sD,Ef),c=Ef.latitude,u=Ef.longitude,Tl.latitude=Math.min(Tl.latitude,c),Tl.longitude=Math.min(Tl.longitude,u),Al.latitude=Math.max(Al.latitude,c),Al.longitude=Math.max(Al.longitude,u));let d=l(o)?o:new re;return d.north=Al.latitude,d.south=Tl.latitude,d.east=Al.longitude,d.west=Tl.longitude,d}function qp(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Oi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createCorridorGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this.packedLength=1+t.length*h.packedLength+ee.packedLength+Pe.packedLength+7}qp.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Ile=ee.clone(ee.UNIT_SPHERE),Ple=new Pe,jp={positions:void 0,ellipsoid:Ile,vertexFormat:Ple,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,shadowVolume:void 0,offsetAttribute:void 0};qp.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let m=0;m<i;++m,t+=h.packedLength)o[m]=h.unpack(e,t);let r=ee.unpack(e,t,Ile);t+=ee.packedLength;let s=Pe.unpack(e,t,Ple);t+=Pe.packedLength;let a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++]===1,g=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._vertexFormat=Pe.clone(s,n._vertexFormat),n._width=a,n._height=c,n._extrudedHeight=u,n._cornerType=f,n._granularity=d,n._shadowVolume=p,n._offsetAttribute=g===-1?void 0:g,n):(jp.positions=o,jp.width=a,jp.height=c,jp.extrudedHeight=u,jp.cornerType=f,jp.granularity=d,jp.shadowVolume=p,jp.offsetAttribute=g===-1?void 0:g,new qp(jp))};qp.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.positions,i=e.width,o=y(e.ellipsoid,ee.default),r=y(e.cornerType,Oi.ROUNDED);return Dle(n,o,i,r,t)};qp.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=vle(t,i);let o=bo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c=e._vertexFormat,u={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!0},f;if(a)u.height=r,u.extrudedHeight=s,u.shadowVolume=e._shadowVolume,u.offsetAttribute=e._offsetAttribute,f=DXe(u,c);else{let g=Ui.computePositions(u);if(f=wle(g,c,i),f.attributes.position.values=ri.scaleToGeodeticHeight(f.attributes.position.values,r,i),l(e._offsetAttribute)){let m=e._offsetAttribute===sn.NONE?0:1,x=f.attributes.position.values.length,b=new Uint8Array(x/3).fill(m);f.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}}let d=f.attributes,p=se.fromVertices(d.position.values,void 0,3);return c.position||(f.attributes.position.values=void 0),new ft({attributes:d,indices:f.indices,primitiveType:Le.TRIANGLES,boundingSphere:p,offsetAttribute:e._offsetAttribute})};qp.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new qp({positions:e._positions,width:e._width,cornerType:e._cornerType,ellipsoid:o,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(qp.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=Dle(this._positions,this._ellipsoid,this._width,this._cornerType)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return[0,0,0,1,1,0]}}});var gC=qp;var Rle=new h,Ole=new h,IXe=new h;function PXe(e,t){for(let n=0;n<e.length;n++)e[n]=t.scaleToGeodeticSurface(e[n],e[n]);return e}function Mle(e,t){let n=[],i=e.positions,o=e.corners,r=e.endPositions,s=new dn,a,c=0,u=0,f,d=0,p;for(f=0;f<i.length;f+=2)p=i[f].length-3,c+=p,d+=p/3*4,u+=i[f+1].length-3;for(c+=3,u+=3,f=0;f<o.length;f++){a=o[f];let N=o[f].leftPositions;l(N)?(p=N.length,c+=p,d+=p/3*2):(p=o[f].rightPositions.length,u+=p,d+=p/3*2)}let g=l(r),m;g&&(m=r[0].length-3,c+=m,u+=m,m/=3,d+=m*4);let x=c+u,b=new Float64Array(x),T=0,A=x-1,C,S,v,D,O,R,M=m/2,L=Ne.createTypedArray(x/3,d+4),_=0;if(L[_++]=T/3,L[_++]=(A-2)/3,g){n.push(T/3),R=Rle,O=Ole;let N=r[0];for(f=0;f<M;f++)R=h.fromArray(N,(M-1-f)*3,R),O=h.fromArray(N,(M+f)*3,O),Ui.addAttribute(b,O,T),Ui.addAttribute(b,R,void 0,A),S=T/3,D=S+1,C=(A-2)/3,v=C-1,L[_++]=C,L[_++]=v,L[_++]=S,L[_++]=D,T+=3,A-=3}let E=0,w=i[E++],I=i[E++];for(b.set(w,T),b.set(I,A-I.length+1),p=I.length-3,n.push(T/3,(A-2)/3),f=0;f<p;f+=3)S=T/3,D=S+1,C=(A-2)/3,v=C-1,L[_++]=C,L[_++]=v,L[_++]=S,L[_++]=D,T+=3,A-=3;for(f=0;f<o.length;f++){let N;a=o[f];let B=a.leftPositions,H=a.rightPositions,V,G=IXe;if(l(B)){for(A-=3,V=v,n.push(D),N=0;N<B.length/3;N++)G=h.fromArray(B,N*3,G),L[_++]=V-N-1,L[_++]=V-N,Ui.addAttribute(b,G,void 0,A),A-=3;n.push(V-Math.floor(B.length/6)),t===Oi.BEVELED&&n.push((A-2)/3+1),T+=3}else{for(T+=3,V=D,n.push(v),N=0;N<H.length/3;N++)G=h.fromArray(H,N*3,G),L[_++]=V+N,L[_++]=V+N+1,Ui.addAttribute(b,G,T),T+=3;n.push(V+Math.floor(H.length/6)),t===Oi.BEVELED&&n.push(T/3-1),A-=3}for(w=i[E++],I=i[E++],w.splice(0,3),I.splice(I.length-3,3),b.set(w,T),b.set(I,A-I.length+1),p=I.length-3,N=0;N<I.length;N+=3)D=T/3,S=D-1,v=(A-2)/3,C=v+1,L[_++]=C,L[_++]=v,L[_++]=S,L[_++]=D,T+=3,A-=3;T-=3,A+=3,n.push(T/3,(A-2)/3)}if(g){T+=3,A-=3,R=Rle,O=Ole;let N=r[1];for(f=0;f<M;f++)R=h.fromArray(N,(m-f-1)*3,R),O=h.fromArray(N,f*3,O),Ui.addAttribute(b,R,void 0,A),Ui.addAttribute(b,O,T),D=T/3,S=D-1,v=(A-2)/3,C=v+1,L[_++]=C,L[_++]=v,L[_++]=S,L[_++]=D,T+=3,A-=3;n.push(T/3)}else n.push(T/3,(A-2)/3);return L[_++]=T/3,L[_++]=(A-2)/3,s.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),{attributes:s,indices:L,wallIndices:n}}function RXe(e){let t=e.ellipsoid,n=Ui.computePositions(e),i=Mle(n,e.cornerType),o=i.wallIndices,r=e.height,s=e.extrudedHeight,a=i.attributes,c=i.indices,u=a.position.values,f=u.length,d=new Float64Array(f);d.set(u);let p=new Float64Array(f*2);if(u=ri.scaleToGeodeticHeight(u,r,t),d=ri.scaleToGeodeticHeight(d,s,t),p.set(u),p.set(d,f),a.position.values=p,f/=3,l(e.offsetAttribute)){let C=new Uint8Array(f*2);if(e.offsetAttribute===sn.TOP)C=C.fill(1,0,f);else{let S=e.offsetAttribute===sn.NONE?0:1;C=C.fill(S)}a.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:C})}let g,m=c.length,x=Ne.createTypedArray(p.length/3,(m+o.length)*2);x.set(c);let b=m;for(g=0;g<m;g+=2){let C=c[g],S=c[g+1];x[b++]=C+f,x[b++]=S+f}let T,A;for(g=0;g<o.length;g++)T=o[g],A=T+f,x[b++]=T,x[b++]=A;return{attributes:a,indices:x}}function aD(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.width,i=y(e.height,0),o=y(e.extrudedHeight,i);this._positions=t,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._width=n,this._height=Math.max(i,o),this._extrudedHeight=Math.min(i,o),this._cornerType=y(e.cornerType,Oi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._offsetAttribute=e.offsetAttribute,this._workerName="createCorridorOutlineGeometry",this.packedLength=1+t.length*h.packedLength+ee.packedLength+6}aD.pack=function(e,t,n){n=y(n,0);let i=e._positions,o=i.length;t[n++]=o;for(let r=0;r<o;++r,n+=h.packedLength)h.pack(i[r],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._width,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._cornerType,t[n++]=e._granularity,t[n]=y(e._offsetAttribute,-1),t};var Lle=ee.clone(ee.UNIT_SPHERE),$g={positions:void 0,ellipsoid:Lle,width:void 0,height:void 0,extrudedHeight:void 0,cornerType:void 0,granularity:void 0,offsetAttribute:void 0};aD.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=new Array(i);for(let p=0;p<i;++p,t+=h.packedLength)o[p]=h.unpack(e,t);let r=ee.unpack(e,t,Lle);t+=ee.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t];return l(n)?(n._positions=o,n._ellipsoid=ee.clone(r,n._ellipsoid),n._width=s,n._height=a,n._extrudedHeight=c,n._cornerType=u,n._granularity=f,n._offsetAttribute=d===-1?void 0:d,n):($g.positions=o,$g.width=s,$g.height=a,$g.extrudedHeight=c,$g.cornerType=u,$g.granularity=f,$g.offsetAttribute=d===-1?void 0:d,new aD($g))};aD.createGeometry=function(e){let t=e._positions,n=e._width,i=e._ellipsoid;t=PXe(t,i);let o=bo(t,h.equalsEpsilon);if(o.length<2||n<=0)return;let r=e._height,s=e._extrudedHeight,a=!P.equalsEpsilon(r,s,0,P.EPSILON2),c={ellipsoid:i,positions:o,width:n,cornerType:e._cornerType,granularity:e._granularity,saveAttributes:!1},u;if(a)c.height=r,c.extrudedHeight=s,c.offsetAttribute=e._offsetAttribute,u=RXe(c);else{let p=Ui.computePositions(c);if(u=Mle(p,c.cornerType),u.attributes.position.values=ri.scaleToGeodeticHeight(u.attributes.position.values,r,i),l(e._offsetAttribute)){let g=u.attributes.position.values.length,m=e._offsetAttribute===sn.NONE?0:1,x=new Uint8Array(g/3).fill(m);u.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}}let f=u.attributes,d=se.fromVertices(f.position.values,void 0,3);return new ft({attributes:f,indices:u.indices,primitiveType:Le.LINES,boundingSphere:d,offsetAttribute:e._offsetAttribute})};var s3=aD;var OXe=new Xn(0);function Vc(e){ii.call(this,e),this._zIndex=0,this._terrainOffsetProperty=void 0}l(Object.create)&&(Vc.prototype=Object.create(ii.prototype),Vc.prototype.constructor=Vc);Object.defineProperties(Vc.prototype,{zIndex:{get:function(){return this._zIndex}},terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});Vc.prototype._isOnTerrain=function(e,t){return this._fillEnabled&&!l(t.height)&&!l(t.extrudedHeight)&&dl.isSupported(this._scene)};Vc.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight;return t===0||l(n)&&n!==t};Vc.prototype._computeCenter=he.throwInstantiationError;Vc.prototype._onEntityPropertyChanged=function(e,t,n,i){if(ii.prototype._onEntityPropertyChanged.call(this,e,t,n,i),this._observedPropertyNames.indexOf(t)===-1)return;let o=this._entity[this._geometryPropertyName];if(!l(o))return;l(o.zIndex)&&(l(o.height)||l(o.extrudedHeight))&&At(At.geometryZIndex),this._zIndex=y(o.zIndex,OXe),l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0);let r=o.heightReference,s=o.extrudedHeightReference;if(l(r)||l(s)){let a=new Ih(this._computeCenter.bind(this),!this._dynamic);this._terrainOffsetProperty=new JT(this._scene,a,r,s)}};Vc.prototype.destroy=function(){l(this._terrainOffsetProperty)&&(this._terrainOffsetProperty.destroy(),this._terrainOffsetProperty=void 0),ii.prototype.destroy.call(this)};Vc.getGeometryHeight=function(e,t){if(!l(e)){t!==Ke.NONE&&At(At.geometryHeightReference);return}return Ku(t)?0:e};Vc.getGeometryExtrudedHeight=function(e,t){if(!l(e)){t!==Ke.NONE&&At(At.geometryExtrudedHeightReference);return}return Ku(t)?Vc.CLAMP_TO_GROUND:e};Vc.CLAMP_TO_GROUND="clamp";Vc.computeGeometryOffsetAttribute=function(e,t,n,i){(!l(e)||!l(t))&&(t=Ke.NONE),(!l(n)||!l(i))&&(i=Ke.NONE);let o=0;if(t!==Ke.NONE&&o++,i===Ke.RELATIVE_TO_GROUND&&o++,o===2)return sn.ALL;if(o===1)return sn.TOP};var Gn=Vc;var Nle=new z,Fle=h.ZERO,Ble=new h,kle=new re;function MXe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.cornerType=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.offsetAttribute=void 0}function vd(e,t){Gn.call(this,{entity:e,scene:t,geometryOptions:new MXe(e),geometryPropertyName:"corridor",observedPropertyNames:["availability","corridor"]}),this._onEntityPropertyChanged(e,"corridor",e.corridor,void 0)}l(Object.create)&&(vd.prototype=Object.create(Gn.prototype),vd.prototype.constructor=vd);vd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Gt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,Nle)),l(o)||(o=z.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Fle,Ble))),new vt({id:t,geometry:new gC(this._options),attributes:i})};vd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Nle),o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0};return l(this._options.offsetAttribute)&&(o.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Fle,Ble))),new vt({id:t,geometry:new s3(this._options),attributes:o})};vd.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.corridor.positions,e);if(!(!l(n)||n.length===0))return h.clone(n[Math.floor(n.length/2)],t)};vd.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.width)||ii.prototype._isHidden.call(this,e,t)};vd.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.width)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Gt)};vd.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,Ke.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Gt?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(ze.MINIMUM_VALUE,s.positions),s.width=t.width.getValue(ze.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),s.cornerType=Y.getValueOrUndefined(t.cornerType,ze.MINIMUM_VALUE),s.offsetAttribute=Gn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Gn.getGeometryHeight(n,i),o=Gn.getGeometryExtrudedHeight(o,r),o===Gn.CLAMP_TO_GROUND&&(o=ui.getMinimumMaximumHeights(gC.computeRectangle(s,kle)).minimumTerrainHeight),s.extrudedHeight=o};vd.DynamicGeometryUpdater=yC;function yC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(yC.prototype=Object.create(ni.prototype),yC.prototype.constructor=yC);yC.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.positions)||!l(i.width)||ni.prototype._isHidden.call(this,e,t,n)};yC.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ke.NONE);l(s)&&!l(o)&&(o=0),i.positions=Y.getValueOrUndefined(t.positions,n),i.width=Y.getValueOrUndefined(t.width,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n),i.offsetAttribute=Gn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Gn.getGeometryHeight(o,r),s=Gn.getGeometryExtrudedHeight(s,a),s===Gn.CLAMP_TO_GROUND&&(s=ui.getMinimumMaximumHeights(gC.computeRectangle(i,kle)).minimumTerrainHeight),i.extrudedHeight=s};var a3=vd;function c3(){he.throwInstantiationError()}Object.defineProperties(c3.prototype,{name:{get:he.throwInstantiationError},clock:{get:he.throwInstantiationError},entities:{get:he.throwInstantiationError},isLoading:{get:he.throwInstantiationError},changedEvent:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},loadingEvent:{get:he.throwInstantiationError},show:{get:he.throwInstantiationError},clustering:{get:he.throwInstantiationError}});c3.prototype.update=function(e){he.throwInstantiationError()};c3.setLoading=function(e,t){e._isLoading!==t&&(t?e._entityCollection.suspendEvents():e._entityCollection.resumeEvents(),e._isLoading=t,e._loading.raiseEvent(e,t))};var qr=c3;function em(e,t){this._ellipsoid=e,this._cameraPosition=new h,this._cameraPositionInScaledSpace=new h,this._distanceToLimbInScaledSpaceSquared=0,l(t)&&(this.cameraPosition=t)}Object.defineProperties(em.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},cameraPosition:{get:function(){return this._cameraPosition},set:function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,this._cameraPositionInScaledSpace),i=h.magnitudeSquared(n)-1;h.clone(e,this._cameraPosition),this._cameraPositionInScaledSpace=n,this._distanceToLimbInScaledSpaceSquared=i}}});var Vle=new h;em.prototype.isPointVisible=function(e){let n=this._ellipsoid.transformPositionToScaledSpace(e,Vle);return Lj(n,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};em.prototype.isScaledSpacePointVisible=function(e){return Lj(e,this._cameraPositionInScaledSpace,this._distanceToLimbInScaledSpaceSquared)};var LXe=new h;em.prototype.isScaledSpacePointVisiblePossiblyUnderEllipsoid=function(e,t){let n=this._ellipsoid,i,o;return l(t)&&t<0&&n.minimumRadius>-t?(o=LXe,o.x=this._cameraPosition.x/(n.radii.x+t),o.y=this._cameraPosition.y/(n.radii.y+t),o.z=this._cameraPosition.z/(n.radii.z+t),i=o.x*o.x+o.y*o.y+o.z*o.z-1):(o=this._cameraPositionInScaledSpace,i=this._distanceToLimbInScaledSpaceSquared),Lj(e,o,i)};em.prototype.computeHorizonCullingPoint=function(e,t,n){return Hle(this._ellipsoid,e,t,n)};var Ule=ee.clone(ee.UNIT_SPHERE);em.prototype.computeHorizonCullingPointPossiblyUnderEllipsoid=function(e,t,n,i){let o=zle(this._ellipsoid,n,Ule);return Hle(o,e,t,i)};em.prototype.computeHorizonCullingPointFromVertices=function(e,t,n,i,o){return Gle(this._ellipsoid,e,t,n,i,o)};em.prototype.computeHorizonCullingPointFromVerticesPossiblyUnderEllipsoid=function(e,t,n,i,o,r){let s=zle(this._ellipsoid,o,Ule);return Gle(s,e,t,n,i,r)};var NXe=[];em.prototype.computeHorizonCullingPointFromRectangle=function(e,t,n){let i=re.subsample(e,t,0,NXe),o=se.fromPoints(i);if(!(h.magnitude(o.center)<.1*t.minimumRadius))return this.computeHorizonCullingPoint(o.center,i,n)};var FXe=new h;function zle(e,t,n){if(l(t)&&t<0&&e.minimumRadius>-t){let i=h.fromElements(e.radii.x+t,e.radii.y+t,e.radii.z+t,FXe);e=ee.fromCartesian3(i,n)}return e}function Hle(e,t,n,i){l(i)||(i=new h);let o=qle(e,t),r=0;for(let s=0,a=n.length;s<a;++s){let c=n[s],u=Wle(e,c,o);if(u<0)return;r=Math.max(r,u)}return jle(o,r,i)}var l3=new h;function Gle(e,t,n,i,o,r){l(r)||(r=new h),i=y(i,3),o=y(o,h.ZERO);let s=qle(e,t),a=0;for(let c=0,u=n.length;c<u;c+=i){l3.x=n[c]+o.x,l3.y=n[c+1]+o.y,l3.z=n[c+2]+o.z;let f=Wle(e,l3,s);if(f<0)return;a=Math.max(a,f)}return jle(s,a,r)}function Lj(e,t,n){let i=t,o=n,r=h.subtract(e,i,Vle),s=-h.dot(r,i);return!(o<0?s>0:s>o&&s*s/h.magnitudeSquared(r)>o)}var BXe=new h,kXe=new h;function Wle(e,t,n){let i=e.transformPositionToScaledSpace(t,BXe),o=h.magnitudeSquared(i),r=Math.sqrt(o),s=h.divideByScalar(i,r,kXe);o=Math.max(1,o),r=Math.max(1,r);let a=h.dot(s,n),c=h.magnitude(h.cross(s,n,s)),u=1/r,f=Math.sqrt(o-1)*u;return 1/(a*u-c*f)}function jle(e,t,n){if(!(t<=0||t===1/0||t!==t))return h.multiplyByScalar(e,t,n)}var Mj=new h;function qle(e,t){return h.equals(t,h.ZERO)?t:(e.transformPositionToScaledSpace(t,Mj),h.normalize(Mj,Mj))}var Qg=em;function gr(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.translucencyByDistance,i=e.scaleByDistance,o=e.distanceDisplayCondition;l(n)&&(n=Vt.clone(n)),l(i)&&(i=Vt.clone(i)),l(o)&&(o=Ft.clone(o)),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),this._actualPosition=h.clone(this._position),this._color=z.clone(y(e.color,z.WHITE)),this._outlineColor=z.clone(y(e.outlineColor,z.TRANSPARENT)),this._outlineWidth=y(e.outlineWidth,0),this._pixelSize=y(e.pixelSize,10),this._scaleByDistance=i,this._translucencyByDistance=n,this._distanceDisplayCondition=o,this._disableDepthTestDistance=y(e.disableDepthTestDistance,0),this._id=e.id,this._collection=y(e.collection,t),this._clusterShow=!0,this._pickId=void 0,this._pointPrimitiveCollection=t,this._dirty=!1,this._index=-1,this._splitDirection=y(e.splitDirection,zr.NONE)}var Yle=gr.SHOW_INDEX=0,Zle=gr.POSITION_INDEX=1,VXe=gr.COLOR_INDEX=2,UXe=gr.OUTLINE_COLOR_INDEX=3,zXe=gr.OUTLINE_WIDTH_INDEX=4,HXe=gr.PIXEL_SIZE_INDEX=5,GXe=gr.SCALE_BY_DISTANCE_INDEX=6,WXe=gr.TRANSLUCENCY_BY_DISTANCE_INDEX=7,jXe=gr.DISTANCE_DISPLAY_CONDITION_INDEX=8,qXe=gr.DISABLE_DEPTH_DISTANCE_INDEX=9,YXe=gr.SPLIT_DIRECTION_INDEX=10;gr.NUMBER_OF_PROPERTIES=11;function lu(e,t){let n=e._pointPrimitiveCollection;l(n)&&(n._updatePointPrimitive(e,t),e._dirty=!0)}Object.defineProperties(gr.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,lu(this,Yle))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),h.clone(e,this._actualPosition),lu(this,Zle))}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){let t=this._scaleByDistance;Vt.equals(t,e)||(this._scaleByDistance=Vt.clone(e,t),lu(this,GXe))}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){let t=this._translucencyByDistance;Vt.equals(t,e)||(this._translucencyByDistance=Vt.clone(e,t),lu(this,WXe))}},pixelSize:{get:function(){return this._pixelSize},set:function(e){this._pixelSize!==e&&(this._pixelSize=e,lu(this,HXe))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),lu(this,VXe))}},outlineColor:{get:function(){return this._outlineColor},set:function(e){let t=this._outlineColor;z.equals(t,e)||(z.clone(e,t),lu(this,UXe))}},outlineWidth:{get:function(){return this._outlineWidth},set:function(e){this._outlineWidth!==e&&(this._outlineWidth=e,lu(this,zXe))}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){Ft.equals(this._distanceDisplayCondition,e)||(this._distanceDisplayCondition=Ft.clone(e,this._distanceDisplayCondition),lu(this,jXe))}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance!==e&&(this._disableDepthTestDistance=e,lu(this,qXe))}},id:{get:function(){return this._id},set:function(e){this._id=e,l(this._pickId)&&(this._pickId.object.id=e)}},pickId:{get:function(){return this._pickId}},clusterShow:{get:function(){return this._clusterShow},set:function(e){this._clusterShow!==e&&(this._clusterShow=e,lu(this,Yle))}},splitDirection:{get:function(){return this._splitDirection},set:function(e){this._splitDirection!==e&&(this._splitDirection=e,lu(this,YXe))}}});gr.prototype.getPickId=function(e){return l(this._pickId)||(this._pickId=e.createPickId({primitive:this,collection:this._collection,id:this._id})),this._pickId};gr.prototype._getActualPosition=function(){return this._actualPosition};gr.prototype._setActualPosition=function(e){h.clone(e,this._actualPosition),lu(this,Zle)};var Xle=new oe;gr._computeActualPosition=function(e,t,n){return t.mode===ne.SCENE3D?e:(F.multiplyByPoint(n,e,Xle),Vi.computeActualEllipsoidPosition(t,Xle))};var Kle=new oe;gr._computeScreenSpacePosition=function(e,t,n,i){let o=F.multiplyByVector(e,oe.fromElements(t.x,t.y,t.z,1,Kle),Kle);return Vi.worldToWindowCoordinates(n,o,i)};gr.prototype.computeScreenSpacePosition=function(e,t){let n=this._pointPrimitiveCollection;l(t)||(t=new U);let i=n.modelMatrix,o=gr._computeScreenSpacePosition(i,this._actualPosition,e,t);if(l(o))return o.y=e.canvas.clientHeight-o.y,o};gr.getScreenSpaceBoundingBox=function(e,t,n){let i=e.pixelSize,o=i*.5,r=t.x-o,s=t.y-o,a=i,c=i;return l(n)||(n=new qe),n.x=r,n.y=s,n.width=a,n.height=c,n};gr.prototype.equals=function(e){return this===e||l(e)&&this._id===e._id&&h.equals(this._position,e._position)&&z.equals(this._color,e._color)&&this._pixelSize===e._pixelSize&&this._outlineWidth===e._outlineWidth&&this._show===e._show&&z.equals(this._outlineColor,e._outlineColor)&&Vt.equals(this._scaleByDistance,e._scaleByDistance)&&Vt.equals(this._translucencyByDistance,e._translucencyByDistance)&&Ft.equals(this._distanceDisplayCondition,e._distanceDisplayCondition)&&this._disableDepthTestDistance===e._disableDepthTestDistance&&this._splitDirection===e._splitDirection};gr.prototype._destroy=function(){this._pickId=this._pickId&&this._pickId.destroy(),this._pointPrimitiveCollection=void 0};var Us=gr;var Ox=`in vec4 v_color; +in vec4 v_outlineColor; +in float v_innerPercent; +in float v_pixelDistance; +in vec4 v_pickColor; +in float v_splitDirection; + +void main() +{ + if (v_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (v_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; + + // The distance in UV space from this fragment to the center of the point, at most 0.5. + float distanceToCenter = length(gl_PointCoord - vec2(0.5)); + // The max distance stops one pixel shy of the edge to leave space for anti-aliasing. + float maxDistance = max(0.0, 0.5 - v_pixelDistance); + float wholeAlpha = 1.0 - smoothstep(maxDistance, 0.5, distanceToCenter); + float innerAlpha = 1.0 - smoothstep(maxDistance * v_innerPercent, 0.5 * v_innerPercent, distanceToCenter); + + vec4 color = mix(v_outlineColor, v_color, innerAlpha); + color.a *= wholeAlpha; + +// Fully transparent parts of the billboard are not pickable. +#if !defined(OPAQUE) && !defined(TRANSLUCENT) + if (color.a < 0.005) // matches 0/255 and 1/255 + { + discard; + } +#else +// The billboard is rendered twice. The opaque pass discards translucent fragments +// and the translucent pass discards opaque fragments. +#ifdef OPAQUE + if (color.a < 0.995) // matches < 254/255 + { + discard; + } +#else + if (color.a >= 0.995) // matches 254/255 and 255/255 + { + discard; + } +#endif +#endif + + out_FragColor = czm_gammaCorrect(color); + czm_writeLogDepth(); +} +`;var u3=`uniform float u_maxTotalPointSize; + +in vec4 positionHighAndSize; +in vec4 positionLowAndOutline; +in vec4 compressedAttribute0; // color, outlineColor, pick color +in vec4 compressedAttribute1; // show, translucency by distance, some free space +in vec4 scaleByDistance; // near, nearScale, far, farScale +in vec4 distanceDisplayConditionAndDisableDepthAndSplitDirection; // near, far, disableDepthTestDistance, splitDirection + +out vec4 v_color; +out vec4 v_outlineColor; +out float v_innerPercent; +out float v_pixelDistance; +out vec4 v_pickColor; +out float v_splitDirection; + +const float SHIFT_LEFT8 = 256.0; +const float SHIFT_RIGHT8 = 1.0 / 256.0; + +void main() +{ + // Modifying this shader may also require modifications to PointPrimitive._computeScreenSpacePosition + + // unpack attributes + vec3 positionHigh = positionHighAndSize.xyz; + vec3 positionLow = positionLowAndOutline.xyz; + float outlineWidthBothSides = 2.0 * positionLowAndOutline.w; + float totalSize = positionHighAndSize.w + outlineWidthBothSides; + float outlinePercent = outlineWidthBothSides / totalSize; + // Scale in response to browser-zoom. + totalSize *= czm_pixelRatio; + + float temp = compressedAttribute1.x * SHIFT_RIGHT8; + float show = floor(temp); + +#ifdef EYE_DISTANCE_TRANSLUCENCY + vec4 translucencyByDistance; + translucencyByDistance.x = compressedAttribute1.z; + translucencyByDistance.z = compressedAttribute1.w; + + translucencyByDistance.y = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; + + temp = compressedAttribute1.y * SHIFT_RIGHT8; + translucencyByDistance.w = ((temp - floor(temp)) * SHIFT_LEFT8) / 255.0; +#endif + + /////////////////////////////////////////////////////////////////////////// + + vec4 color; + vec4 outlineColor; + vec4 pickColor; + + // compressedAttribute0.z => pickColor.rgb + + temp = compressedAttribute0.z * SHIFT_RIGHT8; + pickColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + pickColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor.r = floor(temp); + + // compressedAttribute0.x => color.rgb + + temp = compressedAttribute0.x * SHIFT_RIGHT8; + color.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + color.g = (temp - floor(temp)) * SHIFT_LEFT8; + color.r = floor(temp); + + // compressedAttribute0.y => outlineColor.rgb + + temp = compressedAttribute0.y * SHIFT_RIGHT8; + outlineColor.b = (temp - floor(temp)) * SHIFT_LEFT8; + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.g = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor.r = floor(temp); + + // compressedAttribute0.w => color.a, outlineColor.a, pickColor.a + + temp = compressedAttribute0.w * SHIFT_RIGHT8; + pickColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + pickColor = pickColor / 255.0; + + temp = floor(temp) * SHIFT_RIGHT8; + outlineColor.a = (temp - floor(temp)) * SHIFT_LEFT8; + outlineColor /= 255.0; + color.a = floor(temp); + color /= 255.0; + + /////////////////////////////////////////////////////////////////////////// + + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + + /////////////////////////////////////////////////////////////////////////// + +#if defined(EYE_DISTANCE_SCALING) || defined(EYE_DISTANCE_TRANSLUCENCY) || defined(DISTANCE_DISPLAY_CONDITION) || defined(DISABLE_DEPTH_DISTANCE) + float lengthSq; + if (czm_sceneMode == czm_sceneMode2D) + { + // 2D camera distance is a special case + // treat all billboards as flattened to the z=0.0 plane + lengthSq = czm_eyeHeight2D.y; + } + else + { + lengthSq = dot(positionEC.xyz, positionEC.xyz); + } +#endif + +#ifdef EYE_DISTANCE_SCALING + totalSize *= czm_nearFarScalar(scaleByDistance, lengthSq); +#endif + if (totalSize > 0.0) { + // Add padding for anti-aliasing on both sides. + totalSize += 3.0; + } + + // Clamp to max point size. + totalSize = min(totalSize, u_maxTotalPointSize); + // If size is too small, push vertex behind near plane for clipping. + // Note that context.minimumAliasedPointSize "will be at most 1.0". + if (totalSize < 1.0) + { + positionEC.xyz = vec3(0.0); + totalSize = 1.0; + } + + float translucency = 1.0; +#ifdef EYE_DISTANCE_TRANSLUCENCY + translucency = czm_nearFarScalar(translucencyByDistance, lengthSq); + // push vertex behind near plane for clipping + if (translucency < 0.004) + { + positionEC.xyz = vec3(0.0); + } +#endif + +#ifdef DISTANCE_DISPLAY_CONDITION + float nearSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.x; + float farSq = distanceDisplayConditionAndDisableDepthAndSplitDirection.y; + if (lengthSq < nearSq || lengthSq > farSq) { + // push vertex behind camera to force it to be clipped + positionEC.xyz = vec3(0.0, 0.0, 1.0); + } +#endif + + gl_Position = czm_projection * positionEC; + czm_vertexLogDepth(); + +#ifdef DISABLE_DEPTH_DISTANCE + float disableDepthTestDistance = distanceDisplayConditionAndDisableDepthAndSplitDirection.z; + if (disableDepthTestDistance == 0.0 && czm_minimumDisableDepthTestDistance != 0.0) + { + disableDepthTestDistance = czm_minimumDisableDepthTestDistance; + } + + if (disableDepthTestDistance != 0.0) + { + // Don't try to "multiply both sides" by w. Greater/less-than comparisons won't work for negative values of w. + float zclip = gl_Position.z / gl_Position.w; + bool clipped = (zclip < -1.0 || zclip > 1.0); + if (!clipped && (disableDepthTestDistance < 0.0 || (lengthSq > 0.0 && lengthSq < disableDepthTestDistance))) + { + // Position z on the near plane. + gl_Position.z = -gl_Position.w; +#ifdef LOG_DEPTH + czm_vertexLogDepth(vec4(czm_currentFrustum.x)); +#endif + } + } +#endif + + v_color = color; + v_color.a *= translucency * show; + v_outlineColor = outlineColor; + v_outlineColor.a *= translucency * show; + + v_innerPercent = 1.0 - outlinePercent; + v_pixelDistance = 2.0 / totalSize; + gl_PointSize = totalSize * show; + gl_Position *= show; + + v_pickColor = pickColor; + v_splitDirection = distanceDisplayConditionAndDisableDepthAndSplitDirection.w; +} +`;var XXe=Us.SHOW_INDEX,Bj=Us.POSITION_INDEX,$le=Us.COLOR_INDEX,KXe=Us.OUTLINE_COLOR_INDEX,ZXe=Us.OUTLINE_WIDTH_INDEX,$Xe=Us.PIXEL_SIZE_INDEX,Qle=Us.SCALE_BY_DISTANCE_INDEX,Jle=Us.TRANSLUCENCY_BY_DISTANCE_INDEX,eue=Us.DISTANCE_DISPLAY_CONDITION_INDEX,QXe=Us.DISABLE_DEPTH_DISTANCE_INDEX,JXe=Us.SPLIT_DIRECTION_INDEX,kj=Us.NUMBER_OF_PROPERTIES,tc={positionHighAndSize:0,positionLowAndOutline:1,compressedAttribute0:2,compressedAttribute1:3,scaleByDistance:4,distanceDisplayConditionAndDisableDepthAndSplitDirection:5};function Sf(e){e=y(e,y.EMPTY_OBJECT),this._sp=void 0,this._spTranslucent=void 0,this._rsOpaque=void 0,this._rsTranslucent=void 0,this._vaf=void 0,this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!1,this._shaderScaleByDistance=!1,this._compiledShaderScaleByDistance=!1,this._shaderTranslucencyByDistance=!1,this._compiledShaderTranslucencyByDistance=!1,this._shaderDistanceDisplayCondition=!1,this._compiledShaderDistanceDisplayCondition=!1,this._shaderDisableDepthDistance=!1,this._compiledShaderDisableDepthDistance=!1,this._propertiesChanged=new Uint32Array(kj),this._maxPixelSize=1,this._baseVolume=new se,this._baseVolumeWC=new se,this._baseVolume2D=new se,this._boundingVolume=new se,this._boundingVolumeDirty=!1,this._colorCommands=[],this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=F.clone(F.IDENTITY),this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.blendOption=y(e.blendOption,wo.OPAQUE_AND_TRANSLUCENT),this._blendOption=void 0,this._mode=ne.SCENE3D,this._maxTotalPointSize=1,this._buffersUsage=[Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW,Fe.STATIC_DRAW];let t=this;this._uniforms={u_maxTotalPointSize:function(){return t._maxTotalPointSize}}}Object.defineProperties(Sf.prototype,{length:{get:function(){return Vj(this),this._pointPrimitives.length}}});function tue(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}Sf.prototype.add=function(e){let t=new Us(e,this);return t._index=this._pointPrimitives.length,this._pointPrimitives.push(t),this._createVertexArray=!0,t};Sf.prototype.remove=function(e){return this.contains(e)?(this._pointPrimitives[e._index]=null,this._pointPrimitivesRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};Sf.prototype.removeAll=function(){tue(this._pointPrimitives),this._pointPrimitives=[],this._pointPrimitivesToUpdate=[],this._pointPrimitivesToUpdateIndex=0,this._pointPrimitivesRemoved=!1,this._createVertexArray=!0};function Vj(e){if(e._pointPrimitivesRemoved){e._pointPrimitivesRemoved=!1;let t=[],n=e._pointPrimitives,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];s&&(s._index=r++,t.push(s))}e._pointPrimitives=t}}Sf.prototype._updatePointPrimitive=function(e,t){e._dirty||(this._pointPrimitivesToUpdate[this._pointPrimitivesToUpdateIndex++]=e),++this._propertiesChanged[t]};Sf.prototype.contains=function(e){return l(e)&&e._pointPrimitiveCollection===this};Sf.prototype.get=function(e){return Vj(this),this._pointPrimitives[e]};Sf.prototype.computeNewBuffersUsage=function(){let e=this._buffersUsage,t=!1,n=this._propertiesChanged;for(let i=0;i<kj;++i){let o=n[i]===0?Fe.STATIC_DRAW:Fe.STREAM_DRAW;t=t||e[i]!==o,e[i]=o}return t};function eKe(e,t,n){return new U_(e,[{index:tc.positionHighAndSize,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Bj]},{index:tc.positionLowAndShow,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Bj]},{index:tc.compressedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[$le]},{index:tc.compressedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Jle]},{index:tc.scaleByDistance,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[Qle]},{index:tc.distanceDisplayConditionAndDisableDepthAndSplitDirection,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:n[eue]}],t)}var Nj=new Hn;function nue(e,t,n,i){let o=i._index,r=i._getActualPosition();e._mode===ne.SCENE3D&&(se.expand(e._baseVolume,r,e._baseVolume),e._boundingVolumeDirty=!0),Hn.fromCartesian(r,Nj);let s=i.pixelSize,a=i.outlineWidth;e._maxPixelSize=Math.max(e._maxPixelSize,s+a);let c=n[tc.positionHighAndSize],u=Nj.high;c(o,u.x,u.y,u.z,s);let f=n[tc.positionLowAndOutline],d=Nj.low;f(o,d.x,d.y,d.z,a)}var f3=65536,cD=256;function iue(e,t,n,i){let o=i._index,r=i.color,s=i.getPickId(t).color,a=i.outlineColor,c=z.floatToByte(r.red),u=z.floatToByte(r.green),f=z.floatToByte(r.blue),d=c*f3+u*cD+f;c=z.floatToByte(a.red),u=z.floatToByte(a.green),f=z.floatToByte(a.blue);let p=c*f3+u*cD+f;c=z.floatToByte(s.red),u=z.floatToByte(s.green),f=z.floatToByte(s.blue);let g=c*f3+u*cD+f,m=z.floatToByte(r.alpha)*f3+z.floatToByte(a.alpha)*cD+z.floatToByte(s.alpha),x=n[tc.compressedAttribute0];x(o,d,p,g,m)}function oue(e,t,n,i){let o=i._index,r=0,s=1,a=1,c=1,u=i.translucencyByDistance;l(u)&&(r=u.near,s=u.nearValue,a=u.far,c=u.farValue,(s!==1||c!==1)&&(e._shaderTranslucencyByDistance=!0));let f=i.show&&i.clusterShow;i.color.alpha===0&&i.outlineColor.alpha===0&&(f=!1),s=P.clamp(s,0,1),s=s===1?255:s*255|0;let d=(f?1:0)*cD+s;c=P.clamp(c,0,1),c=c===1?255:c*255|0;let p=c,g=n[tc.compressedAttribute1];g(o,d,p,r,a)}function rue(e,t,n,i){let o=i._index,r=n[tc.scaleByDistance],s=0,a=1,c=1,u=1,f=i.scaleByDistance;l(f)&&(s=f.near,a=f.nearValue,c=f.far,u=f.farValue,(a!==1||u!==1)&&(e._shaderScaleByDistance=!0)),r(o,s,a,c,u)}function sue(e,t,n,i){let o=i._index,r=n[tc.distanceDisplayConditionAndDisableDepthAndSplitDirection],s=0,a=Number.MAX_VALUE,c=i.distanceDisplayCondition;l(c)&&(s=c.near,a=c.far,s*=s,a*=a,e._shaderDistanceDisplayCondition=!0);let u=i.disableDepthTestDistance;u*=u,u>0&&(e._shaderDisableDepthDistance=!0,u===Number.POSITIVE_INFINITY&&(u=-1));let f=0,d=i.splitDirection;l(d)&&(f=d),r(o,s,a,u,f)}function tKe(e,t,n,i){nue(e,t,n,i),iue(e,t,n,i),oue(e,t,n,i),rue(e,t,n,i),sue(e,t,n,i)}function Fj(e,t,n,i,o,r){let s;i.mode===ne.SCENE3D?(s=e._baseVolume,e._boundingVolumeDirty=!0):s=e._baseVolume2D;let a=[];for(let c=0;c<n;++c){let u=t[c],f=u.position,d=Us._computeActualPosition(f,i,o);l(d)&&(u._setActualPosition(d),r?a.push(d):se.expand(s,d,s))}r&&se.fromPoints(a,s)}function nKe(e,t){let n=t.mode,i=e._pointPrimitives,o=e._pointPrimitivesToUpdate,r=e._modelMatrix;e._createVertexArray||e._mode!==n||n!==ne.SCENE3D&&!F.equals(r,e.modelMatrix)?(e._mode=n,F.clone(e.modelMatrix,r),e._createVertexArray=!0,(n===ne.SCENE3D||n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&Fj(e,i,i.length,t,r,!0)):n===ne.MORPHING?Fj(e,i,i.length,t,r,!0):(n===ne.SCENE2D||n===ne.COLUMBUS_VIEW)&&Fj(e,o,e._pointPrimitivesToUpdateIndex,t,r,!1)}function iKe(e,t,n){let o=t.camera.getPixelSize(n,t.context.drawingBufferWidth,t.context.drawingBufferHeight)*e._maxPixelSize;n.radius+=o}var oKe=[];Sf.prototype.update=function(e){if(Vj(this),!this.show)return;this._maxTotalPointSize=zt.maximumAliasedPointSize,nKe(this,e);let n=this._pointPrimitives.length,i=this._pointPrimitivesToUpdate,o=this._pointPrimitivesToUpdateIndex,r=this._propertiesChanged,s=this._createVertexArray,a,c=e.context,u=e.passes,f=u.pick;if(s||!f&&this.computeNewBuffersUsage()){this._createVertexArray=!1;for(let v=0;v<kj;++v)r[v]=0;if(this._vaf=this._vaf&&this._vaf.destroy(),n>0){this._vaf=eKe(c,n,this._buffersUsage),a=this._vaf.writers;for(let v=0;v<n;++v){let D=this._pointPrimitives[v];D._dirty=!1,tKe(this,c,a,D)}this._vaf.commit()}this._pointPrimitivesToUpdateIndex=0}else if(o>0){let v=oKe;v.length=0,(r[Bj]||r[ZXe]||r[$Xe])&&v.push(nue),(r[$le]||r[KXe])&&v.push(iue),(r[XXe]||r[Jle])&&v.push(oue),r[Qle]&&v.push(rue),(r[eue]||r[QXe]||r[JXe])&&v.push(sue);let D=v.length;if(a=this._vaf.writers,o/n>.1){for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let M=0;M<D;++M)v[M](this,c,a,R)}this._vaf.commit()}else{for(let O=0;O<o;++O){let R=i[O];R._dirty=!1;for(let M=0;M<D;++M)v[M](this,c,a,R);this._vaf.subCommit(R._index,1)}this._vaf.endSubCommits()}this._pointPrimitivesToUpdateIndex=0}if(o>n*1.5&&(i.length=n),!l(this._vaf)||!l(this._vaf.va))return;this._boundingVolumeDirty&&(this._boundingVolumeDirty=!1,se.transform(this._baseVolume,this.modelMatrix,this._baseVolumeWC));let d,p=F.IDENTITY;e.mode===ne.SCENE3D?(p=this.modelMatrix,d=se.clone(this._baseVolumeWC,this._boundingVolume)):d=se.clone(this._baseVolume2D,this._boundingVolume),iKe(this,e,d);let g=this._blendOption!==this.blendOption;this._blendOption=this.blendOption,g&&(this._blendOption===wo.OPAQUE||this._blendOption===wo.OPAQUE_AND_TRANSLUCENT?this._rsOpaque=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!0}):this._rsOpaque=void 0,this._blendOption===wo.TRANSLUCENT||this._blendOption===wo.OPAQUE_AND_TRANSLUCENT?this._rsTranslucent=Ve.fromCache({depthTest:{enabled:!0,func:te.LEQUAL},depthMask:!1,blending:ln.ALPHA_BLEND}):this._rsTranslucent=void 0),this._shaderDisableDepthDistance=this._shaderDisableDepthDistance||e.minimumDisableDepthTestDistance!==0;let m,x;(g||this._shaderScaleByDistance&&!this._compiledShaderScaleByDistance||this._shaderTranslucencyByDistance&&!this._compiledShaderTranslucencyByDistance||this._shaderDistanceDisplayCondition&&!this._compiledShaderDistanceDisplayCondition||this._shaderDisableDepthDistance!==this._compiledShaderDisableDepthDistance)&&(m=new Ue({sources:[u3]}),this._shaderScaleByDistance&&m.defines.push("EYE_DISTANCE_SCALING"),this._shaderTranslucencyByDistance&&m.defines.push("EYE_DISTANCE_TRANSLUCENCY"),this._shaderDistanceDisplayCondition&&m.defines.push("DISTANCE_DISPLAY_CONDITION"),this._shaderDisableDepthDistance&&m.defines.push("DISABLE_DEPTH_DISTANCE"),this._blendOption===wo.OPAQUE_AND_TRANSLUCENT&&(x=new Ue({defines:["OPAQUE"],sources:[Ox]}),this._sp=en.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:tc}),x=new Ue({defines:["TRANSLUCENT"],sources:[Ox]}),this._spTranslucent=en.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:tc})),this._blendOption===wo.OPAQUE&&(x=new Ue({sources:[Ox]}),this._sp=en.replaceCache({context:c,shaderProgram:this._sp,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:tc})),this._blendOption===wo.TRANSLUCENT&&(x=new Ue({sources:[Ox]}),this._spTranslucent=en.replaceCache({context:c,shaderProgram:this._spTranslucent,vertexShaderSource:m,fragmentShaderSource:x,attributeLocations:tc})),this._compiledShaderScaleByDistance=this._shaderScaleByDistance,this._compiledShaderTranslucencyByDistance=this._shaderTranslucencyByDistance,this._compiledShaderDistanceDisplayCondition=this._shaderDistanceDisplayCondition,this._compiledShaderDisableDepthDistance=this._shaderDisableDepthDistance);let b,T,A,C,S=e.commandList;if(u.render||f){let v=this._colorCommands,D=this._blendOption===wo.OPAQUE,O=this._blendOption===wo.OPAQUE_AND_TRANSLUCENT;b=this._vaf.va,T=b.length,v.length=T;let R=O?T*2:T;for(C=0;C<R;++C){let M=D||O&&C%2===0;A=v[C],l(A)||(A=v[C]=new et),A.primitiveType=Le.POINTS,A.pass=M||!O?ve.OPAQUE:ve.TRANSLUCENT,A.owner=this;let L=O?Math.floor(C/2):C;A.boundingVolume=d,A.modelMatrix=p,A.shaderProgram=M?this._sp:this._spTranslucent,A.uniformMap=this._uniforms,A.vertexArray=b[L].va,A.renderState=M?this._rsOpaque:this._rsTranslucent,A.debugShowBoundingVolume=this.debugShowBoundingVolume,A.pickId="v_pickColor",S.push(A)}}};Sf.prototype.isDestroyed=function(){return!1};Sf.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._spTranslucent=this._spTranslucent&&this._spTranslucent.destroy(),this._spPick=this._spPick&&this._spPick.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),tue(this._pointPrimitives),ue(this)};var lD=Sf;var aue=[Int8Array,Uint8Array,Uint8ClampedArray,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],Uj=1,uD=8,dD=class e{static from(t){if(!(t instanceof ArrayBuffer))throw new Error("Data must be an instance of ArrayBuffer.");let[n,i]=new Uint8Array(t,0,2);if(n!==219)throw new Error("Data does not appear to be in a KDBush format.");let o=i>>4;if(o!==Uj)throw new Error(`Got v${o} data when expected v${Uj}.`);let r=aue[i&15];if(!r)throw new Error("Unrecognized array type.");let[s]=new Uint16Array(t,2,1),[a]=new Uint32Array(t,4,1);return new e(a,s,r,t)}constructor(t,n=64,i=Float64Array,o){if(isNaN(t)||t<0)throw new Error(`Unpexpected numItems value: ${t}.`);this.numItems=+t,this.nodeSize=Math.min(Math.max(+n,2),65535),this.ArrayType=i,this.IndexArrayType=t<65536?Uint16Array:Uint32Array;let r=aue.indexOf(this.ArrayType),s=t*2*this.ArrayType.BYTES_PER_ELEMENT,a=t*this.IndexArrayType.BYTES_PER_ELEMENT,c=(8-a%8)%8;if(r<0)throw new Error(`Unexpected typed array class: ${i}.`);o&&o instanceof ArrayBuffer?(this.data=o,this.ids=new this.IndexArrayType(this.data,uD,t),this.coords=new this.ArrayType(this.data,uD+a+c,t*2),this._pos=t*2,this._finished=!0):(this.data=new ArrayBuffer(uD+s+a+c),this.ids=new this.IndexArrayType(this.data,uD,t),this.coords=new this.ArrayType(this.data,uD+a+c,t*2),this._pos=0,this._finished=!1,new Uint8Array(this.data,0,2).set([219,(Uj<<4)+r]),new Uint16Array(this.data,2,1)[0]=n,new Uint32Array(this.data,4,1)[0]=t)}add(t,n){let i=this._pos>>1;return this.ids[i]=i,this.coords[this._pos++]=t,this.coords[this._pos++]=n,i}finish(){let t=this._pos>>1;if(t!==this.numItems)throw new Error(`Added ${t} items when expected ${this.numItems}.`);return Hj(this.ids,this.coords,this.nodeSize,0,this.numItems-1,0),this._finished=!0,this}range(t,n,i,o){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:r,coords:s,nodeSize:a}=this,c=[0,r.length-1,0],u=[];for(;c.length;){let f=c.pop()||0,d=c.pop()||0,p=c.pop()||0;if(d-p<=a){for(let b=p;b<=d;b++){let T=s[2*b],A=s[2*b+1];T>=t&&T<=i&&A>=n&&A<=o&&u.push(r[b])}continue}let g=p+d>>1,m=s[2*g],x=s[2*g+1];m>=t&&m<=i&&x>=n&&x<=o&&u.push(r[g]),(f===0?t<=m:n<=x)&&(c.push(p),c.push(g-1),c.push(1-f)),(f===0?i>=m:o>=x)&&(c.push(g+1),c.push(d),c.push(1-f))}return u}within(t,n,i){if(!this._finished)throw new Error("Data not yet indexed - call index.finish().");let{ids:o,coords:r,nodeSize:s}=this,a=[0,o.length-1,0],c=[],u=i*i;for(;a.length;){let f=a.pop()||0,d=a.pop()||0,p=a.pop()||0;if(d-p<=s){for(let b=p;b<=d;b++)cue(r[2*b],r[2*b+1],t,n)<=u&&c.push(o[b]);continue}let g=p+d>>1,m=r[2*g],x=r[2*g+1];cue(m,x,t,n)<=u&&c.push(o[g]),(f===0?t-i<=m:n-i<=x)&&(a.push(p),a.push(g-1),a.push(1-f)),(f===0?t+i>=m:n+i>=x)&&(a.push(g+1),a.push(d),a.push(1-f))}return c}};function Hj(e,t,n,i,o,r){if(o-i<=n)return;let s=i+o>>1;lue(e,t,s,i,o,r),Hj(e,t,n,i,s-1,1-r),Hj(e,t,n,s+1,o,1-r)}function lue(e,t,n,i,o,r){for(;o>i;){if(o-i>600){let u=o-i+1,f=n-i+1,d=Math.log(u),p=.5*Math.exp(2*d/3),g=.5*Math.sqrt(d*p*(u-p)/u)*(f-u/2<0?-1:1),m=Math.max(i,Math.floor(n-f*p/u+g)),x=Math.min(o,Math.floor(n+(u-f)*p/u+g));lue(e,t,n,m,x,r)}let s=t[2*n+r],a=i,c=o;for(fD(e,t,i,n),t[2*o+r]>s&&fD(e,t,i,o);a<c;){for(fD(e,t,a,c),a++,c--;t[2*a+r]<s;)a++;for(;t[2*c+r]>s;)c--}t[2*i+r]===s?fD(e,t,i,c):(c++,fD(e,t,c,o)),c<=n&&(i=c+1),n<=c&&(o=c-1)}}function fD(e,t,n,i){zj(e,n,i),zj(t,2*n,2*i),zj(t,2*n+1,2*i+1)}function zj(e,t,n){let i=e[t];e[t]=e[n],e[n]=i}function cue(e,t,n,i){let o=e-n,r=t-i;return o*o+r*r}function wd(e){e=y(e,y.EMPTY_OBJECT),this._enabled=y(e.enabled,!1),this._pixelRange=y(e.pixelRange,80),this._minimumClusterSize=y(e.minimumClusterSize,2),this._clusterBillboards=y(e.clusterBillboards,!0),this._clusterLabels=y(e.clusterLabels,!0),this._clusterPoints=y(e.clusterPoints,!0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity={},this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._clusterDirty=!1,this._cluster=void 0,this._removeEventListener=void 0,this._clusterEvent=new me,this.show=y(e.show,!0)}function uue(e,t){e.x-=t,e.y-=t,e.width+=t*2,e.height+=t*2}var rKe=new qe;function fue(e,t,n,i,o){if(l(e._labelCollection)&&i._clusterLabels?o=Tx.getScreenSpaceBoundingBox(e,t,o):l(e._billboardCollection)&&i._clusterBillboards?o=so.getScreenSpaceBoundingBox(e,t,o):l(e._pointPrimitiveCollection)&&i._clusterPoints&&(o=Us.getScreenSpaceBoundingBox(e,t,o)),uue(o,n),i._clusterLabels&&!l(e._labelCollection)&&l(e.id)&&hue(i,e.id.id)&&l(e.id._label)){let r=i._collectionIndicesByEntity[e.id.id].labelIndex,s=i._labelCollection.get(r),a=Tx.getScreenSpaceBoundingBox(s,t,rKe);uue(a,n),o=qe.union(o,a,o)}return o}function sKe(e,t){if(e.clusterShow=!0,!l(e._labelCollection)&&l(e.id)&&hue(t,e.id.id)&&l(e.id._label)){let n=t._collectionIndicesByEntity[e.id.id].labelIndex,i=t._labelCollection.get(n);i.clusterShow=!0}}function due(e,t,n,i){let o={billboard:i._clusterBillboardCollection.add(),label:i._clusterLabelCollection.add(),point:i._clusterPointCollection.add()};o.billboard.show=!1,o.point.show=!1,o.label.show=!0,o.label.text=t.toLocaleString(),o.label.id=n,o.billboard.position=o.label.position=o.point.position=e,i._clusterEvent.raiseEvent(n,o)}function hue(e,t){return l(e)&&l(e._collectionIndicesByEntity[t])&&l(e._collectionIndicesByEntity[t].labelIndex)}function Gj(e,t,n,i,o){if(!l(e))return;let r=e.length;for(let s=0;s<r;++s){let a=e.get(s);if(a.clusterShow=!1,!a.show||o._scene.mode===ne.SCENE3D&&!i.isPointVisible(a.position))continue;let c=o._clusterLabels&&l(a._labelCollection),u=o._clusterBillboards&&l(a.id._billboard),f=o._clusterPoints&&l(a.id._point);if(c&&(f||u))continue;let d=a.computeScreenSpacePosition(n);l(d)&&t.push({index:s,collection:e,clustered:!1,coord:d})}}var aKe=new qe,cKe=new qe,lKe=new qe;function uKe(e){return function(t){if(l(t)&&t<.05||!e.enabled)return;let n=e._scene,i=e._labelCollection,o=e._billboardCollection,r=e._pointCollection;if(!l(i)&&!l(o)&&!l(r)||!e._clusterBillboards&&!e._clusterLabels&&!e._clusterPoints)return;let s=e._clusterLabelCollection,a=e._clusterBillboardCollection,c=e._clusterPointCollection;l(s)?s.removeAll():s=e._clusterLabelCollection=new Rp({scene:n}),l(a)?a.removeAll():a=e._clusterBillboardCollection=new mf({scene:n}),l(c)?c.removeAll():c=e._clusterPointCollection=new lD;let u=e._pixelRange,f=e._minimumClusterSize,d=e._previousClusters,p=[],g=e._previousHeight,m=n.camera.positionCartographic.height,x=n.ellipsoid,b=n.camera.positionWC,T=new Qg(x,b),A=[];e._clusterLabels&&Gj(i,A,n,T,e),e._clusterBillboards&&Gj(o,A,n,T,e),e._clusterPoints&&Gj(r,A,n,T,e);let C,S,v,D,O,R,M,L,_,E,w,I;if(A.length>0){let N=new dD(A.length,64,Uint32Array);for(let B=0;B<A.length;++B)N.add(A[B].coord.x,A[B].coord.y);if(N.finish(),m<g)for(v=d.length,C=0;C<v;++C){let B=d[C];if(!T.isPointVisible(B.position))continue;let H=so._computeScreenSpacePosition(F.IDENTITY,B.position,h.ZERO,U.ZERO,n);if(!l(H))continue;let V=1-m/g,G=B.width=B.width*V,k=B.height=B.height*V;G=Math.max(G,B.minimumWidth),k=Math.max(k,B.minimumHeight);let W=H.x-G*.5,q=H.y-k*.5,J=H.x+G,j=H.y+k;for(O=N.range(W,q,J,j),R=O.length,E=0,_=[],S=0;S<R;++S)M=O[S],L=A[M],L.clustered||(++E,w=L.collection,I=L.index,_.push(w.get(I).id));if(E>=f)for(due(B.position,E,_,e),p.push(B),S=0;S<R;++S)A[O[S]].clustered=!0}for(v=A.length,C=0;C<v;++C){let B=A[C];if(B.clustered)continue;B.clustered=!0,w=B.collection,I=B.index;let H=w.get(I);D=fue(H,B.coord,u,e,aKe);let V=qe.clone(D,cKe);O=N.range(D.x,D.y,D.x+D.width,D.y+D.height),R=O.length;let G=h.clone(H.position);for(E=1,_=[H.id],S=0;S<R;++S)if(M=O[S],L=A[M],!L.clustered){let k=L.collection.get(L.index),W=fue(k,L.coord,u,e,lKe);h.add(k.position,G,G),qe.union(V,W,V),++E,_.push(k.id)}if(E>=f){let k=h.multiplyByScalar(G,1/E,G);for(due(k,E,_,e),p.push({position:k,width:V.width,height:V.height,minimumWidth:D.width,minimumHeight:D.height}),S=0;S<R;++S)A[O[S]].clustered=!0}else sKe(H,e)}}s.length===0&&(s.destroy(),e._clusterLabelCollection=void 0),a.length===0&&(a.destroy(),e._clusterBillboardCollection=void 0),c.length===0&&(c.destroy(),e._clusterPointCollection=void 0),e._previousClusters=p,e._previousHeight=m}}wd.prototype._initialize=function(e){this._scene=e;let t=uKe(this);this._cluster=t,this._removeEventListener=e.camera.changed.addEventListener(t)};Object.defineProperties(wd.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabledDirty=e!==this._enabled,this._enabled=e}},pixelRange:{get:function(){return this._pixelRange},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._pixelRange,this._pixelRange=e}},minimumClusterSize:{get:function(){return this._minimumClusterSize},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._minimumClusterSize,this._minimumClusterSize=e}},clusterEvent:{get:function(){return this._clusterEvent}},clusterBillboards:{get:function(){return this._clusterBillboards},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterBillboards,this._clusterBillboards=e}},clusterLabels:{get:function(){return this._clusterLabels},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterLabels,this._clusterLabels=e}},clusterPoints:{get:function(){return this._clusterPoints},set:function(e){this._clusterDirty=this._clusterDirty||e!==this._clusterPoints,this._clusterPoints=e}}});function jj(e,t,n,i){return function(o){let r=this[e];l(this._collectionIndicesByEntity)||(this._collectionIndicesByEntity={});let s=this._collectionIndicesByEntity[o.id];if(l(s)||(s=this._collectionIndicesByEntity[o.id]={billboardIndex:void 0,labelIndex:void 0,pointIndex:void 0}),l(r)&&l(s[i]))return r.get(s[i]);l(r)||(r=this[e]=new t({scene:this._scene}));let a,c,u=this[n];u.length>0?(a=u.shift(),c=r.get(a)):(c=r.add(),a=r.length-1),s[i]=a;let f=this;return Promise.resolve().then(function(){f._clusterDirty=!0}),c}}function qj(e,t){let n=e._collectionIndicesByEntity[t];!l(n.billboardIndex)&&!l(n.labelIndex)&&!l(n.pointIndex)&&delete e._collectionIndicesByEntity[t]}wd.prototype.getLabel=jj("_labelCollection",Rp,"_unusedLabelIndices","labelIndex");wd.prototype.removeLabel=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._labelCollection)||!l(t)||!l(t.labelIndex))return;let n=t.labelIndex;t.labelIndex=void 0,qj(this,e.id);let i=this._labelCollection.get(n);i.show=!1,i.text="",i.id=void 0,this._unusedLabelIndices.push(n),this._clusterDirty=!0};wd.prototype.getBillboard=jj("_billboardCollection",mf,"_unusedBillboardIndices","billboardIndex");wd.prototype.removeBillboard=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._billboardCollection)||!l(t)||!l(t.billboardIndex))return;let n=t.billboardIndex;t.billboardIndex=void 0,qj(this,e.id);let i=this._billboardCollection.get(n);i.id=void 0,i.show=!1,i.image=void 0,this._unusedBillboardIndices.push(n),this._clusterDirty=!0};wd.prototype.getPoint=jj("_pointCollection",lD,"_unusedPointIndices","pointIndex");wd.prototype.removePoint=function(e){let t=this._collectionIndicesByEntity&&this._collectionIndicesByEntity[e.id];if(!l(this._pointCollection)||!l(t)||!l(t.pointIndex))return;let n=t.pointIndex;t.pointIndex=void 0,qj(this,e.id);let i=this._pointCollection.get(n);i.show=!1,i.id=void 0,this._unusedPointIndices.push(n),this._clusterDirty=!0};function Wj(e){if(!l(e))return;let t=e.length;for(let n=0;n<t;++n)e.get(n).clusterShow=!0}function fKe(e){e.enabled||(l(e._clusterLabelCollection)&&e._clusterLabelCollection.destroy(),l(e._clusterBillboardCollection)&&e._clusterBillboardCollection.destroy(),l(e._clusterPointCollection)&&e._clusterPointCollection.destroy(),e._clusterLabelCollection=void 0,e._clusterBillboardCollection=void 0,e._clusterPointCollection=void 0,Wj(e._labelCollection),Wj(e._billboardCollection),Wj(e._pointCollection))}wd.prototype.update=function(e){if(!this.show)return;let t;l(this._labelCollection)&&this._labelCollection.length>0&&this._labelCollection.get(0)._glyphs.length===0&&(t=e.commandList,e.commandList=[],this._labelCollection.update(e),e.commandList=t),l(this._billboardCollection)&&this._billboardCollection.length>0&&!l(this._billboardCollection.get(0).width)&&(t=e.commandList,e.commandList=[],this._billboardCollection.update(e),e.commandList=t),this._enabledDirty&&(this._enabledDirty=!1,fKe(this),this._clusterDirty=!0),this._clusterDirty&&(this._clusterDirty=!1,this._cluster()),l(this._clusterLabelCollection)&&this._clusterLabelCollection.update(e),l(this._clusterBillboardCollection)&&this._clusterBillboardCollection.update(e),l(this._clusterPointCollection)&&this._clusterPointCollection.update(e),l(this._labelCollection)&&this._labelCollection.update(e),l(this._billboardCollection)&&this._billboardCollection.update(e),l(this._pointCollection)&&this._pointCollection.update(e)};wd.prototype.destroy=function(){this._labelCollection=this._labelCollection&&this._labelCollection.destroy(),this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),this._pointCollection=this._pointCollection&&this._pointCollection.destroy(),this._clusterLabelCollection=this._clusterLabelCollection&&this._clusterLabelCollection.destroy(),this._clusterBillboardCollection=this._clusterBillboardCollection&&this._clusterBillboardCollection.destroy(),this._clusterPointCollection=this._clusterPointCollection&&this._clusterPointCollection.destroy(),l(this._removeEventListener)&&(this._removeEventListener(),this._removeEventListener=void 0),this._labelCollection=void 0,this._billboardCollection=void 0,this._pointCollection=void 0,this._clusterBillboardCollection=void 0,this._clusterLabelCollection=void 0,this._clusterPointCollection=void 0,this._collectionIndicesByEntity=void 0,this._unusedLabelIndices=[],this._unusedBillboardIndices=[],this._unusedPointIndices=[],this._previousClusters=[],this._previousHeight=void 0,this._enabledDirty=!1,this._pixelRangeDirty=!1,this._minimumClusterSizeDirty=!1};var vf=wd;function Yj(e){this._name=e,this._clock=void 0,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new oa(this),this._entityCluster=new vf}Object.defineProperties(Yj.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._changed.raiseEvent(this))}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading},set:function(e){qr.setLoading(this,e)}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});Yj.prototype.update=function(e){return!0};var d3=Yj;var mue={};mue.computePositions=function(e,t,n,i,o){let r=e*.5,s=-r,a=i+i,c=o?2*a:a,u=new Float64Array(c*3),f,d=0,p=0,g=o?a*3:0,m=o?(a+i)*3:i*3;for(f=0;f<i;f++){let x=f/i*P.TWO_PI,b=Math.cos(x),T=Math.sin(x),A=b*n,C=T*n,S=b*t,v=T*t;u[p+g]=A,u[p+g+1]=C,u[p+g+2]=s,u[p+m]=S,u[p+m+1]=v,u[p+m+2]=r,p+=3,o&&(u[d++]=A,u[d++]=C,u[d++]=s,u[d++]=S,u[d++]=v,u[d++]=r)}return u};var xC=mue;var Xj=new U,dKe=new h,hKe=new h,mKe=new h,pKe=new h;function Yp(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.slices,128);this._length=t,this._topRadius=n,this._bottomRadius=i,this._vertexFormat=Pe.clone(o),this._slices=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderGeometry"}Yp.packedLength=Pe.packedLength+5;Yp.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n]=y(e._offsetAttribute,-1),t};var pue=new Pe,bC={vertexFormat:pue,length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,offsetAttribute:void 0};Yp.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,pue);t+=Pe.packedLength;let o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n._length=o,n._topRadius=r,n._bottomRadius=s,n._slices=a,n._offsetAttribute=c===-1?void 0:c,n):(bC.length=o,bC.topRadius=r,bC.bottomRadius=s,bC.slices=a,bC.offsetAttribute=c===-1?void 0:c,new Yp(bC))};Yp.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._vertexFormat,r=e._slices;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=r+r,a=r+s,c=s+s,u=xC.computePositions(t,n,i,r,!0),f=o.st?new Float32Array(c*2):void 0,d=o.normal?new Float32Array(c*3):void 0,p=o.tangent?new Float32Array(c*3):void 0,g=o.bitangent?new Float32Array(c*3):void 0,m,x=o.normal||o.tangent||o.bitangent;if(x){let O=o.tangent||o.bitangent,R=0,M=0,L=0,_=Math.atan2(i-n,t),E=dKe;E.z=Math.sin(_);let w=Math.cos(_),I=mKe,N=hKe;for(m=0;m<r;m++){let B=m/r*P.TWO_PI,H=w*Math.cos(B),V=w*Math.sin(B);x&&(E.x=H,E.y=V,O&&(I=h.normalize(h.cross(h.UNIT_Z,E,I),I)),o.normal&&(d[R++]=E.x,d[R++]=E.y,d[R++]=E.z,d[R++]=E.x,d[R++]=E.y,d[R++]=E.z),o.tangent&&(p[M++]=I.x,p[M++]=I.y,p[M++]=I.z,p[M++]=I.x,p[M++]=I.y,p[M++]=I.z),o.bitangent&&(N=h.normalize(h.cross(E,I,N),N),g[L++]=N.x,g[L++]=N.y,g[L++]=N.z,g[L++]=N.x,g[L++]=N.y,g[L++]=N.z))}for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=-1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[L++]=0,g[L++]=-1,g[L++]=0);for(m=0;m<r;m++)o.normal&&(d[R++]=0,d[R++]=0,d[R++]=1),o.tangent&&(p[M++]=1,p[M++]=0,p[M++]=0),o.bitangent&&(g[L++]=0,g[L++]=1,g[L++]=0)}let b=12*r-12,T=Ne.createTypedArray(c,b),A=0,C=0;for(m=0;m<r-1;m++)T[A++]=C,T[A++]=C+2,T[A++]=C+3,T[A++]=C,T[A++]=C+3,T[A++]=C+1,C+=2;for(T[A++]=s-2,T[A++]=0,T[A++]=1,T[A++]=s-2,T[A++]=1,T[A++]=s-1,m=1;m<r-1;m++)T[A++]=s+m+1,T[A++]=s+m,T[A++]=s;for(m=1;m<r-1;m++)T[A++]=a,T[A++]=a+m,T[A++]=a+m+1;let S=0;if(o.st){let O=Math.max(n,i);for(m=0;m<c;m++){let R=h.fromArray(u,m*3,pKe);f[S++]=(R.x+O)/(2*O),f[S++]=(R.y+O)/(2*O)}}let v=new dn;o.position&&(v.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:u})),o.normal&&(v.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:d})),o.tangent&&(v.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),o.bitangent&&(v.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),o.st&&(v.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:f})),Xj.x=t*.5,Xj.y=Math.max(i,n);let D=new se(h.ZERO,U.magnitude(Xj));if(l(e._offsetAttribute)){t=u.length;let O=e._offsetAttribute===sn.NONE?0:1,R=new Uint8Array(t/3).fill(O);v.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:R})}return new ft({attributes:v,indices:T,primitiveType:Le.TRIANGLES,boundingSphere:D,offsetAttribute:e._offsetAttribute})};var Kj;Yp.getUnitCylinder=function(){return l(Kj)||(Kj=Yp.createGeometry(new Yp({topRadius:1,bottomRadius:1,length:1,vertexFormat:Pe.POSITION_ONLY}))),Kj};var h3=Yp;var Zj=new U;function TC(e){e=y(e,y.EMPTY_OBJECT);let t=e.length,n=e.topRadius,i=e.bottomRadius,o=y(e.slices,128),r=Math.max(y(e.numberOfVerticalLines,16),0);this._length=t,this._topRadius=n,this._bottomRadius=i,this._slices=o,this._numberOfVerticalLines=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createCylinderOutlineGeometry"}TC.packedLength=6;TC.pack=function(e,t,n){return n=y(n,0),t[n++]=e._length,t[n++]=e._topRadius,t[n++]=e._bottomRadius,t[n++]=e._slices,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var Mx={length:void 0,topRadius:void 0,bottomRadius:void 0,slices:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};TC.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o=e[t++],r=e[t++],s=e[t++],a=e[t++],c=e[t];return l(n)?(n._length=i,n._topRadius=o,n._bottomRadius=r,n._slices=s,n._numberOfVerticalLines=a,n._offsetAttribute=c===-1?void 0:c,n):(Mx.length=i,Mx.topRadius=o,Mx.bottomRadius=r,Mx.slices=s,Mx.numberOfVerticalLines=a,Mx.offsetAttribute=c===-1?void 0:c,new TC(Mx))};TC.createGeometry=function(e){let t=e._length,n=e._topRadius,i=e._bottomRadius,o=e._slices,r=e._numberOfVerticalLines;if(t<=0||n<0||i<0||n===0&&i===0)return;let s=o*2,a=xC.computePositions(t,n,i,o,!1),c=o*2,u;if(r>0){let x=Math.min(r,o);u=Math.round(o/x),c+=x}let f=Ne.createTypedArray(s,c*2),d=0,p;for(p=0;p<o-1;p++)f[d++]=p,f[d++]=p+1,f[d++]=p+o,f[d++]=p+1+o;if(f[d++]=o-1,f[d++]=0,f[d++]=o+o-1,f[d++]=o,r>0)for(p=0;p<o;p+=u)f[d++]=p,f[d++]=p+o;let g=new dn;g.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:a}),Zj.x=t*.5,Zj.y=Math.max(i,n);let m=new se(h.ZERO,U.magnitude(Zj));if(l(e._offsetAttribute)){t=a.length;let x=e._offsetAttribute===sn.NONE?0:1,b=new Uint8Array(t/3).fill(x);g.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:b})}return new ft({attributes:g,indices:f,primitiveType:Le.LINES,boundingSphere:m,offsetAttribute:e._offsetAttribute})};var m3=TC;var _ue=h.ZERO,gue=new h,_Ke=new h,yue=new z;function gKe(e){this.id=e,this.vertexFormat=void 0,this.length=void 0,this.topRadius=void 0,this.bottomRadius=void 0,this.slices=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function uu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new gKe(e),geometryPropertyName:"cylinder",observedPropertyNames:["availability","position","orientation","cylinder"]}),this._onEntityPropertyChanged(e,"cylinder",e.cylinder,void 0)}l(Object.create)&&(uu.prototype=Object.create(ii.prototype),uu.prototype.constructor=uu);Object.defineProperties(uu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});uu.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r,color:void 0,offset:void 0};if(this._materialProperty instanceof Gt){let a;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,yue)),l(a)||(a=z.WHITE),s.color=qt.fromColor(a)}return l(this._options.offsetAttribute)&&(s.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,_ue,gue))),new vt({id:t,geometry:new h3(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:s})};uu.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,yue),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,_ue,gue))),new vt({id:t,geometry:new m3(this._options),modelMatrix:t.computeModelMatrixForHeightReference(e,t.cylinder.heightReference,this._options.length*.5,this._scene.ellipsoid),attributes:r})};uu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};uu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.length)||!l(t.topRadius)||!l(t.bottomRadius)||ii.prototype._isHidden.call(this,e,t)};uu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.length.isConstant||!t.topRadius.isConstant||!t.bottomRadius.isConstant||!Y.isConstant(t.slices)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)};uu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Gt?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.length=t.length.getValue(ze.MINIMUM_VALUE),i.topRadius=t.topRadius.getValue(ze.MINIMUM_VALUE),i.bottomRadius=t.bottomRadius.getValue(ze.MINIMUM_VALUE),i.slices=Y.getValueOrUndefined(t.slices,ze.MINIMUM_VALUE),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,ze.MINIMUM_VALUE),i.offsetAttribute=n!==Ke.NONE?sn.ALL:void 0};uu.prototype._onEntityPropertyChanged=Z_;uu.DynamicGeometryUpdater=AC;function AC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(AC.prototype=Object.create(ni.prototype),AC.prototype.constructor=AC);AC.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,_Ke);return!l(o)||!l(i.length)||!l(i.topRadius)||!l(i.bottomRadius)||ni.prototype._isHidden.call(this,e,t,n)};AC.prototype._setOptions=function(e,t,n){let i=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),o=this._options;o.length=Y.getValueOrUndefined(t.length,n),o.topRadius=Y.getValueOrUndefined(t.topRadius,n),o.bottomRadius=Y.getValueOrUndefined(t.bottomRadius,n),o.slices=Y.getValueOrUndefined(t.slices,n),o.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),o.offsetAttribute=i!==Ke.NONE?sn.ALL:void 0};var p3=uu;var yKe={UNBOUNDED:0,CLAMPED:1,LOOP_STOP:2},Yr=Object.freeze(yKe);var xKe={TICK_DEPENDENT:0,SYSTEM_CLOCK_MULTIPLIER:1,SYSTEM_CLOCK:2},po=Object.freeze(xKe);var bKe={NONE:0,HOLD:1,EXTRAPOLATE:2},wf=Object.freeze(bKe);var xue=Er(zl(),1);function TKe(e){let t=new xue.default(e);t.normalize();let n=t.path(),i=n.lastIndexOf("/");return i!==-1&&(n=n.substr(i+1)),n}var Jg=TKe;var AKe=P.factorial;function $j(e,t,n,i,o,r){let s=0,a,c,u;if(i>0){for(c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(r.push(c),s+=$j(e,t,n,i-1,o,r),r.splice(r.length-1,1))}return s}for(s=1,c=0;c<o;c++){for(a=!1,u=0;u<r.length&&!a;u++)c===r[u]&&(a=!0);a||(s*=e-n[t[c]])}return s}var _3={type:"Hermite"};_3.getRequiredDataPoints=function(e,t){return t=y(t,0),Math.max(Math.floor((e+1)/(t+1)),2)};_3.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c,u,f,d=t.length,p=new Array(i);for(r=0;r<i;r++){o[r]=0;let b=new Array(d);for(p[r]=b,s=0;s<d;s++)b[s]=[]}let g=d,m=new Array(g);for(r=0;r<g;r++)m[r]=r;let x=d-1;for(c=0;c<i;c++){for(s=0;s<g;s++)f=m[s]*i+c,p[c][0].push(n[f]);for(r=1;r<g;r++){let b=!1;for(s=0;s<g-r;s++){let T=t[m[s]],A=t[m[s+r]],C;A-T<=0?(f=m[s]*i+i*r+c,C=n[f],p[c][r].push(C/AKe(r))):(C=p[c][r-1][s+1]-p[c][r-1][s],p[c][r].push(C/(A-T))),b=b||C!==0}b||(x=r-1)}}for(a=0,u=0;a<=u;a++)for(r=a;r<=x;r++){let b=$j(e,m,t,a,r,[]);for(c=0;c<i;c++){let T=p[c][r][0];o[c+a*i]+=T*b}}return o};var CKe=[];_3.interpolate=function(e,t,n,i,o,r,s){let a=i*(r+1);l(s)||(s=new Array(a));for(let T=0;T<a;T++)s[T]=0;let c=t.length,u=new Array(c*(o+1)),f;for(f=0;f<c;f++)for(let T=0;T<o+1;T++)u[f*(o+1)+T]=f;let d=u.length,p=CKe,g=EKe(p,u,t,n,i,o),m=[],x=d*(d+1)/2,b=Math.min(g,r);for(let T=0;T<=b;T++)for(f=T;f<=g;f++){m.length=0;let A=$j(e,u,t,T,f,m),C=Math.floor(f*(1-f)/2)+d*f;for(let S=0;S<i;S++){let v=Math.floor(S*x),D=p[v+C];s[S+T*i]+=D*A}}return s};function EKe(e,t,n,i,o,r){let s,a,c=-1,u=t.length,f=u*(u+1)/2;for(let d=0;d<o;d++){let p=Math.floor(d*f);for(s=0;s<u;s++)a=t[s]*o*(r+1)+d,e[p+s]=i[a];for(let g=1;g<u;g++){let m=0,x=Math.floor(g*(1-g)/2)+u*g,b=!1;for(s=0;s<u-g;s++){let T=n[t[s]],A=n[t[s+g]],C,S;if(A-T<=0)a=t[s]*o*(r+1)+o*g+d,C=i[a],S=C/P.factorial(g),e[p+x+m]=S,m++;else{let v=Math.floor((g-1)*(2-g)/2)+u*(g-1);C=e[p+v+s+1]-e[p+v+s],S=C/(A-T),e[p+x+m]=S,m++}b=b||C!==0}b&&(c=Math.max(c,g))}}return c}var g3=_3;var Qj={type:"Lagrange"};Qj.getRequiredDataPoints=function(e){return Math.max(e+1,2)};Qj.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a=t.length;for(r=0;r<i;r++)o[r]=0;for(r=0;r<a;r++){let c=1;for(s=0;s<a;s++)if(s!==r){let u=t[r]-t[s];c*=(e-t[s])/u}for(s=0;s<i;s++)o[s]+=c*n[r*i+s]}return o};var y3=Qj;var Jj={type:"Linear"};Jj.getRequiredDataPoints=function(e){return 2};Jj.interpolateOrderZero=function(e,t,n,i,o){l(o)||(o=new Array(i));let r,s,a,c=t[0],u=t[1];for(r=0;r<i;r++)s=n[r],a=n[r+i],o[r]=((a-s)*e+u*s-c*a)/(u-c);return o};var CC=Jj;function nc(e,t,n){this.clock=y(e,0),this.cone=y(t,0),this.magnitude=y(n,1)}nc.fromCartesian3=function(e,t){let n=e.x,i=e.y,o=e.z,r=n*n+i*i;return l(t)||(t=new nc),t.clock=Math.atan2(i,n),t.cone=Math.atan2(Math.sqrt(r),o),t.magnitude=Math.sqrt(r+o*o),t};nc.clone=function(e,t){if(l(e))return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=e.magnitude,t):new nc(e.clock,e.cone,e.magnitude)};nc.normalize=function(e,t){return l(t)?(t.clock=e.clock,t.cone=e.cone,t.magnitude=1,t):new nc(e.clock,e.cone,1)};nc.equals=function(e,t){return e===t||l(e)&&l(t)&&e.clock===t.clock&&e.cone===t.cone&&e.magnitude===t.magnitude};nc.equalsEpsilon=function(e,t,n){return n=y(n,0),e===t||l(e)&&l(t)&&Math.abs(e.clock-t.clock)<=n&&Math.abs(e.cone-t.cone)<=n&&Math.abs(e.magnitude-t.magnitude)<=n};nc.prototype.equals=function(e){return nc.equals(this,e)};nc.prototype.clone=function(e){return nc.clone(this,e)};nc.prototype.equalsEpsilon=function(e,t){return nc.equalsEpsilon(this,e,t)};nc.prototype.toString=function(){return`(${this.clock}, ${this.cone}, ${this.magnitude})`};var x3=nc;var CD=Er(zl(),1);var e7;typeof performance<"u"&&typeof performance.now=="function"&&isFinite(performance.now())?e7=function(){return performance.now()}:e7=function(){return Date.now()};var Ti=e7;function t7(e){e=y(e,y.EMPTY_OBJECT);let t=e.currentTime,n=e.startTime,i=e.stopTime;l(t)?t=K.clone(t):l(n)?t=K.clone(n):l(i)?t=K.addDays(i,-1,new K):t=K.now(),l(n)?n=K.clone(n):n=K.clone(t),l(i)?i=K.clone(i):i=K.addDays(n,1,new K),this.startTime=n,this.stopTime=i,this.clockRange=y(e.clockRange,Yr.UNBOUNDED),this.canAnimate=y(e.canAnimate,!0),this.onTick=new me,this.onStop=new me,this._currentTime=void 0,this._multiplier=void 0,this._clockStep=void 0,this._shouldAnimate=void 0,this._lastSystemTime=Ti(),this.currentTime=t,this.multiplier=y(e.multiplier,1),this.shouldAnimate=y(e.shouldAnimate,!1),this.clockStep=y(e.clockStep,po.SYSTEM_CLOCK_MULTIPLIER)}Object.defineProperties(t7.prototype,{currentTime:{get:function(){return this._currentTime},set:function(e){K.equals(this._currentTime,e)||(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._currentTime=e)}},multiplier:{get:function(){return this._multiplier},set:function(e){this._multiplier!==e&&(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._multiplier=e)}},clockStep:{get:function(){return this._clockStep},set:function(e){e===po.SYSTEM_CLOCK&&(this._multiplier=1,this._shouldAnimate=!0,this._currentTime=K.now()),this._clockStep=e}},shouldAnimate:{get:function(){return this._shouldAnimate},set:function(e){this._shouldAnimate!==e&&(this._clockStep===po.SYSTEM_CLOCK&&(this._clockStep=po.SYSTEM_CLOCK_MULTIPLIER),this._shouldAnimate=e)}}});t7.prototype.tick=function(){let e=Ti(),t=K.clone(this._currentTime);if(this.canAnimate&&this._shouldAnimate){let n=this._clockStep;if(n===po.SYSTEM_CLOCK)t=K.now(t);else{let i=this._multiplier;if(n===po.TICK_DEPENDENT)t=K.addSeconds(t,i,t);else{let a=e-this._lastSystemTime;t=K.addSeconds(t,i*(a/1e3),t)}let o=this.clockRange,r=this.startTime,s=this.stopTime;if(o===Yr.CLAMPED)K.lessThan(t,r)?t=K.clone(r,t):K.greaterThan(t,s)&&(t=K.clone(s,t),this.onStop.raiseEvent(this));else if(o===Yr.LOOP_STOP)for(K.lessThan(t,r)&&(t=K.clone(r,t));K.greaterThan(t,s);)t=K.addSeconds(r,K.secondsDifference(t,s),t),this.onStop.raiseEvent(this)}}return this._currentTime=t,this._lastSystemTime=e,this.onTick.raiseEvent(this),t};var tm=t7;function Lx(){this._definitionChanged=new me,this._startTime=void 0,this._stopTime=void 0,this._currentTime=void 0,this._clockRange=void 0,this._clockStep=void 0,this._multiplier=void 0}Object.defineProperties(Lx.prototype,{definitionChanged:{get:function(){return this._definitionChanged}},startTime:Kl("startTime"),stopTime:Kl("stopTime"),currentTime:Kl("currentTime"),clockRange:Kl("clockRange"),clockStep:Kl("clockStep"),multiplier:Kl("multiplier")});Lx.prototype.clone=function(e){return l(e)||(e=new Lx),e.startTime=this.startTime,e.stopTime=this.stopTime,e.currentTime=this.currentTime,e.clockRange=this.clockRange,e.clockStep=this.clockStep,e.multiplier=this.multiplier,e};Lx.prototype.equals=function(e){return this===e||l(e)&&K.equals(this.startTime,e.startTime)&&K.equals(this.stopTime,e.stopTime)&&K.equals(this.currentTime,e.currentTime)&&this.clockRange===e.clockRange&&this.clockStep===e.clockStep&&this.multiplier===e.multiplier};Lx.prototype.merge=function(e){this.startTime=y(this.startTime,e.startTime),this.stopTime=y(this.stopTime,e.stopTime),this.currentTime=y(this.currentTime,e.currentTime),this.clockRange=y(this.clockRange,e.clockRange),this.clockStep=y(this.clockStep,e.clockStep),this.multiplier=y(this.multiplier,e.multiplier)};Lx.prototype.getValue=function(e){return l(e)||(e=new tm),e.startTime=y(this.startTime,e.startTime),e.stopTime=y(this.stopTime,e.stopTime),e.currentTime=y(this.currentTime,e.currentTime),e.clockRange=y(this.clockRange,e.clockRange),e.multiplier=y(this.multiplier,e.multiplier),e.clockStep=y(this.clockStep,e.clockStep),e};var nm=Lx;var SKe=z.WHITE,vKe=.1,wKe=new U(8,8),DKe=new U(0,0),IKe=new U(1,1);function EC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._cellAlpha=void 0,this._cellAlphaSubscription=void 0,this._lineCount=void 0,this._lineCountSubscription=void 0,this._lineThickness=void 0,this._lineThicknessSubscription=void 0,this._lineOffset=void 0,this._lineOffsetSubscription=void 0,this.color=e.color,this.cellAlpha=e.cellAlpha,this.lineCount=e.lineCount,this.lineThickness=e.lineThickness,this.lineOffset=e.lineOffset}Object.defineProperties(EC.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._cellAlpha)&&Y.isConstant(this._lineCount)&&Y.isConstant(this._lineThickness)&&Y.isConstant(this._lineOffset)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),cellAlpha:le("cellAlpha"),lineCount:le("lineCount"),lineThickness:le("lineThickness"),lineOffset:le("lineOffset")});EC.prototype.getType=function(e){return"Grid"};var PKe=new K;EC.prototype.getValue=function(e,t){return l(e)||(e=K.now(PKe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,SKe,t.color),t.cellAlpha=Y.getValueOrDefault(this._cellAlpha,e,vKe),t.lineCount=Y.getValueOrClonedDefault(this._lineCount,e,wKe,t.lineCount),t.lineThickness=Y.getValueOrClonedDefault(this._lineThickness,e,IKe,t.lineThickness),t.lineOffset=Y.getValueOrClonedDefault(this._lineOffset,e,DKe,t.lineOffset),t};EC.prototype.equals=function(e){return this===e||e instanceof EC&&Y.equals(this._color,e._color)&&Y.equals(this._cellAlpha,e._cellAlpha)&&Y.equals(this._lineCount,e._lineCount)&&Y.equals(this._lineThickness,e._lineThickness)&&Y.equals(this._lineOffset,e._lineOffset)};var hD=EC;function SC(e){this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this.color=e}Object.defineProperties(SC.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color")});SC.prototype.getType=function(e){return"PolylineArrow"};var RKe=new K;SC.prototype.getValue=function(e,t){return l(e)||(e=K.now(RKe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,z.WHITE,t.color),t};SC.prototype.equals=function(e){return this===e||e instanceof SC&&Y.equals(this._color,e._color)};var mD=SC;var OKe=z.WHITE,MKe=z.TRANSPARENT,LKe=16,NKe=255;function vC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._gapColor=void 0,this._gapColorSubscription=void 0,this._dashLength=void 0,this._dashLengthSubscription=void 0,this._dashPattern=void 0,this._dashPatternSubscription=void 0,this.color=e.color,this.gapColor=e.gapColor,this.dashLength=e.dashLength,this.dashPattern=e.dashPattern}Object.defineProperties(vC.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._gapColor)&&Y.isConstant(this._dashLength)&&Y.isConstant(this._dashPattern)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),gapColor:le("gapColor"),dashLength:le("dashLength"),dashPattern:le("dashPattern")});vC.prototype.getType=function(e){return"PolylineDash"};var FKe=new K;vC.prototype.getValue=function(e,t){return l(e)||(e=K.now(FKe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,OKe,t.color),t.gapColor=Y.getValueOrClonedDefault(this._gapColor,e,MKe,t.gapColor),t.dashLength=Y.getValueOrDefault(this._dashLength,e,LKe,t.dashLength),t.dashPattern=Y.getValueOrDefault(this._dashPattern,e,NKe,t.dashPattern),t};vC.prototype.equals=function(e){return this===e||e instanceof vC&&Y.equals(this._color,e._color)&&Y.equals(this._gapColor,e._gapColor)&&Y.equals(this._dashLength,e._dashLength)&&Y.equals(this._dashPattern,e._dashPattern)};var pD=vC;var BKe=z.WHITE,kKe=.25,VKe=1;function wC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._glowPower=void 0,this._glowPowerSubscription=void 0,this._taperPower=void 0,this._taperPowerSubscription=void 0,this.color=e.color,this.glowPower=e.glowPower,this.taperPower=e.taperPower}Object.defineProperties(wC.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._glow)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),glowPower:le("glowPower"),taperPower:le("taperPower")});wC.prototype.getType=function(e){return"PolylineGlow"};var UKe=new K;wC.prototype.getValue=function(e,t){return l(e)||(e=K.now(UKe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,BKe,t.color),t.glowPower=Y.getValueOrDefault(this._glowPower,e,kKe,t.glowPower),t.taperPower=Y.getValueOrDefault(this._taperPower,e,VKe,t.taperPower),t};wC.prototype.equals=function(e){return this===e||e instanceof wC&&Y.equals(this._color,e._color)&&Y.equals(this._glowPower,e._glowPower)&&Y.equals(this._taperPower,e._taperPower)};var _D=wC;var zKe=z.WHITE,HKe=z.BLACK,GKe=1;function DC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._color=void 0,this._colorSubscription=void 0,this._outlineColor=void 0,this._outlineColorSubscription=void 0,this._outlineWidth=void 0,this._outlineWidthSubscription=void 0,this.color=e.color,this.outlineColor=e.outlineColor,this.outlineWidth=e.outlineWidth}Object.defineProperties(DC.prototype,{isConstant:{get:function(){return Y.isConstant(this._color)&&Y.isConstant(this._outlineColor)&&Y.isConstant(this._outlineWidth)}},definitionChanged:{get:function(){return this._definitionChanged}},color:le("color"),outlineColor:le("outlineColor"),outlineWidth:le("outlineWidth")});DC.prototype.getType=function(e){return"PolylineOutline"};var WKe=new K;DC.prototype.getValue=function(e,t){return l(e)||(e=K.now(WKe)),l(t)||(t={}),t.color=Y.getValueOrClonedDefault(this._color,e,zKe,t.color),t.outlineColor=Y.getValueOrClonedDefault(this._outlineColor,e,HKe,t.outlineColor),t.outlineWidth=Y.getValueOrDefault(this._outlineWidth,e,GKe),t};DC.prototype.equals=function(e){return this===e||e instanceof DC&&Y.equals(this._color,e._color)&&Y.equals(this._outlineColor,e._outlineColor)&&Y.equals(this._outlineWidth,e._outlineWidth)};var Nx=DC;function Xp(e,t){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new _r,this._referenceFrame=y(t,ki.FIXED),this.setValue(e)}Object.defineProperties(Xp.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}}});var jKe=new K;Xp.prototype.getValue=function(e,t){return l(e)||(e=K.now(jKe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};Xp.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._value;if(!l(i))return;let o=i.length;l(n)||(n=new Array(o));let r=0,s=0;for(;r<o;){let c=i[r].getValueInReferenceFrame(e,t,n[r]);l(c)&&(n[s]=c,s++),r++}return n.length=s,n};Xp.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,Xp.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};Xp.prototype.equals=function(e){return this===e||e instanceof Xp&&this._referenceFrame===e._referenceFrame&&Y.arrayEquals(this._value,e._value)};Xp.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var ey=Xp;function ty(e){this._value=void 0,this._definitionChanged=new me,this._eventHelper=new _r,this.setValue(e)}Object.defineProperties(ty.prototype,{isConstant:{get:function(){let e=this._value;if(!l(e))return!0;let t=e.length;for(let n=0;n<t;n++)if(!Y.isConstant(e[n]))return!1;return!0}},definitionChanged:{get:function(){return this._definitionChanged}}});var qKe=new K;ty.prototype.getValue=function(e,t){l(e)||(e=K.now(qKe));let n=this._value;if(!l(n))return;let i=n.length;l(t)||(t=new Array(i));let o=0,r=0;for(;o<i;){let a=this._value[o].getValue(e,t[o]);l(a)&&(t[r]=a,r++),o++}return t.length=r,t};ty.prototype.setValue=function(e){let t=this._eventHelper;if(t.removeAll(),l(e)){this._value=e.slice();let n=e.length;for(let i=0;i<n;i++){let o=e[i];l(o)&&t.add(o.definitionChanged,ty.prototype._raiseDefinitionChanged,this)}}else this._value=void 0;this._definitionChanged.raiseEvent(this)};ty.prototype.equals=function(e){return this===e||e instanceof ty&&Y.arrayEquals(this._value,e._value)};ty.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var gD=ty;function Fx(e){let t=e._targetProperty;if(!l(t)){let n=e._targetEntity;if(!l(n)){if(n=e._targetCollection.getById(e._targetId),!l(n)){e._targetEntity=e._targetProperty=void 0;return}n.definitionChanged.addEventListener(fu.prototype._onTargetEntityDefinitionChanged,e),e._targetEntity=n}let i=e._targetPropertyNames;t=e._targetEntity;for(let o=0,r=i.length;o<r&&l(t);++o)t=t[i[o]];e._targetProperty=t}return t}function fu(e,t,n){this._targetCollection=e,this._targetId=t,this._targetPropertyNames=n,this._targetProperty=void 0,this._targetEntity=void 0,this._definitionChanged=new me,e.collectionChanged.addEventListener(fu.prototype._onCollectionChanged,this)}Object.defineProperties(fu.prototype,{isConstant:{get:function(){return Y.isConstant(Fx(this))}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){let e=Fx(this);return l(e)?e.referenceFrame:void 0}},targetId:{get:function(){return this._targetId}},targetCollection:{get:function(){return this._targetCollection}},targetPropertyNames:{get:function(){return this._targetPropertyNames}},resolvedProperty:{get:function(){return Fx(this)}}});fu.fromString=function(e,t){let n,i=[],o=!0,r=!1,s="";for(let a=0;a<t.length;++a){let c=t.charAt(a);r?(s+=c,r=!1):c==="\\"?r=!0:o&&c==="#"?(n=s,o=!1,s=""):!o&&c==="."?(i.push(s),s=""):s+=c}return i.push(s),new fu(e,n,i)};var YKe=new K;fu.prototype.getValue=function(e,t){let n=Fx(this);return l(e)||(e=K.now(YKe)),l(n)?n.getValue(e,t):void 0};fu.prototype.getValueInReferenceFrame=function(e,t,n){let i=Fx(this);return l(i)?i.getValueInReferenceFrame(e,t,n):void 0};fu.prototype.getType=function(e){let t=Fx(this);return l(t)?t.getType(e):void 0};fu.prototype.equals=function(e){if(this===e)return!0;let t=this._targetPropertyNames,n=e._targetPropertyNames;if(this._targetCollection!==e._targetCollection||this._targetId!==e._targetId||t.length!==n.length)return!1;let i=this._targetPropertyNames.length;for(let o=0;o<i;o++)if(t[o]!==n[o])return!1;return!0};fu.prototype._onTargetEntityDefinitionChanged=function(e,t,n,i){l(this._targetProperty)&&this._targetPropertyNames[0]===t&&(this._targetProperty=void 0,this._definitionChanged.raiseEvent(this))};fu.prototype._onCollectionChanged=function(e,t,n){let i=this._targetEntity;l(i)&&n.indexOf(i)!==-1?(i.definitionChanged.removeEventListener(fu.prototype._onTargetEntityDefinitionChanged,this),this._targetEntity=this._targetProperty=void 0):l(i)||(i=Fx(this),l(i)&&this._definitionChanged.raiseEvent(this))};var ny=fu;var XKe={packedLength:1,pack:function(e,t,n){return n=y(n,0),t[n]=e,t},unpack:function(e,t,n){return t=y(t,0),e[t]},convertPackedArrayForInterpolation:function(e,t,n,i){l(i)||(i=[]),t=y(t,0),n=y(n,e.length);let o;for(let r=0,s=n-t+1;r<s;r++){let a=e[t+r];r===0||Math.abs(o-a)<Math.PI?i[r]=a:i[r]=a-P.TWO_PI,o=a}},unpackInterpolationResult:function(e,t,n,i,o){return o=e[0],o<0?o+P.TWO_PI:o}},Dd=XKe;var bue={packedLength:1,pack:function(e,t,n){n=y(n,0),t[n]=e},unpack:function(e,t,n){return t=y(t,0),e[t]}};function Tue(e,t,n){let i,o=e.length,r=n.length,s=o+r;if(e.length=s,o!==t){let a=o-1;for(i=s-1;i>=t;i--)e[i]=e[a--]}for(i=0;i<r;i++)e[t++]=n[i]}function Aue(e,t){return e instanceof K?e:typeof e=="string"?K.fromIso8601(e):K.addSeconds(t,e,new K)}var n7=[],i7=[];function b3(e,t,n,i,o){let r=0,s,a,c,u,f,d;for(;r<i.length;){f=Aue(i[r],e),c=Po(t,f,K.compare);let p=0,g=0;if(c<0){for(c=~c,u=c*o,a=void 0,d=t[c];r<i.length&&(f=Aue(i[r],e),!(l(a)&&K.compare(a,f)>=0||l(d)&&K.compare(f,d)>=0));){for(n7[p++]=f,r=r+1,s=0;s<o;s++)i7[g++]=i[r],r=r+1;a=f}p>0&&(i7.length=g,Tue(n,u,i7),n7.length=p,Tue(t,c,n7))}else{for(s=0;s<o;s++)r++,n[c*o+s]=i[r];r++}}}function Id(e,t){let n=e;n===Number&&(n=bue);let i=n.packedLength,o=y(n.packedInterpolationLength,i),r=0,s;if(l(t)){let a=t.length;s=new Array(a);for(let c=0;c<a;c++){let u=t[c];u===Number&&(u=bue);let f=u.packedLength;i+=f,o+=y(u.packedInterpolationLength,f),s[c]=u}r=a}this._type=e,this._innerType=n,this._interpolationDegree=1,this._interpolationAlgorithm=CC,this._numberOfPoints=0,this._times=[],this._values=[],this._xTable=[],this._yTable=[],this._packedLength=i,this._packedInterpolationLength=o,this._updateTableLength=!0,this._interpolationResult=new Array(o),this._definitionChanged=new me,this._derivativeTypes=t,this._innerDerivativeTypes=s,this._inputOrder=r,this._forwardExtrapolationType=wf.NONE,this._forwardExtrapolationDuration=0,this._backwardExtrapolationType=wf.NONE,this._backwardExtrapolationDuration=0}Object.defineProperties(Id.prototype,{isConstant:{get:function(){return this._values.length===0}},definitionChanged:{get:function(){return this._definitionChanged}},type:{get:function(){return this._type}},derivativeTypes:{get:function(){return this._derivativeTypes}},interpolationDegree:{get:function(){return this._interpolationDegree}},interpolationAlgorithm:{get:function(){return this._interpolationAlgorithm}},forwardExtrapolationType:{get:function(){return this._forwardExtrapolationType},set:function(e){this._forwardExtrapolationType!==e&&(this._forwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},forwardExtrapolationDuration:{get:function(){return this._forwardExtrapolationDuration},set:function(e){this._forwardExtrapolationDuration!==e&&(this._forwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationType:{get:function(){return this._backwardExtrapolationType},set:function(e){this._backwardExtrapolationType!==e&&(this._backwardExtrapolationType=e,this._definitionChanged.raiseEvent(this))}},backwardExtrapolationDuration:{get:function(){return this._backwardExtrapolationDuration},set:function(e){this._backwardExtrapolationDuration!==e&&(this._backwardExtrapolationDuration=e,this._definitionChanged.raiseEvent(this))}}});var KKe=new K;Id.prototype.getValue=function(e,t){l(e)||(e=K.now(KKe));let n=this._times,i=n.length;if(i===0)return;let o,r=this._innerType,s=this._values,a=Po(n,e,K.compare);if(a<0){if(a=~a,a===0){let S=n[a];if(o=this._backwardExtrapolationDuration,this._backwardExtrapolationType===wf.NONE||o!==0&&K.secondsDifference(S,e)>o)return;if(this._backwardExtrapolationType===wf.HOLD)return r.unpack(s,0,t)}if(a>=i){a=i-1;let S=n[a];if(o=this._forwardExtrapolationDuration,this._forwardExtrapolationType===wf.NONE||o!==0&&K.secondsDifference(e,S)>o)return;if(this._forwardExtrapolationType===wf.HOLD)return a=i-1,r.unpack(s,a*r.packedLength,t)}let c=this._xTable,u=this._yTable,f=this._interpolationAlgorithm,d=this._packedInterpolationLength,p=this._inputOrder;if(this._updateTableLength){this._updateTableLength=!1;let S=Math.min(f.getRequiredDataPoints(this._interpolationDegree,p),i);S!==this._numberOfPoints&&(this._numberOfPoints=S,c.length=S,u.length=S*d)}let g=this._numberOfPoints-1;if(g<1)return;let m=0,x=i-1;if(x-m+1>=g+1){let S=a-(g/2|0)-1;S<m&&(S=m);let v=S+g;v>x&&(v=x,S=v-g,S<m&&(S=m)),m=S,x=v}let T=x-m+1;for(let S=0;S<T;++S)c[S]=K.secondsDifference(n[m+S],n[x]);if(l(r.convertPackedArrayForInterpolation))r.convertPackedArrayForInterpolation(s,m,x,u);else{let S=0,v=this._packedLength,D=m*v,O=(x+1)*v;for(;D<O;)u[S]=s[D],D++,S++}let A=K.secondsDifference(e,n[x]),C;if(p===0||!l(f.interpolate))C=f.interpolateOrderZero(A,c,u,d,this._interpolationResult);else{let S=Math.floor(d/(p+1));C=f.interpolate(A,c,u,S,p,p,this._interpolationResult)}return l(r.unpackInterpolationResult)?r.unpackInterpolationResult(C,s,m,x,t):r.unpack(C,0,t)}return r.unpack(s,a*this._packedLength,t)};Id.prototype.setInterpolationOptions=function(e){if(!l(e))return;let t=!1,n=e.interpolationAlgorithm,i=e.interpolationDegree;l(n)&&this._interpolationAlgorithm!==n&&(this._interpolationAlgorithm=n,t=!0),l(i)&&this._interpolationDegree!==i&&(this._interpolationDegree=i,t=!0),t&&(this._updateTableLength=!0,this._definitionChanged.raiseEvent(this))};Id.prototype.addSample=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=[];if(s.push(e),r.pack(t,s,s.length),o){let a=i.length;for(let c=0;c<a;c++)i[c].pack(n[c],s,s.length)}b3(void 0,this._times,this._values,s,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Id.prototype.addSamples=function(e,t,n){let i=this._innerDerivativeTypes,o=l(i),r=this._innerType,s=e.length,a=[];for(let c=0;c<s;c++)if(a.push(e[c]),r.pack(t[c],a,a.length),o){let u=n[c],f=i.length;for(let d=0;d<f;d++)i[d].pack(u[d],a,a.length)}b3(void 0,this._times,this._values,a,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Id.prototype.addSamplesPackedArray=function(e,t){b3(t,this._times,this._values,e,this._packedLength),this._updateTableLength=!0,this._definitionChanged.raiseEvent(this)};Id.prototype.removeSample=function(e){let t=Po(this._times,e,K.compare);return t<0?!1:(Cue(this,t,1),!0)};function Cue(e,t,n){let i=e._packedLength;e._times.splice(t,n),e._values.splice(t*i,n*i),e._updateTableLength=!0,e._definitionChanged.raiseEvent(e)}Id.prototype.removeSamples=function(e){let t=this._times,n=Po(t,e.start,K.compare);n<0?n=~n:e.isStartIncluded||++n;let i=Po(t,e.stop,K.compare);i<0?i=~i:e.isStopIncluded&&++i,Cue(this,n,i-n)};Id.prototype.equals=function(e){if(this===e)return!0;if(!l(e)||this._type!==e._type||this._interpolationDegree!==e._interpolationDegree||this._interpolationAlgorithm!==e._interpolationAlgorithm)return!1;let t=this._derivativeTypes,n=l(t),i=e._derivativeTypes,o=l(i);if(n!==o)return!1;let r,s;if(n){if(s=t.length,s!==i.length)return!1;for(r=0;r<s;r++)if(t[r]!==i[r])return!1}let a=this._times,c=e._times;if(s=a.length,s!==c.length)return!1;for(r=0;r<s;r++)if(!K.equals(a[r],c[r]))return!1;let u=this._values,f=e._values;for(s=u.length,r=0;r<s;r++)if(u[r]!==f[r])return!1;return!0};Id._mergeNewSamples=b3;var Df=Id;function If(e,t){t=y(t,0);let n;if(t>0){n=new Array(t);for(let i=0;i<t;i++)n[i]=h}this._numberOfDerivatives=t,this._property=new Df(h,n),this._definitionChanged=new me,this._referenceFrame=y(e,ki.FIXED),this._property._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)}Object.defineProperties(If.prototype,{isConstant:{get:function(){return this._property.isConstant}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return this._referenceFrame}},interpolationDegree:{get:function(){return this._property.interpolationDegree}},interpolationAlgorithm:{get:function(){return this._property.interpolationAlgorithm}},numberOfDerivatives:{get:function(){return this._numberOfDerivatives}},forwardExtrapolationType:{get:function(){return this._property.forwardExtrapolationType},set:function(e){this._property.forwardExtrapolationType=e}},forwardExtrapolationDuration:{get:function(){return this._property.forwardExtrapolationDuration},set:function(e){this._property.forwardExtrapolationDuration=e}},backwardExtrapolationType:{get:function(){return this._property.backwardExtrapolationType},set:function(e){this._property.backwardExtrapolationType=e}},backwardExtrapolationDuration:{get:function(){return this._property.backwardExtrapolationDuration},set:function(e){this._property.backwardExtrapolationDuration=e}}});var ZKe=new K;If.prototype.getValue=function(e,t){return l(e)||(e=K.now(ZKe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};If.prototype.getValueInReferenceFrame=function(e,t,n){if(n=this._property.getValue(e,n),l(n))return Sh.convertToReferenceFrame(e,n,this._referenceFrame,t,n)};If.prototype.setInterpolationOptions=function(e){this._property.setInterpolationOptions(e)};If.prototype.addSample=function(e,t,n){let i=this._numberOfDerivatives;this._property.addSample(e,t,n)};If.prototype.addSamples=function(e,t,n){this._property.addSamples(e,t,n)};If.prototype.addSamplesPackedArray=function(e,t){this._property.addSamplesPackedArray(e,t)};If.prototype.removeSample=function(e){return this._property.removeSample(e)};If.prototype.removeSamples=function(e){this._property.removeSamples(e)};If.prototype.equals=function(e){return this===e||e instanceof If&&Y.equals(this._property,e._property)&&this._referenceFrame===e._referenceFrame};var Sa=If;var $Ke={HORIZONTAL:0,VERTICAL:1},im=Object.freeze($Ke);var QKe=im.HORIZONTAL,JKe=z.WHITE,eZe=z.BLACK,tZe=0,nZe=1;function IC(e){e=y(e,y.EMPTY_OBJECT),this._definitionChanged=new me,this._orientation=void 0,this._orientationSubscription=void 0,this._evenColor=void 0,this._evenColorSubscription=void 0,this._oddColor=void 0,this._oddColorSubscription=void 0,this._offset=void 0,this._offsetSubscription=void 0,this._repeat=void 0,this._repeatSubscription=void 0,this.orientation=e.orientation,this.evenColor=e.evenColor,this.oddColor=e.oddColor,this.offset=e.offset,this.repeat=e.repeat}Object.defineProperties(IC.prototype,{isConstant:{get:function(){return Y.isConstant(this._orientation)&&Y.isConstant(this._evenColor)&&Y.isConstant(this._oddColor)&&Y.isConstant(this._offset)&&Y.isConstant(this._repeat)}},definitionChanged:{get:function(){return this._definitionChanged}},orientation:le("orientation"),evenColor:le("evenColor"),oddColor:le("oddColor"),offset:le("offset"),repeat:le("repeat")});IC.prototype.getType=function(e){return"Stripe"};var iZe=new K;IC.prototype.getValue=function(e,t){return l(e)||(e=K.now(iZe)),l(t)||(t={}),t.horizontal=Y.getValueOrDefault(this._orientation,e,QKe)===im.HORIZONTAL,t.evenColor=Y.getValueOrClonedDefault(this._evenColor,e,JKe,t.evenColor),t.oddColor=Y.getValueOrClonedDefault(this._oddColor,e,eZe,t.oddColor),t.offset=Y.getValueOrDefault(this._offset,e,tZe),t.repeat=Y.getValueOrDefault(this._repeat,e,nZe),t};IC.prototype.equals=function(e){return this===e||e instanceof IC&&Y.equals(this._orientation,e._orientation)&&Y.equals(this._evenColor,e._evenColor)&&Y.equals(this._oddColor,e._oddColor)&&Y.equals(this._offset,e._offset)&&Y.equals(this._repeat,e._repeat)};var yD=IC;function iy(e){this._definitionChanged=new me,this._intervals=new jr,this._intervals.changedEvent.addEventListener(iy.prototype._intervalsChanged,this),this._referenceFrame=y(e,ki.FIXED)}Object.defineProperties(iy.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}},referenceFrame:{get:function(){return this._referenceFrame}}});var oZe=new K;iy.prototype.getValue=function(e,t){return l(e)||(e=K.now(oZe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};iy.prototype.getValueInReferenceFrame=function(e,t,n){let i=this._intervals.findDataForIntervalContainingDate(e);if(l(i))return Sh.convertToReferenceFrame(e,i,this._referenceFrame,t,n)};iy.prototype.equals=function(e){return this===e||e instanceof iy&&this._intervals.equals(e._intervals,Y.equals)&&this._referenceFrame===e._referenceFrame};iy.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var oy=iy;function Bx(){this._definitionChanged=new me,this._intervals=new jr,this._intervals.changedEvent.addEventListener(Bx.prototype._intervalsChanged,this)}Object.defineProperties(Bx.prototype,{isConstant:{get:function(){return this._intervals.isEmpty}},definitionChanged:{get:function(){return this._definitionChanged}},intervals:{get:function(){return this._intervals}}});var rZe=new K;Bx.prototype.getValue=function(e,t){l(e)||(e=K.now(rZe));let n=this._intervals.findDataForIntervalContainingDate(e);return l(n)&&typeof n.clone=="function"?n.clone(t):n};Bx.prototype.equals=function(e){return this===e||e instanceof Bx&&this._intervals.equals(e._intervals,Y.equals)};Bx.prototype._intervalsChanged=function(){this._definitionChanged.raiseEvent(this)};var ry=Bx;function PC(e,t){this._position=void 0,this._subscription=void 0,this._definitionChanged=new me,this._normalize=y(t,!0),this.position=e}Object.defineProperties(PC.prototype,{isConstant:{get:function(){return Y.isConstant(this._position)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._position},set:function(e){let t=this._position;t!==e&&(l(t)&&this._subscription(),this._position=e,l(e)&&(this._subscription=e._definitionChanged.addEventListener(function(){this._definitionChanged.raiseEvent(this)},this)),this._definitionChanged.raiseEvent(this))}},normalize:{get:function(){return this._normalize},set:function(e){this._normalize!==e&&(this._normalize=e,this._definitionChanged.raiseEvent(this))}}});var sZe=new h,Eue=new h,Sue=new K,aZe=new K,o7=1/60;PC.prototype.getValue=function(e,t){return this._getValue(e,t)};PC.prototype._getValue=function(e,t,n){l(e)||(e=K.now(aZe)),l(t)||(t=new h);let i=this._position;if(Y.isConstant(i))return this._normalize?void 0:h.clone(h.ZERO,t);let o=i.getValue(e,sZe),r=i.getValue(K.addSeconds(e,o7,Sue),Eue);if(!l(o)||!l(r)&&(r=o,o=i.getValue(K.addSeconds(e,-o7,Sue),Eue),!l(o)))return;if(h.equals(o,r))return this._normalize?void 0:h.clone(h.ZERO,t);l(n)&&o.clone(n);let s=h.subtract(r,o,t);return this._normalize?h.normalize(s,t):h.divideByScalar(s,o7,t)};PC.prototype.equals=function(e){return this===e||e instanceof PC&&Y.equals(this._position,e._position)};var RC=PC;function xD(e,t){this._velocityVectorProperty=new RC(e,!0),this._subscription=void 0,this._ellipsoid=void 0,this._definitionChanged=new me,this.ellipsoid=y(t,ee.default);let n=this;this._velocityVectorProperty.definitionChanged.addEventListener(function(){n._definitionChanged.raiseEvent(n)})}Object.defineProperties(xD.prototype,{isConstant:{get:function(){return Y.isConstant(this._velocityVectorProperty)}},definitionChanged:{get:function(){return this._definitionChanged}},position:{get:function(){return this._velocityVectorProperty.position},set:function(e){this._velocityVectorProperty.position=e}},ellipsoid:{get:function(){return this._ellipsoid},set:function(e){this._ellipsoid!==e&&(this._ellipsoid=e,this._definitionChanged.raiseEvent(this))}}});var vue=new h,cZe=new h,wue=new $,lZe=new K;xD.prototype.getValue=function(e,t){l(e)||(e=K.now(lZe));let n=this._velocityVectorProperty._getValue(e,cZe,vue);if(l(n))return Nt.rotationMatrixFromPositionVelocity(vue,n,this._ellipsoid,wue),Me.fromRotationMatrix(wue,t)};xD.prototype.equals=function(e){return this===e||e instanceof xD&&Y.equals(this._velocityVectorProperty,e._velocityVectorProperty)&&(this._ellipsoid===e._ellipsoid||this._ellipsoid.equals(e._ellipsoid))};var T3=xD;var Kp={COMPLETE:0,BELOW_ELLIPSOID_HORIZON:1,ABOVE_ELLIPSOID_HORIZON:2};Kp.validate=function(e){return e===Kp.COMPLETE||e===Kp.BELOW_ELLIPSOID_HORIZON||e===Kp.ABOVE_ELLIPSOID_HORIZON};Kp.toString=function(e){switch(e){case Kp.COMPLETE:return"COMPLETE";case Kp.BELOW_ELLIPSOID_HORIZON:return"BELOW_ELLIPSOID_HORIZON";case Kp.ABOVE_ELLIPSOID_HORIZON:return"ABOVE_ELLIPSOID_HORIZON";default:throw new he("SensorVolumePortionToDisplay value is not valid and cannot be converted to a String.")}};var bD=Kp;function sy(){}sy.packedLength=h.packedLength;sy.unpack=h.unpack;sy.pack=h.pack;var r7;function TD(e,t){return t[0]==="#"&&(t=r7+t),ny.fromString(e,t)}function Due(e,t,n){if(l(n.reference))return TD(t,n.reference);if(l(n.velocityReference)){let i=TD(t,n.velocityReference);switch(e){case h:case sy:return new RC(i,e===sy);case Me:return new T3(i)}}throw new ce(`${JSON.stringify(n)} is not valid CZML.`)}function uZe(e,t){return new Ih(function(n,i){return t(e.getValue(n,i))},e.isConstant)}var Mi=new h,Uc=new x3,ic=new fe,kx=new Sn,A3=new Me;function fZe(e){let t=e.rgbaf;if(l(t))return t;let n=e.rgba;if(!l(n))return;let i=n.length;if(i===z.packedLength)return[z.byteToFloat(n[0]),z.byteToFloat(n[1]),z.byteToFloat(n[2]),z.byteToFloat(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=z.byteToFloat(n[o+1]),t[o+2]=z.byteToFloat(n[o+2]),t[o+3]=z.byteToFloat(n[o+3]),t[o+4]=z.byteToFloat(n[o+4]);return t}function Iue(e,t){let n=y(e.uri,e);return l(t)?t.getDerivedResource({url:n}):De.createIfNeeded(n)}function dZe(e){let t=e.wsen;if(l(t))return t;let n=e.wsenDegrees;if(!l(n))return;let i=n.length;if(i===re.packedLength)return[P.toRadians(n[0]),P.toRadians(n[1]),P.toRadians(n[2]),P.toRadians(n[3])];t=new Array(i);for(let o=0;o<i;o+=5)t[o]=n[o],t[o+1]=P.toRadians(n[o+1]),t[o+2]=P.toRadians(n[o+2]),t[o+3]=P.toRadians(n[o+3]),t[o+4]=P.toRadians(n[o+4]);return t}function hZe(e){let t=e.length;if(Uc.magnitude=1,t===2)return Uc.clock=e[0],Uc.cone=e[1],h.fromSpherical(Uc,Mi),[Mi.x,Mi.y,Mi.z];let n=new Array(t/3*4);for(let i=0,o=0;i<t;i+=3,o+=4)n[o]=e[i],Uc.clock=e[i+1],Uc.cone=e[i+2],h.fromSpherical(Uc,Mi),n[o+1]=Mi.x,n[o+2]=Mi.y,n[o+3]=Mi.z;return n}function mZe(e){let t=e.length;if(t===3)return Uc.clock=e[0],Uc.cone=e[1],Uc.magnitude=e[2],h.fromSpherical(Uc,Mi),[Mi.x,Mi.y,Mi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],Uc.clock=e[i+1],Uc.cone=e[i+2],Uc.magnitude=e[i+3],h.fromSpherical(Uc,Mi),n[i+1]=Mi.x,n[i+2]=Mi.y,n[i+3]=Mi.z;return n}function pZe(e){let t=e.length;if(t===3)return ic.longitude=e[0],ic.latitude=e[1],ic.height=e[2],ee.default.cartographicToCartesian(ic,Mi),[Mi.x,Mi.y,Mi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],ic.longitude=e[i+1],ic.latitude=e[i+2],ic.height=e[i+3],ee.default.cartographicToCartesian(ic,Mi),n[i+1]=Mi.x,n[i+2]=Mi.y,n[i+3]=Mi.z;return n}function _Ze(e){let t=e.length;if(t===3)return ic.longitude=P.toRadians(e[0]),ic.latitude=P.toRadians(e[1]),ic.height=e[2],ee.default.cartographicToCartesian(ic,Mi),[Mi.x,Mi.y,Mi.z];let n=new Array(t);for(let i=0;i<t;i+=4)n[i]=e[i],ic.longitude=P.toRadians(e[i+1]),ic.latitude=P.toRadians(e[i+2]),ic.height=e[i+3],ee.default.cartographicToCartesian(ic,Mi),n[i+1]=Mi.x,n[i+2]=Mi.y,n[i+3]=Mi.z;return n}function s7(e){let t=e.cartesian;if(l(t))return t;let n=e.cartesianVelocity;if(l(n))return n;let i=e.unitCartesian;if(l(i))return i;let o=e.unitSpherical;if(l(o))return hZe(o);let r=e.spherical;if(l(r))return mZe(r);let s=e.cartographicRadians;if(l(s))return pZe(s);let a=e.cartographicDegrees;if(l(a))return _Ze(a);throw new ce(`${JSON.stringify(e)} is not a valid CZML interval.`)}function Pue(e,t){h.unpack(e,t,Mi),h.normalize(Mi,Mi),h.pack(Mi,e,t)}function gZe(e){let t=s7(e);if(t.length===3)return Pue(t,0),t;for(let n=1;n<t.length;n+=4)Pue(t,n);return t}function Rue(e,t){Me.unpack(e,t,A3),Me.normalize(A3,A3),Me.pack(A3,e,t)}function yZe(e){let t=e.unitQuaternion;if(l(t)){if(t.length===4)return Rue(t,0),t;for(let n=1;n<t.length;n+=5)Rue(t,n)}return t}function Oue(e){return typeof e=="boolean"?Boolean:typeof e=="number"?Number:typeof e=="string"?String:e.hasOwnProperty("array")?Array:e.hasOwnProperty("boolean")?Boolean:e.hasOwnProperty("boundingRectangle")?qe:e.hasOwnProperty("cartesian2")?U:e.hasOwnProperty("cartesian")||e.hasOwnProperty("spherical")||e.hasOwnProperty("cartographicRadians")||e.hasOwnProperty("cartographicDegrees")?h:e.hasOwnProperty("unitCartesian")||e.hasOwnProperty("unitSpherical")?sy:e.hasOwnProperty("rgba")||e.hasOwnProperty("rgbaf")?z:e.hasOwnProperty("arcType")?tn:e.hasOwnProperty("classificationType")?kn:e.hasOwnProperty("colorBlendMode")?Oc:e.hasOwnProperty("cornerType")?Oi:e.hasOwnProperty("heightReference")?Ke:e.hasOwnProperty("horizontalOrigin")?gi:e.hasOwnProperty("date")?K:e.hasOwnProperty("labelStyle")?qo:e.hasOwnProperty("number")?Number:e.hasOwnProperty("nearFarScalar")?Vt:e.hasOwnProperty("distanceDisplayCondition")?Ft:e.hasOwnProperty("object")||e.hasOwnProperty("value")?Object:e.hasOwnProperty("unitQuaternion")?Me:e.hasOwnProperty("shadowMode")?yn:e.hasOwnProperty("string")?String:e.hasOwnProperty("stripeOrientation")?im:e.hasOwnProperty("wsen")||e.hasOwnProperty("wsenDegrees")?re:e.hasOwnProperty("uri")?CD.default:e.hasOwnProperty("verticalOrigin")?On:Object}function xZe(e,t,n){switch(e){case tn:return tn[y(t.arcType,t)];case Array:return t.array;case Boolean:return y(t.boolean,t);case qe:return t.boundingRectangle;case U:return t.cartesian2;case h:return s7(t);case sy:return gZe(t);case z:return fZe(t);case kn:return kn[y(t.classificationType,t)];case Oc:return Oc[y(t.colorBlendMode,t)];case Oi:return Oi[y(t.cornerType,t)];case Ke:return Ke[y(t.heightReference,t)];case gi:return gi[y(t.horizontalOrigin,t)];case Image:return Iue(t,n);case K:return K.fromIso8601(y(t.date,t));case qo:return qo[y(t.labelStyle,t)];case Number:return y(t.number,t);case Vt:return t.nearFarScalar;case Ft:return t.distanceDisplayCondition;case Object:return y(y(t.object,t.value),t);case Me:return yZe(t);case Dd:return y(t.number,t);case bD:return bD[y(t.portionToDisplay,t)];case yn:return yn[y(y(t.shadowMode,t.shadows),t)];case String:return y(t.string,t);case im:return im[y(t.stripeOrientation,t)];case re:return dZe(t);case CD.default:return Iue(t,n);case On:return On[y(t.verticalOrigin,t)];default:throw new ce(`Unknown CzmlDataSource interval type: ${e}`)}}var bZe={HERMITE:g3,LAGRANGE:y3,LINEAR:CC};function C3(e,t){let n=e.interpolationAlgorithm,i=e.interpolationDegree;(l(n)||l(i))&&t.setInterpolationOptions({interpolationAlgorithm:bZe[n],interpolationDegree:i});let o=e.forwardExtrapolationType;l(o)&&(t.forwardExtrapolationType=wf[o]);let r=e.forwardExtrapolationDuration;l(r)&&(t.forwardExtrapolationDuration=r);let s=e.backwardExtrapolationType;l(s)&&(t.backwardExtrapolationType=wf[s]);let a=e.backwardExtrapolationDuration;l(a)&&(t.backwardExtrapolationDuration=a)}var Mue={iso8601:void 0};function rr(e){if(l(e))return Mue.iso8601=e,Sn.fromIso8601(Mue)}function a7(e){let t=ze.MAXIMUM_INTERVAL.clone();return t.data=e,t}function Lue(e){let t=new Bc;return t.intervals.addInterval(a7(e)),t}function Nue(e){let t=new Ea(e.referenceFrame);return t.intervals.addInterval(a7(e)),t}function E3(e,t,n,i,o,r,s){let a=rr(i.interval);l(o)&&(l(a)?a=Sn.intersect(a,o,kx):a=o);let c,u,f,d=!l(i.reference)&&!l(i.velocityReference),p=l(a)&&!a.equals(ze.MAXIMUM_INTERVAL);if(i.delete===!0){if(!p){t[n]=void 0;return}return que(t[n],a)}let g=!1;if(d){if(u=xZe(e,i,r),!l(u))return;c=y(e.packedLength,1),f=y(u.length,1),g=!l(i.array)&&typeof u!="string"&&f>c&&e!==Object}let m=typeof e.unpack=="function"&&e!==Dd;if(!g&&!p){d?t[n]=new Xn(m?e.unpack(u,0):u):t[n]=Due(e,s,i);return}let x=t[n],b,T=i.epoch;if(l(T)&&(b=K.fromIso8601(T)),g&&!p){x instanceof Df||(t[n]=x=new Df(e)),x.addSamplesPackedArray(u,b),C3(i,x);return}let A;if(!g&&p){a=a.clone(),d?a.data=m?e.unpack(u,0):u:a.data=Due(e,s,i),l(x)||(t[n]=x=d?new ry:new Bc),d&&x instanceof ry?x.intervals.addInterval(a):x instanceof Bc?(d&&(a.data=new Xn(a.data)),x.intervals.addInterval(a)):(t[n]=x=Lue(x),d&&(a.data=new Xn(a.data)),x.intervals.addInterval(a));return}l(x)||(t[n]=x=new Bc),x instanceof Bc||(t[n]=x=Lue(x));let C=x.intervals;A=C.findInterval(a),(!l(A)||!(A.data instanceof Df))&&(A=a.clone(),A.data=new Df(e),C.addInterval(A)),A.data.addSamplesPackedArray(u,b),C3(i,A.data)}function que(e,t){if(e instanceof Df){e.removeSamples(t);return}else if(e instanceof ry){e.intervals.removeInterval(t);return}else if(e instanceof Bc){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Sn.intersect(n.get(i),t,kx);o.isEmpty||que(o.data,t)}n.removeInterval(t);return}}function ge(e,t,n,i,o,r,s){if(l(i))if(Array.isArray(i))for(let a=0,c=i.length;a<c;++a)E3(e,t,n,i[a],o,r,s);else E3(e,t,n,i,o,r,s)}function Fue(e,t,n,i,o,r){let s=rr(n.interval);l(i)&&(l(s)?s=Sn.intersect(s,i,kx):s=i);let a=l(n.cartesianVelocity)?1:0,c=h.packedLength*(a+1),u,f,d=!l(n.reference),p=l(s)&&!s.equals(ze.MAXIMUM_INTERVAL);if(n.delete===!0){if(!p){e[t]=void 0;return}return Yue(e[t],s)}let g,m=!1;if(d&&(l(n.referenceFrame)&&(g=ki[n.referenceFrame]),g=y(g,ki.FIXED),u=s7(n),f=y(u.length,1),m=f>c),!m&&!p){d?e[t]=new hl(h.unpack(u),g):e[t]=TD(r,n.reference);return}let x=e[t],b,T=n.epoch;if(l(T)&&(b=K.fromIso8601(T)),m&&!p){(!(x instanceof Sa)||l(g)&&x.referenceFrame!==g)&&(e[t]=x=new Sa(g,a)),x.addSamplesPackedArray(u,b),C3(n,x);return}let A;if(!m&&p){s=s.clone(),d?s.data=h.unpack(u):s.data=TD(r,n.reference),l(x)||(d?x=new oy(g):x=new Ea(g),e[t]=x),d&&x instanceof oy&&l(g)&&x.referenceFrame===g?x.intervals.addInterval(s):x instanceof Ea?(d&&(s.data=new hl(s.data,g)),x.intervals.addInterval(s)):(e[t]=x=Nue(x),d&&(s.data=new hl(s.data,g)),x.intervals.addInterval(s));return}l(x)?x instanceof Ea||(e[t]=x=Nue(x)):e[t]=x=new Ea(g);let C=x.intervals;A=C.findInterval(s),(!l(A)||!(A.data instanceof Sa)||l(g)&&A.data.referenceFrame!==g)&&(A=s.clone(),A.data=new Sa(g,a),C.addInterval(A)),A.data.addSamplesPackedArray(u,b),C3(n,A.data)}function Yue(e,t){if(e instanceof Sa){e.removeSamples(t);return}else if(e instanceof oy){e.intervals.removeInterval(t);return}else if(e instanceof Ea){let n=e.intervals;for(let i=0;i<n.length;++i){let o=Sn.intersect(n.get(i),t,kx);o.isEmpty||Yue(o.data,t)}n.removeInterval(t);return}}function Xue(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)Fue(e,t,n[s],i,o,r);else Fue(e,t,n,i,o,r)}function Bue(e,t,n,i){l(n.references)?S3(e,t,n.references,n.interval,i,gD,Bc):(l(n.cartesian2)?n.array=U.unpackArray(n.cartesian2):l(n.cartesian)&&(n.array=U.unpackArray(n.cartesian)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function kue(e,t,n,i,o,r){let s=rr(n.interval);l(i)&&(l(s)?s=Sn.intersect(s,i,kx):s=i);let a=e[t],c,u;if(l(s)){a instanceof iD||(a=new iD,e[t]=a);let d=a.intervals;u=d.findInterval({start:s.start,stop:s.stop}),l(u)?c=u.data:(u=s.clone(),d.addInterval(u))}else c=a;let f;l(n.solidColor)?(c instanceof Gt||(c=new Gt),f=n.solidColor,ge(z,c,"color",f.color,void 0,void 0,r)):l(n.grid)?(c instanceof hD||(c=new hD),f=n.grid,ge(z,c,"color",f.color,void 0,o,r),ge(Number,c,"cellAlpha",f.cellAlpha,void 0,o,r),ge(U,c,"lineCount",f.lineCount,void 0,o,r),ge(U,c,"lineThickness",f.lineThickness,void 0,o,r),ge(U,c,"lineOffset",f.lineOffset,void 0,o,r)):l(n.image)?(c instanceof z0||(c=new z0),f=n.image,ge(Image,c,"image",f.image,void 0,o,r),ge(U,c,"repeat",f.repeat,void 0,o,r),ge(z,c,"color",f.color,void 0,o,r),ge(Boolean,c,"transparent",f.transparent,void 0,o,r)):l(n.stripe)?(c instanceof yD||(c=new yD),f=n.stripe,ge(im,c,"orientation",f.orientation,void 0,o,r),ge(z,c,"evenColor",f.evenColor,void 0,o,r),ge(z,c,"oddColor",f.oddColor,void 0,o,r),ge(Number,c,"offset",f.offset,void 0,o,r),ge(Number,c,"repeat",f.repeat,void 0,o,r)):l(n.polylineOutline)?(c instanceof Nx||(c=new Nx),f=n.polylineOutline,ge(z,c,"color",f.color,void 0,o,r),ge(z,c,"outlineColor",f.outlineColor,void 0,o,r),ge(Number,c,"outlineWidth",f.outlineWidth,void 0,o,r)):l(n.polylineGlow)?(c instanceof _D||(c=new _D),f=n.polylineGlow,ge(z,c,"color",f.color,void 0,o,r),ge(Number,c,"glowPower",f.glowPower,void 0,o,r),ge(Number,c,"taperPower",f.taperPower,void 0,o,r)):l(n.polylineArrow)?(c instanceof mD||(c=new mD),f=n.polylineArrow,ge(z,c,"color",f.color,void 0,void 0,r)):l(n.polylineDash)?(c instanceof pD||(c=new pD),f=n.polylineDash,ge(z,c,"color",f.color,void 0,void 0,r),ge(z,c,"gapColor",f.gapColor,void 0,void 0,r),ge(Number,c,"dashLength",f.dashLength,void 0,o,r),ge(Number,c,"dashPattern",f.dashPattern,void 0,o,r)):l(n.checkerboard)&&(c instanceof Jw||(c=new Jw),f=n.checkerboard,ge(z,c,"evenColor",f.evenColor,void 0,o,r),ge(z,c,"oddColor",f.oddColor,void 0,o,r),ge(U,c,"repeat",f.repeat,void 0,o,r)),l(u)?u.data=c:e[t]=c}function du(e,t,n,i,o,r){if(l(n))if(Array.isArray(n))for(let s=0,a=n.length;s<a;++s)kue(e,t,n[s],i,o,r);else kue(e,t,n,i,o,r)}function TZe(e,t,n,i){let o=t.name;l(o)&&(e.name=t.name)}function AZe(e,t,n,i){let o=t.description;l(o)&&ge(String,e,"description",o,void 0,i,n)}function CZe(e,t,n,i){let o=t.position;l(o)&&Xue(e,"position",o,void 0,i,n)}function EZe(e,t,n,i){let o=t.viewFrom;l(o)&&ge(h,e,"viewFrom",o,void 0,i,n)}function SZe(e,t,n,i){let o=t.orientation;l(o)&&ge(Me,e,"orientation",o,void 0,i,n)}function vZe(e,t,n,i){let o=t.properties;if(l(o)){l(e.properties)||(e.properties=new Zl);for(let r in o)if(o.hasOwnProperty(r)){e.properties.hasProperty(r)||e.properties.addProperty(r);let s=o[r];if(Array.isArray(s))for(let a=0,c=s.length;a<c;++a)E3(Oue(s[a]),e.properties,r,s[a],void 0,i,n);else E3(Oue(s),e.properties,r,s,void 0,i,n)}}}function S3(e,t,n,i,o,r,s){let a=n.map(function(c){return TD(o,c)});if(l(i)){i=rr(i);let c=e[t];if(!(c instanceof s)){let u=new s;u.intervals.addInterval(a7(c)),e[t]=c=u}i.data=new r(a),c.intervals.addInterval(i)}else e[t]=new r(a)}function Vue(e,t,n,i){let o=n.references;l(o)?S3(e,t,o,n.interval,i,gD,Bc):ge(Array,e,t,n,void 0,void 0,i)}function Uue(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Vue(e,t,n[o],i);else Vue(e,t,n,i)}function zue(e,t,n,i){let o=n.references;l(o)?S3(e,t,o,n.interval,i,ey,Ea):(l(n.cartesian)?n.array=h.unpackArray(n.cartesian):l(n.cartographicRadians)?n.array=h.fromRadiansArrayHeights(n.cartographicRadians,ee.default):l(n.cartographicDegrees)&&(n.array=h.fromDegreesArrayHeights(n.cartographicDegrees,ee.default)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i))}function ED(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)zue(e,t,n[o],i);else zue(e,t,n,i)}function wZe(e){return h.unpackArray(e)}function DZe(e){return h.fromRadiansArrayHeights(e,ee.default)}function IZe(e){return h.fromDegreesArrayHeights(e,ee.default)}function Hue(e,t,n,i){let o=n.references;if(l(o)){let r=o.map(function(s){let a={};return S3(a,"positions",s,n.interval,i,ey,Ea),a.positions});e[t]=new ey(r)}else l(n.cartesian)?n.array=n.cartesian.map(wZe):l(n.cartographicRadians)?n.array=n.cartographicRadians.map(DZe):l(n.cartographicDegrees)&&(n.array=n.cartographicDegrees.map(IZe)),l(n.array)&&ge(Array,e,t,n,void 0,void 0,i)}function PZe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;++o)Hue(e,t,n[o],i);else Hue(e,t,n,i)}function RZe(e,t,n,i){if(l(n))if(Array.isArray(n))for(let o=0,r=n.length;o<r;o++)Bue(e,t,n[o],i);else Bue(e,t,n,i)}function OZe(e,t,n,i){let o=t.availability;if(!l(o))return;let r;if(Array.isArray(o))for(let s=0,a=o.length;s<a;++s)l(r)||(r=new jr),r.addInterval(rr(o[s]));else r=new jr,r.addInterval(rr(o));e.availability=r}function MZe(e,t,n,i,o){l(t)&&ge(sy,e,"alignedAxis",t,n,i,o)}function LZe(e,t,n,i){let o=t.billboard;if(!l(o))return;let r=rr(o.interval),s=e.billboard;l(s)||(e.billboard=s=new Ac),ge(Boolean,s,"show",o.show,r,i,n),ge(Image,s,"image",o.image,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(U,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(gi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(On,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(z,s,"color",o.color,r,i,n),ge(Dd,s,"rotation",o.rotation,r,i,n),MZe(s,o.alignedAxis,r,i,n),ge(Boolean,s,"sizeInMeters",o.sizeInMeters,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Vt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Vt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Vt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(qe,s,"imageSubRegion",o.imageSubRegion,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function NZe(e,t,n,i){let o=t.box;if(!l(o))return;let r=rr(o.interval),s=e.box;l(s)||(e.box=s=new zT),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"dimensions",o.dimensions,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function FZe(e,t,n,i){let o=t.corridor;if(!l(o))return;let r=rr(o.interval),s=e.corridor;l(s)||(e.corridor=s=new GT),ge(Boolean,s,"show",o.show,r,i,n),ED(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ke,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Oi,s,"cornerType",o.cornerType,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function BZe(e,t,n,i){let o=t.cylinder;if(!l(o))return;let r=rr(o.interval),s=e.cylinder;l(s)||(e.cylinder=s=new WT),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"length",o.length,r,i,n),ge(Number,s,"topRadius",o.topRadius,r,i,n),ge(Number,s,"bottomRadius",o.bottomRadius,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(Number,s,"slices",o.slices,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function kZe(e,t){let n=e.version;if(l(n)&&typeof n=="string"){let r=n.split(".");if(r.length===2){if(r[0]!=="1")throw new ce("Cesium only supports CZML version 1.");t._version=n}}if(!l(t._version))throw new ce("CZML version information invalid. It is expected to be a property on the document object in the <Major>.<Minor> version format.");let i=t._documentPacket;l(e.name)&&(i.name=e.name);let o=e.clock;if(l(o)){let r=i.clock;l(r)?(r.interval=y(o.interval,r.interval),r.currentTime=y(o.currentTime,r.currentTime),r.range=y(o.range,r.range),r.step=y(o.step,r.step),r.multiplier=y(o.multiplier,r.multiplier)):i.clock={interval:o.interval,currentTime:o.currentTime,range:o.range,step:o.step,multiplier:o.multiplier}}}function VZe(e,t,n,i){let o=t.ellipse;if(!l(o))return;let r=rr(o.interval),s=e.ellipse;l(s)||(e.ellipse=s=new jT),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"semiMajorAxis",o.semiMajorAxis,r,i,n),ge(Number,s,"semiMinorAxis",o.semiMinorAxis,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ke,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Dd,s,"rotation",o.rotation,r,i,n),ge(Dd,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"numberOfVerticalLines",o.numberOfVerticalLines,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function UZe(e,t,n,i){let o=t.ellipsoid;if(!l(o))return;let r=rr(o.interval),s=e.ellipsoid;l(s)||(e.ellipsoid=s=new qT),ge(Boolean,s,"show",o.show,r,i,n),ge(h,s,"radii",o.radii,r,i,n),ge(h,s,"innerRadii",o.innerRadii,r,i,n),ge(Number,s,"minimumClock",o.minimumClock,r,i,n),ge(Number,s,"maximumClock",o.maximumClock,r,i,n),ge(Number,s,"minimumCone",o.minimumCone,r,i,n),ge(Number,s,"maximumCone",o.maximumCone,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"stackPartitions",o.stackPartitions,r,i,n),ge(Number,s,"slicePartitions",o.slicePartitions,r,i,n),ge(Number,s,"subdivisions",o.subdivisions,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function zZe(e,t,n,i){let o=t.label;if(!l(o))return;let r=rr(o.interval),s=e.label;l(s)||(e.label=s=new vh),ge(Boolean,s,"show",o.show,r,i,n),ge(String,s,"text",o.text,r,i,n),ge(String,s,"font",o.font,r,i,n),ge(qo,s,"style",o.style,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Boolean,s,"showBackground",o.showBackground,r,i,n),ge(z,s,"backgroundColor",o.backgroundColor,r,i,n),ge(U,s,"backgroundPadding",o.backgroundPadding,r,i,n),ge(U,s,"pixelOffset",o.pixelOffset,r,i,n),ge(h,s,"eyeOffset",o.eyeOffset,r,i,n),ge(gi,s,"horizontalOrigin",o.horizontalOrigin,r,i,n),ge(On,s,"verticalOrigin",o.verticalOrigin,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(z,s,"fillColor",o.fillColor,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Vt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Vt,s,"pixelOffsetScaleByDistance",o.pixelOffsetScaleByDistance,r,i,n),ge(Vt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function HZe(e,t,n,i){let o=t.model;if(!l(o))return;let r=rr(o.interval),s=e.model;l(s)||(e.model=s=new Y_),ge(Boolean,s,"show",o.show,r,i,n),ge(CD.default,s,"uri",o.gltf,r,i,n),ge(Number,s,"scale",o.scale,r,i,n),ge(Number,s,"minimumPixelSize",o.minimumPixelSize,r,i,n),ge(Number,s,"maximumScale",o.maximumScale,r,i,n),ge(Boolean,s,"incrementallyLoadTextures",o.incrementallyLoadTextures,r,i,n),ge(Boolean,s,"runAnimations",o.runAnimations,r,i,n),ge(Boolean,s,"clampAnimations",o.clampAnimations,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(z,s,"silhouetteColor",o.silhouetteColor,r,i,n),ge(Number,s,"silhouetteSize",o.silhouetteSize,r,i,n),ge(z,s,"color",o.color,r,i,n),ge(Oc,s,"colorBlendMode",o.colorBlendMode,r,i,n),ge(Number,s,"colorBlendAmount",o.colorBlendAmount,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n);let a,c,u=o.nodeTransformations;if(l(u))if(Array.isArray(u))for(a=0,c=u.length;a<c;++a)Gue(s,u[a],r,i,n);else Gue(s,u,r,i,n);let f=o.articulations;if(l(f))if(Array.isArray(f))for(a=0,c=f.length;a<c;++a)Wue(s,f[a],r,i,n);else Wue(s,f,r,i,n)}function Gue(e,t,n,i,o){let r=rr(t.interval);l(n)&&(l(r)?r=Sn.intersect(r,n,kx):r=n);let s=e.nodeTransformations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];if(!l(d))continue;l(s)||(e.nodeTransformations=s=new Zl),s.hasProperty(f)||s.addProperty(f);let p=s[f];l(p)||(s[f]=p=new YT),ge(h,p,"translation",d.translation,r,i,o),ge(Me,p,"rotation",d.rotation,r,i,o),ge(h,p,"scale",d.scale,r,i,o)}}function Wue(e,t,n,i,o){let r=rr(t.interval);l(n)&&(l(r)?r=Sn.intersect(r,n,kx):r=n);let s=e.articulations,a=Object.keys(t);for(let c=0,u=a.length;c<u;++c){let f=a[c];if(f==="interval")continue;let d=t[f];l(d)&&(l(s)||(e.articulations=s=new Zl),s.hasProperty(f)||s.addProperty(f),ge(Number,s,f,d,r,i,o))}}function GZe(e,t,n,i){let o=t.path;if(!l(o))return;let r=rr(o.interval),s=e.path;l(s)||(e.path=s=new X_),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"leadTime",o.leadTime,r,i,n),ge(Number,s,"trailTime",o.trailTime,r,i,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"resolution",o.resolution,r,i,n),du(s,"material",o.material,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function WZe(e,t,n,i){let o=t.point;if(!l(o))return;let r=rr(o.interval),s=e.point;l(s)||(e.point=s=new KT),ge(Boolean,s,"show",o.show,r,i,n),ge(Number,s,"pixelSize",o.pixelSize,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(z,s,"color",o.color,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Vt,s,"scaleByDistance",o.scaleByDistance,r,i,n),ge(Vt,s,"translucencyByDistance",o.translucencyByDistance,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(Number,s,"disableDepthTestDistance",o.disableDepthTestDistance,r,i,n)}function AD(e){this.polygon=e,this._definitionChanged=new me}Object.defineProperties(AD.prototype,{isConstant:{get:function(){let e=this.polygon._positions,t=this.polygon._holes;return(!l(e)||e.isConstant)&&(!l(t)||t.isConstant)}},definitionChanged:{get:function(){return this._definitionChanged}}});AD.prototype.getValue=function(e,t){let n;l(this.polygon._positions)&&(n=this.polygon._positions.getValue(e));let i;return l(this.polygon._holes)&&(i=this.polygon._holes.getValue(e),l(i)&&(i=i.map(function(o){return new qa(o)}))),l(t)?(t.positions=n,t.holes=i,t):new qa(n,i)};AD.prototype.equals=function(e){return this===e||e instanceof AD&&Y.equals(this.polygon._positions,e.polygon._positions)&&Y.equals(this.polygon._holes,e.polygon._holes)};function jZe(e,t,n,i){let o=t.polygon;if(!l(o))return;let r=rr(o.interval),s=e.polygon;l(s)||(e.polygon=s=new wh),ge(Boolean,s,"show",o.show,r,i,n),ED(s,"_positions",o.positions,n),PZe(s,"_holes",o.holes,n),(l(s._positions)||l(s._holes))&&(s.hierarchy=new AD(s)),ge(Number,s,"height",o.height,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ke,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Dd,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Boolean,s,"perPositionHeight",o.perPositionHeight,r,i,n),ge(Boolean,s,"closeTop",o.closeTop,r,i,n),ge(Boolean,s,"closeBottom",o.closeBottom,r,i,n),ge(tn,s,"arcType",o.arcType,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function qZe(e){return e?tn.GEODESIC:tn.NONE}function YZe(e,t,n,i){let o=t.polyline;if(!l(o))return;let r=rr(o.interval),s=e.polyline;if(l(s)||(e.polyline=s=new wc),ge(Boolean,s,"show",o.show,r,i,n),ED(s,"positions",o.positions,n),ge(Number,s,"width",o.width,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),du(s,"material",o.material,r,i,n),du(s,"depthFailMaterial",o.depthFailMaterial,r,i,n),ge(tn,s,"arcType",o.arcType,r,i,n),ge(Boolean,s,"clampToGround",o.clampToGround,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n),l(o.followSurface)&&!l(o.arcType)){let a={};ge(Boolean,a,"followSurface",o.followSurface,r,i,n),s.arcType=uZe(a.followSurface,qZe)}}function XZe(e,t,n,i){let o=t.polylineVolume;if(!l(o))return;let r=rr(o.interval),s=e.polylineVolume;l(s)||(e.polylineVolume=s=new ZT),ED(s,"positions",o.positions,n),RZe(s,"shape",o.shape,n),ge(Boolean,s,"show",o.show,r,i,n),ge(Oi,s,"cornerType",o.cornerType,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function KZe(e,t,n,i){let o=t.rectangle;if(!l(o))return;let r=rr(o.interval),s=e.rectangle;l(s)||(e.rectangle=s=new Dh),ge(Boolean,s,"show",o.show,r,i,n),ge(re,s,"coordinates",o.coordinates,r,i,n),ge(Number,s,"height",o.height,r,i,n),ge(Ke,s,"heightReference",o.heightReference,r,i,n),ge(Number,s,"extrudedHeight",o.extrudedHeight,r,i,n),ge(Ke,s,"extrudedHeightReference",o.extrudedHeightReference,r,i,n),ge(Dd,s,"rotation",o.rotation,r,i,n),ge(Dd,s,"stRotation",o.stRotation,r,i,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n),ge(kn,s,"classificationType",o.classificationType,r,i,n),ge(Number,s,"zIndex",o.zIndex,r,i,n)}function ZZe(e,t,n,i){let o=t.tileset;if(!l(o))return;let r=rr(o.interval),s=e.tileset;l(s)||(e.tileset=s=new XT),ge(Boolean,s,"show",o.show,r,i,n),ge(CD.default,s,"uri",o.uri,r,i,n),ge(Number,s,"maximumScreenSpaceError",o.maximumScreenSpaceError,r,i,n)}function $Ze(e,t,n,i){let o=t.wall;if(!l(o))return;let r=rr(o.interval),s=e.wall;l(s)||(e.wall=s=new K_),ge(Boolean,s,"show",o.show,r,i,n),ED(s,"positions",o.positions,n),Uue(s,"minimumHeights",o.minimumHeights,n),Uue(s,"maximumHeights",o.maximumHeights,n),ge(Number,s,"granularity",o.granularity,r,i,n),ge(Boolean,s,"fill",o.fill,r,i,n),du(s,"material",o.material,r,i,n),ge(Boolean,s,"outline",o.outline,r,i,n),ge(z,s,"outlineColor",o.outlineColor,r,i,n),ge(Number,s,"outlineWidth",o.outlineWidth,r,i,n),ge(yn,s,"shadows",o.shadows,r,i,n),ge(Ft,s,"distanceDisplayCondition",o.distanceDisplayCondition,r,i,n)}function jue(e,t,n,i,o){let r=e.id;if(l(r)||(r=zn()),r7=r,!l(o._version)&&r!=="document")throw new ce("The first CZML packet is required to be the document object.");if(e.delete===!0)t.removeById(r);else if(r==="document")kZe(e,o);else{let s=t.getOrCreateEntity(r),a=e.parent;l(a)&&(s.parent=t.getOrCreateEntity(a));for(let c=n.length-1;c>-1;c--)n[c](s,e,t,i)}r7=void 0}function QZe(e){let t,n=e._documentPacket.clock;if(!l(n)){if(!l(e._clock)){let o=e._entityCollection.computeAvailability();if(!o.start.equals(ze.MINIMUM_VALUE)){let r=o.start,s=o.stop,a=K.secondsDifference(s,r),c=Math.round(a/120);return t=new nm,t.startTime=K.clone(r),t.stopTime=K.clone(s),t.clockRange=Yr.LOOP_STOP,t.multiplier=c,t.currentTime=K.clone(r),t.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,e._clock=t,!0}}return!1}l(e._clock)?t=e._clock.clone():(t=new nm,t.startTime=ze.MINIMUM_VALUE.clone(),t.stopTime=ze.MAXIMUM_VALUE.clone(),t.currentTime=ze.MINIMUM_VALUE.clone(),t.clockRange=Yr.LOOP_STOP,t.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,t.multiplier=1);let i=rr(n.interval);return l(i)&&(t.startTime=i.start,t.stopTime=i.stop),l(n.currentTime)&&(t.currentTime=K.fromIso8601(n.currentTime)),l(n.range)&&(t.clockRange=y(Yr[n.range],Yr.LOOP_STOP)),l(n.step)&&(t.clockStep=y(po[n.step],po.SYSTEM_CLOCK_MULTIPLIER)),l(n.multiplier)&&(t.multiplier=n.multiplier),t.equals(e._clock)?!1:(e._clock=t.clone(e._clock),!0)}function Kue(e,t,n,i){n=y(n,y.EMPTY_OBJECT);let o=t,r=n.sourceUri,s=n.credit;if(typeof s=="string"&&(s=new wt(s)),e._credit=s,typeof t=="string"||t instanceof De){t=De.createIfNeeded(t),o=t.fetchJson(),r=y(r,t.clone());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return r=De.createIfNeeded(r),qr.setLoading(e,!0),Promise.resolve(o).then(function(a){return JZe(e,a,r,i)}).catch(function(a){return qr.setLoading(e,!1),e._error.raiseEvent(e,a),console.log(a),Promise.reject(a)})}function JZe(e,t,n,i){qr.setLoading(e,!0);let o=e._entityCollection;i&&(e._version=void 0,e._documentPacket=new Zue,o.removeAll()),as._processCzml(t,o,n,void 0,e);let r=QZe(e),s=e._documentPacket;return l(s.name)&&e._name!==s.name?(e._name=s.name,r=!0):!l(e._name)&&l(n)&&(e._name=Jg(n.getUrlComponent()),r=!0),qr.setLoading(e,!1),r&&e._changed.raiseEvent(e),e}function Zue(){this.name=void 0,this.clock=void 0}function as(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._clock=void 0,this._documentPacket=new Zue,this._version=void 0,this._entityCollection=new oa(this),this._entityCluster=new vf,this._credit=void 0,this._resourceCredits=[]}as.load=function(e,t){return new as().load(e,t)};Object.defineProperties(as.prototype,{name:{get:function(){return this._name}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});as.updaters=[LZe,NZe,FZe,BZe,VZe,UZe,zZe,HZe,TZe,AZe,GZe,WZe,jZe,YZe,XZe,vZe,KZe,CZe,ZZe,EZe,$Ze,SZe,OZe];as.registerUpdater=function(e){as.updaters.includes(e)||as.updaters.push(e)};as.unregisterUpdater=function(e){if(as.updaters.includes(e)){let t=as.updaters.indexOf(e);as.updaters.splice(t,1)}};as.prototype.process=function(e,t){return Kue(this,e,t,!1)};as.prototype.load=function(e,t){return Kue(this,e,t,!0)};as.prototype.update=function(e){return!0};as.processPacketData=ge;as.processPositionPacketData=Xue;as.processMaterialPacketData=du;as._processCzml=function(e,t,n,i,o){if(i=y(i,as.updaters),Array.isArray(e))for(let r=0,s=e.length;r<s;++r)jue(e[r],t,i,n,o);else jue(e,t,i,n,o)};var v3=as;function zc(){this._dataSources=[],this._dataSourceAdded=new me,this._dataSourceRemoved=new me,this._dataSourceMoved=new me}Object.defineProperties(zc.prototype,{length:{get:function(){return this._dataSources.length}},dataSourceAdded:{get:function(){return this._dataSourceAdded}},dataSourceRemoved:{get:function(){return this._dataSourceRemoved}},dataSourceMoved:{get:function(){return this._dataSourceMoved}}});zc.prototype.add=function(e){let t=this,n=this._dataSources;return Promise.resolve(e).then(function(i){return n===t._dataSources&&(t._dataSources.push(i),t._dataSourceAdded.raiseEvent(t,i)),i})};zc.prototype.remove=function(e,t){t=y(t,!1);let n=this._dataSources.indexOf(e);return n!==-1?(this._dataSources.splice(n,1),this._dataSourceRemoved.raiseEvent(this,e),t&&typeof e.destroy=="function"&&e.destroy(),!0):!1};zc.prototype.removeAll=function(e){e=y(e,!1);let t=this._dataSources;for(let n=0,i=t.length;n<i;++n){let o=t[n];this._dataSourceRemoved.raiseEvent(this,o),e&&typeof o.destroy=="function"&&o.destroy()}this._dataSources=[]};zc.prototype.contains=function(e){return this.indexOf(e)!==-1};zc.prototype.indexOf=function(e){return this._dataSources.indexOf(e)};zc.prototype.get=function(e){return this._dataSources[e]};zc.prototype.getByName=function(e){return this._dataSources.filter(function(t){return t.name===e})};function w3(e,t){return e.indexOf(t)}function $ue(e,t,n){let i=e._dataSources,o=i.length-1;if(t=P.clamp(t,0,o),n=P.clamp(n,0,o),t===n)return;let r=i[t];i[t]=i[n],i[n]=r,e.dataSourceMoved.raiseEvent(r,n,t)}zc.prototype.raise=function(e){let t=w3(this._dataSources,e);$ue(this,t,t+1)};zc.prototype.lower=function(e){let t=w3(this._dataSources,e);$ue(this,t,t-1)};zc.prototype.raiseToTop=function(e){let t=w3(this._dataSources,e);t!==this._dataSources.length-1&&(this._dataSources.splice(t,1),this._dataSources.push(e),this.dataSourceMoved.raiseEvent(e,this._dataSources.length-1,t))};zc.prototype.lowerToBottom=function(e){let t=w3(this._dataSources,e);t!==0&&(this._dataSources.splice(t,1),this._dataSources.splice(0,0,e),this.dataSourceMoved.raiseEvent(e,0,t))};zc.prototype.isDestroyed=function(){return!1};zc.prototype.destroy=function(){return this.removeAll(!0),ue(this)};var D3=zc;function sa(e){e=y(e,y.EMPTY_OBJECT),this._primitives=[],this._guid=zn(),this._primitiveAdded=new me,this._primitiveRemoved=new me,this._zIndex=void 0,this.show=y(e.show,!0),this.destroyPrimitives=y(e.destroyPrimitives,!0)}Object.defineProperties(sa.prototype,{length:{get:function(){return this._primitives.length}},primitiveAdded:{get:function(){return this._primitiveAdded}},primitiveRemoved:{get:function(){return this._primitiveRemoved}}});sa.prototype.add=function(e,t){let n=l(t),i=e._external=e._external||{},o=i._composites=i._composites||{};return o[this._guid]={collection:this},n?this._primitives.splice(t,0,e):this._primitives.push(e),this._primitiveAdded.raiseEvent(e),e};sa.prototype.remove=function(e){if(this.contains(e)){let t=this._primitives.indexOf(e);if(t!==-1)return this._primitives.splice(t,1),delete e._external._composites[this._guid],this.destroyPrimitives&&e.destroy(),this._primitiveRemoved.raiseEvent(e),!0}return!1};sa.prototype.removeAndDestroy=function(e){let t=this.remove(e);return t&&!this.destroyPrimitives&&e.destroy(),t};sa.prototype.removeAll=function(){let e=this._primitives,t=e.length;for(let n=0;n<t;++n)delete e[n]._external._composites[this._guid],this.destroyPrimitives&&e[n].destroy(),this._primitiveRemoved.raiseEvent(e[n]);this._primitives=[]};sa.prototype.contains=function(e){return!!(l(e)&&e._external&&e._external._composites&&e._external._composites[this._guid])};function I3(e,t){return e._primitives.indexOf(t)}sa.prototype.raise=function(e){if(l(e)){let t=I3(this,e),n=this._primitives;if(t!==n.length-1){let i=n[t];n[t]=n[t+1],n[t+1]=i}}};sa.prototype.raiseToTop=function(e){if(l(e)){let t=I3(this,e),n=this._primitives;t!==n.length-1&&(n.splice(t,1),n.push(e))}};sa.prototype.lower=function(e){if(l(e)){let t=I3(this,e),n=this._primitives;if(t!==0){let i=n[t];n[t]=n[t-1],n[t-1]=i}}};sa.prototype.lowerToBottom=function(e){if(l(e)){let t=I3(this,e),n=this._primitives;t!==0&&(n.splice(t,1),n.unshift(e))}};sa.prototype.get=function(e){return this._primitives[e]};sa.prototype.update=function(e){if(!this.show)return;let t=this._primitives;for(let n=0;n<t.length;++n)t[n].update(e)};sa.prototype.prePassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.prePassesUpdate)&&i.prePassesUpdate(e)}};sa.prototype.updateForPass=function(e,t){let n=this._primitives;for(let i=0;i<n.length;++i){let o=n[i];l(o.updateForPass)&&o.updateForPass(e,t)}};sa.prototype.postPassesUpdate=function(e){let t=this._primitives;for(let n=0;n<t.length;++n){let i=t[n];l(i.postPassesUpdate)&&i.postPassesUpdate(e)}};sa.prototype.isDestroyed=function(){return!1};sa.prototype.destroy=function(){return this.removeAll(),ue(this)};var hu=sa;function om(){this._length=0,this._collections={},this._collectionsArray=[],this.show=!0}Object.defineProperties(om.prototype,{length:{get:function(){return this._length}}});om.prototype.add=function(e,t){t=y(t,0);let n=this._collections[t];if(!l(n)){n=new hu({destroyPrimitives:!1}),n._zIndex=t,this._collections[t]=n;let i=this._collectionsArray,o=0;for(;o<i.length&&i[o]._zIndex<t;)o++;i.splice(o,0,n)}return n.add(e),this._length++,e._zIndex=t,e};om.prototype.set=function(e,t){return t===e._zIndex||(this.remove(e,!0),this.add(e,t)),e};om.prototype.remove=function(e,t){if(this.contains(e)){let n=e._zIndex,i=this._collections[n],o;return t?o=i.remove(e):o=i.removeAndDestroy(e),o&&this._length--,i.length===0&&(this._collectionsArray.splice(this._collectionsArray.indexOf(i),1),this._collections[n]=void 0,i.destroy()),o}return!1};om.prototype.removeAll=function(){let e=this._collectionsArray;for(let t=0;t<e.length;t++){let n=e[t];n.destroyPrimitives=!0,n.destroy()}this._collections={},this._collectionsArray=[],this._length=0};om.prototype.contains=function(e){if(!l(e))return!1;let t=this._collections[e._zIndex];return l(t)&&t.contains(e)};om.prototype.update=function(e){if(!this.show)return;let t=this._collectionsArray;for(let n=0;n<t.length;n++)t[n].update(e)};om.prototype.isDestroyed=function(){return!1};om.prototype.destroy=function(){return this.removeAll(),ue(this)};var P3=om;function OC(e,t){this._primitives=e,this._orderedGroundPrimitives=t,this._dynamicUpdaters=new St}OC.prototype.add=function(e,t){this._dynamicUpdaters.set(t.id,t.createDynamicUpdater(this._primitives,this._orderedGroundPrimitives))};OC.prototype.remove=function(e){let t=e.id,n=this._dynamicUpdaters.get(t);l(n)&&(this._dynamicUpdaters.remove(t),n.destroy())};OC.prototype.update=function(e){let t=this._dynamicUpdaters.values;for(let n=0,i=t.length;n<i;n++)t[n].update(e);return!0};OC.prototype.removeAllPrimitives=function(){let e=this._dynamicUpdaters.values;for(let t=0,n=e.length;t<n;t++)e[t].destroy();this._dynamicUpdaters.removeAll()};OC.prototype.getBoundingSphere=function(e,t){return e=this._dynamicUpdaters.get(e.id),l(e)&&l(e.getBoundingSphere)?e.getBoundingSphere(t):dt.FAILED};var MC=OC;var l7={},R3=new h,Que=new h,Jue=new Me,efe=new $;function LC(e,t,n,i,o,r,s,a,c,u){let f=e+t;h.multiplyByScalar(i,Math.cos(f),R3),h.multiplyByScalar(n,Math.sin(f),Que),h.add(R3,Que,R3);let d=Math.cos(e);d=d*d;let p=Math.sin(e);p=p*p;let m=r/Math.sqrt(s*d+o*p)/a;return Me.fromAxisAngle(R3,m,Jue),$.fromQuaternion(Jue,efe),$.multiplyByVector(efe,c,u),h.normalize(u,u),h.multiplyByScalar(u,a,u),u}var tfe=new h,nfe=new h,c7=new h,e$e=new h;l7.raisePositionsToHeight=function(e,t,n){let i=t.ellipsoid,o=t.height,r=t.extrudedHeight,s=n?e.length/3*2:e.length/3,a=new Float64Array(s*3),c=e.length,u=n?c:0;for(let f=0;f<c;f+=3){let d=f+1,p=f+2,g=h.fromArray(e,f,tfe);i.scaleToGeodeticSurface(g,g);let m=h.clone(g,nfe),x=i.geodeticSurfaceNormal(g,e$e),b=h.multiplyByScalar(x,o,c7);h.add(g,b,g),n&&(h.multiplyByScalar(x,r,b),h.add(m,b,m),a[f+u]=m.x,a[d+u]=m.y,a[p+u]=m.z),a[f]=g.x,a[d]=g.y,a[p]=g.z}return a};var t$e=new h,n$e=new h,i$e=new h;l7.computeEllipsePositions=function(e,t,n){let i=e.semiMinorAxis,o=e.semiMajorAxis,r=e.rotation,s=e.center,a=e.granularity*8,c=i*i,u=o*o,f=o*i,d=h.magnitude(s),p=h.normalize(s,t$e),g=h.cross(h.UNIT_Z,s,n$e);g=h.normalize(g,g);let m=h.cross(p,g,i$e),x=1+Math.ceil(P.PI_OVER_TWO/a),b=P.PI_OVER_TWO/(x-1),T=P.PI_OVER_TWO-x*b;T<0&&(x-=Math.ceil(Math.abs(T)/b));let A=2*(x*(x+2)),C=t?new Array(A*3):void 0,S=0,v=tfe,D=nfe,O=x*4*3,R=O-1,M=0,L=n?new Array(O):void 0,_,E,w,I,N;for(T=P.PI_OVER_TWO,v=LC(T,r,m,g,c,f,u,d,p,v),t&&(C[S++]=v.x,C[S++]=v.y,C[S++]=v.z),n&&(L[R--]=v.z,L[R--]=v.y,L[R--]=v.x),T=P.PI_OVER_TWO-b,_=1;_<x+1;++_){if(v=LC(T,r,m,g,c,f,u,d,p,v),D=LC(Math.PI-T,r,m,g,c,f,u,d,p,D),t){for(C[S++]=v.x,C[S++]=v.y,C[S++]=v.z,w=2*_+2,E=1;E<w-1;++E)I=E/(w-1),N=h.lerp(v,D,I,c7),C[S++]=N.x,C[S++]=N.y,C[S++]=N.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(L[R--]=v.z,L[R--]=v.y,L[R--]=v.x,L[M++]=D.x,L[M++]=D.y,L[M++]=D.z),T=P.PI_OVER_TWO-(_+1)*b}for(_=x;_>1;--_){if(T=P.PI_OVER_TWO-(_-1)*b,v=LC(-T,r,m,g,c,f,u,d,p,v),D=LC(T+Math.PI,r,m,g,c,f,u,d,p,D),t){for(C[S++]=v.x,C[S++]=v.y,C[S++]=v.z,w=2*(_-1)+2,E=1;E<w-1;++E)I=E/(w-1),N=h.lerp(v,D,I,c7),C[S++]=N.x,C[S++]=N.y,C[S++]=N.z;C[S++]=D.x,C[S++]=D.y,C[S++]=D.z}n&&(L[R--]=v.z,L[R--]=v.y,L[R--]=v.x,L[M++]=D.x,L[M++]=D.y,L[M++]=D.z)}T=P.PI_OVER_TWO,v=LC(-T,r,m,g,c,f,u,d,p,v);let B={};return t&&(C[S++]=v.x,C[S++]=v.y,C[S++]=v.z,B.positions=C,B.numPts=x),n&&(L[R--]=v.z,L[R--]=v.y,L[R--]=v.x,B.outerPositions=L),B};var mu=l7;var NC=new h,u7=new h,f7=new h,ife=new h,As=new U,ofe=new $,o$e=new $,d7=new Me,rfe=new h,sfe=new h,afe=new h,L3=new fe,cfe=new h,lfe=new U,ufe=new U;function ffe(e,t,n){let i=t.vertexFormat,o=t.center,r=t.semiMajorAxis,s=t.semiMinorAxis,a=t.ellipsoid,c=t.stRotation,u=n?e.length/3*2:e.length/3,f=t.shadowVolume,d=i.st?new Float32Array(u*2):void 0,p=i.normal?new Float32Array(u*3):void 0,g=i.tangent?new Float32Array(u*3):void 0,m=i.bitangent?new Float32Array(u*3):void 0,x=f?new Float32Array(u*3):void 0,b=0,T=rfe,A=sfe,C=afe,S=new wi(a),v=S.project(a.cartesianToCartographic(o,L3),cfe),D=a.scaleToGeodeticSurface(o,NC);a.geodeticSurfaceNormal(D,D);let O=ofe,R=o$e;if(c!==0){let N=Me.fromAxisAngle(D,c,d7);O=$.fromQuaternion(N,O),N=Me.fromAxisAngle(D,-c,d7),R=$.fromQuaternion(N,R)}else O=$.clone($.IDENTITY,O),R=$.clone($.IDENTITY,R);let M=U.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,lfe),L=U.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,ufe),_=e.length,E=n?_:0,w=E/3*2;for(let N=0;N<_;N+=3){let B=N+1,H=N+2,V=h.fromArray(e,N,NC);if(i.st){let G=$.multiplyByVector(O,V,u7),k=S.project(a.cartesianToCartographic(G,L3),f7);h.subtract(k,v,k),As.x=(k.x+r)/(2*r),As.y=(k.y+s)/(2*s),M.x=Math.min(As.x,M.x),M.y=Math.min(As.y,M.y),L.x=Math.max(As.x,L.x),L.y=Math.max(As.y,L.y),n&&(d[b+w]=As.x,d[b+1+w]=As.y),d[b++]=As.x,d[b++]=As.y}(i.normal||i.tangent||i.bitangent||f)&&(T=a.geodeticSurfaceNormal(V,T),f&&(x[N+E]=-T.x,x[B+E]=-T.y,x[H+E]=-T.z),(i.normal||i.tangent||i.bitangent)&&((i.tangent||i.bitangent)&&(A=h.normalize(h.cross(h.UNIT_Z,T,A),A),$.multiplyByVector(R,A,A)),i.normal&&(p[N]=T.x,p[B]=T.y,p[H]=T.z,n&&(p[N+E]=-T.x,p[B+E]=-T.y,p[H+E]=-T.z)),i.tangent&&(g[N]=A.x,g[B]=A.y,g[H]=A.z,n&&(g[N+E]=-A.x,g[B+E]=-A.y,g[H+E]=-A.z)),i.bitangent&&(C=h.normalize(h.cross(T,A,C),C),m[N]=C.x,m[B]=C.y,m[H]=C.z,n&&(m[N+E]=C.x,m[B+E]=C.y,m[H+E]=C.z))))}if(i.st){_=d.length;for(let N=0;N<_;N+=2)d[N]=(d[N]-M.x)/(L.x-M.x),d[N+1]=(d[N+1]-M.y)/(L.y-M.y)}let I=new dn;if(i.position){let N=mu.raisePositionsToHeight(e,t,n);I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:N})}if(i.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:d})),i.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),i.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),i.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),f&&(I.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),n&&l(t.offsetAttribute)){let N=new Uint8Array(u);if(t.offsetAttribute===sn.TOP)N=N.fill(1,0,u/2);else{let B=t.offsetAttribute===sn.NONE?0:1;N=N.fill(B)}I.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:N})}return I}function dfe(e){let t=new Array(12*(e*(e+1))-6),n=0,i,o,r,s,a;for(i=0,r=1,s=0;s<3;s++)t[n++]=r++,t[n++]=i,t[n++]=r;for(s=2;s<e+1;++s){for(r=s*(s+1)-1,i=(s-1)*s-1,t[n++]=r++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=r++,t[n++]=i,t[n++]=r}for(o=e*2,++r,++i,s=0;s<o-1;++s)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;for(t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i++,t[n++]=i,++i,s=e-1;s>1;--s){for(t[n++]=i++,t[n++]=i,t[n++]=r,o=2*s,a=0;a<o-1;++a)t[n++]=r,t[n++]=i++,t[n++]=i,t[n++]=r++,t[n++]=i,t[n++]=r;t[n++]=i++,t[n++]=i++,t[n++]=r++}for(s=0;s<3;s++)t[n++]=i++,t[n++]=i,t[n++]=r;return t}var Vx=new h;function r$e(e){let t=e.center;Vx=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Vx),e.height,Vx),Vx=h.add(t,Vx,Vx);let n=new se(Vx,e.semiMajorAxis),i=mu.computeEllipsePositions(e,!0,!1),o=i.positions,r=i.numPts,s=ffe(o,e,!1),a=dfe(r);return a=Ne.createTypedArray(o.length/3,a),{boundingSphere:n,attributes:s,indices:a}}function s$e(e,t){let n=t.vertexFormat,i=t.center,o=t.semiMajorAxis,r=t.semiMinorAxis,s=t.ellipsoid,a=t.height,c=t.extrudedHeight,u=t.stRotation,f=e.length/3*2,d=new Float64Array(f*3),p=n.st?new Float32Array(f*2):void 0,g=n.normal?new Float32Array(f*3):void 0,m=n.tangent?new Float32Array(f*3):void 0,x=n.bitangent?new Float32Array(f*3):void 0,b=t.shadowVolume,T=b?new Float32Array(f*3):void 0,A=0,C=rfe,S=sfe,v=afe,D=new wi(s),O=D.project(s.cartesianToCartographic(i,L3),cfe),R=s.scaleToGeodeticSurface(i,NC);s.geodeticSurfaceNormal(R,R);let M=Me.fromAxisAngle(R,u,d7),L=$.fromQuaternion(M,ofe),_=U.fromElements(Number.POSITIVE_INFINITY,Number.POSITIVE_INFINITY,lfe),E=U.fromElements(Number.NEGATIVE_INFINITY,Number.NEGATIVE_INFINITY,ufe),w=e.length,I=w/3*2;for(let B=0;B<w;B+=3){let H=B+1,V=B+2,G=h.fromArray(e,B,NC),k;if(n.st){let q=$.multiplyByVector(L,G,u7),J=D.project(s.cartesianToCartographic(q,L3),f7);h.subtract(J,O,J),As.x=(J.x+o)/(2*o),As.y=(J.y+r)/(2*r),_.x=Math.min(As.x,_.x),_.y=Math.min(As.y,_.y),E.x=Math.max(As.x,E.x),E.y=Math.max(As.y,E.y),p[A+I]=As.x,p[A+1+I]=As.y,p[A++]=As.x,p[A++]=As.y}G=s.scaleToGeodeticSurface(G,G),k=h.clone(G,u7),C=s.geodeticSurfaceNormal(G,C),b&&(T[B+w]=-C.x,T[H+w]=-C.y,T[V+w]=-C.z);let W=h.multiplyByScalar(C,a,ife);if(G=h.add(G,W,G),W=h.multiplyByScalar(C,c,W),k=h.add(k,W,k),n.position&&(d[B+w]=k.x,d[H+w]=k.y,d[V+w]=k.z,d[B]=G.x,d[H]=G.y,d[V]=G.z),n.normal||n.tangent||n.bitangent){v=h.clone(C,v);let q=h.fromArray(e,(B+3)%w,ife);h.subtract(q,G,q);let J=h.subtract(k,G,f7);C=h.normalize(h.cross(J,q,C),C),n.normal&&(g[B]=C.x,g[H]=C.y,g[V]=C.z,g[B+w]=C.x,g[H+w]=C.y,g[V+w]=C.z),n.tangent&&(S=h.normalize(h.cross(v,C,S),S),m[B]=S.x,m[H]=S.y,m[V]=S.z,m[B+w]=S.x,m[B+1+w]=S.y,m[B+2+w]=S.z),n.bitangent&&(x[B]=v.x,x[H]=v.y,x[V]=v.z,x[B+w]=v.x,x[H+w]=v.y,x[V+w]=v.z)}}if(n.st){w=p.length;for(let B=0;B<w;B+=2)p[B]=(p[B]-_.x)/(E.x-_.x),p[B+1]=(p[B+1]-_.y)/(E.y-_.y)}let N=new dn;if(n.position&&(N.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})),n.st&&(N.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:p})),n.normal&&(N.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),n.tangent&&(N.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),n.bitangent&&(N.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),b&&(N.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),l(t.offsetAttribute)){let B=new Uint8Array(f);if(t.offsetAttribute===sn.TOP)B=B.fill(1,0,f/2);else{let H=t.offsetAttribute===sn.NONE?0:1;B=B.fill(H)}N.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:B})}return N}function a$e(e){let t=e.length/3,n=Ne.createTypedArray(t,t*6),i=0;for(let o=0;o<t;o++){let r=o,s=o+t,a=(r+1)%t,c=a+t;n[i++]=r,n[i++]=s,n[i++]=a,n[i++]=a,n[i++]=s,n[i++]=c}return n}var O3=new se,M3=new se;function c$e(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,NC),e.height,NC);O3.center=h.add(t,o,O3.center),O3.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),M3.center=h.add(t,o,M3.center),M3.radius=i;let r=mu.computeEllipsePositions(e,!0,!0),s=r.positions,a=r.numPts,c=r.outerPositions,u=se.union(O3,M3),f=ffe(s,e,!0),d=dfe(a),p=d.length;d.length=p*2;let g=s.length/3;for(let S=0;S<p;S+=3)d[S+p]=d[S+2]+g,d[S+1+p]=d[S+1]+g,d[S+2+p]=d[S]+g;let m=Ne.createTypedArray(g*2/3,d),x=new ft({attributes:f,indices:m,primitiveType:Le.TRIANGLES}),b=s$e(c,e);d=a$e(c);let T=Ne.createTypedArray(c.length*2/3,d),A=new ft({attributes:b,indices:T,primitiveType:Le.TRIANGLES}),C=Nn.combineInstances([new vt({geometry:x}),new vt({geometry:A})]);return{boundingSphere:u,attributes:C[0].attributes,indices:C[0].indices}}function hfe(e,t,n,i,o,r,s){let c=mu.computeEllipsePositions({center:e,semiMajorAxis:t,semiMinorAxis:n,rotation:i,granularity:o},!1,!0).outerPositions,u=c.length/3,f=new Array(u);for(let p=0;p<u;++p)f[p]=h.fromArray(c,p*3);let d=re.fromCartesianArray(f,r,s);return d.width>P.PI&&(d.north=d.north>0?P.PI_OVER_TWO-P.EPSILON7:d.north,d.south=d.south<0?P.EPSILON7-P.PI_OVER_TWO:d.south,d.east=P.PI,d.west=-P.PI),d}function sm(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.vertexFormat,Pe.DEFAULT),a=y(e.height,0),c=y(e.extrudedHeight,a);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ee.clone(n),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._height=Math.max(c,a),this._granularity=r,this._vertexFormat=Pe.clone(s),this._extrudedHeight=Math.min(c,a),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createEllipseGeometry",this._offsetAttribute=e.offsetAttribute,this._rectangle=void 0,this._textureCoordinateRotationPoints=void 0}sm.packedLength=h.packedLength+ee.packedLength+Pe.packedLength+9;sm.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var mfe=new h,pfe=new ee,_fe=new Pe,rm={center:mfe,ellipsoid:pfe,vertexFormat:_fe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,stRotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};sm.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,mfe);t+=h.packedLength;let o=ee.unpack(e,t,pfe);t+=ee.packedLength;let r=Pe.unpack(e,t,_fe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t++],g=e[t++]===1,m=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._semiMajorAxis=s,n._semiMinorAxis=a,n._rotation=c,n._stRotation=u,n._height=f,n._granularity=d,n._extrudedHeight=p,n._shadowVolume=g,n._offsetAttribute=m===-1?void 0:m,n):(rm.height=f,rm.extrudedHeight=p,rm.granularity=d,rm.stRotation=u,rm.rotation=c,rm.semiMajorAxis=s,rm.semiMinorAxis=a,rm.shadowVolume=g,rm.offsetAttribute=m===-1?void 0:m,new sm(rm))};sm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.center,i=y(e.ellipsoid,ee.default),o=e.semiMajorAxis,r=e.semiMinorAxis,s=y(e.granularity,P.RADIANS_PER_DEGREE),a=y(e.rotation,0);return hfe(n,o,r,a,s,i,t)};sm.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,vertexFormat:e._vertexFormat,stRotation:e._stRotation},r;if(i)o.extrudedHeight=n,o.shadowVolume=e._shadowVolume,o.offsetAttribute=e._offsetAttribute,r=c$e(o);else if(r=r$e(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===sn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ft({attributes:r.attributes,indices:r.indices,primitiveType:Le.TRIANGLES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};sm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new sm({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:o,rotation:e._rotation,stRotation:e._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};function l$e(e){let t=-e._stRotation;if(t===0)return[0,0,0,1,1,0];let i=mu.computeEllipsePositions({center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,rotation:e._rotation,granularity:e._granularity},!1,!0).outerPositions,o=i.length/3,r=new Array(o);for(let c=0;c<o;++c)r[c]=h.fromArray(i,c*3);let s=e._ellipsoid,a=e.rectangle;return ft._textureCoordinateRotationPoints(r,t,s,a)}Object.defineProperties(sm.prototype,{rectangle:{get:function(){return l(this._rectangle)||(this._rectangle=hfe(this._center,this._semiMajorAxis,this._semiMinorAxis,this._rotation,this._granularity,this._ellipsoid)),this._rectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=l$e(this)),this._textureCoordinateRotationPoints}}});var Cl=sm;var gfe=new h,Ux=new h;function u$e(e){let t=e.center;Ux=h.multiplyByScalar(e.ellipsoid.geodeticSurfaceNormal(t,Ux),e.height,Ux),Ux=h.add(t,Ux,Ux);let n=new se(Ux,e.semiMajorAxis),i=mu.computeEllipsePositions(e,!1,!0).outerPositions,o=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:mu.raisePositionsToHeight(i,e,!1)})}),r=i.length/3,s=Ne.createTypedArray(r,r*2),a=0;for(let c=0;c<r;++c)s[a++]=c,s[a++]=(c+1)%r;return{boundingSphere:n,attributes:o,indices:s}}var N3=new se,F3=new se;function f$e(e){let t=e.center,n=e.ellipsoid,i=e.semiMajorAxis,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,gfe),e.height,gfe);N3.center=h.add(t,o,N3.center),N3.radius=i,o=h.multiplyByScalar(n.geodeticSurfaceNormal(t,o),e.extrudedHeight,o),F3.center=h.add(t,o,F3.center),F3.radius=i;let r=mu.computeEllipsePositions(e,!1,!0).outerPositions,s=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:mu.raisePositionsToHeight(r,e,!0)})});r=s.position.values;let a=se.union(N3,F3),c=r.length/3;if(l(e.offsetAttribute)){let m=new Uint8Array(c);if(e.offsetAttribute===sn.TOP)m=m.fill(1,0,c/2);else{let x=e.offsetAttribute===sn.NONE?0:1;m=m.fill(x)}s.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:m})}let u=y(e.numberOfVerticalLines,16);u=P.clamp(u,0,c/2);let f=Ne.createTypedArray(c,c*2+u*2);c/=2;let d=0,p;for(p=0;p<c;++p)f[d++]=p,f[d++]=(p+1)%c,f[d++]=p+c,f[d++]=(p+1)%c+c;let g;if(u>0){let m=Math.min(u,c);g=Math.round(c/m);let x=Math.min(g*u,c);for(p=0;p<x;p+=g)f[d++]=p,f[d++]=p+c}return{boundingSphere:a,attributes:s,indices:f}}function FC(e){e=y(e,y.EMPTY_OBJECT);let t=e.center,n=y(e.ellipsoid,ee.default),i=e.semiMajorAxis,o=e.semiMinorAxis,r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.height,0),a=y(e.extrudedHeight,s);this._center=h.clone(t),this._semiMajorAxis=i,this._semiMinorAxis=o,this._ellipsoid=ee.clone(n),this._rotation=y(e.rotation,0),this._height=Math.max(a,s),this._granularity=r,this._extrudedHeight=Math.min(a,s),this._numberOfVerticalLines=Math.max(y(e.numberOfVerticalLines,16),0),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipseOutlineGeometry"}FC.packedLength=h.packedLength+ee.packedLength+8;FC.pack=function(e,t,n){return n=y(n,0),h.pack(e._center,t,n),n+=h.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._semiMajorAxis,t[n++]=e._semiMinorAxis,t[n++]=e._rotation,t[n++]=e._height,t[n++]=e._granularity,t[n++]=e._extrudedHeight,t[n++]=e._numberOfVerticalLines,t[n]=y(e._offsetAttribute,-1),t};var yfe=new h,xfe=new ee,Zp={center:yfe,ellipsoid:xfe,semiMajorAxis:void 0,semiMinorAxis:void 0,rotation:void 0,height:void 0,granularity:void 0,extrudedHeight:void 0,numberOfVerticalLines:void 0,offsetAttribute:void 0};FC.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,yfe);t+=h.packedLength;let o=ee.unpack(e,t,xfe);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._center=h.clone(i,n._center),n._ellipsoid=ee.clone(o,n._ellipsoid),n._semiMajorAxis=r,n._semiMinorAxis=s,n._rotation=a,n._height=c,n._granularity=u,n._extrudedHeight=f,n._numberOfVerticalLines=d,n._offsetAttribute=p===-1?void 0:p,n):(Zp.height=c,Zp.extrudedHeight=f,Zp.granularity=u,Zp.rotation=a,Zp.semiMajorAxis=r,Zp.semiMinorAxis=s,Zp.numberOfVerticalLines=d,Zp.offsetAttribute=p===-1?void 0:p,new FC(Zp))};FC.createGeometry=function(e){if(e._semiMajorAxis<=0||e._semiMinorAxis<=0)return;let t=e._height,n=e._extrudedHeight,i=!P.equalsEpsilon(t,n,0,P.EPSILON2);e._center=e._ellipsoid.scaleToGeodeticSurface(e._center,e._center);let o={center:e._center,semiMajorAxis:e._semiMajorAxis,semiMinorAxis:e._semiMinorAxis,ellipsoid:e._ellipsoid,rotation:e._rotation,height:t,granularity:e._granularity,numberOfVerticalLines:e._numberOfVerticalLines},r;if(i)o.extrudedHeight=n,o.offsetAttribute=e._offsetAttribute,r=f$e(o);else if(r=u$e(o),l(e._offsetAttribute)){let s=r.attributes.position.values.length,a=e._offsetAttribute===sn.NONE?0:1,c=new Uint8Array(s/3).fill(a);r.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:c})}return new ft({attributes:r.attributes,indices:r.indices,primitiveType:Le.LINES,boundingSphere:r.boundingSphere,offsetAttribute:e._offsetAttribute})};var Pf=FC;var bfe=new z,Tfe=h.ZERO,Afe=new h,Cfe=new re;function d$e(e){this.id=e,this.vertexFormat=void 0,this.center=void 0,this.semiMajorAxis=void 0,this.semiMinorAxis=void 0,this.rotation=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.numberOfVerticalLines=void 0,this.offsetAttribute=void 0}function Pd(e,t){Gn.call(this,{entity:e,scene:t,geometryOptions:new d$e(e),geometryPropertyName:"ellipse",observedPropertyNames:["availability","position","ellipse"]}),this._onEntityPropertyChanged(e,"ellipse",e.ellipse,void 0)}l(Object.create)&&(Pd.prototype=Object.create(Gn.prototype),Pd.prototype.constructor=Pd);Pd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Gt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,bfe)),l(o)||(o=z.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Tfe,Afe))),new vt({id:t,geometry:new Cl(this._options),attributes:i})};Pd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,bfe),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Tfe,Afe))),new vt({id:t,geometry:new Pf(this._options),attributes:r})};Pd.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};Pd.prototype._isHidden=function(e,t){let n=e.position;return!l(n)||!l(t.semiMajorAxis)||!l(t.semiMinorAxis)||ii.prototype._isHidden.call(this,e,t)};Pd.prototype._isDynamic=function(e,t){return!e.position.isConstant||!t.semiMajorAxis.isConstant||!t.semiMinorAxis.isConstant||!Y.isConstant(t.rotation)||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.numberOfVerticalLines)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Gt)};Pd.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),i=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),o=Y.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),r=Y.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,Ke.NONE);l(o)&&!l(n)&&(n=0);let s=this._options;s.vertexFormat=this._materialProperty instanceof Gt?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.center=e.position.getValue(ze.MINIMUM_VALUE,s.center),s.semiMajorAxis=t.semiMajorAxis.getValue(ze.MINIMUM_VALUE,s.semiMajorAxis),s.semiMinorAxis=t.semiMinorAxis.getValue(ze.MINIMUM_VALUE,s.semiMinorAxis),s.rotation=Y.getValueOrUndefined(t.rotation,ze.MINIMUM_VALUE),s.granularity=Y.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),s.stRotation=Y.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),s.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,ze.MINIMUM_VALUE),s.offsetAttribute=Gn.computeGeometryOffsetAttribute(n,i,o,r),s.height=Gn.getGeometryHeight(n,i),o=Gn.getGeometryExtrudedHeight(o,r),o===Gn.CLAMP_TO_GROUND&&(o=ui.getMinimumMaximumHeights(Cl.computeRectangle(s,Cfe)).minimumTerrainHeight),s.extrudedHeight=o};Pd.DynamicGeometryUpdater=BC;function BC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(BC.prototype=Object.create(ni.prototype),BC.prototype.constructor=BC);BC.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.center)||!l(i.semiMajorAxis)||!l(i.semiMinorAxis)||ni.prototype._isHidden.call(this,e,t,n)};BC.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ke.NONE);l(s)&&!l(o)&&(o=0),i.center=Y.getValueOrUndefined(e.position,n,i.center),i.semiMajorAxis=Y.getValueOrUndefined(t.semiMajorAxis,n),i.semiMinorAxis=Y.getValueOrUndefined(t.semiMinorAxis,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.numberOfVerticalLines=Y.getValueOrUndefined(t.numberOfVerticalLines,n),i.offsetAttribute=Gn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Gn.getGeometryHeight(o,r),s=Gn.getGeometryExtrudedHeight(s,a),s===Gn.CLAMP_TO_GROUND&&(s=ui.getMinimumMaximumHeights(Cl.computeRectangle(i,Cfe)).minimumTerrainHeight),i.extrudedHeight=s};var B3=Pd;var h$e=new h,m$e=new h,p$e=new h,_$e=new h,g$e=new h,y$e=new h(1,1,1),Efe=Math.cos,Sfe=Math.sin;function $p(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.radii,y$e),n=y(e.innerRadii,t),i=y(e.minimumClock,0),o=y(e.maximumClock,P.TWO_PI),r=y(e.minimumCone,0),s=y(e.maximumCone,P.PI),a=Math.round(y(e.stackPartitions,64)),c=Math.round(y(e.slicePartitions,64)),u=y(e.vertexFormat,Pe.DEFAULT);this._radii=h.clone(t),this._innerRadii=h.clone(n),this._minimumClock=i,this._maximumClock=o,this._minimumCone=r,this._maximumCone=s,this._stackPartitions=a,this._slicePartitions=c,this._vertexFormat=Pe.clone(u),this._offsetAttribute=e.offsetAttribute,this._workerName="createEllipsoidGeometry"}$p.packedLength=2*h.packedLength+Pe.packedLength+7;$p.pack=function(e,t,n){return n=y(n,0),h.pack(e._radii,t,n),n+=h.packedLength,h.pack(e._innerRadii,t,n),n+=h.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._minimumClock,t[n++]=e._maximumClock,t[n++]=e._minimumCone,t[n++]=e._maximumCone,t[n++]=e._stackPartitions,t[n++]=e._slicePartitions,t[n]=y(e._offsetAttribute,-1),t};var vfe=new h,wfe=new h,Dfe=new Pe,ay={radii:vfe,innerRadii:wfe,vertexFormat:Dfe,minimumClock:void 0,maximumClock:void 0,minimumCone:void 0,maximumCone:void 0,stackPartitions:void 0,slicePartitions:void 0,offsetAttribute:void 0};$p.unpack=function(e,t,n){t=y(t,0);let i=h.unpack(e,t,vfe);t+=h.packedLength;let o=h.unpack(e,t,wfe);t+=h.packedLength;let r=Pe.unpack(e,t,Dfe);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++],p=e[t];return l(n)?(n._radii=h.clone(i,n._radii),n._innerRadii=h.clone(o,n._innerRadii),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._minimumClock=s,n._maximumClock=a,n._minimumCone=c,n._maximumCone=u,n._stackPartitions=f,n._slicePartitions=d,n._offsetAttribute=p===-1?void 0:p,n):(ay.minimumClock=s,ay.maximumClock=a,ay.minimumCone=c,ay.maximumCone=u,ay.stackPartitions=f,ay.slicePartitions=d,ay.offsetAttribute=p===-1?void 0:p,new $p(ay))};$p.createGeometry=function(e){let t=e._radii;if(t.x<=0||t.y<=0||t.z<=0)return;let n=e._innerRadii;if(n.x<=0||n.y<=0||n.z<=0)return;let i=e._minimumClock,o=e._maximumClock,r=e._minimumCone,s=e._maximumCone,a=e._vertexFormat,c=e._slicePartitions+1,u=e._stackPartitions+1;c=Math.round(c*Math.abs(o-i)/P.TWO_PI),u=Math.round(u*Math.abs(s-r)/P.PI),c<2&&(c=2),u<2&&(u=2);let f,d,p=0,g=[r],m=[i];for(f=0;f<u;f++)g.push(r+f*(s-r)/(u-1));for(g.push(s),d=0;d<c;d++)m.push(i+d*(o-i)/(c-1));m.push(o);let x=g.length,b=m.length,T=0,A=1,C=n.x!==t.x||n.y!==t.y||n.z!==t.z,S=!1,v=!1,D=!1;C&&(A=2,r>0&&(S=!0,T+=c-1),s<Math.PI&&(v=!0,T+=c-1),(o-i)%P.TWO_PI?(D=!0,T+=(u-1)*2+1):T+=1);let O=b*x*A,R=new Float64Array(O*3),M=new Array(O).fill(!1),L=new Array(O).fill(!1),_=c*u*A,E=6*(_+T+1-(c+u)*A),w=Ne.createTypedArray(_,E),I=a.normal?new Float32Array(O*3):void 0,N=a.tangent?new Float32Array(O*3):void 0,B=a.bitangent?new Float32Array(O*3):void 0,H=a.st?new Float32Array(O*2):void 0,V=new Array(x),G=new Array(x);for(f=0;f<x;f++)V[f]=Sfe(g[f]),G[f]=Efe(g[f]);let k=new Array(b),W=new Array(b);for(d=0;d<b;d++)W[d]=Efe(m[d]),k[d]=Sfe(m[d]);for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=t.x*V[f]*W[d],R[p++]=t.y*V[f]*k[d],R[p++]=t.z*G[f];let q=O/2;if(C)for(f=0;f<x;f++)for(d=0;d<b;d++)R[p++]=n.x*V[f]*W[d],R[p++]=n.y*V[f]*k[d],R[p++]=n.z*G[f],M[q]=!0,f>0&&f!==x-1&&d!==0&&d!==b-1&&(L[q]=!0),q++;p=0;let J,j;for(f=1;f<x-2;f++)for(J=f*b,j=(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=j+d+1,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=J+d;if(C){let rt=x*b;for(f=1;f<x-2;f++)for(J=rt+f*b,j=rt+(f+1)*b,d=1;d<b-2;d++)w[p++]=j+d,w[p++]=J+d,w[p++]=J+d+1,w[p++]=j+d,w[p++]=J+d+1,w[p++]=j+d+1}let Z,Q;if(C){if(S)for(Q=x*b,f=1;f<b-2;f++)w[p++]=f,w[p++]=f+1,w[p++]=Q+f+1,w[p++]=f,w[p++]=Q+f+1,w[p++]=Q+f;if(v)for(Z=x*b-b,Q=x*b*A-b,f=1;f<b-2;f++)w[p++]=Z+f+1,w[p++]=Z+f,w[p++]=Q+f,w[p++]=Z+f+1,w[p++]=Q+f,w[p++]=Q+f+1}if(D){for(f=1;f<x-2;f++)Q=b*x+b*f,Z=b*f,w[p++]=Q,w[p++]=Z+b,w[p++]=Z,w[p++]=Q,w[p++]=Q+b,w[p++]=Z+b;for(f=1;f<x-2;f++)Q=b*x+b*(f+1)-1,Z=b*(f+1)-1,w[p++]=Z+b,w[p++]=Q,w[p++]=Z,w[p++]=Z+b,w[p++]=Q+b,w[p++]=Q}let de=new dn;a.position&&(de.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:R}));let ye=0,ae=0,_e=0,xe=0,Ie=O/2,Ce,ke=ee.fromCartesian3(t),He=ee.fromCartesian3(n);if(a.st||a.normal||a.tangent||a.bitangent){for(f=0;f<O;f++){Ce=M[f]?He:ke;let rt=h.fromArray(R,f*3,h$e),Lt=Ce.geodeticSurfaceNormal(rt,m$e);if(L[f]&&h.negate(Lt,Lt),a.st){let Tt=U.negate(Lt,g$e);H[ye++]=Math.atan2(Tt.y,Tt.x)/P.TWO_PI+.5,H[ye++]=Math.asin(Lt.z)/Math.PI+.5}if(a.normal&&(I[ae++]=Lt.x,I[ae++]=Lt.y,I[ae++]=Lt.z),a.tangent||a.bitangent){let Tt=p$e,we=0,Xe;if(M[f]&&(we=Ie),!S&&f>=we&&f<we+b*2?Xe=h.UNIT_X:Xe=h.UNIT_Z,h.cross(Xe,Lt,Tt),h.normalize(Tt,Tt),a.tangent&&(N[_e++]=Tt.x,N[_e++]=Tt.y,N[_e++]=Tt.z),a.bitangent){let Qe=h.cross(Lt,Tt,_$e);h.normalize(Qe,Qe),B[xe++]=Qe.x,B[xe++]=Qe.y,B[xe++]=Qe.z}}}a.st&&(de.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:H})),a.normal&&(de.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:I})),a.tangent&&(de.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:N})),a.bitangent&&(de.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:B}))}if(l(e._offsetAttribute)){let rt=R.length,Lt=e._offsetAttribute===sn.NONE?0:1,Tt=new Uint8Array(rt/3).fill(Lt);de.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Tt})}return new ft({attributes:de,indices:w,primitiveType:Le.TRIANGLES,boundingSphere:se.fromEllipsoid(ke),offsetAttribute:e._offsetAttribute})};var h7;$p.getUnitEllipsoid=function(){return l(h7)||(h7=$p.createGeometry(new $p({radii:new h(1,1,1),vertexFormat:Pe.POSITION_ONLY}))),h7};var aa=$p;var x$e=new Gt(z.WHITE),m7=h.ZERO,p7=new h,b$e=new h,T$e=new h,_7=new z,A$e=new h(1,1,1);function C$e(e){this.id=e,this.vertexFormat=void 0,this.radii=void 0,this.innerRadii=void 0,this.minimumClock=void 0,this.maximumClock=void 0,this.minimumCone=void 0,this.maximumCone=void 0,this.stackPartitions=void 0,this.slicePartitions=void 0,this.subdivisions=void 0,this.offsetAttribute=void 0}function pu(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new C$e(e),geometryPropertyName:"ellipsoid",observedPropertyNames:["availability","position","orientation","ellipsoid"]}),this._onEntityPropertyChanged(e,"ellipsoid",e.ellipsoid,void 0)}l(Object.create)&&(pu.prototype=Object.create(ii.prototype),pu.prototype.constructor=pu);Object.defineProperties(pu.prototype,{terrainOffsetProperty:{get:function(){return this._terrainOffsetProperty}}});pu.prototype.createFillGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r,s=new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),a=this._distanceDisplayConditionProperty.getValue(e),c=Bn.fromDistanceDisplayCondition(a),u={show:s,distanceDisplayCondition:c,color:void 0,offset:void 0};if(this._materialProperty instanceof Gt){let f;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||o)&&(f=this._materialProperty.color.getValue(e,_7)),l(f)||(f=z.WHITE),r=qt.fromColor(f),u.color=r}return l(this._options.offsetAttribute)&&(u.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,m7,p7))),new vt({id:i,geometry:new aa(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:u})};pu.prototype.createOutlineGeometryInstance=function(e,t,n){let i=this._entity,o=i.isAvailable(e),r=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,_7),s=this._distanceDisplayConditionProperty.getValue(e),a={show:new gn(o&&i.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(r),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(s),offset:void 0};return l(this._options.offsetAttribute)&&(a.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,m7,p7))),new vt({id:i,geometry:new Tf(this._options),modelMatrix:t?void 0:i.computeModelMatrixForHeightReference(e,i.ellipsoid.heightReference,this._options.radii.z*.5,this._scene.ellipsoid,n),attributes:a})};pu.prototype._computeCenter=function(e,t){return Y.getValueOrUndefined(this._entity.position,e,t)};pu.prototype._isHidden=function(e,t){return!l(e.position)||!l(t.radii)||ii.prototype._isHidden.call(this,e,t)};pu.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.radii.isConstant||!Y.isConstant(t.innerRadii)||!Y.isConstant(t.stackPartitions)||!Y.isConstant(t.slicePartitions)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.minimumClock)||!Y.isConstant(t.maximumClock)||!Y.isConstant(t.minimumCone)||!Y.isConstant(t.maximumCone)||!Y.isConstant(t.subdivisions)};pu.prototype._setStaticOptions=function(e,t){let n=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),i=this._options;i.vertexFormat=this._materialProperty instanceof Gt?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.radii=t.radii.getValue(ze.MINIMUM_VALUE,i.radii),i.innerRadii=Y.getValueOrUndefined(t.innerRadii,i.radii),i.minimumClock=Y.getValueOrUndefined(t.minimumClock,ze.MINIMUM_VALUE),i.maximumClock=Y.getValueOrUndefined(t.maximumClock,ze.MINIMUM_VALUE),i.minimumCone=Y.getValueOrUndefined(t.minimumCone,ze.MINIMUM_VALUE),i.maximumCone=Y.getValueOrUndefined(t.maximumCone,ze.MINIMUM_VALUE),i.stackPartitions=Y.getValueOrUndefined(t.stackPartitions,ze.MINIMUM_VALUE),i.slicePartitions=Y.getValueOrUndefined(t.slicePartitions,ze.MINIMUM_VALUE),i.subdivisions=Y.getValueOrUndefined(t.subdivisions,ze.MINIMUM_VALUE),i.offsetAttribute=n!==Ke.NONE?sn.ALL:void 0};pu.prototype._onEntityPropertyChanged=Z_;pu.DynamicGeometryUpdater=SD;function SD(e,t,n){ni.call(this,e,t,n),this._scene=e._scene,this._modelMatrix=new F,this._attributes=void 0,this._outlineAttributes=void 0,this._lastSceneMode=void 0,this._lastShow=void 0,this._lastOutlineShow=void 0,this._lastOutlineWidth=void 0,this._lastOutlineColor=void 0,this._lastOffset=new h,this._material={}}l(Object.create)&&(SD.prototype=Object.create(ni.prototype),SD.prototype.constructor=SD);SD.prototype.update=function(e){let t=this._entity,n=t.ellipsoid;if(!t.isShowing||!t.isAvailable(e)||!Y.getValueOrDefault(n.show,e,!0)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let i=Y.getValueOrUndefined(n.radii,e,b$e),o=l(i)?t.computeModelMatrixForHeightReference(e,n.heightReference,i.z*.5,this._scene.ellipsoid,this._modelMatrix):void 0;if(!l(o)||!l(i)){l(this._primitive)&&(this._primitive.show=!1),l(this._outlinePrimitive)&&(this._outlinePrimitive.show=!1);return}let r=Y.getValueOrDefault(n.fill,e,!0),s=Y.getValueOrDefault(n.outline,e,!1),a=Y.getValueOrClonedDefault(n.outlineColor,e,z.BLACK,_7),c=nr.getValue(e,y(n.material,x$e),this._material),u=Y.getValueOrUndefined(n.innerRadii,e,T$e),f=Y.getValueOrUndefined(n.minimumClock,e),d=Y.getValueOrUndefined(n.maximumClock,e),p=Y.getValueOrUndefined(n.minimumCone,e),g=Y.getValueOrUndefined(n.maximumCone,e),m=Y.getValueOrUndefined(n.stackPartitions,e),x=Y.getValueOrUndefined(n.slicePartitions,e),b=Y.getValueOrUndefined(n.subdivisions,e),T=Y.getValueOrDefault(n.outlineWidth,e,1),A=Y.getValueOrDefault(n.heightReference,e,Ke.NONE),C=A!==Ke.NONE?sn.ALL:void 0,S=this._scene.mode,v=S===ne.SCENE3D&&A===Ke.NONE,D=this._options,O=this._geometryUpdater.shadowsProperty.getValue(e),M=this._geometryUpdater.distanceDisplayConditionProperty.getValue(e),L=Y.getValueOrDefault(this._geometryUpdater.terrainOffsetProperty,e,m7,p7);if(!v||this._lastSceneMode!==S||!l(this._primitive)||D.stackPartitions!==m||D.slicePartitions!==x||l(u)&&!h.equals(D.innerRadii!==u)||D.minimumClock!==f||D.maximumClock!==d||D.minimumCone!==p||D.maximumCone!==g||D.subdivisions!==b||this._lastOutlineWidth!==T||D.offsetAttribute!==C){let E=this._primitives;E.removeAndDestroy(this._primitive),E.removeAndDestroy(this._outlinePrimitive),this._primitive=void 0,this._outlinePrimitive=void 0,this._lastSceneMode=S,this._lastOutlineWidth=T,D.stackPartitions=m,D.slicePartitions=x,D.subdivisions=b,D.offsetAttribute=C,D.radii=h.clone(v?A$e:i,D.radii),l(u)?v?D.innerRadii=h.fromElements(u.x/i.x,u.y/i.y,u.z/i.z,D.innerRadii):D.innerRadii=h.clone(u,D.innerRadii):D.innerRadii=void 0,D.minimumClock=f,D.maximumClock=d,D.minimumCone=p,D.maximumCone=g;let w=new oo({material:c,translucent:c.isTranslucent(),closed:!0});D.vertexFormat=w.vertexFormat;let I=this._geometryUpdater.createFillGeometryInstance(e,v,this._modelMatrix);this._primitive=E.add(new In({geometryInstances:I,appearance:w,asynchronous:!1,shadows:O}));let N=this._geometryUpdater.createOutlineGeometryInstance(e,v,this._modelMatrix);this._outlinePrimitive=E.add(new In({geometryInstances:N,appearance:new cn({flat:!0,translucent:N.attributes.color.value[3]!==255,renderState:{lineWidth:this._geometryUpdater._scene.clampLineWidth(T)}}),asynchronous:!1,shadows:O})),this._lastShow=r,this._lastOutlineShow=s,this._lastOutlineColor=z.clone(a,this._lastOutlineColor),this._lastDistanceDisplayCondition=M,this._lastOffset=h.clone(L,this._lastOffset)}else if(this._primitive.ready){let E=this._primitive,w=this._outlinePrimitive;E.show=!0,w.show=!0,E.appearance.material=c;let I=this._attributes;l(I)||(I=E.getGeometryInstanceAttributes(t),this._attributes=I),r!==this._lastShow&&(I.show=gn.toValue(r,I.show),this._lastShow=r);let N=this._outlineAttributes;l(N)||(N=w.getGeometryInstanceAttributes(t),this._outlineAttributes=N),s!==this._lastOutlineShow&&(N.show=gn.toValue(s,N.show),this._lastOutlineShow=s),z.equals(a,this._lastOutlineColor)||(N.color=qt.toValue(a,N.color),z.clone(a,this._lastOutlineColor)),Ft.equals(M,this._lastDistanceDisplayCondition)||(I.distanceDisplayCondition=Bn.toValue(M,I.distanceDisplayCondition),N.distanceDisplayCondition=Bn.toValue(M,N.distanceDisplayCondition),Ft.clone(M,this._lastDistanceDisplayCondition)),h.equals(L,this._lastOffset)||(I.offset=Zi.toValue(L,I.offset),N.offset=Zi.toValue(L,I.offset),h.clone(L,this._lastOffset))}v&&(i.x=Math.max(i.x,.001),i.y=Math.max(i.y,.001),i.z=Math.max(i.z,.001),o=F.multiplyByScale(o,i,o),this._primitive.modelMatrix=o,this._outlinePrimitive.modelMatrix=o)};var k3=pu;function kC(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=t,this._workerName="createPlaneGeometry"}kC.packedLength=Pe.packedLength;kC.pack=function(e,t,n){return n=y(n,0),Pe.pack(e._vertexFormat,t,n),t};var Ife=new Pe,E$e={vertexFormat:Ife};kC.unpack=function(e,t,n){t=y(t,0);let i=Pe.unpack(e,t,Ife);return l(n)?(n._vertexFormat=Pe.clone(i,n._vertexFormat),n):new kC(E$e)};var V3=new h(-.5,-.5,0),U3=new h(.5,.5,0);kC.createGeometry=function(e){let t=e._vertexFormat,n=new dn,i,o;if(t.position){if(o=new Float64Array(4*3),o[0]=V3.x,o[1]=V3.y,o[2]=0,o[3]=U3.x,o[4]=V3.y,o[5]=0,o[6]=U3.x,o[7]=U3.y,o[8]=0,o[9]=V3.x,o[10]=U3.y,o[11]=0,n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:o}),t.normal){let r=new Float32Array(12);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=0,r[5]=1,r[6]=0,r[7]=0,r[8]=1,r[9]=0,r[10]=0,r[11]=1,n.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.st){let r=new Float32Array(8);r[0]=0,r[1]=0,r[2]=1,r[3]=0,r[4]=1,r[5]=1,r[6]=0,r[7]=1,n.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:r})}if(t.tangent){let r=new Float32Array(12);r[0]=1,r[1]=0,r[2]=0,r[3]=1,r[4]=0,r[5]=0,r[6]=1,r[7]=0,r[8]=0,r[9]=1,r[10]=0,r[11]=0,n.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}if(t.bitangent){let r=new Float32Array(12);r[0]=0,r[1]=1,r[2]=0,r[3]=0,r[4]=1,r[5]=0,r[6]=0,r[7]=1,r[8]=0,r[9]=0,r[10]=1,r[11]=0,n.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})}i=new Uint16Array(2*3),i[0]=0,i[1]=1,i[2]=2,i[3]=0,i[4]=2,i[5]=3}return new ft({attributes:n,indices:i,primitiveType:Le.TRIANGLES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var z3=kC;function VC(){this._workerName="createPlaneOutlineGeometry"}VC.packedLength=0;VC.pack=function(e,t){return t};VC.unpack=function(e,t,n){return l(n)?n:new VC};var cy=new h(-.5,-.5,0),H3=new h(.5,.5,0);VC.createGeometry=function(){let e=new dn,t=new Uint16Array(4*2),n=new Float64Array(4*3);return n[0]=cy.x,n[1]=cy.y,n[2]=cy.z,n[3]=H3.x,n[4]=cy.y,n[5]=cy.z,n[6]=H3.x,n[7]=H3.y,n[8]=cy.z,n[9]=cy.x,n[10]=H3.y,n[11]=cy.z,e.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:n}),t[0]=0,t[1]=1,t[2]=1,t[3]=2,t[4]=2,t[5]=3,t[6]=3,t[7]=0,new ft({attributes:e,indices:t,primitiveType:Le.LINES,boundingSphere:new se(h.ZERO,Math.sqrt(2))})};var G3=VC;var S$e=new h,Pfe=new z;function v$e(e){this.id=e,this.vertexFormat=void 0,this.plane=void 0,this.dimensions=void 0}function Rf(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new v$e(e),geometryPropertyName:"plane",observedPropertyNames:["availability","position","orientation","plane"]}),this._onEntityPropertyChanged(e,"plane",e.plane,void 0)}l(Object.create)&&(Rf.prototype=Object.create(ii.prototype),Rf.prototype.constructor=Rf);Rf.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Gt){let g;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(g=this._materialProperty.color.getValue(e,Pfe)),l(g)||(g=z.WHITE),o=qt.fromColor(g),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};let c=t.plane,u=this._options,f=t.computeModelMatrix(e),d=Y.getValueOrDefault(c.plane,e,u.plane),p=Y.getValueOrUndefined(c.dimensions,e,u.dimensions);return u.plane=d,u.dimensions=p,f=g7(d,p,f,f),new vt({id:t,geometry:new z3(this._options),modelMatrix:f,attributes:i})};Rf.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Pfe),o=this._distanceDisplayConditionProperty.getValue(e),r=t.plane,s=this._options,a=t.computeModelMatrix(e),c=Y.getValueOrDefault(r.plane,e,s.plane),u=Y.getValueOrUndefined(r.dimensions,e,s.dimensions);return s.plane=c,s.dimensions=u,a=g7(c,u,a,a),new vt({id:t,geometry:new G3,modelMatrix:a,attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};Rf.prototype._isHidden=function(e,t){return!l(t.plane)||!l(t.dimensions)||!l(e.position)||ii.prototype._isHidden.call(this,e,t)};Rf.prototype._getIsClosed=function(e){return!1};Rf.prototype._isDynamic=function(e,t){return!e.position.isConstant||!Y.isConstant(e.orientation)||!t.plane.isConstant||!t.dimensions.isConstant||!Y.isConstant(t.outlineWidth)};Rf.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Gt,i=this._options;i.vertexFormat=n?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,i.plane=t.plane.getValue(ze.MINIMUM_VALUE,i.plane),i.dimensions=t.dimensions.getValue(ze.MINIMUM_VALUE,i.dimensions)};Rf.DynamicGeometryUpdater=UC;function UC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(UC.prototype=Object.create(ni.prototype),UC.prototype.constructor=UC);UC.prototype._isHidden=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(e.position,n,S$e);return!l(o)||!l(i.plane)||!l(i.dimensions)||ni.prototype._isHidden.call(this,e,t,n)};UC.prototype._setOptions=function(e,t,n){let i=this._options;i.plane=Y.getValueOrDefault(t.plane,n,i.plane),i.dimensions=Y.getValueOrUndefined(t.dimensions,n,i.dimensions)};var w$e=new h,D$e=new h,I$e=new h,P$e=new h,R$e=new $,O$e=new $,M$e=new F;function g7(e,t,n,i){let o=e.normal,r=e.distance,s=h.multiplyByScalar(o,-r,I$e),a=h.clone(h.UNIT_Z,D$e);P.equalsEpsilon(Math.abs(h.dot(a,o)),1,P.EPSILON8)&&(a=h.clone(h.UNIT_Y,a));let c=h.cross(a,o,w$e);a=h.cross(o,c,a),h.normalize(c,c),h.normalize(a,a);let u=R$e;$.setColumn(u,0,c,u),$.setColumn(u,1,a,u),$.setColumn(u,2,o,u);let f=h.fromElements(t.x,t.y,1,P$e),d=$.multiplyByScale(u,f,O$e),p=F.fromRotationTranslation(d,s,M$e);return F.multiplyTransformation(n,p,i)}Rf.createPrimitiveMatrix=g7;var W3=Rf;var L$e=new h,N$e=new qe,F$e=new U,B$e=new U,k$e=new h,V$e=new h,U$e=new h,vD=new h,z$e=new h,H$e=new h,Rfe=new Me,G$e=new $,W$e=new $,j$e=new h;function q$e(e,t,n,i,o,r,s,a,c){let u=e.positions,f=ri.triangulate(e.positions2D,e.holes);f.length<3&&(f=[0,1,2]);let d=Ne.createTypedArray(u.length,f.length);d.set(f);let p=G$e;if(i!==0){let _=Me.fromAxisAngle(s,i,Rfe);if(p=$.fromQuaternion(_,p),t.tangent||t.bitangent){_=Me.fromAxisAngle(s,-i,Rfe);let E=$.fromQuaternion(_,W$e);a=h.normalize($.multiplyByVector(E,a,a),a),t.bitangent&&(c=h.normalize(h.cross(s,a,c),c))}}else p=$.clone($.IDENTITY,p);let g=B$e;t.st&&(g.x=n.x,g.y=n.y);let m=u.length,x=m*3,b=new Float64Array(x),T=t.normal?new Float32Array(x):void 0,A=t.tangent?new Float32Array(x):void 0,C=t.bitangent?new Float32Array(x):void 0,S=t.st?new Float32Array(m*2):void 0,v=0,D=0,O=0,R=0,M=0;for(let _=0;_<m;_++){let E=u[_];if(b[v++]=E.x,b[v++]=E.y,b[v++]=E.z,t.st)if(l(o)&&o.positions.length===m)S[M++]=o.positions[_].x,S[M++]=o.positions[_].y;else{let w=$.multiplyByVector(p,E,L$e),I=r(w,F$e);U.subtract(I,g,I);let N=P.clamp(I.x/n.width,0,1),B=P.clamp(I.y/n.height,0,1);S[M++]=N,S[M++]=B}t.normal&&(T[D++]=s.x,T[D++]=s.y,T[D++]=s.z),t.tangent&&(A[R++]=a.x,A[R++]=a.y,A[R++]=a.z),t.bitangent&&(C[O++]=c.x,C[O++]=c.y,C[O++]=c.z)}let L=new dn;return t.position&&(L.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b})),t.normal&&(L.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:T})),t.tangent&&(L.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:A})),t.bitangent&&(L.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:C})),t.st&&(L.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:S})),new ft({attributes:L,indices:d,primitiveType:Le.TRIANGLES})}function zx(e){e=y(e,y.EMPTY_OBJECT);let t=e.polygonHierarchy,n=e.textureCoordinates,i=y(e.vertexFormat,Pe.DEFAULT);this._vertexFormat=Pe.clone(i),this._polygonHierarchy=t,this._stRotation=y(e.stRotation,0),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createCoplanarPolygonGeometry",this._textureCoordinates=n,this.packedLength=Un.computeHierarchyPackedLength(t,h)+Pe.packedLength+ee.packedLength+(l(n)?Un.computeHierarchyPackedLength(n,U):1)+2}zx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},vertexFormat:e.vertexFormat,stRotation:e.stRotation,ellipsoid:e.ellipsoid,textureCoordinates:e.textureCoordinates};return new zx(t)};zx.pack=function(e,t,n){return n=y(n,0),n=Un.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._stRotation,l(e._textureCoordinates)?n=Un.packPolygonHierarchy(e._textureCoordinates,t,n,U):t[n++]=-1,t[n++]=e.packedLength,t};var Y$e=ee.clone(ee.UNIT_SPHERE),X$e=new Pe,K$e={polygonHierarchy:{}};zx.unpack=function(e,t,n){t=y(t,0);let i=Un.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,Y$e);t+=ee.packedLength;let r=Pe.unpack(e,t,X$e);t+=Pe.packedLength;let s=e[t++],a=e[t]===-1?void 0:Un.unpackPolygonHierarchy(e,t,U);l(a)?(t=a.startingIndex,delete a.startingIndex):t++;let c=e[t++];return l(n)||(n=new zx(K$e)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._stRotation=s,n._textureCoordinates=a,n.packedLength=c,n};zx.createGeometry=function(e){let t=e._vertexFormat,n=e._polygonHierarchy,i=e._stRotation,o=e._textureCoordinates,r=l(o),s=n.positions;if(s=bo(s,h.equalsEpsilon,!0),s.length<3)return;let a=k$e,c=V$e,u=U$e,f=z$e,d=H$e;if(!Ug.computeProjectTo2DArguments(s,vD,f,d))return;if(a=h.cross(f,d,a),a=h.normalize(a,a),!h.equalsEpsilon(vD,h.ZERO,P.EPSILON6)){let M=e._ellipsoid.geodeticSurfaceNormal(vD,j$e);h.dot(a,M)<0&&(a=h.negate(a,a),f=h.negate(f,f))}let g=Ug.createProjectPointsTo2DFunction(vD,f,d),m=Ug.createProjectPointTo2DFunction(vD,f,d);t.tangent&&(c=h.clone(f,c)),t.bitangent&&(u=h.clone(d,u));let x=Un.polygonsFromHierarchy(n,r,g,!1),b=x.hierarchy,T=x.polygons,A=function(M){return M},C=r?Un.polygonsFromHierarchy(o,!0,A,!1).polygons:void 0;if(b.length===0)return;s=b[0].outerRing;let S=se.fromPoints(s),v=Un.computeBoundingRectangle(a,m,s,i,N$e),D=[];for(let M=0;M<T.length;M++){let L=new vt({geometry:q$e(T[M],t,v,i,r?C[M]:void 0,m,a,c,u)});D.push(L)}let O=Nn.combineInstances(D)[0];O.attributes.position.values=new Float64Array(O.attributes.position.values),O.indices=Ne.createTypedArray(O.attributes.position.values.length/3,O.indices);let R=O.attributes;return t.position||delete R.position,new ft({attributes:R,indices:O.indices,primitiveType:O.primitiveType,boundingSphere:S})};var j3=zx;var Ofe=[],q3=[];function Z$e(e,t,n,i,o){let s=ts.fromPoints(t,e).projectPointsOntoPlane(t,Ofe);ri.computeWindingOrder2D(s)===gs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=0;if(i)for(c=new Float64Array(f*2*3),u=0;u<f;u++){let m=t[u],x=t[(u+1)%f];c[d++]=m.x,c[d++]=m.y,c[d++]=m.z,c[d++]=x.x,c[d++]=x.y,c[d++]=x.z}else{let m=0;if(o===tn.GEODESIC)for(u=0;u<f;u++)m+=Un.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===tn.RHUMB)for(u=0;u<f;u++)m+=Un.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(m*3),u=0;u<f;u++){let x;o===tn.GEODESIC?x=Un.subdivideLine(t[u],t[(u+1)%f],n,q3):o===tn.RHUMB&&(x=Un.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,q3));let b=x.length;for(let T=0;T<b;++T)c[d++]=x[T]}}f=c.length/3;let p=f*2,g=Ne.createTypedArray(f,p);for(d=0,u=0;u<f-1;u++)g[d++]=u,g[d++]=u+1;return g[d++]=f-1,g[d++]=0,new vt({geometry:new ft({attributes:new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:g,primitiveType:Le.LINES})})}function $$e(e,t,n,i,o){let s=ts.fromPoints(t,e).projectPointsOntoPlane(t,Ofe);ri.computeWindingOrder2D(s)===gs.CLOCKWISE&&(s.reverse(),t=t.slice().reverse());let c,u,f=t.length,d=new Array(f),p=0;if(i)for(c=new Float64Array(f*2*3*2),u=0;u<f;++u){d[u]=p/3;let b=t[u],T=t[(u+1)%f];c[p++]=b.x,c[p++]=b.y,c[p++]=b.z,c[p++]=T.x,c[p++]=T.y,c[p++]=T.z}else{let b=0;if(o===tn.GEODESIC)for(u=0;u<f;u++)b+=Un.subdivideLineCount(t[u],t[(u+1)%f],n);else if(o===tn.RHUMB)for(u=0;u<f;u++)b+=Un.subdivideRhumbLineCount(e,t[u],t[(u+1)%f],n);for(c=new Float64Array(b*3*2),u=0;u<f;++u){d[u]=p/3;let T;o===tn.GEODESIC?T=Un.subdivideLine(t[u],t[(u+1)%f],n,q3):o===tn.RHUMB&&(T=Un.subdivideRhumbLine(e,t[u],t[(u+1)%f],n,q3));let A=T.length;for(let C=0;C<A;++C)c[p++]=T[C]}}f=c.length/(3*2);let g=d.length,m=(f*2+g)*2,x=Ne.createTypedArray(f+g,m);for(p=0,u=0;u<f;++u)x[p++]=u,x[p++]=(u+1)%f,x[p++]=u+f,x[p++]=(u+1)%f+f;for(u=0;u<g;u++){let b=d[u];x[p++]=b,x[p++]=b+f}return new vt({geometry:new ft({attributes:new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})}),indices:x,primitiveType:Le.LINES})})}function Hx(e){let t=e.polygonHierarchy,n=y(e.ellipsoid,ee.default),i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.perPositionHeight,!1),r=o&&l(e.extrudedHeight),s=y(e.arcType,tn.GEODESIC),a=y(e.height,0),c=y(e.extrudedHeight,a);if(!r){let u=Math.max(a,c);c=Math.min(a,c),a=u}this._ellipsoid=ee.clone(n),this._granularity=i,this._height=a,this._extrudedHeight=c,this._arcType=s,this._polygonHierarchy=t,this._perPositionHeight=o,this._perPositionHeightExtrude=r,this._offsetAttribute=e.offsetAttribute,this._workerName="createPolygonOutlineGeometry",this.packedLength=Un.computeHierarchyPackedLength(t,h)+ee.packedLength+8}Hx.pack=function(e,t,n){return n=y(n,0),n=Un.packPolygonHierarchy(e._polygonHierarchy,t,n,h),ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._height,t[n++]=e._extrudedHeight,t[n++]=e._granularity,t[n++]=e._perPositionHeightExtrude?1:0,t[n++]=e._perPositionHeight?1:0,t[n++]=e._arcType,t[n++]=y(e._offsetAttribute,-1),t[n]=e.packedLength,t};var Q$e=ee.clone(ee.UNIT_SPHERE),J$e={polygonHierarchy:{}};Hx.unpack=function(e,t,n){t=y(t,0);let i=Un.unpackPolygonHierarchy(e,t,h);t=i.startingIndex,delete i.startingIndex;let o=ee.unpack(e,t,Q$e);t+=ee.packedLength;let r=e[t++],s=e[t++],a=e[t++],c=e[t++]===1,u=e[t++]===1,f=e[t++],d=e[t++],p=e[t];return l(n)||(n=new Hx(J$e)),n._polygonHierarchy=i,n._ellipsoid=ee.clone(o,n._ellipsoid),n._height=r,n._extrudedHeight=s,n._granularity=a,n._perPositionHeight=u,n._perPositionHeightExtrude=c,n._arcType=f,n._offsetAttribute=d===-1?void 0:d,n.packedLength=p,n};Hx.fromPositions=function(e){e=y(e,y.EMPTY_OBJECT);let t={polygonHierarchy:{positions:e.positions},height:e.height,extrudedHeight:e.extrudedHeight,ellipsoid:e.ellipsoid,granularity:e.granularity,perPositionHeight:e.perPositionHeight,arcType:e.arcType,offsetAttribute:e.offsetAttribute};return new Hx(t)};Hx.createGeometry=function(e){let t=e._ellipsoid,n=e._granularity,i=e._polygonHierarchy,o=e._perPositionHeight,r=e._arcType,s=Un.polygonOutlinesFromHierarchy(i,!o,t);if(s.length===0)return;let a,c=[],u=P.chordLength(n,t.maximumRadius),f=e._height,d=e._extrudedHeight,p=e._perPositionHeightExtrude||!P.equalsEpsilon(f,d,0,P.EPSILON2),g,m;if(p)for(m=0;m<s.length;m++){if(a=$$e(t,s[m],u,o,r),a.geometry=Un.scaleToGeodeticHeightExtruded(a.geometry,f,d,t,o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length/3,A=new Uint8Array(T);e._offsetAttribute===sn.TOP?A=A.fill(1,0,T/2):(g=e._offsetAttribute===sn.NONE?0:1,A=A.fill(g)),a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}else for(m=0;m<s.length;m++){if(a=Z$e(t,s[m],u,o,r),a.geometry.attributes.position.values=ri.scaleToGeodeticHeight(a.geometry.attributes.position.values,f,t,!o),l(e._offsetAttribute)){let T=a.geometry.attributes.position.values.length;g=e._offsetAttribute===sn.NONE?0:1;let A=new Uint8Array(T/3).fill(g);a.geometry.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:A})}c.push(a)}let x=Nn.combineInstances(c)[0],b=se.fromVertices(x.attributes.position.values);return new ft({attributes:x.attributes,indices:x.indices,primitiveType:x.primitiveType,boundingSphere:b,offsetAttribute:e._offsetAttribute})};var Y3=Hx;var Mfe="Entity polygons cannot have both height and perPositionHeight. height will be ignored",Lfe="heightReference is not supported for entity polygons with perPositionHeight. heightReference will be ignored",Nfe=new z,Ffe=h.ZERO,Bfe=new h,kfe=new re,eQe=[],tQe=new U;function nQe(e){this.id=e,this.vertexFormat=void 0,this.polygonHierarchy=void 0,this.perPositionHeight=void 0,this.closeTop=void 0,this.closeBottom=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.offsetAttribute=void 0,this.arcType=void 0,this.textureCoordinates=void 0}function _u(e,t){Gn.call(this,{entity:e,scene:t,geometryOptions:new nQe(e),geometryPropertyName:"polygon",observedPropertyNames:["availability","polygon"]}),this._onEntityPropertyChanged(e,"polygon",e.polygon,void 0)}l(Object.create)&&(_u.prototype=Object.create(Gn.prototype),_u.prototype.constructor=_u);_u.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Gt){let s;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(s=this._materialProperty.color.getValue(e,Nfe)),l(s)||(s=z.WHITE),o.color=qt.fromColor(s)}l(i.offsetAttribute)&&(o.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Ffe,Bfe)));let r;return i.perPositionHeight&&!l(i.extrudedHeight)?r=new j3(i):r=new xg(i),new vt({id:t,geometry:r,attributes:o})};_u.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=this._options,o=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Nfe),r=this._distanceDisplayConditionProperty.getValue(e),s={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(o),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(r),offset:void 0};l(i.offsetAttribute)&&(s.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,Ffe,Bfe)));let a;return i.perPositionHeight&&!l(i.extrudedHeight)?a=new Cd(i):a=new Y3(i),new vt({id:t,geometry:a,attributes:s})};_u.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.polygon.hierarchy,e);if(!l(n))return;let i=n.positions;if(i.length===0)return;let o=this._scene.ellipsoid,r=ts.fromPoints(i,o),s=r.projectPointsOntoPlane(i,eQe),a=s.length,c=0,u=a-1,f=new U;for(let p=0;p<a;u=p++){let g=s[p],m=s[u],x=g.x*m.y-m.x*g.y,b=U.add(g,m,tQe);b=U.multiplyByScalar(b,x,b),f=U.add(f,b,f),c+=x}let d=1/(c*3);return f=U.multiplyByScalar(f,d,f),r.projectPointOntoEllipsoid(f,t)};_u.prototype._isHidden=function(e,t){return!l(t.hierarchy)||ii.prototype._isHidden.call(this,e,t)};_u.prototype._isOnTerrain=function(e,t){let n=Gn.prototype._isOnTerrain.call(this,e,t),i=t.perPositionHeight,o=l(i)&&(i.isConstant?i.getValue(ze.MINIMUM_VALUE):!0);return n&&!o};_u.prototype._isDynamic=function(e,t){return!t.hierarchy.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.textureCoordinates)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.perPositionHeight)||!Y.isConstant(t.closeTop)||!Y.isConstant(t.closeBottom)||!Y.isConstant(t.zIndex)||!Y.isConstant(t.arcType)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Gt)};_u.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Gt,i=this._options;i.vertexFormat=n?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat;let o=t.hierarchy.getValue(ze.MINIMUM_VALUE),r=Y.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),s=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),c=Y.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,Ke.NONE),u=Y.getValueOrDefault(t.perPositionHeight,ze.MINIMUM_VALUE,!1);r=Gn.getGeometryHeight(r,s);let f;if(u?(l(r)&&(r=void 0,At(Mfe)),s!==Ke.NONE&&u&&(r=void 0,At(Lfe))):(l(a)&&!l(r)&&(r=0),f=Gn.computeGeometryOffsetAttribute(r,s,a,c)),i.polygonHierarchy=o,i.granularity=Y.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),i.stRotation=Y.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),i.perPositionHeight=u,i.closeTop=Y.getValueOrDefault(t.closeTop,ze.MINIMUM_VALUE,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,ze.MINIMUM_VALUE,!0),i.offsetAttribute=f,i.height=r,i.arcType=Y.getValueOrDefault(t.arcType,ze.MINIMUM_VALUE,tn.GEODESIC),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,ze.MINIMUM_VALUE),a=Gn.getGeometryExtrudedHeight(a,c),a===Gn.CLAMP_TO_GROUND){let d=xg.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,kfe);a=ui.getMinimumMaximumHeights(d).minimumTerrainHeight}i.extrudedHeight=a};_u.prototype._getIsClosed=function(e){let t=e.height,n=e.extrudedHeight,i=l(n)&&n!==t;return!e.perPositionHeight&&(!i&&t===0||i&&e.closeTop&&e.closeBottom)};_u.DynamicGeometryUpdater=zC;function zC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(zC.prototype=Object.create(ni.prototype),zC.prototype.constructor=zC);zC.prototype._isHidden=function(e,t,n){return!l(this._options.polygonHierarchy)||ni.prototype._isHidden.call(this,e,t,n)};zC.prototype._setOptions=function(e,t,n){let i=this._options;i.polygonHierarchy=Y.getValueOrUndefined(t.hierarchy,n);let o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),s=Y.getValueOrDefault(t.extrudedHeightReference,n,Ke.NONE),a=Y.getValueOrUndefined(t.extrudedHeight,n),c=Y.getValueOrUndefined(t.perPositionHeight,n);o=Gn.getGeometryHeight(o,s);let u;if(c?(l(o)&&(o=void 0,At(Mfe)),r!==Ke.NONE&&c&&(o=void 0,At(Lfe))):(l(a)&&!l(o)&&(o=0),u=Gn.computeGeometryOffsetAttribute(o,r,a,s)),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.textureCoordinates=Y.getValueOrUndefined(t.textureCoordinates,n),i.perPositionHeight=Y.getValueOrUndefined(t.perPositionHeight,n),i.closeTop=Y.getValueOrDefault(t.closeTop,n,!0),i.closeBottom=Y.getValueOrDefault(t.closeBottom,n,!0),i.offsetAttribute=u,i.height=o,i.arcType=Y.getValueOrDefault(t.arcType,n,tn.GEODESIC),a=Gn.getGeometryExtrudedHeight(a,s),a===Gn.CLAMP_TO_GROUND){let f=xg.computeRectangleFromPositions(i.polygonHierarchy.positions,i.ellipsoid,i.arcType,kfe);a=ui.getMinimumMaximumHeights(f).minimumTerrainHeight}i.extrudedHeight=a};var X3=_u;function iQe(e,t,n,i){let o=new dn;i.position&&(o.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e}));let r=t.length,s=e.length/3,a=(s-r*2)/(r*2),c=ri.triangulate(t),u=(a-1)*r*6+c.length*2,f=Ne.createTypedArray(s,u),d,p,g,m,x,b,T=r*2,A=0;for(d=0;d<a-1;d++){for(p=0;p<r-1;p++)g=p*2+d*r*2,b=g+T,m=g+1,x=m+T,f[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b;g=r*2-2+d*r*2,m=g+1,x=m+T,b=g+T,f[A++]=m,f[A++]=g,f[A++]=x,f[A++]=x,f[A++]=g,f[A++]=b}if(i.st||i.tangent||i.bitangent){let v=new Float32Array(s*2),D=1/(a-1),O=1/n.height,R=n.height/2,M,L,_=0;for(d=0;d<a;d++){for(M=d*D,L=O*(t[0].y+R),v[_++]=M,v[_++]=L,p=1;p<r;p++)L=O*(t[p].y+R),v[_++]=M,v[_++]=L,v[_++]=M,v[_++]=L;L=O*(t[0].y+R),v[_++]=M,v[_++]=L}for(p=0;p<r;p++)M=0,L=O*(t[p].y+R),v[_++]=M,v[_++]=L;for(p=0;p<r;p++)M=(a-1)*D,L=O*(t[p].y+R),v[_++]=M,v[_++]=L;o.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:new Float32Array(v)})}let C=s-r*2;for(d=0;d<c.length;d+=3){let v=c[d]+C,D=c[d+1]+C,O=c[d+2]+C;f[A++]=v,f[A++]=D,f[A++]=O,f[A++]=O+r,f[A++]=D+r,f[A++]=v+r}let S=new ft({attributes:o,indices:f,boundingSphere:se.fromVertices(e),primitiveType:Le.TRIANGLES});if(i.normal&&(S=Nn.computeNormal(S)),i.tangent||i.bitangent){try{S=Nn.computeTangentAndBitangent(S)}catch{At("polyline-volume-tangent-bitangent","Unable to compute tangents and bitangents for polyline volume geometry")}i.tangent||(S.attributes.tangent=void 0),i.bitangent||(S.attributes.bitangent=void 0),i.st||(S.attributes.st=void 0)}return S}function DD(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Oi.ROUNDED),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*U.packedLength,this.packedLength=i+ee.packedLength+Pe.packedLength+2}DD.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=U.packedLength)U.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var Vfe=ee.clone(ee.UNIT_SPHERE),Ufe=new Pe,wD={polylinePositions:void 0,shapePositions:void 0,ellipsoid:Vfe,vertexFormat:Ufe,cornerType:void 0,granularity:void 0};DD.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=U.packedLength)s[i]=U.unpack(e,t);let a=ee.unpack(e,t,Vfe);t+=ee.packedLength;let c=Pe.unpack(e,t,Ufe);t+=Pe.packedLength;let u=e[t++],f=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._cornerType=u,n._granularity=f,n):(wD.polylinePositions=r,wD.shapePositions=s,wD.cornerType=u,wD.granularity=f,new DD(wD))};var oQe=new qe;DD.createGeometry=function(e){let t=e._positions,n=bo(t,h.equalsEpsilon),i=e._shape;if(i=Jh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===gs.CLOCKWISE&&i.reverse();let o=qe.fromPoints(i,oQe),r=Jh.computePositions(n,i,o,e,!0);return iQe(r,i,o,e._vertexFormat)};var K3=DD;function rQe(e,t){let n=new dn;n.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:e});let i=t.length,o=n.position.values.length/3,s=e.length/3/i,a=Ne.createTypedArray(o,2*i*(s+1)),c,u,f=0;c=0;let d=c*i;for(u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=s-1,d=c*i,u=0;u<i-1;u++)a[f++]=u+d,a[f++]=u+d+1;for(a[f++]=i-1+d,a[f++]=d,c=0;c<s-1;c++){let g=i*c,m=g+i;for(u=0;u<i;u++)a[f++]=u+g,a[f++]=u+m}return new ft({attributes:n,indices:Ne.createTypedArray(o,a),boundingSphere:se.fromVertices(e),primitiveType:Le.LINES})}function PD(e){e=y(e,y.EMPTY_OBJECT);let t=e.polylinePositions,n=e.shapePositions;this._positions=t,this._shape=n,this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._cornerType=y(e.cornerType,Oi.ROUNDED),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._workerName="createPolylineVolumeOutlineGeometry";let i=1+t.length*h.packedLength;i+=1+n.length*U.packedLength,this.packedLength=i+ee.packedLength+2}PD.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._shape;for(r=s.length,t[n++]=r,i=0;i<r;++i,n+=U.packedLength)U.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._cornerType,t[n]=e._granularity,t};var zfe=ee.clone(ee.UNIT_SPHERE),ID={polylinePositions:void 0,shapePositions:void 0,ellipsoid:zfe,height:void 0,cornerType:void 0,granularity:void 0};PD.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=new Array(o);for(i=0;i<o;++i,t+=U.packedLength)s[i]=U.unpack(e,t);let a=ee.unpack(e,t,zfe);t+=ee.packedLength;let c=e[t++],u=e[t];return l(n)?(n._positions=r,n._shape=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._cornerType=c,n._granularity=u,n):(ID.polylinePositions=r,ID.shapePositions=s,ID.cornerType=c,ID.granularity=u,new PD(ID))};var sQe=new qe;PD.createGeometry=function(e){let t=e._positions,n=bo(t,h.equalsEpsilon),i=e._shape;if(i=Jh.removeDuplicatesFromShape(i),n.length<2||i.length<3)return;ri.computeWindingOrder2D(i)===gs.CLOCKWISE&&i.reverse();let o=qe.fromPoints(i,sQe),r=Jh.computePositions(n,i,o,e,!1);return rQe(r,i)};var Z3=PD;var Hfe=new z;function aQe(e){this.id=e,this.vertexFormat=void 0,this.polylinePositions=void 0,this.shapePositions=void 0,this.cornerType=void 0,this.granularity=void 0}function am(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new aQe(e),geometryPropertyName:"polylineVolume",observedPropertyNames:["availability","polylineVolume"]}),this._onEntityPropertyChanged(e,"polylineVolume",e.polylineVolume,void 0)}l(Object.create)&&(am.prototype=Object.create(ii.prototype),am.prototype.constructor=am);am.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Gt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,Hfe)),l(c)||(c=z.WHITE),o=qt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new vt({id:t,geometry:new K3(this._options),attributes:i})};am.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,Hfe),o=this._distanceDisplayConditionProperty.getValue(e);return new vt({id:t,geometry:new Z3(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};am.prototype._isHidden=function(e,t){return!l(t.positions)||!l(t.shape)||ii.prototype._isHidden.call(this,e,t)};am.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!t.shape.isConstant||!Y.isConstant(t.granularity)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.cornerType)};am.prototype._setStaticOptions=function(e,t){let n=t.granularity,i=t.cornerType,o=this._options,r=this._materialProperty instanceof Gt;o.vertexFormat=r?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,o.polylinePositions=t.positions.getValue(ze.MINIMUM_VALUE,o.polylinePositions),o.shapePositions=t.shape.getValue(ze.MINIMUM_VALUE,o.shape),o.granularity=l(n)?n.getValue(ze.MINIMUM_VALUE):void 0,o.cornerType=l(i)?i.getValue(ze.MINIMUM_VALUE):void 0};am.DynamicGeometryUpdater=HC;function HC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(HC.prototype=Object.create(ni.prototype),HC.prototype.constructor=HC);HC.prototype._isHidden=function(e,t,n){let i=this._options;return!l(i.polylinePositions)||!l(i.shapePositions)||ni.prototype._isHidden.call(this,e,t,n)};HC.prototype._setOptions=function(e,t,n){let i=this._options;i.polylinePositions=Y.getValueOrUndefined(t.positions,n,i.polylinePositions),i.shapePositions=Y.getValueOrUndefined(t.shape,n),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.cornerType=Y.getValueOrUndefined(t.cornerType,n)};var $3=am;var y7=new h,jfe=new h,qfe=new h,Yfe=new h,Xfe=new re,cQe=new U,lQe=new se,uQe=new se;function Kfe(e,t){let n=new ft({attributes:new dn,primitiveType:Le.TRIANGLES});return n.attributes.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:t.positions}),e.normal&&(n.attributes.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.normals})),e.tangent&&(n.attributes.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.tangents})),e.bitangent&&(n.attributes.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:t.bitangents})),n}function fQe(e,t,n,i){let o=e.length,r=t.normal?new Float32Array(o):void 0,s=t.tangent?new Float32Array(o):void 0,a=t.bitangent?new Float32Array(o):void 0,c=0,u=Yfe,f=qfe,d=jfe;if(t.normal||t.tangent||t.bitangent)for(let p=0;p<o;p+=3){let g=h.fromArray(e,p,y7),m=c+1,x=c+2;d=n.geodeticSurfaceNormal(g,d),(t.tangent||t.bitangent)&&(h.cross(h.UNIT_Z,d,f),$.multiplyByVector(i,f,f),h.normalize(f,f),t.bitangent&&h.normalize(h.cross(d,f,u),u)),t.normal&&(r[c]=d.x,r[m]=d.y,r[x]=d.z),t.tangent&&(s[c]=f.x,s[m]=f.y,s[x]=f.z),t.bitangent&&(a[c]=u.x,a[m]=u.y,a[x]=u.z),c+=3}return Kfe(t,{positions:e,normals:r,tangents:s,bitangents:a})}var x7=new h,Zfe=new h;function dQe(e,t,n){let i=e.length,o=t.normal?new Float32Array(i):void 0,r=t.tangent?new Float32Array(i):void 0,s=t.bitangent?new Float32Array(i):void 0,a=0,c=0,u=0,f=!0,d=Yfe,p=qfe,g=jfe;if(t.normal||t.tangent||t.bitangent)for(let m=0;m<i;m+=6){let x=h.fromArray(e,m,y7),b=h.fromArray(e,(m+6)%i,x7);if(f){let T=h.fromArray(e,(m+3)%i,Zfe);h.subtract(b,x,b),h.subtract(T,x,T),g=h.normalize(h.cross(T,b,g),g),f=!1}h.equalsEpsilon(b,x,P.EPSILON10)&&(f=!0),(t.tangent||t.bitangent)&&(d=n.geodeticSurfaceNormal(x,d),t.tangent&&(p=h.normalize(h.cross(d,g,p),p))),t.normal&&(o[a++]=g.x,o[a++]=g.y,o[a++]=g.z,o[a++]=g.x,o[a++]=g.y,o[a++]=g.z),t.tangent&&(r[c++]=p.x,r[c++]=p.y,r[c++]=p.z,r[c++]=p.x,r[c++]=p.y,r[c++]=p.z),t.bitangent&&(s[u++]=d.x,s[u++]=d.y,s[u++]=d.z,s[u++]=d.x,s[u++]=d.y,s[u++]=d.z)}return Kfe(t,{positions:e,normals:o,tangents:r,bitangents:s})}function $fe(e,t){let n=e._vertexFormat,i=e._ellipsoid,o=t.height,r=t.width,s=t.northCap,a=t.southCap,c=0,u=o,f=o,d=0;s&&(c=1,f-=1,d+=1),a&&(u-=1,f-=1,d+=1),d+=r*f;let p=n.position?new Float64Array(d*3):void 0,g=n.st?new Float32Array(d*2):void 0,m=0,x=0,b=y7,T=cQe,A=Number.MAX_VALUE,C=Number.MAX_VALUE,S=-Number.MAX_VALUE,v=-Number.MAX_VALUE;for(let E=c;E<u;++E)for(let w=0;w<r;++w)Vs.computePosition(t,i,n.st,E,w,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),v=Math.max(v,T.y));if(s&&(Vs.computePosition(t,i,n.st,0,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m++]=b.z,n.st&&(g[x++]=T.x,g[x++]=T.y,A=T.x,C=T.y,S=T.x,v=T.y)),a&&(Vs.computePosition(t,i,n.st,o-1,0,b,T),p[m++]=b.x,p[m++]=b.y,p[m]=b.z,n.st&&(g[x++]=T.x,g[x]=T.y,A=Math.min(A,T.x),C=Math.min(C,T.y),S=Math.max(S,T.x),v=Math.max(v,T.y))),n.st&&(A<0||C<0||S>1||v>1))for(let E=0;E<g.length;E+=2)g[E]=(g[E]-A)/(S-A),g[E+1]=(g[E+1]-C)/(v-C);let D=fQe(p,n,i,t.tangentRotationMatrix),O=6*(r-1)*(f-1);s&&(O+=3*(r-1)),a&&(O+=3*(r-1));let R=Ne.createTypedArray(d,O),M=0,L=0,_;for(_=0;_<f-1;++_){for(let E=0;E<r-1;++E){let w=M,I=w+r,N=I+1,B=w+1;R[L++]=w,R[L++]=I,R[L++]=B,R[L++]=B,R[L++]=I,R[L++]=N,++M}++M}if(s||a){let E=d-1,w=d-1;s&&a&&(E=d-2);let I,N;if(M=0,s)for(_=0;_<r-1;_++)I=M,N=I+1,R[L++]=E,R[L++]=I,R[L++]=N,++M;if(a)for(M=(f-1)*r,_=0;_<r-1;_++)I=M,N=I+1,R[L++]=I,R[L++]=w,R[L++]=N,++M}return D.indices=R,n.st&&(D.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:g})),D}function GC(e,t,n,i,o){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n+2],e[t++]=o[n],e[t++]=o[n+1],e[t]=o[n+2],e}function WC(e,t,n,i){return e[t++]=i[n],e[t++]=i[n+1],e[t++]=i[n],e[t]=i[n+1],e}var b7=new Pe;function hQe(e,t){let n=e._shadowVolume,i=e._offsetAttribute,o=e._vertexFormat,r=e._extrudedHeight,s=e._surfaceHeight,a=e._ellipsoid,c=t.height,u=t.width,f;if(n){let we=Pe.clone(o,b7);we.normal=!0,e._vertexFormat=we}let d=$fe(e,t);n&&(e._vertexFormat=o);let p=ri.scaleToGeodeticHeight(d.attributes.position.values,s,a,!1);p=new Float64Array(p);let g=p.length,m=g*2,x=new Float64Array(m);x.set(p);let b=ri.scaleToGeodeticHeight(d.attributes.position.values,r,a);x.set(b,g),d.attributes.position.values=x;let T=o.normal?new Float32Array(m):void 0,A=o.tangent?new Float32Array(m):void 0,C=o.bitangent?new Float32Array(m):void 0,S=o.st?new Float32Array(m/3*2):void 0,v,D;if(o.normal){for(D=d.attributes.normal.values,T.set(D),f=0;f<g;f++)D[f]=-D[f];T.set(D,g),d.attributes.normal.values=T}if(n){D=d.attributes.normal.values,o.normal||(d.attributes.normal=void 0);let we=new Float32Array(m);for(f=0;f<g;f++)D[f]=-D[f];we.set(D,g),d.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:we})}let O,R=l(i);if(R){let we=g/3*2,Xe=new Uint8Array(we);i===sn.TOP?Xe=Xe.fill(1,0,we/2):(O=i===sn.NONE?0:1,Xe=Xe.fill(O)),d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:Xe})}if(o.tangent){let we=d.attributes.tangent.values;for(A.set(we),f=0;f<g;f++)we[f]=-we[f];A.set(we,g),d.attributes.tangent.values=A}if(o.bitangent){let we=d.attributes.bitangent.values;C.set(we),C.set(we,g),d.attributes.bitangent.values=C}o.st&&(v=d.attributes.st.values,S.set(v),S.set(v,g/3*2),d.attributes.st.values=S);let M=d.indices,L=M.length,_=g/3,E=Ne.createTypedArray(m/3,L*2);for(E.set(M),f=0;f<L;f+=3)E[f+L]=M[f+2]+_,E[f+1+L]=M[f+1]+_,E[f+2+L]=M[f]+_;d.indices=E;let w=t.northCap,I=t.southCap,N=c,B=2,H=0,V=4,G=4;w&&(B-=1,N-=1,H+=1,V-=2,G-=1),I&&(B-=1,N-=1,H+=1,V-=2,G-=1),H+=B*u+2*N-V;let k=(H+G)*2,W=new Float64Array(k*3),q=n?new Float32Array(k*3):void 0,J=R?new Uint8Array(k):void 0,j=o.st?new Float32Array(k*2):void 0,Z=i===sn.TOP;R&&!Z&&(O=i===sn.ALL?1:0,J=J.fill(O));let Q=0,de=0,ye=0,ae=0,_e=u*N,xe;for(f=0;f<_e;f+=u)xe=f*3,W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1);if(I){let we=w?_e+1:_e;for(xe=we*3,f=0;f<2;f++)W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,we*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1)}else for(f=_e-u;f<_e;f++)xe=f*3,W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1);for(f=_e-1;f>0;f-=u)xe=f*3,W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1);if(w){let we=_e;for(xe=we*3,f=0;f<2;f++)W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,we*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1)}else for(f=u-1;f>=0;f--)xe=f*3,W=GC(W,Q,xe,p,b),Q+=6,o.st&&(j=WC(j,de,f*2,v),de+=4),n&&(ye+=3,q[ye++]=D[xe],q[ye++]=D[xe+1],q[ye++]=D[xe+2]),Z&&(J[ae++]=1,ae+=1);let Ie=dQe(W,o,a);o.st&&(Ie.attributes.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:j})),n&&(Ie.attributes.extrudeDirection=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:q})),R&&(Ie.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:J}));let Ce=Ne.createTypedArray(k,H*6),ke,He,rt,Lt;g=W.length/3;let Tt=0;for(f=0;f<g-1;f+=2){ke=f,Lt=(ke+2)%g;let we=h.fromArray(W,ke*3,x7),Xe=h.fromArray(W,Lt*3,Zfe);h.equalsEpsilon(we,Xe,P.EPSILON10)||(He=(ke+1)%g,rt=(He+2)%g,Ce[Tt++]=ke,Ce[Tt++]=He,Ce[Tt++]=Lt,Ce[Tt++]=Lt,Ce[Tt++]=He,Ce[Tt++]=rt)}return Ie.indices=Ce,Ie=Nn.combineInstances([new vt({geometry:d}),new vt({geometry:Ie})]),Ie[0]}var mQe=[new h,new h,new h,new h],Qfe=new fe,pQe=new fe;function T7(e,t,n,i,o){if(n===0)return re.clone(e,o);let r=Vs.computeOptions(e,t,n,0,Xfe,Qfe),s=r.height,a=r.width,c=mQe;return Vs.computePosition(r,i,!1,0,0,c[0]),Vs.computePosition(r,i,!1,0,a-1,c[1]),Vs.computePosition(r,i,!1,s-1,0,c[2]),Vs.computePosition(r,i,!1,s-1,a-1,c[3]),re.fromCartesianArray(c,i,o)}function cm(e){e=y(e,y.EMPTY_OBJECT);let t=e.rectangle,n=y(e.height,0),i=y(e.extrudedHeight,n);this._rectangle=re.clone(t),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._surfaceHeight=Math.max(n,i),this._rotation=y(e.rotation,0),this._stRotation=y(e.stRotation,0),this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._extrudedHeight=Math.min(n,i),this._shadowVolume=y(e.shadowVolume,!1),this._workerName="createRectangleGeometry",this._offsetAttribute=e.offsetAttribute,this._rotatedRectangle=void 0,this._textureCoordinateRotationPoints=void 0}cm.packedLength=re.packedLength+ee.packedLength+Pe.packedLength+7;cm.pack=function(e,t,n){return n=y(n,0),re.pack(e._rectangle,t,n),n+=re.packedLength,ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._granularity,t[n++]=e._surfaceHeight,t[n++]=e._rotation,t[n++]=e._stRotation,t[n++]=e._extrudedHeight,t[n++]=e._shadowVolume?1:0,t[n]=y(e._offsetAttribute,-1),t};var Jfe=new re,ede=ee.clone(ee.UNIT_SPHERE),ly={rectangle:Jfe,ellipsoid:ede,vertexFormat:b7,granularity:void 0,height:void 0,rotation:void 0,stRotation:void 0,extrudedHeight:void 0,shadowVolume:void 0,offsetAttribute:void 0};cm.unpack=function(e,t,n){t=y(t,0);let i=re.unpack(e,t,Jfe);t+=re.packedLength;let o=ee.unpack(e,t,ede);t+=ee.packedLength;let r=Pe.unpack(e,t,b7);t+=Pe.packedLength;let s=e[t++],a=e[t++],c=e[t++],u=e[t++],f=e[t++],d=e[t++]===1,p=e[t];return l(n)?(n._rectangle=re.clone(i,n._rectangle),n._ellipsoid=ee.clone(o,n._ellipsoid),n._vertexFormat=Pe.clone(r,n._vertexFormat),n._granularity=s,n._surfaceHeight=a,n._rotation=c,n._stRotation=u,n._extrudedHeight=f,n._shadowVolume=d,n._offsetAttribute=p===-1?void 0:p,n):(ly.granularity=s,ly.height=a,ly.rotation=c,ly.stRotation=u,ly.extrudedHeight=f,ly.shadowVolume=d,ly.offsetAttribute=p===-1?void 0:p,new cm(ly))};cm.computeRectangle=function(e,t){e=y(e,y.EMPTY_OBJECT);let n=e.rectangle,i=y(e.granularity,P.RADIANS_PER_DEGREE),o=y(e.ellipsoid,ee.default),r=y(e.rotation,0);return T7(n,i,r,o,t)};var _Qe=new $,Gfe=new Me,gQe=new fe;cm.createGeometry=function(e){if(P.equalsEpsilon(e._rectangle.north,e._rectangle.south,P.EPSILON10)||P.equalsEpsilon(e._rectangle.east,e._rectangle.west,P.EPSILON10))return;let t=e._rectangle,n=e._ellipsoid,i=e._rotation,o=e._stRotation,r=e._vertexFormat,s=Vs.computeOptions(t,e._granularity,i,o,Xfe,Qfe,pQe),a=_Qe;if(o!==0||i!==0){let g=re.center(t,gQe),m=n.geodeticSurfaceNormalCartographic(g,x7);Me.fromAxisAngle(m,-o,Gfe),$.fromQuaternion(Gfe,a)}else $.clone($.IDENTITY,a);let c=e._surfaceHeight,u=e._extrudedHeight,f=!P.equalsEpsilon(c,u,0,P.EPSILON2);s.lonScalar=1/e._rectangle.width,s.latScalar=1/e._rectangle.height,s.tangentRotationMatrix=a;let d,p;if(t=e._rectangle,f){d=hQe(e,s);let g=se.fromRectangle3D(t,n,c,uQe),m=se.fromRectangle3D(t,n,u,lQe);p=se.union(g,m)}else{if(d=$fe(e,s),d.attributes.position.values=ri.scaleToGeodeticHeight(d.attributes.position.values,c,n,!1),l(e._offsetAttribute)){let g=d.attributes.position.values.length,m=e._offsetAttribute===sn.NONE?0:1,x=new Uint8Array(g/3).fill(m);d.attributes.applyOffset=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:1,values:x})}p=se.fromRectangle3D(t,n,c)}return r.position||delete d.attributes.position,new ft({attributes:d.attributes,indices:d.indices,primitiveType:d.primitiveType,boundingSphere:p,offsetAttribute:e._offsetAttribute})};cm.createShadowVolume=function(e,t,n){let i=e._granularity,o=e._ellipsoid,r=t(i,o),s=n(i,o);return new cm({rectangle:e._rectangle,rotation:e._rotation,ellipsoid:o,stRotation:e._stRotation,granularity:i,extrudedHeight:s,height:r,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};var Wfe=new re,yQe=[new U,new U,new U],xQe=new Bi,bQe=new fe;function TQe(e){if(e._stRotation===0)return[0,0,0,1,1,0];let t=re.clone(e._rectangle,Wfe),n=e._granularity,i=e._ellipsoid,o=e._rotation-e._stRotation,r=T7(t,n,o,i,Wfe),s=yQe;s[0].x=r.west,s[0].y=r.south,s[1].x=r.west,s[1].y=r.north,s[2].x=r.east,s[2].y=r.south;let a=e.rectangle,c=Bi.fromRotation(e._stRotation,xQe),u=re.center(a,bQe);for(let m=0;m<3;++m){let x=s[m];x.x-=u.longitude,x.y-=u.latitude,Bi.multiplyByVector(c,x,x),x.x+=u.longitude,x.y+=u.latitude,x.x=(x.x-a.west)/a.width,x.y=(x.y-a.south)/a.height}let f=s[0],d=s[1],p=s[2],g=new Array(6);return U.pack(f,g),U.pack(d,g,2),U.pack(p,g,4),g}Object.defineProperties(cm.prototype,{rectangle:{get:function(){return l(this._rotatedRectangle)||(this._rotatedRectangle=T7(this._rectangle,this._granularity,this._rotation,this._ellipsoid)),this._rotatedRectangle}},textureCoordinateRotationPoints:{get:function(){return l(this._textureCoordinateRotationPoints)||(this._textureCoordinateRotationPoints=TQe(this)),this._textureCoordinateRotationPoints}}});var jC=cm;var tde=new z,nde=h.ZERO,ide=new h,ode=new re,AQe=new re,CQe=new fe;function EQe(e){this.id=e,this.vertexFormat=void 0,this.rectangle=void 0,this.height=void 0,this.extrudedHeight=void 0,this.granularity=void 0,this.stRotation=void 0,this.rotation=void 0,this.offsetAttribute=void 0}function Rd(e,t){Gn.call(this,{entity:e,scene:t,geometryOptions:new EQe(e),geometryPropertyName:"rectangle",observedPropertyNames:["availability","rectangle"]}),this._onEntityPropertyChanged(e,"rectangle",e.rectangle,void 0)}l(Object.create)&&(Rd.prototype=Object.create(Gn.prototype),Rd.prototype.constructor=Rd);Rd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(this._distanceDisplayConditionProperty.getValue(e)),offset:void 0,color:void 0};if(this._materialProperty instanceof Gt){let o;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(o=this._materialProperty.color.getValue(e,tde)),l(o)||(o=z.WHITE),i.color=qt.fromColor(o)}return l(this._options.offsetAttribute)&&(i.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,nde,ide))),new vt({id:t,geometry:new jC(this._options),attributes:i})};Rd.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,tde),o=this._distanceDisplayConditionProperty.getValue(e),r={show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o),offset:void 0};return l(this._options.offsetAttribute)&&(r.offset=Zi.fromCartesian3(Y.getValueOrDefault(this._terrainOffsetProperty,e,nde,ide))),new vt({id:t,geometry:new eC(this._options),attributes:r})};Rd.prototype._computeCenter=function(e,t){let n=Y.getValueOrUndefined(this._entity.rectangle.coordinates,e,AQe);if(!l(n))return;let i=re.center(n,CQe);return fe.toCartesian(i,ee.default,t)};Rd.prototype._isHidden=function(e,t){return!l(t.coordinates)||ii.prototype._isHidden.call(this,e,t)};Rd.prototype._isDynamic=function(e,t){return!t.coordinates.isConstant||!Y.isConstant(t.height)||!Y.isConstant(t.extrudedHeight)||!Y.isConstant(t.granularity)||!Y.isConstant(t.stRotation)||!Y.isConstant(t.rotation)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.zIndex)||this._onTerrain&&!Y.isConstant(this._materialProperty)&&!(this._materialProperty instanceof Gt)};Rd.prototype._setStaticOptions=function(e,t){let n=this._materialProperty instanceof Gt,i=Y.getValueOrUndefined(t.height,ze.MINIMUM_VALUE),o=Y.getValueOrDefault(t.heightReference,ze.MINIMUM_VALUE,Ke.NONE),r=Y.getValueOrUndefined(t.extrudedHeight,ze.MINIMUM_VALUE),s=Y.getValueOrDefault(t.extrudedHeightReference,ze.MINIMUM_VALUE,Ke.NONE);l(r)&&!l(i)&&(i=0);let a=this._options;a.vertexFormat=n?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,a.rectangle=t.coordinates.getValue(ze.MINIMUM_VALUE,a.rectangle),a.granularity=Y.getValueOrUndefined(t.granularity,ze.MINIMUM_VALUE),a.stRotation=Y.getValueOrUndefined(t.stRotation,ze.MINIMUM_VALUE),a.rotation=Y.getValueOrUndefined(t.rotation,ze.MINIMUM_VALUE),a.offsetAttribute=Gn.computeGeometryOffsetAttribute(i,o,r,s),a.height=Gn.getGeometryHeight(i,o),r=Gn.getGeometryExtrudedHeight(r,s),r===Gn.CLAMP_TO_GROUND&&(r=ui.getMinimumMaximumHeights(jC.computeRectangle(a,ode)).minimumTerrainHeight),a.extrudedHeight=r};Rd.DynamicGeometryUpdater=qC;function qC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(qC.prototype=Object.create(ni.prototype),qC.prototype.constructor=qC);qC.prototype._isHidden=function(e,t,n){return!l(this._options.rectangle)||ni.prototype._isHidden.call(this,e,t,n)};qC.prototype._setOptions=function(e,t,n){let i=this._options,o=Y.getValueOrUndefined(t.height,n),r=Y.getValueOrDefault(t.heightReference,n,Ke.NONE),s=Y.getValueOrUndefined(t.extrudedHeight,n),a=Y.getValueOrDefault(t.extrudedHeightReference,n,Ke.NONE);l(s)&&!l(o)&&(o=0),i.rectangle=Y.getValueOrUndefined(t.coordinates,n,i.rectangle),i.granularity=Y.getValueOrUndefined(t.granularity,n),i.stRotation=Y.getValueOrUndefined(t.stRotation,n),i.rotation=Y.getValueOrUndefined(t.rotation,n),i.offsetAttribute=Gn.computeGeometryOffsetAttribute(o,r,s,a),i.height=Gn.getGeometryHeight(o,r),s=Gn.getGeometryExtrudedHeight(s,a),s===Gn.CLAMP_TO_GROUND&&(s=ui.getMinimumMaximumHeights(jC.computeRectangle(i,ode)).minimumTerrainHeight),i.extrudedHeight=s};var Q3=Rd;var rde={};function SQe(e,t){return P.equalsEpsilon(e.latitude,t.latitude,P.EPSILON10)&&P.equalsEpsilon(e.longitude,t.longitude,P.EPSILON10)}var vQe=new fe,wQe=new fe;function DQe(e,t,n,i){t=bo(t,h.equalsEpsilon);let o=t.length;if(o<2)return;let r=l(i),s=l(n),a=new Array(o),c=new Array(o),u=new Array(o),f=t[0];a[0]=f;let d=e.cartesianToCartographic(f,vQe);s&&(d.height=n[0]),c[0]=d.height,r?u[0]=i[0]:u[0]=0;let p=c[0],g=u[0],m=p===g,x=1;for(let b=1;b<o;++b){let T=t[b],A=e.cartesianToCartographic(T,wQe);s&&(A.height=n[b]),m=m&&A.height===0,SQe(d,A)?d.height<A.height&&(c[x-1]=A.height):(a[x]=T,c[x]=A.height,r?u[x]=i[b]:u[x]=0,m=m&&c[x]===u[x],fe.clone(A,d),++x)}if(!(m||x<2))return a.length=x,c.length=x,u.length=x,{positions:a,topHeights:c,bottomHeights:u}}var IQe=new Array(2),PQe=new Array(2),RQe={positions:void 0,height:void 0,granularity:void 0,ellipsoid:void 0};rde.computePositions=function(e,t,n,i,o,r){let s=DQe(e,t,n,i);if(!l(s))return;t=s.positions,n=s.topHeights,i=s.bottomHeights;let a=t.length,c=a-2,u,f,d=P.chordLength(o,e.maximumRadius),p=RQe;if(p.minDistance=d,p.ellipsoid=e,r){let g=0,m;for(m=0;m<a-1;m++)g+=Ri.numberOfPoints(t[m],t[m+1],d)+1;u=new Float64Array(g*3),f=new Float64Array(g*3);let x=IQe,b=PQe;p.positions=x,p.height=b;let T=0;for(m=0;m<a-1;m++){x[0]=t[m],x[1]=t[m+1],b[0]=n[m],b[1]=n[m+1];let A=Ri.generateArc(p);u.set(A,T),b[0]=i[m],b[1]=i[m+1],f.set(Ri.generateArc(p),T),T+=A.length}}else p.positions=t,p.height=n,u=new Float64Array(Ri.generateArc(p)),p.height=i,f=new Float64Array(Ri.generateArc(p));return{bottomPositions:f,topPositions:u,numCorners:c}};var YC=rde;var A7=new h,J3=new h,OQe=new h,sde=new h,MQe=new h,LQe=new h,NQe=new h;function Gx(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e.granularity,P.RADIANS_PER_DEGREE),s=y(e.ellipsoid,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._vertexFormat=Pe.clone(o),this._granularity=r,this._ellipsoid=ee.clone(s),this._workerName="createWallGeometry";let a=1+t.length*h.packedLength+2;l(i)&&(a+=i.length),l(n)&&(a+=n.length),this.packedLength=a+ee.packedLength+Pe.packedLength+1}Gx.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._granularity,t};var ade=ee.clone(ee.UNIT_SPHERE),cde=new Pe,RD={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:ade,vertexFormat:cde,granularity:void 0};Gx.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ee.unpack(e,t,ade);t+=ee.packedLength;let u=Pe.unpack(e,t,cde);t+=Pe.packedLength;let f=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._vertexFormat=Pe.clone(u,n._vertexFormat),n._granularity=f,n):(RD.positions=r,RD.minimumHeights=s,RD.maximumHeights=a,RD.granularity=f,new Gx(RD))};Gx.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid,vertexFormat:e.vertexFormat};return new Gx(c)};Gx.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._vertexFormat,r=e._granularity,s=e._ellipsoid,a=YC.computePositions(s,t,i,n,r,!0);if(!l(a))return;let c=a.bottomPositions,u=a.topPositions,f=a.numCorners,d=u.length,p=d*2,g=o.position?new Float64Array(p):void 0,m=o.normal?new Float32Array(p):void 0,x=o.tangent?new Float32Array(p):void 0,b=o.bitangent?new Float32Array(p):void 0,T=o.st?new Float32Array(p/3*2):void 0,A=0,C=0,S=0,v=0,D=0,O=NQe,R=LQe,M=MQe,L=!0;d/=3;let _,E=0,w=1/(d-f-1);for(_=0;_<d;++_){let V=_*3,G=h.fromArray(u,V,A7),k=h.fromArray(c,V,J3);if(o.position&&(g[A++]=k.x,g[A++]=k.y,g[A++]=k.z,g[A++]=G.x,g[A++]=G.y,g[A++]=G.z),o.st&&(T[D++]=E,T[D++]=0,T[D++]=E,T[D++]=1),o.normal||o.tangent||o.bitangent){let W=h.clone(h.ZERO,sde),q=h.subtract(G,s.geodeticSurfaceNormal(G,J3),J3);if(_+1<d&&(W=h.fromArray(u,V+3,sde)),L){let J=h.subtract(W,G,OQe),j=h.subtract(q,G,A7);O=h.normalize(h.cross(j,J,O),O),L=!1}h.equalsEpsilon(G,W,P.EPSILON10)?L=!0:(E+=w,o.tangent&&(R=h.normalize(h.subtract(W,G,R),R)),o.bitangent&&(M=h.normalize(h.cross(O,R,M),M))),o.normal&&(m[C++]=O.x,m[C++]=O.y,m[C++]=O.z,m[C++]=O.x,m[C++]=O.y,m[C++]=O.z),o.tangent&&(x[v++]=R.x,x[v++]=R.y,x[v++]=R.z,x[v++]=R.x,x[v++]=R.y,x[v++]=R.z),o.bitangent&&(b[S++]=M.x,b[S++]=M.y,b[S++]=M.z,b[S++]=M.x,b[S++]=M.y,b[S++]=M.z)}}let I=new dn;o.position&&(I.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:g})),o.normal&&(I.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),o.tangent&&(I.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:x})),o.bitangent&&(I.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:b})),o.st&&(I.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:T}));let N=p/3;p-=6*(f+1);let B=Ne.createTypedArray(N,p),H=0;for(_=0;_<N-2;_+=2){let V=_,G=_+2,k=h.fromArray(g,V*3,A7),W=h.fromArray(g,G*3,J3);if(h.equalsEpsilon(k,W,P.EPSILON10))continue;let q=_+1,J=_+3;B[H++]=q,B[H++]=V,B[H++]=J,B[H++]=J,B[H++]=V,B[H++]=G}return new ft({attributes:I,indices:B,primitiveType:Le.TRIANGLES,boundingSphere:new se.fromVertices(g)})};var ek=Gx;var lde=new h,ude=new h;function Wx(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.maximumHeights,i=e.minimumHeights,o=y(e.granularity,P.RADIANS_PER_DEGREE),r=y(e.ellipsoid,ee.default);this._positions=t,this._minimumHeights=i,this._maximumHeights=n,this._granularity=o,this._ellipsoid=ee.clone(r),this._workerName="createWallOutlineGeometry";let s=1+t.length*h.packedLength+2;l(i)&&(s+=i.length),l(n)&&(s+=n.length),this.packedLength=s+ee.packedLength+1}Wx.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._minimumHeights;if(r=l(s)?s.length:0,t[n++]=r,l(s))for(i=0;i<r;++i)t[n++]=s[i];let a=e._maximumHeights;if(r=l(a)?a.length:0,t[n++]=r,l(a))for(i=0;i<r;++i)t[n++]=a[i];return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n]=e._granularity,t};var fde=ee.clone(ee.UNIT_SPHERE),OD={positions:void 0,minimumHeights:void 0,maximumHeights:void 0,ellipsoid:fde,granularity:void 0};Wx.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s;if(o>0)for(s=new Array(o),i=0;i<o;++i)s[i]=e[t++];o=e[t++];let a;if(o>0)for(a=new Array(o),i=0;i<o;++i)a[i]=e[t++];let c=ee.unpack(e,t,fde);t+=ee.packedLength;let u=e[t];return l(n)?(n._positions=r,n._minimumHeights=s,n._maximumHeights=a,n._ellipsoid=ee.clone(c,n._ellipsoid),n._granularity=u,n):(OD.positions=r,OD.minimumHeights=s,OD.maximumHeights=a,OD.granularity=u,new Wx(OD))};Wx.fromConstantHeights=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n,i,o=e.minimumHeight,r=e.maximumHeight,s=l(o),a=l(r);if(s||a){let u=t.length;n=s?new Array(u):void 0,i=a?new Array(u):void 0;for(let f=0;f<u;++f)s&&(n[f]=o),a&&(i[f]=r)}let c={positions:t,maximumHeights:i,minimumHeights:n,ellipsoid:e.ellipsoid};return new Wx(c)};Wx.createGeometry=function(e){let t=e._positions,n=e._minimumHeights,i=e._maximumHeights,o=e._granularity,r=e._ellipsoid,s=YC.computePositions(r,t,i,n,o,!1);if(!l(s))return;let a=s.bottomPositions,c=s.topPositions,u=c.length,f=u*2,d=new Float64Array(f),p=0;u/=3;let g;for(g=0;g<u;++g){let A=g*3,C=h.fromArray(c,A,lde),S=h.fromArray(a,A,ude);d[p++]=S.x,d[p++]=S.y,d[p++]=S.z,d[p++]=C.x,d[p++]=C.y,d[p++]=C.z}let m=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d})}),x=f/3;f=2*x-4+x;let b=Ne.createTypedArray(x,f),T=0;for(g=0;g<x-2;g+=2){let A=g,C=g+2,S=h.fromArray(d,A*3,lde),v=h.fromArray(d,C*3,ude);if(h.equalsEpsilon(S,v,P.EPSILON10))continue;let D=g+1,O=g+3;b[T++]=D,b[T++]=A,b[T++]=D,b[T++]=O,b[T++]=A,b[T++]=C}return b[T++]=x-2,b[T++]=x-1,new ft({attributes:m,indices:b,primitiveType:Le.LINES,boundingSphere:new se.fromVertices(d)})};var tk=Wx;var dde=new z;function FQe(e){this.id=e,this.vertexFormat=void 0,this.positions=void 0,this.minimumHeights=void 0,this.maximumHeights=void 0,this.granularity=void 0}function Od(e,t){ii.call(this,{entity:e,scene:t,geometryOptions:new FQe(e),geometryPropertyName:"wall",observedPropertyNames:["availability","wall"]}),this._onEntityPropertyChanged(e,"wall",e.wall,void 0)}l(Object.create)&&(Od.prototype=Object.create(ii.prototype),Od.prototype.constructor=Od);Od.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i,o,r=new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._fillProperty.getValue(e)),s=this._distanceDisplayConditionProperty.getValue(e),a=Bn.fromDistanceDisplayCondition(s);if(this._materialProperty instanceof Gt){let c;l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(c=this._materialProperty.color.getValue(e,dde)),l(c)||(c=z.WHITE),o=qt.fromColor(c),i={show:r,distanceDisplayCondition:a,color:o}}else i={show:r,distanceDisplayCondition:a};return new vt({id:t,geometry:new ek(this._options),attributes:i})};Od.prototype.createOutlineGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=Y.getValueOrDefault(this._outlineColorProperty,e,z.BLACK,dde),o=this._distanceDisplayConditionProperty.getValue(e);return new vt({id:t,geometry:new tk(this._options),attributes:{show:new gn(n&&t.isShowing&&this._showProperty.getValue(e)&&this._showOutlineProperty.getValue(e)),color:qt.fromColor(i),distanceDisplayCondition:Bn.fromDistanceDisplayCondition(o)}})};Od.prototype._isHidden=function(e,t){return!l(t.positions)||ii.prototype._isHidden.call(this,e,t)};Od.prototype._getIsClosed=function(e){return!1};Od.prototype._isDynamic=function(e,t){return!t.positions.isConstant||!Y.isConstant(t.minimumHeights)||!Y.isConstant(t.maximumHeights)||!Y.isConstant(t.outlineWidth)||!Y.isConstant(t.granularity)};Od.prototype._setStaticOptions=function(e,t){let n=t.minimumHeights,i=t.maximumHeights,o=t.granularity,r=this._materialProperty instanceof Gt,s=this._options;s.vertexFormat=r?cn.VERTEX_FORMAT:oo.MaterialSupport.TEXTURED.vertexFormat,s.positions=t.positions.getValue(ze.MINIMUM_VALUE,s.positions),s.minimumHeights=l(n)?n.getValue(ze.MINIMUM_VALUE,s.minimumHeights):void 0,s.maximumHeights=l(i)?i.getValue(ze.MINIMUM_VALUE,s.maximumHeights):void 0,s.granularity=l(o)?o.getValue(ze.MINIMUM_VALUE):void 0};Od.DynamicGeometryUpdater=XC;function XC(e,t,n){ni.call(this,e,t,n)}l(Object.create)&&(XC.prototype=Object.create(ni.prototype),XC.prototype.constructor=XC);XC.prototype._isHidden=function(e,t,n){return!l(this._options.positions)||ni.prototype._isHidden.call(this,e,t,n)};XC.prototype._setOptions=function(e,t,n){let i=this._options;i.positions=Y.getValueOrUndefined(t.positions,n,i.positions),i.minimumHeights=Y.getValueOrUndefined(t.minimumHeights,n,i.minimumHeights),i.maximumHeights=Y.getValueOrUndefined(t.maximumHeights,n,i.maximumHeights),i.granularity=Y.getValueOrUndefined(t.granularity,n)};var nk=Od;var jx=[HL,p3,a3,B3,k3,W3,X3,$3,Q3,nk];function qx(e,t){this.entity=e,this.scene=t;let n=new Array(jx.length),i=new me,o=new _r;for(let r=0;r<n.length;r++){let s=new jx[r](e,t);o.add(s.geometryChanged,a=>{i.raiseEvent(a)}),n[r]=s}this.updaters=n,this.geometryChanged=i,this.eventHelper=o,this._removeEntitySubscription=e.definitionChanged.addEventListener(qx.prototype._onEntityPropertyChanged,this)}qx.prototype._onEntityPropertyChanged=function(e,t,n,i){let o=this.updaters;for(let r=0;r<o.length;r++)o[r]._onEntityPropertyChanged(e,t,n,i)};qx.prototype.forEach=function(e){let t=this.updaters;for(let n=0;n<t.length;n++)e(t[n])};qx.prototype.destroy=function(){this.eventHelper.removeAll();let e=this.updaters;for(let t=0;t<e.length;t++)e[t].destroy();this._removeEntitySubscription(),ue(this)};qx.registerUpdater=function(e){jx.includes(e)||jx.push(e)};qx.unregisterUpdater=function(e){if(jx.includes(e)){let t=jx.indexOf(e);jx.splice(t,1)}};var KC=qx;var hde=new z,BQe=new Ft,kQe=new Ft,VQe=h.ZERO,UQe=new h;function Md(e,t,n,i,o,r,s){this.translucent=t,this.appearanceType=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.depthFailMaterial=void 0,this.closed=r,this.shadows=s,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.updaters=new St,this.updatersWithAttributes=new St,this.attributes=new St,this.subscriptions=new St,this.showsUpdated=new St,this.itemsToRemove=[],this.invalidated=!1;let a;l(o)&&(a=o.definitionChanged.addEventListener(Md.prototype.onMaterialChanged,this)),this.removeMaterialSubscription=a}Md.prototype.onMaterialChanged=function(){this.invalidated=!0};Md.prototype.isMaterial=function(e){let t=this.depthFailMaterialProperty,n=e.depthFailMaterialProperty;return n===t?!0:l(t)?t.equals(n):!1};Md.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Md.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Md.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0){l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i);let c;l(this.depthFailAppearanceType)&&(l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=nr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial)),c=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.translucent,closed:this.closed})),i=new In({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new this.appearanceType({translucent:this.translucent,closed:this.closed}),depthFailAppearance:c,shadows:this.shadows}),o.add(i),t=!1}else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0),l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Gt)&&(this.depthFailMaterial=nr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let b=u.fillMaterialProperty.color,T=Y.getValueOrDefault(b,e,z.WHITE,hde);z.equals(d._lastColor,T)||(d._lastColor=z.clone(T,d._lastColor),d.color=qt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}if(l(this.depthFailAppearanceType)&&u.depthFailMaterialProperty instanceof Gt&&(!u.depthFailMaterialProperty.isConstant||c)){let b=u.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,z.WHITE,hde);z.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=z.clone(T,d._lastDepthFailColor),d.depthFailColor=qt.toValue(T,d.depthFailColor))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,kQe,BQe);Ft.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,VQe,UQe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Zi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Md.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Md.prototype.contains=function(e){return this.updaters.contains(e.id)};Md.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?dt.FAILED:(i.boundingSphere.clone(t),dt.DONE)};Md.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),l(this.removeMaterialSubscription)&&this.removeMaterialSubscription()};function ZC(e,t,n,i,o){this._solidItems=[],this._translucentItems=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}ZC.prototype.add=function(e,t){let n,i,o=t.createFillGeometryInstance(e);o.attributes.color.value[3]===255?(n=this._solidItems,i=!1):(n=this._translucentItems,i=!0);let r=n.length;for(let a=0;a<r;a++){let c=n[a];if(c.isMaterial(t)){c.add(t,o);return}}let s=new Md(this._primitives,i,this._appearanceType,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);s.add(t,o),n.push(s)};function mde(e,t){let n=e.length;for(let i=n-1;i>=0;i--){let o=e[i];if(o.remove(t))return o.updaters.length===0&&(e.splice(i,1),o.destroy()),!0}return!1}ZC.prototype.remove=function(e){mde(this._solidItems,e)||mde(this._translucentItems,e)};function pde(e,t,n){let i=!1,o=t.length;for(let r=0;r<o;++r){let s=t[r],a=s.itemsToRemove,c=a.length;if(c>0)for(r=0;r<c;r++){let u=a[r];s.remove(u),e.add(n,u),i=!0}}return i}function ik(e,t,n,i){let o=t.length,r;for(r=o-1;r>=0;r--){let s=t[r];if(s.invalidated){t.splice(r,1);let a=s.updaters.values,c=a.length;for(let u=0;u<c;u++)e.add(n,a[u]);s.destroy()}}for(o=t.length,r=0;r<o;++r)i=t[r].update(n)&&i;return i}ZC.prototype.update=function(e){let t=ik(this,this._solidItems,e,!0);t=ik(this,this._translucentItems,e,t)&&t;let n=pde(this,this._solidItems,e),i=pde(this,this._translucentItems,e);return(n||i)&&(t=ik(this,this._solidItems,e,t)&&t,t=ik(this,this._translucentItems,e,t)&&t),t};function _de(e,t,n){let i=e.length;for(let o=0;o<i;o++){let r=e[o];if(r.contains(t))return r.getBoundingSphere(t,n)}return dt.FAILED}ZC.prototype.getBoundingSphere=function(e,t){let n=_de(this._solidItems,e,t);return n===dt.FAILED?_de(this._translucentItems,e,t):n};function gde(e){let t=e.length;for(let n=0;n<t;n++)e[n].destroy();e.length=0}ZC.prototype.removeAllPrimitives=function(){gde(this._solidItems),gde(this._translucentItems)};var Ld=ZC;var zQe=new Ft,HQe=new Ft,GQe=h.ZERO,WQe=new h;function Nd(e,t,n,i,o,r,s){this.primitives=e,this.appearanceType=t,this.materialProperty=n,this.depthFailAppearanceType=i,this.depthFailMaterialProperty=o,this.closed=r,this.shadows=s,this.updaters=new St,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.material=void 0,this.depthFailMaterial=void 0,this.updatersWithAttributes=new St,this.attributes=new St,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(Nd.prototype.onMaterialChanged,this),this.subscriptions=new St,this.showsUpdated=new St}Nd.prototype.onMaterialChanged=function(){this.invalidated=!0};Nd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty,i=this.depthFailMaterialProperty,o=e.depthFailMaterialProperty;if(n===t&&o===i)return!0;let r=l(t)&&t.equals(n);return r=(!l(i)&&!l(o)||l(i)&&i.equals(o))&&r,r};Nd.prototype.add=function(e,t){let n=t.id;if(this.updaters.set(n,t),this.geometry.set(n,t.createFillGeometryInstance(e)),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty)||!Y.isConstant(t.terrainOffsetProperty))this.updatersWithAttributes.set(n,t);else{let i=this;this.subscriptions.set(n,t.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Nd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};var jQe=new z;Nd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0){l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=nr.getValue(e,this.materialProperty,this.material);let a;l(this.depthFailMaterialProperty)&&(this.depthFailMaterial=nr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),a=new this.depthFailAppearanceType({material:this.depthFailMaterial,translucent:this.depthFailMaterial.isTranslucent(),closed:this.closed})),n=new In({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material,translucent:this.material.isTranslucent(),closed:this.closed}),depthFailAppearance:a,shadows:this.shadows}),i.add(n),t=!1}else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=nr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material,l(this.depthFailAppearanceType)&&!(this.depthFailMaterialProperty instanceof Gt)&&(this.depthFailMaterial=nr.getValue(e,this.depthFailMaterialProperty,this.depthFailMaterial),this.primitive.depthFailAppearance.material=this.depthFailMaterial);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),l(this.depthFailAppearanceType)&&this.depthFailMaterialProperty instanceof Gt&&!c.depthFailMaterialProperty.isConstant){let b=c.depthFailMaterialProperty.color,T=Y.getValueOrDefault(b,e,z.WHITE,jQe);z.equals(d._lastDepthFailColor,T)||(d._lastDepthFailColor=z.clone(T,d._lastDepthFailColor),d.depthFailColor=qt.toValue(T,d.depthFailColor))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,HQe,zQe);Ft.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(b,d.distanceDisplayCondition))}let x=c.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,GQe,WQe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Zi.toValue(b,d.offset))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Nd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Nd.prototype.contains=function(e){return this.updaters.contains(e.id)};Nd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?dt.FAILED:(i.boundingSphere.clone(t),dt.DONE)};Nd.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function $C(e,t,n,i,o){this._items=[],this._primitives=e,this._appearanceType=t,this._depthFailAppearanceType=n,this._closed=i,this._shadows=o}$C.prototype.add=function(e,t){let n=this._items,i=n.length;for(let r=0;r<i;r++){let s=n[r];if(s.isMaterial(t)){s.add(e,t);return}}let o=new Nd(this._primitives,this._appearanceType,t.fillMaterialProperty,this._depthFailAppearanceType,t.depthFailMaterialProperty,this._closed,this._shadows);o.add(e,t),n.push(o)};$C.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};$C.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};$C.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return dt.FAILED};$C.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var Fd=$C;var xde=Er(yde(),1);function ok(){this._tree=new xde.default}function Yx(){this.minX=0,this.minY=0,this.maxX=0,this.maxY=0,this.id=""}Yx.fromRectangleAndId=function(e,t,n){return n.minX=t.west,n.minY=t.south,n.maxX=t.east,n.maxY=t.north,n.id=e,n};ok.prototype.insert=function(e,t){let n=Yx.fromRectangleAndId(e,t,new Yx);this._tree.insert(n)};function qQe(e,t){return e.id===t.id}var YQe=new Yx;ok.prototype.remove=function(e,t){let n=Yx.fromRectangleAndId(e,t,YQe);this._tree.remove(n,qQe)};var XQe=new Yx;ok.prototype.collides=function(e){let t=Yx.fromRectangleAndId("",e,XQe);return this._tree.collides(t)};var QC=ok;var KQe=new z,ZQe=new Ft,$Qe=new Ft;function Qp(e,t,n,i){this.primitives=e,this.zIndex=i,this.classificationType=t,this.color=n,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.updaters=new St,this.updatersWithAttributes=new St,this.attributes=new St,this.subscriptions=new St,this.showsUpdated=new St,this.itemsToRemove=[],this.isDirty=!1,this.rectangleCollisionCheck=new QC}Qp.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Qp.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),this.rectangleCollisionCheck.insert(n,t.geometry.rectangle),!e.hasConstantFill||!e.fillMaterialProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Qp.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Qp.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new dl({show:!1,asynchronous:!0,geometryInstances:s.slice(),classificationType:this.classificationType}),o.add(i,this.zIndex),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.fillMaterialProperty.isConstant||c){let x=u.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,z.WHITE,KQe);z.equals(d._lastColor,b)||(d._lastColor=z.clone(b,d._lastColor),d.color=qt.toValue(b,d.color))}let p=u.entity.isShowing&&(u.hasConstantFill||u.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,$Qe,ZQe);Ft.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Qp.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Qp.prototype.contains=function(e){return this.updaters.contains(e.id)};Qp.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getBoundingSphere(e.entity);return l(i)?(i.clone(t),dt.DONE):dt.FAILED};Qp.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function JC(e,t){this._batches=[],this._primitives=e,this._classificationType=t}JC.prototype.add=function(e,t){let n=t.createFillGeometryInstance(e),i=this._batches,o=Y.getValueOrDefault(t.zIndex,0),r,s=i.length;for(let a=0;a<s;++a){let c=i[a];if(c.zIndex===o&&!c.overlapping(n.geometry.rectangle)){r=c;break}}return l(r)||(r=new Qp(this._primitives,this._classificationType,n.attributes.color.value,o),i.push(r)),r.add(t,n),r};JC.prototype.remove=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;++i)if(t[i].remove(e))return};JC.prototype.update=function(e){let t,n,i=!0,o=this._batches,r=o.length;for(t=0;t<r;++t)i=o[t].update(e)&&i;for(t=0;t<r;++t){let s=o[t],a=s.itemsToRemove,c=a.length;for(let u=0;u<c;u++){n=a[u],s.remove(n);let f=this.add(e,n);s.isDirty=!0,f.isDirty=!0}}for(t=r-1;t>=0;--t){let s=o[t];s.isDirty&&(i=o[t].update(e)&&i,s.isDirty=!1),s.geometry.length===0&&o.splice(t,1)}return i};JC.prototype.getBoundingSphere=function(e,t){let n=this._batches,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return dt.FAILED};JC.prototype.removeAllPrimitives=function(){let e=this._batches,t=e.length;for(let n=0;n<t;++n)e[n].removeAllPrimitives()};var MD=JC;var QQe=new Ft,JQe=new Ft;function Of(e,t,n,i,o,r){this.primitives=e,this.classificationType=t,this.appearanceType=n,this.materialProperty=i,this.updaters=new St,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.material=void 0,this.updatersWithAttributes=new St,this.attributes=new St,this.invalidated=!1,this.removeMaterialSubscription=i.definitionChanged.addEventListener(Of.prototype.onMaterialChanged,this),this.subscriptions=new St,this.showsUpdated=new St,this.usingSphericalTextureCoordinates=o,this.zIndex=r,this.rectangleCollisionCheck=new QC}Of.prototype.onMaterialChanged=function(){this.invalidated=!0};Of.prototype.overlapping=function(e){return this.rectangleCollisionCheck.collides(e)};Of.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Gt&&t instanceof Gt?!0:l(t)&&t.equals(n)};Of.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),this.rectangleCollisionCheck.insert(i,n.geometry.rectangle),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};Of.prototype.remove=function(e){let t=e.id,n=this.geometry.get(t);if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.rectangleCollisionCheck.remove(t,n.geometry.rectangle),this.updatersWithAttributes.remove(t);let i=this.subscriptions.get(t);return l(i)&&(i(),this.subscriptions.remove(t)),!0}return!1};Of.prototype.update=function(e){let t=!0,n=this.primitive,i=this.primitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),this.material=nr.getValue(e,this.materialProperty,this.material),n=new dl({show:!1,asynchronous:!0,geometryInstances:o.slice(),appearance:new this.appearanceType({material:this.material}),classificationType:this.classificationType}),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.material=nr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material;let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d));let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,JQe,QQe);Ft.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};Of.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};Of.prototype.contains=function(e){return this.updaters.contains(e.id)};Of.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?dt.FAILED:(i.boundingSphere.clone(t),dt.DONE)};Of.prototype.destroy=function(){let e=this.primitive,t=this.primitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function eE(e,t,n){this._items=[],this._primitives=e,this._classificationType=t,this._appearanceType=n}eE.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=$u.shouldUseSphericalCoordinates(o.geometry.rectangle),s=Y.getValueOrDefault(t.zIndex,0);for(let c=0;c<i;++c){let u=n[c];if(u.isMaterial(t)&&u.usingSphericalTextureCoordinates===r&&u.zIndex===s&&!u.overlapping(o.geometry.rectangle)){u.add(e,t,o);return}}let a=new Of(this._primitives,this._classificationType,this._appearanceType,t.fillMaterialProperty,r,s);a.add(e,t,o),n.push(a)};eE.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};eE.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};eE.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return dt.FAILED};eE.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var rk=eE;var eJe=new z,tJe=new Ft,nJe=new Ft,iJe=h.ZERO,oJe=new h;function Jp(e,t,n,i){this.translucent=t,this.width=n,this.shadows=i,this.primitives=e,this.createPrimitive=!1,this.waitingOnCreate=!1,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.updaters=new St,this.updatersWithAttributes=new St,this.attributes=new St,this.itemsToRemove=[],this.subscriptions=new St,this.showsUpdated=new St}Jp.prototype.add=function(e,t){let n=e.id;if(this.createPrimitive=!0,this.geometry.set(n,t),this.updaters.set(n,e),!e.hasConstantOutline||!e.outlineColorProperty.isConstant||!Y.isConstant(e.distanceDisplayConditionProperty)||!Y.isConstant(e.terrainOffsetProperty))this.updatersWithAttributes.set(n,e);else{let i=this;this.subscriptions.set(n,e.entity.definitionChanged.addEventListener(function(o,r,s,a){r==="isShowing"&&i.showsUpdated.set(e.id,e)}))}};Jp.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t),this.showsUpdated.remove(t)),!0}return!1};Jp.prototype.update=function(e){let t=!0,n=0,i=this.primitive,o=this.primitives,r;if(this.createPrimitive){let s=this.geometry.values;if(s.length>0)l(i)&&(l(this.oldPrimitive)?o.remove(i):this.oldPrimitive=i),i=new In({show:!1,asynchronous:!0,geometryInstances:s.slice(),appearance:new cn({flat:!0,translucent:this.translucent,renderState:{lineWidth:this.width}}),shadows:this.shadows}),o.add(i),t=!1;else{l(i)&&(o.remove(i),i=void 0);let c=this.oldPrimitive;l(c)&&(o.remove(c),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=i,this.createPrimitive=!1,this.waitingOnCreate=!0}else if(l(i)&&i.ready){i.show=!0,l(this.oldPrimitive)&&(o.remove(this.oldPrimitive),this.oldPrimitive=void 0);let s=this.updatersWithAttributes.values,a=s.length,c=this.waitingOnCreate;for(r=0;r<a;r++){let u=s[r],f=this.geometry.get(u.id),d=this.attributes.get(f.id.id);if(l(d)||(d=i.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!u.outlineColorProperty.isConstant||c){let b=u.outlineColorProperty,T=Y.getValueOrDefault(b,e,z.WHITE,eJe);z.equals(d._lastColor,T)||(d._lastColor=z.clone(T,d._lastColor),d.color=qt.toValue(T,d.color),(this.translucent&&d.color[3]===255||!this.translucent&&d.color[3]!==255)&&(this.itemsToRemove[n++]=u))}let p=u.entity.isShowing&&(u.hasConstantOutline||u.isOutlineVisible(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=u.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let b=Y.getValueOrDefault(m,e,nJe,tJe);Ft.equals(b,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(b,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(b,d.distanceDisplayCondition))}let x=u.terrainOffsetProperty;if(!Y.isConstant(x)){let b=Y.getValueOrDefault(x,e,iJe,oJe);h.equals(b,d._lastOffset)||(d._lastOffset=h.clone(b,d._lastOffset),d.offset=Zi.toValue(b,d.offset))}}this.updateShows(i),this.waitingOnCreate=!1}else l(i)&&!i.ready&&(t=!1);return this.itemsToRemove.length=n,t};Jp.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=this.geometry.get(o.id),s=this.attributes.get(r.id.id);l(s)||(s=e.getGeometryInstanceAttributes(r.id),this.attributes.set(r.id.id,s));let a=o.entity.isShowing,c=s.show[0]===1;a!==c&&(s.show=gn.toValue(a,s.show),r.attributes.show.value[0]=s.show[0])}this.showsUpdated.removeAll()};Jp.prototype.contains=function(e){return this.updaters.contains(e.id)};Jp.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?dt.FAILED:(i.boundingSphere.clone(t),dt.DONE)};Jp.prototype.removeAllPrimitives=function(){let e=this.primitives,t=this.primitive;l(t)&&(e.remove(t),this.primitive=void 0,this.geometry.removeAll(),this.updaters.removeAll());let n=this.oldPrimitive;l(n)&&(e.remove(n),this.oldPrimitive=void 0)};function tE(e,t,n){this._primitives=e,this._scene=t,this._shadows=n,this._solidBatches=new St,this._translucentBatches=new St}tE.prototype.add=function(e,t){let n=t.createOutlineGeometryInstance(e),i=this._scene.clampLineWidth(t.outlineWidth),o,r;n.attributes.color.value[3]===255?(o=this._solidBatches,r=o.get(i),l(r)||(r=new Jp(this._primitives,!1,i,this._shadows),o.set(i,r)),r.add(t,n)):(o=this._translucentBatches,r=o.get(i),l(r)||(r=new Jp(this._primitives,!0,i,this._shadows),o.set(i,r)),r.add(t,n))};tE.prototype.remove=function(e){let t,n=this._solidBatches.values,i=n.length;for(t=0;t<i;t++)if(n[t].remove(e))return;let o=this._translucentBatches.values,r=o.length;for(t=0;t<r;t++)if(o[t].remove(e))return};tE.prototype.update=function(e){let t,n,i,o,r=this._solidBatches.values,s=r.length,a=this._translucentBatches.values,c=a.length,u,f=!0,d=!1;do{for(d=!1,n=0;n<s;n++){o=r[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}for(n=0;n<c;n++){o=a[n],f=o.update(e),u=o.itemsToRemove;let p=u.length;if(p>0)for(d=!0,t=0;t<p;t++)i=u[t],o.remove(i),this.add(e,i)}}while(d);return f};tE.prototype.getBoundingSphere=function(e,t){let n,i=this._solidBatches.values,o=i.length;for(n=0;n<o;n++){let a=i[n];if(a.contains(e))return a.getBoundingSphere(e,t)}let r=this._translucentBatches.values,s=r.length;for(n=0;n<s;n++){let a=r[n];if(a.contains(e))return a.getBoundingSphere(e,t)}return dt.FAILED};tE.prototype.removeAllPrimitives=function(){let e,t=this._solidBatches.values,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._translucentBatches.values,o=i.length;for(e=0;e<o;e++)i[e].removeAllPrimitives()};var LD=tE;var rJe=[];function El(e,t,n,i){n=y(n,e.primitives),i=y(i,e.groundPrimitives),this._scene=e,this._primitives=n,this._groundPrimitives=i,this._entityCollection=void 0,this._addedObjects=new St,this._removedObjects=new St,this._changedObjects=new St;let o=yn.NUMBER_OF_SHADOW_MODES;this._outlineBatches=new Array(o*2),this._closedColorBatches=new Array(o*2),this._closedMaterialBatches=new Array(o*2),this._openColorBatches=new Array(o*2),this._openMaterialBatches=new Array(o*2);let r=ir.supportsMaterialsforEntitiesOnTerrain(e);this._supportsMaterialsforEntitiesOnTerrain=r;let s;for(s=0;s<o;++s)this._outlineBatches[s]=new LD(n,e,s,!1),this._outlineBatches[o+s]=new LD(n,e,s,!0),this._closedColorBatches[s]=new Ld(n,cn,void 0,!0,s,!0),this._closedColorBatches[o+s]=new Ld(n,cn,void 0,!0,s,!1),this._closedMaterialBatches[s]=new Fd(n,oo,void 0,!0,s,!0),this._closedMaterialBatches[o+s]=new Fd(n,oo,void 0,!0,s,!1),this._openColorBatches[s]=new Ld(n,cn,void 0,!1,s,!0),this._openColorBatches[o+s]=new Ld(n,cn,void 0,!1,s,!1),this._openMaterialBatches[s]=new Fd(n,oo,void 0,!1,s,!0),this._openMaterialBatches[o+s]=new Fd(n,oo,void 0,!1,s,!1);let a=kn.NUMBER_OF_CLASSIFICATION_TYPES,c=new Array(a),u=[];if(r)for(s=0;s<a;++s)u.push(new rk(i,s,oo)),c[s]=new MD(i,s);else for(s=0;s<a;++s)c[s]=new MD(i,s);this._groundColorBatches=c,this._groundMaterialBatches=u,this._dynamicBatch=new MC(n,i),this._batches=this._outlineBatches.concat(this._closedColorBatches,this._closedMaterialBatches,this._openColorBatches,this._openMaterialBatches,this._groundColorBatches,this._groundMaterialBatches,this._dynamicBatch),this._subscriptions=new St,this._updaterSets=new St,this._entityCollection=t,t.collectionChanged.addEventListener(El.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,rJe)}El.registerUpdater=function(e){KC.registerUpdater(e)};El.unregisterUpdater=function(e){KC.unregisterUpdater(e)};El.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f,d=this;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaterSets.get(u),f.entity===c?f.forEach(function(x){d._removeUpdater(x),d._insertUpdaterIntoBatch(e,x)}):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaterSets.get(u),f.forEach(this._removeUpdater.bind(this)),f.destroy(),this._updaterSets.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new KC(c,this._scene),this._updaterSets.set(u,f),f.forEach(function(x){d._insertUpdaterIntoBatch(e,x)}),this._subscriptions.set(u,f.geometryChanged.addEventListener(El._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let p=!0,g=this._batches,m=g.length;for(a=0;a<m;a++)p=g[a].update(e)&&p;return p};var sJe=[],aJe=new se;El.prototype.getBoundingSphere=function(e,t){let n=sJe,i=aJe,o=0,r=dt.DONE,s=this._batches,a=s.length,c=e.id,u=this._updaterSets.get(c).updaters;for(let f=0;f<u.length;f++){let d=u[f];for(let p=0;p<a;p++){if(r=s[p].getBoundingSphere(d,i),r===dt.PENDING)return dt.PENDING;r===dt.DONE&&(n[o]=se.clone(i,n[o]),o++)}}return o===0?dt.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),dt.DONE)};El.prototype.isDestroyed=function(){return!1};El.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(El.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();this._subscriptions.removeAll();let o=this._updaterSets.values;for(n=o.length,e=0;e<n;e++)o[e].destroy();return this._updaterSets.removeAll(),ue(this)};El.prototype._removeUpdater=function(e){let t=this._batches,n=t.length;for(let i=0;i<n;i++)t[i].remove(e)};El.prototype._insertUpdaterIntoBatch=function(e,t){if(t.isDynamic){this._dynamicBatch.add(e,t);return}let n;(t.outlineEnabled||t.fillEnabled)&&(n=t.shadowsProperty.getValue(e));let i=yn.NUMBER_OF_SHADOW_MODES;if(t.outlineEnabled&&(l(t.terrainOffsetProperty)?this._outlineBatches[i+n].add(e,t):this._outlineBatches[n].add(e,t)),t.fillEnabled)if(t.onTerrain){let o=t.classificationTypeProperty.getValue(e);t.fillMaterialProperty instanceof Gt?this._groundColorBatches[o].add(e,t):this._groundMaterialBatches[o].add(e,t)}else t.isClosed?t.fillMaterialProperty instanceof Gt?l(t.terrainOffsetProperty)?this._closedColorBatches[i+n].add(e,t):this._closedColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._closedMaterialBatches[i+n].add(e,t):this._closedMaterialBatches[n].add(e,t):t.fillMaterialProperty instanceof Gt?l(t.terrainOffsetProperty)?this._openColorBatches[i+n].add(e,t):this._openColorBatches[n].add(e,t):l(t.terrainOffsetProperty)?this._openMaterialBatches[i+n].add(e,t):this._openMaterialBatches[n].add(e,t)};El._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};El.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var sk=El;var cJe=1,lJe="30px sans-serif",uJe=qo.FILL,fJe=z.WHITE,dJe=z.BLACK,hJe=1,mJe=!1,pJe=new z(.165,.165,.165,.8),_Je=new U(7,5),gJe=U.ZERO,yJe=h.ZERO,xJe=Ke.NONE,bJe=gi.CENTER,TJe=On.CENTER,AJe=new h,CJe=new z,EJe=new z,SJe=new z,vJe=new U,wJe=new h,DJe=new U,IJe=new Vt,PJe=new Vt,RJe=new Vt,OJe=new Ft;function bde(e){this.entity=e,this.label=void 0,this.index=void 0}function uy(e,t){t.collectionChanged.addEventListener(uy.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new St,this._onCollectionChanged(t,t.values,[],[])}uy.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._label,c,u=r.label,f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=Y.getValueOrUndefined(s._position,e,AJe),c=Y.getValueOrUndefined(a._text,e),f=l(d)&&l(c)),!f){S7(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let p=!1,g=Y.getValueOrDefault(a._heightReference,e,xJe);l(u)||(u=n.getLabel(s),u.id=s,r.label=u,p=h.equals(u.position,d)&&u.heightReference===g),u.show=!0,u.position=d,u.text=c,u.scale=Y.getValueOrDefault(a._scale,e,cJe),u.font=Y.getValueOrDefault(a._font,e,lJe),u.style=Y.getValueOrDefault(a._style,e,uJe),u.fillColor=Y.getValueOrDefault(a._fillColor,e,fJe,CJe),u.outlineColor=Y.getValueOrDefault(a._outlineColor,e,dJe,EJe),u.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,hJe),u.showBackground=Y.getValueOrDefault(a._showBackground,e,mJe),u.backgroundColor=Y.getValueOrDefault(a._backgroundColor,e,pJe,SJe),u.backgroundPadding=Y.getValueOrDefault(a._backgroundPadding,e,_Je,vJe),u.pixelOffset=Y.getValueOrDefault(a._pixelOffset,e,gJe,DJe),u.eyeOffset=Y.getValueOrDefault(a._eyeOffset,e,yJe,wJe),u.heightReference=g,u.horizontalOrigin=Y.getValueOrDefault(a._horizontalOrigin,e,bJe),u.verticalOrigin=Y.getValueOrDefault(a._verticalOrigin,e,TJe),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,IJe),u.pixelOffsetScaleByDistance=Y.getValueOrUndefined(a._pixelOffsetScaleByDistance,e,PJe),u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,RJe),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,OJe),u.disableDepthTestDistance=Y.getValueOrUndefined(a._disableDepthTestDistance,e),p&&u._updateClamping()}return!0};uy.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!l(n.label))return dt.FAILED;let i=n.label;return t.center=h.clone(y(i._clampedPosition,i.position),t.center),t.radius=0,dt.DONE};uy.prototype.isDestroyed=function(){return!1};uy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(uy.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removeLabel(e[t]);return ue(this)};uy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._label)&&l(r._position)&&s.set(r.id,new bde(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._label)&&l(r._position)?s.contains(r.id)||s.set(r.id,new bde(r)):(S7(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],S7(s.get(r.id),r,a),s.remove(r.id)};function S7(e,t,n){l(e)&&(e.label=void 0,n.removeLabel(t))}var ak=uy;var MJe=1,LJe=!0,NJe=0,FJe=!0,BJe=!0,kJe=yn.ENABLED,VJe=Ke.NONE,UJe=z.RED,zJe=0,HJe=z.WHITE,GJe=Oc.HIGHLIGHT,WJe=.5,jJe=new U(1,1),qJe=new F,YJe=new F,Tde=new z,Ade=new Array(4),XJe=new h;function fy(e,t){t.collectionChanged.addEventListener(fy.prototype._onCollectionChanged,this),this._scene=e,this._primitives=e.primitives,this._entityCollection=t,this._modelHash={},this._entitiesToVisualize=new St,this._onCollectionChanged(t,t.values,[],[])}async function KJe(e,t,n,i){let o=e._primitives,r=e._modelHash;try{let s=await qh.fromGltfAsync({url:n,incrementallyLoadTextures:i,scene:e._scene});if(e.isDestroyed()||!l(r[t.id]))return;s.id=t,o.add(s),r[t.id].modelPrimitive=s,s.errorEvent.addEventListener(a=>{l(r[t.id])&&(console.log(a),a.name!=="TextureError"&&s.incrementallyLoadTextures&&(r[t.id].loadFailed=!0))})}catch(s){if(e.isDestroyed()||!l(r[t.id]))return;console.log(s),r[t.id].loadFailed=!0}}fy.prototype.update=function(e){let t=this._entitiesToVisualize.values,n=this._modelHash,i=this._primitives;for(let o=0,r=t.length;o<r;o++){let s=t[o],a=s._model,c,u=n[s.id],f=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),d;if(f&&(d=s.computeModelMatrix(e,qJe),c=De.createIfNeeded(Y.getValueOrUndefined(a._uri,e)),f=l(d)&&l(c)),!f){l(u)&&u.modelPrimitive&&(u.modelPrimitive.show=!1);continue}if(!l(u)||c.url!==u.url){l(u?.modelPrimitive)&&(i.removeAndDestroy(u.modelPrimitive),delete n[s.id]),u={modelPrimitive:void 0,url:c.url,animationsRunning:!1,nodeTransformationsScratch:{},articulationsScratch:{},loadFailed:!1,modelUpdated:!1},n[s.id]=u;let m=Y.getValueOrDefault(a._incrementallyLoadTextures,e,FJe);KJe(this,s,c,m)}let p=u.modelPrimitive;if(!l(p))continue;p.show=!0,p.scale=Y.getValueOrDefault(a._scale,e,MJe),p.enableVerticalExaggeration=Y.getValueOrDefault(a._enableVerticalExaggeration,e,LJe),p.minimumPixelSize=Y.getValueOrDefault(a._minimumPixelSize,e,NJe),p.maximumScale=Y.getValueOrUndefined(a._maximumScale,e),p.modelMatrix=F.clone(d,p.modelMatrix),p.shadows=Y.getValueOrDefault(a._shadows,e,kJe),p.heightReference=Y.getValueOrDefault(a._heightReference,e,VJe),p.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e),p.silhouetteColor=Y.getValueOrDefault(a._silhouetteColor,e,UJe,Tde),p.silhouetteSize=Y.getValueOrDefault(a._silhouetteSize,e,zJe),p.color=Y.getValueOrDefault(a._color,e,HJe,Tde),p.colorBlendMode=Y.getValueOrDefault(a._colorBlendMode,e,GJe),p.colorBlendAmount=Y.getValueOrDefault(a._colorBlendAmount,e,WJe),p.clippingPlanes=Y.getValueOrUndefined(a._clippingPlanes,e),p.clampAnimations=Y.getValueOrDefault(a._clampAnimations,e,BJe),p.imageBasedLighting.imageBasedLightingFactor=Y.getValueOrDefault(a._imageBasedLightingFactor,e,jJe);let g=Y.getValueOrUndefined(a._lightColor,e);if(l(g)&&(z.pack(g,Ade,0),g=h.unpack(Ade,0,XJe)),p.lightColor=g,p.customShader=Y.getValueOrUndefined(a._customShader,e),n[s.id].modelUpdated=!0,p.ready){let m=Y.getValueOrDefault(a._runAnimations,e,!0);u.animationsRunning!==m&&(m?p.activeAnimations.addAll({loop:ru.REPEAT}):p.activeAnimations.removeAll(),u.animationsRunning=m);let x=Y.getValueOrUndefined(a._nodeTransformations,e,u.nodeTransformationsScratch);if(l(x)){let A=Object.keys(x);for(let C=0,S=A.length;C<S;++C){let v=A[C],D=x[v];if(!l(D))continue;let O=p.getNode(v);if(!l(O))continue;let R=F.fromTranslationRotationScale(D,YJe);O.matrix=F.multiply(O.originalMatrix,R,R)}}let b=!1,T=Y.getValueOrUndefined(a._articulations,e,u.articulationsScratch);if(l(T)){let A=Object.keys(T);for(let C=0,S=A.length;C<S;++C){let v=A[C],D=T[v];l(D)&&(b=!0,p.setArticulationStage(v,D))}}b&&p.applyArticulations()}}return!0};fy.prototype.isDestroyed=function(){return!1};fy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(fy.prototype._onCollectionChanged,this);let e=this._entitiesToVisualize.values,t=this._modelHash,n=this._primitives;for(let i=e.length-1;i>-1;i--)v7(this,e[i],t,n);return ue(this)};var ck=new h,ZJe=new fe;fy.prototype.getBoundingSphere=function(e,t){let n=this._modelHash[e.id];if(!l(n))return dt.FAILED;if(n.loadFailed)return dt.FAILED;let i=n.modelPrimitive;if(!l(i)||!i.show)return dt.PENDING;if(!i.ready||!n.modelUpdated)return dt.PENDING;let o=this._scene,r=y(o.ellipsoid,ee.default);if(i.heightReference!==Ke.NONE){let a=i.modelMatrix;ck.x=a[12],ck.y=a[13],ck.z=a[14];let c=r.cartesianToCartographic(ck,ZJe),u=o.getHeight(c,i.heightReference);return l(u)&&(Ku(i.heightReference)?c.height=u:c.height+=u),se.clone(i.boundingSphere,t),t.center=r.cartographicToCartesian(c),dt.DONE}return se.clone(i.boundingSphere,t),dt.DONE};fy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._entitiesToVisualize,a=this._modelHash,c=this._primitives;for(o=t.length-1;o>-1;o--)r=t[o],l(r._model)&&l(r._position)&&s.set(r.id,r);for(o=i.length-1;o>-1;o--)r=i[o],l(r._model)&&l(r._position)?($Je(r,a),s.set(r.id,r)):(v7(this,r,a,c),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],v7(this,r,a,c),s.remove(r.id)};function v7(e,t,n,i){let o=n[t.id];l(o)&&(i.removeAndDestroy(o.modelPrimitive),delete n[t.id])}function $Je(e,t){let n=t[e.id];l(n)&&(n.nodeTransformationsScratch={},n.articulationsScratch={})}var lk=fy;function dy(e){this._definitionChanged=new me,this._value=void 0,this._removeSubscription=void 0,this.setValue(e)}Object.defineProperties(dy.prototype,{isConstant:{get:function(){return Y.isConstant(this._value)}},definitionChanged:{get:function(){return this._definitionChanged}},referenceFrame:{get:function(){return l(this._value)?this._value.referenceFrame:ki.FIXED}}});var QJe=new K;dy.prototype.getValue=function(e,t){return l(e)||(e=K.now(QJe)),this.getValueInReferenceFrame(e,ki.FIXED,t)};dy.prototype.setValue=function(e){this._value!==e&&(this._value=e,l(this._removeSubscription)&&(this._removeSubscription(),this._removeSubscription=void 0),l(e)&&(this._removeSubscription=e.definitionChanged.addEventListener(this._raiseDefinitionChanged,this)),this._definitionChanged.raiseEvent(this))};dy.prototype.getValueInReferenceFrame=function(e,t,n){if(l(this._value))return n=this._value.getValueInReferenceFrame(e,t,n),l(n)?ee.default.scaleToGeodeticSurface(n,n):void 0};dy.prototype.equals=function(e){return this===e||e instanceof dy&&this._value===e._value};dy.prototype._raiseDefinitionChanged=function(){this._definitionChanged.raiseEvent(this)};var e_=dy;var JJe=60,eet=1,Ede=new Sn,w7=new Sn,D7=new Sn;function Cde(e){this.entity=e,this.polyline=void 0,this.index=void 0,this.updater=void 0}function tet(e,t,n,i,o,r,s,a,c){let u=a,f;f=e.getValueInReferenceFrame(t,r,c[u]),l(f)&&(c[u++]=f);let d=!l(o)||K.lessThanOrEquals(o,t)||K.greaterThanOrEquals(o,n),p=0,g=i.length,m=i[p],x=n,b=!1,T,A,C;for(;p<g;){if(!d&&K.greaterThanOrEquals(m,o)&&(f=e.getValueInReferenceFrame(o,r,c[u]),l(f)&&(c[u++]=f),d=!0),K.greaterThan(m,t)&&K.lessThan(m,x)&&!m.equals(o)&&(f=e.getValueInReferenceFrame(m,r,c[u]),l(f)&&(c[u++]=f)),p<g-1){if(s>0&&!b){let S=i[p+1],v=K.secondsDifference(S,m);b=v>s,b&&(T=Math.ceil(v/s),A=0,C=v/Math.max(T,2),T=Math.max(T-1,1))}if(b&&A<T){m=K.addSeconds(m,C,new K),A++;continue}}b=!1,p++,m=i[p]}return f=e.getValueInReferenceFrame(n,r,c[u]),l(f)&&(c[u++]=f),u}function net(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=!l(i)||K.lessThanOrEquals(i,t)||K.greaterThanOrEquals(i,n);for(;K.lessThan(d,n);)!p&&K.greaterThanOrEquals(d,i)&&(p=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=K.addSeconds(t,r*u,new K);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function iet(e,t,n,i,o,r,s,a){let c,u=0,f=s,d=t,p=Math.max(r,60),g=!l(i)||K.lessThanOrEquals(i,t)||K.greaterThanOrEquals(i,n);for(;K.lessThan(d,n);)!g&&K.greaterThanOrEquals(d,i)&&(g=!0,c=e.getValueInReferenceFrame(i,o,a[f]),l(c)&&(a[f]=c,f++)),c=e.getValueInReferenceFrame(d,o,a[f]),l(c)&&(a[f]=c,f++),u++,d=K.addSeconds(t,p*u,new K);return c=e.getValueInReferenceFrame(n,o,a[f]),l(c)&&(a[f]=c,f++),f}function oet(e,t,n,i,o,r,s,a){D7.start=t,D7.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Sn.intersect(d,D7,Ede).isEmpty){let p=d.start;d.isStartIncluded||(d.isStopIncluded?p=d.stop:p=K.addSeconds(d.start,K.secondsDifference(d.stop,d.start)/2,new K));let g=e.getValueInReferenceFrame(p,o,a[c]);l(g)&&(a[c]=g,c++)}}return c}function ret(e,t,n,i,o,r,s,a){let c=e.getValueInReferenceFrame(t,o,a[s]);return l(c)&&(a[s++]=c),s}function set(e,t,n,i,o,r,s,a){w7.start=t,w7.stop=n;let c=s,u=e.intervals;for(let f=0;f<u.length;f++){let d=u.get(f);if(!Sn.intersect(d,w7,Ede).isEmpty){let p=d.start,g=d.stop,m=t;K.greaterThan(p,m)&&(m=p);let x=n;K.lessThan(g,x)&&(x=g),c=Sde(d.data,m,x,i,o,r,c,a)}}return c}function Sde(e,t,n,i,o,r,s,a){for(;e instanceof ny;)e=e.resolvedProperty;if(e instanceof Sa){let c=e._property._times;s=tet(e,t,n,c,i,o,r,s,a)}else e instanceof GL?s=net(e,t,n,i,o,r,s,a):e instanceof Ea?s=set(e,t,n,i,o,r,s,a):e instanceof oy?s=oet(e,t,n,i,o,r,s,a):e instanceof hl||e instanceof e_&&Y.isConstant(e)?s=ret(e,t,n,i,o,r,s,a):s=iet(e,t,n,i,o,r,s,a);return s}function vde(e,t,n,i,o,r,s){l(s)||(s=[]);let a=Sde(e,t,n,i,o,r,0,s);return s.length=a,s}var aet=new $;function ND(e,t){this._unusedIndexes=[],this._polylineCollection=new Zh,this._scene=e,this._referenceFrame=t,e.primitives.add(this._polylineCollection)}ND.prototype.update=function(e){if(this._referenceFrame===ki.INERTIAL){let t=Nt.computeIcrfToCentralBodyFixedMatrix(e,aet);F.fromRotationTranslation(t,h.ZERO,this._polylineCollection.modelMatrix)}};ND.prototype.updateObject=function(e,t){let n=t.entity,i=n._path,o=n._position,r,s,a=i._show,c=t.polyline,u=n.isShowing&&n.isAvailable(e)&&(!l(a)||a.getValue(e));if(u){let d=Y.getValueOrUndefined(i._leadTime,e),p=Y.getValueOrUndefined(i._trailTime,e),g=n._availability,m=l(g),x=l(d),b=l(p);if(u=m||x&&b,u){if(b&&(r=K.addSeconds(e,-p,new K)),x&&(s=K.addSeconds(e,d,new K)),m){let T=g.start,A=g.stop;(!b||K.greaterThan(T,r))&&(r=T),(!x||K.lessThan(A,s))&&(s=A)}u=K.lessThan(r,s)}}if(!u){l(c)&&(this._unusedIndexes.push(t.index),t.polyline=void 0,c.show=!1,t.index=void 0);return}if(!l(c)){let d=this._unusedIndexes;if(d.length>0){let g=d.pop();c=this._polylineCollection.get(g),t.index=g}else t.index=this._polylineCollection.length,c=this._polylineCollection.add();c.id=n,t.polyline=c}let f=Y.getValueOrDefault(i._resolution,e,JJe);c.show=!0,c.positions=vde(o,r,s,e,this._referenceFrame,f,c.positions.slice()),c.material=nr.getValue(e,i._material,c.material),c.width=Y.getValueOrDefault(i._width,e,eet),c.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,c.distanceDisplayCondition)};ND.prototype.removeObject=function(e){let t=e.polyline;l(t)&&(this._unusedIndexes.push(e.index),e.polyline=void 0,t.show=!1,t.id=void 0,e.index=void 0)};ND.prototype.destroy=function(){return this._scene.primitives.remove(this._polylineCollection),ue(this)};function hy(e,t){t.collectionChanged.addEventListener(hy.prototype._onCollectionChanged,this),this._scene=e,this._updaters={},this._entityCollection=t,this._items=new St,this._onCollectionChanged(t,t.values,[],[])}hy.prototype.update=function(e){let t=this._updaters;for(let i in t)t.hasOwnProperty(i)&&t[i].update(e);let n=this._items.values;if(n.length===0&&l(this._updaters)&&Object.keys(this._updaters).length>0){for(let i in t)t.hasOwnProperty(i)&&t[i].destroy();this._updaters={}}for(let i=0,o=n.length;i<o;i++){let r=n[i],a=r.entity._position,c=r.updater,u=ki.FIXED;this._scene.mode===ne.SCENE3D&&(u=a.referenceFrame);let f=this._updaters[u];if(c===f&&l(f)){f.updateObject(e,r);continue}l(c)&&c.removeObject(r),l(f)||(f=new ND(this._scene,u),f.update(e),this._updaters[u]=f),r.updater=f,l(f)&&f.updateObject(e,r)}return!0};hy.prototype.isDestroyed=function(){return!1};hy.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(hy.prototype._onCollectionChanged,this);let e=this._updaters;for(let t in e)e.hasOwnProperty(t)&&e[t].destroy();return ue(this)};hy.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s,a=this._items;for(o=t.length-1;o>-1;o--)r=t[o],l(r._path)&&l(r._position)&&a.set(r.id,new Cde(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._path)&&l(r._position)?a.contains(r.id)||a.set(r.id,new Cde(r)):(s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id)));for(o=n.length-1;o>-1;o--)r=n[o],s=a.get(r.id),l(s)&&(l(s.updater)&&s.updater.removeObject(s),a.remove(r.id))};hy._subSample=vde;var uk=hy;var wde=z.WHITE,Dde=z.BLACK,Ide=0,Pde=1,Rde=0,Ode=zr.NONE,Mde=new z,cet=new h,Lde=new z,Nde=new Vt,Fde=new Vt,Bde=new Ft;function kde(e){this.entity=e,this.pointPrimitive=void 0,this.billboard=void 0,this.color=void 0,this.outlineColor=void 0,this.pixelSize=void 0,this.outlineWidth=void 0}function my(e,t){t.collectionChanged.addEventListener(my.prototype._onCollectionChanged,this),this._cluster=e,this._entityCollection=t,this._items=new St,this._onCollectionChanged(t,t.values,[],[])}my.prototype.update=function(e){let t=this._items.values,n=this._cluster;for(let i=0,o=t.length;i<o;i++){let r=t[i],s=r.entity,a=s._point,c=r.pointPrimitive,u=r.billboard,f=Y.getValueOrDefault(a._heightReference,e,Ke.NONE),d=s.isShowing&&s.isAvailable(e)&&Y.getValueOrDefault(a._show,e,!0),p;if(d&&(p=Y.getValueOrUndefined(s._position,e,cet),d=l(p)),!d){FD(r,s,n);continue}Y.isConstant(s._position)||(n._clusterDirty=!0);let g=!1,m=!1;if(f!==Ke.NONE&&!l(u)?(l(c)&&(FD(r,s,n),c=void 0),u=n.getBillboard(s),u.id=s,u.image=void 0,r.billboard=u,g=!0,m=h.equals(u.position,p)&&u.heightReference===f):f===Ke.NONE&&!l(c)&&(l(u)&&(FD(r,s,n),u=void 0),c=n.getPoint(s),c.id=s,r.pointPrimitive=c),l(c))c.show=!0,c.position=p,c.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Nde),c.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Fde),c.color=Y.getValueOrDefault(a._color,e,wde,Mde),c.outlineColor=Y.getValueOrDefault(a._outlineColor,e,Dde,Lde),c.outlineWidth=Y.getValueOrDefault(a._outlineWidth,e,Ide),c.pixelSize=Y.getValueOrDefault(a._pixelSize,e,Pde),c.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,Bde),c.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Rde),c.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Ode);else if(l(u)){u.show=!0,u.position=p,u.scaleByDistance=Y.getValueOrUndefined(a._scaleByDistance,e,Nde),u.translucencyByDistance=Y.getValueOrUndefined(a._translucencyByDistance,e,Fde),u.distanceDisplayCondition=Y.getValueOrUndefined(a._distanceDisplayCondition,e,Bde),u.disableDepthTestDistance=Y.getValueOrDefault(a._disableDepthTestDistance,e,Rde),u.splitDirection=Y.getValueOrDefault(a._splitDirection,e,Ode),u.heightReference=f;let x=Y.getValueOrDefault(a._color,e,wde,Mde),b=Y.getValueOrDefault(a._outlineColor,e,Dde,Lde),T=Math.round(Y.getValueOrDefault(a._outlineWidth,e,Ide)),A=Math.max(1,Math.round(Y.getValueOrDefault(a._pixelSize,e,Pde)));if(T>0?(u.scale=1,g=g||T!==r.outlineWidth||A!==r.pixelSize||!z.equals(x,r.color)||!z.equals(b,r.outlineColor)):(u.scale=A/50,A=50,g=g||T!==r.outlineWidth||!z.equals(x,r.color)||!z.equals(b,r.outlineColor)),g){r.color=z.clone(x,r.color),r.outlineColor=z.clone(b,r.outlineColor),r.pixelSize=A,r.outlineWidth=T;let C=x.alpha,S=x.toCssColorString(),v=b.toCssColorString(),D=JSON.stringify([S,A,v,T]);u.setImage(D,GA(C,S,v,T,A))}m&&u._updateClamping()}}return!0};my.prototype.getBoundingSphere=function(e,t){let n=this._items.get(e.id);if(!l(n)||!(l(n.pointPrimitive)||l(n.billboard)))return dt.FAILED;if(l(n.pointPrimitive))t.center=h.clone(n.pointPrimitive.position,t.center);else{let i=n.billboard;if(!l(i._clampedPosition))return dt.PENDING;t.center=h.clone(i._clampedPosition,t.center)}return t.radius=0,dt.DONE};my.prototype.isDestroyed=function(){return!1};my.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(my.prototype._onCollectionChanged,this);let e=this._entityCollection.values;for(let t=0;t<e.length;t++)this._cluster.removePoint(e[t]);return ue(this)};my.prototype._onCollectionChanged=function(e,t,n,i){let o,r,s=this._items,a=this._cluster;for(o=t.length-1;o>-1;o--)r=t[o],l(r._point)&&l(r._position)&&s.set(r.id,new kde(r));for(o=i.length-1;o>-1;o--)r=i[o],l(r._point)&&l(r._position)?s.contains(r.id)||s.set(r.id,new kde(r)):(FD(s.get(r.id),r,a),s.remove(r.id));for(o=n.length-1;o>-1;o--)r=n[o],FD(s.get(r.id),r,a),s.remove(r.id)};function FD(e,t,n){if(l(e)){let i=e.pointPrimitive;if(l(i)){e.pointPrimitive=void 0,n.removePoint(t);return}let o=e.billboard;l(o)&&(e.billboard=void 0,n.removeBillboard(t))}}var fk=my;var Gde=[];function uet(e,t,n,i,o){let r=Gde;r.length=o;let s,a=n.red,c=n.green,u=n.blue,f=n.alpha,d=i.red,p=i.green,g=i.blue,m=i.alpha;if(z.equals(n,i)){for(s=0;s<o;s++)r[s]=z.clone(n);return r}let x=(d-a)/o,b=(p-c)/o,T=(g-u)/o,A=(m-f)/o;for(s=0;s<o;s++)r[s]=new z(a+s*x,c+s*b,u+s*T,f+s*A);return r}function BD(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.width,1),o=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._width=i,this._colorsPerVertex=o,this._vertexFormat=Pe.clone(y(e.vertexFormat,Pe.DEFAULT)),this._arcType=y(e.arcType,tn.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=ee.clone(y(e.ellipsoid,ee.default)),this._workerName="createPolylineGeometry";let r=1+t.length*h.packedLength;r+=l(n)?1+n.length*z.packedLength:1,this.packedLength=r+ee.packedLength+Pe.packedLength+4}BD.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n++]=e._width,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};var Wde=ee.clone(ee.UNIT_SPHERE),jde=new Pe,Xx={positions:void 0,colors:void 0,ellipsoid:Wde,vertexFormat:jde,width:void 0,colorsPerVertex:void 0,arcType:void 0,granularity:void 0};BD.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t,Wde);t+=ee.packedLength;let c=Pe.unpack(e,t,jde);t+=Pe.packedLength;let u=e[t++],f=e[t++]===1,d=e[t++],p=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=ee.clone(a,n._ellipsoid),n._vertexFormat=Pe.clone(c,n._vertexFormat),n._width=u,n._colorsPerVertex=f,n._arcType=d,n._granularity=p,n):(Xx.positions=r,Xx.colors=s,Xx.width=u,Xx.colorsPerVertex=f,Xx.arcType=d,Xx.granularity=p,new BD(Xx))};var Vde=new h,Ude=new h,zde=new h,Hde=new h;BD.createGeometry=function(e){let t=e._width,n=e._vertexFormat,i=e._colors,o=e._colorsPerVertex,r=e._arcType,s=e._granularity,a=e._ellipsoid,c,u,f,d=[],p=bo(e._positions,h.equalsEpsilon,!1,d);if(l(i)&&d.length>0){let N=0,B=d[0];i=i.filter(function(H,V){let G=!1;return o?G=V===B||V===0&&B===1:G=V+1===B,G?(N++,B=d[N],!1):!0})}let g=p.length;if(g<2||t<=0)return;if(r===tn.GEODESIC||r===tn.RHUMB){let N,B;r===tn.GEODESIC?(N=P.chordLength(s,a.maximumRadius),B=Ri.numberOfPoints):(N=s,B=Ri.numberOfPointsRhumbLine);let H=Ri.extractHeights(p,a);if(l(i)){let V=1;for(c=0;c<g-1;++c)V+=B(p[c],p[c+1],N);let G=new Array(V),k=0;for(c=0;c<g-1;++c){let W=p[c],q=p[c+1],J=i[c],j=B(W,q,N);if(o&&c<V){let Z=i[c+1],Q=uet(W,q,J,Z,j),de=Q.length;for(u=0;u<de;++u)G[k++]=Q[u]}else for(u=0;u<j;++u)G[k++]=z.clone(J)}G[k]=z.clone(i[i.length-1]),i=G,Gde.length=0}r===tn.GEODESIC?p=Ri.generateCartesianArc({positions:p,minDistance:N,ellipsoid:a,height:H}):p=Ri.generateCartesianRhumbArc({positions:p,granularity:N,ellipsoid:a,height:H})}g=p.length;let m=g*4-4,x=new Float64Array(m*3),b=new Float64Array(m*3),T=new Float64Array(m*3),A=new Float32Array(m*2),C=n.st?new Float32Array(m*2):void 0,S=l(i)?new Uint8Array(m*4):void 0,v=0,D=0,O=0,R=0,M;for(u=0;u<g;++u){u===0?(M=Vde,h.subtract(p[0],p[1],M),h.add(p[0],M,M)):M=p[u-1],h.clone(M,zde),h.clone(p[u],Ude),u===g-1?(M=Vde,h.subtract(p[g-1],p[g-2],M),h.add(p[g-1],M,M)):M=p[u+1],h.clone(M,Hde);let N,B;l(S)&&(u!==0&&!o?N=i[u-1]:N=i[u],u!==g-1&&(B=i[u]));let H=u===0?2:0,V=u===g-1?2:4;for(f=H;f<V;++f){h.pack(Ude,x,v),h.pack(zde,b,v),h.pack(Hde,T,v),v+=3;let G=f-2<0?-1:1;if(A[D++]=2*(f%2)-1,A[D++]=G*t,n.st&&(C[O++]=u/(g-1),C[O++]=Math.max(A[D-2],0)),l(S)){let k=f<2?N:B;S[R++]=z.floatToByte(k.red),S[R++]=z.floatToByte(k.green),S[R++]=z.floatToByte(k.blue),S[R++]=z.floatToByte(k.alpha)}}}let L=new dn;L.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:x}),L.prevPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:b}),L.nextPosition=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:T}),L.expandAndWidth=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:A}),n.st&&(L.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:C})),l(S)&&(L.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:S,normalize:!0}));let _=Ne.createTypedArray(m,g*6-6),E=0,w=0,I=g-1;for(u=0;u<I;++u)_[w++]=E,_[w++]=E+2,_[w++]=E+1,_[w++]=E+1,_[w++]=E+2,_[w++]=E+3,E+=4;return new ft({attributes:L,indices:_,primitiveType:Le.TRIANGLES,boundingSphere:se.fromPoints(p),geometryType:ed.POLYLINES})};var py=BD;var fet=new Xn(0),dk={},qde=new z,det=new Gt(z.WHITE),het=new Xn(!0),met=new Xn(yn.DISABLED),pet=new Xn(new Ft),_et=new Xn(kn.BOTH);function get(){this.vertexFormat=void 0,this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function yet(){this.positions=void 0,this.width=void 0,this.arcType=void 0,this.granularity=void 0}function Bd(e,t){this._entity=e,this._scene=t,this._entitySubscription=e.definitionChanged.addEventListener(Bd.prototype._onEntityPropertyChanged,this),this._fillEnabled=!1,this._dynamic=!1,this._geometryChanged=new me,this._showProperty=void 0,this._materialProperty=void 0,this._shadowsProperty=void 0,this._distanceDisplayConditionProperty=void 0,this._classificationTypeProperty=void 0,this._depthFailMaterialProperty=void 0,this._geometryOptions=new get,this._groundGeometryOptions=new yet,this._id=`polyline-${e.id}`,this._clampToGround=!1,this._supportsPolylinesOnTerrain=ir.supportsPolylinesOnTerrain(t),this._zIndex=0,this._onEntityPropertyChanged(e,"polyline",e.polyline,void 0)}Object.defineProperties(Bd.prototype,{id:{get:function(){return this._id}},entity:{get:function(){return this._entity}},fillEnabled:{get:function(){return this._fillEnabled}},hasConstantFill:{get:function(){return!this._fillEnabled||!l(this._entity.availability)&&Y.isConstant(this._showProperty)}},fillMaterialProperty:{get:function(){return this._materialProperty}},depthFailMaterialProperty:{get:function(){return this._depthFailMaterialProperty}},outlineEnabled:{value:!1},hasConstantOutline:{value:!0},outlineColorProperty:{value:void 0},shadowsProperty:{get:function(){return this._shadowsProperty}},distanceDisplayConditionProperty:{get:function(){return this._distanceDisplayConditionProperty}},classificationTypeProperty:{get:function(){return this._classificationTypeProperty}},isDynamic:{get:function(){return this._dynamic}},isClosed:{value:!1},geometryChanged:{get:function(){return this._geometryChanged}},arcType:{get:function(){return this._arcType}},clampToGround:{get:function(){return this._clampToGround&&this._supportsPolylinesOnTerrain}},zIndex:{get:function(){return this._zIndex}}});Bd.prototype.isOutlineVisible=function(e){return!1};Bd.prototype.isFilled=function(e){let t=this._entity,n=this._fillEnabled&&t.isAvailable(e)&&this._showProperty.getValue(e);return y(n,!1)};Bd.prototype.createFillGeometryInstance=function(e){let t=this._entity,n=t.isAvailable(e),i=new gn(n&&t.isShowing&&this._showProperty.getValue(e)),o=this._distanceDisplayConditionProperty.getValue(e),r=Bn.fromDistanceDisplayCondition(o),s={show:i,distanceDisplayCondition:r},a;return this._materialProperty instanceof Gt&&(l(this._materialProperty.color)&&(this._materialProperty.color.isConstant||n)&&(a=this._materialProperty.color.getValue(e,qde)),l(a)||(a=z.WHITE),s.color=qt.fromColor(a)),this.clampToGround?new vt({id:t,geometry:new kT(this._groundGeometryOptions),attributes:s}):(l(this._depthFailMaterialProperty)&&this._depthFailMaterialProperty instanceof Gt&&(l(this._depthFailMaterialProperty.color)&&(this._depthFailMaterialProperty.color.isConstant||n)&&(a=this._depthFailMaterialProperty.color.getValue(e,qde)),l(a)||(a=z.WHITE),s.depthFailColor=qt.fromColor(a)),new vt({id:t,geometry:new py(this._geometryOptions),attributes:s}))};Bd.prototype.createOutlineGeometryInstance=function(e){};Bd.prototype.isDestroyed=function(){return!1};Bd.prototype.destroy=function(){this._entitySubscription(),ue(this)};Bd.prototype._onEntityPropertyChanged=function(e,t,n,i){if(!(t==="availability"||t==="polyline"))return;let o=this._entity.polyline;if(!l(o)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let r=o.positions,s=o.show;if(l(s)&&s.isConstant&&!s.getValue(ze.MINIMUM_VALUE)||!l(r)){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let a=o.zIndex,c=y(o.material,det),u=c instanceof Gt;this._materialProperty=c,this._depthFailMaterialProperty=o.depthFailMaterial,this._showProperty=y(s,het),this._shadowsProperty=y(o.shadows,met),this._distanceDisplayConditionProperty=y(o.distanceDisplayCondition,pet),this._classificationTypeProperty=y(o.classificationType,_et),this._fillEnabled=!0,this._zIndex=y(a,fet);let f=o.width,d=o.arcType,p=o.clampToGround,g=o.granularity;if(!r.isConstant||!Y.isConstant(f)||!Y.isConstant(d)||!Y.isConstant(g)||!Y.isConstant(p)||!Y.isConstant(a))this._dynamic||(this._dynamic=!0,this._geometryChanged.raiseEvent(this));else{let m=this._geometryOptions,x=r.getValue(ze.MINIMUM_VALUE,m.positions);if(!l(x)||x.length<2){this._fillEnabled&&(this._fillEnabled=!1,this._geometryChanged.raiseEvent(this));return}let b;u&&(!l(this._depthFailMaterialProperty)||this._depthFailMaterialProperty instanceof Gt)?b=ns.VERTEX_FORMAT:b=xa.VERTEX_FORMAT,m.vertexFormat=b,m.positions=x,m.width=l(f)?f.getValue(ze.MINIMUM_VALUE):void 0,m.arcType=l(d)?d.getValue(ze.MINIMUM_VALUE):void 0,m.granularity=l(g)?g.getValue(ze.MINIMUM_VALUE):void 0;let T=this._groundGeometryOptions;T.positions=x,T.width=m.width,T.arcType=m.arcType,T.granularity=m.granularity,this._clampToGround=l(p)?p.getValue(ze.MINIMUM_VALUE):!1,!this._clampToGround&&l(a)&&At("Entity polylines must have clampToGround: true when using zIndex. zIndex will be ignored."),this._dynamic=!1,this._geometryChanged.raiseEvent(this)}};Bd.prototype.createDynamicUpdater=function(e,t){return new kD(e,t,this)};var nE={positions:void 0,granularity:void 0,height:void 0,ellipsoid:void 0};function kD(e,t,n){this._line=void 0,this._primitives=e,this._groundPrimitives=t,this._groundPolylinePrimitive=void 0,this._material=void 0,this._geometryUpdater=n,this._positions=[]}function Yde(e){if(l(e._line))return e._line;let t=e._primitives,n=e._geometryUpdater._scene.id+t._guid,i=dk[n];!l(i)||i.isDestroyed()?(i=new Zh,dk[n]=i,t.add(i)):t.contains(i)||t.add(i);let o=i.add();return o.id=e._geometryUpdater._entity,e._line=o,o}kD.prototype.update=function(e){let t=this._geometryUpdater,n=t._entity,i=n.polyline,o=i.positions,r=Y.getValueOrUndefined(o,e,this._positions);t._clampToGround=Y.getValueOrDefault(i._clampToGround,e,!1),t._groundGeometryOptions.positions=r,t._groundGeometryOptions.width=Y.getValueOrDefault(i._width,e,1),t._groundGeometryOptions.arcType=Y.getValueOrDefault(i._arcType,e,tn.GEODESIC),t._groundGeometryOptions.granularity=Y.getValueOrDefault(i._granularity,e,9999);let s=this._groundPrimitives;if(l(this._groundPolylinePrimitive)&&(s.remove(this._groundPolylinePrimitive),this._groundPolylinePrimitive=void 0),t.clampToGround){if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)||!l(r)||r.length<2)return;let d=t.fillMaterialProperty,p;if(d instanceof Gt)p=new ns;else{let g=nr.getValue(e,d,this._material);p=new xa({material:g,translucent:g.isTranslucent()}),this._material=g}this._groundPolylinePrimitive=s.add(new Eh({geometryInstances:t.createFillGeometryInstance(e),appearance:p,classificationType:t.classificationTypeProperty.getValue(e),asynchronous:!1}),Y.getValueOrUndefined(t.zIndex,e)),l(this._line)&&(this._line.show=!1);return}let a=Yde(this);if(!n.isShowing||!n.isAvailable(e)||!Y.getValueOrDefault(i._show,e,!0)){a.show=!1;return}if(!l(r)||r.length<2){a.show=!1;return}let c=tn.GEODESIC;c=Y.getValueOrDefault(i._arcType,e,c);let u=t._scene.globe,f=t._scene.ellipsoid;c!==tn.NONE&&l(u)&&(nE.ellipsoid=f,nE.positions=r,nE.granularity=Y.getValueOrUndefined(i._granularity,e),nE.height=Ri.extractHeights(r,f),c===tn.GEODESIC?r=Ri.generateCartesianArc(nE):r=Ri.generateCartesianRhumbArc(nE)),a.show=!0,a.positions=r.slice(),a.material=nr.getValue(e,t.fillMaterialProperty,a.material),a.width=Y.getValueOrDefault(i._width,e,1),a.distanceDisplayCondition=Y.getValueOrUndefined(i._distanceDisplayCondition,e,a.distanceDisplayCondition)};kD.prototype.getBoundingSphere=function(e){if(this._geometryUpdater.clampToGround){let t=this._groundPolylinePrimitive;if(l(t)&&t.show&&t.ready){let n=t.getGeometryInstanceAttributes(this._geometryUpdater._entity);if(l(n)&&l(n.boundingSphere))return se.clone(n.boundingSphere,e),dt.DONE}return l(t)&&!t.ready?dt.PENDING:dt.DONE}else{let t=Yde(this);if(t.show&&t.positions.length>0)return se.fromPoints(t.positions,e),dt.DONE}return dt.FAILED};kD.prototype.isDestroyed=function(){return!1};kD.prototype.destroy=function(){let t=this._geometryUpdater._scene.id+this._primitives._guid,n=dk[t];l(n)&&(n.remove(this._line),n.length===0&&(this._primitives.removeAndDestroy(n),delete dk[t])),l(this._groundPolylinePrimitive)&&this._groundPrimitives.remove(this._groundPolylinePrimitive),ue(this)};var hk=Bd;var xet=new z,bet=new Ft,Tet=new Ft;function kd(e,t,n,i,o){let r;n instanceof Gt?r=ns:r=xa,this.orderedGroundPrimitives=e,this.classificationType=t,this.appearanceType=r,this.materialProperty=n,this.updaters=new St,this.createPrimitive=!0,this.primitive=void 0,this.oldPrimitive=void 0,this.geometry=new St,this.material=void 0,this.updatersWithAttributes=new St,this.attributes=new St,this.invalidated=!1,this.removeMaterialSubscription=n.definitionChanged.addEventListener(kd.prototype.onMaterialChanged,this),this.subscriptions=new St,this.showsUpdated=new St,this.zIndex=i,this._asynchronous=o}kd.prototype.onMaterialChanged=function(){this.invalidated=!0};kd.prototype.isMaterial=function(e){let t=this.materialProperty,n=e.fillMaterialProperty;return n===t||n instanceof Gt&&t instanceof Gt?!0:l(t)&&t.equals(n)};kd.prototype.add=function(e,t,n){let i=t.id;if(this.updaters.set(i,t),this.geometry.set(i,n),!t.hasConstantFill||!t.fillMaterialProperty.isConstant||!Y.isConstant(t.distanceDisplayConditionProperty))this.updatersWithAttributes.set(i,t);else{let o=this;this.subscriptions.set(i,t.entity.definitionChanged.addEventListener(function(r,s,a,c){s==="isShowing"&&o.showsUpdated.set(t.id,t)}))}this.createPrimitive=!0};kd.prototype.remove=function(e){let t=e.id;if(this.createPrimitive=this.geometry.remove(t)||this.createPrimitive,this.updaters.remove(t)){this.updatersWithAttributes.remove(t);let n=this.subscriptions.get(t);return l(n)&&(n(),this.subscriptions.remove(t)),!0}return!1};kd.prototype.update=function(e){let t=!0,n=this.primitive,i=this.orderedGroundPrimitives,o=this.geometry.values,r;if(this.createPrimitive){if(o.length>0)l(n)&&(l(this.oldPrimitive)?i.remove(n):this.oldPrimitive=n),n=new Eh({show:!1,asynchronous:this._asynchronous,geometryInstances:o.slice(),appearance:new this.appearanceType,classificationType:this.classificationType}),this.appearanceType===xa&&(this.material=nr.getValue(e,this.materialProperty,this.material),n.appearance.material=this.material),i.add(n,this.zIndex),t=!1;else{l(n)&&(i.remove(n),n=void 0);let a=this.oldPrimitive;l(a)&&(i.remove(a),this.oldPrimitive=void 0)}this.attributes.removeAll(),this.primitive=n,this.createPrimitive=!1}else if(l(n)&&n.ready){n.show=!0,l(this.oldPrimitive)&&(i.remove(this.oldPrimitive),this.oldPrimitive=void 0),this.appearanceType===xa&&(this.material=nr.getValue(e,this.materialProperty,this.material),this.primitive.appearance.material=this.material);let s=this.updatersWithAttributes.values,a=s.length;for(r=0;r<a;r++){let c=s[r],u=c.entity,f=this.geometry.get(c.id),d=this.attributes.get(f.id.id);if(l(d)||(d=n.getGeometryInstanceAttributes(f.id),this.attributes.set(f.id.id,d)),!c.fillMaterialProperty.isConstant){let x=c.fillMaterialProperty.color,b=Y.getValueOrDefault(x,e,z.WHITE,xet);z.equals(d._lastColor,b)||(d._lastColor=z.clone(b,d._lastColor),d.color=qt.toValue(b,d.color))}let p=u.isShowing&&(c.hasConstantFill||c.isFilled(e)),g=d.show[0]===1;p!==g&&(d.show=gn.toValue(p,d.show));let m=c.distanceDisplayConditionProperty;if(!Y.isConstant(m)){let x=Y.getValueOrDefault(m,e,Tet,bet);Ft.equals(x,d._lastDistanceDisplayCondition)||(d._lastDistanceDisplayCondition=Ft.clone(x,d._lastDistanceDisplayCondition),d.distanceDisplayCondition=Bn.toValue(x,d.distanceDisplayCondition))}}this.updateShows(n)}else l(n)&&!n.ready&&(t=!1);return t};kd.prototype.updateShows=function(e){let t=this.showsUpdated.values,n=t.length;for(let i=0;i<n;i++){let o=t[i],r=o.entity,s=this.geometry.get(o.id),a=this.attributes.get(s.id.id);l(a)||(a=e.getGeometryInstanceAttributes(s.id),this.attributes.set(s.id.id,a));let c=r.isShowing,u=a.show[0]===1;c!==u&&(a.show=gn.toValue(c,a.show),s.attributes.show.value[0]=a.show[0])}this.showsUpdated.removeAll()};kd.prototype.contains=function(e){return this.updaters.contains(e.id)};kd.prototype.getBoundingSphere=function(e,t){let n=this.primitive;if(!n.ready)return dt.PENDING;let i=n.getGeometryInstanceAttributes(e.entity);return!l(i)||!l(i.boundingSphere)||l(i.show)&&i.show[0]===0?dt.FAILED:(i.boundingSphere.clone(t),dt.DONE)};kd.prototype.destroy=function(){let e=this.primitive,t=this.orderedGroundPrimitives;l(e)&&t.remove(e);let n=this.oldPrimitive;l(n)&&t.remove(n),this.removeMaterialSubscription()};function iE(e,t,n){this._items=[],this._orderedGroundPrimitives=e,this._classificationType=t,this._asynchronous=y(n,!0)}iE.prototype.add=function(e,t){let n=this._items,i=n.length,o=t.createFillGeometryInstance(e),r=Y.getValueOrDefault(t.zIndex,0);for(let a=0;a<i;++a){let c=n[a];if(c.isMaterial(t)&&c.zIndex===r){c.add(e,t,o);return}}let s=new kd(this._orderedGroundPrimitives,this._classificationType,t.fillMaterialProperty,r,this._asynchronous);s.add(e,t,o),n.push(s)};iE.prototype.remove=function(e){let t=this._items,n=t.length;for(let i=n-1;i>=0;i--){let o=t[i];if(o.remove(e)){o.updaters.length===0&&(t.splice(i,1),o.destroy());break}}};iE.prototype.update=function(e){let t,n=this._items,i=n.length;for(t=i-1;t>=0;t--){let r=n[t];if(r.invalidated){n.splice(t,1);let s=r.updaters.values,a=s.length;for(let c=0;c<a;c++)this.add(e,s[c]);r.destroy()}}let o=!0;for(t=0;t<n.length;t++)o=n[t].update(e)&&o;return o};iE.prototype.getBoundingSphere=function(e,t){let n=this._items,i=n.length;for(let o=0;o<i;o++){let r=n[o];if(r.contains(e))return r.getBoundingSphere(e,t)}return dt.FAILED};iE.prototype.removeAllPrimitives=function(){let e=this._items,t=e.length;for(let n=0;n<t;n++)e[n].destroy();this._items.length=0};var mk=iE;var Aet=[];function Xde(e,t){let n=e._batches,i=n.length;for(let o=0;o<i;o++)n[o].remove(t)}function Kde(e,t,n){if(n.isDynamic){e._dynamicBatch.add(t,n);return}if(n.clampToGround&&n.fillEnabled){let s=n.classificationTypeProperty.getValue(t);e._groundBatches[s].add(t,n);return}let i;n.fillEnabled&&(i=n.shadowsProperty.getValue(t));let o=0;l(n.depthFailMaterialProperty)&&(o=n.depthFailMaterialProperty instanceof Gt?1:2);let r;l(i)&&(r=i+o*yn.NUMBER_OF_SHADOW_MODES),n.fillEnabled&&(n.fillMaterialProperty instanceof Gt?e._colorBatches[r].add(t,n):e._materialBatches[r].add(t,n))}function lm(e,t,n,i){i=y(i,e.groundPrimitives),n=y(n,e.primitives),this._scene=e,this._primitives=n,this._entityCollection=void 0,this._addedObjects=new St,this._removedObjects=new St,this._changedObjects=new St;let o,r=yn.NUMBER_OF_SHADOW_MODES;for(this._colorBatches=new Array(r*3),this._materialBatches=new Array(r*3),o=0;o<r;++o)this._colorBatches[o]=new Ld(n,ns,void 0,!1,o),this._materialBatches[o]=new Fd(n,xa,void 0,!1,o),this._colorBatches[o+r]=new Ld(n,ns,ns,!1,o),this._materialBatches[o+r]=new Fd(n,xa,ns,!1,o),this._colorBatches[o+r*2]=new Ld(n,ns,xa,!1,o),this._materialBatches[o+r*2]=new Fd(n,xa,xa,!1,o);this._dynamicBatch=new MC(n,i);let s=kn.NUMBER_OF_CLASSIFICATION_TYPES;for(this._groundBatches=new Array(s),o=0;o<s;++o)this._groundBatches[o]=new mk(i,o);this._batches=this._colorBatches.concat(this._materialBatches,this._dynamicBatch,this._groundBatches),this._subscriptions=new St,this._updaters=new St,this._entityCollection=t,t.collectionChanged.addEventListener(lm.prototype._onCollectionChanged,this),this._onCollectionChanged(t,t.values,Aet)}lm.prototype.update=function(e){let t=this._addedObjects,n=t.values,i=this._removedObjects,o=i.values,r=this._changedObjects,s=r.values,a,c,u,f;for(a=s.length-1;a>-1;a--)c=s[a],u=c.id,f=this._updaters.get(u),f.entity===c?(Xde(this,f),Kde(this,e,f)):(o.push(c),n.push(c));for(a=o.length-1;a>-1;a--)c=o[a],u=c.id,f=this._updaters.get(u),Xde(this,f),f.destroy(),this._updaters.remove(u),this._subscriptions.get(u)(),this._subscriptions.remove(u);for(a=n.length-1;a>-1;a--)c=n[a],u=c.id,f=new hk(c,this._scene),this._updaters.set(u,f),Kde(this,e,f),this._subscriptions.set(u,f.geometryChanged.addEventListener(lm._onGeometryChanged,this));t.removeAll(),i.removeAll(),r.removeAll();let d=!0,p=this._batches,g=p.length;for(a=0;a<g;a++)d=p[a].update(e)&&d;return d};var Cet=[],Eet=new se;lm.prototype.getBoundingSphere=function(e,t){let n=Cet,i=Eet,o=0,r=dt.DONE,s=this._batches,a=s.length,c=this._updaters.get(e.id);for(let u=0;u<a;u++){if(r=s[u].getBoundingSphere(c,i),r===dt.PENDING)return dt.PENDING;r===dt.DONE&&(n[o]=se.clone(i,n[o]),o++)}return o===0?dt.FAILED:(n.length=o,se.fromBoundingSpheres(n,t),dt.DONE)};lm.prototype.isDestroyed=function(){return!1};lm.prototype.destroy=function(){this._entityCollection.collectionChanged.removeEventListener(lm.prototype._onCollectionChanged,this),this._addedObjects.removeAll(),this._removedObjects.removeAll();let e,t=this._batches,n=t.length;for(e=0;e<n;e++)t[e].removeAllPrimitives();let i=this._subscriptions.values;for(n=i.length,e=0;e<n;e++)i[e]();return this._subscriptions.removeAll(),ue(this)};lm._onGeometryChanged=function(e){let t=this._removedObjects,n=this._changedObjects,i=e.entity,o=i.id;!l(t.get(o))&&!l(n.get(o))&&n.set(o,i)};lm.prototype._onCollectionChanged=function(e,t,n){let i=this._addedObjects,o=this._removedObjects,r=this._changedObjects,s,a,c;for(s=n.length-1;s>-1;s--)c=n[s],a=c.id,i.remove(a)||(o.set(a,c),r.remove(a));for(s=t.length-1;s>-1;s--)c=t[s],a=c.id,o.remove(a)?r.set(a,c):i.set(a,c)};var pk=lm;function Sl(e){dl.initializeTerrainHeights(),Eh.initializeTerrainHeights();let t=e.scene,n=e.dataSourceCollection;this._eventHelper=new _r,this._eventHelper.add(n.dataSourceAdded,this._onDataSourceAdded,this),this._eventHelper.add(n.dataSourceRemoved,this._onDataSourceRemoved,this),this._eventHelper.add(n.dataSourceMoved,this._onDataSourceMoved,this),this._eventHelper.add(t.postRender,this._postRender,this),this._dataSourceCollection=n,this._scene=t,this._visualizersCallback=y(e.visualizersCallback,Sl.defaultVisualizersCallback);let i=!1,o=new hu,r=new hu;n.length>0&&(t.primitives.add(o),t.groundPrimitives.add(r),i=!0),this._primitives=o,this._groundPrimitives=r;for(let u=0,f=n.length;u<f;u++)this._onDataSourceAdded(n,n.get(u));let s=new d3;this._onDataSourceAdded(void 0,s),this._defaultDataSource=s;let a,c;if(!i){let u=this,f=function(){t.primitives.add(o),t.groundPrimitives.add(r),a(),c(),u._removeDefaultDataSourceListener=void 0,u._removeDataSourceCollectionListener=void 0};a=s.entities.collectionChanged.addEventListener(f),c=n.dataSourceAdded.addEventListener(f)}this._removeDefaultDataSourceListener=a,this._removeDataSourceCollectionListener=c,this._ready=!1}var oE=[];Sl.registerVisualizer=function(e){oE.includes(e)||oE.push(e)};Sl.unregisterVisualizer=function(e){if(oE.includes(e)){let t=oE.indexOf(e);oE.splice(t,1)}};Sl.defaultVisualizersCallback=function(e,t,n){let i=n.entities;return[new qM(t,i),new sk(e,i,n._primitives,n._groundPrimitives),new ak(t,i),new lk(e,i),new $B(e,i),new fk(t,i),new uk(e,i),new pk(e,i,n._primitives,n._groundPrimitives),...oE.map(o=>new o(e,i))]};Object.defineProperties(Sl.prototype,{scene:{get:function(){return this._scene}},dataSources:{get:function(){return this._dataSourceCollection}},defaultDataSource:{get:function(){return this._defaultDataSource}},ready:{get:function(){return this._ready}}});Sl.prototype.isDestroyed=function(){return!1};Sl.prototype.destroy=function(){this._eventHelper.removeAll();let e=this._dataSourceCollection;for(let t=0,n=e.length;t<n;++t)this._onDataSourceRemoved(this._dataSourceCollection,e.get(t));return this._onDataSourceRemoved(void 0,this._defaultDataSource),l(this._removeDefaultDataSourceListener)?(this._removeDefaultDataSourceListener(),this._removeDataSourceCollectionListener()):(this._scene.primitives.remove(this._primitives),this._scene.groundPrimitives.remove(this._groundPrimitives)),ue(this)};Sl.prototype.update=function(e){if(!ui.initialized)return this._ready=!1,!1;let t=!0,n,i,o,r,s=this._dataSourceCollection,a=s.length;for(n=0;n<a;n++){let c=s.get(n);for(l(c.update)&&(t=c.update(e)&&t),o=c._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t}for(o=this._defaultDataSource._visualizers,r=o.length,i=0;i<r;i++)t=o[i].update(e)&&t;return!this._ready&&t&&this._scene.requestRender(),this._ready=t,t};Sl.prototype._postRender=function(){let e=this._scene.frameState,t=this._dataSourceCollection,n=t.length;for(let i=0;i<n;i++){let o=t.get(i),r=o.credit;l(r)&&e.creditDisplay.addCreditToNextFrame(r);let s=o._resourceCredits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)e.creditDisplay.addCreditToNextFrame(s[c])}}};var vet=[],wet=new se;Sl.prototype.getBoundingSphere=function(e,t,n){if(!this._ready&&!t)return dt.PENDING;let i,o,r=this._defaultDataSource;if(!r.entities.contains(e)){r=void 0;let p=this._dataSourceCollection;for(o=p.length,i=0;i<o;i++){let g=p.get(i);if(g.entities.contains(e)){r=g;break}}}if(!l(r))return dt.FAILED;let s=vet,a=wet,c=0,u=dt.DONE,f=r._visualizers,d=f.length;for(i=0;i<d;i++){let p=f[i];if(l(p.getBoundingSphere)){if(u=f[i].getBoundingSphere(e,a),!t&&u===dt.PENDING)return dt.PENDING;u===dt.DONE&&(s[c]=se.clone(a,s[c]),c++)}}return c===0?dt.FAILED:(s.length=c,se.fromBoundingSpheres(s,n),dt.DONE)};Sl.prototype._onDataSourceAdded=function(e,t){let n=this._scene,i=this._primitives,o=this._groundPrimitives,r=i.add(new hu),s=o.add(new P3);t._primitives=r,t._groundPrimitives=s;let a=t.clustering;a._initialize(n),r.add(a),t._visualizers=this._visualizersCallback(n,a,t)};Sl.prototype._onDataSourceRemoved=function(e,t){let n=this._primitives,i=this._groundPrimitives,o=t._primitives,r=t._groundPrimitives,s=t.clustering;o.remove(s);let a=t._visualizers,c=a.length;for(let u=0;u<c;u++)a[u].destroy();n.remove(o),i.remove(r),t._visualizers=void 0};Sl.prototype._onDataSourceMoved=function(e,t,n){let i=this._primitives,o=this._groundPrimitives,r=e._primitives,s=e._groundPrimitives;t===n+1?(i.raise(r),o.raise(s)):t===n-1?(i.lower(r),o.lower(s)):t===0?(i.lowerToBottom(r),o.lowerToBottom(s),i.raise(r),o.raise(s)):(i.raiseToTop(r),o.raiseToTop(s))};var _k=Sl;function I7(e,t,n){this.heading=y(e,0),this.pitch=y(t,0),this.range=y(n,0)}I7.clone=function(e,t){if(l(e))return l(t)||(t=new I7),t.heading=e.heading,t.pitch=e.pitch,t.range=e.range,t};var Vd=I7;var Zde=new $,$de=new $,Qde=new $,Det=new F,gk=new h,Jde=new h,P7=new h,R7=new h,ehe=new h,the=new h,rE=new K,Iet=1.25;function Pet(e,t,n,i,o,r,s){let a=e.scene.mode,c=o.getValue(r,e._lastCartesian);if(l(c)){let u=!1,f=!1,d,p,g;if(a===ne.SCENE3D){K.addSeconds(r,.001,rE);let A=o.getValue(rE,gk);if(l(A)||(K.addSeconds(r,-.001,rE),A=o.getValue(rE,gk),f=!0),l(A)){let C=Nt.computeFixedToIcrfMatrix(r,Zde),S=Nt.computeFixedToIcrfMatrix(rE,$de),v;!l(C)||!l(S)?(v=Nt.computeTemeToPseudoFixedMatrix(r,Qde),C=$.transpose(v,Zde),S=Nt.computeTemeToPseudoFixedMatrix(rE,$de),$.transpose(S,S)):v=$.transpose(C,Qde);let D=$.multiplyByVector(C,c,ehe),O=$.multiplyByVector(S,A,the);h.subtract(D,O,R7);let R=h.magnitude(R7)*1e3,M=P.GRAVITATIONALPARAMETER,L=-M/(R*R-2*M/h.magnitude(D));L<0||L>Iet*s.maximumRadius?(d=Jde,h.normalize(c,d),h.negate(d,d),g=h.clone(h.UNIT_Z,P7),p=h.cross(g,d,gk),h.magnitude(p)>P.EPSILON7&&(h.normalize(d,d),h.normalize(p,p),g=h.cross(d,p,P7),h.normalize(g,g),u=!0)):h.equalsEpsilon(c,A,P.EPSILON7)||(g=Jde,h.normalize(D,g),h.normalize(O,O),p=h.cross(g,O,P7),f&&(p=h.multiplyByScalar(p,-1,p)),h.equalsEpsilon(p,h.ZERO,P.EPSILON7)||(d=h.cross(p,g,gk),$.multiplyByVector(v,d,d),$.multiplyByVector(v,p,p),$.multiplyByVector(v,g,g),h.normalize(d,d),h.normalize(p,p),h.normalize(g,g),u=!0))}}l(e.boundingSphere)&&(c=e.boundingSphere.center);let m,x,b;i&&(m=h.clone(t.position,R7),x=h.clone(t.direction,ehe),b=h.clone(t.up,the));let T=Det;u?(T[0]=d.x,T[1]=d.y,T[2]=d.z,T[3]=0,T[4]=p.x,T[5]=p.y,T[6]=p.z,T[7]=0,T[8]=g.x,T[9]=g.y,T[10]=g.z,T[11]=0,T[12]=c.x,T[13]=c.y,T[14]=c.z,T[15]=0):Nt.eastNorthUpToFixedFrame(c,s,T),t._setTransform(T),i&&(h.clone(m,t.position),h.clone(x,t.direction),h.clone(b,t.up),h.cross(x,b,t.right))}if(n){let u=a===ne.SCENE2D||h.equals(e._offset3D,h.ZERO)?void 0:e._offset3D;t.lookAtTransform(t.transform,u)}}function VD(e,t,n){this.entity=e,this.scene=t,this.ellipsoid=y(n,ee.default),this.boundingSphere=void 0,this._lastEntity=void 0,this._mode=void 0,this._lastCartesian=new h,this._defaultOffset3D=void 0,this._offset3D=new h}Object.defineProperties(VD,{defaultOffset3D:{get:function(){return this._defaultOffset3D},set:function(e){this._defaultOffset3D=h.clone(e,new h)}}});VD.defaultOffset3D=new h(-14e3,3500,3500);var yk=new Vd,Ret=new h;VD.prototype.update=function(e,t){let n=this.scene,i=this.ellipsoid,o=n.mode;if(o===ne.MORPHING)return;let r=this.entity,s=r.position;if(!l(s))return;let a=r!==this._lastEntity,c=o!==this._mode,u=n.camera,f=a||c,d=!0;if(a){let p=r.viewFrom,g=l(p);if(!g&&l(t)){yk.pitch=-P.PI_OVER_FOUR,yk.range=0;let m=s.getValue(e,Ret);if(l(m)){let x=2-1/Math.max(1,h.magnitude(m)/i.maximumRadius);yk.pitch*=x}u.viewBoundingSphere(t,yk),this.boundingSphere=t,f=!1,d=!1}else(!g||!l(p.getValue(e,this._offset3D)))&&h.clone(VD._defaultOffset3D,this._offset3D)}else!c&&this._mode!==ne.SCENE2D&&h.clone(u.position,this._offset3D);this._lastEntity=r,this._mode=o,Pet(this,u,f,d,s,e,i)};var xk=VD;function zD(){this._cache={}}zD.prototype.fromColor=function(e,t){return bk(void 0,void 0,e,t,this._cache)};zD.prototype.fromUrl=function(e,t,n){return bk(e,void 0,t,n,this._cache)};zD.prototype.fromMakiIconId=function(e,t,n){return bk(nn(`Assets/Textures/maki/${encodeURIComponent(e)}.png`),void 0,t,n,this._cache)};zD.prototype.fromText=function(e,t,n){return bk(void 0,e,t,n,this._cache)};var Oet=new z;function Met(e,t,n){e.save(),e.scale(n/24,n/24),e.fillStyle=t.toCssColorString(),e.strokeStyle=t.brighten(.6,Oet).toCssColorString(),e.lineWidth=.846,e.beginPath(),e.moveTo(6.72,.422),e.lineTo(17.28,.422),e.bezierCurveTo(18.553,.422,19.577,1.758,19.577,3.415),e.lineTo(19.577,10.973),e.bezierCurveTo(19.577,12.63,18.553,13.966,17.282,13.966),e.lineTo(14.386,14.008),e.lineTo(11.826,23.578),e.lineTo(9.614,14.008),e.lineTo(6.719,13.965),e.bezierCurveTo(5.446,13.983,4.422,12.629,4.422,10.972),e.lineTo(4.422,3.416),e.bezierCurveTo(4.423,1.76,5.447,.423,6.718,.423),e.closePath(),e.fill(),e.stroke(),e.restore()}function nhe(e,t,n){let i=n/2.5,o=i,r=i;t.width>t.height?r=i*(t.height/t.width):t.width<t.height&&(o=i*(t.width/t.height));let s=Math.round((n-o)/2),a=Math.round(7/24*n-r/2);e.globalCompositeOperation="destination-out",e.drawImage(t,s-1,a,o,r),e.drawImage(t,s,a-1,o,r),e.drawImage(t,s+1,a,o,r),e.drawImage(t,s,a+1,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.BLACK.toCssColorString(),e.fillRect(s-1,a-1,o+2,r+2),e.globalCompositeOperation="destination-out",e.drawImage(t,s,a,o,r),e.globalCompositeOperation="destination-over",e.fillStyle=z.WHITE.toCssColorString(),e.fillRect(s-1,a-2,o+2,r+2)}var UD=new Array(4);function bk(e,t,n,i,o){UD[0]=e,UD[1]=t,UD[2]=n,UD[3]=i;let r=JSON.stringify(UD),s=o[r];if(l(s))return s;let a=document.createElement("canvas");a.width=i,a.height=i;let c=a.getContext("2d");if(Met(c,n,i),l(e)){let f=De.createIfNeeded(e).fetchImage().then(function(d){return nhe(c,d,i),o[r]=a,a});return o[r]=f,f}else if(l(t)){let u=jA(t,{font:`bold ${i}px sans-serif`});nhe(c,u,i)}return o[r]=a,a}var _y=zD;function O7(e){return e}function Tk(e){if(e==null)return O7;var t,n,i=e.scale[0],o=e.scale[1],r=e.translate[0],s=e.translate[1];return function(a,c){c||(t=n=0);var u=2,f=a.length,d=new Array(f);for(d[0]=(t+=a[0])*i+r,d[1]=(n+=a[1])*o+s;u<f;)d[u]=a[u],++u;return d}}function ihe(e,t){for(var n,i=e.length,o=i-t;o<--i;)n=e[o],e[o++]=e[i],e[i]=n}function M7(e,t){return typeof t=="string"&&(t=e.objects[t]),t.type==="GeometryCollection"?{type:"FeatureCollection",features:t.geometries.map(function(n){return ohe(e,n)})}:ohe(e,t)}function ohe(e,t){var n=t.id,i=t.bbox,o=t.properties==null?{}:t.properties,r=L7(e,t);return n==null&&i==null?{type:"Feature",properties:o,geometry:r}:i==null?{type:"Feature",id:n,properties:o,geometry:r}:{type:"Feature",id:n,bbox:i,properties:o,geometry:r}}function L7(e,t){var n=Tk(e.transform),i=e.arcs;function o(f,d){d.length&&d.pop();for(var p=i[f<0?~f:f],g=0,m=p.length;g<m;++g)d.push(n(p[g],g));f<0&&ihe(d,m)}function r(f){return n(f)}function s(f){for(var d=[],p=0,g=f.length;p<g;++p)o(f[p],d);return d.length<2&&d.push(d[0]),d}function a(f){for(var d=s(f);d.length<4;)d.push(d[0]);return d}function c(f){return f.map(a)}function u(f){var d=f.type,p;switch(d){case"GeometryCollection":return{type:d,geometries:f.geometries.map(u)};case"Point":p=r(f.coordinates);break;case"MultiPoint":p=f.coordinates.map(r);break;case"LineString":p=s(f.arcs);break;case"MultiLineString":p=f.arcs.map(s);break;case"Polygon":p=c(f.arcs);break;case"MultiPolygon":p=f.arcs.map(c);break;default:return null}return{type:d,coordinates:p}}return u(t)}function Ak(e){return h.fromDegrees(e[0],e[1],e[2])}var N7={"urn:ogc:def:crs:OGC:1.3:CRS84":Ak,"EPSG:4326":Ak,"urn:ogc:def:crs:EPSG::4326":Ak},rhe={},she={},F7=48,B7,k7=z.ROYALBLUE,V7=z.YELLOW,U7=2,z7=z.fromBytes(255,255,0,100),H7=!1,ket={small:24,medium:48,large:64},Vet=["title","description","marker-size","marker-symbol","marker-color","stroke","stroke-opacity","stroke-width","fill","fill-opacity"];function ahe(e,t){let n="";for(let i in e)if(e.hasOwnProperty(i)){if(i===t||Vet.indexOf(i)!==-1)continue;let o=e[i];l(o)&&(typeof o=="object"?n+=`<tr><th>${i}</th><td>${ahe(o)}</td></tr>`:n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}return n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function Uet(e,t,n){let i;return function(o,r){return l(i)||(i=e(t,n)),i}}function zet(e,t){return new Ih(Uet(ahe,e,t),!0)}function Ck(e,t,n){let i=e.id;if(!l(i)||e.type!=="Feature")i=zn();else{let s=2,a=i;for(;l(t.getById(a));)a=`${i}_${s}`,s++;i=a}let o=t.getOrCreateEntity(i),r=e.properties;if(l(r)){o.properties=r;let s,a=r.title;if(l(a))o.name=a,s="title";else{let u=Number.MAX_VALUE;for(let f in r)if(r.hasOwnProperty(f)&&r[f]){let d=f.toLowerCase();if(u>1&&d==="title"){u=1,s=f;break}else u>2&&d==="name"?(u=2,s=f):u>3&&/title/i.test(f)?(u=3,s=f):u>4&&/name/i.test(f)&&(u=4,s=f)}l(s)&&(o.name=r[s])}let c=r.description;c!==null&&(o.description=l(c)?new Xn(c):n(r,s))}return o}function G7(e,t){let n=new Array(e.length);for(let i=0;i<e.length;i++)n[i]=t(e[i]);return n}var che={Feature:uhe,FeatureCollection:Het,GeometryCollection:fhe,LineString:_he,MultiLineString:ghe,MultiPoint:mhe,MultiPolygon:bhe,Point:hhe,Polygon:xhe,Topology:The},lhe={GeometryCollection:fhe,LineString:_he,MultiLineString:ghe,MultiPoint:mhe,MultiPolygon:bhe,Point:hhe,Polygon:xhe,Topology:The};function uhe(e,t,n,i,o){if(t.geometry===null){Ck(t,e._entityCollection,o.describe);return}if(!l(t.geometry))throw new ce("feature.geometry is required.");let r=t.geometry.type,s=lhe[r];if(!l(s))throw new ce(`Unknown geometry type: ${r}`);s(e,t,t.geometry,i,o)}function Het(e,t,n,i,o){let r=t.features;for(let s=0,a=r.length;s<a;s++)uhe(e,r[s],void 0,i,o)}function fhe(e,t,n,i,o){let r=n.geometries;for(let s=0,a=r.length;s<a;s++){let c=r[s],u=c.type,f=lhe[u];if(!l(f))throw new ce(`Unknown geometry type: ${u}`);f(e,t,c,i,o)}}function dhe(e,t,n,i,o){let r=o.markerSymbol,s=o.markerColor,a=o.markerSize,c=t.properties;if(l(c)){let g=c["marker-color"];l(g)&&(s=z.fromCssColorString(g)),a=y(ket[c["marker-size"]],a);let m=c["marker-symbol"];l(m)&&(r=m)}let u;l(r)?r.length===1?u=e._pinBuilder.fromText(r.toUpperCase(),s,a):u=e._pinBuilder.fromMakiIconId(r,s,a):u=e._pinBuilder.fromColor(s,a);let f=new Ac;f.verticalOrigin=new Xn(On.BOTTOM),i.length===2&&o.clampToGround&&(f.heightReference=Ke.CLAMP_TO_GROUND);let d=Ck(t,e._entityCollection,o.describe);d.billboard=f,d.position=new hl(n(i));let p=Promise.resolve(u).then(function(g){f.image=new Xn(g)}).catch(function(){f.image=new Xn(e._pinBuilder.fromColor(s,a))});e._promises.push(p)}function hhe(e,t,n,i,o){dhe(e,t,i,n.coordinates,o)}function mhe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)dhe(e,t,i,r[s],o)}function phe(e,t,n,i,o){let r=o.strokeMaterialProperty,s=o.strokeWidthProperty,a=t.properties;if(l(a)){let f=a["stroke-width"];l(f)&&(s=new Xn(f));let d,p=a.stroke;l(p)&&(d=z.fromCssColorString(p));let g=a["stroke-opacity"];l(g)&&g!==1&&(l(d)||(d=r.color.getValue().clone()),d.alpha=g),l(d)&&(r=new Gt(d))}let c=Ck(t,e._entityCollection,o.describe),u=new wc;c.polyline=u,u.clampToGround=o.clampToGround,u.material=r,u.width=s,u.positions=new Xn(G7(i,n)),u.arcType=tn.RHUMB}function _he(e,t,n,i,o){phe(e,t,i,n.coordinates,o)}function ghe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)phe(e,t,i,r[s],o)}function yhe(e,t,n,i,o){if(i.length===0||i[0].length===0)return;let r=o.strokeMaterialProperty.color,s=o.fillMaterialProperty,a=o.strokeWidthProperty,c=t.properties;if(l(c)){let g=c["stroke-width"];l(g)&&(a=new Xn(g));let m,x=c.stroke;l(x)&&(m=z.fromCssColorString(x));let b=c["stroke-opacity"];l(b)&&b!==1&&(l(m)||(m=r.getValue().clone()),m.alpha=b),l(m)&&(r=new Xn(m));let T,A=c.fill,C=s.color.getValue();l(A)&&(T=z.fromCssColorString(A),T.alpha=C.alpha),b=c["fill-opacity"],l(b)&&b!==C.alpha&&(l(T)||(T=C.clone()),T.alpha=b),l(T)&&(s=new Gt(T))}let u=new wh;u.outline=new Xn(!0),u.outlineColor=r,u.outlineWidth=a,u.material=s,u.arcType=tn.RHUMB;let f=[];for(let g=1,m=i.length;g<m;g++)f.push(new qa(G7(i[g],n)));let d=i[0];u.hierarchy=new Xn(new qa(G7(d,n),f)),d[0].length>2?u.perPositionHeight=new Xn(!0):o.clampToGround||(u.height=0);let p=Ck(t,e._entityCollection,o.describe);p.polygon=u}function xhe(e,t,n,i,o){yhe(e,t,i,n.coordinates,o)}function bhe(e,t,n,i,o){let r=n.coordinates;for(let s=0;s<r.length;s++)yhe(e,t,i,r[s],o)}function The(e,t,n,i,o){for(let r in n.objects)if(n.objects.hasOwnProperty(r)){let s=M7(n,n.objects[r]),a=che[s.type];a(e,s,s,i,o)}}function gy(e){this._name=e,this._changed=new me,this._error=new me,this._isLoading=!1,this._loading=new me,this._entityCollection=new oa(this),this._promises=[],this._pinBuilder=new _y,this._entityCluster=new vf,this._credit=void 0,this._resourceCredits=[]}gy.load=function(e,t){return new gy().load(e,t)};Object.defineProperties(gy,{markerSize:{get:function(){return F7},set:function(e){F7=e}},markerSymbol:{get:function(){return B7},set:function(e){B7=e}},markerColor:{get:function(){return k7},set:function(e){k7=e}},stroke:{get:function(){return V7},set:function(e){V7=e}},strokeWidth:{get:function(){return U7},set:function(e){U7=e}},fill:{get:function(){return z7},set:function(e){z7=e}},clampToGround:{get:function(){return H7},set:function(e){H7=e}},crsNames:{get:function(){return N7}},crsLinkHrefs:{get:function(){return rhe}},crsLinkTypes:{get:function(){return she}}});Object.defineProperties(gy.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{value:void 0,writable:!1},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}}});gy.prototype.load=function(e,t){return Ahe(this,e,t,!0)};gy.prototype.process=function(e,t){return Ahe(this,e,t,!1)};function Ahe(e,t,n,i){qr.setLoading(e,!0),n=y(n,y.EMPTY_OBJECT);let o=n.credit;typeof o=="string"&&(o=new wt(o)),e._credit=o;let r=t,s=n.sourceUri;if(typeof t=="string"||t instanceof De){t=De.createIfNeeded(t),r=t.fetchJson(),s=y(s,t.getUrlComponent());let a=e._resourceCredits,c=t.credits;if(l(c)){let u=c.length;for(let f=0;f<u;f++)a.push(c[f])}}return n={describe:y(n.describe,zet),markerSize:y(n.markerSize,F7),markerSymbol:y(n.markerSymbol,B7),markerColor:y(n.markerColor,k7),strokeWidthProperty:new Xn(y(n.strokeWidth,U7)),strokeMaterialProperty:new Gt(y(n.stroke,V7)),fillMaterialProperty:new Gt(y(n.fill,z7)),clampToGround:y(n.clampToGround,H7)},Promise.resolve(r).then(function(a){return Get(e,a,n,s,i)}).catch(function(a){throw qr.setLoading(e,!1),e._error.raiseEvent(e,a),a})}gy.prototype.update=function(e){return!0};function Get(e,t,n,i,o){let r;l(i)&&(r=Jg(i)),l(r)&&e._name!==r&&(e._name=r,e._changed.raiseEvent(e));let s=che[t.type];if(!l(s))throw new ce(`Unsupported GeoJSON object type: ${t.type}`);let a=t.crs,c=a!==null?Ak:null;if(l(a)){if(!l(a.properties))throw new ce("crs.properties is undefined.");let u=a.properties;if(a.type==="name"){if(c=N7[u.name],!l(c))throw new ce(`Unknown crs name: ${u.name}`)}else if(a.type==="link"){let f=rhe[u.href];if(l(f)||(f=she[u.type]),!l(f))throw new ce(`Unable to resolve crs link: ${JSON.stringify(u)}`);c=f(u)}else if(a.type==="EPSG"){if(c=N7[`EPSG:${u.code}`],!l(c))throw new ce(`Unknown crs EPSG code: ${u.code}`)}else throw new ce(`Unknown crs type: ${a.type}`)}return Promise.resolve(c).then(function(u){return o&&e._entityCollection.removeAll(),u!==null&&s(e,t,t,u,n),Promise.all(e._promises).then(function(){return e._promises.length=0,qr.setLoading(e,!1),e})})}var Ek=gy;var Che="4.0.0";function Wet(e){return e===void 0}function gu(e){return typeof e=="boolean"}function Ehe(e,t){for(var n in t)t.hasOwnProperty(n)&&Wet(e[n])&&(e[n]=t[n]);return e}function She(e,t,n){var i;return e.length>t&&(n==null?(n="…",i=3):i=n.length,e=e.substring(0,t-i)+n),e}function Vo(e,t){for(var n=e.length-1;n>=0;n--)e[n]===t&&e.splice(n,1)}function yy(e,t){for(var n=e.length-1;n>=0;n--)t(e[n])===!0&&e.splice(n,1)}function xy(e){throw new Error("Unhandled case for value: '".concat(e,"'"))}var by=/[A-Za-z]/,zs=/[\d]/;var yu=/\s/,Sk=/['"]/,vhe=/[\x00-\x1F\x7F]/,whe=/A-Za-z\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16F1-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2183\u2184\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005\u3006\u3031-\u3035\u303B\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312D\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FD5\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6E5\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC/.source,jet=/\u2700-\u27bf\udde6-\uddff\ud800-\udbff\udc00-\udfff\ufe0e\ufe0f\u0300-\u036f\ufe20-\ufe23\u20d0-\u20f0\ud83c\udffb-\udfff\u200d\u3299\u3297\u303d\u3030\u24c2\ud83c\udd70-\udd71\udd7e-\udd7f\udd8e\udd91-\udd9a\udde6-\uddff\ude01-\ude02\ude1a\ude2f\ude32-\ude3a\ude50-\ude51\u203c\u2049\u25aa-\u25ab\u25b6\u25c0\u25fb-\u25fe\u00a9\u00ae\u2122\u2139\udc04\u2600-\u26FF\u2b05\u2b06\u2b07\u2b1b\u2b1c\u2b50\u2b55\u231a\u231b\u2328\u23cf\u23e9-\u23f3\u23f8-\u23fa\udccf\u2935\u2934\u2190-\u21ff/.source,qet=/\u0300-\u036F\u0483-\u0489\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u0610-\u061A\u064B-\u065F\u0670\u06D6-\u06DC\u06DF-\u06E4\u06E7\u06E8\u06EA-\u06ED\u0711\u0730-\u074A\u07A6-\u07B0\u07EB-\u07F3\u0816-\u0819\u081B-\u0823\u0825-\u0827\u0829-\u082D\u0859-\u085B\u08D4-\u08E1\u08E3-\u0903\u093A-\u093C\u093E-\u094F\u0951-\u0957\u0962\u0963\u0981-\u0983\u09BC\u09BE-\u09C4\u09C7\u09C8\u09CB-\u09CD\u09D7\u09E2\u09E3\u0A01-\u0A03\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A70\u0A71\u0A75\u0A81-\u0A83\u0ABC\u0ABE-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AE2\u0AE3\u0B01-\u0B03\u0B3C\u0B3E-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B62\u0B63\u0B82\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD7\u0C00-\u0C03\u0C3E-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C62\u0C63\u0C81-\u0C83\u0CBC\u0CBE-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CE2\u0CE3\u0D01-\u0D03\u0D3E-\u0D44\u0D46-\u0D48\u0D4A-\u0D4D\u0D57\u0D62\u0D63\u0D82\u0D83\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DF2\u0DF3\u0E31\u0E34-\u0E3A\u0E47-\u0E4E\u0EB1\u0EB4-\u0EB9\u0EBB\u0EBC\u0EC8-\u0ECD\u0F18\u0F19\u0F35\u0F37\u0F39\u0F3E\u0F3F\u0F71-\u0F84\u0F86\u0F87\u0F8D-\u0F97\u0F99-\u0FBC\u0FC6\u102B-\u103E\u1056-\u1059\u105E-\u1060\u1062-\u1064\u1067-\u106D\u1071-\u1074\u1082-\u108D\u108F\u109A-\u109D\u135D-\u135F\u1712-\u1714\u1732-\u1734\u1752\u1753\u1772\u1773\u17B4-\u17D3\u17DD\u180B-\u180D\u1885\u1886\u18A9\u1920-\u192B\u1930-\u193B\u1A17-\u1A1B\u1A55-\u1A5E\u1A60-\u1A7C\u1A7F\u1AB0-\u1ABE\u1B00-\u1B04\u1B34-\u1B44\u1B6B-\u1B73\u1B80-\u1B82\u1BA1-\u1BAD\u1BE6-\u1BF3\u1C24-\u1C37\u1CD0-\u1CD2\u1CD4-\u1CE8\u1CED\u1CF2-\u1CF4\u1CF8\u1CF9\u1DC0-\u1DF5\u1DFB-\u1DFF\u20D0-\u20F0\u2CEF-\u2CF1\u2D7F\u2DE0-\u2DFF\u302A-\u302F\u3099\u309A\uA66F-\uA672\uA674-\uA67D\uA69E\uA69F\uA6F0\uA6F1\uA802\uA806\uA80B\uA823-\uA827\uA880\uA881\uA8B4-\uA8C5\uA8E0-\uA8F1\uA926-\uA92D\uA947-\uA953\uA980-\uA983\uA9B3-\uA9C0\uA9E5\uAA29-\uAA36\uAA43\uAA4C\uAA4D\uAA7B-\uAA7D\uAAB0\uAAB2-\uAAB4\uAAB7\uAAB8\uAABE\uAABF\uAAC1\uAAEB-\uAAEF\uAAF5\uAAF6\uABE3-\uABEA\uABEC\uABED\uFB1E\uFE00-\uFE0F\uFE20-\uFE2F/.source,Yet=whe+jet+qet,Dhe=/0-9\u0660-\u0669\u06F0-\u06F9\u07C0-\u07C9\u0966-\u096F\u09E6-\u09EF\u0A66-\u0A6F\u0AE6-\u0AEF\u0B66-\u0B6F\u0BE6-\u0BEF\u0C66-\u0C6F\u0CE6-\u0CEF\u0D66-\u0D6F\u0DE6-\u0DEF\u0E50-\u0E59\u0ED0-\u0ED9\u0F20-\u0F29\u1040-\u1049\u1090-\u1099\u17E0-\u17E9\u1810-\u1819\u1946-\u194F\u19D0-\u19D9\u1A80-\u1A89\u1A90-\u1A99\u1B50-\u1B59\u1BB0-\u1BB9\u1C40-\u1C49\u1C50-\u1C59\uA620-\uA629\uA8D0-\uA8D9\uA900-\uA909\uA9D0-\uA9D9\uA9F0-\uA9F9\uAA50-\uAA59\uABF0-\uABF9\uFF10-\uFF19/.source,c$n=new RegExp("[".concat(whe+Dhe,"]")),W7=Yet+Dhe,Ud=new RegExp("[".concat(W7,"]"));var vk=function(){function e(t){t===void 0&&(t={}),this.tagName="",this.attrs={},this.innerHTML="",this.tagName=t.tagName||"",this.attrs=t.attrs||{},this.innerHTML=t.innerHtml||t.innerHTML||""}return e.prototype.setTagName=function(t){return this.tagName=t,this},e.prototype.getTagName=function(){return this.tagName||""},e.prototype.setAttr=function(t,n){var i=this.getAttrs();return i[t]=n,this},e.prototype.getAttr=function(t){return this.getAttrs()[t]},e.prototype.setAttrs=function(t){return Object.assign(this.getAttrs(),t),this},e.prototype.getAttrs=function(){return this.attrs||(this.attrs={})},e.prototype.setClass=function(t){return this.setAttr("class",t)},e.prototype.addClass=function(t){for(var n=this.getClass(),i=n?n.split(yu):[],o=t.split(yu),r;r=o.shift();)i.indexOf(r)===-1&&i.push(r);return this.getAttrs().class=i.join(" "),this},e.prototype.removeClass=function(t){for(var n=this.getClass(),i=n?n.split(yu):[],o=t.split(yu),r;i.length&&(r=o.shift());){var s=i.indexOf(r);s!==-1&&i.splice(s,1)}return this.getAttrs().class=i.join(" "),this},e.prototype.getClass=function(){return this.getAttrs().class||""},e.prototype.hasClass=function(t){return(" "+this.getClass()+" ").indexOf(" "+t+" ")!==-1},e.prototype.setInnerHTML=function(t){return this.innerHTML=t,this},e.prototype.setInnerHtml=function(t){return this.setInnerHTML(t)},e.prototype.getInnerHTML=function(){return this.innerHTML||""},e.prototype.getInnerHtml=function(){return this.getInnerHTML()},e.prototype.toAnchorString=function(){var t=this.getTagName(),n=this.buildAttrsStr();return n=n?" "+n:"",["<",t,n,">",this.getInnerHtml(),"</",t,">"].join("")},e.prototype.buildAttrsStr=function(){if(!this.attrs)return"";var t=this.getAttrs(),n=[];for(var i in t)t.hasOwnProperty(i)&&n.push(i+'="'+t[i]+'"');return n.join(" ")},e}();function Ihe(e,t,n){var i,o;n==null?(n="…",o=3,i=8):(o=n.length,i=n.length);var r=function(A){var C={},S=A,v=S.match(/^([a-z]+):\/\//i);return v&&(C.scheme=v[1],S=S.substr(v[0].length)),v=S.match(/^(.*?)(?=(\?|#|\/|$))/i),v&&(C.host=v[1],S=S.substr(v[0].length)),v=S.match(/^\/(.*?)(?=(\?|#|$))/i),v&&(C.path=v[1],S=S.substr(v[0].length)),v=S.match(/^\?(.*?)(?=(#|$))/i),v&&(C.query=v[1],S=S.substr(v[0].length)),v=S.match(/^#(.*?)$/i),v&&(C.fragment=v[1]),C},s=function(A){var C="";return A.scheme&&A.host&&(C+=A.scheme+"://"),A.host&&(C+=A.host),A.path&&(C+="/"+A.path),A.query&&(C+="?"+A.query),A.fragment&&(C+="#"+A.fragment),C},a=function(A,C){var S=C/2,v=Math.ceil(S),D=-1*Math.floor(S),O="";return D<0&&(O=A.substr(D)),A.substr(0,v)+n+O};if(e.length<=t)return e;var c=t-o,u=r(e);if(u.query){var f=u.query.match(/^(.*?)(?=(\?|\#))(.*?)$/i);f&&(u.query=u.query.substr(0,f[1].length),e=s(u))}if(e.length<=t||(u.host&&(u.host=u.host.replace(/^www\./,""),e=s(u)),e.length<=t))return e;var d="";if(u.host&&(d+=u.host),d.length>=c)return u.host.length==t?(u.host.substr(0,t-o)+n).substr(0,c+i):a(d,c).substr(0,c+i);var p="";if(u.path&&(p+="/"+u.path),u.query&&(p+="?"+u.query),p)if((d+p).length>=c){if((d+p).length==t)return(d+p).substr(0,t);var g=c-d.length;return(d+a(p,g)).substr(0,c+i)}else d+=p;if(u.fragment){var m="#"+u.fragment;if((d+m).length>=c){if((d+m).length==t)return(d+m).substr(0,t);var x=c-d.length;return(d+a(m,x)).substr(0,c+i)}else d+=m}if(u.scheme&&u.host){var b=u.scheme+"://";if((d+b).length<c)return(b+d).substr(0,t)}if(d.length<=t)return d;var T="";return c>0&&(T=d.substr(-1*Math.floor(c/2))),(d.substr(0,Math.ceil(c/2))+n+T).substr(0,c+i)}function Phe(e,t,n){if(e.length<=t)return e;var i,o;n==null?(n="…",i=8,o=3):(i=n.length,o=n.length);var r=t-o,s="";return r>0&&(s=e.substr(-1*Math.floor(r/2))),(e.substr(0,Math.ceil(r/2))+n+s).substr(0,r+i)}function Rhe(e,t,n){return She(e,t,n)}var Ohe=function(){function e(t){t===void 0&&(t={}),this.newWindow=!1,this.truncate={},this.className="",this.newWindow=t.newWindow||!1,this.truncate=t.truncate||{},this.className=t.className||""}return e.prototype.build=function(t){return new vk({tagName:"a",attrs:this.createAttrs(t),innerHtml:this.processAnchorText(t.getAnchorText())})},e.prototype.createAttrs=function(t){var n={href:t.getAnchorHref()},i=this.createCssClass(t);return i&&(n.class=i),this.newWindow&&(n.target="_blank",n.rel="noopener noreferrer"),this.truncate&&this.truncate.length&&this.truncate.length<t.getAnchorText().length&&(n.title=t.getAnchorHref()),n},e.prototype.createCssClass=function(t){var n=this.className;if(n){for(var i=[n],o=t.getCssClassSuffixes(),r=0,s=o.length;r<s;r++)i.push(n+"-"+o[r]);return i.join(" ")}else return""},e.prototype.processAnchorText=function(t){return t=this.doTruncate(t),t},e.prototype.doTruncate=function(t){var n=this.truncate;if(!n||!n.length)return t;var i=n.length,o=n.location;return o==="smart"?Ihe(t,i):o==="middle"?Phe(t,i):Rhe(t,i)},e}();var j7=function(e,t){return j7=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(n,i){n.__proto__=i}||function(n,i){for(var o in i)Object.prototype.hasOwnProperty.call(i,o)&&(n[o]=i[o])},j7(e,t)};function um(e,t){if(typeof t!="function"&&t!==null)throw new TypeError("Class extends value "+String(t)+" is not a constructor or null");j7(e,t);function n(){this.constructor=e}e.prototype=t===null?Object.create(t):(n.prototype=t.prototype,new n)}var Hs=function(){return Hs=Object.assign||function(t){for(var n,i=1,o=arguments.length;i<o;i++){n=arguments[i];for(var r in n)Object.prototype.hasOwnProperty.call(n,r)&&(t[r]=n[r])}return t},Hs.apply(this,arguments)};var fm=function(){function e(t){this._=null,this.matchedText="",this.offset=0,this.tagBuilder=t.tagBuilder,this.matchedText=t.matchedText,this.offset=t.offset}return e.prototype.getMatchedText=function(){return this.matchedText},e.prototype.setOffset=function(t){this.offset=t},e.prototype.getOffset=function(){return this.offset},e.prototype.getCssClassSuffixes=function(){return[this.type]},e.prototype.buildTag=function(){return this.tagBuilder.build(this)},e}();var Xet="(?:xn--vermgensberatung-pwb|xn--vermgensberater-ctb|xn--clchc0ea0b2g2a9gcd|xn--w4r85el8fhu5dnra|northwesternmutual|travelersinsurance|verm\xF6gensberatung|xn--5su34j936bgsg|xn--bck1b9a5dre4c|xn--mgbah1a3hjkrd|xn--mgbai9azgqp6j|xn--mgberp4a5d4ar|xn--xkc2dl3a5ee0h|verm\xF6gensberater|xn--fzys8d69uvgm|xn--mgba7c0bbn0a|xn--mgbcpq6gpa1a|xn--xkc2al3hye2a|americanexpress|kerryproperties|sandvikcoromant|xn--i1b6b1a6a2e|xn--kcrx77d1x4a|xn--lgbbat1ad8j|xn--mgba3a4f16a|xn--mgbaakc7dvf|xn--mgbc0a9azcg|xn--nqv7fs00ema|americanfamily|bananarepublic|cancerresearch|cookingchannel|kerrylogistics|weatherchannel|xn--54b7fta0cc|xn--6qq986b3xl|xn--80aqecdr1a|xn--b4w605ferd|xn--fiq228c5hs|xn--h2breg3eve|xn--jlq480n2rg|xn--jlq61u9w7b|xn--mgba3a3ejt|xn--mgbaam7a8h|xn--mgbayh7gpa|xn--mgbbh1a71e|xn--mgbca7dzdo|xn--mgbi4ecexp|xn--mgbx4cd0ab|xn--rvc1e0am3e|international|lifeinsurance|travelchannel|wolterskluwer|xn--cckwcxetd|xn--eckvdtc9d|xn--fpcrj9c3d|xn--fzc2c9e2c|xn--h2brj9c8c|xn--tiq49xqyj|xn--yfro4i67o|xn--ygbi2ammx|construction|lplfinancial|scholarships|versicherung|xn--3e0b707e|xn--45br5cyl|xn--4dbrk0ce|xn--80adxhks|xn--80asehdb|xn--8y0a063a|xn--gckr3f0f|xn--mgb9awbf|xn--mgbab2bd|xn--mgbgu82a|xn--mgbpl2fh|xn--mgbt3dhd|xn--mk1bu44c|xn--ngbc5azd|xn--ngbe9e0a|xn--ogbpf8fl|xn--qcka1pmc|accountants|barclaycard|blackfriday|blockbuster|bridgestone|calvinklein|contractors|creditunion|engineering|enterprises|foodnetwork|investments|kerryhotels|lamborghini|motorcycles|olayangroup|photography|playstation|productions|progressive|redumbrella|williamhill|xn--11b4c3d|xn--1ck2e1b|xn--1qqw23a|xn--2scrj9c|xn--3bst00m|xn--3ds443g|xn--3hcrj9c|xn--42c2d9a|xn--45brj9c|xn--55qw42g|xn--6frz82g|xn--80ao21a|xn--9krt00a|xn--cck2b3b|xn--czr694b|xn--d1acj3b|xn--efvy88h|xn--fct429k|xn--fjq720a|xn--flw351e|xn--g2xx48c|xn--gecrj9c|xn--gk3at1e|xn--h2brj9c|xn--hxt814e|xn--imr513n|xn--j6w193g|xn--jvr189m|xn--kprw13d|xn--kpry57d|xn--mgbbh1a|xn--mgbtx2b|xn--mix891f|xn--nyqy26a|xn--otu796d|xn--pgbs0dh|xn--q9jyb4c|xn--rhqv96g|xn--rovu88b|xn--s9brj9c|xn--ses554g|xn--t60b56a|xn--vuq861b|xn--w4rs40l|xn--xhq521b|xn--zfr164b|\u0B9A\u0BBF\u0B99\u0BCD\u0B95\u0BAA\u0BCD\u0BAA\u0BC2\u0BB0\u0BCD|accountant|apartments|associates|basketball|bnpparibas|boehringer|capitalone|consulting|creditcard|cuisinella|eurovision|extraspace|foundation|healthcare|immobilien|industries|management|mitsubishi|nextdirect|properties|protection|prudential|realestate|republican|restaurant|schaeffler|tatamotors|technology|university|vlaanderen|volkswagen|xn--30rr7y|xn--3pxu8k|xn--45q11c|xn--4gbrim|xn--55qx5d|xn--5tzm5g|xn--80aswg|xn--90a3ac|xn--9dbq2a|xn--9et52u|xn--c2br7g|xn--cg4bki|xn--czrs0t|xn--czru2d|xn--fiq64b|xn--fiqs8s|xn--fiqz9s|xn--io0a7i|xn--kput3i|xn--mxtq1m|xn--o3cw4h|xn--pssy2u|xn--q7ce6a|xn--unup4y|xn--wgbh1c|xn--wgbl6a|xn--y9a3aq|accenture|alfaromeo|allfinanz|amsterdam|analytics|aquarelle|barcelona|bloomberg|christmas|community|directory|education|equipment|fairwinds|financial|firestone|fresenius|frontdoor|furniture|goldpoint|hisamitsu|homedepot|homegoods|homesense|institute|insurance|kuokgroup|lancaster|landrover|lifestyle|marketing|marshalls|melbourne|microsoft|panasonic|passagens|pramerica|richardli|shangrila|solutions|statebank|statefarm|stockholm|travelers|vacations|xn--90ais|xn--c1avg|xn--d1alf|xn--e1a4c|xn--fhbei|xn--j1aef|xn--j1amh|xn--l1acc|xn--ngbrx|xn--nqv7f|xn--p1acf|xn--qxa6a|xn--tckwe|xn--vhquv|yodobashi|\u0645\u0648\u0631\u064A\u062A\u0627\u0646\u064A\u0627|abudhabi|airforce|allstate|attorney|barclays|barefoot|bargains|baseball|boutique|bradesco|broadway|brussels|builders|business|capetown|catering|catholic|cipriani|cityeats|cleaning|clinique|clothing|commbank|computer|delivery|deloitte|democrat|diamonds|discount|discover|download|engineer|ericsson|etisalat|exchange|feedback|fidelity|firmdale|football|frontier|goodyear|grainger|graphics|guardian|hdfcbank|helsinki|holdings|hospital|infiniti|ipiranga|istanbul|jpmorgan|lighting|lundbeck|marriott|maserati|mckinsey|memorial|merckmsd|mortgage|observer|partners|pharmacy|pictures|plumbing|property|redstone|reliance|saarland|samsclub|security|services|shopping|showtime|softbank|software|stcgroup|supplies|training|vanguard|ventures|verisign|woodside|xn--90ae|xn--node|xn--p1ai|xn--qxam|yokohama|\u0627\u0644\u0633\u0639\u0648\u062F\u064A\u0629|abogado|academy|agakhan|alibaba|android|athleta|auction|audible|auspost|avianca|banamex|bauhaus|bentley|bestbuy|booking|brother|bugatti|capital|caravan|careers|channel|charity|chintai|citadel|clubmed|college|cologne|comcast|company|compare|contact|cooking|corsica|country|coupons|courses|cricket|cruises|dentist|digital|domains|exposed|express|farmers|fashion|ferrari|ferrero|finance|fishing|fitness|flights|florist|flowers|forsale|frogans|fujitsu|gallery|genting|godaddy|grocery|guitars|hamburg|hangout|hitachi|holiday|hosting|hoteles|hotmail|hyundai|ismaili|jewelry|juniper|kitchen|komatsu|lacaixa|lanxess|lasalle|latrobe|leclerc|limited|lincoln|markets|monster|netbank|netflix|network|neustar|okinawa|oldnavy|organic|origins|philips|pioneer|politie|realtor|recipes|rentals|reviews|rexroth|samsung|sandvik|schmidt|schwarz|science|shiksha|singles|staples|storage|support|surgery|systems|temasek|theater|theatre|tickets|tiffany|toshiba|trading|walmart|wanggou|watches|weather|website|wedding|whoswho|windows|winners|xfinity|yamaxun|youtube|zuerich|\u043A\u0430\u0442\u043E\u043B\u0438\u043A|\u0627\u062A\u0635\u0627\u0644\u0627\u062A|\u0627\u0644\u0628\u062D\u0631\u064A\u0646|\u0627\u0644\u062C\u0632\u0627\u0626\u0631|\u0627\u0644\u0639\u0644\u064A\u0627\u0646|\u067E\u0627\u06A9\u0633\u062A\u0627\u0646|\u0643\u0627\u062B\u0648\u0644\u064A\u0643|\u0B87\u0BA8\u0BCD\u0BA4\u0BBF\u0BAF\u0BBE|abarth|abbott|abbvie|africa|agency|airbus|airtel|alipay|alsace|alstom|amazon|anquan|aramco|author|bayern|beauty|berlin|bharti|bostik|boston|broker|camera|career|casino|center|chanel|chrome|church|circle|claims|clinic|coffee|comsec|condos|coupon|credit|cruise|dating|datsun|dealer|degree|dental|design|direct|doctor|dunlop|dupont|durban|emerck|energy|estate|events|expert|family|flickr|futbol|gallup|garden|george|giving|global|google|gratis|health|hermes|hiphop|hockey|hotels|hughes|imamat|insure|intuit|jaguar|joburg|juegos|kaufen|kinder|kindle|kosher|lancia|latino|lawyer|lefrak|living|locker|london|luxury|madrid|maison|makeup|market|mattel|mobile|monash|mormon|moscow|museum|mutual|nagoya|natura|nissan|nissay|norton|nowruz|office|olayan|online|oracle|orange|otsuka|pfizer|photos|physio|pictet|quebec|racing|realty|reisen|repair|report|review|rocher|rogers|ryukyu|safety|sakura|sanofi|school|schule|search|secure|select|shouji|soccer|social|stream|studio|supply|suzuki|swatch|sydney|taipei|taobao|target|tattoo|tennis|tienda|tjmaxx|tkmaxx|toyota|travel|unicom|viajes|viking|villas|virgin|vision|voting|voyage|vuelos|walter|webcam|xihuan|yachts|yandex|zappos|\u043C\u043E\u0441\u043A\u0432\u0430|\u043E\u043D\u043B\u0430\u0439\u043D|\u0627\u0628\u0648\u0638\u0628\u064A|\u0627\u0631\u0627\u0645\u0643\u0648|\u0627\u0644\u0627\u0631\u062F\u0646|\u0627\u0644\u0645\u063A\u0631\u0628|\u0627\u0645\u0627\u0631\u0627\u062A|\u0641\u0644\u0633\u0637\u064A\u0646|\u0645\u0644\u064A\u0633\u064A\u0627|\u092D\u093E\u0930\u0924\u092E\u094D|\u0B87\u0BB2\u0B99\u0BCD\u0B95\u0BC8|\u30D5\u30A1\u30C3\u30B7\u30E7\u30F3|actor|adult|aetna|amfam|amica|apple|archi|audio|autos|azure|baidu|beats|bible|bingo|black|boats|bosch|build|canon|cards|chase|cheap|cisco|citic|click|cloud|coach|codes|crown|cymru|dabur|dance|deals|delta|drive|dubai|earth|edeka|email|epson|faith|fedex|final|forex|forum|gallo|games|gifts|gives|glass|globo|gmail|green|gripe|group|gucci|guide|homes|honda|horse|house|hyatt|ikano|irish|jetzt|koeln|kyoto|lamer|lease|legal|lexus|lilly|linde|lipsy|loans|locus|lotte|lotto|macys|mango|media|miami|money|movie|music|nexus|nikon|ninja|nokia|nowtv|omega|osaka|paris|parts|party|phone|photo|pizza|place|poker|praxi|press|prime|promo|quest|radio|rehab|reise|ricoh|rocks|rodeo|rugby|salon|sener|seven|sharp|shell|shoes|skype|sling|smart|smile|solar|space|sport|stada|store|study|style|sucks|swiss|tatar|tires|tirol|tmall|today|tokyo|tools|toray|total|tours|trade|trust|tunes|tushu|ubank|vegas|video|vodka|volvo|wales|watch|weber|weibo|works|world|xerox|yahoo|\u05D9\u05E9\u05E8\u05D0\u05DC|\u0627\u06CC\u0631\u0627\u0646|\u0628\u0627\u0632\u0627\u0631|\u0628\u06BE\u0627\u0631\u062A|\u0633\u0648\u062F\u0627\u0646|\u0633\u0648\u0631\u064A\u0629|\u0647\u0645\u0631\u0627\u0647|\u092D\u093E\u0930\u094B\u0924|\u0938\u0902\u0917\u0920\u0928|\u09AC\u09BE\u0982\u09B2\u09BE|\u0C2D\u0C3E\u0C30\u0C24\u0C4D|\u0D2D\u0D3E\u0D30\u0D24\u0D02|\u5609\u91CC\u5927\u9152\u5E97|aarp|able|adac|aero|akdn|ally|amex|arab|army|arpa|arte|asda|asia|audi|auto|baby|band|bank|bbva|beer|best|bike|bing|blog|blue|bofa|bond|book|buzz|cafe|call|camp|care|cars|casa|case|cash|cbre|cern|chat|citi|city|club|cool|coop|cyou|data|date|dclk|deal|dell|desi|diet|dish|docs|dvag|erni|fage|fail|fans|farm|fast|fiat|fido|film|fire|fish|flir|food|ford|free|fund|game|gbiz|gent|ggee|gift|gmbh|gold|golf|goog|guge|guru|hair|haus|hdfc|help|here|hgtv|host|hsbc|icbc|ieee|imdb|immo|info|itau|java|jeep|jobs|jprs|kddi|kids|kiwi|kpmg|kred|land|lego|lgbt|lidl|life|like|limo|link|live|loan|loft|love|ltda|luxe|maif|meet|meme|menu|mini|mint|mobi|moda|moto|name|navy|news|next|nico|nike|ollo|open|page|pars|pccw|pics|ping|pink|play|plus|pohl|porn|post|prod|prof|qpon|read|reit|rent|rest|rich|room|rsvp|ruhr|safe|sale|sarl|save|saxo|scot|seat|seek|sexy|shaw|shia|shop|show|silk|sina|site|skin|sncf|sohu|song|sony|spot|star|surf|talk|taxi|team|tech|teva|tiaa|tips|town|toys|tube|vana|visa|viva|vivo|vote|voto|wang|weir|wien|wiki|wine|work|xbox|yoga|zara|zero|zone|\u0434\u0435\u0442\u0438|\u0441\u0430\u0439\u0442|\u0628\u0627\u0631\u062A|\u0628\u064A\u062A\u0643|\u0680\u0627\u0631\u062A|\u062A\u0648\u0646\u0633|\u0634\u0628\u0643\u0629|\u0639\u0631\u0627\u0642|\u0639\u0645\u0627\u0646|\u0645\u0648\u0642\u0639|\u092D\u093E\u0930\u0924|\u09AD\u09BE\u09B0\u09A4|\u09AD\u09BE\u09F0\u09A4|\u0A2D\u0A3E\u0A30\u0A24|\u0AAD\u0ABE\u0AB0\u0AA4|\u0B2D\u0B3E\u0B30\u0B24|\u0CAD\u0CBE\u0CB0\u0CA4|\u0DBD\u0D82\u0D9A\u0DCF|\u30A2\u30DE\u30BE\u30F3|\u30B0\u30FC\u30B0\u30EB|\u30AF\u30E9\u30A6\u30C9|\u30DD\u30A4\u30F3\u30C8|\u7EC4\u7EC7\u673A\u6784|\u96FB\u8A0A\u76C8\u79D1|\u9999\u683C\u91CC\u62C9|aaa|abb|abc|aco|ads|aeg|afl|aig|anz|aol|app|art|aws|axa|bar|bbc|bbt|bcg|bcn|bet|bid|bio|biz|bms|bmw|bom|boo|bot|box|buy|bzh|cab|cal|cam|car|cat|cba|cbn|cbs|ceo|cfa|cfd|com|cpa|crs|dad|day|dds|dev|dhl|diy|dnp|dog|dot|dtv|dvr|eat|eco|edu|esq|eus|fan|fit|fly|foo|fox|frl|ftr|fun|fyi|gal|gap|gay|gdn|gea|gle|gmo|gmx|goo|gop|got|gov|hbo|hiv|hkt|hot|how|ibm|ice|icu|ifm|inc|ing|ink|int|ist|itv|jcb|jio|jll|jmp|jnj|jot|joy|kfh|kia|kim|kpn|krd|lat|law|lds|llc|llp|lol|lpl|ltd|man|map|mba|med|men|mil|mit|mlb|mls|mma|moe|moi|mom|mov|msd|mtn|mtr|nab|nba|nec|net|new|nfl|ngo|nhk|now|nra|nrw|ntt|nyc|obi|one|ong|onl|ooo|org|ott|ovh|pay|pet|phd|pid|pin|pnc|pro|pru|pub|pwc|red|ren|ril|rio|rip|run|rwe|sap|sas|sbi|sbs|sca|scb|ses|sew|sex|sfr|ski|sky|soy|spa|srl|stc|tab|tax|tci|tdk|tel|thd|tjx|top|trv|tui|tvs|ubs|uno|uol|ups|vet|vig|vin|vip|wed|win|wme|wow|wtc|wtf|xin|xxx|xyz|you|yun|zip|\u0431\u0435\u043B|\u043A\u043E\u043C|\u049B\u0430\u0437|\u043C\u043A\u0434|\u043C\u043E\u043D|\u043E\u0440\u0433|\u0440\u0443\u0441|\u0441\u0440\u0431|\u0443\u043A\u0440|\u0570\u0561\u0575|\u05E7\u05D5\u05DD|\u0639\u0631\u0628|\u0642\u0637\u0631|\u0643\u0648\u0645|\u0645\u0635\u0631|\u0915\u0949\u092E|\u0928\u0947\u091F|\u0E04\u0E2D\u0E21|\u0E44\u0E17\u0E22|\u0EA5\u0EB2\u0EA7|\u30B9\u30C8\u30A2|\u30BB\u30FC\u30EB|\u307F\u3093\u306A|\u4E2D\u6587\u7F51|\u4E9A\u9A6C\u900A|\u5929\u4E3B\u6559|\u6211\u7231\u4F60|\u65B0\u52A0\u5761|\u6DE1\u9A6C\u9521|\u8BFA\u57FA\u4E9A|\u98DE\u5229\u6D66|ac|ad|ae|af|ag|ai|al|am|ao|aq|ar|as|at|au|aw|ax|az|ba|bb|bd|be|bf|bg|bh|bi|bj|bm|bn|bo|br|bs|bt|bv|bw|by|bz|ca|cc|cd|cf|cg|ch|ci|ck|cl|cm|cn|co|cr|cu|cv|cw|cx|cy|cz|de|dj|dk|dm|do|dz|ec|ee|eg|er|es|et|eu|fi|fj|fk|fm|fo|fr|ga|gb|gd|ge|gf|gg|gh|gi|gl|gm|gn|gp|gq|gr|gs|gt|gu|gw|gy|hk|hm|hn|hr|ht|hu|id|ie|il|im|in|io|iq|ir|is|it|je|jm|jo|jp|ke|kg|kh|ki|km|kn|kp|kr|kw|ky|kz|la|lb|lc|li|lk|lr|ls|lt|lu|lv|ly|ma|mc|md|me|mg|mh|mk|ml|mm|mn|mo|mp|mq|mr|ms|mt|mu|mv|mw|mx|my|mz|na|nc|ne|nf|ng|ni|nl|no|np|nr|nu|nz|om|pa|pe|pf|pg|ph|pk|pl|pm|pn|pr|ps|pt|pw|py|qa|re|ro|rs|ru|rw|sa|sb|sc|sd|se|sg|sh|si|sj|sk|sl|sm|sn|so|sr|ss|st|su|sv|sx|sy|sz|tc|td|tf|tg|th|tj|tk|tl|tm|tn|to|tr|tt|tv|tw|tz|ua|ug|uk|us|uy|uz|va|vc|ve|vg|vi|vn|vu|wf|ws|ye|yt|za|zm|zw|\u03B5\u03BB|\u03B5\u03C5|\u0431\u0433|\u0435\u044E|\u0440\u0444|\u10D2\u10D4|\uB2F7\uB137|\uB2F7\uCEF4|\uC0BC\uC131|\uD55C\uAD6D|\u30B3\u30E0|\u4E16\u754C|\u4E2D\u4FE1|\u4E2D\u56FD|\u4E2D\u570B|\u4F01\u4E1A|\u4F5B\u5C71|\u4FE1\u606F|\u5065\u5EB7|\u516B\u5366|\u516C\u53F8|\u516C\u76CA|\u53F0\u6E7E|\u53F0\u7063|\u5546\u57CE|\u5546\u5E97|\u5546\u6807|\u5609\u91CC|\u5728\u7EBF|\u5927\u62FF|\u5A31\u4E50|\u5BB6\u96FB|\u5E7F\u4E1C|\u5FAE\u535A|\u6148\u5584|\u624B\u673A|\u62DB\u8058|\u653F\u52A1|\u653F\u5E9C|\u65B0\u95FB|\u65F6\u5C1A|\u66F8\u7C4D|\u673A\u6784|\u6E38\u620F|\u6FB3\u9580|\u70B9\u770B|\u79FB\u52A8|\u7F51\u5740|\u7F51\u5E97|\u7F51\u7AD9|\u7F51\u7EDC|\u8054\u901A|\u8C37\u6B4C|\u8D2D\u7269|\u901A\u8CA9|\u96C6\u56E2|\u98DF\u54C1|\u9910\u5385|\u9999\u6E2F)",Mhe=new RegExp("^"+Xet+"$");var Ket=/[\/?#]/,Zet=/[-+&@#/%=~_()|'$*\[\]{}\u2713]/,Lhe=/[?!:,.;^]/,q7=/https?:\/\//i,Nhe=new RegExp("^"+q7.source,"i"),Fhe=new RegExp(Lhe.source+"$"),$et=/^(javascript|vbscript):/i,Qet=/^[A-Za-z][-.+A-Za-z0-9]*:(\/\/)?([^:/]*)/,Jet=/^(?:\/\/)?([^/#?:]+)/;function wk(e){return by.test(e)}function Y7(e){return by.test(e)||zs.test(e)||e==="+"||e==="-"||e==="."}function t_(e){return Ud.test(e)}function Dk(e){return e==="_"||t_(e)}function X7(e){return Ud.test(e)||Zet.test(e)||Lhe.test(e)}function Ik(e){return Ket.test(e)}function K7(e){return Mhe.test(e.toLowerCase())}function Bhe(e){if($et.test(e))return!1;var t=e.match(Qet);if(!t)return!1;var n=!!t[1],i=t[2];return n?!0:!(i.indexOf(".")===-1||!by.test(i))}function khe(e){var t=e.match(Jet);if(!t)return!1;var n=t[0],i=n.split(".");if(i.length<2)return!1;var o=i[i.length-1];return!!K7(o)}var ett=/^(?:(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(?:25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/,ttt=/[:/?#]/;function Vhe(e){var t=e.split(ttt,1)[0];return ett.test(t)}var ntt=/^(https?:\/\/)?(www\.)?/i,itt=/^\/\//,Uhe=function(e){um(t,e);function t(n){var i=e.call(this,n)||this;return i.type="url",i.url="",i.urlMatchType="scheme",i.protocolRelativeMatch=!1,i.stripPrefix={scheme:!0,www:!0},i.stripTrailingSlash=!0,i.decodePercentEncoding=!0,i.protocolPrepended=!1,i.urlMatchType=n.urlMatchType,i.url=n.url,i.protocolRelativeMatch=n.protocolRelativeMatch,i.stripPrefix=n.stripPrefix,i.stripTrailingSlash=n.stripTrailingSlash,i.decodePercentEncoding=n.decodePercentEncoding,i}return t.prototype.getType=function(){return"url"},t.prototype.getUrlMatchType=function(){return this.urlMatchType},t.prototype.getUrl=function(){var n=this.url;return!this.protocolRelativeMatch&&this.urlMatchType!=="scheme"&&!this.protocolPrepended&&(n=this.url="http://"+n,this.protocolPrepended=!0),n},t.prototype.getAnchorHref=function(){var n=this.getUrl();return n.replace(/&/g,"&")},t.prototype.getAnchorText=function(){var n=this.getMatchedText();return this.protocolRelativeMatch&&(n=stt(n)),this.stripPrefix.scheme&&(n=ott(n)),this.stripPrefix.www&&(n=rtt(n)),this.stripTrailingSlash&&(n=att(n)),this.decodePercentEncoding&&(n=ctt(n)),n},t}(fm);function ott(e){return e.replace(Nhe,"")}function rtt(e){return e.replace(ntt,"$1")}function stt(e){return e.replace(itt,"")}function att(e){return e.charAt(e.length-1)==="/"&&(e=e.slice(0,-1)),e}function ctt(e){var t=e.replace(/%22/gi,""").replace(/%26/gi,"&").replace(/%27/gi,"'").replace(/%3C/gi,"<").replace(/%3E/gi,">");try{return decodeURIComponent(t)}catch{return t}}var zhe=/^mailto:/i,ltt=new RegExp("[".concat(W7,"!#$%&'*+/=?^_`{|}~-]"));function Hhe(e){return Ud.test(e)}function Pk(e){return ltt.test(e)}function Ghe(e){var t=e.split(".").pop()||"";return K7(t)}var Whe=function(e){um(t,e);function t(n){var i=e.call(this,n)||this;return i.type="email",i.email="",i.email=n.email,i}return t.prototype.getType=function(){return"email"},t.prototype.getEmail=function(){return this.email},t.prototype.getAnchorHref=function(){return"mailto:"+this.email},t.prototype.getAnchorText=function(){return this.email},t}(fm);function Z7(e){return e==="_"||Ud.test(e)}function jhe(e){return e.length<=140}var qhe=["twitter","facebook","instagram","tiktok"];var Yhe=function(e){um(t,e);function t(n){var i=e.call(this,n)||this;return i.type="hashtag",i.serviceName="twitter",i.hashtag="",i.serviceName=n.serviceName,i.hashtag=n.hashtag,i}return t.prototype.getType=function(){return"hashtag"},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getHashtag=function(){return this.hashtag},t.prototype.getAnchorHref=function(){var n=this.serviceName,i=this.hashtag;switch(n){case"twitter":return"https://twitter.com/hashtag/"+i;case"facebook":return"https://www.facebook.com/hashtag/"+i;case"instagram":return"https://instagram.com/explore/tags/"+i;case"tiktok":return"https://www.tiktok.com/tag/"+i;default:throw xy(n),new Error("Invalid hashtag service: ".concat(n))}},t.prototype.getAnchorText=function(){return"#"+this.hashtag},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(fm);var utt={twitter:/^@\w{1,15}$/,instagram:/^@[_\w]{1,30}$/,soundcloud:/^@[-a-z0-9_]{3,25}$/,tiktok:/^@[.\w]{1,23}[\w]$/},ftt=/[-\w.]/;function $7(e){return ftt.test(e)}function Xhe(e,t){var n=utt[t];return n.test(e)}var Khe=["twitter","instagram","soundcloud","tiktok"];var Zhe=function(e){um(t,e);function t(n){var i=e.call(this,n)||this;return i.type="mention",i.serviceName="twitter",i.mention="",i.mention=n.mention,i.serviceName=n.serviceName,i}return t.prototype.getType=function(){return"mention"},t.prototype.getMention=function(){return this.mention},t.prototype.getServiceName=function(){return this.serviceName},t.prototype.getAnchorHref=function(){switch(this.serviceName){case"twitter":return"https://twitter.com/"+this.mention;case"instagram":return"https://instagram.com/"+this.mention;case"soundcloud":return"https://soundcloud.com/"+this.mention;case"tiktok":return"https://www.tiktok.com/@"+this.mention;default:throw new Error("Unknown service name to point mention to: "+this.serviceName)}},t.prototype.getAnchorText=function(){return"@"+this.mention},t.prototype.getCssClassSuffixes=function(){var n=e.prototype.getCssClassSuffixes.call(this),i=this.getServiceName();return i&&n.push(i),n},t}(fm);var dtt=/[-. ]/,htt=/[-. ()]/,mtt=/[,;]/,ptt=/(?:(?:(?:(\+)?\d{1,3}[-. ]?)?\(?\d{3}\)?[-. ]?\d{3}[-. ]?\d{4})|(?:(\+)(?:9[976]\d|8[987530]\d|6[987]\d|5[90]\d|42\d|3[875]\d|2[98654321]\d|9[8543210]|8[6421]|6[6543210]|5[87654321]|4[987654310]|3[9643210]|2[70]|7|1)[-. ]?(?:\d[-. ]?){6,12}\d+))([,;]+[0-9]+#?)*/,_tt=/(0([1-9]-?[1-9]\d{3}|[1-9]{2}-?\d{3}|[1-9]{2}\d{1}-?\d{2}|[1-9]{2}\d{2}-?\d{1})-?\d{4}|0[789]0-?\d{4}-?\d{4}|050-?\d{4}-?\d{4})/,gtt=new RegExp("^".concat(ptt.source,"|").concat(_tt.source,"$"));function Q7(e){return dtt.test(e)}function Rk(e){return mtt.test(e)}function $he(e){var t=e.charAt(0)==="+"||htt.test(e);return t&>t.test(e)}var Qhe=function(e){um(t,e);function t(n){var i=e.call(this,n)||this;return i.type="phone",i.number="",i.plusSign=!1,i.number=n.number,i.plusSign=n.plusSign,i}return t.prototype.getType=function(){return"phone"},t.prototype.getPhoneNumber=function(){return this.number},t.prototype.getNumber=function(){return this.getPhoneNumber()},t.prototype.getAnchorHref=function(){return"tel:"+(this.plusSign?"+":"")+this.number},t.prototype.getAnchorText=function(){return this.matchedText},t}(fm);function tme(e,t){for(var n=t.tagBuilder,i=t.stripPrefix,o=t.stripTrailingSlash,r=t.decodePercentEncoding,s=t.hashtagServiceName,a=t.mentionServiceName,c=[],u=e.length,f=[],d=0;d<u;d++){var p=e.charAt(d);if(f.length===0)b(p);else for(var g=f.length-1;g>=0;g--){var m=f[g];switch(m.state){case 11:D(m,p);break;case 12:O(m,p);break;case 0:T(m,p);break;case 1:A(m,p);break;case 2:C(m,p);break;case 3:S(m,p);break;case 4:v(m,p);break;case 5:R(m,p);break;case 6:M(m,p);break;case 7:L(m,p);break;case 13:_(m,p);break;case 14:E(m,p);break;case 8:w(m,p);break;case 9:I(m,p);break;case 10:N(m,p);break;case 15:B(m,p);break;case 16:H(m,p);break;case 17:V(m,p);break;case 18:G(m,p);break;case 19:k(m,p);break;case 20:W(m,p);break;case 21:q(m,p);break;case 22:J(m,p);break;case 23:j(m,p);break;case 24:Z(m,p);break;case 25:Q(m,p);break;case 26:de(m,p);break;case 27:ye(m,p);break;case 28:ae(m,p);break;case 29:_e(m,p);break;case 30:xe(m,p);break;case 31:Ie(m,p);break;case 32:ke(m,p);break;case 33:He(m,p);break;case 34:rt(m,p);break;case 35:Lt(m,p);break;case 36:Tt(m,p);break;case 37:Ce(m,p);break;case 38:we(m,p);break;case 39:Xe(m,p);break;case 40:Qe(m,p);break;case 41:We(m,p);break;default:xy(m.state)}}}for(var x=f.length-1;x>=0;x--)f.forEach(function(Te){return Ut(Te)});return c;function b(Te){if(Te==="#")f.push(Att(d,28));else if(Te==="@")f.push(Ctt(d,30));else if(Te==="/")f.push(eq(d,11));else if(Te==="+")f.push(tq(d,37));else if(Te==="(")f.push(tq(d,32));else{if(zs.test(Te)&&(f.push(tq(d,38)),f.push(btt(d,13))),Hhe(Te)){var Ae=Te.toLowerCase()==="m"?15:22;f.push(Ttt(d,Ae))}wk(Te)&&f.push(J7(d,0)),Ud.test(Te)&&f.push(eq(d,5))}}function T(Te,Ae){Ae===":"?Te.state=2:Ae==="-"?Te.state=1:Y7(Ae)||Vo(f,Te)}function A(Te,Ae){Ae==="-"||(Ae==="/"?(Vo(f,Te),f.push(eq(d,11))):Y7(Ae)?Te.state=0:Vo(f,Te))}function C(Te,Ae){Ae==="/"?Te.state=3:Ae==="."?Vo(f,Te):t_(Ae)?(Te.state=5,wk(Ae)&&f.push(J7(d,0))):Vo(f,Te)}function S(Te,Ae){Ae==="/"?Te.state=4:X7(Ae)?(Te.state=10,Te.acceptStateReached=!0):Ut(Te)}function v(Te,Ae){Ae==="/"?Te.state=10:t_(Ae)?(Te.state=5,Te.acceptStateReached=!0):Vo(f,Te)}function D(Te,Ae){Ae==="/"?Te.state=12:Vo(f,Te)}function O(Te,Ae){t_(Ae)?Te.state=5:Vo(f,Te)}function R(Te,Ae){Ae==="."?Te.state=7:Ae==="-"?Te.state=6:Ae===":"?Te.state=8:Ik(Ae)?Te.state=10:Dk(Ae)||Ut(Te)}function M(Te,Ae){Ae==="-"||(Ae==="."?Ut(Te):t_(Ae)?Te.state=5:Ut(Te))}function L(Te,Ae){Ae==="."?Ut(Te):t_(Ae)?(Te.state=5,Te.acceptStateReached=!0):Ut(Te)}function _(Te,Ae){Ae==="."?Te.state=14:Ae===":"?Te.state=8:zs.test(Ae)||(Ik(Ae)?Te.state=10:Ud.test(Ae)?Vo(f,Te):Ut(Te))}function E(Te,Ae){zs.test(Ae)?(Te.octetsEncountered++,Te.octetsEncountered===4&&(Te.acceptStateReached=!0),Te.state=13):Ut(Te)}function w(Te,Ae){zs.test(Ae)?Te.state=9:Ut(Te)}function I(Te,Ae){zs.test(Ae)||(Ik(Ae)?Te.state=10:Ut(Te))}function N(Te,Ae){X7(Ae)||Ut(Te)}function B(Te,Ae){Ae.toLowerCase()==="a"?Te.state=16:J(Te,Ae)}function H(Te,Ae){Ae.toLowerCase()==="i"?Te.state=17:J(Te,Ae)}function V(Te,Ae){Ae.toLowerCase()==="l"?Te.state=18:J(Te,Ae)}function G(Te,Ae){Ae.toLowerCase()==="t"?Te.state=19:J(Te,Ae)}function k(Te,Ae){Ae.toLowerCase()==="o"?Te.state=20:J(Te,Ae)}function W(Te,Ae){Ae.toLowerCase()===":"?Te.state=21:J(Te,Ae)}function q(Te,Ae){Pk(Ae)?Te.state=22:Vo(f,Te)}function J(Te,Ae){Ae==="."?Te.state=23:Ae==="@"?Te.state=24:Pk(Ae)?Te.state=22:Vo(f,Te)}function j(Te,Ae){Ae==="."?Vo(f,Te):Ae==="@"?Vo(f,Te):Pk(Ae)?Te.state=22:Vo(f,Te)}function Z(Te,Ae){t_(Ae)?Te.state=25:Vo(f,Te)}function Q(Te,Ae){Ae==="."?Te.state=27:Ae==="-"?Te.state=26:Dk(Ae)||Ut(Te)}function de(Te,Ae){Ae==="-"||Ae==="."?Ut(Te):Dk(Ae)?Te.state=25:Ut(Te)}function ye(Te,Ae){Ae==="."||Ae==="-"?Ut(Te):t_(Ae)?(Te.state=25,Te.acceptStateReached=!0):Ut(Te)}function ae(Te,Ae){Z7(Ae)?(Te.state=29,Te.acceptStateReached=!0):Vo(f,Te)}function _e(Te,Ae){Z7(Ae)||Ut(Te)}function xe(Te,Ae){$7(Ae)?(Te.state=31,Te.acceptStateReached=!0):Vo(f,Te)}function Ie(Te,Ae){$7(Ae)||(Ud.test(Ae)?Vo(f,Te):Ut(Te))}function Ce(Te,Ae){zs.test(Ae)?Te.state=38:(Vo(f,Te),b(Ae))}function ke(Te,Ae){zs.test(Ae)?Te.state=33:Vo(f,Te),b(Ae)}function He(Te,Ae){zs.test(Ae)?Te.state=34:Vo(f,Te)}function rt(Te,Ae){zs.test(Ae)?Te.state=35:Vo(f,Te)}function Lt(Te,Ae){Ae===")"?Te.state=36:Vo(f,Te)}function Tt(Te,Ae){zs.test(Ae)?Te.state=38:Q7(Ae)?Te.state=39:Vo(f,Te)}function we(Te,Ae){Te.acceptStateReached=!0,Rk(Ae)?Te.state=40:Ae==="#"?Te.state=41:zs.test(Ae)||(Ae==="("?Te.state=32:Q7(Ae)?Te.state=39:(Ut(Te),wk(Ae)&&f.push(J7(d,0))))}function Xe(Te,Ae){zs.test(Ae)?Te.state=38:Ae==="("?Te.state=32:(Ut(Te),b(Ae))}function Qe(Te,Ae){Rk(Ae)||(Ae==="#"?Te.state=41:zs.test(Ae)?Te.state=38:Ut(Te))}function We(Te,Ae){Rk(Ae)?Te.state=40:zs.test(Ae)?Vo(f,Te):Ut(Te)}function Ut(Te){if(Vo(f,Te),!!Te.acceptStateReached){var Ae=Te.startIdx,st=e.slice(Te.startIdx,d);if(st=xtt(st),Te.type==="url"){var Fi=e.charAt(Te.startIdx-1);if(Fi==="@")return;var ut=Te.matchType;if(ut==="scheme"){var _o=q7.exec(st);if(_o&&(Ae=Ae+_o.index,st=st.slice(_o.index)),!Bhe(st))return}else if(ut==="tld"){if(!khe(st))return}else if(ut==="ipV4"){if(!Vhe(st))return}else xy(ut);c.push(new Uhe({tagBuilder:n,matchedText:st,offset:Ae,urlMatchType:ut,url:st,protocolRelativeMatch:st.slice(0,2)==="//",stripPrefix:i,stripTrailingSlash:o,decodePercentEncoding:r}))}else if(Te.type==="email")Ghe(st)&&c.push(new Whe({tagBuilder:n,matchedText:st,offset:Ae,email:st.replace(zhe,"")}));else if(Te.type==="hashtag")jhe(st)&&c.push(new Yhe({tagBuilder:n,matchedText:st,offset:Ae,serviceName:s,hashtag:st.slice(1)}));else if(Te.type==="mention")Xhe(st,a)&&c.push(new Zhe({tagBuilder:n,matchedText:st,offset:Ae,serviceName:a,mention:st.slice(1)}));else if(Te.type==="phone"){if(st=st.replace(/ +$/g,""),$he(st)){var cr=st.replace(/[^0-9,;#]/g,"");c.push(new Qhe({tagBuilder:n,matchedText:st,offset:Ae,number:cr,plusSign:st.charAt(0)==="+"}))}}else xy(Te)}}}var ytt=/[\(\{\[]/,Jhe=/[\)\}\]]/,eme={")":"(","}":"{","]":"["};function xtt(e){for(var t={"(":0,"{":0,"[":0},n=0;n<e.length;n++){var i=e.charAt(n);ytt.test(i)?t[i]++:Jhe.test(i)&&t[eme[i]]--}for(var o=e.length-1,r;o>=0;)if(r=e.charAt(o),Jhe.test(r)){var s=eme[r];if(t[s]<0)t[s]++,o--;else break}else if(Fhe.test(r))o--;else break;return e.slice(0,o+1)}function J7(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"scheme"}}function eq(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"tld"}}function btt(e,t){return{type:"url",startIdx:e,state:t,acceptStateReached:!1,matchType:"ipV4",octetsEncountered:1}}function Ttt(e,t){return{type:"email",startIdx:e,state:t,acceptStateReached:!1}}function Att(e,t){return{type:"hashtag",startIdx:e,state:t,acceptStateReached:!1}}function Ctt(e,t){return{type:"mention",startIdx:e,state:t,acceptStateReached:!1}}function tq(e,t){return{type:"phone",startIdx:e,state:t,acceptStateReached:!1}}function nme(e,t){for(var n=t.onOpenTag,i=t.onCloseTag,o=t.onText,r=t.onComment,s=t.onDoctype,a=new dm,c=0,u=e.length,f=0,d=0,p=a;c<u;){var g=e.charAt(c);switch(f){case 0:m(g);break;case 1:x(g);break;case 2:T(g);break;case 3:b(g);break;case 4:A(g);break;case 5:C(g);break;case 6:S(g);break;case 7:v(g);break;case 8:D(g);break;case 9:O(g);break;case 10:R(g);break;case 11:M(g);break;case 12:L(g);break;case 13:_(g);break;case 14:E(g);break;case 15:w(g);break;case 16:I(g);break;case 17:N(g);break;case 18:B(g);break;case 19:H(g);break;case 20:V(g);break;default:xy(f)}c++}d<c&&q();function m(Z){Z==="<"&&k()}function x(Z){Z==="!"?f=13:Z==="/"?(f=2,p=new dm(Hs(Hs({},p),{isClosing:!0}))):Z==="<"?k():by.test(Z)?(f=3,p=new dm(Hs(Hs({},p),{isOpening:!0}))):(f=0,p=a)}function b(Z){yu.test(Z)?(p=new dm(Hs(Hs({},p),{name:J()})),f=4):Z==="<"?k():Z==="/"?(p=new dm(Hs(Hs({},p),{name:J()})),f=12):Z===">"?(p=new dm(Hs(Hs({},p),{name:J()})),W()):!by.test(Z)&&!zs.test(Z)&&Z!==":"&&G()}function T(Z){Z===">"?G():by.test(Z)?f=3:G()}function A(Z){yu.test(Z)||(Z==="/"?f=12:Z===">"?W():Z==="<"?k():Z==="="||Sk.test(Z)||vhe.test(Z)?G():f=5)}function C(Z){yu.test(Z)?f=6:Z==="/"?f=12:Z==="="?f=7:Z===">"?W():Z==="<"?k():Sk.test(Z)&&G()}function S(Z){yu.test(Z)||(Z==="/"?f=12:Z==="="?f=7:Z===">"?W():Z==="<"?k():Sk.test(Z)?G():f=5)}function v(Z){yu.test(Z)||(Z==='"'?f=8:Z==="'"?f=9:/[>=`]/.test(Z)?G():Z==="<"?k():f=10)}function D(Z){Z==='"'&&(f=11)}function O(Z){Z==="'"&&(f=11)}function R(Z){yu.test(Z)?f=4:Z===">"?W():Z==="<"&&k()}function M(Z){yu.test(Z)?f=4:Z==="/"?f=12:Z===">"?W():Z==="<"?k():(f=4,j())}function L(Z){Z===">"?(p=new dm(Hs(Hs({},p),{isClosing:!0})),W()):f=4}function _(Z){e.substr(c,2)==="--"?(c+=2,p=new dm(Hs(Hs({},p),{type:"comment"})),f=14):e.substr(c,7).toUpperCase()==="DOCTYPE"?(c+=7,p=new dm(Hs(Hs({},p),{type:"doctype"})),f=20):G()}function E(Z){Z==="-"?f=15:Z===">"?G():f=16}function w(Z){Z==="-"?f=18:Z===">"?G():f=16}function I(Z){Z==="-"&&(f=17)}function N(Z){Z==="-"?f=18:f=16}function B(Z){Z===">"?W():Z==="!"?f=19:Z==="-"||(f=16)}function H(Z){Z==="-"?f=17:Z===">"?W():f=16}function V(Z){Z===">"?W():Z==="<"&&k()}function G(){f=0,p=a}function k(){f=1,p=new dm({idx:c})}function W(){var Z=e.slice(d,p.idx);Z&&o(Z,d),p.type==="comment"?r(p.idx):p.type==="doctype"?s(p.idx):(p.isOpening&&n(p.name,p.idx),p.isClosing&&i(p.name,p.idx)),G(),d=c+1}function q(){var Z=e.slice(d,c);o(Z,d),d=c+1}function J(){var Z=p.idx+(p.isClosing?2:1);return e.slice(Z,c).toLowerCase()}function j(){c--}}var dm=function(){function e(t){t===void 0&&(t={}),this.idx=t.idx!==void 0?t.idx:-1,this.type=t.type||"tag",this.name=t.name||"",this.isOpening=!!t.isOpening,this.isClosing=!!t.isClosing}return e}();var Ett=function(){function e(t){t===void 0&&(t={}),this.version=e.version,this.urls={},this.email=!0,this.phone=!0,this.hashtag=!1,this.mention=!1,this.newWindow=!0,this.stripPrefix={scheme:!0,www:!0},this.stripTrailingSlash=!0,this.decodePercentEncoding=!0,this.truncate={length:0,location:"end"},this.className="",this.replaceFn=null,this.context=void 0,this.sanitizeHtml=!1,this.tagBuilder=null,this.urls=Stt(t.urls),this.email=gu(t.email)?t.email:this.email,this.phone=gu(t.phone)?t.phone:this.phone,this.hashtag=t.hashtag||this.hashtag,this.mention=t.mention||this.mention,this.newWindow=gu(t.newWindow)?t.newWindow:this.newWindow,this.stripPrefix=vtt(t.stripPrefix),this.stripTrailingSlash=gu(t.stripTrailingSlash)?t.stripTrailingSlash:this.stripTrailingSlash,this.decodePercentEncoding=gu(t.decodePercentEncoding)?t.decodePercentEncoding:this.decodePercentEncoding,this.sanitizeHtml=t.sanitizeHtml||!1;var n=this.mention;if(n!==!1&&Khe.indexOf(n)===-1)throw new Error("invalid `mention` cfg '".concat(n,"' - see docs"));var i=this.hashtag;if(i!==!1&&qhe.indexOf(i)===-1)throw new Error("invalid `hashtag` cfg '".concat(i,"' - see docs"));this.truncate=wtt(t.truncate),this.className=t.className||this.className,this.replaceFn=t.replaceFn||this.replaceFn,this.context=t.context||this}return e.link=function(t,n){var i=new e(n);return i.link(t)},e.parse=function(t,n){var i=new e(n);return i.parse(t)},e.prototype.parse=function(t){var n=this,i=["a","style","script"],o=0,r=[];return nme(t,{onOpenTag:function(s){i.indexOf(s)>=0&&o++},onText:function(s,a){if(o===0){var c=/( | |<|<|>|>|"|"|')/gi,u=s.split(c),f=a;u.forEach(function(d,p){if(p%2===0){var g=n.parseText(d,f);r.push.apply(r,g)}f+=d.length})}},onCloseTag:function(s){i.indexOf(s)>=0&&(o=Math.max(o-1,0))},onComment:function(s){},onDoctype:function(s){}}),r=this.compactMatches(r),r=this.removeUnwantedMatches(r),r},e.prototype.compactMatches=function(t){t.sort(function(c,u){return c.getOffset()-u.getOffset()});for(var n=0;n<t.length-1;){var i=t[n],o=i.getOffset(),r=i.getMatchedText().length,s=o+r;if(n+1<t.length){if(t[n+1].getOffset()===o){var a=t[n+1].getMatchedText().length>r?n:n+1;t.splice(a,1);continue}if(t[n+1].getOffset()<s){t.splice(n+1,1);continue}}n++}return t},e.prototype.removeUnwantedMatches=function(t){return this.hashtag||yy(t,function(n){return n.getType()==="hashtag"}),this.email||yy(t,function(n){return n.getType()==="email"}),this.phone||yy(t,function(n){return n.getType()==="phone"}),this.mention||yy(t,function(n){return n.getType()==="mention"}),this.urls.schemeMatches||yy(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="scheme"}),this.urls.tldMatches||yy(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="tld"}),this.urls.ipV4Matches||yy(t,function(n){return n.getType()==="url"&&n.getUrlMatchType()==="ipV4"}),t},e.prototype.parseText=function(t,n){n===void 0&&(n=0),n=n||0;for(var i=tme(t,{tagBuilder:this.getTagBuilder(),stripPrefix:this.stripPrefix,stripTrailingSlash:this.stripTrailingSlash,decodePercentEncoding:this.decodePercentEncoding,hashtagServiceName:this.hashtag,mentionServiceName:this.mention||"twitter"}),o=0,r=i.length;o<r;o++)i[o].setOffset(n+i[o].getOffset());return i},e.prototype.link=function(t){if(!t)return"";this.sanitizeHtml&&(t=t.replace(/</g,"<").replace(/>/g,">"));for(var n=this.parse(t),i=[],o=0,r=0,s=n.length;r<s;r++){var a=n[r];i.push(t.substring(o,a.getOffset())),i.push(this.createMatchReturnVal(a)),o=a.getOffset()+a.getMatchedText().length}return i.push(t.substring(o)),i.join("")},e.prototype.createMatchReturnVal=function(t){var n;if(this.replaceFn&&(n=this.replaceFn.call(this.context,t)),typeof n=="string")return n;if(n===!1)return t.getMatchedText();if(n instanceof vk)return n.toAnchorString();var i=t.buildTag();return i.toAnchorString()},e.prototype.getTagBuilder=function(){var t=this.tagBuilder;return t||(t=this.tagBuilder=new Ohe({newWindow:this.newWindow,truncate:this.truncate,className:this.className})),t},e.version=Che,e}(),ime=Ett;function Stt(e){return e==null&&(e=!0),gu(e)?{schemeMatches:e,tldMatches:e,ipV4Matches:e}:{schemeMatches:gu(e.schemeMatches)?e.schemeMatches:!0,tldMatches:gu(e.tldMatches)?e.tldMatches:!0,ipV4Matches:gu(e.ipV4Matches)?e.ipV4Matches:!0}}function vtt(e){return e==null&&(e=!0),gu(e)?{scheme:e,www:e}:{scheme:gu(e.scheme)?e.scheme:!0,www:gu(e.www)?e.www:!0}}function wtt(e){return typeof e=="number"?{length:e,location:"end"}:Ehe(e||{},{length:Number.POSITIVE_INFINITY,location:"end"})}var Ok=ime;var dme;typeof DOMParser<"u"&&(dme=new DOMParser);var Dtt=new Ok({stripPrefix:!1,email:!1,replaceFn:function(e,t){return t.urlMatchType==="scheme"||t.urlMatchType==="www"}}),Mk=32,ome=2414016,rme=1,sme=16093e3,ame=.1,Itt=[null,void 0,"http://www.topografix.com/GPX/1/1"],Ao={gpx:Itt};function Ptt(e){return new Promise((t,n)=>{let i=new FileReader;i.addEventListener("load",function(){t(i.result)}),i.addEventListener("error",function(){n(i.error)}),i.readAsText(e)})}function nq(e,t){let n=WD(e,"id");return n=l(n)?n:zn(),t.getOrCreateEntity(n)}function iq(e){let t=cme(e,"lon"),n=cme(e,"lat"),i=HD(e,"ele",Ao.gpx);return h.fromDegrees(t,n,i)}function cme(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function WD(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Ty(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function oq(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagName(t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function HD(e,t,n){let i=Ty(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function vl(e,t,n){let i=Ty(e,t,n);if(l(i))return i.textContent.trim()}function hme(e){let t=new Ac;return t.width=Mk,t.height=Mk,t.scaleByDistance=new Vt(ome,rme,sme,ame),t.pixelOffsetScaleByDistance=new Vt(ome,rme,sme,ame),t.verticalOrigin=new Xn(On.BOTTOM),t.image=e,t}function Rtt(){let e=new vh;return e.translucencyByDistance=new Vt(3e6,1,5e6,0),e.pixelOffset=new U(17,0),e.horizontalOrigin=gi.LEFT,e.font="16px sans-serif",e.style=qo.FILL_AND_OUTLINE,e}function mme(e){let t=new wc;return t.width=4,t.material=new Nx,t.material.color=l(e)?e:z.RED,t.material.outlineWidth=2,t.material.outlineColor=z.BLACK,t}var lme={time:{text:"Time",tag:"time"},comment:{text:"Comment",tag:"cmt"},description:{text:"Description",tag:"desc"},source:{text:"Source",tag:"src"},number:{text:"GPS track/route number",tag:"number"},type:{text:"Type",tag:"type"}},GD;typeof document<"u"&&(GD=document.createElement("div"));function rq(e,t){let n,i="",o=Object.keys(lme),r=o.length;for(n=0;n<r;n++){let f=o[n],d=lme[f];d.value=y(vl(e,d.tag,Ao.gpx),""),l(d.value)&&d.value!==""&&(i=`${i}<p>${d.text}: ${d.value}</p>`)}if(!l(i)||i==="")return;i=Dtt.link(i),GD.innerHTML=i;let s=GD.querySelectorAll("a");for(n=0;n<s.length;n++)s[n].setAttribute("target","_blank");let a=z.WHITE,c=z.BLACK,u='<div class="cesium-infoBox-description-lighter" style="';return u+="overflow:auto;",u+="word-wrap:break-word;",u+=`background-color:${a.toCssColorString()};`,u+=`color:${c.toCssColorString()};`,u+='">',u+=`${GD.innerHTML}</div>`,GD.innerHTML="",u}function pme(e,t,n,i){let o=iq(t),r=nq(t,n);r.position=o;let s=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,Mk);r.billboard=hme(s);let a=vl(t,"name",Ao.gpx);r.name=a,r.label=Rtt(),r.label.text=a,r.description=rq(t,r),i.clampToGround&&(r.billboard.heightReference=Ke.CLAMP_TO_GROUND,r.label.heightReference=Ke.CLAMP_TO_GROUND)}function Ott(e,t,n,i){let o=nq(t,n);o.description=rq(t,o);let r=oq(t,"rtept",Ao.gpx),s=new Array(r.length);for(let a=0;a<r.length;a++)pme(e,r[a],n,i),s[a]=iq(r[a]);o.polyline=mme(i.routeColor),i.clampToGround&&(o.polyline.clampToGround=!0),o.polyline.positions=s}function Mtt(e,t,n,i){let o=nq(t,n);o.description=rq(t,o);let r=oq(t,"trkseg",Ao.gpx),s=[],a=[],c,u=!0,f=new Sa;for(let d=0;d<r.length;d++)c=Ltt(r[d]),s=s.concat(c.positions),c.times.length>0?(a=a.concat(c.times),f.addSamples(a,s),u=u&&!0):u=!1;if(u){let d=l(i.waypointImage)?i.waypointImage:e._pinBuilder.fromMakiIconId("marker",z.RED,Mk);o.billboard=hme(d),o.position=f,i.clampToGround&&(o.billboard.heightReference=Ke.CLAMP_TO_GROUND),o.availability=new jr,o.availability.addInterval(new Sn({start:a[0],stop:a[a.length-1]}))}o.polyline=mme(i.trackColor),o.polyline.positions=s,i.clampToGround&&(o.polyline.clampToGround=!0)}function Ltt(e){let t={positions:[],times:[]},n=oq(e,"trkpt",Ao.gpx),i;for(let o=0;o<n.length;o++){let r=iq(n[o]);t.positions.push(r),i=vl(n[o],"time",Ao.gpx),l(i)&&t.times.push(K.fromIso8601(i))}return t}function Ntt(e){let t=Ty(e,"metadata",Ao.gpx);if(l(t)){let n={name:vl(t,"name",Ao.gpx),desc:vl(t,"desc",Ao.gpx),author:Ftt(t),copyright:ktt(t),link:_me(t),time:vl(t,"time",Ao.gpx),keywords:vl(t,"keywords",Ao.gpx),bounds:Vtt(t)};if(l(n.name)||l(n.desc)||l(n.author)||l(n.copyright)||l(n.link)||l(n.time)||l(n.keywords)||l(n.bounds))return n}}function Ftt(e){let t=Ty(e,"author",Ao.gpx);if(l(t)){let n={name:vl(t,"name",Ao.gpx),email:Btt(t),link:_me(t)};if(l(n.name)||l(n.email)||l(n.link))return n}}function Btt(e){let t=Ty(e,"email",Ao.gpx);if(l(t)){let n=vl(t,"id",Ao.gpx),i=vl(t,"domain",Ao.gpx);return`${n}@${i}`}}function _me(e){let t=Ty(e,"link",Ao.gpx);if(l(t)){let n={href:WD(t,"href"),text:vl(t,"text",Ao.gpx),mimeType:vl(t,"type",Ao.gpx)};if(l(n.href)||l(n.text)||l(n.mimeType))return n}}function ktt(e){let t=Ty(e,"copyright",Ao.gpx);if(l(t)){let n={author:WD(t,"author"),year:vl(t,"year",Ao.gpx),license:vl(t,"license",Ao.gpx)};if(l(n.author)||l(n.year)||l(n.license))return n}}function Vtt(e){let t=Ty(e,"bounds",Ao.gpx);if(l(t)){let n={minLat:HD(t,"minlat",Ao.gpx),maxLat:HD(t,"maxlat",Ao.gpx),minLon:HD(t,"minlon",Ao.gpx),maxLon:HD(t,"maxlon",Ao.gpx)};if(l(n.minLat)||l(n.maxLat)||l(n.minLon)||l(n.maxLon))return n}}var ume={wpt:pme,rte:Ott,trk:Mtt};function Utt(e,t,n,i){let o=Object.keys(ume),r=o.length;for(let s=0;s<r;s++){let a=o[s],c=ume[a],u=t.childNodes,f=u.length;for(let d=0;d<f;d++){let p=u[d];p.localName===a&&Ao.gpx.indexOf(p.namespaceURI)!==-1&&c(e,p,n,i)}}}function fme(e,t,n){let i=e._entityCollection;i.removeAll();let o=t.documentElement,r=WD(o,"version"),s=WD(o,"creator"),a,c=Ntt(o);l(c)&&(a=c.name),o.localName==="gpx"?Utt(e,o,i,n):console.log(`GPX - Unsupported node: ${o.localName}`);let u,f=i.computeAvailability(),d=f.start,p=f.stop,g=K.equals(d,ze.MINIMUM_VALUE),m=K.equals(p,ze.MAXIMUM_VALUE);if(!g||!m){let b;g&&(b=new Date,b.setHours(0,0,0,0),d=K.fromDate(b)),m&&(b=new Date,b.setHours(24,0,0,0),p=K.fromDate(b)),u=new nm,u.startTime=d,u.stopTime=p,u.currentTime=K.clone(d),u.clockRange=Yr.LOOP_STOP,u.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,u.multiplier=Math.round(Math.min(Math.max(K.secondsDifference(p,d)/60,1),31556900))}let x=!1;return e._name!==a&&(e._name=a,x=!0),e._creator!==s&&(e._creator=s,x=!0),ztt(e._metadata,c)&&(e._metadata=c,x=!0),e._version!==r&&(e._version=r,x=!0),u!==e._clock&&(x=!0,e._clock=u),x&&e._changed.raiseEvent(e),qr.setLoading(e,!1),e}function ztt(e,t){return!l(e)&&!l(t)?!1:l(e)&&l(t)?e.name!==t.name||e.dec!==t.desc||e.src!==t.src||e.author!==t.author||e.copyright!==t.copyright||e.link!==t.link||e.time!==t.time||e.bounds!==t.bounds:!0}function Htt(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=n;if(typeof n=="string"||n instanceof De){n=De.createIfNeeded(n),o=n.fetchBlob();let r=e._resourceCredits,s=n.credits;if(l(s)){let a=s.length;for(let c=0;c<a;c++)r.push(s[c])}}return Promise.resolve(o).then(function(r){return r instanceof Blob?Ptt(r).then(function(s){let a,c;try{a=dme.parseFromString(s,"application/xml")}catch(u){c=u.toString()}if(l(c)||a.body||a.documentElement.tagName==="parsererror"){let u=l(c)?c:a.documentElement.firstChild.nodeValue;throw u||(u=a.body.innerText),new ce(u)}return fme(e,a,i)}):fme(e,r,i)}).catch(function(r){return e._error.raiseEvent(e,r),console.log(r),Promise.reject(r)})}function sE(){this._changed=new me,this._error=new me,this._loading=new me,this._clock=void 0,this._entityCollection=new oa(this),this._entityCluster=new vf,this._name=void 0,this._version=void 0,this._creator=void 0,this._metadata=void 0,this._isLoading=!1,this._pinBuilder=new _y}sE.load=function(e,t){return new sE().load(e,t)};Object.defineProperties(sE.prototype,{name:{get:function(){return this._name}},version:{get:function(){return this._version}},creator:{get:function(){return this._creator}},metadata:{get:function(){return this._metadata}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}}});sE.prototype.update=function(e){return!0};sE.prototype.load=function(e,t){if(!l(e))throw new he("data is required.");t=y(t,y.EMPTY_OBJECT),qr.setLoading(this,!0);let n=this._name,i=this;return Htt(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=K.equals(s,ze.MINIMUM_VALUE),u=K.equals(a,ze.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=K.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=K.fromDate(d)),o=new nm,o.startTime=s,o.stopTime=a,o.currentTime=K.clone(s),o.clockRange=Yr.LOOP_STOP,o.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(K.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),qr.setLoading(i,!1),i}).catch(function(o){return qr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};var Lk=sE;function Gtt(e,t){this.position=e,this.headingPitchRoll=t}var Nk=Gtt;var uI=Er(zl(),1);function Hk(e){return Gk(e.map(([t,n])=>new Array(t).fill(n,0,t)))}function Gk(e){return e.reduce((t,n)=>t.concat(Array.isArray(n)?Gk(n):n),[])}var gme=[0,1,2,3].concat(...Hk([[2,4],[2,5],[4,6],[4,7],[8,8],[8,9],[16,10],[16,11],[32,12],[32,13],[64,14],[64,15],[2,0],[1,16],[1,17],[2,18],[2,19],[4,20],[4,21],[8,22],[8,23],[16,24],[16,25],[32,26],[32,27],[64,28],[64,29]]));function sr(){let e=this;function t(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.extra_bits,c=e.stat_desc.extra_base,u=e.stat_desc.max_length,f,d,p,g,m,x,b=0;for(g=0;g<=15;g++)o.bl_count[g]=0;for(r[o.heap[o.heap_max]*2+1]=0,f=o.heap_max+1;f<573;f++)d=o.heap[f],g=r[r[d*2+1]*2+1]+1,g>u&&(g=u,b++),r[d*2+1]=g,!(d>e.max_code)&&(o.bl_count[g]++,m=0,d>=c&&(m=a[d-c]),x=r[d*2],o.opt_len+=x*(g+m),s&&(o.static_len+=x*(s[d*2+1]+m)));if(b!==0){do{for(g=u-1;o.bl_count[g]===0;)g--;o.bl_count[g]--,o.bl_count[g+1]+=2,o.bl_count[u]--,b-=2}while(b>0);for(g=u;g!==0;g--)for(d=o.bl_count[g];d!==0;)p=o.heap[--f],!(p>e.max_code)&&(r[p*2+1]!=g&&(o.opt_len+=(g-r[p*2+1])*r[p*2],r[p*2+1]=g),d--)}}function n(o,r){let s=0;do s|=o&1,o>>>=1,s<<=1;while(--r>0);return s>>>1}function i(o,r,s){let a=[],c=0,u,f,d;for(u=1;u<=15;u++)a[u]=c=c+s[u-1]<<1;for(f=0;f<=r;f++)d=o[f*2+1],d!==0&&(o[f*2]=n(a[d]++,d))}e.build_tree=function(o){let r=e.dyn_tree,s=e.stat_desc.static_tree,a=e.stat_desc.elems,c,u,f=-1,d;for(o.heap_len=0,o.heap_max=573,c=0;c<a;c++)r[c*2]!==0?(o.heap[++o.heap_len]=f=c,o.depth[c]=0):r[c*2+1]=0;for(;o.heap_len<2;)d=o.heap[++o.heap_len]=f<2?++f:0,r[d*2]=1,o.depth[d]=0,o.opt_len--,s&&(o.static_len-=s[d*2+1]);for(e.max_code=f,c=Math.floor(o.heap_len/2);c>=1;c--)o.pqdownheap(r,c);d=a;do c=o.heap[1],o.heap[1]=o.heap[o.heap_len--],o.pqdownheap(r,1),u=o.heap[1],o.heap[--o.heap_max]=c,o.heap[--o.heap_max]=u,r[d*2]=r[c*2]+r[u*2],o.depth[d]=Math.max(o.depth[c],o.depth[u])+1,r[c*2+1]=r[u*2+1]=d,o.heap[1]=d++,o.pqdownheap(r,1);while(o.heap_len>=2);o.heap[--o.heap_max]=o.heap[1],t(o),i(r,e.max_code,o.bl_count)}}sr._length_code=[0,1,2,3,4,5,6,7].concat(...Hk([[2,8],[2,9],[2,10],[2,11],[4,12],[4,13],[4,14],[4,15],[8,16],[8,17],[8,18],[8,19],[16,20],[16,21],[16,22],[16,23],[32,24],[32,25],[32,26],[31,27],[1,28]]));sr.base_length=[0,1,2,3,4,5,6,7,8,10,12,14,16,20,24,28,32,40,48,56,64,80,96,112,128,160,192,224,0];sr.base_dist=[0,1,2,3,4,6,8,12,16,24,32,48,64,96,128,192,256,384,512,768,1024,1536,2048,3072,4096,6144,8192,12288,16384,24576];sr.d_code=function(e){return e<256?gme[e]:gme[256+(e>>>7)]};sr.extra_lbits=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0];sr.extra_dbits=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13];sr.extra_blbits=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,2,3,7];sr.bl_order=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15];function va(e,t,n,i,o){let r=this;r.static_tree=e,r.extra_bits=t,r.extra_base=n,r.elems=i,r.max_length=o}var Wtt=[12,140,76,204,44,172,108,236,28,156,92,220,60,188,124,252,2,130,66,194,34,162,98,226,18,146,82,210,50,178,114,242,10,138,74,202,42,170,106,234,26,154,90,218,58,186,122,250,6,134,70,198,38,166,102,230,22,150,86,214,54,182,118,246,14,142,78,206,46,174,110,238,30,158,94,222,62,190,126,254,1,129,65,193,33,161,97,225,17,145,81,209,49,177,113,241,9,137,73,201,41,169,105,233,25,153,89,217,57,185,121,249,5,133,69,197,37,165,101,229,21,149,85,213,53,181,117,245,13,141,77,205,45,173,109,237,29,157,93,221,61,189,125,253,19,275,147,403,83,339,211,467,51,307,179,435,115,371,243,499,11,267,139,395,75,331,203,459,43,299,171,427,107,363,235,491,27,283,155,411,91,347,219,475,59,315,187,443,123,379,251,507,7,263,135,391,71,327,199,455,39,295,167,423,103,359,231,487,23,279,151,407,87,343,215,471,55,311,183,439,119,375,247,503,15,271,143,399,79,335,207,463,47,303,175,431,111,367,239,495,31,287,159,415,95,351,223,479,63,319,191,447,127,383,255,511,0,64,32,96,16,80,48,112,8,72,40,104,24,88,56,120,4,68,36,100,20,84,52,116,3,131,67,195,35,163,99,227],jtt=Hk([[144,8],[112,9],[24,7],[8,8]]);va.static_ltree=Gk(Wtt.map((e,t)=>[e,jtt[t]]));var qtt=[0,16,8,24,4,20,12,28,2,18,10,26,6,22,14,30,1,17,9,25,5,21,13,29,3,19,11,27,7,23],Ytt=Hk([[30,5]]);va.static_dtree=Gk(qtt.map((e,t)=>[e,Ytt[t]]));va.static_l_desc=new va(va.static_ltree,sr.extra_lbits,257,286,15);va.static_d_desc=new va(va.static_dtree,sr.extra_dbits,0,30,15);va.static_bl_desc=new va(null,sr.extra_blbits,0,19,7);var Xtt=9,Ktt=8;function hm(e,t,n,i,o){let r=this;r.good_length=e,r.max_lazy=t,r.nice_length=n,r.max_chain=i,r.func=o}var xme=0,Uk=1,Kx=2,zd=[new hm(0,0,0,0,xme),new hm(4,4,8,4,Uk),new hm(4,5,16,8,Uk),new hm(4,6,32,32,Uk),new hm(4,4,16,16,Kx),new hm(8,16,32,32,Kx),new hm(8,16,128,128,Kx),new hm(8,32,128,256,Kx),new hm(32,128,258,1024,Kx),new hm(32,258,258,4096,Kx)],Fk=["need dictionary","stream end","","","stream error","data error","","buffer error","",""],Mf=0,Bk=1,jD=2,kk=3,Ztt=32,sq=42,Vk=113,qD=666,aq=8,$tt=0,cq=1,Qtt=2,yr=3,zk=258,xu=zk+yr+1;function yme(e,t,n,i){let o=e[t*2],r=e[n*2];return o<r||o==r&&i[t]<=i[n]}function Jtt(){let e=this,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x,b,T,A,C,S,v,D,O,R,M,L,_,E,w,I,N,B,H,V=new sr,G=new sr,k=new sr;e.depth=[];let W,q,J,j,Z,Q;e.bl_count=[],e.heap=[],N=[],B=[],H=[];function de(){u=2*r,d[g-1]=0;for(let Be=0;Be<g-1;Be++)d[Be]=0;L=zd[_].max_lazy,w=zd[_].good_length,I=zd[_].nice_length,M=zd[_].max_chain,v=0,T=0,O=0,A=R=yr-1,S=0,p=0}function ye(){let Be;for(Be=0;Be<286;Be++)N[Be*2]=0;for(Be=0;Be<30;Be++)B[Be*2]=0;for(Be=0;Be<19;Be++)H[Be*2]=0;N[256*2]=1,e.opt_len=e.static_len=0,q=J=0}function ae(){V.dyn_tree=N,V.stat_desc=va.static_l_desc,G.dyn_tree=B,G.stat_desc=va.static_d_desc,k.dyn_tree=H,k.stat_desc=va.static_bl_desc,Z=0,Q=0,j=8,ye()}e.pqdownheap=function(Be,lt){let Ye=e.heap,$e=Ye[lt],ht=lt<<1;for(;ht<=e.heap_len&&(ht<e.heap_len&&yme(Be,Ye[ht+1],Ye[ht],e.depth)&&ht++,!yme(Be,$e,Ye[ht],e.depth));)Ye[lt]=Ye[ht],lt=ht,ht<<=1;Ye[lt]=$e};function _e(Be,lt){let Ye=-1,$e,ht=Be[0*2+1],Dt=0,pn=7,fo=4;ht===0&&(pn=138,fo=3),Be[(lt+1)*2+1]=65535;for(let er=0;er<=lt;er++)$e=ht,ht=Be[(er+1)*2+1],!(++Dt<pn&&$e==ht)&&(Dt<fo?H[$e*2]+=Dt:$e!==0?($e!=Ye&&H[$e*2]++,H[16*2]++):Dt<=10?H[17*2]++:H[18*2]++,Dt=0,Ye=$e,ht===0?(pn=138,fo=3):$e==ht?(pn=6,fo=3):(pn=7,fo=4))}function xe(){let Be;for(_e(N,V.max_code),_e(B,G.max_code),k.build_tree(e),Be=18;Be>=3&&H[sr.bl_order[Be]*2+1]===0;Be--);return e.opt_len+=3*(Be+1)+5+5+4,Be}function Ie(Be){e.pending_buf[e.pending++]=Be}function Ce(Be){Ie(Be&255),Ie(Be>>>8&255)}function ke(Be){Ie(Be>>8&255),Ie(Be&255&255)}function He(Be,lt){let Ye,$e=lt;Q>16-$e?(Ye=Be,Z|=Ye<<Q&65535,Ce(Z),Z=Ye>>>16-Q,Q+=$e-16):(Z|=Be<<Q&65535,Q+=$e)}function rt(Be,lt){let Ye=Be*2;He(lt[Ye]&65535,lt[Ye+1]&65535)}function Lt(Be,lt){let Ye,$e=-1,ht,Dt=Be[0*2+1],pn=0,fo=7,er=4;for(Dt===0&&(fo=138,er=3),Ye=0;Ye<=lt;Ye++)if(ht=Dt,Dt=Be[(Ye+1)*2+1],!(++pn<fo&&ht==Dt)){if(pn<er)do rt(ht,H);while(--pn!==0);else ht!==0?(ht!=$e&&(rt(ht,H),pn--),rt(16,H),He(pn-3,2)):pn<=10?(rt(17,H),He(pn-3,3)):(rt(18,H),He(pn-11,7));pn=0,$e=ht,Dt===0?(fo=138,er=3):ht==Dt?(fo=6,er=3):(fo=7,er=4)}}function Tt(Be,lt,Ye){let $e;for(He(Be-257,5),He(lt-1,5),He(Ye-4,4),$e=0;$e<Ye;$e++)He(H[sr.bl_order[$e]*2+1],3);Lt(N,Be-1),Lt(B,lt-1)}function we(){Q==16?(Ce(Z),Z=0,Q=0):Q>=8&&(Ie(Z&255),Z>>>=8,Q-=8)}function Xe(){He(cq<<1,3),rt(256,va.static_ltree),we(),1+j+10-Q<9&&(He(cq<<1,3),rt(256,va.static_ltree),we()),j=7}function Qe(Be,lt){let Ye,$e,ht;if(e.dist_buf[q]=Be,e.lc_buf[q]=lt&255,q++,Be===0?N[lt*2]++:(J++,Be--,N[(sr._length_code[lt]+256+1)*2]++,B[sr.d_code(Be)*2]++),!(q&8191)&&_>2){for(Ye=q*8,$e=v-T,ht=0;ht<30;ht++)Ye+=B[ht*2]*(5+sr.extra_dbits[ht]);if(Ye>>>=3,J<Math.floor(q/2)&&Ye<Math.floor($e/2))return!0}return q==W-1}function We(Be,lt){let Ye,$e,ht=0,Dt,pn;if(q!==0)do Ye=e.dist_buf[ht],$e=e.lc_buf[ht],ht++,Ye===0?rt($e,Be):(Dt=sr._length_code[$e],rt(Dt+256+1,Be),pn=sr.extra_lbits[Dt],pn!==0&&($e-=sr.base_length[Dt],He($e,pn)),Ye--,Dt=sr.d_code(Ye),rt(Dt,lt),pn=sr.extra_dbits[Dt],pn!==0&&(Ye-=sr.base_dist[Dt],He(Ye,pn)));while(ht<q);rt(256,Be),j=Be[256*2+1]}function Ut(){Q>8?Ce(Z):Q>0&&Ie(Z&255),Z=0,Q=0}function Te(Be,lt,Ye){Ut(),j=8,Ye&&(Ce(lt),Ce(~lt)),e.pending_buf.set(c.subarray(Be,Be+lt),e.pending),e.pending+=lt}function Ae(Be,lt,Ye){He(($tt<<1)+(Ye?1:0),3),Te(Be,lt,!0)}function st(Be,lt,Ye){let $e,ht,Dt=0;_>0?(V.build_tree(e),G.build_tree(e),Dt=xe(),$e=e.opt_len+3+7>>>3,ht=e.static_len+3+7>>>3,ht<=$e&&($e=ht)):$e=ht=lt+5,lt+4<=$e&&Be!=-1?Ae(Be,lt,Ye):ht==$e?(He((cq<<1)+(Ye?1:0),3),We(va.static_ltree,va.static_dtree)):(He((Qtt<<1)+(Ye?1:0),3),Tt(V.max_code+1,G.max_code+1,Dt+1),We(N,B)),ye(),Ye&&Ut()}function Fi(Be){st(T>=0?T:-1,v-T,Be),T=v,t.flush_pending()}function ut(){let Be,lt,Ye,$e;do{if($e=u-O-v,$e===0&&v===0&&O===0)$e=r;else if($e==-1)$e--;else if(v>=r+r-xu){c.set(c.subarray(r,r+r),0),D-=r,v-=r,T-=r,Be=g,Ye=Be;do lt=d[--Ye]&65535,d[Ye]=lt>=r?lt-r:0;while(--Be!==0);Be=r,Ye=Be;do lt=f[--Ye]&65535,f[Ye]=lt>=r?lt-r:0;while(--Be!==0);$e+=r}if(t.avail_in===0)return;Be=t.read_buf(c,v+O,$e),O+=Be,O>=yr&&(p=c[v]&255,p=(p<<b^c[v+1]&255)&x)}while(O<xu&&t.avail_in!==0)}function _o(Be){let lt=65535,Ye;for(lt>i-5&&(lt=i-5);;){if(O<=1){if(ut(),O===0&&Be==0)return Mf;if(O===0)break}if(v+=O,O=0,Ye=T+lt,(v===0||v>=Ye)&&(O=v-Ye,v=Ye,Fi(!1),t.avail_out===0)||v-T>=r-xu&&(Fi(!1),t.avail_out===0))return Mf}return Fi(Be==4),t.avail_out===0?Be==4?jD:Mf:Be==4?kk:Bk}function cr(Be){let lt=M,Ye=v,$e,ht,Dt=R,pn=v>r-xu?v-(r-xu):0,fo=I,er=a,Oa=v+zk,Ma=c[Ye+Dt-1],Jr=c[Ye+Dt];R>=w&&(lt>>=2),fo>O&&(fo=O);do if($e=Be,!(c[$e+Dt]!=Jr||c[$e+Dt-1]!=Ma||c[$e]!=c[Ye]||c[++$e]!=c[Ye+1])){Ye+=2,$e++;do;while(c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&c[++Ye]==c[++$e]&&Ye<Oa);if(ht=zk-(Oa-Ye),Ye=Oa-zk,ht>Dt){if(D=Be,Dt=ht,ht>=fo)break;Ma=c[Ye+Dt-1],Jr=c[Ye+Dt]}}while((Be=f[Be&er]&65535)>pn&&--lt!==0);return Dt<=O?Dt:O}function mc(Be){let lt=0,Ye;for(;;){if(O<xu){if(ut(),O<xu&&Be==0)return Mf;if(O===0)break}if(O>=yr&&(p=(p<<b^c[v+(yr-1)]&255)&x,lt=d[p]&65535,f[v&a]=d[p],d[p]=v),lt!==0&&(v-lt&65535)<=r-xu&&E!=2&&(A=cr(lt)),A>=yr)if(Ye=Qe(v-D,A-yr),O-=A,A<=L&&O>=yr){A--;do v++,p=(p<<b^c[v+(yr-1)]&255)&x,lt=d[p]&65535,f[v&a]=d[p],d[p]=v;while(--A!==0);v++}else v+=A,A=0,p=c[v]&255,p=(p<<b^c[v+1]&255)&x;else Ye=Qe(0,c[v]&255),O--,v++;if(Ye&&(Fi(!1),t.avail_out===0))return Mf}return Fi(Be==4),t.avail_out===0?Be==4?jD:Mf:Be==4?kk:Bk}function Tr(Be){let lt=0,Ye,$e;for(;;){if(O<xu){if(ut(),O<xu&&Be==0)return Mf;if(O===0)break}if(O>=yr&&(p=(p<<b^c[v+(yr-1)]&255)&x,lt=d[p]&65535,f[v&a]=d[p],d[p]=v),R=A,C=D,A=yr-1,lt!==0&&R<L&&(v-lt&65535)<=r-xu&&(E!=2&&(A=cr(lt)),A<=5&&(E==1||A==yr&&v-D>4096)&&(A=yr-1)),R>=yr&&A<=R){$e=v+O-yr,Ye=Qe(v-1-C,R-yr),O-=R-1,R-=2;do++v<=$e&&(p=(p<<b^c[v+(yr-1)]&255)&x,lt=d[p]&65535,f[v&a]=d[p],d[p]=v);while(--R!==0);if(S=0,A=yr-1,v++,Ye&&(Fi(!1),t.avail_out===0))return Mf}else if(S!==0){if(Ye=Qe(0,c[v-1]&255),Ye&&Fi(!1),v++,O--,t.avail_out===0)return Mf}else S=1,v++,O--}return S!==0&&(Ye=Qe(0,c[v-1]&255),S=0),Fi(Be==4),t.avail_out===0?Be==4?jD:Mf:Be==4?kk:Bk}function Qr(Be){return Be.total_in=Be.total_out=0,Be.msg=null,e.pending=0,e.pending_out=0,n=Vk,o=0,ae(),de(),0}e.deflateInit=function(Be,lt,Ye,$e,ht,Dt){return $e||($e=aq),ht||(ht=Ktt),Dt||(Dt=0),Be.msg=null,lt==-1&&(lt=6),ht<1||ht>Xtt||$e!=aq||Ye<9||Ye>15||lt<0||lt>9||Dt<0||Dt>2?-2:(Be.dstate=e,s=Ye,r=1<<s,a=r-1,m=ht+7,g=1<<m,x=g-1,b=Math.floor((m+yr-1)/yr),c=new Uint8Array(r*2),f=[],d=[],W=1<<ht+6,e.pending_buf=new Uint8Array(W*4),i=W*4,e.dist_buf=new Uint16Array(W),e.lc_buf=new Uint8Array(W),_=lt,E=Dt,Qr(Be))},e.deflateEnd=function(){return n!=sq&&n!=Vk&&n!=qD?-2:(e.lc_buf=null,e.dist_buf=null,e.pending_buf=null,d=null,f=null,c=null,e.dstate=null,n==Vk?-3:0)},e.deflateParams=function(Be,lt,Ye){let $e=0;return lt==-1&&(lt=6),lt<0||lt>9||Ye<0||Ye>2?-2:(zd[_].func!=zd[lt].func&&Be.total_in!==0&&($e=Be.deflate(1)),_!=lt&&(_=lt,L=zd[_].max_lazy,w=zd[_].good_length,I=zd[_].nice_length,M=zd[_].max_chain),E=Ye,$e)},e.deflateSetDictionary=function(Be,lt,Ye){let $e=Ye,ht,Dt=0;if(!lt||n!=sq)return-2;if($e<yr)return 0;for($e>r-xu&&($e=r-xu,Dt=Ye-$e),c.set(lt.subarray(Dt,Dt+$e),0),v=$e,T=$e,p=c[0]&255,p=(p<<b^c[1]&255)&x,ht=0;ht<=$e-yr;ht++)p=(p<<b^c[ht+(yr-1)]&255)&x,f[ht&a]=d[p],d[p]=ht;return 0},e.deflate=function(Be,lt){let Ye,$e,ht,Dt,pn;if(lt>4||lt<0)return-2;if(!Be.next_out||!Be.next_in&&Be.avail_in!==0||n==qD&<!=4)return Be.msg=Fk[4],-2;if(Be.avail_out===0)return Be.msg=Fk[7],-5;if(t=Be,Dt=o,o=lt,n==sq&&($e=aq+(s-8<<4)<<8,ht=(_-1&255)>>1,ht>3&&(ht=3),$e|=ht<<6,v!==0&&($e|=Ztt),$e+=31-$e%31,n=Vk,ke($e)),e.pending!==0){if(t.flush_pending(),t.avail_out===0)return o=-1,0}else if(t.avail_in===0&<<=Dt&<!=4)return t.msg=Fk[7],-5;if(n==qD&&t.avail_in!==0)return Be.msg=Fk[7],-5;if(t.avail_in!==0||O!==0||lt!=0&&n!=qD){switch(pn=-1,zd[_].func){case xme:pn=_o(lt);break;case Uk:pn=mc(lt);break;case Kx:pn=Tr(lt);break;default:}if((pn==jD||pn==kk)&&(n=qD),pn==Mf||pn==jD)return t.avail_out===0&&(o=-1),0;if(pn==Bk){if(lt==1)Xe();else if(Ae(0,0,!1),lt==3)for(Ye=0;Ye<g;Ye++)d[Ye]=0;if(t.flush_pending(),t.avail_out===0)return o=-1,0}}return lt!=4?0:1}}function bme(){let e=this;e.next_in_index=0,e.next_out_index=0,e.avail_in=0,e.total_in=0,e.avail_out=0,e.total_out=0}bme.prototype={deflateInit(e,t){let n=this;return n.dstate=new Jtt,t||(t=15),n.dstate.deflateInit(n,e,t)},deflate(e){let t=this;return t.dstate?t.dstate.deflate(t,e):-2},deflateEnd(){let e=this;if(!e.dstate)return-2;let t=e.dstate.deflateEnd();return e.dstate=null,t},deflateParams(e,t){let n=this;return n.dstate?n.dstate.deflateParams(n,e,t):-2},deflateSetDictionary(e,t){let n=this;return n.dstate?n.dstate.deflateSetDictionary(n,e,t):-2},read_buf(e,t,n){let i=this,o=i.avail_in;return o>n&&(o=n),o===0?0:(i.avail_in-=o,e.set(i.next_in.subarray(i.next_in_index,i.next_in_index+o),t),i.next_in_index+=o,i.total_in+=o,o)},flush_pending(){let e=this,t=e.dstate.pending;t>e.avail_out&&(t=e.avail_out),t!==0&&(e.next_out.set(e.dstate.pending_buf.subarray(e.dstate.pending_out,e.dstate.pending_out+t),e.next_out_index),e.next_out_index+=t,e.dstate.pending_out+=t,e.total_out+=t,e.avail_out-=t,e.dstate.pending-=t,e.dstate.pending===0&&(e.dstate.pending_out=0))}};function Tme(e){let t=this,n=new bme,i=ent(e&&e.chunkSize?e.chunkSize:64*1024),o=0,r=new Uint8Array(i),s=e?e.level:-1;typeof s>"u"&&(s=-1),n.deflateInit(s),n.next_out=r,t.append=function(a,c){let u,f,d=0,p=0,g=0,m=[];if(a.length){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,u=n.deflate(o),u!=0)throw new Error("deflating: "+n.msg);n.next_out_index&&(n.next_out_index==i?m.push(new Uint8Array(r)):m.push(r.subarray(0,n.next_out_index))),g+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=d&&(c(n.next_in_index),d=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return m.length>1?(f=new Uint8Array(g),m.forEach(function(x){f.set(x,p),p+=x.length})):f=m[0]?new Uint8Array(m[0]):new Uint8Array,f}},t.flush=function(){let a,c,u=0,f=0,d=[];do{if(n.next_out_index=0,n.avail_out=i,a=n.deflate(4),a!=1&&a!=0)throw new Error("deflating: "+n.msg);i-n.avail_out>0&&d.push(r.slice(0,n.next_out_index)),f+=n.next_out_index}while(n.avail_in>0||n.avail_out===0);return n.deflateEnd(),c=new Uint8Array(f),d.forEach(function(p){c.set(p,u),u+=p.length}),c}}function ent(e){return e+5*(Math.floor(e/16383)+1)}var bu=[0,1,3,7,15,31,63,127,255,511,1023,2047,4095,8191,16383,32767,65535],zme=1440,tnt=0,nnt=4,int=9,ont=5,rnt=[96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,192,80,7,10,0,8,96,0,8,32,0,9,160,0,8,0,0,8,128,0,8,64,0,9,224,80,7,6,0,8,88,0,8,24,0,9,144,83,7,59,0,8,120,0,8,56,0,9,208,81,7,17,0,8,104,0,8,40,0,9,176,0,8,8,0,8,136,0,8,72,0,9,240,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,200,81,7,13,0,8,100,0,8,36,0,9,168,0,8,4,0,8,132,0,8,68,0,9,232,80,7,8,0,8,92,0,8,28,0,9,152,84,7,83,0,8,124,0,8,60,0,9,216,82,7,23,0,8,108,0,8,44,0,9,184,0,8,12,0,8,140,0,8,76,0,9,248,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,196,81,7,11,0,8,98,0,8,34,0,9,164,0,8,2,0,8,130,0,8,66,0,9,228,80,7,7,0,8,90,0,8,26,0,9,148,84,7,67,0,8,122,0,8,58,0,9,212,82,7,19,0,8,106,0,8,42,0,9,180,0,8,10,0,8,138,0,8,74,0,9,244,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,204,81,7,15,0,8,102,0,8,38,0,9,172,0,8,6,0,8,134,0,8,70,0,9,236,80,7,9,0,8,94,0,8,30,0,9,156,84,7,99,0,8,126,0,8,62,0,9,220,82,7,27,0,8,110,0,8,46,0,9,188,0,8,14,0,8,142,0,8,78,0,9,252,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,194,80,7,10,0,8,97,0,8,33,0,9,162,0,8,1,0,8,129,0,8,65,0,9,226,80,7,6,0,8,89,0,8,25,0,9,146,83,7,59,0,8,121,0,8,57,0,9,210,81,7,17,0,8,105,0,8,41,0,9,178,0,8,9,0,8,137,0,8,73,0,9,242,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,202,81,7,13,0,8,101,0,8,37,0,9,170,0,8,5,0,8,133,0,8,69,0,9,234,80,7,8,0,8,93,0,8,29,0,9,154,84,7,83,0,8,125,0,8,61,0,9,218,82,7,23,0,8,109,0,8,45,0,9,186,0,8,13,0,8,141,0,8,77,0,9,250,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,198,81,7,11,0,8,99,0,8,35,0,9,166,0,8,3,0,8,131,0,8,67,0,9,230,80,7,7,0,8,91,0,8,27,0,9,150,84,7,67,0,8,123,0,8,59,0,9,214,82,7,19,0,8,107,0,8,43,0,9,182,0,8,11,0,8,139,0,8,75,0,9,246,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,206,81,7,15,0,8,103,0,8,39,0,9,174,0,8,7,0,8,135,0,8,71,0,9,238,80,7,9,0,8,95,0,8,31,0,9,158,84,7,99,0,8,127,0,8,63,0,9,222,82,7,27,0,8,111,0,8,47,0,9,190,0,8,15,0,8,143,0,8,79,0,9,254,96,7,256,0,8,80,0,8,16,84,8,115,82,7,31,0,8,112,0,8,48,0,9,193,80,7,10,0,8,96,0,8,32,0,9,161,0,8,0,0,8,128,0,8,64,0,9,225,80,7,6,0,8,88,0,8,24,0,9,145,83,7,59,0,8,120,0,8,56,0,9,209,81,7,17,0,8,104,0,8,40,0,9,177,0,8,8,0,8,136,0,8,72,0,9,241,80,7,4,0,8,84,0,8,20,85,8,227,83,7,43,0,8,116,0,8,52,0,9,201,81,7,13,0,8,100,0,8,36,0,9,169,0,8,4,0,8,132,0,8,68,0,9,233,80,7,8,0,8,92,0,8,28,0,9,153,84,7,83,0,8,124,0,8,60,0,9,217,82,7,23,0,8,108,0,8,44,0,9,185,0,8,12,0,8,140,0,8,76,0,9,249,80,7,3,0,8,82,0,8,18,85,8,163,83,7,35,0,8,114,0,8,50,0,9,197,81,7,11,0,8,98,0,8,34,0,9,165,0,8,2,0,8,130,0,8,66,0,9,229,80,7,7,0,8,90,0,8,26,0,9,149,84,7,67,0,8,122,0,8,58,0,9,213,82,7,19,0,8,106,0,8,42,0,9,181,0,8,10,0,8,138,0,8,74,0,9,245,80,7,5,0,8,86,0,8,22,192,8,0,83,7,51,0,8,118,0,8,54,0,9,205,81,7,15,0,8,102,0,8,38,0,9,173,0,8,6,0,8,134,0,8,70,0,9,237,80,7,9,0,8,94,0,8,30,0,9,157,84,7,99,0,8,126,0,8,62,0,9,221,82,7,27,0,8,110,0,8,46,0,9,189,0,8,14,0,8,142,0,8,78,0,9,253,96,7,256,0,8,81,0,8,17,85,8,131,82,7,31,0,8,113,0,8,49,0,9,195,80,7,10,0,8,97,0,8,33,0,9,163,0,8,1,0,8,129,0,8,65,0,9,227,80,7,6,0,8,89,0,8,25,0,9,147,83,7,59,0,8,121,0,8,57,0,9,211,81,7,17,0,8,105,0,8,41,0,9,179,0,8,9,0,8,137,0,8,73,0,9,243,80,7,4,0,8,85,0,8,21,80,8,258,83,7,43,0,8,117,0,8,53,0,9,203,81,7,13,0,8,101,0,8,37,0,9,171,0,8,5,0,8,133,0,8,69,0,9,235,80,7,8,0,8,93,0,8,29,0,9,155,84,7,83,0,8,125,0,8,61,0,9,219,82,7,23,0,8,109,0,8,45,0,9,187,0,8,13,0,8,141,0,8,77,0,9,251,80,7,3,0,8,83,0,8,19,85,8,195,83,7,35,0,8,115,0,8,51,0,9,199,81,7,11,0,8,99,0,8,35,0,9,167,0,8,3,0,8,131,0,8,67,0,9,231,80,7,7,0,8,91,0,8,27,0,9,151,84,7,67,0,8,123,0,8,59,0,9,215,82,7,19,0,8,107,0,8,43,0,9,183,0,8,11,0,8,139,0,8,75,0,9,247,80,7,5,0,8,87,0,8,23,192,8,0,83,7,51,0,8,119,0,8,55,0,9,207,81,7,15,0,8,103,0,8,39,0,9,175,0,8,7,0,8,135,0,8,71,0,9,239,80,7,9,0,8,95,0,8,31,0,9,159,84,7,99,0,8,127,0,8,63,0,9,223,82,7,27,0,8,111,0,8,47,0,9,191,0,8,15,0,8,143,0,8,79,0,9,255],snt=[80,5,1,87,5,257,83,5,17,91,5,4097,81,5,5,89,5,1025,85,5,65,93,5,16385,80,5,3,88,5,513,84,5,33,92,5,8193,82,5,9,90,5,2049,86,5,129,192,5,24577,80,5,2,87,5,385,83,5,25,91,5,6145,81,5,7,89,5,1537,85,5,97,93,5,24577,80,5,4,88,5,769,84,5,49,92,5,12289,82,5,13,90,5,3073,86,5,193,192,5,24577],ant=[3,4,5,6,7,8,9,10,11,13,15,17,19,23,27,31,35,43,51,59,67,83,99,115,131,163,195,227,258,0,0],cnt=[0,0,0,0,0,0,0,0,1,1,1,1,2,2,2,2,3,3,3,3,4,4,4,4,5,5,5,5,0,112,112],lnt=[1,2,3,4,5,7,9,13,17,25,33,49,65,97,129,193,257,385,513,769,1025,1537,2049,3073,4097,6145,8193,12289,16385,24577],unt=[0,0,0,0,1,1,2,2,3,3,4,4,5,5,6,6,7,7,8,8,9,9,10,10,11,11,12,12,13,13],Ay=15;function dq(){let e=this,t,n,i,o,r,s;function a(u,f,d,p,g,m,x,b,T,A,C){let S,v,D,O,R,M,L,_,E,w,I,N,B,H,V;w=0,R=d;do i[u[f+w]]++,w++,R--;while(R!==0);if(i[0]==d)return x[0]=-1,b[0]=0,0;for(_=b[0],M=1;M<=Ay&&i[M]===0;M++);for(L=M,_<M&&(_=M),R=Ay;R!==0&&i[R]===0;R--);for(D=R,_>R&&(_=R),b[0]=_,H=1<<M;M<R;M++,H<<=1)if((H-=i[M])<0)return-3;if((H-=i[R])<0)return-3;for(i[R]+=H,s[1]=M=0,w=1,B=2;--R!==0;)s[B]=M+=i[w],B++,w++;R=0,w=0;do(M=u[f+w])!==0&&(C[s[M]++]=R),w++;while(++R<d);for(d=s[D],s[0]=R=0,w=0,O=-1,N=-_,r[0]=0,I=0,V=0;L<=D;L++)for(S=i[L];S--!==0;){for(;L>N+_;){if(O++,N+=_,V=D-N,V=V>_?_:V,(v=1<<(M=L-N))>S+1&&(v-=S+1,B=L,M<V))for(;++M<V&&!((v<<=1)<=i[++B]);)v-=i[B];if(V=1<<M,A[0]+V>zme)return-3;r[O]=I=A[0],A[0]+=V,O!==0?(s[O]=R,o[0]=M,o[1]=_,M=R>>>N-_,o[2]=I-r[O-1]-M,T.set(o,(r[O-1]+M)*3)):x[0]=I}for(o[1]=L-N,w>=d?o[0]=192:C[w]<p?(o[0]=C[w]<256?0:96,o[2]=C[w++]):(o[0]=m[C[w]-p]+16+64,o[2]=g[C[w++]-p]),v=1<<L-N,M=R>>>N;M<V;M+=v)T.set(o,(I+M)*3);for(M=1<<L-1;R&M;M>>>=1)R^=M;for(R^=M,E=(1<<N)-1;(R&E)!=s[O];)O--,N-=_,E=(1<<N)-1}return H!==0&&D!=1?-5:0}function c(u){let f;for(t||(t=[],n=[],i=new Int32Array(Ay+1),o=[],r=new Int32Array(Ay),s=new Int32Array(Ay+1)),n.length<u&&(n=[]),f=0;f<u;f++)n[f]=0;for(f=0;f<Ay+1;f++)i[f]=0;for(f=0;f<3;f++)o[f]=0;r.set(i.subarray(0,Ay),0),s.set(i.subarray(0,Ay+1),0)}e.inflate_trees_bits=function(u,f,d,p,g){let m;return c(19),t[0]=0,m=a(u,0,19,19,null,null,d,f,p,t,n),m==-3?g.msg="oversubscribed dynamic bit lengths tree":(m==-5||f[0]===0)&&(g.msg="incomplete dynamic bit lengths tree",m=-3),m},e.inflate_trees_dynamic=function(u,f,d,p,g,m,x,b,T){let A;return c(288),t[0]=0,A=a(d,0,u,257,ant,cnt,m,p,b,t,n),A!=0||p[0]===0?(A==-3?T.msg="oversubscribed literal/length tree":A!=-4&&(T.msg="incomplete literal/length tree",A=-3),A):(c(288),A=a(d,u,f,0,lnt,unt,x,g,b,t,n),A!=0||g[0]===0&&u>257?(A==-3?T.msg="oversubscribed distance tree":A==-5?(T.msg="incomplete distance tree",A=-3):A!=-4&&(T.msg="empty distance tree with lengths",A=-3),A):0)}}dq.inflate_trees_fixed=function(e,t,n,i){return e[0]=int,t[0]=ont,n[0]=rnt,i[0]=snt,0};var Wk=0,Ame=1,Cme=2,Eme=3,Sme=4,vme=5,wme=6,lq=7,Dme=8,jk=9;function fnt(){let e=this,t,n=0,i,o=0,r=0,s=0,a=0,c=0,u=0,f=0,d,p=0,g,m=0;function x(b,T,A,C,S,v,D,O){let R,M,L,_,E,w,I,N,B,H,V,G,k,W,q,J;I=O.next_in_index,N=O.avail_in,E=D.bitb,w=D.bitk,B=D.write,H=B<D.read?D.read-B-1:D.end-B,V=bu[b],G=bu[T];do{for(;w<20;)N--,E|=(O.read_byte(I++)&255)<<w,w+=8;if(R=E&V,M=A,L=C,J=(L+R)*3,(_=M[J])===0){E>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],H--;continue}do{if(E>>=M[J+1],w-=M[J+1],_&16){for(_&=15,k=M[J+2]+(E&bu[_]),E>>=_,w-=_;w<15;)N--,E|=(O.read_byte(I++)&255)<<w,w+=8;R=E&G,M=S,L=v,J=(L+R)*3,_=M[J];do if(E>>=M[J+1],w-=M[J+1],_&16){for(_&=15;w<_;)N--,E|=(O.read_byte(I++)&255)<<w,w+=8;if(W=M[J+2]+(E&bu[_]),E>>=_,w-=_,H-=k,B>=W)q=B-W,B-q>0&&2>B-q?(D.win[B++]=D.win[q++],D.win[B++]=D.win[q++],k-=2):(D.win.set(D.win.subarray(q,q+2),B),B+=2,q+=2,k-=2);else{q=B-W;do q+=D.end;while(q<0);if(_=D.end-q,k>_){if(k-=_,B-q>0&&_>B-q)do D.win[B++]=D.win[q++];while(--_!==0);else D.win.set(D.win.subarray(q,q+_),B),B+=_,q+=_,_=0;q=0}}if(B-q>0&&k>B-q)do D.win[B++]=D.win[q++];while(--k!==0);else D.win.set(D.win.subarray(q,q+k),B),B+=k,q+=k,k=0;break}else if(!(_&64))R+=M[J+2],R+=E&bu[_],J=(L+R)*3,_=M[J];else return O.msg="invalid distance code",k=O.avail_in-N,k=w>>3<k?w>>3:k,N+=k,I-=k,w-=k<<3,D.bitb=E,D.bitk=w,O.avail_in=N,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3;while(!0);break}if(_&64)return _&32?(k=O.avail_in-N,k=w>>3<k?w>>3:k,N+=k,I-=k,w-=k<<3,D.bitb=E,D.bitk=w,O.avail_in=N,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,1):(O.msg="invalid literal/length code",k=O.avail_in-N,k=w>>3<k?w>>3:k,N+=k,I-=k,w-=k<<3,D.bitb=E,D.bitk=w,O.avail_in=N,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,-3);if(R+=M[J+2],R+=E&bu[_],J=(L+R)*3,(_=M[J])===0){E>>=M[J+1],w-=M[J+1],D.win[B++]=M[J+2],H--;break}}while(!0)}while(H>=258&&N>=10);return k=O.avail_in-N,k=w>>3<k?w>>3:k,N+=k,I-=k,w-=k<<3,D.bitb=E,D.bitk=w,O.avail_in=N,O.total_in+=I-O.next_in_index,O.next_in_index=I,D.write=B,0}e.init=function(b,T,A,C,S,v){t=Wk,u=b,f=T,d=A,p=C,g=S,m=v,i=null},e.proc=function(b,T,A){let C,S,v,D=0,O=0,R=0,M,L,_,E;for(R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,L=b.write,_=L<b.read?b.read-L-1:b.end-L;;)switch(t){case Wk:if(_>=258&&M>=10&&(b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,A=x(u,f,d,p,g,m,b,T),R=T.next_in_index,M=T.avail_in,D=b.bitb,O=b.bitk,L=b.write,_=L<b.read?b.read-L-1:b.end-L,A!=0)){t=A==1?lq:jk;break}r=u,i=d,o=p,t=Ame;case Ame:for(C=r;O<C;){if(M!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(S=(o+(D&bu[C]))*3,D>>>=i[S+1],O-=i[S+1],v=i[S],v===0){s=i[S+2],t=wme;break}if(v&16){a=v&15,n=i[S+2],t=Cme;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}if(v&32){t=lq;break}return t=jk,T.msg="invalid literal/length code",A=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);case Cme:for(C=a;O<C;){if(M!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}n+=D&bu[C],D>>=C,O-=C,r=f,i=g,o=m,t=Eme;case Eme:for(C=r;O<C;){if(M!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}if(S=(o+(D&bu[C]))*3,D>>=i[S+1],O-=i[S+1],v=i[S],v&16){a=v&15,c=i[S+2],t=Sme;break}if(!(v&64)){r=v,o=S/3+i[S+2];break}return t=jk,T.msg="invalid distance code",A=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);case Sme:for(C=a;O<C;){if(M!==0)A=0;else return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);M--,D|=(T.read_byte(R++)&255)<<O,O+=8}c+=D&bu[C],D>>=C,O-=C,t=vme;case vme:for(E=L-c;E<0;)E+=b.end;for(;n!==0;){if(_===0&&(L==b.end&&b.read!==0&&(L=0,_=L<b.read?b.read-L-1:b.end-L),_===0&&(b.write=L,A=b.inflate_flush(T,A),L=b.write,_=L<b.read?b.read-L-1:b.end-L,L==b.end&&b.read!==0&&(L=0,_=L<b.read?b.read-L-1:b.end-L),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);b.win[L++]=b.win[E++],_--,E==b.end&&(E=0),n--}t=Wk;break;case wme:if(_===0&&(L==b.end&&b.read!==0&&(L=0,_=L<b.read?b.read-L-1:b.end-L),_===0&&(b.write=L,A=b.inflate_flush(T,A),L=b.write,_=L<b.read?b.read-L-1:b.end-L,L==b.end&&b.read!==0&&(L=0,_=L<b.read?b.read-L-1:b.end-L),_===0)))return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);A=0,b.win[L++]=s,_--,t=Wk;break;case lq:if(O>7&&(O-=8,M++,R--),b.write=L,A=b.inflate_flush(T,A),L=b.write,_=L<b.read?b.read-L-1:b.end-L,b.read!=b.write)return b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);t=Dme;case Dme:return A=1,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);case jk:return A=-3,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A);default:return A=-2,b.bitb=D,b.bitk=O,T.avail_in=M,T.total_in+=R-T.next_in_index,T.next_in_index=R,b.write=L,b.inflate_flush(T,A)}},e.free=function(){}}var Ime=[16,17,18,0,8,7,9,6,10,5,11,4,12,3,13,2,14,1,15],aE=0,uq=1,Pme=2,Rme=3,Ome=4,Mme=5,qk=6,Yk=7,Lme=8,Zx=9;function dnt(e,t){let n=this,i=aE,o=0,r=0,s=0,a,c=[0],u=[0],f=new fnt,d=0,p=new Int32Array(zme*3),g=0,m=new dq;n.bitk=0,n.bitb=0,n.win=new Uint8Array(t),n.end=t,n.read=0,n.write=0,n.reset=function(x,b){b&&(b[0]=g),i==qk&&f.free(x),i=aE,n.bitk=0,n.bitb=0,n.read=n.write=0},n.reset(e,null),n.inflate_flush=function(x,b){let T,A,C;return A=x.next_out_index,C=n.read,T=(C<=n.write?n.write:n.end)-C,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(C,C+T),A),A+=T,C+=T,C==n.end&&(C=0,n.write==n.end&&(n.write=0),T=n.write-C,T>x.avail_out&&(T=x.avail_out),T!==0&&b==-5&&(b=0),x.avail_out-=T,x.total_out+=T,x.next_out.set(n.win.subarray(C,C+T),A),A+=T,C+=T),x.next_out_index=A,n.read=C,b},n.proc=function(x,b){let T,A,C,S,v,D,O,R;for(S=x.next_in_index,v=x.avail_in,A=n.bitb,C=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D;;){let M,L,_,E,w,I,N,B;switch(i){case aE:for(;C<3;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}switch(T=A&7,d=T&1,T>>>1){case 0:A>>>=3,C-=3,T=C&7,A>>>=T,C-=T,i=uq;break;case 1:M=[],L=[],_=[[]],E=[[]],dq.inflate_trees_fixed(M,L,_,E),f.init(M[0],L[0],_[0],0,E[0],0),A>>>=3,C-=3,i=qk;break;case 2:A>>>=3,C-=3,i=Rme;break;case 3:return A>>>=3,C-=3,i=Zx,x.msg="invalid block type",b=-3,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b)}break;case uq:for(;C<32;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}if((~A>>>16&65535)!=(A&65535))return i=Zx,x.msg="invalid stored block lengths",b=-3,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);o=A&65535,A=C=0,i=o!==0?Pme:d!==0?Yk:aE;break;case Pme:if(v===0||O===0&&(D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0&&(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,D==n.end&&n.read!==0&&(D=0,O=D<n.read?n.read-D-1:n.end-D),O===0)))return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);if(b=0,T=o,T>v&&(T=v),T>O&&(T=O),n.win.set(x.read_buf(S,T),D),S+=T,v-=T,D+=T,O-=T,(o-=T)!==0)break;i=d!==0?Yk:aE;break;case Rme:for(;C<14;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(r=T=A&16383,(T&31)>29||(T>>5&31)>29)return i=Zx,x.msg="too many length or distance symbols",b=-3,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);if(T=258+(T&31)+(T>>5&31),!a||a.length<T)a=[];else for(R=0;R<T;R++)a[R]=0;A>>>=14,C-=14,s=0,i=Ome;case Ome:for(;s<4+(r>>>10);){for(;C<3;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}a[Ime[s++]]=A&7,A>>>=3,C-=3}for(;s<19;)a[Ime[s++]]=0;if(c[0]=7,T=m.inflate_trees_bits(a,c,u,p,x),T!=0)return b=T,b==-3&&(a=null,i=Zx),n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);s=0,i=Mme;case Mme:for(;T=r,!(s>=258+(T&31)+(T>>5&31));){let H,V;for(T=c[0];C<T;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(T=p[(u[0]+(A&bu[T]))*3+1],V=p[(u[0]+(A&bu[T]))*3+2],V<16)A>>>=T,C-=T,a[s++]=V;else{for(R=V==18?7:V-14,H=V==18?11:3;C<T+R;){if(v!==0)b=0;else return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);v--,A|=(x.read_byte(S++)&255)<<C,C+=8}if(A>>>=T,C-=T,H+=A&bu[R],A>>>=R,C-=R,R=s,T=r,R+H>258+(T&31)+(T>>5&31)||V==16&&R<1)return a=null,i=Zx,x.msg="invalid bit length repeat",b=-3,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);V=V==16?a[R-1]:0;do a[R++]=V;while(--H!==0);s=R}}if(u[0]=-1,w=[],I=[],N=[],B=[],w[0]=9,I[0]=6,T=r,T=m.inflate_trees_dynamic(257+(T&31),1+(T>>5&31),a,w,I,N,B,p,x),T!=0)return T==-3&&(a=null,i=Zx),b=T,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);f.init(w[0],I[0],p,N[0],p,B[0]),i=qk;case qk:if(n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,(b=f.proc(n,x,b))!=1)return n.inflate_flush(x,b);if(b=0,f.free(x),S=x.next_in_index,v=x.avail_in,A=n.bitb,C=n.bitk,D=n.write,O=D<n.read?n.read-D-1:n.end-D,d===0){i=aE;break}i=Yk;case Yk:if(n.write=D,b=n.inflate_flush(x,b),D=n.write,O=D<n.read?n.read-D-1:n.end-D,n.read!=n.write)return n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);i=Lme;case Lme:return b=1,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);case Zx:return b=-3,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b);default:return b=-2,n.bitb=A,n.bitk=C,x.avail_in=v,x.total_in+=S-x.next_in_index,x.next_in_index=S,n.write=D,n.inflate_flush(x,b)}}},n.free=function(x){n.reset(x,null),n.win=null,p=null},n.set_dictionary=function(x,b,T){n.win.set(x.subarray(b,b+T),0),n.read=n.write=T},n.sync_point=function(){return i==uq?1:0}}var hnt=32,mnt=8,pnt=0,Nme=1,Fme=2,Bme=3,kme=4,Vme=5,fq=6,YD=7,Ume=12,Cy=13,_nt=[0,0,255,255];function gnt(){let e=this;e.mode=0,e.method=0,e.was=[0],e.need=0,e.marker=0,e.wbits=0;function t(n){return!n||!n.istate?-2:(n.total_in=n.total_out=0,n.msg=null,n.istate.mode=YD,n.istate.blocks.reset(n,null),0)}e.inflateEnd=function(n){return e.blocks&&e.blocks.free(n),e.blocks=null,0},e.inflateInit=function(n,i){return n.msg=null,e.blocks=null,i<8||i>15?(e.inflateEnd(n),-2):(e.wbits=i,n.istate.blocks=new dnt(n,1<<i),t(n),0)},e.inflate=function(n,i){let o,r;if(!n||!n.istate||!n.next_in)return-2;let s=n.istate;for(i=i==nnt?-5:0,o=-5;;)switch(s.mode){case pnt:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,((s.method=n.read_byte(n.next_in_index++))&15)!=mnt){s.mode=Cy,n.msg="unknown compression method",s.marker=5;break}if((s.method>>4)+8>s.wbits){s.mode=Cy,n.msg="invalid win size",s.marker=5;break}s.mode=Nme;case Nme:if(n.avail_in===0)return o;if(o=i,n.avail_in--,n.total_in++,r=n.read_byte(n.next_in_index++)&255,((s.method<<8)+r)%31!==0){s.mode=Cy,n.msg="incorrect header check",s.marker=5;break}if(!(r&hnt)){s.mode=YD;break}s.mode=Fme;case Fme:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need=(n.read_byte(n.next_in_index++)&255)<<24&4278190080,s.mode=Bme;case Bme:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<16&16711680,s.mode=kme;case kme:if(n.avail_in===0)return o;o=i,n.avail_in--,n.total_in++,s.need+=(n.read_byte(n.next_in_index++)&255)<<8&65280,s.mode=Vme;case Vme:return n.avail_in===0?o:(o=i,n.avail_in--,n.total_in++,s.need+=n.read_byte(n.next_in_index++)&255,s.mode=fq,2);case fq:return s.mode=Cy,n.msg="need dictionary",s.marker=0,-2;case YD:if(o=s.blocks.proc(n,o),o==-3){s.mode=Cy,s.marker=0;break}if(o==0&&(o=i),o!=1)return o;o=i,s.blocks.reset(n,s.was),s.mode=Ume;case Ume:return n.avail_in=0,1;case Cy:return-3;default:return-2}},e.inflateSetDictionary=function(n,i,o){let r=0,s=o;if(!n||!n.istate||n.istate.mode!=fq)return-2;let a=n.istate;return s>=1<<a.wbits&&(s=(1<<a.wbits)-1,r=o-s),a.blocks.set_dictionary(i,r,s),a.mode=YD,0},e.inflateSync=function(n){let i,o,r,s,a;if(!n||!n.istate)return-2;let c=n.istate;if(c.mode!=Cy&&(c.mode=Cy,c.marker=0),(i=n.avail_in)===0)return-5;for(o=n.next_in_index,r=c.marker;i!==0&&r<4;)n.read_byte(o)==_nt[r]?r++:n.read_byte(o)!==0?r=0:r=4-r,o++,i--;return n.total_in+=o-n.next_in_index,n.next_in_index=o,n.avail_in=i,c.marker=r,r!=4?-3:(s=n.total_in,a=n.total_out,t(n),n.total_in=s,n.total_out=a,c.mode=YD,0)},e.inflateSyncPoint=function(n){return!n||!n.istate||!n.istate.blocks?-2:n.istate.blocks.sync_point()}}function Hme(){}Hme.prototype={inflateInit(e){let t=this;return t.istate=new gnt,e||(e=15),t.istate.inflateInit(t,e)},inflate(e){let t=this;return t.istate?t.istate.inflate(t,e):-2},inflateEnd(){let e=this;if(!e.istate)return-2;let t=e.istate.inflateEnd(e);return e.istate=null,t},inflateSync(){let e=this;return e.istate?e.istate.inflateSync(e):-2},inflateSetDictionary(e,t){let n=this;return n.istate?n.istate.inflateSetDictionary(n,e,t):-2},read_byte(e){return this.next_in[e]},read_buf(e,t){return this.next_in.subarray(e,e+t)}};function Gme(e){let t=this,n=new Hme,i=e&&e.chunkSize?Math.floor(e.chunkSize*2):128*1024,o=tnt,r=new Uint8Array(i),s=!1;n.inflateInit(),n.next_out=r,t.append=function(a,c){let u=[],f,d,p=0,g=0,m=0;if(a.length!==0){n.next_in_index=0,n.next_in=a,n.avail_in=a.length;do{if(n.next_out_index=0,n.avail_out=i,n.avail_in===0&&!s&&(n.next_in_index=0,s=!0),f=n.inflate(o),s&&f===-5){if(n.avail_in!==0)throw new Error("inflating: bad input")}else if(f!==0&&f!==1)throw new Error("inflating: "+n.msg);if((s||f===1)&&n.avail_in===a.length)throw new Error("inflating: bad input");n.next_out_index&&(n.next_out_index===i?u.push(new Uint8Array(r)):u.push(r.subarray(0,n.next_out_index))),m+=n.next_out_index,c&&n.next_in_index>0&&n.next_in_index!=p&&(c(n.next_in_index),p=n.next_in_index)}while(n.avail_in>0||n.avail_out===0);return u.length>1?(d=new Uint8Array(m),u.forEach(function(x){d.set(x,g),g+=x.length})):d=u[0]?new Uint8Array(u[0]):new Uint8Array,d}},t.flush=function(){n.inflateEnd()}}var cE="/",hq=new Date(2107,11,31),mq=new Date(1980,0,1),Ci=void 0,Tu="undefined",n_="function";var XD=class{constructor(t){return class extends TransformStream{constructor(n,i){let o=new t(i);super({transform(r,s){s.enqueue(o.append(r))},flush(r){let s=o.flush();s&&r.enqueue(s)}})}}}};var ynt=64,Wme=2;try{typeof navigator!=Tu&&navigator.hardwareConcurrency&&(Wme=navigator.hardwareConcurrency)}catch{}var xnt={chunkSize:512*1024,maxWorkers:Wme,terminateWorkerTimeout:5e3,useWebWorkers:!0,useCompressionStream:!0,workerScripts:Ci,CompressionStreamNative:typeof CompressionStream!=Tu&&CompressionStream,DecompressionStreamNative:typeof DecompressionStream!=Tu&&DecompressionStream},Sy=Object.assign({},xnt);function KD(){return Sy}function Xk(e){return Math.max(e.chunkSize,ynt)}function lE(e){let{baseURL:t,chunkSize:n,maxWorkers:i,terminateWorkerTimeout:o,useCompressionStream:r,useWebWorkers:s,Deflate:a,Inflate:c,CompressionStream:u,DecompressionStream:f,workerScripts:d}=e;if(Ey("baseURL",t),Ey("chunkSize",n),Ey("maxWorkers",i),Ey("terminateWorkerTimeout",o),Ey("useCompressionStream",r),Ey("useWebWorkers",s),a&&(Sy.CompressionStream=new XD(a)),c&&(Sy.DecompressionStream=new XD(c)),Ey("CompressionStream",u),Ey("DecompressionStream",f),d!==Ci){let{deflate:p,inflate:g}=d;if((p||g)&&(Sy.workerScripts||(Sy.workerScripts={})),p){if(!Array.isArray(p))throw new Error("workerScripts.deflate must be an array");Sy.workerScripts.deflate=p}if(g){if(!Array.isArray(g))throw new Error("workerScripts.inflate must be an array");Sy.workerScripts.inflate=g}}}function Ey(e,t){t!==Ci&&(Sy[e]=t)}var jme=[];for(let e=0;e<256;e++){let t=e;for(let n=0;n<8;n++)t&1?t=t>>>1^3988292384:t=t>>>1;jme[e]=t}var i_=class{constructor(t){this.crc=t||-1}append(t){let n=this.crc|0;for(let i=0,o=t.length|0;i<o;i++)n=n>>>8^jme[(n^t[i])&255];this.crc=n}get(){return~this.crc}};var ZD=class extends TransformStream{constructor(){let t,n=new i_;super({transform(i,o){n.append(i),o.enqueue(i)},flush(){let i=new Uint8Array(4);new DataView(i.buffer).setUint32(0,n.get()),t.value=i}}),t=this}};function uE(e){if(typeof TextEncoder==Tu){e=unescape(encodeURIComponent(e));let t=new Uint8Array(e.length);for(let n=0;n<t.length;n++)t[n]=e.charCodeAt(n);return t}else return new TextEncoder().encode(e)}var Hc={concat(e,t){if(e.length===0||t.length===0)return e.concat(t);let n=e[e.length-1],i=Hc.getPartial(n);return i===32?e.concat(t):Hc._shiftRight(t,i,n|0,e.slice(0,e.length-1))},bitLength(e){let t=e.length;if(t===0)return 0;let n=e[t-1];return(t-1)*32+Hc.getPartial(n)},clamp(e,t){if(e.length*32<t)return e;e=e.slice(0,Math.ceil(t/32));let n=e.length;return t=t&31,n>0&&t&&(e[n-1]=Hc.partial(t,e[n-1]&2147483648>>t-1,1)),e},partial(e,t,n){return e===32?t:(n?t|0:t<<32-e)+e*1099511627776},getPartial(e){return Math.round(e/1099511627776)||32},_shiftRight(e,t,n,i){for(i===void 0&&(i=[]);t>=32;t-=32)i.push(n),n=0;if(t===0)return i.concat(e);for(let s=0;s<e.length;s++)i.push(n|e[s]>>>t),n=e[s]<<32-t;let o=e.length?e[e.length-1]:0,r=Hc.getPartial(o);return i.push(Hc.partial(t+r&31,t+r>32?n:i.pop(),1)),i}},$D={bytes:{fromBits(e){let n=Hc.bitLength(e)/8,i=new Uint8Array(n),o;for(let r=0;r<n;r++)r&3||(o=e[r/4]),i[r]=o>>>24,o<<=8;return i},toBits(e){let t=[],n,i=0;for(n=0;n<e.length;n++)i=i<<8|e[n],(n&3)===3&&(t.push(i),i=0);return n&3&&t.push(Hc.partial(8*(n&3),i)),t}}},qme={};qme.sha1=class{constructor(e){let t=this;t.blockSize=512,t._init=[1732584193,4023233417,2562383102,271733878,3285377520],t._key=[1518500249,1859775393,2400959708,3395469782],e?(t._h=e._h.slice(0),t._buffer=e._buffer.slice(0),t._length=e._length):t.reset()}reset(){let e=this;return e._h=e._init.slice(0),e._buffer=[],e._length=0,e}update(e){let t=this;typeof e=="string"&&(e=$D.utf8String.toBits(e));let n=t._buffer=Hc.concat(t._buffer,e),i=t._length,o=t._length=i+Hc.bitLength(e);if(o>9007199254740991)throw new Error("Cannot hash more than 2^53 - 1 bits");let r=new Uint32Array(n),s=0;for(let a=t.blockSize+i-(t.blockSize+i&t.blockSize-1);a<=o;a+=t.blockSize)t._block(r.subarray(16*s,16*(s+1))),s+=1;return n.splice(0,16*s),t}finalize(){let e=this,t=e._buffer,n=e._h;t=Hc.concat(t,[Hc.partial(1,1)]);for(let i=t.length+2;i&15;i++)t.push(0);for(t.push(Math.floor(e._length/4294967296)),t.push(e._length|0);t.length;)e._block(t.splice(0,16));return e.reset(),n}_f(e,t,n,i){if(e<=19)return t&n|~t&i;if(e<=39)return t^n^i;if(e<=59)return t&n|t&i|n&i;if(e<=79)return t^n^i}_S(e,t){return t<<e|t>>>32-e}_block(e){let t=this,n=t._h,i=Array(80);for(let u=0;u<16;u++)i[u]=e[u];let o=n[0],r=n[1],s=n[2],a=n[3],c=n[4];for(let u=0;u<=79;u++){u>=16&&(i[u]=t._S(1,i[u-3]^i[u-8]^i[u-14]^i[u-16]));let f=t._S(5,o)+t._f(u,r,s,a)+c+i[u]+t._key[Math.floor(u/20)]|0;c=a,a=s,s=t._S(30,r),r=o,o=f}n[0]=n[0]+o|0,n[1]=n[1]+r|0,n[2]=n[2]+s|0,n[3]=n[3]+a|0,n[4]=n[4]+c|0}};var pq={};pq.aes=class{constructor(e){let t=this;t._tables=[[[],[],[],[],[]],[[],[],[],[],[]]],t._tables[0][0][0]||t._precompute();let n=t._tables[0][4],i=t._tables[1],o=e.length,r,s,a,c=1;if(o!==4&&o!==6&&o!==8)throw new Error("invalid aes key size");for(t._key=[s=e.slice(0),a=[]],r=o;r<4*o+28;r++){let u=s[r-1];(r%o===0||o===8&&r%o===4)&&(u=n[u>>>24]<<24^n[u>>16&255]<<16^n[u>>8&255]<<8^n[u&255],r%o===0&&(u=u<<8^u>>>24^c<<24,c=c<<1^(c>>7)*283)),s[r]=s[r-o]^u}for(let u=0;r;u++,r--){let f=s[u&3?r:r-4];r<=4||u<4?a[u]=f:a[u]=i[0][n[f>>>24]]^i[1][n[f>>16&255]]^i[2][n[f>>8&255]]^i[3][n[f&255]]}}encrypt(e){return this._crypt(e,0)}decrypt(e){return this._crypt(e,1)}_precompute(){let e=this._tables[0],t=this._tables[1],n=e[4],i=t[4],o=[],r=[],s,a,c,u;for(let f=0;f<256;f++)r[(o[f]=f<<1^(f>>7)*283)^f]=f;for(let f=s=0;!n[f];f^=a||1,s=r[s]||1){let d=s^s<<1^s<<2^s<<3^s<<4;d=d>>8^d&255^99,n[f]=d,i[d]=f,u=o[c=o[a=o[f]]];let p=u*16843009^c*65537^a*257^f*16843008,g=o[d]*257^d*16843008;for(let m=0;m<4;m++)e[m][f]=g=g<<24^g>>>8,t[m][d]=p=p<<24^p>>>8}for(let f=0;f<5;f++)e[f]=e[f].slice(0),t[f]=t[f].slice(0)}_crypt(e,t){if(e.length!==4)throw new Error("invalid aes block size");let n=this._key[t],i=n.length/4-2,o=[0,0,0,0],r=this._tables[t],s=r[0],a=r[1],c=r[2],u=r[3],f=r[4],d=e[0]^n[0],p=e[t?3:1]^n[1],g=e[2]^n[2],m=e[t?1:3]^n[3],x=4,b,T,A;for(let C=0;C<i;C++)b=s[d>>>24]^a[p>>16&255]^c[g>>8&255]^u[m&255]^n[x],T=s[p>>>24]^a[g>>16&255]^c[m>>8&255]^u[d&255]^n[x+1],A=s[g>>>24]^a[m>>16&255]^c[d>>8&255]^u[p&255]^n[x+2],m=s[m>>>24]^a[d>>16&255]^c[p>>8&255]^u[g&255]^n[x+3],x+=4,d=b,p=T,g=A;for(let C=0;C<4;C++)o[t?3&-C:C]=f[d>>>24]<<24^f[p>>16&255]<<16^f[g>>8&255]<<8^f[m&255]^n[x++],b=d,d=p,p=g,g=m,m=b;return o}};var Yme={getRandomValues(e){let t=new Uint32Array(e.buffer),n=i=>{let o=987654321,r=4294967295;return function(){return o=36969*(o&65535)+(o>>16)&r,i=18e3*(i&65535)+(i>>16)&r,(((o<<16)+i&r)/4294967296+.5)*(Math.random()>.5?1:-1)}};for(let i=0,o;i<e.length;i+=4){let r=n((o||Math.random())*4294967296);o=r()*987654071,t[i/4]=r()*4294967296|0}return e}},_q={};_q.ctrGladman=class{constructor(e,t){this._prf=e,this._initIv=t,this._iv=t}reset(){this._iv=this._initIv}update(e){return this.calculate(this._prf,e,this._iv)}incWord(e){if((e>>24&255)===255){let t=e>>16&255,n=e>>8&255,i=e&255;t===255?(t=0,n===255?(n=0,i===255?i=0:++i):++n):++t,e=0,e+=t<<16,e+=n<<8,e+=i}else e+=1<<24;return e}incCounter(e){(e[0]=this.incWord(e[0]))===0&&(e[1]=this.incWord(e[1]))}calculate(e,t,n){let i;if(!(i=t.length))return[];let o=Hc.bitLength(t);for(let r=0;r<i;r+=4){this.incCounter(n);let s=e.encrypt(n);t[r]^=s[0],t[r+1]^=s[1],t[r+2]^=s[2],t[r+3]^=s[3]}return Hc.clamp(t,o)}};var vy={importKey(e){return new vy.hmacSha1($D.bytes.toBits(e))},pbkdf2(e,t,n,i){if(n=n||1e4,i<0||n<0)throw new Error("invalid params to pbkdf2");let o=(i>>5)+1<<2,r,s,a,c,u,f=new ArrayBuffer(o),d=new DataView(f),p=0,g=Hc;for(t=$D.bytes.toBits(t),u=1;p<(o||1);u++){for(r=s=e.encrypt(g.concat(t,[u])),a=1;a<n;a++)for(s=e.encrypt(s),c=0;c<s.length;c++)r[c]^=s[c];for(a=0;p<(o||1)&&a<r.length;a++)d.setInt32(p,r[a]),p+=4}return f.slice(0,i/8)}};vy.hmacSha1=class{constructor(e){let t=this,n=t._hash=qme.sha1,i=[[],[]];t._baseHash=[new n,new n];let o=t._baseHash[0].blockSize/32;e.length>o&&(e=new n().update(e).finalize());for(let r=0;r<o;r++)i[0][r]=e[r]^909522486,i[1][r]=e[r]^1549556828;t._baseHash[0].update(i[0]),t._baseHash[1].update(i[1]),t._resultHash=new n(t._baseHash[0])}reset(){let e=this;e._resultHash=new e._hash(e._baseHash[0]),e._updated=!1}update(e){let t=this;t._updated=!0,t._resultHash.update(e)}digest(){let e=this,t=e._resultHash.finalize(),n=new e._hash(e._baseHash[1]).update(t).finalize();return e.reset(),n}encrypt(e){if(this._updated)throw new Error("encrypt on already updated hmac called!");return this.update(e),this.digest(e)}};var bnt=typeof crypto!=Tu&&typeof crypto.getRandomValues==n_,wy="Invalid password",$x="Invalid signature",o_="zipjs-abort-check-password";function Kk(e){return bnt?crypto.getRandomValues(e):Yme.getRandomValues(e)}var fE=16,Tnt="raw",Zme={name:"PBKDF2"},Ant={name:"HMAC"},Cnt="SHA-1",Ent=Object.assign({hash:Ant},Zme),gq=Object.assign({iterations:1e3,hash:{name:Cnt}},Zme),Snt=["deriveBits"],JD=[8,12,16],QD=[16,24,32],Dy=10,vnt=[0,0,0,0],Qk=typeof crypto!=Tu,nI=Qk&&crypto.subtle,$me=Qk&&typeof nI!=Tu,mm=$D.bytes,wnt=pq.aes,Dnt=_q.ctrGladman,Int=vy.hmacSha1,Xme=Qk&&$me&&typeof nI.importKey==n_,Kme=Qk&&$me&&typeof nI.deriveBits==n_,Zk=class extends TransformStream{constructor({password:t,rawPassword:n,signed:i,encryptionStrength:o,checkPasswordOnly:r}){super({start(){Object.assign(this,{ready:new Promise(s=>this.resolveReady=s),password:epe(t,n),signed:i,strength:o-1,pending:new Uint8Array})},async transform(s,a){let c=this,{password:u,strength:f,resolveReady:d,ready:p}=c;u?(await Pnt(c,f,u,Lf(s,0,JD[f]+2)),s=Lf(s,JD[f]+2),r?a.error(new Error(o_)):d()):await p;let g=new Uint8Array(s.length-Dy-(s.length-Dy)%fE);a.enqueue(Qme(c,s,g,0,Dy,!0))},async flush(s){let{signed:a,ctr:c,hmac:u,pending:f,ready:d}=this;if(u&&c){await d;let p=Lf(f,0,f.length-Dy),g=Lf(f,f.length-Dy),m=new Uint8Array;if(p.length){let x=tI(mm,p);u.update(x);let b=c.update(x);m=eI(mm,b)}if(a){let x=Lf(eI(mm,u.digest()),0,Dy);for(let b=0;b<Dy;b++)if(x[b]!=g[b])throw new Error($x)}s.enqueue(m)}}})}},$k=class extends TransformStream{constructor({password:t,rawPassword:n,encryptionStrength:i}){let o;super({start(){Object.assign(this,{ready:new Promise(r=>this.resolveReady=r),password:epe(t,n),strength:i-1,pending:new Uint8Array})},async transform(r,s){let a=this,{password:c,strength:u,resolveReady:f,ready:d}=a,p=new Uint8Array;c?(p=await Rnt(a,u,c),f()):await d;let g=new Uint8Array(p.length+r.length-r.length%fE);g.set(p,0),s.enqueue(Qme(a,r,g,p.length,0))},async flush(r){let{ctr:s,hmac:a,pending:c,ready:u}=this;if(a&&s){await u;let f=new Uint8Array;if(c.length){let d=s.update(tI(mm,c));a.update(d),f=eI(mm,d)}o.signature=eI(mm,a.digest()).slice(0,Dy),r.enqueue(yq(f,o.signature))}}}),o=this}};function Qme(e,t,n,i,o,r){let{ctr:s,hmac:a,pending:c}=e,u=t.length-o;c.length&&(t=yq(c,t),n=Lnt(n,u-u%fE));let f;for(f=0;f<=u-fE;f+=fE){let d=tI(mm,Lf(t,f,f+fE));r&&a.update(d);let p=s.update(d);r||a.update(p),n.set(eI(mm,p),f+i)}return e.pending=Lf(t,f),n}async function Pnt(e,t,n,i){let o=await Jme(e,t,n,Lf(i,0,JD[t])),r=Lf(i,JD[t]);if(o[0]!=r[0]||o[1]!=r[1])throw new Error(wy)}async function Rnt(e,t,n){let i=Kk(new Uint8Array(JD[t])),o=await Jme(e,t,n,i);return yq(i,o)}async function Jme(e,t,n,i){e.password=null;let o=await Ont(Tnt,n,Ent,!1,Snt),r=await Mnt(Object.assign({salt:i},gq),o,8*(QD[t]*2+2)),s=new Uint8Array(r),a=tI(mm,Lf(s,0,QD[t])),c=tI(mm,Lf(s,QD[t],QD[t]*2)),u=Lf(s,QD[t]*2);return Object.assign(e,{keys:{key:a,authentication:c,passwordVerification:u},ctr:new Dnt(new wnt(a),Array.from(vnt)),hmac:new Int(c)}),u}async function Ont(e,t,n,i,o){if(Xme)try{return await nI.importKey(e,t,n,i,o)}catch{return Xme=!1,vy.importKey(t)}else return vy.importKey(t)}async function Mnt(e,t,n){if(Kme)try{return await nI.deriveBits(e,t,n)}catch{return Kme=!1,vy.pbkdf2(t,e.salt,gq.iterations,n)}else return vy.pbkdf2(t,e.salt,gq.iterations,n)}function epe(e,t){return t===Ci?uE(e):t}function yq(e,t){let n=e;return e.length+t.length&&(n=new Uint8Array(e.length+t.length),n.set(e,0),n.set(t,e.length)),n}function Lnt(e,t){if(t&&t>e.length){let n=e;e=new Uint8Array(t),e.set(n,0)}return e}function Lf(e,t,n){return e.subarray(t,n)}function eI(e,t){return e.fromBits(t)}function tI(e,t){return e.toBits(t)}var dE=12,Jk=class extends TransformStream{constructor({password:t,passwordVerification:n,checkPasswordOnly:i}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),ope(this,t)},transform(o,r){let s=this;if(s.password){let a=tpe(s,o.subarray(0,dE));if(s.password=null,a[dE-1]!=s.passwordVerification)throw new Error(wy);o=o.subarray(dE)}i?r.error(new Error(o_)):r.enqueue(tpe(s,o))}})}},eV=class extends TransformStream{constructor({password:t,passwordVerification:n}){super({start(){Object.assign(this,{password:t,passwordVerification:n}),ope(this,t)},transform(i,o){let r=this,s,a;if(r.password){r.password=null;let c=Kk(new Uint8Array(dE));c[dE-1]=r.passwordVerification,s=new Uint8Array(i.length+c.length),s.set(npe(r,c),0),a=dE}else s=new Uint8Array(i.length),a=0;s.set(npe(r,i),a),o.enqueue(s)}})}};function tpe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=rpe(e)^t[i],xq(e,n[i]);return n}function npe(e,t){let n=new Uint8Array(t.length);for(let i=0;i<t.length;i++)n[i]=rpe(e)^t[i],xq(e,t[i]);return n}function ope(e,t){let n=[305419896,591751049,878082192];Object.assign(e,{keys:n,crcKey0:new i_(n[0]),crcKey2:new i_(n[2])});for(let i=0;i<t.length;i++)xq(e,t.charCodeAt(i))}function xq(e,t){let[n,i,o]=e.keys;e.crcKey0.append([t]),n=~e.crcKey0.get(),i=ipe(Math.imul(ipe(i+spe(n)),134775813)+1),e.crcKey2.append([i>>>24]),o=~e.crcKey2.get(),e.keys=[n,i,o]}function rpe(e){let t=e.keys[2]|2;return spe(Math.imul(t,t^1)>>>8)}function spe(e){return e&255}function ipe(e){return e&4294967295}var ape="deflate-raw",tV=class extends TransformStream{constructor(t,{chunkSize:n,CompressionStream:i,CompressionStreamNative:o}){super({});let{compressed:r,encrypted:s,useCompressionStream:a,zipCrypto:c,signed:u,level:f}=t,d=this,p,g,m=cpe(super.readable);(!s||c)&&u&&(p=new ZD,m=pm(m,p)),r&&(m=upe(m,a,{level:f,chunkSize:n},o,i)),s&&(c?m=pm(m,new eV(t)):(g=new $k(t),m=pm(m,g))),lpe(d,m,()=>{let x;s&&!c&&(x=g.signature),(!s||c)&&u&&(x=new DataView(p.value.buffer).getUint32(0)),d.signature=x})}},nV=class extends TransformStream{constructor(t,{chunkSize:n,DecompressionStream:i,DecompressionStreamNative:o}){super({});let{zipCrypto:r,encrypted:s,signed:a,signature:c,compressed:u,useCompressionStream:f}=t,d,p,g=cpe(super.readable);s&&(r?g=pm(g,new Jk(t)):(p=new Zk(t),g=pm(g,p))),u&&(g=upe(g,f,{chunkSize:n},o,i)),(!s||r)&&a&&(d=new ZD,g=pm(g,d)),lpe(this,g,()=>{if((!s||r)&&a){let m=new DataView(d.value.buffer);if(c!=m.getUint32(0,!1))throw new Error($x)}})}};function cpe(e){return pm(e,new TransformStream({transform(t,n){t&&t.length&&n.enqueue(t)}}))}function lpe(e,t,n){t=pm(t,new TransformStream({flush:n})),Object.defineProperty(e,"readable",{get(){return t}})}function upe(e,t,n,i,o){try{let r=t&&i?i:o;e=pm(e,new r(ape,n))}catch{if(t)try{e=pm(e,new o(ape,n))}catch{return e}else return e}return e}function pm(e,t){return e.pipeThrough(t)}var fpe="message",dpe="start",hpe="pull",bq="data",mpe="ack",Tq="close",rV="deflate",sV="inflate";var iV=class extends TransformStream{constructor(t,n){super({});let i=this,{codecType:o}=t,r;o.startsWith(rV)?r=tV:o.startsWith(sV)&&(r=nV);let s=0,a=0,c=new r(t,n),u=super.readable,f=new TransformStream({transform(p,g){p&&p.length&&(a+=p.length,g.enqueue(p))},flush(){Object.assign(i,{inputSize:a})}}),d=new TransformStream({transform(p,g){p&&p.length&&(s+=p.length,g.enqueue(p))},flush(){let{signature:p}=c;Object.assign(i,{signature:p,outputSize:s,inputSize:a})}});Object.defineProperty(i,"readable",{get(){return u.pipeThrough(f).pipeThrough(c).pipeThrough(d)}})}},oV=class extends TransformStream{constructor(t){let n;super({transform:i,flush(o){n&&n.length&&o.enqueue(n)}});function i(o,r){if(n){let s=new Uint8Array(n.length+o.length);s.set(n),s.set(o,n.length),o=s,n=null}o.length>t?(r.enqueue(o.slice(0,t)),i(o.slice(t),r)):n=o}}};var gpe=typeof Worker!=Tu;var hE=class{constructor(t,{readable:n,writable:i},{options:o,config:r,streamOptions:s,useWebWorkers:a,transferStreams:c,scripts:u},f){let{signal:d}=s;return Object.assign(t,{busy:!0,readable:n.pipeThrough(new oV(r.chunkSize)).pipeThrough(new Cq(n,s),{signal:d}),writable:i,options:Object.assign({},o),scripts:u,transferStreams:c,terminate(){return new Promise(p=>{let{worker:g,busy:m}=t;g?(m?t.resolveTerminated=p:(g.terminate(),p()),t.interface=null):p()})},onTaskFinished(){let{resolveTerminated:p}=t;p&&(t.resolveTerminated=null,t.terminated=!0,t.worker.terminate(),p()),t.busy=!1,f(t)}}),(a&&gpe?Nnt:ype)(t,r)}},Cq=class extends TransformStream{constructor(t,{onstart:n,onprogress:i,size:o,onend:r}){let s=0;super({async start(){n&&await Aq(n,o)},async transform(a,c){s+=a.length,i&&await Aq(i,s,o),c.enqueue(a)},async flush(){t.size=s,r&&await Aq(r,s)}})}};async function Aq(e,...t){try{await e(...t)}catch{}}function ype(e,t){return{run:()=>Fnt(e,t)}}function Nnt(e,t){let{baseURL:n,chunkSize:i}=t;if(!e.interface){let o;try{o=Vnt(e.scripts[0],n,e)}catch{return gpe=!1,ype(e,t)}Object.assign(e,{worker:o,interface:{run:()=>Bnt(e,{chunkSize:i})}})}return e.interface}async function Fnt({options:e,readable:t,writable:n,onTaskFinished:i},o){try{let r=new iV(e,o);await t.pipeThrough(r).pipeTo(n,{preventClose:!0,preventAbort:!0});let{signature:s,inputSize:a,outputSize:c}=r;return{signature:s,inputSize:a,outputSize:c}}finally{i()}}async function Bnt(e,t){let n,i,o=new Promise((p,g)=>{n=p,i=g});Object.assign(e,{reader:null,writer:null,resolveResult:n,rejectResult:i,result:o});let{readable:r,options:s,scripts:a}=e,{writable:c,closed:u}=knt(e.writable),f=aV({type:dpe,scripts:a.slice(1),options:s,config:t,readable:r,writable:c},e);f||Object.assign(e,{reader:r.getReader(),writer:c.getWriter()});let d=await o;return f||await c.getWriter().close(),await u,d}function knt(e){let t,n=new Promise(o=>t=o);return{writable:new WritableStream({async write(o){let r=e.getWriter();await r.ready,await r.write(o),r.releaseLock()},close(){t()},abort(o){return e.getWriter().abort(o)}}),closed:n}}var ppe=!0,_pe=!0;function Vnt(e,t,n){let i={type:"module"},o,r;typeof e==n_&&(e=e());try{o=new URL(e,t)}catch{o=e}if(ppe)try{r=new Worker(o)}catch{ppe=!1,r=new Worker(o,i)}else r=new Worker(o,i);return r.addEventListener(fpe,s=>Unt(s,n)),r}function aV(e,{worker:t,writer:n,onTaskFinished:i,transferStreams:o}){try{let{value:r,readable:s,writable:a}=e,c=[];if(r&&(r.byteLength<r.buffer.byteLength?e.value=r.buffer.slice(0,r.byteLength):e.value=r.buffer,c.push(e.value)),o&&_pe?(s&&c.push(s),a&&c.push(a)):e.readable=e.writable=null,c.length)try{return t.postMessage(e,c),!0}catch{_pe=!1,e.readable=e.writable=null,t.postMessage(e)}else t.postMessage(e)}catch(r){throw n&&n.releaseLock(),i(),r}}async function Unt({data:e},t){let{type:n,value:i,messageId:o,result:r,error:s}=e,{reader:a,writer:c,resolveResult:u,rejectResult:f,onTaskFinished:d}=t;try{if(s){let{message:g,stack:m,code:x,name:b}=s,T=new Error(g);Object.assign(T,{stack:m,code:x,name:b}),p(T)}else{if(n==hpe){let{value:g,done:m}=await a.read();aV({type:bq,value:g,done:m,messageId:o},t)}n==bq&&(await c.ready,await c.write(new Uint8Array(i)),aV({type:mpe,messageId:o},t)),n==Tq&&p(null,r)}}catch(g){aV({type:Tq,messageId:o},t),p(g)}function p(g,m){g?f(g):u(m),c&&c.releaseLock(),d()}}var Qx=[],Eq=[];var xpe=0;async function cV(e,t){let{options:n,config:i}=t,{transferStreams:o,useWebWorkers:r,useCompressionStream:s,codecType:a,compressed:c,signed:u,encrypted:f}=n,{workerScripts:d,maxWorkers:p}=i;t.transferStreams=o||o===Ci;let g=!c&&!u&&!f&&!t.transferStreams;return t.useWebWorkers=!g&&(r||r===Ci&&i.useWebWorkers),t.scripts=t.useWebWorkers&&d?d[a]:[],n.useCompressionStream=s||s===Ci&&i.useCompressionStream,(await m()).run();async function m(){let b=Qx.find(T=>!T.busy);if(b)return bpe(b),new hE(b,e,t,x);if(Qx.length<p){let T={indexWorker:xpe};return xpe++,Qx.push(T),new hE(T,e,t,x)}else return new Promise(T=>Eq.push({resolve:T,stream:e,workerOptions:t}))}function x(b){if(Eq.length){let[{resolve:T,stream:A,workerOptions:C}]=Eq.splice(0,1);T(new hE(b,A,C,x))}else b.worker?(bpe(b),znt(b,t)):Qx=Qx.filter(T=>T!=b)}}function znt(e,t){let{config:n}=t,{terminateWorkerTimeout:i}=n;Number.isFinite(i)&&i>=0&&(e.terminated?e.terminated=!1:e.terminateTimeout=setTimeout(async()=>{Qx=Qx.filter(o=>o!=e);try{await e.terminate()}catch{}},i))}function bpe(e){let{terminateTimeout:t}=e;t&&(clearTimeout(t),e.terminateTimeout=null)}var Hnt="Writer iterator completed too soon",Gnt="text/plain";var Wnt="Content-Type";var jnt=64*1024,wq="writable",mE=class{constructor(){this.size=0}init(){this.initialized=!0}},lV=class extends mE{get readable(){let t=this,{chunkSize:n=jnt}=t,i=new ReadableStream({start(){this.chunkOffset=0},async pull(o){let{offset:r=0,size:s,diskNumberStart:a}=i,{chunkOffset:c}=this;o.enqueue(await wa(t,r+c,Math.min(n,s-c),a)),c+n>s?o.close():this.chunkOffset+=n}});return i}},Sq=class extends mE{constructor(){super();let t=this,n=new WritableStream({write(i){return t.writeUint8Array(i)}});Object.defineProperty(t,wq,{get(){return n}})}writeUint8Array(){}};var uV=class extends Sq{constructor(t){super(),Object.assign(this,{data:"data:"+(t||"")+";base64,",pending:[]})}writeUint8Array(t){let n=this,i=0,o=n.pending,r=n.pending.length;for(n.pending="",i=0;i<Math.floor((r+t.length)/3)*3-r;i++)o+=String.fromCharCode(t[i]);for(;i<t.length;i++)n.pending+=String.fromCharCode(t[i]);o.length>2?n.data+=btoa(o):n.pending=o}getData(){return this.data+btoa(this.pending)}},r_=class extends lV{constructor(t){super(),Object.assign(this,{blob:t,size:t.size})}async readUint8Array(t,n){let i=this,o=t+n,s=await(t||o<i.size?i.blob.slice(t,o):i.blob).arrayBuffer();return s.byteLength>n&&(s=s.slice(t,o)),new Uint8Array(s)}},iI=class extends mE{constructor(t){super();let n=this,i=new TransformStream,o=[];t&&o.push([Wnt,t]),Object.defineProperty(n,wq,{get(){return i.writable}}),n.blob=new Response(i.readable,{headers:o}).blob()}getData(){return this.blob}},fV=class extends r_{constructor(t){super(new Blob([t],{type:Gnt}))}},dV=class extends iI{constructor(t){super(t),Object.assign(this,{encoding:t,utf8:!t||t.toLowerCase()=="utf-8"})}async getData(){let{encoding:t,utf8:n}=this,i=await super.getData();if(i.text&&n)return i.text();{let o=new FileReader;return new Promise((r,s)=>{Object.assign(o,{onload:({target:a})=>r(a.result),onerror:()=>s(o.error)}),o.readAsText(i,t)})}}};var vq=class extends lV{constructor(t){super(),this.readers=t}async init(){let t=this,{readers:n}=t;t.lastDiskNumber=0,t.lastDiskOffset=0,await Promise.all(n.map(async(i,o)=>{await i.init(),o!=n.length-1&&(t.lastDiskOffset+=i.size),t.size+=i.size})),super.init()}async readUint8Array(t,n,i=0){let o=this,{readers:r}=this,s,a=i;a==-1&&(a=r.length-1);let c=t;for(;c>=r[a].size;)c-=r[a].size,a++;let u=r[a],f=u.size;if(c+n<=f)s=await wa(u,c,n);else{let d=f-c;s=new Uint8Array(n),s.set(await wa(u,c,d)),s.set(await o.readUint8Array(t+d,n-d,i),d)}return o.lastDiskNumber=Math.max(a,o.lastDiskNumber),s}},hV=class extends mE{constructor(t,n=4294967295){super();let i=this;Object.assign(i,{diskNumber:0,diskOffset:0,size:0,maxSize:n,availableSize:n});let o,r,s,a=new WritableStream({async write(f){let{availableSize:d}=i;if(s)f.length>=d?(await c(f.slice(0,d)),await u(),i.diskOffset+=o.size,i.diskNumber++,s=null,await this.write(f.slice(d))):await c(f);else{let{value:p,done:g}=await t.next();if(g&&!p)throw new Error(Hnt);o=p,o.size=0,o.maxSize&&(i.maxSize=o.maxSize),i.availableSize=i.maxSize,await gm(o),r=p.writable,s=r.getWriter(),await this.write(f)}},async close(){await s.ready,await u()}});Object.defineProperty(i,wq,{get(){return a}});async function c(f){let d=f.length;d&&(await s.ready,await s.write(f),o.size+=d,i.size+=d,i.availableSize-=d)}async function u(){r.size=o.size,await s.close()}}};async function gm(e,t){if(e.init&&!e.initialized)await e.init(t);else return Promise.resolve()}function mV(e){return Array.isArray(e)&&(e=new vq(e)),e instanceof ReadableStream&&(e={readable:e}),e}function pV(e){e.writable===Ci&&typeof e.next==n_&&(e=new hV(e)),e instanceof WritableStream&&(e={writable:e});let{writable:t}=e;return t.size===Ci&&(t.size=0),e instanceof hV||Object.assign(e,{diskNumber:0,diskOffset:0,availableSize:1/0,maxSize:1/0}),e}function wa(e,t,n,i){return e.readUint8Array(t,n,i)}var Tpe="\0\u263A\u263B\u2665\u2666\u2663\u2660\u2022\u25D8\u25CB\u25D9\u2642\u2640\u266A\u266B\u263C\u25BA\u25C4\u2195\u203C\xB6\xA7\u25AC\u21A8\u2191\u2193\u2192\u2190\u221F\u2194\u25B2\u25BC !\"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\\]^_`abcdefghijklmnopqrstuvwxyz{|}~\u2302\xC7\xFC\xE9\xE2\xE4\xE0\xE5\xE7\xEA\xEB\xE8\xEF\xEE\xEC\xC4\xC5\xC9\xE6\xC6\xF4\xF6\xF2\xFB\xF9\xFF\xD6\xDC\xA2\xA3\xA5\u20A7\u0192\xE1\xED\xF3\xFA\xF1\xD1\xAA\xBA\xBF\u2310\xAC\xBD\xBC\xA1\xAB\xBB\u2591\u2592\u2593\u2502\u2524\u2561\u2562\u2556\u2555\u2563\u2551\u2557\u255D\u255C\u255B\u2510\u2514\u2534\u252C\u251C\u2500\u253C\u255E\u255F\u255A\u2554\u2569\u2566\u2560\u2550\u256C\u2567\u2568\u2564\u2565\u2559\u2558\u2552\u2553\u256B\u256A\u2518\u250C\u2588\u2584\u258C\u2590\u2580\u03B1\xDF\u0393\u03C0\u03A3\u03C3\xB5\u03C4\u03A6\u0398\u03A9\u03B4\u221E\u03C6\u03B5\u2229\u2261\xB1\u2265\u2264\u2320\u2321\xF7\u2248\xB0\u2219\xB7\u221A\u207F\xB2\u25A0 ".split(""),qnt=Tpe.length==256;function Ape(e){if(qnt){let t="";for(let n=0;n<e.length;n++)t+=Tpe[e[n]];return t}else return new TextDecoder().decode(e)}function oI(e,t){return t&&t.trim().toLowerCase()=="cp437"?Ape(e):new TextDecoder(t).decode(e)}var Dq="filename",Iq="rawFilename",Pq="comment",Rq="rawComment",Oq="uncompressedSize",Mq="compressedSize",Lq="offset",_V="diskNumberStart",pE="lastModDate",gV="rawLastModDate",rI="lastAccessDate",Cpe="rawLastAccessDate",sI="creationDate",Epe="rawCreationDate",Nq="internalFileAttribute",Fq="externalFileAttribute",Bq="msDosCompatible",yV="zip64",kq="encrypted",Vq="version",Uq="versionMadeBy",zq="zipCrypto",Ynt=[Dq,Iq,Mq,Oq,pE,gV,Pq,Rq,rI,sI,Lq,_V,_V,Nq,Fq,Bq,yV,kq,Vq,Uq,zq,"directory","bitFlag","signature","filenameUTF8","commentUTF8","compressionMethod","extraField","rawExtraField","extraFieldZip64","extraFieldUnicodePath","extraFieldUnicodeComment","extraFieldAES","extraFieldNTFS","extraFieldExtendedTimestamp"],Iy=class{constructor(t){Ynt.forEach(n=>this[n]=t[n])}};var Hq="File format is not recognized",$nt="End of central directory not found",Qnt="End of Zip64 central directory locator not found",Jnt="Central directory header not found",eit="Local file header not found",tit="Zip64 extra field not found",nit="File contains encrypted entry",iit="Encryption method not supported",Spe="Compression method not supported",vpe="Split zip file",wpe="utf-8",Dpe="cp437",oit=[[Oq,4294967295],[Mq,4294967295],[Lq,4294967295],[_V,65535]],rit={[65535]:{getValue:cs,bytes:4},[4294967295]:{getValue:xV,bytes:8}},vV=class{constructor(t,n={}){Object.assign(this,{reader:mV(t),options:n,config:KD()})}async*getEntriesGenerator(t={}){let n=this,{reader:i}=n,{config:o}=n;if(await gm(i),(i.size===Ci||!i.readUint8Array)&&(i=new r_(await new Response(i.readable).blob()),await gm(i)),i.size<22)throw new Error(Hq);i.chunkSize=Xk(o);let r=await uit(i,101010256,i.size,22,65535*16);if(!r){let L=await wa(i,0,4),_=la(L);throw cs(_)==134695760?new Error(vpe):new Error($nt)}let s=la(r),a=cs(s,12),c=cs(s,16),u=r.offset,f=ca(s,20),d=u+22+f,p=ca(s,4),g=i.lastDiskNumber||0,m=ca(s,6),x=ca(s,8),b=0,T=0;if(c==4294967295||a==4294967295||x==65535||m==65535){let L=await wa(i,r.offset-20,20),_=la(L);if(cs(_,0)==117853008){c=xV(_,8);let E=await wa(i,c,56,-1),w=la(E),I=r.offset-20-56;if(cs(w,0)!=101075792&&c!=I){let N=c;c=I,b=c-N,E=await wa(i,c,56,-1),w=la(E)}if(cs(w,0)!=101075792)throw new Error(Qnt);p==65535&&(p=cs(w,16)),m==65535&&(m=cs(w,20)),x==65535&&(x=xV(w,32)),a==4294967295&&(a=xV(w,40)),c-=a}}if(c>=i.size&&(b=i.size-c-a-22,c=i.size-a-22),g!=p)throw new Error(vpe);if(c<0)throw new Error(Hq);let A=0,C=await wa(i,c,a,m),S=la(C);if(a){let L=r.offset-a;if(cs(S,A)!=33639248&&c!=L){let _=c;c=L,b+=c-_,C=await wa(i,c,a,m),S=la(C)}}let v=r.offset-c-(i.lastDiskOffset||0);if(a!=v&&v>=0&&(a=v,C=await wa(i,c,a,m),S=la(C)),c<0||c>=i.size)throw new Error(Hq);let D=Gc(n,t,"filenameEncoding"),O=Gc(n,t,"commentEncoding");for(let L=0;L<x;L++){let _=new Wq(i,o,n.options);if(cs(S,A)!=33639248)throw new Error(Jnt);Ppe(_,S,A+6);let E=!!_.bitFlag.languageEncodingFlag,w=A+46,I=w+_.filenameLength,N=I+_.extraFieldLength,B=ca(S,A+4),H=(B&0)==0,V=C.subarray(w,I),G=ca(S,A+32),k=N+G,W=C.subarray(N,k),q=E,J=E,j=H&&(_E(S,A+38)&16)==16,Z=cs(S,A+42)+b;Object.assign(_,{versionMadeBy:B,msDosCompatible:H,compressedSize:0,uncompressedSize:0,commentLength:G,directory:j,offset:Z,diskNumberStart:ca(S,A+34),internalFileAttribute:ca(S,A+36),externalFileAttribute:cs(S,A+38),rawFilename:V,filenameUTF8:q,commentUTF8:J,rawExtraField:C.subarray(I,N)});let Q=Gc(n,t,"decodeText")||oI,de=q?wpe:D||Dpe,ye=J?wpe:O||Dpe,ae=Q(V,de);ae===Ci&&(ae=oI(V,de));let _e=Q(W,ye);_e===Ci&&(_e=oI(W,ye)),Object.assign(_,{rawComment:W,filename:ae,comment:_e,directory:j||ae.endsWith(cE)}),T=Math.max(Z,T),await Rpe(_,_,S,A+6),_.zipCrypto=_.encrypted&&!_.extraFieldAES;let xe=new Iy(_);xe.getData=(Ce,ke)=>_.getData(Ce,xe,ke),A=k;let{onprogress:Ie}=t;if(Ie)try{await Ie(L+1,x,new Iy(_))}catch{}yield xe}let R=Gc(n,t,"extractPrependedData"),M=Gc(n,t,"extractAppendedData");return R&&(n.prependedData=T>0?await wa(i,0,T):new Uint8Array),n.comment=f?await wa(i,u+22,f):new Uint8Array,M&&(n.appendedData=d<i.size?await wa(i,d,i.size-d):new Uint8Array),!0}async getEntries(t={}){let n=[];for await(let i of this.getEntriesGenerator(t))n.push(i);return n}async close(){}};var Wq=class{constructor(t,n,i){Object.assign(this,{reader:t,config:n,options:i})}async getData(t,n,i={}){let o=this,{reader:r,offset:s,diskNumberStart:a,extraFieldAES:c,compressionMethod:u,config:f,bitFlag:d,signature:p,rawLastModDate:g,uncompressedSize:m,compressedSize:x}=o,b=n.localDirectory={},T=await wa(r,s,30,a),A=la(T),C=Gc(o,i,"password"),S=Gc(o,i,"rawPassword"),v=Gc(o,i,"passThrough");if(C=C&&C.length&&C,S=S&&S.length&&S,c&&c.originalCompressionMethod!=99)throw new Error(Spe);if(u!=0&&u!=8&&!v)throw new Error(Spe);if(cs(A,0)!=67324752)throw new Error(eit);Ppe(b,A,4),b.rawExtraField=b.extraFieldLength?await wa(r,s+30+b.filenameLength,b.extraFieldLength,a):new Uint8Array,await Rpe(o,b,A,4,!0),Object.assign(n,{lastAccessDate:b.lastAccessDate,creationDate:b.creationDate});let D=o.encrypted&&b.encrypted&&!v,O=D&&!c;if(v||(n.zipCrypto=O),D){if(!O&&c.strength===Ci)throw new Error(iit);if(!C&&!S)throw new Error(nit)}let R=s+30+b.filenameLength+b.extraFieldLength,M=x,L=r.readable;Object.assign(L,{diskNumberStart:a,offset:R,size:M});let _=Gc(o,i,"signal"),E=Gc(o,i,"checkPasswordOnly");E&&(t=new WritableStream),t=pV(t),await gm(t,v?x:m);let{writable:w}=t,{onstart:I,onprogress:N,onend:B}=i,H={options:{codecType:sV,password:C,rawPassword:S,zipCrypto:O,encryptionStrength:c&&c.strength,signed:Gc(o,i,"checkSignature")&&!v,passwordVerification:O&&(d.dataDescriptor?g>>>8&255:p>>>24&255),signature:p,compressed:u!=0&&!v,encrypted:o.encrypted&&!v,useWebWorkers:Gc(o,i,"useWebWorkers"),useCompressionStream:Gc(o,i,"useCompressionStream"),transferStreams:Gc(o,i,"transferStreams"),checkPasswordOnly:E},config:f,streamOptions:{signal:_,size:M,onstart:I,onprogress:N,onend:B}},V=0;try{({outputSize:V}=await cV({readable:L,writable:w},H))}catch(G){if(!E||G.message!=o_)throw G}finally{let G=Gc(o,i,"preventClose");w.size+=V,!G&&!w.locked&&await w.getWriter().close()}return E?Ci:t.getData?t.getData():w}};function Ppe(e,t,n){let i=e.rawBitFlag=ca(t,n+2),o=(i&1)==1,r=cs(t,n+6);Object.assign(e,{encrypted:o,version:ca(t,n),bitFlag:{level:(i&6)>>1,dataDescriptor:(i&8)==8,languageEncodingFlag:(i&2048)==2048},rawLastModDate:r,lastModDate:fit(r),filenameLength:ca(t,n+22),extraFieldLength:ca(t,n+24)})}async function Rpe(e,t,n,i,o){let{rawExtraField:r}=t,s=t.extraField=new Map,a=la(new Uint8Array(r)),c=0;try{for(;c<r.length;){let T=ca(a,c),A=ca(a,c+2);s.set(T,{type:T,data:r.slice(c+4,c+4+A)}),c+=4+A}}catch{}let u=ca(n,i+4);Object.assign(t,{signature:cs(n,i+10),uncompressedSize:cs(n,i+18),compressedSize:cs(n,i+14)});let f=s.get(1);f&&(sit(f,t),t.extraFieldZip64=f);let d=s.get(28789);d&&(await Ipe(d,Dq,Iq,t,e),t.extraFieldUnicodePath=d);let p=s.get(25461);p&&(await Ipe(p,Pq,Rq,t,e),t.extraFieldUnicodeComment=p);let g=s.get(39169);g?(ait(g,t,u),t.extraFieldAES=g):t.compressionMethod=u;let m=s.get(10);m&&(cit(m,t),t.extraFieldNTFS=m);let x=s.get(21589);x&&(lit(x,t,o),t.extraFieldExtendedTimestamp=x);let b=s.get(6534);b&&(t.extraFieldUSDZ=b)}function sit(e,t){t.zip64=!0;let n=la(e.data),i=oit.filter(([o,r])=>t[o]==r);for(let o=0,r=0;o<i.length;o++){let[s,a]=i[o];if(t[s]==a){let c=rit[a];t[s]=e[s]=c.getValue(n,r),r+=c.bytes}else if(e[s])throw new Error(tit)}}async function Ipe(e,t,n,i,o){let r=la(e.data),s=new i_;s.append(o[n]);let a=la(new Uint8Array(4));a.setUint32(0,s.get(),!0);let c=cs(r,1);Object.assign(e,{version:_E(r,0),[t]:oI(e.data.subarray(5)),valid:!o.bitFlag.languageEncodingFlag&&c==cs(a,0)}),e.valid&&(i[t]=e[t],i[t+"UTF8"]=!0)}function ait(e,t,n){let i=la(e.data),o=_E(i,4);Object.assign(e,{vendorVersion:_E(i,0),vendorId:_E(i,2),strength:o,originalCompressionMethod:n,compressionMethod:ca(i,5)}),t.compressionMethod=e.compressionMethod}function cit(e,t){let n=la(e.data),i=4,o;try{for(;i<e.data.length&&!o;){let r=ca(n,i),s=ca(n,i+2);r==1&&(o=e.data.slice(i+4,i+4+s)),i+=4+s}}catch{}try{if(o&&o.length==24){let r=la(o),s=r.getBigUint64(0,!0),a=r.getBigUint64(8,!0),c=r.getBigUint64(16,!0);Object.assign(e,{rawLastModDate:s,rawLastAccessDate:a,rawCreationDate:c});let u=Gq(s),f=Gq(a),d=Gq(c),p={lastModDate:u,lastAccessDate:f,creationDate:d};Object.assign(e,p),Object.assign(t,p)}}catch{}}function lit(e,t,n){let i=la(e.data),o=_E(i,0),r=[],s=[];n?((o&1)==1&&(r.push(pE),s.push(gV)),(o&2)==2&&(r.push(rI),s.push(Cpe)),(o&4)==4&&(r.push(sI),s.push(Epe))):e.data.length>=5&&(r.push(pE),s.push(gV));let a=1;r.forEach((c,u)=>{if(e.data.length>=a+4){let f=cs(i,a);t[c]=e[c]=new Date(f*1e3);let d=s[u];e[d]=f}a+=4})}async function uit(e,t,n,i,o){let r=new Uint8Array(4),s=la(r);dit(s,0,t);let a=i+o;return await c(i)||await c(Math.min(a,n));async function c(u){let f=n-u,d=await wa(e,f,u);for(let p=d.length-i;p>=0;p--)if(d[p]==r[0]&&d[p+1]==r[1]&&d[p+2]==r[2]&&d[p+3]==r[3])return{offset:f+p,buffer:d.slice(p,p+i).buffer}}}function Gc(e,t,n){return t[n]===Ci?e.options[n]:t[n]}function fit(e){let t=(e&4294901760)>>16,n=e&65535;try{return new Date(1980+((t&65024)>>9),((t&480)>>5)-1,t&31,(n&63488)>>11,(n&2016)>>5,(n&31)*2,0)}catch{}}function Gq(e){return new Date(Number(e/BigInt(1e4)-BigInt(116444736e5)))}function _E(e,t){return e.getUint8(t)}function ca(e,t){return e.getUint16(t,!0)}function cs(e,t){return e.getUint32(t,!0)}function xV(e,t){return Number(e.getBigUint64(t,!0))}function dit(e,t,n){e.setUint32(t,n,!0)}function la(e){return new DataView(e.buffer)}var _it="File already exists",git="Zip file comment exceeds 64KB",yit="File entry comment exceeds 64KB",xit="File entry name exceeds 64KB",Lpe="Version exceeds 65535",bit="The strength must equal 1, 2, or 3",Tit="Extra field type exceeds 65535",Ait="Extra field data exceeds 64KB",oY="Zip64 is not supported (make sure 'keepOrder' is set to 'true')",Cit="Undefined uncompressed size",Npe=new Uint8Array([7,0,2,0,65,69,3,0,0]),nY=0,Fpe=[],IV=class{constructor(t,n={}){t=pV(t);let i=t.availableSize!==Ci&&t.availableSize>0&&t.availableSize!==1/0&&t.maxSize!==Ci&&t.maxSize>0&&t.maxSize!==1/0;Object.assign(this,{writer:t,addSplitZipSignature:i,options:n,config:KD(),files:new Map,filenames:new Set,offset:n.offset===Ci?t.writable.size:n.offset,pendingEntriesSize:0,pendingAddFileCalls:new Set,bufferedWrites:0})}async add(t="",n,i={}){let o=this,{pendingAddFileCalls:r,config:s}=o;nY<s.maxWorkers?nY++:await new Promise(c=>Fpe.push(c));let a;try{if(t=t.trim(),o.filenames.has(t))throw new Error(_it);return o.filenames.add(t),a=Eit(o,t,n,i),r.add(a),await a}catch(c){throw o.filenames.delete(t),c}finally{r.delete(a);let c=Fpe.shift();c?c():nY--}}async close(t=new Uint8Array,n={}){let i=this,{pendingAddFileCalls:o,writer:r}=this,{writable:s}=r;for(;o.size;)await Promise.allSettled(Array.from(o));return await Mit(this,t,n),ao(i,n,"preventClose")||await s.getWriter().close(),r.getData?r.getData():s}};async function Eit(e,t,n,i){t=t.trim(),i.directory&&!t.endsWith(cE)?t+=cE:i.directory=t.endsWith(cE);let o=ao(e,i,"encodeText",uE),r=o(t);if(r===Ci&&(r=uE(t)),Hi(r)>65535)throw new Error(xit);let s=i.comment||"",a=o(s);if(a===Ci&&(a=uE(s)),Hi(a)>65535)throw new Error(yit);let c=ao(e,i,Vq,20);if(c>65535)throw new Error(Lpe);let u=ao(e,i,Uq,20);if(u>65535)throw new Error(Lpe);let f=ao(e,i,pE,new Date),d=ao(e,i,rI),p=ao(e,i,sI),g=ao(e,i,Bq,!0),m=ao(e,i,Nq,0),x=ao(e,i,Fq,0),b=ao(e,i,"passThrough"),T,A;b||(T=ao(e,i,"password"),A=ao(e,i,"rawPassword"));let C=ao(e,i,"encryptionStrength",3),S=ao(e,i,zq),v=ao(e,i,"extendedTimestamp",!0),D=ao(e,i,"keepOrder",!0),O=ao(e,i,"level"),R=ao(e,i,"useWebWorkers"),M=ao(e,i,"bufferedWrite"),L=ao(e,i,"dataDescriptorSignature",!1),_=ao(e,i,"signal"),E=ao(e,i,"useUnicodeFileNames",!0),w=ao(e,i,"useCompressionStream"),I=ao(e,i,"compressionMethod"),N=ao(e,i,"dataDescriptor",!0),B=ao(e,i,yV);if(!S&&(T!==Ci||A!==Ci)&&!(C>=1&&C<=3))throw new Error(bit);let H=new Uint8Array,{extraField:V}=i;if(V){let Lt=0,Tt=0;V.forEach(we=>Lt+=4+Hi(we)),H=new Uint8Array(Lt),V.forEach((we,Xe)=>{if(Xe>65535)throw new Error(Tit);if(Hi(we)>65535)throw new Error(Ait);Cs(H,new Uint16Array([Xe]),Tt),Cs(H,new Uint16Array([Hi(we)]),Tt+2),Cs(H,we,Tt+4),Tt+=4+Hi(we)})}let G=0,k=0,W=0;if(b&&({uncompressedSize:W}=i,W===Ci))throw new Error(Cit);let q=B===!0;n&&(n=mV(n),await gm(n),b?G=Bpe(W):n.size===Ci?(N=!0,(B||B===Ci)&&(B=!0,W=G=4294967296)):(W=n.size,G=Bpe(W)));let{diskOffset:J,diskNumber:j,maxSize:Z}=e.writer,Q=q||W>4294967295,de=q||G>4294967295,ye=q||e.offset+e.pendingEntriesSize-J>4294967295,_e=ao(e,i,"supportZip64SplitFile",!0)&&q||j+Math.ceil(e.pendingEntriesSize/Z)>65535;if(ye||Q||de||_e){if(B===!1||!D)throw new Error(oY);B=!0}B=B||!1;let xe=ao(e,i,kq),{signature:Ie}=i;i=Object.assign({},i,{rawFilename:r,rawComment:a,version:c,versionMadeBy:u,lastModDate:f,lastAccessDate:d,creationDate:p,rawExtraField:H,zip64:B,zip64UncompressedSize:Q,zip64CompressedSize:de,zip64Offset:ye,zip64DiskNumberStart:_e,password:T,rawPassword:A,level:!w&&e.config.CompressionStream===Ci&&e.config.CompressionStreamNative===Ci?0:O,useWebWorkers:R,encryptionStrength:C,extendedTimestamp:v,zipCrypto:S,bufferedWrite:M,keepOrder:D,useUnicodeFileNames:E,dataDescriptor:N,dataDescriptorSignature:L,signal:_,msDosCompatible:g,internalFileAttribute:m,externalFileAttribute:x,useCompressionStream:w,passThrough:b,encrypted:!!(T&&Hi(T)||A&&Hi(A))||b&&xe,signature:Ie,compressionMethod:I});let Ce=wit(i),ke=Iit(i),He=Hi(Ce.localHeaderArray,ke.dataDescriptorArray);k=He+G,e.options.usdz&&(k+=k+64),e.pendingEntriesSize+=k;let rt;try{rt=await Sit(e,t,n,{headerInfo:Ce,dataDescriptorInfo:ke,metadataSize:He},i)}finally{e.pendingEntriesSize-=k}return Object.assign(rt,{name:t,comment:s,extraField:V}),new Iy(rt)}async function Sit(e,t,n,i,o){let{files:r,writer:s}=e,{keepOrder:a,dataDescriptor:c,signal:u}=o,{headerInfo:f}=i,{usdz:d}=e.options,p=Array.from(r.values()).pop(),g={},m,x,b,T,A,C,S;r.set(t,g);try{let R;a&&(R=p&&p.lock,v()),(o.bufferedWrite||e.writerLocked||e.bufferedWrites&&a||!c)&&!d?(C=new TransformStream,S=new Response(C.readable).blob(),C.writable.size=0,m=!0,e.bufferedWrites++,await gm(s)):(C=s,await D()),await gm(C);let{writable:M}=s,{diskOffset:L}=s;if(e.addSplitZipSignature){delete e.addSplitZipSignature;let E=new Uint8Array(4),w=Da(E);zi(w,0,134695760),await ym(M,E),e.offset+=4}d&&Dit(i,e.offset-L),m||(await R,await O(M));let{diskNumber:_}=s;if(A=!0,g.diskNumberStart=_,g=await vit(n,C,g,i,e.config,o),A=!1,r.set(t,g),g.filename=t,m){await C.writable.getWriter().close();let E=await S;await R,await D(),T=!0,c||(E=await Rit(g,E,M,o)),await O(M),g.diskNumberStart=s.diskNumber,L=s.diskOffset,await E.stream().pipeTo(M,{preventClose:!0,preventAbort:!0,signal:u}),M.size+=E.size,T=!1}if(g.offset=e.offset-L,g.zip64)Oit(g,o);else if(g.offset>4294967295)throw new Error(oY);return e.offset+=g.size,g}catch(R){if(m&&T||!m&&A){if(e.hasCorruptedEntries=!0,R)try{R.corruptedEntry=!0}catch{}m?e.offset+=C.writable.size:e.offset=C.writable.size}throw r.delete(t),R}finally{m&&e.bufferedWrites--,b&&b(),x&&x()}function v(){g.lock=new Promise(R=>b=R)}async function D(){e.writerLocked=!0;let{lockWriter:R}=e;e.lockWriter=new Promise(M=>x=()=>{e.writerLocked=!1,M()}),await R}async function O(R){Hi(f.localHeaderArray)>s.availableSize&&(s.availableSize=0,await ym(R,new Uint8Array))}}async function vit(e,t,{diskNumberStart:n,lock:i},o,r,s){let{headerInfo:a,dataDescriptorInfo:c,metadataSize:u}=o,{localHeaderArray:f,headerArray:d,lastModDate:p,rawLastModDate:g,encrypted:m,compressed:x,version:b,compressionMethod:T,rawExtraFieldExtendedTimestamp:A,extraFieldExtendedTimestampFlag:C,rawExtraFieldNTFS:S,rawExtraFieldAES:v}=a,{dataDescriptorArray:D}=c,{rawFilename:O,lastAccessDate:R,creationDate:M,password:L,rawPassword:_,level:E,zip64:w,zip64UncompressedSize:I,zip64CompressedSize:N,zip64Offset:B,zip64DiskNumberStart:H,zipCrypto:V,dataDescriptor:G,directory:k,versionMadeBy:W,rawComment:q,rawExtraField:J,useWebWorkers:j,onstart:Z,onprogress:Q,onend:de,signal:ye,encryptionStrength:ae,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:Ie,externalFileAttribute:Ce,useCompressionStream:ke,passThrough:He}=s,rt={lock:i,versionMadeBy:W,zip64:w,directory:!!k,filenameUTF8:!0,rawFilename:O,commentUTF8:!0,rawComment:q,rawExtraFieldExtendedTimestamp:A,rawExtraFieldNTFS:S,rawExtraFieldAES:v,rawExtraField:J,extendedTimestamp:_e,msDosCompatible:xe,internalFileAttribute:Ie,externalFileAttribute:Ce,diskNumberStart:n},{signature:Lt,uncompressedSize:Tt}=s,we=0;He||(Tt=0);let{writable:Xe}=t;if(e){e.chunkSize=Xk(r),await ym(Xe,f);let We=e.readable,Ut=We.size=e.size,Te={options:{codecType:rV,level:E,rawPassword:_,password:L,encryptionStrength:ae,zipCrypto:m&&V,passwordVerification:m&&V&&g>>8&255,signed:!He,compressed:x&&!He,encrypted:m&&!He,useWebWorkers:j,useCompressionStream:ke,transferStreams:!1},config:r,streamOptions:{signal:ye,size:Ut,onstart:Z,onprogress:Q,onend:de}},Ae=await cV({readable:We,writable:Xe},Te);we=Ae.outputSize,He||(Tt=Ae.inputSize,Lt=Ae.signature),Xe.size+=Tt}else await ym(Xe,f);let Qe;if(w){let We=4;I&&(We+=8),N&&(We+=8),B&&(We+=8),H&&(We+=4),Qe=new Uint8Array(We)}else Qe=new Uint8Array;return Pit({signature:Lt,rawExtraFieldZip64:Qe,compressedSize:we,uncompressedSize:Tt,headerInfo:a,dataDescriptorInfo:c},s),G&&await ym(Xe,D),Object.assign(rt,{uncompressedSize:Tt,compressedSize:we,lastModDate:p,rawLastModDate:g,creationDate:M,lastAccessDate:R,encrypted:m,zipCrypto:V,size:u+we,compressionMethod:T,version:b,headerArray:d,signature:Lt,rawExtraFieldZip64:Qe,extraFieldExtendedTimestampFlag:C,zip64UncompressedSize:I,zip64CompressedSize:N,zip64Offset:B,zip64DiskNumberStart:H}),rt}function wit(e){let{rawFilename:t,lastModDate:n,lastAccessDate:i,creationDate:o,level:r,zip64:s,zipCrypto:a,useUnicodeFileNames:c,dataDescriptor:u,directory:f,rawExtraField:d,encryptionStrength:p,extendedTimestamp:g,encrypted:m}=e,x=r!==0&&!f,{version:b,compressionMethod:T}=e,A;if(m&&!a){A=new Uint8Array(Hi(Npe)+2);let B=Da(A);$i(B,0,39169),Cs(A,Npe,2),PV(B,8,p)}else A=new Uint8Array;let C,S,v;if(g){S=new Uint8Array(9+(i?4:0)+(o?4:0));let B=Da(S);$i(B,0,21589),$i(B,2,Hi(S)-4),v=1+(i?2:0)+(o?4:0),PV(B,4,v);let H=5;zi(B,H,Math.floor(n.getTime()/1e3)),H+=4,i&&(zi(B,H,Math.floor(i.getTime()/1e3)),H+=4),o&&zi(B,H,Math.floor(o.getTime()/1e3));try{C=new Uint8Array(36);let V=Da(C),G=iY(n);$i(V,0,10),$i(V,2,32),$i(V,8,1),$i(V,10,24),wl(V,12,G),wl(V,20,iY(i)||G),wl(V,28,iY(o)||G)}catch{C=new Uint8Array}}else C=S=new Uint8Array;let D=0;c&&(D=D|2048),u&&(D=D|8),T===Ci&&(T=x?8:0),T==8&&(r>=1&&r<3&&(D=D|6),r>=3&&r<5&&(D=D|1),r===9&&(D=D|2)),s&&(b=b>45?b:45),m&&(D=D|1,a||(b=b>51?b:51,A[9]=T,T=99));let O=new Uint8Array(26),R=Da(O);$i(R,0,b),$i(R,2,D),$i(R,4,T);let M=new Uint32Array(1),L=Da(M),_;n<mq?_=mq:n>hq?_=hq:_=n,$i(L,0,(_.getHours()<<6|_.getMinutes())<<5|_.getSeconds()/2),$i(L,2,(_.getFullYear()-1980<<4|_.getMonth()+1)<<5|_.getDate());let E=M[0];zi(R,6,E),$i(R,22,Hi(t));let w=Hi(A,S,C,d);$i(R,24,w);let I=new Uint8Array(30+Hi(t)+w),N=Da(I);return zi(N,0,67324752),Cs(I,O,4),Cs(I,t,30),Cs(I,A,30+Hi(t)),Cs(I,S,30+Hi(t,A)),Cs(I,C,30+Hi(t,A,S)),Cs(I,d,30+Hi(t,A,S,C)),{localHeaderArray:I,headerArray:O,headerView:R,lastModDate:n,rawLastModDate:E,encrypted:m,compressed:x,version:b,compressionMethod:T,extraFieldExtendedTimestampFlag:v,rawExtraFieldExtendedTimestamp:S,rawExtraFieldNTFS:C,rawExtraFieldAES:A,extraFieldLength:w}}function Dit(e,t){let{headerInfo:n}=e,{localHeaderArray:i,extraFieldLength:o}=n,r=Da(i),s=64-(t+Hi(i))%64;s<4&&(s+=64);let a=new Uint8Array(s),c=Da(a);$i(c,0,6534),$i(c,2,s-2);let u=i;n.localHeaderArray=i=new Uint8Array(Hi(u)+s),Cs(i,u),Cs(i,a,Hi(u)),r=Da(i),$i(r,28,o+s),e.metadataSize+=s}function Iit(e){let{zip64:t,dataDescriptor:n,dataDescriptorSignature:i}=e,o=new Uint8Array,r,s=0;return n&&(o=new Uint8Array(t?i?24:20:i?16:12),r=Da(o),i&&(s=4,zi(r,0,134695760))),{dataDescriptorArray:o,dataDescriptorView:r,dataDescriptorOffset:s}}function Pit(e,t){let{signature:n,rawExtraFieldZip64:i,compressedSize:o,uncompressedSize:r,headerInfo:s,dataDescriptorInfo:a}=e,{headerView:c,encrypted:u}=s,{dataDescriptorView:f,dataDescriptorOffset:d}=a,{zip64:p,zip64UncompressedSize:g,zip64CompressedSize:m,zipCrypto:x,dataDescriptor:b}=t;if((!u||x)&&n!==Ci&&(zi(c,10,n),b&&zi(f,d,n)),p){let T=Da(i);$i(T,0,1),$i(T,2,Hi(i)-4);let A=4;g&&(zi(c,18,4294967295),wl(T,A,BigInt(r)),A+=8),m&&(zi(c,14,4294967295),wl(T,A,BigInt(o))),b&&(wl(f,d+4,BigInt(o)),wl(f,d+12,BigInt(r)))}else zi(c,14,o),zi(c,18,r),b&&(zi(f,d+4,o),zi(f,d+8,r))}async function Rit(e,t,n,{zipCrypto:i}){let o;o=await t.slice(0,26).arrayBuffer(),o.byteLength!=26&&(o=o.slice(0,26));let r=new DataView(o);return(!e.encrypted||i)&&zi(r,14,e.signature),e.zip64?(zi(r,18,4294967295),zi(r,22,4294967295)):(zi(r,18,e.compressedSize),zi(r,22,e.uncompressedSize)),await ym(n,new Uint8Array(o)),t.slice(o.byteLength)}function Oit(e,t){let{rawExtraFieldZip64:n,offset:i,diskNumberStart:o}=e,{zip64UncompressedSize:r,zip64CompressedSize:s,zip64Offset:a,zip64DiskNumberStart:c}=t,u=Da(n),f=4;r&&(f+=8),s&&(f+=8),a&&(wl(u,f,BigInt(i)),f+=8),c&&zi(u,f,o)}async function Mit(e,t,n){let{files:i,writer:o}=e,{diskOffset:r,writable:s}=o,{diskNumber:a}=o,c=0,u=0,f=e.offset-r,d=i.size;for(let[,v]of i){let{rawFilename:D,rawExtraFieldZip64:O,rawExtraFieldAES:R,rawComment:M,rawExtraFieldNTFS:L,rawExtraField:_,extendedTimestamp:E,extraFieldExtendedTimestampFlag:w,lastModDate:I}=v,N;if(E){N=new Uint8Array(9);let B=Da(N);$i(B,0,21589),$i(B,2,5),PV(B,4,w),zi(B,5,Math.floor(I.getTime()/1e3))}else N=new Uint8Array;v.rawExtraFieldCDExtendedTimestamp=N,u+=46+Hi(D,M,O,R,L,N,_)}let p=new Uint8Array(u),g=Da(p);await gm(o);let m=0;for(let[v,D]of Array.from(i.values()).entries()){let{offset:O,rawFilename:R,rawExtraFieldZip64:M,rawExtraFieldAES:L,rawExtraFieldCDExtendedTimestamp:_,rawExtraFieldNTFS:E,rawExtraField:w,rawComment:I,versionMadeBy:N,headerArray:B,directory:H,zip64:V,zip64UncompressedSize:G,zip64CompressedSize:k,zip64DiskNumberStart:W,zip64Offset:q,msDosCompatible:J,internalFileAttribute:j,externalFileAttribute:Z,diskNumberStart:Q,uncompressedSize:de,compressedSize:ye}=D,ae=Hi(M,L,_,E,w);zi(g,c,33639248),$i(g,c+4,N);let _e=Da(B);G||zi(_e,18,de),k||zi(_e,14,ye),Cs(p,B,c+6),$i(g,c+30,ae),$i(g,c+32,Hi(I)),$i(g,c+34,V&&W?65535:Q),$i(g,c+36,j),Z?zi(g,c+38,Z):H&&J&&PV(g,c+38,16),zi(g,c+42,V&&q?4294967295:O),Cs(p,R,c+46),Cs(p,M,c+46+Hi(R)),Cs(p,L,c+46+Hi(R,M)),Cs(p,_,c+46+Hi(R,M,L)),Cs(p,E,c+46+Hi(R,M,L,_)),Cs(p,w,c+46+Hi(R,M,L,_,E)),Cs(p,I,c+46+Hi(R)+ae);let xe=46+Hi(R,I)+ae;if(c-m>o.availableSize&&(o.availableSize=0,await ym(s,p.slice(m,c)),m=c),c+=xe,n.onprogress)try{await n.onprogress(v+1,i.size,new Iy(D))}catch{}}await ym(s,m?p.slice(m):p);let x=o.diskNumber,{availableSize:b}=o;b<22&&x++;let T=ao(e,n,yV);if(f>4294967295||u>4294967295||d>65535||x>65535){if(T===!1)throw new Error(oY);T=!0}let A=new Uint8Array(T?98:22),C=Da(A);c=0,T&&(zi(C,0,101075792),wl(C,4,BigInt(44)),$i(C,12,45),$i(C,14,45),zi(C,16,x),zi(C,20,a),wl(C,24,BigInt(d)),wl(C,32,BigInt(d)),wl(C,40,BigInt(u)),wl(C,48,BigInt(f)),zi(C,56,117853008),wl(C,64,BigInt(f)+BigInt(u)),zi(C,72,x+1),ao(e,n,"supportZip64SplitFile",!0)&&(x=65535,a=65535),d=65535,f=4294967295,u=4294967295,c+=76),zi(C,c,101010256),$i(C,c+4,x),$i(C,c+6,a),$i(C,c+8,d),$i(C,c+10,d),zi(C,c+12,u),zi(C,c+16,f);let S=Hi(t);if(S)if(S<=65535)$i(C,c+20,S);else throw new Error(git);await ym(s,A),S&&await ym(s,t)}async function ym(e,t){let n=e.getWriter();try{await n.ready,e.size+=Hi(t),await n.write(t)}finally{n.releaseLock()}}function iY(e){if(e)return(BigInt(e.getTime())+BigInt(116444736e5))*BigInt(1e4)}function ao(e,t,n,i){let o=t[n]===Ci?e.options[n]:t[n];return o===Ci?i:o}function Bpe(e){return e+5*(Math.floor(e/16383)+1)}function PV(e,t,n){e.setUint8(t,n)}function $i(e,t,n){e.setUint16(t,n,!0)}function zi(e,t,n){e.setUint32(t,n,!0)}function wl(e,t,n){e.setBigUint64(t,n,!0)}function Cs(e,t,n){e.set(t,n)}function Da(e){return new DataView(e.buffer)}function Hi(...e){let t=0;return e.forEach(n=>n&&(t+=n.length)),t}lE({Deflate:Tme,Inflate:Gme});function Lit(e){return typeof e=="string"&&(e=document.getElementById(e)),e}var Rn=Lit;function Nit(e,t){this.position=e,this.headingPitchRange=t}var RV=Nit;function OV(e,t){this.id=t,this.name=e,this.playlistIndex=0,this.playlist=[],this.tourStart=new me,this.tourEnd=new me,this.entryStart=new me,this.entryEnd=new me,this._activeEntries=[]}OV.prototype.addPlaylistEntry=function(e){this.playlist.push(e)};OV.prototype.play=function(e,t){this.tourStart.raiseEvent();let n=this;Upe.call(this,e,t,function(i){n.playlistIndex=0,i||Vpe(n._activeEntries),n.tourEnd.raiseEvent(i)})};OV.prototype.stop=function(){Vpe(this._activeEntries)};function Vpe(e){for(let t=e.pop();t!==void 0;t=e.pop())t.stop()}function Upe(e,t,n){let i=this.playlist[this.playlistIndex];if(i){let o=Fit.bind(this,e,t,n);if(this._activeEntries.push(i),this.entryStart.raiseEvent(i),i.blocking)i.play(o,e.scene.camera,t);else{let r=this;i.play(function(){r.entryEnd.raiseEvent(i);let s=r._activeEntries.indexOf(i);s>=0&&r._activeEntries.splice(s,1)}),o(e,t,n)}}else l(n)&&n(!1)}function Fit(e,t,n,i){let o=this.playlist[this.playlistIndex];if(this.entryEnd.raiseEvent(o,i),i)n(i);else{let r=this._activeEntries.indexOf(o);r>=0&&this._activeEntries.splice(r,1),this.playlistIndex++,Upe.call(this,e,t,n)}}var MV=OV;var Ei=Object.freeze({Linear:Object.freeze({None:function(e){return e},In:function(e){return e},Out:function(e){return e},InOut:function(e){return e}}),Quadratic:Object.freeze({In:function(e){return e*e},Out:function(e){return e*(2-e)},InOut:function(e){return(e*=2)<1?.5*e*e:-.5*(--e*(e-2)-1)}}),Cubic:Object.freeze({In:function(e){return e*e*e},Out:function(e){return--e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e:.5*((e-=2)*e*e+2)}}),Quartic:Object.freeze({In:function(e){return e*e*e*e},Out:function(e){return 1- --e*e*e*e},InOut:function(e){return(e*=2)<1?.5*e*e*e*e:-.5*((e-=2)*e*e*e-2)}}),Quintic:Object.freeze({In:function(e){return e*e*e*e*e},Out:function(e){return--e*e*e*e*e+1},InOut:function(e){return(e*=2)<1?.5*e*e*e*e*e:.5*((e-=2)*e*e*e*e+2)}}),Sinusoidal:Object.freeze({In:function(e){return 1-Math.sin((1-e)*Math.PI/2)},Out:function(e){return Math.sin(e*Math.PI/2)},InOut:function(e){return .5*(1-Math.sin(Math.PI*(.5-e)))}}),Exponential:Object.freeze({In:function(e){return e===0?0:Math.pow(1024,e-1)},Out:function(e){return e===1?1:1-Math.pow(2,-10*e)},InOut:function(e){return e===0?0:e===1?1:(e*=2)<1?.5*Math.pow(1024,e-1):.5*(-Math.pow(2,-10*(e-1))+2)}}),Circular:Object.freeze({In:function(e){return 1-Math.sqrt(1-e*e)},Out:function(e){return Math.sqrt(1- --e*e)},InOut:function(e){return(e*=2)<1?-.5*(Math.sqrt(1-e*e)-1):.5*(Math.sqrt(1-(e-=2)*e)+1)}}),Elastic:Object.freeze({In:function(e){return e===0?0:e===1?1:-Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI)},Out:function(e){return e===0?0:e===1?1:Math.pow(2,-10*e)*Math.sin((e-.1)*5*Math.PI)+1},InOut:function(e){return e===0?0:e===1?1:(e*=2,e<1?-.5*Math.pow(2,10*(e-1))*Math.sin((e-1.1)*5*Math.PI):.5*Math.pow(2,-10*(e-1))*Math.sin((e-1.1)*5*Math.PI)+1)}}),Back:Object.freeze({In:function(e){var t=1.70158;return e===1?1:e*e*((t+1)*e-t)},Out:function(e){var t=1.70158;return e===0?0:--e*e*((t+1)*e+t)+1},InOut:function(e){var t=2.5949095;return(e*=2)<1?.5*(e*e*((t+1)*e-t)):.5*((e-=2)*e*((t+1)*e+t)+2)}}),Bounce:Object.freeze({In:function(e){return 1-Ei.Bounce.Out(1-e)},Out:function(e){return e<.36363636363636365?7.5625*e*e:e<.7272727272727273?7.5625*(e-=.5454545454545454)*e+.75:e<.9090909090909091?7.5625*(e-=.8181818181818182)*e+.9375:7.5625*(e-=.9545454545454546)*e+.984375},InOut:function(e){return e<.5?Ei.Bounce.In(e*2)*.5:Ei.Bounce.Out(e*2-1)*.5+.5}}),generatePow:function(e){return e===void 0&&(e=4),e=e<Number.EPSILON?Number.EPSILON:e,e=e>1e4?1e4:e,{In:function(t){return Math.pow(t,e)},Out:function(t){return 1-Math.pow(1-t,e)},InOut:function(t){return t<.5?Math.pow(t*2,e)/2:(1-Math.pow(2-t*2,e))/2+.5}}}}),lI=function(){return performance.now()},Bit=function(){function e(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];this._tweens={},this._tweensAddedDuringUpdate={},this.add.apply(this,t)}return e.prototype.getAll=function(){var t=this;return Object.keys(this._tweens).map(function(n){return t._tweens[n]})},e.prototype.removeAll=function(){this._tweens={}},e.prototype.add=function(){for(var t,n=[],i=0;i<arguments.length;i++)n[i]=arguments[i];for(var o=0,r=n;o<r.length;o++){var s=r[o];(t=s._group)===null||t===void 0||t.remove(s),s._group=this,this._tweens[s.getId()]=s,this._tweensAddedDuringUpdate[s.getId()]=s}},e.prototype.remove=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];for(var i=0,o=t;i<o.length;i++){var r=o[i];r._group=void 0,delete this._tweens[r.getId()],delete this._tweensAddedDuringUpdate[r.getId()]}},e.prototype.allStopped=function(){return this.getAll().every(function(t){return!t.isPlaying()})},e.prototype.update=function(t,n){t===void 0&&(t=lI()),n===void 0&&(n=!0);var i=Object.keys(this._tweens);if(i.length!==0)for(;i.length>0;){this._tweensAddedDuringUpdate={};for(var o=0;o<i.length;o++){var r=this._tweens[i[o]],s=!n;r&&r.update(t,s)===!1&&!n&&this.remove(r)}i=Object.keys(this._tweensAddedDuringUpdate)}},e}(),gE={Linear:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=gE.Utils.Linear;return t<0?r(e[0],e[1],i):t>1?r(e[n],e[n-1],n-i):r(e[o],e[o+1>n?n:o+1],i-o)},Bezier:function(e,t){for(var n=0,i=e.length-1,o=Math.pow,r=gE.Utils.Bernstein,s=0;s<=i;s++)n+=o(1-t,i-s)*o(t,s)*e[s]*r(i,s);return n},CatmullRom:function(e,t){var n=e.length-1,i=n*t,o=Math.floor(i),r=gE.Utils.CatmullRom;return e[0]===e[n]?(t<0&&(o=Math.floor(i=n*(1+t))),r(e[(o-1+n)%n],e[o],e[(o+1)%n],e[(o+2)%n],i-o)):t<0?e[0]-(r(e[0],e[0],e[1],e[1],-i)-e[0]):t>1?e[n]-(r(e[n],e[n],e[n-1],e[n-1],i-n)-e[n]):r(e[o?o-1:0],e[o],e[n<o+1?n:o+1],e[n<o+2?n:o+2],i-o)},Utils:{Linear:function(e,t,n){return(t-e)*n+e},Bernstein:function(e,t){var n=gE.Utils.Factorial;return n(e)/n(t)/n(e-t)},Factorial:function(){var e=[1];return function(t){var n=1;if(e[t])return e[t];for(var i=t;i>1;i--)n*=i;return e[t]=n,n}}(),CatmullRom:function(e,t,n,i,o){var r=(n-e)*.5,s=(i-t)*.5,a=o*o,c=o*a;return(2*t-2*n+r+s)*c+(-3*t+3*n-2*r-s)*a+r*o+t}}},zpe=function(){function e(){}return e.nextId=function(){return e._nextId++},e._nextId=0,e}(),rY=new Bit,Hpe=function(){function e(t,n){this._isPaused=!1,this._pauseStart=0,this._valuesStart={},this._valuesEnd={},this._valuesStartRepeat={},this._duration=1e3,this._isDynamic=!1,this._initialRepeat=0,this._repeat=0,this._yoyo=!1,this._isPlaying=!1,this._reversed=!1,this._delayTime=0,this._startTime=0,this._easingFunction=Ei.Linear.None,this._interpolationFunction=gE.Linear,this._chainedTweens=[],this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._id=zpe.nextId(),this._isChainStopped=!1,this._propertiesAreSetUp=!1,this._goToEnd=!1,this._object=t,typeof n=="object"?(this._group=n,n.add(this)):n===!0&&(this._group=rY,rY.add(this))}return e.prototype.getId=function(){return this._id},e.prototype.isPlaying=function(){return this._isPlaying},e.prototype.isPaused=function(){return this._isPaused},e.prototype.getDuration=function(){return this._duration},e.prototype.to=function(t,n){if(n===void 0&&(n=1e3),this._isPlaying)throw new Error("Can not call Tween.to() while Tween is already started or paused. Stop the Tween first.");return this._valuesEnd=t,this._propertiesAreSetUp=!1,this._duration=n<0?0:n,this},e.prototype.duration=function(t){return t===void 0&&(t=1e3),this._duration=t<0?0:t,this},e.prototype.dynamic=function(t){return t===void 0&&(t=!1),this._isDynamic=t,this},e.prototype.start=function(t,n){if(t===void 0&&(t=lI()),n===void 0&&(n=!1),this._isPlaying)return this;if(this._repeat=this._initialRepeat,this._reversed){this._reversed=!1;for(var i in this._valuesStartRepeat)this._swapEndStartRepeatValues(i),this._valuesStart[i]=this._valuesStartRepeat[i]}if(this._isPlaying=!0,this._isPaused=!1,this._onStartCallbackFired=!1,this._onEveryStartCallbackFired=!1,this._isChainStopped=!1,this._startTime=t,this._startTime+=this._delayTime,!this._propertiesAreSetUp||n){if(this._propertiesAreSetUp=!0,!this._isDynamic){var o={};for(var r in this._valuesEnd)o[r]=this._valuesEnd[r];this._valuesEnd=o}this._setupProperties(this._object,this._valuesStart,this._valuesEnd,this._valuesStartRepeat,n)}return this},e.prototype.startFromCurrentValues=function(t){return this.start(t,!0)},e.prototype._setupProperties=function(t,n,i,o,r){for(var s in i){var a=t[s],c=Array.isArray(a),u=c?"array":typeof a,f=!c&&Array.isArray(i[s]);if(!(u==="undefined"||u==="function")){if(f){var d=i[s];if(d.length===0)continue;for(var p=[a],g=0,m=d.length;g<m;g+=1){var x=this._handleRelativeValue(a,d[g]);if(isNaN(x)){f=!1,console.warn("Found invalid interpolation list. Skipping.");break}p.push(x)}f&&(i[s]=p)}if((u==="object"||c)&&a&&!f){n[s]=c?[]:{};var b=a;for(var T in b)n[s][T]=b[T];o[s]=c?[]:{};var d=i[s];if(!this._isDynamic){var A={};for(var T in d)A[T]=d[T];i[s]=d=A}this._setupProperties(b,n[s],d,o[s],r)}else(typeof n[s]>"u"||r)&&(n[s]=a),c||(n[s]*=1),f?o[s]=i[s].slice().reverse():o[s]=n[s]||0}}},e.prototype.stop=function(){return this._isChainStopped||(this._isChainStopped=!0,this.stopChainedTweens()),this._isPlaying?(this._isPlaying=!1,this._isPaused=!1,this._onStopCallback&&this._onStopCallback(this._object),this):this},e.prototype.end=function(){return this._goToEnd=!0,this.update(this._startTime+this._duration),this},e.prototype.pause=function(t){return t===void 0&&(t=lI()),this._isPaused||!this._isPlaying?this:(this._isPaused=!0,this._pauseStart=t,this)},e.prototype.resume=function(t){return t===void 0&&(t=lI()),!this._isPaused||!this._isPlaying?this:(this._isPaused=!1,this._startTime+=t-this._pauseStart,this._pauseStart=0,this)},e.prototype.stopChainedTweens=function(){for(var t=0,n=this._chainedTweens.length;t<n;t++)this._chainedTweens[t].stop();return this},e.prototype.group=function(t){return t?(t.add(this),this):(console.warn("tween.group() without args has been removed, use group.add(tween) instead."),this)},e.prototype.remove=function(){var t;return(t=this._group)===null||t===void 0||t.remove(this),this},e.prototype.delay=function(t){return t===void 0&&(t=0),this._delayTime=t,this},e.prototype.repeat=function(t){return t===void 0&&(t=0),this._initialRepeat=t,this._repeat=t,this},e.prototype.repeatDelay=function(t){return this._repeatDelayTime=t,this},e.prototype.yoyo=function(t){return t===void 0&&(t=!1),this._yoyo=t,this},e.prototype.easing=function(t){return t===void 0&&(t=Ei.Linear.None),this._easingFunction=t,this},e.prototype.interpolation=function(t){return t===void 0&&(t=gE.Linear),this._interpolationFunction=t,this},e.prototype.chain=function(){for(var t=[],n=0;n<arguments.length;n++)t[n]=arguments[n];return this._chainedTweens=t,this},e.prototype.onStart=function(t){return this._onStartCallback=t,this},e.prototype.onEveryStart=function(t){return this._onEveryStartCallback=t,this},e.prototype.onUpdate=function(t){return this._onUpdateCallback=t,this},e.prototype.onRepeat=function(t){return this._onRepeatCallback=t,this},e.prototype.onComplete=function(t){return this._onCompleteCallback=t,this},e.prototype.onStop=function(t){return this._onStopCallback=t,this},e.prototype.update=function(t,n){var i=this,o;if(t===void 0&&(t=lI()),n===void 0&&(n=e.autoStartOnUpdate),this._isPaused)return!0;var r;if(!this._goToEnd&&!this._isPlaying)if(n)this.start(t,!0);else return!1;if(this._goToEnd=!1,t<this._startTime)return!0;this._onStartCallbackFired===!1&&(this._onStartCallback&&this._onStartCallback(this._object),this._onStartCallbackFired=!0),this._onEveryStartCallbackFired===!1&&(this._onEveryStartCallback&&this._onEveryStartCallback(this._object),this._onEveryStartCallbackFired=!0);var s=t-this._startTime,a=this._duration+((o=this._repeatDelayTime)!==null&&o!==void 0?o:this._delayTime),c=this._duration+this._repeat*a,u=function(){if(i._duration===0||s>c)return 1;var x=Math.trunc(s/a),b=s-x*a,T=Math.min(b/i._duration,1);return T===0&&s===i._duration?1:T},f=u(),d=this._easingFunction(f);if(this._updateProperties(this._object,this._valuesStart,this._valuesEnd,d),this._onUpdateCallback&&this._onUpdateCallback(this._object,f),this._duration===0||s>=this._duration)if(this._repeat>0){var p=Math.min(Math.trunc((s-this._duration)/a)+1,this._repeat);isFinite(this._repeat)&&(this._repeat-=p);for(r in this._valuesStartRepeat)!this._yoyo&&typeof this._valuesEnd[r]=="string"&&(this._valuesStartRepeat[r]=this._valuesStartRepeat[r]+parseFloat(this._valuesEnd[r])),this._yoyo&&this._swapEndStartRepeatValues(r),this._valuesStart[r]=this._valuesStartRepeat[r];return this._yoyo&&(this._reversed=!this._reversed),this._startTime+=a*p,this._onRepeatCallback&&this._onRepeatCallback(this._object),this._onEveryStartCallbackFired=!1,!0}else{this._onCompleteCallback&&this._onCompleteCallback(this._object);for(var g=0,m=this._chainedTweens.length;g<m;g++)this._chainedTweens[g].start(this._startTime+this._duration,!1);return this._isPlaying=!1,!1}return!0},e.prototype._updateProperties=function(t,n,i,o){for(var r in i)if(n[r]!==void 0){var s=n[r]||0,a=i[r],c=Array.isArray(t[r]),u=Array.isArray(a),f=!c&&u;f?t[r]=this._interpolationFunction(a,o):typeof a=="object"&&a?this._updateProperties(t[r],s,a,o):(a=this._handleRelativeValue(s,a),typeof a=="number"&&(t[r]=s+(a-s)*o))}},e.prototype._handleRelativeValue=function(t,n){return typeof n!="string"?n:n.charAt(0)==="+"||n.charAt(0)==="-"?t+parseFloat(n):parseFloat(n)},e.prototype._swapEndStartRepeatValues=function(t){var n=this._valuesStartRepeat[t],i=this._valuesEnd[t];typeof i=="string"?this._valuesStartRepeat[t]=this._valuesStartRepeat[t]+parseFloat(i):this._valuesStartRepeat[t]=this._valuesEnd[t],this._valuesEnd[t]=n},e.autoStartOnUpdate=!1,e}();var Xei=zpe.nextId,xm=rY,Kei=xm.getAll.bind(xm),Zei=xm.removeAll.bind(xm),$ei=xm.add.bind(xm),Qei=xm.remove.bind(xm),Jei=xm.update.bind(xm);var kit={LINEAR_NONE:Ei.Linear.None,QUADRATIC_IN:Ei.Quadratic.In,QUADRATIC_OUT:Ei.Quadratic.Out,QUADRATIC_IN_OUT:Ei.Quadratic.InOut,CUBIC_IN:Ei.Cubic.In,CUBIC_OUT:Ei.Cubic.Out,CUBIC_IN_OUT:Ei.Cubic.InOut,QUARTIC_IN:Ei.Quartic.In,QUARTIC_OUT:Ei.Quartic.Out,QUARTIC_IN_OUT:Ei.Quartic.InOut,QUINTIC_IN:Ei.Quintic.In,QUINTIC_OUT:Ei.Quintic.Out,QUINTIC_IN_OUT:Ei.Quintic.InOut,SINUSOIDAL_IN:Ei.Sinusoidal.In,SINUSOIDAL_OUT:Ei.Sinusoidal.Out,SINUSOIDAL_IN_OUT:Ei.Sinusoidal.InOut,EXPONENTIAL_IN:Ei.Exponential.In,EXPONENTIAL_OUT:Ei.Exponential.Out,EXPONENTIAL_IN_OUT:Ei.Exponential.InOut,CIRCULAR_IN:Ei.Circular.In,CIRCULAR_OUT:Ei.Circular.Out,CIRCULAR_IN_OUT:Ei.Circular.InOut,ELASTIC_IN:Ei.Elastic.In,ELASTIC_OUT:Ei.Elastic.Out,ELASTIC_IN_OUT:Ei.Elastic.InOut,BACK_IN:Ei.Back.In,BACK_OUT:Ei.Back.Out,BACK_IN_OUT:Ei.Back.InOut,BOUNCE_IN:Ei.Bounce.In,BOUNCE_OUT:Ei.Bounce.Out,BOUNCE_IN_OUT:Ei.Bounce.InOut},Kr=Object.freeze(kit);function LV(e,t,n){this.type="KmlTourFlyTo",this.blocking=!0,this.activeCamera=null,this.activeCallback=null,this.duration=e,this.view=n,this.flyToMode=t}LV.prototype.play=function(e,t,n){if(this.activeCamera=t,l(e)&&e!==null){let o=this;this.activeCallback=function(r){delete o.activeCallback,delete o.activeCamera,e(l(r)?!1:r)}}let i=this.getCameraOptions(n);if(this.view.headingPitchRoll)t.flyTo(i);else if(this.view.headingPitchRange){let o=new se(this.view.position);t.flyToBoundingSphere(o,i)}};LV.prototype.stop=function(){l(this.activeCamera)&&this.activeCamera.cancelFlight(),l(this.activeCallback)&&this.activeCallback(!0)};LV.prototype.getCameraOptions=function(e){let t={duration:this.duration};return l(this.activeCallback)&&(t.complete=this.activeCallback),this.flyToMode==="smooth"&&(t.easingFunction=Kr.LINEAR_NONE),this.view.headingPitchRoll?(t.destination=this.view.position,t.orientation=this.view.headingPitchRoll):this.view.headingPitchRange&&(t.offset=this.view.headingPitchRange),l(e)&&(t=xt(t,e)),t};var NV=LV;function sY(e){this.type="KmlTourWait",this.blocking=!0,this.duration=e,this.timeout=null}sY.prototype.play=function(e){let t=this;this.activeCallback=e,this.timeout=setTimeout(function(){delete t.activeCallback,e(!1)},this.duration*1e3)};sY.prototype.stop=function(){clearTimeout(this.timeout),l(this.activeCallback)&&this.activeCallback(!0)};var FV=sY;var Qpe={avi:"video/x-msvideo",bmp:"image/bmp",bz2:"application/x-bzip2",chm:"application/vnd.ms-htmlhelp",css:"text/css",csv:"text/csv",doc:"application/msword",dvi:"application/x-dvi",eps:"application/postscript",flv:"video/x-flv",gif:"image/gif",gz:"application/x-gzip",htm:"text/html",html:"text/html",ico:"image/vnd.microsoft.icon",jnlp:"application/x-java-jnlp-file",jpeg:"image/jpeg",jpg:"image/jpeg",m3u:"audio/x-mpegurl",m4v:"video/mp4",mathml:"application/mathml+xml",mid:"audio/midi",midi:"audio/midi",mov:"video/quicktime",mp3:"audio/mpeg",mp4:"video/mp4",mp4v:"video/mp4",mpeg:"video/mpeg",mpg:"video/mpeg",odp:"application/vnd.oasis.opendocument.presentation",ods:"application/vnd.oasis.opendocument.spreadsheet",odt:"application/vnd.oasis.opendocument.text",ogg:"application/ogg",pdf:"application/pdf",png:"image/png",pps:"application/vnd.ms-powerpoint",ppt:"application/vnd.ms-powerpoint",ps:"application/postscript",qt:"video/quicktime",rdf:"application/rdf+xml",rss:"application/rss+xml",rtf:"application/rtf",svg:"image/svg+xml",swf:"application/x-shockwave-flash",text:"text/plain",tif:"image/tiff",tiff:"image/tiff",txt:"text/plain",wav:"audio/x-wav",wma:"audio/x-ms-wma",wmv:"video/x-ms-wmv",xml:"application/xml",zip:"application/zip",detectFromFilename:function(e){let t=e.toLowerCase();return t=oT(t),Qpe[t]}},hY;typeof DOMParser<"u"&&(hY=new DOMParser);var Vit=new Ok({stripPrefix:!1,email:!1,replaceFn:function(e){return e.urlMatchType==="scheme"||e.urlMatchType==="www"}}),Py=32,Gpe=2414016,Wpe=1,jpe=16093e3,qpe=.1,Ype=[null,void 0,"http://www.opengis.net/kml/2.2","http://earth.google.com/kml/2.2","http://earth.google.com/kml/2.1","http://earth.google.com/kml/2.0"],Xpe=["http://www.google.com/kml/ext/2.2"],Uit=["http://www.w3.org/2005/Atom"],Oe={kml:Ype,gx:Xpe,atom:Uit,kmlgx:Ype.concat(Xpe)},mY={Document:c_e,Folder:rot,Placemark:sot,NetworkLink:pot,GroundOverlay:dot,PhotoOverlay:f_e,ScreenOverlay:fot,Tour:cot};function bm(e){this._dataSource=e,this._deferred=Hl(),this._stack=[],this._promises=[],this._timeoutSet=!1,this._used=!1,this._started=0,this._timeThreshold=1e3}Object.defineProperties(bm.prototype,{dataSource:{get:function(){return this._dataSource}}});bm.prototype.addNodes=function(e,t){this._stack.push({nodes:e,index:0,processingData:t}),this._used=!0};bm.prototype.addPromise=function(e){this._promises.push(e)};bm.prototype.wait=function(){let e=this._deferred;return this._used||e.resolve(),Promise.all([e.promise,Promise.all(this._promises)])};bm.prototype.process=function(){let e=this._stack.length===1;return e&&(this._started=Eu._getTimestamp()),this._process(e)};bm.prototype._giveUpTime=function(){if(this._timeoutSet)return;this._timeoutSet=!0,this._timeThreshold=50;let e=this;setTimeout(function(){e._timeoutSet=!1,e._started=Eu._getTimestamp(),e._process(!0)},0)};bm.prototype._nextNode=function(){let e=this._stack,t=e[e.length-1],n=t.index,i=t.nodes;if(n!==i.length)return++t.index,i[n]};bm.prototype._pop=function(){let e=this._stack;return e.pop(),e.length===0?(this._deferred.resolve(),!1):!0};bm.prototype._process=function(e){let t=this.dataSource,n=this._stack[this._stack.length-1].processingData,i=this._nextNode();for(;l(i);){let o=mY[i.localName];if(l(o)&&(Oe.kml.indexOf(i.namespaceURI)!==-1||Oe.gx.indexOf(i.namespaceURI)!==-1)&&(o(t,i,n,this),this._timeoutSet||Eu._getTimestamp()>this._started+this._timeThreshold)){this._giveUpTime();return}i=this._nextNode()}this._pop()&&e&&this._process(!0)};function zit(e){let t=e.slice(0,Math.min(4,e.size)),n=Hl(),i=new FileReader;return i.addEventListener("load",function(){n.resolve(new DataView(i.result).getUint32(0,!1)===1347093252)}),i.addEventListener("error",function(){n.reject(i.error)}),i.readAsArrayBuffer(t),n.promise}function Hit(e){let t=Hl(),n=new FileReader;return n.addEventListener("load",function(){t.resolve(n.result)}),n.addEventListener("error",function(){t.reject(n.error)}),n.readAsText(e),t.promise}function Jpe(e){let t={xsi:"http://www.w3.org/2001/XMLSchema-instance"},n,i,o,r;for(let s in t)t.hasOwnProperty(s)&&(o=RegExp(`[< ]${s}:`),r=`xmlns:${s}=`,o.test(e)&&e.indexOf(r)===-1&&(l(n)||(n=e.substr(0,e.indexOf("<kml")+4),i=e.substr(n.length)),n+=` ${r}"${t[s]}"`));return l(n)&&(e=n+i),e}function e_e(e){let t=e.indexOf("xmlns:"),n=e.indexOf(">",t),i,o,r;for(;t!==-1&&t<n;)i=e.slice(t,e.indexOf('"',t)),o=t,t=e.indexOf(i,t+1),t!==-1?(r=e.indexOf('"',e.indexOf('"',t)+1),e=e.slice(0,t-1)+e.slice(r+1,e.length),t=e.indexOf("xmlns:",o-1)):t=e.indexOf("xmlns:",o+1);return e}function Git(e,t){return Promise.resolve(e.getData(new dV)).then(function(n){n=Jpe(n),n=e_e(n),t.kml=hY.parseFromString(n,"application/xml")})}function aY(e,t){let n=y(Qpe.detectFromFilename(e.filename),"application/octet-stream");return Promise.resolve(e.getData(new uV(n))).then(function(i){t[e.filename]=i})}function Au(e,t,n,i){let o=i.keys,r=new uI.default("."),s=e.querySelectorAll(t);for(let a=0;a<s.length;a++){let c=s[a],u=c.getAttribute(n);if(l(u)){let d=new uI.default(u).absoluteTo(r).toString(),p=o.indexOf(d);if(p!==-1){let g=o[p];c.setAttribute(n,i[g]),t==="a"&&c.getAttribute("download")===null&&c.setAttribute("download",g)}}}}function Cu(e,t,n,i){let o=e.querySelectorAll(t);for(let r=0;r<o.length;r++){let s=o[r],a=s.getAttribute(n),c=pY(a,i);l(c)&&s.setAttribute(n,c.url)}}function t_e(e,t,n){let i=Es(e,"id");i=l(i)&&i.length!==0?i:zn(),l(n)&&(i=n+i);let o=t.getById(i);return l(o)&&(i=zn(),l(n)&&(i=n+i)),o=t.add(new ir({id:i})),l(o.kml)||(o.addProperty("kml"),o.kml=new xot),o}function fI(e,t){return e==="absolute"||e==="relativeToGround"||t==="relativeToSeaFloor"}function UV(e,t){if(!l(e))return h.fromDegrees(0,0,0,t);let n=e.match(/[^\s,\n]+/g);if(!l(n))return h.fromDegrees(0,0,0,t);let i=parseFloat(n[0]),o=parseFloat(n[1]),r=parseFloat(n[2]);return i=isNaN(i)?0:i,o=isNaN(o)?0:o,r=isNaN(r)?0:r,h.fromDegrees(i,o,r,t)}function BV(e,t){if(!l(e))return;let n=e.textContent.match(/[^\s\n]+/g);if(!l(n))return;let i=n.length,o=new Array(i),r=0;for(let s=0;s<i;s++)o[r++]=UV(n[s],t);return o}function Ry(e,t){if(!l(e))return;let n=e.getAttribute(t);if(n!==null){let i=parseFloat(n);return isNaN(i)?void 0:i}}function Es(e,t){if(!l(e))return;let n=e.getAttribute(t);return n!==null?n:void 0}function Si(e,t,n){if(!l(e))return;let i=e.childNodes,o=i.length;for(let r=0;r<o;r++){let s=i[r];if(s.localName===t&&n.indexOf(s.namespaceURI)!==-1)return s}}function Kpe(e,t,n){if(!l(e))return;let i=[],o=e.getElementsByTagNameNS("*",t),r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Hd(e,t,n){if(!l(e))return[];let i=[],o=e.childNodes,r=o.length;for(let s=0;s<r;s++){let a=o[s];a.localName===t&&n.indexOf(a.namespaceURI)!==-1&&i.push(a)}return i}function Kn(e,t,n){let i=Si(e,t,n);if(l(i)){let o=parseFloat(i.textContent);return isNaN(o)?void 0:o}}function Dn(e,t,n){let i=Si(e,t,n);if(l(i))return i.textContent.trim()}function Gd(e,t,n){let i=Si(e,t,n);if(l(i)){let o=i.textContent.trim();return o==="1"||/^true$/i.test(o)}}function pY(e,t,n){if(!l(e))return;let i;if(l(n)){e=e.replace(/\\/g,"/");let o=n[e];if(l(o))i=new De({url:o});else{let r=new uI.default(t.getUrlComponent()),s=new uI.default(e);o=n[s.absoluteTo(r)],l(o)&&(i=new De({url:o}))}}return l(i)||(i=t.getDerivedResource({url:e})),i}var Dl={maximumRed:void 0,red:void 0,maximumGreen:void 0,green:void 0,maximumBlue:void 0,blue:void 0};function fY(e,t){if(!l(e)||/^\s*$/gm.test(e))return;e[0]==="#"&&(e=e.substring(1));let n=parseInt(e.substring(0,2),16)/255,i=parseInt(e.substring(2,4),16)/255,o=parseInt(e.substring(4,6),16)/255,r=parseInt(e.substring(6,8),16)/255;return t?(r>0?(Dl.maximumRed=r,Dl.red=void 0):(Dl.maximumRed=void 0,Dl.red=0),o>0?(Dl.maximumGreen=o,Dl.green=void 0):(Dl.maximumGreen=void 0,Dl.green=0),i>0?(Dl.maximumBlue=i,Dl.blue=void 0):(Dl.maximumBlue=void 0,Dl.blue=0),Dl.alpha=n,z.fromRandom(Dl)):new z(r,o,i,n)}function Jx(e,t,n){let i=Dn(e,t,n);if(l(i))return fY(i,Dn(e,"colorMode",n)==="random")}function Wit(e){let t=Si(e,"TimeStamp",Oe.kmlgx),n=Dn(t,"when",Oe.kmlgx);if(!l(t)||!l(n)||n.length===0)return;let i=K.fromIso8601(n),o=new jr;return o.addInterval(new Sn({start:i,stop:ze.MAXIMUM_VALUE})),o}function jit(e){let t=Si(e,"TimeSpan",Oe.kmlgx);if(!l(t))return;let n,i=Si(t,"begin",Oe.kmlgx),o=l(i)?K.fromIso8601(i.textContent):void 0,r=Si(t,"end",Oe.kmlgx),s=l(r)?K.fromIso8601(r.textContent):void 0;if(l(o)&&l(s)){if(K.lessThan(s,o)){let a=o;o=s,s=a}n=new jr,n.addInterval(new Sn({start:o,stop:s}))}else l(o)?(n=new jr,n.addInterval(new Sn({start:o,stop:ze.MAXIMUM_VALUE}))):l(s)&&(n=new jr,n.addInterval(new Sn({start:ze.MINIMUM_VALUE,stop:s})));return n}function n_e(){let e=new Ac;return e.width=Py,e.height=Py,e.scaleByDistance=new Vt(Gpe,Wpe,jpe,qpe),e.pixelOffsetScaleByDistance=new Vt(Gpe,Wpe,jpe,qpe),e}function _Y(){let e=new wh;return e.outline=!0,e.outlineColor=z.WHITE,e}function i_e(){let e=new vh;return e.translucencyByDistance=new Vt(3e6,1,5e6,0),e.pixelOffset=new U(17,0),e.horizontalOrigin=gi.LEFT,e.font="16px sans-serif",e.style=qo.FILL_AND_OUTLINE,e}function gY(e,t,n,i,o){let r=Dn(e,"href",Oe.kml);if(!l(r)||r.length===0)return;if(r.indexOf("root://icons/palette-")===0){let a=r.charAt(21),c=y(Kn(e,"x",Oe.gx),0),u=y(Kn(e,"y",Oe.gx),0);c=Math.min(c/32,7),u=7-Math.min(u/32,7);let f=8*u+c;r=`https://maps.google.com/mapfiles/kml/pal${a}/icon${f}.png`}let s=pY(r,n,i);if(o){let a=Dn(e,"refreshMode",Oe.kml),c=Dn(e,"viewRefreshMode",Oe.kml);a==="onInterval"||a==="onExpire"?At(`kml-refreshMode-${a}`,`KML - Unsupported Icon refreshMode: ${a}`):(c==="onStop"||c==="onRegion")&&At(`kml-refreshMode-${c}`,`KML - Unsupported Icon viewRefreshMode: ${c}`);let u=y(Dn(e,"viewBoundScale",Oe.kml),1),f=c==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",d=y(Dn(e,"viewFormat",Oe.kml),f),p=Dn(e,"httpQuery",Oe.kml);l(d)&&s.setQueryParameters(Hu(VV(d))),l(p)&&s.setQueryParameters(Hu(VV(p)));let g=t._ellipsoid;return xY(s,t.camera,t.canvas,u,t._lastCameraView.bbox,g),s}return s}function qit(e,t,n,i,o){let r=Kn(t,"scale",Oe.kml),s=Kn(t,"heading",Oe.kml),a=Jx(t,"color",Oe.kml),c=Si(t,"Icon",Oe.kml),u=gY(c,e,i,o,!1);l(c)&&!l(u)&&(u=!1);let f=Kn(c,"x",Oe.gx),d=Kn(c,"y",Oe.gx),p=Kn(c,"w",Oe.gx),g=Kn(c,"h",Oe.gx),m=Si(t,"hotSpot",Oe.kml),x=Ry(m,"x"),b=Ry(m,"y"),T=Es(m,"xunits"),A=Es(m,"yunits"),C=n.billboard;l(C)||(C=n_e(),n.billboard=C),C.image=u,C.scale=r,C.color=a,(l(f)||l(d)||l(p)||l(g))&&(C.imageSubRegion=new qe(f,d,p,g)),l(s)&&s!==0&&(C.rotation=P.toRadians(-s),C.alignedAxis=h.UNIT_Z),r=y(r,1);let S,v;l(x)&&(T==="pixels"?S=-x*r:T==="insetPixels"?S=(x-Py)*r:T==="fraction"&&(S=-x*Py*r),S+=Py*.5*r),l(b)&&(A==="pixels"?v=b*r:A==="insetPixels"?v=(-b+Py)*r:A==="fraction"&&(v=b*Py*r),v-=Py*.5*r),(l(S)||l(v))&&(C.pixelOffset=new U(S,v))}function kV(e,t,n,i,o){for(let r=0,s=t.childNodes.length;r<s;r++){let a=t.childNodes.item(r);if(a.localName==="IconStyle")qit(e,a,n,i,o);else if(a.localName==="LabelStyle"){let c=n.label;l(c)||(c=i_e(),n.label=c),c.scale=y(Kn(a,"scale",Oe.kml),c.scale),c.fillColor=y(Jx(a,"color",Oe.kml),c.fillColor),c.text=n.name}else if(a.localName==="LineStyle"){let c=n.polyline;l(c)||(c=new wc,n.polyline=c),c.width=Kn(a,"width",Oe.kml),c.material=Jx(a,"color",Oe.kml),l(Jx(a,"outerColor",Oe.gx))&&At("kml-gx:outerColor","KML - gx:outerColor is not supported in a LineStyle"),l(Kn(a,"outerWidth",Oe.gx))&&At("kml-gx:outerWidth","KML - gx:outerWidth is not supported in a LineStyle"),l(Kn(a,"physicalWidth",Oe.gx))&&At("kml-gx:physicalWidth","KML - gx:physicalWidth is not supported in a LineStyle"),l(Gd(a,"labelVisibility",Oe.gx))&&At("kml-gx:labelVisibility","KML - gx:labelVisibility is not supported in a LineStyle")}else if(a.localName==="PolyStyle"){let c=n.polygon;l(c)||(c=_Y(),n.polygon=c),c.material=y(Jx(a,"color",Oe.kml),c.material),c.fill=y(Gd(a,"fill",Oe.kml),c.fill),c.outline=y(Gd(a,"outline",Oe.kml),c.outline)}else if(a.localName==="BalloonStyle"){let c=y(fY(Dn(a,"bgColor",Oe.kml)),z.WHITE),u=y(fY(Dn(a,"textColor",Oe.kml)),z.BLACK),f=Dn(a,"text",Oe.kml);n.addProperty("balloonStyle"),n.balloonStyle={bgColor:c,textColor:u,text:f}}else if(a.localName==="ListStyle"){let c=Dn(a,"listItemType",Oe.kml);(c==="radioFolder"||c==="checkOffOnly")&&At(`kml-listStyle-${c}`,`KML - Unsupported ListStyle with listItemType: ${c}`)}}}function Yit(e,t,n,i,o){let r=new ir,s,a=-1,c=t.childNodes,u=c.length;for(let d=0;d<u;d++){let p=c[d];(p.localName==="Style"||p.localName==="StyleMap")&&(a=d)}if(a!==-1){let d=c[a];if(d.localName==="Style")kV(e,d,r,i,o);else{let p=Hd(d,"Pair",Oe.kml);for(let g=0;g<p.length;g++){let m=p[g],x=Dn(m,"key",Oe.kml);if(x==="normal"){let b=Dn(m,"styleUrl",Oe.kml);if(l(b))s=n.getById(b),l(s)||(s=n.getById(`#${b}`)),l(s)&&r.merge(s);else{let T=Si(m,"Style",Oe.kml);kV(e,T,r,i,o)}}else At(`kml-styleMap-${x}`,`KML - Unsupported StyleMap key: ${x}`)}}}let f=Dn(t,"styleUrl",Oe.kml);if(l(f)){let d=f;if(f[0]!=="#"&&f.indexOf("#")!==-1){let p=f.split("#"),g=p[0];d=`${i.getDerivedResource({url:g}).getUrlComponent()}#${p[1]}`}s=n.getById(d),l(s)||(s=n.getById(`#${d}`)),l(s)&&r.merge(s)}return r}function Xit(e,t,n){return t.fetchXML().then(function(i){return o_e(e,i,n,t,!0)})}function o_e(e,t,n,i,o,r){let s,a,c,u,f=Kpe(t,"Style",Oe.kml);if(l(f)){let x=f.length;for(s=0;s<x;s++)u=f[s],a=Es(u,"id"),l(a)&&(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),l(n.getById(a))||(c=new ir({id:a}),n.add(c),kV(e,u,c,i,r)))}let d=Kpe(t,"StyleMap",Oe.kml);if(l(d)){let x=d.length;for(s=0;s<x;s++){let b=d[s];if(a=Es(b,"id"),l(a)){let T=Hd(b,"Pair",Oe.kml);for(let A=0;A<T.length;A++){let C=T[A],S=Dn(C,"key",Oe.kml);if(S==="normal"){if(a=`#${a}`,o&&l(i)&&(a=i.getUrlComponent()+a),!l(n.getById(a))){c=n.getOrCreateEntity(a);let v=Dn(C,"styleUrl",Oe.kml);if(l(v)){v[0]!=="#"&&(v=`#${v}`),o&&l(i)&&(v=i.getUrlComponent()+v);let D=n.getById(v);l(D)&&c.merge(D)}else u=Si(C,"Style",Oe.kml),kV(e,u,c,i,r)}}else At(`kml-styleMap-${S}`,`KML - Unsupported StyleMap key: ${S}`)}}}}let p=[],g=t.getElementsByTagName("styleUrl"),m=g.length;for(s=0;s<m;s++){let x=g[s].textContent;if(x[0]!=="#"){let b=x.split("#");if(b.length===2){let T=b[0],A=i.getDerivedResource({url:T});p.push(Xit(e,A,n))}}}return p}function yY(e,t,n){let i=new ny(e,t.id,["position"]),o=new e_(t.position);t.polyline=l(n.polyline)?n.polyline.clone():new wc,t.polyline.positions=new ey([i,o])}function r_e(e,t){return!l(e)&&!l(t)||e==="clampToGround"?Ke.CLAMP_TO_GROUND:e==="relativeToGround"?Ke.RELATIVE_TO_GROUND:e==="absolute"?Ke.NONE:t==="clampToSeaFloor"?(At("kml-gx:altitudeMode-clampToSeaFloor","KML - <gx:altitudeMode>:clampToSeaFloor is currently not supported, using <kml:altitudeMode>:clampToGround."),Ke.CLAMP_TO_GROUND):t==="relativeToSeaFloor"?(At("kml-gx:altitudeMode-relativeToSeaFloor","KML - <gx:altitudeMode>:relativeToSeaFloor is currently not supported, using <kml:altitudeMode>:relativeToGround."),Ke.RELATIVE_TO_GROUND):(l(e)?At("kml-altitudeMode-unknown",`KML - Unknown <kml:altitudeMode>:${e}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`):At("kml-gx:altitudeMode-unknown",`KML - Unknown <gx:altitudeMode>:${t}, using <kml:altitudeMode>:CLAMP_TO_GROUND.`),Ke.CLAMP_TO_GROUND)}function Kit(e,t,n){return n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround"?e:((l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&At("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`),new e_(e))}function Zit(e,t,n,i){if(!l(e))return;if(n==="relativeToSeaFloor"||t==="absolute"||t==="relativeToGround")return e;(l(t)&&t!=="clampToGround"||l(n)&&n!=="clampToSeaFloor")&&At("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${y(t,n)}`);let o=e.length;for(let r=0;r<o;r++){let s=e[r];i.scaleToGeodeticSurface(s,s)}return e}function zV(e,t,n,i){let o=t.label;l(o)||(o=l(n.label)?n.label.clone():i_e(),t.label=o),o.text=t.name;let r=t.billboard;l(r)||(r=l(n.billboard)?n.billboard.clone():n_e(),t.billboard=r),l(r.image)?r.image.getValue()||(r.image=void 0):r.image=e._pinBuilder.fromColor(z.YELLOW,64);let s=1;l(r.scale)&&(s=r.scale.getValue(),s!==0?o.pixelOffset=new U(s*16+1,0):(o.pixelOffset=void 0,o.horizontalOrigin=void 0)),l(i)&&e._clampToGround&&(r.heightReference=i,o.heightReference=i)}function s_e(e,t){let n=e.path;l(n)||(n=new X_,n.leadTime=0,e.path=n);let i=t.polyline;l(i)&&(n.material=i.material,n.width=i.width)}function $it(e,t,n,i,o){let r=Dn(n,"coordinates",Oe.kml),s=Dn(n,"altitudeMode",Oe.kml),a=Dn(n,"altitudeMode",Oe.gx),c=Gd(n,"extrude",Oe.kml),u=e._ellipsoid,f=UV(r,u);return i.position=f,zV(e,i,o,r_e(s,a)),c&&fI(s,a)&&yY(t,i,o),!0}function Zpe(e,t,n,i,o){let r=Si(n,"coordinates",Oe.kml),s=Dn(n,"altitudeMode",Oe.kml),a=Dn(n,"altitudeMode",Oe.gx),c=Gd(n,"extrude",Oe.kml),u=Gd(n,"tessellate",Oe.kml),f=fI(s,a),d=Kn(n,"drawOrder",Oe.gx),p=e._ellipsoid,g=BV(r,p),m=o.polyline;if(f&&c){let x=new K_;i.wall=x,x.positions=g;let b=o.polygon;l(b)&&(x.fill=b.fill,x.material=b.material),x.outline=!0,l(m)?(x.outlineColor=l(m.material)?m.material.color:z.WHITE,x.outlineWidth=m.width):l(b)&&(x.outlineColor=l(b.material)?b.material.color:z.WHITE)}else if(e._clampToGround&&!f&&u){let x=new wc;x.clampToGround=!0,i.polyline=x,x.positions=g,l(m)?(x.material=l(m.material)?m.material.color.getValue(ze.MINIMUM_VALUE):z.WHITE,x.width=y(m.width,1)):(x.material=z.WHITE,x.width=1),x.zIndex=d}else l(d)&&At("kml-gx:drawOrder","KML - gx:drawOrder is not supported in LineStrings when clampToGround is false"),e._clampToGround&&!u&&At("kml-line-tesselate","Ignoring clampToGround for KML lines without the tessellate flag."),m=l(m)?m.clone():new wc,i.polyline=m,m.positions=Zit(g,s,a,p),(!u||f)&&(m.arcType=tn.NONE);return!0}function Qit(e,t,n,i,o){let r=Si(n,"outerBoundaryIs",Oe.kml),s=Si(r,"LinearRing",Oe.kml),a=Si(s,"coordinates",Oe.kml),c=e._ellipsoid,u=BV(a,c),f=Gd(n,"extrude",Oe.kml),d=Dn(n,"altitudeMode",Oe.kml),p=Dn(n,"altitudeMode",Oe.gx),g=fI(d,p),m=l(o.polygon)?o.polygon.clone():_Y(),x=o.polyline;if(l(x)&&(m.outlineColor=l(x.material)?x.material.color:z.WHITE,m.outlineWidth=x.width),i.polygon=m,g?(m.perPositionHeight=!0,m.extrudedHeight=f?0:void 0):e._clampToGround||(m.height=0),l(u)){let b=new qa(u),T=Hd(n,"innerBoundaryIs",Oe.kml);for(let A=0;A<T.length;A++){s=Hd(T[A],"LinearRing",Oe.kml);for(let C=0;C<s.length;C++)a=Si(s[C],"coordinates",Oe.kml),u=BV(a,c),l(u)&&b.holes.push(new qa(u))}m.hierarchy=b}return!0}function Jit(e,t,n,i,o){let r=Dn(n,"altitudeMode",Oe.kml),s=Dn(n,"altitudeMode",Oe.gx),a=Hd(n,"coord",Oe.gx),c=Hd(n,"angles",Oe.gx),u=Hd(n,"when",Oe.kml),f=Gd(n,"extrude",Oe.kml),d=fI(r,s),p=e._ellipsoid;c.length>0&&At("kml-gx:angles","KML - gx:angles are not supported in gx:Tracks");let g=Math.min(a.length,u.length),m=[],x=[];for(let T=0;T<g;T++){let A=UV(a[T].textContent,p);m.push(A),x.push(K.fromIso8601(u[T].textContent))}let b=new Sa;return b.addSamples(x,m),i.position=b,zV(e,i,o,r_e(r,s)),s_e(i,o),i.availability=new jr,u.length>0&&i.availability.addInterval(new Sn({start:x[0],stop:x[x.length-1]})),d&&f&&yY(t,i,o),!0}function $pe(e,t,n,i,o,r,s,a,c){let u=e[0],f=e[e.length-1],d=new Sa;d.addSamples(e,t),n.intervals.addInterval(new Sn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:Kit(d,s,a)})),i.addInterval(new Sn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c})),o.intervals.addInterval(new Sn({start:u,stop:f,isStartIncluded:c,isStopIncluded:c,data:r}))}function eot(e,t,n,i,o){let r=Gd(n,"interpolate",Oe.gx),s=Hd(n,"Track",Oe.gx),a,c,u,f=!1,d=new ry,p=new jr,g=new Ea,m=e._ellipsoid;for(let x=0,b=s.length;x<b;x++){let T=s[x],A=Hd(T,"when",Oe.kml),C=Hd(T,"coord",Oe.gx),S=Dn(T,"altitudeMode",Oe.kml),v=Dn(T,"altitudeMode",Oe.gx),D=fI(S,v),O=Gd(T,"extrude",Oe.kml),R=Math.min(C.length,A.length),M=[];a=[];for(let L=0;L<R;L++){let _=UV(C[L].textContent,m);M.push(_),a.push(K.fromIso8601(A[L].textContent))}r&&(l(c)&&$pe([c,a[0]],[u,M[0]],g,p,d,!1,"absolute",void 0,!1),c=a[R-1],u=M[M.length-1]),$pe(a,M,g,p,d,D&&O,S,v,!0),f=f||D&&O}return i.availability=p,i.position=g,zV(e,i,o),s_e(i,o),f&&(yY(t,i,o),i.polyline.show=d),!0}var a_e={Point:$it,LineString:Zpe,LinearRing:Zpe,Polygon:Qit,Track:Jit,MultiTrack:eot,MultiGeometry:tot,Model:not};function tot(e,t,n,i,o,r){let s=n.childNodes,a=!1;for(let c=0,u=s.length;c<u;c++){let f=s.item(c),d=a_e[f.localName];if(l(d)){let p=t_e(f,t,r);p.parent=i,p.name=i.name,p.availability=i.availability,p.description=i.description,p.kml=i.kml,d(e,t,f,p,o)&&(a=!0)}}return a}function not(e,t,n,i,o){return At("kml-unsupportedGeometry",`KML - Unsupported geometry: ${n.localName}`),!1}function iot(e,t){let n=Si(e,"ExtendedData",Oe.kml);if(!l(n))return;l(Si(n,"SchemaData",Oe.kml))&&At("kml-schemaData","KML - SchemaData is unsupported"),l(Es(n,"xmlns:prefix"))&&At("kml-extendedData","KML - ExtendedData with xmlns:prefix is unsupported");let i={},o=Hd(n,"Data",Oe.kml);if(l(o)){let r=o.length;for(let s=0;s<r;s++){let a=o[s],c=Es(a,"name");l(c)&&(i[c]={displayName:Dn(a,"displayName",Oe.kml),value:Dn(a,"value",Oe.kml)})}}t.kml.extendedData=i}var co;typeof document<"u"&&(co=document.createElement("div"));function oot(e,t,n,i,o){let r,s,a,c=t.kml,u=c.extendedData,f=Dn(e,"description",Oe.kml),d=y(t.balloonStyle,n.balloonStyle),p=z.WHITE,g=z.BLACK,m=f;l(d)&&(p=y(d.bgColor,z.WHITE),g=y(d.textColor,z.BLACK),m=y(d.text,f));let x;if(l(m)){if(m=m.replace("$[name]",y(t.name,"")),m=m.replace("$[description]",y(f,"")),m=m.replace("$[address]",y(c.address,"")),m=m.replace("$[Snippet]",y(c.snippet,"")),m=m.replace("$[id]",t.id),m=m.replace("$[geDirections]",""),l(u)){let A=m.match(/\$\[.+?\]/g);if(A!==null)for(r=0;r<A.length;r++){let C=A[r],S=C.substr(2,C.length-3),v=/\/displayName$/.test(S);S=S.replace(/\/displayName$/,""),x=u[S],l(x)&&(x=v?x.displayName:x.value),l(x)&&(m=m.replace(C,y(x,"")))}}}else if(l(u)&&(a=Object.keys(u),a.length>0)){for(m='<table class="cesium-infoBox-defaultTable cesium-infoBox-defaultTable-lighter"><tbody>',r=0;r<a.length;r++)s=a[r],x=u[s],m+=`<tr><th>${y(x.displayName,s)}</th><td>${y(x.value,"")}</td></tr>`;m+="</tbody></table>"}if(!l(m))return;m=Vit.link(m),co.innerHTML=m;let b=co.querySelectorAll("a");for(r=0;r<b.length;r++)b[r].setAttribute("target","_blank");l(i)&&i.keys.length>1&&(Au(co,"a","href",i),Au(co,"link","href",i),Au(co,"area","href",i),Au(co,"img","src",i),Au(co,"iframe","src",i),Au(co,"video","src",i),Au(co,"audio","src",i),Au(co,"source","src",i),Au(co,"track","src",i),Au(co,"input","src",i),Au(co,"embed","src",i),Au(co,"script","src",i),Au(co,"video","poster",i)),Cu(co,"a","href",o),Cu(co,"link","href",o),Cu(co,"area","href",o),Cu(co,"img","src",o),Cu(co,"iframe","src",o),Cu(co,"video","src",o),Cu(co,"audio","src",o),Cu(co,"source","src",o),Cu(co,"track","src",o),Cu(co,"input","src",o),Cu(co,"embed","src",o),Cu(co,"script","src",o),Cu(co,"video","poster",o);let T='<div class="cesium-infoBox-description-lighter" style="';T+="overflow:auto;",T+="word-wrap:break-word;",T+=`background-color:${p.toCssColorString()};`,T+=`color:${g.toCssColorString()};`,T+='">',T+=`${co.innerHTML}</div>`,co.innerHTML="",t.description=T}function HV(e,t,n){let i=n.entityCollection,o=n.parentEntity,r=n.sourceResource,s=n.uriResolver,a=t_e(t,i,n.context),c=a.kml,u=Yit(e,t,n.styleCollection,r,s),f=Dn(t,"name",Oe.kml);a.name=f,a.parent=o;let d=jit(t);l(d)||(d=Wit(t)),a.availability=d,TY(a);function p(C){return C?C.show&&p(C.parent):!0}let g=Gd(t,"visibility",Oe.kml);a.show=p(o)&&y(g,!0);let m=Si(t,"author",Oe.atom),x=c.author;x.name=Dn(m,"name",Oe.atom),x.uri=Dn(m,"uri",Oe.atom),x.email=Dn(m,"email",Oe.atom);let b=Si(t,"link",Oe.atom),T=c.link;T.href=Es(b,"href"),T.hreflang=Es(b,"hreflang"),T.rel=Es(b,"rel"),T.type=Es(b,"type"),T.title=Es(b,"title"),T.length=Es(b,"length"),c.address=Dn(t,"address",Oe.kml),c.phoneNumber=Dn(t,"phoneNumber",Oe.kml),c.snippet=Dn(t,"Snippet",Oe.kml),iot(t,a),oot(t,a,u,s,r);let A=e._ellipsoid;return u_e(t,a,A),l_e(t,a,A),l(Si(t,"Region",Oe.kml))&&At("kml-region","KML - Placemark Regions are unsupported"),{entity:a,styleEntity:u}}function c_e(e,t,n,i){i.addNodes(t.childNodes,n),i.process()}function rot(e,t,n,i){let o=HV(e,t,n),r=Ge(n);r.parentEntity=o.entity,c_e(e,t,r,i)}function sot(e,t,n,i){let o=HV(e,t,n),r=o.entity,s=o.styleEntity,a=!1,c=t.childNodes;for(let u=0,f=c.length;u<f&&!a;u++){let d=c.item(u),p=a_e[d.localName];l(p)&&(p(e,n.entityCollection,d,r,s,r.id),a=!0)}a||(r.merge(s),zV(e,r,s))}var aot={FlyTo:uot,Wait:lot,SoundCue:cY,AnimatedUpdate:cY,TourControl:cY};function cot(e,t,n,i){let o=Dn(t,"name",Oe.kml),r=Es(t,"id"),s=new MV(o,r),a=Si(t,"Playlist",Oe.gx);if(a){let c=e._ellipsoid,u=a.childNodes;for(let f=0;f<u.length;f++){let d=u[f];if(d.localName){let p=aot[d.localName];p?p(s,d,c):console.log(`Unknown KML Tour playlist entry type ${d.localName}`)}}}e._kmlTours.push(s)}function cY(e,t){At(`KML Tour unsupported node ${t.localName}`)}function lot(e,t){let n=Kn(t,"duration",Oe.gx);e.addPlaylistEntry(new FV(n))}function uot(e,t,n){let i=Kn(t,"duration",Oe.gx),o=Dn(t,"flyToMode",Oe.gx),r={kml:{}};u_e(t,r,n),l_e(t,r,n);let s=r.kml.lookAt||r.kml.camera,a=new NV(i,o,s);e.addPlaylistEntry(a)}function l_e(e,t,n){let i=Si(e,"Camera",Oe.kml);if(l(i)){let o=y(Kn(i,"longitude",Oe.kml),0),r=y(Kn(i,"latitude",Oe.kml),0),s=y(Kn(i,"altitude",Oe.kml),0),a=y(Kn(i,"heading",Oe.kml),0),c=y(Kn(i,"tilt",Oe.kml),0),u=y(Kn(i,"roll",Oe.kml),0),f=h.fromDegrees(o,r,s,n),d=Ua.fromDegrees(a,c-90,u);t.kml.camera=new Nk(f,d)}}function u_e(e,t,n){let i=Si(e,"LookAt",Oe.kml);if(l(i)){let o=y(Kn(i,"longitude",Oe.kml),0),r=y(Kn(i,"latitude",Oe.kml),0),s=y(Kn(i,"altitude",Oe.kml),0),a=Kn(i,"heading",Oe.kml),c=Kn(i,"tilt",Oe.kml),u=y(Kn(i,"range",Oe.kml),0);c=P.toRadians(y(c,0)),a=P.toRadians(y(a,0));let f=new Vd(a,c-P.PI_OVER_TWO,u),d=h.fromDegrees(o,r,s,n);t.kml.lookAt=new RV(d,f)}}function fot(e,t,n,i){let o=n.screenOverlayContainer;if(!l(o))return;let r=n.sourceResource,s=n.uriResolver,a=Si(t,"Icon",Oe.kml),c=gY(a,e,r,s,!1);if(!l(c))return;let u=document.createElement("img");e._screenOverlays.push(u),u.src=c.url,u.onload=function(){let f=["position: absolute"],d=Si(t,"screenXY",Oe.kml),p=Si(t,"overlayXY",Oe.kml),g=Si(t,"size",Oe.kml),m,x,b,T,A,C;l(g)&&(m=Ry(g,"x"),x=Ry(g,"y"),b=Es(g,"xunits"),T=Es(g,"yunits"),l(m)&&m!==-1&&m!==0&&(b==="fraction"?A=`width: ${Math.floor(m*100)}%`:b==="pixels"&&(A=`width: ${m}px`),f.push(A)),l(x)&&x!==-1&&x!==0&&(T==="fraction"?C=`height: ${Math.floor(x*100)}%`:T==="pixels"&&(C=`height: ${x}px`),f.push(C))),u.style=f.join(";");let S=0,v=u.height;l(p)&&(m=Ry(p,"x"),x=Ry(p,"y"),b=Es(p,"xunits"),T=Es(p,"yunits"),l(m)&&(b==="fraction"?S=m*u.width:(b==="pixels"||b==="insetPixels")&&(S=m)),l(x)&&(T==="fraction"?v=x*u.height:(T==="pixels"||T==="insetPixels")&&(v=x))),l(d)&&(m=Ry(d,"x"),x=Ry(d,"y"),b=Es(d,"xunits"),T=Es(d,"yunits"),l(m)&&(b==="fraction"?A=`left: calc(${Math.floor(m*100)}% - ${S}px)`:b==="pixels"?A=`left: ${m-S}px`:b==="insetPixels"&&(A=`right: ${m-S}px`),f.push(A)),l(x)&&(T==="fraction"?C=`bottom: calc(${Math.floor(x*100)}% - ${v}px)`:T==="pixels"?C=`bottom: ${x-v}px`:T==="insetPixels"&&(C=`top: ${x-v}px`),f.push(C))),u.style=f.join(";")},o.appendChild(u)}function dot(e,t,n,i){let r=HV(e,t,n).entity,s,a=!1,c=e._ellipsoid,u=BV(Si(t,"LatLonQuad",Oe.gx),c),f=Kn(t,"drawOrder",Oe.kml);if(l(u))s=_Y(),s.hierarchy=new qa(u),s.zIndex=f,r.polygon=s,a=!0;else{s=new Dh,s.zIndex=f,r.rectangle=s;let m=Si(t,"LatLonBox",Oe.kml);if(l(m)){let x=Kn(m,"west",Oe.kml),b=Kn(m,"south",Oe.kml),T=Kn(m,"east",Oe.kml),A=Kn(m,"north",Oe.kml);l(x)&&(x=P.negativePiToPi(P.toRadians(x))),l(b)&&(b=P.clampToLatitudeRange(P.toRadians(b))),l(T)&&(T=P.negativePiToPi(P.toRadians(T))),l(A)&&(A=P.clampToLatitudeRange(P.toRadians(A))),s.coordinates=new re(x,b,T,A);let C=Kn(m,"rotation",Oe.kml);if(l(C)){let S=P.toRadians(C);s.rotation=S,s.stRotation=S}}}let d=Si(t,"Icon",Oe.kml),p=gY(d,e,n.sourceResource,n.uriResolver,!0);if(l(p)){a&&At("kml-gx:LatLonQuad","KML - gx:LatLonQuad Icon does not support texture projection.");let m=Kn(d,"x",Oe.gx),x=Kn(d,"y",Oe.gx),b=Kn(d,"w",Oe.gx),T=Kn(d,"h",Oe.gx);(l(m)||l(x)||l(b)||l(T))&&At("kml-groundOverlay-xywh","KML - gx:x, gx:y, gx:w, gx:h aren't supported for GroundOverlays"),s.material=p,s.material.color=Jx(t,"color",Oe.kml),s.material.transparent=!0}else s.material=Jx(t,"color",Oe.kml);let g=Dn(t,"altitudeMode",Oe.kml);l(g)?g==="absolute"?(s.height=Kn(t,"altitude",Oe.kml),s.zIndex=void 0):g!=="clampToGround"&&At("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`):(g=Dn(t,"altitudeMode",Oe.gx),g==="relativeToSeaFloor"?(At("kml-altitudeMode-relativeToSeaFloor","KML - altitudeMode relativeToSeaFloor is currently not supported, treating as absolute."),s.height=Kn(t,"altitude",Oe.kml),s.zIndex=void 0):g==="clampToSeaFloor"?At("kml-altitudeMode-clampToSeaFloor","KML - altitudeMode clampToSeaFloor is currently not supported, treating as clampToGround."):l(g)&&At("kml-altitudeMode-unknown",`KML - Unknown altitudeMode: ${g}`))}function f_e(e,t,n,i){e._unsupportedNode.raiseEvent(e,n.parentEntity,t,n.entityCollection,n.styleCollection,n.sourceResource,n.uriResolver),At(`kml-unsupportedFeature-${t.nodeName}`,`KML - Unsupported feature: ${t.nodeName}`)}var Oy={INTERVAL:0,EXPIRE:1,STOP:2};function VV(e){if(!l(e)||e.length===0)return"";let t=e[0];return(t==="&"||t==="?")&&(e=e.substring(1)),e}var hot=new re,yE=new fe,lY=new U,mot=new h;function xY(e,t,n,i,o,r){function s(u){return u<-P.PI_OVER_TWO?-P.PI_OVER_TWO:u>P.PI_OVER_TWO?P.PI_OVER_TWO:u}function a(u){return u>P.PI?u-P.TWO_PI:u<-P.PI?u+P.TWO_PI:u}let c=aT(e.queryParameters);if(c=c.replace(/%5B/g,"[").replace(/%5D/g,"]"),l(t)&&t._mode!==ne.MORPHING){let u,f;if(o=y(o,hot),l(n)&&(lY.x=n.clientWidth*.5,lY.y=n.clientHeight*.5,u=t.pickEllipsoid(lY,r,mot)),l(u)?f=r.cartesianToCartographic(u,yE):(f=re.center(o,yE),u=r.cartographicToCartesian(f)),l(i)&&!P.equalsEpsilon(i,1,P.EPSILON9)){let T=o.width*i*.5,A=o.height*i*.5;o=new re(a(f.longitude-T),s(f.latitude-A),a(f.longitude+T),s(f.latitude+A))}c=c.replace("[bboxWest]",P.toDegrees(o.west).toString()),c=c.replace("[bboxSouth]",P.toDegrees(o.south).toString()),c=c.replace("[bboxEast]",P.toDegrees(o.east).toString()),c=c.replace("[bboxNorth]",P.toDegrees(o.north).toString());let d=P.toDegrees(f.longitude).toString(),p=P.toDegrees(f.latitude).toString();c=c.replace("[lookatLon]",d),c=c.replace("[lookatLat]",p),c=c.replace("[lookatTilt]",P.toDegrees(t.pitch).toString()),c=c.replace("[lookatHeading]",P.toDegrees(t.heading).toString()),c=c.replace("[lookatRange]",h.distance(t.positionWC,u)),c=c.replace("[lookatTerrainLon]",d),c=c.replace("[lookatTerrainLat]",p),c=c.replace("[lookatTerrainAlt]",f.height.toString()),r.cartesianToCartographic(t.positionWC,yE),c=c.replace("[cameraLon]",P.toDegrees(yE.longitude).toString()),c=c.replace("[cameraLat]",P.toDegrees(yE.latitude).toString()),c=c.replace("[cameraAlt]",P.toDegrees(yE.height).toString());let g=t.frustum,m=g.aspectRatio,x="",b="";if(l(m)){let T=P.toDegrees(g.fov);m>1?(x=T,b=T/m):(b=T,x=T*m)}c=c.replace("[horizFov]",x.toString()),c=c.replace("[vertFov]",b.toString())}else c=c.replace("[bboxWest]","-180"),c=c.replace("[bboxSouth]","-90"),c=c.replace("[bboxEast]","180"),c=c.replace("[bboxNorth]","90"),c=c.replace("[lookatLon]",""),c=c.replace("[lookatLat]",""),c=c.replace("[lookatRange]",""),c=c.replace("[lookatTilt]",""),c=c.replace("[lookatHeading]",""),c=c.replace("[lookatTerrainLon]",""),c=c.replace("[lookatTerrainLat]",""),c=c.replace("[lookatTerrainAlt]",""),c=c.replace("[cameraLon]",""),c=c.replace("[cameraLat]",""),c=c.replace("[cameraAlt]",""),c=c.replace("[horizFov]",""),c=c.replace("[vertFov]","");l(n)?(c=c.replace("[horizPixels]",n.clientWidth),c=c.replace("[vertPixels]",n.clientHeight)):(c=c.replace("[horizPixels]",""),c=c.replace("[vertPixels]","")),c=c.replace("[terrainEnabled]","1"),c=c.replace("[clientVersion]","1"),c=c.replace("[kmlVersion]","2.2"),c=c.replace("[clientName]","Cesium"),c=c.replace("[language]","English"),e.setQueryParameters(Hu(c))}function pot(e,t,n,i){let r=HV(e,t,n).entity,s=n.sourceResource,a=n.uriResolver,c=Si(t,"Link",Oe.kml);if(l(c)||(c=Si(t,"Url",Oe.kml)),l(c)){let u=Dn(c,"href",Oe.kml),f,d;if(l(u)){let p=u;if(u=pY(u,s,n.uriResolver),/^data:/.test(u.getUrlComponent()))/\.kmz/i.test(s.getUrlComponent())||(p=s.getDerivedResource({url:p}));else{if(p=u.clone(),f=Dn(c,"viewRefreshMode",Oe.kml),f==="onRegion"){At("kml-refrehMode-onRegion","KML - Unsupported viewRefreshMode: onRegion");return}d=y(Dn(c,"viewBoundScale",Oe.kml),1);let b=f==="onStop"?"BBOX=[bboxWest],[bboxSouth],[bboxEast],[bboxNorth]":"",T=y(Dn(c,"viewFormat",Oe.kml),b),A=Dn(c,"httpQuery",Oe.kml);l(T)&&u.setQueryParameters(Hu(VV(T))),l(A)&&u.setQueryParameters(Hu(VV(A)));let C=e._ellipsoid;xY(u,e.camera,e.canvas,d,e._lastCameraView.bbox,C)}let g={sourceUri:p,uriResolver:a,context:r.id,screenOverlayContainer:n.screenOverlayContainer},m=new oa,x=bY(e,m,u,g).then(function(b){let T=e._entityCollection,A=m.values;T.suspendEvents();for(let v=0;v<A.length;v++){let D=A[v];l(D.parent)||(D.parent=r,TY(D)),T.add(D)}T.resumeEvents();let C=Dn(c,"refreshMode",Oe.kml),S=y(Kn(c,"refreshInterval",Oe.kml),0);if(C==="onInterval"&&S>0||C==="onExpire"||f==="onStop"){let v=Si(b,"NetworkLinkControl",Oe.kml),D=l(v),O=K.now(),R={id:zn(),href:u,cookie:{},lastUpdated:O,updating:!1,entity:r,viewBoundScale:d,needsUpdate:!1,cameraUpdateTime:O},M=0;if(D&&(R.cookie=Hu(y(Dn(v,"cookie",Oe.kml),"")),M=y(Kn(v,"minRefreshPeriod",Oe.kml),0)),C==="onInterval")D&&(S=Math.max(M,S)),R.refreshMode=Oy.INTERVAL,R.time=S;else if(C==="onExpire"){let L;if(D&&(L=Dn(v,"expires",Oe.kml)),l(L))try{let _=K.fromIso8601(L),E=K.secondsDifference(_,O);E>0&&E<M&&K.addSeconds(O,M,_),R.refreshMode=Oy.EXPIRE,R.time=_}catch{At("kml-refreshMode-onInterval-onExpire","KML - NetworkLinkControl expires is not a valid date")}else At("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element")}else l(e.camera)?(R.refreshMode=Oy.STOP,R.time=y(Kn(c,"viewRefreshTime",Oe.kml),0)):At("kml-refrehMode-onStop-noCamera","A NetworkLink with viewRefreshMode=onStop requires the `camera` property to be defined.");l(R.refreshMode)&&e._networkLinks.set(R.id,R)}}).catch(function(b){At(`An error occured during loading ${u.url}`),e._error.raiseEvent(e,b)});i.addPromise(x)}}}function _ot(e,t,n,i){let o=mY[t.localName];return l(o)?o(e,t,n,i):f_e(e,t,n,i)}function dY(e,t,n,i,o,r,s){t.removeAll();let a=n.documentElement,c=a.localName==="Document"?a:Si(a,"Document",Oe.kml),u=Dn(c,"name",Oe.kml);l(u)||(u=Jg(i.getUrlComponent())),l(e._name)||(e._name=u);let f=new Eu._DeferredLoading(e),d=new oa(e);return Promise.all(o_e(e,n,d,i,!1,o)).then(function(){let p=n.documentElement;if(p.localName==="kml"){let m=p.childNodes;for(let x=0;x<m.length;x++){let b=m[x];if(l(mY[b.localName])){p=b;break}}}let g={parentEntity:void 0,entityCollection:t,styleCollection:d,sourceResource:i,uriResolver:o,context:s,screenOverlayContainer:r};return t.suspendEvents(),_ot(e,p,g,f),t.resumeEvents(),f.wait().then(function(){return n.documentElement})})}function got(e,t,n,i,o){let r=nn("ThirdParty/Workers/z-worker-pako.js");lE({workerScripts:{deflate:[r,"./pako_deflate.min.js"],inflate:[r,"./pako_inflate.min.js"]}});let s=new vV(new r_(n));return Promise.resolve(s.getEntries()).then(function(a){let c=[],u={},f;for(let d=0;d<a.length;d++){let p=a[d];p.directory||(/\.kml$/i.test(p.filename)&&(!l(f)||!/\//i.test(p.filename))?(l(f)&&c.push(aY(f,u)),f=p):c.push(aY(p,u)))}return l(f)&&c.push(Git(f,u)),Promise.all(c).then(function(){if(s.close(),!l(u.kml))throw new ce("KMZ file does not contain a KML document.");return u.keys=Object.keys(u),dY(e,t,u.kml,i,u,o)})})}function bY(e,t,n,i){i=y(i,y.EMPTY_OBJECT);let o=i.sourceUri,r=i.uriResolver,s=i.context,a=i.screenOverlayContainer,c=n;if(typeof n=="string"||n instanceof De){n=De.createIfNeeded(n),c=n.fetchBlob(),o=y(o,n.clone());let u=e._resourceCredits,f=n.credits;if(l(f)){let d=f.length;for(let p=0;p<d;p++)u.push(f[p])}}else o=y(o,De.DEFAULT.clone());return o=De.createIfNeeded(o),l(a)&&(a=Rn(a)),Promise.resolve(c).then(function(u){return u instanceof Blob?zit(u).then(function(f){return f?got(e,t,u,o,a):Hit(u).then(function(d){d=Jpe(d),d=e_e(d);let p,g;try{p=hY.parseFromString(d,"application/xml")}catch(m){g=m.toString()}if(l(g)||p.body||p.documentElement.tagName==="parsererror"){let m=l(g)?g:p.documentElement.firstChild.nodeValue;throw m||(m=p.body.innerText),new ce(m)}return dY(e,t,p,o,r,a,s)})}):dY(e,t,u,o,r,a,s)}).catch(function(u){return e._error.raiseEvent(e,u),console.log(u),Promise.reject(u)})}function Eu(e){e=y(e,y.EMPTY_OBJECT);let t=e.camera,n=e.canvas;this._changed=new me,this._error=new me,this._loading=new me,this._refresh=new me,this._unsupportedNode=new me,this._clock=void 0,this._entityCollection=new oa(this),this._name=void 0,this._isLoading=!1,this._pinBuilder=new _y,this._networkLinks=new St,this._entityCluster=new vf,this.canvas=n,this.camera=t,this._lastCameraView={position:l(t)?h.clone(t.positionWC):void 0,direction:l(t)?h.clone(t.directionWC):void 0,up:l(t)?h.clone(t.upWC):void 0,bbox:l(t)?t.computeViewRectangle():re.clone(re.MAX_VALUE)},this._ellipsoid=y(e.ellipsoid,ee.default);let i=e.credit;typeof i=="string"&&(i=new wt(i)),this._credit=i,this._resourceCredits=[],this._kmlTours=[],this._screenOverlays=[]}Eu.load=function(e,t){return t=y(t,y.EMPTY_OBJECT),new Eu(t).load(e,t)};Object.defineProperties(Eu.prototype,{name:{get:function(){return this._name},set:function(e){this._name!==e&&(this._name=e,this._changed.raiseEvent(this))}},clock:{get:function(){return this._clock}},entities:{get:function(){return this._entityCollection}},isLoading:{get:function(){return this._isLoading}},changedEvent:{get:function(){return this._changed}},errorEvent:{get:function(){return this._error}},loadingEvent:{get:function(){return this._loading}},refreshEvent:{get:function(){return this._refresh}},unsupportedNodeEvent:{get:function(){return this._unsupportedNode}},show:{get:function(){return this._entityCollection.show},set:function(e){this._entityCollection.show=e}},clustering:{get:function(){return this._entityCluster},set:function(e){this._entityCluster=e}},credit:{get:function(){return this._credit}},kmlTours:{get:function(){return this._kmlTours}}});Eu.prototype.load=function(e,t){t=y(t,y.EMPTY_OBJECT),qr.setLoading(this,!0);let n=this._name;this._name=void 0,this._clampToGround=y(t.clampToGround,!1);let i=this;return bY(this,this._entityCollection,e,t).then(function(){let o,r=i._entityCollection.computeAvailability(),s=r.start,a=r.stop,c=K.equals(s,ze.MINIMUM_VALUE),u=K.equals(a,ze.MAXIMUM_VALUE);if(!c||!u){let d;c&&(d=new Date,d.setHours(0,0,0,0),s=K.fromDate(d)),u&&(d=new Date,d.setHours(24,0,0,0),a=K.fromDate(d)),o=new nm,o.startTime=s,o.stopTime=a,o.currentTime=K.clone(s),o.clockRange=Yr.LOOP_STOP,o.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,o.multiplier=Math.round(Math.min(Math.max(K.secondsDifference(a,s)/60,1),31556900))}let f=!1;return o!==i._clock&&(i._clock=o,f=!0),n!==i._name&&(f=!0),f&&i._changed.raiseEvent(i),qr.setLoading(i,!1),i}).catch(function(o){return qr.setLoading(i,!1),i._error.raiseEvent(i,o),console.log(o),Promise.reject(o)})};Eu.prototype.destroy=function(){for(;this._screenOverlays.length>0;)this._screenOverlays.pop().remove()};function TY(e){let t=e.parent;if(l(t)){let n=t.availability;if(l(n)){let i=e.availability;l(i)?i.intersect(n):e.availability=n}}}function yot(e,t,n,i,o){return function(r){if(!i.contains(t.id))return;let s=!1,a=Si(r,"NetworkLinkControl",Oe.kml),c=l(a),u=0;if(c){if(l(Si(a,"Update",Oe.kml))){At("kml-networkLinkControl-update","KML - NetworkLinkControl updates aren't supported."),t.updating=!1,i.remove(t.id);return}t.cookie=Hu(y(Dn(a,"cookie",Oe.kml),"")),u=y(Kn(a,"minRefreshPeriod",Oe.kml),0)}let f=K.now(),d=t.refreshMode;if(d===Oy.INTERVAL)l(a)&&(t.time=Math.max(u,t.time));else if(d===Oy.EXPIRE){let O;if(l(a)&&(O=Dn(a,"expires",Oe.kml)),l(O))try{let R=K.fromIso8601(O),M=K.secondsDifference(R,f);M>0&&M<u&&K.addSeconds(f,u,R),t.time=R}catch{At("kml-networkLinkControl-expires","KML - NetworkLinkControl expires is not a valid date"),s=!0}else At("kml-refreshMode-onExpire","KML - refreshMode of onExpire requires the NetworkLinkControl to have an expires element"),s=!0}let p=t.entity,g=e._entityCollection,m=n.values;function x(O){g.remove(O);let R=O._children,M=R.length;for(let L=0;L<M;++L)x(R[L])}g.suspendEvents();let b=g.values.slice(),T;for(T=0;T<b.length;++T){let O=b[T];O.parent===p&&(O.parent=void 0,x(O))}for(g.resumeEvents(),g.suspendEvents(),T=0;T<m.length;T++){let O=m[T];l(O.parent)||(O.parent=p,TY(O)),g.add(O)}g.resumeEvents(),s?i.remove(t.id):t.lastUpdated=f;let A=g.computeAvailability(),C=A.start,S=A.stop,v=K.equals(C,ze.MINIMUM_VALUE),D=K.equals(S,ze.MAXIMUM_VALUE);if(!v||!D){let O=e._clock;(O.startTime!==C||O.stopTime!==S)&&(O.startTime=C,O.stopTime=S,e._changed.raiseEvent(e))}t.updating=!1,t.needsUpdate=!1,e._refresh.raiseEvent(e,o.getUrlComponent(!0))}}var uY=new St;Eu.prototype.update=function(e){let t=this._networkLinks;if(t.length===0)return!0;let n=K.now(),i=this;uY.removeAll();function o(f){let d=f._children,p=d.length;for(let g=0;g<p;++g){let m=d[g];uY.set(m.id,m),o(m)}}let r=!1,s=this._lastCameraView,a=this.camera;l(a)&&!(a.positionWC.equalsEpsilon(s.position,P.EPSILON7)&&a.directionWC.equalsEpsilon(s.direction,P.EPSILON7)&&a.upWC.equalsEpsilon(s.up,P.EPSILON7))&&(s.position=h.clone(a.positionWC),s.direction=h.clone(a.directionWC),s.up=h.clone(a.upWC),s.bbox=a.computeViewRectangle(),r=!0);let c=new St,u=!1;return t.values.forEach(function(f){let d=f.entity;if(!uY.contains(d.id)){if(!f.updating){let p=!1;if(f.refreshMode===Oy.INTERVAL?K.secondsDifference(n,f.lastUpdated)>f.time&&(p=!0):f.refreshMode===Oy.EXPIRE?K.greaterThan(n,f.time)&&(p=!0):f.refreshMode===Oy.STOP&&(r&&(f.needsUpdate=!0,f.cameraUpdateTime=n),f.needsUpdate&&K.secondsDifference(n,f.cameraUpdateTime)>=f.time&&(p=!0)),p){o(d),f.updating=!0;let g=new oa,m=f.href.clone();m.setQueryParameters(f.cookie);let x=y(i._ellipsoid,ee.default);xY(m,i.camera,i.canvas,f.viewBoundScale,s.bbox,x),bY(i,g,m,{context:d.id}).then(yot(i,f,g,c,m)).catch(function(b){let T=`NetworkLink ${f.href} refresh failed: ${b}`;console.log(T),i._error.raiseEvent(i,T)}),u=!0}}c.set(f.id,f)}}),u&&(this._networkLinks=c,this._changed.raiseEvent(this)),!0};function xot(){this.author={name:void 0,uri:void 0,email:void 0},this.link={href:void 0,hreflang:void 0,rel:void 0,type:void 0,title:void 0,length:void 0},this.address=void 0,this.phoneNumber=void 0,this.snippet=void 0,this.extendedData=void 0}Eu._DeferredLoading=bm;Eu._getTimestamp=Ti;var GV=Eu;function dI(){he.throwInstantiationError()}dI.prototype.update=he.throwInstantiationError;dI.prototype.getBoundingSphere=he.throwInstantiationError;dI.prototype.isDestroyed=he.throwInstantiationError;dI.prototype.destroy=he.throwInstantiationError;var d_e=dI;var AY=32,bot="http://www.opengis.net/kml/2.2",jd="http://www.google.com/kml/ext/2.2",Tot="http://www.w3.org/2000/xmlns/";function WV(e){this._files={},this._promises=[],this._count=0,this._modelCallback=e}var Aot=/^data:image\/([^,;]+)/;WV.prototype.texture=function(e){let t=this,n;if(typeof e=="string"||e instanceof De){if(e=De.createIfNeeded(e),!e.isDataUri)return e.url;let i=e.url.match(Aot);n=`texture_${++this._count}`,l(i)&&(n+=`.${i[1]}`);let o=e.fetchBlob().then(function(r){t._files[n]=r});return this._promises.push(o),n}if(e instanceof HTMLCanvasElement){n=`texture_${++this._count}.png`;let i=new Promise(o=>{e.toBlob(function(r){t._files[n]=r,o()})});return this._promises.push(i),n}return""};function Cot(e,t){return function(n){e._files[t]=n}}WV.prototype.model=function(e,t){let n=this._modelCallback;if(!l(n))throw new ce("Encountered a model entity while exporting to KML, but no model callback was supplied.");let i={},o=n(e,t,i);for(let r in i)if(i.hasOwnProperty(r)){let s=Promise.resolve(i[r]);this._promises.push(s),s.then(Cot(this,r))}return o};Object.defineProperties(WV.prototype,{promise:{get:function(){return Promise.all(this._promises)}},files:{get:function(){return this._files}}});function jV(e){this._time=e}jV.prototype.get=function(e,t,n){let i;return l(e)&&(i=l(e.getValue)?e.getValue(this._time,n):e),y(i,t)};jV.prototype.getColor=function(e,t){let n=this.get(e,t);if(l(n))return tb(n)};jV.prototype.getMaterialType=function(e){if(l(e))return e.getType(this._time)};function CY(){this._ids={},this._styles={},this._count=0}CY.prototype.get=function(e){let t=this._ids,n=e.innerHTML;if(l(t[n]))return t[n];let i=`style-${++this._count}`;return e.setAttribute("id",i),i=`#${i}`,t[n]=i,this._styles[n]=e,i};CY.prototype.save=function(e){let t=this._styles,n=e.childNodes[0];for(let i in t)t.hasOwnProperty(i)&&e.insertBefore(t[i],n)};function p_e(){this._ids={}}p_e.prototype.get=function(e){if(!l(e))return this.get(zn());let t=this._ids;return l(t[e])?`${e.toString()}-${++t[e]}`:(t[e]=0,e)};function EY(e){e=y(e,y.EMPTY_OBJECT);let t=e.entities,n=y(e.kmz,!1),i=EY._createState(e),o=t.values.filter(function(u){return!l(u.parent)}),r=i.kmlDoc,s=r.documentElement;s.setAttributeNS(Tot,"xmlns:gx",jd);let a=r.createElement("Document");s.appendChild(a),g_e(i,a,o),i.styleCache.save(a);let c=i.externalFileHandler;return c.promise.then(function(){let f=new XMLSerializer().serializeToString(i.kmlDoc);return n?Eot(f,c.files):{kml:f,externalFiles:c.files}})}function Eot(e,t){let n=nn("ThirdParty/Workers/z-worker-pako.js");lE({workerScripts:{deflate:[n,"./pako_deflate.min.js"],inflate:[n,"./pako_inflate.min.js"]}});let i=new iI,o=new IV(i);return o.add("doc.kml",new fV(e)).then(function(){let r=Object.keys(t);return __e(o,r,t,0)}).then(function(){return o.close()}).then(function(r){return{kmz:r}})}function __e(e,t,n,i){if(t.length===i)return;let o=t[i];return e.add(o,new r_(n[o])).then(function(){return __e(e,t,n,i+1)})}EY._createState=function(e){let t=e.entities,n=new CY,i=t.computeAvailability(),o=l(e.time)?e.time:i.start,r=y(e.defaultAvailability,i),s=y(e.sampleDuration,60);r.start===ze.MINIMUM_VALUE?r.stop===ze.MAXIMUM_VALUE?r=new Sn:K.addSeconds(r.stop,-10*s,r.start):r.stop===ze.MAXIMUM_VALUE&&K.addSeconds(r.start,10*s,r.stop);let a=new WV(e.modelCallback);return{kmlDoc:document.implementation.createDocument(bot,"kml"),ellipsoid:y(e.ellipsoid,ee.default),idManager:new p_e,styleCache:n,externalFileHandler:a,time:o,valueGetter:new jV(o),sampleDuration:s,defaultAvailability:new jr([r])}};function g_e(e,t,n){let i=e.kmlDoc,o=e.styleCache,r=e.valueGetter,s=e.idManager,a=n.length,c,u,f;for(let d=0;d<a;++d){let p=n[d];c=[],u=[],f=[],Sot(e,p,u,f),vot(e,p.polyline,u,f),m_e(e,p.rectangle,u,f,c),m_e(e,p.polygon,u,f,c),Pot(e,p,p.model,u,f);let g,m=p.availability;l(m)&&(g=i.createElement("TimeSpan"),K.equals(m.start,ze.MINIMUM_VALUE)||g.appendChild(un(i,"begin",K.toIso8601(m.start))),K.equals(m.stop,ze.MAXIMUM_VALUE)||g.appendChild(un(i,"end",K.toIso8601(m.stop))));for(let T=0;T<c.length;++T){let A=c[T];A.setAttribute("id",s.get(p.id)),A.appendChild(un(i,"name",p.name)),A.appendChild(un(i,"visibility",p.show)),A.appendChild(un(i,"description",p.description)),l(g)&&A.appendChild(g),t.appendChild(A)}let x=u.length;if(x>0){let T=i.createElement("Placemark");T.setAttribute("id",s.get(p.id));let A=p.name,C=p.label;if(l(C)){let v=i.createElement("LabelStyle"),D=r.get(C.text);A=l(D)&&D.length>0?D:A;let O=r.getColor(C.fillColor);l(O)&&(v.appendChild(un(i,"color",O)),v.appendChild(un(i,"colorMode","normal")));let R=r.get(C.scale);l(R)&&v.appendChild(un(i,"scale",R)),f.push(v)}T.appendChild(un(i,"name",A)),T.appendChild(un(i,"visibility",p.show)),T.appendChild(un(i,"description",p.description)),l(g)&&T.appendChild(g),t.appendChild(T);let S=f.length;if(S>0){let v=i.createElement("Style");for(let D=0;D<S;++D)v.appendChild(f[D]);T.appendChild(un(i,"styleUrl",o.get(v)))}if(u.length===1)T.appendChild(u[0]);else if(u.length>1){let v=i.createElement("MultiGeometry");for(let D=0;D<x;++D)v.appendChild(u[D]);T.appendChild(v)}}let b=p._children;if(b.length>0){let T=i.createElement("Folder");T.setAttribute("id",s.get(p.id)),T.appendChild(un(i,"name",p.name)),T.appendChild(un(i,"visibility",p.show)),T.appendChild(un(i,"description",p.description)),t.appendChild(T),g_e(e,T,b)}}}var Il=new h,Wc=new fe,Wd=new K;function Sot(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter,a=y(t.billboard,t.point);if(!l(a)&&!l(t.path))return;let c=t.position;if(!c.isConstant){y_e(e,t,a,n,i);return}s.get(c,void 0,Il);let u=un(o,"coordinates",eb(Il,r)),f=o.createElement("Point"),d=o.createElement("altitudeMode");d.appendChild(nb(e,a.heightReference)),f.appendChild(d),f.appendChild(u),n.push(f);let p=a instanceof Ac?b_e(e,a):x_e(e,a);i.push(p)}function y_e(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter,c,u=t.position,f=!0;u instanceof Ea?(c=u.intervals,f=!1):c=y(t.availability,e.defaultAvailability);let d=n instanceof Y_,p,g,m,x=[];for(p=0;p<c.length;++p){let T=c.get(p),A=f?u:T.data,C=r.createElement("altitudeMode");A instanceof e_?(A=A._value,C.appendChild(nb(e,Ke.CLAMP_TO_GROUND))):l(n)?C.appendChild(nb(e,n.heightReference)):C.appendChild(nb(e,Ke.NONE));let S=[],v=[];if(A.isConstant){a.get(A,void 0,Il);let O=un(r,"coordinates",eb(Il,s));S.push(K.toIso8601(T.start)),v.push(O),S.push(K.toIso8601(T.stop)),v.push(O)}else if(A instanceof Sa)for(m=A._property._times,g=0;g<m.length;++g)S.push(K.toIso8601(m[g])),A.getValueInReferenceFrame(m[g],ki.FIXED,Il),v.push(eb(Il,s));else if(A instanceof Df){m=A._times;let O=A._values;for(g=0;g<m.length;++g)S.push(K.toIso8601(m[g])),h.fromArray(O,g*3,Il),v.push(eb(Il,s))}else{let O=e.sampleDuration;T.start.clone(Wd),T.isStartIncluded||K.addSeconds(Wd,O,Wd);let R=T.stop;for(;K.lessThan(Wd,R);)A.getValue(Wd,Il),S.push(K.toIso8601(Wd)),v.push(eb(Il,s)),K.addSeconds(Wd,O,Wd);T.isStopIncluded&&K.equals(Wd,R)&&(A.getValue(Wd,Il),S.push(K.toIso8601(Wd)),v.push(eb(Il,s)))}let D=r.createElementNS(jd,"Track");D.appendChild(C);for(let O=0;O<S.length;++O){let R=un(r,"when",S[O]),M=un(r,"coord",v[O],jd);D.appendChild(R),D.appendChild(M)}d&&D.appendChild(T_e(e,n)),x.push(D)}if(x.length===1)i.push(x[0]);else if(x.length>1){let T=r.createElementNS(jd,"MultiTrack");for(p=0;p<x.length;++p)T.appendChild(x[p]);i.push(T)}if(l(n)&&!d){let T=n instanceof Ac?b_e(e,n):x_e(e,n);o.push(T)}let b=t.path;if(l(b)){let T=a.get(b.width),A=b.material;if(l(A)||l(T)){let C=r.createElement("LineStyle");l(T)&&C.appendChild(un(r,"width",T)),SY(e,A,C),o.push(C)}}}function x_e(e,t){let n=e.kmlDoc,i=e.valueGetter,o=n.createElement("IconStyle"),r=i.getColor(t.color);l(r)&&(o.appendChild(un(n,"color",r)),o.appendChild(un(n,"colorMode","normal")));let s=i.get(t.pixelSize);return l(s)&&o.appendChild(un(n,"scale",s/AY)),o}function b_e(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("IconStyle"),s=i.get(t.image);if(l(s)){s=o.texture(s);let p=n.createElement("Icon");p.appendChild(un(n,"href",s));let g=i.get(t.imageSubRegion);l(g)&&(p.appendChild(un(n,"x",g.x,jd)),p.appendChild(un(n,"y",g.y,jd)),p.appendChild(un(n,"w",g.width,jd)),p.appendChild(un(n,"h",g.height,jd))),r.appendChild(p)}let a=i.getColor(t.color);l(a)&&(r.appendChild(un(n,"color",a)),r.appendChild(un(n,"colorMode","normal")));let c=i.get(t.scale);l(c)&&r.appendChild(un(n,"scale",c));let u=i.get(t.pixelOffset);if(l(u)){c=y(c,1),U.divideByScalar(u,c,u);let p=i.get(t.width,AY),g=i.get(t.height,AY),m=i.get(t.horizontalOrigin,gi.CENTER);m===gi.CENTER?u.x-=p*.5:m===gi.RIGHT&&(u.x-=p);let x=i.get(t.verticalOrigin,On.CENTER);x===On.TOP?u.y+=g:x===On.CENTER&&(u.y+=g*.5);let b=n.createElement("hotSpot");b.setAttribute("x",-u.x),b.setAttribute("y",u.y),b.setAttribute("xunits","pixels"),b.setAttribute("yunits","pixels"),r.appendChild(b)}let f=i.get(t.rotation),d=i.get(t.alignedAxis);return l(f)&&h.equals(h.UNIT_Z,d)&&(f=P.toDegrees(-f),f===0&&(f=360),r.appendChild(un(n,"heading",f))),r}function vot(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=e.valueGetter;if(!l(t))return;let a=o.createElement("LineString"),c=o.createElement("altitudeMode"),u=s.get(t.clampToGround,!1),f;u?(a.appendChild(un(o,"tessellate",!0)),f=o.createTextNode("clampToGround")):f=o.createTextNode("absolute"),c.appendChild(f),a.appendChild(c);let d=t.positions,p=s.get(d),g=un(o,"coordinates",eb(p,r));a.appendChild(g);let m=s.get(t.zIndex);u&&l(m)&&a.appendChild(un(o,"drawOrder",m,jd)),n.push(a);let x=o.createElement("LineStyle"),b=s.get(t.width);l(b)&&x.appendChild(un(o,"width",b)),SY(e,t.material,x),i.push(x)}function wot(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0);n>0&&(r=n);let s=t.coordinates,a=o.get(s),c=[],u=[re.northeast,re.southeast,re.southwest,re.northwest];for(let g=0;g<4;++g)u[g](a,Wc),c.push(`${P.toDegrees(Wc.longitude)},${P.toDegrees(Wc.latitude)},${r}`);let f=un(i,"coordinates",c.join(" ")),d=i.createElement("outerBoundaryIs"),p=i.createElement("LinearRing");return p.appendChild(f),d.appendChild(p),[d]}function h_e(e,t,n,i){let o=e.kmlDoc,r=e.ellipsoid,s=[],a=t.length;for(let f=0;f<a;++f)fe.fromCartesian(t[f],r,Wc),s.push(`${P.toDegrees(Wc.longitude)},${P.toDegrees(Wc.latitude)},${i?Wc.height:n}`);let c=un(o,"coordinates",s.join(" ")),u=o.createElement("LinearRing");return u.appendChild(c),u}function Dot(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=o.get(t.height,0),s=o.get(t.perPositionHeight,!1);!s&&n>0&&(r=n);let a=[],c=t.hierarchy,u=o.get(c),f=Array.isArray(u)?u:u.positions,d=i.createElement("outerBoundaryIs");d.appendChild(h_e(e,f,r,s)),a.push(d);let p=u.holes;if(l(p)){let g=p.length;for(let m=0;m<g;++m){let x=i.createElement("innerBoundaryIs");x.appendChild(h_e(e,p[m].positions,r,s)),a.push(x)}}return a}function m_e(e,t,n,i,o){let r=e.kmlDoc,s=e.valueGetter;if(!l(t))return;let a=t instanceof Dh;if(a&&s.getMaterialType(t.material)==="Image"){Iot(e,t,o);return}let c=r.createElement("Polygon"),u=s.get(t.extrudedHeight,0);u>0&&c.appendChild(un(r,"extrude",!0));let f=a?wot(e,t,u):Dot(e,t,u),d=f.length;for(let b=0;b<d;++b)c.appendChild(f[b]);let p=r.createElement("altitudeMode");p.appendChild(nb(e,t.heightReference)),c.appendChild(p),n.push(c);let g=r.createElement("PolyStyle"),m=s.get(t.fill,!1);m&&g.appendChild(un(r,"fill",m)),SY(e,t.material,g);let x=s.get(t.outline,!1);if(x){g.appendChild(un(r,"outline",x));let b=r.createElement("LineStyle"),T=s.get(t.outlineWidth,1);b.appendChild(un(r,"width",T));let A=s.getColor(t.outlineColor,z.BLACK);b.appendChild(un(r,"color",A)),b.appendChild(un(r,"colorMode","normal")),i.push(b)}i.push(g)}function Iot(e,t,n){let i=e.kmlDoc,o=e.valueGetter,r=e.externalFileHandler,s=i.createElement("GroundOverlay"),a=i.createElement("altitudeMode");a.appendChild(nb(e,t.heightReference)),s.appendChild(a);let c=o.get(t.height);l(c)&&s.appendChild(un(i,"altitude",c));let u=o.get(t.coordinates),f=i.createElement("LatLonBox");f.appendChild(un(i,"north",P.toDegrees(u.north))),f.appendChild(un(i,"south",P.toDegrees(u.south))),f.appendChild(un(i,"east",P.toDegrees(u.east))),f.appendChild(un(i,"west",P.toDegrees(u.west))),s.appendChild(f);let d=o.get(t.material),p=r.texture(d.image),g=i.createElement("Icon");g.appendChild(un(i,"href",p)),s.appendChild(g);let m=d.color;l(m)&&s.appendChild(un(i,"color",tb(d.color))),n.push(s)}function T_e(e,t){let n=e.kmlDoc,i=e.valueGetter,o=e.externalFileHandler,r=n.createElement("Model"),s=i.get(t.scale);if(l(s)){let u=n.createElement("scale");u.appendChild(un(n,"x",s)),u.appendChild(un(n,"y",s)),u.appendChild(un(n,"z",s)),r.appendChild(u)}let a=n.createElement("Link"),c=o.model(t,e.time);return a.appendChild(un(n,"href",c)),r.appendChild(a),r}function Pot(e,t,n,i,o){let r=e.kmlDoc,s=e.ellipsoid,a=e.valueGetter;if(!l(n))return;let c=t.position;if(!c.isConstant){y_e(e,t,n,i,o);return}let u=T_e(e,n),f=r.createElement("altitudeMode");f.appendChild(nb(e,n.heightReference)),u.appendChild(f),a.get(c,void 0,Il),fe.fromCartesian(Il,s,Wc);let d=r.createElement("Location");d.appendChild(un(r,"longitude",P.toDegrees(Wc.longitude))),d.appendChild(un(r,"latitude",P.toDegrees(Wc.latitude))),d.appendChild(un(r,"altitude",Wc.height)),u.appendChild(d),i.push(u)}function SY(e,t,n){let i=e.kmlDoc,o=e.valueGetter;if(!l(t))return;let r=o.get(t);if(!l(r))return;let s,a=o.getMaterialType(t),c,u;switch(a){case"Image":s=tb(z.WHITE);break;case"Color":case"Grid":case"PolylineGlow":case"PolylineArrow":case"PolylineDash":s=tb(r.color);break;case"PolylineOutline":s=tb(r.color),c=tb(r.outlineColor),u=r.outlineWidth,n.appendChild(un(i,"outerColor",c,jd)),n.appendChild(un(i,"outerWidth",u,jd));break;case"Stripe":s=tb(r.oddColor);break}l(s)&&(n.appendChild(un(i,"color",s)),n.appendChild(un(i,"colorMode","normal")))}function nb(e,t){let n=e.kmlDoc,o=e.valueGetter.get(t,Ke.NONE),r;switch(o){case Ke.NONE:r=n.createTextNode("absolute");break;case Ke.CLAMP_TO_GROUND:r=n.createTextNode("clampToGround");break;case Ke.RELATIVE_TO_GROUND:r=n.createTextNode("relativeToGround");break}return r}function eb(e,t){Array.isArray(e)||(e=[e]);let n=e.length,i=[];for(let o=0;o<n;++o)fe.fromCartesian(e[o],t,Wc),i.push(`${P.toDegrees(Wc.longitude)},${P.toDegrees(Wc.latitude)},${Wc.height}`);return i.join(" ")}function un(e,t,n,i){n=y(n,""),typeof n=="boolean"&&(n=n?"1":"0");let o=l(i)?e.createElementNS(i,t):e.createElement(t),r=n==="string"&&n.indexOf("<")!==-1?e.createCDATASection(n):e.createTextNode(n);return o.appendChild(r),o}function tb(e){let t="",n=e.toBytes();for(let i=3;i>=0;--i)t+=n[i]<16?`0${n[i].toString(16)}`:n[i].toString(16);return t}var A_e=EY;function Rot(e){let t,n=e.name,i=e.message;l(n)&&l(i)?t=`${n}: ${i}`:t=e.toString();let o=e.stack;return l(o)&&(t+=` +${o}`),t}var s_=Rot;async function Oot(e,t,n,i){return l(i)||(i=!1),Not(e,t,n,i)}function Mot(e,t,n){let i=e[0],o=i.terrainProvider.requestTileGeometry(i.x,i.y,i.level);if(!o)return!1;let r;return n?r=o.then(E_e(i)):r=o.then(E_e(i)).catch(Fot(i)),e.shift(),t.push(r),!0}function Lot(e){return new Promise(function(t){setTimeout(t,e)})}function vY(e,t,n){return e.length?Mot(e,t,n)?vY(e,t,n):Lot(100).then(()=>vY(e,t,n)):Promise.resolve()}function Not(e,t,n,i){let o=e.tilingScheme,r,s=[],a={};for(r=0;r<n.length;++r){let u=o.positionToTileXY(n[r],t);if(!l(u))continue;let f=u.toString();if(!a.hasOwnProperty(f)){let d={x:u.x,y:u.y,level:t,tilingScheme:o,terrainProvider:e,positions:[]};a[f]=d,s.push(d)}a[f].positions.push(n[r])}let c=[];return vY(s,c,i).then(function(){return Promise.all(c).then(function(){return n})})}function C_e(e,t,n){let i=t.interpolateHeight(n,e.longitude,e.latitude);return i===void 0?!1:(e.height=i,!0)}function E_e(e){let t=e.positions,n=e.tilingScheme.tileXYToRectangle(e.x,e.y,e.level);return function(i){let o=!1;for(let r=0;r<t.length;++r){let s=t[r];if(!C_e(s,i,n)){o=!0;break}}return o?i.createMesh({tilingScheme:e.tilingScheme,x:e.x,y:e.y,level:e.level,throttle:!1}).then(function(){for(let r=0;r<t.length;++r){let s=t[r];C_e(s,i,n)}}):Promise.resolve()}}function Fot(e){let t=e.positions;return function(){for(let n=0;n<t.length;++n){let i=t[n];i.height=void 0}}}var qV=Oot;var wY=new U;async function S_e(e,t,n){l(n)||(n=!1);let i=[],o=[],r=e.availability,s=[];for(let c=0;c<t.length;++c){let u=t[c],f=r.computeMaximumLevelAtPosition(u);if(o[c]=f,f===0){e.tilingScheme.positionToTileXY(u,1,wY);let p=e.loadTileDataAvailability(wY.x,wY.y,1);l(p)&&s.push(p)}let d=i[f];l(d)||(i[f]=d=[]),d.push(u)}await Promise.all(s),await Promise.all(i.map(function(c,u){if(l(c))return qV(e,u,c,n)}));let a=[];for(let c=0;c<t.length;++c){let u=t[c];r.computeMaximumLevelAtPosition(u)!==o[c]&&a.push(u)}return a.length>0&&await S_e(e,a,n),t}var xE=S_e;async function DY(e,t){let n=t.terrainProvider,i=t.mapProjection,o=i.ellipsoid,r,s=t.camera.getRectangleCameraCoordinates(e);if(t.mode===ne.SCENE3D?r=o.cartesianToCartographic(s):r=i.unproject(s),!l(n))return r;let a=n.availability;if(!l(a)||t.mode===ne.SCENE2D)return r;let c=[re.center(e),re.southeast(e),re.southwest(e),re.northeast(e),re.northwest(e)],u=await DY._sampleTerrainMostDetailed(n,c),f=!1,d=u.reduce(function(g,m){return l(m.height)?(f=!0,Math.max(m.height,g)):g},-Number.MAX_VALUE),p=r;return f&&(p.height+=d),p}DY._sampleTerrainMostDetailed=xE;var bE=DY;var Bot={NONE:0,LERC:1},qd=Object.freeze(Bot);var kot={NONE:0,BITS12:1},ua=Object.freeze(kot);var ib=new h,Vot=new h,Nf=new U,YV=new F,Uot=new F,zot=Math.pow(2,12);function oc(e,t,n,i,o,r,s,a,c,u){let f=ua.NONE,d,p;if(l(t)&&l(n)&&l(i)&&l(o)){let g=t.minimum,m=t.maximum,x=h.subtract(m,g,Vot),b=i-n;Math.max(h.maximumComponent(x),b)<zot-1?f=ua.BITS12:f=ua.NONE,d=F.inverseTransformation(o,new F);let A=h.negate(g,ib);F.multiply(F.fromTranslation(A,YV),d,d);let C=ib;C.x=1/x.x,C.y=1/x.y,C.z=1/x.z,F.multiply(F.fromScale(C,YV),d,d),p=F.clone(o),F.setTranslation(p,h.ZERO,p),o=F.clone(o,new F);let S=F.fromTranslation(g,YV),v=F.fromScale(x,Uot),D=F.multiply(S,v,YV);F.multiply(o,D,o),F.multiply(p,D,p)}this.quantization=f,this.minimumHeight=n,this.maximumHeight=i,this.center=h.clone(e),this.toScaledENU=d,this.fromScaledENU=o,this.matrix=p,this.hasVertexNormals=r,this.hasWebMercatorT=y(s,!1),this.hasGeodeticSurfaceNormals=y(a,!1),this.exaggeration=y(c,1),this.exaggerationRelativeHeight=y(u,0),this.stride=0,this._offsetGeodeticSurfaceNormal=0,this._offsetVertexNormal=0,this._calculateStrideAndOffsets()}oc.prototype.encode=function(e,t,n,i,o,r,s,a){let c=i.x,u=i.y;if(this.quantization===ua.BITS12){n=F.multiplyByPoint(this.toScaledENU,n,ib),n.x=P.clamp(n.x,0,1),n.y=P.clamp(n.y,0,1),n.z=P.clamp(n.z,0,1);let f=this.maximumHeight-this.minimumHeight,d=P.clamp((o-this.minimumHeight)/f,0,1);U.fromElements(n.x,n.y,Nf);let p=Ln.compressTextureCoordinates(Nf);U.fromElements(n.z,d,Nf);let g=Ln.compressTextureCoordinates(Nf);U.fromElements(c,u,Nf);let m=Ln.compressTextureCoordinates(Nf);if(e[t++]=p,e[t++]=g,e[t++]=m,this.hasWebMercatorT){U.fromElements(s,0,Nf);let x=Ln.compressTextureCoordinates(Nf);e[t++]=x}}else h.subtract(n,this.center,ib),e[t++]=ib.x,e[t++]=ib.y,e[t++]=ib.z,e[t++]=o,e[t++]=c,e[t++]=u,this.hasWebMercatorT&&(e[t++]=s);return this.hasVertexNormals&&(e[t++]=Ln.octPackFloat(r)),this.hasGeodeticSurfaceNormals&&(e[t++]=a.x,e[t++]=a.y,e[t++]=a.z),t};var Hot=new h,v_e=new h;oc.prototype.addGeodeticSurfaceNormals=function(e,t,n){if(this.hasGeodeticSurfaceNormals)return;let i=this.stride,o=e.length/i;this.hasGeodeticSurfaceNormals=!0,this._calculateStrideAndOffsets();let r=this.stride;for(let s=0;s<o;s++){for(let f=0;f<i;f++){let d=s*i+f,p=s*r+f;t[p]=e[d]}let a=this.decodePosition(t,s,Hot),c=n.geodeticSurfaceNormal(a,v_e),u=s*r+this._offsetGeodeticSurfaceNormal;t[u]=c.x,t[u+1]=c.y,t[u+2]=c.z}};oc.prototype.removeGeodeticSurfaceNormals=function(e,t){if(!this.hasGeodeticSurfaceNormals)return;let n=this.stride,i=e.length/n;this.hasGeodeticSurfaceNormals=!1,this._calculateStrideAndOffsets();let o=this.stride;for(let r=0;r<i;r++)for(let s=0;s<o;s++){let a=r*n+s,c=r*o+s;t[c]=e[a]}};oc.prototype.decodePosition=function(e,t,n){if(l(n)||(n=new h),t*=this.stride,this.quantization===ua.BITS12){let i=Ln.decompressTextureCoordinates(e[t],Nf);n.x=i.x,n.y=i.y;let o=Ln.decompressTextureCoordinates(e[t+1],Nf);return n.z=o.x,F.multiplyByPoint(this.fromScaledENU,n,n)}return n.x=e[t],n.y=e[t+1],n.z=e[t+2],h.add(n,this.center,n)};oc.prototype.getExaggeratedPosition=function(e,t,n){n=this.decodePosition(e,t,n);let i=this.exaggeration,o=this.exaggerationRelativeHeight;if(i!==1&&this.hasGeodeticSurfaceNormals){let s=this.decodeGeodeticSurfaceNormal(e,t,v_e),a=this.decodeHeight(e,t),c=Ir.getHeight(a,i,o)-a;n.x+=s.x*c,n.y+=s.y*c,n.z+=s.z*c}return n};oc.prototype.decodeTextureCoordinates=function(e,t,n){return l(n)||(n=new U),t*=this.stride,this.quantization===ua.BITS12?Ln.decompressTextureCoordinates(e[t+2],n):U.fromElements(e[t+4],e[t+5],n)};oc.prototype.decodeHeight=function(e,t){return t*=this.stride,this.quantization===ua.BITS12?Ln.decompressTextureCoordinates(e[t+1],Nf).y*(this.maximumHeight-this.minimumHeight)+this.minimumHeight:e[t+3]};oc.prototype.decodeWebMercatorT=function(e,t){return t*=this.stride,this.quantization===ua.BITS12?Ln.decompressTextureCoordinates(e[t+3],Nf).x:e[t+6]};oc.prototype.getOctEncodedNormal=function(e,t,n){t=t*this.stride+this._offsetVertexNormal;let i=e[t]/256,o=Math.floor(i),r=(i-o)*256;return U.fromElements(o,r,n)};oc.prototype.decodeGeodeticSurfaceNormal=function(e,t,n){return t=t*this.stride+this._offsetGeodeticSurfaceNormal,n.x=e[t],n.y=e[t+1],n.z=e[t+2],n};oc.prototype._calculateStrideAndOffsets=function(){let e=0;switch(this.quantization){case ua.BITS12:e+=3;break;default:e+=6}this.hasWebMercatorT&&(e+=1),this.hasVertexNormals&&(this._offsetVertexNormal=e,e+=1),this.hasGeodeticSurfaceNormals&&(this._offsetGeodeticSurfaceNormal=e,e+=3),this.stride=e};var XV={position3DAndHeight:0,textureCoordAndEncodedNormals:1,geodeticSurfaceNormal:2},KV={compressed0:0,compressed1:1,geodeticSurfaceNormal:2};oc.prototype.getAttributes=function(e){let t=X.FLOAT,n=X.getSizeInBytes(t),i=this.stride*n,o=0,r=[];function s(a,c){r.push({index:a,vertexBuffer:e,componentDatatype:t,componentsPerAttribute:c,offsetInBytes:o,strideInBytes:i}),o+=c*n}if(this.quantization===ua.NONE){s(XV.position3DAndHeight,4);let a=2;a+=this.hasWebMercatorT?1:0,a+=this.hasVertexNormals?1:0,s(XV.textureCoordAndEncodedNormals,a),this.hasGeodeticSurfaceNormals&&s(XV.geodeticSurfaceNormal,3)}else{let a=this.hasWebMercatorT||this.hasVertexNormals,c=this.hasWebMercatorT&&this.hasVertexNormals;s(KV.compressed0,a?4:3),c&&s(KV.compressed1,1),this.hasGeodeticSurfaceNormals&&s(KV.geodeticSurfaceNormal,3)}return r};oc.prototype.getAttributeLocations=function(){return this.quantization===ua.NONE?XV:KV};oc.clone=function(e,t){if(l(e))return l(t)||(t=new oc),t.quantization=e.quantization,t.minimumHeight=e.minimumHeight,t.maximumHeight=e.maximumHeight,t.center=h.clone(e.center),t.toScaledENU=F.clone(e.toScaledENU),t.fromScaledENU=F.clone(e.fromScaledENU),t.matrix=F.clone(e.matrix),t.hasVertexNormals=e.hasVertexNormals,t.hasWebMercatorT=e.hasWebMercatorT,t.hasGeodeticSurfaceNormals=e.hasGeodeticSurfaceNormals,t.exaggeration=e.exaggeration,t.exaggerationRelativeHeight=e.exaggerationRelativeHeight,t._calculateStrideAndOffsets(),t};var jc=oc;var Tm={};Tm.DEFAULT_STRUCTURE=Object.freeze({heightScale:1,heightOffset:0,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1});var IY=new h,Got=new F,Wot=new h,jot=new h;Tm.computeVertices=function(e){let t=Math.cos,n=Math.sin,i=Math.sqrt,o=Math.atan,r=Math.exp,s=P.PI_OVER_TWO,a=P.toRadians,c=e.heightmap,u=e.width,f=e.height,d=e.skirtHeight,p=d>0,g=y(e.isGeographic,!0),m=y(e.ellipsoid,ee.default),x=1/m.maximumRadius,b=re.clone(e.nativeRectangle),T=re.clone(e.rectangle),A,C,S,v;l(T)?(A=T.west,C=T.south,S=T.east,v=T.north):g?(A=a(b.west),C=a(b.south),S=a(b.east),v=a(b.north)):(A=b.west*x,C=s-2*o(r(-b.south*x)),S=b.east*x,v=s-2*o(r(-b.north*x)));let D=e.relativeToCenter,O=l(D);D=O?D:h.ZERO;let R=y(e.includeWebMercatorT,!1),M=y(e.exaggeration,1),L=y(e.exaggerationRelativeHeight,0),E=M!==1,w=y(e.structure,Tm.DEFAULT_STRUCTURE),I=y(w.heightScale,Tm.DEFAULT_STRUCTURE.heightScale),N=y(w.heightOffset,Tm.DEFAULT_STRUCTURE.heightOffset),B=y(w.elementsPerHeight,Tm.DEFAULT_STRUCTURE.elementsPerHeight),H=y(w.stride,Tm.DEFAULT_STRUCTURE.stride),V=y(w.elementMultiplier,Tm.DEFAULT_STRUCTURE.elementMultiplier),G=y(w.isBigEndian,Tm.DEFAULT_STRUCTURE.isBigEndian),k=re.computeWidth(b),W=re.computeHeight(b),q=k/(u-1),J=W/(f-1);g||(k*=x,W*=x);let j=m.radiiSquared,Z=j.x,Q=j.y,de=j.z,ye=65536,ae=-65536,_e=Nt.eastNorthUpToFixedFrame(D,m),xe=F.inverseTransformation(_e,Got),Ie,Ce;R&&(Ie=Ii.geodeticLatitudeToMercatorAngle(C),Ce=1/(Ii.geodeticLatitudeToMercatorAngle(v)-Ie));let ke=Wot;ke.x=Number.POSITIVE_INFINITY,ke.y=Number.POSITIVE_INFINITY,ke.z=Number.POSITIVE_INFINITY;let He=jot;He.x=Number.NEGATIVE_INFINITY,He.y=Number.NEGATIVE_INFINITY,He.z=Number.NEGATIVE_INFINITY;let rt=Number.POSITIVE_INFINITY,Lt=u*f,Tt=d>0?u*2+f*2:0,we=Lt+Tt,Xe=new Array(we),Qe=new Array(we),We=new Array(we),Ut=R?new Array(we):[],Te=E?new Array(we):[],Ae=0,st=f,Fi=0,ut=u;p&&(--Ae,++st,--Fi,++ut);let _o=1e-5;for(let $e=Ae;$e<st;++$e){let ht=$e;ht<0&&(ht=0),ht>=f&&(ht=f-1);let Dt=b.north-J*ht;g?Dt=a(Dt):Dt=s-2*o(r(-Dt*x));let pn=(Dt-C)/(v-C);pn=P.clamp(pn,0,1);let fo=$e===Ae,er=$e===st-1;d>0&&(fo?Dt+=_o*W:er&&(Dt-=_o*W));let Oa=t(Dt),Ma=n(Dt),Jr=de*Ma,Yn;R&&(Yn=(Ii.geodeticLatitudeToMercatorAngle(Dt)-Ie)*Ce);for(let hs=Fi;hs<ut;++hs){let Ar=hs;Ar<0&&(Ar=0),Ar>=u&&(Ar=u-1);let el=ht*(u*H)+Ar*H,go;if(B===1)go=c[el];else{go=0;let yo;if(G)for(yo=0;yo<B;++yo)go=go*V+c[el+yo];else for(yo=B-1;yo>=0;--yo)go=go*V+c[el+yo]}go=go*I+N,ae=Math.max(ae,go),ye=Math.min(ye,go);let kr=b.west+q*Ar;g?kr=a(kr):kr=kr*x;let Um=(kr-A)/(S-A);Um=P.clamp(Um,0,1);let tl=ht*u+Ar;if(d>0){let yo=hs===Fi,ku=hs===ut-1,Gb=fo||er||yo||ku;if((fo||er)&&(yo||ku))continue;Gb&&(go-=d,yo?(tl=Lt+(f-ht-1),kr-=_o*k):er?tl=Lt+f+(u-Ar-1):ku?(tl=Lt+f+u+ht,kr+=_o*k):fo&&(tl=Lt+f+u+f+Ar))}let zm=Oa*t(kr),La=Oa*n(kr),Cr=Z*zm,pa=Q*La,S_=1/i(Cr*zm+pa*La+Jr*Ma),ai=Cr*S_,pc=pa*S_,Vl=Jr*S_,Bu=new h;Bu.x=ai+zm*go,Bu.y=pc+La*go,Bu.z=Vl+Ma*go,F.multiplyByPoint(xe,Bu,IY),h.minimumByComponent(IY,ke,ke),h.maximumByComponent(IY,He,He),rt=Math.min(rt,go),Xe[tl]=Bu,We[tl]=new U(Um,pn),Qe[tl]=go,R&&(Ut[tl]=Yn),E&&(Te[tl]=m.geodeticSurfaceNormal(Bu))}}let cr=se.fromPoints(Xe),mc;l(T)&&(mc=wn.fromRectangle(T,ye,ae,m));let Tr;O&&(Tr=new Qg(m).computeHorizonCullingPointPossiblyUnderEllipsoid(D,Xe,ye));let Qr=new N0(ke,He,D),Be=new jc(D,Qr,rt,ae,_e,!1,R,E,M,L),lt=new Float32Array(we*Be.stride),Ye=0;for(let $e=0;$e<we;++$e)Ye=Be.encode(lt,Ye,Xe[$e],We[$e],Qe[$e],void 0,Ut[$e],Te[$e]);return{vertices:lt,maximumHeight:ae,minimumHeight:ye,encoding:Be,boundingSphere3D:cr,orientedBoundingBox:mc,occludeePointInScaledSpace:Tr}};var hI=Tm;function My(){he.throwInstantiationError()}Object.defineProperties(My.prototype,{credits:{get:he.throwInstantiationError},waterMask:{get:he.throwInstantiationError}});My.prototype.interpolateHeight=he.throwInstantiationError;My.prototype.isChildAvailable=he.throwInstantiationError;My.prototype.createMesh=he.throwInstantiationError;My.prototype.upsample=he.throwInstantiationError;My.prototype.wasCreatedByUpsampling=he.throwInstantiationError;My.maximumAsynchronousTasks=5;var Am=My;function qot(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){this.center=e,this.vertices=t,this.stride=y(u,6),this.indices=n,this.indexCountWithoutSkirts=i,this.vertexCountWithoutSkirts=o,this.minimumHeight=r,this.maximumHeight=s,this.boundingSphere3D=a,this.occludeePointInScaledSpace=c,this.orientedBoundingBox=f,this.encoding=d,this.westIndicesSouthToNorth=p,this.southIndicesEastToWest=g,this.eastIndicesNorthToSouth=m,this.northIndicesWestToEast=x}var Yd=qot;function qc(){he.throwInstantiationError()}Object.defineProperties(qc.prototype,{errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},hasWaterMask:{get:he.throwInstantiationError},hasVertexNormals:{get:he.throwInstantiationError},availability:{get:he.throwInstantiationError}});var w_e=[];qc.getRegularGridIndices=function(e,t){let n=w_e[e];l(n)||(w_e[e]=n=[]);let i=n[t];return l(i)||(e*t<P.SIXTY_FOUR_KILOBYTES?i=n[t]=new Uint16Array((e-1)*(t-1)*6):i=n[t]=new Uint32Array((e-1)*(t-1)*6),R_e(e,t,i,0)),i};var D_e=[];qc.getRegularGridIndicesAndEdgeIndices=function(e,t){let n=D_e[e];l(n)||(D_e[e]=n=[]);let i=n[t];if(!l(i)){let o=qc.getRegularGridIndices(e,t),r=P_e(e,t),s=r.westIndicesSouthToNorth,a=r.southIndicesEastToWest,c=r.eastIndicesNorthToSouth,u=r.northIndicesWestToEast;i=n[t]={indices:o,westIndicesSouthToNorth:s,southIndicesEastToWest:a,eastIndicesNorthToSouth:c,northIndicesWestToEast:u}}return i};var I_e=[];qc.getRegularGridAndSkirtIndicesAndEdgeIndices=function(e,t){let n=I_e[e];l(n)||(I_e[e]=n=[]);let i=n[t];if(!l(i)){let o=e*t,r=(e-1)*(t-1)*6,s=e*2+t*2,a=Math.max(0,s-4)*6,c=o+s,u=r+a,f=P_e(e,t),d=f.westIndicesSouthToNorth,p=f.southIndicesEastToWest,g=f.eastIndicesNorthToSouth,m=f.northIndicesWestToEast,x=Ne.createTypedArray(c,u);R_e(e,t,x,0),qc.addSkirtIndices(d,p,g,m,o,x,r),i=n[t]={indices:x,westIndicesSouthToNorth:d,southIndicesEastToWest:p,eastIndicesNorthToSouth:g,northIndicesWestToEast:m,indexCountWithoutSkirts:r}}return i};qc.addSkirtIndices=function(e,t,n,i,o,r,s){let a=o;s=ZV(e,a,r,s),a+=e.length,s=ZV(t,a,r,s),a+=t.length,s=ZV(n,a,r,s),a+=n.length,ZV(i,a,r,s)};function P_e(e,t){let n=new Array(t),i=new Array(e),o=new Array(t),r=new Array(e),s;for(s=0;s<e;++s)r[s]=s,i[s]=e*t-1-s;for(s=0;s<t;++s)o[s]=(s+1)*e-1,n[s]=(t-s-1)*e;return{westIndicesSouthToNorth:n,southIndicesEastToWest:i,eastIndicesNorthToSouth:o,northIndicesWestToEast:r}}function R_e(e,t,n,i){let o=0;for(let r=0;r<t-1;++r){for(let s=0;s<e-1;++s){let a=o,c=a+e,u=c+1,f=a+1;n[i++]=a,n[i++]=c,n[i++]=f,n[i++]=f,n[i++]=c,n[i++]=u,++o}++o}}function ZV(e,t,n,i){let o=e[0],r=e.length;for(let s=1;s<r;++s){let a=e[s];n[i++]=o,n[i++]=a,n[i++]=t,n[i++]=t,n[i++]=a,n[i++]=t+1,o=a,++t}return i}qc.heightmapTerrainQuality=.25;qc.getEstimatedLevelZeroGeometricErrorForAHeightmap=function(e,t,n){return e.maximumRadius*2*Math.PI*qc.heightmapTerrainQuality/(t*n)};qc.prototype.requestTileGeometry=he.throwInstantiationError;qc.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;qc.prototype.getTileDataAvailable=he.throwInstantiationError;qc.prototype.loadTileDataAvailability=he.throwInstantiationError;var ls=qc;function a_(e){this._buffer=e.buffer,this._width=e.width,this._height=e.height,this._childTileMask=y(e.childTileMask,15),this._encoding=y(e.encoding,qd.NONE);let t=hI.DEFAULT_STRUCTURE,n=e.structure;l(n)?n!==t&&(n.heightScale=y(n.heightScale,t.heightScale),n.heightOffset=y(n.heightOffset,t.heightOffset),n.elementsPerHeight=y(n.elementsPerHeight,t.elementsPerHeight),n.stride=y(n.stride,t.stride),n.elementMultiplier=y(n.elementMultiplier,t.elementMultiplier),n.isBigEndian=y(n.isBigEndian,t.isBigEndian)):n=t,this._structure=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._skirtHeight=void 0,this._bufferType=this._encoding===qd.LERC?Float32Array:this._buffer.constructor,this._mesh=void 0}Object.defineProperties(a_.prototype,{credits:{get:function(){}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}}});var O_e="createVerticesFromHeightmap",Yot=new _i(O_e),Xot=new _i(O_e,Am.maximumAsynchronousTasks);a_.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToNativeRectangle(n,i,o),f=t.tileXYToRectangle(n,i,o),d=c.cartographicToCartesian(re.center(f)),p=this._structure,m=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(c,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(m*4,1e3);let b=(a?Xot:Yot).scheduleTask({heightmap:this._buffer,structure:p,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:u,rectangle:f,relativeToCenter:d,ellipsoid:c,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof wi,exaggeration:r,exaggerationRelativeHeight:s,encoding:this._encoding});if(!l(b))return;let T=this;return Promise.resolve(b).then(function(A){let C;T._skirtHeight>0?C=ls.getRegularGridAndSkirtIndicesAndEdgeIndices(A.gridWidth,A.gridHeight):C=ls.getRegularGridIndicesAndEdgeIndices(A.gridWidth,A.gridHeight);let S=A.gridWidth*A.gridHeight;return T._mesh=new Yd(d,new Float32Array(A.vertices),C.indices,C.indexCountWithoutSkirts,S,A.minimumHeight,A.maximumHeight,se.clone(A.boundingSphere3D),h.clone(A.occludeePointInScaledSpace),A.numberOfAttributes,wn.clone(A.orientedBoundingBox),jc.clone(A.encoding),C.westIndicesSouthToNorth,C.southIndicesEastToWest,C.eastIndicesNorthToSouth,C.northIndicesWestToEast),T._buffer=void 0,T._mesh})};a_.prototype._createMeshSync=function(e){let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=t.ellipsoid,c=t.tileXYToNativeRectangle(n,i,o),u=t.tileXYToRectangle(n,i,o),f=a.cartographicToCartesian(re.center(u)),d=this._structure,g=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(a,this._width,t.getNumberOfXTilesAtLevel(0))/(1<<o);this._skirtHeight=Math.min(g*4,1e3);let m=hI.computeVertices({heightmap:this._buffer,structure:d,includeWebMercatorT:!0,width:this._width,height:this._height,nativeRectangle:c,rectangle:u,relativeToCenter:f,ellipsoid:a,skirtHeight:this._skirtHeight,isGeographic:t.projection instanceof wi,exaggeration:r,exaggerationRelativeHeight:s});this._buffer=void 0;let x;this._skirtHeight>0?x=ls.getRegularGridAndSkirtIndicesAndEdgeIndices(this._width,this._height):x=ls.getRegularGridIndicesAndEdgeIndices(this._width,this._height);let b=m.gridWidth*m.gridHeight;return this._mesh=new Yd(f,m.vertices,x.indices,x.indexCountWithoutSkirts,b,m.minimumHeight,m.maximumHeight,m.boundingSphere3D,m.occludeePointInScaledSpace,m.encoding.stride,m.orientedBoundingBox,m.encoding,x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),this._mesh};a_.prototype.interpolateHeight=function(e,t,n){let i=this._width,o=this._height,r=this._structure,s=r.stride,a=r.elementsPerHeight,c=r.elementMultiplier,u=r.isBigEndian,f=r.heightOffset,d=r.heightScale,p=l(this._mesh),g=this._encoding===qd.LERC;if(!p&&g)return;let x;if(p){let b=this._mesh.vertices,T=this._mesh.encoding;x=M_e(b,T,f,d,e,i,o,t,n)}else x=Kot(this._buffer,a,c,s,u,e,i,o,t,n),x=x*d+f;return x};a_.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(a))return;let c=this._width,u=this._height,f=this._structure,d=f.stride,p=new this._bufferType(c*u*d),g=a.vertices,m=a.encoding,x=e.tileXYToRectangle(t,n,i),b=e.tileXYToRectangle(o,r,s),T=f.heightOffset,A=f.heightScale,C=f.elementsPerHeight,S=f.elementMultiplier,v=f.isBigEndian,D=Math.pow(S,C-1);for(let O=0;O<u;++O){let R=P.lerp(b.north,b.south,O/(u-1));for(let M=0;M<c;++M){let L=P.lerp(b.west,b.east,M/(c-1)),_=M_e(g,m,T,A,x,c,u,L,R);_=_<f.lowestEncodedHeight?f.lowestEncodedHeight:_,_=_>f.highestEncodedHeight?f.highestEncodedHeight:_,Zot(p,C,S,D,d,v,O*c+M,_)}}return Promise.resolve(new a_({buffer:p,width:c,height:u,childTileMask:0,structure:this._structure,createdByUpsampling:!0}))};a_.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};a_.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};function Kot(e,t,n,i,o,r,s,a,c,u){let f=(c-r.west)*(s-1)/(r.east-r.west),d=(u-r.south)*(a-1)/(r.north-r.south),p=f|0,g=p+1;g>=s&&(g=s-1,p=s-2);let m=d|0,x=m+1;x>=a&&(x=a-1,m=a-2);let b=f-p,T=d-m;m=a-1-m,x=a-1-x;let A=$V(e,t,n,i,o,m*s+p),C=$V(e,t,n,i,o,m*s+g),S=$V(e,t,n,i,o,x*s+p),v=$V(e,t,n,i,o,x*s+g);return L_e(b,T,A,C,S,v)}function M_e(e,t,n,i,o,r,s,a,c){let u=(a-o.west)*(r-1)/(o.east-o.west),f=(c-o.south)*(s-1)/(o.north-o.south),d=u|0,p=d+1;p>=r&&(p=r-1,d=r-2);let g=f|0,m=g+1;m>=s&&(m=s-1,g=s-2);let x=u-d,b=f-g;g=s-1-g,m=s-1-m;let T=(t.decodeHeight(e,g*r+d)-n)/i,A=(t.decodeHeight(e,g*r+p)-n)/i,C=(t.decodeHeight(e,m*r+d)-n)/i,S=(t.decodeHeight(e,m*r+p)-n)/i;return L_e(x,b,T,A,C,S)}function L_e(e,t,n,i,o,r){return t<e?n+e*(i-n)+t*(r-i):n+e*(r-o)+t*(o-n)}function $V(e,t,n,i,o,r){r*=i;let s=0,a;if(o)for(a=0;a<t;++a)s=s*n+e[r+a];else for(a=t-1;a>=0;--a)s=s*n+e[r+a];return s}function Zot(e,t,n,i,o,r,s,a){s*=o;let c;if(r)for(c=0;c<t-1;++c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;else for(c=t-1;c>0;--c)e[s+c]=a/i|0,a-=e[s+c]*i,i/=n;e[s+c]=a}var rc=a_;function TE(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new qi({ellipsoid:y(e.ellipsoid,ee.default)})),this._levelZeroMaximumGeometricError=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,64,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me}Object.defineProperties(TE.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});TE.prototype.requestTileGeometry=function(e,t,n,i){return Promise.resolve(new rc({buffer:new Uint8Array(16*16),width:16,height:16}))};TE.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};TE.prototype.getTileDataAvailable=function(e,t,n){};TE.prototype.loadTileDataAvailability=function(e,t,n){};var c_=TE;var QV=`uniform vec4 u_initialColor; + +#if TEXTURE_UNITS > 0 +uniform sampler2D u_dayTextures[TEXTURE_UNITS]; +uniform vec4 u_dayTextureTranslationAndScale[TEXTURE_UNITS]; +uniform bool u_dayTextureUseWebMercatorT[TEXTURE_UNITS]; + +#ifdef APPLY_ALPHA +uniform float u_dayTextureAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_DAY_NIGHT_ALPHA +uniform float u_dayTextureNightAlpha[TEXTURE_UNITS]; +uniform float u_dayTextureDayAlpha[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SPLIT +uniform float u_dayTextureSplit[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_BRIGHTNESS +uniform float u_dayTextureBrightness[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_CONTRAST +uniform float u_dayTextureContrast[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_HUE +uniform float u_dayTextureHue[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_SATURATION +uniform float u_dayTextureSaturation[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_GAMMA +uniform float u_dayTextureOneOverGamma[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_IMAGERY_CUTOUT +uniform vec4 u_dayTextureCutoutRectangles[TEXTURE_UNITS]; +#endif + +#ifdef APPLY_COLOR_TO_ALPHA +uniform vec4 u_colorsToAlpha[TEXTURE_UNITS]; +#endif + +uniform vec4 u_dayTextureTexCoordsRectangle[TEXTURE_UNITS]; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) +uniform sampler2D u_waterMask; +uniform vec4 u_waterMaskTranslationAndScale; +uniform float u_zoomedOutOceanSpecularIntensity; +#endif + +#ifdef SHOW_OCEAN_WAVES +uniform sampler2D u_oceanNormalMap; +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) +uniform vec2 u_lightingFadeDistance; +#endif + +#ifdef TILE_LIMIT_RECTANGLE +uniform vec4 u_cartographicLimitRectangle; +#endif + +#ifdef GROUND_ATMOSPHERE +uniform vec2 u_nightFadeDistance; +#endif + +#ifdef ENABLE_CLIPPING_PLANES +uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingDistance; +in vec2 v_clippingPosition; +flat in int v_regionIndex; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) && defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) +uniform float u_minimumBrightness; +#endif + +#ifdef COLOR_CORRECT +uniform vec3 u_hsbShift; // Hue, saturation, brightness +#endif + +#ifdef HIGHLIGHT_FILL_TILE +uniform vec4 u_fillHighlightColor; +#endif + +#ifdef TRANSLUCENT +uniform vec4 u_frontFaceAlphaByDistance; +uniform vec4 u_backFaceAlphaByDistance; +uniform vec4 u_translucencyRectangle; +#endif + +#ifdef UNDERGROUND_COLOR +uniform vec4 u_undergroundColor; +uniform vec4 u_undergroundColorAlphaByDistance; +#endif + +#ifdef ENABLE_VERTEX_LIGHTING +uniform float u_lambertDiffuseMultiplier; +uniform float u_vertexShadowDarkness; +#endif + +in vec3 v_positionMC; +in vec3 v_positionEC; +in vec3 v_textureCoordinates; +in vec3 v_normalMC; +in vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +in float v_height; +in float v_slope; +in float v_aspect; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +in float v_distance; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) +in vec3 v_atmosphereRayleighColor; +in vec3 v_atmosphereMieColor; +in float v_atmosphereOpacity; +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} +#endif + +#if defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) || defined(APPLY_MATERIAL) +vec4 alphaBlend(vec4 sourceColor, vec4 destinationColor) +{ + return sourceColor * vec4(sourceColor.aaa, 1.0) + destinationColor * (1.0 - sourceColor.a); +} +#endif + +#ifdef TRANSLUCENT +bool inTranslucencyRectangle() +{ + return + v_textureCoordinates.x > u_translucencyRectangle.x && + v_textureCoordinates.x < u_translucencyRectangle.z && + v_textureCoordinates.y > u_translucencyRectangle.y && + v_textureCoordinates.y < u_translucencyRectangle.w; +} +#endif + +vec4 sampleAndBlend( + vec4 previousColor, + sampler2D textureToSample, + vec2 tileTextureCoordinates, + vec4 textureCoordinateRectangle, + vec4 textureCoordinateTranslationAndScale, + float textureAlpha, + float textureNightAlpha, + float textureDayAlpha, + float textureBrightness, + float textureContrast, + float textureHue, + float textureSaturation, + float textureOneOverGamma, + float split, + vec4 colorToAlpha, + float nightBlend) +{ + // This crazy step stuff sets the alpha to 0.0 if this following condition is true: + // tileTextureCoordinates.s < textureCoordinateRectangle.s || + // tileTextureCoordinates.s > textureCoordinateRectangle.p || + // tileTextureCoordinates.t < textureCoordinateRectangle.t || + // tileTextureCoordinates.t > textureCoordinateRectangle.q + // In other words, the alpha is zero if the fragment is outside the rectangle + // covered by this texture. Would an actual 'if' yield better performance? + vec2 alphaMultiplier = step(textureCoordinateRectangle.st, tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + + alphaMultiplier = step(vec2(0.0), textureCoordinateRectangle.pq - tileTextureCoordinates); + textureAlpha = textureAlpha * alphaMultiplier.x * alphaMultiplier.y; + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + textureAlpha *= mix(textureDayAlpha, textureNightAlpha, nightBlend); +#endif + + vec2 translation = textureCoordinateTranslationAndScale.xy; + vec2 scale = textureCoordinateTranslationAndScale.zw; + vec2 textureCoordinates = tileTextureCoordinates * scale + translation; + vec4 value = texture(textureToSample, textureCoordinates); + vec3 color = value.rgb; + float alpha = value.a; + +#ifdef APPLY_COLOR_TO_ALPHA + vec3 colorDiff = abs(color.rgb - colorToAlpha.rgb); + colorDiff.r = czm_maximumComponent(colorDiff); + alpha = czm_branchFreeTernary(colorDiff.r < colorToAlpha.a, 0.0, alpha); +#endif + +#if !defined(APPLY_GAMMA) + vec4 tempColor = czm_gammaCorrect(vec4(color, alpha)); + color = tempColor.rgb; + alpha = tempColor.a; +#else + color = pow(color, vec3(textureOneOverGamma)); +#endif + +#ifdef APPLY_SPLIT + float splitPosition = czm_splitPosition; + // Split to the left + if (split < 0.0 && gl_FragCoord.x > splitPosition) { + alpha = 0.0; + } + // Split to the right + else if (split > 0.0 && gl_FragCoord.x < splitPosition) { + alpha = 0.0; + } +#endif + +#ifdef APPLY_BRIGHTNESS + color = mix(vec3(0.0), color, textureBrightness); +#endif + +#ifdef APPLY_CONTRAST + color = mix(vec3(0.5), color, textureContrast); +#endif + +#ifdef APPLY_HUE + color = czm_hue(color, textureHue); +#endif + +#ifdef APPLY_SATURATION + color = czm_saturation(color, textureSaturation); +#endif + + float sourceAlpha = alpha * textureAlpha; + float outAlpha = mix(previousColor.a, 1.0, sourceAlpha); + outAlpha += sign(outAlpha) - 1.0; + + vec3 outColor = mix(previousColor.rgb * previousColor.a, color, sourceAlpha) / outAlpha; + + // When rendering imagery for a tile in multiple passes, + // some GPU/WebGL implementation combinations will not blend fragments in + // additional passes correctly if their computation includes an unmasked + // divide-by-zero operation, + // even if it's not in the output or if the output has alpha zero. + // + // For example, without sanitization for outAlpha, + // this renders without artifacts: + // if (outAlpha == 0.0) { outColor = vec3(0.0); } + // + // but using czm_branchFreeTernary will cause portions of the tile that are + // alpha-zero in the additional pass to render as black instead of blending + // with the previous pass: + // outColor = czm_branchFreeTernary(outAlpha == 0.0, vec3(0.0), outColor); + // + // So instead, sanitize against divide-by-zero, + // store this state on the sign of outAlpha, and correct on return. + + return vec4(outColor, max(outAlpha, 0.0)); +} + +vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend); +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float specularMapValue, float fade); + +const float fExposure = 2.0; + +vec3 computeEllipsoidPosition() +{ + float mpp = czm_metersPerPixel(vec4(0.0, 0.0, -czm_currentFrustum.x, 1.0), 1.0); + vec2 xy = gl_FragCoord.xy / czm_viewport.zw * 2.0 - vec2(1.0); + xy *= czm_viewport.zw * mpp * 0.5; + + vec3 direction = normalize(vec3(xy, -czm_currentFrustum.x)); + czm_ray ray = czm_ray(vec3(0.0), direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + + vec3 ellipsoidPosition = czm_pointAlongRay(ray, intersection.start); + return (czm_inverseView * vec4(ellipsoidPosition, 1.0)).xyz; +} + +void main() +{ +#ifdef TILE_LIMIT_RECTANGLE + if (v_textureCoordinates.x < u_cartographicLimitRectangle.x || u_cartographicLimitRectangle.z < v_textureCoordinates.x || + v_textureCoordinates.y < u_cartographicLimitRectangle.y || u_cartographicLimitRectangle.w < v_textureCoordinates.y) + { + discard; + } +#endif + +#ifdef ENABLE_CLIPPING_PLANES + float clipDistance = clip(gl_FragCoord, u_clippingPlanes, u_clippingPlanesMatrix); +#endif + +#if defined(SHOW_REFLECTIVE_OCEAN) || defined(ENABLE_DAYNIGHT_SHADING) || defined(HDR) + vec3 normalMC = czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0)); // normalized surface normal in model coordinates + vec3 normalEC = czm_normal3D * normalMC; // normalized surface normal in eye coordinates +#endif + +#if defined(APPLY_DAY_NIGHT_ALPHA) && defined(ENABLE_DAYNIGHT_SHADING) + float nightBlend = 1.0 - clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0, 0.0, 1.0); +#else + float nightBlend = 0.0; +#endif + + // The clamp below works around an apparent bug in Chrome Canary v23.0.1241.0 + // where the fragment shader sees textures coordinates < 0.0 and > 1.0 for the + // fragments on the edges of tiles even though the vertex shader is outputting + // coordinates strictly in the 0-1 range. + vec4 color = computeDayColor(u_initialColor, clamp(v_textureCoordinates, 0.0, 1.0), nightBlend); + +#ifdef SHOW_TILE_BOUNDARIES + if (v_textureCoordinates.x < (1.0/256.0) || v_textureCoordinates.x > (255.0/256.0) || + v_textureCoordinates.y < (1.0/256.0) || v_textureCoordinates.y > (255.0/256.0)) + { + color = vec4(1.0, 0.0, 0.0, 1.0); + } +#endif + +#if defined(ENABLE_DAYNIGHT_SHADING) || defined(GROUND_ATMOSPHERE) + float cameraDist; + if (czm_sceneMode == czm_sceneMode2D) + { + cameraDist = max(czm_frustumPlanes.x - czm_frustumPlanes.y, czm_frustumPlanes.w - czm_frustumPlanes.z) * 0.5; + } + else if (czm_sceneMode == czm_sceneModeColumbusView) + { + cameraDist = -czm_view[3].z; + } + else + { + cameraDist = length(czm_view[3]); + } + float fadeOutDist = u_lightingFadeDistance.x; + float fadeInDist = u_lightingFadeDistance.y; + if (czm_sceneMode != czm_sceneMode3D) { + vec3 radii = czm_ellipsoidRadii; + float maxRadii = max(radii.x, max(radii.y, radii.z)); + fadeOutDist -= maxRadii; + fadeInDist -= maxRadii; + } + float fade = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.0, 1.0); +#else + float fade = 0.0; +#endif + +#if defined(HAS_WATER_MASK) && (defined(SHOW_REFLECTIVE_OCEAN) || defined(APPLY_MATERIAL)) + vec2 waterMaskTranslation = u_waterMaskTranslationAndScale.xy; + vec2 waterMaskScale = u_waterMaskTranslationAndScale.zw; + vec2 waterMaskTextureCoordinates = v_textureCoordinates.xy * waterMaskScale + waterMaskTranslation; + waterMaskTextureCoordinates.y = 1.0 - waterMaskTextureCoordinates.y; + + float mask = texture(u_waterMask, waterMaskTextureCoordinates).r; + + #ifdef SHOW_REFLECTIVE_OCEAN + if (mask > 0.0) + { + mat3 enuToEye = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalEC); + + vec2 ellipsoidTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC); + vec2 ellipsoidFlippedTextureCoordinates = czm_ellipsoidTextureCoordinates(normalMC.zyx); + + vec2 textureCoordinates = mix(ellipsoidTextureCoordinates, ellipsoidFlippedTextureCoordinates, czm_morphTime * smoothstep(0.9, 0.95, normalMC.z)); + + color = computeWaterColor(v_positionEC, textureCoordinates, enuToEye, color, mask, fade); + } + #endif +#endif + +#ifdef APPLY_MATERIAL + czm_materialInput materialInput; + materialInput.st = v_textureCoordinates.st; + materialInput.normalEC = normalize(v_normalEC); + materialInput.positionToEyeEC = -v_positionEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, normalize(v_normalEC)); + materialInput.slope = v_slope; + materialInput.height = v_height; + materialInput.aspect = v_aspect; + #ifdef HAS_WATER_MASK + materialInput.waterMask = mask; + #endif + + czm_material material = czm_getMaterial(materialInput); + vec4 materialColor = vec4(material.diffuse, material.alpha); + color = alphaBlend(materialColor, color); +#endif + +#ifdef ENABLE_VERTEX_LIGHTING + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalize(v_normalEC)) * u_lambertDiffuseMultiplier + u_vertexShadowDarkness, 0.0, 1.0); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#elif defined(ENABLE_DAYNIGHT_SHADING) + float diffuseIntensity = clamp(czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * 5.0 + 0.3, 0.0, 1.0); + diffuseIntensity = mix(1.0, diffuseIntensity, fade); + vec4 finalColor = vec4(color.rgb * czm_lightColor * diffuseIntensity, color.a); +#else + vec4 finalColor = color; +#endif + +#ifdef ENABLE_CLIPPING_PLANES + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = u_clippingPlanesEdgeStyle.rgb; + float clippingPlanesEdgeWidth = u_clippingPlanesEdgeStyle.a; + + if (clipDistance < clippingPlanesEdgeWidth) + { + finalColor = clippingPlanesEdgeColor; + } +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 clippingPosition = v_clippingPosition; + int regionIndex = v_regionIndex; + clipPolygons(u_clippingDistance, CLIPPING_POLYGON_REGIONS_LENGTH, clippingPosition, regionIndex); +#endif + +#ifdef HIGHLIGHT_FILL_TILE + finalColor = vec4(mix(finalColor.rgb, u_fillHighlightColor.rgb, u_fillHighlightColor.a), finalColor.a); +#endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + +#if defined(GROUND_ATMOSPHERE) || defined(FOG) + if (!czm_backFacing()) + { + bool dynamicLighting = false; + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + + vec3 rayleighColor; + vec3 mieColor; + float opacity; + + vec3 positionWC; + vec3 lightDirection; + + // When the camera is far away (camera distance > nightFadeOutDistance), the scattering is computed in the fragment shader. + // Otherwise, the scattering is computed in the vertex shader. + #ifdef PER_FRAGMENT_GROUND_ATMOSPHERE + positionWC = computeEllipsoidPosition(); + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + computeAtmosphereScattering( + positionWC, + lightDirection, + rayleighColor, + mieColor, + opacity + ); + #else + positionWC = v_positionMC; + lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(positionWC)); + rayleighColor = v_atmosphereRayleighColor; + mieColor = v_atmosphereMieColor; + opacity = v_atmosphereOpacity; + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + rayleighColor = czm_applyHSBShift(rayleighColor, u_hsbShift, ignoreBlackPixels); + mieColor = czm_applyHSBShift(mieColor, u_hsbShift, ignoreBlackPixels); + #endif + + vec4 groundAtmosphereColor = computeAtmosphereColor(positionWC, lightDirection, rayleighColor, mieColor, opacity); + + // Fog is applied to tiles selected for fog, close to the Earth. + #ifdef FOG + vec3 fogColor = groundAtmosphereColor.rgb; + + // If there is lighting, apply that to the fog. + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float darken = clamp(dot(normalize(czm_viewerPositionWC), atmosphereLightDirection), u_minimumBrightness, 1.0); + fogColor *= darken; + #endif + + #ifndef HDR + fogColor.rgb = czm_pbrNeutralTonemapping(fogColor.rgb); + fogColor.rgb = czm_inverseGamma(fogColor.rgb); + #endif + + finalColor = vec4(czm_fog(v_distance, finalColor.rgb, fogColor.rgb, czm_fogVisualDensityScalar), finalColor.a); + + #else + // Apply ground atmosphere. This happens when the camera is far away from the earth. + + // The transmittance is based on optical depth i.e. the length of segment of the ray inside the atmosphere. + // This value is larger near the "circumference", as it is further away from the camera. We use it to + // brighten up that area of the ground atmosphere. + const float transmittanceModifier = 0.5; + float transmittance = transmittanceModifier + clamp(1.0 - groundAtmosphereColor.a, 0.0, 1.0); + + vec3 finalAtmosphereColor = finalColor.rgb + groundAtmosphereColor.rgb * transmittance; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_VERTEX_LIGHTING) || defined(ENABLE_DAYNIGHT_SHADING)) + float fadeInDist = u_nightFadeDistance.x; + float fadeOutDist = u_nightFadeDistance.y; + + float sunlitAtmosphereIntensity = clamp((cameraDist - fadeOutDist) / (fadeInDist - fadeOutDist), 0.05, 1.0); + float darken = clamp(dot(normalize(positionWC), atmosphereLightDirection), 0.0, 1.0); + vec3 darkenendGroundAtmosphereColor = mix(groundAtmosphereColor.rgb, finalAtmosphereColor.rgb, darken); + + finalAtmosphereColor = mix(darkenendGroundAtmosphereColor, finalAtmosphereColor, sunlitAtmosphereIntensity); + #endif + + #ifndef HDR + finalAtmosphereColor.rgb = vec3(1.0) - exp(-fExposure * finalAtmosphereColor.rgb); + #else + finalAtmosphereColor.rgb = czm_saturation(finalAtmosphereColor.rgb, 1.6); + #endif + + finalColor.rgb = mix(finalColor.rgb, finalAtmosphereColor.rgb, fade); + #endif + } +#endif + +#ifdef UNDERGROUND_COLOR + if (czm_backFacing()) + { + float distanceFromEllipsoid = max(czm_eyeHeight, 0.0); + float distance = max(v_distance - distanceFromEllipsoid, 0.0); + float blendAmount = interpolateByDistance(u_undergroundColorAlphaByDistance, distance); + vec4 undergroundColor = vec4(u_undergroundColor.rgb, u_undergroundColor.a * blendAmount); + finalColor = alphaBlend(undergroundColor, finalColor); + } +#endif + +#ifdef TRANSLUCENT + if (inTranslucencyRectangle()) + { + vec4 alphaByDistance = gl_FrontFacing ? u_frontFaceAlphaByDistance : u_backFaceAlphaByDistance; + finalColor.a *= interpolateByDistance(alphaByDistance, v_distance); + } +#endif + + out_FragColor = finalColor; +} + + +#ifdef SHOW_REFLECTIVE_OCEAN + +float waveFade(float edge0, float edge1, float x) +{ + float y = clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); + return pow(1.0 - y, 5.0); +} + +float linearFade(float edge0, float edge1, float x) +{ + return clamp((x - edge0) / (edge1 - edge0), 0.0, 1.0); +} + +// Based on water rendering by Jonas Wagner: +// http://29a.ch/2012/7/19/webgl-terrain-rendering-water-fog + +// low altitude wave settings +const float oceanFrequencyLowAltitude = 825000.0; +const float oceanAnimationSpeedLowAltitude = 0.004; +const float oceanOneOverAmplitudeLowAltitude = 1.0 / 2.0; +const float oceanSpecularIntensity = 0.5; + +// high altitude wave settings +const float oceanFrequencyHighAltitude = 125000.0; +const float oceanAnimationSpeedHighAltitude = 0.008; +const float oceanOneOverAmplitudeHighAltitude = 1.0 / 2.0; + +vec4 computeWaterColor(vec3 positionEyeCoordinates, vec2 textureCoordinates, mat3 enuToEye, vec4 imageryColor, float maskValue, float fade) +{ + vec3 positionToEyeEC = -positionEyeCoordinates; + float positionToEyeECLength = length(positionToEyeEC); + + // The double normalize below works around a bug in Firefox on Android devices. + vec3 normalizedPositionToEyeEC = normalize(normalize(positionToEyeEC)); + + // Fade out the waves as the camera moves far from the surface. + float waveIntensity = waveFade(70000.0, 1000000.0, positionToEyeECLength); + +#ifdef SHOW_OCEAN_WAVES + // high altitude waves + float time = czm_frameNumber * oceanAnimationSpeedHighAltitude; + vec4 noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyHighAltitude, time, 0.0); + vec3 normalTangentSpaceHighAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeHighAltitude); + + // low altitude waves + time = czm_frameNumber * oceanAnimationSpeedLowAltitude; + noise = czm_getWaterNoise(u_oceanNormalMap, textureCoordinates * oceanFrequencyLowAltitude, time, 0.0); + vec3 normalTangentSpaceLowAltitude = vec3(noise.xy, noise.z * oceanOneOverAmplitudeLowAltitude); + + // blend the 2 wave layers based on distance to surface + float highAltitudeFade = linearFade(0.0, 60000.0, positionToEyeECLength); + float lowAltitudeFade = 1.0 - linearFade(20000.0, 60000.0, positionToEyeECLength); + vec3 normalTangentSpace = + (highAltitudeFade * normalTangentSpaceHighAltitude) + + (lowAltitudeFade * normalTangentSpaceLowAltitude); + normalTangentSpace = normalize(normalTangentSpace); + + // fade out the normal perturbation as we move farther from the water surface + normalTangentSpace.xy *= waveIntensity; + normalTangentSpace = normalize(normalTangentSpace); +#else + vec3 normalTangentSpace = vec3(0.0, 0.0, 1.0); +#endif + + vec3 normalEC = enuToEye * normalTangentSpace; + + const vec3 waveHighlightColor = vec3(0.3, 0.45, 0.6); + + // Use diffuse light to highlight the waves + float diffuseIntensity = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC) * maskValue; + vec3 diffuseHighlight = waveHighlightColor * diffuseIntensity * (1.0 - fade); + +#ifdef SHOW_OCEAN_WAVES + // Where diffuse light is low or non-existent, use wave highlights based solely on + // the wave bumpiness and no particular light direction. + float tsPerturbationRatio = normalTangentSpace.z; + vec3 nonDiffuseHighlight = mix(waveHighlightColor * 5.0 * (1.0 - tsPerturbationRatio), vec3(0.0), diffuseIntensity); +#else + vec3 nonDiffuseHighlight = vec3(0.0); +#endif + + // Add specular highlights in 3D, and in all modes when zoomed in. + float specularIntensity = czm_getSpecular(czm_lightDirectionEC, normalizedPositionToEyeEC, normalEC, 10.0); + float surfaceReflectance = mix(0.0, mix(u_zoomedOutOceanSpecularIntensity, oceanSpecularIntensity, waveIntensity), maskValue); + float specular = specularIntensity * surfaceReflectance; + +#ifdef HDR + specular *= 1.4; + + float e = 0.2; + float d = 3.3; + float c = 1.7; + + vec3 color = imageryColor.rgb + (c * (vec3(e) + imageryColor.rgb * d) * (diffuseHighlight + nonDiffuseHighlight + specular)); +#else + vec3 color = imageryColor.rgb + diffuseHighlight + nonDiffuseHighlight + specular; +#endif + + return vec4(color, imageryColor.a); +} + +#endif // #ifdef SHOW_REFLECTIVE_OCEAN +`;var JV=`#ifdef QUANTIZATION_BITS12 +in vec4 compressed0; +in float compressed1; +#else +in vec4 position3DAndHeight; +in vec4 textureCoordAndEncodedNormals; +#endif + +#ifdef GEODETIC_SURFACE_NORMALS +in vec3 geodeticSurfaceNormal; +#endif + +#ifdef EXAGGERATION +uniform vec2 u_verticalExaggerationAndRelativeHeight; +#endif + +uniform vec3 u_center3D; +uniform mat4 u_modifiedModelView; +uniform mat4 u_modifiedModelViewProjection; +uniform vec4 u_tileRectangle; + +// Uniforms for 2D Mercator projection +uniform vec2 u_southAndNorthLatitude; +uniform vec2 u_southMercatorYAndOneOverHeight; + +out vec3 v_positionMC; +out vec3 v_positionEC; + +out vec3 v_textureCoordinates; +out vec3 v_normalMC; +out vec3 v_normalEC; + +#ifdef APPLY_MATERIAL +out float v_slope; +out float v_aspect; +out float v_height; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) +out float v_distance; +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) +out vec3 v_atmosphereRayleighColor; +out vec3 v_atmosphereMieColor; +out float v_atmosphereOpacity; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS +uniform highp sampler2D u_clippingExtents; +out vec2 v_clippingPosition; +flat out int v_regionIndex; +#endif + +// These functions are generated at runtime. +vec4 getPosition(vec3 position, float height, vec2 textureCoordinates); +float get2DYPositionFraction(vec2 textureCoordinates); + +vec4 getPosition3DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return u_modifiedModelViewProjection * vec4(position, 1.0); +} + +float get2DMercatorYPositionFraction(vec2 textureCoordinates) +{ + // The width of a tile at level 11, in radians and assuming a single root tile, is + // 2.0 * czm_pi / pow(2.0, 11.0) + // We want to just linearly interpolate the 2D position from the texture coordinates + // when we're at this level or higher. The constant below is the expression + // above evaluated and then rounded up at the 4th significant digit. + const float maxTileWidth = 0.003068; + float positionFraction = textureCoordinates.y; + float southLatitude = u_southAndNorthLatitude.x; + float northLatitude = u_southAndNorthLatitude.y; + if (northLatitude - southLatitude > maxTileWidth) + { + float southMercatorY = u_southMercatorYAndOneOverHeight.x; + float oneOverMercatorHeight = u_southMercatorYAndOneOverHeight.y; + + float currentLatitude = mix(southLatitude, northLatitude, textureCoordinates.y); + currentLatitude = clamp(currentLatitude, -czm_webMercatorMaxLatitude, czm_webMercatorMaxLatitude); + positionFraction = czm_latitudeToWebMercatorFraction(currentLatitude, southMercatorY, oneOverMercatorHeight); + } + return positionFraction; +} + +float get2DGeographicYPositionFraction(vec2 textureCoordinates) +{ + return textureCoordinates.y; +} + +vec4 getPositionPlanarEarth(vec3 position, float height, vec2 textureCoordinates) +{ + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 rtcPosition2D = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + return u_modifiedModelViewProjection * rtcPosition2D; +} + +vec4 getPosition2DMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, 0.0, textureCoordinates); +} + +vec4 getPositionColumbusViewMode(vec3 position, float height, vec2 textureCoordinates) +{ + return getPositionPlanarEarth(position, height, textureCoordinates); +} + +vec4 getPositionMorphingMode(vec3 position, float height, vec2 textureCoordinates) +{ + // We do not do RTC while morphing, so there is potential for jitter. + // This is unlikely to be noticeable, though. + vec3 position3DWC = position + u_center3D; + float yPositionFraction = get2DYPositionFraction(textureCoordinates); + vec4 position2DWC = vec4(height, mix(u_tileRectangle.st, u_tileRectangle.pq, vec2(textureCoordinates.x, yPositionFraction)), 1.0); + vec4 morphPosition = czm_columbusViewMorph(position2DWC, vec4(position3DWC, 1.0), czm_morphTime); + return czm_modelViewProjection * morphPosition; +} + +#ifdef QUANTIZATION_BITS12 +uniform vec2 u_minMaxHeight; +uniform mat4 u_scaleAndBias; +#endif + +void main() +{ +#ifdef QUANTIZATION_BITS12 + vec2 xy = czm_decompressTextureCoordinates(compressed0.x); + vec2 zh = czm_decompressTextureCoordinates(compressed0.y); + vec3 position = vec3(xy, zh.x); + float height = zh.y; + vec2 textureCoordinates = czm_decompressTextureCoordinates(compressed0.z); + + height = height * (u_minMaxHeight.y - u_minMaxHeight.x) + u_minMaxHeight.x; + position = (u_scaleAndBias * vec4(position, 1.0)).xyz; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL)) && defined(INCLUDE_WEB_MERCATOR_Y) || defined(APPLY_MATERIAL) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = compressed1; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = czm_decompressTextureCoordinates(compressed0.w).x; + float encodedNormal = 0.0; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = compressed0.w; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#else + // A single float per element + vec3 position = position3DAndHeight.xyz; + float height = position3DAndHeight.w; + vec2 textureCoordinates = textureCoordAndEncodedNormals.xy; + +#if (defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL)) && defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = textureCoordAndEncodedNormals.w; +#elif defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + float webMercatorT = textureCoordinates.y; + float encodedNormal = textureCoordAndEncodedNormals.z; +#elif defined(INCLUDE_WEB_MERCATOR_Y) + float webMercatorT = textureCoordAndEncodedNormals.z; + float encodedNormal = 0.0; +#else + float webMercatorT = textureCoordinates.y; + float encodedNormal = 0.0; +#endif + +#endif + + vec3 position3DWC = position + u_center3D; + +#ifdef GEODETIC_SURFACE_NORMALS + vec3 ellipsoidNormal = geodeticSurfaceNormal; +#else + vec3 ellipsoidNormal = normalize(position3DWC); +#endif + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + float exaggeration = u_verticalExaggerationAndRelativeHeight.x; + float relativeHeight = u_verticalExaggerationAndRelativeHeight.y; + float newHeight = (height - relativeHeight) * exaggeration + relativeHeight; + + // stop from going through center of earth + float minRadius = min(min(czm_ellipsoidRadii.x, czm_ellipsoidRadii.y), czm_ellipsoidRadii.z); + newHeight = max(newHeight, -minRadius); + + vec3 offset = ellipsoidNormal * (newHeight - height); + position += offset; + position3DWC += offset; + height = newHeight; +#endif + + gl_Position = getPosition(position, height, textureCoordinates); + + v_positionEC = (u_modifiedModelView * vec4(position, 1.0)).xyz; + v_positionMC = position3DWC; // position in model coordinates + + v_textureCoordinates = vec3(textureCoordinates, webMercatorT); + +#if defined(ENABLE_VERTEX_LIGHTING) || defined(GENERATE_POSITION_AND_NORMAL) || defined(APPLY_MATERIAL) + vec3 normalMC = czm_octDecode(encodedNormal); + +#if defined(EXAGGERATION) && defined(GEODETIC_SURFACE_NORMALS) + vec3 projection = dot(normalMC, ellipsoidNormal) * ellipsoidNormal; + vec3 rejection = normalMC - projection; + normalMC = normalize(projection + rejection * exaggeration); +#endif + + v_normalMC = normalMC; + v_normalEC = czm_normal3D * v_normalMC; +#endif + +#ifdef ENABLE_CLIPPING_POLYGONS + vec2 sphericalLatLong = czm_approximateSphericalCoordinates(position3DWC); + sphericalLatLong.y = czm_branchFreeTernary(sphericalLatLong.y < czm_pi, sphericalLatLong.y, sphericalLatLong.y - czm_twoPi); + + vec2 minDistance = vec2(czm_infinity); + v_clippingPosition = vec2(czm_infinity); + v_regionIndex = -1; + + for (int regionIndex = 0; regionIndex < CLIPPING_POLYGON_REGIONS_LENGTH; regionIndex++) { + vec4 extents = unpackClippingExtents(u_clippingExtents, regionIndex); + vec2 rectUv = (sphericalLatLong.yx - extents.yx) * extents.wz; + + vec2 clamped = clamp(rectUv, vec2(0.0), vec2(1.0)); + vec2 distance = abs(rectUv - clamped) * extents.wz; + + float threshold = 0.01; + if (minDistance.x > distance.x || minDistance.y > distance.y) { + minDistance = distance; + v_clippingPosition = rectUv; + if (rectUv.x > threshold && rectUv.y > threshold && rectUv.x < 1.0 - threshold && rectUv.y < 1.0 - threshold) { + v_regionIndex = regionIndex; + } + } + } +#endif + +#if defined(FOG) || (defined(GROUND_ATMOSPHERE) && !defined(PER_FRAGMENT_GROUND_ATMOSPHERE)) + + bool dynamicLighting = false; + + #if defined(DYNAMIC_ATMOSPHERE_LIGHTING) && (defined(ENABLE_DAYNIGHT_SHADING) || defined(ENABLE_VERTEX_LIGHTING)) + dynamicLighting = true; + #endif + +#if defined(DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN) + vec3 atmosphereLightDirection = czm_sunDirectionWC; +#else + vec3 atmosphereLightDirection = czm_lightDirectionWC; +#endif + + vec3 lightDirection = czm_branchFreeTernary(dynamicLighting, atmosphereLightDirection, normalize(position3DWC)); + + computeAtmosphereScattering( + position3DWC, + lightDirection, + v_atmosphereRayleighColor, + v_atmosphereMieColor, + v_atmosphereOpacity + ); +#endif + +#if defined(FOG) || defined(GROUND_ATMOSPHERE) || defined(UNDERGROUND_COLOR) || defined(TRANSLUCENT) + v_distance = length((czm_modelView3D * vec4(position3DWC, 1.0)).xyz); +#endif + +#ifdef APPLY_MATERIAL + float northPoleZ = czm_ellipsoidRadii.z; + vec3 northPolePositionMC = vec3(0.0, 0.0, northPoleZ); + vec3 vectorEastMC = normalize(cross(northPolePositionMC - v_positionMC, ellipsoidNormal)); + float dotProd = abs(dot(ellipsoidNormal, v_normalMC)); + v_slope = acos(dotProd); + vec3 normalRejected = ellipsoidNormal * dotProd; + vec3 normalProjected = v_normalMC - normalRejected; + vec3 aspectVector = normalize(normalProjected); + v_aspect = acos(dot(aspectVector, vectorEastMC)); + float determ = dot(cross(vectorEastMC, aspectVector), ellipsoidNormal); + v_aspect = czm_branchFreeTernary(determ < 0.0, 2.0 * czm_pi - v_aspect, v_aspect); + v_height = height; +#endif +} +`;var mI=`void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity) { + + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + float atmosphereInnerRadius = length(positionWC); + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); +} +`;var $ot=new U;function Qot(e,t){let n=e.unionClippingRegions,i=e.length,o=bs.useFloatTexture(t),r=bs.getTextureResolution(e,t,$ot),s=r.x,a=r.y,c=o?trt(s,a):nrt(s,a);return c+=` +`,c+=n?Jot(i):ert(i),c}function Jot(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount; + float pixelWidth = czm_metersPerPixel(position); + bool breakAndDiscard = false; + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = czm_branchFreeTernary(i == 0, amount, min(amount, clipAmount)); + if (amount <= 0.0) + { + breakAndDiscard = true; + break; + } + } + if (breakAndDiscard) { + discard; + } + return clipAmount; +} +`}function ert(e){return`float clip(vec4 fragCoord, sampler2D clippingPlanes, mat4 clippingPlanesMatrix) +{ + bool clipped = true; + vec4 position = czm_windowToEyeCoordinates(fragCoord); + vec3 clipNormal = vec3(0.0); + vec3 clipPosition = vec3(0.0); + float clipAmount = 0.0; + float pixelWidth = czm_metersPerPixel(position); + for (int i = 0; i < ${e}; ++i) + { + vec4 clippingPlane = getClippingPlane(clippingPlanes, i, clippingPlanesMatrix); + clipNormal = clippingPlane.xyz; + clipPosition = -clippingPlane.w * clipNormal; + float amount = dot(clipNormal, (position.xyz - clipPosition)) / pixelWidth; + clipAmount = max(amount, clipAmount); + clipped = clipped && (amount <= 0.0); + } + if (clipped) + { + discard; + } + return clipAmount; +} +`}function trt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int pixY = clippingPlaneNumber / ${e}; + int pixX = clippingPlaneNumber - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 plane = texture(packedClippingPlanes, vec2(u, v)); + return czm_transformPlane(plane, transform); +} +`}function nrt(e,t){let n=1/e,i=1/t,o=`${n}`;o.indexOf(".")===-1&&(o+=".0");let r=`${i}`;return r.indexOf(".")===-1&&(r+=".0"),`vec4 getClippingPlane(highp sampler2D packedClippingPlanes, int clippingPlaneNumber, mat4 transform) +{ + int clippingPlaneStartIndex = clippingPlaneNumber * 2; + int pixY = clippingPlaneStartIndex / ${e}; + int pixX = clippingPlaneStartIndex - (pixY * ${e}); + float u = (float(pixX) + 0.5) * ${o}; + float v = (float(pixY) + 0.5) * ${r}; + vec4 oct32 = texture(packedClippingPlanes, vec2(u, v)) * 255.0; + vec2 oct = vec2(oct32.x * 256.0 + oct32.y, oct32.z * 256.0 + oct32.w); + vec4 plane; + plane.xyz = czm_octDecode(oct, 65535.0); + plane.w = czm_unpackFloat(texture(packedClippingPlanes, vec2(u + ${o}, v))); + return czm_transformPlane(plane, transform); +} +`}var Ly=Qot;function irt(e,t,n,i,o,r){this.numberOfDayTextures=e,this.flags=t,this.material=n,this.shaderProgram=i,this.clippingShaderState=o,this.clippingPolygonShaderState=r}function PY(){this.baseVertexShaderSource=void 0,this.baseFragmentShaderSource=void 0,this._shadersByTexturesFlags=[],this.material=void 0}function ort(e){let t="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPosition3DMode(position, height, textureCoordinates); }",n="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionColumbusViewMode(position, height, textureCoordinates); }",i="vec4 getPosition(vec3 position, float height, vec2 textureCoordinates) { return getPositionMorphingMode(position, height, textureCoordinates); }",o;switch(e){case ne.SCENE3D:o=t;break;case ne.SCENE2D:case ne.COLUMBUS_VIEW:o=n;break;case ne.MORPHING:o=i;break}return o}function rrt(e){return e.webgl2?`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + czm_clipPolygons(clippingDistance, regionsLength, clippingPosition, regionIndex); + }`:`void clipPolygons(highp sampler2D clippingDistance, int regionsLength, vec2 clippingPosition, int regionIndex) { + }`}function srt(e){return e.webgl2?`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return czm_unpackClippingExtents(extentsTexture, index); + }`:`vec4 unpackClippingExtents(highp sampler2D extentsTexture, int index) { + return vec4(); + }`}function art(e){return e?"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DMercatorYPositionFraction(textureCoordinates); }":"float get2DYPositionFraction(vec2 textureCoordinates) { return get2DGeographicYPositionFraction(textureCoordinates); }"}PY.prototype.getShaderProgram=function(e){let t=e.frameState,n=e.surfaceTile,i=e.numberOfDayTextures,o=e.applyBrightness,r=e.applyContrast,s=e.applyHue,a=e.applySaturation,c=e.applyGamma,u=e.applyAlpha,f=e.applyDayNightAlpha,d=e.applySplit,p=e.hasWaterMask,g=e.showReflectiveOcean,m=e.showOceanWaves,x=e.enableLighting,b=e.dynamicAtmosphereLighting,T=e.dynamicAtmosphereLightingFromSun,A=e.showGroundAtmosphere,C=e.perFragmentGroundAtmosphere,S=e.hasVertexNormals,v=e.useWebMercatorProjection,D=e.enableFog,O=e.enableClippingPlanes,R=e.clippingPlanes,M=e.enableClippingPolygons,L=e.clippingPolygons,_=e.clippedByBoundaries,E=e.hasImageryLayerCutout,w=e.colorCorrect,I=e.highlightFillTile,N=e.colorToAlpha,B=e.hasGeodeticSurfaceNormals,H=e.hasExaggeration,V=e.showUndergroundColor,G=e.translucent,k=0,W="",J=n.renderedMesh.encoding;J.quantization===ua.BITS12&&(k=1,W="QUANTIZATION_BITS12");let Z=0,Q="";_&&(Z=1,Q="TILE_LIMIT_RECTANGLE");let de=0,ye="";E&&(de=1,ye="APPLY_IMAGERY_CUTOUT");let ae=t.mode,_e=ae|o<<2|r<<3|s<<4|a<<5|c<<6|u<<7|p<<8|g<<9|m<<10|x<<11|b<<12|T<<13|A<<14|C<<15|S<<16|v<<17|D<<18|k<<19|d<<20|O<<21|M<<22|Z<<23|de<<24|w<<25|I<<26|N<<27|B<<28|H<<29|V<<30|G<<31|f<<32,xe=0;l(R)&&R.length>0&&(xe=O?R.clippingPlanesState:0);let Ie=0;l(L)&&L.length>0&&(Ie=M?L.clippingPolygonsState:0);let Ce=n.surfaceShader;if(l(Ce)&&Ce.numberOfDayTextures===i&&Ce.flags===_e&&Ce.material===this.material&&Ce.clippingShaderState===xe&&Ce.clippingPolygonShaderState===Ie)return Ce.shaderProgram;let ke=this._shadersByTexturesFlags[i];if(l(ke)||(ke=this._shadersByTexturesFlags[i]=[]),Ce=ke[_e],!l(Ce)||Ce.material!==this.material||Ce.clippingShaderState!==xe||Ce.clippingPolygonShaderState!==Ie){let He=this.baseVertexShaderSource.clone(),rt=this.baseFragmentShaderSource.clone();xe!==0&&rt.sources.unshift(Ly(R,t.context)),Ie!==0&&(rt.sources.unshift(rrt(t.context)),He.sources.unshift(srt(t.context))),He.defines.push(W),rt.defines.push(`TEXTURE_UNITS ${i}`,Q,ye),o&&rt.defines.push("APPLY_BRIGHTNESS"),r&&rt.defines.push("APPLY_CONTRAST"),s&&rt.defines.push("APPLY_HUE"),a&&rt.defines.push("APPLY_SATURATION"),c&&rt.defines.push("APPLY_GAMMA"),u&&rt.defines.push("APPLY_ALPHA"),f&&rt.defines.push("APPLY_DAY_NIGHT_ALPHA"),p&&rt.defines.push("HAS_WATER_MASK"),g&&(rt.defines.push("SHOW_REFLECTIVE_OCEAN"),He.defines.push("SHOW_REFLECTIVE_OCEAN")),m&&rt.defines.push("SHOW_OCEAN_WAVES"),N&&rt.defines.push("APPLY_COLOR_TO_ALPHA"),V&&(He.defines.push("UNDERGROUND_COLOR"),rt.defines.push("UNDERGROUND_COLOR")),G&&(He.defines.push("TRANSLUCENT"),rt.defines.push("TRANSLUCENT")),x&&(S?(He.defines.push("ENABLE_VERTEX_LIGHTING"),rt.defines.push("ENABLE_VERTEX_LIGHTING")):(He.defines.push("ENABLE_DAYNIGHT_SHADING"),rt.defines.push("ENABLE_DAYNIGHT_SHADING"))),b&&(He.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),rt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING"),T&&(He.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"),rt.defines.push("DYNAMIC_ATMOSPHERE_LIGHTING_FROM_SUN"))),A&&(He.defines.push("GROUND_ATMOSPHERE"),rt.defines.push("GROUND_ATMOSPHERE"),C&&(He.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"),rt.defines.push("PER_FRAGMENT_GROUND_ATMOSPHERE"))),He.defines.push("INCLUDE_WEB_MERCATOR_Y"),rt.defines.push("INCLUDE_WEB_MERCATOR_Y"),D&&(He.defines.push("FOG"),rt.defines.push("FOG")),d&&rt.defines.push("APPLY_SPLIT"),O&&rt.defines.push("ENABLE_CLIPPING_PLANES"),M&&(rt.defines.push("ENABLE_CLIPPING_POLYGONS"),He.defines.push("ENABLE_CLIPPING_POLYGONS"),L.inverse&&rt.defines.push("CLIPPING_INVERSE"),rt.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${L.extentsCount}`),He.defines.push(`CLIPPING_POLYGON_REGIONS_LENGTH ${L.extentsCount}`)),w&&rt.defines.push("COLOR_CORRECT"),I&&rt.defines.push("HIGHLIGHT_FILL_TILE"),B&&He.defines.push("GEODETIC_SURFACE_NORMALS"),H&&He.defines.push("EXAGGERATION");let Lt=` vec4 computeDayColor(vec4 initialColor, vec3 textureCoordinates, float nightBlend) + { + vec4 color = initialColor; +`;E&&(Lt+=` vec4 cutoutAndColorResult; + bool texelUnclipped; +`);for(let we=0;we<i;++we)E?Lt+=` cutoutAndColorResult = u_dayTextureCutoutRectangles[${we}]; + texelUnclipped = v_textureCoordinates.x < cutoutAndColorResult.x || cutoutAndColorResult.z < v_textureCoordinates.x || v_textureCoordinates.y < cutoutAndColorResult.y || cutoutAndColorResult.w < v_textureCoordinates.y; + cutoutAndColorResult = sampleAndBlend( +`:Lt+=` color = sampleAndBlend( +`,Lt+=` color, + u_dayTextures[${we}], + u_dayTextureUseWebMercatorT[${we}] ? textureCoordinates.xz : textureCoordinates.xy, + u_dayTextureTexCoordsRectangle[${we}], + u_dayTextureTranslationAndScale[${we}], + ${u?`u_dayTextureAlpha[${we}]`:"1.0"}, + ${f?`u_dayTextureNightAlpha[${we}]`:"1.0"}, +${f?`u_dayTextureDayAlpha[${we}]`:"1.0"}, +${o?`u_dayTextureBrightness[${we}]`:"0.0"}, + ${r?`u_dayTextureContrast[${we}]`:"0.0"}, + ${s?`u_dayTextureHue[${we}]`:"0.0"}, + ${a?`u_dayTextureSaturation[${we}]`:"0.0"}, + ${c?`u_dayTextureOneOverGamma[${we}]`:"0.0"}, + ${d?`u_dayTextureSplit[${we}]`:"0.0"}, + ${N?`u_colorsToAlpha[${we}]`:"vec4(0.0)"}, + nightBlend ); +`,E&&(Lt+=` color = czm_branchFreeTernary(texelUnclipped, cutoutAndColorResult, color); +`);Lt+=` return color; + }`,rt.sources.push(Lt),He.sources.push(ort(ae)),He.sources.push(art(v));let Tt=en.fromCache({context:t.context,vertexShaderSource:He,fragmentShaderSource:rt,attributeLocations:J.getAttributeLocations()});Ce=ke[_e]=new irt(i,_e,this.material,Tt,xe,Ie)}return n.surfaceShader=Ce,Ce.shaderProgram};PY.prototype.destroy=function(){let e,t,n=this._shadersByTexturesFlags;for(let i in n)if(n.hasOwnProperty(i)){let o=n[i];if(!l(o))continue;for(e in o)o.hasOwnProperty(e)&&(t=o[e],l(t)&&t.shaderProgram.destroy())}return ue(this)};var eU=PY;var crt={NONE:-1,PARTIAL:0,FULL:1},xr=Object.freeze(crt);function tU(e,t,n,i,o,r,s){this.provider=e,this.message=t,this.x=n,this.y=i,this.level=o,this.timesRetried=y(r,0),this.retry=!1,this.error=s}tU.reportError=function(e,t,n,i,o,r,s,a){let c=e;return l(e)?(c.provider=t,c.message=i,c.x=o,c.y=r,c.level=s,c.retry=!1,c.error=a,++c.timesRetried):c=new tU(t,i,o,r,s,0,a),l(n)&&n.numberOfListeners>0?n.raiseEvent(c):l(t)&&console.log(`An error occurred in "${t.constructor.name}": ${s_(i)}`),c};tU.reportSuccess=function(e){l(e)&&(e.timesRetried=-1)};var Do=tU;var lrt={UNLOADED:0,TRANSITIONING:1,RECEIVED:2,TEXTURE_LOADED:3,READY:4,FAILED:5,INVALID:6,PLACEHOLDER:7},si=Object.freeze(lrt);var urt={START:0,LOADING:1,DONE:2,FAILED:3},fa=Object.freeze(urt);var frt={FAILED:0,UNLOADED:1,RECEIVING:2,RECEIVED:3,TRANSFORMING:4,TRANSFORMED:5,READY:6},lo=Object.freeze(frt);function Zo(){this.imagery=[],this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe(0,0,1,1),this.terrainData=void 0,this.vertexArray=void 0,this.tileBoundingRegion=void 0,this.occludeePointInScaledSpace=new h,this.boundingVolumeSourceTile=void 0,this.boundingVolumeIsFromMesh=!1,this.terrainState=lo.UNLOADED,this.mesh=void 0,this.fill=void 0,this.pickBoundingSphere=new se,this.surfaceShader=void 0,this.isClipped=!0,this.clippedByBoundaries=!1}Object.defineProperties(Zo.prototype,{eligibleForUnloading:{get:function(){let e=this.terrainState,n=!(e===lo.RECEIVING||e===lo.TRANSFORMING),i=this.imagery;for(let o=0,r=i.length;n&&o<r;++o){let s=i[o];n=!l(s.loadingImagery)||s.loadingImagery.state!==si.TRANSITIONING}return n}},renderedMesh:{get:function(){if(l(this.vertexArray))return this.mesh;if(l(this.fill))return this.fill.mesh}}});var drt=new fe;function RY(e,t,n,i,o,r){let s=e.getExaggeratedPosition(i,o,r);if(l(t)&&t!==ne.SCENE3D){let c=n.ellipsoid.cartesianToCartographic(s,drt);s=n.project(c,r),s=h.fromElements(s.z,s.x,s.y,r)}return s}var hrt=new h,mrt=new h,prt=new h;Zo.prototype.pick=function(e,t,n,i,o){let r=this.renderedMesh;if(!l(r))return;let s=r.vertices,a=r.indices,c=r.encoding,u=a.length,f=Number.MAX_VALUE;for(let d=0;d<u;d+=3){let p=a[d],g=a[d+1],m=a[d+2],x=RY(c,t,n,s,p,hrt),b=RY(c,t,n,s,g,mrt),T=RY(c,t,n,s,m,prt),A=$n.rayTriangleParametric(e,x,b,T,i);l(A)&&A<f&&A>=0&&(f=A)}return f!==Number.MAX_VALUE?mn.getPoint(e,f,o):void 0};Zo.prototype.freeResources=function(){l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0),this.terrainData=void 0,this.terrainState=lo.UNLOADED,this.mesh=void 0,this.fill=this.fill&&this.fill.destroy();let e=this.imagery;for(let t=0,n=e.length;t<n;++t)e[t].freeResources();this.imagery.length=0,this.freeVertexArray()};Zo.prototype.freeVertexArray=function(){Zo._freeVertexArray(this.vertexArray),this.vertexArray=void 0,Zo._freeVertexArray(this.wireframeVertexArray),this.wireframeVertexArray=void 0};Zo.initialize=function(e,t,n){let i=e.data;l(i)||(i=e.data=new Zo),e.state===fa.START&&(_rt(e,t,n),e.state=fa.LOADING)};Zo.processStateMachine=function(e,t,n,i,o,r,s){Zo.initialize(e,n,i);let a=e.data;if(e.state===fa.LOADING&&grt(e,t,n,i,o,r),s)return;let c=e.renderable;e.renderable=l(a.vertexArray);let u=a.terrainState===lo.READY;e.upsampledFromParent=l(a.terrainData)&&a.terrainData.wasCreatedByUpsampling();let f=a.processImagery(e,n,t);if(u&&f){let d=e._loadedCallbacks,p={};for(let g in d)d.hasOwnProperty(g)&&(d[g](e)||(p[g]=d[g]));e._loadedCallbacks=p,e.state=fa.DONE}c&&(e.renderable=!0)};Zo.prototype.processImagery=function(e,t,n,i){let o=e.data,r=e.upsampledFromParent,s=!1,a=!0,c=o.imagery,u,f;for(u=0,f=c.length;u<f;++u){let d=c[u];if(!l(d.loadingImagery)){r=!1;continue}if(d.loadingImagery.state===si.PLACEHOLDER){let g=d.loadingImagery.imageryLayer;if(g.ready){d.freeResources(),c.splice(u,1),g._createTileImagerySkeletons(e,t,u),--u,f=c.length;continue}else r=!1}let p=d.processStateMachine(e,n,i);a=a&&p,s=s||p||l(d.readyImagery),r=r&&l(d.loadingImagery)&&(d.loadingImagery.state===si.FAILED||d.loadingImagery.state===si.INVALID)}return e.upsampledFromParent=r,e.renderable=e.renderable&&(s||a),a};function N_e(e,t,n,i){let o=e.renderedMesh,r=o.vertices,s=o.encoding,a=r.length/s.stride,c=jc.clone(s);c.hasGeodeticSurfaceNormals=t,c=jc.clone(c);let u=c.stride,f=new Float32Array(a*u);t?s.addGeodeticSurfaceNormals(r,f,n):s.removeGeodeticSurfaceNormals(r,f),o.vertices=f,o.stride=u,o!==e.mesh?(Zo._freeVertexArray(e.fill.vertexArray),e.fill.vertexArray=Zo._createVertexArrayForMesh(i.context,o)):(Zo._freeVertexArray(e.vertexArray),e.vertexArray=Zo._createVertexArrayForMesh(i.context,o)),Zo._freeVertexArray(e.wireframeVertexArray),e.wireframeVertexArray=void 0}Zo.prototype.addGeodeticSurfaceNormals=function(e,t){N_e(this,!0,e,t)};Zo.prototype.removeGeodeticSurfaceNormals=function(e){N_e(this,!1,void 0,e)};Zo.prototype.updateExaggeration=function(e,t,n){let i=this,o=i.renderedMesh;if(o===void 0)return;let r=t.verticalExaggeration,s=t.verticalExaggerationRelativeHeight,a=r!==1,c=o.encoding,u=c.exaggeration!==r,f=c.exaggerationRelativeHeight!==s;if(u||f){if(u)if(a&&!c.hasGeodeticSurfaceNormals){let d=e.tilingScheme.ellipsoid;i.addGeodeticSurfaceNormals(d,t)}else!a&&c.hasGeodeticSurfaceNormals&&i.removeGeodeticSurfaceNormals(t);if(c.exaggeration=r,c.exaggerationRelativeHeight=s,n!==void 0){n._tileToUpdateHeights.push(e);let d=e.customData,p=d.length;for(let g=0;g<p;g++){let m=d[g];m.level=-1}}}};function _rt(e,t,n){let i=t.getTileDataAvailable(e.x,e.y,e.level);if(!l(i)&&l(e.parent)){let o=e.parent,r=o.data;l(r)&&l(r.terrainData)&&(i=r.terrainData.isChildAvailable(o.x,o.y,e.x,e.y))}i===!1&&(e.data.terrainState=lo.FAILED);for(let o=0,r=n.length;o<r;++o){let s=n.get(o);s.show&&s._createTileImagerySkeletons(e,t)}}function grt(e,t,n,i,o,r){let s=e.data,a=e.parent;if(s.terrainState===lo.FAILED&&a!==void 0&&(a.data!==void 0&&a.data.terrainData!==void 0&&a.data.terrainData.canUpsample!==!1||Zo.processStateMachine(a,t,n,i,o,r,!0)),s.terrainState===lo.FAILED&&yrt(s,e,t,n,e.x,e.y,e.level),s.terrainState===lo.UNLOADED&&xrt(s,n,e.x,e.y,e.level),s.terrainState===lo.RECEIVED&&Trt(s,t,n,e.x,e.y,e.level),s.terrainState===lo.TRANSFORMED&&(Art(s,t.context,n,e.x,e.y,e.level,r),s.updateExaggeration(e,t,o)),s.terrainState>=lo.RECEIVED&&s.waterMaskTexture===void 0&&n.hasWaterMask)if(s.terrainData.waterMask!==void 0)Ert(t.context,s);else{let u=s._findAncestorTileWithTerrainData(e);l(u)&&l(u.data.waterMaskTexture)&&(s.waterMaskTexture=u.data.waterMaskTexture,++s.waterMaskTexture.referenceCount,s._computeWaterMaskTranslationAndScale(e,u,s.waterMaskTranslationAndScale))}}function yrt(e,t,n,i,o,r,s){let a=t.parent;if(!a){t.state=fa.FAILED;return}let c=a.data.terrainData,u=a.x,f=a.y,d=a.level;if(!l(c))return;let p=c.upsample(i.tilingScheme,u,f,d,o,r,s);l(p)&&(e.terrainState=lo.RECEIVING,Promise.resolve(p).then(function(g){l(g)&&(e.terrainData=g,e.terrainState=lo.RECEIVED)}).catch(function(){e.terrainState=lo.FAILED}))}function xrt(e,t,n,i,o){function r(c){if(!l(c)){e.terrainState=lo.UNLOADED,e.request=void 0;return}e.terrainData=c,e.terrainState=lo.RECEIVED,e.request=void 0}function s(c){if(e.request.state===Zn.CANCELLED){e.terrainData=void 0,e.terrainState=lo.UNLOADED,e.request=void 0;return}e.terrainState=lo.FAILED,e.request=void 0;let u=`Failed to obtain terrain tile X: ${n} Y: ${i} Level: ${o}. Error message: "${c}"`;t._requestError=Do.reportError(t._requestError,t,t.errorEvent,u,n,i,o),t._requestError.retry&&a()}function a(){let c=new tr({throttle:!1,throttleByServer:!0,type:ps.TERRAIN});e.request=c;let u=t.requestTileGeometry(n,i,o,c);l(u)?(e.terrainState=lo.RECEIVING,Promise.resolve(u).then(function(f){r(f)}).catch(function(f){s(f)})):(e.terrainState=lo.UNLOADED,e.request=void 0)}a()}var brt={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0,throttle:!0};function Trt(e,t,n,i,o,r){let s=n.tilingScheme,a=brt;a.tilingScheme=s,a.x=i,a.y=o,a.level=r,a.exaggeration=t.verticalExaggeration,a.exaggerationRelativeHeight=t.verticalExaggerationRelativeHeight,a.throttle=!0;let u=e.terrainData.createMesh(a);l(u)&&(e.terrainState=lo.TRANSFORMING,Promise.resolve(u).then(function(f){e.mesh=f,e.terrainState=lo.TRANSFORMED}).catch(function(){e.terrainState=lo.FAILED}))}Zo._createVertexArrayForMesh=function(e,t){let n=t.vertices,i=yt.createVertexBuffer({context:e,typedArray:n,usage:Fe.STATIC_DRAW}),o=t.encoding.getAttributes(i),r=t.indices.indexBuffers||{},s=r[e.id];if(!l(s)||s.isDestroyed()){let a=t.indices;s=yt.createIndexBuffer({context:e,typedArray:a,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(a.BYTES_PER_ELEMENT)}),s.vertexArrayDestroyable=!1,s.referenceCount=1,r[e.id]=s,t.indices.indexBuffers=r}else++s.referenceCount;return new ti({context:e,attributes:o,indexBuffer:s})};Zo._freeVertexArray=function(e){if(l(e)){let t=e.indexBuffer;e.isDestroyed()||e.destroy(),l(t)&&!t.isDestroyed()&&l(t.referenceCount)&&(--t.referenceCount,t.referenceCount===0&&t.destroy())}};function Art(e,t,n,i,o,r,s){e.vertexArray=Zo._createVertexArrayForMesh(t,e.mesh),e.terrainState=lo.READY,e.fill=e.fill&&e.fill.destroy(s)}function Crt(e){let t=e.cache.tile_waterMaskData;if(!l(t)){let n=Ot.create({context:e,pixelFormat:it.LUMINANCE,pixelDatatype:Ze.UNSIGNED_BYTE,source:{arrayBufferView:new Uint8Array([255]),width:1,height:1}});n.referenceCount=1;let i=new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:di.LINEAR});t={allWaterTexture:n,sampler:i,destroy:function(){this.allWaterTexture.destroy()}},e.cache.tile_waterMaskData=t}return t}function Ert(e,t){let n=t.terrainData.waterMask,i=Crt(e),o,r=n.length;if(r===1)if(n[0]!==0)o=i.allWaterTexture;else return;else{let s=Math.sqrt(r);o=Ot.create({context:e,pixelFormat:it.LUMINANCE,pixelDatatype:Ze.UNSIGNED_BYTE,source:{width:s,height:s,arrayBufferView:n},sampler:i.sampler,flipY:!1}),o.referenceCount=0}++o.referenceCount,t.waterMaskTexture=o,oe.fromElements(0,0,1,1,t.waterMaskTranslationAndScale)}Zo.prototype._findAncestorTileWithTerrainData=function(e){let t=e.parent;for(;l(t)&&(!l(t.data)||!l(t.data.terrainData)||t.data.terrainData.wasCreatedByUpsampling());)t=t.parent;return t};Zo.prototype._computeWaterMaskTranslationAndScale=function(e,t,n){let i=t.rectangle,o=e.rectangle,r=o.width,s=o.height,a=r/i.width,c=s/i.height;return n.x=a*(o.west-i.west)/r,n.y=c*(o.south-i.south)/s,n.z=a,n.w=c,n};var Xd=Zo;function Ny(e){if(e=y(e,y.EMPTY_OBJECT),this._ellipsoid=y(e.ellipsoid,ee.default),this._numberOfLevelZeroTilesX=y(e.numberOfLevelZeroTilesX,1),this._numberOfLevelZeroTilesY=y(e.numberOfLevelZeroTilesY,1),this._projection=new Ii(this._ellipsoid),l(e.rectangleSouthwestInMeters)&&l(e.rectangleNortheastInMeters))this._rectangleSouthwestInMeters=e.rectangleSouthwestInMeters,this._rectangleNortheastInMeters=e.rectangleNortheastInMeters;else{let i=this._ellipsoid.maximumRadius*Math.PI;this._rectangleSouthwestInMeters=new U(-i,-i),this._rectangleNortheastInMeters=new U(i,i)}let t=this._projection.unproject(this._rectangleSouthwestInMeters),n=this._projection.unproject(this._rectangleNortheastInMeters);this._rectangle=new re(t.longitude,t.latitude,n.longitude,n.latitude)}Object.defineProperties(Ny.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},rectangle:{get:function(){return this._rectangle}},projection:{get:function(){return this._projection}}});Ny.prototype.getNumberOfXTilesAtLevel=function(e){return this._numberOfLevelZeroTilesX<<e};Ny.prototype.getNumberOfYTilesAtLevel=function(e){return this._numberOfLevelZeroTilesY<<e};Ny.prototype.rectangleToNativeRectangle=function(e,t){let n=this._projection,i=n.project(re.southwest(e)),o=n.project(re.northeast(e));return l(t)?(t.west=i.x,t.south=i.y,t.east=o.x,t.north=o.y,t):new re(i.x,i.y,o.x,o.y)};Ny.prototype.tileXYToNativeRectangle=function(e,t,n,i){let o=this.getNumberOfXTilesAtLevel(n),r=this.getNumberOfYTilesAtLevel(n),s=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,a=this._rectangleSouthwestInMeters.x+e*s,c=this._rectangleSouthwestInMeters.x+(e+1)*s,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,f=this._rectangleNortheastInMeters.y-t*u,d=this._rectangleNortheastInMeters.y-(t+1)*u;return l(i)?(i.west=a,i.south=d,i.east=c,i.north=f,i):new re(a,d,c,f)};Ny.prototype.tileXYToRectangle=function(e,t,n,i){let o=this.tileXYToNativeRectangle(e,t,n,i),r=this._projection,s=r.unproject(new U(o.west,o.south)),a=r.unproject(new U(o.east,o.north));return o.west=s.longitude,o.south=s.latitude,o.east=a.longitude,o.north=a.latitude,o};Ny.prototype.positionToTileXY=function(e,t,n){let i=this._rectangle;if(!re.contains(i,e))return;let o=this.getNumberOfXTilesAtLevel(t),r=this.getNumberOfYTilesAtLevel(t),a=(this._rectangleNortheastInMeters.x-this._rectangleSouthwestInMeters.x)/o,u=(this._rectangleNortheastInMeters.y-this._rectangleSouthwestInMeters.y)/r,d=this._projection.project(e),p=d.x-this._rectangleSouthwestInMeters.x,g=this._rectangleNortheastInMeters.y-d.y,m=p/a|0;m>=o&&(m=o-1);let x=g/u|0;return x>=r&&(x=r-1),l(n)?(n.x=m,n.y=x,n):new U(m,x)};var us=Ny;var OY,F_e="AAPTxy8BH1VEsoebNVZXo8HurEOF051kAEKlhkOhBEc9BmQpcUfxe1Yndhf82d5oKkQJ4_7VPaBQGYSISOMaRew7Sy-eTX1JQ4XwaC8v5aCvV72O6LCPs5Ss1pXXH-0uEw6bSRhTeQYHOmikutC2OMyZt6lu0VfT7FA-jVMO_UsunWNTf2cycP2O4IeDN_UV9G-VNmUu2jRvCHioi8o72ua4238s2219cYLEmcoGRJGVJTA.AT1_PjLvyih0",AE={};AE.defaultAccessToken=F_e;AE.defaultWorldImageryServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/World_Imagery/MapServer"});AE.defaultWorldHillshadeServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer"});AE.defaultWorldOceanServer=new De({url:"https://ibasemaps-api.arcgis.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer"});AE.getDefaultTokenCredit=function(e){if(e===F_e){if(!l(OY)){let t='<b> This application is using a default ArcGIS access token. Please assign <i>Cesium.ArcGisMapService.defaultAccessToken</i> with an API key from your ArcGIS Developer account before using the ArcGIS tile services. You can sign up for a free ArcGIS Developer account at <a href="https://developers.arcgis.com/">https://developers.arcgis.com/</a>.</b>';OY=new wt(t,!0)}return OY}};var Ff=AE;function MY(e){e=y(e,y.EMPTY_OBJECT),this._pixelsToCheck=e.pixelsToCheck,this._missingImagePixels=void 0,this._missingImageByteLength=void 0,this._isReady=!1;let t=De.createIfNeeded(e.missingImageUrl),n=this;function i(r){l(r.blob)&&(n._missingImageByteLength=r.blob.size);let s=fh(r);if(e.disableCheckIfAllPixelsAreTransparent){let a=!0,c=r.width,u=e.pixelsToCheck;for(let f=0,d=u.length;a&&f<d;++f){let p=u[f],g=p.x*4+p.y*c;s[g+3]>0&&(a=!1)}a&&(s=void 0)}n._missingImagePixels=s,n._isReady=!0}function o(){n._missingImagePixels=void 0,n._isReady=!0}t.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}).then(i).catch(o)}MY.prototype.isReady=function(){return this._isReady};MY.prototype.shouldDiscardImage=function(e){let t=this._pixelsToCheck,n=this._missingImagePixels;if(!l(n)||l(e.blob)&&e.blob.size!==this._missingImageByteLength)return!1;let i=fh(e),o=e.width;for(let r=0,s=t.length;r<s;++r){let a=t[r],c=a.x*4+a.y*o;for(let u=0;u<4;++u){let f=c+u;if(i[f]!==n[f])return!1}}return!0};var nU=MY;function LY(){this.name=void 0,this.description=void 0,this.position=void 0,this.data=void 0,this.imageryLayer=void 0}LY.prototype.configureNameFromProperties=function(e){let t=10,n;for(let i in e)if(e.hasOwnProperty(i)&&e[i]){let o=i.toLowerCase();t>1&&o==="name"?(t=1,n=i):t>2&&o==="title"?(t=2,n=i):t>3&&/name/i.test(i)?(t=3,n=i):t>4&&/title/i.test(i)&&(t=4,n=i)}l(n)&&(this.name=e[n])};LY.prototype.configureDescriptionFromProperties=function(e){function t(n){let i='<table class="cesium-infoBox-defaultTable">';for(let o in n)if(n.hasOwnProperty(o)){let r=n[o];l(r)&&(typeof r=="object"?i+=`<tr><td>${o}</td><td>${t(r)}</td></tr>`:i+=`<tr><td>${o}</td><td>${r}</td></tr>`)}return i+="</table>",i}this.description=t(e)};var Cm=LY;function CE(){he.throwInstantiationError()}Object.defineProperties(CE.prototype,{rectangle:{get:he.throwInstantiationError},tileWidth:{get:he.throwInstantiationError},tileHeight:{get:he.throwInstantiationError},maximumLevel:{get:he.throwInstantiationError},minimumLevel:{get:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},tileDiscardPolicy:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError},credit:{get:he.throwInstantiationError},proxy:{get:he.throwInstantiationError},hasAlphaChannel:{get:he.throwInstantiationError}});CE.prototype.getTileCredits=function(e,t,n){he.throwInstantiationError()};CE.prototype.requestImage=function(e,t,n,i){he.throwInstantiationError()};CE.prototype.pickFeatures=function(e,t,n,i,o){he.throwInstantiationError()};var Srt=/\.ktx2$/i;CE.loadImage=function(e,t){let n=De.createIfNeeded(t);return Srt.test(n.url)?Gl(n):l(e)&&l(e.tileDiscardPolicy)?n.fetchImage({preferBlob:!0,preferImageBitmap:!0,flipY:!0}):n.fetchImage({preferImageBitmap:!0,flipY:!0})};var Pl=CE;var vrt={SATELLITE:1,OCEANS:2,HILLSHADE:3},Em=Object.freeze(vrt);function B_e(e){this.useTiles=y(e.usePreCachedTilesIfAvailable,!0);let t=e.ellipsoid;this.tilingScheme=y(e.tilingScheme,new qi({ellipsoid:t})),this.rectangle=y(e.rectangle,this.tilingScheme.rectangle),this.ellipsoid=t;let n=e.credit;typeof n=="string"&&(n=new wt(n)),this.credit=n,this.tileCredits=void 0,this.tileDiscardPolicy=e.tileDiscardPolicy,this.tileWidth=y(e.tileWidth,256),this.tileHeight=y(e.tileHeight,256),this.maximumLevel=e.maximumLevel}B_e.prototype.build=function(e){e._useTiles=this.useTiles,e._tilingScheme=this.tilingScheme,e._rectangle=this.rectangle,e._credit=this.credit,e._tileCredits=this.tileCredits,e._tileDiscardPolicy=this.tileDiscardPolicy,e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,this.useTiles&&!l(this.tileDiscardPolicy)&&(e._tileDiscardPolicy=new nU({missingImageUrl:k_e(e,0,0,this.maximumLevel).url,pixelsToCheck:[new U(0,0),new U(200,20),new U(20,200),new U(80,110),new U(160,130)],disableCheckIfAllPixelsAreTransparent:!0}))};function wrt(e,t){let n=e.tileInfo;if(!l(n))t.useTiles=!1;else{if(t.tileWidth=n.rows,t.tileHeight=n.cols,n.spatialReference.wkid===102100||n.spatialReference.wkid===102113)t.tilingScheme=new us({ellipsoid:t.ellipsoid});else if(e.tileInfo.spatialReference.wkid===4326)t.tilingScheme=new qi({ellipsoid:t.ellipsoid});else{let i=`Tile spatial reference WKID ${e.tileInfo.spatialReference.wkid} is not supported.`;throw new ce(i)}if(t.maximumLevel=e.tileInfo.lods.length-1,l(e.fullExtent)){if(l(e.fullExtent.spatialReference)&&l(e.fullExtent.spatialReference.wkid))if(e.fullExtent.spatialReference.wkid===102100||e.fullExtent.spatialReference.wkid===102113){let i=new Ii,o=e.fullExtent,r=i.unproject(new h(Math.max(o.xmin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.max(o.ymin,-t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0)),s=i.unproject(new h(Math.min(o.xmax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),Math.min(o.ymax,t.tilingScheme.ellipsoid.maximumRadius*Math.PI),0));t.rectangle=new re(r.longitude,r.latitude,s.longitude,s.latitude)}else if(e.fullExtent.spatialReference.wkid===4326)t.rectangle=re.fromDegrees(e.fullExtent.xmin,e.fullExtent.ymin,e.fullExtent.xmax,e.fullExtent.ymax);else{let i=`fullExtent.spatialReference WKID ${e.fullExtent.spatialReference.wkid} is not supported.`;throw new ce(i)}}else t.rectangle=t.tilingScheme.rectangle;t.useTiles=!0}l(e.copyrightText)&&e.copyrightText.length>0&&(l(t.credit)?t.tileCredits=[new wt(e.copyrightText)]:t.credit=new wt(e.copyrightText))}function Drt(e,t){let n=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(n+=`: ${t.message}`),new ce(n)}async function Irt(e,t){let n=e.getDerivedResource({queryParameters:{f:"json"}});try{let i=await n.fetchJson();wrt(i,t)}catch(i){Drt(e,i)}}function Sm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new qi({ellipsoid:e.ellipsoid})),this._useTiles=y(e.usePreCachedTilesIfAvailable,!0),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._layers=e.layers,this._credit=e.credit,this._tileCredits=void 0;let t=e.credit;typeof t=="string"&&(t=new wt(t)),this.enablePickFeatures=y(e.enablePickFeatures,!0),this._errorEvent=new me}Sm.fromBasemapType=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n,i,o;switch(e){case Em.SATELLITE:{n=y(t.token,Ff.defaultAccessToken),i=De.createIfNeeded(Ff.defaultWorldImageryServer),i.appendForwardSlash();let r=Ff.getDefaultTokenCredit(n);l(r)&&(o=wt.clone(r))}break;case Em.OCEANS:{n=y(t.token,Ff.defaultAccessToken),i=De.createIfNeeded(Ff.defaultWorldOceanServer),i.appendForwardSlash();let r=Ff.getDefaultTokenCredit(n);l(r)&&(o=wt.clone(r))}break;case Em.HILLSHADE:{n=y(t.token,Ff.defaultAccessToken),i=De.createIfNeeded(Ff.defaultWorldHillshadeServer),i.appendForwardSlash();let r=Ff.getDefaultTokenCredit(n);l(r)&&(o=wt.clone(r))}break;default:}return Sm.fromUrl(i,{...t,token:n,credit:o,usePreCachedTilesIfAvailable:!0})};function k_e(e,t,n,i,o){let r;if(e._useTiles)r=e._resource.getDerivedResource({url:`tile/${i}/${n}/${t}`,request:o});else{let s=e._tilingScheme.tileXYToNativeRectangle(t,n,i),c={bbox:`${s.west},${s.south},${s.east},${s.north}`,size:`${e._tileWidth},${e._tileHeight}`,format:"png32",transparent:!0,f:"image"};e._tilingScheme.projection instanceof wi?(c.bboxSR=4326,c.imageSR=4326):(c.bboxSR=3857,c.imageSR=3857),e.layers&&(c.layers=`show:${e.layers}`),r=e._resource.getDerivedResource({url:"export",request:o,queryParameters:c})}return r}Object.defineProperties(Sm.prototype,{url:{get:function(){return this._resource._url}},token:{get:function(){return this._resource.queryParameters.token}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},usingPrecachedTiles:{get:function(){return this._useTiles}},hasAlphaChannel:{get:function(){return!0}},layers:{get:function(){return this._layers}}});Sm.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&n.setQueryParameters({token:t.token});let i=new Sm(t);i._resource=n;let o=new B_e(t);return y(t.usePreCachedTilesIfAvailable,!0)&&await Irt(n,o),o.build(i),i};Sm.prototype.getTileCredits=function(e,t,n){return this._tileCredits};Sm.prototype.requestImage=function(e,t,n,i){return Pl.loadImage(this,k_e(this,e,t,n,i))};Sm.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures)return;let r=this._tilingScheme.tileXYToNativeRectangle(e,t,n),s,a,c;if(this._tilingScheme.projection instanceof wi)s=P.toDegrees(i),a=P.toDegrees(o),c="4326";else{let p=this._tilingScheme.projection.project(new fe(i,o,0));s=p.x,a=p.y,c="3857"}let u="visible";l(this._layers)&&(u+=`:${this._layers}`);let f={f:"json",tolerance:2,geometryType:"esriGeometryPoint",geometry:`${s},${a}`,mapExtent:`${r.west},${r.south},${r.east},${r.north}`,imageDisplay:`${this._tileWidth},${this._tileHeight},96`,sr:c,layers:u};return this._resource.getDerivedResource({url:"identify",queryParameters:f}).fetchJson().then(function(p){let g=[],m=p.results;if(!l(m))return g;for(let x=0;x<m.length;++x){let b=m[x],T=new Cm;if(T.data=b,T.name=b.value,T.properties=b.attributes,T.configureDescriptionFromProperties(b.attributes),b.geometryType==="esriGeometryPoint"&&b.geometry){let A=b.geometry.spatialReference&&b.geometry.spatialReference.wkid?b.geometry.spatialReference.wkid:4326;if(A===4326||A===4283)T.position=fe.fromDegrees(b.geometry.x,b.geometry.y,b.geometry.z);else if(A===102100||A===900913||A===3857){let C=new Ii;T.position=C.unproject(new h(b.geometry.x,b.geometry.y,b.geometry.z))}}g.push(T)}return g})};Sm._metadataCache={};var Fy=Sm;var Prt={AERIAL:"Aerial",AERIAL_WITH_LABELS:"AerialWithLabels",AERIAL_WITH_LABELS_ON_DEMAND:"AerialWithLabelsOnDemand",ROAD:"Road",ROAD_ON_DEMAND:"RoadOnDemand",CANVAS_DARK:"CanvasDark",CANVAS_LIGHT:"CanvasLight",CANVAS_GRAY:"CanvasGray",ORDNANCE_SURVEY:"OrdnanceSurvey",COLLINS_BART:"CollinsBart"},pI=Object.freeze(Prt);function _I(e){}_I.prototype.isReady=function(){return!0};_I.prototype.shouldDiscardImage=function(e){return _I.EMPTY_IMAGE===e};var iU;Object.defineProperties(_I,{EMPTY_IMAGE:{get:function(){return l(iU)||(iU=new Image,iU.src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII="),iU}}});var gI=_I;function V_e(e){this.tileWidth=void 0,this.tileHeight=void 0,this.maximumLevel=void 0,this.imageUrlSubdomains=void 0,this.imageUrlTemplate=void 0,this.attributionList=void 0}V_e.prototype.build=function(e){e._tileWidth=this.tileWidth,e._tileHeight=this.tileHeight,e._maximumLevel=this.maximumLevel,e._imageUrlSubdomains=this.imageUrlSubdomains,e._imageUrlTemplate=this.imageUrlTemplate;let t=e._attributionList=this.attributionList;t||(t=[]),e._attributionList=t;for(let n=0,i=t.length;n<i;++n){let o=t[n];if(o.credit instanceof wt)break;o.credit=new wt(o.attribution);let r=o.coverageAreas;for(let s=0,a=o.coverageAreas.length;s<a;++s){let c=r[s],u=c.bbox;c.bbox=new re(P.toRadians(u[1]),P.toRadians(u[0]),P.toRadians(u[3]),P.toRadians(u[2]))}}};function Rrt(e,t){if(e.resourceSets.length!==1)throw new ce("metadata does not specify one resource in resourceSets");let n=e.resourceSets[0].resources[0];t.tileWidth=n.imageWidth,t.tileHeight=n.imageHeight,t.maximumLevel=n.zoomMax-1,t.imageUrlSubdomains=n.imageUrlSubdomains,t.imageUrlTemplate=n.imageUrl;let i=n.imageryProviders;l(n.imageryProviders)&&(i=n.imageryProviders.filter(o=>o.coverageAreas?.some(r=>l(r.bbox)))),t.attributionList=i}function Ort(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i+=`: ${t.message}`),Do.reportError(void 0,n,l(n)?n._errorEvent:void 0,i,void 0,void 0,void 0,t),new ce(i)}async function Mrt(e,t,n){let i=e.url,o=Ss._metadataCache[i];l(o)||(o=e.fetchJsonp("jsonp"),Ss._metadataCache[i]=o);try{let r=await o;return Rrt(r,t)}catch(r){Ort(e,r,n)}}function Ss(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._mapStyle=y(e.mapStyle,pI.AERIAL),this._mapLayer=e.mapLayer,this._culture=y(e.culture,""),this._key=e.key,this._tileDiscardPolicy=e.tileDiscardPolicy,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new gI),this._proxy=e.proxy,this._credit=new wt(`<a href="https://www.microsoft.com/en-us/maps/bing-maps/product"><img src="${Ss.logoUrl}" title="Bing Imagery"/></a>`),this._tilingScheme=new us({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:e.ellipsoid}),this._tileWidth=void 0,this._tileHeight=void 0,this._maximumLevel=void 0,this._imageUrlTemplate=void 0,this._imageUrlSubdomains=void 0,this._attributionList=void 0,this._errorEvent=new me}Object.defineProperties(Ss.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},key:{get:function(){return this._key}},mapStyle:{get:function(){return this._mapStyle}},mapLayer:{get:function(){return this._mapLayer}},culture:{get:function(){return this._culture}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return l(this.mapLayer)}}});Ss.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.tileProtocol;l(n)?n.length>0&&n[n.length-1]===":"&&(n=n.substr(0,n.length-1)):n=document.location.protocol==="http:"?"http":"https";let i=y(t.mapStyle,pI.AERIAL),o=De.createIfNeeded(e);o.appendForwardSlash();let r={incl:"ImageryProviders",key:t.key,uriScheme:n};l(t.mapLayer)&&(r.mapLayer=t.mapLayer),l(t.culture)&&(r.culture=t.culture);let s=o.getDerivedResource({url:`REST/v1/Imagery/Metadata/${i}`,queryParameters:r}),a=new Ss(t);a._resource=o;let c=new V_e(t);return await Mrt(s,c),c.build(a),a};var Lrt=new re;Ss.prototype.getTileCredits=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(e,t,n,Lrt);return Brt(this._attributionList,n,i)};Ss.prototype.requestImage=function(e,t,n,i){let o=Pl.loadImage(this,Nrt(this,e,t,n,i));if(l(o))return o.catch(function(r){return l(r.blob)&&r.blob.size===0?gI.EMPTY_IMAGE:Promise.reject(r)})};Ss.prototype.pickFeatures=function(e,t,n,i,o){};Ss.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;e&r&&(s|=1),t&r&&(s|=2),i+=s}return i};Ss.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];s&1&&(t|=r),s&2&&(n|=r)}return{x:t,y:n,level:i}};Ss._logoUrl=void 0;Object.defineProperties(Ss,{logoUrl:{get:function(){return l(Ss._logoUrl)||(Ss._logoUrl=nn("Assets/Images/bing_maps_credit.png")),Ss._logoUrl},set:function(e){Ss._logoUrl=e}}});function Nrt(e,t,n,i,o){let r=e._imageUrlTemplate,s=e._imageUrlSubdomains,a=(t+n+i)%s.length;return e._resource.getDerivedResource({url:r,request:o,templateValues:{quadkey:Ss.tileXYToQuadKey(t,n,i),subdomain:s[a],culture:e._culture},queryParameters:{n:"z"}})}var Frt=new re;function Brt(e,t,n){++t;let i=[];for(let o=0,r=e.length;o<r;++o){let s=e[o],a=s.coverageAreas,c=!1;for(let u=0,f=s.coverageAreas.length;!c&&u<f;++u){let d=a[u];if(t>=d.zoomMin&&t<=d.zoomMax){let p=re.intersection(n,d.bbox,Frt);l(p)&&(c=!0)}}c&&i.push(s.credit)}return i}Ss._metadataCache={};var oU=Ss;var U_e=/{[^}]+}/g,z_e={x:zrt,y:Grt,z:qrt,s:Yrt,reverseX:Hrt,reverseY:Wrt,reverseZ:jrt,westDegrees:Xrt,southDegrees:Krt,eastDegrees:Zrt,northDegrees:$rt,westProjected:Qrt,southProjected:Jrt,eastProjected:est,northProjected:tst,width:nst,height:ist},krt=xt(z_e,{i:ost,j:rst,reverseI:sst,reverseJ:ast,longitudeDegrees:lst,latitudeDegrees:ust,longitudeProjected:fst,latitudeProjected:dst,format:mst});function yI(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me;let t=De.createIfNeeded(e.url),n=De.createIfNeeded(e.pickFeaturesUrl);this._resource=t,this._urlSchemeZeroPadding=e.urlSchemeZeroPadding,this._getFeatureInfoFormats=e.getFeatureInfoFormats,this._pickFeaturesResource=n;let i=e.subdomains;Array.isArray(i)?i=i.slice():l(i)&&i.length>0?i=i.split(""):i=["a","b","c"],this._subdomains=i,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._tilingScheme=y(e.tilingScheme,new us({ellipsoid:e.ellipsoid})),this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._rectangle=re.intersection(this._rectangle,this._tilingScheme.rectangle),this._tileDiscardPolicy=e.tileDiscardPolicy;let o=e.credit;typeof o=="string"&&(o=new wt(o)),this._credit=o,this._hasAlphaChannel=y(e.hasAlphaChannel,!0);let r=e.customTags,s=xt(z_e,r),a=xt(krt,r);this._tags=s,this._pickFeaturesTags=a,this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this.enablePickFeatures=y(e.enablePickFeatures,!0)}Object.defineProperties(yI.prototype,{url:{get:function(){return this._resource.url}},urlSchemeZeroPadding:{get:function(){return this._urlSchemeZeroPadding}},pickFeaturesUrl:{get:function(){return this._pickFeaturesResource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return this._hasAlphaChannel}}});yI.prototype.getTileCredits=function(e,t,n){};yI.prototype.requestImage=function(e,t,n,i){return Pl.loadImage(this,Vrt(this,e,t,n,i))};yI.prototype.pickFeatures=function(e,t,n,i,o){if(!this.enablePickFeatures||!l(this._pickFeaturesResource)||this._getFeatureInfoFormats.length===0)return;let r=0,s=this;function a(u,f){return u.callback(f)}function c(){if(r>=s._getFeatureInfoFormats.length)return Promise.resolve([]);let u=s._getFeatureInfoFormats[r],f=Urt(s,e,t,n,i,o,u.format);return++r,u.type==="json"?f.fetchJson().then(u.callback).catch(c):u.type==="xml"?f.fetchXML().then(u.callback).catch(c):u.type==="text"||u.type==="html"?f.fetchText().then(u.callback).catch(c):f.fetch({responseType:u.format}).then(a.bind(void 0,u)).catch(c)}return c()};var rU=!1,Su=new re,sU=!1,xI=new re;function Vrt(e,t,n,i,o){rU=!1,sU=!1;let r=e._resource,s=r.getUrlComponent(!0),a=e._tags,c={},u=s.match(U_e);return l(u)&&u.forEach(function(f){let d=f.substring(1,f.length-1);l(a[d])&&(c[d]=a[d](e,t,n,i))}),r.getDerivedResource({request:o,templateValues:c})}var NY=!1,SE=new U,FY=!1;function Urt(e,t,n,i,o,r,s){rU=!1,sU=!1,NY=!1,FY=!1;let a=e._pickFeaturesResource,c=a.getUrlComponent(!0),u=e._pickFeaturesTags,f={},d=c.match(U_e);return l(d)&&d.forEach(function(p){let g=p.substring(1,p.length-1);l(u[g])&&(f[g]=u[g](e,t,n,i,o,r,s))}),a.getDerivedResource({templateValues:f})}function vE(e,t,n){if(e&&e.urlSchemeZeroPadding&&e.urlSchemeZeroPadding.hasOwnProperty(t)){let i=e.urlSchemeZeroPadding[t];if(typeof i=="string"){let o=i.length;o>1&&(n=n.length>=o?n:new Array(o-n.toString().length+1).join("0")+n)}}return n}function zrt(e,t,n,i){return vE(e,"{x}",t)}function Hrt(e,t,n,i){let o=e.tilingScheme.getNumberOfXTilesAtLevel(i)-t-1;return vE(e,"{reverseX}",o)}function Grt(e,t,n,i){return vE(e,"{y}",n)}function Wrt(e,t,n,i){let o=e.tilingScheme.getNumberOfYTilesAtLevel(i)-n-1;return vE(e,"{reverseY}",o)}function jrt(e,t,n,i){let o=e.maximumLevel,r=l(o)&&i<o?o-i-1:i;return vE(e,"{reverseZ}",r)}function qrt(e,t,n,i){return vE(e,"{z}",i)}function Yrt(e,t,n,i){let o=(t+n+i)%e._subdomains.length;return e._subdomains[o]}function aU(e,t,n,i){rU||(e.tilingScheme.tileXYToRectangle(t,n,i,Su),Su.west=P.toDegrees(Su.west),Su.south=P.toDegrees(Su.south),Su.east=P.toDegrees(Su.east),Su.north=P.toDegrees(Su.north),rU=!0)}function Xrt(e,t,n,i){return aU(e,t,n,i),Su.west}function Krt(e,t,n,i){return aU(e,t,n,i),Su.south}function Zrt(e,t,n,i){return aU(e,t,n,i),Su.east}function $rt(e,t,n,i){return aU(e,t,n,i),Su.north}function cU(e,t,n,i){sU||(e.tilingScheme.tileXYToNativeRectangle(t,n,i,xI),sU=!0)}function Qrt(e,t,n,i){return cU(e,t,n,i),xI.west}function Jrt(e,t,n,i){return cU(e,t,n,i),xI.south}function est(e,t,n,i){return cU(e,t,n,i),xI.east}function tst(e,t,n,i){return cU(e,t,n,i),xI.north}function nst(e,t,n,i){return e.tileWidth}function ist(e,t,n,i){return e.tileHeight}function ost(e,t,n,i,o,r,s){return lU(e,t,n,i,o,r),SE.x}function rst(e,t,n,i,o,r,s){return lU(e,t,n,i,o,r),SE.y}function sst(e,t,n,i,o,r,s){return lU(e,t,n,i,o,r),e.tileWidth-SE.x-1}function ast(e,t,n,i,o,r,s){return lU(e,t,n,i,o,r),e.tileHeight-SE.y-1}var cst=new re,EE=new h;function lU(e,t,n,i,o,r,s){if(NY)return;BY(e,t,n,i,o,r);let a=EE,c=e.tilingScheme.tileXYToNativeRectangle(t,n,i,cst);SE.x=e.tileWidth*(a.x-c.west)/c.width|0,SE.y=e.tileHeight*(c.north-a.y)/c.height|0,NY=!0}function lst(e,t,n,i,o,r,s){return P.toDegrees(o)}function ust(e,t,n,i,o,r,s){return P.toDegrees(r)}function fst(e,t,n,i,o,r,s){return BY(e,t,n,i,o,r),EE.x}function dst(e,t,n,i,o,r,s){return BY(e,t,n,i,o,r),EE.y}var hst=new fe;function BY(e,t,n,i,o,r,s){if(!FY){if(e.tilingScheme.projection instanceof wi)EE.x=P.toDegrees(o),EE.y=P.toDegrees(r);else{let a=hst;a.longitude=o,a.latitude=r,e.tilingScheme.projection.project(a,EE)}FY=!0}}function mst(e,t,n,i,o,r,s){return s}var sc=yI;function Bf(e){sc.call(this,e)}Bf._requestMetadata=async function(e,t,n,i){try{let o=await n.fetchXML();return Bf._metadataSuccess(o,e,t,n,i)}catch(o){if(o instanceof Ym)return Bf._metadataFailure(e,t);throw o}};Bf.fromUrl=async function(e,t){let n=De.createIfNeeded(e);n.appendForwardSlash();let i=n,o=n.getDerivedResource({url:"tilemapresource.xml"});t=y(t,y.EMPTY_OBJECT);let r=await Bf._requestMetadata(t,i,o);return new Bf(r)};l(Object.create)&&(Bf.prototype=Object.create(sc.prototype),Bf.prototype.constructor=Bf);function H_e(e,t){return e.west<t.rectangle.west&&(e.west=t.rectangle.west),e.east>t.rectangle.east&&(e.east=t.rectangle.east),e.south<t.rectangle.south&&(e.south=t.rectangle.south),e.north>t.rectangle.north&&(e.north=t.rectangle.north),e}function G_e(e,t,n){let i=e.positionToTileXY(re.southwest(t),n),o=e.positionToTileXY(re.northeast(t),n);return(Math.abs(o.x-i.x)+1)*(Math.abs(o.y-i.y)+1)>4?0:n}Bf._metadataSuccess=function(e,t,n,i,o){let r=/tileformat/i,s=/tileset/i,a=/tilesets/i,c=/boundingbox/i,u,f,d,p=[],g=e.childNodes[0].childNodes;for(let R=0;R<g.length;R++)if(r.test(g.item(R).nodeName))u=g.item(R);else if(a.test(g.item(R).nodeName)){d=g.item(R);let M=g.item(R).childNodes;for(let L=0;L<M.length;L++)s.test(M.item(L).nodeName)&&p.push(M.item(L))}else c.test(g.item(R).nodeName)&&(f=g.item(R));let m;if(!l(d)||!l(f))throw m=`Unable to find expected tilesets or bbox attributes in ${i.url}.`,l(o)&&Do.reportError(void 0,o,o.errorEvent,m),new ce(m);let x=y(t.fileExtension,u.getAttribute("extension")),b=y(t.tileWidth,parseInt(u.getAttribute("width"),10)),T=y(t.tileHeight,parseInt(u.getAttribute("height"),10)),A=y(t.minimumLevel,parseInt(p[0].getAttribute("order"),10)),C=y(t.maximumLevel,parseInt(p[p.length-1].getAttribute("order"),10)),S=d.getAttribute("profile"),v=t.tilingScheme;if(!l(v))if(S==="geodetic"||S==="global-geodetic")v=new qi({ellipsoid:t.ellipsoid});else if(S==="mercator"||S==="global-mercator")v=new us({ellipsoid:t.ellipsoid});else throw m=`${i.url} specifies an unsupported profile attribute, ${S}.`,l(o)&&Do.reportError(void 0,o,o.errorEvent,m),new ce(m);let D=re.clone(t.rectangle);if(!l(D)){let R,M,L,_;y(t.flipXY,!1)?(L=new U(parseFloat(f.getAttribute("miny")),parseFloat(f.getAttribute("minx"))),_=new U(parseFloat(f.getAttribute("maxy")),parseFloat(f.getAttribute("maxx")))):(L=new U(parseFloat(f.getAttribute("minx")),parseFloat(f.getAttribute("miny"))),_=new U(parseFloat(f.getAttribute("maxx")),parseFloat(f.getAttribute("maxy"))));let w=S==="geodetic"||S==="mercator";if(v.projection instanceof wi||w)R=fe.fromDegrees(L.x,L.y),M=fe.fromDegrees(_.x,_.y);else{let I=v.projection;R=I.unproject(L),M=I.unproject(_)}D=new re(R.longitude,R.latitude,M.longitude,M.latitude)}return D=H_e(D,v),A=G_e(v,D,A),{url:n.getDerivedResource({url:`{z}/{x}/{reverseY}.${x}`}),tilingScheme:v,rectangle:D,tileWidth:b,tileHeight:T,minimumLevel:A,maximumLevel:C,tileDiscardPolicy:t.tileDiscardPolicy,credit:t.credit}};Bf._metadataFailure=function(e,t){let n=y(e.fileExtension,"png"),i=y(e.tileWidth,256),o=y(e.tileHeight,256),r=e.maximumLevel,s=l(e.tilingScheme)?e.tilingScheme:new us({ellipsoid:e.ellipsoid}),a=y(e.rectangle,s.rectangle);a=H_e(a,s);let c=G_e(s,a,e.minimumLevel);return{url:t.getDerivedResource({url:`{z}/{x}/{reverseY}.${n}`}),tilingScheme:s,rectangle:a,tileWidth:i,tileHeight:o,minimumLevel:c,maximumLevel:r,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit}};var ob=Bf;function W_e(e){this.channel=e.channel,this.ellipsoid=e.ellipsoid,this.tilingScheme=void 0,this.version=void 0}W_e.prototype.build=function(e){e._channel=this.channel,e._version=this.version,e._tilingScheme=this.tilingScheme};function pst(e,t){let n;try{n=JSON.parse(e)}catch{n=JSON.parse(e.replace(/([\[\{,])[\n\r ]*([A-Za-z0-9]+)[\n\r ]*:/g,'$1"$2":'))}let i;for(let o=0;o<n.layers.length;o++)if(n.layers[o].id===t.channel){i=n.layers[o];break}if(!l(i)){let o=`Could not find layer with channel (id) of ${t.channel}.`;throw new ce(o)}if(!l(i.version)){let o=`Could not find a version in channel (id) ${t.channel}.`;throw new ce(o)}if(t.version=i.version,l(n.projection)&&n.projection==="flat")t.tilingScheme=new qi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-Math.PI,-Math.PI,Math.PI,Math.PI),ellipsoid:t.ellipsoid});else if(!l(n.projection)||n.projection==="mercator")t.tilingScheme=new us({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,ellipsoid:t.ellipsoid});else{let o=`Unsupported projection ${n.projection}.`;throw new ce(o)}return!0}function _st(e,t,n){let i=`An error occurred while accessing ${t.url}.`;throw l(e)&&l(e.message)&&(i+=`: ${e.message}`),Do.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function gst(e,t,n){try{let i=await e.fetchText();pst(i,t)}catch(i){_st(i,e,n)}}function Rl(e){e=y(e,{}),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=1.9,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._channel=e.channel,this._requestType="ImageryMaps",this._credit=new wt(`<a href="http://www.google.com/enterprise/mapsearth/products/earthenterprise.html"><img src="${Rl.logoUrl}" title="Google Imagery"/></a>`),this._tilingScheme=void 0,this._version=void 0,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=e.maximumLevel,this._errorEvent=new me}Object.defineProperties(Rl.prototype,{url:{get:function(){return this._url}},path:{get:function(){return this._path}},proxy:{get:function(){return this._resource.proxy}},channel:{get:function(){return this._channel}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},version:{get:function(){return this._version}},requestType:{get:function(){return this._requestType}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});Rl.fromUrl=async function(e,t,n){n=y(n,{});let i=y(n.path,"/default_map"),o=De.createIfNeeded(e).getDerivedResource({url:i[0]==="/"?i.substring(1):i});o.appendForwardSlash();let r=o.getDerivedResource({url:"query",queryParameters:{request:"Json",vars:"geeServerDefs",is2d:"t"}}),s=new W_e(n);s.channel=t,await gst(r,s);let a=new Rl(n);return s.build(a),a._resource=o,a._url=e,a._path=i,a};Rl.prototype.getTileCredits=function(e,t,n){};Rl.prototype.requestImage=function(e,t,n,i){let o=this._resource.getDerivedResource({url:"query",request:i,queryParameters:{request:this._requestType,channel:this._channel,version:this._version,x:e,y:t,z:n+1}});return Pl.loadImage(this,o)};Rl.prototype.pickFeatures=function(e,t,n,i,o){};Rl._logoUrl=void 0;Object.defineProperties(Rl,{logoUrl:{get:function(){return l(Rl._logoUrl)||(Rl._logoUrl=nn("Assets/Images/google_earth_credit.png")),Rl._logoUrl},set:function(e){Rl._logoUrl=e}}});var uU=Rl;var yst=/\/$/,j_e=new wt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function wE(e){e=y(e,y.EMPTY_OBJECT);let t=e.mapId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=De.createIfNeeded(y(e.url,"https://{s}.tiles.mapbox.com/v4/"));this._mapId=t,this._accessToken=n;let o=y(e.format,"png");/\./.test(o)||(o=`.${o}`),this._format=o;let r=i.getUrlComponent();yst.test(r)||(r+="/"),r+=`${t}/{z}/{x}/{y}${this._format}`,i.url=r,i.setQueryParameters({access_token:n});let s;l(e.credit)?(s=e.credit,typeof s=="string"&&(s=new wt(s))):s=j_e,this._resource=i,this._imageryProvider=new sc({url:i,credit:s,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(wE.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});wE.prototype.getTileCredits=function(e,t,n){};wE.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};wE.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};wE._defaultCredit=j_e;var fU=wE;function rb(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=y(e.rectangle,re.MAX_VALUE),n=new qi({rectangle:t,numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});this._tilingScheme=n,this._image=void 0,this._texture=void 0,this._hasError=!1,this._errorEvent=new me;let i=e.credit;typeof i=="string"&&(i=new wt(i)),this._credit=i;let o=De.createIfNeeded(e.url);this._resource=o,this._tileWidth=e.tileWidth,this._tileHeight=e.tileHeight}Object.defineProperties(rb.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return 0}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}}});function xst(e,t,n,i){let o=`Failed to load image ${e.url}`;l(t)&&l(t.message)&&(o+=`: ${t.message}`);let r=Do.reportError(i,n,l(n)?n._errorEvent:void 0,o,0,0,0,t);if(r.retry)return kY(e,n,r);throw l(n)&&(n._hasError=!0),new ce(o)}async function kY(e,t,n){try{return await Pl.loadImage(null,e)}catch(i){return xst(e,i,t,n)}}rb.fromUrl=async function(e,t){let n=De.createIfNeeded(e),i=await kY(n);t=y(t,y.EMPTY_OBJECT);let o=new rb({...t,url:e,tileWidth:i.width,tileHeight:i.height});return o._image=i,o};rb.prototype.getTileCredits=function(e,t,n){};rb.prototype.requestImage=async function(e,t,n,i){if(!this._hasError&&!l(this._image)){let o=await kY(this._resource,this);return this._image=o,Do.reportSuccess(this._errorEvent),o}return this._image};rb.prototype.pickFeatures=function(e,t,n,i,o){};var dU=rb;function bst(e,t,n){this.type=e,l(t)||(e==="json"?t="application/json":e==="xml"?t="text/xml":e==="html"?t="text/html":e==="text"&&(t="text/plain")),this.format=t,l(n)||(e==="json"?n=Tst:e==="xml"?n=Sst:(e==="html"||e==="text")&&(n=q_e)),this.callback=n}function Tst(e){let t=[],n=e.features;for(let i=0;i<n.length;++i){let o=n[i],r=new Cm;if(r.data=o,r.properties=o.properties,r.configureNameFromProperties(o.properties),r.configureDescriptionFromProperties(o.properties),l(o.geometry)&&o.geometry.type==="Point"){let s=o.geometry.coordinates[0],a=o.geometry.coordinates[1];r.position=fe.fromDegrees(s,a)}t.push(r)}return t}var VY="http://www.mapinfo.com/mxp",Ast="http://www.esri.com/wms",Cst="http://www.opengis.net/wfs",Est="http://www.opengis.net/gml";function Sst(e){let t=e.documentElement;if(t.localName==="MultiFeatureCollection"&&t.namespaceURI===VY)return vst(e);if(t.localName==="FeatureInfoResponse"&&t.namespaceURI===Ast)return wst(e);if(t.localName==="FeatureCollection"&&t.namespaceURI===Cst)return Dst(e);if(t.localName==="ServiceExceptionReport")throw new ce(new XMLSerializer().serializeToString(t));return t.localName==="msGMLOutput"?Ist(e):Pst(e)}function vst(e){let t=[],i=e.documentElement.getElementsByTagNameNS(VY,"Feature");for(let o=0;o<i.length;++o){let r=i[o],s={},a=r.getElementsByTagNameNS(VY,"Val");for(let u=0;u<a.length;++u){let f=a[u];if(f.hasAttribute("ref")){let d=f.getAttribute("ref"),p=f.textContent.trim();s[d]=p}}let c=new Cm;c.data=r,c.properties=s,c.configureNameFromProperties(s),c.configureDescriptionFromProperties(s),t.push(c)}return t}function wst(e){let t=e.documentElement,n=[],i,o=t.getElementsByTagNameNS("*","FIELDS");if(o.length>0)for(let r=0;r<o.length;++r){let s=o[r];i={};let a=s.attributes;for(let c=0;c<a.length;++c){let u=a[c];i[u.name]=u.value}n.push(hU(s,i))}else{let r=t.getElementsByTagNameNS("*","FeatureInfo");for(let s=0;s<r.length;++s){let a=r[s];i={};let c=a.childNodes;for(let u=0;u<c.length;++u){let f=c[u];f.nodeType===Node.ELEMENT_NODE&&(i[f.localName]=f.textContent)}n.push(hU(a,i))}}return n}function Dst(e){let t=[],i=e.documentElement.getElementsByTagNameNS(Est,"featureMember");for(let o=0;o<i.length;++o){let r=i[o],s={};UY(r,s),t.push(hU(r,s))}return t}function Ist(e){let t=[],n,i=e.documentElement.childNodes;for(let r=0;r<i.length;r++)if(i[r].nodeType===Node.ELEMENT_NODE){n=i[r];break}if(!l(n))throw new ce("Unable to find first child of the feature info xml document");let o=n.childNodes;for(let r=0;r<o.length;++r){let s=o[r];if(s.nodeType===Node.ELEMENT_NODE){let a={};UY(s,a),t.push(hU(s,a))}}return t}function UY(e,t){let n=!0;for(let i=0;i<e.childNodes.length;++i){let o=e.childNodes[i];o.nodeType===Node.ELEMENT_NODE&&(n=!1),!(o.localName==="Point"||o.localName==="LineString"||o.localName==="Polygon"||o.localName==="boundedBy")&&o.hasChildNodes()&&UY(o,t)&&(t[o.localName]=o.textContent)}return n}function hU(e,t){let n=new Cm;return n.data=e,n.properties=t,n.configureNameFromProperties(t),n.configureDescriptionFromProperties(t),n}function Pst(e){let t=new XMLSerializer().serializeToString(e),n=document.createElement("div"),i=document.createElement("pre");i.textContent=t,n.appendChild(i);let o=new Cm;return o.data=e,o.description=n.innerHTML,[o]}var Rst=/<body>\s*<\/body>/im,Ost=/<ServiceExceptionReport([\s\S]*)<\/ServiceExceptionReport>/im,Mst=/<title>([\s\S]*)<\/title>/im;function q_e(e){if(Rst.test(e)||Ost.test(e))return;let t,n=Mst.exec(e);n&&n.length>1&&(t=n[1]);let i=new Cm;return i.name=t,i.description=e,i.data=e,[i]}var DE=bst;function bI(e){e=y(e,y.EMPTY_OBJECT),this._tileCache={},this._tilesRequestedForInterval=[];let t=this._clock=e.clock;this._times=e.times,this._requestImageFunction=e.requestImageFunction,this._reloadFunction=e.reloadFunction,this._currentIntervalIndex=-1,t.onTick.addEventListener(this._clockOnTick,this),this._clockOnTick(t)}Object.defineProperties(bI.prototype,{clock:{get:function(){return this._clock},set:function(e){this._clock!==e&&(this._clock=e,this._clockOnTick(e),this._reloadFunction())}},times:{get:function(){return this._times},set:function(e){this._times!==e&&(this._times=e,this._clockOnTick(this._clock),this._reloadFunction())}},currentInterval:{get:function(){return this._times.get(this._currentIntervalIndex)}}});bI.prototype.getFromCache=function(e,t,n,i){let o=Y_e(e,t,n),r,s=this._tileCache[this._currentIntervalIndex];if(l(s)&&l(s[o])){let a=s[o];r=a.promise.catch(function(c){throw i.state=a.request.state,c}),delete s[o]}return r};bI.prototype.checkApproachingInterval=function(e,t,n,i){let o=Y_e(e,t,n),r=this._tilesRequestedForInterval,s=X_e(this),a={key:o,priorityFunction:i.priorityFunction};(!l(s)||!K_e(this,a,s))&&r.push(a),r.length>=512&&r.splice(0,256)};bI.prototype._clockOnTick=function(e){let t=e.currentTime,i=this._times.indexOf(t),o=this._currentIntervalIndex;if(i!==o){let s=this._tileCache[o];for(let a in s)s.hasOwnProperty(a)&&s[a].request.cancel();delete this._tileCache[o],this._tilesRequestedForInterval=[],this._currentIntervalIndex=i,this._reloadFunction();return}let r=X_e(this);if(l(r)){let s=this._tilesRequestedForInterval,a=!0;for(;a&&s.length!==0;){let c=s.pop();a=K_e(this,c,r),a||s.push(c)}}};function Y_e(e,t,n){return`${e}-${t}-${n}`}function Lst(e){let t=e.split("-");if(t.length===3)return{x:Number(t[0]),y:Number(t[1]),level:Number(t[2])}}function X_e(e){let t=e._times;if(!l(t))return;let n=e._clock,i=n.currentTime,o=n.canAnimate&&n.shouldAnimate,r=n.multiplier;if(!o&&r!==0)return;let s,a=t.indexOf(i);if(a<0)return;let c=t.get(a);return r>0?(s=K.secondsDifference(c.stop,i),++a):(s=K.secondsDifference(c.start,i),--a),s/=r,a>=0&&s<=5?t.get(a):void 0}function K_e(e,t,n){let i=e._times.indexOf(n.start),o=e._tileCache,r=o[i];l(r)||(r=o[i]={});let s=t.key;if(l(r[s]))return!0;let a=Lst(s),c=new tr({throttle:!1,throttleByServer:!0,type:ps.IMAGERY,priorityFunction:t.priorityFunction}),u=e._requestImageFunction(a.x,a.y,a.level,c,n);return l(u)?(r[s]={promise:u,request:c},!0):!1}var IE=bI;var Nst=[3034,3035,3042,3043,3044],Fst=[4471,4559];function Kd(e){if(e=y(e,y.EMPTY_OBJECT),l(e.times)&&!l(e.clock))throw new he("options.times was specified, so options.clock is required.");this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._getFeatureInfoUrl=y(e.getFeatureInfoUrl,e.url);let t=De.createIfNeeded(e.url),n=De.createIfNeeded(this._getFeatureInfoUrl);t.setQueryParameters(Kd.DefaultParameters,!0),n.setQueryParameters(Kd.GetFeatureInfoDefaultParameters,!0),l(e.parameters)&&t.setQueryParameters(Z_e(e.parameters)),l(e.getFeatureInfoParameters)&&n.setQueryParameters(Z_e(e.getFeatureInfoParameters));let i=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new IE({clock:e.clock,times:e.times,requestImageFunction:function(s,a,c,u,f){return $_e(i,s,a,c,u,f)},reloadFunction:function(){l(i._reload)&&i._reload()}}));let o={};if(o.layers=e.layers,o.bbox="{westProjected},{southProjected},{eastProjected},{northProjected}",o.width="{width}",o.height="{height}",parseFloat(t.queryParameters.version)>=1.3){o.crs=y(e.crs,e.tilingScheme&&e.tilingScheme.projection instanceof Ii?"EPSG:3857":"CRS:84");let s=o.crs.split(":");if(s[0]==="EPSG"&&s.length===2){let a=Number(s[1]);(a>=4e3&&a<5e3&&!Fst.includes(a)||Nst.includes(a))&&(o.bbox="{southProjected},{westProjected},{northProjected},{eastProjected}")}}else o.srs=y(e.srs,e.tilingScheme&&e.tilingScheme.projection instanceof Ii?"EPSG:3857":"EPSG:4326");t.setQueryParameters(o,!0),n.setQueryParameters(o,!0);let r={query_layers:e.layers,info_format:"{format}"};parseFloat(n.queryParameters.version)>=1.3?(r.i="{i}",r.j="{j}"):(r.x="{i}",r.y="{j}"),n.setQueryParameters(r,!0),this._resource=t,this._pickFeaturesResource=n,this._layers=e.layers,this._tileProvider=new sc({url:t,pickFeaturesUrl:n,tilingScheme:y(e.tilingScheme,new qi({ellipsoid:e.ellipsoid})),rectangle:e.rectangle,tileWidth:e.tileWidth,tileHeight:e.tileHeight,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,subdomains:e.subdomains,tileDiscardPolicy:e.tileDiscardPolicy,credit:e.credit,getFeatureInfoFormats:y(e.getFeatureInfoFormats,Kd.DefaultGetFeatureInfoFormats),enablePickFeatures:e.enablePickFeatures})}function $_e(e,t,n,i,o,r){let s=l(r)?r.data:void 0,a=e._tileProvider;return l(s)&&a._resource.setQueryParameters(s),a.requestImage(t,n,i,o)}function Bst(e,t,n,i,o,r,s){let a=l(s)?s.data:void 0,c=e._tileProvider;return l(a)&&c._pickFeaturesResource.setQueryParameters(a),c.pickFeatures(t,n,i,o,r)}Object.defineProperties(Kd.prototype,{url:{get:function(){return this._resource._url}},proxy:{get:function(){return this._resource.proxy}},layers:{get:function(){return this._layers}},tileWidth:{get:function(){return this._tileProvider.tileWidth}},tileHeight:{get:function(){return this._tileProvider.tileHeight}},maximumLevel:{get:function(){return this._tileProvider.maximumLevel}},minimumLevel:{get:function(){return this._tileProvider.minimumLevel}},tilingScheme:{get:function(){return this._tileProvider.tilingScheme}},rectangle:{get:function(){return this._tileProvider.rectangle}},tileDiscardPolicy:{get:function(){return this._tileProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._tileProvider.errorEvent}},credit:{get:function(){return this._tileProvider.credit}},hasAlphaChannel:{get:function(){return this._tileProvider.hasAlphaChannel}},enablePickFeatures:{get:function(){return this._tileProvider.enablePickFeatures},set:function(e){this._tileProvider.enablePickFeatures=e}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},getFeatureInfoUrl:{get:function(){return this._getFeatureInfoUrl}}});Kd.prototype.getTileCredits=function(e,t,n){return this._tileProvider.getTileCredits(e,t,n)};Kd.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=$_e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};Kd.prototype.pickFeatures=function(e,t,n,i,o){let r=this._timeDynamicImagery,s=l(r)?r.currentInterval:void 0;return Bst(this,e,t,n,i,o,s)};Kd.DefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetMap",styles:"",format:"image/jpeg"});Kd.GetFeatureInfoDefaultParameters=Object.freeze({service:"WMS",version:"1.1.1",request:"GetFeatureInfo"});Kd.DefaultGetFeatureInfoFormats=Object.freeze([Object.freeze(new DE("json","application/json")),Object.freeze(new DE("xml","text/xml")),Object.freeze(new DE("text","text/html"))]);function Z_e(e){let t={};for(let n in e)e.hasOwnProperty(n)&&(t[n.toLowerCase()]=e[n]);return t}var mU=Kd;var kst=Object.freeze({service:"WMTS",version:"1.0.0",request:"GetTile"});function TI(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let t=De.createIfNeeded(e.url),n=e.style,i=e.tileMatrixSetID,o=t.url,r=o.match(/{/g);if(!l(r)||r.length===1&&/{s}/.test(o))t.setQueryParameters(kst),this._useKvp=!0;else{let d={style:n,Style:n,TileMatrixSet:i};t.setTemplateValues(d),this._useKvp=!1}this._resource=t,this._layer=e.layer,this._style=n,this._tileMatrixSetID=i,this._tileMatrixLabels=e.tileMatrixLabels,this._format=y(e.format,"image/jpeg"),this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new us({ellipsoid:e.ellipsoid}),this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._minimumLevel=y(e.minimumLevel,0),this._maximumLevel=e.maximumLevel,this._rectangle=y(e.rectangle,this._tilingScheme.rectangle),this._dimensions=e.dimensions;let s=this;this._reload=void 0,l(e.times)&&(this._timeDynamicImagery=new IE({clock:e.clock,times:e.times,requestImageFunction:function(d,p,g,m,x){return Q_e(s,d,p,g,m,x)},reloadFunction:function(){l(s._reload)&&s._reload()}}));let a=this._tilingScheme.positionToTileXY(re.southwest(this._rectangle),this._minimumLevel),c=this._tilingScheme.positionToTileXY(re.northeast(this._rectangle),this._minimumLevel),u=(Math.abs(c.x-a.x)+1)*(Math.abs(c.y-a.y)+1);this._errorEvent=new me;let f=e.credit;this._credit=typeof f=="string"?new wt(f):f,this._subdomains=e.subdomains,Array.isArray(this._subdomains)?this._subdomains=this._subdomains.slice():l(this._subdomains)&&this._subdomains.length>0?this._subdomains=this._subdomains.split(""):this._subdomains=["a","b","c"]}function Q_e(e,t,n,i,o,r){let s=e._tileMatrixLabels,a=l(s)?s[i]:i.toString(),c=e._subdomains,u=e._dimensions,f=l(r)?r.data:void 0,d,p;if(!e._useKvp)p={TileMatrix:a,TileRow:n.toString(),TileCol:t.toString(),s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({request:o}),d.setTemplateValues(p),l(u)&&d.setTemplateValues(u),l(f)&&d.setTemplateValues(f);else{let g={};g.tilematrix=a,g.layer=e._layer,g.style=e._style,g.tilerow=n,g.tilecol=t,g.tilematrixset=e._tileMatrixSetID,g.format=e._format,l(u)&&(g=xt(g,u)),l(f)&&(g=xt(g,f)),p={s:c[(t+n+i)%c.length]},d=e._resource.getDerivedResource({queryParameters:g,request:o}),d.setTemplateValues(p)}return Pl.loadImage(e,d)}Object.defineProperties(TI.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return this._minimumLevel}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},format:{get:function(){return this._format}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!0}},clock:{get:function(){return this._timeDynamicImagery.clock},set:function(e){this._timeDynamicImagery.clock=e}},times:{get:function(){return this._timeDynamicImagery.times},set:function(e){this._timeDynamicImagery.times=e}},dimensions:{get:function(){return this._dimensions},set:function(e){this._dimensions!==e&&(this._dimensions=e,l(this._reload)&&this._reload())}}});TI.prototype.getTileCredits=function(e,t,n){};TI.prototype.requestImage=function(e,t,n,i){let o,r=this._timeDynamicImagery,s;return l(r)&&(s=r.currentInterval,o=r.getFromCache(e,t,n,i)),l(o)||(o=Q_e(this,e,t,n,i,s)),l(o)&&l(r)&&r.checkApproachingInterval(e,t,n,i),o};TI.prototype.pickFeatures=function(e,t,n,i,o){};var pU=TI;var Vst={ARCGIS_MAPSERVER:Fy.fromUrl,BING:async(e,t)=>oU.fromUrl(e,t),GOOGLE_EARTH:async(e,t)=>{let n=t.channel;return delete t.channel,uU.fromUrl(e,n,t)},MAPBOX:(e,t)=>new fU({url:e,...t}),SINGLE_TILE:dU.fromUrl,TMS:ob.fromUrl,URL_TEMPLATE:(e,t)=>new sc({url:e,...t}),WMS:(e,t)=>new mU({url:e,...t}),WMTS:(e,t)=>new pU({url:e,...t})};function vm(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileCredits=void 0,this._errorEvent=new me}Object.defineProperties(vm.prototype,{rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}},proxy:{get:function(){}}});vm.fromAssetId=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=ef._createEndpointResource(e,t),i=e.toString()+t.accessToken+t.server,o=vm._endpointCache[i];l(o)||(o=n.fetchJson(),vm._endpointCache[i]=o);let r=await o;if(r.type!=="IMAGERY")throw new ce(`Cesium ion asset ${e} is not an imagery asset.`);let s,a=r.externalType;if(!l(a))s=await ob.fromUrl(new ef(r,n));else{let u=Vst[a];if(!l(u))throw new ce(`Unrecognized Cesium ion imagery type: ${a}`);let f={...r.options},d=f.url;delete f.url,s=await u(d,f)}let c=new vm(t);return s.errorEvent.addEventListener(function(u){u.provider=c,c._errorEvent.raiseEvent(u)}),c._tileCredits=ef.getCreditsFromEndpoint(r,n),c._imageryProvider=s,c};vm.prototype.getTileCredits=function(e,t,n){let i=this._imageryProvider.getTileCredits(e,t,n);return l(i)?this._tileCredits.concat(i):this._tileCredits};vm.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};vm.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};vm._endpointCache={};var By=vm;var Ust={AERIAL:2,AERIAL_WITH_LABELS:3,ROAD:4},ky=Object.freeze(Ust);function zst(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.style,ky.AERIAL);return By.fromAssetId(t)}var Vy=zst;var _U=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(u_texture, v_textureCoordinates); +} +`;var gU=`in vec4 position; +in float webMercatorT; + +uniform vec2 u_textureDimensions; + +out vec2 v_textureCoordinates; + +void main() +{ + v_textureCoordinates = vec2(position.x, webMercatorT); + gl_Position = czm_viewportOrthographic * (position * vec4(u_textureDimensions, 1.0, 1.0)); +} +`;function PE(e,t,n,i,o){if(this.imageryLayer=e,this.x=t,this.y=n,this.level=i,this.request=void 0,i!==0){let r=t/2|0,s=n/2|0,a=i-1;this.parent=e.getImageryFromCache(r,s,a)}this.state=si.UNLOADED,this.imageUrl=void 0,this.image=void 0,this.texture=void 0,this.textureWebMercator=void 0,this.credits=void 0,this.referenceCount=0,!l(o)&&e.ready&&(o=e.imageryProvider.tilingScheme.tileXYToRectangle(t,n,i)),this.rectangle=o}PE.createPlaceholder=function(e){let t=new PE(e,0,0,0);return t.addReference(),t.state=si.PLACEHOLDER,t};PE.prototype.addReference=function(){++this.referenceCount};PE.prototype.releaseReference=function(){return--this.referenceCount,this.referenceCount===0?(this.imageryLayer.removeImageryFromCache(this),l(this.parent)&&this.parent.releaseReference(),l(this.image)&&l(this.image.destroy)&&this.image.destroy(),l(this.texture)&&this.texture.destroy(),l(this.textureWebMercator)&&this.texture!==this.textureWebMercator&&this.textureWebMercator.destroy(),ue(this),0):this.referenceCount};PE.prototype.processStateMachine=function(e,t,n){this.state===si.UNLOADED&&!n&&(this.state=si.TRANSITIONING,this.imageryLayer._requestImagery(this)),this.state===si.RECEIVED&&(this.state=si.TRANSITIONING,this.imageryLayer._createTexture(e.context,this));let i=this.state===si.READY&&t&&!this.texture;(this.state===si.TEXTURE_LOADED||i)&&(this.state=si.TRANSITIONING,this.imageryLayer._reprojectTexture(e,this,t))};var AI=PE;function zY(e,t,n){this.readyImagery=void 0,this.loadingImagery=e,this.textureCoordinateRectangle=t,this.textureTranslationAndScale=void 0,this.useWebMercatorT=n}zY.prototype.freeResources=function(){l(this.readyImagery)&&this.readyImagery.releaseReference(),l(this.loadingImagery)&&this.loadingImagery.releaseReference()};zY.prototype.processStateMachine=function(e,t,n){let i=this.loadingImagery,o=i.imageryLayer;if(i.processStateMachine(t,!this.useWebMercatorT,n),i.state===si.READY)return l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=this.loadingImagery,this.loadingImagery=void 0,this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this),!0;let r=i.parent,s;for(;l(r)&&(r.state!==si.READY||!this.useWebMercatorT&&!l(r.texture));)r.state!==si.FAILED&&r.state!==si.INVALID&&(s=s||r),r=r.parent;return this.readyImagery!==r&&(l(this.readyImagery)&&this.readyImagery.releaseReference(),this.readyImagery=r,l(r)&&(r.addReference(),this.textureTranslationAndScale=o._calculateTextureTranslationAndScale(e,this))),i.state===si.FAILED||i.state===si.INVALID?l(s)?(s.processStateMachine(t,!this.useWebMercatorT,n),!1):!0:!1};var CI=zY;function pi(e,t){this._imageryProvider=e,this._readyEvent=new me,this._errorEvent=new me,t=y(t,y.EMPTY_OBJECT),e=y(e,y.EMPTY_OBJECT),this.alpha=y(t.alpha,y(e._defaultAlpha,1)),this.nightAlpha=y(t.nightAlpha,y(e._defaultNightAlpha,1)),this.dayAlpha=y(t.dayAlpha,y(e._defaultDayAlpha,1)),this.brightness=y(t.brightness,y(e._defaultBrightness,pi.DEFAULT_BRIGHTNESS)),this.contrast=y(t.contrast,y(e._defaultContrast,pi.DEFAULT_CONTRAST)),this.hue=y(t.hue,y(e._defaultHue,pi.DEFAULT_HUE)),this.saturation=y(t.saturation,y(e._defaultSaturation,pi.DEFAULT_SATURATION)),this.gamma=y(t.gamma,y(e._defaultGamma,pi.DEFAULT_GAMMA)),this.splitDirection=y(t.splitDirection,pi.DEFAULT_SPLIT),this.minificationFilter=y(t.minificationFilter,y(e._defaultMinificationFilter,pi.DEFAULT_MINIFICATION_FILTER)),this.magnificationFilter=y(t.magnificationFilter,y(e._defaultMagnificationFilter,pi.DEFAULT_MAGNIFICATION_FILTER)),this.show=y(t.show,!0),this._minimumTerrainLevel=t.minimumTerrainLevel,this._maximumTerrainLevel=t.maximumTerrainLevel,this._rectangle=y(t.rectangle,re.MAX_VALUE),this._maximumAnisotropy=t.maximumAnisotropy,this._imageryCache={},this._skeletonPlaceholder=new CI(AI.createPlaceholder(this)),this._show=!0,this._layerIndex=-1,this._isBaseLayer=!1,this._requestImageError=void 0,this._reprojectComputeCommands=[],this.cutoutRectangle=t.cutoutRectangle,this.colorToAlpha=t.colorToAlpha,this.colorToAlphaThreshold=y(t.colorToAlphaThreshold,pi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD)}Object.defineProperties(pi.prototype,{imageryProvider:{get:function(){return this._imageryProvider}},ready:{get:function(){return l(this._imageryProvider)}},errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},rectangle:{get:function(){return this._rectangle}}});pi.DEFAULT_BRIGHTNESS=1;pi.DEFAULT_CONTRAST=1;pi.DEFAULT_HUE=0;pi.DEFAULT_SATURATION=1;pi.DEFAULT_GAMMA=1;pi.DEFAULT_SPLIT=zr.NONE;pi.DEFAULT_MINIFICATION_FILTER=$t.LINEAR;pi.DEFAULT_MAGNIFICATION_FILTER=di.LINEAR;pi.DEFAULT_APPLY_COLOR_TO_ALPHA_THRESHOLD=.004;pi.fromProviderAsync=function(e,t){let n=new pi(void 0,t);return qst(n,Promise.resolve(e)),n};pi.fromWorldImagery=function(e){return e=y(e,y.EMPTY_OBJECT),pi.fromProviderAsync(Vy({style:e.style}),e)};pi.prototype.isBaseLayer=function(){return this._isBaseLayer};pi.prototype.isDestroyed=function(){return!1};pi.prototype.destroy=function(){return ue(this)};var tge=new re,J_e=new re,HY=new re,nge=new re;pi.prototype.getImageryRectangle=function(){let e=this._imageryProvider,t=this._rectangle;return re.intersection(e.rectangle,t)};pi.prototype._createTileImagerySkeletons=function(e,t,n){let i=e.data;if(!l(t)||l(this._minimumTerrainLevel)&&e.level<this._minimumTerrainLevel||l(this._maximumTerrainLevel)&&e.level>this._maximumTerrainLevel)return!1;l(n)||(n=i.imagery.length);let o=this._imageryProvider;if(!this.ready)return this._skeletonPlaceholder.loadingImagery.addReference(),i.imagery.splice(n,0,this._skeletonPlaceholder),!0;let r=o.tilingScheme.projection instanceof Ii&&e.rectangle.north<Ii.MaximumLatitude&&e.rectangle.south>-Ii.MaximumLatitude,s=re.intersection(o.rectangle,this._rectangle,tge),a=re.intersection(e.rectangle,s,J_e);if(!l(a)){if(!this.isBaseLayer())return!1;let w=s,I=e.rectangle;a=J_e,I.south>=w.north?a.north=a.south=w.north:I.north<=w.south?a.north=a.south=w.south:(a.south=Math.max(I.south,w.south),a.north=Math.min(I.north,w.north)),I.west>=w.east?a.west=a.east=w.east:I.east<=w.west?a.west=a.east=w.west:(a.west=Math.max(I.west,w.west),a.east=Math.min(I.east,w.east))}let c=0;a.south>0?c=a.south:a.north<0&&(c=a.north);let f=1*t.getLevelMaximumGeometricError(e.level),d=Wst(this,f,c);d=Math.max(0,d);let p=o.maximumLevel;if(d>p&&(d=p),l(o.minimumLevel)){let w=o.minimumLevel;d<w&&(d=w)}let g=o.tilingScheme,m=g.positionToTileXY(re.northwest(a),d),x=g.positionToTileXY(re.southeast(a),d),b=e.rectangle.width/512,T=e.rectangle.height/512,A=g.tileXYToRectangle(m.x,m.y,d);Math.abs(A.south-e.rectangle.north)<T&&m.y<x.y&&++m.y,Math.abs(A.east-e.rectangle.west)<b&&m.x<x.x&&++m.x;let C=g.tileXYToRectangle(x.x,x.y,d);Math.abs(C.north-e.rectangle.south)<T&&x.y>m.y&&--x.y,Math.abs(C.west-e.rectangle.east)<b&&x.x>m.x&&--x.x;let S=re.clone(e.rectangle,nge),v=g.tileXYToRectangle(m.x,m.y,d),D=re.intersection(v,s,HY),O;r?(g.rectangleToNativeRectangle(S,S),g.rectangleToNativeRectangle(v,v),g.rectangleToNativeRectangle(D,D),g.rectangleToNativeRectangle(s,s),O=g.tileXYToNativeRectangle.bind(g),b=S.width/512,T=S.height/512):O=g.tileXYToRectangle.bind(g);let R,M=0,L=1,_;!this.isBaseLayer()&&Math.abs(D.west-S.west)>=b&&(M=Math.min(1,(D.west-S.west)/S.width)),!this.isBaseLayer()&&Math.abs(D.north-S.north)>=T&&(L=Math.max(0,(D.north-S.south)/S.height));let E=L;for(let w=m.x;w<=x.x;w++)if(R=M,v=O(w,m.y,d),D=re.simpleIntersection(v,s,HY),!!l(D)){M=Math.min(1,(D.east-S.west)/S.width),w===x.x&&(this.isBaseLayer()||Math.abs(D.east-S.east)<b)&&(M=1),L=E;for(let I=m.y;I<=x.y;I++){if(_=L,v=O(w,I,d),D=re.simpleIntersection(v,s,HY),!l(D))continue;L=Math.max(0,(D.south-S.south)/S.height),I===x.y&&(this.isBaseLayer()||Math.abs(D.south-S.south)<T)&&(L=0);let N=new oe(R,L,M,_),B=this.getImageryFromCache(w,I,d);i.imagery.splice(n,0,new CI(B,N,r)),++n}}return!0};pi.prototype._calculateTextureTranslationAndScale=function(e,t){let n=t.readyImagery.rectangle,i=e.rectangle;if(t.useWebMercatorT){let c=t.readyImagery.imageryLayer.imageryProvider.tilingScheme;n=c.rectangleToNativeRectangle(n,tge),i=c.rectangleToNativeRectangle(i,nge)}let o=i.width,r=i.height,s=o/n.width,a=r/n.height;return new oe(s*(i.west-n.west)/o,a*(i.south-n.south)/r,s,a)};pi.prototype._requestImagery=function(e){let t=this._imageryProvider,n=this;function i(s){if(!l(s))return o();e.image=s,e.state=si.RECEIVED,e.request=void 0,Do.reportSuccess(n._requestImageError)}function o(s){if(e.request.state===Zn.CANCELLED){e.state=si.UNLOADED,e.request=void 0;return}e.state=si.FAILED,e.request=void 0;let a=`Failed to obtain image tile X: ${e.x} Y: ${e.y} Level: ${e.level}.`;n._requestImageError=Do.reportError(n._requestImageError,t,t.errorEvent,a,e.x,e.y,e.level,s),n._requestImageError.retry&&r()}function r(){let s=new tr({throttle:!1,throttleByServer:!0,type:ps.IMAGERY});e.request=s,e.state=si.TRANSITIONING;let a=t.requestImage(e.x,e.y,e.level,s);if(!l(a)){e.state=si.UNLOADED,e.request=void 0;return}l(t.getTileCredits)&&(e.credits=t.getTileCredits(e.x,e.y,e.level)),a.then(function(c){i(c)}).catch(function(c){o(c)})}r()};pi.prototype._createTextureWebGL=function(e,t){let n=new Qt({minificationFilter:this.minificationFilter,magnificationFilter:this.magnificationFilter}),i=t.image;return l(i.internalFormat)?new Ot({context:e,pixelFormat:i.internalFormat,width:i.width,height:i.height,source:{arrayBufferView:i.bufferView},sampler:n}):new Ot({context:e,source:i,pixelFormat:this._imageryProvider.hasAlphaChannel?it.RGBA:it.RGB,sampler:n})};pi.prototype._createTexture=function(e,t){let n=this._imageryProvider,i=t.image;if(l(n.tileDiscardPolicy)){let r=n.tileDiscardPolicy;if(l(r)){if(!r.isReady()){t.state=si.RECEIVED;return}if(r.shouldDiscardImage(i)){t.state=si.INVALID;return}}}let o=this._createTextureWebGL(e,t);n.tilingScheme.projection instanceof Ii?t.textureWebMercator=o:t.texture=o,t.image=void 0,t.state=si.TEXTURE_LOADED};function ege(e,t,n){return`${e}:${t}:${n}`}pi.prototype._finalizeReprojectTexture=function(e,t){let n=this.minificationFilter,i=this.magnificationFilter;if(n===$t.LINEAR&&i===di.LINEAR&&!it.isCompressedFormat(t.pixelFormat)&&P.isPowerOfTwo(t.width)&&P.isPowerOfTwo(t.height)){n=$t.LINEAR_MIPMAP_LINEAR;let r=zt.maximumTextureFilterAnisotropy,s=Math.min(r,y(this._maximumAnisotropy,r)),a=ege(n,i,s),c=e.cache.imageryLayerMipmapSamplers;l(c)||(c={},e.cache.imageryLayerMipmapSamplers=c);let u=c[a];l(u)||(u=c[a]=new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i,maximumAnisotropy:s})),t.generateMipmap(ep.NICEST),t.sampler=u}else{let r=ege(n,i,0),s=e.cache.imageryLayerNonMipmapSamplers;l(s)||(s={},e.cache.imageryLayerNonMipmapSamplers=s);let a=s[r];l(a)||(a=s[r]=new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i})),t.sampler=a}};pi.prototype._reprojectTexture=function(e,t,n){let i=t.textureWebMercator||t.texture,o=t.rectangle,r=e.context;if(n=y(n,!0),n&&!(this._imageryProvider.tilingScheme.projection instanceof wi)&&o.width/i.width>1e-5){let s=this;t.addReference();let a=new ol({persists:!0,owner:this,preExecute:function(c){Gst(c,r,i,t.rectangle)},postExecute:function(c){t.texture=c,s._finalizeReprojectTexture(r,c),t.state=si.READY,t.releaseReference()},canceled:function(){t.state=si.TEXTURE_LOADED,t.releaseReference()}});this._reprojectComputeCommands.push(a)}else n&&(t.texture=i),this._finalizeReprojectTexture(r,i),t.state=si.READY};pi.prototype.queueReprojectionCommands=function(e){let t=this._reprojectComputeCommands,n=t.length;for(let i=0;i<n;++i)e.commandList.push(t[i]);t.length=0};pi.prototype.cancelReprojections=function(){this._reprojectComputeCommands.forEach(function(e){l(e.canceled)&&e.canceled()}),this._reprojectComputeCommands.length=0};pi.prototype.getImageryFromCache=function(e,t,n,i){let o=ige(e,t,n),r=this._imageryCache[o];return l(r)||(r=new AI(this,e,t,n,i),this._imageryCache[o]=r),r.addReference(),r};pi.prototype.removeImageryFromCache=function(e){let t=ige(e.x,e.y,e.level);delete this._imageryCache[t]};function ige(e,t,n){return JSON.stringify([e,t,n])}var yU={u_textureDimensions:function(){return this.textureDimensions},u_texture:function(){return this.texture},textureDimensions:new U,texture:void 0},Hst=jt.supportsTypedArrays()?new Float32Array(2*64):void 0;function Gst(e,t,n,i){let o=t.cache.imageryLayer_reproject;if(!l(o)){o=t.cache.imageryLayer_reproject={vertexArray:void 0,shaderProgram:void 0,sampler:void 0,destroy:function(){l(this.framebuffer)&&this.framebuffer.destroy(),l(this.vertexArray)&&this.vertexArray.destroy(),l(this.shaderProgram)&&this.shaderProgram.destroy()}};let b=new Float32Array(2*64*2),T=0;for(let D=0;D<64;++D){let O=D/63;b[T++]=0,b[T++]=O,b[T++]=1,b[T++]=O}let A={position:0,webMercatorT:1},C=ls.getRegularGridIndices(2,64),S=yt.createIndexBuffer({context:t,typedArray:C,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});o.vertexArray=new ti({context:t,attributes:[{index:A.position,vertexBuffer:yt.createVertexBuffer({context:t,typedArray:b,usage:Fe.STATIC_DRAW}),componentsPerAttribute:2},{index:A.webMercatorT,vertexBuffer:yt.createVertexBuffer({context:t,sizeInBytes:64*2*4,usage:Fe.STREAM_DRAW}),componentsPerAttribute:1}],indexBuffer:S});let v=new Ue({sources:[gU]});o.shaderProgram=en.fromCache({context:t,vertexShaderSource:v,fragmentShaderSource:_U,attributeLocations:A}),o.sampler=new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:di.LINEAR})}n.sampler=o.sampler;let r=n.width,s=n.height;yU.textureDimensions.x=r,yU.textureDimensions.y=s,yU.texture=n;let a=Math.sin(i.south),c=.5*Math.log((1+a)/(1-a));a=Math.sin(i.north);let f=1/(.5*Math.log((1+a)/(1-a))-c),d=new Ot({context:t,width:r,height:s,pixelFormat:n.pixelFormat,pixelDatatype:n.pixelDatatype,preMultiplyAlpha:n.preMultiplyAlpha});P.isPowerOfTwo(r)&&P.isPowerOfTwo(s)&&d.generateMipmap(ep.NICEST);let p=i.south,g=i.north,m=Hst,x=0;for(let b=0;b<64;++b){let T=b/63,A=P.lerp(p,g,T);a=Math.sin(A);let S=(.5*Math.log((1+a)/(1-a))-c)*f;m[x++]=S,m[x++]=S}o.vertexArray.getAttribute(1).vertexBuffer.copyFromArrayView(m),e.shaderProgram=o.shaderProgram,e.outputTexture=d,e.uniformMap=yU,e.vertexArray=o.vertexArray}function Wst(e,t,n){let i=e._imageryProvider,o=i.tilingScheme,r=o.ellipsoid,s=e._imageryProvider.tilingScheme.projection instanceof wi?1:Math.cos(n),a=o.rectangle,u=r.maximumRadius*a.width*s/(i.tileWidth*o.getNumberOfXTilesAtLevel(0))/t,f=Math.log(u)/Math.log(2);return Math.round(f)|0}function jst(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function qst(e,t){let n;try{if(n=await Promise.resolve(t),e.isDestroyed())return;e._imageryProvider=n,e._readyEvent.raiseEvent(n)}catch(i){jst(e._errorEvent,i)}}var ac=pi;var Yst={WEST:0,NORTH:1,EAST:2,SOUTH:3,NORTHWEST:4,NORTHEAST:5,SOUTHWEST:6,SOUTHEAST:7},_n=Yst;var oge={NONE:0,CULLED:1,RENDERED:2,REFINED:3,RENDERED_AND_KICKED:6,REFINED_AND_KICKED:7,CULLED_BUT_NEEDED:9,wasKicked:function(e){return e>=oge.RENDERED_AND_KICKED},originalResult:function(e){return e&3},kick:function(e){return e|4}},qn=oge;function OE(e){this.tile=e,this.frameLastUpdated=void 0,this.westMeshes=[],this.westTiles=[],this.southMeshes=[],this.southTiles=[],this.eastMeshes=[],this.eastTiles=[],this.northMeshes=[],this.northTiles=[],this.southwestMesh=void 0,this.southwestTile=void 0,this.southeastMesh=void 0,this.southeastTile=void 0,this.northwestMesh=void 0,this.northwestTile=void 0,this.northeastMesh=void 0,this.northeastTile=void 0,this.changedThisFrame=!0,this.visitedFrame=void 0,this.enqueuedFrame=void 0,this.mesh=void 0,this.vertexArray=void 0,this.waterMaskTexture=void 0,this.waterMaskTranslationAndScale=new oe}OE.prototype.update=function(e,t,n){this.changedThisFrame&&(fge(e,t,this.tile,n),this.changedThisFrame=!1)};OE.prototype.destroy=function(e){this._destroyVertexArray(e),l(this.waterMaskTexture)&&(--this.waterMaskTexture.referenceCount,this.waterMaskTexture.referenceCount===0&&this.waterMaskTexture.destroy(),this.waterMaskTexture=void 0)};OE.prototype._destroyVertexArray=function(e){l(this.vertexArray)&&(l(e)?e.push(this.vertexArray):Xd._freeVertexArray(this.vertexArray),this.vertexArray=void 0)};var Xst=new ox;OE.updateFillTiles=function(e,t,n,i){let o=e._quadtree,r=o._levelZeroTiles,s=o._lastSelectionFrameNumber,a=Xst;a.clear();for(let u=0;u<t.length;++u){let f=t[u];l(f.data.vertexArray)&&a.enqueue(t[u])}let c=a.dequeue();for(;c!==void 0;){let u=c.findTileToWest(r),f=c.findTileToSouth(r),d=c.findTileToEast(r),p=c.findTileToNorth(r);vs(e,n,c,u,s,_n.EAST,!1,a,i),vs(e,n,c,f,s,_n.NORTH,!1,a,i),vs(e,n,c,d,s,_n.WEST,!1,a,i),vs(e,n,c,p,s,_n.SOUTH,!1,a,i);let g=u.findTileToNorth(r),m=u.findTileToSouth(r),x=d.findTileToNorth(r),b=d.findTileToSouth(r);vs(e,n,c,g,s,_n.SOUTHEAST,!1,a,i),vs(e,n,c,x,s,_n.SOUTHWEST,!1,a,i),vs(e,n,c,m,s,_n.NORTHEAST,!1,a,i),vs(e,n,c,b,s,_n.NORTHWEST,!1,a,i),c=a.dequeue()}};function vs(e,t,n,i,o,r,s,a,c){if(i===void 0)return;let u=i;for(;u&&(u._lastSelectionResultFrame!==o||qn.wasKicked(u._lastSelectionResult)||qn.originalResult(u._lastSelectionResult)===qn.CULLED);){if(s)return;let f=u.parent;if(r>=_n.NORTHWEST&&f!==void 0)switch(r){case _n.NORTHWEST:u=u===f.northwestChild?f:void 0;break;case _n.NORTHEAST:u=u===f.northeastChild?f:void 0;break;case _n.SOUTHWEST:u=u===f.southwestChild?f:void 0;break;case _n.SOUTHEAST:u=u===f.southeastChild?f:void 0;break}else u=f}if(u!==void 0){if(u._lastSelectionResult===qn.RENDERED){if(l(u.data.vertexArray))return;Kst(e,t,n,u,r,o,a,c);return}if(qn.originalResult(i._lastSelectionResult)!==qn.CULLED)switch(r){case _n.WEST:vs(e,t,n,i.northwestChild,o,r,!0,a,c),vs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.EAST:vs(e,t,n,i.southeastChild,o,r,!0,a,c),vs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTH:vs(e,t,n,i.southwestChild,o,r,!0,a,c),vs(e,t,n,i.southeastChild,o,r,!0,a,c);break;case _n.NORTH:vs(e,t,n,i.northeastChild,o,r,!0,a,c),vs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHWEST:vs(e,t,n,i.northwestChild,o,r,!0,a,c);break;case _n.NORTHEAST:vs(e,t,n,i.northeastChild,o,r,!0,a,c);break;case _n.SOUTHWEST:vs(e,t,n,i.southwestChild,o,r,!0,a,c);break;case _n.SOUTHEAST:vs(e,t,n,i.southeastChild,o,r,!0,a,c);break;default:throw new he("Invalid edge")}}}function Kst(e,t,n,i,o,r,s,a){let c=i.data;if(c.fill===void 0)c.fill=new OE(i);else if(c.fill.visitedFrame===r)return;c.fill.enqueuedFrame!==r&&(c.fill.enqueuedFrame=r,c.fill.changedThisFrame=!1,s.enqueue(i)),Zst(e,t,n,i,o,a)}function Zst(e,t,n,i,o,r){let s=i.data.fill,a,c=n.data.fill;l(c)?(c.visitedFrame=t.frameNumber,c.changedThisFrame&&(fge(e,t,n,r),c.changedThisFrame=!1),a=n.data.fill.mesh):a=n.data.mesh;let u,f;switch(o){case _n.WEST:u=s.westMeshes,f=s.westTiles;break;case _n.SOUTH:u=s.southMeshes,f=s.southTiles;break;case _n.EAST:u=s.eastMeshes,f=s.eastTiles;break;case _n.NORTH:u=s.northMeshes,f=s.northTiles;break;case _n.NORTHWEST:s.changedThisFrame=s.changedThisFrame||s.northwestMesh!==a,s.northwestMesh=a,s.northwestTile=n;return;case _n.NORTHEAST:s.changedThisFrame=s.changedThisFrame||s.northeastMesh!==a,s.northeastMesh=a,s.northeastTile=n;return;case _n.SOUTHWEST:s.changedThisFrame=s.changedThisFrame||s.southwestMesh!==a,s.southwestMesh=a,s.southwestTile=n;return;case _n.SOUTHEAST:s.changedThisFrame=s.changedThisFrame||s.southeastMesh!==a,s.southeastMesh=a,s.southeastTile=n;return}if(n.level<=i.level){s.changedThisFrame=s.changedThisFrame||u[0]!==a||u.length!==1,u[0]=a,f[0]=n,u.length=1,f.length=1;return}let d,p,g,m,x=n.rectangle,b,T=i.rectangle;switch(o){case _n.WEST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.north,m.south,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.south,m.north,b));++p);break;case _n.SOUTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.west,m.east,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.east,m.west,b));++p);break;case _n.EAST:for(b=(T.north-T.south)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.lessThan(x.south,m.north,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.lessThanOrEquals(x.north,m.south,b));++p);break;case _n.NORTH:for(b=(T.east-T.west)*P.EPSILON5,d=0;d<f.length&&(g=f[d],m=g.rectangle,!P.greaterThan(x.east,m.west,b));++d);for(p=d;p<f.length&&(g=f[p],m=g.rectangle,!P.greaterThanOrEquals(x.west,m.east,b));++p);break}p-d===1?(s.changedThisFrame=s.changedThisFrame||u[d]!==a,u[d]=a,f[d]=n):(s.changedThisFrame=!0,u.splice(d,p-d,a),f.splice(d,p-d,n))}var sb=new fe,$st=new fe,RE=new h,qY=new h,GY=new U,WY=new U,vu=new U;function SU(){this.height=0,this.encodedNormal=new U}function xU(e,t,n,i,o,r,s,a,c){if(l(o))return o;let u;if(l(r)&&l(s))u=(r.height+s.height)*.5;else if(l(r))u=r.height;else if(l(s))u=s.height;else if(l(a))u=a.height;else{let d=e.tile.data.tileBoundingRegion,p=0,g=0;l(d)&&(p=d.minimumHeight,g=d.maximumHeight),u=(p+g)*.5}return dge(e,t,n,i,u,c),c}var Qst={minimumHeight:0,maximumHeight:0},Jst=new h,rge=new SU,sge=new SU,age=new SU,cge=new SU,eat=typeof Uint8Array<"u"?new Uint8Array(9*9):void 0,tat={tilingScheme:void 0,x:0,y:0,level:0,exaggeration:1,exaggerationRelativeHeight:0};function fge(e,t,n,i){Xd.initialize(n,e.terrainProvider,e._imageryLayers);let o=n.data,r=o.fill,s=n.rectangle,a=t.verticalExaggeration,c=t.verticalExaggerationRelativeHeight,u=a!==1,f=n.tilingScheme.ellipsoid,d=TU(r,f,0,1,r.northwestTile,r.northwestMesh,r.northTiles,r.northMeshes,r.westTiles,r.westMeshes,age),p=TU(r,f,0,0,r.southwestTile,r.southwestMesh,r.westTiles,r.westMeshes,r.southTiles,r.southMeshes,rge),g=TU(r,f,1,0,r.southeastTile,r.southeastMesh,r.southTiles,r.southMeshes,r.eastTiles,r.eastMeshes,sge),m=TU(r,f,1,1,r.northeastTile,r.northeastMesh,r.eastTiles,r.eastMeshes,r.northTiles,r.northMeshes,cge);d=xU(r,f,0,1,d,p,m,g,age),p=xU(r,f,0,0,p,d,g,m,rge),g=xU(r,f,1,1,g,p,m,d,sge),m=xU(r,f,1,1,m,g,d,p,cge);let x=p.height,b=g.height,T=d.height,A=m.height,C=Math.min(x,b,T,A),S=Math.max(x,b,T,A),v=(C+S)*.5,D,O,R=e.getLevelMaximumGeometricError(n.level),M=f.maximumRadius-R,L=Math.acos(M/f.maximumRadius)*4;if(L*=1.5,s.width>L&&S-C<=R){let w=new rc({width:9,height:9,buffer:eat,structure:{heightOffset:S}}),I=tat;I.tilingScheme=n.tilingScheme,I.x=n.x,I.y=n.y,I.level=n.level,I.exaggeration=a,I.exaggerationRelativeHeight=c,r.mesh=w._createMeshSync(I)}else{let w=u,I=re.center(s,$st);I.height=v;let N=f.cartographicToCartesian(I,Jst),B=new jc(N,void 0,void 0,void 0,void 0,!0,!0,w,a,c),H=5,V;for(V=r.westMeshes,D=0,O=V.length;D<O;++D)H+=V[D].eastIndicesNorthToSouth.length;for(V=r.southMeshes,D=0,O=V.length;D<O;++D)H+=V[D].northIndicesWestToEast.length;for(V=r.eastMeshes,D=0,O=V.length;D<O;++D)H+=V[D].westIndicesSouthToNorth.length;for(V=r.northMeshes,D=0,O=V.length;D<O;++D)H+=V[D].southIndicesEastToWest.length;let G=Qst;G.minimumHeight=C,G.maximumHeight=S;let k=B.stride,W=new Float32Array(H*k),q=0,J=q;q=bU(f,s,B,W,q,0,1,d.height,d.encodedNormal,1,G),q=CU(r,f,B,W,q,r.westTiles,r.westMeshes,_n.EAST,G);let j=q;q=bU(f,s,B,W,q,0,0,p.height,p.encodedNormal,0,G),q=CU(r,f,B,W,q,r.southTiles,r.southMeshes,_n.NORTH,G);let Z=q;q=bU(f,s,B,W,q,1,0,g.height,g.encodedNormal,0,G),q=CU(r,f,B,W,q,r.eastTiles,r.eastMeshes,_n.WEST,G);let Q=q;q=bU(f,s,B,W,q,1,1,m.height,m.encodedNormal,1,G),q=CU(r,f,B,W,q,r.northTiles,r.northMeshes,_n.SOUTH,G),C=G.minimumHeight,S=G.maximumHeight;let de=wn.fromRectangle(s,C,S,n.tilingScheme.ellipsoid),ye=Ii.geodeticLatitudeToMercatorAngle(s.south),ae=1/(Ii.geodeticLatitudeToMercatorAngle(s.north)-ye),_e=(Ii.geodeticLatitudeToMercatorAngle(I.latitude)-ye)*ae,xe=f.geodeticSurfaceNormalCartographic(sb,qY),Ie=Ln.octEncode(xe,GY),Ce=q;B.encode(W,q*k,de.center,U.fromElements(.5,.5,vu),v,Ie,_e,xe),++q;let ke=q,He=ke<256?1:2,rt=(ke-1)*3,Lt=rt*He,Tt=(W.length-ke*k)*Float32Array.BYTES_PER_ELEMENT,we;if(Tt>=Lt){let Ae=ke*k*Float32Array.BYTES_PER_ELEMENT;we=ke<256?new Uint8Array(W.buffer,Ae,rt):new Uint16Array(W.buffer,Ae,rt)}else we=ke<256?new Uint8Array(rt):new Uint16Array(rt);W=new Float32Array(W.buffer,0,ke*k);let Xe=0;for(D=0;D<ke-2;++D)we[Xe++]=Ce,we[Xe++]=D,we[Xe++]=D+1;we[Xe++]=Ce,we[Xe++]=D,we[Xe++]=0;let Qe=[];for(D=j;D>=J;--D)Qe.push(D);let We=[];for(D=Z;D>=j;--D)We.push(D);let Ut=[];for(D=Q;D>=Z;--D)Ut.push(D);let Te=[];for(Te.push(0),D=Ce-1;D>=Q;--D)Te.push(D);r.mesh=new Yd(B.center,W,we,rt,ke,C,S,se.fromOrientedBoundingBox(de),cat(e,de.center,s,C,S),B.stride,de,B,Qe,We,Ut,Te)}let _=t.context;r._destroyVertexArray(i),r.vertexArray=Xd._createVertexArrayForMesh(_,r.mesh),o.processImagery(n,e.terrainProvider,t,!0);let E=r.waterMaskTexture;if(r.waterMaskTexture=void 0,e.terrainProvider.hasWaterMask){let w=o._findAncestorTileWithTerrainData(n);l(w)&&l(w.data.waterMaskTexture)&&(r.waterMaskTexture=w.data.waterMaskTexture,++r.waterMaskTexture.referenceCount,o._computeWaterMaskTranslationAndScale(n,w,r.waterMaskTranslationAndScale))}l(E)&&(--E.referenceCount,E.referenceCount===0&&E.destroy())}function bU(e,t,n,i,o,r,s,a,c,u,f){let d=sb;d.longitude=P.lerp(t.west,t.east,r),d.latitude=P.lerp(t.south,t.north,s),d.height=a;let p=e.cartographicToCartesian(d,RE),g;n.hasGeodeticSurfaceNormals&&(g=e.geodeticSurfaceNormal(p,qY));let m=WY;return m.x=r,m.y=s,n.encode(i,o*n.stride,p,m,a,c,u,g),f.minimumHeight=Math.min(f.minimumHeight,a),f.maximumHeight=Math.max(f.maximumHeight,a),o+1}var EU=new re;function EI(e,t,n,i){let o=e.rectangle,r=t.rectangle;t.x===0&&n.x===1&&e.x===e.tilingScheme.getNumberOfXTilesAtLevel(e.level)-1?(o=re.clone(e.rectangle,EU),o.west-=P.TWO_PI,o.east-=P.TWO_PI):e.x===0&&n.x===0&&t.x===t.tilingScheme.getNumberOfXTilesAtLevel(t.level)-1&&(o=re.clone(e.rectangle,EU),o.west+=P.TWO_PI,o.east+=P.TWO_PI);let s=o.east-o.west,a=(r.west-o.west)/s,c=(r.east-o.west)/s,u=o.north-o.south,f=(r.south-o.south)/u,d=(r.north-o.south)/u,p=(n.x-a)/(c-a),g=(n.y-f)/(d-f);return Math.abs(p)<Math.EPSILON5?p=0:Math.abs(p-1)<Math.EPSILON5&&(p=1),Math.abs(g)<Math.EPSILON5?g=0:Math.abs(g-1)<Math.EPSILON5&&(g=1),i.x=p,i.y=g,i}var nat=new U;function jY(e,t,n,i,o){let r=e.encoding,s=e.vertices;if(o.height=r.decodeHeight(s,t),r.hasVertexNormals)r.getOctEncodedNormal(s,t,o.encodedNormal);else{let a=o.encodedNormal;a.x=0,a.y=0}}var iat=new U,oat=new h;function rat(e,t,n,i,o,r,s,a,c,u){let f=i.encoding,d=i.vertices,p=EI(t,n,f.decodeTextureCoordinates(d,o,vu),vu),g=EI(t,n,f.decodeTextureCoordinates(d,r,WY),WY),m;c?m=(s-p.x)/(g.x-p.x):m=(a-p.y)/(g.y-p.y);let x=f.decodeHeight(d,o),b=f.decodeHeight(d,r),T=n.rectangle;sb.longitude=P.lerp(T.west,T.east,s),sb.latitude=P.lerp(T.south,T.north,a),u.height=sb.height=P.lerp(x,b,m);let A;if(f.hasVertexNormals){let C=f.getOctEncodedNormal(d,o,nat),S=f.getOctEncodedNormal(d,r,iat),v=Ln.octDecode(C.x,C.y,RE),D=Ln.octDecode(S.x,S.y,oat);A=h.lerp(v,D,m,RE),h.normalize(A,A),Ln.octEncode(A,u.encodedNormal)}else A=e.geodeticSurfaceNormalCartographic(sb,RE),Ln.octEncode(A,u.encodedNormal)}function dge(e,t,n,i,o,r){r.height=o;let s=t.geodeticSurfaceNormalCartographic(sb,RE);Ln.octEncode(s,r.encodedNormal)}function TU(e,t,n,i,o,r,s,a,c,u,f){if(uge(e,t,a,s,!1,n,i,f)||uge(e,t,u,c,!0,n,i,f))return f;let p;if(YY(o,r))return n===0?i===0?p=r.eastIndicesNorthToSouth[0]:p=r.southIndicesEastToWest[0]:i===0?p=r.northIndicesWestToEast[0]:p=r.westIndicesSouthToNorth[0],jY(r,p,n,i,f),f;let g;if(n===0?i===0?g=AU(e.westMeshes,e.westTiles,_n.EAST,e.southMeshes,e.southTiles,_n.NORTH,n,i):g=AU(e.northMeshes,e.northTiles,_n.SOUTH,e.westMeshes,e.westTiles,_n.EAST,n,i):i===0?g=AU(e.southMeshes,e.southTiles,_n.NORTH,e.eastMeshes,e.eastTiles,_n.WEST,n,i):g=AU(e.eastMeshes,e.eastTiles,_n.WEST,e.northMeshes,e.northTiles,_n.SOUTH,n,i),l(g))return dge(e,t,n,i,g,f),f}function AU(e,t,n,i,o,r,s,a){let c=lge(e,t,!1,n,s,a),u=lge(i,o,!0,r,s,a);return l(c)&&l(u)?(c+u)*.5:l(c)?c:u}function CU(e,t,n,i,o,r,s,a,c){for(let u=0;u<r.length;++u)o=sat(e,t,n,i,o,r[u],s[u],a,c);return o}function sat(e,t,n,i,o,r,s,a,c){let u=r.rectangle;a===_n.EAST&&e.tile.x===0?(u=re.clone(r.rectangle,EU),u.west-=P.TWO_PI,u.east-=P.TWO_PI):a===_n.WEST&&r.x===0&&(u=re.clone(r.rectangle,EU),u.west+=P.TWO_PI,u.east+=P.TWO_PI);let f=e.tile.rectangle,d,p;o>0&&(n.decodeTextureCoordinates(i,o-1,vu),d=vu.x,p=vu.y);let g,m;switch(a){case _n.WEST:g=s.westIndicesSouthToNorth,m=!1;break;case _n.NORTH:g=s.northIndicesWestToEast,m=!0;break;case _n.EAST:g=s.eastIndicesNorthToSouth,m=!1;break;case _n.SOUTH:g=s.southIndicesEastToWest,m=!0;break}let x=r,b=e.tile,T=s.encoding,A=s.vertices,C=n.stride,S,v;T.hasWebMercatorT&&(S=Ii.geodeticLatitudeToMercatorAngle(f.south),v=1/(Ii.geodeticLatitudeToMercatorAngle(f.north)-S));for(let D=0;D<g.length;++D){let O=g[D],R=T.decodeTextureCoordinates(A,O,vu);EI(x,b,R,R);let M=R.x,L=R.y,_=m?M:L;if(_<0||_>1||Math.abs(M-d)<P.EPSILON5&&Math.abs(L-p)<P.EPSILON5)continue;let E=Math.abs(M)<P.EPSILON5||Math.abs(M-1)<P.EPSILON5,w=Math.abs(L)<P.EPSILON5||Math.abs(L-1)<P.EPSILON5;if(E&&w)continue;let I=T.decodePosition(A,O,RE),N=T.decodeHeight(A,O),B;T.hasVertexNormals?B=T.getOctEncodedNormal(A,O,GY):(B=GY,B.x=0,B.y=0);let H=L;if(T.hasWebMercatorT){let G=P.lerp(f.south,f.north,L);H=(Ii.geodeticLatitudeToMercatorAngle(G)-S)*v}let V;n.hasGeodeticSurfaceNormals&&(V=t.geodeticSurfaceNormal(I,qY)),n.encode(i,o*C,I,R,N,B,H,V),c.minimumHeight=Math.min(c.minimumHeight,N),c.maximumHeight=Math.max(c.maximumHeight,N),++o}return o}function lge(e,t,n,i,o,r){let s,a,c;n?(s=0,a=e.length,c=1):(s=e.length-1,a=-1,c=-1);for(let u=s;u!==a;u+=c){let f=e[u],d=t[u];if(!YY(d,f))continue;let p;switch(i){case _n.WEST:p=f.westIndicesSouthToNorth;break;case _n.SOUTH:p=f.southIndicesEastToWest;break;case _n.EAST:p=f.eastIndicesNorthToSouth;break;case _n.NORTH:p=f.northIndicesWestToEast;break}let g=p[n?0:p.length-1];if(l(g))return f.encoding.decodeHeight(f.vertices,g)}}function YY(e,t){return l(t)&&(!l(e.data.fill)||!e.data.fill.changedThisFrame)}function uge(e,t,n,i,o,r,s,a){let c,u,f,d,p,g=i[o?0:n.length-1],m=n[o?0:n.length-1];if(YY(g,m)&&(r===0?s===0?(c=o?m.northIndicesWestToEast:m.eastIndicesNorthToSouth,u=o,f=o):(c=o?m.eastIndicesNorthToSouth:m.southIndicesEastToWest,u=!o,f=!1):s===0?(c=o?m.westIndicesSouthToNorth:m.northIndicesWestToEast,u=!o,f=!0):(c=o?m.southIndicesEastToWest:m.westIndicesSouthToNorth,u=o,f=!o),c.length>0)){d=o?0:c.length-1,p=c[d],m.encoding.decodeTextureCoordinates(m.vertices,p,vu);let x=EI(g,e.tile,vu,vu);if(x.x===r&&x.y===s)return jY(m,p,r,s,a),!0;if(d=Po(c,u?r:s,function(b,T){m.encoding.decodeTextureCoordinates(m.vertices,b,vu);let A=EI(g,e.tile,vu,vu);return f?u?A.x-r:A.y-s:u?r-A.x:s-A.y}),d<0){if(d=~d,d>0&&d<c.length)return rat(t,g,e.tile,m,c[d-1],c[d],r,s,u,a),!0}else return jY(m,c[d],r,s,a),!0}return!1}var aat=[new h,new h,new h,new h];function cat(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=aat;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}var SI=OE;function $o(e){this.lightingFadeOutDistance=65e5,this.lightingFadeInDistance=9e6,this.hasWaterMask=!1,this.showWaterEffect=!1,this.oceanNormalMap=void 0,this.zoomedOutOceanSpecularIntensity=.5,this.enableLighting=!1,this.dynamicAtmosphereLighting=!1,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=!1,this.shadows=yn.RECEIVE_ONLY,this.vertexShadowDarkness=.3,this.fillHighlightColor=void 0,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this.undergroundColor=void 0,this.undergroundColorAlphaByDistance=void 0,this.lambertDiffuseMultiplier=0,this.materialUniformMap=void 0,this._materialUniformMap=void 0,this._quadtree=void 0,this._terrainProvider=e.terrainProvider,this._imageryLayers=e.imageryLayers,this._surfaceShaderSet=e.surfaceShaderSet,this._renderState=void 0,this._blendRenderState=void 0,this._disableCullingRenderState=void 0,this._disableCullingBlendRenderState=void 0,this._errorEvent=new me,this._removeLayerAddedListener=this._imageryLayers.layerAdded.addEventListener($o.prototype._onLayerAdded,this),this._removeLayerRemovedListener=this._imageryLayers.layerRemoved.addEventListener($o.prototype._onLayerRemoved,this),this._removeLayerMovedListener=this._imageryLayers.layerMoved.addEventListener($o.prototype._onLayerMoved,this),this._removeLayerShownListener=this._imageryLayers.layerShownOrHidden.addEventListener($o.prototype._onLayerShownOrHidden,this),this._imageryLayersUpdatedEvent=new me,this._layerOrderChanged=!1,this._tilesToRenderByTextureCount=[],this._drawCommands=[],this._uniformMaps=[],this._usedDrawCommands=0,this._vertexArraysToDestroy=[],this._debug={wireframe:!1,boundingSphereTile:void 0},this._baseColor=void 0,this._firstPassInitialColor=void 0,this.baseColor=new z(0,0,.5,1),this._clippingPlanes=void 0,this._clippingPolygons=void 0,this.cartographicLimitRectangle=re.clone(re.MAX_VALUE),this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1,this._oldVerticalExaggeration=void 0,this._oldVerticalExaggerationRelativeHeight=void 0}Object.defineProperties($o.prototype,{baseColor:{get:function(){return this._baseColor},set:function(e){this._baseColor=e,this._firstPassInitialColor=oe.fromColor(e,this._firstPassInitialColor)}},quadtree:{get:function(){return this._quadtree},set:function(e){this._quadtree=e}},tilingScheme:{get:function(){if(l(this._terrainProvider))return this._terrainProvider.tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},imageryLayersUpdatedEvent:{get:function(){return this._imageryLayersUpdatedEvent}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){this._terrainProvider!==e&&(this._terrainProvider=e,l(this._quadtree)&&this._quadtree.invalidateAllTiles())}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){bs.setOwner(e,this,"_clippingPlanes")}},clippingPolygons:{get:function(){return this._clippingPolygons},set:function(e){Uh.setOwner(e,this,"_clippingPolygons")}}});function lat(e,t){let n=e.loadingImagery;l(n)||(n=e.readyImagery);let i=t.loadingImagery;return l(i)||(i=t.readyImagery),n.imageryLayer._layerIndex-i.imageryLayer._layerIndex}$o.prototype.update=function(e){this._imageryLayers._update()};function uat(e,t){let n=t.creditDisplay,i=e._terrainProvider;l(i)&&l(i.credit)&&n.addCreditToNextFrame(i.credit);let o=e._imageryLayers;for(let r=0,s=o.length;r<s;++r){let a=o.get(r);a.ready&&a.show&&l(a.imageryProvider.credit)&&n.addCreditToNextFrame(a.imageryProvider.credit)}}$o.prototype.initialize=function(e){this._imageryLayers.queueReprojectionCommands(e),this._layerOrderChanged&&(this._layerOrderChanged=!1,this._quadtree.forEachLoadedTile(function(i){i.data.imagery.sort(lat)})),uat(this,e);let t=this._vertexArraysToDestroy,n=t.length;for(let i=0;i<n;++i)Xd._freeVertexArray(t[i]);t.length=0};$o.prototype.beginUpdate=function(e){let t=this._tilesToRenderByTextureCount;for(let o=0,r=t.length;o<r;++o){let s=t[o];l(s)&&(s.length=0)}let n=this._clippingPlanes;l(n)&&n.enabled&&n.update(e);let i=this._clippingPolygons;l(i)&&i.enabled&&(i.update(e),i.queueCommands(e)),this._usedDrawCommands=0,this._hasLoadedTilesThisFrame=!1,this._hasFillTilesThisFrame=!1};$o.prototype.endUpdate=function(e){if(!l(this._renderState)){this._renderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Ec.LESS}}),this._blendRenderState=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0,func:Ec.LESS_OR_EQUAL},blending:ln.ALPHA_BLEND});let s=Ge(this._renderState,!0);s.cull.enabled=!1,this._disableCullingRenderState=Ve.fromCache(s),s=Ge(this._blendRenderState,!0),s.cull.enabled=!1,this._disableCullingBlendRenderState=Ve.fromCache(s)}this._hasFillTilesThisFrame&&this._hasLoadedTilesThisFrame&&SI.updateFillTiles(this,this._quadtree._tilesToRender,e,this._vertexArraysToDestroy);let t=this.quadtree,n=e.verticalExaggeration,i=e.verticalExaggerationRelativeHeight,o=this._oldVerticalExaggeration!==n||this._oldVerticalExaggerationRelativeHeight!==i;this._oldVerticalExaggeration=n,this._oldVerticalExaggerationRelativeHeight=i,o&&t.forEachLoadedTile(function(s){s.data.updateExaggeration(s,e,t)});let r=this._tilesToRenderByTextureCount;for(let s=0,a=r.length;s<a;++s){let c=r[s];if(l(c))for(let u=0,f=c.length;u<f;++u){let d=c[u],p=d.data.tileBoundingRegion;Lat(this,d,e),e.minimumTerrainHeight=Math.min(e.minimumTerrainHeight,p.minimumHeight)}}};function gge(e,t){let n=t.globeTranslucencyState;if(n.translucent){let i=e.renderState.blending.enabled;n.pushDerivedCommands(e,i,t)}else t.commandList.push(e)}$o.prototype.updateForPick=function(e){let t=this._drawCommands;for(let n=0,i=this._usedDrawCommands;n<i;++n)gge(t[n],e)};$o.prototype.cancelReprojections=function(){this._imageryLayers.cancelReprojections()};$o.prototype.getLevelMaximumGeometricError=function(e){return l(this._terrainProvider)?this._terrainProvider.getLevelMaximumGeometricError(e):0};$o.prototype.loadTile=function(e,t){let n=t.data,i=!0,o;l(n)&&(i=n.boundingVolumeSourceTile!==t||t._lastSelectionResult===qn.CULLED_BUT_NEEDED,o=n.terrainState),Xd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i),n=t.data,i&&o!==t.data.terrainState&&this.computeTileVisibility(t,e,this.quadtree.occluders)!==xr.NONE&&n.boundingVolumeSourceTile===t&&(i=!1,Xd.processStateMachine(t,e,this.terrainProvider,this._imageryLayers,this.quadtree,this._vertexArraysToDestroy,i))};var fat=new se,yge=new re,dat=new re,hat=new fe;function wU(e,t){if(t.west<t.east)return t;let n=re.clone(t,dat);return re.center(e,hat).longitude>0?n.east=P.PI:n.west=-P.PI,n}function xge(e,t){if(t.cameraUnderground||t.globeTranslucencyState.translucent)return!0;if(e.backFaceCulling)return!1;let n=e._clippingPlanes;if(l(n)&&n.enabled)return!0;let i=e._clippingPolygons;return!!(l(i)&&i.enabled||!re.equals(e.cartographicLimitRectangle,re.MAX_VALUE))}$o.prototype.computeTileVisibility=function(e,t,n){let i=this.computeDistanceToTile(e,t);e._distance=i;let o=xge(this,t);if(t.fog.enabled&&!o&&P.fog(i,t.fog.density)>=1)return xr.NONE;let r=e.data,s=r.tileBoundingRegion;if(r.boundingVolumeSourceTile===void 0)return xr.PARTIAL;let a=t.cullingVolume,c=s.boundingVolume;l(c)||(c=s.boundingSphere),r.clippedByBoundaries=!1;let u=wU(e.rectangle,this.cartographicLimitRectangle),f=re.simpleIntersection(u,e.rectangle,yge);if(!l(f))return xr.NONE;if(re.equals(f,e.rectangle)||(r.clippedByBoundaries=!0),t.mode!==ne.SCENE3D&&(c=fat,se.fromRectangleWithHeights2D(e.rectangle,t.mapProjection,s.minimumHeight,s.maximumHeight,c),h.fromElements(c.center.z,c.center.x,c.center.y,c.center),t.mode===ne.MORPHING&&l(r.renderedMesh)&&(c=se.union(s.boundingSphere,c,c))),!l(c))return xr.PARTIAL;let d=this._clippingPlanes;if(l(d)&&d.enabled){let b=d.computeIntersectionWithBoundingVolume(c);if(e.isClipped=b!==Yt.INSIDE,b===Yt.OUTSIDE)return xr.NONE}let p=this._clippingPolygons;if(l(p)&&p.enabled){let b=p.computeIntersectionWithBoundingVolume(s);e.isClipped=b!==Yt.OUTSIDE}let g,m=a.computeVisibility(c);if(m===Yt.OUTSIDE?g=xr.NONE:m===Yt.INTERSECTING?g=xr.PARTIAL:m===Yt.INSIDE&&(g=xr.FULL),g===xr.NONE)return g;let x=t.mode===ne.SCENE3D&&t.camera.frustum instanceof rn;if(t.mode===ne.SCENE3D&&!x&&l(n)&&!o){let b=r.occludeePointInScaledSpace;return!l(b)||n.ellipsoid.isScaledSpacePointVisiblePossiblyUnderEllipsoid(b,s.minimumHeight)?g:xr.NONE}return g};$o.prototype.canRefine=function(e){return l(e.data.terrainData)?!0:this.terrainProvider.getTileDataAvailable(e.x*2,e.y*2,e.level+1)!==void 0};var mat=[],pat=[];$o.prototype.canRenderWithoutLosingDetail=function(e,t){let n=e.data,i=mat;i.length=this._imageryLayers.length;let o=!1,r=!1,s;l(n)&&(o=n.terrainState===lo.READY,r=!0,s=n.imagery);let a,c;for(a=0,c=i.length;a<c;++a)i[a]=r;if(l(s))for(a=0,c=s.length;a<c;++a){let d=s[a],p=d.loadingImagery,g=!l(p)||p.state===si.FAILED||p.state===si.INVALID,m=(d.loadingImagery||d.readyImagery).imageryLayer._layerIndex;i[m]=g&&i[m]}let u=this.quadtree._lastSelectionFrameNumber,f=pat;for(f.length=0,f.push(e.southwestChild,e.southeastChild,e.northwestChild,e.northeastChild);f.length>0;){let d=f.pop(),p=d._lastSelectionResultFrame===u?d._lastSelectionResult:qn.NONE;if(p===qn.RENDERED){let g=d.data;if(!l(g))continue;if(!o&&d.data.terrainState===lo.READY)return!1;let m=d.data.imagery;for(a=0,c=m.length;a<c;++a){let x=m[a],b=x.loadingImagery,T=!l(b)||b.state===si.FAILED||b.state===si.INVALID,A=(x.loadingImagery||x.readyImagery).imageryLayer._layerIndex;if(T&&!i[A])return!1}}else p===qn.REFINED&&f.push(d.southwestChild,d.southeastChild,d.northwestChild,d.northeastChild)}return!0};var _at=new h;$o.prototype.computeTileLoadPriority=function(e,t){let n=e.data;if(n===void 0)return 0;let i=n.tileBoundingRegion.boundingVolume;if(i===void 0)return 0;let o=t.camera.positionWC,r=t.camera.directionWC,s=h.subtract(i.center,o,_at),a=h.magnitude(s);return a<P.EPSILON5?0:(h.divideByScalar(s,a,s),(1-h.dot(s,r))*e._distance)};var hge=new F,vU=new F,gat=new oe,yat=new oe,xat=new oe,bat=new h,mge=new h,Tat=new h,Aat=new h;$o.prototype.showTileThisFrame=function(e,t){let n=0,i=e.data.imagery;for(let a=0,c=i.length;a<c;++a){let u=i[a];l(u.readyImagery)&&u.readyImagery.imageryLayer.alpha!==0&&++n}let o=this._tilesToRenderByTextureCount[n];l(o)||(o=[],this._tilesToRenderByTextureCount[n]=o),o.push(e);let r=e.data;l(r.vertexArray)?this._hasLoadedTilesThisFrame=!0:this._hasFillTilesThisFrame=!0;let s=this._debug;++s.tilesRendered,s.texturesRendered+=n};var Cat=[new h,new h,new h,new h];function pge(e,t,n,i,o,r){let s=e.quadtree._occluders.ellipsoid,a=s.ellipsoid,c=Cat;return h.fromRadians(n.west,n.south,o,a,c[0]),h.fromRadians(n.east,n.south,o,a,c[1]),h.fromRadians(n.west,n.north,o,a,c[2]),h.fromRadians(n.east,n.north,o,a,c[3]),s.computeHorizonCullingPointPossiblyUnderEllipsoid(t,c,i,r)}$o.prototype.computeDistanceToTile=function(e,t){Eat(e,this,t);let n=e.data;if(n.boundingVolumeSourceTile===void 0)return 9999999999;let o=n.tileBoundingRegion,r=o.minimumHeight,s=o.maximumHeight;if(n.boundingVolumeSourceTile!==e){let c=t.camera.positionCartographic.height,u=Math.abs(c-r),f=Math.abs(c-s);u>f?(o.minimumHeight=r,o.maximumHeight=r):(o.minimumHeight=s,o.maximumHeight=s)}let a=o.distanceToCamera(t);return o.minimumHeight=r,o.maximumHeight=s,a};function Eat(e,t,n){let i=e.data;i===void 0&&(i=e.data=new Xd);let o=e.tilingScheme.ellipsoid;i.tileBoundingRegion===void 0&&(i.tileBoundingRegion=new Ad({computeBoundingVolumes:!1,rectangle:e.rectangle,ellipsoid:o,minimumHeight:0,maximumHeight:0}));let r=i.tileBoundingRegion,s=r.minimumHeight,a=r.maximumHeight,c=!1,u=e,f=i.mesh,d=i.terrainData;if(f!==void 0&&f.minimumHeight!==void 0&&f.maximumHeight!==void 0)r.minimumHeight=f.minimumHeight,r.maximumHeight=f.maximumHeight,c=!0;else if(d!==void 0&&d._minimumHeight!==void 0&&d._maximumHeight!==void 0)r.minimumHeight=d._minimumHeight,r.maximumHeight=d._maximumHeight;else{r.minimumHeight=Number.NaN,r.maximumHeight=Number.NaN;let p=e.parent;for(;p!==void 0;){let g=p.data;if(g!==void 0){let m=g.mesh,x=g.terrainData;if(m!==void 0&&m.minimumHeight!==void 0&&m.maximumHeight!==void 0){r.minimumHeight=m.minimumHeight,r.maximumHeight=m.maximumHeight;break}else if(x!==void 0&&x._minimumHeight!==void 0&&x._maximumHeight!==void 0){r.minimumHeight=x._minimumHeight,r.maximumHeight=x._maximumHeight;break}}p=p.parent}u=p}if(u!==void 0){let p=n.verticalExaggeration,g=n.verticalExaggerationRelativeHeight;if(p!==1&&(c=!1,r.minimumHeight=Ir.getHeight(r.minimumHeight,p,g),r.maximumHeight=Ir.getHeight(r.maximumHeight,p,g)),c)i.boundingVolumeIsFromMesh||(r._orientedBoundingBox=wn.clone(f.orientedBoundingBox,r._orientedBoundingBox),r._boundingSphere=se.clone(f.boundingSphere3D,r._boundingSphere),i.occludeePointInScaledSpace=h.clone(f.occludeePointInScaledSpace,i.occludeePointInScaledSpace),l(i.occludeePointInScaledSpace)||(i.occludeePointInScaledSpace=pge(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace)));else{let x=r._orientedBoundingBox===void 0||r._boundingSphere===void 0;(r.minimumHeight!==s||r.maximumHeight!==a||x)&&(r.computeBoundingVolumes(o),i.occludeePointInScaledSpace=pge(t,r._orientedBoundingBox.center,e.rectangle,r.minimumHeight,r.maximumHeight,i.occludeePointInScaledSpace))}i.boundingVolumeSourceTile=u,i.boundingVolumeIsFromMesh=c}else i.boundingVolumeSourceTile=void 0,i.boundingVolumeIsFromMesh=!1}$o.prototype.isDestroyed=function(){return!1};$o.prototype.destroy=function(){return this._tileProvider=this._tileProvider&&this._tileProvider.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._clippingPolygons=this._clippingPolygons&&this._clippingPolygons.destroy(),this._removeLayerAddedListener=this._removeLayerAddedListener&&this._removeLayerAddedListener(),this._removeLayerRemovedListener=this._removeLayerRemovedListener&&this._removeLayerRemovedListener(),this._removeLayerMovedListener=this._removeLayerMovedListener&&this._removeLayerMovedListener(),this._removeLayerShownListener=this._removeLayerShownListener&&this._removeLayerShownListener(),ue(this)};function Sat(e,t,n){return function(i){let o,r,s=-1,a=i.data.imagery,c=a.length,u;for(u=0;u<c;++u)if(o=a[u],r=y(o.readyImagery,o.loadingImagery),r.imageryLayer===t){s=u;break}if(s!==-1){let f=s+e;if(o=a[f],r=l(o)?y(o.readyImagery,o.loadingImagery):void 0,!l(r)||r.imageryLayer!==t)return!t._createTileImagerySkeletons(i,n,f);for(u=s;u<f;++u)a[u].freeResources();a.splice(s,e)}return!0}}$o.prototype._onLayerAdded=function(e,t){if(!this.isDestroyed()&&e.show){let n=this._terrainProvider,i=this,o=this._imageryLayersUpdatedEvent,r=function(){e._imageryCache={},i._quadtree.forEachLoadedTile(function(s){if(l(s._loadedCallbacks[e._layerIndex]))return;let a,c=s.data.imagery,u=c.length,f=-1,d=0;for(a=0;a<u;++a){let g=c[a];if(y(g.readyImagery,g.loadingImagery).imageryLayer===e)f===-1&&(f=a),++d;else if(f!==-1)break}if(f===-1)return;let p=f+d;e._createTileImagerySkeletons(s,n,p)&&(s._loadedCallbacks[e._layerIndex]=Sat(d,e,n),s.state=fa.LOADING)})};if(e.ready){let s=e.imageryProvider;s._reload=r}this._quadtree.forEachLoadedTile(function(s){e._createTileImagerySkeletons(s,n)&&(s.state=fa.LOADING,s.level!==0&&(s._lastSelectionResultFrame!==i.quadtree._lastSelectionFrameNumber||s._lastSelectionResult!==qn.RENDERED)&&(s.renderable=!1))}),this._layerOrderChanged=!0,o.raiseEvent()}};$o.prototype._onLayerRemoved=function(e,t){this._quadtree.forEachLoadedTile(function(n){let i=n.data.imagery,o=-1,r=0;for(let s=0,a=i.length;s<a;++s){let c=i[s],u=c.loadingImagery;if(l(u)||(u=c.readyImagery),u.imageryLayer===e)o===-1&&(o=s),c.freeResources(),++r;else if(o!==-1)break}o!==-1&&i.splice(o,r)}),l(e.imageryProvider)&&(e.imageryProvider._reload=void 0),this._imageryLayersUpdatedEvent.raiseEvent()};$o.prototype._onLayerMoved=function(e,t,n){this._layerOrderChanged=!0,this._imageryLayersUpdatedEvent.raiseEvent()};$o.prototype._onLayerShownOrHidden=function(e,t,n){n?this._onLayerAdded(e,t):this._onLayerRemoved(e,t)};var vat=new F,wat=new F;function _ge(e,t){let n={u_initialColor:function(){return this.properties.initialColor},u_fillHighlightColor:function(){return this.properties.fillHighlightColor},u_zoomedOutOceanSpecularIntensity:function(){return this.properties.zoomedOutOceanSpecularIntensity},u_oceanNormalMap:function(){return this.properties.oceanNormalMap},u_atmosphereLightIntensity:function(){return this.properties.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return this.properties.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return this.properties.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return this.properties.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return this.properties.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return this.properties.atmosphereMieAnisotropy},u_lightingFadeDistance:function(){return this.properties.lightingFadeDistance},u_nightFadeDistance:function(){return this.properties.nightFadeDistance},u_center3D:function(){return this.properties.center3D},u_verticalExaggerationAndRelativeHeight:function(){return this.properties.verticalExaggerationAndRelativeHeight},u_tileRectangle:function(){return this.properties.tileRectangle},u_modifiedModelView:function(){let i=e.context.uniformState.view,o=F.multiplyByPoint(i,this.properties.rtc,mge);return F.setTranslation(i,o,hge),hge},u_modifiedModelViewProjection:function(){let i=e.context.uniformState.view,o=e.context.uniformState.projection,r=F.multiplyByPoint(i,this.properties.rtc,mge);return F.setTranslation(i,r,vU),F.multiply(o,vU,vU),vU},u_dayTextures:function(){return this.properties.dayTextures},u_dayTextureTranslationAndScale:function(){return this.properties.dayTextureTranslationAndScale},u_dayTextureTexCoordsRectangle:function(){return this.properties.dayTextureTexCoordsRectangle},u_dayTextureUseWebMercatorT:function(){return this.properties.dayTextureUseWebMercatorT},u_dayTextureAlpha:function(){return this.properties.dayTextureAlpha},u_dayTextureNightAlpha:function(){return this.properties.dayTextureNightAlpha},u_dayTextureDayAlpha:function(){return this.properties.dayTextureDayAlpha},u_dayTextureBrightness:function(){return this.properties.dayTextureBrightness},u_dayTextureContrast:function(){return this.properties.dayTextureContrast},u_dayTextureHue:function(){return this.properties.dayTextureHue},u_dayTextureSaturation:function(){return this.properties.dayTextureSaturation},u_dayTextureOneOverGamma:function(){return this.properties.dayTextureOneOverGamma},u_dayIntensity:function(){return this.properties.dayIntensity},u_southAndNorthLatitude:function(){return this.properties.southAndNorthLatitude},u_southMercatorYAndOneOverHeight:function(){return this.properties.southMercatorYAndOneOverHeight},u_waterMask:function(){return this.properties.waterMask},u_waterMaskTranslationAndScale:function(){return this.properties.waterMaskTranslationAndScale},u_minMaxHeight:function(){return this.properties.minMaxHeight},u_scaleAndBias:function(){return this.properties.scaleAndBias},u_dayTextureSplit:function(){return this.properties.dayTextureSplit},u_dayTextureCutoutRectangles:function(){return this.properties.dayTextureCutoutRectangles},u_clippingPlanes:function(){let i=t._clippingPlanes;return l(i)&&l(i.texture)?i.texture:e.context.defaultTexture},u_cartographicLimitRectangle:function(){return this.properties.localizedCartographicLimitRectangle},u_clippingPlanesMatrix:function(){let i=t._clippingPlanes,o=l(i)?F.multiply(e.context.uniformState.view,i.modelMatrix,vat):F.IDENTITY;return F.inverseTranspose(o,wat)},u_clippingPlanesEdgeStyle:function(){let i=this.properties.clippingPlanesEdgeColor;return i.alpha=this.properties.clippingPlanesEdgeWidth,i},u_clippingDistance:function(){let i=t._clippingPolygons.clippingTexture;return l(i)?i:e.context.defaultTexture},u_clippingExtents:function(){let i=t._clippingPolygons.extentsTexture;return l(i)?i:e.context.defaultTexture},u_minimumBrightness:function(){return e.fog.minimumBrightness},u_hsbShift:function(){return this.properties.hsbShift},u_colorsToAlpha:function(){return this.properties.colorsToAlpha},u_frontFaceAlphaByDistance:function(){return this.properties.frontFaceAlphaByDistance},u_backFaceAlphaByDistance:function(){return this.properties.backFaceAlphaByDistance},u_translucencyRectangle:function(){return this.properties.localizedTranslucencyRectangle},u_undergroundColor:function(){return this.properties.undergroundColor},u_undergroundColorAlphaByDistance:function(){return this.properties.undergroundColorAlphaByDistance},u_lambertDiffuseMultiplier:function(){return this.properties.lambertDiffuseMultiplier},u_vertexShadowDarkness:function(){return this.properties.vertexShadowDarkness},properties:{initialColor:new oe(0,0,.5,1),fillHighlightColor:new z(0,0,0,0),zoomedOutOceanSpecularIntensity:.5,oceanNormalMap:void 0,lightingFadeDistance:new U(65e5,9e6),nightFadeDistance:new U(1e7,4e7),atmosphereLightIntensity:10,atmosphereRayleighCoefficient:new h(55e-7,13e-6,284e-7),atmosphereMieCoefficient:new h(21e-6,21e-6,21e-6),atmosphereRayleighScaleHeight:1e4,atmosphereMieScaleHeight:3200,atmosphereMieAnisotropy:.9,hsbShift:new h,center3D:void 0,rtc:new h,modifiedModelView:new F,tileRectangle:new oe,verticalExaggerationAndRelativeHeight:new U(1,0),dayTextures:[],dayTextureTranslationAndScale:[],dayTextureTexCoordsRectangle:[],dayTextureUseWebMercatorT:[],dayTextureAlpha:[],dayTextureNightAlpha:[],dayTextureDayAlpha:[],dayTextureBrightness:[],dayTextureContrast:[],dayTextureHue:[],dayTextureSaturation:[],dayTextureOneOverGamma:[],dayTextureSplit:[],dayTextureCutoutRectangles:[],dayIntensity:0,colorsToAlpha:[],southAndNorthLatitude:new U,southMercatorYAndOneOverHeight:new U,waterMask:void 0,waterMaskTranslationAndScale:new oe,minMaxHeight:new U,scaleAndBias:new F,clippingPlanesEdgeColor:z.clone(z.WHITE),clippingPlanesEdgeWidth:0,localizedCartographicLimitRectangle:new oe,frontFaceAlphaByDistance:new oe,backFaceAlphaByDistance:new oe,localizedTranslucencyRectangle:new oe,undergroundColor:z.clone(z.TRANSPARENT),undergroundColorAlphaByDistance:new oe,lambertDiffuseMultiplier:0,vertexShadowDarkness:0}};return l(t.materialUniformMap)?xt(n,t.materialUniformMap):n}function Dat(e,t,n){let i=n.data,o,r;if(l(i.vertexArray)?(o=i.mesh,r=i.vertexArray):l(i.fill)&&l(i.fill.vertexArray)&&(o=i.fill.mesh,r=i.fill.vertexArray),!(!l(o)||!l(r))){if(l(i.wireframeVertexArray)){if(i.wireframeVertexArray.mesh===o)return;i.wireframeVertexArray.destroy(),i.wireframeVertexArray=void 0}i.wireframeVertexArray=Iat(e,r,o),i.wireframeVertexArray.mesh=o}}function Iat(e,t,n){let o={indices:n.indices,primitiveType:Le.TRIANGLES};Nn.toWireframe(o);let r=o.indices,s=yt.createIndexBuffer({context:e,typedArray:r,usage:Fe.STATIC_DRAW,indexDatatype:Ne.fromSizeInBytes(r.BYTES_PER_ELEMENT)});return new ti({context:e,attributes:t._attributes,indexBuffer:s})}var bge,Tge,DU;(function(){let e=new vt({geometry:Ah.fromDimensions({dimensions:new h(2,2,2)})}),t=new vt({geometry:new Hg({radius:1})}),n=new F,i,o;function r(s){return new In({geometryInstances:s,appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})}bge=function(s,a){return s===i||(DU(),i=s,n=F.fromRotationTranslation(s.halfAxes,s.center,n),e.modelMatrix=n,e.attributes.color=qt.fromColor(a),o=r(e)),o},Tge=function(s,a){return s===i||(DU(),i=s,n=F.fromTranslation(s.center,n),n=F.multiplyByUniformScale(n,s.radius,n),t.modelMatrix=n,t.attributes.color=qt.fromColor(a),o=r(t)),o},DU=function(){l(o)&&(o.destroy(),o=void 0,i=void 0)}})();var Pat=new oe(0,0,0,0),Rat={frameState:void 0,surfaceTile:void 0,numberOfDayTextures:void 0,applyBrightness:void 0,applyContrast:void 0,applyHue:void 0,applySaturation:void 0,applyGamma:void 0,applyAlpha:void 0,applyDayNightAlpha:void 0,applySplit:void 0,showReflectiveOcean:void 0,showOceanWaves:void 0,enableLighting:void 0,dynamicAtmosphereLighting:void 0,dynamicAtmosphereLightingFromSun:void 0,showGroundAtmosphere:void 0,perFragmentGroundAtmosphere:void 0,hasVertexNormals:void 0,useWebMercatorProjection:void 0,enableFog:void 0,enableClippingPlanes:void 0,clippingPlanes:void 0,enableClippingPolygons:void 0,clippingPolygons:void 0,clippedByBoundaries:void 0,hasImageryLayerCutout:void 0,colorCorrect:void 0,colorToAlpha:void 0,hasGeodeticSurfaceNormals:void 0,hasExaggeration:void 0},Oat=z.TRANSPARENT,Mat=new Vt;function Lat(e,t,n){let i=t.data;l(i.vertexArray)||(i.fill===void 0&&(i.fill=new SI(t)),i.fill.update(e,n));let o=n.creditDisplay,r=i.terrainData;if(l(r)&&l(r.credits)){let Ae=r.credits;for(let st=0,Fi=Ae.length;st<Fi;++st)o.addCreditToNextFrame(Ae[st])}let s=zt.maximumTextureImageUnits,a=i.waterMaskTexture,c=i.waterMaskTranslationAndScale;!l(a)&&l(i.fill)&&(a=i.fill.waterMaskTexture,c=i.fill.waterMaskTranslationAndScale);let u=n.cameraUnderground,f=n.globeTranslucencyState,d=f.translucent,p=f.frontFaceAlphaByDistance,g=f.backFaceAlphaByDistance,m=f.rectangle,x=y(e.undergroundColor,Oat),b=y(e.undergroundColorAlphaByDistance,Mat),T=xge(e,n)&&n.mode===ne.SCENE3D&&x.alpha>0&&(b.nearValue>0||b.farValue>0),A=e.lambertDiffuseMultiplier,C=e.vertexShadowDarkness,S=e.hasWaterMask&&l(a),v=S&&e.showWaterEffect,D=e.oceanNormalMap,O=v&&l(D),R=e.terrainProvider,M=l(R)&&e.terrainProvider.hasVertexNormals,L=n.fog.enabled&&n.fog.renderable&&!u,_=e.showGroundAtmosphere&&n.mode===ne.SCENE3D,E=yn.castShadows(e.shadows)&&!d,w=yn.receiveShadows(e.shadows)&&!d,I=e.hueShift,N=e.saturationShift,B=e.brightnessShift,H=!(P.equalsEpsilon(I,0,P.EPSILON7)&&P.equalsEpsilon(N,0,P.EPSILON7)&&P.equalsEpsilon(B,0,P.EPSILON7)),V=!1;if(_){let Ae=h.magnitude(n.camera.positionWC),st=e.nightFadeOutDistance;V=Ae>st}S&&--s,O&&--s,l(n.shadowState)&&n.shadowState.shadowsEnabled&&--s,l(e.clippingPlanes)&&e.clippingPlanes.enabled&&--s,l(e.clippingPolygons)&&e.clippingPolygons.enabled&&(--s,--s),s-=f.numberOfTextureUniforms;let G=i.renderedMesh,k=G.center,W=G.encoding,q=i.tileBoundingRegion,J=n.verticalExaggeration,j=n.verticalExaggerationRelativeHeight,Z=J!==1,Q=W.hasGeodeticSurfaceNormals,de=gat,ye=0,ae=0,_e=0,xe=0,Ie=!1;if(n.mode!==ne.SCENE3D){let Ae=n.mapProjection,st=Ae.project(re.southwest(t.rectangle),Tat),Fi=Ae.project(re.northeast(t.rectangle),Aat);if(de.x=st.x,de.y=st.y,de.z=Fi.x,de.w=Fi.y,n.mode!==ne.MORPHING&&(k=bat,k.x=0,k.y=(de.z+de.x)*.5,k.z=(de.w+de.y)*.5,de.x-=k.y,de.y-=k.z,de.z-=k.y,de.w-=k.z),n.mode===ne.SCENE2D&&W.quantization===ua.BITS12){let ut=1/(Math.pow(2,12)-1)*.5,_o=(de.z-de.x)*ut,cr=(de.w-de.y)*ut;de.x-=_o,de.y-=cr,de.z+=_o,de.w+=cr}Ae instanceof Ii&&(ye=t.rectangle.south,ae=t.rectangle.north,_e=Ii.geodeticLatitudeToMercatorAngle(ye),xe=1/(Ii.geodeticLatitudeToMercatorAngle(ae)-_e),Ie=!0)}let Ce=Rat;Ce.frameState=n,Ce.surfaceTile=i,Ce.hasWaterMask=S,Ce.showReflectiveOcean=v,Ce.showOceanWaves=O,Ce.enableLighting=e.enableLighting,Ce.dynamicAtmosphereLighting=e.dynamicAtmosphereLighting,Ce.dynamicAtmosphereLightingFromSun=e.dynamicAtmosphereLightingFromSun,Ce.showGroundAtmosphere=_,Ce.atmosphereLightIntensity=e.atmosphereLightIntensity,Ce.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,Ce.atmosphereMieCoefficient=e.atmosphereMieCoefficient,Ce.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,Ce.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,Ce.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,Ce.perFragmentGroundAtmosphere=V,Ce.hasVertexNormals=M,Ce.useWebMercatorProjection=Ie,Ce.clippedByBoundaries=i.clippedByBoundaries,Ce.hasGeodeticSurfaceNormals=Q,Ce.hasExaggeration=Z;let ke=i.imagery,He=0,rt=ke.length,Lt=e.showSkirts&&!u&&!d,Tt=e.backFaceCulling&&!u&&!d,we=Tt?e._renderState:e._disableCullingRenderState,Xe=Tt?e._blendRenderState:e._disableCullingBlendRenderState,Qe=we,We=e._firstPassInitialColor,Ut=n.context;if(l(e._debug.boundingSphereTile)||DU(),e._materialUniformMap!==e.materialUniformMap){e._materialUniformMap=e.materialUniformMap;let Ae=e._drawCommands.length;for(let st=0;st<Ae;++st)e._uniformMaps[st]=_ge(n,e)}do{let Ae=0,st,Fi;if(e._drawCommands.length<=e._usedDrawCommands?(st=new et,st.owner=t,st.cull=!1,st.boundingVolume=new se,st.orientedBoundingBox=void 0,Fi=_ge(n,e),e._drawCommands.push(st),e._uniformMaps.push(Fi)):(st=e._drawCommands[e._usedDrawCommands],Fi=e._uniformMaps[e._usedDrawCommands]),st.owner=t,++e._usedDrawCommands,t===e._debug.boundingSphereTile){let pa=q.boundingVolume,ho=q.boundingSphere;l(pa)?bge(pa,z.RED).update(n):l(ho)&&Tge(ho,z.RED).update(n)}let ut=Fi.properties;oe.clone(We,ut.initialColor),ut.oceanNormalMap=D,ut.lightingFadeDistance.x=e.lightingFadeOutDistance,ut.lightingFadeDistance.y=e.lightingFadeInDistance,ut.nightFadeDistance.x=e.nightFadeOutDistance,ut.nightFadeDistance.y=e.nightFadeInDistance,ut.atmosphereLightIntensity=e.atmosphereLightIntensity,ut.atmosphereRayleighCoefficient=e.atmosphereRayleighCoefficient,ut.atmosphereMieCoefficient=e.atmosphereMieCoefficient,ut.atmosphereRayleighScaleHeight=e.atmosphereRayleighScaleHeight,ut.atmosphereMieScaleHeight=e.atmosphereMieScaleHeight,ut.atmosphereMieAnisotropy=e.atmosphereMieAnisotropy,ut.zoomedOutOceanSpecularIntensity=e.zoomedOutOceanSpecularIntensity;let _o=u?g:p,cr=u?p:g;l(_o)&&(oe.fromElements(_o.near,_o.nearValue,_o.far,_o.farValue,ut.frontFaceAlphaByDistance),oe.fromElements(cr.near,cr.nearValue,cr.far,cr.farValue,ut.backFaceAlphaByDistance)),oe.fromElements(b.near,b.nearValue,b.far,b.farValue,ut.undergroundColorAlphaByDistance),z.clone(x,ut.undergroundColor),ut.lambertDiffuseMultiplier=A,ut.vertexShadowDarkness=C;let mc=!l(i.vertexArray)&&l(e.fillHighlightColor)&&e.fillHighlightColor.alpha>0;mc&&z.clone(e.fillHighlightColor,ut.fillHighlightColor),ut.verticalExaggerationAndRelativeHeight.x=J,ut.verticalExaggerationAndRelativeHeight.y=j,ut.center3D=G.center,h.clone(k,ut.rtc),oe.clone(de,ut.tileRectangle),ut.southAndNorthLatitude.x=ye,ut.southAndNorthLatitude.y=ae,ut.southMercatorYAndOneOverHeight.x=_e,ut.southMercatorYAndOneOverHeight.y=xe;let Tr=yat,Qr=wU(t.rectangle,e.cartographicLimitRectangle),Be=xat,lt=wU(t.rectangle,m);h.fromElements(I,N,B,ut.hsbShift);let Ye=t.rectangle,$e=1/Ye.width,ht=1/Ye.height;Tr.x=(Qr.west-Ye.west)*$e,Tr.y=(Qr.south-Ye.south)*ht,Tr.z=(Qr.east-Ye.west)*$e,Tr.w=(Qr.north-Ye.south)*ht,oe.clone(Tr,ut.localizedCartographicLimitRectangle),Be.x=(lt.west-Ye.west)*$e,Be.y=(lt.south-Ye.south)*ht,Be.z=(lt.east-Ye.west)*$e,Be.w=(lt.north-Ye.south)*ht,oe.clone(Be,ut.localizedTranslucencyRectangle);let Dt=L&&P.fog(t._distance,n.fog.density)>P.EPSILON3;H=H&&(Dt||_);let pn=!1,fo=!1,er=!1,Oa=!1,Ma=!1,Jr=!1,Yn=!1,hs=!1,Ar=!1,el=!1;for(;Ae<s&&He<rt;){let pa=ke[He],ho=pa.readyImagery;if(++He,!l(ho)||ho.imageryLayer.alpha===0)continue;let S_=pa.useWebMercatorT?ho.textureWebMercator:ho.texture,ai=ho.imageryLayer;l(pa.textureTranslationAndScale)||(pa.textureTranslationAndScale=ai._calculateTextureTranslationAndScale(t,pa)),ut.dayTextures[Ae]=S_,ut.dayTextureTranslationAndScale[Ae]=pa.textureTranslationAndScale,ut.dayTextureTexCoordsRectangle[Ae]=pa.textureCoordinateRectangle,ut.dayTextureUseWebMercatorT[Ae]=pa.useWebMercatorT,ut.dayTextureAlpha[Ae]=ai.alpha,Jr=Jr||ut.dayTextureAlpha[Ae]!==1,ut.dayTextureNightAlpha[Ae]=ai.nightAlpha,Yn=Yn||ut.dayTextureNightAlpha[Ae]!==1,ut.dayTextureDayAlpha[Ae]=ai.dayAlpha,Yn=Yn||ut.dayTextureDayAlpha[Ae]!==1,ut.dayTextureBrightness[Ae]=ai.brightness,pn=pn||ut.dayTextureBrightness[Ae]!==ac.DEFAULT_BRIGHTNESS,ut.dayTextureContrast[Ae]=ai.contrast,fo=fo||ut.dayTextureContrast[Ae]!==ac.DEFAULT_CONTRAST,ut.dayTextureHue[Ae]=ai.hue,er=er||ut.dayTextureHue[Ae]!==ac.DEFAULT_HUE,ut.dayTextureSaturation[Ae]=ai.saturation,Oa=Oa||ut.dayTextureSaturation[Ae]!==ac.DEFAULT_SATURATION,ut.dayTextureOneOverGamma[Ae]=1/ai.gamma,Ma=Ma||ut.dayTextureOneOverGamma[Ae]!==1/ac.DEFAULT_GAMMA,ut.dayTextureSplit[Ae]=ai.splitDirection,hs=hs||ut.dayTextureSplit[Ae]!==0;let pc=ut.dayTextureCutoutRectangles[Ae];if(l(pc)||(pc=ut.dayTextureCutoutRectangles[Ae]=new oe),oe.clone(oe.ZERO,pc),l(ai.cutoutRectangle)){let yo=wU(Ye,ai.cutoutRectangle),ku=re.simpleIntersection(yo,Ye,yge);Ar=l(ku)||Ar,pc.x=(yo.west-Ye.west)*$e,pc.y=(yo.south-Ye.south)*ht,pc.z=(yo.east-Ye.west)*$e,pc.w=(yo.north-Ye.south)*ht}let Vl=ut.colorsToAlpha[Ae];l(Vl)||(Vl=ut.colorsToAlpha[Ae]=new oe);let Bu=l(ai.colorToAlpha)&&ai.colorToAlphaThreshold>0;if(el=el||Bu,Bu){let yo=ai.colorToAlpha;Vl.x=yo.red,Vl.y=yo.green,Vl.z=yo.blue,Vl.w=ai.colorToAlphaThreshold}else Vl.w=-1;if(l(ho.credits)){let yo=ho.credits;for(let ku=0,Gb=yo.length;ku<Gb;++ku)o.addCreditToNextFrame(yo[ku])}++Ae}ut.dayTextures.length=Ae,ut.waterMask=a,oe.clone(c,ut.waterMaskTranslationAndScale),ut.minMaxHeight.x=W.minimumHeight,ut.minMaxHeight.y=W.maximumHeight,F.clone(W.matrix,ut.scaleAndBias);let go=e._clippingPlanes,kr=l(go)&&go.enabled&&t.isClipped;kr&&(ut.clippingPlanesEdgeColor=z.clone(go.edgeColor,ut.clippingPlanesEdgeColor),ut.clippingPlanesEdgeWidth=go.edgeWidth);let Um=e._clippingPolygons,tl=l(Um)&&Um.enabled&&t.isClipped;Ce.numberOfDayTextures=Ae,Ce.applyBrightness=pn,Ce.applyContrast=fo,Ce.applyHue=er,Ce.applySaturation=Oa,Ce.applyGamma=Ma,Ce.applyAlpha=Jr,Ce.applyDayNightAlpha=Yn,Ce.applySplit=hs,Ce.enableFog=Dt,Ce.enableClippingPlanes=kr,Ce.clippingPlanes=go,Ce.enableClippingPolygons=tl,Ce.clippingPolygons=Um,Ce.hasImageryLayerCutout=Ar,Ce.colorCorrect=H,Ce.highlightFillTile=mc,Ce.colorToAlpha=el,Ce.showUndergroundColor=T,Ce.translucent=d;let zm=i.renderedMesh.indices.length;Lt||(zm=i.renderedMesh.indexCountWithoutSkirts),st.shaderProgram=e._surfaceShaderSet.getShaderProgram(Ce),st.castShadows=E,st.receiveShadows=w,st.renderState=Qe,st.primitiveType=Le.TRIANGLES,st.vertexArray=i.vertexArray||i.fill.vertexArray,st.count=zm,st.uniformMap=Fi,st.pass=ve.GLOBE,e._debug.wireframe&&(Dat(Ut,e,t),l(i.wireframeVertexArray)&&(st.vertexArray=i.wireframeVertexArray,st.primitiveType=Le.LINES,st.count=zm*2));let La=st.boundingVolume,Cr=st.orientedBoundingBox;n.mode!==ne.SCENE3D?(se.fromRectangleWithHeights2D(t.rectangle,n.mapProjection,q.minimumHeight,q.maximumHeight,La),h.fromElements(La.center.z,La.center.x,La.center.y,La.center),n.mode===ne.MORPHING&&(La=se.union(q.boundingSphere,La,La))):(st.boundingVolume=se.clone(q.boundingSphere,La),st.orientedBoundingBox=wn.clone(q.boundingVolume,Cr)),st.dirty=!0,d&&f.updateDerivedCommands(st,n),gge(st,n),Qe=Xe,We=Pat}while(He<rt)}var IU=$o;function Age(){this._enabled=!1,this._frontFaceAlpha=1,this._frontFaceAlphaByDistance=void 0,this._backFaceAlpha=1,this._backFaceAlphaByDistance=void 0,this._rectangle=re.clone(re.MAX_VALUE)}Object.defineProperties(Age.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this._enabled=e}},frontFaceAlpha:{get:function(){return this._frontFaceAlpha},set:function(e){this._frontFaceAlpha=e}},frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance},set:function(e){this._frontFaceAlphaByDistance=Vt.clone(e,this._frontFaceAlphaByDistance)}},backFaceAlpha:{get:function(){return this._backFaceAlpha},set:function(e){this._backFaceAlpha=e}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance},set:function(e){this._backFaceAlphaByDistance=Vt.clone(e,this._backFaceAlphaByDistance)}},rectangle:{get:function(){return this._rectangle},set:function(e){l(e)||(e=re.clone(re.MAX_VALUE)),re.clone(e,this._rectangle)}}});var PU=Age;function ws(){this._layers=[],this.layerAdded=new me,this.layerRemoved=new me,this.layerMoved=new me,this.layerShownOrHidden=new me}Object.defineProperties(ws.prototype,{length:{get:function(){return this._layers.length}}});ws.prototype.add=function(e,t){l(t)?this._layers.splice(t,0,e):(t=this._layers.length,this._layers.push(e)),this._update(),this.layerAdded.raiseEvent(e,t);let i=e.readyEvent.addEventListener(()=>{this.layerShownOrHidden.raiseEvent(e,e._layerIndex,e.show),i()})};ws.prototype.addImageryProvider=function(e,t){let n=new ac(e);return this.add(n,t),n};ws.prototype.remove=function(e,t){t=y(t,!0);let n=this._layers.indexOf(e);return n!==-1?(this._layers.splice(n,1),this._update(),this.layerRemoved.raiseEvent(e,n),t&&e.destroy(),!0):!1};ws.prototype.removeAll=function(e){e=y(e,!0);let t=this._layers;for(let n=0,i=t.length;n<i;n++){let o=t[n];this.layerRemoved.raiseEvent(o,n),e&&o.destroy()}this._layers=[]};ws.prototype.contains=function(e){return this.indexOf(e)!==-1};ws.prototype.indexOf=function(e){return this._layers.indexOf(e)};ws.prototype.get=function(e){return this._layers[e]};function RU(e,t){return e.indexOf(t)}function Cge(e,t,n){let i=e._layers;if(t=P.clamp(t,0,i.length-1),n=P.clamp(n,0,i.length-1),t===n)return;let o=i[t];i[t]=i[n],i[n]=o,e._update(),e.layerMoved.raiseEvent(o,n,t)}ws.prototype.raise=function(e){let t=RU(this._layers,e);Cge(this,t,t+1)};ws.prototype.lower=function(e){let t=RU(this._layers,e);Cge(this,t,t-1)};ws.prototype.raiseToTop=function(e){let t=RU(this._layers,e);t!==this._layers.length-1&&(this._layers.splice(t,1),this._layers.push(e),this._update(),this.layerMoved.raiseEvent(e,this._layers.length-1,t))};ws.prototype.lowerToBottom=function(e){let t=RU(this._layers,e);t!==0&&(this._layers.splice(t,1),this._layers.splice(0,0,e),this._update(),this.layerMoved.raiseEvent(e,0,t))};var Nat=new re;function Ege(e,t,n,i){let o=e.globe._surface._tilesToRender,r;for(let a=0;!l(r)&&a<o.length;++a){let c=o[a];re.contains(c.rectangle,t)&&(r=c)}if(!l(r))return;let s=r.data.imagery;for(let a=s.length-1;a>=0;--a){let c=s[a],u=c.readyImagery;if(!l(u)||!u.imageryLayer.ready)continue;let f=u.imageryLayer.imageryProvider;if(n&&!l(f.pickFeatures)||!re.contains(u.rectangle,t))continue;let d=Nat,p=1/1024;d.west=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.x-p),d.east=P.lerp(r.rectangle.west,r.rectangle.east,c.textureCoordinateRectangle.z+p),d.south=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.y-p),d.north=P.lerp(r.rectangle.south,r.rectangle.north,c.textureCoordinateRectangle.w+p),re.contains(d,t)&&i(u)}}ws.prototype.pickImageryLayers=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[];if(Ege(t,i,!1,function(r){o.push(r.imageryLayer)}),o.length!==0)return o};ws.prototype.pickImageryLayerFeatures=function(e,t){let n=t.globe.pick(e,t);if(!l(n))return;let i=t.ellipsoid.cartesianToCartographic(n),o=[],r=[];if(Ege(t,i,!0,function(s){if(!s.imageryLayer.ready)return;let c=s.imageryLayer.imageryProvider.pickFeatures(s.x,s.y,s.level,i.longitude,i.latitude);l(c)&&(o.push(c),r.push(s.imageryLayer))}),o.length!==0)return Promise.all(o).then(function(s){let a=[];for(let c=0;c<s.length;++c){let u=s[c],f=r[c];if(l(u)&&u.length>0)for(let d=0;d<u.length;++d){let p=u[d];p.imageryLayer=f,l(p.position)||(p.position=i),a.push(p)}}return a})};ws.prototype.queueReprojectionCommands=function(e){let t=this._layers;for(let n=0,i=t.length;n<i;++n)t[n].queueReprojectionCommands(e)};ws.prototype.cancelReprojections=function(){let e=this._layers;for(let t=0,n=e.length;t<n;++t)e[t].cancelReprojections()};ws.prototype.isDestroyed=function(){return!1};ws.prototype.destroy=function(){return this.removeAll(!0),ue(this)};ws.prototype._update=function(){let e=!0,t=this._layers,n,i,o,r;for(o=0,r=t.length;o<r;++o)i=t[o],i._layerIndex=o,i.show?(i._isBaseLayer=e,e=!1):i._isBaseLayer=!1,i.show!==i._show&&(l(i._show)&&(l(n)||(n=[]),n.push(i)),i._show=i.show);if(l(n))for(o=0,r=n.length;o<r;++o)i=n[o],this.layerShownOrHidden.raiseEvent(i,i._layerIndex,i.show)};var OU=ws;function Sge(e){this._ellipsoid=new Qg(e.ellipsoid,h.ZERO)}Object.defineProperties(Sge.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var MU=Sge;function Yc(e){this._tilingScheme=e.tilingScheme,this._x=e.x,this._y=e.y,this._level=e.level,this._parent=e.parent,this._rectangle=this._tilingScheme.tileXYToRectangle(this._x,this._y,this._level),this._southwestChild=void 0,this._southeastChild=void 0,this._northwestChild=void 0,this._northeastChild=void 0,this.replacementPrevious=void 0,this.replacementNext=void 0,this._distance=0,this._loadPriority=0,this._customData=[],this._frameUpdated=void 0,this._lastSelectionResult=qn.NONE,this._lastSelectionResultFrame=void 0,this._loadedCallbacks={},this.state=fa.START,this.renderable=!1,this.upsampledFromParent=!1,this.data=void 0}Yc.createLevelZeroTiles=function(e){let t=e.getNumberOfXTilesAtLevel(0),n=e.getNumberOfYTilesAtLevel(0),i=new Array(t*n),o=0;for(let r=0;r<n;++r)for(let s=0;s<t;++s)i[o++]=new Yc({tilingScheme:e,x:s,y:r,level:0});return i};Yc.prototype._updateCustomData=function(e,t,n){let i=this.customData,o,r,s;if(l(t)&&l(n)){for(i=i.filter(function(a){return n.indexOf(a)===-1}),this._customData=i,s=this._rectangle,o=0;o<t.length;++o)r=t[o],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=e}else{let a=this._parent;if(l(a)&&this._frameUpdated!==a._frameUpdated){i.length=0,s=this._rectangle;let c=a.customData;for(o=0;o<c.length;++o)r=c[o],re.contains(s,r.positionCartographic)&&i.push(r);this._frameUpdated=a._frameUpdated}}};Object.defineProperties(Yc.prototype,{tilingScheme:{get:function(){return this._tilingScheme}},x:{get:function(){return this._x}},y:{get:function(){return this._y}},level:{get:function(){return this._level}},parent:{get:function(){return this._parent}},rectangle:{get:function(){return this._rectangle}},children:{get:function(){return[this.northwestChild,this.northeastChild,this.southwestChild,this.southeastChild]}},southwestChild:{get:function(){return l(this._southwestChild)||(this._southwestChild=new Yc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2+1,level:this.level+1,parent:this})),this._southwestChild}},southeastChild:{get:function(){return l(this._southeastChild)||(this._southeastChild=new Yc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2+1,level:this.level+1,parent:this})),this._southeastChild}},northwestChild:{get:function(){return l(this._northwestChild)||(this._northwestChild=new Yc({tilingScheme:this.tilingScheme,x:this.x*2,y:this.y*2,level:this.level+1,parent:this})),this._northwestChild}},northeastChild:{get:function(){return l(this._northeastChild)||(this._northeastChild=new Yc({tilingScheme:this.tilingScheme,x:this.x*2+1,y:this.y*2,level:this.level+1,parent:this})),this._northeastChild}},customData:{get:function(){return this._customData}},needsLoading:{get:function(){return this.state<fa.DONE}},eligibleForUnloading:{get:function(){let e=!0;return l(this.data)&&(e=this.data.eligibleForUnloading,l(e)||(e=!0)),e}}});Yc.prototype.findLevelZeroTile=function(e,t,n){let i=this.tilingScheme.getNumberOfXTilesAtLevel(0);if(t<0?t+=i:t>=i&&(t-=i),!(n<0||n>=this.tilingScheme.getNumberOfYTilesAtLevel(0)))return e.filter(function(o){return o.x===t&&o.y===n})[0]};Yc.prototype.findTileToWest=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x-1,this.y);if(t.southeastChild===this)return t.southwestChild;if(t.northeastChild===this)return t.northwestChild;let n=t.findTileToWest(e);if(n!==void 0)return t.southwestChild===this?n.southeastChild:n.northeastChild};Yc.prototype.findTileToEast=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x+1,this.y);if(t.southwestChild===this)return t.southeastChild;if(t.northwestChild===this)return t.northeastChild;let n=t.findTileToEast(e);if(n!==void 0)return t.southeastChild===this?n.southwestChild:n.northwestChild};Yc.prototype.findTileToSouth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y+1);if(t.northwestChild===this)return t.southwestChild;if(t.northeastChild===this)return t.southeastChild;let n=t.findTileToSouth(e);if(n!==void 0)return t.southwestChild===this?n.northwestChild:n.northeastChild};Yc.prototype.findTileToNorth=function(e){let t=this.parent;if(t===void 0)return this.findLevelZeroTile(e,this.x,this.y-1);if(t.southwestChild===this)return t.northwestChild;if(t.southeastChild===this)return t.northeastChild;let n=t.findTileToNorth(e);if(n!==void 0)return t.northwestChild===this?n.southwestChild:n.southeastChild};Yc.prototype.freeResources=function(){this.state=fa.START,this.renderable=!1,this.upsampledFromParent=!1,l(this.data)&&l(this.data.freeResources)&&this.data.freeResources(),LU(this._southwestChild),this._southwestChild=void 0,LU(this._southeastChild),this._southeastChild=void 0,LU(this._northwestChild),this._northwestChild=void 0,LU(this._northeastChild),this._northeastChild=void 0};function LU(e){l(e)&&e.freeResources()}var NU=Yc;function FU(){this.head=void 0,this.tail=void 0,this.count=0,this._lastBeforeStartOfFrame=void 0}FU.prototype.markStartOfRenderFrame=function(){this._lastBeforeStartOfFrame=this.head};FU.prototype.trimTiles=function(e){let t=this.tail,n=!0;for(;n&&l(this._lastBeforeStartOfFrame)&&this.count>e&&l(t);){n=t!==this._lastBeforeStartOfFrame;let i=t.replacementPrevious;t.eligibleForUnloading&&(t.freeResources(),vge(this,t)),t=i}};function vge(e,t){let n=t.replacementPrevious,i=t.replacementNext;t===e._lastBeforeStartOfFrame&&(e._lastBeforeStartOfFrame=i),t===e.head?e.head=i:n.replacementNext=i,t===e.tail?e.tail=n:i.replacementPrevious=n,t.replacementPrevious=void 0,t.replacementNext=void 0,--e.count}FU.prototype.markTileRendered=function(e){let t=this.head;if(t===e){e===this._lastBeforeStartOfFrame&&(this._lastBeforeStartOfFrame=e.replacementNext);return}if(++this.count,!l(t)){e.replacementPrevious=void 0,e.replacementNext=void 0,this.head=e,this.tail=e;return}(l(e.replacementPrevious)||l(e.replacementNext))&&vge(this,e),e.replacementPrevious=void 0,e.replacementNext=t,t.replacementPrevious=e,this.head=e};var BU=FU;function kf(e){this._tileProvider=e.tileProvider,this._tileProvider.quadtree=this,this._debug={enableDebugOutput:!1,maxDepth:0,maxDepthVisited:0,tilesVisited:0,tilesCulled:0,tilesRendered:0,tilesWaitingForChildren:0,lastMaxDepth:-1,lastMaxDepthVisited:-1,lastTilesVisited:-1,lastTilesCulled:-1,lastTilesRendered:-1,lastTilesWaitingForChildren:-1,suspendLodUpdate:!1};let n=this._tileProvider.tilingScheme.ellipsoid;this._tilesToRender=[],this._tileLoadQueueHigh=[],this._tileLoadQueueMedium=[],this._tileLoadQueueLow=[],this._tileReplacementQueue=new BU,this._levelZeroTiles=void 0,this._loadQueueTimeSlice=5,this._tilesInvalidated=!1,this._addHeightCallbacks=[],this._removeHeightCallbacks=[],this._tileToUpdateHeights=[],this._lastTileIndex=0,this._updateHeightsTimeSlice=2,this._cameraPositionCartographic=void 0,this._cameraReferenceFrameOriginCartographic=void 0,this.maximumScreenSpaceError=y(e.maximumScreenSpaceError,2),this.tileCacheSize=y(e.tileCacheSize,100),this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this._occluders=new MU({ellipsoid:n}),this._tileLoadProgressEvent=new me,this._lastTileLoadQueueLength=0,this._lastSelectionFrameNumber=void 0}Object.defineProperties(kf.prototype,{tileProvider:{get:function(){return this._tileProvider}},tileLoadProgressEvent:{get:function(){return this._tileLoadProgressEvent}},occluders:{get:function(){return this._occluders}}});kf.prototype.invalidateAllTiles=function(){this._tilesInvalidated=!0};function Fat(e){let t=e._tileReplacementQueue;t.head=void 0,t.tail=void 0,t.count=0,Dge(e);let n=e._levelZeroTiles;if(l(n))for(let i=0;i<n.length;++i){let r=n[i].customData,s=r.length;for(let a=0;a<s;++a){let c=r[a];c.level=0,e._addHeightCallbacks.push(c)}n[i].freeResources()}e._levelZeroTiles=void 0,e._tileProvider.cancelReprojections()}kf.prototype.forEachLoadedTile=function(e){let t=this._tileReplacementQueue.head;for(;l(t);)t.state!==fa.START&&e(t),t=t.replacementNext};kf.prototype.forEachRenderedTile=function(e){let t=this._tilesToRender;for(let n=0,i=t.length;n<i;++n)e(t[n])};kf.prototype.updateHeight=function(e,t){let n=this,i={positionOnEllipsoidSurface:void 0,positionCartographic:e,level:-1,callback:t};return i.removeFunc=function(){let o=n._addHeightCallbacks,r=o.length;for(let s=0;s<r;++s)if(o[s]===i){o.splice(s,1);break}n._removeHeightCallbacks.push(i),i.callback&&(i.callback=void 0)},n._addHeightCallbacks.push(i),i.removeFunc};kf.prototype.update=function(e){l(this._tileProvider.update)&&this._tileProvider.update(e)};function Dge(e){let t=e._debug;t.maxDepth=0,t.maxDepthVisited=0,t.tilesVisited=0,t.tilesCulled=0,t.tilesRendered=0,t.tilesWaitingForChildren=0,e._tileLoadQueueHigh.length=0,e._tileLoadQueueMedium.length=0,e._tileLoadQueueLow.length=0}kf.prototype.beginFrame=function(e){e.passes.render&&(this._tilesInvalidated&&(Fat(this),this._tilesInvalidated=!1),this._tileProvider.initialize(e),Dge(this),!this._debug.suspendLodUpdate&&this._tileReplacementQueue.markStartOfRenderFrame())};kf.prototype.render=function(e){let t=e.passes,n=this._tileProvider;t.render&&(n.beginUpdate(e),Uat(this,e),Zat(this,e),n.endUpdate(e)),t.pick&&this._tilesToRender.length>0&&n.updateForPick(e)};function Bat(e,t){let n=e._tileLoadQueueHigh.length+e._tileLoadQueueMedium.length+e._tileLoadQueueLow.length;if(n!==e._lastTileLoadQueueLength||e._tilesInvalidated){let o=me.prototype.raiseEvent.bind(e._tileLoadProgressEvent,n);t.afterRender.push(()=>(o(),!0)),e._lastTileLoadQueueLength=n}let i=e._debug;i.enableDebugOutput&&!i.suspendLodUpdate&&(i.maxDepth=e._tilesToRender.reduce(function(o,r){return Math.max(o,r.level)},-1),i.tilesRendered=e._tilesToRender.length,(i.tilesVisited!==i.lastTilesVisited||i.tilesRendered!==i.lastTilesRendered||i.tilesCulled!==i.lastTilesCulled||i.maxDepth!==i.lastMaxDepth||i.tilesWaitingForChildren!==i.lastTilesWaitingForChildren||i.maxDepthVisited!==i.lastMaxDepthVisited)&&(console.log(`Visited ${i.tilesVisited}, Rendered: ${i.tilesRendered}, Culled: ${i.tilesCulled}, Max Depth Rendered: ${i.maxDepth}, Max Depth Visited: ${i.maxDepthVisited}, Waiting for children: ${i.tilesWaitingForChildren}`),i.lastTilesVisited=i.tilesVisited,i.lastTilesRendered=i.tilesRendered,i.lastTilesCulled=i.tilesCulled,i.lastMaxDepth=i.maxDepth,i.lastTilesWaitingForChildren=i.tilesWaitingForChildren,i.lastMaxDepthVisited=i.maxDepthVisited))}kf.prototype.endFrame=function(e){!e.passes.render||e.mode===ne.MORPHING||(qat(this,e),Kat(this,e),Bat(this,e))};kf.prototype.isDestroyed=function(){return!1};kf.prototype.destroy=function(){this._tileProvider=this._tileProvider&&this._tileProvider.destroy()};var wI,wge=new fe;function kat(e,t){let n=re.center(e.rectangle,wge),i=n.longitude-wI.longitude,o=n.latitude-wI.latitude;n=re.center(t.rectangle,wge);let r=n.longitude-wI.longitude,s=n.latitude-wI.latitude;return i*i+o*o-(r*r+s*s)}var Vat=new h,vI=[];function Uat(e,t){let n=e._debug;if(n.suspendLodUpdate)return;let i=e._tilesToRender;i.length=0;let o,r=e._tileProvider;if(!l(e._levelZeroTiles)){let x=r.tilingScheme;if(l(x)){let b=r.tilingScheme;e._levelZeroTiles=NU.createLevelZeroTiles(b);let T=e._levelZeroTiles.length;if(vI.length<T)for(vI=new Array(T),o=0;o<T;++o)vI[o]===void 0&&(vI[o]=new DI)}else return}e._occluders.ellipsoid.cameraPosition=t.camera.positionWC;let s,a=e._levelZeroTiles,c=a.length>1?e._occluders:void 0;wI=t.camera.positionCartographic,a.sort(kat);let u=e._addHeightCallbacks,f=e._removeHeightCallbacks,d=t.frameNumber,p;if(u.length>0||f.length>0){for(o=0,p=a.length;o<p;++o)s=a[o],s._updateCustomData(d,u,f);u.length=0,f.length=0}let g=t.camera;e._cameraPositionCartographic=g.positionCartographic;let m=F.getTranslation(g.transform,Vat);for(e._cameraReferenceFrameOriginCartographic=e.tileProvider.tilingScheme.ellipsoid.cartesianToCartographic(m,e._cameraReferenceFrameOriginCartographic),o=0,p=a.length;o<p;++o)s=a[o],e._tileReplacementQueue.markTileRendered(s),s.renderable?Ia(e,s,r,t,c,!1,vI[o]):(l_(e,e._tileLoadQueueHigh,s,t),++n.tilesWaitingForChildren);e._lastSelectionFrameNumber=d}function l_(e,t,n,i){n.needsLoading&&(e.tileProvider.computeTileLoadPriority!==void 0&&(n._loadPriority=e.tileProvider.computeTileLoadPriority(n,i)),t.push(n))}function DI(){this.allAreRenderable=!0,this.anyWereRenderedLastFrame=!1,this.notYetRenderableCount=0}function Ige(){this.southwest=new DI,this.southeast=new DI,this.northwest=new DI,this.northeast=new DI}Ige.prototype.combine=function(e){let t=this.southwest,n=this.southeast,i=this.northwest,o=this.northeast;e.allAreRenderable=t.allAreRenderable&&n.allAreRenderable&&i.allAreRenderable&&o.allAreRenderable,e.anyWereRenderedLastFrame=t.anyWereRenderedLastFrame||n.anyWereRenderedLastFrame||i.anyWereRenderedLastFrame||o.anyWereRenderedLastFrame,e.notYetRenderableCount=t.notYetRenderableCount+n.notYetRenderableCount+i.notYetRenderableCount+o.notYetRenderableCount};var ZY=new Array(31);for(let e=0;e<ZY.length;++e)ZY[e]=new Ige;function zat(e,t,n,i,o){let r=e._debug;++r.tilesVisited,e._tileReplacementQueue.markTileRendered(n),n._updateCustomData(t.frameNumber),n.level>r.maxDepthVisited&&(r.maxDepthVisited=n.level);let s=Wat(e,t,n)<e.maximumScreenSpaceError,a=n.southwestChild,c=n.southeastChild,u=n.northwestChild,f=n.northeastChild,d=e._lastSelectionFrameNumber,p=n._lastSelectionResultFrame===d?n._lastSelectionResult:qn.NONE,g=e.tileProvider;if(s||i){let m=qn.originalResult(p)===qn.RENDERED,x=qn.originalResult(p)===qn.CULLED||p===qn.NONE,b=n.state===fa.DONE,T=m||x||b;if(T||l(g.canRenderWithoutLosingDetail)&&(T=g.canRenderWithoutLosingDetail(n)),T){s&&l_(e,e._tileLoadQueueMedium,n,t),kU(e,n),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}i=!0,s&&l_(e,e._tileLoadQueueHigh,n,t)}if(g.canRefine(n)){if(a.upsampledFromParent&&c.upsampledFromParent&&u.upsampledFromParent&&f.upsampledFromParent){kU(e,n),l_(e,e._tileLoadQueueMedium,n,t),e._tileReplacementQueue.markTileRendered(a),e._tileReplacementQueue.markTileRendered(c),e._tileReplacementQueue.markTileRendered(u),e._tileReplacementQueue.markTileRendered(f),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1,n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=qn.RENDERED,o.anyWereRenderedLastFrame||e._tileToUpdateHeights.push(n);return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=qn.REFINED;let x=e._tilesToRender.length,b=e._tileLoadQueueLow.length,T=e._tileLoadQueueMedium.length,A=e._tileLoadQueueHigh.length,C=e._tileToUpdateHeights.length;if(Hat(e,a,c,u,f,t,i,o),x!==e._tilesToRender.length){let S=o.allAreRenderable,v=o.anyWereRenderedLastFrame,D=o.notYetRenderableCount,O=!1;if(!S&&!v){let R=e._tilesToRender;for(let L=x;L<R.length;++L){let _=R[L];for(;_!==void 0&&_._lastSelectionResult!==qn.KICKED&&_!==n;)_._lastSelectionResult=qn.kick(_._lastSelectionResult),_=_.parent}e._tilesToRender.length=x,e._tileToUpdateHeights.length=C,kU(e,n),n._lastSelectionResult=qn.RENDERED;let M=p===qn.RENDERED;!M&&D>e.loadingDescendantLimit&&(e._tileLoadQueueLow.length=b,e._tileLoadQueueMedium.length=T,e._tileLoadQueueHigh.length=A,l_(e,e._tileLoadQueueMedium,n,t),o.notYetRenderableCount=n.renderable?0:1,O=!0),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=M,M||e._tileToUpdateHeights.push(n),++r.tilesWaitingForChildren}e.preloadAncestors&&!O&&l_(e,e._tileLoadQueueLow,n,t)}return}n._lastSelectionResultFrame=t.frameNumber,n._lastSelectionResult=qn.RENDERED,kU(e,n),l_(e,e._tileLoadQueueHigh,n,t),o.allAreRenderable=n.renderable,o.anyWereRenderedLastFrame=p===qn.RENDERED,o.notYetRenderableCount=n.renderable?0:1}function Hat(e,t,n,i,o,r,s,a){let c=r.camera.positionCartographic,u=e._tileProvider,f=e._occluders,d=ZY[t.level],p=d.southwest,g=d.southeast,m=d.northwest,x=d.northeast;c.longitude<t.rectangle.east?c.latitude<t.rectangle.north?(Ia(e,t,u,r,f,s,p),Ia(e,n,u,r,f,s,g),Ia(e,i,u,r,f,s,m),Ia(e,o,u,r,f,s,x)):(Ia(e,i,u,r,f,s,m),Ia(e,t,u,r,f,s,p),Ia(e,o,u,r,f,s,x),Ia(e,n,u,r,f,s,g)):c.latitude<t.rectangle.north?(Ia(e,n,u,r,f,s,g),Ia(e,t,u,r,f,s,p),Ia(e,o,u,r,f,s,x),Ia(e,i,u,r,f,s,m)):(Ia(e,o,u,r,f,s,x),Ia(e,i,u,r,f,s,m),Ia(e,n,u,r,f,s,g),Ia(e,t,u,r,f,s,p)),d.combine(a)}function Gat(e,t){let n=t.rectangle;return l(e._cameraPositionCartographic)&&re.contains(n,e._cameraPositionCartographic)||l(e._cameraReferenceFrameOriginCartographic)&&re.contains(n,e._cameraReferenceFrameOriginCartographic)}function Ia(e,t,n,i,o,r,s){if(n.computeTileVisibility(t,i,o)!==xr.NONE)return zat(e,i,t,r,s);if(++e._debug.tilesCulled,e._tileReplacementQueue.markTileRendered(t),s.allAreRenderable=!0,s.anyWereRenderedLastFrame=!1,s.notYetRenderableCount=0,Gat(e,t)){(!l(t.data)||!l(t.data.vertexArray))&&l_(e,e._tileLoadQueueMedium,t,i);let a=e._lastSelectionFrameNumber,c=t._lastSelectionResultFrame===a?t._lastSelectionResult:qn.NONE;c!==qn.CULLED_BUT_NEEDED&&c!==qn.RENDERED&&e._tileToUpdateHeights.push(t),t._lastSelectionResult=qn.CULLED_BUT_NEEDED}else e.preloadSiblings||t.level===0?(l_(e,e._tileLoadQueueLow,t,i),t._lastSelectionResult=qn.CULLED):t._lastSelectionResult=qn.CULLED;t._lastSelectionResultFrame=i.frameNumber}function Wat(e,t,n){if(t.mode===ne.SCENE2D||t.camera.frustum instanceof rn||t.camera.frustum instanceof Ur)return jat(e,t,n);let i=e._tileProvider.getLevelMaximumGeometricError(n.level),o=n._distance,r=t.context.drawingBufferHeight,s=t.camera.frustum.sseDenominator,a=i*r/(o*s);return t.fog.enabled&&(a-=P.fog(o,t.fog.density)*t.fog.sse),a/=t.pixelRatio,a}function jat(e,t,n){let o=t.camera.frustum,r=o.offCenterFrustum;l(r)&&(o=r);let s=t.context,a=s.drawingBufferWidth,c=s.drawingBufferHeight,u=e._tileProvider.getLevelMaximumGeometricError(n.level),f=Math.max(o.top-o.bottom,o.right-o.left)/Math.max(a,c),d=u/f;return t.fog.enabled&&t.mode!==ne.SCENE2D&&(d-=P.fog(n._distance,t.fog.density)*t.fog.sse),d/=t.pixelRatio,d}function kU(e,t){e._tilesToRender.push(t)}function qat(e,t){let n=e._tileLoadQueueHigh,i=e._tileLoadQueueMedium,o=e._tileLoadQueueLow;if(n.length===0&&i.length===0&&o.length===0)return;e._tileReplacementQueue.trimTiles(e.tileCacheSize);let r=Ti()+e._loadQueueTimeSlice,s=e._tileProvider,a=XY(e,t,s,r,n,!1);a=XY(e,t,s,r,i,a),XY(e,t,s,r,o,a)}function Yat(e,t){return e._loadPriority-t._loadPriority}function XY(e,t,n,i,o,r){n.computeTileLoadPriority!==void 0&&o.sort(Yat);for(let s=0,a=o.length;s<a&&(Ti()<i||!r);++s){let c=o[s];e._tileReplacementQueue.markTileRendered(c),n.loadTile(t,c),r=!0}return r}var ME=new mn,KY=new fe,Uy=new h,Xat=[];function Kat(e,t){if(!l(e.tileProvider.tilingScheme))return;let n=Xat;n.length=0;let i=e._tileToUpdateHeights,o=Ti(),r=e._updateHeightsTimeSlice,s=o+r,a=t.mode,c=t.mapProjection,u=e.tileProvider.tilingScheme.ellipsoid,f;for(;i.length>0;){let d=i[0];if(!l(d.data)||!l(d.data.mesh)){let x=d._lastSelectionResultFrame===e._lastSelectionFrameNumber?d._lastSelectionResult:qn.NONE;(x===qn.RENDERED||x===qn.CULLED_BUT_NEEDED)&&n.push(d),i.shift(),e._lastTileIndex=0;continue}let p=d.customData,g=p.length,m=!1;for(f=e._lastTileIndex;f<g;++f){let x=p[f],b=d.data.terrainData,T=l(b)&&b.wasCreatedByUpsampling();if(d.level>x.level&&!T){if(l(x.positionOnEllipsoidSurface)||(x.positionOnEllipsoidSurface=h.fromRadians(x.positionCartographic.longitude,x.positionCartographic.latitude,0,u)),a===ne.SCENE3D){let C=u.geodeticSurfaceNormal(x.positionOnEllipsoidSurface,ME.direction),S=u.getSurfaceNormalIntersectionWithZAxis(x.positionOnEllipsoidSurface,11500,ME.origin);if(!l(S)){let v=0;l(d.data.tileBoundingRegion)&&(v=d.data.tileBoundingRegion.minimumHeight);let D=Math.min(v,-11500),O=h.multiplyByScalar(C,Math.abs(D)+1,Uy);h.subtract(x.positionOnEllipsoidSurface,O,ME.origin)}}else fe.clone(x.positionCartographic,KY),KY.height=-11500,c.project(KY,Uy),h.fromElements(Uy.z,Uy.x,Uy.y,Uy),h.clone(Uy,ME.origin),h.clone(h.UNIT_X,ME.direction);let A=d.data.pick(ME,a,c,!1,Uy);l(A)&&(l(x.callback)&&x.callback(A),x.level=d.level)}if(Ti()>=s){m=!0;break}}if(m){e._lastTileIndex=f;break}else e._lastTileIndex=0,i.shift()}for(f=0;f<n.length;f++)i.push(n[f])}function Zat(e,t){let n=e._tileProvider,i=e._tilesToRender;for(let o=0,r=i.length;o<r;++o){let s=i[o];n.showTileThisFrame(s,t)}}var VU=kf;function Zd(e){e=y(e,ee.default);let t=new c_({ellipsoid:e}),n=new OU;this._ellipsoid=e,this._imageryLayerCollection=n,this._surfaceShaderSet=new eU,this._material=void 0,this._surface=new VU({tileProvider:new IU({terrainProvider:t,imageryLayers:n,surfaceShaderSet:this._surfaceShaderSet})}),this._terrainProvider=t,this._terrainProviderChanged=new me,this._undergroundColor=z.clone(z.BLACK),this._undergroundColorAlphaByDistance=new Vt(e.maximumRadius/1e3,0,e.maximumRadius/5,1),this._translucency=new PU,QY(this),this.show=!0,this._oceanNormalMapResourceDirty=!0,this._oceanNormalMapResource=new De({url:nn("Assets/Textures/waterNormalsSmall.jpg")}),this.maximumScreenSpaceError=2,this.tileCacheSize=100,this.loadingDescendantLimit=20,this.preloadAncestors=!0,this.preloadSiblings=!1,this.fillHighlightColor=void 0,this.enableLighting=!1,this.lambertDiffuseMultiplier=.9,this.dynamicAtmosphereLighting=!0,this.dynamicAtmosphereLightingFromSun=!1,this.showGroundAtmosphere=ee.WGS84.equals(e),this.atmosphereLightIntensity=10,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.lightingFadeOutDistance=P.PI_OVER_TWO*e.minimumRadius,this.lightingFadeInDistance=P.PI*e.minimumRadius,this.nightFadeOutDistance=P.PI_OVER_TWO*e.minimumRadius,this.nightFadeInDistance=5*P.PI_OVER_TWO*e.minimumRadius,this.showWaterEffect=!0,this.depthTestAgainstTerrain=!1,this.shadows=yn.RECEIVE_ONLY,this.atmosphereHueShift=0,this.atmosphereSaturationShift=0,this.atmosphereBrightnessShift=0,this.showSkirts=!0,this.backFaceCulling=!0,this._oceanNormalMap=void 0,this._zoomedOutOceanSpecularIntensity=void 0,this.vertexShadowDarkness=.3}Object.defineProperties(Zd.prototype,{ellipsoid:{get:function(){return this._ellipsoid}},imageryLayers:{get:function(){return this._imageryLayerCollection}},imageryLayersUpdatedEvent:{get:function(){return this._surface.tileProvider.imageryLayersUpdatedEvent}},tilesLoaded:{get:function(){return l(this._surface)?this._surface._tileLoadQueueHigh.length===0&&this._surface._tileLoadQueueMedium.length===0&&this._surface._tileLoadQueueLow.length===0:!0}},baseColor:{get:function(){return this._surface.tileProvider.baseColor},set:function(e){this._surface.tileProvider.baseColor=e}},clippingPlanes:{get:function(){return this._surface.tileProvider.clippingPlanes},set:function(e){this._surface.tileProvider.clippingPlanes=e}},clippingPolygons:{get:function(){return this._surface.tileProvider.clippingPolygons},set:function(e){this._surface.tileProvider.clippingPolygons=e}},cartographicLimitRectangle:{get:function(){return this._surface.tileProvider.cartographicLimitRectangle},set:function(e){l(e)||(e=re.clone(re.MAX_VALUE)),this._surface.tileProvider.cartographicLimitRectangle=e}},oceanNormalMapUrl:{get:function(){return this._oceanNormalMapResource.url},set:function(e){this._oceanNormalMapResource.url=e,this._oceanNormalMapResourceDirty=!0}},terrainProvider:{get:function(){return this._terrainProvider},set:function(e){e!==this._terrainProvider&&(this._terrainProvider=e,this._terrainProviderChanged.raiseEvent(e),l(this._material)&&QY(this))}},terrainProviderChanged:{get:function(){return this._terrainProviderChanged}},tileLoadProgressEvent:{get:function(){return this._surface.tileLoadProgressEvent}},material:{get:function(){return this._material},set:function(e){this._material!==e&&(this._material=e,QY(this))}},undergroundColor:{get:function(){return this._undergroundColor},set:function(e){this._undergroundColor=z.clone(e,this._undergroundColor)}},undergroundColorAlphaByDistance:{get:function(){return this._undergroundColorAlphaByDistance},set:function(e){this._undergroundColorAlphaByDistance=Vt.clone(e,this._undergroundColorAlphaByDistance)}},translucency:{get:function(){return this._translucency}}});function QY(e){let t=[],n=l(e._material)&&(l(e._material.shaderSource.match(/slope/))||l(e._material.shaderSource.match("normalEC"))),i=[zh,mI];l(e._material)&&(!n||e._terrainProvider.requestVertexNormals)?(i.push(e._material.shaderSource),t.push("APPLY_MATERIAL"),e._surface._tileProvider.materialUniformMap=e._material._uniforms):e._surface._tileProvider.materialUniformMap=void 0,i.push(QV),e._surfaceShaderSet.baseVertexShaderSource=new Ue({sources:[zh,mI,JV],defines:t}),e._surfaceShaderSet.baseFragmentShaderSource=new Ue({sources:i,defines:t}),e._surfaceShaderSet.material=e._material}function $at(e){return function(t,n){let i=se.distanceSquaredTo(t.pickBoundingSphere,e),o=se.distanceSquaredTo(n.pickBoundingSphere,e);return i-o}}var Qat=[],Jat={start:0,stop:0};Zd.prototype.pickWorldCoordinates=function(e,t,n,i){n=y(n,!0);let o=t.mode,r=t.mapProjection,s=Qat;s.length=0;let a=this._surface._tilesToRender,c=a.length,u,f;for(f=0;f<c;++f){u=a[f];let p=u.data;if(!l(p))continue;let g=p.pickBoundingSphere;if(o!==ne.SCENE3D)p.pickBoundingSphere=g=se.fromRectangleWithHeights2D(u.rectangle,r,p.tileBoundingRegion.minimumHeight,p.tileBoundingRegion.maximumHeight,g),h.fromElements(g.center.z,g.center.x,g.center.y,g.center);else if(l(p.renderedMesh))se.clone(p.tileBoundingRegion.boundingSphere,g);else continue;let m=$n.raySphere(e,g,Jat);l(m)&&s.push(p)}s.sort($at(e.origin));let d;for(c=s.length,f=0;f<c&&(d=s[f].pick(e,t.mode,t.mapProjection,n,i),!l(d));++f);return d};var ect=new fe;Zd.prototype.pick=function(e,t,n){if(n=this.pickWorldCoordinates(e,t,!0,n),l(n)&&t.mode!==ne.SCENE3D){n=h.fromElements(n.y,n.z,n.x,n);let i=t.mapProjection.unproject(n,ect);n=this._ellipsoid.cartographicToCartesian(i,n)}return n};var tct=new h,Pge=new h,nct=new fe,ict=new mn;function $Y(e,t){return l(e)&&re.contains(e.rectangle,t)?e:void 0}Zd.prototype.getHeight=function(e){let t=this._surface._levelZeroTiles;if(!l(t))return;let n,i,o=t.length;for(i=0;i<o&&(n=t[i],!re.contains(n.rectangle,e));++i);if(i>=o)return;let r=n;for(;l(n);)n=$Y(n._southwestChild,e)||$Y(n._southeastChild,e)||$Y(n._northwestChild,e)||n._northeastChild,l(n)&&l(n.data)&&l(n.data.renderedMesh)&&(r=n);if(n=r,!l(n)||!l(n.data)||!l(n.data.renderedMesh))return;let s=this._surface._tileProvider.tilingScheme.projection,a=this._surface._tileProvider.tilingScheme.ellipsoid,c=h.fromRadians(e.longitude,e.latitude,0,a,tct),u=ict,f=a.geodeticSurfaceNormal(c,u.direction),d=a.getSurfaceNormalIntersectionWithZAxis(c,11500,u.origin);if(!l(d)){let g;l(n.data.tileBoundingRegion)&&(g=n.data.tileBoundingRegion.minimumHeight);let m=Math.min(y(g,0),-11500),x=h.multiplyByScalar(f,Math.abs(m)+1,Pge);h.subtract(c,x,u.origin)}let p=n.data.pick(u,void 0,s,!1,Pge);if(l(p))return a.cartesianToCartographic(p,nct).height};Zd.prototype.update=function(e){this.show&&e.passes.render&&this._surface.update(e)};Zd.prototype.beginFrame=function(e){let t=this._surface,n=t.tileProvider,i=this.terrainProvider,o=l(i)&&i.hasWaterMask&&i.hasWaterMask;if(o&&this._oceanNormalMapResourceDirty){this._oceanNormalMapResourceDirty=!1;let a=this._oceanNormalMapResource,c=a.url;if(l(c)){let u=this;a.fetchImage().then(function(f){c===u._oceanNormalMapResource.url&&(u._oceanNormalMap=u._oceanNormalMap&&u._oceanNormalMap.destroy(),u._oceanNormalMap=new Ot({context:e.context,source:f}))})}else this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy()}let r=e.passes,s=e.mode;r.render&&(this.showGroundAtmosphere?this._zoomedOutOceanSpecularIntensity=.4:this._zoomedOutOceanSpecularIntensity=.5,t.maximumScreenSpaceError=this.maximumScreenSpaceError,t.tileCacheSize=this.tileCacheSize,t.loadingDescendantLimit=this.loadingDescendantLimit,t.preloadAncestors=this.preloadAncestors,t.preloadSiblings=this.preloadSiblings,n.terrainProvider=this.terrainProvider,n.lightingFadeOutDistance=this.lightingFadeOutDistance,n.lightingFadeInDistance=this.lightingFadeInDistance,n.nightFadeOutDistance=this.nightFadeOutDistance,n.nightFadeInDistance=this.nightFadeInDistance,n.zoomedOutOceanSpecularIntensity=s===ne.SCENE3D?this._zoomedOutOceanSpecularIntensity:0,n.hasWaterMask=o,n.showWaterEffect=this.showWaterEffect,n.oceanNormalMap=this._oceanNormalMap,n.enableLighting=this.enableLighting,n.dynamicAtmosphereLighting=this.dynamicAtmosphereLighting,n.dynamicAtmosphereLightingFromSun=this.dynamicAtmosphereLightingFromSun,n.showGroundAtmosphere=this.showGroundAtmosphere,n.atmosphereLightIntensity=this.atmosphereLightIntensity,n.atmosphereRayleighCoefficient=this.atmosphereRayleighCoefficient,n.atmosphereMieCoefficient=this.atmosphereMieCoefficient,n.atmosphereRayleighScaleHeight=this.atmosphereRayleighScaleHeight,n.atmosphereMieScaleHeight=this.atmosphereMieScaleHeight,n.atmosphereMieAnisotropy=this.atmosphereMieAnisotropy,n.shadows=this.shadows,n.hueShift=this.atmosphereHueShift,n.saturationShift=this.atmosphereSaturationShift,n.brightnessShift=this.atmosphereBrightnessShift,n.fillHighlightColor=this.fillHighlightColor,n.showSkirts=this.showSkirts,n.backFaceCulling=this.backFaceCulling,n.vertexShadowDarkness=this.vertexShadowDarkness,n.undergroundColor=this._undergroundColor,n.undergroundColorAlphaByDistance=this._undergroundColorAlphaByDistance,n.lambertDiffuseMultiplier=this.lambertDiffuseMultiplier,t.beginFrame(e))};Zd.prototype.render=function(e){this.show&&(l(this._material)&&this._material.update(e.context),this._surface.render(e))};Zd.prototype.endFrame=function(e){this.show&&e.passes.render&&this._surface.endFrame(e)};Zd.prototype.isDestroyed=function(){return!1};Zd.prototype.destroy=function(){return this._surfaceShaderSet=this._surfaceShaderSet&&this._surfaceShaderSet.destroy(),this._surface=this._surface&&this._surface.destroy(),this._oceanNormalMap=this._oceanNormalMap&&this._oceanNormalMap.destroy(),ue(this)};var UU=Zd;function oct(e,t,n,i){this.rightAscension=e,this.declination=t,this.rotation=n,this.rotationRate=i}var zU=oct;var Wge={},rct=32.184,sct=2451545,Rge=-.0529921,Oge=-.1059842,Mge=13.0120009,Lge=13.3407154,Nge=.9856003,Fge=26.4057084,Bge=13.064993,kge=.3287146,Vge=1.7484877,Uge=-.1589763,zge=.0036096,Hge=.1643573,Gge=12.9590088,JY=new K;Wge.ComputeMoon=function(e,t){l(e)||(e=K.now()),JY=K.addSeconds(e,rct,JY);let n=K.totalDays(JY)-sct,i=n/jn.DAYS_PER_JULIAN_CENTURY,o=(125.045+Rge*n)*P.RADIANS_PER_DEGREE,r=(250.089+Oge*n)*P.RADIANS_PER_DEGREE,s=(260.008+Mge*n)*P.RADIANS_PER_DEGREE,a=(176.625+Lge*n)*P.RADIANS_PER_DEGREE,c=(357.529+Nge*n)*P.RADIANS_PER_DEGREE,u=(311.589+Fge*n)*P.RADIANS_PER_DEGREE,f=(134.963+Bge*n)*P.RADIANS_PER_DEGREE,d=(276.617+kge*n)*P.RADIANS_PER_DEGREE,p=(34.226+Vge*n)*P.RADIANS_PER_DEGREE,g=(15.134+Uge*n)*P.RADIANS_PER_DEGREE,m=(119.743+zge*n)*P.RADIANS_PER_DEGREE,x=(239.961+Hge*n)*P.RADIANS_PER_DEGREE,b=(25.053+Gge*n)*P.RADIANS_PER_DEGREE,T=Math.sin(o),A=Math.sin(r),C=Math.sin(s),S=Math.sin(a),v=Math.sin(c),D=Math.sin(u),O=Math.sin(f),R=Math.sin(d),M=Math.sin(p),L=Math.sin(g),_=Math.sin(m),E=Math.sin(x),w=Math.sin(b),I=Math.cos(o),N=Math.cos(r),B=Math.cos(s),H=Math.cos(a),V=Math.cos(c),G=Math.cos(u),k=Math.cos(f),W=Math.cos(d),q=Math.cos(p),J=Math.cos(g),j=Math.cos(m),Z=Math.cos(x),Q=Math.cos(b),de=(269.9949+.0031*i-3.8787*T-.1204*A+.07*C-.0172*S+.0072*D-.0052*L+.0043*w)*P.RADIANS_PER_DEGREE,ye=(66.5392+.013*i+1.5419*I+.0239*N-.0278*B+.0068*H-.0029*G+9e-4*k+8e-4*J-9e-4*Q)*P.RADIANS_PER_DEGREE,ae=(38.3213+13.17635815*n-14e-13*n*n+3.561*T+.1208*A-.0642*C+.0158*S+.0252*v-.0066*D-.0047*O-.0046*R+.0028*M+.0052*L+.004*_+.0019*E-.0044*w)*P.RADIANS_PER_DEGREE,_e=(13.17635815-14e-13*(2*n)+3.561*I*Rge+.1208*N*Oge-.0642*B*Mge+.0158*H*Lge+.0252*V*Nge-.0066*G*Fge-.0047*k*Bge-.0046*W*kge+.0028*q*Vge+.0052*J*Uge+.004*j*zge+.0019*Z*Hge-.0044*Q*Gge)/86400*P.RADIANS_PER_DEGREE;return l(t)||(t=new zU),t.rightAscension=de,t.declination=ye,t.rotation=ae,t.rotationRate=_e,t};var HU=Wge;function jge(e){(!l(e)||typeof e!="function")&&(e=HU.ComputeMoon),this._computeFunction=e}var act=new h,cct=new h,lct=new h;function uct(e,t,n){let i=act;i.x=Math.cos(e+P.PI_OVER_TWO),i.y=Math.sin(e+P.PI_OVER_TWO),i.z=0;let o=Math.cos(t),r=lct;r.x=o*Math.cos(e),r.y=o*Math.sin(e),r.z=Math.sin(t);let s=h.cross(r,i,cct);return l(n)||(n=new $),n[0]=i.x,n[1]=s.x,n[2]=r.x,n[3]=i.y,n[4]=s.y,n[5]=r.y,n[6]=i.z,n[7]=s.z,n[8]=r.z,n}var fct=new $,dct=new Me;jge.prototype.evaluate=function(e,t){l(e)||(e=K.now());let n=this._computeFunction(e),i=uct(n.rightAscension,n.declination,t),o=P.zeroToTwoPi(n.rotation),r=Me.fromAxisAngle(h.UNIT_Z,o,dct),s=$.fromQuaternion(Me.conjugate(r,r),fct);return $.multiply(s,i,i)};var GU=jge;var II=`uniform vec3 u_radii; +uniform vec3 u_oneOverEllipsoidRadiiSquared; + +in vec3 v_positionEC; + +vec4 computeEllipsoidColor(czm_ray ray, float intersection, float side) +{ + vec3 positionEC = czm_pointAlongRay(ray, intersection); + vec3 positionMC = (czm_inverseModelView * vec4(positionEC, 1.0)).xyz; + vec3 geodeticNormal = normalize(czm_geodeticSurfaceNormal(positionMC, vec3(0.0), u_oneOverEllipsoidRadiiSquared)); + vec3 sphericalNormal = normalize(positionMC / u_radii); + vec3 normalMC = geodeticNormal * side; // normalized surface normal (always facing the viewer) in model coordinates + vec3 normalEC = normalize(czm_normal * normalMC); // normalized surface normal in eye coordinates + + vec2 st = czm_ellipsoidTextureCoordinates(sphericalNormal); + vec3 positionToEyeEC = -positionEC; + + czm_materialInput materialInput; + materialInput.s = st.s; + materialInput.st = st; + materialInput.str = (positionMC + u_radii) / u_radii; + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(positionMC, normalEC); + materialInput.positionToEyeEC = positionToEyeEC; + czm_material material = czm_getMaterial(materialInput); + +#ifdef ONLY_SUN_LIGHTING + return czm_private_phong(normalize(positionToEyeEC), material, czm_sunDirectionEC); +#else + return czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} + +void main() +{ + // PERFORMANCE_TODO: When dynamic branching is available, compute ratio of maximum and minimum radii + // in the vertex shader. Only when it is larger than some constant, march along the ray. + // Otherwise perform one intersection test which will be the common case. + + // Test if the ray intersects a sphere with the ellipsoid's maximum radius. + // For very oblate ellipsoids, using the ellipsoid's radii for an intersection test + // may cause false negatives. This will discard fragments before marching the ray forward. + float maxRadius = max(u_radii.x, max(u_radii.y, u_radii.z)) * 1.5; + vec3 direction = normalize(v_positionEC); + vec3 ellipsoidCenter = czm_modelView[3].xyz; + + float t1 = -1.0; + float t2 = -1.0; + + float b = -2.0 * dot(direction, ellipsoidCenter); + float c = dot(ellipsoidCenter, ellipsoidCenter) - maxRadius * maxRadius; + + float discriminant = b * b - 4.0 * c; + if (discriminant >= 0.0) { + t1 = (-b - sqrt(discriminant)) * 0.5; + t2 = (-b + sqrt(discriminant)) * 0.5; + } + + if (t1 < 0.0 && t2 < 0.0) { + discard; + } + + float t = min(t1, t2); + if (t < 0.0) { + t = 0.0; + } + + // March ray forward to intersection with larger sphere and find + czm_ray ray = czm_ray(t * direction, direction); + + vec3 ellipsoid_inverseRadii = vec3(1.0 / u_radii.x, 1.0 / u_radii.y, 1.0 / u_radii.z); + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoidCenter, ellipsoid_inverseRadii); + + if (czm_isEmpty(intersection)) + { + discard; + } + + // If the viewer is outside, compute outsideFaceColor, with normals facing outward. + vec4 outsideFaceColor = (intersection.start != 0.0) ? computeEllipsoidColor(ray, intersection.start, 1.0) : vec4(0.0); + + // If the viewer either is inside or can see inside, compute insideFaceColor, with normals facing inward. + vec4 insideFaceColor = (outsideFaceColor.a < 1.0) ? computeEllipsoidColor(ray, intersection.stop, -1.0) : vec4(0.0); + + out_FragColor = mix(insideFaceColor, outsideFaceColor, outsideFaceColor.a); + out_FragColor.a = 1.0 - (1.0 - insideFaceColor.a) * (1.0 - outsideFaceColor.a); + +#if (defined(WRITE_DEPTH) && (__VERSION__ == 300 || defined(GL_EXT_frag_depth))) + t = (intersection.start != 0.0) ? intersection.start : intersection.stop; + vec3 positionEC = czm_pointAlongRay(ray, t); + vec4 positionCC = czm_projection * vec4(positionEC, 1.0); +#ifdef LOG_DEPTH + czm_writeLogDepth(1.0 + positionCC.w); +#else + float z = positionCC.z / positionCC.w; + + float n = czm_depthRange.near; + float f = czm_depthRange.far; + + gl_FragDepth = (z * (f - n) + f + n) * 0.5; +#endif +#endif +} +`;var PI=`in vec3 position; + +uniform vec3 u_radii; + +out vec3 v_positionEC; + +void main() +{ + // In the vertex data, the cube goes from (-1.0, -1.0, -1.0) to (1.0, 1.0, 1.0) in model coordinates. + // Scale to consider the radii. We could also do this once on the CPU when using the BoxGeometry, + // but doing it here allows us to change the radii without rewriting the vertex data, and + // allows all ellipsoids to reuse the same vertex data. + vec4 p = vec4(u_radii * position, 1.0); + + v_positionEC = (czm_modelView * p).xyz; // position in eye coordinates + gl_Position = czm_modelViewProjection * p; // position in clip coordinates + + // With multi-frustum, when the ellipsoid primitive is positioned on the intersection of two frustums + // and close to terrain, the terrain (writes depth) in the closest frustum can overwrite part of the + // ellipsoid (does not write depth) that was rendered in the farther frustum. + // + // Here, we clamp the depth in the vertex shader to avoid being overwritten; however, this creates + // artifacts since some fragments can be alpha blended twice. This is solved by only rendering + // the ellipsoid in the closest frustum to the viewer. + gl_Position.z = clamp(gl_Position.z, czm_depthRange.near, czm_depthRange.far); + + czm_vertexLogDepth(); +} +`;var eX={position:0};function WU(e){e=y(e,y.EMPTY_OBJECT),this.center=h.clone(y(e.center,h.ZERO)),this._center=new h,this.radii=h.clone(e.radii),this._radii=new h,this._oneOverEllipsoidRadiiSquared=new h,this._boundingSphere=new se,this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this._computedModelMatrix=new F,this.show=y(e.show,!0),this.material=y(e.material,ji.fromType(ji.ColorType)),this._material=void 0,this._translucent=void 0,this.id=e.id,this._id=void 0,this.debugShowBoundingVolume=y(e.debugShowBoundingVolume,!1),this.onlySunLighting=y(e.onlySunLighting,!1),this._onlySunLighting=!1,this._depthTestEnabled=y(e.depthTestEnabled,!0),this._useLogDepth=!1,this._sp=void 0,this._rs=void 0,this._va=void 0,this._pickSP=void 0,this._pickId=void 0,this._colorCommand=new et({owner:y(e._owner,this)}),this._pickCommand=new et({owner:y(e._owner,this),pickOnly:!0});let t=this;this._uniforms={u_radii:function(){return t.radii},u_oneOverEllipsoidRadiiSquared:function(){return t._oneOverEllipsoidRadiiSquared}},this._pickUniforms={czm_pickColor:function(){return t._pickId.color}}}function hct(e){let t=e.cache.ellipsoidPrimitive_vertexArray;if(l(t))return t;let n=Ga.createGeometry(Ga.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY}));return t=ti.fromGeometry({context:e,geometry:n,attributeLocations:eX,bufferUsage:Fe.STATIC_DRAW,interleave:!0}),e.cache.ellipsoidPrimitive_vertexArray=t,t}WU.prototype.update=function(e){if(!this.show||e.mode!==ne.SCENE3D||!l(this.center)||!l(this.radii))return;let t=e.context,n=this.material.isTranslucent(),i=this._translucent!==n;(!l(this._rs)||i)&&(this._translucent=n,this._rs=Ve.fromCache({cull:{enabled:!0,face:yi.FRONT},depthTest:{enabled:this._depthTestEnabled},depthMask:!n&&t.fragmentDepth,blending:n?ln.ALPHA_BLEND:void 0})),l(this._va)||(this._va=hct(t));let o=!1,r=this.radii;if(!h.equals(this._radii,r)){h.clone(r,this._radii);let x=this._oneOverEllipsoidRadiiSquared;x.x=1/(r.x*r.x),x.y=1/(r.y*r.y),x.z=1/(r.z*r.z),o=!0}(!F.equals(this.modelMatrix,this._modelMatrix)||!h.equals(this.center,this._center))&&(F.clone(this.modelMatrix,this._modelMatrix),h.clone(this.center,this._center),F.multiplyByTranslation(this.modelMatrix,this.center,this._computedModelMatrix),o=!0),o&&(h.clone(h.ZERO,this._boundingSphere.center),this._boundingSphere.radius=h.maximumComponent(r),se.transform(this._boundingSphere,this._computedModelMatrix,this._boundingSphere));let s=this._material!==this.material;this._material=this.material,this._material.update(t);let a=this.onlySunLighting!==this._onlySunLighting;this._onlySunLighting=this.onlySunLighting;let c=e.useLogDepth,u=this._useLogDepth!==c;this._useLogDepth=c;let f=this._colorCommand,d,p;(s||a||i||u)&&(d=new Ue({sources:[PI]}),p=new Ue({sources:[this.material.shaderSource,II]}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._sp=en.replaceCache({context:t,shaderProgram:this._sp,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:eX}),f.vertexArray=this._va,f.renderState=this._rs,f.shaderProgram=this._sp,f.uniformMap=xt(this._uniforms,this.material._uniforms),f.executeInClosestFrustum=n);let g=e.commandList,m=e.passes;if(m.render&&(f.boundingVolume=this._boundingSphere,f.debugShowBoundingVolume=this.debugShowBoundingVolume,f.modelMatrix=this._computedModelMatrix,f.pass=n?ve.TRANSLUCENT:ve.OPAQUE,g.push(f)),m.pick){let x=this._pickCommand;(!l(this._pickId)||this._id!==this.id)&&(this._id=this.id,this._pickId=this._pickId&&this._pickId.destroy(),this._pickId=t.createPickId({primitive:this,id:this.id})),(s||a||!l(this._pickSP)||u)&&(d=new Ue({sources:[PI]}),p=new Ue({sources:[this.material.shaderSource,II],pickColorQualifier:"uniform"}),this.onlySunLighting&&p.defines.push("ONLY_SUN_LIGHTING"),!n&&t.fragmentDepth&&p.defines.push("WRITE_DEPTH"),this._useLogDepth&&(d.defines.push("LOG_DEPTH"),p.defines.push("LOG_DEPTH")),this._pickSP=en.replaceCache({context:t,shaderProgram:this._pickSP,vertexShaderSource:d,fragmentShaderSource:p,attributeLocations:eX}),x.vertexArray=this._va,x.renderState=this._rs,x.shaderProgram=this._pickSP,x.uniformMap=xt(xt(this._uniforms,this._pickUniforms),this.material._uniforms),x.executeInClosestFrustum=n),x.boundingVolume=this._boundingSphere,x.modelMatrix=this._computedModelMatrix,x.pass=n?ve.TRANSLUCENT:ve.OPAQUE,g.push(x)}};WU.prototype.isDestroyed=function(){return!1};WU.prototype.destroy=function(){return this._sp=this._sp&&this._sp.destroy(),this._pickSP=this._pickSP&&this._pickSP.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var jU=WU;function RI(e){e=y(e,y.EMPTY_OBJECT);let t=e.textureUrl;l(t)||(t=nn("Assets/Textures/moonSmall.jpg")),this.show=y(e.show,!0),this.textureUrl=t,this._ellipsoid=y(e.ellipsoid,ee.MOON),this.onlySunLighting=y(e.onlySunLighting,!0),this._ellipsoidPrimitive=new jU({radii:this.ellipsoid.radii,material:ji.fromType(ji.ImageType),depthTestEnabled:!1,_owner:this}),this._ellipsoidPrimitive.material.translucent=!1,this._axes=new GU}Object.defineProperties(RI.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});var qU=new $,mct=new $,pct=new h,YU=[];RI.prototype.update=function(e){if(!this.show)return;let t=this._ellipsoidPrimitive;t.material.uniforms.image=this.textureUrl,t.onlySunLighting=this.onlySunLighting;let n=e.time;l(Nt.computeIcrfToFixedMatrix(n,qU))||Nt.computeTemeToPseudoFixedMatrix(n,qU);let i=this._axes.evaluate(n,mct);$.transpose(i,i),$.multiply(qU,i,i);let o=P0.computeMoonPositionInEarthInertialFrame(n,pct);$.multiplyByVector(qU,o,o),F.fromRotationTranslation(i,o,t.modelMatrix);let r=e.commandList;return e.commandList=YU,YU.length=0,t.update(e),e.commandList=r,YU.length===1?YU[0]:void 0};RI.prototype.isDestroyed=function(){return!1};RI.prototype.destroy=function(){return this._ellipsoidPrimitive=this._ellipsoidPrimitive&&this._ellipsoidPrimitive.destroy(),ue(this)};var XU=RI;var tX=[],nX=[];function _ct(e,t,n,i,o,r){let s=o-i+1,a=r-o,c=tX,u=nX,f,d;for(f=0;f<s;++f)c[f]=e[i+f];for(d=0;d<a;++d)u[d]=e[o+d+1];f=0,d=0;for(let p=i;p<=r;++p){let g=c[f],m=u[d];f<s&&(d>=a||t(g,m,n)<=0)?(e[p]=g,++f):d<a&&(e[p]=m,++d)}}function iX(e,t,n,i,o){if(i>=o)return;let r=Math.floor((i+o)*.5);iX(e,t,n,i,r),iX(e,t,n,r+1,o),_ct(e,t,n,i,r,o)}function gct(e,t,n){let i=e.length,o=Math.ceil(i*.5);tX.length=o,nX.length=o,iX(e,t,n,0,i-1),tX.length=0,nX.length=0}var zy=gct;function cc(e,t){this._occluderPosition=h.clone(e.center),this._occluderRadius=e.radius,this._horizonDistance=0,this._horizonPlaneNormal=void 0,this._horizonPlanePosition=void 0,this._cameraPosition=void 0,this.cameraPosition=t}var KU=new h;Object.defineProperties(cc.prototype,{position:{get:function(){return this._occluderPosition}},radius:{get:function(){return this._occluderRadius}},cameraPosition:{set:function(e){e=h.clone(e,this._cameraPosition);let t=h.subtract(this._occluderPosition,e,KU),n=h.magnitudeSquared(t),i=this._occluderRadius*this._occluderRadius,o,r,s;if(n>i){o=Math.sqrt(n-i),n=1/Math.sqrt(n),r=h.multiplyByScalar(t,n,KU);let a=o*o*n;s=h.add(e,h.multiplyByScalar(r,a,KU),KU)}else o=Number.MAX_VALUE;this._horizonDistance=o,this._horizonPlaneNormal=r,this._horizonPlanePosition=s,this._cameraPosition=e}}});cc.fromBoundingSphere=function(e,t,n){return l(n)?(h.clone(e.center,n._occluderPosition),n._occluderRadius=e.radius,n.cameraPosition=t,n):new cc(e,t)};var Yge=new h;cc.prototype.isPointVisible=function(e){if(this._horizonDistance!==Number.MAX_VALUE){let t=h.subtract(e,this._occluderPosition,Yge),n=this._occluderRadius;if(n=h.magnitudeSquared(t)-n*n,n>0)return n=Math.sqrt(n)+this._horizonDistance,t=h.subtract(e,this._cameraPosition,t),n*n>h.magnitudeSquared(t)}return!1};var yct=new h;cc.prototype.isBoundingSphereVisible=function(e){let t=h.clone(e.center,yct),n=e.radius;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,Yge),o=this._occluderRadius-n;if(o=h.magnitudeSquared(i)-o*o,n<this._occluderRadius)return o>0?(o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i),o*o+n*n>h.magnitudeSquared(i)):!1;if(o>0){i=h.subtract(t,this._cameraPosition,i);let r=h.magnitudeSquared(i),s=this._occluderRadius*this._occluderRadius,a=n*n;return(this._horizonDistance*this._horizonDistance+s)*a>r*s?!0:(o=Math.sqrt(o)+this._horizonDistance,o*o+a>r)}return!0}return!1};var xct=new h;cc.prototype.computeVisibility=function(e){let t=h.clone(e.center),n=e.radius;if(n>this._occluderRadius)return xr.FULL;if(this._horizonDistance!==Number.MAX_VALUE){let i=h.subtract(t,this._occluderPosition,xct),o=this._occluderRadius-n,r=h.magnitudeSquared(i);if(o=r-o*o,o>0){o=Math.sqrt(o)+this._horizonDistance,i=h.subtract(t,this._cameraPosition,i);let s=h.magnitudeSquared(i);return o*o+n*n<s?xr.NONE:(o=this._occluderRadius+n,o=r-o*o,o>0?(o=Math.sqrt(o)+this._horizonDistance,s<o*o+n*n?xr.FULL:xr.PARTIAL):(i=h.subtract(t,this._horizonPlanePosition,i),h.dot(i,this._horizonPlaneNormal)>-n?xr.PARTIAL:xr.FULL))}}return xr.NONE};var ZU=new h;cc.computeOccludeePoint=function(e,t,n){let i=h.clone(t),o=h.clone(e.center),r=e.radius,s=n.length,a=h.normalize(h.subtract(i,o,ZU),ZU),c=-h.dot(a,o),u=cc._anyRotationVector(o,a,c),f=cc._horizonToPlaneNormalDotProduct(e,a,c,u,n[0]);if(!f)return;let d;for(let g=1;g<s;++g){if(d=cc._horizonToPlaneNormalDotProduct(e,a,c,u,n[g]),!d)return;d<f&&(f=d)}if(f<.0017453283658983088)return;let p=r/f;return h.add(o,h.multiplyByScalar(a,p,ZU),ZU)};var bct=[];cc.computeOccludeePointFromRectangle=function(e,t){t=y(t,ee.default);let n=re.subsample(e,t,0,bct),i=se.fromPoints(n),o=h.ZERO;if(!h.equals(o,i.center))return cc.computeOccludeePoint(new se(o,t.minimumRadius),i.center,n)};var Tct=new h;cc._anyRotationVector=function(e,t,n){let i=h.abs(t,Tct),o=i.x>i.y?0:1;(o===0&&i.z>i.x||o===1&&i.z>i.y)&&(o=2);let r=new h,s;o===0?(i.x=e.x,i.y=e.y+1,i.z=e.z+1,s=h.UNIT_X):o===1?(i.x=e.x+1,i.y=e.y,i.z=e.z+1,s=h.UNIT_Y):(i.x=e.x+1,i.y=e.y+1,i.z=e.z,s=h.UNIT_Z);let a=(h.dot(t,i)+n)/-h.dot(t,s);return h.normalize(h.subtract(h.add(i,h.multiplyByScalar(s,a,r),i),e,i),i)};var Act=new h;cc._rotationVector=function(e,t,n,i,o){let r=h.subtract(i,e,Act);if(r=h.normalize(r,r),h.dot(t,r)<.9999999847691291){let s=h.cross(t,r,r);if(h.magnitude(s)>P.EPSILON13)return h.normalize(s,new h)}return o};var oX=new h,Cct=new h,$U=new h,qge=new h;cc._horizonToPlaneNormalDotProduct=function(e,t,n,i,o){let r=h.clone(o,oX),s=h.clone(e.center,Cct),a=e.radius,c=h.subtract(s,r,$U),u=h.magnitudeSquared(c),f=a*a;if(u<f)return!1;let d=u-f,p=Math.sqrt(d),m=1/Math.sqrt(u),b=p*m*p;c=h.normalize(c,c);let T=h.add(r,h.multiplyByScalar(c,b,qge),qge),A=Math.sqrt(d-b*b),C=this._rotationVector(s,t,n,r,i),S=h.fromElements(C.x*C.x*c.x+(C.x*C.y-C.z)*c.y+(C.x*C.z+C.y)*c.z,(C.x*C.y+C.z)*c.x+C.y*C.y*c.y+(C.y*C.z-C.x)*c.z,(C.x*C.z-C.y)*c.x+(C.y*C.z+C.x)*c.y+C.z*C.z*c.z,oX);S=h.normalize(S,S);let v=h.multiplyByScalar(S,A,oX);C=h.normalize(h.subtract(h.add(T,v,$U),s,$U),$U);let D=h.dot(t,C);C=h.normalize(h.subtract(h.subtract(T,v,C),s,C),C);let O=h.dot(t,C);return D<O?D:O};var QU=cc;function wm(e){e=y(e,y.EMPTY_OBJECT),this.left=e.left,this._left=void 0,this.right=e.right,this._right=void 0,this.top=e.top,this._top=void 0,this.bottom=e.bottom,this._bottom=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this._cullingVolume=new ys,this._perspectiveMatrix=new F,this._infinitePerspective=new F}function rX(e){let{top:t,bottom:n,right:i,left:o,near:r,far:s}=e;(t!==e._top||n!==e._bottom||o!==e._left||i!==e._right||r!==e._near||s!==e._far)&&(e._left=o,e._right=i,e._top=t,e._bottom=n,e._near=r,e._far=s,e._perspectiveMatrix=F.computePerspectiveOffCenter(o,i,n,t,r,s,e._perspectiveMatrix),e._infinitePerspective=F.computeInfinitePerspectiveOffCenter(o,i,n,t,r,e._infinitePerspective))}Object.defineProperties(wm.prototype,{projectionMatrix:{get:function(){return rX(this),this._perspectiveMatrix}},infiniteProjectionMatrix:{get:function(){return rX(this),this._infinitePerspective}}});var Ect=new h,Sct=new h,vct=new h,wct=new h;wm.prototype.computeCullingVolume=function(e,t,n){let i=this._cullingVolume.planes,o=this.top,r=this.bottom,s=this.right,a=this.left,c=this.near,u=this.far,f=h.cross(t,n,Ect),d=Sct;h.multiplyByScalar(t,c,d),h.add(e,d,d);let p=vct;h.multiplyByScalar(t,u,p),h.add(e,p,p);let g=wct;h.multiplyByScalar(f,a,g),h.add(d,g,g),h.subtract(g,e,g),h.normalize(g,g),h.cross(g,n,g),h.normalize(g,g);let m=i[0];return l(m)||(m=i[0]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(f,s,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(n,g,g),h.normalize(g,g),m=i[1],l(m)||(m=i[1]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,r,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(f,g,g),h.normalize(g,g),m=i[2],l(m)||(m=i[2]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),h.multiplyByScalar(n,o,g),h.add(d,g,g),h.subtract(g,e,g),h.cross(g,f,g),h.normalize(g,g),m=i[3],l(m)||(m=i[3]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,e),m=i[4],l(m)||(m=i[4]=new oe),m.x=t.x,m.y=t.y,m.z=t.z,m.w=-h.dot(t,d),h.negate(t,g),m=i[5],l(m)||(m=i[5]=new oe),m.x=g.x,m.y=g.y,m.z=g.z,m.w=-h.dot(g,p),this._cullingVolume};wm.prototype.getPixelDimensions=function(e,t,n,i,o){rX(this);let r=1/this.near,s=this.top*r,a=2*i*n*s/t;s=this.right*r;let c=2*i*n*s/e;return o.x=c,o.y=a,o};wm.prototype.clone=function(e){return l(e)||(e=new wm),e.right=this.right,e.left=this.left,e.top=this.top,e.bottom=this.bottom,e.near=this.near,e.far=this.far,e._left=void 0,e._right=void 0,e._top=void 0,e._bottom=void 0,e._near=void 0,e._far=void 0,e};wm.prototype.equals=function(e){return l(e)&&e instanceof wm&&this.right===e.right&&this.left===e.left&&this.top===e.top&&this.bottom===e.bottom&&this.near===e.near&&this.far===e.far};wm.prototype.equalsEpsilon=function(e,t,n){return e===this||l(e)&&e instanceof wm&&P.equalsEpsilon(this.right,e.right,t,n)&&P.equalsEpsilon(this.left,e.left,t,n)&&P.equalsEpsilon(this.top,e.top,t,n)&&P.equalsEpsilon(this.bottom,e.bottom,t,n)&&P.equalsEpsilon(this.near,e.near,t,n)&&P.equalsEpsilon(this.far,e.far,t,n)};var Ol=wm;function Ml(e){e=y(e,y.EMPTY_OBJECT),this._offCenterFrustum=new Ol,this.fov=e.fov,this._fov=void 0,this._fovy=void 0,this._sseDenominator=void 0,this.aspectRatio=e.aspectRatio,this._aspectRatio=void 0,this.near=y(e.near,1),this._near=this.near,this.far=y(e.far,5e8),this._far=this.far,this.xOffset=y(e.xOffset,0),this._xOffset=this.xOffset,this.yOffset=y(e.yOffset,0),this._yOffset=this.yOffset}Ml.packedLength=6;Ml.pack=function(e,t,n){return n=y(n,0),t[n++]=e.fov,t[n++]=e.aspectRatio,t[n++]=e.near,t[n++]=e.far,t[n++]=e.xOffset,t[n]=e.yOffset,t};Ml.unpack=function(e,t,n){return t=y(t,0),l(n)||(n=new Ml),n.fov=e[t++],n.aspectRatio=e[t++],n.near=e[t++],n.far=e[t++],n.xOffset=e[t++],n.yOffset=e[t],n};function $d(e){if(!(e.fov!==e._fov||e.aspectRatio!==e._aspectRatio||e.near!==e._near||e.far!==e._far||e.xOffset!==e._xOffset||e.yOffset!==e._yOffset))return;e._aspectRatio=e.aspectRatio,e._fov=e.fov,e._fovy=e.aspectRatio<=1?e.fov:Math.atan(Math.tan(e.fov*.5)/e.aspectRatio)*2,e._near=e.near,e._far=e.far,e._sseDenominator=2*Math.tan(.5*e._fovy),e._xOffset=e.xOffset,e._yOffset=e.yOffset;let n=e._offCenterFrustum;n.top=e.near*Math.tan(.5*e._fovy),n.bottom=-n.top,n.right=e.aspectRatio*n.top,n.left=-n.right,n.near=e.near,n.far=e.far,n.right+=e.xOffset,n.left+=e.xOffset,n.top+=e.yOffset,n.bottom+=e.yOffset}Object.defineProperties(Ml.prototype,{projectionMatrix:{get:function(){return $d(this),this._offCenterFrustum.projectionMatrix}},infiniteProjectionMatrix:{get:function(){return $d(this),this._offCenterFrustum.infiniteProjectionMatrix}},fovy:{get:function(){return $d(this),this._fovy}},sseDenominator:{get:function(){return $d(this),this._sseDenominator}},offCenterFrustum:{get:function(){return $d(this),this._offCenterFrustum}}});Ml.prototype.computeCullingVolume=function(e,t,n){return $d(this),this._offCenterFrustum.computeCullingVolume(e,t,n)};Ml.prototype.getPixelDimensions=function(e,t,n,i,o){return $d(this),this._offCenterFrustum.getPixelDimensions(e,t,n,i,o)};Ml.prototype.clone=function(e){return l(e)||(e=new Ml),e.aspectRatio=this.aspectRatio,e.fov=this.fov,e.near=this.near,e.far=this.far,e._aspectRatio=void 0,e._fov=void 0,e._near=void 0,e._far=void 0,this._offCenterFrustum.clone(e._offCenterFrustum),e};Ml.prototype.equals=function(e){return!l(e)||!(e instanceof Ml)?!1:($d(this),$d(e),this.fov===e.fov&&this.aspectRatio===e.aspectRatio&&this._offCenterFrustum.equals(e._offCenterFrustum))};Ml.prototype.equalsEpsilon=function(e,t,n){return!l(e)||!(e instanceof Ml)?!1:($d(this),$d(e),P.equalsEpsilon(this.fov,e.fov,t,n)&&P.equalsEpsilon(this.aspectRatio,e.aspectRatio,t,n)&&this._offCenterFrustum.equalsEpsilon(e._offCenterFrustum,t,n))};var vi=Ml;var JU=`in vec2 v_textureCoordinates; +const float M_PI = 3.141592653589793; + +float vdcRadicalInverse(int i) +{ + float r; + float base = 2.0; + float value = 0.0; + float invBase = 1.0 / base; + float invBi = invBase; + for (int x = 0; x < 100; x++) + { + if (i <= 0) + { + break; + } + r = mod(float(i), base); + value += r * invBi; + invBi *= invBase; + i = int(float(i) * invBase); + } + return value; +} + +vec2 hammersley2D(int i, int N) +{ + return vec2(float(i) / float(N), vdcRadicalInverse(i)); +} + +vec3 importanceSampleGGX(vec2 xi, float alphaRoughness, vec3 N) +{ + float alphaRoughnessSquared = alphaRoughness * alphaRoughness; + float phi = 2.0 * M_PI * xi.x; + float cosTheta = sqrt((1.0 - xi.y) / (1.0 + (alphaRoughnessSquared - 1.0) * xi.y)); + float sinTheta = sqrt(1.0 - cosTheta * cosTheta); + vec3 H = vec3(sinTheta * cos(phi), sinTheta * sin(phi), cosTheta); + vec3 upVector = abs(N.z) < 0.999 ? vec3(0.0, 0.0, 1.0) : vec3(1.0, 0.0, 0.0); + vec3 tangentX = normalize(cross(upVector, N)); + vec3 tangentY = cross(N, tangentX); + return tangentX * H.x + tangentY * H.y + N * H.z; +} + +/** + * Estimate the geometric self-shadowing of the microfacets in a surface, + * using the Smith Joint GGX visibility function. + * Note: Vis = G / (4 * NdotL * NdotV) + * see Eric Heitz. 2014. Understanding the Masking-Shadowing Function in Microfacet-Based BRDFs. Journal of Computer Graphics Techniques, 3 + * see Real-Time Rendering. Page 331 to 336. + * see https://google.github.io/filament/Filament.md.html#materialsystem/specularbrdf/geometricshadowing(specularg) + * + * @param {float} alphaRoughness The roughness of the material, expressed as the square of perceptual roughness. + * @param {float} NdotL The cosine of the angle between the surface normal and the direction to the light source. + * @param {float} NdotV The cosine of the angle between the surface normal and the direction to the camera. + */ +float smithVisibilityGGX(float alphaRoughness, float NdotL, float NdotV) +{ + float alphaRoughnessSq = alphaRoughness * alphaRoughness; + + float GGXV = NdotL * sqrt(NdotV * NdotV * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + float GGXL = NdotV * sqrt(NdotL * NdotL * (1.0 - alphaRoughnessSq) + alphaRoughnessSq); + + float GGX = GGXV + GGXL; // 2.0 if NdotL = NdotV = 1.0 + if (GGX > 0.0) + { + return 0.5 / GGX; // 1/4 if NdotL = NdotV = 1.0 + } + return 0.0; +} + +vec2 integrateBrdf(float roughness, float NdotV) +{ + vec3 V = vec3(sqrt(1.0 - NdotV * NdotV), 0.0, NdotV); + float A = 0.0; + float B = 0.0; + const int NumSamples = 1024; + float alphaRoughness = roughness * roughness; + for (int i = 0; i < NumSamples; i++) + { + vec2 xi = hammersley2D(i, NumSamples); + vec3 H = importanceSampleGGX(xi, alphaRoughness, vec3(0.0, 0.0, 1.0)); + vec3 L = 2.0 * dot(V, H) * H - V; + float NdotL = clamp(L.z, 0.0, 1.0); + float NdotH = clamp(H.z, 0.0, 1.0); + float VdotH = clamp(dot(V, H), 0.0, 1.0); + if (NdotL > 0.0) + { + float G = smithVisibilityGGX(alphaRoughness, NdotL, NdotV); + float G_Vis = 4.0 * G * VdotH * NdotL / NdotH; + float Fc = pow(1.0 - VdotH, 5.0); + A += (1.0 - Fc) * G_Vis; + B += Fc * G_Vis; + } + } + return vec2(A, B) / float(NumSamples); +} + +void main() +{ + out_FragColor = vec4(integrateBrdf(v_textureCoordinates.y, v_textureCoordinates.x), 0.0, 1.0); +} +`;function OI(){this._colorTexture=void 0,this._drawCommand=void 0}Object.defineProperties(OI.prototype,{colorTexture:{get:function(){return this._colorTexture}}});function Dct(e,t,n){let i=t.createViewportQuadCommand(JU,{framebuffer:n,renderState:Ve.fromCache({viewport:new qe(0,0,256,256)})});e._drawCommand=i}OI.prototype.update=function(e){if(!l(this._colorTexture)){let t=e.context,n=new Ot({context:t,width:256,height:256,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,sampler:Qt.NEAREST});this._colorTexture=n;let i=new Vr({context:t,colorTextures:[n],destroyAttachments:!1});Dct(this,t,i),this._drawCommand.execute(t),i.destroy(),this._drawCommand.shaderProgram=this._drawCommand.shaderProgram&&this._drawCommand.shaderProgram.destroy()}};OI.prototype.isDestroyed=function(){return!1};OI.prototype.destroy=function(){return this._colorTexture=this._colorTexture&&this._colorTexture.destroy(),ue(this)};var ez=OI;var $ge={};function Ict(e,t,n){let i,o,r;if(e instanceof vi){let s=Math.tan(.5*e.fovy);return i=e.near,o=e.near*s,r=e.aspectRatio*o,Math.max(t*i/r,n*i/o)}else if(e instanceof Ol)return i=e.near,o=e.top,r=e.right,Math.max(t*i/r,n*i/o);return Math.max(t,n)}var Pct=new h,Xge=new h;function Qge(e,t,n,i){if(l(i)&&n(.5)>i){let o=n(0),r=n(1),s=n(.5),a=s-o,c=s-r;return function(u){let f=n(u);if(u<=.5){let p=(f-o)/a;return P.lerp(e,-P.PI_OVER_TWO,p)}let d=(f-r)/c;return P.lerp(-P.PI_OVER_TWO,t,1-d)}}return function(o){return P.lerp(e,t,o)}}function aX(e,t,n,i,o){let r=o,s=Math.max(n,i);if(!l(r)){let a=e.position,c=t,u=e.up,f=e.right,d=e.frustum,p=h.subtract(a,c,Pct),g=h.magnitude(h.multiplyByScalar(u,h.dot(p,u),Xge)),m=h.magnitude(h.multiplyByScalar(f,h.dot(p,f),Xge));r=Math.min(Ict(d,g,m)*.2,1e9)}if(s<r){let u=-Math.pow((r-n)*1e6,.125),f=Math.pow((r-i)*1e6,1/8);return function(d){let p=d*(f-u)+u;return-Math.pow(p,8)/1e6+r}}return function(a){return P.lerp(n,i,a)}}function MI(e,t){return P.equalsEpsilon(e,P.TWO_PI,P.EPSILON11)&&(e=0),t>e+Math.PI?e+=P.TWO_PI:t<e-Math.PI&&(e-=P.TWO_PI),e}var Jge=new h;function Rct(e,t,n,i,o,r,s,a){let c=e.camera,u=h.clone(c.position,Jge),f=c.pitch,d=MI(c.heading,i),p=MI(c.roll,r),g=aX(c,n,u.z,n.z,s),m=Qge(f,o,g,a);function x(b){let T=b.time/t;c.setView({orientation:{heading:P.lerp(d,i,T),pitch:m(T),roll:P.lerp(p,r,T)}}),U.lerp(u,n,T,c.position),c.position.z=g(T)}return x}function Oct(e,t){e.longitude<t.longitude?e.longitude+=P.TWO_PI:t.longitude+=P.TWO_PI}function Mct(e,t){let n=e.longitude-t.longitude;n<-P.PI?e.longitude+=P.TWO_PI:n>P.PI&&(t.longitude+=P.TWO_PI)}var Lct=new fe,Nct=new fe;function Fct(e,t,n,i,o,r,s,a,c,u){let f=e.camera,p=e.mapProjection.ellipsoid,g=fe.clone(f.positionCartographic,Lct),m=f.pitch,x=MI(f.heading,i),b=MI(f.roll,r),T=p.cartesianToCartographic(n,Nct);g.longitude=P.zeroToTwoPi(g.longitude),T.longitude=P.zeroToTwoPi(T.longitude);let A=!1;if(l(a)){let D=P.zeroToTwoPi(a),O=Math.min(g.longitude,T.longitude),R=Math.max(g.longitude,T.longitude),M=D>=O&&D<=R;if(l(c)){let L=Math.abs(g.longitude-T.longitude),_=P.TWO_PI-L;(M?L:_)<(M?_:L)*c&&!M&&(A=!0)}else M||(A=!0)}A?Oct(g,T):Mct(g,T);let C=aX(f,n,g.height,T.height,s),S=Qge(m,o,C,u);function v(){let D=g.longitude,O=T.longitude,R=g.latitude,M=T.latitude;return function(_){let E=_.time/t,w=h.fromRadians(P.lerp(D,O,E),P.lerp(R,M,E),C(E),p);f.setView({destination:w,orientation:{heading:P.lerp(x,i,E),pitch:S(E),roll:P.lerp(b,r,E)}})}}return v()}function Bct(e,t,n,i,o,r,s){let a=e.camera,c=h.clone(a.position,Jge),u=MI(a.heading,i),f=a.frustum.right-a.frustum.left,d=aX(a,n,f,n.z,s);function p(g){let m=g.time/t;a.setView({orientation:{heading:P.lerp(u,i,m)}}),U.lerp(c,n,m,a.position);let x=d(m),b=a.frustum,T=b.top/b.right,A=(x-(b.right-b.left))*.5;b.right+=A,b.left-=A,b.top=T*b.right,b.bottom=-b.top}return p}var Kge=new fe,kct=new h;function sX(e,t){return{startObject:{},stopObject:{},duration:0,complete:e,cancel:t}}function Zge(e,t){function n(){typeof t=="function"&&t(),e.enableInputs=!0}return n}$ge.createTween=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=t.destination,i=e.mode;if(i===ne.MORPHING)return sX();let o=y(t.convert,!0),r=e.mapProjection,s=r.ellipsoid,a=t.maximumHeight,c=t.flyOverLongitude,u=t.flyOverLongitudeWeight,f=t.pitchAdjustHeight,d=t.easingFunction;o&&i!==ne.SCENE3D&&(s.cartesianToCartographic(n,Kge),n=r.project(Kge,kct));let p=e.camera,g=t.endTransform;l(g)&&p._setTransform(g);let m=t.duration;l(m)||(m=Math.ceil(h.distance(p.position,n)/1e6)+2,m=Math.min(m,3));let x=y(t.heading,0),b=y(t.pitch,-P.PI_OVER_TWO),T=y(t.roll,0),A=e.screenSpaceCameraController;A.enableInputs=!1;let C=Zge(A,t.complete),S=Zge(A,t.cancel),v=p.frustum,D=e.mode===ne.SCENE2D;if(D=D&&U.equalsEpsilon(p.position,n,P.EPSILON6),D=D&&P.equalsEpsilon(Math.max(v.right-v.left,v.top-v.bottom),n.z,P.EPSILON6),D=D||e.mode!==ne.SCENE2D&&h.equalsEpsilon(n,p.position,P.EPSILON10),D=D&&P.equalsEpsilon(P.negativePiToPi(x),P.negativePiToPi(p.heading),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(b),P.negativePiToPi(p.pitch),P.EPSILON10)&&P.equalsEpsilon(P.negativePiToPi(T),P.negativePiToPi(p.roll),P.EPSILON10),D)return sX(C,S);let O=new Array(4);if(O[ne.SCENE2D]=Bct,O[ne.SCENE3D]=Fct,O[ne.COLUMBUS_VIEW]=Rct,m<=0)return sX(function(){O[i](e,1,n,x,b,T,a,c,u,f)({time:1}),typeof C=="function"&&C()},S);let R=O[i](e,m,n,x,b,T,a,c,u,f);if(!l(d)){let M=p.positionCartographic.height,L=i===ne.SCENE3D?s.cartesianToCartographic(n).height:n.z;M>L&&M>11500?d=Kr.CUBIC_OUT:d=Kr.QUINTIC_IN_OUT}return{duration:m,easingFunction:d,startObject:{time:0},stopObject:{time:m},update:R,complete:C,cancel:S}};var tz=$ge;var Vct={ROTATE:0,INFINITE_SCROLL:1},wu=Object.freeze(Vct);function Jt(e){this._scene=e,this._transform=F.clone(F.IDENTITY),this._invTransform=F.clone(F.IDENTITY),this._actualTransform=F.clone(F.IDENTITY),this._actualInvTransform=F.clone(F.IDENTITY),this._transformChanged=!1,this.position=new h,this._position=new h,this._positionWC=new h,this._positionCartographic=new fe,this._oldPositionWC=void 0,this.positionWCDeltaMagnitude=0,this.positionWCDeltaMagnitudeLastFrame=0,this.timeSinceMoved=0,this._lastMovedTimestamp=0,this.direction=new h,this._direction=new h,this._directionWC=new h,this.up=new h,this._up=new h,this._upWC=new h,this.right=new h,this._right=new h,this._rightWC=new h,this.frustum=new vi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60),this.defaultMoveAmount=1e5,this.defaultLookAmount=Math.PI/60,this.defaultRotateAmount=Math.PI/3600,this.defaultZoomAmount=1e5,this.constrainedAxis=void 0,this.maximumZoomFactor=1.5,this._moveStart=new me,this._moveEnd=new me,this._changed=new me,this._changedPosition=void 0,this._changedDirection=void 0,this._changedFrustum=void 0,this._changedHeading=void 0,this._changedRoll=void 0,this.percentageChanged=.5,this._viewMatrix=new F,this._invViewMatrix=new F,aye(this),this._mode=ne.SCENE3D,this._modeChanged=!0;let t=e.mapProjection;this._projection=t,this._maxCoord=t.project(new fe(Math.PI,P.PI_OVER_TWO)),this._max2Dfrustum=void 0,xye(this,Jt.DEFAULT_VIEW_RECTANGLE,this.position,!0);let n=h.magnitude(this.position);n+=n*Jt.DEFAULT_VIEW_FACTOR,h.normalize(this.position,this.position),h.multiplyByScalar(this.position,n,this.position)}Jt.TRANSFORM_2D=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);Jt.TRANSFORM_2D_INVERSE=F.inverseTransformation(Jt.TRANSFORM_2D,new F);Jt.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-95,-20,-70,90);Jt.DEFAULT_VIEW_FACTOR=.5;Jt.DEFAULT_OFFSET=new Vd(0,-P.PI_OVER_FOUR,0);function aye(e){F.computeView(e._position,e._direction,e._up,e._right,e._viewMatrix),F.multiply(e._viewMatrix,e._actualInvTransform,e._viewMatrix),F.inverseTransformation(e._viewMatrix,e._invViewMatrix)}function Uct(e){if(!l(e._oldPositionWC))e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC);else{e.positionWCDeltaMagnitudeLastFrame=e.positionWCDeltaMagnitude;let t=h.subtract(e.positionWC,e._oldPositionWC,e._oldPositionWC);e.positionWCDeltaMagnitude=h.magnitude(t),e._oldPositionWC=h.clone(e.positionWC,e._oldPositionWC),e.positionWCDeltaMagnitude>0?(e.timeSinceMoved=0,e._lastMovedTimestamp=Ti()):e.timeSinceMoved=Math.max(Ti()-e._lastMovedTimestamp,0)/1e3}}Jt.prototype.canPreloadFlight=function(){return l(this._currentFlight)&&this._mode!==ne.SCENE2D};Jt.prototype._updateCameraChanged=function(){let e=this;if(Uct(e),e._changed.numberOfListeners===0)return;let t=e.percentageChanged,n=e.heading;l(e._changedHeading)||(e._changedHeading=n);let i=Math.abs(e._changedHeading-n)%P.TWO_PI;i=i>P.PI?P.TWO_PI-i:i;let o=i/Math.PI;o>t&&(e._changedHeading=n);let r=e.roll;l(e._changedRoll)||(e._changedRoll=r);let s=Math.abs(e._changedRoll-r)%P.TWO_PI;s=s>P.PI?P.TWO_PI-s:s;let a=s/Math.PI;if(a>t&&(e._changedRoll=r),(a>t||o>t)&&e._changed.raiseEvent(Math.max(a,o)),e._mode===ne.SCENE2D){if(!l(e._changedFrustum)){e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone();return}let p=e.position,g=e._changedPosition,m=e.frustum,x=e._changedFrustum,b=p.x+m.left,T=p.x+m.right,A=g.x+x.left,C=g.x+x.right,S=p.y+m.bottom,v=p.y+m.top,D=g.y+x.bottom,O=g.y+x.top,R=Math.max(b,A),M=Math.min(T,C),L=Math.max(S,D),_=Math.min(v,O),E;if(R>=M||L>=v)E=1;else{let w=x;b<A&&T>C&&S<D&&v>O&&(w=m),E=1-(M-R)*(_-L)/((w.right-w.left)*(w.top-w.bottom))}E>t&&(e._changed.raiseEvent(E),e._changedPosition=h.clone(e.position,e._changedPosition),e._changedFrustum=e.frustum.clone(e._changedFrustum));return}if(!l(e._changedDirection)){e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection);return}let c=P.acosClamped(h.dot(e.directionWC,e._changedDirection)),u;l(e.frustum.fovy)?u=c/(e.frustum.fovy*.5):u=c;let d=h.distance(e.positionWC,e._changedPosition)/e.positionCartographic.height;(u>t||d>t)&&(e._changed.raiseEvent(Math.max(u,d)),e._changedPosition=h.clone(e.positionWC,e._changedPosition),e._changedDirection=h.clone(e.directionWC,e._changedDirection))};function zct(e){Nt.basisTo2D(e._projection,e._transform,e._actualTransform)}var Hct=new fe,Gct=new h,nz=new h,Wct=new oe,jct=new oe,qct=new oe,Yct=new oe,Xct=new oe;function Kct(e){let t=e._projection,n=t.ellipsoid,i=F.getColumn(e._transform,3,Wct),o=n.cartesianToCartographic(i,Hct),r=t.project(o,Gct),s=jct;s.x=r.z,s.y=r.x,s.z=r.y,s.w=1;let a=oe.clone(oe.UNIT_X,Xct),c=oe.add(F.getColumn(e._transform,0,nz),i,nz);n.cartesianToCartographic(c,o),t.project(o,r);let u=qct;u.x=r.z,u.y=r.x,u.z=r.y,u.w=0,h.subtract(u,s,u),u.x=0;let f=Yct;if(h.magnitudeSquared(u)>P.EPSILON10)h.cross(a,u,f);else{let d=oe.add(F.getColumn(e._transform,1,nz),i,nz);n.cartesianToCartographic(d,o),t.project(o,r),f.x=r.z,f.y=r.x,f.z=r.y,f.w=0,h.subtract(f,s,f),f.x=0,h.magnitudeSquared(f)<P.EPSILON10&&(oe.clone(oe.UNIT_Y,u),oe.clone(oe.UNIT_Z,f))}h.cross(f,a,u),h.normalize(u,u),h.cross(a,u,f),h.normalize(f,f),F.setColumn(e._actualTransform,0,u,e._actualTransform),F.setColumn(e._actualTransform,1,f,e._actualTransform),F.setColumn(e._actualTransform,2,a,e._actualTransform),F.setColumn(e._actualTransform,3,s,e._actualTransform)}var cX=new h;function uc(e){let t=e._mode,n=!1,i=0;t===ne.SCENE2D&&(i=e.frustum.right-e.frustum.left,n=i!==e._positionCartographic.height);let o=e._position,r=!h.equals(o,e.position)||n;r&&(o=h.clone(e.position,e._position));let s=e._direction,a=!h.equals(s,e.direction);a&&(h.normalize(e.direction,e.direction),s=h.clone(e.direction,e._direction));let c=e._up,u=!h.equals(c,e.up);u&&(h.normalize(e.up,e.up),c=h.clone(e.up,e._up));let f=e._right,d=!h.equals(f,e.right);d&&(h.normalize(e.right,e.right),f=h.clone(e.right,e._right));let p=e._transformChanged||e._modeChanged;e._transformChanged=!1,p&&(F.inverseTransformation(e._transform,e._invTransform),e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D?F.equals(F.IDENTITY,e._transform)?F.clone(Jt.TRANSFORM_2D,e._actualTransform):e._mode===ne.COLUMBUS_VIEW?zct(e):Kct(e):F.clone(e._transform,e._actualTransform),F.inverseTransformation(e._actualTransform,e._actualInvTransform),e._modeChanged=!1);let g=e._actualTransform;if(r||p)if(e._positionWC=F.multiplyByPoint(g,o,e._positionWC),t===ne.SCENE3D||t===ne.MORPHING)e._positionCartographic=e._projection.ellipsoid.cartesianToCartographic(e._positionWC,e._positionCartographic);else{let m=cX;m.x=e._positionWC.y,m.y=e._positionWC.z,m.z=e._positionWC.x,t===ne.SCENE2D&&(m.z=i),e._projection.unproject(m,e._positionCartographic)}if(a||u||d){let m=h.dot(s,h.cross(c,f,cX));if(Math.abs(1-m)>P.EPSILON2){let x=1/h.magnitudeSquared(c),b=h.dot(c,s)*x,T=h.multiplyByScalar(s,b,cX);c=h.normalize(h.subtract(c,T,e._up),e._up),h.clone(c,e.up),f=h.cross(s,c,e._right),h.clone(f,e.right)}}(a||p)&&(e._directionWC=F.multiplyByPointAsVector(g,s,e._directionWC),h.normalize(e._directionWC,e._directionWC)),(u||p)&&(e._upWC=F.multiplyByPointAsVector(g,c,e._upWC),h.normalize(e._upWC,e._upWC)),(d||p)&&(e._rightWC=F.multiplyByPointAsVector(g,f,e._rightWC),h.normalize(e._rightWC,e._rightWC)),(r||a||u||d||p)&&aye(e)}function cye(e,t){let n;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)?n=Math.atan2(t.y,t.x)-P.PI_OVER_TWO:n=Math.atan2(e.y,e.x)-P.PI_OVER_TWO,P.TWO_PI-P.zeroToTwoPi(n)}function lye(e){return P.PI_OVER_TWO-P.acosClamped(e.z)}function uye(e,t,n){let i=0;return P.equalsEpsilon(Math.abs(e.z),1,P.EPSILON3)||(i=Math.atan2(-n.z,t.z),i=P.zeroToTwoPi(i+P.TWO_PI)),i}var rz=new F,sz=new F;Object.defineProperties(Jt.prototype,{transform:{get:function(){return this._transform}},inverseTransform:{get:function(){return uc(this),this._invTransform}},viewMatrix:{get:function(){return uc(this),this._viewMatrix}},inverseViewMatrix:{get:function(){return uc(this),this._invViewMatrix}},positionCartographic:{get:function(){return uc(this),this._positionCartographic}},positionWC:{get:function(){return uc(this),this._positionWC}},directionWC:{get:function(){return uc(this),this._directionWC}},upWC:{get:function(){return uc(this),this._upWC}},rightWC:{get:function(){return uc(this),this._rightWC}},heading:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,rz),n=Nt.eastNorthUpToFixedFrame(this.positionWC,e,sz);this._setTransform(n);let i=cye(this.direction,this.up);return this._setTransform(t),i}}},pitch:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,rz),n=Nt.eastNorthUpToFixedFrame(this.positionWC,e,sz);this._setTransform(n);let i=lye(this.direction);return this._setTransform(t),i}}},roll:{get:function(){if(this._mode!==ne.MORPHING){let e=this._projection.ellipsoid,t=F.clone(this._transform,rz),n=Nt.eastNorthUpToFixedFrame(this.positionWC,e,sz);this._setTransform(n);let i=uye(this.direction,this.up,this.right);return this._setTransform(t),i}}},moveStart:{get:function(){return this._moveStart}},moveEnd:{get:function(){return this._moveEnd}},changed:{get:function(){return this._changed}}});Jt.prototype.update=function(e){let t=!1;if(e!==this._mode&&(this._mode=e,this._modeChanged=e!==ne.MORPHING,t=this._mode===ne.SCENE2D),t){let n=this._max2Dfrustum=this.frustum.clone(),i=2,o=n.top/n.right;n.right=this._maxCoord.x*i,n.left=-n.right,n.top=o*n.right,n.bottom=-n.top}this._mode===ne.SCENE2D&&mye(this,this.position)};var Zct=new h,$ct=new h,Qct=new h;Jt.prototype._setTransform=function(e){let t=h.clone(this.positionWC,Zct),n=h.clone(this.upWC,$ct),i=h.clone(this.directionWC,Qct);F.clone(e,this._transform),this._transformChanged=!0,uc(this);let o=this._actualInvTransform;F.multiplyByPoint(o,t,this.position),F.multiplyByPointAsVector(o,i,this.direction),F.multiplyByPointAsVector(o,n,this.up),h.cross(this.direction,this.up,this.right),uc(this)};var Jct=new U,elt=new mn,tlt=new h,nlt=new h;function fye(e){if(!F.equals(F.IDENTITY,e.transform))return h.magnitude(e.position);let t=e._scene,n=t.globe,i=Jct;i.x=t.drawingBufferWidth/2,i.y=t.drawingBufferHeight/2;let o;if(l(n)){let a=e.getPickRay(i,elt);o=n.pickWorldCoordinates(a,t,!0,tlt)}let r;t.pickPositionSupported&&(r=t.pickPositionWorldCoordinates(i,nlt));let s;if(l(o)||l(r)){let a=l(r)?h.distance(r,e.positionWC):Number.POSITIVE_INFINITY,c=l(o)?h.distance(o,e.positionWC):Number.POSITIVE_INFINITY;s=Math.min(a,c)}else s=Math.max(e.positionCartographic.height,0);return s}Jt.prototype._adjustOrthographicFrustum=function(e){this.frustum instanceof rn&&(!e&&this._positionCartographic.height<15e4||(this.frustum.width=fye(this)))};var az=new h,hX=new F,ilt=new F,mX=new Me,pX=new $,dye=new fe;function olt(e,t,n){let i=F.clone(e.transform,hX),o=Nt.eastNorthUpToFixedFrame(t,e._projection.ellipsoid,ilt);e._setTransform(o),h.clone(h.ZERO,e.position),n.heading=n.heading-P.PI_OVER_TWO;let r=Me.fromHeadingPitchRoll(n,mX),s=$.fromQuaternion(r,pX);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(i),e._adjustOrthographicFrustum(!0)}function rlt(e,t,n,i){let o=F.clone(e.transform,hX);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let a=e._projection,c=a.ellipsoid.cartesianToCartographic(t,dye);t=a.project(c,az)}h.clone(t,e.position)}n.heading=n.heading-P.PI_OVER_TWO;let r=Me.fromHeadingPitchRoll(n,mX),s=$.fromQuaternion(r,pX);$.getColumn(s,0,e.direction),$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right),e._setTransform(o),e._adjustOrthographicFrustum(!0)}function slt(e,t,n,i){let o=F.clone(e.transform,hX);if(e._setTransform(F.IDENTITY),!h.equals(t,e.positionWC)){if(i){let c=e._projection,u=c.ellipsoid.cartesianToCartographic(t,dye);t=c.project(u,az)}U.clone(t,e.position);let r=-t.z*.5,s=-r,a=e.frustum;if(s>r){let c=a.top/a.right;a.right=s,a.left=r,a.top=a.right*c,a.bottom=-a.top}}if(e._scene.mapMode2D===wu.ROTATE){n.heading=n.heading-P.PI_OVER_TWO,n.pitch=-P.PI_OVER_TWO,n.roll=0;let r=Me.fromHeadingPitchRoll(n,mX),s=$.fromQuaternion(r,pX);$.getColumn(s,2,e.up),h.cross(e.direction,e.up,e.right)}e._setTransform(o)}var alt=new h,clt=new h,llt=new h;function hye(e,t,n,i){let o=h.clone(n.direction,alt),r=h.clone(n.up,clt);if(e._scene.mode===ne.SCENE3D){let a=e._projection.ellipsoid,c=Nt.eastNorthUpToFixedFrame(t,a,rz),u=F.inverseTransformation(c,sz);F.multiplyByPointAsVector(u,o,o),F.multiplyByPointAsVector(u,r,r)}let s=h.cross(o,r,llt);return i.heading=cye(o,r),i.pitch=lye(o),i.roll=uye(o,r,s),i}var dX={destination:void 0,orientation:{direction:void 0,up:void 0,heading:void 0,pitch:void 0,roll:void 0},convert:void 0,endTransform:void 0},LE=new Ua;Jt.prototype.setView=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.orientation,y.EMPTY_OBJECT),n=this._mode;if(n===ne.MORPHING)return;l(e.endTransform)&&this._setTransform(e.endTransform);let i=y(e.convert,!0),o=y(e.destination,h.clone(this.positionWC,az));l(o)&&l(o.west)&&(o=this.getRectangleCameraCoordinates(o,az),i=!1),l(t.direction)&&(t=hye(this,o,t,dX.orientation)),LE.heading=y(t.heading,0),LE.pitch=y(t.pitch,-P.PI_OVER_TWO),LE.roll=y(t.roll,0),n===ne.SCENE3D?olt(this,o,LE):n===ne.SCENE2D?slt(this,o,LE,i):rlt(this,o,LE,i)};var ult=new h;Jt.prototype.flyHome=function(e){let t=this._mode;if(t===ne.MORPHING&&this._scene.completeMorph(),t===ne.SCENE2D)this.flyTo({destination:Jt.DEFAULT_VIEW_RECTANGLE,duration:e,endTransform:F.IDENTITY});else if(t===ne.SCENE3D){let n=this.getRectangleCameraCoordinates(Jt.DEFAULT_VIEW_RECTANGLE),i=h.magnitude(n);i+=i*Jt.DEFAULT_VIEW_FACTOR,h.normalize(n,n),h.multiplyByScalar(n,i,n),this.flyTo({destination:n,duration:e,endTransform:F.IDENTITY})}else if(t===ne.COLUMBUS_VIEW){let n=this._projection.ellipsoid.maximumRadius,i=new h(0,-1,1);i=h.multiplyByScalar(h.normalize(i,i),5*n,i),this.flyTo({destination:i,duration:e,orientation:{heading:0,pitch:-Math.acos(h.normalize(i,ult).z),roll:0},endTransform:F.IDENTITY,convert:!1})}};Jt.prototype.worldToCameraCoordinates=function(e,t){return l(t)||(t=new oe),uc(this),F.multiplyByVector(this._actualInvTransform,e,t)};Jt.prototype.worldToCameraCoordinatesPoint=function(e,t){return l(t)||(t=new h),uc(this),F.multiplyByPoint(this._actualInvTransform,e,t)};Jt.prototype.worldToCameraCoordinatesVector=function(e,t){return l(t)||(t=new h),uc(this),F.multiplyByPointAsVector(this._actualInvTransform,e,t)};Jt.prototype.cameraToWorldCoordinates=function(e,t){return l(t)||(t=new oe),uc(this),F.multiplyByVector(this._actualTransform,e,t)};Jt.prototype.cameraToWorldCoordinatesPoint=function(e,t){return l(t)||(t=new h),uc(this),F.multiplyByPoint(this._actualTransform,e,t)};Jt.prototype.cameraToWorldCoordinatesVector=function(e,t){return l(t)||(t=new h),uc(this),F.multiplyByPointAsVector(this._actualTransform,e,t)};function mye(e,t){let n=e._scene.mapMode2D===wu.ROTATE,i=e._maxCoord.x,o=e._maxCoord.y,r,s;n?(s=i,r=-s):(s=t.x-i*2,r=t.x+i*2),t.x>i&&(t.x=s),t.x<-i&&(t.x=r),t.y>o&&(t.y=o),t.y<-o&&(t.y=-o)}var eye=new h;Jt.prototype.move=function(e,t){let n=this.position;h.multiplyByScalar(e,t,eye),h.add(n,eye,n),this._mode===ne.SCENE2D&&mye(this,n),this._adjustOrthographicFrustum(!0)};Jt.prototype.moveForward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?cz(this,e):this.move(this.direction,e)};Jt.prototype.moveBackward=function(e){e=y(e,this.defaultMoveAmount),this._mode===ne.SCENE2D?cz(this,-e):this.move(this.direction,-e)};Jt.prototype.moveUp=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,e)};Jt.prototype.moveDown=function(e){e=y(e,this.defaultMoveAmount),this.move(this.up,-e)};Jt.prototype.moveRight=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,e)};Jt.prototype.moveLeft=function(e){e=y(e,this.defaultMoveAmount),this.move(this.right,-e)};Jt.prototype.lookLeft=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,-e)};Jt.prototype.lookRight=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.up,e)};Jt.prototype.lookUp=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,-e)};Jt.prototype.lookDown=function(e){e=y(e,this.defaultLookAmount),this._mode!==ne.SCENE2D&&this.look(this.right,e)};var flt=new Me,dlt=new $;Jt.prototype.look=function(e,t){let n=y(t,this.defaultLookAmount),i=Me.fromAxisAngle(e,-n,flt),o=$.fromQuaternion(i,dlt),r=this.direction,s=this.up,a=this.right;$.multiplyByVector(o,r,r),$.multiplyByVector(o,s,s),$.multiplyByVector(o,a,a)};Jt.prototype.twistLeft=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,e)};Jt.prototype.twistRight=function(e){e=y(e,this.defaultLookAmount),this.look(this.direction,-e)};var hlt=new Me,mlt=new $;Jt.prototype.rotate=function(e,t){let n=y(t,this.defaultRotateAmount),i=Me.fromAxisAngle(e,-n,hlt),o=$.fromQuaternion(i,mlt);$.multiplyByVector(o,this.position,this.position),$.multiplyByVector(o,this.direction,this.direction),$.multiplyByVector(o,this.up,this.up),h.cross(this.direction,this.up,this.right),h.cross(this.right,this.direction,this.up),this._adjustOrthographicFrustum(!1)};Jt.prototype.rotateDown=function(e){e=y(e,this.defaultRotateAmount),pye(this,e)};Jt.prototype.rotateUp=function(e){e=y(e,this.defaultRotateAmount),pye(this,-e)};var plt=new h,_lt=new h,glt=new h,tye=new h;function pye(e,t){let n=e.position;if(l(e.constrainedAxis)&&!h.equalsEpsilon(e.position,h.ZERO,P.EPSILON2)){let i=h.normalize(n,plt),o=h.equalsEpsilon(i,e.constrainedAxis,P.EPSILON2),r=h.equalsEpsilon(i,h.negate(e.constrainedAxis,tye),P.EPSILON2);if(!o&&!r){let s=h.normalize(e.constrainedAxis,_lt),a=h.dot(i,s),c=P.acosClamped(a);t>0&&t>c&&(t=c-P.EPSILON4),a=h.dot(i,h.negate(s,tye)),c=P.acosClamped(a),t<0&&-t>c&&(t=-c+P.EPSILON4);let u=h.cross(s,i,glt);e.rotate(u,t)}else(o&&t<0||r&&t>0)&&e.rotate(e.right,t)}else e.rotate(e.right,t)}Jt.prototype.rotateRight=function(e){e=y(e,this.defaultRotateAmount),_ye(this,-e)};Jt.prototype.rotateLeft=function(e){e=y(e,this.defaultRotateAmount),_ye(this,e)};function _ye(e,t){l(e.constrainedAxis)?e.rotate(e.constrainedAxis,t):e.rotate(e.up,t)}function cz(e,t){let n=e.frustum,i;if(t=t*.5,Math.abs(n.top)+Math.abs(n.bottom)>Math.abs(n.left)+Math.abs(n.right)){let o=n.top-t,r=n.bottom+t,s=e._maxCoord.y;e._scene.mapMode2D===wu.ROTATE&&(s*=e.maximumZoomFactor),r>s&&(r=s,o=-s),o<=r&&(o=1,r=-1),i=n.right/n.top,n.top=o,n.bottom=r,n.right=n.top*i,n.left=-n.right}else{let o=n.right-t,r=n.left+t,s=e._maxCoord.x;e._scene.mapMode2D===wu.ROTATE&&(s*=e.maximumZoomFactor),o>s&&(o=s,r=-s),o<=r&&(o=1,r=-1),i=n.top/n.right,n.right=o,n.left=r,n.top=n.right*i,n.bottom=-n.top}}function gye(e,t){e.move(e.direction,t)}Jt.prototype.zoomIn=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?cz(this,e):gye(this,e)};Jt.prototype.zoomOut=function(e){e=y(e,this.defaultZoomAmount),this._mode===ne.SCENE2D?cz(this,-e):gye(this,-e)};Jt.prototype.getMagnitude=function(){if(this._mode===ne.SCENE3D)return h.magnitude(this.position);if(this._mode===ne.COLUMBUS_VIEW)return Math.abs(this.position.z);if(this._mode===ne.SCENE2D)return Math.max(this.frustum.right-this.frustum.left,this.frustum.top-this.frustum.bottom)};var ylt=new F;Jt.prototype.lookAt=function(e,t){let n=this._scene,i=y(n.ellipsoid,ee.default),o=Nt.eastNorthUpToFixedFrame(e,i,ylt);this.lookAtTransform(o,t)};var xlt=new h,blt=new Me,Tlt=new Me,Alt=new $;function yye(e,t,n){t=P.clamp(t,-P.PI_OVER_TWO,P.PI_OVER_TWO),e=P.zeroToTwoPi(e)-P.PI_OVER_TWO;let i=Me.fromAxisAngle(h.UNIT_Y,-t,blt),o=Me.fromAxisAngle(h.UNIT_Z,-e,Tlt),r=Me.multiply(o,i,o),s=$.fromQuaternion(r,Alt),a=h.clone(h.UNIT_X,xlt);return $.multiplyByVector(s,a,a),h.negate(a,a),h.multiplyByScalar(a,n,a),a}Jt.prototype.lookAtTransform=function(e,t){if(this._setTransform(e),!l(t))return;let n;if(l(t.heading)?n=yye(t.heading,t.pitch,t.range):n=t,this._mode===ne.SCENE2D){U.clone(U.ZERO,this.position),h.negate(n,this.up),this.up.z=0,h.magnitudeSquared(this.up)<P.EPSILON10&&h.clone(h.UNIT_Y,this.up),h.normalize(this.up,this.up),this._setTransform(F.IDENTITY),h.negate(h.UNIT_Z,this.direction),h.cross(this.direction,this.up,this.right),h.normalize(this.right,this.right);let i=this.frustum,o=i.top/i.right;i.right=h.magnitude(n)*.5,i.left=-i.right,i.top=o*i.right,i.bottom=-i.top,this._setTransform(e);return}h.clone(n,this.position),h.negate(this.position,this.direction),h.normalize(this.direction,this.direction),h.cross(this.direction,h.UNIT_Z,this.right),h.magnitudeSquared(this.right)<P.EPSILON10&&h.clone(h.UNIT_X,this.right),h.normalize(this.right,this.right),h.cross(this.right,this.direction,this.up),h.normalize(this.up,this.up),this._adjustOrthographicFrustum(!0)};var LI=new fe,Clt=new fe,Elt=new h,Slt=new h,vlt=new h,wlt=new h,Dlt=new h,Ilt=new h,Plt=new h,lX=new h,Rlt={direction:new h,right:new h,up:new h},nye;function lc(e,t,n,i){return Math.abs(h.dot(t,n))/i-h.dot(e,n)}function xye(e,t,n,i){let o=e._projection.ellipsoid,r=i?e:Rlt,{north:s,south:a,west:c}=t,{east:u}=t;c>u&&(u+=P.TWO_PI);let f=(c+u)*.5,d;if(a<-P.PI_OVER_TWO+P.RADIANS_PER_DEGREE&&s>P.PI_OVER_TWO-P.RADIANS_PER_DEGREE)d=0;else{let M=LI;M.longitude=f,M.latitude=s,M.height=0;let L=Clt;L.longitude=f,L.latitude=a,L.height=0;let _=nye;(!l(_)||_.ellipsoid!==o)&&(nye=_=new W_(void 0,void 0,o)),_.setEndPoints(M,L),d=_.interpolateUsingFraction(.5,LI).latitude}let p=LI;p.longitude=f,p.latitude=d,p.height=0;let g=o.cartographicToCartesian(p,Plt),m=LI;m.longitude=u,m.latitude=s;let x=o.cartographicToCartesian(m,Elt);m.longitude=c;let b=o.cartographicToCartesian(m,vlt);m.longitude=f;let T=o.cartographicToCartesian(m,Dlt);m.latitude=a;let A=o.cartographicToCartesian(m,Ilt);m.longitude=u;let C=o.cartographicToCartesian(m,wlt);m.longitude=c;let S=o.cartographicToCartesian(m,Slt);h.subtract(b,g,b),h.subtract(C,g,C),h.subtract(x,g,x),h.subtract(S,g,S),h.subtract(T,g,T),h.subtract(A,g,A);let v=o.geodeticSurfaceNormal(g,r.direction);h.negate(v,v);let D=h.cross(v,h.UNIT_Z,r.right);h.normalize(D,D);let O=h.cross(D,v,r.up),R;if(e.frustum instanceof rn){let M=Math.max(h.distance(x,b),h.distance(C,S)),L=Math.max(h.distance(x,C),h.distance(b,S)),_,E,w=e.frustum._offCenterFrustum,I=w.right/w.top,N=L*I;M>N?(_=M,E=_/I):(E=L,_=N),R=Math.max(_,E)}else{let M=Math.tan(e.frustum.fovy*.5),L=e.frustum.aspectRatio*M;if(R=Math.max(lc(v,O,b,M),lc(v,O,C,M),lc(v,O,x,M),lc(v,O,S,M),lc(v,O,T,M),lc(v,O,A,M),lc(v,D,b,L),lc(v,D,C,L),lc(v,D,x,L),lc(v,D,S,L),lc(v,D,T,L),lc(v,D,A,L)),a<0&&s>0){let _=LI;_.longitude=c,_.latitude=0,_.height=0;let E=o.cartographicToCartesian(_,lX);h.subtract(E,g,E),R=Math.max(R,lc(v,O,E,M),lc(v,D,E,L)),_.longitude=u,E=o.cartographicToCartesian(_,lX),h.subtract(E,g,E),R=Math.max(R,lc(v,O,E,M),lc(v,D,E,L))}}return h.add(g,h.multiplyByScalar(v,-R,lX),n)}var Olt=new fe,Mlt=new h,Llt=new h;function Nlt(e,t,n){let i=e._projection;t.west>t.east&&(t=re.MAX_VALUE);let o=e._actualTransform,r=e._actualInvTransform,s=Olt;s.longitude=t.east,s.latitude=t.north;let a=i.project(s,Mlt);F.multiplyByPoint(o,a,a),F.multiplyByPoint(r,a,a),s.longitude=t.west,s.latitude=t.south;let c=i.project(s,Llt);if(F.multiplyByPoint(o,c,c),F.multiplyByPoint(r,c,c),n.x=(a.x-c.x)*.5+c.x,n.y=(a.y-c.y)*.5+c.y,l(e.frustum.fovy)){let u=Math.tan(e.frustum.fovy*.5),f=e.frustum.aspectRatio*u;n.z=Math.max((a.x-c.x)/f,(a.y-c.y)/u)*.5}else{let u=a.x-c.x,f=a.y-c.y;n.z=Math.max(u,f)}return n}var Flt=new fe,Blt=new h,klt=new h;function Vlt(e,t,n){let i=e._projection,o=t.east;t.west>t.east&&(e._scene.mapMode2D===wu.INFINITE_SCROLL?o+=P.TWO_PI:(t=re.MAX_VALUE,o=t.east));let r=Flt;r.longitude=o,r.latitude=t.north;let s=i.project(r,Blt);r.longitude=t.west,r.latitude=t.south;let a=i.project(r,klt),c=Math.abs(s.x-a.x)*.5,u=Math.abs(s.y-a.y)*.5,f,d,p=e.frustum.right/e.frustum.top,g=u*p;return c>g?(f=c,d=f/p):(d=u,f=g),u=Math.max(2*f,2*d),n.x=(s.x-a.x)*.5+a.x,n.y=(s.y-a.y)*.5+a.y,r=i.unproject(n,r),r.height=u,n=i.project(r,n),n}Jt.prototype.getRectangleCameraCoordinates=function(e,t){let n=this._mode;if(l(t)||(t=new h),n===ne.SCENE3D)return xye(this,e,t);if(n===ne.COLUMBUS_VIEW)return Nlt(this,e,t);if(n===ne.SCENE2D)return Vlt(this,e,t)};var Ult=new mn;function zlt(e,t,n,i){n=y(n,ee.default);let o=e.getPickRay(t,Ult),r=$n.rayEllipsoid(o,n);if(!r)return;let s=r.start>0?r.start:r.stop;return mn.getPoint(o,s,i)}var Hlt=new mn;function Glt(e,t,n,i){let r=e.getPickRay(t,Hlt).origin;r=h.fromElements(r.y,r.z,0,r);let s=n.unproject(r);if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO))return n.ellipsoid.cartographicToCartesian(s,i)}var Wlt=new mn;function jlt(e,t,n,i){let o=e.getPickRay(t,Wlt),r=-o.origin.x/o.direction.x;mn.getPoint(o,r,i);let s=n.unproject(new h(i.y,i.z,0));if(!(s.latitude<-P.PI_OVER_TWO||s.latitude>P.PI_OVER_TWO||s.longitude<-Math.PI||s.longitude>Math.PI))return n.ellipsoid.cartographicToCartesian(s,i)}Jt.prototype.pickEllipsoid=function(e,t,n){let i=this._scene.canvas;if(!(i.clientWidth===0||i.clientHeight===0)){if(l(n)||(n=new h),t=y(t,ee.default),this._mode===ne.SCENE3D)n=zlt(this,e,t,n);else if(this._mode===ne.SCENE2D)n=Glt(this,e,this._projection,n);else if(this._mode===ne.COLUMBUS_VIEW)n=jlt(this,e,this._projection,n);else return;return n}};var qlt=new h,Ylt=new h,Xlt=new h;function Klt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=Math.tan(e.frustum.fovy*.5),a=e.frustum.aspectRatio*s,c=e.frustum.near,u=2/o*t.x-1,f=2/r*(r-t.y)-1,d=e.positionWC;h.clone(d,n.origin);let p=h.multiplyByScalar(e.directionWC,c,qlt);h.add(d,p,p);let g=h.multiplyByScalar(e.rightWC,u*c*a,Ylt),m=h.multiplyByScalar(e.upWC,f*c*s,Xlt),x=h.add(p,g,n.direction);return h.add(x,m,x),h.subtract(x,d,x),h.normalize(x,x),n}var iz=new h;function Zlt(e,t,n){let i=e._scene.canvas,o=i.clientWidth,r=i.clientHeight,s=e.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2/o*t.x-1;c*=(s.right-s.left)*.5;let u=2/r*(r-t.y)-1;u*=(s.top-s.bottom)*.5;let f=n.origin;return h.clone(e.position,f),h.multiplyByScalar(e.right,c,iz),h.add(iz,f,f),h.multiplyByScalar(e.up,u,iz),h.add(iz,f,f),h.clone(e.directionWC,n.direction),(e._mode===ne.COLUMBUS_VIEW||e._mode===ne.SCENE2D)&&h.fromElements(n.origin.z,n.origin.x,n.origin.y,n.origin),n}Jt.prototype.getPickRay=function(e,t){l(t)||(t=new mn);let n=this._scene.canvas;if(n.clientWidth<=0||n.clientHeight<=0)return;let i=this.frustum;return l(i.aspectRatio)&&l(i.fov)&&l(i.near)?Klt(this,e,t):Zlt(this,e,t)};var $lt=new h,Qlt=new h;Jt.prototype.distanceToBoundingSphere=function(e){let t=h.subtract(this.positionWC,e.center,$lt),n=h.multiplyByScalar(this.directionWC,h.dot(t,this.directionWC),Qlt);return Math.max(0,h.magnitude(n)-e.radius)};var Jlt=new U;Jt.prototype.getPixelSize=function(e,t,n){let i=this.distanceToBoundingSphere(e),o=this.frustum.getPixelDimensions(t,n,i,this._scene.pixelRatio,Jlt);return Math.max(o.x,o.y)};function eut(e,t,n,i,o,r){let s=h.clone(t);n.y>i?s.y-=n.y-i:n.y<-i&&(s.y+=-i-n.y),n.z>o?s.z-=n.z-o:n.z<-o&&(s.z+=-o-n.z);function a(c){let u=h.lerp(t,s,c.time,new h);e.worldToCameraCoordinatesPoint(u,e.position)}return{easingFunction:Kr.EXPONENTIAL_OUT,startObject:{time:0},stopObject:{time:1},duration:r,update:a}}var tut=new h,iye=new h,nut=new h,iut=new h;function out(e,t){let n=e.position,i=e.direction,o=e.worldToCameraCoordinatesVector(h.UNIT_X,tut),r=-h.dot(o,n)/h.dot(o,i),s=h.add(n,h.multiplyByScalar(i,r,iye),iye);e.cameraToWorldCoordinatesPoint(s,s),n=e.cameraToWorldCoordinatesPoint(e.position,nut);let a=Math.tan(e.frustum.fovy*.5),c=e.frustum.aspectRatio*a,u=h.magnitude(h.subtract(n,s,iut)),f=c*u,d=a*u,p=e._maxCoord.x,g=e._maxCoord.y,m=Math.max(f-p,p),x=Math.max(d-g,g);if(n.z<-m||n.z>m||n.y<-x||n.y>x){let b=s.y<-m||s.y>m,T=s.z<-x||s.z>x;if(b||T)return eut(e,n,s,m,x,t)}}Jt.prototype.createCorrectPositionTween=function(e){if(this._mode===ne.COLUMBUS_VIEW)return out(this,e)};var rut=new h,Gs={destination:void 0,heading:void 0,pitch:void 0,roll:void 0,duration:void 0,complete:void 0,cancel:void 0,endTransform:void 0,maximumHeight:void 0,easingFunction:void 0};Jt.prototype.cancelFlight=function(){l(this._currentFlight)&&(this._currentFlight.cancelTween(),this._currentFlight=void 0)};Jt.prototype.completeFlight=function(){if(l(this._currentFlight)){this._currentFlight.cancelTween();let e={destination:void 0,orientation:{heading:void 0,pitch:void 0,roll:void 0}};e.destination=Gs.destination,e.orientation.heading=Gs.heading,e.orientation.pitch=Gs.pitch,e.orientation.roll=Gs.roll,this.setView(e),l(this._currentFlight.complete)&&this._currentFlight.complete(),this._currentFlight=void 0}};Jt.prototype.flyTo=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.destination;if(this._mode===ne.MORPHING)return;this.cancelFlight();let i=t instanceof re;i&&(t=this.getRectangleCameraCoordinates(t,rut));let o=y(e.orientation,y.EMPTY_OBJECT);if(l(o.direction)&&(o=hye(this,t,o,dX.orientation)),l(e.duration)&&e.duration<=0){let f=dX;f.destination=e.destination,f.orientation.heading=o.heading,f.orientation.pitch=o.pitch,f.orientation.roll=o.roll,f.convert=e.convert,f.endTransform=e.endTransform,this.setView(f),typeof e.complete=="function"&&e.complete();return}let r=this,s;Gs.destination=t,Gs.heading=o.heading,Gs.pitch=o.pitch,Gs.roll=o.roll,Gs.duration=e.duration,Gs.complete=function(){s===r._currentFlight&&(r._currentFlight=void 0),l(e.complete)&&e.complete()},Gs.cancel=e.cancel,Gs.endTransform=e.endTransform,Gs.convert=i?!1:e.convert,Gs.maximumHeight=e.maximumHeight,Gs.pitchAdjustHeight=e.pitchAdjustHeight,Gs.flyOverLongitude=e.flyOverLongitude,Gs.flyOverLongitudeWeight=e.flyOverLongitudeWeight,Gs.easingFunction=e.easingFunction;let a=this._scene,c=tz.createTween(a,Gs);if(c.duration===0){typeof c.complete=="function"&&c.complete();return}s=a.tweens.add(c),this._currentFlight=s;let u=this._scene.preloadFlightCamera;this._mode!==ne.SCENE2D&&(l(u)||(u=Jt.clone(this)),u.setView({destination:t,orientation:o}),this._scene.preloadFlightCullingVolume=u.frustum.computeCullingVolume(u.positionWC,u.directionWC,u.upWC))};function sut(e,t){let n=e.frustum,i=Math.tan(n.fovy*.5),o=n.aspectRatio*i;return Math.max(t/o,t/i)}function aut(e,t){let n=e.frustum,i=n.offCenterFrustum;l(i)&&(n=i);let o,r,s=n.right/n.top,a=t*s;return t>a?(o=t,r=o/s):(r=t,o=a),Math.max(o,r)*1.5}var cut=100;function bye(e,t,n){n=Vd.clone(l(n)?n:Jt.DEFAULT_OFFSET);let i=e._scene.screenSpaceCameraController.minimumZoomDistance,o=e._scene.screenSpaceCameraController.maximumZoomDistance,r=n.range;if(!l(r)||r===0){let s=t.radius;s===0?n.range=cut:e.frustum instanceof rn||e._mode===ne.SCENE2D?n.range=aut(e,s):n.range=sut(e,s),n.range=P.clamp(n.range,i,o)}return n}Jt.prototype.viewBoundingSphere=function(e,t){t=bye(this,e,t),this.lookAt(e.center,t)};var lut=new F,uut=new h,fut=new h,dut=new h,hut=new h,mut=new oe,put=new Me,_ut=new $;Jt.prototype.flyToBoundingSphere=function(e,t){t=y(t,y.EMPTY_OBJECT);let n=this._mode===ne.SCENE2D||this._mode===ne.COLUMBUS_VIEW;this._setTransform(F.IDENTITY);let i=bye(this,e,t.offset),o;n?o=h.multiplyByScalar(h.UNIT_Z,i.range,uut):o=yye(i.heading,i.pitch,i.range);let r=this._scene,s=y(r.ellipsoid,ee.default),a=Nt.eastNorthUpToFixedFrame(e.center,s,lut);F.multiplyByPoint(a,o,o);let c,u;if(!n){if(c=h.subtract(e.center,o,fut),h.normalize(c,c),u=F.multiplyByPointAsVector(a,h.UNIT_Z,dut),1-Math.abs(h.dot(c,u))<P.EPSILON6){let d=Me.fromAxisAngle(c,i.heading,put),p=$.fromQuaternion(d,_ut);h.fromCartesian4(F.getColumn(a,1,mut),u),$.multiplyByVector(p,u,u)}let f=h.cross(c,u,hut);h.cross(f,c,u),h.normalize(u,u)}this.flyTo({destination:o,orientation:{direction:c,up:u},duration:t.duration,complete:t.complete,cancel:t.cancel,endTransform:t.endTransform,maximumHeight:t.maximumHeight,easingFunction:t.easingFunction,flyOverLongitude:t.flyOverLongitude,flyOverLongitudeWeight:t.flyOverLongitudeWeight,pitchAdjustHeight:t.pitchAdjustHeight})};var oye=new h,rye=new h,uX=new h,sye=new h,NI=[new h,new h,new h,new h];function gut(e,t){let n=t.radii,i=e.positionWC,o=h.multiplyComponents(t.oneOverRadii,i,oye),r=h.magnitude(o),s=h.normalize(o,rye),a,c;h.equalsEpsilon(s,h.UNIT_Z,P.EPSILON10)?(a=new h(0,1,0),c=new h(0,0,1)):(a=h.normalize(h.cross(h.UNIT_Z,s,uX),uX),c=h.normalize(h.cross(s,a,sye),sye));let u=Math.sqrt(h.magnitudeSquared(o)-1),f=h.multiplyByScalar(s,1/r,oye),d=u/r,p=h.multiplyByScalar(a,d,rye),g=h.multiplyByScalar(c,d,uX),m=h.add(f,g,NI[0]);h.subtract(m,p,m),h.multiplyComponents(n,m,m);let x=h.subtract(f,g,NI[1]);h.subtract(x,p,x),h.multiplyComponents(n,x,x);let b=h.subtract(f,g,NI[2]);h.add(b,p,b),h.multiplyComponents(n,b,b);let T=h.add(f,g,NI[3]);return h.add(T,p,T),h.multiplyComponents(n,T,T),NI}var fX=new U,yut=new h,Hy=[new fe,new fe,new fe,new fe];function oz(e,t,n,i,o,r){fX.x=e,fX.y=t;let s=i.pickEllipsoid(fX,o,yut);return l(s)?(Hy[n]=o.cartesianToCartographic(s,Hy[n]),1):(Hy[n]=o.cartesianToCartographic(r[n],Hy[n]),0)}Jt.prototype.computeViewRectangle=function(e,t){e=y(e,ee.default);let n=this.frustum.computeCullingVolume(this.positionWC,this.directionWC,this.upWC),i=new se(h.ZERO,e.maximumRadius);if(n.computeVisibility(i)===Yt.OUTSIDE)return;let r=this._scene.canvas,s=r.clientWidth,a=r.clientHeight,c=0,u=gut(this,e);if(c+=oz(0,0,0,this,e,u),c+=oz(0,a,1,this,e,u),c+=oz(s,a,2,this,e,u),c+=oz(s,0,3,this,e,u),c<2)return re.MAX_VALUE;t=re.fromCartographicArray(Hy,t);let f=0,d=Hy[3].longitude;for(let p=0;p<4;++p){let g=Hy[p].longitude,m=Math.abs(g-d);m>P.PI?f+=P.TWO_PI-m:f+=m,d=g}return P.equalsEpsilon(Math.abs(f),P.TWO_PI,P.EPSILON9)&&(t.west=-P.PI,t.east=P.PI,Hy[0].latitude>=0?t.north=P.PI_OVER_TWO:t.south=-P.PI_OVER_TWO),t};Jt.prototype.switchToPerspectiveFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof vi)return;let e=this._scene;this.frustum=new vi,this.frustum.aspectRatio=e.drawingBufferWidth/e.drawingBufferHeight,this.frustum.fov=P.toRadians(60)};Jt.prototype.switchToOrthographicFrustum=function(){if(this._mode===ne.SCENE2D||this.frustum instanceof rn)return;let e=fye(this),t=this._scene;this.frustum=new rn,this.frustum.aspectRatio=t.drawingBufferWidth/t.drawingBufferHeight,this.frustum.width=e};Jt.clone=function(e,t){return l(t)||(t=new Jt(e._scene)),h.clone(e.position,t.position),h.clone(e.direction,t.direction),h.clone(e.up,t.up),h.clone(e.right,t.right),F.clone(e._transform,t.transform),t._transformChanged=!0,t.frustum=e.frustum.clone(),t};var io=Jt;function xut(e){this.pass=e.pass,this.commandList=e.commandList,this.camera=e.camera,this.cullingVolume=e.cullingVolume,this.ready=!1}var Qd=xut;var Sye=Er(zl(),1),Tye=576,but=100,FI="#ffffff",lz="#48b";function vye(e,t){this.credit=e,this.count=y(t,1)}function Tut(e,t){let n=e.length;for(let i=0;i<n;i++){let o=e[i];if(wt.equals(o,t))return!0}return!1}function Aut(e){let t=e._previousCesiumCredit,n=e._currentCesiumCredit;wt.equals(n,t)||(l(t)&&e._cesiumCreditContainer.removeChild(t.element),l(n)&&e._cesiumCreditContainer.appendChild(n.element),e._previousCesiumCredit=n)}var wye="cesium-credit-delimiter";function Aye(e){let t=document.createElement("span");return t.textContent=e,t.className=wye,t}function Cye(e,t){if(l(t)){let n=document.createElement(t);n._creditId=e._creditId,n.appendChild(e),e=n}return e}function Eye(e,t,n,i){let o=e.childNodes,r=-1;t.sort(function(s,a){return a.count-s.count});for(let s=0;s<t.length;++s){let a=t[s].credit;if(l(a)){if(r=s,l(n)&&(r*=2,s>0)){let u=r-1;if(o.length<=u)e.appendChild(Aye(n));else{let f=o[u];f.className!==wye&&e.replaceChild(Aye(n),f)}}let c=a.element;if(o.length<=r)e.appendChild(Cye(c,i));else{let u=o[r];u._creditId!==a._id&&e.replaceChild(Cye(c,i),u)}}}for(++r;r<o.length;)e.removeChild(o[r])}function Cut(e){let t=e._lightboxCredits,n=e.viewport.clientWidth,i=e.viewport.clientHeight;n!==e._lastViewportWidth&&(n<Tye?(t.className="cesium-credit-lightbox cesium-credit-lightbox-mobile",t.style.marginTop="0"):(t.className="cesium-credit-lightbox cesium-credit-lightbox-expanded",t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`),e._lastViewportWidth=n),n>=Tye&&i!==e._lastViewportHeight&&(t.style.marginTop=`${Math.floor((i-t.clientHeight)*.5)}px`,e._lastViewportHeight=i)}function Eut(e){let t=` +.cesium-credit-lightbox-overlay { + display: none; + z-index: 1; + position: absolute; + top: 0; + left: 0; + width: 100%; + height: 100%; + background-color: rgba(80, 80, 80, 0.8); +} + +.cesium-credit-lightbox { + background-color: #303336; + color: ${FI}; + position: relative; + min-height: ${but}px; + margin: auto; +} +.cesium-credit-lightbox > ul > li a, +.cesium-credit-lightbox > ul > li a:visited, +.cesium-credit-wrapper a, +.cesium-credit-wrapper a:visited { + color: ${FI}; +} +.cesium-credit-lightbox > ul > li a:hover { + color: ${lz}; +} +.cesium-credit-lightbox.cesium-credit-lightbox-expanded { + border: 1px solid #444; + border-radius: 5px; + max-width: 370px; +} +.cesium-credit-lightbox.cesium-credit-lightbox-mobile { + height: 100%; + width: 100%; +} +.cesium-credit-lightbox-title { + padding: 20px 20px 0 20px; +} +.cesium-credit-lightbox-close { + font-size: 18pt; + cursor: pointer; + position: absolute; + top: 0; + right: 6px; + color: ${FI}; +} +.cesium-credit-lightbox-close:hover { + color: ${lz}; +} +.cesium-credit-lightbox > ul { + margin: 0; + padding: 12px 20px 12px 40px; + font-size: 13px; +} +.cesium-credit-lightbox > ul > li { + padding-bottom: 6px; +} +.cesium-credit-lightbox > ul > li * { + padding: 0; + margin: 0; +} + +.cesium-credit-expand-link { + padding-left: 5px; + cursor: pointer; + text-decoration: underline; + color: ${FI}; +} +.cesium-credit-expand-link:hover { + color: ${lz}; +} + +.cesium-credit-text { + color: ${FI}; +} + +.cesium-credit-delimiter { + padding: 0 5px; +} + +.cesium-credit-textContainer *, +.cesium-credit-logoContainer * { + display: inline; +} + +.cesium-credit-textContainer a:hover { + color: ${lz} +} + +.cesium-credit-textContainer .cesium-credit-wrapper:first-of-type { + padding-left: 5px; +} +`;function n(r){if(r.shadowRoot)return r.shadowRoot;if(r.getRootNode){let s=r.getRootNode();if(s instanceof ShadowRoot)return s}}let i=y(n(e),document.head),o=document.createElement("style");o.innerHTML=t,i.appendChild(o)}function ar(e,t,n){let i=this;n=y(n,document.body);let o=document.createElement("div");o.className="cesium-credit-lightbox-overlay",n.appendChild(o);let r=document.createElement("div");r.className="cesium-credit-lightbox",o.appendChild(r);function s(m){r.contains(m.target)||i.hideLightbox()}o.addEventListener("click",s,!1);let a=document.createElement("div");a.className="cesium-credit-lightbox-title",a.textContent="Data provided by:",r.appendChild(a);let c=document.createElement("a");c.onclick=this.hideLightbox.bind(this),c.innerHTML="×",c.className="cesium-credit-lightbox-close",r.appendChild(c);let u=document.createElement("ul");r.appendChild(u);let f=document.createElement("div");f.className="cesium-credit-logoContainer",f.style.display="inline",e.appendChild(f);let d=document.createElement("div");d.className="cesium-credit-textContainer",d.style.display="inline",e.appendChild(d);let p=document.createElement("a");p.className="cesium-credit-expand-link",p.onclick=this.showLightbox.bind(this),p.textContent="Data attribution",e.appendChild(p),Eut(e);let g=wt.clone(ar.cesiumCredit);this._delimiter=y(t,"\u2022"),this._screenContainer=d,this._cesiumCreditContainer=f,this._lastViewportHeight=void 0,this._lastViewportWidth=void 0,this._lightboxCredits=r,this._creditList=u,this._lightbox=o,this._hideLightbox=s,this._expandLink=p,this._expanded=!1,this._staticCredits=[],this._cesiumCredit=g,this._previousCesiumCredit=void 0,this._currentCesiumCredit=g,this._creditDisplayElementPool=[],this._creditDisplayElementIndex=0,this._currentFrameCredits={screenCredits:new St,lightboxCredits:new St},this._defaultCredit=void 0,this.viewport=n,this.container=e}function Dye(e,t,n,i){i=y(i,1);let o=t.get(n.id);if(l(o))o.count<Number.MAX_VALUE&&(o.count+=i);else{let r=e._creditDisplayElementPool,s=e._creditDisplayElementPoolIndex;s<r.length?(o=r[s],o.credit=n,o.count=i):(o=new vye(n,i),r.push(o)),++e._creditDisplayElementPoolIndex,t.set(n.id,o)}}ar.prototype.addCreditToNextFrame=function(e){if(e.isIon()){l(this._defaultCredit)||(this._defaultCredit=wt.clone(Iye())),this._currentCesiumCredit=this._defaultCredit;return}let t;e.showOnScreen?t=this._currentFrameCredits.screenCredits:t=this._currentFrameCredits.lightboxCredits,Dye(this,t,e)};ar.prototype.addStaticCredit=function(e){let t=this._staticCredits;Tut(t,e)||t.push(e)};ar.prototype.removeStaticCredit=function(e){let t=this._staticCredits,n=t.indexOf(e);n!==-1&&t.splice(n,1)};ar.prototype.showLightbox=function(){this._lightbox.style.display="block",this._expanded=!0};ar.prototype.hideLightbox=function(){this._lightbox.style.display="none",this._expanded=!1};ar.prototype.update=function(){this._expanded&&Cut(this)};ar.prototype.beginFrame=function(){let e=this._currentFrameCredits;this._creditDisplayElementPoolIndex=0;let t=e.screenCredits,n=e.lightboxCredits;t.removeAll(),n.removeAll();let i=this._staticCredits;for(let o=0;o<i.length;++o){let r=i[o],s=r.showOnScreen?t:n;r.isIon()&&wt.equals(ar.cesiumCredit,this._cesiumCredit)||Dye(this,s,r,Number.MAX_VALUE)}wt.equals(ar.cesiumCredit,this._cesiumCredit)||(this._cesiumCredit=wt.clone(ar.cesiumCredit)),this._currentCesiumCredit=this._cesiumCredit};ar.prototype.endFrame=function(){let e=this._currentFrameCredits.screenCredits.values;Eye(this._screenContainer,e,this._delimiter,void 0);let t=this._currentFrameCredits.lightboxCredits.values;this._expandLink.style.display=t.length>0?"inline":"none",Eye(this._creditList,t,void 0,"li"),Aut(this)};ar.prototype.destroy=function(){return this._lightbox.removeEventListener("click",this._hideLightbox,!1),this.container.removeChild(this._cesiumCreditContainer),this.container.removeChild(this._screenContainer),this.container.removeChild(this._expandLink),this.viewport.removeChild(this._lightbox),ue(this)};ar.prototype.isDestroyed=function(){return!1};ar._cesiumCredit=void 0;ar._cesiumCreditInitialized=!1;var uz;function Iye(){if(!l(uz)){let e=nn("Assets/Images/ion-credit.png");e.indexOf("http://")!==0&&e.indexOf("https://")!==0&&e.indexOf("data:")!==0&&(e=new Sye.default(e).path()),uz=new wt(`<a href="https://cesium.com/" target="_blank"><img src="${e}" style="vertical-align: -7px" title="Cesium ion"/></a>`,!0)}return ar._cesiumCreditInitialized||(ar._cesiumCredit=uz,ar._cesiumCreditInitialized=!0),uz}Object.defineProperties(ar,{cesiumCredit:{get:function(){return Iye(),ar._cesiumCredit},set:function(e){ar._cesiumCredit=e,ar._cesiumCreditInitialized=!0}}});ar.CreditDisplayElement=vye;var fz=ar;var dz=0,Sut=1;function ab(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e.vertexFormat,Pe.DEFAULT),r=y(e._drawNearPlane,!0),s,a;t instanceof vi?(s=dz,a=vi.packedLength):t instanceof rn&&(s=Sut,a=rn.packedLength),this._frustumType=s,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Me.clone(n),this._drawNearPlane=r,this._vertexFormat=o,this._workerName="createFrustumGeometry",this.packedLength=2+a+h.packedLength+Me.packedLength+Pe.packedLength}ab.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===dz?(vi.pack(o,t,n),n+=vi.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Me.pack(e._orientation,t,n),n+=Me.packedLength,Pe.pack(e._vertexFormat,t,n),n+=Pe.packedLength,t[n]=e._drawNearPlane?1:0,t};var vut=new vi,wut=new rn,Dut=new Me,Iut=new h,Put=new Pe;ab.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===dz?(o=vi.unpack(e,t,vut),t+=vi.packedLength):(o=rn.unpack(e,t,wut),t+=rn.packedLength);let r=h.unpack(e,t,Iut);t+=h.packedLength;let s=Me.unpack(e,t,Dut);t+=Me.packedLength;let a=Pe.unpack(e,t,Put);t+=Pe.packedLength;let c=e[t]===1;if(!l(n))return new ab({frustum:o,origin:r,orientation:s,vertexFormat:a,_drawNearPlane:c});let u=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(u),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Me.clone(s,n._orientation),n._vertexFormat=Pe.clone(a,n._vertexFormat),n._drawNearPlane=c,n};function NE(e,t,n,i,o,r,s,a){let c=e/3*2;for(let u=0;u<4;++u)l(t)&&(t[e]=r.x,t[e+1]=r.y,t[e+2]=r.z),l(n)&&(n[e]=s.x,n[e+1]=s.y,n[e+2]=s.z),l(i)&&(i[e]=a.x,i[e+1]=a.y,i[e+2]=a.z),e+=3;o[c]=0,o[c+1]=0,o[c+2]=1,o[c+3]=0,o[c+4]=1,o[c+5]=1,o[c+6]=0,o[c+7]=1}var Rut=new $,Out=new F,_X=new F,Pye=new h,Rye=new h,Oye=new h,Mut=new h,Lut=new h,Nut=new h,Gy=new Array(3),BI=new Array(4);BI[0]=new oe(-1,-1,1,1);BI[1]=new oe(1,-1,1,1);BI[2]=new oe(1,1,1,1);BI[3]=new oe(-1,1,1,1);var Mye=new Array(4);for(let e=0;e<4;++e)Mye[e]=new oe;ab._computeNearFarPlanes=function(e,t,n,i,o,r,s,a){let c=$.fromQuaternion(t,Rut),u=y(r,Pye),f=y(s,Rye),d=y(a,Oye);u=$.getColumn(c,0,u),f=$.getColumn(c,1,f),d=$.getColumn(c,2,d),h.normalize(u,u),h.normalize(f,f),h.normalize(d,d),h.negate(u,u);let p=F.computeView(e,d,f,u,Out),g,m,x=i.projectionMatrix;if(n===dz){let b=F.multiply(x,p,_X);m=F.inverse(b,_X)}else g=F.inverseTransformation(p,_X);l(m)?(Gy[0]=i.near,Gy[1]=i.far):(Gy[0]=0,Gy[1]=i.near,Gy[2]=i.far);for(let b=0;b<2;++b)for(let T=0;T<4;++T){let A=oe.clone(BI[T],Mye[T]);if(l(m)){A=F.multiplyByVector(m,A,A);let C=1/A.w;h.multiplyByScalar(A,C,A),h.subtract(A,e,A),h.normalize(A,A);let S=h.dot(d,A);h.multiplyByScalar(A,Gy[b]/S,A),h.add(A,e,A)}else{let C=i.offCenterFrustum;l(C)&&(i=C);let S=Gy[b],v=Gy[b+1];A.x=(A.x*(i.right-i.left)+i.left+i.right)*.5,A.y=(A.y*(i.top-i.bottom)+i.bottom+i.top)*.5,A.z=(A.z*(S-v)-S-v)*.5,A.w=1,F.multiplyByVector(g,A,A)}o[12*b+T*3]=A.x,o[12*b+T*3+1]=A.y,o[12*b+T*3+2]=A.z}};ab.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=e._vertexFormat,a=r?6:5,c=new Float64Array(3*4*6);ab._computeNearFarPlanes(i,o,t,n,c);let u=3*4*2;c[u]=c[3*4],c[u+1]=c[3*4+1],c[u+2]=c[3*4+2],c[u+3]=c[0],c[u+4]=c[1],c[u+5]=c[2],c[u+6]=c[3*3],c[u+7]=c[3*3+1],c[u+8]=c[3*3+2],c[u+9]=c[3*7],c[u+10]=c[3*7+1],c[u+11]=c[3*7+2],u+=3*4,c[u]=c[3*5],c[u+1]=c[3*5+1],c[u+2]=c[3*5+2],c[u+3]=c[3],c[u+4]=c[4],c[u+5]=c[5],c[u+6]=c[0],c[u+7]=c[1],c[u+8]=c[2],c[u+9]=c[3*4],c[u+10]=c[3*4+1],c[u+11]=c[3*4+2],u+=3*4,c[u]=c[3],c[u+1]=c[4],c[u+2]=c[5],c[u+3]=c[3*5],c[u+4]=c[3*5+1],c[u+5]=c[3*5+2],c[u+6]=c[3*6],c[u+7]=c[3*6+1],c[u+8]=c[3*6+2],c[u+9]=c[3*2],c[u+10]=c[3*2+1],c[u+11]=c[3*2+2],u+=3*4,c[u]=c[3*2],c[u+1]=c[3*2+1],c[u+2]=c[3*2+2],c[u+3]=c[3*6],c[u+4]=c[3*6+1],c[u+5]=c[3*6+2],c[u+6]=c[3*7],c[u+7]=c[3*7+1],c[u+8]=c[3*7+2],c[u+9]=c[3*3],c[u+10]=c[3*3+1],c[u+11]=c[3*3+2],r||(c=c.subarray(3*4));let f=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:c})});if(l(s.normal)||l(s.tangent)||l(s.bitangent)||l(s.st)){let p=l(s.normal)?new Float32Array(12*a):void 0,g=l(s.tangent)?new Float32Array(3*4*a):void 0,m=l(s.bitangent)?new Float32Array(3*4*a):void 0,x=l(s.st)?new Float32Array(2*4*a):void 0,b=Pye,T=Rye,A=Oye,C=h.negate(b,Mut),S=h.negate(T,Lut),v=h.negate(A,Nut);u=0,r&&(NE(u,p,g,m,x,v,b,T),u+=3*4),NE(u,p,g,m,x,A,C,T),u+=3*4,NE(u,p,g,m,x,C,v,T),u+=3*4,NE(u,p,g,m,x,S,v,C),u+=3*4,NE(u,p,g,m,x,b,A,T),u+=3*4,NE(u,p,g,m,x,T,A,C),l(p)&&(f.normal=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:p})),l(g)&&(f.tangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:g})),l(m)&&(f.bitangent=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:m})),l(x)&&(f.st=new Se({componentDatatype:X.FLOAT,componentsPerAttribute:2,values:x}))}let d=new Uint16Array(6*a);for(let p=0;p<a;++p){let g=p*6,m=p*4;d[g]=m,d[g+1]=m+1,d[g+2]=m+2,d[g+3]=m,d[g+4]=m+2,d[g+5]=m+3}return new ft({attributes:f,indices:d,primitiveType:Le.TRIANGLES,boundingSphere:se.fromVertices(c)})};var FE=ab;var gX=0,Fut=1;function kI(e){let t=e.frustum,n=e.orientation,i=e.origin,o=y(e._drawNearPlane,!0),r,s;t instanceof vi?(r=gX,s=vi.packedLength):t instanceof rn&&(r=Fut,s=rn.packedLength),this._frustumType=r,this._frustum=t.clone(),this._origin=h.clone(i),this._orientation=Me.clone(n),this._drawNearPlane=o,this._workerName="createFrustumOutlineGeometry",this.packedLength=2+s+h.packedLength+Me.packedLength}kI.pack=function(e,t,n){n=y(n,0);let i=e._frustumType,o=e._frustum;return t[n++]=i,i===gX?(vi.pack(o,t,n),n+=vi.packedLength):(rn.pack(o,t,n),n+=rn.packedLength),h.pack(e._origin,t,n),n+=h.packedLength,Me.pack(e._orientation,t,n),n+=Me.packedLength,t[n]=e._drawNearPlane?1:0,t};var But=new vi,kut=new rn,Vut=new Me,Uut=new h;kI.unpack=function(e,t,n){t=y(t,0);let i=e[t++],o;i===gX?(o=vi.unpack(e,t,But),t+=vi.packedLength):(o=rn.unpack(e,t,kut),t+=rn.packedLength);let r=h.unpack(e,t,Uut);t+=h.packedLength;let s=Me.unpack(e,t,Vut);t+=Me.packedLength;let a=e[t]===1;if(!l(n))return new kI({frustum:o,origin:r,orientation:s,_drawNearPlane:a});let c=i===n._frustumType?n._frustum:void 0;return n._frustum=o.clone(c),n._frustumType=i,n._origin=h.clone(r,n._origin),n._orientation=Me.clone(s,n._orientation),n._drawNearPlane=a,n};kI.createGeometry=function(e){let t=e._frustumType,n=e._frustum,i=e._origin,o=e._orientation,r=e._drawNearPlane,s=new Float64Array(3*4*2);FE._computeNearFarPlanes(i,o,t,n,s);let a=new dn({position:new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:s})}),c,u,f=r?2:1,d=new Uint16Array(8*(f+1)),p=r?0:1;for(;p<2;++p)c=r?p*8:0,u=p*4,d[c]=u,d[c+1]=u+1,d[c+2]=u+1,d[c+3]=u+2,d[c+4]=u+2,d[c+5]=u+3,d[c+6]=u+3,d[c+7]=u;for(p=0;p<2;++p)c=(f+p)*8,u=p*4,d[c]=u,d[c+1]=u+4,d[c+2]=u+1,d[c+3]=u+5,d[c+4]=u+2,d[c+5]=u+6,d[c+6]=u+3,d[c+7]=u+7;return new ft({attributes:a,indices:d,primitiveType:Le.LINES,boundingSphere:se.fromVertices(s)})};var hz=kI;function mz(e){e=y(e,y.EMPTY_OBJECT),this._camera=e.camera,this._frustumSplits=e.frustumSplits,this._color=y(e.color,z.CYAN),this._updateOnChange=y(e.updateOnChange,!0),this.show=y(e.show,!0),this.id=e.id,this._id=void 0,this._outlinePrimitives=[],this._planesPrimitives=[]}var zut=new h,Hut=new $,Gut=new Me,Wut=new vi,jut=new Ol,qut=new rn,Yut=new Ur,Xut=new z,Kut=[1,1e5];mz.prototype.update=function(e){if(!this.show)return;let t=this._planesPrimitives,n=this._outlinePrimitives,i,o;if(this._updateOnChange){for(o=t.length,i=0;i<o;++i)n[i]=n[i]&&n[i].destroy(),t[i]=t[i]&&t[i].destroy();t.length=0,n.length=0}if(t.length===0){let r=this._camera,s=r.frustum,a;s instanceof vi?a=Wut:s instanceof Ol?a=jut:s instanceof rn?a=qut:a=Yut,a=s.clone(a);let c,u=this._frustumSplits;!l(u)||u.length<=1?(u=Kut,u[0]=this._camera.frustum.near,u[1]=this._camera.frustum.far,c=1):c=u.length-1;let f=r.positionWC,d=r.directionWC,p=r.upWC,g=r.rightWC;g=h.negate(g,zut);let m=Hut;$.setColumn(m,0,g,m),$.setColumn(m,1,p,m),$.setColumn(m,2,d,m);let x=Me.fromRotationMatrix(m,Gut);for(t.length=n.length=c,i=0;i<c;++i)a.near=u[i],a.far=u[i+1],t[i]=new In({geometryInstances:new vt({geometry:new FE({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:qt.fromColor(z.fromAlpha(this._color,.1,Xut))},id:this.id,pickPrimitive:this}),appearance:new cn({translucent:!0,flat:!0}),asynchronous:!1}),n[i]=new In({geometryInstances:new vt({geometry:new hz({origin:f,orientation:x,frustum:a,_drawNearPlane:i===0}),attributes:{color:qt.fromColor(this._color)},id:this.id,pickPrimitive:this}),appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1})}for(o=t.length,i=0;i<o;++i)n[i].update(e),t[i].update(e)};mz.prototype.isDestroyed=function(){return!1};mz.prototype.destroy=function(){let e=this._planesPrimitives.length;for(let t=0;t<e;++t)this._outlinePrimitives[t]=this._outlinePrimitives[t]&&this._outlinePrimitives[t].destroy(),this._planesPrimitives[t]=this._planesPrimitives[t]&&this._planesPrimitives[t].destroy();return ue(this)};var u_=mz;var pz=`in vec4 positionEC; + +void main() +{ + vec3 position; + vec3 direction; + if (czm_orthographicIn3D == 1.0) + { + vec2 uv = (gl_FragCoord.xy - czm_viewport.xy) / czm_viewport.zw; + vec2 minPlane = vec2(czm_frustumPlanes.z, czm_frustumPlanes.y); // left, bottom + vec2 maxPlane = vec2(czm_frustumPlanes.w, czm_frustumPlanes.x); // right, top + position = vec3(mix(minPlane, maxPlane, uv), 0.0); + direction = vec3(0.0, 0.0, -1.0); + } + else + { + position = vec3(0.0); + direction = normalize(positionEC.xyz); + } + + czm_ray ray = czm_ray(position, direction); + + vec3 ellipsoid_center = czm_view[3].xyz; + + czm_raySegment intersection = czm_rayEllipsoidIntersectionInterval(ray, ellipsoid_center, czm_ellipsoidInverseRadii); + if (!czm_isEmpty(intersection)) + { + out_FragColor = vec4(1.0, 1.0, 0.0, 1.0); + } + else + { + discard; + } + + czm_writeLogDepth(); +} +`;var _z=`in vec4 position; + +out vec4 positionEC; + +void main() +{ + positionEC = czm_modelView * position; + gl_Position = czm_modelViewProjection * position; + + czm_vertexLogDepth(); +} +`;function UI(e){this._rs=void 0,this._sp=void 0,this._va=void 0,this._command=void 0,this._mode=void 0,this._useLogDepth=!1,this._ellipsoidOffset=y(e,0)}var VI=jt.supportsTypedArrays()?new Float32Array(12):[],Lye=new h,Nye=new h,yX=new h,Fye=new h,gz=new h;function Zut(e,t){let n=e.radii,i=t.camera,o,r,s;if(i.frustum instanceof rn)o=h.ZERO,r=i.rightWC,s=i.upWC;else{let d=i.positionWC,p=h.multiplyComponents(e.oneOverRadii,d,Lye),g=h.normalize(p,Nye),m=h.normalize(h.cross(h.UNIT_Z,p,yX),yX),x=h.normalize(h.cross(g,m,Fye),Fye),b=h.magnitude(p),T=Math.sqrt(b*b-1);o=h.multiplyByScalar(g,1/b,Lye);let A=T/b;r=h.multiplyByScalar(m,A,Nye),s=h.multiplyByScalar(x,A,yX)}let a=h.add(o,s,gz);h.subtract(a,r,a),h.multiplyComponents(n,a,a),h.pack(a,VI,0);let c=h.subtract(o,s,gz);h.subtract(c,r,c),h.multiplyComponents(n,c,c),h.pack(c,VI,3);let u=h.add(o,s,gz);h.add(u,r,u),h.multiplyComponents(n,u,u),h.pack(u,VI,6);let f=h.subtract(o,s,gz);return h.add(f,r,f),h.multiplyComponents(n,f,f),h.pack(f,VI,9),VI}UI.prototype.update=function(e){if(this._mode=e.mode,e.mode!==ne.SCENE3D)return;let t=e.context,n=e.mapProjection.ellipsoid.radii,i=new ee(n.x+this._ellipsoidOffset,n.y+this._ellipsoidOffset,n.z+this._ellipsoidOffset),o=e.useLogDepth;if(l(this._command)||(this._rs=Ve.fromCache({cull:{enabled:!0},depthTest:{enabled:!0},colorMask:{red:!1,green:!1,blue:!1,alpha:!1}}),this._command=new et({renderState:this._rs,boundingVolume:new se(h.ZERO,i.maximumRadius),pass:ve.OPAQUE,owner:this})),!l(this._sp)||this._useLogDepth!==o){this._useLogDepth=o;let s=new Ue({sources:[_z]}),a=new Ue({sources:[pz]});o&&(a.defines.push("LOG_DEPTH"),s.defines.push("LOG_DEPTH")),this._sp=en.replaceCache({shaderProgram:this._sp,context:t,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:{position:0}}),this._command.shaderProgram=this._sp}let r=Zut(i,e);if(l(this._va))this._va.getAttribute(0).vertexBuffer.copyFromArrayView(r);else{let s=new ft({attributes:{position:new Se({componentDatatype:X.FLOAT,componentsPerAttribute:3,values:r})},indices:[0,1,2,2,1,3],primitiveType:Le.TRIANGLES});this._va=ti.fromGeometry({context:t,geometry:s,attributeLocations:{position:0},bufferUsage:Fe.DYNAMIC_DRAW}),this._command.vertexArray=this._va}};UI.prototype.execute=function(e,t){this._mode===ne.SCENE3D&&this._command.execute(e,t)};UI.prototype.isDestroyed=function(){return!1};UI.prototype.destroy=function(){this._sp=this._sp&&this._sp.destroy(),this._va=this._va&&this._va.destroy()};var yz=UI;function kE(){}var $ut=/\bgl_FragDepth\b/,Qut=/\bdiscard\b/;function Jut(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"depthOnly");if(l(n))return n;let i=t.fragmentShaderSource,o=!1,r=i.sources;for(let a=0;a<r.length;++a)if($ut.test(r[a])||Qut.test(r[a])){o=!0;break}let s=i.defines.indexOf("LOG_DEPTH")>=0;if(!o&&!s){let a=`void main() +{ + out_FragColor = vec4(1.0); +} +`;i=new Ue({sources:[a]})}else if(!o&&s){let a=`void main() +{ + out_FragColor = vec4(1.0); + czm_writeLogDepth(); +} +`;i=new Ue({defines:["LOG_DEPTH"],sources:[a]})}return e.shaderCache.createDerivedShaderProgram(t,"depthOnly",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:i,attributeLocations:t._attributeLocations})}function eft(e,t){let n=e._depthOnlyRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.depthMask=!0,o.colorMask={red:!1,green:!1,blue:!1,alpha:!1};let r=Ve.fromCache(o);return n[t.id]=r,r}kE.createDepthOnlyDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.depthOnlyCommand?.shaderProgram,r=i.depthOnlyCommand?.renderState;return i.depthOnlyCommand=et.shallowClone(t,i.depthOnlyCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.depthOnlyCommand.shaderProgram=Jut(n,t.shaderProgram),i.depthOnlyCommand.renderState=eft(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.depthOnlyCommand.shaderProgram=o,i.depthOnlyCommand.renderState=r),i};var tft=/\s+czm_writeLogDepth\(/,nft=/\s+czm_vertexLogDepth\(/;function ift(e,t){if(t.fragmentShaderSource.defines.indexOf("LOG_DEPTH_READ_ONLY")>=0)return t;let i=e.shaderCache.getDerivedShaderProgram(t,"logDepth");if(l(i))return i;let o=t._attributeLocations,r=t.vertexShaderSource.clone(),s=t.fragmentShaderSource.clone();r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("LOG_DEPTH"),s.defines=l(s.defines)?s.defines.slice(0):[],s.defines.push("LOG_DEPTH");let a=!1,c=r.sources;for(let f=0;f<c.length;++f)if(nft.test(c[f])){a=!0;break}if(!a){for(let d=0;d<c.length;++d)c[d]=Ue.replaceMain(c[d],"czm_log_depth_main");c.push(` + +void main() +{ + czm_log_depth_main(); + czm_vertexLogDepth(); +} +`)}c=s.sources,a=!1;for(let f=0;f<c.length;++f)tft.test(c[f])&&(a=!0);s.defines.indexOf("LOG_DEPTH_WRITE")!==-1&&(a=!0);let u="";if(!a){for(let f=0;f<c.length;f++)c[f]=Ue.replaceMain(c[f],"czm_log_depth_main");u=` +void main() +{ + czm_log_depth_main(); + czm_writeLogDepth(); +} +`}return c.push(u),e.shaderCache.createDerivedShaderProgram(t,"logDepth",{vertexShaderSource:r,fragmentShaderSource:s,attributeLocations:o})}kE.createLogDepthCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=et.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=ift(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};function oft(e,t,n){let i=e.shaderCache.getDerivedShaderProgram(t,"pick");if(l(i))return i;let o=t._attributeLocations,{sources:r,defines:s}=t.fragmentShaderSource,c=r.some(g=>g.includes("out_FragData"))?"out_FragData_0":"out_FragColor",u=`void main () +{ + czm_non_pick_main(); + if (${c}.a == 0.0) { + discard; + } + ${c} = ${n}; +} `,f=r.length,d=new Array(f+1);for(let g=0;g<f;++g)d[g]=Ue.replaceMain(r[g],"czm_non_pick_main");d[f]=u;let p=new Ue({sources:d,defines:s});return e.shaderCache.createDerivedShaderProgram(t,"pick",{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:p,attributeLocations:o})}function Bye(e,t){let n=e.picking.pickRenderStateCache,i=n[t.id];if(l(i))return i;let o=Ve.getState(t);o.blending.enabled=!1,o.depthMask=!0;let r=Ve.fromCache(o);return n[t.id]=r,r}kE.createPickDerivedCommand=function(e,t,n,i){l(i)||(i={});let o=i.pickCommand?.shaderProgram,r=i.pickCommand?.renderState;return i.pickCommand=et.shallowClone(t,i.pickCommand),!l(o)||i.shaderProgramId!==t.shaderProgram.id?(i.pickCommand.shaderProgram=oft(n,t.shaderProgram,t.pickId),i.pickCommand.renderState=Bye(e,t.renderState),i.shaderProgramId=t.shaderProgram.id):(i.pickCommand.shaderProgram=o,i.pickCommand.renderState=r),i};function BE(e,t,n){let i=e.length;for(let o=0;o<i;o++)e[o].trimStart().split(/\s+/)[0]===t&&(e[o]=`${t} ${n}`)}function kye(e){return e.isArray?e.arrayLength:Et.getComponentCount(e.type)}function rft(e){let t=kye(e);return e.normalized?t===1?"float":`vec${t}`:t===1?"int":`ivec${t}`}function sft(e,t,n){let i=n.schemaId,o=n.className,r=n.propertyName,s=`pickMetadata-${i}-${o}-${r}`,a=e.shaderCache.getDerivedShaderProgram(t,s);if(l(a))return a;let c=n.classProperty,u=rft(c),f=["0.0","0.0","0.0","0.0"],d=kye(c);if(d===1)f[0]="float(value)";else{let x=["x","y","z","w"];for(let b=0;b<d;b++){let A=`value.${x[b]}`;f[b]=`float(${A})`}}if(!c.normalized)for(let x=0;x<d;x++)f[x]+=" / 255.0";let p=t.fragmentShaderSource.defines.slice();p.push(lf.METADATA_PICKING_ENABLED),BE(p,lf.METADATA_PICKING_VALUE_TYPE,u),BE(p,lf.METADATA_PICKING_VALUE_STRING,`metadata.${r}`),BE(p,lf.METADATA_PICKING_VALUE_COMPONENT_X,f[0]),BE(p,lf.METADATA_PICKING_VALUE_COMPONENT_Y,f[1]),BE(p,lf.METADATA_PICKING_VALUE_COMPONENT_Z,f[2]),BE(p,lf.METADATA_PICKING_VALUE_COMPONENT_W,f[3]);let g=new Ue({sources:t.fragmentShaderSource.sources,defines:p});return e.shaderCache.createDerivedShaderProgram(t,s,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:g,attributeLocations:t._attributeLocations})}kE.createPickMetadataDerivedCommand=function(e,t,n,i){return l(i)||(i={}),i.pickMetadataCommand=et.shallowClone(t,i.pickMetadataCommand),i.pickMetadataCommand.shaderProgram=sft(n,t.shaderProgram,t.pickedMetadataInfo),i.pickMetadataCommand.renderState=Bye(e,t.renderState),i.shaderProgramId=t.shaderProgram.id,i};function aft(e,t){let n=e.shaderCache.getDerivedShaderProgram(t,"HDR");if(l(n))return n;let i=t._attributeLocations,o=t.vertexShaderSource.clone(),r=t.fragmentShaderSource.clone();return o.defines=l(o.defines)?o.defines.slice(0):[],o.defines.push("HDR"),r.defines=l(r.defines)?r.defines.slice(0):[],r.defines.push("HDR"),e.shaderCache.createDerivedShaderProgram(t,"HDR",{vertexShaderSource:o,fragmentShaderSource:r,attributeLocations:i})}kE.createHdrCommand=function(e,t,n){l(n)||(n={});let i=n.command?.shaderProgram;return n.command=et.shallowClone(e,n.command),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.command.shaderProgram=aft(t,e.shaderProgram),n.shaderProgramId=e.shaderProgram.id):n.command.shaderProgram=i,n};var f_=kE;function xz(e){this._scene=e,this._lastAlpha=void 0,this._lastBeta=void 0,this._lastGamma=void 0,this._alpha=void 0,this._beta=void 0,this._gamma=void 0;let t=this;function n(i){let o=i.alpha;if(!l(o)){t._alpha=void 0,t._beta=void 0,t._gamma=void 0;return}t._alpha=P.toRadians(o),t._beta=P.toRadians(i.beta),t._gamma=P.toRadians(i.gamma)}window.addEventListener("deviceorientation",n,!1),this._removeListener=function(){window.removeEventListener("deviceorientation",n,!1)}}var cft=new Me,Vye=new Me,lft=new $;function uft(e,t,n,i){let o=e.direction,r=e.right,s=e.up,a=Me.fromAxisAngle(o,n,Vye),c=Me.fromAxisAngle(r,i,cft),u=Me.multiply(c,a,c),f=Me.fromAxisAngle(s,t,Vye);Me.multiply(f,u,u);let d=$.fromQuaternion(u,lft);$.multiplyByVector(d,r,r),$.multiplyByVector(d,s,s),$.multiplyByVector(d,o,o)}xz.prototype.update=function(){if(!l(this._alpha))return;l(this._lastAlpha)||(this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma);let e=this._lastAlpha-this._alpha,t=this._lastBeta-this._beta,n=this._lastGamma-this._gamma;uft(this._scene.camera,-e,t,n),this._lastAlpha=this._alpha,this._lastBeta=this._beta,this._lastGamma=this._gamma};xz.prototype.isDestroyed=function(){return!1};xz.prototype.destroy=function(){return this._removeListener(),ue(this)};var bz=xz;function xX(){this.enabled=!0,this.renderable=!0,this.density=6e-4,this.heightScalar=.001,this._heightFalloff=.59,this.maxHeight=8e5,this.visualDensityScalar=.15,this.screenSpaceErrorFactor=2,this.minimumBrightness=.03}Object.defineProperties(xX.prototype,{heightFalloff:{get:function(){return this._heightFalloff},set:function(e){this._heightFalloff=e}}});var fft=new h;xX.prototype.update=function(e){if(!(e.fog.enabled=this.enabled))return;e.fog.renderable=this.renderable;let n=e.camera,i=n.positionCartographic;if(!l(i)||i.height>this.maxHeight||e.mode!==ne.SCENE3D){e.fog.enabled=!1,e.fog.density=0;return}let o=i.height,r=this.density*this.heightScalar*Math.pow(Math.max(o/this.maxHeight,P.EPSILON4),-Math.max(this._heightFalloff,0)),s=h.normalize(n.positionWC,fft),a=Math.abs(h.dot(n.directionWC,s));r*=1-a,e.fog.density=r,e.fog.visualDensityScalar=this.visualDensityScalar,e.fog.sse=this.screenSpaceErrorFactor,e.fog.minimumBrightness=this.minimumBrightness};var Tz=xX;function dft(e,t,n){this.context=e,this.commandList=[],this.shadowMaps=[],this.brdfLutGenerator=void 0,this.environmentMap=void 0,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this.specularEnvironmentMapsMaximumLOD=void 0,this.mode=ne.SCENE3D,this.morphTime=ne.getMorphTime(ne.SCENE3D),this.frameNumber=0,this.newFrame=!1,this.time=void 0,this.jobScheduler=n,this.mapProjection=void 0,this.camera=void 0,this.cameraUnderground=!1,this.globeTranslucencyState=void 0,this.cullingVolume=void 0,this.occluder=void 0,this.maximumScreenSpaceError=void 0,this.pixelRatio=1,this.passes={render:!1,pick:!1,pickVoxel:!1,depth:!1,postProcess:!1,offscreen:!1},this.creditDisplay=t,this.afterRender=[],this.scene3DOnly=!1,this.fog={enabled:!1,renderable:!1,density:void 0,visualDensityScalar:void 0,sse:void 0,minimumBrightness:void 0},this.atmosphere=void 0,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.shadowState={shadowsEnabled:!0,shadowMaps:[],lightShadowMaps:[],nearPlane:1,farPlane:5e3,closestObjectSize:1e3,lastDirtyTime:0,outOfView:!0},this.splitPosition=0,this.frustumSplits=[],this.backgroundColor=void 0,this.light=void 0,this.minimumDisableDepthTestDistance=void 0,this.invertClassification=!1,this.invertClassificationColor=void 0,this.useLogDepth=!1,this.tilesetPassState=void 0,this.minimumTerrainHeight=0,this.pickingMetadata=!1,this.pickedMetadataInfo=void 0}var Az=dft;var da={OPAQUE_FRONT_FACE:0,OPAQUE_BACK_FACE:1,DEPTH_ONLY_FRONT_FACE:2,DEPTH_ONLY_BACK_FACE:3,DEPTH_ONLY_FRONT_AND_BACK_FACE:4,TRANSLUCENT_FRONT_FACE:5,TRANSLUCENT_BACK_FACE:6,TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:7,TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:8,PICK_FRONT_FACE:9,PICK_BACK_FACE:10,DERIVED_COMMANDS_MAXIMUM_LENGTH:11},cb=da.DERIVED_COMMANDS_MAXIMUM_LENGTH,Kye=["opaqueFrontFaceCommand","opaqueBackFaceCommand","depthOnlyFrontFaceCommand","depthOnlyBackFaceCommand","depthOnlyFrontAndBackFaceCommand","translucentFrontFaceCommand","translucentBackFaceCommand","translucentFrontFaceManualDepthTestCommand","translucentBackFaceManualDepthTestCommand","pickFrontFaceCommand","pickBackFaceCommand"];function lb(){this._frontFaceAlphaByDistance=new Vt(0,1,0,1),this._backFaceAlphaByDistance=new Vt(0,1,0,1),this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._requiresManualDepthTest=!1,this._sunVisibleThroughGlobe=!1,this._environmentVisible=!1,this._useDepthPlane=!1,this._numberOfTextureUniforms=0,this._globeTranslucencyFramebuffer=void 0,this._rectangle=re.clone(re.MAX_VALUE),this._derivedCommandKey=0,this._derivedCommandsDirty=!1,this._derivedCommandPacks=void 0,this._derivedCommandTypes=new Array(cb),this._derivedBlendCommandTypes=new Array(cb),this._derivedPickCommandTypes=new Array(cb),this._derivedCommandTypesToUpdate=new Array(cb),this._derivedCommandsLength=0,this._derivedBlendCommandsLength=0,this._derivedPickCommandsLength=0,this._derivedCommandsToUpdateLength=0}Object.defineProperties(lb.prototype,{frontFaceAlphaByDistance:{get:function(){return this._frontFaceAlphaByDistance}},backFaceAlphaByDistance:{get:function(){return this._backFaceAlphaByDistance}},translucent:{get:function(){return this._frontFaceTranslucent}},sunVisibleThroughGlobe:{get:function(){return this._sunVisibleThroughGlobe}},environmentVisible:{get:function(){return this._environmentVisible}},useDepthPlane:{get:function(){return this._useDepthPlane}},numberOfTextureUniforms:{get:function(){return this._numberOfTextureUniforms}},rectangle:{get:function(){return this._rectangle}}});lb.prototype.update=function(e){let t=e.globe;if(!l(t)||!t.show){this._frontFaceTranslucent=!1,this._backFaceTranslucent=!1,this._sunVisibleThroughGlobe=!0,this._environmentVisible=!0,this._useDepthPlane=!1;return}this._frontFaceAlphaByDistance=Uye(t.translucency.enabled,t.translucency.frontFaceAlpha,t.translucency.frontFaceAlphaByDistance,this._frontFaceAlphaByDistance),this._backFaceAlphaByDistance=Uye(t.translucency.enabled,t.translucency.backFaceAlpha,t.translucency.backFaceAlphaByDistance,this._backFaceAlphaByDistance),this._frontFaceTranslucent=zye(t.translucency.enabled,this._frontFaceAlphaByDistance,t),this._backFaceTranslucent=zye(t.translucency.enabled,this._backFaceAlphaByDistance,t),this._requiresManualDepthTest=_ft(this,e,t),this._sunVisibleThroughGlobe=hft(this,e),this._environmentVisible=mft(this,e),this._useDepthPlane=pft(this,e),this._numberOfTextureUniforms=gft(this),this._rectangle=re.clone(t.translucency.rectangle,this._rectangle),yft(this,e)};function Uye(e,t,n,i){return e?l(n)?(Vt.clone(n,i),i.nearValue*=t,i.farValue*=t,i):(i.nearValue=t,i.farValue=t,i):(i.nearValue=1,i.farValue=1,i)}function zye(e,t,n){return e&&(n.baseColor.alpha<1||t.nearValue<1||t.farValue<1)}function hft(e,t){let n=e._frontFaceTranslucent,i=e._backFaceTranslucent;return n&&(t.cameraUnderground||i)}function mft(e,t){return!t.cameraUnderground||e._frontFaceTranslucent}function pft(e,t){return!t.cameraUnderground&&!e._frontFaceTranslucent}function _ft(e,t,n){return e._frontFaceTranslucent&&!e._backFaceTranslucent&&!n.depthTestAgainstTerrain&&t.mode!==ne.SCENE2D&&t.context.depthTexture}function gft(e){let t=0;return e._frontFaceTranslucent&&++t,e._requiresManualDepthTest&&++t,t}function yft(e,t){e._derivedCommandsLength=bX(e,t,!1,!1,e._derivedCommandTypes),e._derivedBlendCommandsLength=bX(e,t,!0,!1,e._derivedBlendCommandTypes),e._derivedPickCommandsLength=bX(e,t,!1,!0,e._derivedPickCommandTypes);let n,i=0;for(n=0;n<e._derivedCommandsLength;++n)i|=1<<e._derivedCommandTypes[n];for(n=0;n<e._derivedBlendCommandsLength;++n)i|=1<<e._derivedBlendCommandTypes[n];for(n=0;n<e._derivedPickCommandsLength;++n)i|=1<<e._derivedPickCommandTypes[n];let o=0;for(n=0;n<cb;++n)(i&1<<n)>0&&(e._derivedCommandTypesToUpdate[o++]=n);e._derivedCommandsToUpdateLength=o;let r=i!==e._derivedCommandKey;e._derivedCommandKey=i,e._derivedCommandsDirty=r,!l(e._derivedCommandPacks)&&e._frontFaceTranslucent&&(e._derivedCommandPacks=Mft())}function bX(e,t,n,i,o){let r=0,s=e._frontFaceTranslucent,a=e._backFaceTranslucent;if(!s)return r;let c=t.cameraUnderground,u=e._requiresManualDepthTest,f=i?da.PICK_FRONT_FACE:u?da.TRANSLUCENT_FRONT_FACE_MANUAL_DEPTH_TEST:da.TRANSLUCENT_FRONT_FACE,d=i?da.PICK_BACK_FACE:u?da.TRANSLUCENT_BACK_FACE_MANUAL_DEPTH_TEST:da.TRANSLUCENT_BACK_FACE;return t.mode===ne.SCENE2D?(o[r++]=da.DEPTH_ONLY_FRONT_FACE,o[r++]=f,r):(a?(n||(o[r++]=da.DEPTH_ONLY_FRONT_AND_BACK_FACE),c?(o[r++]=f,o[r++]=d):(o[r++]=d,o[r++]=f)):c?(n||(o[r++]=da.DEPTH_ONLY_BACK_FACE),o[r++]=da.OPAQUE_FRONT_FACE,o[r++]=d):(n||(o[r++]=da.DEPTH_ONLY_FRONT_FACE),o[r++]=da.OPAQUE_BACK_FACE,o[r++]=f),r)}function Vf(e,t){let n=e.indexOf(t);n>-1&&e.splice(n,1)}function Hye(e,t){return e.indexOf(t)>-1}function xft(e,t){Vf(e.defines,"TRANSLUCENT"),Vf(t.defines,"TRANSLUCENT")}function bft(e,t){Vf(e.defines,"GROUND_ATMOSPHERE"),Vf(t.defines,"GROUND_ATMOSPHERE"),Vf(e.defines,"FOG"),Vf(t.defines,"FOG"),Vf(e.defines,"TRANSLUCENT"),Vf(t.defines,"TRANSLUCENT")}function TX(e,t){if(Hye(t.defines,"TILE_LIMIT_RECTANGLE")||Hye(t.defines,"ENABLE_CLIPPING_PLANES"))return;let n=`void main() +{ + out_FragColor = vec4(1.0); +} +`;t.sources=[n]}function AX(e,t){let n=t.sources,i=n.length;for(let r=0;r<i;++r)n[r]=Ue.replaceMain(n[r],"czm_globe_translucency_main");n.push(` + +uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; +#ifdef MANUAL_DEPTH_TEST + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, st)); + if (logDepthOrDepth != 0.0) + { + vec4 eyeCoordinate = czm_windowToEyeCoordinates(gl_FragCoord.xy, logDepthOrDepth); + float depthEC = eyeCoordinate.z / eyeCoordinate.w; + if (v_positionEC.z < depthEC) + { + discard; + } + } +#endif + czm_globe_translucency_main(); + vec4 classificationColor = texture(u_classificationTexture, st); + if (classificationColor.a > 0.0) + { + // Reverse premultiplication process to get the correct composited result of the classification primitives + classificationColor.rgb /= classificationColor.a; + } + out_FragColor = classificationColor * vec4(classificationColor.aaa, 1.0) + out_FragColor * (1.0 - classificationColor.a); +} +`)}function Zye(e,t){AX(e,t),Vf(e.defines,"GROUND_ATMOSPHERE"),Vf(t.defines,"GROUND_ATMOSPHERE"),Vf(e.defines,"FOG"),Vf(t.defines,"FOG")}function Tft(e,t){AX(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Aft(e,t){Zye(e,t),e.defines.push("GENERATE_POSITION"),t.defines.push("MANUAL_DEPTH_TEST")}function Gye(e,t){let n=`uniform sampler2D u_classificationTexture; +void main() +{ + vec2 st = gl_FragCoord.xy / czm_viewport.zw; + vec4 pickColor = texture(u_classificationTexture, st); + if (pickColor == vec4(0.0)) + { + discard; + } + out_FragColor = pickColor; +} +`;t.sources=[n]}function Cft(e,t,n,i,o,r){if(!l(o))return t;if(!i&&l(n))return n;let s=e.shaderCache.getDerivedShaderProgram(t,r);if(!l(s)){let a=t._attributeLocations,c=t.vertexShaderSource.clone(),u=t.fragmentShaderSource.clone();c.defines=l(c.defines)?c.defines.slice(0):[],u.defines=l(u.defines)?u.defines.slice(0):[],o(c,u),s=e.shaderCache.createDerivedShaderProgram(t,r,{vertexShaderSource:c,fragmentShaderSource:u,attributeLocations:a})}return s}function Eft(e){e.cull.face=yi.BACK,e.cull.enabled=!0}function Sft(e){e.cull.face=yi.FRONT,e.cull.enabled=!0}function vft(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function wft(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Dft(e){e.cull.enabled=!1,e.colorMask={red:!1,green:!1,blue:!1,alpha:!1}}function Wye(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.depthMask=!1,e.blending=ln.ALPHA_BLEND}function jye(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.depthMask=!1,e.blending=ln.ALPHA_BLEND}function Ift(e){e.cull.face=yi.BACK,e.cull.enabled=!0,e.blending.enabled=!1}function Pft(e){e.cull.face=yi.FRONT,e.cull.enabled=!0,e.blending.enabled=!1}function Rft(e,t,n,i,o){if(!l(i))return e;if(!n&&l(t))return t;let r=o[e.id];if(!l(r)){let s=Ve.getState(e);i(s),r=Ve.fromCache(s),o[e.id]=r}return r}function VE(e){return{u_classificationTexture:function(){return e._globeTranslucencyFramebuffer.classificationTexture}}}function Oft(e,t,n,i,o){return l(o)?!i&&l(n)?n:xt(t,o(e),!1):t}function Jd(e){this.pass=e.pass,this.pickOnly=e.pickOnly,this.getShaderProgramFunction=e.getShaderProgramFunction,this.getRenderStateFunction=e.getRenderStateFunction,this.getUniformMapFunction=e.getUniformMapFunction,this.renderStateCache={}}function Mft(){return[new Jd({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:xft,getRenderStateFunction:Eft,getUniformMapFunction:void 0}),new Jd({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:bft,getRenderStateFunction:Sft,getUniformMapFunction:void 0}),new Jd({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:TX,getRenderStateFunction:vft,getUniformMapFunction:void 0}),new Jd({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:TX,getRenderStateFunction:wft,getUniformMapFunction:void 0}),new Jd({pass:ve.GLOBE,pickOnly:!1,getShaderProgramFunction:TX,getRenderStateFunction:Dft,getUniformMapFunction:void 0}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:AX,getRenderStateFunction:Wye,getUniformMapFunction:VE}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Zye,getRenderStateFunction:jye,getUniformMapFunction:VE}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Tft,getRenderStateFunction:Wye,getUniformMapFunction:VE}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!1,getShaderProgramFunction:Aft,getRenderStateFunction:jye,getUniformMapFunction:VE}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Gye,getRenderStateFunction:Ift,getUniformMapFunction:VE}),new Jd({pass:ve.TRANSLUCENT,pickOnly:!0,getShaderProgramFunction:Gye,getRenderStateFunction:Pft,getUniformMapFunction:VE})]}var qye=new Array(cb),Yye=new Array(cb);lb.prototype.updateDerivedCommands=function(e,t){let n=this._derivedCommandTypesToUpdate,i=this._derivedCommandsToUpdateLength;if(i!==0){for(let o=0;o<i;++o)Yye[o]=this._derivedCommandPacks[n[o]],qye[o]=Kye[n[o]];Lft(this,e,i,n,qye,Yye,t)}};function Lft(e,t,n,i,o,r,s){let a=t.derivedCommands.globeTranslucency,c=e._derivedCommandsDirty;if(t.dirty||!l(a)||c){t.dirty=!1,l(a)||(a={},t.derivedCommands.globeTranslucency=a);let u=s.frameNumber,f=y(a.uniformMapDirtyFrame,0),d=y(a.shaderProgramDirtyFrame,0),p=y(a.renderStateDirtyFrame,0),g=a.uniformMap!==t.uniformMap,m=a.shaderProgramId!==t.shaderProgram.id,x=a.renderStateId!==t.renderState.id;g&&(a.uniformMapDirtyFrame=u),m&&(a.shaderProgramDirtyFrame=u),x&&(a.renderStateDirtyFrame=u),a.uniformMap=t.uniformMap,a.shaderProgramId=t.shaderProgram.id,a.renderStateId=t.renderState.id;for(let b=0;b<n;++b){let T=r[b],A=i[b],C=o[b],S=a[C],v,D,O;l(S)?(v=S.uniformMap,D=S.shaderProgram,O=S.renderState):(v=void 0,D=void 0,O=void 0),S=et.shallowClone(t,S),a[C]=S;let R=y(S.derivedCommands.uniformMapDirtyFrame,0),M=y(S.derivedCommands.shaderProgramDirtyFrame,0),L=y(S.derivedCommands.renderStateDirtyFrame,0),_=g||R<f,E=m||M<d,w=x||L<p;_&&(S.derivedCommands.uniformMapDirtyFrame=u),E&&(S.derivedCommands.shaderProgramDirtyFrame=u),w&&(S.derivedCommands.renderStateDirtyFrame=u),S.derivedCommands.type=A,S.pass=T.pass,S.pickOnly=T.pickOnly,S.uniformMap=Oft(e,t.uniformMap,v,_,T.getUniformMapFunction),S.shaderProgram=Cft(s.context,t.shaderProgram,D,E,T.getShaderProgramFunction,C),S.renderState=Rft(t.renderState,O,w,T.getRenderStateFunction,T.renderStateCache)}}}lb.prototype.pushDerivedCommands=function(e,t,n){let i=n.passes.pick||n.passes.pickVoxel;if(i&&t)return;let o=this._derivedCommandTypes,r=this._derivedCommandsLength;if(i?(o=this._derivedPickCommandTypes,r=this._derivedPickCommandsLength):t&&(o=this._derivedBlendCommandTypes,r=this._derivedBlendCommandsLength),r===0){n.commandList.push(e);return}let s=e.derivedCommands.globeTranslucency;for(let a=0;a<r;++a){let c=Kye[o[a]];n.commandList.push(s[c])}};function $ye(e,t,n,i,o,r){for(let s=0;s<t;++s){let a=e[s],c=a.derivedCommands.type;(!l(r)||r.indexOf(c)>-1)&&n(a,i,o)}}function Xye(e,t,n,i,o){for(let r=0;r<t;++r)n(e[r],i,o)}var Nft=[da.OPAQUE_FRONT_FACE,da.OPAQUE_BACK_FACE],Fft=[da.DEPTH_ONLY_FRONT_FACE,da.DEPTH_ONLY_BACK_FACE,da.DEPTH_ONLY_FRONT_AND_BACK_FACE];lb.prototype.executeGlobeCommands=function(e,t,n,i,o){let r=i.context,s=e.commands[ve.GLOBE],a=e.indices[ve.GLOBE];a!==0&&(this._globeTranslucencyFramebuffer=n,n.clearClassification(r,o),$ye(s,a,t,i,o,Nft))};lb.prototype.executeGlobeClassificationCommands=function(e,t,n,i,o){let{context:r}=i,{uniformState:s}=r,a=e.commands[ve.GLOBE],c=e.indices[ve.GLOBE],u=e.commands[ve.TERRAIN_CLASSIFICATION],f=e.indices[ve.TERRAIN_CLASSIFICATION];if(c===0||f===0)return;let d=this._frontFaceTranslucent,p=this._backFaceTranslucent;if((!d||!p)&&Xye(u,f,t,i,o),!d&&!p)return;this._globeTranslucencyFramebuffer=n;let g=s.globeDepthTexture,m=o.framebuffer;if(o.framebuffer=n.classificationFramebuffer,$ye(a,c,t,i,o,Fft),r.depthTexture){let x=n.packDepth(r,o);s.globeDepthTexture=x}Xye(u,f,t,i,o),s.globeDepthTexture=g,o.framebuffer=m};var Cz=lb;var Du=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = texture(colorTexture, v_textureCoordinates); +} +`;function Dm(){this._numSamples=1,this.previousFramebuffer=void 0,this._previousFramebuffer=void 0,this._depthStencilTexture=void 0,this._depthStencilRenderbuffer=void 0,this._fbo=new hi({depthStencil:!0,createDepthAttachments:!1}),this._fboClassified=new hi({depthStencil:!0,createDepthAttachments:!1}),this._rsUnclassified=void 0,this._rsClassified=void 0,this._unclassifiedCommand=void 0,this._classifiedCommand=void 0,this._translucentCommand=void 0,this._clearColorCommand=new ei({color:new z(0,0,0,0),owner:this}),this._clearCommand=new ei({color:new z(0,0,0,0),depth:1,stencil:0});let e=this;this._uniformMap={colorTexture:function(){return e._fbo.getColorTexture()},depthTexture:function(){return e._depthStencilTexture},classifiedTexture:function(){return e._fboClassified.getColorTexture()}}}Object.defineProperties(Dm.prototype,{unclassifiedCommand:{get:function(){return this._unclassifiedCommand}}});Dm.isTranslucencySupported=function(e){return e.depthTexture&&e.fragmentDepth};var Bft={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:Vn.NEVER,reference:0,mask:Ht.CLASSIFICATION_MASK},blending:ln.ALPHA_BLEND},kft={depthMask:!1,stencilTest:{enabled:!0,frontFunction:Vn.NOT_EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:Vn.NEVER,reference:0,mask:Ht.CLASSIFICATION_MASK},blending:ln.ALPHA_BLEND},Vft={depthMask:!0,depthTest:{enabled:!0},stencilTest:Ht.setCesium3DTileBit(),stencilMask:Ht.CESIUM_3D_TILE_MASK,blending:ln.ALPHA_BLEND},Uft=`uniform sampler2D colorTexture; +uniform sampler2D depthTexture; +uniform sampler2D classifiedTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } + bool isClassified = all(equal(texture(classifiedTexture, v_textureCoordinates), vec4(0.0))); +#ifdef UNCLASSIFIED + vec4 highlightColor = czm_invertClassificationColor; + if (isClassified) + { + discard; + } +#else + vec4 highlightColor = vec4(1.0); + if (!isClassified) + { + discard; + } +#endif + out_FragColor = color * highlightColor; + gl_FragDepth = texture(depthTexture, v_textureCoordinates).r; +} +`,zft=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + if (color.a == 0.0) + { + discard; + } +#ifdef UNCLASSIFIED + out_FragColor = color * czm_invertClassificationColor; +#else + out_FragColor = color; +#endif +} +`;Dm.prototype.update=function(e,t,n){let i=this._fbo.getColorTexture(),o=this.previousFramebuffer!==this._previousFramebuffer;this._previousFramebuffer=this.previousFramebuffer;let r=this._numSamples!==t,s=e.drawingBufferWidth,a=e.drawingBufferHeight,c=!l(i)||i.width!==s||i.height!==a;if((c||o||r)&&(this._numSamples=t,this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._previousFramebuffer)||(this._depthStencilTexture=new Ot({context:e,width:s,height:a,pixelFormat:it.DEPTH_STENCIL,pixelDatatype:Ze.UNSIGNED_INT_24_8}),t>1&&(this._depthStencilRenderbuffer=new Yu({context:e,width:s,height:a,format:ll.DEPTH24_STENCIL8,numSamples:t})))),!l(this._fbo.framebuffer)||c||o||r){this._fbo.destroy(),this._fboClassified.destroy();let u,f;l(this._previousFramebuffer)?(u=n.getDepthStencilTexture(),f=n.getDepthStencilRenderbuffer()):(u=this._depthStencilTexture,f=this._depthStencilRenderbuffer),this._fbo.setDepthStencilTexture(u),l(f)&&this._fbo.setDepthStencilRenderbuffer(f),this._fbo.update(e,s,a,t),l(this._previousFramebuffer)||(this._fboClassified.setDepthStencilTexture(u),this._fboClassified.update(e,s,a))}if(l(this._rsUnclassified)||(this._rsUnclassified=Ve.fromCache(Bft),this._rsClassified=Ve.fromCache(kft),this._rsDefault=Ve.fromCache(Vft)),!l(this._unclassifiedCommand)||o||r){l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy());let u=l(this._previousFramebuffer)?zft:Uft,f=new Ue({defines:["UNCLASSIFIED"],sources:[u]}),d=new Ue({sources:[u]});this._unclassifiedCommand=e.createViewportQuadCommand(f,{renderState:l(this._previousFramebuffer)?this._rsUnclassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),this._classifiedCommand=e.createViewportQuadCommand(d,{renderState:l(this._previousFramebuffer)?this._rsClassified:this._rsDefault,uniformMap:this._uniformMap,owner:this}),l(this._translucentCommand)&&(this._translucentCommand.shaderProgram=this._translucentCommand.shaderProgram&&this._translucentCommand.shaderProgram.destroy()),l(this._previousFramebuffer)||(this._translucentCommand=e.createViewportQuadCommand(Du,{renderState:this._rsUnclassified,uniformMap:this._uniformMap,owner:this}))}};Dm.prototype.prepareTextures=function(e,t){this._fbo._numSamples>1&&this._fbo.prepareTextures(e,t)};Dm.prototype.clear=function(e,t){l(this._previousFramebuffer)?this._fbo.clear(e,this._clearColorCommand,t):(this._fbo.clear(e,this._clearCommand,t),this._fboClassified.clear(e,this._clearCommand,t))};Dm.prototype.executeClassified=function(e,t){if(!l(this._previousFramebuffer)){let n=t.framebuffer;this.prepareTextures(e,!0),t.framebuffer=this._fboClassified.framebuffer,this._translucentCommand.execute(e,t),t.framebuffer=n}this._classifiedCommand.execute(e,t)};Dm.prototype.executeUnclassified=function(e,t){this._unclassifiedCommand.execute(e,t)};Dm.prototype.isDestroyed=function(){return!1};Dm.prototype.destroy=function(){return this._fbo.destroy(),this._fboClassified.destroy(),this._depthStencilTexture=this._depthStencilTexture&&this._depthStencilTexture.destroy(),this._depthStencilRenderbuffer=this._depthStencilRenderbuffer&&this._depthStencilRenderbuffer.destroy(),l(this._unclassifiedCommand)&&(this._unclassifiedCommand.shaderProgram=this._unclassifiedCommand.shaderProgram&&this._unclassifiedCommand.shaderProgram.destroy(),this._classifiedCommand.shaderProgram=this._classifiedCommand.shaderProgram&&this._classifiedCommand.shaderProgram.destroy()),ue(this)};var zI=Dm;function Ez(e){this._total=e,this.usedThisFrame=0,this.stolenFromMeThisFrame=0,this.starvedThisFrame=!1,this.starvedLastFrame=!1}Object.defineProperties(Ez.prototype,{total:{get:function(){return this._total}}});function Wy(e){let t=new Array(Xa.NUMBER_OF_JOB_TYPES);t[Xa.TEXTURE]=new Ez(l(e)?e[Xa.TEXTURE]:10),t[Xa.PROGRAM]=new Ez(l(e)?e[Xa.PROGRAM]:10),t[Xa.BUFFER]=new Ez(l(e)?e[Xa.BUFFER]:30);let n=t.length,i,o=0;for(i=0;i<n;++i)o+=t[i].total;let r=new Array(n);for(i=0;i<n;++i)r[i]=!1;this._totalBudget=o,this._totalUsedThisFrame=0,this._budgets=t,this._executedThisFrame=r}Wy.getTimestamp=Ti;Object.defineProperties(Wy.prototype,{totalBudget:{get:function(){return this._totalBudget}}});Wy.prototype.disableThisFrame=function(){this._totalUsedThisFrame=this._totalBudget};Wy.prototype.resetBudgets=function(){let e=this._budgets,t=e.length;for(let n=0;n<t;++n){let i=e[n];i.starvedLastFrame=i.starvedThisFrame,i.starvedThisFrame=!1,i.usedThisFrame=0,i.stolenFromMeThisFrame=0}this._totalUsedThisFrame=0};Wy.prototype.execute=function(e,t){let n=this._budgets,i=n[t],o=this._executedThisFrame[t];if(this._totalUsedThisFrame>=this._totalBudget&&o)return i.starvedThisFrame=!0,!1;let r;if(i.usedThisFrame+i.stolenFromMeThisFrame>=i.total){let c=n.length,u;for(u=0;u<c&&(r=n[u],!(r.usedThisFrame+r.stolenFromMeThisFrame<r.total&&!r.starvedLastFrame));++u);if(u===c&&o)return!1;o&&(i.starvedThisFrame=!0)}let s=Wy.getTimestamp();e.execute();let a=Wy.getTimestamp()-s;return this._totalUsedThisFrame+=a,r?r.stolenFromMeThisFrame+=a:i.usedThisFrame+=a,this._executedThisFrame[t]=!0,!0};var Sz=Wy;function vz(e){e=y(e,y.EMPTY_OBJECT);let t=Rn(e.container);this._container=t;let n=document.createElement("div");n.className="cesium-performanceDisplay";let i=document.createElement("div");i.className="cesium-performanceDisplay-fps",this._fpsText=document.createTextNode(""),i.appendChild(this._fpsText);let o=document.createElement("div");o.className="cesium-performanceDisplay-ms",this._msText=document.createTextNode(""),o.appendChild(this._msText),n.appendChild(o),n.appendChild(i),this._container.appendChild(n),this._lastFpsSampleTime=Ti(),this._lastMsSampleTime=Ti(),this._fpsFrameCount=0,this._msFrameCount=0,this._throttled=!1;let r=document.createElement("div");r.className="cesium-performanceDisplay-throttled",this._throttledText=document.createTextNode(""),r.appendChild(this._throttledText),n.appendChild(r)}Object.defineProperties(vz.prototype,{throttled:{get:function(){return this._throttled},set:function(e){this._throttled!==e&&(e?this._throttledText.nodeValue="(throttled)":this._throttledText.nodeValue="",this._throttled=e)}}});vz.prototype.update=function(e){let t=Ti(),n=y(e,!0);this._fpsFrameCount++;let i=t-this._lastFpsSampleTime;if(i>1e3){let r="N/A";n&&(r=this._fpsFrameCount*1e3/i|0),this._fpsText.nodeValue=`${r} FPS`,this._lastFpsSampleTime=t,this._fpsFrameCount=0}this._msFrameCount++;let o=t-this._lastMsSampleTime;if(o>200){let r="N/A";n&&(r=(o/this._msFrameCount).toFixed(2)),this._msText.nodeValue=`${r} MS`,this._lastMsSampleTime=t,this._msFrameCount=0}};vz.prototype.destroy=function(){return ue(this)};var jy=vz;var Xc={};Xc.decodeRawMetadataValue=function(e,t,n){switch(e){case Wt.INT8:return t.getInt8(n);case Wt.UINT8:return t.getUint8(n);case Wt.INT16:return t.getInt16(n);case Wt.UINT16:return t.getUint16(n);case Wt.INT32:return t.getInt32(n);case Wt.UINT32:return t.getUint32(n);case Wt.INT64:return t.getBigInt64(n);case Wt.UINT64:return t.getBigUint64(n);case Wt.FLOAT32:return t.getFloat32(n);case Wt.FLOAT64:return t.getFloat64(n)}throw new ce(`Invalid component type: ${e}`)};Xc.decodeRawMetadataValueComponent=function(e,t,n){let i=e.componentType,o=Xc.decodeRawMetadataValue(i,t,n);return e.normalized?Wt.normalize(o,i):o};Xc.decodeRawMetadataValueElement=function(e,t,n){let i=e.componentType,o=Wt.getSizeInBytes(i),r=e.type,s=Et.getComponentCount(r),a=o*s;if(s>1){let f=Array(s);for(let d=0;d<s;d++){let p=n*a+d*o,g=Xc.decodeRawMetadataValueComponent(e,t,p);f[d]=g}return f}let c=n*a;return Xc.decodeRawMetadataValueComponent(e,t,c)};Xc.decodeRawMetadataValues=function(e,t){let n=new DataView(t.buffer,t.byteOffset,t.byteLength);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=Xc.decodeRawMetadataValueElement(e,n,s);r[s]=a}return r}return Xc.decodeRawMetadataValueElement(e,n,0)};Xc.convertToObjectType=function(e,t){if(!l(t)||e===Et.SCALAR||e===Et.STRING||e===Et.BOOLEAN||e===Et.ENUM)return t;let n=t.map(i=>Number(i));switch(e){case Et.VEC2:return U.unpack(n,0,new U);case Et.VEC3:return h.unpack(n,0,new h);case Et.VEC4:return oe.unpack(n,0,new h);case Et.MAT2:return Bi.unpack(n,0,new Bi);case Et.MAT3:return $.unpack(n,0,new $);case Et.MAT4:return F.unpack(n,0,new F)}return t};Xc.decodeMetadataValues=function(e,t){let n=Xc.decodeRawMetadataValues(e,t);if(e.isArray){let o=e.arrayLength,r=Array(o);for(let s=0;s<o;s++){let a=n[s],c=Xc.convertToObjectType(e.type,a);r[s]=c}return r}return Xc.convertToObjectType(e.type,n)};var wz=Object.freeze(Xc);function ub(){this._framebuffer=new hi,this._textureToCopy=void 0,this._copyDepthCommand=void 0}Object.defineProperties(ub.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function Hft(e,t,n){let{width:i,height:o}=n;e._framebuffer.update(t,i,o)}function Gft(e,t,n){l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(`uniform highp sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 globeDepthPacked = texture(czm_globeDepthTexture, v_textureCoordinates); + float globeDepth = czm_unpackDepth(globeDepthPacked); + float depth = texture(colorTexture, v_textureCoordinates).r; + out_FragColor = czm_branchFreeTernary(globeDepth <= 0.0 || globeDepth >= 1.0 || depth < globeDepth && depth > 0.0 && depth < 1.0, + czm_packDepth(depth), globeDepthPacked); +} +`,{renderState:Ve.fromCache(),uniformMap:{colorTexture:function(){return e._textureToCopy}},owner:e})),e._textureToCopy=n,e._copyDepthCommand.framebuffer=e.framebuffer}ub.prototype.update=function(e,t){Hft(this,e,t),Gft(this,e,t)};var Wft=new oe,jft=new oe(1,1/255,1/65025,1/16581375);ub.prototype.getDepth=function(e,t,n){if(!l(this.framebuffer))return;let i=e.readPixels({x:t,y:n,width:1,height:1,framebuffer:this.framebuffer}),o=oe.unpack(i,0,Wft);return oe.divideByScalar(o,255,o),oe.dot(o,jft)};ub.prototype.executeCopyDepth=function(e,t){this._copyDepthCommand.execute(e,t)};ub.prototype.isDestroyed=function(){return!1};ub.prototype.destroy=function(){return this._framebuffer.destroy(),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=l(this._copyDepthCommand.shaderProgram)&&this._copyDepthCommand.shaderProgram.destroy()),ue(this)};var Dz=ub;function qft(e,t){this.near=y(e,0),this.far=y(t,0);let n=ve.NUMBER_OF_PASSES,i=new Array(n),o=new Array(n);for(let r=0;r<n;++r)i[r]=[],o[r]=0;this.commands=i,this.indices=o}var Iz=qft;var fb=`uniform highp sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + out_FragColor = czm_packDepth(texture(u_depthTexture, v_textureCoordinates).r); +} +`;function Im(){this._picking=!1,this._numSamples=1,this._tempCopyDepthTexture=void 0,this._pickColorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._outputFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._copyDepthFramebuffer=new hi,this._tempCopyDepthFramebuffer=new hi,this._updateDepthFramebuffer=new hi({createColorAttachments:!1,createDepthAttachments:!1,depthStencil:!0}),this._clearGlobeColorCommand=void 0,this._copyColorCommand=void 0,this._copyDepthCommand=void 0,this._tempCopyDepthCommand=void 0,this._updateDepthCommand=void 0,this._viewport=new qe,this._rs=void 0,this._rsBlend=void 0,this._rsUpdate=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0,this._clearGlobeDepth=void 0}Object.defineProperties(Im.prototype,{colorFramebufferManager:{get:function(){return this._picking?this._pickColorFramebuffer:this._outputFramebuffer}},framebuffer:{get:function(){return this.colorFramebufferManager.framebuffer}},depthStencilTexture:{get:function(){return this.colorFramebufferManager.getDepthStencilTexture()}},picking:{get:function(){return this._picking},set:function(e){this._picking=e}}});function Qye(e,t,n,i,o){let r=e._viewport;r.width=n,r.height=i;let s=!qe.equals(r,o.viewport),a=s!==e._useScissorTest;e._useScissorTest=s,qe.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=qe.clone(o.viewport,e._scissorRectangle),a=!0),(!l(e._rs)||!qe.equals(r,e._rs.viewport)||a)&&(e._rs=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}}),e._rsBlend=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:ln.ALPHA_BLEND}),e._rsUpdate=Ve.fromCache({viewport:r,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,frontOperation:{fail:mt.KEEP,zFail:mt.KEEP,zPass:mt.KEEP},backFunction:Vn.NEVER,reference:Ht.CESIUM_3D_TILE_MASK,mask:Ht.CESIUM_3D_TILE_MASK}})),l(e._copyDepthCommand)||(e._copyDepthCommand=t.createViewportQuadCommand(fb,{uniformMap:{u_depthTexture:function(){return e.colorFramebufferManager.getDepthStencilTexture()}},owner:e})),e._copyDepthCommand.framebuffer=e._copyDepthFramebuffer.framebuffer,e._copyDepthCommand.renderState=e._rs,l(e._copyColorCommand)||(e._copyColorCommand=t.createViewportQuadCommand(Du,{uniformMap:{colorTexture:function(){return e.colorFramebufferManager.getColorTexture()}},owner:e})),e._copyColorCommand.renderState=e._rs,l(e._tempCopyDepthCommand)||(e._tempCopyDepthCommand=t.createViewportQuadCommand(fb,{uniformMap:{u_depthTexture:function(){return e._tempCopyDepthTexture}},owner:e})),e._tempCopyDepthCommand.framebuffer=e._tempCopyDepthFramebuffer.framebuffer,e._tempCopyDepthCommand.renderState=e._rs,l(e._updateDepthCommand)||(e._updateDepthCommand=t.createViewportQuadCommand(Du,{uniformMap:{colorTexture:function(){return e._tempCopyDepthFramebuffer.getColorTexture()}},owner:e})),e._updateDepthCommand.framebuffer=e._updateDepthFramebuffer.framebuffer,e._updateDepthCommand.renderState=e._rsUpdate,l(e._clearGlobeColorCommand)||(e._clearGlobeColorCommand=new ei({color:new z(0,0,0,0),stencil:0,owner:e})),e._clearGlobeColorCommand.framebuffer=e.framebuffer}Im.prototype.update=function(e,t,n,i,o,r){let{width:s,height:a}=n,c=o?e.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT:Ze.UNSIGNED_BYTE;this._numSamples=i,this.picking?this._pickColorFramebuffer.update(e,s,a):this._outputFramebuffer.update(e,s,a,i,c),this._copyDepthFramebuffer.update(e,s,a),Qye(this,e,s,a,t),e.uniformState.globeDepthTexture=void 0,this._clearGlobeDepth=r};Im.prototype.prepareColorTextures=function(e,t){!this.picking&&this._numSamples>1&&this._outputFramebuffer.prepareTextures(e,t)};Im.prototype.executeCopyDepth=function(e,t){l(this._copyDepthCommand)&&(this.prepareColorTextures(e),this._copyDepthCommand.execute(e,t),e.uniformState.globeDepthTexture=this._copyDepthFramebuffer.getColorTexture())};Im.prototype.executeUpdateDepth=function(e,t,n){let i=l(n)?n:t.framebuffer.depthStencilTexture;if(!this._clearGlobeDepth&&i===this.colorFramebufferManager.getDepthStencilTexture()){l(this._copyDepthCommand)&&this._copyDepthCommand.execute(e,t);return}if(!l(this._updateDepthCommand))return;let o=this._updateDepthFramebuffer;if(!l(o.framebuffer)||o.getDepthStencilTexture()!==i||o.getColorTexture()!==this._copyDepthFramebuffer.getColorTexture()){let r=this._copyDepthFramebuffer.getColorTexture(),{width:s,height:a}=r;this._tempCopyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.update(e,s,a),o.setColorTexture(r,0),o.setDepthStencilTexture(i),o.update(e,s,a),Qye(this,e,s,a,t)}this._tempCopyDepthTexture=i,this._tempCopyDepthCommand.execute(e,t),this._updateDepthCommand.execute(e,t)};Im.prototype.executeCopyColor=function(e,t){l(this._copyColorCommand)&&this._copyColorCommand.execute(e,t)};Im.prototype.clear=function(e,t,n){let i=this._clearGlobeColorCommand;l(i)&&(z.clone(n,i.color),this.colorFramebufferManager.clear(e,i,t))};Im.prototype.isDestroyed=function(){return!1};Im.prototype.destroy=function(){return this._pickColorFramebuffer.destroy(),this._outputFramebuffer.destroy(),this._copyDepthFramebuffer.destroy(),this._tempCopyDepthFramebuffer.destroy(),this._updateDepthFramebuffer.destroy(),l(this._copyColorCommand)&&(this._copyColorCommand.shaderProgram=this._copyColorCommand.shaderProgram.destroy()),l(this._copyDepthCommand)&&(this._copyDepthCommand.shaderProgram=this._copyDepthCommand.shaderProgram.destroy()),l(this._tempCopyDepthCommand)&&(this._tempCopyDepthCommand.shaderProgram=this._tempCopyDepthCommand.shaderProgram.destroy()),l(this._updateDepthCommand)&&(this._updateDepthCommand.shaderProgram=this._updateDepthCommand.shaderProgram.destroy()),ue(this)};var Pz=Im;function db(){this._framebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._packedDepthFramebuffer=new hi,this._renderState=void 0,this._packedDepthCommand=void 0,this._clearCommand=void 0,this._viewport=new qe,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHdr=void 0}Object.defineProperties(db.prototype,{classificationTexture:{get:function(){return this._framebuffer.getColorTexture()}},classificationFramebuffer:{get:function(){return this._framebuffer.framebuffer}},packedDepthFramebuffer:{get:function(){return this._packedDepthFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._framebuffer.getDepthStencilTexture()}},depthStencilRenderbuffer:{get:function(){return this._framebuffer.getDepthStencilRenderbuffer()}},packedDepthTexture:{get:function(){return this._packedDepthFramebuffer.getColorTexture()}}});function Yft(e){e._framebuffer.destroy(),e._packedDepthFramebuffer.destroy()}function Xft(e,t,n,i,o){let r=o?t.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT:Ze.UNSIGNED_BYTE;e._framebuffer.update(t,n,i,1,r),e._packedDepthFramebuffer.update(t,n,i)}function Kft(e,t,n,i,o){e._viewport.width=n,e._viewport.height=i;let r=!qe.equals(e._viewport,o.viewport),s=r!==e._useScissorTest;e._useScissorTest=r,qe.equals(e._scissorRectangle,o.viewport)||(e._scissorRectangle=qe.clone(o.viewport,e._scissorRectangle),s=!0),(!l(e._renderState)||!qe.equals(e._viewport,e._renderState.viewport)||s)&&(e._renderState=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packedDepthCommand)||(e._packedDepthCommand=t.createViewportQuadCommand(fb,{uniformMap:{u_depthTexture:function(){return e.depthStencilTexture}},owner:e})),l(e._clearCommand)||(e._clearCommand=new ei({color:new z(0,0,0,0),depth:1,stencil:0,owner:e})),e._packedDepthCommand.framebuffer=e._packedDepthFramebuffer.framebuffer,e._packedDepthCommand.renderState=e._renderState,e._clearCommand.framebuffer=e.classificationFramebuffer,e._clearCommand.renderState=e._renderState}db.prototype.updateAndClear=function(e,t,n,i){let o=t.width,r=t.height;Xft(this,n,o,r,e),Kft(this,n,o,r,i),this._useHdr=e};db.prototype.clearClassification=function(e,t){this._clearCommand.execute(e,t)};db.prototype.packDepth=function(e,t){return this._packedDepthCommand.execute(e,t),this.packedDepthTexture};db.prototype.isDestroyed=function(){return!1};db.prototype.destroy=function(){return Yft(this),ue(this)};var Rz=db;var HI=`#ifdef MRT +layout (location = 0) out vec4 out_FragData_0; +layout (location = 1) out vec4 out_FragData_1; +#else +layout (location = 0) out vec4 out_FragColor; +#endif + +uniform vec4 u_bgColor; +uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + if (texture(u_depthTexture, v_textureCoordinates).r < 1.0) + { +#ifdef MRT + out_FragData_0 = u_bgColor; + out_FragData_1 = vec4(u_bgColor.a); +#else + out_FragColor = u_bgColor; +#endif + return; + } + + discard; +} +`;var Oz=`/** + * Compositing for Weighted Blended Order-Independent Transparency. See: + * - http://jcgt.org/published/0002/02/09/ + * - http://casual-effects.blogspot.com/2014/03/weighted-blended-order-independent.html + */ + +uniform sampler2D u_opaque; +uniform sampler2D u_accumulation; +uniform sampler2D u_revealage; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 opaque = texture(u_opaque, v_textureCoordinates); + vec4 accum = texture(u_accumulation, v_textureCoordinates); + float r = texture(u_revealage, v_textureCoordinates).r; + +#ifdef MRT + vec4 transparent = vec4(accum.rgb / clamp(r, 1e-4, 5e4), accum.a); +#else + vec4 transparent = vec4(accum.rgb / clamp(accum.a, 1e-4, 5e4), r); +#endif + + out_FragColor = (1.0 - transparent.a) * transparent + transparent.a * opaque; + + if (opaque != czm_backgroundColor) + { + out_FragColor.a = 1.0; + } +} +`;function d_(e){this._numSamples=1,this._translucentMultipassSupport=!1,this._translucentMRTSupport=!1;let t=e.colorBufferFloat&&e.depthTexture&&e.floatBlend;this._translucentMRTSupport=e.drawBuffers&&t,this._translucentMultipassSupport=!this._translucentMRTSupport&&t,this._opaqueFBO=void 0,this._opaqueTexture=void 0,this._depthStencilTexture=void 0,this._accumulationTexture=void 0,this._translucentFBO=new hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._alphaFBO=new hi({createColorAttachments:!1,createDepthAttachments:!1,depth:!0}),this._adjustTranslucentFBO=new hi({colorAttachmentsLength:this._translucentMRTSupport?2:1,createColorAttachments:!1}),this._adjustAlphaFBO=new hi({createColorAttachments:!1}),this._opaqueClearCommand=new ei({color:new z(0,0,0,0),owner:this}),this._translucentMRTClearCommand=new ei({color:new z(0,0,0,1),owner:this}),this._translucentMultipassClearCommand=new ei({color:new z(0,0,0,0),owner:this}),this._alphaClearCommand=new ei({color:new z(1,1,1,1),owner:this}),this._translucentRenderStateCache={},this._alphaRenderStateCache={},this._compositeCommand=void 0,this._adjustTranslucentCommand=void 0,this._adjustAlphaCommand=void 0,this._viewport=new qe,this._rs=void 0,this._useScissorTest=!1,this._scissorRectangle=void 0,this._useHDR=!1}function Jye(e){e._accumulationTexture=e._accumulationTexture&&!e._accumulationTexture.isDestroyed()&&e._accumulationTexture.destroy(),e._revealageTexture=e._revealageTexture&&!e._revealageTexture.isDestroyed()&&e._revealageTexture.destroy()}function CX(e){e._translucentFBO.destroy(),e._alphaFBO.destroy(),e._adjustTranslucentFBO.destroy(),e._adjustAlphaFBO.destroy()}function e0e(e){Jye(e),CX(e)}function Zft(e,t,n,i){Jye(e),e._accumulationTexture=new Ot({context:t,width:n,height:i,pixelFormat:it.RGBA,pixelDatatype:Ze.FLOAT}),e._revealageTexture=new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:Ze.FLOAT,width:n,height:i,flipY:!1})}function $ft(e,t){CX(e);let n=te.FRAMEBUFFER_COMPLETE,i=!0,{width:o,height:r}=e._accumulationTexture;if(e._translucentMRTSupport&&(e._translucentFBO.setColorTexture(e._accumulationTexture,0),e._translucentFBO.setColorTexture(e._revealageTexture,1),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture,0),e._adjustTranslucentFBO.setColorTexture(e._revealageTexture,1),e._adjustTranslucentFBO.update(t,o,r),(e._translucentFBO.status!==n||e._adjustTranslucentFBO.status!==n)&&(CX(e),e._translucentMRTSupport=!1)),!e._translucentMRTSupport){e._translucentFBO.setColorTexture(e._accumulationTexture),e._translucentFBO.setDepthStencilTexture(e._depthStencilTexture),e._translucentFBO.update(t,o,r),e._alphaFBO.setColorTexture(e._revealageTexture),e._alphaFBO.setDepthStencilTexture(e._depthStencilTexture),e._alphaFBO.update(t,o,r),e._adjustTranslucentFBO.setColorTexture(e._accumulationTexture),e._adjustTranslucentFBO.update(t,o,r),e._adjustAlphaFBO.setColorTexture(e._revealageTexture),e._adjustAlphaFBO.update(t,o,r);let s=e._translucentFBO.status===n,a=e._alphaFBO.status===n,c=e._adjustTranslucentFBO.status===n,u=e._adjustAlphaFBO.status===n;(!s||!a||!c||!u)&&(e0e(e),e._translucentMultipassSupport=!1,i=!1)}return i}d_.prototype.update=function(e,t,n,i,o){if(!this.isSupported())return;this._opaqueFBO=n,this._opaqueTexture=n.getColorTexture(0),this._depthStencilTexture=n.getDepthStencilTexture();let{width:r,height:s}=this._opaqueTexture,a=this._accumulationTexture,c=!l(a)||a.width!==r||a.height!==s||i!==this._useHDR,u=this._numSamples!==o;if((c||u)&&(this._numSamples=o,Zft(this,e,r,s)),(!l(this._translucentFBO.framebuffer)||c||u)&&!$ft(this,e))return;this._useHDR=i;let f=this,d,p;l(this._compositeCommand)||(d=new Ue({sources:[Oz]}),this._translucentMRTSupport&&d.defines.push("MRT"),p={u_opaque:function(){return f._opaqueTexture},u_accumulation:function(){return f._accumulationTexture},u_revealage:function(){return f._revealageTexture}},this._compositeCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})),l(this._adjustTranslucentCommand)||(this._translucentMRTSupport?(d=new Ue({defines:["MRT"],sources:[HI]}),p={u_bgColor:function(){return f._translucentMRTClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this})):this._translucentMultipassSupport&&(d=new Ue({sources:[HI]}),p={u_bgColor:function(){return f._translucentMultipassClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustTranslucentCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}),p={u_bgColor:function(){return f._alphaClearCommand.color},u_depthTexture:function(){return f._depthStencilTexture}},this._adjustAlphaCommand=e.createViewportQuadCommand(d,{uniformMap:p,owner:this}))),this._viewport.width=r,this._viewport.height=s;let g=!qe.equals(this._viewport,t.viewport),m=g!==this._useScissorTest;this._useScissorTest=g,qe.equals(this._scissorRectangle,t.viewport)||(this._scissorRectangle=qe.clone(t.viewport,this._scissorRectangle),m=!0),(!l(this._rs)||!qe.equals(this._viewport,this._rs.viewport)||m)&&(this._rs=Ve.fromCache({viewport:this._viewport,scissorTest:{enabled:this._useScissorTest,rectangle:this._scissorRectangle}})),l(this._compositeCommand)&&(this._compositeCommand.renderState=this._rs),this._adjustTranslucentCommand&&(this._adjustTranslucentCommand.renderState=this._rs),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.renderState=this._rs)};var Qft={enabled:!0,color:new z(0,0,0,0),equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.ONE,functionDestinationRgb:Eo.ONE,functionSourceAlpha:Eo.ZERO,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA},Jft={enabled:!0,color:new z(0,0,0,0),equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.ONE,functionDestinationRgb:Eo.ONE,functionSourceAlpha:Eo.ONE,functionDestinationAlpha:Eo.ONE},edt={enabled:!0,color:new z(0,0,0,0),equationRgb:Wa.ADD,equationAlpha:Wa.ADD,functionSourceRgb:Eo.ZERO,functionDestinationRgb:Eo.ONE_MINUS_SOURCE_ALPHA,functionSourceAlpha:Eo.ZERO,functionDestinationAlpha:Eo.ONE_MINUS_SOURCE_ALPHA};function EX(e,t,n,i){let o=n[i.id];if(!l(o)){let r=Ve.getState(i);r.depthMask=!1,r.blending=t,o=Ve.fromCache(r),n[i.id]=o}return o}function tdt(e,t,n){return EX(t,Qft,e._translucentRenderStateCache,n)}function ndt(e,t,n){return EX(t,Jft,e._translucentRenderStateCache,n)}function idt(e,t,n){return EX(t,edt,e._alphaRenderStateCache,n)}var odt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragData_0 = vec4(Ci * wzi, ai); + out_FragData_1 = vec4(ai * wzi); +`,rdt=` vec3 Ci = czm_out_FragColor.rgb * czm_out_FragColor.a; + float ai = czm_out_FragColor.a; + float wzi = czm_alphaWeight(ai); + out_FragColor = vec4(Ci, ai) * wzi; +`,sdt=` float ai = czm_out_FragColor.a; + out_FragColor = vec4(ai); +`;function SX(e,t,n,i){let{shaderCache:o}=e,r=o.getDerivedShaderProgram(t,n);if(l(r))return r;let s=t._attributeLocations,a=t.fragmentShaderSource.clone();a.sources=a.sources.map(function(f){return Ue.replaceMain(f,"czm_translucent_main").replace(/out_FragColor/g,"czm_out_FragColor").replace(/layout\s*\(location\s*=\s*0\)\s*out\s+vec4\s+out_FragColor;/g,"").replace(/\bdiscard\b/g,"czm_discard = true").replace(/czm_phong/g,"czm_translucentPhong")}),a.sources.splice(0,0,`vec4 czm_out_FragColor; +bool czm_discard = false; +`);let c=[...i.matchAll(/out_FragData_(\d+)/g)],u="";for(let f=0;f<c.length;f++){let d=c[f];u=`layout (location = ${d[1]}) out vec4 ${d[0]}; +${u}`}return a.sources.push(u),a.sources.push(`void main() +{ + czm_translucent_main(); + if (czm_discard) + { + discard; + } +${i}} +`),o.createDerivedShaderProgram(t,n,{vertexShaderSource:t.vertexShaderSource,fragmentShaderSource:a,attributeLocations:s})}function adt(e,t){return SX(e,t,"translucentMRT",odt)}function cdt(e,t){return SX(e,t,"translucentMultipass",rdt)}function ldt(e,t){return SX(e,t,"alphaMultipass",sdt)}d_.prototype.createDerivedCommands=function(e,t,n){if(l(n)||(n={}),this._translucentMRTSupport){let a,c;return l(n.translucentCommand)&&(a=n.translucentCommand.shaderProgram,c=n.translucentCommand.renderState),n.translucentCommand=et.shallowClone(e,n.translucentCommand),!l(a)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=adt(t,e.shaderProgram),n.translucentCommand.renderState=tdt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=a,n.translucentCommand.renderState=c),n}let i,o,r,s;return l(n.translucentCommand)&&(i=n.translucentCommand.shaderProgram,o=n.translucentCommand.renderState,r=n.alphaCommand.shaderProgram,s=n.alphaCommand.renderState),n.translucentCommand=et.shallowClone(e,n.translucentCommand),n.alphaCommand=et.shallowClone(e,n.alphaCommand),!l(i)||n.shaderProgramId!==e.shaderProgram.id?(n.translucentCommand.shaderProgram=cdt(t,e.shaderProgram),n.translucentCommand.renderState=ndt(this,t,e.renderState),n.alphaCommand.shaderProgram=ldt(t,e.shaderProgram),n.alphaCommand.renderState=idt(this,t,e.renderState),n.shaderProgramId=e.shaderProgram.id):(n.translucentCommand.shaderProgram=i,n.translucentCommand.renderState=o,n.alphaCommand.shaderProgram=r,n.alphaCommand.renderState=s),n};function udt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i),i.framebuffer=e._adjustAlphaFBO.framebuffer,e._adjustAlphaCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=e._alphaFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.alphaCommand:x.derivedCommands.oit.alphaCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.alphaCommand:m.derivedCommands.oit.alphaCommand;n(x,t,i,g)}i.framebuffer=d}function fdt(e,t,n,i,o,r){let{context:s,frameState:a}=t,{useLogDepth:c,shadowState:u}=a,f=t._hdr,d=i.framebuffer,p=u.lightShadowsEnabled;i.framebuffer=e._adjustTranslucentFBO.framebuffer,e._adjustTranslucentCommand.execute(s,i);let g=e._opaqueFBO.framebuffer;i.framebuffer=e._translucentFBO.framebuffer;for(let m=0;m<o.length;++m){let x=o[m];x=c?x.derivedCommands.logDepth.command:x,x=f?x.derivedCommands.hdr.command:x;let b=p&&x.receiveShadows?x.derivedCommands.oit.shadows.translucentCommand:x.derivedCommands.oit.translucentCommand;n(b,t,i,g)}if(l(r)){let m=r.unclassifiedCommand,x=p&&m.receiveShadows?m.derivedCommands.oit.shadows.translucentCommand:m.derivedCommands.oit.translucentCommand;n(x,t,i,g)}i.framebuffer=d}d_.prototype.executeCommands=function(e,t,n,i,o){if(this._translucentMRTSupport){fdt(this,e,t,n,i,o);return}udt(this,e,t,n,i,o)};d_.prototype.execute=function(e,t){this._compositeCommand.execute(e,t)};d_.prototype.clear=function(e,t,n){let i=t.framebuffer;t.framebuffer=this._opaqueFBO.framebuffer,z.clone(n,this._opaqueClearCommand.color),this._opaqueClearCommand.execute(e,t),t.framebuffer=this._translucentFBO.framebuffer,(this._translucentMRTSupport?this._translucentMRTClearCommand:this._translucentMultipassClearCommand).execute(e,t),this._translucentMultipassSupport&&(t.framebuffer=this._alphaFBO.framebuffer,this._alphaClearCommand.execute(e,t)),t.framebuffer=i};d_.prototype.isSupported=function(){return this._translucentMRTSupport||this._translucentMultipassSupport};d_.prototype.isDestroyed=function(){return!1};d_.prototype.destroy=function(){return e0e(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._adjustTranslucentCommand)&&(this._adjustTranslucentCommand.shaderProgram=this._adjustTranslucentCommand.shaderProgram&&this._adjustTranslucentCommand.shaderProgram.destroy()),l(this._adjustAlphaCommand)&&(this._adjustAlphaCommand.shaderProgram=this._adjustAlphaCommand.shaderProgram&&this._adjustAlphaCommand.shaderProgram.destroy()),ue(this)};var Mz=d_;function GI(){this._framebuffer=new hi({color:!1,depthStencil:!0,supportsDepthTexture:!0}),this._passState=void 0}Object.defineProperties(GI.prototype,{framebuffer:{get:function(){return this._framebuffer.framebuffer}}});function ddt(e){e._framebuffer.destroy()}function hdt(e,t){let n=t.drawingBufferWidth,i=t.drawingBufferHeight;e._framebuffer.update(t,n,i);let o=new bc(t);o.blendingEnabled=!1,o.scissorTest={enabled:!0,rectangle:new qe},o.viewport=new qe,e._passState=o}GI.prototype.update=function(e,t,n){let i=n.width,o=n.height;this._framebuffer.isDirty(i,o)&&hdt(this,e);let r=this.framebuffer,s=this._passState;return s.framebuffer=r,s.viewport.width=i,s.viewport.height=o,s.scissorTest.rectangle.x=t.x,s.scissorTest.rectangle.y=o-t.y,s.scissorTest.rectangle.width=1,s.scissorTest.rectangle.height=1,s};GI.prototype.isDestroyed=function(){return!1};GI.prototype.destroy=function(){return ddt(this),ue(this)};var Lz=GI;function UE(e){let t=new bc(e);t.blendingEnabled=!1,t.scissorTest={enabled:!0,rectangle:new qe},t.viewport=new qe,this._context=e,this._fb=new hi({depthStencil:!0}),this._passState=t,this._width=0,this._height=0}UE.prototype.begin=function(e,t){let n=this._context,{width:i,height:o}=t;return qe.clone(e,this._passState.scissorTest.rectangle),this._width=i,this._height=o,this._fb.update(n,i,o),this._passState.framebuffer=this._fb.framebuffer,this._passState.viewport.width=i,this._passState.viewport.height=o,this._passState};var WI=new z;UE.prototype.end=function(e){let t=y(e.width,1),n=y(e.height,1),i=this._context,o=i.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.max(t,n),s=r*r,a=Math.floor(t*.5),c=Math.floor(n*.5),u=0,f=0,d=0,p=-1;for(let g=0;g<s;++g){if(-a<=u&&u<=a&&-c<=f&&f<=c){let m=4*((c-f)*t+u+a);WI.red=z.byteToFloat(o[m]),WI.green=z.byteToFloat(o[m+1]),WI.blue=z.byteToFloat(o[m+2]),WI.alpha=z.byteToFloat(o[m+3]);let x=i.getObjectByPickColor(WI);if(l(x))return x}if(u===f||u<0&&-u===f||u>0&&u===1-f){let m=d;d=-p,p=m}u+=d,f+=p}};UE.prototype.readCenterPixel=function(e){let t=y(e.width,1),n=y(e.height,1),o=this._context.readPixels({x:e.x,y:e.y,width:t,height:n,framebuffer:this._fb.framebuffer}),r=Math.floor(t*.5),a=4*(Math.floor(n*.5)*t+r);return o.slice(a,a+4)};UE.prototype.isDestroyed=function(){return!1};UE.prototype.destroy=function(){return this._fb.destroy(),ue(this)};var Nz=UE;function h_(){this._numSamples=1,this._colorFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idFramebuffer=new hi({depthStencil:!0,supportsDepthTexture:!0}),this._idClearColor=new z(0,0,0,0),this._clearCommand=new ei({color:new z(0,0,0,0),depth:1,owner:this})}function mdt(e){e._colorFramebuffer.destroy(),e._idFramebuffer.destroy()}Object.defineProperties(h_.prototype,{framebuffer:{get:function(){return this._colorFramebuffer.framebuffer}},idFramebuffer:{get:function(){return this._idFramebuffer.framebuffer}},depthStencilTexture:{get:function(){return this._colorFramebuffer.getDepthStencilTexture()}}});h_.prototype.update=function(e,t,n,i){let o=t.width,r=t.height,s=n?e.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT:Ze.UNSIGNED_BYTE;this._numSamples=i,this._colorFramebuffer.update(e,o,r,i,s),this._idFramebuffer.update(e,o,r)};h_.prototype.clear=function(e,t,n){z.clone(n,this._clearCommand.color),z.clone(this._idClearColor,this._clearCommand.color),this._colorFramebuffer.clear(e,this._clearCommand,t),this._idFramebuffer.clear(e,this._clearCommand,t)};h_.prototype.getFramebuffer=function(){return this._colorFramebuffer.framebuffer};h_.prototype.getIdFramebuffer=function(){return this._idFramebuffer.framebuffer};h_.prototype.prepareColorTextures=function(e){this._numSamples>1&&this._colorFramebuffer.prepareTextures(e)};h_.prototype.isDestroyed=function(){return!1};h_.prototype.destroy=function(){return mdt(this),ue(this)};var zE=h_;function hb(){}hb.getShadowCastShaderKeyword=function(e,t,n,i){return`castShadow ${e} ${t} ${n} ${i}`};hb.createShadowCastVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);i.push("SHADOW_MAP"),n&&i.push("GENERATE_POSITION");let r=Ue.findPositionVarying(e),s=l(r);if(t&&!s){let a=o.length;for(let u=0;u<a;++u)o[u]=Ue.replaceMain(o[u],"czm_shadow_cast_main");o.push(`out vec3 v_positionEC; +void main() +{ + czm_shadow_cast_main(); + v_positionEC = (czm_inverseProjection * gl_Position).xyz; +}`)}return new Ue({defines:i,sources:o})};hb.createShadowCastFragmentShader=function(e,t,n,i){let o=e.defines.slice(0),r=e.sources.slice(0);o.push("SHADOW_MAP");let s=Ue.findPositionVarying(e),a=l(s);a||(s="v_positionEC");let c=r.length;for(let f=0;f<c;++f)r[f]=Ue.replaceMain(r[f],"czm_shadow_cast_main");let u="";return t&&(a||(u+=`in vec3 v_positionEC; +`),u+=`uniform vec4 shadowMap_lightPositionEC; +`),i?u+=`void main() +{ +`:u+=`void main() +{ + czm_shadow_cast_main(); + if (out_FragColor.a == 0.0) + { + discard; + } +`,t?u+=` float distance = length(${s}); + if (distance >= shadowMap_lightPositionEC.w) + { + discard; + } + distance /= shadowMap_lightPositionEC.w; // radius + out_FragColor = czm_packDepth(distance); +`:n?u+=` out_FragColor = vec4(1.0); +`:u+=` out_FragColor = czm_packDepth(gl_FragCoord.z); +`,u+=`} +`,r.push(u),new Ue({defines:o,sources:r})};hb.getShadowReceiveShaderKeyword=function(e,t,n,i){let o=e._usesDepthTexture,r=e._polygonOffsetSupported,s=e._isPointLight,a=e._isSpotLight,c=e._numberOfCascades>1,u=e.debugCascadeColors,f=e.softShadows;return`receiveShadow ${o}${r}${s}${a}${c}${u}${f}${t}${n}${i}`};hb.createShadowReceiveVertexShader=function(e,t,n){let i=e.defines.slice(0),o=e.sources.slice(0);return i.push("SHADOW_MAP"),t&&(n?i.push("GENERATE_POSITION_AND_NORMAL"):i.push("GENERATE_POSITION")),new Ue({defines:i,sources:o})};hb.createShadowReceiveFragmentShader=function(e,t,n,i,o){let r=Ue.findNormalVarying(e),s=!i&&l(r)||i&&o,a=Ue.findPositionVarying(e),c=l(a),u=t._usesDepthTexture,f=t._polygonOffsetSupported,d=t._isPointLight,p=t._isSpotLight,g=t._numberOfCascades>1,m=t.debugCascadeColors,x=t.softShadows,b=d?t._pointBias:i?t._terrainBias:t._primitiveBias,T=e.defines.slice(0),A=e.sources.slice(0),C=A.length;for(let D=0;D<C;++D)A[D]=Ue.replaceMain(A[D],"czm_shadow_receive_main");d?T.push("USE_CUBE_MAP_SHADOW"):u&&T.push("USE_SHADOW_DEPTH_TEXTURE"),x&&!d&&T.push("USE_SOFT_SHADOWS"),g&&n&&i&&(s?T.push("ENABLE_VERTEX_LIGHTING"):T.push("ENABLE_DAYNIGHT_SHADING")),n&&b.normalShading&&s&&(T.push("USE_NORMAL_SHADING"),b.normalShadingSmooth>0&&T.push("USE_NORMAL_SHADING_SMOOTH"));let S="";d?S+=`uniform samplerCube shadowMap_textureCube; +`:S+=`uniform sampler2D shadowMap_texture; +`;let v;return c?v=` return vec4(${a}, 1.0); +`:v=`#ifndef LOG_DEPTH + return czm_windowToEyeCoordinates(gl_FragCoord); +#else + return vec4(v_logPositionEC, 1.0); +#endif +`,S+=`uniform mat4 shadowMap_matrix; +uniform vec3 shadowMap_lightDirectionEC; +uniform vec4 shadowMap_lightPositionEC; +uniform vec4 shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness; +uniform vec4 shadowMap_texelSizeDepthBiasAndNormalShadingSmooth; +#ifdef LOG_DEPTH +in vec3 v_logPositionEC; +#endif +vec4 getPositionEC() +{ +${v}} +vec3 getNormalEC() +{ +${s?` return normalize(${r}); +`:` return vec3(1.0); +`}} +void applyNormalOffset(inout vec4 positionEC, vec3 normalEC, float nDotL) +{ +${b.normalOffset&&s?` float normalOffset = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.x; + float normalOffsetScale = 1.0 - nDotL; + vec3 offset = normalOffset * normalOffsetScale * normalEC; + positionEC.xyz += offset; +`:""}} +`,S+=`void main() +{ + czm_shadow_receive_main(); + vec4 positionEC = getPositionEC(); + vec3 normalEC = getNormalEC(); + float depth = -positionEC.z; +`,S+=` czm_shadowParameters shadowParameters; + shadowParameters.texelStepSize = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.xy; + shadowParameters.depthBias = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.z; + shadowParameters.normalShadingSmooth = shadowMap_texelSizeDepthBiasAndNormalShadingSmooth.w; + shadowParameters.darkness = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.w; +`,i?S+=` shadowParameters.depthBias *= max(depth * 0.01, 1.0); +`:f||(S+=` shadowParameters.depthBias *= mix(1.0, 100.0, depth * 0.0015); +`),d?S+=` vec3 directionEC = positionEC.xyz - shadowMap_lightPositionEC.xyz; + float distance = length(directionEC); + directionEC = normalize(directionEC); + float radius = shadowMap_lightPositionEC.w; + // Stop early if the fragment is beyond the point light radius + if (distance > radius) + { + return; + } + vec3 directionWC = czm_inverseViewRotation * directionEC; + shadowParameters.depth = distance / radius; + shadowParameters.nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + shadowParameters.texCoords = directionWC; + float visibility = czm_shadowVisibility(shadowMap_textureCube, shadowParameters); +`:p?S+=` vec3 directionEC = normalize(positionEC.xyz - shadowMap_lightPositionEC.xyz); + float nDotL = clamp(dot(normalEC, -directionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Spot light uses a perspective projection, so perform the perspective divide + shadowPosition /= shadowPosition.w; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`:g?S+=` float maxDepth = shadowMap_cascadeSplits[1].w; + // Stop early if the eye depth exceeds the last cascade + if (depth > maxDepth) + { + return; + } + // Get the cascade based on the eye-space depth + vec4 weights = czm_cascadeWeights(depth); + // Apply normal offset + float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + // Transform position into the cascade + vec4 shadowPosition = czm_cascadeMatrix(weights) * positionEC; + // Get visibility + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); + // Fade out shadows that are far away + float shadowMapMaximumDistance = shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness.z; + float fade = max((depth - shadowMapMaximumDistance * 0.8) / (shadowMapMaximumDistance * 0.2), 0.0); + visibility = mix(visibility, 1.0, fade); +${m?` // Draw cascade colors for debugging + out_FragColor *= czm_cascadeColor(weights); +`:""}`:S+=` float nDotL = clamp(dot(normalEC, shadowMap_lightDirectionEC), 0.0, 1.0); + applyNormalOffset(positionEC, normalEC, nDotL); + vec4 shadowPosition = shadowMap_matrix * positionEC; + // Stop early if the fragment is not in the shadow bounds + if (any(lessThan(shadowPosition.xyz, vec3(0.0))) || any(greaterThan(shadowPosition.xyz, vec3(1.0)))) + { + return; + } + shadowParameters.texCoords = shadowPosition.xy; + shadowParameters.depth = shadowPosition.z; + shadowParameters.nDotL = nDotL; + float visibility = czm_shadowVisibility(shadowMap_texture, shadowParameters); +`,S+=` out_FragColor.rgb *= visibility; +} +`,A.push(S),new Ue({defines:T,sources:A})};var m_=hb;function Pm(e){e=y(e,y.EMPTY_OBJECT);let t=e.context;this._enabled=y(e.enabled,!0),this._softShadows=y(e.softShadows,!1),this._normalOffset=y(e.normalOffset,!0),this.dirty=!0,this.fromLightSource=y(e.fromLightSource,!0),this.darkness=y(e.darkness,.3),this._darkness=this.darkness,this.fadingEnabled=y(e.fadingEnabled,!0),this.maximumDistance=y(e.maximumDistance,5e3),this._outOfView=!1,this._outOfViewPrevious=!1,this._needsUpdate=!0;let n=!0;(jt.isInternetExplorer()||jt.isEdge()||(jt.isChrome()||jt.isFirefox())&&jt.isWindows()&&!t.depthTexture)&&(n=!1),this._polygonOffsetSupported=n,this._terrainBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.5,normalShading:!0,normalShadingSmooth:.3,depthBias:1e-4},this._primitiveBias={polygonOffset:n,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:.1,normalShading:!0,normalShadingSmooth:.05,depthBias:2e-5},this._pointBias={polygonOffset:!1,polygonOffsetFactor:1.1,polygonOffsetUnits:4,normalOffset:this._normalOffset,normalOffsetScale:0,normalShading:!0,normalShadingSmooth:.1,depthBias:5e-4},this._depthAttachment=void 0,this._colorAttachment=void 0,this._shadowMapMatrix=new F,this._shadowMapTexture=void 0,this._lightDirectionEC=new h,this._lightPositionEC=new oe,this._distance=0,this._lightCamera=e.lightCamera,this._shadowMapCamera=new Fz,this._shadowMapCullingVolume=void 0,this._sceneCamera=void 0,this._boundingSphere=new se,this._isPointLight=y(e.isPointLight,!1),this._pointLightRadius=y(e.pointLightRadius,100),this._cascadesEnabled=this._isPointLight?!1:y(e.cascadesEnabled,!0),this._numberOfCascades=this._cascadesEnabled?y(e.numberOfCascades,4):0,this._fitNearFar=!0,this._maximumCascadeDistances=[25,150,700,Number.MAX_VALUE],this._textureSize=new U,this._isSpotLight=!1,this._cascadesEnabled?this._shadowMapCamera.frustum=new Ur:l(this._lightCamera.frustum.fov)&&(this._isSpotLight=!0),this._cascadeSplits=[new oe,new oe],this._cascadeMatrices=[new F,new F,new F,new F],this._cascadeDistances=new oe;let i;this._isPointLight?i=6:this._cascadesEnabled?i=this._numberOfCascades:i=1,this._passes=new Array(i);for(let o=0;o<i;++o)this._passes[o]=new pdt(t);this.debugShow=!1,this.debugFreezeFrame=!1,this._debugFreezeFrame=!1,this._debugCascadeColors=!1,this._debugLightFrustum=void 0,this._debugCameraFrustum=void 0,this._debugCascadeFrustums=new Array(this._numberOfCascades),this._debugShadowViewCommand=void 0,this._usesDepthTexture=t.depthTexture,this._isPointLight&&(this._usesDepthTexture=!1),this._primitiveRenderState=void 0,this._terrainRenderState=void 0,this._pointRenderState=void 0,wX(this),this._clearCommand=new ei({depth:1,color:new z}),this._clearPassState=new bc(t),this._size=y(e.size,2048),this.size=this._size}Pm.MAXIMUM_DISTANCE=2e4;function pdt(e){this.camera=new Fz,this.passState=new bc(e),this.framebuffer=void 0,this.textureOffsets=void 0,this.commandList=[],this.cullingVolume=void 0}function vX(e,t){return Ve.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!0},colorMask:{red:e,green:e,blue:e,alpha:e},depthMask:!0,polygonOffset:{enabled:t.polygonOffset,factor:t.polygonOffsetFactor,units:t.polygonOffsetUnits}})}function wX(e){let t=!e._usesDepthTexture;e._primitiveRenderState=vX(t,e._primitiveBias),e._terrainRenderState=vX(t,e._terrainBias),e._pointRenderState=vX(t,e._pointBias)}Pm.prototype.debugCreateRenderStates=function(){wX(this)};Object.defineProperties(Pm.prototype,{enabled:{get:function(){return this._enabled},set:function(e){this.dirty=this._enabled!==e,this._enabled=e}},normalOffset:{get:function(){return this._normalOffset},set:function(e){this.dirty=this._normalOffset!==e,this._normalOffset=e,this._terrainBias.normalOffset=e,this._primitiveBias.normalOffset=e,this._pointBias.normalOffset=e}},softShadows:{get:function(){return this._softShadows},set:function(e){this.dirty=this._softShadows!==e,this._softShadows=e}},size:{get:function(){return this._size},set:function(e){Tdt(this,e)}},outOfView:{get:function(){return this._outOfView}},shadowMapCullingVolume:{get:function(){return this._shadowMapCullingVolume}},passes:{get:function(){return this._passes}},isPointLight:{get:function(){return this._isPointLight}},debugCascadeColors:{get:function(){return this._debugCascadeColors},set:function(e){this.dirty=this._debugCascadeColors!==e,this._debugCascadeColors=e}}});function DX(e){let t=e._passes.length;for(let n=0;n<t;++n){let i=e._passes[n],o=i.framebuffer;l(o)&&!o.isDestroyed()&&o.destroy(),i.framebuffer=void 0}e._depthAttachment=e._depthAttachment&&e._depthAttachment.destroy(),e._colorAttachment=e._colorAttachment&&e._colorAttachment.destroy()}function _dt(e,t){let n=new Yu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:ll.DEPTH_COMPONENT16}),i=new Ot({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,sampler:Qt.NEAREST}),o=new Vr({context:t,depthRenderbuffer:n,colorTextures:[i],destroyAttachments:!1}),r=e._passes.length;for(let s=0;s<r;++s){let a=e._passes[s];a.framebuffer=o,a.passState.framebuffer=o}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function gdt(e,t){let n=new Ot({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:it.DEPTH_STENCIL,pixelDatatype:Ze.UNSIGNED_INT_24_8,sampler:Qt.NEAREST}),i=new Vr({context:t,depthStencilTexture:n,destroyAttachments:!1}),o=e._passes.length;for(let r=0;r<o;++r){let s=e._passes[r];s.framebuffer=i,s.passState.framebuffer=i}e._shadowMapTexture=n,e._depthAttachment=n}function ydt(e,t){let n=new Yu({context:t,width:e._textureSize.x,height:e._textureSize.y,format:ll.DEPTH_COMPONENT16}),i=new Dr({context:t,width:e._textureSize.x,height:e._textureSize.y,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,sampler:Qt.NEAREST}),o=[i.negativeX,i.negativeY,i.negativeZ,i.positiveX,i.positiveY,i.positiveZ];for(let r=0;r<6;++r){let s=new Vr({context:t,depthRenderbuffer:n,colorTextures:[o[r]],destroyAttachments:!1}),a=e._passes[r];a.framebuffer=s,a.passState.framebuffer=s}e._shadowMapTexture=i,e._depthAttachment=n,e._colorAttachment=i}function i0e(e,t){e._isPointLight?ydt(e,t):e._usesDepthTexture?gdt(e,t):_dt(e,t)}function xdt(e,t){e._usesDepthTexture&&e._passes[0].framebuffer.status!==te.FRAMEBUFFER_COMPLETE&&(e._usesDepthTexture=!1,wX(e),DX(e),i0e(e,t))}function bdt(e,t){(!l(e._passes[0].framebuffer)||e._shadowMapTexture.width!==e._textureSize.x)&&(DX(e),i0e(e,t),xdt(e,t),o0e(e,t))}function o0e(e,t,n){n=y(n,0),(e._isPointLight||n===0)&&(e._clearCommand.framebuffer=e._passes[n].framebuffer,e._clearCommand.execute(t,e._clearPassState))}function Tdt(e,t){e._size=t;let n=e._passes,i=n.length,o=e._textureSize;if(e._isPointLight){t=zt.maximumCubeMapSize>=t?t:zt.maximumCubeMapSize,o.x=t,o.y=t;let r=new qe(0,0,t,t);n[0].passState.viewport=r,n[1].passState.viewport=r,n[2].passState.viewport=r,n[3].passState.viewport=r,n[4].passState.viewport=r,n[5].passState.viewport=r}else i===1?(t=zt.maximumTextureSize>=t?t:zt.maximumTextureSize,o.x=t,o.y=t,n[0].passState.viewport=new qe(0,0,t,t)):i===4&&(t=zt.maximumTextureSize>=t*2?t:zt.maximumTextureSize/2,o.x=t*2,o.y=t*2,n[0].passState.viewport=new qe(0,0,t,t),n[1].passState.viewport=new qe(t,0,t,t),n[2].passState.viewport=new qe(0,t,t,t),n[3].passState.viewport=new qe(t,t,t,t));e._clearPassState.viewport=new qe(0,0,o.x,o.y);for(let r=0;r<i;++r){let s=n[r],a=s.passState.viewport,c=a.x/o.x,u=a.y/o.y,f=a.width/o.x,d=a.height/o.y;s.textureOffsets=new F(f,0,0,c,0,d,0,u,0,0,1,0,0,0,0,1)}}var Adt=new qe;function Cdt(e,t){let n;e._isPointLight?n=`uniform samplerCube shadowMap_textureCube; +in vec2 v_textureCoordinates; +void main() +{ + vec2 uv = v_textureCoordinates; + vec3 dir; + + if (uv.y < 0.5) + { + if (uv.x < 0.333) + { + dir.x = -1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 1.0; + } + else if (uv.x < 0.666) + { + dir.y = -1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 1.0; + } + else + { + dir.z = -1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 1.0; + } + } + else + { + if (uv.x < 0.333) + { + dir.x = 1.0; + dir.y = uv.x * 6.0 - 1.0; + dir.z = uv.y * 4.0 - 3.0; + } + else if (uv.x < 0.666) + { + dir.y = 1.0; + dir.x = uv.x * 6.0 - 3.0; + dir.z = uv.y * 4.0 - 3.0; + } + else + { + dir.z = 1.0; + dir.x = uv.x * 6.0 - 5.0; + dir.y = uv.y * 4.0 - 3.0; + } + } + + float shadow = czm_unpackDepth(czm_textureCube(shadowMap_textureCube, dir)); + out_FragColor = vec4(vec3(shadow), 1.0); +} +`:n=`uniform sampler2D shadowMap_texture; +in vec2 v_textureCoordinates; +void main() +{ +${e._usesDepthTexture?` float shadow = texture(shadowMap_texture, v_textureCoordinates).r; +`:` float shadow = czm_unpackDepth(texture(shadowMap_texture, v_textureCoordinates)); +`} out_FragColor = vec4(vec3(shadow), 1.0); +} +`;let i=t.createViewportQuadCommand(n,{uniformMap:{shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture}}});return i.pass=ve.OVERLAY,i}function Edt(e,t){let n=t.context,i=t.context.drawingBufferWidth,o=t.context.drawingBufferHeight,r=Math.min(i,o)*.3,s=Adt;s.x=i-r,s.y=0,s.width=r,s.height=r;let a=e._debugShadowViewCommand;l(a)||(a=Cdt(e,n),e._debugShadowViewCommand=a),(!l(a.renderState)||!qe.equals(a.renderState.viewport,s))&&(a.renderState=Ve.fromCache({viewport:qe.clone(s)})),t.commandList.push(e._debugShadowViewCommand)}var Rm=new Array(8);Rm[0]=new oe(-1,-1,-1,1);Rm[1]=new oe(1,-1,-1,1);Rm[2]=new oe(1,1,-1,1);Rm[3]=new oe(-1,1,-1,1);Rm[4]=new oe(-1,-1,1,1);Rm[5]=new oe(1,-1,1,1);Rm[6]=new oe(1,1,1,1);Rm[7]=new oe(-1,1,1,1);var qy=new F,IX=new Array(8);for(let e=0;e<8;++e)IX[e]=new oe;function Sdt(e,t){let n=new vt({geometry:new Ah({minimum:new h(-.5,-.5,-.5),maximum:new h(.5,.5,.5)}),attributes:{color:qt.fromColor(t)}}),i=new vt({geometry:new Hg({radius:.5}),attributes:{color:qt.fromColor(t)}});return new In({geometryInstances:[n,i],appearance:new cn({translucent:!1,flat:!0}),asynchronous:!1,modelMatrix:e})}var vdt=[z.RED,z.GREEN,z.BLUE,z.MAGENTA],wdt=new h;function Ddt(e,t){Edt(e,t);let n=e.debugFreezeFrame&&!e._debugFreezeFrame;if(e._debugFreezeFrame=e.debugFreezeFrame,e.debugFreezeFrame&&(n&&(e._debugCameraFrustum=e._debugCameraFrustum&&e._debugCameraFrustum.destroy(),e._debugCameraFrustum=new u_({camera:e._sceneCamera,color:z.CYAN,updateOnChange:!1})),e._debugCameraFrustum.update(t)),e._cascadesEnabled){if(e.debugFreezeFrame){n&&(e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=new u_({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t);for(let i=0;i<e._numberOfCascades;++i)n&&(e._debugCascadeFrustums[i]=e._debugCascadeFrustums[i]&&e._debugCascadeFrustums[i].destroy(),e._debugCascadeFrustums[i]=new u_({camera:e._passes[i].camera,color:vdt[i],updateOnChange:!1})),e._debugCascadeFrustums[i].update(t)}}else if(e._isPointLight){if(!l(e._debugLightFrustum)||e._needsUpdate){let i=e._shadowMapCamera.positionWC,o=Me.IDENTITY,r=e._pointLightRadius*2,s=h.fromElements(r,r,r,wdt),a=F.fromTranslationQuaternionRotationScale(i,o,s,qy);e._debugLightFrustum=e._debugLightFrustum&&e._debugLightFrustum.destroy(),e._debugLightFrustum=Sdt(a,z.YELLOW)}e._debugLightFrustum.update(t)}else(!l(e._debugLightFrustum)||e._needsUpdate)&&(e._debugLightFrustum=new u_({camera:e._shadowMapCamera,color:z.YELLOW,updateOnChange:!1})),e._debugLightFrustum.update(t)}function Fz(){this.viewMatrix=new F,this.inverseViewMatrix=new F,this.frustum=void 0,this.positionCartographic=new fe,this.positionWC=new h,this.directionWC=h.clone(h.UNIT_Z),this.upWC=h.clone(h.UNIT_Y),this.rightWC=h.clone(h.UNIT_X),this.viewProjectionMatrix=new F}Fz.prototype.clone=function(e){F.clone(e.viewMatrix,this.viewMatrix),F.clone(e.inverseViewMatrix,this.inverseViewMatrix),this.frustum=e.frustum.clone(this.frustum),fe.clone(e.positionCartographic,this.positionCartographic),h.clone(e.positionWC,this.positionWC),h.clone(e.directionWC,this.directionWC),h.clone(e.upWC,this.upWC),h.clone(e.rightWC,this.rightWC)};var Idt=new F(.5,0,0,.5,0,.5,0,.5,0,0,.5,.5,0,0,0,1);Fz.prototype.getViewProjection=function(){let e=this.viewMatrix,t=this.frustum.projectionMatrix;return F.multiply(t,e,this.viewProjectionMatrix),F.multiply(Idt,this.viewProjectionMatrix,this.viewProjectionMatrix),this.viewProjectionMatrix};var Pdt=new Array(5),Rdt=new vi,Odt=new Array(4),r0e=new h,s0e=new h;function Mdt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=i.frustum.near,r=i.frustum.far,s=e._numberOfCascades,a,c=r-o,u=r/o,f=.9,d=!1;t.shadowState.closestObjectSize<200&&(d=!0,f=.9);let p=Odt,g=Pdt;for(g[0]=o,g[s]=r,a=0;a<s;++a){let L=(a+1)/s,_=o*Math.pow(u,L),E=o+c*L,w=P.lerp(E,_,f);g[a+1]=w,p[a]=w-g[a]}if(d){for(a=0;a<s;++a)p[a]=Math.min(p[a],e._maximumCascadeDistances[a]);let L=g[0];for(a=0;a<s-1;++a)L+=p[a],g[a+1]=L}oe.unpack(g,0,e._cascadeSplits[0]),oe.unpack(g,1,e._cascadeSplits[1]),oe.unpack(p,0,e._cascadeDistances);let m=n.frustum,x=m.left,b=m.right,T=m.bottom,A=m.top,C=m.near,S=m.far,v=n.positionWC,D=n.directionWC,O=n.upWC,R=i.frustum.clone(Rdt),M=n.getViewProjection();for(a=0;a<s;++a){R.near=g[a],R.far=g[a+1];let L=F.multiply(R.projectionMatrix,i.viewMatrix,qy),_=F.inverse(L,qy),E=F.multiply(M,_,qy),w=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,r0e),I=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,s0e);for(let G=0;G<8;++G){let k=oe.clone(Rm[G],IX[G]);F.multiplyByVector(E,k,k),h.divideByScalar(k,k.w,k),h.minimumByComponent(k,w,w),h.maximumByComponent(k,I,I)}w.x=Math.max(w.x,0),w.y=Math.max(w.y,0),w.z=0,I.x=Math.min(I.x,1),I.y=Math.min(I.y,1),I.z=Math.min(I.z,1);let N=e._passes[a],B=N.camera;B.clone(n);let H=B.frustum;H.left=x+w.x*(b-x),H.right=x+I.x*(b-x),H.bottom=T+w.y*(A-T),H.top=T+I.y*(A-T),H.near=C+w.z*(S-C),H.far=C+I.z*(S-C),N.cullingVolume=B.frustum.computeCullingVolume(v,D,O);let V=e._cascadeMatrices[a];F.multiply(B.getViewProjection(),i.inverseViewMatrix,V),F.multiply(N.textureOffsets,V,V)}}var Ldt=new F,Ndt=new h,Fdt=new h,t0e=new h;function Bdt(e,t){let n=e._shadowMapCamera,i=e._sceneCamera,o=F.multiply(i.frustum.projectionMatrix,i.viewMatrix,qy),r=F.inverse(o,qy),s=n.directionWC,a=i.directionWC;h.equalsEpsilon(s,a,P.EPSILON10)&&(a=i.upWC);let c=h.cross(s,a,Ndt);a=h.cross(c,s,Fdt),h.normalize(a,a),h.normalize(c,c);let u=h.fromElements(0,0,0,t0e),f=F.computeView(u,s,a,c,Ldt),d=F.multiply(f,r,qy),p=h.fromElements(Number.MAX_VALUE,Number.MAX_VALUE,Number.MAX_VALUE,r0e),g=h.fromElements(-Number.MAX_VALUE,-Number.MAX_VALUE,-Number.MAX_VALUE,s0e);for(let S=0;S<8;++S){let v=oe.clone(Rm[S],IX[S]);F.multiplyByVector(d,v,v),h.divideByScalar(v,v.w,v),h.minimumByComponent(v,p,p),h.maximumByComponent(v,g,g)}g.z+=1e3,p.z-=10;let m=t0e;m.x=-(.5*(p.x+g.x)),m.y=-(.5*(p.y+g.y)),m.z=-g.z;let x=F.fromTranslation(m,qy);f=F.multiply(x,f,f);let b=.5*(g.x-p.x),T=.5*(g.y-p.y),A=g.z-p.z,C=n.frustum;C.left=-b,C.right=b,C.bottom=-T,C.top=T,C.near=.01,C.far=A,F.clone(f,n.viewMatrix),F.inverse(f,n.inverseViewMatrix),F.getTranslation(n.inverseViewMatrix,n.positionWC),t.mapProjection.ellipsoid.cartesianToCartographic(n.positionWC,n.positionCartographic),h.clone(s,n.directionWC),h.clone(a,n.upWC),h.clone(c,n.rightWC)}var kdt=[new h(-1,0,0),new h(0,-1,0),new h(0,0,-1),new h(1,0,0),new h(0,1,0),new h(0,0,1)],Vdt=[new h(0,-1,0),new h(0,0,-1),new h(0,-1,0),new h(0,-1,0),new h(0,0,1),new h(0,-1,0)],Udt=[new h(0,0,1),new h(1,0,0),new h(-1,0,0),new h(0,0,-1),new h(1,0,0),new h(1,0,0)];function zdt(e,t){let n=new vi;n.fov=P.PI_OVER_TWO,n.near=1,n.far=e._pointLightRadius,n.aspectRatio=1;for(let i=0;i<6;++i){let o=e._passes[i].camera;o.positionWC=e._shadowMapCamera.positionWC,o.positionCartographic=t.mapProjection.ellipsoid.cartesianToCartographic(o.positionWC,o.positionCartographic),o.directionWC=kdt[i],o.upWC=Vdt[i],o.rightWC=Udt[i],F.computeView(o.positionWC,o.directionWC,o.upWC,o.rightWC,o.viewMatrix),F.inverse(o.viewMatrix,o.inverseViewMatrix),o.frustum=n}}var Hdt=new h,Gdt=new h,a0e=new se,n0e=a0e.center;function Wdt(e,t){let n=e._sceneCamera,i=e._shadowMapCamera,o=a0e;if(e._cascadesEnabled){if(n.frustum.near>=e.maximumDistance){e._outOfView=!0,e._needsUpdate=!1;return}let r=t.mapProjection.ellipsoid.geodeticSurfaceNormal(n.positionWC,Hdt),s=h.negate(i.directionWC,Gdt),a=h.dot(r,s);if(e.fadingEnabled){let c=P.clamp(a/.1,0,1);e._darkness=P.lerp(1,e.darkness,c)}else e._darkness=e.darkness;if(a<0){e._outOfView=!0,e._needsUpdate=!1;return}e._needsUpdate=!0,e._outOfView=!1}else if(e._isPointLight)o.center=i.positionWC,o.radius=e._pointLightRadius,e._outOfView=t.cullingVolume.computeVisibility(o)===Yt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere);else{let r=i.frustum.far/2,s=h.add(i.positionWC,h.multiplyByScalar(i.directionWC,r,n0e),n0e);o.center=s,o.radius=r,e._outOfView=t.cullingVolume.computeVisibility(o)===Yt.OUTSIDE,e._needsUpdate=!e._outOfView&&!e._boundingSphere.equals(o),se.clone(o,e._boundingSphere)}}function jdt(e,t){let n=t.camera,i=e._lightCamera,o=e._sceneCamera,r=e._shadowMapCamera;e._cascadesEnabled?h.clone(i.directionWC,r.directionWC):e._isPointLight?h.clone(i.positionWC,r.positionWC):r.clone(i);let s=e._lightDirectionEC;F.multiplyByPointAsVector(n.viewMatrix,r.directionWC,s),h.normalize(s,s),h.negate(s,s),F.multiplyByPoint(n.viewMatrix,r.positionWC,e._lightPositionEC),e._lightPositionEC.w=e._pointLightRadius;let a,c;e._fitNearFar?(a=Math.min(t.shadowState.nearPlane,e.maximumDistance),c=Math.min(t.shadowState.farPlane,e.maximumDistance),c=Math.max(c,a+1)):(a=n.frustum.near,c=e.maximumDistance),e._sceneCamera=io.clone(n,o),n.frustum.clone(e._sceneCamera.frustum),e._sceneCamera.frustum.near=a,e._sceneCamera.frustum.far=c,e._distance=c-a,Wdt(e,t),!e._outOfViewPrevious&&e._outOfView&&(e._needsUpdate=!0),e._outOfViewPrevious=e._outOfView}Pm.prototype.update=function(e){if(jdt(this,e),this._needsUpdate)if(bdt(this,e.context),this._isPointLight&&zdt(this,e),this._cascadesEnabled&&(Bdt(this,e),this._numberOfCascades>1&&Mdt(this,e)),this._isPointLight)this._shadowMapCullingVolume=ys.fromBoundingSphere(this._boundingSphere);else{let t=this._shadowMapCamera,n=t.positionWC,i=t.directionWC,o=t.upWC;this._shadowMapCullingVolume=t.frustum.computeCullingVolume(n,i,o),this._passes.length===1&&this._passes[0].camera.clone(t)}if(this._passes.length===1){let t=this._sceneCamera.inverseViewMatrix;F.multiply(this._shadowMapCamera.getViewProjection(),t,this._shadowMapMatrix)}this.debugShow&&Ddt(this,e)};Pm.prototype.updatePass=function(e,t){o0e(this,e,t)};var qdt=new U;function c0e(e,t,n){let i=e._isPointLight?e._pointBias:n?e._terrainBias:e._primitiveBias,o={shadowMap_texture:function(){return e._shadowMapTexture},shadowMap_textureCube:function(){return e._shadowMapTexture},shadowMap_matrix:function(){return e._shadowMapMatrix},shadowMap_cascadeSplits:function(){return e._cascadeSplits},shadowMap_cascadeMatrices:function(){return e._cascadeMatrices},shadowMap_lightDirectionEC:function(){return e._lightDirectionEC},shadowMap_lightPositionEC:function(){return e._lightPositionEC},shadowMap_cascadeDistances:function(){return e._cascadeDistances},shadowMap_texelSizeDepthBiasAndNormalShadingSmooth:function(){let r=qdt;return r.x=1/e._textureSize.x,r.y=1/e._textureSize.y,oe.fromElements(r.x,r.y,i.depthBias,i.normalShadingSmooth,this.combinedUniforms1)},shadowMap_normalOffsetScaleDistanceMaxDistanceAndDarkness:function(){return oe.fromElements(i.normalOffsetScale,e._distance,e.maximumDistance,e._darkness,this.combinedUniforms2)},combinedUniforms1:new oe,combinedUniforms2:new oe};return xt(t,o,!1)}function Ydt(e,t,n,i,o,r){let s,a,c;if(l(r)&&(s=r.shaderProgram,a=r.renderState,c=r.uniformMap),r=et.shallowClone(n,r),r.castShadows=!0,r.receiveShadows=!1,!l(s)||o!==n.shaderProgram.id||t){let u=n.shaderProgram,f=n.pass===ve.GLOBE,d=n.pass!==ve.TRANSLUCENT,p=e._isPointLight,g=e._usesDepthTexture,m=m_.getShadowCastShaderKeyword(p,f,g,d);if(s=i.shaderCache.getDerivedShaderProgram(u,m),!l(s)){let b=u.vertexShaderSource,T=u.fragmentShaderSource,A=m_.createShadowCastVertexShader(b,p,f),C=m_.createShadowCastFragmentShader(T,p,g,d);s=i.shaderCache.createDerivedShaderProgram(u,m,{vertexShaderSource:A,fragmentShaderSource:C,attributeLocations:u._attributeLocations})}a=e._primitiveRenderState,p?a=e._pointRenderState:f&&(a=e._terrainRenderState),n.renderState.cull.enabled||(a=Ge(a,!1),a.cull=Ge(a.cull,!1),a.cull.enabled=!1,a=Ve.fromCache(a)),c=c0e(e,n.uniformMap,f)}return r.shaderProgram=s,r.renderState=a,r.uniformMap=c,r}Pm.createReceiveDerivedCommand=function(e,t,n,i,o){l(o)||(o={});let r=e.length>0,s=t.shaderProgram,a=s.vertexShaderSource,c=s.fragmentShaderSource,u=t.pass===ve.GLOBE,f=!1;if(u&&(f=t.owner.data.renderedMesh.encoding.hasVertexNormals),t.receiveShadows&&r){let d,p;l(o.receiveCommand)&&(d=o.receiveCommand.shaderProgram,p=o.receiveCommand.uniformMap),o.receiveCommand=et.shallowClone(t,o.receiveCommand),o.castShadows=!1,o.receiveShadows=!0;let g=o.receiveShaderCastShadows!==t.castShadows,m=o.receiveShaderProgramId!==t.shaderProgram.id;if(!l(d)||m||n||g){let x=m_.getShadowReceiveShaderKeyword(e[0],t.castShadows,u,f);if(d=i.shaderCache.getDerivedShaderProgram(s,x),!l(d)){let b=m_.createShadowReceiveVertexShader(a,u,f),T=m_.createShadowReceiveFragmentShader(c,e[0],t.castShadows,u,f);d=i.shaderCache.createDerivedShaderProgram(s,x,{vertexShaderSource:b,fragmentShaderSource:T,attributeLocations:s._attributeLocations})}p=c0e(e[0],t.uniformMap,u)}o.receiveCommand.shaderProgram=d,o.receiveCommand.uniformMap=p,o.receiveShaderProgramId=t.shaderProgram.id,o.receiveShaderCastShadows=t.castShadows}return o};Pm.createCastDerivedCommand=function(e,t,n,i,o){if(l(o)||(o={}),t.castShadows){let r=o.castCommands;l(r)||(r=o.castCommands=[]);let s=o.castShaderProgramId,a=e.length;r.length=a;for(let c=0;c<a;++c)r[c]=Ydt(e[c],n,t,i,s,r[c]);o.castShaderProgramId=t.shaderProgram.id}return o};Pm.prototype.isDestroyed=function(){return!1};Pm.prototype.destroy=function(){DX(this),this._debugLightFrustum=this._debugLightFrustum&&this._debugLightFrustum.destroy(),this._debugCameraFrustum=this._debugCameraFrustum&&this._debugCameraFrustum.destroy(),this._debugShadowViewCommand=this._debugShadowViewCommand&&this._debugShadowViewCommand.shaderProgram&&this._debugShadowViewCommand.shaderProgram.destroy();for(let e=0;e<this._numberOfCascades;++e)this._debugCascadeFrustums[e]=this._debugCascadeFrustums[e]&&this._debugCascadeFrustums[e].destroy();return ue(this)};var Yy=Pm;var Bz=`uniform sampler2D u_opaqueDepthTexture; +uniform sampler2D u_translucentDepthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float opaqueDepth = texture(u_opaqueDepthTexture, v_textureCoordinates).r; + float translucentDepth = texture(u_translucentDepthTexture, v_textureCoordinates).r; + translucentDepth = czm_branchFreeTernary(translucentDepth > opaqueDepth, 1.0, translucentDepth); + out_FragColor = czm_packDepth(translucentDepth); +} +`;var HE=`uniform sampler2D colorTexture; + +#ifdef DEBUG_SHOW_DEPTH +uniform sampler2D u_packedTranslucentDepth; +#endif + +in vec2 v_textureCoordinates; + +void main() +{ +#ifdef DEBUG_SHOW_DEPTH + if (v_textureCoordinates.x < 0.5) + { + out_FragColor.rgb = vec3(czm_unpackDepth(texture(u_packedTranslucentDepth, v_textureCoordinates))); + out_FragColor.a = 1.0; + } +#else + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef PICK + if (color == vec4(0.0)) + { + discard; + } +#else + // Reverse premultiplication process to get the correct composited result of the classification primitives + color.rgb /= color.a; +#endif + out_FragColor = color; +#endif +} +`;var Xdt=!1;function Xy(e){this._drawClassificationFBO=new hi({createDepthAttachments:!1}),this._accumulationFBO=new hi({createDepthAttachments:!1}),this._packFBO=new hi,this._opaqueDepthStencilTexture=void 0,this._textureToComposite=void 0,this._translucentDepthStencilTexture=void 0,this._packDepthCommand=void 0,this._accumulateCommand=void 0,this._compositeCommand=void 0,this._copyCommand=void 0,this._clearColorCommand=new ei({color:new z(0,0,0,0),owner:this}),this._clearDepthStencilCommand=new ei({depth:1,stencil:0,owner:this}),this._supported=e.depthTexture,this._viewport=new qe,this._rsDepth=void 0,this._rsAccumulate=void 0,this._rsComp=void 0,this._useScissorTest=void 0,this._scissorRectangle=void 0,this._hasTranslucentDepth=!1,this._frustumsDrawn=0}Object.defineProperties(Xy.prototype,{hasTranslucentDepth:{get:function(){return this._hasTranslucentDepth}}});function l0e(e){e._textureToComposite=void 0,e._translucentDepthStencilTexture=e._translucentDepthStencilTexture&&!e._translucentDepthStencilTexture.isDestroyed()&&e._translucentDepthStencilTexture.destroy()}function u0e(e){e._drawClassificationFBO.destroy(),e._accumulationFBO.destroy(),e._packFBO.destroy()}function Kdt(e,t,n,i){l0e(e),e._translucentDepthStencilTexture=new Ot({context:t,width:n,height:i,pixelFormat:it.DEPTH_STENCIL,pixelDatatype:Ze.UNSIGNED_INT_24_8,sampler:Qt.NEAREST})}function Zdt(e,t,n,i){u0e(e),e._drawClassificationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._drawClassificationFBO.update(t,n,i),e._accumulationFBO.setDepthStencilTexture(e._translucentDepthStencilTexture),e._accumulationFBO.update(t,n,i),e._packFBO.update(t,n,i)}function $dt(e,t,n,i){if(!e.isSupported())return;e._opaqueDepthStencilTexture=i;let o=e._opaqueDepthStencilTexture.width,r=e._opaqueDepthStencilTexture.height;e._drawClassificationFBO.isDirty(o,r)&&(Kdt(e,t,o,r),Zdt(e,t,o,r));let s,a;if(l(e._packDepthCommand)||(s=new Ue({sources:[Bz]}),a={u_opaqueDepthTexture:function(){return e._opaqueDepthStencilTexture},u_translucentDepthTexture:function(){return e._translucentDepthStencilTexture}},e._packDepthCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),!l(e._compositeCommand)){s=new Ue({sources:[HE]}),a={colorTexture:function(){return e._textureToComposite}},Xdt&&(s.defines=["DEBUG_SHOW_DEPTH"],a.u_packedTranslucentDepth=function(){return e._packFBO.getColorTexture()}),e._compositeCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e});let f=e._compositeCommand,d=f.shaderProgram,p=t.shaderCache.createDerivedShaderProgram(d,"pick",{vertexShaderSource:d.vertexShaderSource,fragmentShaderSource:new Ue({sources:s.sources,defines:["PICK"]}),attributeLocations:d._attributeLocations}),g=et.shallowClone(f);g.shaderProgram=p,f.derivedCommands.pick=g}l(e._copyCommand)||(s=new Ue({sources:[HE]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._copyCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),l(e._accumulateCommand)||(s=new Ue({sources:[HE]}),a={colorTexture:function(){return e._drawClassificationFBO.getColorTexture()}},e._accumulateCommand=t.createViewportQuadCommand(s,{uniformMap:a,owner:e})),e._viewport.width=o,e._viewport.height=r;let c=!qe.equals(e._viewport,n.viewport),u=c!==e._useScissorTest;e._useScissorTest=c,qe.equals(e._scissorRectangle,n.viewport)||(e._scissorRectangle=qe.clone(n.viewport,e._scissorRectangle),u=!0),(!l(e._rsDepth)||!qe.equals(e._viewport,e._rsDepth.viewport)||u)&&(e._rsDepth=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle}})),l(e._packDepthCommand)&&(e._packDepthCommand.renderState=e._rsDepth),(!l(e._rsAccumulate)||!qe.equals(e._viewport,e._rsAccumulate.viewport)||u)&&(e._rsAccumulate=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},stencilTest:{enabled:!0,frontFunction:Vn.EQUAL,reference:Ht.CESIUM_3D_TILE_MASK}})),l(e._accumulateCommand)&&(e._accumulateCommand.renderState=e._rsAccumulate),(!l(e._rsComp)||!qe.equals(e._viewport,e._rsComp.viewport)||u)&&(e._rsComp=Ve.fromCache({viewport:e._viewport,scissorTest:{enabled:e._useScissorTest,rectangle:e._scissorRectangle},blending:ln.ALPHA_BLEND})),l(e._compositeCommand)&&(e._compositeCommand.renderState=e._rsComp,e._compositeCommand.derivedCommands.pick.renderState=e._rsComp)}Xy.prototype.executeTranslucentCommands=function(e,t,n,i,o){let r=e.frameState.useLogDepth,s=e.context,a=n.framebuffer;for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,u.depthForTranslucentClassification){this._hasTranslucentDepth=!0;break}}if(this._hasTranslucentDepth){$dt(this,s,n,o),n.framebuffer=this._drawClassificationFBO.framebuffer,this._clearDepthStencilCommand.execute(s,n);for(let c=0;c<i.length;++c){let u=i[c];if(u=r?u.derivedCommands.logDepth.command:u,!u.depthForTranslucentClassification)continue;let f=u.derivedCommands.depth.depthOnlyCommand;t(f,e,n)}this._frustumsDrawn+=this._hasTranslucentDepth?1:0,this._hasTranslucentDepth&&(n.framebuffer=this._packFBO.framebuffer,this._packDepthCommand.execute(s,n)),n.framebuffer=a}};Xy.prototype.executeClassificationCommands=function(e,t,n,i){if(!this._hasTranslucentDepth)return;let o=e.context,r=o.uniformState,s=n.framebuffer;n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=this._drawClassificationFBO.framebuffer,this._frustumsDrawn>1&&this._clearColorCommand.execute(o,n),r.updatePass(ve.CESIUM_3D_TILE_CLASSIFICATION);let a=r.globeDepthTexture;r.globeDepthTexture=this._packFBO.getColorTexture();let c=i.commands[ve.CESIUM_3D_TILE_CLASSIFICATION],u=i.indices[ve.CESIUM_3D_TILE_CLASSIFICATION];for(let f=0;f<u;++f)t(c[f],e,n);r.globeDepthTexture=a,n.framebuffer=s,this._frustumsDrawn!==1&&(n.framebuffer=this._accumulationFBO.framebuffer,this._accumulateCommand.execute(o,n),n.framebuffer=s)};Xy.prototype.execute=function(e,t){if(!this._hasTranslucentDepth)return;this._frustumsDrawn===1?this._textureToComposite=this._drawClassificationFBO.getColorTexture():this._textureToComposite=this._accumulationFBO.getColorTexture(),(e.frameState.passes.pick?this._compositeCommand.derivedCommands.pick:this._compositeCommand).execute(e.context,t),Qdt(this,e,t)};function Qdt(e,t,n){if(!e._hasTranslucentDepth)return;let i=n.framebuffer;n.framebuffer=e._drawClassificationFBO.framebuffer,e._clearColorCommand.execute(t._context,n),n.framebuffer=i,e._frustumsDrawn>1&&(n.framebuffer=e._accumulationFBO.framebuffer,e._clearColorCommand.execute(t._context,n)),e._hasTranslucentDepth=!1,e._frustumsDrawn=0}Xy.prototype.isSupported=function(){return this._supported};Xy.prototype.isDestroyed=function(){return!1};Xy.prototype.destroy=function(){return l0e(this),u0e(this),l(this._compositeCommand)&&(this._compositeCommand.shaderProgram=this._compositeCommand.shaderProgram&&this._compositeCommand.shaderProgram.destroy()),l(this._packDepthCommand)&&(this._packDepthCommand.shaderProgram=this._packDepthCommand.shaderProgram&&this._packDepthCommand.shaderProgram.destroy()),ue(this)};var kz=Xy;function Jdt(){this.command=void 0,this.near=void 0,this.far=void 0}function Vz(e,t,n){let i=e.context,o;i.depthTexture&&(o=new Pz);let r;e._useOIT&&i.depthTexture&&(r=new Mz(i));let s=new bc(i);s.viewport=qe.clone(n),this.camera=t,this._cameraClone=io.clone(t),this._cameraStartFired=!1,this._cameraMovedTime=void 0,this.viewport=n,this.passState=s,this.pickFramebuffer=new Nz(i),this.pickDepthFramebuffer=new Lz,this.sceneFramebuffer=new zE,this.globeDepth=o,this.globeTranslucencyFramebuffer=new Rz,this.oit=r,this.translucentTileClassification=new kz(i),this.pickDepths=[],this.frustumCommandsList=[],this.debugFrustumStatistics=void 0,this._commandExtents=[]}var PX=new h,RX=new h;function eht(e,t,n){let i=Math.max(h.maximumComponent(h.abs(e.position,PX)),h.maximumComponent(h.abs(t.position,RX))),o=1/Math.max(1,i);return h.multiplyByScalar(e.position,o,PX),h.multiplyByScalar(t.position,o,RX),h.equalsEpsilon(PX,RX,n)&&h.equalsEpsilon(e.direction,t.direction,n)&&h.equalsEpsilon(e.up,t.up,n)&&h.equalsEpsilon(e.right,t.right,n)&&F.equalsEpsilon(e.transform,t.transform,n)&&e.frustum.equalsEpsilon(t.frustum,n)}Vz.prototype.checkForCameraUpdates=function(e){let t=this.camera,n=this._cameraClone;return eht(t,n,P.EPSILON15)?(this._cameraStartFired&&Ti()-this._cameraMovedTime>e.cameraEventWaitTime&&(t.moveEnd.raiseEvent(),this._cameraStartFired=!1),!1):(this._cameraStartFired||(t.moveStart.raiseEvent(),this._cameraStartFired=!0),this._cameraMovedTime=Ti(),io.clone(t,n),!0)};function tht(e,t,n,i){let{frameState:o}=t,{camera:r,useLogDepth:s}=o,a=s?t.logarithmicDepthFarToNearRatio:t.farToNearRatio,c=t.mode===ne.SCENE2D,u=t.nearToFarDistance2D;i*=1+P.EPSILON2,n=Math.min(Math.max(n,r.frustum.near),r.frustum.far),i=Math.max(Math.min(i,r.frustum.far),n);let f;c?(i=Math.min(i,r.position.z+t.nearToFarDistance2D),n=Math.min(n,i),f=Math.ceil(Math.max(1,i-n)/t.nearToFarDistance2D)):f=Math.ceil(Math.log(i/n)/Math.log(a));let{frustumCommandsList:d}=e;d.length=f;for(let p=0;p<f;++p){let g,m;c?(g=Math.min(i-u,n+p*u),m=Math.min(i,g+u)):(g=Math.max(n,Math.pow(a,p)*n),m=Math.min(i,a*g));let x=d[p];l(x)?(x.near=g,x.far=m):x=d[p]=new Iz(g,m)}}function nht(e,t,n){let{command:i,near:o,far:r}=n;t.debugShowFrustums&&(i.debugOverlappingFrustums=0);let{frustumCommandsList:s}=e;for(let a=0;a<s.length;++a){let c=s[a];if(o>c.far)continue;if(r<c.near)break;let u=i.pass,f=c.indices[u]++;if(c.commands[u][f]=i,t.debugShowFrustums&&(i.debugOverlappingFrustums|=1<<a),i.executeInClosestFrustum)break}if(t.debugShowFrustums){let{debugFrustumStatistics:a}=e,{debugOverlappingFrustums:c}=i,u=a.commandsInFrustums;u[c]=l(u[c])?u[c]+1:1,++a.totalCommands}t.updateDerivedCommands(i)}var f0e=new ys,iht=new Ha;Vz.prototype.createPotentiallyVisibleSet=function(e){let{frameState:t}=e,{camera:n,commandList:i,shadowState:o}=t,{positionWC:r,directionWC:s,frustum:a}=n,c=e._computeCommandList,u=e._overlayCommandList;e.debugShowFrustums&&(this.debugFrustumStatistics={totalCommands:0,commandsInFrustums:{}});let f=this.frustumCommandsList;for(let M=0;M<f.length;++M)for(let L=0;L<ve.NUMBER_OF_PASSES;++L)f[M].indices[L]=0;c.length=0,u.length=0;let d=this._commandExtents,p=d.length,g=0,m=+Number.MAX_VALUE,x=-Number.MAX_VALUE,{shadowsEnabled:b}=o,T=+Number.MAX_VALUE,A=-Number.MAX_VALUE,C=Number.MAX_VALUE,S=t.mode===ne.SCENE3D?t.occluder:void 0,{cullingVolume:v}=t,D=f0e.planes;for(let M=0;M<5;++M)D[M]=v.planes[M];v=f0e;for(let M=0;M<i.length;++M){let L=i[M],{pass:_,boundingVolume:E}=L;if(_===ve.COMPUTE)c.push(L);else if(_===ve.OVERLAY)u.push(L);else{let w,I;if(l(E)){if(!e.isVisible(v,L,S))continue;let B=E.computePlaneDistances(r,s,iht);if(w=B.start,I=B.stop,m=Math.min(m,w),x=Math.max(x,I),b&&L.receiveShadows&&w<Yy.MAXIMUM_DISTANCE&&!(_===ve.GLOBE&&w<-100&&I>100)){let H=I-w;_!==ve.GLOBE&&w<100&&(C=Math.min(C,H)),T=Math.min(T,w),A=Math.max(A,I)}}else L instanceof ei?(w=a.near,I=a.far):(w=a.near,I=a.far,m=Math.min(m,w),x=Math.max(x,I));let N=d[g];l(N)||(N=d[g]=new Jdt),N.command=L,N.near=w,N.far=I,g++}}b&&(T=Math.min(Math.max(T,a.near),a.far),A=Math.max(Math.min(A,a.far),T),o.nearPlane=T,o.farPlane=A,o.closestObjectSize=C),tht(this,e,m,x);for(let M=0;M<g;M++)nht(this,e,d[M]);if(g<p)for(let M=g;M<p;M++){let L=d[M];if(!l(L.command))break;L.command=void 0}let O=f.length,{frustumSplits:R}=t;R.length=O+1;for(let M=0;M<O;++M)R[M]=f[M].near,M===O-1&&(R[M+1]=f[M].far)};Vz.prototype.destroy=function(){this.pickFramebuffer=this.pickFramebuffer&&this.pickFramebuffer.destroy(),this.pickDepthFramebuffer=this.pickDepthFramebuffer&&this.pickDepthFramebuffer.destroy(),this.sceneFramebuffer=this.sceneFramebuffer&&this.sceneFramebuffer.destroy(),this.globeDepth=this.globeDepth&&this.globeDepth.destroy(),this.oit=this.oit&&this.oit.destroy(),this.translucentTileClassification=this.translucentTileClassification&&this.translucentTileClassification.destroy(),this.globeTranslucencyFramebuffer=this.globeTranslucencyFramebuffer&&this.globeTranslucencyFramebuffer.destroy();let e=this.pickDepths;for(let t=0;t<e.length;++t)e[t].destroy()};var GE=Vz;var h0e=.1,oht=new Qd({pass:Fo.MOST_DETAILED_PRELOAD}),rht=new Qd({pass:Fo.MOST_DETAILED_PICK}),jI=new Qd({pass:Fo.PICK});function Ws(e){this._mostDetailedRayPicks=[],this.pickRenderStateCache={},this._pickPositionCache={},this._pickPositionCacheDirty=!1;let t=new qe(0,0,1,1),n=new io(e);n.frustum=new rn({width:h0e,aspectRatio:1,near:.1}),this._pickOffscreenView=new GE(e,n,t)}Ws.prototype.update=function(){this._pickPositionCacheDirty=!0};Ws.prototype.getPickDepth=function(e,t){let n=e.view.pickDepths,i=n[t];return l(i)||(i=new Dz,n[t]=i),i};var sht=new Ur,aht=new h,Uz=new h,cht=new U,lht=new F;function uht(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.offCenterFrustum;l(a)&&(s=a);let c=2*(t.x-o.x)/o.width-1;c*=(s.right-s.left)*.5;let u=2*(o.height-t.y-o.y)/o.height-1;u*=(s.top-s.bottom)*.5;let f=F.clone(r.transform,lht);r._setTransform(F.IDENTITY);let d=h.clone(r.position,aht);h.multiplyByScalar(r.right,c,Uz),h.add(Uz,d,d),h.multiplyByScalar(r.up,u,Uz),h.add(Uz,d,d),r._setTransform(f),e.mode===ne.SCENE2D&&h.fromElements(d.z,d.x,d.y,d);let p=s.getPixelDimensions(o.width,o.height,1,1,cht),g=sht;return g.right=p.x*.5,g.left=-g.right,g.top=p.y*.5,g.bottom=-g.top,g.near=s.near,g.far=s.far,g.computeCullingVolume(d,r.directionWC,r.upWC)}var fht=new Ol,dht=new U;function hht(e,t,n,i,o){let r=e.camera,s=r.frustum,a=s.near,c=Math.tan(s.fovy*.5),u=s.aspectRatio*c,f=2*(t.x-o.x)/o.width-1,d=2*(o.height-t.y-o.y)/o.height-1,p=f*a*u,g=d*a*c,m=s.getPixelDimensions(o.width,o.height,1,1,dht),x=m.x*n*.5,b=m.y*i*.5,T=fht;return T.top=g+b,T.bottom=g-b,T.right=p+x,T.left=p-x,T.near=a,T.far=s.far,T.computeCullingVolume(r.positionWC,r.directionWC,r.upWC)}function zz(e,t,n,i,o){let r=e.camera.frustum;return r instanceof rn||r instanceof Ur?uht(e,t,n,i,o):hht(e,t,n,i,o)}var Hz=new qe(0,0,3,3),Gz=new U,qI=new z(0,0,0,0);function OX(e,t,n,i,o){return o.width=y(n,3),o.height=y(i,o.width),o.x=t.x-(o.width-1)*.5,o.y=e-t.y-(o.height-1)*.5,o}Ws.prototype.pick=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=qe.clone(a,u.viewport);let f=Vi.transformWindowToDrawingBuffer(e,t,Gz),d=OX(o.drawingBufferHeight,f,n,i,Hz);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=zz(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pick=!0,r.tilesetPassState=jI,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,qI),e.resolveFramebuffers(u);let p=c.end(d);return o.endFrame(),p};Ws.prototype.pickVoxelCoordinate=function(e,t,n,i){let{context:o,frameState:r,defaultView:s}=e,{viewport:a,pickFramebuffer:c}=s;e.view=s,a.x=0,a.y=0,a.width=o.drawingBufferWidth,a.height=o.drawingBufferHeight;let u=s.passState;u.viewport=qe.clone(a,u.viewport);let f=Vi.transformWindowToDrawingBuffer(e,t,Gz),d=OX(o.drawingBufferHeight,f,n,i,Hz);e.jobScheduler.disableThisFrame(),e.updateFrameState(),r.cullingVolume=zz(e,f,d.width,d.height,a),r.invertClassification=!1,r.passes.pickVoxel=!0,r.tilesetPassState=jI,o.uniformState.update(r),e.updateEnvironment(),u=c.begin(d,a),e.updateAndExecuteCommands(u,qI),e.resolveFramebuffers(u);let p=c.readCenterPixel(d);return o.endFrame(),p};Ws.prototype.pickMetadata=function(e,t,n){let{context:i,frameState:o,defaultView:r}=e,{viewport:s,pickFramebuffer:a}=r;e.view=r,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=r.passState;c.viewport=qe.clone(s,c.viewport);let u=Vi.transformWindowToDrawingBuffer(e,t,Gz),f=OX(i.drawingBufferHeight,u,1,1,Hz);e.jobScheduler.disableThisFrame(),e.updateFrameState(),o.cullingVolume=zz(e,u,f.width,f.height,s),o.invertClassification=!1,o.passes.pick=!0,o.tilesetPassState=jI,o.pickingMetadata=!0,o.pickedMetadataInfo=n,i.uniformState.update(o),e.updateEnvironment(),c=a.begin(f,s),e.updateAndExecuteCommands(c,qI);let d=e._environmentState.useOIT;e._environmentState.useOIT=!1,e.resolveFramebuffers(c),e._environmentState.useOIT=d;let p=a.readCenterPixel(f);return i.endFrame(),o.pickingMetadata=!1,wz.decodeMetadataValues(n.classProperty,p)};function mht(e,t){let{defaultView:n,context:i,frameState:o,environmentState:r}=e,{viewport:s,pickDepthFramebuffer:a}=n;e.view=n,s.x=0,s.y=0,s.width=i.drawingBufferWidth,s.height=i.drawingBufferHeight;let c=n.passState;c.viewport=qe.clone(s,c.viewport),e.clearPasses(o.passes),o.passes.pick=!0,o.passes.depth=!0,o.cullingVolume=zz(e,t,1,1,s),o.tilesetPassState=jI,e.updateEnvironment(),r.renderTranslucentDepthForPick=!0,c=a.update(i,t,s),e.updateAndExecuteCommands(c,qI),e.resolveFramebuffers(c),i.endFrame()}var pht=new vi,_ht=new Ol,ght=new rn,yht=new Ur;Ws.prototype.pickPositionWorldCoordinates=function(e,t,n){if(!e.useDepthPicking)return;let i=t.toString();if(this._pickPositionCacheDirty)this._pickPositionCache={},this._pickPositionCacheDirty=!1;else if(this._pickPositionCache.hasOwnProperty(i))return h.clone(this._pickPositionCache[i],n);let{context:o,frameState:r,camera:s,defaultView:a}=e,{uniformState:c}=o;e.view=a;let u=Vi.transformWindowToDrawingBuffer(e,t,Gz);e.pickTranslucentDepth?mht(e,u):(e.updateFrameState(),c.update(r),e.updateEnvironment()),u.y=e.drawingBufferHeight-u.y;let f;l(s.frustum.fov)?f=s.frustum.clone(pht):l(s.frustum.infiniteProjectionMatrix)?f=s.frustum.clone(_ht):l(s.frustum.width)?f=s.frustum.clone(ght):f=s.frustum.clone(yht);let{frustumCommandsList:d}=a,p=d.length;for(let g=0;g<p;++g){let x=this.getPickDepth(e,g).getDepth(o,u.x,u.y);if(l(x)&&x>0&&x<1){let b=d[g],T;return e.mode===ne.SCENE2D?(T=s.position.z,s.position.z=T-b.near+1,f.far=Math.max(1,b.far-b.near),f.near=1,c.update(r),c.updateFrustum(f)):(f.near=b.near*(g!==0?e.opaqueFrustumNearOffset:1),f.far=b.far,c.updateFrustum(f)),n=Vi.drawingBufferToWorldCoordinates(e,u,x,n),e.mode===ne.SCENE2D&&(s.position.z=T,c.update(r)),this._pickPositionCache[i]=h.clone(n),n}}this._pickPositionCache[i]=void 0};var xht=new fe;Ws.prototype.pickPosition=function(e,t,n){if(n=this.pickPositionWorldCoordinates(e,t,n),l(n)&&e.mode!==ne.SCENE3D){h.fromElements(n.y,n.z,n.x,n);let i=e.mapProjection,o=i.ellipsoid,r=i.unproject(n,xht);o.cartographicToCartesian(r,n)}return n};function m0e(e,t){let n,i,o=[],r=[],s=[],a=[];l(e)||(e=Number.MAX_VALUE);let c=t();for(;l(c);){let u=c.object,f=c.position,d=c.exclude;if(l(f)&&!l(u)){o.push(c);break}if(!l(u)||!l(u.primitive)||!d&&(o.push(c),0>=--e))break;let p=u.primitive,g=!1;typeof p.getGeometryInstanceAttributes=="function"&&l(u.id)&&(i=p.getGeometryInstanceAttributes(u.id),l(i)&&l(i.show)&&(g=!0,i.show=gn.toValue(!1,i.show),s.push(i))),u instanceof Zs&&(g=!0,u.show=!1,a.push(u)),g||(p.show=!1,r.push(p)),c=t()}for(n=0;n<r.length;++n)r[n].show=!0;for(n=0;n<s.length;++n)i=s[n],i.show=gn.toValue(!0,i.show);for(n=0;n<a.length;++n)a[n].show=!0;return o}Ws.prototype.drillPick=function(e,t,n,i,o){let r=this;return m0e(n,function(){let c=r.pick(e,t,i,o);if(l(c))return{object:c,position:void 0,exclude:!1}}).map(function(c){return c.object})};var d0e=new h,bht=new h;function Tht(e,t,n){this.ray=e,this.width=t,this.tilesets=n,this.ready=!1;let i=this;this.promise=new Promise(o=>{i._completePick=()=>{o()}})}function p0e(e,t,n,i){let o=t.direction,r=h.mostOrthogonalAxis(o,d0e),s=h.cross(o,r,d0e),a=h.cross(o,s,bht);return i.position=t.origin,i.direction=o,i.up=a,i.right=s,i.frustum.width=y(n,h0e),i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC)}function Aht(e,t,n){let i=t.frameState,{ray:o,width:r,tilesets:s}=n,a=e._pickOffscreenView.camera,c=p0e(e,o,r,a),u=oht;u.camera=a,u.cullingVolume=c;let f=!0,d=s.length;for(let p=0;p<d;++p){let g=s[p];g.show&&t.primitives.contains(g)&&(g.updateForPass(i,u),f=f&&u.ready)}return f&&n._completePick(),f}Ws.prototype.updateMostDetailedRayPicks=function(e){let t=this._mostDetailedRayPicks;for(let n=0;n<t.length;++n)Aht(this,e,t[n])&&t.splice(n--,1)};function _0e(e,t,n){for(let i=0;i<e.length;++i){let o=e.get(i);o.show&&(l(o.isCesium3DTileset)?(!l(t)||t.indexOf(o)===-1)&&n.push(o):o instanceof hu&&_0e(o,t,n))}}function Wz(e,t,n,i,o,r){let s=[];if(_0e(t.primitives,i,s),s.length===0)return Promise.resolve(r());let a=new Tht(n,o,s);return e._mostDetailedRayPicks.push(a),a.promise.then(function(){return r()})}function Cht(e,t){return!l(e)||!l(t)||t.length===0?!1:t.indexOf(e)>-1||t.indexOf(e.primitive)>-1||t.indexOf(e.id)>-1}function Eht(e,t,n,i,o,r,s){let{context:a,frameState:c}=t,u=a.uniformState,f=e._pickOffscreenView;t.view=f,p0e(e,n,o,f.camera);let d=qe.clone(f.viewport,Hz),p=f.pickFramebuffer.begin(d,f.viewport);t.jobScheduler.disableThisFrame(),t.updateFrameState(),c.invertClassification=!1,c.passes.pick=!0,c.passes.offscreen=!0,s?c.tilesetPassState=rht:c.tilesetPassState=jI,u.update(c),t.updateEnvironment(),t.updateAndExecuteCommands(p,qI),t.resolveFramebuffers(p);let g,m=f.pickFramebuffer.end(d);if(t.context.depthTexture){let{frustumCommandsList:x}=f,b=x.length;for(let T=0;T<b;++T){let C=e.getPickDepth(t,T).getDepth(a,0,0);if(l(C)&&C>0&&C<1){let S=x[T],v=S.near*(T!==0?t.opaqueFrustumNearOffset:1),D=S.far,O=v+C*(D-v);g=mn.getPoint(n,O);break}}}if(t.view=t.defaultView,a.endFrame(),l(m)||l(g))return{object:m,position:g,exclude:!l(g)&&r||Cht(m,i)}}function g0e(e,t,n,i,o,r,s,a){return m0e(i,function(){return Eht(e,t,n,o,r,s,a)})}function WE(e,t,n,i,o,r,s){let a=g0e(e,t,n,1,i,o,r,s);if(a.length>0)return a[0]}function y0e(e,t,n,i,o,r,s,a){return g0e(e,t,n,i,o,r,s,a)}function jz(e,t){return new Promise((n,i)=>{t.then(function(o){let r=e.postRender.addEventListener(function(){r(),n(o)});e.requestRender()}).catch(function(o){i(o)})})}Ws.prototype.pickFromRay=function(e,t,n,i){return WE(this,e,t,n,i,!1,!1)};Ws.prototype.drillPickFromRay=function(e,t,n,i,o){return y0e(this,e,t,n,i,o,!1,!1)};Ws.prototype.pickFromRayMostDetailed=function(e,t,n,i){let o=this;return t=mn.clone(t),n=l(n)?n.slice():n,jz(e,Wz(o,e,t,n,i,function(){return WE(o,e,t,n,i,!1,!0)}))};Ws.prototype.drillPickFromRayMostDetailed=function(e,t,n,i,o){let r=this;return t=mn.clone(t),i=l(i)?i.slice():i,jz(e,Wz(r,e,t,i,o,function(){return y0e(r,e,t,n,i,o,!1,!0)}))};var Sht=new h,vht=new h,wht=new mn,x0e=new fe;function MX(e,t){let n=e.ellipsoid,i=ui._defaultMaxTerrainHeight,o=n.geodeticSurfaceNormalCartographic(t,vht),r=fe.toCartesian(t,n,Sht),s=wht;s.origin=r,s.direction=o;let a=new mn;return mn.getPoint(s,i,a.origin),h.negate(o,a.direction),a}function b0e(e,t){let n=e.ellipsoid,i=fe.fromCartesian(t,n,x0e);return MX(e,i)}function T0e(e,t){let n=e.ellipsoid;return fe.fromCartesian(t,n,x0e).height}function Dht(e,t,n,i,o){let r=MX(t,n);return Wz(e,t,r,i,o,function(){let s=WE(e,t,r,i,o,!0,!0);if(l(s))return T0e(t,s.position)})}function Iht(e,t,n,i,o,r){let s=b0e(t,n);return Wz(e,t,s,i,o,function(){let a=WE(e,t,s,i,o,!0,!0);if(l(a))return h.clone(a.position,r)})}Ws.prototype.sampleHeight=function(e,t,n,i){let o=MX(e,t),r=WE(this,e,o,n,i,!0,!1);if(l(r))return T0e(e,r.position)};Ws.prototype.clampToHeight=function(e,t,n,i,o){let r=b0e(e,t),s=WE(this,e,r,n,i,!0,!1);if(l(s))return h.clone(s.position,o)};Ws.prototype.sampleHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Dht(this,e,t[s],n,i);return jz(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c].height=s[c];return t}))};Ws.prototype.clampToHeightMostDetailed=function(e,t,n,i){n=l(n)?n.slice():n;let o=t.length,r=new Array(o);for(let s=0;s<o;++s)r[s]=Iht(this,e,t[s],n,i,t[s]);return jz(e,Promise.all(r).then(function(s){let a=s.length;for(let c=0;c<a;++c)t[c]=s[c];return t}))};Ws.prototype.destroy=function(){this._pickOffscreenView=this._pickOffscreenView&&this._pickOffscreenView.destroy()};var qz=Ws;var Yz=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_acesTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var Xz=`precision highp float; + +uniform sampler2D randomTexture; +uniform sampler2D depthTexture; +uniform float intensity; +uniform float bias; +uniform float lengthCap; +uniform float stepSize; +uniform float frustumLength; + +vec3 pixelToEye(vec2 screenCoordinate) +{ + vec2 uv = screenCoordinate / czm_viewport.zw; + float depth = czm_readDepth(depthTexture, uv); + vec2 xy = 2.0 * uv - vec2(1.0); + vec4 posEC = czm_inverseProjection * vec4(xy, depth, 1.0); + return posEC.xyz / posEC.w; +} + +// Reconstruct surface normal in eye coordinates, avoiding edges +vec3 getNormalXEdge(vec3 positionEC) +{ + // Find the 3D surface positions at adjacent screen pixels + vec2 centerCoord = gl_FragCoord.xy; + vec3 positionLeft = pixelToEye(centerCoord + vec2(-1.0, 0.0)); + vec3 positionRight = pixelToEye(centerCoord + vec2(1.0, 0.0)); + vec3 positionUp = pixelToEye(centerCoord + vec2(0.0, 1.0)); + vec3 positionDown = pixelToEye(centerCoord + vec2(0.0, -1.0)); + + // Compute potential tangent vectors + vec3 dx0 = positionEC - positionLeft; + vec3 dx1 = positionRight - positionEC; + vec3 dy0 = positionEC - positionDown; + vec3 dy1 = positionUp - positionEC; + + // The shorter tangent is more likely to be on the same surface + vec3 dx = length(dx0) < length(dx1) ? dx0 : dx1; + vec3 dy = length(dy0) < length(dy1) ? dy0 : dy1; + + return normalize(cross(dx, dy)); +} + +void main(void) +{ + vec3 positionEC = pixelToEye(gl_FragCoord.xy); + + if (positionEC.z > frustumLength) + { + out_FragColor = vec4(1.0); + return; + } + + vec3 normalEC = getNormalXEdge(positionEC); + + float ao = 0.0; + + const int ANGLE_STEPS = 4; + float angleStepScale = 1.0 / float(ANGLE_STEPS); + float angleStep = angleStepScale * czm_twoPi; + float cosStep = cos(angleStep); + float sinStep = sin(angleStep); + mat2 rotateStep = mat2(cosStep, sinStep, -sinStep, cosStep); + + // Initial sampling direction (different for each pixel) + const float randomTextureSize = 255.0; + vec2 randomTexCoord = fract(gl_FragCoord.xy / randomTextureSize); + float randomVal = texture(randomTexture, randomTexCoord).x; + vec2 sampleDirection = vec2(cos(angleStep * randomVal), sin(angleStep * randomVal)); + + // Loop over sampling directions + for (int i = 0; i < ANGLE_STEPS; i++) + { + sampleDirection = rotateStep * sampleDirection; + + float localAO = 0.0; + vec2 radialStep = stepSize * sampleDirection; + + for (int j = 0; j < 6; j++) + { + // Step along sampling direction, away from output pixel + vec2 newCoords = floor(gl_FragCoord.xy + float(j + 1) * radialStep) + vec2(0.5); + + // Exit if we stepped off the screen + if (clamp(newCoords, vec2(0.0), czm_viewport.zw) != newCoords) + { + break; + } + + vec3 stepPositionEC = pixelToEye(newCoords); + vec3 stepVector = stepPositionEC - positionEC; + float stepLength = length(stepVector); + + if (stepLength > lengthCap) + { + break; + } + + float dotVal = clamp(dot(normalEC, normalize(stepVector)), 0.0, 1.0); + if (dotVal < bias) + { + dotVal = 0.0; + } + + float weight = stepLength / lengthCap; + weight = 1.0 - weight * weight; + localAO = max(localAO, dotVal * weight); + } + ao += localAO; + } + + ao *= angleStepScale; + ao = 1.0 - clamp(ao, 0.0, 1.0); + ao = pow(ao, intensity); + out_FragColor = vec4(vec3(ao), 1.0); +} +`;var Kz=`uniform sampler2D colorTexture; +uniform sampler2D ambientOcclusionTexture; +uniform bool ambientOcclusionOnly; +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec4 ao = texture(ambientOcclusionTexture, v_textureCoordinates); + out_FragColor = ambientOcclusionOnly ? ao : ao * color; +} +`;var Zz=`uniform sampler2D colorTexture; +uniform float gradations; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = vec4(rgb, 1.0); + return; + } +#endif + float luminance = czm_luminance(rgb); + float darkness = luminance * gradations; + darkness = (darkness - fract(darkness)) / gradations; + out_FragColor = vec4(vec3(darkness), 1.0); +} +`;var $z=`uniform sampler2D colorTexture; +uniform sampler2D bloomTexture; +uniform bool glowOnly; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + +#ifdef CZM_SELECTED_FEATURE + if (czm_selected()) { + out_FragColor = color; + return; + } +#endif + + vec4 bloom = texture(bloomTexture, v_textureCoordinates); + out_FragColor = glowOnly ? bloom : bloom + color; +} +`;var Qz=`uniform sampler2D colorTexture; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 target = vec3(0.0); + out_FragColor = vec4(mix(target, rgb, brightness), 1.0); +} +`;var Jz=`uniform sampler2D colorTexture; +uniform float contrast; +uniform float brightness; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec3 sceneColor = texture(colorTexture, v_textureCoordinates).xyz; + sceneColor = czm_RGBToHSB(sceneColor); + sceneColor.z += brightness; + sceneColor = czm_HSBToRGB(sceneColor); + + float factor = (259.0 * (contrast + 255.0)) / (255.0 * (259.0 - contrast)); + sceneColor = factor * (sceneColor - vec3(0.5)) + vec3(0.5); + out_FragColor = vec4(sceneColor, 1.0); +} +`;var e4=`uniform sampler2D colorTexture; +uniform sampler2D blurTexture; +uniform sampler2D depthTexture; +uniform float focalDistance; + +in vec2 v_textureCoordinates; + +vec4 toEye(vec2 uv, float depth) +{ + vec2 xy = vec2((uv.x * 2.0 - 1.0), ((1.0 - uv.y) * 2.0 - 1.0)); + vec4 posInCamera = czm_inverseProjection * vec4(xy, depth, 1.0); + posInCamera = posInCamera / posInCamera.w; + return posInCamera; +} + +float computeDepthBlur(float depth) +{ + float f; + if (depth < focalDistance) + { + f = (focalDistance - depth) / (focalDistance - czm_currentFrustum.x); + } + else + { + f = (depth - focalDistance) / (czm_currentFrustum.y - focalDistance); + f = pow(f, 0.1); + } + f *= f; + f = clamp(f, 0.0, 1.0); + return pow(f, 0.5); +} + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + vec4 posInCamera = toEye(v_textureCoordinates, depth); + float d = computeDepthBlur(-posInCamera.z); + out_FragColor = mix(texture(colorTexture, v_textureCoordinates), texture(blurTexture, v_textureCoordinates), d); +} +`;var t4=`uniform sampler2D depthTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float depth = czm_readDepth(depthTexture, v_textureCoordinates); + out_FragColor = vec4(vec3(depth), 1.0); +} +`;var n4=`uniform sampler2D depthTexture; +uniform float length; +uniform vec4 color; + +in vec2 v_textureCoordinates; + +void main(void) +{ + float directions[3]; + directions[0] = -1.0; + directions[1] = 0.0; + directions[2] = 1.0; + + float scalars[3]; + scalars[0] = 3.0; + scalars[1] = 10.0; + scalars[2] = 3.0; + + float padx = czm_pixelRatio / czm_viewport.z; + float pady = czm_pixelRatio / czm_viewport.w; + +#ifdef CZM_SELECTED_FEATURE + bool selected = false; + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + selected = selected || czm_selected(vec2(-padx, dir * pady)); + selected = selected || czm_selected(vec2(padx, dir * pady)); + selected = selected || czm_selected(vec2(dir * padx, -pady)); + selected = selected || czm_selected(vec2(dir * padx, pady)); + if (selected) + { + break; + } + } + if (!selected) + { + out_FragColor = vec4(color.rgb, 0.0); + return; + } +#endif + + float horizEdge = 0.0; + float vertEdge = 0.0; + + for (int i = 0; i < 3; ++i) + { + float dir = directions[i]; + float scale = scalars[i]; + + horizEdge -= texture(depthTexture, v_textureCoordinates + vec2(-padx, dir * pady)).x * scale; + horizEdge += texture(depthTexture, v_textureCoordinates + vec2(padx, dir * pady)).x * scale; + + vertEdge -= texture(depthTexture, v_textureCoordinates + vec2(dir * padx, -pady)).x * scale; + vertEdge += texture(depthTexture, v_textureCoordinates + vec2(dir * padx, pady)).x * scale; + } + + float len = sqrt(horizEdge * horizEdge + vertEdge * vertEdge); + out_FragColor = vec4(color.rgb, len > length ? color.a : 0.0); +} +`;var i4=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See slides 142 and 143: +// http://www.gdcvault.com/play/1012459/Uncharted_2__HDR_Lighting + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + + const float A = 0.22; // shoulder strength + const float B = 0.30; // linear strength + const float C = 0.10; // linear angle + const float D = 0.20; // toe strength + const float E = 0.01; // toe numerator + const float F = 0.30; // toe denominator + + const float white = 11.2; // linear white point value + + vec3 c = ((color * (A * color + C * B) + D * E) / (color * ( A * color + B) + D * F)) - E / F; + float w = ((white * (A * white + C * B) + D * E) / (white * ( A * white + B) + D * F)) - E / F; + + c = czm_inverseGamma(c / w); + out_FragColor = vec4(c, fragmentColor.a); +} +`;var o4=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; + +#ifdef AUTO_EXPOSURE + color /= texture(autoExposure, vec2(0.5)).r; +#else + color *= vec3(exposure); +#endif + color = czm_pbrNeutralTonemapping(color); + color = czm_inverseGamma(color); + + out_FragColor = vec4(color, fragmentColor.a); +} +`;var r4=`in vec2 v_textureCoordinates; + +uniform sampler2D colorTexture; + +const float fxaaQualitySubpix = 0.5; +const float fxaaQualityEdgeThreshold = 0.125; +const float fxaaQualityEdgeThresholdMin = 0.0833; + +void main() +{ + vec2 fxaaQualityRcpFrame = vec2(1.0) / czm_viewport.zw; + vec4 color = FxaaPixelShader( + v_textureCoordinates, + colorTexture, + fxaaQualityRcpFrame, + fxaaQualitySubpix, + fxaaQualityEdgeThreshold, + fxaaQualityEdgeThresholdMin); + float alpha = texture(colorTexture, v_textureCoordinates).a; + out_FragColor = vec4(color.rgb, alpha); +} +`;var mb=`#define SAMPLES 8 + +uniform float delta; +uniform float sigma; +uniform float direction; // 0.0 for x direction, 1.0 for y direction + +uniform sampler2D colorTexture; + +#ifdef USE_STEP_SIZE +uniform float stepSize; +#else +uniform vec2 step; +#endif + +in vec2 v_textureCoordinates; + +// Incremental Computation of the Gaussian: +// https://developer.nvidia.com/gpugems/GPUGems3/gpugems3_ch40.html + +void main() +{ + vec2 st = v_textureCoordinates; + vec2 dir = vec2(1.0 - direction, direction); + +#ifdef USE_STEP_SIZE + vec2 step = vec2(stepSize * (czm_pixelRatio / czm_viewport.zw)); +#else + vec2 step = step; +#endif + + vec3 g; + g.x = 1.0 / (sqrt(czm_twoPi) * sigma); + g.y = exp((-0.5 * delta * delta) / (sigma * sigma)); + g.z = g.y * g.y; + + vec4 result = texture(colorTexture, st) * g.x; + for (int i = 1; i < SAMPLES; ++i) + { + g.xy *= g.yz; + + vec2 offset = float(i) * dir * step; + result += texture(colorTexture, st - offset) * g.x; + result += texture(colorTexture, st + offset) * g.x; + } + + out_FragColor = result; +} +`;var s4=`uniform sampler2D colorTexture; +uniform sampler2D dirtTexture; +uniform sampler2D starTexture; +uniform vec2 dirtTextureDimensions; +uniform float distortion; +uniform float ghostDispersal; +uniform float haloWidth; +uniform float dirtAmount; +uniform float earthRadius; +uniform float intensity; + +in vec2 v_textureCoordinates; + +// whether it is in space or not +// 6500000.0 is empirical value +#define DISTANCE_TO_SPACE 6500000.0 + +// return ndc from world coordinate biased earthRadius +vec4 getNDCFromWC(vec3 WC, float earthRadius) +{ + vec4 positionEC = czm_view * vec4(WC, 1.0); + positionEC = vec4(positionEC.x + earthRadius, positionEC.y, positionEC.z, 1.0); + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + return czm_viewportOrthographic * vec4(positionWC.xy, -positionWC.z, 1.0); +} + +// Check if current pixel is included Earth +// if then mask it gradually +float isInEarth(vec2 texcoord, vec2 sceneSize) +{ + vec2 NDC = texcoord * 2.0 - 1.0; + vec4 earthPosSC = getNDCFromWC(vec3(0.0), 0.0); + vec4 earthPosSCEdge = getNDCFromWC(vec3(0.0), earthRadius * 1.5); + NDC.xy -= earthPosSC.xy; + + float X = abs(NDC.x) * sceneSize.x; + float Y = abs(NDC.y) * sceneSize.y; + + return clamp(0.0, 1.0, max(sqrt(X * X + Y * Y) / max(abs(earthPosSCEdge.x * sceneSize.x), 1.0) - 0.8 , 0.0)); +} + +// For Chromatic effect +vec4 textureDistorted(sampler2D tex, vec2 texcoord, vec2 direction, vec3 distortion, bool isSpace) +{ + vec2 sceneSize = czm_viewport.zw; + vec3 color; + if(isSpace) + { + color.r = isInEarth(texcoord + direction * distortion.r, sceneSize) * texture(tex, texcoord + direction * distortion.r).r; + color.g = isInEarth(texcoord + direction * distortion.g, sceneSize) * texture(tex, texcoord + direction * distortion.g).g; + color.b = isInEarth(texcoord + direction * distortion.b, sceneSize) * texture(tex, texcoord + direction * distortion.b).b; + } + else + { + color.r = texture(tex, texcoord + direction * distortion.r).r; + color.g = texture(tex, texcoord + direction * distortion.g).g; + color.b = texture(tex, texcoord + direction * distortion.b).b; + } + return vec4(clamp(color, 0.0, 1.0), 0.0); +} + +void main(void) +{ + vec4 originalColor = texture(colorTexture, v_textureCoordinates); + vec3 rgb = originalColor.rgb; + bool isSpace = length(czm_viewerPositionWC.xyz) > DISTANCE_TO_SPACE; + + // Sun position + vec4 sunPos = czm_morphTime == 1.0 ? vec4(czm_sunPositionWC, 1.0) : vec4(czm_sunPositionColumbusView.zxy, 1.0); + vec4 sunPositionEC = czm_view * sunPos; + vec4 sunPositionWC = czm_eyeToWindowCoordinates(sunPositionEC); + sunPos = czm_viewportOrthographic * vec4(sunPositionWC.xy, -sunPositionWC.z, 1.0); + + // If sun is not in the screen space, use original color. + if(!isSpace || !((sunPos.x >= -1.1 && sunPos.x <= 1.1) && (sunPos.y >= -1.1 && sunPos.y <= 1.1))) + { + // Lens flare is disabled when not in space until #5932 is fixed. + // https://github.com/CesiumGS/cesium/issues/5932 + out_FragColor = originalColor; + return; + } + + vec2 texcoord = vec2(1.0) - v_textureCoordinates; + vec2 pixelSize = czm_pixelRatio / czm_viewport.zw; + vec2 invPixelSize = 1.0 / pixelSize; + vec3 distortionVec = pixelSize.x * vec3(-distortion, 0.0, distortion); + + // ghost vector to image centre: + vec2 ghostVec = (vec2(0.5) - texcoord) * ghostDispersal; + vec3 direction = normalize(vec3(ghostVec, 0.0)); + + // sample ghosts: + vec4 result = vec4(0.0); + vec4 ghost = vec4(0.0); + for (int i = 0; i < 4; ++i) + { + vec2 offset = fract(texcoord + ghostVec * float(i)); + // Only bright spots from the centre of the source image + ghost += textureDistorted(colorTexture, offset, direction.xy, distortionVec, isSpace); + } + result += ghost; + + // sample halo + vec2 haloVec = normalize(ghostVec) * haloWidth; + float weightForHalo = length(vec2(0.5) - fract(texcoord + haloVec)) / length(vec2(0.5)); + weightForHalo = pow(1.0 - weightForHalo, 5.0); + + result += textureDistorted(colorTexture, texcoord + haloVec, direction.xy, distortionVec, isSpace) * weightForHalo * 1.5; + + // dirt on lens + vec2 dirtTexCoords = (v_textureCoordinates * invPixelSize) / dirtTextureDimensions; + if (dirtTexCoords.x > 1.0) + { + dirtTexCoords.x = mod(floor(dirtTexCoords.x), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.x) : fract(dirtTexCoords.x); + } + if (dirtTexCoords.y > 1.0) + { + dirtTexCoords.y = mod(floor(dirtTexCoords.y), 2.0) == 1.0 ? 1.0 - fract(dirtTexCoords.y) : fract(dirtTexCoords.y); + } + result += dirtAmount * texture(dirtTexture, dirtTexCoords); + + // Rotating starburst texture's coordinate + // dot(czm_view[0].xyz, vec3(0.0, 0.0, 1.0)) + dot(czm_view[1].xyz, vec3(0.0, 1.0, 0.0)) + float camrot = czm_view[0].z + czm_view[1].y; + float cosValue = cos(camrot); + float sinValue = sin(camrot); + mat3 rotation = mat3( + cosValue, -sinValue, 0.0, + sinValue, cosValue, 0.0, + 0.0, 0.0, 1.0 + ); + + vec3 st1 = vec3(v_textureCoordinates * 2.0 - vec2(1.0), 1.0); + vec3 st2 = vec3((rotation * st1).xy, 1.0); + vec3 st3 = st2 * 0.5 + vec3(0.5); + vec2 lensStarTexcoord = st3.xy; + float weightForLensFlare = length(vec3(sunPos.xy, 0.0)); + float oneMinusWeightForLensFlare = max(1.0 - weightForLensFlare, 0.0); + + if (!isSpace) + { + result *= oneMinusWeightForLensFlare * intensity * 0.2; + } + else + { + result *= oneMinusWeightForLensFlare * intensity; + result *= texture(starTexture, lensStarTexcoord) * pow(weightForLensFlare, 1.0) * max((1.0 - length(vec3(st1.xy, 0.0))), 0.0) * 2.0; + } + + result += texture(colorTexture, v_textureCoordinates); + + out_FragColor = result; +} +`;var a4=`uniform sampler2D colorTexture; +uniform vec3 white; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 4: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = (color * (1.0 + color / white)) / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var c4=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +float rand(vec2 co) +{ + return fract(sin(dot(co.xy ,vec2(12.9898, 78.233))) * 43758.5453); +} + +void main(void) +{ + float noiseValue = rand(v_textureCoordinates + sin(czm_frameNumber)) * 0.1; + vec3 rgb = texture(colorTexture, v_textureCoordinates).rgb; + vec3 green = vec3(0.0, 1.0, 0.0); + out_FragColor = vec4((noiseValue + rgb) * green, 1.0); +} +`;var l4=`uniform sampler2D colorTexture; + +in vec2 v_textureCoordinates; + +#ifdef AUTO_EXPOSURE +uniform sampler2D autoExposure; +#else +uniform float exposure; +#endif + +// See equation 3: +// http://www.cs.utah.edu/~reinhard/cdrom/tonemap.pdf + +void main() +{ + vec4 fragmentColor = texture(colorTexture, v_textureCoordinates); + vec3 color = fragmentColor.rgb; +#ifdef AUTO_EXPOSURE + float exposure = texture(autoExposure, vec2(0.5)).r; + color /= exposure; +#else + color *= vec3(exposure); +#endif + color = color / (1.0 + color); + color = czm_inverseGamma(color); + out_FragColor = vec4(color, fragmentColor.a); +} +`;var u4=`uniform sampler2D colorTexture; +uniform sampler2D silhouetteTexture; + +in vec2 v_textureCoordinates; + +void main(void) +{ + vec4 silhouetteColor = texture(silhouetteTexture, v_textureCoordinates); + vec4 color = texture(colorTexture, v_textureCoordinates); + out_FragColor = mix(color, silhouetteColor, silhouetteColor.a); +} +`;/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS ``AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */var f4=`/** + * @license + * Copyright (c) 2014-2015, NVIDIA CORPORATION. All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions + * are met: + * * Redistributions of source code must retain the above copyright + * notice, this list of conditions and the following disclaimer. + * * Redistributions in binary form must reproduce the above copyright + * notice, this list of conditions and the following disclaimer in the + * documentation and/or other materials provided with the distribution. + * * Neither the name of NVIDIA CORPORATION nor the names of its + * contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS \`\`AS IS'' AND ANY + * EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR + * PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR + * CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, + * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, + * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR + * PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY + * OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT + * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE + * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. + */ + +// NVIDIA GameWorks Graphics Samples GitHub link: https://github.com/NVIDIAGameWorks/GraphicsSamples +// Original FXAA 3.11 shader link: https://github.com/NVIDIAGameWorks/GraphicsSamples/blob/master/samples/es3-kepler/FXAA/FXAA3_11.h + +// Steps used to integrate into Cesium: +// * The following defines are set: +// #define FXAA_PC 1 +// #define FXAA_WEBGL_1 1 +// #define FXAA_GREEN_AS_LUMA 1 +// #define FXAA_EARLY_EXIT 1 +// #define FXAA_GLSL_120 1 +// * All other preprocessor directives besides the FXAA_QUALITY__P* directives were removed. +// * Double underscores are invalid for preprocessor directives so replace them with a single underscore. Replace +// /FXAA_QUALITY__P(.*)/g with /FXAA_QUALITY__P$1/. +// * There are no implicit conversions from ivec* to vec* so replace: +// #define FxaaInt2 ivec2 +// with +// #define FxaaInt2 vec2 +// * The texture2DLod function is only available in vertex shaders so replace: +// #define FxaaTexTop(t, p) texture2DLod(t, p, 0.0) +// #define FxaaTexOff(t, p, o, r) texture2DLod(t, p + (o * r), 0.0) +// with +// #define FxaaTexTop(t, p) texture(t, p) +// #define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) +// * FXAA_QUALITY_PRESET is prepended in the javascript code. We may want to expose that setting in the future. +// * The following parameters to FxaaPixelShader are unused and can be removed: +// fxaaConsolePosPos +// fxaaConsoleRcpFrameOpt +// fxaaConsoleRcpFrameOpt2 +// fxaaConsole360RcpFrameOpt2 +// fxaaConsoleEdgeSharpness +// fxaaConsoleEdgeThreshold +// fxaaConsoleEdgeThresholdMi +// fxaaConsole360ConstDir + +// +// Choose the quality preset. +// This needs to be compiled into the shader as it effects code. +// Best option to include multiple presets is to +// in each shader define the preset, then include this file. +// +// OPTIONS +// ----------------------------------------------------------------------- +// 10 to 15 - default medium dither (10=fastest, 15=highest quality) +// 20 to 29 - less dither, more expensive (20=fastest, 29=highest quality) +// 39 - no dither, very expensive +// +// NOTES +// ----------------------------------------------------------------------- +// 12 = slightly faster then FXAA 3.9 and higher edge quality (default) +// 13 = about same speed as FXAA 3.9 and better than 12 +// 23 = closest to FXAA 3.9 visually and performance wise +// _ = the lowest digit is directly related to performance +// _ = the highest digit is directly related to style +// +//#define FXAA_QUALITY_PRESET 12 + + +#if (FXAA_QUALITY_PRESET == 10) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 3.0 + #define FXAA_QUALITY_P2 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 11) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 3.0 + #define FXAA_QUALITY_P3 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 12) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 4.0 + #define FXAA_QUALITY_P4 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 13) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 4.0 + #define FXAA_QUALITY_P5 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 14) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 4.0 + #define FXAA_QUALITY_P6 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 15) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 12.0 +#endif +#if (FXAA_QUALITY_PRESET == 20) + #define FXAA_QUALITY_PS 3 + #define FXAA_QUALITY_P0 1.5 + #define FXAA_QUALITY_P1 2.0 + #define FXAA_QUALITY_P2 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 21) + #define FXAA_QUALITY_PS 4 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 22) + #define FXAA_QUALITY_PS 5 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 23) + #define FXAA_QUALITY_PS 6 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 24) + #define FXAA_QUALITY_PS 7 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 3.0 + #define FXAA_QUALITY_P6 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 25) + #define FXAA_QUALITY_PS 8 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 4.0 + #define FXAA_QUALITY_P7 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 26) + #define FXAA_QUALITY_PS 9 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 4.0 + #define FXAA_QUALITY_P8 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 27) + #define FXAA_QUALITY_PS 10 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 4.0 + #define FXAA_QUALITY_P9 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 28) + #define FXAA_QUALITY_PS 11 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 4.0 + #define FXAA_QUALITY_P10 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 29) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.5 + #define FXAA_QUALITY_P2 2.0 + #define FXAA_QUALITY_P3 2.0 + #define FXAA_QUALITY_P4 2.0 + #define FXAA_QUALITY_P5 2.0 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif +#if (FXAA_QUALITY_PRESET == 39) + #define FXAA_QUALITY_PS 12 + #define FXAA_QUALITY_P0 1.0 + #define FXAA_QUALITY_P1 1.0 + #define FXAA_QUALITY_P2 1.0 + #define FXAA_QUALITY_P3 1.0 + #define FXAA_QUALITY_P4 1.0 + #define FXAA_QUALITY_P5 1.5 + #define FXAA_QUALITY_P6 2.0 + #define FXAA_QUALITY_P7 2.0 + #define FXAA_QUALITY_P8 2.0 + #define FXAA_QUALITY_P9 2.0 + #define FXAA_QUALITY_P10 4.0 + #define FXAA_QUALITY_P11 8.0 +#endif + +#define FxaaBool bool +#define FxaaFloat float +#define FxaaFloat2 vec2 +#define FxaaFloat3 vec3 +#define FxaaFloat4 vec4 +#define FxaaHalf float +#define FxaaHalf2 vec2 +#define FxaaHalf3 vec3 +#define FxaaHalf4 vec4 +#define FxaaInt2 vec2 +#define FxaaTex sampler2D + +#define FxaaSat(x) clamp(x, 0.0, 1.0) +#define FxaaTexTop(t, p) texture(t, p) +#define FxaaTexOff(t, p, o, r) texture(t, p + (o * r)) + +FxaaFloat FxaaLuma(FxaaFloat4 rgba) { return rgba.y; } + +FxaaFloat4 FxaaPixelShader( + // + // Use noperspective interpolation here (turn off perspective interpolation). + // {xy} = center of pixel + FxaaFloat2 pos, + // + // Input color texture. + // {rgb_} = color in linear or perceptual color space + // if (FXAA_GREEN_AS_LUMA == 0) + // {___a} = luma in perceptual color space (not linear) + FxaaTex tex, + // + // Only used on FXAA Quality. + // This must be from a constant/uniform. + // {x_} = 1.0/screenWidthInPixels + // {_y} = 1.0/screenHeightInPixels + FxaaFloat2 fxaaQualityRcpFrame, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_SUBPIX define. + // It is here now to allow easier tuning. + // Choose the amount of sub-pixel aliasing removal. + // This can effect sharpness. + // 1.00 - upper limit (softer) + // 0.75 - default amount of filtering + // 0.50 - lower limit (sharper, less sub-pixel aliasing removal) + // 0.25 - almost off + // 0.00 - completely off + FxaaFloat fxaaQualitySubpix, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD define. + // It is here now to allow easier tuning. + // The minimum amount of local contrast required to apply algorithm. + // 0.333 - too little (faster) + // 0.250 - low quality + // 0.166 - default + // 0.125 - high quality + // 0.063 - overkill (slower) + FxaaFloat fxaaQualityEdgeThreshold, + // + // Only used on FXAA Quality. + // This used to be the FXAA_QUALITY_EDGE_THRESHOLD_MIN define. + // It is here now to allow easier tuning. + // Trims the algorithm from processing darks. + // 0.0833 - upper limit (default, the start of visible unfiltered edges) + // 0.0625 - high quality (faster) + // 0.0312 - visible limit (slower) + // Special notes when using FXAA_GREEN_AS_LUMA, + // Likely want to set this to zero. + // As colors that are mostly not-green + // will appear very dark in the green channel! + // Tune by looking at mostly non-green content, + // then start at zero and increase until aliasing is a problem. + FxaaFloat fxaaQualityEdgeThresholdMin +) { +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posM; + posM.x = pos.x; + posM.y = pos.y; + FxaaFloat4 rgbyM = FxaaTexTop(tex, posM); + #define lumaM rgbyM.y + FxaaFloat lumaS = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 0), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaN = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 0,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 0), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat maxSM = max(lumaS, lumaM); + FxaaFloat minSM = min(lumaS, lumaM); + FxaaFloat maxESM = max(lumaE, maxSM); + FxaaFloat minESM = min(lumaE, minSM); + FxaaFloat maxWN = max(lumaN, lumaW); + FxaaFloat minWN = min(lumaN, lumaW); + FxaaFloat rangeMax = max(maxWN, maxESM); + FxaaFloat rangeMin = min(minWN, minESM); + FxaaFloat rangeMaxScaled = rangeMax * fxaaQualityEdgeThreshold; + FxaaFloat range = rangeMax - rangeMin; + FxaaFloat rangeMaxClamped = max(fxaaQualityEdgeThresholdMin, rangeMaxScaled); + FxaaBool earlyExit = range < rangeMaxClamped; +/*--------------------------------------------------------------------------*/ + if(earlyExit) + return rgbyM; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1, 1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaNE = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2( 1,-1), fxaaQualityRcpFrame.xy)); + FxaaFloat lumaSW = FxaaLuma(FxaaTexOff(tex, posM, FxaaInt2(-1, 1), fxaaQualityRcpFrame.xy)); +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNS = lumaN + lumaS; + FxaaFloat lumaWE = lumaW + lumaE; + FxaaFloat subpixRcpRange = 1.0/range; + FxaaFloat subpixNSWE = lumaNS + lumaWE; + FxaaFloat edgeHorz1 = (-2.0 * lumaM) + lumaNS; + FxaaFloat edgeVert1 = (-2.0 * lumaM) + lumaWE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNESE = lumaNE + lumaSE; + FxaaFloat lumaNWNE = lumaNW + lumaNE; + FxaaFloat edgeHorz2 = (-2.0 * lumaE) + lumaNESE; + FxaaFloat edgeVert2 = (-2.0 * lumaN) + lumaNWNE; +/*--------------------------------------------------------------------------*/ + FxaaFloat lumaNWSW = lumaNW + lumaSW; + FxaaFloat lumaSWSE = lumaSW + lumaSE; + FxaaFloat edgeHorz4 = (abs(edgeHorz1) * 2.0) + abs(edgeHorz2); + FxaaFloat edgeVert4 = (abs(edgeVert1) * 2.0) + abs(edgeVert2); + FxaaFloat edgeHorz3 = (-2.0 * lumaW) + lumaNWSW; + FxaaFloat edgeVert3 = (-2.0 * lumaS) + lumaSWSE; + FxaaFloat edgeHorz = abs(edgeHorz3) + edgeHorz4; + FxaaFloat edgeVert = abs(edgeVert3) + edgeVert4; +/*--------------------------------------------------------------------------*/ + FxaaFloat subpixNWSWNESE = lumaNWSW + lumaNESE; + FxaaFloat lengthSign = fxaaQualityRcpFrame.x; + FxaaBool horzSpan = edgeHorz >= edgeVert; + FxaaFloat subpixA = subpixNSWE * 2.0 + subpixNWSWNESE; +/*--------------------------------------------------------------------------*/ + if(!horzSpan) lumaN = lumaW; + if(!horzSpan) lumaS = lumaE; + if(horzSpan) lengthSign = fxaaQualityRcpFrame.y; + FxaaFloat subpixB = (subpixA * (1.0/12.0)) - lumaM; +/*--------------------------------------------------------------------------*/ + FxaaFloat gradientN = lumaN - lumaM; + FxaaFloat gradientS = lumaS - lumaM; + FxaaFloat lumaNN = lumaN + lumaM; + FxaaFloat lumaSS = lumaS + lumaM; + FxaaBool pairN = abs(gradientN) >= abs(gradientS); + FxaaFloat gradient = max(abs(gradientN), abs(gradientS)); + if(pairN) lengthSign = -lengthSign; + FxaaFloat subpixC = FxaaSat(abs(subpixB) * subpixRcpRange); +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posB; + posB.x = posM.x; + posB.y = posM.y; + FxaaFloat2 offNP; + offNP.x = (!horzSpan) ? 0.0 : fxaaQualityRcpFrame.x; + offNP.y = ( horzSpan) ? 0.0 : fxaaQualityRcpFrame.y; + if(!horzSpan) posB.x += lengthSign * 0.5; + if( horzSpan) posB.y += lengthSign * 0.5; +/*--------------------------------------------------------------------------*/ + FxaaFloat2 posN; + posN.x = posB.x - offNP.x * FXAA_QUALITY_P0; + posN.y = posB.y - offNP.y * FXAA_QUALITY_P0; + FxaaFloat2 posP; + posP.x = posB.x + offNP.x * FXAA_QUALITY_P0; + posP.y = posB.y + offNP.y * FXAA_QUALITY_P0; + FxaaFloat subpixD = ((-2.0)*subpixC) + 3.0; + FxaaFloat lumaEndN = FxaaLuma(FxaaTexTop(tex, posN)); + FxaaFloat subpixE = subpixC * subpixC; + FxaaFloat lumaEndP = FxaaLuma(FxaaTexTop(tex, posP)); +/*--------------------------------------------------------------------------*/ + if(!pairN) lumaNN = lumaSS; + FxaaFloat gradientScaled = gradient * 1.0/4.0; + FxaaFloat lumaMM = lumaM - lumaNN * 0.5; + FxaaFloat subpixF = subpixD * subpixE; + FxaaBool lumaMLTZero = lumaMM < 0.0; +/*--------------------------------------------------------------------------*/ + lumaEndN -= lumaNN * 0.5; + lumaEndP -= lumaNN * 0.5; + FxaaBool doneN = abs(lumaEndN) >= gradientScaled; + FxaaBool doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P1; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P1; + FxaaBool doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P1; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P1; +/*--------------------------------------------------------------------------*/ + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P2; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P2; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P2; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P2; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 3) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P3; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P3; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P3; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P3; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 4) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P4; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P4; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P4; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P4; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 5) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P5; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P5; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P5; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P5; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 6) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P6; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P6; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P6; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P6; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 7) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P7; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P7; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P7; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P7; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 8) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P8; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P8; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P8; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P8; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 9) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P9; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P9; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P9; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P9; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 10) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P10; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P10; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P10; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P10; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 11) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P11; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P11; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P11; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P11; +/*--------------------------------------------------------------------------*/ + #if (FXAA_QUALITY_PS > 12) + if(doneNP) { + if(!doneN) lumaEndN = FxaaLuma(FxaaTexTop(tex, posN.xy)); + if(!doneP) lumaEndP = FxaaLuma(FxaaTexTop(tex, posP.xy)); + if(!doneN) lumaEndN = lumaEndN - lumaNN * 0.5; + if(!doneP) lumaEndP = lumaEndP - lumaNN * 0.5; + doneN = abs(lumaEndN) >= gradientScaled; + doneP = abs(lumaEndP) >= gradientScaled; + if(!doneN) posN.x -= offNP.x * FXAA_QUALITY_P12; + if(!doneN) posN.y -= offNP.y * FXAA_QUALITY_P12; + doneNP = (!doneN) || (!doneP); + if(!doneP) posP.x += offNP.x * FXAA_QUALITY_P12; + if(!doneP) posP.y += offNP.y * FXAA_QUALITY_P12; +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } + #endif +/*--------------------------------------------------------------------------*/ + } +/*--------------------------------------------------------------------------*/ + FxaaFloat dstN = posM.x - posN.x; + FxaaFloat dstP = posP.x - posM.x; + if(!horzSpan) dstN = posM.y - posN.y; + if(!horzSpan) dstP = posP.y - posM.y; +/*--------------------------------------------------------------------------*/ + FxaaBool goodSpanN = (lumaEndN < 0.0) != lumaMLTZero; + FxaaFloat spanLength = (dstP + dstN); + FxaaBool goodSpanP = (lumaEndP < 0.0) != lumaMLTZero; + FxaaFloat spanLengthRcp = 1.0/spanLength; +/*--------------------------------------------------------------------------*/ + FxaaBool directionN = dstN < dstP; + FxaaFloat dst = min(dstN, dstP); + FxaaBool goodSpan = directionN ? goodSpanN : goodSpanP; + FxaaFloat subpixG = subpixF * subpixF; + FxaaFloat pixelOffset = (dst * (-spanLengthRcp)) + 0.5; + FxaaFloat subpixH = subpixG * fxaaQualitySubpix; +/*--------------------------------------------------------------------------*/ + FxaaFloat pixelOffsetGood = goodSpan ? pixelOffset : 0.0; + FxaaFloat pixelOffsetSubpix = max(pixelOffsetGood, subpixH); + if(!horzSpan) posM.x += pixelOffsetSubpix * lengthSign; + if( horzSpan) posM.y += pixelOffsetSubpix * lengthSign; + return FxaaFloat4(FxaaTexTop(tex, posM).xyz, lumaM); +} +`;function pb(){this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._ready=!1,this._name="czm_autoexposure",this._logDepthChanged=void 0,this._useLogDepth=void 0,this._framebuffers=void 0,this._previousLuminance=new hi,this._commands=void 0,this._clearCommand=void 0,this._minMaxLuminance=new U,this.enabled=!0,this._enabled=!0,this.minimumLuminance=.1,this.maximumLuminance=10}Object.defineProperties(pb.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},outputTexture:{get:function(){let e=this._framebuffers;if(l(e))return e[e.length-1].getColorTexture(0)}}});function A0e(e){let t=e._framebuffers;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].destroy();e._framebuffers=void 0,e._previousLuminance.destroy(),e._previousLuminance=void 0}function Pht(e,t){A0e(e);let n=e._width,i=e._height,o=t.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT,r=Math.ceil(Math.log(Math.max(n,i))/Math.log(3)),s=new Array(r);for(let c=0;c<r;++c)n=Math.max(Math.ceil(n/3),1),i=Math.max(Math.ceil(i/3),1),s[c]=new hi,s[c].update(t,n,i,1,o);let a=s[r-1].getColorTexture(0);e._previousLuminance.update(t,a.width,a.height,1,o),e._framebuffers=s}function C0e(e){let t=e._commands;if(!l(t))return;let n=t.length;for(let i=0;i<n;++i)t[i].shaderProgram.destroy();e._commands=void 0}function Rht(e,t){let n;if(t===0)n={colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions}};else{let i=e._framebuffers[t-1].getColorTexture(0);n={colorTexture:function(){return i},colorTextureDimensions:function(){return i.dimensions}}}return n.minMaxLuminance=function(){return e._minMaxLuminance},n.previousLuminance=function(){return e._previousLuminance.getColorTexture(0)},n}function Oht(e,t){let n=`uniform sampler2D colorTexture; +in vec2 v_textureCoordinates; +float sampleTexture(vec2 offset) { +`;return e===0?n+=` vec4 color = texture(colorTexture, v_textureCoordinates + offset); + return czm_luminance(color.rgb); +`:n+=` return texture(colorTexture, v_textureCoordinates + offset).r; +`,n+=`} + +`,n+=`uniform vec2 colorTextureDimensions; +uniform vec2 minMaxLuminance; +uniform sampler2D previousLuminance; +void main() { + float color = 0.0; + float xStep = 1.0 / colorTextureDimensions.x; + float yStep = 1.0 / colorTextureDimensions.y; + int count = 0; + for (int i = 0; i < 3; ++i) { + for (int j = 0; j < 3; ++j) { + vec2 offset; + offset.x = -xStep + float(i) * xStep; + offset.y = -yStep + float(j) * yStep; + if (offset.x < 0.0 || offset.x > 1.0 || offset.y < 0.0 || offset.y > 1.0) { + continue; + } + color += sampleTexture(offset); + ++count; + } + } + if (count > 0) { + color /= float(count); + } +`,e===t-1&&(n+=` float previous = texture(previousLuminance, vec2(0.5)).r; + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); + color = previous + (color - previous) / (60.0 * 1.5); + color = clamp(color, minMaxLuminance.x, minMaxLuminance.y); +`),n+=` out_FragColor = vec4(color); +} +`,n}function Mht(e,t){C0e(e);let n=e._framebuffers,i=n.length,o=new Array(i);for(let r=0;r<i;++r)o[r]=t.createViewportQuadCommand(Oht(r,i),{framebuffer:n[r].framebuffer,uniformMap:Rht(e,r)});e._commands=o}pb.prototype.clear=function(e){let t=this._framebuffers;if(!l(t))return;let n=this._clearCommand;l(n)||(n=this._clearCommand=new ei({color:new z(0,0,0,0),framebuffer:void 0}));let i=t.length;for(let o=0;o<i;++o)t[o].clear(e,n)};pb.prototype.update=function(e){let t=e.drawingBufferWidth,n=e.drawingBufferHeight;(t!==this._width||n!==this._height)&&(this._width=t,this._height=n,Pht(this,e),Mht(this,e),this._ready||(this._ready=!0)),this._minMaxLuminance.x=this.minimumLuminance,this._minMaxLuminance.y=this.maximumLuminance;let i=this._framebuffers,o=i[i.length-1];i[i.length-1]=this._previousLuminance,this._commands[this._commands.length-1].framebuffer=this._previousLuminance.framebuffer,this._previousLuminance=o};pb.prototype.execute=function(e,t){this._colorTexture=t;let n=this._commands;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o)n[o].execute(e)};pb.prototype.isDestroyed=function(){return!1};pb.prototype.destroy=function(){return A0e(this),C0e(this),ue(this)};var d4=pb;var Lht={NEAREST:0,LINEAR:1},Uf=Lht;function _b(e){e=y(e,y.EMPTY_OBJECT);let{fragmentShader:t,textureScale:n=1,pixelFormat:i=it.RGBA}=e;this._fragmentShader=t,this._uniforms=e.uniforms,this._textureScale=n,this._forcePowerOfTwo=y(e.forcePowerOfTwo,!1),this._sampleMode=y(e.sampleMode,Uf.NEAREST),this._pixelFormat=i,this._pixelDatatype=y(e.pixelDatatype,Ze.UNSIGNED_BYTE),this._clearColor=y(e.clearColor,z.BLACK),this._uniformMap=void 0,this._command=void 0,this._colorTexture=void 0,this._depthTexture=void 0,this._idTexture=void 0,this._actualUniforms={},this._dirtyUniforms=[],this._texturesToRelease=[],this._texturesToCreate=[],this._texturePromise=void 0;let o=new bc;o.scissorTest={enabled:!0,rectangle:l(e.scissorRectangle)?qe.clone(e.scissorRectangle):new qe},this._passState=o,this._ready=!1;let r=e.name;l(r)||(r=zn()),this._name=r,this._logDepthChanged=void 0,this._useLogDepth=void 0,this._selectedIdTexture=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0,this._textureCache=void 0,this._index=void 0,this.enabled=!0,this._enabled=!0}Object.defineProperties(_b.prototype,{ready:{get:function(){return this._ready}},name:{get:function(){return this._name}},fragmentShader:{get:function(){return this._fragmentShader}},uniforms:{get:function(){return this._uniforms}},textureScale:{get:function(){return this._textureScale}},forcePowerOfTwo:{get:function(){return this._forcePowerOfTwo}},sampleMode:{get:function(){return this._sampleMode}},pixelFormat:{get:function(){return this._pixelFormat}},pixelDatatype:{get:function(){return this._pixelDatatype}},clearColor:{get:function(){return this._clearColor}},scissorRectangle:{get:function(){return this._passState.scissorTest.rectangle}},outputTexture:{get:function(){if(l(this._textureCache)){let e=this._textureCache.getFramebuffer(this._name);if(l(e))return e.getColorTexture(0)}}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});var Nht=/uniform\s+sampler2D\s+depthTexture/g;_b.prototype._isSupported=function(e){return!Nht.test(this._fragmentShader)||e.depthTexture};function Fht(e,t,n){let i=t[n];return(typeof i=="string"||i instanceof HTMLCanvasElement||i instanceof HTMLImageElement||i instanceof HTMLVideoElement||i instanceof ImageData)&&e._dirtyUniforms.push(n),{get:function(){return t[n]},set:function(o){let r=t[n];t[n]=o;let s=e._actualUniforms,a=s[n];l(a)&&a!==r&&a instanceof Ot&&!l(e._textureCache.getStageByName(n))&&(e._texturesToRelease.push(a),delete s[n],delete s[`${n}Dimensions`]),r instanceof Ot&&e._texturesToRelease.push(r),typeof o=="string"||o instanceof HTMLCanvasElement||o instanceof HTMLImageElement||o instanceof HTMLVideoElement||o instanceof ImageData?e._dirtyUniforms.push(n):s[n]=o}}}function Bht(e,t){return function(){let n=e._actualUniforms[t];return typeof n=="function"?n():n}}function kht(e,t){return function(){let n=e[t]();if(l(n))return n.dimensions}}function Vht(e){if(l(e._uniformMap))return;let t={},n={},i=e._uniforms,o=e._actualUniforms;for(let r in i){if(!i.hasOwnProperty(r))continue;typeof i[r]!="function"?(t[r]=Bht(e,r),n[r]=Fht(e,i,r)):(t[r]=i[r],n[r]=i[r]),o[r]=i[r];let s=t[r]();(typeof s=="string"||s instanceof Ot||s instanceof HTMLImageElement||s instanceof HTMLCanvasElement||s instanceof HTMLVideoElement)&&(t[`${r}Dimensions`]=kht(t,r))}e._uniforms={},Object.defineProperties(e._uniforms,n),e._uniformMap=xt(t,{colorTexture:function(){return e._colorTexture},colorTextureDimensions:function(){return e._colorTexture.dimensions},depthTexture:function(){return e._depthTexture},depthTextureDimensions:function(){return e._depthTexture.dimensions},czm_idTexture:function(){return e._idTexture},czm_selectedIdTexture:function(){return e._selectedIdTexture},czm_selectedIdTextureStep:function(){return 1/e._selectedIdTexture.width}})}function Uht(e,t){return e=e.replace(/in\s+vec2\s+v_textureCoordinates;/g,""),`#define CZM_SELECTED_FEATURE +uniform sampler2D czm_idTexture; +uniform sampler2D czm_selectedIdTexture; +uniform float czm_selectedIdTextureStep; +in vec2 v_textureCoordinates; +bool czm_selected(vec2 offset) +{ + bool selected = false; + vec4 id = texture(czm_idTexture, v_textureCoordinates + offset); + for (int i = 0; i < ${t}; ++i) + { + vec4 selectedId = texture(czm_selectedIdTexture, vec2((float(i) + 0.5) * czm_selectedIdTextureStep, 0.5)); + if (all(equal(id, selectedId))) + { + return true; + } + } + return false; +} +bool czm_selected() +{ + return czm_selected(vec2(0.0)); +} + +${e}`}function zht(e,t){if(l(e._command)&&!e._logDepthChanged&&!e._selectedDirty)return;let n=e._fragmentShader;if(l(e._selectedIdTexture)){let o=e._selectedIdTexture.width;n=Uht(n,o)}let i=new Ue({defines:[e._useLogDepth?"LOG_DEPTH":""],sources:[n]});e._command=t.createViewportQuadCommand(i,{uniformMap:e._uniformMap,owner:e})}function Hht(e){let t=e._sampleMode,n,i;t===Uf.LINEAR?(n=$t.LINEAR,i=di.LINEAR):(n=$t.NEAREST,i=di.NEAREST);let o=e._sampler;(!l(o)||o.minificationFilter!==n||o.magnificationFilter!==i)&&(e._sampler=new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:n,magnificationFilter:i}))}function Ght(e,t){return function(n){e._texturesToCreate.push({name:t,source:n})}}function Wht(e,t){return function(){return e._textureCache.getOutputTexture(t)}}function jht(e,t){let n=e._texturesToRelease;for(let a=0;a<n.length;++a){let c=n[a];c=c&&c.destroy()}n.length=0;let i=e._texturesToCreate;for(let a=0;a<i.length;++a){let{name:c,source:u}=i[a];e._actualUniforms[c]=new Ot({context:t,source:u})}i.length=0;let o=e._dirtyUniforms;if(o.length===0&&!l(e._texturePromise)){e._ready=!0;return}if(o.length===0||l(e._texturePromise))return;let r=e._uniforms,s=[];for(let a=0;a<o.length;++a){let c=o[a],u=r[c],f=e._textureCache.getStageByName(u);if(l(f))e._actualUniforms[c]=Wht(e,u);else if(typeof u=="string"){let d=new De({url:u});s.push(d.fetchImage().then(Ght(e,c)))}else e._texturesToCreate.push({name:c,source:u})}o.length=0,s.length>0?(e._ready=!1,e._texturePromise=Promise.all(s).then(function(){e._ready=!0,e._texturePromise=void 0})):e._ready=!0}function E0e(e){l(e._command)&&(e._command.shaderProgram=e._command.shaderProgram&&e._command.shaderProgram.destroy(),e._command=void 0),e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy();let t=e._textureCache;if(!l(t))return;let n=e._uniforms,i=e._actualUniforms;for(let o in i){if(!i.hasOwnProperty(o))continue;let r=i[o];r instanceof Ot&&(l(t.getStageByName(n[o]))||r.destroy(),e._dirtyUniforms.push(o))}}function qht(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength;if(l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;for(let o=0;o<e._combinedSelected.length;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}function Yht(e,t){if(!e._selectedDirty)return;e._selectedIdTexture=e._selectedIdTexture&&e._selectedIdTexture.destroy(),e._selectedIdTexture=void 0;let n=e._combinedSelected;if(!l(n))return;let i=0;for(let s=0;s<n.length;++s){let a=n[s];l(a.pickIds)?i+=a.pickIds.length:l(a.pickId)&&++i}if(n.length===0||i===0){let s=new Uint8Array([255,255,255,255]);e._selectedIdTexture=new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,source:{arrayBufferView:s,width:1,height:1},sampler:Qt.NEAREST});return}let o=0,r=new Uint8Array(i*4);for(let s=0;s<n.length;++s){let a=n[s];if(l(a.pickIds)){let c=a.pickIds,u=c.length;for(let f=0;f<u;++f){let d=c[f].color;r[o]=z.floatToByte(d.red),r[o+1]=z.floatToByte(d.green),r[o+2]=z.floatToByte(d.blue),r[o+3]=z.floatToByte(d.alpha),o+=4}}else if(l(a.pickId)){let c=a.pickId.color;r[o]=z.floatToByte(c.red),r[o+1]=z.floatToByte(c.green),r[o+2]=z.floatToByte(c.blue),r[o+3]=z.floatToByte(c.alpha),o+=4}}e._selectedIdTexture=new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,source:{arrayBufferView:r,width:i,height:1},sampler:Qt.NEAREST})}_b.prototype.update=function(e,t){if(this.enabled!==this._enabled&&!this.enabled&&E0e(this),this._enabled=this.enabled,!this._enabled||(this._logDepthChanged=t!==this._useLogDepth,this._useLogDepth=t,this._selectedDirty=qht(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0,Yht(this,e),Vht(this),jht(this,e),zht(this,e),Hht(this),this._selectedDirty=!1,!this._ready))return;let n=this._textureCache.getFramebuffer(this._name);if(this._command.framebuffer=n,!l(n))return;let i=n.getColorTexture(0),o;(i.width!==e.drawingBufferWidth||i.height!==e.drawingBufferHeight)&&(o=this._renderState,(!l(o)||i.width!==o.viewport.width||i.height!==o.viewport.height)&&(this._renderState=Ve.fromCache({viewport:new qe(0,0,i.width,i.height)}))),this._command.renderState=o};_b.prototype.execute=function(e,t,n,i){if(!l(this._command)||!l(this._command.framebuffer)||!this._ready||!this._enabled)return;this._colorTexture=t,this._depthTexture=n,this._idTexture=i,Qt.equals(this._colorTexture.sampler,this._sampler)||(this._colorTexture.sampler=this._sampler);let o=this.scissorRectangle.width>0&&this.scissorRectangle.height>0?this._passState:void 0;l(o)&&(o.context=e),this._command.execute(e,o)};_b.prototype.isDestroyed=function(){return!1};_b.prototype.destroy=function(){return E0e(this),ue(this)};var uo=_b;function gb(e){e=y(e,y.EMPTY_OBJECT),this._stages=e.stages,this._inputPreviousStageTexture=y(e.inputPreviousStageTexture,!0);let t=e.name;l(t)||(t=zn()),this._name=t,this._uniforms=e.uniforms,this._textureCache=void 0,this._index=void 0,this._selected=void 0,this._selectedShadow=void 0,this._parentSelected=void 0,this._parentSelectedShadow=void 0,this._combinedSelected=void 0,this._combinedSelectedShadow=void 0,this._selectedLength=0,this._parentSelectedLength=0,this._selectedDirty=!0}Object.defineProperties(gb.prototype,{ready:{get:function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)if(!e[n].ready)return!1;return!0}},name:{get:function(){return this._name}},enabled:{get:function(){return this._stages[0].enabled},set:function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)t[i].enabled=e}},uniforms:{get:function(){return this._uniforms}},inputPreviousStageTexture:{get:function(){return this._inputPreviousStageTexture}},length:{get:function(){return this._stages.length}},selected:{get:function(){return this._selected},set:function(e){this._selected=e}},parentSelected:{get:function(){return this._parentSelected},set:function(e){this._parentSelected=e}}});gb.prototype._isSupported=function(e){let t=this._stages,n=t.length;for(let i=0;i<n;++i)if(!t[i]._isSupported(e))return!1;return!0};gb.prototype.get=function(e){return this._stages[e]};function Xht(e){let t=l(e._selected)?e._selected.length:0,n=l(e._parentSelected)?e._parentSelected:0,i=e._selected!==e._selectedShadow||t!==e._selectedLength;if(i=i||e._parentSelected!==e._parentSelectedShadow||n!==e._parentSelectedLength,l(e._selected)&&l(e._parentSelected)?e._combinedSelected=e._selected.concat(e._parentSelected):l(e._parentSelected)?e._combinedSelected=e._parentSelected:e._combinedSelected=e._selected,!i&&l(e._combinedSelected)){if(!l(e._combinedSelectedShadow))return!0;t=e._combinedSelected.length;for(let o=0;o<t;++o)if(e._combinedSelected[o]!==e._combinedSelectedShadow[o])return!0}return i}gb.prototype.update=function(e,t){this._selectedDirty=Xht(this),this._selectedShadow=this._selected,this._parentSelectedShadow=this._parentSelected,this._combinedSelectedShadow=this._combinedSelected,this._selectedLength=l(this._selected)?this._selected.length:0,this._parentSelectedLength=l(this._parentSelected)?this._parentSelected.length:0;let n=this._stages,i=n.length;for(let o=0;o<i;++o){let r=n[o];this._selectedDirty&&(r.parentSelected=this._combinedSelected),r.update(e,t)}};gb.prototype.isDestroyed=function(){return!1};gb.prototype.destroy=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)e[n].destroy();return ue(this)};var Ll=gb;var br={};function h4(e){let o=`#define USE_STEP_SIZE +${mb}`,r=new uo({name:`${e}_x_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:0},sampleMode:Uf.LINEAR}),s=new uo({name:`${e}_y_direction`,fragmentShader:o,uniforms:{delta:1,sigma:2,stepSize:1,direction:1},sampleMode:Uf.LINEAR}),a={};return Object.defineProperties(a,{delta:{get:function(){return r.uniforms.delta},set:function(c){let u=r.uniforms,f=s.uniforms;u.delta=f.delta=c}},sigma:{get:function(){return r.uniforms.sigma},set:function(c){let u=r.uniforms,f=s.uniforms;u.sigma=f.sigma=c}},stepSize:{get:function(){return r.uniforms.stepSize},set:function(c){let u=r.uniforms,f=s.uniforms;u.stepSize=f.stepSize=c}}}),new Ll({name:e,stages:[r,s],uniforms:a})}br.createBlurStage=function(){return h4("czm_blur")};br.createDepthOfFieldStage=function(){let e=h4("czm_depth_of_field_blur"),t=new uo({name:"czm_depth_of_field_composite",fragmentShader:e4,uniforms:{focalDistance:5,blurTexture:e.name}}),n={};return Object.defineProperties(n,{focalDistance:{get:function(){return t.uniforms.focalDistance},set:function(i){t.uniforms.focalDistance=i}},delta:{get:function(){return e.uniforms.delta},set:function(i){e.uniforms.delta=i}},sigma:{get:function(){return e.uniforms.sigma},set:function(i){e.uniforms.sigma=i}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(i){e.uniforms.stepSize=i}}}),new Ll({name:"czm_depth_of_field",stages:[e,t],inputPreviousStageTexture:!1,uniforms:n})};br.isDepthOfFieldSupported=function(e){return e.context.depthTexture};br.createEdgeDetectionStage=function(){let e=zn();return new uo({name:`czm_edge_detection_${e}`,fragmentShader:n4,uniforms:{length:.25,color:z.clone(z.BLACK)}})};br.isEdgeDetectionSupported=function(e){return e.context.depthTexture};function Kht(e){if(!l(e))return br.createEdgeDetectionStage();let t=new Ll({name:"czm_edge_detection_multiple",stages:e,inputPreviousStageTexture:!1}),n={},i="",o="";for(let a=0;a<e.length;++a)i+=`uniform sampler2D edgeTexture${a}; +`,o+=` vec4 edge${a} = texture(edgeTexture${a}, v_textureCoordinates); + if (edge${a}.a > 0.0) + { + color = edge${a}; + break; + } +`,n[`edgeTexture${a}`]=e[a].name;let r=`${i}in vec2 v_textureCoordinates; +void main() { + vec4 color = vec4(0.0); + for (int i = 0; i < ${e.length}; i++) + { +${o} } + out_FragColor = color; +} +`,s=new uo({name:"czm_edge_detection_combine",fragmentShader:r,uniforms:n});return new Ll({name:"czm_edge_detection_composite",stages:[t,s]})}br.createSilhouetteStage=function(e){let t=Kht(e),n=new uo({name:"czm_silhouette_color_edges",fragmentShader:u4,uniforms:{silhouetteTexture:t.name}});return new Ll({name:"czm_silhouette",stages:[t,n],inputPreviousStageTexture:!1,uniforms:t.uniforms})};br.isSilhouetteSupported=function(e){return e.context.depthTexture};br.createBloomStage=function(){let e=new uo({name:"czm_bloom_contrast_bias",fragmentShader:Jz,uniforms:{contrast:128,brightness:-.3}}),t=h4("czm_bloom_blur"),n=new Ll({name:"czm_bloom_contrast_bias_blur",stages:[e,t]}),i=new uo({name:"czm_bloom_generate_composite",fragmentShader:$z,uniforms:{glowOnly:!1,bloomTexture:n.name}}),o={};return Object.defineProperties(o,{glowOnly:{get:function(){return i.uniforms.glowOnly},set:function(r){i.uniforms.glowOnly=r}},contrast:{get:function(){return e.uniforms.contrast},set:function(r){e.uniforms.contrast=r}},brightness:{get:function(){return e.uniforms.brightness},set:function(r){e.uniforms.brightness=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},stepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}}}),new Ll({name:"czm_bloom",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};br.createAmbientOcclusionStage=function(){let e=new uo({name:"czm_ambient_occlusion_generate",fragmentShader:Xz,uniforms:{intensity:3,bias:.1,lengthCap:.26,stepSize:1.95,frustumLength:1e3,randomTexture:void 0}}),t=h4("czm_ambient_occlusion_blur");t.uniforms.stepSize=.86;let n=new Ll({name:"czm_ambient_occlusion_generate_blur",stages:[e,t]}),i=new uo({name:"czm_ambient_occlusion_composite",fragmentShader:Kz,uniforms:{ambientOcclusionOnly:!1,ambientOcclusionTexture:n.name}}),o={};return Object.defineProperties(o,{intensity:{get:function(){return e.uniforms.intensity},set:function(r){e.uniforms.intensity=r}},bias:{get:function(){return e.uniforms.bias},set:function(r){e.uniforms.bias=r}},lengthCap:{get:function(){return e.uniforms.lengthCap},set:function(r){e.uniforms.lengthCap=r}},stepSize:{get:function(){return e.uniforms.stepSize},set:function(r){e.uniforms.stepSize=r}},frustumLength:{get:function(){return e.uniforms.frustumLength},set:function(r){e.uniforms.frustumLength=r}},randomTexture:{get:function(){return e.uniforms.randomTexture},set:function(r){e.uniforms.randomTexture=r}},delta:{get:function(){return t.uniforms.delta},set:function(r){t.uniforms.delta=r}},sigma:{get:function(){return t.uniforms.sigma},set:function(r){t.uniforms.sigma=r}},blurStepSize:{get:function(){return t.uniforms.stepSize},set:function(r){t.uniforms.stepSize=r}},ambientOcclusionOnly:{get:function(){return i.uniforms.ambientOcclusionOnly},set:function(r){i.uniforms.ambientOcclusionOnly=r}}}),new Ll({name:"czm_ambient_occlusion",stages:[n,i],inputPreviousStageTexture:!1,uniforms:o})};br.isAmbientOcclusionSupported=function(e){return e.context.depthTexture};var Zht=`#define FXAA_QUALITY_PRESET 39 +${f4} +${r4}`;br.createFXAAStage=function(){return new uo({name:"czm_FXAA",fragmentShader:Zht,sampleMode:Uf.LINEAR})};br.createAcesTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=Yz,new uo({name:"czm_aces",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};br.createFilmicTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=i4,new uo({name:"czm_filmic",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};br.createPbrNeutralTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=o4,new uo({name:"czm_pbr_neutral",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};br.createReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=l4,new uo({name:"czm_reinhard",fragmentShader:t,uniforms:{autoExposure:void 0,exposure:1}})};br.createModifiedReinhardTonemappingStage=function(e){let t=e?`#define AUTO_EXPOSURE +`:"";return t+=a4,new uo({name:"czm_modified_reinhard",fragmentShader:t,uniforms:{white:z.WHITE,autoExposure:void 0,exposure:1}})};br.createAutoExposureStage=function(){return new d4};br.createBlackAndWhiteStage=function(){return new uo({name:"czm_black_and_white",fragmentShader:Zz,uniforms:{gradations:5}})};br.createBrightnessStage=function(){return new uo({name:"czm_brightness",fragmentShader:Qz,uniforms:{brightness:.5}})};br.createNightVisionStage=function(){return new uo({name:"czm_night_vision",fragmentShader:c4})};br.createDepthViewStage=function(){return new uo({name:"czm_depth_view",fragmentShader:t4})};br.createLensFlareStage=function(){return new uo({name:"czm_lens_flare",fragmentShader:s4,uniforms:{dirtTexture:nn("Assets/Textures/LensFlare/DirtMask.jpg"),starTexture:nn("Assets/Textures/LensFlare/StarBurst.jpg"),intensity:2,distortion:10,ghostDispersal:.4,haloWidth:.4,dirtAmount:.4,earthRadius:ee.WGS84.maximumRadius}})};var zf=br;function p_(e){this._collection=e,this._framebuffers=[],this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0,this._updateDependencies=!1}function XI(e){for(;l(e.length);)e=e.get(e.length-1);return e.name}function LX(e,t,n,i,o){if(!i.enabled||!i._isSupported(t))return o;let r=n[i.name]={};if(l(o)){let a=e.getStageByName(o);r[XI(a)]=!0}let s=i.uniforms;if(l(s)){let a=Object.getOwnPropertyNames(s),c=a.length;for(let u=0;u<c;++u){let f=s[a[u]];if(typeof f=="string"){let d=e.getStageByName(f);l(d)&&(r[XI(d)]=!0)}}}return i.name}function YI(e,t,n,i,o){if(l(i.enabled)&&!i.enabled||l(i._isSupported)&&!i._isSupported(t))return o;let r=o,s=!l(i.inputPreviousStageTexture)||i.inputPreviousStageTexture,a=o,c=i.length;for(let d=0;d<c;++d){let p=i.get(d);l(p.length)?a=YI(e,t,n,p,o):a=LX(e,t,n,p,o),s&&(o=a)}let u,f;if(s)for(u=1;u<c;++u)f=XI(i.get(u)),l(n[f])||(n[f]={}),n[f][r]=!0;else for(u=1;u<c;++u){f=XI(i.get(u));let d=n[f];for(let p=0;p<u;++p)d[XI(i.get(p))]=!0}return a}function $ht(e,t){let n={};if(l(e.ambientOcclusion)){let i=e.ambientOcclusion,o=e.bloom,r=e._tonemapping,s=e.fxaa,a=YI(e,t,n,i,void 0);a=YI(e,t,n,o,a),a=LX(e,t,n,r,a),a=YI(e,t,n,e,a),LX(e,t,n,s,a)}else YI(e,t,n,e,void 0);return n}function Qht(e,t,n){let o=e._collection.getStageByName(t),r=o._textureScale,s=o._forcePowerOfTwo,a=o._pixelFormat,c=o._pixelDatatype,u=o._clearColor,f,d,p=e._framebuffers,g=p.length;for(f=0;f<g;++f){if(d=p[f],r!==d.textureScale||s!==d.forcePowerOfTwo||a!==d.pixelFormat||c!==d.pixelDatatype||!z.equals(u,d.clearColor))continue;let m=d.stages,x=m.length,b=!1;for(let T=0;T<x;++T)if(n[m[T]]){b=!0;break}if(!b)break}return l(d)&&f<g?(d.stages.push(t),d):(d={textureScale:r,forcePowerOfTwo:s,pixelFormat:a,pixelDatatype:c,clearColor:u,stages:[t],buffer:new hi({pixelFormat:a,pixelDatatype:c}),clear:void 0},p.push(d),d)}function Jht(e,t){let n=$ht(e._collection,t);for(let i in n)n.hasOwnProperty(i)&&(e._stageNameToFramebuffer[i]=Qht(e,i,n[i]))}function NX(e){let t=e._framebuffers,n=t.length;for(let i=0;i<n;++i)t[i].buffer.destroy()}function emt(e,t){let n=e._width,i=e._height,o=e._framebuffers,r=o.length;for(let s=0;s<r;++s){let a=o[s],c=a.textureScale,u=Math.ceil(n*c),f=Math.ceil(i*c),d=Math.min(u,f);a.forcePowerOfTwo&&(P.isPowerOfTwo(d)||(d=P.nextPowerOfTwo(d)),u=d,f=d),a.buffer.update(t,u,f),a.clear=new ei({color:a.clearColor,framebuffer:a.buffer.framebuffer})}}p_.prototype.updateDependencies=function(){this._updateDependencies=!0};p_.prototype.update=function(e){let t=this._collection,n=this._updateDependencies,i=l(t.ambientOcclusion)&&t.ambientOcclusion.enabled&&t.ambientOcclusion._isSupported(e),o=l(t.bloom)&&t.bloom.enabled&&t.bloom._isSupported(e),r=l(t._tonemapping)&&t._tonemapping.enabled&&t._tonemapping._isSupported(e),s=l(t.fxaa)&&t.fxaa.enabled&&t.fxaa._isSupported(e),a=!l(t._activeStages)||t._activeStages.length>0||i||o||r||s;if((n||!a&&this._framebuffers.length>0)&&(NX(this),this._framebuffers.length=0,this._stageNameToFramebuffer={},this._width=void 0,this._height=void 0),!n&&!a)return;this._framebuffers.length===0&&Jht(this,e);let c=e.drawingBufferWidth,u=e.drawingBufferHeight,f=this._width!==c||this._height!==u;!n&&!f||(this._width=c,this._height=u,this._updateDependencies=!1,NX(this),emt(this,e))};p_.prototype.clear=function(e){let t=this._framebuffers;for(let n=0;n<t.length;++n)t[n].clear.execute(e)};p_.prototype.getStageByName=function(e){return this._collection.getStageByName(e)};p_.prototype.getOutputTexture=function(e){return this._collection.getOutputTexture(e)};p_.prototype.getFramebuffer=function(e){let t=this._stageNameToFramebuffer[e];if(l(t))return t.buffer.framebuffer};p_.prototype.isDestroyed=function(){return!1};p_.prototype.destroy=function(){return NX(this),ue(this)};var jE=p_;var tmt={REINHARD:"REINHARD",MODIFIED_REINHARD:"MODIFIED_REINHARD",FILMIC:"FILMIC",ACES:"ACES",PBR_NEUTRAL:"PBR_NEUTRAL"};var Ky=Object.freeze(tmt);var FX=[];function Kc(){let e=zf.createFXAAStage(),t=zf.createAmbientOcclusionStage(),n=zf.createBloomStage();this._autoExposureEnabled=!1,this._autoExposure=zf.createAutoExposureStage(),this._exposure=1,this._tonemapping=void 0,this._tonemapper=void 0,this.tonemapper=Ky.PBR_NEUTRAL;let i=this._tonemapping;e.enabled=!1,t.enabled=!1,n.enabled=!1,i.enabled=!1;let o=new jE(this),r={},s=FX;for(s.push(e,t,n,i);s.length>0;){let c=s.pop();r[c.name]=c,c._textureCache=o;let u=c.length;if(l(u))for(let f=0;f<u;++f)s.push(c.get(f))}this._stages=[],this._activeStages=[],this._previousActiveStages=[],this._randomTexture=void 0;let a=this;t.uniforms.randomTexture=function(){return a._randomTexture},this._ao=t,this._bloom=n,this._fxaa=e,this._aoEnabled=void 0,this._bloomEnabled=void 0,this._tonemappingEnabled=void 0,this._fxaaEnabled=void 0,this._activeStagesChanged=!1,this._stagesRemoved=!1,this._textureCacheDirty=!1,this._stageNames=r,this._textureCache=o}Object.defineProperties(Kc.prototype,{ready:{get:function(){let e=!1,t=this._stages,n=t.length;for(let a=n-1;a>=0;--a){let c=t[a];e=e||c.ready&&c.enabled}let i=this._fxaa,o=this._ao,r=this._bloom,s=this._tonemapping;return e=e||i.ready&&i.enabled,e=e||o.ready&&o.enabled,e=e||r.ready&&r.enabled,e=e||s.ready&&s.enabled,e}},fxaa:{get:function(){return this._fxaa}},ambientOcclusion:{get:function(){return this._ao}},bloom:{get:function(){return this._bloom}},length:{get:function(){return BX(this),this._stages.length}},outputTexture:{get:function(){let e=this._fxaa;if(e.enabled&&e.ready)return this.getOutputTexture(e.name);let t=this._stages,n=t.length;for(let s=n-1;s>=0;--s){let a=t[s];if(l(a)&&a.ready&&a.enabled)return this.getOutputTexture(a.name)}let i=this._tonemapping;if(i.enabled&&i.ready)return this.getOutputTexture(i.name);let o=this._bloom;if(o.enabled&&o.ready)return this.getOutputTexture(o.name);let r=this._ao;if(r.enabled&&r.ready)return this.getOutputTexture(r.name)}},hasSelected:{get:function(){let e=this._stages.slice();for(;e.length>0;){let t=e.pop();if(!l(t))continue;if(l(t.selected))return!0;let n=t.length;if(l(n))for(let i=0;i<n;++i)e.push(t.get(i))}return!1}},tonemapper:{get:function(){return this._tonemapper},set:function(e){if(this._tonemapper===e)return;l(this._tonemapping)&&(delete this._stageNames[this._tonemapping.name],this._tonemapping.destroy());let t=this._autoExposureEnabled,n;switch(e){case Ky.REINHARD:n=zf.createReinhardTonemappingStage(t);break;case Ky.MODIFIED_REINHARD:n=zf.createModifiedReinhardTonemappingStage(t);break;case Ky.FILMIC:n=zf.createFilmicTonemappingStage(t);break;case Ky.PBR_NEUTRAL:n=zf.createPbrNeutralTonemappingStage(t);break;default:n=zf.createAcesTonemappingStage(t);break}if(t){let i=this._autoExposure;n.uniforms.autoExposure=function(){return i.outputTexture}}else n.uniforms.exposure=this._exposure;this._tonemapper=e,this._tonemapping=n,l(this._stageNames)&&(this._stageNames[n.name]=n,n._textureCache=this._textureCache),this._textureCacheDirty=!0}},exposure:{get:function(){return this._exposure},set:function(e){this._tonemapping.uniforms.exposure=e,this._exposure=e}}});function BX(e){if(!e._stagesRemoved)return;e._stagesRemoved=!1;let t=[],n=e._stages;for(let i=0,o=0;i<n.length;++i){let r=n[i];r&&(r._index=o++,t.push(r))}e._stages=t}Kc.prototype.add=function(e){let t=this._stageNames,n=FX;for(n.push(e);n.length>0;){let o=n.pop();t[o.name]=o,o._textureCache=this._textureCache;let r=o.length;if(l(r))for(let s=0;s<r;++s)n.push(o.get(s))}let i=this._stages;return e._index=i.length,i.push(e),this._textureCacheDirty=!0,e};Kc.prototype.remove=function(e){if(!this.contains(e))return!1;let t=this._stageNames,n=FX;for(n.push(e);n.length>0;){let i=n.pop();delete t[i.name];let o=i.length;if(l(o))for(let r=0;r<o;++r)n.push(i.get(r))}return this._stages[e._index]=void 0,this._stagesRemoved=!0,this._textureCacheDirty=!0,e._index=void 0,e._textureCache=void 0,e.destroy(),!0};Kc.prototype.contains=function(e){return l(e)&&l(e._index)&&e._textureCache===this._textureCache};Kc.prototype.get=function(e){return BX(this),this._stages[e]};Kc.prototype.removeAll=function(){let e=this._stages,t=e.length;for(let n=0;n<t;++n)this.remove(e[n]);e.length=0};Kc.prototype.getStageByName=function(e){return this._stageNames[e]};Kc.prototype.update=function(e,t,n){BX(this);let i=this._activeStages,o=this._activeStages=this._previousActiveStages;this._previousActiveStages=i;let r=this._stages;o.length=r.length;let s=0;for(let T=0;T<r.length;++T){let A=r[T];A.ready&&A.enabled&&A._isSupported(e)&&(o[s++]=A)}o.length=s;let a=s!==i.length;if(!a){for(let T=0;T<s;++T)if(o[T]!==i[T]){a=!0;break}}let c=this._ao,u=this._bloom,f=this._autoExposure,d=this._tonemapping,p=this._fxaa;d.enabled=n;let g=c.enabled&&c._isSupported(e),m=u.enabled&&u._isSupported(e),x=d.enabled&&d._isSupported(e),b=p.enabled&&p._isSupported(e);if((a||this._textureCacheDirty||g!==this._aoEnabled||m!==this._bloomEnabled||x!==this._tonemappingEnabled||b!==this._fxaaEnabled)&&(this._textureCache.updateDependencies(),this._aoEnabled=g,this._bloomEnabled=m,this._tonemappingEnabled=x,this._fxaaEnabled=b,this._textureCacheDirty=!1),l(this._randomTexture)&&!g&&(this._randomTexture.destroy(),this._randomTexture=void 0),!l(this._randomTexture)&&g){let A=new Uint8Array(196608);for(let C=0;C<196608;C+=3)A[C]=Math.floor(Math.random()*255);this._randomTexture=new Ot({context:e,pixelFormat:it.RGB,pixelDatatype:Ze.UNSIGNED_BYTE,source:{arrayBufferView:A,width:256,height:256},sampler:new Qt({wrapS:En.REPEAT,wrapT:En.REPEAT,minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST})})}this._textureCache.update(e),p.update(e,t),c.update(e,t),u.update(e,t),d.update(e,t),this._autoExposureEnabled&&f.update(e,t);for(let T=0;T<r.length;++T)r[T].update(e,t);s=0;for(let T=0;T<r.length;++T){let A=r[T];A.ready&&A.enabled&&A._isSupported(e)&&s++}a=s!==o.length,a&&this.update(e,t,n)};Kc.prototype.clear=function(e){this._textureCache.clear(e),this._autoExposureEnabled&&this._autoExposure.clear(e)};function yb(e){for(;l(e.length);)e=e.get(e.length-1);return e.outputTexture}Kc.prototype.getOutputTexture=function(e){let t=this.getStageByName(e);if(l(t))return yb(t)};function Om(e,t,n,i,o){if(l(e.execute)){e.execute(t,n,i,o);return}if(e.inputPreviousStageTexture){Om(e.get(0),t,n,i,o);for(let r=1;r<e.length;++r)Om(e.get(r),t,yb(e.get(r-1)),i,o)}else for(let r=0;r<e.length;++r)Om(e.get(r),t,n,i,o)}Kc.prototype.execute=function(e,t,n,i){let o=this._activeStages,r=o.length,s=this._fxaa,a=this._ao,c=this._bloom,u=this._autoExposure,f=this._tonemapping,d=a.enabled&&a._isSupported(e),p=c.enabled&&c._isSupported(e),g=this._autoExposureEnabled,m=f.enabled&&f._isSupported(e),x=s.enabled&&s._isSupported(e);if(!x&&!d&&!p&&!m&&r===0)return;let b=t;d&&a.ready&&(Om(a,e,b,n,i),b=yb(a)),p&&c.ready&&(Om(c,e,b,n,i),b=yb(c)),g&&u.ready&&Om(u,e,b,n,i),m&&f.ready&&(Om(f,e,b,n,i),b=yb(f));let T=b;if(r>0){Om(o[0],e,b,n,i);for(let A=1;A<r;++A)Om(o[A],e,yb(o[A-1]),n,i);T=yb(o[r-1])}x&&s.ready&&Om(s,e,T,n,i)};Kc.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Du,{uniformMap:{colorTexture:function(){return n.outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};Kc.prototype.isDestroyed=function(){return!1};Kc.prototype.destroy=function(){return this._fxaa.destroy(),this._ao.destroy(),this._bloom.destroy(),this._autoExposure.destroy(),this._tonemapping.destroy(),this.removeAll(),this._textureCache=this._textureCache&&this._textureCache.destroy(),ue(this)};var m4=Kc;var nmt={SHIFT:0,CTRL:1,ALT:2},ha=Object.freeze(nmt);var imt={LEFT_DOWN:0,LEFT_UP:1,LEFT_CLICK:2,LEFT_DOUBLE_CLICK:3,RIGHT_DOWN:5,RIGHT_UP:6,RIGHT_CLICK:7,MIDDLE_DOWN:10,MIDDLE_UP:11,MIDDLE_CLICK:12,MOUSE_MOVE:15,WHEEL:16,PINCH_START:17,PINCH_END:18,PINCH_MOVE:19},bn=Object.freeze(imt);function Zy(e,t,n){let i=e._element;if(i===document)return n.x=t.clientX,n.y=t.clientY,n;let o=i.getBoundingClientRect();return n.x=t.clientX-o.left,n.y=t.clientY-o.top,n}function GX(e,t){let n=e;return l(t)&&(n+=`+${t}`),n}function xb(e){if(e.shiftKey)return ha.SHIFT;if(e.ctrlKey)return ha.CTRL;if(e.altKey)return ha.ALT}var Ds={LEFT:0,MIDDLE:1,RIGHT:2};function Iu(e,t,n,i){function o(r){i(e,r)}jt.isInternetExplorer()?n.addEventListener(t,o,!1):n.addEventListener(t,o,{capture:!1,passive:!1}),e._removalFunctions.push(function(){n.removeEventListener(t,o,!1)})}function omt(e){let t=e._element,n=l(t.disableRootEvents)?t:document;jt.supportsPointerEvents()?(Iu(e,"pointerdown",t,umt),Iu(e,"pointerup",t,L0e),Iu(e,"pointermove",t,fmt),Iu(e,"pointercancel",t,L0e)):(Iu(e,"mousedown",t,N0e),Iu(e,"mouseup",n,F0e),Iu(e,"mousemove",n,B0e),Iu(e,"touchstart",t,cmt),Iu(e,"touchend",n,I0e),Iu(e,"touchmove",n,lmt),Iu(e,"touchcancel",n,I0e)),Iu(e,"dblclick",t,smt);let i;"onwheel"in t?i="wheel":document.onmousewheel!==void 0?i="mousewheel":i="DOMMouseScroll",Iu(e,i,t,amt)}function rmt(e){let t=e._removalFunctions;for(let n=0;n<t.length;++n)t[n]()}var S0e={position:new U};function WX(e){e._lastSeenTouchEvent=Ti()}function jX(e){return Ti()-e._lastSeenTouchEvent>eh.mouseEmulationIgnoreMilliseconds}function HX(e,t,n){let i=e.x-t.x,o=e.y-t.y;return Math.sqrt(i*i+o*o)<n}function N0e(e,t){if(!jX(e))return;let n=t.button;e._buttonDown[n]=!0;let i;if(n===Ds.LEFT)i=bn.LEFT_DOWN;else if(n===Ds.MIDDLE)i=bn.MIDDLE_DOWN;else if(n===Ds.RIGHT)i=bn.RIGHT_DOWN;else return;let o=Zy(e,t,e._primaryPosition);U.clone(o,e._primaryStartPosition),U.clone(o,e._primaryPreviousPosition);let r=xb(t),s=e.getInputAction(i,r);l(s)&&(U.clone(o,S0e.position),s(S0e),t.preventDefault())}var v0e={position:new U},w0e={position:new U};function kX(e,t,n,i){let o=xb(i),r=e.getInputAction(t,o),s=e.getInputAction(n,o);if(l(r)||l(s)){let a=Zy(e,i,e._primaryPosition);if(l(r)&&(U.clone(a,v0e.position),r(v0e)),l(s)){let c=e._primaryStartPosition;HX(c,a,e._clickPixelTolerance)&&(U.clone(a,w0e.position),s(w0e))}}}function F0e(e,t){if(!jX(e))return;let n=t.button;n!==Ds.LEFT&&n!==Ds.MIDDLE&&n!==Ds.RIGHT||(e._buttonDown[Ds.LEFT]&&(kX(e,bn.LEFT_UP,bn.LEFT_CLICK,t),e._buttonDown[Ds.LEFT]=!1),e._buttonDown[Ds.MIDDLE]&&(kX(e,bn.MIDDLE_UP,bn.MIDDLE_CLICK,t),e._buttonDown[Ds.MIDDLE]=!1),e._buttonDown[Ds.RIGHT]&&(kX(e,bn.RIGHT_UP,bn.RIGHT_CLICK,t),e._buttonDown[Ds.RIGHT]=!1))}var VX={startPosition:new U,endPosition:new U};function B0e(e,t){if(!jX(e))return;let n=xb(t),i=Zy(e,t,e._primaryPosition),o=e._primaryPreviousPosition,r=e.getInputAction(bn.MOUSE_MOVE,n);l(r)&&(U.clone(o,VX.startPosition),U.clone(i,VX.endPosition),r(VX)),U.clone(i,o),(e._buttonDown[Ds.LEFT]||e._buttonDown[Ds.MIDDLE]||e._buttonDown[Ds.RIGHT])&&t.preventDefault()}var D0e={position:new U};function smt(e,t){let n=t.button,i;if(n===Ds.LEFT)i=bn.LEFT_DOUBLE_CLICK;else return;let o=xb(t),r=e.getInputAction(i,o);l(r)&&(Zy(e,t,D0e.position),r(D0e))}function amt(e,t){let n;if(l(t.deltaY)){let r=t.deltaMode;r===t.DOM_DELTA_PIXEL?n=-t.deltaY:r===t.DOM_DELTA_LINE?n=-t.deltaY*40:n=-t.deltaY*120}else t.detail>0?n=t.detail*-120:n=t.wheelDelta;if(!l(n))return;let i=xb(t),o=e.getInputAction(bn.WHEEL,i);l(o)&&(o(n),t.preventDefault())}function cmt(e,t){WX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.set(s,Zy(e,r,new U));p4(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.set(s,U.clone(a.get(s)))}function I0e(e,t){WX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i)r=n[i],s=r.identifier,a.remove(s);p4(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,c.remove(s)}var P0e={position:new U},UX={position1:new U,position2:new U},R0e={position:new U},O0e={position:new U},M0e={position:new U};function p4(e,t){let n=xb(t),i=e._positions,o=i.length,r,s,a=e._isPinching;if(o!==1&&e._buttonDown[Ds.LEFT]){if(e._buttonDown[Ds.LEFT]=!1,l(e._touchHoldTimer)&&(clearTimeout(e._touchHoldTimer),e._touchHoldTimer=void 0),r=e.getInputAction(bn.LEFT_UP,n),l(r)&&(U.clone(e._primaryPosition,R0e.position),r(R0e)),o===0&&!e._isTouchHolding&&(s=e.getInputAction(bn.LEFT_CLICK,n),l(s))){let c=e._primaryStartPosition,u=e._previousPositions.values[0];HX(c,u,e._clickPixelTolerance)&&(U.clone(e._primaryPosition,O0e.position),s(O0e))}e._isTouchHolding=!1}if(o===0&&a&&(e._isPinching=!1,r=e.getInputAction(bn.PINCH_END,n),l(r)&&r()),o===1&&!a){let c=i.values[0];U.clone(c,e._primaryPosition),U.clone(c,e._primaryStartPosition),U.clone(c,e._primaryPreviousPosition),e._buttonDown[Ds.LEFT]=!0,r=e.getInputAction(bn.LEFT_DOWN,n),l(r)&&(U.clone(c,P0e.position),r(P0e)),e._touchHoldTimer=setTimeout(function(){if(!e.isDestroyed()&&(e._touchHoldTimer=void 0,e._isTouchHolding=!0,s=e.getInputAction(bn.RIGHT_CLICK,n),l(s))){let u=e._primaryStartPosition,f=e._previousPositions.values[0];HX(u,f,e._holdPixelTolerance)&&(U.clone(e._primaryPosition,M0e.position),s(M0e))}},eh.touchHoldDelayMilliseconds),t.preventDefault()}o===2&&!a&&(e._isPinching=!0,r=e.getInputAction(bn.PINCH_START,n),l(r)&&(U.clone(i.values[0],UX.position1),U.clone(i.values[1],UX.position2),r(UX),t.preventDefault()))}function lmt(e,t){WX(e);let n=t.changedTouches,i,o=n.length,r,s,a=e._positions;for(i=0;i<o;++i){r=n[i],s=r.identifier;let u=a.get(s);l(u)&&Zy(e,r,u)}k0e(e,t);let c=e._previousPositions;for(i=0;i<o;++i)r=n[i],s=r.identifier,U.clone(a.get(s),c.get(s))}var zX={startPosition:new U,endPosition:new U},KI={distance:{startPosition:new U,endPosition:new U},angleAndHeight:{startPosition:new U,endPosition:new U}};function k0e(e,t){let n=xb(t),i=e._positions,o=e._previousPositions,r=i.length,s;if(r===1&&e._buttonDown[Ds.LEFT]){let a=i.values[0];U.clone(a,e._primaryPosition);let c=e._primaryPreviousPosition;s=e.getInputAction(bn.MOUSE_MOVE,n),l(s)&&(U.clone(c,zX.startPosition),U.clone(a,zX.endPosition),s(zX)),U.clone(a,c),t.preventDefault()}else if(r===2&&e._isPinching&&(s=e.getInputAction(bn.PINCH_MOVE,n),l(s))){let a=i.values[0],c=i.values[1],u=o.values[0],f=o.values[1],d=c.x-a.x,p=c.y-a.y,g=Math.sqrt(d*d+p*p)*.25,m=f.x-u.x,x=f.y-u.y,b=Math.sqrt(m*m+x*x)*.25,T=(c.y+a.y)*.125,A=(f.y+u.y)*.125,C=Math.atan2(p,d),S=Math.atan2(x,m);U.fromElements(0,b,KI.distance.startPosition),U.fromElements(0,g,KI.distance.endPosition),U.fromElements(S,A,KI.angleAndHeight.startPosition),U.fromElements(C,T,KI.angleAndHeight.endPosition),s(KI)}}function umt(e,t){if(t.target.setPointerCapture(t.pointerId),t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.set(i,Zy(e,t,new U)),p4(e,t),e._previousPositions.set(i,U.clone(n.get(i)))}else N0e(e,t)}function L0e(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId;n.remove(i),p4(e,t),e._previousPositions.remove(i)}else F0e(e,t)}function fmt(e,t){if(t.pointerType==="touch"){let n=e._positions,i=t.pointerId,o=n.get(i);if(!l(o))return;Zy(e,t,o),k0e(e,t);let r=e._previousPositions;U.clone(n.get(i),r.get(i))}else B0e(e,t)}function eh(e){this._inputEvents={},this._buttonDown={LEFT:!1,MIDDLE:!1,RIGHT:!1},this._isPinching=!1,this._isTouchHolding=!1,this._lastSeenTouchEvent=-eh.mouseEmulationIgnoreMilliseconds,this._primaryStartPosition=new U,this._primaryPosition=new U,this._primaryPreviousPosition=new U,this._positions=new St,this._previousPositions=new St,this._removalFunctions=[],this._touchHoldTimer=void 0,this._clickPixelTolerance=5,this._holdPixelTolerance=25,this._element=y(e,document),omt(this)}eh.prototype.setInputAction=function(e,t,n){let i=GX(t,n);this._inputEvents[i]=e};eh.prototype.getInputAction=function(e,t){let n=GX(e,t);return this._inputEvents[n]};eh.prototype.removeInputAction=function(e,t){let n=GX(e,t);delete this._inputEvents[n]};eh.prototype.isDestroyed=function(){return!1};eh.prototype.destroy=function(){return rmt(this),ue(this)};eh.mouseEmulationIgnoreMilliseconds=800;eh.touchHoldDelayMilliseconds=1500;var Hf=eh;function bb(e){this._scene=e,this._currentTweens=[],this._morphHandler=void 0,this._morphCancelled=!1,this._completeMorph=void 0,this._morphToOrthographic=!1}bb.prototype.completeMorph=function(){l(this._completeMorph)&&this._completeMorph()};bb.prototype.morphTo2D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;this._previousMode=n.mode,this._morphToOrthographic=n.camera.frustum instanceof rn,!(this._previousMode===ne.SCENE2D||this._previousMode===ne.MORPHING)&&(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE2D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.COLUMBUS_VIEW?Wmt(this,e):$mt(this,e,t),e===0&&l(this._completeMorph)&&this._completeMorph())};var dmt=new h,hmt=new h,mmt=new h,pmt=new h,_mt=new h,gmt=new h,ymt=new h,xmt=new fe,bmt=new F,Tmt=new vi,Amt=new rn,Cmt={position:void 0,direction:void 0,up:void 0,position2D:void 0,direction2D:void 0,up2D:void 0,frustum:void 0};bb.prototype.morphToColumbusView=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,this._previousMode===ne.COLUMBUS_VIEW||this._previousMode===ne.MORPHING)return;this._scene.morphStart.raiseEvent(this,this._previousMode,ne.COLUMBUS_VIEW,!0),n.camera._setTransform(F.IDENTITY);let i=dmt,o=hmt,r=mmt;if(e>0)i.x=0,i.y=-1,i.z=1,i=h.multiplyByScalar(h.normalize(i,i),5*t.maximumRadius,i),h.negate(h.normalize(i,o),o),h.cross(h.UNIT_X,o,r);else{let u=n.camera;if(this._previousMode===ne.SCENE2D)h.clone(u.position,i),i.z=u.frustum.right-u.frustum.left,h.negate(h.UNIT_Z,o),h.clone(h.UNIT_Y,r);else{h.clone(u.positionWC,i),h.clone(u.directionWC,o),h.clone(u.upWC,r);let f=t.scaleToGeodeticSurface(i,ymt),d=Nt.eastNorthUpToFixedFrame(f,t,bmt);F.inverseTransformation(d,d),n.mapProjection.project(t.cartesianToCartographic(i,xmt),i),F.multiplyByPointAsVector(d,o,o),F.multiplyByPointAsVector(d,r,r)}}let s;this._morphToOrthographic?(s=Amt,s.width=n.camera.frustum.right-n.camera.frustum.left,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight):(s=Tmt,s.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,s.fov=P.toRadians(60));let a=Cmt;a.position=i,a.direction=o,a.up=r,a.frustum=s;let c=Jmt(a);ZI(this,c),this._previousMode===ne.SCENE2D?Qmt(this,e,a,c):(a.position2D=F.multiplyByPoint(io.TRANSFORM_2D,i,pmt),a.direction2D=F.multiplyByPointAsVector(io.TRANSFORM_2D,o,_mt),a.up2D=F.multiplyByPointAsVector(io.TRANSFORM_2D,r,gmt),n._mode=ne.MORPHING,K0e(this,e,a,c)),e===0&&l(this._completeMorph)&&this._completeMorph()};var XX={position:new h,direction:new h,up:new h,frustum:void 0},U0e=new vi;bb.prototype.morphTo3D=function(e,t){l(this._completeMorph)&&this._completeMorph();let n=this._scene;if(this._previousMode=n.mode,!(this._previousMode===ne.SCENE3D||this._previousMode===ne.MORPHING)){if(this._scene.morphStart.raiseEvent(this,this._previousMode,ne.SCENE3D,!0),n._mode=ne.MORPHING,n.camera._setTransform(F.IDENTITY),this._previousMode===ne.SCENE2D)Lmt(this,e,t);else{let i;e>0?(i=XX,h.fromDegrees(0,0,5*t.maximumRadius,t,i.position),h.negate(i.position,i.direction),h.normalize(i.direction,i.direction),h.clone(h.UNIT_Z,i.up)):i=z0e(this,t);let o,r=n.camera;r.frustum instanceof rn?o=r.frustum.clone():(o=U0e,o.aspectRatio=n.drawingBufferWidth/n.drawingBufferHeight,o.fov=P.toRadians(60)),i.frustum=o;let s=$0e(i);ZI(this,s),YX(this,e,i,s)}e===0&&l(this._completeMorph)&&this._completeMorph()}};bb.prototype.isDestroyed=function(){return!1};bb.prototype.destroy=function(){return _4(this),ue(this)};function ZI(e,t){if(e._scene.completeMorphOnUserInput){e._morphHandler=new Hf(e._scene.canvas);let n=function(){e._morphCancelled=!0,e._scene.camera.cancelFlight(),t(e)};e._completeMorph=n,e._morphHandler.setInputAction(n,bn.LEFT_DOWN),e._morphHandler.setInputAction(n,bn.MIDDLE_DOWN),e._morphHandler.setInputAction(n,bn.RIGHT_DOWN),e._morphHandler.setInputAction(n,bn.WHEEL)}}function _4(e){let t=e._currentTweens;for(let n=0;n<t.length;++n)t[n].cancelTween();e._currentTweens.length=0,e._morphHandler=e._morphHandler&&e._morphHandler.destroy()}var Emt=new fe,Smt=new h,vmt=new F;function z0e(e,t){let n=e._scene,i=n.camera,o=XX,r=o.position,s=o.direction,a=o.up,c=n.mapProjection.unproject(i.position,Emt);t.cartographicToCartesian(c,r);let u=t.scaleToGeodeticSurface(r,Smt),f=Nt.eastNorthUpToFixedFrame(u,t,vmt);return F.multiplyByPointAsVector(f,i.direction,s),F.multiplyByPointAsVector(f,i.up,a),o}var wmt=new h,Dmt=new h,Imt=new h,Pmt=new h,Rmt=new h,Omt=new h;function YX(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(r.position,wmt),a=h.clone(r.direction,Dmt),c=h.clone(r.up,Imt),u=F.multiplyByPoint(io.TRANSFORM_2D_INVERSE,n.position,Pmt),f=F.multiplyByPointAsVector(io.TRANSFORM_2D_INVERSE,n.direction,Rmt),d=F.multiplyByPointAsVector(io.TRANSFORM_2D_INVERSE,n.up,Omt);function p(m){Gf(s,u,m.time,r.position),Gf(a,f,m.time,r.direction),Gf(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let g=o.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Z0e(e,o,0,1,t,i)}});e._currentTweens.push(g)}var Mmt=new rn,H0e=new h,G0e=new h,W0e=new h,KX=new h,j0e=new h,q0e=new h;function Lmt(e,t,n){t/=3;let i=e._scene,o=i.camera,r;t>0?(r=XX,h.fromDegrees(0,0,5*n.maximumRadius,n,r.position),h.negate(r.position,r.direction),h.normalize(r.direction,r.direction),h.clone(h.UNIT_Z,r.up)):(o.position.z=o.frustum.right-o.frustum.left,r=z0e(e,n));let s;e._morphToOrthographic?(s=Mmt,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.width=o.frustum.right-o.frustum.left):(s=U0e,s.aspectRatio=i.drawingBufferWidth/i.drawingBufferHeight,s.fov=P.toRadians(60)),r.frustum=s;let a=$0e(r);ZI(e,a);let c;e._morphToOrthographic?c=function(){YX(e,t,r,a)}:c=function(){X0e(e,t,r,function(){YX(e,t,r,a)})},t>0?(i._mode=ne.SCENE2D,o.flyTo({duration:t,destination:h.fromDegrees(0,0,5*n.maximumRadius,n,KX),complete:function(){i._mode=ne.MORPHING,c()}})):c()}function Gf(e,t,n,i){return h.lerp(e,t,n,i)}function Y0e(e,t,n,i,o){let r=e._scene,s=r.camera;if(s.frustum instanceof rn)return;let a=s.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=n.position.z*Math.tan(a*.5);s.frustum.far=u/Math.tan(c*.5)+1e7;function f(p){s.frustum.fov=P.lerp(a,c,p.time);let g=u/Math.tan(s.frustum.fov*.5);i(s,g)}let d=r.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){s.frustum=n.frustum.clone(),o(e)}});e._currentTweens.push(d)}var Nmt=new h,Fmt=new h,Bmt=new h,qX=new h,kmt=new h,Vmt=new h,Umt=new Ur,zmt=new mn,Hmt=new h,Gmt={position:void 0,direction:void 0,up:void 0,frustum:void 0};function Wmt(e,t){t*=.5;let n=e._scene,i=n.camera,o=h.clone(i.position,Nmt),r=h.clone(i.direction,Fmt),s=h.clone(i.up,Bmt),a=h.negate(h.UNIT_Z,kmt),c=h.clone(h.UNIT_Y,Vmt),u=qX;if(t>0)h.clone(h.ZERO,qX),u.z=5*n.ellipsoid.maximumRadius;else{h.clone(o,qX);let b=zmt;F.multiplyByPoint(io.TRANSFORM_2D,o,b.origin),F.multiplyByPointAsVector(io.TRANSFORM_2D,r,b.direction);let T=n.globe;if(l(T)){let A=T.pickWorldCoordinates(b,n,!0,Hmt);l(A)&&(F.multiplyByPoint(io.TRANSFORM_2D_INVERSE,A,u),u.z+=h.distance(o,u))}}let f=Umt;f.right=u.z*.5,f.left=-f.right,f.top=f.right*(n.drawingBufferHeight/n.drawingBufferWidth),f.bottom=-f.top;let d=Gmt;d.position=u,d.direction=a,d.up=c,d.frustum=f;let p=Q0e(d);ZI(e,p);function g(b){Gf(o,u,b.time,i.position),Gf(r,a,b.time,i.direction),Gf(s,c,b.time,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i._adjustOrthographicFrustum(!0)}function m(b,T){b.position.z=T}let x=n.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){Y0e(e,t,d,m,p)}});e._currentTweens.push(x)}var V0e=new fe,jmt={position:new h,direction:new h,up:new h,position2D:new h,direction2D:new h,up2D:new h,frustum:new Ur},qmt={position:new h,direction:new h,up:new h,frustum:void 0},Ymt=new h,Xmt=new mn,Kmt=new F,Zmt=new h;function $mt(e,t,n){t*=.5;let i=e._scene,o=i.camera,r=jmt;if(t>0)h.clone(h.ZERO,r.position),r.position.z=5*n.maximumRadius,h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);else{n.cartesianToCartographic(o.positionWC,V0e),i.mapProjection.project(V0e,r.position),h.negate(h.UNIT_Z,r.direction),h.clone(h.UNIT_Y,r.up);let d=Xmt;h.clone(r.position2D,d.origin);let p=h.clone(o.directionWC,d.direction),g=n.scaleToGeodeticSurface(o.positionWC,Zmt),m=Nt.eastNorthUpToFixedFrame(g,n,Kmt);F.inverseTransformation(m,m),F.multiplyByPointAsVector(m,p,p),F.multiplyByPointAsVector(io.TRANSFORM_2D,p,p);let x=i.globe;if(l(x)){let b=x.pickWorldCoordinates(d,i,!0,Ymt);if(l(b)){let T=h.distance(r.position2D,b);b.x+=T,h.clone(b,r.position2D)}}}function s(d,p){d.position.x=p}F.multiplyByPoint(io.TRANSFORM_2D,r.position,r.position2D),F.multiplyByPointAsVector(io.TRANSFORM_2D,r.direction,r.direction2D),F.multiplyByPointAsVector(io.TRANSFORM_2D,r.up,r.up2D);let a=r.frustum;a.right=r.position.z*.5,a.left=-a.right,a.top=a.right*(i.drawingBufferHeight/i.drawingBufferWidth),a.bottom=-a.top;let c=qmt;F.multiplyByPoint(io.TRANSFORM_2D_INVERSE,r.position2D,c.position),h.clone(r.direction,c.direction),h.clone(r.up,c.up),c.frustum=a;let u=Q0e(c);ZI(e,u);function f(){Y0e(e,t,r,s,u)}K0e(e,t,r,f)}function X0e(e,t,n,i){let o=e._scene,r=o.camera,s=r.frustum.right-r.frustum.left;r.frustum=n.frustum.clone();let a=r.frustum.fov,c=P.RADIANS_PER_DEGREE*.5,u=s*Math.tan(a*.5);r.frustum.far=u/Math.tan(c*.5)+1e7,r.frustum.fov=c;function f(p){r.frustum.fov=P.lerp(c,a,p.time),r.position.z=u/Math.tan(r.frustum.fov*.5)}let d=o.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:f,complete:function(){i(e)}});e._currentTweens.push(d)}function Qmt(e,t,n,i){t*=.5;let o=e._scene,r=o.camera,s=h.clone(n.position,KX),a=h.clone(n.direction,j0e),c=h.clone(n.up,q0e);o._mode=ne.MORPHING;function u(){r.frustum=n.frustum.clone();let f=h.clone(r.position,H0e),d=h.clone(r.direction,G0e),p=h.clone(r.up,W0e);f.z=s.z;function g(x){Gf(f,s,x.time,r.position),Gf(d,a,x.time,r.direction),Gf(p,c,x.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right)}let m=o.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:g,complete:function(){i(e)}});e._currentTweens.push(m)}e._morphToOrthographic?u():X0e(e,0,n,u)}function K0e(e,t,n,i){let o=e._scene,r=o.camera,s=h.clone(r.position,H0e),a=h.clone(r.direction,G0e),c=h.clone(r.up,W0e),u=h.clone(n.position2D,KX),f=h.clone(n.direction2D,j0e),d=h.clone(n.up2D,q0e);function p(m){Gf(s,u,m.time,r.position),Gf(a,f,m.time,r.direction),Gf(c,d,m.time,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.right,r.right),r._adjustOrthographicFrustum(!0)}let g=o.tweens.add({duration:t,easingFunction:Kr.QUARTIC_OUT,startObject:{time:0},stopObject:{time:1},update:p,complete:function(){Z0e(e,o,1,0,t,i)}});e._currentTweens.push(g)}function Z0e(e,t,n,i,o,r){let s={object:t,property:"morphTime",startValue:n,stopValue:i,duration:o,easingFunction:Kr.QUARTIC_OUT};l(r)&&(s.complete=function(){r(e)});let a=t.tweens.addProperty(s);e._currentTweens.push(a)}function $0e(e){return function(t){let n=t._scene;n._mode=ne.SCENE3D,n.morphTime=ne.getMorphTime(ne.SCENE3D),_4(t);let i=n.camera;(t._previousMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone());let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE3D,r)}}function Q0e(e){return function(t){let n=t._scene;n._mode=ne.SCENE2D,n.morphTime=ne.getMorphTime(ne.SCENE2D),_4(t);let i=n.camera;h.clone(e.position,i.position),i.position.z=n.ellipsoid.maximumRadius*2,h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right),i.frustum=e.frustum.clone();let o=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.SCENE2D,o)}}function Jmt(e){return function(t){let n=t._scene;n._mode=ne.COLUMBUS_VIEW,n.morphTime=ne.getMorphTime(ne.COLUMBUS_VIEW),_4(t);let i=n.camera;(t._previousModeMode!==ne.MORPHING||t._morphCancelled)&&(t._morphCancelled=!1,h.clone(e.position,i.position),h.clone(e.direction,i.direction),h.clone(e.up,i.up),h.cross(i.direction,i.up,i.right),h.normalize(i.right,i.right));let o=i.frustum;n.frameState.useLogDepth&&(o.near=.1,o.far=1e10);let r=l(t._completeMorph);t._completeMorph=void 0,n.camera.update(n.mode),t._scene.morphComplete.raiseEvent(t,t._previousMode,ne.COLUMBUS_VIEW,r)}}var g4=bb;var ept={LEFT_DRAG:0,RIGHT_DRAG:1,MIDDLE_DRAG:2,WHEEL:3,PINCH:4},Li=Object.freeze(ept);function js(e,t){let n=`${e}`;return l(t)&&(n+=`+${t}`),n}function tpt(e,t){U.clone(e.distance.startPosition,t.distance.startPosition),U.clone(e.distance.endPosition,t.distance.endPosition),U.clone(e.angleAndHeight.startPosition,t.angleAndHeight.startPosition),U.clone(e.angleAndHeight.endPosition,t.angleAndHeight.endPosition)}function J0e(e,t,n){let i=js(Li.PINCH,t),o=e._update,r=e._isDown,s=e._eventStartPosition,a=e._pressTime,c=e._releaseTime;o[i]=!0,r[i]=!1,s[i]=new U;let u=e._movement[i];l(u)||(u=e._movement[i]={}),u.distance={startPosition:new U,endPosition:new U},u.angleAndHeight={startPosition:new U,endPosition:new U},u.prevAngle=0,e._eventHandler.setInputAction(function(f){e._buttonsDown++,r[i]=!0,a[i]=new Date,U.lerp(f.position1,f.position2,.5,s[i])},bn.PINCH_START,t),e._eventHandler.setInputAction(function(){e._buttonsDown=Math.max(e._buttonsDown-1,0),r[i]=!1,c[i]=new Date},bn.PINCH_END,t),e._eventHandler.setInputAction(function(f){if(r[i]){o[i]?(tpt(f,u),o[i]=!1,u.prevAngle=u.angleAndHeight.startPosition.x):(U.clone(f.distance.endPosition,u.distance.endPosition),U.clone(f.angleAndHeight.endPosition,u.angleAndHeight.endPosition));let d=u.angleAndHeight.endPosition.x,p=u.prevAngle,g=Math.PI*2;for(;d>=p+Math.PI;)d-=g;for(;d<p-Math.PI;)d+=g;u.angleAndHeight.endPosition.x=-d*n.clientWidth/12,u.angleAndHeight.startPosition.x=-p*n.clientWidth/12}},bn.PINCH_MOVE,t)}function exe(e,t){let n=js(Li.WHEEL,t),i=e._pressTime,o=e._releaseTime,r=e._update;r[n]=!0;let s=e._movement[n];l(s)||(s=e._movement[n]={});let a=e._lastMovement[n];l(a)||(a=e._lastMovement[n]={startPosition:new U,endPosition:new U,valid:!1}),s.startPosition=new U,U.clone(U.ZERO,s.startPosition),s.endPosition=new U,e._eventHandler.setInputAction(function(c){let u=7.5*P.toRadians(c);i[n]=o[n]=new Date,s.endPosition.x=0,s.endPosition.y=u,U.clone(s.endPosition,a.endPosition),a.valid=!0,r[n]=!1},bn.WHEEL,t)}function qE(e,t,n){let i=js(n,t),o=e._isDown,r=e._eventStartPosition,s=e._pressTime;o[i]=!1,r[i]=new U;let a=e._lastMovement[i];l(a)||(a=e._lastMovement[i]={startPosition:new U,endPosition:new U,valid:!1});let c,u;n===Li.LEFT_DRAG?(c=bn.LEFT_DOWN,u=bn.LEFT_UP):n===Li.RIGHT_DRAG?(c=bn.RIGHT_DOWN,u=bn.RIGHT_UP):n===Li.MIDDLE_DRAG&&(c=bn.MIDDLE_DOWN,u=bn.MIDDLE_UP),e._eventHandler.setInputAction(function(f){e._buttonsDown++,a.valid=!1,o[i]=!0,s[i]=new Date,U.clone(f.position,r[i])},c,t),e._eventHandler.setInputAction(function(){ZX(js(n,void 0),e);for(let f of Object.values(ha)){let d=js(n,f);ZX(d,e)}},u,t)}function ZX(e,t){let n=t._releaseTime,i=t._isDown;i[e]&&(t._buttonsDown=Math.max(t._buttonsDown-1,0)),i[e]=!1,n[e]=new Date}function txe(e,t){U.clone(e.startPosition,t.startPosition),U.clone(e.endPosition,t.endPosition)}function npt(e,t,n){let i=n._isDown,o=!1,r=js(e,t);for(let[c,u]of Object.entries(i))c.startsWith(e)&&u&&c!==r&&(o=!0,ZX(c,n));if(!o)return;let s=n._pressTime,a=n._lastMovement[r];l(a)||(a=n._lastMovement[r]={startPosition:new U,endPosition:new U,valid:!1}),n._buttonsDown++,a.valid=!1,i[r]=!0,s[r]=new Date}function nxe(e,t){let n=e._update,i=e._movement,o=e._lastMovement,r=e._isDown;for(let s in Li)if(Li.hasOwnProperty(s)){let a=Li[s];if(l(a)){let c=js(a,t);n[c]=!0,l(e._lastMovement[c])||(e._lastMovement[c]={startPosition:new U,endPosition:new U,valid:!1}),l(e._movement[c])||(e._movement[c]={startPosition:new U,endPosition:new U})}}e._eventHandler.setInputAction(function(s){for(let a in Li)if(Li.hasOwnProperty(a)){let c=Li[a];if(l(c)){let u=js(c,t);npt(c,t,e),r[u]&&(n[u]?(txe(i[u],o[u]),o[u].valid=!0,txe(s,i[u]),n[u]=!1):U.clone(s.endPosition,i[u].endPosition))}}U.clone(s.endPosition,e._currentMousePosition)},bn.MOUSE_MOVE,t)}function Wf(e){this._eventHandler=new Hf(e),this._update={},this._movement={},this._lastMovement={},this._isDown={},this._eventStartPosition={},this._pressTime={},this._releaseTime={},this._buttonsDown=0,this._currentMousePosition=new U,exe(this,void 0),J0e(this,void 0,e),qE(this,void 0,Li.LEFT_DRAG),qE(this,void 0,Li.RIGHT_DRAG),qE(this,void 0,Li.MIDDLE_DRAG),nxe(this,void 0);for(let t in ha)if(ha.hasOwnProperty(t)){let n=ha[t];l(n)&&(exe(this,n),J0e(this,n,e),qE(this,n,Li.LEFT_DRAG),qE(this,n,Li.RIGHT_DRAG),qE(this,n,Li.MIDDLE_DRAG),nxe(this,n))}}Object.defineProperties(Wf.prototype,{currentMousePosition:{get:function(){return this._currentMousePosition}},anyButtonDown:{get:function(){let e=!this._update[js(Li.WHEEL)]||!this._update[js(Li.WHEEL,ha.SHIFT)]||!this._update[js(Li.WHEEL,ha.CTRL)]||!this._update[js(Li.WHEEL,ha.ALT)];return this._buttonsDown>0||e}}});Wf.prototype.isMoving=function(e,t){let n=js(e,t);return!this._update[n]};Wf.prototype.getMovement=function(e,t){let n=js(e,t);return this._movement[n]};Wf.prototype.getLastMovement=function(e,t){let n=js(e,t),i=this._lastMovement[n];if(i.valid)return i};Wf.prototype.isButtonDown=function(e,t){let n=js(e,t);return this._isDown[n]};Wf.prototype.getStartMousePosition=function(e,t){if(e===Li.WHEEL)return this._currentMousePosition;let n=js(e,t);return this._eventStartPosition[n]};Wf.prototype.getButtonPressTime=function(e,t){let n=js(e,t);return this._pressTime[n]};Wf.prototype.getButtonReleaseTime=function(e,t){let n=js(e,t);return this._releaseTime[n]};Wf.prototype.reset=function(){for(let e in this._update)this._update.hasOwnProperty(e)&&(this._update[e]=!0)};Wf.prototype.isDestroyed=function(){return!1};Wf.prototype.destroy=function(){return this._eventHandler=this._eventHandler&&this._eventHandler.destroy(),ue(this)};var y4=Wf;function x4(e,t,n,i,o,r,s,a,c,u){this._tweens=e,this._tweenjs=t,this._startObject=Ge(n),this._stopObject=Ge(i),this._duration=o,this._delay=r,this._easingFunction=s,this._update=a,this._complete=c,this.cancel=u,this.needsStart=!0}Object.defineProperties(x4.prototype,{startObject:{get:function(){return this._startObject}},stopObject:{get:function(){return this._stopObject}},duration:{get:function(){return this._duration}},delay:{get:function(){return this._delay}},easingFunction:{get:function(){return this._easingFunction}},update:{get:function(){return this._update}},complete:{get:function(){return this._complete}},tweenjs:{get:function(){return this._tweenjs}}});x4.prototype.cancelTween=function(){this._tweens.remove(this)};function th(){this._tweens=[]}Object.defineProperties(th.prototype,{length:{get:function(){return this._tweens.length}}});th.prototype.add=function(e){if(e=y(e,y.EMPTY_OBJECT),e.duration===0)return l(e.complete)&&e.complete(),new x4(this);let t=e.duration/jn.SECONDS_PER_MILLISECOND,n=y(e.delay,0),i=n/jn.SECONDS_PER_MILLISECOND,o=y(e.easingFunction,Kr.LINEAR_NONE),r=e.startObject,s=new Hpe(r);s.to(Ge(e.stopObject),t),s.delay(i),s.easing(o),l(e.update)&&s.onUpdate(function(){e.update(r)}),s.onComplete(y(e.complete,null)),s.repeat(y(e._repeat,0));let a=new x4(this,s,e.startObject,e.stopObject,e.duration,n,o,e.update,e.complete,e.cancel);return this._tweens.push(a),a};th.prototype.addProperty=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.object,n=e.property,i=e.startValue,o=e.stopValue;function r(s){t[n]=s.value}return this.add({startObject:{value:i},stopObject:{value:o},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:r,complete:e.complete,cancel:e.cancel,_repeat:e._repeat})};th.prototype.addAlpha=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.material,n=[];for(let o in t.uniforms)t.uniforms.hasOwnProperty(o)&&l(t.uniforms[o])&&l(t.uniforms[o].alpha)&&n.push(o);function i(o){let r=n.length;for(let s=0;s<r;++s)t.uniforms[n[s]].alpha=o.alpha}return this.add({startObject:{alpha:y(e.startValue,0)},stopObject:{alpha:y(e.stopValue,1)},duration:y(e.duration,3),delay:e.delay,easingFunction:e.easingFunction,update:i,complete:e.complete,cancel:e.cancel})};th.prototype.addOffsetIncrement=function(e){e=y(e,y.EMPTY_OBJECT);let n=e.material.uniforms;return this.addProperty({object:n,property:"offset",startValue:n.offset,stopValue:n.offset+1,duration:e.duration,delay:e.delay,easingFunction:e.easingFunction,update:e.update,cancel:e.cancel,_repeat:1/0})};th.prototype.remove=function(e){if(!l(e))return!1;let t=this._tweens.indexOf(e);return t!==-1?(e.tweenjs.stop(),l(e.cancel)&&e.cancel(),this._tweens.splice(t,1),!0):!1};th.prototype.removeAll=function(){let e=this._tweens;for(let t=0;t<e.length;++t){let n=e[t];n.tweenjs.stop(),l(n.cancel)&&n.cancel()}e.length=0};th.prototype.contains=function(e){return l(e)&&this._tweens.indexOf(e)!==-1};th.prototype.get=function(e){return this._tweens[e]};th.prototype.update=function(e){let t=this._tweens,n=0;for(e=l(e)?e/jn.SECONDS_PER_MILLISECOND:Ti();n<t.length;){let i=t[n],o=i.tweenjs;i.needsStart?(i.needsStart=!1,o.start(e)):o.update(e)?n++:(o.stop(),t.splice(n,1))}};var YE=th;function QI(e){this.enableInputs=!0,this.enableTranslate=!0,this.enableZoom=!0,this.enableRotate=!0,this.enableTilt=!0,this.enableLook=!0,this.inertiaSpin=.9,this.inertiaTranslate=.9,this.inertiaZoom=.8,this.maximumMovementRatio=.1,this.bounceAnimationTime=3,this.minimumZoomDistance=1,this.maximumZoomDistance=Number.POSITIVE_INFINITY,this.zoomFactor=5,this.translateEventTypes=Li.LEFT_DRAG,this.zoomEventTypes=[Li.RIGHT_DRAG,Li.WHEEL,Li.PINCH],this.rotateEventTypes=Li.LEFT_DRAG,this.tiltEventTypes=[Li.MIDDLE_DRAG,Li.PINCH,{eventType:Li.LEFT_DRAG,modifier:ha.CTRL},{eventType:Li.RIGHT_DRAG,modifier:ha.CTRL}],this.lookEventTypes={eventType:Li.LEFT_DRAG,modifier:ha.SHIFT};let t=y(e.ellipsoid,ee.default);this.minimumPickingTerrainHeight=ee.WGS84.equals(t)?15e4:t.minimumRadius*.025,this._minimumPickingTerrainHeight=this.minimumPickingTerrainHeight,this.minimumPickingTerrainDistanceWithInertia=ee.WGS84.equals(t)?4e3:t.minimumRadius*63e-5,this.minimumCollisionTerrainHeight=ee.WGS84.equals(t)?15e3:t.minimumRadius*.0025,this._minimumCollisionTerrainHeight=this.minimumCollisionTerrainHeight,this.minimumTrackBallHeight=ee.WGS84.equals(t)?75e5:t.minimumRadius*1.175,this._minimumTrackBallHeight=this.minimumTrackBallHeight,this.enableCollisionDetection=!0,this.maximumTiltAngle=void 0,this._scene=e,this._globe=void 0,this._ellipsoid=t,this._lastGlobeHeight=0,this._aggregator=new y4(e.canvas),this._lastInertiaSpinMovement=void 0,this._lastInertiaZoomMovement=void 0,this._lastInertiaTranslateMovement=void 0,this._lastInertiaTiltMovement=void 0,this._inertiaDisablers={_lastInertiaZoomMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement","_lastInertiaTiltMovement"],_lastInertiaTiltMovement:["_lastInertiaSpinMovement","_lastInertiaTranslateMovement"]},this._tweens=new YE,this._tween=void 0,this._horizontalRotationAxis=void 0,this._tiltCenterMousePosition=new U(-1,-1),this._tiltCenter=new h,this._rotateMousePosition=new U(-1,-1),this._rotateStartPosition=new h,this._strafeStartPosition=new h,this._strafeMousePosition=new U,this._strafeEndMousePosition=new U,this._zoomMouseStart=new U(-1,-1),this._zoomWorldPosition=new h,this._useZoomWorldPosition=!1,this._panLastMousePosition=new U,this._panLastWorldPosition=new h,this._tiltCVOffMap=!1,this._looking=!1,this._rotating=!1,this._strafing=!1,this._zoomingOnVector=!1,this._zoomingUnderground=!1,this._rotatingZoom=!1,this._adjustedHeightForTerrain=!1,this._cameraUnderground=!1;let n=e.mapProjection;this._maxCoord=n.project(new fe(Math.PI,P.PI_OVER_TWO)),this._rotateFactor=void 0,this._rotateRateRangeAdjustment=void 0,this._maximumRotateRate=1.77,this._minimumRotateRate=1/5e3,this._minimumZoomRate=20,this._maximumZoomRate=5906376272e3,this._minimumUndergroundPickDistance=2e3,this._maximumUndergroundPickDistance=1e4}function ipt(e,t){if(e<0)return 0;let n=(1-t)*25;return Math.exp(-n*e)}function opt(e){return U.equalsEpsilon(e.startPosition,e.endPosition,P.EPSILON14)}var rpt=.4;function spt(e,t,n,i,o,r,s){let a=r[s];l(a)||(a=r[s]={startPosition:new U,endPosition:new U,motion:new U,inertiaEnabled:!0});let c=e.getButtonPressTime(t,n),u=e.getButtonReleaseTime(t,n),f=c&&u&&(u.getTime()-c.getTime())/1e3,p=u&&(new Date().getTime()-u.getTime())/1e3;if(c&&u&&f<rpt){let g=ipt(p,i),m=e.getLastMovement(t,n);if(!l(m)||opt(m)||!a.inertiaEnabled||(a.motion.x=(m.endPosition.x-m.startPosition.x)*.5,a.motion.y=(m.endPosition.y-m.startPosition.y)*.5,a.startPosition=U.clone(m.startPosition,a.startPosition),a.endPosition=U.multiplyByScalar(a.motion,g,a.endPosition),a.endPosition=U.add(a.startPosition,a.endPosition,a.endPosition),isNaN(a.endPosition.x)||isNaN(a.endPosition.y)||U.distance(a.startPosition,a.endPosition)<.5))return;if(!e.isButtonDown(t,n)){let x=e.getStartMousePosition(t,n);o(r,x,a)}}}function apt(e,t){if(l(t)){let n=e[t];l(n)&&(n.inertiaEnabled=!0);let i=e._inertiaDisablers[t];if(l(i)){let o=i.length;for(let r=0;r<o;++r)n=e[i[r]],l(n)&&(n.inertiaEnabled=!1)}}}var ixe=[];function Zc(e,t,n,i,o,r){if(!l(n))return;let s=e._aggregator;Array.isArray(n)||(ixe[0]=n,n=ixe);let a=n.length;for(let c=0;c<a;++c){let u=n[c],f=l(u.eventType)?u.eventType:u,d=u.modifier,p=s.isMoving(f,d)&&s.getMovement(f,d),g=s.getStartMousePosition(f,d);e.enableInputs&&t&&(p?(i(e,g,p),apt(e,r)):o<1&&spt(s,f,d,o,i,e,r))}}var b4=new mn,cpt=new h,lpt=new U,upt=new h,fpt=new U,dpt=new h,hpt=new h,mpt=new h,ppt=new h,pxe=new h,_pt=new h,gpt=new h,ypt=new h,xpt=new h,bpt=new h,Tpt=new h,Apt=new h,Cpt=new h,Ept=new h,Spt=new h,Tb=new h,oxe=new h,rxe=new h,$X={orientation:new Ua};function rK(e,t,n,i,o,r){let s=1;l(r)&&(s=P.clamp(Math.abs(r),.25,1));let a=n.endPosition.y-n.startPosition.y,u=a>0?e.minimumZoomDistance*s:0,f=e.maximumZoomDistance,d=o-u,p=i*d;p=P.clamp(p,e._minimumZoomRate,e._maximumZoomRate);let g=a/e._scene.canvas.clientHeight;g=Math.min(g,e.maximumMovementRatio);let m=p*g;if(e.enableCollisionDetection||e.minimumZoomDistance===0||!l(e._globe)){if(m>0&&Math.abs(o-u)<1||m<0&&Math.abs(o-f)<1)return;o-m<u?m=o-u-1:o-m>f&&(m=o-f)}let x=e._scene,b=x.camera,T=x.mode,A=$X.orientation;if(A.heading=b.heading,A.pitch=b.pitch,A.roll=b.roll,b.frustum instanceof rn){Math.abs(m)>0&&(b.zoomIn(m),b._adjustOrthographicFrustum(!0));return}let C=y(n.inertiaEnabled,U.equals(t,e._zoomMouseStart)),S=e._zoomingOnVector,v=e._rotatingZoom,D;if(C||(e._zoomMouseStart=U.clone(t,e._zoomMouseStart),l(e._globe)&&T===ne.SCENE2D?(D=b.getPickRay(t,b4).origin,D=h.fromElements(D.y,D.z,D.x)):l(e._globe)&&(D=__(e,t,cpt)),l(D)?(e._useZoomWorldPosition=!0,e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition)):e._useZoomWorldPosition=!1,S=e._zoomingOnVector=!1,v=e._rotatingZoom=!1,e._zoomingUnderground=e._cameraUnderground),!e._useZoomWorldPosition){b.zoomIn(m);return}let O=T===ne.COLUMBUS_VIEW;if(b.positionCartographic.height<2e6&&(v=!0),!C||v){if(T===ne.SCENE2D){let R=e._zoomWorldPosition,M=b.position;if(!h.equals(R,M)&&b.positionCartographic.height<e._maxCoord.x*2){let L=b.position.x,_=h.subtract(R,M,upt);h.normalize(_,_);let E=h.distance(R,M)*m/(b.getMagnitude()*.5);b.move(_,E*.5),(b.position.x<0&&L>0||b.position.x>0&&L<0)&&(D=b.getPickRay(t,b4).origin,D=h.fromElements(D.y,D.z,D.x),e._zoomWorldPosition=h.clone(D,e._zoomWorldPosition))}}else if(T===ne.SCENE3D){let R=h.normalize(b.position,pxe);if(e._cameraUnderground||e._zoomingUnderground||b.positionCartographic.height<3e3&&Math.abs(h.dot(b.direction,R))<.6)O=!0;else{let M=x.canvas,L=fpt;L.x=M.clientWidth/2,L.y=M.clientHeight/2;let _=__(e,L,dpt);if(!l(_))O=!0;else if(b.positionCartographic.height<1e6)if(h.dot(b.direction,R)>=-.5)O=!0;else{let E=gpt;h.clone(b.position,E);let w=e._zoomWorldPosition,I=_pt;if(I=h.normalize(w,I),h.dot(I,R)<0)return;let N=Spt,B=bpt;h.clone(b.direction,B),h.add(E,h.multiplyByScalar(B,1e3,Tb),N);let H=Tpt,V=Apt;h.subtract(w,E,H),h.normalize(H,V);let G=h.dot(R,V);if(G>=0){e._zoomMouseStart.x=-1;return}let k=Math.acos(-G),W=h.magnitude(E),q=h.magnitude(w),J=W-m,j=h.magnitude(H),Z=Math.asin(P.clamp(j/q*Math.sin(k),-1,1)),Q=Math.asin(P.clamp(J/q*Math.sin(k),-1,1)),de=Z-Q+k,ye=ypt;h.normalize(E,ye);let ae=xpt;ae=h.cross(V,ye,ae),ae=h.normalize(ae,ae),h.normalize(h.cross(ye,ae,Tb),B),h.multiplyByScalar(h.normalize(N,Tb),h.magnitude(N)-m,N),h.normalize(E,E),h.multiplyByScalar(E,J,E);let _e=Cpt;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,oxe),h.multiplyByScalar(B,Math.sin(de),rxe),Tb),J,_e),h.add(E,_e,E),h.normalize(N,ye),h.normalize(h.cross(ye,ae,Tb),B);let xe=Ept;h.multiplyByScalar(h.add(h.multiplyByScalar(ye,Math.cos(de)-1,oxe),h.multiplyByScalar(B,Math.sin(de),rxe),Tb),h.magnitude(N),xe),h.add(N,xe,N),h.clone(E,b.position),h.normalize(h.subtract(N,E,Tb),b.direction),h.clone(b.direction,b.direction),h.cross(b.direction,b.up,b.right),h.cross(b.right,b.direction,b.up),b.setView($X);return}else{let E=h.normalize(_,hpt),w=h.normalize(e._zoomWorldPosition,mpt),I=h.dot(w,E);if(I>0&&I<1){let N=P.acosClamped(I),B=h.cross(w,E,ppt),H=Math.abs(N)>P.toRadians(20)?b.positionCartographic.height*.75:b.positionCartographic.height-m,V=m/H;b.rotate(B,N*V)}}}}e._rotatingZoom=!O}if(!C&&O||S){let R,M=Vi.worldToWindowCoordinates(x,e._zoomWorldPosition,lpt);T!==ne.COLUMBUS_VIEW&&U.equals(t,e._zoomMouseStart)&&l(M)?R=b.getPickRay(M,b4):R=b.getPickRay(t,b4);let L=R.direction;(T===ne.COLUMBUS_VIEW||T===ne.SCENE2D)&&h.fromElements(L.y,L.z,L.x,L),b.move(L,m),e._zoomingOnVector=!0}else b.zoomIn(m);e._cameraUnderground||b.setView($X)}var vpt=new mn,wpt=new mn,Dpt=new h;function Ipt(e,t,n){let o=e._scene.camera,r=o.getPickRay(n.startPosition,vpt).origin,s=o.getPickRay(n.endPosition,wpt).origin;r=h.fromElements(r.y,r.z,r.x,r),s=h.fromElements(s.y,s.z,s.x,s);let a=h.subtract(r,s,Dpt),c=h.magnitude(a);c>0&&(h.normalize(a,a),o.move(a,c))}function sxe(e,t,n){l(n.distance)&&(n=n.distance);let o=e._scene.camera;rK(e,t,n,e.zoomFactor,o.getMagnitude())}var Ppt=new U,Rpt=new U;function axe(e,t,n){if(l(n.angleAndHeight)){Opt(e,t,n.angleAndHeight);return}let i=e._scene,o=i.camera,r=i.canvas,s=r.clientWidth,a=r.clientHeight,c=Ppt;c.x=2/s*n.startPosition.x-1,c.y=2/a*(a-n.startPosition.y)-1,c=U.normalize(c,c);let u=Rpt;u.x=2/s*n.endPosition.x-1,u.y=2/a*(a-n.endPosition.y)-1,u=U.normalize(u,u);let f=P.acosClamped(c.x);c.y<0&&(f=P.TWO_PI-f);let d=P.acosClamped(u.x);u.y<0&&(d=P.TWO_PI-d);let p=d-f;o.twistRight(p)}function Opt(e,t,n){let i=e._rotateFactor*e._rotateRateRangeAdjustment;i>e._maximumRotateRate&&(i=e._maximumRotateRate),i<e._minimumRotateRate&&(i=e._minimumRotateRate);let o=e._scene,r=o.camera,s=o.canvas,a=(n.endPosition.x-n.startPosition.x)/s.clientWidth;a=Math.min(a,e.maximumMovementRatio);let c=i*a*Math.PI*4;r.twistRight(c)}function Mpt(e){let t=e._scene.mapMode2D===wu.ROTATE;F.equals(F.IDENTITY,e._scene.camera.transform)?(Zc(e,e.enableTranslate,e.translateEventTypes,Ipt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Zc(e,e.enableZoom,e.zoomEventTypes,sxe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Zc(e,e.enableRotate,e.tiltEventTypes,axe,e.inertiaSpin,"_lastInertiaTiltMovement")):(Zc(e,e.enableZoom,e.zoomEventTypes,sxe,e.inertiaZoom,"_lastInertiaZoomMovement"),t&&Zc(e,e.enableRotate,e.translateEventTypes,axe,e.inertiaSpin,"_lastInertiaSpinMovement"))}var _xe=new mn,Lpt=new h,Npt=new h;function __(e,t,n){let i=e._scene,o=e._globe,r=i.camera,s;if(i.pickPositionSupported&&(s=i.pickPositionWorldCoordinates(t,Lpt)),!l(o))return h.clone(s,n);let a=!e._cameraUnderground,c=r.getPickRay(t,_xe),u=o.pickWorldCoordinates(c,i,a,Npt),f=l(s)?h.distance(s,r.positionWC):Number.POSITIVE_INFINITY,d=l(u)?h.distance(u,r.positionWC):Number.POSITIVE_INFINITY;return f<d?h.clone(s,n):h.clone(u,n)}var Fpt=new fe;function w4(e){let t=e._ellipsoid,n=e._scene,i=n.camera,o=n.mode,r=0;if(o===ne.SCENE3D){let c=t.cartesianToCartographic(i.position,Fpt);l(c)&&(r=c.height)}else r=i.position.z;let s=y(e._scene.globeHeight,0);return Math.abs(s-r)}var Bpt=new h;function gxe(e,t){let n=t.origin,i=t.direction,o=w4(e),r=h.normalize(n,Bpt),s=Math.abs(h.dot(r,i));return s=Math.max(s,.5)*2,o*s}function yxe(e,t,n,i){let o=h.distance(t.origin,n),r=w4(e),s=P.clamp(r*5,e._minimumUndergroundPickDistance,e._maximumUndergroundPickDistance);return o>s&&(o=Math.min(o,r/5),o=Math.max(o,100)),mn.getPoint(t,o,i)}function xxe(e,t,n,i){let o;return l(n)?(o=h.distance(t.origin,n),o>e._maximumUndergroundPickDistance&&(o=w4(e))):o=w4(e),mn.getPoint(t,o,i)}var kpt=new U;function bxe(e,t){let n=t.endPosition,i=U.subtract(t.endPosition,t.startPosition,kpt),o=e._strafeEndMousePosition;U.add(o,i,o),t.endPosition=o,sK(e,t,e._strafeStartPosition),t.endPosition=n}var cxe=new mn,Vpt=new mn,QX=new h,Upt=new h,zpt=new h,Hpt=new h,Gpt=new an(h.UNIT_X,0),Wpt=new U,jpt=new U;function qpt(e,t,n){if(h.equals(t,e._translateMousePosition)||(e._looking=!1),h.equals(t,e._strafeMousePosition)||(e._strafing=!1),e._looking){Ru(e,t,n);return}if(e._strafing){bxe(e,n);return}let o=e._scene.camera,r=e._cameraUnderground,s=U.clone(n.startPosition,Wpt),a=U.clone(n.endPosition,jpt),c=o.getPickRay(s,cxe),u=h.clone(h.ZERO,Hpt),f=h.UNIT_X,d;if(o.position.z<e._minimumPickingTerrainHeight&&(d=__(e,s,QX),l(d)&&(u.x=d.x)),r||u.x>o.position.z&&l(d)){let C=d;r&&(C=xxe(e,c,d,QX)),U.clone(t,e._strafeMousePosition),U.clone(t,e._strafeEndMousePosition),h.clone(C,e._strafeStartPosition),e._strafing=!0,sK(e,n,e._strafeStartPosition);return}let p=an.fromPointNormal(u,f,Gpt);c=o.getPickRay(s,cxe);let g=$n.rayPlane(c,p,QX),m=o.getPickRay(a,Vpt),x=$n.rayPlane(m,p,Upt);if(!l(g)||!l(x)){e._looking=!0,Ru(e,t,n),U.clone(t,e._translateMousePosition);return}let b=h.subtract(g,x,zpt),T=b.x;b.x=b.y,b.y=b.z,b.z=T;let A=h.magnitude(b);A>P.EPSILON6&&(h.normalize(b,b),o.move(b,A))}var Txe=new U,C4=new mn,E4=new h,Ypt=new h,Axe=new F,Xpt=new F,Kpt=new h,Zpt=new an(h.UNIT_X,0),JX=new h,nK=new fe,Cxe=new F,$pt=new Me,Qpt=new $,S4=new h;function Jpt(e,t,n){if(l(n.angleAndHeight)&&(n=n.angleAndHeight),U.equals(t,e._tiltCenterMousePosition)||(e._tiltCVOffMap=!1,e._looking=!1),e._looking){Ru(e,t,n);return}let o=e._scene.camera;e._tiltCVOffMap||!e.onMap()||Math.abs(o.position.z)>e._minimumPickingTerrainHeight?(e._tiltCVOffMap=!0,e_t(e,t,n)):t_t(e,t,n)}function e_t(e,t,n){let i=e._scene,o=i.camera,r=i.canvas,s=Txe;s.x=r.clientWidth/2,s.y=r.clientHeight/2;let a=o.getPickRay(s,C4),c=h.UNIT_X,u=a.origin,f=a.direction,d,p=h.dot(c,f);if(Math.abs(p)>P.EPSILON6&&(d=-h.dot(c,u)/p),!l(d)||d<=0){e._looking=!0,Ru(e,t,n),U.clone(t,e._tiltCenterMousePosition);return}let g=h.multiplyByScalar(f,d,E4);h.add(u,g,g);let m=i.mapProjection,x=m.ellipsoid;h.fromElements(g.y,g.z,g.x,g);let b=m.unproject(g,nK);x.cartographicToCartesian(b,g);let T=Nt.eastNorthUpToFixedFrame(g,x,Axe),A=e._globe,C=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let S=F.clone(o.transform,Cxe);o._setTransform(T),Pu(e,t,n,h.UNIT_Z),o._setTransform(S),e._globe=A,e._ellipsoid=C;let v=C.maximumRadius;e._rotateFactor=1/v,e._rotateRateRangeAdjustment=v}function t_t(e,t,n){let i=e._scene,o=i.camera,r=e._cameraUnderground,s,a,c=h.UNIT_X;if(U.equals(t,e._tiltCenterMousePosition))s=h.clone(e._tiltCenter,E4);else{if(o.position.z<e._minimumPickingTerrainHeight&&(s=__(e,t,E4)),!l(s)){a=o.getPickRay(t,C4);let _=a.origin,E=a.direction,w,I=h.dot(c,E);if(Math.abs(I)>P.EPSILON6&&(w=-h.dot(c,_)/I),!l(w)||w<=0){e._looking=!0,Ru(e,t,n),U.clone(t,e._tiltCenterMousePosition);return}s=h.multiplyByScalar(E,w,E4),h.add(_,s,s)}r&&(l(a)||(a=o.getPickRay(t,C4)),yxe(e,a,s,s)),U.clone(t,e._tiltCenterMousePosition),h.clone(s,e._tiltCenter)}let u=i.canvas,f=Txe;f.x=u.clientWidth/2,f.y=e._tiltCenterMousePosition.y,a=o.getPickRay(f,C4);let d=h.clone(h.ZERO,Kpt);d.x=s.x;let p=an.fromPointNormal(d,c,Zpt),g=$n.rayPlane(a,p,Ypt),m=o._projection,x=m.ellipsoid;h.fromElements(s.y,s.z,s.x,s);let b=m.unproject(s,nK);x.cartographicToCartesian(b,s);let T=Nt.eastNorthUpToFixedFrame(s,x,Axe),A;l(g)?(h.fromElements(g.y,g.z,g.x,g),b=m.unproject(g,nK),x.cartographicToCartesian(b,g),A=Nt.eastNorthUpToFixedFrame(g,x,Xpt)):A=T;let C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(o.transform,Cxe);o._setTransform(T);let O=h.cross(h.UNIT_Z,h.normalize(o.position,JX),JX),R=h.dot(o.right,O);if(Pu(e,t,n,v,!1,!0),o._setTransform(A),R<0){let _=n.startPosition.y-n.endPosition.y;(r&&_<0||!r&&_>0)&&(v=void 0);let E=o.constrainedAxis;o.constrainedAxis=void 0,Pu(e,t,n,v,!0,!1),o.constrainedAxis=E}else Pu(e,t,n,v,!0,!1);if(l(o.constrainedAxis)){let _=h.cross(o.direction,o.constrainedAxis,S4);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,o.right)<0&&h.negate(_,_),h.cross(_,o.direction,o.up),h.cross(o.direction,o.up,o.right),h.normalize(o.up,o.up),h.normalize(o.right,o.right))}o._setTransform(D),e._globe=C,e._ellipsoid=S;let M=S.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let L=h.clone(o.positionWC,JX);if(e.enableCollisionDetection&&lK(e,!0),!h.equals(o.positionWC,L)){o._setTransform(A),o.worldToCameraCoordinatesPoint(L,L);let _=h.magnitudeSquared(L);h.magnitudeSquared(o.position)>_&&(h.normalize(o.position,o.position),h.multiplyByScalar(o.position,Math.sqrt(_),o.position));let E=h.angleBetween(L,o.position),w=h.cross(L,o.position,L);h.normalize(w,w);let I=Me.fromAxisAngle(w,E,$pt),N=$.fromQuaternion(I,Qpt);$.multiplyByVector(N,o.direction,o.direction),$.multiplyByVector(N,o.up,o.up),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up),o._setTransform(D)}}var Exe=new U,Sxe=new mn,vxe=new h;function n_t(e,t,n){l(n.distance)&&(n=n.distance);let i=e._scene,o=i.camera,r=i.canvas,s=e._cameraUnderground,a;s?a=t:(a=Exe,a.x=r.clientWidth/2,a.y=r.clientHeight/2);let c=o.getPickRay(a,Sxe),u=c.origin,f=c.direction,d=o.position.z,p;d<e._minimumPickingTerrainHeight&&(p=__(e,a,vxe));let g;if(l(p)&&(g=h.distance(u,p)),s){let m=gxe(e,c,d);l(g)?g=Math.min(g,m):g=m}if(!l(g)){let m=h.UNIT_X;g=-h.dot(m,u)/h.dot(m,f)}rK(e,t,n,e.zoomFactor,g)}function i_t(e){let n=e._scene.camera;if(!F.equals(F.IDENTITY,n.transform))Zc(e,e.enableRotate,e.rotateEventTypes,Pu,e.inertiaSpin,"_lastInertiaSpinMovement"),Zc(e,e.enableZoom,e.zoomEventTypes,Dxe,e.inertiaZoom,"_lastInertiaZoomMovement");else{let i=e._tweens;if(e._aggregator.anyButtonDown&&i.removeAll(),Zc(e,e.enableTilt,e.tiltEventTypes,Jpt,e.inertiaSpin,"_lastInertiaTiltMovement"),Zc(e,e.enableTranslate,e.translateEventTypes,qpt,e.inertiaTranslate,"_lastInertiaTranslateMovement"),Zc(e,e.enableZoom,e.zoomEventTypes,n_t,e.inertiaZoom,"_lastInertiaZoomMovement"),Zc(e,e.enableLook,e.lookEventTypes,Ru),!e._aggregator.anyButtonDown&&!i.contains(e._tween)){let o=n.createCorrectPositionTween(e.bounceAnimationTime);l(o)&&(e._tween=i.add(o))}i.update()}}var o_t=new mn,r_t=new an(h.UNIT_X,0),s_t=new h,a_t=new h;function sK(e,t,n){let i=e._scene,o=i.camera,r=o.getPickRay(t.endPosition,o_t),s=h.clone(o.direction,a_t);i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.z,s.x,s.y,s);let a=an.fromPointNormal(n,s,r_t),c=$n.rayPlane(r,a,s_t);l(c)&&(s=h.subtract(n,c,s),i.mode===ne.COLUMBUS_VIEW&&h.fromElements(s.y,s.z,s.x,s),h.add(o.position,s,o.position))}var lxe=new h,wxe=new fe,iK=new h,oK=new ee,c_t=new h,l_t=new h,u_t=new h;function f_t(e,t,n){let o=e._scene.camera,r=e._cameraUnderground,s=e._ellipsoid;if(!F.equals(o.transform,F.IDENTITY)){Pu(e,t,n);return}let a,c,u=s.geodeticSurfaceNormal(o.position,c_t);if(U.equals(t,e._rotateMousePosition)){if(e._looking)Ru(e,t,n,u);else if(e._rotating)Pu(e,t,n);else if(e._strafing)bxe(e,n);else{if(h.magnitude(o.position)<h.magnitude(e._rotateStartPosition))return;a=h.magnitude(e._rotateStartPosition),c=iK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,oK),tK(e,t,n,s)}return}e._looking=!1,e._rotating=!1,e._strafing=!1;let f=s.cartesianToCartographic(o.positionWC,wxe).height,d=e._globe;if(l(d)&&f<e._minimumPickingTerrainHeight){let p=__(e,n.startPosition,u_t);if(l(p)){let g=!1,m=o.getPickRay(n.startPosition,_xe);if(r)g=!0,xxe(e,m,p,p);else{let x=s.geodeticSurfaceNormal(p,l_t);Math.abs(h.dot(m.direction,x))<.05?g=!0:g=h.magnitude(o.position)<h.magnitude(p)}g?(U.clone(t,e._strafeEndMousePosition),h.clone(p,e._strafeStartPosition),e._strafing=!0,sK(e,n,e._strafeStartPosition)):(a=h.magnitude(p),c=iK,c.x=c.y=c.z=a,s=ee.fromCartesian3(c,oK),tK(e,t,n,s),h.clone(p,e._rotateStartPosition))}else e._looking=!0,Ru(e,t,n,u)}else l(o.pickEllipsoid(n.startPosition,e._ellipsoid,lxe))?(tK(e,t,n,e._ellipsoid),h.clone(lxe,e._rotateStartPosition)):f>e._minimumTrackBallHeight?(e._rotating=!0,Pu(e,t,n)):(e._looking=!0,Ru(e,t,n,u));U.clone(t,e._rotateMousePosition)}function Pu(e,t,n,i,o,r){o=y(o,!1),r=y(r,!1);let s=e._scene,a=s.camera,c=s.canvas,u=a.constrainedAxis;l(i)&&(a.constrainedAxis=i);let f=h.magnitude(a.position),d=e._rotateFactor*(f-e._rotateRateRangeAdjustment);d>e._maximumRotateRate&&(d=e._maximumRotateRate),d<e._minimumRotateRate&&(d=e._minimumRotateRate);let p=(n.startPosition.x-n.endPosition.x)/c.clientWidth,g=(n.startPosition.y-n.endPosition.y)/c.clientHeight;p=Math.min(p,e.maximumMovementRatio),g=Math.min(g,e.maximumMovementRatio);let m=d*p*Math.PI*2,x=d*g*Math.PI;if(l(i)&&l(e.maximumTiltAngle)){let b=e.maximumTiltAngle,T=h.dot(a.direction,i),A=Math.PI-Math.acos(T)+x;A>b&&(x-=A-b)}o||a.rotateRight(m),r||a.rotateUp(x),a.constrainedAxis=u}var eK=oe.clone(oe.UNIT_W),uxe=oe.clone(oe.UNIT_W),T4=new h,XE=new h,A4=new h,fxe=new h,d_t=new U,h_t=new U,m_t=new U,p_t=new U,__t=new mn;function tK(e,t,n,i){let o=e._scene,r=o.camera,s=U.clone(n.startPosition,d_t),a=U.clone(n.endPosition,h_t),c=i.cartesianToCartographic(r.positionWC,wxe).height,u,f;if(!n.inertiaEnabled&&c<e._minimumPickingTerrainHeight&&(u=h.clone(e._panLastWorldPosition,eK),!l(e._globe)&&!U.equalsEpsilon(s,e._panLastMousePosition)&&(u=__(e,s,eK)),!l(e._globe)&&l(u))){let d=h.subtract(u,r.positionWC,XE),p=h.multiplyByScalar(r.directionWC,h.dot(r.directionWC,d),XE),g=h.magnitude(p),m=r.frustum.getPixelDimensions(o.drawingBufferWidth,o.drawingBufferHeight,g,o.pixelRatio,p_t),x=U.subtract(a,s,m_t),b=h.multiplyByScalar(r.rightWC,x.x*m.x,XE),T=h.normalize(r.positionWC,pxe),A=r.getPickRay(a,__t).direction,C=h.subtract(A,h.projectVector(A,r.rightWC,A4),A4),S=h.angleBetween(C,r.directionWC),v=1;l(r.frustum.fov)&&(v=Math.max(Math.tan(S),.1));let D=Math.abs(h.dot(r.directionWC,T)),O=-x.y*m.y*2/Math.sqrt(v)*(1-D),R=h.multiplyByScalar(A,O,A4);D=Math.abs(h.dot(r.upWC,T));let M=h.multiplyByScalar(r.upWC,-x.y*(1-D)*m.y,fxe);f=h.add(u,b,uxe),f=h.add(f,R,f),f=h.add(f,M,f),h.clone(f,e._panLastWorldPosition),U.clone(a,e._panLastMousePosition)}if((!l(u)||!l(f))&&(u=r.pickEllipsoid(s,i,eK),f=r.pickEllipsoid(a,i,uxe)),!l(u)||!l(f)){e._rotating=!0,Pu(e,t,n);return}if(u=r.worldToCameraCoordinates(u,u),f=r.worldToCameraCoordinates(f,f),l(r.constrainedAxis)){let d=r.constrainedAxis,p=h.mostOrthogonalAxis(d,T4);h.cross(p,d,p),h.normalize(p,p);let g=h.cross(d,p,XE),m=h.magnitude(u),x=h.dot(d,u),b=Math.acos(x/m),T=h.multiplyByScalar(d,x,A4);h.subtract(u,T,T),h.normalize(T,T);let A=h.magnitude(f),C=h.dot(d,f),S=Math.acos(C/A),v=h.multiplyByScalar(d,C,fxe);h.subtract(f,v,v),h.normalize(v,v);let D=Math.acos(h.dot(T,p));h.dot(T,g)<0&&(D=P.TWO_PI-D);let O=Math.acos(h.dot(v,p));h.dot(v,g)<0&&(O=P.TWO_PI-O);let R=D-O,M;h.equalsEpsilon(d,r.position,P.EPSILON2)?M=r.right:M=h.cross(d,r.position,T4);let L=h.cross(d,M,T4),_=h.dot(L,h.subtract(u,d,XE)),E=h.dot(L,h.subtract(f,d,XE)),w;_>0&&E>0?w=S-b:_>0&&E<=0?h.dot(r.position,d)>0?w=-b-S:w=b+S:w=b-S,r.rotateRight(R),r.rotateUp(w)}else{h.normalize(u,u),h.normalize(f,f);let d=h.dot(u,f),p=h.cross(u,f,T4);if(d<1&&!h.equalsEpsilon(p,h.ZERO,P.EPSILON14)){let g=Math.acos(d);r.rotate(p,g)}}}var g_t=new h,y_t=new fe,dxe=0;function Dxe(e,t,n){l(n.distance)&&(n=n.distance);let i=n.inertiaEnabled,o=e._ellipsoid,r=e._scene,s=r.camera,a=r.canvas,c=e._cameraUnderground,u;c?u=t:(u=Exe,u.x=a.clientWidth/2,u.y=a.clientHeight/2);let f=s.getPickRay(u,Sxe),d,p=o.cartesianToCartographic(s.position,y_t).height,g=Math.abs(dxe)<e.minimumPickingTerrainDistanceWithInertia;(i?g:p<e._minimumPickingTerrainHeight)&&(d=__(e,u,vxe));let x;if(l(d)&&(x=h.distance(f.origin,d),dxe=x),c){let T=gxe(e,f,p);l(x)?x=Math.min(x,T):x=T}l(x)||(x=p);let b=h.normalize(s.position,g_t);rK(e,t,n,e.zoomFactor,x,h.dot(b,s.direction))}var Ixe=new U,v4=new mn,$I=new h,x_t=new h,Pxe=new F,b_t=new F,Rxe=new F,T_t=new Me,A_t=new $,aK=new fe,cK=new h;function C_t(e,t,n){let o=e._scene.camera;if(!F.equals(o.transform,F.IDENTITY))return;if(l(n.angleAndHeight)&&(n=n.angleAndHeight),U.equals(t,e._tiltCenterMousePosition)||(e._tiltOnEllipsoid=!1,e._looking=!1),e._looking){let a=e._ellipsoid.geodeticSurfaceNormal(o.position,cK);Ru(e,t,n,a);return}let s=e._ellipsoid.cartesianToCartographic(o.position,aK);e._tiltOnEllipsoid||s.height>e._minimumCollisionTerrainHeight?(e._tiltOnEllipsoid=!0,S_t(e,t,n)):v_t(e,t,n)}var E_t=new fe;function S_t(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e.minimumZoomDistance*.25,a=i.cartesianToCartographic(r.positionWC,E_t).height;if(a-s-1<P.EPSILON3&&n.endPosition.y-n.startPosition.y<0)return;let c=o.canvas,u=Ixe;u.x=c.clientWidth/2,u.y=c.clientHeight/2;let f=r.getPickRay(u,v4),d,p=$n.rayEllipsoid(f,i);if(l(p))d=mn.getPoint(f,p.start,$I);else if(a>e._minimumTrackBallHeight){let A=$n.grazingAltitudeLocation(f,i);if(!l(A))return;let C=i.cartesianToCartographic(A,aK);C.height=0,d=i.cartographicToCartesian(C,$I)}else{e._looking=!0;let A=e._ellipsoid.geodeticSurfaceNormal(r.position,cK);Ru(e,t,n,A),U.clone(t,e._tiltCenterMousePosition);return}let g=Nt.eastNorthUpToFixedFrame(d,i,Pxe),m=e._globe,x=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let b=F.clone(r.transform,Rxe);r._setTransform(g),Pu(e,t,n,h.UNIT_Z),r._setTransform(b),e._globe=m,e._ellipsoid=x;let T=x.maximumRadius;e._rotateFactor=1/T,e._rotateRateRangeAdjustment=T}function v_t(e,t,n){let i=e._ellipsoid,o=e._scene,r=o.camera,s=e._cameraUnderground,a,c,u;if(U.equals(t,e._tiltCenterMousePosition))a=h.clone(e._tiltCenter,$I);else{if(a=__(e,t,$I),!l(a)){if(c=r.getPickRay(t,v4),u=$n.rayEllipsoid(c,i),!l(u)){if(i.cartesianToCartographic(r.position,aK).height<=e._minimumTrackBallHeight){e._looking=!0;let E=e._ellipsoid.geodeticSurfaceNormal(r.position,cK);Ru(e,t,n,E),U.clone(t,e._tiltCenterMousePosition)}return}a=mn.getPoint(c,u.start,$I)}s&&(l(c)||(c=r.getPickRay(t,v4)),yxe(e,c,a,a)),U.clone(t,e._tiltCenterMousePosition),h.clone(a,e._tiltCenter)}let f=o.canvas,d=Ixe;d.x=f.clientWidth/2,d.y=e._tiltCenterMousePosition.y,c=r.getPickRay(d,v4);let p=h.magnitude(a),g=h.fromElements(p,p,p,iK),m=ee.fromCartesian3(g,oK);if(u=$n.rayEllipsoid(c,m),!l(u))return;let x=h.magnitude(c.origin)>p?u.start:u.stop,b=mn.getPoint(c,x,x_t),T=Nt.eastNorthUpToFixedFrame(a,i,Pxe),A=Nt.eastNorthUpToFixedFrame(b,m,b_t),C=e._globe,S=e._ellipsoid;e._globe=void 0,e._ellipsoid=ee.UNIT_SPHERE,e._rotateFactor=1,e._rotateRateRangeAdjustment=1;let v=h.UNIT_Z,D=F.clone(r.transform,Rxe);r._setTransform(A);let O=h.cross(b,r.positionWC,S4);if(h.dot(r.rightWC,O)<0){let _=n.startPosition.y-n.endPosition.y;(s&&_<0||!s&&_>0)&&(v=void 0);let E=r.constrainedAxis;r.constrainedAxis=void 0,Pu(e,t,n,v,!0,!1),r.constrainedAxis=E}else Pu(e,t,n,v,!0,!1);if(r._setTransform(T),Pu(e,t,n,v,!1,!0),l(r.constrainedAxis)){let _=h.cross(r.direction,r.constrainedAxis,S4);h.equalsEpsilon(_,h.ZERO,P.EPSILON6)||(h.dot(_,r.right)<0&&h.negate(_,_),h.cross(_,r.direction,r.up),h.cross(r.direction,r.up,r.right),h.normalize(r.up,r.up),h.normalize(r.right,r.right))}r._setTransform(D),e._globe=C,e._ellipsoid=S;let M=S.maximumRadius;e._rotateFactor=1/M,e._rotateRateRangeAdjustment=M;let L=h.clone(r.positionWC,S4);if(e.enableCollisionDetection&&lK(e,!0),!h.equals(r.positionWC,L)){r._setTransform(A),r.worldToCameraCoordinatesPoint(L,L);let _=h.magnitudeSquared(L);h.magnitudeSquared(r.position)>_&&(h.normalize(r.position,r.position),h.multiplyByScalar(r.position,Math.sqrt(_),r.position));let E=h.angleBetween(L,r.position),w=h.cross(L,r.position,L);h.normalize(w,w);let I=Me.fromAxisAngle(w,E,T_t),N=$.fromQuaternion(I,A_t);$.multiplyByVector(N,r.direction,r.direction),$.multiplyByVector(N,r.up,r.up),h.cross(r.direction,r.up,r.right),h.cross(r.right,r.direction,r.up),r._setTransform(D)}}var w_t=new U,D_t=new U,hxe=new mn,mxe=new mn,I_t=new h,P_t=new h;function Ru(e,t,n,i){let r=e._scene.camera,s=w_t;s.x=n.startPosition.x,s.y=0;let a=D_t;a.x=n.endPosition.x,a.y=0;let c=r.getPickRay(s,hxe),u=r.getPickRay(a,mxe),f=0,d,p;r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction);let g=h.dot(d,p);g<1&&(f=Math.acos(g)),f=n.startPosition.x>n.endPosition.x?-f:f;let m=e._horizontalRotationAxis;if(l(i)?r.look(i,-f):l(m)?r.look(m,-f):r.lookLeft(f),s.x=0,s.y=n.startPosition.y,a.x=0,a.y=n.endPosition.y,c=r.getPickRay(s,hxe),u=r.getPickRay(a,mxe),f=0,r.frustum instanceof rn?(d=c.origin,p=u.origin,h.add(r.direction,d,d),h.add(r.direction,p,p),h.subtract(d,r.position,d),h.subtract(p,r.position,p),h.normalize(d,d),h.normalize(p,p)):(d=c.direction,p=u.direction),g=h.dot(d,p),g<1&&(f=Math.acos(g)),f=n.startPosition.y>n.endPosition.y?-f:f,i=y(i,m),l(i)){let x=r.direction,b=h.negate(i,I_t),T=h.equalsEpsilon(x,i,P.EPSILON2),A=h.equalsEpsilon(x,b,P.EPSILON2);if(!T&&!A){g=h.dot(x,i);let C=P.acosClamped(g);f>0&&f>C&&(f=C-P.EPSILON4),g=h.dot(x,b),C=P.acosClamped(g),f<0&&-f>C&&(f=-C+P.EPSILON4);let S=h.cross(i,x,P_t);r.look(S,f)}else(T&&f<0||A&&f>0)&&r.look(r.right,-f)}else r.lookUp(f)}function R_t(e){Zc(e,e.enableRotate,e.rotateEventTypes,f_t,e.inertiaSpin,"_lastInertiaSpinMovement"),Zc(e,e.enableZoom,e.zoomEventTypes,Dxe,e.inertiaZoom,"_lastInertiaZoomMovement"),Zc(e,e.enableTilt,e.tiltEventTypes,C_t,e.inertiaSpin,"_lastInertiaTiltMovement"),Zc(e,e.enableLook,e.lookEventTypes,Ru)}var O_t=new F,M_t=new fe;function lK(e,t){e._adjustedHeightForTerrain=!0;let n=e._scene,i=n.mode;if(i===ne.SCENE2D||i===ne.MORPHING)return;let o=n.camera,r=y(n.ellipsoid,ee.WGS84),s=n.mapProjection,a,c;F.equals(o.transform,F.IDENTITY)||(a=F.clone(o.transform,O_t),c=h.magnitude(o.position),o._setTransform(F.IDENTITY));let u=M_t;i===ne.SCENE3D?r.cartesianToCartographic(o.position,u):s.unproject(o.position,u);let f=!1;if(u.height<e._minimumCollisionTerrainHeight){let d=e._scene.globeHeight;if(l(d)){let p=d+e.minimumZoomDistance,g=d-e._lastGlobeHeight,m=g/e._lastGlobeHeight;u.height<p&&(t||Math.abs(m)<=.1)&&(u.height=p,i===ne.SCENE3D?r.cartographicToCartesian(u,o.position):s.project(u,o.position),f=!0),t||Math.abs(m)<=.1?e._lastGlobeHeight=d:e._lastGlobeHeight+=g*.1}}l(a)&&(o._setTransform(a),f&&(h.normalize(o.position,o.position),h.negate(o.position,o.direction),h.multiplyByScalar(o.position,Math.max(c,e.minimumZoomDistance),o.position),h.normalize(o.direction,o.direction),h.cross(o.direction,o.up,o.right),h.cross(o.right,o.direction,o.up)))}QI.prototype.onMap=function(){let e=this._scene,t=e.mode,n=e.camera;return t===ne.COLUMBUS_VIEW?Math.abs(n.position.x)-this._maxCoord.x<0&&Math.abs(n.position.y)-this._maxCoord.y<0:!0};var L_t=new h,N_t=new h;QI.prototype.update=function(){let e=this._scene,{camera:t,globe:n,mode:i}=e;F.equals(t.transform,F.IDENTITY)?(this._globe=n,this._ellipsoid=y(e.ellipsoid,ee.default)):(this._globe=void 0,this._ellipsoid=ee.UNIT_SPHERE);let{verticalExaggeration:o,verticalExaggerationRelativeHeight:r}=e;this._minimumCollisionTerrainHeight=Ir.getHeight(this.minimumCollisionTerrainHeight,o,r),this._minimumPickingTerrainHeight=Ir.getHeight(this.minimumPickingTerrainHeight,o,r),this._minimumTrackBallHeight=Ir.getHeight(this.minimumTrackBallHeight,o,r),this._cameraUnderground=e.cameraUnderground&&l(this._globe);let s=this._ellipsoid.maximumRadius;this._rotateFactor=1/s,this._rotateRateRangeAdjustment=s,this._adjustedHeightForTerrain=!1;let a=h.clone(t.positionWC,L_t),c=h.clone(t.directionWC,N_t);if(i===ne.SCENE2D?Mpt(this):i===ne.COLUMBUS_VIEW?(this._horizontalRotationAxis=h.UNIT_Z,i_t(this)):i===ne.SCENE3D&&(this._horizontalRotationAxis=void 0,R_t(this)),this.enableCollisionDetection&&!this._adjustedHeightForTerrain){let u=!h.equals(a,t.positionWC)||!h.equals(c,t.directionWC);lK(this,u)}this._aggregator.reset()};QI.prototype.isDestroyed=function(){return!1};QI.prototype.destroy=function(){return this._tweens.removeAll(),this._aggregator=this._aggregator&&this._aggregator.destroy(),ue(this)};var D4=QI;var I4=`uniform sampler2D colorTexture; +uniform sampler2D colorTexture2; + +uniform vec2 center; +uniform float radius; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color0 = texture(colorTexture, v_textureCoordinates); + vec4 color1 = texture(colorTexture2, v_textureCoordinates); + + float x = length(gl_FragCoord.xy - center) / radius; + float t = smoothstep(0.5, 0.8, x); + out_FragColor = mix(color0 + color1, color1, t); +} +`;var P4=`uniform sampler2D colorTexture; + +uniform float avgLuminance; +uniform float threshold; +uniform float offset; + +in vec2 v_textureCoordinates; + +float key(float avg) +{ + float guess = 1.5 - (1.5 / (avg * 0.1 + 1.0)); + return max(0.0, guess) + 0.1; +} + +// See section 9. "The bright-pass filter" of Realtime HDR Rendering +// http://www.cg.tuwien.ac.at/research/publications/2007/Luksch_2007_RHR/Luksch_2007_RHR-RealtimeHDR%20.pdf + +void main() +{ + vec4 color = texture(colorTexture, v_textureCoordinates); + vec3 xyz = czm_RGBToXYZ(color.rgb); + float luminance = xyz.r; + + float scaledLum = key(avgLuminance) * luminance / avgLuminance; + float brightLum = max(scaledLum - threshold, 0.0); + float brightness = brightLum / (offset + brightLum); + + xyz.r = brightness; + out_FragColor = vec4(czm_XYZToRGB(xyz), 1.0); +} +`;function g_(){this._sceneFramebuffer=new zE;let e=.125,t=new Array(6);t[0]=new uo({fragmentShader:Du,textureScale:e,forcePowerOfTwo:!0,sampleMode:Uf.LINEAR});let n=t[1]=new uo({fragmentShader:P4,uniforms:{avgLuminance:.5,threshold:.25,offset:.1},textureScale:e,forcePowerOfTwo:!0}),i=this;this._delta=1,this._sigma=2,this._blurStep=new U,t[2]=new uo({fragmentShader:mb,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:0},textureScale:e,forcePowerOfTwo:!0}),t[3]=new uo({fragmentShader:mb,uniforms:{step:function(){return i._blurStep.x=i._blurStep.y=1/n.outputTexture.width,i._blurStep},delta:function(){return i._delta},sigma:function(){return i._sigma},direction:1},textureScale:e,forcePowerOfTwo:!0}),t[4]=new uo({fragmentShader:Du,sampleMode:Uf.LINEAR}),this._uCenter=new U,this._uRadius=void 0,t[5]=new uo({fragmentShader:I4,uniforms:{center:function(){return i._uCenter},radius:function(){return i._uRadius},colorTexture2:function(){return i._sceneFramebuffer.framebuffer.getColorTexture(0)}}}),this._stages=new Ll({stages:t});let o=new jE(this),r=t.length;for(let s=0;s<r;++s)t[s]._textureCache=o;this._textureCache=o,this.length=t.length}g_.prototype.get=function(e){return this._stages.get(e)};g_.prototype.getStageByName=function(e){let t=this._stages.length;for(let n=0;n<t;++n){let i=this._stages.get(n);if(i.name===e)return i}};var F_t=new oe,Oxe=new U,B_t=new U,Mxe=new F;function k_t(e,t,n){let i=t.uniformState,o=i.sunPositionWC,r=i.view,s=i.viewProjection,a=i.projection,c=F.computeViewportTransformation(n,0,1,Mxe),u=F.multiplyByPoint(r,o,F_t),f=Nt.pointToGLWindowCoordinates(s,c,o,Oxe);u.x+=P.SOLAR_RADIUS;let d=Nt.pointToGLWindowCoordinates(a,c,u,u),p=U.magnitude(U.subtract(d,f,d))*30*2,g=B_t;g.x=p,g.y=p,e._uCenter=U.clone(f,e._uCenter),e._uRadius=Math.max(g.x,g.y)*.15;let m=t.drawingBufferWidth,x=t.drawingBufferHeight,b=e._stages,T=b.get(0),A=T.outputTexture.width,C=T.outputTexture.height,S=new qe;S.width=A,S.height=C,c=F.computeViewportTransformation(S,0,1,Mxe),f=Nt.pointToGLWindowCoordinates(s,c,o,Oxe),g.x*=A/m,g.y*=C/x;let v=T.scissorRectangle;v.x=Math.max(f.x-g.x*.5,0),v.y=Math.max(f.y-g.y*.5,0),v.width=Math.min(g.x,m),v.height=Math.min(g.y,x);for(let D=1;D<4;++D)qe.clone(v,b.get(D).scissorRectangle)}g_.prototype.clear=function(e,t,n){this._sceneFramebuffer.clear(e,t,n),this._textureCache.clear(e)};g_.prototype.update=function(e){let t=e.context,n=e.viewport,i=this._sceneFramebuffer;i.update(t,n);let o=i.framebuffer;return this._textureCache.update(t),this._stages.update(t,!1),k_t(this,t,n),o};g_.prototype.execute=function(e){let t=this._sceneFramebuffer.framebuffer.getColorTexture(0),n=this._stages,i=n.length;n.get(0).execute(e,t);for(let o=1;o<i;++o)n.get(o).execute(e,n.get(o-1).outputTexture)};g_.prototype.copy=function(e,t){if(!l(this._copyColorCommand)){let n=this;this._copyColorCommand=e.createViewportQuadCommand(Du,{uniformMap:{colorTexture:function(){return n._stages.get(n._stages.length-1).outputTexture}},owner:this})}this._copyColorCommand.framebuffer=t,this._copyColorCommand.execute(e)};g_.prototype.isDestroyed=function(){return!1};g_.prototype.destroy=function(){return this._textureCache.destroy(),this._stages.destroy(),ue(this)};var R4=g_;function Lxe(){this._cachedShowFrustumsShaders={}}function V_t(e){let t={},n=e.vertexAttributes;for(let i in n)n.hasOwnProperty(i)&&(t[i]=n[i].index);return t}function U_t(e,t){let n=e.context,i=t,o=i.fragmentShaderSource.clone(),r=[];o.sources=o.sources.map(function(f){f=Ue.replaceMain(f,"czm_Debug_main");let d=/out_FragData_(\d+)/g,p;for(;(p=d.exec(f))!==null;)r.indexOf(p[1])===-1&&r.push(p[1]);return f});let s=r.length,a="";a+=`uniform vec3 debugShowCommandsColor; +`,a+=`uniform vec3 debugShowFrustumsColor; +`,a+=`void main() +{ + czm_Debug_main(); +`;let c;if(s>0)for(c=0;c<s;++c)a+=` out_FragData_${r[c]}.rgb *= debugShowCommandsColor; +`,a+=` out_FragData_${r[c]}.rgb *= debugShowFrustumsColor; +`;else a+=` out_FragColor.rgb *= debugShowCommandsColor; +`,a+=` out_FragColor.rgb *= debugShowFrustumsColor; +`;a+="}",o.sources.push(a);let u=V_t(i);return en.fromCache({context:n,vertexShaderSource:i.vertexShaderSource,fragmentShaderSource:o,attributeLocations:u})}var JI=new z;function z_t(e,t){let n;return l(t.uniformMap)?n=t.uniformMap:n={},l(n.debugShowCommandsColor)||l(n.debugShowFrustumsColor)||(n.debugShowCommandsColor=function(){return e.debugShowCommands?(l(t._debugColor)||(t._debugColor=z.fromRandom()),t._debugColor):z.WHITE},n.debugShowFrustumsColor=function(){return e.debugShowFrustums?(JI.red=t.debugOverlappingFrustums&1?1:0,JI.green=t.debugOverlappingFrustums&2?1:0,JI.blue=t.debugOverlappingFrustums&4?1:0,JI.alpha=1,JI):z.WHITE}),n}var H_t=new et;Lxe.prototype.executeDebugShowFrustumsCommand=function(e,t,n){let i=t.shaderProgram.id,o=this._cachedShowFrustumsShaders[i];l(o)||(o=U_t(e,t.shaderProgram),this._cachedShowFrustumsShaders[i]=o);let r=et.shallowClone(t,H_t);r.shaderProgram=o,r.uniformMap=z_t(e,t),r.execute(e.context,n)};var O4=Lxe;function Ab(e,t,n){this._primitive=e,this._tileIndex=t,this._sampleIndex=n,this._metadata={},this._orientedBoundingBox=new wn}Ab.fromKeyframeNode=function(e,t,n,i){let o=new Ab(e,t,n),{spatialNode:r,metadata:s}=i;return o._metadata=G_t(e,s,n),o._orientedBoundingBox=j_t(e,r,n,o._orientedBoundingBox),o};function G_t(e,t,n){if(!l(t))return;let{names:i,types:o}=e.provider,r={};for(let s=0;s<i.length;s++){let a=i[s],c=Et.getComponentCount(o[s]),u=t[s].slice(n*c,(n+1)*c);r[a]=u}return r}var Nxe=new h,W_t=new h;function j_t(e,t,n,i){let o=t.dimensions,r=o.x*o.y,s=Math.floor(n/r),a=n-s*r,c=Math.floor(a/o.x),u=a-c*o.x,f=h.fromElements(u,c,s,Nxe),d=h.divideComponents(h.subtract(f,e._paddingBefore,Nxe),e.dimensions,W_t);return e._shape.computeOrientedBoundingBoxForSample(t,e.dimensions,d,i)}Object.defineProperties(Ab.prototype,{metadata:{get:function(){return this._metadata}},primitive:{get:function(){return this._primitive}},sampleIndex:{get:function(){return this._sampleIndex}},tileIndex:{get:function(){return this._tileIndex}},orientedBoundingBox:{get:function(){return this._orientedBoundingBox.clone()}}});Ab.prototype.hasProperty=function(e){return l(this._metadata[e])};Ab.prototype.getNames=function(){return Object.keys(this._metadata)};Ab.prototype.getProperty=function(e){return this._metadata[e]};var M4=Ab;var L4=`struct Ray { + vec3 pos; + vec3 dir; + vec3 rawDir; +}; + +#if defined(JITTER) +/** + * Generate a pseudo-random value for a given 2D screen coordinate. + * Similar to https://www.shadertoy.com/view/4djSRW with a modified hashscale. + */ +float hash(vec2 p) +{ + vec3 p3 = fract(vec3(p.xyx) * 50.0); + p3 += dot(p3, p3.yzx + 19.19); + return fract((p3.x + p3.y) * p3.z); +} +#endif + +float minComponent(in vec3 v) { + return min(min(v.x, v.y), v.z); +} + +float maxComponent(in vec3 v) { + return max(max(v.x, v.y), v.z); +} + +struct PointJacobianT { + vec3 point; + mat3 jacobianT; +}; +`;var N4=`// See Intersection.glsl for the definition of intersectScene +// See IntersectionUtils.glsl for the definition of nextIntersection +// See convertUvToBox.glsl, convertUvToCylinder.glsl, or convertUvToEllipsoid.glsl +// for the definition of convertUvToShapeUvSpace. The appropriate function is +// selected based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See Octree.glsl for the definitions of TraversalData, SampleData, +// traverseOctreeFromBeginning, and traverseOctreeFromExisting +// See Megatexture.glsl for the definition of accumulatePropertiesFromMegatexture + +#define STEP_COUNT_MAX 1000 // Harcoded value because GLSL doesn't like variable length loops +#if defined(PICKING_VOXEL) + #define ALPHA_ACCUM_MAX 0.1 +#else + #define ALPHA_ACCUM_MAX 0.98 // Must be > 0.0 and <= 1.0 +#endif + +uniform mat3 u_transformDirectionViewToLocal; +uniform vec3 u_cameraPositionUv; +uniform float u_stepSize; + +#if defined(PICKING) + uniform vec4 u_pickColor; +#endif + +vec3 getSampleSize(in int level) { + vec3 sampleCount = exp2(float(level)) * vec3(u_dimensions); + vec3 sampleSizeUv = 1.0 / sampleCount; + return scaleShapeUvToShapeSpace(sampleSizeUv); +} + +#define MINIMUM_STEP_SCALAR (0.02) +#define SHIFT_FRACTION (0.001) + +/** + * Given a coordinate within a tile, and sample spacings along a ray through + * the coordinate, find the distance to the points where the ray entered and + * exited the voxel cell, along with the surface normals at those points. + * The surface normals are returned in shape space coordinates. + */ +RayShapeIntersection getVoxelIntersection(in vec3 tileUv, in vec3 sampleSizeAlongRay) { + vec3 voxelCoord = tileUv * vec3(u_dimensions); + vec3 directions = sign(sampleSizeAlongRay); + vec3 positiveDirections = max(directions, 0.0); + vec3 entryCoord = mix(ceil(voxelCoord), floor(voxelCoord), positiveDirections); + vec3 exitCoord = entryCoord + directions; + + vec3 distanceFromEntry = -abs((entryCoord - voxelCoord) * sampleSizeAlongRay); + float lastEntry = maxComponent(distanceFromEntry); + bvec3 isLastEntry = equal(distanceFromEntry, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + vec3 distanceToExit = abs((exitCoord - voxelCoord) * sampleSizeAlongRay); + float firstExit = minComponent(distanceToExit); + bvec3 isFirstExit = equal(distanceToExit, vec3(firstExit)); + vec3 exitNormal = vec3(isFirstExit) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + return RayShapeIntersection(entry, exit); +} + +vec4 getStepSize(in SampleData sampleData, in Ray viewRay, in RayShapeIntersection shapeIntersection, in mat3 jacobianT, in float currentT) { + // The Jacobian is computed in a space where the shape spans [-1, 1]. + // But the ray is marched in a space where the shape fills [0, 1]. + // So we need to scale the Jacobian by 2. + vec3 gradient = 2.0 * viewRay.rawDir * jacobianT; + vec3 sampleSizeAlongRay = getSampleSize(sampleData.tileCoords.w) / gradient; + + RayShapeIntersection voxelIntersection = getVoxelIntersection(sampleData.tileUv, sampleSizeAlongRay); + + // Transform normal from shape space to Cartesian space + vec3 voxelNormal = normalize(jacobianT * voxelIntersection.entry.xyz); + // Compare with the shape intersection, to choose the appropriate normal + vec4 voxelEntry = vec4(voxelNormal, currentT + voxelIntersection.entry.w); + vec4 entry = intersectionMax(shapeIntersection.entry, voxelEntry); + + float fixedStep = minComponent(abs(sampleSizeAlongRay)) * u_stepSize; + float shift = fixedStep * SHIFT_FRACTION; + float dt = voxelIntersection.exit.w + shift; + if ((currentT + dt) > shapeIntersection.exit.w) { + // Stop at end of shape + dt = shapeIntersection.exit.w - currentT + shift; + } + float stepSize = clamp(dt, fixedStep * MINIMUM_STEP_SCALAR, fixedStep + shift); + + return vec4(entry.xyz, stepSize); +} + +vec2 packIntToVec2(int value) { + float shifted = float(value) / 255.0; + float lowBits = fract(shifted); + float highBits = floor(shifted) / 255.0; + return vec2(highBits, lowBits); +} + +vec2 packFloatToVec2(float value) { + float lowBits = fract(value); + float highBits = floor(value) / 255.0; + return vec2(highBits, lowBits); +} + +int getSampleIndex(in vec3 tileUv) { + ivec3 voxelDimensions = u_dimensions; + vec3 sampleCoordinate = tileUv * vec3(voxelDimensions); + // tileUv = 1.0 is a valid coordinate but sampleIndex = voxelDimensions is not. + // (tileUv = 1.0 corresponds to the last sample, at index = voxelDimensions - 1). + // Clamp to [0, voxelDimensions - 0.5) to avoid numerical error before flooring + vec3 maxCoordinate = vec3(voxelDimensions) - vec3(0.5); + sampleCoordinate = clamp(sampleCoordinate, vec3(0.0), maxCoordinate); + ivec3 sampleIndex = ivec3(floor(sampleCoordinate)); + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + sampleIndex += u_paddingBefore; + #endif + // Convert to a 1D index for lookup in a 1D data array + return sampleIndex.x + voxelDimensions.x * (sampleIndex.y + voxelDimensions.y * sampleIndex.z); +} + +void main() +{ + vec4 fragCoord = gl_FragCoord; + vec2 screenCoord = (fragCoord.xy - czm_viewport.xy) / czm_viewport.zw; // [0,1] + vec3 eyeDirection = normalize(czm_windowToEyeCoordinates(fragCoord).xyz); + vec3 viewDirWorld = normalize(czm_inverseViewRotation * eyeDirection); // normalize again just in case + vec3 viewDirUv = normalize(u_transformDirectionViewToLocal * eyeDirection); // normalize again just in case + vec3 viewPosUv = u_cameraPositionUv; + #if defined(SHAPE_ELLIPSOID) + // viewDirUv has been scaled to a space where the ellipsoid is a sphere. + // Undo this scaling to get the raw direction. + vec3 rawDir = viewDirUv * u_ellipsoidRadiiUv; + Ray viewRayUv = Ray(viewPosUv, viewDirUv, rawDir); + #else + Ray viewRayUv = Ray(viewPosUv, viewDirUv, viewDirUv); + #endif + + Intersections ix; + RayShapeIntersection shapeIntersection = intersectScene(screenCoord, viewRayUv, ix); + + // Exit early if the scene was completely missed. + if (shapeIntersection.entry.w == NO_HIT) { + discard; + } + + float currentT = shapeIntersection.entry.w; + float endT = shapeIntersection.exit.w; + vec3 positionUv = viewPosUv + currentT * viewDirUv; + PointJacobianT pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + + // Traverse the tree from the start position + TraversalData traversalData; + SampleData sampleDatas[SAMPLE_COUNT]; + traverseOctreeFromBeginning(pointJacobian.point, traversalData, sampleDatas); + vec4 step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + + #if defined(JITTER) + float noise = hash(screenCoord); // [0,1] + currentT += noise * step.w; + positionUv += noise * step.w * viewDirUv; + #endif + + FragmentInput fragmentInput; + #if defined(STATISTICS) + setStatistics(fragmentInput.metadata.statistics); + #endif + + vec4 colorAccum = vec4(0.0); + + for (int stepCount = 0; stepCount < STEP_COUNT_MAX; ++stepCount) { + // Read properties from the megatexture based on the traversal state + Properties properties = accumulatePropertiesFromMegatexture(sampleDatas); + + // Prepare the custom shader inputs + copyPropertiesToMetadata(properties, fragmentInput.metadata); + fragmentInput.voxel.positionUv = positionUv; + fragmentInput.voxel.positionShapeUv = pointJacobian.point; + fragmentInput.voxel.positionUvLocal = sampleDatas[0].tileUv; + fragmentInput.voxel.viewDirUv = viewDirUv; + fragmentInput.voxel.viewDirWorld = viewDirWorld; + fragmentInput.voxel.surfaceNormal = step.xyz; + fragmentInput.voxel.travelDistance = step.w; + fragmentInput.voxel.stepCount = stepCount; + fragmentInput.voxel.tileIndex = sampleDatas[0].megatextureIndex; + fragmentInput.voxel.sampleIndex = getSampleIndex(sampleDatas[0].tileUv); + + // Run the custom shader + czm_modelMaterial materialOutput; + fragmentMain(fragmentInput, materialOutput); + + // Sanitize the custom shader output + vec4 color = vec4(materialOutput.diffuse, materialOutput.alpha); + color.rgb = max(color.rgb, vec3(0.0)); + color.a = clamp(color.a, 0.0, 1.0); + + // Pre-multiplied alpha blend + colorAccum += (1.0 - colorAccum.a) * vec4(color.rgb * color.a, color.a); + + // Stop traversing if the alpha has been fully saturated + if (colorAccum.a > ALPHA_ACCUM_MAX) { + colorAccum.a = ALPHA_ACCUM_MAX; + break; + } + + if (step.w == 0.0) { + // Shape is infinitely thin. The ray may have hit the edge of a + // foreground voxel. Step ahead slightly to check for more voxels + step.w == 0.00001; + } + + // Keep raymarching + currentT += step.w; + positionUv = viewPosUv + currentT * viewDirUv; + + // Check if there's more intersections. + if (currentT > endT) { + #if (INTERSECTION_COUNT == 1) + break; + #else + shapeIntersection = nextIntersection(ix); + if (shapeIntersection.entry.w == NO_HIT) { + break; + } else { + // Found another intersection. Resume raymarching there + currentT = shapeIntersection.entry.w; + endT = shapeIntersection.exit.w; + positionUv = viewPosUv + currentT * viewDirUv; + } + #endif + } + + // Traverse the tree from the current ray position. + // This is similar to traverseOctreeFromBeginning but is faster when the ray is in the same tile as the previous step. + pointJacobian = convertUvToShapeUvSpaceDerivative(positionUv); + traverseOctreeFromExisting(pointJacobian.point, traversalData, sampleDatas); + step = getStepSize(sampleDatas[0], viewRayUv, shapeIntersection, pointJacobian.jacobianT, currentT); + } + + // Convert the alpha from [0,ALPHA_ACCUM_MAX] to [0,1] + colorAccum.a /= ALPHA_ACCUM_MAX; + + #if defined(PICKING) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + out_FragColor = u_pickColor; + #elif defined(PICKING_VOXEL) + // If alpha is 0.0 there is nothing to pick + if (colorAccum.a == 0.0) { + discard; + } + vec2 megatextureId = packIntToVec2(sampleDatas[0].megatextureIndex); + vec2 sampleIndex = packIntToVec2(getSampleIndex(sampleDatas[0].tileUv)); + out_FragColor = vec4(megatextureId, sampleIndex); + #else + out_FragColor = colorAccum; + #endif +} +`;var F4=`in vec2 position; + +uniform vec4 u_ndcSpaceAxisAlignedBoundingBox; + +void main() { + vec2 aabbMin = u_ndcSpaceAxisAlignedBoundingBox.xy; + vec2 aabbMax = u_ndcSpaceAxisAlignedBoundingBox.zw; + vec2 translation = 0.5 * (aabbMax + aabbMin); + vec2 scale = 0.5 * (aabbMax - aabbMin); + gl_Position = vec4(position * scale + translation, 0.0, 1.0); +} +`;var B4=`/* Intersection defines +#define INTERSECTION_COUNT ### +*/ + +#define NO_HIT (-czm_infinity) +#define INF_HIT (czm_infinity * 0.5) + +struct RayShapeIntersection { + vec4 entry; + vec4 exit; +}; + +vec4 intersectionMin(in vec4 intersect0, in vec4 intersect1) +{ + if (intersect0.w == NO_HIT) { + return intersect1; + } else if (intersect1.w == NO_HIT) { + return intersect0; + } + return (intersect0.w <= intersect1.w) ? intersect0 : intersect1; +} + +vec4 intersectionMax(in vec4 intersect0, in vec4 intersect1) +{ + return (intersect0.w >= intersect1.w) ? intersect0 : intersect1; +} + +RayShapeIntersection intersectIntersections(in Ray ray, in RayShapeIntersection intersect0, in RayShapeIntersection intersect1) +{ + bool missed = (intersect0.entry.w == NO_HIT) || + (intersect1.entry.w == NO_HIT) || + (intersect0.exit.w < intersect1.entry.w) || + (intersect0.entry.w > intersect1.exit.w); + if (missed) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + vec4 entry = intersectionMax(intersect0.entry, intersect1.entry); + vec4 exit = intersectionMin(intersect0.exit, intersect1.exit); + + return RayShapeIntersection(entry, exit); +} + +struct Intersections { + // Don't access these member variables directly - call the functions instead. + + // Store an array of ray-surface intersections. Each intersection is composed of: + // .xyz for the surface normal at the intersection point + // .w for the T value + // The scale of the normal encodes the shape intersection type: + // length(intersection.xyz) = 1: positive shape entry + // length(intersection.xyz) = 2: positive shape exit + // length(intersection.xyz) = 3: negative shape entry + // length(intersection.xyz) = 4: negative shape exit + // INTERSECTION_COUNT is the number of ray-*shape* (volume) intersections, + // so we need twice as many to track ray-*surface* intersections + vec4 intersections[INTERSECTION_COUNT * 2]; + + #if (INTERSECTION_COUNT > 1) + // Maintain state for future nextIntersection calls + int index; + int surroundCount; + bool surroundIsPositive; + #endif +}; + +RayShapeIntersection getFirstIntersection(in Intersections ix) +{ + return RayShapeIntersection(ix.intersections[0], ix.intersections[1]); +} + +vec4 encodeIntersectionType(vec4 intersection, int index, bool entry) +{ + float scale = float(index > 0) * 2.0 + float(!entry) + 1.0; + return vec4(intersection.xyz * scale, intersection.w); +} + +// Use defines instead of real functions because WebGL1 cannot access array with non-constant index. +#define setIntersection(/*inout Intersections*/ ix, /*int*/ index, /*float*/ t, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = vec4(0.0, float(!positive) * 2.0 + float(!enter) + 1.0, 0.0, (t)) +#define setIntersectionPair(/*inout Intersections*/ ix, /*int*/ index, /*vec2*/ entryExit) (ix).intersections[(index) * 2 + 0] = vec4(0.0, float((index) > 0) * 2.0 + 1.0, 0.0, (entryExit).x); (ix).intersections[(index) * 2 + 1] = vec4(0.0, float((index) > 0) * 2.0 + 2.0, 0.0, (entryExit).y) +#define setSurfaceIntersection(/*inout Intersections*/ ix, /*int*/ index, /*vec4*/ intersection, /*bool*/ positive, /*bool*/ enter) (ix).intersections[(index)] = encodeIntersectionType((intersection), int(!positive), (enter)) +#define setShapeIntersection(/*inout Intersections*/ ix, /*int*/ index, /*RayShapeIntersection*/ intersection) (ix).intersections[(index) * 2 + 0] = encodeIntersectionType((intersection).entry, (index), true); (ix).intersections[(index) * 2 + 1] = encodeIntersectionType((intersection).exit, (index), false) + +#if (INTERSECTION_COUNT > 1) +void initializeIntersections(inout Intersections ix) { + // Sort the intersections from min T to max T with bubble sort. + // Note: If this sorting function changes, some of the intersection test may + // need to be updated. Search for "bubble sort" to find those areas. + const int sortPasses = INTERSECTION_COUNT * 2 - 1; + for (int n = sortPasses; n > 0; --n) { + for (int i = 0; i < sortPasses; ++i) { + // The loop should be: for (i = 0; i < n; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to break early instead + if (i >= n) { break; } + + vec4 intersect0 = ix.intersections[i + 0]; + vec4 intersect1 = ix.intersections[i + 1]; + + bool inOrder = intersect0.w <= intersect1.w; + + ix.intersections[i + 0] = inOrder ? intersect0 : intersect1; + ix.intersections[i + 1] = inOrder ? intersect1 : intersect0; + } + } + + // Prepare initial state for nextIntersection + ix.index = 0; + ix.surroundCount = 0; + ix.surroundIsPositive = false; +} +#endif + +#if (INTERSECTION_COUNT > 1) +RayShapeIntersection nextIntersection(inout Intersections ix) { + vec4 surfaceIntersection = vec4(0.0, 0.0, 0.0, NO_HIT); + RayShapeIntersection shapeIntersection = RayShapeIntersection(surfaceIntersection, surfaceIntersection); + + const int passCount = INTERSECTION_COUNT * 2; + + if (ix.index == passCount) { + return shapeIntersection; + } + + for (int i = 0; i < passCount; ++i) { + // The loop should be: for (i = ix.index; i < passCount; ++i) {...} but WebGL1 cannot + // loop with non-constant condition, so it has to continue instead. + if (i < ix.index) { + continue; + } + + ix.index = i + 1; + + surfaceIntersection = ix.intersections[i]; + int intersectionType = int(length(surfaceIntersection.xyz) - 0.5); + bool currShapeIsPositive = intersectionType < 2; + bool enter = intMod(intersectionType, 2) == 0; + + ix.surroundCount += enter ? +1 : -1; + ix.surroundIsPositive = currShapeIsPositive ? enter : ix.surroundIsPositive; + + // entering positive or exiting negative + if (ix.surroundCount == 1 && ix.surroundIsPositive && enter == currShapeIsPositive) { + shapeIntersection.entry = surfaceIntersection; + } + + // exiting positive or entering negative after being inside positive + bool exitPositive = !enter && currShapeIsPositive && ix.surroundCount == 0; + bool enterNegativeFromPositive = enter && !currShapeIsPositive && ix.surroundCount == 2 && ix.surroundIsPositive; + if (exitPositive || enterNegativeFromPositive) { + shapeIntersection.exit = surfaceIntersection; + + // entry and exit have been found, so the loop can stop + if (exitPositive) { + // After exiting positive shape there is nothing left to intersect, so jump to the end index. + ix.index = passCount; + } + break; + } + } + + return shapeIntersection; +} +#endif + +// NOTE: initializeIntersections, nextIntersection aren't even declared unless INTERSECTION_COUNT > 1 +`;var k4=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, +// setIntersectionPair, INF_HIT, NO_HIT + +/* intersectDepth defines (set in Scene/VoxelRenderResources.js) +#define DEPTH_INTERSECTION_INDEX ### +*/ + +uniform mat4 u_transformPositionViewToUv; + +void intersectDepth(in vec2 screenCoord, in Ray ray, inout Intersections ix) { + float logDepthOrDepth = czm_unpackDepth(texture(czm_globeDepthTexture, screenCoord)); + if (logDepthOrDepth != 0.0) { + // Calculate how far the ray must travel before it hits the depth buffer. + vec4 eyeCoordinateDepth = czm_screenToEyeCoordinates(screenCoord, logDepthOrDepth); + eyeCoordinateDepth /= eyeCoordinateDepth.w; + vec3 depthPositionUv = vec3(u_transformPositionViewToUv * eyeCoordinateDepth); + float t = dot(depthPositionUv - ray.pos, ray.dir); + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(t, +INF_HIT)); + } else { + // There's no depth at this location. + setIntersectionPair(ix, DEPTH_INTERSECTION_INDEX, vec2(NO_HIT)); + } +} +`;var V4=`// See IntersectionUtils.glsl for the definitions of Ray, Intersections, INF_HIT, +// NO_HIT, setShapeIntersection + +/* Clipping plane defines (set in Scene/VoxelRenderResources.js) +#define CLIPPING_PLANES_UNION +#define CLIPPING_PLANES_COUNT +#define CLIPPING_PLANES_INTERSECTION_INDEX +*/ + +uniform sampler2D u_clippingPlanesTexture; +uniform mat4 u_clippingPlanesMatrix; + +// Plane is in Hessian Normal Form +vec4 intersectPlane(in Ray ray, in vec4 plane) { + vec3 n = plane.xyz; // normal + float w = plane.w; // -dot(pointOnPlane, normal) + + float a = dot(ray.pos, n); + float b = dot(ray.dir, n); + float t = -(w + a) / b; + + return vec4(n, t); +} + +void intersectClippingPlanes(in Ray ray, inout Intersections ix) { + vec4 backSide = vec4(-ray.dir, -INF_HIT); + vec4 farSide = vec4(ray.dir, +INF_HIT); + RayShapeIntersection clippingVolume; + + #if (CLIPPING_PLANES_COUNT == 1) + // Union and intersection are the same when there's one clipping plane, and the code + // is more simplified. + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, 0, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + bool reflects = dot(ray.dir, intersection.xyz) < 0.0; + clippingVolume.entry = reflects ? backSide : intersection; + clippingVolume.exit = reflects ? intersection : farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #elif defined(CLIPPING_PLANES_UNION) + vec4 firstTransmission = vec4(ray.dir, +INF_HIT); + vec4 lastReflection = vec4(-ray.dir, -INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + firstTransmission = intersection.w <= firstTransmission.w ? intersection : firstTransmission; + } else { + lastReflection = intersection.w >= lastReflection.w ? intersection : lastReflection; + } + } + clippingVolume.entry = backSide; + clippingVolume.exit = lastReflection; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 0, clippingVolume); + clippingVolume.entry = firstTransmission; + clippingVolume.exit = farSide; + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX + 1, clippingVolume); + #else // intersection + vec4 lastTransmission = vec4(ray.dir, -INF_HIT); + vec4 firstReflection = vec4(-ray.dir, +INF_HIT); + for (int i = 0; i < CLIPPING_PLANES_COUNT; i++) { + vec4 planeUv = getClippingPlane(u_clippingPlanesTexture, i, u_clippingPlanesMatrix); + vec4 intersection = intersectPlane(ray, planeUv); + if (dot(ray.dir, planeUv.xyz) > 0.0) { + lastTransmission = intersection.w > lastTransmission.w ? intersection : lastTransmission; + } else { + firstReflection = intersection.w < firstReflection.w ? intersection: firstReflection; + } + } + if (lastTransmission.w < firstReflection.w) { + clippingVolume.entry = lastTransmission; + clippingVolume.exit = firstReflection; + } else { + clippingVolume.entry = vec4(-ray.dir, NO_HIT); + clippingVolume.exit = vec4(ray.dir, NO_HIT); + } + setShapeIntersection(ix, CLIPPING_PLANES_INTERSECTION_INDEX, clippingVolume); + #endif +} +`;var eP=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, +// RayShapeIntersection + +vec4 intersectLongitude(in Ray ray, in float angle, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeNormal = vec2(-sin(angle), cos(angle)) * normalSign; + + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + float approachRate = dot(direction, planeNormal); + float distance = -dot(position, planeNormal); + + float t = (approachRate == 0.0) + ? NO_HIT + : distance / approachRate; + + return vec4(planeNormal, 0.0, t); +} + +RayShapeIntersection intersectHalfSpace(in Ray ray, in float angle, in bool positiveNormal) +{ + vec4 intersection = intersectLongitude(ray, angle, positiveNormal); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + bool hitFront = (intersection.w > 0.0) == (dot(ray.pos.xy, intersection.xy) > 0.0); + if (!hitFront) { + return RayShapeIntersection(intersection, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersection); + } +} + +void intersectFlippedWedge(in Ray ray, in vec2 minMaxAngle, out RayShapeIntersection intersections[2]) +{ + intersections[0] = intersectHalfSpace(ray, minMaxAngle.x, false); + intersections[1] = intersectHalfSpace(ray, minMaxAngle.y, true); +} + +bool hitPositiveHalfPlane(in Ray ray, in vec4 intersection, in bool positiveNormal) { + float normalSign = positiveNormal ? 1.0 : -1.0; + vec2 planeDirection = vec2(intersection.y, -intersection.x) * normalSign; + vec2 hit = ray.pos.xy + intersection.w * ray.dir.xy; + return dot(hit, planeDirection) > 0.0; +} + +void intersectHalfPlane(in Ray ray, in float angle, out RayShapeIntersection intersections[2]) { + vec4 intersection = intersectLongitude(ray, angle, true); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (hitPositiveHalfPlane(ray, intersection, true)) { + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = vec4(-1.0 * intersection.xy, 0.0, intersection.w); + intersections[1].entry = intersection; + intersections[1].exit = farSide; + } else { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + } +} + +RayShapeIntersection intersectRegularWedge(in Ray ray, in vec2 minMaxAngle) +{ + // Note: works for maxAngle > minAngle + pi, where the "regular wedge" + // is actually a negative volume. + // Compute intersections with the two planes. + // Normals will point toward the "outside" (negative space) + vec4 intersect1 = intersectLongitude(ray, minMaxAngle.x, false); + vec4 intersect2 = intersectLongitude(ray, minMaxAngle.y, true); + + // Choose intersection with smallest T as the "first", the other as "last" + // Note: first or last could be in the "shadow" wedge, beyond the tip + bool inOrder = intersect1.w <= intersect2.w; + vec4 first = inOrder ? intersect1 : intersect2; + vec4 last = inOrder ? intersect2 : intersect1; + + bool firstIsAhead = first.w >= 0.0; + bool startedInsideFirst = dot(ray.pos.xy, first.xy) < 0.0; + bool exitFromInside = firstIsAhead == startedInsideFirst; + bool lastIsAhead = last.w > 0.0; + bool startedOutsideLast = dot(ray.pos.xy, last.xy) >= 0.0; + bool enterFromOutside = lastIsAhead == startedOutsideLast; + + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + + if (exitFromInside && enterFromOutside) { + // Ray crosses both faces of negative wedge, exiting then entering the positive shape + return RayShapeIntersection(first, last); + } else if (!exitFromInside && enterFromOutside) { + // Ray starts inside wedge. last is in shadow wedge, and first is actually the entry + return RayShapeIntersection(-1.0 * farSide, first); + } else if (exitFromInside && !enterFromOutside) { + // First intersection was in the shadow wedge, so last is actually the exit + return RayShapeIntersection(last, farSide); + } else { // !exitFromInside && !enterFromOutside + // Both intersections were in the shadow wedge + return RayShapeIntersection(miss, miss); + } +} +`;var U4=`// See IntersectionUtils.glsl for the definitions of Ray, RayShapeIntersection, +// NO_HIT, Intersections + +/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_INTERSECTION_INDEX ### // always 0 +*/ + +uniform vec3 u_renderMinBounds; +uniform vec3 u_renderMaxBounds; + +RayShapeIntersection intersectBox(in Ray ray, in vec3 minBound, in vec3 maxBound) +{ + // Consider the box as the intersection of the space between 3 pairs of parallel planes + // Compute the distance along the ray to each plane + vec3 t0 = (minBound - ray.pos) / ray.dir; + vec3 t1 = (maxBound - ray.pos) / ray.dir; + + // Identify candidate entries/exits based on distance from ray.pos + vec3 entries = min(t0, t1); + vec3 exits = max(t0, t1); + + vec3 directions = sign(ray.dir); + + // The actual intersection points are the furthest entry and the closest exit + float lastEntry = maxComponent(entries); + bvec3 isLastEntry = equal(entries, vec3(lastEntry)); + vec3 entryNormal = -1.0 * vec3(isLastEntry) * directions; + vec4 entry = vec4(entryNormal, lastEntry); + + float firstExit = minComponent(exits); + bvec3 isFirstExit = equal(exits, vec3(firstExit)); + vec3 exitNormal = vec3(isLastEntry) * directions; + vec4 exit = vec4(exitNormal, firstExit); + + if (entry.w > exit.w) { + entry.w = NO_HIT; + exit.w = NO_HIT; + } + + return RayShapeIntersection(entry, exit); +} + +void intersectShape(in Ray ray, inout Intersections ix) +{ + RayShapeIntersection intersection = intersectBox(ray, u_renderMinBounds, u_renderMaxBounds); + setShapeIntersection(ix, BOX_INTERSECTION_INDEX, intersection); +} +`;var z4=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection, +// intersectIntersections +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN +#define CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF +#define CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO + +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MAX +#define CYLINDER_INTERSECTION_INDEX_RADIUS_MIN +#define CYLINDER_INTERSECTION_INDEX_ANGLE +*/ + +// Cylinder uniforms +uniform vec2 u_cylinderRenderRadiusMinMax; +uniform vec2 u_cylinderRenderHeightMinMax; +#if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE) + uniform vec2 u_cylinderRenderAngleMinMax; +#endif + +/** + * Find the intersection of a ray with the volume defined by two planes of constant z + */ +RayShapeIntersection intersectHeightBounds(in Ray ray, in vec2 minMaxHeight, in bool convex) +{ + float zPosition = ray.pos.z; + float zDirection = ray.dir.z; + + float tmin = (minMaxHeight.x - zPosition) / zDirection; + float tmax = (minMaxHeight.y - zPosition) / zDirection; + + // Normals point outside the volume + float signFlip = convex ? 1.0 : -1.0; + vec4 intersectMin = vec4(0.0, 0.0, -1.0 * signFlip, tmin); + vec4 intersectMax = vec4(0.0, 0.0, 1.0 * signFlip, tmax); + + bool topEntry = zDirection < 0.0; + vec4 entry = topEntry ? intersectMax : intersectMin; + vec4 exit = topEntry ? intersectMin : intersectMax; + + return RayShapeIntersection(entry, exit); +} + +/** + * Find the intersection of a ray with a right cylindrical surface of a given radius + * about the z-axis. + */ +RayShapeIntersection intersectCylinder(in Ray ray, in float radius, in bool convex) +{ + vec2 position = ray.pos.xy; + vec2 direction = ray.dir.xy; + + float a = dot(direction, direction); + float b = dot(position, direction); + float c = dot(position, position) - radius * radius; + float determinant = b * b - a * c; + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + float t1 = (-b - determinant) / a; + float t2 = (-b + determinant) / a; + float signFlip = convex ? 1.0 : -1.0; + vec4 intersect1 = vec4(normalize(position + t1 * direction) * signFlip, 0.0, t1); + vec4 intersect2 = vec4(normalize(position + t2 * direction) * signFlip, 0.0, t2); + + return RayShapeIntersection(intersect1, intersect2); +} + +/** + * Find the intersection of a ray with a right cylindrical solid of given + * radius and height bounds. NOTE: The shape is assumed to be convex. + */ +RayShapeIntersection intersectBoundedCylinder(in Ray ray, in float radius, in vec2 minMaxHeight) +{ + RayShapeIntersection cylinderIntersection = intersectCylinder(ray, radius, true); + RayShapeIntersection heightBoundsIntersection = intersectHeightBounds(ray, minMaxHeight, true); + return intersectIntersections(ray, cylinderIntersection, heightBoundsIntersection); +} + +void intersectShape(Ray ray, inout Intersections ix) +{ + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + RayShapeIntersection outerIntersect = intersectBoundedCylinder(ray, u_cylinderRenderRadiusMinMax.y, u_cylinderRenderHeightMinMax); + + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MAX, outerIntersect); + + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT) + // When the cylinder is perfectly thin it's necessary to sandwich the + // inner cylinder intersection inside the outer cylinder intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the cylinder to be invisible because it will think the ray + // is still inside the inner (negative) cylinder after exiting the + // outer (positive) cylinder. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + RayShapeIntersection innerIntersect = intersectCylinder(ray, 1.0, false); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN) + RayShapeIntersection innerIntersect = intersectCylinder(ray, u_cylinderRenderRadiusMinMax.x, false); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_RADIUS_MIN, innerIntersect); + #endif + + #if defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_cylinderRenderAngleMinMax); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE, wedgeIntersect); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_cylinderRenderAngleMinMax, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #elif defined(CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_cylinderRenderAngleMinMax.x, wedgeIntersects); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, CYLINDER_INTERSECTION_INDEX_ANGLE + 1, wedgeIntersects[1]); + #endif +} +`;var H4=`// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, INF_HIT, Intersections, +// RayShapeIntersection, setSurfaceIntersection, setShapeIntersection +// See IntersectLongitude.glsl for the definitions of intersectHalfPlane, +// intersectFlippedWedge, intersectRegularWedge + +/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF +#define ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF +#define ELLIPSOID_INTERSECTION_INDEX_LONGITUDE +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX +#define ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX +#define ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN +*/ + +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidRenderLongitudeMinMax; +#endif +uniform float u_eccentricitySquared; +uniform vec2 u_ellipsoidRenderLatitudeSinMinMax; +uniform vec2 u_clipMinMaxHeight; + +RayShapeIntersection intersectZPlane(in Ray ray, in float z) { + float t = -ray.pos.z / ray.dir.z; + + bool startsOutside = sign(ray.pos.z) == sign(z); + bool entry = (t >= 0.0) != startsOutside; + + vec4 intersect = vec4(0.0, 0.0, z, t); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (entry) { + return RayShapeIntersection(intersect, farSide); + } else { + return RayShapeIntersection(-1.0 * farSide, intersect); + } +} + +RayShapeIntersection intersectHeight(in Ray ray, in float relativeHeight, in bool convex) +{ + // Scale the ray by the ellipsoid axes to make it a unit sphere + // Note: approximating ellipsoid + height as an ellipsoid + vec3 radiiCorrection = u_ellipsoidRadiiUv / (u_ellipsoidRadiiUv + relativeHeight); + vec3 position = ray.pos * radiiCorrection; + vec3 direction = ray.dir * radiiCorrection; + + float a = dot(direction, direction); // ~ 1.0 (or maybe 4.0 if ray is scaled) + float b = dot(direction, position); // roughly inside [-1.0, 1.0] when zoomed in + float c = dot(position, position) - 1.0; // ~ 0.0 when zoomed in. + float determinant = b * b - a * c; // ~ b * b when zoomed in + + if (determinant < 0.0) { + vec4 miss = vec4(normalize(direction), NO_HIT); + return RayShapeIntersection(miss, miss); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t1 = (-b - signB * determinant) / a; + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + + float directionScale = convex ? 1.0 : -1.0; + vec3 d1 = directionScale * normalize(position + tmin * direction); + vec3 d2 = directionScale * normalize(position + tmax * direction); + + return RayShapeIntersection(vec4(d1, tmin), vec4(d2, tmax)); +} + +/** + * Given a circular cone around the z-axis, with apex at the origin, + * find the parametric distance(s) along a ray where that ray intersects + * the cone. + * The cone opening angle is described by the squared cosine of + * its half-angle (the angle between the Z-axis and the surface) + */ +vec2 intersectDoubleEndedCone(in Ray ray, in float cosSqrHalfAngle) +{ + vec3 o = ray.pos; + vec3 d = ray.dir; + float sinSqrHalfAngle = 1.0 - cosSqrHalfAngle; + + float aSin = d.z * d.z * sinSqrHalfAngle; + float aCos = -dot(d.xy, d.xy) * cosSqrHalfAngle; + float a = aSin + aCos; + + float bSin = d.z * o.z * sinSqrHalfAngle; + float bCos = -dot(o.xy, d.xy) * cosSqrHalfAngle; + float b = bSin + bCos; + + float cSin = o.z * o.z * sinSqrHalfAngle; + float cCos = -dot(o.xy, o.xy) * cosSqrHalfAngle; + float c = cSin + cCos; + // determinant = b * b - a * c. But bSin * bSin = aSin * cSin. + // Avoid subtractive cancellation by expanding to eliminate these terms + float determinant = 2.0 * bSin * bCos + bCos * bCos - aSin * cCos - aCos * cSin - aCos * cCos; + + if (determinant < 0.0) { + return vec2(NO_HIT); + } else if (a == 0.0) { + // Ray is parallel to cone surface + return (b == 0.0) + ? vec2(NO_HIT) // Ray is on cone surface + : vec2(-0.5 * c / b, NO_HIT); + } + + determinant = sqrt(determinant); + + // Compute larger root using standard formula + float signB = b < 0.0 ? -1.0 : 1.0; + float t1 = (-b - signB * determinant) / a; + // The other root may suffer from subtractive cancellation in the standard formula. + // Compute it from the first root instead. + float t2 = c / (a * t1); + float tmin = min(t1, t2); + float tmax = max(t1, t2); + return vec2(tmin, tmax); +} + +/** + * Given a point on a conical surface, find the surface normal at that point. + */ +vec3 getConeNormal(in vec3 p, in bool convex) { + // Start with radial component pointing toward z-axis + vec2 radial = -abs(p.z) * normalize(p.xy); + // Z component points toward opening of cone + float zSign = (p.z < 0.0) ? -1.0 : 1.0; + float z = length(p.xy) * zSign; + // Flip normal if shape is convex + float flip = (convex) ? -1.0 : 1.0; + return normalize(vec3(radial, z) * flip); +} + +/** + * Compute the shift between the ellipsoid origin and the apex of a cone of latitude + */ +float getLatitudeConeShift(in float sinLatitude) { + // Find prime vertical radius of curvature: + // the distance along the ellipsoid normal to the intersection with the z-axis + float x2 = u_eccentricitySquared * sinLatitude * sinLatitude; + float primeVerticalRadius = inversesqrt(1.0 - x2); + + // Compute a shift from the origin to the intersection of the cone with the z-axis + return primeVerticalRadius * u_eccentricitySquared * sinLatitude; +} + +void intersectFlippedCone(in Ray ray, in float cosHalfAngle, out RayShapeIntersection intersections[2]) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + // Initialize output with no intersections + intersections[0].entry = -1.0 * farSide; + intersections[0].exit = farSide; + intersections[1].entry = miss; + intersections[1].exit = miss; + + if (intersect.x == NO_HIT) { + return; + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, true), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, true), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + // no valid intersections + } else if (p0InShadowCone) { + intersections[0].exit = intersect1; + } else if (p1InShadowCone) { + intersections[0].entry = intersect0; + } else { + intersections[0].exit = intersect0; + intersections[1].entry = intersect1; + intersections[1].exit = farSide; + } +} + +RayShapeIntersection intersectRegularCone(in Ray ray, in float cosHalfAngle, in bool convex) { + // Undo the scaling from ellipsoid to sphere + ray.pos = ray.pos * u_ellipsoidRadiiUv; + ray.dir = ray.dir * u_ellipsoidRadiiUv; + // Shift the ray to account for the latitude cone not being centered at the Earth center + ray.pos.z += getLatitudeConeShift(cosHalfAngle); + + float cosSqrHalfAngle = cosHalfAngle * cosHalfAngle; + vec2 intersect = intersectDoubleEndedCone(ray, cosSqrHalfAngle); + + vec4 miss = vec4(normalize(ray.dir), NO_HIT); + vec4 farSide = vec4(normalize(ray.dir), INF_HIT); + + if (intersect.x == NO_HIT) { + return RayShapeIntersection(miss, miss); + } + + // Find the points of intersection + float tmin = intersect.x; + float tmax = intersect.y; + vec3 p0 = ray.pos + tmin * ray.dir; + vec3 p1 = ray.pos + tmax * ray.dir; + + vec4 intersect0 = vec4(getConeNormal(p0, convex), tmin); + vec4 intersect1 = vec4(getConeNormal(p1, convex), tmax); + + bool p0InShadowCone = sign(p0.z) != sign(cosHalfAngle); + bool p1InShadowCone = sign(p1.z) != sign(cosHalfAngle); + + if (p0InShadowCone && p1InShadowCone) { + return RayShapeIntersection(miss, miss); + } else if (p0InShadowCone) { + return RayShapeIntersection(intersect1, farSide); + } else if (p1InShadowCone) { + return RayShapeIntersection(-1.0 * farSide, intersect0); + } else { + return RayShapeIntersection(intersect0, intersect1); + } +} + +void intersectShape(in Ray ray, inout Intersections ix) { + // Position is converted from [0,1] to [-1,+1] because shape intersections assume unit space is [-1,+1]. + // Direction is scaled as well to be in sync with position. + ray.pos = ray.pos * 2.0 - 1.0; + ray.dir *= 2.0; + + // Outer ellipsoid + RayShapeIntersection outerIntersect = intersectHeight(ray, u_clipMinMaxHeight.y, true); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX, outerIntersect); + + // Exit early if the outer ellipsoid was missed. + if (outerIntersect.entry.w == NO_HIT) { + return; + } + + // Inner ellipsoid + RayShapeIntersection innerIntersect = intersectHeight(ray, u_clipMinMaxHeight.x, false); + + if (innerIntersect.entry.w == NO_HIT) { + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN, innerIntersect); + } else { + // When the ellipsoid is large and thin it's possible for floating point math + // to cause the ray to intersect the inner ellipsoid before the outer ellipsoid. + // To prevent this from happening, clamp innerIntersect to outerIntersect and + // sandwich the inner ellipsoid intersection inside the outer ellipsoid intersection. + + // Without this special case, + // [outerMin, outerMax, innerMin, innerMax] will bubble sort to + // [outerMin, innerMin, outerMax, innerMax] which will cause the back + // side of the ellipsoid to be invisible because it will think the ray + // is still inside the inner (negative) ellipsoid after exiting the + // outer (positive) ellipsoid. + + // With this special case, + // [outerMin, innerMin, innerMax, outerMax] will bubble sort to + // [outerMin, innerMin, innerMax, outerMax] which will work correctly. + + // Note: If initializeIntersections() changes its sorting function + // from bubble sort to something else, this code may need to change. + innerIntersect.entry.w = max(innerIntersect.entry.w, outerIntersect.entry.w); + innerIntersect.exit.w = min(innerIntersect.exit.w, outerIntersect.exit.w); + setSurfaceIntersection(ix, 0, outerIntersect.entry, true, true); // positive, enter + setSurfaceIntersection(ix, 1, innerIntersect.entry, false, true); // negative, enter + setSurfaceIntersection(ix, 2, innerIntersect.exit, false, false); // negative, exit + setSurfaceIntersection(ix, 3, outerIntersect.exit, true, false); // positive, exit + } + + // Bottom cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF) + RayShapeIntersection bottomConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF) + RayShapeIntersection bottomConeIntersection = intersectZPlane(ray, -1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN, bottomConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF) + RayShapeIntersection bottomConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.x, bottomConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 0, bottomConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN + 1, bottomConeIntersections[1]); + #endif + + // Top cone + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF) + RayShapeIntersection topConeIntersections[2]; + intersectFlippedCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, topConeIntersections); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 0, topConeIntersections[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX + 1, topConeIntersections[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF) + RayShapeIntersection topConeIntersection = intersectZPlane(ray, 1.0); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF) + RayShapeIntersection topConeIntersection = intersectRegularCone(ray, u_ellipsoidRenderLatitudeSinMinMax.y, false); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX, topConeIntersection); + #endif + + // Wedge + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO) + RayShapeIntersection wedgeIntersects[2]; + intersectHalfPlane(ray, u_ellipsoidRenderLongitudeMinMax.x, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF) + RayShapeIntersection wedgeIntersect = intersectRegularWedge(ray, u_ellipsoidRenderLongitudeMinMax); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE, wedgeIntersect); + #elif defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF) + RayShapeIntersection wedgeIntersects[2]; + intersectFlippedWedge(ray, u_ellipsoidRenderLongitudeMinMax, wedgeIntersects); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 0, wedgeIntersects[0]); + setShapeIntersection(ix, ELLIPSOID_INTERSECTION_INDEX_LONGITUDE + 1, wedgeIntersects[1]); + #endif +} +`;var KE=`// Main intersection function for Voxel scenes. +// See IntersectBox.glsl, IntersectCylinder.glsl, or IntersectEllipsoid.glsl +// for the definition of intersectShape. The appropriate function is selected +// based on the VoxelPrimitive shape type, and added to the shader in +// Scene/VoxelRenderResources.js. +// See also IntersectClippingPlane.glsl and IntersectDepth.glsl. +// See IntersectionUtils.glsl for the definitions of Ray, NO_HIT, +// getFirstIntersection, initializeIntersections, nextIntersection. + +/* Intersection defines (set in Scene/VoxelRenderResources.js) +#define INTERSECTION_COUNT ### +*/ + +RayShapeIntersection intersectScene(in vec2 screenCoord, in Ray ray, out Intersections ix) { + // Do a ray-shape intersection to find the exact starting and ending points. + intersectShape(ray, ix); + + // Exit early if the positive shape was completely missed or behind the ray. + RayShapeIntersection intersection = getFirstIntersection(ix); + if (intersection.entry.w == NO_HIT) { + // Positive shape was completely missed - so exit early. + return intersection; + } + + // Clipping planes + #if defined(CLIPPING_PLANES) + intersectClippingPlanes(ray, ix); + #endif + + // Depth + #if defined(DEPTH_TEST) + intersectDepth(screenCoord, ray, ix); + #endif + + // Find the first intersection that's in front of the ray + #if (INTERSECTION_COUNT > 1) + initializeIntersections(ix); + for (int i = 0; i < INTERSECTION_COUNT; ++i) { + intersection = nextIntersection(ix); + if (intersection.exit.w > 0.0) { + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + break; + } + } + #else + // Set start to 0.0 when ray is inside the shape. + intersection.entry.w = max(intersection.entry.w, 0.0); + #endif + + return intersection; +} +`;var G4=`/* Box defines (set in Scene/VoxelBoxShape.js) +#define BOX_HAS_SHAPE_BOUNDS +*/ + +#if defined(BOX_HAS_SHAPE_BOUNDS) + uniform vec3 u_boxUvToShapeUvScale; + uniform vec3 u_boxUvToShapeUvTranslate; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // For BOX, UV space = shape space, so we can use positionUv as-is, + // and the Jacobian is the identity matrix, except that a step of 1 + // only spans half the shape space [-1, 1], so the identity is scaled. + return PointJacobianT(positionUv, mat3(0.5)); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return positionShape * u_boxUvToShapeUvScale + u_boxUvToShapeUvTranslate; +#else + return positionShape; +#endif +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 convertShapeUvToUvSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return (shapeUv - u_boxUvToShapeUvTranslate) / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { +#if defined(BOX_HAS_SHAPE_BOUNDS) + return shapeUv / u_boxUvToShapeUvScale; +#else + return shapeUv; +#endif +}`;var W4=`/* Cylinder defines (set in Scene/VoxelCylinderShape.js) +#define CYLINDER_HAS_SHAPE_BOUNDS_RADIUS +#define CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY +#define CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED +*/ + +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + uniform vec2 u_cylinderUvToShapeUvRadius; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + uniform vec2 u_cylinderUvToShapeUvHeight; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + uniform vec2 u_cylinderUvToShapeUvAngle; // x = scale, y = offset +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + uniform vec2 u_cylinderShapeUvAngleMinMax; +#endif +#if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) || defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + uniform float u_cylinderShapeUvAngleRangeZeroMid; +#endif + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from Cartesian UV space [0, 1] to Cartesian local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + + float radius = length(position.xy); // [0, 1] + vec3 radial = normalize(vec3(position.xy, 0.0)); + + // Shape space height is defined within [0, 1] + float height = positionUv.z; // [0, 1] + vec3 z = vec3(0.0, 0.0, 1.0); + + float angle = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + vec3 point = vec3(radius, height, angle); + mat3 jacobianT = mat3(radial, z, east / length(position.xy)); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + float radius = positionShape.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius = radius * u_cylinderUvToShapeUvRadius.x + u_cylinderUvToShapeUvRadius.y; + #endif + + float height = positionShape.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height = height * u_cylinderUvToShapeUvHeight.x + u_cylinderUvToShapeUvHeight.y; + #endif + + float angle = (positionShape.z + czm_pi) / czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED) + // Comparing against u_cylinderShapeUvAngleMinMax has precision problems. u_cylinderShapeUvAngleRangeZeroMid is more conservative. + angle += float(angle < u_cylinderShapeUvAngleRangeZeroMid); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY) + angle = angle > u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.x : angle; + #elif defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY) + angle = angle < u_cylinderShapeUvAngleRangeZeroMid ? u_cylinderShapeUvAngleMinMax.y : angle; + #endif + + angle = angle * u_cylinderUvToShapeUvAngle.x + u_cylinderUvToShapeUvAngle.y; + #endif + + return vec3(radius, height, angle); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + float radius = shapeUv.x; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_RADIUS) + radius /= u_cylinderUvToShapeUvRadius.x; + #endif + + float height = shapeUv.y; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT) + height /= u_cylinderUvToShapeUvHeight.x; + #endif + + float angle = shapeUv.z * czm_twoPi; + #if defined(CYLINDER_HAS_SHAPE_BOUNDS_ANGLE) + angle /= u_cylinderUvToShapeUvAngle.x; + #endif + + return vec3(radius, height, angle); +} +`;var j4=`/* Ellipsoid defines (set in Scene/VoxelEllipsoidShape.js) +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY +#define ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED +#define ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE +*/ + +uniform vec3 u_ellipsoidRadiiUv; // [0,1] +uniform vec2 u_evoluteScale; // (radiiUv.x ^ 2 - radiiUv.z ^ 2) * vec2(1.0, -1.0) / radiiUv; +uniform vec3 u_ellipsoidInverseRadiiSquaredUv; +#if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) || defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) || defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + uniform vec3 u_ellipsoidShapeUvLongitudeMinMaxMid; +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLongitude; // x = scale, y = offset +#endif +#if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + uniform vec2 u_ellipsoidUvToShapeUvLatitude; // x = scale, y = offset +#endif +uniform float u_ellipsoidInverseHeightDifferenceUv; + +// robust iterative solution without trig functions +// https://github.com/0xfaded/ellipse_demo/issues/1 +// https://stackoverflow.com/questions/22959698/distance-from-given-point-to-given-ellipse +// Extended to return radius of curvature along with the point +vec3 nearestPointAndRadiusOnEllipse(vec2 pos, vec2 radii) { + vec2 p = abs(pos); + vec2 inverseRadii = 1.0 / radii; + + // We describe the ellipse parametrically: v = radii * vec2(cos(t), sin(t)) + // but store the cos and sin of t in a vec2 for efficiency. + // Initial guess: t = pi/4 + vec2 tTrigs = vec2(0.7071067811865476); + // Initial guess of point on ellipsoid + vec2 v = radii * tTrigs; + // Center of curvature of the ellipse at v + vec2 evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + + const int iterations = 3; + for (int i = 0; i < iterations; ++i) { + // Find the (approximate) intersection of p - evolute with the ellipsoid. + vec2 q = normalize(p - evolute) * length(v - evolute); + // Update the estimate of t. + tTrigs = (q + evolute) * inverseRadii; + tTrigs = normalize(clamp(tTrigs, 0.0, 1.0)); + v = radii * tTrigs; + evolute = u_evoluteScale * tTrigs * tTrigs * tTrigs; + } + + return vec3(v * sign(pos), length(v - evolute)); +} + +PointJacobianT convertUvToShapeSpaceDerivative(in vec3 positionUv) { + // Convert from UV space [0, 1] to local space [-1, 1] + vec3 position = positionUv * 2.0 - 1.0; + // Undo the scaling from ellipsoid to sphere + position = position * u_ellipsoidRadiiUv; + + float longitude = atan(position.y, position.x); + vec3 east = normalize(vec3(-position.y, position.x, 0.0)); + + // Convert the 3D position to a 2D position relative to the ellipse (radii.x, radii.z) + // (assume radii.y == radii.x) and find the nearest point on the ellipse and its normal + float distanceFromZAxis = length(position.xy); + vec2 posEllipse = vec2(distanceFromZAxis, position.z); + vec3 surfacePointAndRadius = nearestPointAndRadiusOnEllipse(posEllipse, u_ellipsoidRadiiUv.xz); + vec2 surfacePoint = surfacePointAndRadius.xy; + + vec2 normal2d = normalize(surfacePoint * u_ellipsoidInverseRadiiSquaredUv.xz); + float latitude = atan(normal2d.y, normal2d.x); + vec3 north = vec3(-normal2d.y * normalize(position.xy), abs(normal2d.x)); + + float heightSign = length(posEllipse) < length(surfacePoint) ? -1.0 : 1.0; + float height = heightSign * length(posEllipse - surfacePoint); + vec3 up = normalize(cross(east, north)); + + vec3 point = vec3(longitude, latitude, height); + mat3 jacobianT = mat3(east / distanceFromZAxis, north / (surfacePointAndRadius.z + height), up); + return PointJacobianT(point, jacobianT); +} + +vec3 convertShapeToShapeUvSpace(in vec3 positionShape) { + // Longitude: shift & scale to [0, 1] + float longitude = (positionShape.x + czm_pi) / czm_twoPi; + + // Correct the angle when max < min + // Technically this should compare against min longitude - but it has precision problems so compare against the middle of empty space. + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED) + longitude += float(longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z); + #endif + + // Avoid flickering from reading voxels from both sides of the -pi/+pi discontinuity. + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY) + longitude = longitude > u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.x : longitude; + #endif + #if defined(ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY) + longitude = longitude < u_ellipsoidShapeUvLongitudeMinMaxMid.z ? u_ellipsoidShapeUvLongitudeMinMaxMid.y : longitude; + #endif + + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude = longitude * u_ellipsoidUvToShapeUvLongitude.x + u_ellipsoidUvToShapeUvLongitude.y; + #endif + + // Latitude: shift and scale to [0, 1] + float latitude = (positionShape.y + czm_piOverTwo) / czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude = latitude * u_ellipsoidUvToShapeUvLatitude.x + u_ellipsoidUvToShapeUvLatitude.y; + #endif + + // Height: scale to the range [0, 1] + float height = 1.0 + positionShape.z * u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} + +PointJacobianT convertUvToShapeUvSpaceDerivative(in vec3 positionUv) { + PointJacobianT pointJacobian = convertUvToShapeSpaceDerivative(positionUv); + pointJacobian.point = convertShapeToShapeUvSpace(pointJacobian.point); + return pointJacobian; +} + +vec3 scaleShapeUvToShapeSpace(in vec3 shapeUv) { + // Convert from [0, 1] to radians [-pi, pi] + float longitude = shapeUv.x * czm_twoPi; + #if defined (ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE) + longitude /= u_ellipsoidUvToShapeUvLongitude.x; + #endif + + // Convert from [0, 1] to radians [-pi/2, pi/2] + float latitude = shapeUv.y * czm_pi; + #if defined(ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE) + latitude /= u_ellipsoidUvToShapeUvLatitude.x; + #endif + + float height = shapeUv.z / u_ellipsoidInverseHeightDifferenceUv; + + return vec3(longitude, latitude, height); +} +`;var q4=`// These octree flags must be in sync with GpuOctreeFlag in VoxelTraversal.js +#define OCTREE_FLAG_INTERNAL 0 +#define OCTREE_FLAG_LEAF 1 +#define OCTREE_FLAG_PACKED_LEAF_FROM_PARENT 2 + +#define OCTREE_MAX_LEVELS 32 // Harcoded value because GLSL doesn't like variable length loops + +uniform sampler2D u_octreeInternalNodeTexture; +uniform vec2 u_octreeInternalNodeTexelSizeUv; +uniform int u_octreeInternalNodeTilesPerRow; +#if (SAMPLE_COUNT > 1) +uniform sampler2D u_octreeLeafNodeTexture; +uniform vec2 u_octreeLeafNodeTexelSizeUv; +uniform int u_octreeLeafNodeTilesPerRow; +#endif + +struct OctreeNodeData { + int data; + int flag; +}; + +struct TraversalData { + ivec4 octreeCoords; + int parentOctreeIndex; +}; + +struct SampleData { + int megatextureIndex; + ivec4 tileCoords; + vec3 tileUv; + #if (SAMPLE_COUNT > 1) + float weight; + #endif +}; + +// Integer mod: For WebGL1 only +int intMod(in int a, in int b) { + return a - (b * (a / b)); +} +int normU8_toInt(in float value) { + return int(value * 255.0); +} +int normU8x2_toInt(in vec2 value) { + return int(value.x * 255.0) + 256 * int(value.y * 255.0); +} +float normU8x2_toFloat(in vec2 value) { + return float(normU8x2_toInt(value)) / 65535.0; +} + +OctreeNodeData getOctreeNodeData(in vec2 octreeUv) { + vec4 texData = texture(u_octreeInternalNodeTexture, octreeUv); + + OctreeNodeData data; + data.data = normU8x2_toInt(texData.xy); + data.flag = normU8x2_toInt(texData.zw); + return data; +} + +OctreeNodeData getOctreeChildData(in int parentOctreeIndex, in ivec3 childCoord) { + int childIndex = childCoord.z * 4 + childCoord.y * 2 + childCoord.x; + int octreeCoordX = intMod(parentOctreeIndex, u_octreeInternalNodeTilesPerRow) * 9 + 1 + childIndex; + int octreeCoordY = parentOctreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + return getOctreeNodeData(octreeUv); +} + +int getOctreeParentIndex(in int octreeIndex) { + int octreeCoordX = intMod(octreeIndex, u_octreeInternalNodeTilesPerRow) * 9; + int octreeCoordY = octreeIndex / u_octreeInternalNodeTilesPerRow; + vec2 octreeUv = u_octreeInternalNodeTexelSizeUv * vec2(float(octreeCoordX) + 0.5, float(octreeCoordY) + 0.5); + vec4 parentData = texture(u_octreeInternalNodeTexture, octreeUv); + int parentOctreeIndex = normU8x2_toInt(parentData.xy); + return parentOctreeIndex; +} + +/** +* Convert a position in the uv-space of the tileset bounding shape +* into the uv-space of a tile within the tileset +*/ +vec3 getTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + // PERFORMANCE_IDEA: use bit-shifting (only in WebGL2) + float dimAtLevel = exp2(float(octreeCoords.w)); + return shapePosition * dimAtLevel - vec3(octreeCoords.xyz); +} + +vec3 getClampedTileUv(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + return clamp(tileUv, vec3(0.0), vec3(1.0)); +} + +void getOctreeLeafSampleData(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleData) { + sampleData.megatextureIndex = data.data; + sampleData.tileCoords = (data.flag == OCTREE_FLAG_PACKED_LEAF_FROM_PARENT) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; +} + +#if (SAMPLE_COUNT > 1) +void getOctreeLeafSampleDatas(in OctreeNodeData data, in ivec4 octreeCoords, out SampleData sampleDatas[SAMPLE_COUNT]) { + int leafIndex = data.data; + int leafNodeTexelCount = 2; + // Adding 0.5 moves to the center of the texel + float leafCoordXStart = float(intMod(leafIndex, u_octreeLeafNodeTilesPerRow) * leafNodeTexelCount) + 0.5; + float leafCoordY = float(leafIndex / u_octreeLeafNodeTilesPerRow) + 0.5; + + // Get an interpolation weight and a flag to determine whether to read the parent texture + vec2 leafUv0 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 0.0, leafCoordY); + vec4 leafData0 = texture(u_octreeLeafNodeTexture, leafUv0); + float lerp = normU8x2_toFloat(leafData0.xy); + sampleDatas[0].weight = 1.0 - lerp; + sampleDatas[1].weight = lerp; + // TODO: this looks wrong? Should be comparing to OCTREE_FLAG_PACKED_LEAF_FROM_PARENT + sampleDatas[0].tileCoords = (normU8_toInt(leafData0.z) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + sampleDatas[1].tileCoords = (normU8_toInt(leafData0.w) == 1) + ? ivec4(octreeCoords.xyz / 2, octreeCoords.w - 1) + : octreeCoords; + + // Get megatexture indices for both samples + vec2 leafUv1 = u_octreeLeafNodeTexelSizeUv * vec2(leafCoordXStart + 1.0, leafCoordY); + vec4 leafData1 = texture(u_octreeLeafNodeTexture, leafUv1); + sampleDatas[0].megatextureIndex = normU8x2_toInt(leafData1.xy); + sampleDatas[1].megatextureIndex = normU8x2_toInt(leafData1.zw); +} +#endif + +OctreeNodeData traverseOctreeDownwards(in vec3 shapePosition, inout TraversalData traversalData) { + float sizeAtLevel = exp2(-1.0 * float(traversalData.octreeCoords.w)); + vec3 start = vec3(traversalData.octreeCoords.xyz) * sizeAtLevel; + vec3 end = start + vec3(sizeAtLevel); + OctreeNodeData childData; + + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + // Find out which octree child contains the position + // 0 if before center, 1 if after + vec3 center = 0.5 * (start + end); + vec3 childCoord = step(center, shapePosition); + + // Get octree coords for the next level down + ivec4 octreeCoords = traversalData.octreeCoords; + traversalData.octreeCoords = ivec4(octreeCoords.xyz * 2 + ivec3(childCoord), octreeCoords.w + 1); + + childData = getOctreeChildData(traversalData.parentOctreeIndex, ivec3(childCoord)); + + if (childData.flag != OCTREE_FLAG_INTERNAL) { + // leaf tile - stop traversing + break; + } + + // interior tile - keep going deeper + start = mix(start, center, childCoord); + end = mix(center, end, childCoord); + traversalData.parentOctreeIndex = childData.data; + } + + return childData; +} + +/** +* Transform a given position to an octree tile coordinate and a position within that tile, +* and find the corresponding megatexture index and texture coordinates +*/ +void traverseOctreeFromBeginning(in vec3 shapePosition, out TraversalData traversalData, out SampleData sampleDatas[SAMPLE_COUNT]) { + traversalData.octreeCoords = ivec4(0); + traversalData.parentOctreeIndex = 0; + + OctreeNodeData nodeData = getOctreeNodeData(vec2(0.0)); + if (nodeData.flag != OCTREE_FLAG_LEAF) { + nodeData = traverseOctreeDownwards(shapePosition, traversalData); + } + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} + +bool inRange(in vec3 v, in vec3 minVal, in vec3 maxVal) { + return clamp(v, minVal, maxVal) == v; +} + +bool insideTile(in vec3 shapePosition, in ivec4 octreeCoords) { + vec3 tileUv = getTileUv(shapePosition, octreeCoords); + bool inside = inRange(tileUv, vec3(0.0), vec3(1.0)); + // Assume (!) the position is always inside the root tile. + return inside || octreeCoords.w == 0; +} + +void traverseOctreeFromExisting(in vec3 shapePosition, inout TraversalData traversalData, inout SampleData sampleDatas[SAMPLE_COUNT]) { + if (insideTile(shapePosition, traversalData.octreeCoords)) { + for (int i = 0; i < SAMPLE_COUNT; i++) { + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + } + return; + } + + // Go up tree until we find a parent tile containing shapePosition + for (int i = 0; i < OCTREE_MAX_LEVELS; ++i) { + traversalData.octreeCoords.xyz /= 2; + traversalData.octreeCoords.w -= 1; + + if (insideTile(shapePosition, traversalData.octreeCoords)) { + break; + } + + traversalData.parentOctreeIndex = getOctreeParentIndex(traversalData.parentOctreeIndex); + } + + // Go down tree + OctreeNodeData nodeData = traverseOctreeDownwards(shapePosition, traversalData); + + #if (SAMPLE_COUNT == 1) + getOctreeLeafSampleData(nodeData, traversalData.octreeCoords, sampleDatas[0]); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + #else + getOctreeLeafSampleDatas(nodeData, traversalData.octreeCoords, sampleDatas); + sampleDatas[0].tileUv = getClampedTileUv(shapePosition, sampleDatas[0].tileCoords); + sampleDatas[1].tileUv = getClampedTileUv(shapePosition, sampleDatas[1].tileCoords); + #endif +} +`;var Y4=`// See Octree.glsl for the definitions of SampleData and intMod + +/* Megatexture defines (set in Scene/VoxelRenderResources.js) +#define SAMPLE_COUNT ### +#define NEAREST_SAMPLING +#define PADDING +*/ + +uniform ivec2 u_megatextureSliceDimensions; // number of slices per tile, in two dimensions +uniform ivec2 u_megatextureTileDimensions; // number of tiles per megatexture, in two dimensions +uniform vec2 u_megatextureVoxelSizeUv; +uniform vec2 u_megatextureSliceSizeUv; +uniform vec2 u_megatextureTileSizeUv; + +uniform ivec3 u_dimensions; // does not include padding +#if defined(PADDING) + uniform ivec3 u_paddingBefore; + uniform ivec3 u_paddingAfter; +#endif + +// Integer min, max, clamp: For WebGL1 only +int intMin(int a, int b) { + return a <= b ? a : b; +} +int intMax(int a, int b) { + return a >= b ? a : b; +} +int intClamp(int v, int minVal, int maxVal) { + return intMin(intMax(v, minVal), maxVal); +} + +vec2 index1DTo2DTexcoord(int index, ivec2 dimensions, vec2 uvScale) +{ + int indexX = intMod(index, dimensions.x); + int indexY = index / dimensions.x; + return vec2(indexX, indexY) * uvScale; +} + +/* + How is 3D data stored in a 2D megatexture? + + In this example there is only one loaded tile and it has 2x2x2 voxels (8 voxels total). + The data is sliced by Z. The data at Z = 0 is placed in texels (0,0), (0,1), (1,0), (1,1) and + the data at Z = 1 is placed in texels (2,0), (2,1), (3,0), (3,1). + Note that there could be empty space in the megatexture because it's a power of two. + + 0 1 2 3 + +---+---+---+---+ + | | | | | 3 + +---+---+---+---+ + | | | | | 2 + +-------+-------+ + |010|110|011|111| 1 + |--- ---|--- ---| + |000|100|001|101| 0 + +-------+-------+ + + When doing linear interpolation the megatexture needs to be sampled twice: once for + the Z slice above the voxel coordinate and once for the slice below. The two slices + are interpolated with fract(coord.z - 0.5). For example, a Z coordinate of 1.0 is + halfway between two Z slices so the interpolation factor is 0.5. Below is a side view + of the 3D voxel grid with voxel coordinates on the left side. + + 2 +---+ + |001| + 1 +-z-+ + |000| + 0 +---+ + + When doing nearest neighbor the megatexture only needs to be sampled once at the closest Z slice. +*/ + +Properties getPropertiesFromMegatexture(in SampleData sampleData) { + int tileIndex = sampleData.megatextureIndex; + vec3 voxelCoord = sampleData.tileUv * vec3(u_dimensions); + ivec3 voxelDimensions = u_dimensions; + + #if defined(PADDING) + voxelDimensions += u_paddingBefore + u_paddingAfter; + voxelCoord += vec3(u_paddingBefore); + #endif + + #if defined(NEAREST_SAMPLING) + // Round to the center of the nearest voxel + voxelCoord = floor(voxelCoord) + vec3(0.5); + #endif + + // Tile location + vec2 tileUvOffset = index1DTo2DTexcoord(tileIndex, u_megatextureTileDimensions, u_megatextureTileSizeUv); + + // Slice location + float slice = voxelCoord.z - 0.5; + int sliceIndex = int(floor(slice)); + int sliceIndex0 = intClamp(sliceIndex, 0, voxelDimensions.z - 1); + vec2 sliceUvOffset0 = index1DTo2DTexcoord(sliceIndex0, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + + // Voxel location + vec2 voxelUvOffset = clamp(voxelCoord.xy, vec2(0.5), vec2(voxelDimensions.xy) - vec2(0.5)) * u_megatextureVoxelSizeUv; + + // Final location in the megatexture + vec2 uv0 = tileUvOffset + sliceUvOffset0 + voxelUvOffset; + + #if defined(NEAREST_SAMPLING) + return getPropertiesFromMegatextureAtUv(uv0); + #else + float sliceLerp = fract(slice); + int sliceIndex1 = intMin(sliceIndex + 1, voxelDimensions.z - 1); + vec2 sliceUvOffset1 = index1DTo2DTexcoord(sliceIndex1, u_megatextureSliceDimensions, u_megatextureSliceSizeUv); + vec2 uv1 = tileUvOffset + sliceUvOffset1 + voxelUvOffset; + Properties properties0 = getPropertiesFromMegatextureAtUv(uv0); + Properties properties1 = getPropertiesFromMegatextureAtUv(uv1); + return mixProperties(properties0, properties1, sliceLerp); + #endif +} + +// Convert an array of sample datas to a final weighted properties. +Properties accumulatePropertiesFromMegatexture(in SampleData sampleDatas[SAMPLE_COUNT]) { + #if (SAMPLE_COUNT == 1) + return getPropertiesFromMegatexture(sampleDatas[0]); + #else + // When more than one sample is taken the accumulator needs to start at 0 + Properties properties = clearProperties(); + for (int i = 0; i < SAMPLE_COUNT; ++i) { + float weight = sampleDatas[i].weight; + + // Avoid reading the megatexture when the weight is 0 as it can be costly. + if (weight > 0.0) { + Properties tempProperties = getPropertiesFromMegatexture(sampleDatas[i]); + tempProperties = scaleProperties(tempProperties, weight); + properties = sumProperties(properties, tempProperties); + } + } + return properties; + #endif +} +`;function q_t(e){let t=new vT;this.shaderBuilder=t;let n=e._customShader,i=xt(e._uniformMap,n.uniformMap);e._uniformMap=i;let o=n.uniforms;for(let p in o)if(o.hasOwnProperty(p)){let g=o[p];t.addUniform(g.type,p,pe.FRAGMENT)}t.addUniform("sampler2D","u_megatextureTextures[METADATA_COUNT]",pe.FRAGMENT),this.uniformMap=i;let r=e._clippingPlanes,s=l(r)&&r.enabled?r.length:0;this.clippingPlanes=r,this.clippingPlanesLength=s,t.addVertexLines([F4]),t.addFragmentLines([n.fragmentShaderText,"#line 0",q4,L4,B4,Y4]),s>0&&(t.addDefine("CLIPPING_PLANES",void 0,pe.FRAGMENT),t.addDefine("CLIPPING_PLANES_COUNT",s,pe.FRAGMENT),r.unionClippingRegions&&t.addDefine("CLIPPING_PLANES_UNION",void 0,pe.FRAGMENT),t.addFragmentLines([V4])),e._depthTest&&(t.addDefine("DEPTH_TEST",void 0,pe.FRAGMENT),t.addFragmentLines([k4]));let a=e._provider.shape;a==="BOX"?t.addFragmentLines([G4,U4,KE]):a==="CYLINDER"?t.addFragmentLines([W4,eP,z4,KE]):a==="ELLIPSOID"&&(t.addDefine("SHAPE_ELLIPSOID",void 0,pe.FRAGMENT),t.addFragmentLines([j4,eP,H4,KE])),t.addFragmentLines([N4]);let c=e._shape,u=c.shaderDefines;for(let p in u)if(u.hasOwnProperty(p)){let g=u[p];l(g)&&(g=g===!0?void 0:g,t.addDefine(p,g,pe.FRAGMENT))}let f=c.shaderMaximumIntersectionsLength;s>0&&(t.addDefine("CLIPPING_PLANES_INTERSECTION_INDEX",f,pe.FRAGMENT),s===1?f+=1:r.unionClippingRegions?f+=2:f+=1),e._depthTest&&(t.addDefine("DEPTH_INTERSECTION_INDEX",f,pe.FRAGMENT),f+=1),t.addDefine("INTERSECTION_COUNT",f,pe.FRAGMENT),(!h.equals(e.paddingBefore,h.ZERO)||!h.equals(e.paddingAfter,h.ZERO))&&t.addDefine("PADDING",void 0,pe.FRAGMENT),e._useLogDepth&&t.addDefine("LOG_DEPTH_READ_ONLY",void 0,pe.FRAGMENT),e._nearestSampling&&t.addDefine("NEAREST_SAMPLING",void 0,pe.FRAGMENT);let d=e._traversal;t.addDefine("SAMPLE_COUNT",`${d._sampleCount}`,pe.FRAGMENT)}var X4=q_t;function Y_t(e,t){let{shaderBuilder:n}=e,{names:i,types:o,componentTypes:r,minimumValues:s,maximumValues:a}=t._provider,c=o.length,u=l(s)&&l(a);n.addDefine("METADATA_COUNT",c,pe.FRAGMENT),u&&n.addDefine("STATISTICS",void 0,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],L=o[R],_=`PropertyStatistics_${M}`,E=`PropertyStatistics_${M}`;n.addStruct(_,E,pe.FRAGMENT);let w=K4(L);n.addStructField(_,w,"min"),n.addStructField(_,w,"max")}let f="Statistics",d="Statistics",p="statistics";n.addStruct(f,d,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],L=`PropertyStatistics_${M}`,_=M;n.addStructField(f,L,_)}let g="Metadata",m="Metadata",x="metadata";n.addStruct(g,m,pe.FRAGMENT),n.addStructField(g,d,p);for(let R=0;R<c;R++){let M=i[R],L=o[R],_=K4(L);n.addStructField(g,_,M)}for(let R=0;R<c;R++){let M=i[R],L=o[R],_=K_t(L),E=`VoxelProperty_${M}`,w=`VoxelProperty_${M}`;n.addStruct(E,w,pe.FRAGMENT),n.addStructField(E,_,"partialDerivativeLocal"),n.addStructField(E,_,"partialDerivativeWorld"),n.addStructField(E,_,"partialDerivativeView"),n.addStructField(E,_,"partialDerivativeValid")}let b="Voxel",T="Voxel",A="voxel";n.addStruct(b,T,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],L=`VoxelProperty_${M}`;n.addStructField(b,L,M)}n.addStructField(b,"vec3","positionEC"),n.addStructField(b,"vec3","positionUv"),n.addStructField(b,"vec3","positionShapeUv"),n.addStructField(b,"vec3","positionUvLocal"),n.addStructField(b,"vec3","viewDirUv"),n.addStructField(b,"vec3","viewDirWorld"),n.addStructField(b,"vec3","surfaceNormal"),n.addStructField(b,"float","travelDistance"),n.addStructField(b,"int","stepCount"),n.addStructField(b,"int","tileIndex"),n.addStructField(b,"int","sampleIndex");let C="FragmentInput";n.addStruct(C,"FragmentInput",pe.FRAGMENT),n.addStructField(C,m,x),n.addStructField(C,T,A);let v="Properties",D="Properties",O="properties";n.addStruct(v,D,pe.FRAGMENT);for(let R=0;R<c;R++){let M=i[R],L=o[R],_=K4(L);n.addStructField(v,_,M)}{let R="clearProperties";n.addFunction(R,`${D} clearProperties()`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let L=i[M],_=o[M],E=r[M],w=K4(_,E);n.addFunctionLines(R,[`${O}.${L} = ${w}(0.0);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="sumProperties";n.addFunction(R,`${D} sumProperties(${D} propertiesA, ${D} propertiesB)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let L=i[M];n.addFunctionLines(R,[`${O}.${L} = propertiesA.${L} + propertiesB.${L};`])}n.addFunctionLines(R,[`return ${O};`])}{let R="scaleProperties";n.addFunction(R,`${D} scaleProperties(${D} ${O}, float scale)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} scaledProperties = ${O};`]);for(let M=0;M<c;M++){let L=i[M];n.addFunctionLines(R,[`scaledProperties.${L} *= scale;`])}n.addFunctionLines(R,["return scaledProperties;"])}{let R="mixProperties";n.addFunction(R,`${D} mixProperties(${D} propertiesA, ${D} propertiesB, float mixFactor)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let L=i[M];n.addFunctionLines(R,[`${O}.${L} = mix(propertiesA.${L}, propertiesB.${L}, mixFactor);`])}n.addFunctionLines(R,[`return ${O};`])}{let R="copyPropertiesToMetadata";n.addFunction(R,`void copyPropertiesToMetadata(in ${D} ${O}, inout ${m} ${x})`,pe.FRAGMENT);for(let M=0;M<c;M++){let L=i[M];n.addFunctionLines(R,[`${x}.${L} = ${O}.${L};`])}}if(u){let R="setStatistics";n.addFunction(R,`void setStatistics(inout ${d} ${p})`,pe.FRAGMENT);for(let M=0;M<c;M++){let L=i[M],_=o[M],E=Et.getComponentCount(_);for(let w=0;w<E;w++){let I=Z_t(_,w),N=s[M][w],B=a[M][w];n.addFunctionLines(R,[`${p}.${L}.min${I} = ${Fxe(N)};`,`${p}.${L}.max${I} = ${Fxe(B)};`])}}}{let R="getPropertiesFromMegatextureAtUv";n.addFunction(R,`${D} getPropertiesFromMegatextureAtUv(vec2 texcoord)`,pe.FRAGMENT),n.addFunctionLines(R,[`${D} ${O};`]);for(let M=0;M<c;M++){let L=i[M],_=o[M],E=r[M],w=X_t(_,E);n.addFunctionLines(R,[`properties.${L} = texture(u_megatextureTextures[${M}], texcoord)${w};`])}n.addFunctionLines(R,[`return ${O};`])}}function K4(e){if(e===Et.SCALAR)return"float";if(e===Et.VEC2)return"vec2";if(e===Et.VEC3)return"vec3";if(e===Et.VEC4)return"vec4"}function X_t(e){if(e===Et.SCALAR)return".r";if(e===Et.VEC2)return".ra";if(e===Et.VEC3)return".rgb";if(e===Et.VEC4)return""}function K_t(e){if(e===Et.SCALAR)return"vec3";if(e===Et.VEC2)return"mat2";if(e===Et.VEC3)return"mat3";if(e===Et.VEC4)return"mat4"}function Fxe(e){let t=e.toString();return t.indexOf(".")===-1&&(t=`${e}.0`),t}function Z_t(e,t){return e===Et.SCALAR?"":`[${t}]`}var Z4=Y_t;function $_t(e,t){let n=new X4(e);Z4(n,e);let{shaderBuilder:i,clippingPlanes:o,clippingPlanesLength:r}=n;if(r>0){let T="getClippingPlane",A=Ly(o,t),C=0,S=A.indexOf(")")+1,v=A.indexOf("{",S)+1,D=A.indexOf("}",v),O=A.slice(C,S),R=A.slice(v,D);i.addFunction(T,O,pe.FRAGMENT),i.addFunctionLines(T,[R])}let s=i.clone();s.addDefine("PICKING",void 0,pe.FRAGMENT);let a=i.clone();a.addDefine("PICKING_VOXEL",void 0,pe.FRAGMENT);let c=i.buildShaderProgram(t),u=s.buildShaderProgram(t),f=a.buildShaderProgram(t),d=Ve.fromCache({cull:{enabled:!0,face:yi.BACK},depthTest:{enabled:!1},depthMask:!1,blending:ln.PRE_MULTIPLIED_ALPHA_BLEND}),p=t.getViewportQuadVertexArray(),g=e._depthTest,m=new et({vertexArray:p,primitiveType:Le.TRIANGLES,renderState:d,shaderProgram:c,uniformMap:n.uniformMap,modelMatrix:e._compoundModelMatrix,pass:ve.VOXELS,executeInClosestFrustum:!0,owner:this,cull:g,occlude:g}),x=et.shallowClone(m,new et);x.shaderProgram=u,x.pickOnly=!0;let b=et.shallowClone(m,new et);if(b.shaderProgram=f,b.pickOnly=!0,l(e._drawCommand)){let T=e._drawCommand;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPick)){let T=e._drawCommandPick;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}if(l(e._drawCommandPickVoxel)){let T=e._drawCommandPickVoxel;T.shaderProgram=T.shaderProgram&&T.shaderProgram.destroy()}e._drawCommand=m,e._drawCommandPick=x,e._drawCommandPickVoxel=b}var $4=$_t;function Nl(){this.orientedBoundingBox=new wn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minBounds=h.clone(Nl.DefaultMinBounds,new h),this._maxBounds=h.clone(Nl.DefaultMaxBounds,new h),this.shaderUniforms={renderMinBounds:new h,renderMaxBounds:new h,boxUvToShapeUvScale:new h,boxUvToShapeUvTranslate:new h},this.shaderDefines={BOX_INTERSECTION_INDEX:void 0,BOX_HAS_SHAPE_BOUNDS:void 0},this.shaderMaximumIntersectionsLength=0}var Q_t=new h,uK=new h,J_t=new $,egt=new h,tgt=new h,ngt=new h,igt=new h,Bxe=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F);Nl.prototype.update=function(e,t,n,i,o){i=y(i,Nl.DefaultMinBounds),o=y(o,Nl.DefaultMaxBounds);let r=Nl.DefaultMinBounds,s=Nl.DefaultMaxBounds;t=this._minBounds=h.clamp(t,r,s,this._minBounds),n=this._maxBounds=h.clamp(n,r,s,this._maxBounds),i=h.clamp(i,r,s,egt),o=h.clamp(o,r,s,tgt);let a=h.clamp(t,i,o,ngt),c=h.clamp(n,i,o,igt),u=F.getScale(e,uK);if(a.x>c.x||a.y>c.y||a.z>c.z||(a.x===c.x)+(a.y===c.y)+(a.z===c.z)>=2||i.x>o.x||i.y>o.y||i.z>o.z||u.x===0||u.y===0||u.z===0)return!1;this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=dK(a,c,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let{shaderUniforms:f,shaderDefines:d}=this;for(let m in d)d.hasOwnProperty(m)&&(d[m]=void 0);let p=!h.equals(t,r)||!h.equals(n,s),g=0;if(d.BOX_INTERSECTION_INDEX=g,g+=1,f.renderMinBounds=F.multiplyByPoint(Bxe,a,f.renderMinBounds),f.renderMaxBounds=F.multiplyByPoint(Bxe,c,f.renderMaxBounds),p){d.BOX_HAS_SHAPE_BOUNDS=!0;let m=t,x=n;f.boxUvToShapeUvScale=h.fromElements(2/(m.x===x.x?1:x.x-m.x),2/(m.y===x.y?1:x.y-m.y),2/(m.z===x.z?1:x.z-m.z),f.boxUvToShapeUvScale),f.boxUvToShapeUvTranslate=h.fromElements(-f.boxUvToShapeUvScale.x*(m.x*.5+.5),-f.boxUvToShapeUvScale.y*(m.y*.5+.5),-f.boxUvToShapeUvScale.z*(m.z*.5+.5),f.boxUvToShapeUvTranslate)}return this.shaderMaximumIntersectionsLength=g,!0};var Q4=new h,fK=new h;Nl.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minBounds,s=this._maxBounds,a=1/Math.pow(2,e),c=h.fromElements(P.lerp(r.x,s.x,a*t),P.lerp(r.y,s.y,a*n),P.lerp(r.z,s.z,a*i),Q4),u=h.fromElements(P.lerp(r.x,s.x,a*(t+1)),P.lerp(r.y,s.y,a*(n+1)),P.lerp(r.z,s.z,a*(i+1)),fK);return dK(c,u,this.shapeTransform,o)};var kxe=new h;Nl.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,kxe),s=h.multiplyByScalar(r,o,kxe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,Q4),o,Q4),c=h.add(a,s,fK),u=this._minBounds,f=this._maxBounds,d=h.fromElements(P.lerp(u.x,f.x,a.x),P.lerp(u.y,f.y,a.y),P.lerp(u.z,f.z,a.z),Q4),p=h.fromElements(P.lerp(u.x,f.x,c.x),P.lerp(u.y,f.y,c.y),P.lerp(u.z,f.z,c.z),fK);return dK(d,p,this.shapeTransform,i)};Nl.DefaultMinBounds=Object.freeze(new h(-1,-1,-1));Nl.DefaultMaxBounds=Object.freeze(new h(1,1,1));function dK(e,t,n,i){let o=Nl.DefaultMinBounds,r=Nl.DefaultMaxBounds;if(h.equals(e,o)&&h.equals(t,r))i.center=F.getTranslation(n,i.center),i.halfAxes=F.getMatrix3(n,i.halfAxes);else{let a=F.getScale(n,uK),c=h.midpoint(e,t,Q_t);i.center=F.multiplyByPoint(n,c,i.center),a=h.fromElements(a.x*.5*(t.x-e.x),a.y*.5*(t.y-e.y),a.z*.5*(t.z-e.z),uK);let u=F.getRotation(n,J_t);i.halfAxes=$.setScale(u,a,i.halfAxes)}return i}var y_=Nl;function Zr(){this.orientedBoundingBox=new wn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._minimumRadius=Zr.DefaultMinBounds.x,this._maximumRadius=Zr.DefaultMaxBounds.x,this._minimumHeight=Zr.DefaultMinBounds.y,this._maximumHeight=Zr.DefaultMaxBounds.y,this._minimumAngle=Zr.DefaultMinBounds.z,this._maximumAngle=Zr.DefaultMaxBounds.z,this.shaderUniforms={cylinderRenderHeightMinMax:new U,cylinderRenderRadiusMinMax:new U,cylinderRenderAngleMinMax:new U,cylinderUvToShapeUvRadius:new U,cylinderUvToShapeUvHeight:new U,cylinderUvToShapeUvAngle:new U,cylinderShapeUvAngleMinMax:new U,cylinderShapeUvAngleRangeZeroMid:0},this.shaderDefines={CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN:void 0,CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF:void 0,CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF:void 0,CYLINDER_HAS_SHAPE_BOUNDS_RADIUS:void 0,CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY:void 0,CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MAX:void 0,CYLINDER_INTERSECTION_INDEX_RADIUS_MIN:void 0,CYLINDER_INTERSECTION_INDEX_ANGLE:void 0},this.shaderMaximumIntersectionsLength=0}var Hxe=new h;Zr.prototype.update=function(e,t,n,i,o){i=y(i,Zr.DefaultMinBounds),o=y(o,Zr.DefaultMaxBounds);let r=Zr.DefaultMinBounds.x,s=Zr.DefaultMaxBounds.x,a=Zr.DefaultMinBounds.y,c=Zr.DefaultMaxBounds.y,u=Zr.DefaultMinBounds.z,f=Zr.DefaultMaxBounds.z,d=f-u,p=.5*d,g=P.EPSILON10,m=P.EPSILON3,x=P.EPSILON10,b=P.clamp(t.x,r,s),T=P.clamp(n.x,r,s),A=P.clamp(i.x,r,s),C=P.clamp(o.x,r,s),S=Math.max(b,A),v=Math.min(T,C),D=P.clamp(t.y,a,c),O=P.clamp(n.y,a,c),R=P.clamp(i.y,a,c),M=P.clamp(o.y,a,c),L=Math.max(D,R),_=Math.min(O,M),E=P.negativePiToPi(t.z),w=P.negativePiToPi(n.z),I=P.negativePiToPi(i.z),N=P.negativePiToPi(o.z),B=Math.max(E,I),H=Math.min(w,N),V=F.getScale(e,Hxe);if(v===0||S>v||L>_||P.equalsEpsilon(V.x,0,void 0,g)||P.equalsEpsilon(V.y,0,void 0,g)||P.equalsEpsilon(V.z,0,void 0,g))return!1;this._minimumRadius=b,this._maximumRadius=T,this._minimumHeight=D,this._maximumHeight=O,this._minimumAngle=E,this._maximumAngle=w,this.shapeTransform=F.clone(e,this.shapeTransform),this.orientedBoundingBox=mK(S,v,L,_,B,H,this.shapeTransform,this.orientedBoundingBox),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let W=b===r&&T===s,q=D===a&&O===c,J=w<E,j=w-E+J*d,Z=j>p+x&&j<d-x,Q=j<p-x,de=j>=p-x&&j<=p+x,ye=Z||Q||de,ae=P.equalsEpsilon(E,u,void 0,m),_e=P.equalsEpsilon(w,f,void 0,m),xe=S===r,Ie=H<B,Ce=H-B+Ie*d,ke=Ce>=p-x&&Ce<d-x,He=Ce>x&&Ce<p-x,rt=Ce<=x,Lt=ke||He||rt,{shaderUniforms:Tt,shaderDefines:we}=this;for(let Qe in we)we.hasOwnProperty(Qe)&&(we[Qe]=void 0);let Xe=0;if(we.CYLINDER_INTERSECTION_INDEX_RADIUS_MAX=Xe,Xe+=1,xe||(we.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_MIN=!0,we.CYLINDER_INTERSECTION_INDEX_RADIUS_MIN=Xe,Xe+=1),Tt.cylinderRenderRadiusMinMax=U.fromElements(S,v,Tt.cylinderRenderRadiusMinMax),S===v&&(we.CYLINDER_HAS_RENDER_BOUNDS_RADIUS_FLAT=!0),!W){we.CYLINDER_HAS_SHAPE_BOUNDS_RADIUS=!0;let Qe=T-b,We=0,Ut=1;Qe!==0&&(We=1/Qe,Ut=-b/Qe),Tt.cylinderUvToShapeUvRadius=U.fromElements(We,Ut,Tt.cylinderUvToShapeUvRadius)}if(!q){we.CYLINDER_HAS_SHAPE_BOUNDS_HEIGHT=!0;let Qe=O-D,We=0,Ut=1;Qe!==0&&(We=2/Qe,Ut=-(D+1)/Qe),Tt.cylinderUvToShapeUvHeight=U.fromElements(We,Ut,Tt.cylinderUvToShapeUvHeight)}if(Tt.cylinderRenderHeightMinMax=U.fromElements(L,_,Tt.cylinderRenderHeightMinMax),J&&(we.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_MAX_REVERSED=!0),Lt&&(we.CYLINDER_HAS_RENDER_BOUNDS_ANGLE=!0,we.CYLINDER_INTERSECTION_INDEX_ANGLE=Xe,ke?(we.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_UNDER_HALF=!0,Xe+=1):He?(we.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_OVER_HALF=!0,Xe+=2):rt&&(we.CYLINDER_HAS_RENDER_BOUNDS_ANGLE_RANGE_EQUAL_ZERO=!0,Xe+=2),Tt.cylinderRenderAngleMinMax=U.fromElements(B,H,Tt.cylinderRenderAngleMinMax)),ye){we.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE=!0,ae&&(we.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MIN_DISCONTINUITY=!0),_e&&(we.CYLINDER_HAS_SHAPE_BOUNDS_ANGLE_MAX_DISCONTINUITY=!0);let Qe=(E-u)/d,We=(w-u)/d,Ut=1-j/d;if(Tt.cylinderShapeUvAngleMinMax=U.fromElements(Qe,We,Tt.cylinderShapeUvAngleMinMax),Tt.cylinderShapeUvAngleRangeZeroMid=(We+.5*Ut)%1,j<=x)Tt.cylinderUvToShapeUvAngle=U.fromElements(0,1,Tt.cylinderUvToShapeUvAngle);else{let Te=d/j,Ae=-(E-u)/j;Tt.cylinderUvToShapeUvAngle=U.fromElements(Te,Ae,Tt.cylinderUvToShapeUvAngle)}}return this.shaderMaximumIntersectionsLength=Xe,!0};Zr.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=this._minimumRadius,s=this._maximumRadius,a=this._minimumHeight,c=this._maximumHeight,u=this._minimumAngle,f=this._maximumAngle,d=1/Math.pow(2,e),p=P.lerp(r,s,t*d),g=P.lerp(r,s,(t+1)*d),m=P.lerp(a,c,n*d),x=P.lerp(a,c,(n+1)*d),b=P.lerp(u,f,i*d),T=P.lerp(u,f,(i+1)*d);return mK(p,g,m,x,b,T,this.shapeTransform,o)};var Vxe=new h,Uxe=new h,ogt=new h;Zr.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,Vxe),s=h.multiplyByScalar(r,o,Vxe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,Uxe),o,Uxe),c=h.add(a,s,ogt),u=this._minimumRadius,f=this._maximumRadius,d=this._minimumHeight,p=this._maximumHeight,g=this._minimumAngle,m=this._maximumAngle,x=P.lerp(u,f,a.x),b=P.lerp(u,f,c.x),T=P.lerp(d,p,a.y),A=P.lerp(d,p,c.y),C=P.lerp(g,m,a.z),S=P.lerp(g,m,c.z);return mK(x,b,T,A,C,S,this.shapeTransform,i)};Zr.DefaultMinBounds=Object.freeze(new h(0,-1,-P.PI));Zr.DefaultMaxBounds=Object.freeze(new h(1,1,+P.PI));var rgt=5,sgt=new Array(rgt),agt=new h,cgt=new $,lgt=new F,ugt=new F,fgt=new F,hK=new F,dgt=new h,hgt=new h,mgt=new h,Gxe=new Array(8);for(let e=0;e<8;e++)Gxe[e]=new h;function zxe(e,t,n){return Math.abs(oe.dot(e,t))<n}function pgt(e){let t=F.getColumn(e,0,dgt),n=F.getColumn(e,1,hgt),i=F.getColumn(e,2,mgt),o=P.EPSILON4;return zxe(t,n,o)&&zxe(n,i,o)}function _gt(e,t){let n=Gxe;h.fromElements(-.5,-.5,-.5,n[0]),h.fromElements(-.5,-.5,.5,n[1]),h.fromElements(-.5,.5,-.5,n[2]),h.fromElements(-.5,.5,.5,n[3]),h.fromElements(.5,-.5,-.5,n[4]),h.fromElements(.5,-.5,.5,n[5]),h.fromElements(.5,.5,-.5,n[6]),h.fromElements(.5,.5,.5,n[7]);for(let i=0;i<8;++i)F.multiplyByPoint(e,n[i],n[i]);return wn.fromPoints(n,t)}function mK(e,t,n,i,o,r,s,a){let c=Zr.DefaultMinBounds,u=Zr.DefaultMaxBounds,f=c.x,d=u.x,p=c.y,g=u.y,m=c.z,x=u.z;if(e===f&&t===d&&n===p&&i===g&&o===m&&r===x)return a.center=F.getTranslation(s,a.center),a.halfAxes=F.getMatrix3(s,a.halfAxes),a;r<o&&(r+=P.TWO_PI);let T=r-o,A=o+T*.5,C=sgt,S=0;C[S++]=o,C[S++]=r,C[S++]=A,T>P.PI&&(C[S++]=A-P.PI_OVER_TWO,C[S++]=A+P.PI_OVER_TWO);let v=1,D=1,O=-1,R=-1;for(let J=0;J<S;++J){let j=C[J]-A,Z=Math.cos(j),Q=Math.sin(j),de=Z*e,ye=Q*e,ae=Z*t,_e=Q*t;v=Math.min(v,de),D=Math.min(D,ye),v=Math.min(v,ae),D=Math.min(D,_e),O=Math.max(O,de),R=Math.max(R,ye),O=Math.max(O,ae),R=Math.max(R,_e)}let M=O-v,L=R-D,_=i-n,E=(v+O)*.5,w=(D+R)*.5,I=(n+i)*.5,N=h.fromElements(E,w,I,agt),B=$.fromRotationZ(A,cgt),H=h.fromElements(M,L,_,Hxe),V=F.fromScale(H,fgt),G=F.fromRotation(B,ugt),k=F.fromTranslation(N,lgt),W=F.multiplyTransformation(G,F.multiplyTransformation(k,V,hK),hK),q=F.multiplyTransformation(s,W,hK);return pgt(q)?wn.fromTransformation(q,a):_gt(q,a)}var x_=Zr;function b_(){this.orientedBoundingBox=new wn,this.boundingSphere=new se,this.boundTransform=new F,this.shapeTransform=new F,this._rectangle=new re,this._minimumHeight=b_.DefaultMinBounds.z,this._maximumHeight=b_.DefaultMaxBounds.z,this._ellipsoid=new ee,this._translation=new h,this._rotation=new $,this.shaderUniforms={ellipsoidRadiiUv:new h,eccentricitySquared:0,evoluteScale:new U,ellipsoidInverseRadiiSquaredUv:new h,ellipsoidRenderLongitudeMinMax:new U,ellipsoidShapeUvLongitudeMinMaxMid:new h,ellipsoidUvToShapeUvLongitude:new U,ellipsoidUvToShapeUvLatitude:new U,ellipsoidRenderLatitudeSinMinMax:new U,ellipsoidInverseHeightDifferenceUv:0,clipMinMaxHeight:new U},this.shaderDefines={ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF:void 0,ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF:void 0,ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LONGITUDE:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX:void 0,ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN:void 0},this.shaderMaximumIntersectionsLength=0}var ggt=new h,ygt=new h,xgt=new h,bgt=new h,Tgt=new h,Agt=new h,Cgt=new h,Egt=new h,Sgt=new $,Wxe=new h,jxe=new h,vgt=new re;b_.prototype.update=function(e,t,n,i,o){let{DefaultMinBounds:r,DefaultMaxBounds:s}=b_;i=y(i,r),o=y(o,s);let a=P.EPSILON10,c=P.EPSILON3,u=P.EPSILON10,f=P.EPSILON10,d=P.EPSILON3,p=F.getScale(e,Egt),g=h.clone(r,ggt);g.z=-h.minimumComponent(p);let m=h.clamp(t,g,s,ygt),x=h.clamp(n,g,s,xgt),b=h.clamp(i,g,s,bgt),T=h.clamp(o,g,s,Tgt),A=h.maximumByComponent(m,b,Agt),C=h.minimumByComponent(x,T,Cgt),S=h.add(p,h.fromElements(x.z,x.z,x.z,Wxe),Wxe),v=h.maximumComponent(S),D=h.add(p,h.fromElements(C.z,C.z,C.z,jxe),jxe);if(A.y>C.y||A.y===s.y||C.y===r.y||A.z>C.z||P.equalsEpsilon(D,h.ZERO,void 0,a))return!1;this._rectangle=re.fromRadians(m.x,m.y,x.x,x.y),this._translation=F.getTranslation(e,this._translation),this._rotation=F.getRotation(e,this._rotation),this._ellipsoid=ee.fromCartesian3(p,this._ellipsoid),this._minimumHeight=m.z,this._maximumHeight=x.z;let O=re.fromRadians(A.x,A.y,C.x,C.y,vgt);this.orientedBoundingBox=pK(O,A.z,C.z,this._ellipsoid,this._translation,this._rotation,this.orientedBoundingBox),this.shapeTransform=F.fromRotationTranslation($.setScale(this._rotation,S,Sgt),this._translation,this.shapeTransform),this.boundTransform=F.fromRotationTranslation(this.orientedBoundingBox.halfAxes,this.orientedBoundingBox.center,this.boundTransform),this.boundingSphere=se.fromOrientedBoundingBox(this.orientedBoundingBox,this.boundingSphere);let R=s.x-r.x,M=.5*R,L=C.x<A.x,_=C.x-A.x+L*R,E=_<=u,w=_>=M-u&&_<R-u,I=_>u&&_<M-u,N=E||w||I,B=x.x<m.x,H=x.x-m.x+B*R,V=H>M+u&&H<R-u,G=H>=M-u&&H<=M+u,k=H<M-u,W=V||G||k,q=C.y<-d,J=C.y>=-d&&C.y<=+d,j=C.y>+d&&C.y<s.y-f,Z=q||J||j,Q=A.y>r.y+f&&A.y<-d,de=A.y>=-d&&A.y<=+d,ye=A.y>+d,ae=Q||de||ye,_e=Z||ae,xe=x.y-m.y,Ie=x.y<-d,Ce=x.y>=-d&&x.y<=+d,ke=x.y>+d&&x.y<s.y-f,He=Ie||Ce||ke,rt=m.y>r.y+f&&m.y<-d,Lt=m.y>=-d&&m.y<=+d,Tt=m.y>+d,Xe=He||(rt||Lt||Tt),{shaderUniforms:Qe,shaderDefines:We}=this;for(let ut in We)We.hasOwnProperty(ut)&&(We[ut]=void 0);Qe.ellipsoidRadiiUv=h.divideByScalar(S,v,Qe.ellipsoidRadiiUv);let{x:Ut,z:Te}=Qe.ellipsoidRadiiUv,Ae=Te/Ut;Qe.eccentricitySquared=1-Ae*Ae,Qe.evoluteScale=U.fromElements((Ut*Ut-Te*Te)/Ut,(Te*Te-Ut*Ut)/Te,Qe.evoluteScale),Qe.ellipsoidInverseRadiiSquaredUv=h.divideComponents(h.ONE,h.multiplyComponents(Qe.ellipsoidRadiiUv,Qe.ellipsoidRadiiUv,Qe.ellipsoidInverseRadiiSquaredUv),Qe.ellipsoidInverseRadiiSquaredUv);let st=0;We.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MAX=st,st+=1,We.ELLIPSOID_INTERSECTION_INDEX_HEIGHT_MIN=st,st+=1,Qe.clipMinMaxHeight=U.fromElements((A.z-x.z)/v,(C.z-x.z)/v,Qe.clipMinMaxHeight);let Fi=(x.z-m.z)/v;if(Qe.ellipsoidInverseHeightDifferenceUv=1/Fi,m.z===x.z&&(Qe.ellipsoidInverseHeightDifferenceUv=0),N&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE=!0,We.ELLIPSOID_INTERSECTION_INDEX_LONGITUDE=st,w?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_UNDER_HALF=!0,st+=1):I?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_OVER_HALF=!0,st+=2):E&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_RANGE_EQUAL_ZERO=!0,st+=2),Qe.ellipsoidRenderLongitudeMinMax=U.fromElements(A.x,C.x,Qe.ellipsoidRenderLongitudeMinMax)),W)if(We.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE=!0,x.x<m.x&&(We.ELLIPSOID_HAS_SHAPE_BOUNDS_LONGITUDE_MIN_MAX_REVERSED=!0),H<=u)Qe.ellipsoidUvToShapeUvLongitude=U.fromElements(0,1,Qe.ellipsoidUvToShapeUvLongitude);else{let _o=R/H,cr=-(m.x-r.x)/H;Qe.ellipsoidUvToShapeUvLongitude=U.fromElements(_o,cr,Qe.ellipsoidUvToShapeUvLongitude)}if(N){let ut=P.equalsEpsilon(A.x,r.x,void 0,c),_o=P.equalsEpsilon(C.x,s.x,void 0,c);ut&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MIN_DISCONTINUITY=!0),_o&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LONGITUDE_MAX_DISCONTINUITY=!0);let cr=(m.x-r.x)/R,mc=(x.x-r.x)/R,Tr=(C.x-r.x)/R,Qr=1-_/R,Be=(Tr+.5*Qr)%1;Qe.ellipsoidShapeUvLongitudeMinMaxMid=h.fromElements(cr,mc,Be,Qe.ellipsoidShapeUvLongitudeMinMaxMid)}if(_e&&(ae&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN=!0,We.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MIN=st,Q?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_UNDER_HALF=!0,st+=1):de?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_EQUAL_HALF=!0,st+=1):ye&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MIN_OVER_HALF=!0,st+=2)),Z&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX=!0,We.ELLIPSOID_INTERSECTION_INDEX_LATITUDE_MAX=st,q?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_UNDER_HALF=!0,st+=2):J?(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_EQUAL_HALF=!0,st+=1):j&&(We.ELLIPSOID_HAS_RENDER_BOUNDS_LATITUDE_MAX_OVER_HALF=!0,st+=1)),Qe.ellipsoidRenderLatitudeSinMinMax=U.fromElements(Math.sin(A.y),Math.sin(C.y),Qe.ellipsoidRenderLatitudeSinMinMax)),Xe)if(We.ELLIPSOID_HAS_SHAPE_BOUNDS_LATITUDE=!0,xe<f)Qe.ellipsoidUvToShapeUvLatitude=U.fromElements(0,1,Qe.ellipsoidUvToShapeUvLatitude);else{let _o=(s.y-r.y)/xe,cr=(r.y-m.y)/xe;Qe.ellipsoidUvToShapeUvLatitude=U.fromElements(_o,cr,Qe.ellipsoidUvToShapeUvLatitude)}return this.shaderMaximumIntersectionsLength=st,!0};var Xxe=new re;b_.prototype.computeOrientedBoundingBoxForTile=function(e,t,n,i,o){let r=1/Math.pow(2,e),s=t*r,a=(t+1)*r,c=n*r,u=(n+1)*r,f=i*r,d=(i+1)*r,p=re.subsection(this._rectangle,s,c,a,u,Xxe),g=P.lerp(this._minimumHeight,this._maximumHeight,f),m=P.lerp(this._minimumHeight,this._maximumHeight,d);return pK(p,g,m,this._ellipsoid,this._translation,this._rotation,o)};var qxe=new h,Yxe=new h,wgt=new h;b_.prototype.computeOrientedBoundingBoxForSample=function(e,t,n,i){let o=1/Math.pow(2,e.level),r=h.divideComponents(h.ONE,t,qxe),s=h.multiplyByScalar(r,o,qxe),a=h.multiplyByScalar(h.fromElements(e.x+n.x,e.y+n.y,e.z+n.z,Yxe),o,Yxe),c=h.add(a,s,wgt),u=re.subsection(this._rectangle,a.x,a.y,c.x,c.y,Xxe),f=P.lerp(this._minimumHeight,this._maximumHeight,a.z),d=P.lerp(this._minimumHeight,this._maximumHeight,c.z);return pK(u,f,d,this._ellipsoid,this._translation,this._rotation,i)};function pK(e,t,n,i,o,r,s){return s=wn.fromRectangle(e,t,n,i,s),s.center=h.add(s.center,o,s.center),s.halfAxes=$.multiply(s.halfAxes,r,s.halfAxes),s}b_.DefaultMinBounds=Object.freeze(new h(-P.PI,-P.PI_OVER_TWO,-ee.WGS84.minimumRadius));b_.DefaultMaxBounds=Object.freeze(new h(P.PI,P.PI_OVER_TWO,10*ee.WGS84.maximumRadius));var ZE=b_;var Ou={BOX:"BOX",ELLIPSOID:"ELLIPSOID",CYLINDER:"CYLINDER"};Ou.getMinBounds=function(e){switch(e){case Ou.BOX:return y_.DefaultMinBounds;case Ou.ELLIPSOID:return ZE.DefaultMinBounds;case Ou.CYLINDER:return x_.DefaultMinBounds}};Ou.getMaxBounds=function(e){switch(e){case Ou.BOX:return y_.DefaultMaxBounds;case Ou.ELLIPSOID:return ZE.DefaultMaxBounds;case Ou.CYLINDER:return x_.DefaultMaxBounds}};Ou.getShapeConstructor=function(e){switch(e){case Ou.BOX:return y_;case Ou.ELLIPSOID:return ZE;case Ou.CYLINDER:return x_}};var Ni=Object.freeze(Ou);function nh(e){this._comparator=e.comparator,this._maximumLength=e.maximumLength,this._array=l(e.maximumLength)?new Array(e.maximumLength):[],this._length=0}Object.defineProperties(nh.prototype,{length:{get:function(){return this._length}},maximumLength:{get:function(){return this._maximumLength},set:function(e){if(l(e)){for(;this._length>e;)this.removeMinimum();this._array.length=e}this._maximumLength=e}},internalArray:{get:function(){return this._array}},comparator:{get:function(){return this._comparator}}});nh.prototype.clone=function(){let e=this._maximumLength,t=this._comparator,n=this._array,i=this._length,o=new nh({comparator:t,maximumLength:e});o._length=i;for(let r=0;r<i;r++)o._array[r]=n[r];return o};nh.prototype.reset=function(){this._length=0;let e=this._maximumLength;if(l(e))for(let t=0;t<e;t++)this._array[t]=void 0;else this._array.length=0};nh.prototype.resort=function(){let e=this._length;for(let t=0;t<e;t++)Kxe(this,t)};nh.prototype.insert=function(e){let t,n=this._maximumLength;if(l(n)){if(n===0)return;if(this._length===n){let o=this._array[0];if(this._comparator(e,o)<=0)return e;t=this.removeMinimum()}}let i=this._length;return this._array[i]=e,this._length++,Kxe(this,i),t};nh.prototype.removeMinimum=function(){let e=this._length;if(e===0)return;this._length--;let t=this._array[0];return e>=2&&(this._array[0]=this._array[e-1],Zxe(this,0)),this._array[e-1]=void 0,t};nh.prototype.removeMaximum=function(){let e=this._length;if(e===0)return;this._length--;let t;if(e<=2)t=this._array[e-1];else{let n=_K(this,1,2)?1:2;t=this._array[n],this._array[n]=this._array[e-1],e>=4&&Zxe(this,n)}return this._array[e-1]=void 0,t};nh.prototype.getMinimum=function(){if(this._length!==0)return this._array[0]};nh.prototype.getMaximum=function(){let e=this._length;if(e!==0)return e<=2?this._array[e-1]:this._array[_K(this,1,2)?1:2]};function J4(e,t,n){let i=e._array,o=i[t];i[t]=i[n],i[n]=o}function tP(e,t,n){return e._comparator(e._array[t],e._array[n])<0}function _K(e,t,n){return e._comparator(e._array[t],e._array[n])>0}function Kxe(e,t){if(t===0)return;let n=Math.floor(P.log2(t+1))%2===0,i=Math.floor((t-1)/2),o=tP(e,t,i);for(o!==n&&(J4(e,t,i),t=i);t>=3;){let r=Math.floor((t-3)/4);if(tP(e,t,r)!==o)break;J4(e,t,r),t=r}}function Zxe(e,t){let n=e._length,i=Math.floor(P.log2(t+1))%2===0,o;for(;(o=2*t+1)<n;){let r=o,s=o+1;if(s<n){tP(e,s,r)===i&&(r=s);let a=2*o+1,c=Math.max(Math.min(n-a,4),0);for(let u=0;u<c;u++){let f=a+u;tP(e,f,r)===i&&(r=f)}}if(tP(e,r,t)===i&&(J4(e,r,t),r!==o&&r!==s)){let a=Math.floor((r-1)/2);_K(e,r,a)===i&&J4(e,r,a)}t=r}}var $E=nh;var $xe=Object.freeze({UNLOADED:0,RECEIVING:1,RECEIVED:2,LOADED:3,FAILED:4,UNAVAILABLE:5});function eH(e,t){this.spatialNode=e,this.keyframe=t,this.state=$xe.UNLOADED,this.metadata=[],this.megatextureIndex=-1,this.priority=-Number.MAX_VALUE,this.highPriorityFrameNumber=-1}eH.priorityComparator=function(e,t){return e.priority-t.priority};eH.searchComparator=function(e,t){return e.keyframe-t.keyframe};eH.LoadState=$xe;var Qi=eH;function $y(e,t,n,i,o){i===Wt.UNSIGNED_SHORT&&(i=Wt.FLOAT32);let r=e.floatingPointTexture;if(i===Wt.FLOAT32&&!r)throw new ce("Floating point texture not supported");let s;i===Wt.FLOAT32||i===Wt.FLOAT64?s=Ze.FLOAT:i===Wt.UINT8&&(s=Ze.UNSIGNED_BYTE);let a;n===1?a=e.webgl2?it.RED:it.LUMINANCE:n===2?a=e.webgl2?it.RG:it.LUMINANCE_ALPHA:n===3?a=it.RGB:n===4&&(a=it.RGBA);let c=512*1024*1024,u=128*1024*1024;o=Math.min(y(o,u),c);let f=zt.maximumTextureSize,d=Wt.getSizeInBytes(i),p=Math.floor(o/(n*d)),g=Math.min(f,P.previousPowerOfTwo(Math.floor(Math.sqrt(p)))),m=Math.ceil(Math.sqrt(t.x)),x=Math.ceil(t.z/m),b=m*t.x,T=x*t.y,A=Math.floor(g/b),C=Math.floor(g/T);if(A===0||C===0)throw new ce("Tileset is too large to fit into megatexture");this.channelCount=n,this.componentType=i,this.voxelCountPerTile=h.clone(t,new h),this.maximumTileCount=A*C,this.regionCountPerMegatexture=new U(A,C),this.voxelCountPerRegion=new U(b,T),this.sliceCountPerRegion=new U(m,x),this.voxelSizeUv=new U(1/g,1/g),this.sliceSizeUv=new U(t.x/g,t.y/g),this.regionSizeUv=new U(b/g,T/g),this.texture=new Ot({context:e,pixelFormat:a,pixelDatatype:s,flipY:!1,width:g,height:g,sampler:new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:di.LINEAR})});let S=Wt.toComponentDatatype(i);this.tileVoxelDataTemp=X.createTypedArray(S,b*T*n),this.nodes=new Array(this.maximumTileCount);for(let v=0;v<this.maximumTileCount;v++)this.nodes[v]=new Dgt(v);for(let v=0;v<this.maximumTileCount;v++){let D=this.nodes[v];D.previousNode=v>0?this.nodes[v-1]:void 0,D.nextNode=v<this.maximumTileCount-1?this.nodes[v+1]:void 0}this.occupiedList=void 0,this.emptyList=this.nodes[0],this.occupiedCount=0}function Dgt(e){this.index=e,this.nextNode=void 0,this.previousNode=void 0}$y.prototype.add=function(e){if(this.isFull())throw new he("Trying to add when there are no empty spots");let t=this.emptyList;this.emptyList=this.emptyList.nextNode,l(this.emptyList)&&(this.emptyList.previousNode=void 0),t.nextNode=this.occupiedList,l(t.nextNode)&&(t.nextNode.previousNode=t),this.occupiedList=t;let n=t.index;return this.writeDataToTexture(n,e),this.occupiedCount++,n};$y.prototype.remove=function(e){if(e<0||e>=this.maximumTileCount)throw new he("Megatexture index out of bounds");let t=this.nodes[e];l(t.previousNode)&&(t.previousNode.nextNode=t.nextNode),l(t.nextNode)&&(t.nextNode.previousNode=t.previousNode),t.nextNode=this.emptyList,l(t.nextNode)&&(t.nextNode.previousNode=t),t.previousNode=void 0,this.emptyList=t,this.occupiedCount--};$y.prototype.isFull=function(){return this.emptyList===void 0};$y.getApproximateTextureMemoryByteLength=function(e,t,n,i){i===Wt.UNSIGNED_SHORT&&(i=Wt.FLOAT32);let o=Wt.getSizeInBytes(i),r=e*t.x*t.y*t.z,s=Math.ceil(Math.sqrt(t.x)),a=Math.ceil(t.z/s),c=s*t.x,u=a*t.y,f=P.previousPowerOfTwo(Math.floor(Math.sqrt(r)));for(;;){let p=Math.floor(f/c),g=Math.floor(f/u);if(p*g>=e)break;f*=2}return f*f*n*o};$y.prototype.writeDataToTexture=function(e,t){let n=t.constructor===Uint16Array?new Float32Array(t):t,i=this.voxelCountPerTile,o=this.sliceCountPerRegion,r=this.voxelCountPerRegion,s=this.channelCount,a=this.tileVoxelDataTemp;for(let x=0;x<i.z;x++){let b=x%o.x*i.x,T=Math.floor(x/o.x)*i.y;for(let A=0;A<i.y;A++)for(let C=0;C<i.x;C++){let S=x*i.y*i.x+A*i.x+C,v=(T+A)*r.x+(b+C);for(let D=0;D<s;D++)a[v*s+D]=n[S*s+D]}}let c=this.regionCountPerMegatexture,u=r.x,f=r.y,d=e%c.x*r.x,p=Math.floor(e/c.x)*r.y,m={source:{arrayBufferView:a,width:u,height:f},xOffset:d,yOffset:p};this.texture.copyFrom(m)};$y.prototype.isDestroyed=function(){return!1};$y.prototype.destroy=function(){return this.texture=this.texture&&this.texture.destroy(),ue(this)};var nP=$y;function jf(e,t,n,i,o,r,s){this.children=void 0,this.parent=o,this.level=e,this.x=t,this.y=n,this.z=i,this.dimensions=h.clone(s),this.keyframeNodes=[],this.renderableKeyframeNodes=[],this.renderableKeyframeNodeLerp=0,this.renderableKeyframeNodePrevious=void 0,this.renderableKeyframeNodeNext=void 0,this.orientedBoundingBox=new wn,this.approximateVoxelSize=0,this.screenSpaceError=0,this.visitedFrameNumber=-1,this.computeBoundingVolumes(r)}var Igt=new h;jf.prototype.computeBoundingVolumes=function(e){this.orientedBoundingBox=e.computeOrientedBoundingBoxForTile(this.level,this.x,this.y,this.z,this.orientedBoundingBox);let t=$.getScale(this.orientedBoundingBox.halfAxes,Igt),n=2*h.maximumComponent(t);this.approximateVoxelSize=n/h.minimumComponent(this.dimensions)};jf.prototype.constructChildNodes=function(e){let{level:t,x:n,y:i,z:o}=this,r=n*2,s=i*2,a=o*2,c=s+1,u=r+1,f=a+1,d=t+1,p=[[d,r,s,a],[d,u,s,a],[d,r,c,a],[d,u,c,a],[d,r,s,f],[d,u,s,f],[d,r,c,f],[d,u,c,f]];this.children=p.map(([g,m,x,b])=>new jf(g,m,x,b,this,e,this.dimensions))};jf.prototype.visibility=function(e,t){let n=this.orientedBoundingBox;return e.cullingVolume.computeVisibilityWithPlaneMask(n,t)};jf.prototype.computeScreenSpaceError=function(e,t){let n=this.orientedBoundingBox,i=Math.sqrt(n.distanceSquaredTo(e));i=Math.max(i,P.EPSILON7);let o=this.approximateVoxelSize,r=t*(o/i);this.screenSpaceError=r};var Qxe={keyframe:0};function iP(e,t){return Qxe.keyframe=e,Po(t,Qxe,Qi.searchComparator)}jf.prototype.computeSurroundingRenderableKeyframeNodes=function(e){let t=this,n=t.level,i=Math.floor(e),o=Math.ceil(e),r,s,a=+Number.MAX_VALUE,c=+Number.MAX_VALUE;for(;l(t);){let{renderableKeyframeNodes:d}=t;if(d.length>=1){let p=Pgt(i,d),g=d[p],m=o===i||i<g.keyframe?p:Math.min(p+1,d.length-1),x=d[m],b=i-g.keyframe,T=Jxe(n-t.level,b);T<a&&(a=T,r=g);let A=x.keyframe-o,C=Jxe(n-t.level,A);if(C<c&&(c=C,s=x),b===0&&A===0)break}t=t.parent}if(this.renderableKeyframeNodePrevious=r,this.renderableKeyframeNodeNext=s,!l(r)||!l(s))return;let u=r.keyframe,f=s.keyframe;this.renderableKeyframeNodeLerp=u===f?0:P.clamp((e-u)/(f-u),0,1)};function Pgt(e,t){let n=iP(e,t);return n<0?P.clamp(~n-1,0,t.length-1):n}function Jxe(e,t){let n=Math.exp(e*4),i=t>=0?1:-200;return e*n+t*i}jf.prototype.isVisited=function(e){return this.visitedFrameNumber===e};jf.prototype.createKeyframeNode=function(e){let t=iP(e,this.keyframeNodes);if(t<0){t=~t;let n=new Qi(this,e);this.keyframeNodes.splice(t,0,n)}};jf.prototype.destroyKeyframeNode=function(e,t){let n=e.keyframe,i=iP(n,this.keyframeNodes);if(i<0)throw new he("Keyframe node does not exist.");if(this.keyframeNodes.splice(i,1),e.megatextureIndex!==-1){for(let r=0;r<t.length;r++)t[r].remove(e.megatextureIndex);let o=iP(n,this.renderableKeyframeNodes);if(o<0)throw new he("Renderable keyframe node does not exist.");this.renderableKeyframeNodes.splice(o,1)}e.spatialNode=void 0,e.state=Qi.LoadState.UNLOADED,e.metadata={},e.megatextureIndex=-1,e.priority=-Number.MAX_VALUE,e.highPriorityFrameNumber=-1};jf.prototype.addKeyframeNodeToMegatextures=function(e,t){if(e.state!==Qi.LoadState.RECEIVED||e.megatextureIndex!==-1||e.metadata.length!==t.length)throw new he("Keyframe node cannot be added to megatexture");for(let o=0;o<t.length;o++){let r=t[o];e.megatextureIndex=r.add(e.metadata[o])}e.state=Qi.LoadState.LOADED;let n=this.renderableKeyframeNodes,i=iP(e.keyframe,n);if(i>=0)throw new he("Keyframe already renderable");i=~i,n.splice(i,0,e)};jf.prototype.isRenderable=function(e){let t=this.renderableKeyframeNodePrevious,n=this.renderableKeyframeNodeNext,i=this.level;return l(t)&&l(n)&&(t.spatialNode.level===i||n.spatialNode.level===i)&&this.visitedFrameNumber===e};var tH=jf;function T_(e,t,n,i,o,r,s){this._primitive=e,this.megatextures=new Array(i.length);for(let m=0;m<i.length;m++){let x=i[m],b=Et.getComponentCount(x),T=o[m];this.megatextures[m]=new nP(t,n,b,T,s)}let a=this.megatextures[0].maximumTileCount;this._simultaneousRequestCount=0,this._debugPrint=!1,this._frameNumber=0;let c=e._shape;this.rootNode=new tH(0,0,0,0,void 0,c,n),this._priorityQueue=new $E({maximumLength:a,comparator:Qi.priorityComparator}),this._highPriorityKeyframeNodes=new Array(a),this._keyframeNodesInMegatexture=new Array(a),this._keyframeCount=r,this._sampleCount=void 0,this._keyframeLocation=0,this._binaryTreeKeyframeWeighting=new Array(r);let u=this._binaryTreeKeyframeWeighting;u[0]=0,u[r-1]=0,gK(u,1,r-2,0);let f=9,d=2048,p=Math.floor(d/f),g=Math.ceil(a/p);this.internalNodeTexture=new Ot({context:t,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,flipY:!1,width:d,height:g,sampler:new Qt({minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST})}),this.internalNodeTilesPerRow=p,this.internalNodeTexelSizeUv=new U(1/d,1/g),this.leafNodeTexture=void 0,this.leafNodeTilesPerRow=void 0,this.leafNodeTexelSizeUv=new U}T_.prototype.findKeyframeNode=function(e){return this._keyframeNodesInMegatexture.find(function(t){return t.megatextureIndex===e})};function gK(e,t,n,i){if(t>n)return;let o=Math.floor((t+n)/2);e[o]=i,gK(e,t,o-1,i+1),gK(e,o+1,n,i+1)}T_.simultaneousRequestCountMaximum=50;T_.prototype.update=function(e,t,n,i){let o=this._primitive,r=e.context,s=this.megatextures[0].maximumTileCount,a=this._keyframeCount,c=o._levelBlendFactor,u=c>0,f=a>1,d=(u?2:1)*(f?2:1);this._sampleCount=d;let p=d>=2;if(p&&!l(this.leafNodeTexture)){let A=Math.floor(512),C=Math.ceil(s/A);this.leafNodeTexture=new Ot({context:r,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,flipY:!1,width:1024,height:C,sampler:new Qt({minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST})}),this.leafNodeTexelSizeUv=U.fromElements(1/1024,1/C,this.leafNodeTexelSizeUv),this.leafNodeTilesPerRow=A}else!p&&l(this.leafNodeTexture)&&(this.leafNodeTexture=this.leafNodeTexture.destroy());if(this._keyframeLocation=P.clamp(t,0,a-1),n&&ebe(this,this.rootNode),i)return;this._frameNumber=e.frameNumber;let g=Ti();Mgt(this,e);let m=Ti();Fgt(this,d,c);let x=Ti();if(this._debugPrint){let b=m-g,T=x-m,A=x-g;Ngt(this,b,T,A)}};T_.prototype.isRenderable=function(e){return e.isRenderable(this._frameNumber)};T_.prototype.isDestroyed=function(){return!1};T_.prototype.destroy=function(){let e=this.megatextures,t=e.length;for(let n=0;n<t;n++)e[n]=e[n]&&e[n].destroy();return this.internalNodeTexture=this.internalNodeTexture&&this.internalNodeTexture.destroy(),this.leafNodeTexture=this.leafNodeTexture&&this.leafNodeTexture.destroy(),ue(this)};function ebe(e,t){if(t.computeBoundingVolumes(e._primitive._shape),l(t.children))for(let n=0;n<8;n++){let i=t.children[n];ebe(e,i)}}function Rgt(e,t){if(e._simultaneousRequestCount>=T_.simultaneousRequestCountMaximum)return;let n=e._primitive._provider;function i(c){e._simultaneousRequestCount--;let u=n.types.length;if(!l(c))t.state=Qi.LoadState.UNAVAILABLE;else if(c===Qi.LoadState.FAILED)t.state=Qi.LoadState.FAILED;else if(!Array.isArray(c)||c.length!==u)t.state=Qi.LoadState.FAILED;else{let f=e.megatextures;for(let d=0;d<u;d++){let{voxelCountPerTile:p,channelCount:g}=f[d],{x:m,y:x,z:b}=p,T=m*x*b,A=c[d],C=T*g;if(A.length===C)t.metadata[d]=A,t.state=Qi.LoadState.RECEIVED;else{t.state=Qi.LoadState.FAILED;break}}}}function o(){e._simultaneousRequestCount--,t.state=Qi.LoadState.FAILED}let{keyframe:r,spatialNode:s}=t,a=n.requestData({tileLevel:s.level,tileX:s.x,tileY:s.y,tileZ:s.z,keyframe:r});l(a)?(e._simultaneousRequestCount++,t.state=Qi.LoadState.RECEIVING,a.then(i).catch(o)):t.state=Qi.LoadState.FAILED}function Ogt(e){return e/(1+e)}function Mgt(e,t){let n=e._frameNumber,i=e._primitive,o=i._shape,r=i.screenSpaceError,s=e._priorityQueue,a=e._keyframeCount,c=P.clamp(Math.floor(e._keyframeLocation),0,a-2),u=c+1,{camera:f,context:d,pixelRatio:p}=t,{positionWC:g,frustum:m}=f,b=d.drawingBufferHeight/p/m.sseDenominator;function T(L,_){if(L.computeScreenSpaceError(g,b),_=L.visibility(t,_),_===ys.MASK_OUTSIDE)return;if(L.visitedFrameNumber=n,a===1)L.createKeyframeNode(0);else if(L.keyframeNodes.length!==a)for(let B=0;B<a;B++)L.createKeyframeNode(B);let{screenSpaceError:E,keyframeNodes:w}=L,I=Ogt(E),N=!1;for(let B=0;B<w.length;B++){let H=w[B];H.priority=10*I+Lgt(c,H.keyframe,u,e),H.state!==Qi.LoadState.UNAVAILABLE&&H.state!==Qi.LoadState.FAILED&&H.priority!==-Number.MAX_VALUE&&s.insert(H),H.state===Qi.LoadState.LOADED&&(N=!0)}if(E<r||!N){L.children=void 0;return}l(L.children)||L.constructChildNodes(o);for(let B=0;B<8;B++){let H=L.children[B];T(H,_)}}s.reset(),T(e.rootNode,ys.MASK_INDETERMINATE);let A=e._highPriorityKeyframeNodes,C=0,S;for(;s.length>0;)S=s.removeMaximum(),S.highPriorityFrameNumber=n,A[C]=S,C++;let v=e._keyframeNodesInMegatexture,D=e.megatextures[0],O=D.occupiedCount;v.length=O,v.sort(function(L,_){return L.highPriorityFrameNumber===_.highPriorityFrameNumber?_.priority-L.priority:_.highPriorityFrameNumber-L.highPriorityFrameNumber});let R=0,M=0;for(let L=0;L<C;L++)if(S=A[L],!(S.state===Qi.LoadState.LOADED||S.spatialNode===void 0)&&(S.state===Qi.LoadState.UNLOADED&&Rgt(e,S),S.state===Qi.LoadState.RECEIVED)){let _=0;if(D.isFull()){_=O-1-R,R++;let E=v[_];E.spatialNode.destroyKeyframeNode(E,e.megatextures)}else _=O+M,M++;S.spatialNode.addKeyframeNodeToMegatextures(S,e.megatextures),v[_]=S}}function Lgt(e,t,n,i){let o=Math.min(Math.abs(t-e),Math.abs(t-n)),r=Math.max(e,i._keyframeCount-n-1,1),s=Math.pow(1-o/r,4),a=Math.exp(-i._binaryTreeKeyframeWeighting[t]);return P.lerp(a,s,.15+.85*s)}function Ngt(e,t,n,i){let o=e._keyframeCount,r=e.rootNode,s=Object.keys(Qi.LoadState).length,a=new Array(s),c=new Array(s),u=0;for(let T=0;T<s;T++){let A=new Array(o);a[T]=A;for(let C=0;C<o;C++)A[C]=0;c[T]=0}function f(T){let A=T.keyframeNodes;for(let C=0;C<A.length;C++){let S=A[C],v=S.keyframe,D=S.state;a[D][v]+=1,c[D]+=1,u++}if(l(T.children))for(let C=0;C<8;C++){let S=T.children[C];f(S)}}f(r);let d=`KEYFRAMES: ${a[Qi.LoadState.LOADED]}`,p=`UNLOADED: ${c[Qi.LoadState.UNLOADED]} | RECEIVING: ${c[Qi.LoadState.RECEIVING]} | RECEIVED: ${c[Qi.LoadState.RECEIVED]} | LOADED: ${c[Qi.LoadState.LOADED]} | FAILED: ${c[Qi.LoadState.FAILED]} | UNAVAILABLE: ${c[Qi.LoadState.UNAVAILABLE]} | TOTAL: ${u}`,g=Math.round(t*100)/100,m=Math.round(n*100)/100,x=Math.round(i*100)/100,b=`LOAD: ${g} | OCT: ${m} | ALL: ${x}`;console.log(`${d} || ${p} || ${b}`)}var nH={INTERNAL:0,LEAF:1,PACKED_LEAF_FROM_PARENT:2};function Fgt(e,t,n){let i=e._primitive._screenSpaceError,o=e._keyframeLocation,r=e._frameNumber,s=t>=2,a=0,c=0,u=[],f=[];function d(g,m,x,b,T){let A=!1;if(l(g.children))for(let C=0;C<8;C++){let S=g.children[C];S.computeSurroundingRenderableKeyframeNodes(o),S.isRenderable(r)&&(A=!0)}if(A){u[T]=nH.INTERNAL<<16|m,u[x]=b,a++,b=m,T=b*9+1;for(let C=0;C<8;C++){let S=g.children[C];m=a,x=m*9+0,d(S,m,x,b,T+C)}}else{if(s){let C=c*5,S=g.renderableKeyframeNodePrevious,v=g.level-S.spatialNode.level,D=S.spatialNode.parent,O=l(D)?D.renderableKeyframeNodePrevious:S,R=Bgt(g,i,n),M=v,L=1,_=S.megatextureIndex,E=O.megatextureIndex;f[C+0]=R,f[C+1]=M,f[C+2]=L,f[C+3]=_,f[C+4]=E,u[T]=nH.LEAF<<16|c}else{let C=g.renderableKeyframeNodePrevious,v=g.level-C.spatialNode.level===0?nH.LEAF:nH.PACKED_LEAF_FROM_PARENT;u[T]=v<<16|C.megatextureIndex}c++}}let p=e.rootNode;p.computeSurroundingRenderableKeyframeNodes(o),p.isRenderable(r)&&d(p,0,0,0,0),kgt(u,9,e.internalNodeTilesPerRow,e.internalNodeTexture),s&&Vgt(f,2,e.leafNodeTilesPerRow,e.leafNodeTexture)}function Bgt(e,t,n){if(e.parent===void 0)return 0;let i=e.screenSpaceError,o=e.parent.screenSpaceError,s=((t-i)/(o-i)+n-1)/n;return P.clamp(s,0,1)}function kgt(e,t,n,i){let o=it.componentsLength(i.pixelFormat),r=Math.ceil(e.length/t),s=Math.max(1,t*Math.min(r,n)),a=Math.max(1,Math.ceil(r/n)),c=new Uint8Array(s*a*o);for(let d=0;d<e.length;d++){let p=e[d],g=d*o;for(let m=0;m<o;m++)c[g+m]=p>>>m*8&255}let f={source:{arrayBufferView:c,width:s,height:a},xOffset:0,yOffset:0};i.copyFrom(f)}function Vgt(e,t,n,i){let o=it.componentsLength(i.pixelFormat),r=5,s=Math.ceil(e.length/r),a=Math.max(1,t*Math.min(s,n)),c=Math.max(1,Math.ceil(s/n)),u=new Uint8Array(a*c*o);for(let p=0;p<s;p++){let g=e[p*r+0],m=e[p*r+1],x=e[p*r+2],b=e[p*r+3],T=e[p*r+4],A=P.clamp(Math.floor(65536*g),0,65535);u[p*8+0]=A>>>0&255,u[p*8+1]=A>>>8&255,u[p*8+2]=m&255,u[p*8+3]=x&255,u[p*8+4]=b>>>0&255,u[p*8+5]=b>>>8&255,u[p*8+6]=T>>>0&255,u[p*8+7]=T>>>8&255}let d={source:{arrayBufferView:u,width:a,height:c},xOffset:0,yOffset:0};i.copyFrom(d)}T_.getApproximateTextureMemoryByteLength=function(e,t,n,i){let o=0,r=n.length;for(let s=0;s<r;s++){let a=n[s],c=i[s],u=Et.getComponentCount(a);o+=nP.getApproximateTextureMemoryByteLength(e,t,u,c)}return o};var oP=T_;var Ugt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",INT:"int",INT_VEC2:"ivec2",INT_VEC3:"ivec3",INT_VEC4:"ivec4",BOOL:"bool",BOOL_VEC2:"bvec2",BOOL_VEC3:"bvec3",BOOL_VEC4:"bvec4",MAT2:"mat2",MAT3:"mat3",MAT4:"mat4",SAMPLER_2D:"sampler2D",SAMPLER_CUBE:"samplerCube"},rP=Object.freeze(Ugt);function zgt(e,t,n){let i=new Uint8ClampedArray(e.buffer),o=new ImageData(i,t,n),r=document.createElement("canvas");return r.width=t,r.height=n,r.getContext("2d").putImageData(o,0,0),r}var iH=zgt;function QE(){this._defaultTexture=void 0,this._textures={},this._loadedImages=[],this._lastUpdatedFrame=-1}QE.prototype.getTexture=function(e){return this._textures[e]};function Hgt(e,t,n){n.resource.fetchImage().then(function(i){e._loadedImages.push({id:t,image:i,textureUniform:n})}).catch(function(){let i=e._textures[t];l(i)&&i!==e._defaultTexture&&i.destroy(),e._textures[t]=e._defaultTexture})}QE.prototype.loadTexture2D=function(e,t){l(t.typedArray)?this._loadedImages.push({id:e,textureUniform:t}):Hgt(this,e,t)};function Ggt(e,t,n){let{id:i,textureUniform:o,image:r}=t,s=n.webgl2?oH(o,r,n):Wgt(o,r,n),a=e._textures[i];l(a)&&a!==n.defaultTexture&&a.destroy(),e._textures[i]=s}function oH(e,t,n){let{typedArray:i,sampler:o}=e,r=l(i)?nbe(e,n):new Ot({context:n,source:t,sampler:o});return tbe(o)&&r.generateMipmap(),r}function Wgt(e,t,n){let{typedArray:i,sampler:o}=e,r=tbe(o),s=o.wrapS===En.REPEAT||o.wrapS===En.MIRRORED_REPEAT||o.wrapT===En.REPEAT||o.wrapT===En.MIRRORED_REPEAT,{width:a,height:c}=l(i)?e:t,u=[a,c].every(P.isPowerOfTwo);if((r||s)&&!u)if(l(i)){if(e.pixelDatatype===Ze.UNSIGNED_BYTE){let d=iH(i,a,c),p=tx(d);return oH({sampler:o},p,n)}}else{let d=tx(t);return oH(e,d,n)}else return oH(e,t,n);return r?console.warn("Texture requires resizing for mipmaps but pixelDataType cannot be resized. The texture may be rendered incorrectly."):s&&console.warn("Texture requires resizing for wrapping but pixelDataType cannot be resized. The texture may be rendered incorrectly."),nbe(e,n)}function tbe(e){return[$t.NEAREST_MIPMAP_NEAREST,$t.NEAREST_MIPMAP_LINEAR,$t.LINEAR_MIPMAP_NEAREST,$t.LINEAR_MIPMAP_LINEAR].includes(e.minificationFilter)}function nbe(e,t){let{pixelFormat:n,pixelDatatype:i,width:o,height:r,typedArray:s,sampler:a}=e;return new Ot({context:t,pixelFormat:n,pixelDatatype:i,source:{arrayBufferView:s,width:o,height:r},sampler:a,flipY:!1})}QE.prototype.update=function(e){if(e.frameNumber===this._lastUpdatedFrame)return;this._lastUpdatedFrame=e.frameNumber;let t=e.context;this._defaultTexture=t.defaultTexture;let n=this._loadedImages;for(let i=0;i<n.length;i++){let o=n[i];Ggt(this,o,t)}n.length=0};QE.prototype.isDestroyed=function(){return!1};QE.prototype.destroy=function(){let e=this._textures;for(let t in e)if(e.hasOwnProperty(t)){let n=e[t];n!==this._defaultTexture&&n.destroy()}return ue(this)};var rH=QE;function sP(e){e=y(e,y.EMPTY_OBJECT),this.mode=y(e.mode,Og.MODIFY_MATERIAL),this.lightingModel=e.lightingModel,this.uniforms=y(e.uniforms,y.EMPTY_OBJECT),this.varyings=y(e.varyings,y.EMPTY_OBJECT),this.vertexShaderText=e.vertexShaderText,this.fragmentShaderText=e.fragmentShaderText,this.translucencyMode=y(e.translucencyMode,mx.INHERIT),this._textureManager=new rH,this._defaultTexture=void 0,this.uniformMap=jgt(this),this.usedVariablesVertex={attributeSet:{},featureIdSet:{},metadataSet:{}},this.usedVariablesFragment={attributeSet:{},featureIdSet:{},metadataSet:{},materialSet:{}},Xgt(this),Kgt(this)}function jgt(e){let t=e.uniforms,n={};for(let i in t)if(t.hasOwnProperty(i)){let o=t[i];o.type===rP.SAMPLER_2D?(e._textureManager.loadTexture2D(i,o.value),n[i]=qgt(e,i)):n[i]=Ygt(e,i)}return n}function qgt(e,t){return function(){return y(e._textureManager.getTexture(t),e._defaultTexture)}}function Ygt(e,t){return function(){return e.uniforms[t].value}}function Cb(e,t,n){let i;for(;(i=t.exec(e))!==null;){let o=i[1];n[o]=!0}}function Xgt(e){let t=/[vf]sInput\.attributes\.(\w+)/g,n=/[vf]sInput\.featureIds\.(\w+)/g,i=/[vf]sInput\.metadata.(\w+)/g,o,r=e.vertexShaderText;l(r)&&(o=e.usedVariablesVertex.attributeSet,Cb(r,t,o),o=e.usedVariablesVertex.featureIdSet,Cb(r,n,o),o=e.usedVariablesVertex.metadataSet,Cb(r,i,o));let s=e.fragmentShaderText;if(l(s)){o=e.usedVariablesFragment.attributeSet,Cb(s,t,o),o=e.usedVariablesFragment.featureIdSet,Cb(s,n,o),o=e.usedVariablesFragment.metadataSet,Cb(s,i,o);let a=/material\.(\w+)/g,c=e.usedVariablesFragment.materialSet;Cb(s,a,c)}}function ibe(e){let t=/^.*MC$/,n=/^.*WC$/,i=/^.*EC$/;return t.test(e)?`${e} (model coordinates)`:n.test(e)?`${e} (Cartesian world coordinates)`:i.test(e)?`${e} (eye coordinates)`:e}function fc(e,t,n,i){if(e.hasOwnProperty(t)){let o=`${ibe(t)} is not available in the ${i} shader. Did you mean ${ibe(n)} instead?`;throw new he(o)}}function Kgt(e){let t=e.usedVariablesVertex.attributeSet;fc(t,"position","positionMC","vertex"),fc(t,"normal","normalMC","vertex"),fc(t,"tangent","tangentMC","vertex"),fc(t,"bitangent","bitangentMC","vertex"),fc(t,"positionWC","positionMC","vertex"),fc(t,"positionEC","positionMC","vertex"),fc(t,"normalEC","normalMC","vertex"),fc(t,"tangentEC","tangentMC","vertex"),fc(t,"bitangentEC","bitangentMC","vertex");let n=e.usedVariablesFragment.attributeSet;fc(n,"position","positionEC","fragment"),fc(n,"normal","normalEC","fragment"),fc(n,"tangent","tangentEC","fragment"),fc(n,"bitangent","bitangentEC","fragment"),fc(n,"normalMC","normalEC","fragment"),fc(n,"tangentMC","tangentEC","fragment"),fc(n,"bitangentMC","bitangentEC","fragment")}sP.prototype.setUniform=function(e,t){let n=this.uniforms[e];n.type===rP.SAMPLER_2D?this._textureManager.loadTexture2D(e,t):l(t.clone)?n.value=t.clone(n.value):n.value=t};sP.prototype.update=function(e){this._defaultTexture=e.context.defaultTexture,this._textureManager.update(e)};sP.prototype.isDestroyed=function(){return!1};sP.prototype.destroy=function(){this._textureManager=this._textureManager&&this._textureManager.destroy(),ue(this)};var JE=sP;function Mm(e){e=y(e,y.EMPTY_OBJECT),this._ready=!1,this._provider=y(e.provider,Mm.DefaultProvider),this._traversal=void 0,this._shape=void 0,this._shapeVisible=!1,this._paddingBefore=new h,this._paddingAfter=new h,this._minBounds=new h,this._minBoundsOld=new h,this._maxBounds=new h,this._maxBoundsOld=new h,this._exaggeratedMinBounds=new h,this._exaggeratedMinBoundsOld=new h,this._exaggeratedMaxBounds=new h,this._exaggeratedMaxBoundsOld=new h,this._minClippingBounds=new h,this._minClippingBoundsOld=new h,this._maxClippingBounds=new h,this._maxClippingBoundsOld=new h,this._clippingPlanes=void 0,this._clippingPlanesState=0,this._clippingPlanesEnabled=!1,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._exaggeratedModelMatrix=F.clone(this._modelMatrix),this._compoundModelMatrix=new F,this._compoundModelMatrixOld=new F,this._customShader=y(e.customShader,Mm.DefaultCustomShader),this._customShaderCompilationEvent=new me,this._shaderDirty=!0,this._drawCommand=void 0,this._drawCommandPick=void 0,this._pickId=void 0,this._clock=e.clock,this._transformPositionWorldToUv=new F,this._transformPositionUvToWorld=new F,this._transformDirectionWorldToLocal=new $,this._transformNormalLocalToWorld=new $,this._nearestSampling=!1,this._levelBlendFactor=0,this._stepSizeMultiplier=1,this._depthTest=!0,this._useLogDepth=void 0,this._screenSpaceError=4,this._debugPolylines=new Zh,this._debugDraw=!1,this._disableRender=!1,this._disableUpdate=!1,this._uniforms={octreeInternalNodeTexture:void 0,octreeInternalNodeTilesPerRow:0,octreeInternalNodeTexelSizeUv:new U,octreeLeafNodeTexture:void 0,octreeLeafNodeTilesPerRow:0,octreeLeafNodeTexelSizeUv:new U,megatextureTextures:[],megatextureSliceDimensions:new U,megatextureTileDimensions:new U,megatextureVoxelSizeUv:new U,megatextureSliceSizeUv:new U,megatextureTileSizeUv:new U,dimensions:new h,paddingBefore:new h,paddingAfter:new h,transformPositionViewToUv:new F,transformPositionUvToView:new F,transformDirectionViewToLocal:new $,transformNormalLocalToWorld:new $,cameraPositionUv:new h,ndcSpaceAxisAlignedBoundingBox:new oe,clippingPlanesTexture:void 0,clippingPlanesMatrix:new F,stepSize:0,pickColor:new z},this._shapeDefinesOld={},this._uniformMap={};let t=this._uniforms,n=this._uniformMap;for(let o in t)if(t.hasOwnProperty(o)){let r=`u_${o}`;n[r]=function(){return t[o]}}let i=this._provider;Zgt(this,i)}function Zgt(e,t){let{shape:n,minBounds:i=Ni.getMinBounds(n),maxBounds:o=Ni.getMaxBounds(n)}=t;e.minBounds=i,e.maxBounds=o,e.minClippingBounds=Ni.getMinBounds(n),e.maxClippingBounds=Ni.getMaxBounds(n),e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e._exaggeratedModelMatrix=F.clone(e._modelMatrix,e._exaggeratedModelMatrix),rbe(e,t);let r=Ni.getShapeConstructor(n);e._shape=new r,e._shapeVisible=sbe(e,e._shape,t)}Object.defineProperties(Mm.prototype,{ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}},boundingSphere:{get:function(){return this._shape.boundingSphere}},orientedBoundingBox:{get:function(){return this._shape.orientedBoundingBox}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._modelMatrix=F.clone(e,this._modelMatrix)}},shape:{get:function(){return this._provider.shape}},dimensions:{get:function(){return this._provider.dimensions}},minimumValues:{get:function(){return this._provider.minimumValues}},maximumValues:{get:function(){return this._provider.maximumValues}},show:{get:function(){return!this._disableRender},set:function(e){this._disableRender=!e}},disableUpdate:{get:function(){return this._disableUpdate},set:function(e){this._disableUpdate=e}},debugDraw:{get:function(){return this._debugDraw},set:function(e){this._debugDraw=e}},depthTest:{get:function(){return this._depthTest},set:function(e){this._depthTest!==e&&(this._depthTest=e,this._shaderDirty=!0)}},nearestSampling:{get:function(){return this._nearestSampling},set:function(e){this._nearestSampling!==e&&(this._nearestSampling=e,this._shaderDirty=!0)}},levelBlendFactor:{get:function(){return this._levelBlendFactor},set:function(e){this._levelBlendFactor=P.clamp(e,0,1)}},screenSpaceError:{get:function(){return this._screenSpaceError},set:function(e){this._screenSpaceError=e}},stepSize:{get:function(){return this._stepSizeMultiplier},set:function(e){this._stepSizeMultiplier=e}},minBounds:{get:function(){return this._minBounds},set:function(e){this._minBounds=h.clone(e,this._minBounds)}},maxBounds:{get:function(){return this._maxBounds},set:function(e){this._maxBounds=h.clone(e,this._maxBounds)}},minClippingBounds:{get:function(){return this._minClippingBounds},set:function(e){this._minClippingBounds=h.clone(e,this._minClippingBounds)}},maxClippingBounds:{get:function(){return this._maxClippingBounds},set:function(e){this._maxClippingBounds=h.clone(e,this._maxClippingBounds)}},clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){bs.setOwner(e,this,"_clippingPlanes")}},customShader:{get:function(){return this._customShader},set:function(e){if(this._customShader!==e){let t=this._uniformMap,i=this._customShader.uniformMap;for(let o in i)i.hasOwnProperty(o)&&delete t[o];l(e)?this._customShader=e:this._customShader=Mm.DefaultCustomShader,this._shaderDirty=!0}}},customShaderCompilationEvent:{get:function(){return this._customShaderCompilationEvent}}});var $gt=new h,Qgt=new oe,Jgt=new oe,eyt=new h,tyt=new h,nyt=new $,iyt=new $,oyt=new F,ryt=new F,syt=new F,ayt=F.fromRotationTranslation($.fromUniformScale(.5,new $),new h(.5,.5,.5),new F),cyt=F.fromRotationTranslation($.fromUniformScale(2,new $),new h(-1,-1,-1),new F);Mm.prototype.update=function(e){let t=this._provider;this._customShader.update(e);let n=e.context;if(!this._ready){myt(this,t,n),e.afterRender.push(()=>(this._ready=!0,!0));return}dyt(this,e);let i=rbe(this,t),o=this._shape;if(i&&(this._shapeVisible=sbe(this,o,t),gyt(this,o)&&(this._shaderDirty=!0)),!this._shapeVisible)return;let r=yyt(t.timeIntervalCollection,this._clock),s=this._traversal,a=s._sampleCount;if(s.update(e,r,i,this._disableUpdate),a!==s._sampleCount&&(this._shaderDirty=!0),!s.isRenderable(s.rootNode)||(this._debugDraw&&vyt(this,e),this._disableRender))return;this._useLogDepth!==e.useLogDepth&&(this._useLogDepth=e.useLogDepth,this._shaderDirty=!0),xyt(this,e)&&(this._shaderDirty=!0);let u=s.leafNodeTexture,f=this._uniforms;l(u)&&(f.octreeLeafNodeTexture=s.leafNodeTexture,f.octreeLeafNodeTexelSizeUv=U.clone(s.leafNodeTexelSizeUv,f.octreeLeafNodeTexelSizeUv),f.octreeLeafNodeTilesPerRow=s.leafNodeTilesPerRow),this._shaderDirty&&($4(this,n),this._shaderDirty=!1);let d=n.uniformState.viewProjection,p=o.orientedBoundingBox,g=Ayt(p,d,Jgt);if(g.x===1||g.y===1||g.z===-1||g.w===-1)return;f.ndcSpaceAxisAlignedBoundingBox=oe.clone(g,f.ndcSpaceAxisAlignedBoundingBox);let x=n.uniformState.inverseView;f.transformPositionViewToUv=F.multiplyTransformation(this._transformPositionWorldToUv,x,f.transformPositionViewToUv);let b=n.uniformState.view;f.transformPositionUvToView=F.multiplyTransformation(b,this._transformPositionUvToWorld,f.transformPositionUvToView);let T=n.uniformState.inverseViewRotation;f.transformDirectionViewToLocal=$.multiply(this._transformDirectionWorldToLocal,T,f.transformDirectionViewToLocal),f.transformNormalLocalToWorld=$.clone(this._transformNormalLocalToWorld,f.transformNormalLocalToWorld);let A=e.camera.positionWC;f.cameraPositionUv=F.multiplyByPoint(this._transformPositionWorldToUv,A,f.cameraPositionUv),f.stepSize=this._stepSizeMultiplier;let C=e.passes.pick?this._drawCommandPick:e.passes.pickVoxel?this._drawCommandPickVoxel:this._drawCommand;C.boundingVolume=o.boundingSphere,e.commandList.push(C)};var lyt=new h,yK=new h,uyt=new fe,fyt=new h;function dyt(e,t){if(e._exaggeratedMinBounds=h.clone(e._minBounds,e._exaggeratedMinBounds),e._exaggeratedMaxBounds=h.clone(e._maxBounds,e._exaggeratedMaxBounds),e.shape===Ni.ELLIPSOID){let n=t.verticalExaggerationRelativeHeight,i=t.verticalExaggeration;e._exaggeratedMinBounds.z=(e._minBounds.z-n)*i+n,e._exaggeratedMaxBounds.z=(e._maxBounds.z-n)*i+n}else if(e.shape===Ni.BOX){let n=h.fromElements(1,1,t.verticalExaggeration,lyt);e._exaggeratedModelMatrix=F.multiplyByScale(e._modelMatrix,n,e._exaggeratedModelMatrix),e._exaggeratedModelMatrix=F.multiplyByTranslation(e._exaggeratedModelMatrix,hyt(e,t),e._exaggeratedModelMatrix)}}function hyt(e,t){let{shapeTransform:n=F.IDENTITY,globalTransform:i=F.IDENTITY}=e._provider,o=F.getTranslation(n,yK),r=F.multiplyByPoint(e._modelMatrix,o,yK),s=F.multiplyByPoint(i,r,yK),c=ee.WGS84.cartesianToCartographic(s,uyt),u=0;l(c)&&(u=c.height);let f=Ir.getHeight(u,t.verticalExaggeration,t.verticalExaggerationRelativeHeight);return h.fromElements(0,0,(f-u)/t.verticalExaggeration,fyt)}function myt(e,t,n){let i=e._uniforms;e._pickId=n.createPickId({primitive:e}),i.pickColor=z.clone(e._pickId.color,i.pickColor);let{shaderDefines:o,shaderUniforms:r}=e._shape;e._shapeDefinesOld=Ge(o,!0);let s=e._uniformMap;for(let a in r)if(r.hasOwnProperty(a)){let c=`u_${a}`;s[c]=function(){return r[a]}}i.dimensions=h.clone(t.dimensions,i.dimensions),e._paddingBefore=h.clone(y(t.paddingBefore,h.ZERO),e._paddingBefore),i.paddingBefore=h.clone(e._paddingBefore,i.paddingBefore),e._paddingAfter=h.clone(y(t.paddingAfter,h.ZERO),e._paddingBefore),i.paddingAfter=h.clone(e._paddingAfter,i.paddingAfter),e._traversal=pyt(e,t,n),_yt(e._traversal,i)}function rbe(e,t){let n=y(t.shapeTransform,F.IDENTITY),i=y(t.globalTransform,F.IDENTITY);return F.multiplyTransformation(i,e._exaggeratedModelMatrix,e._compoundModelMatrix),F.multiplyTransformation(e._compoundModelMatrix,n,e._compoundModelMatrix),Eb(e,"_compoundModelMatrix","_compoundModelMatrixOld")+Eb(e,"_minBounds","_minBoundsOld")+Eb(e,"_maxBounds","_maxBoundsOld")+Eb(e,"_exaggeratedMinBounds","_exaggeratedMinBoundsOld")+Eb(e,"_exaggeratedMaxBounds","_exaggeratedMaxBoundsOld")+Eb(e,"_minClippingBounds","_minClippingBoundsOld")+Eb(e,"_maxClippingBounds","_maxClippingBoundsOld")>0}function Eb(e,t,n){let i=e[t],o=e[n],r=!i.equals(o);return r&&i.clone(o),r?1:0}function sbe(e,t,n){if(!t.update(e._compoundModelMatrix,e._exaggeratedMinBounds,e._exaggeratedMaxBounds,e.minClippingBounds,e.maxClippingBounds))return!1;let o=t.shapeTransform,r=F.inverse(o,oyt),s=F.getRotation(o,nyt),a=F.getScale(o,eyt),c=h.maximumComponent(a),u=h.divideByScalar(a,c,tyt),f=$.multiplyByScale(s,u,iyt);return e._transformPositionWorldToUv=F.multiplyTransformation(ayt,r,e._transformPositionWorldToUv),e._transformPositionUvToWorld=F.multiplyTransformation(o,cyt,e._transformPositionUvToWorld),e._transformDirectionWorldToLocal=F.getMatrix3(r,e._transformDirectionWorldToLocal),e._transformNormalLocalToWorld=$.inverseTranspose(f,e._transformNormalLocalToWorld),!0}function pyt(e,t,n){let i=h.clone(t.dimensions,$gt);h.add(i,e._paddingBefore,i),h.add(i,e._paddingAfter,i);let o=t.maximumTileCount,r=l(o)?oP.getApproximateTextureMemoryByteLength(o,i,t.types,t.componentTypes):void 0,s=y(t.keyframeCount,1);return new oP(e,n,i,t.types,t.componentTypes,s,r)}function _yt(e,t){t.octreeInternalNodeTexture=e.internalNodeTexture,t.octreeInternalNodeTexelSizeUv=U.clone(e.internalNodeTexelSizeUv,t.octreeInternalNodeTexelSizeUv),t.octreeInternalNodeTilesPerRow=e.internalNodeTilesPerRow;let n=e.megatextures,i=n[0],o=n.length;t.megatextureTextures=new Array(o);for(let r=0;r<o;r++)t.megatextureTextures[r]=n[r].texture;t.megatextureSliceDimensions=U.clone(i.sliceCountPerRegion,t.megatextureSliceDimensions),t.megatextureTileDimensions=U.clone(i.regionCountPerMegatexture,t.megatextureTileDimensions),t.megatextureVoxelSizeUv=U.clone(i.voxelSizeUv,t.megatextureVoxelSizeUv),t.megatextureSliceSizeUv=U.clone(i.sliceSizeUv,t.megatextureSliceSizeUv),t.megatextureTileSizeUv=U.clone(i.regionSizeUv,t.megatextureTileSizeUv)}function gyt(e,t){let n=t.shaderDefines,i=Object.keys(n).some(o=>n[o]!==e._shapeDefinesOld[o]);return i&&(e._shapeDefinesOld=Ge(n,!0)),i}function yyt(e,t){if(!l(e)||!l(t))return 0;let n=t.currentTime,i,o=e.indexOf(n);o>=0?i=e.get(o):(o=~o,o===e.length?(o=e.length-1,i=e.get(o),n=i.stop):(i=e.get(o),n=i.start));let r=K.secondsDifference(i.stop,i.start),a=K.secondsDifference(n,i.start)/r;return o+a}function xyt(e,t){let n=e.clippingPlanes;if(!l(n))return!1;n.update(t);let{clippingPlanesState:i,enabled:o}=n;if(o){let r=e._uniforms;r.clippingPlanesTexture=n.texture,r.clippingPlanesMatrix=F.transpose(F.multiplyTransformation(F.inverse(n.modelMatrix,r.clippingPlanesMatrix),e._transformPositionUvToWorld,r.clippingPlanesMatrix),r.clippingPlanesMatrix)}return e._clippingPlanesState===i&&e._clippingPlanesEnabled===o?!1:(e._clippingPlanesState=i,e._clippingPlanesEnabled=o,!0)}Mm.prototype.isDestroyed=function(){return!1};Mm.prototype.destroy=function(){let e=this._drawCommand;l(e)&&(e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy());let t=this._drawCommandPick;return l(t)&&(t.shaderProgram=t.shaderProgram&&t.shaderProgram.destroy()),this._pickId=this._pickId&&this._pickId.destroy(),this._traversal=this._traversal&&this._traversal.destroy(),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),ue(this)};var obe=new Array(new oe(-1,-1,-1,1),new oe(1,-1,-1,1),new oe(-1,1,-1,1),new oe(1,1,-1,1),new oe(-1,-1,1,1),new oe(1,-1,1,1),new oe(-1,1,1,1),new oe(1,1,1,1)),byt=new Array(1,2,4,0,3,5,0,3,6,1,2,7,0,5,6,1,4,7,2,4,7,3,5,6),Tyt=new Array(new oe,new oe,new oe,new oe,new oe,new oe,new oe,new oe);function Ayt(e,t,n){let i=F.fromRotationTranslation(e.halfAxes,e.center,ryt),o=F.multiply(t,i,syt),r=+Number.MAX_VALUE,s=-Number.MAX_VALUE,a=+Number.MAX_VALUE,c=-Number.MAX_VALUE,u,f=Tyt,d=obe.length;for(u=0;u<d;u++)F.multiplyByVector(o,obe[u],f[u]);for(u=0;u<d;u++){let p=f[u];if(p.z>=-p.w){let g=p.x/p.w,m=p.y/p.w;r=Math.min(r,g),s=Math.max(s,g),a=Math.min(a,m),c=Math.max(c,m)}else for(let g=0;g<3;g++){let m=byt[u*3+g],x=f[m];if(x.z>=-x.w){let b=p.z+p.w,T=x.z+x.w,A=b/(b-T),C=oe.lerp(p,x,A,Qgt),S=C.x/C.w,v=C.y/C.w;r=Math.min(r,S),s=Math.max(s,S),a=Math.min(a,v),c=Math.max(c,v)}}}return r=P.clamp(r,-1,1),a=P.clamp(a,-1,1),s=P.clamp(s,-1,1),c=P.clamp(c,-1,1),n=oe.fromElements(r,a,s,c,n),n}var xK=3e7,Cyt=new h(xK,0,0),Eyt=new h(0,xK,0),Syt=new h(0,0,xK);function vyt(e,t){let n=e._traversal,i=e._debugPolylines;i.removeAll();function o(c,u,f,d){i.add({positions:[c,u],width:d,material:ji.fromType("Color",{color:f})})}function r(c,u,f){let d=c.computeCorners();o(d[0],d[1],u,f),o(d[2],d[3],u,f),o(d[4],d[5],u,f),o(d[6],d[7],u,f),o(d[0],d[2],u,f),o(d[4],d[6],u,f),o(d[1],d[3],u,f),o(d[5],d[7],u,f),o(d[0],d[4],u,f),o(d[2],d[6],u,f),o(d[1],d[5],u,f),o(d[3],d[7],u,f)}function s(c){if(!n.isRenderable(c))return;let u=c.level,d=Math.max(1,5/Math.pow(2,u)),g=[z.RED,z.LIME,z.BLUE][u%3];if(r(c.orientedBoundingBox,g,d),l(c.children))for(let m=0;m<8;m++)s(c.children[m])}r(e._shape.orientedBoundingBox,z.WHITE,5),s(n.rootNode);let a=10;o(h.ZERO,Cyt,z.RED,a),o(h.ZERO,Eyt,z.LIME,a),o(h.ZERO,Syt,z.BLUE,a),i.update(t)}Mm.DefaultCustomShader=new JE({fragmentShaderText:`void fragmentMain(FragmentInput fsInput, inout czm_modelMaterial material) +{ + material.diffuse = vec3(1.0); + material.alpha = 1.0; +}`});function abe(){this.ready=!0,this.shape=Ni.BOX,this.dimensions=new h(1,1,1),this.names=["data"],this.types=[Et.SCALAR],this.componentTypes=[Wt.FLOAT32],this.maximumTileCount=1}abe.prototype.requestData=function(e){if(!((l(e)?y(e.tileLevel,0):0)>=1))return Promise.resolve([new Float32Array(1)])};Mm.DefaultProvider=new abe;var Sb=Mm;function wyt(e,t,n,i){if(!l(e)||l(t)&&e.id!==t)return;let r=(e.classes||{})[n];if(!l(r))return;let a=(r.properties||{})[i];if(l(a))return a}var sH=wyt;function Dyt(e,t,n,i){this.schemaId=e,this.className=t,this.propertyName=n,this.classProperty=i}var aH=Dyt;var lH=function(e){return function(){e.frameState.afterRender.push(function(){e.requestRender()})}};function Jn(e){e=y(e,y.EMPTY_OBJECT);let t=e.canvas,n=e.creditContainer,i=e.creditViewport,o=Ge(e.contextOptions),r=l(n),s=new zM(t,o);r||(n=document.createElement("div"),n.style.position="absolute",n.style.bottom="0",n.style["text-shadow"]="0 0 2px #000000",n.style.color="#ffffff",n.style["font-size"]="10px",n.style["padding-right"]="5px",t.parentNode.appendChild(n)),l(i)||(i=t.parentNode),this._id=zn(),this._jobScheduler=new Sz,this._frameState=new Az(s,new fz(n,"\u2022",i),this._jobScheduler),this._frameState.scene3DOnly=y(e.scene3DOnly,!1),this._removeCreditContainer=!r,this._creditContainer=n,this._canvas=t,this._context=s,this._computeEngine=new z1(s),this._ellipsoid=y(e.ellipsoid,ee.default),this._globe=void 0,this._globeTranslucencyState=new Cz,this._primitives=new hu,this._groundPrimitives=new hu,this._globeHeight=void 0,this._globeHeightDirty=!0,this._cameraUnderground=!1,this._removeUpdateHeightCallback=void 0,this._logDepthBuffer=Jn.defaultLogDepthBuffer&&s.fragmentDepth,this._logDepthBufferDirty=!0,this._tweens=new YE,this._shaderFrameCount=0,this._sunPostProcess=void 0,this._computeCommandList=[],this._overlayCommandList=[],this._useOIT=y(e.orderIndependentTranslucency,!0),this._executeOITFunction=void 0,this._depthPlane=new yz(e.depthPlaneEllipsoidOffset),this._clearColorCommand=new ei({color:new z,stencil:0,owner:this}),this._depthClearCommand=new ei({depth:1,owner:this}),this._stencilClearCommand=new ei({stencil:0}),this._classificationStencilClearCommand=new ei({stencil:0,renderState:Ve.fromCache({stencilMask:Ht.CLASSIFICATION_MASK})}),this._depthOnlyRenderStateCache={},this._transitioner=new g4(this),this._preUpdate=new me,this._postUpdate=new me,this._renderError=new me,this._preRender=new me,this._postRender=new me,this._minimumDisableDepthTestDistance=0,this._debugInspector=new O4,this._msaaSamples=y(e.msaaSamples,4),this.rethrowRenderErrors=!1,this.completeMorphOnUserInput=!0,this.morphStart=new me,this.morphComplete=new me,this.skyBox=void 0,this.skyAtmosphere=void 0,this.sun=void 0,this.sunBloom=!0,this._sunBloom=void 0,this.moon=void 0,this.backgroundColor=z.clone(z.BLACK),this._mode=ne.SCENE3D,this._mapProjection=l(e.mapProjection)?e.mapProjection:new wi(this._ellipsoid),this.morphTime=1,this.farToNearRatio=1e3,this.logarithmicDepthFarToNearRatio=1e9,this.nearToFarDistance2D=175e4,this.verticalExaggeration=1,this.verticalExaggerationRelativeHeight=0,this.debugCommandFilter=void 0,this.debugShowCommands=!1,this.debugShowFrustums=!1,this.debugShowFramesPerSecond=!1,this.debugShowDepthFrustum=1,this.debugShowFrustumPlanes=!1,this._debugShowFrustumPlanes=!1,this._debugFrustumPlanes=void 0,this.useDepthPicking=!0,this.pickTranslucentDepth=!1,this.cameraEventWaitTime=500,this.atmosphere=new TA,this.fog=new Tz,this.fog.enabled=ee.WGS84.equals(this._ellipsoid),ee.WGS84.equals(this._ellipsoid)||(io.DEFAULT_VIEW_RECTANGLE=re.fromDegrees(-45,-45,45,45)),this._shadowMapCamera=new io(this),this.shadowMap=new Yy({context:s,lightCamera:this._shadowMapCamera,enabled:y(e.shadows,!1)}),this.invertClassification=!1,this.invertClassificationColor=z.clone(z.WHITE),this._actualInvertClassificationColor=z.clone(this._invertClassificationColor),this._invertClassification=new zI,this.focalLength=void 0,this.eyeSeparation=void 0,this.postProcessStages=new m4,this._brdfLutGenerator=new ez,this._performanceDisplay=void 0,this._debugVolume=void 0,this._screenSpaceCameraController=new D4(this),this._cameraUnderground=!1,this._mapMode2D=y(e.mapMode2D,wu.INFINITE_SCROLL),this._environmentState={skyBoxCommand:void 0,skyAtmosphereCommand:void 0,sunDrawCommand:void 0,sunComputeCommand:void 0,moonCommand:void 0,isSunVisible:!1,isMoonVisible:!1,isReadyForAtmosphere:!1,isSkyAtmosphereVisible:!1,clearGlobeDepth:!1,useDepthPlane:!1,renderTranslucentDepthForPick:!1,originalFramebuffer:void 0,useGlobeDepthFramebuffer:!1,useOIT:!1,useInvertClassification:!1,usePostProcess:!1,usePostProcessSelected:!1,useWebVR:!1},this._useWebVR=!1,this._cameraVR=void 0,this._aspectRatioVR=void 0,this.requestRenderMode=y(e.requestRenderMode,!1),this._renderRequested=!0,this.maximumRenderTimeChange=y(e.maximumRenderTimeChange,0),this._lastRenderTime=void 0,this._frameRateMonitor=void 0,this._removeRequestListenerCallback=yc.requestCompletedEvent.addEventListener(lH(this)),this._removeTaskProcessorListenerCallback=_i.taskCompletedEvent.addEventListener(lH(this)),this._removeGlobeCallbacks=[],this._removeTerrainProviderReadyListener=void 0;let a=new qe(0,0,s.drawingBufferWidth,s.drawingBufferHeight),c=new io(this);this._logDepthBuffer&&(c.frustum.near=.1,c.frustum.far=1e10),this.preloadFlightCamera=new io(this),this.preloadFlightCullingVolume=void 0,this._picking=new qz(this),this._defaultView=new GE(this,c,a),this._view=this._defaultView,this._hdr=void 0,this._hdrDirty=void 0,this.highDynamicRange=!1,this.gamma=2.2,this.sphericalHarmonicCoefficients=void 0,this.specularEnvironmentMaps=void 0,this._specularEnvironmentCubeMap=void 0,this.light=new V_,dbe(this,0,K.now()),this.updateFrameState(),this.initializeFrame()}Jn.defaultLogDepthBuffer=!0;function Iyt(e,t){for(let i=0;i<e._removeGlobeCallbacks.length;++i)e._removeGlobeCallbacks[i]();e._removeGlobeCallbacks.length=0;let n=[];l(t)&&(n.push(t.imageryLayersUpdatedEvent.addEventListener(lH(e))),n.push(t.terrainProviderChanged.addEventListener(lH(e)))),e._removeGlobeCallbacks=n}Object.defineProperties(Jn.prototype,{canvas:{get:function(){return this._canvas}},drawingBufferHeight:{get:function(){return this._context.drawingBufferHeight}},drawingBufferWidth:{get:function(){return this._context.drawingBufferWidth}},maximumAliasedLineWidth:{get:function(){return zt.maximumAliasedLineWidth}},maximumCubeMapSize:{get:function(){return zt.maximumCubeMapSize}},pickPositionSupported:{get:function(){return this._context.depthTexture}},sampleHeightSupported:{get:function(){return this._context.depthTexture}},clampToHeightSupported:{get:function(){return this._context.depthTexture}},invertClassificationSupported:{get:function(){return this._context.depthTexture}},specularEnvironmentMapsSupported:{get:function(){return Rh.isSupported(this._context)}},ellipsoid:{get:function(){return this._ellipsoid}},globe:{get:function(){return this._globe},set:function(e){this._globe=this._globe&&this._globe.destroy(),this._globe=e,Iyt(this,e)}},primitives:{get:function(){return this._primitives}},groundPrimitives:{get:function(){return this._groundPrimitives}},camera:{get:function(){return this._view.camera},set:function(e){this._view.camera=e}},view:{get:function(){return this._view},set:function(e){this._view=e}},defaultView:{get:function(){return this._defaultView}},picking:{get:function(){return this._picking}},screenSpaceCameraController:{get:function(){return this._screenSpaceCameraController}},mapProjection:{get:function(){return this._mapProjection}},jobScheduler:{get:function(){return this._jobScheduler}},frameState:{get:function(){return this._frameState}},environmentState:{get:function(){return this._environmentState}},tweens:{get:function(){return this._tweens}},imageryLayers:{get:function(){if(l(this.globe))return this.globe.imageryLayers}},terrainProvider:{get:function(){if(l(this.globe))return this.globe.terrainProvider},set:function(e){this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),l(this.globe)&&(this.globe.terrainProvider=e)}},terrainProviderChanged:{get:function(){if(l(this.globe))return this.globe.terrainProviderChanged}},preUpdate:{get:function(){return this._preUpdate}},postUpdate:{get:function(){return this._postUpdate}},renderError:{get:function(){return this._renderError}},preRender:{get:function(){return this._preRender}},postRender:{get:function(){return this._postRender}},lastRenderTime:{get:function(){return this._lastRenderTime}},context:{get:function(){return this._context}},debugFrustumStatistics:{get:function(){return this._view.debugFrustumStatistics}},scene3DOnly:{get:function(){return this._frameState.scene3DOnly}},orderIndependentTranslucency:{get:function(){return this._useOIT}},id:{get:function(){return this._id}},mode:{get:function(){return this._mode},set:function(e){e===ne.SCENE2D?this.morphTo2D(0):e===ne.SCENE3D?this.morphTo3D(0):e===ne.COLUMBUS_VIEW&&this.morphToColumbusView(0),this._mode=e}},frustumCommandsList:{get:function(){return this._view.frustumCommandsList}},numberOfFrustums:{get:function(){return this._view.frustumCommandsList.length}},useWebVR:{get:function(){return this._useWebVR},set:function(e){this._useWebVR=e,this._useWebVR?(this._frameState.creditDisplay.container.style.visibility="hidden",this._cameraVR=new io(this),l(this._deviceOrientationCameraController)||(this._deviceOrientationCameraController=new bz(this)),this._aspectRatioVR=this.camera.frustum.aspectRatio):(this._frameState.creditDisplay.container.style.visibility="visible",this._cameraVR=void 0,this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this.camera.frustum.aspectRatio=this._aspectRatioVR,this.camera.frustum.xOffset=0)}},mapMode2D:{get:function(){return this._mapMode2D}},splitPosition:{get:function(){return this._frameState.splitPosition},set:function(e){this._frameState.splitPosition=e}},minimumDisableDepthTestDistance:{get:function(){return this._minimumDisableDepthTestDistance},set:function(e){this._minimumDisableDepthTestDistance=e}},logarithmicDepthBuffer:{get:function(){return this._logDepthBuffer},set:function(e){e=this._context.fragmentDepth&&e,this._logDepthBuffer!==e&&(this._logDepthBuffer=e,this._logDepthBufferDirty=!0)}},gamma:{get:function(){return this._context.uniformState.gamma},set:function(e){this._context.uniformState.gamma=e}},highDynamicRange:{get:function(){return this._hdr},set:function(e){let t=this._context,n=e&&t.depthTexture&&(t.colorBufferFloat||t.colorBufferHalfFloat);this._hdrDirty=n!==this._hdr,this._hdr=n}},highDynamicRangeSupported:{get:function(){let e=this._context;return e.depthTexture&&(e.colorBufferFloat||e.colorBufferHalfFloat)}},cameraUnderground:{get:function(){return this._cameraUnderground}},msaaSamples:{get:function(){return this._msaaSamples},set:function(e){e=Math.min(e,zt.maximumSamples),this._msaaSamples=e}},msaaSupported:{get:function(){return this._context.msaa}},pixelRatio:{get:function(){return this._frameState.pixelRatio},set:function(e){this._frameState.pixelRatio=e}},opaqueFrustumNearOffset:{get:function(){return .9999}},globeHeight:{get:function(){return this._globeHeight}}});Jn.prototype.getCompressedTextureFormatSupported=function(e){let t=this.context;return(e==="WEBGL_compressed_texture_s3tc"||e==="s3tc")&&t.s3tc||(e==="WEBGL_compressed_texture_pvrtc"||e==="pvrtc")&&t.pvrtc||(e==="WEBGL_compressed_texture_etc"||e==="etc")&&t.etc||(e==="WEBGL_compressed_texture_etc1"||e==="etc1")&&t.etc1||(e==="WEBGL_compressed_texture_astc"||e==="astc")&&t.astc||(e==="EXT_texture_compression_bptc"||e==="bc7")&&t.bc7};function Pyt(e,t){let n=e.pickedMetadataInfo,i=t.pickedMetadataInfo;return n?.schemaId!==i?.schemaId||n?.className!==i?.className||n?.propertyName!==i?.propertyName}function cbe(e,t,n){let i=e._frameState,o=e._context,r=e._view.oit,{lightShadowMaps:s,lightShadowsEnabled:a}=i.shadowState,c=t.derivedCommands;l(t.pickId)&&(c.picking=f_.createPickDerivedCommand(e,t,o,c.picking)),i.pickingMetadata&&t.pickMetadataAllowed&&(t.pickedMetadataInfo=i.pickedMetadataInfo,l(t.pickedMetadataInfo)&&(c.pickingMetadata=f_.createPickMetadataDerivedCommand(e,t,o,c.pickingMetadata))),t.pickOnly||(c.depth=f_.createDepthOnlyDerivedCommand(e,t,o,c.depth)),c.originalCommand=t,e._hdr&&(c.hdr=f_.createHdrCommand(t,o,c.hdr),t=c.hdr.command,c=t.derivedCommands),a&&t.receiveShadows&&(c.shadows=Yy.createReceiveDerivedCommand(s,t,n,o,c.shadows)),t.pass===ve.TRANSLUCENT&&l(r)&&r.isSupported()&&(a&&t.receiveShadows?(c.oit=l(c.oit)?c.oit:{},c.oit.shadows=r.createDerivedCommands(c.shadows.receiveCommand,o,c.oit.shadows)):c.oit=r.createDerivedCommands(t,o,c.oit))}Jn.prototype.updateDerivedCommands=function(e){let{derivedCommands:t}=e;if(!l(t))return;let n=this._frameState,{shadowState:i,useLogDepth:o}=this._frameState,r=this._context,s=!1,a=i.lastDirtyTime;e.lastDirtyTime!==a&&(e.lastDirtyTime=a,e.dirty=!0,s=!0);let c=this._hdr,u=l(t.logDepth),f=l(t.hdr),d=l(t.originalCommand),p=o&&!u,g=c&&!f,m=(!o||!c)&&!d,x=n.pickingMetadata&&Pyt(e,n);if(e.dirty=e.dirty||p||g||m||x,!e.dirty)return;e.dirty=!1;let{shadowsEnabled:b,shadowMaps:T}=i;b&&e.castShadows&&(t.shadows=Yy.createCastDerivedCommand(T,e,s,r,t.shadows)),(u||p)&&(t.logDepth=f_.createLogDepthCommand(e,r,t.logDepth),cbe(this,t.logDepth.command,s)),(d||m)&&cbe(this,e,s)};var Ryt=new Qd({pass:Fo.RENDER}),bK=new Qd({pass:Fo.PRELOAD}),TK=new Qd({pass:Fo.PRELOAD_FLIGHT}),Oyt=new Qd({pass:Fo.REQUEST_RENDER_MODE_DEFER_CHECK}),lbe=new se,AK;function Myt(e){if(!(e._mode!==ne.SCENE3D||!e.globe?.show||e._cameraUnderground||e._globeTranslucencyState.translucent))return lbe.radius=e.ellipsoid.minimumRadius+e.frameState.minimumTerrainHeight,AK=QU.fromBoundingSphere(lbe,e.camera.positionWC,AK),AK}Jn.prototype.clearPasses=function(e){e.render=!1,e.pick=!1,e.pickVoxel=!1,e.depth=!1,e.postProcess=!1,e.offscreen=!1};function dbe(e,t,n){let i=e._frameState;i.frameNumber=t,i.time=K.clone(n,i.time)}Jn.prototype.updateFrameState=function(){let e=this.camera,t=this._frameState;t.commandList.length=0,t.shadowMaps.length=0,t.brdfLutGenerator=this._brdfLutGenerator,t.environmentMap=this.skyBox&&this.skyBox._cubeMap,t.mode=this._mode,t.morphTime=this.morphTime,t.mapProjection=this.mapProjection,t.camera=e,t.cullingVolume=e.frustum.computeCullingVolume(e.positionWC,e.directionWC,e.upWC),t.occluder=Myt(this),t.minimumTerrainHeight=0,t.minimumDisableDepthTestDistance=this._minimumDisableDepthTestDistance,t.invertClassification=this.invertClassification,t.useLogDepth=this._logDepthBuffer&&!(this.camera.frustum instanceof rn||this.camera.frustum instanceof Ur),t.light=this.light,t.cameraUnderground=this._cameraUnderground,t.globeTranslucencyState=this._globeTranslucencyState;let{globe:n}=this;l(n)&&n._terrainExaggerationChanged&&(this.verticalExaggeration=n._terrainExaggeration,this.verticalExaggerationRelativeHeight=n._terrainExaggerationRelativeHeight,n._terrainExaggerationChanged=!1),t.verticalExaggeration=this.verticalExaggeration,t.verticalExaggerationRelativeHeight=this.verticalExaggerationRelativeHeight,l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.ready?(t.specularEnvironmentMaps=this._specularEnvironmentCubeMap.texture,t.specularEnvironmentMapsMaximumLOD=this._specularEnvironmentCubeMap.maximumMipmapLevel):(t.specularEnvironmentMaps=void 0,t.specularEnvironmentMapsMaximumLOD=void 0),t.sphericalHarmonicCoefficients=this.sphericalHarmonicCoefficients,this._actualInvertClassificationColor=z.clone(this.invertClassificationColor,this._actualInvertClassificationColor),zI.isTranslucencySupported(this._context)||(this._actualInvertClassificationColor.alpha=1),t.invertClassificationColor=this._actualInvertClassificationColor,l(this.globe)?t.maximumScreenSpaceError=this.globe.maximumScreenSpaceError:t.maximumScreenSpaceError=2,this.clearPasses(t.passes),t.tilesetPassState=void 0};Jn.prototype.isVisible=function(e,t,n){if(!l(t))return!1;let{boundingVolume:i}=t;return!l(i)||!t.cull?!0:e.computeVisibility(i)===Yt.OUTSIDE?!1:!l(n)||!t.occlude||!i.isOccluded(n)};var cH=new F(0,0,1,0,1,0,0,0,0,1,0,0,0,0,0,1);cH=F.inverseTransformation(cH,cH);function Lyt(e,t,n,i){let o=t._frameState,r=o.context,s=e.boundingVolume;l(t._debugVolume)&&t._debugVolume.destroy();let a=h.clone(s.center);if(o.mode!==ne.SCENE3D){a=F.multiplyByPoint(cH,a,a);let m=o.mapProjection,x=m.unproject(a);a=m.ellipsoid.cartographicToCartesian(x)}let c,u,{radius:f}=s;l(f)?(c=aa.createGeometry(new aa({radii:new h(f,f,f),vertexFormat:cn.FLAT_VERTEX_FORMAT})),u=F.fromTranslation(a)):(c=Ga.createGeometry(Ga.fromDimensions({dimensions:new h(2,2,2),vertexFormat:cn.FLAT_VERTEX_FORMAT})),u=F.fromRotationTranslation(s.halfAxes,a,new F)),t._debugVolume=new In({geometryInstances:new vt({geometry:Nn.toWireframe(c),modelMatrix:u,attributes:{color:new qt(1,0,0,1)}}),appearance:new cn({flat:!0,translucent:!1}),asynchronous:!1});let d=o.commandList,p=o.commandList=[];t._debugVolume.update(o),e=p[0],o.useLogDepth&&(e=f_.createLogDepthCommand(e,r).command);let g;l(i)&&(g=n.framebuffer,n.framebuffer=i),e.execute(r,n),l(g)&&(n.framebuffer=g),o.commandList=d}function Lm(e,t,n,i){let o=t._frameState,r=t._context;if(l(t.debugCommandFilter)&&!t.debugCommandFilter(e))return;if(e instanceof ei){e.execute(r,n);return}e.debugShowBoundingVolume&&l(e.boundingVolume)&&Lyt(e,t,n,i),o.useLogDepth&&l(e.derivedCommands.logDepth)&&(e=e.derivedCommands.logDepth.command);let s=o.passes;if(!s.pick&&!s.pickVoxel&&!s.depth&&t._hdr&&l(e.derivedCommands)&&l(e.derivedCommands.hdr)&&(e=e.derivedCommands.hdr.command),s.pick||s.depth){if(s.pick&&!s.depth){if(o.pickingMetadata&&l(e.derivedCommands.pickingMetadata)){e=e.derivedCommands.pickingMetadata.pickMetadataCommand,e.execute(r,n);return}if(!o.pickingMetadata&&l(e.derivedCommands.picking)){e=e.derivedCommands.picking.pickCommand,e.execute(r,n);return}}else if(l(e.derivedCommands.depth)){e=e.derivedCommands.depth.depthOnlyCommand,e.execute(r,n);return}}if(t.debugShowCommands||t.debugShowFrustums){t._debugInspector.executeDebugShowFrustumsCommand(t,e,n);return}o.shadowState.lightShadowsEnabled&&e.receiveShadows&&l(e.derivedCommands.shadows)?e.derivedCommands.shadows.receiveCommand.execute(r,n):e.execute(r,n)}function ube(e,t,n){let{derivedCommands:i}=e;if(!l(i))return;let o=t._frameState,r=t._context;o.useLogDepth&&l(i.logDepth)&&(e=i.logDepth.command);let{picking:s,pickingMetadata:a,depth:c}=e.derivedCommands;l(a)&&(e=i.pickingMetadata.pickMetadataCommand,e.execute(r,n)),l(s)?(e=s.pickCommand,e.execute(r,n)):l(c)&&(e=c.depthOnlyCommand,e.execute(r,n))}function hbe(e,t,n){return t.boundingVolume.distanceSquaredTo(n)-e.boundingVolume.distanceSquaredTo(n)}function Nyt(e,t,n){return e.boundingVolume.distanceSquaredTo(n)-t.boundingVolume.distanceSquaredTo(n)+P.EPSILON12}function Fyt(e,t,n,i,o){zy(i,hbe,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function Byt(e,t,n,i,o){zy(i,Nyt,e.camera.positionWC),l(o)&&t(o.unclassifiedCommand,e,n);for(let r=0;r<i.length;++r)t(i[r],e,n)}function kyt(e,t,n){e.context.uniformState.updatePass(ve.VOXELS);let i=n.commands[ve.VOXELS];i.length=n.indices[ve.VOXELS],zy(i,hbe,e.camera.positionWC);for(let o=0;o<i.length;++o)Lm(i[o],e,t)}var Vyt=new vi,Uyt=new Ol,zyt=new rn,Hyt=new Ur;function Gyt(e){let{frustum:t}=e;return l(t.fov)?t.clone(Vyt):l(t.infiniteProjectionMatrix)?t.clone(Uyt):l(t.width)?t.clone(zyt):t.clone(Hyt)}function Wyt(e){if(e._environmentState.useOIT){if(!l(e._executeOITFunction)){let{view:t,context:n}=e;e._executeOITFunction=function(i,o,r,s,a){t.globeDepth.prepareColorTextures(n),t.oit.executeCommands(i,o,r,s,a)}}return e._executeOITFunction}return e.frameState.passes.render?Fyt:Byt}function jyt(e,t,n){let{frameState:i,context:o}=e,{pick:r,pickVoxel:s}=i.passes,a=r||s,c;!a&&e._environmentState.useInvertClassification&&i.invertClassificationColor.alpha<1&&(c=e._invertClassification);let u=Wyt(e);o.uniformState.updatePass(ve.TRANSLUCENT);let f=n.commands[ve.TRANSLUCENT];f.length=n.indices[ve.TRANSLUCENT],u(e,Lm,t,f,c)}function qyt(e,t,n){let{translucentTileClassification:i,globeDepth:o}=e._view;if(!(n.indices[ve.CESIUM_3D_TILE_CLASSIFICATION]>0)||!i.isSupported())return;let s=n.commands[ve.TRANSLUCENT];i.executeTranslucentCommands(e,Lm,t,s,o.depthStencilTexture),i.executeClassificationCommands(e,Lm,t,n)}function EK(e,t){let{camera:n,context:i,frameState:o}=e,{uniformState:r}=i;r.updateCamera(n);let s=Gyt(n);s.near=n.frustum.near,s.far=n.frustum.far;let a=o.passes,c=a.pick||a.pickVoxel;c||Yyt(e,t);let{clearGlobeDepth:u,renderTranslucentDepthForPick:f,useDepthPlane:d,useGlobeDepthFramebuffer:p,useInvertClassification:g,usePostProcessSelected:m}=e._environmentState,{globeDepth:x,globeTranslucencyFramebuffer:b,sceneFramebuffer:T,frustumCommandsList:A}=e._view,C=A.length,S=e._globeTranslucencyState,v=e._depthClearCommand,D=e._stencilClearCommand,O=e._classificationStencilClearCommand,R=e._depthPlane,M=n.position.z;function L(E,w){r.updatePass(w);let I=E.commands[w],N=E.indices[w];for(let B=0;B<N;++B)Lm(I[B],e,t);return N}function _(E,w){r.updatePass(w);let I=E.commands[w],N=E.indices[w];for(let B=0;B<N;++B)ube(I[B],e,t)}for(let E=0;E<C;++E){let w=C-E-1,I=A[w];e.mode===ne.SCENE2D?(n.position.z=M-I.near+1,s.far=Math.max(1,I.far-I.near),s.near=1,r.update(o),r.updateFrustum(s)):(s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s)),v.execute(i,t),i.stencilBuffer&&D.execute(i,t),S.translucent?(r.updatePass(ve.GLOBE),S.executeGlobeCommands(I,Lm,b,e,t)):L(I,ve.GLOBE),p&&x.executeCopyDepth(i,t),f||(S.translucent?(r.updatePass(ve.TERRAIN_CLASSIFICATION),S.executeGlobeClassificationCommands(I,Lm,b,e,t)):L(I,ve.TERRAIN_CLASSIFICATION)),u&&(v.execute(i,t),d&&R.execute(i,t));let N;if(!g||c||f)N=L(I,ve.CESIUM_3D_TILE),N>0&&(p&&(x.prepareColorTextures(i,u),x.executeUpdateDepth(i,t,x.depthStencilTexture)),f||(N=L(I,ve.CESIUM_3D_TILE_CLASSIFICATION)));else{e._invertClassification.clear(i,t);let H=t.framebuffer;t.framebuffer=e._invertClassification._fbo.framebuffer,N=L(I,ve.CESIUM_3D_TILE),p&&(e._invertClassification.prepareTextures(i),x.executeUpdateDepth(i,t,e._invertClassification._fbo.getDepthStencilTexture())),N=L(I,ve.CESIUM_3D_TILE_CLASSIFICATION_IGNORE_SHOW),t.framebuffer=H,e._invertClassification.executeClassified(i,t),o.invertClassificationColor.alpha===1&&e._invertClassification.executeUnclassified(i,t),N>0&&i.stencilBuffer&&O.execute(i,t),N=L(I,ve.CESIUM_3D_TILE_CLASSIFICATION)}if(N>0&&i.stencilBuffer&&D.execute(i,t),kyt(e,t,I),L(I,ve.OPAQUE),w!==0&&e.mode!==ne.SCENE2D&&(s.near=I.near,r.updateFrustum(s)),jyt(e,t,I),qyt(e,t,I),i.depthTexture&&e.useDepthPicking&&(p||f)){let H=e._picking.getPickDepth(e,w);H.update(i,x.depthStencilTexture),H.executeCopyDepth(i,t)}if(c||!m)continue;let B=t.framebuffer;t.framebuffer=T.getIdFramebuffer(),s.near=w!==0?I.near*e.opaqueFrustumNearOffset:I.near,s.far=I.far,r.updateFrustum(s),S.translucent?(r.updatePass(ve.GLOBE),S.executeGlobeCommands(I,ube,b,e,t)):_(I,ve.GLOBE),u&&(v.framebuffer=t.framebuffer,v.execute(i,t),v.framebuffer=void 0),u&&d&&R.execute(i,t),_(I,ve.CESIUM_3D_TILE),_(I,ve.OPAQUE),_(I,ve.TRANSLUCENT),t.framebuffer=B}}function Yyt(e,t){let{context:n,environmentState:i,view:o}=e;if(n.uniformState.updatePass(ve.ENVIRONMENT),l(i.skyBoxCommand)&&Lm(i.skyBoxCommand,e,t),i.isSkyAtmosphereVisible&&Lm(i.skyAtmosphereCommand,e,t),i.isSunVisible&&(i.sunDrawCommand.execute(n,t),e.sunBloom&&!i.useWebVR)){let r;i.useGlobeDepthFramebuffer?r=o.globeDepth.framebuffer:i.usePostProcess?r=o.sceneFramebuffer.framebuffer:r=i.originalFramebuffer,e._sunPostProcess.execute(n),e._sunPostProcess.copy(n,r),t.framebuffer=r}i.isMoonVisible&&i.moonCommand.execute(n,t)}function mbe(e){e.context.uniformState.updatePass(ve.COMPUTE);let t=e._environmentState.sunComputeCommand;l(t)&&t.execute(e._computeEngine);let n=e._computeCommandList;for(let i=0;i<n.length;++i)n[i].execute(e._computeEngine)}function Xyt(e,t){e.context.uniformState.updatePass(ve.OVERLAY);let n=e.context,i=e._overlayCommandList;for(let o=0;o<i.length;++o)i[o].execute(n,t)}function Kyt(e,t,n){let{shadowMapCullingVolume:i,isPointLight:o,passes:r}=n,s=r.length,a=[ve.GLOBE,ve.CESIUM_3D_TILE,ve.OPAQUE,ve.TRANSLUCENT];for(let c=0;c<t.length;++c){let u=t[c];if(e.updateDerivedCommands(u),!(!u.castShadows||a.indexOf(u.pass)<0||!e.isVisible(i,u)))if(o)for(let f=0;f<s;++f)r[f].commandList.push(u);else if(s===1)r[0].commandList.push(u);else{let f=!1;for(let d=s-1;d>=0;--d){let p=r[d].cullingVolume;if(e.isVisible(p,u))r[d].commandList.push(u),f=!0;else if(f)break}}}}function pbe(e){let{shadowState:t,commandList:n}=e.frameState,{shadowsEnabled:i,shadowMaps:o}=t;if(!i)return;let{context:r}=e,{uniformState:s}=r;for(let a=0;a<o.length;++a){let c=o[a];if(c.outOfView)continue;let{passes:u}=c;for(let f=0;f<u.length;++f)u[f].commandList.length=0;Kyt(e,n,c);for(let f=0;f<u.length;++f){let d=c.passes[f],{camera:p,commandList:g}=d;s.updateCamera(p),c.updatePass(r,f);for(let m=0;m<g.length;++m){let x=g[m];s.updatePass(x.pass);let b=x.derivedCommands.shadows.castCommands[a];Lm(b,e,d.passState)}}}}var Zyt=new h;Jn.prototype.updateAndExecuteCommands=function(e,t){l0t(this,e,t),this._environmentState.useWebVR?$yt(this,e,t):this._frameState.mode!==ne.SCENE2D||this._mapMode2D===wu.ROTATE?Qy(!0,this,e):s0t(this,e)};function $yt(e,t){let n=e._view,i=n.camera,r=e._environmentState.renderTranslucentDepthForPick;_be(e),n.createPotentiallyVisibleSet(e),mbe(e),r||pbe(e);let s=t.viewport;s.x=0,s.y=0,s.width=s.width*.5;let a=io.clone(i,e._cameraVR);a.frustum=i.frustum;let c=i.frustum.near,u=c*y(e.focalLength,5),f=y(e.eyeSeparation,u/30),d=h.multiplyByScalar(a.right,f*.5,Zyt);i.frustum.aspectRatio=s.width/s.height;let p=.5*f*c/u;h.add(a.position,d,i.position),i.frustum.xOffset=p,EK(e,t),s.x=s.width,h.subtract(a.position,d,i.position),i.frustum.xOffset=-p,EK(e,t),io.clone(a,i)}var Qyt=new fe(Math.PI,P.PI_OVER_TWO),Jyt=new h,e0t=new h,t0t=new F,n0t=new F,i0t=new h,o0t=new h,r0t=new qe;function s0t(e,t){let{frameState:n,camera:i}=e,{uniformState:o}=e.context,r=t.viewport,s=qe.clone(r,r0t);t.viewport=s;let a=Qyt,c=Jyt;e.mapProjection.project(a,c);let f=h.clone(i.position,e0t),d=F.clone(i.transform,n0t),p=i.frustum.clone();i._setTransform(F.IDENTITY);let g=F.computeViewportTransformation(s,0,1,t0t),m=i.frustum.projectionMatrix,x=i.positionWC.y,b=h.fromElements(P.sign(x)*c.x-x,0,-i.positionWC.x,i0t),T=Nt.pointToGLWindowCoordinates(m,g,b,o0t);T.x=Math.floor(T.x);let A=s.x,C=s.width;if(x===0||T.x<=A||T.x>=A+C)Qy(!0,e,t);else if(Math.abs(A+C*.5-T.x)<1)s.width=T.x-s.x,i.position.x*=P.sign(i.position.x),i.frustum.right=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!0,e,t),s.x=T.x,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=0,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!1,e,t);else if(T.x>A+C*.5){s.width=T.x-A;let S=i.frustum.right;i.frustum.right=c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!0,e,t),s.x=T.x,s.width=A+C-T.x,i.position.x=-i.position.x,i.frustum.left=-i.frustum.right,i.frustum.right=S-i.frustum.right*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!1,e,t)}else{s.x=T.x,s.width=A+C-T.x;let S=i.frustum.left;i.frustum.left=-c.x-x,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!0,e,t),s.x=A,s.width=T.x-A,i.position.x=-i.position.x,i.frustum.right=-i.frustum.left,i.frustum.left=S-i.frustum.left*2,n.cullingVolume=i.frustum.computeCullingVolume(i.positionWC,i.directionWC,i.upWC),o.update(n),Qy(!1,e,t)}i._setTransform(d),h.clone(f,i.position),i.frustum=p.clone(),t.viewport=r}function Qy(e,t,n){let i=t._view,{renderTranslucentDepthForPick:o}=t._environmentState;e||(t.frameState.commandList.length=0),_be(t),i.createPotentiallyVisibleSet(t),e&&(mbe(t),o||pbe(t)),EK(t,n)}var fbe=new ys;Jn.prototype.updateEnvironment=function(){let e=this._frameState,t=this._view,n=this._environmentState,i=e.passes.render,o=e.passes.offscreen,r=this.atmosphere,s=this.skyAtmosphere,a=this.globe,c=this._globeTranslucencyState;if(!i||this._mode!==ne.SCENE2D&&t.camera.frustum instanceof rn||!c.environmentVisible)n.skyAtmosphereCommand=void 0,n.skyBoxCommand=void 0,n.sunDrawCommand=void 0,n.sunComputeCommand=void 0,n.moonCommand=void 0;else{if(l(s)){if(l(a))s.setDynamicLighting(bg.fromGlobeFlags(a)),n.isReadyForAtmosphere=n.isReadyForAtmosphere||!a.show||a._surface._tilesToRender.length>0;else{let T=r.dynamicLighting;s.setDynamicLighting(T),n.isReadyForAtmosphere=!0}n.skyAtmosphereCommand=s.update(e,a),l(n.skyAtmosphereCommand)&&this.updateDerivedCommands(n.skyAtmosphereCommand)}else n.skyAtmosphereCommand=void 0;n.skyBoxCommand=l(this.skyBox)?this.skyBox.update(e,this._hdr):void 0;let b=l(this.sun)?this.sun.update(e,t.passState,this._hdr):void 0;n.sunDrawCommand=l(b)?b.drawCommand:void 0,n.sunComputeCommand=l(b)?b.computeCommand:void 0,n.moonCommand=l(this.moon)?this.moon.update(e):void 0}let u=n.clearGlobeDepth=l(a)&&a.show&&(!a.depthTestAgainstTerrain||this.mode===ne.SCENE2D);(n.useDepthPlane=u&&this.mode===ne.SCENE3D&&c.useDepthPlane)&&this._depthPlane.update(e),n.renderTranslucentDepthForPick=!1,n.useWebVR=this._useWebVR&&this.mode!==ne.SCENE2D&&!o;let d=e.mode===ne.SCENE3D&&!c.sunVisibleThroughGlobe?e.occluder:void 0,p=e.cullingVolume,g=fbe.planes;for(let b=0;b<5;++b)g[b]=p.planes[b];p=fbe,n.isSkyAtmosphereVisible=l(n.skyAtmosphereCommand)&&n.isReadyForAtmosphere,n.isSunVisible=this.isVisible(p,n.sunDrawCommand,d),n.isMoonVisible=this.isVisible(p,n.moonCommand,d);let m=this.specularEnvironmentMaps,x=this._specularEnvironmentCubeMap;l(m)&&x?.url!==m?(x=x&&x.destroy(),this._specularEnvironmentCubeMap=new Rh(m)):!l(m)&&l(x)&&(x.destroy(),this._specularEnvironmentCubeMap=void 0),l(this._specularEnvironmentCubeMap)&&this._specularEnvironmentCubeMap.update(e)};function a0t(e){let t=e._frameState;e.debugShowFrustumPlanes!==e._debugShowFrustumPlanes&&(e.debugShowFrustumPlanes?e._debugFrustumPlanes=new u_({camera:e.camera,updateOnChange:!1,frustumSplits:t.frustumSplits}):e._debugFrustumPlanes=e._debugFrustumPlanes&&e._debugFrustumPlanes.destroy(),e._debugShowFrustumPlanes=e.debugShowFrustumPlanes),l(e._debugFrustumPlanes)&&e._debugFrustumPlanes.update(t)}function c0t(e){let t=e._frameState,{passes:n,shadowState:i,shadowMaps:o}=t,r=o.length,s=r>0&&!n.pick&&!n.pickVoxel&&e.mode===ne.SCENE3D;if(s!==i.shadowsEnabled&&(++i.lastDirtyTime,i.shadowsEnabled=s),i.lightShadowsEnabled=!1,!!s){for(let a=0;a<r;++a)if(o[a]!==i.shadowMaps[a]){++i.lastDirtyTime;break}i.shadowMaps.length=0,i.lightShadowMaps.length=0;for(let a=0;a<r;++a){let c=o[a];c.update(t),i.shadowMaps.push(c),c.fromLightSource&&(i.lightShadowMaps.push(c),i.lightShadowsEnabled=!0),c.dirty&&(++i.lastDirtyTime,c.dirty=!1)}}}function _be(e){let t=e._frameState;e._groundPrimitives.update(t),e._primitives.update(t),a0t(e),c0t(e),e._globe&&e._globe.render(t)}function l0t(e,t,n){let i=e._context,o=e._frameState,r=e._environmentState,s=e._view,a=o.passes,c=a.pick||a.pickVoxel;l(s.globeDepth)&&(s.globeDepth.picking=c);let u=r.useWebVR;r.originalFramebuffer=t.framebuffer,l(e.sun)&&e.sunBloom!==e._sunBloom?(e.sunBloom&&!u?e._sunPostProcess=new R4:l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy()),e._sunBloom=e.sunBloom):!l(e.sun)&&l(e._sunPostProcess)&&(e._sunPostProcess=e._sunPostProcess.destroy(),e._sunBloom=!1);let f=e._clearColorCommand;z.clone(n,f.color),f.execute(i,t);let d=r.useGlobeDepthFramebuffer=l(s.globeDepth);d&&(s.globeDepth.update(i,t,s.viewport,e.msaaSamples,e._hdr,r.clearGlobeDepth),s.globeDepth.clear(i,t,n));let p=s.oit,g=r.useOIT=!c&&l(p)&&p.isSupported();g&&(p.update(i,t,s.globeDepth.colorFramebufferManager,e._hdr,e.msaaSamples),p.clear(i,t,n),r.useOIT=p.isSupported());let m=e.postProcessStages,x=r.usePostProcess=!c&&(e._hdr||m.length>0||m.ambientOcclusion.enabled||m.fxaa.enabled||m.bloom.enabled);if(r.usePostProcessSelected=!1,x&&(s.sceneFramebuffer.update(i,s.viewport,e._hdr,e.msaaSamples),s.sceneFramebuffer.clear(i,t,n),m.update(i,o.useLogDepth,e._hdr),m.clear(i),x=r.usePostProcess=m.ready,r.usePostProcessSelected=x&&m.hasSelected),r.isSunVisible&&e.sunBloom&&!u?(t.framebuffer=e._sunPostProcess.update(t),e._sunPostProcess.clear(i,t,n)):d?t.framebuffer=s.globeDepth.framebuffer:x&&(t.framebuffer=s.sceneFramebuffer.framebuffer),l(t.framebuffer)&&f.execute(i,t),r.useInvertClassification=!c&&l(t.framebuffer)&&e.invertClassification){let T;if(o.invertClassificationColor.alpha===1&&d&&(T=s.globeDepth.framebuffer),l(T)||i.depthTexture){if(e._invertClassification.previousFramebuffer=T,e._invertClassification.update(i,e.msaaSamples,s.globeDepth.colorFramebufferManager),e._invertClassification.clear(i,t),o.invertClassificationColor.alpha<1&&g){let A=e._invertClassification.unclassifiedCommand,C=A.derivedCommands;C.oit=p.createDerivedCommands(A,i,C.oit)}}else r.useInvertClassification=!1}e._globeTranslucencyState.translucent&&s.globeTranslucencyFramebuffer.updateAndClear(e._hdr,s.viewport,i,t)}Jn.prototype.resolveFramebuffers=function(e){let t=this._context,n=this._environmentState,i=this._view,{globeDepth:o,translucentTileClassification:r}=i;l(o)&&o.prepareColorTextures(t);let{useOIT:s,useGlobeDepthFramebuffer:a,usePostProcess:c,originalFramebuffer:u}=n,f=a?o.colorFramebufferManager:void 0,d=i.sceneFramebuffer._colorFramebuffer,p=i.sceneFramebuffer.idFramebuffer;if(s&&(e.framebuffer=c?d.framebuffer:u,i.oit.execute(t,e)),r.hasTranslucentDepth&&r.isSupported()&&r.execute(this,e),c){i.sceneFramebuffer.prepareColorTextures(t);let g=d;a&&!s&&(g=f);let m=this.postProcessStages,x=g.getColorTexture(0),b=p.getColorTexture(0),T=y(f,d).getDepthStencilTexture();m.execute(t,x,T,b),m.copy(t,u)}!s&&!c&&a&&(e.framebuffer=u,o.executeCopyColor(t,e))};function u0t(e){let t=e._frameState.afterRender;for(let n=0;n<t.length;++n)t[n]()&&e.requestRender();t.length=0}function f0t(e){if(e.mode===ne.MORPHING)return;let t=e.camera.positionCartographic;return e.getHeight(t)}Jn.prototype.getHeight=function(e,t){if(!l(e))return;let n=t===Ke.CLAMP_TO_TERRAIN||t===Ke.RELATIVE_TO_TERRAIN,i=t===Ke.CLAMP_TO_3D_TILE||t===Ke.RELATIVE_TO_3D_TILE;if(!l(e))return;let o=Number.NEGATIVE_INFINITY;if(!n){let s=this.primitives.length;for(let a=0;a<s;++a){let c=this.primitives.get(a);if(!c.isCesium3DTileset||!c.show||!c.enableCollision)continue;let u=c.getHeight(e,this);l(u)&&u>o&&(o=u)}}let r=this._globe;if(!i&&l(r)&&r.show){let s=r.getHeight(e);s>o&&(o=s)}if(o>Number.NEGATIVE_INFINITY)return o};var CK=new fe;Jn.prototype.updateHeight=function(e,t,n){let i=()=>{fe.clone(e,CK);let g=this.getHeight(e,n);l(g)&&(CK.height=g,t(CK))},o=n===Ke.CLAMP_TO_TERRAIN||n===Ke.RELATIVE_TO_TERRAIN,r=n===Ke.CLAMP_TO_3D_TILE||n===Ke.RELATIVE_TO_3D_TILE,s;!r&&l(this.globe)&&(s=this.globe._surface.updateHeight(e,i));let a={},c=this._ellipsoid,u=g=>{if(o||g.isDestroyed()||!g.isCesium3DTileset)return;let m=g.updateHeight(e,i,c);a[g.id]=m};if(!o){let g=this.primitives.length;for(let m=0;m<g;++m){let x=this.primitives.get(m);u(x)}}let f=this.primitives.primitiveAdded.addEventListener(u),d=this.primitives.primitiveRemoved.addEventListener(g=>{g.isDestroyed()||!g.isCesium3DTileset||(l(a[g.id])&&a[g.id](),delete a[g.id])});return()=>{s=s&&s(),Object.values(a).forEach(g=>g()),a={},f(),d()}};function d0t(e){let t=e.camera,n=e._mode,i=e._screenSpaceCameraController,o=t.positionCartographic;if(!l(o))return!1;if(!i.onMap()&&o.height<0)return!0;if(n===ne.SCENE2D||n===ne.MORPHING)return!1;let r=e._globeHeight;return l(r)&&o.height<r}Jn.prototype.initializeFrame=function(){if(this._shaderFrameCount++===120&&(this._shaderFrameCount=0,this._context.shaderCache.destroyReleasedShaderPrograms(),this._context.textureCache.destroyReleasedTextures()),this._tweens.update(),this._globeHeightDirty){l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),this._globeHeight=f0t(this),this._globeHeightDirty=!1;let e=this.camera.positionCartographic;this._removeUpdateHeightCallback=this.updateHeight(e,t=>{this.isDestroyed()||(this._globeHeight=t.height)})}this._cameraUnderground=d0t(this),this._globeTranslucencyState.update(this),this._screenSpaceCameraController.update(),l(this._deviceOrientationCameraController)&&this._deviceOrientationCameraController.update(),this.camera.update(this._mode),this.camera._updateCameraChanged()};function h0t(e,t){if(e.debugShowFramesPerSecond){if(!l(e._performanceDisplay)){let n=document.createElement("div");n.className="cesium-performanceDisplay-defaultContainer",e._canvas.parentNode.appendChild(n);let o=new jy({container:n});e._performanceDisplay=o,e._performanceContainer=n}e._performanceDisplay.throttled=e.requestRenderMode,e._performanceDisplay.update(t)}else l(e._performanceDisplay)&&(e._performanceDisplay=e._performanceDisplay&&e._performanceDisplay.destroy(),e._performanceContainer.parentNode.removeChild(e._performanceContainer))}function m0t(e){e._jobScheduler.resetBudgets();let t=e._frameState;e.primitives.prePassesUpdate(t),l(e.globe)&&e.globe.update(t),e._picking.update(),t.creditDisplay.update()}function p0t(e){e.primitives.postPassesUpdate(e._frameState),yc.update()}var _0t=new z;function g0t(e){let t=e._frameState,n=e.context,{uniformState:i}=n,o=e._defaultView;e._view=o,e.updateFrameState(),t.passes.render=!0,t.passes.postProcess=e.postProcessStages.hasSelected,t.tilesetPassState=Ryt;let r=y(e.backgroundColor,z.BLACK);e._hdr&&(r=z.clone(r,_0t),r.red=Math.pow(r.red,e.gamma),r.green=Math.pow(r.green,e.gamma),r.blue=Math.pow(r.blue,e.gamma)),t.backgroundColor=r,t.atmosphere=e.atmosphere,e.fog.update(t),i.update(t);let s=e.shadowMap;l(s)&&s.enabled&&(!l(e.light)||e.light instanceof V_?h.negate(i.sunDirectionWC,e._shadowMapCamera.direction):h.clone(e.light.direction,e._shadowMapCamera.direction),t.shadowMaps.push(s)),e._computeCommandList.length=0,e._overlayCommandList.length=0;let a=o.viewport;a.x=0,a.y=0,a.width=n.drawingBufferWidth,a.height=n.drawingBufferHeight;let c=o.passState;c.framebuffer=void 0,c.blendingEnabled=void 0,c.scissorTest=void 0,c.viewport=qe.clone(a,c.viewport),l(e.globe)&&e.globe.beginFrame(t),e.updateEnvironment(),e.updateAndExecuteCommands(c,r),e.resolveFramebuffers(c),c.framebuffer=void 0,Xyt(e,c),l(e.globe)&&(e.globe.endFrame(t),e.globe.tilesLoaded||(e._renderRequested=!0)),n.endFrame()}function vb(e,t){try{t(e)}catch(n){if(e._renderError.raiseEvent(e,n),e.rethrowRenderErrors)throw n}}function y0t(e){return e._picking.updateMostDetailedRayPicks(e)}Jn.prototype.render=function(e){this._preUpdate.raiseEvent(this,e);let t=this._frameState;t.newFrame=!1,l(e)||(e=K.now());let n=this._view.checkForCameraUpdates(this);n&&(this._globeHeightDirty=!0);let i=!this.requestRenderMode||this._renderRequested||n||this._logDepthBufferDirty||this._hdrDirty||this.mode===ne.MORPHING;if(!i&&l(this.maximumRenderTimeChange)&&l(this._lastRenderTime)){let o=Math.abs(K.secondsDifference(this._lastRenderTime,e));i=i||o>this.maximumRenderTimeChange}if(i){this._lastRenderTime=K.clone(e,this._lastRenderTime),this._renderRequested=!1,this._logDepthBufferDirty=!1,this._hdrDirty=!1;let o=P.incrementWrap(t.frameNumber,15e6,1);dbe(this,o,e),t.newFrame=!0}vb(this,m0t),this.primitives.show&&(vb(this,y0t),vb(this,x0t),vb(this,b0t),i||vb(this,T0t)),this._postUpdate.raiseEvent(this,e),i&&(this._preRender.raiseEvent(this,e),t.creditDisplay.beginFrame(),vb(this,g0t)),h0t(this,i),vb(this,p0t),u0t(this),i&&(this._postRender.raiseEvent(this,e),t.creditDisplay.endFrame())};Jn.prototype.forceRender=function(e){this._renderRequested=!0,this.render(e)};Jn.prototype.requestRender=function(){this._renderRequested=!0};Jn.prototype.clampLineWidth=function(e){return Math.max(zt.minimumAliasedLineWidth,Math.min(e,zt.maximumAliasedLineWidth))};Jn.prototype.pick=function(e,t,n){return this._picking.pick(this,e,t,n)};Jn.prototype.pickVoxel=function(e,t,n){let i=this.pick(e,t,n);if(!l(i))return;let o=i.primitive;if(!(o instanceof Sb))return;let r=this._picking.pickVoxelCoordinate(this,e,t,n),s=255*r[0]+r[1],a=o._traversal.findKeyframeNode(s);if(!l(a))return;let c=255*r[2]+r[3];return M4.fromKeyframeNode(o,s,c,a)};Jn.prototype.pickMetadata=function(e,t,n,i){let o=this.pick(e);if(!l(o))return;let r=o.detail?.model?.structuralMetadata?.schema,s=sH(r,t,n,i);if(!l(s))return;let a=new aH(t,n,i,s);return this._picking.pickMetadata(this,e,a)};Jn.prototype.pickMetadataSchema=function(e){let t=this.pick(e);return l(t)?t.detail?.model?.structuralMetadata?.schema:void 0};Jn.prototype.pickPositionWorldCoordinates=function(e,t){return this._picking.pickPositionWorldCoordinates(this,e,t)};Jn.prototype.pickPosition=function(e,t){return this._picking.pickPosition(this,e,t)};Jn.prototype.drillPick=function(e,t,n,i){return this._picking.drillPick(this,e,t,n,i)};function x0t(e){let t=e._frameState;bK.camera=t.camera,bK.cullingVolume=t.cullingVolume,e.primitives.updateForPass(t,bK)}function b0t(e){let t=e._frameState;if(!t.camera.canPreloadFlight())return;TK.camera=e.preloadFlightCamera,TK.cullingVolume=e.preloadFlightCullingVolume,e.primitives.updateForPass(t,TK)}function T0t(e){e.primitives.updateForPass(e._frameState,Oyt)}Jn.prototype.pickFromRay=function(e,t,n){return this._picking.pickFromRay(this,e,t,n)};Jn.prototype.drillPickFromRay=function(e,t,n,i){return this._picking.drillPickFromRay(this,e,t,n,i)};Jn.prototype.pickFromRayMostDetailed=function(e,t,n){return this._picking.pickFromRayMostDetailed(this,e,t,n)};Jn.prototype.drillPickFromRayMostDetailed=function(e,t,n,i){return this._picking.drillPickFromRayMostDetailed(this,e,t,n,i)};Jn.prototype.sampleHeight=function(e,t,n){return this._picking.sampleHeight(this,e,t,n)};Jn.prototype.clampToHeight=function(e,t,n,i){return this._picking.clampToHeight(this,e,t,n,i)};Jn.prototype.sampleHeightMostDetailed=function(e,t,n){return this._picking.sampleHeightMostDetailed(this,e,t,n)};Jn.prototype.clampToHeightMostDetailed=function(e,t,n){return this._picking.clampToHeightMostDetailed(this,e,t,n)};Jn.prototype.cartesianToCanvasCoordinates=function(e,t){return Vi.worldToWindowCoordinates(this,e,t)};Jn.prototype.completeMorph=function(){this._transitioner.completeMorph()};Jn.prototype.morphTo2D=function(e){e=y(e,2),this._transitioner.morphTo2D(e,this._ellipsoid)};Jn.prototype.morphToColumbusView=function(e){e=y(e,2),this._transitioner.morphToColumbusView(e,this._ellipsoid)};Jn.prototype.morphTo3D=function(e){e=y(e,2),this._transitioner.morphTo3D(e,this._ellipsoid)};function A0t(e,t){if(e._removeTerrainProviderReadyListener=e._removeTerrainProviderReadyListener&&e._removeTerrainProviderReadyListener(),t.ready){l(e.globe)&&(e.globe.terrainProvider=t.provider);return}e.globe.terrainProvider=void 0,e._removeTerrainProviderReadyListener=t.readyEvent.addEventListener(n=>{l(e)&&l(e.globe)&&(e.globe.terrainProvider=n),e._removeTerrainProviderReadyListener()})}Jn.prototype.setTerrain=function(e){return A0t(this,e),e};Jn.prototype.isDestroyed=function(){return!1};Jn.prototype.destroy=function(){this._tweens.removeAll(),this._computeEngine=this._computeEngine&&this._computeEngine.destroy(),this._screenSpaceCameraController=this._screenSpaceCameraController&&this._screenSpaceCameraController.destroy(),this._deviceOrientationCameraController=this._deviceOrientationCameraController&&!this._deviceOrientationCameraController.isDestroyed()&&this._deviceOrientationCameraController.destroy(),this._primitives=this._primitives&&this._primitives.destroy(),this._groundPrimitives=this._groundPrimitives&&this._groundPrimitives.destroy(),this._globe=this._globe&&this._globe.destroy(),this._removeTerrainProviderReadyListener=this._removeTerrainProviderReadyListener&&this._removeTerrainProviderReadyListener(),this.skyBox=this.skyBox&&this.skyBox.destroy(),this.skyAtmosphere=this.skyAtmosphere&&this.skyAtmosphere.destroy(),this._debugSphere=this._debugSphere&&this._debugSphere.destroy(),this.sun=this.sun&&this.sun.destroy(),this._sunPostProcess=this._sunPostProcess&&this._sunPostProcess.destroy(),this._depthPlane=this._depthPlane&&this._depthPlane.destroy(),this._transitioner=this._transitioner&&this._transitioner.destroy(),this._debugFrustumPlanes=this._debugFrustumPlanes&&this._debugFrustumPlanes.destroy(),this._brdfLutGenerator=this._brdfLutGenerator&&this._brdfLutGenerator.destroy(),this._picking=this._picking&&this._picking.destroy(),this._defaultView=this._defaultView&&this._defaultView.destroy(),this._view=void 0,this._removeCreditContainer&&this._canvas.parentNode.removeChild(this._creditContainer),this.postProcessStages=this.postProcessStages&&this.postProcessStages.destroy(),this._context=this._context&&this._context.destroy(),this._frameState.creditDisplay=this._frameState.creditDisplay&&this._frameState.creditDisplay.destroy(),l(this._performanceDisplay)&&(this._performanceDisplay=this._performanceDisplay&&this._performanceDisplay.destroy(),this._performanceContainer.parentNode.removeChild(this._performanceContainer)),this._removeRequestListenerCallback(),this._removeTaskProcessorListenerCallback();for(let e=0;e<this._removeGlobeCallbacks.length;++e)this._removeGlobeCallbacks[e]();return this._removeGlobeCallbacks.length=0,l(this._removeUpdateHeightCallback)&&(this._removeUpdateHeightCallback(),this._removeUpdateHeightCallback=void 0),ue(this)};var uH=Jn;var aP=`float interpolateByDistance(vec4 nearFarScalar, float distance) +{ + float startDistance = nearFarScalar.x; + float startValue = nearFarScalar.y; + float endDistance = nearFarScalar.z; + float endValue = nearFarScalar.w; + float t = clamp((distance - startDistance) / (endDistance - startDistance), 0.0, 1.0); + return mix(startValue, endValue, t); +} + +void computeAtmosphereScattering(vec3 positionWC, vec3 lightDirection, out vec3 rayleighColor, out vec3 mieColor, out float opacity, out float underTranslucentGlobe) +{ + float ellipsoidRadiiDifference = czm_ellipsoidRadii.x - czm_ellipsoidRadii.z; + + // Adjustment to the atmosphere radius applied based on the camera height. + float distanceAdjustMin = czm_ellipsoidRadii.x / 4.0; + float distanceAdjustMax = czm_ellipsoidRadii.x; + float distanceAdjustModifier = ellipsoidRadiiDifference / 2.0; + float distanceAdjust = distanceAdjustModifier * clamp((czm_eyeHeight - distanceAdjustMin) / (distanceAdjustMax - distanceAdjustMin), 0.0, 1.0); + + // Since atmosphere scattering assumes the atmosphere is a spherical shell, we compute an inner radius of the atmosphere best fit + // for the position on the ellipsoid. + float radiusAdjust = (ellipsoidRadiiDifference / 4.0) + distanceAdjust; + float atmosphereInnerRadius = (length(czm_viewerPositionWC) - czm_eyeHeight) - radiusAdjust; + + // Setup the primary ray: from the camera position to the vertex position. + vec3 cameraToPositionWC = positionWC - czm_viewerPositionWC; + vec3 cameraToPositionWCDirection = normalize(cameraToPositionWC); + czm_ray primaryRay = czm_ray(czm_viewerPositionWC, cameraToPositionWCDirection); + + underTranslucentGlobe = 0.0; + + // Brighten the sky atmosphere under the Earth's atmosphere when translucency is enabled. + #if defined(GLOBE_TRANSLUCENT) + + // Check for intersection with the inner radius of the atmopshere. + czm_raySegment primaryRayEarthIntersect = czm_raySphereIntersectionInterval(primaryRay, vec3(0.0), atmosphereInnerRadius + radiusAdjust); + if (primaryRayEarthIntersect.start > 0.0 && primaryRayEarthIntersect.stop > 0.0) { + + // Compute position on globe. + vec3 direction = normalize(positionWC); + czm_ray ellipsoidRay = czm_ray(positionWC, -direction); + czm_raySegment ellipsoidIntersection = czm_rayEllipsoidIntersectionInterval(ellipsoidRay, vec3(0.0), czm_ellipsoidInverseRadii); + vec3 onEarth = positionWC - (direction * ellipsoidIntersection.start); + + // Control the color using the camera angle. + float angle = dot(normalize(czm_viewerPositionWC), normalize(onEarth)); + + // Control the opacity using the distance from Earth. + opacity = interpolateByDistance(vec4(0.0, 1.0, czm_ellipsoidRadii.x, 0.0), length(czm_viewerPositionWC - onEarth)); + vec3 horizonColor = vec3(0.1, 0.2, 0.3); + vec3 nearColor = vec3(0.0); + + rayleighColor = mix(nearColor, horizonColor, exp(-angle) * opacity); + + // Set the traslucent flag to avoid alpha adjustment in computeFinalColor funciton. + underTranslucentGlobe = 1.0; + return; + } + #endif + + computeScattering( + primaryRay, + length(cameraToPositionWC), + lightDirection, + atmosphereInnerRadius, + rayleighColor, + mieColor, + opacity + ); + + // Alter the opacity based on how close the viewer is to the ground. + // (0.0 = At edge of atmosphere, 1.0 = On ground) + float cameraHeight = czm_eyeHeight + atmosphereInnerRadius; + float atmosphereOuterRadius = atmosphereInnerRadius + ATMOSPHERE_THICKNESS; + opacity = clamp((atmosphereOuterRadius - cameraHeight) / (atmosphereOuterRadius - atmosphereInnerRadius), 0.0, 1.0); + + // Alter alpha based on time of day (0.0 = night , 1.0 = day) + float nightAlpha = (u_radiiAndDynamicAtmosphereColor.z != 0.0) ? clamp(dot(normalize(positionWC), lightDirection), 0.0, 1.0) : 1.0; + opacity *= pow(nightAlpha, 0.5); +} +`;var fH=`in vec3 v_outerPositionWC; + +uniform vec3 u_hsbShift; + +#ifndef PER_FRAGMENT_ATMOSPHERE +in vec3 v_mieColor; +in vec3 v_rayleighColor; +in float v_opacity; +in float v_translucent; +#endif + +void main (void) +{ + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(v_outerPositionWC, lightEnum); + + vec3 mieColor; + vec3 rayleighColor; + float opacity; + float translucent; + + #ifdef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + v_outerPositionWC, + lightDirection, + rayleighColor, + mieColor, + opacity, + translucent + ); + #else + mieColor = v_mieColor; + rayleighColor = v_rayleighColor; + opacity = v_opacity; + translucent = v_translucent; + #endif + + vec4 color = computeAtmosphereColor(v_outerPositionWC, lightDirection, rayleighColor, mieColor, opacity); + + #ifndef HDR + color.rgb = czm_pbrNeutralTonemapping(color.rgb); + color.rgb = czm_inverseGamma(color.rgb); + #endif + + #ifdef COLOR_CORRECT + const bool ignoreBlackPixels = true; + color.rgb = czm_applyHSBShift(color.rgb, u_hsbShift, ignoreBlackPixels); + #endif + + // For the parts of the sky atmosphere that are not behind a translucent globe, + // we mix in the default opacity so that the sky atmosphere still appears at distance. + // This is needed because the opacity in the sky atmosphere is initially adjusted based + // on the camera height. + if (translucent == 0.0) { + color.a = mix(color.b, 1.0, color.a) * smoothstep(0.0, 1.0, czm_morphTime); + } + + out_FragColor = color; +} +`;var dH=`in vec4 position; + +out vec3 v_outerPositionWC; + +#ifndef PER_FRAGMENT_ATMOSPHERE +out vec3 v_mieColor; +out vec3 v_rayleighColor; +out float v_opacity; +out float v_translucent; +#endif + +void main(void) +{ + vec4 positionWC = czm_model * position; + float lightEnum = u_radiiAndDynamicAtmosphereColor.z; + vec3 lightDirection = czm_getDynamicAtmosphereLightDirection(positionWC.xyz, lightEnum); + + #ifndef PER_FRAGMENT_ATMOSPHERE + computeAtmosphereScattering( + positionWC.xyz, + lightDirection, + v_rayleighColor, + v_mieColor, + v_opacity, + v_translucent + ); + #endif + + v_outerPositionWC = positionWC.xyz; + gl_Position = czm_modelViewProjection * position; +} +`;function eS(e){e=y(e,ee.WGS84),this.show=!0,this.perFragmentAtmosphere=!1,this._ellipsoid=e;let t=1.025,n=h.multiplyByScalar(e.radii,t,new h);this._scaleMatrix=F.fromScale(n),this._modelMatrix=new F,this._command=new et({owner:this,modelMatrix:this._modelMatrix}),this._spSkyFromSpace=void 0,this._spSkyFromAtmosphere=void 0,this._flags=void 0,this.atmosphereLightIntensity=50,this.atmosphereRayleighCoefficient=new h(55e-7,13e-6,284e-7),this.atmosphereMieCoefficient=new h(21e-6,21e-6,21e-6),this.atmosphereRayleighScaleHeight=1e4,this.atmosphereMieScaleHeight=3200,this.atmosphereMieAnisotropy=.9,this.hueShift=0,this.saturationShift=0,this.brightnessShift=0,this._hueSaturationBrightness=new h;let i=new h;i.x=e.maximumRadius*t,i.y=e.maximumRadius,i.z=0,this._radiiAndDynamicAtmosphereColor=i;let o=this;this._command.uniformMap={u_radiiAndDynamicAtmosphereColor:function(){return o._radiiAndDynamicAtmosphereColor},u_hsbShift:function(){return o._hueSaturationBrightness.x=o.hueShift,o._hueSaturationBrightness.y=o.saturationShift,o._hueSaturationBrightness.z=o.brightnessShift,o._hueSaturationBrightness},u_atmosphereLightIntensity:function(){return o.atmosphereLightIntensity},u_atmosphereRayleighCoefficient:function(){return o.atmosphereRayleighCoefficient},u_atmosphereMieCoefficient:function(){return o.atmosphereMieCoefficient},u_atmosphereRayleighScaleHeight:function(){return o.atmosphereRayleighScaleHeight},u_atmosphereMieScaleHeight:function(){return o.atmosphereMieScaleHeight},u_atmosphereMieAnisotropy:function(){return o.atmosphereMieAnisotropy}}}Object.defineProperties(eS.prototype,{ellipsoid:{get:function(){return this._ellipsoid}}});eS.prototype.setDynamicLighting=function(e){this._radiiAndDynamicAtmosphereColor.z=e};var SK=new F;eS.prototype.update=function(e,t){if(!this.show)return;let n=e.mode;if(n!==ne.SCENE3D&&n!==ne.MORPHING||!e.passes.render)return;let i=F.fromRotationTranslation(e.context.uniformState.inverseViewRotation,h.ZERO,SK),o=F.multiplyTransformation(i,Mo.Y_UP_TO_Z_UP,SK),r=F.multiply(this._scaleMatrix,o,SK);F.clone(r,this._modelMatrix);let s=e.context,a=C0t(this),c=e.globeTranslucencyState.translucent,u=this.perFragmentAtmosphere||c||!l(t)||!t.show,f=this._command;if(!l(f.vertexArray)){let p=aa.createGeometry(new aa({radii:new h(1,1,1),slicePartitions:256,stackPartitions:256,vertexFormat:Pe.POSITION_ONLY}));f.vertexArray=ti.fromGeometry({context:s,geometry:p,attributeLocations:Nn.createAttributeLocations(p),bufferUsage:Fe.STATIC_DRAW}),f.renderState=Ve.fromCache({cull:{enabled:!0,face:yi.FRONT},blending:ln.ALPHA_BLEND,depthMask:!1})}let d=a|u<<2|c<<3;if(d!==this._flags){this._flags=d;let p=[];a&&p.push("COLOR_CORRECT"),u&&p.push("PER_FRAGMENT_ATMOSPHERE"),c&&p.push("GLOBE_TRANSLUCENT");let g=new Ue({defines:p,sources:[zh,aP,dH]}),m=new Ue({defines:p,sources:[zh,aP,fH]});this._spSkyAtmosphere=en.fromCache({context:s,vertexShaderSource:g,fragmentShaderSource:m}),f.shaderProgram=this._spSkyAtmosphere}return f};function C0t(e){return!(P.equalsEpsilon(e.hueShift,0,P.EPSILON7)&&P.equalsEpsilon(e.saturationShift,0,P.EPSILON7)&&P.equalsEpsilon(e.brightnessShift,0,P.EPSILON7))}eS.prototype.isDestroyed=function(){return!1};eS.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),this._spSkyAtmosphere=this._spSkyAtmosphere&&this._spSkyAtmosphere.destroy(),ue(this)};var hH=eS;var mH=`uniform samplerCube u_cubeMap; + +in vec3 v_texCoord; + +void main() +{ + vec4 color = czm_textureCube(u_cubeMap, normalize(v_texCoord)); + out_FragColor = vec4(czm_gammaCorrect(color).rgb, czm_morphTime); +} +`;var pH=`in vec3 position; +out vec3 v_texCoord; + +void main() +{ + vec3 p = czm_viewRotation * (czm_temeToPseudoFixed * (czm_entireFrustum.y * position)); + gl_Position = czm_projection * vec4(p, 1.0); + v_texCoord = position.xyz; +} +`;function nS(e){this.sources=e.sources,this._sources=void 0,this.show=y(e.show,!0),this._command=new et({modelMatrix:F.clone(F.IDENTITY),owner:this}),this._cubeMap=void 0,this._attributeLocations=void 0,this._useHdr=void 0}nS.prototype.update=function(e,t){let n=this,{mode:i,passes:o,context:r}=e;if(!this.show||i!==ne.SCENE3D&&i!==ne.MORPHING||!o.render)return;if(this._sources!==this.sources){this._sources=this.sources;let a=this.sources;typeof a.positiveX=="string"?jM(r,this._sources).then(function(c){n._cubeMap=n._cubeMap&&n._cubeMap.destroy(),n._cubeMap=c}):(this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),this._cubeMap=new Dr({context:r,source:a}))}let s=this._command;if(!l(s.vertexArray)){s.uniformMap={u_cubeMap:function(){return n._cubeMap}};let a=Ga.createGeometry(Ga.fromDimensions({dimensions:new h(2,2,2),vertexFormat:Pe.POSITION_ONLY})),c=this._attributeLocations=Nn.createAttributeLocations(a);s.vertexArray=ti.fromGeometry({context:r,geometry:a,attributeLocations:c,bufferUsage:Fe.STATIC_DRAW}),s.renderState=Ve.fromCache({blending:ln.ALPHA_BLEND})}if(!l(s.shaderProgram)||this._useHdr!==t){let a=new Ue({defines:[t?"HDR":""],sources:[mH]});s.shaderProgram=en.fromCache({context:r,vertexShaderSource:pH,fragmentShaderSource:a,attributeLocations:this._attributeLocations}),this._useHdr=t}if(l(this._cubeMap))return s};nS.prototype.isDestroyed=function(){return!1};nS.prototype.destroy=function(){let e=this._command;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._cubeMap=this._cubeMap&&this._cubeMap.destroy(),ue(this)};function tS(e){return nn(`Assets/Textures/SkyBox/tycho2t3_80_${e}.jpg`)}nS.createEarthSkyBox=function(){return new nS({sources:{positiveX:tS("px"),negativeX:tS("mx"),positiveY:tS("py"),negativeY:tS("my"),positiveZ:tS("pz"),negativeZ:tS("mz")}})};var _H=nS;var gH=`uniform sampler2D u_texture; + +in vec2 v_textureCoordinates; + +void main() +{ + vec4 color = texture(u_texture, v_textureCoordinates); + out_FragColor = czm_gammaCorrect(color); +} +`;var yH=`uniform float u_radiusTS; + +in vec2 v_textureCoordinates; + +vec2 rotate(vec2 p, vec2 direction) +{ + return vec2(p.x * direction.x - p.y * direction.y, p.x * direction.y + p.y * direction.x); +} + +vec4 addBurst(vec2 position, vec2 direction, float lengthScalar) +{ + vec2 rotatedPosition = rotate(position, direction) * vec2(25.0, 0.75); + float radius = length(rotatedPosition) * lengthScalar; + float burst = 1.0 - smoothstep(0.0, 0.55, radius); + return vec4(burst); +} + +void main() +{ + float lengthScalar = 2.0 / sqrt(2.0); + vec2 position = v_textureCoordinates - vec2(0.5); + float radius = length(position) * lengthScalar; + float surface = step(radius, u_radiusTS); + vec4 color = vec4(vec2(1.0), surface + 0.2, surface); + + float glow = 1.0 - smoothstep(0.0, 0.55, radius); + color.ba += mix(vec2(0.0), vec2(1.0), glow) * 0.75; + + vec4 burst = vec4(0.0); + + // The following loop has been manually unrolled for speed, to + // avoid sin() and cos(). + // + //for (float i = 0.4; i < 3.2; i += 1.047) { + // vec2 direction = vec2(sin(i), cos(i)); + // burst += 0.4 * addBurst(position, direction, lengthScalar); + // + // direction = vec2(sin(i - 0.08), cos(i - 0.08)); + // burst += 0.3 * addBurst(position, direction, lengthScalar); + //} + + burst += 0.4 * addBurst(position, vec2(0.38942, 0.92106), lengthScalar); // angle == 0.4 + burst += 0.4 * addBurst(position, vec2(0.99235, 0.12348), lengthScalar); // angle == 0.4 + 1.047 + burst += 0.4 * addBurst(position, vec2(0.60327, -0.79754), lengthScalar); // angle == 0.4 + 1.047 * 2.0 + + burst += 0.3 * addBurst(position, vec2(0.31457, 0.94924), lengthScalar); // angle == 0.4 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.97931, 0.20239), lengthScalar); // angle == 0.4 + 1.047 - 0.08 + burst += 0.3 * addBurst(position, vec2(0.66507, -0.74678), lengthScalar); // angle == 0.4 + 1.047 * 2.0 - 0.08 + + // End of manual loop unrolling. + + color += clamp(burst, vec4(0.0), vec4(1.0)) * 0.15; + + out_FragColor = clamp(color, vec4(0.0), vec4(1.0)); +} +`;var xH=`in vec2 direction; + +uniform float u_size; + +out vec2 v_textureCoordinates; + +void main() +{ + vec4 position; + if (czm_morphTime == 1.0) + { + position = vec4(czm_sunPositionWC, 1.0); + } + else + { + position = vec4(czm_sunPositionColumbusView.zxy, 1.0); + } + + vec4 positionEC = czm_view * position; + vec4 positionWC = czm_eyeToWindowCoordinates(positionEC); + + vec2 halfSize = vec2(u_size * 0.5); + halfSize *= ((direction * 2.0) - 1.0); + + gl_Position = czm_viewportOrthographic * vec4(positionWC.xy + halfSize, -positionWC.z, 1.0); + + v_textureCoordinates = direction; +} +`;function lP(){this.show=!0,this._drawCommand=new et({primitiveType:Le.TRIANGLES,boundingVolume:new se,owner:this}),this._commands={drawCommand:this._drawCommand,computeCommand:void 0},this._boundingVolume=new se,this._boundingVolume2D=new se,this._texture=void 0,this._drawingBufferWidth=void 0,this._drawingBufferHeight=void 0,this._radiusTS=void 0,this._size=void 0,this.glowFactor=1,this._glowFactorDirty=!1,this._useHdr=void 0;let e=this;this._uniformMap={u_texture:function(){return e._texture},u_size:function(){return e._size}}}Object.defineProperties(lP.prototype,{glowFactor:{get:function(){return this._glowFactor},set:function(e){e=Math.max(e,0),this._glowFactor=e,this._glowFactorDirty=!0}}});var E0t=new U,S0t=new U,v0t=new oe,cP=new oe;lP.prototype.update=function(e,t,n){if(!this.show)return;let i=e.mode;if(i===ne.SCENE2D||i===ne.MORPHING||!e.passes.render)return;let o=e.context,r=t.viewport.width,s=t.viewport.height;if(!l(this._texture)||r!==this._drawingBufferWidth||s!==this._drawingBufferHeight||this._glowFactorDirty||n!==this._useHdr){this._texture=this._texture&&this._texture.destroy(),this._drawingBufferWidth=r,this._drawingBufferHeight=s,this._glowFactorDirty=!1,this._useHdr=n;let S=Math.max(r,s);S=Math.pow(2,Math.ceil(Math.log(S)/Math.log(2))-2),S=Math.max(1,S);let v=n?o.halfFloatingPointTexture?Ze.HALF_FLOAT:Ze.FLOAT:Ze.UNSIGNED_BYTE;this._texture=new Ot({context:o,width:S,height:S,pixelFormat:it.RGBA,pixelDatatype:v}),this._glowLengthTS=this._glowFactor*5,this._radiusTS=1/(1+2*this._glowLengthTS)*.5;let D=this,O={u_radiusTS:function(){return D._radiusTS}};this._commands.computeCommand=new ol({fragmentShaderSource:yH,outputTexture:this._texture,uniformMap:O,persists:!1,owner:this,postExecute:function(){D._commands.computeCommand=void 0}})}let a=this._drawCommand;if(!l(a.vertexArray)){let S={direction:0},v=new Uint8Array(4*2);v[0]=0,v[1]=0,v[2]=255,v[3]=0,v[4]=255,v[5]=255,v[6]=0,v[7]=255;let D=yt.createVertexBuffer({context:o,typedArray:v,usage:Fe.STATIC_DRAW}),O=[{index:S.direction,vertexBuffer:D,componentsPerAttribute:2,normalize:!0,componentDatatype:X.UNSIGNED_BYTE}],R=yt.createIndexBuffer({context:o,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT});a.vertexArray=new ti({context:o,attributes:O,indexBuffer:R}),a.shaderProgram=en.fromCache({context:o,vertexShaderSource:xH,fragmentShaderSource:gH,attributeLocations:S}),a.renderState=Ve.fromCache({blending:ln.ALPHA_BLEND}),a.uniformMap=this._uniformMap}let c=o.uniformState.sunPositionWC,u=o.uniformState.sunPositionColumbusView,f=this._boundingVolume,d=this._boundingVolume2D;h.clone(c,f.center),d.center.x=u.z,d.center.y=u.x,d.center.z=u.y,f.radius=P.SOLAR_RADIUS+P.SOLAR_RADIUS*this._glowLengthTS,d.radius=f.radius,i===ne.SCENE3D?se.clone(f,a.boundingVolume):i===ne.COLUMBUS_VIEW&&se.clone(d,a.boundingVolume);let p=Vi.computeActualEllipsoidPosition(e,c,cP),g=h.magnitude(h.subtract(p,e.camera.position,cP)),m=o.uniformState.projection,x=v0t;x.x=0,x.y=0,x.z=-g,x.w=1;let b=F.multiplyByVector(m,x,cP),T=Vi.clipToGLWindowCoordinates(t.viewport,b,E0t);x.x=P.SOLAR_RADIUS;let A=F.multiplyByVector(m,x,cP),C=Vi.clipToGLWindowCoordinates(t.viewport,A,S0t);return this._size=U.magnitude(U.subtract(C,T,cP)),this._size=2*this._size*(1+2*this._glowLengthTS),this._size=Math.ceil(this._size),this._commands};lP.prototype.isDestroyed=function(){return!1};lP.prototype.destroy=function(){let e=this._drawCommand;return e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy(),this._texture=this._texture&&this._texture.destroy(),ue(this)};var bH=lP;var xbe=Er(YP(),1);function w0t(e,t,n){return` float clipDistance = clip(gl_FragCoord, ${e}, ${t}); + vec4 clippingPlanesEdgeColor = vec4(1.0); + clippingPlanesEdgeColor.rgb = ${n}.rgb; + float clippingPlanesEdgeWidth = ${n}.a; + if (clipDistance > 0.0 && clipDistance < clippingPlanesEdgeWidth) + { + out_FragColor = clippingPlanesEdgeColor; + } +`}var TH=w0t;var D0t={modifyFragmentShader:function(t){return t=Ue.replaceMain(t,"czm_splitter_main"),t+=`uniform float czm_splitDirection; +void main() +{ +#ifndef SHADOW_MAP + if (czm_splitDirection < 0.0 && gl_FragCoord.x > czm_splitPosition) discard; + if (czm_splitDirection > 0.0 && gl_FragCoord.x < czm_splitPosition) discard; +#endif + czm_splitter_main(); +} +`,t},addUniforms:function(t,n){n.czm_splitDirection=function(){return t.splitDirection}}},uP=D0t;var wb={NEEDS_DECODE:0,DECODING:1,READY:2,FAILED:3};function fP(e){this._parsedContent=void 0,this._drawCommand=void 0,this._isTranslucent=!1,this._styleTranslucent=!1,this._constantColor=z.clone(z.DARKGRAY),this._highlightColor=z.clone(z.WHITE),this._pointSize=1,this._rtcCenter=void 0,this._quantizedVolumeScale=void 0,this._quantizedVolumeOffset=void 0,this._styleableShaderAttributes=void 0,this._isQuantized=!1,this._isOctEncoded16P=!1,this._isRGB565=!1,this._hasColors=!1,this._hasNormals=!1,this._hasBatchIds=!1,this._decodingState=wb.READY,this._dequantizeInShader=!0,this._isQuantizedDraco=!1,this._isOctEncodedDraco=!1,this._quantizedRange=0,this._octEncodedRange=0,this.backFaceCulling=!1,this._backFaceCulling=!1,this.normalShading=!0,this._normalShading=!0,this._opaqueRenderState=void 0,this._translucentRenderState=void 0,this._mode=void 0,this._ready=!1,this._pointsLength=0,this._geometryByteLength=0,this._vertexShaderLoaded=e.vertexShaderLoaded,this._fragmentShaderLoaded=e.fragmentShaderLoaded,this._uniformMapLoaded=e.uniformMapLoaded,this._batchTableLoaded=e.batchTableLoaded,this._pickIdLoaded=e.pickIdLoaded,this._opaquePass=y(e.opaquePass,ve.OPAQUE),this._cull=y(e.cull,!0),this.style=void 0,this._style=void 0,this.styleDirty=!1,this.modelMatrix=F.clone(F.IDENTITY),this._modelMatrix=F.clone(F.IDENTITY),this.time=0,this.shadows=yn.ENABLED,this._boundingSphere=void 0,this.clippingPlanes=void 0,this.isClipped=!1,this.clippingPlanesDirty=!1,this.clippingPlanesOriginMatrix=void 0,this.attenuation=!1,this._attenuation=!1,this.geometricError=0,this.geometricErrorScale=1,this.maximumAttenuation=this._pointSize,this.splitDirection=y(e.splitDirection,zr.NONE),this._splittingEnabled=!1,this._error=void 0,I0t(this,e)}Object.defineProperties(fP.prototype,{pointsLength:{get:function(){return this._pointsLength}},geometryByteLength:{get:function(){return this._geometryByteLength}},ready:{get:function(){return this._ready}},color:{get:function(){return z.clone(this._highlightColor)},set:function(e){this._highlightColor=z.clone(e,this._highlightColor)}},boundingSphere:{get:function(){if(l(this._drawCommand))return this._drawCommand.boundingVolume},set:function(e){this._boundingSphere=se.clone(e,this._boundingSphere)}}});function I0t(e,t){let n=zA.parse(t.arrayBuffer,t.byteOffset);if(e._parsedContent=n,e._rtcCenter=n.rtcCenter,e._hasNormals=n.hasNormals,e._hasColors=n.hasColors,e._hasBatchIds=n.hasBatchIds,e._isTranslucent=n.isTranslucent,!n.hasBatchIds&&l(n.batchTableBinary)&&(n.styleableProperties=J_.getBinaryProperties(n.pointsLength,n.batchTableJson,n.batchTableBinary)),l(n.draco)){let a=n.draco;e._decodingState=wb.NEEDS_DECODE,a.dequantizeInShader=e._dequantizeInShader}let i=n.positions;l(i)&&(e._isQuantized=i.isQuantized,e._quantizedVolumeScale=i.quantizedVolumeScale,e._quantizedVolumeOffset=i.quantizedVolumeOffset,e._quantizedRange=i.quantizedRange);let o=n.normals;l(o)&&(e._isOctEncoded16P=o.octEncoded);let r=n.colors;l(r)&&(l(r.constantColor)&&(e._constantColor=z.clone(r.constantColor,e._constantColor),e._hasColors=!1),e._isRGB565=r.isRGB565);let s=n.batchIds;l(n.batchIds)&&(s.name="BATCH_ID",s.semantic="BATCH_ID",s.setIndex=void 0),n.hasBatchIds&&e._batchTableLoaded(n.batchLength,n.batchTableJson,n.batchTableBinary),e._pointsLength=n.pointsLength}var P0t=new h,R0t=new h,O0t=new h,gbe,AH;function M0t(e){if(!l(AH)){gbe=new xbe.default(0),AH=new Array(e);for(let t=0;t<e;++t)AH[t]=gbe.random()}return AH}function L0t(e){let n=e.length/3,i=Math.min(n,20),o=M0t(20),r=Number.MAX_VALUE,s=-Number.MAX_VALUE,a=h.fromElements(r,r,r,P0t),c=h.fromElements(s,s,s,R0t);for(let f=0;f<i;++f){let d=Math.floor(o[f]*n),p=h.unpack(e,d*3,O0t);h.minimumByComponent(a,p,a),h.maximumByComponent(c,p,c)}let u=se.fromCornerPoints(a,c);return u.radius+=P.EPSILON2,u}function ybe(e,t){let n=X.fromTypedArray(e);return n===X.INT||n===X.UNSIGNED_INT||n===X.DOUBLE?(At("Cast pnts property to floats",`Point cloud property "${t}" will be cast to a float array because INT, UNSIGNED_INT, and DOUBLE are not valid WebGL vertex attribute types. Some precision may be lost.`),new Float32Array(e)):e}var N0t=new oe,F0t=new oe,B0t=new z,bbe=0,CH=1,PK=2,Tbe=3,k0t=4,vK=new F,V0t=new F;function U0t(e,t){let n=t.context,i=e._parsedContent,o=e._pointsLength,r=i.positions,s=i.colors,a=i.normals,c=i.batchIds,u=i.styleableProperties,f=l(u),d=e._isQuantized,p=e._isQuantizedDraco,g=e._isOctEncoded16P,m=e._isOctEncodedDraco,x=e._quantizedRange,b=e._octEncodedRange,T=e._isRGB565,A=e._isTranslucent,C=e._hasColors,S=e._hasNormals,v=e._hasBatchIds,D,O,R=[],M={};if(e._styleableShaderAttributes=M,f){let V=k0t;for(let G in u)if(u.hasOwnProperty(G)){let k=u[G],W=ybe(k.typedArray,G);D=k.componentCount,O=X.fromTypedArray(W);let q=yt.createVertexBuffer({context:n,typedArray:W,usage:Fe.STATIC_DRAW});e._geometryByteLength+=q.sizeInBytes;let J={index:V,vertexBuffer:q,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0};R.push(J),M[G]={location:V,componentCount:D},++V}}let L=yt.createVertexBuffer({context:n,typedArray:r.typedArray,usage:Fe.STATIC_DRAW});e._geometryByteLength+=L.sizeInBytes;let _;C&&(_=yt.createVertexBuffer({context:n,typedArray:s.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=_.sizeInBytes);let E;S&&(E=yt.createVertexBuffer({context:n,typedArray:a.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=E.sizeInBytes);let w;v&&(c.typedArray=ybe(c.typedArray,"batchIds"),w=yt.createVertexBuffer({context:n,typedArray:c.typedArray,usage:Fe.STATIC_DRAW}),e._geometryByteLength+=w.sizeInBytes);let I=[];if(d?O=X.UNSIGNED_SHORT:p?O=x<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT:O=X.FLOAT,I.push({index:bbe,vertexBuffer:L,componentsPerAttribute:3,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0}),e._cull&&(d||p?e._boundingSphere=se.fromCornerPoints(h.ZERO,e._quantizedVolumeScale):e._boundingSphere=L0t(r.typedArray)),C)if(T)I.push({index:CH,vertexBuffer:_,componentsPerAttribute:1,componentDatatype:X.UNSIGNED_SHORT,normalize:!1,offsetInBytes:0,strideInBytes:0});else{let V=A?4:3;I.push({index:CH,vertexBuffer:_,componentsPerAttribute:V,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,offsetInBytes:0,strideInBytes:0})}S&&(g?(D=2,O=X.UNSIGNED_BYTE):m?(D=2,O=b<=255?X.UNSIGNED_BYTE:X.UNSIGNED_SHORT):(D=3,O=X.FLOAT),I.push({index:PK,vertexBuffer:E,componentsPerAttribute:D,componentDatatype:O,normalize:!1,offsetInBytes:0,strideInBytes:0})),v&&I.push({index:Tbe,vertexBuffer:w,componentsPerAttribute:1,componentDatatype:X.fromTypedArray(c.typedArray),normalize:!1,offsetInBytes:0,strideInBytes:0}),f&&(I=I.concat(R));let N=new ti({context:n,attributes:I}),B={depthTest:{enabled:!0}},H={depthTest:{enabled:!0},depthMask:!1,blending:ln.ALPHA_BLEND};e._opaquePass===ve.CESIUM_3D_TILE&&(B.stencilTest=Ht.setCesium3DTileBit(),B.stencilMask=Ht.CESIUM_3D_TILE_MASK,H.stencilTest=Ht.setCesium3DTileBit(),H.stencilMask=Ht.CESIUM_3D_TILE_MASK),e._opaqueRenderState=Ve.fromCache(B),e._translucentRenderState=Ve.fromCache(H),e._drawCommand=new et({boundingVolume:new se,cull:e._cull,modelMatrix:new F,primitiveType:Le.POINTS,vertexArray:N,count:o,shaderProgram:void 0,uniformMap:void 0,renderState:A?e._translucentRenderState:e._opaqueRenderState,pass:A?ve.TRANSLUCENT:e._opaquePass,owner:e,castShadows:!1,receiveShadows:!1,pickId:e._pickIdLoaded()})}function z0t(e,t){let n=t.context,i=e._isQuantized,o=e._isQuantizedDraco,r=e._isOctEncodedDraco,s={u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier:function(){let a=N0t;if(a.x=e._attenuation?e.maximumAttenuation:e._pointSize,a.x*=t.pixelRatio,a.y=e.time,e._attenuation){let c=t.camera.frustum,u;t.mode===ne.SCENE2D||c instanceof rn?u=Number.POSITIVE_INFINITY:u=n.drawingBufferHeight/t.camera.frustum.sseDenominator,a.z=e.geometricError*e.geometricErrorScale,a.w=u}return a},u_highlightColor:function(){return e._highlightColor},u_constantColor:function(){return e._constantColor},u_clippingPlanes:function(){let a=e.clippingPlanes;return e.isClipped?a.texture:n.defaultTexture},u_clippingPlanesEdgeStyle:function(){let a=e.clippingPlanes;if(!l(a))return z.TRANSPARENT;let c=z.clone(a.edgeColor,B0t);return c.alpha=a.edgeWidth,c},u_clippingPlanesMatrix:function(){let a=e.clippingPlanes;if(!l(a))return F.IDENTITY;let c=y(e.clippingPlanesOriginMatrix,e._modelMatrix);F.multiply(n.uniformState.view3D,c,vK);let u=F.multiply(vK,a.modelMatrix,vK);return F.inverseTranspose(u,V0t)}};uP.addUniforms(e,s),(i||o||r)&&(s=xt(s,{u_quantizedVolumeScaleAndOctEncodedRange:function(){let a=F0t;if(l(e._quantizedVolumeScale)){let c=h.clone(e._quantizedVolumeScale,a);h.divideByScalar(c,e._quantizedRange,a)}return a.w=e._octEncodedRange,a}})),l(e._uniformMapLoaded)&&(s=e._uniformMapLoaded(s)),e._drawCommand.uniformMap=s}function wK(e,t){let n=/czm_3dtiles_property_(\d+)/g,i=n.exec(e);for(;i!==null;){let o=parseInt(i[1]);t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function DK(e,t){e=e.slice(e.indexOf(` +`));let n=/czm_3dtiles_builtin_property_(\w+)/g,i=n.exec(e);for(;i!==null;){let o=i[1];t.indexOf(o)===-1&&t.push(o),i=n.exec(e)}}function IK(e,t){let n=e.numberOfAttributes;for(let i=0;i<n;++i){let o=e.getAttribute(i);if(o.index===t)return o}}var H0t={POSITION:"czm_3dtiles_builtin_property_POSITION",POSITION_ABSOLUTE:"czm_3dtiles_builtin_property_POSITION_ABSOLUTE",COLOR:"czm_3dtiles_builtin_property_COLOR",NORMAL:"czm_3dtiles_builtin_property_NORMAL"};function G0t(e,t,n){let i,o,r,s=t.context,a=l(n),c=e._isQuantized,u=e._isQuantizedDraco,f=e._isOctEncoded16P,d=e._isOctEncodedDraco,p=e._isRGB565,g=e._isTranslucent,m=e._hasColors,x=e._hasNormals,b=e._hasBatchIds,T=e._backFaceCulling,A=e._normalShading,C=e._drawCommand.vertexArray,S=e.clippingPlanes,v=e._attenuation,D,O,R,M=g,L=Ge(H0t),_={},E=e._styleableShaderAttributes;for(o in E)E.hasOwnProperty(o)&&(r=E[o],L[o]=`czm_3dtiles_property_${r.location}`,_[r.location]=r);if(a){let ae={translucent:!1},_e="(vec3 czm_3dtiles_builtin_property_POSITION, vec3 czm_3dtiles_builtin_property_POSITION_ABSOLUTE, vec4 czm_3dtiles_builtin_property_COLOR, vec3 czm_3dtiles_builtin_property_NORMAL)";D=n.getColorShaderFunction(`getColorFromStyle${_e}`,L,ae),O=n.getShowShaderFunction(`getShowFromStyle${_e}`,L,ae),R=n.getPointSizeShaderFunction(`getPointSizeFromStyle${_e}`,L,ae),l(D)&&ae.translucent&&(M=!0)}e._styleTranslucent=M;let w=l(D),I=l(O),N=l(R),B=e.isClipped,H=[],V=[];w&&(wK(D,H),DK(D,V)),I&&(wK(O,H),DK(O,V)),N&&(wK(R,H),DK(R,V));let G=V.indexOf("COLOR")>=0,k=V.indexOf("NORMAL")>=0;if(k&&!x)throw new ce("Style references the NORMAL semantic but the point cloud does not have normals");for(o in E)if(E.hasOwnProperty(o)){r=E[o];let ae=H.indexOf(r.location)>=0,_e=IK(C,r.location);_e.enabled=ae}let W=m&&(!w||G);if(m){let ae=IK(C,CH);ae.enabled=W}let q=x&&(A||T||k);if(x){let ae=IK(C,PK);ae.enabled=q}let J={a_position:bbe};W&&(J.a_color=CH),q&&(J.a_normal=PK),b&&(J.a_batchId=Tbe);let j="",Z=H.length;for(i=0;i<Z;++i){let ae=H[i];r=_[ae];let _e=r.componentCount,xe=`czm_3dtiles_property_${ae}`,Ie;_e===1?Ie="float":Ie=`vec${_e}`,j+=`in ${Ie} ${xe}; +`,J[xe]=r.location}z0t(e,t);let Q=`in vec3 a_position; +out vec4 v_color; +uniform vec4 u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier; +uniform vec4 u_constantColor; +uniform vec4 u_highlightColor; +`;Q+=`float u_pointSize; +float tiles3d_tileset_time; +`,v&&(Q+=`float u_geometricError; +float u_depthMultiplier; +`),Q+=j,W&&(g?Q+=`in vec4 a_color; +`:p?Q+=`in float a_color; +const float SHIFT_RIGHT_11 = 1.0 / 2048.0; +const float SHIFT_RIGHT_5 = 1.0 / 32.0; +const float SHIFT_LEFT_11 = 2048.0; +const float SHIFT_LEFT_5 = 32.0; +const float NORMALIZE_6 = 1.0 / 64.0; +const float NORMALIZE_5 = 1.0 / 32.0; +`:Q+=`in vec3 a_color; +`),q&&(f||d?Q+=`in vec2 a_normal; +`:Q+=`in vec3 a_normal; +`),b&&(Q+=`in float a_batchId; +`),(c||u||d)&&(Q+=`uniform vec4 u_quantizedVolumeScaleAndOctEncodedRange; +`),w&&(Q+=D),I&&(Q+=O),N&&(Q+=R),Q+=`void main() +{ + u_pointSize = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.x; + tiles3d_tileset_time = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.y; +`,v&&(Q+=` u_geometricError = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.z; + u_depthMultiplier = u_pointSizeAndTimeAndGeometricErrorAndDepthMultiplier.w; +`),W?g?Q+=` vec4 color = a_color; +`:p?Q+=` float compressed = a_color; + float r = floor(compressed * SHIFT_RIGHT_11); + compressed -= r * SHIFT_LEFT_11; + float g = floor(compressed * SHIFT_RIGHT_5); + compressed -= g * SHIFT_LEFT_5; + float b = compressed; + vec3 rgb = vec3(r * NORMALIZE_5, g * NORMALIZE_6, b * NORMALIZE_5); + vec4 color = vec4(rgb, 1.0); +`:Q+=` vec4 color = vec4(a_color, 1.0); +`:Q+=` vec4 color = u_constantColor; +`,c||u?Q+=` vec3 position = a_position * u_quantizedVolumeScaleAndOctEncodedRange.xyz; +`:Q+=` vec3 position = a_position; +`,Q+=` vec3 position_absolute = vec3(czm_model * vec4(position, 1.0)); +`,q?(f?Q+=` vec3 normal = czm_octDecode(a_normal); +`:d?Q+=` vec3 normal = czm_octDecode(a_normal, u_quantizedVolumeScaleAndOctEncodedRange.w).zxy; +`:Q+=` vec3 normal = a_normal; +`,Q+=` vec3 normalEC = czm_normal * normal; +`):Q+=` vec3 normal = vec3(1.0); +`,w&&(Q+=` color = getColorFromStyle(position, position_absolute, color, normal); +`),I&&(Q+=` float show = float(getShowFromStyle(position, position_absolute, color, normal)); +`),N?Q+=` gl_PointSize = getPointSizeFromStyle(position, position_absolute, color, normal) * czm_pixelRatio; +`:v?Q+=` vec4 positionEC = czm_modelView * vec4(position, 1.0); + float depth = -positionEC.z; + gl_PointSize = min((u_geometricError / depth) * u_depthMultiplier, u_pointSize); +`:Q+=` gl_PointSize = u_pointSize; +`,Q+=` color = color * u_highlightColor; +`,q&&A&&(Q+=` float diffuseStrength = czm_getLambertDiffuse(czm_lightDirectionEC, normalEC); + diffuseStrength = max(diffuseStrength, 0.4); + color.xyz *= diffuseStrength * czm_lightColor; +`),Q+=` v_color = color; + gl_Position = czm_modelViewProjection * vec4(position, 1.0); +`,q&&T&&(Q+=` float visible = step(-normalEC.z, 0.0); + gl_Position *= visible; + gl_PointSize *= visible; +`),I&&(Q+=` gl_Position.w *= float(show); + gl_PointSize *= float(show); +`),Q+=`} +`;let de=`in vec4 v_color; +`;B&&(de+=`uniform highp sampler2D u_clippingPlanes; +uniform mat4 u_clippingPlanesMatrix; +uniform vec4 u_clippingPlanesEdgeStyle; +`,de+=` +`,de+=Ly(S,s),de+=` +`),de+=`void main() +{ + out_FragColor = czm_gammaCorrect(v_color); +`,B&&(de+=TH("u_clippingPlanes","u_clippingPlanesMatrix","u_clippingPlanesEdgeStyle")),de+=`} +`,e.splitDirection!==zr.NONE&&(de=uP.modifyFragmentShader(de)),l(e._vertexShaderLoaded)&&(Q=e._vertexShaderLoaded(Q)),l(e._fragmentShaderLoaded)&&(de=e._fragmentShaderLoaded(de));let ye=e._drawCommand;l(ye.shaderProgram)&&ye.shaderProgram.destroy(),ye.shaderProgram=en.fromCache({context:s,vertexShaderSource:Q,fragmentShaderSource:de,attributeLocations:J});try{ye.shaderProgram._bind()}catch{throw new ce("Error generating style shader: this may be caused by a type mismatch, index out-of-bounds, or other syntax error.")}}function W0t(e,t){if(e._decodingState===wb.READY)return!1;if(e._decodingState===wb.NEEDS_DECODE){let n=e._parsedContent,i=n.draco,o=cg.decodePointCloud(i,t);l(o)&&(e._decodingState=wb.DECODING,o.then(function(r){e._decodingState=wb.READY;let s=l(r.POSITION)?r.POSITION.array:void 0,a=l(r.RGB)?r.RGB.array:void 0,c=l(r.RGBA)?r.RGBA.array:void 0,u=l(r.NORMAL)?r.NORMAL.array:void 0,f=l(r.BATCH_ID)?r.BATCH_ID.array:void 0,d=l(s)&&l(r.POSITION.data.quantization),p=l(u)&&l(r.NORMAL.data.quantization);if(d){let b=r.POSITION.data.quantization,T=b.range;e._quantizedVolumeScale=h.fromElements(T,T,T),e._quantizedVolumeOffset=h.unpack(b.minValues),e._quantizedRange=(1<<b.quantizationBits)-1,e._isQuantizedDraco=!0}p&&(e._octEncodedRange=(1<<r.NORMAL.data.quantization.quantizationBits)-1,e._isOctEncodedDraco=!0);let g=n.styleableProperties,m=i.batchTableProperties;for(let b in m)if(m.hasOwnProperty(b)){let T=r[b];l(g)||(g={}),g[b]={typedArray:T.array,componentCount:T.data.componentsPerAttribute}}l(s)&&(n.positions={typedArray:s});let x=y(c,a);l(x)&&(n.colors={typedArray:x}),l(u)&&(n.normals={typedArray:u}),l(f)&&(n.batchIds={typedArray:f}),n.styleableProperties=g}).catch(function(r){e._decodingState=wb.FAILED,e._error=r}))}return!0}var j0t=new oe,q0t=new h;fP.prototype.update=function(e){let t=e.context;if(l(this._error)){let u=this._error;throw this._error=void 0,u}if(W0t(this,t))return;let i=!1,o=!F.equals(this._modelMatrix,this.modelMatrix);if(this._mode!==e.mode&&(this._mode=e.mode,o=!0),l(this._drawCommand)||(U0t(this,e),o=!0,i=!0,this._ready=!0,this._parsedContent=void 0),o){F.clone(this.modelMatrix,this._modelMatrix);let u=this._drawCommand.modelMatrix;if(F.clone(this._modelMatrix,u),l(this._rtcCenter)&&F.multiplyByTranslation(u,this._rtcCenter,u),l(this._quantizedVolumeOffset)&&F.multiplyByTranslation(u,this._quantizedVolumeOffset,u),e.mode!==ne.SCENE3D){let d=e.mapProjection,p=F.getColumn(u,3,j0t);oe.equals(p,oe.UNIT_W)||Nt.basisTo2D(d,u,u)}let f=this._drawCommand.boundingVolume;if(se.clone(this._boundingSphere,f),this._cull){let d=f.center;F.multiplyByPoint(u,d,d);let p=F.getScale(u,q0t);f.radius*=h.maximumComponent(p)}}this.clippingPlanesDirty&&(this.clippingPlanesDirty=!1,i=!0),this._attenuation!==this.attenuation&&(this._attenuation=this.attenuation,i=!0),this.backFaceCulling!==this._backFaceCulling&&(this._backFaceCulling=this.backFaceCulling,i=!0),this.normalShading!==this._normalShading&&(this._normalShading=this.normalShading,i=!0),(this._style!==this.style||this.styleDirty)&&(this._style=this.style,this.styleDirty=!1,i=!0);let r=this.splitDirection!==zr.NONE;this._splittingEnabled!==r&&(this._splittingEnabled=r,i=!0),i&&G0t(this,e,this._style),this._drawCommand.castShadows=yn.castShadows(this.shadows),this._drawCommand.receiveShadows=yn.receiveShadows(this.shadows);let s=this._highlightColor.alpha<1||this._constantColor.alpha<1||this._styleTranslucent;this._drawCommand.renderState=s?this._translucentRenderState:this._opaqueRenderState,this._drawCommand.pass=s?ve.TRANSLUCENT:this._opaquePass;let a=e.commandList,c=e.passes;(c.render||c.pick)&&a.push(this._drawCommand)};fP.prototype.isDestroyed=function(){return!1};fP.prototype.destroy=function(){let e=this._drawCommand;return l(e)&&(e.vertexArray=e.vertexArray&&e.vertexArray.destroy(),e.shaderProgram=e.shaderProgram&&e.shaderProgram.destroy()),ue(this)};var EH=fP;function Ib(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this.shadows=y(e.shadows,yn.ENABLED),this.maximumMemoryUsage=y(e.maximumMemoryUsage,256),this.shading=new bp(e.shading),this.style=e.style,this.frameFailed=new me,this.frameChanged=new me,this._clock=e.clock,this._intervals=e.intervals,this._clippingPlanes=void 0,this.clippingPlanes=e.clippingPlanes,this._pointCloudEyeDomeLighting=new vg,this._loadTimestamp=void 0,this._clippingPlanesState=0,this._styleDirty=!1,this._pickId=void 0,this._totalMemoryUsageInBytes=0,this._frames=[],this._previousInterval=void 0,this._nextInterval=void 0,this._lastRenderedFrame=void 0,this._clockMultiplier=0,this._runningSum=0,this._runningLength=0,this._runningIndex=0,this._runningSamples=new Array(5).fill(0),this._runningAverage=0}Object.defineProperties(Ib.prototype,{clippingPlanes:{get:function(){return this._clippingPlanes},set:function(e){bs.setOwner(e,this,"_clippingPlanes")}},totalMemoryUsageInBytes:{get:function(){return this._totalMemoryUsageInBytes}},boundingSphere:{get:function(){if(l(this._lastRenderedFrame))return this._lastRenderedFrame.pointCloud.boundingSphere}}});function Y0t(e){return`uniform vec4 czm_pickColor; +${e}`}function X0t(e){return function(t){return xt(t,{czm_pickColor:function(){return e._pickId.color}})}}function K0t(){return"czm_pickColor"}Ib.prototype.makeStyleDirty=function(){this._styleDirty=!0};Ib.prototype._getAverageLoadTime=function(){return this._runningLength===0?.05:this._runningAverage};var Z0t=new K;function OK(e){let t=e._clock,n=t.canAnimate&&t.shouldAnimate,i=t.multiplier;return n?i:0}function Db(e,t){return e._intervals.indexOf(t.start)}function $0t(e,t){let n=e._intervals,i=e._clock,o=OK(e);if(o===0)return;let r=e._getAverageLoadTime(),s=K.addSeconds(i.currentTime,r*o,Z0t),a=n.indexOf(s),c=Db(e,t);return a===c&&(o>=0?++a:--a),n.get(a)}function Q0t(e){let t=e._intervals,i=e._clock.currentTime,o=t.indexOf(i);return t.get(o)}function J0t(e,t,n){let i=OK(e),o=Db(e,t),r=Db(e,n);return i>=0?o>=r:o<=r}function Cbe(e,t){return function(n){let i=l(n.message)?n.message:n.toString();e.frameFailed.numberOfListeners>0?e.frameFailed.raiseEvent({uri:t,message:i}):(console.log(`A frame failed to load: ${t}`),console.log(`Error: ${i}`))}}function ext(e,t,n){let i=Db(e,t),o=e._frames,r=o[i];if(!l(r)){let s=t.data.transform,a=l(s)?F.fromArray(s):void 0,c=t.data.uri;r={pointCloud:void 0,transform:a,timestamp:Ti(),sequential:!0,ready:!1,touchedFrameNumber:n.frameNumber,uri:c},o[i]=r,De.fetchArrayBuffer({url:c}).then(function(u){r.pointCloud=new EH({arrayBuffer:u,cull:!0,fragmentShaderLoaded:Y0t,uniformMapLoaded:X0t(e),pickIdLoaded:K0t})}).catch(Cbe(e,c))}return r}function txt(e,t){e._runningSum+=t,e._runningSum-=e._runningSamples[e._runningIndex],e._runningSamples[e._runningIndex]=t,e._runningLength=Math.min(e._runningLength+1,e._runningSamples.length),e._runningIndex=(e._runningIndex+1)%e._runningSamples.length,e._runningAverage=e._runningSum/e._runningLength}function nxt(e,t,n,i){t.touchedFrameNumber<i.frameNumber-1&&(t.sequential=!1);let o=t.pointCloud;if(l(o)&&!t.ready){let r=i.commandList,s=r.length;if(Ebe(e,t,n,i),o.ready&&(t.ready=!0,e._totalMemoryUsageInBytes+=o.geometryByteLength,r.length=s,t.sequential)){let a=(Ti()-t.timestamp)/1e3;txt(e,a)}}t.touchedFrameNumber=i.frameNumber}var ixt=new F;function oxt(e,t){let n=e.shading;return l(n)&&l(n.baseResolution)?n.baseResolution:l(t.boundingSphere)?P.cbrt(t.boundingSphere.volume()/t.pointsLength):0}function rxt(e){let t=e.shading;return l(t)&&l(t.maximumAttenuation)?t.maximumAttenuation:10}var sxt=new bp;function Ebe(e,t,n,i){let o=y(e.shading,sxt),r=t.pointCloud,s=y(t.transform,F.IDENTITY);r.modelMatrix=F.multiplyTransformation(e.modelMatrix,s,ixt),r.style=e.style,r.time=n.timeSinceLoad,r.shadows=e.shadows,r.clippingPlanes=e._clippingPlanes,r.isClipped=n.isClipped,r.attenuation=o.attenuation,r.backFaceCulling=o.backFaceCulling,r.normalShading=o.normalShading,r.geometricError=oxt(e,r),r.geometricErrorScale=o.geometricErrorScale,r.maximumAttenuation=rxt(e);try{r.update(i)}catch(a){Cbe(e,t.uri)(a)}t.touchedFrameNumber=i.frameNumber}function RK(e,t,n,i){let o=ext(e,t,i);nxt(e,o,n,i)}function axt(e){return function(t){return t.touchedFrameNumber<e.frameNumber}}function Sbe(e,t){let n=e._frames,i=n.length;for(let o=0;o<i;++o){let r=n[o];if(l(r)&&(!l(t)||t(r))){let s=r.pointCloud;r.ready&&(e._totalMemoryUsageInBytes-=s.geometryByteLength),l(s)&&s.destroy(),r===e._lastRenderedFrame&&(e._lastRenderedFrame=void 0),n[o]=void 0}}}function cxt(e,t){let n=Db(e,t),i=e._frames[n];if(l(i)&&i.ready)return i}function Abe(e,t,n,i,o){return l(n)?n.ready?!0:(RK(e,t,i,o),n.ready):!1}function lxt(e,t,n,i,o){let r,s,a,c=e._intervals,u=e._frames,f=Db(e,n),d=Db(e,t);if(f>=d){for(r=f;r>=d;--r)if(s=c.get(r),a=u[r],Abe(e,s,a,i,o))return s}else for(r=f;r<=d;++r)if(s=c.get(r),a=u[r],Abe(e,s,a,i,o))return s;return t}function uxt(e,t,n){let i=e._frames,o=i.length;for(let r=0;r<o;++r){let s=i[r];l(s)&&l(s.pointCloud)&&(s.pointCloud.clippingPlanesDirty=t,s.pointCloud.styleDirty=n)}}var iS={timeSinceLoad:0,isClipped:!1,clippingPlanesDirty:!1};Ib.prototype.update=function(e){if(e.mode===ne.MORPHING||!this.show)return;l(this._pickId)||(this._pickId=e.context.createPickId({primitive:this})),l(this._loadTimestamp)||(this._loadTimestamp=K.clone(e.time));let t=Math.max(K.secondsDifference(e.time,this._loadTimestamp)*1e3,0),n=this._clippingPlanes,i=0,o=!1,r=l(n)&&n.enabled;r&&(n.update(e),i=n.clippingPlanesState),this._clippingPlanesState!==i&&(this._clippingPlanesState=i,o=!0);let s=this._styleDirty;this._styleDirty=!1,(o||s)&&uxt(this,o,s),iS.timeSinceLoad=t,iS.isClipped=r;let a=this.shading,c=this._pointCloudEyeDomeLighting,u=e.commandList,f=u.length,d=this._previousInterval,p=this._nextInterval,g=Q0t(this);if(!l(g))return;let m=!1,x=OK(this),b=x===0;x!==this._clockMultiplier&&(m=!0,this._clockMultiplier=x),(!l(d)||b)&&(d=g),(!l(p)||m||J0t(this,g,p))&&(p=$0t(this,g)),d=lxt(this,d,g,iS,e);let T=cxt(this,d);l(T)||(RK(this,d,iS,e),T=this._lastRenderedFrame),l(T)&&Ebe(this,T,iS,e),l(p)&&RK(this,p,iS,e);let A=this;l(T)&&!l(this._lastRenderedFrame)&&e.afterRender.push(function(){return!0}),l(T)&&T!==this._lastRenderedFrame&&A.frameChanged.numberOfListeners>0&&e.afterRender.push(function(){return A.frameChanged.raiseEvent(A),!0}),this._previousInterval=d,this._nextInterval=p,this._lastRenderedFrame=T;let C=this._totalMemoryUsageInBytes,S=this.maximumMemoryUsage*1024*1024;C>S&&Sbe(this,axt(e));let D=u.length-f;l(a)&&a.attenuation&&a.eyeDomeLighting&&D>0&&c.update(e,f,a,this.boundingSphere)};Ib.prototype.isDestroyed=function(){return!1};Ib.prototype.destroy=function(){return Sbe(this),this._clippingPlanes=this._clippingPlanes&&this._clippingPlanes.destroy(),this._pickId=this._pickId&&this._pickId.destroy(),ue(this)};var dP=Ib;function vbe(e,t){if(l(t)){let n=t.clock;l(n)&&n.getValue(e)}}function fxt(e){e._renderLoopRunning=!0;let t=0;function n(i){if(!e.isDestroyed())if(e._useDefaultRenderLoop)try{let o=e._targetFrameRate;if(!l(o))e.resize(),e.render(),requestAnimationFrame(n);else{let r=1e3/o,s=i-t;s>r&&(e.resize(),e.render(),t=i-s%r),requestAnimationFrame(n)}}catch(o){e._useDefaultRenderLoop=!1,e._renderLoopRunning=!1,e._showRenderLoopErrors&&e.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,o)}else e._renderLoopRunning=!1}requestAnimationFrame(n)}function wbe(e){let t=e._useBrowserRecommendedResolution?1:window.devicePixelRatio;return t*=e._resolutionScale,l(e._scene)&&(e._scene.pixelRatio=t),t}function Dbe(e){let t=e._canvas,n=t.clientWidth,i=t.clientHeight,o=wbe(e);e._canvasClientWidth=n,e._canvasClientHeight=i,n*=o,i*=o,t.width=n,t.height=i,e._canRender=n!==0&&i!==0,e._lastDevicePixelRatio=window.devicePixelRatio}function Ibe(e){let t=e._canvas,n=t.width,i=t.height;if(n!==0&&i!==0){let o=e._scene.camera.frustum;l(o.aspectRatio)?o.aspectRatio=n/i:(o.top=o.right*(i/n),o.bottom=-o.top)}}function Co(e,t){e=Rn(e),t=y(t,y.EMPTY_OBJECT);let n=document.createElement("div");n.className="cesium-widget",e.appendChild(n);let i=document.createElement("canvas"),o=jt.supportsImageRenderingPixelated();this._supportsImageRenderingPixelated=o,o&&(i.style.imageRendering=jt.imageRenderingValue()),i.oncontextmenu=function(){return!1},i.onselectstart=function(){return!1};function r(){i!==i.ownerDocument.activeElement&&i.ownerDocument.activeElement.blur()}y(t.blurActiveElementOnCanvasFocus,!0)&&(i.addEventListener("mousedown",r),i.addEventListener("pointerdown",r)),n.appendChild(i);let a=document.createElement("div");a.className="cesium-widget-credits";let c=l(t.creditContainer)?Rn(t.creditContainer):n;c.appendChild(a);let u=l(t.creditViewport)?Rn(t.creditViewport):n,f=y(t.showRenderLoopErrors,!0),d=y(t.useBrowserRecommendedResolution,!0);this._element=n,this._container=e,this._canvas=i,this._canvasClientWidth=0,this._canvasClientHeight=0,this._lastDevicePixelRatio=0,this._creditViewport=u,this._creditContainer=c,this._innerCreditContainer=a,this._canRender=!1,this._renderLoopRunning=!1,this._showRenderLoopErrors=f,this._resolutionScale=1,this._useBrowserRecommendedResolution=d,this._forceResize=!1,this._entityView=void 0,this._clockTrackedDataSource=void 0,this._trackedEntity=void 0,this._needTrackedEntityUpdate=!1,this._zoomIsFlight=!1,this._zoomTarget=void 0,this._zoomPromise=void 0,this._zoomOptions=void 0,this._trackedEntityChanged=new me,this._allowDataSourcesToSuspendAnimation=!0,this._clock=l(t.clock)?t.clock:new tm,l(t.shouldAnimate)&&(this._clock.shouldAnimate=t.shouldAnimate),Dbe(this);try{let p=y(t.ellipsoid,ee.default),g=new uH({canvas:i,contextOptions:t.contextOptions,creditContainer:a,creditViewport:u,ellipsoid:p,mapProjection:t.mapProjection,orderIndependentTranslucency:t.orderIndependentTranslucency,scene3DOnly:y(t.scene3DOnly,!1),shadows:t.shadows,mapMode2D:t.mapMode2D,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples});this._scene=g,g.camera.constrainedAxis=h.UNIT_Z,wbe(this),Ibe(this);let m=t.globe;l(m)||(m=new UU(p)),m!==!1&&(g.globe=m,g.globe.shadows=y(t.terrainShadows,yn.RECEIVE_ONLY));let x=t.skyBox;!l(x)&&ee.WGS84.equals(p)&&(x=_H.createEarthSkyBox()),x!==!1&&(g.skyBox=x,g.sun=new bH,ee.WGS84.equals(p)&&(g.moon=new XU));let b=t.skyAtmosphere;!l(b)&&ee.WGS84.equals(p)&&(b=new hH(p),b.show=t.globe!==!1&&m.show),b!==!1&&(g.skyAtmosphere=b);let T=t.baseLayer;t.globe!==!1&&T!==!1&&(l(T)||(T=ac.fromWorldImagery()),g.imageryLayers.add(T)),l(t.terrainProvider)&&t.globe!==!1&&(g.terrainProvider=t.terrainProvider),l(t.terrain)&&t.globe!==!1&&g.setTerrain(t.terrain),this._screenSpaceEventHandler=new Hf(i),l(t.sceneMode)&&(t.sceneMode===ne.SCENE2D&&this._scene.morphTo2D(0),t.sceneMode===ne.COLUMBUS_VIEW&&this._scene.morphToColumbusView(0)),this._useDefaultRenderLoop=void 0,this.useDefaultRenderLoop=y(t.useDefaultRenderLoop,!0),this._targetFrameRate=void 0,this.targetFrameRate=t.targetFrameRate;let A=this;this._onRenderError=function(R,M){A._useDefaultRenderLoop=!1,A._renderLoopRunning=!1,A._showRenderLoopErrors&&A.showErrorPanel("An error occurred while rendering. Rendering has stopped.",void 0,M)},g.renderError.addEventListener(this._onRenderError);let C=t.dataSources,S=!1;l(C)||(C=new D3,S=!0);let v=new _k({scene:g,dataSourceCollection:C}),D=new _r;this._dataSourceChangedListeners={},this._automaticallyTrackDataSourceClocks=t.automaticallyTrackDataSourceClocks??!0,this._dataSourceCollection=C,this._destroyDataSourceCollection=S,this._dataSourceDisplay=v,this._eventHelper=D,this._canAnimateUpdateCallback=this._updateCanAnimate,D.add(this._clock.onTick,Co.prototype._onTick,this),D.add(g.morphStart,Co.prototype._clearTrackedObject,this),D.add(C.dataSourceAdded,Co.prototype._onDataSourceAdded,this),D.add(C.dataSourceRemoved,Co.prototype._onDataSourceRemoved,this),D.add(g.postRender,Co.prototype._postRender,this);let O=C.length;for(let R=0;R<O;R++)this._dataSourceAdded(C,C.get(R));this._dataSourceAdded(void 0,v.defaultDataSource),D.add(C.dataSourceAdded,Co.prototype._dataSourceAdded,this),D.add(C.dataSourceRemoved,Co.prototype._dataSourceRemoved,this)}catch(p){throw f&&this.showErrorPanel("Error constructing CesiumWidget.",'Visit <a href="http://get.webgl.org">http://get.webgl.org</a> to verify that your web browser and hardware support WebGL. Consider trying a different web browser or updating your video drivers. Detailed error information is below:',p),p}}Object.defineProperties(Co.prototype,{container:{get:function(){return this._container}},canvas:{get:function(){return this._canvas}},creditContainer:{get:function(){return this._creditContainer}},creditViewport:{get:function(){return this._creditViewport}},scene:{get:function(){return this._scene}},imageryLayers:{get:function(){return this._scene.imageryLayers}},terrainProvider:{get:function(){return this._scene.terrainProvider},set:function(e){this._scene.terrainProvider=e}},creditDisplay:{get:function(){return this._scene.frameState.creditDisplay}},dataSourceDisplay:{get:function(){return this._dataSourceDisplay}},entities:{get:function(){return this._dataSourceDisplay.defaultDataSource.entities}},dataSources:{get:function(){return this._dataSourceCollection}},camera:{get:function(){return this._scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},clock:{get:function(){return this._clock}},screenSpaceEventHandler:{get:function(){return this._screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._targetFrameRate},set:function(e){this._targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._useDefaultRenderLoop},set:function(e){this._useDefaultRenderLoop!==e&&(this._useDefaultRenderLoop=e,e&&!this._renderLoopRunning&&fxt(this))}},resolutionScale:{get:function(){return this._resolutionScale},set:function(e){this._resolutionScale!==e&&(this._resolutionScale=e,this._forceResize=!0)}},useBrowserRecommendedResolution:{get:function(){return this._useBrowserRecommendedResolution},set:function(e){this._useBrowserRecommendedResolution!==e&&(this._useBrowserRecommendedResolution=e,this._forceResize=!0)}},allowDataSourcesToSuspendAnimation:{get:function(){return this._allowDataSourcesToSuspendAnimation},set:function(e){this._allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._trackedEntity},set:function(e){if(this._trackedEntity!==e){this._trackedEntity=e,MK(this);let t=this.scene,n=t.mode;!l(e)||!l(e.position)?(this._needTrackedEntityUpdate=!1,(n===ne.COLUMBUS_VIEW||n===ne.SCENE2D)&&(t.screenSpaceCameraController.enableTranslate=!0),(n===ne.COLUMBUS_VIEW||n===ne.SCENE3D)&&(t.screenSpaceCameraController.enableTilt=!0),this._entityView=void 0,this.camera.lookAtTransform(F.IDENTITY)):this._needTrackedEntityUpdate=!0,this._trackedEntityChanged.raiseEvent(e),this.scene.requestRender()}}},trackedEntityChanged:{get:function(){return this._trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._clockTrackedDataSource},set:function(e){this._clockTrackedDataSource!==e&&(this._clockTrackedDataSource=e,vbe(this.clock,e))}}});Co.prototype.showErrorPanel=function(e,t,n){let i=this._element,o=document.createElement("div");o.className="cesium-widget-errorPanel";let r=document.createElement("div");r.className="cesium-widget-errorPanel-content",o.appendChild(r);let s=document.createElement("div");s.className="cesium-widget-errorPanel-header",s.appendChild(document.createTextNode(e)),r.appendChild(s);let a=document.createElement("div");a.className="cesium-widget-errorPanel-scroll",r.appendChild(a);function c(){a.style.maxHeight=`${Math.max(Math.round(i.clientHeight*.9-100),30)}px`}c(),l(window.addEventListener)&&window.addEventListener("resize",c,!1);let u=l(t),f=l(n);if(u||f){let g=document.createElement("div");if(g.className="cesium-widget-errorPanel-message",a.appendChild(g),f){let m=s_(n);u||(typeof n=="string"&&(n=new Error(n)),t=s_({name:n.name,message:n.message}),m=n.stack),typeof console<"u"&&console.error(`${e} +${t} +${m}`);let x=document.createElement("div");x.className="cesium-widget-errorPanel-message-details collapsed";let b=document.createElement("span");b.className="cesium-widget-errorPanel-more-details",b.appendChild(document.createTextNode("See more...")),x.appendChild(b),x.onclick=function(T){x.removeChild(b),x.appendChild(document.createTextNode(m)),x.className="cesium-widget-errorPanel-message-details",r.className="cesium-widget-errorPanel-content expanded",x.onclick=void 0},a.appendChild(x)}g.innerHTML=`<p>${t}</p>`}let d=document.createElement("div");d.className="cesium-widget-errorPanel-buttonPanel",r.appendChild(d);let p=document.createElement("button");p.setAttribute("type","button"),p.className="cesium-button",p.appendChild(document.createTextNode("OK")),p.onclick=function(){l(c)&&l(window.removeEventListener)&&window.removeEventListener("resize",c,!1),i.removeChild(o)},d.appendChild(p),i.appendChild(o)};Co.prototype.isDestroyed=function(){return!1};Co.prototype.destroy=function(){let e=this.dataSources,t=e.length;for(let n=0;n<t;n++)this._dataSourceRemoved(e,e.get(n));this._dataSourceRemoved(void 0,this._dataSourceDisplay.defaultDataSource),this._dataSourceDisplay=this._dataSourceDisplay.destroy(),l(this._scene)&&(this._scene.renderError.removeEventListener(this._onRenderError),this._scene=this._scene.destroy()),this._container.removeChild(this._element),this._creditContainer.removeChild(this._innerCreditContainer),this._eventHelper.removeAll(),this._destroyDataSourceCollection&&(this._dataSourceCollection=this._dataSourceCollection.destroy()),ue(this)};Co.prototype.resize=function(){let e=this._canvas;!this._forceResize&&this._canvasClientWidth===e.clientWidth&&this._canvasClientHeight===e.clientHeight&&this._lastDevicePixelRatio===window.devicePixelRatio||(this._forceResize=!1,Dbe(this),Ibe(this),this._scene.requestRender())};Co.prototype.render=function(){if(this._canRender){this._scene.initializeFrame();let e=this._clock.tick();this._scene.render(e)}else this._clock.tick()};Co.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Co.prototype._onEntityCollectionChanged,this)};Co.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Co.prototype._onEntityCollectionChanged,this),l(this.trackedEntity)&&n.getById(this.trackedEntity.id)===this.trackedEntity&&(this.trackedEntity=void 0)};Co.prototype._updateCanAnimate=function(e){this._clock.canAnimate=e};var oS=new se;Co.prototype._onTick=function(e){let t=e.currentTime,n=this._dataSourceDisplay.update(t);this._allowDataSourcesToSuspendAnimation&&this._canAnimateUpdateCallback(n);let i=this._entityView;if(l(i)){let o=this._trackedEntity;this._dataSourceDisplay.getBoundingSphere(o,!0,oS)===dt.DONE&&i.update(t,oS)}};Co.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.trackedEntity===r&&(this.trackedEntity=void 0)}};Co.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Co.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&vbe(this.clock,e)};Co.prototype._onDataSourceAdded=function(e,t){this._automaticallyTrackDataSourceClocks&&(this.clockTrackedDataSource=t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Co.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Co.prototype._onDataSourceRemoved=function(e,t){let n=this.clockTrackedDataSource===t,i=t.entities.id;if(this._dataSourceChangedListeners[i](),this._dataSourceChangedListeners[i]=void 0,n){let o=e.length;this._automaticallyTrackDataSourceClocks&&o>0?this.clockTrackedDataSource=e.get(o-1):this.clockTrackedDataSource=void 0}};Co.prototype.zoomTo=function(e,t){return Pbe(this,e,{offset:t},!1)};Co.prototype.flyTo=function(e,t){return Pbe(this,e,t,!0)};function Pbe(e,t,n,i){MK(e);let o=new Promise(r=>{e._completeZoom=function(s){r(s)}});return e._zoomPromise=o,e._zoomIsFlight=i,e._zoomOptions=n,Promise.resolve(t).then(function(r){if(e._zoomPromise===o){if(r instanceof ac){let s;l(r.imageryProvider)?s=Promise.resolve(r.getImageryRectangle()):s=new Promise(a=>{let c=r.readyEvent.addEventListener(()=>{c(),a(r.getImageryRectangle())})}),s.then(function(a){return bE(a,e.scene)}).then(function(a){e._zoomPromise===o&&(e._zoomTarget=a)});return}if(r instanceof Ca||r instanceof dP||r instanceof Sb){e._zoomTarget=r;return}if(r.isLoading&&l(r.loadingEvent)){let s=r.loadingEvent.addEventListener(function(){s(),e._zoomPromise===o&&(e._zoomTarget=r.entities.values.slice(0))});return}if(Array.isArray(r)){e._zoomTarget=r.slice(0);return}r=r.values??r,l(r.entities)&&(r=r.entities.values),Array.isArray(r)?e._zoomTarget=r.slice(0):e._zoomTarget=[r]}}),e.scene.requestRender(),o}function hP(e){e._zoomPromise=void 0,e._zoomTarget=void 0,e._zoomOptions=void 0}function MK(e){let t=e._zoomPromise;l(t)&&(hP(e),e._completeZoom(!1))}Co.prototype._postRender=function(){dxt(this),hxt(this)};function dxt(e){let t=e._zoomTarget;if(!l(t)||e.scene.mode===ne.MORPHING)return;let n=e.scene,i=n.camera,o=e._zoomOptions??{},r;function s(f){l(o.offset)||(o.offset=new Vd(0,-.5,f.radius)),r={offset:o.offset,duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyToBoundingSphere(t.boundingSphere,r):(i.viewBoundingSphere(f,o.offset),i.lookAtTransform(F.IDENTITY),e._completeZoom(!0)),hP(e)}if(t instanceof dP){if(l(t.boundingSphere)){s(t.boundingSphere);return}let f=t.frameChanged.addEventListener(function(d){s(d.boundingSphere),f()});return}if(t instanceof Ca||t instanceof Sb){s(t.boundingSphere);return}if(t instanceof fe){r={destination:n.ellipsoid.cartographicToCartesian(t),duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)}},e._zoomIsFlight?i.flyTo(r):(i.setView(r),e._completeZoom(!0)),hP(e);return}let a=t,c=[];for(let f=0,d=a.length;f<d;f++){let p=e._dataSourceDisplay.getBoundingSphere(a[f],!1,oS);if(p===dt.PENDING)return;p!==dt.FAILED&&c.push(se.clone(oS))}if(c.length===0){MK(e);return}e.trackedEntity=void 0;let u=se.fromBoundingSpheres(c);e._zoomIsFlight?(hP(e),i.flyToBoundingSphere(u,{duration:o.duration,maximumHeight:o.maximumHeight,complete:function(){e._completeZoom(!0)},cancel:function(){e._completeZoom(!1)},offset:o.offset})):(i.viewBoundingSphere(u,o.offset),i.lookAtTransform(F.IDENTITY),hP(e),e._completeZoom(!0))}function hxt(e){if(!e._needTrackedEntityUpdate)return;let t=e._trackedEntity,n=e.clock.currentTime,i=Y.getValueOrUndefined(t.position,n);if(!l(i))return;let o=e.scene,r=e._dataSourceDisplay.getBoundingSphere(t,!1,oS);if(r===dt.PENDING)return;let s=o.mode;(s===ne.COLUMBUS_VIEW||s===ne.SCENE2D)&&(o.screenSpaceCameraController.enableTranslate=!1),(s===ne.COLUMBUS_VIEW||s===ne.SCENE3D)&&(o.screenSpaceCameraController.enableTilt=!1);let a=r!==dt.FAILED?oS:void 0;e._entityView=new xk(t,o,o.ellipsoid),e._entityView.update(n,a),e._needTrackedEntityUpdate=!1}var SH=Co;var vH=`uniform sampler2D u_noiseTexture; +uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +in vec2 v_offset; +in vec3 v_maximumSize; +in vec4 v_color; +in float v_slice; +in float v_brightness; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec2 voxelToUV(vec3 voxelIndex) { + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + + float textureSliceWidthSquared = textureSliceWidth * textureSliceWidth; + vec2 inverseNoiseTextureDimensions = vec2(noiseTextureRows / textureSliceWidthSquared, + inverseNoiseTextureRows / textureSliceWidth); + vec3 wrappedIndex = wrapVec(voxelIndex, textureSliceWidth); + float column = mod(wrappedIndex.z, textureSliceWidth * inverseNoiseTextureRows); + float row = floor(wrappedIndex.z / textureSliceWidth * noiseTextureRows); + + float xPixelCoord = wrappedIndex.x + column * textureSliceWidth; + float yPixelCoord = wrappedIndex.y + row * textureSliceWidth; + return vec2(xPixelCoord, yPixelCoord) * inverseNoiseTextureDimensions; +} + +// Interpolate a voxel with its neighbor (along the positive X-axis) +vec4 lerpSamplesX(vec3 voxelIndex, float x) { + vec2 uv0 = voxelToUV(voxelIndex); + vec2 uv1 = voxelToUV(voxelIndex + vec3(1.0, 0.0, 0.0)); + vec4 sample0 = texture(u_noiseTexture, uv0); + vec4 sample1 = texture(u_noiseTexture, uv1); + return mix(sample0, sample1, x); +} + +vec4 sampleNoiseTexture(vec3 position) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 recenteredPos = position + vec3(textureSliceWidth / 2.0); + vec3 lerpValue = fract(recenteredPos); + vec3 voxelIndex = floor(recenteredPos); + + vec4 xLerp00 = lerpSamplesX(voxelIndex, lerpValue.x); + vec4 xLerp01 = lerpSamplesX(voxelIndex + vec3(0.0, 0.0, 1.0), lerpValue.x); + vec4 xLerp10 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 0.0), lerpValue.x); + vec4 xLerp11 = lerpSamplesX(voxelIndex + vec3(0.0, 1.0, 1.0), lerpValue.x); + + vec4 yLerp0 = mix(xLerp00, xLerp10, lerpValue.y); + vec4 yLerp1 = mix(xLerp01, xLerp11, lerpValue.y); + return mix(yLerp0, yLerp1, lerpValue.z); +} + +// Intersection with a unit sphere with radius 0.5 at center (0, 0, 0). +bool intersectSphere(vec3 origin, vec3 dir, float slice, + out vec3 point, out vec3 normal) { + float A = dot(dir, dir); + float B = dot(origin, dir); + float C = dot(origin, origin) - 0.25; + float discriminant = (B * B) - (A * C); + if(discriminant < 0.0) { + return false; + } + float root = sqrt(discriminant); + float t = (-B - root) / A; + if(t < 0.0) { + t = (-B + root) / A; + } + point = origin + t * dir; + + if(slice >= 0.0) { + point.z = (slice / 2.0) - 0.5; + if(length(point) > 0.5) { + return false; + } + } + + normal = normalize(point); + point -= czm_epsilon2 * normal; + return true; +} + +// Transforms the ray origin and direction into unit sphere space, +// then transforms the result back into the ellipsoid's space. +bool intersectEllipsoid(vec3 origin, vec3 dir, vec3 center, vec3 scale, float slice, + out vec3 point, out vec3 normal) { + if(scale.x <= 0.01 || scale.y < 0.01 || scale.z < 0.01) { + return false; + } + + vec3 o = (origin - center) / scale; + vec3 d = dir / scale; + vec3 p, n; + bool intersected = intersectSphere(o, d, slice, p, n); + if(intersected) { + point = (p * scale) + center; + normal = n; + } + return intersected; +} + +// Assume that if phase shift is being called for octave i, +// the frequency is of i - 1. This saves us from doing extra +// division / multiplication operations. +vec2 phaseShift2D(vec2 p, vec2 freq) { + return (czm_pi / 2.0) * sin(freq.yx * p.yx); +} + +vec2 phaseShift3D(vec3 p, vec2 freq) { + return phaseShift2D(p.xy, freq) + czm_pi * vec2(sin(freq.x * p.z)); +} + +// The cloud texture function derived from Gardner's 1985 paper, +// "Visual Simulation of Clouds." +// https://www.cs.drexel.edu/~david/Classes/Papers/p297-gardner.pdf +const float T0 = 0.6; // contrast of the texture pattern +const float k = 0.1; // computed to produce a maximum value of 1 +const float C0 = 0.8; // coefficient +const float FX0 = 0.6; // frequency X +const float FY0 = 0.6; // frequency Y +const int octaves = 5; + +float T(vec3 point) { + vec2 sum = vec2(0.0); + float Ci = C0; + vec2 FXY = vec2(FX0, FY0); + vec2 PXY = vec2(0.0); + for(int i = 1; i <= octaves; i++) { + PXY = phaseShift3D(point, FXY); + Ci *= 0.707; + FXY *= 2.0; + vec2 sinTerm = sin(FXY * point.xy + PXY); + sum += Ci * sinTerm + vec2(T0); + } + return k * sum.x * sum.y; +} + +const float a = 0.5; // fraction of surface reflection due to ambient or scattered light, +const float t = 0.4; // fraction of texture shading +const float s = 0.25; // fraction of specular reflection + +float I(float Id, float Is, float It) { + return (1.0 - a) * ((1.0 - t) * ((1.0 - s) * Id + s * Is) + t * It) + a; +} + +const vec3 lightDir = normalize(vec3(0.2, -1.0, 0.7)); + +vec4 drawCloud(vec3 rayOrigin, vec3 rayDir, vec3 cloudCenter, vec3 cloudScale, float cloudSlice, + float brightness) { + vec3 cloudPoint, cloudNormal; + if(!intersectEllipsoid(rayOrigin, rayDir, cloudCenter, cloudScale, cloudSlice, + cloudPoint, cloudNormal)) { + return vec4(0.0); + } + + float Id = clamp(dot(cloudNormal, -lightDir), 0.0, 1.0); // diffuse reflection + float Is = max(pow(dot(-lightDir, -rayDir), 2.0), 0.0); // specular reflection + float It = T(cloudPoint); // texture function + float intensity = I(Id, Is, It); + vec3 color = vec3(intensity * clamp(brightness, 0.1, 1.0)); + + vec4 noise = sampleNoiseTexture(u_noiseDetail * cloudPoint); + float W = noise.x; + float W2 = noise.y; + float W3 = noise.z; + + // The dot product between the cloud's normal and the ray's direction is greatest + // in the center of the ellipsoid's surface. It decreases towards the edge. + // Thus, it is used to blur the areas leading to the edges of the ellipsoid, + // so that no harsh lines appear. + + // The first (and biggest) layer of worley noise is then subtracted from this. + // The final result is scaled up so that the base cloud is not too translucent. + float ndDot = clamp(dot(cloudNormal, -rayDir), 0.0, 1.0); + float TR = pow(ndDot, 3.0) - W; // translucency + TR *= 1.3; + + // Subtracting the second and third layers of worley noise is more complicated. + // If these layers of noise were simply subtracted from the current translucency, + // the shape derived from the first layer of noise would be completely deleted. + // The erosion of this noise should thus be constricted to the edges of the cloud. + // However, because the edges of the ellipsoid were already blurred away, mapping + // the noise to (1.0 - ndDot) will have no impact on most of the cloud's appearance. + // The value of (0.5 - ndDot) provides the best compromise. + float minusDot = 0.5 - ndDot; + + // Even with the previous calculation, subtracting the second layer of wnoise + // erode too much of the cloud. The addition of it, however, will detailed + // volume to the cloud. As long as the noise is only added and not subtracted, + // the results are aesthetically pleasing. + + // The minusDot product is mapped in a way that it is larger at the edges of + // the ellipsoid, so a subtraction and min operation are used instead of + // an addition and max one. + TR -= min(minusDot * W2, 0.0); + + // The third level of worley noise is subtracted from the result, with some + // modifications. First, a scalar is added to minusDot so that the noise + // starts affecting the shape farther away from the center of the ellipsoid's + // surface. Then, it is scaled down so its impact is not too intense. + TR -= 0.8 * (minusDot + 0.25) * W3; + + // The texture function's shading does not correlate with the shape of the cloud + // produced by the layers of noise, so an extra shading scalar is calculated. + // The darkest areas of the cloud are assigned to be where the noise erodes + // the cloud the most. This is then interpolated based on the translucency + // and the diffuse shading term of that point in the cloud. + float shading = mix(1.0 - 0.8 * W * W, 1.0, Id * TR); + + // To avoid values that are too dark, this scalar is increased by a small amount + // and clamped so it never goes to zero. + shading = clamp(shading + 0.2, 0.3, 1.0); + + // Finally, the contrast of the cloud's color is increased. + vec3 finalColor = mix(vec3(0.5), shading * color, 1.15); + return vec4(finalColor, clamp(TR, 0.0, 1.0)) * v_color; +} + +void main() { +#ifdef DEBUG_BILLBOARDS + out_FragColor = vec4(0.0, 0.5, 0.5, 1.0); +#endif + // To avoid calculations with high values, + // we raycast from an arbitrarily smaller space. + vec2 coordinate = v_maximumSize.xy * v_offset; + + vec3 ellipsoidScale = 0.82 * v_maximumSize; + vec3 ellipsoidCenter = vec3(0.0); + + float zOffset = max(ellipsoidScale.z - 10.0, 0.0); + vec3 eye = vec3(0, 0, -10.0 - zOffset); + vec3 rayDir = normalize(vec3(coordinate, 1.0) - eye); + vec3 rayOrigin = eye; +#ifdef DEBUG_ELLIPSOIDS + vec3 point, normal; + if(intersectEllipsoid(rayOrigin, rayDir, ellipsoidCenter, ellipsoidScale, v_slice, + point, normal)) { + out_FragColor = v_brightness * v_color; + } +#else +#ifndef DEBUG_BILLBOARDS + vec4 cloud = drawCloud(rayOrigin, rayDir, + ellipsoidCenter, ellipsoidScale, v_slice, v_brightness); + if(cloud.w < 0.01) { + discard; + } + out_FragColor = cloud; +#endif +#endif +} +`;var wH=`#ifdef INSTANCED +in vec2 direction; +#endif +in vec4 positionHighAndScaleX; +in vec4 positionLowAndScaleY; +in vec4 packedAttribute0; +in vec4 packedAttribute1; +in vec4 color; + +out vec2 v_offset; +out vec3 v_maximumSize; +out vec4 v_color; +out float v_slice; +out float v_brightness; + +void main() { + // Unpack attributes. + vec3 positionHigh = positionHighAndScaleX.xyz; + vec3 positionLow = positionLowAndScaleY.xyz; + vec2 scale = vec2(positionHighAndScaleX.w, positionLowAndScaleY.w); + + float show = packedAttribute0.x; + float brightness = packedAttribute0.y; + vec2 coordinates = packedAttribute0.wz; + vec3 maximumSize = packedAttribute1.xyz; + float slice = packedAttribute1.w; + +#ifdef INSTANCED + vec2 dir = direction; +#else + vec2 dir = coordinates; +#endif + + vec2 offset = dir - vec2(0.5, 0.5); + vec2 scaledOffset = scale * offset; + vec4 p = czm_translateRelativeToEye(positionHigh, positionLow); + vec4 positionEC = czm_modelViewRelativeToEye * p; + positionEC.xy += scaledOffset; + + positionEC.xyz *= show; + gl_Position = czm_projection * positionEC; + + v_offset = offset; + v_maximumSize = maximumSize; + v_color = color; + v_slice = slice; + v_brightness = brightness; +} +`;var DH=`uniform vec3 u_noiseTextureDimensions; +uniform float u_noiseDetail; +uniform vec3 u_noiseOffset; +in vec2 v_position; + +float wrap(float value, float rangeLength) { + if(value < 0.0) { + float absValue = abs(value); + float modValue = mod(absValue, rangeLength); + return mod(rangeLength - modValue, rangeLength); + } + return mod(value, rangeLength); +} + +vec3 wrapVec(vec3 value, float rangeLength) { + return vec3(wrap(value.x, rangeLength), + wrap(value.y, rangeLength), + wrap(value.z, rangeLength)); +} + +vec3 random3(vec3 p) { + float dot1 = dot(p, vec3(127.1, 311.7, 932.8)); + float dot2 = dot(p, vec3(269.5, 183.3, 421.4)); + return fract(vec3(sin(dot1 - dot2), cos(dot1 * dot2), dot1 * dot2)); +} + +// Frequency corresponds to cell size. +// The higher the frequency, the smaller the cell size. +vec3 getWorleyCellPoint(vec3 centerCell, vec3 offset, float freq) { + float textureSliceWidth = u_noiseTextureDimensions.x; + vec3 cell = centerCell + offset; + cell = wrapVec(cell, textureSliceWidth / u_noiseDetail); + cell += floor(u_noiseOffset / u_noiseDetail); + vec3 p = offset + random3(cell); + return p; +} + +float worleyNoise(vec3 p, float freq) { + vec3 centerCell = floor(p * freq); + vec3 pointInCell = fract(p * freq); + float shortestDistance = 1000.0; + + for(float z = -1.0; z <= 1.0; z++) { + for(float y = -1.0; y <= 1.0; y++) { + for(float x = -1.0; x <= 1.0; x++) { + vec3 offset = vec3(x, y, z); + vec3 point = getWorleyCellPoint(centerCell, offset, freq); + + float distance = length(pointInCell - point); + if(distance < shortestDistance) { + shortestDistance = distance; + } + } + } + } + + return shortestDistance; +} + +const float MAX_FBM_ITERATIONS = 10.0; + +float worleyFBMNoise(vec3 p, float octaves, float scale) { + float noise = 0.0; + float freq = 1.0; + float persistence = 0.625; + for(float i = 0.0; i < MAX_FBM_ITERATIONS; i++) { + if(i >= octaves) { + break; + } + + noise += worleyNoise(p * scale, freq * scale) * persistence; + persistence *= 0.5; + freq *= 2.0; + } + return noise; +} + +void main() { + float textureSliceWidth = u_noiseTextureDimensions.x; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + float x = mod(v_position.x, textureSliceWidth); + float y = mod(v_position.y, textureSliceWidth); + float sliceRow = floor(v_position.y / textureSliceWidth); + float z = floor(v_position.x / textureSliceWidth) + sliceRow * inverseNoiseTextureRows * textureSliceWidth; + + vec3 position = vec3(x, y, z); + position /= u_noiseDetail; + float worley0 = clamp(worleyFBMNoise(position, 3.0, 1.0), 0.0, 1.0); + float worley1 = clamp(worleyFBMNoise(position, 3.0, 2.0), 0.0, 1.0); + float worley2 = clamp(worleyFBMNoise(position, 3.0, 3.0), 0.0, 1.0); + out_FragColor = vec4(worley0, worley1, worley2, 1.0); +} +`;var IH=`uniform vec3 u_noiseTextureDimensions; +in vec2 position; + +out vec2 v_position; + +void main() +{ + gl_Position = vec4(position, 0.1, 1.0); + + float textureSliceWidth = u_noiseTextureDimensions.x; + float noiseTextureRows = u_noiseTextureDimensions.y; + float inverseNoiseTextureRows = u_noiseTextureDimensions.z; + vec2 transformedPos = (position * 0.5) + vec2(0.5); + transformedPos *= textureSliceWidth; + transformedPos.x *= textureSliceWidth * inverseNoiseTextureRows; + transformedPos.y *= noiseTextureRows; + v_position = transformedPos; +} +`;var PH=` +in vec2 v_textureCoordinates; + +void main() +{ + czm_materialInput materialInput; + + materialInput.s = v_textureCoordinates.s; + materialInput.st = v_textureCoordinates; + materialInput.str = vec3(v_textureCoordinates, 0.0); + materialInput.normalEC = vec3(0.0, 0.0, -1.0); + + czm_material material = czm_getMaterial(materialInput); + + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +} +`;function aS(e,t){this._tilingScheme=e,this._maximumLevel=t,this._rootNodes=[]}var Pb=new re;function mxt(e,t,n,i){let o=i.length;for(let r=0;r<o;++r){let s=i[r];if(s.x===t&&s.y===n&&s.level===e)return!0}return!1}aS.prototype.addAvailableTileRange=function(e,t,n,i,o){let r=this._tilingScheme,s=this._rootNodes;if(e===0)for(let p=n;p<=o;++p)for(let g=t;g<=i;++g)mxt(e,g,p,s)||s.push(new rS(r,void 0,0,g,p));r.tileXYToRectangle(t,n,e,Pb);let a=Pb.west,c=Pb.north;r.tileXYToRectangle(i,o,e,Pb);let u=Pb.east,f=Pb.south,d=new xxt(e,a,f,u,c);for(let p=0;p<s.length;++p){let g=s[p];LK(g.extent,d)&&bxt(this._maximumLevel,g,d)}};aS.prototype.computeMaximumLevelAtPosition=function(e){let t;for(let n=0;n<this._rootNodes.length;++n){let i=this._rootNodes[n];if(sS(i.extent,e)){t=i;break}}return l(t)?mP(void 0,t,e):-1};var pxt=[],_xt=[],gxt=new re,yxt=new re;aS.prototype.computeBestAvailableLevelOverRectangle=function(e){let t=pxt;t.length=0,e.east<e.west?(t.push(re.fromRadians(-Math.PI,e.south,e.east,e.north,gxt)),t.push(re.fromRadians(e.west,e.south,Math.PI,e.north,yxt))):t.push(e);let n=_xt;n.length=0;let i;for(i=0;i<this._rootNodes.length;++i)pP(n,this._rootNodes[i],t);for(i=n.length-1;i>=0;--i)if(l(n[i])&&n[i].length===0)return i;return 0};var Rbe=new fe;aS.prototype.isTileAvailable=function(e,t,n){let i=this._tilingScheme.tileXYToRectangle(t,n,e,Pb);return re.center(i,Rbe),this.computeMaximumLevelAtPosition(Rbe)>=e};aS.prototype.computeChildMaskForTile=function(e,t,n){let i=e+1;if(i>=this._maximumLevel)return 0;let o=0;return o|=this.isTileAvailable(i,2*t,2*n+1)?1:0,o|=this.isTileAvailable(i,2*t+1,2*n+1)?2:0,o|=this.isTileAvailable(i,2*t,2*n)?4:0,o|=this.isTileAvailable(i,2*t+1,2*n)?8:0,o};function rS(e,t,n,i,o){this.tilingScheme=e,this.parent=t,this.level=n,this.x=i,this.y=o,this.extent=e.tileXYToRectangle(i,o,n),this.rectangles=[],this._sw=void 0,this._se=void 0,this._nw=void 0,this._ne=void 0}Object.defineProperties(rS.prototype,{nw:{get:function(){return this._nw||(this._nw=new rS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2)),this._nw}},ne:{get:function(){return this._ne||(this._ne=new rS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2)),this._ne}},sw:{get:function(){return this._sw||(this._sw=new rS(this.tilingScheme,this,this.level+1,this.x*2,this.y*2+1)),this._sw}},se:{get:function(){return this._se||(this._se=new rS(this.tilingScheme,this,this.level+1,this.x*2+1,this.y*2+1)),this._se}}});function xxt(e,t,n,i,o){this.level=e,this.west=t,this.south=n,this.east=i,this.north=o}function LK(e,t){let n=Math.max(e.west,t.west),i=Math.max(e.south,t.south),o=Math.min(e.east,t.east),r=Math.min(e.north,t.north);return i<r&&n<o}function bxt(e,t,n){for(;t.level<e;)if(RH(t.nw.extent,n))t=t.nw;else if(RH(t.ne.extent,n))t=t.ne;else if(RH(t.sw.extent,n))t=t.sw;else if(RH(t.se.extent,n))t=t.se;else break;if(t.rectangles.length===0||t.rectangles[t.rectangles.length-1].level<=n.level)t.rectangles.push(n);else{let i=Po(t.rectangles,n.level,Txt);i<0&&(i=~i),t.rectangles.splice(i,0,n)}}function Txt(e,t){return e.level-t}function RH(e,t){return t.west>=e.west&&t.east<=e.east&&t.south>=e.south&&t.north<=e.north}function sS(e,t){return t.longitude>=e.west&&t.longitude<=e.east&&t.latitude>=e.south&&t.latitude<=e.north}function mP(e,t,n){let i=0,o=!1;for(;!o;){let r=t._nw&&sS(t._nw.extent,n),s=t._ne&&sS(t._ne.extent,n),a=t._sw&&sS(t._sw.extent,n),c=t._se&&sS(t._se.extent,n);if(r+s+a+c>1){r&&(i=Math.max(i,mP(t,t._nw,n))),s&&(i=Math.max(i,mP(t,t._ne,n))),a&&(i=Math.max(i,mP(t,t._sw,n))),c&&(i=Math.max(i,mP(t,t._se,n)));break}else r?t=t._nw:s?t=t._ne:a?t=t._sw:c?t=t._se:o=!0}for(;t!==e;){let r=t.rectangles;for(let s=r.length-1;s>=0&&r[s].level>i;--s){let a=r[s];sS(a,n)&&(i=a.level)}t=t.parent}return i}function pP(e,t,n){if(!t)return;let i,o=!1;for(i=0;i<n.length;++i)o=o||LK(t.extent,n[i]);if(!o)return;let r=t.rectangles;for(i=0;i<r.length;++i){let s=r[i];e[s.level]||(e[s.level]=n),e[s.level]=Axt(e[s.level],s)}pP(e,t._nw,n),pP(e,t._ne,n),pP(e,t._sw,n),pP(e,t._se,n)}function Axt(e,t){let n=[];for(let i=0;i<e.length;++i){let o=e[i];LK(o,t)?(o.west<t.west&&n.push(new re(o.west,o.south,t.west,o.north)),o.east>t.east&&n.push(new re(t.east,o.south,o.east,o.north)),o.south<t.south&&n.push(new re(Math.max(t.west,o.west),o.south,Math.min(t.east,o.east),t.south)),o.north>t.north&&n.push(new re(Math.max(t.west,o.west),t.north,Math.min(t.east,o.east),o.north))):n.push(o)}return n}var Nm=aS;var Cxt=15;function Obe(e){this.ellipsoid=y(e.ellipsoid,ee.default),this.credit=void 0,this.tilingScheme=void 0,this.height=void 0,this.width=void 0,this.encoding=void 0,this.lodCount=void 0,this.hasAvailability=!1,this.tilesAvailable=void 0,this.tilesAvailabilityLoaded=void 0,this.levelZeroMaximumGeometricError=void 0,this.terrainDataStructure=void 0}Obe.prototype.build=function(e){e._credit=this.credit,e._tilingScheme=this.tilingScheme,e._height=this.height,e._width=this.width,e._encoding=this.encoding,e._lodCount=this.lodCount,e._hasAvailability=this.hasAvailability,e._tilesAvailable=this.tilesAvailable,e._tilesAvailabilityLoaded=this.tilesAvailabilityLoaded,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._terrainDataStructure=this.terrainDataStructure};function Ext(e,t){let n=t.copyrightText;l(n)&&(e.credit=new wt(n));let i=t.spatialReference,o=y(i.latestWkid,i.wkid),r=t.extent,s={ellipsoid:e.ellipsoid};if(o===4326)s.rectangle=re.fromDegrees(r.xmin,r.ymin,r.xmax,r.ymax),e.tilingScheme=new qi(s);else if(o===3857){let u=Math.PI*e.ellipsoid.maximumRadius;t.extent.xmax>u&&(t.extent.xmax=u),t.extent.ymax>u&&(t.extent.ymax=u),t.extent.xmin<-u&&(t.extent.xmin=-u),t.extent.ymin<-u&&(t.extent.ymin=-u),s.rectangleSouthwestInMeters=new U(r.xmin,r.ymin),s.rectangleNortheastInMeters=new U(r.xmax,r.ymax),e.tilingScheme=new us(s)}else throw new ce("Invalid spatial reference");let a=t.tileInfo;if(!l(a))throw new ce("tileInfo is required");e.width=a.rows+1,e.height=a.cols+1,e.encoding=a.format==="LERC"?qd.LERC:qd.NONE,e.lodCount=a.lods.length-1,(e.hasAvailability=t.capabilities.indexOf("Tilemap")!==-1)&&(e.tilesAvailable=new Nm(e.tilingScheme,e.lodCount),e.tilesAvailable.addAvailableTileRange(0,0,0,e.tilingScheme.getNumberOfXTilesAtLevel(0),e.tilingScheme.getNumberOfYTilesAtLevel(0)),e.tilesAvailabilityLoaded=new Nm(e.tilingScheme,e.lodCount)),e.levelZeroMaximumGeometricError=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.width,e.tilingScheme.getNumberOfXTilesAtLevel(0)),t.bandCount>1&&console.log("ArcGISTiledElevationTerrainProvider: Terrain data has more than 1 band. Using the first one."),l(t.minValues)&&l(t.maxValues)?e.terrainDataStructure={elementMultiplier:1,lowestEncodedHeight:t.minValues[0],highestEncodedHeight:t.maxValues[0]}:e.terrainDataStructure={elementMultiplier:1}}async function Sxt(e,t,n){try{let i=await t.fetchJson();Ext(e,i)}catch(i){let o=`An error occurred while accessing ${t}.`;throw Do.reportError(void 0,n,l(n)?n._errorEvent:void 0,o),i}}function Jy(e){e=y(e,y.EMPTY_OBJECT),this._resource=void 0,this._credit=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._maxLevel=void 0,this._terrainDataStructure=void 0,this._width=void 0,this._height=void 0,this._encoding=void 0,this._lodCount=void 0,this._hasAvailability=!1,this._tilesAvailable=void 0,this._tilesAvailabilityLoaded=void 0,this._availableCache={},this._errorEvent=new me}Object.defineProperties(Jy.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){return this._tilesAvailable}}});Jy.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=De.createIfNeeded(e);n.appendForwardSlash(),l(t.token)&&(n=n.getDerivedResource({queryParameters:{token:t.token}}));let i=n.getDerivedResource({queryParameters:{f:"pjson"}}),o=new Obe(t);await Sxt(o,i);let r=new Jy(t);return o.build(r),r._resource=n,r};Jy.prototype.requestTileGeometry=function(e,t,n,i){let o=this._resource.getDerivedResource({url:`tile/${n}/${t}/${e}`,request:i}),r=this._hasAvailability,s=Promise.resolve(!0),a;if(r&&!l(NK(this,n+1,e*2,t*2))){let d=Mbe(this,n+1,e*2,t*2);s=d.promise,a=d.request}let c=o.fetchArrayBuffer();if(!l(c)||!l(s))return;let u=this,f=this._tilesAvailable;return Promise.all([c,s]).then(function(d){return new rc({buffer:d[0],width:u._width,height:u._height,childTileMask:r?f.computeChildMaskForTile(n,e,t):Cxt,structure:u._terrainDataStructure,encoding:u._encoding})}).catch(async function(d){if(l(a)&&a.state===Zn.CANCELLED){i.cancel();try{await i.deferred?.promise}catch{}return i.state=Zn.CANCELLED,Promise.reject(d)}return Promise.reject(d)})};function NK(e,t,n,i){if(!e._hasAvailability)return;let o=e._tilesAvailabilityLoaded,r=e._tilesAvailable;if(t>e._lodCount)return!1;if(r.isTileAvailable(t,n,i))return!0;if(o.isTileAvailable(t,n,i))return!1}Jy.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};Jy.prototype.getTileDataAvailable=function(e,t,n){if(!this._hasAvailability)return;let i=NK(this,n,e,t);if(l(i))return i;Mbe(this,n,e,t)};Jy.prototype.loadTileDataAvailability=function(e,t,n){};function vxt(e,t,n,i){let o=t-1,r=n-1,s=i[e.y*t+e.x],a=[],c={startX:e.x,startY:e.y,endX:0,endY:0},u=new U(e.x+1,e.y+1),f=!1,d=!1;for(;!(f&&d);){let p=u.x,g=d?u.y+1:u.y;if(!f){for(let m=e.y;m<g;++m)if(i[m*t+u.x]!==s){f=!0;break}f?(a.push(new U(u.x,e.y)),--u.x,--p,c.endX=u.x):u.x===o?(c.endX=u.x,f=!0):++u.x}if(!d){let m=u.y*t;for(let x=e.x;x<=p;++x)if(i[m+x]!==s){d=!0;break}d?(a.push(new U(e.x,u.y)),--u.y,c.endY=u.y):u.y===r?(c.endY=u.y,d=!0):++u.y}}return{endingIndices:a,range:c,value:s}}function wxt(e,t,n,i,o){let r=[];if(o.every(function(c){return c===o[0]}))return o[0]===1&&r.push({startX:e,startY:t,endX:e+n-1,endY:t+i-1}),r;let a=[new U(0,0)];for(;a.length>0;){let c=a.pop(),u=vxt(c,n,i,o);if(u.value===1){let d=u.range;d.startX+=e,d.endX+=e,d.startY+=t,d.endY+=t,r.push(d)}let f=u.endingIndices;f.length>0&&(a=a.concat(f))}return r}function Mbe(e,t,n,i){if(!e._hasAvailability)return{};let o=Math.floor(n/128)*128,r=Math.floor(i/128)*128,s=Math.min(1<<t,128),a=`tilemap/${t}/${r}/${o}/${s}/${s}`,c=e._availableCache;if(l(c[a]))return c[a];let u=new tr({throttle:!1,throttleByServer:!0,type:ps.TERRAIN}),d=e._resource.getDerivedResource({url:a,request:u}).fetchJson();return l(d)?(d=d.then(function(p){let g=wxt(o,r,s,s,p.data);e._tilesAvailabilityLoaded.addAvailableTileRange(t,o,r,o+s,r+s);let m=e._tilesAvailable;for(let x=0;x<g.length;++x){let b=g[x];m.addAvailableTileRange(t,b.startX,b.startY,b.endX,b.endY)}return NK(e,t,n,i)}),c[a]={promise:d,request:u},d=d.finally(function(p){return delete c[a],p}),{promise:d,request:u}):{}}var Lbe=Jy;var Nbe="https://dev.virtualearth.net/REST/v1/Locations";function FK(e){e=y(e,y.EMPTY_OBJECT);let t=e.key;this._key=t;let n={key:t};l(e.culture)&&(n.culture=e.culture),this._resource=new De({url:Nbe,queryParameters:n}),this._credit=new wt('<img src="http://dev.virtualearth.net/Branding/logo_powered_by.png"/>',!1)}Object.defineProperties(FK.prototype,{url:{get:function(){return Nbe}},key:{get:function(){return this._key}},credit:{get:function(){return this._credit}}});FK.prototype.geocode=async function(e){return this._resource.getDerivedResource({queryParameters:{query:e}}).fetchJsonp("jsonp").then(function(n){return n.resourceSets.length===0?[]:n.resourceSets[0].resources.map(function(o){let r=o.bbox,s=r[0],a=r[1],c=r[2],u=r[3];return{displayName:o.name,destination:re.fromDegrees(a,s,u,c)}})})};var Fbe=FK;function BK(){}Object.defineProperties(BK.prototype,{credit:{get:function(){}}});BK.prototype.geocode=function(e){let t=e.match(/[^\s,\n]+/g);if(t.length===2||t.length===3){let n=+t[0],i=+t[1],o=t.length===3?+t[2]:300;if(isNaN(n)&&isNaN(i)){let r=/^(\d+.?\d*)([nsew])/i;for(let s=0;s<t.length;++s){let a=t[s].match(r);r.test(t[s])&&a.length===3&&(/^[ns]/i.test(a[2])?i=/^[n]/i.test(a[2])?+a[1]:-a[1]:/^[ew]/i.test(a[2])&&(n=/^[e]/i.test(a[2])?+a[1]:-a[1]))}}if(!isNaN(n)&&!isNaN(i)&&!isNaN(o)){let r={displayName:e,destination:h.fromDegrees(n,i,o)};return Promise.resolve([r])}}return Promise.resolve([])};var Bbe=BK;var Dxt=new oe,kbe=new h,cS=new h;function Ixt(e){let t=e.points,n=e.times;if(t.length<3){let i=n[0],o=1/(n[1]-i),r=t[0],s=t[1];return function(a,c){l(c)||(c=new h);let u=(a-i)*o;return h.lerp(r,s,u,c)}}return function(i,o){l(o)||(o=new h);let r=e._lastTimeIndex=e.findTimeInterval(i,e._lastTimeIndex),s=(i-n[r])/(n[r+1]-n[r]),a=Dxt;a.z=s,a.y=s*s,a.x=a.y*s,a.w=1;let c,u,f,d,p;return r===0?(c=t[0],u=t[1],f=e.firstTangent,d=h.subtract(t[2],c,kbe),h.multiplyByScalar(d,.5,d),p=F.multiplyByVector(ux.hermiteCoefficientMatrix,a,a)):r===t.length-2?(c=t[r],u=t[r+1],d=e.lastTangent,f=h.subtract(u,t[r-1],kbe),h.multiplyByScalar(f,.5,f),p=F.multiplyByVector(ux.hermiteCoefficientMatrix,a,a)):(c=t[r-1],u=t[r],f=t[r+1],d=t[r+2],p=F.multiplyByVector(e0.catmullRomCoefficientMatrix,a,a)),o=h.multiplyByScalar(c,p.x,o),h.multiplyByScalar(u,p.y,cS),h.add(o,cS,o),h.multiplyByScalar(f,p.z,cS),h.add(o,cS,o),h.multiplyByScalar(d,p.w,cS),h.add(o,cS,o)}}var Pxt=new h,Rxt=new h;function e0(e){e=y(e,y.EMPTY_OBJECT);let t=e.points,n=e.times,i=e.firstTangent,o=e.lastTangent;if(t.length>2&&(l(i)||(i=Pxt,h.multiplyByScalar(t[1],2,i),h.subtract(i,t[2],i),h.subtract(i,t[0],i),h.multiplyByScalar(i,.5,i)),!l(o))){let r=t.length-1;o=Rxt,h.multiplyByScalar(t[r-1],2,o),h.subtract(t[r],o,o),h.add(o,t[r-2],o),h.multiplyByScalar(o,.5,o)}this._times=n,this._points=t,this._firstTangent=h.clone(i),this._lastTangent=h.clone(o),this._evaluateFunction=Ixt(this),this._lastTimeIndex=0}Object.defineProperties(e0.prototype,{times:{get:function(){return this._times}},points:{get:function(){return this._points}},firstTangent:{get:function(){return this._firstTangent}},lastTangent:{get:function(){return this._lastTangent}}});e0.catmullRomCoefficientMatrix=new F(-.5,1,-.5,0,1.5,-2.5,0,1,-1.5,2,.5,0,.5,-.5,0,0);e0.prototype.findTimeInterval=eo.prototype.findTimeInterval;e0.prototype.wrapTime=eo.prototype.wrapTime;e0.prototype.clampTime=eo.prototype.clampTime;e0.prototype.evaluate=function(e,t){return this._evaluateFunction(e,t)};var Vbe=e0;var OH={};OH.clipTriangleAtAxisAlignedThreshold=function(e,t,n,i,o,r){l(r)?r.length=0:r=[];let s,a,c;t?(s=n<e,a=i<e,c=o<e):(s=n>e,a=i>e,c=o>e);let u=s+a+c,f,d,p,g,m,x;return u===1?s?(f=(e-n)/(i-n),d=(e-n)/(o-n),r.push(1),r.push(2),d!==1&&(r.push(-1),r.push(0),r.push(2),r.push(d)),f!==1&&(r.push(-1),r.push(0),r.push(1),r.push(f))):a?(p=(e-i)/(o-i),g=(e-i)/(n-i),r.push(2),r.push(0),g!==1&&(r.push(-1),r.push(1),r.push(0),r.push(g)),p!==1&&(r.push(-1),r.push(1),r.push(2),r.push(p))):c&&(m=(e-o)/(n-o),x=(e-o)/(i-o),r.push(0),r.push(1),x!==1&&(r.push(-1),r.push(2),r.push(1),r.push(x)),m!==1&&(r.push(-1),r.push(2),r.push(0),r.push(m))):u===2?!s&&n!==e?(g=(e-i)/(n-i),m=(e-o)/(n-o),r.push(0),r.push(-1),r.push(1),r.push(0),r.push(g),r.push(-1),r.push(2),r.push(0),r.push(m)):!a&&i!==e?(x=(e-o)/(i-o),f=(e-n)/(i-n),r.push(1),r.push(-1),r.push(2),r.push(1),r.push(x),r.push(-1),r.push(0),r.push(1),r.push(f)):!c&&o!==e&&(d=(e-n)/(o-n),p=(e-i)/(o-i),r.push(2),r.push(-1),r.push(0),r.push(2),r.push(d),r.push(-1),r.push(1),r.push(2),r.push(p)):u!==3&&(r.push(0),r.push(1),r.push(2)),r};OH.computeBarycentricCoordinates=function(e,t,n,i,o,r,s,a,c){let u=n-s,f=s-o,d=r-a,p=i-a,g=1/(d*u+f*p),m=t-a,x=e-s,b=(d*x+f*m)*g,T=(-p*x+u*m)*g,A=1-b-T;return l(c)?(c.x=b,c.y=T,c.z=A,c):new h(b,T,A)};OH.computeLineSegmentLineSegmentIntersection=function(e,t,n,i,o,r,s,a,c){let u=(s-o)*(t-r)-(a-r)*(e-o),f=(n-e)*(t-r)-(i-t)*(e-o),d=(a-r)*(n-e)-(s-o)*(i-t);if(d===0)return;let p=u/d,g=f/d;if(p>=0&&p<=1&&g>=0&&g<=1)return l(c)||(c=new U),c.x=e+p*(n-e),c.y=t+p*(i-t),c};var t0=OH;function n0(e){this._quantizedVertices=e.quantizedVertices,this._encodedNormals=e.encodedNormals,this._indices=e.indices,this._minimumHeight=e.minimumHeight,this._maximumHeight=e.maximumHeight,this._boundingSphere=e.boundingSphere,this._orientedBoundingBox=e.orientedBoundingBox,this._horizonOcclusionPoint=e.horizonOcclusionPoint,this._credits=e.credits;let t=this._quantizedVertices.length/3,n=this._uValues=this._quantizedVertices.subarray(0,t),i=this._vValues=this._quantizedVertices.subarray(t,2*t);this._heightValues=this._quantizedVertices.subarray(2*t,3*t);function o(s,a){return i[s]-i[a]}function r(s,a){return n[s]-n[a]}this._westIndices=LH(e.westIndices,o,t),this._southIndices=LH(e.southIndices,r,t),this._eastIndices=LH(e.eastIndices,o,t),this._northIndices=LH(e.northIndices,r,t),this._westSkirtHeight=e.westSkirtHeight,this._southSkirtHeight=e.southSkirtHeight,this._eastSkirtHeight=e.eastSkirtHeight,this._northSkirtHeight=e.northSkirtHeight,this._childTileMask=y(e.childTileMask,15),this._createdByUpsampling=y(e.createdByUpsampling,!1),this._waterMask=e.waterMask,this._mesh=void 0}Object.defineProperties(n0.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){return this._waterMask}},childTileMask:{get:function(){return this._childTileMask}},canUpsample:{get:function(){return l(this._mesh)}}});var MH=[];function LH(e,t,n){MH.length=e.length;let i=!1;for(let o=0,r=e.length;o<r;++o)MH[o]=e[o],i=i||o>0&&t(e[o-1],e[o])>0;return i?(MH.sort(t),Ne.createTypedArray(n,MH)):e}var Ube="createVerticesFromQuantizedTerrainMesh",Oxt=new _i(Ube),Mxt=new _i(Ube,Am.maximumAsynchronousTasks);n0.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid,u=t.tileXYToRectangle(n,i,o),d=(a?Mxt:Oxt).scheduleTask({minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,quantizedVertices:this._quantizedVertices,octEncodedNormals:this._encodedNormals,includeWebMercatorT:!0,indices:this._indices,westIndices:this._westIndices,southIndices:this._southIndices,eastIndices:this._eastIndices,northIndices:this._northIndices,westSkirtHeight:this._westSkirtHeight,southSkirtHeight:this._southSkirtHeight,eastSkirtHeight:this._eastSkirtHeight,northSkirtHeight:this._northSkirtHeight,rectangle:u,relativeToCenter:this._boundingSphere.center,ellipsoid:c,exaggeration:r,exaggerationRelativeHeight:s});if(!l(d))return;let p=this;return Promise.resolve(d).then(function(g){let m=p._quantizedVertices.length/3,x=m+p._westIndices.length+p._southIndices.length+p._eastIndices.length+p._northIndices.length,b=Ne.createTypedArray(x,g.indices),T=new Float32Array(g.vertices),A=g.center,C=g.minimumHeight,S=g.maximumHeight,v=p._boundingSphere,D=p._orientedBoundingBox,O=y(h.clone(g.occludeePointInScaledSpace),p._horizonOcclusionPoint),R=g.vertexStride,M=jc.clone(g.encoding);return p._mesh=new Yd(A,T,b,g.indexCountWithoutSkirts,m,C,S,v,O,R,D,M,g.westIndicesSouthToNorth,g.southIndicesEastToWest,g.eastIndicesNorthToSouth,g.northIndicesWestToEast),p._quantizedVertices=void 0,p._encodedNormals=void 0,p._indices=void 0,p._uValues=void 0,p._vValues=void 0,p._heightValues=void 0,p._westIndices=void 0,p._southIndices=void 0,p._eastIndices=void 0,p._northIndices=void 0,p._mesh})};var Lxt=new _i("upsampleQuantizedTerrainMesh",Am.maximumAsynchronousTasks);n0.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=Lxt.scheduleTask({vertices:a.vertices,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=Math.min(this._westSkirtHeight,this._eastSkirtHeight);g=Math.min(g,this._southSkirtHeight),g=Math.min(g,this._northSkirtHeight);let m=c?g*.5:this._westSkirtHeight,x=u?g*.5:this._southSkirtHeight,b=c?this._eastSkirtHeight:g*.5,T=u?this._northSkirtHeight:g*.5,A=this._credits;return Promise.resolve(p).then(function(C){let S=new Uint16Array(C.vertices),v=Ne.createTypedArray(S.length/3,C.indices),D;return l(C.encodedNormals)&&(D=new Uint8Array(C.encodedNormals)),new n0({quantizedVertices:S,indices:v,encodedNormals:D,minimumHeight:C.minimumHeight,maximumHeight:C.maximumHeight,boundingSphere:se.clone(C.boundingSphere),orientedBoundingBox:wn.clone(C.orientedBoundingBox),horizonOcclusionPoint:h.clone(C.horizonOcclusionPoint),westIndices:C.westIndices,southIndices:C.southIndices,eastIndices:C.eastIndices,northIndices:C.northIndices,westSkirtHeight:m,southSkirtHeight:x,eastSkirtHeight:b,northSkirtHeight:T,childTileMask:0,credits:A,createdByUpsampling:!0})})};var kK=32767,zbe=new h;n0.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1);i*=kK;let o=P.clamp((n-e.south)/e.height,0,1);return o*=kK,l(this._mesh)?kxt(this,i,o):Vxt(this,i,o)};function Hbe(e,t,n,i,o,r,s,a){let c=Math.min(n,o,s),u=Math.max(n,o,s),f=Math.min(i,r,a),d=Math.max(i,r,a);return e>=c&&e<=u&&t>=f&&t<=d}var Nxt=new U,Fxt=new U,Bxt=new U;function kxt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,Nxt),g=r.decodeTextureCoordinates(o,f,Fxt),m=r.decodeTextureCoordinates(o,d,Bxt);if(Hbe(t,n,p.x,p.y,g.x,g.y,m.x,m.y)){let x=t0.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,zbe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),A=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*A}}}}function Vxt(e,t,n){let i=e._uValues,o=e._vValues,r=e._heightValues,s=e._indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=i[u],g=i[f],m=i[d],x=o[u],b=o[f],T=o[d];if(Hbe(t,n,p,x,g,b,m,T)){let A=t0.computeBarycentricCoordinates(t,n,p,x,g,b,m,T,zbe);if(A.x>=-1e-15&&A.y>=-1e-15&&A.z>=-1e-15){let C=A.x*r[u]+A.y*r[f]+A.z*r[d];return P.lerp(e._minimumHeight,e._maximumHeight,C/kK)}}}}n0.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};n0.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var lS=n0;function Uxt(e){this.resource=e.resource,this.version=e.version,this.isHeightmap=e.isHeightmap,this.tileUrlTemplates=e.tileUrlTemplates,this.availability=e.availability,this.hasVertexNormals=e.hasVertexNormals,this.hasWaterMask=e.hasWaterMask,this.hasMetadata=e.hasMetadata,this.availabilityLevels=e.availabilityLevels,this.availabilityTilesLoaded=e.availabilityTilesLoaded,this.littleEndianExtensionSize=e.littleEndianExtensionSize,this.availabilityPromiseCache={}}function Wbe(e){this.requestVertexNormals=y(e.requestVertexNormals,!1),this.requestWaterMask=y(e.requestWaterMask,!1),this.requestMetadata=y(e.requestMetadata,!0),this.ellipsoid=y(e.ellipsoid,ee.default),this.heightmapWidth=65,this.heightmapStructure=void 0,this.hasWaterMask=!1,this.hasMetadata=!1,this.hasVertexNormals=!1,this.scheme=void 0,this.lastResource=void 0,this.layerJsonResource=void 0,this.previousError=void 0,this.availability=void 0,this.tilingScheme=void 0,this.levelZeroMaximumGeometricError=void 0,this.heightmapStructure=void 0,this.layers=[],this.attribution="",this.overallAvailability=[],this.overallMaxZoom=0,this.tileCredits=[]}Wbe.prototype.build=function(e){e._heightmapWidth=this.heightmapWidth,e._scheme=this.scheme;let t=l(this.lastResource.credits)?this.lastResource.credits:[];e._tileCredits=t.concat(this.tileCredits),e._availability=this.availability,e._tilingScheme=this.tilingScheme,e._requestWaterMask=this.requestWaterMask,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._heightmapStructure=this.heightmapStructure,e._layers=this.layers,e._hasWaterMask=this.hasWaterMask,e._hasVertexNormals=this.hasVertexNormals,e._hasMetadata=this.hasMetadata};async function jbe(e,t,n){if(!t.format){let x="The tile format is not specified in the layer.json file.";throw e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(!t.tiles||t.tiles.length===0){let x="The layer.json file does not specify any tile URL templates.";throw e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let i=!1,o=!1,r=!1,s=!0,a=!1;if(t.format==="heightmap-1.0")a=!0,l(e.heightmapStructure)||(e.heightmapStructure={heightScale:1/5,heightOffset:-1e3,elementsPerHeight:1,stride:1,elementMultiplier:256,isBigEndian:!1,lowestEncodedHeight:0,highestEncodedHeight:256*256-1}),o=!0,e.requestWaterMask=!0;else if(t.format.indexOf("quantized-mesh-1.")!==0){let x=`The tile format "${t.format}" is invalid or not supported.`;throw e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let c=t.tiles,u=t.maxzoom;if(e.overallMaxZoom=Math.max(e.overallMaxZoom,u),!t.projection||t.projection==="EPSG:4326")e.tilingScheme=new qi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else if(t.projection==="EPSG:3857")e.tilingScheme=new us({numberOfLevelZeroTilesX:1,numberOfLevelZeroTilesY:1,ellipsoid:e.ellipsoid});else{let x=`The projection "${t.projection}" is invalid or not supported.`;throw e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}if(e.levelZeroMaximumGeometricError=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.tilingScheme.ellipsoid,e.heightmapWidth,e.tilingScheme.getNumberOfXTilesAtLevel(0)),!t.scheme||t.scheme==="tms"||t.scheme==="slippyMap")e.scheme=t.scheme;else{let x=`The scheme "${t.scheme}" is invalid or not supported.`;throw e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,x),new ce(x)}let f;l(t.extensions)&&t.extensions.indexOf("octvertexnormals")!==-1?i=!0:l(t.extensions)&&t.extensions.indexOf("vertexnormals")!==-1&&(i=!0,s=!1),l(t.extensions)&&t.extensions.indexOf("watermask")!==-1&&(o=!0),l(t.extensions)&&t.extensions.indexOf("metadata")!==-1&&(r=!0);let d=t.metadataAvailability,p=t.available,g;if(l(p)&&!l(d)){g=new Nm(e.tilingScheme,p.length);for(let x=0;x<p.length;++x){let b=p[x],T=e.tilingScheme.getNumberOfYTilesAtLevel(x);l(e.overallAvailability[x])||(e.overallAvailability[x]=[]);for(let A=0;A<b.length;++A){let C=b[A],S=T-C.endY-1,v=T-C.startY-1;e.overallAvailability[x].push([C.startX,S,C.endX,v]),g.addAvailableTileRange(x,C.startX,S,C.endX,v)}}}else l(d)&&(f=new Nm(e.tilingScheme,u),g=new Nm(e.tilingScheme,u),e.overallAvailability[0]=[[0,0,1,0]],g.addAvailableTileRange(0,0,0,1,0));e.hasWaterMask=e.hasWaterMask||o,e.hasVertexNormals=e.hasVertexNormals||i,e.hasMetadata=e.hasMetadata||r,l(t.attribution)&&(e.attribution.length>0&&(e.attribution+=" "),e.attribution+=t.attribution),e.layers.push(new Uxt({resource:e.lastResource,version:t.version,isHeightmap:a,tileUrlTemplates:c,availability:g,hasVertexNormals:i,hasWaterMask:o,hasMetadata:r,availabilityLevels:d,availabilityTilesLoaded:f,littleEndianExtensionSize:s}));let m=t.parentUrl;return l(m)?l(g)?(e.lastResource=e.lastResource.getDerivedResource({url:m}),e.lastResource.appendForwardSlash(),e.layerJsonResource=e.lastResource.getDerivedResource({url:"layer.json"}),await zK(e),!0):(console.log("A layer.json can't have a parentUrl if it does't have an available array."),!0):!0}function zxt(e,t,n){let i=`An error occurred while accessing ${e.layerJsonResource.url}.`;if(l(t)&&(i+=` +${t.message}`),e.previousError=Do.reportError(e.previousError,n,l(n)?n._errorEvent:void 0,i),e.previousError.retry)return zK(e,n);throw new ce(i)}async function Hxt(e,t,n){await jbe(e,t,n);let i=e.overallAvailability.length;if(i>0){let o=e.availability=new Nm(e.tilingScheme,e.overallMaxZoom);for(let r=0;r<i;++r){let s=e.overallAvailability[r];for(let a=0;a<s.length;++a){let c=s[a];o.addAvailableTileRange(r,c[0],c[1],c[2],c[3])}}}if(e.attribution.length>0){let o=new wt(e.attribution);e.tileCredits.push(o)}return!0}async function zK(e,t){try{let n=await e.layerJsonResource.fetchJson();return Hxt(e,n,t)}catch(n){return l(n)&&n.statusCode===404?(await jbe(e,{tilejson:"2.1.0",format:"heightmap-1.0",version:"1.0.0",scheme:"tms",tiles:["{z}/{x}/{y}.terrain?v={version}"]},t),!0):zxt(e,n,t)}}function ih(e){e=y(e,y.EMPTY_OBJECT),this._heightmapWidth=void 0,this._heightmapStructure=void 0,this._hasWaterMask=!1,this._hasVertexNormals=!1,this._hasMetadata=!1,this._scheme=void 0,this._ellipsoid=e.ellipsoid,this._requestVertexNormals=y(e.requestVertexNormals,!1),this._requestWaterMask=y(e.requestWaterMask,!1),this._requestMetadata=y(e.requestMetadata,!0),this._errorEvent=new me;let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._availability=void 0,this._tilingScheme=void 0,this._levelZeroMaximumGeometricError=void 0,this._layers=void 0,this._tileCredits=void 0}var VK={OCT_VERTEX_NORMALS:1,WATER_MASK:2,METADATA:4};function Gbe(e){return!l(e)||e.length===0?{Accept:"application/vnd.quantized-mesh,application/octet-stream;q=0.9,*/*;q=0.01"}:{Accept:`application/vnd.quantized-mesh;extensions=${e.join("-")},application/octet-stream;q=0.9,*/*;q=0.01`}}function Gxt(e,t,n,i,o){let r=new Uint16Array(t,0,e._heightmapWidth*e._heightmapWidth);return new rc({buffer:r,childTileMask:new Uint8Array(t,r.byteLength,1)[0],waterMask:new Uint8Array(t,r.byteLength+1,t.byteLength-r.byteLength-1),width:e._heightmapWidth,height:e._heightmapWidth,structure:e._heightmapStructure,credits:e._tileCredits})}function Wxt(e,t,n,i,o,r){let s=r.littleEndianExtensionSize,a=0,c=3,u=c+1,f=Float64Array.BYTES_PER_ELEMENT*c,d=Float64Array.BYTES_PER_ELEMENT*u,g=Uint16Array.BYTES_PER_ELEMENT*3,m=3,x=Uint16Array.BYTES_PER_ELEMENT,b=x*m,T=new DataView(t),A=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let C=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let S=T.getFloat32(a,!0);a+=Float32Array.BYTES_PER_ELEMENT;let v=new se(new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0)),T.getFloat64(a+f,!0));a+=d;let D=new h(T.getFloat64(a,!0),T.getFloat64(a+8,!0),T.getFloat64(a+16,!0));a+=f;let O=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let R=new Uint16Array(t,a,O*3);a+=O*g,O>64*1024&&(x=Uint32Array.BYTES_PER_ELEMENT,b=x*m);let M=R.subarray(0,O),L=R.subarray(O,2*O),_=R.subarray(O*2,3*O);Ln.zigZagDeltaDecode(M,L,_),a%x!==0&&(a+=x-a%x);let E=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let w=Ne.createTypedArrayFromArrayBuffer(O,t,a,E*m);a+=E*b;let I=0,N=w.length;for(let ae=0;ae<N;++ae){let _e=w[ae];w[ae]=I-_e,_e===0&&++I}let B=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let H=Ne.createTypedArrayFromArrayBuffer(O,t,a,B);a+=B*x;let V=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let G=Ne.createTypedArrayFromArrayBuffer(O,t,a,V);a+=V*x;let k=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let W=Ne.createTypedArrayFromArrayBuffer(O,t,a,k);a+=k*x;let q=T.getUint32(a,!0);a+=Uint32Array.BYTES_PER_ELEMENT;let J=Ne.createTypedArrayFromArrayBuffer(O,t,a,q);a+=q*x;let j,Z;for(;a<T.byteLength;){let ae=T.getUint8(a,!0);a+=Uint8Array.BYTES_PER_ELEMENT;let _e=T.getUint32(a,s);if(a+=Uint32Array.BYTES_PER_ELEMENT,ae===VK.OCT_VERTEX_NORMALS&&e._requestVertexNormals)j=new Uint8Array(t,a,O*2);else if(ae===VK.WATER_MASK&&e._requestWaterMask)Z=new Uint8Array(t,a,_e);else if(ae===VK.METADATA&&e._requestMetadata){let xe=T.getUint32(a,!0);if(xe>0){let Ce=Lo(new Uint8Array(t),a+Uint32Array.BYTES_PER_ELEMENT,xe).available;if(l(Ce))for(let ke=0;ke<Ce.length;++ke){let He=n+ke+1,rt=Ce[ke],Lt=e._tilingScheme.getNumberOfYTilesAtLevel(He);for(let Tt=0;Tt<rt.length;++Tt){let we=rt[Tt],Xe=Lt-we.endY-1,Qe=Lt-we.startY-1;e.availability.addAvailableTileRange(He,we.startX,Xe,we.endX,Qe),r.availability.addAvailableTileRange(He,we.startX,Xe,we.endX,Qe)}}}r.availabilityTilesLoaded.addAvailableTileRange(n,i,o,i,o)}a+=_e}let Q=e.getLevelMaximumGeometricError(n)*5,de=e._tilingScheme.tileXYToRectangle(i,o,n),ye=wn.fromRectangle(de,C,S,e._tilingScheme.ellipsoid);return new lS({center:A,minimumHeight:C,maximumHeight:S,boundingSphere:v,orientedBoundingBox:ye,horizonOcclusionPoint:D,quantizedVertices:R,encodedNormals:j,indices:w,westIndices:H,southIndices:G,eastIndices:W,northIndices:J,westSkirtHeight:Q,southSkirtHeight:Q,eastSkirtHeight:Q,northSkirtHeight:Q,childTileMask:e.availability.computeChildMaskForTile(n,i,o),waterMask:Z,credits:e._tileCredits})}ih.prototype.requestTileGeometry=function(e,t,n,i){let o=this._layers,r,s=o.length,a=!1,c=Promise.resolve();if(s===1)r=o[0];else for(let u=0;u<s;++u){let f=o[u];if(!l(f.availability)||f.availability.isTileAvailable(n,e,t)){r=f;break}let d=HK(this,e,t,n,f,u===0);d.result&&(a=!0,c=c.then(()=>d.promise))}return!l(r)&&a?c.then(()=>new Promise(u=>{setTimeout(()=>{let f=this.requestTileGeometry(e,t,n,i);u(f)},0)})):qbe(this,e,t,n,r,i)};function qbe(e,t,n,i,o,r){if(!l(o))return Promise.reject(new ce("Terrain tile doesn't exist"));let s=o.tileUrlTemplates;if(s.length===0)return;let a;!e._scheme||e._scheme==="tms"?a=e._tilingScheme.getNumberOfYTilesAtLevel(i)-n-1:a=n;let c=[];e._requestVertexNormals&&o.hasVertexNormals&&c.push(o.littleEndianExtensionSize?"octvertexnormals":"vertexnormals"),e._requestWaterMask&&o.hasWaterMask&&c.push("watermask"),e._requestMetadata&&o.hasMetadata&&c.push("metadata");let u,f,d=s[(t+a+i)%s.length],p=o.resource;l(p._ionEndpoint)&&!l(p._ionEndpoint.externalType)?(c.length!==0&&(f={extensions:c.join("-")}),u=Gbe(void 0)):u=Gbe(c);let g=p.getDerivedResource({url:d,templateValues:{version:o.version,z:i,x:t,y:a},queryParameters:f,headers:u,request:r}).fetchArrayBuffer();if(l(g))return g.then(function(m){return l(m)?l(e._heightmapStructure)?Gxt(e,m,i,t,n):Wxt(e,m,i,t,n,o):Promise.reject(new ce("Mesh buffer doesn't exist."))})}Object.defineProperties(ih.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return this._hasWaterMask&&this._requestWaterMask}},hasVertexNormals:{get:function(){return this._hasVertexNormals&&this._requestVertexNormals}},hasMetadata:{get:function(){return this._hasMetadata&&this._requestMetadata}},requestVertexNormals:{get:function(){return this._requestVertexNormals}},requestWaterMask:{get:function(){return this._requestWaterMask}},requestMetadata:{get:function(){return this._requestMetadata}},availability:{get:function(){return this._availability}}});ih.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};ih.fromIonAssetId=async function(e,t){let n=await ef.fromAssetId(e);return ih.fromUrl(n,t)};ih.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT),e=await Promise.resolve(e);let n=De.createIfNeeded(e);n.appendForwardSlash();let i=new Wbe(t);i.lastResource=n,i.layerJsonResource=i.lastResource.getDerivedResource({url:"layer.json"}),await zK(i);let o=new ih(t);return i.build(o),o};ih.prototype.getTileDataAvailable=function(e,t,n){if(!l(this._availability))return;if(n>this._availability._maximumLevel)return!1;if(this._availability.isTileAvailable(n,e,t))return!0;if(!this._hasMetadata)return!1;let i=this._layers,o=i.length;for(let r=0;r<o;++r)if(HK(this,e,t,n,i[r],r===0).result)return;return!1};ih.prototype.loadTileDataAvailability=function(e,t,n){if(!l(this._availability)||n>this._availability._maximumLevel||this._availability.isTileAvailable(n,e,t)||!this._hasMetadata)return;let i=this._layers,o=i.length;for(let r=0;r<o;++r){let s=HK(this,e,t,n,i[r],r===0);if(l(s.promise))return s.promise}};function UK(e,t,n,i){if(i===0)return;let o=e.availabilityLevels,r=i%o===0?i-o:(i/o|0)*o,s=1<<i-r,a=t/s|0,c=n/s|0;return{level:r,x:a,y:c}}function HK(e,t,n,i,o,r){if(!l(o.availabilityLevels))return{result:!1};let s,a=function(){delete o.availabilityPromiseCache[s]},c=o.availabilityTilesLoaded,u=o.availability,f=UK(o,t,n,i);for(;l(f);){if(u.isTileAvailable(f.level,f.x,f.y)&&!c.isTileAvailable(f.level,f.x,f.y)){let d;if(!r&&(s=`${f.level}-${f.x}-${f.y}`,d=o.availabilityPromiseCache[s],!l(d))){let p=new tr({throttle:!1,throttleByServer:!0,type:ps.TERRAIN});d=qbe(e,f.x,f.y,f.level,o,p),l(d)&&(o.availabilityPromiseCache[s]=d,d.then(a))}return{result:!0,promise:d}}f=UK(o,f.x,f.y,f.level)}return{result:!1}}ih._getAvailabilityTile=UK;var uS=ih;function A_(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,vertexFormat:e.vertexFormat,stRotation:e.stRotation,shadowVolume:e.shadowVolume};this._ellipseGeometry=new Cl(n),this._workerName="createCircleGeometry"}A_.packedLength=Cl.packedLength;A_.pack=function(e,t,n){return Cl.pack(e._ellipseGeometry,t,n)};var Ybe=new Cl({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Pa={center:new h,radius:void 0,ellipsoid:ee.clone(ee.default),height:void 0,extrudedHeight:void 0,granularity:void 0,vertexFormat:new Pe,stRotation:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0,shadowVolume:void 0};A_.unpack=function(e,t,n){let i=Cl.unpack(e,t,Ybe);return Pa.center=h.clone(i._center,Pa.center),Pa.ellipsoid=ee.clone(i._ellipsoid,Pa.ellipsoid),Pa.ellipsoid=ee.clone(i._ellipsoid,Ybe._ellipsoid),Pa.height=i._height,Pa.extrudedHeight=i._extrudedHeight,Pa.granularity=i._granularity,Pa.vertexFormat=Pe.clone(i._vertexFormat,Pa.vertexFormat),Pa.stRotation=i._stRotation,Pa.shadowVolume=i._shadowVolume,l(n)?(Pa.semiMajorAxis=i._semiMajorAxis,Pa.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Cl(Pa),n):(Pa.radius=i._semiMajorAxis,new A_(Pa))};A_.createGeometry=function(e){return Cl.createGeometry(e._ellipseGeometry)};A_.createShadowVolume=function(e,t,n){let i=e._ellipseGeometry._granularity,o=e._ellipseGeometry._ellipsoid,r=t(i,o),s=n(i,o);return new A_({center:e._ellipseGeometry._center,radius:e._ellipseGeometry._semiMajorAxis,ellipsoid:o,stRotation:e._ellipseGeometry._stRotation,granularity:i,extrudedHeight:r,height:s,vertexFormat:Pe.POSITION_ONLY,shadowVolume:!0})};Object.defineProperties(A_.prototype,{rectangle:{get:function(){return this._ellipseGeometry.rectangle}},textureCoordinateRotationPoints:{get:function(){return this._ellipseGeometry.textureCoordinateRotationPoints}}});var Xbe=A_;function fS(e){e=y(e,y.EMPTY_OBJECT);let t=e.radius,n={center:e.center,semiMajorAxis:t,semiMinorAxis:t,ellipsoid:e.ellipsoid,height:e.height,extrudedHeight:e.extrudedHeight,granularity:e.granularity,numberOfVerticalLines:e.numberOfVerticalLines};this._ellipseGeometry=new Pf(n),this._workerName="createCircleOutlineGeometry"}fS.packedLength=Pf.packedLength;fS.pack=function(e,t,n){return Pf.pack(e._ellipseGeometry,t,n)};var jxt=new Pf({center:new h,semiMajorAxis:1,semiMinorAxis:1}),Mu={center:new h,radius:void 0,ellipsoid:ee.clone(ee.UNIT_SPHERE),height:void 0,extrudedHeight:void 0,granularity:void 0,numberOfVerticalLines:void 0,semiMajorAxis:void 0,semiMinorAxis:void 0};fS.unpack=function(e,t,n){let i=Pf.unpack(e,t,jxt);return Mu.center=h.clone(i._center,Mu.center),Mu.ellipsoid=ee.clone(i._ellipsoid,Mu.ellipsoid),Mu.height=i._height,Mu.extrudedHeight=i._extrudedHeight,Mu.granularity=i._granularity,Mu.numberOfVerticalLines=i._numberOfVerticalLines,l(n)?(Mu.semiMajorAxis=i._semiMajorAxis,Mu.semiMinorAxis=i._semiMinorAxis,n._ellipseGeometry=new Pf(Mu),n):(Mu.radius=i._semiMajorAxis,new fS(Mu))};fS.createGeometry=function(e){return Pf.createGeometry(e._ellipseGeometry)};var Kbe=fS;function dS(e){e=y(e,y.EMPTY_OBJECT),this._callback=e.callback,this._tilingScheme=e.tilingScheme,l(this._tilingScheme)||(this._tilingScheme=new qi({ellipsoid:y(e.ellipsoid,ee.default)})),this._width=e.width,this._height=e.height;let t=Math.max(this._width,this._height);this._levelZeroMaximumGeometricError=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(this._tilingScheme.ellipsoid,t,this._tilingScheme.getNumberOfXTilesAtLevel(0)),this._errorEvent=new me;let n=e.credit;typeof n=="string"&&(n=new wt(n)),this._credit=n}Object.defineProperties(dS.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}},width:{get:function(){return this._width}},height:{get:function(){return this._height}}});dS.prototype.requestTileGeometry=function(e,t,n,i){let o=this._callback(e,t,n);if(!l(o))return;let r=this._width,s=this._height;return Promise.resolve(o).then(function(a){let c=a;return Array.isArray(c)&&(c=new Float64Array(c)),new rc({buffer:c,width:r,height:s})})};dS.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};dS.prototype.getTileDataAvailable=function(e,t,n){};dS.prototype.loadTileDataAvailability=function(e,t,n){};var Zbe=dS;function $be(e){this.proxy=e}$be.prototype.getURL=function(e){let t=this.proxy.indexOf("?")===-1?"?":"";return this.proxy+t+encodeURIComponent(e)};var Qbe=$be;var qxt={SEARCH:0,AUTOCOMPLETE:1},Rb=Object.freeze(qxt);function NH(){he.throwInstantiationError()}Object.defineProperties(NH.prototype,{credit:{get:he.throwInstantiationError}});NH.getCreditsFromResult=function(e){if(l(e.attributions))return e.attributions.map(wt.getIonCredit)};NH.prototype.geocode=he.throwInstantiationError;var _P=NH;function Jbe(){he.throwInstantiationError()}Jbe.createGeometry=function(e){he.throwInstantiationError()};var eTe=Jbe;var Qxt=Er(GK(),1);function Yxt(e,t){return(e&t)!==0}var $c=Yxt;var Xxt=[1,2,4,8],tTe=15,Kxt=16,Zxt=64,$xt=128;function Fm(e,t,n,i,o,r){this._bits=e,this.cnodeVersion=t,this.imageryVersion=n,this.terrainVersion=i,this.imageryProvider=o,this.terrainProvider=r,this.ancestorHasTerrain=!1,this.terrainState=void 0}Fm.clone=function(e,t){return l(t)?(t._bits=e._bits,t.cnodeVersion=e.cnodeVersion,t.imageryVersion=e.imageryVersion,t.terrainVersion=e.terrainVersion,t.imageryProvider=e.imageryProvider,t.terrainProvider=e.terrainProvider):t=new Fm(e._bits,e.cnodeVersion,e.imageryVersion,e.terrainVersion,e.imageryProvider,e.terrainProvider),t.ancestorHasTerrain=e.ancestorHasTerrain,t.terrainState=e.terrainState,t};Fm.prototype.setParent=function(e){this.ancestorHasTerrain=e.ancestorHasTerrain||this.hasTerrain()};Fm.prototype.hasSubtree=function(){return $c(this._bits,Kxt)};Fm.prototype.hasImagery=function(){return $c(this._bits,Zxt)};Fm.prototype.hasTerrain=function(){return $c(this._bits,$xt)};Fm.prototype.hasChildren=function(){return $c(this._bits,tTe)};Fm.prototype.hasChild=function(e){return $c(this._bits,Xxt[e])};Fm.prototype.getChildBitmask=function(){return this._bits&tTe};var FH=Fm;function Jxt(e){let t=e.length,n=new ArrayBuffer(t),i=new Uint8Array(n);for(let o=0;o<t;++o)i[o]=e.charCodeAt(o);return n}var ebt=Jxt(`E\xF4\xBD\vy\xE2jE"\x92,\xCDq\xF8IFgQ\0B%\xC6\xE8a,f)\b\xC64\xDCjb%y +wmi\xD6\xF0\x9Ck\x93\xA1\xBDNu\xE0A[\xDF@V\f\xD9\xBBr\x9B\x81|3S\xEEOl\xD4q\xB0{\xC0\x7FEVZ\xADwUe\v3\x92*\xACl5\xC50s\xF83>mF8J\xB4\xDD\xF0.\xDDu\xDA\x8CDt"\xFAa"\f3"So\xAF9D\v\x8C9\xD99L\xB9\xBF\x7F\xAB\\\x8CP_\x9F"ux\xE9\x07q\x91h;\xC1\xC4\x9B\x7F\xF0<VqH\x82'UfYNe\x98u\xA3aF}a?A\0\x9F\xD7\xB44M\xCE\x87F\xB0\xD5\xB8\x8A'{\x8B\xDC+\xBBMg0\xC8\xD1\xF6\\\x8FP\xFA[/F\x9Bn5/'C.\xEB +\f^\xA5s\x1Be4\xE5l.jC'c#U\xA9?q{gC}:\xAF\xCD\xE2TU\x9C\xFDK\xC6\xE2\x9F/(\xED\xCB\\\xC6-f\x07\x88\xA7;/*"N\xB0k.\xDD\r\x95}}G\xBAC\xB2\xB2+>M\xAA>}\xE6\xCEI\x89\xC6\xE6x\fa1-\xA4O\xA5~q \x88\xEC\r1\xE8N\v\0nPh}=\b\r\x95\xA6n\xA3h\x97$[k\xF3#\xF3\xB6s\xB3\r\v@\xC0\x9F\xD8Q]\xFA".j\xDFI\0\xB9\xA0wU\xC6\xEFj\xBF{GL\x7F\x83\xEE\xDC\xDCF\x85\xA9\xADS\x07+S4\x07\xFF\x94Y\xE48\xE81\x83N\xB9XFk\xCB-#\x86\x92p\x005\x88"\xCF1\xB2&/\xE7\xC3u-6,rt\xB0#G\xB7\xD3\xD1&\x857r\xE2\0\x8CD\xCF\xDA3-\xDE\`\x86i#i*|\xCDKQ\r\x95T9w.)\xEA\x1B\xA6P\xA2j\x8FoP\x99\\>T\xFB\xEFP[\v\x07E\x89m(w7\xDB\x8EJfJo\x99 \xE5p\xE2\xB9q~\fmI-z\xFEr\xC7\xF2Y0\x8F\xBB]s\xE5\xC9 \xEAx\xEC \x90\xF0\x8A\x7FB|G\`\xB0\xBD&\xB7q\xB6\xC7\x9F\xD13\x82=\xD3\xAB\xEEc\x99\xC8+S\xA0D\\q\xC6\xCCD2O<\xCA\xC0)=R\xD3aX\xA9}e\xB4\xDC\xCF\r\xF4=\xF1\b\xA9B\xDA# \xD8\xBF^PI\xF8M\xC0\xCBGLO\xF7{+\xD8\xC51\x92;\xB5o\xDCl\r\x92\x88\xD1\x9E\xDB?\xE2\xE9\xDA_\xD4\x84\xE2FaZ\xDEU\xCF\xA4\0\xBE\xFD\xCEg\xF1Ji\x97\xE6 H\xD8]\x7F~\xAEq N\xAE\xC0V\xA9\x91<\x82r\xE7v\xEC)I\xD6]-\x83\xE3\xDB6\xA9;f\x97\x87j\xD5\xB6=P^R\xB9K\xC7sWx\xC9\xF4.Y\x07\x95\x93o\xD0KW>''\xC7\`\xDB;\xED\x9ASD>?\x8D\x92mw\xA2 +\xEB?R\xA8\xC6U^1I7\x85\xF4\xC5&-\xA9\xBF\x8B'T\xDA\xC3j \xE5*x\xB0\xD6\x90pr\xAA\x8Bh\xBD\x88\xF7_H\xB1~\xC0XL?f\xF9>\xE1e\xC0p\xA7\xCF8i\xAF\xF0VldI\x9C'\xADxtO\xC2\x87\xDEV9\0\xDAw\v\xCB-\x1B\x89\xFB5O\xF5\bQ\`\xC1 +ZGM&30x\xDA\xC0\x9CFG\xE2[y\`In7gS +>\xE9\xECF9\xB2\xF14\r\xC6\x84Sun\xE1\fY\xD9\xDE)\x85{II\xA5wy\xBEIV.6\xE7\v:\xBBOb{\xD2M1\x95/\xBD8{\xA8O!\xE1\xECFpv\x95})"x\x88 +\x90\xDD\x9D\\\xDA\xDEQ\xCF\xF0\xFCYRe|3\xDF\xF3H\xDA\xBB*u\xDB\`\xB2\xD4\xFC\xED\x1B\xEC\x7F5\xA8\xFF(1\x07-\xC8\xDC\x88F|\x8A["`);function Lu(e){this.imageryPresent=!0,this.protoImagery=void 0,this.terrainPresent=!0,this.negativeAltitudeExponentBias=32,this.negativeAltitudeThreshold=P.EPSILON12,this.providers={},this.key=void 0,this._resource=void 0,this._quadPacketVersion=1,this._tileInfo={},this._subtreePromises={}}Object.defineProperties(Lu.prototype,{url:{get:function(){return this._resource.url}},proxy:{get:function(){return this._resource.proxy}},resource:{get:function(){return this._resource}}});Lu.fromUrl=async function(e){let t=e;typeof t!="string"&&!(t instanceof De)&&(t=e.url);let n=De.createIfNeeded(t);n.appendForwardSlash();let i=new Lu;i._resource=n;try{await tbt(i),await i.getQuadTreePacket("",i._quadPacketVersion)}catch(o){let r=`An error occurred while accessing ${iTe(i,"",1).url}: ${o}`;throw new ce(r)}return i};Lu.tileXYToQuadKey=function(e,t,n){let i="";for(let o=n;o>=0;--o){let r=1<<o,s=0;$c(t,r)?$c(e,r)&&(s|=1):(s|=2,$c(e,r)||(s|=1)),i+=s}return i};Lu.quadKeyToTileXY=function(e){let t=0,n=0,i=e.length-1;for(let o=i;o>=0;--o){let r=1<<o,s=+e[i-o];$c(s,2)?$c(s,1)||(t|=r):(n|=r,$c(s,1)&&(t|=r))}return{x:t,y:n,level:i}};Lu.prototype.isValid=function(e){let t=this.getTileInformationFromQuadKey(e);if(l(t))return t!==null;let n=!0,i=e,o;for(;i.length>1;)if(o=i.substring(i.length-1),i=i.substring(0,i.length-1),t=this.getTileInformationFromQuadKey(i),l(t)){!t.hasSubtree()&&!t.hasChild(parseInt(o))&&(n=!1);break}else if(t===null){n=!1;break}return n};var nTe=new _i("decodeGoogleEarthEnterprisePacket");Lu.prototype.getQuadTreePacket=function(e,t,n){t=y(t,1),e=y(e,"");let o=iTe(this,e,t,n).fetchArrayBuffer();if(!l(o))return;let r=this._tileInfo,s=this.key;return o.then(function(a){return nTe.scheduleTask({buffer:a,quadKey:e,type:"Metadata",key:s},[a]).then(function(u){let f,d=-1;if(e!==""){d=e.length+1;let m=u[e];f=r[e],f._bits|=m._bits,delete u[e]}let p=Object.keys(u);p.sort(function(m,x){return m.length-x.length});let g=p.length;for(let m=0;m<g;++m){let x=p[m];if(u[x]!==null){let T=FH.clone(u[x]),A=x.length;if(A===d)T.setParent(f);else if(A>1){let C=r[x.substring(0,x.length-1)];T.setParent(C)}r[x]=T}else r[x]=null}})})};Lu.prototype.populateSubtree=function(e,t,n,i){let o=Lu.tileXYToQuadKey(e,t,n);return qK(this,o,i)};function qK(e,t,n){let i=e._tileInfo,o=t,r=i[o];if(l(r)&&(!r.hasSubtree()||r.hasChildren()))return r;for(;r===void 0&&o.length>1;)o=o.substring(0,o.length-1),r=i[o];let s,a=e._subtreePromises,c=a[o];if(l(c))return c.then(function(){return s=new tr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),qK(e,t,s)});if(!l(r)||!r.hasSubtree())return Promise.reject(new ce(`Couldn't load metadata for tile ${t}`));if(c=e.getQuadTreePacket(o,r.cnodeVersion,n),!!l(c))return a[o]=c,c.then(function(){return s=new tr({throttle:n.throttle,throttleByServer:n.throttleByServer,type:n.type,priorityFunction:n.priorityFunction}),qK(e,t,s)}).finally(function(){delete a[o]})}Lu.prototype.getTileInformation=function(e,t,n){let i=Lu.tileXYToQuadKey(e,t,n);return this._tileInfo[i]};Lu.prototype.getTileInformationFromQuadKey=function(e){return this._tileInfo[e]};function iTe(e,t,n,i){return e._resource.getDerivedResource({url:`flatfile?q2-0${t}-q.${n.toString()}`,request:i})}var WK,jK;function tbt(e){let t=e._resource.getDerivedResource({url:"dbRoot.v5",queryParameters:{output:"proto"}});if(!l(jK)){let n=nn("ThirdParty/google-earth-dbroot-parser.js"),i=window.cesiumGoogleEarthDbRootParser;jK=sT(n).then(function(){WK=window.cesiumGoogleEarthDbRootParser(Qxt),l(i)?window.cesiumGoogleEarthDbRootParser=i:delete window.cesiumGoogleEarthDbRootParser})}return jK.then(function(){return t.fetchArrayBuffer()}).then(function(n){let i=WK.EncryptedDbRootProto.decode(new Uint8Array(n)),o=i.encryptionData,r=o.byteOffset,s=r+o.byteLength,a=e.key=o.buffer.slice(r,s);o=i.dbrootData,r=o.byteOffset,s=r+o.byteLength;let c=o.buffer.slice(r,s);return nTe.scheduleTask({buffer:c,type:"DbRoot",key:a},[c])}).then(function(n){let i=WK.DbRootProto.decode(new Uint8Array(n.buffer));if(e.imageryPresent=y(i.imageryPresent,e.imageryPresent),e.protoImagery=i.protoImagery,e.terrainPresent=y(i.terrainPresent,e.terrainPresent),l(i.endSnippet)&&l(i.endSnippet.model)){let a=i.endSnippet.model;e.negativeAltitudeExponentBias=y(a.negativeAltitudeExponentBias,e.negativeAltitudeExponentBias),e.negativeAltitudeThreshold=y(a.compressedNegativeAltitudeThreshold,e.negativeAltitudeThreshold)}l(i.databaseVersion)&&(e._quadPacketVersion=y(i.databaseVersion.quadtreeVersion,e._quadPacketVersion));let o=e.providers,r=y(i.providerInfo,[]),s=r.length;for(let a=0;a<s;++a){let c=r[a],u=c.copyrightString;l(u)&&(o[c.providerId]=new wt(u.value))}}).catch(function(){console.log(`Failed to retrieve ${t.url}. Using defaults.`),e.key=ebt})}var i0=Lu;function Ob(e){e=y(e,y.EMPTY_OBJECT),this._buffer=e.buffer,this._credits=e.credits,this._negativeAltitudeExponentBias=e.negativeAltitudeExponentBias,this._negativeElevationThreshold=e.negativeElevationThreshold;let t=y(e.childTileMask,15),n=t&3;n|=t&4?8:0,n|=t&8?4:0,this._childTileMask=n,this._createdByUpsampling=y(e.createdByUpsampling,!1),this._skirtHeight=void 0,this._bufferType=this._buffer.constructor,this._mesh=void 0,this._minimumHeight=void 0,this._maximumHeight=void 0}Object.defineProperties(Ob.prototype,{credits:{get:function(){return this._credits}},waterMask:{get:function(){}}});var sTe="createVerticesFromGoogleEarthEnterpriseBuffer",nbt=new _i(sTe),ibt=new _i(sTe,Am.maximumAsynchronousTasks),oTe=new re,YK=new re;Ob.prototype.createMesh=function(e){e=y(e,y.EMPTY_OBJECT);let t=e.tilingScheme,n=e.x,i=e.y,o=e.level,r=y(e.exaggeration,1),s=y(e.exaggerationRelativeHeight,0),a=y(e.throttle,!0),c=t.ellipsoid;t.tileXYToNativeRectangle(n,i,o,oTe),t.tileXYToRectangle(n,i,o,YK);let u=c.cartographicToCartesian(re.center(YK)),d=40075.16/(1<<o);this._skirtHeight=Math.min(d*8,1e3);let g=(a?ibt:nbt).scheduleTask({buffer:this._buffer,nativeRectangle:oTe,rectangle:YK,relativeToCenter:u,ellipsoid:c,skirtHeight:this._skirtHeight,exaggeration:r,exaggerationRelativeHeight:s,includeWebMercatorT:!0,negativeAltitudeExponentBias:this._negativeAltitudeExponentBias,negativeElevationThreshold:this._negativeElevationThreshold});if(!l(g))return;let m=this;return g.then(function(x){return m._mesh=new Yd(u,new Float32Array(x.vertices),new Uint16Array(x.indices),x.indexCountWithoutSkirts,x.vertexCountWithoutSkirts,x.minimumHeight,x.maximumHeight,se.clone(x.boundingSphere3D),h.clone(x.occludeePointInScaledSpace),x.numberOfAttributes,wn.clone(x.orientedBoundingBox),jc.clone(x.encoding),x.westIndicesSouthToNorth,x.southIndicesEastToWest,x.eastIndicesNorthToSouth,x.northIndicesWestToEast),m._minimumHeight=x.minimumHeight,m._maximumHeight=x.maximumHeight,m._buffer=void 0,m._mesh})};Ob.prototype.interpolateHeight=function(e,t,n){let i=P.clamp((t-e.west)/e.width,0,1),o=P.clamp((n-e.south)/e.height,0,1);return l(this._mesh)?cbt(this,i,o):fbt(this,i,o,e)};var obt=new _i("upsampleQuantizedTerrainMesh",Am.maximumAsynchronousTasks);Ob.prototype.upsample=function(e,t,n,i,o,r,s){let a=this._mesh;if(!l(this._mesh))return;let c=t*2!==o,u=n*2===r,f=e.ellipsoid,d=e.tileXYToRectangle(o,r,s),p=obt.scheduleTask({vertices:a.vertices,indices:a.indices,indexCountWithoutSkirts:a.indexCountWithoutSkirts,vertexCountWithoutSkirts:a.vertexCountWithoutSkirts,encoding:a.encoding,minimumHeight:this._minimumHeight,maximumHeight:this._maximumHeight,isEastChild:c,isNorthChild:u,childRectangle:d,ellipsoid:f});if(!l(p))return;let g=this;return p.then(function(m){let x=new Uint16Array(m.vertices),b=Ne.createTypedArray(x.length/3,m.indices),T=g._skirtHeight;return new lS({quantizedVertices:x,indices:b,minimumHeight:m.minimumHeight,maximumHeight:m.maximumHeight,boundingSphere:se.clone(m.boundingSphere),orientedBoundingBox:wn.clone(m.orientedBoundingBox),horizonOcclusionPoint:h.clone(m.horizonOcclusionPoint),westIndices:m.westIndices,southIndices:m.southIndices,eastIndices:m.eastIndices,northIndices:m.northIndices,westSkirtHeight:T,southSkirtHeight:T,eastSkirtHeight:T,northSkirtHeight:T,childTileMask:0,createdByUpsampling:!0,credits:g._credits})})};Ob.prototype.isChildAvailable=function(e,t,n,i){let o=2;return n!==e*2&&++o,i!==t*2&&(o-=2),(this._childTileMask&1<<o)!==0};Ob.prototype.wasCreatedByUpsampling=function(){return this._createdByUpsampling};var rbt=new U,sbt=new U,abt=new U,aTe=new h;function cbt(e,t,n){let i=e._mesh,o=i.vertices,r=i.encoding,s=i.indices;for(let a=0,c=s.length;a<c;a+=3){let u=s[a],f=s[a+1],d=s[a+2],p=r.decodeTextureCoordinates(o,u,rbt),g=r.decodeTextureCoordinates(o,f,sbt),m=r.decodeTextureCoordinates(o,d,abt),x=t0.computeBarycentricCoordinates(t,n,p.x,p.y,g.x,g.y,m.x,m.y,aTe);if(x.x>=-1e-15&&x.y>=-1e-15&&x.z>=-1e-15){let b=r.decodeHeight(o,u),T=r.decodeHeight(o,f),A=r.decodeHeight(o,d);return x.x*b+x.y*T+x.z*A}}}var lbt=Uint16Array.BYTES_PER_ELEMENT,rTe=Uint32Array.BYTES_PER_ELEMENT,XK=Int32Array.BYTES_PER_ELEMENT,ubt=Float32Array.BYTES_PER_ELEMENT,KK=Float64Array.BYTES_PER_ELEMENT;function fbt(e,t,n,i){let o=e._buffer,r=0,s=0,a=0;n>.5?(t>.5?(r=2,s=.5):r=3,a=.5):t>.5&&(r=1,s=.5);let c=new DataView(o),u=0;for(let v=0;v<r;++v)u+=c.getUint32(u,!0),u+=rTe;u+=rTe,u+=2*KK;let f=P.toRadians(c.getFloat64(u,!0)*180);u+=KK;let d=P.toRadians(c.getFloat64(u,!0)*180);u+=KK;let p=i.width/f/2,g=i.height/d/2,m=c.getInt32(u,!0);u+=XK;let x=c.getInt32(u,!0)*3;u+=XK,u+=XK;let b=new Array(m),T=new Array(m),A=new Array(m),C;for(C=0;C<m;++C)b[C]=s+c.getUint8(u++)*p,T[C]=a+c.getUint8(u++)*g,A[C]=c.getFloat32(u,!0)*6371010,u+=ubt;let S=new Array(x);for(C=0;C<x;++C)S[C]=c.getUint16(u,!0),u+=lbt;for(C=0;C<x;C+=3){let v=S[C],D=S[C+1],O=S[C+2],R=b[v],M=b[D],L=b[O],_=T[v],E=T[D],w=T[O],I=t0.computeBarycentricCoordinates(t,n,R,_,M,E,L,w,aTe);if(I.x>=-1e-15&&I.y>=-1e-15&&I.z>=-1e-15)return I.x*A[v]+I.y*A[D]+I.z*A[O]}}var gP=Ob;var qf={UNKNOWN:0,NONE:1,SELF:2,PARENT:3},BH=new K;function kH(){this._terrainCache={},this._lastTidy=K.now()}kH.prototype.add=function(e,t){this._terrainCache[e]={buffer:t,timestamp:K.now()}};kH.prototype.get=function(e){let n=this._terrainCache[e];if(l(n))return delete this._terrainCache[e],n.buffer};kH.prototype.tidy=function(){if(K.now(BH),K.secondsDifference(BH,this._lastTidy)>10){let e=this._terrainCache,t=Object.keys(e),n=t.length;for(let i=0;i<n;++i){let o=t[i],r=e[o];K.secondsDifference(BH,r.timestamp)>10&&delete e[o]}K.clone(BH,this._lastTidy)}};function o0(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=new qi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._levelZeroMaximumGeometricError=40075.16,this._terrainCache=new kH,this._terrainPromises={},this._terrainRequests={},this._errorEvent=new me}Object.defineProperties(o0.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tilingScheme:{get:function(){return this._tilingScheme}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});o0.fromMetadata=function(e,t){if(!e.terrainPresent)throw new ce(`The server ${e.url} doesn't have terrain`);let n=new o0(t);return n._metadata=e,n};var dbt=new _i("decodeGoogleEarthEnterprisePacket");function cTe(e,t,n){let i=t.getChildBitmask();if(t.terrainState===qf.PARENT){i=0;for(let o=0;o<4;++o){let r=n.getTileInformationFromQuadKey(e+o.toString());l(r)&&r.hasTerrain()&&(i|=1<<o)}}return i}o0.prototype.requestTileGeometry=function(e,t,n,i){let o=i0.tileXYToQuadKey(e,t,n),r=this._terrainCache,s=this._metadata,a=s.getTileInformationFromQuadKey(o);if(!l(a))return Promise.reject(new ce("Terrain tile doesn't exist"));let c=a.terrainState;l(c)||(c=a.terrainState=qf.UNKNOWN);let u=r.get(o);if(l(u)){let T=s.providers[a.terrainProvider];return Promise.resolve(new gP({buffer:u,childTileMask:cTe(o,a,s),credits:l(T)?[T]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold}))}if(r.tidy(),a.ancestorHasTerrain){if(c===qf.NONE)return Promise.reject(new ce("Terrain tile doesn't exist"))}else return Promise.resolve(new rc({buffer:new Uint8Array(16*16),width:16,height:16}));let f,d=o,p=-1;switch(c){case qf.SELF:p=a.terrainVersion;break;case qf.PARENT:d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),p=f.terrainVersion;break;case qf.UNKNOWN:a.hasTerrain()?p=a.terrainVersion:(d=d.substring(0,d.length-1),f=s.getTileInformationFromQuadKey(d),l(f)&&f.hasTerrain()&&(p=f.terrainVersion));break}if(p<0)return Promise.reject(new ce("Terrain tile doesn't exist"));let g=this._terrainPromises,m=this._terrainRequests,x,b;if(l(g[d]))x=g[d],b=m[d];else{b=i;let T=hbt(this,d,p,b).fetchArrayBuffer();if(!l(T))return;x=T.then(function(A){return l(A)?dbt.scheduleTask({buffer:A,type:"Terrain",key:s.key},[A]).then(function(C){let S=s.getTileInformationFromQuadKey(d);S.terrainState=qf.SELF,r.add(d,C[0]);let v=S.terrainProvider,D=C.length-1;for(let O=0;O<D;++O){let R=d+O.toString(),M=s.getTileInformationFromQuadKey(R);l(M)&&(r.add(R,C[O+1]),M.terrainState=qf.PARENT,M.terrainProvider===0&&(M.terrainProvider=v))}}):Promise.reject(new ce("Failed to load terrain."))}),g[d]=x,m[d]=b,x=x.finally(function(){delete g[d],delete m[d]})}return x.then(function(){let T=r.get(o);if(l(T)){let A=s.providers[a.terrainProvider];return new gP({buffer:T,childTileMask:cTe(o,a,s),credits:l(A)?[A]:void 0,negativeAltitudeExponentBias:s.negativeAltitudeExponentBias,negativeElevationThreshold:s.negativeAltitudeThreshold})}return Promise.reject(new ce("Failed to load terrain."))}).catch(function(T){return b.state===Zn.CANCELLED?(i.state=b.state,Promise.reject(T)):(a.terrainState=qf.NONE,Promise.reject(T))})};o0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};o0.prototype.getTileDataAvailable=function(e,t,n){let i=this._metadata,o=i0.tileXYToQuadKey(e,t,n),r=i.getTileInformation(e,t,n);if(r===null)return!1;if(l(r)){if(!r.ancestorHasTerrain)return!0;let s=r.terrainState;if(s===qf.NONE)return!1;if((!l(s)||s===qf.UNKNOWN)&&(r.terrainState=qf.UNKNOWN,!r.hasTerrain())){o=o.substring(0,o.length-1);let a=i.getTileInformationFromQuadKey(o);if(!l(a)||!a.hasTerrain())return!1}return!0}if(i.isValid(o)){let s=new tr({throttle:!1,throttleByServer:!0,type:ps.TERRAIN});i.populateSubtree(e,t,n,s)}return!1};o0.prototype.loadTileDataAvailability=function(e,t,n){};function hbt(e,t,n,i){return n=l(n)&&n>0?n:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1c-0${t}-t.${n.toString()}`,request:i})}var lTe=o0;var VH={};VH.defaultApiKey=void 0;VH.mapTilesApiEndpoint=new De({url:"https://tile.googleapis.com/v1/"});VH.getDefaultCredit=function(){return new wt('<img src="https://assets.ion.cesium.com/google-credit.png" style="vertical-align: -5px" alt="Google">',!0)};var hS=VH;var yP={};yP.type=void 0;yP.getRequiredDataPoints=he.throwInstantiationError;yP.interpolateOrderZero=he.throwInstantiationError;yP.interpolate=he.throwInstantiationError;var uTe=yP;function ZK(e){this._url=De.createIfNeeded(e),this._url.appendForwardSlash()}Object.defineProperties(ZK.prototype,{url:{get:function(){return this._url}},credit:{get:function(){}}});ZK.prototype.geocode=async function(e,t){return this._url.getDerivedResource({url:t===Rb.AUTOCOMPLETE?"autocomplete":"search",queryParameters:{text:e}}).fetchJson().then(function(i){return i.features.map(function(o){let r,s=o.bbox;if(l(s))r=re.fromDegrees(s[0],s[1],s[2],s[3]);else{let a=o.geometry.coordinates[0],c=o.geometry.coordinates[1];r=h.fromDegrees(a,c)}return{displayName:o.properties.label,destination:r,attributions:i.attributions}})})};var UH=ZK;function $K(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.accessToken,Oh.defaultAccessToken),n=De.createIfNeeded(y(e.server,Oh.defaultServer));n.appendForwardSlash();let i=Oh.getDefaultTokenCredit(t);l(i)&&e.scene.frameState.creditDisplay.addStaticCredit(wt.clone(i));let o=n.getDerivedResource({url:"v1/geocode"});l(t)&&o.appendQueryParameters({access_token:t}),this._accessToken=t,this._server=n,this._pelias=new UH(o)}Object.defineProperties($K.prototype,{credit:{get:function(){}}});$K.prototype.geocode=async function(e,t){return this._pelias.geocode(e,t)};var zH=$K;function HH(){he.throwInstantiationError()}Object.defineProperties(HH.prototype,{ellipsoid:{get:he.throwInstantiationError}});HH.prototype.project=he.throwInstantiationError;HH.prototype.unproject=he.throwInstantiationError;var fTe=HH;function mS(e){e=y(e,y.EMPTY_OBJECT);let t=e.weights,n=e.times;this._times=n,this._weights=t,this._count=t.length/n.length,this._lastTimeIndex=0}Object.defineProperties(mS.prototype,{times:{get:function(){return this._times}},weights:{get:function(){return this._weights}}});mS.prototype.findTimeInterval=eo.prototype.findTimeInterval;mS.prototype.wrapTime=eo.prototype.wrapTime;mS.prototype.clampTime=eo.prototype.clampTime;mS.prototype.evaluate=function(e,t){let n=this.weights,i=this.times,o=this._lastTimeIndex=this.findTimeInterval(e,this._lastTimeIndex),r=(e-i[o])/(i[o+1]-i[o]);l(t)||(t=new Array(this._count));for(let s=0;s<this._count;s++){let a=o*this._count+s;t[s]=n[a]*(1-r)+n[a+this._count]*r}return t};var dTe=mS;function QK(e,t,n){e=De.createIfNeeded(e),e.appendForwardSlash(),e.setQueryParameters({key:t}),this._url=e,this._params=y(n,{}),this._credit=new wt('Geodata copyright <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors',!1)}Object.defineProperties(QK.prototype,{url:{get:function(){return this._url}},params:{get:function(){return this._params}},credit:{get:function(){return this._credit}}});QK.prototype.geocode=async function(e){return this._url.getDerivedResource({url:"json",queryParameters:xt(this._params,{q:e})}).fetchJson().then(function(n){return n.results.map(function(i){let o,r=i.bounds;if(l(r))o=re.fromDegrees(r.southwest.lng,r.southwest.lat,r.northeast.lng,r.northeast.lat);else{let s=i.geometry.lat,a=i.geometry.lng;o=h.fromDegrees(s,a)}return{displayName:i.formatted,destination:o}})})};var hTe=QK;var mbt={packedLength:void 0,pack:he.throwInstantiationError,unpack:he.throwInstantiationError},mTe=mbt;var pbt={packedInterpolationLength:void 0,convertPackedArrayForInterpolation:he.throwInstantiationError,unpackInterpolationResult:he.throwInstantiationError},pTe=pbt;function _Te(){he.throwInstantiationError()}_Te.prototype.getURL=he.throwInstantiationError;var gTe=_Te;function _bt(e,t,n,i,o,r,s){let a=Ri.numberOfPoints(e,t,o),c,u=n.red,f=n.green,d=n.blue,p=n.alpha,g=i.red,m=i.green,x=i.blue,b=i.alpha;if(z.equals(n,i)){for(c=0;c<a;c++)r[s++]=z.floatToByte(u),r[s++]=z.floatToByte(f),r[s++]=z.floatToByte(d),r[s++]=z.floatToByte(p);return s}let T=(g-u)/a,A=(m-f)/a,C=(x-d)/a,S=(b-p)/a,v=s;for(c=0;c<a;c++)r[v++]=z.floatToByte(u+c*T),r[v++]=z.floatToByte(f+c*A),r[v++]=z.floatToByte(d+c*C),r[v++]=z.floatToByte(p+c*S);return v}function xP(e){e=y(e,y.EMPTY_OBJECT);let t=e.positions,n=e.colors,i=y(e.colorsPerVertex,!1);this._positions=t,this._colors=n,this._colorsPerVertex=i,this._arcType=y(e.arcType,tn.GEODESIC),this._granularity=y(e.granularity,P.RADIANS_PER_DEGREE),this._ellipsoid=y(e.ellipsoid,ee.default),this._workerName="createSimplePolylineGeometry";let o=1+t.length*h.packedLength;o+=l(n)?1+n.length*z.packedLength:1,this.packedLength=o+ee.packedLength+3}xP.pack=function(e,t,n){n=y(n,0);let i,o=e._positions,r=o.length;for(t[n++]=r,i=0;i<r;++i,n+=h.packedLength)h.pack(o[i],t,n);let s=e._colors;for(r=l(s)?s.length:0,t[n++]=r,i=0;i<r;++i,n+=z.packedLength)z.pack(s[i],t,n);return ee.pack(e._ellipsoid,t,n),n+=ee.packedLength,t[n++]=e._colorsPerVertex?1:0,t[n++]=e._arcType,t[n]=e._granularity,t};xP.unpack=function(e,t,n){t=y(t,0);let i,o=e[t++],r=new Array(o);for(i=0;i<o;++i,t+=h.packedLength)r[i]=h.unpack(e,t);o=e[t++];let s=o>0?new Array(o):void 0;for(i=0;i<o;++i,t+=z.packedLength)s[i]=z.unpack(e,t);let a=ee.unpack(e,t);t+=ee.packedLength;let c=e[t++]===1,u=e[t++],f=e[t];return l(n)?(n._positions=r,n._colors=s,n._ellipsoid=a,n._colorsPerVertex=c,n._arcType=u,n._granularity=f,n):new xP({positions:r,colors:s,ellipsoid:a,colorsPerVertex:c,arcType:u,granularity:f})};var GH=new Array(2),WH=new Array(2),gbt={positions:GH,height:WH,ellipsoid:void 0,minDistance:void 0,granularity:void 0};xP.createGeometry=function(e){let t=e._positions,n=e._colors,i=e._colorsPerVertex,o=e._arcType,r=e._granularity,s=e._ellipsoid,a=P.chordLength(r,s.maximumRadius),c=l(n)&&!i,u,f=t.length,d,p,g,m,x=0;if(o===tn.GEODESIC||o===tn.RHUMB){let S,v,D;o===tn.GEODESIC?(S=P.chordLength(r,s.maximumRadius),v=Ri.numberOfPoints,D=Ri.generateArc):(S=r,v=Ri.numberOfPointsRhumbLine,D=Ri.generateRhumbArc);let O=Ri.extractHeights(t,s),R=gbt;if(o===tn.GEODESIC?R.minDistance=a:R.granularity=r,R.ellipsoid=s,c){let M=0;for(u=0;u<f-1;u++)M+=v(t[u],t[u+1],S)+1;d=new Float64Array(M*3),g=new Uint8Array(M*4),R.positions=GH,R.height=WH;let L=0;for(u=0;u<f-1;++u){GH[0]=t[u],GH[1]=t[u+1],WH[0]=O[u],WH[1]=O[u+1];let _=D(R);if(l(n)){let E=_.length/3;m=n[u];for(let w=0;w<E;++w)g[L++]=z.floatToByte(m.red),g[L++]=z.floatToByte(m.green),g[L++]=z.floatToByte(m.blue),g[L++]=z.floatToByte(m.alpha)}d.set(_,x),x+=_.length}}else if(R.positions=t,R.height=O,d=new Float64Array(D(R)),l(n)){for(g=new Uint8Array(d.length/3*4),u=0;u<f-1;++u){let L=t[u],_=t[u+1],E=n[u],w=n[u+1];x=_bt(L,_,E,w,a,g,x)}let M=n[f-1];g[x++]=z.floatToByte(M.red),g[x++]=z.floatToByte(M.green),g[x++]=z.floatToByte(M.blue),g[x++]=z.floatToByte(M.alpha)}}else{p=c?f*2-2:f,d=new Float64Array(p*3),g=l(n)?new Uint8Array(p*4):void 0;let S=0,v=0;for(u=0;u<f;++u){let D=t[u];if(c&&u>0&&(h.pack(D,d,S),S+=3,m=n[u-1],g[v++]=z.floatToByte(m.red),g[v++]=z.floatToByte(m.green),g[v++]=z.floatToByte(m.blue),g[v++]=z.floatToByte(m.alpha)),c&&u===f-1)break;h.pack(D,d,S),S+=3,l(n)&&(m=n[u],g[v++]=z.floatToByte(m.red),g[v++]=z.floatToByte(m.green),g[v++]=z.floatToByte(m.blue),g[v++]=z.floatToByte(m.alpha))}}let b=new dn;b.position=new Se({componentDatatype:X.DOUBLE,componentsPerAttribute:3,values:d}),l(n)&&(b.color=new Se({componentDatatype:X.UNSIGNED_BYTE,componentsPerAttribute:4,values:g,normalize:!0})),p=d.length/3;let T=(p-1)*2,A=Ne.createTypedArray(p,T),C=0;for(u=0;u<p-1;++u)A[C++]=u,A[C++]=u+1;return new ft({attributes:b,indices:A,primitiveType:Le.LINES,boundingSphere:se.fromPoints(t)})};var yTe=xP;function pS(e){let t=y(e.radius,1),i={radii:new h(t,t,t),stackPartitions:e.stackPartitions,slicePartitions:e.slicePartitions,vertexFormat:e.vertexFormat};this._ellipsoidGeometry=new aa(i),this._workerName="createSphereGeometry"}pS.packedLength=aa.packedLength;pS.pack=function(e,t,n){return aa.pack(e._ellipsoidGeometry,t,n)};var ybt=new aa,r0={radius:void 0,radii:new h,vertexFormat:new Pe,stackPartitions:void 0,slicePartitions:void 0};pS.unpack=function(e,t,n){let i=aa.unpack(e,t,ybt);return r0.vertexFormat=Pe.clone(i._vertexFormat,r0.vertexFormat),r0.stackPartitions=i._stackPartitions,r0.slicePartitions=i._slicePartitions,l(n)?(h.clone(i._radii,r0.radii),n._ellipsoidGeometry=new aa(r0),n):(r0.radius=i._radii.x,new pS(r0))};pS.createGeometry=function(e){return aa.createGeometry(e._ellipsoidGeometry)};var xTe=pS;function s0(e){}Object.defineProperties(s0.prototype,{ellipsoid:{get:he.throwInstantiationError},rectangle:{get:he.throwInstantiationError},projection:{get:he.throwInstantiationError}});s0.prototype.getNumberOfXTilesAtLevel=he.throwInstantiationError;s0.prototype.getNumberOfYTilesAtLevel=he.throwInstantiationError;s0.prototype.rectangleToNativeRectangle=he.throwInstantiationError;s0.prototype.tileXYToNativeRectangle=he.throwInstantiationError;s0.prototype.tileXYToRectangle=he.throwInstantiationError;s0.prototype.positionToTileXY=he.throwInstantiationError;var bTe=s0;function xbt(e,t){this.rectangle=e,this.maxLevel=t}function TTe(e){this.ellipsoid=y(e.ellipsoid,ee.default),this.tilingScheme=void 0,this.heightmapWidth=void 0,this.heightmapHeight=void 0,this.levelZeroMaximumGeometricError=void 0,this.rectangles=[]}TTe.prototype.build=function(e){e._tilingScheme=this.tilingScheme,e._heightmapWidth=this.heightmapWidth,e._heightmapHeight=this.heightmapHeight,e._levelZeroMaximumGeometricError=this.levelZeroMaximumGeometricError,e._rectangles=this.rectangles};function bbt(e,t){let n=t.getElementsByTagName("SRS")[0].textContent;if(n==="EPSG:4326")e.tilingScheme=new qi({ellipsoid:e.ellipsoid});else throw new ce(`SRS ${n} is not supported`);let i=t.getElementsByTagName("TileFormat")[0];e.heightmapWidth=parseInt(i.getAttribute("width"),10),e.heightmapHeight=parseInt(i.getAttribute("height"),10),e.levelZeroMaximumGeometricError=ls.getEstimatedLevelZeroGeometricErrorForAHeightmap(e.ellipsoid,Math.min(e.heightmapWidth,e.heightmapHeight),e.tilingScheme.getNumberOfXTilesAtLevel(0));let o=t.getElementsByTagName("DataExtent");for(let r=0;r<o.length;++r){let s=o[r],a=P.toRadians(parseFloat(s.getAttribute("minx"))),c=P.toRadians(parseFloat(s.getAttribute("miny"))),u=P.toRadians(parseFloat(s.getAttribute("maxx"))),f=P.toRadians(parseFloat(s.getAttribute("maxy"))),d=parseInt(s.getAttribute("maxlevel"),10);e.rectangles.push(new xbt(new re(a,c,u,f),d))}}function Tbt(e,t,n){let i=`An error occurred while accessing ${e.url}`;throw l(t)&&l(t.message)&&(i=`${i}: ${t.message}`),Do.reportError(void 0,n,l(n)?n._errorEvent:void 0,i),new ce(i)}async function Abt(e,t,n){try{let i=await t.fetchXML();bbt(e,i)}catch(i){Tbt(t,i,n)}}function a0(e){e=y(e,y.EMPTY_OBJECT),this._errorEvent=new me,this._terrainDataStructure={heightScale:1/1e3,heightOffset:-1e3,elementsPerHeight:3,stride:4,elementMultiplier:256,isBigEndian:!0,lowestEncodedHeight:0,highestEncodedHeight:256*256*256-1};let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._tilingScheme=void 0,this._rectangles=[]}Object.defineProperties(a0.prototype,{errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},tilingScheme:{get:function(){return this._tilingScheme}},hasWaterMask:{get:function(){return!1}},hasVertexNormals:{get:function(){return!1}},availability:{get:function(){}}});a0.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=new TTe(t),i=De.createIfNeeded(e);await Abt(n,i);let o=new a0(t);return n.build(o),o._resource=i,o};a0.prototype.requestTileGeometry=function(e,t,n,i){let o=this._tilingScheme.getNumberOfYTilesAtLevel(n),s=this._resource.getDerivedResource({url:`${n}/${e}/${o-t-1}.tif`,queryParameters:{cesium:!0},request:i}).fetchImage({preferImageBitmap:!0});if(!l(s))return;let a=this;return Promise.resolve(s).then(function(c){return new rc({buffer:fh(c),width:a._heightmapWidth,height:a._heightmapHeight,childTileMask:Cbt(a,e,t,n),structure:a._terrainDataStructure})})};a0.prototype.getLevelMaximumGeometricError=function(e){return this._levelZeroMaximumGeometricError/(1<<e)};var ATe=new re;function Cbt(e,t,n,i){let o=e._tilingScheme,r=e._rectangles,s=o.tileXYToRectangle(t,n,i),a=0;for(let c=0;c<r.length&&a!==15;++c){let u=r[c];if(u.maxLevel<=i)continue;let f=u.rectangle,d=re.intersection(f,s,ATe);l(d)&&(jH(o,f,t*2,n*2,i+1)&&(a|=4),jH(o,f,t*2+1,n*2,i+1)&&(a|=8),jH(o,f,t*2,n*2+1,i+1)&&(a|=1),jH(o,f,t*2+1,n*2+1,i+1)&&(a|=2))}return a}function jH(e,t,n,i,o){let r=e.tileXYToRectangle(n,i,o);return l(re.intersection(r,t,ATe))}a0.prototype.getTileDataAvailable=function(e,t,n){};a0.prototype.loadTileDataAvailability=function(e,t,n){};var CTe=a0;function Mb(e){e=y(e,y.EMPTY_OBJECT),this._clock=void 0,this._element=void 0,this._clockSubscription=void 0,this._seekFunction=void 0,this._lastPlaybackRate=void 0,this.clock=e.clock,this.element=e.element,this.epoch=y(e.epoch,ze.MINIMUM_VALUE),this.tolerance=y(e.tolerance,1),this._seeking=!1,this._seekFunction=void 0,this._firstTickAfterSeek=!1}Object.defineProperties(Mb.prototype,{clock:{get:function(){return this._clock},set:function(e){let t=this._clock;t!==e&&(l(t)&&(this._clockSubscription(),this._clockSubscription=void 0),l(e)&&(this._clockSubscription=e.onTick.addEventListener(Mb.prototype._onTick,this)),this._clock=e)}},element:{get:function(){return this._element},set:function(e){let t=this._element;t!==e&&(l(t)&&t.removeEventListener("seeked",this._seekFunction,!1),l(e)&&(this._seeking=!1,this._seekFunction=Ebt(this),e.addEventListener("seeked",this._seekFunction,!1)),this._element=e,this._seeking=!1,this._firstTickAfterSeek=!1)}}});Mb.prototype.destroy=function(){return this.element=void 0,this.clock=void 0,ue(this)};Mb.prototype.isDestroyed=function(){return!1};Mb.prototype._trySetPlaybackRate=function(e){if(this._lastPlaybackRate===e.multiplier)return;let t=this._element;try{t.playbackRate=e.multiplier}catch{t.playbackRate=0}this._lastPlaybackRate=e.multiplier};Mb.prototype._onTick=function(e){let t=this._element;if(!l(t)||t.readyState<2)return;let n=t.paused,i=e.shouldAnimate;if(i===n&&(i?t.play():t.pause()),this._seeking||this._firstTickAfterSeek){this._firstTickAfterSeek=!1;return}this._trySetPlaybackRate(e);let o=e.currentTime,r=y(this.epoch,ze.MINIMUM_VALUE),s=K.secondsDifference(o,r),a=t.duration,c,u=t.currentTime;t.loop?(s=s%a,s<0&&(s=a-s),c=s):s>a?c=a:s<0?c=0:c=s;let f=i?y(this.tolerance,1):.001;Math.abs(c-u)>f&&(this._seeking=!0,t.currentTime=c)};function Ebt(e){return function(){e._seeking=!1,e._firstTickAfterSeek=!0}}var ETe=Mb;var Sbt={VK_FORMAT_UNDEFINED:0,VK_FORMAT_R4G4_UNORM_PACK8:1,VK_FORMAT_R4G4B4A4_UNORM_PACK16:2,VK_FORMAT_B4G4R4A4_UNORM_PACK16:3,VK_FORMAT_R5G6B5_UNORM_PACK16:4,VK_FORMAT_B5G6R5_UNORM_PACK16:5,VK_FORMAT_R5G5B5A1_UNORM_PACK16:6,VK_FORMAT_B5G5R5A1_UNORM_PACK16:7,VK_FORMAT_A1R5G5B5_UNORM_PACK16:8,VK_FORMAT_R8_UNORM:9,VK_FORMAT_R8_SNORM:10,VK_FORMAT_R8_USCALED:11,VK_FORMAT_R8_SSCALED:12,VK_FORMAT_R8_UINT:13,VK_FORMAT_R8_SINT:14,VK_FORMAT_R8_SRGB:15,VK_FORMAT_R8G8_UNORM:16,VK_FORMAT_R8G8_SNORM:17,VK_FORMAT_R8G8_USCALED:18,VK_FORMAT_R8G8_SSCALED:19,VK_FORMAT_R8G8_UINT:20,VK_FORMAT_R8G8_SINT:21,VK_FORMAT_R8G8_SRGB:22,VK_FORMAT_R8G8B8_UNORM:23,VK_FORMAT_R8G8B8_SNORM:24,VK_FORMAT_R8G8B8_USCALED:25,VK_FORMAT_R8G8B8_SSCALED:26,VK_FORMAT_R8G8B8_UINT:27,VK_FORMAT_R8G8B8_SINT:28,VK_FORMAT_R8G8B8_SRGB:29,VK_FORMAT_B8G8R8_UNORM:30,VK_FORMAT_B8G8R8_SNORM:31,VK_FORMAT_B8G8R8_USCALED:32,VK_FORMAT_B8G8R8_SSCALED:33,VK_FORMAT_B8G8R8_UINT:34,VK_FORMAT_B8G8R8_SINT:35,VK_FORMAT_B8G8R8_SRGB:36,VK_FORMAT_R8G8B8A8_UNORM:37,VK_FORMAT_R8G8B8A8_SNORM:38,VK_FORMAT_R8G8B8A8_USCALED:39,VK_FORMAT_R8G8B8A8_SSCALED:40,VK_FORMAT_R8G8B8A8_UINT:41,VK_FORMAT_R8G8B8A8_SINT:42,VK_FORMAT_R8G8B8A8_SRGB:43,VK_FORMAT_B8G8R8A8_UNORM:44,VK_FORMAT_B8G8R8A8_SNORM:45,VK_FORMAT_B8G8R8A8_USCALED:46,VK_FORMAT_B8G8R8A8_SSCALED:47,VK_FORMAT_B8G8R8A8_UINT:48,VK_FORMAT_B8G8R8A8_SINT:49,VK_FORMAT_B8G8R8A8_SRGB:50,VK_FORMAT_A8B8G8R8_UNORM_PACK32:51,VK_FORMAT_A8B8G8R8_SNORM_PACK32:52,VK_FORMAT_A8B8G8R8_USCALED_PACK32:53,VK_FORMAT_A8B8G8R8_SSCALED_PACK32:54,VK_FORMAT_A8B8G8R8_UINT_PACK32:55,VK_FORMAT_A8B8G8R8_SINT_PACK32:56,VK_FORMAT_A8B8G8R8_SRGB_PACK32:57,VK_FORMAT_A2R10G10B10_UNORM_PACK32:58,VK_FORMAT_A2R10G10B10_SNORM_PACK32:59,VK_FORMAT_A2R10G10B10_USCALED_PACK32:60,VK_FORMAT_A2R10G10B10_SSCALED_PACK32:61,VK_FORMAT_A2R10G10B10_UINT_PACK32:62,VK_FORMAT_A2R10G10B10_SINT_PACK32:63,VK_FORMAT_A2B10G10R10_UNORM_PACK32:64,VK_FORMAT_A2B10G10R10_SNORM_PACK32:65,VK_FORMAT_A2B10G10R10_USCALED_PACK32:66,VK_FORMAT_A2B10G10R10_SSCALED_PACK32:67,VK_FORMAT_A2B10G10R10_UINT_PACK32:68,VK_FORMAT_A2B10G10R10_SINT_PACK32:69,VK_FORMAT_R16_UNORM:70,VK_FORMAT_R16_SNORM:71,VK_FORMAT_R16_USCALED:72,VK_FORMAT_R16_SSCALED:73,VK_FORMAT_R16_UINT:74,VK_FORMAT_R16_SINT:75,VK_FORMAT_R16_SFLOAT:76,VK_FORMAT_R16G16_UNORM:77,VK_FORMAT_R16G16_SNORM:78,VK_FORMAT_R16G16_USCALED:79,VK_FORMAT_R16G16_SSCALED:80,VK_FORMAT_R16G16_UINT:81,VK_FORMAT_R16G16_SINT:82,VK_FORMAT_R16G16_SFLOAT:83,VK_FORMAT_R16G16B16_UNORM:84,VK_FORMAT_R16G16B16_SNORM:85,VK_FORMAT_R16G16B16_USCALED:86,VK_FORMAT_R16G16B16_SSCALED:87,VK_FORMAT_R16G16B16_UINT:88,VK_FORMAT_R16G16B16_SINT:89,VK_FORMAT_R16G16B16_SFLOAT:90,VK_FORMAT_R16G16B16A16_UNORM:91,VK_FORMAT_R16G16B16A16_SNORM:92,VK_FORMAT_R16G16B16A16_USCALED:93,VK_FORMAT_R16G16B16A16_SSCALED:94,VK_FORMAT_R16G16B16A16_UINT:95,VK_FORMAT_R16G16B16A16_SINT:96,VK_FORMAT_R16G16B16A16_SFLOAT:97,VK_FORMAT_R32_UINT:98,VK_FORMAT_R32_SINT:99,VK_FORMAT_R32_SFLOAT:100,VK_FORMAT_R32G32_UINT:101,VK_FORMAT_R32G32_SINT:102,VK_FORMAT_R32G32_SFLOAT:103,VK_FORMAT_R32G32B32_UINT:104,VK_FORMAT_R32G32B32_SINT:105,VK_FORMAT_R32G32B32_SFLOAT:106,VK_FORMAT_R32G32B32A32_UINT:107,VK_FORMAT_R32G32B32A32_SINT:108,VK_FORMAT_R32G32B32A32_SFLOAT:109,VK_FORMAT_R64_UINT:110,VK_FORMAT_R64_SINT:111,VK_FORMAT_R64_SFLOAT:112,VK_FORMAT_R64G64_UINT:113,VK_FORMAT_R64G64_SINT:114,VK_FORMAT_R64G64_SFLOAT:115,VK_FORMAT_R64G64B64_UINT:116,VK_FORMAT_R64G64B64_SINT:117,VK_FORMAT_R64G64B64_SFLOAT:118,VK_FORMAT_R64G64B64A64_UINT:119,VK_FORMAT_R64G64B64A64_SINT:120,VK_FORMAT_R64G64B64A64_SFLOAT:121,VK_FORMAT_B10G11R11_UFLOAT_PACK32:122,VK_FORMAT_E5B9G9R9_UFLOAT_PACK32:123,VK_FORMAT_D16_UNORM:124,VK_FORMAT_X8_D24_UNORM_PACK32:125,VK_FORMAT_D32_SFLOAT:126,VK_FORMAT_S8_UINT:127,VK_FORMAT_D16_UNORM_S8_UINT:128,VK_FORMAT_D24_UNORM_S8_UINT:129,VK_FORMAT_D32_SFLOAT_S8_UINT:130,VK_FORMAT_BC1_RGB_UNORM_BLOCK:131,VK_FORMAT_BC1_RGB_SRGB_BLOCK:132,VK_FORMAT_BC1_RGBA_UNORM_BLOCK:133,VK_FORMAT_BC1_RGBA_SRGB_BLOCK:134,VK_FORMAT_BC2_UNORM_BLOCK:135,VK_FORMAT_BC2_SRGB_BLOCK:136,VK_FORMAT_BC3_UNORM_BLOCK:137,VK_FORMAT_BC3_SRGB_BLOCK:138,VK_FORMAT_BC4_UNORM_BLOCK:139,VK_FORMAT_BC4_SNORM_BLOCK:140,VK_FORMAT_BC5_UNORM_BLOCK:141,VK_FORMAT_BC5_SNORM_BLOCK:142,VK_FORMAT_BC6H_UFLOAT_BLOCK:143,VK_FORMAT_BC6H_SFLOAT_BLOCK:144,VK_FORMAT_BC7_UNORM_BLOCK:145,VK_FORMAT_BC7_SRGB_BLOCK:146,VK_FORMAT_ETC2_R8G8B8_UNORM_BLOCK:147,VK_FORMAT_ETC2_R8G8B8_SRGB_BLOCK:148,VK_FORMAT_ETC2_R8G8B8A1_UNORM_BLOCK:149,VK_FORMAT_ETC2_R8G8B8A1_SRGB_BLOCK:150,VK_FORMAT_ETC2_R8G8B8A8_UNORM_BLOCK:151,VK_FORMAT_ETC2_R8G8B8A8_SRGB_BLOCK:152,VK_FORMAT_EAC_R11_UNORM_BLOCK:153,VK_FORMAT_EAC_R11_SNORM_BLOCK:154,VK_FORMAT_EAC_R11G11_UNORM_BLOCK:155,VK_FORMAT_EAC_R11G11_SNORM_BLOCK:156,VK_FORMAT_ASTC_4x4_UNORM_BLOCK:157,VK_FORMAT_ASTC_4x4_SRGB_BLOCK:158,VK_FORMAT_ASTC_5x4_UNORM_BLOCK:159,VK_FORMAT_ASTC_5x4_SRGB_BLOCK:160,VK_FORMAT_ASTC_5x5_UNORM_BLOCK:161,VK_FORMAT_ASTC_5x5_SRGB_BLOCK:162,VK_FORMAT_ASTC_6x5_UNORM_BLOCK:163,VK_FORMAT_ASTC_6x5_SRGB_BLOCK:164,VK_FORMAT_ASTC_6x6_UNORM_BLOCK:165,VK_FORMAT_ASTC_6x6_SRGB_BLOCK:166,VK_FORMAT_ASTC_8x5_UNORM_BLOCK:167,VK_FORMAT_ASTC_8x5_SRGB_BLOCK:168,VK_FORMAT_ASTC_8x6_UNORM_BLOCK:169,VK_FORMAT_ASTC_8x6_SRGB_BLOCK:170,VK_FORMAT_ASTC_8x8_UNORM_BLOCK:171,VK_FORMAT_ASTC_8x8_SRGB_BLOCK:172,VK_FORMAT_ASTC_10x5_UNORM_BLOCK:173,VK_FORMAT_ASTC_10x5_SRGB_BLOCK:174,VK_FORMAT_ASTC_10x6_UNORM_BLOCK:175,VK_FORMAT_ASTC_10x6_SRGB_BLOCK:176,VK_FORMAT_ASTC_10x8_UNORM_BLOCK:177,VK_FORMAT_ASTC_10x8_SRGB_BLOCK:178,VK_FORMAT_ASTC_10x10_UNORM_BLOCK:179,VK_FORMAT_ASTC_10x10_SRGB_BLOCK:180,VK_FORMAT_ASTC_12x10_UNORM_BLOCK:181,VK_FORMAT_ASTC_12x10_SRGB_BLOCK:182,VK_FORMAT_ASTC_12x12_UNORM_BLOCK:183,VK_FORMAT_ASTC_12x12_SRGB_BLOCK:184,VK_FORMAT_G8B8G8R8_422_UNORM:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM:1000156006,VK_FORMAT_R10X6_UNORM_PACK16:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16:1000156016,VK_FORMAT_R12X4_UNORM_PACK16:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM:1000156033,VK_FORMAT_PVRTC1_2BPP_UNORM_BLOCK_IMG:1000054e3,VK_FORMAT_PVRTC1_4BPP_UNORM_BLOCK_IMG:1000054001,VK_FORMAT_PVRTC2_2BPP_UNORM_BLOCK_IMG:1000054002,VK_FORMAT_PVRTC2_4BPP_UNORM_BLOCK_IMG:1000054003,VK_FORMAT_PVRTC1_2BPP_SRGB_BLOCK_IMG:1000054004,VK_FORMAT_PVRTC1_4BPP_SRGB_BLOCK_IMG:1000054005,VK_FORMAT_PVRTC2_2BPP_SRGB_BLOCK_IMG:1000054006,VK_FORMAT_PVRTC2_4BPP_SRGB_BLOCK_IMG:1000054007,VK_FORMAT_ASTC_4x4_SFLOAT_BLOCK_EXT:1000066e3,VK_FORMAT_ASTC_5x4_SFLOAT_BLOCK_EXT:1000066001,VK_FORMAT_ASTC_5x5_SFLOAT_BLOCK_EXT:1000066002,VK_FORMAT_ASTC_6x5_SFLOAT_BLOCK_EXT:1000066003,VK_FORMAT_ASTC_6x6_SFLOAT_BLOCK_EXT:1000066004,VK_FORMAT_ASTC_8x5_SFLOAT_BLOCK_EXT:1000066005,VK_FORMAT_ASTC_8x6_SFLOAT_BLOCK_EXT:1000066006,VK_FORMAT_ASTC_8x8_SFLOAT_BLOCK_EXT:1000066007,VK_FORMAT_ASTC_10x5_SFLOAT_BLOCK_EXT:1000066008,VK_FORMAT_ASTC_10x6_SFLOAT_BLOCK_EXT:1000066009,VK_FORMAT_ASTC_10x8_SFLOAT_BLOCK_EXT:1000066010,VK_FORMAT_ASTC_10x10_SFLOAT_BLOCK_EXT:1000066011,VK_FORMAT_ASTC_12x10_SFLOAT_BLOCK_EXT:1000066012,VK_FORMAT_ASTC_12x12_SFLOAT_BLOCK_EXT:1000066013,VK_FORMAT_G8B8G8R8_422_UNORM_KHR:1000156e3,VK_FORMAT_B8G8R8G8_422_UNORM_KHR:1000156001,VK_FORMAT_G8_B8_R8_3PLANE_420_UNORM_KHR:1000156002,VK_FORMAT_G8_B8R8_2PLANE_420_UNORM_KHR:1000156003,VK_FORMAT_G8_B8_R8_3PLANE_422_UNORM_KHR:1000156004,VK_FORMAT_G8_B8R8_2PLANE_422_UNORM_KHR:1000156005,VK_FORMAT_G8_B8_R8_3PLANE_444_UNORM_KHR:1000156006,VK_FORMAT_R10X6_UNORM_PACK16_KHR:1000156007,VK_FORMAT_R10X6G10X6_UNORM_2PACK16_KHR:1000156008,VK_FORMAT_R10X6G10X6B10X6A10X6_UNORM_4PACK16_KHR:1000156009,VK_FORMAT_G10X6B10X6G10X6R10X6_422_UNORM_4PACK16_KHR:1000156010,VK_FORMAT_B10X6G10X6R10X6G10X6_422_UNORM_4PACK16_KHR:1000156011,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_420_UNORM_3PACK16_KHR:1000156012,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_420_UNORM_3PACK16_KHR:1000156013,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_422_UNORM_3PACK16_KHR:1000156014,VK_FORMAT_G10X6_B10X6R10X6_2PLANE_422_UNORM_3PACK16_KHR:1000156015,VK_FORMAT_G10X6_B10X6_R10X6_3PLANE_444_UNORM_3PACK16_KHR:1000156016,VK_FORMAT_R12X4_UNORM_PACK16_KHR:1000156017,VK_FORMAT_R12X4G12X4_UNORM_2PACK16_KHR:1000156018,VK_FORMAT_R12X4G12X4B12X4A12X4_UNORM_4PACK16_KHR:1000156019,VK_FORMAT_G12X4B12X4G12X4R12X4_422_UNORM_4PACK16_KHR:1000156020,VK_FORMAT_B12X4G12X4R12X4G12X4_422_UNORM_4PACK16_KHR:1000156021,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_420_UNORM_3PACK16_KHR:1000156022,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_420_UNORM_3PACK16_KHR:1000156023,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_422_UNORM_3PACK16_KHR:1000156024,VK_FORMAT_G12X4_B12X4R12X4_2PLANE_422_UNORM_3PACK16_KHR:1000156025,VK_FORMAT_G12X4_B12X4_R12X4_3PLANE_444_UNORM_3PACK16_KHR:1000156026,VK_FORMAT_G16B16G16R16_422_UNORM_KHR:1000156027,VK_FORMAT_B16G16R16G16_422_UNORM_KHR:1000156028,VK_FORMAT_G16_B16_R16_3PLANE_420_UNORM_KHR:1000156029,VK_FORMAT_G16_B16R16_2PLANE_420_UNORM_KHR:1000156030,VK_FORMAT_G16_B16_R16_3PLANE_422_UNORM_KHR:1000156031,VK_FORMAT_G16_B16R16_2PLANE_422_UNORM_KHR:1000156032,VK_FORMAT_G16_B16_R16_3PLANE_444_UNORM_KHR:1000156033},STe=Object.freeze(Sbt);function vbt(e){return e=y(e,y.EMPTY_OBJECT),uS.fromIonAssetId(2426648,{requestVertexNormals:y(e.requestVertexNormals,!1)})}var qH=vbt;function wbt(e){return e=y(e,y.EMPTY_OBJECT),uS.fromIonAssetId(1,{requestVertexNormals:y(e.requestVertexNormals,!1),requestWaterMask:y(e.requestWaterMask,!1),ellipsoid:ee.WGS84})}var _S=wbt;var Dbt=1953029805,Ibt=2917034100;function JK(e,t){if(JK.passThroughDataForTesting)return t;let n=e.byteLength;if(n===0||n%4!==0)throw new ce("The length of key must be greater than 0 and a multiple of 4.");let i=new DataView(t),o=i.getUint32(0,!0);if(o===Dbt||o===Ibt)return t;let r=new DataView(e),s=0,a=t.byteLength,c=a-a%8,u=n,f,d=8;for(;s<c;)for(d=(d+8)%24,f=d;s<c&&f<u;)i.setUint32(s,i.getUint32(s,!0)^r.getUint32(f,!0),!0),i.setUint32(s+4,i.getUint32(s+4,!0)^r.getUint32(f+4,!0),!0),s+=8,f+=24;if(s<a)for(f>=u&&(d=(d+8)%24,f=d);s<a;)i.setUint8(s,i.getUint8(s)^r.getUint8(f)),s++,f++}JK.passThroughDataForTesting=!1;var YH=JK;var Pbt=new h;function Rbt(e,t,n,i){let o=_T(e,t,n,i,Pbt);return l(o)?o.x>0&&o.y>0&&o.z>0:!1}var vTe=Rbt;function Obt(e){return e<=.04045?e*.07739938080495357:Math.pow((e+.055)*.9478672985781991,2.4)}var gS=Obt;function Mbt(e){switch(e){case te.FLOAT:return"float";case te.FLOAT_VEC2:return"vec2";case te.FLOAT_VEC3:return"vec3";case te.FLOAT_VEC4:return"vec4";case te.FLOAT_MAT2:return"mat2";case te.FLOAT_MAT3:return"mat3";case te.FLOAT_MAT4:return"mat4";case te.SAMPLER_2D:return"sampler2D";case te.BOOL:return"bool"}}var wTe=Mbt;function Lbt(e,t,n){return function(){n.apply(e,arguments),t.apply(e,arguments)}}var XH=Lbt;var Nbt=new h(1,1,1);function eZ(e){e=y(e,Nbt),this._dimensions=h.clone(e)}Object.defineProperties(eZ.prototype,{dimensions:{get:function(){return this._dimensions},set:function(e){h.clone(e,this._dimensions)}}});var Fbt=new h;eZ.prototype.emit=function(e){let t=this._dimensions,n=h.multiplyByScalar(t,.5,Fbt),i=P.randomBetween(-n.x,n.x),o=P.randomBetween(-n.y,n.y),r=P.randomBetween(-n.z,n.z);e.position=h.fromElements(i,o,r,e.position),e.velocity=h.normalize(e.position,e.velocity)};var DTe=eZ;function Bm(){this.featurePropertiesDirty=!1}Object.defineProperties(Bm.prototype,{featuresLength:{get:function(){he.throwInstantiationError()}},pointsLength:{get:function(){he.throwInstantiationError()}},trianglesLength:{get:function(){he.throwInstantiationError()}},geometryByteLength:{get:function(){he.throwInstantiationError()}},texturesByteLength:{get:function(){he.throwInstantiationError()}},batchTableByteLength:{get:function(){he.throwInstantiationError()}},innerContents:{get:function(){he.throwInstantiationError()}},ready:{get:function(){he.throwInstantiationError()}},tileset:{get:function(){he.throwInstantiationError()}},tile:{get:function(){he.throwInstantiationError()}},url:{get:function(){he.throwInstantiationError()}},batchTable:{get:function(){he.throwInstantiationError()}},metadata:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}},group:{get:function(){he.throwInstantiationError()},set:function(e){he.throwInstantiationError()}}});Bm.prototype.hasProperty=function(e,t){he.throwInstantiationError()};Bm.prototype.getFeature=function(e){he.throwInstantiationError()};Bm.prototype.applyDebugSettings=function(e,t){he.throwInstantiationError()};Bm.prototype.applyStyle=function(e){he.throwInstantiationError()};Bm.prototype.update=function(e,t){he.throwInstantiationError()};Bm.prototype.pick=function(e,t,n){he.throwInstantiationError()};Bm.prototype.isDestroyed=function(){he.throwInstantiationError()};Bm.prototype.destroy=function(){he.throwInstantiationError()};var ITe=Bm;function yS(e,t){this._conditionsExpression=Ge(e,!0),this._conditions=e.conditions,this._runtimeConditions=void 0,kbt(this,t)}Object.defineProperties(yS.prototype,{conditionsExpression:{get:function(){return this._conditionsExpression}}});function Bbt(e,t){this.condition=e,this.expression=t}function kbt(e,t){let n=[],i=e._conditions;if(!l(i))return;let o=i.length;for(let r=0;r<o;++r){let s=i[r],a=String(s[0]),c=String(s[1]);n.push(new Bbt(new cd(a,t),new cd(c,t)))}e._runtimeConditions=n}yS.prototype.evaluate=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluate(e,t)}};yS.prototype.evaluateColor=function(e,t){let n=this._runtimeConditions;if(!l(n))return;let i=n.length;for(let o=0;o<i;++o){let r=n[o];if(r.condition.evaluate(e))return r.expression.evaluateColor(e,t)}};yS.prototype.getShaderFunction=function(e,t,n,i){let o=this._runtimeConditions;if(!l(o)||o.length===0)return;let r="",s=o.length;for(let a=0;a<s;++a){let c=o[a],u=c.condition.getShaderExpression(t,n),f=c.expression.getShaderExpression(t,n);r+=` ${a===0?"if":"else if"} (${u}) + { + return ${f}; + } +`}return r=`${i} ${e} +{ +${r} return ${i}(1.0); +} +`,r};yS.prototype.getVariables=function(){let e=[],t=this._runtimeConditions;if(!l(t)||t.length===0)return e;let n=t.length;for(let i=0;i<n;++i){let o=t[i];e.push.apply(e,o.condition.getVariables()),e.push.apply(e,o.expression.getVariables())}return e=e.filter(function(i,o,r){return r.indexOf(i)===o}),e};var KH=yS;function c0(e){this._style={},this._ready=!1,this._show=void 0,this._color=void 0,this._pointSize=void 0,this._pointOutlineColor=void 0,this._pointOutlineWidth=void 0,this._labelColor=void 0,this._labelOutlineColor=void 0,this._labelOutlineWidth=void 0,this._font=void 0,this._labelStyle=void 0,this._labelText=void 0,this._backgroundColor=void 0,this._backgroundPadding=void 0,this._backgroundEnabled=void 0,this._scaleByDistance=void 0,this._translucencyByDistance=void 0,this._distanceDisplayCondition=void 0,this._heightOffset=void 0,this._anchorLineEnabled=void 0,this._anchorLineColor=void 0,this._image=void 0,this._disableDepthTestDistance=void 0,this._horizontalOrigin=void 0,this._verticalOrigin=void 0,this._labelHorizontalOrigin=void 0,this._labelVerticalOrigin=void 0,this._meta=void 0,this._colorShaderFunction=void 0,this._showShaderFunction=void 0,this._pointSizeShaderFunction=void 0,this._colorShaderFunctionReady=!1,this._showShaderFunctionReady=!1,this._pointSizeShaderFunctionReady=!1,this._colorShaderTranslucent=!1,Vbt(this,e)}function Vbt(e,t){t=y(Ge(t,!0),e._style),e._style=t,e.show=t.show,e.color=t.color,e.pointSize=t.pointSize,e.pointOutlineColor=t.pointOutlineColor,e.pointOutlineWidth=t.pointOutlineWidth,e.labelColor=t.labelColor,e.labelOutlineColor=t.labelOutlineColor,e.labelOutlineWidth=t.labelOutlineWidth,e.labelStyle=t.labelStyle,e.font=t.font,e.labelText=t.labelText,e.backgroundColor=t.backgroundColor,e.backgroundPadding=t.backgroundPadding,e.backgroundEnabled=t.backgroundEnabled,e.scaleByDistance=t.scaleByDistance,e.translucencyByDistance=t.translucencyByDistance,e.distanceDisplayCondition=t.distanceDisplayCondition,e.heightOffset=t.heightOffset,e.anchorLineEnabled=t.anchorLineEnabled,e.anchorLineColor=t.anchorLineColor,e.image=t.image,e.disableDepthTestDistance=t.disableDepthTestDistance,e.horizontalOrigin=t.horizontalOrigin,e.verticalOrigin=t.verticalOrigin,e.labelHorizontalOrigin=t.labelHorizontalOrigin,e.labelVerticalOrigin=t.labelVerticalOrigin;let n={};if(l(t.meta)){let i=t.defines,o=y(t.meta,y.EMPTY_OBJECT);for(let r in o)o.hasOwnProperty(r)&&(n[r]=new cd(o[r],i))}e._meta=n,e._ready=!0}function Qo(e,t){let n=y(e._style,y.EMPTY_OBJECT).defines;if(l(t)){if(typeof t=="boolean"||typeof t=="number")return new cd(String(t));if(typeof t=="string")return new cd(t,n);if(l(t.conditions))return new KH(t,n)}else return;return t}function Jo(e){if(l(e)){if(l(e.expression))return e.expression;if(l(e.conditionsExpression))return Ge(e.conditionsExpression,!0)}else return;return e}Object.defineProperties(c0.prototype,{style:{get:function(){return this._style}},show:{get:function(){return this._show},set:function(e){this._show=Qo(this,e),this._style.show=Jo(this._show),this._showShaderFunctionReady=!1}},color:{get:function(){return this._color},set:function(e){this._color=Qo(this,e),this._style.color=Jo(this._color),this._colorShaderFunctionReady=!1}},pointSize:{get:function(){return this._pointSize},set:function(e){this._pointSize=Qo(this,e),this._style.pointSize=Jo(this._pointSize),this._pointSizeShaderFunctionReady=!1}},pointOutlineColor:{get:function(){return this._pointOutlineColor},set:function(e){this._pointOutlineColor=Qo(this,e),this._style.pointOutlineColor=Jo(this._pointOutlineColor)}},pointOutlineWidth:{get:function(){return this._pointOutlineWidth},set:function(e){this._pointOutlineWidth=Qo(this,e),this._style.pointOutlineWidth=Jo(this._pointOutlineWidth)}},labelColor:{get:function(){return this._labelColor},set:function(e){this._labelColor=Qo(this,e),this._style.labelColor=Jo(this._labelColor)}},labelOutlineColor:{get:function(){return this._labelOutlineColor},set:function(e){this._labelOutlineColor=Qo(this,e),this._style.labelOutlineColor=Jo(this._labelOutlineColor)}},labelOutlineWidth:{get:function(){return this._labelOutlineWidth},set:function(e){this._labelOutlineWidth=Qo(this,e),this._style.labelOutlineWidth=Jo(this._labelOutlineWidth)}},font:{get:function(){return this._font},set:function(e){this._font=Qo(this,e),this._style.font=Jo(this._font)}},labelStyle:{get:function(){return this._labelStyle},set:function(e){this._labelStyle=Qo(this,e),this._style.labelStyle=Jo(this._labelStyle)}},labelText:{get:function(){return this._labelText},set:function(e){this._labelText=Qo(this,e),this._style.labelText=Jo(this._labelText)}},backgroundColor:{get:function(){return this._backgroundColor},set:function(e){this._backgroundColor=Qo(this,e),this._style.backgroundColor=Jo(this._backgroundColor)}},backgroundPadding:{get:function(){return this._backgroundPadding},set:function(e){this._backgroundPadding=Qo(this,e),this._style.backgroundPadding=Jo(this._backgroundPadding)}},backgroundEnabled:{get:function(){return this._backgroundEnabled},set:function(e){this._backgroundEnabled=Qo(this,e),this._style.backgroundEnabled=Jo(this._backgroundEnabled)}},scaleByDistance:{get:function(){return this._scaleByDistance},set:function(e){this._scaleByDistance=Qo(this,e),this._style.scaleByDistance=Jo(this._scaleByDistance)}},translucencyByDistance:{get:function(){return this._translucencyByDistance},set:function(e){this._translucencyByDistance=Qo(this,e),this._style.translucencyByDistance=Jo(this._translucencyByDistance)}},distanceDisplayCondition:{get:function(){return this._distanceDisplayCondition},set:function(e){this._distanceDisplayCondition=Qo(this,e),this._style.distanceDisplayCondition=Jo(this._distanceDisplayCondition)}},heightOffset:{get:function(){return this._heightOffset},set:function(e){this._heightOffset=Qo(this,e),this._style.heightOffset=Jo(this._heightOffset)}},anchorLineEnabled:{get:function(){return this._anchorLineEnabled},set:function(e){this._anchorLineEnabled=Qo(this,e),this._style.anchorLineEnabled=Jo(this._anchorLineEnabled)}},anchorLineColor:{get:function(){return this._anchorLineColor},set:function(e){this._anchorLineColor=Qo(this,e),this._style.anchorLineColor=Jo(this._anchorLineColor)}},image:{get:function(){return this._image},set:function(e){this._image=Qo(this,e),this._style.image=Jo(this._image)}},disableDepthTestDistance:{get:function(){return this._disableDepthTestDistance},set:function(e){this._disableDepthTestDistance=Qo(this,e),this._style.disableDepthTestDistance=Jo(this._disableDepthTestDistance)}},horizontalOrigin:{get:function(){return this._horizontalOrigin},set:function(e){this._horizontalOrigin=Qo(this,e),this._style.horizontalOrigin=Jo(this._horizontalOrigin)}},verticalOrigin:{get:function(){return this._verticalOrigin},set:function(e){this._verticalOrigin=Qo(this,e),this._style.verticalOrigin=Jo(this._verticalOrigin)}},labelHorizontalOrigin:{get:function(){return this._labelHorizontalOrigin},set:function(e){this._labelHorizontalOrigin=Qo(this,e),this._style.labelHorizontalOrigin=Jo(this._labelHorizontalOrigin)}},labelVerticalOrigin:{get:function(){return this._labelVerticalOrigin},set:function(e){this._labelVerticalOrigin=Qo(this,e),this._style.labelVerticalOrigin=Jo(this._labelVerticalOrigin)}},meta:{get:function(){return this._meta},set:function(e){this._meta=e}}});c0.fromUrl=function(e){return De.createIfNeeded(e).fetchJson(e).then(function(n){return new c0(n)})};c0.prototype.getColorShaderFunction=function(e,t,n){return this._colorShaderFunctionReady?(n.translucent=this._colorShaderTranslucent,this._colorShaderFunction):(this._colorShaderFunctionReady=!0,l(this.color)&&l(this.color.getShaderFunction)?this._colorShaderFunction=this.color.getShaderFunction(e,t,n,"vec4"):this._colorShaderFunction=void 0,this._colorShaderTranslucent=n.translucent,this._colorShaderFunction)};c0.prototype.getShowShaderFunction=function(e,t,n){return this._showShaderFunctionReady?this._showShaderFunction:(this._showShaderFunctionReady=!0,l(this.show)&&l(this.show.getShaderFunction)?this._showShaderFunction=this.show.getShaderFunction(e,t,n,"bool"):this._showShaderFunction=void 0,this._showShaderFunction)};c0.prototype.getPointSizeShaderFunction=function(e,t,n){return this._pointSizeShaderFunctionReady?this._pointSizeShaderFunction:(this._pointSizeShaderFunctionReady=!0,l(this.pointSize)&&l(this.pointSize.getShaderFunction)?this._pointSizeShaderFunction=this.pointSize.getShaderFunction(e,t,n,"float"):this._pointSizeShaderFunction=void 0,this._pointSizeShaderFunction)};c0.prototype.getVariables=function(){let e=[];return l(this.color)&&l(this.color.getVariables)&&e.push.apply(e,this.color.getVariables()),l(this.show)&&l(this.show.getVariables)&&e.push.apply(e,this.show.getVariables()),l(this.pointSize)&&l(this.pointSize.getVariables)&&e.push.apply(e,this.pointSize.getVariables()),e=e.filter(function(t,n,i){return i.indexOf(t)===n}),e};var xS=c0;function bP(e){e=y(e,y.EMPTY_OBJECT),this._maximumSubtreeCount=y(e.maximumSubtreeCount,0),this._subtreeRequestCounter=0,this._queue=new $E({comparator:bP.comparator})}bP.prototype.addSubtree=function(e){let t=new Ubt(e,this._subtreeRequestCounter);this._subtreeRequestCounter++,this._queue.insert(t);let n=e.implicitCoordinates;if(n.level>0){let i=n.getParentSubtreeCoordinates(),o=this.find(i)}if(this._maximumSubtreeCount>0)for(;this._queue.length>this._maximumSubtreeCount&&this._queue.getMinimum()!==t;)this._queue.removeMinimum()};bP.prototype.find=function(e){let t=this._queue,n=t.internalArray,i=t.length;for(let o=0;o<i;o++){let r=n[o],a=r.subtree.implicitCoordinates;if(e.isEqual(a))return r.subtree}};bP.comparator=function(e,t){let n=e.subtree.implicitCoordinates,i=t.subtree.implicitCoordinates;return n.isAncestor(i)?1:i.isAncestor(n)?-1:e.stamp-t.stamp};function Ubt(e,t){this.subtree=e,this.stamp=t}var ZH=bP;function $H(e){this._resource=e,this._metadataTable=void 0}Object.defineProperties($H.prototype,{metadataTable:{get:function(){return this._metadataTable}}});$H.fromJson=async function(e,t,n,i){let o;l(t)?o={json:t,binary:void 0}:o=Hbt(n);let r=await zbt(e,o.json,o.binary),s={},a=o.json.bufferViews.length;for(let d=0;d<a;++d){let p=o.json.bufferViews[d],g=p.byteOffset,m=g+p.byteLength,b=r[p.buffer].subarray(g,m);s[d]=b}let c=o.json.voxelTable,u=o.json.propertyTables[c],f=new $H(e);return f._metadataTable=new tu({count:u.count,properties:u.properties,class:i.classes[u.class],bufferViews:s}),f};function zbt(e,t,n){let i=t.buffers.length,o=new Array(i);for(let r=0;r<i;r++){let s=t.buffers[r];if(l(s.uri)){let c=e.getDerivedResource({url:s.uri});o[r]=c.fetchArrayBuffer().then(function(u){return new Uint8Array(u)})}else o[r]=Promise.resolve(n)}return Promise.all(o)}function Hbt(e){let n=new DataView(e.buffer,e.byteOffset),i=8,o=n.getUint32(i,!0);i+=8;let r=n.getUint32(i,!0);i+=8;let s=Lo(e,i,o);i+=o;let a=e.subarray(i,i+r);return{json:s,binary:a}}var QH=$H;function JH(e){e=y(e,y.EMPTY_OBJECT),this.shapeTransform=void 0,this.globalTransform=void 0,this.shape=void 0,this.minBounds=void 0,this.maxBounds=void 0,this.dimensions=void 0,this.paddingBefore=void 0,this.paddingAfter=void 0,this.names=void 0,this.types=void 0,this.componentTypes=void 0,this.minimumValues=void 0,this.maximumValues=void 0,this.maximumTileCount=void 0,this._implicitTileset=void 0,this._subtreeCache=new ZH}JH.fromUrl=async function(e){let t=De.createIfNeeded(e),n=await t.fetchJson();Wbt(n);let i=Kbt(n,t);await i.load();let o=n.root,r=o.content.extensions["3DTILES_content_voxels"],s=r.class,a=oi(n,"3DTILES_metadata")?n.extensions["3DTILES_metadata"]:n,c=i.schema,u=new cC({metadataJson:a,schema:c}),f=new JH;Zbt(f,u,s);let d=new uC(t,o,c),{shape:p,minBounds:g,maxBounds:m,shapeTransform:x,globalTransform:b}=jbt(o);f.shape=p,f.minBounds=g,f.maxBounds=m,f.dimensions=h.unpack(r.dimensions),f.shapeTransform=x,f.globalTransform=b,f.maximumTileCount=Gbt(u);let T,A;return l(r.padding)&&(T=h.unpack(r.padding.before),A=h.unpack(r.padding.after)),f.paddingBefore=T,f.paddingAfter=A,f._implicitTileset=d,Ai.unload(i),f};function Gbt(e){if(l(e.tileset))return e.tileset.getPropertyBySemantic(hA.TILESET_TILE_COUNT)}function Wbt(e){let t=e.root;if(!l(t.content))throw new ce("Root must have content");if(!oi(t.content,"3DTILES_content_voxels"))throw new ce("Root tile content must have 3DTILES_content_voxels extension");if(!oi(t,"3DTILES_implicit_tiling")&&!l(t.implicitTiling))throw new ce("Root tile must have implicit tiling");if(!l(e.schema)&&!l(e.schemaUri)&&!oi(e,"3DTILES_metadata"))throw new ce("Tileset must have a metadata schema")}function jbt(e){let t=e.boundingVolume,n;if(l(e.transform)?n=F.unpack(e.transform):n=F.clone(F.IDENTITY),l(t.box))return Ybt(t.box,n);if(l(t.region))return qbt(t.region);if(oi(t,"3DTILES_bounding_volume_cylinder"))return Xbt(t.extensions["3DTILES_bounding_volume_cylinder"].cylinder,n);throw new ce("Only box, region and 3DTILES_bounding_volume_cylinder are supported in Cesium3DTilesVoxelProvider")}function qbt(e){let t=e[0],n=e[1],i=e[2],o=e[3],r=e[4],s=e[5],a=F.fromScale(ee.WGS84.radii),c=new h(t,n,r),u=new h(i,o,s);return{shape:Ni.ELLIPSOID,minBounds:c,maxBounds:u,shapeTransform:a,globalTransform:F.clone(F.IDENTITY)}}function Ybt(e,t){let n=wn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.BOX,minBounds:h.clone(y_.DefaultMinBounds),maxBounds:h.clone(y_.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Xbt(e,t){let n=wn.unpack(e),i=F.fromRotationTranslation(n.halfAxes,n.center);return{shape:Ni.CYLINDER,minBounds:h.clone(x_.DefaultMinBounds),maxBounds:h.clone(x_.DefaultMaxBounds),shapeTransform:i,globalTransform:t}}function Kbt(e,t){let{schemaUri:n,schema:i}=e;return l(n)?Ai.getSchemaLoader({resource:t.getDerivedResource({url:n})}):Ai.getSchemaLoader({schema:i})}function Zbt(e,t,n){let{schema:i,statistics:o}=t,r=o?.classes[n],s=i.classes[n].properties,a=Object.entries(s).map(([d,p])=>{let{type:g,componentType:m}=p,x=r?.properties[d].min,b=r?.properties[d].max,T=Et.getComponentCount(g),A=PTe(x,T),C=PTe(b,T);return{id:d,type:g,componentType:m,minValue:A,maxValue:C}});e.names=a.map(d=>d.id),e.types=a.map(d=>d.type),e.componentTypes=a.map(d=>d.componentType);let c=a.map(d=>d.minValue),u=a.map(d=>d.maxValue),f=c.some(l);e.minimumValues=f?c:void 0,e.maximumValues=f?u:void 0}function PTe(e,t){if(!l(e))return;let n=Array.isArray(e)?e:[e];return Array.from({length:t},(i,o)=>n[o])}async function $bt(e,t){let n=e.contentUriTemplates[0].getDerivedResource({templateValues:t.getTemplateValues()}),i=e.baseResource.getDerivedResource({url:n.url}),o=await i.fetchArrayBuffer(),r=kp(o);return await QH.fromJson(i,r.jsonPayload,r.binaryPayload,e.metadataSchema)}async function Qbt(e,t){let n=e._implicitTileset,i=e._subtreeCache,o=i.find(t);if(l(o))return o;let r=n.subtreeUriTemplate.getDerivedResource({templateValues:t.getTemplateValues()}),s=n.baseResource.getDerivedResource({url:r.url}),a=await s.fetchArrayBuffer();if(o=i.find(t),l(o))return o;let c=kp(a);return o=await dA.fromSubtreeJson(s,c.jsonPayload,c.binaryPayload,n,t),i.addSubtree(o),o}JH.prototype.requestData=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.tileLevel,0),n=y(e.tileX,0),i=y(e.tileY,0),o=y(e.tileZ,0);if(y(e.keyframe,0)!==0)return;let s=this._implicitTileset,a=this.names,c=new fC({subdivisionScheme:s.subdivisionScheme,subtreeLevels:s.subtreeLevels,level:t,x:n,y:i,z:o}),u=c.isSubtreeRoot()&&c.level>0,f=u?c.getParentSubtreeCoordinates():c.getSubtreeCoordinates();return Qbt(this,f).then(function(p){return(u?p.childSubtreeIsAvailableAtCoordinates(c):p.tileIsAvailableAtCoordinates(c))?$bt(s,c):Promise.reject("Tile is not available")}).then(function(p){return a.map(function(g){return p.metadataTable.getPropertyTypedArray(g)})})};var RTe=JH;function tZ(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(tZ.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});tZ.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,this._radius),i=n*Math.cos(t),o=n*Math.sin(t),r=0;e.position=h.fromElements(i,o,r,e.position),e.velocity=h.clone(h.UNIT_Z,e.velocity)};var e8=tZ;var nZ={CUMULUS:0};nZ.validate=function(e){return e===nZ.CUMULUS};var TP=Object.freeze(nZ);function oh(e,t){if(e=y(e,y.EMPTY_OBJECT),this._show=y(e.show,!0),this._position=h.clone(y(e.position,h.ZERO)),!l(e.scale)&&l(e.maximumSize))this._maximumSize=h.clone(e.maximumSize),this._scale=new U(this._maximumSize.x,this._maximumSize.y);else{this._scale=U.clone(y(e.scale,new U(20,12)));let n=new h(this._scale.x,this._scale.y,Math.min(this._scale.x,this._scale.y)/1.5);this._maximumSize=h.clone(y(e.maximumSize,n))}this._slice=y(e.slice,-1),this._color=z.clone(y(e.color,z.WHITE)),this._brightness=y(e.brightness,1),this._cloudCollection=t,this._index=-1}var Jbt=oh.SHOW_INDEX=0,eTt=oh.POSITION_INDEX=1,tTt=oh.SCALE_INDEX=2,nTt=oh.MAXIMUM_SIZE_INDEX=3,iTt=oh.SLICE_INDEX=4,oTt=oh.BRIGHTNESS_INDEX=5,rTt=oh.COLOR_INDEX=6;oh.NUMBER_OF_PROPERTIES=7;function Lb(e,t){let n=e._cloudCollection;l(n)&&(n._updateCloud(e,t),e._dirty=!0)}Object.defineProperties(oh.prototype,{show:{get:function(){return this._show},set:function(e){this._show!==e&&(this._show=e,Lb(this,Jbt))}},position:{get:function(){return this._position},set:function(e){let t=this._position;h.equals(t,e)||(h.clone(e,t),Lb(this,eTt))}},scale:{get:function(){return this._scale},set:function(e){let t=this._scale;U.equals(t,e)||(U.clone(e,t),Lb(this,tTt))}},maximumSize:{get:function(){return this._maximumSize},set:function(e){let t=this._maximumSize;h.equals(t,e)||(h.clone(e,t),Lb(this,nTt))}},color:{get:function(){return this._color},set:function(e){let t=this._color;z.equals(t,e)||(z.clone(e,t),Lb(this,rTt))}},slice:{get:function(){return this._slice},set:function(e){this._slice!==e&&(this._slice=e,Lb(this,iTt))}},brightness:{get:function(){return this._brightness},set:function(e){this._brightness!==e&&(this._brightness=e,Lb(this,oTt))}}});oh.prototype._destroy=function(){this._cloudCollection=void 0};var Yf=oh;var Nu,t8=new h,sTt={positionHighAndScaleX:0,positionLowAndScaleY:1,packedAttribute0:2,packedAttribute1:3,color:4},aTt={direction:0,positionHighAndScaleX:1,positionLowAndScaleY:2,packedAttribute0:3,packedAttribute1:4,color:5},cTt=Yf.SHOW_INDEX,lTt=Yf.POSITION_INDEX,uTt=Yf.SCALE_INDEX,fTt=Yf.MAXIMUM_SIZE_INDEX,dTt=Yf.SLICE_INDEX,hTt=Yf.BRIGHTNESS_INDEX,mTt=Yf.NUMBER_OF_PROPERTIES,pTt=Yf.COLOR_INDEX;function rh(e){e=y(e,y.EMPTY_OBJECT),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!1,this._propertiesChanged=new Uint32Array(mTt),this._noiseTexture=void 0,this._textureSliceWidth=128,this._noiseTextureRows=4,this.noiseDetail=y(e.noiseDetail,16),this.noiseOffset=h.clone(y(e.noiseOffset,h.ZERO)),this._loading=!1,this._ready=!1;let t=this;this._uniforms={u_noiseTexture:function(){return t._noiseTexture},u_noiseTextureDimensions:OTe(t),u_noiseDetail:function(){return t.noiseDetail}},this._vaNoise=void 0,this._spNoise=void 0,this._spCreated=!1,this._sp=void 0,this._rs=void 0,this.show=y(e.show,!0),this._colorCommands=[],this.debugBillboards=y(e.debugBillboards,!1),this._compiledDebugBillboards=!1,this.debugEllipsoids=y(e.debugEllipsoids,!1),this._compiledDebugEllipsoids=!1}function OTe(e){return function(){return t8.x=e._textureSliceWidth,t8.y=e._noiseTextureRows,t8.z=1/e._noiseTextureRows,t8}}Object.defineProperties(rh.prototype,{length:{get:function(){return oZ(this),this._clouds.length}}});function MTe(e){let t=e.length;for(let n=0;n<t;++n)e[n]&&e[n]._destroy()}rh.prototype.add=function(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.cloudType,TP.CUMULUS),n;return t===TP.CUMULUS&&(n=new Yf(e,this),n._index=this._clouds.length,this._clouds.push(n),this._createVertexArray=!0),n};rh.prototype.remove=function(e){return this.contains(e)?(this._clouds[e._index]=void 0,this._cloudsRemoved=!0,this._createVertexArray=!0,e._destroy(),!0):!1};rh.prototype.removeAll=function(){MTe(this._clouds),this._clouds=[],this._cloudsToUpdate=[],this._cloudsToUpdateIndex=0,this._cloudsRemoved=!1,this._createVertexArray=!0};function oZ(e){if(e._cloudsRemoved){e._cloudsRemoved=!1;let t=[],n=e._clouds,i=n.length;for(let o=0,r=0;o<i;++o){let s=n[o];l(s)&&(n._index=r++,t.push(s))}e._clouds=t}}rh.prototype._updateCloud=function(e,t){e._dirty||(this._cloudsToUpdate[this._cloudsToUpdateIndex++]=e),++this._propertiesChanged[t]};rh.prototype.contains=function(e){return l(e)&&e._cloudCollection===this};rh.prototype.get=function(e){return oZ(this),this._clouds[e]};var _Tt=new Float32Array([-1,-1,1,-1,1,1,-1,1]),gTt=new Uint16Array([0,1,2,0,2,3]);function yTt(e){let t=yt.createVertexBuffer({context:e,typedArray:_Tt,usage:Fe.STATIC_DRAW}),n=yt.createIndexBuffer({context:e,typedArray:gTt,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),i=[{index:0,vertexBuffer:t,componentsPerAttribute:2,componentDatatype:X.FLOAT}];return new ti({context:e,attributes:i,indexBuffer:n})}var rZ;function xTt(e){let n=e.cache.cloudCollection_indexBufferBatched;if(l(n))return n;let i=16384*6-6,o=new Uint16Array(i);for(let r=0,s=0;r<i;r+=6,s+=4)o[r]=s,o[r+1]=s+1,o[r+2]=s+2,o[r+3]=s,o[r+4]=s+2,o[r+5]=s+3;return n=yt.createIndexBuffer({context:e,typedArray:o,usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),n.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferBatched=n,n}function bTt(e){let t=e.cache.cloudCollection_indexBufferInstanced;return l(t)||(t=yt.createIndexBuffer({context:e,typedArray:new Uint16Array([0,1,2,0,2,3]),usage:Fe.STATIC_DRAW,indexDatatype:Ne.UNSIGNED_SHORT}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_indexBufferInstanced=t),t}function TTt(e){let t=e.cache.cloudCollection_vertexBufferInstanced;return l(t)||(t=yt.createVertexBuffer({context:e,typedArray:new Float32Array([0,0,1,0,1,1,0,1]),usage:Fe.STATIC_DRAW}),t.vertexArrayDestroyable=!1,e.cache.cloudCollection_vertexBufferInstanced=t),t}function ATt(e,t,n){let i=[{index:Nu.positionHighAndScaleX,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Nu.positionLowAndScaleY,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Nu.packedAttribute0,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Nu.packedAttribute1,componentsPerAttribute:4,componentDatatype:X.FLOAT,usage:Fe.STATIC_DRAW},{index:Nu.color,componentsPerAttribute:4,componentDatatype:X.UNSIGNED_BYTE,normalize:!0,usage:Fe.STATIC_DRAW}];n&&i.push({index:Nu.direction,componentsPerAttribute:2,componentDatatype:X.FLOAT,vertexBuffer:TTt(e)});let o=n?t:4*t;return new U_(e,i,o,n)}var iZ=new Hn;function LTe(e,t,n,i){let o,r=n[Nu.positionHighAndScaleX],s=n[Nu.positionLowAndScaleY],a=i.position;Hn.fromCartesian(a,iZ);let c=i.scale,u=iZ.high,f=iZ.low;e._instanced?(o=i._index,r(o,u.x,u.y,u.z,c.x),s(o,f.x,f.y,f.z,c.y)):(o=i._index*4,r(o+0,u.x,u.y,u.z,c.x),r(o+1,u.x,u.y,u.z,c.x),r(o+2,u.x,u.y,u.z,c.x),r(o+3,u.x,u.y,u.z,c.x),s(o+0,f.x,f.y,f.z,c.y),s(o+1,f.x,f.y,f.z,c.y),s(o+2,f.x,f.y,f.z,c.y),s(o+3,f.x,f.y,f.z,c.y))}function NTe(e,t,n,i){let o,r=n[Nu.packedAttribute0],s=i.show,a=i.brightness;e._instanced?(o=i._index,r(o,s,a,0,0)):(o=i._index*4,r(o+0,s,a,0,0),r(o+1,s,a,1,0),r(o+2,s,a,1,1),r(o+3,s,a,0,1))}function FTe(e,t,n,i){let o,r=n[Nu.packedAttribute1],s=i.maximumSize,a=i.slice;e._instanced?(o=i._index,r(o,s.x,s.y,s.z,a)):(o=i._index*4,r(o+0,s.x,s.y,s.z,a),r(o+1,s.x,s.y,s.z,a),r(o+2,s.x,s.y,s.z,a),r(o+3,s.x,s.y,s.z,a))}function BTe(e,t,n,i){let o,r=n[Nu.color],s=i.color,a=z.floatToByte(s.red),c=z.floatToByte(s.green),u=z.floatToByte(s.blue),f=z.floatToByte(s.alpha);e._instanced?(o=i._index,r(o,a,c,u,f)):(o=i._index*4,r(o+0,a,c,u,f),r(o+1,a,c,u,f),r(o+2,a,c,u,f),r(o+3,a,c,u,f))}function CTt(e,t,n,i){LTe(e,t,n,i),NTe(e,t,n,i),FTe(e,t,n,i),BTe(e,t,n,i)}function ETt(e,t,n,i){let o=e,r=o._textureSliceWidth,s=o._noiseTextureRows,a=t.context;o._vaNoise=yTt(a),o._spNoise=en.fromCache({context:a,vertexShaderSource:n,fragmentShaderSource:i,attributeLocations:{position:0}});let c=o.noiseDetail,u=o.noiseOffset;o._noiseTexture=new Ot({context:a,width:r*r/s,height:r*s,pixelDatatype:Ze.UNSIGNED_BYTE,pixelFormat:it.RGBA,sampler:new Qt({wrapS:En.REPEAT,wrapT:En.REPEAT,minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST})});let f=new ol({vertexArray:o._vaNoise,shaderProgram:o._spNoise,outputTexture:o._noiseTexture,uniformMap:{u_noiseTextureDimensions:OTe(o),u_noiseDetail:function(){return c},u_noiseOffset:function(){return u}},persists:!1,owner:e,postExecute:function(d){o._ready=!0,o._loading=!1}});t.commandList.push(f),o._loading=!0}function STt(e,t){let n=e,i=t.context;n._createVertexArray=!1,n._vaf=n._vaf&&n._vaf.destroy();let o=e._clouds,r=o.length;if(r>0){n._vaf=ATt(i,r,n._instanced);let s=n._vaf.writers,a;for(a=0;a<r;++a){let c=o[a];CTt(e,t,s,c)}n._vaf.commit(rZ(i))}}var vTt=[];function wTt(e,t){let n=t.context,i=e,r=i._clouds.length,s=i._cloudsToUpdate,a=i._cloudsToUpdateIndex,c=i._propertiesChanged,u=vTt;u.length=0,(c[lTt]||c[uTt])&&u.push(LTe),(c[cTt]||c[hTt])&&u.push(NTe),(c[fTt]||c[dTt])&&u.push(FTe),c[pTt]&&u.push(BTe);let f=u.length,d=i._vaf.writers,p,g,m;if(a/r>.1){for(p=0;p<a;++p)for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._vaf.commit(rZ(n))}else{for(p=0;p<a;++p){for(g=s[p],g._dirty=!1,m=0;m<f;++m)u[m](e,t,d,g);i._instanced?i._vaf.subCommit(g._index,1):i._vaf.subCommit(g._index*4,4)}i._vaf.endSubCommits()}i._cloudsToUpdateIndex=0}function DTt(e,t,n,i){let o=t.context,r=e,s=new Ue({defines:[],sources:[n]});r._instanced&&s.defines.push("INSTANCED");let a=new Ue({defines:[],sources:[i]});r.debugBillboards&&a.defines.push("DEBUG_BILLBOARDS"),r.debugEllipsoids&&a.defines.push("DEBUG_ELLIPSOIDS"),r._sp=en.replaceCache({context:o,shaderProgram:r._sp,vertexShaderSource:s,fragmentShaderSource:a,attributeLocations:Nu}),r._rs=Ve.fromCache({depthTest:{enabled:!0,func:te.LESS},depthMask:!1,blending:ln.ALPHA_BLEND}),r._spCreated=!0,r._compiledDebugBillboards=r.debugBillboards,r._compiledDebugEllipsoids=r.debugEllipsoids}function ITt(e,t){let n=e,i=t.passes,o=n._uniforms,r=t.commandList;if(i.render){let s=n._colorCommands,a=n._vaf.va,c=a.length;s.length=c;for(let u=0;u<c;u++){let f=s[u];l(f)||(f=s[u]=new et),f.pass=ve.TRANSLUCENT,f.owner=e,f.uniformMap=o,f.count=a[u].indicesCount,f.vertexArray=a[u].va,f.shaderProgram=n._sp,f.renderState=n._rs,n._instanced&&(f.count=6,f.instanceCount=n._clouds.length),r.push(f)}}}rh.prototype.update=function(e){if(oZ(this),!this.show)return;let t=this.debugBillboards||this.debugEllipsoids;this._ready=t?!0:l(this._noiseTexture),!this._ready&&!this._loading&&!t&&ETt(this,e,IH,DH),this._instanced=e.context.instancedArrays,Nu=this._instanced?aTt:sTt,rZ=this._instanced?bTt:xTt;let i=this._clouds.length,o=this._cloudsToUpdate,r=this._cloudsToUpdateIndex;this._createVertexArray?STt(this,e):r>0&&wTt(this,e),r>i*1.5&&(o.length=i),!(!l(this._vaf)||!l(this._vaf.va)||!this._ready&!t)&&((!this._spCreated||this.debugBillboards!==this._compiledDebugBillboards||this.debugEllipsoids!==this._compiledDebugEllipsoids)&&DTt(this,e,wH,vH),ITt(this,e))};rh.prototype.isDestroyed=function(){return!1};rh.prototype.destroy=function(){return this._noiseTexture=this._noiseTexture&&this._noiseTexture.destroy(),this._sp=this._sp&&this._sp.destroy(),this._vaf=this._vaf&&this._vaf.destroy(),MTe(this._clouds),ue(this)};var kTe=rh;var PTt=P.toRadians(30);function sZ(e){this._angle=y(e,PTt)}Object.defineProperties(sZ.prototype,{angle:{get:function(){return this._angle},set:function(e){this._angle=e}}});sZ.prototype.emit=function(e){let t=Math.tan(this._angle),n=P.randomBetween(0,P.TWO_PI),i=P.randomBetween(0,t),o=i*Math.cos(n),r=i*Math.sin(n),s=1;e.velocity=h.fromElements(o,r,s,e.velocity),h.normalize(e.velocity,e.velocity),e.position=h.clone(h.ZERO,e.position)};var VTe=sZ;function AP(e){e=y(e,y.EMPTY_OBJECT);let t=e.attributeName,n=e.perInstanceAttribute;l(n)||(n=!1);let i=y(e.glslDatatype,"vec3"),o=`v_${t}`,r;if(t==="normal"||t==="tangent"||t==="bitangent")r=`vec4 getColor() { return vec4((${o} + vec3(1.0)) * 0.5, 1.0); } +`;else switch(t==="st"&&(i="vec2"),i){case"float":r=`vec4 getColor() { return vec4(vec3(${o}), 1.0); } +`;break;case"vec2":r=`vec4 getColor() { return vec4(${o}, 0.0, 1.0); } +`;break;case"vec3":r=`vec4 getColor() { return vec4(${o}, 1.0); } +`;break;case"vec4":r=`vec4 getColor() { return ${o}; } +`;break}let s=`in vec3 position3DHigh; +in vec3 position3DLow; +in float batchId; +${n?"":`in ${i} ${t}; +`}out ${i} ${o}; +void main() +{ +vec4 p = czm_translateRelativeToEye(position3DHigh, position3DLow); +${n?`${o} = czm_batchTable_${t}(batchId); +`:`${o} = ${t}; +`}gl_Position = czm_modelViewProjectionRelativeToEye * p; +}`,a=`in ${i} ${o}; +${r} +void main() +{ +out_FragColor = getColor(); +}`;this.material=void 0,this.translucent=y(e.translucent,!1),this._vertexShaderSource=y(e.vertexShaderSource,s),this._fragmentShaderSource=y(e.fragmentShaderSource,a),this._renderState=Ji.getDefaultRenderState(!1,!1,e.renderState),this._closed=y(e.closed,!1),this._attributeName=t,this._glslDatatype=i}Object.defineProperties(AP.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},attributeName:{get:function(){return this._attributeName}},glslDatatype:{get:function(){return this._glslDatatype}}});AP.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;AP.prototype.isTranslucent=Ji.prototype.isTranslucent;AP.prototype.getRenderState=Ji.prototype.getRenderState;var UTe=AP;function n8(e){e=y(e,y.EMPTY_OBJECT),this.length=y(e.length,1e7),this._length=void 0,this.width=y(e.width,2),this._width=void 0,this.show=y(e.show,!0),this.modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._modelMatrix=new F,this.id=e.id,this._id=void 0,this._primitive=void 0}n8.prototype.update=function(e){if(this.show){if(!l(this._primitive)||!F.equals(this._modelMatrix,this.modelMatrix)||this._length!==this.length||this._width!==this.width||this._id!==this.id){this._modelMatrix=F.clone(this.modelMatrix,this._modelMatrix),this._length=this.length,this._width=this.width,this._id=this.id,l(this._primitive)&&this._primitive.destroy(),this.modelMatrix[12]===0&&this.modelMatrix[13]===0&&this.modelMatrix[14]===0&&(this.modelMatrix[14]=.01);let t=new vt({geometry:new py({positions:[h.ZERO,h.UNIT_X],width:this.width,vertexFormat:ns.VERTEX_FORMAT,colors:[z.RED,z.RED],arcType:tn.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),n=new vt({geometry:new py({positions:[h.ZERO,h.UNIT_Y],width:this.width,vertexFormat:ns.VERTEX_FORMAT,colors:[z.GREEN,z.GREEN],arcType:tn.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this}),i=new vt({geometry:new py({positions:[h.ZERO,h.UNIT_Z],width:this.width,vertexFormat:ns.VERTEX_FORMAT,colors:[z.BLUE,z.BLUE],arcType:tn.NONE}),modelMatrix:F.multiplyByUniformScale(this.modelMatrix,this.length,new F),id:this.id,pickPrimitive:this});this._primitive=new In({geometryInstances:[t,n,i],appearance:new ns,asynchronous:!1})}this._primitive.update(e)}};n8.prototype.isDestroyed=function(){return!1};n8.prototype.destroy=function(){return this._primitive=this._primitive&&this._primitive.destroy(),ue(this)};var i8=n8;function RTt(e){this.direction=h.clone(e.direction),this.color=z.clone(y(e.color,z.WHITE)),this.intensity=y(e.intensity,1)}var zTe=RTt;var o8=`in vec3 v_positionMC; +in vec3 v_positionEC; +in vec2 v_st; + +void main() +{ + czm_materialInput materialInput; + + vec3 normalEC = normalize(czm_normal3D * czm_geodeticSurfaceNormal(v_positionMC, vec3(0.0), vec3(1.0))); +#ifdef FACE_FORWARD + normalEC = faceforward(normalEC, vec3(0.0, 0.0, 1.0), -normalEC); +#endif + + materialInput.s = v_st.s; + materialInput.st = v_st; + materialInput.str = vec3(v_st, 0.0); + + // Convert tangent space material normal to eye space + materialInput.normalEC = normalEC; + materialInput.tangentToEyeMatrix = czm_eastNorthUpToEyeCoordinates(v_positionMC, materialInput.normalEC); + + // Convert view vector to world space + vec3 positionToEyeEC = -v_positionEC; + materialInput.positionToEyeEC = positionToEyeEC; + + czm_material material = czm_getMaterial(materialInput); + +#ifdef FLAT + out_FragColor = vec4(material.diffuse + material.emission, material.alpha); +#else + out_FragColor = czm_phong(normalize(positionToEyeEC), material, czm_lightDirectionEC); +#endif +} +`;var r8=`in vec3 position3DHigh; +in vec3 position3DLow; +in vec2 st; +in float batchId; + +out vec3 v_positionMC; +out vec3 v_positionEC; +out vec2 v_st; + +void main() +{ + vec4 p = czm_computePosition(); + + v_positionMC = position3DHigh + position3DLow; // position in model coordinates + v_positionEC = (czm_modelViewRelativeToEye * p).xyz; // position in eye coordinates + v_st = st; + + gl_Position = czm_modelViewProjectionRelativeToEye * p; +} +`;function Nb(e){e=y(e,y.EMPTY_OBJECT);let t=y(e.translucent,!0),n=y(e.aboveGround,!1);this.material=l(e.material)?e.material:ji.fromType(ji.ColorType),this.translucent=y(e.translucent,!0),this._vertexShaderSource=y(e.vertexShaderSource,r8),this._fragmentShaderSource=y(e.fragmentShaderSource,o8),this._renderState=Ji.getDefaultRenderState(t,!n,e.renderState),this._closed=!1,this._flat=y(e.flat,!1),this._faceForward=y(e.faceForward,n),this._aboveGround=n}Object.defineProperties(Nb.prototype,{vertexShaderSource:{get:function(){return this._vertexShaderSource}},fragmentShaderSource:{get:function(){return this._fragmentShaderSource}},renderState:{get:function(){return this._renderState}},closed:{get:function(){return this._closed}},vertexFormat:{get:function(){return Nb.VERTEX_FORMAT}},flat:{get:function(){return this._flat}},faceForward:{get:function(){return this._faceForward}},aboveGround:{get:function(){return this._aboveGround}}});Nb.VERTEX_FORMAT=Pe.POSITION_AND_ST;Nb.prototype.getFragmentShaderSource=Ji.prototype.getFragmentShaderSource;Nb.prototype.isTranslucent=Ji.prototype.isTranslucent;Nb.prototype.getRenderState=Ji.prototype.getRenderState;var HTe=Nb;function Fl(e){this._scene=e.scene,this.samplingWindow=y(e.samplingWindow,Fl.defaultSettings.samplingWindow),this.quietPeriod=y(e.quietPeriod,Fl.defaultSettings.quietPeriod),this.warmupPeriod=y(e.warmupPeriod,Fl.defaultSettings.warmupPeriod),this.minimumFrameRateDuringWarmup=y(e.minimumFrameRateDuringWarmup,Fl.defaultSettings.minimumFrameRateDuringWarmup),this.minimumFrameRateAfterWarmup=y(e.minimumFrameRateAfterWarmup,Fl.defaultSettings.minimumFrameRateAfterWarmup),this._lowFrameRate=new me,this._nominalFrameRate=new me,this._frameTimes=[],this._needsQuietPeriod=!0,this._quietPeriodEndTime=0,this._warmupPeriodEndTime=0,this._frameRateIsLow=!1,this._lastFramesPerSecond=void 0,this._pauseCount=0;let t=this;this._preUpdateRemoveListener=this._scene.preUpdate.addEventListener(function(o,r){OTt(t,r)}),this._hiddenPropertyName=document.hidden!==void 0?"hidden":document.mozHidden!==void 0?"mozHidden":document.msHidden!==void 0?"msHidden":document.webkitHidden!==void 0?"webkitHidden":void 0;let n=document.hidden!==void 0?"visibilitychange":document.mozHidden!==void 0?"mozvisibilitychange":document.msHidden!==void 0?"msvisibilitychange":document.webkitHidden!==void 0?"webkitvisibilitychange":void 0;function i(){MTt(t)}this._visibilityChangeRemoveListener=void 0,l(n)&&(document.addEventListener(n,i,!1),this._visibilityChangeRemoveListener=function(){document.removeEventListener(n,i,!1)})}Fl.defaultSettings={samplingWindow:5,quietPeriod:2,warmupPeriod:5,minimumFrameRateDuringWarmup:4,minimumFrameRateAfterWarmup:8};Fl.fromScene=function(e){return(!l(e._frameRateMonitor)||e._frameRateMonitor.isDestroyed())&&(e._frameRateMonitor=new Fl({scene:e})),e._frameRateMonitor};Object.defineProperties(Fl.prototype,{scene:{get:function(){return this._scene}},lowFrameRate:{get:function(){return this._lowFrameRate}},nominalFrameRate:{get:function(){return this._nominalFrameRate}},lastFramesPerSecond:{get:function(){return this._lastFramesPerSecond}}});Fl.prototype.pause=function(){++this._pauseCount,this._pauseCount===1&&(this._frameTimes.length=0,this._lastFramesPerSecond=void 0)};Fl.prototype.unpause=function(){--this._pauseCount,this._pauseCount<=0&&(this._pauseCount=0,this._needsQuietPeriod=!0)};Fl.prototype.isDestroyed=function(){return!1};Fl.prototype.destroy=function(){return this._preUpdateRemoveListener(),l(this._visibilityChangeRemoveListener)&&this._visibilityChangeRemoveListener(),ue(this)};function OTt(e,t){if(e._pauseCount>0)return;let n=Ti();if(e._needsQuietPeriod)e._needsQuietPeriod=!1,e._frameTimes.length=0,e._quietPeriodEndTime=n+e.quietPeriod/jn.SECONDS_PER_MILLISECOND,e._warmupPeriodEndTime=e._quietPeriodEndTime+(e.warmupPeriod+e.samplingWindow)/jn.SECONDS_PER_MILLISECOND;else if(n>=e._quietPeriodEndTime){e._frameTimes.push(n);let i=n-e.samplingWindow/jn.SECONDS_PER_MILLISECOND;if(e._frameTimes.length>=2&&e._frameTimes[0]<=i){for(;e._frameTimes.length>=2&&e._frameTimes[1]<i;)e._frameTimes.shift();let o=(n-e._frameTimes[0])/(e._frameTimes.length-1);e._lastFramesPerSecond=1e3/o;let r=1e3/(n>e._warmupPeriodEndTime?e.minimumFrameRateAfterWarmup:e.minimumFrameRateDuringWarmup);o>r?e._frameRateIsLow||(e._frameRateIsLow=!0,e._needsQuietPeriod=!0,e.lowFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond)):e._frameRateIsLow&&(e._frameRateIsLow=!1,e._needsQuietPeriod=!0,e.nominalFrameRate.raiseEvent(e.scene,e._lastFramesPerSecond))}}}function MTt(e){document[e._hiddenPropertyName]?e.pause():e.unpause()}var s8=Fl;var GTe=Er(GK(),1);function aZ(){this._image=new Image}aZ.prototype.isReady=function(){return!0};aZ.prototype.shouldDiscardImage=function(e){return e===this._image};function Fb(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tileDiscardPolicy=e.tileDiscardPolicy,this._tilingScheme=new qi({numberOfLevelZeroTilesX:2,numberOfLevelZeroTilesY:2,rectangle:new re(-P.PI,-P.PI,P.PI,P.PI),ellipsoid:e.ellipsoid});let t=e.credit;typeof t=="string"&&(t=new wt(t)),this._credit=t,this._tileWidth=256,this._tileHeight=256,this._maximumLevel=23,l(this._tileDiscardPolicy)||(this._tileDiscardPolicy=new aZ),this._errorEvent=new me}Object.defineProperties(Fb.prototype,{url:{get:function(){return this._metadata.url}},proxy:{get:function(){return this._metadata.proxy}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){return this._maximumLevel}},minimumLevel:{get:function(){return 0}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){return this._tileDiscardPolicy}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){return this._credit}},hasAlphaChannel:{get:function(){return!1}}});Fb.fromMetadata=function(e,t){if(!e.imageryPresent)throw new ce(`The server ${e.url} doesn't have imagery`);let n=new Fb(t);return n._metadata=e,n};Fb.prototype.getTileCredits=function(e,t,n){let i=this._metadata,o=i.getTileInformation(e,t,n);if(l(o)){let r=i.providers[o.imageryProvider];if(l(r))return[r]}};Fb.prototype.requestImage=function(e,t,n,i){let o=this._tileDiscardPolicy._image,r=this._metadata,s=i0.tileXYToQuadKey(e,t,n),a=r.getTileInformation(e,t,n);if(!l(a)){if(r.isValid(s)){let u=new tr({throttle:i.throttle,throttleByServer:i.throttleByServer,type:i.type,priorityFunction:i.priorityFunction});r.populateSubtree(e,t,n,u);return}return Promise.resolve(o)}if(!a.hasImagery())return Promise.resolve(o);let c=LTt(this,a,e,t,n,i).fetchArrayBuffer();if(l(c))return c.then(function(u){YH(r.key,u);let f=new Uint8Array(u),d,p=r.protoImagery;if((!l(p)||!p)&&(d=NTt(f)),!l(d)&&(!l(p)||p)){let g=FTt(f);d=g.imageType,f=g.imageData}return!l(d)||!l(f)?o:aA({uint8Array:f,format:d,flipY:!0})})};Fb.prototype.pickFeatures=function(e,t,n,i,o){};function LTt(e,t,n,i,o,r){let s=i0.tileXYToQuadKey(n,i,o),a=t.imageryVersion;return a=l(a)&&a>0?a:1,e._metadata.resource.getDerivedResource({url:`flatfile?f1-0${s}-i.${a.toString()}`,request:r})}function NTt(e){let t="JFIF";if(e[6]===t.charCodeAt(0)&&e[7]===t.charCodeAt(1)&&e[8]===t.charCodeAt(2)&&e[9]===t.charCodeAt(3))return"image/jpeg";let n="PNG";if(e[1]===n.charCodeAt(0)&&e[2]===n.charCodeAt(1)&&e[3]===n.charCodeAt(2))return"image/png"}function FTt(e){let t=GTe.Reader.create(e),n=t.len,i={};for(;t.pos<n;){let s=t.uint32(),a;switch(s>>>3){case 1:i.imageType=t.uint32();break;case 2:i.imageData=t.bytes();break;case 3:i.alphaType=t.uint32();break;case 4:i.imageAlpha=t.bytes();break;case 5:if(a=i.copyrightIds,l(a)||(a=i.copyrightIds=[]),(s&7)===2){let c=t.uint32()+t.pos;for(;t.pos<c;)a.push(t.uint32())}else a.push(t.uint32());break;default:t.skipType(s&7);break}}let o=i.imageType;if(l(o))switch(o){case 0:i.imageType="image/jpeg";break;case 4:i.imageType="image/png";break;default:throw new ce("GoogleEarthEnterpriseImageryProvider: Unsupported image type.")}let r=i.alphaType;return l(r)&&r!==0&&(console.log("GoogleEarthEnterpriseImageryProvider: External alpha not supported."),delete i.alphaType,delete i.imageAlpha),i}var WTe=Fb;var BTt=new z(1,1,1,.4),kTt=new z(0,1,0,.05),VTt=new z(0,.5,0,.2);function Bb(e){e=y(e,y.EMPTY_OBJECT),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0,this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new qi({ellipsoid:e.ellipsoid}),this._cells=y(e.cells,8),this._color=y(e.color,BTt),this._glowColor=y(e.glowColor,kTt),this._glowWidth=y(e.glowWidth,6),this._backgroundColor=y(e.backgroundColor,VTt),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._canvasSize=y(e.canvasSize,256),this._canvas=this._createGridCanvas()}Object.defineProperties(Bb.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});Bb.prototype._drawGrid=function(e){let n=this._canvasSize;for(let i=0;i<=this._cells;++i){let r=1+i/this._cells*(n-1);e.moveTo(r,0),e.lineTo(r,n),e.moveTo(0,r),e.lineTo(n,r)}e.stroke()};Bb.prototype._createGridCanvas=function(){let e=document.createElement("canvas");e.width=this._canvasSize,e.height=this._canvasSize;let t=0,n=this._canvasSize,i=e.getContext("2d"),o=this._backgroundColor.toCssColorString();i.fillStyle=o,i.fillRect(t,t,n,n);let r=this._glowColor.toCssColorString();i.strokeStyle=r,i.lineWidth=this._glowWidth,i.strokeRect(t,t,n,n),this._drawGrid(i),i.lineWidth=this._glowWidth*.5,i.strokeRect(t,t,n,n),this._drawGrid(i);let s=this._color.toCssColorString();return i.strokeStyle=s,i.lineWidth=2,i.strokeRect(t,t,n,n),i.lineWidth=1,this._drawGrid(i),e};Bb.prototype.getTileCredits=function(e,t,n){};Bb.prototype.requestImage=function(e,t,n,i){return Promise.resolve(this._canvas)};Bb.prototype.pickFeatures=function(e,t,n,i,o){};var jTe=Bb;function sh(){}sh._maxDecodingConcurrency=Math.max(jt.hardwareConcurrency-1,1);sh._decodeTaskProcessor=new _i("decodeI3S",sh._maxDecodingConcurrency);sh._promise=void 0;async function UTt(){if(await sh._decodeTaskProcessor.initWebAssemblyModule({wasmBinaryFile:"ThirdParty/draco_decoder.wasm"}))return sh._decodeTaskProcessor;throw new ce("I3S decoder could not be initialized.")}sh.decode=async function(e,t,n,i,o){return l(sh._promise)||(sh._promise=UTt()),sh._promise.then(function(r){let s=n._parent._data,a=n._parent._inverseRotationMatrix,c=0,u=0,f=0;l(s.obb)?(c=s.obb.center[0],u=s.obb.center[1],f=s.obb.center[2]):l(s.mbs)&&(c=s.mbs[0],u=s.mbs[1],f=s.mbs[2]);let d=$.fromRotationX(-P.PI_OVER_TWO),p=new $;$.multiply(d,a,p);let g=fe.fromDegrees(c,u,f),m=ee.WGS84.cartographicToCartesian(g),x={binaryData:n._data,featureData:l(i)&&l(i[0])?i[0].data:void 0,schema:t,bufferInfo:n._geometryBufferInfo,ellipsoidRadiiSquare:ee.WGS84.radiiSquared,url:e,geoidDataList:n._dataProvider._geoidDataList,cartographicCenter:g,cartesianCenter:m,parentRotation:p,enableFeatures:n._dataProvider.showFeatures,splitGeometryByColorTransparency:n._dataProvider.adjustMaterialAlphaMode,symbologyData:o,calculateNormals:n._dataProvider.calculateNormals};return r.scheduleTask(x)})};var a8=sh;function cZ(e,t){this._parent=e,this._dataProvider=e._dataProvider,this._layer=e._layer,l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${t}`}):this._resource=this._parent.resource.getDerivedResource({url:t})}Object.defineProperties(cZ.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}}});cZ.prototype.load=async function(){return this._data=await km.loadJson(this._resource),this._data};var c8=cZ;function C_(e,t){this._storageInfo=t,this._parent=e,this._dataProvider=e._dataProvider,this._loadPromise=void 0;let n=`attributes/${t.key}/0`;l(this._parent._nodeIndex)?this._resource=this._parent._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.attribute.resource}/${n}`}):this._resource=this._parent.resource.getDerivedResource({url:n})}Object.defineProperties(C_.prototype,{resource:{get:function(){return this._resource}},header:{get:function(){return this._header}},values:{get:function(){if(l(this._values)){if(l(this._values.attributeValues))return this._values.attributeValues;if(l(this._values.objectIds))return this._values.objectIds}return[]}},name:{get:function(){return this._storageInfo.name}}});function l8(e){return e==="UInt8"||e==="Int8"?1:e==="UInt16"||e==="Int16"?2:e==="UInt32"||e==="Int32"||e==="Oid32"||e==="Float32"?4:e==="UInt64"||e==="Int64"||e==="Float64"?8:0}function zTt(e){return e==="String"?1:l8(e)}async function HTt(e){let t=await e._dataProvider._loadBinary(e._resource),n=new DataView(t);e._data=t,e._validateHeader(n);let i=e._parseHeader(n),o=e._getBodyOffset(i);e._validateBody(n,o),e._parseBody(n,o)}C_.prototype.load=function(){return l(this._loadPromise)?this._loadPromise:(this._loadPromise=HTt(this).catch(function(e){console.error(e)}),this._loadPromise)};C_.prototype._parseValue=function(e,t,n){let i;if(t==="UInt8")i=e.getUint8(n),n+=1;else if(t==="Int8")i=e.getInt8(n),n+=1;else if(t==="UInt16")i=e.getUint16(n,!0),n+=2;else if(t==="Int16")i=e.getInt16(n,!0),n+=2;else if(t==="UInt32")i=e.getUint32(n,!0),n+=4;else if(t==="Oid32")i=e.getUint32(n,!0),n+=4;else if(t==="Int32")i=e.getInt32(n,!0),n+=4;else if(t==="UInt64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);i=o+Math.pow(2,32)*r,n+=8}else if(t==="Int64"){let o=e.getUint32(n,!0),r=e.getUint32(n+4,!0);r<Math.pow(2,31)?i=o+Math.pow(2,32)*r:i=o+Math.pow(2,32)*(r-Math.pow(2,32)),n+=8}else t==="Float32"?(i=e.getFloat32(n,!0),n+=4):t==="Float64"?(i=e.getFloat64(n,!0),n+=8):t==="String"&&(i=String.fromCharCode(e.getUint8(n)),n+=1);return{value:i,offset:n}};C_.prototype._parseHeader=function(e){let t=0;this._header={};for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n],o=this._parseValue(e,i.valueType,t);this._header[i.property]=o.value,t=o.offset}return t};C_.prototype._parseBody=function(e,t){this._values={};for(let n=0;n<this._storageInfo.ordering.length;n++){let i=this._storageInfo.ordering[n],o=i==="ObjectIds"?"objectIds":i,r=this._storageInfo[o];if(l(r)){this._values[o]=[];for(let s=0;s<this._header.count;++s)if(r.valueType!=="String"){let a=this._parseValue(e,r.valueType,t);this._values[o].push(a.value),t=a.offset}else{let a=this._values.attributeByteCounts[s],c="";for(let u=0;u<a;++u){let f=this._parseValue(e,r.valueType,t);f.value.charCodeAt(0)!==0&&(c+=f.value),t=f.offset}this._values[o].push(c)}}}};C_.prototype._getBodyOffset=function(e){let t=0;return l(this._storageInfo.attributeValues)?t=l8(this._storageInfo.attributeValues.valueType):l(this._storageInfo.objectIds)&&(t=l8(this._storageInfo.objectIds.valueType)),t>0?Math.ceil(e/t)*t:e};C_.prototype._validateHeader=function(e){let t=0;for(let n=0;n<this._storageInfo.header.length;n++){let i=this._storageInfo.header[n];t+=zTt(i.valueType)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, header: ${t}, actual: ${e.byteLength})`)};C_.prototype._validateBody=function(e,t){if(!l(this._header.count))throw new ce(`Invalid attribute buffer (field: ${this.name}, count is missing)`);let n;for(let i=0;i<this._storageInfo.ordering.length&&t<e.byteLength;i++){let o=this._storageInfo.ordering[i],r=o==="ObjectIds"?"objectIds":o,s=this._storageInfo[r];if(l(s))if(s.valueType!=="String"){r==="attributeByteCounts"&&(n=t);let a=l8(s.valueType);t+=a*this._header.count}else{if(!l(n))throw new ce(`Invalid attribute buffer (field: ${this.name}, attributeByteCounts is missing)`);for(let a=0;a<this._header.count&&t<e.byteLength;++a){let c=this._parseValue(e,this._storageInfo.attributeByteCounts.valueType,n);t+=c.value,n=c.offset}}else throw new ce(`Invalid attribute buffer (field: ${this.name}, ${r} is missing)`)}if(e.byteLength<t)throw new ce(`Invalid attribute buffer size (field: ${this.name}, expected: ${t}, actual: ${e.byteLength})`)};var u8=C_;function CP(e,t){let n=e._dataProvider,i=e._layer,o;l(e._nodeIndex)?o=i.resource.getDerivedResource({url:`nodes/${e._data.mesh.geometry.resource}/${t}`}):o=e.resource.getDerivedResource({url:t}),this._parent=e,this._dataProvider=n,this._layer=i,this._resource=o,this._customAttributes=void 0}Object.defineProperties(CP.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},customAttributes:{get:function(){return this._customAttributes}}});CP.prototype.load=function(){let e=this;return this._dataProvider._loadBinary(this._resource).then(function(t){return e._data=t,t})};var GTt=new h,WTt=new h,jTt=new h,qTt=new h,YTt=new h;function lZ(e,t,n,i){let o=h.subtract(i,n,GTt),r=h.cross(o,h.subtract(e,n,WTt),qTt),s=h.cross(o,h.subtract(t,n,jTt),YTt);return h.dot(r,s)>=0}var XTt=new h,KTt=new h,ZTt=new h,$Tt=new h,QTt=new h,JTt=new h,eAt=new h,tAt=new h,nAt=new h,iAt=new h;CP.prototype.getClosestPointIndexOnTriangle=function(e,t,n){if(l(this._customAttributes)&&l(this._customAttributes.positions)){let i=new h(e,t,n);i.x-=this._customAttributes.cartesianCenter.x,i.y-=this._customAttributes.cartesianCenter.y,i.z-=this._customAttributes.cartesianCenter.z,$.multiplyByVector(this._customAttributes.parentRotation,i,i);let o=Number.MAX_VALUE,r,s,a,c,u=this._customAttributes.positions,f=this._customAttributes.indices,d;l(f)?d=f.length:d=u.length/3;for(let p=0;p<d;p++){let g,m,x;l(f)?(g=f[p],m=f[p+1],x=f[p+2]):(g=p*3,m=p*3+1,x=p*3+2);let b=h.fromElements(u[g*3],u[g*3+1],u[g*3+2],XTt),T=h.fromElements(u[m*3],u[m*3+1],u[m*3+2],KTt),A=new h(u[x*3],u[x*3+1],u[x*3+2],ZTt);if(!lZ(i,b,T,A)||!lZ(i,T,b,A)||!lZ(i,A,b,T))continue;let C=h.subtract(T,b,$Tt),S=h.subtract(A,b,QTt),v=h.cross(C,S,JTt);if(h.magnitude(v)===0)continue;let D=h.normalize(v,eAt),O=h.subtract(i,b,tAt),R=Math.abs(h.dot(O,D));if(R<o){o=R,r=p;let M=h.magnitudeSquared(h.subtract(i,b,O)),L=h.magnitudeSquared(h.subtract(i,T,nAt)),_=h.magnitudeSquared(h.subtract(i,A,iAt));M<L&&M<_?(a=g,c=b,s=M):L<_?(a=m,c=T,s=L):(a=x,c=A,s=_)}}if(l(r))return{index:a,distanceSquared:s,distance:Math.sqrt(s),queriedPosition:i,closestPosition:h.clone(c)}}return{index:-1,distanceSquared:Number.Infinity,distance:Number.Infinity}};function qTe(e){let t=[],n=e.length;for(let i=0;i<n;i++)i<3?t.push(gS(e[i])):t.push(e[i]);return t}CP.prototype._generateGltf=function(e,t,n,i,o,r,s,a){let c={pbrMetallicRoughness:{metallicFactor:0},doubleSided:!0,name:"Material"},u=!1,f,d="";if(l(this._parent._data.mesh)&&l(this._layer._data.materialDefinitions)){let C=this._parent._data.mesh.material.definition;if(C>=0&&C<this._layer._data.materialDefinitions.length){if(f=this._layer._data.materialDefinitions[C],c=f,l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorTexture)){u=!0,c.pbrMetallicRoughness.baseColorTexture.index=0;let S="0";if(l(this._layer._data.textureSetDefinitions))for(let v=0;v<this._layer._data.textureSetDefinitions.length;v++){let D=this._layer._data.textureSetDefinitions[v];for(let O=0;O<D.formats.length;O++){let R=D.formats[O];if(R.format==="jpg"){S=R.name;break}}}l(this._parent._data.mesh)&&this._parent._data.mesh.material.resource>=0&&(d=this._layer.resource.getDerivedResource({url:`nodes/${this._parent._data.mesh.material.resource}/textures/${S}`}).url)}l(c.pbrMetallicRoughness)&&l(c.pbrMetallicRoughness.baseColorFactor)&&(c.pbrMetallicRoughness.baseColorFactor=qTe(c.pbrMetallicRoughness.baseColorFactor)),l(c.emissiveFactor)&&(c.emissiveFactor=qTe(c.emissiveFactor))}}else l(this._parent._data.textureData)&&(u=!0,d=this._parent.resource.getDerivedResource({url:`${this._parent._data.textureData[0].href}`}).url,c.pbrMetallicRoughness.baseColorTexture={index:0});l(c.alphaMode)&&(c.alphaMode=c.alphaMode.toUpperCase());let p=[],g=[],m=[];u&&(p=[{sampler:0,source:0}],g=[{uri:d}],m=[{magFilter:9729,minFilter:9986,wrapS:10497,wrapT:10497}]);let x=[],b=n.length;for(let A=0;A<b;A++){let C=n[A].primitives,S=C.length;for(let v=0;v<S;v++){let D=C[v];if(l(D.material)){for(;D.material>=x.length;){let R=Ge(c,!0);x.push(R)}let O=x[D.material];l(D.extra)&&D.extra.isTransparent?l(O.alphaMode)||(O.alphaMode="BLEND"):O.alphaMode==="BLEND"&&(O.alphaMode="OPAQUE")}}}return{scene:0,scenes:[{nodes:e}],nodes:t,meshes:n,buffers:i,bufferViews:o,accessors:r,materials:x,textures:p,images:g,samplers:m,asset:{version:"2.0"},extensions:s,extensionsUsed:a}};var EP=CP;function dc(e,t,n){let i,o,r,s;n?(i=0,o=e):(i=e._level+1,o=e._layer),typeof t=="number"?r=t:s=e.resource.getDerivedResource({url:`${t}/`}),this._parent=e,this._dataProvider=e._dataProvider,this._isRoot=n,this._level=i,this._layer=o,this._nodeIndex=r,this._resource=s,this._isLoading=!1,this._tile=void 0,this._data=void 0,this._geometryData=[],this._featureData=[],this._fields={},this._children=[],this._childrenReadyPromise=void 0,this._globalTransform=void 0,this._inverseGlobalTransform=void 0,this._inverseRotationMatrix=void 0,this._symbologyData=void 0}Object.defineProperties(dc.prototype,{resource:{get:function(){return this._resource}},layer:{get:function(){return this._layer}},parent:{get:function(){return this._parent}},children:{get:function(){return this._children}},geometryData:{get:function(){return this._geometryData}},featureData:{get:function(){return this._featureData}},fields:{get:function(){return this._fields}},tile:{get:function(){return this._tile}},data:{get:function(){return this._data}}});dc.prototype.load=async function(){let e=this;function t(){if(!e._isRoot){let o=e._create3DTileDefinition();e._tile=new Ed(e._layer._tileset,e._dataProvider.resource,o,e._parent._tile),e._tile._i3sNode=e}}if(!l(this._nodeIndex)){let o=await km.loadJson(this._resource);e._data=o,t();return}let n=await this._layer._getNodeInNodePages(this._nodeIndex);e._data=n;let i;e._isRoot?i="nodes/root/":l(n.mesh)&&(i=`../${n.mesh.geometry.resource}/`),l(i)&&l(e._parent.resource)&&(e._resource=e._parent.resource.getDerivedResource({url:i})),t()};function YTe(e,t){let n=new u8(e,t);return e._fields[t.name]=n,n.load()}dc.prototype.loadFields=function(){let e=this._layer._data.attributeStorageInfo,t=[];if(l(e))for(let n=0;n<e.length;n++){let i=e[n],o=this._fields[i.name];l(o)?t.push(o.load()):t.push(YTe(this,i))}return Promise.all(t)};dc.prototype.loadField=function(e){let t=this._fields[e];if(l(t))return t.load();let n=this._layer._data.attributeStorageInfo;if(l(n))for(let i=0;i<n.length;i++){let o=n[i];if(o.name===e)return YTe(this,o)}return Promise.resolve()};dc.prototype.getFieldsForPickedPosition=function(e){let t=this.geometryData[0];if(!l(t.customAttributes.featureIndex))return{};let n=t.getClosestPointIndexOnTriangle(e.x,e.y,e.z);if(n.index===-1||n.index>t.customAttributes.featureIndex.length)return{};let i=t.customAttributes.featureIndex[n.index];return this.getFieldsForFeature(i)};dc.prototype.getFieldsForFeature=function(e){let t={};for(let n in this.fields)if(this.fields.hasOwnProperty(n)){let i=this.fields[n];e>=0&&e<i.values.length&&(t[i.name]=i.values[e])}return t};dc.prototype._loadChildren=function(){let e=this;if(l(this._childrenReadyPromise))return this._childrenReadyPromise;let t=[];if(l(e._data.children))for(let n=0;n<e._data.children.length;n++){let i=e._data.children[n],o=new dc(e,y(i.href,i),!1);e._children.push(o),t.push(o.load())}return this._childrenReadyPromise=Promise.all(t).then(function(){for(let n=0;n<e._children.length;n++)e._tile.children.push(e._children[n]._tile)}),this._childrenReadyPromise};dc.prototype._loadGeometryData=function(){let e=[];if(l(this._data.geometryData))for(let t=0;t<this._data.geometryData.length;t++){let n=new EP(this,this._data.geometryData[t].href);this._geometryData.push(n),e.push(n.load())}else if(l(this._data.mesh)){let t=this._layer._findBestGeometryBuffers(this._data.mesh.geometry.definition,["position","uv0"]),n=`./geometries/${t.bufferIndex}/`,i=new EP(this,n);i._geometryDefinitions=t.definition,i._geometryBufferInfo=t.geometryBufferInfo,this._geometryData.push(i),e.push(i.load())}return Promise.all(e)};dc.prototype._loadFeatureData=function(){let e=[];if(l(this._data.featureData))for(let t=0;t<this._data.featureData.length;t++){let n=new c8(this,this._data.featureData[t].href);this._featureData.push(n),e.push(n.load())}return Promise.all(e)};dc.prototype._clearGeometryData=function(){this._geometryData=[]};dc.prototype._create3DTileDefinition=function(){let e=this._data.obb,t=this._data.mbs;if(!l(e)&&!l(t)){console.error("Failed to load I3S node. Bounding volume is required.");return}let n;if(l(e)?n=fe.fromDegrees(e.center[0],e.center[1],e.center[2]):n=fe.fromDegrees(t[0],t[1],t[2]),l(this._dataProvider._geoidDataList)&&l(n))for(let T=0;T<this._dataProvider._geoidDataList.length;T++){let A=this._dataProvider._geoidDataList[T],C=A.projection.project(n);if(C.x>A.nativeExtent.west&&C.x<A.nativeExtent.east&&C.y>A.nativeExtent.south&&C.y<A.nativeExtent.north){n.height+=aAt(C.x,C.y,A);break}}let i={},o,r=0;l(e)?(i={box:[0,0,0,e.halfSize[0],0,0,0,e.halfSize[1],0,0,0,e.halfSize[2]]},r=Math.max(Math.max(this._data.obb.halfSize[0],this._data.obb.halfSize[1]),this._data.obb.halfSize[2]),o=ee.WGS84.cartographicToCartesian(n)):(i={sphere:[0,0,0,t[3]]},o=ee.WGS84.cartographicToCartesian(n),r=this._data.mbs[3]),r*=2;let s=1/0;if(l(this._data.lodThreshold))if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThresholdSQ"){let T=Math.sqrt(this._data.lodThreshold/(Math.PI*.25));s=r/T}else if(this._layer._data.nodePages.lodSelectionMetricType==="maxScreenThreshold"){let T=this._data.lodThreshold;s=r/T}else console.error("Invalid lodSelectionMetricType in Layer");else if(l(this._data.lodSelection))for(let T=0;T<this._data.lodSelection.length;T++)this._data.lodSelection[T].metricType==="maxScreenThreshold"&&(s=r/this._data.lodSelection[T].maxError);s===1/0&&(s=1e5);let a=s*16,c=new Ua(0,0,0),u=Nt.headingPitchRollQuaternion(o,c);l(this._data.obb)&&(u=new Me(this._data.obb.quaternion[0],this._data.obb.quaternion[1],this._data.obb.quaternion[2],this._data.obb.quaternion[3]));let f=$.fromQuaternion(u),d=$.inverse(f,new $),p=new F(f[0],f[1],f[2],0,f[3],f[4],f[5],0,f[6],f[7],f[8],0,o.x,o.y,o.z,1),g=F.inverse(p,new F),m=F.clone(p);l(this._parent._globalTransform)&&F.multiply(p,this._parent._inverseGlobalTransform,m),this._globalTransform=p,this._inverseGlobalTransform=g,this._inverseRotationMatrix=d;let x=[];for(let T=0;T<this._children.length;T++)x.push(this._children[T]._create3DTileDefinition());return{children:x,refine:"REPLACE",boundingVolume:i,transform:[m[0],m[4],m[8],m[12],m[1],m[5],m[9],m[13],m[2],m[6],m[10],m[14],m[3],m[7],m[11],m[15]],content:{uri:l(this._resource)?this._resource.url:void 0},geometricError:a}};dc.prototype._loadSymbology=async function(){!l(this._symbologyData)&&l(this._layer._symbology)&&(this._symbologyData=await this._layer._symbology._getSymbology(this))};dc.prototype._createContentURL=async function(){let e={scene:0,scenes:[{nodes:[0]}],nodes:[{name:"singleNode"}],meshes:[],buffers:[],bufferViews:[],accessors:[],materials:[],textures:[],images:[],samplers:[],asset:{version:"2.0"}},t=[this._loadGeometryData()];if(this._dataProvider.legacyVersion16&&t.push(this._loadFeatureData()),await Promise.all(t),l(this._geometryData)&&this._geometryData.length>0){this._dataProvider._applySymbology&&await this._loadSymbology();let o=this._geometryData[0].resource.url,r=this._layer._data.store.defaultGeometrySchema,s=this._geometryData[0],a=await a8.decode(o,r,s,this._featureData[0],this._symbologyData);if(!l(a))return;e=s._generateGltf(a.meshData.nodesInScene,a.meshData.nodes,a.meshData.meshes,a.meshData.buffers,a.meshData.bufferViews,a.meshData.accessors,a.meshData.rootExtensions,a.meshData.extensionsUsed),this._geometryData[0]._customAttributes=a.meshData._customAttributes}let n=this._dataProvider._binarizeGltf(e),i=new Blob([n],{type:"application/binary"});return URL.createObjectURL(i)};async function oAt(e){let t=e._layer._filters,n=[];for(let i=0;i<t.length;i++){let o=e.loadField(t[i].name);n.push(o)}return await Promise.all(n),t}function rAt(e,t,n){if(!l(n.values)||n.values.length===0)return!1;let i=l(t)?t.values:[],o;e<i.length&&(o=i[e]);let r=!1;for(let s=0;s<n.values.length;s++)if(n.values[s]===o){r=!0;break}return r}async function XTe(e,t){let n=e._tile.content.batchTable;if(l(n)&&n.featuresLength>0){n.setAllShow(!0);let i=await oAt(e);if(i.length>0)for(let o=0;o<n.featuresLength;o++)for(let r=0;r<i.length;r++){let s=i[r];if(!rAt(o,e._fields[s.name],s)){n.setShow(o,!1);break}}}t.show=!0}dc.prototype._filterFeatures=function(){let e=[];for(let n=0;n<this._children.length;n++){let i=this._children[n]._filterFeatures();e.push(i)}let t=this._tile?.content?._model;if(l(this._geometryData)&&this._geometryData.length>0&&l(t)&&t.ready){t.show=!1;let n=XTe(this,t);e.push(n)}return Promise.all(e)};Ed.prototype._hookedRequestContent=Ed.prototype.requestContent;Ed.prototype.requestContent=function(){if(!this.tileset._isI3STileSet)return this._hookedRequestContent();if(!this._isLoading){this._isLoading=!0;let e=this;return this._i3sNode._createContentURL().then(t=>{if(!l(t)){e._isLoading=!1;return}return e._contentResource=new De({url:t}),e._hookedRequestContent()}).then(t=>{let n=t?._model;return l(e._i3sNode._geometryData)&&e._i3sNode._geometryData.length>0&&l(n)&&(n.show=!1,n.readyEvent.addEventListener(()=>{XTe(e._i3sNode,n)})),e._isLoading=!1,t})}};function sAt(e,t,n,i,o,r){let s=n*(1-e)+i*e,a=o*(1-e)+r*e;return s*(1-t)+a*t}function f8(e,t,n,i){let o=e+t*n;return i[o]}function aAt(e,t,n){let i=n.nativeExtent,o=(e-i.west)/(i.east-i.west)*(n.width-1),r=(t-i.south)/(i.north-i.south)*(n.height-1),s=Math.floor(o),a=Math.floor(r);o-=s,r-=a;let c=s<n.width?s+1:s,u=a<n.height?a+1:a;a=n.height-1-a,u=n.height-1-u;let f=f8(s,a,n.width,n.buffer),d=f8(c,a,n.width,n.buffer),p=f8(s,u,n.width,n.buffer),g=f8(c,u,n.width,n.buffer),m=sAt(o,r,f,d,p,g);return m=m*n.scale+n.offset,m}Object.defineProperties(Ed.prototype,{i3sNode:{get:function(){return this._i3sNode}}});var SP=dc;function d8(e){this._layer=e,this._defaultSymbology=void 0,this._valueFields=[],this._uniqueValueHash=void 0,this._classBreaksHash=void 0,this._parseLayerSymbology()}Object.defineProperties(d8.prototype,{defaultSymbology:{get:function(){return this._defaultSymbology}}});function uZ(e,t){let n=[];for(let i=0;i<e.length;i++){let o=z.byteToFloat(e[i]);i<3?n.push(gS(o)):n.push(o)}return n.length===3&&(l(t)?n.push(1-t/100):n.push(1)),n}function bS(e,t){let n={edges:void 0,material:void 0};if(l(e)&&l(e.symbolLayers))for(let i=0;i<e.symbolLayers.length;i++){let o=e.symbolLayers[i];if(o.type==="Fill"){let r=o.edges,s=o.outline;if(l(r)?(n.edges={},l(r.color)&&(n.edges.color=uZ(r.color,r.transparency))):l(s)&&(n.edges={},l(s.color)&&(n.edges.color=uZ(s.color,s.transparency))),!t){let a=o.material;l(a)&&(n.material={colorMixMode:a.colorMixMode},l(a.color)&&(n.material.color=uZ(a.color,a.transparency)))}break}}return n}function cAt(e,t){if(l(e.uniqueValueGroups)){let n={};for(let i=0;i<e.uniqueValueGroups.length;i++){let o=e.uniqueValueGroups[i].classes;if(l(o))for(let r=0;r<o.length;r++){let s=bS(o[r].symbol,t),a=o[r].values;for(let c=0;c<a.length;c++){let u=a[c],f=n;for(let d=0;d<u.length;d++){let p=u[d];d===u.length-1?f[p]=s:(l(f[p])||(f[p]={}),f=f[p])}}}}return n}if(l(e.uniqueValueInfos)){let n={};for(let i=0;i<e.uniqueValueInfos.length;i++){let o=e.uniqueValueInfos[i];n[o.value]=bS(o.symbol,t)}return n}}function lAt(e,t){if(l(e.classBreakInfos)){let n=[...e.classBreakInfos];n.sort(function(o,r){let s=y(o.classMaxValue,o.classMinValue),a=y(r.classMaxValue,r.classMinValue);return s-a});let i={ranges:[],symbols:[]};l(e.minValue)&&(i.ranges.push(e.minValue),i.symbols.push(void 0));for(let o=0;o<n.length;o++){let r=n[o];l(r.classMinValue)&&(i.ranges.length===0||r.classMinValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMinValue),i.symbols.push(void 0)),l(r.classMaxValue)&&(i.ranges.length===0||r.classMaxValue>i.ranges[i.ranges.length-1])&&(i.ranges.push(r.classMaxValue),i.symbols.push(bS(r.symbol,t)))}return i.symbols.push(void 0),i}}d8.prototype._parseLayerSymbology=function(){let e=this._layer.data.drawingInfo;if(l(e)&&l(e.renderer)){let t=this._layer.data.cachedDrawingInfo,n=l(t)&&t.color===!0,i=e.renderer;i.type==="simple"?this._defaultSymbology=bS(i.symbol,n):i.type==="uniqueValue"?(this._defaultSymbology=bS(i.defaultSymbol,n),this._valueFields.push(i.field1),l(i.field2)&&this._valueFields.push(i.field2),l(i.field3)&&this._valueFields.push(i.field3),this._uniqueValueHash=cAt(i,n)):i.type==="classBreaks"&&(this._defaultSymbology=bS(i.defaultSymbol,n),this._valueFields.push(i.field),this._classBreaksHash=lAt(i,n))}};function KTe(e,t,n,i){let o=t[n];if(i<o.length){let r=o[i],s=e[r];return l(s)&&++n<t.length?KTe(s,t,n,i):s}}function uAt(e,t){let n=0,i=e.length;if(n<i)do{let o=n+i>>>1;e[o]<t?n=o+1:i=o}while(n<i);return n}function fAt(e,t,n){let i=t[n],o=uAt(e.ranges,i);return e.symbols[o]}d8.prototype._getSymbology=async function(e){let t={default:this._defaultSymbology};if(this._valueFields.length>0){let n=[];for(let r=0;r<this._valueFields.length;r++)n.push(e.loadField(this._valueFields[r]));await Promise.all(n);let i=[];for(let r=0;r<this._valueFields.length;r++)i.push(e.fields[this._valueFields[r]].values);let o;if(l(this._uniqueValueHash)?o=r=>KTe(this._uniqueValueHash,i,0,r):l(this._classBreaksHash)&&(o=r=>fAt(this._classBreaksHash,i[0],r)),l(o)){let r=i[0];for(let s=0;s<r.length;s++){let a=o(s);l(a)&&(t[s]=a)}}}return t};var h8=d8;function Bl(e,t,n){this._dataProvider=e,this._parent=n,!l(t.href)&&l(t.id)&&(t.href=`layers/${t.id}`);let i=this._parent.resource.getUrlComponent(),o="";i.match(/layers\/\d/)?o=`${i}`.replace(/\/+$/,""):o=`${i}`.replace(/\/?$/,"/").concat(`${t.href}`),this._version=t.store.version;let r=this._version.split(".");this._majorVersion=parseInt(r[0]),this._minorVersion=r.length>1?parseInt(r[1]):0,this._resource=new De({url:o}),this._resource.setQueryParameters(this._dataProvider.resource.queryParameters),this._resource.appendForwardSlash(),this._data=t,this._rootNode=void 0,this._nodePages={},this._nodePageFetches={},this._extent=void 0,this._tileset=void 0,this._geometryDefinitions=void 0,this._filters=[],this._symbology=void 0,this._computeGeometryDefinitions(!0),this._computeExtent()}Object.defineProperties(Bl.prototype,{resource:{get:function(){return this._resource}},rootNode:{get:function(){return this._rootNode}},tileset:{get:function(){return this._tileset}},data:{get:function(){return this._data}},version:{get:function(){return this._version}},majorVersion:{get:function(){return this._majorVersion}},minorVersion:{get:function(){return this._minorVersion}},legacyVersion16:{get:function(){if(l(this.version))return this.majorVersion<1||this.majorVersion===1&&this.minorVersion<=6}}});Bl.prototype.load=async function(e){if(this._data.spatialReference.wkid!==4326)throw new ce(`Unsupported spatial reference: ${this._data.spatialReference.wkid}`);if(this._dataProvider.applySymbology&&(this._symbology=new h8(this)),await this._dataProvider.loadGeoidData(),await this._loadRootNode(e),await this._create3DTileset(e),this._rootNode._tile=this._tileset._root,this._tileset._root._i3sNode=this._rootNode,this.legacyVersion16)return this._rootNode._loadChildren()};Bl.prototype._computeGeometryDefinitions=function(e){if(this._geometryDefinitions=[],l(this._data.geometryDefinitions))for(let t=0;t<this._data.geometryDefinitions.length;t++){let n=[],i=this._data.geometryDefinitions[t].geometryBuffers;for(let o=0;o<i.length;o++){let r=i[o],s=[],a=!1;if(l(r.compressedAttributes)&&e){a=!0;let c=r.compressedAttributes.attributes;for(let u=0;u<c.length;u++)s.push(c[u])}else for(let c in r)c!=="offset"&&s.push(c);n.push({compressed:a,attributes:s,index:i.indexOf(r)})}n.sort(function(o,r){return o.compressed&&!r.compressed?-1:!o.compressed&&r.compressed?1:o.attributes.length-r.attributes.length}),this._geometryDefinitions.push(n)}};Bl.prototype._findBestGeometryBuffers=function(e,t){let n=this._geometryDefinitions[e];if(l(n)){for(let i=0;i<n.length;++i){let o=n[i],r=!1,s=o.attributes;for(let a=0;a<t.length;a++)if(!s.includes(t[a])){r=!0;break}if(!r)return{bufferIndex:o.index,definition:n,geometryBufferInfo:o}}if(l(n[0]))return{bufferIndex:0,definition:n,geometryBufferInfo:n[0]}}};Bl.prototype._loadRootNode=function(e){if(l(this._data.nodePages)){let t=0;l(this._data.nodePages.rootIndex)&&(t=this._data.nodePages.rootIndex),this._rootNode=new SP(this,t,!0)}else this._rootNode=new SP(this,this._data.store.rootNode,!0);return this._rootNode.load(e)};Bl.prototype._getNodeInNodePages=function(e){let t=Math.floor(e/this._data.nodePages.nodesPerPage),n=e%this._data.nodePages.nodesPerPage;return this._loadNodePage(t).then(function(i){return i.nodes[n]})};Bl._fetchJson=function(e){return e.fetchJson()};Bl.prototype._loadNodePage=function(e){let t=this;if(!l(this._nodePageFetches[e])){let n=this.resource.getDerivedResource({url:`nodepages/${e}/`}),i=Bl._fetchJson(n).then(function(o){return l(o.error)&&o.error.code!==200?Promise.reject(o.error):(t._nodePages[e]=o.nodes,o)});this._nodePageFetches[e]=i}return this._nodePageFetches[e]};Bl.prototype._computeExtent=function(){l(this._data.fullExtent)?this._extent=re.fromDegrees(this._data.fullExtent.xmin,this._data.fullExtent.ymin,this._data.fullExtent.xmax,this._data.fullExtent.ymax):l(this._data.store.extent)&&(this._extent=re.fromDegrees(this._data.store.extent[0],this._data.store.extent[1],this._data.store.extent[2],this._data.store.extent[3]))};Bl.prototype._create3DTileset=async function(e){let t={asset:{version:"1.0"},geometricError:Number.MAX_VALUE,root:this._rootNode._create3DTileDefinition()},n=new Blob([JSON.stringify(t)],{type:"application/json"}),i=URL.createObjectURL(n),o=this._symbology?.defaultSymbology?.edges?.color;l(o)&&!l(e?.outlineColor)&&(e=l(e)?Ge(e):{},e.outlineColor=z.fromCartesian4(oe.fromArray(o))),this._tileset=await Ca.fromUrl(i,e),this._tileset.show=this._parent.show,this._tileset._isI3STileSet=!0,this._tileset.tileUnload.addEventListener(function(r){r._i3sNode._clearGeometryData(),URL.revokeObjectURL(r._contentResource._url),r._contentResource=r._i3sNode.resource}),this._tileset.tileVisible.addEventListener(function(r){l(r._i3sNode)&&r._i3sNode._loadChildren()})};Bl.prototype._updateVisibility=function(){l(this._tileset)&&(this._tileset.show=this._parent.show)};Bl.prototype.filterByAttributes=function(e){this._filters=l(e)?Ge(e,!0):[];let t=this._rootNode;return l(t)?t._filterFeatures():Promise.resolve()};var TS=Bl;function m8(e,t){this._dataProvider=e,this._resource=new De({url:t}),this._resource.setQueryParameters(e.resource.queryParameters),this._resource.appendForwardSlash()}Object.defineProperties(m8.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},names:{get:function(){let e=[],t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n)e.push(t[n].fieldName);return e}}});m8.prototype.load=async function(){return this._data=await km.loadJson(this._resource),this._data};m8.prototype._getValues=function(e){let t=this._data.summary;if(l(t))for(let n=0;n<t.length;++n){let i=t[n];if(i.fieldName===e)return l(i.mostFrequentValues)?[...i.mostFrequentValues]:[]}};var p8=m8;function vP(e,t,n){this._dataProvider=e,this._parent=t,this._data=n,this._name=n.name,this._modelName=n.modelName,this._visibility=y(n.visibility,!0),this._resource=void 0,this._sublayers=[],this._i3sLayers=[]}Object.defineProperties(vP.prototype,{resource:{get:function(){return this._resource}},data:{get:function(){return this._data}},name:{get:function(){return this._name}},modelName:{get:function(){return this._modelName}},sublayers:{get:function(){return this._sublayers}},visibility:{get:function(){return this._visibility},set:function(e){if(this._visibility!==e){this._visibility=e;for(let t=0;t<this._i3sLayers.length;t++)this._i3sLayers[t]._updateVisibility()}}},show:{get:function(){return this._visibility&&this._parent.show}}});vP._fromData=async function(e,t,n,i){let o=new vP(e,i,n);if(o._data.layerType==="group"){let r=o._data.sublayers;if(l(r)){let s=[];for(let c=0;c<r.length;c++){let u=vP._fromData(e,t,r[c],o);s.push(u)}let a=await Promise.all(s);for(let c=0;c<a.length;c++){let u=a[c];o._sublayers.push(u),o._i3sLayers.push(...u._i3sLayers)}}}else if(o._data.layerType==="3DObject"){let r=t.concat(`/sublayers/${o._data.id}`),s=new De({url:r});s.setQueryParameters(e.resource.queryParameters),s.appendForwardSlash(),o._resource=s;let a=await km.loadJson(o._resource),c=new TS(e,a,o);o._i3sLayers.push(c)}else console.log(`${o._data.layerType} layer ${o._data.name} is skipped as not supported.`);return o};var _8=vP;var QTe=Er(ZTe(),1);function fs(e){e=y(e,y.EMPTY_OBJECT),this._name=e.name,this._show=y(e.show,!0),this._geoidTiledTerrainProvider=e.geoidTiledTerrainProvider,this._showFeatures=y(e.showFeatures,!1),this._adjustMaterialAlphaMode=y(e.adjustMaterialAlphaMode,!1),this._applySymbology=y(e.applySymbology,!1),this._calculateNormals=y(e.calculateNormals,!1),this._cesium3dTilesetOptions=y(e.cesium3dTilesetOptions,y.EMPTY_OBJECT),this._layers=[],this._sublayers=[],this._data=void 0,this._extent=void 0,this._geoidDataPromise=void 0,this._geoidDataList=void 0,this._decoderTaskProcessor=void 0,this._taskProcessorReadyPromise=void 0,this._attributeStatistics=[],this._layersExtent=[]}Object.defineProperties(fs.prototype,{name:{get:function(){return this._name}},show:{get:function(){return this._show},set:function(e){if(this._show!==e){this._show=e;for(let t=0;t<this._layers.length;t++)this._layers[t]._updateVisibility()}}},geoidTiledTerrainProvider:{get:function(){return this._geoidTiledTerrainProvider}},layers:{get:function(){return this._layers}},sublayers:{get:function(){return this._sublayers}},data:{get:function(){return this._data}},extent:{get:function(){return this._extent}},resource:{get:function(){return this._resource}},showFeatures:{get:function(){return this._showFeatures}},adjustMaterialAlphaMode:{get:function(){return this._adjustMaterialAlphaMode}},applySymbology:{get:function(){return this._applySymbology}},calculateNormals:{get:function(){return this._calculateNormals}}});fs.prototype.destroy=function(){for(let e=0;e<this._layers.length;e++)l(this._layers[e]._tileset)&&this._layers[e]._tileset.destroy();return ue(this)};fs.prototype.isDestroyed=function(){return!1};fs.prototype.update=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.update(e)};fs.prototype.prePassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.prePassesUpdate(e)};fs.prototype.postPassesUpdate=function(e){for(let t=0;t<this._layers.length;t++)l(this._layers[t]._tileset)&&this._layers[t]._tileset.postPassesUpdate(e)};fs.prototype.updateForPass=function(e,t){for(let n=0;n<this._layers.length;n++)l(this._layers[n]._tileset)&&this._layers[n]._tileset.updateForPass(e,t)};function dAt(e,t){let n=e.resource.getUrlComponent(),i="";return n.match(/layers\/\d/)?i=`${n}`.replace(/\/+$/,""):i=`${n}`.replace(/\/?$/,"/").concat(`layers/${t}`),i}async function $Te(e,t,n){if(t.layerType==="Building"){l(n.showFeatures)||(e._showFeatures=!0),l(n.adjustMaterialAlphaMode)||(e._adjustMaterialAlphaMode=!0),l(n.applySymbology)||(e._applySymbology=!0),l(n.calculateNormals)||(e._calculateNormals=!0);let i=dAt(e,t.id);if(l(t.sublayers)){let o=[];for(let s=0;s<t.sublayers.length;s++){let a=_8._fromData(e,i,t.sublayers[s],e);o.push(a)}let r=await Promise.all(o);for(let s=0;s<r.length;s++){let a=r[s];e._sublayers.push(a),e._layers.push(...a._i3sLayers)}}if(l(t.statisticsHRef)){let o=i.concat(`/${t.statisticsHRef}`),r=new p8(e,o);await r.load(),e._attributeStatistics.push(r)}if(l(t.fullExtent)){let o=re.fromDegrees(t.fullExtent.xmin,t.fullExtent.ymin,t.fullExtent.xmax,t.fullExtent.ymax);e._layersExtent.push(o)}}else if(t.layerType==="3DObject"||t.layerType==="IntegratedMesh"){!l(n.calculateNormals)&&!l(t.textureSetDefinitions)&&(e._calculateNormals=!0);let i=new TS(e,t,e);e._layers.push(i),l(i._extent)&&e._layersExtent.push(i._extent)}else console.log(`${t.layerType} layer ${t.name} is skipped as not supported.`)}fs.fromUrl=async function(e,t){t=y(t,y.EMPTY_OBJECT);let n=De.createIfNeeded(e);n.setQueryParameters({f:"pjson"},!0);let i=await fs.loadJson(n),o=new fs(t);if(o._resource=n,o._data=i,l(i.layers)){let s=[];for(let a=0;a<i.layers.length;a++){let c=$Te(o,i.layers[a],t);s.push(c)}await Promise.all(s)}else await $Te(o,i,t);o._computeExtent();let r=[];for(let s=0;s<o._layers.length;s++)r.push(o._layers[s].load(t.cesium3dTilesetOptions));return await Promise.all(r),o};fs._fetchJson=function(e){return e.fetchJson()};fs.loadJson=async function(e){let t=await fs._fetchJson(e);if(l(t.error)){if(console.error("Failed to fetch I3S ",e.url),l(t.error.message)&&console.error(t.error.message),l(t.error.details))for(let n=0;n<t.error.details.length;n++)console.log(t.error.details[n]);throw new ce(t.error)}return t};fs.prototype._loadBinary=async function(e){let t=await e.fetchArrayBuffer();if(t.byteLength>0&&new Uint8Array(t)[0]===123&&new TextDecoder().decode(t).includes("404"))throw new ce(`Failed to load binary: ${e.url}`);return t};fs.prototype._binarizeGltf=function(e){let n=new TextEncoder().encode(JSON.stringify(e)),i=new Uint8Array(n.byteLength+20),o={magic:new Uint8Array(i.buffer,0,4),version:new Uint32Array(i.buffer,4,1),length:new Uint32Array(i.buffer,8,1),chunkLength:new Uint32Array(i.buffer,12,1),chunkType:new Uint32Array(i.buffer,16,1),chunkData:new Uint8Array(i.buffer,20,n.byteLength)};return o.magic[0]=103,o.magic[1]=108,o.magic[2]=84,o.magic[3]=70,o.version[0]=2,o.length[0]=i.byteLength,o.chunkLength[0]=n.byteLength,o.chunkType[0]=1313821514,o.chunkData.set(n),i};var hAt=new U;function mAt(e,t){let n=e.tilingScheme,i=[],o={},r=e._lodCount,s=fe.fromRadians(t.west,t.north),a=fe.fromRadians(t.east,t.south),c=n.positionToTileXY(s,r),u=n.positionToTileXY(a,r);for(let d=c.x;d<=u.x;d++)for(let p=c.y;p<=u.y;p++){let g=U.fromElements(d,p,hAt),m=g.toString();if(!o.hasOwnProperty(m)){let x={x:g.x,y:g.y,level:r,tilingScheme:n,terrainProvider:e,positions:[]};o[m]=x,i.push(x)}}let f=[];for(let d=0;d<i.length;++d){let p=i[d],g=p.terrainProvider.requestTileGeometry(p.x,p.y,p.level);f.push(g)}return Promise.all(f).then(function(d){let p=[];for(let g=0;g<d.length;g++){let m={tilingScheme:n,x:i[g].x,y:i[g].y,level:i[g].level},x=d[g],b="Geographic";n._projection instanceof Ii&&(b="WebMercator");let T={projectionType:b,projection:n._projection,nativeExtent:n.tileXYToNativeRectangle(m.x,m.y,m.level),height:x._height,width:x._width,scale:x._structure.heightScale,offset:x._structure.heightOffset};if(x._encoding===qd.LERC){let A=QTe.default.decode(x._buffer);T.buffer=A.pixels[0]}else T.buffer=x._buffer;p.push(T)}return p})}async function pAt(e){let t=e._geoidTiledTerrainProvider;if(l(t))try{let n=await mAt(t,e._extent);e._geoidDataList=n}catch{console.log("Error retrieving Geoid Terrain tiles - no geoid conversion will be performed.")}}fs.prototype.loadGeoidData=async function(){return l(this._geoidDataPromise)?this._geoidDataPromise:(this._geoidDataPromise=pAt(this),this._geoidDataPromise)};fs.prototype._computeExtent=function(){let e;for(let t=0;t<this._layersExtent.length;t++){let n=this._layersExtent[t];l(e)?re.union(e,n,e):e=re.clone(n)}this._extent=e};fs.prototype.getAttributeNames=function(){let e=[];for(let t=0;t<this._attributeStatistics.length;++t)e.push(...this._attributeStatistics[t].names);return e};fs.prototype.getAttributeValues=function(e){for(let t=0;t<this._attributeStatistics.length;++t){let n=this._attributeStatistics[t]._getValues(e);if(l(n))return n}return[]};fs.prototype.filterByAttributes=function(e){let t=[];for(let n=0;n<this._layers.length;n++){let i=this._layers[n].filterByAttributes(e);t.push(i)}return Promise.all(t)};var km=fs;function JTe(){}Object.defineProperties(JTe.prototype,{color:{get:he.throwInstantiationError},intensity:{get:he.throwInstantiationError}});var eAe=JTe;var _At=/\/$/,tAe=new wt('© <a href="https://www.mapbox.com/about/maps/">Mapbox</a> © <a href="http://www.openstreetmap.org/copyright">OpenStreetMap</a> <strong><a href="https://www.mapbox.com/map-feedback/">Improve this map</a></strong>');function AS(e){e=y(e,y.EMPTY_OBJECT);let t=e.styleId,n=e.accessToken;this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0;let i=De.createIfNeeded(y(e.url,"https://api.mapbox.com/styles/v1/"));this._styleId=t,this._accessToken=n;let o=y(e.tilesize,512);this._tilesize=o;let r=y(e.username,"mapbox");this._username=r;let s=l(e.scaleFactor)?"@2x":"",a=i.getUrlComponent();_At.test(a)||(a+="/"),a+=`${this._username}/${t}/tiles/${this._tilesize}/{z}/{x}/{y}${s}`,i.url=a,i.setQueryParameters({access_token:n});let c;l(e.credit)?(c=e.credit,typeof c=="string"&&(c=new wt(c))):c=tAe,this._resource=i,this._imageryProvider=new sc({url:i,credit:c,ellipsoid:e.ellipsoid,minimumLevel:e.minimumLevel,maximumLevel:e.maximumLevel,rectangle:e.rectangle})}Object.defineProperties(AS.prototype,{url:{get:function(){return this._imageryProvider.url}},rectangle:{get:function(){return this._imageryProvider.rectangle}},tileWidth:{get:function(){return this._imageryProvider.tileWidth}},tileHeight:{get:function(){return this._imageryProvider.tileHeight}},maximumLevel:{get:function(){return this._imageryProvider.maximumLevel}},minimumLevel:{get:function(){return this._imageryProvider.minimumLevel}},tilingScheme:{get:function(){return this._imageryProvider.tilingScheme}},tileDiscardPolicy:{get:function(){return this._imageryProvider.tileDiscardPolicy}},errorEvent:{get:function(){return this._imageryProvider.errorEvent}},credit:{get:function(){return this._imageryProvider.credit}},proxy:{get:function(){return this._imageryProvider.proxy}},hasAlphaChannel:{get:function(){return this._imageryProvider.hasAlphaChannel}}});AS.prototype.getTileCredits=function(e,t,n){};AS.prototype.requestImage=function(e,t,n,i){return this._imageryProvider.requestImage(e,t,n,i)};AS.prototype.pickFeatures=function(e,t,n,i,o){return this._imageryProvider.pickFeatures(e,t,n,i,o)};AS._defaultCredit=tAe;var nAe=AS;function fZ(e){}fZ.prototype.isReady=function(){return!0};fZ.prototype.shouldDiscardImage=function(e){return!1};var iAe=fZ;var gAt=new wt("MapQuest, Open Street Map and contributors, CC-BY-SA");function y8(e){e=y(e,y.EMPTY_OBJECT);let t=De.createIfNeeded(y(e.url,"https://tile.openstreetmap.org/"));t.appendForwardSlash(),t.url+=`{z}/{x}/{y}${e.retinaTiles?"@2x":""}.${y(e.fileExtension,"png")}`;let n=new us({ellipsoid:e.ellipsoid}),i=256,o=256,r=y(e.minimumLevel,0),s=e.maximumLevel,a=y(e.rectangle,n.rectangle),c=n.positionToTileXY(re.southwest(a),r),u=n.positionToTileXY(re.northeast(a),r),f=(Math.abs(u.x-c.x)+1)*(Math.abs(u.y-c.y)+1),d=y(e.credit,gAt);typeof d=="string"&&(d=new wt(d)),sc.call(this,{url:t,credit:d,tilingScheme:n,tileWidth:i,tileHeight:o,minimumLevel:r,maximumLevel:s,rectangle:a})}l(Object.create)&&(y8.prototype=Object.create(sc.prototype),y8.prototype.constructor=y8);var l0=y8;var yAt=new U(1,1);function dZ(e){e=y(e,y.EMPTY_OBJECT),this.mass=y(e.mass,1),this.position=h.clone(y(e.position,h.ZERO)),this.velocity=h.clone(y(e.velocity,h.ZERO)),this.life=y(e.life,Number.MAX_VALUE),this.image=e.image,this.startColor=z.clone(y(e.startColor,z.WHITE)),this.endColor=z.clone(y(e.endColor,z.WHITE)),this.startScale=y(e.startScale,1),this.endScale=y(e.endScale,1),this.imageSize=U.clone(y(e.imageSize,yAt)),this._age=0,this._normalizedAge=0,this._billboard=void 0}Object.defineProperties(dZ.prototype,{age:{get:function(){return this._age}},normalizedAge:{get:function(){return this._normalizedAge}}});var oAe=new h;dZ.prototype.update=function(e,t){return h.multiplyByScalar(this.velocity,e,oAe),h.add(this.position,oAe,this.position),l(t)&&t(this,e),this._age+=e,this.life===Number.MAX_VALUE?this._normalizedAge=0:this._normalizedAge=this._age/this.life,this._age<=this.life};var wP=dZ;function rAe(e){e=y(e,y.EMPTY_OBJECT),this.time=y(e.time,0),this.minimum=y(e.minimum,0),this.maximum=y(e.maximum,50),this._complete=!1}Object.defineProperties(rAe.prototype,{complete:{get:function(){return this._complete}}});var sAe=rAe;function aAe(e){}aAe.prototype.emit=function(e){he.throwInstantiationError()};var cAe=aAe;var lAe=new U(1,1);function DP(e){e=y(e,y.EMPTY_OBJECT),this.show=y(e.show,!0),this.updateCallback=e.updateCallback,this.loop=y(e.loop,!0),this.image=y(e.image,void 0);let t=e.emitter;l(t)||(t=new e8(.5)),this._emitter=t,this._bursts=e.bursts,this._modelMatrix=F.clone(y(e.modelMatrix,F.IDENTITY)),this._emitterModelMatrix=F.clone(y(e.emitterModelMatrix,F.IDENTITY)),this._matrixDirty=!0,this._combinedMatrix=new F,this._startColor=z.clone(y(e.color,y(e.startColor,z.WHITE))),this._endColor=z.clone(y(e.color,y(e.endColor,z.WHITE))),this._startScale=y(e.scale,y(e.startScale,1)),this._endScale=y(e.scale,y(e.endScale,1)),this._emissionRate=y(e.emissionRate,5),this._minimumSpeed=y(e.speed,y(e.minimumSpeed,1)),this._maximumSpeed=y(e.speed,y(e.maximumSpeed,1)),this._minimumParticleLife=y(e.particleLife,y(e.minimumParticleLife,5)),this._maximumParticleLife=y(e.particleLife,y(e.maximumParticleLife,5)),this._minimumMass=y(e.mass,y(e.minimumMass,1)),this._maximumMass=y(e.mass,y(e.maximumMass,1)),this._minimumImageSize=U.clone(y(e.imageSize,y(e.minimumImageSize,lAe))),this._maximumImageSize=U.clone(y(e.imageSize,y(e.maximumImageSize,lAe))),this._sizeInMeters=y(e.sizeInMeters,!1),this._lifetime=y(e.lifetime,Number.MAX_VALUE),this._billboardCollection=void 0,this._particles=[],this._particlePool=[],this._previousTime=void 0,this._currentTime=0,this._carryOver=0,this._complete=new me,this._isComplete=!1,this._updateParticlePool=!0,this._particleEstimate=0}Object.defineProperties(DP.prototype,{emitter:{get:function(){return this._emitter},set:function(e){this._emitter=e}},bursts:{get:function(){return this._bursts},set:function(e){this._bursts=e,this._updateParticlePool=!0}},modelMatrix:{get:function(){return this._modelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._modelMatrix,e),F.clone(e,this._modelMatrix)}},emitterModelMatrix:{get:function(){return this._emitterModelMatrix},set:function(e){this._matrixDirty=this._matrixDirty||!F.equals(this._emitterModelMatrix,e),F.clone(e,this._emitterModelMatrix)}},startColor:{get:function(){return this._startColor},set:function(e){z.clone(e,this._startColor)}},endColor:{get:function(){return this._endColor},set:function(e){z.clone(e,this._endColor)}},startScale:{get:function(){return this._startScale},set:function(e){this._startScale=e}},endScale:{get:function(){return this._endScale},set:function(e){this._endScale=e}},emissionRate:{get:function(){return this._emissionRate},set:function(e){this._emissionRate=e,this._updateParticlePool=!0}},minimumSpeed:{get:function(){return this._minimumSpeed},set:function(e){this._minimumSpeed=e}},maximumSpeed:{get:function(){return this._maximumSpeed},set:function(e){this._maximumSpeed=e}},minimumParticleLife:{get:function(){return this._minimumParticleLife},set:function(e){this._minimumParticleLife=e}},maximumParticleLife:{get:function(){return this._maximumParticleLife},set:function(e){this._maximumParticleLife=e,this._updateParticlePool=!0}},minimumMass:{get:function(){return this._minimumMass},set:function(e){this._minimumMass=e}},maximumMass:{get:function(){return this._maximumMass},set:function(e){this._maximumMass=e}},minimumImageSize:{get:function(){return this._minimumImageSize},set:function(e){this._minimumImageSize=e}},maximumImageSize:{get:function(){return this._maximumImageSize},set:function(e){this._maximumImageSize=e}},sizeInMeters:{get:function(){return this._sizeInMeters},set:function(e){this._sizeInMeters=e}},lifetime:{get:function(){return this._lifetime},set:function(e){this._lifetime=e}},complete:{get:function(){return this._complete}},isComplete:{get:function(){return this._isComplete}}});function xAt(e){let t=e._emissionRate,n=e._maximumParticleLife,i=0,o=e._bursts;if(l(o)){let d=o.length;for(let p=0;p<d;++p)i+=o[p].maximum}let r=e._billboardCollection,s=e.image,a=Math.ceil(t*n+i),c=e._particles,u=e._particlePool,f=Math.max(a-c.length-u.length,0);for(let d=0;d<f;++d){let p=new wP;p._billboard=r.add({image:s,show:!1}),u.push(p)}e._particleEstimate=a}function bAt(e){let t=e._particlePool.pop();return l(t)||(t=new wP),t}function TAt(e,t){e._particlePool.push(t)}function AAt(e){let t=e._particles,n=e._particlePool,i=e._billboardCollection,o=t.length,r=n.length,s=e._particleEstimate,a=r-Math.max(s-o-r,0);for(let c=a;c<r;++c){let u=n[c];i.remove(u._billboard)}n.length=a}function CAt(e){l(e._billboard)&&(e._billboard.show=!1)}function uAe(e,t){let n=t._billboard;l(n)||(n=t._billboard=e._billboardCollection.add({image:t.image})),n.width=t.imageSize.x,n.height=t.imageSize.y,n.position=t.position,n.sizeInMeters=e.sizeInMeters,n.show=!0;let i=P.lerp(t.startColor.red,t.endColor.red,t.normalizedAge),o=P.lerp(t.startColor.green,t.endColor.green,t.normalizedAge),r=P.lerp(t.startColor.blue,t.endColor.blue,t.normalizedAge),s=P.lerp(t.startColor.alpha,t.endColor.alpha,t.normalizedAge);n.color=new z(i,o,r,s),n.scale=P.lerp(t.startScale,t.endScale,t.normalizedAge)}function EAt(e,t){t.startColor=z.clone(e._startColor,t.startColor),t.endColor=z.clone(e._endColor,t.endColor),t.startScale=e._startScale,t.endScale=e._endScale,t.image=e.image,t.life=P.randomBetween(e._minimumParticleLife,e._maximumParticleLife),t.mass=P.randomBetween(e._minimumMass,e._maximumMass),t.imageSize.x=P.randomBetween(e._minimumImageSize.x,e._maximumImageSize.x),t.imageSize.y=P.randomBetween(e._minimumImageSize.y,e._maximumImageSize.y),t._normalizedAge=0,t._age=0;let n=P.randomBetween(e._minimumSpeed,e._maximumSpeed);h.multiplyByScalar(t.velocity,n,t.velocity),e._particles.push(t)}function SAt(e,t){if(e._isComplete)return 0;t=P.mod(t,e._lifetime);let n=t*e._emissionRate,i=Math.floor(n);if(e._carryOver+=n-i,e._carryOver>1&&(i++,e._carryOver-=1),l(e.bursts)){let o=e.bursts.length;for(let r=0;r<o;r++){let s=e.bursts[r],a=e._currentTime;l(s)&&!s._complete&&a>s.time&&(i+=P.randomBetween(s.minimum,s.maximum),s._complete=!0)}}return i}var x8=new h;DP.prototype.update=function(e){if(!this.show)return;l(this._billboardCollection)||(this._billboardCollection=new mf),this._updateParticlePool&&(xAt(this),this._updateParticlePool=!1);let t=0;this._previousTime&&(t=K.secondsDifference(e.time,this._previousTime)),t<0&&(t=0);let n=this._particles,i=this._emitter,o=this.updateCallback,r,s,a=n.length;for(r=0;r<a;++r)s=n[r],s.update(t,o)?uAe(this,s):(CAt(s),TAt(this,s),n[r]=n[a-1],--r,--a);n.length=a;let c=SAt(this,t);if(c>0&&l(i)){this._matrixDirty&&(this._combinedMatrix=F.multiply(this.modelMatrix,this.emitterModelMatrix,this._combinedMatrix),this._matrixDirty=!1);let u=this._combinedMatrix;for(r=0;r<c;r++)s=bAt(this),this._emitter.emit(s),h.add(s.position,s.velocity,x8),F.multiplyByPoint(u,x8,x8),s.position=F.multiplyByPoint(u,s.position,s.position),h.subtract(x8,s.position,s.velocity),h.normalize(s.velocity,s.velocity),EAt(this,s),uAe(this,s)}if(this._billboardCollection.update(e),this._previousTime=K.clone(e.time,this._previousTime),this._currentTime+=t,this._lifetime!==Number.MAX_VALUE&&this._currentTime>this._lifetime)if(this.loop){if(this._currentTime=P.mod(this._currentTime,this._lifetime),this.bursts){let u=this.bursts.length;for(r=0;r<u;r++)this.bursts[r]._complete=!1}}else this._isComplete=!0,this._complete.raiseEvent(this);e.frameNumber%120===0&&AAt(this)};DP.prototype.isDestroyed=function(){return!1};DP.prototype.destroy=function(){return this._billboardCollection=this._billboardCollection&&this._billboardCollection.destroy(),ue(this)};var fAe=DP;function Fu(){he.throwInstantiationError()}Fu.computeDefaultLevelZeroMaximumGeometricError=function(e){return e.ellipsoid.maximumRadius*2*Math.PI*.25/(65*e.getNumberOfXTilesAtLevel(0))};Object.defineProperties(Fu.prototype,{quadtree:{get:he.throwInstantiationError,set:he.throwInstantiationError},tilingScheme:{get:he.throwInstantiationError},errorEvent:{get:he.throwInstantiationError}});Fu.prototype.update=he.throwInstantiationError;Fu.prototype.beginUpdate=he.throwInstantiationError;Fu.prototype.endUpdate=he.throwInstantiationError;Fu.prototype.getLevelMaximumGeometricError=he.throwInstantiationError;Fu.prototype.loadTile=he.throwInstantiationError;Fu.prototype.computeTileVisibility=he.throwInstantiationError;Fu.prototype.showTileThisFrame=he.throwInstantiationError;Fu.prototype.computeDistanceToTile=he.throwInstantiationError;Fu.prototype.isDestroyed=he.throwInstantiationError;Fu.prototype.destroy=he.throwInstantiationError;var dAe=Fu;function hZ(e){e=y(e,1),this._radius=y(e,1)}Object.defineProperties(hZ.prototype,{radius:{get:function(){return this._radius},set:function(e){this._radius=e}}});hZ.prototype.emit=function(e){let t=P.randomBetween(0,P.TWO_PI),n=P.randomBetween(0,P.PI),i=P.randomBetween(0,this._radius),o=i*Math.cos(t)*Math.sin(n),r=i*Math.sin(t)*Math.sin(n),s=i*Math.cos(n);e.position=h.fromElements(o,r,s,e.position),e.velocity=h.normalize(e.position,e.velocity)};var hAe=hZ;function IP(){}IP.prototype.evaluate=function(e,t){he.throwInstantiationError()};IP.prototype.evaluateColor=function(e,t){he.throwInstantiationError()};IP.prototype.getShaderFunction=function(e,t,n,i){he.throwInstantiationError()};IP.prototype.getVariables=function(){he.throwInstantiationError()};var mAe=IP;function CS(e){this._ready=!1,this._provider=void 0,this._errorEvent=new me,this._readyEvent=new me,wAt(this,e)}Object.defineProperties(CS.prototype,{errorEvent:{get:function(){return this._errorEvent}},readyEvent:{get:function(){return this._readyEvent}},ready:{get:function(){return this._ready}},provider:{get:function(){return this._provider}}});CS.fromWorldTerrain=function(e){return new CS(_S(e))};CS.fromWorldBathymetry=function(e){return new CS(qH(e))};function vAt(e,t){e.numberOfListeners>0?e.raiseEvent(t):console.error(t)}async function wAt(e,t){let n;try{n=await Promise.resolve(t),e._provider=n,e._ready=!0,e._readyEvent.raiseEvent(n)}catch(i){vAt(e._errorEvent,i)}}var b8=CS;function ES(){}ES.prototype.boundingVolume=void 0;ES.prototype.boundingSphere=void 0;ES.prototype.distanceToCamera=function(e){he.throwInstantiationError()};ES.prototype.intersectPlane=function(e){he.throwInstantiationError()};ES.prototype.createDebugVolume=function(e){he.throwInstantiationError()};var pAe=ES;function PP(e){e=y(e,y.EMPTY_OBJECT),this._tilingScheme=l(e.tilingScheme)?e.tilingScheme:new qi({ellipsoid:e.ellipsoid}),this._color=y(e.color,z.YELLOW),this._errorEvent=new me,this._tileWidth=y(e.tileWidth,256),this._tileHeight=y(e.tileHeight,256),this._defaultAlpha=void 0,this._defaultNightAlpha=void 0,this._defaultDayAlpha=void 0,this._defaultBrightness=void 0,this._defaultContrast=void 0,this._defaultHue=void 0,this._defaultSaturation=void 0,this._defaultGamma=void 0,this._defaultMinificationFilter=void 0,this._defaultMagnificationFilter=void 0}Object.defineProperties(PP.prototype,{proxy:{get:function(){}},tileWidth:{get:function(){return this._tileWidth}},tileHeight:{get:function(){return this._tileHeight}},maximumLevel:{get:function(){}},minimumLevel:{get:function(){}},tilingScheme:{get:function(){return this._tilingScheme}},rectangle:{get:function(){return this._tilingScheme.rectangle}},tileDiscardPolicy:{get:function(){}},errorEvent:{get:function(){return this._errorEvent}},credit:{get:function(){}},hasAlphaChannel:{get:function(){return!0}}});PP.prototype.getTileCredits=function(e,t,n){};PP.prototype.requestImage=function(e,t,n,i){let o=document.createElement("canvas");o.width=256,o.height=256;let r=o.getContext("2d"),s=this._color.toCssColorString();return r.strokeStyle=s,r.lineWidth=2,r.strokeRect(1,1,255,255),r.font="bold 25px Arial",r.textAlign="center",r.fillStyle=s,r.fillText(`L: ${n}`,124,86),r.fillText(`X: ${e}`,124,136),r.fillText(`Y: ${t}`,124,186),Promise.resolve(o)};PP.prototype.pickFeatures=function(e,t,n,i,o){};var T8=PP;function mZ(e){he.throwInstantiationError()}mZ.prototype.isReady=he.throwInstantiationError;mZ.prototype.shouldDiscardImage=he.throwInstantiationError;var _Ae=mZ;var DAt={START:0,LOADING:1,READY:2,UPSAMPLED_ONLY:3},gAe=Object.freeze(DAt);function A8(e,t){this.show=!0,l(e)||(e=new qe),this.rectangle=qe.clone(e),l(t)||(t=ji.fromType(ji.ColorType,{color:new z(1,1,1,1)})),this.material=t,this._material=void 0,this._overlayCommand=void 0,this._rs=void 0}A8.prototype.update=function(e){if(!this.show)return;let t=this._rs;if((!l(t)||!qe.equals(t.viewport,this.rectangle))&&(this._rs=Ve.fromCache({blending:ln.ALPHA_BLEND,viewport:this.rectangle})),e.passes.render){let i=e.context;if(this._material!==this.material||!l(this._overlayCommand)){this._material=this.material,l(this._overlayCommand)&&this._overlayCommand.shaderProgram.destroy();let o=new Ue({sources:[this._material.shaderSource,PH]});this._overlayCommand=i.createViewportQuadCommand(o,{renderState:this._rs,uniformMap:this._material._uniforms,owner:this}),this._overlayCommand.pass=ve.OVERLAY}this._material.update(i),this._overlayCommand.renderState=this._rs,this._overlayCommand.uniformMap=this._material._uniforms,e.commandList.push(this._overlayCommand)}};A8.prototype.isDestroyed=function(){return!1};A8.prototype.destroy=function(){return l(this._overlayCommand)&&(this._overlayCommand.shaderProgram=this._overlayCommand.shaderProgram&&this._overlayCommand.shaderProgram.destroy()),ue(this)};var yAe=A8;function pZ(){he.throwInstantiationError()}Object.defineProperties(pZ.prototype,{globalTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shape:{get:he.throwInstantiationError},minBounds:{get:he.throwInstantiationError},maxBounds:{get:he.throwInstantiationError},dimensions:{get:he.throwInstantiationError},paddingBefore:{get:he.throwInstantiationError},paddingAfter:{get:he.throwInstantiationError},names:{get:he.throwInstantiationError},types:{get:he.throwInstantiationError},componentTypes:{get:he.throwInstantiationError},minimumValues:{get:he.throwInstantiationError},maximumValues:{get:he.throwInstantiationError},maximumTileCount:{get:he.throwInstantiationError},keyframeCount:{get:he.throwInstantiationError},timeIntervalCollection:{get:he.throwInstantiationError}});pZ.prototype.requestData=he.throwInstantiationError;var xAe=pZ;function kb(){he.throwInstantiationError()}Object.defineProperties(kb.prototype,{orientedBoundingBox:{get:he.throwInstantiationError},boundingSphere:{get:he.throwInstantiationError},boundTransform:{get:he.throwInstantiationError},shapeTransform:{get:he.throwInstantiationError},shaderUniforms:{get:he.throwInstantiationError},shaderDefines:{get:he.throwInstantiationError},shaderMaximumIntersectionsLength:{get:he.throwInstantiationError}});kb.prototype.update=he.throwInstantiationError;kb.prototype.computeOrientedBoundingBoxForTile=he.throwInstantiationError;kb.prototype.computeOrientedBoundingBoxForSample=he.throwInstantiationError;kb.DefaultMinBounds=he.throwInstantiationError;kb.DefaultMaxBounds=he.throwInstantiationError;var bAe=kb;var IAt=new z,PAt=new z,RAt=new z,OAt=new z,TAe=new oe,RP=new Uint8Array(4);function AAe(e,t,n,i){let o=t.height===n.height?0:(e-t.height)/(n.height-t.height);return z.lerp(t.color,n.color,o,i)}function C8(e,t){return{height:e,color:z.clone(t)}}function CAe(e){return e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?t.height===i[n-1].height:!0,a=r?t.height===i[n+1].height:!0;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=n<i.length-1,s=o?z.equals(t.color,i[n-1].color):!1,a=r?z.equals(t.color,i[n+1].color):!1;return!s||!a}),e=e.filter(function(t,n,i){let o=n>0,r=o?z.equals(t.color,i[n-1].color):!1,s=o?t.height===i[n-1].height:!0;return!r||!s}),e}function MAt(e){let t,n,i=[],o=e.length;for(t=0;t<o;t++){let r=e[t],s=r.entries,a=s.length,c=[];for(n=0;n<a;n++){let g=s[n],m=P.clamp(g.height,kl._minimumHeight,kl._maximumHeight),x=z.clone(g.color,IAt);x.red*=x.alpha,x.green*=x.alpha,x.blue*=x.alpha,c.push(C8(m,x))}let u=!0,f=!0;for(n=0;n<a-1;n++){let g=c[n+0],m=c[n+1];u=u&&g.height<=m.height,f=f&&g.height>=m.height}f?c=c.reverse():u||zy(c,function(g,m){return P.sign(g.height-m.height)});let d=y(r.extendDownwards,!1),p=y(r.extendUpwards,!1);c.length===1&&!d&&!p&&(d=!0,p=!0),d&&c.splice(0,0,C8(kl._minimumHeight,c[0].color)),p&&c.splice(c.length,0,C8(kl._maximumHeight,c[c.length-1].color)),c=CAe(c),i.push(c)}return i}function LAt(e){let t=MAt(e),n=[],i=[],o;function r(u,f){n.push(C8(u,f))}function s(u,f,d){let p=z.multiplyByScalar(d,1-f.alpha,OAt);p=z.add(p,f,p),r(u,p)}let a=t.length;for(o=0;o<a;o++){let u=t[o],f=0,d=0;i=n,n=[];let p=u.length,g=i.length;for(;f<p||d<g;){let m=f<p?u[f]:void 0,x=f>0?u[f-1]:void 0,b=f<p-1?u[f+1]:void 0,T=d<g?i[d]:void 0,A=d>0?i[d-1]:void 0,C=d<g-1?i[d+1]:void 0;if(l(m)&&l(T)&&m.height===T.height){let S=l(C)&&T.height===C.height,v=!l(A),D=!l(C),O=l(b)&&m.height===b.height,R=!l(x),M=!l(b);S?O?(s(m.height,m.color,T.color),s(m.height,b.color,C.color)):R?(r(m.height,T.color),s(m.height,m.color,C.color)):M?(s(m.height,m.color,T.color),r(m.height,C.color)):(s(m.height,m.color,T.color),s(m.height,m.color,C.color)):v?O?(r(m.height,m.color),s(m.height,b.color,T.color)):M?(r(m.height,m.color),r(m.height,T.color)):(R||r(m.height,m.color),s(m.height,m.color,T.color)):D?O?(s(m.height,m.color,T.color),r(m.height,b.color)):R?(r(m.height,T.color),r(m.height,m.color)):M?s(m.height,m.color,T.color):(s(m.height,m.color,T.color),r(m.height,m.color)):O?(s(m.height,m.color,T.color),s(m.height,b.color,T.color)):R?(r(m.height,T.color),s(m.height,m.color,T.color)):M?(s(m.height,m.color,T.color),r(m.height,T.color)):s(m.height,m.color,T.color),f+=O?2:1,d+=S?2:1}else if(l(m)&&l(T)&&l(A)&&m.height<T.height){let S=AAe(m.height,A,T,RAt);l(x)?l(b)?s(m.height,m.color,S):(s(m.height,m.color,S),r(m.height,S)):(r(m.height,S),s(m.height,m.color,S)),f++}else if(l(T)&&l(m)&&l(x)&&T.height<m.height){let S=AAe(T.height,x,m,PAt);l(A)?l(C)?s(T.height,S,T.color):(s(T.height,S,T.color),r(T.height,S)):(r(T.height,S),s(T.height,S,T.color)),d++}else l(m)&&(!l(T)||m.height<T.height)?(l(T)&&!l(A)&&!l(b)?(r(m.height,m.color),r(m.height,kl._emptyColor),r(T.height,kl._emptyColor)):(!l(T)&&l(A)&&!l(x)&&(r(A.height,kl._emptyColor),r(m.height,kl._emptyColor)),r(m.height,m.color)),f++):l(T)&&(!l(m)||T.height<m.height)&&(r(T.height,T.color),d++)}}return CAe(n)}function kl(e){let{scene:t,layers:n}=y(e,y.EMPTY_OBJECT),{context:i}=t,o=LAt(n),r=o.length,s,a,c;if(!kl._useFloatTexture(i)){a=Ze.UNSIGNED_BYTE,c=it.RGBA,s=new Uint8Array(r*4);for(let g=0;g<r;g++)oe.packFloat(o[g].height,TAe),oe.pack(TAe,s,g*4)}else{a=Ze.FLOAT,c=i.webgl2?it.RED:it.LUMINANCE,s=new Float32Array(r);for(let g=0;g<r;g++)s[g]=o[g].height}let f=Ot.create({context:i,pixelFormat:c,pixelDatatype:a,source:{arrayBufferView:s,width:r,height:1},sampler:new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.NEAREST,magnificationFilter:di.NEAREST})}),d=new Uint8Array(r*4);for(let g=0;g<r;g++)o[g].color.toBytes(RP),d[g*4+0]=RP[0],d[g*4+1]=RP[1],d[g*4+2]=RP[2],d[g*4+3]=RP[3];let p=Ot.create({context:i,pixelFormat:it.RGBA,pixelDatatype:Ze.UNSIGNED_BYTE,source:{arrayBufferView:d,width:r,height:1},sampler:new Qt({wrapS:En.CLAMP_TO_EDGE,wrapT:En.CLAMP_TO_EDGE,minificationFilter:$t.LINEAR,magnificationFilter:di.LINEAR})});return ji.fromType("ElevationBand",{heights:f,colors:p})}kl._useFloatTexture=function(e){return e.floatingPointTexture};kl._maximumHeight=5906376425472;kl._minimumHeight=-5906376425472;kl._emptyColor=new z(0,0,0,0);var EAe=kl;async function NAt(e,t){if(t=y(t,{}),t.cacheBytes=y(t.cacheBytes,1536*1024*1024),t.maximumCacheOverflowBytes=y(t.maximumCacheOverflowBytes,1024*1024*1024),t.enableCollision=y(t.enableCollision,!0),e=y(e,hS.defaultApiKey),!l(e))return FAt(t);let n,i=hS.getDefaultCredit();l(i)&&(n=[i]);let o=new De({url:`${hS.mapTilesApiEndpoint}3dtiles/root.json`,queryParameters:{key:e},credits:n});return Ca.fromUrl(o,t)}var SAe={};async function FAt(e){let i=SAe[2275207];l(i)||(i=ef.fromAssetId(2275207),SAe[2275207]=i);let o=await i;return Ca.fromUrl(o,e)}var vAe=NAt;async function BAt(e){let t=await Ca.fromIonAssetId(96188,e);e=y(e,y.EMPTY_OBJECT);let n=e.style;if(!l(n)){let i=y(e.defaultColor,z.WHITE).toCssColorString();n=new xS({color:`Boolean(\${feature['cesium#color']}) ? color(\${feature['cesium#color']}) : ${i}`})}return t.style=n,t}var wAe=BAt;function kAt(e){e=y(e,y.EMPTY_OBJECT);let t=[],n=e.geometry;(!l(n.attributes)||!l(n.primitiveType))&&(n=n.constructor.createGeometry(n));let i=n.attributes,o=F.clone(y(e.modelMatrix,F.IDENTITY)),r=y(e.length,1e4);if(l(i.normal)&&t.push(new vt({geometry:Nn.createLineSegmentsForVectors(n,"normal",r),attributes:{color:new qt(1,0,0,1)},modelMatrix:o})),l(i.tangent)&&t.push(new vt({geometry:Nn.createLineSegmentsForVectors(n,"tangent",r),attributes:{color:new qt(0,1,0,1)},modelMatrix:o})),l(i.bitangent)&&t.push(new vt({geometry:Nn.createLineSegmentsForVectors(n,"bitangent",r),attributes:{color:new qt(0,0,1,1)},modelMatrix:o})),t.length>0)return new In({asynchronous:!1,geometryInstances:t,appearance:new cn({flat:!0,translucent:!1})})}var DAe=kAt;var IAe=`uniform sampler2D u_depthTexture; + +in vec2 v_textureCoordinates; + +void main() +{ + float z_window = czm_unpackDepth(texture(u_depthTexture, v_textureCoordinates)); + z_window = czm_reverseLogDepth(z_window); + float n_range = czm_depthRange.near; + float f_range = czm_depthRange.far; + float z_ndc = (2.0 * z_window - n_range - f_range) / (f_range - n_range); + float scale = pow(z_ndc * 0.5 + 0.5, 8.0); + out_FragColor = vec4(mix(vec3(0.0), vec3(1.0), scale), 1.0); +} +`;function VAt(e){e=y(e,y.EMPTY_OBJECT),this.typedArray=e.typedArray,this.width=e.width,this.height=e.height,this.pixelFormat=y(e.pixelFormat,it.RGBA),this.pixelDatatype=y(e.pixelDatatype,Ze.UNSIGNED_BYTE);let t=e.url;typeof t=="string"&&(t=De.createIfNeeded(t)),this.resource=t;let i=y(e.repeat,!0)?En.REPEAT:En.CLAMP_TO_EDGE;this.sampler=new Qt({wrapS:i,wrapT:i,minificationFilter:e.minificationFilter,magnificationFilter:e.magnificationFilter,maximumAnisotropy:e.maximumAnisotropy})}var PAe=VAt;var UAt={FLOAT:"float",VEC2:"vec2",VEC3:"vec3",VEC4:"vec4",MAT2:"mat2",MAT3:"mat2",MAT4:"mat4"},RAe=Object.freeze(UAt);var zAt={SIGX:"SIGX",SIGY:"SIGY",SIGZ:"SIGZ",VARX:"VARX",VARY:"VARY",VARZ:"VARZ",SIGR:"VARZ"},OAe=Object.freeze(zAt);function HAt(e){async function t({data:i}){let o=[],r={id:i.id,result:void 0,error:void 0};self.CESIUM_BASE_URL=i.baseUrl;try{let s=await e(i.parameters,o);r.result=s}catch(s){s instanceof Error?r.error={name:s.name,message:s.message,stack:s.stack}:r.error=s}i.canTransferArrayBuffer||(o.length=0);try{postMessage(r,o)}catch(s){r.result=void 0,r.error=`postMessage failed with error: ${s_(s)} + with responseMessage: ${JSON.stringify(r)}`,postMessage(r)}}function n(i){postMessage({id:i.data?.id,error:`postMessage failed with error: ${JSON.stringify(i)}`})}return self.onmessage=t,self.onmessageerror=n,self}var MAe=HAt;globalThis.CESIUM_VERSION="1.123";var OP;typeof ko<"u"&&(OP=ko);(function(){/*! + * Knockout JavaScript library v3.5.1 + * (c) The Knockout.js team - http://knockoutjs.com/ + * License: MIT (http://www.opensource.org/licenses/mit-license.php) + */(function(){(function(e){var t=this||(0,eval)("this"),n=t.document,i=t.navigator,o=t.jQuery,r=t.JSON;o||typeof jQuery>"u"||(o=jQuery),function(s){s(t.ko={})}(function(s,a){function c(_,E){return _===null||typeof _ in x?_===E:!1}function u(_,E){var w;return function(){w||(w=m.a.setTimeout(function(){w=e,_()},E))}}function f(_,E){var w;return function(){clearTimeout(w),w=m.a.setTimeout(_,E)}}function d(_,E){E&&E!=="change"?E==="beforeChange"?this.pc(_):this.gb(_,E):this.qc(_)}function p(_,E){E!==null&&E.s&&E.s()}function g(_,E){var w=this.qd,I=w[S];I.ra||(this.Qb&&this.mb[E]?(w.uc(E,_,this.mb[E]),this.mb[E]=null,--this.Qb):I.I[E]||w.uc(E,_,I.J?{da:_}:w.$c(_)),_.Ja&&_.gd())}var m=typeof s<"u"?s:{};m.b=function(_,E){for(var w=_.split("."),I=m,N=0;N<w.length-1;N++)I=I[w[N]];I[w[w.length-1]]=E},m.L=function(_,E,w){_[E]=w},m.version="3.5.1",m.b("version",m.version),m.options={deferUpdates:!1,useOnlyNativeEvents:!1,foreachHidesDestroyed:!1},m.a=function(){function _(j,Z){for(var Q in j)N.call(j,Q)&&Z(Q,j[Q])}function E(j,Z){if(Z)for(var Q in Z)N.call(Z,Q)&&(j[Q]=Z[Q]);return j}function w(j,Z){return j.__proto__=Z,j}function I(j,Z,Q,de){var ye=j[Z].match(q)||[];m.a.D(Q.match(q),function(ae){m.a.Na(ye,ae,de)}),j[Z]=ye.join(" ")}var N=Object.prototype.hasOwnProperty,B={__proto__:[]}instanceof Array,H=typeof Symbol=="function",V={},G={};V[i&&/Firefox\/2/i.test(i.userAgent)?"KeyboardEvent":"UIEvents"]=["keyup","keydown","keypress"],V.MouseEvents="click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave".split(" "),_(V,function(j,Z){if(Z.length)for(var Q=0,de=Z.length;Q<de;Q++)G[Z[Q]]=j});var k={propertychange:!0},W=n&&function(){for(var j=3,Z=n.createElement("div"),Q=Z.getElementsByTagName("i");Z.innerHTML="<!--[if gt IE "+ ++j+"]><i></i><![endif]-->",Q[0];);return 4<j?j:e}(),q=/\S+/g,J;return{Jc:["authenticity_token",/^__RequestVerificationToken(_.*)?$/],D:function(j,Z,Q){for(var de=0,ye=j.length;de<ye;de++)Z.call(Q,j[de],de,j)},A:typeof Array.prototype.indexOf=="function"?function(j,Z){return Array.prototype.indexOf.call(j,Z)}:function(j,Z){for(var Q=0,de=j.length;Q<de;Q++)if(j[Q]===Z)return Q;return-1},Lb:function(j,Z,Q){for(var de=0,ye=j.length;de<ye;de++)if(Z.call(Q,j[de],de,j))return j[de];return e},Pa:function(j,Z){var Q=m.a.A(j,Z);0<Q?j.splice(Q,1):Q===0&&j.shift()},wc:function(j){var Z=[];return j&&m.a.D(j,function(Q){0>m.a.A(Z,Q)&&Z.push(Q)}),Z},Mb:function(j,Z,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)de.push(Z.call(Q,j[ye],ye));return de},jb:function(j,Z,Q){var de=[];if(j)for(var ye=0,ae=j.length;ye<ae;ye++)Z.call(Q,j[ye],ye)&&de.push(j[ye]);return de},Nb:function(j,Z){if(Z instanceof Array)j.push.apply(j,Z);else for(var Q=0,de=Z.length;Q<de;Q++)j.push(Z[Q]);return j},Na:function(j,Z,Q){var de=m.a.A(m.a.bc(j),Z);0>de?Q&&j.push(Z):Q||j.splice(de,1)},Ba:B,extend:E,setPrototypeOf:w,Ab:B?w:E,P:_,Ga:function(j,Z,Q){if(!j)return j;var de={},ye;for(ye in j)N.call(j,ye)&&(de[ye]=Z.call(Q,j[ye],ye,j));return de},Tb:function(j){for(;j.firstChild;)m.removeNode(j.firstChild)},Yb:function(j){j=m.a.la(j);for(var Z=(j[0]&&j[0].ownerDocument||n).createElement("div"),Q=0,de=j.length;Q<de;Q++)Z.appendChild(m.oa(j[Q]));return Z},Ca:function(j,Z){for(var Q=0,de=j.length,ye=[];Q<de;Q++){var ae=j[Q].cloneNode(!0);ye.push(Z?m.oa(ae):ae)}return ye},va:function(j,Z){if(m.a.Tb(j),Z)for(var Q=0,de=Z.length;Q<de;Q++)j.appendChild(Z[Q])},Xc:function(j,Z){var Q=j.nodeType?[j]:j;if(0<Q.length){for(var de=Q[0],ye=de.parentNode,ae=0,_e=Z.length;ae<_e;ae++)ye.insertBefore(Z[ae],de);for(ae=0,_e=Q.length;ae<_e;ae++)m.removeNode(Q[ae])}},Ua:function(j,Z){if(j.length){for(Z=Z.nodeType===8&&Z.parentNode||Z;j.length&&j[0].parentNode!==Z;)j.splice(0,1);for(;1<j.length&&j[j.length-1].parentNode!==Z;)j.length--;if(1<j.length){var Q=j[0],de=j[j.length-1];for(j.length=0;Q!==de;)j.push(Q),Q=Q.nextSibling;j.push(de)}}return j},Zc:function(j,Z){7>W?j.setAttribute("selected",Z):j.selected=Z},Db:function(j){return j===null||j===e?"":j.trim?j.trim():j.toString().replace(/^[\s\xa0]+|[\s\xa0]+$/g,"")},Ud:function(j,Z){return j=j||"",Z.length>j.length?!1:j.substring(0,Z.length)===Z},vd:function(j,Z){if(j===Z)return!0;if(j.nodeType===11)return!1;if(Z.contains)return Z.contains(j.nodeType!==1?j.parentNode:j);if(Z.compareDocumentPosition)return(Z.compareDocumentPosition(j)&16)==16;for(;j&&j!=Z;)j=j.parentNode;return!!j},Sb:function(j){return m.a.vd(j,j.ownerDocument.documentElement)},kd:function(j){return!!m.a.Lb(j,m.a.Sb)},R:function(j){return j&&j.tagName&&j.tagName.toLowerCase()},Ac:function(j){return m.onError?function(){try{return j.apply(this,arguments)}catch(Z){throw m.onError&&m.onError(Z),Z}}:j},setTimeout:function(j,Z){return setTimeout(m.a.Ac(j),Z)},Gc:function(j){setTimeout(function(){throw m.onError&&m.onError(j),j},0)},B:function(j,Z,Q){var de=m.a.Ac(Q);if(Q=k[Z],m.options.useOnlyNativeEvents||Q||!o)if(Q||typeof j.addEventListener!="function")if(typeof j.attachEvent<"u"){var ye=function(_e){de.call(j,_e)},ae="on"+Z;j.attachEvent(ae,ye),m.a.K.za(j,function(){j.detachEvent(ae,ye)})}else throw Error("Browser doesn't support addEventListener or attachEvent");else j.addEventListener(Z,de,!1);else J||(J=typeof o(j).on=="function"?"on":"bind"),o(j)[J](Z,de)},Fb:function(j,Z){if(!j||!j.nodeType)throw Error("element must be a DOM node when calling triggerEvent");var Q;if(m.a.R(j)==="input"&&j.type&&Z.toLowerCase()=="click"?(Q=j.type,Q=Q=="checkbox"||Q=="radio"):Q=!1,m.options.useOnlyNativeEvents||!o||Q)if(typeof n.createEvent=="function")if(typeof j.dispatchEvent=="function")Q=n.createEvent(G[Z]||"HTMLEvents"),Q.initEvent(Z,!0,!0,t,0,0,0,0,0,!1,!1,!1,!1,0,j),j.dispatchEvent(Q);else throw Error("The supplied element doesn't support dispatchEvent");else if(Q&&j.click)j.click();else if(typeof j.fireEvent<"u")j.fireEvent("on"+Z);else throw Error("Browser doesn't support triggering events");else o(j).trigger(Z)},f:function(j){return m.O(j)?j():j},bc:function(j){return m.O(j)?j.v():j},Eb:function(j,Z,Q){var de;Z&&(typeof j.classList=="object"?(de=j.classList[Q?"add":"remove"],m.a.D(Z.match(q),function(ye){de.call(j.classList,ye)})):typeof j.className.baseVal=="string"?I(j.className,"baseVal",Z,Q):I(j,"className",Z,Q))},Bb:function(j,Z){var Q=m.a.f(Z);(Q===null||Q===e)&&(Q="");var de=m.h.firstChild(j);!de||de.nodeType!=3||m.h.nextSibling(de)?m.h.va(j,[j.ownerDocument.createTextNode(Q)]):de.data=Q,m.a.Ad(j)},Yc:function(j,Z){if(j.name=Z,7>=W)try{var Q=j.name.replace(/[&<>'"]/g,function(de){return"&#"+de.charCodeAt(0)+";"});j.mergeAttributes(n.createElement("<input name='"+Q+"'/>"),!1)}catch{}},Ad:function(j){9<=W&&(j=j.nodeType==1?j:j.parentNode,j.style&&(j.style.zoom=j.style.zoom))},wd:function(j){if(W){var Z=j.style.width;j.style.width=0,j.style.width=Z}},Pd:function(j,Z){j=m.a.f(j),Z=m.a.f(Z);for(var Q=[],de=j;de<=Z;de++)Q.push(de);return Q},la:function(j){for(var Z=[],Q=0,de=j.length;Q<de;Q++)Z.push(j[Q]);return Z},Da:function(j){return H?Symbol(j):j},Zd:W===6,$d:W===7,W,Lc:function(j,Z){for(var Q=m.a.la(j.getElementsByTagName("input")).concat(m.a.la(j.getElementsByTagName("textarea"))),de=typeof Z=="string"?function(_e){return _e.name===Z}:function(_e){return Z.test(_e.name)},ye=[],ae=Q.length-1;0<=ae;ae--)de(Q[ae])&&ye.push(Q[ae]);return ye},Nd:function(j){return typeof j=="string"&&(j=m.a.Db(j))?r&&r.parse?r.parse(j):new Function("return "+j)():null},hc:function(j,Z,Q){if(!r||!r.stringify)throw Error("Cannot find JSON.stringify(). Some browsers (e.g., IE < 8) don't support it natively, but you can overcome this by adding a script reference to json2.js, downloadable from http://www.json.org/json2.js");return r.stringify(m.a.f(j),Z,Q)},Od:function(j,Z,Q){Q=Q||{};var de=Q.params||{},ye=Q.includeFields||this.Jc,ae=j;if(typeof j=="object"&&m.a.R(j)==="form")for(var ae=j.action,_e=ye.length-1;0<=_e;_e--)for(var xe=m.a.Lc(j,ye[_e]),Ie=xe.length-1;0<=Ie;Ie--)de[xe[Ie].name]=xe[Ie].value;Z=m.a.f(Z);var Ce=n.createElement("form");Ce.style.display="none",Ce.action=ae,Ce.method="post";for(var ke in Z)j=n.createElement("input"),j.type="hidden",j.name=ke,j.value=m.a.hc(m.a.f(Z[ke])),Ce.appendChild(j);_(de,function(He,rt){var Lt=n.createElement("input");Lt.type="hidden",Lt.name=He,Lt.value=rt,Ce.appendChild(Lt)}),n.body.appendChild(Ce),Q.submitter?Q.submitter(Ce):Ce.submit(),setTimeout(function(){Ce.parentNode.removeChild(Ce)},0)}}}(),m.b("utils",m.a),m.b("utils.arrayForEach",m.a.D),m.b("utils.arrayFirst",m.a.Lb),m.b("utils.arrayFilter",m.a.jb),m.b("utils.arrayGetDistinctValues",m.a.wc),m.b("utils.arrayIndexOf",m.a.A),m.b("utils.arrayMap",m.a.Mb),m.b("utils.arrayPushAll",m.a.Nb),m.b("utils.arrayRemoveItem",m.a.Pa),m.b("utils.cloneNodes",m.a.Ca),m.b("utils.createSymbolOrString",m.a.Da),m.b("utils.extend",m.a.extend),m.b("utils.fieldsIncludedWithJsonPost",m.a.Jc),m.b("utils.getFormFields",m.a.Lc),m.b("utils.objectMap",m.a.Ga),m.b("utils.peekObservable",m.a.bc),m.b("utils.postJson",m.a.Od),m.b("utils.parseJson",m.a.Nd),m.b("utils.registerEventHandler",m.a.B),m.b("utils.stringifyJson",m.a.hc),m.b("utils.range",m.a.Pd),m.b("utils.toggleDomNodeCssClass",m.a.Eb),m.b("utils.triggerEvent",m.a.Fb),m.b("utils.unwrapObservable",m.a.f),m.b("utils.objectForEach",m.a.P),m.b("utils.addOrRemoveItem",m.a.Na),m.b("utils.setTextContent",m.a.Bb),m.b("unwrap",m.a.f),Function.prototype.bind||(Function.prototype.bind=function(_){var E=this;if(arguments.length===1)return function(){return E.apply(_,arguments)};var w=Array.prototype.slice.call(arguments,1);return function(){var I=w.slice(0);return I.push.apply(I,arguments),E.apply(_,I)}}),m.a.g=new function(){var _=0,E="__ko__"+new Date().getTime(),w={},I,N;return m.a.W?(I=function(B,H){var V=B[E];if(!V||V==="null"||!w[V]){if(!H)return e;V=B[E]="ko"+_++,w[V]={}}return w[V]},N=function(B){var H=B[E];return H?(delete w[H],B[E]=null,!0):!1}):(I=function(B,H){var V=B[E];return!V&&H&&(V=B[E]={}),V},N=function(B){return B[E]?(delete B[E],!0):!1}),{get:function(B,H){var V=I(B,!1);return V&&V[H]},set:function(B,H,V){(B=I(B,V!==e))&&(B[H]=V)},Ub:function(B,H,V){return B=I(B,!0),B[H]||(B[H]=V)},clear:N,Z:function(){return _+++E}}},m.b("utils.domData",m.a.g),m.b("utils.domData.clear",m.a.g.clear),m.a.K=new function(){function _(H,V){var G=m.a.g.get(H,I);return G===e&&V&&(G=[],m.a.g.set(H,I,G)),G}function E(H){var V=_(H,!1);if(V)for(var V=V.slice(0),G=0;G<V.length;G++)V[G](H);m.a.g.clear(H),m.a.K.cleanExternalData(H),B[H.nodeType]&&w(H.childNodes,!0)}function w(H,V){for(var G=[],k,W=0;W<H.length;W++)if((!V||H[W].nodeType===8)&&(E(G[G.length]=k=H[W]),H[W]!==k))for(;W--&&m.a.A(G,H[W])==-1;);}var I=m.a.g.Z(),N={1:!0,8:!0,9:!0},B={1:!0,9:!0};return{za:function(H,V){if(typeof V!="function")throw Error("Callback must be a function");_(H,!0).push(V)},yb:function(H,V){var G=_(H,!1);G&&(m.a.Pa(G,V),G.length==0&&m.a.g.set(H,I,e))},oa:function(H){return m.u.G(function(){N[H.nodeType]&&(E(H),B[H.nodeType]&&w(H.getElementsByTagName("*")))}),H},removeNode:function(H){m.oa(H),H.parentNode&&H.parentNode.removeChild(H)},cleanExternalData:function(H){o&&typeof o.cleanData=="function"&&o.cleanData([H])}}},m.oa=m.a.K.oa,m.removeNode=m.a.K.removeNode,m.b("cleanNode",m.oa),m.b("removeNode",m.removeNode),m.b("utils.domNodeDisposal",m.a.K),m.b("utils.domNodeDisposal.addDisposeCallback",m.a.K.za),m.b("utils.domNodeDisposal.removeDisposeCallback",m.a.K.yb),function(){var _=[0,"",""],E=[1,"<table>","</table>"],w=[3,"<table><tbody><tr>","</tr></tbody></table>"],I=[1,"<select multiple='multiple'>","</select>"],N={thead:E,tbody:E,tfoot:E,tr:[2,"<table><tbody>","</tbody></table>"],td:w,th:w,option:I,optgroup:I},B=8>=m.a.W;m.a.ua=function(H,V){var G;if(o){if(o.parseHTML)G=o.parseHTML(H,V)||[];else if((G=o.clean([H],V))&&G[0]){for(var k=G[0];k.parentNode&&k.parentNode.nodeType!==11;)k=k.parentNode;k.parentNode&&k.parentNode.removeChild(k)}}else{(G=V)||(G=n);var k=G.parentWindow||G.defaultView||t,W=m.a.Db(H).toLowerCase(),q=G.createElement("div"),J;for(J=(W=W.match(/^(?:\x3c!--.*?--\x3e\s*?)*?<([a-z]+)[\s>]/))&&N[W[1]]||_,W=J[0],J="ignored<div>"+J[1]+H+J[2]+"</div>",typeof k.innerShiv=="function"?q.appendChild(k.innerShiv(J)):(B&&G.body.appendChild(q),q.innerHTML=J,B&&q.parentNode.removeChild(q));W--;)q=q.lastChild;G=m.a.la(q.lastChild.childNodes)}return G},m.a.Md=function(H,V){var G=m.a.ua(H,V);return G.length&&G[0].parentElement||m.a.Yb(G)},m.a.fc=function(H,V){if(m.a.Tb(H),V=m.a.f(V),V!==null&&V!==e)if(typeof V!="string"&&(V=V.toString()),o)o(H).html(V);else for(var G=m.a.ua(V,H.ownerDocument),k=0;k<G.length;k++)H.appendChild(G[k])}}(),m.b("utils.parseHtmlFragment",m.a.ua),m.b("utils.setHtml",m.a.fc),m.aa=function(){function _(w,I){if(w){if(w.nodeType==8){var N=m.aa.Uc(w.nodeValue);N!=null&&I.push({ud:w,Kd:N})}else if(w.nodeType==1)for(var N=0,B=w.childNodes,H=B.length;N<H;N++)_(B[N],I)}}var E={};return{Xb:function(w){if(typeof w!="function")throw Error("You can only pass a function to ko.memoization.memoize()");var I=(4294967296*(1+Math.random())|0).toString(16).substring(1)+(4294967296*(1+Math.random())|0).toString(16).substring(1);return E[I]=w,"<!--[ko_memo:"+I+"]-->"},bd:function(w,I){var N=E[w];if(N===e)throw Error("Couldn't find any memo with ID "+w+". Perhaps it's already been unmemoized.");try{return N.apply(null,I||[]),!0}finally{delete E[w]}},cd:function(w,I){var N=[];_(w,N);for(var B=0,H=N.length;B<H;B++){var V=N[B].ud,G=[V];I&&m.a.Nb(G,I),m.aa.bd(N[B].Kd,G),V.nodeValue="",V.parentNode&&V.parentNode.removeChild(V)}},Uc:function(w){return(w=w.match(/^\[ko_memo\:(.*?)\]$/))?w[1]:null}}}(),m.b("memoization",m.aa),m.b("memoization.memoize",m.aa.Xb),m.b("memoization.unmemoize",m.aa.bd),m.b("memoization.parseMemoText",m.aa.Uc),m.b("memoization.unmemoizeDomNodeAndDescendants",m.aa.cd),m.na=function(){function _(){if(N){for(var V=N,G=0,k;H<N;)if(k=I[H++]){if(H>V){if(5e3<=++G){H=N,m.a.Gc(Error("'Too much recursion' after processing "+G+" task groups."));break}V=N}try{k()}catch(W){m.a.Gc(W)}}}}function E(){_(),H=N=I.length=0}var w,I=[],N=0,B=1,H=0;return t.MutationObserver?w=function(V){var G=n.createElement("div");return new MutationObserver(V).observe(G,{attributes:!0}),function(){G.classList.toggle("foo")}}(E):w=n&&"onreadystatechange"in n.createElement("script")?function(V){var G=n.createElement("script");G.onreadystatechange=function(){G.onreadystatechange=null,n.documentElement.removeChild(G),G=null,V()},n.documentElement.appendChild(G)}:function(V){setTimeout(V,0)},{scheduler:w,zb:function(V){return N||m.na.scheduler(E),I[N++]=V,B++},cancel:function(V){V=V-(B-N),V>=H&&V<N&&(I[V]=null)},resetForTesting:function(){var V=N-H;return H=N=I.length=0,V},Sd:_}}(),m.b("tasks",m.na),m.b("tasks.schedule",m.na.zb),m.b("tasks.runEarly",m.na.Sd),m.Ta={throttle:function(_,E){_.throttleEvaluation=E;var w=null;return m.$({read:_,write:function(I){clearTimeout(w),w=m.a.setTimeout(function(){_(I)},E)}})},rateLimit:function(_,E){var w,I,N;typeof E=="number"?w=E:(w=E.timeout,I=E.method),_.Hb=!1,N=typeof I=="function"?I:I=="notifyWhenChangesStop"?f:u,_.ub(function(B){return N(B,w,E)})},deferred:function(_,E){if(E!==!0)throw Error("The 'deferred' extender only accepts the value 'true', because it is not supported to turn deferral off once enabled.");_.Hb||(_.Hb=!0,_.ub(function(w){var I,N=!1;return function(){if(!N){m.na.cancel(I),I=m.na.zb(w);try{N=!0,_.notifySubscribers(e,"dirty")}finally{N=!1}}}}))},notify:function(_,E){_.equalityComparer=E=="always"?null:c}};var x={undefined:1,boolean:1,number:1,string:1};m.b("extenders",m.Ta),m.ic=function(_,E,w){this.da=_,this.lc=E,this.mc=w,this.Ib=!1,this.fb=this.Jb=null,m.L(this,"dispose",this.s),m.L(this,"disposeWhenNodeIsRemoved",this.l)},m.ic.prototype.s=function(){this.Ib||(this.fb&&m.a.K.yb(this.Jb,this.fb),this.Ib=!0,this.mc(),this.da=this.lc=this.mc=this.Jb=this.fb=null)},m.ic.prototype.l=function(_){this.Jb=_,m.a.K.za(_,this.fb=this.s.bind(this))},m.T=function(){m.a.Ab(this,b),b.qb(this)};var b={qb:function(_){_.U={change:[]},_.sc=1},subscribe:function(_,E,w){var I=this;w=w||"change";var N=new m.ic(I,E?_.bind(E):_,function(){m.a.Pa(I.U[w],N),I.hb&&I.hb(w)});return I.Qa&&I.Qa(w),I.U[w]||(I.U[w]=[]),I.U[w].push(N),N},notifySubscribers:function(_,E){if(E=E||"change",E==="change"&&this.Gb(),this.Wa(E)){var w=E==="change"&&this.ed||this.U[E].slice(0);try{m.u.xc();for(var I=0,N;N=w[I];++I)N.Ib||N.lc(_)}finally{m.u.end()}}},ob:function(){return this.sc},Dd:function(_){return this.ob()!==_},Gb:function(){++this.sc},ub:function(_){var E=this,w=m.O(E),I,N,B,H,V;E.gb||(E.gb=E.notifySubscribers,E.notifySubscribers=d);var G=_(function(){E.Ja=!1,w&&H===E&&(H=E.nc?E.nc():E());var k=N||V&&E.sb(B,H);V=N=I=!1,k&&E.gb(B=H)});E.qc=function(k,W){W&&E.Ja||(V=!W),E.ed=E.U.change.slice(0),E.Ja=I=!0,H=k,G()},E.pc=function(k){I||(B=k,E.gb(k,"beforeChange"))},E.rc=function(){V=!0},E.gd=function(){E.sb(B,E.v(!0))&&(N=!0)}},Wa:function(_){return this.U[_]&&this.U[_].length},Bd:function(_){if(_)return this.U[_]&&this.U[_].length||0;var E=0;return m.a.P(this.U,function(w,I){w!=="dirty"&&(E+=I.length)}),E},sb:function(_,E){return!this.equalityComparer||!this.equalityComparer(_,E)},toString:function(){return"[object Object]"},extend:function(_){var E=this;return _&&m.a.P(_,function(w,I){var N=m.Ta[w];typeof N=="function"&&(E=N(E,I)||E)}),E}};m.L(b,"init",b.qb),m.L(b,"subscribe",b.subscribe),m.L(b,"extend",b.extend),m.L(b,"getSubscriptionsCount",b.Bd),m.a.Ba&&m.a.setPrototypeOf(b,Function.prototype),m.T.fn=b,m.Qc=function(_){return _!=null&&typeof _.subscribe=="function"&&typeof _.notifySubscribers=="function"},m.b("subscribable",m.T),m.b("isSubscribable",m.Qc),m.S=m.u=function(){function _(B){w.push(I),I=B}function E(){I=w.pop()}var w=[],I,N=0;return{xc:_,end:E,cc:function(B){if(I){if(!m.Qc(B))throw Error("Only subscribable things can act as dependencies");I.od.call(I.pd,B,B.fd||(B.fd=++N))}},G:function(B,H,V){try{return _(),B.apply(H,V||[])}finally{E()}},qa:function(){if(I)return I.o.qa()},Va:function(){if(I)return I.o.Va()},Ya:function(){if(I)return I.Ya},o:function(){if(I)return I.o}}}(),m.b("computedContext",m.S),m.b("computedContext.getDependenciesCount",m.S.qa),m.b("computedContext.getDependencies",m.S.Va),m.b("computedContext.isInitial",m.S.Ya),m.b("computedContext.registerDependency",m.S.cc),m.b("ignoreDependencies",m.Yd=m.u.G);var T=m.a.Da("_latestValue");m.ta=function(_){function E(){return 0<arguments.length?(E.sb(E[T],arguments[0])&&(E.ya(),E[T]=arguments[0],E.xa()),this):(m.u.cc(E),E[T])}return E[T]=_,m.a.Ba||m.a.extend(E,m.T.fn),m.T.fn.qb(E),m.a.Ab(E,A),m.options.deferUpdates&&m.Ta.deferred(E,!0),E};var A={equalityComparer:c,v:function(){return this[T]},xa:function(){this.notifySubscribers(this[T],"spectate"),this.notifySubscribers(this[T])},ya:function(){this.notifySubscribers(this[T],"beforeChange")}};m.a.Ba&&m.a.setPrototypeOf(A,m.T.fn);var C=m.ta.Ma="__ko_proto__";A[C]=m.ta,m.O=function(_){if((_=typeof _=="function"&&_[C])&&_!==A[C]&&_!==m.o.fn[C])throw Error("Invalid object that looks like an observable; possibly from another Knockout instance");return!!_},m.Za=function(_){return typeof _=="function"&&(_[C]===A[C]||_[C]===m.o.fn[C]&&_.Nc)},m.b("observable",m.ta),m.b("isObservable",m.O),m.b("isWriteableObservable",m.Za),m.b("isWritableObservable",m.Za),m.b("observable.fn",A),m.L(A,"peek",A.v),m.L(A,"valueHasMutated",A.xa),m.L(A,"valueWillMutate",A.ya),m.Ha=function(_){if(_=_||[],typeof _!="object"||!("length"in _))throw Error("The argument passed when initializing an observable array must be an array, or null, or undefined.");return _=m.ta(_),m.a.Ab(_,m.Ha.fn),_.extend({trackArrayChanges:!0})},m.Ha.fn={remove:function(_){for(var E=this.v(),w=[],I=typeof _!="function"||m.O(_)?function(H){return H===_}:_,N=0;N<E.length;N++){var B=E[N];if(I(B)){if(w.length===0&&this.ya(),E[N]!==B)throw Error("Array modified during remove; cannot remove item");w.push(B),E.splice(N,1),N--}}return w.length&&this.xa(),w},removeAll:function(_){if(_===e){var E=this.v(),w=E.slice(0);return this.ya(),E.splice(0,E.length),this.xa(),w}return _?this.remove(function(I){return 0<=m.a.A(_,I)}):[]},destroy:function(_){var E=this.v(),w=typeof _!="function"||m.O(_)?function(B){return B===_}:_;this.ya();for(var I=E.length-1;0<=I;I--){var N=E[I];w(N)&&(N._destroy=!0)}this.xa()},destroyAll:function(_){return _===e?this.destroy(function(){return!0}):_?this.destroy(function(E){return 0<=m.a.A(_,E)}):[]},indexOf:function(_){var E=this();return m.a.A(E,_)},replace:function(_,E){var w=this.indexOf(_);0<=w&&(this.ya(),this.v()[w]=E,this.xa())},sorted:function(_){var E=this().slice(0);return _?E.sort(_):E.sort()},reversed:function(){return this().slice(0).reverse()}},m.a.Ba&&m.a.setPrototypeOf(m.Ha.fn,m.ta.fn),m.a.D("pop push reverse shift sort splice unshift".split(" "),function(_){m.Ha.fn[_]=function(){var E=this.v();this.ya(),this.zc(E,_,arguments);var w=E[_].apply(E,arguments);return this.xa(),w===E?this:w}}),m.a.D(["slice"],function(_){m.Ha.fn[_]=function(){var E=this();return E[_].apply(E,arguments)}}),m.Pc=function(_){return m.O(_)&&typeof _.remove=="function"&&typeof _.push=="function"},m.b("observableArray",m.Ha),m.b("isObservableArray",m.Pc),m.Ta.trackArrayChanges=function(_,E){function w(){function q(){if(V){var J=[].concat(_.v()||[]),j;_.Wa("arrayChange")&&((!N||1<V)&&(N=m.a.Pb(G,J,_.Ob)),j=N),G=J,N=null,V=0,j&&j.length&&_.notifySubscribers(j,"arrayChange")}}I?q():(I=!0,H=_.subscribe(function(){++V},null,"spectate"),G=[].concat(_.v()||[]),N=null,B=_.subscribe(q))}if(_.Ob={},E&&typeof E=="object"&&m.a.extend(_.Ob,E),_.Ob.sparse=!0,!_.zc){var I=!1,N=null,B,H,V=0,G,k=_.Qa,W=_.hb;_.Qa=function(q){k&&k.call(_,q),q==="arrayChange"&&w()},_.hb=function(q){W&&W.call(_,q),q!=="arrayChange"||_.Wa("arrayChange")||(B&&B.s(),H&&H.s(),H=B=null,I=!1,G=e)},_.zc=function(q,J,j){function Z(Ce,ke,He){return Q[Q.length]={status:Ce,value:ke,index:He}}if(I&&!V){var Q=[],de=q.length,ye=j.length,ae=0;switch(J){case"push":ae=de;case"unshift":for(J=0;J<ye;J++)Z("added",j[J],ae+J);break;case"pop":ae=de-1;case"shift":de&&Z("deleted",q[ae],ae);break;case"splice":J=Math.min(Math.max(0,0>j[0]?de+j[0]:j[0]),de);for(var de=ye===1?de:Math.min(J+(j[1]||0),de),ye=J+ye-2,ae=Math.max(de,ye),_e=[],xe=[],Ie=2;J<ae;++J,++Ie)J<de&&xe.push(Z("deleted",q[J],J)),J<ye&&_e.push(Z("added",j[Ie],J));m.a.Kc(xe,_e);break;default:return}N=Q}}}};var S=m.a.Da("_state");m.o=m.$=function(_,E,w){function I(){if(0<arguments.length){if(typeof N=="function")N.apply(B.nb,arguments);else throw Error("Cannot write a value to a ko.computed unless you specify a 'write' option. If you wish to read the current value, don't pass any parameters.");return this}return B.ra||m.u.cc(I),(B.ka||B.J&&I.Xa())&&I.ha(),B.X}if(typeof _=="object"?w=_:(w=w||{},_&&(w.read=_)),typeof w.read!="function")throw Error("Pass a function that returns the value of the ko.computed");var N=w.write,B={X:e,sa:!0,ka:!0,rb:!1,jc:!1,ra:!1,wb:!1,J:!1,Wc:w.read,nb:E||w.owner,l:w.disposeWhenNodeIsRemoved||w.l||null,Sa:w.disposeWhen||w.Sa,Rb:null,I:{},V:0,Ic:null};return I[S]=B,I.Nc=typeof N=="function",m.a.Ba||m.a.extend(I,m.T.fn),m.T.fn.qb(I),m.a.Ab(I,v),w.pure?(B.wb=!0,B.J=!0,m.a.extend(I,D)):w.deferEvaluation&&m.a.extend(I,O),m.options.deferUpdates&&m.Ta.deferred(I,!0),B.l&&(B.jc=!0,B.l.nodeType||(B.l=null)),B.J||w.deferEvaluation||I.ha(),B.l&&I.ja()&&m.a.K.za(B.l,B.Rb=function(){I.s()}),I};var v={equalityComparer:c,qa:function(){return this[S].V},Va:function(){var _=[];return m.a.P(this[S].I,function(E,w){_[w.Ka]=w.da}),_},Vb:function(_){if(!this[S].V)return!1;var E=this.Va();return m.a.A(E,_)!==-1?!0:!!m.a.Lb(E,function(w){return w.Vb&&w.Vb(_)})},uc:function(_,E,w){if(this[S].wb&&E===this)throw Error("A 'pure' computed must not be called recursively");this[S].I[_]=w,w.Ka=this[S].V++,w.La=E.ob()},Xa:function(){var _,E,w=this[S].I;for(_ in w)if(Object.prototype.hasOwnProperty.call(w,_)&&(E=w[_],this.Ia&&E.da.Ja||E.da.Dd(E.La)))return!0},Jd:function(){this.Ia&&!this[S].rb&&this.Ia(!1)},ja:function(){var _=this[S];return _.ka||0<_.V},Rd:function(){this.Ja?this[S].ka&&(this[S].sa=!0):this.Hc()},$c:function(_){if(_.Hb){var E=_.subscribe(this.Jd,this,"dirty"),w=_.subscribe(this.Rd,this);return{da:_,s:function(){E.s(),w.s()}}}return _.subscribe(this.Hc,this)},Hc:function(){var _=this,E=_.throttleEvaluation;E&&0<=E?(clearTimeout(this[S].Ic),this[S].Ic=m.a.setTimeout(function(){_.ha(!0)},E)):_.Ia?_.Ia(!0):_.ha(!0)},ha:function(_){var E=this[S],w=E.Sa,I=!1;if(!E.rb&&!E.ra){if(E.l&&!m.a.Sb(E.l)||w&&w()){if(!E.jc){this.s();return}}else E.jc=!1;E.rb=!0;try{I=this.zd(_)}finally{E.rb=!1}return I}},zd:function(_){var E=this[S],I=!1,w=E.wb?e:!E.V,I={qd:this,mb:E.I,Qb:E.V};m.u.xc({pd:I,od:g,o:this,Ya:w}),E.I={},E.V=0;var N=this.yd(E,I);return E.V?I=this.sb(E.X,N):(this.s(),I=!0),I&&(E.J?this.Gb():this.notifySubscribers(E.X,"beforeChange"),E.X=N,this.notifySubscribers(E.X,"spectate"),!E.J&&_&&this.notifySubscribers(E.X),this.rc&&this.rc()),w&&this.notifySubscribers(E.X,"awake"),I},yd:function(_,E){try{var w=_.Wc;return _.nb?w.call(_.nb):w()}finally{m.u.end(),E.Qb&&!_.J&&m.a.P(E.mb,p),_.sa=_.ka=!1}},v:function(_){var E=this[S];return(E.ka&&(_||!E.V)||E.J&&this.Xa())&&this.ha(),E.X},ub:function(_){m.T.fn.ub.call(this,_),this.nc=function(){return this[S].J||(this[S].sa?this.ha():this[S].ka=!1),this[S].X},this.Ia=function(E){this.pc(this[S].X),this[S].ka=!0,E&&(this[S].sa=!0),this.qc(this,!E)}},s:function(){var _=this[S];!_.J&&_.I&&m.a.P(_.I,function(E,w){w.s&&w.s()}),_.l&&_.Rb&&m.a.K.yb(_.l,_.Rb),_.I=e,_.V=0,_.ra=!0,_.sa=!1,_.ka=!1,_.J=!1,_.l=e,_.Sa=e,_.Wc=e,this.Nc||(_.nb=e)}},D={Qa:function(_){var E=this,w=E[S];if(!w.ra&&w.J&&_=="change"){if(w.J=!1,w.sa||E.Xa())w.I=null,w.V=0,E.ha()&&E.Gb();else{var I=[];m.a.P(w.I,function(N,B){I[B.Ka]=N}),m.a.D(I,function(N,B){var H=w.I[N],V=E.$c(H.da);V.Ka=B,V.La=H.La,w.I[N]=V}),E.Xa()&&E.ha()&&E.Gb()}w.ra||E.notifySubscribers(w.X,"awake")}},hb:function(_){var E=this[S];E.ra||_!="change"||this.Wa("change")||(m.a.P(E.I,function(w,I){I.s&&(E.I[w]={da:I.da,Ka:I.Ka,La:I.La},I.s())}),E.J=!0,this.notifySubscribers(e,"asleep"))},ob:function(){var _=this[S];return _.J&&(_.sa||this.Xa())&&this.ha(),m.T.fn.ob.call(this)}},O={Qa:function(_){_!="change"&&_!="beforeChange"||this.v()}};m.a.Ba&&m.a.setPrototypeOf(v,m.T.fn);var R=m.ta.Ma;v[R]=m.o,m.Oc=function(_){return typeof _=="function"&&_[R]===v[R]},m.Fd=function(_){return m.Oc(_)&&_[S]&&_[S].wb},m.b("computed",m.o),m.b("dependentObservable",m.o),m.b("isComputed",m.Oc),m.b("isPureComputed",m.Fd),m.b("computed.fn",v),m.L(v,"peek",v.v),m.L(v,"dispose",v.s),m.L(v,"isActive",v.ja),m.L(v,"getDependenciesCount",v.qa),m.L(v,"getDependencies",v.Va),m.xb=function(_,E){return typeof _=="function"?m.o(_,E,{pure:!0}):(_=m.a.extend({},_),_.pure=!0,m.o(_,E))},m.b("pureComputed",m.xb),function(){function _(I,N,B){if(B=B||new w,I=N(I),typeof I!="object"||I===null||I===e||I instanceof RegExp||I instanceof Date||I instanceof String||I instanceof Number||I instanceof Boolean)return I;var H=I instanceof Array?[]:{};return B.save(I,H),E(I,function(V){var G=N(I[V]);switch(typeof G){case"boolean":case"number":case"string":case"function":H[V]=G;break;case"object":case"undefined":var k=B.get(G);H[V]=k!==e?k:_(G,N,B)}}),H}function E(I,N){if(I instanceof Array){for(var B=0;B<I.length;B++)N(B);typeof I.toJSON=="function"&&N("toJSON")}else for(B in I)N(B)}function w(){this.keys=[],this.values=[]}m.ad=function(I){if(arguments.length==0)throw Error("When calling ko.toJS, pass the object you want to convert.");return _(I,function(N){for(var B=0;m.O(N)&&10>B;B++)N=N();return N})},m.toJSON=function(I,N,B){return I=m.ad(I),m.a.hc(I,N,B)},w.prototype={constructor:w,save:function(I,N){var B=m.a.A(this.keys,I);0<=B?this.values[B]=N:(this.keys.push(I),this.values.push(N))},get:function(I){return I=m.a.A(this.keys,I),0<=I?this.values[I]:e}}}(),m.b("toJS",m.ad),m.b("toJSON",m.toJSON),m.Wd=function(_,E,w){function I(N){var B=m.xb(_,w).extend({ma:"always"}),H=B.subscribe(function(V){V&&(H.s(),N(V))});return B.notifySubscribers(B.v()),H}return typeof Promise!="function"||E?I(E.bind(w)):new Promise(I)},m.b("when",m.Wd),function(){m.w={M:function(_){switch(m.a.R(_)){case"option":return _.__ko__hasDomDataOptionValue__===!0?m.a.g.get(_,m.c.options.$b):7>=m.a.W?_.getAttributeNode("value")&&_.getAttributeNode("value").specified?_.value:_.text:_.value;case"select":return 0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex]):e;default:return _.value}},cb:function(_,E,w){switch(m.a.R(_)){case"option":typeof E=="string"?(m.a.g.set(_,m.c.options.$b,e),"__ko__hasDomDataOptionValue__"in _&&delete _.__ko__hasDomDataOptionValue__,_.value=E):(m.a.g.set(_,m.c.options.$b,E),_.__ko__hasDomDataOptionValue__=!0,_.value=typeof E=="number"?E:"");break;case"select":(E===""||E===null)&&(E=e);for(var I=-1,N=0,B=_.options.length,H;N<B;++N)if(H=m.w.M(_.options[N]),H==E||H===""&&E===e){I=N;break}(w||0<=I||E===e&&1<_.size)&&(_.selectedIndex=I,m.a.W===6&&m.a.setTimeout(function(){_.selectedIndex=I},0));break;default:(E===null||E===e)&&(E=""),_.value=E}}}}(),m.b("selectExtensions",m.w),m.b("selectExtensions.readValue",m.w.M),m.b("selectExtensions.writeValue",m.w.cb),m.m=function(){function _(V){V=m.a.Db(V),V.charCodeAt(0)===123&&(V=V.slice(1,-1)),V+=` +,`;var G=[],k=V.match(I),W,q=[],J=0;if(1<k.length){for(var j=0,Z;Z=k[j];++j){var Q=Z.charCodeAt(0);if(Q===44){if(0>=J){G.push(W&&q.length?{key:W,value:q.join("")}:{unknown:W||q.join("")}),W=J=0,q=[];continue}}else if(Q===58){if(!J&&!W&&q.length===1){W=q.pop();continue}}else{if(Q===47&&1<Z.length&&(Z.charCodeAt(1)===47||Z.charCodeAt(1)===42))continue;Q===47&&j&&1<Z.length?(Q=k[j-1].match(N))&&!B[Q[0]]&&(V=V.substr(V.indexOf(Z)+1),k=V.match(I),j=-1,Z="/"):Q===40||Q===123||Q===91?++J:Q===41||Q===125||Q===93?--J:W||q.length||Q!==34&&Q!==39||(Z=Z.slice(1,-1))}q.push(Z)}if(0<J)throw Error("Unbalanced parentheses, braces, or brackets")}return G}var E=["true","false","null","undefined"],w=/^(?:[$_a-z][$\w]*|(.+)(\.\s*[$_a-z][$\w]*|\[.+\]))$/i,I=RegExp(`"(?:\\\\.|[^"])*"|'(?:\\\\.|[^'])*'|\`(?:\\\\.|[^\`])*\`|/\\*(?:[^*]|\\*+[^*/])*\\*+/|//.* +|/(?:\\\\.|[^/])+/w*|[^\\s:,/][^,"'\`{}()/:[\\]]*[^\\s,"'\`{}()/:[\\]]|[^\\s]`,"g"),N=/[\])"'A-Za-z0-9_$]+$/,B={in:1,return:1,typeof:1},H={};return{Ra:[],wa:H,ac:_,vb:function(V,G){function k(Q,de){var ye;if(!j){var ae=m.getBindingHandler(Q);if(ae&&ae.preprocess&&!(de=ae.preprocess(de,Q,k)))return;(ae=H[Q])&&(ye=de,0<=m.a.A(E,ye)?ye=!1:(ae=ye.match(w),ye=ae===null?!1:ae[1]?"Object("+ae[1]+")"+ae[2]:ye),ae=ye),ae&&q.push("'"+(typeof H[Q]=="string"?H[Q]:Q)+"':function(_z){"+ye+"=_z}")}J&&(de="function(){return "+de+" }"),W.push("'"+Q+"':"+de)}G=G||{};var W=[],q=[],J=G.valueAccessors,j=G.bindingParams,Z=typeof V=="string"?_(V):V;return m.a.D(Z,function(Q){k(Q.key||Q.unknown,Q.value)}),q.length&&k("_ko_property_writers","{"+q.join(",")+" }"),W.join(",")},Id:function(V,G){for(var k=0;k<V.length;k++)if(V[k].key==G)return!0;return!1},eb:function(V,G,k,W,q){V&&m.O(V)?!m.Za(V)||q&&V.v()===W||V(W):(V=G.get("_ko_property_writers"))&&V[k]&&V[k](W)}}}(),m.b("expressionRewriting",m.m),m.b("expressionRewriting.bindingRewriteValidators",m.m.Ra),m.b("expressionRewriting.parseObjectLiteral",m.m.ac),m.b("expressionRewriting.preProcessBindings",m.m.vb),m.b("expressionRewriting._twoWayBindings",m.m.wa),m.b("jsonExpressionRewriting",m.m),m.b("jsonExpressionRewriting.insertPropertyAccessorsIntoJson",m.m.vb),function(){function _(k){return k.nodeType==8&&B.test(N?k.text:k.nodeValue)}function E(k){return k.nodeType==8&&H.test(N?k.text:k.nodeValue)}function w(k,W){for(var q=k,J=1,j=[];q=q.nextSibling;){if(E(q)&&(m.a.g.set(q,G,!0),J--,J===0))return j;j.push(q),_(q)&&J++}if(!W)throw Error("Cannot find closing comment tag to match: "+k.nodeValue);return null}function I(k,W){var q=w(k,W);return q?0<q.length?q[q.length-1].nextSibling:k.nextSibling:null}var N=n&&n.createComment("test").text==="<!--test-->",B=N?/^\x3c!--\s*ko(?:\s+([\s\S]+))?\s*--\x3e$/:/^\s*ko(?:\s+([\s\S]+))?\s*$/,H=N?/^\x3c!--\s*\/ko\s*--\x3e$/:/^\s*\/ko\s*$/,V={ul:!0,ol:!0},G="__ko_matchedEndComment__";m.h={ea:{},childNodes:function(k){return _(k)?w(k):k.childNodes},Ea:function(k){if(_(k)){k=m.h.childNodes(k);for(var W=0,q=k.length;W<q;W++)m.removeNode(k[W])}else m.a.Tb(k)},va:function(k,W){if(_(k)){m.h.Ea(k);for(var q=k.nextSibling,J=0,j=W.length;J<j;J++)q.parentNode.insertBefore(W[J],q)}else m.a.va(k,W)},Vc:function(k,W){var q;_(k)?(q=k.nextSibling,k=k.parentNode):q=k.firstChild,q?W!==q&&k.insertBefore(W,q):k.appendChild(W)},Wb:function(k,W,q){q?(q=q.nextSibling,_(k)&&(k=k.parentNode),q?W!==q&&k.insertBefore(W,q):k.appendChild(W)):m.h.Vc(k,W)},firstChild:function(k){if(_(k))return!k.nextSibling||E(k.nextSibling)?null:k.nextSibling;if(k.firstChild&&E(k.firstChild))throw Error("Found invalid end comment, as the first child of "+k);return k.firstChild},nextSibling:function(k){if(_(k)&&(k=I(k)),k.nextSibling&&E(k.nextSibling)){var W=k.nextSibling;if(E(W)&&!m.a.g.get(W,G))throw Error("Found end comment without a matching opening comment, as child of "+k);return null}return k.nextSibling},Cd:_,Vd:function(k){return(k=(N?k.text:k.nodeValue).match(B))?k[1]:null},Sc:function(k){if(V[m.a.R(k)]){var W=k.firstChild;if(W)do if(W.nodeType===1){var q;q=W.firstChild;var J=null;if(q)do if(J)J.push(q);else if(_(q)){var j=I(q,!0);j?q=j:J=[q]}else E(q)&&(J=[q]);while(q=q.nextSibling);if(q=J)for(J=W.nextSibling,j=0;j<q.length;j++)J?k.insertBefore(q[j],J):k.appendChild(q[j])}while(W=W.nextSibling)}}}}(),m.b("virtualElements",m.h),m.b("virtualElements.allowedBindings",m.h.ea),m.b("virtualElements.emptyNode",m.h.Ea),m.b("virtualElements.insertAfter",m.h.Wb),m.b("virtualElements.prepend",m.h.Vc),m.b("virtualElements.setDomNodeChildren",m.h.va),function(){m.ga=function(){this.nd={}},m.a.extend(m.ga.prototype,{nodeHasBindings:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind")!=null||m.j.getComponentNameForNode(_);case 8:return m.h.Cd(_);default:return!1}},getBindings:function(_,E){var w=this.getBindingsString(_,E),w=w?this.parseBindingsString(w,E,_):null;return m.j.tc(w,_,E,!1)},getBindingAccessors:function(_,E){var w=this.getBindingsString(_,E),w=w?this.parseBindingsString(w,E,_,{valueAccessors:!0}):null;return m.j.tc(w,_,E,!0)},getBindingsString:function(_){switch(_.nodeType){case 1:return _.getAttribute("data-bind");case 8:return m.h.Vd(_);default:return null}},parseBindingsString:function(_,E,w,I){try{var N=this.nd,B=_+(I&&I.valueAccessors||""),H;if(!(H=N[B])){var V,G="with($context){with($data||{}){return{"+m.m.vb(_,I)+"}}}";V=new Function("$context","$element",G),H=N[B]=V}return H(E,w)}catch(k){throw k.message=`Unable to parse bindings. +Bindings value: `+_+` +Message: `+k.message,k}}}),m.ga.instance=new m.ga}(),m.b("bindingProvider",m.ga),function(){function _(ae){var _e=(ae=m.a.g.get(ae,ye))&&ae.N;_e&&(ae.N=null,_e.Tc())}function E(ae,_e,xe){this.node=ae,this.yc=_e,this.kb=[],this.H=!1,_e.N||m.a.K.za(ae,_),xe&&xe.N&&(xe.N.kb.push(ae),this.Kb=xe)}function w(ae){return function(){return ae}}function I(ae){return ae()}function N(ae){return m.a.Ga(m.u.G(ae),function(_e,xe){return function(){return ae()[xe]}})}function B(ae,_e,xe){return typeof ae=="function"?N(ae.bind(null,_e,xe)):m.a.Ga(ae,w)}function H(ae,_e){return N(this.getBindings.bind(this,ae,_e))}function V(ae,_e){var xe=m.h.firstChild(_e);if(xe){var Ie,Ce=m.ga.instance,ke=Ce.preprocessNode;if(ke){for(;Ie=xe;)xe=m.h.nextSibling(Ie),ke.call(Ce,Ie);xe=m.h.firstChild(_e)}for(;Ie=xe;)xe=m.h.nextSibling(Ie),G(ae,Ie)}m.i.ma(_e,m.i.H)}function G(ae,_e){var xe=ae,Ie=_e.nodeType===1;Ie&&m.h.Sc(_e),(Ie||m.ga.instance.nodeHasBindings(_e))&&(xe=W(_e,null,ae).bindingContextForDescendants),xe&&!Q[m.a.R(_e)]&&V(xe,_e)}function k(ae){var _e=[],xe={},Ie=[];return m.a.P(ae,function Ce(ke){if(!xe[ke]){var He=m.getBindingHandler(ke);He&&(He.after&&(Ie.push(ke),m.a.D(He.after,function(rt){if(ae[rt]){if(m.a.A(Ie,rt)!==-1)throw Error("Cannot combine the following bindings, because they have a cyclic dependency: "+Ie.join(", "));Ce(rt)}}),Ie.length--),_e.push({key:ke,Mc:He})),xe[ke]=!0}}),_e}function W(ae,_e,xe){var Ie=m.a.g.Ub(ae,ye,{}),Ce=Ie.hd;if(!_e){if(Ce)throw Error("You cannot apply bindings multiple times to the same element.");Ie.hd=!0}Ce||(Ie.context=xe),Ie.Zb||(Ie.Zb={});var ke;if(_e&&typeof _e!="function")ke=_e;else{var He=m.ga.instance,rt=He.getBindingAccessors||H,Lt=m.$(function(){return(ke=_e?_e(xe,ae):rt.call(He,ae,xe))&&(xe[J]&&xe[J](),xe[Z]&&xe[Z]()),ke},null,{l:ae});ke&&Lt.ja()||(Lt=null)}var Tt=xe,we;if(ke){var Xe=function(){return m.a.Ga(Lt?Lt():ke,I)},Qe=Lt?function(We){return function(){return I(Lt()[We])}}:function(We){return ke[We]};Xe.get=function(We){return ke[We]&&I(Qe(We))},Xe.has=function(We){return We in ke},m.i.H in ke&&m.i.subscribe(ae,m.i.H,function(){var We=(0,ke[m.i.H])();if(We){var Ut=m.h.childNodes(ae);Ut.length&&We(Ut,m.Ec(Ut[0]))}}),m.i.pa in ke&&(Tt=m.i.Cb(ae,xe),m.i.subscribe(ae,m.i.pa,function(){var We=(0,ke[m.i.pa])();We&&m.h.firstChild(ae)&&We(ae)})),Ie=k(ke),m.a.D(Ie,function(We){var Ut=We.Mc.init,Te=We.Mc.update,Ae=We.key;if(ae.nodeType===8&&!m.h.ea[Ae])throw Error("The binding '"+Ae+"' cannot be used with virtual elements");try{typeof Ut=="function"&&m.u.G(function(){var st=Ut(ae,Qe(Ae),Xe,Tt.$data,Tt);if(st&&st.controlsDescendantBindings){if(we!==e)throw Error("Multiple bindings ("+we+" and "+Ae+") are trying to control descendant bindings of the same element. You cannot use these bindings together on the same element.");we=Ae}}),typeof Te=="function"&&m.$(function(){Te(ae,Qe(Ae),Xe,Tt.$data,Tt)},null,{l:ae})}catch(st){throw st.message='Unable to process binding "'+Ae+": "+ke[Ae]+`" +Message: `+st.message,st}})}return Ie=we===e,{shouldBindDescendants:Ie,bindingContextForDescendants:Ie&&Tt}}function q(ae,_e){return ae&&ae instanceof m.fa?ae:new m.fa(ae,e,e,_e)}var J=m.a.Da("_subscribable"),j=m.a.Da("_ancestorBindingInfo"),Z=m.a.Da("_dataDependency");m.c={};var Q={script:!0,textarea:!0,template:!0};m.getBindingHandler=function(ae){return m.c[ae]};var de={};m.fa=function(ae,_e,xe,Ie,Ce){function ke(){var Qe=Tt?Lt():Lt,We=m.a.f(Qe);return _e?(m.a.extend(He,_e),j in _e&&(He[j]=_e[j])):(He.$parents=[],He.$root=We,He.ko=m),He[J]=we,rt?We=He.$data:(He.$rawData=Qe,He.$data=We),xe&&(He[xe]=We),Ie&&Ie(He,_e,We),_e&&_e[J]&&!m.S.o().Vb(_e[J])&&_e[J](),Xe&&(He[Z]=Xe),He.$data}var He=this,rt=ae===de,Lt=rt?e:ae,Tt=typeof Lt=="function"&&!m.O(Lt),we,Xe=Ce&&Ce.dataDependency;Ce&&Ce.exportDependencies?ke():(we=m.xb(ke),we.v(),we.ja()?we.equalityComparer=null:He[J]=e)},m.fa.prototype.createChildContext=function(ae,_e,xe,Ie){if(!Ie&&_e&&typeof _e=="object"&&(Ie=_e,_e=Ie.as,xe=Ie.extend),_e&&Ie&&Ie.noChildContext){var Ce=typeof ae=="function"&&!m.O(ae);return new m.fa(de,this,null,function(ke){xe&&xe(ke),ke[_e]=Ce?ae():ae},Ie)}return new m.fa(ae,this,_e,function(ke,He){ke.$parentContext=He,ke.$parent=He.$data,ke.$parents=(He.$parents||[]).slice(0),ke.$parents.unshift(ke.$parent),xe&&xe(ke)},Ie)},m.fa.prototype.extend=function(ae,_e){return new m.fa(de,this,null,function(xe){m.a.extend(xe,typeof ae=="function"?ae(xe):ae)},_e)};var ye=m.a.g.Z();E.prototype.Tc=function(){this.Kb&&this.Kb.N&&this.Kb.N.sd(this.node)},E.prototype.sd=function(ae){m.a.Pa(this.kb,ae),!this.kb.length&&this.H&&this.Cc()},E.prototype.Cc=function(){this.H=!0,this.yc.N&&!this.kb.length&&(this.yc.N=null,m.a.K.yb(this.node,_),m.i.ma(this.node,m.i.pa),this.Tc())},m.i={H:"childrenComplete",pa:"descendantsComplete",subscribe:function(ae,_e,xe,Ie,Ce){var ke=m.a.g.Ub(ae,ye,{});return ke.Fa||(ke.Fa=new m.T),Ce&&Ce.notifyImmediately&&ke.Zb[_e]&&m.u.G(xe,Ie,[ae]),ke.Fa.subscribe(xe,Ie,_e)},ma:function(ae,_e){var xe=m.a.g.get(ae,ye);if(xe&&(xe.Zb[_e]=!0,xe.Fa&&xe.Fa.notifySubscribers(ae,_e),_e==m.i.H)){if(xe.N)xe.N.Cc();else if(xe.N===e&&xe.Fa&&xe.Fa.Wa(m.i.pa))throw Error("descendantsComplete event not supported for bindings on this node")}},Cb:function(ae,_e){var xe=m.a.g.Ub(ae,ye,{});return xe.N||(xe.N=new E(ae,xe,_e[j])),_e[j]==xe?_e:_e.extend(function(Ie){Ie[j]=xe})}},m.Td=function(ae){return(ae=m.a.g.get(ae,ye))&&ae.context},m.ib=function(ae,_e,xe){return ae.nodeType===1&&m.h.Sc(ae),W(ae,_e,q(xe))},m.ld=function(ae,_e,xe){return xe=q(xe),m.ib(ae,B(_e,xe,ae),xe)},m.Oa=function(ae,_e){_e.nodeType!==1&&_e.nodeType!==8||V(q(ae),_e)},m.vc=function(ae,_e,xe){if(!o&&t.jQuery&&(o=t.jQuery),2>arguments.length){if(_e=n.body,!_e)throw Error("ko.applyBindings: could not find document.body; has the document been loaded?")}else if(!_e||_e.nodeType!==1&&_e.nodeType!==8)throw Error("ko.applyBindings: first parameter should be your view model; second parameter should be a DOM node");G(q(ae,xe),_e)},m.Dc=function(ae){return!ae||ae.nodeType!==1&&ae.nodeType!==8?e:m.Td(ae)},m.Ec=function(ae){return(ae=m.Dc(ae))?ae.$data:e},m.b("bindingHandlers",m.c),m.b("bindingEvent",m.i),m.b("bindingEvent.subscribe",m.i.subscribe),m.b("bindingEvent.startPossiblyAsyncContentBinding",m.i.Cb),m.b("applyBindings",m.vc),m.b("applyBindingsToDescendants",m.Oa),m.b("applyBindingAccessorsToNode",m.ib),m.b("applyBindingsToNode",m.ld),m.b("contextFor",m.Dc),m.b("dataFor",m.Ec)}(),function(_){function E(H,V){var G=Object.prototype.hasOwnProperty.call(N,H)?N[H]:_,k;G?G.subscribe(V):(G=N[H]=new m.T,G.subscribe(V),w(H,function(W,q){var J=!(!q||!q.synchronous);B[H]={definition:W,Gd:J},delete N[H],k||J?G.notifySubscribers(W):m.na.zb(function(){G.notifySubscribers(W)})}),k=!0)}function w(H,V){I("getConfig",[H],function(G){G?I("loadComponent",[H,G],function(k){V(k,G)}):V(null,null)})}function I(H,V,G,k){k||(k=m.j.loaders.slice(0));var W=k.shift();if(W){var q=W[H];if(q){var J=!1;if(q.apply(W,V.concat(function(j){J?G(null):j!==null?G(j):I(H,V,G,k)}))!==_&&(J=!0,!W.suppressLoaderExceptions))throw Error("Component loaders must supply values by invoking the callback, not by returning values synchronously.")}else I(H,V,G,k)}else G(null)}var N={},B={};m.j={get:function(H,V){var G=Object.prototype.hasOwnProperty.call(B,H)?B[H]:_;G?G.Gd?m.u.G(function(){V(G.definition)}):m.na.zb(function(){V(G.definition)}):E(H,V)},Bc:function(H){delete B[H]},oc:I},m.j.loaders=[],m.b("components",m.j),m.b("components.get",m.j.get),m.b("components.clearCachedDefinition",m.j.Bc)}(),function(){function _(G,k,W,q){function J(){--Z===0&&q(j)}var j={},Z=2,Q=W.template;W=W.viewModel,Q?N(k,Q,function(de){m.j.oc("loadTemplate",[G,de],function(ye){j.template=ye,J()})}):J(),W?N(k,W,function(de){m.j.oc("loadViewModel",[G,de],function(ye){j[V]=ye,J()})}):J()}function E(G,k,W){if(typeof k=="function")W(function(J){return new k(J)});else if(typeof k[V]=="function")W(k[V]);else if("instance"in k){var q=k.instance;W(function(){return q})}else"viewModel"in k?E(G,k.viewModel,W):G("Unknown viewModel value: "+k)}function w(G){switch(m.a.R(G)){case"script":return m.a.ua(G.text);case"textarea":return m.a.ua(G.value);case"template":if(I(G.content))return m.a.Ca(G.content.childNodes)}return m.a.Ca(G.childNodes)}function I(G){return t.DocumentFragment?G instanceof DocumentFragment:G&&G.nodeType===11}function N(G,k,W){typeof k.require=="string"?a||t.require?(a||t.require)([k.require],function(q){q&&typeof q=="object"&&q.Xd&&q.default&&(q=q.default),W(q)}):G("Uses require, but no AMD loader is present"):W(k)}function B(G){return function(k){throw Error("Component '"+G+"': "+k)}}var H={};m.j.register=function(G,k){if(!k)throw Error("Invalid configuration for "+G);if(m.j.tb(G))throw Error("Component "+G+" is already registered");H[G]=k},m.j.tb=function(G){return Object.prototype.hasOwnProperty.call(H,G)},m.j.unregister=function(G){delete H[G],m.j.Bc(G)},m.j.Fc={getConfig:function(G,k){k(m.j.tb(G)?H[G]:null)},loadComponent:function(G,k,W){var q=B(G);N(q,k,function(J){_(G,q,J,W)})},loadTemplate:function(G,k,W){if(G=B(G),typeof k=="string")W(m.a.ua(k));else if(k instanceof Array)W(k);else if(I(k))W(m.a.la(k.childNodes));else if(k.element)if(k=k.element,t.HTMLElement?k instanceof HTMLElement:k&&k.tagName&&k.nodeType===1)W(w(k));else if(typeof k=="string"){var q=n.getElementById(k);q?W(w(q)):G("Cannot find element with ID "+k)}else G("Unknown element type: "+k);else G("Unknown template value: "+k)},loadViewModel:function(G,k,W){E(B(G),k,W)}};var V="createViewModel";m.b("components.register",m.j.register),m.b("components.isRegistered",m.j.tb),m.b("components.unregister",m.j.unregister),m.b("components.defaultLoader",m.j.Fc),m.j.loaders.push(m.j.Fc),m.j.dd=H}(),function(){function _(w,I){var N=w.getAttribute("params");if(N){var N=E.parseBindingsString(N,I,w,{valueAccessors:!0,bindingParams:!0}),N=m.a.Ga(N,function(V){return m.o(V,null,{l:w})}),B=m.a.Ga(N,function(V){var G=V.v();return V.ja()?m.o({read:function(){return m.a.f(V())},write:m.Za(G)&&function(k){V()(k)},l:w}):G});return Object.prototype.hasOwnProperty.call(B,"$raw")||(B.$raw=N),B}return{$raw:{}}}m.j.getComponentNameForNode=function(w){var I=m.a.R(w);if(m.j.tb(I)&&(I.indexOf("-")!=-1||""+w=="[object HTMLUnknownElement]"||8>=m.a.W&&w.tagName===I))return I},m.j.tc=function(w,I,N,B){if(I.nodeType===1){var H=m.j.getComponentNameForNode(I);if(H){if(w=w||{},w.component)throw Error('Cannot use the "component" binding on a custom element matching a component');var V={name:H,params:_(I,N)};w.component=B?function(){return V}:V}}return w};var E=new m.ga;9>m.a.W&&(m.j.register=function(w){return function(I){return w.apply(this,arguments)}}(m.j.register),n.createDocumentFragment=function(w){return function(){var I=w(),N=m.j.dd,B;for(B in N);return I}}(n.createDocumentFragment))}(),function(){function _(I,N,B){if(N=N.template,!N)throw Error("Component '"+I+"' has no template");I=m.a.Ca(N),m.h.va(B,I)}function E(I,N,B){var H=I.createViewModel;return H?H.call(I,N,B):N}var w=0;m.c.component={init:function(I,N,B,H,V){function G(){var j=k&&k.dispose;typeof j=="function"&&j.call(k),q&&q.s(),W=k=q=null}var k,W,q,J=m.a.la(m.h.childNodes(I));return m.h.Ea(I),m.a.K.za(I,G),m.o(function(){var j=m.a.f(N()),Z,Q;if(typeof j=="string"?Z=j:(Z=m.a.f(j.name),Q=m.a.f(j.params)),!Z)throw Error("No component name specified");var de=m.i.Cb(I,V),ye=W=++w;m.j.get(Z,function(ae){if(W===ye){if(G(),!ae)throw Error("Unknown component '"+Z+"'");_(Z,ae,I);var _e=E(ae,Q,{element:I,templateNodes:J});ae=de.createChildContext(_e,{extend:function(xe){xe.$component=_e,xe.$componentTemplateNodes=J}}),_e&&_e.koDescendantsComplete&&(q=m.i.subscribe(I,m.i.pa,_e.koDescendantsComplete,_e)),k=_e,m.Oa(ae,I)}})},null,{l:I}),{controlsDescendantBindings:!0}}},m.h.ea.component=!0}();var M={class:"className",for:"htmlFor"};m.c.attr={update:function(_,E){var w=m.a.f(E())||{};m.a.P(w,function(I,N){N=m.a.f(N);var B=I.indexOf(":"),B="lookupNamespaceURI"in _&&0<B&&_.lookupNamespaceURI(I.substr(0,B)),H=N===!1||N===null||N===e;H?B?_.removeAttributeNS(B,I):_.removeAttribute(I):N=N.toString(),8>=m.a.W&&I in M?(I=M[I],H?_.removeAttribute(I):_[I]=N):H||(B?_.setAttributeNS(B,I,N):_.setAttribute(I,N)),I==="name"&&m.a.Yc(_,H?"":N)})}},function(){m.c.checked={after:["value","attr"],init:function(_,E,w){function I(){var j=_.checked,Z=B();if(!m.S.Ya()&&(j||!V&&!m.S.qa())){var Q=m.u.G(E);if(k){var de=W?Q.v():Q,ye=J;J=Z,ye!==Z?j&&(m.a.Na(de,Z,!0),m.a.Na(de,ye,!1)):m.a.Na(de,Z,j),W&&m.Za(Q)&&Q(de)}else H&&(Z===e?Z=j:j||(Z=e)),m.m.eb(Q,w,"checked",Z,!0)}}function N(){var j=m.a.f(E()),Z=B();k?(_.checked=0<=m.a.A(j,Z),J=Z):_.checked=H&&Z===e?!!j:B()===j}var B=m.xb(function(){if(w.has("checkedValue"))return m.a.f(w.get("checkedValue"));if(q)return w.has("value")?m.a.f(w.get("value")):_.value}),H=_.type=="checkbox",V=_.type=="radio";if(H||V){var G=E(),k=H&&m.a.f(G)instanceof Array,W=!(k&&G.push&&G.splice),q=V||k,J=k?B():e;V&&!_.name&&m.c.uniqueName.init(_,function(){return!0}),m.o(I,null,{l:_}),m.a.B(_,"click",I),m.o(N,null,{l:_}),G=e}}},m.m.wa.checked=!0,m.c.checkedValue={update:function(_,E){_.value=m.a.f(E())}}}(),m.c.class={update:function(_,E){var w=m.a.Db(m.a.f(E()));m.a.Eb(_,_.__ko__cssValue,!1),_.__ko__cssValue=w,m.a.Eb(_,w,!0)}},m.c.css={update:function(_,E){var w=m.a.f(E());w!==null&&typeof w=="object"?m.a.P(w,function(I,N){N=m.a.f(N),m.a.Eb(_,I,N)}):m.c.class.update(_,E)}},m.c.enable={update:function(_,E){var w=m.a.f(E());w&&_.disabled?_.removeAttribute("disabled"):w||_.disabled||(_.disabled=!0)}},m.c.disable={update:function(_,E){m.c.enable.update(_,function(){return!m.a.f(E())})}},m.c.event={init:function(_,E,w,I,N){var B=E()||{};m.a.P(B,function(H){typeof H=="string"&&m.a.B(_,H,function(V){var G,k=E()[H];if(k){try{var W=m.a.la(arguments);I=N.$data,W.unshift(I),G=k.apply(I,W)}finally{G!==!0&&(V.preventDefault?V.preventDefault():V.returnValue=!1)}w.get(H+"Bubble")===!1&&(V.cancelBubble=!0,V.stopPropagation&&V.stopPropagation())}})})}},m.c.foreach={Rc:function(_){return function(){var E=_(),w=m.a.bc(E);return!w||typeof w.length=="number"?{foreach:E,templateEngine:m.ba.Ma}:(m.a.f(E),{foreach:w.data,as:w.as,noChildContext:w.noChildContext,includeDestroyed:w.includeDestroyed,afterAdd:w.afterAdd,beforeRemove:w.beforeRemove,afterRender:w.afterRender,beforeMove:w.beforeMove,afterMove:w.afterMove,templateEngine:m.ba.Ma})}},init:function(_,E){return m.c.template.init(_,m.c.foreach.Rc(E))},update:function(_,E,w,I,N){return m.c.template.update(_,m.c.foreach.Rc(E),w,I,N)}},m.m.Ra.foreach=!1,m.h.ea.foreach=!0,m.c.hasfocus={init:function(_,E,w){function I(H){_.__ko_hasfocusUpdating=!0;var V=_.ownerDocument;if("activeElement"in V){var G;try{G=V.activeElement}catch{G=V.body}H=G===_}V=E(),m.m.eb(V,w,"hasfocus",H,!0),_.__ko_hasfocusLastValue=H,_.__ko_hasfocusUpdating=!1}var N=I.bind(null,!0),B=I.bind(null,!1);m.a.B(_,"focus",N),m.a.B(_,"focusin",N),m.a.B(_,"blur",B),m.a.B(_,"focusout",B),_.__ko_hasfocusLastValue=!1},update:function(_,E){var w=!!m.a.f(E());_.__ko_hasfocusUpdating||_.__ko_hasfocusLastValue===w||(w?_.focus():_.blur(),!w&&_.__ko_hasfocusLastValue&&_.ownerDocument.body.focus(),m.u.G(m.a.Fb,null,[_,w?"focusin":"focusout"]))}},m.m.wa.hasfocus=!0,m.c.hasFocus=m.c.hasfocus,m.m.wa.hasFocus="hasfocus",m.c.html={init:function(){return{controlsDescendantBindings:!0}},update:function(_,E){m.a.fc(_,E())}},function(){function _(E,w,I){m.c[E]={init:function(N,B,H,V,G){var k,W,q={},J,j,Z;if(w){V=H.get("as");var Q=H.get("noChildContext");Z=!(V&&Q),q={as:V,noChildContext:Q,exportDependencies:Z}}return j=(J=H.get("completeOn")=="render")||H.has(m.i.pa),m.o(function(){var de=m.a.f(B()),ye=!I!=!de,ae=!W,_e;(Z||ye!==k)&&(j&&(G=m.i.Cb(N,G)),ye&&((!w||Z)&&(q.dataDependency=m.S.o()),_e=w?G.createChildContext(typeof de=="function"?de:B,q):m.S.qa()?G.extend(null,q):G),ae&&m.S.qa()&&(W=m.a.Ca(m.h.childNodes(N),!0)),ye?(ae||m.h.va(N,m.a.Ca(W)),m.Oa(_e,N)):(m.h.Ea(N),J||m.i.ma(N,m.i.H)),k=ye)},null,{l:N}),{controlsDescendantBindings:!0}}},m.m.Ra[E]=!1,m.h.ea[E]=!0}_("if"),_("ifnot",!1,!0),_("with",!0)}(),m.c.let={init:function(_,E,w,I,N){return E=N.extend(E),m.Oa(E,_),{controlsDescendantBindings:!0}}},m.h.ea.let=!0;var L={};m.c.options={init:function(_){if(m.a.R(_)!=="select")throw Error("options binding applies only to SELECT elements");for(;0<_.length;)_.remove(0);return{controlsDescendantBindings:!0}},update:function(_,E,w){function I(){return m.a.jb(_.options,function(Q){return Q.selected})}function N(Q,de,ye){var ae=typeof de;return ae=="function"?de(Q):ae=="string"?Q[de]:ye}function B(Q,de){if(j&&k)m.i.ma(_,m.i.H);else if(J.length){var ye=0<=m.a.A(J,m.w.M(de[0]));m.a.Zc(de[0],ye),j&&!ye&&m.u.G(m.a.Fb,null,[_,"change"])}}var H=_.multiple,V=_.length!=0&&H?_.scrollTop:null,G=m.a.f(E()),k=w.get("valueAllowUnset")&&w.has("value"),W=w.get("optionsIncludeDestroyed");E={};var q,J=[];k||(H?J=m.a.Mb(I(),m.w.M):0<=_.selectedIndex&&J.push(m.w.M(_.options[_.selectedIndex]))),G&&(typeof G.length>"u"&&(G=[G]),q=m.a.jb(G,function(Q){return W||Q===e||Q===null||!m.a.f(Q._destroy)}),w.has("optionsCaption")&&(G=m.a.f(w.get("optionsCaption")),G!==null&&G!==e&&q.unshift(L)));var j=!1;if(E.beforeRemove=function(Q){_.removeChild(Q)},G=B,w.has("optionsAfterRender")&&typeof w.get("optionsAfterRender")=="function"&&(G=function(Q,de){B(0,de),m.u.G(w.get("optionsAfterRender"),null,[de[0],Q!==L?Q:e])}),m.a.ec(_,q,function(Q,de,ye){return ye.length&&(J=!k&&ye[0].selected?[m.w.M(ye[0])]:[],j=!0),de=_.ownerDocument.createElement("option"),Q===L?(m.a.Bb(de,w.get("optionsCaption")),m.w.cb(de,e)):(ye=N(Q,w.get("optionsValue"),Q),m.w.cb(de,m.a.f(ye)),Q=N(Q,w.get("optionsText"),ye),m.a.Bb(de,Q)),[de]},E,G),!k){var Z;H?Z=J.length&&I().length<J.length:Z=J.length&&0<=_.selectedIndex?m.w.M(_.options[_.selectedIndex])!==J[0]:J.length||0<=_.selectedIndex,Z&&m.u.G(m.a.Fb,null,[_,"change"])}(k||m.S.Ya())&&m.i.ma(_,m.i.H),m.a.wd(_),V&&20<Math.abs(V-_.scrollTop)&&(_.scrollTop=V)}},m.c.options.$b=m.a.g.Z(),m.c.selectedOptions={init:function(_,E,w){function I(){var H=E(),V=[];m.a.D(_.getElementsByTagName("option"),function(G){G.selected&&V.push(m.w.M(G))}),m.m.eb(H,w,"selectedOptions",V)}function N(){var H=m.a.f(E()),V=_.scrollTop;H&&typeof H.length=="number"&&m.a.D(_.getElementsByTagName("option"),function(G){var k=0<=m.a.A(H,m.w.M(G));G.selected!=k&&m.a.Zc(G,k)}),_.scrollTop=V}if(m.a.R(_)!="select")throw Error("selectedOptions binding applies only to SELECT elements");var B;m.i.subscribe(_,m.i.H,function(){B?I():(m.a.B(_,"change",I),B=m.o(N,null,{l:_}))},null,{notifyImmediately:!0})},update:function(){}},m.m.wa.selectedOptions=!0,m.c.style={update:function(_,E){var w=m.a.f(E()||{});m.a.P(w,function(I,N){if(N=m.a.f(N),(N===null||N===e||N===!1)&&(N=""),o)o(_).css(I,N);else if(/^--/.test(I))_.style.setProperty(I,N);else{I=I.replace(/-(\w)/g,function(H,V){return V.toUpperCase()});var B=_.style[I];_.style[I]=N,N===B||_.style[I]!=B||isNaN(N)||(_.style[I]=N+"px")}})}},m.c.submit={init:function(_,E,w,I,N){if(typeof E()!="function")throw Error("The value for a submit binding must be a function");m.a.B(_,"submit",function(B){var H,V=E();try{H=V.call(N.$data,_)}finally{H!==!0&&(B.preventDefault?B.preventDefault():B.returnValue=!1)}})}},m.c.text={init:function(){return{controlsDescendantBindings:!0}},update:function(_,E){m.a.Bb(_,E())}},m.h.ea.text=!0,function(){if(t&&t.navigator){var _=function(q){if(q)return parseFloat(q[1])},E=t.navigator.userAgent,w,I,N,B,H;(w=t.opera&&t.opera.version&&parseInt(t.opera.version()))||(H=_(E.match(/Edge\/([^ ]+)$/)))||_(E.match(/Chrome\/([^ ]+)/))||(I=_(E.match(/Version\/([^ ]+) Safari/)))||(N=_(E.match(/Firefox\/([^ ]+)/)))||(B=m.a.W||_(E.match(/MSIE ([^ ]+)/)))||(B=_(E.match(/rv:([^ )]+)/)))}if(8<=B&&10>B)var V=m.a.g.Z(),G=m.a.g.Z(),k=function(q){var J=this.activeElement;(J=J&&m.a.g.get(J,G))&&J(q)},W=function(q,J){var j=q.ownerDocument;m.a.g.get(j,V)||(m.a.g.set(j,V,!0),m.a.B(j,"selectionchange",k)),m.a.g.set(q,G,J)};m.c.textInput={init:function(q,J,j){function Z(ke,He){m.a.B(q,ke,He)}function Q(){var ke=m.a.f(J());(ke===null||ke===e)&&(ke=""),xe!==e&&ke===xe?m.a.setTimeout(Q,4):q.value!==ke&&(Ce=!0,q.value=ke,Ce=!1,ae=q.value)}function de(){_e||(xe=q.value,_e=m.a.setTimeout(ye,4))}function ye(){clearTimeout(_e),xe=_e=e;var ke=q.value;ae!==ke&&(ae=ke,m.m.eb(J(),j,"textInput",ke))}var ae=q.value,_e,xe,Ie=m.a.W==9?de:ye,Ce=!1;B&&Z("keypress",ye),11>B&&Z("propertychange",function(ke){Ce||ke.propertyName!=="value"||Ie(ke)}),B==8&&(Z("keyup",ye),Z("keydown",ye)),W&&(W(q,Ie),Z("dragend",de)),(!B||9<=B)&&Z("input",Ie),5>I&&m.a.R(q)==="textarea"?(Z("keydown",de),Z("paste",de),Z("cut",de)):11>w?Z("keydown",de):4>N?(Z("DOMAutoComplete",ye),Z("dragdrop",ye),Z("drop",ye)):H&&q.type==="number"&&Z("keydown",de),Z("change",ye),Z("blur",ye),m.o(Q,null,{l:q})}},m.m.wa.textInput=!0,m.c.textinput={preprocess:function(q,J,j){j("textInput",q)}}}(),m.c.uniqueName={init:function(_,E){if(E()){var w="ko_unique_"+ ++m.c.uniqueName.rd;m.a.Yc(_,w)}}},m.c.uniqueName.rd=0,m.c.using={init:function(_,E,w,I,N){var B;return w.has("as")&&(B={as:w.get("as"),noChildContext:w.get("noChildContext")}),E=N.createChildContext(E,B),m.Oa(E,_),{controlsDescendantBindings:!0}}},m.h.ea.using=!0,m.c.value={init:function(_,E,w){var I=m.a.R(_),N=I=="input";if(!N||_.type!="checkbox"&&_.type!="radio"){var B=[],H=w.get("valueUpdate"),V=!1,G=null;H&&(typeof H=="string"?B=[H]:B=m.a.wc(H),m.a.Pa(B,"change"));var k=function(){G=null,V=!1;var J=E(),j=m.w.M(_);m.m.eb(J,w,"value",j)};!m.a.W||!N||_.type!="text"||_.autocomplete=="off"||_.form&&_.form.autocomplete=="off"||m.a.A(B,"propertychange")!=-1||(m.a.B(_,"propertychange",function(){V=!0}),m.a.B(_,"focus",function(){V=!1}),m.a.B(_,"blur",function(){V&&k()})),m.a.D(B,function(J){var j=k;m.a.Ud(J,"after")&&(j=function(){G=m.w.M(_),m.a.setTimeout(k,0)},J=J.substring(5)),m.a.B(_,J,j)});var W;if(W=N&&_.type=="file"?function(){var J=m.a.f(E());J===null||J===e||J===""?_.value="":m.u.G(k)}:function(){var J=m.a.f(E()),j=m.w.M(_);G!==null&&J===G?m.a.setTimeout(W,0):(J!==j||j===e)&&(I==="select"?(j=w.get("valueAllowUnset"),m.w.cb(_,J,j),j||J===m.w.M(_)||m.u.G(k)):m.w.cb(_,J))},I==="select"){var q;m.i.subscribe(_,m.i.H,function(){q?w.get("valueAllowUnset")?W():k():(m.a.B(_,"change",k),q=m.o(W,null,{l:_}))},null,{notifyImmediately:!0})}else m.a.B(_,"change",k),m.o(W,null,{l:_})}else m.ib(_,{checkedValue:E})},update:function(){}},m.m.wa.value=!0,m.c.visible={update:function(_,E){var w=m.a.f(E()),I=_.style.display!="none";w&&!I?_.style.display="":!w&&I&&(_.style.display="none")}},m.c.hidden={update:function(_,E){m.c.visible.update(_,function(){return!m.a.f(E())})}},function(_){m.c[_]={init:function(E,w,I,N,B){return m.c.event.init.call(this,E,function(){var H={};return H[_]=w(),H},I,N,B)}}}("click"),m.ca=function(){},m.ca.prototype.renderTemplateSource=function(){throw Error("Override renderTemplateSource")},m.ca.prototype.createJavaScriptEvaluatorBlock=function(){throw Error("Override createJavaScriptEvaluatorBlock")},m.ca.prototype.makeTemplateSource=function(_,E){if(typeof _=="string"){E=E||n;var w=E.getElementById(_);if(!w)throw Error("Cannot find template with ID "+_);return new m.C.F(w)}if(_.nodeType==1||_.nodeType==8)return new m.C.ia(_);throw Error("Unknown template type: "+_)},m.ca.prototype.renderTemplate=function(_,E,w,I){return _=this.makeTemplateSource(_,I),this.renderTemplateSource(_,E,w,I)},m.ca.prototype.isTemplateRewritten=function(_,E){return this.allowTemplateRewriting===!1?!0:this.makeTemplateSource(_,E).data("isRewritten")},m.ca.prototype.rewriteTemplate=function(_,E,w){_=this.makeTemplateSource(_,w),E=E(_.text()),_.text(E),_.data("isRewritten",!0)},m.b("templateEngine",m.ca),m.kc=function(){function _(I,N,B,H){I=m.m.ac(I);for(var V=m.m.Ra,G=0;G<I.length;G++){var k=I[G].key;if(Object.prototype.hasOwnProperty.call(V,k)){var W=V[k];if(typeof W=="function"){if(k=W(I[G].value))throw Error(k)}else if(!W)throw Error("This template engine does not support the '"+k+"' binding within its templates")}}return B="ko.__tr_ambtns(function($context,$element){return(function(){return{ "+m.m.vb(I,{valueAccessors:!0})+" } })()},'"+B.toLowerCase()+"')",H.createJavaScriptEvaluatorBlock(B)+N}var E=/(<([a-z]+\d*)(?:\s+(?!data-bind\s*=\s*)[a-z0-9\-]+(?:=(?:\"[^\"]*\"|\'[^\']*\'|[^>]*))?)*\s+)data-bind\s*=\s*(["'])([\s\S]*?)\3/gi,w=/\x3c!--\s*ko\b\s*([\s\S]*?)\s*--\x3e/g;return{xd:function(I,N,B){N.isTemplateRewritten(I,B)||N.rewriteTemplate(I,function(H){return m.kc.Ld(H,N)},B)},Ld:function(I,N){return I.replace(E,function(B,H,V,G,k){return _(k,H,V,N)}).replace(w,function(B,H){return _(H,"<!-- ko -->","#comment",N)})},md:function(I,N){return m.aa.Xb(function(B,H){var V=B.nextSibling;V&&V.nodeName.toLowerCase()===N&&m.ib(V,I,H)})}}}(),m.b("__tr_ambtns",m.kc.md),function(){m.C={},m.C.F=function(w){if(this.F=w){var I=m.a.R(w);this.ab=I==="script"?1:I==="textarea"?2:I=="template"&&w.content&&w.content.nodeType===11?3:4}},m.C.F.prototype.text=function(){var w=this.ab===1?"text":this.ab===2?"value":"innerHTML";if(arguments.length==0)return this.F[w];var I=arguments[0];w==="innerHTML"?m.a.fc(this.F,I):this.F[w]=I};var _=m.a.g.Z()+"_";m.C.F.prototype.data=function(w){if(arguments.length===1)return m.a.g.get(this.F,_+w);m.a.g.set(this.F,_+w,arguments[1])};var E=m.a.g.Z();m.C.F.prototype.nodes=function(){var w=this.F;if(arguments.length==0){var I=m.a.g.get(w,E)||{},N=I.lb||(this.ab===3?w.content:this.ab===4?w:e);if(!N||I.jd){var B=this.text();B&&B!==I.bb&&(N=m.a.Md(B,w.ownerDocument),m.a.g.set(w,E,{lb:N,bb:B,jd:!0}))}return N}I=arguments[0],this.ab!==e&&this.text(""),m.a.g.set(w,E,{lb:I})},m.C.ia=function(w){this.F=w},m.C.ia.prototype=new m.C.F,m.C.ia.prototype.constructor=m.C.ia,m.C.ia.prototype.text=function(){if(arguments.length==0){var w=m.a.g.get(this.F,E)||{};return w.bb===e&&w.lb&&(w.bb=w.lb.innerHTML),w.bb}m.a.g.set(this.F,E,{bb:arguments[0]})},m.b("templateSources",m.C),m.b("templateSources.domElement",m.C.F),m.b("templateSources.anonymousTemplate",m.C.ia)}(),function(){function _(G,k,W){var q;for(k=m.h.nextSibling(k);G&&(q=G)!==k;)G=m.h.nextSibling(q),W(q,G)}function E(G,k){if(G.length){var W=G[0],q=G[G.length-1],J=W.parentNode,j=m.ga.instance,Z=j.preprocessNode;if(Z){if(_(W,q,function(Q,de){var ye=Q.previousSibling,ae=Z.call(j,Q);ae&&(Q===W&&(W=ae[0]||de),Q===q&&(q=ae[ae.length-1]||ye))}),G.length=0,!W)return;W===q?G.push(W):(G.push(W,q),m.a.Ua(G,J))}_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.vc(k,Q)}),_(W,q,function(Q){Q.nodeType!==1&&Q.nodeType!==8||m.aa.cd(Q,[k])}),m.a.Ua(G,J)}}function w(G){return G.nodeType?G:0<G.length?G[0]:null}function I(G,k,W,q,J){J=J||{};var j=(G&&w(G)||W||{}).ownerDocument,Z=J.templateEngine||B;if(m.kc.xd(W,Z,j),W=Z.renderTemplate(W,q,J,j),typeof W.length!="number"||0<W.length&&typeof W[0].nodeType!="number")throw Error("Template engine must return an array of DOM nodes");switch(j=!1,k){case"replaceChildren":m.h.va(G,W),j=!0;break;case"replaceNode":m.a.Xc(G,W),j=!0;break;case"ignoreTargetNode":break;default:throw Error("Unknown renderMode: "+k)}return j&&(E(W,q),J.afterRender&&m.u.G(J.afterRender,null,[W,q[J.as||"$data"]]),k=="replaceChildren"&&m.i.ma(G,m.i.H)),W}function N(G,k,W){return m.O(G)?G():typeof G=="function"?G(k,W):G}var B;m.gc=function(G){if(G!=e&&!(G instanceof m.ca))throw Error("templateEngine must inherit from ko.templateEngine");B=G},m.dc=function(G,k,W,q,J){if(W=W||{},(W.templateEngine||B)==e)throw Error("Set a template engine before calling renderTemplate");if(J=J||"replaceChildren",q){var j=w(q);return m.$(function(){var Q=k&&k instanceof m.fa?k:new m.fa(k,null,null,null,{exportDependencies:!0}),Z=N(G,Q.$data,Q),Q=I(q,J,Z,Q,W);J=="replaceNode"&&(q=Q,j=w(q))},null,{Sa:function(){return!j||!m.a.Sb(j)},l:j&&J=="replaceNode"?j.parentNode:j})}return m.aa.Xb(function(Z){m.dc(G,k,W,Z,"replaceNode")})},m.Qd=function(G,k,W,q,J){function j(xe,Ie){m.u.G(m.a.ec,null,[q,xe,Q,W,Z,Ie]),m.i.ma(q,m.i.H)}function Z(xe,Ie){E(Ie,de),W.afterRender&&W.afterRender(Ie,xe),de=null}function Q(xe,Ie){de=J.createChildContext(xe,{as:ye,noChildContext:W.noChildContext,extend:function(ke){ke.$index=Ie,ye&&(ke[ye+"Index"]=Ie)}});var Ce=N(G,xe,de);return I(q,"ignoreTargetNode",Ce,de,W)}var de,ye=W.as,ae=W.includeDestroyed===!1||m.options.foreachHidesDestroyed&&!W.includeDestroyed;if(ae||W.beforeRemove||!m.Pc(k))return m.$(function(){var xe=m.a.f(k)||[];typeof xe.length>"u"&&(xe=[xe]),ae&&(xe=m.a.jb(xe,function(Ie){return Ie===e||Ie===null||!m.a.f(Ie._destroy)})),j(xe)},null,{l:q});j(k.v());var _e=k.subscribe(function(xe){j(k(),xe)},null,"arrayChange");return _e.l(q),_e};var H=m.a.g.Z(),V=m.a.g.Z();m.c.template={init:function(G,k){var W=m.a.f(k());if(typeof W=="string"||"name"in W)m.h.Ea(G);else if("nodes"in W){if(W=W.nodes||[],m.O(W))throw Error('The "nodes" option must be a plain, non-observable array.');var q=W[0]&&W[0].parentNode;q&&m.a.g.get(q,V)||(q=m.a.Yb(W),m.a.g.set(q,V,!0)),new m.C.ia(G).nodes(q)}else if(W=m.h.childNodes(G),0<W.length)q=m.a.Yb(W),new m.C.ia(G).nodes(q);else throw Error("Anonymous template defined, but no template content was provided");return{controlsDescendantBindings:!0}},update:function(G,k,W,q,J){var j=k();k=m.a.f(j),W=!0,q=null,typeof k=="string"?k={}:(j="name"in k?k.name:G,"if"in k&&(W=m.a.f(k.if)),W&&"ifnot"in k&&(W=!m.a.f(k.ifnot)),W&&!j&&(W=!1)),"foreach"in k?q=m.Qd(j,W&&k.foreach||[],k,G,J):W?(W=J,"data"in k&&(W=J.createChildContext(k.data,{as:k.as,noChildContext:k.noChildContext,exportDependencies:!0})),q=m.dc(j,W,k,G)):m.h.Ea(G),J=q,(k=m.a.g.get(G,H))&&typeof k.s=="function"&&k.s(),m.a.g.set(G,H,!J||J.ja&&!J.ja()?e:J)}},m.m.Ra.template=function(G){return G=m.m.ac(G),G.length==1&&G[0].unknown||m.m.Id(G,"name")?null:"This template engine does not support anonymous templates nested within its templates"},m.h.ea.template=!0}(),m.b("setTemplateEngine",m.gc),m.b("renderTemplate",m.dc),m.a.Kc=function(_,E,w){if(_.length&&E.length){var I,N,B,H,V;for(I=N=0;(!w||I<w)&&(H=_[N]);++N){for(B=0;V=E[B];++B)if(H.value===V.value){H.moved=V.index,V.moved=H.index,E.splice(B,1),I=B=0;break}I+=B}}},m.a.Pb=function(){function _(E,w,I,N,B){var H=Math.min,V=Math.max,G=[],k,W=E.length,q,J=w.length,j=J-W||1,Z=W+J+1,Q,de,ye;for(k=0;k<=W;k++)for(de=Q,G.push(Q=[]),ye=H(J,k+j),q=V(0,k-1);q<=ye;q++)Q[q]=q?k?E[k-1]===w[q-1]?de[q-1]:H(de[q]||Z,Q[q-1]||Z)+1:q+1:k+1;for(H=[],V=[],j=[],k=W,q=J;k||q;)J=G[k][q]-1,q&&J===G[k][q-1]?V.push(H[H.length]={status:I,value:w[--q],index:q}):k&&J===G[k-1][q]?j.push(H[H.length]={status:N,value:E[--k],index:k}):(--q,--k,B.sparse||H.push({status:"retained",value:w[q]}));return m.a.Kc(j,V,!B.dontLimitMoves&&10*W),H.reverse()}return function(E,w,I){return I=typeof I=="boolean"?{dontLimitMoves:I}:I||{},E=E||[],w=w||[],E.length<w.length?_(E,w,"added","deleted",I):_(w,E,"deleted","added",I)}}(),m.b("utils.compareArrays",m.a.Pb),function(){function _(I,N,B,H,V){var G=[],k=m.$(function(){var W=N(B,V,m.a.Ua(G,I))||[];0<G.length&&(m.a.Xc(G,W),H&&m.u.G(H,null,[B,W,V])),G.length=0,m.a.Nb(G,W)},null,{l:I,Sa:function(){return!m.a.kd(G)}});return{Y:G,$:k.ja()?k:e}}var E=m.a.g.Z(),w=m.a.g.Z();m.a.ec=function(I,N,B,H,V,G){function k(We){Ce={Aa:We,pb:m.ta(de++)},Z.push(Ce),j||Ie.push(Ce)}function W(We){Ce=J[We],de!==Ce.pb.v()&&xe.push(Ce),Ce.pb(de++),m.a.Ua(Ce.Y,I),Z.push(Ce)}function q(We,Ut){if(We)for(var Te=0,Ae=Ut.length;Te<Ae;Te++)m.a.D(Ut[Te].Y,function(st){We(st,Te,Ut[Te].Aa)})}N=N||[],typeof N.length>"u"&&(N=[N]),H=H||{};var J=m.a.g.get(I,E),j=!J,Z=[],Q=0,de=0,ye=[],ae=[],_e=[],xe=[],Ie=[],Ce,ke=0;if(j)m.a.D(N,k);else{if(!G||J&&J._countWaitingForRemove){var He=m.a.Mb(J,function(We){return We.Aa});G=m.a.Pb(He,N,{dontLimitMoves:H.dontLimitMoves,sparse:!0})}for(var He=0,rt,Lt,Tt;rt=G[He];He++)switch(Lt=rt.moved,Tt=rt.index,rt.status){case"deleted":for(;Q<Tt;)W(Q++);Lt===e&&(Ce=J[Q],Ce.$&&(Ce.$.s(),Ce.$=e),m.a.Ua(Ce.Y,I).length&&(H.beforeRemove&&(Z.push(Ce),ke++,Ce.Aa===w?Ce=null:_e.push(Ce)),Ce&&ye.push.apply(ye,Ce.Y))),Q++;break;case"added":for(;de<Tt;)W(Q++);Lt!==e?(ae.push(Z.length),W(Lt)):k(rt.value)}for(;de<N.length;)W(Q++);Z._countWaitingForRemove=ke}m.a.g.set(I,E,Z),q(H.beforeMove,xe),m.a.D(ye,H.beforeRemove?m.oa:m.removeNode);var we,Xe,Qe;try{Qe=I.ownerDocument.activeElement}catch{}if(ae.length)for(;(He=ae.shift())!=e;){for(Ce=Z[He],we=e;He;)if((Xe=Z[--He].Y)&&Xe.length){we=Xe[Xe.length-1];break}for(N=0;Q=Ce.Y[N];we=Q,N++)m.h.Wb(I,Q,we)}for(He=0;Ce=Z[He];He++){for(Ce.Y||m.a.extend(Ce,_(I,B,Ce.Aa,V,Ce.pb)),N=0;Q=Ce.Y[N];we=Q,N++)m.h.Wb(I,Q,we);!Ce.Ed&&V&&(V(Ce.Aa,Ce.Y,Ce.pb),Ce.Ed=!0,we=Ce.Y[Ce.Y.length-1])}for(Qe&&I.ownerDocument.activeElement!=Qe&&Qe.focus(),q(H.beforeRemove,_e),He=0;He<_e.length;++He)_e[He].Aa=w;q(H.afterMove,xe),q(H.afterAdd,Ie)}}(),m.b("utils.setDomNodeChildrenFromArrayMapping",m.a.ec),m.ba=function(){this.allowTemplateRewriting=!1},m.ba.prototype=new m.ca,m.ba.prototype.constructor=m.ba,m.ba.prototype.renderTemplateSource=function(_,E,w,I){return(E=!(9>m.a.W)&&_.nodes?_.nodes():null)?m.a.la(E.cloneNode(!0).childNodes):(_=_.text(),m.a.ua(_,I))},m.ba.Ma=new m.ba,m.gc(m.ba.Ma),m.b("nativeTemplateEngine",m.ba),function(){m.$a=function(){var E=this.Hd=function(){if(!o||!o.tmpl)return 0;try{if(0<=o.tmpl.tag.tmpl.open.toString().indexOf("__"))return 2}catch{}return 1}();this.renderTemplateSource=function(w,I,N,B){if(B=B||n,N=N||{},2>E)throw Error("Your version of jQuery.tmpl is too old. Please upgrade to jQuery.tmpl 1.0.0pre or later.");var H=w.data("precompiled");return H||(H=w.text()||"",H=o.template(null,"{{ko_with $item.koBindingContext}}"+H+"{{/ko_with}}"),w.data("precompiled",H)),w=[I.$data],I=o.extend({koBindingContext:I},N.templateOptions),I=o.tmpl(H,w,I),I.appendTo(B.createElement("div")),o.fragments={},I},this.createJavaScriptEvaluatorBlock=function(w){return"{{ko_code ((function() { return "+w+" })()) }}"},this.addTemplate=function(w,I){n.write("<script type='text/html' id='"+w+"'>"+I+"<\/script>")},0<E&&(o.tmpl.tag.ko_code={open:"__.push($1 || '');"},o.tmpl.tag.ko_with={open:"with($1) {",close:"} "})},m.$a.prototype=new m.ca,m.$a.prototype.constructor=m.$a;var _=new m.$a;0<_.Hd&&m.gc(_),m.b("jqueryTmplTemplateEngine",m.$a)}()})})()})()})();var GAt=ko;typeof window<"u"?(ko=window.ko,typeof OP<"u"?window.ko=OP:delete window.ko):(ko=global.ko,typeof OP<"u"?global.ko=OP:delete global.ko);var SS=GAt;/** + * @license + * Knockout ES5 plugin - https://github.com/SteveSanderson/knockout-es5 + * Copyright (c) Steve Sanderson + * MIT license + */var _Z="__knockoutObservables",gZ="__knockoutSubscribable";function LAe(e,t){if(!e)throw new Error("When calling ko.track, you must pass an object as the first parameter.");var n=this,i=NAe(e,!0);return t=t||Object.getOwnPropertyNames(e),t.forEach(function(o){if(!(o===_Z||o===gZ)&&!(o in i)){var r=e[o],s=r instanceof Array,a=n.isObservable(r)?r:s?n.observableArray(r):n.observable(r);Object.defineProperty(e,o,{configurable:!0,enumerable:!0,get:a,set:n.isWriteableObservable(a)?a:void 0}),i[o]=a,s&&jAt(n,a)}}),e}function NAe(e,t){var n=e[_Z];return!n&&t&&(n={},Object.defineProperty(e,_Z,{value:n})),n}function WAt(e,t,n){var i=this,o={owner:e,deferEvaluation:!0};if(typeof n=="function")o.read=n;else{if("value"in n)throw new Error('For ko.defineProperty, you must not specify a "value" for the property. You must provide a "get" function.');if(typeof n.get!="function")throw new Error('For ko.defineProperty, the third parameter must be either an evaluator function, or an options object containing a function called "get".');o.read=n.get,o.write=n.set}return e[t]=i.computed(o),LAe.call(i,e,[t]),e}function jAt(e,t){var n=null;e.computed(function(){n&&(n.dispose(),n=null);var i=t();i instanceof Array&&(n=qAt(e,t,i))})}function qAt(e,t,n){var i=YAt(e,n);return i.subscribe(t)}function YAt(e,t){var n=t[gZ];if(!n){n=new e.subscribable,Object.defineProperty(t,gZ,{value:n});var i={};XAt(t,n,i),KAt(e,t,n,i)}return n}function XAt(e,t,n){["pop","push","reverse","shift","sort","splice","unshift"].forEach(function(i){var o=e[i];e[i]=function(){var r=o.apply(this,arguments);return n.pause!==!0&&t.notifySubscribers(this),r}})}function KAt(e,t,n,i){["remove","removeAll","destroy","destroyAll","replace"].forEach(function(o){Object.defineProperty(t,o,{enumerable:!1,value:function(){var r;i.pause=!0;try{r=e.observableArray.fn[o].apply(e.observableArray(t),arguments)}finally{i.pause=!1}return n.notifySubscribers(t),r}})})}function FAe(e,t){if(!e)return null;var n=NAe(e,!1);return n&&n[t]||null}function ZAt(e,t){var n=FAe(e,t);n&&n.valueHasMutated()}function $At(e){e.track=LAe,e.getObservable=FAe,e.valueHasMutated=ZAt,e.defineProperty=WAt}var E8={attachToKo:$At};var BAe="http://www.w3.org/2000/svg",kAe="cesium-svgPath-svg",QAt={register:function(e){e.bindingHandlers.cesiumSvgPath={init:function(t,n){let i=document.createElementNS(BAe,"svg:svg");i.setAttribute("class",kAe);let o=document.createElementNS(BAe,"path");return i.appendChild(o),e.virtualElements.setDomNodeChildren(t,[i]),e.computed({read:function(){let r=e.unwrap(n());o.setAttribute("d",e.unwrap(r.path));let s=e.unwrap(r.width),a=e.unwrap(r.height);i.setAttribute("width",s),i.setAttribute("height",a),i.setAttribute("viewBox",`0 0 ${s} ${a}`),r.css&&i.setAttribute("class",`${kAe} ${e.unwrap(r.css)}`)},disposeWhenNodeIsRemoved:t}),{controlsDescendantBindings:!0}}},e.virtualElements.allowedBindings.cesiumSvgPath=!0}},S8=QAt;E8.attachToKo(SS);S8.register(SS);var be=SS;function MP(e){l(e)||(e=new tm),this._clock=e,this._eventHelper=new _r,this._eventHelper.add(e.onTick,this.synchronize,this),this.systemTime=be.observable(K.now()),this.systemTime.equalityComparer=K.equals,this.startTime=be.observable(e.startTime),this.startTime.equalityComparer=K.equals,this.startTime.subscribe(function(t){e.startTime=t,this.synchronize()},this),this.stopTime=be.observable(e.stopTime),this.stopTime.equalityComparer=K.equals,this.stopTime.subscribe(function(t){e.stopTime=t,this.synchronize()},this),this.currentTime=be.observable(e.currentTime),this.currentTime.equalityComparer=K.equals,this.currentTime.subscribe(function(t){e.currentTime=t,this.synchronize()},this),this.multiplier=be.observable(e.multiplier),this.multiplier.subscribe(function(t){e.multiplier=t,this.synchronize()},this),this.clockStep=be.observable(e.clockStep),this.clockStep.subscribe(function(t){e.clockStep=t,this.synchronize()},this),this.clockRange=be.observable(e.clockRange),this.clockRange.subscribe(function(t){e.clockRange=t,this.synchronize()},this),this.canAnimate=be.observable(e.canAnimate),this.canAnimate.subscribe(function(t){e.canAnimate=t,this.synchronize()},this),this.shouldAnimate=be.observable(e.shouldAnimate),this.shouldAnimate.subscribe(function(t){e.shouldAnimate=t,this.synchronize()},this),be.track(this,["systemTime","startTime","stopTime","currentTime","multiplier","clockStep","clockRange","canAnimate","shouldAnimate"])}Object.defineProperties(MP.prototype,{clock:{get:function(){return this._clock}}});MP.prototype.synchronize=function(){let e=this._clock;this.systemTime=K.now(),this.startTime=e.startTime,this.stopTime=e.stopTime,this.currentTime=e.currentTime,this.multiplier=e.multiplier,this.clockStep=e.clockStep,this.clockRange=e.clockRange,this.canAnimate=e.canAnimate,this.shouldAnimate=e.shouldAnimate};MP.prototype.isDestroyed=function(){return!1};MP.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var v8=MP;function JAt(){this.canExecute=void 0,this.beforeExecute=void 0,this.afterExecute=void 0,he.throwInstantiationError()}var VAe=JAt;var LP={};LP.createCheckbox=function(e,t,n){let i=document.createElement("div"),o=document.createElement("label"),r=document.createElement("input");r.type="checkbox";let s=`checked: ${t}`;return l(n)&&(s+=`, enable: ${n}`),r.setAttribute("data-bind",s),o.appendChild(r),o.appendChild(document.createTextNode(e)),i.appendChild(o),i};LP.createSection=function(e,t,n,i){let o=document.createElement("div");o.className="cesium-cesiumInspector-section",o.setAttribute("data-bind",`css: { "cesium-cesiumInspector-section-collapsed": !${n} }`),e.appendChild(o);let r=document.createElement("h3");r.className="cesium-cesiumInspector-sectionHeader",r.appendChild(document.createTextNode(t)),r.setAttribute("data-bind",`click: ${i}`),o.appendChild(r);let s=document.createElement("div");return s.className="cesium-cesiumInspector-sectionContent",o.appendChild(s),s};LP.createRangeInput=function(e,t,n,i,o,r){r=y(r,t);let s=document.createElement("input");s.setAttribute("data-bind",`value: ${r}`),s.type="number";let a=document.createElement("input");a.type="range",a.min=n,a.max=i,a.step=y(o,"any"),a.setAttribute("data-bind",`valueUpdate: "input", value: ${t}`);let c=document.createElement("div");c.appendChild(a);let u=document.createElement("div");return u.className="cesium-cesiumInspector-slider",u.appendChild(document.createTextNode(e)),u.appendChild(s),u.appendChild(c),u};LP.createButton=function(e,t,n){let i=document.createElement("button");i.type="button",i.textContent=e,i.className="cesium-cesiumInspector-pickButton";let o=`click: ${t}`;return l(n)&&(o+=`, css: {"cesium-cesiumInspector-pickButtonHighlight" : ${n}}`),i.setAttribute("data-bind",o),i};var hc=LP;function UAe(e,t){this._command=e,t=y(t,y.EMPTY_OBJECT),this.toggled=y(t.toggled,!1),this.tooltip=y(t.tooltip,""),be.track(this,["toggled","tooltip"])}Object.defineProperties(UAe.prototype,{command:{get:function(){return this._command}}});var Vb=UAe;function eCt(e,t){t=y(t,!0);let n=new me,i=new me;function o(){let r={args:arguments,cancel:!1},s;return n.raiseEvent(r),r.cancel||(s=e.apply(null,arguments),i.raiseEvent(s)),s}return o.canExecute=t,be.track(o,["canExecute"]),Object.defineProperties(o,{beforeExecute:{value:n},afterExecute:{value:i}}),o}var vn=eCt;function tCt(e,t,n,i,o){return n.call(i,e[t]),be.getObservable(e,t).subscribe(n,i,o)}var Ra=tCt;var Ub="http://www.w3.org/2000/svg",GAe="http://www.w3.org/1999/xlink",w8,NP=z.fromCssColorString("rgba(247,250,255,0.384)"),D8=z.fromCssColorString("rgba(143,191,255,0.216)"),yZ=z.fromCssColorString("rgba(153,197,255,0.098)"),I8=z.fromCssColorString("rgba(255,255,255,0.086)"),nCt=z.fromCssColorString("rgba(255,255,255,0.267)"),iCt=z.fromCssColorString("rgba(255,255,255,0)"),zAe=z.fromCssColorString("rgba(66,67,68,0.3)"),HAe=z.fromCssColorString("rgba(0,0,0,0.5)");function u0(e){return z.fromCssColorString(window.getComputedStyle(e).getPropertyValue("color"))}var FP={animation_pathReset:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.316,5.318,9.833,13.682,9.833,5.5,5.5,5.5,5.5,25.5,9.833,25.5,9.833,17.318,24.316,25.682z"},animation_pathPause:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M13,5.5,7.5,5.5,7.5,25.5,13,25.5zM24.5,5.5,19,5.5,19,25.5,24.5,25.5z"},animation_pathPlay:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathPlayReverse:{tagName:"path",transform:"translate(16,16) scale(-0.85,0.85) translate(-16,-16)",d:"M6.684,25.682L24.316,15.5L6.684,5.318V25.682z"},animation_pathLoop:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-16)",d:"M24.249,15.499c-0.009,4.832-3.918,8.741-8.75,8.75c-2.515,0-4.768-1.064-6.365-2.763l2.068-1.442l-7.901-3.703l0.744,8.694l2.193-1.529c2.244,2.594,5.562,4.242,9.26,4.242c6.767,0,12.249-5.482,12.249-12.249H24.249zM15.499,6.75c2.516,0,4.769,1.065,6.367,2.764l-2.068,1.443l7.901,3.701l-0.746-8.693l-2.192,1.529c-2.245-2.594-5.562-4.245-9.262-4.245C8.734,3.25,3.25,8.734,3.249,15.499H6.75C6.758,10.668,10.668,6.758,15.499,6.75z"},animation_pathClock:{tagName:"path",transform:"translate(16,16) scale(0.85) translate(-16,-15.5)",d:"M15.5,2.374C8.251,2.375,2.376,8.251,2.374,15.5C2.376,22.748,8.251,28.623,15.5,28.627c7.249-0.004,13.124-5.879,13.125-13.127C28.624,8.251,22.749,2.375,15.5,2.374zM15.5,25.623C9.909,25.615,5.385,21.09,5.375,15.5C5.385,9.909,9.909,5.384,15.5,5.374c5.59,0.01,10.115,4.535,10.124,10.125C25.615,21.09,21.091,25.615,15.5,25.623zM8.625,15.5c-0.001-0.552-0.448-0.999-1.001-1c-0.553,0-1,0.448-1,1c0,0.553,0.449,1,1,1C8.176,16.5,8.624,16.053,8.625,15.5zM8.179,18.572c-0.478,0.277-0.642,0.889-0.365,1.367c0.275,0.479,0.889,0.641,1.365,0.365c0.479-0.275,0.643-0.887,0.367-1.367C9.27,18.461,8.658,18.297,8.179,18.572zM9.18,10.696c-0.479-0.276-1.09-0.112-1.366,0.366s-0.111,1.09,0.365,1.366c0.479,0.276,1.09,0.113,1.367-0.366C9.821,11.584,9.657,10.973,9.18,10.696zM22.822,12.428c0.478-0.275,0.643-0.888,0.366-1.366c-0.275-0.478-0.89-0.642-1.366-0.366c-0.479,0.278-0.642,0.89-0.366,1.367C21.732,12.54,22.344,12.705,22.822,12.428zM12.062,21.455c-0.478-0.275-1.089-0.111-1.366,0.367c-0.275,0.479-0.111,1.09,0.366,1.365c0.478,0.277,1.091,0.111,1.365-0.365C12.704,22.344,12.54,21.732,12.062,21.455zM12.062,9.545c0.479-0.276,0.642-0.888,0.366-1.366c-0.276-0.478-0.888-0.642-1.366-0.366s-0.642,0.888-0.366,1.366C10.973,9.658,11.584,9.822,12.062,9.545zM22.823,18.572c-0.48-0.275-1.092-0.111-1.367,0.365c-0.275,0.479-0.112,1.092,0.367,1.367c0.477,0.275,1.089,0.113,1.365-0.365C23.464,19.461,23.3,18.848,22.823,18.572zM19.938,7.813c-0.477-0.276-1.091-0.111-1.365,0.366c-0.275,0.48-0.111,1.091,0.366,1.367s1.089,0.112,1.366-0.366C20.581,8.702,20.418,8.089,19.938,7.813zM23.378,14.5c-0.554,0.002-1.001,0.45-1.001,1c0.001,0.552,0.448,1,1.001,1c0.551,0,1-0.447,1-1C24.378,14.949,23.929,14.5,23.378,14.5zM15.501,6.624c-0.552,0-1,0.448-1,1l-0.466,7.343l-3.004,1.96c-0.478,0.277-0.642,0.889-0.365,1.365c0.275,0.479,0.889,0.643,1.365,0.367l3.305-1.676C15.39,16.99,15.444,17,15.501,17c0.828,0,1.5-0.671,1.5-1.5l-0.5-7.876C16.501,7.072,16.053,6.624,15.501,6.624zM15.501,22.377c-0.552,0-1,0.447-1,1s0.448,1,1,1s1-0.447,1-1S16.053,22.377,15.501,22.377zM18.939,21.455c-0.479,0.277-0.643,0.889-0.366,1.367c0.275,0.477,0.888,0.643,1.366,0.365c0.478-0.275,0.642-0.889,0.366-1.365C20.028,21.344,19.417,21.18,18.939,21.455z"},animation_pathWingButton:{tagName:"path",d:"m 4.5,0.5 c -2.216,0 -4,1.784 -4,4 l 0,24 c 0,2.216 1.784,4 4,4 l 13.71875,0 C 22.478584,27.272785 27.273681,22.511272 32.5,18.25 l 0,-13.75 c 0,-2.216 -1.784,-4 -4,-4 l -24,0 z"},animation_pathPointer:{tagName:"path",d:"M-15,-65,-15,-55,15,-55,15,-65,0,-95z"},animation_pathSwooshFX:{tagName:"path",d:"m 85,0 c 0,16.617 -4.813944,35.356 -13.131081,48.4508 h 6.099803 c 8.317138,-13.0948 13.13322,-28.5955 13.13322,-45.2124 0,-46.94483 -38.402714,-85.00262 -85.7743869,-85.00262 -1.0218522,0 -2.0373001,0.0241 -3.0506131,0.0589 45.958443,1.59437 82.723058,35.77285 82.723058,81.70532 z"}};function ah(e){let t=document.createElementNS(Ub,e.tagName);for(let n in e)if(e.hasOwnProperty(n)&&n!=="tagName")if(n==="children"){let i=e.children.length;for(let o=0;o<i;++o)t.appendChild(ah(e.children[o]))}else n.indexOf("xlink:")===0?t.setAttributeNS(GAe,n.substring(6),e[n]):n==="textContent"?t.textContent=e[n]:t.setAttribute(n,e[n]);return t}function xZ(e,t,n){let i=document.createElementNS(Ub,"text");i.setAttribute("x",e),i.setAttribute("y",t),i.setAttribute("class","cesium-animation-svgText");let o=document.createElementNS(Ub,"tspan");return o.textContent=n,i.appendChild(o),i}function oCt(e,t,n){e.setAttribute("transform",`translate(100,100) rotate(${n})`),t.setAttribute("transform",`rotate(${n})`)}var P8=new z;function $r(e,t){let n=t.alpha,i=1-n;return P8.red=e.red*i+t.red*n,P8.green=e.green*i+t.green*n,P8.blue=e.blue*i+t.blue*n,P8.toCssColorString()}function bZ(e,t,n){let i=FP[n],o={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{tagName:"rect",class:"cesium-animation-buttonGlow",width:32,height:32,rx:2,ry:2},{tagName:"rect",class:"cesium-animation-buttonMain",width:32,height:32,rx:4,ry:4},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return ah(o)}function rCt(e,t,n){let i=FP[n],o=FP.animation_pathWingButton,r={tagName:"g",class:"cesium-animation-rectButton",transform:`translate(${e},${t})`,children:[{class:"cesium-animation-buttonGlow",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonMain",id:"animation_pathWingButton",tagName:o.tagName,d:o.d},{class:"cesium-animation-buttonPath",id:n,tagName:i.tagName,transform:i.transform,d:i.d},{tagName:"title",textContent:""}]};return ah(r)}function sCt(e,t){let n=e._viewModel,i=n.shuttleRingDragging;if(!(i&&w8!==e))if(t.type==="mousedown"||i&&t.type==="mousemove"||t.type==="touchstart"&&t.touches.length===1||i&&t.type==="touchmove"&&t.touches.length===1){let o=e._centerX,r=e._centerY,a=e._svgNode.getBoundingClientRect(),c,u;if(t.type==="touchstart"||t.type==="touchmove"?(c=t.touches[0].clientX,u=t.touches[0].clientY):(c=t.clientX,u=t.clientY),!i&&(c>a.right||c<a.left||u<a.top||u>a.bottom))return;let f=e._shuttleRingPointer.getBoundingClientRect(),d=c-o-a.left,p=u-r-a.top,g=Math.atan2(p,d)*180/Math.PI+90;g>180&&(g-=360);let m=n.shuttleRingAngle;i||c<f.right&&c>f.left&&u>f.top&&u<f.bottom?(w8=e,n.shuttleRingDragging=!0,n.shuttleRingAngle=g):g<m?n.slower():g>m&&n.faster(),t.preventDefault()}else e===w8&&(w8=void 0),n.shuttleRingDragging=!1}function E_(e,t){this._viewModel=t,this.svgElement=e,this._enabled=void 0,this._toggled=void 0;let n=this;this._clickFunction=function(){let i=n._viewModel.command;i.canExecute&&i()},e.addEventListener("click",this._clickFunction,!0),this._subscriptions=[Ra(t,"toggled",this.setToggled,this),Ra(t,"tooltip",this.setTooltip,this),Ra(t.command,"canExecute",this.setEnabled,this)]}E_.prototype.destroy=function(){this.svgElement.removeEventListener("click",this._clickFunction,!0);let e=this._subscriptions;for(let t=0,n=e.length;t<n;t++)e[t].dispose();ue(this)};E_.prototype.isDestroyed=function(){return!1};E_.prototype.setEnabled=function(e){if(this._enabled!==e){if(this._enabled=e,!e){this.svgElement.setAttribute("class","cesium-animation-buttonDisabled");return}if(this._toggled){this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled");return}this.svgElement.setAttribute("class","cesium-animation-rectButton")}};E_.prototype.setToggled=function(e){this._toggled!==e&&(this._toggled=e,this._enabled&&(e?this.svgElement.setAttribute("class","cesium-animation-rectButton cesium-animation-buttonToggled"):this.svgElement.setAttribute("class","cesium-animation-rectButton")))};E_.prototype.setTooltip=function(e){this.svgElement.getElementsByTagName("title")[0].textContent=e};function vS(e,t){e=Rn(e),this._viewModel=t,this._container=e,this._centerX=0,this._centerY=0,this._defsElement=void 0,this._svgNode=void 0,this._topG=void 0,this._lastHeight=void 0,this._lastWidth=void 0;let n=e.ownerDocument,i=document.createElement("style");i.textContent=".cesium-animation-rectButton .cesium-animation-buttonGlow { filter: url(#animation_blurred); }.cesium-animation-rectButton .cesium-animation-buttonMain { fill: url(#animation_buttonNormal); }.cesium-animation-buttonToggled .cesium-animation-buttonMain { fill: url(#animation_buttonToggled); }.cesium-animation-rectButton:hover .cesium-animation-buttonMain { fill: url(#animation_buttonHovered); }.cesium-animation-buttonDisabled .cesium-animation-buttonMain { fill: url(#animation_buttonDisabled); }.cesium-animation-shuttleRingG .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshGradient); }.cesium-animation-shuttleRingG:hover .cesium-animation-shuttleRingSwoosh { fill: url(#animation_shuttleRingSwooshHovered); }.cesium-animation-shuttleRingPointer { fill: url(#animation_shuttleRingPointerGradient); }.cesium-animation-shuttleRingPausePointer { fill: url(#animation_shuttleRingPointerPaused); }.cesium-animation-knobOuter { fill: url(#animation_knobOuter); }.cesium-animation-knobInner { fill: url(#animation_knobInner); }",n.head.insertBefore(i,n.head.childNodes[0]);let o=document.createElement("div");o.className="cesium-animation-theme",o.innerHTML='<div class="cesium-animation-themeNormal"></div><div class="cesium-animation-themeHover"></div><div class="cesium-animation-themeSelect"></div><div class="cesium-animation-themeDisabled"></div><div class="cesium-animation-themeKnob"></div><div class="cesium-animation-themePointer"></div><div class="cesium-animation-themeSwoosh"></div><div class="cesium-animation-themeSwooshHover"></div>',this._theme=o,this._themeNormal=o.childNodes[0],this._themeHover=o.childNodes[1],this._themeSelect=o.childNodes[2],this._themeDisabled=o.childNodes[3],this._themeKnob=o.childNodes[4],this._themePointer=o.childNodes[5],this._themeSwoosh=o.childNodes[6],this._themeSwooshHover=o.childNodes[7];let r=document.createElementNS(Ub,"svg:svg");this._svgNode=r,r.setAttributeNS("http://www.w3.org/2000/xmlns/","xmlns:xlink",GAe);let s=document.createElementNS(Ub,"g");this._topG=s,this._realtimeSVG=new E_(rCt(3,4,"animation_pathClock"),t.playRealtimeViewModel),this._playReverseSVG=new E_(bZ(44,99,"animation_pathPlayReverse"),t.playReverseViewModel),this._playForwardSVG=new E_(bZ(124,99,"animation_pathPlay"),t.playForwardViewModel),this._pauseSVG=new E_(bZ(84,99,"animation_pathPause"),t.pauseViewModel);let a=document.createElementNS(Ub,"g");a.appendChild(this._realtimeSVG.svgElement),a.appendChild(this._playReverseSVG.svgElement),a.appendChild(this._playForwardSVG.svgElement),a.appendChild(this._pauseSVG.svgElement);let c=ah({tagName:"circle",class:"cesium-animation-shuttleRingBack",cx:100,cy:100,r:99});this._shuttleRingBackPanel=c;let u=FP.animation_pathSwooshFX,f=FP.animation_pathPointer,d=ah({tagName:"g",class:"cesium-animation-shuttleRingSwoosh",children:[{tagName:u.tagName,transform:"translate(100,97) scale(-1,1)",id:"animation_pathSwooshFX",d:u.d},{tagName:u.tagName,transform:"translate(100,97)",id:"animation_pathSwooshFX",d:u.d},{tagName:"line",x1:100,y1:8,x2:100,y2:22}]});this._shuttleRingSwooshG=d,this._shuttleRingPointer=ah({class:"cesium-animation-shuttleRingPointer",id:"animation_pathPointer",tagName:f.tagName,d:f.d});let p=ah({tagName:"g",transform:"translate(100,100)"});this._knobOuter=ah({tagName:"circle",class:"cesium-animation-knobOuter",cx:0,cy:0,r:71});let g=61,m=ah({tagName:"circle",class:"cesium-animation-knobInner",cx:0,cy:0,r:g});this._knobDate=xZ(0,-24,""),this._knobTime=xZ(0,-7,""),this._knobStatus=xZ(0,-41,"");let x=ah({tagName:"circle",class:"cesium-animation-blank",cx:0,cy:0,r:g}),b=document.createElementNS(Ub,"g");b.setAttribute("class","cesium-animation-shuttleRingG"),e.appendChild(o),s.appendChild(b),s.appendChild(p),s.appendChild(a),b.appendChild(c),b.appendChild(d),b.appendChild(this._shuttleRingPointer),p.appendChild(this._knobOuter),p.appendChild(m),p.appendChild(this._knobDate),p.appendChild(this._knobTime),p.appendChild(this._knobStatus),p.appendChild(x),r.appendChild(s),e.appendChild(r);let T=this;function A(O){sCt(T,O)}this._mouseCallback=A,c.addEventListener("mousedown",A,!0),c.addEventListener("touchstart",A,!0),d.addEventListener("mousedown",A,!0),d.addEventListener("touchstart",A,!0),n.addEventListener("mousemove",A,!0),n.addEventListener("touchmove",A,!0),n.addEventListener("mouseup",A,!0),n.addEventListener("touchend",A,!0),n.addEventListener("touchcancel",A,!0),this._shuttleRingPointer.addEventListener("mousedown",A,!0),this._shuttleRingPointer.addEventListener("touchstart",A,!0),this._knobOuter.addEventListener("mousedown",A,!0),this._knobOuter.addEventListener("touchstart",A,!0);let C=this._knobTime.childNodes[0],S=this._knobDate.childNodes[0],v=this._knobStatus.childNodes[0],D;this._subscriptions=[Ra(t.pauseViewModel,"toggled",function(O){D!==O&&(D=O,D?T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPausePointer"):T._shuttleRingPointer.setAttribute("class","cesium-animation-shuttleRingPointer"))}),Ra(t,"shuttleRingAngle",function(O){oCt(T._shuttleRingPointer,T._knobOuter,O)}),Ra(t,"dateLabel",function(O){S.textContent!==O&&(S.textContent=O)}),Ra(t,"timeLabel",function(O){C.textContent!==O&&(C.textContent=O)}),Ra(t,"multiplierLabel",function(O){v.textContent!==O&&(v.textContent=O)})],this.applyThemeChanges(),this.resize()}Object.defineProperties(vS.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});vS.prototype.isDestroyed=function(){return!1};vS.prototype.destroy=function(){l(this._observer)&&(this._observer.disconnect(),this._observer=void 0);let e=this._container.ownerDocument,t=this._mouseCallback;this._shuttleRingBackPanel.removeEventListener("mousedown",t,!0),this._shuttleRingBackPanel.removeEventListener("touchstart",t,!0),this._shuttleRingSwooshG.removeEventListener("mousedown",t,!0),this._shuttleRingSwooshG.removeEventListener("touchstart",t,!0),e.removeEventListener("mousemove",t,!0),e.removeEventListener("touchmove",t,!0),e.removeEventListener("mouseup",t,!0),e.removeEventListener("touchend",t,!0),e.removeEventListener("touchcancel",t,!0),this._shuttleRingPointer.removeEventListener("mousedown",t,!0),this._shuttleRingPointer.removeEventListener("touchstart",t,!0),this._knobOuter.removeEventListener("mousedown",t,!0),this._knobOuter.removeEventListener("touchstart",t,!0),this._container.removeChild(this._svgNode),this._container.removeChild(this._theme),this._realtimeSVG.destroy(),this._playReverseSVG.destroy(),this._playForwardSVG.destroy(),this._pauseSVG.destroy();let n=this._subscriptions;for(let i=0,o=n.length;i<o;i++)n[i].dispose();return ue(this)};vS.prototype.resize=function(){let e=this._container.clientWidth,t=this._container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;let n=this._svgNode,i=200,o=132,r=e,s=t;e===0&&t===0?(r=i,s=o):e===0?(s=t,r=i*(t/o)):t===0&&(r=e,s=o*(e/i));let a=r/i,c=s/o;n.style.cssText=`width: ${r}px; height: ${s}px; position: absolute; bottom: 0; left: 0; overflow: hidden;`,n.setAttribute("width",r),n.setAttribute("height",s),n.setAttribute("viewBox",`0 0 ${r} ${s}`),this._topG.setAttribute("transform",`scale(${a},${c})`),this._centerX=Math.max(1,100*a),this._centerY=Math.max(1,100*c),this._lastHeight=e,this._lastWidth=t};vS.prototype.applyThemeChanges=function(){let e=this._container.ownerDocument;if(!e.body.contains(this._container)){if(l(this._observer))return;let f=this;f._observer=new MutationObserver(function(){e.body.contains(f._container)&&(f._observer.disconnect(),f._observer=void 0,f.applyThemeChanges())}),f._observer.observe(e,{childList:!0,subtree:!0});return}let t=u0(this._themeNormal),n=u0(this._themeHover),i=u0(this._themeSelect),o=u0(this._themeDisabled),r=u0(this._themeKnob),s=u0(this._themePointer),a=u0(this._themeSwoosh),c=u0(this._themeSwooshHover),u=ah({tagName:"defs",children:[{id:"animation_buttonNormal",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":$r(t,NP)},{tagName:"stop",offset:"12%","stop-color":$r(t,D8)},{tagName:"stop",offset:"46%","stop-color":$r(t,yZ)},{tagName:"stop",offset:"81%","stop-color":$r(t,I8)}]},{id:"animation_buttonHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":$r(n,NP)},{tagName:"stop",offset:"12%","stop-color":$r(n,D8)},{tagName:"stop",offset:"46%","stop-color":$r(n,yZ)},{tagName:"stop",offset:"81%","stop-color":$r(n,I8)}]},{id:"animation_buttonToggled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":$r(i,NP)},{tagName:"stop",offset:"12%","stop-color":$r(i,D8)},{tagName:"stop",offset:"46%","stop-color":$r(i,yZ)},{tagName:"stop",offset:"81%","stop-color":$r(i,I8)}]},{id:"animation_buttonDisabled",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-color":$r(o,nCt)},{tagName:"stop",offset:"75%","stop-color":$r(o,iCt)}]},{id:"animation_blurred",tagName:"filter",width:"200%",height:"200%",x:"-50%",y:"-50%",children:[{tagName:"feGaussianBlur",stdDeviation:4,in:"SourceGraphic"}]},{id:"animation_shuttleRingSwooshGradient",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":a.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":a.toCssColorString()}]},{id:"animation_shuttleRingSwooshHovered",tagName:"linearGradient",x1:"50%",y1:"0%",x2:"50%",y2:"100%",children:[{tagName:"stop",offset:"0%","stop-opacity":.2,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"85%","stop-opacity":.85,"stop-color":c.toCssColorString()},{tagName:"stop",offset:"95%","stop-opacity":.05,"stop-color":c.toCssColorString()}]},{id:"animation_shuttleRingPointerGradient",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"40%","stop-color":s.toCssColorString()},{tagName:"stop",offset:"60%","stop-color":$r(s,HAe)},{tagName:"stop",offset:"100%","stop-color":$r(s,HAe)}]},{id:"animation_shuttleRingPointerPaused",tagName:"linearGradient",x1:"0%",y1:"50%",x2:"100%",y2:"50%",children:[{tagName:"stop",offset:"0%","stop-color":"#CCC"},{tagName:"stop",offset:"40%","stop-color":"#CCC"},{tagName:"stop",offset:"60%","stop-color":"#555"},{tagName:"stop",offset:"100%","stop-color":"#555"}]},{id:"animation_knobOuter",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":$r(r,NP)},{tagName:"stop",offset:"60%","stop-color":$r(r,zAe)},{tagName:"stop",offset:"85%","stop-color":$r(r,D8)}]},{id:"animation_knobInner",tagName:"linearGradient",x1:"20%",y1:"0%",x2:"90%",y2:"100%",children:[{tagName:"stop",offset:"5%","stop-color":$r(r,zAe)},{tagName:"stop",offset:"60%","stop-color":$r(r,NP)},{tagName:"stop",offset:"85%","stop-color":$r(r,I8)}]}]});l(this._defsElement)?this._svgNode.replaceChild(u,this._defsElement):this._svgNode.appendChild(u),this._defsElement=u};var R8=vS;var aCt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],f0=15,wS=105;function WAe(e,t){return e-t}function TZ(e,t){let n=Po(t,e,WAe);return n<0?~n:n}function cCt(e,t){if(Math.abs(e)<=f0)return e/f0;let n=f0,i=wS,o,r=0,s;return e>0?(o=Math.log(t[t.length-1]),s=(o-r)/(i-n),Math.exp(r+s*(e-n))):(o=Math.log(-t[0]),s=(o-r)/(i-n),-Math.exp(r+s*(Math.abs(e)-n)))}function lCt(e,t,n){if(n.clockStep===po.SYSTEM_CLOCK)return f0;if(Math.abs(e)<=1)return e*f0;let i=t[t.length-1];e>i?e=i:e<-i&&(e=-i);let o=f0,r=wS,s,a=0,c;return e>0?(s=Math.log(i),c=(s-a)/(r-o),(Math.log(e)-a)/c+o):(s=Math.log(-t[0]),c=(s-a)/(r-o),-((Math.log(Math.abs(e))-a)/c+o))}function Xf(e){let t=this;this._clockViewModel=e,this._allShuttleRingTicks=[],this._dateFormatter=Xf.defaultDateFormatter,this._timeFormatter=Xf.defaultTimeFormatter,this.shuttleRingDragging=!1,this.snapToTicks=!1,be.track(this,["_allShuttleRingTicks","_dateFormatter","_timeFormatter","shuttleRingDragging","snapToTicks"]),this._sortedFilteredPositiveTicks=[],this.setShuttleRingTicks(Xf.defaultTicks),this.timeLabel=void 0,be.defineProperty(this,"timeLabel",function(){return t._timeFormatter(t._clockViewModel.currentTime,t)}),this.dateLabel=void 0,be.defineProperty(this,"dateLabel",function(){return t._dateFormatter(t._clockViewModel.currentTime,t)}),this.multiplierLabel=void 0,be.defineProperty(this,"multiplierLabel",function(){let s=t._clockViewModel;if(s.clockStep===po.SYSTEM_CLOCK)return"Today";let a=s.multiplier;return a%1===0?`${a.toFixed(0)}x`:`${a.toFixed(3).replace(/0{0,3}$/,"")}x`}),this.shuttleRingAngle=void 0,be.defineProperty(this,"shuttleRingAngle",{get:function(){return lCt(e.multiplier,t._allShuttleRingTicks,e)},set:function(s){s=Math.max(Math.min(s,wS),-wS);let a=t._allShuttleRingTicks,c=t._clockViewModel;if(c.clockStep=po.SYSTEM_CLOCK_MULTIPLIER,Math.abs(s)===wS){c.multiplier=s>0?a[a.length-1]:a[0];return}let u=cCt(s,a);if(t.snapToTicks)u=a[TZ(u,a)];else if(u!==0){let f=Math.abs(u);if(f>100){let d=f.toFixed(0).length-2,p=Math.pow(10,d);u=Math.round(u/p)*p|0}else f>f0?u=Math.round(u):f>1?u=+u.toFixed(1):f>0&&(u=+u.toFixed(2))}c.multiplier=u}}),this._canAnimate=void 0,be.defineProperty(this,"_canAnimate",function(){let s=t._clockViewModel,a=s.clockRange;if(t.shuttleRingDragging||a===Yr.UNBOUNDED)return!0;let c=s.multiplier,u=s.currentTime,f=s.startTime,d=!1;if(a===Yr.LOOP_STOP)d=K.greaterThan(u,f)||u.equals(f)&&c>0;else{let p=s.stopTime;d=K.greaterThan(u,f)&&K.lessThan(u,p)||u.equals(f)&&c>0||u.equals(p)&&c<0}return d||(s.shouldAnimate=!1),d}),this._isSystemTimeAvailable=void 0,be.defineProperty(this,"_isSystemTimeAvailable",function(){let s=t._clockViewModel;if(s.clockRange===Yr.UNBOUNDED)return!0;let c=s.systemTime;return K.greaterThanOrEquals(c,s.startTime)&&K.lessThanOrEquals(c,s.stopTime)}),this._isAnimating=void 0,be.defineProperty(this,"_isAnimating",function(){return t._clockViewModel.shouldAnimate&&(t._canAnimate||t.shuttleRingDragging)});let n=vn(function(){let s=t._clockViewModel;s.shouldAnimate?s.shouldAnimate=!1:t._canAnimate&&(s.shouldAnimate=!0)});this._pauseViewModel=new Vb(n,{toggled:be.computed(function(){return!t._isAnimating}),tooltip:"Pause"});let i=vn(function(){let s=t._clockViewModel,a=s.multiplier;a>0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playReverseViewModel=new Vb(i,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier<0}),tooltip:"Play Reverse"});let o=vn(function(){let s=t._clockViewModel,a=s.multiplier;a<0&&(s.multiplier=-a),s.shouldAnimate=!0});this._playForwardViewModel=new Vb(o,{toggled:be.computed(function(){return t._isAnimating&&e.multiplier>0&&e.clockStep!==po.SYSTEM_CLOCK}),tooltip:"Play Forward"});let r=vn(function(){t._clockViewModel.clockStep=po.SYSTEM_CLOCK},be.getObservable(this,"_isSystemTimeAvailable"));this._playRealtimeViewModel=new Vb(r,{toggled:be.computed(function(){return e.clockStep===po.SYSTEM_CLOCK}),tooltip:be.computed(function(){return t._isSystemTimeAvailable?"Today (real-time)":"Current time not in range"})}),this._slower=vn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=TZ(c,a)-1;u>=0&&(s.multiplier=a[u])}),this._faster=vn(function(){let s=t._clockViewModel,a=t._allShuttleRingTicks,c=s.multiplier,u=TZ(c,a)+1;u<a.length&&(s.multiplier=a[u])})}Xf.defaultDateFormatter=function(e,t){let n=K.toGregorianDate(e);return`${aCt[n.month-1]} ${n.day} ${n.year}`};Xf.defaultTicks=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800];Xf.defaultTimeFormatter=function(e,t){let n=K.toGregorianDate(e),i=Math.round(n.millisecond);return Math.abs(t._clockViewModel.multiplier)<1?`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")}.${i.toString().padStart(3,"0")}`:`${n.hour.toString().padStart(2,"0")}:${n.minute.toString().padStart(2,"0")}:${n.second.toString().padStart(2,"0")} UTC`};Xf.prototype.getShuttleRingTicks=function(){return this._sortedFilteredPositiveTicks.slice(0)};Xf.prototype.setShuttleRingTicks=function(e){let t,n,i,o={},r=this._sortedFilteredPositiveTicks;for(r.length=0,t=0,n=e.length;t<n;++t)i=e[t],o.hasOwnProperty(i)||(o[i]=!0,r.push(i));r.sort(WAe);let s=[];for(n=r.length,t=n-1;t>=0;--t)i=r[t],i!==0&&s.push(-i);Array.prototype.push.apply(s,r),this._allShuttleRingTicks=s};Object.defineProperties(Xf.prototype,{slower:{get:function(){return this._slower}},faster:{get:function(){return this._faster}},clockViewModel:{get:function(){return this._clockViewModel}},pauseViewModel:{get:function(){return this._pauseViewModel}},playReverseViewModel:{get:function(){return this._playReverseViewModel}},playForwardViewModel:{get:function(){return this._playForwardViewModel}},playRealtimeViewModel:{get:function(){return this._playRealtimeViewModel}},dateFormatter:{get:function(){return this._dateFormatter},set:function(e){this._dateFormatter=e}},timeFormatter:{get:function(){return this._timeFormatter},set:function(e){this._timeFormatter=e}}});Xf._maxShuttleRingAngle=wS;Xf._realtimeShuttleRingAngle=f0;var O8=Xf;function jAe(e){e=y(e,y.EMPTY_OBJECT);let t=e.globe,n=y(e.imageryProviderViewModels,[]),i=y(e.terrainProviderViewModels,[]);this._globe=t,this.imageryProviderViewModels=n.slice(0),this.terrainProviderViewModels=i.slice(0),this.dropDownVisible=!1,be.track(this,["imageryProviderViewModels","terrainProviderViewModels","dropDownVisible"]);let o=be.getObservable(this,"imageryProviderViewModels"),r=be.pureComputed(function(){let d=o(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._imageryProviders=r;let s=be.getObservable(this,"terrainProviderViewModels"),a=be.pureComputed(function(){let d=s(),p={},g;for(g=0;g<d.length;g++){let b=d[g],T=b.category;l(p[T])?p[T].push(b):p[T]=[b]}let m=Object.keys(p),x=[];for(g=0;g<m.length;g++){let b=m[g];x.push({name:b,providers:p[b]})}return x});this._terrainProviders=a,this.buttonTooltip=void 0,be.defineProperty(this,"buttonTooltip",function(){let d=this.selectedImagery,p=this.selectedTerrain,g=l(d)?d.name:void 0,m=l(p)?p.name:void 0;return l(g)&&l(m)?`${g} +${m}`:l(g)?g:m}),this.buttonImageUrl=void 0,be.defineProperty(this,"buttonImageUrl",function(){let d=this.selectedImagery;if(l(d))return d.iconUrl}),this.selectedImagery=void 0;let c=be.observable();this._currentImageryLayers=[],be.defineProperty(this,"selectedImagery",{get:function(){return c()},set:function(d){if(c()===d){this.dropDownVisible=!1;return}let p,g=this._currentImageryLayers,m=g.length,x=this._globe.imageryLayers,b=!1;for(p=0;p<m;p++){let T=x.length;for(let A=0;A<T;A++){let C=x.get(A);if(C===g[p]){x.remove(C),b=!0;break}}}if(l(d)){let T=d.creationCommand();if(Array.isArray(T)){let A=T.length;for(this._currentImageryLayers=[],p=A-1;p>=0;p--){let C=ac.fromProviderAsync(T[p]);x.add(C,0),this._currentImageryLayers.push(C)}}else{this._currentImageryLayers=[];let A=ac.fromProviderAsync(T);if(A.name=d.name,b)x.add(A,0);else{let C=x.get(0);l(C)&&x.remove(C),x.add(A,0)}this._currentImageryLayers.push(A)}}c(d),this.dropDownVisible=!1}}),this.selectedTerrain=void 0;let u=be.observable();be.defineProperty(this,"selectedTerrain",{get:function(){return u()},set:function(d){if(u()===d){this.dropDownVisible=!1;return}let p;if(l(d)&&(p=d.creationCommand()),l(p)&&!l(p.then))this._globe.depthTestAgainstTerrain=!(p instanceof c_),this._globe.terrainProvider=p;else if(l(p)){let g=!1,m=this._globe.terrainProviderChanged.addEventListener(()=>{g=!0,m()}),b=new b8(p).readyEvent.addEventListener(T=>{g||(this._globe.depthTestAgainstTerrain=!(T instanceof c_),this._globe.terrainProvider=T,b())})}u(d),this.dropDownVisible=!1}});let f=this;this._toggleDropDown=vn(function(){f.dropDownVisible=!f.dropDownVisible}),this.selectedImagery=y(e.selectedImageryProviderViewModel,n[0]),this.selectedTerrain=e.selectedTerrainProviderViewModel}Object.defineProperties(jAe.prototype,{toggleDropDown:{get:function(){return this._toggleDropDown}},globe:{get:function(){return this._globe}}});var M8=jAe;function L8(e,t){e=Rn(e);let n=new M8(t),i=document.createElement("button");i.type="button",i.className="cesium-button cesium-toolbar-button",i.setAttribute("data-bind","attr: { title: buttonTooltip },click: toggleDropDown"),e.appendChild(i);let o=document.createElement("img");o.setAttribute("draggable","false"),o.className="cesium-baseLayerPicker-selected",o.setAttribute("data-bind","attr: { src: buttonImageUrl }, visible: !!buttonImageUrl"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-baseLayerPicker-dropDown",r.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-dropDown-visible" : dropDownVisible }'),e.appendChild(r);let s=document.createElement("div");s.className="cesium-baseLayerPicker-sectionTitle",s.setAttribute("data-bind","visible: imageryProviderViewModels.length > 0"),s.innerHTML="Imagery",r.appendChild(s);let a=document.createElement("div");a.className="cesium-baseLayerPicker-section",a.setAttribute("data-bind","foreach: _imageryProviders"),r.appendChild(a);let c=document.createElement("div");c.className="cesium-baseLayerPicker-category",a.appendChild(c);let u=document.createElement("div");u.className="cesium-baseLayerPicker-categoryTitle",u.setAttribute("data-bind","text: name"),c.appendChild(u);let f=document.createElement("div");f.className="cesium-baseLayerPicker-choices",f.setAttribute("data-bind","foreach: providers"),c.appendChild(f);let d=document.createElement("div");d.className="cesium-baseLayerPicker-item",d.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedImagery },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedImagery = $data; }'),f.appendChild(d);let p=document.createElement("img");p.className="cesium-baseLayerPicker-itemIcon",p.setAttribute("data-bind","attr: { src: iconUrl }"),p.setAttribute("draggable","false"),d.appendChild(p);let g=document.createElement("div");g.className="cesium-baseLayerPicker-itemLabel",g.setAttribute("data-bind","text: name"),d.appendChild(g);let m=document.createElement("div");m.className="cesium-baseLayerPicker-sectionTitle",m.setAttribute("data-bind","visible: terrainProviderViewModels.length > 0"),m.innerHTML="Terrain",r.appendChild(m);let x=document.createElement("div");x.className="cesium-baseLayerPicker-section",x.setAttribute("data-bind","foreach: _terrainProviders"),r.appendChild(x);let b=document.createElement("div");b.className="cesium-baseLayerPicker-category",x.appendChild(b);let T=document.createElement("div");T.className="cesium-baseLayerPicker-categoryTitle",T.setAttribute("data-bind","text: name"),b.appendChild(T);let A=document.createElement("div");A.className="cesium-baseLayerPicker-choices",A.setAttribute("data-bind","foreach: providers"),b.appendChild(A);let C=document.createElement("div");C.className="cesium-baseLayerPicker-item",C.setAttribute("data-bind",'css: { "cesium-baseLayerPicker-selectedItem" : $data === $parents[1].selectedTerrain },attr: { title: tooltip },visible: creationCommand.canExecute,click: function($data) { $parents[1].selectedTerrain = $data; }'),A.appendChild(C);let S=document.createElement("img");S.className="cesium-baseLayerPicker-itemIcon",S.setAttribute("data-bind","attr: { src: iconUrl }"),S.setAttribute("draggable","false"),C.appendChild(S);let v=document.createElement("div");v.className="cesium-baseLayerPicker-itemLabel",v.setAttribute("data-bind","text: name"),C.appendChild(v),be.applyBindings(n,i),be.applyBindings(n,r),this._viewModel=n,this._container=e,this._element=i,this._dropPanel=r,this._closeDropDown=function(D){i.contains(D.target)||r.contains(D.target)||(n.dropDownVisible=!1)},jt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(L8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});L8.prototype.isDestroyed=function(){return!1};L8.prototype.destroy=function(){return jt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._element),be.cleanNode(this._dropPanel),this._container.removeChild(this._element),this._container.removeChild(this._dropPanel),ue(this)};var N8=L8;function qAe(e){let t=e.creationFunction;l(t.canExecute)||(t=vn(t)),this._creationCommand=t,this.name=e.name,this.tooltip=e.tooltip,this.iconUrl=e.iconUrl,this._category=y(e.category,""),be.track(this,["name","tooltip","iconUrl"])}Object.defineProperties(qAe.prototype,{creationCommand:{get:function(){return this._creationCommand}},category:{get:function(){return this._category}}});var ds=qAe;function uCt(){let e=[],t=devicePixelRatio>=2;return e.push(new ds({name:"Bing Maps Aerial",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerial.png"),tooltip:"Bing Maps aerial imagery, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return Vy({style:ky.AERIAL})}})),e.push(new ds({name:"Bing Maps Aerial with Labels",iconUrl:nn("Widgets/Images/ImageryProviders/bingAerialLabels.png"),tooltip:"Bing Maps aerial imagery with labels, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return Vy({style:ky.AERIAL_WITH_LABELS})}})),e.push(new ds({name:"Bing Maps Roads",iconUrl:nn("Widgets/Images/ImageryProviders/bingRoads.png"),tooltip:"Bing Maps standard road maps, provided by Cesium ion",category:"Cesium ion",creationFunction:function(){return Vy({style:ky.ROAD})}})),e.push(new ds({name:"ArcGIS World Imagery",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldImagery.png"),tooltip:`ArcGIS World Imagery provides one meter or better satellite and aerial imagery in many parts of the world and lower resolution satellite imagery worldwide. The map includes 15m TerraColor imagery at small and mid-scales (~1:591M down to ~1:288k) for the world. The map features Maxar imagery at 0.3m resolution for select metropolitan areas around the world, 0.5m resolution across the United States and parts of Western Europe, and 1m resolution imagery across the rest of the world. In addition to commercial sources, the World Imagery map features high-resolution aerial photography contributed by the GIS User Community. This imagery ranges from 0.3m to 0.03m resolution (down to ~1:280 nin select communities). For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=10df2279f9684e4a9f6a7f08febac2a9`,category:"Other",creationFunction:function(){return Fy.fromBasemapType(Em.SATELLITE,{enablePickFeatures:!1})}})),e.push(new ds({name:"ArcGIS World Hillshade",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldHillshade.png"),tooltip:`ArcGIS World Hillshade map portrays elevation as an artistic hillshade. This map is designed to be used as a backdrop for topographical, soil, hydro, landcover or other outdoor recreational maps. The map was compiled from a variety of sources from several data providers. The basemap has global coverage down to a scale of ~1:72k. In select areas of the United States and Europe, coverage is available down to ~1:9k. For more information on this map, including the terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1b243539f4514b6ba35e7d995890db1d`,category:"Other",creationFunction:function(){return Fy.fromBasemapType(Em.HILLSHADE,{enablePickFeatures:!1})}})),e.push(new ds({name:"Esri World Ocean",iconUrl:nn("Widgets/Images/ImageryProviders/ArcGisMapServiceWorldOcean.png"),tooltip:`ArcGIS World Ocean map is designed to be used as a base map by marine GIS professionals and as a reference map by anyone interested in ocean data. The base map features marine bathymetry. Land features include inland waters and roads overlaid on land cover and shaded relief imagery. The map was compiled from a variety of best available sources from several data providers, including General Bathymetric Chart of the Oceans GEBCO_08 Grid, National Oceanic and Atmospheric Administration (NOAA), and National Geographic, Garmin, HERE, Geonames.org, and Esri, and various other contributors. The base map currently provides coverage for the world down to a scale of ~1:577k, and coverage down to 1:72k in US coastal areas, and various other areas. Coverage down to ~ 1:9k is available limited areas based on regional hydrographic survey data. The base map was designed and developed by Esri. For more information on this map, including our terms of use, visit us online at +https://www.arcgis.com/home/item.html?id=1e126e7520f9466c9ca28b8f28b5e500`,category:"Other",creationFunction:function(){return Fy.fromBasemapType(Em.OCEANS,{enablePickFeatures:!1})}})),e.push(new ds({name:"Open\xADStreet\xADMap",iconUrl:nn("Widgets/Images/ImageryProviders/openStreetMap.png"),tooltip:`OpenStreetMap (OSM) is a collaborative project to create a free editable map of the world. +http://www.openstreetmap.org`,category:"Other",creationFunction:function(){return new l0({url:"https://tile.openstreetmap.org/"})}})),e.push(new ds({name:"Stadia x Stamen Watercolor",iconUrl:nn("Widgets/Images/ImageryProviders/stamenWatercolor.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and reminiscent of hand drawn maps, the watercolor maps from Stamen Design apply raster effect area washes and organic edges over a paper texture to add warm pop to any map. +https://docs.stadiamaps.com/map-styles/stamen-watercolor/`,category:"Other",creationFunction:function(){return new l0({url:"https://tiles.stadiamaps.com/tiles/stamen_watercolor/",fileExtension:"jpg",credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ds({name:"Stadia x Stamen Toner",iconUrl:nn("Widgets/Images/ImageryProviders/stamenToner.png"),tooltip:`Based on the original basemaps created for the Knight Foundation and the most popular of the excellent styles from Stamen Design, these high-contrast B+W (black and white) maps are the perfect backdrop for your colorful and eye-catching overlays. +https://docs.stadiamaps.com/map-styles/stamen-toner/`,category:"Other",creationFunction:function(){return new l0({url:"https://tiles.stadiamaps.com/tiles/stamen_toner/",retinaTiles:t,credit:`© <a href="https://stamen.com/" target="_blank">Stamen Design</a> + © <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ds({name:"Stadia Alidade Smooth",iconUrl:nn("Widgets/Images/ImageryProviders/stadiaAlidadeSmooth.png"),tooltip:`Stadia's custom Alidade Smooth style is designed for maps that use a lot of markers or overlays. It features a muted color scheme and fewer points of interest to allow your added data to shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth/`,category:"Other",creationFunction:function(){return new l0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ds({name:"Stadia Alidade Smooth Dark",iconUrl:nn("Widgets/Images/ImageryProviders/stadiaAlidadeSmoothDark.png"),tooltip:`Stadia Alidade Smooth Dark, like its lighter cousin, is also designed to stay out of the way. It just flips the dark mode switch on the color scheme. With the lights out, your data can now literally shine. +https://docs.stadiamaps.com/map-styles/alidade-smooth-dark/`,category:"Other",creationFunction:function(){return new l0({url:"https://tiles.stadiamaps.com/tiles/alidade_smooth_dark/",retinaTiles:t,credit:`© <a href="https://www.stadiamaps.com/" target="_blank">Stadia Maps</a> + © <a href="https://openmaptiles.org/" target="_blank">OpenMapTiles</a> + © <a href="https://www.openstreetmap.org/about/" target="_blank">OpenStreetMap contributors</a>`})}})),e.push(new ds({name:"Sentinel-2",iconUrl:nn("Widgets/Images/ImageryProviders/sentinel-2.png"),tooltip:"Sentinel-2 cloudless by EOX IT Services GmbH (Contains modified Copernicus Sentinel data 2016 and 2017).",category:"Cesium ion",creationFunction:function(){return By.fromAssetId(3954)}})),e.push(new ds({name:"Blue Marble",iconUrl:nn("Widgets/Images/ImageryProviders/blueMarble.png"),tooltip:"Blue Marble Next Generation July, 2004 imagery from NASA.",category:"Cesium ion",creationFunction:function(){return By.fromAssetId(3845)}})),e.push(new ds({name:"Earth at night",iconUrl:nn("Widgets/Images/ImageryProviders/earthAtNight.png"),tooltip:"The Earth at night, also known as The Black Marble, is a 500 meter resolution global composite imagery layer released by NASA.",category:"Cesium ion",creationFunction:function(){return By.fromAssetId(3812)}})),e.push(new ds({name:"Natural Earth\xA0II",iconUrl:nn("Widgets/Images/ImageryProviders/naturalEarthII.png"),tooltip:`Natural Earth II, darkened for contrast. +http://www.naturalearthdata.com/`,category:"Cesium ion",creationFunction:function(){return ob.fromUrl(nn("Assets/Textures/NaturalEarthII"))}})),e}var F8=uCt;function fCt(){let e=[];return e.push(new ds({name:"WGS84 Ellipsoid",iconUrl:nn("Widgets/Images/TerrainProviders/Ellipsoid.png"),tooltip:"WGS84 standard ellipsoid, also known as EPSG:4326",category:"Cesium ion",creationFunction:function(){return new c_({ellipsoid:ee.WGS84})}})),e.push(new ds({name:"Cesium World Terrain",iconUrl:nn("Widgets/Images/TerrainProviders/CesiumWorldTerrain.png"),tooltip:"High-resolution global terrain tileset curated from several datasources and hosted by Cesium ion",category:"Cesium ion",creationFunction:function(){return _S({requestWaterMask:!0,requestVertexNormals:!0})}})),e}var B8=fCt;function dCt(e){return function(t){let n=e._scene.pick(t.position);l(n)&&n.primitive instanceof Ca&&(e.tileset=n.primitive),e.pickActive=!1}}function XAe(e,t){t?e._eventHandler.setInputAction(function(n){let i=e._scene.pick(n.endPosition);l(i)&&i.primitive instanceof Ca&&(e.tileset=i.primitive)},bn.MOUSE_MOVE):(e._eventHandler.removeInputAction(bn.MOUSE_MOVE),e.picking=e.picking)}var hCt={maximumFractionDigits:3};function BP(e){let t=e/1048576;return t<1?t.toLocaleString(void 0,hCt):Math.round(t).toLocaleString()}function kP(e,t){if(!l(e))return"";let n=t?e._statisticsPerPass[Fo.PICK]:e._statisticsPerPass[Fo.RENDER],i='<ul class="cesium-cesiumInspector-statistics">';return i+=`<li><strong>Visited: </strong>${n.visited.toLocaleString()}</li><li><strong>Selected: </strong>${n.selected.toLocaleString()}</li><li><strong>Commands: </strong>${n.numberOfCommands.toLocaleString()}</li>`,i+="</ul>",t||(i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Requests: </strong>${n.numberOfPendingRequests.toLocaleString()}</li><li><strong>Attempted: </strong>${n.numberOfAttemptedRequests.toLocaleString()}</li><li><strong>Processing: </strong>${n.numberOfTilesProcessing.toLocaleString()}</li><li><strong>Content Ready: </strong>${n.numberOfTilesWithContentReady.toLocaleString()}</li><li><strong>Total: </strong>${n.numberOfTilesTotal.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Features Selected: </strong>${n.numberOfFeaturesSelected.toLocaleString()}</li><li><strong>Features Loaded: </strong>${n.numberOfFeaturesLoaded.toLocaleString()}</li><li><strong>Points Selected: </strong>${n.numberOfPointsSelected.toLocaleString()}</li><li><strong>Points Loaded: </strong>${n.numberOfPointsLoaded.toLocaleString()}</li><li><strong>Triangles Selected: </strong>${n.numberOfTrianglesSelected.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Tiles styled: </strong>${n.numberOfTilesStyled.toLocaleString()}</li><li><strong>Features styled: </strong>${n.numberOfFeaturesStyled.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Children Union Culled: </strong>${n.numberOfTilesCulledWithChildrenUnion.toLocaleString()}</li>`,i+="</ul>",i+='<ul class="cesium-cesiumInspector-statistics">',i+=`<li><strong>Geometry Memory (MB): </strong>${BP(n.geometryByteLength)}</li><li><strong>Texture Memory (MB): </strong>${BP(n.texturesByteLength)}</li><li><strong>Batch Table Memory (MB): </strong>${BP(n.batchTableByteLength)}</li>`,i+="</ul>"),i}function KAe(){let e=Ai.statistics;return` + <ul class="cesium-cesiumInspector-statistics"> + <li><strong>Geometry Memory (MB): </strong>${BP(e.geometryByteLength)}</li> + <li><strong>Texture Memory (MB): </strong>${BP(e.texturesByteLength)}</li> + </ul> + `}var mCt=[{text:"Highlight",value:Jl.HIGHLIGHT},{text:"Replace",value:Jl.REPLACE},{text:"Mix",value:Jl.MIX}],YAe=new z(1,1,0,.4),pCt=new z,k8=new z;function ma(e,t){let n=this,i=e.canvas;this._eventHandler=new Hf(i),this._scene=e,this._performanceContainer=t,this._canvas=i,this._performanceDisplay=new jy({container:t}),this._statisticsText="",this._pickStatisticsText="",this._resourceCacheStatisticsText="",this._editorError="",this.performance=!1,this.showStatistics=!0,this.showPickStatistics=!0,this.showResourceCacheStatistics=!1,this.inspectorVisible=!0,this.tilesetVisible=!1,this.displayVisible=!1,this.updateVisible=!1,this.loggingVisible=!1,this.styleVisible=!1,this.tileDebugLabelsVisible=!1,this.optimizationVisible=!1,this.styleString="{}",this.hasEnabledWireframe=!1,this._tileset=void 0,this._feature=void 0,this._tile=void 0,be.track(this,["performance","inspectorVisible","_statisticsText","_pickStatisticsText","_resourceCacheStatisticsText","_editorError","showPickStatistics","showStatistics","showResourceCacheStatistics","tilesetVisible","displayVisible","updateVisible","loggingVisible","styleVisible","optimizationVisible","tileDebugLabelsVisible","styleString","_feature","_tile","_tileset","hasEnabledWireframe"]),this._properties=be.observable({}),this.properties=[],be.defineProperty(this,"properties",function(){let k=[],W=n._properties();for(let q in W)W.hasOwnProperty(q)&&k.push(q);return k});let o=be.observable();be.defineProperty(this,"dynamicScreenSpaceError",{get:function(){return o()},set:function(k){o(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceError=k)}}),this.dynamicScreenSpaceError=!1;let r=be.observable();be.defineProperty(this,"colorBlendMode",{get:function(){return r()},set:function(k){r(k),l(n._tileset)&&(n._tileset.colorBlendMode=k,n._scene.requestRender())}}),this.colorBlendMode=Jl.HIGHLIGHT;let s=be.observable(),a=be.observable();be.defineProperty(this,"picking",{get:function(){return a()},set:function(k){a(k),k?n._eventHandler.setInputAction(function(W){let q=e.pick(W.endPosition);if(q instanceof Zs?(n.feature=q,n.tile=q.content.tile):l(q)&&l(q.content)?(n.feature=void 0,n.tile=q.content.tile):(n.feature=void 0,n.tile=void 0),!!l(n._tileset)){if(s&&l(q)&&l(q.content)){let J;e.pickPositionSupported&&(J=e.pickPosition(W.endPosition),l(J)&&(n._tileset.debugPickPosition=J)),n._tileset.debugPickedTile=q.content.tile}else n._tileset.debugPickedTile=void 0;n._scene.requestRender()}},bn.MOUSE_MOVE):(n.feature=void 0,n.tile=void 0,n._eventHandler.removeInputAction(bn.MOUSE_MOVE))}}),this.picking=!0;let c=be.observable();be.defineProperty(this,"colorize",{get:function(){return c()},set:function(k){c(k),l(n._tileset)&&(n._tileset.debugColorizeTiles=k,n._scene.requestRender())}}),this.colorize=!1;let u=be.observable();be.defineProperty(this,"wireframe",{get:function(){return u()},set:function(k){u(k),l(n._tileset)&&(n._tileset.debugWireframe=k,n._scene.requestRender())}}),this.wireframe=!1;let f=be.observable();be.defineProperty(this,"showBoundingVolumes",{get:function(){return f()},set:function(k){f(k),l(n._tileset)&&(n._tileset.debugShowBoundingVolume=k,n._scene.requestRender())}}),this.showBoundingVolumes=!1;let d=be.observable();be.defineProperty(this,"showContentBoundingVolumes",{get:function(){return d()},set:function(k){d(k),l(n._tileset)&&(n._tileset.debugShowContentBoundingVolume=k,n._scene.requestRender())}}),this.showContentBoundingVolumes=!1;let p=be.observable();be.defineProperty(this,"showRequestVolumes",{get:function(){return p()},set:function(k){p(k),l(n._tileset)&&(n._tileset.debugShowViewerRequestVolume=k,n._scene.requestRender())}}),this.showRequestVolumes=!1;let g=be.observable();be.defineProperty(this,"freezeFrame",{get:function(){return g()},set:function(k){g(k),l(n._tileset)&&(n._tileset.debugFreezeFrame=k,n._scene.debugShowFrustumPlanes=k,n._scene.requestRender())}}),this.freezeFrame=!1,be.defineProperty(this,"showOnlyPickedTileDebugLabel",{get:function(){return s()},set:function(k){s(k),l(n._tileset)&&(n._tileset.debugPickedTileLabelOnly=k,n._scene.requestRender())}}),this.showOnlyPickedTileDebugLabel=!1;let m=be.observable();be.defineProperty(this,"showGeometricError",{get:function(){return m()},set:function(k){m(k),l(n._tileset)&&(n._tileset.debugShowGeometricError=k,n._scene.requestRender())}}),this.showGeometricError=!1;let x=be.observable();be.defineProperty(this,"showRenderingStatistics",{get:function(){return x()},set:function(k){x(k),l(n._tileset)&&(n._tileset.debugShowRenderingStatistics=k,n._scene.requestRender())}}),this.showRenderingStatistics=!1;let b=be.observable();be.defineProperty(this,"showMemoryUsage",{get:function(){return b()},set:function(k){b(k),l(n._tileset)&&(n._tileset.debugShowMemoryUsage=k,n._scene.requestRender())}}),this.showMemoryUsage=!1;let T=be.observable();be.defineProperty(this,"showUrl",{get:function(){return T()},set:function(k){T(k),l(n._tileset)&&(n._tileset.debugShowUrl=k,n._scene.requestRender())}}),this.showUrl=!1;let A=be.observable();be.defineProperty(this,"maximumScreenSpaceError",{get:function(){return A()},set:function(k){k=Number(k),isNaN(k)||(A(k),l(n._tileset)&&(n._tileset.maximumScreenSpaceError=k))}}),this.maximumScreenSpaceError=16;let C=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorDensity",{get:function(){return C()},set:function(k){k=Number(k),isNaN(k)||(C(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=k))}}),this.dynamicScreenSpaceErrorDensity=2e-4,this.dynamicScreenSpaceErrorDensitySliderValue=void 0,be.defineProperty(this,"dynamicScreenSpaceErrorDensitySliderValue",{get:function(){return Math.pow(C(),1/6)},set:function(k){let W=Math.pow(k,6);C(W),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorDensity=W)}});let S=be.observable();be.defineProperty(this,"dynamicScreenSpaceErrorFactor",{get:function(){return S()},set:function(k){k=Number(k),isNaN(k)||(S(k),l(n._tileset)&&(n._tileset.dynamicScreenSpaceErrorFactor=k))}}),this.dynamicScreenSpaceErrorFactor=24;let v=dCt(this),D=be.observable();be.defineProperty(this,"pickActive",{get:function(){return D()},set:function(k){D(k),k?n._eventHandler.setInputAction(v,bn.LEFT_CLICK):n._eventHandler.removeInputAction(bn.LEFT_CLICK)}});let O=be.observable();be.defineProperty(this,"pointCloudShading",{get:function(){return O()},set:function(k){O(k),l(n._tileset)&&(n._tileset.pointCloudShading.attenuation=k)}}),this.pointCloudShading=!1;let R=be.observable();be.defineProperty(this,"geometricErrorScale",{get:function(){return R()},set:function(k){k=Number(k),isNaN(k)||(R(k),l(n._tileset)&&(n._tileset.pointCloudShading.geometricErrorScale=k))}}),this.geometricErrorScale=1;let M=be.observable();be.defineProperty(this,"maximumAttenuation",{get:function(){return M()},set:function(k){k=Number(k),isNaN(k)||(M(k),l(n._tileset)&&(n._tileset.pointCloudShading.maximumAttenuation=k===0?void 0:k))}}),this.maximumAttenuation=0;let L=be.observable();be.defineProperty(this,"baseResolution",{get:function(){return L()},set:function(k){k=Number(k),isNaN(k)||(L(k),l(n._tileset)&&(n._tileset.pointCloudShading.baseResolution=k===0?void 0:k))}}),this.baseResolution=0;let _=be.observable();be.defineProperty(this,"eyeDomeLighting",{get:function(){return _()},set:function(k){_(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLighting=k)}}),this.eyeDomeLighting=!1;let E=be.observable();be.defineProperty(this,"eyeDomeLightingStrength",{get:function(){return E()},set:function(k){k=Number(k),isNaN(k)||(E(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingStrength=k))}}),this.eyeDomeLightingStrength=1;let w=be.observable();be.defineProperty(this,"eyeDomeLightingRadius",{get:function(){return w()},set:function(k){k=Number(k),isNaN(k)||(w(k),l(n._tileset)&&(n._tileset.pointCloudShading.eyeDomeLightingRadius=k))}}),this.eyeDomeLightingRadius=1,this.pickActive=!1;let I=be.observable();be.defineProperty(this,"skipLevelOfDetail",{get:function(){return I()},set:function(k){I(k),l(n._tileset)&&(n._tileset.skipLevelOfDetail=k)}}),this.skipLevelOfDetail=!0;let N=be.observable();be.defineProperty(this,"skipScreenSpaceErrorFactor",{get:function(){return N()},set:function(k){k=Number(k),isNaN(k)||(N(k),l(n._tileset)&&(n._tileset.skipScreenSpaceErrorFactor=k))}}),this.skipScreenSpaceErrorFactor=16;let B=be.observable();be.defineProperty(this,"baseScreenSpaceError",{get:function(){return B()},set:function(k){k=Number(k),isNaN(k)||(B(k),l(n._tileset)&&(n._tileset.baseScreenSpaceError=k))}}),this.baseScreenSpaceError=1024;let H=be.observable();be.defineProperty(this,"skipLevels",{get:function(){return H()},set:function(k){k=Number(k),isNaN(k)||(H(k),l(n._tileset)&&(n._tileset.skipLevels=k))}}),this.skipLevels=1;let V=be.observable();be.defineProperty(this,"immediatelyLoadDesiredLevelOfDetail",{get:function(){return V()},set:function(k){V(k),l(n._tileset)&&(n._tileset.immediatelyLoadDesiredLevelOfDetail=k)}}),this.immediatelyLoadDesiredLevelOfDetail=!1;let G=be.observable();be.defineProperty(this,"loadSiblings",{get:function(){return G()},set:function(k){G(k),l(n._tileset)&&(n._tileset.loadSiblings=k)}}),this.loadSiblings=!1,this._style=void 0,this._shouldStyle=!1,this._definedProperties=["properties","dynamicScreenSpaceError","colorBlendMode","picking","colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","maximumScreenSpaceError","dynamicScreenSpaceErrorDensity","baseScreenSpaceError","skipScreenSpaceErrorFactor","skipLevelOfDetail","skipLevels","immediatelyLoadDesiredLevelOfDetail","loadSiblings","dynamicScreenSpaceErrorDensitySliderValue","dynamicScreenSpaceErrorFactor","pickActive","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl","pointCloudShading","geometricErrorScale","maximumAttenuation","baseResolution","eyeDomeLighting","eyeDomeLightingStrength","eyeDomeLightingRadius"],this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()}),l(this._tileset)||XAe(this,!0)}Object.defineProperties(ma.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},statisticsText:{get:function(){return this._statisticsText}},pickStatisticsText:{get:function(){return this._pickStatisticsText}},resourceCacheStatisticsText:{get:function(){return this._resourceCacheStatisticsText}},colorBlendModes:{get:function(){return mCt}},editorError:{get:function(){return this._editorError}},tileset:{get:function(){return this._tileset},set:function(e){if(this._tileset=e,this._style=void 0,this.styleString="{}",this.feature=void 0,this.tile=void 0,l(e)){this._properties(e.properties);let t=["colorize","wireframe","showBoundingVolumes","showContentBoundingVolumes","showRequestVolumes","freezeFrame","showOnlyPickedTileDebugLabel","showGeometricError","showRenderingStatistics","showMemoryUsage","showUrl"],n=t.length;for(let o=0;o<n;++o){let r=t[o];this[r]=this[r]}this.maximumScreenSpaceError=e.maximumScreenSpaceError,this.dynamicScreenSpaceError=e.dynamicScreenSpaceError,this.dynamicScreenSpaceErrorDensity=e.dynamicScreenSpaceErrorDensity,this.dynamicScreenSpaceErrorFactor=e.dynamicScreenSpaceErrorFactor,this.colorBlendMode=e.colorBlendMode,this.skipLevelOfDetail=e.skipLevelOfDetail,this.skipScreenSpaceErrorFactor=e.skipScreenSpaceErrorFactor,this.baseScreenSpaceError=e.baseScreenSpaceError,this.skipLevels=e.skipLevels,this.immediatelyLoadDesiredLevelOfDetail=e.immediatelyLoadDesiredLevelOfDetail,this.loadSiblings=e.loadSiblings,this.hasEnabledWireframe=e._enableDebugWireframe;let i=e.pointCloudShading;this.pointCloudShading=i.attenuation,this.geometricErrorScale=i.geometricErrorScale,this.maximumAttenuation=i.maximumAttenuation?i.maximumAttenuation:0,this.baseResolution=i.baseResolution?i.baseResolution:0,this.eyeDomeLighting=i.eyeDomeLighting,this.eyeDomeLightingStrength=i.eyeDomeLightingStrength,this.eyeDomeLightingRadius=i.eyeDomeLightingRadius,this._scene.requestRender()}else this._properties({});this._statisticsText=kP(e,!1),this._pickStatisticsText=kP(e,!0),this._resourceCacheStatisticsText=KAe(),XAe(this,!1)}},feature:{get:function(){return this._feature},set:function(e){if(this._feature===e)return;let t=this._feature;l(t)&&!t.content.isDestroyed()&&(!this.colorize&&l(this._style)?t.color=l(this._style.color)?this._style.color.evaluateColor(t,pCt):z.WHITE:t.color=k8,this._scene.requestRender()),l(e)&&(z.clone(e.color,k8),e.color=YAe,this._scene.requestRender()),this._feature=e}},tile:{get:function(){return this._tile},set:function(e){if(this._tile===e)return;let t=this._tile;l(t)&&!t.isDestroyed()&&!AZ(t.content)&&(t.color=k8,this._scene.requestRender()),l(e)&&!AZ(e.content)&&(z.clone(e.color,k8),e.color=YAe,this._scene.requestRender()),this._tile=e}}});function AZ(e){if(!l(e))return!1;if(e.featuresLength>0)return!0;let t=e.innerContents;if(l(t)){let n=t.length;for(let i=0;i<n;++i)if(!AZ(t[i]))return!1;return!0}return!1}ma.prototype.togglePickTileset=function(){this.pickActive=!this.pickActive};ma.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};ma.prototype.toggleTileset=function(){this.tilesetVisible=!this.tilesetVisible};ma.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};ma.prototype.toggleUpdate=function(){this.updateVisible=!this.updateVisible};ma.prototype.toggleLogging=function(){this.loggingVisible=!this.loggingVisible};ma.prototype.toggleStyle=function(){this.styleVisible=!this.styleVisible};ma.prototype.toggleTileDebugLabels=function(){this.tileDebugLabelsVisible=!this.tileDebugLabelsVisible};ma.prototype.toggleOptimization=function(){this.optimizationVisible=!this.optimizationVisible};ma.prototype.trimTilesCache=function(){l(this._tileset)&&this._tileset.trimLoadedTiles()};ma.prototype.compileStyle=function(){let e=this._tileset;if(!(!l(e)||this.styleString===JSON.stringify(e.style))){this._editorError="";try{this.styleString.length===0&&(this.styleString="{}"),this._style=new xS(JSON.parse(this.styleString)),this._shouldStyle=!0,this._scene.requestRender()}catch(t){this._editorError=t.toString()}this.feature=this._feature,this.tile=this._tile}};ma.prototype.styleEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileStyle();return!0};ma.prototype._update=function(){let e=this._tileset;if(this.performance&&this._performanceDisplay.update(),l(e)){if(e.isDestroyed()){this.tile=void 0,this.feature=void 0,this.tileset=void 0;return}let t=e.style;this._style!==e.style&&(this._shouldStyle?(e.style=this._style,this._shouldStyle=!1):(this._style=t,this.styleString=JSON.stringify(t.style,null," ")))}this.showStatistics&&(this._statisticsText=kP(e,!1),this._pickStatisticsText=kP(e,!0),this._resourceCacheStatisticsText=KAe())};ma.prototype.isDestroyed=function(){return!1};ma.prototype.destroy=function(){this._eventHandler.destroy(),this._removePostRenderEvent();let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};ma.getStatistics=kP;var V8=ma;function U8(e,t){e=Rn(e);let n=document.createElement("div"),i=document.createElement("div");i.setAttribute("data-bind","visible: performance");let o=new V8(t,i);this._viewModel=o,this._container=e,this._element=n;let r=document.createElement("div");r.textContent="3D Tiles Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleInspector"),n.appendChild(r),n.className="cesium-cesiumInspector cesium-3DTilesInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",n.appendChild(s);let a=hc.createSection,c=hc.createCheckbox,u=hc.createRangeInput,f=hc.createButton,d=a(s,"Tileset","tilesetVisible","toggleTileset"),p=a(s,"Display","displayVisible","toggleDisplay"),g=a(s,"Update","updateVisible","toggleUpdate"),m=a(s,"Logging","loggingVisible","toggleLogging"),x=a(s,"Tile Debug Labels","tileDebugLabelsVisible","toggleTileDebugLabels"),b=a(s,"Style","styleVisible","toggleStyle"),T=a(s,"Optimization","optimizationVisible","toggleOptimization"),A=document.createElement("div");A.className="field-group";let C=document.createElement("label");C.className="field-label",C.appendChild(document.createTextNode("Properties: "));let S=document.createElement("div");S.setAttribute("data-bind","text: properties"),A.appendChild(C),A.appendChild(S),d.appendChild(A),d.appendChild(f("Pick Tileset","togglePickTileset","pickActive")),d.appendChild(f("Trim Tiles Cache","trimTilesCache")),d.appendChild(c("Enable Picking","picking")),p.appendChild(c("Colorize","colorize"));let v=p.appendChild(c("Wireframe","wireframe","_tileset === undefined || hasEnabledWireframe")),D=document.createElement("p");D.setAttribute("data-bind","visible: _tileset !== undefined && !hasEnabledWireframe"),D.setAttribute("class","cesium-3DTilesInspector-disabledElementsInfo"),D.innerText="Set enableDebugWireframe to true in the tileset constructor to enable this option.",v.appendChild(D),p.appendChild(c("Bounding Volumes","showBoundingVolumes")),p.appendChild(c("Content Volumes","showContentBoundingVolumes")),p.appendChild(c("Request Volumes","showRequestVolumes")),p.appendChild(c("Point Cloud Shading","pointCloudShading"));let O=document.createElement("div");O.setAttribute("data-bind","visible: pointCloudShading"),O.appendChild(u("Geometric Error Scale","geometricErrorScale",0,2,.01)),O.appendChild(u("Maximum Attenuation","maximumAttenuation",0,32,1)),O.appendChild(u("Base Resolution","baseResolution",0,1,.01)),O.appendChild(c("Eye Dome Lighting (EDL)","eyeDomeLighting")),p.appendChild(O);let R=document.createElement("div");R.setAttribute("data-bind","visible: eyeDomeLighting"),R.appendChild(u("EDL Strength","eyeDomeLightingStrength",0,2,.1)),R.appendChild(u("EDL Radius","eyeDomeLightingRadius",0,4,.1)),O.appendChild(R),g.appendChild(c("Freeze Frame","freezeFrame")),g.appendChild(c("Dynamic Screen Space Error","dynamicScreenSpaceError"));let M=document.createElement("div");M.appendChild(u("Maximum Screen Space Error","maximumScreenSpaceError",0,128,1)),g.appendChild(M);let L=document.createElement("div");L.setAttribute("data-bind","visible: dynamicScreenSpaceError"),L.appendChild(u("Screen Space Error Density","dynamicScreenSpaceErrorDensitySliderValue",0,1,.005,"dynamicScreenSpaceErrorDensity")),L.appendChild(u("Screen Space Error Factor","dynamicScreenSpaceErrorFactor",1,32,.1)),g.appendChild(L),m.appendChild(c("Performance","performance")),m.appendChild(i),m.appendChild(c("Statistics","showStatistics"));let _=document.createElement("div");_.className="cesium-3dTilesInspector-statistics",_.setAttribute("data-bind","html: statisticsText, visible: showStatistics"),m.appendChild(_),m.appendChild(c("Pick Statistics","showPickStatistics"));let E=document.createElement("div");E.className="cesium-3dTilesInspector-statistics",E.setAttribute("data-bind","html: pickStatisticsText, visible: showPickStatistics"),m.appendChild(E),m.appendChild(c("Resource Cache Statistics","showResourceCacheStatistics"));let w=document.createElement("div");w.className="cesium-3dTilesInspector-statistics",w.setAttribute("data-bind","html: resourceCacheStatisticsText, visible: showResourceCacheStatistics"),m.appendChild(w);let I=document.createElement("div");b.appendChild(I),I.appendChild(document.createTextNode("Color Blend Mode: "));let N=document.createElement("select");N.setAttribute("data-bind",'options: colorBlendModes, optionsText: "text", optionsValue: "value", value: colorBlendMode'),I.appendChild(N);let B=document.createElement("textarea");B.setAttribute("data-bind","textInput: styleString, event: { keydown: styleEditorKeyPress }"),I.className="cesium-cesiumInspector-styleEditor",I.appendChild(B);let H=f("Compile (Ctrl+Enter)","compileStyle");I.appendChild(H);let V=document.createElement("div");V.className="cesium-cesiumInspector-error",V.setAttribute("data-bind","text: editorError"),I.appendChild(V),x.appendChild(c("Show Picked Only","showOnlyPickedTileDebugLabel")),x.appendChild(c("Geometric Error","showGeometricError")),x.appendChild(c("Rendering Statistics","showRenderingStatistics")),x.appendChild(c("Memory Usage (MB)","showMemoryUsage")),x.appendChild(c("Url","showUrl")),T.appendChild(c("Skip Tile LODs","skipLevelOfDetail"));let G=document.createElement("div");G.appendChild(u("Skip SSE Factor","skipScreenSpaceErrorFactor",1,50,1)),T.appendChild(G);let k=document.createElement("div");k.appendChild(u("SSE before skipping LOD","baseScreenSpaceError",0,4096,1)),T.appendChild(k);let W=document.createElement("div");W.appendChild(u("Min. levels to skip","skipLevels",0,10,1)),T.appendChild(W),T.appendChild(c("Load only tiles that meet the max SSE.","immediatelyLoadDesiredLevelOfDetail")),T.appendChild(c("Load siblings of visible tiles","loadSiblings")),be.applyBindings(o,n)}Object.defineProperties(U8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});U8.prototype.isDestroyed=function(){return!1};U8.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var z8=U8;function _Ct(e){let t;if(l(e)){t="Command Statistics";let n=e.commandsInFrustums;for(let i in n)if(n.hasOwnProperty(i)){let o=parseInt(i,10),r;if(o===7)r="1, 2 and 3";else{let s=[];for(let a=2;a>=0;a--){let c=Math.pow(2,a);o>=c&&(s.push(a+1),o-=c)}r=s.reverse().join(" and ")}t+=`<br>    ${n[i]} in frustum ${r}`}t+=`<br>Total: ${e.totalCommands}`}return t}function CZ(e,t,n){let i=Math.min(n,t);return i=Math.max(i,e),i}var gCt=new mn,yCt=new h;function VP(e,t){let n=this,i=e.canvas,o=new Hf(i);this._eventHandler=o,this._scene=e,this._canvas=i,this._primitive=void 0,this._tile=void 0,this._modelMatrixPrimitive=void 0,this._performanceDisplay=void 0,this._performanceContainer=t;let r=this._scene.globe;r.depthTestAgainstTerrain=!0,this.frustums=!1,this.frustumPlanes=!1,this.performance=!1,this.shaderCacheText="",this.primitiveBoundingSphere=!1,this.primitiveReferenceFrame=!1,this.filterPrimitive=!1,this.tileBoundingSphere=!1,this.filterTile=!1,this.wireframe=!1,this.depthFrustum=1,this._numberOfFrustums=1,this.suspendUpdates=!1,this.tileCoordinates=!1,this.frustumStatisticText=!1,this.tileText="",this.hasPickedPrimitive=!1,this.hasPickedTile=!1,this.pickPrimitiveActive=!1,this.pickTileActive=!1,this.dropDownVisible=!0,this.generalVisible=!0,this.primitivesVisible=!1,this.terrainVisible=!1,this.depthFrustumText="",be.track(this,["frustums","frustumPlanes","performance","shaderCacheText","primitiveBoundingSphere","primitiveReferenceFrame","filterPrimitive","tileBoundingSphere","filterTile","wireframe","depthFrustum","suspendUpdates","tileCoordinates","frustumStatisticText","tileText","hasPickedPrimitive","hasPickedTile","pickPrimitiveActive","pickTileActive","dropDownVisible","generalVisible","primitivesVisible","terrainVisible","depthFrustumText"]),this._toggleDropDown=vn(function(){n.dropDownVisible=!n.dropDownVisible}),this._toggleGeneral=vn(function(){n.generalVisible=!n.generalVisible}),this._togglePrimitives=vn(function(){n.primitivesVisible=!n.primitivesVisible}),this._toggleTerrain=vn(function(){n.terrainVisible=!n.terrainVisible}),this._frustumsSubscription=be.getObservable(this,"frustums").subscribe(function(u){n._scene.debugShowFrustums=u,n._scene.requestRender()}),this._frustumPlanesSubscription=be.getObservable(this,"frustumPlanes").subscribe(function(u){n._scene.debugShowFrustumPlanes=u,n._scene.requestRender()}),this._performanceSubscription=be.getObservable(this,"performance").subscribe(function(u){u?n._performanceDisplay=new jy({container:n._performanceContainer}):n._performanceContainer.innerHTML=""}),this._showPrimitiveBoundingSphere=vn(function(){return n._primitive.debugShowBoundingVolume=n.primitiveBoundingSphere,n._scene.requestRender(),!0}),this._primitiveBoundingSphereSubscription=be.getObservable(this,"primitiveBoundingSphere").subscribe(function(){n._showPrimitiveBoundingSphere()}),this._showPrimitiveReferenceFrame=vn(function(){if(n.primitiveReferenceFrame){let u=n._primitive.modelMatrix;n._modelMatrixPrimitive=new i8({modelMatrix:u}),n._scene.primitives.add(n._modelMatrixPrimitive)}else l(n._modelMatrixPrimitive)&&(n._scene.primitives.remove(n._modelMatrixPrimitive),n._modelMatrixPrimitive=void 0);return n._scene.requestRender(),!0}),this._primitiveReferenceFrameSubscription=be.getObservable(this,"primitiveReferenceFrame").subscribe(function(){n._showPrimitiveReferenceFrame()}),this._doFilterPrimitive=vn(function(){return n.filterPrimitive?n._scene.debugCommandFilter=function(u){return l(n._modelMatrixPrimitive)&&u.owner===n._modelMatrixPrimitive._primitive?!0:l(n._primitive)?u.owner===n._primitive||u.owner===n._primitive._billboardCollection||u.owner.primitive===n._primitive:!1}:n._scene.debugCommandFilter=void 0,!0}),this._filterPrimitiveSubscription=be.getObservable(this,"filterPrimitive").subscribe(function(){n._doFilterPrimitive(),n._scene.requestRender()}),this._wireframeSubscription=be.getObservable(this,"wireframe").subscribe(function(u){r._surface.tileProvider._debug.wireframe=u,n._scene.requestRender()}),this._depthFrustumSubscription=be.getObservable(this,"depthFrustum").subscribe(function(u){n._scene.debugShowDepthFrustum=u,n._scene.requestRender()}),this._incrementDepthFrustum=vn(function(){let u=n.depthFrustum+1;return n.depthFrustum=CZ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._decrementDepthFrustum=vn(function(){let u=n.depthFrustum-1;return n.depthFrustum=CZ(1,n._numberOfFrustums,u),n._scene.requestRender(),!0}),this._suspendUpdatesSubscription=be.getObservable(this,"suspendUpdates").subscribe(function(u){r._surface._debug.suspendLodUpdate=u,u||(n.filterTile=!1)});let s;this._showTileCoordinates=vn(function(){return n.tileCoordinates&&!l(s)?s=e.imageryLayers.addImageryProvider(new T8({tilingScheme:e.terrainProvider.tilingScheme})):!n.tileCoordinates&&l(s)&&(e.imageryLayers.remove(s),s=void 0),!0}),this._tileCoordinatesSubscription=be.getObservable(this,"tileCoordinates").subscribe(function(){n._showTileCoordinates(),n._scene.requestRender()}),this._tileBoundingSphereSubscription=be.getObservable(this,"tileBoundingSphere").subscribe(function(){n._showTileBoundingSphere(),n._scene.requestRender()}),this._showTileBoundingSphere=vn(function(){return n.tileBoundingSphere?r._surface.tileProvider._debug.boundingSphereTile=n._tile:r._surface.tileProvider._debug.boundingSphereTile=void 0,n._scene.requestRender(),!0}),this._doFilterTile=vn(function(){return n.filterTile?(n.suspendUpdates=!0,r._surface._tilesToRender=[],l(n._tile)&&n._tile.renderable&&r._surface._tilesToRender.push(n._tile)):n.suspendUpdates=!1,!0}),this._filterTileSubscription=be.getObservable(this,"filterTile").subscribe(function(){n.doFilterTile(),n._scene.requestRender()});function a(u){let f=n._scene.pick({x:u.position.x,y:u.position.y});l(f)&&(n.primitive=l(f.collection)?f.collection:f.primitive),n._scene.requestRender(),n.pickPrimitiveActive=!1}this._pickPrimitive=vn(function(){n.pickPrimitiveActive=!n.pickPrimitiveActive}),this._pickPrimitiveActiveSubscription=be.getObservable(this,"pickPrimitiveActive").subscribe(function(u){u?o.setInputAction(a,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)});function c(u){let f,d=r.ellipsoid,p=n._scene.camera.getPickRay(u.position,gCt),g=r.pick(p,n._scene,yCt);if(l(g)){let m=d.cartesianToCartographic(g),x=r._surface.tileProvider._tilesToRenderByTextureCount;for(let b=0;!f&&b<x.length;++b){let T=x[b];if(l(T))for(let A=0;!f&&A<T.length;++A){let C=T[A];re.contains(C.rectangle,m)&&(f=C)}}}n.tile=f,n.pickTileActive=!1}this._pickTile=vn(function(){n.pickTileActive=!n.pickTileActive}),this._pickTileActiveSubscription=be.getObservable(this,"pickTileActive").subscribe(function(u){u?o.setInputAction(c,bn.LEFT_CLICK):o.removeInputAction(bn.LEFT_CLICK)}),this._removePostRenderEvent=e.postRender.addEventListener(function(){n._update()})}Object.defineProperties(VP.prototype,{scene:{get:function(){return this._scene}},performanceContainer:{get:function(){return this._performanceContainer}},toggleDropDown:{get:function(){return this._toggleDropDown}},showPrimitiveBoundingSphere:{get:function(){return this._showPrimitiveBoundingSphere}},showPrimitiveReferenceFrame:{get:function(){return this._showPrimitiveReferenceFrame}},doFilterPrimitive:{get:function(){return this._doFilterPrimitive}},incrementDepthFrustum:{get:function(){return this._incrementDepthFrustum}},decrementDepthFrustum:{get:function(){return this._decrementDepthFrustum}},showTileCoordinates:{get:function(){return this._showTileCoordinates}},showTileBoundingSphere:{get:function(){return this._showTileBoundingSphere}},doFilterTile:{get:function(){return this._doFilterTile}},toggleGeneral:{get:function(){return this._toggleGeneral}},togglePrimitives:{get:function(){return this._togglePrimitives}},toggleTerrain:{get:function(){return this._toggleTerrain}},pickPrimitive:{get:function(){return this._pickPrimitive}},pickTile:{get:function(){return this._pickTile}},selectParent:{get:function(){let e=this;return vn(function(){e.tile=e.tile.parent})}},selectNW:{get:function(){let e=this;return vn(function(){e.tile=e.tile.northwestChild})}},selectNE:{get:function(){let e=this;return vn(function(){e.tile=e.tile.northeastChild})}},selectSW:{get:function(){let e=this;return vn(function(){e.tile=e.tile.southwestChild})}},selectSE:{get:function(){let e=this;return vn(function(){e.tile=e.tile.southeastChild})}},primitive:{get:function(){return this._primitive},set:function(e){let t=this._primitive;e!==t&&(this.hasPickedPrimitive=!0,l(t)&&(t.debugShowBoundingVolume=!1),this._scene.debugCommandFilter=void 0,l(this._modelMatrixPrimitive)&&(this._scene.primitives.remove(this._modelMatrixPrimitive),this._modelMatrixPrimitive=void 0),this._primitive=e,e.show=!1,setTimeout(function(){e.show=!0},50),this.showPrimitiveBoundingSphere(),this.showPrimitiveReferenceFrame(),this.doFilterPrimitive())}},tile:{get:function(){return this._tile},set:function(e){if(l(e)){this.hasPickedTile=!0;let t=this._tile;if(e!==t){this.tileText=`L: ${e.level} X: ${e.x} Y: ${e.y}`,this.tileText+=`<br>SW corner: ${e.rectangle.west}, ${e.rectangle.south}`,this.tileText+=`<br>NE corner: ${e.rectangle.east}, ${e.rectangle.north}`;let n=e.data;l(n)&&l(n.tileBoundingRegion)?this.tileText+=`<br>Min: ${n.tileBoundingRegion.minimumHeight} Max: ${n.tileBoundingRegion.maximumHeight}`:this.tileText+="<br>(Tile is not loaded)"}this._tile=e,this.showTileBoundingSphere(),this.doFilterTile()}else this.hasPickedTile=!1,this._tile=void 0}}});VP.prototype._update=function(){this.frustums&&(this.frustumStatisticText=_Ct(this._scene.debugFrustumStatistics));let e=this._scene.numberOfFrustums;this._numberOfFrustums=e,this.depthFrustum=CZ(1,e,this.depthFrustum),this.depthFrustumText=`${this.depthFrustum} of ${e}`,this.performance&&this._performanceDisplay.update(),this.primitiveReferenceFrame&&(this._modelMatrixPrimitive.modelMatrix=this._primitive.modelMatrix),this.shaderCacheText=`Cached shaders: ${this._scene.context.shaderCache.numberOfShaders}`};VP.prototype.isDestroyed=function(){return!1};VP.prototype.destroy=function(){return this._eventHandler.destroy(),this._removePostRenderEvent(),this._frustumsSubscription.dispose(),this._frustumPlanesSubscription.dispose(),this._performanceSubscription.dispose(),this._primitiveBoundingSphereSubscription.dispose(),this._primitiveReferenceFrameSubscription.dispose(),this._filterPrimitiveSubscription.dispose(),this._wireframeSubscription.dispose(),this._depthFrustumSubscription.dispose(),this._suspendUpdatesSubscription.dispose(),this._tileCoordinatesSubscription.dispose(),this._tileBoundingSphereSubscription.dispose(),this._filterTileSubscription.dispose(),this._pickPrimitiveActiveSubscription.dispose(),this._pickTileActiveSubscription.dispose(),ue(this)};var H8=VP;function G8(e,t){e=Rn(e);let n=document.createElement("div"),i=new H8(t,n);this._viewModel=i,this._container=e;let o=document.createElement("div");this._element=o;let r=document.createElement("div");r.textContent="Cesium Inspector",r.className="cesium-cesiumInspector-button",r.setAttribute("data-bind","click: toggleDropDown"),o.appendChild(r),o.className="cesium-cesiumInspector",o.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : dropDownVisible, "cesium-cesiumInspector-hidden" : !dropDownVisible }'),e.appendChild(this._element);let s=document.createElement("div");s.className="cesium-cesiumInspector-dropDown",o.appendChild(s);let a=hc.createSection,c=hc.createCheckbox,u=a(s,"General","generalVisible","toggleGeneral"),f=c("Show Frustums","frustums"),d=document.createElement("div");d.className="cesium-cesiumInspector-frustumStatistics",d.setAttribute("data-bind","visible: frustums, html: frustumStatisticText"),f.appendChild(d),u.appendChild(f),u.appendChild(c("Show Frustum Planes","frustumPlanes")),u.appendChild(c("Performance Display","performance")),n.className="cesium-cesiumInspector-performanceDisplay",u.appendChild(n);let p=document.createElement("div");p.className="cesium-cesiumInspector-shaderCache",p.setAttribute("data-bind","html: shaderCacheText"),u.appendChild(p);let g=document.createElement("div");u.appendChild(g);let m=document.createElement("span");m.setAttribute("data-bind",'html: "     Frustum:"'),g.appendChild(m);let x=document.createElement("span");x.setAttribute("data-bind","text: depthFrustumText"),g.appendChild(x);let b=document.createElement("input");b.type="button",b.value="-",b.className="cesium-cesiumInspector-pickButton",b.setAttribute("data-bind","click: decrementDepthFrustum"),g.appendChild(b);let T=document.createElement("input");T.type="button",T.value="+",T.className="cesium-cesiumInspector-pickButton",T.setAttribute("data-bind","click: incrementDepthFrustum"),g.appendChild(T);let A=a(s,"Primitives","primitivesVisible","togglePrimitives"),C=document.createElement("div");C.className="cesium-cesiumInspector-pickSection",A.appendChild(C);let S=document.createElement("input");S.type="button",S.value="Pick a primitive",S.className="cesium-cesiumInspector-pickButton",S.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickPrimitiveActive}, click: pickPrimitive');let v=document.createElement("div");v.className="cesium-cesiumInspector-center",v.appendChild(S),C.appendChild(v),C.appendChild(c("Show bounding sphere","primitiveBoundingSphere","hasPickedPrimitive")),C.appendChild(c("Show reference frame","primitiveReferenceFrame","hasPickedPrimitive")),this._primitiveOnly=c("Show only selected","filterPrimitive","hasPickedPrimitive"),C.appendChild(this._primitiveOnly);let D=a(s,"Terrain","terrainVisible","toggleTerrain"),O=document.createElement("div");O.className="cesium-cesiumInspector-pickSection",D.appendChild(O);let R=document.createElement("input");R.type="button",R.value="Pick a tile",R.className="cesium-cesiumInspector-pickButton",R.setAttribute("data-bind",'css: {"cesium-cesiumInspector-pickButtonHighlight" : pickTileActive}, click: pickTile'),v=document.createElement("div"),v.appendChild(R),v.className="cesium-cesiumInspector-center",O.appendChild(v);let M=document.createElement("div");O.appendChild(M);let L=document.createElement("input");L.type="button",L.value="Parent",L.className="cesium-cesiumInspector-pickButton",L.setAttribute("data-bind","click: selectParent");let _=document.createElement("input");_.type="button",_.value="NW",_.className="cesium-cesiumInspector-pickButton",_.setAttribute("data-bind","click: selectNW");let E=document.createElement("input");E.type="button",E.value="NE",E.className="cesium-cesiumInspector-pickButton",E.setAttribute("data-bind","click: selectNE");let w=document.createElement("input");w.type="button",w.value="SW",w.className="cesium-cesiumInspector-pickButton",w.setAttribute("data-bind","click: selectSW");let I=document.createElement("input");I.type="button",I.value="SE",I.className="cesium-cesiumInspector-pickButton",I.setAttribute("data-bind","click: selectSE");let N=document.createElement("div");N.className="cesium-cesiumInspector-tileText",M.className="cesium-cesiumInspector-frustumStatistics",M.appendChild(N),M.setAttribute("data-bind","visible: hasPickedTile"),N.setAttribute("data-bind","html: tileText");let B=document.createElement("div");B.className="cesium-cesiumInspector-relativeText",B.textContent="Select relative:",M.appendChild(B);let H=document.createElement("table"),V=document.createElement("tr"),G=document.createElement("tr"),k=document.createElement("td");k.appendChild(L);let W=document.createElement("td");W.appendChild(_);let q=document.createElement("td");q.appendChild(E),V.appendChild(k),V.appendChild(W),V.appendChild(q);let J=document.createElement("td"),j=document.createElement("td");j.appendChild(w);let Z=document.createElement("td");Z.appendChild(I),G.appendChild(J),G.appendChild(j),G.appendChild(Z),H.appendChild(V),H.appendChild(G),M.appendChild(H),O.appendChild(c("Show bounding volume","tileBoundingSphere","hasPickedTile")),O.appendChild(c("Show only selected","filterTile","hasPickedTile")),D.appendChild(c("Wireframe","wireframe")),D.appendChild(c("Suspend LOD update","suspendUpdates")),D.appendChild(c("Show tile coordinates","tileCoordinates")),be.applyBindings(i,this._element)}Object.defineProperties(G8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});G8.prototype.isDestroyed=function(){return!1};G8.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};var W8=G8;function j8(e,t){l(t)||(t=document.body),t=Rn(t);let n=this,i=be.observable(vr.fullscreen),o=be.observable(vr.enabled),r=t.ownerDocument;this.isFullscreen=void 0,be.defineProperty(this,"isFullscreen",{get:function(){return i()}}),this.isFullscreenEnabled=void 0,be.defineProperty(this,"isFullscreenEnabled",{get:function(){return o()},set:function(s){o(s&&vr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return this.isFullscreenEnabled?i()?"Exit full screen":"Full screen":"Full screen unavailable"}),this._command=vn(function(){vr.fullscreen?vr.exitFullscreen():vr.requestFullscreen(n._fullscreenElement)},be.getObservable(this,"isFullscreenEnabled")),this._fullscreenElement=y(Rn(e),r.body),this._callback=function(){i(vr.fullscreen)},r.addEventListener(vr.changeEventName,this._callback)}Object.defineProperties(j8.prototype,{fullscreenElement:{get:function(){return this._fullscreenElement},set:function(e){this._fullscreenElement=e}},command:{get:function(){return this._command}}});j8.prototype.isDestroyed=function(){return!1};j8.prototype.destroy=function(){document.removeEventListener(vr.changeEventName,this._callback),ue(this)};var q8=j8;var xCt="M 83.96875 17.5625 L 83.96875 17.59375 L 76.65625 24.875 L 97.09375 24.96875 L 76.09375 45.96875 L 81.9375 51.8125 L 102.78125 30.9375 L 102.875 51.15625 L 110.15625 43.875 L 110.1875 17.59375 L 83.96875 17.5625 z M 44.125 17.59375 L 17.90625 17.625 L 17.9375 43.90625 L 25.21875 51.1875 L 25.3125 30.96875 L 46.15625 51.8125 L 52 45.96875 L 31 25 L 51.4375 24.90625 L 44.125 17.59375 z M 46.0625 76.03125 L 25.1875 96.875 L 25.09375 76.65625 L 17.8125 83.9375 L 17.8125 110.21875 L 44 110.25 L 51.3125 102.9375 L 30.90625 102.84375 L 51.875 81.875 L 46.0625 76.03125 z M 82 76.15625 L 76.15625 82 L 97.15625 103 L 76.71875 103.0625 L 84.03125 110.375 L 110.25 110.34375 L 110.21875 84.0625 L 102.9375 76.8125 L 102.84375 97 L 82 76.15625 z",bCt="M 104.34375 17.5625 L 83.5 38.4375 L 83.40625 18.21875 L 76.125 25.5 L 76.09375 51.78125 L 102.3125 51.8125 L 102.3125 51.78125 L 109.625 44.5 L 89.1875 44.40625 L 110.1875 23.40625 L 104.34375 17.5625 z M 23.75 17.59375 L 17.90625 23.4375 L 38.90625 44.4375 L 18.5 44.53125 L 25.78125 51.8125 L 52 51.78125 L 51.96875 25.53125 L 44.6875 18.25 L 44.625 38.46875 L 23.75 17.59375 z M 25.6875 76.03125 L 18.375 83.3125 L 38.78125 83.40625 L 17.8125 104.40625 L 23.625 110.25 L 44.5 89.375 L 44.59375 109.59375 L 51.875 102.3125 L 51.875 76.0625 L 25.6875 76.03125 z M 102.375 76.15625 L 76.15625 76.1875 L 76.1875 102.4375 L 83.46875 109.71875 L 83.5625 89.53125 L 104.40625 110.375 L 110.25 104.53125 L 89.25 83.53125 L 109.6875 83.46875 L 102.375 76.15625 z";function Y8(e,t){e=Rn(e);let n=new q8(t,e);n._exitFullScreenPath=bCt,n._enterFullScreenPath=xCt;let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-fullscreenButton",i.setAttribute("data-bind","attr: { title: tooltip },click: command,enable: isFullscreenEnabled,cesiumSvgPath: { path: isFullscreen ? _exitFullScreenPath : _enterFullScreenPath, width: 128, height: 128 }"),e.appendChild(i),be.applyBindings(n,i),this._container=e,this._viewModel=n,this._element=i}Object.defineProperties(Y8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});Y8.prototype.isDestroyed=function(){return!1};Y8.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var X8=Y8;var ZAe=1e3;function Kf(e){l(e.geocoderServices)?this._geocoderServices=e.geocoderServices:this._geocoderServices=[new zH({scene:e.scene})],this._viewContainer=e.container,this._scene=e.scene,this._flightDuration=e.flightDuration,this._searchText="",this._isSearchInProgress=!1,this._wasGeocodeCancelled=!1,this._previousCredits=[],this._complete=new me,this._suggestions=[],this._selectedSuggestion=void 0,this._showSuggestions=!0,this._handleArrowDown=QAe,this._handleArrowUp=$Ae;let t=this;this._suggestionsVisible=be.pureComputed(function(){let o=be.getObservable(t,"_suggestions")().length>0,r=be.getObservable(t,"_showSuggestions")();return o&&r}),this._searchCommand=vn(function(i){if(i=y(i,Rb.SEARCH),t._focusTextbox=!1,l(t._selectedSuggestion))return t.activateSuggestion(t._selectedSuggestion),!1;if(t.hideSuggestions(),t.isSearchInProgress)vCt(t);else return ECt(t,t._geocoderServices,i)}),this.deselectSuggestion=function(){t._selectedSuggestion=void 0},this.handleKeyDown=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38;return(r||s)&&o.preventDefault(),!0},this.handleKeyUp=function(i,o){let r=o.key==="ArrowDown"||o.key==="Down"||o.keyCode===40,s=o.key==="ArrowUp"||o.key==="Up"||o.keyCode===38,a=o.key==="Enter"||o.keyCode===13;return s?$Ae(t):r?QAe(t):a&&t._searchCommand(),!0},this.activateSuggestion=function(i){t.hideSuggestions(),t._searchText=i.displayName;let o=i.destination;tCe(t),t.destinationFound(t,o)},this.hideSuggestions=function(){t._showSuggestions=!1,t._selectedSuggestion=void 0},this.showSuggestions=function(){t._showSuggestions=!0},this.handleMouseover=function(i,o){i!==t._selectedSuggestion&&(t._selectedSuggestion=i)},this.keepExpanded=!1,this.autoComplete=y(e.autocomplete,!0),this.destinationFound=y(e.destinationFound,Kf.flyToDestination),this._focusTextbox=!1,be.track(this,["_searchText","_isSearchInProgress","keepExpanded","_suggestions","_selectedSuggestion","_showSuggestions","_focusTextbox"]);let n=be.getObservable(this,"_searchText");n.extend({rateLimit:{timeout:500}}),this._suggestionSubscription=n.subscribe(function(){Kf._updateSearchSuggestions(t)}),this.isSearchInProgress=void 0,be.defineProperty(this,"isSearchInProgress",{get:function(){return this._isSearchInProgress}}),this.searchText=void 0,be.defineProperty(this,"searchText",{get:function(){return this.isSearchInProgress?"Searching...":this._searchText},set:function(i){this._searchText=i}}),this.flightDuration=void 0,be.defineProperty(this,"flightDuration",{get:function(){return this._flightDuration},set:function(i){this._flightDuration=i}})}Object.defineProperties(Kf.prototype,{complete:{get:function(){return this._complete}},scene:{get:function(){return this._scene}},search:{get:function(){return this._searchCommand}},selectedSuggestion:{get:function(){return this._selectedSuggestion}},suggestions:{get:function(){return this._suggestions}}});Kf.prototype.destroy=function(){this._suggestionSubscription.dispose()};function $Ae(e){if(e._suggestions.length===0)return;let t=e._suggestions.indexOf(e._selectedSuggestion);if(t===-1||t===0){e._selectedSuggestion=void 0;return}let n=t-1;e._selectedSuggestion=e._suggestions[n],Kf._adjustSuggestionsScroll(e,n)}function QAe(e){if(e._suggestions.length===0)return;let t=e._suggestions.length,i=(e._suggestions.indexOf(e._selectedSuggestion)+1)%t;e._selectedSuggestion=e._suggestions[i],Kf._adjustSuggestionsScroll(e,i)}function TCt(e,t){let n=l(t)?t.availability:void 0;return l(n)?xE(t,[e]).then(function(i){return e=i[0],e.height+=ZAe,e}):(e.height+=ZAe,Promise.resolve(e))}function ACt(e,t){let n=e._scene,i=n.ellipsoid,o=n.camera,r=n.terrainProvider,s=t,a;return t instanceof re?P.equalsEpsilon(t.south,t.north,P.EPSILON7)&&P.equalsEpsilon(t.east,t.west,P.EPSILON7)?t=re.center(t):a=bE(t,n):t=i.cartesianToCartographic(t),l(a)||(a=TCt(t,r)),a.then(function(c){s=i.cartographicToCartesian(c)}).finally(function(){o.flyTo({destination:s,complete:function(){e._complete.raiseEvent()},duration:e._flightDuration,endTransform:F.IDENTITY})})}async function CCt(e,t,n){try{return{state:"fulfilled",value:await e.geocode(t,n),credits:e.credit}}catch(i){return{state:"rejected",reason:i}}}async function ECt(e,t,n){let i=e._searchText;if(eCe(i)){e.showSuggestions();return}e._isSearchInProgress=!0,e._wasGeocodeCancelled=!1;let o,r;for(o=0;o<t.length;o++){if(e._wasGeocodeCancelled)return;if(r=await CCt(t[o],i,n),l(r)&&r.state==="fulfilled"&&r.value.length>0)break}if(e._wasGeocodeCancelled)return;e._isSearchInProgress=!1,SZ(e);let s=r.value;if(r.state==="fulfilled"&&l(s)&&s.length>0){e._searchText=s[0].displayName,e.destinationFound(e,s[0].destination);let a=JAe(e,_P.getCreditsFromResult(s[0]));l(a)||EZ(e,t[o].credit);return}e._searchText=`${i} (not found)`}function EZ(e,t){l(t)&&!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&(e._scene.frameState.creditDisplay.addStaticCredit(t),e._previousCredits.push(t))}function JAe(e,t){return l(t)&&t.forEach(n=>EZ(e,n)),t}function SZ(e){!e._scene.isDestroyed()&&!e._scene.frameState.creditDisplay.isDestroyed()&&e._previousCredits.forEach(t=>{e._scene.frameState.creditDisplay.removeStaticCredit(t)}),e._previousCredits.length=0}function SCt(e,t){let n=Rn(e._viewContainer),i=n.getElementsByClassName("search-results")[0],r=n.getElementsByTagName("li")[t];if(t===0){i.scrollTop=0;return}let s=r.offsetTop;s+r.clientHeight>i.clientHeight?i.scrollTop=s+r.clientHeight:s<i.scrollTop&&(i.scrollTop=s)}function vCt(e){e._isSearchInProgress&&(e._isSearchInProgress=!1,e._wasGeocodeCancelled=!0)}function eCe(e){return/^\s*$/.test(e)}function tCe(e){be.getObservable(e,"_suggestions").removeAll()}async function wCt(e){if(!e.autoComplete)return;let t=e._searchText;if(tCe(e),SZ(e),!eCe(t))for(let n of e._geocoderServices){let i=await n.geocode(t,Rb.AUTOCOMPLETE);if(e._suggestions=e._suggestions.concat(i),i.length>0){let o=!0;i.forEach(r=>{let s=_P.getCreditsFromResult(r);o=o&&!l(s),JAe(e,s)}),o&&EZ(e,n.credit)}if(e._suggestions.length>=5)return}}Kf.flyToDestination=ACt;Kf._updateSearchSuggestions=wCt;Kf._adjustSuggestionsScroll=SCt;Kf.prototype.isDestroyed=function(){return!1};Kf.prototype.destroy=function(){return SZ(this),ue(this)};var K8=Kf;var DCt="M29.772,26.433l-7.126-7.126c0.96-1.583,1.523-3.435,1.524-5.421C24.169,8.093,19.478,3.401,13.688,3.399C7.897,3.401,3.204,8.093,3.204,13.885c0,5.789,4.693,10.481,10.484,10.481c1.987,0,3.839-0.563,5.422-1.523l7.128,7.127L29.772,26.433zM7.203,13.885c0.006-3.582,2.903-6.478,6.484-6.486c3.579,0.008,6.478,2.904,6.484,6.486c-0.007,3.58-2.905,6.476-6.484,6.484C10.106,20.361,7.209,17.465,7.203,13.885z",ICt="M24.778,21.419 19.276,15.917 24.777,10.415 21.949,7.585 16.447,13.087 10.945,7.585 8.117,10.415 13.618,15.917 8.116,21.419 10.946,24.248 16.447,18.746 21.948,24.248z";function Z8(e){let t=Rn(e.container),n=new K8(e);n._startSearchPath=DCt,n._stopSearchPath=ICt;let i=document.createElement("form");i.setAttribute("data-bind","submit: search");let o=document.createElement("input");o.type="search",o.className="cesium-geocoder-input",o.setAttribute("placeholder","Enter an address or landmark..."),o.setAttribute("data-bind",'textInput: searchText,disable: isSearchInProgress,event: { keyup: handleKeyUp, keydown: handleKeyDown, mouseover: deselectSuggestion },css: { "cesium-geocoder-input-wide" : keepExpanded || searchText.length > 0 },hasFocus: _focusTextbox'),this._onTextBoxFocus=function(){setTimeout(function(){o.select()},0)},o.addEventListener("focus",this._onTextBoxFocus,!1),i.appendChild(o),this._textBox=o;let r=document.createElement("span");r.className="cesium-geocoder-searchButton",r.setAttribute("data-bind","click: search,cesiumSvgPath: { path: isSearchInProgress ? _stopSearchPath : _startSearchPath, width: 32, height: 32 }"),i.appendChild(r),t.appendChild(i);let s=document.createElement("div");s.className="search-results",s.setAttribute("data-bind","visible: _suggestionsVisible");let a=document.createElement("ul");a.setAttribute("data-bind","foreach: _suggestions");let c=document.createElement("li");a.appendChild(c),c.setAttribute("data-bind","text: $data.displayName, click: $parent.activateSuggestion, event: { mouseover: $parent.handleMouseover}, css: { active: $data === $parent._selectedSuggestion }"),s.appendChild(a),t.appendChild(s),be.applyBindings(n,i),be.applyBindings(n,s),this._container=t,this._searchSuggestionsContainer=s,this._viewModel=n,this._form=i,this._onInputBegin=function(u){let f=u.target;typeof u.composedPath=="function"&&(f=u.composedPath()[0]),t.contains(f)||(n._focusTextbox=!1,n.hideSuggestions())},this._onInputEnd=function(u){n._focusTextbox=!0,n.showSuggestions()},jt.supportsPointerEvents()?(document.addEventListener("pointerdown",this._onInputBegin,!0),t.addEventListener("pointerup",this._onInputEnd,!0),t.addEventListener("pointercancel",this._onInputEnd,!0)):(document.addEventListener("mousedown",this._onInputBegin,!0),t.addEventListener("mouseup",this._onInputEnd,!0),document.addEventListener("touchstart",this._onInputBegin,!0),t.addEventListener("touchend",this._onInputEnd,!0),t.addEventListener("touchcancel",this._onInputEnd,!0))}Object.defineProperties(Z8.prototype,{container:{get:function(){return this._container}},searchSuggestionsContainer:{get:function(){return this._searchSuggestionsContainer}},viewModel:{get:function(){return this._viewModel}}});Z8.prototype.isDestroyed=function(){return!1};Z8.prototype.destroy=function(){let e=this._container;return jt.supportsPointerEvents()?(document.removeEventListener("pointerdown",this._onInputBegin,!0),e.removeEventListener("pointerup",this._onInputEnd,!0)):(document.removeEventListener("mousedown",this._onInputBegin,!0),e.removeEventListener("mouseup",this._onInputEnd,!0),document.removeEventListener("touchstart",this._onInputBegin,!0),e.removeEventListener("touchend",this._onInputEnd,!0)),this._viewModel.destroy(),be.cleanNode(this._form),be.cleanNode(this._searchSuggestionsContainer),e.removeChild(this._form),e.removeChild(this._searchSuggestionsContainer),this._textBox.removeEventListener("focus",this._onTextBoxFocus,!1),ue(this)};var $8=Z8;function nCe(e,t){this._scene=e,this._duration=t;let n=this;this._command=vn(function(){n._scene.camera.flyHome(n._duration)}),this.tooltip="View Home",be.track(this,["tooltip"])}Object.defineProperties(nCe.prototype,{scene:{get:function(){return this._scene}},command:{get:function(){return this._command}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}}});var Q8=nCe;function J8(e,t,n){e=Rn(e);let i=new Q8(t,n);i._svgPath="M14,4l-10,8.75h20l-4.25-3.7188v-4.6562h-2.812v2.1875l-2.938-2.5625zm-7.0938,9.906v10.094h14.094v-10.094h-14.094zm2.1876,2.313h3.3122v4.25h-3.3122v-4.25zm5.8442,1.281h3.406v6.438h-3.406v-6.438z";let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button cesium-home-button",o.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 28, height: 28 }"),e.appendChild(o),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(J8.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});J8.prototype.isDestroyed=function(){return!1};J8.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var eG=J8;function PCt(e,t){t.currentTarget.parentElement.parentElement.querySelector(`#${e.name}-expander`).classList.toggle("active"),t.currentTarget.textContent=t.currentTarget.textContent==="+"?"-":"+"}function oCe(e,t){be.track(e);for(let n=0;n<e.sublayers.length;n++)oCe(e.sublayers[n],t)}function tG(e){return e.modelName==="FullModel"}function rCe(e){return e.modelName==="Overview"}function sCe(e){return rCe(e)||tG(e)}function iCe(e,t){if(sCe(e)){e.visibility=!1;for(let i=0;i<e.sublayers.length;i++)e.sublayers[i].visibility=!0;let n={name:e.name,modelName:e.modelName,disable:be.observable(!1),index:t.sublayers.length};return t.topLayers.push(n),t.sublayers.push(e),n}}function RCt(e,t){if(sCe(e)){t.sublayers.forEach(i=>i.visibility=!1),t.sublayers[e.index].visibility=!0;let n=document.getElementById("bsl-wrapper");tG(e)?(t.currentLevel=t.selectedLevel,n.style.display="block"):(t.selectedLevel=t.currentLevel,t.currentLevel="All",n.style.display="none")}}async function OCt(e,t){try{let n=e.getAttributeNames();for(let i=0;i<n.length;i++)if(n[i]==="BldgLevel"){let o=e.getAttributeValues(n[i]);for(let r=0;r<o.length;r++)t.push(o[r])}t.sort((i,o)=>i-o),t.unshift("All")}catch(n){console.log(`There was an error getting attributes: ${n}`)}}function MCt(e){let t=this;this.levels=[],this.viewModel={sublayers:[],levels:this.levels,currentLevel:be.observable(),selectedLevel:"All",topLayers:[{name:"Select a layer to explore...",disable:be.observable(!0),index:-1}],currentLayer:be.observable(),expandClickHandler:PCt,setOptionDisable:function(i,o){be.applyBindingsToNode(i,{disable:o.disable},o)},defaultLayer:void 0},this.viewModel.currentLayer.subscribe(function(i){RCt(i,t.viewModel)});let n=e.sublayers;for(let i=0;i<n.length;i++){oCe(n[i],this.viewModel);let o=iCe(n[i],this.viewModel);l(o)&&(rCe(o)||!l(this.viewModel.defaultLayer)&&tG(o))&&(this.viewModel.defaultLayer=o)}if(this.viewModel.topLayers.length===1&&n.length>0){e.show=!1;let i={name:"Full Model",modelName:"FullModel",visibility:e.show,sublayers:e.sublayers};this.viewModel.defaultLayer=iCe(i,this.viewModel),this.viewModel.currentLayer.subscribe(function(o){e.show=tG(o)})}else this.viewModel.topLayers.length===1&&(this.viewModel.topLayers[0].name="Building layers not found");return OCt(e,this.levels),this.viewModel.currentLevel.subscribe(function(i){i!=="All"?e.filterByAttributes([{name:"BldgLevel",values:[i]}]):e.filterByAttributes()}),this.viewModel}var nG=MCt;function LCt(e,t){let n=document.getElementById(e),i=document.createElement("div");i.classList.add("cesium-viewer-i3s-explorer"),i.innerHTML=` + <h3>Building explorer</h3> + <select + data-bind="options: topLayers, optionsText: 'name', optionsAfterRender: setOptionDisable, value: currentLayer" + ></select> + <div id="bsl-wrapper"> + <h3>Select Level</h3> + <select data-bind="options: levels, value: currentLevel"></select> + <h3>Disciplines & Categories</h3> + <ul class="layersList" data-bind="foreach: sublayers"> + <ul class="layersList" data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <li> + <div class="li-wrapper"> + <span + class="expandItem" + data-bind="click: $root.expandClickHandler" + >+</span + > + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + <ul class="nested" data-bind="attr: { id: name + '-expander'}"> + <li data-bind="foreach: sublayers.sort(function (l, r) { return l.name.localeCompare(r.name) })"> + <div class="li-wrapper"> + <input + type="checkbox" + data-bind="checked: visibility, valueUpdate: 'input', attr: { id: name}" + /> + <label data-bind="attr: { for: name}"> + <span data-bind="text: name"></span> + </label> + </div> + </li> + </ul> + </li> + </ul> + </ul> + </div>`,n.appendChild(i);let o=new nG(t);be.track(o),be.applyBindings(o,n),l(o.defaultLayer)&&(o.currentLayer=o.defaultLayer)}var aCe=LCt;var NCt="M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4853444 22.104033 11.423165 24.0625 13.84375 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 8.975298 28.305952 7.03125 25.875 7.03125 L 13.84375 7.03125 z",FCt="M 27.34375 1.65625 L 5.28125 27.9375 L 8.09375 30.3125 L 30.15625 4.03125 L 27.34375 1.65625 z M 13.84375 7.03125 C 11.412798 7.03125 9.46875 8.975298 9.46875 11.40625 L 9.46875 11.59375 L 2.53125 7.21875 L 2.53125 24.0625 L 9.46875 19.6875 C 9.4724893 20.232036 9.5676108 20.7379 9.75 21.21875 L 21.65625 7.03125 L 13.84375 7.03125 z M 28.21875 7.71875 L 14.53125 24.0625 L 25.875 24.0625 C 28.305952 24.0625 30.28125 22.087202 30.28125 19.65625 L 30.28125 11.40625 C 30.28125 9.8371439 29.456025 8.4902779 28.21875 7.71875 z";function vZ(){this._cameraClicked=new me,this._closeClicked=new me,this.maxHeight=500,this.enableCamera=!1,this.isCameraTracking=!1,this.showInfo=!1,this.titleText="",this.description="",be.track(this,["showInfo","titleText","description","maxHeight","enableCamera","isCameraTracking"]),this._loadingIndicatorHtml='<div class="cesium-infoBox-loadingContainer"><span class="cesium-infoBox-loading"></span></div>',this.cameraIconPath=void 0,be.defineProperty(this,"cameraIconPath",{get:function(){return!this.enableCamera||this.isCameraTracking?FCt:NCt}}),be.defineProperty(this,"_bodyless",{get:function(){return!l(this.description)||this.description.length===0}})}vZ.prototype.maxHeightOffset=function(e){return`${this.maxHeight-e}px`};Object.defineProperties(vZ.prototype,{cameraClicked:{get:function(){return this._cameraClicked}},closeClicked:{get:function(){return this._closeClicked}}});var iG=vZ;function oG(e){e=Rn(e);let t=document.createElement("div");t.className="cesium-infoBox",t.setAttribute("data-bind",'css: { "cesium-infoBox-visible" : showInfo, "cesium-infoBox-bodyless" : _bodyless }'),e.appendChild(t);let n=document.createElement("div");n.className="cesium-infoBox-title",n.setAttribute("data-bind","text: titleText"),t.appendChild(n);let i=document.createElement("button");i.type="button",i.className="cesium-button cesium-infoBox-camera",i.setAttribute("data-bind",'attr: { title: "Focus camera on object" },click: function () { cameraClicked.raiseEvent(this); },enable: enableCamera,cesiumSvgPath: { path: cameraIconPath, width: 32, height: 32 }'),t.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-infoBox-close",o.setAttribute("data-bind","click: function () { closeClicked.raiseEvent(this); }"),o.innerHTML="×",t.appendChild(o);let r=document.createElement("iframe");r.className="cesium-infoBox-iframe",r.setAttribute("sandbox","allow-same-origin allow-popups allow-forms"),r.setAttribute("data-bind","style : { maxHeight : maxHeightOffset(40) }"),r.setAttribute("allowfullscreen",!0),t.appendChild(r);let s=new iG;be.applyBindings(s,t),this._container=e,this._element=t,this._frame=r,this._viewModel=s,this._descriptionSubscription=void 0;let a=this;r.addEventListener("load",function(){let c=r.contentDocument,u=c.createElement("link");u.href=nn("Widgets/InfoBox/InfoBoxDescription.css"),u.rel="stylesheet",u.type="text/css";let f=c.createElement("div");f.className="cesium-infoBox-description",c.head.appendChild(u),c.body.appendChild(f),a._descriptionSubscription=Ra(s,"description",function(d){r.style.height="5px",f.innerHTML=d;let p=null,g=f.firstElementChild;if(g!==null&&f.childNodes.length===1){let x=window.getComputedStyle(g);if(x!==null){let b=x["background-color"],T=z.fromCssColorString(b);l(T)&&T.alpha!==0&&(p=x["background-color"])}}t.style["background-color"]=p;let m=f.getBoundingClientRect().height;r.style.height=`${m}px`})}),r.setAttribute("src","about:blank")}Object.defineProperties(oG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}},frame:{get:function(){return this._frame}}});oG.prototype.isDestroyed=function(){return!1};oG.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),l(this._descriptionSubscription)&&this._descriptionSubscription.dispose(),ue(this)};var rG=oG;function cCe(){this.showInstructions=!1;let e=this;this._command=vn(function(){e.showInstructions=!e.showInstructions}),this._showClick=vn(function(){e._touch=!1}),this._showTouch=vn(function(){e._touch=!0}),this._touch=!1,this.tooltip="Navigation Instructions",be.track(this,["tooltip","showInstructions","_touch"])}Object.defineProperties(cCe.prototype,{command:{get:function(){return this._command}},showClick:{get:function(){return this._showClick}},showTouch:{get:function(){return this._showTouch}}});var sG=cCe;function aG(e){let t=Rn(e.container),n=new sG,i=y(e.instructionsInitiallyVisible,!1);n.showInstructions=i,n._svgPath="M16,1.466C7.973,1.466,1.466,7.973,1.466,16c0,8.027,6.507,14.534,14.534,14.534c8.027,0,14.534-6.507,14.534-14.534C30.534,7.973,24.027,1.466,16,1.466z M17.328,24.371h-2.707v-2.596h2.707V24.371zM17.328,19.003v0.858h-2.707v-1.057c0-3.19,3.63-3.696,3.63-5.963c0-1.034-0.924-1.826-2.134-1.826c-1.254,0-2.354,0.924-2.354,0.924l-1.541-1.915c0,0,1.519-1.584,4.137-1.584c2.487,0,4.796,1.54,4.796,4.136C21.156,16.208,17.328,16.627,17.328,19.003z";let o=document.createElement("span");o.className="cesium-navigationHelpButton-wrapper",t.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-navigation-help-button",r.setAttribute("data-bind","attr: { title: tooltip },click: command,cesiumSvgPath: { path: _svgPath, width: 32, height: 32 }"),o.appendChild(r);let s=document.createElement("div");s.className="cesium-navigation-help",s.setAttribute("data-bind",'css: { "cesium-navigation-help-visible" : showInstructions}'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-navigation-button cesium-navigation-button-left",a.setAttribute("data-bind",'click: showClick, css: {"cesium-navigation-button-selected": !_touch, "cesium-navigation-button-unselected": _touch}');let c=document.createElement("img");c.src=nn("Widgets/Images/NavigationHelp/Mouse.svg"),c.className="cesium-navigation-button-icon",c.style.width="25px",c.style.height="25px",a.appendChild(c),a.appendChild(document.createTextNode("Mouse"));let u=document.createElement("button");u.type="button",u.className="cesium-navigation-button cesium-navigation-button-right",u.setAttribute("data-bind",'click: showTouch, css: {"cesium-navigation-button-selected": _touch, "cesium-navigation-button-unselected": !_touch}');let f=document.createElement("img");f.src=nn("Widgets/Images/NavigationHelp/Touch.svg"),f.className="cesium-navigation-button-icon",f.style.width="25px",f.style.height="25px",u.appendChild(f),u.appendChild(document.createTextNode("Touch")),s.appendChild(a),s.appendChild(u);let d=document.createElement("div");d.className="cesium-click-navigation-help cesium-navigation-help-instructions",d.setAttribute("data-bind",'css: { "cesium-click-navigation-help-visible" : !_touch}'),d.innerHTML=` <table> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseLeft.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">Left click + drag</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseRight.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Right click + drag, or</div> <div class="cesium-navigation-help-details">Mouse wheel scroll</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/MouseMiddle.svg")}" width="48" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Rotate view</div> <div class="cesium-navigation-help-details">Middle click + drag, or</div> <div class="cesium-navigation-help-details">CTRL + Left/Right click + drag</div> </td> </tr> </table>`,s.appendChild(d);let p=document.createElement("div");p.className="cesium-touch-navigation-help cesium-navigation-help-instructions",p.setAttribute("data-bind",'css: { "cesium-touch-navigation-help-visible" : _touch}'),p.innerHTML=` <table> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchDrag.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-pan">Pan view</div> <div class="cesium-navigation-help-details">One finger drag</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchZoom.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-zoom">Zoom view</div> <div class="cesium-navigation-help-details">Two finger pinch</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchTilt.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-rotate">Tilt view</div> <div class="cesium-navigation-help-details">Two finger drag, same direction</div> </td> </tr> <tr> <td><img src="${nn("Widgets/Images/NavigationHelp/TouchRotate.svg")}" width="70" height="48" /></td> <td> <div class="cesium-navigation-help-tilt">Rotate view</div> <div class="cesium-navigation-help-details">Two finger drag, opposite direction</div> </td> </tr> </table>`,s.appendChild(p),be.applyBindings(n,o),this._container=t,this._viewModel=n,this._wrapper=o,this._closeInstructions=function(g){o.contains(g.target)||(n.showInstructions=!1)},jt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeInstructions,!0):(document.addEventListener("mousedown",this._closeInstructions,!0),document.addEventListener("touchstart",this._closeInstructions,!0))}Object.defineProperties(aG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});aG.prototype.isDestroyed=function(){return!1};aG.prototype.destroy=function(){return jt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeInstructions,!0):(document.removeEventListener("mousedown",this._closeInstructions,!0),document.removeEventListener("touchstart",this._closeInstructions,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var cG=aG;function wZ(e){this._scene=e.scene,this.lowFrameRateMessage=y(e.lowFrameRateMessage,"This application appears to be performing poorly on your system. Please try using a different web browser or updating your video drivers."),this.lowFrameRateMessageDismissed=!1,this.showingLowFrameRateMessage=!1,be.track(this,["lowFrameRateMessage","lowFrameRateMessageDismissed","showingLowFrameRateMessage"]);let t=this;this._dismissMessage=vn(function(){t.showingLowFrameRateMessage=!1,t.lowFrameRateMessageDismissed=!0});let n=s8.fromScene(e.scene);this._unsubscribeLowFrameRate=n.lowFrameRate.addEventListener(function(){t.lowFrameRateMessageDismissed||(t.showingLowFrameRateMessage=!0)}),this._unsubscribeNominalFrameRate=n.nominalFrameRate.addEventListener(function(){t.showingLowFrameRateMessage=!1})}Object.defineProperties(wZ.prototype,{scene:{get:function(){return this._scene}},dismissMessage:{get:function(){return this._dismissMessage}}});wZ.prototype.destroy=function(){return this._unsubscribeLowFrameRate(),this._unsubscribeNominalFrameRate(),ue(this)};var lG=wZ;function uG(e){let t=Rn(e.container),n=new lG(e),i=document.createElement("div");i.className="cesium-performance-watchdog-message-area",i.setAttribute("data-bind","visible: showingLowFrameRateMessage");let o=document.createElement("button");o.setAttribute("type","button"),o.className="cesium-performance-watchdog-message-dismiss",o.innerHTML="×",o.setAttribute("data-bind","click: dismissMessage"),i.appendChild(o);let r=document.createElement("div");r.className="cesium-performance-watchdog-message",r.setAttribute("data-bind","html: lowFrameRateMessage"),i.appendChild(r),t.appendChild(i),be.applyBindings(n,i),this._container=t,this._viewModel=n,this._element=i}Object.defineProperties(uG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});uG.prototype.isDestroyed=function(){return!1};uG.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var fG=uG;function dG(e){this._scene=e,this._orthographic=e.camera.frustum instanceof rn,this._flightInProgress=!1,this.dropDownVisible=!1,this.tooltipPerspective="Perspective Projection",this.tooltipOrthographic="Orthographic Projection",this.selectedTooltip=void 0,this.sceneMode=e.mode,be.track(this,["_orthographic","_flightInProgress","sceneMode","dropDownVisible","tooltipPerspective","tooltipOrthographic"]);let t=this;be.defineProperty(this,"selectedTooltip",function(){return t._orthographic?t.tooltipOrthographic:t.tooltipPerspective}),this._toggleDropDown=vn(function(){t.sceneMode===ne.SCENE2D||t._flightInProgress||(t.dropDownVisible=!t.dropDownVisible)}),this._eventHelper=new _r,this._eventHelper.add(e.morphComplete,function(n,i,o,r){t.sceneMode=o,t._orthographic=o===ne.SCENE2D||t._scene.camera.frustum instanceof rn}),this._eventHelper.add(e.preRender,function(){t._flightInProgress=l(e.camera._currentFlight)}),this._switchToPerspective=vn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToPerspectiveFrustum(),t._orthographic=!1,t.dropDownVisible=!1)}),this._switchToOrthographic=vn(function(){t.sceneMode!==ne.SCENE2D&&(t._scene.camera.switchToOrthographicFrustum(),t._orthographic=!0,t.dropDownVisible=!1)}),this._sceneMode=ne}Object.defineProperties(dG.prototype,{scene:{get:function(){return this._scene}},toggleDropDown:{get:function(){return this._toggleDropDown}},switchToPerspective:{get:function(){return this._switchToPerspective}},switchToOrthographic:{get:function(){return this._switchToOrthographic}},isOrthographicProjection:{get:function(){return this._orthographic}}});dG.prototype.isDestroyed=function(){return!1};dG.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var hG=dG;var BCt="M 28.15625,10.4375 9.125,13.21875 13.75,43.25 41.75,55.09375 50.8125,37 54.5,11.9375 z m 0.125,3 19.976451,0.394265 L 43.03125,16.875 22.6875,14.28125 z M 50.971746,15.705477 47.90625,36.03125 42.53125,46 44.84375,19.3125 z M 12.625,16.03125 l 29.15625,3.6875 -2.65625,31 L 16.4375,41.125 z",kCt="m 31.560594,6.5254438 -20.75,12.4687502 0.1875,24.5625 22.28125,11.8125 19.5,-12 0.65625,-0.375 0,-0.75 0.0312,-23.21875 z m 0.0625,3.125 16.65625,9.5000002 -16.125,10.28125 -17.34375,-9.71875 z m 18.96875,11.1875002 0.15625,20.65625 -17.46875,10.59375 0.15625,-20.28125 z m -37.0625,1.25 17.21875,9.625 -0.15625,19.21875 -16.9375,-9 z";function mG(e,t){e=Rn(e);let n=new hG(t);n._perspectivePath=BCt,n._orthographicPath=kCt;let i=document.createElement("span");i.className="cesium-projectionPicker-wrapper cesium-toolbar-button",e.appendChild(i);let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-toolbar-button",o.setAttribute("data-bind",'css: { "cesium-projectionPicker-buttonPerspective": !_orthographic, "cesium-projectionPicker-buttonOrthographic": _orthographic, "cesium-button-disabled" : sceneMode === _sceneMode.SCENE2D || _flightInProgress, "cesium-projectionPicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),o.innerHTML='<!-- ko cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64, css: "cesium-projectionPicker-iconPerspective" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64, css: "cesium-projectionPicker-iconOrthographic" } --><!-- /ko -->',i.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",r.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && _orthographic), "cesium-projectionPicker-none" : !_orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible },attr: { title: tooltipPerspective },click: switchToPerspective,cesiumSvgPath: { path: _perspectivePath, width: 64, height: 64 }'),i.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-projectionPicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-projectionPicker-visible" : (dropDownVisible && !_orthographic), "cesium-projectionPicker-none" : _orthographic, "cesium-projectionPicker-hidden" : !dropDownVisible},attr: { title: tooltipOrthographic },click: switchToOrthographic,cesiumSvgPath: { path: _orthographicPath, width: 64, height: 64 }'),i.appendChild(s),be.applyBindings(n,i),this._viewModel=n,this._container=e,this._wrapper=i,this._closeDropDown=function(a){i.contains(a.target)||(n.dropDownVisible=!1)},jt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(mG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});mG.prototype.isDestroyed=function(){return!1};mG.prototype.destroy=function(){return this._viewModel.destroy(),jt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var pG=mG;function _G(e,t){this._scene=e;let n=this,i=function(o,r,s,a){n.sceneMode=s,n.dropDownVisible=!1};this._eventHelper=new _r,this._eventHelper.add(e.morphStart,i),this._duration=y(t,2),this.sceneMode=e.mode,this.dropDownVisible=!1,this.tooltip2D="2D",this.tooltip3D="3D",this.tooltipColumbusView="Columbus View",be.track(this,["sceneMode","dropDownVisible","tooltip2D","tooltip3D","tooltipColumbusView"]),this.selectedTooltip=void 0,be.defineProperty(this,"selectedTooltip",function(){let o=n.sceneMode;return o===ne.SCENE2D?n.tooltip2D:o===ne.SCENE3D?n.tooltip3D:n.tooltipColumbusView}),this._toggleDropDown=vn(function(){n.dropDownVisible=!n.dropDownVisible}),this._morphTo2D=vn(function(){e.morphTo2D(n._duration)}),this._morphTo3D=vn(function(){e.morphTo3D(n._duration)}),this._morphToColumbusView=vn(function(){e.morphToColumbusView(n._duration)}),this._sceneMode=ne}Object.defineProperties(_G.prototype,{scene:{get:function(){return this._scene}},duration:{get:function(){return this._duration},set:function(e){this._duration=e}},toggleDropDown:{get:function(){return this._toggleDropDown}},morphTo2D:{get:function(){return this._morphTo2D}},morphTo3D:{get:function(){return this._morphTo3D}},morphToColumbusView:{get:function(){return this._morphToColumbusView}}});_G.prototype.isDestroyed=function(){return!1};_G.prototype.destroy=function(){this._eventHelper.removeAll(),ue(this)};var gG=_G;var VCt="m 32.401392,4.9330437 c -7.087603,0 -14.096095,2.884602 -19.10793,7.8946843 -5.0118352,5.010083 -7.9296167,11.987468 -7.9296167,19.072999 0,7.085531 2.9177815,14.097848 7.9296167,19.107931 4.837653,4.835961 11.541408,7.631372 18.374354,7.82482 0.05712,0.01231 0.454119,0.139729 0.454119,0.139729 l 0.03493,-0.104797 c 0.08246,7.84e-4 0.162033,0.03493 0.244525,0.03493 0.08304,0 0.161515,-0.03414 0.244526,-0.03493 l 0.03493,0.104797 c 0,0 0.309474,-0.129487 0.349323,-0.139729 6.867765,-0.168094 13.582903,-2.965206 18.444218,-7.82482 2.558195,-2.5573 4.551081,-5.638134 5.903547,-8.977584 1.297191,-3.202966 2.02607,-6.661489 2.02607,-10.130347 0,-6.237309 -2.366261,-12.31219 -6.322734,-17.116794 -0.0034,-0.02316 0.0049,-0.04488 0,-0.06986 -0.01733,-0.08745 -0.104529,-0.278855 -0.104797,-0.279458 -5.31e-4,-0.0012 -0.522988,-0.628147 -0.523984,-0.62878 -3.47e-4,-2.2e-4 -0.133444,-0.03532 -0.244525,-0.06987 C 51.944299,13.447603 51.751076,13.104317 51.474391,12.827728 46.462556,7.8176457 39.488996,4.9330437 32.401392,4.9330437 z m -2.130866,3.5281554 0.104797,9.6762289 c -4.111695,-0.08361 -7.109829,-0.423664 -9.257041,-0.943171 1.198093,-2.269271 2.524531,-4.124404 3.91241,-5.414496 2.167498,-2.0147811 3.950145,-2.8540169 5.239834,-3.3185619 z m 2.794579,0 c 1.280302,0.4754953 3.022186,1.3285948 5.065173,3.2486979 1.424667,1.338973 2.788862,3.303645 3.982275,5.728886 -2.29082,0.403367 -5.381258,0.621049 -8.942651,0.698645 L 33.065105,8.4611991 z m 5.728886,0.2445256 c 4.004072,1.1230822 7.793098,3.1481363 10.724195,6.0782083 0.03468,0.03466 0.07033,0.06991 0.104797,0.104797 -0.45375,0.313891 -0.923054,0.663002 -1.956205,1.082899 -0.647388,0.263114 -1.906242,0.477396 -2.829511,0.733577 -1.382296,-2.988132 -3.027146,-5.368585 -4.785716,-7.0213781 -0.422866,-0.397432 -0.835818,-0.6453247 -1.25756,-0.9781032 z m -15.33525,0.7685092 c -0.106753,0.09503 -0.207753,0.145402 -0.31439,0.244526 -1.684973,1.5662541 -3.298068,3.8232211 -4.680919,6.5672591 -0.343797,-0.14942 -1.035052,-0.273198 -1.292493,-0.419186 -0.956528,-0.542427 -1.362964,-1.022024 -1.537018,-1.292493 -0.0241,-0.03745 -0.01868,-0.0401 -0.03493,-0.06986 2.250095,-2.163342 4.948824,-3.869984 7.859752,-5.0302421 z m -9.641296,7.0912431 c 0.464973,0.571618 0.937729,1.169056 1.956205,1.746612 0.349907,0.198425 1.107143,0.335404 1.537018,0.523983 -1.20166,3.172984 -1.998037,7.051901 -2.165798,11.772162 C 14.256557,30.361384 12.934823,30.161483 12.280427,29.90959 10.644437,29.279855 9.6888882,28.674891 9.1714586,28.267775 8.6540289,27.860658 8.6474751,27.778724 8.6474751,27.778724 l -0.069864,0.03493 C 9.3100294,23.691285 11.163248,19.798527 13.817445,16.565477 z m 37.552149,0.523984 c 2.548924,3.289983 4.265057,7.202594 4.890513,11.318043 -0.650428,0.410896 -1.756876,1.001936 -3.563088,1.606882 -1.171552,0.392383 -3.163859,0.759153 -4.960377,1.117832 -0.04367,-4.752703 -0.784809,-8.591423 -1.88634,-11.807094 0.917574,-0.263678 2.170552,-0.486495 2.864443,-0.76851 1.274693,-0.518066 2.003942,-1.001558 2.654849,-1.467153 z m -31.439008,2.619917 c 2.487341,0.672766 5.775813,1.137775 10.479669,1.222628 l 0.104797,10.689263 0,0.03493 0,0.733577 c -5.435005,-0.09059 -9.512219,-0.519044 -12.610536,-1.117831 0.106127,-4.776683 0.879334,-8.55791 2.02607,-11.562569 z m 23.264866,0.31439 c 1.073459,3.067541 1.833795,6.821314 1.816476,11.702298 -3.054474,0.423245 -7.062018,0.648559 -11.702298,0.698644 l 0,-0.838373 -0.104796,-10.654331 c 4.082416,-0.0864 7.404468,-0.403886 9.990618,-0.908238 z M 8.2632205,30.922625 c 0.7558676,0.510548 1.5529563,1.013339 3.0041715,1.57195 0.937518,0.360875 2.612202,0.647642 3.91241,0.978102 0.112814,3.85566 0.703989,7.107756 1.606883,9.920754 -1.147172,-0.324262 -2.644553,-0.640648 -3.423359,-0.978102 -1.516688,-0.657177 -2.386627,-1.287332 -2.864443,-1.71168 -0.477816,-0.424347 -0.489051,-0.489051 -0.489051,-0.489051 L 9.8002387,40.319395 C 8.791691,37.621767 8.1584238,34.769583 8.1584238,31.900727 c 0,-0.330153 0.090589,-0.648169 0.1047967,-0.978102 z m 48.2763445,0.419186 c 0.0047,0.188973 0.06986,0.36991 0.06986,0.558916 0,2.938869 -0.620228,5.873558 -1.676747,8.628261 -0.07435,0.07583 -0.06552,0.07411 -0.454119,0.349323 -0.606965,0.429857 -1.631665,1.042044 -3.318562,1.676747 -1.208528,0.454713 -3.204964,0.850894 -5.135038,1.25756 0.84593,-2.765726 1.41808,-6.005357 1.606883,-9.815957 2.232369,-0.413371 4.483758,-0.840201 5.938479,-1.327425 1.410632,-0.472457 2.153108,-0.89469 2.96924,-1.327425 z m -38.530252,2.864443 c 3.208141,0.56697 7.372279,0.898588 12.575603,0.978103 l 0.174662,9.885821 c -4.392517,-0.06139 -8.106722,-0.320566 -10.863925,-0.803441 -1.051954,-2.664695 -1.692909,-6.043794 -1.88634,-10.060483 z m 26.793022,0.31439 c -0.246298,3.923551 -0.877762,7.263679 -1.816476,9.885822 -2.561957,0.361954 -5.766249,0.560708 -9.431703,0.62878 l -0.174661,-9.815957 c 4.491734,-0.04969 8.334769,-0.293032 11.42284,-0.698645 z M 12.035901,44.860585 c 0.09977,0.04523 0.105535,0.09465 0.209594,0.139729 1.337656,0.579602 3.441099,1.058072 5.589157,1.537018 1.545042,3.399208 3.548524,5.969402 5.589157,7.789888 -3.034411,-1.215537 -5.871615,-3.007978 -8.174142,-5.309699 -1.245911,-1.245475 -2.271794,-2.662961 -3.213766,-4.156936 z m 40.69605,0 c -0.941972,1.493975 -1.967855,2.911461 -3.213765,4.156936 -2.74253,2.741571 -6.244106,4.696717 -9.955686,5.868615 0.261347,-0.241079 0.507495,-0.394491 0.768509,-0.663713 1.674841,-1.727516 3.320792,-4.181056 4.645987,-7.265904 2.962447,-0.503021 5.408965,-1.122293 7.161107,-1.781544 0.284034,-0.106865 0.337297,-0.207323 0.593848,-0.31439 z m -31.404076,2.305527 c 2.645807,0.376448 5.701178,0.649995 9.466635,0.698645 l 0.139729,7.789888 c -1.38739,-0.480844 -3.316218,-1.29837 -5.659022,-3.388427 -1.388822,-1.238993 -2.743668,-3.0113 -3.947342,-5.100106 z m 20.365491,0.104797 c -1.04872,2.041937 -2.174337,3.779068 -3.353494,4.995309 -1.853177,1.911459 -3.425515,2.82679 -4.611055,3.353494 l -0.139729,-7.789887 c 3.13091,-0.05714 5.728238,-0.278725 8.104278,-0.558916 z",UCt="m 2.9825053,17.550598 0,1.368113 0,26.267766 0,1.368113 1.36811,0 54.9981397,0 1.36811,0 0,-1.368113 0,-26.267766 0,-1.368113 -1.36811,0 -54.9981397,0 -1.36811,0 z m 2.73623,2.736226 10.3292497,0 0,10.466063 -10.3292497,0 0,-10.466063 z m 13.0654697,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 11.69737,0 0,10.466063 -11.69737,0 0,-10.466063 z m 14.43359,0 10.32926,0 0,10.466063 -10.32926,0 0,-10.466063 z m -41.9326497,13.202288 10.3292497,0 0,10.329252 -10.3292497,0 0,-10.329252 z m 13.0654697,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 11.69737,0 0,10.329252 -11.69737,0 0,-10.329252 z m 14.43359,0 10.32926,0 0,10.329252 -10.32926,0 0,-10.329252 z",zCt="m 14.723969,17.675598 -0.340489,0.817175 -11.1680536,26.183638 -0.817175,1.872692 2.076986,0 54.7506996,0 2.07698,0 -0.81717,-1.872692 -11.16805,-26.183638 -0.34049,-0.817175 -0.91933,0 -32.414586,0 -0.919322,0 z m 1.838643,2.723916 6.196908,0 -2.928209,10.418977 -7.729111,0 4.460412,-10.418977 z m 9.02297,0 4.903049,0 0,10.418977 -7.831258,0 2.928209,-10.418977 z m 7.626964,0 5.584031,0 2.62176,10.418977 -8.205791,0 0,-10.418977 z m 8.410081,0 5.51593,0 4.46042,10.418977 -7.38863,0 -2.58772,-10.418977 z m -30.678091,13.142892 8.103649,0 -2.89416,10.282782 -9.6018026,0 4.3923136,-10.282782 z m 10.929711,0 8.614384,0 0,10.282782 -11.508544,0 2.89416,-10.282782 z m 11.338299,0 8.852721,0 2.58772,10.282782 -11.440441,0 0,-10.282782 z m 11.678781,0 7.86531,0 4.39231,10.282782 -9.6699,0 -2.58772,-10.282782 z";function yG(e,t,n){e=Rn(e);let i=new gG(t,n);i._globePath=VCt,i._flatMapPath=UCt,i._columbusViewPath=zCt;let o=document.createElement("span");o.className="cesium-sceneModePicker-wrapper cesium-toolbar-button",e.appendChild(o);let r=document.createElement("button");r.type="button",r.className="cesium-button cesium-toolbar-button",r.setAttribute("data-bind",'css: { "cesium-sceneModePicker-button2D": sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-button3D": sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-buttonColumbusView": sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-selected": dropDownVisible },attr: { title: selectedTooltip },click: toggleDropDown'),r.innerHTML='<!-- ko cesiumSvgPath: { path: _globePath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon3D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-icon2D" } --><!-- /ko --><!-- ko cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64, css: "cesium-sceneModePicker-slide-svg cesium-sceneModePicker-iconColumbusView" } --><!-- /ko -->',o.appendChild(r);let s=document.createElement("button");s.type="button",s.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",s.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE3D)) || (!dropDownVisible && (sceneMode === _sceneMode.SCENE3D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE3D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip3D },click: morphTo3D,cesiumSvgPath: { path: _globePath, width: 64, height: 64 }'),o.appendChild(s);let a=document.createElement("button");a.type="button",a.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",a.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.SCENE2D)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.SCENE2D, "cesium-sceneModePicker-hidden" : !dropDownVisible },attr: { title: tooltip2D },click: morphTo2D,cesiumSvgPath: { path: _flatMapPath, width: 64, height: 64 }'),o.appendChild(a);let c=document.createElement("button");c.type="button",c.className="cesium-button cesium-toolbar-button cesium-sceneModePicker-dropDown-icon",c.setAttribute("data-bind",'css: { "cesium-sceneModePicker-visible" : (dropDownVisible && (sceneMode !== _sceneMode.COLUMBUS_VIEW)) || (!dropDownVisible && (sceneMode === _sceneMode.COLUMBUS_VIEW)), "cesium-sceneModePicker-none" : sceneMode === _sceneMode.COLUMBUS_VIEW, "cesium-sceneModePicker-hidden" : !dropDownVisible},attr: { title: tooltipColumbusView },click: morphToColumbusView,cesiumSvgPath: { path: _columbusViewPath, width: 64, height: 64 }'),o.appendChild(c),be.applyBindings(i,o),this._viewModel=i,this._container=e,this._wrapper=o,this._closeDropDown=function(u){o.contains(u.target)||(i.dropDownVisible=!1)},jt.supportsPointerEvents()?document.addEventListener("pointerdown",this._closeDropDown,!0):(document.addEventListener("mousedown",this._closeDropDown,!0),document.addEventListener("touchstart",this._closeDropDown,!0))}Object.defineProperties(yG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});yG.prototype.isDestroyed=function(){return!1};yG.prototype.destroy=function(){return this._viewModel.destroy(),jt.supportsPointerEvents()?document.removeEventListener("pointerdown",this._closeDropDown,!0):(document.removeEventListener("mousedown",this._closeDropDown,!0),document.removeEventListener("touchstart",this._closeDropDown,!0)),be.cleanNode(this._wrapper),this._container.removeChild(this._wrapper),ue(this)};var xG=yG;var HCt=new U,bG="-1000px";function UP(e,t,n){this._scene=e,this._screenPositionX=bG,this._screenPositionY=bG,this._tweens=e.tweens,this._container=y(n,document.body),this._selectionIndicatorElement=t,this._scale=1,this.position=void 0,this.showSelection=!1,be.track(this,["position","_screenPositionX","_screenPositionY","_scale","showSelection"]),this.isVisible=void 0,be.defineProperty(this,"isVisible",{get:function(){return this.showSelection&&l(this.position)}}),be.defineProperty(this,"_transform",{get:function(){return`scale(${this._scale})`}}),this.computeScreenSpacePosition=function(i,o){return Vi.worldToWindowCoordinates(e,i,o)}}UP.prototype.update=function(){if(this.showSelection&&l(this.position)){let e=this.computeScreenSpacePosition(this.position,HCt);if(!l(e))this._screenPositionX=bG,this._screenPositionY=bG;else{let t=this._container,n=t.parentNode.clientWidth,i=t.parentNode.clientHeight,o=this._selectionIndicatorElement.clientWidth,r=o*.5;e.x=Math.min(Math.max(e.x,-o),n+o)-r,e.y=Math.min(Math.max(e.y,-o),i+o)-r,this._screenPositionX=`${Math.floor(e.x+.25)}px`,this._screenPositionY=`${Math.floor(e.y+.25)}px`}}};UP.prototype.animateAppear=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:2,stopValue:1,duration:.8,easingFunction:Kr.EXPONENTIAL_OUT})};UP.prototype.animateDepart=function(){this._tweens.addProperty({object:this,property:"_scale",startValue:this._scale,stopValue:1.5,duration:.8,easingFunction:Kr.EXPONENTIAL_OUT})};Object.defineProperties(UP.prototype,{container:{get:function(){return this._container}},selectionIndicatorElement:{get:function(){return this._selectionIndicatorElement}},scene:{get:function(){return this._scene}}});var TG=UP;function AG(e,t){e=Rn(e),this._container=e;let n=document.createElement("div");n.className="cesium-selection-wrapper",n.setAttribute("data-bind",'style: { "top" : _screenPositionY, "left" : _screenPositionX },css: { "cesium-selection-wrapper-visible" : isVisible }'),e.appendChild(n),this._element=n;let i="http://www.w3.org/2000/svg",o="M -34 -34 L -34 -11.25 L -30 -15.25 L -30 -30 L -15.25 -30 L -11.25 -34 L -34 -34 z M 11.25 -34 L 15.25 -30 L 30 -30 L 30 -15.25 L 34 -11.25 L 34 -34 L 11.25 -34 z M -34 11.25 L -34 34 L -11.25 34 L -15.25 30 L -30 30 L -30 15.25 L -34 11.25 z M 34 11.25 L 30 15.25 L 30 30 L 15.25 30 L 11.25 34 L 34 34 L 34 11.25 z",r=document.createElementNS(i,"svg:svg");r.setAttribute("width",160),r.setAttribute("height",160),r.setAttribute("viewBox","0 0 160 160");let s=document.createElementNS(i,"g");s.setAttribute("transform","translate(80,80)"),r.appendChild(s);let a=document.createElementNS(i,"path");a.setAttribute("data-bind","attr: { transform: _transform }"),a.setAttribute("d",o),s.appendChild(a),n.appendChild(r);let c=new TG(t,this._element,this._container);this._viewModel=c,be.applyBindings(this._viewModel,this._element)}Object.defineProperties(AG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});AG.prototype.isDestroyed=function(){return!1};AG.prototype.destroy=function(){let e=this._container;return be.cleanNode(this._element),e.removeChild(this._element),ue(this)};var CG=AG;function zb(e,t,n){this._color=e,this._height=t,this._base=y(n,0)}zb.prototype.getHeight=function(){return this._height};zb.prototype.getBase=function(){return this._base};zb.prototype.getStartTime=function(){return this._start};zb.prototype.getStopTime=function(){return this._stop};zb.prototype.setRange=function(e,t){this._start=e,this._stop=t};zb.prototype.render=function(e){let t="";if(this._start&&this._stop&&this._color){let n=K.secondsDifference(this._start,e.epochJulian),i=Math.round(e.timeBarWidth*e.getAlpha(n)),o=K.secondsDifference(this._stop,e.epochJulian),r=Math.round(e.timeBarWidth*e.getAlpha(o))-i;i<0&&(r+=i,i=0),i+r>e.timeBarWidth&&(r=e.timeBarWidth-i),r>0&&(t=`<span class="cesium-timeline-highlight" style="left: ${i.toString()}px; width: ${r.toString()}px; bottom: ${this._base.toString()}px; height: ${this._height}px; background-color: ${this._color};"></span>`)}return t};var EG=zb;function lCe(e,t,n,i){this.interval=e,this.height=t,this.color=n||new z(.5,.5,.5,1),this.backgroundColor=i||new z(0,0,0,0)}lCe.prototype.render=function(e,t){let n=this.interval.start,i=this.interval.stop,o=t.startJulian,r=K.addSeconds(t.startJulian,t.duration,new K);if(K.lessThan(n,o)&&K.greaterThan(i,r))e.fillStyle=this.color.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height);else if(K.lessThanOrEquals(n,r)&&K.greaterThanOrEquals(i,o)){let s,a,c;for(s=0;s<t.timeBarWidth;++s){let u=K.addSeconds(t.startJulian,s/t.timeBarWidth*t.duration,new K);!l(a)&&K.greaterThanOrEquals(u,n)?a=s:!l(c)&&K.greaterThanOrEquals(u,i)&&(c=s)}e.fillStyle=this.backgroundColor.toCssColorString(),e.fillRect(0,t.y,t.timeBarWidth,this.height),l(a)&&(l(c)||(c=t.timeBarWidth),e.fillStyle=this.color.toCssColorString(),e.fillRect(a,t.y,Math.max(c-a,1),this.height))}};var SG=lCe;var DZ=1e12,Zf={none:0,scrub:1,slide:2,zoom:3,touchOnly:4},Qc={none:0,scrub:1,slideZoom:2,singleTap:3,ignore:4},d0=[.001,.002,.005,.01,.02,.05,.1,.25,.5,1,2,5,10,15,30,60,120,300,600,900,1800,3600,7200,14400,21600,43200,86400,172800,345600,604800,1296e3,2592e3,5184e3,7776e3,15552e3,31536e3,63072e3,126144e3,15768e4,31536e4,63072e4,126144e4,15768e5,31536e5,63072e5,126144e5,15768e6,31536e6],GCt=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"];function Jc(e,t){e=Rn(e);let n=e.ownerDocument;this.container=e;let i=n.createElement("div");i.className="cesium-timeline-main",e.appendChild(i),this._topDiv=i,this._endJulian=void 0,this._epochJulian=void 0,this._lastXPos=void 0,this._scrubElement=void 0,this._startJulian=void 0,this._timeBarSecondsSpan=void 0,this._clock=t,this._scrubJulian=t.currentTime,this._mainTicSpan=-1,this._mouseMode=Zf.none,this._touchMode=Qc.none,this._touchState={centerX:0,spanX:0},this._mouseX=0,this._timelineDrag=0,this._timelineDragLocation=void 0,this._lastHeight=void 0,this._lastWidth=void 0,this._topDiv.innerHTML='<div class="cesium-timeline-bar"></div><div class="cesium-timeline-trackContainer"><canvas class="cesium-timeline-tracks" width="10" height="1"></canvas></div><div class="cesium-timeline-needle"></div><span class="cesium-timeline-ruler"></span>',this._timeBarEle=this._topDiv.childNodes[0],this._trackContainer=this._topDiv.childNodes[1],this._trackListEle=this._topDiv.childNodes[1].childNodes[0],this._needleEle=this._topDiv.childNodes[2],this._rulerEle=this._topDiv.childNodes[3],this._context=this._trackListEle.getContext("2d"),this._trackList=[],this._highlightRanges=[],this.zoomTo(t.startTime,t.stopTime),this._onMouseDown=WCt(this),this._onMouseUp=jCt(this),this._onMouseMove=qCt(this),this._onMouseWheel=YCt(this),this._onTouchStart=XCt(this),this._onTouchMove=ZCt(this),this._onTouchEnd=KCt(this);let o=this._timeBarEle;n.addEventListener("mouseup",this._onMouseUp,!1),n.addEventListener("mousemove",this._onMouseMove,!1),o.addEventListener("mousedown",this._onMouseDown,!1),o.addEventListener("DOMMouseScroll",this._onMouseWheel,!1),o.addEventListener("mousewheel",this._onMouseWheel,!1),o.addEventListener("touchstart",this._onTouchStart,!1),o.addEventListener("touchmove",this._onTouchMove,!1),o.addEventListener("touchend",this._onTouchEnd,!1),o.addEventListener("touchcancel",this._onTouchEnd,!1),this._topDiv.oncontextmenu=function(){return!1},t.onTick.addEventListener(this.updateFromClock,this),this.updateFromClock()}Jc.prototype.addEventListener=function(e,t,n){this._topDiv.addEventListener(e,t,n)};Jc.prototype.removeEventListener=function(e,t,n){this._topDiv.removeEventListener(e,t,n)};Jc.prototype.isDestroyed=function(){return!1};Jc.prototype.destroy=function(){this._clock.onTick.removeEventListener(this.updateFromClock,this);let e=this.container.ownerDocument;e.removeEventListener("mouseup",this._onMouseUp,!1),e.removeEventListener("mousemove",this._onMouseMove,!1);let t=this._timeBarEle;t.removeEventListener("mousedown",this._onMouseDown,!1),t.removeEventListener("DOMMouseScroll",this._onMouseWheel,!1),t.removeEventListener("mousewheel",this._onMouseWheel,!1),t.removeEventListener("touchstart",this._onTouchStart,!1),t.removeEventListener("touchmove",this._onTouchMove,!1),t.removeEventListener("touchend",this._onTouchEnd,!1),t.removeEventListener("touchcancel",this._onTouchEnd,!1),this.container.removeChild(this._topDiv),ue(this)};Jc.prototype.addHighlightRange=function(e,t,n){let i=new EG(e,t,n);return this._highlightRanges.push(i),this.resize(),i};Jc.prototype.addTrack=function(e,t,n,i){let o=new SG(e,t,n,i);return this._trackList.push(o),this._lastHeight=void 0,this.resize(),o};Jc.prototype.zoomTo=function(e,t){if(this._startJulian=e,this._endJulian=t,this._timeBarSecondsSpan=K.secondsDifference(t,e),this._clock&&this._clock.clockRange!==Yr.UNBOUNDED){let i=this._clock.startTime,o=this._clock.stopTime,r=K.secondsDifference(o,i),s=K.secondsDifference(i,this._startJulian),a=K.secondsDifference(o,this._endJulian);this._timeBarSecondsSpan>=r?(this._timeBarSecondsSpan=r,this._startJulian=this._clock.startTime,this._endJulian=this._clock.stopTime):s>0?(this._endJulian=K.addSeconds(this._endJulian,s,new K),this._startJulian=i,this._timeBarSecondsSpan=K.secondsDifference(this._endJulian,this._startJulian)):a<0&&(this._startJulian=K.addSeconds(this._startJulian,a,new K),this._endJulian=o,this._timeBarSecondsSpan=K.secondsDifference(this._endJulian,this._startJulian))}this._makeTics();let n=document.createEvent("Event");n.initEvent("setzoom",!0,!0),n.startJulian=this._startJulian,n.endJulian=this._endJulian,n.epochJulian=this._epochJulian,n.totalSpan=this._timeBarSecondsSpan,n.mainTicSpan=this._mainTicSpan,this._topDiv.dispatchEvent(n)};Jc.prototype.zoomFrom=function(e){let t=K.secondsDifference(this._scrubJulian,this._startJulian);e>1||t<0||t>this._timeBarSecondsSpan?t=this._timeBarSecondsSpan*.5:t+=t-this._timeBarSecondsSpan*.5;let n=this._timeBarSecondsSpan-t;this.zoomTo(K.addSeconds(this._startJulian,t-t*e,new K),K.addSeconds(this._endJulian,n*e-n,new K))};function IZ(e){return e<10?`0${e.toString()}`:e.toString()}Jc.prototype.makeLabel=function(e){let t=K.toGregorianDate(e),n=t.millisecond,i=" UTC";if(n>0&&this._timeBarSecondsSpan<3600){for(i=Math.floor(n).toString();i.length<3;)i=`0${i}`;i=`.${i}`}return`${GCt[t.month-1]} ${t.day} ${t.year} ${IZ(t.hour)}:${IZ(t.minute)}:${IZ(t.second)}${i}`};Jc.prototype.smallestTicInPixels=7;Jc.prototype._makeTics=function(){let e=this._timeBarEle,t=K.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan),i=n-8,o,r=this;this._needleEle.style.left=`${n.toString()}px`;let s="",a=.01,c=31536e6,u=1e-10,f=0,d=this._timeBarSecondsSpan;d<a?(d=a,this._timeBarSecondsSpan=a,this._endJulian=K.addSeconds(this._startJulian,a,new K)):d>c&&(d=c,this._timeBarSecondsSpan=c,this._endJulian=K.addSeconds(this._startJulian,c,new K));let p=this._timeBarEle.clientWidth;p<10&&(p=10);let g=this._startJulian,m=Math.min(d/p*1e-5,.4),x,b=K.toGregorianDate(g);d>31536e4?x=K.fromDate(new Date(Date.UTC(Math.floor(b.year/100)*100,0))):d>31536e3?x=K.fromDate(new Date(Date.UTC(Math.floor(b.year/10)*10,0))):d>86400?x=K.fromDate(new Date(Date.UTC(b.year,0))):x=K.fromDate(new Date(Date.UTC(b.year,b.month,b.day)));let T=K.secondsDifference(this._startJulian,K.addSeconds(x,m,new K)),A=T+d;this._epochJulian=x;function C(k){return Math.floor(T/k)*k}function S(k,W){return Math.ceil(k/W+.5)*W}function v(k){return(k-T)/d}function D(k,W){return k-W*Math.round(k/W)}this._rulerEle.innerHTML=this.makeLabel(K.addSeconds(this._endJulian,-a,new K));let O=this._rulerEle.offsetWidth+20;O<30&&(O=180);let R=f;f-=u;let M={startTime:T,startJulian:g,epochJulian:x,duration:d,timeBarWidth:p,getAlpha:v};this._highlightRanges.forEach(function(k){s+=k.render(M)});let L=0,_=0,E=0,w=O/p;w>1&&(w=1),w*=this._timeBarSecondsSpan;let I=-1,N=-1,B=d0.length,H;for(H=0;H<B;++H){let k=d0[H];if(++I,L=k,k>w&&k>f)break;N<0&&p*(k/this._timeBarSecondsSpan)>=this.smallestTicInPixels&&(N=I)}if(I>0){for(;I>0;)if(--I,Math.abs(D(L,d0[I]))<1e-5){d0[I]>=f&&(_=d0[I]);break}if(N>=0)for(;N<I;){if(Math.abs(D(_,d0[N]))<1e-5&&d0[N]>=f){E=d0[N];break}++N}}f=R,f>u&&E<1e-5&&Math.abs(f-L)>u&&(E=f,f<=L+u&&(_=0));let V=-999999,G;if(p*(E/this._timeBarSecondsSpan)>=3)for(o=C(E);o<=A;o=S(o,E))s+=`<span class="cesium-timeline-ticTiny" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(_/this._timeBarSecondsSpan)>=3)for(o=C(_);o<=A;o=S(o,_))s+=`<span class="cesium-timeline-ticSub" style="left: ${Math.round(p*v(o)).toString()}px;"></span>`;if(p*(L/this._timeBarSecondsSpan)>=2){this._mainTicSpan=L,A+=L,o=C(L);let k=K.computeTaiMinusUtc(x);for(;o<=A;){let W=K.addSeconds(g,o-T,new K);if(L>2.1){let Z=K.computeTaiMinusUtc(W);Math.abs(Z-k)>.1&&(o+=Z-k,W=K.addSeconds(g,o-T,new K))}let q=Math.round(p*v(o)),J=this.makeLabel(W);this._rulerEle.innerHTML=J,G=this._rulerEle.offsetWidth,G<10&&(G=O);let j=q-(G/2-1);j>V?(V=j+G+5,s+=`<span class="cesium-timeline-ticMain" style="left: ${q.toString()}px;"></span><span class="cesium-timeline-ticLabel" style="left: ${j.toString()}px;">${J}</span>`):s+=`<span class="cesium-timeline-ticSub" style="left: ${q.toString()}px;"></span>`,o=S(o,L)}}else this._mainTicSpan=-1;s+=`<span class="cesium-timeline-icon16" style="left:${i}px;bottom:0;background-position: 0 0;"></span>`,e.innerHTML=s,this._scrubElement=e.lastChild,this._context.clearRect(0,0,this._trackListEle.width,this._trackListEle.height),M.y=0,this._trackList.forEach(function(k){k.render(r._context,M),M.y+=k.height})};Jc.prototype.updateFromClock=function(){this._scrubJulian=this._clock.currentTime;let e=this._scrubElement;if(l(this._scrubElement)){let t=K.secondsDifference(this._scrubJulian,this._startJulian),n=Math.round(t*this._topDiv.clientWidth/this._timeBarSecondsSpan);this._lastXPos!==n&&(this._lastXPos=n,e.style.left=`${n-8}px`,this._needleEle.style.left=`${n}px`)}l(this._timelineDragLocation)&&(this._setTimeBarTime(this._timelineDragLocation,this._timelineDragLocation*this._timeBarSecondsSpan/this._topDiv.clientWidth),this.zoomTo(K.addSeconds(this._startJulian,this._timelineDrag,new K),K.addSeconds(this._endJulian,this._timelineDrag,new K)))};Jc.prototype._setTimeBarTime=function(e,t){if(e=Math.round(e),this._scrubJulian=K.addSeconds(this._startJulian,t,new K),this._scrubElement){let i=e-8;this._scrubElement.style.left=`${i.toString()}px`,this._needleEle.style.left=`${e.toString()}px`}let n=document.createEvent("Event");n.initEvent("settime",!0,!0),n.clientX=e,n.timeSeconds=t,n.timeJulian=this._scrubJulian,n.clock=this._clock,this._topDiv.dispatchEvent(n)};function WCt(e){return function(t){e._mouseMode!==Zf.touchOnly&&(t.button===0?(e._mouseMode=Zf.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition="-16px 0"),e._onMouseMove(t)):(e._mouseX=t.clientX,t.button===2?e._mouseMode=Zf.zoom:e._mouseMode=Zf.slide)),t.preventDefault()}}function jCt(e){return function(t){e._mouseMode=Zf.none,e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0"),e._timelineDrag=0,e._timelineDragLocation=void 0}}function qCt(e){return function(t){let n;if(e._mouseMode===Zf.scrub){t.preventDefault();let i=t.clientX-e._topDiv.getBoundingClientRect().left;i<0?(e._timelineDragLocation=0,e._timelineDrag=-.01*e._timeBarSecondsSpan):i>e._topDiv.clientWidth?(e._timelineDragLocation=e._topDiv.clientWidth,e._timelineDrag=.01*e._timeBarSecondsSpan):(e._timelineDragLocation=void 0,e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))}else if(e._mouseMode===Zf.slide){if(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0){let i=n*e._timeBarSecondsSpan/e._topDiv.clientWidth;e.zoomTo(K.addSeconds(e._startJulian,i,new K),K.addSeconds(e._endJulian,i,new K))}}else e._mouseMode===Zf.zoom&&(n=e._mouseX-t.clientX,e._mouseX=t.clientX,n!==0&&e.zoomFrom(Math.pow(1.01,n)))}}function YCt(e){return function(t){let n=t.wheelDeltaY||t.wheelDelta||-t.detail;DZ=Math.max(Math.min(Math.abs(n),DZ),1),n/=DZ,e.zoomFrom(Math.pow(1.05,-n))}}function XCt(e){return function(t){let n=t.touches.length,i,o,r=e._topDiv.getBoundingClientRect().left;t.preventDefault(),e._mouseMode=Zf.touchOnly,n===1?(i=K.secondsDifference(e._scrubJulian,e._startJulian),o=Math.round(i*e._topDiv.clientWidth/e._timeBarSecondsSpan+r),Math.abs(t.touches[0].clientX-o)<50?(e._touchMode=Qc.scrub,e._scrubElement&&(e._scrubElement.style.backgroundPosition=n===1?"-16px 0":"0 0")):(e._touchMode=Qc.singleTap,e._touchState.centerX=t.touches[0].clientX-r)):n===2?(e._touchMode=Qc.slideZoom,e._touchState.centerX=(t.touches[0].clientX+t.touches[1].clientX)*.5-r,e._touchState.spanX=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):e._touchMode=Qc.ignore}}function KCt(e){return function(t){let n=t.touches.length,i=e._topDiv.getBoundingClientRect().left;e._touchMode===Qc.singleTap?(e._touchMode=Qc.scrub,e._onTouchMove(t)):e._touchMode===Qc.scrub&&e._onTouchMove(t),e._mouseMode=Zf.touchOnly,n!==1?e._touchMode=n>0?Qc.ignore:Qc.none:e._touchMode===Qc.slideZoom&&(e._touchState.centerX=t.touches[0].clientX-i),e._scrubElement&&(e._scrubElement.style.backgroundPosition="0 0")}}function ZCt(e){return function(t){let n,i,o,r,s,a,c=1,u=e._topDiv.getBoundingClientRect().left;e._touchMode===Qc.singleTap&&(e._touchMode=Qc.slideZoom),e._mouseMode=Zf.touchOnly,e._touchMode===Qc.scrub?(t.preventDefault(),t.changedTouches.length===1&&(i=t.changedTouches[0].clientX-u,i>=0&&i<=e._topDiv.clientWidth&&e._setTimeBarTime(i,i*e._timeBarSecondsSpan/e._topDiv.clientWidth))):e._touchMode===Qc.slideZoom&&(o=t.touches.length,o===2?(r=(t.touches[0].clientX+t.touches[1].clientX)*.5-u,s=Math.abs(t.touches[0].clientX-t.touches[1].clientX)):o===1&&(r=t.touches[0].clientX-u,s=0),l(r)&&(s>0&&e._touchState.spanX>0?(c=e._touchState.spanX/s,a=K.addSeconds(e._startJulian,(e._touchState.centerX*e._timeBarSecondsSpan-r*e._timeBarSecondsSpan*c)/e._topDiv.clientWidth,new K)):(n=e._touchState.centerX-r,a=K.addSeconds(e._startJulian,n*e._timeBarSecondsSpan/e._topDiv.clientWidth,new K)),e.zoomTo(a,K.addSeconds(a,e._timeBarSecondsSpan*c,new K)),e._touchState.centerX=r,e._touchState.spanX=s))}}Jc.prototype.resize=function(){let e=this.container.clientWidth,t=this.container.clientHeight;if(e===this._lastWidth&&t===this._lastHeight)return;this._trackContainer.style.height=`${t}px`;let n=1;this._trackList.forEach(function(i){n+=i.height}),this._trackListEle.style.height=`${n.toString()}px`,this._trackListEle.width=this._trackListEle.clientWidth,this._trackListEle.height=n,this._makeTics(),this._lastXPos=void 0,this._lastWidth=e,this._lastHeight=t};var vG=Jc;var mCe=Er(hCe(),1);function JCt(e){let t=!1,n=window.screen;return l(n)&&(l(n.lockOrientation)?t=n.lockOrientation(e):l(n.mozLockOrientation)?t=n.mozLockOrientation(e):l(n.msLockOrientation)?t=n.msLockOrientation(e):l(n.orientation&&n.orientation.lock)&&(t=n.orientation.lock(e))),t}function pCe(){let e=window.screen;l(e)&&(l(e.unlockOrientation)?e.unlockOrientation():l(e.mozUnlockOrientation)?e.mozUnlockOrientation():l(e.msUnlockOrientation)?e.msUnlockOrientation():l(e.orientation&&e.orientation.unlock)&&e.orientation.unlock())}function eEt(e,t,n,i){i()||(n()?(t.useWebVR=!1,e._locked&&(pCe(),e._locked=!1),e._noSleep.disable(),vr.exitFullscreen(),n(!1)):(vr.fullscreen||vr.requestFullscreen(e._vrElement),e._noSleep.enable(),e._locked||(e._locked=JCt("landscape")),t.useWebVR=!0,n(!0)))}function wG(e,t){let n=this,i=be.observable(vr.enabled),o=be.observable(!1);this.isVRMode=void 0,be.defineProperty(this,"isVRMode",{get:function(){return o()}}),this.isVREnabled=void 0,be.defineProperty(this,"isVREnabled",{get:function(){return i()},set:function(s){i(s&&vr.enabled)}}),this.tooltip=void 0,be.defineProperty(this,"tooltip",function(){return i()?o()?"Exit VR mode":"Enter VR mode":"VR mode is unavailable"});let r=be.observable(!1);this._isOrthographic=void 0,be.defineProperty(this,"_isOrthographic",{get:function(){return r()}}),this._eventHelper=new _r,this._eventHelper.add(e.preRender,function(){r(e.camera.frustum instanceof rn)}),this._locked=!1,this._noSleep=new mCe.default,this._command=vn(function(){eEt(n,e,o,r)},be.getObservable(this,"isVREnabled")),this._vrElement=y(Rn(t),document.body),this._callback=function(){!vr.fullscreen&&o()&&(e.useWebVR=!1,n._locked&&(pCe(),n._locked=!1),n._noSleep.disable(),o(!1))},document.addEventListener(vr.changeEventName,this._callback)}Object.defineProperties(wG.prototype,{vrElement:{get:function(){return this._vrElement},set:function(e){this._vrElement=e}},command:{get:function(){return this._command}}});wG.prototype.isDestroyed=function(){return!1};wG.prototype.destroy=function(){this._eventHelper.removeAll(),document.removeEventListener(vr.changeEventName,this._callback),ue(this)};var DG=wG;var tEt="M 5.3125 6.375 C 4.008126 6.375 2.96875 7.4141499 2.96875 8.71875 L 2.96875 19.5 C 2.96875 20.8043 4.008126 21.875 5.3125 21.875 L 13.65625 21.875 C 13.71832 20.0547 14.845166 18.59375 16.21875 18.59375 C 17.592088 18.59375 18.71881 20.0552 18.78125 21.875 L 27.09375 21.875 C 28.398125 21.875 29.4375 20.8043 29.4375 19.5 L 29.4375 8.71875 C 29.4375 7.4141499 28.398125 6.375 27.09375 6.375 L 5.3125 6.375 z M 9.625 10.4375 C 11.55989 10.4375 13.125 12.03385 13.125 13.96875 C 13.125 15.90365 11.55989 17.46875 9.625 17.46875 C 7.69011 17.46875 6.125 15.90365 6.125 13.96875 C 6.125 12.03385 7.69011 10.4375 9.625 10.4375 z M 22.46875 10.4375 C 24.40364 10.4375 25.96875 12.03385 25.96875 13.96875 C 25.96875 15.90365 24.40364 17.46875 22.46875 17.46875 C 20.53386 17.46875 18.96875 15.90365 18.96875 13.96875 C 18.96875 12.03385 20.53386 10.4375 22.46875 10.4375 z",nEt="M 25.770585,2.4552065 C 15.72282,13.962707 10.699956,19.704407 8.1768352,22.580207 c -1.261561,1.4379 -1.902282,2.1427 -2.21875,2.5 -0.141624,0.1599 -0.208984,0.2355 -0.25,0.2813 l 0.6875,0.75 c 10e-5,-10e-5 0.679191,0.727 0.6875,0.7187 0.01662,-0.016 0.02451,-0.024 0.03125,-0.031 0.01348,-0.014 0.04013,-0.038 0.0625,-0.062 0.04474,-0.05 0.120921,-0.1315 0.28125,-0.3126 0.320657,-0.3619 0.956139,-1.0921 2.2187499,-2.5312 2.5252219,-2.8781 7.5454589,-8.6169 17.5937499,-20.1250005 l -1.5,-1.3125 z m -20.5624998,3.9063 c -1.304375,0 -2.34375,1.0391 -2.34375,2.3437 l 0,10.8125005 c 0,1.3043 1.039375,2.375 2.34375,2.375 l 2.25,0 c 1.9518039,-2.2246 7.4710958,-8.5584 13.5624998,-15.5312005 l -15.8124998,0 z m 21.1249998,0 c -1.855467,2.1245 -2.114296,2.4005 -3.59375,4.0936995 1.767282,0.1815 3.15625,1.685301 3.15625,3.500001 0,1.9349 -1.56511,3.5 -3.5,3.5 -1.658043,0 -3.043426,-1.1411 -3.40625,-2.6875 -1.089617,1.2461 -2.647139,2.9988 -3.46875,3.9375 0.191501,-0.062 0.388502,-0.094 0.59375,-0.094 1.373338,0 2.50006,1.4614 2.5625,3.2812 l 8.3125,0 c 1.304375,0 2.34375,-1.0707 2.34375,-2.375 l 0,-10.8125005 c 0,-1.3046 -1.039375,-2.3437 -2.34375,-2.3437 l -0.65625,0 z M 9.5518351,10.423906 c 1.9348899,0 3.4999999,1.596401 3.4999999,3.531301 0,1.9349 -1.56511,3.5 -3.4999999,3.5 -1.9348899,0 -3.4999999,-1.5651 -3.4999999,-3.5 0,-1.9349 1.56511,-3.531301 3.4999999,-3.531301 z m 4.2187499,10.312601 c -0.206517,0.2356 -0.844218,0.9428 -1.03125,1.1562 l 0.8125,0 c 0.01392,-0.4081 0.107026,-0.7968 0.21875,-1.1562 z";function IG(e,t,n){e=Rn(e);let i=new DG(t,n);i._exitVRPath=nEt,i._enterVRPath=tEt;let o=document.createElement("button");o.type="button",o.className="cesium-button cesium-vrButton",o.setAttribute("data-bind",'css: { "cesium-button-disabled" : _isOrthographic }, attr: { title: tooltip },click: command,enable: isVREnabled,cesiumSvgPath: { path: isVRMode ? _exitVRPath : _enterVRPath, width: 32, height: 32 }'),e.appendChild(o),be.applyBindings(i,o),this._container=e,this._viewModel=i,this._element=o}Object.defineProperties(IG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});IG.prototype.isDestroyed=function(){return!1};IG.prototype.destroy=function(){return this._viewModel.destroy(),be.cleanNode(this._element),this._container.removeChild(this._element),ue(this)};var PG=IG;var _Ce=new se;function xCe(e){let t=e.clock;t.currentTime=e.timeJulian,t.shouldAnimate=!1}function iEt(e){let t=e.getPropertyIds(),n="";return t.forEach(function(i){let o=e.getProperty(i);l(o)&&(n+=`<tr><th>${i}</th><td>${o}</td></tr>`)}),n.length>0&&(n=`<table class="cesium-infoBox-defaultTable"><tbody>${n}</tbody></table>`),n}function oEt(e){let t,n=[],i=e.getPropertyIds();for(t=0;t<i.length;t++){let r=i[t];/^name$/i.test(r)?n[0]=e.getProperty(r):/name/i.test(r)?n[1]=e.getProperty(r):/^title$/i.test(r)?n[2]=e.getProperty(r):/^(id|identifier)$/i.test(r)?n[3]=e.getProperty(r):/element/i.test(r)?n[4]=e.getProperty(r):/(id|identifier)$/i.test(r)&&(n[5]=e.getProperty(r))}let o=n.length;for(t=0;t<o;t++){let r=n[t];if(l(r)&&r!=="")return r}return"Unnamed Feature"}function gCe(e,t){let n=e.scene.pick(t.position);if(l(n)){let i=y(n.id,n.primitive.id);if(i instanceof ir)return i;if(n instanceof Zs)return new ir({name:oEt(n),description:iEt(n),feature:n})}if(l(e.scene.globe))return aEt(e,t.position)}var rEt=new K;function MZ(e,t){if(l(t)){let n=t.clock;if(l(n)&&l(e)){let i=n.startTime,o=n.stopTime;K.equals(i,o)&&(o=K.addSeconds(i,P.EPSILON2,rEt)),e.updateFromClock(),e.zoomTo(i,o)}}}var sEt=new h;function aEt(e,t){let n=e.scene,i=n.camera.getPickRay(t),o=n.imageryLayers.pickImageryLayerFeatures(i,n);if(!l(o))return;let r=new ir({id:"Loading...",description:"Loading feature information..."});return o.then(function(s){if(e.selectedEntity!==r)return;if(!l(s)||s.length===0){e.selectedEntity=yCe();return}let a=s[0],c=new ir({id:a.name,description:a.description});if(l(a.position)){let u=e.scene.ellipsoid.cartographicToCartesian(a.position,sEt);c.position=new hl(u)}e.selectedEntity=c},function(){e.selectedEntity===r&&(e.selectedEntity=yCe())}),r}function yCe(){return new ir({id:"None",description:"No features found."})}function cEt(e,t){let n=e._geocoder,i=e._homeButton,o=e._sceneModePicker,r=e._projectionPicker,s=e._baseLayerPicker,a=e._animation,c=e._timeline,u=e._fullscreenButton,f=e._infoBox,d=e._selectionIndicator,p=t?"hidden":"visible";if(l(n)&&(n.container.style.visibility=p),l(i)&&(i.container.style.visibility=p),l(o)&&(o.container.style.visibility=p),l(r)&&(r.container.style.visibility=p),l(s)&&(s.container.style.visibility=p),l(a)&&(a.container.style.visibility=p),l(c)&&(c.container.style.visibility=p),l(u)&&u.viewModel.isFullscreenEnabled&&(u.container.style.visibility=p),l(f)&&(f.container.style.visibility=p),l(d)&&(d.container.style.visibility=p),e._container){let g=t||!l(u)?0:u.container.clientWidth;e._vrButton.container.style.right=`${g}px`,e.forceResize()}}function Gi(e,t){e=Rn(e),t=y(t,y.EMPTY_OBJECT);let n=(!l(t.globe)||t.globe!==!1)&&(!l(t.baseLayerPicker)||t.baseLayerPicker!==!1),i=this,o=document.createElement("div");o.className="cesium-viewer",e.appendChild(o);let r=document.createElement("div");r.className="cesium-viewer-cesiumWidgetContainer",o.appendChild(r);let s=document.createElement("div");s.className="cesium-viewer-bottom",o.appendChild(s);let a=y(t.scene3DOnly,!1),c,u,f=!1;l(t.clockViewModel)?(u=t.clockViewModel,c=u.clock):(c=new tm,u=new v8(c),f=!0);let d=new SH(r,{baseLayer:n&&l(t.selectedImageryProviderViewModel)||l(t.baseLayer)||l(t.imageryProvider)?!1:void 0,clock:c,shouldAnimate:t.shouldAnimate,skyBox:t.skyBox,skyAtmosphere:t.skyAtmosphere,sceneMode:t.sceneMode,ellipsoid:t.ellipsoid,mapProjection:t.mapProjection,globe:t.globe,orderIndependentTranslucency:t.orderIndependentTranslucency,automaticallyTrackDataSourceClocks:t.automaticallyTrackDataSourceClocks,contextOptions:t.contextOptions,useDefaultRenderLoop:t.useDefaultRenderLoop,targetFrameRate:t.targetFrameRate,showRenderLoopErrors:t.showRenderLoopErrors,useBrowserRecommendedResolution:t.useBrowserRecommendedResolution,creditContainer:l(t.creditContainer)?t.creditContainer:s,creditViewport:t.creditViewport,dataSources:t.dataSources,scene3DOnly:a,shadows:t.shadows,terrainShadows:t.terrainShadows,mapMode2D:t.mapMode2D,blurActiveElementOnCanvasFocus:t.blurActiveElementOnCanvasFocus,requestRenderMode:t.requestRenderMode,maximumRenderTimeChange:t.maximumRenderTimeChange,depthPlaneEllipsoidOffset:t.depthPlaneEllipsoidOffset,msaaSamples:t.msaaSamples}),p=d.scene,g=new _r;g.add(c.onTick,Gi.prototype._onTick,this);let m;if(!l(t.selectionIndicator)||t.selectionIndicator!==!1){let W=document.createElement("div");W.className="cesium-viewer-selectionIndicatorContainer",o.appendChild(W),m=new CG(W,p)}let x;if(!l(t.infoBox)||t.infoBox!==!1){let W=document.createElement("div");W.className="cesium-viewer-infoBoxContainer",o.appendChild(W),x=new rG(W);let q=x.viewModel;g.add(q.cameraClicked,Gi.prototype._onInfoBoxCameraClicked,this),g.add(q.closeClicked,Gi.prototype._onInfoBoxClockClicked,this)}let b=document.createElement("div");b.className="cesium-viewer-toolbar",o.appendChild(b);let T;if(!l(t.geocoder)||t.geocoder!==!1){let W=document.createElement("div");W.className="cesium-viewer-geocoderContainer",b.appendChild(W);let q;l(t.geocoder)&&typeof t.geocoder!="boolean"&&(q=Array.isArray(t.geocoder)?t.geocoder:[t.geocoder]),T=new $8({container:W,geocoderServices:q,scene:p}),g.add(T.viewModel.search.beforeExecute,Gi.prototype._clearObjects,this)}let A;(!l(t.homeButton)||t.homeButton!==!1)&&(A=new eG(b,p),l(T)&&g.add(A.viewModel.command.afterExecute,function(){let W=T.viewModel;W.searchText="",W.isSearchInProgress&&W.search()}),g.add(A.viewModel.command.beforeExecute,Gi.prototype._clearTrackedObject,this));let C;!a&&(!l(t.sceneModePicker)||t.sceneModePicker!==!1)&&(C=new xG(b,p));let S;t.projectionPicker&&(S=new pG(b,p));let v,D;if(n){let W=y(t.imageryProviderViewModels,F8()),q=y(t.terrainProviderViewModels,B8());v=new N8(b,{globe:p.globe,imageryProviderViewModels:W,selectedImageryProviderViewModel:t.selectedImageryProviderViewModel,terrainProviderViewModels:q,selectedTerrainProviderViewModel:t.selectedTerrainProviderViewModel}),D=b.getElementsByClassName("cesium-baseLayerPicker-dropDown")[0]}l(t.baseLayer)&&t.baseLayer!==!1&&(n&&(v.viewModel.selectedImagery=void 0),p.imageryLayers.removeAll(),p.imageryLayers.add(t.baseLayer)),l(t.terrainProvider)&&(n&&(v.viewModel.selectedTerrain=void 0),p.terrainProvider=t.terrainProvider),l(t.terrain)&&(n&&(p.globe.depthTestAgainstTerrain=!0),p.setTerrain(t.terrain));let O;if(!l(t.navigationHelpButton)||t.navigationHelpButton!==!1){let W=!0;try{if(l(window.localStorage)){let q=window.localStorage.getItem("cesium-hasSeenNavHelp");l(q)&&q?W=!1:window.localStorage.setItem("cesium-hasSeenNavHelp","true")}}catch{}O=new cG({container:b,instructionsInitiallyVisible:y(t.navigationInstructionsInitiallyVisible,W)})}let R;if(!l(t.animation)||t.animation!==!1){let W=document.createElement("div");W.className="cesium-viewer-animationContainer",o.appendChild(W),R=new R8(W,new O8(u))}let M;if(!l(t.timeline)||t.timeline!==!1){let W=document.createElement("div");W.className="cesium-viewer-timelineContainer",o.appendChild(W),M=new vG(W,c),M.addEventListener("settime",xCe,!1),M.zoomTo(c.startTime,c.stopTime)}let L,_,E;(!l(t.fullscreenButton)||t.fullscreenButton!==!1)&&(E=document.createElement("div"),E.className="cesium-viewer-fullscreenContainer",o.appendChild(E),L=new X8(E,t.fullscreenElement),_=Ra(L.viewModel,"isFullscreenEnabled",function(W){E.style.display=W?"block":"none",l(M)&&(M.container.style.right=`${E.clientWidth}px`,M.resize())}));let w,I,N;if(t.vrButton){let W=document.createElement("div");W.className="cesium-viewer-vrContainer",o.appendChild(W),w=new PG(W,p,t.fullScreenElement),I=Ra(w.viewModel,"isVREnabled",function(q){W.style.display=q?"block":"none",l(L)&&(W.style.right=`${E.clientWidth}px`),l(M)&&(M.container.style.right=`${W.clientWidth}px`,M.resize())}),N=Ra(w.viewModel,"isVRMode",function(q){cEt(i,q)})}this._baseLayerPickerDropDown=D,this._fullscreenSubscription=_,this._vrSubscription=I,this._vrModeSubscription=N,this._dataSourceChangedListeners={},this._container=e,this._bottomContainer=s,this._element=o,this._cesiumWidget=d,this._selectionIndicator=m,this._infoBox=x,this._clockViewModel=u,this._destroyClockViewModel=f,this._toolbar=b,this._homeButton=A,this._sceneModePicker=C,this._projectionPicker=S,this._baseLayerPicker=v,this._navigationHelpButton=O,this._animation=R,this._timeline=M,this._fullscreenButton=L,this._vrButton=w,this._geocoder=T,this._eventHelper=g,this._lastWidth=0,this._lastHeight=0,this._enableInfoOrSelection=l(x)||l(m),this._selectedEntity=void 0,this._selectedEntityChanged=new me;let B=this._cesiumWidget.dataSources,H=this._cesiumWidget.dataSourceDisplay;g.add(B.dataSourceAdded,Gi.prototype._onDataSourceAdded,this),g.add(B.dataSourceRemoved,Gi.prototype._onDataSourceRemoved,this),g.add(p.postUpdate,Gi.prototype.resize,this);let V=B.length;for(let W=0;W<V;W++)this._dataSourceAdded(B,B.get(W));this._dataSourceAdded(void 0,H.defaultDataSource),g.add(B.dataSourceAdded,Gi.prototype._dataSourceAdded,this),g.add(B.dataSourceRemoved,Gi.prototype._dataSourceRemoved,this);function G(W){let q=gCe(i,W);l(q)?Y.getValueOrUndefined(q.position,i.clock.currentTime)?i.trackedEntity=q:i.zoomTo(q):l(i.trackedEntity)&&(i.trackedEntity=void 0)}function k(W){i.selectedEntity=gCe(i,W)}d.screenSpaceEventHandler.setInputAction(k,bn.LEFT_CLICK),d.screenSpaceEventHandler.setInputAction(G,bn.LEFT_DOUBLE_CLICK),d._canAnimateUpdateCallback=this._updateCanAnimate(this)}Object.defineProperties(Gi.prototype,{container:{get:function(){return this._container}},creditDisplay:{get:function(){return this._cesiumWidget.creditDisplay}},bottomContainer:{get:function(){return this._bottomContainer}},cesiumWidget:{get:function(){return this._cesiumWidget}},selectionIndicator:{get:function(){return this._selectionIndicator}},infoBox:{get:function(){return this._infoBox}},geocoder:{get:function(){return this._geocoder}},homeButton:{get:function(){return this._homeButton}},sceneModePicker:{get:function(){return this._sceneModePicker}},projectionPicker:{get:function(){return this._projectionPicker}},baseLayerPicker:{get:function(){return this._baseLayerPicker}},navigationHelpButton:{get:function(){return this._navigationHelpButton}},animation:{get:function(){return this._animation}},timeline:{get:function(){return this._timeline}},fullscreenButton:{get:function(){return this._fullscreenButton}},vrButton:{get:function(){return this._vrButton}},dataSourceDisplay:{get:function(){return this._cesiumWidget.dataSourceDisplay}},entities:{get:function(){return this._cesiumWidget.entities}},dataSources:{get:function(){return this._cesiumWidget.dataSources}},canvas:{get:function(){return this._cesiumWidget.canvas}},scene:{get:function(){return this._cesiumWidget.scene}},shadows:{get:function(){return this.scene.shadowMap.enabled},set:function(e){this.scene.shadowMap.enabled=e}},terrainShadows:{get:function(){return this.scene.globe.shadows},set:function(e){this.scene.globe.shadows=e}},shadowMap:{get:function(){return this.scene.shadowMap}},imageryLayers:{get:function(){return this.scene.imageryLayers}},terrainProvider:{get:function(){return this.scene.terrainProvider},set:function(e){this.scene.terrainProvider=e}},camera:{get:function(){return this.scene.camera}},ellipsoid:{get:function(){return this._scene.ellipsoid}},postProcessStages:{get:function(){return this.scene.postProcessStages}},clock:{get:function(){return this._clockViewModel.clock}},clockViewModel:{get:function(){return this._clockViewModel}},screenSpaceEventHandler:{get:function(){return this._cesiumWidget.screenSpaceEventHandler}},targetFrameRate:{get:function(){return this._cesiumWidget.targetFrameRate},set:function(e){this._cesiumWidget.targetFrameRate=e}},useDefaultRenderLoop:{get:function(){return this._cesiumWidget.useDefaultRenderLoop},set:function(e){this._cesiumWidget.useDefaultRenderLoop=e}},resolutionScale:{get:function(){return this._cesiumWidget.resolutionScale},set:function(e){this._cesiumWidget.resolutionScale=e}},useBrowserRecommendedResolution:{get:function(){return this._cesiumWidget.useBrowserRecommendedResolution},set:function(e){this._cesiumWidget.useBrowserRecommendedResolution=e}},allowDataSourcesToSuspendAnimation:{get:function(){return this._cesiumWidget.allowDataSourcesToSuspendAnimation},set:function(e){this._cesiumWidget.allowDataSourcesToSuspendAnimation=e}},trackedEntity:{get:function(){return this._cesiumWidget.trackedEntity},set:function(e){this._cesiumWidget.trackedEntity=e}},selectedEntity:{get:function(){return this._selectedEntity},set:function(e){if(this._selectedEntity!==e){this._selectedEntity=e;let t=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(e)?l(t)&&t.animateAppear():l(t)&&t.animateDepart(),this._selectedEntityChanged.raiseEvent(e)}}},selectedEntityChanged:{get:function(){return this._selectedEntityChanged}},trackedEntityChanged:{get:function(){return this._cesiumWidget.trackedEntityChanged}},clockTrackedDataSource:{get:function(){return this._cesiumWidget.clockTrackedDataSource},set:function(e){this._cesiumWidget.clockTrackedDataSource!==e&&(this._cesiumWidget.clockTrackedDataSource=e,MZ(this._timeline,e))}}});Gi.prototype.extend=function(e,t){e(this,t)};Gi.prototype.resize=function(){let e=this._cesiumWidget,t=this._container,n=t.clientWidth,i=t.clientHeight,o=l(this._animation),r=l(this._timeline);if(e.resize(),n===this._lastWidth&&i===this._lastHeight)return;let s=i-125,a=this._baseLayerPickerDropDown;if(l(a)&&(a.style.maxHeight=`${s}px`),l(this._geocoder)){let m=this._geocoder.searchSuggestionsContainer;m.style.maxHeight=`${s}px`}l(this._infoBox)&&(this._infoBox.viewModel.maxHeight=s);let c=this._timeline,u,f=0,d=5,p=3,g=0;if(o&&window.getComputedStyle(this._animation.container).visibility!=="hidden"){let m=this._lastWidth;u=this._animation.container,n>900?(f=169,m<=900&&(u.style.width="169px",u.style.height="112px",this._animation.resize())):n>=600?(f=136,(m<600||m>900)&&(u.style.width="136px",u.style.height="90px",this._animation.resize())):(f=106,(m>600||m===0)&&(u.style.width="106px",u.style.height="70px",this._animation.resize())),d=f+5}if(r&&window.getComputedStyle(this._timeline.container).visibility!=="hidden"){let m=this._fullscreenButton,x=this._vrButton,b=c.container,T=b.style;p=b.clientHeight+3,T.left=`${f}px`;let A=0;l(m)&&(A+=m.container.clientWidth),l(x)&&(A+=x.container.clientWidth),T.right=`${A}px`,c.resize()}!r&&l(this._fullscreenButton)&&(g=this._fullscreenButton.container.clientWidth),this._bottomContainer.style.left=`${d}px`,this._bottomContainer.style.bottom=`${p}px`,this._bottomContainer.style.right=`${g}px`,this._lastWidth=n,this._lastHeight=i};Gi.prototype.forceResize=function(){this._lastWidth=0,this.resize()};Gi.prototype.render=function(){this._cesiumWidget.render()};Gi.prototype.isDestroyed=function(){return!1};Gi.prototype.destroy=function(){return l(this.screenSpaceEventHandler)&&!this.screenSpaceEventHandler.isDestroyed()&&(this.screenSpaceEventHandler.removeInputAction(bn.LEFT_CLICK),this.screenSpaceEventHandler.removeInputAction(bn.LEFT_DOUBLE_CLICK)),this._container.removeChild(this._element),this._element.removeChild(this._toolbar),this._eventHelper.removeAll(),l(this._geocoder)&&(this._geocoder=this._geocoder.destroy()),l(this._homeButton)&&(this._homeButton=this._homeButton.destroy()),l(this._sceneModePicker)&&(this._sceneModePicker=this._sceneModePicker.destroy()),l(this._projectionPicker)&&(this._projectionPicker=this._projectionPicker.destroy()),l(this._baseLayerPicker)&&(this._baseLayerPicker=this._baseLayerPicker.destroy()),l(this._animation)&&(this._element.removeChild(this._animation.container),this._animation=this._animation.destroy()),l(this._timeline)&&(this._timeline.removeEventListener("settime",xCe,!1),this._element.removeChild(this._timeline.container),this._timeline=this._timeline.destroy()),l(this._fullscreenButton)&&(this._fullscreenSubscription.dispose(),this._element.removeChild(this._fullscreenButton.container),this._fullscreenButton=this._fullscreenButton.destroy()),l(this._vrButton)&&(this._vrSubscription.dispose(),this._vrModeSubscription.dispose(),this._element.removeChild(this._vrButton.container),this._vrButton=this._vrButton.destroy()),l(this._infoBox)&&(this._element.removeChild(this._infoBox.container),this._infoBox=this._infoBox.destroy()),l(this._selectionIndicator)&&(this._element.removeChild(this._selectionIndicator.container),this._selectionIndicator=this._selectionIndicator.destroy()),this._destroyClockViewModel&&(this._clockViewModel=this._clockViewModel.destroy()),this._cesiumWidget=this._cesiumWidget.destroy(),ue(this)};Gi.prototype._dataSourceAdded=function(e,t){t.entities.collectionChanged.addEventListener(Gi.prototype._onEntityCollectionChanged,this)};Gi.prototype._dataSourceRemoved=function(e,t){let n=t.entities;n.collectionChanged.removeEventListener(Gi.prototype._onEntityCollectionChanged,this),l(this.selectedEntity)&&n.getById(this.selectedEntity.id)===this.selectedEntity&&(this.selectedEntity=void 0)};Gi.prototype._updateCanAnimate=function(e){return function(t){e._clockViewModel.canAnimate=t}};Gi.prototype._onTick=function(e){let t=e.currentTime,n,i=!1,o=this.selectedEntity,r=l(o)&&this._enableInfoOrSelection;r&&o.isShowing&&o.isAvailable(t)&&(this._cesiumWidget.dataSourceDisplay.getBoundingSphere(o,!0,_Ce)!==dt.FAILED?n=_Ce.center:l(o.position)&&(n=o.position.getValue(t,n)),i=l(n));let s=l(this._selectionIndicator)?this._selectionIndicator.viewModel:void 0;l(s)&&(s.position=h.clone(n,s.position),s.showSelection=r&&i,s.update());let a=l(this._infoBox)?this._infoBox.viewModel:void 0;l(a)&&(a.showInfo=r,a.enableCamera=i,a.isCameraTracking=this.trackedEntity===this.selectedEntity,r?(a.titleText=y(o.name,o.id),a.description=Y.getValueOrDefault(o.description,t,"")):(a.titleText="",a.description=""))};Gi.prototype._onEntityCollectionChanged=function(e,t,n){let i=n.length;for(let o=0;o<i;o++){let r=n[o];this.selectedEntity===r&&(this.selectedEntity=void 0)}};Gi.prototype._onInfoBoxCameraClicked=function(e){if(e.isCameraTracking&&this.trackedEntity===this.selectedEntity)this.trackedEntity=void 0;else{let n=this.selectedEntity.position;l(n)?this.trackedEntity=this.selectedEntity:this.zoomTo(this.selectedEntity)}};Gi.prototype._clearTrackedObject=function(){this.trackedEntity=void 0};Gi.prototype._onInfoBoxClockClicked=function(e){this.selectedEntity=void 0};Gi.prototype._clearObjects=function(){this.trackedEntity=void 0,this.selectedEntity=void 0};Gi.prototype._onDataSourceChanged=function(e){this.clockTrackedDataSource===e&&MZ(this.timeline,e)};Gi.prototype._onDataSourceAdded=function(e,t){this._cesiumWidget._automaticallyTrackDataSourceClocks&&t===this.clockTrackedDataSource&&MZ(this._timeline,t);let n=t.entities.id,i=this._eventHelper.add(t.changedEvent,Gi.prototype._onDataSourceChanged,this);this._dataSourceChangedListeners[n]=i};Gi.prototype._onDataSourceRemoved=function(e,t){let n=t.entities.id;this._dataSourceChangedListeners[n](),this._dataSourceChangedListeners[n]=void 0};Gi.prototype.zoomTo=function(e,t){return this._cesiumWidget.zoomTo(e,t)};Gi.prototype.flyTo=function(e,t){return this._cesiumWidget.flyTo(e,t)};var bCe=Gi;function lEt(e){let t=document.createElement("div");t.className="cesium-viewer-cesium3DTilesInspectorContainer",e.container.appendChild(t);let n=new z8(t,e.scene);Object.defineProperties(e,{cesium3DTilesInspector:{get:function(){return n}}})}var TCe=lEt;function uEt(e){let t=document.createElement("div");t.className="cesium-viewer-cesiumInspectorContainer",e.container.appendChild(t);let n=new W8(t,e.scene);Object.defineProperties(e,{cesiumInspector:{get:function(){return n}}})}var ACe=uEt;function fEt(e,t){t=y(t,y.EMPTY_OBJECT);let n=!0,i=y(t.flyToOnDrop,!0),o=new me,r=y(t.clearOnDrop,!0),s=y(t.dropTarget,e.container),a=y(t.clampToGround,!0),c=t.proxy;s=Rn(s),Object.defineProperties(e,{dropTarget:{get:function(){return s},set:function(f){CCe(s,u),s=f,LZ(s,u)}},dropEnabled:{get:function(){return n},set:function(f){f!==n&&(f?LZ(s,u):CCe(s,u),n=f)}},dropError:{get:function(){return o}},clearOnDrop:{get:function(){return r},set:function(f){r=f}},flyToOnDrop:{get:function(){return i},set:function(f){i=f}},proxy:{get:function(){return c},set:function(f){c=f}},clampToGround:{get:function(){return a},set:function(f){a=f}}});function u(f){Hb(f),r&&(e.entities.removeAll(),e.dataSources.removeAll());let d=f.dataTransfer.files,p=d.length;for(let g=0;g<p;g++){let m=d[g],x=new FileReader;x.onload=dEt(e,m,c,a),x.onerror=hEt(e,m),x.readAsText(m)}}LZ(s,u),e.destroy=XH(e,e.destroy,function(){e.dropEnabled=!1}),e._handleDrop=u}function Hb(e){e.stopPropagation(),e.preventDefault()}function CCe(e,t){let n=e;l(n)&&(n.removeEventListener("drop",t,!1),n.removeEventListener("dragenter",Hb,!1),n.removeEventListener("dragover",Hb,!1),n.removeEventListener("dragexit",Hb,!1))}function LZ(e,t){e.addEventListener("drop",t,!1),e.addEventListener("dragenter",Hb,!1),e.addEventListener("dragover",Hb,!1),e.addEventListener("dragexit",Hb,!1)}function dEt(e,t,n,i){let o=e.scene;return function(r){let s=t.name;try{let a;if(/\.czml$/i.test(s))a=v3.load(JSON.parse(r.target.result),{sourceUri:s});else if(/\.geojson$/i.test(s)||/\.json$/i.test(s)||/\.topojson$/i.test(s))a=Ek.load(JSON.parse(r.target.result),{sourceUri:s,clampToGround:i});else if(/\.(kml|kmz)$/i.test(s))a=GV.load(t,{sourceUri:s,proxy:n,camera:o.camera,canvas:o.canvas,clampToGround:i,screenOverlayContainer:e.container});else if(/\.gpx$/i.test(s))a=Lk.load(t,{sourceUri:s,proxy:n});else{e.dropError.raiseEvent(e,s,`Unrecognized file: ${s}`);return}l(a)&&e.dataSources.add(a).then(function(c){e.flyToOnDrop&&e.flyTo(c)}).catch(function(c){e.dropError.raiseEvent(e,s,c)})}catch(a){e.dropError.raiseEvent(e,s,a)}}}function hEt(e,t){return function(n){e.dropError.raiseEvent(e,t.name,n.target.error)}}var ECe=fEt;function mEt(e,t){t=y(t,y.EMPTY_OBJECT);let n=new fG({scene:e.scene,container:e.bottomContainer,lowFrameRateMessage:t.lowFrameRateMessage});Object.defineProperties(e,{performanceWatchdog:{get:function(){return n}}})}var SCe=mEt;function vCe(e){let t=e.split(` +`),n;for(n=0;n<t.length&&!t[n].match(/\S/);n++);if(n===t.length)return"";let i="",o=/^\s*/,s=t[n].match(o)[0].length;for(let a=n;a<t.length;a++){let c=t[a];c.match(o)[0].length>=s&&(c=c.slice(s)),i+=`${c} +`}return i}function $f(e){this._scene=e,this._voxelPrimitive=void 0,this._customShaderCompilationRemoveCallback=void 0,this._definedProperties=[],this._getPrimitiveFunctions=[],this._modelMatrixReady=!1;let t=this;function n(o){let{name:r,initialValue:s}=o;t._definedProperties.push(r);let a=o.setPrimitiveFunction;a===!0&&(a=function(f){t._voxelPrimitive[r]=f});let c=o.getPrimitiveFunction;c===!0&&(c=function(){t[r]=t._voxelPrimitive[r]}),l(c)&&t._getPrimitiveFunctions.push(c);let u=be.observable();return be.defineProperty(t,r,{get:function(){return u()},set:function(f){typeof s=="number"&&typeof f=="string"&&(f=Number(f),isNaN(f)&&(f=s)),typeof s=="boolean"&&typeof f=="number"&&(f=f===1),u(f),l(a)&&l(t._voxelPrimitive)&&(a(f),e.requestRender())}}),t[r]=s,u}function i(o,r){return function(s){let a=t._voxelPrimitive[o].clone();a[r]=s,t._voxelPrimitive[o]=a}}n({name:"inspectorVisible",initialValue:!0}),n({name:"displayVisible",initialValue:!1}),n({name:"transformVisible",initialValue:!1}),n({name:"boundsVisible",initialValue:!1}),n({name:"clippingVisible",initialValue:!1}),n({name:"shaderVisible",initialValue:!1}),n({name:"shaderString",initialValue:"",getPrimitiveFunction:function(){let o=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=vCe(o)}}),n({name:"shaderCompilationMessage",initialValue:""}),n({name:"shaderCompilationSuccess",initialValue:!0}),n({name:"depthTest",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"show",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"disableUpdate",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"debugDraw",initialValue:!1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"jitter",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"nearestSampling",initialValue:!0,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"screenSpaceError",initialValue:4,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"stepSize",initialValue:1,setPrimitiveFunction:!0,getPrimitiveFunction:!0}),n({name:"shapeIsBox",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsBox=o===Ni.BOX}}),n({name:"shapeIsEllipsoid",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsEllipsoid=o===Ni.ELLIPSOID}}),n({name:"shapeIsCylinder",getPrimitiveFunction:function(){let o=t._voxelPrimitive.shape;t.shapeIsCylinder=o===Ni.CYLINDER}}),n({name:"boundsBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMaxX=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsBoxMinX",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsBoxMinX=t._voxelPrimitive.minBounds.x}}),n({name:"boundsBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMaxY=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsBoxMinY",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsBoxMinY=t._voxelPrimitive.minBounds.y}}),n({name:"boundsBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMaxZ=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsBoxMinZ",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsBoxMinZ=t._voxelPrimitive.minBounds.z}}),n({name:"boundsEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLongitude=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLongitude=t._voxelPrimitive.minBounds.x}}),n({name:"boundsEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxLatitude=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsEllipsoidMinLatitude=t._voxelPrimitive.minBounds.y}}),n({name:"boundsEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMaxHeight=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsEllipsoidMinHeight=t._voxelPrimitive.minBounds.z}}),n({name:"boundsCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMaxRadius=t._voxelPrimitive.maxBounds.x}}),n({name:"boundsCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minBounds","x"),getPrimitiveFunction:function(){t.boundsCylinderMinRadius=t._voxelPrimitive.minBounds.x}}),n({name:"boundsCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMaxHeight=t._voxelPrimitive.maxBounds.y}}),n({name:"boundsCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minBounds","y"),getPrimitiveFunction:function(){t.boundsCylinderMinHeight=t._voxelPrimitive.minBounds.y}}),n({name:"boundsCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMaxAngle=t._voxelPrimitive.maxBounds.z}}),n({name:"boundsCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minBounds","z"),getPrimitiveFunction:function(){t.boundsCylinderMinAngle=t._voxelPrimitive.minBounds.z}}),n({name:"clippingBoxMaxX",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMaxX=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingBoxMinX",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingBoxMinX=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingBoxMaxY",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMaxY=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingBoxMinY",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingBoxMinY=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingBoxMaxZ",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMaxZ=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingBoxMinZ",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingBoxMinZ=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingEllipsoidMaxLongitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLongitude=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingEllipsoidMinLongitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLongitude=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingEllipsoidMaxLatitude",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxLatitude=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingEllipsoidMinLatitude",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingEllipsoidMinLatitude=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingEllipsoidMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMaxHeight=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingEllipsoidMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingEllipsoidMinHeight=t._voxelPrimitive.minClippingBounds.z}}),n({name:"clippingCylinderMaxRadius",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMaxRadius=t._voxelPrimitive.maxClippingBounds.x}}),n({name:"clippingCylinderMinRadius",initialValue:0,setPrimitiveFunction:i("minClippingBounds","x"),getPrimitiveFunction:function(){t.clippingCylinderMinRadius=t._voxelPrimitive.minClippingBounds.x}}),n({name:"clippingCylinderMaxHeight",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMaxHeight=t._voxelPrimitive.maxClippingBounds.y}}),n({name:"clippingCylinderMinHeight",initialValue:0,setPrimitiveFunction:i("minClippingBounds","y"),getPrimitiveFunction:function(){t.clippingCylinderMinHeight=t._voxelPrimitive.minClippingBounds.y}}),n({name:"clippingCylinderMaxAngle",initialValue:0,setPrimitiveFunction:i("maxClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMaxAngle=t._voxelPrimitive.maxClippingBounds.z}}),n({name:"clippingCylinderMinAngle",initialValue:0,setPrimitiveFunction:i("minClippingBounds","z"),getPrimitiveFunction:function(){t.clippingCylinderMinAngle=t._voxelPrimitive.minClippingBounds.z}}),n({name:"translationX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.translationX=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"translationY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.translationY=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"translationZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.translationZ=F.getTranslation(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"scaleX",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.scaleX=F.getScale(t._voxelPrimitive.modelMatrix,new h).x}}),n({name:"scaleY",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.scaleY=F.getScale(t._voxelPrimitive.modelMatrix,new h).y}}),n({name:"scaleZ",initialValue:1,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)},getPrimitiveFunction:function(){t.scaleZ=F.getScale(t._voxelPrimitive.modelMatrix,new h).z}}),n({name:"angleX",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)}}),n({name:"angleY",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)}}),n({name:"angleZ",initialValue:0,setPrimitiveFunction:function(){t._modelMatrixReady&&Vm(t)}})}var pEt=new h,_Et=new h,gEt=new Ua,yEt=new $;function Vm(e){let t=h.fromElements(e.translationX,e.translationY,e.translationZ,pEt),n=h.fromElements(e.scaleX,e.scaleY,e.scaleZ,_Et),i=gEt;i.heading=e.angleX,i.pitch=e.angleY,i.roll=e.angleZ;let o=$.fromHeadingPitchRoll(i,yEt),r=$.multiplyByScale(o,n,o);e._voxelPrimitive.modelMatrix=F.fromRotationTranslation(r,t,e._voxelPrimitive.modelMatrix)}Object.defineProperties($f.prototype,{scene:{get:function(){return this._scene}},voxelPrimitive:{get:function(){return this._voxelPrimitive},set:function(e){if(l(this._customShaderCompilationRemoveCallback)&&this._customShaderCompilationRemoveCallback(),l(e)){this._voxelPrimitive=e;let t=this;t._customShaderCompilationRemoveCallback=t._voxelPrimitive.customShaderCompilationEvent.addEventListener(function(n){let i=t._voxelPrimitive.customShader.fragmentShaderText;t.shaderString=vCe(i),l(n)?(t.shaderCompilationMessage=n.message,t.shaderCompilationSuccess=!1):(t.shaderCompilationMessage="Shader compiled successfully!",t.shaderCompilationSuccess=!0)}),t._modelMatrixReady=!1;for(let n=0;n<t._getPrimitiveFunctions.length;n++)t._getPrimitiveFunctions[n]();t._modelMatrixReady=!0,Vm(t)}}}});$f.prototype.toggleInspector=function(){this.inspectorVisible=!this.inspectorVisible};$f.prototype.toggleDisplay=function(){this.displayVisible=!this.displayVisible};$f.prototype.toggleTransform=function(){this.transformVisible=!this.transformVisible};$f.prototype.toggleBounds=function(){this.boundsVisible=!this.boundsVisible};$f.prototype.toggleClipping=function(){this.clippingVisible=!this.clippingVisible};$f.prototype.toggleShader=function(){this.shaderVisible=!this.shaderVisible};$f.prototype.compileShader=function(){l(this._voxelPrimitive)&&(this._voxelPrimitive.customShader=new JE({fragmentShaderText:this.shaderString,uniforms:this._voxelPrimitive.customShader.uniforms}))};$f.prototype.shaderEditorKeyPress=function(e,t){if(t.keyCode===9){t.preventDefault();let n=t.target,i=n.selectionStart,o=n.selectionEnd,r=o,a=n.value.slice(i,o).split(` +`),c=a.length,u;if(t.shiftKey)for(u=0;u<c;++u)a[u][0]===" "&&(a[u][1]===" "?(a[u]=a[u].substr(2),r-=2):(a[u]=a[u].substr(1),r-=1));else for(u=0;u<c;++u)a[u]=` ${a[u]}`,r+=2;let f=a.join(` +`);n.value=n.value.slice(0,i)+f+n.value.slice(o),n.selectionStart=i!==o?i:r,n.selectionEnd=r}else t.ctrlKey&&(t.keyCode===10||t.keyCode===13)&&this.compileShader();return!0};$f.prototype.isDestroyed=function(){return!1};$f.prototype.destroy=function(){let e=this;return this._definedProperties.forEach(function(t){be.getObservable(e,t).dispose()}),ue(this)};var RG=$f;function OG(e,t){e=Rn(e);let n=document.createElement("div"),i=new RG(t);this._viewModel=i,this._container=e,this._element=n;let o=document.createElement("div");o.textContent="Voxel Inspector",o.className="cesium-cesiumInspector-button",o.setAttribute("data-bind","click: toggleInspector"),n.appendChild(o),n.className="cesium-cesiumInspector cesium-VoxelInspector",n.setAttribute("data-bind",'css: { "cesium-cesiumInspector-visible" : inspectorVisible, "cesium-cesiumInspector-hidden" : !inspectorVisible}'),e.appendChild(n);let r=document.createElement("div");r.className="cesium-cesiumInspector-dropDown",n.appendChild(r);let s=hc.createSection,a=hc.createCheckbox,c=hc.createRangeInput,u=hc.createButton,f=s(r,"Display","displayVisible","toggleDisplay"),d=s(r,"Transform","transformVisible","toggleTransform"),p=s(r,"Bounds","boundsVisible","toggleBounds"),g=s(r,"Clipping","clippingVisible","toggleClipping"),m=s(r,"Shader","shaderVisible","toggleShader");f.appendChild(a("Depth Test","depthTest")),f.appendChild(a("Show","show")),f.appendChild(a("Disable Update","disableUpdate")),f.appendChild(a("Debug Draw","debugDraw")),f.appendChild(a("Jitter","jitter")),f.appendChild(a("Nearest Sampling","nearestSampling")),f.appendChild(c("Screen Space Error","screenSpaceError",0,128)),f.appendChild(c("Step Size","stepSize",0,2));let x=10,b=10,T=P.PI;d.appendChild(c("Translation X","translationX",-x,+x)),d.appendChild(c("Translation Y","translationY",-x,+x)),d.appendChild(c("Translation Z","translationZ",-x,+x)),d.appendChild(c("Scale X","scaleX",0,+b)),d.appendChild(c("Scale Y","scaleY",0,+b)),d.appendChild(c("Scale Z","scaleZ",0,+b)),d.appendChild(c("Heading","angleX",-T,+T)),d.appendChild(c("Pitch","angleY",-T,+T)),d.appendChild(c("Roll","angleZ",-T,+T));let A=Ni.getMinBounds(Ni.BOX),C=Ni.getMaxBounds(Ni.BOX),S=h.fromElements(Ni.getMinBounds(Ni.ELLIPSOID).x,Ni.getMinBounds(Ni.ELLIPSOID).y,-ee.WGS84.maximumRadius,new h),v=h.fromElements(Ni.getMaxBounds(Ni.ELLIPSOID).x,Ni.getMaxBounds(Ni.ELLIPSOID).y,1e7,new h),D=Ni.getMinBounds(Ni.CYLINDER),O=Ni.getMaxBounds(Ni.CYLINDER);DS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","boundsBoxMaxX","boundsBoxMinX","boundsBoxMaxY","boundsBoxMinY","boundsBoxMaxZ","boundsBoxMinZ",A,C,"shapeIsBox",p),DS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","boundsEllipsoidMaxLongitude","boundsEllipsoidMinLongitude","boundsEllipsoidMaxLatitude","boundsEllipsoidMinLatitude","boundsEllipsoidMaxHeight","boundsEllipsoidMinHeight",S,v,"shapeIsEllipsoid",p),DS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","boundsCylinderMaxRadius","boundsCylinderMinRadius","boundsCylinderMaxHeight","boundsCylinderMinHeight","boundsCylinderMaxAngle","boundsCylinderMinAngle",D,O,"shapeIsCylinder",p),DS("Max X","Min X","Max Y","Min Y","Max Z","Min Z","clippingBoxMaxX","clippingBoxMinX","clippingBoxMaxY","clippingBoxMinY","clippingBoxMaxZ","clippingBoxMinZ",A,C,"shapeIsBox",g),DS("Max Longitude","Min Longitude","Max Latitude","Min Latitude","Max Height","Min Height","clippingEllipsoidMaxLongitude","clippingEllipsoidMinLongitude","clippingEllipsoidMaxLatitude","clippingEllipsoidMinLatitude","clippingEllipsoidMaxHeight","clippingEllipsoidMinHeight",S,v,"shapeIsEllipsoid",g),DS("Max Radius","Min Radius","Max Height","Min Height","Max Angle","Min Angle","clippingCylinderMaxRadius","clippingCylinderMinRadius","clippingCylinderMaxHeight","clippingCylinderMinHeight","clippingCylinderMaxAngle","clippingCylinderMinAngle",D,O,"shapeIsCylinder",g);let R=document.createElement("div");m.appendChild(R);let M=document.createElement("textarea");M.setAttribute("data-bind","textInput: shaderString, event: { keydown: shaderEditorKeyPress }"),R.className="cesium-cesiumInspector-styleEditor",R.appendChild(M);let L=u("Compile (Ctrl+Enter)","compileShader");R.appendChild(L);let _=document.createElement("label");_.style.display="block",_.setAttribute("data-bind","text: shaderCompilationMessage, style: {color: shaderCompilationSuccess ? 'green' : 'red'}"),R.appendChild(_),be.applyBindings(i,n)}Object.defineProperties(OG.prototype,{container:{get:function(){return this._container}},viewModel:{get:function(){return this._viewModel}}});OG.prototype.isDestroyed=function(){return!1};OG.prototype.destroy=function(){return be.cleanNode(this._element),this._container.removeChild(this._element),this.viewModel.destroy(),ue(this)};function DS(e,t,n,i,o,r,s,a,c,u,f,d,p,g,m,x){let b=hc.createRangeInput,T=p,A=g,C=x.appendChild(document.createElement("div"));C.setAttribute("data-bind",`if: ${m}`),C.appendChild(b(e,s,T.x,A.x)),C.appendChild(b(t,a,T.x,A.x)),C.appendChild(b(n,c,T.y,A.y)),C.appendChild(b(i,u,T.y,A.y)),C.appendChild(b(o,f,T.z,A.z)),C.appendChild(b(r,d,T.z,A.z))}var MG=OG;function xEt(e){let t=document.createElement("div");t.className="cesium-viewer-voxelInspectorContainer",e.container.appendChild(t);let n=new MG(t,e.scene);Object.defineProperties(e,{voxelInspector:{get:function(){return n}}})}var wCe=xEt;globalThis.CESIUM_VERSION="1.123";var lco="1.123";export{gp as AlphaMode,$F as AlphaPipelineStage,$N as AnchorPointDirect,QN as AnchorPointIndirect,R8 as Animation,O8 as AnimationViewModel,Ji as Appearance,ui as ApproximateTerrainHeights,Lbe as ArcGISTiledElevationTerrainProvider,Em as ArcGisBaseMapType,Fy as ArcGisMapServerImageryProvider,Ff as ArcGisMapService,tn as ArcType,Mc as ArticulationStageType,St as AssociativeArray,TA as Atmosphere,PF as AtmospherePipelineStage,Ln as AttributeCompression,on as AttributeType,d4 as AutoExposure,v_ as AutomaticUniforms,Mo as Axis,N0 as AxisAlignedBoundingBox,uF as B3dmLoader,lF as B3dmParser,N8 as BaseLayerPicker,M8 as BaseLayerPickerViewModel,MT as BatchTable,iA as BatchTableHierarchy,pl as BatchTexture,QF as BatchTexturePipelineStage,so as Billboard,mf as BillboardCollection,Ac as BillboardGraphics,qM as BillboardVisualizer,Fbe as BingMapsGeocoderService,oU as BingMapsImageryProvider,pI as BingMapsStyle,Wa as BlendEquation,Eo as BlendFunction,wo as BlendOption,ln as BlendingState,qe as BoundingRectangle,se as BoundingSphere,dt as BoundingSphereState,mA as BoundingVolumeSemantics,DTe as BoxEmitter,Ga as BoxGeometry,HL as BoxGeometryUpdater,zT as BoxGraphics,Ah as BoxOutlineGeometry,ez as BrdfLutGenerator,yt as Buffer,sA as BufferLoader,Fe as BufferUsage,n2 as CPUStylingPipelineStage,GL as CallbackPositionProperty,Ih as CallbackProperty,io as Camera,y4 as CameraEventAggregator,Li as CameraEventType,tz as CameraFlightPath,U as Cartesian2,h as Cartesian3,oe as Cartesian4,fe as Cartographic,Bbe as CartographicGeocoderService,Vbe as CatmullRomSpline,nA as Cesium3DContentGroup,Ed as Cesium3DTile,J_ as Cesium3DTileBatchTable,Jl as Cesium3DTileColorBlendMode,ITe as Cesium3DTileContent,KA as Cesium3DTileContentFactory,Yo as Cesium3DTileContentState,Bs as Cesium3DTileContentType,Zs as Cesium3DTileFeature,Gh as Cesium3DTileFeatureTable,Td as Cesium3DTileOptimizationHint,VB as Cesium3DTileOptimizations,Fo as Cesium3DTilePass,Qd as Cesium3DTilePassState,Fg as Cesium3DTilePointFeature,jo as Cesium3DTileRefine,xS as Cesium3DTileStyle,jB as Cesium3DTileStyleEngine,z8 as Cesium3DTilesInspector,V8 as Cesium3DTilesInspectorViewModel,RTe as Cesium3DTilesVoxelProvider,Ca as Cesium3DTileset,YB as Cesium3DTilesetBaseTraversal,zB as Cesium3DTilesetCache,XT as Cesium3DTilesetGraphics,GB as Cesium3DTilesetHeatmap,cC as Cesium3DTilesetMetadata,qB as Cesium3DTilesetMostDetailedTraversal,KB as Cesium3DTilesetSkipTraversal,jg as Cesium3DTilesetStatistics,ia as Cesium3DTilesetTraversal,$B as Cesium3DTilesetVisualizer,W8 as CesiumInspector,H8 as CesiumInspectorViewModel,uS as CesiumTerrainProvider,SH as CesiumWidget,xo as Check,Jw as CheckerboardMaterialProperty,e8 as CircleEmitter,Xbe as CircleGeometry,Kbe as CircleOutlineGeometry,Y2 as ClassificationModelDrawCommand,JF as ClassificationPipelineStage,fv as ClassificationPrimitive,kn as ClassificationType,ei as ClearCommand,_A as ClippingPlane,bs as ClippingPlaneCollection,rw as ClippingPolygon,Uh as ClippingPolygonCollection,tm as Clock,Yr as ClockRange,po as ClockStep,v8 as ClockViewModel,kTe as CloudCollection,TP as CloudType,z as Color,Oc as ColorBlendMode,qt as ColorGeometryInstanceAttribute,Gt as ColorMaterialProperty,VAe as Command,X as ComponentDatatype,jL as Composite3DTileContent,rle as CompositeEntityCollection,iD as CompositeMaterialProperty,Ea as CompositePositionProperty,Bc as CompositeProperty,H1 as CompressedTextureBuffer,ol as ComputeCommand,z1 as ComputeEngine,KH as ConditionsExpression,VTe as ConeEmitter,hl as ConstantPositionProperty,Xn as ConstantProperty,yF as ConstantSpline,wB as ContentMetadata,zM as Context,zt as ContextLimits,j3 as CoplanarPolygonGeometry,Ug as CoplanarPolygonGeometryLibrary,Cd as CoplanarPolygonOutlineGeometry,Oi as CornerType,JN as CorrelationGroup,gC as CorridorGeometry,Ui as CorridorGeometryLibrary,a3 as CorridorGeometryUpdater,GT as CorridorGraphics,s3 as CorridorOutlineGeometry,wt as Credit,fz as CreditDisplay,Dr as CubeMap,nR as CubeMapFace,gT as CubicRealPolynomial,yi as CullFace,ys as CullingVolume,Yf as CumulusCloud,d3 as CustomDataSource,Zbe as CustomHeightmapTerrainProvider,JE as CustomShader,Og as CustomShaderMode,l2 as CustomShaderPipelineStage,mx as CustomShaderTranslucencyMode,h3 as CylinderGeometry,xC as CylinderGeometryLibrary,p3 as CylinderGeometryUpdater,WT as CylinderGraphics,m3 as CylinderOutlineGeometry,v3 as CzmlDataSource,qr as DataSource,nm as DataSourceClock,D3 as DataSourceCollection,_k as DataSourceDisplay,UTe as DebugAppearance,u_ as DebugCameraPrimitive,O4 as DebugInspector,i8 as DebugModelMatrixPrimitive,Qbe as DefaultProxy,Ec as DepthFunction,yz as DepthPlane,u2 as DequantizationPipelineStage,f_ as DerivedCommand,he as DeveloperError,bz as DeviceOrientationCameraController,zTe as DirectionalLight,gI as DiscardEmptyTileImagePolicy,nU as DiscardMissingTileImagePolicy,Ft as DistanceDisplayCondition,Bn as DistanceDisplayConditionGeometryInstanceAttribute,$E as DoubleEndedPriorityQueue,UB as DoublyLinkedList,cg as DracoLoader,et as DrawCommand,bg as DynamicAtmosphereLightingType,Tg as DynamicEnvironmentMapManager,MC as DynamicGeometryBatch,ni as DynamicGeometryUpdater,S1 as EarthOrientationParameters,g0 as EarthOrientationParametersSample,Kr as EasingFunction,Cl as EllipseGeometry,mu as EllipseGeometryLibrary,B3 as EllipseGeometryUpdater,jT as EllipseGraphics,Pf as EllipseOutlineGeometry,ee as Ellipsoid,W_ as EllipsoidGeodesic,aa as EllipsoidGeometry,k3 as EllipsoidGeometryUpdater,qT as EllipsoidGraphics,Tf as EllipsoidOutlineGeometry,jU as EllipsoidPrimitive,ja as EllipsoidRhumbLine,HTe as EllipsoidSurfaceAppearance,ts as EllipsoidTangentPlane,c_ as EllipsoidTerrainProvider,Qg as EllipsoidalOccluder,Uw as Empty3DTileContent,Hn as EncodedCartesian3,ir as Entity,vf as EntityCluster,oa as EntityCollection,xk as EntityView,me as Event,_r as EventHelper,cd as Expression,pt as ExpressionNodeType,wf as ExtrapolationType,jt as FeatureDetection,hx as FeatureIdPipelineStage,Tz as Fog,Re as ForEach,s8 as FrameRateMonitor,Az as FrameState,Vr as Framebuffer,hi as FramebufferManager,Iz as FrustumCommands,FE as FrustumGeometry,hz as FrustumOutlineGeometry,vr as Fullscreen,X8 as FullscreenButton,q8 as FullscreenButtonViewModel,Ek as GeoJsonDataSource,dF as GeoJsonLoader,Rb as GeocodeType,$8 as Geocoder,_P as GeocoderService,K8 as GeocoderViewModel,wi as GeographicProjection,qi as GeographicTilingScheme,ft as Geometry,JL as Geometry3DTileContent,Se as GeometryAttribute,dn as GeometryAttributes,eTe as GeometryFactory,vt as GeometryInstance,Sc as GeometryInstanceAttribute,sn as GeometryOffsetAttribute,Nn as GeometryPipeline,h2 as GeometryPipelineStage,ed as GeometryType,ii as GeometryUpdater,KC as GeometryUpdaterSet,sk as GeometryVisualizer,DE as GetFeatureInfoFormat,UU as Globe,Pz as GlobeDepth,eU as GlobeSurfaceShaderSet,Xd as GlobeSurfaceTile,IU as GlobeSurfaceTileProvider,PU as GlobeTranslucency,Rz as GlobeTranslucencyFramebuffer,Cz as GlobeTranslucencyState,Uv as GltfBufferViewLoader,zv as GltfDracoLoader,tF as GltfGpmLoader,fw as GltfGpmLocal,Hv as GltfImageLoader,Gv as GltfIndexBufferLoader,jv as GltfJsonLoader,Sg as GltfLoader,iu as GltfLoaderUtil,rF as GltfMeshPrimitiveGpmLoader,YN as GltfStructuralMetadataLoader,Kv as GltfTextureLoader,Zv as GltfVertexBufferLoader,WTe as GoogleEarthEnterpriseImageryProvider,uU as GoogleEarthEnterpriseMapsProvider,i0 as GoogleEarthEnterpriseMetadata,gP as GoogleEarthEnterpriseTerrainData,lTe as GoogleEarthEnterpriseTerrainProvider,FH as GoogleEarthEnterpriseTileInformation,hS as GoogleMaps,Lk as GpxDataSource,D_ as GregorianDate,jTe as GridImageryProvider,hD as GridMaterialProperty,Gn as GroundGeometryUpdater,kT as GroundPolylineGeometry,Eh as GroundPolylinePrimitive,dl as GroundPrimitive,Ww as GroupMetadata,Vd as HeadingPitchRange,Ua as HeadingPitchRoll,b1 as Heap,Ke as HeightReference,qd as HeightmapEncoding,rc as HeightmapTerrainData,hI as HeightmapTessellator,g3 as HermitePolynomialApproximation,ux as HermiteSpline,Fv as HilbertOrder,eG as HomeButton,Q8 as HomeButtonViewModel,gi as HorizontalOrigin,aCe as I3SBuildingSceneLayerExplorer,nG as I3SBuildingSceneLayerExplorerViewModel,km as I3SDataProvider,a8 as I3SDecoder,c8 as I3SFeature,u8 as I3SField,EP as I3SGeometry,TS as I3SLayer,SP as I3SNode,p8 as I3SStatistics,_8 as I3SSublayer,h8 as I3SSymbology,gF as I3dmLoader,mF as I3dmParser,HU as Iau2000Orientation,D1 as Iau2006XysData,fT as Iau2006XysSample,GU as IauOrientationAxes,zU as IauOrientationParameters,tA as ImageBasedLighting,OF as ImageBasedLightingPipelineStage,z0 as ImageMaterialProperty,AI as Imagery,ac as ImageryLayer,OU as ImageryLayerCollection,Cm as ImageryLayerFeatureInfo,Pl as ImageryProvider,si as ImageryState,tw as Implicit3DTileContent,Bv as ImplicitAvailabilityBitstream,kv as ImplicitMetadataView,is as ImplicitSubdivisionScheme,dA as ImplicitSubtree,ZH as ImplicitSubtreeCache,iN as ImplicitSubtreeMetadata,fC as ImplicitTileCoordinates,uC as ImplicitTileset,Ne as IndexDatatype,rG as InfoBox,iG as InfoBoxViewModel,hc as InspectorShared,os as InstanceAttributeSemantic,YF as InstancingPipelineStage,uTe as InterpolationAlgorithm,Hh as InterpolationType,Yt as Intersect,$n as IntersectionTests,t0 as Intersections2D,Ha as Interval,zI as InvertClassification,Oh as Ion,zH as IonGeocoderService,By as IonImageryProvider,ef as IonResource,ky as IonWorldImageryStyle,ze as Iso8601,Sz as JobScheduler,Xa as JobType,Ag as JsonMetadataTable,K as JulianDate,G1 as KTX2Transcoder,ha as KeyboardEventModifier,Qi as KeyframeNode,Nk as KmlCamera,GV as KmlDataSource,RV as KmlLookAt,MV as KmlTour,NV as KmlTourFlyTo,FV as KmlTourWait,Tx as Label,Rp as LabelCollection,vh as LabelGraphics,qo as LabelStyle,ak as LabelVisualizer,y3 as LagrangePolynomialApproximation,Wi as LeapSecond,eAe as Light,vp as LightingModel,p2 as LightingPipelineStage,CC as LinearApproximation,lx as LinearSpline,ml as ManagedArray,wu as MapMode2D,fTe as MapProjection,fU as MapboxImageryProvider,nAe as MapboxStyleImageryProvider,ji as Material,oo as MaterialAppearance,g2 as MaterialPipelineStage,nr as MaterialProperty,P as Math,Bi as Matrix2,$ as Matrix3,F as Matrix4,nP as Megatexture,oF as MeshPrimitiveGpmLocal,kh as MetadataClass,Z0 as MetadataClassProperty,Wt as MetadataComponentType,Fn as MetadataEntity,vN as MetadataEnum,EN as MetadataEnumValue,wz as MetadataPicking,lf as MetadataPickingPipelineStage,md as MetadataPipelineStage,sf as MetadataSchema,Qv as MetadataSchemaLoader,hA as MetadataSemantic,tu as MetadataTable,rN as MetadataTableProperty,Et as MetadataType,ep as MipmapHint,qh as Model,Dp as Model3DTileContent,N2 as ModelAlphaOptions,AF as ModelAnimation,TF as ModelAnimationChannel,EF as ModelAnimationCollection,ru as ModelAnimationLoop,Wh as ModelAnimationState,NF as ModelArticulation,MF as ModelArticulationStage,kF as ModelClippingPlanesPipelineStage,zF as ModelClippingPolygonsPipelineStage,dx as ModelColorPipelineStage,xn as ModelComponents,K2 as ModelDrawCommand,Q2 as ModelDrawCommands,SF as ModelFeature,vF as ModelFeatureTable,Y_ as ModelGraphics,j2 as ModelLightingOptions,XF as ModelMatrixUpdateStage,HF as ModelNode,F2 as ModelRenderResources,ZF as ModelRuntimeNode,M2 as ModelRuntimePrimitive,eB as ModelSceneGraph,U2 as ModelSilhouettePipelineStage,L2 as ModelSkin,G2 as ModelSplitterPipelineStage,tB as ModelStatistics,pr as ModelType,Zt as ModelUtility,lk as ModelVisualizer,XU as Moon,x2 as MorphTargetsPipelineStage,dTe as MorphWeightSpline,Ix as MortonOrder,PB as Multiple3DTileContent,HM as MultisampleFramebuffer,cG as NavigationHelpButton,sG as NavigationHelpButtonViewModel,Vt as NearFarScalar,iAe as NeverTileDiscardPolicy,W2 as NodeRenderResources,KF as NodeStatisticsPipelineStage,YT as NodeTransformationProperty,Mz as OIT,QU as Occluder,Zi as OffsetGeometryInstanceAttribute,hTe as OpenCageGeocoderService,l0 as OpenStreetMapImageryProvider,P3 as OrderedGroundPrimitiveCollection,wn as OrientedBoundingBox,rn as OrthographicFrustum,Ur as OrthographicOffCenterFrustum,mTe as Packable,pTe as PackableForInterpolation,wP as Particle,sAe as ParticleBurst,cAe as ParticleEmitter,fAe as ParticleSystem,ve as Pass,bc as PassState,X_ as PathGraphics,uk as PathVisualizer,UH as PeliasGeocoderService,cn as PerInstanceColorAppearance,jy as PerformanceDisplay,fG as PerformanceWatchdog,lG as PerformanceWatchdogViewModel,vi as PerspectiveFrustum,Ol as PerspectiveOffCenterFrustum,Dz as PickDepth,Lz as PickDepthFramebuffer,Nz as PickFramebuffer,aH as PickedMetadataInfo,qz as Picking,b2 as PickingPipelineStage,_y as PinBuilder,Ze as PixelDatatype,it as PixelFormat,an as Plane,z3 as PlaneGeometry,W3 as PlaneGeometryUpdater,zL as PlaneGraphics,G3 as PlaneOutlineGeometry,iB as PntsLoader,zA as PntsParser,EH as PointCloud,vg as PointCloudEyeDomeLighting,bp as PointCloudShading,A2 as PointCloudStylingPipelineStage,KT as PointGraphics,Us as PointPrimitive,lD as PointPrimitiveCollection,fk as PointVisualizer,xg as PolygonGeometry,Un as PolygonGeometryLibrary,X3 as PolygonGeometryUpdater,wh as PolygonGraphics,qa as PolygonHierarchy,Y3 as PolygonOutlineGeometry,ri as PolygonPipeline,pd as Polyline,mD as PolylineArrowMaterialProperty,Zh as PolylineCollection,ns as PolylineColorAppearance,pD as PolylineDashMaterialProperty,py as PolylineGeometry,hk as PolylineGeometryUpdater,_D as PolylineGlowMaterialProperty,wc as PolylineGraphics,xa as PolylineMaterialAppearance,Nx as PolylineOutlineMaterialProperty,Ri as PolylinePipeline,pk as PolylineVisualizer,K3 as PolylineVolumeGeometry,Jh as PolylineVolumeGeometryLibrary,$3 as PolylineVolumeGeometryUpdater,ZT as PolylineVolumeGraphics,Z3 as PolylineVolumeOutlineGeometry,Sh as PositionProperty,ey as PositionPropertyArray,uo as PostProcessStage,m4 as PostProcessStageCollection,Ll as PostProcessStageComposite,zf as PostProcessStageLibrary,Uf as PostProcessStageSampleMode,jE as PostProcessStageTextureCache,iF as PpeMetadata,OAe as PpeSource,nF as PpeTexture,In as Primitive,hu as PrimitiveCollection,SA as PrimitiveLoadPlan,EA as PrimitiveOutlineGenerator,S2 as PrimitiveOutlinePipelineStage,LT as PrimitivePipeline,q2 as PrimitiveRenderResources,Pr as PrimitiveState,v2 as PrimitiveStatisticsPipelineStage,Le as PrimitiveType,pG as ProjectionPicker,hG as ProjectionPickerViewModel,Y as Property,gD as PropertyArray,AA as PropertyAttribute,WN as PropertyAttributeProperty,Zl as PropertyBag,gl as PropertyTable,Cg as PropertyTexture,GN as PropertyTextureProperty,ds as ProviderViewModel,gTe as Proxy,sl as QuadraticRealPolynomial,MU as QuadtreeOccluders,VU as QuadtreePrimitive,NU as QuadtreeTile,fa as QuadtreeTileLoadState,dAe as QuadtreeTileProvider,lS as QuantizedMeshTerrainData,j1 as QuarticRealPolynomial,Me as Quaternion,bF as QuaternionSpline,ox as Queue,mn as Ray,re as Rectangle,QC as RectangleCollisionChecker,jC as RectangleGeometry,Vs as RectangleGeometryLibrary,Q3 as RectangleGeometryUpdater,Dh as RectangleGraphics,eC as RectangleOutlineGeometry,ki as ReferenceFrame,ny as ReferenceProperty,Ve as RenderState,Yu as Renderbuffer,ll as RenderbufferFormat,tr as Request,Ym as RequestErrorEvent,yc as RequestScheduler,Zn as RequestState,ps as RequestType,De as Resource,Ai as ResourceCache,ou as ResourceCacheKey,IN as ResourceCacheStatistics,Yi as ResourceLoader,_t as ResourceLoaderState,Dd as Rotation,ce as RuntimeError,sg as S2Cell,ta as SDFSettings,Sa as SampledPositionProperty,Df as SampledProperty,Qt as Sampler,e_ as ScaledPositionProperty,uH as Scene,zE as SceneFramebuffer,ne as SceneMode,w2 as SceneMode2DPipelineStage,xG as SceneModePicker,gG as SceneModePickerViewModel,Vi as SceneTransforms,g4 as SceneTransitioner,D4 as ScreenSpaceCameraController,Hf as ScreenSpaceEventHandler,bn as ScreenSpaceEventType,px as SelectedFeatureIdPipelineStage,CG as SelectionIndicator,TG as SelectionIndicatorViewModel,bD as SensorVolumePortionToDisplay,vT as ShaderBuilder,NM as ShaderCache,pe as ShaderDestination,WM as ShaderFunction,en as ShaderProgram,Ue as ShaderSource,GM as ShaderStruct,Yy as ShadowMap,m_ as ShadowMapShader,yn as ShadowMode,$u as ShadowVolumeAppearance,gn as ShowGeometryInstanceAttribute,P0 as Simon1994PlanetaryPositions,yTe as SimplePolylineGeometry,dU as SingleTileImageryProvider,I2 as SkinningPipelineStage,hH as SkyAtmosphere,_H as SkyBox,tH as SpatialNode,eF as Spdcf,Rh as SpecularEnvironmentCubeMap,hAe as SphereEmitter,xTe as SphereGeometry,Hg as SphereOutlineGeometry,x3 as Spherical,eo as Spline,zr as SplitDirection,uP as Splitter,Ld as StaticGeometryColorBatch,Fd as StaticGeometryPerMaterialBatch,MD as StaticGroundGeometryColorBatch,rk as StaticGroundGeometryPerMaterialBatch,mk as StaticGroundPolylinePerMaterialBatch,LD as StaticOutlineGeometryBatch,Ht as StencilConstants,Vn as StencilFunction,mt as StencilOperation,xF as SteppedSpline,Rc as Stereographic,ax as StorageType,yD as StripeMaterialProperty,im as StripeOrientation,Js as StructuralMetadata,jh as StyleCommandsNeeded,mAe as StyleExpression,bH as Sun,V_ as SunLight,R4 as SunPostProcess,ZN as SupportedImageFormats,S8 as SvgPathBindingHandler,_i as TaskProcessor,b8 as Terrain,Am as TerrainData,jc as TerrainEncoding,SI as TerrainFillMesh,Yd as TerrainMesh,JT as TerrainOffsetProperty,ls as TerrainProvider,ua as TerrainQuantization,lo as TerrainState,Ot as Texture,yx as TextureAtlas,BM as TextureCache,di as TextureMagnificationFilter,rH as TextureManager,$t as TextureMinificationFilter,PAe as TextureUniform,En as TextureWrap,Nm as TileAvailability,Ad as TileBoundingRegion,LB as TileBoundingS2Cell,Gg as TileBoundingSphere,pAe as TileBoundingVolume,T8 as TileCoordinatesImageryProvider,_Ae as TileDiscardPolicy,_n as TileEdge,CI as TileImagery,ob as TileMapServiceImageryProvider,DB as TileMetadata,Af as TileOrientedBoundingBox,Do as TileProviderError,BU as TileReplacementQueue,qn as TileSelectionResult,gAe as TileState,rB as Tileset3DTileContent,kB as TilesetMetadata,wF as TilesetPipelineStage,bTe as TilingScheme,jn as TimeConstants,IE as TimeDynamicImagery,dP as TimeDynamicPointCloud,Sn as TimeInterval,jr as TimeIntervalCollection,oy as TimeIntervalCollectionPositionProperty,ry as TimeIntervalCollectionProperty,Wn as TimeStandard,vG as Timeline,EG as TimelineHighlightRange,SG as TimelineTrack,X1 as Tipsify,Vb as ToggleButtonViewModel,Ky as Tonemapper,Nt as Transforms,G0 as TranslationRotationScale,kz as TranslucentTileClassification,pw as TridiagonalSystemSolver,BS as TrustedServers,YE as TweenCollection,UM as UniformState,rP as UniformType,sc as UrlTemplateImageryProvider,lco as VERSION,PG as VRButton,DG as VRButtonViewModel,CTe as VRTheWorldTerrainProvider,RAe as VaryingType,fp as Vector3DTileBatch,EB as Vector3DTileClampedPolylines,vB as Vector3DTileContent,ng as Vector3DTileGeometry,xB as Vector3DTilePoints,bB as Vector3DTilePolygons,XA as Vector3DTilePolylines,oA as Vector3DTilePrimitive,T3 as VelocityOrientationProperty,RC as VelocityVectorProperty,ti as VertexArray,U_ as VertexArrayFacade,Ct as VertexAttributeSemantic,Pe as VertexFormat,Ir as VerticalExaggeration,R2 as VerticalExaggerationPipelineStage,On as VerticalOrigin,ETe as VideoSynchronizer,GE as View,bCe as Viewer,yAe as ViewportQuad,xr as Visibility,d_e as Visualizer,y_ as VoxelBoxShape,M4 as VoxelCell,QH as VoxelContent,x_ as VoxelCylinderShape,ZE as VoxelEllipsoidShape,MG as VoxelInspector,RG as VoxelInspectorViewModel,Sb as VoxelPrimitive,xAe as VoxelProvider,X4 as VoxelRenderResources,bAe as VoxelShape,Ni as VoxelShapeType,oP as VoxelTraversal,STe as VulkanConstants,ek as WallGeometry,YC as WallGeometryLibrary,nk as WallGeometryUpdater,K_ as WallGraphics,tk as WallOutlineGeometry,te as WebGLConstants,mU as WebMapServiceImageryProvider,pU as WebMapTileServiceImageryProvider,Ii as WebMercatorProjection,us as WebMercatorTilingScheme,gs as WindingOrder,Tw as WireframeIndexGenerator,O2 as WireframePipelineStage,Yz as _shadersAcesTonemappingStage,I4 as _shadersAdditiveBlend,HI as _shadersAdjustTranslucentFS,XM as _shadersAllMaterialAppearanceFS,KM as _shadersAllMaterialAppearanceVS,Xz as _shadersAmbientOcclusionGenerate,Kz as _shadersAmbientOcclusionModulate,eL as _shadersAspectRampMaterial,zh as _shadersAtmosphereCommon,DF as _shadersAtmosphereStageFS,IF as _shadersAtmosphereStageVS,ZM as _shadersBasicMaterialAppearanceFS,$M as _shadersBasicMaterialAppearanceVS,sB as _shadersBillboardCollectionFS,aB as _shadersBillboardCollectionVS,Zz as _shadersBlackAndWhite,$z as _shadersBloomComposite,JU as _shadersBrdfLutGeneratorFS,P4 as _shadersBrightPass,Qz as _shadersBrightness,tL as _shadersBumpMapMaterial,t2 as _shadersCPUStylingStageFS,e2 as _shadersCPUStylingStageVS,nL as _shadersCheckerboardMaterial,vH as _shadersCloudCollectionFS,wH as _shadersCloudCollectionVS,DH as _shadersCloudNoiseFS,IH as _shadersCloudNoiseVS,Bz as _shadersCompareAndPackTranslucentDepth,Oz as _shadersCompositeOITFS,HE as _shadersCompositeTranslucentClassification,VN as _shadersComputeIrradianceFS,UN as _shadersComputeRadianceMapFS,Jz as _shadersContrastBias,zN as _shadersConvolveSpecularMapFS,HN as _shadersConvolveSpecularMapVS,o2 as _shadersCustomShaderStageFS,i2 as _shadersCustomShaderStageVS,AT as _shadersCzmBuiltins,e4 as _shadersDepthOfField,pz as _shadersDepthPlaneFS,_z as _shadersDepthPlaneVS,t4 as _shadersDepthView,IAe as _shadersDepthViewPacked,iL as _shadersDotMaterial,n4 as _shadersEdgeDetection,oL as _shadersElevationBandMaterial,rL as _shadersElevationContourMaterial,sL as _shadersElevationRampMaterial,II as _shadersEllipsoidFS,o8 as _shadersEllipsoidSurfaceAppearanceFS,r8 as _shadersEllipsoidSurfaceAppearanceVS,PI as _shadersEllipsoidVS,r4 as _shadersFXAA,f4 as _shadersFXAA3_11,aL as _shadersFadeMaterial,r2 as _shadersFeatureIdStageFS,s2 as _shadersFeatureIdStageVS,i4 as _shadersFilmicTonemapping,mb as _shadersGaussianBlur1D,f2 as _shadersGeometryStageFS,d2 as _shadersGeometryStageVS,QV as _shadersGlobeFS,JV as _shadersGlobeVS,cL as _shadersGridMaterial,mI as _shadersGroundAtmosphere,QR as _shadersHSBToRGB,JR as _shadersHSLToRGB,RF as _shadersImageBasedLightingStageFS,GF as _shadersInstancingStageCommon,WF as _shadersInstancingStageVS,U4 as _shadersIntersectBox,V4 as _shadersIntersectClippingPlanes,z4 as _shadersIntersectCylinder,k4 as _shadersIntersectDepth,H4 as _shadersIntersectEllipsoid,eP as _shadersIntersectLongitude,KE as _shadersIntersection,B4 as _shadersIntersectionUtils,jF as _shadersLegacyInstancingStageVS,s4 as _shadersLensFlare,m2 as _shadersLightingStageFS,_2 as _shadersMaterialStageFS,Y4 as _shadersMegatexture,a2 as _shadersMetadataStageFS,c2 as _shadersMetadataStageVS,BF as _shadersModelClippingPlanesStageFS,UF as _shadersModelClippingPolygonsStageFS,VF as _shadersModelClippingPolygonsStageVS,FF as _shadersModelColorStageFS,$2 as _shadersModelFS,B2 as _shadersModelSilhouetteStageFS,k2 as _shadersModelSilhouetteStageVS,z2 as _shadersModelSplitterStageFS,Z2 as _shadersModelVS,a4 as _shadersModifiedReinhardTonemapping,y2 as _shadersMorphTargetsStageVS,c4 as _shadersNightVision,lL as _shadersNormalMapMaterial,q4 as _shadersOctree,Du as _shadersPassThrough,fb as _shadersPassThroughDepth,o4 as _shadersPbrNeutralTonemapping,xL as _shadersPerInstanceColorAppearanceFS,bL as _shadersPerInstanceColorAppearanceVS,RT as _shadersPerInstanceFlatColorAppearanceFS,TL as _shadersPerInstanceFlatColorAppearanceVS,cF as _shadersPointCloudEyeDomeLighting,T2 as _shadersPointCloudStylingStageVS,Ox as _shadersPointPrimitiveCollectionFS,u3 as _shadersPointPrimitiveCollectionVS,kN as _shadersPolygonSignedDistanceFS,uL as _shadersPolylineArrowMaterial,VL as _shadersPolylineColorAppearanceVS,Qu as _shadersPolylineCommon,fL as _shadersPolylineDashMaterial,VT as _shadersPolylineFS,dL as _shadersPolylineGlowMaterial,UL as _shadersPolylineMaterialAppearanceVS,hL as _shadersPolylineOutlineMaterial,NL as _shadersPolylineShadowVolumeFS,FL as _shadersPolylineShadowVolumeMorphFS,BL as _shadersPolylineShadowVolumeMorphVS,kL as _shadersPolylineShadowVolumeVS,mB as _shadersPolylineVS,E2 as _shadersPrimitiveOutlineStageFS,C2 as _shadersPrimitiveOutlineStageVS,eO as _shadersRGBToHSB,tO as _shadersRGBToHSL,nO as _shadersRGBToXYZ,l4 as _shadersReinhardTonemapping,_U as _shadersReprojectWebMercatorFS,gU as _shadersReprojectWebMercatorVS,mL as _shadersRimLightingMaterial,xw as _shadersSelectedFeatureIdStageCommon,uv as _shadersShadowVolumeAppearanceFS,SL as _shadersShadowVolumeAppearanceVS,F0 as _shadersShadowVolumeFS,u4 as _shadersSilhouette,D2 as _shadersSkinningStageVS,aP as _shadersSkyAtmosphereCommon,fH as _shadersSkyAtmosphereFS,dH as _shadersSkyAtmosphereVS,mH as _shadersSkyBoxFS,pH as _shadersSkyBoxVS,pL as _shadersSlopeRampMaterial,_L as _shadersStripeMaterial,gH as _shadersSunFS,yH as _shadersSunTextureFS,xH as _shadersSunVS,QM as _shadersTexturedMaterialAppearanceFS,JM as _shadersTexturedMaterialAppearanceVS,CB as _shadersVector3DTileClampedPolylinesFS,AB as _shadersVector3DTileClampedPolylinesVS,TB as _shadersVector3DTilePolylinesVS,Nv as _shadersVectorTileVS,P2 as _shadersVerticalExaggerationStageVS,PH as _shadersViewportQuadFS,mT as _shadersViewportQuadVS,N4 as _shadersVoxelFS,L4 as _shadersVoxelUtils,F4 as _shadersVoxelVS,yL as _shadersWater,gL as _shadersWaterMaskMaterial,iO as _shadersXYZToRGB,oO as _shadersacesTonemapping,rO as _shadersalphaWeight,sO as _shadersantialias,aO as _shadersapplyHSBShift,cO as _shadersapproximateSphericalCoordinates,lO as _shadersapproximateTanh,uO as _shadersbackFacing,fO as _shadersbranchFreeTernary,dO as _shaderscascadeColor,hO as _shaderscascadeDistance,mO as _shaderscascadeMatrix,pO as _shaderscascadeWeights,_O as _shadersclipPolygons,gO as _shaderscolumbusViewMorph,yO as _shaderscomputeAtmosphereColor,xO as _shaderscomputeGroundAtmosphereScattering,bO as _shaderscomputePosition,TO as _shaderscomputeScattering,G4 as _shadersconvertUvToBox,W4 as _shadersconvertUvToCylinder,j4 as _shadersconvertUvToEllipsoid,AO as _shaderscosineAndSine,CO as _shadersdecompressTextureCoordinates,sR as _shadersdegreesPerRadian,EO as _shadersdepthClamp,aR as _shadersdepthRange,WR as _shadersdepthRangeStruct,SO as _shaderseastNorthUpToEyeCoordinates,vO as _shadersellipsoidContainsPoint,wO as _shadersellipsoidTextureCoordinates,cR as _shadersepsilon1,lR as _shadersepsilon2,uR as _shadersepsilon3,fR as _shadersepsilon4,dR as _shadersepsilon5,hR as _shadersepsilon6,mR as _shadersepsilon7,DO as _shadersequalsEpsilon,IO as _shaderseyeOffset,PO as _shaderseyeToWindowCoordinates,RO as _shadersfastApproximateAtan,OO as _shadersfog,MO as _shadersgammaCorrect,LO as _shadersgeodeticSurfaceNormal,NO as _shadersgetDefaultMaterial,FO as _shadersgetDynamicAtmosphereLightDirection,BO as _shadersgetLambertDiffuse,kO as _shadersgetSpecular,VO as _shadersgetWaterNoise,UO as _shadershue,pR as _shadersinfinity,zO as _shadersinverseGamma,HO as _shadersisEmpty,GO as _shadersisFull,WO as _shaderslatitudeToWebMercatorFraction,jO as _shaderslineDistance,qO as _shaderslinearToSrgb,YO as _shadersluminance,jR as _shadersmaterial,qR as _shadersmaterialInput,XO as _shadersmaximumComponent,KO as _shadersmetersPerPixel,YR as _shadersmodelMaterial,ZO as _shadersmodelToWindowCoordinates,XR as _shadersmodelVertexOutput,$O as _shadersmultiplyWithColorBalance,QO as _shadersnearFarScalar,JO as _shadersoctDecode,_R as _shadersoneOverPi,gR as _shadersoneOverTwoPi,eM as _shaderspackDepth,yR as _shaderspassCesium3DTile,xR as _shaderspassCesium3DTileClassification,bR as _shaderspassCesium3DTileClassificationIgnoreShow,TR as _shaderspassClassification,AR as _shaderspassCompute,CR as _shaderspassEnvironment,ER as _shaderspassGlobe,SR as _shaderspassOpaque,vR as _shaderspassOverlay,wR as _shaderspassTerrainClassification,DR as _shaderspassTranslucent,IR as _shaderspassVoxels,tM as _shaderspbrLighting,nM as _shaderspbrNeutralTonemapping,iM as _shadersphong,PR as _shaderspi,RR as _shaderspiOverFour,OR as _shaderspiOverSix,MR as _shaderspiOverThree,LR as _shaderspiOverTwo,oM as _shadersplaneDistance,rM as _shaderspointAlongRay,NR as _shadersradiansPerDegree,KR as _shadersray,sM as _shadersrayEllipsoidIntersectionInterval,ZR as _shadersraySegment,aM as _shadersraySphereIntersectionInterval,cM as _shadersreadDepth,lM as _shadersreadNonPerspective,uM as _shadersreverseLogDepth,fM as _shadersround,dM as _shaderssaturation,FR as _shaderssceneMode2D,BR as _shaderssceneMode3D,kR as _shaderssceneModeColumbusView,VR as _shaderssceneModeMorphing,hM as _shadersshadowDepthCompare,$R as _shadersshadowParameters,mM as _shadersshadowVisibility,pM as _shaderssignNotZero,UR as _shaderssolarRadius,_M as _shaderssphericalHarmonics,gM as _shaderssrgbToLinear,yM as _shaderstangentToEyeSpaceMatrix,xM as _shaderstextureCube,zR as _shadersthreePiOver2,bM as _shaderstransformPlane,TM as _shaderstranslateRelativeToEye,AM as _shaderstranslucentPhong,CM as _shaderstranspose,HR as _shaderstwoPi,EM as _shadersunpackClippingExtents,SM as _shadersunpackDepth,vM as _shadersunpackFloat,wM as _shadersunpackUint,DM as _shadersvalueTransform,IM as _shadersvertexLogDepth,GR as _shaderswebMercatorMaxLatitude,PM as _shaderswindowToEyeCoordinates,RM as _shaderswriteDepthClamp,OM as _shaderswriteLogDepth,MM as _shaderswriteNonPerspective,_N as addBuffer,sN as addDefaults,hN as addExtensionsRequired,ud as addExtensionsUsed,J0 as addPipelineExtras,Ns as addToArray,_1 as appendForwardSlash,bo as arrayRemoveDuplicates,_T as barycentricCoordinates,Po as binarySearch,nn as buildModuleUrl,$4 as buildVoxelDrawCommands,Ge as clone,xt as combine,bE as computeFlyToLocationForRectangle,GA as createBillboardPointCallback,vn as createCommand,F8 as createDefaultImageryProviderViewModels,B8 as createDefaultTerrainProviderViewModels,EAe as createElevationBandMaterial,vAe as createGooglePhotorealistic3DTileset,zn as createGuid,Oo as createMaterialPropertyDescriptor,wAe as createOsmBuildingsAsync,le as createPropertyDescriptor,Kl as createRawPropertyDescriptor,DAe as createTangentSpaceDebugPrimitive,MAe as createTaskProcessorWorker,B1 as createUniform,k1 as createUniformArray,qH as createWorldBathymetryAsync,Vy as createWorldImageryAsync,_S as createWorldTerrainAsync,YH as decodeGoogleEarthEnterpriseData,SB as decodeVectorPolylinePositions,y as defaultValue,Hl as defer,l as defined,LM as demodernizeShader,_s as deprecationWarning,ue as destroyObject,A_e as exportKml,lA as findAccessorMinMax,ZA as findContentMetadata,$A as findGroupMetadata,IB as findTileMetadata,Wv as forEachTextureInMaterial,s_ as formatError,_Q as freezeRenderState,qm as getAbsoluteUri,nu as getAccessorByteStride,g1 as getBaseUri,nf as getBinaryAccessor,TH as getClipAndStyleCode,Ly as getClippingFunction,fg as getComponentReader,Rn as getElement,oT as getExtensionFromUri,Jg as getFilenameFromUri,iH as getImageFromTypedArray,fh as getImagePixels,Lo as getJsonFromTypedArray,Lh as getMagic,sH as getMetadataClassProperty,Ql as getStringFromTypedArray,Ti as getTimestamp,oi as hasExtension,Z_ as heightReferenceOnEntityPropertyChanged,$c as isBitSet,rT as isBlobUri,y0 as isCrossOriginUrl,P_ as isDataUri,uh as isLeapYear,be as knockout,SS as knockout_3_5_1,E8 as knockout_es5,sT as loadAndExecuteScript,jM as loadCubeMap,aA as loadImageFromTypedArray,Gl as loadKTX2,zy as mergeSort,dN as moveTechniqueRenderStates,mN as moveTechniquesToExtension,rf as numberOfComponentsForType,aT as objectToQuery,At as oneTimeWarning,wg as parseBatchTable,qN as parseFeatureMetadataLegacy,lN as parseGlb,x1 as parseResponseHeaders,jN as parseStructuralMetadata,Ew as pickModel,vTe as pointInsideTriangle,kp as preprocess3DTileContent,Z4 as processVoxelProperties,Hu as queryToObject,gN as readAccessorPacked,uA as removeExtension,cN as removeExtensionsRequired,cA as removeExtensionsUsed,fN as removePipelineExtras,pN as removeUnusedElements,tx as resizeImageToNextPowerOfTwo,qV as sampleTerrain,xE as sampleTerrainMostDetailed,eT as scaleToGeodeticSurface,gS as srgbToLinear,vL as subdivideArray,Ra as subscribeAndEvaluate,xN as updateAccessorComponentTypes,TN as updateVersion,hr as usesExtension,TCe as viewerCesium3DTilesInspectorMixin,ACe as viewerCesiumInspectorMixin,ECe as viewerDragDropMixin,SCe as viewerPerformanceWatchdogMixin,wCe as viewerVoxelInspectorMixin,wTe as webGLConstantToGlslType,XH as wrapFunction,jA as writeTextToCanvas}; diff --git a/app/plot_app/static/cesium/README b/app/plot_app/static/cesium/README index aea971554..002c0c718 100644 --- a/app/plot_app/static/cesium/README +++ b/app/plot_app/static/cesium/README @@ -1,9 +1,9 @@ Cesium.js --------- -version: 1.58 +version: 1.123 /Build: - This directory contains the Cesium release from https://cesiumjs.org/downloads/ + This directory contains the Cesium release from https://cesium.com/downloads/ (deleted CesiumUnminified & Documentation) /SampleData: from Apps/SampleData diff --git a/app/plot_app/static/cesium/SampleData/models/CesiumAir/0_Cesium_Air.png b/app/plot_app/static/cesium/SampleData/models/CesiumAir/0_Cesium_Air.png deleted file mode 100644 index 49bc23675f4bcf793f7376a235585aefc126449c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 464090 zcmeFa1ymJl`#!wsl#&t=a03F;4V!KdX{1xwbT^WMbV&&!B_Smth;+9!2#BOK(%tND z@br1#_xJw%&N<(I{lCSm#oFUD_jAw8b=~vC{aoXOD9TISKqo;5fj~E8q{Wp%AVgpn z5rhg4{A~Nwegb~b?4&gvK_Di|t3NomY#|q*5XDJGP6A~bo&@JEonzFUS3r@blZ1wo zq`4K8Lf+6C3KE0pJaU9OIO;q$vbBUd=!n}IIa@<*oE&xJY>lB-z>m435!A}c&<1Mj z?5HCKbu@Rj{`rSO#N6TMU43Ae$<EQZy<O}x2=o|auBzdrA@>ksWNXc2Xl(l!%H(Ek z2b>)Q;umtWGc>Y<I#E1^nwr}PfVXNIz!c`j0$_DcITkrPF{qij^b-fD$`g52qbHU| zyvAT5L3DmM2;jgP>SRdaW^HBT2yqhtfA<Rk_OFVW!4%(3oGb;vB3CD*(2!H45VLiF zQgAY{FdDINu~2ZaGO@CAaC37rP_VJEvM{r-F|)EUvT{S%*&r+|6hCiZL3Ch`-@(`f zqAV`?^XY(p34qO<oa`XX%&xAkOs?!qwhpGuth~IuS8mwY7y%1LM|T@1LpMenN6Md^ z{NhI(>S*L(Zs%lfYeRA6*YL5evy%WAe08E<x1aCJ+V0mA**N};9e^UUo1q;uD-#Rz zubzR5`~W5pF$bujldXfQt*w>dPj{|pX6t0@Xl83iA*RAfp>A$tZ0qXC&-`cO-_HJ< zAE>yY6I2jDhl7!YjggI0m6a31&IRFQWn|$5F#4U7pDh361Be-O6Zb#*;8JB}g|M?j z*tvi2<9C*S_5rYIZ0Kb8zw+{X+n@dLGhadcJIKHDd4<-W%KsY`#zwy~Vdv~%^__5I zBW9=-^!oz>u)+FAHjIrRCbkaNhE9U!)`q4~W;+{Ge&*i_|L*Iv`-SFTFY^xp^XuV% z4VzyNLBwpWY#pwibU}80=6_fGJ92(I{7WMtVq*k#1Y*ze7l?lf=I=m@8k+vG^cM!K z%msl+WHL54hOn@Uv+;6Ba&U?9N=UG?vWl{Ev+=Nq@N$Za^GI-uiT*?-P~o?$xbpIy z;6M8R{l)*stNYs`1Gs)UxqpxPFOR9UHS@oFyd9k+T!1J4=a%FTeEm|>QPtfJ%B&1^ zv~_kcf=ajmjWOlFccl#dtx@`4xB|?7YnQHY{C*n{85>6@Lx4yb@$bBt1H4G`N^r9A zaImtl@k;)CUjC)(Zw&qH_7@g@c6&uPH>()8Bo`|u7t4R5`zN=*tNJf)6&%cgUc=Dp zcQ!z!@6q(Xb^mW%{L5*i&9CCx{ZD~+)qto#?f+Q%TU>u{Q0xpH9HCbf3V?s%@b^tN zVExm^|2-5ShDKMtf}qh=BMvp@XZ}O!Z<qB;EsCG3ng1(k|NZuV^8LH2|JlE*8Pw)~ z>IQyt_1)?}J8`r%adI_ufQpy`G5kOGO+WejV}(CE{`ai`fXw&y#>)J!z;A2g0(JNi z0sxwU;gb_EauPIgu(hW6wZ*4!vZXMzv$HZcGQ47z*~P~A=U)8R_VX8(f9K=>!+Ui! zboq;c#`fPH<G&JUTo4vuH1_LQ;r~RSU4_(7=QT1jv@wMm3o`#g*)IkESMkOEkMqUJ z_RHArny<h9d~yA=d~pEdd6sLwe(8GuI$ym1EMJ^F5Eia$zWzSGME*&>xPfUh(1l&| z^|$fGB_=8^$-^tb1^oT{*~niRZvcF;Ls;3b`TG0#68~rUV&#BvUi0Pj_wgn15A(%y z%@>gM`TO{i{D=ACg>Z6Sw}*clU)(JJEMIJFzst{G&%gfqc%Jni=8F@;aXmi#``SZp z&VQCKcGhdY{?7i3o9iFu>-TGo*X`k7ZVy@5{@W_uUz>lib3m?^n}1qgzUJ$%^Tqj( z@dd2qvj7YE5YFp-)Zf>Cv2gvfd~pEt<zMw1*U#5qf4+GCNxoPitib$>=ej-o+vZ=A zT>nkY@c+91`bpaaj1RB#QGZ{1D9QZ~^9AI4ub;2KkuRQqoUh-sgV+6+(O=f8{1<u3 zm4fA0Im<7?hyOEL6=SG_`H!eoes`6>!bI_1pYwmuJ^$tL$$wYx{l)(7|2OmNpA=<( zRP=q9ILpaF{#60^i?H#hn3TLyeO(CxftdR*f<Hh^1ZXcIzZ2eFNfy5gE&mry=bx(n zL3#AEXXBqm`#+?${OO{8SM}d{w*4z|%b(8hZ(RI#reDw&{|(e%)RljmTGz?k<Ui<S zua5kyI{K;<0*FKb(c*UrpCBtg^S_k+?iRiu)3_3QS~-6gbF#C1-<Vmietxd|`{RGE ztNCB*{{Hx%>;6{tk&U^NAluKU`&04Hwf;6pp>F2?0n)1@{|f0<=}%g772xF$s2~?7 zCp#xU^Ph`<cXQtlDVn=Mtu(~V0lmHBl}Z*6By;>+>(7V&ZB@<xT=jQ{{zq_rf(&>O z1b7F9`PY|Feu>dvWx4;z&TsehkGTKI>Ger|2;6J9uHpJ21b)c)I=Zgm`XK~<$oM+C zuHpJ21b)c)I=Zgm`XK~<$oM+CuHpJ21b)c)I=Zgm`XK~<$oM+CuHpJ21b)c)I=Zgm z`XK~<$oM+CuHpJ21b)c)I=Zgm`XK~<$oM+CuHpJ21b)c)I=Zgm`XK~<$oM+CuHpJ2 z1b)c)I=Zgm`XK~<$oM+CuHpJ21b)c)I=Zgm`XK~<$oM+CuHpJ21b)c)I=Zgm`XK~< z$oM+CuHpJ21b)c)e~d2l-#+UAwE@26;0k=S!Ps%^7VyCb;;Ro%sQmn2L4*GEg#wQ5 zNK?QD`^rY$!5sMiltC)ac2Ec4gBNYB#Zw><1xQ9*MAhxfdYyX-)cg^1<!D6^`?RC& zQtvBH6FJ34_-)4YcRwKGPCe~iyJwaOy-(m7Njv9p=P|Ki?I<eW`-x!FFkHbB9L4tL zBwBL3Az@tkho|pHNQ86Y(Jd(G>G%4UC)wBQ8b*BHZfSdL)b-c7JLZ4<sts2mzggCw zdUSL#s?~6y4Qld3!XRYOC^5L+`5!<?<i<>(&|vuxMDATliw+K*KbByAGDz)l=W@yR zvYj}V3JrALh<z^X#_}_qvmita7o~Bc`fVhThL#q*ZwBq#@^G)Si%To6n$<V2n4;IV z$NRlUwI)`bf~848APpUz<X#hIkMZv2OuY4n>j^@a#6A?-=^>qj-h{iuI7*9-C;Dtk zJuuI)wIXbFw(l2<fWz?F{0mXTvBWNg7#}DZ&H#m?n+?R$&cEf}U!zgn;&n77CGOwk z8~nC>!{wDi)e;EQ__ZY{XL$8s3<Z(Uid;A?xD!kQ4-XQj?5x+3UtkfM_uc|gP{2h~ zi&MaZZ?}b5rCELTwqc~$eKB)zdb>Fu`zl(lZjWn5@Ny@rVq&AMO(GDyLK!I&LnVVJ z5$!1-L)FcO6@<{(+zgMa>wU6F)SF$oR#Y>@fdsPL01Cl`609#D#!#7;YndnE4L(Ic znd4bnD=95)PW3H61Rn<brNq=-q}sBeS4ccXHOnATMghU+^MHggcXShdY>+{o+YL!@ zpL^jzzTkeG2-d((crXqwE{VU{=e3g2-I^YGqzn;%RI|cG#>yF>G?afnprT>*ja`C2 z5bUJB22D)TXXnd83gR76<R~C}5OMcCnPw#)qww>H4BAK|@pUH%A0HoRVC#t2=s8p~ zhKi_&#%?*q6&~av7`_{lOB+fhgA*NmJb41aL`D#QKS~C1%AK+aLjZwbi@IC&2cz0P zm&@K<{JIHA_Tdc++aL-OOY1hcToVxD3}w2u{D%*kU}2RUP}d=x@be2Dltw~cP@gj> zm;tBP83giW;N^bCjujmIhSp)+1HY|2bL1Vu5xwn}cgtSOO*{bqy_q>XG(X+R$~052 zz$$pp2v*G(UHFl~?x{2~j|=1T?%>Yzq{`<g;g@R_-Y0F!N%KAxI`4qpiKsg36RM$L zYP;h)*+f%B#FlOv+<$=GPV9p4w%k3{*2>C`&6w@w!<^v^S~WE_7Z;aj0tfX+u&#@= znl#kSs<poDTHXD0^8Dhb$n}wJMi}jDh={=l213yc32Cw<pg|fqRXAT7lySBo3XZ$R z$9iU_ulKp#bZL1df@_d#@6W7%NLr%fj8r772l%ZlW_T@9N_8u|Q3V}{Dm#!L5?|2a zs)A2a@aaW;T2_e2#?TNRrS8%x#=fa>&zc=ia>8w+M112y3GvIG0Js$pM(xfAas=PK z(HqBmLNG@#US|=jV(PLIKI`c6&8UoAT69ow2CbZmOLAyNaE6()GiPXqOO3$Ghrpf5 zC-dCB{g`1tkbA0qqCt^A!{7|@LZ{4QD4w36HvE_uvtPppTUBm>a*O)drOD%vu#y-Q zY;@vShGN6+43BG3EcO5^8Ra#WRt&cI>`tx7vj@nT)vI+WNQWjCdPB@JXN<A|LTvk+ zp>V!JPmDTmCnI^l&Sse3-Io8l<em!EteGOi3bH44g`^Y~G8%=mz8SHw|3ukcs#n~B zz=vxu@5c2igcLq1h@ZvbO`KGpT0xs*>**;3*BO$+6X{Vm-Q3)4z@nk2cP~S)m}pb> z`!ng%w^4t#x#m(c(v{Rc&-!GZI&(01{(@hIW#6<lD!83EGJr^;NfzWQgdl9V(Xmyt zg`t0(G2MOJ_KbD9(;ePNXeUHrd-c-`*-$b0(40n|$P+Pq2~Y6(BYcT<nqc<r9`=45 zrKC6hO|wr?$URS2bKH&m9H!kSqP&j%$=%L;j-z~b>yH9acKr}9dZrBr6gaTgv=JGM zz6OhrzH?ooJNcBcv}n2jszT`@2#;iPrYP9EdzWpjQ^dO=Qg*TnIYg(HtdrFfvtbFZ zlUbod9M|!g8>g#Zy9YC*U{)b($pQ!NRBM@S>UHhYsUj};T{PIx)C|R|o47c2%N_c} zsVx_ur(9=r@sY5d=64d81PVS<wtT5oJZoH&F4AB&zf^;HZkoRPYDfDzS9bWAB(Q^% z2j~J*Zl0}334QeRs<ZR(ctt4?t^*}CP3(ScgSFw96~r&A!HjQ5+QG_)_UhHED4`wk zWU8viXqF1Iy!&vQ)oVo=w3Rv{QB^?HEp|Pjv}JRCSJ9XdT;P4{Xis8xq?BRa2P>$> zs3WR4l}8>iMj%(NNa$?O_J&|%z~hHH_UYvB2oGEqYlHEgjFG02OfUL+rLfGWm6P;$ z_;i_7;;~8jgQlrjf(?S-uH#gdd{#Pax|1;L?I7Z1&tlA1svm_OZ7zGd9gKSMAbuE^ zS-AGjcF==I>aR<I4#-O2W#gEN%B#0XzWV2%)tiW^K&=zDHN5=ER$D%>vnmaGxncf( z%gnmKV~<9;6ANs?&twf2Hky8Py*GB<Jj_o)khyy{@jaAHeph|X>V*E~qW+S5-_!F| zr~HnY9k(9Nw`_BrD4IdT^`J%(8@-o<g*>3S`_d)JD5a~$G0X1J%XpuM#e~3u-GYr$ zLZ?cv@2_g2;|8@D;!6N{%`Fo*9E;ZCBp;)_+oaK_^@8Ia?;Xlr=foX!g7lU#bYs*r zAP-XDf#CUJ?Y9@D{jlu>Utt`c5m%My6L){fFd%%`weXrPX;YC69JhbRj-C>2Zh7YH zF$gIwi%Qs_!hv}5(n={{O05Q^{yEWmN;nE6{*MHCerI^rdm`}hEGa68ct_5{l8QnP zvdHlhf|<i=?#(gMj!EY~Uwa8shc|@teJjy&3zPeJyM4xGd8}*6EMvmfqbd8)a~kMd z-BYoH#3av2)cV?XWMYVocKMg#Y6*J{zsbLV@>6|-XCb?Lk`}YOIP)>m_!Yn0cJsJZ zdkbZ8W9FI@Bx1gD#3G_&Ue?jz>q+p)g6FuvqI;i>@C&Hs3nWvD?_ufZwIW77C-Q>8 z%|gWHRzP;(qsQldm(*$9V*F84{M0Pxa>J^jfdP9hDq&V!-KADsWyY_R(mILZg<B`Q z&uKQ#Ki^qiflRv2c)cC#%0t`m*p|@H)&@@QaO$4A?9LRA?WuQKYImLr8@DLuIq%09 zFP=>@7m!<W7wk4seqi`?mtRVpW2t85Vsq=_a*KWAzOi?|%49JaNk|fcFQWsU4K8{_ zhvo{XqEUaBV!|L~kf07lzz11YT@!}lEB$ym0`+kfWh>stH3XLiF{RzFaIYs5^yEs> zu?*FXsvjBm-Og)0F6V0sL3(CECdPZaGrM1->6A%~Lg`!S4L>+Vsj2jhcXb<m#r9R~ z;M(O5+qz@2Zja3>DYGDO-y8abthg|uNJ+}P?l~63+fm=xboO|PQ5;S7_K<mtyU{yq z;bTQ#F4E55AH&<W$nBX@O`|ud<6*kZV>jElv}7VDFo!1slZnAZ_V-7@CgXQ2nb-(b zHz`c%HJO;0C@3fZMhDn}!dKmr<6)4`aga_TwQqb`9qF^t7W<8$jA=@rfI0a5Pmff1 zd3z``d5c?yv9VX0aV;t)lnHy>Al;6ZUDfI4yh5z!)Rwrj4-K|*1P|yeH;mc3_L3=O z*4EbWd}j)?!u_=~7Ggcb#EVQ~vw~WUcrfoRQ{R03sa=LKWdZJ3*-=+lNyCy6=QS&0 zc2Tz-kLOBL5d6Ln_J*~qKn9-$oz6Ojbsh=J*tYspb((x5o^J|oyU`k@8_+%9;eTNk zn}2YWL&ip=B(H*zk$}QL7xbkWubjRqO)CeE0{+bu!s*CIyBfi8Ndf!S<2W+u5yqz< zPsWv-I~TdFG#An*?^k_5m6irwCLO<(-4nc=>!@!Ie~STOwA-pXa)^rVG9I!hM|_Ae zIW~|+15fr6>iNPB8T?>gbQ|sAt#Yat#kc5ck;p)|${tiF`eZ=wx~U}77e!Q)GQ!70 zf-`c5R~eX?9B5w3-nak;l43zvQ+6#kxToFbqba2-W5eS<+Y^i<VDoR=!VYbt1P(Q} z;ed8%J%&Ym;n^&`-cD#YbAu-f@ucToZ#Yk3IfHbukwcC3vtTZ6?xv0{Xs5|Q&uhv) zB7f84l|lXHY5vwdmke5xs1BK!64H8>B{&1FSN0~FrReT22ndk&@#uJ9hW%^XqZRe# z6B`bAl%W|-28|c4yqn$&ozV{rly$;%Gggz;okzMPnpSjF!;iHEy)JX6lNL&;>6^cD zbTMvc#~N4bY&3sawNhKS#Ru{=U;%?DFdDzmX`sg5{p@H>x|`6aX7zzK{Vqm9*2bN5 zBA(61)3dmR1KtBHH7VVGDcG~JNVS*u;%ox5Fc^4o^fSl$TSi5<^5Dhe^K$ob#BjVL zJS;I)Eu!A3Qa>8>k*AE4)sbQC3e&6i3pOsiEUXdF*3PIDQ*_01L!5gSQls{eH-Cf% z$JF3kRq#+|&7P&a>w)Mz>XgS;onw$|Rh4MN*RSf&tHYm>-i%gKQXxEePMwdO6w?=t zd)G&_{GI>98*_JAo*`v}dl52eC8a+HdxZec%7+PS`}<5Obb@ljSDZarD=c<vqt`ob zCSqb{4oga&l(XEB<DPPYT^tFWEX0x~ql-BKkCE<qCIam=*2wLPo*d_o%d1ZJZ-VBv zB&+#x_I#PrIM2vILmVUEBhj6NTcS1O<;Tx?FxfH}+_CBd)ksh__Q16Vg|;bcyzBN= zt>gw1<Kth`6R7AvGj^4RGs9E5Ef*~Ck~b8c#(xSL$mXDV5a&~Q`qHP9R40|~q=2ED zAv#v<u4{6;vnBj?y?Dto>Cu?qXNlBXx=iqqA2z|8q3Lt@`<9Q&AR0{TE{f?hmNvV1 zhB&LVPi{4IK;9GFZ$R0}4yKJ3+Zc6F0DVeNqTGyuo9+LoU1B37uCua!8^di5$6Ts& z4<=FyhBm;vmKZPIP{R}chBs>Gqk`D=h(aTA`RUygX?VW7^*N=RYNJlb$1NvYXsD-S zEqpgSpq=pqiQaUqZg6v1keaT~kM>X+_Xc_2wDjKKtzclK=puHU7Jh@b8ANMj(wq32 zis?OOmU)s(&D5aTCyR0_I{R+M3Z4DTUVYes{?_{Xf_r^!?c|1wdt`1eJpVhuZtEm< z>u!dE_iikINYFb7(7!O<<xamh<{KQY2}~AxP4HMsMjf6Oi<>1@g1@@IoV_)OzLrvv z4p+cK#;>;)!;Cc{?ff<_OeQOc^<9sEW~w$ej%xHQT{<iYgX;J;sQzNZ)=>mLDm58Q zbSfz3B1o3nPkbtSoYnvh#ac#Lm~3ksYKYJ0k)d>|(ZxE~wyYxa#r6$ycu|iG%;Geo z1A;S3Ggb0Z@B$C^;E(9TGBncd&{Dcs?VPOikcQ~*)PNr7dhQ#Vi;F43U&Pe=_2vp1 zmZ7WNd`hApvwVnZ-qB!xF8yj(r!g(+CJ4_-4~-tD;=W^Ubg&1S`Vd9)>~I(IV||%o zO-Bo-X<u#p1gkWyc@_#zM7mIAO8f_@s*C8>7MqB3WadxzUQq5=^?S)1C-7R+yGjL( zEDnWnlrf#+g=0Oil0tvs_I?3Q?y_s<fh*BCQl<+p@;%C~ZR*A5bB@mayY8x*PZR83 zxfl5?X4b6?!u+uXE32!~1&f)6rPz^MT`eFf_hcM4%Eu0$)a|&vr7!eHLZSF90nPZ> zzm9Lz;{=(SoJ^L_v9z?*DiCSMSZ!~sRcM-<?fyXZq7mUei?&JGtsKi&%~<7KnQt&Y z*;Mdi4_K5Zx}?1^&lxs!kdFX;S#^4mkTAy0#W6+`IiH=KU0z;3)m|D95Fm6`CM4EM zDHTb|@3wuqR?OW_3UM;yAh~69dLft=pmSq$5ThO@%&yu`Z}(i!yL&96*gu{8C9E}I zmI_VPP(F1z`93bq(_&<m{KWdUBK3k13s=aLjVoJ9H7S!qkj|NO9CVz?@S{OLWS_>N zysF%nqk(8vbTC&_09=HfMe5qGM)cLk1^F!jmu!{0zoY1EIxR1JFTFLwvk`xX@M$?= zf-op;r1-3~**&mj6?~A<-T@}1t(JQ}NO%+;Cq1vIyNHdZ!|LVCeAx#zJk<N%O0Siw z-lNb+el|4Y!n)ZI_R&cs`vGx$k=g2QB_=52t~NztDNCl_8U<KXpAXv+9{vsQ3e&lF z;c$A8rIO=l5`Q?Sv$2$)pz<gBJGxGtGSYlWimhv5Qg@TdS)-rX#IR?tR}QZNC<Xh^ zTzJDW)J1rn?62(1cW|;Q=nn~O)|Vf)kY8>auzddfc_3ElY6@19`*v&%ZNu2htBy95 z+2^Dib57`NykGDtA+!6D9@pOEYI}9!$8W6fz8EjGFD68VR2gomd9n05h>RpcQeEHc zz<}lWqk4U5S=sQ~!Ew-qcN%v_L913FA<+j1C!G>b?4#k;xXh{KI_q*R3=E7Ec~f(9 zb0{=>V&m}4>ktu=!gLf~yPIE7fAHBz`Bu-X>Tmf4l9|y~wI)GWcjmBx0C?GJGIP@B z3YsN{?T|;23tc9S)xMe8B9hqYhn@FtxSW+2du^DRE;}C0V1s00vdr(x(IPc<lXekc zu%WRc#J8=wJt)W)%%Dw@&jF)T;Xj-v;S&PpvNcmp1_L$~d?{ESf*UR#{A7E0Sozd4 z&1W&fZzv;J-Vf=%^h+_C+(KjQtr}GmJIKmfqof|2cV~;V)IS9&u4-z_z;}-BCq?ck zI5&B0U_A*AgO<(4JnUDj%))r0u9oVK^3mF`n<0>LI2QZsn*Y!z$~1`GIz{FOMM6Z6 zx>Pn2rDC2B-mXweL-<n6-Zf23c_?VrQjv@JP0Uxs{Lac46Z;MLMv8Cx<_+?)jGO{n z6;mgidTy6)@Zznf=qd72B%Gp;JXNZ1T0|+C@y<e%L|CPr`G__^+XFNq@F|mqJ^AG# z&fv#3Irt%tme^TSHu^5(&>^uDZs&`GG5t6rto|{!8;p#M_6$C0SdBLo_}`V5mX?$} zr$Wo|^%I~Wgm-G{D;(MN#mkAd6U+p%e_E6gS?1NHr5V|y&oavD>um}*oFIj2mOP{m zs;TaLq!>gg9@C}bM*)!HGV~r>Lz=sC!`=-(vyD&NzHf_*i!DLe%*@Q>Kn`kV3rHt0 zbT^z7+Fo7=owp2TD#&6zb*#51opI=9%uw4OhF#JetTHe&?>z<b2pb#LSZwb|cY)Cs z&vT#k&+m956A}^%%hwq~LWLA~HD5$XQdZ?BuRYgP!NUiiFe7U2q-%^w73CM%%}zAc zX4+KT?yzr|0TL}^Yt%BOm6e|@%CX4!D=RC_GR&-<HwLB1r*1{T*|TV@I8`edV<run zz4u%h`1Z|$w1b|WzV>JaRtF>1dsb#+TeF5M&XM|A<!P#)R{DB;0jn2MvHFhJot>M# zaBrVTji7R%<OGbUTn<Qecws*cwM-Yps0d1`6iK<0NB0)IEs-xLTzBhbG0N;H;!14j zBlQ3Y3C8^B2RnWxn<Jf?v5Zw<8`S$-!91YZvy}Lpxq{TDc)_?njny)HEKsid#Q}kf z$ES$o+peJ%=ac9mY#6}MbQ@GzRYix#s+EfpcP}c-n%9krU%_kbR%N#fhjB5K0I_~e zMA;&EQ3fYRG$!q_4kHDYaKQ)(CURI<7%BPJ;VK|Ez*Nd=3Q2MBOYj1LI!mqi$)Y;u zyNsI?Xyt}uhaQiOjlovaE>|zlwqREe{D%*O#~F8l5$@dk>}=}G=g{%JG}!qo+j@6X z(<?V|N!jL3Z3IMk_Iw1ot_3Ijz_eun6w^1swoB-KMp72sGQ#f?RvJNJ@MemA8`_XD zw#GVVdfeU7=yXC~T<K84;x-pTLml0l7Xrjie0;nVxz~OZ3OS;0np?NR^iDK(w=>R* z1uHIKipcNIlICq~9kHCKRxkqeGo)>K#;LN#-gvBvtFj=$wfwwu(#z#f`MFCWaruZ{ zPADMo+&2ugz#V6^axKgYk2*3w3I8UF(D^PmunYn?vDc*MQ}3RqmzMzBQr%XSE=P$! zg5Bu+#Ru9%3l&j!ZB#sh&b6m`cWF7Pk<{3p8Vl~LKS=qaV7JC?U`9v!4XKoWpn`;n zI~JinEy1v7eTOu<oJ^Z?BwLk#ko>_RKc@isjU##r;uB+OC-{=A9lIS|H8&CHNtx8i z+@76a6G+)TnVK?Vj$K;s^&CeYgQiRXd`JH9t=q1u@q(B)9up9j>V%dB6lWLDGJCJn zkK%#PcNA(@#(e_$QX+9SdE;6#F16w?NwOagCF&?vQg};#C6$aOXmtdQV6a6Rt>V8~ zLww)k&y*0e&uLqmcSd&!+LM0CC?ifpeLBXSJ-pgu0;Dq%c|P9cF1SpK8;YfpshC)# zCv2U&n$bM&1ECHqgbsBX<4Fw0tLwdljzbf4?}?B^BHMS-6&EATT3~vcq;|$N8dU^O z*x~rKu*CGoM{9*itVDo>i^t|O0sxk_j%ucCipPv}`a-4{x>MbDLuk^TJYYi;=OD$x zH8kZo?J*T(C%JJ{Nm4r_pHo&<1)OF?UBB0Sz`LQpZce+9P@lHSiOn{IBPTquC!Jss z9b`9E2_$r%WiCuQcNKfiiuwVTtvZJtJf`3qcNQU)#-cIe_RoT2yFPctmPo27z1N}x zy|uLoSca{O`s5-Ph)DDJmE~cc@RdX!un6_u%y-TZ&@e$J<&-8W@f&S|3;H7R<Y>1e z#!S_mMmW3q&5H};@U5sBmAyMYZ-rUJKM>Y4`j0nOpFFywsLr{bj6$J6e}rq#V9yIj zQX&zu3I{@Ejqx)AV>G_=RIP<c>VveUr$M=MG3nJ=LrxFt->M5?oS@vEBAyID0?#~c z5|{TSxY3O)(i^KNNC?a6x_K7BN4BKP|0=Z+`*IfBdsS8+-WPZ@Ha0eZH0*0=;TGKm zdfTn%(+qN0QE%_jsVL5&D?jQfkSVmYmVau|%S!I=Bmy_02daI7*w6FuV!36BcXRHx zr+9=|vj%@Wu~8*7;#td~$_WMUiHT)^K@%LR%g$%^etyT}ZNrU4p^N=t6f9C89|5B5 zyGbLD86+l78r1<T*hnb{zJ8nartAL0(FA)nc&>2!Z07Ky{UHN&lF5(a%_@H3;^s-f zG)%J5&vlrCp!5c=#67$h`K=Kk7Us~x!a{QIk%CAa#~W#ReV|XCAduTgfgUyQjW;as zY#VQH9i7!40aIH>cw?)05f!$jIS@<aGUJMBWn_?yK=yektlhrn1VzwG&@y#oh=bq- zKJ%>zmw~ody3W}y??Bs8Ge?(Op38i%Z*B96!sPLX3}P|#n%<Nvvi3yx+A8}R``71B zsD=73mW^HPGq?<lBaD~T!|E$Pc;Zgp6eS!0X<}^{<@Ie=A8M5<egnCCGHVH8HQi(> z)PISw^CX)R97Y^(A&Q72#dO2BJPRI#<F^w4H%bhAtTe~ivmbsn=U%BqUoj|J%%L;Y z1L<RuI3gJ+nmU)3B9_`ex0-2X2}+emwv`A6dL0siF7qX>h+>9eCa>^B?Xvj}b{Y3> zhpqQc*)~5rH6G~8#s^jtbMp{7YUS0|XskOi35GgzN0U_&qS9Y(_}*_&${Mja6`h@c zH)AEIyZ3@eR_;)03uwFp0+7rTJB6w`<9wV@WU$h9x*U*&pDi7Ow_^KMx(^XCu!Kuw z+fWiG5Pea4Z7S%uRWs=LAxBRH4sSeLV?GrE`?lQ1|ALw8%?jS`$+!vGZZt@^1Cp#h ze<^DPg&3mCkxG$Bj`b}^*ghHNuHT6eD3Y|UEs)?oX(3S8fvfk{N^)FuXL>oTSIkWk zLA43KjM70gu?U4c?*w;&ddDrs1#h#5X`Dz2b_<;#zy`!6=VkXF#W=_%HX(U@aK><f zJoSm1<4|-~R1h~$JZRd--p&xX=K$xXm^f6i>ENS-Now()JmjHza}Q?>M9pkRc+^P$ zzzRdX&C#P4r(UY3meR7Y+)R;*1@{K(?U|>r(t3$xbaiLpBEip)uk!FQIdQCM%)VTG zgCa(sb9SEH5{Jhy9?-atgL4;NSL$vOKZrVpd6+W4gGI6J<lQKHCY71~s4%hknj`$> zWn5K?!@zbnzOQ7qAgIX>U3y5Yycv5bq^tVAkfO~ck>Dv#Bd;rhP5sGIvCqXCCSoiV zujg?|Fp*_=E)uoGJ?U-%Sq!3(m4ft#CvJ8O`ui#6IP77kvZ~VbSUckBd;uf*5hoQ7 z!+Z9U*B<KwNejJ)^HC4qDC>8eD>HuWKMKCNbw;|qxcvH--S?!0AP7Xt=dunA&z}J8 z1B9DaPplm;$`D9v85BN@9Cd=+!Lnt~QJIs(+`pCA?bN)j4ngD&5WltW*g>C%f@7_? zN;2=a>1c`KHM^~Fxu8JivHnhgsm+dOp&6xlxBeF`0CeM=Ba@=HzB9P9b_iG!y7$1j zMt79wv1pv)E4R^wz4-fnUncXq!xr)Ep#h4%R0NImd(QJ{6Yt6%jwef3CxC@xsEXZt zEiYH1E@}BsOdmHm9cAjwW7PEIk-YIBW-eTPC~>R3?CZ<rc~21eW|94~2e%X>Yq~cd zwt}V#E{Oe}crc@#t+o3of6@*-)bty^xpRV8I4}wquI>u=_TWAjL4?xQO$xTI2|Fnk zaJTOSVby>K&ZC!alS}<wksw`4%R-sr<K;7L9`|)Prf7t4aGGL{Y2x1tccm%I`&;6J z8lT^}n9ju)aS-UNHOQ4;PiJZ|GjS7-m4Ohes)m1R5v#B8Ek}-cq#i#7Dm|<dIvH}@ zKmaCRoy6?Km`<vC8S4<0Rx!vU<3~z+WaX9Ys#O9k#TXH-`U}NbL_8GW9q+<shDXK{ zN>)}@!Fae}y|*jm{IB9JIPzGB<>Ru}j=1WhfJLErA<<{F-_su+z#`TX6D(rp_(tJ$ zCc*-zM$azpLoxi(2XfR&2!}=X%piXcI{Z=HId=}z0p^&bWSr-EJI&Rs?O8G(B@jN) z)?NyLa5ZStkIx!lXI?QRTUE=cQ}w64Gv~cubh0zm*syOP`;Uw~;>~L^U?GbF5|Vc* ziik~IgJYNQ>gS5xhT^?nzT>tJbt7Duy`@r?7)&4)%_<+ER3UEU(ncA@@1W#hm{y+K zz_^>F7CCRHUcM|#E{w{pf!rlP$c?_4$%Cn7S$a6`l^fdy+yG@3pWhQS{_OZ-(SAf< z>U)8uYL)zM(|jH4gC+eGFR8^5M!VKPA&4{}IL#_W<0kmHwo1}3L`^D1Rg5=jkgIS@ zR<?0epWIF0#c&F)e_KiGp%20}#HV~NOKUg&{ve#X!yevfZb+Xk9#`H>qFx2gmFBs& zq()U@ddkz%RAD}kcnFHb_--1bM#>&sv5KnYM@ezpi*1BPd7?7}TlX$a&%T$M_0`oM zpQ1&sO21-3Tk~bcL+HniF%w9L82JYGY$NaX#kWG4^k*HyPhZ!%D!o}Y)K{T)uYVq~ z9W5=s3cej6PNfA88;Vh`dHChl1U4)v_+D&Rdwcug;RmYF?}-#@>xMnPhO!Cuh9i%L zu^zl_Q?h#Z4+Ggnc#?BiAhry&>Jbv$AxlXQcx6%s0t5cV_g@%McD$DK4L(jD2IUww zTud|wxSpiAPLDq{+zVP<gx2F*F_?c$bCz|v*Zk2m#8&1OsO&u8yd{TunJEDaH?xz1 zgyWf+Q)h(sjq^7Ba|zUqWU~F@hc7<ZrQ{IP%C1z0Kh|0%K$Q)WZfSb3r6)(3C*${I zETf&IxU4H1g)mMvO<Azv{x;=ZjmRUur+2oDh&QL(u%nEY+>UkBhh5L8m7Y}u7?ru@ zq8Kx3>Pm+9S+gMWlC<E-d`KjaFa#TA5NaqReVl!Th+kCS%=vAuHG|VEIGTLif`~<M z2{WAa-eVvC#utqfJC|s<p1~=gaCtB38CFncC|Gep%5r6fVA@UO(Ux26<lJr%uTT*K z2~!=CJ+6p(+=Eh)T(7wXIMAH7(5WIm%?H{}Lemw@^AY_E0?SNuR)kwEw}{v#KUvT6 zOwc`s4dtb%<FImQGF|%aKS+>!*TDL!H_Hq?-(6MlTsg!~)>mfXlN&DvhtC2fxqG+v zv;!`tIA$;BTHY#XMI4>O;n?GtfCgBT2NEo&r%zDvfV7xKN$lt1i!a5iKHjqk<YtmO z)l-}8?Z_zkyo~AeFR~~TQ7>~tA4ypn`gXTlqT`$R_)68O6~t#XQzMCs(n@tXY7IF} zSXThm&*#a<HlJ&dcIZHQs<aB9+!d!d=|MwejBYI-gD^I_gI0YJK;|*6N~99)j+o&^ zMPg}os8O5dVlea*De*;#@!0(6*{X5S+n@*n3)hLKTG(_uq~a`}p6Y7150=N}D0;mm z_*k=a9vAJM7G`G}gbOmjmtC#I79G=Cet}vUH~9WVaAt}4XbfX0cwV1i{Cy`o#r@s4 ziE?lh{cjqhtYg3=OB53JF)l<yn|`c1(<+r1^2XMN;6CI=EB;b<ld#%O(}(DxF>1*l zf;$O$$NgOKbF4XVCELYWNsJz12Hy+C!6Y%)3Geh4zLmmVWbu+gBW-b8y?6-PqaXZ{ zlbMh46Vzw_h6G3ICo1kvmBQSZ!<Vsoc5#Kg-EgSB)2GoWxHpK6!p^;NHZi5&sFu`! znnzbrA`$VspAhp@Li7M{i3ptA{uVrgrpGM85BKy^OGwLIlR^+gdkbxc>6pIHDDlC3 zFvdhBZvqzA2&zzwP@Z|=rq}8E>l7aQxo9b}lf#OJUS&66ZhIxak#F)o&GFF^^Z}MP zhX#2*xYVR9pO|sXZ8tpIwoJ00L;EyP*rPB+7PE|IGSZ>+Y1K(1E;cjXjGtBP&VmkF zdYNUh$JE-w-qm_q3gL6iV<!moOH}Y^$Y-Jc0OdJ`IGQT_-IsE-sq0+t`R<h6x{Kf5 z!edl2uDz{UiA8j4Kh3CGSFP?i3%sufLDu+s;tQUT9!lS2`D6hKMrC-hoA6*S=ZSQ7 zWp+@ZH&pvIdiqXLe#S@Ifnu+yA)`F}F$Wq0%dlp`m%V$dX0cY$ro&c{R4nd}+Z`1O zo@0a((fvT$-jnO4RdFmM=mybj2J1cf@DM_^BE9-Ur0%iFTBkN=nHrSK=a@-WwRO(t zd6}@onMi@tVhJt;Ut06mtc9ED9tPPp@9}5~!D-YROf;ri7ul5~p~LdYAKo%%RK~ym zqV$F9UNf!evrek@)Jhc>y2$1_hSB4_7doNNrVj%;NqILL%CUSyh;tFos_vAkKRF;$ z$rU_U79qKz+8Px%hN76aA~|2(=k6nZEP)CVf<>d82+QFUNnF-fBxeO4%j%!Tpc13P zq&Qp<2gEcN<g_L+YcU(Jmc#g7BkcLjYBJ~EL+Irjau3wXk-k(bh<-t&aDu?!_(6+N zymmR&V|qJ~TW8>%Pt#fqLG;93ZV6ZI;g6&q=`j9&b#?WI(~)Aq^X-->q08gZ(a~uk zG?yYqR2HNf>Gepy%~?!fBm?9%NzdhnolH%oIz^wbz|Y7eM6<H{xV<j&gr;I5%(>L` z-fV}Rttto|4~R`nh~Xx^aKoj)%U_XuBu0KZ0O*GL-vXWeT4K&{9*+?JTZJ5z9hAmy zeJYt|^xpJDr5J>--2uUwgDbX|hg-l@x$7oPq(_@GOEj)0Q5!2R(!P)6K*Ol5EV{cF zt8n4qmQKa%@q21#2sJjZqXm4El;7k_4?1WtS*;_$W?xEdR<UUCh6mm=Cvc8gLz}fz zQ!*~|<VuMMDofcI?;ACnKVBN#!auS4P$n=wofuKEHy-B*zuEeVm)1o!^RqZ>G~+HN zNN;a#D=hW}^JY;0#aF)Fah^0e9{;ZbltXt7#cyU8@>tWP=zUq0lKG;?L)?Z&k+q@s z<@S3btoPOa?<Xt|knO*;(;D8T<fvB+bb=OR`^P-8uFFkM$EEk0DOneuP2_h_D8NSk zSg5*6R1hKza-QjTjdVN*tJs$L1}|i{4~RF$k20OE0a`@qp}1h1h7BY~a%&spxBee{ zAL}%Y!?z-t^%3k1K2i>6;O&7Mae8M=Kt*(a+Rym5@VlsI+nHr>8ThT88hCAfX3UD< z=PnV)5XaA{usnLWME7o@AU+Q^gcl!ksveJiiHL{*gp|kK`j@*c*g~HBD}#e(_)kD6 zS1o>-xew4Zd_*J;Jc#XjhQf)}ze3!gI1w<>l3BY?ar3Kes@sz~GVEyB!OgVJy}5>q zd7&4Ecfs(LN1HW$1+w->Q?5}RMlPYB;iQK-y4mFQS6){kADvy)@4Mr!j<jk6s;dae zG*~kcx!bmg+E(A54j;(%V!Wf-(e1&?4DKcp(^$r(<2wg}3Qp&BOZ^dJ0TGhL{1mqJ zg6OvHA$VuZ)V=vIFHVyK&T>%jy?ms6ID2MwskJ@O-Ph$3g0CJ1y_(-B-<VghCi6Hy zt|05nF?zKuAy_8S7fw;=T-A^lRpyFI5*{;J;IpV}Umz#$<8@YC=5H9*<4Peo&aj$f zK+F-ysewD#Dl@csfJG|k)+>inTyI|DATgvVe6!4(sbd>giBFLf>Ut4k%_@XM6#y6B z`_AFO4P)fcTG_}zwFb0&zp}>GI=d%ROIt_j)@}gYBiwrk5A5>30pd?m^4ZOrtrxf& z&Ggl-HCP*Cr(54j4FXpcH*By{E#L*$v@IvVk<YR)Dw{RXgUgpG+<m{0EmrKltf0GN z#3W9huC_}rz<q1YF*?u~f%sxi9UzH5(D{a5Zz+Sv`A&xr?4%!9^w7Tq7SY?-Mhyww zY#0@N{dBDk*@gDl&%b7pU(nJPa&J!(yngY(Dx||Euy)8da8SqyYLBUbQrPZPyIjQA z-!Hq<&Rsuv$571PjO`^LvDC#(N2q=h8CUHGOuVtq#g#aSF)ybIU^ysco{I2jh;~OQ zu7Mr4LTcYUUV!>P`OR>Sr<KmA5wLn(_}uRjQblj5)Tn115ZAE&v`FQeP6ew}R$9dF zjCsJ!qK+`zxsgsyM?D(V`G7kY;`r5jPOh4*Je~j5!@%1GQ9c*iu<g~aU*36^8d=-3 zJ&QWqg-a|_)u08*?Q?Hk2n7~MHL3F{+TR~&g>%Dr^qKvR4VHS8;9g;nhb(>fSiQmG zsrFe=k=aqg&~!!!coP*lSQz!q+ncm}{FQii^PI{7-WyH{-^k*IAK#Y|*O3V~)42KJ zr1maFrcW1DoZMnb43_c~LW%P0uPYLhFZ%Kh#-8C!15za0hK;2v^~jD`p2#Y<gdoa0 zfu=sfmllNzQz8<NNBr7O`~wdl?-aE&j81Ba<k0a>YvlPlQ^s2F26mpQw(!q{XC9|R z?sqb1sw@wWJ=m;d4fF!hHConF&+oW7f8R_^Y0_ceh0ItRy|&)$KF6~tLK?A=F9i3J z5e;0PbM)Z7$-|j(Zjc%8>)5I~6RpB;mZ>|M_E-}WCXJG$w0TM@fr~*c!~9Tu{pd{d zg?%B*@f)l1or`IVWo7<~!)|h)x1H?Z`@22ya;P!GJ086yDEYZ_E3<VrV~gZAnwx~r zkC;3+iYJ0Cr50J9)VVdD5riK|SO?x$62-spnR!WUk?zy*<`v;tS;>jjMV_tTZd-$f z&$m~@U+*QeKYY~lW|XkbKY?J}iEYv<-A6YXv&OT$##V8mWh67R+(?1{IN)-3QGMz( zl-|bOeQOq~l*~gY2v0C-uu#NLq)my(npL#Y&%<E?_UT3Sa`&AvT+M&_-h8<3PWrcl zokCX>zf+maP)izJtbFCuB6kwMm^aSoVv7f_r#uDv6#OhKupXF8(VmeCxiF%7HLJBA zXIlviZlkt0#JtlT_O`Gh*VHgN=!`Z~7coVkqG{Bg#Riu3%=dk^QGB-P8+Pf5S}Un+ zoeN1tE%VV~Qr*6zllN2a9GaorBOo$lLIn~`2K|8-pA;_eeXi8i!UUb)>e-diDB_FH z3vC1_=fChVJvXc~ze<suw4exXKTR@2kg{<L-EgUyM2}boB<Fg1HsxBA19E{|M-4|& zEyLwLE6is8Fw5{k;)1-V!<a+eq9JkW=O_fnQd5*_7LL41id^WqXJnjtigi%L{ATBU zM)GqQ!ITfIGPAV)8=mkBt|$Ru1@S;&IHl04)G>60{Hv<BuyL5xkfui8JwE46Iq0jL z21>A{W6eQNEZ<t1=aM#d!^()zJGWz!n;nt(ZM=k{3}<5`v#H3>d`I8eR7$)ve9?e# zNKN-}F_;RQB1)>T$Df>QB&<>k@^<Te@kpxU45sMG_9-6Heb7TWItT6nx^;Kt0S1At zadkz~+j7lccQi8w`He@Y_{xnV6jibis@u~cBkAe|)F@d_8mOY+=sY-kxn@+*G_W38 zKYwSdQgNU`kF6pFKKDMVVwE3Hq-ohpop)77Da;8gmRk*`c0UPi3D@OppWO6$E?h}g z=!Occm$1FXcpVGVbL`~=<nB1s*=L(I#as`W85rzp)5c+1xBQvMZg5ZHq-GC`!9b0R zIq|!4*;QR%9dArgap-Agbcucz-uPs8sYU;7gai94$w|KsG6kDRJ!VC{d%ICQVjG!n zvC@D}&}D8VJqWbj!%hB~|IjV@gY2Emx)QgloZ(856Q{=>^5c8>K2IFTg`>-8)8wKA zc8g`cxDPgXIBqpU+sz&*#5>Q=Z6FfUJ=@r<5qV!9^^|_(AYTxg-9Z|k!`7nmfkF{p z#92-w9!GfmWl%4q;2SyK8dRZ|%=KG@ttVvyoZ|R-A|NcDmyfnIvJiyDCmTmlwAv-B z$EI^0rwj7o#cYkp)jzXr4MBQ|3S_7}$?`0qA44|@D0opect7D0EjO$ZY41l`tmq%b zj4}9VqSOW=s%rO*xwNV$mLVD{{}k2{G8E^rY3B<zEg6`~GiP-(9=Q6U<QIeFi`Z!= zJ*G~!M0A(~V++*G?lNv}eTWzIIugcV=uU?^u$U~RmZNIIvZt>t2QMIf_a6CbGcGeC zz*Y_dN-ifLYTTl1O<t^L2UR@>DEk$CD6efVTTB%p)?<T08=J_pt0$ljopSj7J8$}M z3`Srw_5~NMV*0h;+Jpx9>|WMbh9@u7KET3;P^;Zr1=)4Zq|m5iNgwO0+Iv1NUOQ|g zyOVA?u2h!*b!w;`_;{O2o0+MY2QmJe{Z=bseE|ZIU(2+h?-vbd?pN=3J?Dn_ec4Dr z|0#sJBT0(9y&;tq|JjP`=7~>)lVu%zdcGx{IpWuH*)v03fu5I$isBS>(9uWT%Z_-y z;}5E_-{g{+Gs_l~`X!(gmMakQu4)ZQ>hA$-i_lh&;b(r|r_ZJ>dS_q8c7x8g8X87T z5`*<FcN6p>33DUG-kd(iH4SGqB&V>;E!gFDZnDht!d3-{#W!usE(esnJS~)UU-B5n z#Mr^O`DdkMj%2mdZKh^S_;ZTXEaCayM7ZbbIl>3yQ?}+$=nxIUk{huUJh|ohsI3Yq zzm+W`RQ3_sf6?tUjrD{GO0DQKgvJ&cMNMeykr^txSR0M>eT&U}a!TU#mMpt{Uh4&~ zsW21e$*#UV^4k|4`45`>=Hj2ekI7ZbGFT1kbI%>2VdSL39w~AMT`1UW@f<C&tQa@3 zT3RQ)nf#hHu_2$M;sVk*lxsepLqNqLioeUa{83P>Fo&6sAW1Ik_UMDf#9WbW{Z&b9 z!8mWhD4DI}Uf7wd&%An*%9HoO`CN=JW`ZGbbZZq+AyLj+8D}d^#;Q|wd3oEM&?(dR zOuj+?yNhjXm|Z2RRk7zHeTxK7*qh^zsiykzn)vT^n=kIQ1knj=;0ETD_Nv^G>Bp|< ze>7<;y7$dNGKk=1df6O4r`_E(?@$l%QM~7ax=8X!pXd=IdtIteoiejVzG3N|I5r$) zW5aA*&7rmK;8&4fli~1#q{5mLbB!%FM5AL&Tb{0cLs0AjsaE*wF@9Rc$z3=%D<99_ zjJ=6T-Aw?mDm5of`#3YQO>z`o@)9KA9O2REuA6?LLpU`Zz2Q%OZomju2^)M{TueC! zY*t+JAEH158!j}lUBIl{<vG}-ks`IJp!~y#g)SgxkWk`3_@pxW1z1M{A}1}(HDFDd z&ux%sZUIySUKgd9Yi|!6FxcfM#|jF<CKtpG%Iq@UO}i|1^-HLq^&k6muc}syQ0AQW z(E1rQb^LHL-1B5$Mz?<3F2<Pa)m1_uFDF$?S2yM1z1L^9SMpj6!u2_Bqx%7gWC%k# z1brk+2;fEwq#Q6(uLvyZf>}?TaY27=N!uAs$DNkrgv>PlgZ7>nsR^gAZ~!pJQYt_S zZWjlw;Ik`Oaz|i~6i0+;ZzP=e!!AE+*E7rW6`xnZ_8fhV3(Rdn!6#0&4Jku(K5zyZ zl_R%#+Lcx>g>QV#$L`r;)0#sY#L?L3#I4$6XcK-}42}dV=`M|oZTroW<vEkQ_OR?C zW>$S*49@%#i>s&vaUj0s_y#*Xn7gFzY-$TRyH!yzF?*Lm$G(l=AzSnp9kg>t&!lpZ zsuu?QWb6?^d3?ZXJ+Qjxo|<ExwCr9mGKb2&=kwW(66p1#453i!?$VT$lvStGPRgja zg@vmK-n(5i{jqmfj(6t6kAYQahV$X5sk5aqSn=#Cq#F0Os-`k0`g6j^cudcYbw78{ zO=F4gPi=V<fdKg{u&zI7>%I31$f(UKZ#{?m-mW(J=`NTQLOIMHF1+UyI3MCnK+LCA zakV}031RTdJ36AyZSmSb{uGL0kRV;=nT>ERH+NaZg-9XnUpNiIwLQB~m^w?-OQ51_ zw-<bsszxR(Vm3;*J4W?Dd#X)LeR_AdrQfG(c02lgi@@dVqlR<X!w+L*C(Sfb-WzFe zS{Q8zJP*B^c~<Xe+${}O8qv-}2lF-*==m^G=zT*xrdQRbrHA`eNVAB>19T^o2Jz3| zkjo<U+*3|P1D8deYpI&(l6u_8;NcA;+Ssu5@v!dV12jxSwkeLo_FDloBXluo91;;0 z9{e-J8|xX{tk^*<NehEpm+i%Z+wsK$j*p!^c)mH;1ZUMy2ha9T-i!moX{J&8e%8b@ zWst!;M5#Y+V|FN73ZY4LTYuLvIyP1%PuYV3tk_<?@D?^Xpo+v@kn$u?xpj3IiSxw= z;XUQ5$xr5@<)1_d*wo&!tbb$Su!mKN!OC?jeZcU3tg#z6SdJUczmR)<6KY@#jjbFp zDfdpqK1hnhOcybl%N>#D^BQHkD=SXeNmlvoBq;4@uC2S+`T)7`G9v^JL|b|bl+J4I zYS#_hK1EO$*y4ljRsh4+;jeGXtKe%)n|iCx-)w1CT}t#kSL!I#@l}>edms9|pg6v- zLj&z|?EQXW??%sMgW@wybJ)6$qQ!nvZazX4DL!tlO_O*dtM?+8!y@ak1ro+{P-Bfg ztk!WKku%Kl>IERPY4<{N^&6F2fnO{!UZJ6E5G2$1_l%AbV&p%l$0ZTyZak_MX{8F` zt_Y$T9i6{IwH#jm^{%BP&X^1ab1*y25L^Uj^s)Nn?8~U-EA2L}J=;rQRmRH3#^J`5 zpdNUc1bBfl!52Z%e161tk?fS+gz=SQbl9xJjUq~OMS`@DN*dgZ!6eZP+Uf%K5^b5y zGNP?C?KeHO4iESQEccRE8em=eu$m*7T5`Wu9b6imCZRQlQnI8B2{mJ>`{Xy}Xwxz@ z^^S}XtvV6dKzvw&{=_X(D<DZybCZTq_-5O?km2{kQa90J@8Ha<1u?$~nd7m(<KBgR z$9p;~r=@qWeJ3I_%39#!c$8g1KJfO3&MvLdio5w~650Bq*&hBF?_be=W4cp+d8QZd zbn2L%Gv_^$^6mjij%SS1%@q@St}qx+h=O)pB3YwowqbI1vmHcqnUFL`e+U;UWoYyq z_2V;yW%A%g;z0z)($%u_qKnR`^UiFRtP(1v)aA+C)a=luIz!qNQVFJzhU#y--GP}Y zDLc<XAn6}H%UjajMU=nLL!_%ck_3G@<c2vG17?ofxj#DsA{)&YGQ)ueMDYlXRP4EL zK8w?;C%FdWY%M0}lNEUbZ}~DkDU<k0@R@$lRbnZpIv+eQOY4EOB40#80&&4nEUYZk zlJIp_#%V0tjqHC{v4HitmGuiMoO)5sfzMeX9~o?{zgXa8W$9f<*B4rOEFl>6#-%bo zO-i=di7_d4UdUrmNqq=2N$h(M^PHJ)%y`iu89dgnLs&ygo@_$t{VgP$DL$ZdZ#3=B zmQvD>%|Kp-x8J4#rqDq&k&zXnCi8~Ty}=B2#sZ<ZgM{wMALNp$3gx3s$Bj)PlZl&F z+RT|Ya|^T4w~NoVE;|-2ZP=7JmM6=jP+2Ne{Vg-Q)$|qB6Xu%rZI%qImGVG=Pd19< z;7a}<nyxA;&ZcSZ;_mJ&1h?Ss?zXrEcXtR*fZ!gS;O_1a+zA%kEm&}ef8Xz%|7LHV zo1N1$J=NV+HPNb+MJofiFr8+A5w0Xpvtp-#%)F%sMp2k1A2hLxH>Uots?UNX)=o=w z(Kc#SMznHR(xwfP_#DRvTqk5J3QG9OX_1?~$23>sHu>$%&9IBpraRw^?9qbqKUT3d z+z`zvL1Y4+ioe0vI?Dn2YfvJYa!IoKNT9zDFFP!7kjqUlx3@a~_wZ!gy7D4+U1gCu z&_Smhd;7B*MsHpBDNcU-)w^X~U@M;COaLlCvy*~2GKmwa&c$`=q3e27Az&6S<KDQc z*=3c*k|T0f@-qe@wl0WsIKQ86*K>jeWBhKg##2j<K}|QHdW}_8F6w)dvWR1|05W`f zO;^t-N7l^sO3L>Tdoj_`6hu&#m0T(Q5VP2g6gT7bq$S6_;%`S08!!FtV*Y2=v6m^7 zM0g+h6*+aGnmp~3Rm6T23{+jlfd*WU!0ZozEEStJDie>mtEv%#EUBE&Ba_TuHfx;5 zwVO?zUfvi$Y3$>Tpj9>54;dY-qQQnDs4Xcp@RC(Woc$63wiH~OVEL{Sh_g)Nj0}Ok zjOO2rRNr+vX3jRhwYv#|XFVSv<o&0bXCd&-5j|L$naiWcc8F){JVu&I+1_QRH>IGF zf%zz_X{N7QXkUM><9mU%AX%#(b3hNDMcUER-@go)-Dei8$TRYgeXjh=F>qe#KU(3> z+XZ-8o(=xLUa^0+9%T-ep_VzHI$19G@O!kun@8ji?KQwZW~Is|za<o)T~@i(CdqJg zXB=rMvPw642HR0jmGw>oN5wupl&&LAVs9;kV{8&q<kLZ9oowF_6tf4Jx4M>G74({< zO7woHtqd+l7X#E1tweD?*@UMT-`Dst^NQrJ_~~vL9H4s(6JW@3@KW1=C_R2n2UC{` zvE@g;cBB$uj6&1Q$YJ3BKNldT&^MX)0l)c0JPko9>D#y3mxvcGMRfVqvioY7<pX`- z`aok@6xEe$?CkfhI?1Td`<?#CfMib-s0>>R+~2lJ!Z*sWL04Nst~mWHWRUy(OPA~A zodmt(?mAbNlN3jBT|}>%pVcig#f8&NV?fUl*>LacM6Us)dWAIJcMTC<P@5+6woI5$ zC@mm;*nP;QsAFi@4IwbYhl*vE$R*jM%gE#jbL;4gM!$ae{i|f{cp9#(;hlW%z&kfh z+=I9Y7&>dEOQ>mHHLSO?AO6641lo+&%;|hm)VG6MU-+2&mFdXsPnIdsfif~i02yMA zWf19W3H*QoDB`3`;iR?oXI`j%>c9MYCsXNvDRq^|Q=#*bXf|0GCAx_4q6bG^_j{gM zS^lY{WY9M1F)Nm+&ezIEZfr%hEG`Ux|F_(4@o5ooam26i?jQvJ?Gjhg+19(%C5T|0 zAQhdA9QQ>RBKLsR-^liR$#O)yeBX==yj(1Ls|%t_+*#iDQ#-)-FMi@C@{Mwa=)U(j z!x`)(I6^pgm#2ef10EY^1I(AVp+EYe1!tzR3u*Ne>IE4a49GAslXqog9ulxeS!U`z z)rV9LOm9|`SN+dyYtA=ocMU$i#B*%)#u3o5Bnw-r!t(gV;LM-6LnKJb5Y_LBJ$H^W z1dl_o`E@4KL|dbmcU35?K<$}fZRh5Q^xb~NUb|+jq)zpYE-9w0L|_?KCt^kKT%t`g zA3l^w@`-MXZnRvU6nS6%UK0Vd^{kiJAvf%SF}90K_2+MU9M&LgsS8HzlhtDlVK~EI zQ=Nw&<<M-y`Pjnoq<fLXbcOVC#s)Ra=QxK3Wzs_5uwq<$uQO0-pJA3Pc)Hxmr1agB zM%2Ib^S7x0w6YmxUVs|`%5h4$;MPvtH-PEX*Mnp!GpM`Xs6D$_j|XYh221SV$fcfq z&p2G9VT{CpbLwNKa8k+jMWAY{QUdxE1_ND>bTx(8Iyw#2)R12Pw1mI}Apr5aLQdPg zQn>xEJGzjGgG2{YyEm8{amN9xm@jlydCF!e_?^csi&M(WSar)YHC@`zk{B**1Q1*? zd9ZnY@6Yo!rX6cQ3E!0GTb^gx;WKXY@8}cvac!M0s&|sjF_ZpWMr<h`>IxHKkr}9k zUnK9bER8?_3#F(|@Ox@oLz;JbZIRGFGS$ZvEGRBMwID+|E~{fWP7$7$%#*<BYR|GS z7aZhpl`mM$0g|Cib)m9&K~-gbpcK;_z_u^hp5V&ThH#;ylYtGi440br6+Z*>{$Yw| z%BO*%OpIeqtTa@{b>oIG7>hErNQNn->6+J%@W@9M8y|<^Wf#SaS}vpCMTo%L%+|u_ zZwD(oT!f)YRx3;QvjoY5^`D{%>@bFQ{3%(jc}umiB}cl`J~{O@=L~2dQGFEe0w#-( zN6n}yz|S_zCXT52H%@l`ls=-c&&%6wuUZC}SMgazoHiCCGM@&(1*Hm-=bi$0T5D!% zIM29?Hb`G#_lLF%`5~%EXWp2C$Y{T+=ETp)$X}r%AsSVAs}+>kodLL?=uz4ljK8<m zXcPDIg=G^j4;b4YNKx>Z{^-`PZMn~{UA%UP+dt#hOpqP(Bt`P!mJx1?uX>V(-w z*pH!!bI|VlA3lq8av}YR)pWbSiMaoB==ivI#t$7!`jgcVU`Im3%JdT$3c#a>>nWW& zZG1tKG?6j(`CSFk3@fAr7SViZolm!g_t9*^!;p9TqPuHpUY?$S+CaR$B<OYhfe*7T z^6UIKs+0bR)myscQLhooju~^GWV)3zX9~$~Y?W!|roj98568$dH#bjf15+oYV5#PG z_=fq(myR#k5*_BJcS<p=6wt_mPBn-H5#GeYLTVXkx4!ji5W2x1{Aot0OfX%#`&xcf zgsWz8>w6``#LrCgqb=L<9%UTsE&l&lf#DG1R*hY-(3r@ocB0#Yz<7f_F9{i+D}+XP zvY+{R&Yb_GX$`sC(ddsLtDX%*6WzH?R0#uJS_%rhtI@M`Uk~x8B@q0SdMqS^=Cp97 zkgGL2R*TYAF^D&e@~e^BDj2kUdw=--Y>zc{3Osxh`_Sw9C=%H^vbDm^%o(sfIxd6B zaGPfu9yv~e>Lj5(KR=o*$D94Aa`iA6wtfKdEQt2HL#swFgt%8*0zcJoiq-^*HVm$V zU?}XKD0_A0KKPJqmc6n4a99SqpcEpyFmIT6hRuDrGp4^6P}ntgZO8SVLPYTT5@z{Z z=hY;7J<rz@jvYH4#Y5pnt%VbanX!HQCPf!&ajG2Md}Ito@k9>-f22+UqEv_7BgVle zM4rTEhdo$CJ$63y=d=s5lF!h+xDCcnC}2Z1$dJND|J>}>SLi<y?EmPkUp4EHf5|lF z?jK|*myX1d+O@8^kSJ6N^3W1dLn*)@yrzCGkxqe1^}=S2+;E@js=&QH&O-*)OOx1c zD&?50IBd_C60V0r;DGIa<{5z}7fuvVnFv*biz&9KNK1Jf2iid$?iivN!T2yuO9k`? zK}E(or1DDx!v$=OdH6m&M_)t&h8+2Tq`|^&B0HR_t1E8MvI;)q^%y`c_}|Gp0X__e z#+!PHt&(pF>7qi^nOhniDP>0hC~@&BEr#X4si}6sH9#l;1+ZX8{?yVf6!37=UsN*K zWBEQhSiu+EOuwd=g&)pb^+{mDm8B$mx&bmE=iyeVs;PEz#9SGb>~?(kcOA^gDzbjw zv`5FCXj5F?3=42ybvQwzNz{niwS$)+|EU_)$H7#jo`H+sE}=ULF!+wv7ZB-4)Wbt= zhgr2))MRM}WOgq$+s_|;%ls&u2tU}EM~i9$7F0007RV(*@Rg?<Z2IL-p9*99w~AZe zZspQnriECet!bl+{1Ulqym6Qtx(XBMLKq9vHFzSkZN_Md@-KF}uwO5W#G&u20&@Kd zAKFg7ARyo=R%OCCF9ZgAaeb^K^EOlzp7I^^Q>PMa;=f~se3oW>rQl+#XJM&X1m+D_ zR_Kbl1@??^g8^Bi1yR$-veQ_*0(PA>s8K|3+7lgKq*8VTdE1q)#LHb+*QHqb+AUFw z6}z_4pL1jwo<!E6P#91^d&z)eA~0Vl&U)NA6zYdaR@hxhgAcZdb!KenMvd~aa>+bs zrm^dXBF)J1Qbb`+Y;|=`jthxQG;(OF1bj{Ra|M3)b_pGOBmrS4TrzJ|_Nxd{XsYct z!>QO!8dsGm3f2CX_ozWIY?RBRD<@I-+`GC9;Qj>Vn2q}kD;RG}^p~%avy&%ES^ci3 zUvnQvbkle$HEI)W{tlNw!x^-!?pJKLQ&et!E97!V2+tT9h2gn~tq~@OKnB7!QrpL2 z=0tYBXg^yb6Wjc~n!2R~U(OBSf-h``g?=IV{LrZEj1^)Cy02L_{D6$hCWjV_vTCCM zatA<^MA!?0ZL0QnE>>K&ulp_PPzuVKbIUGTE=B(aCK|T&te?)({#^u4_ch}13A>?q z5tRpRcvajCE=t|-^3lfTaOuNNI24SFNFi#DiRy~F2a?)tc|iZWNpbmrab0I;vqo7N z;6X8&@@8bB((n+8TqA{P3;Z7OvsA<^ra25jHw||QFPzyv@d!3FZO+=tk5_N)kB;FM zNu0DA&Rs`NasR*pV}xVZ&Z<_Xv|1RzCKC`GrARW82*u2g^JgDXB9)h-D2gUr-w&At zeUS-Tnxa~(a_bU%uC@2=95T*giFw6ugsvktG<P!bQaAi4$qzXH94=k>y(IEz9YS<F zt^&IrJ(K0D8*X!;u&F$fk7JQwu^Xu2G_F)_IMT|guL(fEMK+%n&?)a$pYIG0YjIEL zs41@pLpJk|gUeKWBHG`Y{I=H!2b@_hk$Q_^J)@n8;kh~Wyxs`?EJTb4LA-~t>tOlk zM^LcGXMNU<J)ETt-e0p0M!wxNRB+&`T0&AK)Vx*Kprd@$e@`&zDwl(Zo^uaOwcO|5 zUJ#G>Uy2Vg3qbD+esBUjNvA=@W1mF`%t<dJ_}*HacXLw@p^LiZzfM|6SkM#EKn*^u z--iGmR8GViTk0fR>L9imK4Ow-kx`t#=BDfSXulQC9o|Dm;rD(UsRz&sq2ZM^ZC%Uf z6oASo9H~TVmtCKsW>B!6KnanHm*b;~tT2Q^C7Qm(vAA%`8%IdxGRUU5o*o8W2XC;Z z@^tcEe5+DE?_AxRV<a1Ui0_ABKZbrIn5Re+`A2J#FSaEMzGN#+2!UJKga{L%=RJ0$ z=XsQ;Gsm-b?F6Fmb1Ypux$VetEKR1VFLFfXKexFH)YxM`3AK6OIPc+1CU%=oabx7k zt=thn;p}I@NgnQ_VPC@Q;RwP3`pL)G{gMoV`->_ezpf+vh$OHiNz54Q^phc_ow)av z&j#B6(Bv<Ub9*mbkkvAL0@Y6%mgQsPy@0R0?$?I%>uJc6i-#D$N%{&rVE1KlPjr@* zGCqBqJqZT!Spi4&Ea9GNFeATZgHo>?hR2O;j?kY2mABsm=q?9Z$D%<qLhG$ddgIal zer=6C?d>f+_02+)*IgU(FWncrCeC}P%cV9+G;$;()ts>e4#bj!e{O=a!XotyjQs(m zY&kF3Z`En<RpphTtknyq`7R_7oi&?9kO$hY1%Kf+-A*2eXxI7s5P+@Lm*7zCb;rDU z$gQ<;Es1EU_Ksy1IV-FSGFGUsciHX(TEZ-%HTdk3yg*v$8;<GaAI&X90Je;2<*Mq- zn342a5=d>!pQWqNXwRKxk$eJSL3MGFINCcxJ}#+e(m+s4t9~`7;qgNn9P+s*qvfiq zIf?Nf0#9_%uNaV|=g5OUq1Qy~!f+(=of!Hr)w-LpP0wX2wQL-pVb#ik6-b8O<0UTc zC^+?G>_e^?%3<Nrd7rP_7nIdr&Lp0-M^@E`&t;~caf4uupm$m?=zG>^%{9XlfGTcn zvh+v5fzP&w6L~&i(((cD221Q2(G(AZhm{4ncEfVz;5Ny37?65EV`R?)1<(e>q_WL+ zZvA^zfVsH*=tHt2giuV7RYV|ybI8_Sy8oAfT}iCJCW#|67hK#we%&wDyXDxL%nJoj zz!^yt!yZw?k*dc>3$_h1KJ`2!MR!m>9?-&Qt4&q#=K6yAx#5VV_Z6IGu|AQyeB#az z@$HEGK`qz0aro8n>)qm)J`s`gDhq(^)wTvRU<>u_@`K9`E9{W_Po_R?ellPxHZmVK zqFcXu$(+61#${=`;J!f)E?>9y3~l&`<oV5L#<OiU0y{*@LxSZyXy!&Y?Z~GG5(spe zk+{4ciltIU`%+?QzqQ7FLX}H59Gm&iwOZ#PMlgnM@)*OI^WVDy>nbM}s8tQ~@#HZ> za-0s^MRP6Gq9&07p-GP)RC};iJcLDsQm8g^NIIcq?@04$92qfbcWYRJnMCq7g673P zR8NbvI%!Ieyj9)y>F0XCz2992se9&m3Xv^t>+<;Sv145?QY}JLRCW0GcoC#7u){Q% z&n7TudzLW+79QhAUpY82$M^oS&NY5}pRpRu!<SO~Q?O0A(g4i{kqztiwDh?6dwlid zgy?u}l1K#W+?{Q%hKXxVA3EZQ0DT5qbl;PB57lEgh@j56#dzvR43t?lxt2UyL8{e& zL3ryWH~BRa)xU8l_CKOhEOarTIy6aw-qsH@9VZP+#>uiOfYyJ6n1r<T+-nf<&(!Z3 zjFhTLHVKkTPF7bly<6RQSe&%eEFe)^SE`~R(_1O0kN>6}T|gIJ)S`6Ci1dAcOt@(h z6ZUGTy7&Zg6sAfV?fG*c(8%7==`w~^O3gWhBCgP}bpF&6AN~!Jkp^A<^Psb{D!E0~ zDIF~{y2pQsCW(~p&*e()F=?R-d;CQ$>Rir`n?!-USko6NyM*QZ2VF`58)z$;5Aj<< zgjq}i_)%<h`(5So)L!(=2D)(#Hf}>N-1DYqYxM8+NV!$ha*8(=N-)z(kQ}GJoGS!` z9~TSCZ3g(rF8%Zomqh!31_Y-PnI1x2UFJaB#N128M6F|i>@fSJ6MY~++$Zu;i2Pes zvu-YaIP&7vtsu!cL@xK=g6thsN*k3+o7?J~P5u{y^Co@e6XHa<8<#Ul5zf#3asc|D zz3oh)LLG6o?f--dywzJKT;2{pTOWzxXqfL!LM8Q<=(&+tPHsa2SJXqizI85FjoUIF zvGHBw!CA;FdA|G;Ql|c%*?*2`^APK%m{y_bObs)iT(3?;pYAN$IALJ-2=X3MA|{m? zh1_9`q@;Oy9m{LqC&48>iaPTZ@MxpI75fTVoN|>z46O>}?~b|iXIaQ$wXRh=c5c`} zQj+`6t<wkJbFGSaLd;mPJZ_90Oe1wxA6Y6GfoMx)p1q_`W++6ty@&|RPbHsN_Vq|b zPBTp$n<NI?zxqs&sla%&f2BJJJskZv6W)t&dKP$@);DeuB2)pTyhmqSI6`u3OutrL z`S2J8gVC?YW{Dr3hjpCn;aV@bgnNm#_#Fd)8kNFiy_Dd@s<iah4Cmk6(F|Jx2f#om zB$!L^h#y&z`Z%Irhj-3#7s`l;=a{)U-?4VHdl_7PUL7uJ=2lAT7Z0>}+Kyc|UbBT* z=Pf90m6%^kg4tD2-In>GkLxUzewF$Rxz`ry1@$iZlpj*p<)U-`rOq0N>QDm&DuCsZ zGI_Ah)V%<n3MPv^4)XJ&5}N_78&guRo#o*dM{JK9v$Z7T5+oxz$`SoSzjpKlIJ!rs zrj&lZpH_r+Z|!JUs8FhGU{e46W(&s<uLG$IH1HbDH_T0<8kq7dbk!gYBYQi)$Nf38 z!a0b?)RJ+%GQ`=#<E7gXl75QiAV018iBVmGBrkA@&fgWy3l!+wFtWo;O3eaav0EYX zH)CK>(IU%rOzJzZ504NklNtzMKw^^f%^hT>G}3pL3(|(w*mou6PW#j14rk2?<n=3i z@b{;EXokvtv)wkV@W6e>_m;uypX9SN{5;8#DEpS22cGZ;JejL~nb>s&HRN8!15D^8 z%*yIu!Uz(XW1=FNI$;p-B1d%+vm2z~tQB$UEm6x6FRDa8Zm_TL!>5qP+Vm+JBq0mq z&w(5Qa%01_RkG=ZNdh+$mpcD{eW=T1J}1?!gZ1-I+xY=lBXU?&nL-TzI4kCoGN;H& z+}2K)e3Sl`eVRN)hFP@y)lB}^cu^3$no}o~oPSsMhGkm6M~lrnjb7C6<6aXv1ad3) zx^-fl?Xa;$riXW+>2$(mx9A%i(-s8uZrO)d^0}?wE0{|h;jIb;ymz%&TY1We9%l{z zSgmI9kq4X+%l-}8fIbx`)BIz~pQA)G4><y>gycf^lh#&(xr#uFs6uMF-<)4^3X1#l z=N&UfA(DcT#26ocfSS3^9Vff;>upl_uYNg%;k2gCch4gL9EN>ja<d5vZn(BnQ_D6^ zuo{DCjb0;>OBvlW!iSZzw)PZqh&1hXvKCbK(Ix&FLrv`mScH-}5V4JweA^rrkcz;* z_$UOUw=y<jw{F|qq<FAY;Kd}He*YZeWQi0-OW_)e(DwwSps0IigrP9uVu(S}HTE>s z#UEvNVUovgNUIRN7ZUND$cPD8TD4NHG7NZ}brU9XL)y@TFjsSrUNagW1ojY<eYjg& zyoQst7!3_{c<VUZE=Iv`Mk;><NM7ZW+N2Np7O67U%1XyJwwSHyuHG{<+W`bonoF4( zf5SpAFb}gcD*p7^Yg}rI7k7PqKib^|0jg?hAZ|esbMIKLfXv)2IhS+C)qJ-cAg|Ox z-iA@5CHlt3w7At^67|WQFIVF1>O{u>Gy?dc0)bpIqMF!Tn1WdcExyKypXKi45>^96 za8?JdzBB1gXyCpeGg)zy#J04^Yz6F&jhXXLG@LL^M0e$sK+x-k?I*c)n^t_^Zll)Z zBDsC!MA*^%g-?Zy!n4I==`=WK$^*qFzwsv@-e9$BoyOEJ!h-rfp^V}6bfhm!G{6D? zL|f9!VBn|>HJC+E`+BRDD2V23S^M?VbH&*a<7zP|-__FZ5%6-$ubk_ky6{?Yh@P4X z=zAa%O7rsAiJRG*_|25cAT;hnp>X^Pq=st1i(L*)atFGJ_q9C(ud4w%JZWwV!gor5 zVVcNqRj}BYbLUPSCnT{pGt+H<!|yHh8evSTE!byPhYweuhuzbP<$hm!ppzPOyk}PG z`mkOfr}@0bO`1&~-<3%nHw(v;9c8`wn;4O+RL@oy2j^4X2x-$5m#g!p`%wN=w?Uvt zRAsfd)nyP`02)IY2b+v%q*)^6=&F9}S!8Y+NwS-18y&Db-TGy}gL$!O(OfDQ`2$|P zTh|uNh56V5JggdZd$*Rm`OI_LEykO7w)y-WiXL>EtX@n0H5Ev}qa!dUp|4^oS#hA1 z#n2{K?;J-Js$8DMWQdLZ1)gg~FMcne``e@+8V*U5ao8u{&RD9v5!BO21jFXDRDX&3 z3%>xCR_Wpp6RMh}rWcS$Iz?gjdrM+I8srOqg-ESv>QHn(041T_(dIr1?CzvQU&KEA z+JT+bUbgsu_q(XbM_9YL6C7u^^}Xs#l7IPx!6_ut!5jghuyk}|?Wbq+gb=r{jiFd! z!o;uOMH^s=esNN219vJT#`J1Iuq)=Y=eO;LkKGW#ur5iJ@Y71~b5DBD<Lq@Xb==Gx zg-!M1uHf1HWW$O%{~B3bTy2emy(46)cIUeT1K0h~+C~A7usoZy@*2~g&h8>{Ak0bL zPG}qE>pz+|3-Z)ND?ADTS?>UEme3U7LffogWWKdX*fKs^k~`AgImDk2LjgKVaOM{R zIZ4nn9h=vIkbAI+SBUCOe@^8`BYdvoxILG`nVldx876-Y<T`L6$*M>y3Fzn5%%^u( zmqAZ$h%m$^U1j7Y&n4iCp)-Z2ELSe>@t{tm!ojV9$xz~*l=S4D@U|w4r_EaXHIgUT z!9nI`Kr@33fLPc;nm~*4dvt&AIv}wr-B{Aq_L9AbJ5IA6mV|@;Cq#_d=6pBZY>`Y# z7ygxGwn^&3v<3yX{r5=zy!FnwQ5?2kIUd?A`ylPiGDQPIi6-pgBsp*6?ECu2$*Z5< z--gG<U)8@}-mrs}@426#07D<;-#$_+Er<NX7@J2aiaRWdmY#PF8Qjod@DN7pepI>o z*{k`T8mf}N4QJ4pGh<IF;y@>ULe@nSB^Z**m6H2z5P|{#T)vE@=T;}m^c|S<Gk@Qm zBn8wa??2nRG}mDFjoz#<>974USo^cSzDgG72{OaO^Hqoroj_yW^8VE<mpzzBRl(1$ zGH4DKT&CJ46H>HOlf}eX&WF_;Hqu59J=$5w7hyGT2xy!uwS2nC<X@yXqfiQ*Rh5sU zGzYLS!<*zee~B+h5TgEi|KyV=vK4E_)B3=i@-yRl3@(T_4j&Kium=vHiZkRbNQMGO zB9W(mx8}da;*Rl6=lwIlg(@)rR&7Xv;sWG~oBD?4?aNRFf#`ys=w1dhDOcvZkFru< zVjv(Z$FnoF#O1#pOL#!<yrWcoGCc!4?>|%wkQ`;3s&Zdjzk~O*QbjQ73_RhYjHG!q zNvw+j1+;2Pa9~4NWZ3@Sz=`8<k19$9k`J$O5hj?y3!wMrlMOGlp9s2N{aM}~yw5|p zccyS(xpD4wapp22L4V!1_+qHOG42x&RnRRiCM5-E6uB02|1S`yQnDUQ`fICvp)d&- zB$9Kml46hfsanemsFZDm4fQym_w{LoR1|?iZnwZhRIaquqGo9dCo2L!&eOA{C4x9h zpLU5`T0j6|9kf~<s-U24&~p8HT4U4v8^UTAj`iTxrFm(`ZC;B-F7kNxh-uI&(x-Y@ z&X;m%*n{zF?)8oeY&+B8VX7ca(u95eIP12lGhYMKv@ET@WKVW!bU&S(Tya7Th)Ymm zNX$E8xQB+8*JsJeQXnFVnGLuT&o`W)MNpCKyzkVJ#vMCzAW##|q1t}ICOt<GTN~bh zGlP?xq^N@tmsL@5Dy#6ju{`9ns%?HXgSe?rC;K>UbbxC&t1BAC?ye7=ulL8+{c4@6 zoxU2=@aZ@74w8McCd7XdAOS#(KMq_GX_u46*`9qvzX7}7nPNVwCG+Qv+i;;%bUzGk z27XYNu^9IlfK%}tNsA4GaFMpnr47Fc=`pR8{<+$`pn7nH4uU2q^5;Ck`vkI+Mo7xY zEU3SnGLT)Z(Fn&Fn7g{#nY+SP5$?9vvW#8|-_C(lN&@pIkfOG0Ya_>Sbt`YdLzBVP zj=JE_&um@kALq$mD!os6rT_f1Hvx!#Cjh8&LD<fW42j7YijhKh@X#2=48c&MOV;q~ z&hV$ObcIuONYHb5r(49a4m`OZ*#V_i0v1Au(DovxQJFQ+_Vzi{CmHlmco>>YhS@*8 zJfVR=HSy9FGXjm5T5y6U=te;@ynb|`3@I|CaKNE&NpHG(xBzPv7r=Q_`O}Wfe{RA- zzUKkn*z2Y>R2U_-kqN&<{tJq_C3m`_{)e_wrw&t||8s^_je%}WCWg0{mG1{cX5e<R zT`!Z@+sRRgP*J@y2~Jh1>6p1n(kMCN;S%S*^Wml{2zI2j=X^vf_^9?3<^$&qp(_mi z6zinI!J@CL!Awams(_?T8N~cfSO7tZ;Dp<B&OhOBil(RQWYaghd*W<Yt8!%Xc;(Xh z5*ybwzo&tU3b=)Q>_+5Mqf;*jwy<!=Ijt~&ZaiORo#YV6(&yj%i|hT!Js$X6oGndl z%|qs9k5L<4<mnN+y`ql^d|(9ui|pkU<Cy1@mM<@z9^edreM9ZAlmqN~UL}SIO4tIR zCPDoGb114;>xxzS|8oJbYS?}%bLvWqNmAVma%MAxsL3Lj9oMQMmzl$4Sm>Z=fHBQB z@qr2`&ZJ+iWBplY<g)tzh20fx>D;Rmm<Ba*J9)vc=?uU>pj*7(@b~6sMGX8x2AJ-W z<0zcgRo#cui-lxL?Iq4OeE`{PKcX4(kr?SBty!q4mFQujZ+`F0=_%SPS*RjRfxxCf zK)@k<&#vwilEa%z>SnqjeuH=pIOu3(M8&x0`t|^_-uNFrPF@ec``^1CNV>M?Wd3$s z*BnJ<&TAP|ux_f?W#}<L--^xVDF9dO?QU#7u{rC1|7S<(7f`6kxLR>-GeXD-y-%gX z)kBRYW{Xv}BosaDLJJ*achN@61u)>?3A}In=uke%6#LM6>3)5I7+yn~aE%rz91L~s zUl^4Ub5sO{VEUNDGF<E<Jo!qGNi=Dz9rNqHVYp(8XQ-ZtAFnC{S8K9n;^Xlr7$YJa zmOUt&lsawoVJ71s@iFJlS@1xuuuO01Y%~*sPpz#OKQb`9JcTn^468!5g8i1_O>~Mx zRdXz348wN%Nee`q&(O~n^x0dnm=rg-surK^4qhhD7?WDlLP;$k@gUuw5h_R>@pc7y zg;lZgN~`A%0KMMi#<D^r^#ogF^;d>Pgn<E}XwzUy?#+F`S}h<iskshSGn|7@a?qT? z)ts5Ady9fWT+IAc!zB)?LJL`4btfOIU>N7Pv-fhsX>lPs*gk0!-x3e3dfwsePLk8Y zVl0G%dAVM!@PfYXcR6A7yqmL9RZ~eflVk3~^xpee`8Nndt>pI?!=L8cqn#^w23WTo z2W{(@aA)6u_jQw1-Q2x(_FpHDOcLX}i`)T0cX3|?lo7sgX94@>=H}kt-`lV^#sJ%y zmVHN&Co>T+H9WH-%*3rV!C>FJ6?1Qh1kCtf2!4tM?{SpS+MPe#gXSjr+4%+@^3qTQ zyxrCroOlpdgj?jjbpeP8T{xjTxv^fkgpX)y;oX2q`(|%%M(|E?K7c=L*5k`!6D7=1 zwp&;b_yCnT!EJNSo_}L&Ek~Iq=s2gc@;jXx=XZ`_4>Wag<nHu=NL&`08s1Fuk4^G7 zL{QJ)1J<>T6+W+T18jY3TQBhW6%buxjzrz9NF^N<5=RnENJ0q1y(<(Rm-@ZacxL?9 z<CV^MeK)rI;l8YkULJfdLja01i0~^Zbapv{v)*LyU84l$V8-kZcFU|ooVYb@j(^lk z1MF2!G%R1k-D>MXWP|=hz*1Z-V;M7MBO%%LVBZVu%oeywZcbHL1}xT$ecY?`JmC4$ zPc|4-*N{!Eu@I~^BJccjeqZ27&ue$J2<TE>RDg#B&FeCn?4?S(+kb|gy}h*Z8hk)% zG<x>FLY17P#b&ZVK-!D*w8FWvA^*%O0K+cyg^_GjhOu43;?k-7HgAn+VxBQW0Sx9+ zGV?3m`CgB@%>oNJ@@(zCN?GG--Qh?hh0|~c<X2YsLO8DSyCXrw+TX8pU4`qxCa*%9 zNnEXuY0H{16nwM~gqfq9>}H(J#7XakL_<0h&!du~vmS;fE%r;V-k(K`1fOmXT293g z9G06M;1M?0lcGwJeYta%Je0ybz~>idXXh8*ml(5t_@vaXC-&W?d=6oV43ej`)J(kF zd%yh>0l&C<QFmB4q(}Xz#a&@CUq@kKf)GR%2@nd5RBNHk=PX%Y$wQ$B2gr0Z5Hh1g z6FozSEx+)5_U}C)$dAuZ@jbi!R@s<Smpk|v&#kXj_J#9w(<6H8$8tRIz2hKRdO!sZ zj%FVzX+`R)xxoI8tT2o+sX1O^AVf_;o(dH)7>Gd%71Y2v5>b=MJBXpR=x%BCQ2Tz$ zvk}4?iBUOj+~az8VpTJVA6*$C17OQpcrfU=?fd#5cz;YaKUP%3z?eytF|soLl<j%C z>CUTnIQ?_<jhKVBG65Zw0LkN=7>9jSGCQgmsTq8gw<&WUeE?pO_T_bbD|(Gf<w!zW z@5@gP5laee+|cV!0F!pT)X#WmRkSLPm(SR6AN%gOCL&hO*805;pLnILKW=qCij+FC zO+Fd5dOl9Y?TF!DYw^VH3=vW_ACZvt>7ndn>`-^Y5g^4r{GkA&QP+m3ZHyXZa5g4} z6(duI<yTae<dCzH1@3ZasUT1`86x~_%;d&gOwCg+Ig~MDMuK1k{)`{qIb(CuUq?xf z?vh=8+>d=D!1+i=WtWd0nIb<OJ|iAc8UkGU&*OKUZ;(Stx=uF*^@YNSq9PKMWn58W z7HDANiXBz4Zr+>Y!r~~f$Ot2ryl)fW(wHJjI?U>z)&+VLx_NQ5b2zV&jz&NW(-MfP zT=W<si!Bv8>*z1e=))Yx_qtfbsN@ZDQjO8B1Y`sRcIlE(wcdw}xr>{h5Kl330|#jm z=<YK`$`ONT1lZ))te#`$q?AQdJEv{Y*17f>0Nz^yJx^&$5gj!~|Bi3+e4jJk-nwPT zeY^v`(n)|p&42li7%rI+T}MhkbBB+*z4_$dH@5$P5P0|^XT<Z04MltAck$?O!r%&y zpoP_S`9}@%A*MXgx>c9i98&p7G@K<rFZ=<{Pvc+Et+;$6arA*T8)S}*r+u!d^f)pD zUsArUd6M{r#G@Hlta_a<xB2wFYL_Pkb#qK~L>pmc^85w?RvU%}gg^gP?&p8w#6z7l z+%7r)%TIx3L%z4){-_GXL?FqY9ZkHAW#?yRKt!Z4-#S3StvcXKO400K;jH$cbDnQX zuO(v<>9+0UhPe>8?nF~xPPbw6JBl&W)CMmJS5(@vmseJRB-1<a*)}gonL(al0L=J8 z;vE@T5gBt)j6oDb5{3Qm_EiM>%LHSt0&w>lhdg2KZaCH#E3OkNK3s+K!hG>v7ku=} zIt%~)>;52$B{{`>ii8*_(_dwc;0XgLxJ1SQUlGw-uJ(J4Ei7}VQ1}@{<rrH&tJsCS zxBUyaJ#q~SN8{jThEz=!jHthgK0BkE-<L#DR=^Z1NX`HNW}Fb&m@UQJ8(1pA;59^Q zRsgJqd63WW)2`#`V8f3bE-3FQ-uR))AOc%_^Thm`kJV=fnd~bJpz8sA@N)Z}(|PJ( z0qf+z8y0eFtc5tf?*9~ay_yyW%$UmCdsj*h4u-M`u-?|?JXWux)roHDo`ZO<<K%yS z2*d{lecWgV3OSn8{7WFUl;>%bsZ0E~6+&D`$7nC7ZTek$iJojaY^y%qj`ECe=_$PA zS$%X?bgjh!e<>J9G3U-cwhcsN)@t0gR9}XqS%<Z7j2SDc-)gW0%q{&&Ys`4ji^ZWe z$i;%i-I$n59tWe8rY0>a=B3KCWnW|W3Wg#NRMz?2MVG^n5~&gx;gXyro2i<6X2bB* zdk`=v*(&J(b+Qml0)xqw4av6nA#6MjR*q9k)r(CI@hV|c4lBxqHI*ILk^2zqn^kx2 zggV!nno|b7<F<;5F1K%l*={<jNlQ1qpJ5Fr%{p_C34~PR(eIJPJ_7AHP|WTZj2e^z z*~xkZqp}iR;Urfxl+oi4yObw|yy)}K;JAI!LHx#U)<p>q^(9k(xEX?`rQ+Ej-u)>z zy@#yPiK4%uJKETsB7;j_U49R+PKGwBtPmz&t$lK5S!GWR|A+?lq2@T)zA6!xY|isA zWZ-_{mo0xAoq!tJzg@pfU3JRD5{C;(iU~l>kq1z#s;N;!%|j2FqoqMfx+7Gqb92*I zj5QgOtjq;mMD$+Z8GC~=l}Z~=ZdumQoH=$`ZA1><O6b*vnL~pW6*kXE=(K;t09{)G zRCVagXx5Cm+h3kki(h+5nUS$kBjr2~t#ATJMjX%qJy&);3~%PJh|3bMK$tc>w%KNq zu5-_myoPuUDHsf?LCh)3c@pN&3J7A7Z3tO0i6uy5?9|d4#rqDqVPG&O<*o08nxB!T z8$An`y_8<dka<$aX}&@4m)Sv!%TLmzHfxUc2H;Iv52vH<n@#YhKI(#imvdd<mQZ@+ z=x#OYKDLk&h)Yn2fnfnUJa%`0mxWC;vdb~3Iy}5NFGbu@YBr2mGUAtc<GEIDn%X7$ ze0;}o@H7^VA-=1&#Ih$7Q-xL{FTc^BCfl`|bAIFysiIT<HC@H1v1~4-r%uRjsE85K z11}cUC~_=gf>SXwa1t4ua8am1mn6g7Bb&fg)$ZVbO%Fv$L%yc{!iReFRIt979DR70 zn;z+oXL;>tV&VuMhNM&Rjbsx_{Q#%HOY%WU=p+OxP!g>PIM$SPKM6YMXTPQs4xHq6 z0+cE`3`LqBTNc}7?5BHqfh^%!8H2r=eeBKeS<^eO9>Jgc<h-)A=IQcmSG*LJIv5hN ze5v^3=Q)<f_P)pGCv139RmxENwGPp3+N;(9bP%<5F1GLhAoy?Z%q%$P7BQH>CVjF{ z4@CU8{>zt$El!r+Rsy&xDM{jo^zV5YP8!0R&w*lUdQF2LT6x=I4S}(933zM4=vRm5 z{aI*&qk#OH(-Iq|Tc@=pqw56?6`_B9(0dO7BTzwpm+hJt4$!N=`0-|y*qr}%>&h$f zsDtRs;YFt%1pUsx{k6>Gf;`GnlXiZQ+(9-gDB66&zmaw%FxGd9V^;h6Zn(^>J+(9U znyUcc*_c87Brm6K&E$Ibcg{cHbzeiJHnRnpk~_QPhoic7T4d}_$^#e--c+GY&RJ=y zV3dJ5C7eIj(t5IvUyJ^OPru?4V6gvI_~>%Dku#lGvi|t#sG1UtgJNR^fAojgkYD|f zqBDO|Y)reEKUC~E;a_ViX%#XE#<7z{yGa7UuqiDJL)@gLZqvw)h<CCoU%J%{lkvJ7 zibFe<mYOkM6P(H;bqa!kb=A~Pb(>yS`Fg;3#JtWu>R@A{f!n0}C0ywxNVgFgF{9mP zZEt9oq$Ryn&{*6q$c)+SZ<q5ZdtC8$Jg&n+(wk&jg*NVXkWMhBI06P84J(}%CN{*5 zH3XFK_hvUlR>C&csIsx;sKhLa(Ue+9m89cG+4fl-W!8ywQhW_qeCel$qyb(GtyR#U z>*%PrydHd9xMUiRAav7Xp)YR0xwcPtVW>*`pCw%ZY6u898i?yHaP;kl&toW}fmgl0 zzuK~eM|ullEhr<dLt_Fmg2)FCvYvmc^1fKA4^!NdkHV+6^4z>xuqA(zfzKH<Tt3jY z2%fuA=(z#*0fsia*kA5^b{$<$TDtGEch1o!m3>E;2YawpT+Y!k9abSZ9R9_xQ-EVJ z>5dZgJu+VK7SKpgE3ph>WLqJ$^xO>Z12yPz-3;wsr&emm9~v%a7&<mI$EL(|)X;i> zwHG%xFD|Ah1&o*Ro(3C29aP$N679jGm_Ts^`|xk#%~(zYccde3nhtIB#s=tcoD~Un zNHOMxSZevv>v)K#F2D6cEhp8)oNUe6C^VF)N5BY_&Y6&5;tf$^1OrqU1}|bA44NT= zClqAor6~w>1!H8{Em?mtaIkFYaS$~>Y;geZI18gs7RWF6wmEd4UHaeHZQfs?ugDy0 zAseeCkN^^DHFbVy$iaXxZR(D7!O(^7C?JbZ<3>_A6zsn2>6l3e_R>(12y~WsS-qHv zT;r;Er1I=sqA3DM&oXX6p8M|M*0n+OZb^EaBlNW<d7$#uL3fMU<<otpJsinX{%~Vr zjPv!!v(q1WAkDaqB&qDhrH_KFxKRBeG)yK~9NR9EYw;;8!SvRNm$Cr9bYP4)t}h{X zOd8Q`t-OMMJ_GyD%=_$e4CBs_DA3O5Ihf(Yq?%6Rb;_cs=)?(i9=`vp(Gxr_9Gzw; zoDvisN*IP~p3Bp!I_1Kv`bfg|1r&gXR5|-)tThM}sGcW~o7Tl_q?8aTNY8`rY${+A z_YFx;GuJf=Z}FzENEYp&e^P0l+o98-dbK5soE0znz_gh?Q69VMwxmxLJltcw=E$9O zaehH|c6ok2`M0Cx9tqp5rT%^l<8+)@5CCI27Q&&{&F&>zYsEKWv5Q70FIm`f6OgK} zfSuK8nAae02)n}3e1wG8a6<SKMe%IeQcDd+?#jTa52+hLw^jxZikyt}ZPh6N0icPq z{v_PsI0CqQVk?tBw(hV4)+12y#jK;BlUhmjt!D?(MNDAA$e}bP1|?~WUf_?#P@Ey2 z3e7V7`SE#nVN)95%kZ5Vq}SnCu04*xrjvqGwcM<dkj{XdF9qbumHF_@!hF+`bq+mw z<yfz6e*x8pQga;?ZB0;YRnY6(E%nab;xkoejhU6K5N2p&-AFJ1Dyk|-5T!sApP%BV zZJJ)1A56hgs?@b0+2NbH*%pb<-ir_2dzUelOKt>LPN|^v4*pcw;Oe)wP_s0d>3q|9 zTa&tMONDKviNb4M3xVJb8=HVabt{fw|CY){q+!SHPI!R*dmRf=z#smHnv9o~)zZME zqbs?HReyxqQq?3s&l*N5WN2t6+>LoG=15r`r?Bm_QMv*U1R*<URa(~T81=Y%EOJt^ zAxHF)@FIkYgP-IKiGQtOp(M+7bL3oHo)e|iIl_p$#wk+RyS;G~6WO`P{nS!6yCv(e z*!qn?c=7%B;1q*Kc5Op2Efuz%Xy!sH7wN`&5JhDOR7gYq6cGqV{fq1lJ65r%h}cj6 z5-kEs@gq?w!XN+wQ$TD?z9ihZf@cLqkSNk^xWYUDw^`V;@W+F(ypeO#_|!jT#U7oY zZfeXLdI?GBJrrgv3HtsRop4cCwWcP;F{h|yOi`ZX604VK9yU>WO4}4(RoIFCbjTAZ z*5c8Zn5tqJ8mr*8ON8V)&nT?2S?>&;-SMiWmNfk1W8yvrlE^MYmP!Ks`cXw{O+HQq z01mcQQKbHR`p31vaPc9Z;(eYYShM5f&|~=4bNrxS;e+1Kr*ZwLZ`cl_6Fn|3zRm_# z^_WYv{GZ0(gnN%wYDC|hWJi)#4gha-?GoyAMiwqo_6+f(d)mZ_{Kv9)x)p7%ZfVrs zN^RZ2&o<R&6@?@l?Fu!D2BTzPR39Y_H|q9AP7b8ohkkUkH*}rBsNIRt!J;DtV)LSO zHldzmp57Dy9pzLqh~zAE3JA=P4gQ5G(LL#|oy4s?GpEzbOf0+ZxeS6cUkfs$wb>$g zBl(uJ*TxJSD<2(<bh#^1enaHpqko*{={=17xYee(_s%**PjWML6?z-fz2Ss1S%Pb} z3@Z9aZsQz?QYa2WlKs4mcP?Vdjf~CJqwG$!WMoH=L}i^)iw}gxd>e^kPXT0*pks_l zf1XgGPdZ+%kR(*lp}DeM0+=?8FkD7SHt2MzE|84v#rl7Oi=g;>TeO)*osOd>A0SXf z{d+)eT;tjb{|l}hxYFoRra{g*vG#K*E1Ka&N&T^Lc%h!PUNWX!G8`RWyexxw96&CW zuSrswH>~BZnSOHjW%F~(tC4}XD*JZ@;B5c1>TkdN;{#@;L3XcRlof>l<zcu_`=dm{ z(5SOm-G4C09TxbkTzb2m@Zd;WS398qf@>PPzS#H6etpFLPi`+SJua>15Nmz9Ltps- z`|1ojTx{xHIFGpd2T!H?BndhV!uBO66AI6;l2Myx+q6nBzW6+(;2+jNqU3Z~ZZWhq zh(Q#Wtg0NhMcecPxkDyJzE)P;S;}1xCEW9Fm60t0E+rynuJ@{=0CojR(e@Jd=+G)z z6(paUo5j7hI|QJMo{HrDD(LnobM*49f4Tb{LTD;;BhPY=$_4~20@(>S5X5Qz6_^GN zkI`lamV!buyUf&p#Z9qs`u?{i%)5VZ?2+wknVH?-6SZ(~4GW)g?lTMZa3ZMOgb*>L za1%+&O}-)J6AzLrSrvZ|6JnB^P(T~M(Z&7UQBLnucFi$)rSD6Qsc4P%eaTyH2;*G$ zJqguZlYp5fdewyl`vW6q)zmrf6mYMHeT~bUs)HMI4_yL=*Zo(T-zEiXV)g<ckck|H zrU<Gl*P@^#q*4idm+5iIuEXc6<BKYTmLlv$Id-!R6rG=Wq!e+`z%Mg@NvVeAE9~tV z5<|p->&R23gThp!fz`$N!nS>UY#kUF__`?raAw5%Ux)&q+6(^?^Gvl5iCK=(2~M!L z`UqH}`)wK6nNcvWNesE0!PIG+o`2F2%P2nW=ri!C1yF_!nflxvA79bNtwK6##~sQV z7Yq4tpv)KW3FBpVW#zbYSh0R~;fcE~Zd4dg9}`uVSGz!mrs+8%C`z|GjaC^{J?zK; z{+&UHwDJ<14!fPX7V5}~zp+DMMnTkdFlWy)t1$;$@@^6u@>h!2?w_rxXb2zGlV`f0 z;?|K(O&vF7Viys{ONDg0(1n~oVrx-oU4l2Sr?*CX5e}!@zjvi4JRV~;e36q^OV2FT zVb5475+5tBl&;SSG8m@{!8sA7<A|=RD@OecMwKrk?=;&JRI}4$Gh;{gU(9X+^AcE} zgl3V9U=-`{PZ$j49)xk^b51M#&Y&+DX?UXohT_a0O&?mPk<9-cK5Q*Rz^X?IgQi4; zm*o)2rByrA!vn$qpmu&_!E53IPv%e*ke+`oBc_^2h0<*m5!u0(ck76Yj;7TNJ%s#F z>^ZAgRo_WaO;HOP{S1Ghr>(NR)bSd(2j_Lp^a6dl(Y=C{AJfj${1whg&GO;r_LY^l z>NsZ#Ns&EB>mDGwi<s_|q7R(d|3e4E2^Ex;-Q9C#|InzZNTAWZT*HjQlGu5FK>FHF z?^LTcu#U8sXrZ|sN%9_iz%6d;G-`M1+OAinRU(WSN%_yU-JmA3FLBNsGmI^ZDCSN` zKdSG0?&iz5fa~<;2;UJ2A;iF-lwN&3N6Bj5#!!0_3Q)3c`?mC19IB2C5i~AT9hvY# zKCa`98uV#DSa(O5`C(H4d%g)__7w!+gi#iMJkHUWoejUma*Cu0Gm)udh-{Cd4Dn(i z_AkeyO=iy{oV3n+JI9{<j7YQ*_61{;mN;0)Z?1oaBHTxJIq+ZEovI~@<$!KEAA$Nz zSCsva>@vEtI=Zrlp3{z&bIpFAqo}mXVU!=tdqW_l`OLzQr?AM;*T=_<3GK+^Pptm- zc8n)?H7NSpMPA+K3V?0DfWNKk;zorNwMBUnDIUvMr4Q~#W+OTna@H;k6qH}iK(LB@ zHn1S(`OUZROXjNaN#9`L;4$0Dk?m(jT#>bfO4TlsvGS8m9GklyEx@qGcS({+A@sU5 zRA$6^YdX4#s}XXj5;&)`PRur|W$F;6k1t>ll?Ye?M2f^YeooAGtS9-Bsy8_EqluT9 z+zH?KM{<YSvufh`Ak9CgrLN(%M2rT8GD8$K<rLaN*PnNA3ALQ{6#c(3rxCrrA%gp# zG9};vz5n8S&p~H*UWWI(UCXpGAE8Ws8IL06s&zi$@V2?o?LQk-0mMRpPcI@{HWlM7 zJ80twE5y7L$=;VEtX?nx9$LSzNKfznFQ<g&618u~sQpPUK*2Sy*kvk@-ttp+Isx+} z(|S{yjxZ$nmTxE3B1tif7^0e}i01JsmY>VLFLT^jV1$jB4o9L}PW3o;aUoB9wcB=J zTt$*j?W%Rw1`(3{n5tdnlNnQ5^*hRW*z~zXoZ~&FS+s3&U-`L_AIawv6$#~i)aBM9 ztABQp;}+Ke6Au}o=q!Sd#n-~+41F${uaCv8R~^;COLCSWZ*gTccF{$hvp^H@)41O+ zlr+XnWtvp4g4LEBt{j!WnFwy$Q8`^d3tLXl_Ws}=tILK31xu`XW<DFodf|yX?@#9G zONyJQx!{DqR*%B~rhOzxTLcK7K?9T9*NBZk(StX4{_@K4$?2|#<c`g?jr!!;t~`hs z>uqPw05`M50{Lv3D{rR67)9i5X<6E57RGpNc>tKBB8|#7gCAIExoXmtLRU+lPpy`x zVR{o}ZTz6JDrY(qxyzxKj~v@6j8&Y^mwcot6_kxjs!1@~#+Z347fTpcf%Fqv@jDMq zO!8N^y|JQkapmmNnN4lzU3?~MG99>wm~f_;W6ppy95u}Hus`itKV&nSYvq1yHC#s0 zAxi(K?qUmN7{OqWmN;CqfQ6YqAJc{2!<35pSYTho|4Cg!FxaLzuJ%OhLlfzYK6$NI zR57scf41N9T3ML@38$o5LmM`fFzsX>$Kh9awM)aEtyFKn%2gG)J9<p<9`_6!%^pux zIyS7{E4T5%kNlQ|OZs-{7K$S`mP+_14c;Rr9~e0UYZOaqz`v^f!<l+>1Fz(Z=ht-@ z^rPta8C33J7cET>%iP~%7*I>=2fMlCZv@J8N`D%3Jnc^U-;E|oOZH33*rM<CKoWAA zhF08-vS`Q5OQx7IVPTs-qP+Z>ewRPOBWXO&v-O$M@%&Z(`dV?j#l_)Iv^YRd6xDco zT9UNctkobR@#jEZO16w1`dwtw?Ume-t5kY3WLmESC2k0AJZbtrn!Yls&93P>xI@rV zpv9eH#Vts1C>o@=Q`{-;6sLG`r%3VQPH~swS}eG`<;(qk>-n9PKj)e`XJ*gdvoHNy zY)D3nA)JTh4sDJ0!rRKq3`z0^)ftuzHsDYSWk$j?zuDi)v!yl=$gDgL!14=P`JUmM zAKDeDfW!ZyAzk@rMF|GA4(;HD>6ayMTJYOnBWbe=lU^D{hFq9*SlYBH3ynM=_Hn<Y z74h8Q0nLM<n<RaI`E>WijTPxW(9@z3b|066lbX<h!2k8Wmq}f55iG}tWu&=`{ez;Q z#Vm04q*_Bc;tjeG!|U{xH!_nh({}+rW{yr7j#H!rnwu&xR}N=cx@MXN(e!?%%o0~s z^*Y#$d+fZ2g<>&Nq##&_2^%nfl`&_xWo6PsF~S<ck{I%A^-3j8E{<JCi-)EOkwhaS zPlF(5BVkx03a4U=2bZpwfj_A~Nr=><Cp{L~|MGb2OO2=|4T<}(Jiu`1gPIuKh(Ime z0aj$KYbVPLr@cZ04kx%yXm{)&B{)TFG#oy`rkhqhn9rThSVLj~qqM>Q;{qthBr`v? z#AP#fO5f5OGo=msW{;Bf2KLu9R5Y8Dq(>Mz5C;b5nBRRpTWNepn~o1yRaNpu2;k?h zrOwZFH#^(!4+E-VuI3g3o$X@~iqWZdawhr=bdw4ecz@Jd4tEM?3d%CKN&^HIS0Fls zUsl(aY9|xfQhDl~?YuTN)|3MVCVdW!Ipn*HO?=8DEJ)X2)@CL3o);s1S3k^ENHItF zXTTG3ICx+4e028?W_k=SmS4@e%@3vSd9s1^Yjz?@5|sT7$i55jRT$eun>LgV8;@Rh zCdIVsEFC$kogY7L+;kYh>8Lk)T;^zIGg5GnoEA6oIHQc%3lO2tVZgD(Do(e>ga#O~ zTjnue`_sBN>rh&#+N-G+XYMv9CVqB+`B~_DMf&nqMzHuuSlc4!cMEa)SMCogIVTNU zUYM@?iInvkxb)@25}XMiXAc*7u?3%Sd#M*#)eSc&X6dv*$@s%@Y!t_EZGr9v3u-|N zBi)2fy)IS6r?J|lHy9A5Yz$q}-&Ei-8{>+C2=gsM#YZp(Hh3Z{3MklLdKoFVlXb;Q zwR5_2&#^iAGPD5Fj)umvny!UqZc=TA-*m2wKX2zze^r$kl7y>8Kgfw8DF%%{h7f;s zjiclf!c<697qfeiDQ21?om~9~*etQ`jO$8tUUer$QfQce6?59wA2Pe7=zT&&b)XE@ z^m0TUT*AIzn(%qK)-$qw0r+!conUGPsmDh+sfXmdTgWrhgv&8af&=8ysb%ntB}LGS zzoL`W1{V*<(uq%pvauLPH4L!GEMw6WxR~C{6`)GTVbbHPgvm9e{iPzm2&A(SD-EC8 ztq!|7DMcsxvm4>cEv$Pygi!D;EhNI+l(7~8Ku2)O-GG5igv?zLl{JvMX*kMs$d*5R zO+H01F308GZH>;nnP$iGEwtCJa%QAt53JgZT<Vm1r$$WkCYF*oQY3Hpwc`rXt^^JY z4MctaAN2p~k$dY&j=gAep~vuqw$@sc^F$dKq%5iSg-5G%JMV`vp7XQwEtN@<mS#?7 z$~y(0pyy>JS5XlW5di_xyLw?DAZB}2u!~$9k77_@;6fi~Hn-sw2cL`l%=HQzZCa(| z(4imT=rj2ZVfulEhn2Her67OD@`#3>qa!`7QZBKwMU|EoXDnBdt;<2;XNw=bH#Sw> z!L2yaAMPN<vB#Vd<EYeuT!jIM%q+(dQ+X7X2eL+8eCh<t(wo5IkiKVmtM^A{e*Bf? z;c`DCvzUmZ<1_^@V-&zt1$J)PUt2<H6*iC0qRBEbOC5RD5FiQPmlRkqSr*^OQFV;4 zDmG%)%Xrp)!*-)C)tL=4&>F(9~^%u}lWU4c$3beUq{<w7iY_N#*cB8|aJ+j{ph z)UW>7W$AM6#&^7igoH|(ciefR8wXzUx=W_D^H5CfG!D7lm_cDfd-N#eA!J%ZQm`{V z+wYjP@$p!;h(2%DhyiTkVk|joSvuQ0Q!ow*3^@CoF3sP~yRRLLeRKUDz<2bz`xTnm zxq0^ToQnwfHULR#zM~D6DaWQFPRwApnpY&z8w(ih(C0~JNwUj+!$Q!}4G2Z4zqMf4 z(o4pPL?Fp@Xkj!;SC6d?htp5s^L9F}gA?rjUn4}kWhS2~D~WOFEMB6|rBx;9s1i|0 zxYG1TUiv76G@f|`wdoRxelbR>cud%;FUz0MM+Hyc#8gr)m$Tw(Dz(T##09u!OjD$I z`$iMpq#=+LMNtj4`MQvgx-n&_sx_>$KR*l7r3WPWyG&^BR1}T(qwly>BW`uwqrrOm z<L_0xUzxedJvp(5j69dZ_1IA|kN4HHe!8KsKL}d<z?C{8gCm=V9S*=)^yEo%RRpFl zp!Fw$By)}$Umik4GUoTRfM$D!oyriP*)u54d9|?&VP%KG-G0Dhp`ko$$K~s7|4y#o z6Vx9Dg3&^#j0VMwXHom@e5bH%_u>+Z+zZi*T9O*9E5=QE%Z>TeGsgVP_}0ku3hi)Z z!ZKHX<`<|Ayfq(7T?`4N3i{AUf~#ApK^Q>A8h)!*=cM9*n;lHxm0&#H8CgX|@j1Fb zUD)N5q^b#&b$le}mR%Q@DTP~dq3@W1G@7yOz@?`3+n0GV3(CmkV$Y|j`B6mtsyv(H ztngmQ(s$GynH}?8ECTW{{6bQ-R~aQcqJ$}(zj8aaF6#?PcIe{Zr4k%qz%A%O?~Q$D zx3}lP!PS-<ofBGj;5Y?L>s`_1K*_N7QlMUjhy8k>d(Ncz6NtkI=}(aI&iDBGC3Wm! zw7lcDH6UeBWqCQ*H6=nfI&~u&j26Y3V!K(nFhEX0qJHUb_UfyTIRuu2aAbeqi) zaHaC>jhT#sJ}vlhAh6d^`-zjL0=1u~%P)ehFMX{#F+DXO#g?1oa4k#&alLnAXFNp> zfu<H2D)PO^tRN}^6*+j3KMP&4_dxX_%SW)#T#6(nim)LN&|-gVAWfskFtAh$73kC| zTqCty8aFI55<GY#e@Ma!VTbTc`|0H}-;s(RVtkSXQvGa9t!FYRxUI=nI!=(w#*l$1 zY~^e9bpP$GNWY6m2}Z=fCQfjLoU|`={%kpKKx!744!{M*$GxF3UG6*T;PD&O*yzqJ zm)?ajGks%9wkzg4Tjf3R{1iO@hL7OGpKFB5u9!+RB|n`zB=&4?lfor_qag0IT#I0C zqX4QEBN7~@43EsBI#&9?<JimWy)sh;hww>9h0J|{Q+2?3mdcvd5weW;Dm-&D3%#M} z2)NLzr_&B7Ma4+$C|bwUiP7!t-D?nvJa{5;5S?!5`wdgl&98T?WRB2Jv-`BE$ToGH zNlS<t)ptbhc0lh890{$;TDOLbE?yyIA`D<1AfS$-H^-)$1#BoOE|~ySd9U_E14rt6 z!FfepM-dW$=BmVLj9QwJ%%CHJZA-TPOd63m;eKO=YkV0srY|W)^y7I=4g#S2UiI&- zgya=UeK>LgANQ|Ne0}f1q9@AM2$Ekt-8CA|$6*`VzrL2%?HTF)M)X|QPWpRUF)wW# zF~K=0t@sQ(kcF)}=!*(DENe+8a&w!Se0A7dIwZH8lCUO;!sQw$CRy8~1mS-=8cATi zF6M;W{CrIR1b57>Wb9HT&KUoDBW-ApYMwLG(4=&wIP=}0DdF3=>}VQo>gT17zMrBt z{0agIJp+3ZRDyCDl(_imn%48E?h}<-tN;Naq2-MY%BDnkNtIQ3hbs`o^-4J?;83mq zXHyXD;Av&$-_DuKD{?cO3HMvEfAZaCT)&TMf{mRO+vk4QKYo-3?Cmr)4D{_2JF4qr zO+R2!9Ze%fAS0s<vnkW#Zxxz$*wm;HwPC4p?i~!T%W2XL3{o7Iic-oE19X?aQb4<T zE|b=X!9mIu05^-7&=!1?bI2hLaNOT;dWjz+-evx|XWa-p$&}Da`&evT<u;P2JJg#> zBLraT0^*Yfw#czcYFhFXQ<{uk(<X8<qM`CU{W~^A09(*(<e25I34r9lI|h&kZyP+s zL^qtK4+QDRQ_@r~cms@-0lf~#W0vtE&v2*V&unRVHm~m)Ea`eJN3H#i_&ftCEEDCo zbZY6+gcDe`*<lxF{!BkRI$VY852k(Bc}_a+*6uFTx}KxE_M>laJxY===>9AZo2x_S z<Ou~|mV16pU8Si$7d|k2H0p5S^%48*93t2lBMh~y&tCsWAt8-~g`ax9{>J_VtfM_w za{X#~ZIpq#TX;i{7;CtI#8{1x`%@EBAux(tglRj=chVT2{GQONHNbH2GPi~unWrvL z25xS5QZe-vV}L7e#S=KaemcPjdO^O6tMSHE{1?;NwSe`>f2+;#rt!{KKqeJ^#)Cv9 z^8z7ATNMa7AV5G}n8M5uiT#n}_DD62r9}K)PO9iQ=}NbTK%;^cz;qo&k4%v+VynK( zEdIvFKjyOV9xrKk0bd?W_dE4pxFkQw5Oa1;LZc(5E~jKRH&k`bWk=9Sn`=VZ<q1*o zFsTJiXSeT@lytHZSZ+#MG1T0LdfI@xhcSe;mzo5^(+BQEl%oTofBP%M=0{W<tWY); zoM&7!UJ3)V-#rlsUJa>2Bol$+$mkq$qi1{fTMO+%Xw7YHZPER~NJyr$ztoTTe${K3 zPD>Gu;ft8$zoM0w!+FU@Pvdy6-FVL(KDf7x?gkSaSfUl>bvm$Xj0PPxN%UP&<rV*( z!hq@D`8e%OZ5rAT52DD4_(1d;9ST_W87$3y!RE9M!CJeb>c~=9_-+l>&1!U0E}H|h zE)dSA!5r-=4#{5P35W^lSfkhwE(m!MWmA;}&5k3}_M=|}NAlVG?2Zrz@}34pe%0l* z;7*@UicAl+J{Es-=Bsd+x!a<lDp?nxJTk`Sz%9X4AA*`{VnI#gpE-3E8*}G)dh`8v zAYhXYn=cL@pr72gE&%_sZN6C+DWpy|@BU5Lwd(u=_q7VDU_A2gJ~(W(UQh7*Apm^O zV9#yCStC3)O!O)83CcX{KR{essEQ<HArU;7^J$U=h<OC9$+}QG>NiOEeTLJN-46<I zuh$Vk`TVh-rD&hI7bm0liAx@BO0vWt9Y1n;`ciJ+>-0Vkmv+|JmFcnlUj{31UWCLL zmTuB3L%QPU!~?E6e}`0KJ|r`oG71D+sv=K)zHJkfgsSgu(YjmD%$mdy#kncpFzWwy z00~;*gM?%!lCFlYuz>Q-C#~~{lE}|3u<IlCJ-Q5KpR>3rcXx;cq^$gHP_Ed4!c}um z-}!_n%nJ|yp`+tPtVj&L_^QO`l_jlWZvk{KoKl?yPr@?V5s=nLozTB27l#Y}7`G0j z3T4unzzBVVg>SO1a(f{p;{3`X$wXg?;`XlCk(HRQS})hV>9SmLJFeUftPI7dSpd|_ z^{v3yLyg?m1=!)6wnh{{J*D#m?<i!ps=R!CZRKe-&2OF6@M45?a3xDq1m2scE4$9w z@|Arsz>BOi(q6|+d8U|cPzbHOL=>VS5fl-ji=mK;Oh?3_X4>!R=_$Hg>Ja-FJ@8_I z40z*dM2QctK)K?Mj37>)R)ftrerYF5^SO0(0rjZ~xzDHCNZl*zH~GzBPYPjzW%7w! zK+c)RS&w)@2;7t@J?ya1H}<;qCZRAl;t~M(L4+-h&B9q7(`V}O`N)Qjfbj5#Fv4H% zjc%$L;U~$-d0AY0^Cz7e2b{L@2s#2zVjfK$3DXo>8F7k_jh63>J6ksk7S&#h2yoE) z%7G>93ZK$H6eyN-eNL4H0FFbGo*e5yNW3aMe-v*oa2zBEe8H{&SM-SWge!1PI~tt} zE+D%?=|}^=quN*0KFt+N2DS@lC^inYW&2NxN4lK6sS<^b47dq-^%PFR_Kkd>JAH6V zk{-S9W}lxA+;Bu9<YvQU;a(}c)sN3U>?hg~h$j8~Cn2P8yL|iueKki`c7S)Ucwfib zTH!;xy)Zs5+g>*PmmPw%2xQAY#baDQs|td2!@4djIzMZs>k^OovgVeQeucv26fQP5 z@p)InjJe#C!mQ38(ni@sdEN#=G(*#~tI;Jib=`!rzd{Kn2g88nBYJ3Pf}SFv$AH(f z07Z0yw{9hBiYGR^M~52$YuW)P+Rw2*?C*A116m3G3c#;hn(xjrW)w}^tKsFB%lykT z2h=`GbDnXifgcOPJUe%J|7*Rj6o($b<DP;qS;vU_TmP8ogaRzjlIuh=4EzPGO{U1- zo+t2Ev*;?wsj71zFd^0{n2w_BriuR@Z9117^5U}6XXP-rAMYdM?p2C9IC-of3&~oF z8CxWPsZD5TFhz!CmDXHqDU=bC5z)3rp#8Rv(S@KJG~O%c2e1W#>s0r=7^}JQi(fw! zNPSGyh!CL!fWLv?V;JyKLo0QABUE-Mgno|YMTKeY^y9r$zrAy8opT^gquBQ+n0{S9 zolUEDqvnjhJ4Kx=haMmZ$olvQ-{}jL@(;1p77#kp{p++{)p-)`x+<!o^xk|W__#R9 zfq<<OLZpVM0B~!u;eM@AhiiVAYq6ytRBeZJA-}Q%W7mF;wd+?lWAT~T&qT|uG<KGw z;{$Yy;3-zF877U6p^EUm4NyzkU+w<@6@Vg$>qssnc-pV<DZ4(5%>C&f!4Cu4Rfg<` z@yozy0i^K8mn+Wd!)5c0+)4s1jrhJKP>^eAXj+MR&0s(%b1snlSzrMDu`~DO4{3uZ zHOmN6LE*kkrkU=^9B7X2)(k+{;LOJNK@1CSkZ>t0sJM+!-x}8sDL|ZQJFHsTU>G$) zR>!9T%uVqolp2={gw8Zfe_aG3w%Fl+mlIBC!z%|^sFr3iiBFHe5!ccD#mXO<{`sCA z8B7!gZtKMQsN-2JcNjgO*$|N+RKWb54E1{`Yk?p)n&Ks`n#&gwm-qO?UgB;LW%w`` z5ANF6!a{;6`9=|Qo($`;lk#C;#gr@ui5PpY7eGg9wk{|Oj^4HL{7IjIZHU1*nWhng z!t(;kzd4$z9A33Yk^bYV2%9L;U`iG>8D|@#31A-gyQ&A%8NF>&0iOyk@`rxe>=8`E z#5io1?FI%@?<_KkhX!VmIojc1{Of_AK6U6+SXI^GoXuS0n(S*={NrPDxh<1#Fr?u~ z2n<IZ{(~Kw%JBj4px-7P9LIjiO%ft!2)nGp(%+wV{2Xr2;+p&3N<VGvL4JF1<NU!m z79pWR>SCyO-i}PqU}?+5mcWUH+BrRuHI?%hModJ4o{|+M(3OKKumG{NjuSwT{|^~i zGv+`(M(z*619k+N5S^s>2Ndxh>O^$eTmvRK;fNoV!GcAnRz#<Or<j)ELGiH{@_W@7 z6wHQGM6kN*Ca|mh?*_KqSdh|JF=t^HMQ1t<-C3tjhH3P4D&gpU_3)NRFFKb_89FGd z8!rCP!@ULLv^pJ_=TMDu`E?Ah^Yk`5^C$TE=L8!C)6Q5)(qIm(Jw9M7DWayW9x2^X z+XEk)fe}EXwGMqxv0b|ZGuzwlFR*Xxx0&-WXryO?B^^mOmjHjiE-ZsMtxXLB4i3_= zykFH0eQHVH%`4K+yB$$*xq55{Ynp}rtr6DYA6Yi*OqlbDsWw`GEV$n;|H90mxFf=^ zC_ikS@J3~8zFVIxNt!EPT3dq@lwbDR{ViEE$%^AU)%q{;m%Vwl2I0|99^E_HQoZ_h zy4z#wpy*UGLLrZ_=p2nXKnE%cs@RSG?=9)N`57Rbl>Wh#B({%Oxh^_&Toz1)rn^hq ziHSfINu>^x52L02X@w+TLb*dHil%m;<VBdBG?j40pwHAYyYM+yFz-s<Otzps-l>Rt z(9Z7^XpAE6l7WfE5;aBtn;@_Hv$g3zMi_0%F(&}X>kAMs{%{;4%>y9#NdPVY^*@IH zXf}DRN(%aX2>*@h4Hh#TK$L|luMZMQ#;Rs-iO9%mQONbUtP=enF2)yok9L=3it3w4 zv`4i=Uj!As?{<WpQo^+uA6qo|9x;kws=<aYe<Da|^qTB1HtsE&?3?r}#V)jSg~Sa1 zLWrq#qGD#1<rYnF#EU@2v%{XFNGMuwJ;=H<cGMo)MuvUBrM|`TmmnibK4>f*Wip=G zHzIr`F+09~DPtw56^4H%uUsFEd<y1|eu`48Y>p$x{BA!X001bjnShSb;koXGgz=rH zy8W&YIE4;ySRU}TwRy4fP0J*Zis>41j@kB*z?JIc?sntO|BG5qK1ng<Q>S@rsk_PG zfrK}p;y3vQq5H1m4v)w41mSHVYN93XqNU@jk>61v0S!=h)?N%rV;&7m6@B00NvJ3h z7q!=E5@`LFVYS}_DWM3$B(K8-6#Q4pkC}R-VvmHbruMT7mjWQ36doUH%?q>;Ux?`_ zczH|3<w<HkVH!|x3iFtFSiJ&Jl_Q$J^bo8Ot2a<b$CAOm(fp8bdvB@@K+Jc|$zpsX z6(Gg1(;hnUY4U*#qva^d?gAy{USxx(g;^Q^C}n}Qf1`Y^TkuDyzgBuQm2+r<qvj;K z_!fI5_JRyWuCtYU!s7oP@IZe(){I174@w#6k6zl6ZwfHI{U4m?{geF!x=1eGbW-Y~ zFezZrvjx%Ha0T!ntsgXuVdt4AHpMYzoT(jG)XD@%A}P8<mNJbC_^83f9LE*Zeh10k zzJw}S=+fQz7CI)Rw5A^_4sLvDMGe_C=kW0b&zP_fdRkFN;E%GC6!}$U<d4aFcC&ji zI8Y_OU3BhkpT?o{q_v$xNeOb==s@BN;Jao{@<4LU)vxYCDT}2H*k*+fb}K=o2ta!9 zu#<}+F__d;AxD`vH%sNc;g4&3((XmD7EXjqdWN+$jU9Fv9Cl7CY#_M(q(c@Bz~=)n zMT1qiRC%vBLX;SUi0aSGt?AzLq;V{+M;9E`G>~8kIx112;9G7J>5^A5;Lwe|%Ty&L zzdP+u>_7*&esjyEk1HKsoSC4ddBlul+i-M)kv>b@_BCWk0oAmXN0LwA<iU;3k6W*o zlS!Q2y1~7dg6<GeH<(|LE}CcyfZo$mT{|Hda(!Oq2{r93E;m457o5EeRt`55!ejC) zS`eeVuF5%b{QYT<qt$moGo(lpn0V}45)}yNgqDxcP=}U$!D)2MM?(3yfip(KR$xEN zB5ut0jyhrgcO%~zLN{_lojM88$Zz^!`HXrl`=G!hnb9A})kJ~7j7HlP51~wyJ$VCX zZseiS&E^(3$a=eYJjew<{OpRJlFzWf0?vp}5!P0G!WkUiarb<elk-YlwT{e<(Deel zUX{)Rto6q#Jj*!Aox4H!uL0<Vm1$u&y88okx7%pWhJsXiW!U+<6WiZX#;PPniUDIi ze&*0jh?>?SGBEYHJ42+N=LRAAtq<2XYco4ZrZF|`$dGcDx4gPwI^vH!#1u5tvUK1Q zvAlyTosgg_u{V@6O?b&K<v=rh01zKXj?@e@0g&t~JwZziAZytmi%u9iCeVBf#3-z- zy`4*3i9d9OhZQF3A`#;92qGEXa+d2v%awBK_^^)+yW`NTZqxY@<%~USB?^ttLHr-f z^kjlgnxrax2u;q&h;puWp%KlJO$0<t^i^f^E-I2byVvWxAI7B+pIZ)AegZvir2CTm z^1{}8?QM3NX8j<M`tW=o`7_6mT|31ym88}N3tx8<0N_#nn65O?VF~XXOk<{D@Tv#( zg|QMfByPQOMl{aa(GyCT>z$QOs7#`wYl!OiHKez<Qa9QE@PiRLz!8?dQ4b1x`wjt^ zEF&Hnzn-)<7few5%M)fI{k@$TD?N@$5HHY_uP?B?=Uy^{{#+udj!_cxItV=o5GWO4 z&`48GLsk%=8_&MwJ{DIwt%60YNmQ4`T(0n!mb<i&%zji{oXCK<!5c7!{%h#)wmmO- zTb3?rzfZ(=TJBApuLZZ*#6mb%!H5kB^=_VARe9|-5C8}Zc)jb|o5(S8k|ghD=FZzi z^-BzfzI~uW+CJ&Q|5Up>pq#YcKn$3en)NAM#Nfk>w@~9^xJ*J;6>9?a8e@!z_PtoK zo|DpNv&Y<aFY09!6+l|doi9!wtk_uU|J&uA%kak5Yyf6rdFIDwL{3}vzskjx;xw1w zI+wr%+nX?!MkMnSd?MV<MmD$6l<~T^;9&Xp(;)Wb%zfmUH!;9>Qsu=G`!q6CSe(iw z4-C{KV*3_L*UJc`a`{EHz0D?Lt#6?k)t+~`#cCc4EB#aN;UzDPuNo=-m;10Jsh+)r z0P=T%{qu1TIATGI&Cf;^8OW8G42TIm@pV!DbOY=&&$Kxd{gJFRr$9R4Me{Q+V()Ks zRr!ZPg$Z5Akm0yNNZ_WDyK`mDd1t`AvgfmY8w2WM%#Dfy3~%|%M9%ceXBpD5i^|w1 zy}~&w-cV7D6Kv~iq@_UcOMI6OR<p)byaiz#j>ZiaUQqjeGK;8QwUSrBJgoNVglcRR zLY(J<-U3@BLD0L{dWthc2Egk&IJSB;sLOZeG8h(XZc^@j_rQk_U)fFZ&J}`ziqVoN z(8jy1bK2Y_CVxBY__D<h>#MdxpcqXcG(msYN7VUwf*j0t2vJQ51XGdNxZ(#h^{=+| zKiJTjK;`h2M2HZ&sabBZk@5ck_WX%;r4oul1xw=f3)hDQSRQE;;1ue2h=ASiMS=(} z1KFi8u_@^Xs@RdDx3NXhfj?SAcK{fg-`n%a%x)RO<Nqja(fsUX*(xUk02qo#>tb_Z zlb!z@BA!&DUMJU4ouX)fS>>kzGru-|31*#kIb(5lGZ;8sAvzEf)~^&J0ZM-O`@QIH zlPq6+{Jf~2Fw*pXhru{|P_Cm(HeatCAf6`)7Tjv8H{EkaB17o@uhDQ`Ma3VZ!mSyP z*DzRVT!g?`);{ezjRscsp13c@SL+$~9L(ZgKihTLjTeO1Uv4>&0-Ij19UXBh36|Da zIjw(B(4PygqtJ=(Oi@!)BT%DPpqwBAq9)!FqYX<NNTLuo-bMPF(o&^=Bt@f(*#fN} z2btA7Y~htXpi=4TRozlhkG=>yntze}yLd<?m`1tgq46<<#KEG4==-=|B{V1^1}Y`S ze1~L;3@9u7<K-geRzS1LS7o>@)CKFh$2$u@sBdcG&z)>C4YW=D`{@9gln1-JthK-@ zYq~~lO1O}6LpeQ%u_X;#Z0#T}h(sq%RJ!IL;JY-sLe}^CS3&vQFVdN}VMy(@ktD}_ zuEr#3B~lQ`9-4^Ld(x&K|4XmRh`s7jHCv6t!N+~c{ftHfUVG!y*4xWnR^?ftvucX> z@7{4_@aeaBH-F}(SQKu$xes~Q@vP1FyTj3;)Oo-}Js<Fc+F$;ET!8a=Pd`o+S^$}_ zE<#|I27M6w4RWDOzn?k)>N{3Ko1yJAQ!nd+&xr21qo4ebACHX~ncgX!Qu9OYsYXbU z2ENNW;t<=gBV1D>Y@V?vZ$8_K+xI)xdmUfi4gj3^m;7$YP)=@l0nEPqJ)wFmuZct8 z$08_@D?J8E*;*or7~h%WUa@`I+j;hG!`D-CKk0NyX(yNKaRd8BCAT-z8Dv-3Y==5; z)dO%c3+=E~cxO2Kp;-wE?YE)gwk*vXTS}`l^Lk-+M@Ri`mNWvP`No|c6gZ|dks?B0 zk+!ED3ou3oG}-oX#=)z`Te6>HyDlNxC~78_mbgKYr6)oV9BMX_=*BNX(<%XbWpEDi z;q(3F$FzW(jTg*sr#FuGrySllP$NN+jOyjC`_XtxN{$_brDaLZp%>^oH=vWgw&!+z z1oHZ27~s5w@~I*5LM0Av)kZZo;D#m+z*8$E3`D2n!^;><4gQBb`b*<-Jt{yV8J!*) zIgasTh%E|VpX3qwO<Q;v5(6%tg+cESelSILCgYogc&=~d5yf)yKO(b8<y7fyz2NHR z5(-R9CK;l+>?}q&TVyYS$Q_6=!_PzkMg#x_q2IJ*J!5Jn>oM^fS)e&YFOK88My~UY zAKvMIyzXK^4b)p9sF~CEg%2Ow5REfmOHdwnrQg>)D31Q?!NBfDB1&cO>jczZ#tpqi zv2OUx<;sVm$DRgoa&!CL)dl(#3ZGb5;{W+CONFWKIYCq;mLy<1Q^T%IN=nK}Xhn&= z?%v?wH`zfIv72kOfG2*EtA{54C(q}GN!Z=tNRvU+$4vj(g-%?6hX)+JhwnS{+Ox(e zADxTRrLwp-A)n2&+YSk~5C&qbVY@lJklo~*!Ccxd;AcA5+);rj&YK=qMeULYAW_Nt zfm5S<m6)Pz>RC-U7r@&IWbmOyL1<v5;$oLYRPaX>d$f@tV4>#>QwHL@q*SPafi-so zjr=qXGANuuV6g1O^;1U$Ael<`P^(nDCW(RPK;1<QKgyJjaBbuloA`t=>I3GFVMs*Y zQNq+y!1Y<2>j{N?lQOoG0@yz_g0is;kS%)Mg-#0iRQe^^Ke%Sy8u<tjX}7B;--l0N zB2bt|rw}zTzr6@d$L1p}yt8Vq{>M853D8=#qTod~2=8Y`=WPD#@KJKhwE`{iO%T9W z$QG%MU#ch!4XU&NZf?H54~NqlDn_r{pywCROA@H{>=mtZTX^Gq^W{$TcIeN2U7G)i zw!fEwHXNd#9j1e8xE9ye%GxKRyWzYo@*K_Xhl}1{UY|a*kMO`4wn-ZC12`nZw?sE! z{D935pa)pVN5JeW-Z+abePXpHxCO<yn+(5ln`Ca;i;L`I0#ec}m$!=DB7_b)mZhlk z7@uy<H|<R{zCPOCp%nEo=aU;<98dnfL7wD3F<lvIB=apmN3Sk}F9CuC49sf6BRRW> z0E!1Q0mrAjz%-ZhrFp&ix_iOlv3D=f4Utc+nROL8!3djU>LAAPvX3&)jN=<gGnmjH zKdfTt8*k;Ic7AckCVG)(Nxnui{(08qfd#Q&S>+a^WNJK-fB>CJt-;Z`I<Mora$s$h zt<Mmy?In1d6rtN*WMDr4J_ojzkh<)_cO3!u0l&`uW}}e&x|cp`ze3aUr|@C-PvNLG zE@i;8M%RTc3^!r@yoA5&ahIdbtp?Ttmj`b=W*S8WPE4PkI*geh9iN=cxmyTsRfd<q zcS^+jT^HhkuBYNUY&zWh3H%<C<qGI-472*71{+Vs9^2!fS6f}$4Qmlg?_wH2aJO72 zdM|c2jVvH4(6pnMVNr!QP{aK;K}mfUIrvvRpBJq(j|G8fULMQ-yHZ5&eFGmHjr3A$ zz{!-ZZwMf&+oQ28mCDj0FrwEI?FgWmA_z!CLcu7T#YbuQclz=0=T5Hd&7WHb@(r@* zUeIf!v)Ep3S66_Wn;T&Qz)lgCJG0_SKp=pHDj<3a>iD_uZMCnP<Ey?dDyX(S&uw<l zD=Z+|_HRD@@xdC2N=*!tQ6uE>(^e=l_ZcYEm=nOqEVbQC4(R^D4WCaAI1?@q4)MIV zR72>7%yPSKI(^->84MaS>h%7)d%i#NZ~EWAf3Vk4O5onv*FWU2<x!Ahfa6^;$5%I4 zb=U0;Y?`0CcYVFn)9s5R9>$%ACxd$jZ%D+E-j^0ExZtK^Uz+27C>Lfi%hUMBKK4}w zgBJCnF^Oaht1hY&u2fhx7LN%h22k--csDZAtj!r6rsiUgLkd1Q%bXIl_yGW|Xls6f zR7yLzL=n&I;4EV)pz2#3>|`zJVNzl<jSJMI9x_x-VjjS6hL^XZYVIZ*Xf&7{;=(8- zVv^!+>yMr(coKRk($AkC;EF1(z|9K3t}DzU*&$H#+ecV0=rPq<EQf1MbnW)&IRAVJ z>2y}_u=?#|Zv2(&Y+-iKNKK1^oiumLwukM5b4C3>h6kHK_AFP6t{$zhDc|s0b6Yji ztV2?qbpwF$bLW4JTbA%Df0Gvp-^5+rmml<;lTbJta@yk^K<r^Gr9$@VXRg<yHtYm8 z$2acjcjxJM8*TL5{_VXEdm3D2XmmFhKnS?I_4t`Id|?^{@bPKOtbL_&3nUziLA_%m z8U6F85RKB;*uR~}KS6h+yRp~1Wnmev^t01nLT;B&?Xa#W?Fr<6oi$=U)Azr83QG~* z&D+GVGSWHm_tJUIcMD*?luw~mmEMne$rW3SS(OS*Vae+Xb(4o6fV~_ZUuX(^LyM>? z&uKbh0GeOdWu=!(QB_r^4F@%dF~+a~?^r5G{KnDca=@C>)6{{1fix})kL8Fufjp}s z!zY746KDdA9pODn-yLk9^f8x_pxKi5*gF7f6@*}wJhyzk7+mj#n)};ZKkaq#MzX9@ zwC87*$1o9#L~z97qegjHY8c||Srel$RN>V0p@bmw3}cM2&01jMK40XU^XdnH@qag~ zzy!%rNI7S8DNudIU3sO}X_iM;R@Qz+5Srt=cld95I%!hmDu3g#G9LCId)5XES_puW z8(lA63A&*@RX;ygzhZ)0p)*0Q?4dxoAjZRk!QDcb5b^kQjIZgi9!}@J1_45WCGIy- z+U=KrD4*@)Ou0LZZ{;USCIsb_RyErF*}vlMc7X1M+Abbp|I!-8^1Tkb&;qA+so*IE zVUkd8lr>>!1ptY|ND$N(w=&&!i2=mG&@d(=sjY4~1cXAv?|gaK<?uz^!GRG4kpVR5 zdaM$^nN(5m>D_knbX`PUds%)3Qc3jV_Y>-T1o>|WzfK6KOmg$-if0o3OWt_6Av4S6 zU^Oafg1FDYsk7HVgXO@p@+Vn}h-o`RZ`&!&8>)}|9G!%=QQvUo%D3d$ofIyHa%D0H z=w)0=6%U>VW(&wgQ)Rs6lk~3iLiIF&c2JVC{a*(YI78_VzhpB_{fHqZg;Ay}VI}s` zzmHl+wb?xlN)I0|7;~~XQnjnz`|qfTT|RX^NkGdNx-QxbFX|@!H*-SLI?wAn532(( zXau0Rw|D^fUw<r2zP;DDa{USVtgvS9U~m+0XfEV6ZHD)<=g3*VBXqB&`zK3o^oyWC zI++jo+$UH+=>9X{z76y^v;S@?0Cll_eH9ZR{`=&!OPi`1R9>QTL0kI6W#d-^;_u&u z^O?&KJr6|)5CnM;v?28Iq{=AbDBrgtb&fdk%Mk^MAW$H%Sy@fdxjd79To3?Q2i5sG z2w1Ms{c?OM%O!f*_;paj%WlMbk_+2qd_6X!1R1hbjKImx+-2|_T%VZed0jVG7lxDN z*L}{=ao*Dq6o`Vs=*Dv(n!_*wSG3V_JwdeM-pVxV3KZ(BO%7CYgTF`%jV{V7$nX0r zz{KKtZp5YK<=2RMm0FxEL2>X9=8N7z4(NkdtZ|sv(rna!-Pg*$NQdf@jP|?K0;kJ! zL@xenTy5`8Ki_{;@!x~p?;5FxIr_YKb{-dVtgfwjU08|29Q}vily~N!-{Il57dD;% zjU7Fksw$2WQ-%GiQcT}uKJCkQitMZwRYBZaK4)xBl@!3J0Nl$eV#yfZtLXS!!7)bn zj$*C;gM*z9vWAH!0K=<_o*(ybV)>BdWH?kY3J}5jEczbpCpXfI?>i9Y-~WD6Q&Zbc z;x#(Cl&`JsIeqE|J>3gLPx4Q!WBP_n!(x?Ec_??!tzRQm{2pBmFMHv`KA`&MW;P!6 z*qhM@(~EnnoGeO?)++cmprFW_sw24JdfCx|o6BU+tDDeT`X}PQ30LcaR&(sg$dXw~ z3={a&k_t0P4?5eC{@qqxS|P<qpYlHRl-ZLO6F9d7+wT&k?2fBn>LfvBN=PH+3>HYP zrOK&e5GK(90||^f0&fSLt&ks$gB{su3gSv}3|2gt%K}gk*bQ2*%NWI6zq<Ll`95Fo zj&{M|6F4i%hwbtl|0B=#*DJB7{<{rVJlFe~h4xGG*IVuX-nN{(^{7ku{p=1gsE)aI zKjF#brqyjR4Mafw!YK(SK<l!nT|GFjpnS^uyjUXg1BOj)N8Hcq-h38#5e+*T<U4x~ zr}Uowe2)L(t`hMz@rix2Y=Z&!A}}>U-R<EJ>BZ>vqKo3^iEA9f#87UFg!<}%3g7<g z&g`Us3*LIbMn@X^+nwtP1mhX}y^@p5Ypc|%BgFbU{}%lZnR7qk8+)Am$Hwdz!hk=D zt11qPa+Db0+m+xe1^-*vb39hEQ+m1H%*7S+N$3&0L(xyJH6W6L>7FPyX*qa8b&-1` zHL9p7mK^fLc4k)V!*FX?Ne2`Jn>w^kS(vE$z?Yv*2trrQxq}i=;A$u5QZ8eY<L~bW zPp%8YB=wD?BWtkij<bQiDXeLkjgYYND$v#6j};|?85}wHV}!6hB+B!3zfpLz0BygP z#`_OKPP;XFUcBnM95sv%1jE}8{<4ZHECY0(wl<lic)iirb>;XQm4Fjnk#JO)5EL$T ztFp}qPj7I-5MVB8*_MK740OFx!c4JP?w>f8N$#ak^#mc8L9j1lBO8LGo2%!WF`S!j z=YbK_p?@AO7{zYx6%FqfU)LQV50%7`YuWytnaJs-q~Y4r-R(AH4J1UW@LhcS%j}$! zma}u^f*F*ciye(`S6=^L5((G7ln=vqBvvfhwRW`$H-OqbCm<=Fa7Z+3;TwV+70urQ zJ%+M>xaLp%j@Xj0Uj|x-gxFEJ#iiB<Bv~oZ_1{ZNKR?)a-`C+wk}~$ggA*YyuiWe& z6o>VArSvEH2BQos|BEpGfuw*?d#eq+PA`9i3uWI_%uQcxl`-Z%@^?K4Ritr%&Jtt| zVcCvfkEfx$%1`@$@cf2t4Ig5St{@R`CXaCX-~1=olFuxaV%3qz`ReM&4J}*G!djp( z6(aH*lL%^NH3sS7WTvR1W{xfEf$hi|o^7Y|!9KZ<iEPTD&njFXHX%v;!br{!VGS|X z!->)=iv@Ow1qcZ=)PW4*0OTp_>(6rrH;wvd9ar1!BJS(szSV{hZHS}STf6p=G>)`P z{<D_}!HtJcK@e);?8c*J3(n`jo);Q*^7hv%XZDHUHD1q3rpvQV7cKN!QPOq8gsFA3 z&K8W7+!v#2o@}SWWk7xB^7{Jvoypy|*NTtg85S!q2!LPg91l7CR#v^^!q**_$YSC| zr~nHu>?wtUXmCpvR$j5XG<Cf%V~i@1x`M7;x`l3{rF=$CS2I4Ne8%pVjDI;*N64LL zUJjd2Ct5_P5}Q7qP{Fuu0Y1xl#7uL}nm`#u3kFU5oN@*Ud+z}@^1y|+n_UfTSmJ2@ zfh3rx;k(_XB&0m8=dlP=JiVl<8agFkl-n?MDAOMi^S-l;b0a@)Uwq{uBM!Uv?E;a; zCKZ85?HwHaPe6V*V@K81l)|?c@Z0cI*umA{uJ7@%(9wH4{-whc1K4N}x1?Ml&`rgl zUOq{Mw$8h$w(ThkOf|xd#1<=AE_9_~A3q@A{8Z_()SJ(Ree3eR?|ItGTF8v%%$Wb3 zS$^Z)A-IA2?T-{M9zdK~G%o4t4ZlO%E|@iHPxhb9cUxUkM32}0dc83P0Kf_1H=aG; zT3MZZ*+?QoM!uu!XW}rnsDkg@%Jp>0O=uxkZ)Vv>li(JyY^*MWjeZ+=B9rb08+UM@ zip{4^DE!of;_USrEkc-V-SdAZ*b6p(=%Y&v<kI;yYhME!2AS4`G=JdvAYb%5ob#N` zho#qe#Uqif^X!OWyOs-((fIL6Zmu0qd4;&>)Xbzp@bf{A`e#Mv6m>uWQxqG=Z!KwR zehzz*FgJZqp1470Zqhh*dwaj5%#G($&zy^pO|#tRF<Qs=06%y5munKe?vC$#diR-m z#p82j>b8!27A8Wa)=o=~1>B+NhsN=3xu@BUo>ZaJ!jb;DOfRRMjLU3BWBk0sWFah8 zrZB{bFc8{WwLJh24=>XDHX&TFGPAYl&%^VHmJtk!t~%BMRORWN<b)pqc?wt(_<=di zG?>iAnm>HLTY6>nWu~#mC(*%=O}<V<Ht)<Q2ilr*hSIqa)!Tg)+<hlH>1?;){=tOW z{)^-V$Afg785S_rK2p6|2|b_pt)Pafgtfl)RH}u1*}YBJ91;`KqBBLMdq&9*ys6&< zfaXa2oInPgO|rpNv?JHn-ulTUtHE>wb}G#u1`3hK?{tSo_0nc}Sc`tYgU)DyKF#!4 zyS+X?z|J^cvn_NfUl#}A$r)$(bMA|@=eqxB+j~E(y`K#$C*60KB9nS*L}58l-I)8O z%y+vW)4s0F0~_0f_d~^1Y#jV&YO@(0i<NUW;}0Gp?<t2UI;o6y#jQUG<0GSH_hbt? zf2qV`W_+uwp5mn&b-BiCT}<Q>%Ojox{gN6xa1l1H=uBbd^`7wyb@2zb1$VoZTag9# zweCBS1uUelwJ6^WJYT#K9t*a9Yu(;Ddo}O7=>mL7H{lc5E!?5|^#Q6sh``_wj)fBT z=C*uy>Nj~0z&gSR;@ag5Gg^p%9nu&W#}Gjd&(Ntcnd?Q;)NxQlL==nXQ%~&f&<dSb zDdQ%xyUr<JUySSwI)D2g-^+^K4(r8NSFY93h58S!yni_8f)%FL6u_gz0dB>TiZ#0I ze8?eUOQ{PwhU{2T3bVOHJ@}85@K%12-6&wnxPed%$_AR_Vw{r>y0LmA4J1P@W2Q7! zrK$11GL>;o8iu427)Yt3=NFMN4jT(BpW;pAbO9N^WEH{Jwy~9mPJNN>grapqpA1Pu zbB?I`;*+lXwLdjT;%x)u9@Er?;s~YH)QEK47v0w^eGS(<y0_~P>Yl8_lGB<R>)DJB z-M!prN(_veVKvo+P}|s6LWM6=IyoIo=2}E`-wUUiMhPl=Zk}I_n?*^nWrha^2DV`j zppM(+iVE8!&`U!6dn1F>-?R(PX+H0Mpf3niYMJYj45aE=w5-0gSmCyVs?P(T?!78W zRPEn8{W<*ddDdYlyx>n;DwR%6=b1?|!unvAmKimAPqR#3L$6$LvU)}2VTiiI#}CNn zu?2muYDC)tZ?V5Q!#$8PioU4H6+^P<(wZLOn(#@zjq8Di6k=}B`JewhB8M976G09H z1yx#YT+HGNy5A*2=7C{BXS}Ev%CS$1cDitxO7Aj{Zq9a*Fj;IOPih!}<nQH55e_~M zN1X6&x>0rqJF$lwIK*%`S_SpnFQn{xN!<=Q+i<>Il)Bq^$?@!X_oup2Ym@-d>YNE4 zXZ4|w`8p!)CQx-4E!#{mm9=4R3Gc~(!<FuVSB{Y<Q?b?#fZjuQz7Fo9!j_c4>Ff)z zp5SJ|5>_Y{w`C@_xpugD+VFY}YuL4jQOt9i>Pt0lpvuP=x5W;WdUv#dPeYtKHv}-y zm<k98bkQERsrp@*JVR!;GIB-3ib-#gNavg-rwdS`cqkNL#}p)E)LU8Ec%0`q^8V+u zJ#B6Oa{mqVSi4;@8U(HSa3?b9cb+30u=6fH7<Hv_`6TXWQCdxoxsb`tV4>0e$Vnhg z`_!~+Ahu~hc<y%zZ*0@UDlzjeZ^Qb@XF$Fdf|rdC^Tij8{IE?K#2}wXj6Lf69IGV~ zj<C4MuFpqQ=$yo)M-jYy;${Gz(%%OmwumoA%zP+Q#bC0>V_qeNk~ivmUev`3iSRY! zZ`79?=c1Oq)Uai@$4B*?GjLG<{LFp5^~~|J6rrf11idCvK2Jq95Kp?Vs4aex##_G% z_k7;WEKcqvNVRCtv!8TTdqjXkVx9(Xq;na|bQZ$jxg*Ogs8yXVm`RC+Boh$QEX>bm zl;wR<7A~?Bn2sIb<%tJexLVBUMs$t1l~)=~KqMZ}Vl-zR!+@#ucB6^v`Ix|y_>BC{ zvq5LJ&~6$|9LHxks!3K~9YvmL*c>$#FwrzuT^{FK*;9v%aZD#q7BA~XEg?=Mt()q2 zhxW&rtzmury)RUFQtYL&>mBan(cq`&KD2<=chYK`(m`E+4La^{n#6AB`TrS<55$?R zc;yt*<D&*030eFboXG}lOA~y%Jv`AffNqXgwxoF9abgH9{HEL?-?$IAUum`>k<M?3 zgZrM^c;)buV)t@l|KXf;MJ9>c&SNJ$I9l_9W)C3n^YhCV;+K1<zI-}H-r+-*peinM zZ=F35h?_mTo3vweY<-%y<c8<p?V3j=rxO+H+VgM?=0%0@m|(^aEvBuoKgsG|IeMuL z?d=4Q?3jLJjMAA1A922`EinbH>!Wtld~V@?D`FqMH75bH9AM;R5R>#RZqQ1#V67}l zmd{XRp5=)gtks;UJ%OW1MN8Hc@N?<079ox6ygL3EaChPuKUmmsb92`LLt<52OEL8H zD~5WBt-3saz*~bI#QW>$^txwJq1&(Y&Y}ZA=rx~65TC=u?Y)p12!Qp-_jg88n<J7; z--!5ie0SRh@L@jdS2>*6XRSw7+k^3x!X9=O7Q3fyXY0HnP6^+7zs*+B<2FayiU+|i zU=Mnu?g-r%l7Ray#?uZyWpA58fzDOR@VH&C_lMFnh=ndi(Z5vrU7tp@JA<$AJq#!Y zBM!g+{pa=m(YaQhS#3i!Zd=<>_#;K^d#~+~9B35x&5*mnZ@v`uFBt`7W7a%y^ND64 zyuP^j8uR>}6Fa(~#-6+w7oMO7O&e#nm7t4AmDSRY4&%9AR>7gFIO^>=P8w8*xC#eR zY!nkVWhd-Z+X!?d;BoRhq(FS&wq%VBHIVB#W2rF`Kq0DH8r31koWwR-C&`>%a^S?1 z97dEn=g^d*9`f%iPn@jt3?+8X>upo+>-<KX%%8c28_K6)Jde)_wtAIJI)}d<L0-?5 zc%oEdH(YdgvTCDsq4Q)Xn3JyW1{;2^-9KfPSgpk&;NXp*3W(f{(dr;oIa7l20~Vu= zhuFvgXvADNhF-hG3+~R?vosx>q>Jv~a$zBFI`1Q&;+hL*ctnr;V*1f`aB9AaUi1;7 zcNQmm<q*b5{l#_l+PM-^_+enK<T*EqHK84FjutR=;C61^Xdgdlwv|dXd?H2pI5lqf z{`h82CW`7|v%;5}1;>)pqg?M?0)3RsOiBIhSbho79D#2iX2}mA+c)ZbuS}`0ypIP^ zAHm8@%L(}Rq%M_JwDGil6>zn)(A3nFrmYq5%m`YH>-8YI7CM<Lo~WHGMmuY{N}_zJ zp%2}LKTmX_^cF!_>YGn-+s4lBsh(}Q37u3$Rm7fz+JQHBq2F$Up5l#Xy4Zmr$1}e( zAKSLwvGk7;K(-GbsL9c?;rD;VnuBenaCY2LYv);^8L?{rpT;YZI}tqo0wi~l_eq3r z_zQr8<~<~cY39iD=G1WCr%`U6_kGC=`bZJ9jR?SB`u_lXVTyR$bIk(_4UWFs<X$<n zIM^nXR?cJT{Ch*DWXR4G@5mbH6@LtwDO@{#xUP1$I@dUVX^AES!G?36BhQ}pEkDij z#BCc^L!bPC$dVDBombiX^<LdD9>kF7&}`=2wDzWO`MidSy5}d3j;)r|8M1M??V-5s zqA!Q7r@SegYoq|>HZp;f*DuS{1p%*u98s=Nj?UZ1^p#KRE_d%3DO+Kux&E+t41~CC zWC?3s66>(1wwxm&++fBECA(#1uFo7gu4WSZ?W3k;4OK-><DTX3h#rlm_RH-dS_50Z za*jk@@2+xTBK}`b8Wy$$-p3C*Qw%!W>1wGF{kAcMz}>}V3e|wf5!<y(jj``a8*cq5 zM^Awx&;p;|<b%F+!ip-?que52QY~~-rwj2BF{qPfh-8-(BVM^WB+&o0o>rL^5{Gvl z8Mc4L$DuyvT8xeIqe`0OwLlelz28o?u+SYColBtRVdYAGI(D|(r25An0V=wzYF=~i zpgL!_qw}JE;r<*VrDhvj#-^^YgMuOvh)1NM>eM`=BRxtOKq@`WMm3ti^cJJxcHIbe zV+4=ccI-jtUe5Nf7c|SLfO9w@24?vYFQx$PDh>5m-dBBxV{;p9`!Z7T(@@a;F!pX^ zyVZeLL6ryv6~RgP)0#3F{Bc~};S-;&!o7yZL{Prwd%|m{sKHvOS1SFlI$y!#y@Bcx z2GZG6w#gU6?4!AAOXXEmXV(BHb7%3cW-ep51-9UW*x38n+sjdoB;xB+&#tHEhbwrg zZDPH`2Ok%aY#BVp{8)FU&{wV{pT_QfrH+X%O_O`Ka}UkYEWrNv9r_hFep4Xshy^HV zTbx4DSZLv#Y!G@()LvA;RL3UO>Xo9?D`8K;n3=`_gEHnkPg8nn{|s%RpnCsasjIcc zJ|6TcU}-*|A%9(9VjhY7_5mn4rpzDw^&MzaheqbDq>#?3al!w%0LMx^zb{27u?JHv zn01XEnBr)Vui=s2CyN}3{QqdW3a+TywmWo6H$!)aG(&fXbR*r3G(&f%DBU34-43C2 zNOw1gG<@^CYkfcAoU`t8?`vN>Xq~;boPA(?gh0K!0x}v`?GoDNh+n|Ob{buSJ9Pp3 zED~6FG9g5S9Ein80H{)~=k%u`*CC|~#^xb1(sgds(Dscc2l~slKp9DY_T&J9l$~a1 zB(f(QDL^IE#RA4iX4*wOzzl!J?am$8m8_|lVf}USY501VZOU8eeGb@Uj?LrZBTAs3 zOt2}y!s3tu1S4$z7ICW}2nM#Wcj|lN1@<<a{tVv1&F}Z${PPDnbZfR$soezUM!b!2 z86dw>I4MyPULSAdFuzbTC)Zb+D>ztO4=~M+(Jz6*4^2{opOO^5OrIQ&_<lZ9d&AT} zAbufF`dRD)+8|H3kz}s9UdYRb2>{0}VRHnlfv({<vIc%^88>%yET7&@-^Px9v;Vl= z2L%Zk@*7`fzZ_~1-i*)X*`|CZuh(RrXxc9|A&N{_0=MV?+v6>~YMeoLH6{!ZCC2B` z-Ex6S440XG2rM&@7pEafSvj;Q_Vd$orfbN<X`;|SbT+F*;C?6jQwLYnA)-T*AH4$3 z(5cHWhUQ$+;)X0M;;|A<t}R6Bje5j>QTGongEQc}+ng-3P4WDt=>_{6u@5T^=iSNr znU!SP`3fv0tf-agD=Qa}eNP=c9FRYDd>6~#sAcmInfMTd4)G%@mT}%G4iS6ZH|ulE zR}S}OkLLVGXqWU3KZ*S<%~;{)<$uIPtH{(X2(wVIHXT00wL|8TL~!tt1Qc>ss+N`9 zuq{M~gMEKnIF+IFknt4`FxUtrbONm245ug?Am-JxvLM4g#hYSZFnmO;6TE_B`>|hY zMOA;$N$+wU!eOFoCF8#n!{DlgrTv5NPxLPQ1gH56d=2IB^4`SZ3M;aQpw7XCp{6_S zYHDQBqL9KTNNX|W=&V+HUyBndM{3-ZwSMG<Idv1ZEUk^0$~uT1VD%@qabxBer5Lh4 zt0i+<ixdZTEcUY1?tS}c^49HwZr{^F5hG{{Ep)2^Lf+MISS^S!1I1>9zG2hF5;5*7 zSX)1N02r%g?Oa=8M~JVNiIEHsL9o|ukAyN*w?)&<p&2W=icFQ3d4#0U@qbr9VU|_} z;wDK>^B-4o+HBB!Y2|zUs;j#GWh&P<1<pr%We51s%knp0ZOs&D?f_saWu-k>VB)>* zH}35Ax}K#2m>VvVQnWAKcaMyT>DuB0&wd1c^bj9g_T3(g*mgbg&D#~&bGid172x|R z&m7B>j#VorzMK?G;D!p1#+*rj(IIeTKsNYBYM>z+mAFF<nt6w$o*amjXd(K+e_Ru< zEE+Weh#4sb(8h~672=<Ly4g!pOI1wbLLi3Cg)hJs!qt)0!PnP;MiBM}D}EPuz`Y+x z*mHo;nEewZmtaOQ5KgR7<nKrc3mK*glHH-y7zR*vrA(^<$fi{JI1_@`R3%VC?|7EX zu>hN7=wAv_#B;@4>0Xt7!ckbiWXsB)rKyR=pn!TWH?MwzXLNLR3GW%NgPfDqEC9g0 zMmMtGcTZ(|0OH{!oF2H?OG8Qd(h@D-JQln(vuDQA9f1uJbi}X}EoOyTHz1)*Ve`*$ z!_`KkrG&wPRlB;nAMm|4%dMBtCr&##pcDsNtQwq7tiEQM1o2MX6eZW!t3L%Gc{_=W z2<p@h@D9p!CgUv8{F452fyvL|Vpp?Eo1$4;Q~QJUPUyd`VuhwNe~up5_!i%Y-C*6i zU!vJ!vcisBkkbnDpKJg}C#Ra48Y=AQu5qj#*CGrC!2-+-hX&lgl{eGT9We1PQe(M3 zz~RKm)2whX>*|aj?D`vY<tX&oWh|V-xm(F=h)kb?qxa<m3OgeuD}>nzYcgn6C+>K( z-VR*e$`<=+SY?L5d8{HTl0&vL=KmOkR+s{Y%Q4pE|74|t1w%-QzDD8rl0ob2<(SR| z5&@Lz7;_3k(U*cs3Gxza`$?pQC4AeM*9^9^$+_ZRqU30#V3+0a_=m&<HJDXC(Wr}S z@CFq6T)^}&rPsx0SrWmuuR=e~SF5k-jjQL0vc(i{+Z4Tm<pR413A@=yMBnJPWIqBh zV%-7HsAxtudE|kN#(r#I|0i6ow-V3VSxMx|bWQGwxMLzQ#+q4H(xhGJi+2M$d{9U& z)6d)&oE!lRwn`I4p6kp*dr38p{&-`-PfBOoq}H*B>n(;i8_dEHIWr^0XjLWSd`U~A zvp-2;4Rx>)d~^6%QI%Vqo~o$8l#%mCQX$9r9?9@EL`Ud%<9_MI^<4|+6%;gorY=<9 zpam2(q-VT!OOc4_9$ofTGKxHB*SS`7KmK;nQFL-~@z0C;i@x(CZF0);g57s^xQ9Nr zbyuLd>9ljyfPOx-j1Y$nSp#MQKhlnDLGjGN2APcSi9d2}`IeCDBFg#&K4D;wP2AS{ z1?n=7Gku-tdx?7A3YMQcyYbF{{6;nLakVkArpAP$r~!KQwqw%`X}Q2Qc8|jOUZa>% z>CjhUidv1A7338n)udA!U_a5w|3p$u#LCxp6<{h=M-o)|SUEqgIpswLe*{8GN5=%Q z=8{D56b8fJYpaP_p}@_#9lWq}!&T%Eh5EcTx>{o!ql_@R3Qr|&9p$eYq%(wZ(5zrK z9jw*`o;%n=Tgq>x#QsY0pT`qMntwdsv_<Tv;)4Gd`27@~{S+$tTUt4vuX30Rs7%*U zJn(HuBPeN^72=4cRX`frwgo~IPyx^;T)Uh@1ZsQ$Hhd5sqSE?>d)<;<Tk~Q?x4ym0 zXXc`QnbPkm5m3xmKMs`Pl6xK;)u!H4cb)-!4nFQ{A@NmryCOvJyJui;;F&-in(+=! zw(8gw%GH^7Zqv#1JFRA^-L;+0_KTqi$7;38N{Jtf38;%6R0scYz|R(ZHl^Zil6Z-0 zOJh*W6ZAmTLpjmsAPF{+k6@s%&pWKqiG$a!zhdtFl%5mQ3KJAJ8})GhU1Bf_Ch(yq zY29OZZX*93QkN_8g-=0q$qR0iW~!PJw*cNYXKl=Y!OnZt_+I4k+$L~pH?~JVkA;b% z{W1?)1N>RxeW~DZ|F}GV(Eu|_YS%A$KoTpH8%Dr5s-7vtEALEco01#9!p)h;8ohWf z_s=5~6tT8Z(>n&00?a_<HolP~lh+Ju$&>^iVqo1?;lw;jCK<E`@9}PSyjdf}uUYaq z&1^A==v+D^*|RA2Z$7QjBW0#K{~<3aRT8ZG2`#n~gCb%m&s5sA>AI>}=dk*3b>m;F zHNE4?2OO9`o63ImpUy+{DCM~BPQ#kBFskNwiVrH>arT&naM#qmlQo&A;%Jq2X~_~G z3aO>~^rgzFJka6e_YL)uqJJJ~gn8SX$%WUFPG&JD5E65`lK7ia)S7gKFG$NEW5I)A z_PJ|uI#)`aYesD7qOFEwXmDKYCkEm)M@NbHJF<8?bqVXF@t;54-5DicFFRP2dQ`hw zy5|iI^$8^Pgz3?vE2Brcxhi?}GTS>VX^}!7#2$~Qre_Q^{w}ul?$6~vX_e1~C~`A0 zoZZM6sPVtynuL6vlt<21=XSmycSJ2B-il3xdG+p6VP5*q6e3*A5M*U#RmUfO-n7y3 za{J?PZd&RGd2BN7x>t+&p{em9ETDTAiK3(4?evx-Xw##||DwBRJ+?XW_&wtz(-|}e zJa<3hRDcidJp^1+^QOenmm2?MXlQt@<LTsQ())VuLMki3t$ii)5uVHUGmGE~lSAeX zK>A?dvvM~*%e5<dxC$-xWPSOr`XOao-XGysC#zy0&ot&ScRMS-6)CQHOyei?O1RpG z7%GH-%9)^P1OGgR30Z{8tD2I;BH}PTC)<x$auqrHlS&S|m<{htvIDyemiW^OZkhd# z7E;`sdZN8|H7<gQVfY~OpoeY5Jic>3ZomO6Roqm`Qo&RZ#`g2p)w>2>;#Wkee#U!) zu-0(8jC4&ZWq!*4pyds%%5&JZ0CX{uYE7(@sQ}&7+!iG(I!t*5Y$gqwdHGhZqbAkV zgqv^unZ(OPpn^YR1OPmRomTUFuCB%6?ngp(J|VoSxh(NAEBo`pjZZ^Lq!_j|#|F$i z?fknoDLQNCoLdYuh!BIi@N4R7&8Gi+_Kd`NyfmRJAb8xy-M8{Q(8cJ*`F2|njhp|v zJT+&dNd04HUL;257x#NrAtp`MJa}eL@q1eKWJ62CYN=9I=Xz~QzL1S=KFHTy%~(zX zZg+b!#&bcj4wY(gX{qkIg&93y$xU|m;VtSC)Y?h{FKRm!%zYOfL!z|;_lb1Z?d9cm z^Y!|^r*7%g*x}35P8^3K)2=|7jpE39!TgsUQ<$_9hNGz%AtR2AbRO)wv|)xuQ}x08 zy?-HAT{xzr;tk!2@Ukebux(CVVnA!(3#Fv$Q!HE*qFlscVp>u)Pu}5uOH9{e2CXcH z6pC(l_o+|Wp%cU@*J{$m_GaNFvGNY1>cac?lQL=bO4s%sGAi+uLX^w$-waoI@zY@d zTVHMRu0fdo;!JnbQkcB9Ep|(C@PL^4P}}*B@5L;J4x-ng;i1X1yk=~_qICRk-b@QG z`v{h^6a`5FhtgHLb_v+#>`OKEa}suZ9J<63ajB#;t?V)n1smN_nKH1p{DX*|piRw7 z=Ri|a4`T+Ej}SK_$k%BP$8YjXS_L+POKf6LPH-tmsA95mr|=}DZD&p6alZeDR1hAV z#@x+bvB1TB6!h}cWJZ56X~Tu@by{UeqUbvPw+foVr{pZu*BfMeRPrBrk{!y6n)%b} z)GZd)?WV5LV$b?)HuD~e5vrdUxw1K#1vK6>l9lz+cC%8g;fJ$a5<0FcIbSeqH!(P; ziQC;9{CS|+*3>=kAVZb#bH&}=!y`<Bsik@T`GG-{xU==rRO;)|l*m0$DE@KeQ!2kr zwrdDU*p<|N=cs}jh(HK7CG^M^*KH4nC(Rm9@HvKicrhmigpr$7ViAFr=yd2?%Uj0B z<lKgJMh}bgc-+B479#Lv!Q<O^UH^hnI1@1ii<ue?LaN^KSqnT(N>aEw_%s%QFVSgG zm@2V|P+VwWDKSHU>a0GMeuve3=_@I2f)}BM;ZaGnf6}}-CHm}$1uucM=Dq6l!O>}@ z#TM{g@C&(^rTzwYXqBJAQRJ%vN*3a2OXoOFY6+n3lu}{1NL#NlI~PobgTSf|xj_Dm z(3D<ZqU9&rh$IdY3&~Z41D^_2*yLLY9$TauCC(by(V-ES+XZt16Mkw|^8B7<{eAmc zGd!>;#tx}B3ViqQWM96nI`_-%EY-{9<5G+(a1}>>7KRDmub!bBxYk)W+2j5+w_}uR zznNMp7&5^~J3Q+VGZogCtXXEq2ZRjG5Us09Y{{7)`CqJ@+^|8GM5fr5%40IA|IuOJ z*I8nvZU`#m6s665OAl)inEpD4dCRed{KEn6RZ6A`2cFiB1j3bhQ%Mj|lbOf0LoSOR zj`M~rh%F8HNp%2kTg!_v$1D^sF%zNC5cFb?L3M)a1pa6<S&-g!=nG}p9BuJr!Uh1) z3IQ>UP)Y?HAwnU%N)sGOaV9G$g>>G$xb94dopJe`?c$dZZaK$8miV(SU*x^N=ZlQF zEgn|xLcY=8K;{Ryf(#P$sC5g6#kKlbjg2>tDG|t$uxIsE4&q+JfqtJQjt3b-YV-(2 z>Rj&2(_SVY@HR5>gM^JA2YOjDSIO8v#+x-SYzmf6kl%Abx_fA<)D)UO_Ds5o-VVn0 z2hB;qb!c?X6opXK*1X`_{uIZzrRu?7s6o_<^ar0%iOKt6<Be=8b9y*STj4u5DTETq z9`eAs3h~tV3x$l~0)bDSM3MTL>+Tb5AA+1#cr5_|yT>*R9wD=|@<oDc`8k}~3iZ1u zkaty$uUx6%i(qBXMkmrc6C(&pX#cIzl-E!{1fNhJztu{mdn$9Q<MZD4?5kf4^pXjN zCQVJG)?=)OR=NwrlH(_;z8aSL7zSw=@zlY}f?N&MIypvDtyWHV&#wcVs<S*QyR^UK zBo%m%4PY|sfe;K>G4xQ?u7y)iK=WZIZ~=F_`&Xq*ZyB{L#^5Up;YlY>bnuo0xKiwk zY&m<Z<OGlogCVp;Q3<*}rGSjtf+lYzk+C0wh#oYE{&tc<TAjMm$zicF>)BS_9G$({ zKZh<pRYhR+UefrczoQPo*vn-$6K_9~ldu9VM6nKeVecwj@hNFg3pOb{yNrwfqO<oz z8#TlQY%*|$_h)6APwtoIr@e}=nTG9&KhfgN!-6T1M@z>~FWtou7(S4mMBNGtB8OT) z5(BToC;}d~qplIdDD?~sP(uqA?5P_2&RbXiT?@Ht;wqO*x{nR6P+&w!t-b&9zWHV< z!s57k4NEob68N%F>{g5?!}UMu1E)Ftl}JT}qejVuSvk>tTrj=D(~U!2zMw}LsZVYP z3cw@wo($)SL9MCKVT?`lg6R;${U(5=6f`Au(L3N?C@~qh5rB>b&#zjgPeMe&SBmK{ z*v)~7*1Eqn%$yPG{-D7GXf%JA2wjq`^)$O1nKt2-R!xwIi-CENQjCCv?RvZCPKz47 zq`RjpFyJY^s*}@FVX3_ZRprQ8<A1SqRrutmnQ4U|v37F5dQM<)z>`4qBw2g<*?A~2 zx@HmJ`tMBt*N*LHSd}h%ba2!~{tu+QOR7YM6FNBwfB~l*W6@1aH;VFcJIci<mFbV~ z{hwE%GYzysUSUqDSR->^4_YI7^I7tYAd_xfF*uWs70b;0Z$FgY^&X#QR%4hm>ac#= zd~#v##z~7rqa6S8ty-D66pGf#+H#EyjW<?KTue43dnRaApy~qDuh#mhW%BTN&{chP z$?Bip!$=7%#DS-i##4dbOAnoxg70%EtJ26J+hzlI?uz8S9fRj6mO%NZo4kh$q#)E9 zDk-HO@^iGun2}K2!g0fhUd)LcMu{4x+O;pxYOy?+<C@EOGms@!EJg_VU?dT}iyyn& zRr}3~cwu^57>x>cbK-W8UFxvQ{cl}v0O`0a4AnFa!9I{GytG9!iocV}cU_$oX#n93 z`D3Y_qHh$Ctjvx%Jh}*ZTvFZ$Ap-8H$|4B|%Z)-BF|GT~9Zgwxn-@{4CRDia{e)AX z!p0_C@qj@~%T9HH6Akb(NYU#f&nG?tNPgYEYWaA`d7p))SwpPOTmB)FOcZ>#%TUyR z>D?9gO${w_^50Be@SAU=Qo?=C+E1R;F-(=GY|9i93Cx?iT`U=(<8V8p6297DC%X_H zBXJheT)RAmTB#R(gWQ0<zg-RQ7MpUly*peOAtt^3hbfV*<8C}8Xy3cOkSB1cb}QjQ zBmHKAUsDUdQut+l4Y<R>`{k;5Mzhfmk1M5J7ORqBraAtZ*3Qo{@VCY5RK5V=Awp)X z8G7Gbx!NvQT#;>jNSQG&oSBmsweR*8QSPkGhQdJ66#NrIcf?J#oy-0($V}S=d)Yxr zFV-%kz{9u+0DGIm!UTnyVcul?zZ-deqcWvzm{6X5`++MSg9yu7ZzgB$EQAvB{4(uG z72%lp<PCp9&-t052VeV;!^NpD;N-3)V}INB<t1)Yt;x~Ku5vxr06Ozyqy|8b6@J`t ze>7I6D-eP+2;Fai9sQ+{JVX)K^Bqs$uI^_H@%&@qEPaCx)*}2NT$T-3e!i7o0s=oE z)F}DHZUn~p2i!-E*{YcY<ON5tLpMwc!h_;`3#PyC?<o+&-ceUCgN{w9(W1NaGO<cC z;{agRiKo{$R{?2Wk@2zJT=80ozfW^RrFTSnwN%O;(H%f4bA%1u7uNX&JYve*_+7gv z*QdY7ASlUs58^<Eg}9B1=m!d!6HUUruK5Uf9H7g<#lu$M5fuhQyMmA-pWp{@$>BNT z`>-EuQfU=Z|9H@GW3C}q^gj6JCG9>8j;O4*>SSiZZZZV3!F+ONn47B$l)7$HNG-AJ zoImZTZNd~<tUXxHTS4RK?#Cv-$Mt9wy#Oc0w_=IXzo>`|HNk=#BHI;yDLob~^@H!C zM=Om8wXuJq#P(q$7jrS%=(qFij<cW;d?JF$rp2!3?r)9|uuBhB<}f}+!`13UyA+z> zW{xwrMBXy&A9CwfBx(E5$Vzi5s_bxsv!0Jc@PKp%(;axBxFuIWB(H(zmI@Hxdj?5_ z($hJQUTcI9`}r(eD!Ez!kj7f_=Qf*3e*@}&kj3x#USuezWDt8N;r^ZM62@-OVkPsw z5moK|0m%_o#QDg#h`@Z*B?!rWGIYRy$a6AOJe~1z)L(?V-{@&=JnLX@V&{SU?SB^| z^&!`ih#ZnS*Ig&iZY>SJ>|js>n(CiOTre>)@O)ftB_JJIU>v8O0T|6rS0<%9{Pmb4 znYx#=FuRWHV2?E`_|Px$SnF(;*i>zh-_*XfU}RF9WzSLIC!!rvu;TolyZJ~ajkvnH zy6${G9D{rA?Qds?QYure`_M5Jh#^*D=Xcq2-)g`nO{K?<bp0U_CiNe~f`+u203YM9 z#1E9ITY-XYuSE17nPIv;f_-{i?BR%W*FsOggIwQxPw@5FGbReOfWSq7q|f`{jI1p$ zeh|zaQ|@#{iD_Ja&2wDMIt76aE%zoqe^dDVYP&`qxXV57@q4Yx)$+@x>~d0hm7??6 z!JuhcMWvuXQEr8+sB&c73&`e8xWVK<DnV6pf?XqT=Bg0~xJ%0;F4^yynqdU{oW&nW z%!Nz}(d7i{RAjB;e3u_>!!?mJ$a}WcB>Vv!I2=Tq2zhc6N1Ni%DlQm&OvKD~<s|Ur zXQHn@mZ;ACo_tN3LKA2cjmA^^Z^$<sS0&~Zdx092KB%`OGtY5^97W4b40JnXyomj8 zhIwkUe(sD$OC5vElF#74&m@ISx`P|HRR3bB?#thcy@X?pmZ-`bFFR{ErEia;XRcwW zZ)lLQfsAhu^t71M(fdFcVN}vC6BD+kK7!EaUNv)PN95P)`7725@BKJZC+OkMos{T% zE)9OHoC@&nOuJXlcGP(%ePIl3`q^ke2f2KTt|k}^@KejszdtHYB6*h9kXBt2NX*L2 z^y@Lflj;3WYv)T&PfSBZ9m7VxKm}n)QpYY05vLtQ3sTr~-ovV?Vt3KclycQ~=*QLP z1H4SVUrt16;j}Z}2q^He8zW*>Pbg{FVWf-<UW<$g+@z{SP7ni9X?-6vJ~68`&1&XQ zhzNHN@^bY2#VOjb&*2W{N$=~jC^N{M!n+vbqzq6~U=`4^%^PSodt=ZY=9mARKI2@0 z=_akzh0R#L^ugtWVkcTgwbbyh6c*=_2LKs_)BQ;Brk&s&<>!Y2<#C1yc(gB+!Ku1< zWq)8_V+YAB<!1DK+Qa&VB5X&g=|rfr@qUgmQA)+g`f!BJFkXo`7<^l(P>C#;O(f6& zGoHZ-mwZl$dDhxY$lHPr*{)G7EiH(beCJpnz#_+G6r;)phVuupW>2t7A`sGMOn<Xf zjDoxHXG^lorGLqxfGFv;J{$`(wc=<h8A^MCy8156-`}hLfDo2r`V7&YY}O_3=Apd( z-NxJ9<?F?Fm-nRi*R0wu;inzKKHGW{TT1O2F+jlEZ9as|B<OL!>!S0tG|NPC?ebZa zIk&4eZe&EhCD{YNeJC6Ey{hq)R$U&lEfD`c1`WO?8%ho^B0qtTh$dKnZ_5YG95;t& zf9{>BxgOM9V{n3xyV51(XAgYbeEFspe1n^f)OdQ<aEe|pM!E&v^Ou-OC3=ig^Jd#w zc5nX!O_>{LN2blkEK7d(F{#W-MH=1jlj?6`jc0YMKrQ_Rrs^EwbrryMiE1x8>OiiQ z4qu89#R#%DK?S#W^&`tm|7AcDGp0@OEsi8i=k1VxP3zrHl^*?F{2evE9=ox;tBln= zTa|^n6<>^|&#GIMM{=6^lL4LE?5TIeAK&#W&xf2j7$#Qn5_;~pv4?GiAs!#}sL`K4 zBhzmlu6IA2IIUn410ww$mxw)<)Za|7#enL|#g9l|o2<`zN$C_|9*h2p5==m4*|icD zW)x`ND(D5@BTv!c8g!NFn59%Fjg5@lBCbF#*cK0nLr?q)&yV@<k0R&6XMeZ?c8E~> zxre$n{J5ydoego6sfY<uEw`V-v?tP7FmKFV+KrEqDZ{Y{fTCUKZuZ|x2>ChoeH&UE zfe)e(Z==RY${_rA;@M2iaqq6X5X`{6;h0^CtxJRM#ueSJ-Wz}8PwEHx7=sSF#JI>T zjSe0r0u3F>IcnxG6OFSxBUjiOQ<b8%*o4&bD$Xu@IizGt0K#m0hHGdDIIeG-rUIQ+ zo(&Mw>_9{xV^4?SIb>3v+jO2P{9%k>hvYq-85~cR*QhLuW*;%bB%hG(5Dz=C%TS%# z=<E|UmybvqyGgP{T6&?_#H!F_(L3=;l(9;j^t$S(>>-(t6>3)Xbw;m0vGCzKoXVF| z*!S*Q|23;3td6Sw$X;p}IkMnzs?M(W&o+}j_YVz&KZTxe9XMzp){NIHwCto%rIF%p zVd&m}CAhX|a_0K^@aQjFs`gmGJFfeXCxQmo>Ej|vb@zc%&Gcby+in))A@a)NA_1z( zXKxskgwx{_>-KO;X-e7<G+Jk<rX-lX^z8nbQF8P0{u=o*=)UWlulJJo^LZOw|M6V8 zso!y_cNbY?Ay%le^vyZ8=$5?<e0lVRG9DTRh5$8}CJ{;&7V0){iLE?K2HM0=NnE{H z=|2E~?&N#r@7D}X47p-m6aUvt3x^uUW}=-aJEnUB2<~R%E?*}1@5XD}Js}Kwz%K*a z0%|&*V4dZ(53VQkOt3i*XYz4re_6&lloA8{F4mj}4rKu8FN;38dV3+wtQ|V|HZ$rz zA%9Fp&PM-V3&09$0e@e%)kywXp@A6Z2)-eqmn2kl_;&n`<w(bulA<a#n$buG08GhS z`5oIrb!~-%9ctaEM4I3S<GF{!HHNd`u=7uMN~tYoww%)w5g)0D7mPgPbe$D;v=om8 z6B%ucRe^(|5arjE(0$NlXe7*(NCAJ=Dtb0q_%oDs=c&!i%*;7%;{sq5q;QFlB>77J znpW>J(7GJKeh<|u5^N8i*(s)#taDJJqVR*?8n+6r1v#s~<NhhF8UzYEVJm!RPHba^ zk(Aabn9cU@Mjy+q`Vy7j+?l;#LVn?~rALA9Rb}%9c(^xaxbd8K{~rmfZ(=a$0@Wl{ zx8fSFzF4kRO?GZG?#CT1_5N$&?|b~+(zoB+U@yrgiU2=gWS6lPB4@`+rt(}Y_Eb#q zeoe8tv7tJL_Z4tdUs518CZNfYvNT=6Bb_L9fkfvhk!Z8=X!JghmG!;;SB931bC)Q< zRzz^uy#D=qaEG?X(^q&Z&cdO(_fq?-SN9(7Ith$~lrRF<z7MePVU|VR(k=%z^R?qt zo&O+n<x7ABshPh&DO92WF?x=$<Pwah*%V`P#37Kb5(>t(v+30GY<upVQjn0*@X3q% z3Q#|py)x*C%puT62&e1-;gt`oYr2@=QHrztZv)JTKI%luZ8y5Df`RPUIC{q*2WQRU zipd}2Gn<gCuOv2LxMel(GYrs+g<UoifW21FZkZ|t*?C@jT>o%zMk6Mk^||`b9?-<P z-C3)HIu1fAcH~T2x~@pXZmcNnxn7y_Y#FB7n`52igCvqUOhcihk;bm1g|=5B&ChFp z<_n()t)j>F;7Lqg0&#HTKR^|3i0IDVvB+zH#Q9bA(eq{+iz-wiFJ5_TM)-9$nHEK( zv=GOA-{bU$*7^xAkT0#=K>JJG0q!pyZPP0hozi5200LQo5&8I9)Q2r3);BL26$muO zkwKNQRJIt~Iv$xSmG;<ENIz3XBYaZVWG$<T8Vi*QOV(}xQI?8TQjy-sE4(`Hs(z~Z znvZJ=6aH0q&NU@m1ejnF`1)&X_w-z6FVmjc^Ofh9&r_wu@itT5!>Upi`}=bK>*`eC z!CbC4X;}t=&4(@hU0(^({)gMM<tDw3P~0PwJNL9d^}m?Rv(OGbbWo5IyX$<2nTpb{ zxD5r+1u`O5spe%EKaPC8fG->4!klvkOf)uvZjI!)2UI%coGY*pqIJ0sGDa#ak%Adz zTlw8KeBSt<I<6^c-A9^AtM70hUc!8bJb4=1jw43e!U%~AIFUPIrvWru>=`7G2B^{H ztChqu?AqJ_1@V*>e`9mPevETw5!T<5qcI{>1Ay!HAcAKL4@}5Uz@N5N>(2mm$Zk=x ztrI!xUw({sOxbA@w?k^x*B+ekG8%w^9<|CxnY*E8QCR=u`oMQ2f3z;<3u2l=1I*|y zHFTY7EHgu$w)GpM!!esYv5u9~RvLdHkV=h#vBQ&kngcXtLhg~o<8R*<>CCaGyg`W~ zU6fs>pv>x6@lV_tc@H>%Uk^EK^!~opM5ABN1~q0|=f&iSIn5vU-DSW}+rvwZRNBb4 zYy$V9SF8<QZq_jsG-VKy8?D_47Vmc@`$;>~m*K!DF6_c*F@>g@^B^F@>HQi$Vu*xN zwPv-iGJwbpLC?8ali6M->1E5Jx|+qLlJ?W{A`vLrKHY_)7tv9#Hg8CDe3O?`C|FZk zhe`<?eptANoua#1A*$+^{+DeGb!M6AcNUF%C-2RVG&0-t8@lRv%3dvIrH|7FilzD@ ztVK9(gH*G~k4?pS+ji}qAAEL+C<=skibIi<1riyi)%ZBo5-2-UQa&l=?sl?A9y}C7 zaJNUURK-{D`NtkuzLr#;3Q(3Y<4jND?Nj<k3d=Dn4Oc`;v=TFLyRG0OL|o~Xc#lI4 z_b0NNSRLFWNa4)hvBB2@OqSaM{{o_}O%@F7lXOl=x>Ir4Fg6`H?5=GA>AXx5VVc5s zQAxkTdXwNLw<pL47Dx;nBORdqMupmGK6uUP?!lPQyj~5<p<BXP9Up&_$%otDAnDm9 z)_@XTamCV>*<WJgUH}v{67_FgaXzVEsZ>-#+!>ddB6ZBPmw-f{Di-&}l(bRwHkggl z0tVsSJkAWzeNx)fW~w9K>=rac&^~<Xy38z|#^Z>UWacGFQtJu&H{9UG+V>l&aGSbP z(j;$xZ2jFADwF#g2*C+OeIbVHJz3k<qIRylun1gUTjL2eh|Cdv9lI9dko*1GYlIU; z<FCpKFPl-g4AA2fypBd*qZy=6@gL3+*ev4DO_cp7riPXW{G_N)4~OS#o`K(3p$WtB zA(AH$uZwm!LCo!YuAW~5?9Z^n#DLHlt+1prfg+3>J=Cx8p1!giDPN_(sK^An(O{rd zeVY93$Sf*OMaXQyT6*FoWjvYimq&1%zeFYhCHYhNk)i;hsxGXNc346Yylm%S1RA01 zxuJ=Pv%0$l;B4dV@%^>*{ox@P2HXbvyJZVfO-)zio6Mo;fU|!4+`1$WYl=gVes6+R zbHR+n^B%>ER}h0zz(lxJPXj<ITJTUO?(gD*3)DQ^>Q<gWabqWg6apBbEomJz$!NCf zL*Km;m2H;Ymq^z5YwL4dq~PipQAN%_)n$ltk>_L6MJZaBP?=8-UB4VQnGt;X?1ry2 z$xx;amy1#S$iLzF62TF$jb{2V_`@Y1>bhBhXzeFxF|Z_t`QBKa7mGD&_X+7za*0ed z*1VZ<0@pnb$;`KgJee`Rrhf-WiJFPh`!3V}hXwtQ_jQ3kPb)H?E4*HoVpq<G>ZHRm z<8<9`v-^RBE_7{NQ`1{#zJ3$!9N#A*HNnVp<{_1mZir$FuXMiZjAMeMsYn3D`*PQ` zLN8&Bt(neIk5W8vrsn5!+&ni4U6~EPoL|>lo|o$5@zk=1Ur|67As5lpAisSsXIc4N z3?+WmFN)dU#;s{iWB%=RGZm)-MAW%CIcFplV|>wg!W2qpc|IxHl{SJH%+;OiNbVGT zsKm&fey+CznHjp>tn{4mZ^enTa7&{GO@B>fac~fgI<2TU0np_vUR)1e5H6y?BOgB# zhOM-a#5Eb|-^!5Q4<M|x0o7kS6p7XK;@tz`C+~(hQT|yrx!s{C8nMJuPu;RksFT7g zs=QJnN7E|4sIHB^JoPsXSJbNXydr-3T(D$8EHgwZ1hZ&h+UqGe#T_6PIYh-y1ihTh z<rVji3jcy!tgH|`-qJPQfN<6N)~nu`R)5~ly$$s;4R3-+4QQC$HpYr)juv!HM>780 z2L`yxvox}v&R2dyMu5Voij|`dkHcxuk*84NuC&HpC%e1$RK8enlgc6{=&C;<Fbt|F zGX#+&sO5@!I0m-NId_!C<=70k<Ftm1Vt<|KQVT~_20WyRz0M^C?a}Dj5?hC-cWA2{ zYSjAuL`Z;<Ds9g3QFrLqy%R?{A#Q<<PxYoHQ(_HvHglC>Vw^*7C#Orfxu&B_CE_xS zzd-;t(p3InbgxN|%x#9R)lf1=8W*C3kLOJPj#r^D?t$3e1ebu@Oqwt|vWIZUt4B}n zQ>t!_)Pxqzi8x2+KQ>S0s4^5&q5fA&h-R|Z=eJQCppK0Lb$Z3acr|BSuYb2d0sNZe z?2`)G(N6YN23K=l5Bxk2Flh&45*3e<V8C5S!$GA0HT3)iTz~^LCp_UfM(nosus#As z_M6oeo@s-_Me3E}E}Z}n)|!~ppXAj(yq+0XA8arj$Fx7?lHIhIYoTO5?m-aMnsfj- z8Lw;R{*`qC%4rVgmocdtG6p6%XlvkUUD)(WPa(a(C7JZqU0=Rda|9lEh;?mELU)U- zfaEi{lT)af0UoA~MOt#JT|7~iW(VCYmbn&}(b7B}`Wcg|;b(WH=ujsUM|K?@9ZT$T ztd?VN85~z-t%LttP1@EJGr9vAkYRZMPywCVcYzt@%_XnujJJ7`M%KRW_05y}P4{O^ zY4d)OweYs~6D4gg!Vp%DFmO2<?E7|`sNc?T1Lalq<Ap3;xIxxCE2-J#M5)Y$C0w-| z^ly2+r{%-`G>i}W@G!Xm5}b)fW&nABsR7*utmWn9b|(U=UF-BZ==<N?!G^G=48Pr{ zZehZ86tg(9Ku`U{k`H&c%w|UTQStCgUNawtY5EayQSL%V*Cd0m4VXMF(IdA~Zb9Y0 zP*0qg=(MT&cU@~}pP;(yLC-S^bm1!_lF5d#TO(waDR;nCz-Hr@iua@MJChu#SKN}m zzzdI5(sL<TfKlThQ8UO-wyaX)As$u*P~X$DJ`6(wXJ(D2l!Ck37;DFL{d)ZK*UT4w z^<L~yqmto2p+c{55V`|Hl8?p2;t~Dy^x!-kcoCzz_Y7cw8i?8gq0|aI!7&X|MFdRt zJupc6a-+NYsiazZdEt-K*3c@Hq^~=-ExvpN4<=*@jyr*kCB|y^+Kio6R+y2xdXImi zYOzq+1EGn?$0o%3`7eKM+NlL>*_e+<T3-9*H~_Xa0B?6EY>~5RZ!i4~i<RLKUeb=q z??q&g27tN&Otjd0Td<!8yA16uH!#Um*uy!{t8~>_u+&^Z8qc0H*JRL(=vtznCR(T3 zN?)^zXQG%={0`s3NE?!!0x&ChU-67HzMN6V<uhSqzm?o`d23WhVV=a^F~WeFU~DsP zk18kuNhs6V;m1W<jEQ41oHGaIw8kbG@yt0?$cY9i6!7QXU31QGXUGKDWhGE%JX(4i z?FEI}QOkPBH9RD+iM6<M(C34ZC`E_VkqV@#z)Ace4;_(tw4a4~S2E00CH5f`kqBv1 zz%OPZeERFsPC-Sq7Po|HM!MfhGR;K7A>5T<_=D<vR7)gd67#(3!@?TCLZ=)O8^>)e z@LeppR{_Hr9sG3QpXND6dG#D-&Q@+UuvRI!r!|C8Hem4E@f+{o58z(i_usX=ebxwc zC&Aj*fU8t9z*AKTAGsNsDS5|%c<iEB-h|8snWX$*22M>T&O7oo4;?yV3${Mr&slx< zb-m4_&d~H1Wv?TWR-ST#d2g4DE&js=PEVO?1CyWrJr0PRCfh$gXExz!+~@GQMvS+@ zif6r(_-DMMZs->v00Oqc#1d#3siad5{oeGO7Xj~2_d)lFuJ1IXqc;KmoNE`D<Uv=x zIxIz5WDW8;WxLnegJIvhetA$}t9RCtMw(YI42G5HKMmeP3GQa}Hs|ve;?HqSuJ3uF z08&!YzqoljcHJuJj^iV{9q267A7`29`$Po~LKIN8b&uX<(PJSDtZ}&tTjaYzw6RnA zQnqH$q!AFt5}{;x&3}%wb!Uj%nsZALCtfDLYziIy7+m6RxOp^jr$Cg2QwV74`mo|O zqR?1#{W_2Wo9`c7B24(P2Hy7FpVoEzma9eekA%epKIOPqY;+h<7c*#TC}peDIn%10 z)C9fpU1W+T6iaZzE|+@$6U2?tKoT>eG2BgUXVEZITRwx<4(rJh%^W>5ic(!Cgz&bg zf@zt`=r)U^EP!AiN2;GzIss<|qz^2+jqn*o20)WGJVj<dfAc;<1Qa%KUbQ{J(Y9UY zr0WPLEM{U>s}4s}U|TPR<iJ5Y=6AXt6kFvx0Ff5T>uN9sb+fSD(S#IbXs!lx8J_km zy~K}QvMn-<9+R$!44GogY+Gw5z9wDkz0i5)1rkoPJ%B{vxN-7$uHxc1_aWem#|hPZ zK^qggD8Jd~C+-68ylj&9vrW4rwM)NOEA|I^&F6U=QGbyYfcD?IbaD(is5GIkwXu8c zl)5SO`=)*-)L}ehn_gxos=&F94adooh>SgZnDATa{bK6<3~KS1k~K%3Gq};7dDZU@ zrU5pWkA$9XdPK=<uWn3}Q2!IG!-?R>P-e)BR(nar>U0}K=TGCj3Plk-g5`*%Muv4S zqM1wT-rYk^Dw4Nz%4i5RscY-$>FMZ*aqVV|)v4a^yf7qx3u!v!(0WB{$^GO-xF~B4 zoofZxD}w}MF}?`p4w&@|zS{Dn%26;0Wp~q-q7Pwl`Qgd<z(`;fz>&*gd=)W5j{aC2 zzmPmE>&8zWNBNPG18N^;V`*j`7!jJe*nwwLWIaeGEBizfKSEe`SJ3`#bJTHLCNu$d zmDBhMF&pSKM*>&S+c6p5OYqRELo%#v8szjhP1d7k5B4n1qp=|0Iy3ww;H)=Vra|1* zY%t2r7}CgaGiGoMhpv9MqR|qtScUl~Ih2a(#DI{4fy}*=N+P%yJ~b*Si-r4Fj6vbl zea~g!Z?v^$1SqkbJh>Ihv4r=K%|0fWA<uu_n%#a2gT6;SE(MFc+6rcrmV^Q&U4h_G z?z)a<<ysEXg3MP;fN#ouRPpbLEQ-evBm)gg6%XOKqIS<?ob(7-tTHolhVn3+31H7m zHc?fJxAEoVGx?EMmpRdy(Bl%pzm1m3`xk60+bvC!i|-3jOKH@pn4EWPwfiH>ibjlM z*%}}Cfd_lyOf6$5GSDMVe^SJ_BQSXj)X!>~e*8iD6&LX120-|Tda`Hw*yaXIn<Cd2 ze{eS^pLu$EvgIj?mdmu#%OJ)b3)n1&UvqAY>yZvs;vq?3{GfbD=bs1Bo@h5p)f&GK zSZ%C?<+={8FyX)sNro9|l185&t|q%RvXQcgB}6Y973U?I=xAJvr)6nIf#pFIS1Eph zI{(7y&_C?v>H`?2$4NjFaZ@rs4k(vSBnaAIynnye<Q@=6;CLt_Af`(cM)fzAXod|` zEFJsM<)4g~df7YJxI@AkHs-wvF)?&%LaQwExYVxAcrYDqq!z}LZxb$kAi_CIEq1zp z&@*}jeQLdVB*zjC%qDZniq3&G?nYl0S&haSiFKMaQ8|{7gH&axYuotZUW!}DlXjP; za!rj5PP~MV-gsge**G{T#Dc!FP`T?yQ2B>$I=i^AKw-JAK}}ta`HaPopaDX<uH@bF z0$|Jcm+a_#bdEcFyT({Jd*oj_-(C)7rQTFSl4EvhdaA!_gw_T2dExduXF?6A#qcnI zm$cxQKH%BIW5VV`g1$+)Ak?nT8MFkIB-vfe%V^pDYCSJ4EuFCqHz@MyXN*0X2hoM; z!qSg08}M*(NHVE(>1R@A!PBA6rBv?Fim<9a6h;kx3imbW;8I0iwy0lM@7qr+)W`^B z1+ov!)57y3_G|f{eA^sMxqeZqldnuqS4d4<`@_gA$mCVsT>pa+{Rc6cA+J)8P>q&U zb4#r-$*V_I&oBLF!tZ|%h0hMZ!6>S|Y~qfYIJ{S*%WZ(xGk0U`b?Ab(&1EAfhl)*K zf8~?Oet(oIu`074{T+&cDe_nS)}7C(?gPG3p{3|ms008!Q%WYTe&h3C`00-I*SL3u zYz2Ym2W8daaWE0P%|Ho6sf=>|B(IW`n%&es0RMH{c6WAh2y<g8mYPc009mus)Mp!k z);p~amv|3YM`?W%*tcNcvg)+jidLzbD>`Qv(U>mCkBY3bn}2H+{7(Z7{Tx{FGp_8E zfHaCXQ<DApQ$`>UGn^}LpdzfSB%UCcDLL+QmV6iFMjNWrE(xg!gl1=Tbr$bu1s!J* zET8AUHU;Y#j}Y*mKfsY-MEz+{NR`&WgT!3=r{5=C_$q#qXjj%p+Uw&Gu}vn7KrqWH zPG5c3K3w`va<1LrMe_%PHRgLN5;!JSC(aJG`bPC|hb~`1*WSYe*Fr)CYRD&3$uMcV zJvshJ$j9FEFwQjPRWb{7`+S8~v&G+Y9g<O+XR*q-=Df;R_DF*U+&48dILnMT8;_wH zgKl^bYRmB1qaO|(O^1p5%6}c;q@T|A5(3N&3G!@IKZs?k4)4VgYwMJUCQ8?D%N2Ce zt`(2baa7G(EQmK@n`~9%<q@7<LK7(V%uW{#U7R+C%E;RDmwoIau*~)-7h+BaKBo>? zTY|ZQf30)QfoZK=g$9EKbKr>*W%a7`^)j(2#TiR^z+p;_Rxn2(j#L5Jt<z5D>UDyp zWs9%-Z&BMmFHg(2O6!xFZM#CP+iL^OqdL_Q9fhN{2VO1FBGFf9U!;ijq0}MmDoMO5 zxgpA6!6L*oL!nX@t`>x>E|MPdr|N>XD5t-<zb|E|e-2K5CjY>M`A5iTUVgOn=FIu| zbFZd7Cy~07i(~%V-}1UTlr6&GYeGUyCZeC+4U;?0P^fb5z1sMrd$b933!2LN5w_J? zYo)>so=Gf990~qX@)gMc`zcp-6*J(QLKHSs2#iSBSEV5gL9nZU%n}TJu$LDl0yWsT z=FO0hLgz4gw%^=9r*o*+_sDydA+aW+^hdiagb#e`2UR}r>@CdMboQ83FQh_k^{T1x zk2&hh1JAwrWp+SF_a0SnZs$5Xpr8_b0Pz7K5?GJuy6GfdiXL1eB!pDyR#wrDdQNNQ z9cF6l$hG|damf3wGtS6eiqR2ijL9<Z4Nq)Bor^EJ2Bc=4Hx&B`*I~GK$@bRT#r-AZ zD!l5}mG(Nt6b=p!zYUj~rR;-W<boeQQanF|0OsHxo!DBCvm-H=(KlZ&g4ufN$8SX- zt;S1DWQO1?kec3LD_IR*?~QK?DY>azpeP5<Usg*lU;>AuWAF8wzoEvkF*;t6bfDk7 zCj$l2y`Q@^=!PFUN3v!4fPxOb_C1GS26Li@u5>pt7X}PS@_2-^$BX&;x|_6)Mbo%V zU9gguX<!o&VcV+qe`nTHU}9TEBv_JxL0l7q#toofgI|N*hbZ2z5=89INHiaQZ@#F! zF+!C&2ohTzCYgt?Z`1cZ-HbxHt(Sgzhp9K1k-dd@sw0>~GXflzZL2Ne^=xtDlsHNG zBwyOxq*bdyZprbV3AH@HXpuS|5s%qFxNAS;?o?Km%?rbV2h8eqsSe84!HE52Z5yE$ zrD8--i_Rgtk<p2_P)%lixYIHV%Y<U3fNJ_;qSJEb-B!;R$rMw8;5>Mw(F86aMq6v^ z^n6(W9(u)yTYPM{WVAry5NG@@5q_7CqVPz)x<X`<i)zzHAZH}{ZSASZ@yDxJHbk*J z!rDV@q46%LzR1BrY3wr((4^DTmy?LV!44<Ms-yolE0bX&m54ago>~Su7WDauU>i2r z&bJD<<71FuYcTMO)|u#+!5?(l<QWZ>^ZqhpIllgF-T_G%?IY8O%Odirsc-3TSC~QX zexC1X-IqSVe34-D$|Ym{i^sePmIL>;h|A}S3$@<hM6-5IYFNA_FEYpsNr~o{&A_Bf zq(qA$^o4i*t+#Qq_vR;83a5-G%nVvAXUr?hPwW*gmZHh7%!kpp%*MFX0&#$1Eetlx z><p-wp>7FkQ1HL#I4ol9+)WgAUSZmY@^Y}tC~2-xOUh|Y4Kz?AW3hNfKtXf!)}Ut8 z3pmlbQj=-9kj!ZrMJ`;^a<~$-m3BNbfTHn!{gDCI{4-bGw=oIW`<-i;Fc1ZGwp;q( zsr(gKinmJqDjqldYTs!GkN^XaI0hsRa{hLQ$Wq4MNeqv~5uy}!*0PAN0yf3&o)qgo z;mP!ELQ=wSCw)Ndv7ZHiMHNtUxIDJtmkZ#<+_9(8(g-jZShvS<*vv<cO^^F^&bZzD z18Z)6`0PU*%$%iw8Fe;tBg*paV5}BF_=My2N2r&T;krQV%F%!N5;H0c>K5z2FXE(q zMH1r9Fl4Y6<48a$js4hW6I;~ZJ8~G3nq!IMdgStuHXR`=S}54y?l>_q@w;oj*#Uys zeo_0#<`PIMgKQ0J3z)hMx3cp6+4eqj2Yz!{e;3H#lbNAFpE6ww*nPckHpCXJN_e39 zO!NK6XqHBer-Ohg8APEeVE5*qW?M}<Ett0tPkdoH7~oB*wD^OatLbLB{aPJ=<iPLU zbD;YdpYoE&$QXsbcrzTg%e5(#;~192CN(lFX7q!4=bigr|9$h-DcsvNeakT2b~!$^ zne413lo@aZsm?Yp#KLZ7X&MZU-wt|_u`0Q&dP9?@^3b5EPpir(VK^x9tfK6_3SOZd zA2+TrZ*FV?j#4+L>p>lqNSrIAS@8Sb2yHUHT7?ZT&faj~-=8E|tn{%UF>KIEtaM-+ zG~bL?&y7a4=@NAR(y)-hhz?qk3HAU&@($?~QV$;+EFcA{r0qh4E{=|rB6wqQ{ozyX zNff719z$7_9K<c%$v$`U!gjtt%!GSX_wve9^KFTee~Uj2IQ#Yipx3YtbE3t<>7Go; z%ra==(?qD|d7{HXa>#(vVd@)T$DfrobUMG5cuMs?ZU@d5-K<KSD6%EiXCWcMv=18X zas|zEdOe5IjkoLXhwRSHhBc)oOZNfUIwDAAeleQNYYi&kJpS*S(MD7m|AvlqrkrH3 z$Jnl_g&3p7`U;;j|9tzdFOm4oo*t|rKcm-eW-ymqMGcq>JG91uq#J!F|9V>CB1KOS zX~dZEANQ$&cO9WO&wHW&5%0yGV$o~qZOZiB>*Wd>9k^uY3MbyT>C(2s!tw?^)q-Do zmrnl)oqMy4--2R`pu#^%lePBd#>O>NIQM?RL|k~7be#ThS!9p24n0y>Zd5qZf3%yE zAHeo1fNY(skM<!FGQ*jweqaLkxmsN~@L#CDE-4L~{O083;-Ky5>`W=f0L|kn5F>|Z zj#HvH&%T}qZ3)48=2-!t2^&?kxNA54aF~GprM|a2gUjfYs*!RfBgACdFcvxOK%4=t zspyDQIt5|Ze~H+&`_4YpFI%K>SGlmTmT=<4%KelEc~%ju&5OG}tbj@5_CI!VwWnA5 zVD@ZRF((MFMtGLA&-AJI*qguzjaSv``DDuGc2BIe-W)V3u8ho)rrb*dZ)oP>R|gvA z#uv3Nd@8?iyFsTlBDnw80-#6H8v!8G%wW5arI<s*)1ctz7^uPURqP-6=KX`GfiZ@y z;&*)?^PeY8qim!?dClXl<8LpT`m%*Oa7Be2UlV_7%lV!VYR%^>{En<zphh2w?`qUc z@ZZPmVT@JEYJ;Yppuar6dK;UK2R~K!!2<fOlHOw)USCE&Kw8+SRPzPfT00x(Pe0$6 z*`4^A5IsphQ`H#8w-w;xdg$7!$d!{*0Pr@pEs;dCE9>D7b#;;W>ST;-w(KhW=SU&> z*jAbR65wwu00IAhtU*VZa$y5oHwUFzra`_=z6$9G{c%O=ii8LRgJ}kpEg9s>A2}X> z+)sY#of8;gC4TrX?xQJoaPs=1!2I`V!;t51nDCV&LN4yV4ajs!(J6cc!~mnduY_P) z1Y1YnJct6dI5L)gj(?t#PwpuhF|EHdKBX?w5Ixis!3CvK@MLOFot>N(CaV@E1>JU} zZ@GDDphqK~Z|aqT;lD$%TC=ckvV{biYH1a6#Ao!tw<wOR#gc>?UqyYN|Bt4#V2iSi zw(t<rNOyM#NK2=njDR!}(%nc%=O9W73|$gKcS|=)cf$}0NOuo&-tV02@DG^xiT&)o z*1ep~DerTJ24=B!=D3@W$#RaP3~G(}_`zR@+^WFC<KiuO9fKYE7%@WJibT64sob1> zTwg_g_TloPnEfu*ckiavT1mzpe7KlBuzlM9RvdJi5D5SuhJK5E8*(Qe`Zj+Ln09t{ z*mBx0dS6rzD_pf^&n5o_T%-yBGO@O^X$Q)du6fvh6ZrZOotW_KLgC}3*lpRE07h;2 z?Z)o&H)gENXv5pyRYD`-$Vcl^hwUv);pdr<jm!m5w;+|mSK&B$#|5HdQ`s4Nr6v(7 zxewZt9&7o(YAK7(ygPQKPnO`N41t$Z;x@l4*dVUeV8I1-xw-WGvfh!@5=N{VPv#wc zE?5|2x2!L(`-GPw{MqETn0<3Ez&2daPw`vh%it{hjAFeCqLL|r#9m-cz1ofbK5ZLQ z^50MFxU6eGig-DN2u4bO_Fm@Y`EKl`s8?*NF29q=rTfp5Ywlo|&$GAYm&bU)Mpf>> z$6L%s4ZRm{XRE~eMJk6oJl=u0J)QaHV{q}=dfltU|Nc5#AFSj3B0RPg;pyOb4kVE` zJ;cjijeVB62PlogYo8^37Z4!+#K(2{aPpLF>z@a{9qPqo5jh7%_S8yA#uQ-NH+!zL z$A5qN>e-7^wg<S-pRUH2VZ5S16X|`{I9x2{p0#J&Jsnog)Kat-gVAjnFMU0${T?O6 z+9>A~`lZJ%%O;)sTr6&3VIlONi5WgU2+*@45A)Vnc$-%R56V4u$LCVq(_bQ*4wm_I z3G|I#s`ed|Om6l58GI&ny=XZ`=xPXX{nX4W@+$^K)Dt}@L<8VP2K!7T84m;IO$P~K z&B}T1CU7@}mQ)Alz_lsB6P{S1kj(T^^6$9$?IFPpAo^e__}o)fPG(<PC5e77uHWx= zJWW0wwykS#-g@ceOfXyL?YM*lG4hOfeS{rEkHOy_r9L$y=W3nJ^KQi-2lSt$T|U#{ zl2o98N|Cq5lLZU^JUI_d=^~*7a*AK~d&bHd`U;HZh*gx&oH`SjF}_ezbg{aajDIs0 zIV$1@fi?g_;Dh#iX{BVIaueFsdpL4+;v;Tz;9^WFg=v8M_$NV_Ji5h#Z*a;uyX+ID z%xP%BVYh9LZxLsd<Z(-19Zy3M{{rf80}kjkFxc99pspgQ>wUQna2c<x{D(c--gLXY zKd9cG0Pc*SN?)4H`34$#M3RvvSe!Q2RQB^zj^xQ+!-{B<b4iMo;KoT-?}rAV!H<}T zry2PD3d3FA=P%|OM(SkyS@X#Qj(O0Kk2K`vOy&oMo+6P^0P<hTC}UDql_T)HHJv|u z^7ljNAM4xatF})4AAV@nc*og-U;JJ4PP92nk@-F@bx)4b^Qrp5)YM0lt85Rm>Yz0) zaQCSBS!nP?b~9#jqL}O%$q7U3;LFZW`?vS|!&(Fl>x+xsb;Z!)xWeFl+s7zXF^dz8 zaS#Pv9*O%!H-BwQ?|YH-v_8BB3|}sRuot@Xt1`WIYHb4epaztu^Kw(&D3g=lHMga? z_obPYMu19s{a{N%7O;8#ta^CSb^gNiemWH}ZLS>617w?3pkS=$xd`l9a{=gHhiI~Q zB%eDs@hP*>0e??U;I%=?qR*V4ZR5MfGsWfe@-E=0e;nze9TG6T<_ylTkvOMQ`0ZXe z0i2=kF$Uy737ppJ4iCK9H1@tbx30WmiI<vgzxZz-JN5fga{P;kRh#fw&`a&>&ONcK zhK;!iyM9ep1NV?>IjrqpzFoD^%U&={>~QZkWU+c5%Pt(Qsm=CL=Qk|CmPN|q5@X80 z#e!Ie`|BnqACm*AHVgB2O_r1sV-Yk5HB|f`4RJ~RO}rJp!D}K+uSqeQv!%|)x*p=R z9JDYfyPE(kRnCFKBs}=4krU59+xtb-a^<8_tzqTI1^YLew8aK5Tq8DtO-MXctGP|3 zDf6WX>sb4v?GujMv@CW-Ut!FTKfdA0t+))3!Il1h=EAH#^aYwpab4`Vf}|PV;WQx7 z={iE|F4LQA5@{=AbT*BBKT%a~r2C_w)lc^bVldvmf9(*MRra?Ai#G~+3OLn+E;8Y( zQuhGO5X<mLs)prBh&Efs|2XH>>bi5Y^9oAIX6@{L#=<>?LuHu4@Qm%mLsj<f&oSXw z_%uJrhdtUQhx$4=gf^<$j{WZbrs9hvi!ZpY%J`c2UWJR3@UR7bx}tne_z!DObu(v; z8@h`yb;KC`M_bvL$o&#$!Yi9am0f0${L3cdW_9ksTWVn->Qjr}K6aNuI0h5sK%#I% z;AbE#0>sqqMGLw5fSP<yQlQJKY7ry-#5|cxO7)}qYbrr9cmCkR2az=2C44@k-XZ$W zf6iuohuHy`&j%wT$DIz~60uwM3V)J)5HFFR@OwU4%u68q=$2wl@zTVp(GUdW%KLmF zTtds)WjY~GE<9r_n8KPX(k#5{d^kn}JudKbn2Aa@Wt`bSe*G-`a^`G_CVbSra)NvU z5Q14nTrZv1kG!|V25)7Yhw^R{;sgHd9CCg_4ypJBS<W;a&i(z%kH_<l@>zl}V#@GU zPe66RH=T{e+HD2i&ysXiq&f$t)yil#ckB*cyX2S&^%VsMt2qWiNd`9I?y3q9<uU&% zHnr1njhxNBBt^NjqpMe?Nb4QbL|96V(@N8@YRth1luY4+!fSK4ky<bB_}0hZv8ehB zPe4(3ET-OoL2RthC8LJR+NeX5y!CGbimy6BI)nDrKp#e{uZ!-hQoYYTp@^cKCt!K0 zccqgt{~s-EK2t6pJ>;OZ8SZzU@P^)Z#Av;)v-SK@@#WK;DMB}+=<}-k5U{5ovTbw8 z82{^`0MPjeGmLPQvbgJqK;vmV3L;*9`;2oHOrc!2;8l|N)sq`vQQ|;3ZdU#&i$V_O zrG$}n_W?YZPW8g}?tm7-n4;@4Qyx-$eR979Bjjc9-N>tUe2vTpNq6KsabTt?>wg?) z^d7i<j|YS=oe3%BBOL6YY7scjbekjB*YiopztzEq9l<Yg6st0^$;^|)PpvzX{AEdA z*1N^H68)x<OzLYKUikuE7FNYY(e+Y~T}mX5h}}=usFTEV73Pt<4FyBxxJ78=fN~(k zdakJBBj$+pUC)hlT;9*f(lQA#-+<nz-i@stw%Icl3$pm>Q=&Lc)U=dG_O<tAxEM35 zhJ1IXjV2DTP_f_hJ|aFPdHXR!7O2tDuSF^WRI&G!QT56Ifqe=hJor`?o2m2h@5_s; zod-Db3Als2&Qpx0dFbMY<OwNP<vC{#OTbvOn)<#+G~AJ+#l(hQCCu!(Q@1intvSgt zoEg4n%n^hiswm|_>OTNykv`bjaHa}S8q!(n?typ|cjA$^@xeQ`K|4E#4Xi4!L|@_p z{&>B7{u;=n7Z@AkYsJxraeINBFo1(okKCyp>gD&OUHRS_DsivDyOCKRIN$8SgF`Bb z3i6C|tB>^Gb9AJ0Gjl#IFw0;W*Q8GMd4;8fj`J;|w^9D*g>@W?nMSz7HksCNk6lCi zY<<6%ILbsKPDPwVc#G0Os`H9U2Duh@rSrV~;z~oxS+B_|xbPQfnZSzelYp^{gaXVg ziwKARvaT$T)mZxHGJ))Ks)>5fhW}fK;{jfmp*S=Ik$qAlk$p_+e0`gfr%am9`PAhC z=0`5F98`#Z?B@9JIgJJqt0ZnnrR|DW3Vax)-0d72Qv<nuOtqO1i>uwIqRTZl{!p~+ zwRYyS`U6=+XZCOee{$wIg4FtJO>{@)_~x`#z55n;`xBVbuN+-nc~xGOY8M~3Y{${~ zgY!iHJ~6}s;_1U94%dH8E39J%M%pk3F?l6e@jL<#<g01i-tY{}*IWQ|8FI5#P-^ql z%bD&`r(R`vPnZ??%?>kXz=)UDW;9>7|J#h1s^m8QUu}h0);ofkV<h)+B={{vKfiKK z-ZA^HQqC^W!laVQccj`oaTw`|`4hV@lVZ*EAgd<C1=F6l+VBgR>n61|ryB7jYt+9m z`k{5cghg>0km!&Rd6r%trl;n4-uMv!<ypfsy*;Qvw&PiO5#NjGR{;L6BIV}-KCcD) z2MW{2%HYe3u9^cEhPz*p_S{VN{G9{8xP_+ELaecLiw*h2-}I=BV>05SOQ5>YK94kX zEF|WF880Z+{1totT(m)WT389U{{k2(I=n2fS6lg9kd}Dz05t1$#J;vF?=ie7J$cAh zFP?K)gG5mYyRxeInQv<`{jF`B<HQknf5u(ftU)xmnN|RH*_?@<uW7H_3Ug>Sr2S02 znpyTyV5BX$<{IS3H!0ndJ@kd?wJ?1jd+83R$Ga~pc*^e9T91WMIFD6a^TY18y4|gR zzK?Gs-n&mGQ^#6Px;3(fkjEhSp4`eig9#N<cd|-rEwNXc+K#Tx#DMXU;}HG(zLJ~) zpJ!zQhdyzb6XYTG0t{wOxn)5*BAfJ)I4?PSwsi)rg`XNTXF+n8vR&B{US(@f0RO(8 z@poOl>S@J|3EVP%v|_kINtYXp%c#bbqKpOk!HOdN^)CwR>lwLsJeHH92PBk;9~3qf zT=f`V{{0)wQ2uHyx4764yJv1T8>S2u)%l8{qFctBy4cs3+LmKYAJoO6p4A44d}C#0 zRm4E`Ej6+Yey}hhy^DN8K6F*%Ct>_r<*c?%PsaK*$iF!{idJAhBPqhL8-o(1>CZJ` zo{`zrf<rOza7e&&pE;WKO&E9ez!Z5utseyVpdrjY8AZ@(;21|&2MqO#h2}BJEHUm~ zaQMoKHaK<&0L?%CVu^29aRv$&CBWY>AU-0<X(uM_owKW?N&1CJuE@LX$alS`N1jxv zQtyRIqF(v4%DK)HT&9e%qFrAFtZ`r3p>De{-5^It+<O5+1%`*kp`H5s)xnd;@smY+ z(Y^ipWD;|=@X1_4)U}rYR+)2uy}W=DN^{7YOdYXV{>tTJ;KrxowS4Q@&3qAiuAc); z43b1OS`MzRCmy+Xmn-n=dB)RdO(#vXTIJiWryGf>>ZO04fYeQua`8Os5|4wizN=;I z!rM;4+wDtS8Hh?(Bl6nvO=MiZRl=Nh#!fZ(Q4+UpS|W<%c6e9nE_(ep$8xd5`Mt|A z9OrMeG%qyKq&U#S<KZ0Em>*P*M)ON^fcxt|IwB6mR1s3+;+sCmp-uWH7lyXxw#yw} z9RD<qqxZ^<4u%)*@o1p0PtonoOYD)q(Iu<n^M82;FYAblS!5J_KNzdSV?s~sStaYH z5y0MIRT=$=Q#%`o%O8YT2x@$KCVSOGz*w&E5iHKDysJAcU1HcdlP(J*DQe+c@!Ge) z-YMHdqA}dcY2u9it{T&z%V8JeOc^<%L8044x5}NHc`u7VlRXW``qyK2`gk$X^|)W& z*Q3G3RX94pU89qzdHuWVe&V9>1ZpWo-`5YAe|&wZ@`DRrxn7io(xLNLFF9ez^V7!@ zDd<<5binxx6ImtO9u$VJ=Ex)w@xzp2N@a=yOonXfVf@Ee<m-<+$g(9Tzbr`|AKhQG z`CL5BlT-;|jCa;Jnd*!Bc*k_k<T@KxnY*!h)d*CQ$rUr8Z~Wzr%TTov4k0&TXw+0N z5r$lbBG-VpWHA0DRZzu!rS1Kz<*!gJYV@EiR(5F}=>F%BlBtW@9#Gv^Y43glqPUN* zKP}s2UB_$vJlgU;6mwfaO5_k<>>*{If#M#+Ja+rM?TiVc)gzT~Y--`<l=6BopDEAm z4+9gJAqlM5AjgRdkSr}N?P`nr_HT|{^bYDIMt9ots8TM7Mv8T}QtjvLGoSX_+Np!9 zkh(B|V*-re2h+~4gh4l-jm0P;s{Qv%{h#OoAAsx!k<zI8D$0t~vXi-&6)<~No$rg~ zQMcve^J-mxt9!8=D>h~2!?tNU&oXx?H-xu==?TB_u6J8DEB5IV{?Skc_Tb^n4WQx- zW908T?4U+07$Kj(+17Vi4cMxEL*APGO-*alq$aUw*8XE9^8v*RkXG5I7!b*0V)u%o zHG3K-<RYbPh7<oj+VDxpm|61QhDPAw*wpV!n(2t&MHI;qqYD+q@f0G`_;<x6_omN4 z8qZ{hTQ@jkECx%=vEW`8Kd}b)!6*^p*r}weXw$;FvC3!7-iKb%q!rA6F~~@BX+JWz z4U8X4)s|Z5!WT&SHA8)D6p7lrg>O*X7*Ik2-$`DvXmfmG{Ujixz!GZzXKx|j*lLiF zKZe0XbM|l%TvgAVETKx~@p~Y1>FztV{2sTC297KLAow5hlmV&w_G~hoz{LMlaLfoB zMFyK`<BKq!?2NplFgo6FM*P2_|BC6p@ZB8$=hHgh!R9e2G-Hq6T3{x~uCLrrgAX4x zz+MvBfN3)|m4bqzao(MlrQDQRO*=;55%*%L`z;fs6pWH<>)|m&*#>gLz<oCJ4oC3K z!@~pQdql*uO0V*{R_~*X`PL;Tlb@dk$gI+^+!)fQcBW|2vTQ;?e5(To2M6+mX)A<5 zV)a~pIgy0tQUt?^{KvU_aC-N|<HM^Y)*~;;SY?g<wP+kfC!5s)>M?H>QYGX0&{TNp z%g+)=TO)^iaLu7Nb2=&0UO_fMxP6QLt!7;7JNN2Z%hzwOR}xyY!(R-hVhAnzSCP0# z=tfu^cVU4JJwKh9Qfdt&!o%MI7M`J#Rw;M)6F#Tavdi}_a$)>TtfvV6sGj7l#n#Y3 zEbRs^;`?`f*j6e5<R>hd+&0@dn6ZmTzhLwJ<FRNSMevhw9C*Mg1?WfGRfAD#7T1Si z6SvpZQSHxH_Qv(f1nNn&{>4#Xcv7c5^b5R(tYDiEDiL{}=S4MTP7f<;mLD%_UV&{b z%S*uvazrcxNxR+bh_4{}n8(!s=o9mQ{Y(@GYH_Jzk}2a4E4_3Yq4OCYF4taI$49Hh z37-_PdJe|$gsZ;mR~d)ipuSlRLGh<n^a!&&wSSv`jjzBtQ)9$f2}Lgl$9z);b43Vb za5&n~2VcGkMkgSrppa*x2n(7)GuwTGGN1`A;B;tSIjwrwHKfuggHlIsUS&4Zx3sT2 zh|+PtRoZEJol>mRFyutbsh@pv^N{Ozopkav{<$FoU($uIYWLdopy06#bW_;(dXzAM zMzA^Q<%_22d<75a5+5Dw2LF_1MED2yYJvMp*g5h!o|x$U5Tzp|QFu(y{qOYhn%$sQ zk|NLG*i{Ru<tkPftD1SGsD1&CC3I)jSyVpI8k>yz;K(I3<NgaGId=53T5j{l>a_R= z3ee(Zn#H3Pzx7m1P1({&dyCk`At!#E<BK85xcKMF&0~dFOg~=QlR7zh88O}}gw6jl zOSfKb5G*M0lCULfs+Z{&6#Pwd%Nc+1?w~xDaU%w?M$u*5x;m>-4A#aPFvW~>e0}N6 z8|=w&bE0V3YCsEvPO73-cFSQ1g^(x&|8VUcPc15i5@#%go;~Xl`AQ`260Q8|w@E~F z*y@ge6*>%xLCilG0LQem9eLIZ%BC9kO)Ofy=;Pd4=Tl`+zygH;JQ&W5mjT68Ko{#2 z)LzBZ*&NQ{gC~T!T8Hn~9&mTw;b*Wv11$XGBL;~3W9!wB(b%90)f~*E%bR#MPPXv7 zdt%Uq5q#O9(GJBP+KN=qtq@1NP3+G?gUz-SEHden-PUrX&0uZ1-9!hLh@QI1B^W3k zq8ms*i8mn@d_XT?%G>TK-?+tFfV*fmR}Q~^AYBQj*@n;-1ZT?gQ^rE|_UtkZ@XvWZ zX*k}BKA*!(=JJ=II~`E9P~%WcwpS)<86QHR{-<m<f5W4`$BbXJ$E>;h?zm9yFr@R> zn&-UOE<1#CIM0Lfx=_1-pUWsS!Tvm8%w|R=xJ?&sA5@e2cDuL|&>RglyR7YdN;Dk{ zvNg;(;V=oX({J0SaKlR9jH#Pp27F1^A0Xw?)7MDnc<at0+)ri{e4o>mJ9dc5gL!1| zeLS*bsfxmVd`36|OoWcuKBL?rZeN@=0V&D7!w&dVFm)<5fvpEf@0cJO!<^5YY_|Nx zF#9A?QNLyHhSO2MeM7m;Ga~ot6&7j?p{*)c1b`|f4&$=M@JVx(F@3V31eB<F#uq~j z!L%8Ep-WDZp44EI;u(}9_KAz*zPekc2h-9i&Val7*afKo{6!>3RMWc)XdFc;@25no zf0biLucXeXV?5naDtgdF+}EibLa0?y(-|jmUU=UuPo){8PfbndstLTYR(q`!^XJli zxqD9enUY~}pvVuL;+{I8=LL+XRMxxL4L0Lv6Cn&yQt1|s<azx!9iFn<TK1K-15@1i z>EHqn;b$z}DD>*hpQm2t>kySU3>7UZYVoj*4F&3>aCSt1&)B#vUonq(tqwx357gF| zSs$Xcc$MZ^hW{msW{!Oi23y;X@|uTj*wl;D$1_chh`(AT=(|)R6BHZQqEVUxs24RY zEsJ)-jE;7%6$pEChQw{P9Kl?+qlM|wG&$lb^$cnH)GzoR+7{P8i1?ca_MjL9PQXHT z`RGo72nX5g+IZao6qxZSm-cJQZAPp*9>?Yte(WO|O-{}po-hW^I7>S+po+U?<^PM< zfxbf%z{uZbMvmhC))A3h9ROp;+?KjRKK?cq@=O7&XrqYEni^0S&+4z5ukzb3ciZP2 z<o8@%a$TDJk%h?k*MC%60We-%-vTd>u*WshY4mql-L841u4CoY{(jjYM8IT5NEDHG zfCzan5wn$LP)n!Kl$2hV7pF!i|K@7DTyS#y+A!Bklpjr(Ge6(q9b|eWA4;x;!xcEr zRdCad_tKf2E8A>5my;>0UKJp!>fz9>rIy>wUgpN*AcVZ9>%R(QZD-tjaFtV0tVX{( z(7AAzMGaZfbLQCpgm<cn)8F)r^DkX~n8_#i3~Fl^mQ=kA+|Po(rvc3?)-m{ziawoo zAMJD9N(aMymxhPI<#P_Anckk`X?oyiIn^S}5dJ{{rsuh3q|m-+wUyq{CgSQn{Rw@F za~2}n#|Z<1;{!mDBo^9Yd4T5QB9}1P(K8JtL<8rBko9XVwou(Dp?4@NQ;Li*0;J{r z9ulAc^itYtRaR8sVT8*9k;YFw47X3-<*-J;E6Yg^>?p#oYC?_0>4<@`hR7(AMpXed zL(;z{IQ$Sob4q1RR@i?4DDxd$CPpuAnCgtDF!g}@q3?R~3w?=f^%QG!%HH&lcrQ{V zOiWC7T31(B%b4K%;$XiorRM;fbp!}VrrfT+%c!;&&D6jRBZP}0x3c=AU65M3Q%C~D zi0sni`EI)n1yi9_5#*Gb7X~FR{Y4y8qf8A1#H9JkFT&La!zZ53T#X-BhD{cSwoj93 znyV_Rn~c=FbsmekQA}a`db;~k#$>SNm6eCfV%aM?SEL?^drBE4MN;+E$ilZ(kb_AU z>$iG$F<-=%#TKU*b9C!=zgtOfGVDW8vm@$&pn{rKSJbiTl|TNQ?Qf`)p2BB-3Gw#l zXU+C9@9R0{wZDk%8nA<kay*B4$^yuj2(R*drIX?6r{dmJ*U`}oTcoh5b^;$0l#(u8 z@PcP?8x|d#6zKyFt%lL1jHk)Q>s@b=?owH?`EP_);rw<)s;NcjQ9n_{?w6M{#8bq< z8P-@#Fd|!skTSOXFRwkf>}T=ksZPW{vx)1i`M{YZPQIbjh@Hju+i!_s6y!|p7uhFL z7ZZ<rZ)6Q)X5%Xplf4slbZuy{ZlvKC(#5hzKw!ul^Kq%WKS?KuO$G();bLtY<?KoL z&!zZm`hlWUOA?!*I<K*9Q^cHU;7uF+=-~<Ynnhh=z<i4`OMF)f3w7e+@KgR~Vxu8% zy`7w`_$)rSAb3}j!GJ8g4nF`l2L6~s5OiIDJWx_cu1v7nw=T$1#tprfx_;X>=b89y zX!uZ-!S;O-c~6W#{4^Fmd*p4v$7)ChOP=O%AconteFSr%;E`4aL^mf|t~m@DdH-wk zJgNUoYpdV5rUOowEiojzTHIsk-0m^+xf-^H-xN=Ei+R(fQGL$l#o!#<{$W@r(|~eI z&k(6uzVw>R@Vzd|myR{bwH0;eV(1&^Xi42Gloco3-Et}g$o8yNB#v%r_g%{gH%NOu zQsjk`KpLNy{L8_!Yc*?$!0aDz8I4-^rP^IN-(aCtG|{`EZ&S`S=J47YpxDk=+ZGsA zAG|HZj!x{cYhPf%DqVbyoA?LGGEQ`)NNJ-ZfLi}sM+sN8&9&mgFh87vENj0w=KKU7 z!r$jJ;lJ*&kbUv6jx5lX)wVDBXnmlUL@cSdf42C0L-<IC&E?&iR`k!g%vY}J-%x`7 z>ovYdUcMI?gx>_h7hIZYV!wQQP$PgbORFRPUkhNrUL)dL9Q%~8l7{j#m<EHgZ|YU> z3FdK>M2MDy@N?4+--GjIaP`bJ5AUqSa8nVrhJ(fa=!D9x!ms7~`|Ej8`PL}nkEHox z-mV$!i`hXQo^^)mp|xq%wTO1wdB@t3`dc!v7t^LJU1p7z%Py26?=p<lAOriqmxl(} zW)Zar{`z>sMw6Ss(9m%!tCENJm;sO6|0CTkY!5cbS+t)-#~zWbAhN}F&HGQ-f6)n- z17SESnj#UFE{;KWbkTheygIen|7h@1l<eqzMlW-Mg)uiYTE~}9E0x4hxfaCbGh0!9 zskte@LE%}6TbDv(mTG#6FMYJYD~rj{8s-e#gz39DyYTW}FIVcdEjcw(pSG`+DPgBW zbv9KX@>?B)t<whJ!?14#L|Oiwv#2$TbAdVO1O9ld#;1G8yh!>)g~#3ZPhJ}jDv2>e z+W@8oHlXy@2z3Eqv+kz=GYhdZ;Lz$YnLwus@9F;Fn<k-Ky?|D$V^<ccf@KpBtK9cX zAha<owCG1AIvpuScE%lE&Fc3pxlH(;7%vY`MMVV`69AGm|GpJk<P4dtG-}=-@RhmD zBR~Mn(jy>1QF8t4`Qj<?f{jG$dfw6&iXfOaFPJJ}zkh@E&5C)5l;AqELzhjcu#_FB z?i&;~mc3iZi3&yXVm=`i)H1iHkxN0yAHn=SV|}i6jTu8tORB#8ewppUw69R(4a_X5 zgW=RTlL?A{j)V;zFEGC^N&n-+mIlEN>Sw5T7ef>3o~ANvtZnP-ad!qE%h}Il)%s1n zUc)>ol?vP!j~Wo|3_Gd{Nc(frT@u9mzNv{Ru8)SsEsc%!ZE)L|#<&b~{lHGeVxI92 z#mlaym>kNVF0-@JEf>B<%}n3XdVq`2%4X9nWR3$tHSO)~ZEexRVEtk)R2^7ATm-(7 zjXDvEK2?`w263F~_iyi<o?Dk%Wr|BP^^cE__x6U3k+=;M3n)`R>qO2~2cK`26EH)* zY@Y=M*R(Y=45*}7r++tm5r5&`*0^}U2i*SDG74Wko`1;@>k3s_mzCqshxRPT6&<gZ z4VULR9E?fwZHd0Yvh||q3%|O$IyyQ6Iy|zE@yMCu<0@=8Hq*Oz@3yD*D&ddufET7; zJd)n}t0fkbK?)N@b)thVqo6$oLl(1rx=I8sD`Ne#ogc=?GoL|52drc9-8k%Kcei>& z$28|CYz})9jBK<S;}n9xJw=<Qlf%P+hvwim!rs$hMmT}#j2Y;{#E!Uxx?SKONy~ks ztF8j;rW`8~`|B66*m<KY5QoA>ElQ?oGcZo|)U}Z`n-FAjCFtBV;L#M>`|Le3zVCFf za_nj@*`#<3_aAbp7m;CP0&cARc|{R?_1hJZ;@b3r1NJ9Y%S7$pFF~fc{-&2CsQ*|R zsTIEJIk@M2&i_7z4p(Mb^cHec2#_56^8-~|g>QIC+-lZ>xY^D~lVs*S)&0ty*xm(I zEKrY@<0+otQ)-YQ+5)?w4b-uie3kIk#c9LpN}gBLJ^jRO5`=YVE-RS8<G9*Ep63Yn zrJ#4zzu?{IMNk3f3!V4#8S(x<QQg4t@mj9?(@<qDdQMRiN%6e=ypLp2B}`Is!T_2j zoN>>)O*wAn4(Ix#rc(u%Bqv56>3I5(Z{JO_Ry1x0CZB28_kn<FF?Ear&0v0@xs<?a z0Qhlf-<68l#xmM9XB_F(6QPeOPdW*Qh`h#PN;3;6A%D+-#GC~E*?eIncpSRu7e`n` z>k15JIbb0`bPVzWc~8)J68!I-DG*<v+(hfC6bLVXW?&d^r!m3M163g!q)JWCB895? z2g7@Q=zJe9dXdIEbbT!6%fKqtM>zsvq*RoEi}^3kVX#a%i1MFOyt-Q`JNs`^2^3jj zH=PF`Px7II?vDTvS>|e18y6RMFp9?DoCi=zWI299&M#Y8SWg{Rz7Cg8XN$bh<AOo- zmOqF&R_UZzsPY|-S<5EbY?<+|9x$}um7Bs{8h@$2S{9D3ccy0$rgjb5KUl6L->#6+ zKCp5ti_5XLuysWy)4b~AlwoGT6rzo*x(e5?mO1-1H-^}(g=5(fdw*+z4r-5bF2&O& z7GK0v;+gYfv`;TuFHg~PUu=pK;Q>b3X~VbaHuf9-F;iTMeKXaI%`_OZe{SQCc+aGQ z{!VjSUfx&60zrnrZhOgh+c`nS0wu&l_UZl;m7F@3YrAjxmHt*YV*_TMSdgd%epP2b zh?R#xARdO#PJ=K(A~P<2^~v`AY{d!AeET}{Uu8*GUN~k9%8|_q<h-`NZ{xIm0-UvS zEgJ1Z&wCmo3Zl}9D;rU>gGy6U$zjmx=~z9mb^0&J+e9l;<p)IgL9=KgE7^Zx6k1ue zdiAx72Y^0GdBbCz3Kpa3@znhSRipbn2QAAL&@=`}aZvZ%0%<((u7{hhSVBLf?41CI z)vHv_sO|6`Gcj6k3A!I!Pz>}YW{p~}els*0VzHl`Bqo^~7~I%{Qgi%nUy~=p)B~-& z3e#0tcct(YFGi35`>S%^Ka7DR*5Gr7!6VH9xO?TF#<#_SfW#Ewt-R?$9g9IK-EB!T zjm+`@k<AGAA;u?U5sJw3_x#Eb{^M7^lTd?1qOgW(Fbf1qiY`#ufT2v72YqmFdiOJu zaQdz3=?XVqAJEYBJ4}ewOQ9&AMh@w@$9LezkIT(EeTKeG(DR7`RbkMi#p7@9jhOnX zyq&TKGDK}yuohpJq2MdCBqJqc3b6A24vb$$tJs6-$v7oouPim|yKeQ-__O!`(Z%rd z!?HSA?WPq8Bcz=$ds>Lj@xO)5vVd!+yk3<)#Ql)yb~CiZGAO$Hrn;iqd!=#>5uTZ8 z)ZFBa3OC*J&KOe$7K}h5#k-5Sm%FHmDn<o*IA~Rwj}>p8<Rb<{EX4DL*&G~`7Nfo0 zOJ5E*K#NRww}a3@#lEg;Mll6G8eV<+*z5otNxZwjt{^t973-n1tGT(jQB*WZcgI&w zG^CL6(I{gBg^!C{dtHikmkGkD)NVzjWB39Hdeu^4f+hZhJDG&Oopz%AvdzEGfY;PC z!>KZ84lQEje@_Yf?|8@rlwLC~^7OsiSz1v<%9IIx^l!|_i4;zyx6$}9v0;>E8FUR` z!h$FX<LYDmj0%aw7tMwj<r;yd`s!15kN@?Z%h-|v{;)8F%68mtMK4r+RKx;)=2sp6 z)V>>a1R*3Eq!}T=t${B7(GCYyT;~m1L)EX-iQK16(>oH#_k}}7NZ2@YKf;i!a?Z-& zhap<Y51kiB&3<X$vs0f?EH7tokcY*{Q`3*5m%%CDfGt+vc5^z1DK(BQp1eE(RkHwd zr9(z9q~Wqnp`S9uv>bV1)Nw=cCT)K9|M3CjrM?JEWAR=}faQI`81k0G_+%}%O`+0t z=o!&mzLMTN*L5pOLg7))q|Q3bgbIW*8PA2c%>pafj__ou6y9PjG2p$duD;8OEZ3i! zd7(1<7_eKzBe~f)O}(Ip%|Dp4%lm2FrBN@HB6%J&+?;X%pd80A|6)Y%B!~dI?`AXB zF@nSSVi+t(0K>CJrbI+RVmF+u@-Lynq|zSasERYw5Y^;P7?G6hCWmEAq3$@Fwc&IA z#t<Mr9%T%r+g?CU)82MCqICUTb(E%|4pp5m){aR&Gz?)oM{JphVvr(#FAGpV`wqSy z@bkd6`4hlhJOgROTYnbt9t`YxVTqqm_A$N-O=8J!fw|ct@U~lm`4?p=ot&J9RH%W_ zg(ApC_YF;~S>B4hNT&S8s{mQ7fS5{Vw!!b^A>Mx!Ei@DKg)y-|V=Mgc3E?072Qd^> zO(JqfI#2+Pkbg(8X{G$G+Sa}$p4(GD`s9AV^ik<SWRO&Wi)`r3jNfO!w0KJ_F5eEw zPYlJR2f0GHDO5SJvdplrIqX6Oi^!ZkQ@6}bqo8JAzGa=New{RQWNRdcocSygNOVL? ztu)SW^S1{%dH~q~M(j`F>c3{vcC58ZGn+-9x{#Nt?}LX{iW9PO!O`SQg_@KDm3jsC zd&@h`BMIx5&DUo9Zf2muD2)iSaJs!z?zMEYag`y72Ew5igQBGMQ&->GpT{9ce3DFm zHh>*xyoEwSx#N!SEJF%-*(BnU#8eC`+1VNzaHpO^1K?=i07&&SU&+M+7!<%8C=}YK z6qbGmph8@_?C4PB*mGA!P-a0q4*5Xn2}@yUw=$PAdgnZKzY;%F3~?CtpBMP0s*cu1 zw9D#hNfU3d)(`y6RDAp2y2u=BgWQ<Q2mJ8Nx*h+W3kL?}gT?dqvUbI4DU43AndAxa zA{7Zms|27ulz>oxS*NBnU7gIw=Imd-c`u|P^1E6@1n&mFQ4#z0`EnUl%RU=PWUa-j zk^!Jyi?;cf*Vk|h#8ilryMEoY>(&2knfz$D2driOtr)6Qh8W;DRZXLbJi-(eZGrRm zu4yUXo^~NC{U0K4VW#(N9*x196st1J|4m8g+mD=G+dlmrHshy!9to6#zzcXWmgd#Q zM-6h$ry`-tpHK7eJFXC2PuLK`UUU*QdqU6D=`*<~yaMd0EDM6xP;3}PgRO37YkwzI zCX&!^{~>s1Ciu4ebAW|pI#hV%K78|f{McyyQKUnC*PHSgd8&Ji8~5yXb>QkvM;WIT z_4)hSGQxq{le@TxCBW=f^@eKfb>^_^E5GG1UUk2cujrGS1Im&pPJUr(_i&r}WYG;Z z<k5Z<2N-BoB*T=LBI4VHun~^TPxe+;6H>>`a-`G|+o`4<-vs>jdN4EaqlO<pXTx!? z6~TdRF{S70#qCg8aZ*agWjA&E*ai$E0iOwUym#1Lt{FDq7i?rskNhNpOlBwVg%YgO zbp%Ng&9bn$Al+D8mDoMte|Xd-(D}F83ed1U)Xs4T>EuC!ehN8-A07PS-GIsNc4rkx z)&5?)KwX>dxABEIY%3W?2GW^-ba}Hc8oz|)E;#rj%i)9ExHt$oM2Zg<&n}Y2?f(nj z>{qEqx^vNDjdMJc+%f6s>o3>Bu~X7g_md{8Q1$(6K{-?~<s<yu)!Ai8h4_mm<&YNl zAg67N$GUwpbtoL@o{eD?oU#@`w~WCAqPg4<x8UoYaT?-rb1|-9TVQJ0cWZF{fB+`< ze|TMeM=mC0U4yclyAVgV4@Q)DA=tXiidept>Js$Kp}?dK=QaN{4od|gbJp#V33+7u zR4ZeB!`n)#$f>c|$^nz+B`ljb?EQD>1J+qupYG28n!MQX9fv`Q46Ri)@9)56oGJkm zmKCeNt_w-J$-e-^eW_iYq^QKlCfSaQP<H6c`A%A3#6iZt|1omH3cdhbYD4C;Sg7D7 zl>%f&Rm_&7x)q!Im%J`tJdItLzAME1a*>7LS*Iyjn<rmn7hZ-DldsgFDK=yHqVjYq zAH<1i#{#XGGIt?ZDpjt8DpPX7exQPCzly4TxjrLgraYki2s(W`Qvo~}|L%;58FaP- zi5^b@!Rcrr^}vMjXw#ncca~Xe5H_cXg{MzC2CD{`CKhA(igx4upa*E34MvNH0krim zq~4g38hEV-+{utSa3))b^|4j#cpNr<CG3qGe_l^6SNlm`<!2phVWL)s*LXJu+gy*E zFm<G4oB!DutICX+N|G>Jnh*Vr)UikP6jny;kA)-j&Np1vQ1?Op+M_6e9@ZO07Lo+W zLo<Z`U71rHxw=G-?@l^E*UWv1n3*frcb$<BJ}6$lw?sae0;SVv8eB)qr_zP`d81y9 z9FTWTtnni??W?ef-|5+!J}`W~|HANeB6BB+yvSBVt|ak}^aDxYi_1aVN$(q||AKdi zFdR6581DH3{?^Xg#?JO%7i`U*zOqx!`3=h}C#HrU&3}d+ak=uLfwsiFW7wk;I(Sd^ zbmF6{s-8PHzGbU}8&P}a=<dazcYp+kbB5$m?S`K@XXu4yjGbk9?KLXfXB=G-nE2e0 zjW3c^`xY)ZuN>#Y?3yspNW08{NZ}{7M)rY#zkl?9?K;PXn{48|7gGXrL28>ku`X-| zRGJ9u!eYCN+dQj-CmloudYV@H0!C4~6F#)>?^F<FR{N<5G@9OHKmS}(h82QCsybvv zRLAc2S^h$gR7n9V^N*#ArjJ3}+D=wx7rB9I(gS{~E9~l%(=Nf>=-ltmm&Cbruq)O_ zec*YB$-`1$SwcjtfP+o1@rhQs;OrK7ZL+FN^St|SkXMts72`{fsiN)n-8{xGE8KOK zNg+g#wFjypcy~j{G-_!o>?kxJ81ygbuYS<q-Js*$LtFab$Fr5dN%-TpYGg5TNBie@ z`aX!p@oyd_bS4NtY?24kI1jOa%-HoyA>$@WEQD^v@PNJTC3!RuQFY?akzvNceX*?g z_Gd>2;*dl3?)Y;M2iJDNxUv?R0x<1|4VZ9+dwyBjt<jye(2*P_Vb}fBk5IBlZh70I z%VnohiSt~5htSPL&jaZ|lYacP3Z0`|Ii#81W#r{$+#2?$hVdxsXn18+@q`w%O3k9p z&EDRCeL+7p)o_d*+8)*3V#$(quWFY}RINtiu|>Y}*t5w973{1ac#ZL5zxPdg@TTqG zk3~e(@q?2753$|NMk~9P&p~mkwKKQtb5hzYvBq7cvvyfz9_mfwRcbhbzx}s$(N}Zw zLjaD48Ra2X!)D$3U4i)ZC+Mf1$d!ZuPm`sA*ECF^T03U@vQ1PwE*Ox%$p)c}+;k&d zZ)v3BP|2`yPb@STqyn72+oLxD@a;7qCd=W|I8{NG`yk~wUC3!(5K-+4^nxS@4I=JT zLJQ2bMujG%JjO8*&9YBkC&<Ql76|9Imes1Og=#~h_=J9Uph7K!C;5!s>|UjD1DPC_ zJHQlMTny+VsdjEQv|S<kP|r`SN|*;nNW(j3?bUpHXH?Hszp|<Y!e4^_X31nUtPDAC z1=$-8dp8!45B*lg1!nT}BCwr`tMm<_pN%kR_@<q;?^J!AsJ1flN+h&QNVZu5q!9q* zV&T1c*?w8~{XF#D!HbdT*nk`zriOdM;0*r39*{Tk6*p)7++)8;9LaSgO%JDs3f&u) zTWyw83UWV058+$+3;fGYG|)`{*~}ZVfw?j}LQxNyQto;aLmap9p7DOS@laH&VuuaK zFhkC<D|aWBj{J}!mG3Kusg|F6+Uyd|%P-9GZKHg!6@HOe3Jzh|?9tNORYrVQz+$q_ zur6??{4y1UWE>MDe2FTr9PcrhcH$qp3#?7O@_+6@9~5f@tkxsH8x^Uc$ML)%7dyK% z6o|y%6$m;ghF@=Y-BE!?p#G3rR$2=fq5Rt!V;Xsu$__mW`;NQ66D*!Vem`L1hLYoy zZ_dU5TuFJkBak(JGUol&PpDwJSpz&jKVM)jTi7z^pjLmSQ;Uo*tOW#lebiJl>8br4 z9nz8hEHFs-+H87xosRk%D47c@owf^2bffQEGEVv+((y||kpcT3*xa0bhMc+;v!usr zFuM^)i+p^ao$Y5=OMhEmcXMZJabRe=Ey`7{li0#NT@v-=XdDAZHYO{T-P4!Xl=RWo z%TA_%>U^hm`o%2AY%Co=zqhh@4my4VB1A{I4arGnc9lLsE-IDL6YG3Cf@+;c-*E60 zDKB@mh=yu?ukTFt7RroTxunCrG3oyE_CrhM@4c@xzs)n{`7(B_xY+lVwIVcyDPxDs z8|s^7?G@f?l@<>D9O@y6^<Fu0DPD6D<z#{qPFzsJHpY~lq-SV}7sWyeQG*AQ_CPTt zJKIubebO<UP*O0?ExRFi^;C*I53C#Oy~G`q9V*iLZo4CPXNy}Q5<~9u{*H(WeACSn zP^4V}iAFka&uB-Ua(n#9nSh(AdVRUIq3%!icXHi}^qQJNgB{=1&Ar^9I9^`fp78AK z>@BWzodm+(7De)pj)%d{7cbvj3@yz@@%GvVErg&?+DV!0c@^qtV<3h^(XwcEi@Ehu zz%Y9trA7)lJrXndhM{%Yxmg;RD7H+(G_(!HQ`$9_$39@u3=4$ZZK=z4*FLx=xY{fv zI6b9>mt!;0??N?7btskMWjx84W>0P?$jNtTRs&H$lceMyZ5vbd*Y;;91l~h9qn0S@ zXUUH)qn`GaB5ZE51ehU=l>)uR)i2@xeO4Rgtw{;I@gan#QH5H#9pkNGK(ez5M>24} zb43ukXT|iM0xhQ1b(E>UVk(6?gcC1d(&N;z-I08v$}3|w#cMV(7BTYwu-*sN7qEpJ z8&BLat7@Pr*I%uS4P`5l?gqSj+Ib%!EsXBSCXhFJ!S&Z(N{=}cij$x~+H1UO)YXL8 zqG(VyMJghXOoRUf{|u+lbEF$Qla)dO7vXfT!p4J8p^XiV)^O!f_C(Om3?Oa%3@zHX z)h^0;TmSAir{x=(j`7p7stQ#f<IK#=@!V-)5d{wj;r5_|RoG#QspqT-2EgBoY~ue( z&ndyp;JM>r1iX!DWBY6h1j6xj0vS$y2NBmpHtCcx$_uW}hetOI?E&`I_5xS|;~#Xl zy4E|;bzeQrL!^~rH1A)Q&3lQM4q*f-eQKPkwYNoNGh+T7cyT+0&2~W_@<0SqJ=qJI zrm61y;&qsB9M4>a?&mmOs3SCM;-Q(Y<1vTL52k3PgL!r6^aiLV^~qsrDrlq!5j_@6 z6=L_)#1zI7nhow_uW_mgrLWY*3~q1ww70=01QW0mitH1MyyX~fgIG?bC;G5NsO6hy zTrf~VK;vn5?j92ZDimR*Y=01=Nd}fRy|moMZpHw&0J(!3JV6=QmsIWiD$_Qf%#t5O zkf8;rVRoLSCnoW*pm3^YMwc^x>#(_DHfG@Z+tUMl?11yLg$AQBA#>z=s!?;*mfgUU z&t167RpWnzh!nKSSk?Fkp~Mzb$F4Kaj7?1=F#+FC2@l=#-kCklxuMOX<*U&Ai5Pn# z8{b90%#1OpmclQd5mdNk3Wgp2-0tanj&!msk&F7R$G2SDtV`=_T|aA=u)-E(?tdv% zZ~M~odV=U@cJ%3*ReAr!zPmGnnYNeM%OLV~hJ*PM6I9PrHNjZVx5Y?+17-(gM(maS zbe&n`81zL)TNhJx43qrd1Ltnmk9L9bk}kb=*Jy@!T;^$6B^ELa9BB%BZ}IaMiw+M} zNruoW$)vJE&<W+nXi_dH`o3$i+2ee*0IC^x9}mkHV}g4h-cIXaVV`v<XLzh*J$B!4 z!LsW03Z{-4<Tt(&_x=>nuE)W>Q?%1!j652HRUTb*M&L%#7ImctUvP9j<vwNF5-EVK zAnsvY7XfUrc^sySLdF<hc}Y5gRQdolpPFdG`|;qX(cs5a+0Wy*LysacTVvU4jHjvO z{z`yC;b0Lu27)H8_ip)k{(u5<7?FgT-;A+ZMv{PeDf*9f#DziB!u<S3&sgTG=<|fQ zdMkH|7vP>nKFcO*uY_K|FZI^^)aEhr+}l<c4y~dgOXH7)t~vnX)|;PF2Dvrjo+b6P z*N5A|$NyGst4nMM?C%z>eZRQZ)!^Go|7kY$nS+_4?u^^N12wMS8snTyYwD6wmhm2? zvjIz8Cm>MTpc*Pg0A<Jq$!dCGj?zc?h(b|)u&gMvEV+l|W?Mm%jp}U~wI7(kuuLd+ z2YbT<4ZEq8Q{k(6qa~LJ3bvtra@#9Z!x~8vo|2FTJ^PGMm?SCreYgBD<h$TV9qX8x z^fQNq6aQFc!dv>?)!p_fENXes+Fz)qI@NIY+y;IU-Ru?%o!}V1xRX<wusC6~VvOeT zlxS{9^UIi=r?96LhTsuQna9unE%djJF)HMdSWK#Bl^du75cldOGL`%Ulg{h@hhT(k z;B|cPHZCwZ@_6F=&r0FBy)#%qVCvj#1j7k0Zf6w9B~(7UqM<o>5iL)s`ZMvp5QNYl zcp6s8U`1ct!Lb3&oj^Rn^XFN=M$yf^x8T?twAhmMwrehpv`l}2VYI#T+)aD^QLapL zUIP&68MBp1W7PJ5xJv#z5Mk217B<;6YnOkCl3}<~BST>@hpj=4&>w?nxoOS$Te5$^ zZ~I*&>pplxfYEU^-j3=9s74S^q3IH^qwiPJiPx(y1L-YQsYF(>VpPM6uDTxak1a1g zR}K_%s4(<G_sP{OMYtTNMXJ#!UP3fB9!OSPV4GAV;XiLyrk-hXC0i>vzUKO!#AaK= zKJgB-nTDGY!Z|<+$g+$!4sudSe^mXz*U|tl<=qrc{%C{>s>}$h2>}@H*e$E-;O~W{ zP(c#G5kV$&QdBeEYw2;$K6If$)QN3+%t-V}b!#XwxH~c3><5u0xU`2LNyR02EMVXA z^Pe2T$UTd5o>kiBzTPbbjLRP(M3)cYJS4V3mQREJrUYJ~N|B;jN3Y~j_O))XN7p|Q z!|=+3qrdNhk-NyD^G1%1<*v<tH#xvqA1o|Uv|~={dUROD^U~yJ!#ZBr(tblduYm$^ zSsYCS+-sls-Afih({tw0<%apAGR80}e~oAD?p^tvnh8@cQGl^f1{C|Iy<5fK{T6M0 zc|*Vg{Db|l#<}#sA16Fu3N2;L_66C+)paI_l;2Sg@YvY(ZJ!L*Be_q-*c$2u31`Qn zml0y{9_ha(lcCft-cQSwi2L+wYnA%@hHv|dJssW``rRv$+`E=nDBVNIeeD7KzAq`( z`T8ZJcr@mcdt!A<W`v%(r-HTR>vp4gjQ!#<8t1a+VT}?o_JmCv{pKG|6u$rF&5Q4K zDdc#bt#x#CBI|j?-AgG|#TZcU#Y#|(H?8i2PMl&+`tq{%NblnG1<96w7BOlB5&wY< z>sN+m!_k5SREIbJuLVHjMv(Il7B<zn?WKUU-jEyC{L$dJEbOy~O%<Z&B>-R4g85^j zP5Q6y2;Q-}O~9`lNT{h+4}5nl{6d{{!i^ku2)d6Pwmc<GC2I_!_3U;IKz||zmkd$e z8in6ck6jeFDK6La)c9>)LySfqCw@v3WNr}jNDDUq>lY@-Tr2q$mb*JTM5zK3+rDQV zlGd~(B`{nD!!00y;{7WRcH_LsqylC9&8wFk*J|=@m}Nh(@`U<9Lv@iboxZc%Ihtnr zz`cx<u};JUCuyh~`_&C%`vfP<Y<Mu-eosz<0G+6T>|@%LOEZyzIi&>r7ZIvLN)<J0 zp@#g(v1kwImoeU(ZD8Xiqic-03K$Jt8;o&QdL<Si!h0@Wc2+cW)^#@3HS7VPqVj-w z&@bv`#5cUSqAm*<B@n#cMynL;zoQdsh511u2kn}o5DM@ouD9baF<E?U#20>M#6SEO zZEMu|@AQd6i)BUR*zKOK>4SPsc*EUh^ilgWra~h0@75GrHtGC5-(jTH$$DCElR0!E zppmVZcgT_L!oHulLruB8l#+$`I<E)s$^{0wyAmLT!N|vGE%4T#s8Kro?7xXxMd@F+ z#ZChUscc7YI=-BEjHAIFn+-d6MW|6=5Y0hg<|Za)&D^VmJ@^6Zn}DFhHA(HTIDgB# zAE=_`T+%Y^BVL*WyWUk-c}I7ya7{vJUp>ZkhL<sz4F*|3<x~MFP4mPi0pA>EmGO;L zMTm)T`agClgpkraJ++s!fRrRwm{PF&=3ML|Fjok}nh$;<HQtjJtGVy~9L`XpR-;a+ z`g}=EFK>y58KaMdhVV~(Hl41K*SCC%maBGMaDx!qPVKn-*JsBxp|a0eycBj0px7sH zpOXXRl54Q}Cn_3}2!A#<*QP#1<&U<nF8eiI7a6Vr3vLIkiD88KQ+L0o93We)>q~2j z)V#cx`zm6^s@JI}<}p>3m9f2=x@dC$YQc9)$27^~T12-p9X{uHV>Tr8co=9LOB3P~ zb))1iuT~(6>tcGJ?nyy%v4iF;SXnr7T#7bdT9Beg7T|xHVnJ8;mDvcy2;sed&IyC) zgE~V(LD=NmIj@|&4?s6SLy6?HRvLRiaS=Vwa)tVcVzdDH@EpX$dpWwTinV>@uw@1l z8J|gsoS?tf*=I>OXZ^(vCBC@FPOEvE(cBc?Q$Q_7{kMf$T=`m-Z)L(pJ&`J&%=To; z&@!opm-ZPqsBg-ycERy~Xu9g4sJ^$qgs}7y(%mT_-LN3SO0G%@(jhG^Al==ybeD8V zgLH$0bV!4A*L%OenfFhInVq@k-gD0Le4bCB%COh)EAp|47#kAxD*kM)6(hy1RRTbF zGqOYXHOpR+%?KIHhDA$m?pFp8Wc+_O^Xl;rzF&*uPJng-Uno(2@26y4!m%*S4cF1s z5*B@@yeut-L1*)i3rmvK85JsgBQoBxeXULXU6!(3fB>#g()mj;<3d7#%{0!;e-iwJ zs#3N_l~*@bqhuuq4kAUSlLMn^qVFaOku!@_ka-};t|i7unYGy7U~D1OVRiBekTDVQ zKGLq?HS(`xXMbOrMG!zCQvncpvcCA&XyTy|G^RQ6fBj~AehrbQ!u+M-=21vbjn{4K zS&vsFUx-UtR-gQJ%KS$))3C}^A3MEKSRR(1A9c+$pSUw?<Guo9rDlhN1%FM^BjOBE zbZ=%iX)6h!G1FglJ30F@Vey;ND(&RJ;-XUe>x_}v%HVw67pE3N9M+R{-ee}__f=&= z`&nilUjr`39s&yBsRMERTM_C|bKTW1ot@RFcYpGpPjB9Fx3VUFJ6sR`wj6crQPAdo zxm&>g=v^*3&;L1RXe8%CX3t73b<lEV)S~F2=u=mw=f>$RnwJzZ$b;GqG2Xh0nEB>( z_?F5_(ea`oMNX#pr&zm|kr*7#8vPs#XAg@{Ea>gLrt|bwK<@sw%L){kTh(*<)bxy~ zA7E@_^MKgPKzL>44<Xzn74#3xXqpI*;2kiz$$X2Uu5+JBg8IE^=FE$`k{U96wO`dZ zvWeJczXCHb%@}IuWWN`Ai$g*oNa^l0L^EvT(9nshz@&XN8Q-0W!-{C6kmgeq+uC!9 z<Xk3@Kq7~8q?8(9ppRqHMKZog!f?~KWC{pq_bjM~(1&fhAqxh?5S-oH&viy(xDq3x z<6sKDyfO;!*b=8A)HjikS&|sppca(!&;hbytZ8FVz{L2|diXYroWgSp-uLtW{ozV= zY%|246R{dK_}-d00NIj=WwFHr1~|5CnK1~<b|hN{L5v)&4w`o)T}>aU+`?p)IyzV@ z6655vuQyhg3$KjAA5kdY!UjoYldhg^^okSVifOT-s1Omsp-M|cMN!r$ZMu5sH3U}c zWNs&=64y`Tl|N_cLA+y*HUVF?d0nezuY6ujc%X^@ILZYot?AEH98D9vzD+~%S&Um~ z^`ddkeVIQI;VH=6KSsez7lEM`P>#$PDQ^(hL{1ggjl}6j-SO2@52PZ@F6saE;Ea<H z3a*%(f^vs#J^{`^q&_!F{|!MD+|m-e&)wE;5qzuXX`?~?BF5$THxckYyb`LbtyB;i zUdo0XLxO2{ojxQ&InP<;GP5VJg<J(ed?Uit!EWJzYG#4bhldfE<SdKJRdqXU*t}Ua zl`=;YowA(5jB?=qzQO<YOH??%M!XY919pjrmh~{QY7mhy>s07$Fl2R8+5Q|mWzO8$ z>G`6<`?%vdlMmxAL#^j_(s%#ytW2m<zj?{Bk=3+FYGV+46N4_|dGq+2=7ACw2m;kk zvavmGNLT*WSTZj?FG`Ay&{|b!Ud26FWdKQ+J{bT2j&TA}7)!yQNA|0Sgeyt&*e6ZE zdT4h0YU{GzrEL9vh5y?_zobaP$XbGT1^p=rx8_T#UH)}q{;ZLHO3+e8>=3rlj?D|M z`6Svj!6|6A$!E{hXtlCG(hXcc3~jZP3)*+MFGK-Y3qAx`&A}JGcKESE*<MWXCBzA< zOmR{~^&64~sxt;C0ddRl-6xX-H5l*+>h>cz$Q^S>oK7u>T4BX(yYxu{jTU?-`T!6I z##Y}?xMCSE5tZ{o8;*g4<iCN)(4l3_vD@JKpOt!^e#_1%C<~n;-=)9NmyC(<F@>Cm zdWG|>*+|`TkMZ2SO-d{$gr&WYj5l%hmU{UIaOKFuM?ATTm54LtIXO7&&1hCuR{SXE z<eup`l}i><uALP2Tsspz8U6P&eOS#O;bQ1isMoNS{A#$Hr~R&TtMhum!6cI$SiZgU z)E3L=r=`6zA)%i~vqMuxJQ)!mU!qB~@G?ln`dWT`SysqoAZR~TY%o0vtR8|LS2EtY ze|x3rrs;~YP!WGQw)4z7S_mgN3mztn=ehbznmjdXPj(+|6PxNR3NS$tB*f6EuAhRl z0TJXFP@u{MxRyc<F5RqtLDsRMN?<ysPSCVkFX<M-v2Sg)^Ew-Q3gAN(dku8d1?EJ3 z|7bs!8(<U>NEB?Q&D4hHc*sLjaQ*I<D`eO_{2s^==}+A`RRXU?uHs|+K<)rVXdquJ zr(&FmHk!W5*qH?@YM#T*eq<y%cZKVMjr<<j_ex9t`~RlbKkKXid=W@@ANb1L*dVXK zE`Zwu(8QJ_p-ERfN8JvTS^nurF;Rd7r568#B1oC+I%}Z9C2hB3A0=@XFlLqCw8GOr z6_;$=eeY%FH6$2B=F`RB8@xw?2&eo<F~(=idHiac*4i|IF5)J!8F}K)XkTypvLPxS zKBNdsvrSzDRCYiKuI(F;in6r0Bk;bSJ>zSSWcjF}(-5A>);Mpd??81wlv%U%up6qc zzZQWK69Z$i{AQv!rQnzTBhvuKevm1EwIGf$5f-Rk2Z#xRb0CCoh6kex@Iws0j!BG3 zM0-qZDzeEdST0)%kdS<9VCG~(T|;XSbWSkOh`tg8Ss`PvQN_ZhArkJcWN4{9q4!i$ zv;n-9s7N8v8Hz5O^q$<CR0qPtX)SCjQ*Dp_jLNSnDrflYZQmP9GykfH93A(%;yeDn z<BI0%-RBTI>%ShdDx14qs3^V7?%t?~@<Bm_JUIH32jtaqHPS)o{P{=6%?}jSaOe=L z3hgyN3S45*Vn+^^JsXg*kDdW9I-u<S#_+*3javCPZsqAY>Q?9wNiPQ<lk`{S%w-9@ zXT{?fy0tbG&_A^xJL0(>`t|y{3m5sKVAbcNu`O7xYym7n-KNl_`)$pWD%Ff}pjd{Z zAg|z*0vl7J($vU4kpvV87!+eXj_NS1Za#L|^HAE_9uFywpXV!z5<+1Z&S>vFedtjN z5_lIZ8`C1uL@vta64Zt)evpTDv6Q7Ge|?#8)`vzqF>JWE<d4`wl~812IZG5A;~@m) z0e2!gS^sL)z#gmc8Aqa@7U9|#^PYjrxI<!;^NqpE9K2@|7K~q_1==Tzj5tm$t`<8c zly|=WqdT{MKR>(EX<RmPg|ZSda0=Y59Dmm|4ny-HLr!oYQimN&Xfm8f+M?qFPXZh| zb@-^4wMOJy2r`$>RIq^-Fmm%byTH~xxuqZxMy~)o7tY7rmwnhFHJ|pCens=X%8ceR zI&k7imh>-ep$$70Fza)9ca8nE?1~eoC&m%CpFRLV#6O1Ad8^!SJnT0;+>^0;#PW0T zcyRt-RS(^B2iqmP?x-KslsbTlO~|66{>tlkA0@dU!6A-XbnWktadJAkd_;=8MMWY6 z4psz5ZJ@sXXh;+(Z%kJJC+v+-%;ZETAT@?!Fa;POQ_V-b21Y*oLe70eoOP@P0SW~? zeF*h2_p(3M0u%{wx&Vg~6mp`Wk6UcOyLN5@>%?z@N2<6^dA1RRvTlBFG&mR#-i!us z!1iDwgS9;A-)9qqpgkppXub?Fw9b9AR{~l}ZcD?>MhXf!0`#PgW3=b!93m(3Yh3ce z;p*)9uV1&5GQa?392L8j5iAr!VEESow}TWKqC~G^b7zbHdIM^2Q>VVx)vy;L-{-t| z%OUKhWFny)BgNaE8nXtu$fV7$8w#j`QbMo@Vwj5(4zJNS0W^BS{p3s(+R9!H$a&W3 zO;i!jO7Tw5YX(F?s*+C@Wq(>3%!fsEbw7LW-9-*tmAwl$XH%e0gw;myx$N4wRu=V* zolG%VhT)%azH1^c9Z__A<~y96Ub0VsN3y5+j$xr7GWhzA!VUnXdmrhnjcg)ss>gGT zdU??;RT<RNkt&Wc)q?H|jtSC-m`_44P|@*HsH$$V1T+`B*vH!J%w-Qhe*z<Qw~!k5 zG^L~Xv{>Vdk2khZJczgGzKASrZ;i}$`0Z+Q<}K<vA<*}e+%npM#|_O09#=@{p~r8T zE|^&-YM0xf$(M>%wS7DZ1($s20q{rIfdeTp%@hWRYpDCB0I@wRkO<Dk=Gc%si)IFa zkro6%ii4$5fObZXnuZW6QiR}*P)sw8m^6d%Q$)%$4AgK&7|}5mpbGzSKrmW{#awxH ztlyJv@<i1tN%y<_M{f^u;4HY1;69Ov<Y(fKps&Es`SqWeN?sk2&-Or^Fr`t;OCHSp zzyu5s9R3MnB2~kI3+NM_fqUv@GJzjY+*ydA$R|v<AcG|fRP-Jo?kn3M9Roi|9gvw9 zB$(2N5kg+Ra0Mb{I~!k4ov*0{oqY*MBn0!%@0NsOeU%^lrM{H%O4VuAv6&0R$GIBJ z4^4pdv38+Wp_pTPPUE7<(wWTId?!h?k6La{Ow)Rnw70BSv|Nq7=$I9ah^G*;)%RHY z+VV&E9FHclCs03`0QS#+K{t~90sE!TQx~ZC{e{JtGwkO>H4C3?)U#FrRn;Uaj3c-9 zb5CmJisfu@ZEvvwmpRLrp?kvZzRo7E_^2yJ4+Qp)*(Gbfben$6CAf$;iPzI$-ewdf z!9y?IjcSF18Ta}o#42*jR^y_sy5zZ`L{Qu=M0#7sAs6aEtIXGDkz^Vk9_|PPwZWgv zGrx1F1jaYsjNo_fUGtcTv}z|ih4ljX_dW{kyY`ia8p(_Jpk#OIVEfOih|=iY%_2*) ze70B|KBd_%<}4qdMtEU4lGi-7c?zT|a79X(6#H$DgBuSeKGbu(htw3xsQ9zGzQ+;& z9{{2DS__Z|K<M63vcRnTs(0KYruc{B_&>r3BiNV_j?!{4jsRv{$cbhFFg>~!29H78 zJ*NtD1Va8wJHDiwCw-|(z+<t2lAX|pilU3wZCgS_M`*(VUS-RxFq38D3dl~lYu|B{ zT-Pw9ym>m?fHKP^nUcnLUh9q;P|C;L<tCVEqgk-49-+9<t8sUd`o5#4o0k@gz)!uw zR0T@~?Vz-yPCPrzgRNvng%yPw8amE~F8N2t*mpaG-}r1OOgTLR6sssero8U>?zsic z1a@?ID1N=P!(H(zXO_%-IUvS=y?D_UANEh^Y?*Bsnf7t%z$J|Qynkw|OwL(_OhUDm z$~Z#A*fJ?Ye!$9%)W>{-Dr0cGt)nCQEVqk)uA`3}`%IwWH>YR0<#^zMb!Nb?823-) zur7)t`_>d6p_d@Sw4NV^dB`l@c$EPpDYCR>9lud8Txb%`=bwr<KJ=3w9|O=!JfpV0 zekQQTX)`{5AWkzgmh>|26o2SYn=ZT{5!coTnaZVzx7{aCG33ioTC#LEQ`VR4A_W^q zB$0TCG!Al#R?&WuHSl>J0eb8scj{kTmTBx2ywDTuR_QI=PqY@sOWsGB=)xG|n?YZV z#ak&|M%PVIO$-Fy)2RQE+W+k67Ebp|xCiXdLSoEm?yTHyX*(o#y88y~ykH}WF*lNn zi0_&(><_G!-=S}fcSHzZZ+$Zg4)WQ;H1@$)OELq90^F_OkA;r4uUnNJuBzEqfMRy* zZglvdtW71|(dDh}6syYBo&Q|hzroJyadE{gGi{>YHrw<iT?y}^=C$`|^$BtE3==x% zujz;Qi95`5bKH%<zE%CVzX*0BUM(kl{;MQCHZs{^O!}!7)pw;aqgIIQTWvy`)~eiJ zh{<BAo0wLkW@2t~DiWFtekbKZ>kG8qhZL5XoV>P%GR)$&B!f)eBBx&iGjS69{eEbm z^IqjwhaB7;XPsN`BH%^mZmzB*?9?O`%=Ue+vl~C^-T18qFV@fi8;sHn;W_a-1t~9Z zUje^xLp^RyCYWltm)pS1sy8DlHj%V4<KS+d!!%=%DypmW0dwRtZ(s9^{tqor7qO23 z|Izpj=`{ZV4K`ZOq;a&klg6HRMJ!Z@jWI!kuz$Bl@huNMDW6|z;`_0H`6Iknm7HeU zVGak@+!+a9iGs>F-tiSDuiy=9J~BSnsy@st44sXXT$G|L&+?17eJ-?gfibO4ucbO> zs>Iwk+7YKy8^3;RI751P*(BZIG#>ENvUk<xm-XBA0i$73zex8!%E=RZr3pNR&cBB? zOB?ym@1_*p8+`~1(|TUAq~{6P^-$mc&8fp>L1X_5SA=D6MZWHnTM<V)US3`8P$M;1 zL9yoz$~5-5ZGuRXs5YKbp8IWHSFpugEfcC6`myDJ>3I5B6C>FgO7x_$V@wGfQn-jV zA$IbHZjal2cl%!(W1gf8^Z14U(JNL#;1qmMZlC9)VX0A0oHaoRZy1XFf~4iQx<QQI z5XcA^3g&us@vY6aY({i(4P)O{od~_%`+DC4u><6!kY3A$b}ts?@3oT~uU=1cN-(`B z-c~BSo!xOMI{x=>q1pZZLP^bP44qWKrI3cSR9<^^y+7TeJ!Q}J^)+*YVEv2q55~Fn zyF&#cR=;J41etk*<&&b!+450&KlQ5*6<#O!A?+l;<}AeECy3+glfe6yJW6-S9QnPY zqpHeY#`dqr7w49N@;@GzBRj^D+bDG@KoiVdiVS99a7N;lE-B4+T;d<bMeAvM>Pla^ z`FW-E-+NaRO%#3k1yTB_@aecn2z^hVbp!ivLCmWUAw1BCwZgYay4Ll*bGkQcv%}mS z7l}oyPlA0nfArC5XWlq$c&t$E*|jg8c2+)a2Orm*zYT#bVf*of@rz0k_hh_GdEJpl zw{M~y6h-_>dUHx1%*=FbaV*V>Z76DhGSSDY?MWCO|B1I7Er8ii$SN;kY8R`^_(nRI z>Tmwv^`^pChTIK>-3HgxTA-7O)ro&74VSXv6+I`frW1ge5}yvtFll?kQD2qM_yFu7 z7Mf|dDu}&wAi|RpecMDKBbI3bX=9XV54A`8IC1_N6Bb<nm_AHirc(esn`M=Bj|Vx9 zswvh)cKmOMfdllt<i<^1e`^FR$BEgQx&F5TM*;rq7AsaY*e<$;#DX*4?RZ9$y2Is& z1D)Vrd$CA4n&+$F+*|g<LNX}1lh@As$NbGAz%Q<!ek7b21ER!Q;6JHlvXO~>ol#w1 z{{l~^BI)=(rc98x&S4Mv188c7S;7w4DZT;y2iC74+71-Mx`a5#C{BV7<;uoKucIL! z^@o7nKOaDc#K<iTYau~-ttN&&q{Rl=pXz>7E_jCEi}}q7Bj}5`NU4}!8%9iXijhWT z)8M_r`UL5r0)TYOZ<Dq&?q26(DA;;!ugCJ9Z&RXM3<Ww#H_h?@J}V*$%Jcr;gP@TQ ze2b$+2}#fs9iZp_TbXNLA9N`b@H*fMcv3ICf}Zw{-n<iYkRk~6Y5L4oz%@qt;}Mbp zi>!+ZTCYeK%K>bN+P=LJZzmA1p4IwN6Q#OaVhD&YpA7)29tNFBJ95@A+PCdr=^mU4 z!i%Sewd1(KvK7un(~5DZ(2wcgjdQ*2)2ol_e6FLvR#T0MwCaHkp<hB8Y<>W8Y8NIX zg&>^+;iz?E%N619a=5?msu~h#0LkYU#ClCY@HQAi(9erNL5LUdD-ztqE1rlQ()xQJ z8U-rH`t2mb<@dnacW>aO%gb&0jsBQQ`JBVp)F~)Fx2($^<FzNkH0QiDMQx@>a*_k+ z0{*lBQmt`|^>NqHiSJOn*Nsvi7~i+nHBB6RL#R5Q0nLeXO6ifqRbb@q?a>V_v3en& zr2t@l+hSF*G5Hjpb?cq{bdW`Pu(s7^VwLc?EPwIwAX4bl7fu1~MX8sVF>su>c|fag z*o<}Kx%5vxk*Y(ub1gF!BkOj=e9aePWM?;i?Zq%?_Z`c^3#tC;zYxD#?QmvPp-B;O zyjBu7UrQ{(Nyj8pNPqfL$LQZ`8Ssz|v2Wbp-HY@M6iSkz7dlpMyvEp1n0qeL_)su- zDKZfW5o9B0tb+CfO&o;<g|x>^=}&m(46O{%lji+OcrmgLrfWYYX~EhCtqJ}cb)6Gg zJwk>7i*kKJ4mag7Qa5l|yKmode_<5iPpm?yyHwaaI;qoTx=>C}h~6_fJN9p`75G|e z6$eiB(E)pv_xCwB_Z7QXjooc(0VPAfEt5sr0^y}?ciD5+gk$eZrWK+HoFU;PE*nDn zwvx>&TDH6@=B;pOSeL!i<<OSLJj#tNI@-Cz)Tu|uwFlz-V6O6c>+=&6w0QC86&KfS zyA*jOHXk+p_mIS{p-5h{1y3Aav`k-D8A?1}p`9g{3f}=YBbKcGKhnvKp}c0Jv2dv3 zdhul>s=r|izahOf3d)+^2}YqIX#Q=GsYzvz8W~Sn7RG7U#&o%_{Qat@R|{458af?n zpMqsCX<h=^yz%?ek!lSM4Pbr#$?g{|eTyE9-xFChm)zdm_(6B+2BQ1LIxOeHLphtW zm+*6+a*;r-^oy%5AAT?4tPUVm-0s`nfZF9OviTw6cy#s*IX@p2WqosYYRkeUOoTZz zYvVEjg08n&-^B39NmY^MN-ks=`%6Sawl4iI4t_NJxM=<1Z3M}#Cx$Xx0z_r;J4Cbx z^Ih=btz*_bV)p0ULB)?Be&dWgOV?i6chXDaBIp7<Ft!~^Eg|VkUNs~?v!0$)@$uhC z5pWi{b(amwZYS9wBn`Y@7xqN{s7jw+6#$tQTb#5CM~-83U3OX$g;Jz(k0%(4ah*j- z`Mg{MItPr35NM%PS0@Je0;eAX<l~EUqMvtYX%ZEX03UcDYurlS4*VtZV)v={Wq+Gj z=2I4M^m5@JrLw$$$=bsdAva<zUJUlUruKFo(+QbJM^~B-#f`Y!#MI`gK!KmW*kb2) zRu9M*C11~yo5GKSHjV|m$5*jk`{-eb;***aKjTR9>qlzVSLDqtl^OA`DXz%V6x;a5 zx<A-P*ED{z@}AMDTH0XAMX{`?pK?I(z`7JXfVV>(@?>Z$^>{JO-F{=#u^OGb3#bym z@RMf(gG3yF#dr?_iI4mHNP>|=zR@KF-%!vyyP<`lNk3IzzRIx$@rt5OLjo5i(3o|P z-7_s|gYbkF#3tx`&TI|hbEHOIgOQp&eP{}~$;L)IF>bVkkyssW+VRj|$Mv6ZtyS+q z8}z^<JL%JWpJ*$b*ip?tgeaZLW*O&Yl>X-dv%7&m2z*ctawvSDfZId_uwrUWZJE{Y z8DBUr9&vY^0706Ov{gO3?4$-*BQse?)tAA1pGK|E%0$i`NLQAY{<$oKxBWPFzs&KV z|J}#qag{g;++A&IBi*+p97&~ao+tZ`-nWIvcP#pOdf$*YKQKM=6Z^NRi96TVudGjF zp&|*;5&H4=?Rt76qFcU`a$|+aiDir#@c3v60{Kg*0h90{`8-1-C-4TH2Tot(3ASe% zM&Rgya+MXBM;<)DNJ5)zr^SDQJn%>M7q)O0>NWGBU^(3lM=SOiP8B*OmETuK+iV#V zOe}<Bfq)Mw9qI=W&sEhp)S9OW1<<L4r}FzDpYecco~VJKg@jN}Y=$x1%P6&#K7$h! z@g|p}1pr%rUwx1G$wzbUp!x&lvax~TZ!|CP*f5Tg1b7-Rd`3|162o=BWs#&S>V7l^ z4nPO#><oXh|DOv$k#2WWI_D>-;(QUYp|nhypLH{IQqcC7HmRmhvz~eMGhy~SrW&Wm z>Pj3PJ)I*EZNdt<nKwhfdSUzC`qkEt{=E<Va2N(#0y55o`wIiffB#N_JYpnjYdgEQ z>VTz+wl-aW&kbI{QxFqg*U!BYfukxjW&4Cnx^O#URNcqEQ#8S!5+|<-^%wob3wb-Q z&>H@THB1%jDM^E6&Q=(oBAZF&o`Vttc;yr519DkkpUE(rm`BJI)yPn(>HBaSrAUDS zu$eHz2-GPX)0NGty+)j;b&4!8Gq6c;DaUI4fg}2y_cOYgM_$e-B*HL{0Loec$?c!| z4$DFi5FlQDt+JFVY#Vo%A!2zxdC;8INSf0~LS8KkeachPJ1(N}Haz(vMfS_NOX^cQ znTl4(2gbpzx$gq!UQURkPFvO|TLxIb-E99)&9B&M-g^mCVjhoX4A~^AH9%RpDYt11 zm@!@+%=zZoJ<aHFb8`A{wi%wI4AUq)7oyA)xAW_3%F|Dyp1K5=9jyd@C8HV0PET1W zyceT3l!yNIL0?;1^!j;1?#Ss+tfn#~M4orG_h-rLhE<I@kYznYF-}^wcE{abhW7NB z5vIh2oEEy?5~N<&+N5?Nf>tt(#c}%eGsveoW7cz|-*ZXw#Gu9~Af|2vyQ!|0m}={K zQRL=adzSLxbM4F@8jk!!JfO+B$tlCTY1d4ALf;-A^}pEU#@1g^l^=AN>^R?M>j;@; z9}e=+O_<~-=Np&0^2ake-Le5xviF;9!+K)_yqa3z>e@!vqb`nw>UjMX56k4+@QxcS zHdE4|lQvRg2TF7qpRd}oY^F)3u)U7wvvYt(zjDg;tia}MZ$DuzSU-F0KJKv{-jhM~ zU)=7}m;<Hk4emOpF*ek*=fpQ=P8@@qXCAawBhp8TN^fj@9S-qRSa6z7TU*S3P-X+I zn7%!_nnF*Y=If7Oj8(tqt@<TTUU*CTgelWX_n2-v`avYSzH^?Ol$+0FhA`qsv8982 zvkWPS#c>#mE<Z-w_UuKGVadxqbE)$`mEVr6c0g-Uz1Qcv-jdtKk`t#!pZJ1)n~k4K z;0bo`CDXP%&RrFXJlDO!_qC|#0j3+xj}tTKvzkf%VeAd^tna@$rg&{|^pxa2rw&Ld zSQUIAz_oo$?$Gzx_4;1MH<O+~&3Ja3F>m}=_w%%#72hVl+QQci3}1d7{ZHA~KT#)Y z$0a!eNF(JlcYO6Rt0W=N3XQV;Le?<|FiW3TuXzHTTow*4Sqm)Fprtc)!N_*`yM-pm za(vHZ#z4&|vvw~jr?+}#vnu%cS0S1A3A*>m*)X?pMAz<|+)qf8ER6bw>m<B$MzAzv zVCs>7xy?naoC=;kLAHY2jwD_F7HBO+ihchC6`;^y(IE2*wNg)=OekTGr$7VTleKFQ z9o<>9_UJRTJ4xtnAi@#W)c-c<nfN&5F-Hq&1W3;Ywrd7n;eD#(k62<j9X~IVPmpD{ zre#I@O~KCM(N!-e@)8!vfO>VjANW2kXT##nRx>~r1f+Do!G6Mu0Wm82t0HwrTy|2z zC2QlB(texPpYJUHN6!QL(SweChv@S!jm&KlLz1^=yEnTuQ12Z?*$eNe2Mptie1+O! z)pjNeXHrve-ex6npH7|(V|&xfOXM>gJZEBx@_io|TgC4#dsfbZ*wU<f+tl-{=ZBqm z#=Yx%h<aD$(!r(5h4X$JFvl`Y%uz0xL>1LRDogGP1ZX(p&r6W59>C}br)Ey)Kt!DN zl@s$@+{jvadcv(hD%mq$3=i3SndYE2B(s>4hH3=wqktX~tKC(7;yum`IyFUR#1S)^ z8%k$R>~X**c|)ATb`3`o56(#S8s&&Jx&=}qW+#gbMA{Q?2b;T=1Sugs5D6Kn3bg>E zI6w{7zv%!$C8Pnd1rAIB%mp&S4Mc6g!coIAg#<e2f2SRdt2RMb;a+mkSW1liTEF5~ z@ejg3C1^qmhCn^3c#dkuAN?^4-@*1+ql6k=0IfKn#VbpjPmsTleOT08#}Yf0`9S=* z=pf$LU-Z1bv?g$}@xVp@ZkqA%hraDi>!Jyfae*`Y2h{G3?cNtoIgo#E&m8A^5{bQ+ zzvb;Imx5m1bZG&Ty*!P)E>Z!*NJXKAmYXBB6p6CaP*qRlo2AU1mz&2M2-m7rdtrV~ z`@DFI4~sZ&0w8`dz_kUO2LTDFn<_;p`~<-wHvWtB*C;R3CRLrr(^Q{orSAC#4i_fr znzRigjyZsEoXe5lfv6p!Pd2md7~zo*xYEcsz0>^lkw2{sJ>LK1o$Ofl!oshzq^NSg z3SuxJ5;>xwdLsNT*Ahy+6+kcj4Gk~5^^*ZlP=>xkc{@n2^BVa`-QNW}Z&1xgNeJ2G zqU-Ox()T80bt1ZefEddp%YteCa|uJ~7oTjJ&U)4%h5Nwu>u<bb%mduMr^j8TbHB~I zj(qail~Vr}fH9C)uf?Mscl1=MOi3vBqxJ7b_U0&M>+Bm`?v)bY{_8i}eY2a<l85=v z6*#)Vsds?Q@wt}n*uK8K*Q(|w^_Zvm=Wzx>K{GHKH8Y9|bpRbIlr}ckiNn&lF*CuI zO&!b{0FjY)hhN9*d@0fW@&@?dbnfT3+*DvR1gSNO*-5~WRaND&=XmQ*T6@m3*2jZ# zy?exg*h2r+tDYH24?vuLIivZpqkh)z@q52uEz3Bgm4CM|sq9fmhsbWfP-7(0msP*& zAs<I##Ppll&k|m1`&M{$GmCZz?JsvF4dWGz;}xdMa=Pe?+0Xlp5zZ70j|1WUy@jrB zuP#g_o*c%=DmVzB+8bF2P<^q%wHz`Ke+e;S*uPw2W5NajH2svhzg7ey=`o+UV848! zYFd-OY|8!+LCv(O-{Nn}<?N$x^?a0lzF^VALOjb$1uI}Jva(6(g(tBftv2{RqTq>3 z(?^eqeDG_W-AD%l^MXGcli`pPE9uR3emkn0!tu3Qqb2UYEa8+Mp?Q6~f%s1Upw{ct zp!y!Ul5+v9{$MFd8w%De)ayMmehjukI?YAxAaJJ)(V_{JcB37Tp$~jdZLPM+{Y0GW zS<1HtGMX&eS5;deM|w33U**8U`enh6`FI$+(|#BIZ0b4|ZwWeiU4U0K?3DVd@=(A{ zlKozcE_6_1S#jU5=!5#M%1Z5+?LE(mVAA~FV}{yObHST&^TC>kDx#v>*(=8c=3%P? zEG$QlYfiz9rmOd+m=FW6Vj2laEsDQ=%GvI?zxr35#xRTX9;iB^cz&nUt!lgf3qJnd z&+U2gLpGRrQyLT9KKrO1<+g3p-%uke0|jt{5J6XI`bzWFX6&NoZ8V-aLp{U;WIXgP zBwA_fT`4;=FOKu*nj--#V7S(UC#8fFThA77-&|cSW2Oi$44ss*j^S5s#>PrkXG!Tr zBDO`HbkrvThB0a|nT#~?7NyXS`@b3G6vk@uYsX?a*t*`oW8zW4qQ<Wnd}sdfr9w}w zDx)?NvO)8FN(0DJc&0jsLXYp;^zov%K59z19eb>LJU?D<9ssVF!t!%muVNL=Q>z4U zaE(kqkxBTlY5SmbzcWlp++iY->}C}V!*CA62z43HdjVZBVUte8loYY-Rzrjy6DF{9 z=<j1@3nw+m!t<SuCR&*~cn}|$2HyfVZj$NmeV==6jrjn6jUvU;{QNyVqFzAJdFT|! zFX44{`0rQ9G|1qmQu5x}{@7y=ldkDe{!|ZPTfHhv*$6aD7}xu$yL!=9rN=;tXNOX_ zz2TW;$h#>d(CY6DL9uSaCo6RS$<X)aKRUKcc}@xz`l?1mcbV^sh6lfPC<uJDXV>a* zwzfUUAQ06>g8F28b~qA)Eb8Ob{w-+*tRd<bh<YiGy`Ck6XoPua#)4pA`>{8*>lwtE z+KR7@9gi#+pbAT`Z6F}|W-nV)r=wQy`zLvh5B29(kpQPyo%CxW9x@VT$O*~WmJP}G zHDB}qNP<-*ejkrH8%HC<SeQy&04oln!2hJI&o(zg49`vBOU89Mg-zt--$<AVHmYX` zqG`wjhk<@NO-*uL1$W>ESB+U$L$ty@Gya2kG$i|L*cL&InBLn~B_u)#JmGCHu|ws` z<3HEqGm1^G>*ecFyYKPiki+8bIk8(4hb?8?e)n<E9`dOc)}o1JyL)Ev17#XoeJ<G( z<cBOin+nPo1s{iSP#AAWJPPeuZfDksRuPixPC;7%ROZNKlxvX<4WcwkmR?jcNT(R5 z!!0mov*rFK2Qd9nw5&K4=Z-SQR)}L1alUinqT$B@75=x=rnfM+pSa(2R`;>amy}e` z;(<W$0W(T-ciV{SvCt!7(nW&r4NSM6KD|G4?|T;z&)TT7*v3CPD<~M~bNlBHYs4=X z|M#RV;;fn4DnCoAf5=@iZDg%&h}o;L^-W|U|02GtZ0}}3TDO181<rBIC{m>Kz)2PI zCwLUw$tS9iu9N+vXo6daO&vhFh_oXOjC)1r-i=19V&jd!@b&9_FJ6ft=`G<KzQ5wU z%S0FB_xP=Y44%`U6g|m{mJDMx2a@I}l<3zcbkJp_OElv2bEufXZ!kXmGAZ`#Ru_JW zDSX3V#P94)UJ*GnmgtF5Ja3A6+4Nd;ur@{xJBYB3uRchfI%5NAO46|p{KE3a`ObOc zi)toS+Bqrgw*C12sR3z5MH8@KlMML)q1<<EJJ4&X#RY*rKkjQbwz&eYjNnE0w69*P znk6s(;`f?3#j^(iLEQQWf}3rcNn$s3KV)@%pKfsp_{ngCo)71{;GWo+*C$>isK_AH zzwYbqnU1qaZbR{Kr65Nlp{eQ<6(be!FAF(XC}Gd_BM-K^+6*ZlC9e9)5b1l13UO}i zZu)U&b^df^Y_U96_ONc!1H|H&_$)M#=0>a_(>kyXU+cX(C02je=lCF`ZC-p5C-4!< zIxYY<tf-w8u`(3r^^B6vl}G>f=C_o{%SDkn8tkYHVdtAQUzajAQ$2M#uwnTD^IZvF zUZkPE1qx3gn(SKonq(i^W!4Hjx_ZrL=l%tFY}a)*O`NKnn_J(NO7o$UP@NROfsBg- zLB>JV?Z}?ESh1Flg`Xd+1#Dj6*kS>4h`NTcS6m}mVpqnFo%-KowwL}pE<aiQt;k^8 zxH6zeSfv;+Fh_)sz-9bD6AAk^b27woD1b7JK%y>e1rP$BeZp>0mQss+`MV;otI~ne zE8SlhU8F&%CSYxqCw`LTUvk`uoc5F!S&Dp_`CFk)y)R5|Qs4Lyeh+6it5?X>#HRkX zn`2fRT2lo05a_zhEFb65JhHam+;=>C%>TGjAaeitleaP&T?HomkXwdv7Go_{d7}0n zsmr4Kn!n*9?*n@0pmc{q=};3hh}7mRS1ohrJ~OUn0>~F|*GDzX4nU<7FDSQTI(SzY z8f-{6liUR1s#O1ti*swBP6U`aet6N_$vs>%Y4Q8ux@DQ#XSkNkN*Rb@tk;Q@&tnZ+ zx91_p-Q=m0M>*^xHDE^()dRMsd!)Zd)Xv!3IPbV*)j!HM5xfO()OKnn#mdDaytjdZ z<{BFJJ%&l9X_GZ99N6{pemcr)P(5F6`p3^@dcUK*cql7uoFeKyl8DJ2M&A1DpQXB( z-``>#?C~^$ks3RNJ}jI76vk4~CPG~{z$b4j{YDCUGE+30<}@#Heu!t=x;ZvOzgu8d zy)Lp7;oP(I13OHmly4K^46VYMH3EUmslW=D_rFpnmEWmTvcAyeO{sTD$anj0rH0o> zQHWvwneJ&ENNzK$*b3EpSOz}jR!Y}Uw~=4Nm0KF_8Nu1q<Gln~=%3#^G8(Sxw1GRK zNZazG#mws(3NN7D<y@Ez_A?}M``Ss9A(Q&27gBwogoFYmsX&_id)$c907<lf&0EnW zEMl#Du~!2+>(!LO`HXtwWZaz#6b+H{-WPc^09Ql&LGL5k&GPD_-nah@Z%r3HhV6x& z#sFY$AG?pOE73)`0Fyz8934Ipd@66U1jZG}HBSr3Ka!0?bsE~WJ|o+8&y0h?!2Tdg zR?8k*AGE>~^+;t4n>cZQ%&m6?A951od}*|H&T_$?QrwtKvBnxJWrOK{D*VTGeJG*1 z3RaO4FWob(Ds<bZ5qh@r_+ymiwmHu})x@A}bMx&TpgXpE+UE{{w1kNZ7J!uh+r9d| z6VDHHXU+GhH(4ojjeX=+AllKdRuzJMIxX$(yp&OO^*!oSdpLqE%Y^;WQm30V?BgEK z=u!_i#!@2oC#C9fzvKGjMV`_i5IjM*%ZCjZ8MpRE)$EV!Ab<VF8EaNHURPb>{=~zp zJMK(j_nV0)jXYkq&o&j#xblHswoFte8k+XavwPu&oy1YA8dxF6>CVuw>gXZJivS`G zl0AF3$HjkyhWCS8)(x>sO+<a|BlUVzX>au@o!&0!Xn3>cfy<#yr!}Z13*}ego9WtO z@Cy5~%?a(r13WblKR2d0a=1BW)sf-wE<dL1(5ugV+K+%_{%>NLMRTJzF)C8lKKK>B zy+J0mq0m`#PMoJq>l<^#1V!+&+z(o7<*IZd0^X%S2X75nDi&R*Z$&rbkGdY4^fU3d z{6XMQWCEibdzRNfQFj@j0S{l9b+sSp&7IUnI)^n{Ii(9wF!4@`c-NJgH7>Ycn+ymi zX{@#IyU%z7W~?7GH7(9J`?H+J9;2VvI~JLQ#-qI-HZSgupZ*;)+a(eaki7BzH>S0k z&F1T`dJHKE`m`d<oz+_1^bK#6zjS>ffq^rsN3sw}hsZLm&w+6`96m`2D7l2$5>Mnv z(coZopJyFoEIkwV%tAJ>I%=N<SK^uYmIpNum>u}yT`L}#EmCmkeK*pZDx%9+EUiou zD4Wfa5@58+UpK3rgd|P$rl~O)kIGtTv$6eFIUEbiZPIH;Z1s->Zzn$}<<+$5&sO&2 zcOy}D1=Ja}eL7ZwL~n9x#pf1?e(pN`9AvEqwRKfZAGqH8>vvqQHMV1bXzq_x+mDo8 zvC(8z2WQ)k0ey%Aoq?Il)7-zdo#zMc=QuNwpZ~0_kow-2#{c%Sxre##6E{uBn+L5e z%SJyK@KCzJ=v+R)*;Q{d;qd>$e{S0g3V?{5#3aF7DklO*CkCqRZ)M3O_?|B=-i@g$ z&Q#Xi>IUOMJ7<g5zGNW_gM6Pw&7FT#On(2ZFzr<E+4H`6G%NFTF_wJW#mnSpkN9*V zY79q5i0bJVtF3V?Iv!C4%=6!W)+0S~=Ly{+W*0cer}^JamjjpBTMQq*J{X(59dBoL zP2WnJ2a2lxk3Tmzo6*K!6YvB?=+&DPluU=Z<3LzE67N?agMm&Vtg3sS$o0Pu6)Z1X zhjs~h{eK%k%G@)PNnT9V;2bRfT`Ui*C;IbMT2-Pe1tkb(oDlbm@{X{)AB;Xn_Z{pN zcs}5+i9%A!5;447ej-k<@aDD9#}5{@2|xSRP;a?__Vzl9gz`)6hWFj)r@8Ca^CLGO z*A@4jSIx0cE60!2ZBL6GkBc_%0$CB2^-;MY`DTMn$p_~XyAJ!f%En>sC;9J5gB-EN zw0L;3|3K@(;+tAQfiSLwE6C1E+lg~egysUN=8)I7_G2<D-BJ0RdN^jdufnuYUj&?^ z-~&t)9WI@en6Wjlla~)I3ja!tNmp>;xr$VrJ6~JJFE)MkSfht@jTFs+-4ht-{^gr| z^bt#@n^7|2(Gpbku4=>y4BSD@HCxEVDQGFfuDEBpJblD(cu6nf`9EfMwEkS7i2`gP z?(X_zS8p}*M*F|t6WaZJoV{)S)A_#k=qlLzGC2@3YF0aAeQ}QhnzI({p#_1q+~1w^ zW$qMd%V*;>oa<KnS^B*Ia^v1si9$;D6Fv=p{&!?Y#>8Mw)xi0VE~5TT&NQbpF7dWG z$+r0;d*Dd;8Z?A)u3xZ5#;lHw=@qQm`v4@ZAhX=|X*Me(yh3wU2Z?b(#C?hqyi-@t zOkw-uu=&c28(hzOz`!>US(#t2K`{_nW-leBG-w3k2tWm4KyJD<yOWI)77a@&+QEUp zMvUSL+q%|bX(WgPk(AtKp?}IhJ-I(R&$VAhHp;vKH}7s$_fw}^tG|(e>4WJ(Lu{h? z>k3t*ysl}5`QKFhSU%-sCAbT#22CvjjjD8?5|K!ZzSxIB=L#$njo&74j0b$~tSbED z>w=^AdVb{IB2wx1190pf4vJ1;k5(o1gY318AyU}-lUjiPNvzfy(YuM1b2PLwO=df` zr(W`%%p{g9PlA;Dm7~Vhc8Y)T9nbe2pUbe7R?Gnd#CFy&WGilqgm);=q9DRXR+sMh zkeoaaKB}aiQB&-YQFjiMXqi93oJylHBG3U}>x&BuNA=fjkXw6nEJ`!7Q2HpRvc#$^ zg{65$!s}sp$%ooW;1^3NzUmX@F>=+{hC$u+Q!^ZJGtTlqxElhmWrOufJh0ijSj*k% zTK-W@bgreJz>OTFbo%^X3op@x2P&R3i>wE|8vbf*ljHmv_OnettuW95IEfaID{ZXB z?*@7-)4uQa&@>-yQ!G@>UIychjnsK>dUYVv0xrXO_?PIi_CNku2XMY^Y2q2L#uaXy z+T(u3c_Sl@eW+89#QfJQM0j{Lr}WNkv09+dVCn!m>7BWgGEwl<8rYob!q>1hO+Mq| zlXjk;(7rR5-!#lvR-M|wZOv#YvsYDJ&CT?^A@(ym2rRLVm1Ckv<v@$MIfaZp@30m< z+e%uymp`ZN^%ROCw4Cz*q8Ya|obHBKWFHE?62pOb0CSmI;usQa!LyG&$yhkfGoDRF zTS8uc!1)Ba&FAZ^5_R6I>BpWuha(Xny8Pl7QgO(FJ_Uid@2Wxfx8vTppq}-Zj?fqq z84<&aG%<=s<qG^l!`5k%X5Rd|9x>IJ-EQ~S7rnWx3Lp8fWl`%>+?mu#l+f(zWrd6K zS=e8ppWfu;&Ylp7{g4)ujs+=7pDFef(adobm>Fg66#<wV1JgZkh7u7jF5F=i(uHCr zo~?u0p#$WUYAGmTSh5fQRv|3tQC8>QxLJGh0;)vjJO|2KAW)OMHw580r{}tCTZV1@ zj*vZiEJZkq_b{J=Dq55GS-Bl2<gBHwU645{&!zSys$_=RN~iM9vQ|s=pEnxOkk=e% zE@hU9y?jtFFsW`XiNFg3Ih~#fWK}@WW(r|F87Fn6wySD-v3gw)(`PY$t)A2=y2Cb3 zy4h)IgIN)rxBe0RT4;l`#j^x1b0KKO)jT#sSyP16Ih^sL^{{RMD3A(=IWiX-XUVL} zt8qUik)+)7$pfM8*l$A}CJykv`LFkxU6-)XJm1Ee=dwQC06rHp!MIeCO{$8g2OXZ3 zJMO@lgx}vY8B!&=Ox7Lf!y>>!C~~8o#O$7VeTUK`_vXuJd;O5~s0Ox619@>hqy8>L zoj7%6{bv}@3h{`8>QQlhpnk3<x+t6Vn@O_a_Vc22$QlA<kBlJ5B@6j8FC|VxnTcZt z{iwC5JhG?n;K^`M_$`6rAUoiR$*v!Ru7Y=Vf#Tn7eX#&bfK%UB+3GV*7*%d5if`Yj z2n32bhyA-Nb!{{_U32_J4vRQjB2gwt8*o6Y=CC@Lqn4~Qcc`AR*0PcTi@0F+p=HXR zW9j^tFgr!XG7%bfIIlf0E?|WJloo$Hm>x<&J!wU+Pk6R=VI>+i_#SVQy}C}@v%hlc z0SeYjqz%gj_efV2`lTTeuHx(y_L@jlj64@;B}j`4nb5Wi`@X@XvnaP{Dt76*M`8_B zt+`gKPA`^IJAf9Bp)N>9VK~$NF6AZaF>%L*lIGRVQj1+>to2Xky;b+zUhDF2`75ZK zhoKDB5`W-V)~z5GRX>5VaPzMxCX)0%9G1gtCIST)v^WBJX5ELddT23wSTVzM?S-G~ zHDC?o)o{!J9zFlRGNhUb^h&Cu?49N9K>YQfhR99Q4llNBX=v;?%H=%BXQ!9{+9LgC z;ks4D4ie<M!v@<@(~Fw(<$d+$^ZIgaYdf;fFg=;%|N5yH>)$PVjktsr&X-87GV1%v z?W`FUzmy-~y?q2KBMNI5!RI60YcceW%TU$!+o(l(%df+ib4#wr62+pcwvE+unwWqh z+Ar*o;_W)4(+~HMe?%y9hQdM}*;s8{6IuN9Tac_9>Q6h>K!|CR^$ShObxxZfGXq(9 z^+cR=>iE$7K#`f@vI{B4tBQ!mA#=yjUM3$xWKWE6<>x4`^@{tA=K1r)&WB9Ft67Ql z?VOv__jwE)gMC#zQS%SPJUtcR`Kz(8t-%RA2HJN>bfm{L&vuN(rS;j^X!*5#>h{B# zyA{C{9=b9NF>s#+qg*i%&+N9lit6LkyvtHwNdKF7s=qtYPq*%PJrEfT(|-I*dKYdo zD;;C)>?@96t~(a~OZ83D#Om*xf=Q^5>+uQUGSrS0*uD2wY(MR1zf=SQ=mpAZcy0_c zcD?fy7CDEl=sPyYViT<|g({3PvW%2ZFR4r59c+V=XaCHJxHpt>DLKzvS#9a4v22s@ z-YCNo)y%jSG-0XYsx?a%g#Fe1L~lf{G16OEJVI16L<4Ib0DzlEh4Ahyx#N>R`~gO% zNJ+2Fi<vrlHgYXqn(LNHa^Eg6tDU~(9>+ZEThwaCprI9m-z`!#d*iEGul8zvoWbO0 zHV^$9O>Ujw^HGJsq=O{*vd=4~9~kfMDTRzy&ppTAPGh9;EiofD<QZW|of6ked;kpg z=lXxg3a)F=zM@fuzyhfiY^c3nK3%^u*{p=umIrp%Gilb?*j#;EiRU?O@faKZ{bAI# z-LP=E^>pE0W%TU-xd3Hm=4RgKUe_W%8fAY%a=R>0L3|b4jN#i$VaN3(l>F!BD;5bC z_m7Kq-aRG8+^kF$&hYO1jUC3ltoyO<01D8mDr1WNM4TxZ3!i;>!JvP|OZqR0|6bpI zS>ChNx6pNLS|Yexf<CVyUXI;n3iA-QpZ~n7cYIRHhpK+e@vDM0N!LUFoTb0Rxok6j zoG~=yyhIf{2pBszG<QCp5xPA*$*8BD(TJB3X`S+YsWQPIhrAH$+5<g_veNNb)Guai zcsN@_-_tEdS_oladvTqcR(=anYE`QhlzUcF_ky4YC#FH(HVRbo4tX=&NQYq!GQ(?X z(aPO-Oe42ce{ytM?EWfVPel5cCO7y!bBSw_zf3L64A&O%%R5Fxjzi5trkte|%^<*s z(srz1oeHZpBiY|>rGErTRFgl~CkgA}Jjue=W%#3&h35cnYRa3YGOfO@!`Dw3pxI_d zW&h4=js*-E)lY_Ju$`&+o3Xv=B8T)Ab^?%()Z?_&miPB{tj{T}^gOqb%)c1#H?98^ z__9!eoYX^L^0VjSAZ{?UAm15x&(pt)hdYcGjItUJGt9%fy)?ps7)!0-`4pjyV@-Bi zAji|bR7NpEpS<jT<gf?=)7djm9_Ajc@n?%t&!M%2P~2FFfKqawxtjQZbLBv|^0UNR zMg1(22>_YS{3OK=27X_0s(ivS)6VHznU$54+uwD5GOrs38m~<op<s2l8D9xUK0cb8 zna>IEhO`RdD72m&N87@YgXG3k;ixg+Gb^@GMU+YMyUMmbMC}+mn{CHkXMD6&5~C$$ z5VUv@8M&Y7!~1QrSq`VNzq!W(ytx_sXz`&E#(J3tiQki6ruCUBEyYKYY<y)iEXi5< zF5LcoEX&FbhG{iQnu2!1#3>-rEW|%6ab{#^{DD*#H+F0~zoYu<;eD`e`#bk14JV+o zX~IKB1fCASz@bSfzAV=bt&LQ+hnA%i@wva<xZ<qWC{e!?-SL`s#WRNH#-ylIZl8tW zyl{?RUlK`*XHkVK^s#MrdbY$w1C&q$+;XsV30Iu%(S}&SUQS%CT(QnUU`0L2xrHx^ z1tx|<TkHT={-|FMcR<yw2!xSRE}0<o=kEvu{L$pxS0BeRIUc7C&*b5yrt04IHl%FU zn+@%qs1j^j<M*shsE{ajQ%A*0wEp<uUx>GIi8%k%)zYwq2d2vL`-=%=u_}3f{}W%t zM19Zba~obzP@w0=@;qWLDO>rx>HQF0pCY0dH|31f4}+CsN66>Vf?4g2l;>**zQIqe zIRmAO-e~W=m@eoNLvLDw7`h@~|9+)(#Hw?^gWWjV{TsP~fM1j9H53L~zit08b?vo; zj{G>U1)U?(lWf7fP)YZ3#RsJU5W9fHAX|x5Yz=q7#KPY<h7~glfZ}A*KEYJmaM?b= z>E3_l@-pk;B)C7S9U`<5{WQz+L&WoBVnw3XuH~NL*n=CyPaY{xiSrgic<zgUKa7_g zq}IDd|D#E9xN5Ncxgi~3<*<3Je*OnI=2WuQIr4<!TJcIpnt8eBbU4}yQ_{z5WD}>% zPBh?})@N;hE1Yfa4wKo&9EN!J{-LW^h7cfLpu?L2=R3~T&hL6Hn3IqZ^<$!ZN@xov z@B#VXN!>m93!Xh5J?&M=ebE^;8R~}R@o;jR2tlE?gGWP0d3HRI{pRe(drE|WDLzQ| zJCZb}I60G{WRhJ=VRI#wT>IBqohn7a!^m0HN+~JW-T9GMaFT6`)p7N#rEyIwSX{Mw znipg23*Eu(YTIOa7)ud`YEM%Fj<ykgeFi$lr`h;ATLq%xq~W&@a*<W2?ik_5tAGC{ z&^pLRD5~K}V#{WpzskdkER`fc5ayZ;LxMBMg*M2MYS#)<f~|TXp&|bVTS2704vMn% zgpZMbPw9Vho1$s}!g2bOvceqtBRa(NFjW|+0Rv+aim7S=3^2a}Uclj~QEOdjJxY?f z*%@q&=Z*yAj7yMrvLI8dIMLl^ZEZ~{g`gS5C3oBM$AA3C_~J`n`cmy0dGYv(I11aX zCMpQw98S{|<GP|Kn$4!Q77gzZwX2G^ljXUTN=hYV3GT6iM2#gF2J^OcuDX_G8Qu&j zG{vT2K67|G2PaHYG+36N%99Azma@4D3kB8Oz<t0PEGno9A?~{Cu4w=;UB(~Pb{YUo zm)BlK-{F5!3T+Ik<7=bSG#w3xX_gBiH+%go&pW-r#>VE49{s`TQzxP*`q*!O@{PCN zw0Cjt*6Xji@7?c2dFE!bi9Ro_Mk5FUyfXtpeBMRX^8{*>`ZYB;&hw+S7$A<Kl~YHP zG%*&1N949%zqOy+$xP~^U1n*=n$0FpaB>y-8sg`&eVl^A6P5r_7}rU4rnTJy{oC0I zgLTeH;aY*ZW<I!ePdFP%31F=;R(A$#XE$CvvHF~I_PYJIA6UG;70)AFn+e6;hZ>v1 zA}jPLv(8y(bTa7pVU(vMYyhYrpoCf{?)Zt50%jZD8}~O3&-e`=(C=ZG4qiO_#J@iA z)w3H%bDg&vb9dcv?=Ri;+o9Lm*zAO1prpbr^Yg_6IYOux6qvp6!V4V0@%C17%i<hm zT8Cr}x2+(N4OXqao95Ldf}|ujAy=q)|9rlY$1r8?aaVbIl?LBAr?tt8T&akoTT&V& zQ7n#bIZ>N?%@W;$h))F8aUZbhmaZC%E9i8PlNXo!#AtymoG4XHJ4U_8MC_q&p+0@B zG9#<(H3cfb2<1FlKt)&I_lQ}<V}43VBao$llY#+WkmO_)KK+KnVW-m(LhLqz5H6qk z)Ti*p=Rf~>eisFRG)=Lffg~B~AWzd26{xT$hnufi3%=+1eo559L8JZ|oJHs-K$sq5 z415P?5#J`ClL*=AP2_Ra94+X)pnFUh1lF1)F>CAVc;Uox+-f$U3O<!mXz9J%I)JAE z!0tdxmF(SgD5lG+7w8kD(As2qjyeABX2&_}htX!I+Zzmf{lR9Z_w+MAefFs*l;?l= zH$Qgs_18vGaB$z!+{|4c`n6xe2YI8>2m?RMb7x(<-SRyj`IeUv<)1(L-?jl@r*+~u zy8im>i*J25&kJLX=hU{l{gU#L7Y+R<_mH<a(#Cljc(UA4(;nr)K(0+MDNryJe@sX@ z#`wn<$i9`Zr|I2&C|YcK5}b3Ojb81Z_`$Q^c=Cns_DAd1!CY(cop1Qioj2S&+gJpU zo)q(;c*ix(ZjztSS)OZCWW&z-fg5iRqPRjr762QLOCPaHogY95)F2h$n!dVv#=CW2 zI3FtkV67=ketPX^4?O;VA3gKbAn9mphG{nre*CUCd`P&U+aFwg=s*~SBrsA-*w=~x zd<C+L+IB%v7hdf_yi2G8CWPvNQLu;`Lo^tCpVWSc%m9^1FjT#a<j7l7XQy>|Y(sMC zT-zQY5yB?Y?!*n^-WIwjw071A#;D<u28|V2>JmMMLQ~4Mb7B>RMwk_*XoPzaOxDn- zXBYn@yI*`Cg(C?L^5y~J4$=5fH3q{2JbWsuP=G;E1aA^3w=89nX09|62G93JHO@4D zxP1Y?Fri|gkzOjV0MsnH@mpukoN2XM?RI;2J}*A|+0WvO|N0OA8-BAYiXzYRcDs#2 zSdB&l$K3Ng{1@5tRcCqO2Q#%=3U$wK@pFU-f&hDksY|}>%CMH}Q1NbH-m*o5%wuVc z21^E=6nRnjzHf|OSzZ0VzWSegy<QZ>R~<U|{$G9X+}tb`4fy3e4FIM~Jp!0gfTqhX zk5OUETgO@Fl#)fE(=0dEXl;6(PN8+7wUlbT(@oN>KOAjtY<}zhe=$b?#&3S?`fCm^ z&d<)zwy(eD(7pG(1q-^(W-E?@!Egis%|;vs0WY$*ChFSfaMih7!OXb>iEY~e_$Z}G zvM@iN=f&#!#?rz(nFhQh;=e4!(Aq9>>JIOloNP#_kt+x(Za3^O%B`a=+lqDLoJH&3 zvJ+T<C*?xZyZcacZ`1ds5CV+R8~wA7KmXmI{OsE+onv`XSm%19jY5Al4B|Ij{f<UB z0|1_ay)EzU*EC1DUCxV9Z++v~GgrUit;+MQwbc(`_+ddvavDZOQgi_hJh9aB-+Fax zPtz~Ee!;GGPJaK$*N-nh+fO>iY5~HSqBq<~vVpJ>0L;(LN-1jiey5?X>Amc<oH})i zi=)@tPirI@qLpLnkp%1s9P=|p_!ufe4lv<-gqVcX@wbqML|>_)C_?re79;je)3jDT z8pEK@38_rALB!T9L0~DL&3Q^(!IP}YxNa$~j|3!wP?H9+H4AO3X;8RAwFS~Is@aNh zRuu(Tc#H@c>BJGmoT4ud<zd|68*M0(Gz<JdNnx!m@*EAMsE|U0C`wE7cz}li{95KF zXuSA?>-78mG);@5*qsFd0Qf)t_x}xF{P~~%IaNXc0DDMKI3La6NLC-IJ3$yK<$-fV ze<JyvQkT>BiTXwLCC=gDZ3YxAbEHlan=VqSLeM%}HL*fRL12vO_Xo?%E30ekaTEoC zXRY-s4ifHUP1AWA08E#yr-_{g0MljHB=wyG=PW+Xm6U}xX_g^Pzu)g?S!SJWwc5+8 z>!T#;^arb}YY%+u{<YPWnfA=bKl!`YU41ByqeJ`m&fWdS_x;Mdg^;agGm1iR4!47v zoAl(~mcw%n;B|>dH_5;`&mzFN{{;X6Af*BTW9^yc)uJfg^$Tw~$IhHPZG0)vA6UCW z&83L<0q>+w%6UOG!BB9J7S1|@h`&tygLBq_z>K^F5K4%d5N_KWUAGvtBPj)FU5v8+ z@s%S#I`XaMjT4#9E2Nd5-8}ZdPrllY7q8uSyAqxdGF0;Ltbf<R_`8Ea*6&~UmS6P4 zhz<*JRaI&*AgVeB?!N=6#C*eh%c16;rt&2E4V%s3%1>W><jC<Kbp~t3X>j0#v(^|} z6jm3;^!kHF92Z)L3=smrwr#!_@gV0Nv7ALi0I0^oBEX946Uw1j4si*7gkn3mGNq*n zT+)GX?Ha<tysE&_B!N+++yIPG*qKTXC?)eekAhPCgt#<BY~%e5)RdX$IUd3!$DM)` z?r}!-0m{?Uo|6k0)ik)&6=(lbf*<P%)O10O4g6Zb_=g8<G-y!C%Wy$bx)LeDthF8` zNvqWa5TYWKV?~A7|0G(^?a2tI(%y1r6i2bRj#n-GZgBeaY2Wwv?AfzxA2)yXSAPWn zpZnbBDAe(NKS>f4?li_=<VoBuqqXwN))dm|S4xq4S53x;2tPc*!JX-#YU<@(D>cPi ziY_Sf#O-Titg~Sl;sp~1q30<frLTNE_1HO+=Q&ysOe+A><$Ryt(`CBsJX-+0PA`2U z&N*XCntq{8mgmM8W9)D=91e%Z*hZt#>GelR*6j~g*VZ5T?t>>!9BVXNzx_MEd*ii- zV;9ZOw(q|EmiylGPK3X$Rx|LuB+USz)ocVopjcAB*=)SBGk;t8%boN<cgpl%^l~LM z;LZ`iaCLK-&@JU)i$Coq<xP1p!8(^2V~s5he@nkEQ8F0ObW1?wiGwr#9s8rXNTNY( zuCucn#~yy_pO!a|6(%FXqXQ_4{Pg<s5B%gS?|a*SbztFo&r{CXnNYo9Pk8K%JPH;( zPZwDbHyxH9O4<MNHGl;nopm5A+V{@I>Xyau@Vqw@d!Cfm+B6>?Uw-z7N4~k*J!vfI z7l8$5jL}7|T`?GrnvGbBv79lC^ROp58|TjIEiW$<0<M96+9t;$l;I|*fk2tN_SO=U zK$85G(nzhaP&?hEsn7R^wnMv$ZeKM|VjfA7N{;~Wq|&;eAEIw@hh6#<$vm~rT{32( z3W-uG%Q75%j6etwQ+l2b7Jmr2BHX$QB~xjy$X<ZT9kd%{eE>`ep27y|5TK3%-U*HS zK=C})C5$mz8z?mioHYh2P7&WF1fcj6yf{NzMx6T3yDzv<YzadvYhHf#*VfkXCuV17 zcjpuBbD#U%r$7B^E~bQ$OqONX-%MgY##&D)SA|&kCUpo?RLtrAWb(yXJ+(`zCKkjm zA5shD-8*G8Ypgc5p_G!c*=*i;{k5~RGeU~}`}YNbpJiE|=Sh+bhr>9Ixz)fl0GKY* z0N^!sMs}i5U%6jDf4xY&ucCRDvrY(6Xq}hJ9(r?g!&uvBG`sylnq|HIV0C@-iN_y% z`pL&V-~Z@uee#Z5Zw!3z(7vVHZ@&JQ-uX7?oKmvgo{7R>I2-{ur0k<C1O9ru)!HTV z{3U<!+@hbCxLi?nj%}eoKLmR6)u24(cR4QPEx+61T1uT-JMJ3mzzKY(M2EhVOHK8* ztJ_NrUpNOKv?<oRXMXVPH%_knEXfD9B<hsjT_9bO4W2*!)c244^S!r!bYbS8l+sz- z^x+MA)c16^Id@n^P3N4mrt}sT0)vloC#`kh1b~ntR&b!H?l=%H#GVAO*5*ZuvB%lX z7qu<ur-dj5m<wHKq4T2fJx@${Gjnv#!yzsPy6p)%b?OwNLqxYVFI!@JbJ96Q7u-md z&LAZwxy(7CPlA0UVaeUNIF#h}y4>ZBa-61GI1J^$m(Qp|YpEp9VbiZ535RI$!1_-R z`%(^`GNzn%PfVwpToUa71w3T+#a)Cc6yeRv6kJiPMf3~|6$l#gvJ7sVbSkT6Cru5b zoD@XgQc5LhIvkDmE-v_9Dfz#xUmFe-=Qr|d4<UQ*PsiG?b<L=O3XI&9767{4E}nv2 z*d*}9FMbgKKJ}?jQSAk#nNSf3(X +!@5f$tOgM~XjAKSKX_vJlo&0f9~so_#DD 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�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%0AjtC^)c}3p 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%0A1!IGlD{$`g!G@zif{>dw8yVqe|(=rQh6>EaP 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ख़ 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 bU@baG`tr&mH+<jgyR*(PcL$<9^5*{lZE<vP diff --git a/app/plot_app/static/cesium/SampleData/models/CesiumAir/1_Cesium_Air_Prop.png b/app/plot_app/static/cesium/SampleData/models/CesiumAir/1_Cesium_Air_Prop.png deleted file mode 100644 index 7e5be61ce155a20f7c2eb1abfd9caf9a49227456..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 162164 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 diff --git a/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.dae b/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.dae deleted file mode 100644 index f74557ce5..000000000 --- a/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.dae +++ /dev/null @@ -1,333 +0,0 @@ -<?xml version="1.0" encoding="utf-8" ?> -<COLLADA xmlns="http://www.collada.org/2005/11/COLLADASchema" version="1.4.1"> - <asset> - <contributor> - <authoring_tool>modo 801 [Build 71114], Microsoft Windows 7 Service Pack 1 (6.1.7601 Service Pack 1)</authoring_tool> - <comments>Plug-in: [Build 71114]; Use Absolute Path: No; Merge Reference Items: No; Save Hidden Items: No; Save Cameras: No; Save Lights: Yes; Save Locators: Yes; Save Triangles as Triangles: Yes; Order Vertex Maps Alphabetically: Yes; Bake Matrices: No; Save Vertex Normals: Yes; Save UV Texture Coordinates: Yes; Save Vertex Colors: No; Save Vertex Weights: No; Save Animation: Yes; Sample Animation: No; Sample Animation Start: 0; Sample Animation End: 120; Save modo Profile: No; Save Maya Profile: No; Save 3ds Max Profile: No; Formatted Arrays: No;</comments> - <source_data>file:///C:/Users/bcoker/Documents/Models/Miscellaneous/Cesium/Cesium%20Air/Cesium_Air.lxo</source_data> - </contributor> - <created>2014-06-20T15:57:45Z</created> - <modified>2014-06-20T15:57:45Z</modified> - <up_axis>Y_UP</up_axis> - </asset> - <library_animations> - <animation id="Geometry-mesh005_rotation744X.ANGLE"> - <source id="Geometry-mesh005_rotation744X.ANGLE-input"> - <float_array id="Geometry-mesh005_rotation744X.ANGLE-input-array" count="8">0 0.166667 0.333333 0.5 0.666667 0.833333 1 1.25</float_array> - <technique_common> - <accessor count="8" source="#Geometry-mesh005_rotation744X.ANGLE-input-array" stride="1"> - <param name="TIME" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh005_rotation744X.ANGLE-output"> - <float_array id="Geometry-mesh005_rotation744X.ANGLE-output-array" count="8">0 -46.4516 -92.9032 -139.355 -185.806 -232.258 -278.71 -348.387</float_array> - <technique_common> - <accessor count="8" source="#Geometry-mesh005_rotation744X.ANGLE-output-array" stride="1"> - <param name="ANGLE" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh005_rotation744X.ANGLE-interpolations"> - <Name_array id="Geometry-mesh005_rotation744X.ANGLE-interpolations-array" count="8">LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR</Name_array> - <technique_common> - <accessor count="8" source="#Geometry-mesh005_rotation744X.ANGLE-interpolations-array" stride="1"> - <param name="INTERPOLATION" type="Name" /> - </accessor> - </technique_common> - </source> - <sampler id="Geometry-mesh005_rotation744X.ANGLE-sampler"> - <input semantic="INPUT" source="#Geometry-mesh005_rotation744X.ANGLE-input" /> - <input semantic="OUTPUT" source="#Geometry-mesh005_rotation744X.ANGLE-output" /> - <input semantic="INTERPOLATION" source="#Geometry-mesh005_rotation744X.ANGLE-interpolations" /> - </sampler> - <channel source="#Geometry-mesh005_rotation744X.ANGLE-sampler" target="Geometry-mesh005Node/rotation744X.ANGLE" /> - </animation> - <animation id="meshInst741Node_rotation743X.ANGLE"> - <source id="meshInst741Node_rotation743X.ANGLE-input"> - <float_array id="meshInst741Node_rotation743X.ANGLE-input-array" count="8">0 0.166667 0.333333 0.5 0.666667 0.833333 1 1.25</float_array> - <technique_common> - <accessor count="8" source="#meshInst741Node_rotation743X.ANGLE-input-array" stride="1"> - <param name="TIME" type="float" /> - </accessor> - </technique_common> - </source> - <source id="meshInst741Node_rotation743X.ANGLE-output"> - <float_array id="meshInst741Node_rotation743X.ANGLE-output-array" count="8">0 -46.4516 -92.9032 -139.355 -185.806 -232.258 -278.71 -348.387</float_array> - <technique_common> - <accessor count="8" source="#meshInst741Node_rotation743X.ANGLE-output-array" stride="1"> - <param name="ANGLE" type="float" /> - </accessor> - </technique_common> - </source> - <source id="meshInst741Node_rotation743X.ANGLE-interpolations"> - <Name_array id="meshInst741Node_rotation743X.ANGLE-interpolations-array" count="8">LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR LINEAR</Name_array> - <technique_common> - <accessor count="8" source="#meshInst741Node_rotation743X.ANGLE-interpolations-array" stride="1"> - <param name="INTERPOLATION" type="Name" /> - </accessor> - </technique_common> - </source> - <sampler id="meshInst741Node_rotation743X.ANGLE-sampler"> - <input semantic="INPUT" source="#meshInst741Node_rotation743X.ANGLE-input" /> - <input semantic="OUTPUT" source="#meshInst741Node_rotation743X.ANGLE-output" /> - <input semantic="INTERPOLATION" source="#meshInst741Node_rotation743X.ANGLE-interpolations" /> - </sampler> - <channel source="#meshInst741Node_rotation743X.ANGLE-sampler" target="meshInst741Node/rotation743X.ANGLE" /> - </animation> - </library_animations> - <library_images> - <image id="Image0001" name="Image0001"> - <init_from>0_Cesium_Air.png</init_from> - </image> - <image id="Image0002" name="Image0002"> - <init_from>1_Cesium_Air_Prop.png</init_from> - </image> - </library_images> - <library_materials> - <material id="Material-cesium_air" name="cesium_air"> - <instance_effect url="#Effect-cesium_air" /> - </material> - <material id="Material-prop" name="prop"> - <instance_effect url="#Effect-prop" /> - </material> - </library_materials> - <library_effects> - <effect id="Effect-cesium_air" name="cesium_air"> - <profile_COMMON> - <newparam sid="Image0001-surface"> - <surface type="2D"> - <init_from>Image0001</init_from> - <format>A8R8G8B8</format> - </surface> - </newparam> - <newparam sid="Image0001-sampler"> - <sampler2D> - <source>Image0001-surface</source> - <minfilter>LINEAR_MIPMAP_LINEAR</minfilter> - <magfilter>LINEAR</magfilter> - </sampler2D> - </newparam> - <technique sid="common"> - <phong> - <diffuse> - <texture texture="Image0001-sampler" texcoord="Texture" /> - </diffuse> - <specular> - <color sid="specular_effect_rgb">0.2 0.2 0.2 1</color> - </specular> - <shininess> - <float sid="specular_effect_rgb">256</float> - </shininess> - </phong> - </technique> - </profile_COMMON> - </effect> - <effect id="Effect-prop" name="prop"> - <profile_COMMON> - <newparam sid="Image0002-surface"> - <surface type="2D"> - <init_from>Image0002</init_from> - <format>A8R8G8B8</format> - </surface> - </newparam> - <newparam sid="Image0002-sampler"> - <sampler2D> - <source>Image0002-surface</source> - <minfilter>LINEAR_MIPMAP_LINEAR</minfilter> - <magfilter>LINEAR</magfilter> - </sampler2D> - </newparam> - <technique sid="common"> - <phong> - <diffuse> - <texture texture="Image0002-sampler" texcoord="Texture" /> - </diffuse> - <specular> - <color sid="specular_effect_rgb">0.2 0.2 0.2 1</color> - </specular> - <shininess> - <float sid="specular_effect_rgb">256</float> - </shininess> - </phong> - </technique> - </profile_COMMON> - </effect> - </library_effects> - <library_geometries> - <geometry id="Geometry-mesh090" name="Cesium_Air"> - <mesh> - <source id="Geometry-mesh090-positions" name="positions"> - <float_array id="Geometry-mesh090-positions-array" count="8925">-2.8606 0.910497 1.23372 -1.00372 1.23383 1.31657 -0.362054 1.29881 1.29388 0.049738 1.28391 1.25098 0.253012 1.20234 1.21153 0.33652 1.03694 1.23768 0.313822 0.830142 1.23983 -0.0377686 0.734245 1.24712 -2.08227 0.688761 1.25057 -2.86778 0.824883 1.24023 -2.87734 0.893829 1.23498 -2.46408 1.07078 7.2 -0.981983 1.28893 7.2 -0.501669 1.32613 7.2 -0.234905 1.30972 7.2 -0.136884 1.252 7.2 -0.133021 1.09323 7.2 -0.204042 1.02148 7.2 -0.456613 0.965064 7.2 -1.92131 0.919687 7.2 -2.4509 1.04073 7.2 -2.46763 1.06827 7.2 -2.73478 0.98687 4.3199 -0.89703 1.24344 4.32008 -0.284744 1.28924 4.32009 0.0546301 1.27143 4.31998 0.184063 1.21253 4.32017 0.208503 0.984069 4.32317 0.102732 0.894784 4.32145 -0.217727 0.822853 4.32114 -2.05394 0.772324 4.32046 -2.64884 0.894826 4.32058 -2.75196 0.980974 4.31997 -1.82772 1.27755 12.3399 -1.14266 1.37151 12.3399 -0.924029 1.38372 12.3399 -0.829547 1.36705 12.3399 -0.800554 1.3366 12.3397 -0.809166 1.26702 12.3398 -0.901072 1.22182 12.3399 -1.13577 1.19922 12.3399 -1.81079 1.22609 12.3399 -1.89925 1.25352 12.3399 -1.89796 1.26363 12.3399 -1.76323 1.11903 1.32571 -1.66134 1.15479 4.31986 -1.59822 1.21115 7.19977 -1.42697 1.33454 12.3396 -1.44222 1.36581 12.5498 -1.21126 1.38948 12.5493 -1.13124 1.39424 12.5493 -1.05708 1.3846 12.5527 -1.03514 1.35582 12.5639 -1.06081 1.30613 12.5743 -1.13404 1.27629 12.5789 -1.27041 1.26007 12.5792 -1.80964 1.2778 12.563 -1.87886 1.29809 12.5572 -1.88183 1.30597 12.555 -1.82073 1.31839 12.5528 -1.36221 1.40073 12.7537 -1.51884 1.39033 12.7509 -1.78367 1.36565 12.7464 -1.82649 1.36067 12.7457 -1.82386 1.36096 12.7457 -1.76338 1.32439 12.7468 -1.44289 1.31762 12.7517 -1.35108 1.33166 12.7527 -1.31778 1.35014 12.7537 -1.31247 1.37514 12.7535 -1.3148 1.38413 12.7534 -1.33447 1.39318 12.7537 -1.54024 1.39134 12.85 -1.54653 1.38737 12.8525 -1.54464 1.38313 12.8527 -1.53459 1.38145 12.8495 -1.57562 1.38 12.8601 -1.64394 1.37529 12.8645 -1.72596 1.36987 12.8492 -1.74827 1.37442 12.8497 -1.75568 1.37955 12.8477 -1.74381 1.38253 12.8476 -1.67383 1.38903 12.8601 -1.59186 1.39227 12.8642 -1.6177 1.38874 12.8683 -1.68941 1.38602 12.8664 -1.61185 1.38407 12.868 -1.67887 1.38087 12.8683 -0.905617 1.38173 12.1163 -1.13552 1.36608 12.1163 -0.799288 1.37128 12.117 -0.75705 1.33624 12.1188 -0.771188 1.25096 12.1182 -0.869026 1.20705 12.1169 -1.10351 1.18465 12.1166 -1.81642 1.20937 12.1166 -1.92455 1.24339 12.1165 -1.92153 1.25251 12.1163 -1.85504 1.2662 12.1164 -1.43409 1.32676 12.1161 -0.124796 0.795794 2.82718 -2.06201 0.73219 2.82874 0.171736 0.892075 2.82321 0.247095 1.03043 2.81458 0.210736 1.16944 2.8096 0.063177 1.23548 2.80639 -0.303586 1.2563 2.80564 -0.938063 1.21827 2.80806 -2.7733 0.931126 2.82084 -2.77348 0.932153 2.82047 -2.73839 0.885487 2.82295 -1.71164 1.13858 2.81301 -0.339043 0.895809 5.75547 -1.98921 0.845889 5.75525 -0.0523175 0.957319 5.75576 0.0367956 1.03701 5.75673 0.0228774 1.23286 5.75519 -0.0916914 1.29061 5.75503 -0.394878 1.30745 5.75508 -0.941198 1.26589 5.75507 -2.61106 1.02332 5.75503 -2.60117 1.02837 5.75499 -2.55116 0.96796 5.75529 -1.63128 1.18112 5.75487 -1.03316 1.31465 8.83877 -0.636319 1.34466 8.83876 -1.08434 1.34037 10.4775 -0.770968 1.36319 10.4775 -0.423033 1.33024 8.839 -0.61116 1.35076 10.478 -0.343606 1.28008 8.83961 -0.550328 1.30816 10.4792 -0.345744 1.14581 8.83941 -0.558466 1.19838 10.4788 -0.425703 1.08333 8.83897 -0.647365 1.14519 10.4779 -0.632616 1.03949 8.83886 -0.868061 1.11207 10.4777 -1.88635 1.01625 8.83885 -1.85139 1.11281 10.4777 -2.27545 1.10828 8.83882 -2.1 1.17583 10.4776 -2.2856 1.12969 8.83876 -2.10356 1.1911 10.4775 -2.26106 1.13592 8.83879 -2.05805 1.20106 10.4776 -1.54351 1.24968 8.83855 -1.4888 1.28822 10.4773 -1.66617 1.33854 12.5513 -1.67004 1.30049 12.3397 -1.47328 1.21266 12.3399 -1.54003 1.26893 12.5711 -1.67478 1.37643 12.7482 -1.60314 1.32101 12.7492 -1.72254 1.38279 12.857 -1.70882 1.38578 12.8539 -1.71357 1.37765 12.859 -1.68495 1.37258 12.8568 -1.45996 1.19701 12.1166 -1.68941 1.29057 12.1162 -1.05275 0.737875 2.82844 -1.01853 0.712426 1.24877 -1.09789 0.773962 4.32159 -2.37274 1.04881 2.81713 -2.42715 1.00191 1.29663 -2.31414 1.06499 4.31986 -1.13064 0.871862 5.75536 -1.15924 0.943296 7.2 -2.21987 1.09201 5.7549 -2.1237 1.12928 7.19985 -1.25948 1.02787 8.83886 -1.35972 1.11244 10.4777 -1.97894 1.18304 8.83863 -1.83417 1.23681 10.4774 -1.03143 1.24216 -8.88178e-016 -1.80986 1.13029 -1.55431e-015 -2.47427 1.02195 -2.22045e-015 -2.90565 0.951746 -2.66454e-015 0.221538 1.23496 1.94289e-016 0.379618 1.13306 3.33067e-016 0.0242656 1.287 2.08167e-017 -0.375912 1.3038 -3.33067e-016 0.472883 1.04894 3.88578e-016 -1.00959 1.24248 0.768765 -1.78046 1.13382 0.774548 -2.44 1.02654 0.783834 -2.86966 0.954235 0.813454 0.378507 1.1019 0.80182 0.235106 1.21245 0.784649 0.0340753 1.2764 0.769905 -0.36599 1.30005 0.76612 0.464175 0.998319 0.812922 0.802604 0.802186 0.800626 0.79115 0.902872 6.66134e-016 1.52101 0.426252 0.799151 1.2793 0.682098 1.11022e-015 -1.04258 1.24092 0.268891 -1.78694 1.13359 0.269904 -2.43782 1.02794 0.273252 -2.89075 0.95396 0.282754 0.378516 1.1303 0.287928 0.224586 1.23175 0.280707 -5.80546e-005 1.28696 0.271074 -0.410984 1.29993 0.267385 0.477022 1.03945 0.292532 0.817732 0.879512 0.284578 1.33625 0.64827 0.302006 0.556419 0.5749 1.16422 1.25982 0.0936795 1.14741 -1.77495 1.12766 1.00461 -1.00539 1.24121 0.996331 -2.43774 1.01545 0.997887 -2.87296 0.937613 0.986753 0.245316 1.20545 0.968012 0.370594 1.07704 0.992194 0.0433171 1.27798 0.973429 -0.361367 1.30148 0.985291 0.433652 0.946967 1.02446 0.692585 0.742334 0.990396 1.48493 0.266784 0.987665 -2.26215 0.0227309 1.21381 -3.09432 0.0380307 1.20684 -1.1257 0.0293466 1.21109 -0.158994 0.0209813 1.21144 0.291976 0.0153572 1.21228 -2.99894 0.3945 1.14169 -2.17255 0.338178 1.20385 -1.07341 0.354587 1.21119 -0.0909936 0.36621 1.21058 0.289945 0.424154 1.21032 -2.9063 0.642662 1.12472 -2.11754 0.561884 1.20234 -1.03728 0.582395 1.21124 -0.0557185 0.599198 1.2103 0.61714 0.971713 0.289664 0.593632 0.915 0.805428 0.609521 0.984531 5.55112e-016 0.538155 0.849247 1.00072 0.341526 0.685606 1.1754 0.488161 0.467522 1.20971 0.770484 0.0278348 1.20968 -0.0835475 0.794296 1.94511 0.207868 0.897762 1.93702 0.274041 1.03698 1.93345 0.227265 1.18529 1.91694 0.0375424 1.26077 1.92726 -0.365 1.27343 1.95025 -0.993325 1.22077 1.96412 -2.78556 0.906751 1.93404 -2.78556 0.906754 1.93413 -2.78161 0.885843 1.93773 -2.07622 0.710495 1.94786 -1.73272 1.12669 1.97112 -1.0373 0.726311 1.94667 -2.37929 1.0241 1.95411 -3.19174 0.790893 1.02305 -3.15142 0.850942 1.00601 -3.28307 0.637176 1.06221 -3.38757 0.393025 1.10006 -3.57829 0.0631702 1.18951 -3.19284 0.880955 0.852467 -3.35449 0.819443 0.896852 -3.55787 0.710091 0.943298 -3.80654 0.502873 1.0093 -4.15335 0.153743 1.11726 -3.27068 0.89828 -2.66454e-015 -3.2682 0.893939 0.282577 -3.60727 0.849106 -3.10862e-015 -3.58847 0.839394 0.279845 -3.8611 0.81061 -3.55271e-015 -3.85333 0.79315 0.280829 -4.19351 0.760266 -3.55271e-015 -4.18953 0.73175 0.295204 -4.55405 0.704408 -3.55271e-015 -4.56703 0.650769 0.341586 -4.45333 0.371212 0.905228 -4.0809 0.667298 0.706126 -3.76343 0.767175 0.601982 -3.52776 0.82619 0.55763 -3.26347 0.886151 0.533405 -1.0236 1.24218 0.515694 -1.78666 1.13354 0.518394 -2.44601 1.02659 0.522334 -2.89094 0.953532 0.521396 0.381044 1.11857 0.52501 0.23316 1.22333 0.51306 0.0212729 1.28251 0.51391 -0.383703 1.3009 0.514382 0.473267 1.02731 0.533666 1.41903 0.571843 0.53681 0.800394 0.863345 0.534012 0.606641 0.956289 0.533823 -5.73511 0.739518 -5.32907e-015 -5.75592 0.677656 0.376051 -5.77664 0.438906 0.935443 -5.7852 0.138785 1.21573 -5.7842 -0.266234 1.38133 -4.17265 -0.31347 1.31539 -5.78222 -0.684009 1.37481 -4.21065 -0.824744 1.43343 -5.79226 -1.01763 1.14128 -4.23828 -1.37941 1.23597 -5.8193 -1.18126 0.824844 -4.24439 -1.65608 0.869622 -5.89864 -1.27296 0.280459 -4.24521 -1.81498 0.364084 -5.8051 -1.32173 -5.32907e-015 -4.23955 -1.84335 -3.55271e-015 -4.95829 0.705942 -4.44089e-015 -4.95832 0.652402 0.351228 -4.95835 0.384324 0.922439 -4.95807 0.0880007 1.1832 -4.95798 -0.321723 1.34974 -4.95783 -0.783534 1.413 -4.95388 -1.26131 1.16805 -4.94784 -1.48302 0.819215 -4.95356 -1.61292 0.335906 -4.95313 -1.63652 -4.44089e-015 -3.63622 -0.349188 1.32219 -3.73719 -1.86421 -3.10862e-015 -3.74929 -1.82472 0.405021 -3.81165 -1.62047 0.86859 -3.77208 -1.46062 1.30218 -3.68596 -0.85913 1.43484 -3.25869 -1.29656 1.42219 -3.18883 -0.843576 1.43534 -3.16199 -0.369128 1.32617 -4.24587 -1.77648 0.545555 -4.95293 -1.57685 0.525992 -5.83882 -1.26267 0.508283 -3.7565 -1.76139 0.560596 -3.26563 -1.82787 0.410053 -3.25612 -1.7596 0.589382 -3.25512 -1.86954 -2.66454e-015 -4.95154 -1.39253 0.994249 -4.24495 -1.54707 1.05761 -5.87151 -1.09451 0.980758 -3.82876 -1.55383 1.06942 -2.32656 -0.363855 1.32254 -2.3663 -1.01102 1.45075 -2.34399 -0.760985 1.41314 -1.23346 -0.844358 1.43632 -1.21598 -0.689767 1.40324 -1.17209 -0.348552 1.31778 -0.174676 -0.346112 1.31545 -0.214815 -0.836892 1.4302 -0.219684 -0.671056 1.39716 0.276873 -0.344882 1.31384 0.248733 -0.85873 1.42513 0.258637 -0.668811 1.39291 0.811947 -0.337501 1.30956 0.77168 -0.971456 1.43812 0.793326 -0.675504 1.38825 1.338 -0.319447 1.30094 1.31043 -1.11753 1.40627 1.32505 -0.683333 1.38189 1.76473 -0.332143 1.30009 1.77251 -0.716442 1.37878 1.74925 -1.29668 1.33343 1.76088 0.0510405 1.15747 1.82686 0.27569 0.970049 1.86313 0.433809 0.780029 1.82495 0.573037 0.518776 1.75108 0.651291 0.262666 1.69433 0.677385 1.55431e-015 2.32374 -1.28269 1.29128 2.32391 -0.716599 1.37027 2.32197 -0.358534 1.29999 2.32021 0.048577 1.13811 2.32037 0.264541 0.972793 2.32175 0.434351 0.773028 2.32243 0.554741 0.553374 2.32571 0.64177 0.28183 2.31562 0.67152 2.22045e-015 1.98355 -1.57288 1.08436 2.3169 -1.53369 1.09386 2.01028 -1.68727 0.855972 2.31678 -1.67383 0.865854 1.91815 -1.8193 0.462039 2.28945 -1.80248 0.479663 1.93876 -1.83239 0.332648 2.28702 -1.82233 0.358958 1.94845 -1.84273 1.77636e-015 2.30033 -1.83977 1.77636e-015 -2.60086 -1.86752 -2.22045e-015 -2.60716 -1.83443 0.418368 -2.61487 -1.81425 0.625889 -1.99532 -1.86483 -1.77636e-015 -1.9977 -1.84598 0.432443 -2.01965 -1.85643 0.660242 -0.0850102 -1.85606 -6.93889e-017 -0.0688008 -1.84433 0.37917 -0.0120897 -1.85112 0.582463 0.443437 -1.85309 3.88578e-016 0.452827 -1.84304 0.363998 0.499097 -1.84633 0.534996 1.18961 -1.84895 1.11022e-015 1.18623 -1.83916 0.346128 1.1974 -1.84054 0.482126 -3.29914 -1.54385 1.5752 -2.99555 -1.39619 1.6228 -2.16425 -1.10752 1.68184 -1.24499 -0.995049 1.66469 1.11399 -1.24579 1.64061 1.46335 -1.4744 1.65748 -0.226847 -0.988566 1.64681 0.241938 -1.02236 1.64918 0.736456 -1.10941 1.63754 1.57409 -1.66247 1.55475 1.43317 -1.87647 1.00763 -2.74871 -1.71718 1.91716 -2.58302 -1.55056 1.93711 1.03549 -1.61465 1.89903 1.11937 -1.80586 1.82475 -1.92707 -1.22916 1.95142 -1.14852 -1.0981 1.94655 -0.218292 -1.10088 1.9186 0.133629 -1.15396 1.91285 0.51042 -1.25129 1.89458 0.773185 -1.38839 1.90081 -2.34723 -1.85939 2.11988 -2.20446 -1.6693 2.11612 0.54271 -1.77838 2.08638 0.641365 -1.98867 2.07001 0.371755 -1.61623 2.10174 0.182194 -1.48514 2.11646 0.0160156 -1.38798 2.12383 -0.229789 -1.27687 2.12628 -1.03833 -1.21199 2.1365 -1.67588 -1.3285 2.13339 0.623186 -2.04585 1.9526 0.995531 -1.97768 1.56413 2.30883 -1.74503 0.683339 1.99439 -1.75572 0.681219 1.36345 -1.87709 0.859171 0.839035 -1.98414 1.25056 0.31702 -2.01904 1.45868 2.29848 -1.78001 0.575016 1.9236 -1.79587 0.593321 1.26978 -1.85662 0.68484 0.647973 -1.89545 0.845634 0.147176 -1.92305 0.961725 -3.28372 -1.67599 1.43261 -2.73992 -1.84123 1.77765 -2.2658 -1.96491 2.10834 -3.25367 -1.73973 1.24801 -2.71149 -1.90927 1.59383 -2.23194 -2.07774 1.92987 -1.21186 -2.1453 2.0259 -1.20886 -2.10176 2.18018 -0.278607 -2.14631 2.02102 -0.27605 -2.0989 2.17175 0.154596 -2.11883 2.00104 0.153417 -2.08045 2.13603 -4.95274 -1.5391 0.663011 -4.25016 -1.72436 0.708193 -5.80711 -1.2421 0.647634 -3.76387 -1.66802 0.739425 -3.25409 -1.75064 0.889448 -2.6458 -1.8546 1.03355 -2.07535 -1.95272 1.1474 -4.9516 -1.51366 0.738678 -4.24794 -1.69522 0.785379 -5.80286 -1.21694 0.736151 -3.79535 -1.63975 0.816476 -3.26059 -1.75115 1.07986 -2.66721 -1.88406 1.33725 -2.11163 -2.01801 1.54458 -1.74849 -2.04412 2.16026 -1.7284 -2.11636 2.01647 -0.728275 -2.10595 2.17846 -0.714072 -2.14646 2.03276 -0.0578617 -2.08807 2.15759 -0.0610736 -2.13943 2.01015 -0.493615 -2.1051 2.17512 -0.492185 -2.14632 2.03001 0.289626 -1.89346 2.1232 0.0835171 -1.81978 2.14261 -0.1388 -1.76055 2.1559 -0.336963 -1.7059 2.16164 -0.592167 -1.66713 2.16483 -1.06829 -1.66025 2.16628 -1.6658 -1.69183 2.15785 -2.17718 -1.81759 2.13612 -1.57955 -1.86312 -1.33227e-015 -1.57606 -1.8473 0.442088 -1.5859 -1.86444 0.684753 -1.6188 -1.98446 1.21079 -1.64506 -2.07908 1.64296 -1.20822 -1.86143 -1.11022e-015 -1.19966 -1.84653 0.449296 -1.20474 -1.86624 0.696518 -1.20873 -1.98898 1.2283 -1.18715 -2.10168 1.66679 -0.894113 -1.85968 -7.77156e-016 -0.8777 -1.84573 0.448868 -0.885057 -1.86643 0.699479 -0.868878 -1.98219 1.20352 -0.812564 -2.07854 1.6361 -0.760708 -1.85869 -6.66134e-016 -0.741597 -1.84554 0.4403 -0.730273 -1.86477 0.690187 -0.677063 -1.97213 1.16492 -0.595524 -2.07103 1.62019 -0.67112 -1.8582 -5.55112e-016 -0.651976 -1.84553 0.425042 -0.625002 -1.86111 0.667064 -0.537117 -1.96033 1.11885 -0.422798 -2.06479 1.59364 -0.572766 -1.85769 -4.44089e-016 -0.555488 -1.84529 0.407473 -0.514736 -1.85823 0.644363 -0.395915 -1.94951 1.07399 -0.252535 -2.05465 1.55948 -0.424052 -1.85724 -3.88578e-016 -0.408286 -1.84492 0.393449 -0.35064 -1.85507 0.618932 -0.201186 -1.93898 1.02938 -0.0429254 -2.0397 1.52364 3.27517 -0.354407 1.28387 3.2752 0.0445303 1.12153 3.27517 0.264214 0.961514 3.27517 0.432706 0.76423 3.27514 0.550048 0.544735 3.27523 0.633938 0.27611 3.27514 0.661616 2.66454e-015 3.27526 -1.8337 2.66454e-015 3.27502 -1.81545 0.350751 3.27508 -1.79522 0.47593 3.2751 -1.77431 0.572601 3.27511 -1.74139 0.680584 3.27515 -1.66918 0.867423 3.27507 -1.52636 1.08873 3.27516 -1.2674 1.28062 3.27523 -0.714736 1.35619 4.21495 -1.24626 1.27531 4.21488 -0.696908 1.33512 4.21492 -0.349108 1.26608 4.21483 0.0479858 1.10122 4.21487 0.259511 0.951583 4.21487 0.421343 0.763424 4.21489 0.53615 0.551841 4.21488 0.621115 0.287761 4.21466 0.650829 3.55271e-015 4.21462 -1.82726 3.55271e-015 4.21504 -1.8068 0.37896 4.21493 -1.78573 0.49729 4.21489 -1.76437 0.592711 4.21493 -1.73153 0.702777 4.21488 -1.65703 0.88355 4.21497 -1.50517 1.10685 5.16099 -0.334675 1.22673 5.16128 0.0554173 1.05735 5.16031 0.273018 0.912027 5.16085 0.424472 0.717005 5.16108 0.535063 0.503273 5.16325 0.613879 0.242332 5.15938 0.633937 4.44089e-015 5.16027 -1.82115 4.44089e-015 5.16304 -1.80717 0.33226 5.16022 -1.78913 0.45804 5.16116 -1.76959 0.555666 5.16038 -1.73802 0.665938 5.16083 -1.66452 0.858349 5.16204 -1.51404 1.08132 5.16038 -1.21146 1.26376 5.16204 -0.687288 1.29968 5.75626 -1.19282 1.23353 5.75044 -0.673759 1.24339 5.74227 -0.338359 1.12047 5.7275 0.0290979 0.945864 5.73388 0.246752 0.83532 5.72243 0.392155 0.676006 5.72471 0.498584 0.476564 5.72606 0.57317 0.242584 5.72234 0.595015 5.32907e-015 5.75836 -1.81554 5.32907e-015 5.76122 -1.79996 0.342126 5.75853 -1.77996 0.470115 5.75953 -1.75928 0.566939 5.75893 -1.72587 0.679409 5.75811 -1.65176 0.856968 5.75558 -1.51927 1.04535 6.38415 -0.325806 0.95647 6.15372 0.0171026 0.840694 5.98493 0.248619 0.75706 5.96917 0.364108 0.595776 5.98062 0.460231 0.403439 5.98662 0.515287 0.194522 5.98932 0.526543 5.32907e-015 6.44893 -1.79308 5.32907e-015 6.45005 -1.78081 0.278627 6.4487 -1.76506 0.391313 6.44859 -1.74091 0.496448 6.44763 -1.70616 0.60791 6.4498 -1.63463 0.773696 6.43984 -1.49448 0.957273 6.4034 -1.17617 1.12681 6.39036 -0.679991 1.13323 6.55564 0.0638996 0.234684 6.32029 0.277982 0.227806 6.90651 -0.250826 0.260653 6.55374 0.0670021 5.32907e-015 6.32128 0.282499 5.32907e-015 6.90638 -0.243252 6.21725e-015 6.1775 0.412324 0.209027 6.17879 0.424114 5.32907e-015 6.19134 0.272672 0.433208 6.39814 0.0463629 0.472167 6.70638 -0.289922 0.541704 6.10554 0.387591 0.421501 6.0611 0.331831 0.56354 6.10501 0.263485 0.571285 6.29041 0.0348431 0.633648 6.57297 -0.316481 0.728907 6.76895 -0.734278 1.02007 6.75093 -0.462328 0.880632 6.78145 -1.16578 0.996286 6.78121 -1.47013 0.857766 6.78396 -1.60222 0.70015 6.77845 -1.67869 0.544409 6.77634 -1.71117 0.453008 6.7793 -1.7353 0.358349 6.77943 -1.75212 0.255565 6.78025 -1.76585 6.21725e-015 6.78442 -0.382815 0.695085 6.89472 -0.360265 0.528334 7.07426 -0.322798 0.231877 7.10148 -0.302007 6.21725e-015 7.09111 -0.809214 0.861763 7.09909 -0.566329 0.768521 7.11288 -0.469873 0.592842 7.17524 -0.433167 0.427439 7.24728 -0.40229 0.232003 7.27297 -0.38898 6.21725e-015 7.06498 -1.72661 6.21725e-015 7.06941 -1.71506 0.198837 7.07464 -1.69246 0.315764 7.0764 -1.66456 0.403396 7.07675 -1.62566 0.495138 7.07908 -1.55326 0.617039 7.08368 -1.412 0.750359 7.09464 -1.15512 0.83868 7.43247 -1.15684 0.640458 7.42612 -0.904291 0.660382 7.43092 -0.703412 0.618088 7.42651 -0.58806 0.497006 7.44403 -0.537645 0.362872 7.46799 -0.512265 0.206704 7.48161 -0.504545 6.21725e-015 7.43259 -1.35994 0.585675 7.4173 -1.65442 6.21725e-015 7.41643 -1.64285 0.169927 7.41078 -1.61663 0.277294 7.40924 -1.58893 0.349033 7.40982 -1.55288 0.417177 7.41742 -1.4903 0.497692 7.67805 -1.15155 0.478596 7.65629 -0.967908 0.501304 7.64767 -0.842847 0.488781 7.66325 -0.753005 0.422276 7.67568 -0.696378 0.322046 7.68583 -0.667364 0.184604 7.69501 -0.661582 7.10543e-015 7.69308 -1.5642 7.10543e-015 7.68202 -1.54997 0.157838 7.66374 -1.52416 0.255308 7.65143 -1.49915 0.313788 7.6406 -1.47163 0.362232 7.64939 -1.42929 0.40236 7.67749 -1.31503 0.446457 8.0047 -1.25517 7.10543e-015 7.95461 -1.25866 0.178064 7.88798 -1.25911 0.268882 7.83543 -1.26965 0.322912 7.77492 -1.28841 0.375376 8.00143 -1.06755 7.10543e-015 7.9572 -1.07614 0.174271 7.89478 -1.08975 0.269981 7.84166 -1.10926 0.333817 7.78051 -1.13456 0.394842 7.91197 -0.898492 7.10543e-015 7.88789 -0.907821 0.172912 7.84109 -0.926293 0.286286 7.79433 -0.949995 0.362866 7.74076 -0.975564 0.426557 7.86644 -1.47565 7.10543e-015 7.83227 -1.46028 0.167114 7.79449 -1.43481 0.258769 7.76098 -1.41842 0.312187 7.72082 -1.41227 0.357847 -7.40449 0.22328 1.30388 -7.40449 -0.120684 1.4003 -7.40449 -0.391762 1.28379 -7.40449 -0.573697 1.01945 -7.40449 -0.603505 0.90511 -7.40449 -0.653087 0.771225 -7.40449 -0.671501 0.70311 -7.40449 -0.685386 0.625224 -7.40449 -0.699825 0.495734 -7.40449 -0.706931 0.264679 -7.40449 -0.739667 -6.21725e-015 -7.40449 0.798856 -6.21725e-015 -7.40449 0.731278 0.440453 -7.40449 0.517679 1.0206 -9.50656 0.657334 0.954006 -9.50656 0.455411 1.37934 -9.50656 0.280634 1.32813 -9.50871 0.162858 1.11805 -9.50656 0.135913 0.96141 -9.50656 0.0960734 0.828991 -9.50656 0.0905317 0.709826 -9.50656 0.0868204 0.647397 -9.50656 0.0791254 0.574319 -9.50656 0.0640795 0.457422 -9.50656 0.0403406 0.248261 -9.50656 0.0647693 -8.88178e-015 -9.50656 0.853052 -8.88178e-015 -9.50656 0.794297 0.528706 -12.6799 0.881117 -1.06581e-014 -12.6654 0.843699 0.288845 -12.6654 0.800749 0.600715 -12.6653 0.728977 0.917159 -12.6651 0.709933 0.952314 -12.6628 0.660162 0.94412 -12.6656 0.618728 0.832053 -12.6655 0.60238 0.739213 -12.6655 0.591821 0.660083 -12.6655 0.585029 0.5946 -12.6654 0.578134 0.511849 -12.6654 0.571259 0.403918 -12.6655 0.565784 0.277692 -12.6654 0.561242 -1.06581e-014 -10.8757 0.851201 -8.88178e-015 -10.8757 0.83518 0.405763 -10.8757 0.755401 0.818182 -10.8757 0.621437 1.30605 -10.8757 0.481736 1.26865 -10.8757 0.405087 1.04558 -10.8757 0.38211 0.914766 -10.8757 0.366118 0.789672 -10.8757 0.356105 0.68813 -10.8757 0.350143 0.620828 -10.8757 0.345011 0.542543 -10.8757 0.338464 0.426265 -10.8757 0.332132 0.244064 -10.8757 0.329029 -8.88178e-015 -13.2782 0.833408 -1.06581e-014 -13.2574 0.818853 0.286765 -13.2054 0.785323 0.519501 -13.3565 0.769894 -1.24345e-014 -13.3351 0.757877 0.283929 -13.2955 0.748817 0.514708 -13.3617 0.744906 -1.24345e-014 -13.3391 0.740715 0.285682 -13.3042 0.735043 0.503212 -13.3617 0.735443 -1.24345e-014 -13.3325 0.71509 0.283852 -13.3035 0.714485 0.481775 -13.3524 0.721203 -1.24345e-014 -13.3202 0.698295 0.281391 -13.2999 0.696195 0.457415 -13.3144 0.682206 -1.24345e-014 -13.2852 0.673915 0.278233 -13.2938 0.686797 0.441899 -13.0377 0.850873 -1.06581e-014 -13.0036 0.838911 0.272784 -13.0028 0.801169 0.532791 -13.0247 0.612272 -1.06581e-014 -13.0217 0.61694 0.277692 -13.0166 0.622344 0.397928 -12.9669 0.728887 0.789352 -12.9935 0.696688 0.811417 -12.9903 0.670371 0.772235 -12.9939 0.650452 0.685009 -13.0091 0.641402 0.60948 -13.0146 0.635006 0.550336 -12.9483 0.618709 0.494255 -12.9547 0.750794 0.735589 -10.09 0.811719 0.476316 -10.09 0.852263 -8.88178e-015 -10.09 0.699124 0.896127 -10.09 0.52616 1.34811 -10.09 0.397571 1.30278 -10.089 0.320317 1.08178 -10.09 0.294242 0.941533 -10.09 0.276718 0.812236 -10.09 0.265099 0.700581 -10.09 0.259168 0.636075 -10.09 0.25394 0.560778 -10.09 0.246939 0.444145 -10.09 0.239827 0.246473 -10.09 0.236618 -8.88178e-015 -13.3399 5.34196 0.0429537 -12.0446 5.36144 0.0872525 -11.2962 4.01098 0.115541 -13.1878 3.97482 0.0569861 -12.9948 2.27196 0.0744643 -10.3326 2.16944 0.154115 -12.8349 0.798942 0.0885952 -9.81985 0.872067 0.180454 -8.70039 0.826069 0.181417 -8.65789 1.45033 0.167433 -5.77449 0.629728 0.183867 -5.77177 0.667045 0.183086 -12.1031 5.40649 0.086309 -13.2971 5.38886 0.0424723 -13.3399 5.34196 -0.0429537 -12.0446 5.36144 -0.0872525 -11.2962 4.01098 -0.115541 -13.1878 3.97482 -0.0569861 -12.9948 2.27196 -0.0744643 -10.3326 2.16944 -0.154115 -12.8349 0.798942 -0.0885952 -9.81985 0.872067 -0.180454 -8.70039 0.826069 -0.181417 -8.65789 1.45033 -0.167433 -5.77449 0.629728 -0.183867 -5.77177 0.667045 -0.183086 -12.1031 5.40649 -0.086309 -13.2971 5.38886 -0.0424723 -12.0121 5.46406 -3.13989e-011 -11.9208 5.40242 -3.18074e-011 -11.1277 4.04176 -4.22045e-011 -10.2004 2.38275 -5.49853e-011 -8.64211 1.63967 -6.00906e-011 -5.72151 0.706272 -6.47318e-009 -12.8798 0.793459 6.4511e-009 -13.0544 2.26367 -5.57066e-011 -13.2474 3.96691 -4.26397e-011 -13.3969 5.35957 -3.20526e-011 -13.3218 5.44265 -3.15534e-011 -9.55623 0.652418 0.966928 -9.8701 0.649053 1.63361 -10.1445 0.725129 1.46672 -9.79686 0.716855 0.804949 -10.4854 0.724387 1.84024 -10.2306 0.672046 1.95281 -10.6161 0.721407 2.05241 -10.3229 0.671536 2.08527 -10.6609 0.719305 2.29351 -10.3754 0.670297 2.29666 -10.8348 0.708851 3.59404 -10.6165 0.658739 3.60052 -11.1923 0.706713 5.47389 -10.9685 0.678882 5.43089 -11.0456 0.736777 2.02674 -11.1169 0.736368 2.29558 -11.2773 0.733151 3.57802 -11.4971 0.727991 5.47602 -11.5576 0.745857 2.01709 -11.6175 0.746273 2.28734 -11.7145 0.747134 3.57178 -11.7752 0.741667 5.47804 -12.503 0.737182 1.97323 -12.4746 0.73817 2.26635 -12.36 0.739161 3.57522 -12.2067 0.737699 5.43364 -10.2792 0.736987 0.786705 -10.5668 0.739061 1.30781 -10.8681 0.738425 1.70789 -11.3749 0.745821 1.60701 -11.1162 0.746242 1.19539 -10.9622 0.764731 0.766429 -12.5469 0.7395 1.49191 -12.5875 0.742484 1.12029 -12.6126 0.753854 0.804965 -12.1241 0.75396 2.26912 -12.1093 0.753659 1.99817 -12.1375 0.753624 3.57301 -12.0133 0.748423 5.47811 -12.0609 0.754275 1.52623 -11.9716 0.758422 1.11647 -11.8972 0.762687 0.761784 -10.8239 0.665074 4.69747 -11.025 0.70503 4.69587 -11.408 0.732226 4.68728 -11.7639 0.74802 4.68226 -12.0882 0.753529 4.68677 -12.2627 0.740277 4.6942 -9.8701 0.607123 1.63361 -10.1719 0.526735 1.34123 -10.4854 0.582229 1.84024 -10.2306 0.612998 1.95281 -10.6161 0.586768 2.05241 -10.3229 0.620127 2.08527 -10.6609 0.588829 2.29351 -10.3754 0.621579 2.29666 -10.8348 0.599134 3.59404 -10.6165 0.633372 3.60052 -11.1923 0.642678 5.47389 -10.9682 0.646024 5.43382 -11.0456 0.590844 2.02674 -11.1169 0.593173 2.29558 -11.2773 0.601802 3.57802 -11.4971 0.654323 5.47602 -11.5576 0.61476 2.01709 -11.6175 0.619354 2.28734 -11.7145 0.629691 3.57178 -11.7752 0.672352 5.47804 -12.503 0.718956 1.97323 -12.4746 0.718468 2.26635 -12.36 0.71738 3.57522 -12.2067 0.71871 5.43364 -10.6675 0.534688 1.30073 -10.8681 0.586316 1.70789 -11.3749 0.60486 1.60701 -11.2449 0.561164 1.20374 -12.5469 0.715267 1.49191 -12.6021 0.705119 0.957511 -12.1241 0.666174 2.26912 -12.1093 0.663115 1.99817 -12.1375 0.678339 3.57301 -12.0133 0.693155 5.47811 -12.0609 0.65241 1.52623 -11.9956 0.633312 1.0545 -10.8239 0.631752 4.69747 -11.025 0.608814 4.69587 -11.408 0.612814 4.68728 -11.7639 0.639153 4.68226 -12.0882 0.682044 4.68677 -12.2627 0.716236 4.6942 -9.64257 0.606208 1.06873 -10.817 0.650414 4.69874 -10.6133 0.646988 3.60112 -10.369 0.647766 2.29789 -10.3155 0.647993 2.08751 -10.2246 0.647892 1.95977 -9.86302 0.632326 1.64031 -9.59343 0.634865 1.00582 -10.7369 0.583773 1.5267 -10.2895 0.57872 1.60006 -11.2944 0.601233 1.44924 -12.5728 0.709466 1.20344 -12.0267 0.643979 1.33106 -12.2663 0.728441 4.6945 -12.3682 0.732566 3.57591 -12.4803 0.731613 2.26683 -12.5071 0.730678 1.97362 -12.5546 0.73333 1.4927 -12.592 0.727832 1.17496 -12.6401 0.728944 0.916109 -11.1919 0.674021 5.49199 -11.497 0.691933 5.49589 -11.7755 0.70767 5.49546 -12.014 0.721154 5.4881 -12.2073 0.727464 5.43754 -10.9564 0.662263 5.44017 0.645216 1.16979 3.64571 0.641199 0.926057 3.84397 0.632074 0.639018 3.85845 0.617071 0.281218 3.69648 0.611971 0.142709 3.63505 0.991716 0.606612 3.83739 0.995434 0.893801 3.79752 0.995771 1.12866 3.62413 0.976467 0.287848 3.71542 0.961821 0.106864 3.63805 1.24521 0.321832 3.71875 1.25928 0.595516 3.83004 1.26189 0.875982 3.78602 1.26174 1.09724 3.61763 1.23318 0.0948773 3.63643 1.68604 0.585537 3.78886 1.68636 0.862951 3.75145 1.67925 1.03371 3.59343 1.67935 0.11587 3.61381 1.68018 0.376934 3.69368 1.84283 0.584297 3.70764 1.85127 0.844423 3.69303 1.83913 0.972652 3.5636 1.82881 0.142571 3.58805 1.82825 0.110878 3.40054 1.83091 0.396426 3.64362 1.89188 0.451445 3.58382 1.90258 0.594438 3.65871 1.89592 0.827547 3.6615 1.899 0.922379 3.55366 0.612978 0.218379 3.67372 0.968085 0.200512 3.69399 1.23917 0.209032 3.70956 1.68543 0.250298 3.71507 1.8562 0.251763 3.65838 0.604458 0.0741074 3.53809 0.953583 0.0495279 3.53435 1.22617 0.0465422 3.52556 1.67851 0.0822109 3.49114 1.82658 0.115609 3.50017 1.90059 0.444739 3.52356 1.85177 0.374955 3.5587 0.243659 0.702322 3.85756 0.239258 0.952565 3.88382 0.281362 1.22519 3.67583 0.219113 0.123725 3.53107 0.227808 0.198793 3.61897 0.232533 0.259981 3.65013 0.236158 0.305421 3.67386 -0.0618419 0.819881 3.83946 -0.093948 0.340902 3.6454 0.109332 0.872659 3.87138 -0.097474 0.300764 3.62602 -0.10172 0.24647 3.59465 -0.110816 0.175664 3.51388 1.48988 0.867179 3.77408 1.48915 0.590823 3.81747 1.48663 1.06719 3.60976 1.47636 0.367677 3.7204 1.47585 0.231409 3.72038 1.47131 0.0996797 3.63035 1.46712 0.0577566 3.50999 -0.380085 0.778915 3.77452 -0.383991 0.364625 3.61256 -0.38427 0.32661 3.59383 -0.388676 0.277912 3.56373 -0.394369 0.219674 3.49154 -0.66024 0.763508 3.7139 -0.660294 0.377589 3.57009 -0.660002 0.340184 3.55219 -0.659541 0.303665 3.52359 -0.65867 0.264305 3.46627 -0.881797 0.752405 3.65785 -0.882086 0.390202 3.53686 -0.88117 0.353271 3.51507 -0.878638 0.327422 3.49132 -0.873774 0.304886 3.44541 0.981277 0.37286 3.78063 0.620584 0.380055 3.76306 1.2518 0.388078 3.78725 1.83413 0.459512 3.68022 1.68095 0.429853 3.74416 1.89925 0.494762 3.62457 0.238429 0.421774 3.73405 -0.0955846 0.470077 3.70623 1.48426 0.40905 3.77823 -0.389963 0.494614 3.66261 -0.659261 0.502515 3.6086 -0.879062 0.508649 3.56326 -1.0667 0.744577 3.60884 -1.05617 0.529561 3.52491 -1.05631 0.413007 3.51502 -1.0496 0.375673 3.48921 -1.04614 0.358777 3.46632 -1.04309 0.346463 3.4296 -1.244 0.566029 3.44621 -1.17159 0.441164 3.49466 -1.13193 0.429783 3.50651 -1.14035 0.546151 3.50111 -1.11946 0.391693 3.47952 -1.11449 0.378359 3.45546 -1.11152 0.37061 3.42287 -1.14784 0.404873 3.47148 -1.14501 0.397773 3.45431 -1.1438 0.392118 3.42525 0.980358 0.329042 3.74587 0.619021 0.330567 3.729 1.24969 0.351026 3.75048 1.83066 0.430437 3.66088 1.68113 0.403964 3.71627 1.89623 0.461199 3.59275 0.238381 0.361149 3.70408 -0.0909255 0.399458 3.67442 1.48209 0.378374 3.74414 -0.384597 0.426051 3.63731 -0.659912 0.43832 3.59177 -0.881496 0.448243 3.55525 -1.05938 0.466392 3.52895 -1.14127 0.479135 3.51668 -1.1994 0.489802 3.50639 -1.13589 0.39715 3.47557 -1.15163 0.434179 3.5042 -1.13145 0.385947 3.45141 -1.12972 0.380274 3.42091 -1.17013 0.484815 3.51208 -1.1952 0.554905 3.48219 -1.16941 0.745093 3.56987 -1.25445 0.744131 3.53658 -1.32522 0.743076 3.47521 -1.24158 0.552753 3.45322 0.981879 0.364907 3.77452 0.61951 0.373284 3.75844 1.25175 0.378511 3.7794 1.83735 0.452811 3.67374 1.68411 0.422499 3.73739 1.90059 0.485675 3.6107 0.239809 0.411305 3.72945 -0.0888163 0.453568 3.69841 1.48535 0.400783 3.7696 -0.385671 0.48081 3.65741 -0.658407 0.493307 3.60485 -0.879405 0.501491 3.56253 -1.05876 0.520934 3.52848 -1.14294 0.535704 3.50553 -1.19253 0.548703 3.48669 0.981164 0.34479 3.75704 0.619036 0.348432 3.74129 1.25066 0.362415 3.76288 1.83453 0.441354 3.66617 1.68295 0.410527 3.72582 1.89865 0.471932 3.60019 0.238809 0.38198 3.71519 -0.0894326 0.421793 3.68494 1.48391 0.38686 3.75543 -0.38479 0.449193 3.64487 -0.659635 0.46058 3.59886 -0.880852 0.469923 3.55931 -1.05974 0.489085 3.53095 -1.14292 0.505043 3.51417 -1.18109 0.51537 3.50581 -1.2191 0.517868 3.49715 0.644428 1.16946 3.15677 0.636983 0.921884 2.98083 0.631151 0.639871 2.94423 0.616573 0.277574 3.10014 0.61242 0.145155 3.1694 0.991464 0.605639 2.96646 0.994346 0.890607 3.02173 0.996396 1.13338 3.1775 0.976693 0.283314 3.0791 0.96189 0.108542 3.16512 1.24645 0.316079 3.07642 1.2592 0.594245 2.97496 1.26105 0.872615 3.03217 1.26238 1.10108 3.1846 1.23302 0.0962531 3.1657 1.68446 0.58636 3.01976 1.68404 0.858219 3.066 1.67909 1.03272 3.2096 1.67933 0.116569 3.18868 1.67987 0.375961 3.10816 1.83199 0.585973 3.10647 1.84383 0.840155 3.12073 1.83604 0.968229 3.24042 1.82498 0.144677 3.21493 1.83163 0.401855 3.15896 1.88687 0.454949 3.21963 1.89229 0.596007 3.15142 1.88788 0.82474 3.14796 1.89538 0.920064 3.24923 0.612814 0.217642 3.12625 0.967803 0.198999 3.10338 1.23912 0.20708 3.0861 1.68481 0.250255 3.0867 1.83738 0.248468 3.13468 0.605188 0.0792413 3.26525 0.953733 0.0517603 3.268 1.22615 0.0482172 3.27645 1.67865 0.0829649 3.31083 1.82757 0.116399 3.30136 1.89653 0.447765 3.27826 1.85494 0.379201 3.24277 0.244767 0.702939 2.95274 0.252771 0.939404 2.94165 0.279458 1.21141 3.1315 0.220032 0.130088 3.27339 0.228405 0.201981 3.18628 0.232661 0.260513 3.15199 0.235565 0.302629 3.12446 -0.0488329 0.794565 2.99918 -0.0940022 0.340714 3.1561 0.121804 0.852916 2.96328 -0.0970528 0.302359 3.17814 -0.100543 0.251243 3.21267 -0.10957 0.182271 3.29123 1.48864 0.863414 3.04405 1.48907 0.589285 2.98944 1.48702 1.06895 3.19282 1.47743 0.348854 3.08921 1.47611 0.229872 3.07547 1.47126 0.100484 3.17168 1.46707 0.0590082 3.29201 -0.37229 0.761946 3.06812 -0.383091 0.366922 3.19361 -0.382912 0.330469 3.2145 -0.386839 0.284852 3.24616 -0.39304 0.225626 3.31318 -0.650513 0.755954 3.12961 -0.658151 0.382801 3.2419 -0.657607 0.347726 3.26082 -0.657358 0.311996 3.287 -0.657037 0.272073 3.33916 -0.871495 0.74981 3.18367 -0.878921 0.397605 3.27979 -0.878172 0.363035 3.29776 -0.875677 0.337832 3.3209 -0.872192 0.311209 3.35924 0.980522 0.360524 3.00406 0.618625 0.371613 3.022 1.25272 0.373974 3.00015 1.82528 0.463932 3.12935 1.68147 0.424916 3.05372 1.89134 0.49849 3.18117 0.236742 0.417528 3.05579 -0.0972288 0.465975 3.08858 1.48647 0.397121 3.01307 -0.38989 0.493978 3.13905 -0.657659 0.5054 3.19915 -0.875725 0.511528 3.25193 -1.05642 0.745624 3.23172 -1.05221 0.524602 3.2955 -1.05202 0.421614 3.30483 -1.04566 0.386869 3.32385 -1.04335 0.366288 3.34195 -1.04198 0.349591 3.37329 -1.23468 0.564017 3.367 -1.16533 0.44812 3.32129 -1.12695 0.438728 3.31514 -1.13531 0.539041 3.31971 -1.11548 0.402882 3.33312 -1.11205 0.385272 3.35044 -1.11074 0.372903 3.37929 -1.14163 0.412335 3.33628 -1.14212 0.40227 3.35056 -1.14316 0.395283 3.37469 0.980058 0.319 3.0444 0.617637 0.322343 3.06196 1.25058 0.34169 3.04433 1.82359 0.436333 3.14625 1.68068 0.402932 3.08724 1.88953 0.464806 3.21182 0.237089 0.355563 3.08911 -0.0918106 0.397023 3.12287 1.48305 0.372372 3.05637 -0.384237 0.426758 3.16611 -0.657946 0.441733 3.21895 -0.878512 0.452632 3.26218 -1.05518 0.470197 3.29399 -1.13634 0.481494 3.30888 -1.19139 0.490669 3.31982 -1.13158 0.406825 3.335 -1.14669 0.443596 3.31782 -1.12876 0.390846 3.3524 -1.12857 0.381568 3.38077 -1.16478 0.486327 3.31445 -1.18915 0.550346 3.33885 -1.15667 0.74448 3.26739 -1.24118 0.744821 3.29865 -1.3096 0.744223 3.3464 -1.23163 0.546591 3.35407 0.981613 0.350589 3.01396 0.617645 0.361728 3.02917 1.25303 0.364164 3.01081 1.82951 0.458176 3.13612 1.68469 0.418313 3.06208 1.89498 0.488698 3.19312 0.238172 0.404907 3.06171 -0.0900837 0.45036 3.09718 1.48754 0.389587 3.02348 -0.385814 0.480749 3.14379 -0.656727 0.495574 3.2033 -0.876025 0.503308 3.25437 -1.05461 0.516618 3.29318 -1.13825 0.528902 3.31606 -1.18582 0.540293 3.33412 0.98099 0.332822 3.03343 0.617425 0.338342 3.04867 1.2518 0.350806 3.02966 1.82783 0.446498 3.14068 1.68345 0.407103 3.07486 1.89226 0.475066 3.2044 0.237278 0.375352 3.07639 -0.0905318 0.418862 3.11131 1.4858 0.377886 3.03959 -0.384545 0.449678 3.15796 -0.657829 0.463131 3.21099 -0.877265 0.472776 3.2584 -1.05573 0.489683 3.29226 -1.13833 0.502964 3.31116 -1.17515 0.511744 3.31954 -1.21284 0.514481 3.32897 1.25807 1.13894 3.4009 1.48184 1.10631 3.40094 0.991784 1.17118 3.40089 1.67955 0.0767061 3.4012 1.85516 0.368481 3.40038 1.9038 0.441158 3.4005 1.89416 0.951444 3.39946 1.67289 1.06736 3.40098 1.83094 0.999886 3.40097 1.22032 0.0329106 3.40095 1.46519 0.0483562 3.4011 0.945803 0.0338504 3.40093 0.598018 0.0560484 3.40093 0.639221 1.21169 3.40161 0.215398 0.103667 3.40109 -0.11495 0.155634 3.40108 0.271834 1.28118 3.40177 -0.396783 0.203286 3.40078 -0.658704 0.255113 3.40102 -0.870536 0.300939 3.40097 -1.041 0.34487 3.40077 -1.10983 0.37007 3.40095 -1.14449 0.392652 3.3997 -1.12914 0.380031 3.4009 -1.24535 0.558824 3.40194 -1.33721 0.743863 3.40235 1.84724 0.212586 3.56624 1.84632 0.176903 3.39935 1.85068 0.207158 3.2283 1.91028 0.654203 3.53876 1.91046 0.658777 3.39514 1.91017 0.654637 3.26237 1.91007 0.551911 3.52209 1.91031 0.572288 3.39981 1.90989 0.552405 3.27933 1.90963 0.524686 3.52333 1.91012 0.540476 3.40084 1.90942 0.525073 3.2781 1.90885 0.491752 3.52757 1.90943 0.498515 3.40083 1.9081 0.492326 3.274 1.90737 0.468451 3.52663 1.90813 0.467827 3.40073 1.90559 0.46947 3.27516 -1.25088 0.571141 3.402 -1.17453 0.447038 3.48973 -1.15998 0.415713 3.44373 -1.15956 0.413611 3.39717 -1.17951 0.454856 3.33635 -1.18012 0.454266 3.33046 0.0623656 1.25611 3.63653 0.0608072 1.30687 3.40674 -0.124719 1.30121 3.40763 -0.129032 1.27251 3.5491 -0.273589 1.28157 3.41082 -0.279479 1.26532 3.5053 -0.411121 1.2586 3.40421 -0.385738 1.25949 3.45452 0.0592082 1.24194 3.17426 -0.122012 1.26445 3.26381 -0.266797 1.26248 3.30974 -0.382848 1.25808 3.35871 0.210608 1.18938 3.06271 0.206179 1.20735 3.74638 -1.726 -2.296 1.758 -1.726 -2.248 1.71 -1.46385 -2.21082 1.758 -1.49206 -2.17199 1.71 -1.30183 -1.98782 1.758 -1.34748 -1.97299 1.71 -2.15017 -1.98782 1.758 -2.10452 -1.97299 1.71 -1.98815 -2.21082 1.758 -1.95994 -2.17199 1.71 -1.726 -2.296 1.982 -1.726 -2.248 2.03 -1.46385 -2.21082 1.982 -1.49206 -2.17199 2.03 -1.30183 -1.98782 1.982 -1.34748 -1.97299 2.03 -2.15017 -1.98782 1.982 -2.10452 -1.97299 2.03 -1.98815 -2.21082 1.982 -1.95994 -2.17199 2.03 -1.30183 -1.855 1.758 -1.34748 -1.855 1.71 -2.15017 -1.855 1.982 -2.10452 -1.855 2.03 -1.34748 -1.855 2.03 -1.30183 -1.855 1.982 -2.10452 -1.855 1.71 -2.15017 -1.855 1.758 -0.721 -2.296 1.758 -0.721 -2.248 1.71 -0.458848 -2.21082 1.758 -0.487062 -2.17199 1.71 -0.296829 -1.98782 1.758 -0.34248 -1.97299 1.71 -1.14517 -1.98782 1.758 -1.09952 -1.97299 1.71 -0.983152 -2.21082 1.758 -0.954939 -2.17199 1.71 -0.721 -2.296 1.982 -0.721 -2.248 2.03 -0.458848 -2.21082 1.982 -0.487062 -2.17199 2.03 -0.296829 -1.98782 1.982 -0.34248 -1.97299 2.03 -1.14517 -1.98782 1.982 -1.09952 -1.97299 2.03 -0.983152 -2.21082 1.982 -0.954939 -2.17199 2.03 -0.296829 -1.855 1.758 -0.34248 -1.855 1.71 -1.14517 -1.855 1.982 -1.09952 -1.855 2.03 -0.34248 -1.855 2.03 -0.296829 -1.855 1.982 -1.09952 -1.855 1.71 -1.14517 -1.855 1.758 -11.1056 0.0986027 0.966023 -11.2919 0.443988 0.899821 -10.6996 0.366392 0.916742 -10.7022 0.0429353 0.977758 -10.1673 0.299651 0.932452 -10.1793 -0.0174495 0.990594 -9.44601 0.0880157 0.97604 -9.56491 -0.0870211 1.00546 -11.1055 0.0960356 0.948739 -10.7021 0.0404628 0.960637 -10.6994 0.360646 0.884423 -11.2917 0.438314 0.867803 -10.1791 -0.0197285 0.973421 -10.168 0.290534 0.899407 -9.56459 -0.0888452 0.988048 -9.44566 0.082618 0.943803 3.861 1.03499 0.00472426 4.04571 1.03399 0.00872013 4.38057 0.654457 0.00828351 4.02577 0.658443 0.00360406 3.86202 1.03503 -0.00483641 4.0276 0.659347 -0.00476437 4.37914 0.653247 -0.00879435 4.04569 1.03401 -0.00872 3.86103 1.04049 0.00473874 4.04574 1.03949 0.00873461 3.86205 1.04053 -0.00482193 4.04572 1.03951 -0.00870553 3.63282 1.03716 0.0040158 3.63385 1.03739 -0.00438379 3.63285 1.04032 0.00374574 3.63388 1.04013 -0.00408418 3.91799 -2.26407 0.005468 4.07771 -2.26307 0.00946387 4.42286 -1.82948 0.00902724 4.08309 -1.83155 0.00434779 3.91902 -2.26411 -0.00409268 4.08491 -1.83245 -0.00402063 4.42144 -1.82827 -0.00805062 4.07769 -2.26308 -0.00797627 3.91802 -2.26957 0.00548247 4.07774 -2.26857 0.00947834 3.91905 -2.26961 -0.0040782 4.07772 -2.26858 -0.0079618 3.68982 -2.26624 0.00475953 3.69085 -2.26647 -0.00364005 3.68985 -2.2694 0.00448947 3.69088 -2.26921 -0.00334045 6.66189 -1.06055 1.22725 6.57348 -1.06258 1.22674 6.41433 -1.06236 1.05177 6.58412 -1.05998 1.05282 6.66136 -1.05567 1.22727 6.58319 -1.05571 1.05328 6.41506 -1.05365 1.05115 6.5735 -1.05369 1.22674 6.66187 -1.06055 1.23005 6.57347 -1.06259 1.22954 6.66135 -1.05568 1.23007 6.57348 -1.0537 1.22955 6.79811 -1.06019 1.22835 6.79759 -1.0559 1.22847 6.7981 -1.06005 1.22996 6.79757 -1.05605 1.22987 6.66189 -0.830547 1.22725 6.57348 -0.832585 1.22674 6.41433 -0.832362 1.05177 6.58412 -0.829976 1.05282 6.66136 -0.825671 1.22727 6.58319 -0.825708 1.05328 6.41506 -0.823653 1.05115 6.5735 -0.82369 1.22674 6.66187 -0.830554 1.23005 6.57347 -0.832592 1.22954 6.66135 -0.825679 1.23007 6.57348 -0.823698 1.22955 6.79811 -0.830186 1.22835 6.79759 -0.825902 1.22847 6.7981 -0.830048 1.22996 6.79757 -0.826055 1.22987 -11.9131 4.73115 -0.201914 -11.9073 4.73808 -0.0931874 -12.0509 4.73857 -0.0882684 -12.0537 4.7307 -0.214855 -12.1932 4.73859 -0.0833994 -12.1933 4.73008 -0.215161 -12.3332 4.73788 -0.0786089 -12.3267 4.73143 -0.201335 -11.9148 4.71403 -0.201966 -12.0537 4.71473 -0.214859 -12.051 4.70677 -0.0883275 -11.9086 4.70676 -0.0932039 -12.1932 4.71471 -0.214552 -12.1931 4.70678 -0.0834656 -12.3253 4.71368 -0.201286 -12.3314 4.70679 -0.0787303 -2.99074 0.59748 4.58772 -2.98988 0.754612 4.58731 -2.37047 0.805194 4.60997 -2.46041 0.465414 4.60997 -2.11494 0.764965 4.60322 -2.09525 0.570467 4.60703 -1.86481 0.759957 4.60309 -1.84912 0.639542 4.60502 -1.6098 0.768851 4.60229 -1.6056 0.704515 4.60271 -1.0964 0.785001 4.60065 -1.09578 0.76989 4.60072 -2.98275 0.597172 4.56178 -2.45897 0.465367 4.53987 -2.36982 0.805022 4.53987 -2.98286 0.75338 4.56186 -2.09592 0.56848 4.54278 -2.11666 0.761576 4.54654 -1.84986 0.637346 4.54478 -1.86499 0.758198 4.54675 -1.6064 0.70536 4.54675 -1.61009 0.766934 4.54675 -1.09705 0.775689 4.54675 -1.09705 0.779268 4.54675 -3.0059 0.577831 3.79978 -3.00504 0.734963 3.79937 -2.38563 0.785545 3.82203 -2.47558 0.445765 3.82203 -2.13011 0.745316 3.81528 -2.11041 0.550818 3.81909 -1.87997 0.740308 3.81515 -1.86428 0.619893 3.81708 -1.62496 0.749202 3.81435 -1.62076 0.684866 3.81477 -1.11156 0.765352 3.81271 -1.11094 0.750241 3.81277 -2.99791 0.577523 3.77383 -2.47414 0.445718 3.75193 -2.38498 0.785372 3.75193 -2.99802 0.73373 3.77391 -2.11108 0.548831 3.75484 -2.13182 0.741927 3.7586 -1.86502 0.617697 3.75684 -1.88015 0.738549 3.75881 -1.62156 0.685711 3.75881 -1.62525 0.747285 3.75881 -1.11221 0.75604 3.75881 -1.11221 0.759618 3.75881 -2.88498 0.719942 6.59178 -2.88412 0.877074 6.59137 -2.26471 0.927656 6.61403 -2.35466 0.587876 6.61403 -2.00919 0.887427 6.60728 -1.98949 0.692929 6.61108 -1.75905 0.882419 6.60715 -1.74336 0.762004 6.60908 -1.50404 0.891313 6.60634 -1.49984 0.826977 6.60677 -0.990643 0.907463 6.60471 -0.990018 0.892352 6.60477 -2.87699 0.719634 6.56583 -2.35322 0.587829 6.54393 -2.26407 0.927484 6.54393 -2.8771 0.875841 6.56591 -1.99016 0.690942 6.54683 -2.0109 0.884038 6.5506 -1.7441 0.759808 6.54883 -1.75923 0.88066 6.55081 -1.50064 0.827822 6.55081 -1.50433 0.889396 6.55081 -0.991295 0.898151 6.55081 -0.991295 0.901729 6.55081 -11.9131 4.73115 0.201914 -11.9073 4.73808 0.0931874 -12.0509 4.73857 0.0882684 -12.0537 4.7307 0.214855 -12.1932 4.73859 0.0833994 -12.1933 4.73008 0.215161 -12.3332 4.73788 0.0786089 -12.3267 4.73143 0.201335 -11.9148 4.71403 0.201966 -12.0537 4.71473 0.214859 -12.051 4.70677 0.0883275 -11.9086 4.70676 0.0932039 -12.1932 4.71471 0.214552 -12.1931 4.70678 0.0834656 -12.3253 4.71368 0.201286 -12.3314 4.70679 0.0787303 -2.8606 0.910497 -1.23372 -1.00372 1.23383 -1.31657 -0.362054 1.29881 -1.29388 0.049738 1.28391 -1.25098 0.253012 1.20234 -1.21153 0.33652 1.03694 -1.23768 0.313822 0.830142 -1.23983 -0.0377686 0.734245 -1.24712 -2.08227 0.688761 -1.25057 -2.86778 0.824883 -1.24023 -2.87734 0.893829 -1.23498 -2.46408 1.07078 -7.2 -0.981983 1.28893 -7.2 -0.501669 1.32613 -7.2 -0.234905 1.30972 -7.2 -0.136884 1.252 -7.2 -0.133021 1.09323 -7.2 -0.204042 1.02148 -7.2 -0.456613 0.965064 -7.2 -1.92131 0.919687 -7.2 -2.4509 1.04073 -7.2 -2.46763 1.06827 -7.2 -2.73478 0.98687 -4.3199 -0.89703 1.24344 -4.32008 -0.284744 1.28924 -4.32009 0.0546301 1.27143 -4.31998 0.184063 1.21253 -4.32017 0.208503 0.984069 -4.32317 0.102732 0.894784 -4.32145 -0.217727 0.822853 -4.32114 -2.05394 0.772324 -4.32046 -2.64884 0.894826 -4.32058 -2.75196 0.980974 -4.31997 -1.82772 1.27755 -12.3399 -1.14266 1.37151 -12.3399 -0.924029 1.38372 -12.3399 -0.829547 1.36705 -12.3399 -0.800554 1.3366 -12.3397 -0.809166 1.26702 -12.3398 -0.901072 1.22182 -12.3399 -1.13577 1.19922 -12.3399 -1.81079 1.22609 -12.3399 -1.89925 1.25352 -12.3399 -1.89796 1.26363 -12.3399 -1.76323 1.11903 -1.32571 -1.66134 1.15479 -4.31986 -1.59822 1.21115 -7.19977 -1.42697 1.33454 -12.3396 -1.44222 1.36581 -12.5498 -1.21126 1.38948 -12.5493 -1.13124 1.39424 -12.5493 -1.05708 1.3846 -12.5527 -1.03514 1.35582 -12.5639 -1.06081 1.30613 -12.5743 -1.13404 1.27629 -12.5789 -1.27041 1.26007 -12.5792 -1.80964 1.2778 -12.563 -1.87886 1.29809 -12.5572 -1.88183 1.30597 -12.555 -1.82073 1.31839 -12.5528 -1.36221 1.40073 -12.7537 -1.51884 1.39033 -12.7509 -1.78367 1.36565 -12.7464 -1.82649 1.36067 -12.7457 -1.82386 1.36096 -12.7457 -1.76338 1.32439 -12.7468 -1.44289 1.31762 -12.7517 -1.35108 1.33166 -12.7527 -1.31778 1.35014 -12.7537 -1.31247 1.37514 -12.7535 -1.3148 1.38413 -12.7534 -1.33447 1.39318 -12.7537 -1.54024 1.39134 -12.85 -1.54653 1.38737 -12.8525 -1.54464 1.38313 -12.8527 -1.53459 1.38145 -12.8495 -1.57562 1.38 -12.8601 -1.64394 1.37529 -12.8645 -1.72596 1.36987 -12.8492 -1.74827 1.37442 -12.8497 -1.75568 1.37955 -12.8477 -1.74381 1.38253 -12.8476 -1.67383 1.38903 -12.8601 -1.59186 1.39227 -12.8642 -1.6177 1.38874 -12.8683 -1.68941 1.38602 -12.8664 -1.61185 1.38407 -12.868 -1.67887 1.38087 -12.8683 -0.905617 1.38173 -12.1163 -1.13552 1.36608 -12.1163 -0.799288 1.37128 -12.117 -0.75705 1.33624 -12.1188 -0.771188 1.25096 -12.1182 -0.869026 1.20705 -12.1169 -1.10351 1.18465 -12.1166 -1.81642 1.20937 -12.1166 -1.92455 1.24339 -12.1165 -1.92153 1.25251 -12.1163 -1.85504 1.2662 -12.1164 -1.43409 1.32676 -12.1161 -0.124796 0.795794 -2.82718 -2.06201 0.73219 -2.82874 0.171736 0.892075 -2.82321 0.247095 1.03043 -2.81458 0.210736 1.16944 -2.8096 0.063177 1.23548 -2.80639 -0.303586 1.2563 -2.80564 -0.938063 1.21827 -2.80806 -2.7733 0.931126 -2.82084 -2.77348 0.932153 -2.82047 -2.73839 0.885487 -2.82295 -1.71164 1.13858 -2.81301 -0.339043 0.895809 -5.75547 -1.98921 0.845889 -5.75525 -0.0523175 0.957319 -5.75576 0.0367956 1.03701 -5.75673 0.0228774 1.23286 -5.75519 -0.0916914 1.29061 -5.75503 -0.394878 1.30745 -5.75508 -0.941198 1.26589 -5.75507 -2.61106 1.02332 -5.75503 -2.60117 1.02837 -5.75499 -2.55116 0.96796 -5.75529 -1.63128 1.18112 -5.75487 -1.03316 1.31465 -8.83877 -0.636319 1.34466 -8.83876 -1.08434 1.34037 -10.4775 -0.770968 1.36319 -10.4775 -0.423033 1.33024 -8.839 -0.61116 1.35076 -10.478 -0.343606 1.28008 -8.83961 -0.550328 1.30816 -10.4792 -0.345744 1.14581 -8.83941 -0.558466 1.19838 -10.4788 -0.425703 1.08333 -8.83897 -0.647365 1.14519 -10.4779 -0.632616 1.03949 -8.83886 -0.868061 1.11207 -10.4777 -1.88635 1.01625 -8.83885 -1.85139 1.11281 -10.4777 -2.27545 1.10828 -8.83882 -2.1 1.17583 -10.4776 -2.2856 1.12969 -8.83876 -2.10356 1.1911 -10.4775 -2.26106 1.13592 -8.83879 -2.05805 1.20106 -10.4776 -1.54351 1.24968 -8.83855 -1.4888 1.28822 -10.4773 -1.66617 1.33854 -12.5513 -1.67004 1.30049 -12.3397 -1.47328 1.21266 -12.3399 -1.54003 1.26893 -12.5711 -1.67478 1.37643 -12.7482 -1.60314 1.32101 -12.7492 -1.72254 1.38279 -12.857 -1.70882 1.38578 -12.8539 -1.71357 1.37765 -12.859 -1.68495 1.37258 -12.8568 -1.45996 1.19701 -12.1166 -1.68941 1.29057 -12.1162 -1.05275 0.737875 -2.82844 -1.01853 0.712426 -1.24877 -1.09789 0.773962 -4.32159 -2.37274 1.04881 -2.81713 -2.42715 1.00191 -1.29663 -2.31414 1.06499 -4.31986 -1.13064 0.871862 -5.75536 -1.15924 0.943296 -7.2 -2.21987 1.09201 -5.7549 -2.1237 1.12928 -7.19985 -1.25948 1.02787 -8.83886 -1.35972 1.11244 -10.4777 -1.97894 1.18304 -8.83863 -1.83417 1.23681 -10.4774 -1.00959 1.24248 -0.768765 -1.78046 1.13382 -0.774548 -2.44 1.02654 -0.783834 -2.86966 0.954235 -0.813454 0.378507 1.1019 -0.80182 0.235106 1.21245 -0.784649 0.0340753 1.2764 -0.769905 -0.36599 1.30005 -0.76612 0.464175 0.998319 -0.812922 0.802604 0.802186 -0.800626 1.52101 0.426252 -0.799151 -1.04258 1.24092 -0.268891 -1.78694 1.13359 -0.269904 -2.43782 1.02794 -0.273252 -2.89075 0.95396 -0.282754 0.378516 1.1303 -0.287928 0.224586 1.23175 -0.280707 -5.80546e-005 1.28696 -0.271074 -0.410984 1.29993 -0.267385 0.477022 1.03945 -0.292532 0.817732 0.879512 -0.284578 1.33625 0.64827 -0.302006 0.556419 0.5749 -1.16422 1.25982 0.0936795 -1.14741 -1.77495 1.12766 -1.00461 -1.00539 1.24121 -0.996331 -2.43774 1.01545 -0.997887 -2.87296 0.937613 -0.986753 0.245316 1.20545 -0.968012 0.370594 1.07704 -0.992194 0.0433171 1.27798 -0.973429 -0.361367 1.30148 -0.985291 0.433652 0.946967 -1.02446 0.692585 0.742334 -0.990396 1.48493 0.266784 -0.987665 -2.26215 0.0227309 -1.21381 -3.09432 0.0380307 -1.20684 -1.1257 0.0293466 -1.21109 -0.158994 0.0209813 -1.21144 0.291976 0.0153572 -1.21228 -2.99894 0.3945 -1.14169 -2.17255 0.338178 -1.20385 -1.07341 0.354587 -1.21119 -0.0909936 0.36621 -1.21058 0.289945 0.424154 -1.21032 -2.9063 0.642662 -1.12472 -2.11754 0.561884 -1.20234 -1.03728 0.582395 -1.21124 -0.0557185 0.599198 -1.2103 0.61714 0.971713 -0.289664 0.593632 0.915 -0.805428 0.538155 0.849247 -1.00072 0.341526 0.685606 -1.1754 0.488161 0.467522 -1.20971 0.770484 0.0278348 -1.20968 -0.0835475 0.794296 -1.94511 0.207868 0.897762 -1.93702 0.274041 1.03698 -1.93345 0.227265 1.18529 -1.91694 0.0375424 1.26077 -1.92726 -0.365 1.27343 -1.95025 -0.993325 1.22077 -1.96412 -2.78556 0.906751 -1.93404 -2.78556 0.906754 -1.93413 -2.78161 0.885843 -1.93773 -2.07622 0.710495 -1.94786 -1.73272 1.12669 -1.97112 -1.0373 0.726311 -1.94667 -2.37929 1.0241 -1.95411 -3.19174 0.790893 -1.02305 -3.15142 0.850942 -1.00601 -3.28307 0.637176 -1.06221 -3.38757 0.393025 -1.10006 -3.57829 0.0631702 -1.18951 -3.19284 0.880955 -0.852467 -3.35449 0.819443 -0.896852 -3.55787 0.710091 -0.943298 -3.80654 0.502873 -1.0093 -4.15335 0.153743 -1.11726 -3.2682 0.893939 -0.282577 -3.58847 0.839394 -0.279845 -3.85333 0.79315 -0.280829 -4.18953 0.73175 -0.295204 -4.56703 0.650769 -0.341586 -4.45333 0.371212 -0.905228 -4.0809 0.667298 -0.706126 -3.76343 0.767175 -0.601982 -3.52776 0.82619 -0.55763 -3.26347 0.886151 -0.533405 -1.0236 1.24218 -0.515694 -1.78666 1.13354 -0.518394 -2.44601 1.02659 -0.522334 -2.89094 0.953532 -0.521396 0.381044 1.11857 -0.52501 0.23316 1.22333 -0.51306 0.0212729 1.28251 -0.51391 -0.383703 1.3009 -0.514382 0.473267 1.02731 -0.533666 1.41903 0.571843 -0.53681 0.800394 0.863345 -0.534012 0.606641 0.956289 -0.533823 -5.75592 0.677656 -0.376051 -5.77664 0.438906 -0.935443 -5.7852 0.138785 -1.21573 -5.7842 -0.266234 -1.38133 -4.17265 -0.31347 -1.31539 -5.78222 -0.684009 -1.37481 -4.21065 -0.824744 -1.43343 -5.79226 -1.01763 -1.14128 -4.23828 -1.37941 -1.23597 -5.8193 -1.18126 -0.824844 -4.24439 -1.65608 -0.869622 -5.89864 -1.27296 -0.280459 -4.24521 -1.81498 -0.364084 -4.95832 0.652402 -0.351228 -4.95835 0.384324 -0.922439 -4.95807 0.0880007 -1.1832 -4.95798 -0.321723 -1.34974 -4.95783 -0.783534 -1.413 -4.95388 -1.26131 -1.16805 -4.94784 -1.48302 -0.819215 -4.95356 -1.61292 -0.335906 -3.63622 -0.349188 -1.32219 -3.74929 -1.82472 -0.405021 -3.81165 -1.62047 -0.86859 -3.77208 -1.46062 -1.30218 -3.68596 -0.85913 -1.43484 -3.25869 -1.29656 -1.42219 -3.18883 -0.843576 -1.43534 -3.16199 -0.369128 -1.32617 -4.24587 -1.77648 -0.545555 -4.95293 -1.57685 -0.525992 -5.83882 -1.26267 -0.508283 -3.7565 -1.76139 -0.560596 -3.26563 -1.82787 -0.410053 -3.25612 -1.7596 -0.589382 -4.95154 -1.39253 -0.994249 -4.24495 -1.54707 -1.05761 -5.87151 -1.09451 -0.980758 -3.82876 -1.55383 -1.06942 -2.32656 -0.363855 -1.32254 -2.3663 -1.01102 -1.45075 -2.34399 -0.760985 -1.41314 -1.23346 -0.844358 -1.43632 -1.21598 -0.689767 -1.40324 -1.17209 -0.348552 -1.31778 -0.174676 -0.346112 -1.31545 -0.214815 -0.836892 -1.4302 -0.219684 -0.671056 -1.39716 0.276873 -0.344882 -1.31384 0.248733 -0.85873 -1.42513 0.258637 -0.668811 -1.39291 0.811947 -0.337501 -1.30956 0.77168 -0.971456 -1.43812 0.793326 -0.675504 -1.38825 1.338 -0.319447 -1.30094 1.31043 -1.11753 -1.40627 1.32505 -0.683333 -1.38189 1.76473 -0.332143 -1.30009 1.77251 -0.716442 -1.37878 1.74925 -1.29668 -1.33343 1.76088 0.0510405 -1.15747 1.82686 0.27569 -0.970049 1.86313 0.433809 -0.780029 1.82495 0.573037 -0.518776 1.75108 0.651291 -0.262666 2.32374 -1.28269 -1.29128 2.32391 -0.716599 -1.37027 2.32197 -0.358534 -1.29999 2.32021 0.048577 -1.13811 2.32037 0.264541 -0.972793 2.32175 0.434351 -0.773028 2.32243 0.554741 -0.553374 2.32571 0.64177 -0.28183 1.98355 -1.57288 -1.08436 2.3169 -1.53369 -1.09386 2.01028 -1.68727 -0.855972 2.31678 -1.67383 -0.865854 1.91815 -1.8193 -0.462039 2.28945 -1.80248 -0.479663 1.93876 -1.83239 -0.332648 2.28702 -1.82233 -0.358958 -2.60716 -1.83443 -0.418368 -2.61487 -1.81425 -0.625889 -1.9977 -1.84598 -0.432443 -2.01965 -1.85643 -0.660242 -0.0688008 -1.84433 -0.37917 -0.0120897 -1.85112 -0.582463 0.452827 -1.84304 -0.363998 0.499097 -1.84633 -0.534996 1.18623 -1.83916 -0.346128 1.1974 -1.84054 -0.482126 -3.29914 -1.54385 -1.5752 -2.99555 -1.39619 -1.6228 -2.16425 -1.10752 -1.68184 -1.24499 -0.995049 -1.66469 1.11399 -1.24579 -1.64061 1.46335 -1.4744 -1.65748 -0.226847 -0.988566 -1.64681 0.241938 -1.02236 -1.64918 0.736456 -1.10941 -1.63754 1.57409 -1.66247 -1.55475 1.43317 -1.87647 -1.00763 -2.74871 -1.71718 -1.91716 -2.58302 -1.55056 -1.93711 1.03549 -1.61465 -1.89903 1.11937 -1.80586 -1.82475 -1.92707 -1.22916 -1.95142 -1.14852 -1.0981 -1.94655 -0.218292 -1.10088 -1.9186 0.133629 -1.15396 -1.91285 0.51042 -1.25129 -1.89458 0.773185 -1.38839 -1.90081 -2.34723 -1.85939 -2.11988 -2.20446 -1.6693 -2.11612 0.54271 -1.77838 -2.08638 0.641365 -1.98867 -2.07001 0.371755 -1.61623 -2.10174 0.182194 -1.48514 -2.11646 0.0160156 -1.38798 -2.12383 -0.229789 -1.27687 -2.12628 -1.03833 -1.21199 -2.1365 -1.67588 -1.3285 -2.13339 0.623186 -2.04585 -1.9526 0.995531 -1.97768 -1.56413 2.30883 -1.74503 -0.683339 1.99439 -1.75572 -0.681219 1.36345 -1.87709 -0.859171 0.839035 -1.98414 -1.25056 0.31702 -2.01904 -1.45868 2.29848 -1.78001 -0.575016 1.9236 -1.79587 -0.593321 1.26978 -1.85662 -0.68484 0.647973 -1.89545 -0.845634 0.147176 -1.92305 -0.961725 -3.28372 -1.67599 -1.43261 -2.73992 -1.84123 -1.77765 -2.2658 -1.96491 -2.10834 -3.25367 -1.73973 -1.24801 -2.71149 -1.90927 -1.59383 -2.23194 -2.07774 -1.92987 -1.21186 -2.1453 -2.0259 -1.20886 -2.10176 -2.18018 -0.278607 -2.14631 -2.02102 -0.27605 -2.0989 -2.17175 0.154596 -2.11883 -2.00104 0.153417 -2.08045 -2.13603 -4.95274 -1.5391 -0.663011 -4.25016 -1.72436 -0.708193 -5.80711 -1.2421 -0.647634 -3.76387 -1.66802 -0.739425 -3.25409 -1.75064 -0.889448 -2.6458 -1.8546 -1.03355 -2.07535 -1.95272 -1.1474 -4.9516 -1.51366 -0.738678 -4.24794 -1.69522 -0.785379 -5.80286 -1.21694 -0.736151 -3.79535 -1.63975 -0.816476 -3.26059 -1.75115 -1.07986 -2.66721 -1.88406 -1.33725 -2.11163 -2.01801 -1.54458 -1.74849 -2.04412 -2.16026 -1.7284 -2.11636 -2.01647 -0.728275 -2.10595 -2.17846 -0.714072 -2.14646 -2.03276 -0.0578617 -2.08807 -2.15759 -0.0610736 -2.13943 -2.01015 -0.493615 -2.1051 -2.17512 -0.492185 -2.14632 -2.03001 0.289626 -1.89346 -2.1232 0.0835171 -1.81978 -2.14261 -0.1388 -1.76055 -2.1559 -0.336963 -1.7059 -2.16164 -0.592167 -1.66713 -2.16483 -1.06829 -1.66025 -2.16628 -1.6658 -1.69183 -2.15785 -2.17718 -1.81759 -2.13612 -1.57606 -1.8473 -0.442088 -1.5859 -1.86444 -0.684753 -1.6188 -1.98446 -1.21079 -1.64506 -2.07908 -1.64296 -1.19966 -1.84653 -0.449296 -1.20474 -1.86624 -0.696518 -1.20873 -1.98898 -1.2283 -1.18715 -2.10168 -1.66679 -0.8777 -1.84573 -0.448868 -0.885057 -1.86643 -0.699479 -0.868878 -1.98219 -1.20352 -0.812564 -2.07854 -1.6361 -0.741597 -1.84554 -0.4403 -0.730273 -1.86477 -0.690187 -0.677063 -1.97213 -1.16492 -0.595524 -2.07103 -1.62019 -0.651976 -1.84553 -0.425042 -0.625002 -1.86111 -0.667064 -0.537117 -1.96033 -1.11885 -0.422798 -2.06479 -1.59364 -0.555488 -1.84529 -0.407473 -0.514736 -1.85823 -0.644363 -0.395915 -1.94951 -1.07399 -0.252535 -2.05465 -1.55948 -0.408286 -1.84492 -0.393449 -0.35064 -1.85507 -0.618932 -0.201186 -1.93898 -1.02938 -0.0429254 -2.0397 -1.52364 3.27517 -0.354407 -1.28387 3.2752 0.0445303 -1.12153 3.27517 0.264214 -0.961514 3.27517 0.432706 -0.76423 3.27514 0.550048 -0.544735 3.27523 0.633938 -0.27611 3.27502 -1.81545 -0.350751 3.27508 -1.79522 -0.47593 3.2751 -1.77431 -0.572601 3.27511 -1.74139 -0.680584 3.27515 -1.66918 -0.867423 3.27507 -1.52636 -1.08873 3.27516 -1.2674 -1.28062 3.27523 -0.714736 -1.35619 4.21495 -1.24626 -1.27531 4.21488 -0.696908 -1.33512 4.21492 -0.349108 -1.26608 4.21483 0.0479858 -1.10122 4.21487 0.259511 -0.951583 4.21487 0.421343 -0.763424 4.21489 0.53615 -0.551841 4.21488 0.621115 -0.287761 4.21504 -1.8068 -0.37896 4.21493 -1.78573 -0.49729 4.21489 -1.76437 -0.592711 4.21493 -1.73153 -0.702777 4.21488 -1.65703 -0.88355 4.21497 -1.50517 -1.10685 5.16099 -0.334675 -1.22673 5.16128 0.0554173 -1.05735 5.16031 0.273018 -0.912027 5.16085 0.424472 -0.717005 5.16108 0.535063 -0.503273 5.16325 0.613879 -0.242332 5.16304 -1.80717 -0.33226 5.16022 -1.78913 -0.45804 5.16116 -1.76959 -0.555666 5.16038 -1.73802 -0.665938 5.16083 -1.66452 -0.858349 5.16204 -1.51404 -1.08132 5.16038 -1.21146 -1.26376 5.16204 -0.687288 -1.29968 5.75626 -1.19282 -1.23353 5.75044 -0.673759 -1.24339 5.74227 -0.338359 -1.12047 5.7275 0.0290979 -0.945864 5.73388 0.246752 -0.83532 5.72243 0.392155 -0.676006 5.72471 0.498584 -0.476564 5.72606 0.57317 -0.242584 5.76122 -1.79996 -0.342126 5.75853 -1.77996 -0.470115 5.75953 -1.75928 -0.566939 5.75893 -1.72587 -0.679409 5.75811 -1.65176 -0.856968 5.75558 -1.51927 -1.04535 6.38415 -0.325806 -0.95647 6.15372 0.0171026 -0.840694 5.98493 0.248619 -0.75706 5.96917 0.364108 -0.595776 5.98062 0.460231 -0.403439 5.98662 0.515287 -0.194522 6.45005 -1.78081 -0.278627 6.4487 -1.76506 -0.391313 6.44859 -1.74091 -0.496448 6.44763 -1.70616 -0.60791 6.4498 -1.63463 -0.773696 6.43984 -1.49448 -0.957273 6.4034 -1.17617 -1.12681 6.39036 -0.679991 -1.13323 6.55564 0.0638996 -0.234684 6.32029 0.277982 -0.227806 6.90651 -0.250826 -0.260653 6.1775 0.412324 -0.209027 6.19134 0.272672 -0.433208 6.39814 0.0463629 -0.472167 6.70638 -0.289922 -0.541704 6.10554 0.387591 -0.421501 6.0611 0.331831 -0.56354 6.10501 0.263485 -0.571285 6.29041 0.0348431 -0.633648 6.57297 -0.316481 -0.728907 6.76895 -0.734278 -1.02007 6.75093 -0.462328 -0.880632 6.78145 -1.16578 -0.996286 6.78121 -1.47013 -0.857766 6.78396 -1.60222 -0.70015 6.77845 -1.67869 -0.544409 6.77634 -1.71117 -0.453008 6.7793 -1.7353 -0.358349 6.77943 -1.75212 -0.255565 6.78442 -0.382815 -0.695085 6.89472 -0.360265 -0.528334 7.07426 -0.322798 -0.231877 7.09111 -0.809214 -0.861763 7.09909 -0.566329 -0.768521 7.11288 -0.469873 -0.592842 7.17524 -0.433167 -0.427439 7.24728 -0.40229 -0.232003 7.06941 -1.71506 -0.198837 7.07464 -1.69246 -0.315764 7.0764 -1.66456 -0.403396 7.07675 -1.62566 -0.495138 7.07908 -1.55326 -0.617039 7.08368 -1.412 -0.750359 7.09464 -1.15512 -0.83868 7.43247 -1.15684 -0.640458 7.42612 -0.904291 -0.660382 7.43092 -0.703412 -0.618088 7.42651 -0.58806 -0.497006 7.44403 -0.537645 -0.362872 7.46799 -0.512265 -0.206704 7.43259 -1.35994 -0.585675 7.41643 -1.64285 -0.169927 7.41078 -1.61663 -0.277294 7.40924 -1.58893 -0.349033 7.40982 -1.55288 -0.417177 7.41742 -1.4903 -0.497692 7.67805 -1.15155 -0.478596 7.65629 -0.967908 -0.501304 7.64767 -0.842847 -0.488781 7.66325 -0.753005 -0.422276 7.67568 -0.696378 -0.322046 7.68583 -0.667364 -0.184604 7.68202 -1.54997 -0.157838 7.66374 -1.52416 -0.255308 7.65143 -1.49915 -0.313788 7.6406 -1.47163 -0.362232 7.64939 -1.42929 -0.40236 7.67749 -1.31503 -0.446457 7.95461 -1.25866 -0.178064 7.88798 -1.25911 -0.268882 7.83543 -1.26965 -0.322912 7.77492 -1.28841 -0.375376 7.9572 -1.07614 -0.174271 7.89478 -1.08975 -0.269981 7.84166 -1.10926 -0.333817 7.78051 -1.13456 -0.394842 7.88789 -0.907821 -0.172912 7.84109 -0.926293 -0.286286 7.79433 -0.949995 -0.362866 7.74076 -0.975564 -0.426557 7.83227 -1.46028 -0.167114 7.79449 -1.43481 -0.258769 7.76098 -1.41842 -0.312187 7.72082 -1.41227 -0.357847 -7.40449 0.22328 -1.30388 -7.40449 -0.120684 -1.4003 -7.40449 -0.391762 -1.28379 -7.40449 -0.573697 -1.01945 -7.40449 -0.603505 -0.90511 -7.40449 -0.653087 -0.771225 -7.40449 -0.671501 -0.70311 -7.40449 -0.685386 -0.625224 -7.40449 -0.699825 -0.495734 -7.40449 -0.706931 -0.264679 -7.40449 0.731278 -0.440453 -7.40449 0.517679 -1.0206 -9.50656 0.657334 -0.954006 -9.50656 0.455411 -1.37934 -9.50656 0.280634 -1.32813 -9.50871 0.162858 -1.11805 -9.50656 0.135913 -0.96141 -9.50656 0.0960734 -0.828991 -9.50656 0.0905317 -0.709826 -9.50656 0.0868204 -0.647397 -9.50656 0.0791254 -0.574319 -9.50656 0.0640795 -0.457422 -9.50656 0.0403406 -0.248261 -9.50656 0.794297 -0.528706 -12.6654 0.843699 -0.288845 -12.6654 0.800749 -0.600715 -12.6653 0.728977 -0.917159 -12.6651 0.709933 -0.952314 -12.6628 0.660162 -0.94412 -12.6656 0.618728 -0.832053 -12.6655 0.60238 -0.739213 -12.6655 0.591821 -0.660083 -12.6655 0.585029 -0.5946 -12.6654 0.578134 -0.511849 -12.6654 0.571259 -0.403918 -12.6655 0.565784 -0.277692 -10.8757 0.83518 -0.405763 -10.8757 0.755401 -0.818182 -10.8757 0.621437 -1.30605 -10.8757 0.481736 -1.26865 -10.8757 0.405087 -1.04558 -10.8757 0.38211 -0.914766 -10.8757 0.366118 -0.789672 -10.8757 0.356105 -0.68813 -10.8757 0.350143 -0.620828 -10.8757 0.345011 -0.542543 -10.8757 0.338464 -0.426265 -10.8757 0.332132 -0.244064 -13.2574 0.818853 -0.286765 -13.2054 0.785323 -0.519501 -13.3351 0.757877 -0.283929 -13.2955 0.748817 -0.514708 -13.3391 0.740715 -0.285682 -13.3042 0.735043 -0.503212 -13.3325 0.71509 -0.283852 -13.3035 0.714485 -0.481775 -13.3202 0.698295 -0.281391 -13.2999 0.696195 -0.457415 -13.2852 0.673915 -0.278233 -13.2938 0.686797 -0.441899 -13.0036 0.838911 -0.272784 -13.0028 0.801169 -0.532791 -13.0217 0.61694 -0.277692 -13.0166 0.622344 -0.397928 -12.9669 0.728887 -0.789352 -12.9935 0.696688 -0.811417 -12.9903 0.670371 -0.772235 -12.9939 0.650452 -0.685009 -13.0091 0.641402 -0.60948 -13.0146 0.635006 -0.550336 -12.9483 0.618709 -0.494255 -12.9547 0.750794 -0.735589 -10.09 0.811719 -0.476316 -10.09 0.699124 -0.896127 -10.09 0.52616 -1.34811 -10.09 0.397571 -1.30278 -10.089 0.320317 -1.08178 -10.09 0.294242 -0.941533 -10.09 0.276718 -0.812236 -10.09 0.265099 -0.700581 -10.09 0.259168 -0.636075 -10.09 0.25394 -0.560778 -10.09 0.246939 -0.444145 -10.09 0.239827 -0.246473 -9.55623 0.652418 -0.966928 -9.8701 0.649053 -1.63361 -10.1445 0.725129 -1.46672 -9.79686 0.716855 -0.804949 -10.4854 0.724387 -1.84024 -10.2306 0.672046 -1.95281 -10.6161 0.721407 -2.05241 -10.3229 0.671536 -2.08527 -10.6609 0.719305 -2.29351 -10.3754 0.670297 -2.29666 -10.8348 0.708851 -3.59404 -10.6165 0.658739 -3.60052 -11.1923 0.706713 -5.47389 -10.9685 0.678882 -5.43089 -11.0456 0.736777 -2.02674 -11.1169 0.736368 -2.29558 -11.2773 0.733151 -3.57802 -11.4971 0.727991 -5.47602 -11.5576 0.745857 -2.01709 -11.6175 0.746273 -2.28734 -11.7145 0.747134 -3.57178 -11.7752 0.741667 -5.47804 -12.503 0.737182 -1.97323 -12.4746 0.73817 -2.26635 -12.36 0.739161 -3.57522 -12.2067 0.737699 -5.43364 -10.2792 0.736987 -0.786705 -10.5668 0.739061 -1.30781 -10.8681 0.738425 -1.70789 -11.3749 0.745821 -1.60701 -11.1162 0.746242 -1.19539 -10.9622 0.764731 -0.766429 -12.5469 0.7395 -1.49191 -12.5875 0.742484 -1.12029 -12.6126 0.753854 -0.804965 -12.1241 0.75396 -2.26912 -12.1093 0.753659 -1.99817 -12.1375 0.753624 -3.57301 -12.0133 0.748423 -5.47811 -12.0609 0.754275 -1.52623 -11.9716 0.758422 -1.11647 -11.8972 0.762687 -0.761784 -10.8239 0.665074 -4.69747 -11.025 0.70503 -4.69587 -11.408 0.732226 -4.68728 -11.7639 0.74802 -4.68226 -12.0882 0.753529 -4.68677 -12.2627 0.740277 -4.6942 -9.8701 0.607123 -1.63361 -10.1719 0.526735 -1.34123 -10.4854 0.582229 -1.84024 -10.2306 0.612998 -1.95281 -10.6161 0.586768 -2.05241 -10.3229 0.620127 -2.08527 -10.6609 0.588829 -2.29351 -10.3754 0.621579 -2.29666 -10.8348 0.599134 -3.59404 -10.6165 0.633372 -3.60052 -11.1923 0.642678 -5.47389 -10.9682 0.646024 -5.43382 -11.0456 0.590844 -2.02674 -11.1169 0.593173 -2.29558 -11.2773 0.601802 -3.57802 -11.4971 0.654323 -5.47602 -11.5576 0.61476 -2.01709 -11.6175 0.619354 -2.28734 -11.7145 0.629691 -3.57178 -11.7752 0.672352 -5.47804 -12.503 0.718956 -1.97323 -12.4746 0.718468 -2.26635 -12.36 0.71738 -3.57522 -12.2067 0.71871 -5.43364 -10.6675 0.534688 -1.30073 -10.8681 0.586316 -1.70789 -11.3749 0.60486 -1.60701 -11.2449 0.561164 -1.20374 -12.5469 0.715267 -1.49191 -12.6021 0.705119 -0.957511 -12.1241 0.666174 -2.26912 -12.1093 0.663115 -1.99817 -12.1375 0.678339 -3.57301 -12.0133 0.693155 -5.47811 -12.0609 0.65241 -1.52623 -11.9956 0.633312 -1.0545 -10.8239 0.631752 -4.69747 -11.025 0.608814 -4.69587 -11.408 0.612814 -4.68728 -11.7639 0.639153 -4.68226 -12.0882 0.682044 -4.68677 -12.2627 0.716236 -4.6942 -9.64257 0.606208 -1.06873 -10.817 0.650414 -4.69874 -10.6133 0.646988 -3.60112 -10.369 0.647766 -2.29789 -10.3155 0.647993 -2.08751 -10.2246 0.647892 -1.95977 -9.86302 0.632326 -1.64031 -9.59343 0.634865 -1.00582 -10.7369 0.583773 -1.5267 -10.2895 0.57872 -1.60006 -11.2944 0.601233 -1.44924 -12.5728 0.709466 -1.20344 -12.0267 0.643979 -1.33106 -12.2663 0.728441 -4.6945 -12.3682 0.732566 -3.57591 -12.4803 0.731613 -2.26683 -12.5071 0.730678 -1.97362 -12.5546 0.73333 -1.4927 -12.592 0.727832 -1.17496 -12.6401 0.728944 -0.916109 -11.1919 0.674021 -5.49199 -11.497 0.691933 -5.49589 -11.7755 0.70767 -5.49546 -12.014 0.721154 -5.4881 -12.2073 0.727464 -5.43754 -10.9564 0.662263 -5.44017 0.645216 1.16979 -3.64571 0.641199 0.926057 -3.84397 0.632074 0.639018 -3.85845 0.617071 0.281218 -3.69648 0.611971 0.142709 -3.63505 0.991716 0.606612 -3.83739 0.995434 0.893801 -3.79752 0.995771 1.12866 -3.62413 0.976467 0.287848 -3.71542 0.961821 0.106864 -3.63805 1.24521 0.321832 -3.71875 1.25928 0.595516 -3.83004 1.26189 0.875982 -3.78602 1.26174 1.09724 -3.61763 1.23318 0.0948773 -3.63643 1.68604 0.585537 -3.78886 1.68636 0.862951 -3.75145 1.67925 1.03371 -3.59343 1.67935 0.11587 -3.61381 1.68018 0.376934 -3.69368 1.84283 0.584297 -3.70764 1.85127 0.844423 -3.69303 1.83913 0.972652 -3.5636 1.82881 0.142571 -3.58805 1.82825 0.110878 -3.40054 1.83091 0.396426 -3.64362 1.89188 0.451445 -3.58382 1.90258 0.594438 -3.65871 1.89592 0.827547 -3.6615 1.899 0.922379 -3.55366 0.612978 0.218379 -3.67372 0.968085 0.200512 -3.69399 1.23917 0.209032 -3.70956 1.68543 0.250298 -3.71507 1.8562 0.251763 -3.65838 0.604458 0.0741074 -3.53809 0.953583 0.0495279 -3.53435 1.22617 0.0465422 -3.52556 1.67851 0.0822109 -3.49114 1.82658 0.115609 -3.50017 1.90059 0.444739 -3.52356 1.85177 0.374955 -3.5587 0.243659 0.702322 -3.85756 0.239258 0.952565 -3.88382 0.281362 1.22519 -3.67583 0.219113 0.123725 -3.53107 0.227808 0.198793 -3.61897 0.232533 0.259981 -3.65013 0.236158 0.305421 -3.67386 -0.0618419 0.819881 -3.83946 -0.093948 0.340902 -3.6454 0.109332 0.872659 -3.87138 -0.097474 0.300764 -3.62602 -0.10172 0.24647 -3.59465 -0.110816 0.175664 -3.51388 1.48988 0.867179 -3.77408 1.48915 0.590823 -3.81747 1.48663 1.06719 -3.60976 1.47636 0.367677 -3.7204 1.47585 0.231409 -3.72038 1.47131 0.0996797 -3.63035 1.46712 0.0577566 -3.50999 -0.380085 0.778915 -3.77452 -0.383991 0.364625 -3.61256 -0.38427 0.32661 -3.59383 -0.388676 0.277912 -3.56373 -0.394369 0.219674 -3.49154 -0.66024 0.763508 -3.7139 -0.660294 0.377589 -3.57009 -0.660002 0.340184 -3.55219 -0.659541 0.303665 -3.52359 -0.65867 0.264305 -3.46627 -0.881797 0.752405 -3.65785 -0.882086 0.390202 -3.53686 -0.88117 0.353271 -3.51507 -0.878638 0.327422 -3.49132 -0.873774 0.304886 -3.44541 0.981277 0.37286 -3.78063 0.620584 0.380055 -3.76306 1.2518 0.388078 -3.78725 1.83413 0.459512 -3.68022 1.68095 0.429853 -3.74416 1.89925 0.494762 -3.62457 0.238429 0.421774 -3.73405 -0.0955846 0.470077 -3.70623 1.48426 0.40905 -3.77823 -0.389963 0.494614 -3.66261 -0.659261 0.502515 -3.6086 -0.879062 0.508649 -3.56326 -1.0667 0.744577 -3.60884 -1.05617 0.529561 -3.52491 -1.05631 0.413007 -3.51502 -1.0496 0.375673 -3.48921 -1.04614 0.358777 -3.46632 -1.04309 0.346463 -3.4296 -1.244 0.566029 -3.44621 -1.17159 0.441164 -3.49466 -1.13193 0.429783 -3.50651 -1.14035 0.546151 -3.50111 -1.11946 0.391693 -3.47952 -1.11449 0.378359 -3.45546 -1.11152 0.37061 -3.42287 -1.14784 0.404873 -3.47148 -1.14501 0.397773 -3.45431 -1.1438 0.392118 -3.42525 0.980358 0.329042 -3.74587 0.619021 0.330567 -3.729 1.24969 0.351026 -3.75048 1.83066 0.430437 -3.66088 1.68113 0.403964 -3.71627 1.89623 0.461199 -3.59275 0.238381 0.361149 -3.70408 -0.0909255 0.399458 -3.67442 1.48209 0.378374 -3.74414 -0.384597 0.426051 -3.63731 -0.659912 0.43832 -3.59177 -0.881496 0.448243 -3.55525 -1.05938 0.466392 -3.52895 -1.14127 0.479135 -3.51668 -1.1994 0.489802 -3.50639 -1.13589 0.39715 -3.47557 -1.15163 0.434179 -3.5042 -1.13145 0.385947 -3.45141 -1.12972 0.380274 -3.42091 -1.17013 0.484815 -3.51208 -1.1952 0.554905 -3.48219 -1.16941 0.745093 -3.56987 -1.25445 0.744131 -3.53658 -1.32522 0.743076 -3.47521 -1.24158 0.552753 -3.45322 0.981879 0.364907 -3.77452 0.61951 0.373284 -3.75844 1.25175 0.378511 -3.7794 1.83735 0.452811 -3.67374 1.68411 0.422499 -3.73739 1.90059 0.485675 -3.6107 0.239809 0.411305 -3.72945 -0.0888163 0.453568 -3.69841 1.48535 0.400783 -3.7696 -0.385671 0.48081 -3.65741 -0.658407 0.493307 -3.60485 -0.879405 0.501491 -3.56253 -1.05876 0.520934 -3.52848 -1.14294 0.535704 -3.50553 -1.19253 0.548703 -3.48669 0.981164 0.34479 -3.75704 0.619036 0.348432 -3.74129 1.25066 0.362415 -3.76288 1.83453 0.441354 -3.66617 1.68295 0.410527 -3.72582 1.89865 0.471932 -3.60019 0.238809 0.38198 -3.71519 -0.0894326 0.421793 -3.68494 1.48391 0.38686 -3.75543 -0.38479 0.449193 -3.64487 -0.659635 0.46058 -3.59886 -0.880852 0.469923 -3.55931 -1.05974 0.489085 -3.53095 -1.14292 0.505043 -3.51417 -1.18109 0.51537 -3.50581 -1.2191 0.517868 -3.49715 0.644428 1.16946 -3.15677 0.636983 0.921884 -2.98083 0.631151 0.639871 -2.94423 0.616573 0.277574 -3.10014 0.61242 0.145155 -3.1694 0.991464 0.605639 -2.96646 0.994346 0.890607 -3.02173 0.996396 1.13338 -3.1775 0.976693 0.283314 -3.0791 0.96189 0.108542 -3.16512 1.24645 0.316079 -3.07642 1.2592 0.594245 -2.97496 1.26105 0.872615 -3.03217 1.26238 1.10108 -3.1846 1.23302 0.0962531 -3.1657 1.68446 0.58636 -3.01976 1.68404 0.858219 -3.066 1.67909 1.03272 -3.2096 1.67933 0.116569 -3.18868 1.67987 0.375961 -3.10816 1.83199 0.585973 -3.10647 1.84383 0.840155 -3.12073 1.83604 0.968229 -3.24042 1.82498 0.144677 -3.21493 1.83163 0.401855 -3.15896 1.88687 0.454949 -3.21963 1.89229 0.596007 -3.15142 1.88788 0.82474 -3.14796 1.89538 0.920064 -3.24923 0.612814 0.217642 -3.12625 0.967803 0.198999 -3.10338 1.23912 0.20708 -3.0861 1.68481 0.250255 -3.0867 1.83738 0.248468 -3.13468 0.605188 0.0792413 -3.26525 0.953733 0.0517603 -3.268 1.22615 0.0482172 -3.27645 1.67865 0.0829649 -3.31083 1.82757 0.116399 -3.30136 1.89653 0.447765 -3.27826 1.85494 0.379201 -3.24277 0.244767 0.702939 -2.95274 0.252771 0.939404 -2.94165 0.279458 1.21141 -3.1315 0.220032 0.130088 -3.27339 0.228405 0.201981 -3.18628 0.232661 0.260513 -3.15199 0.235565 0.302629 -3.12446 -0.0488329 0.794565 -2.99918 -0.0940022 0.340714 -3.1561 0.121804 0.852916 -2.96328 -0.0970528 0.302359 -3.17814 -0.100543 0.251243 -3.21267 -0.10957 0.182271 -3.29123 1.48864 0.863414 -3.04405 1.48907 0.589285 -2.98944 1.48702 1.06895 -3.19282 1.47743 0.348854 -3.08921 1.47611 0.229872 -3.07547 1.47126 0.100484 -3.17168 1.46707 0.0590082 -3.29201 -0.37229 0.761946 -3.06812 -0.383091 0.366922 -3.19361 -0.382912 0.330469 -3.2145 -0.386839 0.284852 -3.24616 -0.39304 0.225626 -3.31318 -0.650513 0.755954 -3.12961 -0.658151 0.382801 -3.2419 -0.657607 0.347726 -3.26082 -0.657358 0.311996 -3.287 -0.657037 0.272073 -3.33916 -0.871495 0.74981 -3.18367 -0.878921 0.397605 -3.27979 -0.878172 0.363035 -3.29776 -0.875677 0.337832 -3.3209 -0.872192 0.311209 -3.35924 0.980522 0.360524 -3.00406 0.618625 0.371613 -3.022 1.25272 0.373974 -3.00015 1.82528 0.463932 -3.12935 1.68147 0.424916 -3.05372 1.89134 0.49849 -3.18117 0.236742 0.417528 -3.05579 -0.0972288 0.465975 -3.08858 1.48647 0.397121 -3.01307 -0.38989 0.493978 -3.13905 -0.657659 0.5054 -3.19915 -0.875725 0.511528 -3.25193 -1.05642 0.745624 -3.23172 -1.05221 0.524602 -3.2955 -1.05202 0.421614 -3.30483 -1.04566 0.386869 -3.32385 -1.04335 0.366288 -3.34195 -1.04198 0.349591 -3.37329 -1.23468 0.564017 -3.367 -1.16533 0.44812 -3.32129 -1.12695 0.438728 -3.31514 -1.13531 0.539041 -3.31971 -1.11548 0.402882 -3.33312 -1.11205 0.385272 -3.35044 -1.11074 0.372903 -3.37929 -1.14163 0.412335 -3.33628 -1.14212 0.40227 -3.35056 -1.14316 0.395283 -3.37469 0.980058 0.319 -3.0444 0.617637 0.322343 -3.06196 1.25058 0.34169 -3.04433 1.82359 0.436333 -3.14625 1.68068 0.402932 -3.08724 1.88953 0.464806 -3.21182 0.237089 0.355563 -3.08911 -0.0918106 0.397023 -3.12287 1.48305 0.372372 -3.05637 -0.384237 0.426758 -3.16611 -0.657946 0.441733 -3.21895 -0.878512 0.452632 -3.26218 -1.05518 0.470197 -3.29399 -1.13634 0.481494 -3.30888 -1.19139 0.490669 -3.31982 -1.13158 0.406825 -3.335 -1.14669 0.443596 -3.31782 -1.12876 0.390846 -3.3524 -1.12857 0.381568 -3.38077 -1.16478 0.486327 -3.31445 -1.18915 0.550346 -3.33885 -1.15667 0.74448 -3.26739 -1.24118 0.744821 -3.29865 -1.3096 0.744223 -3.3464 -1.23163 0.546591 -3.35407 0.981613 0.350589 -3.01396 0.617645 0.361728 -3.02917 1.25303 0.364164 -3.01081 1.82951 0.458176 -3.13612 1.68469 0.418313 -3.06208 1.89498 0.488698 -3.19312 0.238172 0.404907 -3.06171 -0.0900837 0.45036 -3.09718 1.48754 0.389587 -3.02348 -0.385814 0.480749 -3.14379 -0.656727 0.495574 -3.2033 -0.876025 0.503308 -3.25437 -1.05461 0.516618 -3.29318 -1.13825 0.528902 -3.31606 -1.18582 0.540293 -3.33412 0.98099 0.332822 -3.03343 0.617425 0.338342 -3.04867 1.2518 0.350806 -3.02966 1.82783 0.446498 -3.14068 1.68345 0.407103 -3.07486 1.89226 0.475066 -3.2044 0.237278 0.375352 -3.07639 -0.0905318 0.418862 -3.11131 1.4858 0.377886 -3.03959 -0.384545 0.449678 -3.15796 -0.657829 0.463131 -3.21099 -0.877265 0.472776 -3.2584 -1.05573 0.489683 -3.29226 -1.13833 0.502964 -3.31116 -1.17515 0.511744 -3.31954 -1.21284 0.514481 -3.32897 1.25807 1.13894 -3.4009 1.48184 1.10631 -3.40094 0.991784 1.17118 -3.40089 1.67955 0.0767061 -3.4012 1.85516 0.368481 -3.40038 1.9038 0.441158 -3.4005 1.89416 0.951444 -3.39946 1.67289 1.06736 -3.40098 1.83094 0.999886 -3.40097 1.22032 0.0329106 -3.40095 1.46519 0.0483562 -3.4011 0.945803 0.0338504 -3.40093 0.598018 0.0560484 -3.40093 0.639221 1.21169 -3.40161 0.215398 0.103667 -3.40109 -0.11495 0.155634 -3.40108 0.271834 1.28118 -3.40177 -0.396783 0.203286 -3.40078 -0.658704 0.255113 -3.40102 -0.870536 0.300939 -3.40097 -1.041 0.34487 -3.40077 -1.10983 0.37007 -3.40095 -1.14449 0.392652 -3.3997 -1.12914 0.380031 -3.4009 -1.24535 0.558824 -3.40194 -1.33721 0.743863 -3.40235 1.84724 0.212586 -3.56624 1.84632 0.176903 -3.39935 1.85068 0.207158 -3.2283 1.91028 0.654203 -3.53876 1.91046 0.658777 -3.39514 1.91017 0.654637 -3.26237 1.91007 0.551911 -3.52209 1.91031 0.572288 -3.39981 1.90989 0.552405 -3.27933 1.90963 0.524686 -3.52333 1.91012 0.540476 -3.40084 1.90942 0.525073 -3.2781 1.90885 0.491752 -3.52757 1.90943 0.498515 -3.40083 1.9081 0.492326 -3.274 1.90737 0.468451 -3.52663 1.90813 0.467827 -3.40073 1.90559 0.46947 -3.27516 -1.25088 0.571141 -3.402 -1.17453 0.447038 -3.48973 -1.15998 0.415713 -3.44373 -1.15956 0.413611 -3.39717 -1.17951 0.454856 -3.33635 -1.18012 0.454266 -3.33046 0.0623656 1.25611 -3.63653 0.0608072 1.30687 -3.40674 -0.124719 1.30121 -3.40763 -0.129032 1.27251 -3.5491 -0.273589 1.28157 -3.41082 -0.279479 1.26532 -3.5053 -0.411121 1.2586 -3.40421 -0.385738 1.25949 -3.45452 0.0592082 1.24194 -3.17426 -0.122012 1.26445 -3.26381 -0.266797 1.26248 -3.30974 -0.382848 1.25808 -3.35871 0.210608 1.18938 -3.06271 0.206179 1.20735 -3.74638 -1.726 -2.296 -1.758 -1.726 -2.248 -1.71 -1.46385 -2.21082 -1.758 -1.49206 -2.17199 -1.71 -1.30183 -1.98782 -1.758 -1.34748 -1.97299 -1.71 -2.15017 -1.98782 -1.758 -2.10452 -1.97299 -1.71 -1.98815 -2.21082 -1.758 -1.95994 -2.17199 -1.71 -1.726 -2.296 -1.982 -1.726 -2.248 -2.03 -1.46385 -2.21082 -1.982 -1.49206 -2.17199 -2.03 -1.30183 -1.98782 -1.982 -1.34748 -1.97299 -2.03 -2.15017 -1.98782 -1.982 -2.10452 -1.97299 -2.03 -1.98815 -2.21082 -1.982 -1.95994 -2.17199 -2.03 -1.30183 -1.855 -1.758 -1.34748 -1.855 -1.71 -2.15017 -1.855 -1.982 -2.10452 -1.855 -2.03 -1.34748 -1.855 -2.03 -1.30183 -1.855 -1.982 -2.10452 -1.855 -1.71 -2.15017 -1.855 -1.758 -0.721 -2.296 -1.758 -0.721 -2.248 -1.71 -0.458848 -2.21082 -1.758 -0.487062 -2.17199 -1.71 -0.296829 -1.98782 -1.758 -0.34248 -1.97299 -1.71 -1.14517 -1.98782 -1.758 -1.09952 -1.97299 -1.71 -0.983152 -2.21082 -1.758 -0.954939 -2.17199 -1.71 -0.721 -2.296 -1.982 -0.721 -2.248 -2.03 -0.458848 -2.21082 -1.982 -0.487062 -2.17199 -2.03 -0.296829 -1.98782 -1.982 -0.34248 -1.97299 -2.03 -1.14517 -1.98782 -1.982 -1.09952 -1.97299 -2.03 -0.983152 -2.21082 -1.982 -0.954939 -2.17199 -2.03 -0.296829 -1.855 -1.758 -0.34248 -1.855 -1.71 -1.14517 -1.855 -1.982 -1.09952 -1.855 -2.03 -0.34248 -1.855 -2.03 -0.296829 -1.855 -1.982 -1.09952 -1.855 -1.71 -1.14517 -1.855 -1.758 -11.1056 0.0986027 -0.966023 -11.2919 0.443988 -0.899821 -10.6996 0.366392 -0.916742 -10.7022 0.0429352 -0.977758 -10.1673 0.299651 -0.932452 -10.1793 -0.0174495 -0.990594 -9.44601 0.0880157 -0.97604 -9.56491 -0.0870211 -1.00546 -11.1055 0.0960356 -0.948739 -10.7021 0.0404628 -0.960637 -10.6994 0.360646 -0.884423 -11.2917 0.438314 -0.867803 -10.1791 -0.0197285 -0.973421 -10.168 0.290534 -0.899407 -9.56459 -0.0888452 -0.988048 -9.44566 0.082618 -0.943803 -2.99074 0.59748 -4.58772 -2.98988 0.754612 -4.58731 -2.37047 0.805194 -4.60997 -2.46041 0.465414 -4.60997 -2.11494 0.764965 -4.60322 -2.09525 0.570467 -4.60703 -1.86481 0.759957 -4.60309 -1.84912 0.639542 -4.60502 -1.6098 0.768851 -4.60229 -1.6056 0.704515 -4.60271 -1.0964 0.785001 -4.60065 -1.09578 0.76989 -4.60072 -2.98275 0.597172 -4.56178 -2.45897 0.465367 -4.53987 -2.36982 0.805022 -4.53987 -2.98286 0.75338 -4.56186 -2.09592 0.56848 -4.54278 -2.11666 0.761576 -4.54654 -1.84986 0.637346 -4.54478 -1.86499 0.758198 -4.54675 -1.6064 0.70536 -4.54675 -1.61009 0.766934 -4.54675 -1.09705 0.775689 -4.54675 -1.09705 0.779268 -4.54675 -3.0059 0.577831 -3.79978 -3.00504 0.734963 -3.79937 -2.38563 0.785545 -3.82203 -2.47558 0.445765 -3.82203 -2.13011 0.745316 -3.81528 -2.11041 0.550818 -3.81909 -1.87997 0.740308 -3.81515 -1.86428 0.619893 -3.81708 -1.62496 0.749202 -3.81435 -1.62076 0.684866 -3.81477 -1.11156 0.765352 -3.81271 -1.11094 0.750241 -3.81277 -2.99791 0.577523 -3.77383 -2.47414 0.445718 -3.75193 -2.38498 0.785372 -3.75193 -2.99802 0.73373 -3.77391 -2.11108 0.548831 -3.75484 -2.13182 0.741927 -3.7586 -1.86502 0.617697 -3.75684 -1.88015 0.738549 -3.75881 -1.62156 0.685711 -3.75881 -1.62525 0.747285 -3.75881 -1.11221 0.75604 -3.75881 -1.11221 0.759618 -3.75881 -2.88498 0.719942 -6.59178 -2.88412 0.877074 -6.59137 -2.26471 0.927656 -6.61403 -2.35466 0.587876 -6.61403 -2.00919 0.887427 -6.60728 -1.98949 0.692929 -6.61108 -1.75905 0.882419 -6.60715 -1.74336 0.762004 -6.60908 -1.50404 0.891313 -6.60634 -1.49984 0.826977 -6.60677 -0.990643 0.907463 -6.60471 -0.990018 0.892352 -6.60477 -2.87699 0.719634 -6.56583 -2.35322 0.587829 -6.54393 -2.26407 0.927484 -6.54393 -2.8771 0.875841 -6.56591 -1.99016 0.690942 -6.54683 -2.0109 0.884038 -6.5506 -1.7441 0.759808 -6.54883 -1.75923 0.88066 -6.55081 -1.50064 0.827822 -6.55081 -1.50433 0.889396 -6.55081 -0.991295 0.898151 -6.55081 -0.991295 0.901729 -6.55081 -2.37047 0.740194 -2.00597 -2.46041 0.400414 -2.00597 -2.11494 0.699965 -1.99922 -2.09525 0.505467 -2.00303 -1.86481 0.694957 -1.99909 -1.84912 0.574542 -2.00102 -1.6098 0.703851 -1.99829 -1.6056 0.639515 -1.99871 -1.0964 0.720001 -1.99665 -1.09578 0.70489 -1.99672 -2.45897 0.400367 -1.93587 -2.36982 0.740022 -1.93587 -2.09592 0.50348 -1.93878 -2.11666 0.696576 -1.94254 -1.84986 0.572346 -1.94078 -1.86499 0.693198 -1.94275 -1.6064 0.64036 -1.94275 -1.61009 0.701934 -1.94275 -1.09705 0.710689 -1.94275 -1.09705 0.714268 -1.94275 -2.37047 0.740194 2.00597 -2.46041 0.400414 2.00597 -2.11494 0.699965 1.99922 -2.09525 0.505467 2.00303 -1.86481 0.694957 1.99909 -1.84912 0.574542 2.00102 -1.6098 0.703851 1.99829 -1.6056 0.639515 1.99871 -1.0964 0.720001 1.99665 -1.09578 0.70489 1.99672 -2.45897 0.400367 1.93587 -2.36982 0.740022 1.93587 -2.09592 0.50348 1.93878 -2.11666 0.696576 1.94254 -1.84986 0.572346 1.94078 -1.86499 0.693198 1.94275 -1.6064 0.64036 1.94275 -1.61009 0.701934 1.94275 -1.09705 0.710689 1.94275 -1.09705 0.714268 1.94275 -2.99074 0.53248 -1.98372 -2.98988 0.689612 -1.98331 -2.98275 0.532172 -1.95778 -2.98286 0.68838 -1.95786 -2.99074 0.53248 1.98372 -2.98988 0.689612 1.98331 -2.98275 0.532172 1.95778 -2.98286 0.68838 1.95786</float_array> - <technique_common> - <accessor count="2975" source="#Geometry-mesh090-positions-array" stride="3"> - <param name="X" type="float" /> - <param name="Y" type="float" /> - <param name="Z" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh090-normals" name="normals"> - <float_array id="Geometry-mesh090-normals-array" count="10659">0.607274 0.0274961 0.794017 0.688288 0.0705105 0.722003 0.660481 0.214312 0.719608 0.490528 -0.541464 0.682788 0.437175 -0.725032 0.532172 0.571196 -0.535615 0.621974 0.607274 0.0274961 -0.794017 0.660481 0.214312 -0.719608 0.688288 0.0705105 -0.722003 0.490528 -0.541464 -0.682788 0.571196 -0.535615 -0.621974 0.437175 -0.725032 -0.532172 0.821756 0.412634 0.393002 0.635769 0.257157 0.727783 0.74263 -0.512495 0.431103 0.501935 -0.472117 0.724684 0.22871 -0.844166 0.484846 0.203526 -0.757839 0.619885 0.0395362 -0.947668 0.316801 0.0421027 -0.899288 0.435327 0.0561699 0.387269 0.920254 0.139444 -0.125159 0.982288 0.286742 0.0605458 0.956093 0.313625 0.151593 0.937368 0.239442 0.904933 0.3518 0.0598017 0.993415 0.0977299 0.293002 0.587175 0.75457 0.0446394 0.93453 0.353074 0.918657 0.368296 0.142924 0.39732 0.915927 0.0567027 0.417943 0.874254 0.246991 0.137085 -0.989546 0.0447848 0.173207 -0.98473 0.0175193 0.461453 -0.8851 0.0604936 0.592185 -0.805563 0.0196376 -0.510899 -0.859115 0.0300537 -0.10581 -0.994068 0.0251639 -0.444208 -0.894207 0.0554358 -0.122943 -0.991349 0.0459551 0.844664 0.53363 0.042217 0.28172 0.959491 0.00343224 0.828897 0.552927 0.0848654 0.26807 0.963286 0.0147857 -0.695439 -0.716584 0.0535973 -0.66412 -0.74264 0.0862003 -0.497881 -0.863698 0.0783594 0.00539105 0.999928 -0.0107566 -0.0999409 0.994821 -0.0185375 0.0269147 0.999635 -0.00252535 -0.096962 0.995028 -0.0227503 0.899433 -0.417027 0.130798 0.876098 0.471063 0.102728 0.858964 -0.495806 0.127898 0.90039 0.421798 0.106694 -0.594088 -0.799201 0.0913117 -0.0812122 -0.995051 0.057248 -0.650187 -0.75309 0.100558 -0.112286 -0.991846 0.0602842 -0.174404 0.984401 -0.023211 -0.184896 0.982627 -0.0160299 -0.574951 0.817631 0.030197 -0.447148 0.894312 0.0162962 -0.152194 0.968664 -0.196281 -0.121876 0.981159 -0.14991 -0.116039 0.976743 -0.180301 -0.0863523 0.985671 -0.144901 -0.345295 -0.567916 0.747157 -0.0986368 -0.814791 0.571302 -0.188057 -0.448231 0.873913 -0.0488193 -0.846734 0.529771 -0.170393 0.979806 -0.104624 -0.143815 0.989275 -0.0255538 -0.138756 0.984868 -0.103835 -0.0980576 -0.993415 0.0592626 0.0304267 -0.997954 0.0562349 0.0284428 -0.998297 0.0509324 0.0173677 -0.998465 0.0525861 -0.00318405 -0.998676 0.0513395 -0.138849 -0.988457 0.0606187 -0.1511 0.988334 -0.0191011 -0.00677598 0.999977 0 -0.117941 0.993021 0 -0.0514295 0.99867 0.00371539 -0.12252 0.992465 0.00152325 -0.202792 0.978981 0.0216985 -0.175051 0.982503 0.0636051 -0.416244 0.905669 0.0806548 -0.309835 0.940314 0.140756 -0.117865 0.992815 0.0206421 -0.0303743 0.999215 0.025439 -0.116596 0.99308 0.0140413 0.00415631 0.99998 -0.00469818 0.999989 0.00431038 -0.00186088 0.0111821 0.0987418 0.99505 0.999997 0.00232626 0.000311178 0.000598593 0.00134681 0.999999 0.265249 -0.0158043 0.96405 0.0371204 -0.118005 0.992319 0.983669 0.109914 -0.142529 0.0573592 0.165812 0.984488 0.711901 0.700808 0.0454386 0.19042 0.981297 0.028225 0.752576 0.658325 0.0153721 0.236843 0.971521 -0.0072072 -0.935046 -0.353387 0.0283984 -0.659579 -0.748708 0.0662683 -0.984379 -0.158862 0.0759069 0.0428974 -0.998924 0.0176453 0.0344432 -0.999192 0.0207015 -0.112207 -0.993406 0.0235538 -0.195742 -0.056746 0.979012 -0.239332 0.348925 0.906075 -0.0867337 0.143152 0.985893 -0.12759 0.28129 0.951103 -0.159856 0.98714 0.000751436 -0.154205 0.988039 0 -0.170094 0.985065 0.0267234 -0.152517 0.988301 0 -0.174698 0.982224 0.0686738 -0.239242 0.960648 0.141131 -0.222995 0.972461 0.0677666 -0.116231 0.993212 0.00446618 -0.152226 0.988343 0.00223172 -0.149633 0.988742 0.000173043 0.126753 0.9919 0.00829048 0.155296 0.987805 0.0111797 0.403404 0.914976 0.00914144 0.428997 0.902981 0.0242076 0.411671 0.909705 0.0544438 0.427372 0.893963 0.134845 0.0853323 0.907695 -0.410863 0.213831 0.878048 -0.428144 0.0288686 0.963673 0.265519 0.0443511 0.957711 0.284292 0.0483171 0.82011 0.570163 0.0622211 0.845412 0.530477 -0.181681 -0.624549 0.759559 -0.0769302 -0.254375 0.964041 -0.20447 -0.657727 0.724974 -0.0996319 -0.332342 0.937882 0.00172149 0.253659 0.967292 -0.000751218 0.257043 0.9664 0.946579 0.32212 0.0150585 0.960334 0.278772 0.00674937 -0.0467849 -0.904583 0.423723 -0.150937 -0.811304 0.564804 -0.269635 -0.876121 0.399635 -0.246926 -0.816098 0.522506 -0.128019 0.48026 0.867733 -0.0345489 0.610944 0.790919 -0.000249107 0.196134 0.980577 -0.000228461 0.220425 0.975404 0.00679354 0.214688 0.976659 0.008081 0.21013 0.97764 0.00304243 0.256714 0.966483 0.00362985 0.254243 0.967134 0.0218118 0.162578 0.986455 0.220679 0.373803 0.900873 0.0401583 0.0503659 0.997923 0.407957 -0.0115632 0.912928 0.0173263 0.281873 0.959295 0.0144747 0.254577 0.966944 0.0147627 -0.00537614 0.999877 0.0318339 -0.766865 0.641018 0.177858 -0.768155 0.615065 0.0251757 -0.901615 0.431806 0.239685 -0.921761 0.304809 0.00352119 -0.999985 -0.00421239 0.00474724 -0.999988 0.0012876 0.00121373 -0.993887 -0.110394 0.00413485 -0.995694 -0.0926069 0.5087 0.286574 0.81185 0.30986 0.642976 0.700406 0.396643 0.193422 0.897364 0.547918 -0.524544 0.651644 0.63954 -0.536141 0.550945 -0.208385 0.267158 0.940852 -0.351124 0.466068 0.812092 -0.3663 -0.127706 0.921692 -0.527694 -0.0493007 0.848003 -0.135538 0.419095 0.897769 -0.2309 0.732692 0.640194 0.0173421 -0.943135 0.331956 0.127048 -0.937742 0.323263 0.0268073 -0.960808 0.275916 0.0977213 -0.980031 0.173175 -0.451784 -0.803957 0.38671 -0.515856 -0.722129 0.460893 -0.511151 -0.657243 0.553856 -0.0538302 -0.944692 0.323511 -0.075988 -0.93514 0.346034 0.00983441 -0.920195 0.391336 -0.137508 -0.955034 0.26268 -0.1428 -0.917478 0.371272 -0.0591426 -0.954768 0.291412 -0.160504 -0.952076 0.260363 -0.134228 -0.626649 0.767654 -0.0893068 -0.98787 0.127033 -0.0619896 -0.815516 0.575405 -0.0169945 -0.998953 0.0424864 -0.0594948 -0.943051 0.327285 0.0386851 0.0267937 0.998892 0.0768449 0.0147511 0.996934 0.0606921 0.0416622 0.997287 0.0922029 0.0282131 0.99534 0.190675 0.274339 0.94254 0.167754 0.367042 0.914953 0.0304011 0.0501248 0.99828 0.000775484 -0.999973 -0.00725236 -0.00824689 -0.991446 -0.130257 -0.00915541 -0.999933 -0.00710725 -0.0350695 -0.996205 -0.0796611 -0.0530364 -0.983517 -0.172863 0.00338741 -0.982722 -0.185057 0.00430633 -0.975086 -0.221786 0.00217352 -0.988317 -0.152399 0.00827118 -0.975698 -0.218964 0.00229238 -0.988874 -0.148735 0.00220849 -0.999876 -0.0155828 0.00616905 -0.999981 0 0.00172048 -0.999992 -0.00351271 0.00455045 -0.99999 0 0.0343822 -0.979925 -0.19638 0.0215737 -0.978687 -0.204222 0.00807946 -0.979306 -0.202226 0.00123949 -0.977665 -0.210165 0.0200051 0.478632 0.877788 0.0156312 0.490857 0.8711 0.011085 0.686877 0.726689 0.0103911 0.689914 0.723817 0.00526525 -0.966808 0.255448 0.00356249 -0.945434 0.325793 0.0165124 0.286481 0.957944 0.0261724 0.290578 0.956493 0.0252499 0.487673 0.872661 0.00624823 -0.981555 0.191076 0.00470062 -0.979946 0.199208 0.00433929 -0.964861 0.262723 0.0160555 0.807657 0.589434 0.0613062 0.832405 0.550767 0.0157535 0.908454 0.417687 0.0504936 0.923447 0.380389 0.0133449 -0.653912 0.756453 0.00558301 -0.865846 0.50028 0.0287166 -0.685787 0.727236 0.0137408 -0.889801 0.456142 0.0870623 0.658147 0.747838 0.165669 0.63916 0.751018 0.162518 0.821362 0.546766 0.00882195 -0.951973 0.306054 0.0396902 -0.936298 0.348957 0.0613156 -0.858724 0.508757 0.13031 0.991473 0 0.183832 0.96588 0.182434 0.319477 0.947594 0 0.393331 0.906463 0.153672 0.139476 0.173108 0.974977 0.109484 -0.238915 0.964849 0.241108 0.238965 0.940618 0.234516 -0.244481 0.940867 0.622291 0.760779 0.184307 0.572108 0.728061 0.377649 0.323767 0.884717 0.335338 0.37709 0.64927 0.660494 0.627736 0.585157 0.513361 0.384478 0.757795 0.527184 0.552716 0.582439 0.596045 0.0763086 -0.979151 0.188254 0.0657443 -0.993269 0.0953606 0.14074 -0.967715 0.209092 0.121749 -0.986573 0.108863 0.388793 0.863221 0.322009 0.357945 0.867946 0.344304 0.405494 0.807782 0.427858 0.349434 0.849739 0.394765 0.321696 -0.569863 0.756153 0.246444 -0.808711 0.534089 0.403446 -0.48991 0.7728 0.320168 -0.740365 0.59106 0.431229 0.882814 0.186229 0.524867 0.838619 0.145715 0.464131 0.885767 0 0.554908 0.831912 0 0.595252 -0.101832 0.797061 0.516475 -0.150964 0.84289 0.548697 0.0464899 0.834728 0.31682 -0.860349 0.39928 0.295448 -0.907434 0.298788 0.445992 -0.765693 0.46347 0.432886 -0.820317 0.373751 0.748843 0.0348095 0.661832 0.687495 -0.0296289 0.725585 0.70865 -0.245234 0.661571 0.651286 -0.255947 0.714365 0.752334 0.185807 0.632036 0.625913 -0.608177 0.488215 0.607988 -0.557499 0.565284 -0.275063 -0.840398 0.466981 -0.182368 -0.623842 0.759976 0.0430154 0.964862 0.259214 0.0332617 0.999447 0 0.0385118 0.999258 0 -0.320661 -0.908766 0.267059 -0.314646 -0.918884 0.238015 -0.305618 -0.946578 0.102896 -0.308644 -0.934665 0.176467 0.00548179 0.993516 0.113561 0.0057762 0.999983 0 -0.00880742 0.992864 0.11893 -0.0294832 0.999565 0 -0.124039 -0.98736 0.0986637 -0.146374 -0.982262 0.117197 -0.123652 -0.989148 0.0793499 -0.143533 -0.985176 0.0939487 -0.992251 -0.0396128 0.117768 -0.909576 -0.0803073 0.407705 -0.849313 0.514311 0.118958 -0.668936 0.625024 0.402331 -0.942283 0.0744888 0.326427 -0.0542672 0.993 0.104913 -0.0775119 0.996991 0 -0.283353 0.950765 0.125524 -0.458543 0.888672 0 -0.335275 0.736523 0.587473 -0.275455 0.89655 0.346875 -0.29752 0.775042 0.557487 -0.244196 -0.948757 0.200572 -0.62049 -0.746838 0.239218 -0.210967 -0.965268 0.154109 -0.43439 -0.89003 0.138387 0.0170218 0.986124 0.165133 0.0064953 0.999979 0 -0.129451 -0.963447 0.234549 -0.1798 -0.935633 0.303748 -0.150642 -0.616844 0.772535 -0.12825 -0.621973 0.772464 -0.201237 -0.976535 0.0766943 -0.184859 -0.978068 0.0959715 -0.226536 -0.973783 0.0206975 -0.1228 -0.992219 0.0205504 -0.172571 -0.984997 0 -0.122742 -0.992439 0 0.106981 0.140431 -0.984294 -0.422098 -0.0394878 -0.90569 0.286557 0.17421 -0.942091 -0.312644 -0.026008 -0.949514 0.106981 0.140431 0.984294 0.151647 0.435438 0.887354 0.384423 0.426078 0.818949 0.24995 0.629629 0.735589 0.505001 0.288294 -0.813548 0.454485 0.375159 -0.807898 0.20232 0.236556 -0.95032 0.254173 0.653501 -0.712975 0.0584929 0.436397 -0.897851 -0.177156 0.648078 -0.740683 -0.259845 0.391422 -0.882762 0.0256708 0.999588 0.0128004 0.0157966 0.999866 0.0043741 0.0310743 0.999485 0.00796874 0.0193006 0.999812 0.00188787 -0.498916 0.865381 0.0468856 -0.406597 0.912974 0.0340165 -0.0141955 0.999899 -0.000298172 -0.0182063 0.999834 -2.99494e-005 -0.000428123 0.999754 0.0221642 -0.183422 0.982194 0.0406291 -0.00435544 0.999881 0.0147922 -0.372415 0.92595 0.0626347 -0.00422834 0.999956 0.00839406 -0.0350345 0.99937 0.00575128 -0.0667255 0.997715 0.0105658 -0.0719217 0.997394 0.00575128 0.0588719 -0.998104 0.0179647 0.0667309 -0.997618 0.01749 -0.0294015 -0.999562 0.00343481 -0.033815 -0.999417 0.00468915 -0.0733115 -0.997307 0.00227475 -0.0869943 -0.996201 0.00389525 -0.127812 -0.991778 0.00634362 -0.149526 -0.988717 0.00895871 -0.0453094 -0.998661 0.0249503 -0.0965465 -0.995035 0.0241526 0.427959 0.82668 0.365311 0.572299 0.759667 0.308836 0.754097 0.112813 0.647001 0.932032 0.0217 0.361725 0.868203 -0.320261 0.37902 0.809639 -0.233871 0.538321 0.661428 -0.698804 0.272373 0.50109 -0.771474 0.392093 0.805749 -0.105682 0.582751 -0.116057 -0.992853 0.0278213 -0.0777524 -0.988705 0.128126 -0.0990283 -0.994327 0.0388136 -0.051672 -0.997025 0.0572003 -0.611674 -0.783384 0.110289 -0.524578 -0.847025 0.0858322 -0.714679 -0.691539 0.104916 -0.516121 -0.853661 0.0698654 -0.0439331 -0.847058 0.529682 0.00735917 0.0137633 0.999878 -0.0552728 -0.770328 0.635248 -0.0110813 0.0320331 0.999425 -0.138176 0.0112071 0.990344 -0.149455 0.350156 0.924691 -0.24952 0.103371 0.962837 -0.228009 0.359992 0.904664 0.0673315 0.393973 0.916652 0.119712 0.843033 0.52437 0.103164 0.404162 0.908851 0.122292 0.879036 0.460804 -0.0123418 -0.348781 0.937123 -0.0501396 -0.405836 0.91257 0.00718023 -0.765751 0.643097 -0.0420436 -0.765125 0.642508 0.199803 0.228017 0.952936 0.117512 0.323036 0.939063 0.208092 0.850401 0.483234 0.148707 0.848818 0.50734 0.294251 -0.0783637 0.95251 0.210322 0.413674 0.885798 0.102361 0.00322548 0.994742 0.082372 0.358026 0.930071 0.177452 -0.972282 0.152244 0.169699 -0.778124 0.604752 0.0843986 -0.965016 0.248235 0.059676 -0.748311 0.660659 -0.191495 -0.633902 0.749332 -0.163465 -0.516383 0.840611 -0.170638 -0.437829 0.882716 -0.15934 -0.375447 0.913044 -0.116955 -0.405998 0.906359 -0.0645549 -0.213521 0.974803 -0.157249 -0.395967 0.9047 -0.152502 -0.285373 0.946206 -0.212624 -0.827567 0.519542 -0.27211 -0.857047 0.437524 -0.23438 -0.702694 0.671779 0.66981 -0.13692 0.7298 0.839412 -0.461304 0.287379 0.541693 -0.559967 0.626902 0.81084 -0.492342 0.316446 -0.163513 -0.256399 0.95264 -0.190975 -0.438506 0.878203 -0.166862 -0.184229 0.968616 -0.428635 -0.172271 0.886902 -0.423685 -0.460219 0.780185 -0.242849 -0.0889903 0.965974 -0.381114 -0.478848 0.790858 -0.685401 -0.53841 0.490246 0.905213 -0.306134 0.294739 0.880856 -0.21167 0.423426 0.574954 -0.527161 0.625723 0.541173 -0.357122 0.761312 -0.175285 0.255 0.950921 -0.185925 -0.0544863 0.981052 -0.222282 0.07866 0.971804 -0.219281 -0.253087 0.942265 0.631967 -0.516708 0.577608 0.300863 -0.692632 0.655547 0.251522 -0.743831 0.619236 0.133348 -0.812846 0.56701 0.14113 -0.764852 0.628557 -0.177042 -0.223179 0.958565 -0.170407 -0.154465 0.973192 -0.16879 -0.30097 0.938577 -0.273873 0.415289 0.867484 -0.209822 -0.014339 0.977635 -0.18154 0.267511 0.946299 0.535622 -0.0847813 -0.840191 0.498198 0.373499 -0.782494 0.850735 -0.0526768 -0.522948 0.857446 0.179493 -0.482254 -0.0525127 -0.740731 -0.669746 -0.0413778 -0.943318 -0.329301 -0.0982725 -0.722066 -0.684809 -0.101444 -0.916211 -0.387642 -0.0692197 -0.477644 -0.875822 -0.093751 -0.486602 -0.868579 -0.114392 -0.536772 -0.835937 -0.13025 -0.51618 -0.846518 0.123 0.829289 -0.545115 0.143841 0.763456 -0.629639 0.067161 0.388113 -0.919162 0.0961387 0.32782 -0.939836 -0.147396 -0.511174 -0.846744 -0.155146 -0.628556 -0.762133 -0.167132 -0.517286 -0.839334 -0.169509 -0.651046 -0.739869 0.00703655 -0.0763744 -0.997054 0.0244824 -0.0167157 -0.99956 -0.0783013 -0.388349 -0.91818 -0.0201662 -0.527376 -0.849392 -0.18461 -0.220457 -0.957767 -0.174041 -0.365155 -0.914533 -0.190694 -0.23706 -0.952596 -0.207571 -0.317741 -0.925178 -0.253653 -0.776888 -0.576286 -0.320823 -0.795514 -0.514033 -0.225346 -0.582675 -0.780838 -0.250073 -0.609752 -0.752108 0.120745 -0.503979 -0.855234 0.163696 -0.846799 -0.506098 0.316716 -0.347918 -0.882408 0.279065 -0.833438 -0.476973 0.284829 -0.273882 -0.918619 -0.25573 -0.347296 -0.902212 -0.209932 -0.349027 -0.913296 -0.349086 -0.61685 -0.705433 -0.484109 -0.302022 -0.821231 -0.334705 -0.268595 -0.903233 -0.392472 0.0571935 -0.917984 -0.276198 0.159859 -0.947713 0.148149 -0.440679 -0.885355 0.383947 -0.465675 -0.797327 0.192539 -0.776115 -0.600479 0.409509 -0.609196 -0.679104 -0.674854 -0.0152493 -0.737794 -0.528149 0.369429 -0.764579 -0.264972 0.377734 -0.88719 0.871184 -0.384783 -0.304927 0.614592 -0.522492 -0.590998 0.883293 -0.269676 -0.383496 0.622451 -0.388695 -0.679316 0.0844581 -0.843913 -0.52979 0.0792561 -0.775125 -0.626817 0.161309 -0.888137 -0.43034 -0.201752 -0.168815 -0.964778 -0.203502 -0.022733 -0.978811 -0.221455 -0.131155 -0.966311 -0.208794 0.218943 -0.953137 0.135944 0.788955 0.599224 0.170137 0.985414 0.0034864 0.129309 0.991562 0.00917949 0.134333 0.990575 -0.0267643 0.148198 0.988914 -0.00926733 -0.22979 -0.970081 -0.0783558 -0.221402 -0.943465 0.246687 -0.27673 -0.958641 -0.0665424 -0.29307 -0.940036 0.174478 0.676659 -0.71948 -0.156467 0.535975 -0.844233 -0.00114353 0.170365 -0.975973 -0.135838 0.177727 -0.984072 -0.00380684 -0.197032 -0.8948 -0.400638 -0.201719 -0.976976 -0.0694829 -0.215691 -0.902876 -0.371876 0.314563 0.849694 -0.423168 0.314692 0.948867 0.0249224 0.99015 -0.139754 0.00846486 0.776114 -0.621485 0.106785 0.982164 -0.187822 0.00878203 0.999004 0.0188061 0.0404679 0.999315 -0.0153768 0.0336565 0.999681 0.0250071 -0.00352152 0.999992 -0.00391518 -0.000742457 0.999915 -0.0130216 -0.000800835 0.998614 -0.0140517 0.050719 0.999547 -0.0300063 -0.00216105 0.996288 -0.068364 0.0523029 0.930272 -0.366325 -0.020007 0.987657 -0.156351 -0.0093824 0.914319 -0.397328 0.0784329 0.96438 -0.249301 0.0884284 -0.714609 -0.697841 0.0484907 -0.714296 -0.682673 0.154073 -0.828548 -0.555995 0.0661664 -0.841178 -0.537826 0.0562317 -0.833731 -0.551079 -0.0346999 -0.931116 -0.352023 -0.0954149 -0.848176 -0.528281 -0.0389349 -0.935869 -0.317495 -0.152797 0.0607586 0.956286 -0.286053 -0.0453209 0.96582 -0.25522 0.0249859 0.999318 -0.0271779 -0.0874824 0.995897 -0.0231576 0.5015 -0.808107 -0.308967 -0.0493786 -0.8964 -0.440486 0.347739 -0.478622 -0.806225 0 -0.300275 -0.953853 -0.841765 -0.377976 0.385442 -0.445569 -0.0932351 0.890379 -0.928606 0 0.371068 -0.192736 0 0.981251 0.613583 -0.726674 0.308967 0.253861 -0.34941 0.901924 0.0493786 -0.8964 0.440486 0 -0.300275 0.953853 0.841765 -0.377976 -0.385442 0.881621 -0.269694 0.38731 0.928606 0 -0.371068 0.871483 0 0.490426 -0.00413716 0.185715 0.982595 -0.00402046 0.183757 0.982963 -0.00516952 0.182154 0.983256 -0.00482582 0.176639 0.984264 -0.013332 -0.0129128 0.999828 -0.0195771 -0.00760133 0.999779 -0.0175128 -0.0126899 0.999766 -0.0125021 0.016942 0.999778 0.00306953 0.999991 0.0029504 -0.00119328 0.99995 -0.00987833 0.000982713 0.999986 -0.00513048 -0.00066925 0.999727 -0.0233604 0.999984 0.00545834 -0.00139924 0.976661 -0.214784 -0.00117101 0.900291 -0.433548 -0.0388948 0.908918 0.0994884 -0.404932 0.89979 0.168232 -0.402587 0.88633 0.236166 -0.398303 0.00883906 0.00474194 -0.99995 0.00844092 0.0163414 -0.999831 0.00804165 0.0279387 -0.999577 0.0123623 0.999864 -0.0109385 0.0191608 0.999797 -0.00618101 0.0174801 0.99979 -0.0106517 0.0142406 0.999672 0.0212764 0.0126438 0.999916 0.00270361 0.00174842 0.998449 0.0556385 0.000726235 0.994099 0.108471 -0.000808344 -0.998255 -0.0590523 -0.000156191 -0.998124 -0.0612176 -0.00146541 -0.998076 -0.0619864 -0.000360128 -0.997943 -0.0641004 -0.0709922 -0.997263 -0.0206323 0.104938 -0.994429 0.00992517 0.272252 -0.961951 0.0229978 0.271064 -0.962184 0.0269467 0.269406 -0.962554 0.0301858 0.221484 -0.975163 -0.00112294 0.265606 -0.963963 0.0151101 0.173934 -0.983579 -0.0481686 0 0 -1 0.00114108 0.00558458 -0.999984 -0.0232891 0.00347837 0.999723 0.0137516 0.0133642 0.999816 0.000433518 0.0100578 0.999949 0.0111304 0.0195239 0.999747 0.00282844 0.0175672 0.999842 0.00366408 0.0100809 0.999942 0.0029372 0.0132146 0.999908 0.00300025 0.00598209 0.999978 0.0812124 0.996434 -0.022891 -0.0814006 0.996011 -0.036552 -0.00242277 0.999688 -0.0248501 -0.0786532 0.994453 -0.0698399 0.271064 -0.962184 0.0269467 0.272252 -0.961951 0.0229977 0.131528 -0.989309 -0.0629917 0.173934 -0.983579 -0.0481686 0.126013 -0.986029 -0.108939 -0.00146541 -0.998076 0.0619864 -0.000520545 -0.997901 0.0647572 -0.000360128 -0.997943 0.0641004 0.00117679 -0.997768 0.0667731 -0.0855377 0.993272 0.078067 -0.0319175 0.996868 0.0723517 -0.126541 0.986946 0.0996195 -0.10128 0.983571 0.149431 0.417943 0.874254 -0.246991 0.309096 0.89483 -0.322084 0.049205 0.998768 -0.00647563 0.0794278 0.994916 -0.0619149 0.635769 0.257157 -0.727783 0.501935 -0.472117 -0.724684 0.499804 0.177602 -0.847734 0.399674 -0.439645 -0.804347 0.139444 -0.125159 -0.982288 0.313625 0.151593 -0.937368 0.175469 -0.554484 -0.813485 0.327809 -0.214539 -0.920062 0.446369 0.349551 -0.823753 0.286742 0.0605458 -0.956093 0.803248 -0.578483 -0.141954 0.268041 -0.959073 -0.0912878 0.74263 -0.512495 -0.431103 0.249465 -0.926405 -0.282031 0.91629 -0.395468 -0.0633805 0.844664 0.53363 -0.042217 0.990378 -0.136302 -0.023924 0.752576 0.658325 -0.0153721 0.461453 -0.8851 -0.0604936 0.137085 -0.989546 -0.0447848 0.461155 -0.882848 -0.0889722 0.125779 -0.990109 -0.0621632 0.28172 0.959491 -0.00343224 0.26807 0.963286 -0.0147857 0.0113245 0.999793 0.0169295 -0.00900426 0.999872 0.0132433 -0.444208 -0.894207 -0.0554358 -0.497881 -0.863698 -0.0783594 -0.122943 -0.991349 -0.0459551 -0.0980576 -0.993415 -0.0592626 0.316225 0.948365 -0.0246186 0.347616 0.937207 -0.0284029 -0.0025868 0.999931 0.0114438 0.00539105 0.999928 0.0107566 0.40285 -0.911042 -0.0878316 0.899433 -0.417027 -0.130798 0.461318 -0.882536 -0.0911904 0.921355 -0.368559 -0.123564 -0.617647 -0.780402 -0.0973844 -0.503203 -0.859629 -0.0884605 -0.138849 -0.988457 -0.0606187 -0.168644 -0.983129 -0.070832 -0.137914 0.990264 0.0188942 -0.100665 0.994747 0.0185999 -0.136117 0.99051 0.0190153 -0.0999409 0.994821 0.0185375 -0.244103 -0.929964 -0.274921 -0.181475 -0.908118 -0.377344 -0.0349721 -0.967331 -0.251091 -0.0237241 -0.932191 -0.361189 -0.0488193 -0.846734 -0.529771 -0.0986368 -0.814791 -0.571302 0.0344432 -0.999192 -0.0207015 -0.10581 -0.994068 -0.0251639 0.0257453 -0.998615 -0.0458901 -0.292883 0.956113 0.00820729 -0.156194 0.987699 0.00731681 -0.338666 0.940891 -0.00547682 -0.155713 0.987722 0.012581 -0.00318405 -0.998676 -0.0513395 -0.0298034 -0.997795 -0.059301 -0.154471 0.987997 0 -0.149633 0.988742 -0.000173043 -0.12252 0.992465 -0.00152325 -0.0853323 0.907695 -0.410863 0.411671 0.909705 -0.0544438 8.67794e-019 0.912386 -0.409332 0.41351 0.9105 0 0.552548 0.833108 -0.0249162 0.801061 0.581113 -0.143556 0.626339 0.778451 -0.0413967 0.969067 0.163961 -0.184462 0.824735 0.427231 -0.370522 0.764368 -0.0547968 -0.642447 -0.0867337 0.143152 -0.985893 -0.195742 -0.056746 -0.979012 -0.0410308 0.0359277 -0.998512 -0.0543293 -0.198933 -0.978506 0.424805 0.903593 -0.0553143 0.552028 0.83292 -0.0388578 0.424088 0.905621 0 0.59717 0.802115 0 0.173207 -0.98473 -0.0175193 0.592185 -0.805563 -0.0196376 0.192642 -0.980435 -0.0404533 0.729899 -0.678149 -0.0857965 -0.0432955 0.998755 -0.0247989 0.19042 0.981297 -0.028225 -0.00808258 0.999966 -0.00181104 0.236843 0.971521 0.0072072 -0.379578 -0.923833 -0.0495265 -0.510899 -0.859115 -0.0300537 -0.112207 -0.993406 -0.0235538 -0.28355 0.958924 -0.00805582 -0.220102 0.975293 0.0189457 -0.278514 0.96009 0.0256438 -0.194903 0.980681 0.0166627 -0.479126 0.794429 -0.373256 -0.309835 0.940314 -0.140756 -0.423655 0.901703 -0.0863073 -0.416244 0.905669 -0.0806548 -0.682401 0.682899 -0.260726 -0.149846 0.988709 0 -0.15546 0.987842 0 -0.164855 0.982384 -0.088001 -0.174698 0.982224 -0.0686738 -0.637791 0.731635 0.240694 -0.237746 0.83257 -0.500304 -0.818648 0.542924 0.187213 -0.223852 0.577822 -0.784864 -0.161857 0.986809 -0.00317977 -0.160643 0.987012 -0.000298179 -0.152226 0.988343 -0.00223172 -0.0514295 0.99867 -0.00371539 0.126753 0.9919 -0.00829048 -0.0249607 0.999678 -0.00446477 0.155296 0.987805 -0.0111797 0.427372 0.893963 -0.134845 0.445944 0.889145 -0.102741 0.0622211 0.845412 -0.530477 0.0483171 0.82011 -0.570163 0.0646979 0.54456 -0.836223 0.0456152 0.513065 -0.857137 -0.300763 -0.953699 0 -0.343215 -0.939257 0 -0.312882 -0.941594 -0.124518 -0.34423 -0.935097 -0.084256 -0.298028 -0.926994 -0.227731 -0.137508 -0.955034 -0.26268 -0.180172 -0.975626 -0.12527 -0.269635 -0.876121 -0.399635 -0.304229 -0.887985 -0.344859 -0.246926 -0.816098 -0.522506 -0.284754 -0.858641 -0.426205 -0.000363024 0.25184 -0.967769 -0.962531 0.27117 0.000656454 0.00108178 0.257213 -0.966354 -0.962332 0.271873 -0.0014389 0.14333 0.543373 -0.827165 0.0472101 0.479485 -0.876279 0.0111908 0.197806 -0.980177 0.008081 0.21013 -0.97764 -0.911016 0.410844 -0.0354464 -0.728335 0.684741 -0.0256225 0.0253336 0.501978 -0.864509 0.0181142 0.699312 -0.714587 0.0200051 0.478632 -0.877788 0.011085 0.686877 -0.726689 0.00733866 -0.999973 0 0.0143566 -0.999897 0 0.0133601 -0.995775 -0.090847 0.0202264 -0.997672 -0.0651198 0.00474724 -0.999988 -0.0012876 0.00413485 -0.995694 0.0926069 0.00731567 -0.999969 -0.00290747 0.0184166 -0.998945 0.0420785 0.137231 0.821359 -0.553657 0.0404726 0.873506 -0.485127 0.0147715 0.47997 -0.87716 -0.0669067 0.880069 -0.470109 -0.2309 0.732692 -0.640194 -0.0676229 0.883456 -0.463609 -0.210865 0.791924 -0.573055 0.396643 0.193422 -0.897364 0.237927 0.131368 -0.962358 0.298983 0.473559 -0.828463 0.201559 0.19924 -0.958998 0.289654 -0.956072 -0.0450312 0.34906 -0.924133 -0.155356 0.63954 -0.536141 -0.550945 0.547918 -0.524544 -0.651644 0.0559821 -0.996648 0.0596497 0.157026 -0.987369 0.0210944 0.0977213 -0.980031 -0.173175 0.127048 -0.937742 -0.323263 -0.160504 -0.952076 -0.260363 -0.204791 -0.883829 -0.420604 -0.318377 -0.939078 -0.129493 -0.451784 -0.803957 -0.38671 -0.155602 -0.983921 0.0876779 -0.10067 -0.994357 0.0334756 -0.166274 -0.985578 -0.0314552 -0.0677818 -0.971885 -0.225488 -0.227789 -0.972657 -0.0452851 -0.0591426 -0.954768 -0.291412 -0.0594948 -0.943051 -0.327285 -0.00201948 -0.96308 -0.269208 -0.0169945 -0.998953 -0.0424864 0.00428243 -0.998794 -0.0489193 0.0304011 0.0501248 -0.99828 0.0151514 0.0272922 -0.999513 0.0135546 0.0511452 -0.998599 0.00714808 0.0289683 -0.999555 0.104634 0.368612 -0.923676 -0.0106368 0.488731 -0.87237 -0.00658899 0.049494 -0.998753 -0.0530364 -0.983517 0.172863 -0.0273253 -0.976942 0.21175 -0.117965 -0.978436 0.16955 -0.0875094 -0.981857 0.168224 0.00209465 -0.999355 0.0358612 0.00188104 -0.999527 0.0306811 0.00217352 -0.988317 0.152399 0.00059825 -0.984345 0.17625 0.0079574 -0.998656 -0.0512131 0.00984367 -0.980356 0.196991 0.020183 -0.980653 0.194711 0.00382191 -0.976411 0.215886 0.00123949 -0.977665 0.210165 -0.000497477 -0.990157 0.139962 -0.00244971 -0.99446 0.105089 0.0032344 -0.999995 0 0.00340481 -0.999988 0.0033886 0.00404046 -0.999992 0 0.00352119 -0.999985 0.00421239 0.00732637 0.811631 -0.584124 0.00700244 0.907239 -0.420558 0.00873321 0.844251 -0.535876 0.00942135 0.932987 -0.359787 0.0251757 -0.901615 -0.431806 0.0318339 -0.766865 -0.641018 0.00414906 -0.891124 -0.453741 0.00746558 -0.730113 -0.683285 0.0160555 0.807657 -0.589434 0.0103911 0.689914 -0.723817 0.019911 0.650291 -0.759424 0.00356249 -0.945434 -0.325793 0.00414904 -0.939625 -0.342179 0.00558301 -0.865846 -0.50028 0.0140417 0.971829 -0.23527 0.0135764 0.999908 0 0.0482953 0.982919 -0.177589 0.0434407 0.999056 0 0.0197784 -0.295936 -0.955003 0.0250837 0.0507402 -0.998397 0.0368347 -0.31233 -0.949259 0.0583706 0.0747159 -0.995495 0.0504936 0.923447 -0.380389 0.159409 0.911153 -0.379986 0.183832 0.96588 -0.182434 0.0823102 -0.669291 -0.738427 0.0287166 -0.685787 -0.727236 0.109484 -0.238915 -0.964849 0.0255214 -0.98256 -0.184186 0.0763086 -0.979151 -0.188254 0.0264154 -0.993802 -0.107983 0.0657443 -0.993269 -0.0953606 0.645601 0.723902 -0.243238 0.659279 0.718801 -0.220626 0.67111 0.741358 0 0.689666 0.724128 0 0.323767 0.884717 -0.335338 0.572108 0.728061 -0.377649 0.384478 0.757795 -0.527184 0.552716 0.582439 -0.596045 0.241108 0.238965 -0.940618 0.382259 0.189822 -0.904348 0.234516 -0.244481 -0.940867 0.378345 -0.225373 -0.897809 0.418902 0.589695 -0.690493 0.483633 0.753851 -0.444756 0.373705 0.668286 -0.643225 0.349434 0.849739 -0.394765 0.380504 0.900977 -0.208464 0.387169 0.922009 0 0.431229 0.882814 -0.186229 0.489837 0.104005 -0.865588 0.46153 -0.19502 -0.865423 0.182829 -0.974949 -0.126683 0.274741 -0.947728 -0.162263 0.18181 -0.983334 0 0.281953 -0.959428 0 0.500356 0.739406 -0.45047 0.68137 0.515437 -0.519673 0.561329 0.443164 -0.698939 0.327408 -0.817074 -0.474546 0.378305 -0.688348 -0.61892 0.968349 0.249599 0 0.916852 0.200541 -0.345205 0.857641 0.514249 0 0.822547 0.488987 -0.290358 0.595252 -0.101832 -0.797061 0.687495 -0.0296289 -0.725585 0.607988 -0.557499 -0.565284 0.445992 -0.765693 -0.46347 -0.320661 -0.908766 -0.267059 -0.314646 -0.918884 -0.238015 0.0698308 0.825344 -0.560295 0.0573439 0.354277 -0.933381 -0.332925 -0.928662 -0.163545 -0.31651 -0.942121 -0.110589 -0.327939 -0.92217 -0.205081 -0.311581 -0.944482 -0.104264 0.0216773 0.939352 -0.34227 -0.0777934 0.938753 -0.335694 0.01643 0.972648 -0.231703 -0.0242659 0.980899 -0.192998 -0.123384 -0.990301 -0.0638691 -0.123933 -0.991222 -0.0460424 -0.136332 -0.988242 -0.0692205 -0.138764 -0.988771 -0.0554576 -0.893313 -0.440391 -0.0897045 -0.992251 -0.0396128 -0.117768 -0.75398 -0.577654 -0.312779 -0.879043 -0.252099 -0.404634 -0.0542672 0.993 -0.104913 -0.0944677 0.97446 -0.203726 -0.283353 0.950765 -0.125524 -0.275455 0.89655 -0.346875 -0.344362 -0.82762 -0.443239 -0.39258 -0.820169 -0.416178 -0.635791 -0.474266 -0.608967 -0.798123 0.101458 -0.59389 -0.152244 -0.985133 -0.0795938 -0.143533 -0.985176 -0.0939487 -0.210967 -0.965268 -0.154109 0.0425007 0.952769 -0.300709 0.0170218 0.986124 -0.165133 0.00548179 0.993516 -0.113561 -0.1798 -0.935633 -0.303748 -0.190432 -0.968622 -0.159711 -0.129451 -0.963447 -0.234549 -0.128546 -0.975293 -0.179663 -0.123652 -0.989148 -0.0793499 -0.202133 -0.976865 -0.0698341 -0.201237 -0.976535 -0.0766943 0.536536 0.729284 -0.424587 0.427959 0.82668 -0.365311 0.118888 0.990193 -0.0733736 0.0885469 0.993485 -0.0717434 0.0227057 0.999502 -0.0218905 0.0366474 0.999243 -0.0130463 0.120702 0.991377 -0.0510103 -0.406597 0.912974 -0.0340165 -0.0182063 0.999834 2.99494e-005 -0.297982 0.954234 -0.0253794 -0.0262938 0.999654 -0.00121665 0.529357 0.843136 -0.094355 0.466256 0.796231 -0.385514 0.119014 0.992699 -0.0195876 0.109855 0.85259 -0.510903 -0.0350345 0.99937 -0.00575128 0.030778 0.999515 -0.0046632 -0.00422834 0.999956 -0.00839406 0.0306068 0.850467 -0.525137 -0.0294015 -0.999562 -0.00343481 -0.0733115 -0.997307 -0.00227475 -0.033815 -0.999417 -0.00468915 -0.0869943 -0.996201 -0.00389525 -0.116192 -0.993204 -0.00676565 -0.0648445 -0.997894 -0.00162559 -0.104877 -0.994384 -0.0141743 -0.0529873 -0.99859 -0.00322309 -0.605958 -0.793844 -0.0512417 -0.573955 -0.817568 -0.046457 -0.149526 -0.988717 -0.00895871 -0.156492 -0.987508 -0.0183717 0.645323 -0.702421 -0.300272 0.69734 -0.6471 -0.308188 0.805749 -0.105682 -0.582751 0.918575 -0.0640083 -0.39003 0.0685407 -0.984692 -0.16026 -0.0503831 -0.980372 -0.190608 0.017732 -0.991408 -0.129597 -0.0379924 -0.995166 -0.0905651 0.253154 -0.919434 -0.300923 0.232829 -0.933505 -0.272691 0.0368961 -0.998112 -0.0491107 -0.439792 0.897307 -0.037715 -0.669708 0.740238 -0.0594925 -0.846413 0.527301 -0.0744218 -0.986292 0.138635 -0.0894862 0.0498551 0.854413 -0.517197 0.00735917 0.0137633 -0.999878 0.12627 -0.063009 -0.989993 0.531885 -0.615378 -0.581728 0.980086 -0.0665317 -0.187097 0.433154 -0.789914 -0.434067 0.513411 -0.851586 -0.105881 0.982175 0.0285821 -0.185783 0.210322 0.413674 -0.885798 0.285452 0.84971 -0.443294 0.520093 0.360821 -0.774152 0.518533 0.804242 -0.290378 0.194001 -0.125613 -0.972926 0.287474 -0.358373 -0.888216 0.169699 -0.778124 -0.604752 0.225355 -0.856333 -0.46466 -0.0897513 -0.670689 -0.736289 -0.126447 -0.61965 -0.774626 -0.088904 -0.413151 -0.906312 -0.117366 -0.450937 -0.884806 0.082372 0.358026 -0.930071 0.135944 0.788955 -0.599224 -0.128625 -0.439088 -0.889189 -0.13152 -0.451776 -0.882384 -0.149234 -0.400285 -0.904158 -0.148809 -0.468167 -0.87102 -0.197495 -0.926928 -0.31906 -0.221402 -0.943465 -0.246687 -0.179078 -0.747557 -0.639601 -0.212624 -0.827567 -0.519542 0.0456884 -0.451988 -0.890853 0.0461094 -0.0262108 -0.998592 0.12406 -0.400215 -0.907985 0.102361 0.00322548 -0.994742 -0.23438 -0.702694 -0.671779 -0.328258 -0.748506 -0.576181 -0.190975 -0.438506 -0.878203 -0.228197 -0.445805 -0.865554 -0.141528 -0.406204 -0.902756 -0.110219 -0.488728 -0.865446 -0.103026 -0.437201 -0.893443 -0.685401 -0.53841 -0.490246 -0.381114 -0.478848 -0.790858 -0.700123 -0.661436 -0.268943 -0.474267 -0.744648 -0.469649 -0.34193 -0.352856 -0.870963 -0.279337 -0.357256 -0.891257 -0.2931 0.0551015 -0.954493 -0.222282 0.07866 -0.971804 -0.157249 -0.395967 -0.9047 -0.116955 -0.405998 -0.906359 -0.149632 -0.416259 -0.896849 -0.125468 -0.436982 -0.890676 -0.188647 0.372425 -0.908687 -0.294704 0.466451 -0.83401 -0.460858 0.0179958 -0.887292 0.908253 -0.320363 -0.269153 0.81084 -0.492342 -0.316446 0.631967 -0.516708 -0.577608 0.541693 -0.559967 -0.626902 0.0812405 -0.751539 -0.654667 0.0649604 -0.729764 -0.680606 0.133348 -0.812846 -0.56701 0.14113 -0.764852 -0.628557 -0.172805 -0.00411783 -0.984947 -0.170407 -0.154465 -0.973192 -0.166862 -0.184229 -0.968616 -0.163513 -0.256399 -0.95264 0.0244824 -0.0167157 0.99956 0.0959983 0.394475 0.913879 0.00703655 -0.0763744 0.997054 0.103265 0.330949 0.937981 -0.0176255 -0.463443 0.885951 -0.0692197 -0.477644 0.875822 -0.0548383 -0.444862 0.893919 -0.093751 -0.486602 0.868579 0.170365 -0.975973 0.135838 0.676659 -0.71948 0.156467 0.178537 -0.810181 0.558329 0.659627 -0.624829 0.417709 -0.114392 -0.536772 0.835937 -0.146119 -0.507933 0.848913 -0.13025 -0.51618 0.846518 -0.147396 -0.511174 0.846744 0.115322 -0.392002 0.912708 0.0534502 -0.426783 0.902773 0.0495786 -0.294527 0.954356 -0.0121894 -0.379849 0.924968 -0.171266 -0.450014 0.876445 -0.182633 -0.407705 0.894663 -0.167132 -0.517286 0.839334 -0.176497 -0.519812 0.835849 0.282665 -0.00149546 0.959217 0.383947 -0.465675 0.797327 0.535622 -0.0847813 0.840191 0.578377 -0.348059 0.737791 -0.216658 -0.249198 0.943907 -0.231335 -0.260804 0.937265 -0.225751 -0.306842 0.9246 -0.240754 -0.267528 0.932988 -0.0712105 -0.636631 0.767873 0.0115354 -0.679629 0.733465 -0.186388 -0.366509 0.911554 -0.16378 -0.455659 0.874957 -0.320823 -0.795514 0.514033 -0.250073 -0.609752 0.752108 -0.449272 -0.774245 0.445756 -0.349086 -0.61685 0.705433 -0.000207657 -0.742824 0.669487 -0.0201662 -0.527376 0.849392 -0.0834482 -0.6206 0.779674 -0.0783013 -0.388349 0.91818 -0.170453 -0.454303 0.874388 -0.174041 -0.365155 0.914533 -0.199494 -0.427945 0.881513 -0.207571 -0.317741 0.925178 -0.078128 -0.618612 0.781803 0.00101661 -0.70749 0.706723 -0.142512 -0.45383 0.879619 -0.136457 -0.507628 0.850702 -0.166 -0.429278 0.887786 -0.190988 -0.366969 0.910416 -0.203502 -0.022733 0.978811 -0.208794 0.218943 0.953137 -0.201662 0.115942 0.972569 -0.221226 0.301473 0.927455 0.143841 0.763456 0.629639 0.170137 0.985414 -0.0034864 0.123 0.829289 0.545115 0.129309 0.991562 -0.00917949 -0.143523 -0.896967 -0.418153 -0.148076 -0.98859 0.0276454 -0.163982 -0.889974 -0.425507 -0.163461 -0.985993 0.0331362 -0.712846 -0.698974 0.0573273 -0.714609 -0.697841 -0.0484907 -0.536972 -0.842645 0.0401302 -0.532676 -0.842461 -0.0807266 -0.101444 -0.916211 0.387642 -0.145927 -0.888752 0.434539 -0.106512 -0.994079 0.0214867 -0.27673 -0.958641 0.0665424 -0.280627 -0.907483 0.312608 -0.377957 -0.924056 0.0571842 -0.383733 -0.891542 0.240627 0.957171 -0.23422 0.170189 0.953666 -0.300868 -0.000621953 0.905882 -0.411257 0.101217 0.930272 -0.366325 0.020007 0.980499 -0.171653 0.0956934 0.682422 -0.19535 0.704371 0.850513 -0.167026 0.498728 0.997353 -0.0172522 0.0706288 0.850735 -0.0526768 0.522948 0.995951 0.0183331 0.0880109 0.995491 0.000585661 0.0948547 0.883293 -0.269676 0.383496 0.990363 -0.106112 0.0890041 0.871184 -0.384783 0.304927 0.942278 -0.303903 0.140551 0.849445 -0.393904 0.351116 0.791465 -0.490227 0.365048 -0.715627 -0.676375 0.17434 -0.833731 -0.551079 0.0346999 -0.848176 -0.528281 0.0389349 -0.448323 -0.439981 0.778089 -0.410616 -0.142128 0.900663 -0.778408 -0.529209 0.337666 -0.702408 -0.0727756 0.708045 -0.11412 0.970792 0.211044 -0.14039 0.989933 0.0179933 -0.138417 0.978777 0.151118 -0.16369 0.986278 0.0214955 -0.5015 -0.808107 -0.308967 -0.253861 -0.34941 -0.901924 0.0493786 -0.8964 -0.440486 -0.881621 -0.269694 0.38731 -0.871483 0 0.490426 0.613583 -0.726674 -0.308967 0.881621 -0.269694 -0.38731 0.445569 -0.0932351 -0.890379 -0.613583 -0.726674 0.308967 -0.0493786 -0.8964 0.440486 0.192736 0 -0.981251 -0.260179 0 -0.96556 -0.549247 -0.11493 -0.827719 -0.883272 -0.462826 -0.0749897 -0.88331 -0.463766 -0.0684465 -0.703033 -0.703547 -0.103759 -0.428598 -0.894399 -0.127888 -0.00516952 0.182154 -0.983256 -0.00558664 0.174723 -0.984602 -0.00482582 0.176639 -0.984264 -0.00472266 0.168857 -0.985629 -0.00242277 0.999688 0.0248501 0.0812124 0.996434 0.022891 0.0901141 0.99516 0.0391947 0.0922258 0.993792 0.0622257 -0.000265294 0.999166 0.0408215 -0.0310662 0.998964 0.0332468 -0.0164005 0.999346 0.032219 -0.0302062 0.997857 0.0580414 0.104937 -0.994429 -0.00992516 -0.241573 -0.969816 0.0331727 -0.0709922 -0.997263 0.0206323 -0.238738 -0.969106 0.0619504 -0.0232247 0.00261209 0.999727 0.013832 0.0134148 0.999814 0.000748925 0.0100321 0.999949 0.0112983 0.0196581 0.999743 0.0023584 0.017663 0.999841 0.00114122 0.00558526 0.999984 0.00149239 0.0110716 0.999938 0 0 1 -0.95579 -0.000516441 0.294051 -0.959989 0.00202241 0.280029 -0.963977 0.00456081 0.265945 0.0922258 0.993792 0.0622257 -0.000265299 0.999166 0.0408215 0.0901141 0.99516 0.0391946 -0.0164005 0.999346 0.032219 0.998967 0.0411969 0.0191966 0.999665 0.020603 0.015647 0.999927 0 0.0120906 0.000748994 0.010032 -0.999949 -0.0232248 0.00261156 -0.999727 -0.0391546 0.00505188 -0.99922 -0.0416617 0.000484792 -0.999132 0.0138322 0.0134149 -0.999814 0.0112984 0.0196578 -0.999743 0.00235849 0.0176624 -0.999841 0.00149232 0.011071 -0.999938 0.00366394 0.0100797 0.999942 0.00304526 0.00559217 0.99998 0.00300012 0.00598086 0.999978 0.00304766 0.00441743 0.999986 -0.00242275 0.999688 0.0248501 0.0812124 0.996434 0.022891 0.0901141 0.99516 0.0391948 0.0922259 0.993792 0.0622258 -0.00026528 0.999166 0.0408217 -0.0310662 0.998964 0.033247 -0.0164004 0.999346 0.0322192 -0.0302062 0.997857 0.0580415 0.385133 0.817155 0.428871 0.399674 -0.439645 0.804347 -0.182811 0.619215 0.763645 -0.0652308 -0.0944056 0.993394 -0.0744458 -0.358521 0.930549 0.423476 0.475816 0.770888 0.803248 -0.578483 0.141954 0.990378 -0.136302 0.023924 0.91629 -0.395468 0.0633805 -0.122804 0.992418 -0.00510635 -0.125307 0.992042 -0.0123202 -0.0872023 0.99619 0.00110729 -0.085896 0.996152 -0.0174281 0.855216 0.509654 0.0941182 0.29623 0.954905 0.0201095 -0.79922 -0.59315 0.0970605 -0.00667654 0.999902 -0.0123192 0.316225 0.948365 0.0246186 -0.0025868 0.999931 -0.0114438 -0.617647 -0.780402 0.0973844 -0.141909 0.989713 -0.0181841 -0.137914 0.990264 -0.0188942 -0.104082 0.994397 -0.0184855 -0.100665 0.994747 -0.0185999 -0.10128 0.983571 -0.149431 -0.076172 0.989974 -0.118949 -0.0785375 -0.477533 0.875097 0.018397 -0.776282 0.630118 -0.134697 0.990573 -0.0249183 -0.126541 0.986946 -0.0996195 0.125779 -0.990109 0.0621632 0.122844 -0.990734 0.0579255 0.105324 -0.992766 0.0576334 0.068146 -0.996221 0.0538533 -0.136117 0.99051 -0.0190153 0.552028 0.83292 0.0388578 0.618406 0.785653 0.0179623 0.588769 0.808301 0 0.462162 0.886601 0.0185809 0.552548 0.833108 0.0249162 0.692972 0.717419 0.0714172 0.801061 0.581113 0.143556 0.824735 0.427231 0.370522 0.700179 0.683557 0.206151 -0.0543293 -0.198933 0.978506 -0.342167 -0.513663 0.786811 -0.0664699 -0.551423 0.831574 -0.41008 -0.350612 0.841965 0.424805 0.903593 0.0553143 0.220318 0.350419 0.910311 0.626339 0.778451 0.0413967 0.211584 0.977294 0.0113697 -0.875171 0.365763 0.316691 -0.82071 -0.0406914 0.569894 0.0385937 -0.998322 0.043161 -0.0944859 -0.994369 0.047996 0.974478 0.220234 0.0434735 0.946404 0.31593 0.0671315 -0.175652 0.984265 0.0192107 -0.161857 0.986809 0.00317977 -0.161659 0.986573 0.0232339 -0.15121 0.988283 0.0207699 0.17623 0.984338 0.00455417 -0.0180618 0.999828 0.00428108 -0.0249607 0.999678 0.00446477 0.436397 0.835081 0.334959 0.488874 0.827955 0.274758 0.445944 0.889145 0.102741 0.0456152 0.513065 0.857137 0.644239 0.764315 -0.0279028 0.865306 0.501235 0.00289479 -0.116163 -0.99323 0 -0.180172 -0.975626 0.12527 -0.312882 -0.941594 0.124518 -0.029941 0.0381407 0.998824 -0.00254778 0.127152 0.99188 -0.284754 -0.858641 0.426205 -0.000363024 0.25184 0.967769 0.00108178 0.257213 0.966354 0.0202054 0.259424 0.965552 0.962607 0.269319 -0.0292357 0.962481 0.27135 0.000128141 0.911016 0.410844 -0.0354464 0.00873223 0.297025 0.95483 0.0253336 0.501978 0.864509 0.0502682 -0.994294 0.0940834 0.0202264 -0.997672 0.0651198 0.0241256 -0.984431 0.17411 0.0133601 -0.995775 0.090847 0.00482015 -0.999988 0 0.00730885 -0.999973 0 0.00731567 -0.999969 0.00290747 -0.0676229 0.883456 0.463609 0.0404726 0.873506 0.485127 0.0147715 0.47997 0.87716 -0.210865 0.791924 0.573055 -0.343826 0.590967 0.729755 0.237927 0.131368 0.962358 0.280919 -0.0205964 0.95951 0.338328 -0.466722 0.817132 0.34906 -0.924133 0.155356 0.251804 -0.958096 0.136552 0.377655 -0.768343 0.516745 0.0184166 -0.998945 -0.0420785 0.0559821 -0.996648 -0.0596497 -0.315101 -0.536868 0.782614 -0.166274 -0.985578 0.0314552 -0.0677818 -0.971885 0.225488 -0.267362 -0.94003 0.211806 -0.122435 -0.525821 0.841737 -0.150446 -0.751504 0.642346 0.0151514 0.0272922 0.999513 0.104634 0.368612 0.923676 0.0135546 0.0511452 0.998599 -0.0273253 -0.976942 -0.21175 -0.0875094 -0.981857 -0.168224 0.00209465 -0.999355 -0.0358612 0.00188104 -0.999527 -0.0306811 0.00470904 -0.999989 0 0.00384447 -0.999993 0 0.00984367 -0.980356 -0.196991 0.020183 -0.980653 -0.194711 -0.000497477 -0.990157 -0.139962 -0.00244971 -0.99446 -0.105089 0.0618069 -0.996392 0.0581598 0.128664 -0.988781 0.0758759 0.00732637 0.811631 0.584124 0.00873321 0.844251 0.535876 0.00414906 -0.891124 0.453741 0.019911 0.650291 0.759424 0.00414904 -0.939625 0.342179 0.0140417 0.971829 0.23527 0.0482953 0.982919 0.177589 0.0368347 -0.31233 0.949259 0.0197784 -0.295936 0.955003 0.159409 0.911153 0.379986 0.0823102 -0.669291 0.738427 0.0264154 -0.993802 0.107983 0.021285 -0.999773 0 0.0680916 -0.997679 0 0.418902 0.589695 0.690493 0.193393 0.401796 0.895075 0.659279 0.718801 0.220626 0.654889 0.630336 0.416889 0.382259 0.189822 0.904348 0.373705 0.668286 0.643225 0.118558 -0.992947 0 0.380504 0.900977 0.208464 0.378345 -0.225373 0.897809 0.46153 -0.19502 0.865423 0.467493 -0.401542 0.787537 0.561329 0.443164 0.698939 0.327408 -0.817074 0.474546 0.562744 -0.306815 0.767583 0.68137 0.515437 0.519673 0.766232 -0.247916 0.592812 0.0698308 0.825344 0.560295 -0.327939 -0.92217 0.205081 -0.311581 -0.944482 0.104264 0.01643 0.972648 0.231703 -0.0242659 0.980899 0.192998 -0.136332 -0.988242 0.0692205 -0.123384 -0.990301 0.0638691 -0.893313 -0.440391 0.0897045 -0.961446 -0.274994 0 -0.989293 0.145945 0 -0.0944677 0.97446 0.203726 -0.256556 -0.777523 0.57414 -0.344362 -0.82762 0.443239 -0.178648 -0.941851 0.284608 -0.39258 -0.820169 0.416178 -0.177527 -0.982064 0.0635177 -0.152244 -0.985133 0.0795938 0.0491658 0.930745 0.36235 0.0278924 0.975228 0.219438 0.0425007 0.952769 0.300709 -0.283075 -0.923139 0.26016 -0.249027 -0.873819 0.417643 -0.190432 -0.968622 0.159711 -0.202133 -0.976865 0.0698341 -0.31651 -0.942121 0.110589 0.286557 0.17421 0.942091 0.20232 0.236556 0.95032 -0.312644 -0.026008 0.949514 -0.3311 0.0565511 0.941899 -0.486426 -0.0476757 -0.87242 -0.00989106 0.0170785 -0.999805 0.261452 0.925321 0.274635 0.250972 0.930103 0.26818 0.278608 0.960405 -8.20921e-008 0.384423 0.426078 -0.818949 0.536536 0.729284 0.424587 0.203224 0.97427 0.0974593 0.118888 0.990193 0.0733736 0.120702 0.991377 0.0510103 0.0438398 0.999013 0.0071053 0.0256698 0.999669 0.00138084 0.0138726 0.999293 0.0349472 0.00860829 0.999729 0.0216354 -0.297982 0.954234 0.0253794 -0.0262938 0.999654 0.00121665 -0.0263668 -0.999649 0.00258889 -0.0648445 -0.997894 0.00162559 -0.507081 -0.860042 0.0565316 -0.104877 -0.994384 0.0141743 -0.680242 -0.730124 0.0647257 -0.116192 -0.993204 0.00676565 -0.109778 -0.954769 0.276341 -0.218394 -0.909874 0.352752 -0.156492 -0.987508 0.0183717 -0.573955 -0.817568 0.046457 -0.472996 -0.825243 0.308624 0.78573 0.00659725 0.618534 0.017732 -0.991408 0.129597 0.0368961 -0.998112 0.0491107 -0.0379924 -0.995166 0.0905651 -0.0233948 -0.999723 0.00273545 0.0685407 -0.984692 0.16026 0.41418 -0.847011 0.333208 -0.995701 0.0415393 0.0827946 -0.953313 0.291757 0.0779239 -0.763465 0.64225 0.068097 -0.439792 0.897307 0.037715 -0.669708 0.740238 0.0594925 -0.138133 -0.813347 0.565143 -0.113814 -0.372216 0.921141 0.535138 0.674212 0.508984 0.974715 0.12827 0.182966 0.466256 0.796231 0.385514 0.529357 0.843136 0.094355 0.982175 0.0285821 0.185783 0.520093 0.360821 0.774152 0.556367 -0.15172 0.816968 0.53389 -0.246669 0.808775 0.194001 -0.125613 0.972926 0.282295 -0.286762 0.915465 -0.0897513 -0.670689 0.736289 -0.126447 -0.61965 0.774626 -0.0969511 -0.920013 0.379707 -0.143523 -0.896967 0.418153 0.0461094 -0.0262108 0.998592 0.0242344 -0.96325 0.26751 -0.179078 -0.747557 0.639601 0.12406 -0.400215 0.907985 0.316329 -0.444164 0.838245 -0.103026 -0.437201 0.893443 -0.0687209 -0.415438 0.907022 -0.110219 -0.488728 0.865446 -0.0624569 -0.563468 0.823773 -0.171918 -0.100886 0.979932 -0.228197 -0.445805 0.865554 -0.125468 -0.436982 0.890676 -0.0676694 -0.440242 0.895325 -0.0794905 -0.555239 0.827883 -0.2931 0.0551015 0.954493 -0.188647 0.372425 0.908687 0.323476 -0.606666 0.726168 0.148854 -0.68411 0.714028 -0.188393 -0.314216 0.930471 -0.484011 0.428309 0.763076 -0.294704 0.466451 0.83401 0.539748 0.763689 -0.35419 0.882075 0.385989 -0.270105 0.00406829 -0.783983 -0.620769 0.0226053 -0.961755 -0.272978 -0.15778 -0.0601001 -0.985644 0.172793 0.246192 -0.953694 -0.0916077 -0.119353 -0.988617 0.293972 -0.164229 -0.941599 0.162171 -0.162173 -0.973345 0.0817295 -0.106345 -0.990965 0.0495786 -0.294527 -0.954356 0.115322 -0.392002 -0.912708 -0.164714 -0.872981 -0.459101 -0.179484 -0.87239 -0.454666 0.0472051 -0.392069 -0.918724 0.0535504 0.0412434 -0.997713 -0.216658 -0.249198 -0.943907 -0.225751 -0.306842 -0.9246 -0.280627 -0.907483 -0.312608 -0.383733 -0.891542 -0.240627 0.0534502 -0.426783 -0.902773 0.0985254 -0.789859 -0.605323 -0.449272 -0.774245 -0.445756 -0.651659 -0.673744 -0.348438 -0.450582 -0.607427 -0.654224 -0.764348 -0.384365 -0.517722 -0.774791 -0.157061 -0.612398 -0.0712105 -0.636631 -0.767873 -0.078128 -0.618612 -0.781803 0.0115354 -0.679629 -0.733465 0.00101661 -0.70749 -0.706723 -0.136457 -0.507628 -0.850702 -0.129492 -0.550949 -0.824431 -0.166 -0.429278 -0.887786 -0.16378 -0.455659 -0.874957 -0.190988 -0.366969 -0.910416 -0.186388 -0.366509 -0.911554 -0.201662 0.115942 -0.972569 -0.196995 -0.0760558 -0.97745 -0.193089 -0.165186 -0.967176 0.118024 0.992989 0.00662989 0.118399 0.873213 -0.472738 -0.106512 -0.994079 -0.0214867 -0.148076 -0.98859 -0.0276454 -0.377957 -0.924056 -0.0571842 -0.400194 -0.910642 0.10284 0.192187 0.834154 -0.516963 0.129347 0.83536 -0.534268 0.959088 -0.256893 0.118978 0.953666 -0.300868 0.000621953 0.980499 -0.171653 -0.0956934 0.995951 0.0183331 -0.0880109 0.997353 -0.0172522 -0.0706288 0.995491 0.000585661 -0.0948547 0.990363 -0.106112 -0.0890041 0.905882 -0.411257 -0.101217 0.942278 -0.303903 -0.140551 -0.712846 -0.698974 -0.0573273 -0.860995 -0.47783 -0.174257 -0.778408 -0.529209 -0.337666 -0.11412 0.970792 -0.211044 -0.14039 0.989933 -0.0179933 0.549247 -0.11493 0.827719 0.260179 0 0.96556 -0.613583 -0.726674 -0.308967 -0.881621 -0.269694 -0.38731 -0.5015 -0.808107 0.308967 -0.871483 0 -0.490426 -0.00313578 -0.231593 -0.972808 -0.004323 -0.231761 -0.972763 -0.00307876 -0.231672 -0.972789 -0.00484849 -0.236856 -0.971533 -0.0116357 -0.00999485 -0.999882 -0.0164143 -0.00976341 -0.999818 -0.0179849 -0.00559348 -0.999823 -0.0135198 0.0214347 -0.999679 -0.0121819 0.00269869 -0.999922 -0.00204714 0.0556298 -0.998449 -0.000850736 0.108454 -0.994101 -0.0203581 0.00540579 -0.999778 -0.0244516 -0.00276512 -0.999697 -0.0155203 -0.0214289 -0.99965 -0.0138455 -0.00270779 -0.9999 -0.934396 0.000987317 0.356235 -0.739965 0.054685 0.670419 -0.933814 0.0300753 0.356492 -0.735298 0.108767 0.668959 0.0133891 -0.999907 -0.00255969 0.0149918 -0.999805 0.0128205 0.00283503 -0.999138 0.0414071 0.00194891 -0.996349 0.0853481 0.0230602 -0.999731 -0.00254746 0.0201075 -0.999747 -0.0101024 0.99257 0.121668 -0.00100749 0.991921 0.126287 0.0120356 0.991081 0.130881 0.0250764 -0.10323 -0.010961 -0.994597 -0.0668814 -0.0303814 -0.997298 -0.101383 -0.0257504 -0.994514 -0.0331617 -0.0266428 -0.999095 0.0901141 0.99516 -0.0391947 0.0922258 0.993792 -0.0622257 -0.000265294 0.999166 -0.0408215 -0.0164005 0.999346 -0.032219 -0.0310662 0.998964 -0.0332468 -0.0302062 0.997857 -0.0580414 0.104937 -0.994429 0.00992516 -0.0709922 -0.997263 -0.0206323 -0.241573 -0.969816 -0.0331727 -0.238738 -0.969106 -0.0619504 -0.0232247 0.00261209 -0.999727 0.000748925 0.0100321 -0.999949 0.013832 0.0134148 -0.999814 0.0112983 0.0196581 -0.999743 0.0023584 0.017663 -0.999841 0.00149239 0.0110716 -0.999938 0.00114122 0.00558526 -0.999984 -0.95579 -0.000516441 -0.294051 -0.959989 0.00202241 -0.280029 -0.963977 0.00456081 -0.265945 0.0922258 0.993792 -0.0622257 0.0901141 0.99516 -0.0391946 -0.000265299 0.999166 -0.0408215 -0.0164005 0.999346 -0.032219 0.998967 0.0411969 -0.0191966 0.999665 0.020603 -0.015647 0.999927 0 -0.0120906 0.0451752 0.000301714 0.998979 0.0461288 -0.0112583 0.998872 -0.0331617 -0.0266428 0.999095 -0.0668814 -0.0303814 0.997298 -0.196212 0.977565 0.0766033 -0.170393 0.979806 0.104624 -0.198499 0.961548 0.189799 -0.152194 0.968664 0.196281 0.385133 0.817155 -0.428871 0.561961 0.484048 -0.670744 0.018397 -0.776282 -0.630118 -0.0744458 -0.358521 -0.930549 0.0314442 -0.984067 -0.174998 0.0359217 -0.997452 -0.0616429 0.122844 -0.990734 -0.0579255 0.29623 0.954905 -0.0201095 -0.00667654 0.999902 0.0123192 -0.594088 -0.799201 -0.0913117 -0.0812122 -0.995051 -0.057248 0.39732 0.915927 -0.0567027 0.0269147 0.999635 0.00252535 0.326521 -0.941823 -0.0797153 0.858964 -0.495806 -0.127898 -0.79922 -0.59315 -0.0970605 -0.882648 -0.455886 -0.114454 -0.650187 -0.75309 -0.100558 -0.134697 0.990573 0.0249183 -0.096962 0.995028 0.0227503 0.0421027 -0.899288 -0.435327 0.0395362 -0.947668 -0.316801 -0.125307 0.992042 0.0123202 -0.137055 0.990423 0.0167044 0.068146 -0.996221 -0.0538533 -0.160919 0.986968 0 -0.15121 0.988283 -0.0207699 -0.115746 0.993219 -0.0108798 -0.156714 0.987169 -0.0306273 -0.116596 0.99308 -0.0140413 0.17623 0.984338 -0.00455417 0.462162 0.886601 -0.0185809 0.246178 0.969164 0.0108028 -0.756743 0.559354 -0.338324 0.409753 0.642373 -0.647657 -0.47728 0.770882 -0.421836 0.436397 0.835081 -0.334959 0.0070019 -0.273482 -0.961852 0.0009889 -0.153499 -0.988148 -0.0213369 -0.323935 -0.945839 -0.0664699 -0.551423 -0.831574 0.488874 0.827955 -0.274758 0.581463 0.541525 -0.607166 0.439048 -0.590895 -0.676816 0.208443 -0.832702 -0.51299 0.208231 -0.914851 -0.345959 0.211584 0.977294 -0.0113697 -0.0303743 0.999215 -0.025439 -0.24024 -0.619642 -0.747214 -0.0876562 -0.910167 -0.404861 -0.0944859 -0.994369 -0.047996 -0.202792 0.978981 -0.0216985 -0.183006 0.982156 -0.0433442 -0.320168 0.928248 -0.189335 -0.184034 0.971994 -0.146151 -0.159492 0.987199 0 -0.307025 0.705139 -0.639151 -0.231106 0.936824 -0.262584 -0.175652 0.984265 -0.0192107 -0.161659 0.986573 -0.0232339 -0.0180618 0.999828 -0.00428108 -0.116231 0.993212 -0.00446618 0.700179 0.683557 -0.206151 0.613964 0.784848 -0.0840339 -0.865306 0.501235 0.00289479 0.0127713 0.304468 -0.952437 0.0211437 0.207245 -0.97806 -0.946579 0.32212 0.0150585 0.00172149 0.253659 -0.967292 -0.334106 -0.9287 -0.160902 -0.272688 -0.560563 -0.781927 -0.170068 -0.655183 -0.736079 -0.150937 -0.811304 -0.564804 0.00304243 0.256714 -0.966483 -0.962268 0.272094 -0.00209838 0.0202054 0.259424 -0.965552 0.00362985 0.254243 -0.967134 -0.562505 0.826666 -0.014551 0.00912705 0.827439 -0.561481 0.00376481 -0.999993 0 -0.00640261 -0.999979 0 -0.0277799 -0.994563 -0.100366 -0.0118798 -0.972288 -0.233483 0.232524 0.748147 -0.621457 0.116136 0.819301 -0.561478 0.245297 0.622437 -0.743238 0.190675 0.274339 -0.94254 0.0173421 -0.943135 -0.331956 0.239685 -0.921761 -0.304809 0.0187042 -0.986222 0.164364 -0.515856 -0.722129 -0.460893 -0.328464 -0.943443 -0.0450204 -0.0350695 -0.996205 0.0796611 -0.0538302 -0.944692 -0.323511 0.0600741 -0.946303 -0.317651 0.128062 -0.948355 -0.290212 0.0618069 -0.996392 -0.0581598 0.128664 -0.988781 -0.0758759 -0.0158231 0.0273141 -0.999502 -0.135538 0.419095 -0.897769 -0.043662 0.0536286 -0.997606 -0.267362 -0.94003 -0.211806 -0.0893068 -0.98787 -0.127033 0.00136711 -0.9732 0.229958 0.00430633 -0.975086 0.221786 0.00325629 -0.99977 0.0212113 0.00220849 -0.999876 0.0155828 0.00600762 -0.999982 0 0.0215737 -0.978687 0.204222 0.00706149 -0.979474 0.201447 0.00121373 -0.993887 0.110394 0.00056366 -0.992475 0.122448 0.00992604 0.976227 -0.216523 0.0103565 0.983511 -0.180549 0.0120832 -0.368162 -0.929683 0.0375593 -0.418601 -0.907393 0.0157535 0.908454 -0.417687 0.0133449 -0.653912 -0.756453 0.0050826 -0.991906 -0.12687 0.00824597 -0.995997 -0.0890107 0.00579197 -0.999983 0 0.00792161 -0.999969 0 0.0900223 0.322045 -0.942435 0.0261724 0.290578 -0.956493 0.193393 0.401796 -0.895075 0.448239 0.556923 -0.699227 0.20644 0.458555 -0.864355 0.0886569 -0.96061 -0.26338 0.0329394 -0.965017 -0.26011 0.493399 0.829649 -0.261228 0.513255 0.858236 0 0.61085 0.64707 -0.456249 0.623291 0.625076 -0.469881 0.654889 0.630336 -0.416889 0.627736 0.585157 -0.513361 0.196769 -0.626184 -0.754437 0.321696 -0.569863 -0.756153 0.470683 0.771808 -0.427515 0.357945 0.867946 -0.344304 0.121749 -0.986573 -0.108863 0.548697 0.0464899 -0.834728 0.516475 -0.150964 -0.84289 0.207269 -0.947646 -0.242912 0.295448 -0.907434 -0.298788 0.507218 0.801059 -0.317858 0.673863 0.677769 -0.294173 0.467493 -0.401542 -0.787537 0.562744 -0.306815 -0.767583 0.686575 0.708696 -0.162371 0.702747 0.71144 0 0.70865 -0.245234 -0.661571 0.651286 -0.255947 -0.714365 -0.315553 -0.906901 -0.279207 0.0491658 0.930745 -0.36235 0.0793432 0.84305 -0.531951 0.010608 0.339912 -0.940397 -0.340812 -0.936385 -0.0838458 -0.324465 -0.940714 -0.0988966 -0.150642 -0.616844 -0.772535 -0.292648 -0.19739 -0.935625 -0.141466 -0.256022 -0.956264 -0.124928 0.872047 -0.47321 -0.1228 -0.992219 -0.0205504 -0.136004 -0.990129 -0.0338639 -0.711053 -0.701266 -0.051278 -0.788364 -0.61521 0 -0.520352 -0.853952 0 -0.340634 -0.939571 -0.0342826 -0.195716 -0.980661 0 -0.169514 -0.985031 -0.0312983 -0.178648 -0.941851 -0.284608 -0.154425 -0.975832 -0.154615 -0.291815 -0.921896 -0.254855 -0.177527 -0.982064 -0.0635177 0.0705385 0.922084 -0.380507 -0.308644 -0.934665 -0.176467 -0.213337 -0.968168 -0.130908 -0.283075 -0.923139 -0.26016 -0.207004 -0.976434 -0.0610432 0.572299 0.759667 -0.308836 0.0971177 0.994288 -0.0442562 0.0208689 0.999619 -0.0180905 0.0193006 0.999812 -0.00188787 0.0256698 0.999669 -0.00138084 0.713476 0.687944 -0.132982 0.131463 0.991019 -0.0244555 -0.0263668 -0.999649 -0.00258889 0.048643 -0.998384 -0.0293824 -0.0233948 -0.999723 -0.00273545 0.0369386 -0.998888 -0.029309 0.0275963 -0.906223 -0.421898 -0.109778 -0.954769 -0.276341 -0.0965465 -0.995035 -0.0241526 -0.0552728 -0.770328 -0.635248 0.71527 -0.685649 -0.135182 0.982895 0.0180505 -0.18328 -0.051672 -0.997025 -0.0572003 -0.890035 -0.449214 -0.077751 -0.994161 -0.0707199 -0.0815043 -0.498916 0.865381 -0.0468856 -0.989101 0.113082 -0.0942912 -0.0110813 0.0320331 -0.999425 0.0269825 0.765107 -0.643338 0.518681 -0.227002 -0.824282 0.556367 -0.15172 -0.816968 0.885515 -0.0514565 -0.461753 0.889182 0.185886 -0.418092 -0.0420436 -0.765125 -0.642508 -0.0371337 -0.945332 -0.323988 -0.0969511 -0.920013 -0.379707 -0.0687209 -0.415438 -0.907022 0.119712 0.843033 -0.52437 0.0673315 0.393973 -0.916652 -0.144593 -0.599881 -0.786915 -0.161291 -0.654586 -0.738581 0.0099952 -0.146706 -0.98913 0.0197458 -0.0861809 -0.996084 -0.0676694 -0.440242 -0.895325 -0.01638 -0.475343 -0.879648 -0.152502 -0.285373 -0.946206 -0.16363 -0.350383 -0.922202 -0.18145 -0.375688 -0.908809 -0.27211 -0.857047 -0.437524 -0.376987 -0.873543 -0.307903 0.251522 -0.743831 -0.619236 0.262479 -0.421421 -0.868049 0.119007 -0.867086 -0.483735 -0.519066 -0.382561 -0.764341 0.316329 -0.444164 -0.838245 0.148854 -0.68411 -0.714028 0.323476 -0.606666 -0.726168 -0.757924 -0.169294 -0.629993 -0.685064 0.31689 -0.655948 0.905213 -0.306134 -0.294739 0.574954 -0.527161 -0.625723 0.0574073 -0.672252 -0.738093 -0.175285 0.255 -0.950921 -0.185925 -0.0544863 -0.981052 0.129347 0.83536 0.534268 0.118399 0.873213 0.472738 -0.0525127 -0.740731 0.669746 -0.0982725 -0.722066 0.684809 0.712548 -0.118268 0.691584 -0.134418 -0.648206 0.749507 -0.155146 -0.628556 0.762133 0.162171 -0.162173 0.973345 0.0601051 -0.766724 0.639157 -0.169509 -0.651046 0.739869 -0.185797 -0.711953 0.677202 -0.269124 -0.268456 0.924934 -0.264254 -0.0729115 0.961693 0.0985254 -0.789859 0.605323 -0.197151 -0.330009 0.923161 -0.524611 -0.829086 0.193387 -0.651659 -0.673744 0.348438 0.0472051 -0.392069 0.918724 0.0792561 -0.775125 0.626817 -0.217294 -0.339908 0.915011 0.0844581 -0.843913 0.52979 -0.129492 -0.550949 0.824431 -0.208124 -0.262236 0.942293 -0.205833 0.224237 0.95255 -0.202984 -0.0299479 0.978724 -0.196995 -0.0760558 0.97745 0.314692 0.948867 -0.0249224 0.485047 0.87336 0.0444046 0.0843986 -0.965016 -0.248235 0.177452 -0.972282 -0.152244 0.0918676 -0.995756 0.00545089 0.177727 -0.984072 0.00380684 -0.400194 -0.910642 -0.10284 -0.164714 -0.872981 0.459101 0.99015 -0.139754 -0.00846486 0.998659 -0.0323099 -0.0404446 0.959088 -0.256893 -0.118978 0.727852 -0.0662329 -0.682528 0.950486 0.0162356 -0.310344 0.999004 0.0188061 -0.0404679 0.894491 0.383863 -0.229205 0.999315 -0.0153768 -0.0336565 0.998614 -0.0140517 -0.050719 0.880856 -0.21167 -0.423426 0.996288 -0.068364 -0.0523029 0.96438 -0.249301 -0.0884284 -0.886053 -0.442586 0.13794 -0.835909 -0.441599 -0.325953 -0.897746 -0.422837 0.123535 -0.85681 -0.378268 -0.350414 0.208092 0.850401 -0.483234 0.0718489 0.968905 -0.236772 0.134333 0.990575 0.0267643 0.0249859 0.999318 0.0271779 0.192187 0.834154 0.516963 0.0607586 0.956286 0.286053 0.338518 0.743398 0.576858 0.172793 0.246192 0.953694 -0.347739 -0.478622 0.806225 0.5015 -0.808107 0.308967 -0.841765 -0.377976 -0.385442 0.841765 -0.377976 0.385442 0.928606 0 0.371068 -0.00402046 0.183757 -0.982963 -0.00332877 0.185867 -0.982569 -0.00413716 0.185715 -0.982595 -0.00365425 0.186344 -0.982478 -0.004323 -0.231761 0.972763 -0.00484849 -0.236856 0.971533 -0.00581437 -0.23931 0.970926 -0.00469308 -0.246804 0.969054 -0.0232888 0.00347833 -0.999723 0.000433268 0.0100574 -0.999949 0.013751 0.0133633 -0.999816 0.0111295 0.0195223 -0.999747 0.00282776 0.0175654 -0.999842 0.00293698 0.0132145 -0.999908 0.0036642 0.0100827 -0.999942 0.00300052 0.00598459 -0.999978 0.0812123 0.996434 0.0228915 -0.0024228 0.999688 0.0248507 -0.0814006 0.996011 0.0365525 -0.0786533 0.994453 0.0698399 0.271064 -0.962184 -0.0269467 0.272252 -0.961951 -0.0229978 0.269406 -0.962554 -0.0301858 0.265606 -0.963963 -0.0151097 0.221484 -0.975163 0.00112373 0.173934 -0.983579 0.0481696 0.131528 -0.989309 0.0629925 0.126013 -0.986029 0.108939 0.000433268 0.0100574 -0.999949 -0.0392858 0.00637072 -0.999208 -0.0412059 0.00285057 -0.999147 0.013751 0.0133633 -0.999816 0.0111295 0.0195223 -0.999747 0.00282776 0.0175654 -0.999842 0.00293698 0.0132145 -0.999908 -0.0278286 0.997165 0.0699055 -0.0302062 0.997857 0.0580414 -0.031602 0.993933 0.105351 -0.0709922 -0.997263 -0.0206324 0.104938 -0.994429 0.00992516 0.272252 -0.961951 0.0229979 0.271064 -0.962184 0.0269467 0.269406 -0.962554 0.0301858 0.221484 -0.975163 -0.00112302 0.265606 -0.963963 0.0151101 0.173934 -0.983579 -0.0481688 0.00114115 0.00558492 -0.999984 -0.0232891 0.00347864 -0.999723 0.000433643 0.0100581 -0.999949 0.0137518 0.0133646 -0.999816 0.0111304 0.0195243 -0.999747 0.00282823 0.0175674 -0.999842 0.0029369 0.013214 -0.999908 0.00366394 0.0100797 -0.999942 0.00300012 0.00598086 -0.999978 0.249465 -0.926405 0.282031 -0.54439 -0.77707 0.315915 -0.244103 -0.929964 0.274921 -0.286484 -0.887431 0.3611 -0.181475 -0.908118 0.377344 -0.0714553 0.990933 0.113784 -0.0182639 0.988944 0.147163 0.049205 0.998768 0.00647563 -0.0855377 0.993272 -0.078067 0.920208 -0.371945 0.121962 0.921355 -0.368559 0.123564 -0.338666 0.940891 0.00547682 -0.412209 0.911001 0.0126808 -0.537756 0.842657 0.0273424 -0.32417 0.945997 0.00182834 0.0359217 -0.997452 0.0616429 0.268041 -0.959073 0.0912878 0.326521 -0.941823 0.0797153 -0.20101 0.979489 -0.0140246 -0.362164 0.932097 0.00561972 0.0314442 -0.984067 0.174998 -0.0384957 -0.988166 0.148476 -0.0349721 -0.967331 0.251091 -0.260665 -0.0606123 0.963525 -0.0298034 -0.997795 0.059301 0.0257453 -0.998615 0.0458901 -0.157258 0.987384 -0.0185206 0.149358 0.988783 0 -0.183006 0.982156 0.0433442 -0.115746 0.993219 0.0108798 -0.00348237 0.00201627 0.999992 0.999944 0.0104829 0.00161475 0.659457 -0.274579 0.699802 0.17823 -0.75854 0.626779 0.894787 0.367221 -0.253977 0.969067 0.163961 0.184462 0.998626 0.00224007 0.0523582 -0.28355 0.958924 0.00805582 -0.682401 0.682899 0.260726 -0.423655 0.901703 0.0863073 0.102795 0.994192 -0.031874 0.192642 -0.980435 0.0404533 -0.635266 -0.320862 0.702485 -0.455554 0.317065 0.83183 0.818648 0.542924 0.187213 -0.223852 0.577822 0.784864 -0.164855 0.982384 0.088001 -0.231106 0.936824 0.262584 0.47728 0.770882 -0.421836 0.295328 0.955259 -0.0161935 -0.170068 -0.655183 0.736079 -0.0541147 -0.109277 0.992537 -0.310085 -0.426605 0.849621 -0.211104 0.276141 0.937647 0.0472101 0.479485 0.876279 0.0375593 -0.418601 0.907393 0.298779 -0.677574 0.672031 -0.361144 0.511567 0.779663 0.298983 0.473559 0.828463 -0.0106368 0.488731 0.87237 -0.0669067 0.880069 0.470109 -0.204791 -0.883829 0.420604 -0.334106 -0.9287 0.160902 -0.298028 -0.926994 0.227731 -0.322123 -0.91186 0.254457 -0.28388 -0.912311 0.295128 -0.315553 -0.906901 0.279207 -0.291536 -0.901626 0.319496 -0.117965 -0.978436 -0.16955 -0.191305 -0.976846 -0.0957851 -0.155602 -0.983921 -0.0876779 0.111889 -0.0107365 0.993663 0.123532 0.00832483 0.992306 0.201559 0.19924 0.958998 0.00156792 -0.999999 0 -0.00380097 -0.999993 0 0.00136711 -0.9732 -0.229958 0.00325629 -0.99977 -0.0212113 0.0273371 -0.99777 0.0608988 0.0079574 -0.998656 0.0512131 0.00706149 -0.979474 -0.201447 0.00056366 -0.992475 -0.122448 0.0162168 0.0349578 0.999257 0.0250837 0.0507402 0.998397 0.00692236 -0.995124 0.0983919 0.0050826 -0.991906 0.12687 0.108602 0.486049 0.867157 0.20644 0.458555 0.864355 0.0329394 -0.965017 0.26011 0.00810883 -0.973517 0.22847 0.196769 -0.626184 0.754437 0.493399 0.829649 0.261228 0.645601 0.723902 0.243238 0.470683 0.771808 0.427515 0.61085 0.64707 0.456249 0.0886569 -0.96061 0.26338 0.161468 -0.942401 0.29293 0.455892 0.595034 0.661889 0.189193 -0.903989 0.383419 0.260355 -0.85997 0.438939 0.507218 0.801059 0.317858 0.378305 -0.688348 0.61892 0.274741 -0.947728 0.162263 0.414765 -0.88304 0.219569 0.811945 0.113867 0.57252 0.673863 0.677769 0.294173 0.806686 0.372766 0.458587 0.869559 -0.269131 0.414049 0.648942 -0.687241 0.326456 0.0206726 0.12311 0.992178 -0.0478021 -0.138854 0.989159 -0.34423 -0.935097 0.084256 -0.350762 -0.936465 0 -0.346122 -0.937373 0.0391366 -0.124962 -0.984855 0.120189 -0.154425 -0.975832 0.154615 -0.854092 0.520122 0 -0.292648 -0.19739 0.935625 -0.310901 -0.537544 0.783828 -0.324989 0.122924 0.937695 0.0197109 0.999806 0 -0.160158 -0.696999 0.698957 -0.331957 -0.943226 0.0113807 -0.324453 -0.945902 0 -0.3311 0.0565511 -0.941899 0.505001 0.288294 0.813548 -0.524248 0.26496 -0.809297 0.111933 0.993369 0.0262641 0.131463 0.991019 0.0244555 0.0366474 0.999243 0.0130463 0.0227057 0.999502 0.0218905 0.0130871 0.999871 0.00930275 -0.0132844 0.999895 0.005851 0.0552155 0.998438 0.00858667 0.030778 0.999515 0.0046632 0.048643 -0.998384 0.0293824 -0.595149 -0.801983 0.0512021 -0.497617 -0.866396 0.0416421 -0.605958 -0.793844 0.0512417 0.646392 0.747876 0.151193 0.978569 0.0184547 0.205089 0.684193 -0.289391 0.669427 0.451239 -0.768469 0.453694 -0.0529873 -0.99859 0.00322309 -0.891308 -0.443786 0.0928684 -0.958248 -0.268079 0.0994732 0.10556 -0.181699 0.977672 0.0275963 -0.906223 0.421898 -0.248214 -0.370905 0.894885 -0.244238 -0.803506 0.542887 0.0197458 -0.0861809 0.996084 0.0373302 -0.39939 0.916021 -0.0180914 -0.391105 0.920168 0.0099952 -0.146706 0.98913 -0.144593 -0.599881 0.786915 -0.163982 -0.889974 0.425507 0.0312711 -0.315755 0.948325 -0.161291 -0.654586 0.738581 -0.176919 -0.898359 0.402059 -0.197495 -0.926928 0.31906 0.262479 -0.421421 0.868049 -0.376987 -0.873543 0.307903 -0.532676 -0.842461 0.0807266 -0.525943 -0.821531 0.220162 -0.198781 -0.327107 0.923844 -0.00632958 -0.630944 0.775802 0.0649604 -0.729764 0.680606 -0.0137919 -0.63576 0.771764 0.0574073 -0.672252 0.738093 -0.149632 -0.416259 0.896849 -0.144497 -0.404844 0.902896 -0.120133 -0.462566 0.878408 -0.174871 -0.400422 0.89949 -0.165807 -0.331805 0.928662 -0.171737 0.154326 0.97298 0.271116 0.378947 -0.884814 0.457096 -0.274407 -0.846028 0.178537 -0.810181 -0.558329 0.659627 -0.624829 -0.417709 -0.134418 -0.648206 -0.749507 -0.146119 -0.507933 -0.848913 -0.171266 -0.450014 -0.876445 -0.185797 -0.711953 -0.677202 -0.203311 -0.774534 -0.598967 0.108805 0.0362692 -0.993401 -0.201944 -0.377169 -0.90386 -0.448323 -0.439981 -0.778089 -0.269124 -0.268456 -0.924934 -0.264254 -0.0729115 -0.961693 -0.145754 -0.369925 -0.917557 -0.170453 -0.454303 -0.874388 -0.142512 -0.45383 -0.879619 -0.221226 0.301473 -0.927455 0.791465 -0.490227 -0.365048 0.568322 -0.530469 -0.628978 -0.190079 -0.253428 -0.948496 -0.0467716 -0.998832 -0.0121633 0.0171011 -0.999827 -0.00729352 -0.183646 -0.981921 -0.0458848 0.691757 -0.699952 0.177597 0.998659 -0.0323099 0.0404446 0.885515 -0.0514565 0.461753 0.908253 -0.320363 0.269153 -0.700123 -0.661436 0.268943 -0.762001 -0.55168 0.339123 -0.903758 -0.427218 0.0265644 -0.114928 -0.986069 0.120246 -0.116055 -0.984242 0.133414 -0.128024 -0.982002 0.138857 -0.128174 -0.981719 0.140712 0.936984 0.349372 -0.000996089 0.936431 0.349565 -0.0300037 0.749929 0.659252 -0.054714 0.745352 0.657732 -0.108803 -0.0158777 -0.00254438 0.999871 -0.00331957 0.0413854 0.999138 -0.00228291 0.0852984 0.996353 -0.0213185 0.00889507 0.999733 -0.0163657 -0.0131179 0.99978 -0.0250261 0.00249375 0.999684 -0.0146887 0.00255066 0.999889 -0.992569 0.000889444 -0.121678 -0.991918 -0.0121586 -0.126298 -0.991076 -0.0252043 -0.130895 -0.00596059 -0.000876228 0.999982 -0.00582191 -0.0026388 0.99998 -0.00339254 -0.00296977 0.99999 -0.00121507 0.00509745 0.999986 0.0141414 -0.9998 -0.014134 0.0186312 -0.99973 -0.0138584 0.00101925 0.00984707 0.999951 0.000572063 0.023324 0.999728 -0.00185071 0.998162 -0.0605786 -0.00168408 0.998022 -0.0628503 -0.000986761 0.997974 -0.0636215 -0.000106768 0.998038 -0.0626153 0.000748339 0.0100325 -0.999949 -0.0232249 0.00261218 -0.999727 -0.039154 0.00505262 -0.99922 -0.0416606 0.000486318 -0.999132 0.0138315 0.0134158 -0.999814 0.0112979 0.0196582 -0.999743 0.00235814 0.0176621 -0.999841 0.00149193 0.0110703 -0.999938 0.0036642 0.0100827 0.999942 0.00304526 0.00559495 0.99998 0.00300052 0.00598459 0.999978 -0.0024228 0.999688 -0.0248507 0.0901141 0.99516 -0.0391952 0.0812123 0.996434 -0.0228915 0.0922259 0.993792 -0.0622257 -0.000265207 0.999166 -0.0408224 -0.0164004 0.999346 -0.0322199 -0.0310661 0.998964 -0.0332474 -0.0302062 0.997857 -0.058042 0.104937 -0.994429 0.00992488 -0.0709922 -0.997263 -0.0206326 -0.241573 -0.969815 -0.0331729 -0.238738 -0.969106 -0.0619504 -0.0232249 0.00261218 -0.999727 0.00074834 0.0100325 -0.999949 0.0138315 0.0134158 -0.999814 0.0112979 0.0196582 -0.999743 0.00235814 0.0176621 -0.999841 0.00149193 0.0110703 -0.999938 -0.00168408 0.998022 0.0628503 -0.000106768 0.998038 0.0626153 0.00197252 0.998016 0.0629228 0.00264016 0.997964 0.0637234 -0.000156191 -0.998124 0.0612176 -0.00014299 -0.998295 0.0583625 -0.000808344 -0.998255 0.0590523 -0.00199575 -0.998412 0.0562905 0.821756 0.412634 -0.393002 0.22871 -0.844166 -0.484846 0.203526 -0.757839 -0.619885 -0.182811 0.619215 -0.763645 0.0561699 0.387269 -0.920254 0.239442 0.904933 -0.3518 0.423476 0.475816 -0.770888 0.293002 0.587175 -0.75457 0.918657 0.368296 -0.142924 -0.122804 0.992418 0.00510635 -0.0872023 0.99619 -0.00110729 -0.085896 0.996152 0.0174281 0.828897 0.552927 -0.0848654 0.855216 0.509654 -0.0941182 -0.66412 -0.74264 -0.0862003 0.90039 0.421798 -0.106694 -0.112286 -0.991846 -0.0602842 -0.141909 0.989713 0.0181841 -0.104082 0.994397 0.0184855 -0.076172 0.989974 0.118949 -0.116039 0.976743 0.180301 -0.0863523 0.985671 0.144901 -0.188057 -0.448231 -0.873913 -0.138756 0.984868 0.103835 -0.143815 0.989275 0.0255538 0.0304267 -0.997954 -0.0562349 0.0284428 -0.998297 -0.0509324 0.105324 -0.992766 -0.0576334 0.0173677 -0.998465 -0.0525861 -0.1511 0.988334 0.0191011 0.618406 0.785653 -0.0179623 0.692972 0.717419 -0.0714172 -0.342167 -0.513663 -0.786811 -0.41008 -0.350612 -0.841965 0.265249 -0.0158043 -0.96405 0.220318 0.350419 -0.910311 0.0111821 0.0987418 -0.99505 0.0573592 0.165812 -0.984488 0.711901 0.700808 -0.0454386 -0.875171 0.365763 -0.316691 -0.984379 -0.158862 -0.0759069 -0.82071 -0.0406914 -0.569894 -0.943308 -0.325339 -0.0657582 0.0385937 -0.998322 -0.043161 0.0428974 -0.998924 -0.0176453 -0.946404 0.31593 0.0671315 -0.12759 0.28129 -0.951103 -0.974478 0.220234 0.0434735 -0.170094 0.985065 -0.0267234 -0.222995 0.972461 -0.0677666 -0.159856 0.98714 -0.000751436 -0.644239 0.764315 -0.0279028 -0.029941 0.0381407 -0.998824 -0.00254778 0.127152 -0.99188 -0.000751218 0.257043 -0.9664 -0.181681 -0.624549 -0.759559 -0.20447 -0.657727 -0.724974 -0.000249107 0.196134 -0.980577 -0.000228461 0.220425 -0.975404 -0.962607 0.269319 -0.0292357 -0.962481 0.27135 0.000128141 0.00873223 0.297025 -0.95483 0.0173263 0.281873 -0.959295 0.0144747 0.254577 -0.966944 0.0502682 -0.994294 -0.0940834 0.0241256 -0.984431 -0.17411 -0.0345489 0.610944 -0.790919 -0.351124 0.466068 -0.812092 -0.343826 0.590967 -0.729755 0.280919 -0.0205964 -0.95951 0.338328 -0.466722 -0.817132 0.251804 -0.958096 -0.136552 0.377655 -0.768343 -0.516745 -0.548734 -0.197441 -0.812347 -0.3663 -0.127706 -0.921692 -0.315101 -0.536868 -0.782614 0.00983441 -0.920195 -0.391336 -0.075988 -0.93514 -0.346034 -0.1428 -0.917478 -0.371272 -0.122435 -0.525821 -0.841737 0.0606921 0.0416622 -0.997287 0.0386851 0.0267937 -0.998892 0.167754 0.367042 -0.914953 -0.00824689 -0.991446 0.130257 0.00827118 -0.975698 0.218964 0.00172048 -0.999992 0.00351271 0.0343822 -0.979925 0.19638 0.0156312 0.490857 -0.8711 0.0252499 0.487673 -0.872661 0.00433929 -0.964861 -0.262723 0.00526525 -0.966808 -0.255448 0.0613062 0.832405 -0.550767 0.162518 0.821362 -0.546766 0.0137408 -0.889801 -0.456142 0.0613156 -0.858724 -0.508757 0.139476 0.173108 -0.974977 0.622291 0.760779 -0.184307 0.388793 0.863221 -0.322009 0.403446 -0.48991 -0.7728 0.31682 -0.860349 -0.39928 0.752334 0.185807 -0.632036 0.766232 -0.247916 -0.592812 0.625913 -0.608177 -0.488215 -0.275063 -0.840398 -0.466981 0.0430154 0.964862 -0.259214 0.0443511 0.957711 -0.284292 -0.305618 -0.946578 -0.102896 -0.00880742 0.992864 -0.11893 -0.256556 -0.777523 -0.57414 -0.43439 -0.89003 -0.138387 0.0278924 0.975228 -0.219438 -0.249027 -0.873819 -0.417643 0.203224 0.97427 -0.0974593 0.0310743 0.999485 -0.00796874 0.0438398 0.999013 -0.0071053 0.0157966 0.999866 -0.0043741 -0.0141955 0.999899 0.000298172 0.0138726 0.999293 -0.0349472 0.00860829 0.999729 -0.0216354 -0.000428123 0.999754 -0.0221642 -0.00435544 0.999881 -0.0147922 -0.0719217 0.997394 -0.00575128 -0.507081 -0.860042 -0.0565316 -0.680242 -0.730124 -0.0647257 -0.218394 -0.909874 -0.352752 -0.472996 -0.825243 -0.308624 0.754097 0.112813 -0.647001 0.661428 -0.698804 -0.272373 0.41418 -0.847011 -0.333208 -0.763465 0.64225 -0.068097 -0.953313 0.291757 -0.0779239 -0.995701 0.0415393 -0.0827946 -0.95522 0.285177 -0.0789186 -0.138133 -0.813347 -0.565143 -0.138176 0.0112071 -0.990344 -0.113814 -0.372216 -0.921141 0.535138 0.674212 -0.508984 0.974715 0.12827 -0.182966 0.294251 -0.0783637 -0.95251 0.53389 -0.246669 -0.808775 0.66981 -0.13692 -0.7298 0.059676 -0.748311 -0.660659 0.00718023 -0.765751 -0.643097 0.0242344 -0.96325 -0.26751 -0.163465 -0.516383 -0.840611 -0.191495 -0.633902 -0.749332 -0.29307 -0.940036 -0.174478 -0.0624569 -0.563468 -0.823773 -0.171918 -0.100886 -0.979932 -0.242849 -0.0889903 -0.965974 -0.0794905 -0.555239 -0.827883 0.300863 -0.692632 -0.655547 -0.188393 -0.314216 -0.930471 -0.177042 -0.223179 -0.958565 -0.484011 0.428309 -0.763076 -0.273873 0.415289 -0.867484 -0.18154 0.267511 -0.946299 0.539748 0.763689 0.35419 0.498198 0.373499 0.782494 0.882075 0.385989 0.270105 0.857446 0.179493 0.482254 0.00406829 -0.783983 0.620769 0.0226053 -0.961755 0.272978 -0.0413778 -0.943318 0.329301 -0.0916077 -0.119353 0.988617 -0.15778 -0.0601001 0.985644 -0.18461 -0.220457 0.957767 0.293972 -0.164229 0.941599 -0.179484 -0.87239 0.454666 0.0535504 0.0412434 0.997713 -0.190694 -0.23706 0.952596 -0.253653 -0.776888 0.576286 0.163696 -0.846799 0.506098 -0.450582 -0.607427 0.654224 -0.764348 -0.384365 0.517722 -0.774791 -0.157061 0.612398 -0.484109 -0.302022 0.821231 -0.392472 0.0571935 0.917984 0.148149 -0.440679 0.885355 0.192539 -0.776115 0.600479 -0.193089 -0.165186 0.967176 0.118024 0.992989 -0.00662989 0.148198 0.988914 0.00926733 -0.22979 -0.970081 0.0783558 -0.215691 -0.902876 0.371876 0.914319 -0.397328 -0.0784329 0.535975 -0.844233 0.00114353 0.982164 -0.187822 -0.00878203 0.999681 0.0250071 0.00352152 0.999992 -0.00391518 0.000742457 0.999915 -0.0130216 0.000800835 0.999547 -0.0300063 0.00216105 0.987657 -0.156351 0.0093824 -0.828548 -0.555995 -0.0661664 -0.935869 -0.317495 0.152797 -0.0453209 0.96582 0.25522 -0.0874824 0.995897 0.0231576 0.871483 0 -0.490426 -0.928606 0 -0.371068 -0.128024 -0.982002 -0.138857 -0.128174 -0.981719 -0.140712 0.829505 -0.549298 -0.100957 0.591601 -0.799311 -0.105404 0.830163 -0.550683 -0.0870498 0.230471 -0.966093 -0.116394 -0.0709922 -0.997263 0.0206323 0.272252 -0.961951 -0.0229978 0.104938 -0.994429 -0.00992517 0.271064 -0.962184 -0.0269467 0.269406 -0.962554 -0.0301858 0.265606 -0.963963 -0.0151101 0.221484 -0.975163 0.00112294 0.173934 -0.983579 0.0481686 0.00114108 0.00558458 0.999984 -0.0232891 0.00347837 -0.999723 0.000433518 0.0100578 -0.999949 0.0137516 0.0133642 -0.999816 0.0111304 0.0195239 -0.999747 0.00282844 0.0175672 -0.999842 0.0029372 0.0132146 -0.999908 0.00366408 0.0100809 -0.999942 0.00300025 0.00598209 -0.999978 -0.0814006 0.996011 0.036552 -0.0786532 0.994453 0.0698399 0.271064 -0.962184 -0.0269467 0.272252 -0.961951 -0.0229977 0.173934 -0.983579 0.0481686 0.131528 -0.989309 0.0629917 0.126013 -0.986029 0.108939 0.000433643 0.0100581 0.999949 -0.0392862 0.00637118 0.999208 -0.0232891 0.00347864 0.999723 -0.0412062 0.00285133 0.999147 0.0137518 0.0133646 0.999816 0.00282823 0.0175674 0.999842 0.0111304 0.0195243 0.999747 0.0029369 0.013214 0.999908 -0.0310662 0.998964 -0.033247 -0.0302062 0.997857 -0.0580415 -0.0278286 0.997165 -0.0699056 -0.031602 0.993933 -0.105351 -0.0709922 -0.997263 0.0206324 0.272252 -0.961951 -0.0229979 0.104938 -0.994429 -0.00992516 0.271064 -0.962184 -0.0269467 0.269406 -0.962554 -0.0301858 0.265606 -0.963963 -0.0151101 0.221484 -0.975163 0.00112302 0.173934 -0.983579 0.0481688 0.00114115 0.00558492 0.999984 -0.196212 0.977565 -0.0766033 -0.198499 0.961548 -0.189799 0.0794278 0.994916 0.0619149 -0.0319175 0.996868 -0.0723517 0.499804 0.177602 0.847734 0.175469 -0.554484 0.813485 0.327809 -0.214539 0.920062 0.461155 -0.882848 0.0889722 0.461318 -0.882536 0.0911904 -0.00900426 0.999872 -0.0132433 0.347616 0.937207 0.0284029 0.40285 -0.911042 0.0878316 -0.882648 -0.455886 0.114454 -0.0237241 -0.932191 0.361189 -0.156194 0.987699 -0.00731681 -0.155713 0.987722 -0.012581 -0.137055 0.990423 -0.0167044 -0.160643 0.987012 0.000298179 -0.156714 0.987169 0.0306273 0.246178 0.969164 -0.0108028 0.756743 0.559354 -0.338324 0.409753 0.642373 0.647657 0.0070019 -0.273482 0.961852 -0.0213369 -0.323935 0.945839 0.0009889 -0.153499 0.988148 0.581463 0.541525 0.607166 0.439048 -0.590895 0.676816 0.653991 -0.753358 0.0689026 0.729899 -0.678149 0.0857965 -0.0432955 0.998755 0.0247989 -0.24024 -0.619642 0.747214 -0.0876562 -0.910167 0.404861 -0.220102 0.975293 -0.0189457 -0.250039 0.95985 0.127156 -0.382916 0.813866 0.437032 -0.184034 0.971994 0.146151 -0.237746 0.83257 0.500304 -0.307025 0.705139 0.639151 0.613964 0.784848 0.0840339 0.0127713 0.304468 0.952437 0.0211437 0.207245 0.97806 0.962332 0.271873 -0.0014389 0.962268 0.272094 -0.00209838 0.0111908 0.197806 0.980177 0.00912705 0.827439 0.561481 0.562505 0.826666 -0.014551 0.0181142 0.699312 0.714587 0.728335 0.684741 -0.0256225 -0.0277799 -0.994563 0.100366 -0.0118798 -0.972288 0.233483 0.137231 0.821359 0.553657 0.14333 0.543373 0.827165 0.232524 0.748147 0.621457 0.116136 0.819301 0.561478 0.245297 0.622437 0.743238 0.0187042 -0.986222 -0.164364 -0.328464 -0.943443 0.0450204 -0.318377 -0.939078 0.129493 -0.10067 -0.994357 -0.0334756 -0.227789 -0.972657 0.0452851 0.0600741 -0.946303 0.317651 0.128062 -0.948355 0.290212 -0.0158231 0.0273141 0.999502 0.00714808 0.0289683 0.999555 -0.00658899 0.049494 0.998753 -0.043662 0.0536286 0.997606 0.00059825 -0.984345 -0.17625 0.00382191 -0.976411 -0.215886 0.00340481 -0.999988 -0.0033886 0.00700244 0.907239 0.420558 0.00942135 0.932987 0.359787 0.00992604 0.976227 0.216523 0.0103565 0.983511 0.180549 0.0120832 -0.368162 0.929683 0.00746558 -0.730113 0.683285 0.00824597 -0.995997 0.0890107 0.0900223 0.322045 0.942435 0.0583706 0.0747159 0.995495 0.448239 0.556923 0.699227 0.0255214 -0.98256 0.184186 0.623291 0.625076 0.469881 0.483633 0.753851 0.444756 0.182829 -0.974949 0.126683 0.489837 0.104005 0.865588 0.207269 -0.947646 0.242912 0.500356 0.739406 0.45047 0.686575 0.708696 0.162371 0.822547 0.488987 0.290358 -0.304229 -0.887985 0.344859 0.0793432 0.84305 0.531951 0.0573439 0.354277 0.933381 0.010608 0.339912 0.940397 -0.340812 -0.936385 0.0838458 -0.332925 -0.928662 0.163545 -0.324465 -0.940714 0.0988966 -0.141466 -0.256022 0.956264 -0.0777934 0.938753 0.335694 -0.124928 0.872047 0.47321 0.0216773 0.939352 0.34227 -0.123933 -0.991222 0.0460424 -0.136004 -0.990129 0.0338639 -0.138764 -0.988771 0.0554576 -0.711053 -0.701266 0.051278 -0.340634 -0.939571 0.0342826 -0.169514 -0.985031 0.0312983 -0.291815 -0.921896 0.254855 0.0705385 0.922084 0.380507 -0.213337 -0.968168 0.130908 -0.207004 -0.976434 0.0610432 -0.422098 -0.0394878 0.90569 -0.486426 -0.0476757 0.87242 -0.00989106 0.0170785 0.999805 0.124287 0.31988 -0.939271 0.000604653 0.021626 -0.999766 0.000422949 0.021881 -0.999761 0.000565266 0.0209008 -0.999781 -0.814268 -0.0906253 0.573372 -0.690913 -0.0732921 0.719213 0.24995 0.629629 -0.735589 0.261452 0.925321 -0.274635 0.151647 0.435438 -0.887354 0.250972 0.930103 -0.268181 0.248066 0.696486 -0.673328 0.0971177 0.994288 0.0442562 0.0885469 0.993485 0.0717434 0.0208689 0.999619 0.0180905 0.713476 0.687944 0.132982 0.119014 0.992699 0.0195876 0.513411 -0.851586 0.105881 0.433154 -0.789914 0.434067 0.0369386 -0.998888 0.029309 0.71527 -0.685649 0.135182 0.982895 0.0180506 0.18328 -0.890035 -0.449214 0.077751 -0.68865 -0.722745 0.0583191 -0.986292 0.138635 0.0894862 -0.989101 0.113082 0.0942912 0.0498551 0.854413 0.517197 0.0269825 0.765107 0.643338 0.518681 -0.227002 0.824282 0.12627 -0.063009 0.989993 0.889182 0.185886 0.418092 -0.0371337 -0.945332 0.323988 -0.088904 -0.413151 0.906312 -0.117366 -0.450937 0.884806 -0.13152 -0.451776 0.882384 -0.148809 -0.468167 0.87102 -0.01638 -0.475343 0.879648 -0.16363 -0.350383 0.922202 -0.18145 -0.375688 0.908809 -0.328258 -0.748506 0.576181 0.119007 -0.867086 0.483735 0.254986 -0.669269 0.697897 -0.474267 -0.744648 0.469649 -0.519066 -0.382561 0.764341 -0.460858 0.0179958 0.887292 -0.34193 -0.352856 0.870963 -0.757924 -0.169294 0.629993 -0.685064 0.31689 0.655948 -0.172805 -0.00411783 0.984947 0.103265 0.330949 -0.937981 0.0959983 0.394475 -0.913879 -0.0548383 -0.444862 -0.893919 0.712548 -0.118268 -0.691584 0.849445 -0.393904 -0.351116 0.957171 -0.23422 -0.170189 0.0601051 -0.766724 -0.639157 -0.176497 -0.519812 -0.835849 0.578377 -0.348059 -0.737791 0.850513 -0.167026 -0.498728 -0.231335 -0.260804 -0.937265 -0.240754 -0.267528 -0.932988 -0.0176255 -0.463443 -0.885951 -0.197151 -0.330009 -0.923161 -0.182633 -0.407705 -0.894663 -0.524611 -0.829086 -0.193387 -0.715627 -0.676375 -0.17434 -0.000207657 -0.742824 -0.669487 -0.199494 -0.427945 -0.881513 -0.217294 -0.339908 -0.915011 -0.208124 -0.262236 -0.942293 -0.205833 0.224237 -0.95255 -0.202984 -0.0299479 -0.978724 0.285452 0.84971 0.443294 0.518533 0.804242 0.290378 0.485047 0.87336 -0.0444046 0.0918676 -0.995756 -0.00545089 -0.536972 -0.842645 -0.0401302 -0.145927 -0.888752 -0.434539 -0.163461 -0.985993 -0.0331362 0.950486 0.0162356 0.310344 0.894491 0.383863 0.229205 -0.886053 -0.442586 -0.13794 -0.897746 -0.422837 -0.123535 -0.835909 -0.441599 0.325953 -0.85681 -0.378268 0.350414 0.0718489 0.968905 0.236772 0.338518 0.743398 -0.576858 -0.703033 -0.703547 0.103759 -0.428598 -0.894399 0.127888 0.829505 -0.549298 0.100957 0.830163 -0.550683 0.0870498 0.591601 -0.799311 0.105404 0.230471 -0.966093 0.116394 0.999984 -0.00545834 -0.00139924 -0.929524 0.354537 -0.101435 -0.920495 0.352427 -0.168772 -0.907214 0.348688 -0.23533 -0.0103471 0.999934 -0.00490441 -0.00988061 0.999815 -0.0165069 -0.00941279 0.999561 -0.0281072 0.0225206 0.999743 0.0027588 0.997791 -0.0422026 -0.0513105 0.995871 -0.0702347 -0.0575202 0.993126 -0.0982087 -0.0636824 -0.00173017 0.998277 -0.0586532 -0.00685706 0.998578 -0.0528675 -0.241573 -0.969816 -0.0331727 -0.238738 -0.969106 -0.0619504 -0.95579 -0.000516441 -0.294051 -0.959989 0.00202241 -0.280029 -0.963977 0.00456081 -0.265945 0.998967 0.0411968 -0.0191967 0.999665 0.0206029 -0.0156471 0.999927 0 -0.0120907 0.0036642 0.0100827 0.999942 0.00304526 0.00559495 0.99998 0.00300052 0.00598459 0.999978 0.00304766 0.00441743 0.999986 -0.141789 -0.975801 -0.166458 -0.294385 -0.944112 -0.148287 -0.54439 -0.77707 -0.315915 -0.141839 0.973576 0.178973 -0.121876 0.981159 0.14991 0.0598017 0.993415 -0.0977299 -0.345295 -0.567916 -0.747157 -0.286484 -0.887431 -0.3611 -0.309007 -0.68747 -0.657191 0.103865 -0.974391 -0.199437 -0.261521 -0.903569 -0.339367 -0.994618 -0.021401 -0.101373 -0.97804 0.189761 -0.0861866 -0.962888 0.252642 -0.0949639 -0.9849 0.139163 -0.102989 -0.686781 0.725463 -0.0451068 0.920208 -0.371945 -0.121962 -0.0980058 0.995021 0.0180864 0.876098 0.471063 -0.102728 -0.826855 -0.551011 -0.112682 -0.982826 -0.14585 -0.11305 -0.880583 0.467227 -0.0792001 -0.0714553 0.990933 -0.113784 -0.110663 0.992402 -0.0537851 -0.170845 0.929889 -0.325759 -0.160161 0.986946 0.0169161 -0.157258 0.987384 0.0185206 0.403404 0.914976 -0.00914144 0.349126 0.937076 0 -0.175051 0.982503 -0.0636051 0.00415631 0.99998 0.00469818 -0.995799 0.088152 0.0247675 0.0920379 -0.309789 -0.94634 0.0371204 -0.118005 -0.992319 0.861473 0.0390037 -0.506303 0.998626 0.00224007 -0.0523582 -0.117865 0.992815 -0.0206421 -0.104237 0.994501 -0.0101344 -0.158153 0.987366 -0.00978029 -0.141525 0.989917 0.00592353 -0.322217 0.845106 -0.426581 -0.239332 0.348925 -0.906075 -0.491694 0.456904 -0.741267 -0.276851 0.926304 0.255567 -0.239242 0.960648 -0.141131 0.640887 0.766574 -0.0403541 0.428997 0.902981 -0.0242076 0 0.999993 -0.00379514 -0.295328 0.955259 -0.0161935 0.0183084 0.999832 0 0.0288686 0.963673 -0.265519 -0.0541147 -0.109277 -0.992537 -0.0769302 -0.254375 -0.964041 -0.310085 -0.426605 -0.849621 -0.017499 -0.978168 -0.207077 -0.960334 0.278772 0.00674937 0.00679354 0.214688 -0.976659 0.220679 0.373803 -0.900873 0.0218118 0.162578 -0.986455 0.00924451 0.922466 -0.385967 -0.358808 0.933258 -0.0169159 0.0104568 0.980137 -0.198045 -0.170829 0.98523 -0.011762 -0.00915541 -0.999933 0.00710725 -0.193758 -0.0511953 -0.979713 -0.211104 0.276141 -0.937647 -0.361144 0.511567 -0.779663 0.418642 -0.529613 -0.737732 0.407957 -0.0115632 -0.912928 0.5087 0.286574 -0.81185 0.184983 0.745026 -0.640873 0.0718367 -0.989451 0.1258 0.00545836 -0.981572 0.191016 0.327364 -0.558231 -0.762372 -0.28388 -0.912311 -0.295128 -0.291536 -0.901626 -0.319496 -0.191305 -0.976846 0.0957851 0.0273371 -0.99777 -0.0608988 0.0369939 -0.956133 -0.290589 0.0143059 -0.962259 -0.27176 -0.0832882 -0.00379158 -0.996518 -0.208385 0.267158 -0.940852 0.000775484 -0.999973 0.00725236 0.00338741 -0.982722 0.185057 0.00229238 -0.988874 0.148735 0.0424312 -0.987034 0.154801 0.00807946 -0.979306 0.202226 0.00692236 -0.995124 -0.0983919 0.00653722 -0.999979 0 0.0165124 0.286481 -0.957944 0.0162168 0.0349578 -0.999257 0.0147627 -0.00537614 -0.999877 0.0102179 0.999948 0 0.108602 0.486049 -0.867157 0.00767036 -0.985337 -0.17045 0.00470062 -0.979946 -0.199208 0.00810883 -0.973517 -0.22847 0.165669 0.63916 -0.751018 0.37709 0.64927 -0.660494 0.142025 -0.850612 -0.50625 0.0396902 -0.936298 -0.348957 0.107849 -0.930611 -0.349758 0.555885 0.831259 0 0.246444 -0.808711 -0.534089 0.189193 -0.903989 -0.383419 0.161468 -0.942401 -0.29293 0.23001 -0.911641 -0.340596 0.14074 -0.967715 -0.209092 0.455892 0.595034 -0.661889 0.405494 0.807782 -0.427858 0.260355 -0.85997 -0.438939 0.524867 0.838619 -0.145715 0.869559 -0.269131 -0.414049 0.983382 -0.18155 0 0.806686 0.372766 -0.458587 0.740281 -0.672298 0 0.648942 -0.687241 -0.326456 -0.322123 -0.91186 -0.254457 -0.182368 -0.623842 -0.759976 -0.0478021 -0.138854 -0.989159 -0.160158 -0.696999 -0.698957 -0.346122 -0.937373 -0.0391366 -0.331957 -0.943226 -0.0113807 -0.169798 -0.939876 -0.296314 -0.849313 0.514311 -0.118958 -0.146374 -0.982262 -0.117197 -0.244196 -0.948757 -0.200572 -0.143589 0.949014 -0.280632 -0.139148 -0.568604 -0.810757 -0.12825 -0.621973 -0.772464 -0.0231197 -0.0565842 -0.99813 -0.0832489 -0.306983 -0.948067 -0.184859 -0.978068 -0.0959715 -0.226536 -0.973783 -0.0206975 0.646392 0.747876 -0.151193 0.111933 0.993369 -0.0262641 0.0256708 0.999588 -0.0128004 0.0130871 0.999871 -0.00930275 -0.0132844 0.999895 -0.005851 0.0552155 0.998438 -0.00858667 0.0588719 -0.998104 -0.0179647 0.112116 -0.993206 -0.031177 0.0953954 -0.992648 -0.0744976 -0.595149 -0.801983 -0.0512021 -0.127812 -0.991778 -0.00634362 -0.0453094 -0.998661 -0.0249503 -0.0439331 -0.847058 -0.529682 0.849627 -0.259695 -0.459013 0.94399 -0.248177 -0.217466 0.932032 0.0217 -0.361725 0.978569 0.0184547 -0.205089 -0.516121 -0.853661 -0.0698654 -0.0990283 -0.994327 -0.0388136 -0.372415 0.92595 -0.0626347 -0.452069 0.890599 -0.0496624 -0.710354 0.697366 -0.095279 -0.703369 0.707415 -0.0695478 -0.839245 -0.539659 -0.0666004 -0.996835 -0.00788522 -0.079107 -0.977298 -0.19767 -0.0762517 0.117512 0.323036 -0.939063 0.103164 0.404162 -0.908851 -0.0180914 -0.391105 -0.920168 -0.0501396 -0.405836 -0.91257 0.621795 -0.707981 -0.334864 0.776114 -0.621485 -0.106785 0.0759725 -0.153966 -0.985151 0.0312711 -0.315755 -0.948325 0.0373302 -0.39939 -0.916021 -0.0123418 -0.348781 -0.937123 -0.15934 -0.375447 -0.913044 0.541173 -0.357122 -0.761312 -0.194399 -0.363084 -0.911251 -0.198781 -0.327107 -0.923844 -0.211564 -0.359225 -0.908954 -0.219281 -0.253087 -0.942265 0.00427573 -0.610768 -0.791798 -0.160488 -0.330979 -0.929891 -0.525943 -0.821531 -0.220162 -0.0137919 -0.63576 -0.771764 -0.174871 -0.400422 -0.89949 -0.0717713 -0.551411 -0.831141 -0.00632958 -0.630944 -0.775802 -0.120133 -0.462566 -0.878408 -0.144497 -0.404844 -0.902896 -0.165807 -0.331805 -0.928662 -0.171737 0.154326 -0.97298 0.067161 0.388113 0.919162 0.108805 0.0362692 0.993401 0.0961387 0.32782 0.939836 0.271116 0.378947 0.884814 0.0828225 -0.964514 0.250706 -0.185222 -0.414477 0.891012 -0.193277 -0.587673 0.785675 -0.145754 -0.369925 0.917557 -0.203311 -0.774534 0.598967 -0.225346 -0.582675 0.780838 0.568322 -0.530469 0.628978 -0.190079 -0.253428 0.948496 -0.201944 -0.377169 0.90386 -0.25573 -0.347296 0.902212 0.622451 -0.388695 0.679316 -0.221455 -0.131155 0.966311 0.279065 -0.833438 0.476973 0.319874 -0.801035 0.505988 0.614592 -0.522492 0.590998 0.161309 -0.888137 0.43034 -0.201752 -0.168815 0.964778 -0.0467716 -0.998832 0.0121633 -0.176919 -0.898359 -0.402059 -0.183646 -0.981921 0.0458848 0.814724 0.579614 0.0164973 0.0171011 -0.999827 0.00729352 0.148707 0.848818 -0.50734 0.122292 0.879036 -0.460804 -0.843124 -0.529996 -0.0908128 -0.753346 -0.534349 -0.383329 -0.841178 -0.537826 -0.0562317 -0.856633 -0.514269 -0.0413293 -0.049093 0.977959 -0.202941 -0.119754 0.977817 -0.171849 -0.114928 -0.986069 -0.120246 -0.116055 -0.984242 -0.133414 0.131528 -0.989309 0.0629917 0.126013 -0.986029 0.108939 -0.0392862 0.00637077 -0.999208 -0.0412064 0.00285058 -0.999147 -0.0310661 0.998964 0.0332474 -0.0278287 0.997165 0.0699063 -0.0302062 0.997857 0.058042 -0.0316021 0.993933 0.105352 -0.0709922 -0.997263 0.0206326 0.104937 -0.994429 -0.00992488 -0.0814006 0.996011 0.036552 -0.0786532 0.994453 0.0698398 0.131528 -0.989309 0.0629919 0.126013 -0.986029 0.108939 -0.141789 -0.975801 0.166458 -0.294385 -0.944112 0.148287 -0.141839 0.973576 -0.178973 -0.309007 -0.68747 0.657191 0.103865 -0.974391 0.199437 -0.261521 -0.903569 0.339367 -0.994618 -0.021401 0.101373 -0.962888 0.252642 0.0949639 -0.97804 0.189761 0.0861866 -0.984899 0.139163 0.102989 -0.686781 0.725463 0.0451068 -0.00808258 0.999966 0.00181104 0.0113245 0.999793 -0.0169295 -0.0980058 0.995021 -0.0180864 -0.982826 -0.14585 0.11305 -0.826855 -0.551011 0.112682 -0.880583 0.467227 0.0792001 -0.110663 0.992402 0.0537851 -0.170845 0.929889 0.325759 -0.194903 0.980681 -0.0166627 -0.160161 0.986946 -0.0169161 0.995799 0.088152 0.0247675 -0.0410308 0.0359277 0.998512 0.861473 0.0390037 0.506303 0.791999 -0.605959 0.0745052 -0.104237 0.994501 0.0101344 -0.158153 0.987366 0.00978029 -0.141525 0.989917 -0.00592353 -0.361618 0.817917 0.447486 0.637791 0.731635 0.240694 0.276851 0.926304 0.255567 0.640887 0.766574 0.0403541 -0.017499 -0.978168 0.207077 0.962531 0.27117 0.000656454 0.170829 0.98523 -0.011762 0.358808 0.933258 -0.0169159 0.0104568 0.980137 0.198045 0.00924451 0.922466 0.385967 0.418642 -0.529613 0.737732 0.184983 0.745026 0.640873 0.0718367 -0.989451 -0.1258 0.289654 -0.956072 0.0450312 0.157026 -0.987369 -0.0210944 0.00545836 -0.981572 -0.191016 0.327364 -0.558231 0.762372 0.0369939 -0.956133 0.290589 0.0143059 -0.962259 0.27176 -0.0832882 -0.00379158 0.996518 -0.10442 -0.256233 0.960958 0.00428243 -0.998794 0.0489193 0.0424312 -0.987034 -0.154801 0.00767036 -0.985337 0.17045 0.142025 -0.850612 0.50625 0.107849 -0.930611 0.349758 0.23001 -0.911641 0.340596 0.916852 0.200541 0.345205 -0.169798 -0.939876 0.296314 -0.128546 -0.975293 0.179663 -0.143589 0.949014 0.280632 -0.139148 -0.568604 0.810757 -0.0231197 -0.0565842 0.99813 -0.0832489 -0.306983 0.948067 0.000422949 0.021881 0.999761 0.000604653 0.021626 0.999766 0.000565266 0.0209008 0.999781 0.454485 0.375159 0.807898 0.254173 0.653501 0.712975 0.0584929 0.436397 0.897851 -0.177156 0.648078 0.740683 -0.524248 0.26496 0.809297 -0.259845 0.391422 0.882762 -0.814268 -0.0906253 -0.573372 -0.690913 -0.0732921 -0.719213 0.0953954 -0.992648 0.0744976 0.112116 -0.993206 0.031177 0.849627 -0.259695 0.459013 0.94399 -0.248177 0.217466 -0.710354 0.697366 0.095279 -0.452069 0.890599 0.0496624 -0.703369 0.707415 0.0695478 -0.839245 -0.539659 0.0666004 -0.996835 -0.00788522 0.079107 -0.977298 -0.19767 0.0762517 0.621795 -0.707981 0.334864 -0.128625 -0.439088 0.889189 0.0759725 -0.153966 0.985151 -0.149234 -0.400285 0.904158 -0.194399 -0.363084 0.911251 -0.211564 -0.359225 0.908954 0.00427573 -0.610768 0.791798 -0.160488 -0.330979 0.929891 -0.141528 -0.406204 0.902756 -0.0717713 -0.551411 0.831141 -0.0121894 -0.379849 -0.924968 0.282665 -0.00149546 -0.959217 0.0828225 -0.964514 -0.250706 -0.185222 -0.414477 -0.891012 -0.193277 -0.587673 -0.785675 -0.410616 -0.142128 -0.900663 0.319874 -0.801035 -0.505988 -0.388429 0.173937 -0.904914 0.814724 0.579614 -0.0164973 -0.80236 -0.287858 -0.522834 -0.843124 -0.529996 0.0908128 -0.753346 -0.534349 0.383329 -0.856633 -0.514269 0.0413293 -0.049093 0.977959 0.202941 -0.119754 0.977817 0.171849 -0.00365425 0.186344 0.982478 -0.00332877 0.185867 0.982569 -0.00581437 -0.23931 -0.970926 -0.00469308 -0.246804 -0.969054 0.00559138 0.999984 0.000880783 0.00546281 0.999982 0.00262279 -0.0138431 0.0120264 0.999832 -0.0194643 0.0120953 0.999737 0.00364092 -0.999989 0.00297989 0.00126045 -0.999986 -0.00509551 -0.00119305 -0.999951 -0.0098707 -0.000669316 -0.999727 -0.0233452 -0.999983 0.00139878 -0.0056062 -0.999983 0.00139879 -0.00560626 -0.000520545 -0.997901 -0.0647572 0.00117679 -0.997768 -0.0667731 -0.0391544 0.00505267 -0.99922 -0.0416611 0.000486317 -0.999132 0.00304526 0.00559309 0.99998 0.00304766 0.00441741 0.999986 -0.0302062 0.997857 -0.0580414 0.0916863 -0.00605075 0.99577 0.0920692 -0.00284387 0.995749 -0.997199 -0.0559292 0.0496514 -0.99636 -0.0675806 0.0519608 -0.995379 -0.0792224 0.0542628 0.0446394 0.93453 -0.353074 -0.0182639 0.988944 -0.147163 -0.695439 -0.716584 -0.0535973 -0.935046 -0.353387 -0.0283984 -0.537756 0.842657 -0.0273424 -0.412209 0.911001 -0.0126808 -0.32417 0.945997 -0.00182834 -0.184896 0.982627 0.0160299 -0.447148 0.894312 -0.0162962 -0.20101 0.979489 0.0140246 -0.362164 0.932097 -0.00561972 -0.0384957 -0.988166 -0.148476 -0.260665 -0.0606123 -0.963525 0.000598593 0.00134681 -0.999999 -0.999997 0.00232626 0.000311178 -0.00348237 0.00201627 -0.999992 -0.999944 0.0104829 0.00161475 0.659457 -0.274579 -0.699802 0.17823 -0.75854 -0.626779 0.151693 -0.530029 -0.834301 -0.894787 0.367221 -0.253977 -0.983669 0.109914 -0.142529 0.102795 0.994192 0.031874 -0.635266 -0.320862 -0.702485 -0.213831 0.878048 -0.428144 0.0401583 0.0503659 -0.997923 0.298779 -0.677574 -0.672031 -0.128019 0.48026 -0.867733 -0.527694 -0.0493007 -0.848003 -0.398568 0.367094 -0.840467 0.30986 0.642976 -0.700406 0.0268073 -0.960808 -0.275916 -0.511151 -0.657243 -0.553856 0.123532 0.00832483 -0.992306 0.111889 -0.0107365 -0.993663 0.0922029 0.0282131 -0.99534 0.0768449 0.0147511 -0.996934 0.00624823 -0.981555 -0.191076 0.0870623 0.658147 -0.747838 0.00882195 -0.951973 -0.306054 0.393331 0.906463 -0.153672 0.320168 -0.740365 -0.59106 0.432886 -0.820317 -0.373751 0.414765 -0.88304 -0.219569 0.811945 0.113867 -0.57252 0.748843 0.0348095 -0.661832 -0.0996319 -0.332342 -0.937882 0.0206726 0.12311 -0.992178 -0.124962 -0.984855 -0.120189 -0.124039 -0.98736 -0.0986637 -0.310901 -0.537544 -0.783828 -0.417682 0.4562 -0.785763 -0.335275 0.736523 -0.587473 -0.29752 0.775042 -0.557487 -0.324989 0.122924 -0.937695 0.684193 -0.289391 -0.669427 0.451239 -0.768469 -0.453694 -0.714679 -0.691539 -0.104916 -0.891308 -0.443786 -0.0928684 -0.958248 -0.268079 -0.0994732 -0.248214 -0.370905 -0.894885 -0.24952 0.103371 -0.962837 -0.244238 -0.803506 -0.542887 -0.0645549 -0.213521 -0.974803 0.199803 0.228017 -0.952936 -0.170638 -0.437829 -0.882716 0.560863 -0.200548 -0.803252 -0.16879 -0.30097 -0.938577 0.314563 0.849694 0.423168 -0.197032 -0.8948 0.400638 -0.209932 -0.349027 0.913296 -0.334705 -0.268595 0.903233 -0.276198 0.159859 0.947713 -0.264972 0.377734 0.88719 -0.201719 -0.976976 0.0694829 0.691757 -0.699952 -0.177597 0.839412 -0.461304 -0.287379 -0.714296 -0.682673 -0.154073 -0.931116 -0.352023 0.0954149 -0.903758 -0.427218 -0.0265644 -0.00313578 -0.231593 0.972808 -0.00307876 -0.231672 0.972789 -0.0392858 0.00637072 -0.999208 -0.0278286 0.997165 0.0699055 -0.031602 0.993933 0.105351 0.0036642 0.0100827 -0.999942 0.00300052 0.00598459 -0.999978 0.0812124 0.996434 -0.022891 -0.0814006 0.996011 -0.036552 -0.00242275 0.999688 -0.0248501 -0.0786532 0.994453 -0.0698398 0.131528 -0.989309 -0.0629919 0.126013 -0.986029 -0.108939 -0.0392862 0.00637118 -0.999208 -0.0412062 0.00285133 -0.999147 -0.0278286 0.997165 0.0699056 -0.031602 0.993933 0.105351 -0.971791 -0.148993 0.182823 -0.930051 -0.282487 0.234961 -0.80559 -0.529259 0.266289 -0.503203 -0.859629 0.0884605 -0.168644 -0.983129 0.070832 -0.171531 0.975161 0.140134 -0.263558 0.881076 0.392736 -0.252312 0.65708 0.710341 -0.292883 0.956113 -0.00820729 -0.278514 0.96009 -0.0256438 -0.457729 0.713774 0.530105 0 0.984964 0.172761 0.0646979 0.54456 0.836223 -0.0200244 -0.999799 0 -0.112693 -0.419175 0.900884 -0.0450331 -0.23009 0.972127 0.0109407 0.99994 0 0.42606 -0.904695 0 -0.0261706 -0.100651 0.994578 -0.13515 -0.990825 0 -0.75398 -0.577654 0.312779 -0.703578 -0.533301 0.469647 -0.813321 -0.391116 0.430741 -0.993023 -0.117919 5.01984e-008 -0.929852 -0.105337 -0.352531 0.109855 0.85259 0.510903 0.232829 -0.933505 0.272691 -0.0503831 -0.980372 0.190608 -0.976568 -0.197797 0.0848021 -0.975783 0.196968 0.0951358 0.504467 0.335301 0.795667 0.175409 0.299758 0.937751 -0.0788441 -0.142219 0.98669 0.0456884 -0.451988 0.890853 0.0973996 -0.475643 0.87423 0.0812405 -0.751539 0.654667 -0.847529 -0.270397 0.456707 -0.919205 -0.201825 0.338125 0.341276 0.758255 0.5555 -0.883272 -0.462826 0.0749897 -0.88331 -0.463766 0.0684465 -0.00558664 0.174723 0.984602 -0.00472266 0.168857 0.985629 -0.021125 0.00274707 -0.999773 0.782242 -0.620566 -0.0547268 0.779803 -0.616506 -0.108755 -0.00331954 -0.041387 0.999138 -0.00228283 -0.0853016 0.996353 0.00197252 0.998016 -0.0629228 0.00264016 0.997964 -0.0637234 -0.00199575 -0.998412 -0.0562905 -0.00014299 -0.998295 -0.0583625 0.131528 -0.989309 -0.0629917 0.126013 -0.986029 -0.108939 -0.0392862 0.00637077 0.999208 -0.0412064 0.00285058 0.999147 -0.0278287 0.997165 -0.0699063 -0.0316021 0.993933 -0.105352 -0.10323 -0.010961 0.994597 -0.101383 -0.0257504 0.994514 -0.930051 -0.282487 -0.234961 -0.909563 -0.246391 -0.334644 -0.80559 -0.529259 -0.266289 -0.163257 -0.939615 -0.300785 0.159604 0.543812 -0.82389 0.238805 -0.102025 -0.965693 -0.196937 0.975409 -0.0989642 -0.171531 0.975161 -0.140134 -0.174404 0.984401 0.023211 -0.574951 0.817631 -0.030197 -0.324558 0.945797 0.0114361 -0.324522 0.945498 0.0268193 -0.986772 -0.159067 -0.0312748 -0.986579 -0.161404 -0.0247068 -0.480763 0.0929639 -0.871908 -0.279568 0.192004 -0.940732 0.750387 -0.249284 -0.61219 0.0304822 -0.999137 -0.0282066 -0.653135 -0.176293 -0.736434 -0.67402 0.38951 -0.627678 -0.553468 0.671427 -0.492807 -0.725777 -0.10212 -0.680309 0 0.999936 -0.0113563 0.00762938 0.999971 0 0.286982 -0.217319 -0.93296 -0.588556 0.762921 -0.267493 -0.62049 -0.746838 -0.239218 -0.238051 0.860157 -0.451068 0.0667309 -0.997618 -0.01749 -0.116057 -0.992853 -0.0278213 -0.524578 -0.847025 -0.0858322 -0.183422 0.982194 -0.0406291 -0.601066 0.792621 -0.10233 -0.977998 0.19409 -0.0764796 0.284829 -0.273882 0.918619 0.409509 -0.609196 0.679104 -0.528149 0.369429 0.764579 -0.777474 0.0818585 0.623565 -0.149049 0.982262 -0.113783 -0.0391544 0.00505267 0.99922 -0.0416611 0.000486317 0.999132 0.00304526 0.00559309 -0.99998 0.00304766 0.00441741 -0.999986 -0.241573 -0.969816 -0.0331728 -0.238738 -0.969106 -0.0619506 -0.955789 -0.000516889 0.294052 -0.959989 0.00202208 0.28003 -0.963977 0.00456061 0.265945 0.998967 0.0411969 0.0191966 0.999665 0.020603 0.0156471 0.999927 0 0.0120906 -0.909563 -0.246391 0.334644 -0.163257 -0.939615 0.300785 0.159604 0.543812 0.82389 0.238805 -0.102025 0.965693 -0.196937 0.975409 0.0989642 -0.324522 0.945498 -0.0268193 -0.324558 0.945797 -0.0114361 -0.986772 -0.159067 0.0312748 -0.986579 -0.161404 0.0247068 -0.480763 0.0929639 0.871908 -0.279568 0.192004 0.940732 0.750387 -0.249284 0.61219 0.764368 -0.0547968 0.642447 0.0304822 -0.999137 0.0282066 -0.559172 0.353724 0.749804 -0.653135 -0.176293 0.736434 -0.725777 -0.10212 0.680309 -0.00201948 -0.96308 0.269208 0.286982 -0.217319 0.93296 -0.588556 0.762921 0.267493 -0.601066 0.792621 0.10233 -0.977998 0.19409 0.0764796 -0.279337 -0.357256 0.891257 0.586313 -0.221706 -0.779155 0.682422 -0.19535 -0.704371 -0.0834482 -0.6206 -0.779674 0.891778 -0.0229646 -0.45189 0.804512 0.0183671 -0.593653 -0.777474 0.0818585 -0.623565 -0.149049 0.982262 0.113783 -0.16369 0.986278 -0.0214955 -0.00314518 -0.231621 -0.972801 -0.00308773 -0.231704 -0.972781 -0.91167 -0.39865 -0.0996796 -0.902593 -0.396241 -0.168281 -0.889189 -0.391932 -0.236076 -0.0103471 -0.999934 -0.00490441 -0.00988033 -0.999815 -0.016514 -0.00941222 -0.99956 -0.0281213 -0.0120905 0.00938741 -0.999883 -0.0183107 0.00949088 -0.999787 -0.00204716 -0.0556275 -0.99845 -0.000850785 -0.108449 -0.994102 0.0451752 0.000301714 -0.998979 0.0461288 -0.0112583 -0.998872 0.000433268 0.0100574 0.999949 -0.0392858 0.00637072 0.999208 -0.0232888 0.00347833 0.999723 -0.0412059 0.00285057 0.999147 0.013751 0.0133633 0.999816 0.00282776 0.0175654 0.999842 0.0111295 0.0195223 0.999747 0.00293698 0.0132145 0.999908 -0.0278286 0.997165 -0.0699055 -0.031602 0.993933 -0.105351 0.272252 -0.961951 0.0229978 0.271064 -0.962184 0.0269467 0.269406 -0.962554 0.0301858 0.221484 -0.975163 -0.00112373 0.265606 -0.963963 0.0151097 0.173934 -0.983579 -0.0481696 0.013751 0.0133633 0.999816 0.000433268 0.0100574 0.999949 0.0111295 0.0195223 0.999747 0.00282776 0.0175654 0.999842 0.00293698 0.0132145 0.999908 0.997791 -0.0422026 0.0513105 0.995871 -0.0702347 0.0575202 0.993126 -0.0982087 0.0636824 -0.00685706 0.998578 0.0528675 -0.00173017 0.998277 0.0586532 -0.00185071 0.998162 0.0605786 -0.000986761 0.997974 0.0636215 -0.999989 0.00431038 -0.00186088 -0.659579 -0.748708 -0.0662683 -0.0467849 -0.904583 -0.423723 0.177858 -0.768155 -0.615065 -0.0619896 -0.815516 -0.575405 -0.668936 0.625024 -0.402331 -0.0667255 0.997715 -0.0105658 0.868203 -0.320261 -0.37902 0.50109 -0.771474 -0.392093 -0.0777524 -0.988705 -0.128126 -0.611674 -0.783384 -0.110289 -0.149455 0.350156 -0.924691 -0.228009 0.359992 -0.904664 -0.428635 -0.172271 -0.886902 -0.209822 -0.014339 -0.977635 0.316716 -0.347918 0.882408 0.000748339 0.0100325 0.999949 -0.039154 0.00505262 0.99922 -0.0232249 0.00261218 0.999727 -0.0416606 0.000486318 0.999132 0.0138315 0.0134158 0.999814 0.00235814 0.0176621 0.999841 0.0112979 0.0196582 0.999743 0.00149193 0.0110703 0.999938 0.00304526 0.00559495 -0.99998 0.00304766 0.00441743 -0.999986 0.0901141 0.99516 0.0391952 0.0922259 0.993792 0.0622257 -0.000265207 0.999166 0.0408224 -0.0164004 0.999346 0.0322199 -0.241573 -0.969815 0.0331729 -0.238738 -0.969106 0.0619504 -0.0232249 0.00261218 0.999727 0.0138315 0.0134158 0.999814 0.00074834 0.0100325 0.999949 0.0112979 0.0196582 0.999743 0.00235814 0.0176621 0.999841 0.00149193 0.0110703 0.999938 -0.955789 -0.000516889 -0.294052 -0.959989 0.00202208 -0.28003 -0.963977 0.00456061 -0.265945 0.0922259 0.993792 -0.0622258 0.0901141 0.99516 -0.0391948 -0.00026528 0.999166 -0.0408217 -0.0164004 0.999346 -0.0322192 0.998967 0.0411969 -0.0191966 0.999665 0.020603 -0.0156471 0.999927 0 -0.0120906 0.000748994 0.010032 0.999949 -0.0391546 0.00505188 0.99922 -0.0232248 0.00261156 0.999727 -0.0416617 0.000484792 0.999132 0.0138322 0.0134149 0.999814 0.00235849 0.0176624 0.999841 0.0112984 0.0196578 0.999743 0.00149232 0.011071 0.999938 0.00304526 0.00559217 -0.99998 -0.879043 -0.252099 0.404634 -0.635791 -0.474266 0.608967 -0.798123 0.101458 0.59389 -0.929852 -0.105337 0.352532 0.645323 -0.702421 0.300272 0.253154 -0.919434 0.300923 -0.846413 0.527302 0.0744218 0.531885 -0.615378 0.581728 0.980086 -0.0665317 0.187097 0.287474 -0.358373 0.888216 0.225355 -0.856333 0.46466 -0.702408 -0.0727756 -0.708045 -0.138417 0.978777 -0.151118 -0.0216408 -0.002513 0.999763 -0.992569 -0.000889411 -0.121678 -0.991918 0.0121592 -0.126299 -0.991076 0.0252055 -0.130895 0.00647233 -0.999979 0.00087955 0.00631962 -0.999976 0.00266699 0.0916863 -0.00605075 -0.99577 0.0920692 -0.00284387 -0.995749 -0.997199 -0.0559292 -0.0496514 -0.99636 -0.0675806 -0.0519608 -0.995379 -0.0792224 -0.0542628 -0.0814006 0.996011 -0.0365525 -0.0786533 0.994453 -0.0698399 0.131528 -0.989309 -0.0629925 0.126013 -0.986029 -0.108939 -0.0392858 0.00637072 0.999208 -0.0278286 0.997165 -0.0699055 -0.031602 0.993933 -0.105351 -0.971791 -0.148993 -0.182823 0.286336 0.85712 -0.428201 -0.263558 0.881076 -0.392736 -0.252312 0.65708 -0.710341 -0.0450331 -0.23009 -0.972127 -0.0261706 -0.100651 -0.994578 -0.976568 -0.197797 -0.0848021 -0.975783 0.196968 -0.0951358 0.0124195 0.41916 -0.907827 0.504467 0.335301 -0.795667 -0.0788441 -0.142219 -0.98669 0.0973996 -0.475643 -0.87423 -0.847529 -0.270397 -0.456707 -0.919205 -0.201825 -0.338125 0.341276 0.758255 -0.5555 -0.00308773 -0.231704 0.972781 -0.00314518 -0.231621 0.972801 -0.241573 -0.969816 0.0331727 -0.238738 -0.969106 0.0619504 -0.95579 -0.000516441 0.294051 -0.959989 0.00202241 0.280029 -0.963977 0.00456081 0.265945 0.998967 0.0411968 0.0191967 0.999665 0.0206029 0.0156471 0.999927 0 0.0120907 0.00304526 0.00559495 -0.99998 0.00304766 0.00441743 -0.999986 -0.241573 -0.969816 0.0331728 -0.238738 -0.969106 0.0619506</float_array> - <technique_common> - <accessor count="3553" source="#Geometry-mesh090-normals-array" stride="3"> - <param name="X" type="float" /> - <param name="Y" type="float" /> - <param name="Z" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh090-Texture" name="Texture"> - <float_array id="Geometry-mesh090-Texture-array" count="6248">0.0479632 0.123797 0.0438373 0.124264 0.0477555 0.118963 0.0473346 0.142099 0.0469074 0.144306 0.0441881 0.141553 0.0479632 0.303786 0.0477555 0.298952 0.0438373 0.304254 0.0473346 0.322088 0.0441881 0.321543 0.0469074 0.324295 0.452527 0.583416 0.461905 0.592789 0.451174 0.58569 0.460913 0.594766 0.460709 0.597826 0.467999 0.60592 0.460708 0.603125 0.467831 0.609491 0.475685 0.881725 0.475823 0.881978 0.474708 0.884333 0.47482 0.884473 0.46941 0.891685 0.469527 0.890593 0.474423 0.884472 0.475228 0.882612 0.442327 0.910985 0.442409 0.908889 0.451013 0.910242 0.450936 0.908626 0.143517 0.566775 0.0863514 0.562891 0.143624 0.554248 0.0863713 0.550936 0.086263 0.663864 0.0863254 0.637278 0.143816 0.660299 0.143584 0.637029 0.143002 0.932582 0.143017 0.92715 0.197387 0.926883 0.197421 0.92198 0.142996 0.818966 0.143492 0.813857 0.198259 0.824877 0.198777 0.821804 0.378839 0.904264 0.379775 0.892296 0.442778 0.904819 0.443678 0.89606 0.316926 0.569308 0.317719 0.564221 0.379749 0.576937 0.380354 0.57276 0.254668 0.652155 0.25423 0.631332 0.317629 0.644698 0.317241 0.629373 0.446457 0.868425 0.382467 0.854824 0.446681 0.865842 0.382584 0.85305 0.463885 0.871992 0.471588 0.874684 0.463101 0.877883 0.471098 0.878806 0.472486 0.621125 0.472379 0.620245 0.472864 0.619764 0.472676 0.618645 0.455304 0.870458 0.445849 0.874791 0.45463 0.876518 0.198726 0.634306 0.198605 0.601354 0.254046 0.602096 0.316992 0.605337 0.379966 0.608321 0.380265 0.627171 0.381865 0.863456 0.685885 0.65884 0.712992 0.655535 0.688975 0.668699 0.714143 0.665862 0.765845 0.705751 0.767079 0.694419 0.780606 0.704778 0.783075 0.696396 0.715641 0.706074 0.693501 0.707589 0.714826 0.693704 0.691733 0.695941 0.660062 0.745498 0.662205 0.730226 0.679175 0.747461 0.677181 0.734087 0.661361 0.720262 0.676255 0.725233 0.640886 0.740901 0.654806 0.72694 0.0519206 0.934948 0.0521539 0.927138 0.0857581 0.933863 0.0856071 0.927685 0.0848299 0.814856 0.0847939 0.817058 0.0524942 0.818595 0.0523503 0.819413 0.0525302 0.597857 0.0863077 0.598568 0.0525482 0.637761 0.785817 0.713713 0.799876 0.70894 0.791226 0.721954 0.805824 0.717527 0.787937 0.670578 0.790353 0.660068 0.802522 0.67388 0.804595 0.663229 0.81474 0.676369 0.810716 0.686648 0.800718 0.68347 0.714096 0.675322 0.743698 0.674713 0.743939 0.665277 0.672773 0.672231 0.674082 0.681396 0.663893 0.675199 0.665796 0.683805 0.638019 0.684596 0.641192 0.693801 0.617424 0.692052 0.616235 0.702068 0.548534 0.0459484 0.579066 0.0495067 0.545751 0.0700548 0.577508 0.0727548 0.536148 0.139866 0.538602 0.119511 0.569409 0.136289 0.57069 0.120742 0.489214 0.0960528 0.470231 0.0952983 0.488606 0.0792245 0.468533 0.0789351 0.508166 0.157377 0.508187 0.149136 0.535806 0.155735 0.535846 0.148191 0.437875 0.118989 0.393188 0.112577 0.437156 0.109319 0.392443 0.106526 0.352561 0.106196 0.333442 0.106294 0.35065 0.0933766 0.332584 0.0935146 0.291261 0.107561 0.292097 0.124238 0.273764 0.109339 0.274957 0.131731 0.273675 0.0942226 0.252035 0.095839 0.252338 0.109934 0.252706 0.144474 0.265525 0.145877 0.252541 0.154851 0.264323 0.155634 0.345236 0.179039 0.324881 0.178642 0.343337 0.171168 0.323422 0.172009 0.705554 0.619007 0.690154 0.634021 0.687985 0.616109 0.677835 0.629174 0.669652 0.613972 0.672591 0.605886 0.692194 0.607823 0.553288 0.607132 0.537604 0.609035 0.549408 0.599731 0.533122 0.60116 0.570355 0.621446 0.55909 0.626409 0.252751 0.162423 0.264939 0.162844 0.253104 0.16681 0.267795 0.166603 0.507376 0.594496 0.532025 0.593885 0.508331 0.602345 0.489693 0.162544 0.508485 0.164006 0.489565 0.170301 0.508494 0.170469 0.508341 0.160889 0.490929 0.159355 0.491578 0.157204 0.570571 0.594286 0.570817 0.588148 0.589605 0.59349 0.589538 0.587307 0.622306 0.59649 0.629808 0.597607 0.626427 0.609772 0.6343 0.608121 0.637832 0.620945 0.631792 0.624273 0.619339 0.611252 0.40424 0.177502 0.404532 0.168197 0.420774 0.177602 0.421453 0.16885 0.571764 0.573704 0.590235 0.573719 0.376887 0.147812 0.377304 0.167617 0.369552 0.149227 0.371294 0.167891 0.368043 0.178007 0.368475 0.194301 0.36426 0.17859 0.364572 0.194208 0.636623 0.574078 0.628104 0.57334 0.636409 0.554041 0.627321 0.553719 0.251452 0.0789554 0.214617 0.0797955 0.250915 0.0684883 0.21407 0.0693374 0.215352 0.166689 0.215436 0.162353 0.2153 0.0963864 0.179498 0.0968572 0.178639 0.0803913 0.215299 0.170485 0.178883 0.169568 0.17901 0.165821 0.177189 0.060973 0.14046 0.0621421 0.176414 0.0517629 0.139109 0.0531125 0.179794 0.143543 0.179454 0.153916 0.143924 0.143883 0.143219 0.154104 0.141712 0.0713866 0.119796 0.0727896 0.118865 0.0648182 0.142568 0.161913 0.119628 0.15942 0.120653 0.152214 0.112339 0.0386975 0.114624 0.0476871 0.100543 0.043078 0.103451 0.0499119 0.122568 0.110196 0.122701 0.129553 0.0987841 0.110624 0.098913 0.129083 0.0956615 0.0547859 0.10159 0.0607883 0.106356 0.0574705 0.109927 0.0722841 0.102749 0.0680119 0.108812 0.0650645 0.104861 0.0656375 0.0909045 0.165399 0.0897805 0.16957 0.0777708 0.16253 0.0764811 0.166268 0.059754 0.0969791 0.0711064 0.0925493 0.0654694 0.100669 0.0781378 0.0956222 0.0834097 0.141718 0.0816144 0.149195 0.0716423 0.140026 0.0701362 0.147247 0.0527784 0.0930919 0.0451267 0.100308 0.0456897 0.0876375 0.0385834 0.0959029 0.0472319 0.130889 0.0579366 0.130589 0.0579848 0.120871 0.0545353 0.151079 0.0532032 0.153679 0.0456283 0.146003 0.0440372 0.147838 0.0390758 0.12969 0.0423354 0.13049 0.0395646 0.135976 0.0425616 0.13649 0.0407252 0.12335 0.0398394 0.143125 0.0420022 0.142082 0.633446 0.132896 0.633975 0.120645 0.642377 0.0569257 0.643938 0.0399493 0.579561 0.0349068 0.633903 0.142873 0.633726 0.137414 0.716999 0.134954 0.716561 0.130379 0.776497 0.0715193 0.781261 0.0567442 0.842589 0.0931737 0.848616 0.0838521 0.768009 0.133588 0.831794 0.127043 0.768245 0.136177 0.832421 0.129395 0.858446 0.120234 0.852035 0.119251 0.85866 0.119392 0.851759 0.11868 0.853962 0.103887 0.86337 0.0998999 0.858444 0.114596 0.868349 0.113975 0.839957 0.117297 0.850529 0.115733 0.839984 0.115603 0.842963 0.123842 0.852839 0.121007 0.844046 0.125616 0.85309 0.121554 0.745437 0.068593 0.748672 0.0504576 0.766894 0.119803 0.738489 0.118666 0.766506 0.110852 0.738609 0.109406 0.73949 0.136255 0.739328 0.133735 0.740491 0.151324 0.76965 0.150574 0.741075 0.160801 0.77058 0.159837 0.497969 0.723102 0.600121 0.729171 0.533937 0.794483 0.606472 0.79446 0.565318 0.495459 0.501659 0.525645 0.558796 0.486183 0.499883 0.516098 0.526229 0.796282 0.556186 0.848891 0.561751 0.846695 0.560319 0.852316 0.563925 0.848415 0.610733 0.851372 0.60973 0.848755 0.841824 0.385453 0.841939 0.405077 0.83147 0.388038 0.83154 0.407229 0.843217 0.441342 0.831976 0.4401 0.842415 0.42623 0.832011 0.426652 0.889907 0.418726 0.887961 0.446081 0.876283 0.421406 0.875881 0.445015 0.708797 0.420565 0.739131 0.423912 0.710446 0.427991 0.738739 0.430615 0.824283 0.926938 0.774307 0.921001 0.823964 0.909471 0.774685 0.904033 0.824023 0.890255 0.774685 0.887243 0.824467 0.870749 0.7744 0.870929 0.73206 0.899663 0.732041 0.885993 0.845046 0.354094 0.839894 0.357538 0.844363 0.353378 0.83955 0.356644 0.873579 0.96836 0.849326 0.957677 0.871405 0.965933 0.849961 0.956848 0.871123 0.87515 0.865855 0.904075 0.860501 0.874072 0.856317 0.902222 0.876086 0.849951 0.874563 0.851727 0.866178 0.851854 0.865141 0.852931 0.70171 0.896623 0.70008 0.896582 0.70147 0.885953 0.69996 0.885865 0.707686 0.420665 0.710163 0.428341 0.870431 0.205344 0.870785 0.215948 0.860225 0.205701 0.860532 0.216944 0.871062 0.178589 0.860766 0.177626 0.871109 0.173421 0.860735 0.173433 0.830917 0.205973 0.846449 0.20597 0.832738 0.219225 0.846942 0.218009 0.886843 0.194766 0.886531 0.205213 0.879354 0.194709 0.879087 0.20517 0.888845 0.169929 0.888137 0.174705 0.880529 0.169105 0.880181 0.173957 0.789312 0.175884 0.797894 0.176643 0.789176 0.177524 0.797775 0.178228 0.832329 0.184558 0.831822 0.196334 0.819348 0.185043 0.819646 0.199487 0.789439 0.174543 0.782862 0.174581 0.78275 0.175671 0.894052 0.186904 0.897721 0.188771 0.893779 0.188418 0.897606 0.189299 0.788966 0.179851 0.782402 0.177391 0.782027 0.179477 0.77659 0.179305 0.777816 0.177557 0.777715 0.179359 0.778692 0.177564 0.897329 0.190473 0.896951 0.191001 0.893773 0.189496 0.893555 0.189815 0.781684 0.181555 0.788779 0.181909 0.781695 0.181927 0.788755 0.182184 0.893816 0.188934 0.887518 0.187733 0.887568 0.187291 0.879836 0.186072 0.879819 0.186601 0.797513 0.181585 0.788888 0.180695 0.797582 0.180692 0.775649 0.180124 0.777046 0.180424 0.948197 0.73319 0.947396 0.723004 0.951012 0.732516 0.949411 0.7231 0.916878 0.756637 0.916869 0.761145 0.903412 0.756692 0.903351 0.761147 0.902998 0.750973 0.903121 0.753476 0.888374 0.751887 0.888436 0.753821 0.924583 0.71362 0.933268 0.714239 0.924861 0.724073 0.933529 0.723785 0.875661 0.754138 0.875737 0.756508 0.86458 0.755 0.864621 0.757132 0.901796 0.735645 0.915535 0.735417 0.902662 0.746305 0.916324 0.744924 0.874977 0.733776 0.874927 0.747009 0.862602 0.737556 0.863507 0.748171 0.839047 0.75917 0.836306 0.759084 0.838876 0.758133 0.836118 0.758152 0.935481 0.744666 0.935351 0.743171 0.943254 0.74263 0.942943 0.741353 0.83471 0.756682 0.835488 0.756687 0.835483 0.758147 0.828859 0.745791 0.832218 0.745022 0.831936 0.753049 0.834197 0.752946 0.934997 0.741343 0.942419 0.739889 0.93515 0.741793 0.942662 0.740231 0.829805 0.753121 0.830318 0.753742 0.832211 0.7534 0.952389 0.737897 0.948846 0.739016 0.952156 0.737234 0.948801 0.738496 0.926602 0.744572 0.926495 0.743703 0.935263 0.74252 0.844779 0.753172 0.837797 0.754078 0.8446 0.752004 0.837594 0.753063 0.879418 0.214919 0.880652 0.222985 0.871748 0.224326 0.834017 0.229924 0.847993 0.227442 0.789417 0.170869 0.789525 0.172577 0.782725 0.171991 0.782833 0.173095 0.950744 0.756454 0.951781 0.760167 0.945187 0.758622 0.946055 0.761962 0.854223 0.760664 0.85407 0.763117 0.845796 0.760706 0.845782 0.762352 0.934069 0.706163 0.940736 0.714955 0.941856 0.707741 0.521555 0.485106 0.519035 0.488921 0.515165 0.486484 0.515224 0.489107 0.520313 0.467554 0.519726 0.471479 0.51481 0.467452 0.515039 0.470756 0.515097 0.471969 0.519781 0.472521 0.515122 0.473571 0.51995 0.473781 0.515143 0.475772 0.515135 0.474742 0.519818 0.475621 0.519919 0.474675 0.0586659 0.0437489 0.0597883 0.0439486 0.0593796 0.0448426 0.0611582 0.0461457 0.0575954 0.0447771 0.0578194 0.0512429 0.0552703 0.0465406 0.0559667 0.0505832 0.87803 0.710431 0.871374 0.706299 0.878816 0.701226 0.871792 0.700618 0.721385 0.190333 0.710899 0.191392 0.720039 0.187593 0.71102 0.189308 0.693766 0.209055 0.696206 0.210046 0.693503 0.214391 0.696117 0.214547 0.859945 0.050268 0.858643 0.0529885 0.849818 0.0486156 0.84968 0.0506985 0.860128 0.0405573 0.87049 0.0411094 0.870666 0.0497358 0.875563 0.0410226 0.875749 0.0496096 0.757644 0.943696 0.756114 0.956189 0.73698 0.943838 0.735983 0.956176 0.0473931 0.0537066 0.032815 0.0409028 0.047211 0.0401049 0.0327617 0.0338196 0.43407 0.790556 0.426557 0.786488 0.43413 0.790184 0.426666 0.786205 0.474 0.77546 0.474423 0.775812 0.473885 0.775594 0.474403 0.776012 0.0690325 0.0292801 0.0756884 0.0323872 0.0689293 0.029426 0.075616 0.0325398 0.0664526 0.0250934 0.066578 0.025 0.0680978 0.196536 0.0614264 0.190321 0.0680978 0.190032 0.0614255 0.186923 0.0613279 0.186955 0.0589084 0.18261 0.0589526 0.182585 0.025 0.065286 0.0299696 0.0654697 0.0251315 0.0708889 0.029968 0.0706914 0.424977 0.822933 0.425049 0.820269 0.439734 0.822854 0.439681 0.82041 0.449567 0.820383 0.459328 0.820291 0.449651 0.822673 0.459392 0.822417 0.487794 0.475123 0.48531 0.454274 0.487648 0.454193 0.48793 0.475127 0.34604 0.551275 0.331346 0.546222 0.342162 0.53874 0.332578 0.538559 0.322151 0.543076 0.312661 0.540945 0.322756 0.538493 0.31271 0.538502 0.252146 0.959945 0.275347 0.960768 0.252168 0.962465 0.275591 0.961763 0.413432 0.839159 0.423319 0.839132 0.413486 0.841603 0.423402 0.841422 0.43308 0.83904 0.452774 0.838702 0.433143 0.841166 0.452831 0.840764 0.0363809 0.187132 0.0369377 0.192667 0.0412173 0.186935 0.0411573 0.192209 0.452357 0.76175 0.460826 0.760218 0.453577 0.750849 0.461957 0.751426 0.450936 0.773634 0.460128 0.766099 0.451371 0.770019 0.460398 0.763249 0.461905 0.446548 0.460913 0.448524 0.469209 0.457693 0.468405 0.458267 0.473242 0.46953 0.472668 0.466918 0.472812 0.46815 0.472465 0.466555 0.469596 0.757805 0.47482 0.749481 0.469382 0.757521 0.474708 0.749341 0.442674 0.43797 0.442532 0.442083 0.451174 0.439449 0.450908 0.443309 0.143868 0.402732 0.14464 0.393961 0.0862514 0.398651 0.0863489 0.393151 0.143624 0.408007 0.143517 0.420534 0.198561 0.413449 0.19849 0.424715 0.143017 0.792158 0.197421 0.786988 0.143054 0.779171 0.197579 0.775385 0.143816 0.514058 0.199095 0.510116 0.143584 0.490788 0.198726 0.488065 0.315002 0.778144 0.378358 0.775379 0.315452 0.769988 0.378839 0.769272 0.316749 0.426953 0.316926 0.423067 0.25392 0.41899 0.254143 0.415126 0.380565 0.490759 0.443505 0.482759 0.380266 0.480929 0.443331 0.478418 0.317178 0.735145 0.31625 0.754801 0.380916 0.741762 0.379775 0.757304 0.460833 0.477595 0.468087 0.475533 0.460776 0.467243 0.467985 0.469398 0.472676 0.472403 0.472379 0.474004 0.0863077 0.452327 0.0863254 0.491037 0.143549 0.454211 0.142991 0.684666 0.143019 0.701021 0.198254 0.690311 0.1982 0.705111 0.379966 0.462079 0.442965 0.464763 0.752624 0.759957 0.720491 0.760529 0.751438 0.770271 0.721642 0.770856 0.624924 0.797046 0.645519 0.78959 0.623771 0.785218 0.643363 0.778731 0.677473 0.805115 0.671621 0.808306 0.680258 0.813223 0.675774 0.816264 0.667522 0.812152 0.671835 0.820499 0.798724 0.826947 0.793315 0.818706 0.766931 0.835564 0.763605 0.827393 0.653697 0.786858 0.659496 0.784847 0.650701 0.776091 0.656379 0.774037 0.0863514 0.416649 0.0863713 0.404695 0.0524685 0.41475 0.0522921 0.402737 0.0529056 0.776772 0.0521539 0.792146 0.0855054 0.778637 0.0856071 0.792693 0.0523346 0.519399 0.086263 0.517623 0.0525482 0.491519 0.0523473 0.684421 0.0529673 0.700009 0.0847809 0.682106 0.0853475 0.698509 0.800948 0.806047 0.790574 0.801389 0.78881 0.809873 0.788104 0.809772 0.834333 0.772542 0.824806 0.770871 0.832352 0.783208 0.822238 0.781363 0.854493 0.813554 0.839178 0.801035 0.843875 0.82587 0.828422 0.814165 0.776834 0.7817 0.777526 0.772242 0.751196 0.779706 0.696474 0.773692 0.680272 0.777225 0.69699 0.783148 0.681581 0.786389 0.648691 0.798795 0.656523 0.795914 0.577508 0.252744 0.545751 0.250044 0.575839 0.268396 0.54366 0.265052 0.538636 0.367719 0.573112 0.362097 0.537154 0.35489 0.57543 0.350845 0.536549 0.347502 0.508494 0.350459 0.508812 0.357475 0.535806 0.335724 0.57057 0.329973 0.535846 0.32818 0.572481 0.323124 0.436835 0.273749 0.434556 0.258356 0.390632 0.273068 0.388716 0.258049 0.313191 0.298279 0.333878 0.293656 0.312214 0.286799 0.333442 0.286284 0.292801 0.256166 0.283267 0.247427 0.273213 0.258476 0.269984 0.247343 0.251452 0.258945 0.250915 0.248478 0.252677 0.36904 0.266106 0.369393 0.253418 0.355268 0.266924 0.356664 0.324881 0.358632 0.323422 0.351998 0.296287 0.357675 0.296129 0.35245 0.53196 0.882273 0.551585 0.878678 0.529871 0.871861 0.550739 0.8687 0.587999 0.892005 0.61672 0.901732 0.593423 0.881156 0.629514 0.894706 0.506157 0.914169 0.525342 0.918044 0.514511 0.903839 0.531192 0.911972 0.47787 0.943125 0.503197 0.935394 0.483616 0.920318 0.503219 0.922255 0.476079 0.957075 0.476838 0.949445 0.452876 0.944688 0.452475 0.940044 0.696494 0.943161 0.693811 0.935537 0.670291 0.941242 0.668433 0.933645 0.445287 0.333777 0.44477 0.349548 0.469239 0.338344 0.469978 0.349801 0.673583 0.946847 0.696815 0.945346 0.586205 0.934651 0.569245 0.933567 0.586272 0.940834 0.568264 0.939403 0.556471 0.916889 0.561044 0.932712 0.565613 0.916138 0.553043 0.900399 0.582982 0.900031 0.582512 0.917293 0.604046 0.954437 0.605919 0.971217 0.623534 0.954338 0.627638 0.968826 0.376892 0.357223 0.389493 0.357306 0.377304 0.347607 0.389715 0.347809 0.560303 0.938508 0.561731 0.954943 0.57048 0.955369 0.364181 0.330922 0.358754 0.332549 0.367195 0.348693 0.3629 0.34946 0.358681 0.374022 0.358496 0.358964 0.345298 0.373561 0.345236 0.359029 0.250325 0.2384 0.249785 0.22879 0.213502 0.239369 0.212961 0.229828 0.252541 0.33484 0.252706 0.324464 0.215587 0.334638 0.215761 0.324493 0.177189 0.240962 0.21407 0.249327 0.177937 0.250465 0.215436 0.342342 0.179176 0.341411 0.179454 0.333906 0.175529 0.22114 0.174701 0.210067 0.137408 0.222846 0.136211 0.21369 0.180035 0.311655 0.179944 0.290446 0.144595 0.310473 0.144437 0.290604 0.139109 0.233102 0.116956 0.236595 0.114624 0.227677 0.121775 0.323622 0.143924 0.323873 0.122701 0.309543 0.118446 0.347519 0.0909045 0.345388 0.11761 0.352365 0.0897805 0.349559 0.0791568 0.248889 0.0893524 0.240177 0.0734309 0.241957 0.084255 0.233124 0.106356 0.23746 0.10159 0.240778 0.108812 0.245054 0.104861 0.245627 0.0987841 0.290614 0.0846371 0.293151 0.0989129 0.309073 0.0846013 0.309289 0.0966541 0.275961 0.0859539 0.271937 0.0828283 0.28177 0.0781378 0.275612 0.0586291 0.267408 0.0518077 0.26154 0.0527784 0.273081 0.0456897 0.267627 0.0718799 0.296528 0.0720409 0.309687 0.0644558 0.343477 0.0509862 0.337246 0.0613849 0.350433 0.0475226 0.342749 0.0539856 0.287416 0.045638 0.295235 0.0567009 0.293095 0.0556741 0.32837 0.0566987 0.324617 0.025 0.30867 0.0316596 0.308829 0.0264352 0.299842 0.0328654 0.301402 0.0472319 0.310878 0.0423354 0.310479 0.0420022 0.322071 0.0456282 0.325993 0.633903 0.322863 0.633726 0.317403 0.640016 0.260503 0.638034 0.276047 0.634257 0.328585 0.71739 0.320169 0.634038 0.325562 0.717205 0.317345 0.767128 0.285414 0.830673 0.293404 0.771961 0.26688 0.836299 0.283043 0.768525 0.319171 0.768955 0.323625 0.833251 0.312347 0.834412 0.316233 0.858223 0.301485 0.858446 0.300224 0.852391 0.30013 0.852035 0.299241 0.853962 0.283876 0.84689 0.28945 0.858444 0.294586 0.850529 0.295722 0.839957 0.297286 0.840266 0.298905 0.851759 0.298669 0.842957 0.308478 0.832421 0.309384 0.844046 0.305605 0.742349 0.26519 0.745437 0.248582 0.776497 0.251509 0.738489 0.298656 0.738754 0.30425 0.766894 0.299792 0.767257 0.304855 0.768245 0.316166 0.739694 0.31917 0.73949 0.316245 0.831225 0.464177 0.818797 0.477837 0.837609 0.475053 0.82305 0.487832 0.84343 0.491294 0.863571 0.480566 0.863128 0.462069 0.805727 0.563843 0.805762 0.550395 0.755444 0.558691 0.755644 0.550156 0.713119 0.499004 0.684949 0.504258 0.713104 0.506865 0.683158 0.512866 0.712882 0.547655 0.713236 0.535233 0.682549 0.544307 0.682675 0.535203 0.883961 0.631987 0.884019 0.612771 0.834681 0.626549 0.834681 0.609759 0.894868 0.593697 0.894413 0.614933 0.912995 0.595347 0.910226 0.621733 0.834183 0.584791 0.791245 0.589177 0.834397 0.593445 0.791655 0.595985 0.85694 0.452515 0.854771 0.452475 0.830765 0.463592 0.921351 0.667674 0.922525 0.64872 0.911125 0.663318 0.913641 0.646134 0.909958 0.679364 0.897556 0.665849 0.901771 0.655963 0.755404 0.559093 0.805694 0.564173 0.682908 0.524554 0.681332 0.524438 0.681731 0.512653 0.763238 0.640097 0.791817 0.645373 0.763667 0.63938 0.791954 0.644621 0.886849 0.213861 0.893257 0.2053 0.893334 0.212444 0.887885 0.181102 0.894697 0.180783 0.893963 0.175408 0.847299 0.174008 0.832444 0.174918 0.847166 0.17726 0.832481 0.177558 0.819734 0.179571 0.8197 0.177855 0.808491 0.179178 0.80858 0.177557 0.797949 0.172199 0.797969 0.174865 0.870936 0.186519 0.870668 0.19455 0.879659 0.187774 0.780003 0.175776 0.779455 0.177529 0.819707 0.182083 0.832474 0.181964 0.832515 0.17953 0.778765 0.175861 0.779325 0.175793 0.77666 0.189996 0.780787 0.190732 0.778225 0.181985 0.819645 0.184357 0.832409 0.184122 0.778254 0.181539 0.776131 0.181687 0.775924 0.181921 0.897505 0.18981 0.871052 0.184539 0.871024 0.185177 0.781877 0.18034 0.914646 0.724285 0.900789 0.724821 0.916653 0.749053 0.916699 0.752437 0.944247 0.753903 0.949867 0.752918 0.875609 0.752437 0.926781 0.746782 0.935807 0.749109 0.926948 0.750942 0.864407 0.7534 0.853757 0.754942 0.853951 0.756457 0.941694 0.733739 0.948523 0.738228 0.851838 0.740105 0.843309 0.742254 0.853071 0.750004 0.844562 0.751677 0.902841 0.748727 0.916562 0.74714 0.864066 0.750901 0.875449 0.749931 0.835627 0.759035 0.916427 0.745455 0.902668 0.746774 0.875265 0.747664 0.863731 0.748685 0.902762 0.747935 0.91652 0.746463 0.888037 0.747277 0.888138 0.748543 0.875399 0.748983 0.86393 0.749979 0.834519 0.75435 0.834228 0.753375 0.92506 0.705247 0.832126 0.170488 0.831603 0.165478 0.819314 0.171321 0.818768 0.166963 0.77835 0.172964 0.778624 0.173915 0.779101 0.172811 0.779265 0.173564 0.888406 0.760767 0.90308 0.766412 0.888103 0.765752 0.839045 0.761595 0.839097 0.760528 0.836227 0.761123 0.836307 0.760288 0.509045 0.478746 0.51517 0.47912 0.510478 0.475685 0.511418 0.488935 0.508627 0.485356 0.50806 0.48793 0.504972 0.483918 0.506688 0.473787 0.510446 0.471604 0.505462 0.47004 0.509729 0.467707 0.510425 0.472651 0.507179 0.474155 0.5103 0.473907 0.50762 0.474698 0.510363 0.474785 0.50822 0.47552 0.50791 0.475118 0.0576836 0.0437878 0.0567171 0.0438509 0.833968 0.756685 0.832695 0.755344 0.833262 0.756734 0.831602 0.754748 0.865979 0.704051 0.866098 0.700099 0.861703 0.701785 0.86077 0.69996 0.700661 0.19954 0.702007 0.202281 0.711147 0.19848 0.711026 0.200564 0.694064 0.180439 0.696535 0.179487 0.693927 0.17509 0.696547 0.174991 0.866563 0.0597072 0.864084 0.0606386 0.839506 0.0398708 0.839323 0.0495852 0.849632 0.0415258 0.864035 0.0651344 0.840646 0.0523378 0.834652 0.0645538 0.83478 0.0600538 0.758059 0.478069 0.759038 0.477298 0.749184 0.465658 0.7497 0.465231 0.714482 0.452618 0.686028 0.457692 0.713484 0.464955 0.689775 0.464976 0.447156 0.399999 0.447135 0.397479 0.437572 0.399817 0.437638 0.397488 0.427761 0.397596 0.417703 0.397653 0.42775 0.399751 0.417704 0.39976 0.188812 0.80527 0.167809 0.805907 0.18874 0.807934 0.167492 0.806893 0.342319 0.947446 0.327662 0.952348 0.338391 0.959945 0.328894 0.959955 0.31842 0.955465 0.308878 0.957782 0.319018 0.960063 0.308959 0.96012 0.384646 0.392355 0.38409 0.398301 0.385673 0.392465 0.385096 0.398439 0.351393 0.397488 0.341516 0.397596 0.351327 0.399817 0.341505 0.399751 0.309983 0.399952 0.310562 0.399999 0.310388 0.397924 0.310524 0.397936 0.405887 0.509972 0.409815 0.497472 0.429088 0.510794 0.429644 0.504848 0.395158 0.502374 0.39639 0.509981 0.385916 0.505491 0.386514 0.51009 0.376407 0.514697 0.35557 0.513068 0.376456 0.512253 0.35556 0.512493 0.484654 0.647484 0.484633 0.644964 0.47507 0.647303 0.475136 0.644973 0.465259 0.645082 0.4552 0.645139 0.465248 0.647237 0.455202 0.647245 0.460128 0.901092 0.460756 0.902402 0.468405 0.604509 0.475891 0.878968 0.476114 0.879373 0.469382 0.892513 0.442674 0.584212 0.443175 0.580921 0.0862514 0.544892 0.143868 0.548973 0.0855521 0.85937 0.143078 0.861229 0.0855062 0.889275 0.143084 0.890683 0.252199 0.921994 0.252299 0.917649 0.25401 0.831591 0.254206 0.830376 0.252617 0.907442 0.315002 0.913136 0.315452 0.90498 0.380565 0.637 0.253641 0.865328 0.317178 0.870138 0.253123 0.889035 0.31625 0.889793 0.461957 0.886418 0.470336 0.884685 0.473227 0.618396 0.472937 0.61704 0.444853 0.884599 0.453577 0.885841 0.19849 0.570956 0.253873 0.57515 0.31674 0.581303 0.379674 0.589466 0.380916 0.876755 0.651997 0.679853 0.64888 0.669043 0.656961 0.677844 0.653698 0.667311 0.668358 0.693601 0.669974 0.700121 0.662005 0.696644 0.664122 0.703313 0.660023 0.707159 0.65737 0.699259 0.756107 0.7224 0.781766 0.706991 0.753996 0.717427 0.635863 0.673737 0.646198 0.681865 0.643202 0.671097 0.652802 0.721941 0.025 0.936254 0.0263124 0.927852 0.0258672 0.81504 0.0264921 0.812454 0.025817 0.597233 0.0258232 0.637981 0.79773 0.734569 0.815635 0.728833 0.817308 0.665877 0.786606 0.679552 0.769336 0.676706 0.768003 0.686467 0.743243 0.684496 0.675903 0.690835 0.690486 0.687694 0.689492 0.678155 0.643222 0.704423 0.651802 0.701346 0.649023 0.690921 0.54366 0.0850622 0.52629 0.067481 0.512607 0.0775495 0.509592 0.191393 0.508812 0.177486 0.538636 0.187729 0.537154 0.1749 0.48921 0.116139 0.46996 0.113945 0.572481 0.143134 0.436835 0.0937592 0.390632 0.0930781 0.311239 0.0935058 0.312568 0.0789607 0.331783 0.0792017 0.292801 0.0761764 0.290396 0.0932511 0.273213 0.0784866 0.267896 0.171725 0.266924 0.176675 0.253397 0.170579 0.253418 0.175279 0.324552 0.192587 0.295467 0.190908 0.296287 0.177686 0.582387 0.646984 0.624225 0.649463 0.581215 0.657576 0.625071 0.659441 0.546296 0.633435 0.51771 0.612112 0.650467 0.610097 0.653411 0.602388 0.672612 0.592747 0.654344 0.59778 0.296129 0.172461 0.293779 0.164524 0.552569 0.596371 0.469239 0.158355 0.469978 0.169812 0.5525 0.58882 0.614766 0.595428 0.622767 0.627742 0.610197 0.612003 0.405541 0.147516 0.423032 0.149839 0.376892 0.177233 0.389493 0.177316 0.377334 0.194461 0.389807 0.194524 0.614079 0.573198 0.60533 0.572772 0.613869 0.555141 0.604776 0.555906 0.367195 0.168703 0.3629 0.169471 0.630773 0.591799 0.638253 0.593478 0.250325 0.0584101 0.213502 0.0593791 0.215587 0.154649 0.177937 0.0704758 0.179176 0.161421 0.175529 0.0411505 0.137408 0.042857 0.144595 0.130484 0.180035 0.131666 0.116956 0.0566054 0.121775 0.143632 0.11761 0.172376 0.115825 0.185419 0.0872179 0.179868 0.0966541 0.0959716 0.121732 0.0968721 0.0893524 0.0601873 0.0974455 0.0647688 0.0846371 0.113162 0.0828283 0.10178 0.0731833 0.175428 0.0586291 0.0874183 0.0846013 0.129299 0.0720409 0.129697 0.0574423 0.138635 0.0567009 0.113106 0.0556741 0.14838 0.047045 0.137269 0.045638 0.115245 0.0367601 0.135793 0.640016 0.0805138 0.634038 0.145572 0.717205 0.137355 0.771961 0.0868905 0.836299 0.103053 0.833251 0.132358 0.768525 0.139182 0.858223 0.121496 0.86779 0.122908 0.867888 0.122306 0.84689 0.10946 0.829799 0.11653 0.830421 0.120809 0.840266 0.118915 0.847085 0.130229 0.842957 0.128489 0.720322 0.0848363 0.722635 0.067816 0.742349 0.0852005 0.716441 0.125048 0.716187 0.118928 0.738754 0.12426 0.739694 0.13918 0.717391 0.140179 0.601249 0.424071 0.629049 0.371851 0.673797 0.424077 0.678689 0.371528 0.595187 0.672742 0.47976 0.672742 0.388729 0.555581 0.392386 0.562041 0.49145 0.732377 0.857474 0.340434 0.883189 0.328773 0.863858 0.351311 0.889377 0.338326 0.782142 0.393456 0.782159 0.410214 0.89021 0.382974 0.873669 0.388628 0.781692 0.434949 0.781893 0.426413 0.83431 0.912064 0.834416 0.892417 0.854087 0.854032 0.852998 0.87283 0.83564 0.855927 0.834871 0.87118 0.701331 0.876808 0.702933 0.869318 0.731658 0.873469 0.731249 0.866661 0.857013 0.339849 0.851129 0.940802 0.841775 0.933447 0.853644 0.923617 0.846626 0.918696 0.861355 0.945157 0.738692 0.431087 0.781652 0.43535 0.700199 0.876606 0.710713 0.379771 0.739266 0.374647 0.711197 0.380516 0.739367 0.375262 0.893491 0.19492 0.887785 0.185964 0.847028 0.169463 0.871094 0.168797 0.887232 0.188704 0.847163 0.179825 0.847128 0.18209 0.778836 0.179384 0.84708 0.184392 0.847054 0.184076 0.887423 0.188359 0.879765 0.18734 0.797419 0.182857 0.773883 0.181315 0.947176 0.716119 0.949953 0.717142 0.927257 0.756127 0.927474 0.760732 0.881286 0.730257 0.885978 0.72602 0.886869 0.735111 0.943594 0.747522 0.875585 0.760529 0.864554 0.760565 0.926395 0.743163 0.925645 0.734812 0.926672 0.745223 0.835003 0.758741 0.835061 0.758054 0.825813 0.746765 0.888214 0.749444 0.83481 0.755134 0.837976 0.754808 0.914585 0.704561 0.914274 0.713227 0.846543 0.164186 0.77993 0.172601 0.780051 0.173436 0.886803 0.70234 0.900956 0.703681 0.886387 0.713093 0.900609 0.71318 0.52132 0.478844 0.0549982 0.049161 0.0550422 0.0465359 0.728282 0.180822 0.725842 0.17983 0.727985 0.20943 0.728123 0.214779 0.725514 0.210382 0.725503 0.214878 0.840809 0.0371494 0.849771 0.0394429 0.828785 0.0404025 0.828961 0.049029 0.823887 0.0491153 0.823703 0.0405282 0.757616 0.969346 0.736992 0.969046 0.756114 0.956849 0.735983 0.956841 0.454244 0.804946 0.44075 0.805053 0.441081 0.790671 0.434012 0.790765 0.426506 0.78658 0.480552 0.776007 0.480492 0.775822 0.0689302 0.0328167 0.075616 0.03903 0.0686994 0.0330694 0.0753867 0.0392784 0.0909323 0.19666 0.0909322 0.196554 0.0962378 0.196624 0.096238 0.196563 0.094682 0.0316693 0.0912377 0.0316713 0.0946819 0.0315635 0.0912375 0.0315654 0.058748 0.182611 0.058896 0.18256 0.0587727 0.182664 0.0306597 0.0603908 0.0305475 0.0654648 0.0299503 0.0604361 0.489993 0.424739 0.489812 0.434323 0.487473 0.424761 0.487483 0.434258 0.487591 0.444134 0.489746 0.444145 0.489755 0.454191 0.361302 0.790271 0.36123 0.792935 0.340299 0.790908 0.339981 0.791894 0.346068 0.523721 0.342141 0.536221 0.331411 0.528623 0.332644 0.53623 0.32217 0.53174 0.322767 0.536338 0.312628 0.534057 0.312709 0.536395 0.275903 0.954822 0.276929 0.954932 0.276352 0.960906 0.242649 0.959955 0.242583 0.962284 0.232773 0.960063 0.232762 0.962218 0.20124 0.962419 0.201644 0.960391 0.201819 0.962466 0.20178 0.960403 0.0418198 0.186935 0.041219 0.181713 0.0417969 0.181708 0.455589 0.732738 0.455304 0.735466 0.464216 0.734645 0.463885 0.737 0.460756 0.76741 0.472937 0.470798 0.473227 0.472154 0.451135 0.452174 0.442611 0.451113 0.0857581 0.798871 0.143001 0.79759 0.253873 0.428909 0.252299 0.782657 0.252617 0.77245 0.254669 0.505913 0.25423 0.485091 0.442409 0.773897 0.442778 0.769827 0.379621 0.434666 0.379749 0.430696 0.25401 0.696599 0.318421 0.7064 0.254206 0.695384 0.318584 0.705509 0.444853 0.749606 0.443678 0.761068 0.467831 0.463249 0.460708 0.456884 0.143078 0.726237 0.198071 0.727877 0.379674 0.443225 0.780187 0.762045 0.750742 0.789489 0.721813 0.789998 0.750425 0.798297 0.722325 0.798697 0.683402 0.795829 0.675857 0.798595 0.685019 0.80324 0.622521 0.828719 0.655726 0.816801 0.621215 0.819094 0.650722 0.809417 0.720691 0.825484 0.721675 0.830628 0.761495 0.82242 0.659301 0.806339 0.662317 0.814309 0.025 0.39989 0.0254859 0.41363 0.0263124 0.79286 0.0278105 0.777117 0.025452 0.522293 0.0258232 0.49174 0.0257673 0.680945 0.0278287 0.69787 0.79149 0.795096 0.803457 0.800181 0.845196 0.785712 0.846919 0.774482 0.817564 0.807567 0.827125 0.795106 0.794104 0.784545 0.775501 0.791461 0.697984 0.792687 0.721595 0.780315 0.664869 0.804252 0.662027 0.793802 0.512607 0.257539 0.510634 0.276949 0.541202 0.281826 0.488606 0.259214 0.489214 0.276042 0.572133 0.342446 0.490025 0.319802 0.492386 0.329103 0.508209 0.319769 0.508187 0.329125 0.35065 0.273366 0.349879 0.258766 0.311239 0.273495 0.332584 0.273504 0.281171 0.237992 0.268001 0.237903 0.444848 0.37361 0.470617 0.372934 0.444697 0.357548 0.470545 0.357144 0.295467 0.370898 0.507523 0.880956 0.511853 0.889429 0.551932 0.890012 0.523863 0.897242 0.537978 0.907196 0.252751 0.342413 0.264323 0.335624 0.264939 0.342833 0.318324 0.339655 0.293779 0.344514 0.643785 0.934256 0.645175 0.941817 0.421453 0.348839 0.423032 0.329828 0.677058 0.953282 0.697087 0.948695 0.546001 0.930534 0.538814 0.929615 0.545036 0.936342 0.537557 0.934663 0.605455 0.906695 0.603487 0.920299 0.62331 0.939321 0.604993 0.939993 0.389871 0.326864 0.376887 0.327802 0.371563 0.357478 0.368043 0.357996 0.37203 0.374362 0.368475 0.37429 0.547706 0.954801 0.548489 0.974422 0.554702 0.954858 0.555222 0.973884 0.343337 0.351158 0.356512 0.350256 0.249114 0.217866 0.212377 0.219058 0.215877 0.312064 0.252594 0.312049 0.176414 0.231752 0.179794 0.323532 0.178741 0.354162 0.141396 0.354903 0.178407 0.368716 0.140642 0.367542 0.14387 0.277069 0.179498 0.276847 0.112339 0.218687 0.121732 0.276861 0.104146 0.261778 0.12088 0.261794 0.0918985 0.341436 0.118963 0.343803 0.0651947 0.263076 0.0584655 0.255572 0.089071 0.253782 0.0957368 0.257232 0.0974455 0.244758 0.102749 0.248001 0.0963485 0.322222 0.0834097 0.321708 0.0778069 0.26816 0.0711064 0.272539 0.0764811 0.346257 0.0731833 0.355418 0.0579848 0.30086 0.0579366 0.310579 0.0660708 0.339221 0.0532032 0.333668 0.0500806 0.283701 0.0426185 0.292178 0.0574423 0.318625 0.047045 0.317258 0.0382231 0.28929 0.0319197 0.286209 0.0395646 0.315966 0.0425616 0.316479 0.570089 0.33366 0.720322 0.264826 0.717924 0.282782 0.634737 0.333554 0.717642 0.324697 0.766506 0.290842 0.830118 0.294734 0.76965 0.330563 0.835773 0.320825 0.858009 0.302486 0.867548 0.303967 0.86779 0.302898 0.866617 0.30734 0.857419 0.304455 0.856437 0.321253 0.849762 0.313515 0.830421 0.300798 0.831099 0.304178 0.841466 0.301692 0.847085 0.310218 0.739302 0.284037 0.716561 0.310369 0.739032 0.309353 0.716441 0.305038 0.739983 0.323693 0.813645 0.48128 0.814821 0.492708 0.827904 0.502581 0.805292 0.530971 0.75591 0.533956 0.755326 0.491631 0.755501 0.500212 0.894306 0.634581 0.893554 0.651063 0.906623 0.641213 0.791937 0.636859 0.761959 0.630818 0.761327 0.599324 0.792037 0.608509 0.761467 0.60847 0.834149 0.651986 0.834057 0.652514 0.916314 0.624738 0.834117 0.584133 0.791197 0.588692 0.816968 0.565085 0.816937 0.565378 0.681211 0.53514 0.760555 0.630892 0.896427 0.195417 0.895367 0.205096 0.860511 0.168888 0.819656 0.175443 0.808516 0.175357 0.846787 0.194971 0.86052 0.194497 0.860789 0.185224 0.807435 0.196203 0.807873 0.184487 0.780123 0.17472 0.879798 0.185081 0.773235 0.189369 0.773545 0.181748 0.870978 0.186051 0.505634 0.47806 0.888523 0.756429 0.936317 0.755132 0.854113 0.758148 0.95175 0.736774 0.836172 0.744021 0.83759 0.752731 0.853436 0.752539 0.835553 0.760176 0.834872 0.75974 0.853157 0.750405 0.853321 0.751672 0.833043 0.754396 0.833709 0.755231 0.888362 0.221082 0.894804 0.21859 0.880984 0.164927 0.889533 0.166567 0.87524 0.76485 0.835394 0.760936 0.834659 0.760697 0.52509 0.48365 0.524731 0.478105 0.52495 0.469795 0.524931 0.460829 0.520729 0.457256 0.523675 0.473658 0.52314 0.474012 0.522737 0.474557 0.522452 0.474992 0.767456 0.186719 0.769814 0.188284 0.772029 0.180921 0.0557759 0.0440576 0.824647 0.22241 0.826074 0.23131 0.883373 0.715528 0.700758 0.189825 0.702038 0.187093 0.721288 0.200046 0.725933 0.17533 0.832349 0.0590421 0.867107 0.0311076 0.867418 0.0257741 0.864676 0.0300945 0.864806 0.0255946 0.733616 0.464967 0.749185 0.464984 0.735146 0.452475 0.758097 0.452603 0.714494 0.477825 0.713484 0.46562 0.686027 0.47292 0.689771 0.465648 0.451034 0.412533 0.43634 0.407481 0.427145 0.404334 0.417655 0.402203 0.338413 0.962465 0.361592 0.960768 0.361836 0.961763 0.203444 0.805411 0.203498 0.807855 0.213331 0.805384 0.213415 0.807674 0.223092 0.805291 0.223155 0.807418 0.242786 0.804954 0.242843 0.807016 0.360911 0.399998 0.364789 0.412533 0.384335 0.399296 0.384881 0.405284 0.350095 0.407481 0.3409 0.404334 0.331458 0.397653 0.331459 0.39976 0.307839 0.797455 0.307768 0.800119 0.293082 0.797533 0.293136 0.799978 0.283249 0.800004 0.273488 0.800097 0.283165 0.797714 0.273425 0.797971 0.355525 0.510293 0.376374 0.507809 0.376455 0.510147 0.355521 0.510429 0.488532 0.660019 0.473838 0.654966 0.464643 0.651819 0.455152 0.649689 0.450908 0.58955 0.460885 0.626609 0.460833 0.623837 0.468622 0.624431 0.468087 0.621774 0.475577 0.879535 0.451371 0.905011 0.452357 0.896742 0.198822 0.555103 0.199939 0.547659 0.254143 0.561368 0.255099 0.555356 0.198254 0.825303 0.254009 0.831758 0.442611 0.597355 0.442532 0.588324 0.379621 0.580908 0.318381 0.842359 0.318421 0.841392 0.451135 0.598415 0.451574 0.611248 0.460776 0.613485 0.475725 0.877612 0.476014 0.877936 0.442965 0.611004 0.143549 0.600452 0.317918 0.853297 0.669376 0.662495 0.783992 0.690102 0.714314 0.685005 0.716022 0.73429 0.718822 0.746611 0.664335 0.715506 0.675898 0.719943 0.622791 0.733728 0.0267356 0.53122 0.0527609 0.536985 0.0262579 0.538377 0.0526466 0.543002 0.0523473 0.819413 0.0257673 0.815937 0.0254859 0.559872 0.0524685 0.560991 0.795222 0.703512 0.836378 0.720877 0.820924 0.709171 0.824854 0.678214 0.819628 0.690112 0.613715 0.7141 0.533647 0.0440207 0.508209 0.13978 0.509629 0.117167 0.490025 0.139812 0.471329 0.131324 0.333878 0.113666 0.352427 0.11267 0.252594 0.132059 0.345298 0.193572 0.534897 0.638958 0.661299 0.624302 0.592827 0.62811 0.587811 0.636136 0.48731 0.600851 0.481999 0.592604 0.572133 0.162457 0.536549 0.167513 0.570468 0.157184 0.536248 0.162076 0.570089 0.15367 0.53608 0.159023 0.552275 0.573803 0.527755 0.576867 0.548172 0.559315 0.522829 0.566405 0.636995 0.598526 0.641513 0.605691 0.644618 0.616169 0.40453 0.194432 0.420978 0.194173 0.588987 0.556067 0.569891 0.556924 0.371563 0.177489 0.623124 0.590551 0.615507 0.589633 0.621108 0.573283 0.351269 0.154053 0.358754 0.152559 0.356512 0.170267 0.215689 0.110557 0.179944 0.110456 0.215233 0.175347 0.178741 0.174173 0.142685 0.0811737 0.12088 0.0818045 0.118963 0.163814 0.142167 0.166275 0.0963485 0.142233 0.0651947 0.0830861 0.0791568 0.0688997 0.0778069 0.0881704 0.0890709 0.0737925 0.0918985 0.161447 0.0790296 0.159052 0.0696706 0.106924 0.0800332 0.155526 0.0685735 0.15239 0.0500806 0.103711 0.0566987 0.144628 0.0509862 0.157257 0.0412938 0.150563 0.0359432 0.129103 0.0426186 0.112188 0.0373864 0.12239 0.0326317 0.13621 0.0365632 0.145056 0.573348 0.104978 0.635753 0.109527 0.573112 0.182107 0.57543 0.170856 0.636721 0.172533 0.635787 0.162363 0.767659 0.129682 0.831099 0.124189 0.868163 0.120631 0.830118 0.114744 0.725086 0.0475149 0.716622 0.109668 0.71816 0.15277 0.719466 0.162219 0.611379 0.846989 0.59354 0.422275 0.614109 0.847726 0.831786 0.370561 0.78175 0.376469 0.889819 0.356823 0.869679 0.367552 0.857756 0.398302 0.860536 0.424619 0.739484 0.397842 0.739484 0.41149 0.833558 0.928547 0.824397 0.857163 0.774186 0.862274 0.831783 0.359468 0.831618 0.358585 0.83657 0.944295 0.83756 0.943333 0.85023 0.899216 0.853999 0.853285 0.700558 0.908375 0.701962 0.908302 0.702692 0.869016 0.871043 0.182896 0.860865 0.181095 0.879997 0.179971 0.808275 0.171806 0.779396 0.174755 0.79736 0.183234 0.860874 0.183814 0.860836 0.18484 0.819708 0.183033 0.832443 0.18287 0.808077 0.183935 0.808202 0.182637 0.778567 0.180349 0.940977 0.72342 0.949721 0.747456 0.845609 0.758923 0.934291 0.734208 0.838444 0.756661 0.887924 0.746749 0.952522 0.738385 0.948843 0.739526 0.844874 0.753954 0.861428 0.225607 0.894436 0.171773 0.895343 0.168006 0.79767 0.169689 0.916798 0.766288 0.927752 0.765529 0.864286 0.764018 0.522383 0.487887 0.522113 0.475422 0.0604503 0.0442335 0.0613466 0.0458932 0.0597836 0.0509545 0.728546 0.175486 0.832893 0.0304259 0.835373 0.0294959 0.858805 0.0378059 0.835424 0.025 0.441581 0.790223 0.454729 0.8045 0.0325509 0.0338217 0.0324996 0.0250019 0.0326209 0.025 0.0590729 0.218221 0.059001 0.22439 0.0588636 0.218218 0.0587917 0.224388 0.487447 0.771206 0.487552 0.771481 0.487347 0.771258 0.487458 0.771509 0.0688271 0.0328092 0.0684937 0.0328002 0.0688314 0.0294573 0.0686586 0.0294902 0.0849965 0.0250008 0.0916104 0.025 0.0611553 0.186988 0.0355995 0.0653406 0.0353757 0.0709476 0.0305705 0.0706914 0.474974 0.420833 0.488295 0.40156 0.482349 0.401004 0.479876 0.43549 0.482992 0.444732 0.492198 0.454241 0.490569 0.475078 0.489994 0.475088 0.3988 0.839018 0.398728 0.841682 0.377796 0.839655 0.377479 0.840641 0.256074 0.947446 0.241417 0.952348 0.232175 0.955465 0.222633 0.957782 0.222714 0.96012 0.046625 0.187191 0.046023 0.192736 0.041837 0.192276 0.0411997 0.176679 0.0362493 0.181529 0.0364863 0.17617 0.451013 0.77525 0.460709 0.451584 0.467999 0.459679 0.475891 0.743976 0.475685 0.746733 0.476114 0.74438 0.475823 0.746986 0.46941 0.756693 0.474423 0.74948 0.443175 0.43468 0.452527 0.437175 0.0855521 0.724378 0.0855062 0.754283 0.143084 0.755691 0.197387 0.791891 0.252198 0.787002 0.198259 0.689885 0.198777 0.686812 0.380354 0.426519 0.317629 0.498457 0.317241 0.483131 0.253641 0.730336 0.253123 0.754043 0.470336 0.749693 0.463101 0.742891 0.471098 0.743814 0.472864 0.473522 0.45463 0.741526 0.445849 0.739799 0.198605 0.455113 0.254046 0.455854 0.31674 0.435061 0.316992 0.459096 0.381865 0.728464 0.66446 0.782838 0.661197 0.772305 0.669505 0.801638 0.789265 0.811984 0.66886 0.825255 0.660302 0.826934 0.669705 0.835219 0.662306 0.831934 0.025 0.801262 0.0519206 0.799955 0.0258672 0.680048 0.0523503 0.68442 0.0264921 0.677462 0.0524942 0.683603 0.025817 0.450992 0.0525302 0.451615 0.823133 0.833826 0.813322 0.82252 0.805228 0.839562 0.81002 0.778874 0.812092 0.768223 0.808216 0.788463 0.795435 0.775571 0.52629 0.24747 0.509592 0.371382 0.48921 0.296129 0.46996 0.293934 0.47023 0.275288 0.536148 0.319856 0.569408 0.316278 0.437156 0.289309 0.392443 0.286516 0.312568 0.25895 0.331783 0.259191 0.290396 0.273241 0.273675 0.274212 0.252035 0.275828 0.267896 0.351714 0.253397 0.350568 0.324552 0.372577 0.594595 0.870565 0.638206 0.919106 0.6581 0.916029 0.522399 0.925753 0.521466 0.930361 0.267795 0.346593 0.642688 0.92698 0.626402 0.92841 0.623241 0.93177 0.489693 0.342533 0.489565 0.350291 0.508485 0.343995 0.490929 0.339344 0.508341 0.340878 0.605239 0.933855 0.549383 0.918369 0.553504 0.931651 0.544018 0.903867 0.405541 0.327506 0.404532 0.348187 0.377334 0.37445 0.389807 0.374513 0.56194 0.973 0.571034 0.972235 0.36426 0.358579 0.539187 0.954063 0.214617 0.259785 0.178639 0.260381 0.17901 0.34581 0.215352 0.346678 0.14046 0.242131 0.118865 0.244808 0.143219 0.334093 0.120653 0.332204 0.115825 0.365408 0.0872179 0.359857 0.122568 0.290185 0.0956614 0.234775 0.059754 0.276969 0.0716423 0.320015 0.0545353 0.331068 0.0407252 0.30334 0.0367601 0.315782 0.0398394 0.323114 0.633446 0.312885 0.642377 0.236915 0.579066 0.229496 0.716999 0.314944 0.842589 0.273163 0.867888 0.302295 0.829799 0.296519 0.853089 0.301544 0.722635 0.247805 0.716187 0.298918 0.805222 0.511781 0.755893 0.517199 0.81569 0.52882 0.816167 0.549973 0.863961 0.506717 0.847421 0.51237 0.863659 0.542469 0.850034 0.545149 0.71249 0.554358 0.914083 0.576549 0.895637 0.578443 0.762929 0.591834 0.818114 0.47712 0.931402 0.68845 0.712444 0.55483 0.759957 0.608381 0.760196 0.599122 0.684465 0.503514 0.713017 0.49839 0.733615 0.465628 0.684961 0.472261 0.689221 0.465264 0.18874 0.672942 0.203498 0.672863 0.188812 0.670278 0.203444 0.670419 0.213331 0.670392 0.213414 0.672682 0.223091 0.670299 0.223155 0.672426 0.417622 0.395315 0.396772 0.397799 0.396768 0.397936 0.342291 0.975 0.327597 0.969948 0.328828 0.962284 0.318401 0.966801 0.319007 0.962218 0.308911 0.96467 0.30896 0.962227 0.36089 0.397479 0.353435 0.82791 0.353489 0.830354 0.363322 0.827883 0.363405 0.830173 0.373083 0.82779 0.373146 0.829916 0.392777 0.827453 0.392834 0.829515 0.405909 0.512492 0.429332 0.51179 0.409787 0.525027 0.429878 0.517777 0.395093 0.519974 0.385897 0.516827 0.396324 0.512311 0.386503 0.512245 0.267486 0.684191 0.282243 0.684113 0.267558 0.681527 0.282189 0.681668 0.292076 0.681642 0.29216 0.683931 0.301837 0.681549 0.3019 0.683675 0.45512 0.642801 0.43427 0.645285 0.434266 0.645421 0.455589 0.86773 0.464216 0.869637 0.460398 0.898241 0.460826 0.89521 0.469596 0.892797 0.472812 0.614391 0.473241 0.615772 0.472465 0.612796 0.469209 0.603935 0.472668 0.613159 0.198561 0.55969 0.25392 0.565231 0.197579 0.910377 0.199095 0.656358 0.378358 0.910372 0.316749 0.573195 0.318584 0.840501 0.467985 0.615639 0.143019 0.836013 0.1982 0.840103 0.198071 0.86287 0.772689 0.657052 0.770028 0.667249 0.745126 0.654963 0.742926 0.693303 0.67752 0.698246 0.615022 0.723726 0.648227 0.711808 0.713192 0.720491 0.714176 0.725635 0.654818 0.709316 0.025 0.546131 0.0522921 0.548979 0.0278105 0.912109 0.0529056 0.911764 0.0523346 0.665641 0.025452 0.668534 0.0278287 0.832862 0.0529673 0.835001 0.79596 0.695187 0.79345 0.701053 0.837699 0.680718 0.839422 0.669488 0.826835 0.667548 0.831681 0.696041 0.810067 0.702574 0.654528 0.688809 0.510634 0.0969596 0.541202 0.101836 0.492386 0.149114 0.388716 0.0780598 0.349879 0.078777 0.312214 0.10681 0.268001 0.0579136 0.281171 0.0580025 0.269984 0.0673535 0.283267 0.0674373 0.444848 0.19362 0.444697 0.177559 0.470617 0.192945 0.470545 0.177155 0.266106 0.189404 0.645939 0.65628 0.643849 0.645868 0.668287 0.647184 0.663957 0.638712 0.623878 0.638129 0.651946 0.630899 0.318324 0.159665 0.530635 0.586324 0.505519 0.586899 0.44477 0.169559 0.445287 0.153787 0.502227 0.581294 0.478995 0.582795 0.498752 0.574859 0.478723 0.579446 0.606565 0.594574 0.593298 0.610848 0.572323 0.607842 0.389871 0.146874 0.389715 0.16782 0.37203 0.194373 0.620588 0.554256 0.358496 0.178975 0.249785 0.0488002 0.212961 0.049839 0.249114 0.0378767 0.212377 0.0390686 0.215877 0.132074 0.215761 0.144503 0.178407 0.188726 0.141396 0.174914 0.140642 0.187552 0.14387 0.0970795 0.144437 0.110615 0.136211 0.0337009 0.104146 0.0817881 0.118446 0.16753 0.0584655 0.075583 0.0734309 0.0619673 0.0957368 0.0772424 0.0859539 0.0919472 0.0644557 0.163488 0.0613849 0.170444 0.0718799 0.116539 0.0660708 0.159231 0.0539856 0.107427 0.0382231 0.109301 0.0328654 0.121412 0.0319197 0.10622 0.0264352 0.119853 0.57057 0.149983 0.717924 0.102793 0.638034 0.0960578 0.634737 0.153565 0.634257 0.148595 0.717642 0.144707 0.767128 0.105425 0.830673 0.113414 0.768955 0.143635 0.835773 0.140835 0.834412 0.136243 0.858009 0.122496 0.867548 0.123977 0.866616 0.12735 0.856437 0.141264 0.857419 0.124465 0.849762 0.133525 0.841466 0.121703 0.739302 0.104048 0.739032 0.129364 0.739983 0.143704 0.667467 0.489379 0.662546 0.545819 0.547112 0.545819 0.434285 0.692879 0.324898 0.656383 0.437149 0.669054 0.325083 0.654963 0.671117 0.489751 0.676955 0.424401 0.432507 0.702424 0.321233 0.662837 0.841069 0.368965 0.849298 0.36409 0.854153 0.378838 0.781575 0.367888 0.739353 0.383122 0.731958 0.922105 0.703671 0.916863 0.73194 0.914343 0.774153 0.929469 0.731821 0.922857 0.77406 0.929998 0.774121 0.861616 0.7312 0.866175 0.831943 0.44043 0.843186 0.441636 0.70758 0.400696 0.709156 0.400811 0.70746 0.411398 0.708923 0.41146 0.703241 0.917581 0.771683 0.956879 0.771683 0.956205 0.708526 0.964141 0.70746 0.963482 0.71227 0.956869 0.711719 0.956485 0.441056 0.790462 0.44145 0.790061 0.480857 0.776178 0.473851 0.792626 0.473547 0.792497 0.487509 0.77159 0.487697 0.771817 0.0664082 0.0251187 0.0613236 0.190314 0.0258991 0.0776072 0.0256884 0.0764234 0.0300127 0.0766163 0.029908 0.0759656 0.0353956 0.059909 0.404045 0.820906 0.403728 0.821892 0.365897 0.531097 0.366924 0.531207 0.365341 0.537043 0.366347 0.537181 0.291234 0.538694 0.291639 0.536666 0.291813 0.538741 0.291775 0.536678 0.222666 0.96467 0.201829 0.963041 0.222716 0.962227 0.451986 0.477916 0.452245 0.481463 0.460885 0.480368 0.471803 0.738068 0.471588 0.739692 0.469527 0.755601 0.475778 0.741335 0.471891 0.738013 0.475432 0.741375 0.455618 0.732349 0.446681 0.73085 0.446737 0.730487 0.198822 0.408862 0.197826 0.754449 0.314862 0.781731 0.378211 0.778214 0.382694 0.717469 0.382584 0.718058 0.475577 0.744543 0.475499 0.74317 0.475725 0.74262 0.253933 0.709992 0.317918 0.718305 0.671392 0.780192 0.668601 0.769841 0.774577 0.799412 0.699232 0.800934 0.772245 0.846994 0.683397 0.824937 0.683754 0.830227 0.0262579 0.392136 0.0526466 0.396761 0.0286107 0.752556 0.0533732 0.752767 0.0288966 0.723419 0.0536041 0.724533 0.809417 0.803687 0.807374 0.813934 0.80272 0.808506 0.859551 0.789701 0.818214 0.791641 0.666688 0.791609 0.673295 0.788798 0.534511 0.210791 0.533647 0.22401 0.549877 0.212378 0.548534 0.225938 0.509629 0.297156 0.538602 0.299501 0.489459 0.356752 0.468533 0.258924 0.352561 0.286185 0.292097 0.304227 0.291261 0.28755 0.268817 0.226469 0.284388 0.226308 0.271099 0.216074 0.287048 0.216716 0.420774 0.357592 0.420978 0.374162 0.6885 0.92729 0.671439 0.914677 0.667479 0.925796 0.460494 0.92467 0.470256 0.909134 0.487825 0.912032 0.538273 0.892464 0.502734 0.948927 0.337829 0.336122 0.536248 0.342065 0.53608 0.339012 0.648055 0.951274 0.65298 0.961736 0.552685 0.93759 0.620732 0.926268 0.622522 0.921009 0.40424 0.357491 0.585574 0.954422 0.369552 0.329217 0.371294 0.34788 0.364572 0.374197 0.524846 0.951554 0.523374 0.97201 0.539401 0.9741 0.215233 0.355336 0.215102 0.368789 0.2153 0.276376 0.215689 0.290547 0.252338 0.289923 0.211882 0.208448 0.142684 0.261163 0.141892 0.350059 0.178883 0.349557 0.142167 0.346264 0.119796 0.252779 0.109927 0.252273 0.0944066 0.330589 0.119628 0.339409 0.0929727 0.337182 0.0917599 0.227827 0.0816144 0.329184 0.0800332 0.335516 0.0790296 0.339042 0.067291 0.33594 0.0777708 0.342519 0.0696706 0.286913 0.0654694 0.280658 0.0685734 0.332379 0.0451267 0.280297 0.0385834 0.275892 0.0326317 0.316199 0.0257622 0.317344 0.0373864 0.302379 0.0308471 0.328143 0.0365632 0.325046 0.570468 0.337173 0.633975 0.300635 0.635753 0.289516 0.716622 0.289657 0.636721 0.352523 0.719466 0.342209 0.635787 0.342352 0.718159 0.332759 0.868163 0.30062 0.868349 0.293964 0.85866 0.299381 0.831793 0.307033 0.842963 0.303831 0.841002 0.293703 0.738609 0.289395 0.739328 0.313724 0.740491 0.331313 0.805534 0.483211 0.805537 0.494304 0.815575 0.509196 0.831507 0.522045 0.834288 0.548362 0.713236 0.521584 0.884279 0.649455 0.884284 0.66046 0.892388 0.662404 0.884394 0.57968 0.884464 0.593265 0.792056 0.622179 0.761707 0.619139 0.755246 0.49117 0.891956 0.663439 0.884092 0.661476 0.925138 0.575447 0.920498 0.596588 0.88434 0.579134 0.895585 0.57797 0.849633 0.568758 0.835404 0.567007 0.847497 0.569167 0.83536 0.567382 0.762688 0.591533 0.79659 0.193996 0.787981 0.192182 0.86089 0.183071 0.808286 0.181708 0.84709 0.18292 0.936913 0.759939 0.845204 0.756144 0.845418 0.757623 0.949369 0.740954 0.952677 0.738857 0.942827 0.740857 0.860217 0.163742 0.807844 0.168298 0.94847 0.7099 0.951357 0.711139 0.93759 0.764097 0.51479 0.456225 0.509042 0.457528 0.823703 0.74789 0.828383 0.753607 0.0614584 0.0493529 0.0618105 0.0480377 0.817966 0.227057 0.812554 0.229726 0.819118 0.232476 0.813462 0.2333 0.690042 0.190453 0.690295 0.199078 0.685222 0.199209 0.684961 0.190624 0.866655 0.0650576 0.470335 0.398301 0.470579 0.399296 0.242785 0.669962 0.242843 0.672024 0.362382 0.967751 0.288025 0.960403 0.288064 0.962466 0.338731 0.830433 0.338803 0.827768 0.331377 0.395315 0.310527 0.397799 0.507833 0.645786 0.508077 0.646782 0.321531 0.681211 0.321588 0.683273 0.451986 0.624157 0.452244 0.627704 0.471803 0.873061 0.475778 0.876327 0.475432 0.876367 0.471891 0.873005 0.455618 0.867341 0.446737 0.865479 0.0855054 0.913629 0.143054 0.914164 0.197826 0.889441 0.314862 0.916723 0.378211 0.913206 0.382694 0.852461 0.475499 0.878162 0.0853475 0.833501 0.253933 0.844984 0.661102 0.664847 0.764747 0.742001 0.759433 0.730571 0.0286107 0.887548 0.0533732 0.887759 0.0288966 0.858411 0.0536041 0.859525 0.80192 0.698693 0.846995 0.70856 0.852053 0.684707 0.659189 0.686616 0.549877 0.0323888 0.534511 0.0308014 0.489459 0.176762 0.434556 0.0783665 0.313191 0.118289 0.287048 0.0367269 0.284388 0.0463188 0.271099 0.0360851 0.268817 0.0464797 0.504371 0.613464 0.715316 0.603471 0.637537 0.635677 0.673076 0.579214 0.69794 0.585016 0.698972 0.578696 0.337829 0.156132 0.555078 0.601873 0.607546 0.588738 0.364181 0.150933 0.358681 0.194032 0.650964 0.576586 0.652436 0.556131 0.252677 0.189051 0.215102 0.1888 0.174701 0.0300771 0.211882 0.0284582 0.141892 0.170069 0.0944066 0.1506 0.0929727 0.157192 0.084255 0.0531342 0.0917599 0.0478376 0.0518077 0.0815509 0.067291 0.15595 0.025 0.12868 0.0316596 0.128839 0.0257622 0.137354 0.0308471 0.148154 0.767257 0.124866 0.841002 0.113714 0.504511 0.549473 0.392569 0.563464 0.623483 0.369657 0.627613 0.36623 0.631222 0.37013 0.678042 0.367143 0.681421 0.370789 0.677039 0.369762 0.603769 0.728797 0.609629 0.794135 0.832392 0.939888 0.824287 0.937944 0.781494 0.367427 0.83196 0.940923 0.824096 0.93896 0.824343 0.856618 0.835588 0.855454 0.873746 0.445424 0.861653 0.443264 0.861609 0.44364 0.780596 0.943824 0.441037 0.789798 0.0756507 0.204989 0.0754985 0.218111 0.48043 0.775495 0.0686361 0.0330093 0.0615285 0.186777 0.0681701 0.189879 0.0590778 0.182491 0.48246 0.399978 0.488434 0.400555 0.489947 0.475667 0.487919 0.475263 0.291824 0.539316 0.0366751 0.174991 0.0413082 0.176006 0.468622 0.47819 0.475228 0.74762 0.143492 0.678865 0.0848299 0.679864 0.142996 0.683973 0.0847939 0.682066 0.199939 0.401417 0.255099 0.409114 0.254009 0.696766 0.317719 0.41798 0.382467 0.719832 0.318381 0.707367 0.451574 0.465007 0.476014 0.742944 0.693384 0.763834 0.676875 0.767488 0.68468 0.839081 0.686674 0.852454 0.723521 0.839283 0.72632 0.851604 0.630291 0.838721 0.648386 0.845894 0.0267356 0.384979 0.0527609 0.390743 0.623735 0.807062 0.471329 0.311313 0.352427 0.29266 0.273764 0.289329 0.274957 0.31172 0.265525 0.325866 0.640912 0.889183 0.497974 0.898967 0.253104 0.3468 0.534297 0.92245 0.54151 0.92002 0.40453 0.374422 0.586822 0.972074 0.351269 0.334042 0.215299 0.350475 0.141712 0.251376 0.142568 0.341902 0.103451 0.229901 0.0701362 0.327236 0.0440372 0.327827 0.0412938 0.330553 0.0359432 0.309092 0.0390758 0.30968 0.57069 0.300731 0.573348 0.284968 0.767659 0.309671 0.768009 0.313577 0.848616 0.263842 0.86337 0.279889 0.839984 0.295593 0.725086 0.227504 0.748672 0.230447 0.741075 0.34079 0.813301 0.480387 0.805369 0.482328 0.896566 0.666811 0.909323 0.680194 0.926174 0.57437 0.913996 0.575801 0.760077 0.619098 0.735117 0.478125 0.471125 0.405284 0.396807 0.399999 0.288029 0.960266 0.33141 0.402203 0.253794 0.800434 0.253737 0.798373 0.508623 0.652769 0.434305 0.647485 0.464354 0.869332 0.443504 0.629001 0.443331 0.624659 0.475391 0.876817 0.142991 0.819658 0.0847809 0.817098 0.74243 0.705606 0.679736 0.708434 0.672759 0.70823 0.85322 0.671533 0.575839 0.0884061 0.489646 0.192338 0.723335 0.588097 0.720234 0.594672 0.674257 0.561868 0.699731 0.571066 0.249006 0.0270184 0.0370622 0.154891 0.838444 0.151165 0.852391 0.12014 0.598983 0.672413 0.709407 0.389123 0.862528 0.926204 0.70798 0.388911 0.896145 0.211297 0.826112 0.20236 0.778772 0.175085 0.897717 0.217391 0.87114 0.163994 0.0578281 0.0517606 0.0595247 0.0514756 0.829319 0.21705 0.720009 0.202778 0.731752 0.190795 0.732004 0.199419 0.736824 0.190663 0.737085 0.199248 0.83204 0.0643756 0.780557 0.96929 0.781536 0.968519 0.772199 0.956452 0.708527 0.948913 0.712274 0.956197 0.459974 0.792079 0.460481 0.792497 0.058748 0.233198 0.0588685 0.2332 0.0874879 0.196662 0.0874878 0.196556 0.0662476 0.025119 0.0663959 0.0250691 0.0662723 0.025172 0.0609909 0.190305 0.0347737 0.0764927 0.0305877 0.0760332 0.0252369 0.0599271 0.489291 0.401316 0.479022 0.819953 0.47908 0.822015 0.365586 0.538038 0.366132 0.544026 0.201784 0.960266 0.0419091 0.176634 0.464354 0.73434 0.475391 0.741825 0.446457 0.733433 0.442327 0.775993 0.749928 0.810599 0.773344 0.810745 0.701 0.812582 0.687235 0.813427 0.579561 0.214896 0.489646 0.372328 0.437875 0.298979 0.288602 0.204989 0.272755 0.205866 0.249006 0.207008 0.455576 0.933469 0.501552 0.966273 0.0370622 0.33488 0.643938 0.219939 0.852839 0.300996 0.834304 0.643517 0.931119 0.597666 0.93456 0.574244 0.861712 0.569823 0.857396 0.571047 0.684198 0.551733 0.683914 0.552083 0.50519 0.46124 0.0564049 0.0512986 0.808877 0.232374 0.80825 0.234439 0.832804 0.0250755 0.470891 0.392355 0.471917 0.392465 0.47134 0.398439 0.396228 0.399952 0.396633 0.397924 0.362148 0.954822 0.288074 0.963041 0.328771 0.799482 0.329088 0.798496 0.508389 0.63984 0.509415 0.63995 0.508838 0.645925 0.433726 0.647437 0.434131 0.64541 0.14464 0.540202 0.0863488 0.539392 0.781312 0.70488 0.272755 0.0258763 0.288602 0.025 0.0475226 0.16276 0.883645 0.447304 0.433707 0.790987 0.440453 0.805197 0.426316 0.786844 0.0611961 0.190575 0.067869 0.196785 0.0999876 0.0316339 0.0999877 0.0315729 0.502528 0.420861 0.495279 0.40077 0.497475 0.435555 0.494329 0.444751 0.375988 0.792856 0.375934 0.790412 0.385821 0.790385 0.395582 0.790292 0.385905 0.792675 0.395645 0.792418 0.291779 0.536541 0.256046 0.975 0.241352 0.969948 0.232156 0.966801 0.0371484 0.19385 0.0412621 0.192859 0.0466449 0.176152 0.0468489 0.181584 0.472486 0.474883 0.723139 0.811068 0.667561 0.850491 0.797851 0.765062 0.508166 0.337366 0.393188 0.292567 0.485655 0.89412 0.491578 0.337193 0.100543 0.223067 0.781261 0.236734 0.77058 0.339826 0.933576 0.690876 0.925851 0.626591 0.936082 0.572468 0.681437 0.544407 0.451062 0.384979 0.436405 0.389881 0.427164 0.392998 0.396818 0.400575 0.3178 0.828406 0.317483 0.829392 0.364817 0.384979 0.35016 0.389881 0.340919 0.392998 0.43067 0.504958 0.430093 0.510933 0.354981 0.512445 0.355385 0.510417 0.48856 0.632464 0.473903 0.637366 0.464661 0.640483 0.434315 0.64806 0.616271 0.680225 0.668275 0.71127 0.722934 0.583453 0.479316 0.58498 0.666345 0.546145 0.88102 0.328732 0.0326041 0.0409044 0.426226 0.786762 0.426416 0.786525 0.474457 0.775166 0.0812467 0.189991 0.0878606 0.18999 0.061133 0.190515 0.0254258 0.058748 0.0300589 0.0597627 0.415276 0.789955 0.415333 0.792017 0.276137 0.967751 0.860717 0.776527 0.838444 0.331154 0.167809 0.670915 0.167492 0.671901 0.363174 0.954932 0.362597 0.960906 0.287485 0.962419 0.287889 0.960391 0.310573 0.400574 0.246554 0.682164 0.246237 0.68315</float_array> - <technique_common> - <accessor count="3124" source="#Geometry-mesh090-Texture-array" stride="2"> - <param name="S" type="float" /> - <param name="T" type="float" /> - </accessor> - </technique_common> - </source> - <vertices id="Geometry-mesh090-vertices"> - <input semantic="POSITION" source="#Geometry-mesh090-positions" /> - </vertices> - <triangles count="5696" material="Material-cesium_air"> - <input semantic="VERTEX" source="#Geometry-mesh090-vertices" offset="0" /> - <input semantic="NORMAL" source="#Geometry-mesh090-normals" offset="1" /> - <input semantic="TEXCOORD" source="#Geometry-mesh090-Texture" offset="2" set="0" /> - <p>658 0 0 685 1 1 659 2 2 669 3 3 668 4 4 690 5 5 2171 6 6 2172 7 7 2193 8 8 2180 9 9 2197 10 10 2179 11 11 37 12 12 52 13 13 38 14 14 53 15 15 38 14 14 52 13 13 54 16 16 67 17 17 55 18 18 66 19 19 55 18 18 67 17 17 84 20 20 86 21 21 73 22 22 74 23 23 73 22 22 86 21 21 71 24 24 60 25 25 72 26 26 83 27 27 72 26 26 60 25 25 91 28 28 90 29 29 37 12 30 36 30 31 37 12 30 90 29 29 29 31 32 100 32 33 28 33 34 102 34 35 28 33 34 100 32 33 110 35 36 101 36 37 31 37 38 30 38 39 31 37 38 101 36 37 26 39 40 25 40 41 116 41 42 117 42 43 116 41 42 25 40 41 32 43 44 31 37 45 120 44 46 122 45 47 120 44 46 31 37 45 127 46 48 126 47 49 88 48 50 89 49 51 88 48 50 126 47 49 132 50 52 130 51 53 133 52 54 131 53 55 133 52 54 130 51 53 20 54 56 19 55 57 140 56 58 138 57 59 140 56 58 19 55 57 98 58 60 145 59 61 97 60 62 143 61 63 97 60 62 145 59 61 59 62 64 62 63 65 148 64 66 152 65 67 148 64 66 62 63 65 79 66 68 78 67 69 156 68 70 157 69 71 156 68 70 78 67 69 98 58 60 33 70 72 159 71 73 149 72 74 159 71 73 33 70 72 113 73 75 166 74 76 19 55 57 167 75 77 19 55 57 166 74 76 170 76 78 171 77 79 138 57 59 139 78 80 138 57 59 171 77 79 145 59 61 98 58 60 173 79 81 159 71 73 173 79 81 98 58 60 181 80 82 174 81 83 203 82 84 196 83 85 203 82 84 174 81 83 164 84 86 211 85 87 0 86 88 212 87 89 0 86 88 211 85 87 1 88 90 2 89 91 210 90 92 216 91 93 210 90 92 2 89 91 224 92 94 229 93 95 223 94 96 228 95 97 223 94 96 229 93 95 238 96 98 233 97 99 229 93 95 228 95 97 229 93 95 233 97 99 240 98 100 239 99 101 224 92 94 229 93 95 224 92 94 239 99 101 244 100 102 245 101 103 104 102 104 105 103 105 104 102 104 245 101 103 110 35 106 108 104 107 250 105 108 249 106 109 250 105 108 108 104 107 253 107 110 160 108 111 251 109 112 101 36 37 251 109 112 160 108 111 230 110 113 257 111 114 225 112 115 258 113 116 225 112 115 257 111 114 199 114 117 177 115 118 266 116 119 265 117 120 266 116 119 177 115 118 268 118 121 278 119 122 266 116 119 279 120 123 266 116 119 278 119 122 280 121 124 196 83 85 281 122 125 197 123 126 281 122 125 196 83 85 202 124 127 286 125 128 201 126 129 285 127 130 201 126 129 286 125 128 205 128 131 290 129 132 206 130 133 289 131 134 206 130 133 290 129 132 309 132 135 293 133 136 310 134 137 294 135 138 310 134 137 293 133 136 314 136 139 313 137 140 300 138 141 298 139 142 300 138 141 313 137 140 318 140 143 326 141 144 259 142 145 221 143 146 259 142 145 326 141 144 303 144 147 335 145 148 315 146 149 334 147 150 315 146 149 335 145 148 339 148 151 341 149 152 340 150 153 342 151 154 340 150 153 341 149 152 346 152 155 349 153 156 344 154 157 347 155 158 344 154 157 349 153 156 355 156 159 354 157 160 357 158 161 358 159 162 357 158 161 354 157 160 356 160 163 357 158 161 367 161 164 366 162 165 367 161 164 357 158 161 375 163 166 374 164 167 377 165 168 376 166 169 377 165 168 374 164 167 391 167 170 394 168 171 392 169 172 395 170 173 392 169 172 394 168 171 358 159 174 354 157 175 404 171 176 403 172 177 404 171 176 354 157 175 412 173 178 413 174 179 404 171 176 408 175 180 404 171 176 413 174 179 421 176 181 411 177 182 420 178 183 410 179 184 420 178 183 411 177 182 429 180 185 414 181 186 421 176 181 411 177 182 421 176 181 414 181 186 432 182 187 433 183 188 437 184 189 438 185 190 437 184 189 433 183 188 442 186 191 443 187 192 399 188 193 410 179 184 399 188 193 443 187 192 457 189 194 455 190 195 330 191 196 327 192 197 330 191 196 455 190 195 462 193 198 464 194 199 303 144 147 321 195 200 303 144 147 464 194 199 468 196 201 469 197 202 449 198 203 448 199 204 449 200 203 469 197 202 451 201 205 472 202 206 478 203 207 477 204 208 478 203 207 472 202 206 425 205 209 426 206 210 478 203 207 479 207 211 478 203 207 426 206 210 485 208 212 486 209 213 388 210 214 389 211 215 388 210 214 486 209 213 469 197 202 488 212 216 448 199 204 493 213 217 448 199 204 488 212 216 497 214 218 496 215 219 502 216 220 501 217 221 502 216 220 496 215 219 505 218 222 504 219 223 510 220 224 509 221 225 510 220 224 504 219 223 518 222 226 513 223 227 517 224 228 512 225 229 517 224 228 513 223 227 368 226 230 520 227 231 369 228 232 521 229 233 369 228 232 520 227 231 437 184 189 529 230 234 432 182 187 530 231 235 432 182 187 529 230 234 519 232 236 537 233 237 520 227 231 538 234 238 520 227 231 537 233 237 528 235 239 546 236 240 529 230 234 547 237 241 529 230 234 546 236 240 540 238 242 554 239 243 541 240 244 555 241 245 541 240 244 554 239 243 550 242 246 549 243 247 564 244 248 563 245 249 564 244 248 549 243 247 553 246 250 571 247 251 554 239 243 572 248 252 554 239 243 571 247 251 562 249 253 580 250 254 563 245 249 581 251 255 563 245 249 580 250 254 575 252 256 574 253 257 589 254 258 588 255 259 589 254 258 574 253 257 568 256 260 567 257 261 598 258 262 597 259 263 598 258 262 567 257 261 605 260 264 588 255 259 610 261 265 587 262 266 610 261 265 588 255 259 585 263 267 612 264 268 586 265 269 611 266 270 586 265 269 612 264 268 592 267 271 591 268 272 622 269 273 623 270 274 622 269 273 591 268 272 632 271 275 626 272 276 631 273 277 625 274 278 631 273 277 626 272 276 618 275 279 619 276 280 641 277 281 640 278 282 641 277 281 619 276 280 633 279 283 648 280 284 634 281 285 649 282 286 634 281 285 648 280 284 657 283 287 658 0 0 643 284 288 644 285 289 643 284 288 658 0 0 654 286 290 653 287 291 667 288 292 666 289 293 667 288 292 653 287 291 679 290 294 680 291 295 674 292 296 675 293 297 674 292 296 680 291 295 679 290 294 684 294 298 680 291 295 685 1 1 680 291 295 684 294 298 688 295 299 689 296 300 666 289 293 667 288 292 666 289 293 689 296 300 300 138 141 298 139 142 694 297 301 693 298 302 694 297 301 298 139 142 703 299 303 293 133 136 702 300 304 292 301 305 702 300 304 293 133 136 696 302 306 695 303 307 711 304 308 710 305 309 711 304 308 695 303 307 734 306 310 733 307 311 720 308 312 719 309 313 720 308 312 733 307 311 741 310 314 727 311 315 742 312 316 728 313 317 742 312 316 727 311 315 754 314 318 755 315 319 751 316 320 752 317 321 751 316 320 755 318 319 766 319 322 765 320 323 748 321 324 747 322 325 748 321 324 765 320 323 752 317 321 772 323 326 749 324 327 771 325 328 749 324 327 772 323 326 775 326 329 761 327 330 776 328 331 764 329 332 776 328 331 761 327 330 779 330 333 780 331 334 734 306 310 733 307 311 734 306 310 780 331 334 738 332 335 784 333 336 737 334 337 783 335 338 737 334 337 784 333 336 742 312 316 788 336 339 741 310 314 787 337 340 741 310 314 788 336 339 791 338 341 745 339 342 792 340 343 746 341 344 792 340 343 745 339 342 812 342 345 811 343 346 809 344 347 810 345 348 809 344 347 811 343 346 798 346 349 802 347 350 824 348 351 825 349 352 824 348 351 802 347 350 823 350 353 809 344 347 822 351 354 808 352 355 822 351 354 809 344 347 821 353 356 819 354 357 831 355 358 820 356 359 831 355 358 819 354 357 846 357 360 850 358 361 847 359 362 851 360 363 847 359 362 850 358 361 854 361 364 855 362 365 868 363 366 867 364 367 868 363 366 855 362 365 873 365 368 866 366 369 872 367 370 865 368 371 872 367 370 866 366 369 870 369 372 878 370 373 857 371 374 879 372 375 857 371 374 878 370 373 886 373 376 888 374 377 893 375 378 894 376 379 893 375 378 888 374 377 897 377 380 898 378 381 910 379 382 912 380 383 910 379 382 898 378 381 894 376 379 918 381 384 898 378 381 919 382 385 898 378 381 918 381 384 837 383 386 839 384 387 927 385 388 926 386 389 927 385 388 839 384 387 929 387 390 928 388 391 922 389 392 880 390 393 922 389 392 928 391 391 915 392 394 907 393 395 934 394 396 932 395 397 934 394 396 907 393 395 941 396 398 909 397 399 940 398 400 933 399 401 940 398 400 909 397 399 895 400 402 943 401 403 899 402 404 944 403 405 899 402 404 943 401 403 945 404 406 870 405 372 946 406 407 857 407 374 946 406 407 870 405 372 960 408 408 961 409 409 954 410 410 955 411 411 954 410 410 961 409 409 980 412 412 979 413 413 962 414 414 957 415 415 962 414 414 979 413 413 991 416 416 949 417 417 992 418 418 948 419 419 992 418 418 949 417 417 963 420 420 964 421 421 1004 422 422 1003 423 423 1004 422 422 964 421 421 986 424 424 966 425 425 1009 426 426 1008 427 427 1009 426 426 966 425 425 1022 428 428 1017 429 429 1021 430 430 1016 431 431 1021 430 430 1017 429 429 1031 432 432 990 433 433 1032 434 434 997 435 435 1032 434 434 990 433 433 1023 436 436 1022 428 428 1041 437 437 1040 438 438 1041 437 437 1022 428 428 973 439 439 974 440 440 1056 441 441 1058 442 442 1056 441 441 974 440 440 1021 430 430 1064 443 443 1039 444 444 1065 445 445 1039 444 444 1064 443 443 1067 446 446 1044 447 447 1072 448 448 1069 449 449 1072 448 448 1044 450 447 1083 451 450 1030 452 451 1081 453 452 1028 454 453 1081 453 452 1030 452 451 1090 455 454 1089 456 455 1038 457 456 1036 458 457 1038 457 456 1089 456 455 1096 459 458 1097 460 459 1056 441 441 1057 461 460 1056 441 441 1097 460 459 1061 462 461 1057 461 460 1101 463 462 1097 460 459 1101 463 462 1057 461 460 1103 464 463 1104 465 464 1063 466 465 1064 443 443 1063 466 465 1104 465 464 1108 467 466 1067 468 446 1107 469 467 1072 448 448 1107 469 467 1067 468 446 1129 470 468 1130 471 469 1135 472 470 1136 473 471 1135 472 470 1130 471 469 1118 474 472 1144 475 473 1113 476 474 1143 477 475 1113 476 474 1144 475 473 1112 478 476 1138 479 477 1156 480 478 1155 481 479 1156 480 478 1138 479 477 1122 482 480 1165 483 481 1121 484 482 1163 485 483 1121 484 482 1165 483 481 1160 486 484 1161 487 485 1172 488 486 1173 489 487 1172 488 486 1161 487 485 1111 490 488 1114 491 489 1186 492 490 1185 493 491 1186 492 490 1114 491 489 1157 494 492 1192 495 493 1170 496 494 1194 497 495 1170 496 494 1192 495 493 1201 498 496 1208 499 497 1200 500 498 1207 501 499 1200 500 498 1208 499 497 1166 502 500 1221 503 501 1128 504 502 1217 505 503 1128 506 502 1221 503 501 1229 507 504 1205 508 505 1228 509 506 1207 501 499 1228 509 506 1205 508 505 1235 510 507 1234 511 508 1233 512 509 1206 513 510 1233 512 509 1234 511 508 1193 514 511 1189 515 512 1246 516 513 1242 517 514 1246 516 513 1189 515 512 1203 518 515 1233 512 509 1237 519 516 1252 520 517 1237 519 516 1233 512 509 1258 521 518 1256 522 519 1243 523 520 1241 524 521 1243 523 520 1256 522 519 1255 525 522 1240 526 523 1261 527 524 1246 516 513 1261 527 524 1240 526 523 1264 528 525 1265 529 526 1249 530 527 1250 531 528 1249 530 527 1265 529 526 1005 532 529 1270 533 530 961 409 409 1269 534 531 961 409 409 1270 533 530 1285 535 532 992 418 418 1282 536 533 948 419 419 1282 536 533 992 418 418 1288 537 534 1024 538 535 1289 539 536 1042 540 537 1289 539 536 1024 538 535 1147 541 538 972 542 539 1146 543 540 1272 544 541 1146 543 540 972 542 539 1179 545 542 1287 546 543 1184 547 544 1288 537 545 1184 547 544 1287 546 543 1165 483 481 1270 533 546 1126 548 547 1276 549 548 1126 548 547 1270 533 546 1295 550 549 987 551 550 1296 552 551 972 542 552 1296 552 551 987 551 550 1298 553 553 1301 554 554 1299 555 555 1302 556 556 1299 555 555 1301 554 554 1305 557 557 1304 558 558 1308 559 559 1307 560 560 1308 559 559 1304 558 558 1274 561 561 1311 562 562 988 563 563 1310 564 564 988 563 563 1311 562 562 1052 565 565 1051 566 566 1315 567 567 1314 568 568 1315 567 567 1051 566 566 1316 569 569 1293 570 570 1317 571 571 1237 572 572 1317 571 571 1293 570 570 1327 573 573 1328 574 574 1320 575 575 1321 576 576 1320 575 575 1328 574 574 1335 577 577 1333 578 578 1336 579 579 1334 580 580 1336 579 579 1333 578 578 1349 581 581 1350 582 582 1355 583 583 1356 584 584 1355 583 583 1350 582 582 1373 585 585 1374 586 586 1371 587 587 1372 588 588 1371 587 587 1374 586 586 1363 577 589 1365 589 590 1373 585 585 1375 590 591 1373 585 585 1365 589 590 1365 589 590 1381 591 592 1375 590 591 1386 592 593 1375 590 591 1381 591 592 1391 593 594 1392 594 595 1393 595 596 1394 596 597 1393 595 596 1392 594 595 1407 597 598 1406 598 599 1408 599 600 1405 600 601 1408 599 600 1406 598 599 1415 601 602 1420 602 603 1413 603 604 1419 604 605 1413 603 604 1420 602 603 1430 605 606 1432 605 607 1422 606 608 1428 607 609 1422 606 608 1432 605 607 1437 608 610 1440 609 611 1441 609 612 1442 610 613 1441 609 612 1440 609 611 1441 611 612 1450 612 614 1437 612 610 1449 613 615 1437 612 610 1450 612 614 1459 614 616 1460 615 617 1458 616 618 1457 617 619 1458 616 618 1460 615 617 1463 618 620 1468 619 621 1457 617 619 1466 620 622 1457 617 619 1468 619 621 1482 621 623 1481 622 624 1479 623 625 1478 624 626 1479 623 625 1481 622 624 1488 625 627 1498 626 628 1490 627 629 1501 628 630 1490 627 629 1498 626 628 1503 629 631 1505 630 632 1492 631 633 1494 632 634 1492 631 633 1505 630 632 1507 633 635 1505 634 636 1506 633 637 1506 633 637 1508 633 638 1507 633 635 1512 635 639 1514 636 640 1511 637 641 1513 638 642 1511 637 641 1514 636 640 1516 639 643 1518 640 644 1515 641 645 1517 642 646 1515 641 645 1518 640 644 1547 643 647 1548 644 648 1535 645 649 1534 646 650 1535 645 649 1548 644 648 1549 647 651 1551 629 652 1538 648 653 1540 631 654 1538 648 653 1551 629 652 1553 630 655 1555 649 656 1542 650 657 1544 651 658 1542 650 657 1555 649 656 1567 652 659 1568 653 660 1566 654 661 1565 655 662 1566 654 661 1568 653 660 1607 656 663 1622 657 664 1620 658 665 1621 659 666 1620 658 665 1622 657 664 1609 660 667 1624 661 668 1608 662 669 1623 663 670 1608 662 669 1624 661 668 1625 664 671 1626 665 672 1642 666 673 1641 667 674 1642 666 673 1626 665 672 1659 668 675 1647 669 676 1649 670 677 1648 671 678 1649 670 677 1647 669 676 1642 666 679 1647 669 680 1643 672 681 1646 673 682 1643 672 681 1647 669 680 1665 674 683 1666 675 684 1611 676 685 1612 677 686 1611 676 685 1666 675 684 1600 678 687 1599 679 688 1676 680 689 1677 681 690 1676 680 689 1599 679 688 1601 682 691 1602 683 692 1687 684 693 1685 685 694 1687 684 693 1602 683 692 1598 686 695 1690 687 696 1597 688 697 1691 689 698 1597 688 697 1690 687 696 1604 690 699 1695 691 700 1603 692 701 1686 693 702 1603 692 701 1695 691 700 1701 694 703 1702 695 704 1698 696 705 1700 697 706 1698 696 705 1702 695 704 1707 698 707 1705 699 708 1590 700 709 1589 701 710 1590 700 709 1705 699 708 1714 702 711 1669 703 712 1712 704 713 1668 705 714 1712 704 713 1669 703 712 1719 706 715 1697 707 716 1720 708 717 1699 709 718 1720 708 717 1697 707 716 1629 710 719 1638 711 720 1724 712 721 1726 713 722 1724 712 721 1638 711 720 1726 713 722 1638 711 720 1730 714 723 1651 715 724 1730 714 723 1638 711 720 1733 716 725 1674 717 726 1735 718 727 1603 692 701 1735 718 727 1674 717 726 1595 719 728 1738 720 729 1694 721 730 1741 722 731 1694 721 730 1738 720 729 1744 723 732 1712 704 713 1731 724 733 1668 705 714 1731 724 733 1712 704 713 175 725 734 174 81 735 1759 726 736 1758 727 737 1759 726 736 174 81 735 1768 728 738 1767 729 739 195 730 740 193 731 741 195 730 740 1767 729 739 1775 732 742 1776 733 743 1577 734 744 1578 735 745 1577 734 744 1776 733 743 1776 733 743 1779 736 746 1578 735 745 1579 737 747 1578 735 745 1779 736 746 1787 738 748 1792 739 749 1788 740 750 1793 741 751 1788 740 750 1792 739 749 1796 742 752 1766 743 753 236 744 754 182 745 755 236 744 754 1766 743 753 1673 746 756 1675 747 757 1802 748 758 1803 749 759 1802 748 758 1675 747 757 1807 750 760 1806 751 761 1679 752 762 1678 753 763 1679 752 762 1806 751 761 1811 754 764 1683 755 765 1812 756 766 1674 717 726 1812 756 766 1683 755 765 1809 757 767 1815 758 768 1682 759 769 1736 760 770 1682 759 769 1815 758 768 1817 761 771 1774 762 772 1583 763 773 1573 764 774 1583 765 773 1774 762 772 269 766 775 267 767 776 1828 768 777 1827 769 778 1828 768 777 267 767 776 1831 770 779 1832 771 780 1825 772 781 1824 773 782 1825 772 781 1832 771 780 1838 774 783 1760 775 784 1837 776 785 1759 726 736 1837 776 785 1760 775 784 1765 777 786 1764 778 787 1843 779 788 1842 780 789 1843 779 788 1764 778 787 1767 729 739 1846 781 790 1796 742 752 1847 782 791 1796 742 752 1846 781 790 1849 783 792 1862 784 793 1850 785 794 1863 786 795 1850 785 794 1862 784 793 317 787 796 306 788 797 1868 789 798 1859 790 799 1868 789 798 306 788 797 1878 791 800 1877 792 801 1868 789 798 1860 793 802 1868 789 798 1877 792 801 1867 794 803 1857 795 804 1883 796 805 1885 797 806 1883 796 805 1857 795 804 1887 798 807 1782 799 808 1892 800 809 1784 801 810 1892 800 809 1782 799 808 1900 802 811 1897 803 812 1901 804 813 1898 805 814 1901 804 813 1897 803 812 1770 806 815 1781 807 816 1908 808 817 1909 809 818 1908 808 817 1781 807 816 1908 808 817 1909 809 818 1916 810 819 1917 811 820 1916 810 819 1909 809 818 383 812 821 382 813 822 1928 814 823 1927 815 824 1928 814 823 382 813 822 1935 816 825 1936 817 826 1937 818 827 1938 819 828 1937 818 827 1936 817 826 1946 820 829 1945 821 830 1897 803 831 1894 822 832 1897 803 831 1945 821 830 1955 823 833 1954 824 834 1942 825 835 1941 826 836 1942 825 835 1954 824 834 1952 827 837 1962 828 838 1959 829 839 1964 830 840 1959 829 839 1962 828 838 1949 831 841 1971 832 842 1948 833 843 1953 834 844 1948 833 843 1971 832 842 1979 835 845 1974 836 846 1978 837 847 1973 838 848 1978 837 847 1974 836 846 1871 839 849 1886 840 850 1985 841 851 1982 842 852 1985 841 851 1886 840 850 1999 843 853 1930 844 854 1998 845 855 1882 846 856 1998 845 855 1930 844 854 1985 841 851 2005 847 857 1871 839 849 2004 848 858 1871 839 849 2005 847 857 1989 849 859 2010 850 860 1988 851 861 2011 852 862 1988 851 861 2010 850 860 2019 853 863 2014 854 864 2020 855 865 2010 856 860 2020 855 865 2014 854 864 1967 857 866 2020 855 865 1968 858 867 2021 859 868 1968 858 867 2020 855 865 2027 860 869 2026 861 870 2007 862 871 2000 863 872 2007 862 871 2026 861 870 2032 864 873 2028 865 874 2033 866 875 2029 867 876 2033 866 875 2028 865 874 2015 868 877 2039 869 878 2011 852 862 2035 870 879 2011 852 862 2039 869 878 2042 871 880 2046 872 881 2041 873 882 2045 874 883 2041 873 882 2046 872 881 514 875 884 2048 876 885 390 877 886 1933 878 887 390 877 886 2048 876 885 1918 879 888 1919 880 889 2055 881 890 2056 882 891 2055 881 890 1919 880 889 1924 883 892 1922 884 893 2062 885 894 2063 886 895 2062 885 894 1922 884 893 2055 881 890 2071 887 896 2054 888 897 2070 889 898 2054 888 897 2071 887 896 2061 890 899 2062 885 894 2077 891 900 2078 892 901 2077 891 900 2062 885 894 2073 893 902 543 894 903 2085 895 904 557 896 905 2085 895 904 543 894 903 2066 897 906 2067 898 907 2092 899 908 2093 900 909 2092 899 908 2067 898 907 2084 901 910 2085 895 904 2100 902 911 2101 903 912 2100 902 911 2085 895 904 2107 904 913 2091 905 914 2094 906 915 2092 899 908 2094 906 915 2091 905 914 2103 907 916 2115 908 917 2102 909 918 2114 910 919 2102 909 918 2115 908 917 2122 911 920 2123 912 921 602 913 922 603 914 923 602 913 922 2123 912 921 2112 915 924 2129 916 925 2111 917 926 2130 918 927 2111 917 926 2129 916 925 2121 919 928 2134 920 929 2120 921 930 2136 922 931 2120 921 930 2134 920 929 2108 923 932 2133 924 933 2135 925 934 2143 926 935 2135 925 934 2133 924 933 2145 927 936 628 928 937 2150 929 938 634 281 939 2150 929 938 628 928 937 2134 920 929 2146 930 940 2136 922 931 2157 931 941 2136 922 931 2146 930 940 2151 932 942 2165 933 943 635 934 944 651 935 945 635 934 944 2165 933 943 2161 936 946 2173 937 947 2160 938 948 2172 7 7 2160 938 948 2173 937 947 2168 939 949 2169 940 950 2179 11 11 2180 9 9 2179 11 11 2169 940 950 676 941 951 2186 942 952 681 943 953 2190 944 954 681 943 953 2186 942 952 2171 6 6 2193 8 8 2170 945 955 2189 946 956 2170 945 955 2193 8 8 2196 947 957 2178 948 958 2197 10 10 2179 11 11 2197 10 10 2178 948 958 1857 795 804 2203 949 959 1885 797 806 2202 950 960 1885 797 806 2203 949 959 1849 783 792 1850 785 794 2209 951 961 2198 952 962 2209 951 961 1850 785 794 2205 953 963 2218 954 964 2204 955 965 2217 956 966 2204 955 965 2218 954 964 2236 957 967 2224 958 968 2235 959 969 2223 960 970 2235 959 969 2224 958 968 2243 961 971 2244 962 972 2231 963 973 2232 964 974 2231 963 973 2244 962 972 2252 965 975 2250 966 976 2253 967 977 2251 968 978 2253 967 977 2250 966 976 2258 969 979 2259 970 980 2246 971 981 2247 972 982 2246 971 981 2259 970 980 2263 973 983 2264 974 984 2249 975 985 2251 968 978 2249 976 985 2264 974 984 2231 963 973 2268 977 986 2230 978 987 2267 979 988 2230 978 987 2268 977 986 2271 980 989 2235 959 969 2270 981 990 2234 982 991 2270 981 990 2235 959 969 2274 983 992 2275 984 993 2238 985 994 2239 986 995 2238 985 994 2275 984 993 2243 961 971 2242 987 996 2279 988 997 2278 989 998 2279 988 997 2242 987 996 2283 990 999 2287 991 1000 2284 992 1001 2286 993 1002 2284 992 1001 2287 991 1000 2309 994 1003 2308 995 1004 2284 992 1001 2285 996 1005 2284 992 1001 2308 995 1004 2305 997 1006 2317 998 1007 2306 999 1008 2319 1000 1009 2306 999 1008 2317 998 1007 2324 1001 1010 2295 1002 1011 2325 1003 1012 2294 1004 1013 2325 1003 1012 2295 1002 1011 2328 1005 1014 2327 1006 1015 2320 1007 1016 2303 1008 1017 2320 1007 1016 2327 1006 1015 2343 1009 1018 2347 1010 1019 2344 1011 1020 2348 1012 1021 2344 1011 1020 2347 1010 1019 2361 1013 1022 2346 1014 1023 2364 1015 1024 2356 1016 1025 2364 1015 1024 2346 1014 1023 2352 1017 1026 2371 1018 1027 2362 1019 1028 2370 1020 1029 2362 1019 1028 2371 1018 1027 2282 1021 1030 2379 1022 1031 2283 1021 999 2378 1023 1032 2283 990 999 2379 1024 1031 2331 1025 1033 2354 1026 1034 2381 1027 1035 2380 1028 1036 2381 1027 1035 2354 1026 1034 2330 1029 1037 2381 1027 1035 2333 1030 1038 2332 1031 1039 2333 1030 1038 2381 1027 1035 2305 997 1006 2306 1032 1008 2386 1033 1040 2386 1034 1040 2387 1035 1041 2305 997 1006 2299 1036 1042 2294 1004 1013 2393 1037 1043 2392 1038 1044 2393 1037 1043 2294 1004 1013 2397 1039 1045 2373 1040 1046 2341 1041 1047 2366 1042 1048 2341 1041 1047 2373 1043 1046 2414 1044 421 2415 1045 1049 2419 1046 1050 2420 1047 1051 2419 1046 1050 2415 1045 1049 2431 1048 1052 2432 1049 1053 2416 1050 425 2421 1051 1054 2416 1050 425 2432 1049 1053 2402 1052 1055 2444 1053 1056 2428 1054 1057 2445 1055 1058 2428 1054 1057 2444 1053 1056 2453 1056 423 2455 1057 529 2414 1044 421 2415 1045 1049 2414 1044 421 2455 1057 529 2448 1058 1059 2450 1059 1060 2461 1060 1061 2462 1061 1062 2461 1060 1061 2450 1059 1060 2469 1062 1063 2474 1063 535 2468 1064 1064 2473 1065 436 2468 1064 1064 2474 1063 535 2477 1066 1065 2409 1067 1066 2483 1068 1067 2454 1069 422 2483 1068 1067 2409 1067 1066 2490 1070 438 2497 1071 1068 2489 1072 444 2495 1073 1069 2489 1072 444 2497 1071 1068 2510 1074 1070 2509 1075 1071 2448 1058 1059 2446 1076 1072 2448 1058 1059 2509 1075 1071 2494 1077 447 2519 1078 449 2500 1079 1073 2518 1080 1074 2500 1079 1073 2519 1078 449 2524 1081 1075 2487 1082 1076 2496 1083 1077 2488 1084 456 2496 1083 1077 2487 1082 1076 2482 1085 434 2481 1086 432 2535 1087 1078 2534 1088 1079 2535 1087 1078 2481 1086 432 2541 1089 1080 2542 1090 1081 2496 1083 1077 2523 1091 1082 2496 1083 1077 2542 1090 1081 2548 1092 1083 2508 1093 442 2546 1094 458 2506 1095 441 2546 1094 458 2508 1093 442 2505 1096 1084 2545 1097 1085 2511 1098 461 2551 1099 462 2511 1098 461 2545 1097 1085 2555 1100 1086 2554 1101 464 2515 1102 445 2514 1103 443 2515 1102 445 2554 1101 464 2564 1104 489 2565 1105 1087 2561 1106 488 2560 1107 1088 2561 1106 488 2565 1105 1087 2567 1108 1089 2562 1109 476 2589 1110 1090 2588 1111 477 2589 1110 1090 2562 1109 476 2596 1112 540 2597 1113 538 2577 1114 1091 2582 1115 1092 2577 1114 1091 2597 1113 538 2606 1116 478 2608 1117 1093 2605 1118 479 2610 1119 484 2605 1118 479 2608 1117 1093 2616 1120 500 2569 1121 1094 2617 1122 1095 2590 1123 1096 2617 1122 1095 2569 1121 1094 2621 1124 1097 2626 1125 1098 2622 1126 486 2627 1127 1099 2622 1126 486 2626 1125 1098 2574 1128 1100 2639 1129 512 2579 1130 468 2638 1131 1101 2579 1130 468 2639 1129 512 2625 1132 1102 2630 1133 1103 2645 1134 1104 2646 1135 1105 2645 1134 1104 2630 1133 1103 2562 1109 476 2567 1108 1089 2664 1136 1106 2663 1137 1107 2664 1136 1106 2567 1108 1089 2672 1138 1108 2621 1124 1097 2670 1139 1109 2608 1117 1093 2670 1139 1109 2621 1124 1097 2658 1140 497 2657 1141 499 2680 1142 1110 2678 1143 506 2680 1142 1110 2657 1141 499 2688 1144 1111 2635 1145 491 2689 1146 1112 2636 1147 490 2689 1146 1112 2635 1145 491 2695 1148 1113 2642 1149 493 2697 1150 1114 2644 1151 495 2697 1150 1114 2642 1149 493 2704 1152 1115 2703 1153 1116 2689 1146 1112 2688 1144 1111 2689 1146 1112 2703 1153 1116 2694 1154 1117 2709 1155 1118 2689 1146 1112 2704 1152 1115 2689 1146 1112 2709 1155 1118 2710 1156 1119 2695 1148 1113 2712 1157 1120 2697 1150 1114 2712 1157 1120 2695 1148 1113 2715 1158 526 2700 1159 528 2716 1160 1121 2701 1161 1122 2716 1160 1121 2700 1159 528 2615 1162 481 2720 1163 546 2572 1164 480 2719 1165 1123 2572 1164 480 2720 1163 546 2443 1166 1124 2733 1167 1125 2452 1168 1126 2734 1169 1127 2452 1168 1126 2733 1167 1125 2741 1170 1128 2502 1171 1129 2742 1172 1130 2521 1173 1131 2742 1172 1130 2502 1171 1129 2593 1174 475 2603 1175 1132 2731 1176 1133 2733 1167 1134 2731 1176 1133 2603 1175 1132 2739 1177 1135 2652 1178 1136 2740 1179 1137 2659 1180 1138 2740 1179 1137 2652 1178 1136 2599 1181 1139 2723 1182 1140 2598 1183 1141 2724 1184 561 2598 1183 1141 2723 1182 1140 2597 1113 1142 2747 1185 1143 2582 1115 1144 2592 1186 1145 2582 1115 1144 2747 1185 1143 2640 1187 1146 2753 1188 1147 2585 1189 1148 2750 1190 1149 2585 1189 1148 2753 1188 1147 2756 1191 1150 2693 1192 1151 2759 1193 1152 2708 1194 1153 2759 1193 1152 2693 1192 1151 2598 1183 1141 2762 1195 1154 2584 1196 1155 2668 1197 1156 2584 1196 1155 2762 1195 1154 2741 1170 1157 2662 1198 1158 2766 1199 569 2767 1200 571 2766 1199 569 2662 1198 1158 2654 1201 1159 2677 1202 1160 2768 1203 1161 2718 1204 1162 2768 1203 1161 2677 1202 1160 2779 1205 1163 2773 1206 1164 2780 1207 1165 2775 1208 1166 2780 1207 1165 2773 1206 1164 2801 1209 1167 2802 1210 1168 2793 1211 1169 2794 580 1170 2793 1211 1169 2802 1210 1168 2789 1212 1171 2790 582 1172 2810 1213 1173 2809 584 1174 2810 1213 1173 2790 582 1172 2823 1214 585 2824 579 586 2825 1215 1175 2826 1216 1176 2825 1215 1175 2824 579 586 2819 1217 1177 2829 1209 1178 2811 1218 1179 2821 1211 587 2811 1218 1179 2829 1209 1178 2824 579 586 2822 580 588 2826 1216 1176 2835 1219 1180 2826 1216 1176 2822 580 588 2822 580 588 2830 1210 1181 2835 1219 1180 2834 1220 1182 2835 1219 1180 2830 1210 1181 2830 1210 1181 2828 1221 1183 2834 1220 1182 2850 1222 1184 2840 1223 1185 2847 1224 1186 2839 1225 1187 2847 1224 1186 2840 1223 1185 2843 1226 1188 2845 1227 1189 2844 1228 1190 2846 1229 1191 2844 1228 1190 2845 1227 1189 2857 1230 1192 2869 1231 1193 2859 1232 1194 2872 1233 1195 2859 1232 1194 2869 1231 1193 2874 1234 1196 2876 1235 1197 2861 1236 1198 2863 1237 1199 2861 1236 1198 2876 1235 1197 2892 1238 1200 2891 1239 1201 2882 1240 1202 2879 1241 1203 2882 1240 1202 2891 1239 1201 2892 1242 1204 2895 1243 1205 2893 1244 1206 2896 1245 1207 2893 1244 1206 2895 1243 1205 2897 1246 1208 2899 1247 1209 2898 1248 1210 2900 1249 1211 2898 1248 1210 2899 1247 1209 2915 1250 1212 2918 1251 1213 2903 1251 1214 2904 1252 1215 2903 1251 1214 2918 1251 1213 2920 1253 1216 2922 1254 1217 2907 1255 1218 2909 1256 1219 2907 1255 1218 2922 1254 1217 2914 1257 1220 2913 1258 1221 2925 1258 1222 2926 1259 1223 2925 1258 1222 2913 1258 1221 2958 1260 1224 2957 1261 1225 2974 1262 1226 2973 1263 1227 2974 1262 1226 2957 1261 1225 2959 1264 1228 2960 1265 1229 2961 1266 1230 2962 1267 1231 2961 1266 1230 2960 1265 1229 2954 1268 1232 2956 1269 1233 2953 1270 1234 2955 1271 1235 2953 1270 1234 2956 1269 1233 2927 1272 1236 2938 1273 1237 2929 1274 1238 2940 1275 1239 2929 1274 1238 2938 1273 1237 2942 1276 1240 2944 1277 1241 2931 1278 1242 2933 1279 1243 2931 1278 1242 2944 1277 1241 51 1280 1244 52 13 1245 36 30 31 37 12 30 36 30 31 52 13 1245 53 15 15 68 1281 1246 54 16 16 67 17 17 54 16 16 68 1281 1246 85 1282 1247 87 1283 1248 84 20 20 86 21 21 84 20 20 87 1284 1248 71 24 24 72 26 26 70 1285 1249 73 22 22 70 1285 1249 72 26 26 92 1286 1250 91 28 1251 38 14 14 37 12 12 38 14 14 91 28 1251 103 1287 1252 27 1288 1253 102 34 35 28 33 34 102 34 35 27 1288 1253 111 1289 1254 45 1290 1255 107 1291 1256 23 1292 1257 107 1291 1256 45 1290 1255 116 41 42 117 42 43 15 1293 1258 14 1294 1259 15 1293 1258 117 42 43 120 44 46 122 45 47 21 1295 1260 20 54 1261 21 1295 1260 122 45 47 14 1294 1259 13 1296 1262 128 1297 1263 125 1298 1264 128 1297 1263 13 1296 1262 133 52 54 131 53 55 92 1286 1250 91 28 1251 92 1286 1250 131 53 55 140 56 58 138 57 59 141 1299 1265 139 78 80 141 1299 1265 138 57 59 46 1300 1266 146 1301 1267 12 1302 1268 124 1303 1269 12 1302 1268 146 1301 1267 48 1304 1270 148 64 66 61 1305 1271 152 65 67 61 1305 1271 148 64 66 156 68 70 157 69 71 87 1306 1272 77 1307 1273 87 1306 1272 157 69 71 159 71 73 149 72 74 99 1308 1274 47 1309 1275 99 1308 1274 149 72 74 112 1310 1276 18 1311 1277 166 74 76 167 75 77 166 74 76 18 1311 1277 136 1312 1278 137 1313 1279 170 76 78 171 77 79 170 76 78 137 1313 1279 173 79 81 159 71 73 147 1314 1280 99 1308 1274 147 1314 1280 159 71 73 204 1315 1281 182 745 1282 200 1316 1283 179 1317 1284 200 1316 1283 182 745 1282 188 1318 1285 213 1319 1286 187 1320 1287 214 1321 1288 187 1320 1287 213 1319 1286 217 1322 1289 191 1323 1290 214 1321 1288 187 1320 1287 214 1321 1288 191 1323 1290 230 110 113 231 1324 1291 9 1325 1292 8 1326 1293 9 1327 1292 231 1324 1291 205 128 131 193 731 1294 234 1328 1295 236 744 1296 234 1328 1295 193 731 1294 238 96 98 229 93 95 207 1329 1297 239 99 101 207 1329 1297 229 93 95 4 1330 1298 3 1331 1299 244 100 102 245 101 103 244 100 102 3 1331 1299 10 1332 1300 9 1333 1301 249 106 109 250 105 108 249 106 109 9 1333 1301 161 1334 1302 253 107 110 8 1335 1303 251 109 112 8 1335 1303 253 107 110 225 112 115 258 113 116 221 1336 1304 259 1337 1305 221 1336 1304 258 113 116 267 767 1306 268 118 121 265 117 120 266 116 119 265 117 120 268 118 121 279 120 123 283 1338 1307 266 116 119 199 114 117 266 116 119 283 1338 1307 282 1339 1308 185 1340 1309 281 122 125 184 1341 1310 281 122 125 185 1340 1309 189 1342 1311 286 125 128 190 1343 1312 287 1344 1313 190 1343 1312 286 125 128 192 1345 1314 290 129 132 235 1346 1315 291 1347 1316 235 1346 1315 290 129 132 310 134 137 311 1348 1317 275 1349 1318 264 1350 1319 275 1349 1318 311 1348 1317 307 1351 1320 305 1352 1321 317 787 1322 316 1353 1323 317 787 1322 305 1352 1321 323 1354 1324 325 1355 1325 318 140 143 326 141 144 318 140 143 325 1355 1325 334 147 150 314 136 139 336 1356 1326 300 138 141 336 1356 1326 314 136 139 340 150 153 342 151 154 338 1357 1327 343 1358 1328 338 1357 1327 342 151 154 350 1359 1329 240 1360 1330 347 155 158 224 1361 1331 347 155 158 240 1360 1330 208 1362 1332 353 1363 1333 359 1364 1334 356 160 163 359 1364 1334 353 1363 1333 367 161 164 368 226 230 356 160 163 359 1364 1334 356 160 163 368 226 230 378 1365 1335 380 1366 1336 379 1367 1337 381 1368 1338 379 1367 1337 380 1366 1336 393 1369 1339 396 1370 1340 394 168 171 397 1371 1341 394 168 171 396 1370 1340 402 1372 1342 405 1373 1343 341 149 1344 345 1374 1345 341 149 1344 405 1373 1343 414 181 186 401 1375 1346 411 177 182 400 1376 1347 411 177 182 401 1375 1346 422 1377 1348 423 1378 1349 412 173 178 413 174 179 412 173 178 423 1379 1349 431 1380 1350 413 174 179 430 1381 1351 423 1382 1349 430 1381 1351 413 174 179 398 1383 1352 378 1365 1335 439 1384 1353 438 185 190 439 1384 1353 378 1365 1335 410 179 184 443 187 192 420 178 183 444 1385 1354 420 178 183 443 187 192 458 1386 1355 457 189 194 332 1387 1356 330 191 196 332 1387 1356 457 189 194 457 189 194 464 194 199 455 190 195 462 193 198 455 190 195 464 194 199 444 1385 1354 447 1388 1357 468 1389 201 469 197 202 468 1390 201 447 1388 1357 478 203 207 479 207 211 451 201 205 474 1391 1358 451 201 205 479 207 211 426 206 210 427 1392 1359 479 207 211 480 1393 1360 479 207 211 427 1392 1359 487 1394 1361 460 1395 1362 486 209 213 389 211 215 486 209 213 460 1395 1362 495 1396 1363 490 1397 1364 494 1398 1365 489 1399 1366 494 1398 1365 490 1397 1364 503 1400 1367 498 1401 1368 502 216 1369 497 214 1370 502 216 1369 498 1401 1368 506 1402 1371 505 218 222 511 1403 1372 510 220 224 511 1403 1372 505 218 222 513 223 227 518 222 226 473 1404 1373 452 1405 1374 473 1404 1373 518 222 226 369 228 232 521 229 233 370 1406 1375 522 1407 1376 370 1406 1375 521 229 233 531 1408 1377 377 165 168 530 231 235 432 182 187 530 231 235 377 165 168 520 227 231 538 234 238 521 229 233 539 1409 1378 521 229 233 538 234 238 548 1410 1379 530 231 235 547 237 241 529 230 234 547 237 241 530 231 235 541 240 244 555 241 245 542 1411 1380 556 1412 1381 542 1411 1380 555 241 245 564 244 248 565 1413 1382 550 242 246 535 1414 1383 550 242 246 565 1413 1382 554 239 243 572 248 252 555 241 245 573 1415 1384 555 241 245 572 248 252 564 244 248 563 245 249 582 1416 1385 581 251 255 582 1416 1385 563 245 249 577 1417 1386 576 1418 1387 591 268 272 590 1419 1388 591 268 272 576 1418 1387 583 1420 1389 569 1421 1390 598 258 262 568 256 260 598 258 262 569 1421 1390 600 1422 1391 605 260 264 607 1423 1392 610 261 265 607 1423 1392 605 260 264 615 1424 1393 616 1425 1394 598 258 262 583 1420 1389 598 258 262 616 1425 1394 591 268 272 590 1419 1388 623 270 274 624 1426 1395 623 270 274 590 1419 1388 626 272 276 632 271 275 627 1427 1396 633 279 283 627 1427 1396 632 271 275 617 1428 1397 618 275 279 642 1429 1398 641 277 281 642 1429 1398 618 275 279 642 1429 1398 641 277 281 643 284 288 650 1430 1399 643 284 288 641 277 281 645 1431 1400 644 285 289 659 2 2 658 0 0 659 2 2 644 285 289 655 1432 1401 654 286 290 668 4 4 667 288 292 668 4 4 654 286 290 670 1433 1402 675 293 297 657 283 287 680 291 295 657 283 287 675 293 297 660 1434 1403 659 2 2 684 294 298 685 1 1 684 294 298 659 2 2 673 1435 1404 674 292 296 688 295 299 689 296 300 688 295 299 674 292 296 300 138 141 694 297 301 336 1356 1326 695 303 307 336 1356 1326 694 297 301 704 1436 1405 294 135 138 703 299 303 293 133 136 703 299 303 294 135 138 697 1437 1406 696 302 306 712 1438 1407 711 304 308 712 1438 1407 696 302 306 735 1439 1408 734 306 310 721 1440 1409 720 308 312 721 1440 1409 734 306 310 729 1441 1410 743 1442 1411 728 313 317 742 312 316 728 313 317 743 1442 1411 757 1443 1412 754 314 318 756 1444 1413 753 1445 1414 756 1444 1413 754 314 318 766 319 322 767 1446 1415 720 308 312 721 1440 1409 720 308 312 767 1446 1415 724 1447 1416 772 1448 326 725 1449 1417 773 1450 1418 725 1449 1417 772 1448 326 764 329 332 770 1451 1419 776 328 331 777 1452 1420 776 328 331 770 1451 1419 705 1453 1421 718 1454 1422 781 1455 1423 779 330 333 781 1455 1423 718 1454 1422 709 1456 1424 708 1457 1425 785 1458 1426 784 333 336 785 1458 1426 708 1457 1425 788 336 339 789 1459 1427 712 1438 1407 713 1460 1428 712 1438 1407 789 1459 1427 795 1461 1429 794 1462 1430 796 1463 1431 793 1464 1432 796 1463 1431 794 1462 1430 811 343 346 812 342 345 813 1465 1433 814 1466 1434 813 1465 1433 812 342 345 825 349 352 802 347 350 826 1467 1435 804 1468 1436 826 1469 1435 802 347 350 812 342 345 809 344 347 824 1470 1437 823 350 353 824 1470 1437 809 344 347 833 1471 1438 832 1472 1439 834 1473 1440 835 1474 1441 834 1473 1440 832 1472 1439 847 359 362 851 360 363 848 1475 1442 852 1476 1443 848 1475 1442 851 360 363 850 358 361 868 363 366 851 360 363 867 364 367 851 360 363 868 363 366 863 1477 1444 873 365 368 862 1478 1445 872 367 370 862 1478 1445 873 365 368 856 1479 1446 879 372 375 869 1480 1447 878 370 373 869 1480 1447 879 372 375 892 1481 1448 893 375 378 896 1482 1449 897 377 380 896 1482 1449 893 375 378 908 1483 1450 914 1484 1451 900 1485 1452 911 1486 1453 900 1485 1452 914 1484 1451 913 1487 1454 903 1488 1455 920 1489 1456 921 1490 1457 920 1489 1456 903 1491 1455 837 383 386 927 385 388 833 1471 1438 928 1492 1458 833 1471 1438 927 385 388 931 1493 1459 882 1494 1460 930 1495 1461 905 1496 1462 930 1495 1461 882 1494 1460 931 1493 1459 881 1497 1463 880 1498 393 922 389 392 880 1498 393 881 1497 1463 935 1499 1464 879 1500 375 856 1501 1446 856 1502 1446 936 1503 1465 935 1499 1464 899 402 404 944 403 405 913 1504 1454 945 404 1466 913 1505 1454 944 403 405 947 1506 1467 923 1507 1468 845 1508 1469 874 1509 1470 845 1508 1469 923 1510 1468 964 421 421 963 420 420 969 1511 1050 968 1512 1471 969 1511 1050 963 420 420 982 1513 1053 973 439 439 981 1514 1052 967 1515 1472 981 1514 1052 973 439 439 952 1516 1055 994 1517 1056 983 1518 1473 993 1519 1124 983 1518 1473 994 1517 1056 960 408 408 959 1520 1066 1003 423 423 1004 422 422 1003 423 423 959 1520 1066 1008 427 427 962 414 414 1009 426 426 985 1521 1474 1009 426 426 962 414 414 1017 429 429 1022 428 428 1018 1522 1064 1023 436 436 1018 1522 1064 1022 428 428 1004 422 422 1033 1523 1067 963 420 420 1029 1524 1475 963 420 420 1033 1523 1067 1024 538 535 1023 436 436 1042 540 537 1041 437 437 1042 540 537 1023 436 436 996 1525 1072 951 1526 1476 1059 1527 1071 1054 1528 1477 1059 1527 1071 951 1526 1476 1066 1529 1478 1045 1530 1069 1065 445 445 1039 444 444 1065 445 445 1045 1530 1069 1072 448 448 1069 449 449 1066 1529 1478 1045 1530 1069 1066 1529 1478 1069 449 449 1031 432 432 1084 1531 1079 1026 1532 1479 1079 1533 1480 1026 1532 1479 1084 1531 1079 1046 1534 1077 1091 1535 1080 1038 457 456 1090 455 454 1038 457 456 1091 1535 1080 1082 1536 1481 1097 460 459 1081 453 452 1096 459 458 1081 453 452 1097 460 459 1101 463 462 1097 460 459 1086 1537 1482 1082 1536 1481 1086 1537 1482 1097 460 459 1088 1538 1483 1089 456 455 1103 464 463 1104 465 464 1103 464 463 1089 456 455 1077 1539 1484 1108 467 466 1092 1540 1081 1107 469 467 1092 1540 1081 1108 467 466 1131 1541 1485 1137 1542 1486 1130 471 469 1136 473 471 1130 471 469 1137 1542 1486 1123 1543 1487 1145 1544 1488 1118 474 472 1144 475 473 1118 474 472 1145 1544 1488 1159 1545 1489 1151 1546 1490 1150 1547 1491 1150 1547 1491 1157 494 492 1159 1545 1489 1128 1548 502 1141 1549 1492 1166 1550 500 1167 1551 1095 1166 1552 500 1141 1549 1492 1161 487 485 1162 1553 1493 1173 489 487 1174 1554 1494 1173 489 487 1162 1553 1493 1185 493 491 1114 491 489 1187 1555 1495 1120 1556 1496 1187 1555 1495 1114 491 489 1170 496 494 1194 497 495 1175 1557 1102 1195 1558 1104 1175 1557 1102 1194 497 495 1202 1559 1136 1209 1560 1138 1201 498 496 1208 499 497 1201 498 496 1209 1560 1138 1119 1561 1094 1215 1562 1497 1166 1552 500 1221 503 501 1166 502 500 1215 1562 1497 1230 1563 1110 1211 1564 1498 1228 509 506 1210 1565 1499 1228 509 506 1211 1564 1498 1236 1566 1500 1235 510 507 1203 1567 515 1233 512 509 1203 1567 515 1235 510 507 1187 1555 1495 1193 514 511 1240 526 523 1246 516 513 1240 526 523 1193 514 511 1214 1568 1106 1254 1569 1115 1213 1570 1107 1253 1571 1116 1213 1570 1107 1254 1569 1115 1259 1572 1118 1254 1569 1115 1219 1573 1501 1214 1568 1106 1219 1573 1501 1254 1569 1115 1260 1574 1119 1220 1575 1109 1262 1576 1120 1222 1577 1108 1262 1576 1120 1220 1575 1109 1266 1578 1121 1265 529 526 1226 1579 1502 1225 1580 1503 1226 1579 1502 1265 529 526 1271 1581 1504 1269 534 1123 1116 1582 1505 1122 482 480 1116 1582 1505 1269 534 1123 983 1518 1473 993 1519 1124 1281 1583 1506 1283 1584 1125 1281 1583 1506 993 1519 1124 1289 539 536 1042 540 537 1290 1585 1507 1049 1586 1508 1290 1585 1507 1042 540 537 1285 535 1509 1282 536 1510 1152 1587 1511 1109 1588 1512 1152 1587 1511 1282 536 1510 1288 537 545 1289 539 1135 1184 547 544 1202 1559 1136 1184 547 544 1289 539 1135 989 1589 1513 1273 1590 1140 988 563 563 1274 561 561 988 563 563 1273 1590 1140 972 542 552 1147 541 1142 1296 552 551 1297 1591 1143 1296 552 551 1147 541 1142 1300 1592 1149 1299 555 555 1303 1593 1147 1302 556 556 1303 1593 1147 1299 555 555 1305 557 557 1308 559 559 1306 1594 1150 1309 1595 1152 1306 1594 1150 1308 559 559 1274 561 561 1148 1596 1141 1311 562 562 1312 1597 1154 1311 562 562 1148 1596 1141 1315 567 567 1316 569 569 1052 565 565 1291 1598 1157 1052 565 565 1316 569 569 1237 572 572 1268 1599 1514 1317 571 571 1318 1600 1515 1317 571 571 1268 1599 1514 1328 574 574 1329 1601 1163 1321 576 576 1323 1602 1164 1321 576 576 1329 1601 1163 1335 577 577 1336 579 579 1337 589 1516 1338 1216 1517 1337 589 1516 1336 579 579 1347 590 1518 1358 592 1519 1348 1603 1520 1357 1604 1521 1348 1603 1520 1358 592 1519 1369 1605 1177 1370 1210 1522 1361 578 1179 1362 580 1523 1361 578 1179 1370 1210 1522 1367 1606 1524 1369 1605 1177 1377 581 1525 1379 1607 1178 1377 581 1525 1369 1605 1177 1377 581 1525 1383 583 1526 1367 1606 1524 1388 1608 1527 1367 1606 1524 1383 583 1526 1399 1609 1528 1402 1610 1529 1398 1611 1530 1401 1612 1531 1398 1611 1530 1402 1610 1529 1411 1613 1532 1410 1614 1533 1412 1615 1534 1409 1616 1535 1412 1615 1534 1410 1614 1533 1415 1617 602 1409 1616 1535 1420 1618 603 1418 1619 1536 1420 1618 603 1409 1616 1535 1428 1620 609 1432 1621 607 1425 1622 1537 1431 1623 1538 1425 1622 1537 1432 1621 607 1444 1624 1539 1443 1625 1540 1438 1626 1541 1439 1627 1542 1438 1626 1541 1443 1625 1540 1445 1628 1543 1437 1629 1544 1451 1630 1545 1449 1631 1546 1451 1630 1545 1437 1629 1544 1461 1628 1547 1462 1632 1548 1453 1629 1549 1454 1633 1550 1453 1629 1549 1462 1632 1548 1465 1634 1551 1466 1635 1552 1467 1635 1553 1468 1636 621 1467 1635 1553 1466 1635 1552 1476 1637 1554 1474 1638 1555 1483 1639 1556 1481 1640 624 1483 1639 1556 1474 1638 1555 1487 645 1557 1489 1641 1558 1499 643 1559 1502 1642 1560 1499 643 1559 1489 1641 1558 1504 1643 1561 1491 1644 1562 1506 1645 637 1493 1646 1563 1506 1645 637 1491 1644 1562 1522 1647 1564 1512 1648 1565 1521 1649 1566 1509 1650 1567 1521 1649 1566 1512 1648 1565 1522 1651 1568 1523 1652 1569 1525 1653 1570 1526 1654 1571 1525 1653 1570 1523 1652 1569 1527 1655 1572 1528 1656 1573 1529 1657 1574 1530 633 1575 1529 1657 1574 1528 1656 1573 1545 1658 1576 1533 1659 1577 1548 1659 648 1534 1660 1578 1548 1659 648 1533 1659 1577 1550 1661 1579 1537 1662 1580 1552 1663 1581 1539 1664 1582 1552 1663 1581 1537 1662 1580 1544 1665 1583 1555 1666 1584 1543 1666 1585 1556 1667 1586 1543 1666 1585 1555 1666 1584 1566 1668 661 1560 1669 1587 1569 1670 1588 1562 1671 1589 1569 1670 1588 1560 1669 1587 1616 1672 1590 1606 1673 1591 1631 1674 1592 1632 1675 1593 1631 1674 1592 1606 1673 1591 1608 662 669 1623 663 670 1607 656 663 1622 657 664 1607 656 663 1623 663 670 1625 664 1594 1642 666 679 1624 1676 668 1643 672 681 1624 1677 668 1642 666 679 1649 670 677 1650 1678 1595 1659 668 675 1660 1679 1596 1659 668 675 1650 1678 1595 1642 666 673 1641 667 674 1648 671 678 1642 666 673 1648 671 678 1647 669 676 1613 1680 1597 1612 677 686 1667 1681 1598 1666 675 684 1667 1681 1598 1612 677 686 1677 681 1599 1599 679 1600 1678 753 763 1598 686 695 1678 753 763 1599 679 1600 1687 684 693 1685 685 694 1590 700 709 1591 1682 1601 1590 700 709 1685 685 694 1690 687 696 1587 1683 1602 1691 689 698 1586 1684 1603 1691 689 698 1587 1683 1602 1695 691 700 1593 1685 1604 1686 693 702 1592 1686 1605 1686 693 702 1593 1685 1604 1702 695 704 1663 1687 1606 1700 697 706 1661 1688 1607 1700 697 706 1663 1687 1606 1708 1689 1608 1706 1690 1609 1707 698 707 1705 699 708 1707 698 707 1706 1690 1609 1594 1691 1610 1715 1692 1611 1593 1685 1612 1713 1693 1613 1593 1685 1612 1715 1692 1611 1720 708 717 1699 709 718 1672 1694 1614 1662 1695 1615 1672 1694 1614 1699 709 718 1726 713 722 1639 1696 1616 1724 712 721 1628 1697 1617 1724 712 721 1639 1696 1616 1639 1696 1616 1726 713 722 1650 1678 1595 1730 714 723 1650 1678 1595 1726 713 722 1673 746 756 1733 716 725 1602 683 692 1735 718 727 1602 683 692 1733 716 725 1738 720 729 1618 1698 1618 1741 722 731 1696 1699 1619 1741 722 731 1618 1698 1618 1710 1700 1620 1744 723 732 1667 1681 1598 1731 724 733 1667 1681 1598 1744 723 732 176 1701 1621 175 725 734 1760 775 784 1759 726 736 1760 775 784 175 725 734 1748 1702 1622 1747 1703 1623 1771 1704 1624 1772 1705 1625 1771 1704 1624 1747 1703 1623 1753 1706 1626 1752 1707 1627 1777 1708 1628 1775 732 742 1777 1708 1628 1752 1707 1627 1781 1709 1629 1780 1710 1630 1757 1711 1631 1756 1712 1632 1757 1711 1631 1780 1710 1630 1734 1713 1633 1794 1714 1634 1581 1715 1635 1793 741 751 1581 1716 1635 1794 1714 1634 1756 1712 1632 1780 1710 1630 1797 1717 1636 1798 1718 1637 1797 1717 1636 1780 1710 1630 1579 1719 1638 1580 1720 1639 1803 749 759 1802 748 758 1803 749 759 1580 1721 1639 1576 1722 1640 1806 751 761 1575 1723 1641 1807 750 760 1575 1723 1641 1806 751 761 1582 1724 1642 1811 754 764 1581 1725 1643 1812 756 766 1581 1726 1643 1811 754 764 1573 764 1644 1737 1727 1645 1809 757 767 1815 758 768 1809 757 767 1737 1727 1645 1750 1728 1646 1774 762 772 1821 1729 1647 1817 761 771 1821 1729 1647 1774 762 772 1829 1730 1648 271 1731 1649 1828 768 777 269 766 775 1828 768 777 271 1731 1649 1823 1732 1650 1824 773 782 1833 1733 1651 1832 771 780 1833 1733 1651 1824 773 782 1839 1734 1652 1838 774 783 1750 1728 1646 1749 1735 1653 1750 1728 1646 1838 774 783 1754 1736 1654 1747 1703 1623 1843 779 788 1836 1737 1655 1843 779 788 1747 1703 1623 1755 1738 1656 1844 1739 1657 1797 1717 1636 1847 782 791 1797 1717 1636 1844 1739 1657 1825 1740 1658 1852 1741 1659 1863 786 795 1864 1742 1660 1863 786 795 1852 1741 1659 1825 1740 1658 1820 1743 1661 1852 1741 1659 1869 1744 1662 1852 1741 1659 1820 1743 1661 1859 790 799 1879 1745 1663 1868 789 798 1878 791 800 1868 789 798 1879 1745 1663 1872 1746 1664 1886 840 1665 1856 1747 1666 1884 1748 1667 1856 1747 1666 1886 840 1665 1892 800 809 1784 801 810 1893 1749 1668 1785 1750 1669 1893 1749 1668 1784 801 810 1899 1751 1670 1901 804 813 1896 1752 1671 1898 805 814 1896 1752 1671 1901 804 813 1781 807 816 1757 1753 1672 1909 809 818 1910 1754 1673 1909 809 818 1757 1753 1672 1909 809 818 1910 1754 1673 1917 811 820 1918 879 888 1917 811 820 1910 1754 1673 384 1755 1674 333 1756 1675 1929 1757 1676 1881 1758 1677 1929 1757 1676 333 1756 1675 1937 818 827 1927 815 824 396 1370 1678 382 813 822 396 1370 1678 1927 815 824 1897 803 831 1900 802 1679 1946 820 829 1947 1759 1680 1946 820 829 1900 802 1679 1942 825 835 1945 821 830 1955 823 833 1956 1760 1681 1955 823 833 1945 821 830 1959 829 839 1964 830 840 1958 1761 1682 1965 1762 1683 1958 1761 1682 1964 830 840 1924 883 892 1972 1763 1684 1923 1764 1685 1973 838 1686 1923 1764 1685 1972 1763 1684 1936 817 826 1980 1765 1687 1938 819 828 1979 835 1688 1938 819 828 1980 1765 1687 1983 1766 1689 1986 1767 1690 1982 842 852 1985 841 851 1982 842 852 1986 1767 1690 1932 1768 1691 1930 844 854 2000 863 1692 1999 843 853 2000 863 1692 1930 844 854 2005 847 857 1998 845 1693 2004 848 858 1997 1769 1694 2004 848 858 1998 845 1693 2012 1770 1695 1993 1771 1696 2013 1772 1697 1992 1773 1698 2013 1772 1697 1993 1771 1696 1989 1774 859 2021 859 868 2010 856 860 2020 855 865 2010 856 860 2021 859 868 1968 858 867 2021 859 868 1969 1775 1699 2022 1776 1700 1969 1775 1699 2021 859 868 1987 1777 1701 2009 1778 1702 2007 862 871 2027 860 869 2007 862 871 2009 1778 1702 2030 1779 1703 2034 1780 1704 2029 867 876 2033 866 875 2029 867 876 2034 1780 1704 2036 1781 1705 2040 1782 1706 499 1783 1707 504 219 1708 499 1783 1707 2040 1782 1706 2047 1784 1709 2046 872 1710 2043 1785 1711 2042 871 1712 2043 1785 1711 2046 872 1710 1934 1786 1713 1933 878 887 2049 1787 1714 2048 876 885 2049 1787 1714 1933 878 887 1919 880 889 1920 1788 1715 2056 882 891 2057 1789 1716 2056 882 891 1920 1788 1715 2064 1790 1717 2063 886 895 1913 1791 1718 1922 884 893 1913 1791 1718 2063 886 895 2056 882 891 2072 1792 1719 2055 881 890 2071 887 896 2055 881 890 2072 1792 1719 2079 1793 1720 2078 892 901 2063 886 895 2062 885 894 2063 886 895 2078 892 901 2074 1794 1721 2086 1795 1722 544 1796 1723 558 1797 1724 544 1796 1723 2086 1795 1722 2080 1798 1725 2093 900 909 2068 1799 1726 2067 898 907 2068 1799 1726 2093 900 909 2101 903 912 2085 895 904 575 252 1727 557 896 905 575 252 1727 2085 895 904 2108 923 932 2096 1800 1728 2109 1801 1729 2097 1802 1730 2109 1801 1729 2096 1800 1728 2115 908 917 2103 907 916 2116 1803 1731 2104 1804 1732 2116 1803 1731 2103 907 916 2124 1805 1733 2122 911 920 604 1806 1734 602 913 922 604 1806 1734 2122 911 920 2127 1807 1735 2132 1808 1736 2126 1809 1737 2131 1810 1738 2126 1809 1737 2132 1808 1736 2120 921 930 2136 922 931 2119 1811 1739 2137 1812 1740 2119 1811 1739 2136 922 931 2133 924 933 2128 1813 1741 2143 926 935 2144 1814 1742 2143 926 935 2128 1813 1741 2142 1815 1743 2151 932 942 624 1426 1744 635 934 944 624 1426 1744 2151 932 942 2146 930 940 2159 1816 1745 2157 931 941 2158 1817 1746 2157 931 941 2159 1816 1745 2152 1818 1747 2166 1819 1748 2151 932 942 2165 933 943 2151 932 942 2166 1819 1748 2161 936 946 2162 1820 1749 2173 937 947 2174 1821 1750 2173 937 947 2162 1820 1749 2169 940 950 2164 1822 1751 2180 9 9 2181 1823 1752 2180 9 9 2164 1822 1751 2175 1824 1753 663 1825 1754 2190 944 954 681 943 953 2190 944 954 663 1825 1754 2184 1826 1755 2196 947 957 2185 1827 1756 2197 10 10 2185 1827 1756 2196 947 957 2003 1828 1757 2204 955 965 1857 795 804 2203 949 959 1857 795 804 2204 955 965 2210 1829 1758 2209 951 961 2211 1830 1759 2198 952 962 2211 1831 1759 2209 951 961 2206 1832 1760 2219 1833 1761 2205 953 963 2218 954 964 2205 953 963 2219 1833 1761 2237 1834 1762 2225 1835 1763 2236 1836 967 2224 958 968 2236 957 967 2225 1837 1763 2245 1838 1764 2233 1839 1765 2244 962 972 2232 964 974 2244 962 972 2233 1839 1765 2254 1840 1766 759 1841 1767 2252 965 975 756 1444 1768 2252 965 975 759 1841 1767 762 1842 1769 2256 1843 1770 768 1844 1771 2260 1845 1772 768 1844 1771 2256 1843 1770 2227 1846 1773 2228 1847 1774 2264 974 984 2265 1848 1775 2264 974 984 2228 1847 1774 2231 963 973 2232 964 974 2268 977 986 2261 1849 1776 2268 977 986 2232 964 974 2271 980 989 2210 1829 1758 2272 1850 1777 2211 1830 1759 2272 1850 1777 2210 1829 1758 2215 1851 1778 2276 1852 1779 2214 1853 1780 2275 984 993 2214 1853 1780 2276 1852 1779 2219 1833 1761 2280 1854 1781 2218 954 964 2279 988 997 2218 954 964 2280 1854 1781 2287 991 1000 2289 1855 1782 2286 993 1002 2288 1856 1783 2286 993 1002 2289 1855 1782 2284 992 1001 2286 993 1002 2309 994 1003 2310 1857 1784 2309 994 1003 2286 993 1002 2301 1858 1785 2302 1859 1786 2317 998 1007 2319 1000 1009 2317 998 1007 2302 1859 1786 2293 1860 1787 2324 1001 1010 2292 1861 1788 2325 1003 1012 2292 1861 1788 2324 1001 1010 2302 1859 1786 2327 1006 1015 2319 1000 1009 2328 1005 1014 2319 1000 1009 2327 1006 1015 2342 1862 1789 2334 1863 1790 2355 1864 1791 2332 1031 1039 2355 1864 1791 2334 1863 1790 2366 1042 1048 2367 1865 1792 2341 1041 1047 2340 1866 1793 2341 1041 1047 2367 1865 1792 2370 1020 1029 2363 1867 1794 2369 1868 1795 2349 1869 1796 2369 1868 1795 2363 1867 1794 2366 1042 1048 2373 1043 1046 2339 1870 1797 2374 1871 1798 2339 1870 1797 2373 1043 1046 2380 1028 1036 2382 1872 1799 2355 1864 1791 2356 1016 1025 2355 1864 1791 2382 1872 1799 2386 1873 1800 2385 1874 1801 2352 1017 1026 2371 1018 1027 2352 1017 1026 2385 1874 1801 2305 997 1006 2387 1035 1041 2304 1875 1802 2388 1876 1803 2304 1875 1802 2387 1035 1041 2393 1037 1043 2394 1877 1804 2299 1036 1042 2303 1878 1017 2299 1036 1042 2394 1877 1804 2340 1866 1793 2392 1038 1805 2341 1041 1047 2397 1879 1045 2341 1041 1047 2392 1038 1805 2418 1880 1471 2419 1046 1050 2425 1881 1806 2426 1882 1807 2425 1881 1806 2419 1046 1050 2407 1883 415 2434 1884 1808 2402 1052 1055 2433 1885 1473 2402 1052 1055 2434 1884 1808 2401 1886 1476 2428 1054 1057 2446 1076 1072 2445 1055 1058 2446 1076 1072 2428 1054 1057 2411 1887 409 2455 1057 529 2410 1888 408 2453 1056 423 2410 1888 408 2455 1057 529 2450 1059 1060 2451 1889 1809 2462 1061 1062 2463 1890 1810 2462 1061 1062 2451 1889 1809 2400 1891 1811 2403 1892 1812 2476 1893 1479 2475 1894 1813 2476 1893 1479 2403 1892 1812 2447 1895 435 2482 1085 434 2460 1896 1814 2484 1897 1815 2460 1896 1814 2482 1085 434 2491 1898 437 2498 1899 1816 2490 1070 438 2497 1071 1068 2490 1070 438 2498 1899 1816 2507 1900 460 2417 1901 1472 2511 1098 461 2456 1902 1817 2511 1098 461 2417 1901 1472 2519 1078 449 2495 1073 1069 2518 1080 1074 2497 1071 1068 2518 1080 1074 2495 1073 1069 2525 1903 1818 2524 1081 1075 2523 1091 1082 2496 1083 1077 2523 1091 1082 2524 1081 1075 2483 1068 1067 2479 1904 1475 2536 1905 1482 2532 1906 1481 2536 1905 1482 2479 1904 1475 2493 1907 1819 2523 1091 1082 2527 1908 1484 2542 1090 1081 2527 1908 1484 2523 1091 1082 2548 1092 1083 2546 1094 458 2533 1909 450 2531 1910 452 2533 1909 450 2546 1094 458 2545 1097 1085 2530 1911 1820 2551 1099 462 2536 1905 1482 2551 1099 462 2530 1911 1820 2540 1912 454 2539 1913 455 2555 1100 1086 2554 1101 464 2555 1100 1086 2539 1913 455 2560 1107 1088 2565 1105 1087 2559 1914 1512 2566 1915 1505 2559 1914 1512 2565 1105 1087 2589 1110 1090 2588 1111 477 2568 1916 472 2563 1917 474 2568 1916 472 2588 1111 477 2598 1183 1141 2584 1196 1155 2599 1181 1139 2583 1918 1821 2599 1181 1139 2584 1196 1155 2604 1919 1822 2605 1118 479 2611 1920 485 2610 1119 484 2611 1920 485 2605 1118 479 2591 1921 1492 2617 1122 1095 2577 1114 1091 2618 1922 1823 2577 1114 1091 2617 1122 1095 2622 1126 486 2627 1127 1099 2623 1923 487 2628 1924 1824 2623 1923 487 2627 1127 1099 2638 1131 1101 2640 1187 1825 2579 1130 468 2585 1189 470 2579 1130 468 2640 1187 1825 2630 1133 1103 2647 1925 1826 2646 1135 1105 2648 1926 1827 2646 1135 1105 2647 1925 1826 2567 1108 1089 2569 1121 1094 2663 1137 1107 2665 1927 1497 2663 1137 1107 2569 1121 1094 2672 1138 1108 2673 1928 1828 2621 1124 1097 2626 1125 1098 2621 1124 1097 2673 1928 1828 2681 1929 1829 2680 1142 1110 2662 1198 1830 2661 1930 1498 2662 1198 1830 2680 1142 1110 2637 1931 1495 2635 1145 491 2690 1932 523 2688 1144 1111 2690 1932 523 2635 1145 491 2697 1150 1114 2644 1151 495 2698 1933 1831 2645 1134 1104 2698 1933 1831 2644 1151 495 2663 1137 1107 2665 1927 1497 2703 1153 1116 2705 1934 522 2703 1153 1116 2665 1927 1497 2710 1156 1119 2670 1139 1109 2709 1155 1118 2669 1935 1501 2709 1155 1118 2670 1139 1109 2712 1157 1120 2713 1936 1832 2672 1138 1108 2673 1928 1828 2672 1138 1108 2713 1936 1832 2717 1937 1833 2682 1938 1834 2716 1160 1121 2676 1939 1502 2716 1160 1121 2682 1938 1834 2415 1045 1049 2726 1940 1835 2420 1047 1051 2727 1941 1836 2420 1047 1051 2726 1940 1835 2459 1942 426 2436 1943 424 2729 1944 1837 2722 1945 1838 2729 1944 1837 2436 1943 424 2740 1179 1507 2742 1172 1130 2499 1946 1508 2521 1173 1131 2499 1946 1508 2742 1172 1130 2603 1175 1132 2612 1947 1493 2733 1167 1134 2734 1169 1839 2733 1167 1134 2612 1947 1493 2742 1172 1840 2681 1929 1829 2741 1170 1841 2662 1198 1830 2741 1170 1841 2681 1929 1829 2745 1948 549 2432 1949 1842 2439 1950 1513 2423 1951 1843 2439 1950 1513 2432 1952 1842 2425 1881 1844 2426 1882 1845 2748 1953 553 2427 1954 1846 2748 1953 553 2426 1882 1845 2751 1955 554 2754 1956 558 2480 1957 1847 2533 1909 1848 2480 1957 1847 2754 1956 558 2757 1958 560 2760 1959 564 2548 1092 1849 2508 1093 1850 2548 1092 1849 2760 1959 564 2744 1960 1851 2526 1961 1852 2763 1962 1853 2493 1963 1819 2763 1962 1853 2526 1961 1852 2662 1198 1158 2661 1930 1854 2767 1200 571 2768 1203 1515 2767 1200 571 2661 1930 1854 2442 1964 418 2769 1965 1855 2735 1966 532 2770 1967 1856 2735 1966 532 2769 1965 1855 2602 1968 1511 2777 1969 573 2781 1970 1857 2602 1968 1511 2781 1970 1857 2601 1971 1490 2791 1217 1858 2792 1972 1859 2789 1212 1171 2790 582 1172 2789 1212 1171 2792 1972 1859 2783 1218 578 2793 1211 1169 2785 1973 577 2795 1214 1860 2785 1973 577 2793 1211 1169 2792 1972 1859 2784 588 580 2790 582 1172 2809 584 1174 2790 582 1172 2784 588 580 2784 588 580 2786 586 579 2809 584 1174 2804 1604 1861 2809 584 1174 2786 586 579 2786 586 579 2788 1603 1517 2804 1604 1861 2829 1209 1178 2827 1974 1862 2830 1210 1181 2828 1221 1183 2830 1210 1181 2827 1974 1862 2815 1975 1863 2831 1976 1864 2816 1603 1865 2832 1604 1866 2816 1603 1865 2831 1976 1864 2842 1977 1867 2839 1978 1868 2841 1979 1869 2840 1980 1870 2841 1979 1869 2839 1978 1868 2852 1981 1871 2851 1982 1872 2854 1983 1873 2853 1984 1874 2854 1983 1873 2851 1982 1872 2858 1985 1875 2857 1986 1192 2860 1987 1876 2859 1988 1194 2860 1987 1876 2857 1986 1192 2862 1989 1877 2861 1990 1198 2864 1991 1878 2863 1992 1199 2864 1991 1878 2861 1990 1198 2893 1993 1206 2881 1994 1879 2894 1995 1880 2880 1996 1881 2894 1995 1880 2881 1994 1879 2895 1997 1882 2884 1998 1883 2897 1999 1884 2886 2000 1885 2897 1999 1884 2884 1998 1883 2899 2001 1886 2888 2002 1887 2901 2003 1888 2890 2004 1889 2901 2003 1888 2888 2002 1887 2905 2005 1890 2906 1985 1891 2904 2006 1892 2903 2007 1893 2904 2006 1892 2906 1985 1891 2908 2008 1894 2907 2009 1218 2910 2010 1895 2909 2011 1219 2910 2010 1895 2907 2009 1218 2924 1235 1896 2926 2012 1223 2911 2013 1897 2913 2014 1221 2911 2013 1897 2926 2012 1223 2948 2015 1898 2957 2016 1899 2950 2017 1900 2959 2018 1901 2950 2017 1900 2957 2016 1899 2961 2019 1902 2963 2020 1903 2952 2021 1904 2954 2022 1905 2952 2021 1904 2963 2020 1903 2965 633 1906 2963 2023 1907 2964 633 1908 2964 633 1908 2966 633 1909 2965 633 1906 2928 2024 1910 2927 2025 1236 2930 2026 1911 2929 2027 1238 2930 2026 1911 2927 2025 1236 2932 2028 1912 2931 2029 1242 2934 2030 1913 2933 2031 1243 2934 2030 1913 2931 2029 1242 38 14 14 53 15 15 39 2032 1914 54 16 16 39 2032 1914 53 15 15 57 2033 1915 56 2034 1916 64 2035 1917 65 2036 1918 64 2035 1917 56 2034 1916 85 1282 1247 84 20 20 82 2037 1919 83 27 27 82 2037 1919 84 20 20 60 25 25 61 1305 1271 83 2038 27 82 2037 1919 83 2038 27 61 1305 1271 90 29 29 88 48 50 36 30 31 35 2039 1920 36 30 31 88 48 50 99 1308 1274 47 1309 1275 89 49 51 34 2040 1921 89 49 51 47 1309 1275 31 37 45 32 43 44 110 35 106 108 104 107 110 35 106 32 43 44 115 2041 1922 116 41 1923 16 2042 1924 15 1293 1925 16 2042 1924 116 41 1923 121 2043 1926 120 2044 46 21 2045 1260 121 2043 1926 21 2045 1260 11 2046 1927 125 1298 1264 124 1303 1269 127 46 48 126 47 49 127 46 48 124 1303 1269 16 2042 1924 15 1293 1925 132 50 52 130 51 53 132 50 52 15 1293 1925 94 2047 1928 137 1313 1279 93 2048 1929 135 2049 1930 93 2048 1929 137 1313 1279 145 59 61 144 2050 1931 143 61 63 142 2051 1932 143 61 63 144 2050 1931 40 2052 1933 55 18 18 150 2053 1934 151 2054 1935 150 2053 1934 55 18 18 154 2055 1936 156 68 1937 85 1282 1247 87 1284 1248 85 1282 1247 156 68 1937 94 2047 1928 40 2052 1933 158 2056 1938 150 2053 1934 158 2056 1938 40 2052 1933 29 31 32 112 1310 1276 162 2057 1939 166 74 76 162 2057 1939 112 1310 1276 18 1311 1277 136 1312 1278 167 75 77 170 76 78 167 75 77 136 1312 1278 172 2058 1940 173 79 81 146 1301 1267 147 1314 1280 146 1301 1267 173 79 81 180 2059 1941 181 80 82 202 124 127 203 82 84 202 124 127 181 80 82 185 1340 1309 186 2060 1942 211 85 87 212 87 89 211 85 87 186 2060 1942 183 2061 1943 210 90 92 190 1343 1312 216 91 93 190 1343 1312 210 90 92 228 95 97 227 2062 1944 223 94 96 222 2063 1945 223 94 96 227 2062 1944 6 2064 1946 7 2065 1947 238 96 98 233 97 99 238 96 98 7 2065 1947 208 2066 1948 207 1329 1297 240 98 100 239 99 101 240 98 100 207 1329 1297 4 1330 1949 244 100 1950 5 2067 1951 243 2068 1952 5 2067 1951 244 100 1950 248 2069 1953 0 86 1954 10 2070 1300 10 2071 1300 249 2072 109 248 2069 1953 7 2065 1955 241 2073 1956 161 1334 1302 253 107 110 161 1334 1302 241 2073 1956 9 2074 1292 255 2075 1957 230 110 113 257 111 114 230 110 113 255 2075 1957 264 2076 1958 259 1337 1305 263 2077 1959 258 113 116 263 2077 1959 259 1337 1305 270 2078 1960 277 2079 1961 268 118 121 278 119 122 268 118 121 277 2079 1961 281 122 125 184 1341 1310 280 121 124 183 2061 1943 280 121 124 184 1341 1310 286 125 128 189 1342 1311 285 127 130 188 1318 1285 285 127 130 189 1342 1311 290 129 132 192 1345 1314 289 131 134 194 2080 1962 289 131 134 192 1345 1314 275 1349 1318 274 2081 1963 310 134 137 309 132 135 310 134 137 274 2081 1963 301 2082 1964 299 2083 1965 314 136 139 313 137 140 314 136 139 299 2083 1965 322 2084 1966 324 2085 1967 323 1354 1324 325 1355 1325 323 1354 1324 324 2085 1967 335 145 148 301 2082 1964 334 147 150 314 136 139 334 147 150 301 2082 1964 325 1355 1325 340 150 153 326 141 144 338 1357 1327 326 141 144 340 150 153 349 153 156 346 152 155 348 2086 1968 345 1374 1969 348 2086 1968 346 152 155 357 158 161 356 160 163 355 156 159 353 1363 1333 355 156 159 356 160 163 358 159 162 365 2087 1970 357 158 161 366 162 165 357 158 161 365 2087 1970 358 159 162 374 2088 167 365 2087 1970 375 163 166 365 2087 1970 374 2088 167 390 877 1971 393 1369 1339 391 167 170 394 168 171 391 167 170 393 1369 1339 402 1372 1342 341 149 1344 401 1375 1346 339 148 1972 401 1375 1346 341 149 1344 411 177 182 400 1376 1347 410 179 184 399 2089 193 410 179 184 400 1376 1347 404 171 176 403 172 177 412 173 178 419 2090 1973 412 173 178 403 172 177 428 2091 1974 415 2092 1975 429 180 185 414 181 186 429 180 185 415 2092 1975 378 1365 1335 379 1367 1337 438 185 190 437 184 189 438 185 190 379 1367 1337 399 188 193 322 2084 1976 442 186 191 337 2093 1977 442 186 191 322 2084 1976 329 2094 1978 328 2095 1979 456 2096 1980 454 2097 1981 456 2096 1980 328 2095 1979 463 2098 1982 456 2096 1980 461 2099 1983 454 2097 1981 461 2099 1983 456 2096 1980 467 2100 1984 466 2101 1985 460 1395 1986 459 2102 1987 460 1395 1986 466 2101 1985 472 202 206 453 2103 1988 477 204 208 476 2104 1989 477 204 208 453 2103 1988 424 2105 1990 425 205 209 477 204 208 478 203 207 477 204 208 425 205 209 485 208 212 388 210 214 484 2106 1991 387 2107 1992 484 2106 1991 388 210 214 493 213 217 488 212 216 492 2108 1993 487 1394 1994 492 2108 1993 488 212 216 496 215 219 495 1396 1363 501 217 221 500 2109 1995 501 217 221 495 1396 1363 450 2110 1996 475 2111 1997 508 2112 1998 503 1400 1367 508 2112 1998 475 2111 1997 517 224 1999 512 225 2000 516 2113 2001 511 1403 1372 516 2113 2001 512 225 2000 367 161 164 519 232 236 368 226 230 520 227 231 368 226 230 519 232 236 529 230 234 437 184 189 528 235 239 379 1367 1337 528 235 239 437 184 189 534 2114 2002 536 2115 2003 519 232 236 537 233 237 519 232 236 536 2115 2003 527 2116 2004 545 2117 2005 528 235 239 546 236 240 528 235 239 545 2117 2005 539 1409 1378 553 246 250 540 238 242 554 239 243 540 238 242 553 246 250 562 249 253 563 245 249 548 1410 1379 549 243 247 548 1410 1379 563 245 249 552 2118 2006 570 2119 2007 553 246 250 571 247 251 553 246 250 570 2119 2007 580 250 254 562 249 253 579 2120 2008 561 2121 2009 579 2120 2008 562 249 253 573 1415 1384 587 262 266 574 253 257 588 255 259 574 253 257 587 262 266 596 2122 2010 597 259 263 582 1416 1385 567 257 261 582 1416 1385 597 259 263 601 2123 2011 599 2124 2012 609 2125 2013 608 2126 2014 609 2125 2013 599 2124 2012 607 1423 1392 610 261 265 612 264 268 611 266 270 612 264 268 610 261 265 593 2127 2015 592 267 271 621 2128 2016 622 269 273 621 2128 2016 592 267 271 616 1425 1394 630 2129 2017 625 274 278 631 273 277 625 274 278 630 2129 2017 619 276 280 620 2130 2018 640 278 282 639 2131 2019 640 278 282 620 2130 2018 632 271 275 647 2132 2020 633 279 283 648 280 284 633 279 283 647 2132 2020 641 277 281 640 278 282 650 1430 1399 656 2133 2021 650 1430 1399 640 278 282 653 287 291 652 2134 2022 666 289 293 665 2135 2023 666 289 293 652 2134 2022 678 2136 2024 679 290 294 673 1435 1404 674 292 296 673 1435 1404 679 290 294 661 2137 2025 660 1434 1403 683 2138 2026 684 294 298 683 2138 2026 660 1434 1403 672 2139 2027 673 1435 1404 687 2140 2028 688 295 299 687 2140 2028 673 1435 1404 298 139 142 296 2141 2029 693 298 302 692 2142 2030 693 298 302 296 2141 2029 306 788 2031 304 2143 2032 701 2144 2033 700 2145 2034 701 2144 2033 304 2143 2032 709 1456 1424 710 305 309 694 297 301 695 303 307 694 297 301 710 305 309 704 1436 1405 703 299 303 705 1453 1421 718 1454 1422 705 1453 1421 703 299 303 740 2146 2035 726 2147 2036 741 310 314 727 311 315 741 310 314 726 2147 2036 750 2148 2037 753 1445 1414 751 316 320 754 314 318 751 316 320 753 1445 1414 765 320 323 766 319 322 719 309 313 720 308 312 719 309 313 766 319 322 723 2149 2038 771 325 328 724 2150 1416 772 323 326 724 2151 1416 771 325 328 727 311 315 775 326 329 728 313 317 776 328 331 728 313 317 775 326 329 718 1454 1422 717 2152 2039 779 330 333 780 331 334 779 330 333 717 2152 2039 708 1457 1425 707 2153 2040 784 333 336 783 335 338 784 333 336 707 2153 2040 787 337 340 788 336 339 711 304 308 712 1438 1407 711 304 308 788 336 339 715 2154 2041 791 338 341 716 2155 2042 792 340 343 716 2155 2042 791 338 341 807 2156 2043 808 352 355 810 345 348 809 344 347 810 345 348 808 352 355 798 346 349 824 348 351 795 1461 1429 823 2157 2044 795 1461 1429 824 348 351 822 351 354 808 352 355 821 353 356 819 354 357 821 353 356 808 352 355 831 355 358 820 356 359 830 2158 2045 807 2156 2043 830 2158 2045 820 356 359 840 2159 2046 847 359 362 842 2160 2047 848 1475 1442 842 2160 2047 847 359 362 858 2161 2048 863 1477 1444 859 2162 2049 862 1478 1445 859 2162 2049 863 1477 1444 862 1478 1445 872 367 370 861 2163 2050 871 2164 2051 861 2163 2050 872 367 370 848 1475 1442 852 1476 1443 876 2165 2052 877 2166 2053 876 2165 2052 852 1476 1443 893 375 378 892 1481 1448 886 373 376 884 2167 2054 886 373 376 892 1481 1448 901 2168 2055 910 379 382 902 2169 2056 912 380 383 902 2170 2056 910 379 382 918 381 384 895 400 402 919 382 385 899 402 404 919 382 385 895 400 402 839 384 387 841 2171 2057 926 386 389 925 2172 2058 926 386 389 841 2171 2057 927 385 2059 883 2173 2060 928 391 391 880 1498 393 928 391 391 883 2174 2060 914 1484 1451 934 394 396 906 2175 2061 932 395 397 906 2175 2061 934 394 396 940 398 400 933 399 401 939 2176 2062 908 1483 1450 939 2177 2062 933 399 401 943 401 403 895 400 402 942 2178 2063 890 2179 2064 942 2178 2063 895 400 402 913 1505 1454 945 404 1466 903 2180 1455 946 406 2065 903 2181 1455 945 404 1466 959 1520 1066 960 408 408 953 2182 1812 954 410 410 953 2182 1812 960 408 408 958 2183 2066 956 2184 2067 980 412 412 979 413 413 980 412 412 956 2184 2067 950 2185 1811 949 417 417 990 433 433 991 416 416 990 433 433 949 417 417 994 1517 1056 1001 2186 1809 993 1519 1124 1002 2187 1126 993 1519 1124 1001 2186 1809 1007 2188 2068 980 412 412 1008 427 427 962 414 414 1008 427 427 980 412 412 1013 2189 1810 1018 1522 1064 1014 2190 2069 1019 2191 1063 1014 2190 2069 1018 1522 1064 990 433 433 1031 432 432 950 2185 1811 1026 1532 1479 950 2185 1811 1031 432 432 1039 444 444 1040 438 438 1021 430 430 1022 428 428 1021 430 430 1040 438 438 973 439 439 1056 441 441 967 2192 1472 1057 461 460 967 2192 1472 1056 441 441 1063 466 465 1064 443 443 1016 431 431 1021 430 430 1016 431 431 1064 443 443 1049 1586 1508 1048 2193 1816 1071 2194 1131 1070 2195 2070 1071 2194 1131 1048 2193 1816 1029 1524 1475 1082 1536 1481 1028 454 453 1081 453 452 1028 454 453 1082 1536 1481 1088 1538 1483 1035 2196 2071 1089 456 455 1036 458 457 1089 456 455 1035 2196 2071 1093 2197 2072 1095 2198 1085 1078 2199 2073 1080 2200 1820 1078 2199 2073 1095 2198 1085 1085 2201 1078 1100 2202 2074 1084 1531 1079 1099 2203 2075 1084 1531 1079 1100 2202 2074 1087 2204 2076 1088 1538 1483 1102 2205 2077 1103 464 463 1102 2205 2077 1088 1538 1483 1092 1540 1081 1107 469 467 1091 1535 1080 1106 2206 2078 1091 1535 1080 1107 469 467 1125 2207 2079 1126 548 547 1130 471 469 1131 1541 1485 1130 471 469 1126 548 547 1141 1549 1492 1142 2208 2080 1127 2209 1091 1132 2210 1092 1127 2209 1091 1142 2208 2080 1113 476 474 1154 2211 1822 1138 479 477 1155 481 479 1138 479 477 1154 2211 1822 1163 485 483 1165 483 481 1125 2207 2079 1126 548 547 1125 2207 2079 1165 483 481 1158 2212 1093 1160 486 484 1171 2213 1097 1172 488 486 1171 2213 1097 1160 486 484 1179 545 542 1184 547 544 1178 2214 1824 1183 2215 2081 1178 2214 1824 1184 547 544 1187 1555 1495 1120 1556 1496 1193 514 511 1164 2216 2082 1193 514 511 1120 1556 1496 1200 500 498 1207 501 499 1199 2217 2083 1205 508 505 1199 2217 2083 1207 501 499 1220 1575 1109 1219 1573 1501 1158 2212 1093 1156 480 478 1158 2212 1093 1219 1573 1501 1204 2218 1159 1229 507 504 1210 1565 1499 1228 509 506 1210 1565 1499 1229 507 504 1197 2219 1826 1198 2220 1827 1234 511 508 1206 513 510 1234 511 508 1198 2220 1827 1192 495 493 1191 2221 2084 1245 2222 1113 1244 2223 1117 1245 2222 1113 1191 2221 2084 1251 2224 1122 1252 520 517 1206 513 510 1233 512 509 1206 513 510 1252 520 517 1258 521 518 1218 2225 2085 1256 522 519 1216 2226 2086 1256 522 519 1218 2225 2085 1261 527 524 1221 503 501 1255 525 522 1215 1562 1497 1255 525 522 1221 503 501 1224 2227 2087 1225 1580 1503 1264 528 525 1265 529 526 1264 528 525 1225 1580 1503 1271 1581 2088 955 411 411 1269 534 531 961 409 409 1269 534 531 955 411 411 987 551 2089 986 424 424 972 542 2090 1272 544 1838 972 542 2090 986 424 424 1019 2191 1063 1024 538 535 1287 546 2091 1288 537 534 1287 546 2091 1024 538 535 1280 2228 2092 1144 475 473 1278 2229 2093 1145 1544 1488 1278 2229 2093 1144 475 473 1174 1554 1494 1286 2230 2094 1179 545 542 1287 546 543 1179 545 542 1286 2230 2094 1282 536 1510 1271 1581 1504 1109 1588 1512 1116 1582 1505 1109 1588 1512 1271 1581 1504 987 551 550 1295 550 549 971 2231 2095 982 2232 1842 971 2231 2095 1295 550 549 1030 452 1847 1301 554 554 975 2233 1844 1298 553 553 975 2233 1844 1301 554 554 1304 558 558 1083 451 1848 1307 560 560 1098 2234 1849 1307 560 560 1083 451 1848 988 563 563 1310 564 564 974 440 2096 1058 442 1850 974 440 2096 1310 564 564 1051 566 566 1050 2235 2097 1314 568 568 1044 2236 2098 1314 568 568 1050 2235 2097 1293 570 570 1316 569 569 1077 2237 2099 1315 567 567 1077 2237 2099 1316 569 569 1152 1587 1511 1327 573 573 1285 535 1509 1320 575 575 1285 535 1509 1327 573 573 1351 1607 1167 1352 1972 1168 1349 581 581 1350 582 582 1349 581 581 1352 1972 1168 1337 589 1516 1338 1216 1517 1353 591 2100 1354 1219 1861 1353 591 2100 1338 1216 1517 1369 1605 1177 1367 1606 2101 1370 1210 1522 1368 1221 2102 1370 1210 1522 1367 1606 2101 1361 578 1179 1363 577 589 1371 587 587 1373 585 585 1371 587 587 1363 577 589 1364 579 2103 1362 580 1523 1366 1216 1865 1382 1219 1866 1366 1216 1865 1362 580 1523 1362 580 1523 1370 1210 1522 1382 1219 1866 1387 1220 2104 1382 1219 1866 1370 1210 1522 1370 1210 1522 1368 1221 2102 1387 1220 2104 1401 2238 1531 1394 2239 597 1398 2240 1530 1392 2241 595 1398 2240 1530 1394 2239 597 1412 2242 1534 1406 2243 2105 1411 2244 1532 1407 2245 2106 1411 2244 1532 1406 2243 2105 1413 2246 2107 1419 2247 2108 1405 600 601 1417 2248 2109 1405 600 601 1419 2247 2108 1422 2249 2110 1421 2250 2111 1430 2251 2112 1429 2252 2113 1430 2251 2112 1421 2250 2111 1433 2253 2114 1434 2254 2115 1435 2254 2116 1436 2255 2117 1435 2254 2116 1434 2254 2115 1448 2256 2118 1446 2257 2119 1447 2258 2120 1445 2259 2121 1447 2258 2120 1446 2257 2119 1455 2260 2122 1456 2261 2123 1454 1633 1550 1453 1629 1549 1454 1633 1550 1456 2261 2123 1463 2258 620 1461 2259 2124 1468 2262 621 1467 2263 1553 1468 2262 621 1461 2259 2124 1473 2264 2125 1471 2265 2126 1474 2266 1555 1472 2267 2127 1474 2266 1555 1471 2265 2126 1499 2268 1559 1498 2269 2128 1500 2270 2129 1497 2271 2130 1500 2270 2129 1498 2269 2128 1501 2272 2131 1502 2273 1560 1503 2274 2132 1504 2275 1561 1503 2274 2132 1502 2273 1560 1494 2276 2133 1496 2277 2134 1493 2278 1563 1495 1271 2135 1493 2278 1563 1496 2277 2134 1511 2279 641 1513 2280 642 1523 2281 1569 1526 2282 1571 1523 2281 1569 1513 2280 642 1528 2283 1573 1515 2284 645 1530 2285 1575 1517 2286 646 1530 2285 1575 1515 2284 645 1546 2287 2136 1536 2288 2137 1545 2289 2138 1533 2290 2139 1545 2289 2138 1536 2288 2137 1546 2291 2140 1547 2292 647 1549 2293 2141 1550 2294 1579 1549 2293 2141 1547 2292 647 1551 2295 2142 1552 2296 1581 1553 634 2143 1554 633 2144 1553 634 2143 1552 2296 1581 1559 2297 2145 1560 2298 1587 1558 2299 2146 1557 2300 2147 1558 2299 2146 1560 2298 1587 1569 2301 1588 1571 2302 2148 1570 2303 2149 1572 2304 2150 1570 2303 2149 1571 2302 2148 1624 1676 668 1609 660 667 1625 664 1594 1610 2305 2151 1625 664 1594 1609 660 667 1626 665 672 1627 2306 2152 1641 667 674 1640 2307 2153 1641 667 674 1627 2306 2152 1658 2308 2154 1657 2309 2155 1660 1679 2156 1659 668 2157 1660 1679 2156 1657 2309 2155 1644 2310 2158 1643 2311 681 1645 2312 2159 1646 673 682 1645 2312 2159 1643 672 681 1665 674 683 1611 676 685 1664 2313 2160 1610 2305 2161 1664 2313 2160 1611 676 685 1676 680 689 1675 747 757 1600 678 687 1601 682 691 1600 678 687 1675 747 757 1684 2314 2162 1680 2315 2163 1618 1698 1618 1596 2316 2164 1618 1698 1618 1680 2315 2163 1689 2317 2165 1588 2318 2166 1690 687 696 1587 1683 1602 1690 687 696 1588 2318 2166 1693 2319 2167 1594 1691 1610 1695 691 2168 1593 1685 1612 1695 691 2168 1594 1691 1610 1587 1683 1602 1701 694 703 1586 1684 1603 1698 696 705 1586 1684 1603 1701 694 703 1706 1690 1609 1665 674 683 1704 2320 2169 1664 2313 2160 1704 2320 2169 1665 674 683 1713 1693 2170 1714 702 711 1711 2321 2171 1712 704 713 1711 2321 2171 1714 702 711 1619 2322 2172 1585 2323 2173 1719 706 715 1697 707 716 1719 706 715 1585 2323 2173 1621 659 666 1634 2324 2174 1721 2325 2175 1725 2326 2176 1721 2325 2175 1634 2324 2174 1729 2327 2177 1660 1679 1596 1730 714 723 1650 1678 1595 1730 714 723 1660 1679 1596 1620 658 665 1722 2328 2178 1672 1694 1614 1732 2329 2179 1672 1694 1614 1722 2328 2178 1685 685 694 1739 2330 2180 1591 1682 1601 1740 2331 2181 1591 1682 1601 1739 2330 2180 1709 2332 2182 1743 2333 2183 1710 1700 1620 1744 723 732 1710 1700 1620 1743 2333 2183 1746 2334 2184 1720 708 717 1732 2329 2179 1672 1694 1614 1732 2329 2179 1720 708 717 1766 743 753 1762 2335 2185 182 745 755 179 1317 2186 182 745 755 1762 2335 2185 1776 733 743 1775 732 742 1751 2336 2187 1752 1707 1627 1751 2336 2187 1775 732 742 1779 736 746 1776 733 743 1755 1738 1656 1751 2336 2187 1755 1738 1656 1776 733 743 1792 739 749 1582 2337 2188 1793 741 751 1581 1716 1635 1793 741 751 1582 2338 2188 1767 729 739 1796 742 752 193 731 741 236 744 754 193 731 741 1796 742 752 1799 2339 2189 1769 2340 2190 1791 2341 2191 1800 2342 2192 1791 2341 2191 1769 2340 2190 1577 734 2193 1805 2343 2194 1576 1722 1640 1806 751 761 1576 1722 1640 1805 2343 2194 1583 2344 2195 1810 2345 2196 1582 2346 2197 1811 2347 2198 1582 2346 2197 1810 2345 2196 1734 2348 2199 1581 1726 1643 1814 2349 2200 1812 756 766 1814 2349 2200 1581 1726 1643 1820 2350 2201 1819 2351 2202 1783 2352 2203 1787 738 748 1783 2352 2203 1819 2351 2202 1826 2353 2204 1827 769 778 265 117 2205 267 767 776 265 117 2205 1827 769 778 1835 2354 2206 1826 2353 2204 1839 1734 1652 1761 2355 2207 1839 1734 1652 1826 2353 2204 1838 774 783 1837 776 785 1749 1735 1653 1748 1702 1622 1749 1735 1653 1837 776 785 1753 1706 1626 1754 1736 1654 1842 780 789 1843 779 788 1842 780 789 1754 1736 1654 1756 1712 1632 1797 1717 1636 1846 781 790 1847 782 791 1846 781 790 1797 1717 1636 1862 784 793 1831 2356 2208 1863 786 795 1825 1740 1658 1863 786 795 1831 2356 2208 307 1351 2209 317 787 796 1860 793 802 1868 789 798 1860 793 802 317 787 796 1873 2357 2210 1869 1744 1662 1875 2358 2211 1876 2359 2212 1875 2358 2211 1869 1744 1662 1883 796 805 1885 797 806 1866 2360 2213 1855 2361 2214 1866 2360 2213 1885 797 806 1889 2362 2215 1887 798 807 1891 2363 2216 1892 800 809 1891 2363 2216 1887 798 807 1899 1751 1670 1896 1752 1671 1801 2364 2217 1786 2365 2218 1801 2364 2217 1896 1752 1671 1770 806 815 1908 808 817 1902 2366 2219 1905 2367 2220 1902 2366 2219 1908 808 817 1915 2368 2221 1905 2367 2220 1916 810 819 1908 808 817 1916 810 819 1905 2367 2220 1925 2369 2222 1926 2370 2223 1927 815 824 1928 814 823 1927 815 824 1926 2370 2223 393 1369 2224 1935 816 825 396 1370 1678 1937 818 827 396 1370 1678 1935 816 825 1942 825 835 1890 2371 2225 1945 821 830 1894 822 832 1945 821 830 1890 2371 2225 1954 824 834 1951 2372 2226 1941 826 836 1940 2373 2227 1941 826 836 1951 2372 2226 1962 828 838 1952 827 837 1963 2374 2228 1953 834 844 1963 2375 2228 1952 827 837 1971 832 842 1970 2376 2229 1953 834 844 1963 2377 2228 1953 834 844 1970 2376 2229 1938 819 828 1979 835 1688 1925 2369 2222 1978 837 2230 1925 2369 2222 1979 835 1688 1950 2378 2231 1960 2379 2232 1983 1766 1689 1984 2380 2233 1983 1766 1689 1960 2379 2232 1998 845 855 1882 846 856 1997 1769 2234 1880 2381 2235 1997 1769 2234 1882 846 856 1997 1769 2234 1995 2382 2236 2004 848 2237 2002 2383 2238 2004 848 2237 1995 2382 2236 1984 2380 2233 2008 2384 2239 1987 1777 1701 2009 1778 1702 1987 1777 1701 2008 2384 2239 2018 2385 2240 1991 2386 2241 2019 853 863 2014 854 864 2019 853 863 1991 2386 2241 1966 2387 2242 2019 853 863 1967 857 866 2020 855 865 1967 857 866 2019 853 863 2026 861 2243 2025 2388 2244 2000 863 1692 1932 1768 1691 2000 863 1692 2025 2388 2244 2032 864 873 494 1398 2245 2028 865 874 489 1399 2246 2028 865 874 494 1398 2245 2039 869 878 2038 2389 2247 2035 870 879 2034 1780 2248 2035 870 879 2038 2389 2247 2041 873 882 2045 874 883 2040 1782 1706 2044 2390 2249 2040 1782 1706 2045 874 883 2047 1784 1709 2013 1772 1697 2051 2391 2250 1992 1773 1698 2051 2391 2250 2013 1772 1697 1917 811 820 1918 879 888 2054 888 897 2055 881 890 2054 888 897 1918 879 888 2062 885 894 2061 890 899 1924 883 892 1972 1763 1684 1924 883 892 2061 890 899 2053 2392 2251 2054 888 897 2069 2393 2252 2070 889 898 2069 2393 2252 2054 888 897 2077 891 900 2076 2394 2253 2061 890 899 2060 2395 2254 2061 890 899 2076 2394 2253 2072 1792 1719 2073 893 902 2084 901 910 2085 895 904 2084 901 910 2073 893 902 2091 905 914 2079 1793 1720 2092 899 908 2066 897 906 2092 899 908 2079 1793 1720 2083 2396 2255 2084 901 910 2099 2397 2256 2100 902 911 2099 2397 2256 2084 901 910 2091 905 914 2107 904 913 2090 2398 2257 2106 2399 2258 2090 2398 2257 2107 904 913 2102 909 918 2114 910 919 576 1418 2259 590 1419 2260 576 1418 2259 2114 910 919 2108 923 932 2121 919 928 2096 1800 1728 2095 2400 2261 2096 1800 1728 2121 919 928 2123 912 921 2126 1809 1737 2125 2401 2262 2129 916 925 2125 2401 2262 2126 1809 1737 2108 923 932 2135 925 934 2121 919 928 2134 920 929 2121 919 928 2135 925 934 2114 910 919 2142 1815 1743 590 1419 2260 624 1426 1744 590 1419 2260 2142 1815 1743 2144 1814 1742 2145 927 936 2149 2402 2263 2150 929 938 2149 2402 2263 2145 927 936 2136 922 931 2157 931 941 2137 1812 1740 2156 2403 2264 2137 1812 1740 2157 931 941 2157 931 941 2158 1817 1746 2156 2403 2264 2164 1822 1751 2156 2403 2264 2158 1817 1746 2160 938 948 2172 7 7 2159 1816 1745 2171 6 6 2159 1816 1745 2172 7 7 2168 939 949 2179 11 11 2167 2404 2265 2178 948 958 2167 2404 2265 2179 11 11 2189 946 956 2185 1827 1756 2170 945 955 2181 1823 1752 2170 945 955 2185 1827 1756 2173 937 947 2192 2405 2266 2172 7 7 2193 8 8 2172 7 7 2192 2405 2266 2183 2406 2267 2195 2407 2268 2184 1826 1755 2196 947 957 2184 1826 1755 2195 2407 2268 1855 2361 2214 1885 797 806 2201 2408 2269 2202 950 960 2201 2408 2269 1885 797 806 2209 951 961 2208 2409 2270 1849 783 792 1848 2410 2271 1849 783 792 2208 2409 2270 2204 955 965 2217 956 966 2203 949 959 2216 2411 2272 2203 949 959 2217 956 966 2235 959 969 2223 960 970 2234 982 991 2222 2412 2273 2234 982 991 2223 960 970 2231 963 973 2230 978 987 2243 961 971 2242 987 996 2243 961 971 2230 978 987 2252 965 975 756 1444 1768 2250 966 976 753 1445 2274 2250 966 976 756 1444 1768 2223 960 970 2259 970 980 2222 2412 2273 2258 969 979 2222 2412 2273 2259 970 980 2226 2413 2275 2227 1846 1773 2263 973 983 2264 974 984 2263 973 983 2227 1846 1773 2257 2414 2276 2267 979 988 2261 1849 1776 2268 977 986 2261 1849 1776 2267 979 988 2210 1829 1758 2271 980 989 2221 2415 2277 2270 981 990 2221 2415 2277 2271 980 989 2214 1853 1780 2275 984 993 2213 2416 2278 2274 983 992 2213 2416 2278 2275 984 993 2278 989 998 2217 956 966 2279 988 997 2218 954 964 2279 988 997 2217 956 966 2283 990 999 2284 992 1001 2282 2417 1030 2285 996 1005 2282 2417 1030 2284 992 1001 2297 2418 2279 2298 2419 2280 2301 1858 1785 2302 1859 1786 2301 1858 1785 2298 2419 2280 2300 2420 2281 2301 1858 1785 2318 2421 2282 2317 998 1007 2318 2421 2282 2301 1858 1785 2313 2422 2283 2312 2423 2284 2323 2424 2285 2322 2425 2286 2323 2424 2285 2312 2423 2284 2306 999 1008 2319 1000 1009 2329 2426 2287 2328 1005 1014 2329 2426 2287 2319 1000 1009 2342 1862 1789 2346 1014 1023 2343 1009 1018 2347 1010 1019 2343 1009 1018 2346 1014 1023 2358 2427 2288 2350 2428 2289 2364 1015 1024 2361 1013 1022 2364 1015 1024 2350 2428 2289 2363 1867 1794 2370 1020 1029 2353 2429 2290 2371 1018 1027 2353 2430 2290 2370 1020 1029 2287 991 1000 2283 990 999 2377 2431 2291 2378 1023 1032 2377 2431 2291 2283 990 999 2381 1027 1035 2380 1028 1036 2332 1031 1039 2355 1864 1791 2332 1031 1039 2380 1028 1036 2372 2432 2292 2331 1025 1033 2330 2433 1037 2381 1027 1035 2330 2433 1037 2331 1025 1033 2306 2434 1008 2329 2435 2287 2385 2436 2293 2306 1032 1008 2385 2437 2293 2386 1033 1040 2349 1869 1796 2363 2438 1794 2394 1877 2294 2395 2439 2295 2394 1877 2294 2363 2440 1794 2397 2441 2296 2295 1002 1011 2373 2442 2297 2324 1001 1010 2373 1043 2297 2295 1002 1011 2414 1044 421 2419 1046 1050 2413 2443 420 2418 1880 1471 2413 2443 420 2419 1046 1050 2432 2444 1053 2431 1048 1052 2423 2445 439 2417 1901 1472 2423 2445 439 2431 1048 1052 2402 1052 1055 2433 1885 1473 2444 1053 1056 2443 1166 1124 2444 1053 1056 2433 1885 1473 2410 1888 408 2453 1056 423 2409 1067 1066 2454 1069 422 2409 1067 1066 2453 1056 423 2458 2446 427 2459 1942 426 2412 2447 414 2435 2448 1474 2412 2447 414 2459 1942 426 2467 2449 429 2468 1064 1064 2472 2450 428 2473 1065 436 2472 2450 428 2468 1064 1064 2454 1069 422 2413 2443 420 2483 1068 1067 2479 1904 1475 2483 1068 1067 2413 2443 420 2474 1063 535 2492 2451 537 2473 1065 436 2491 1898 437 2473 1065 436 2492 2451 537 2446 1076 1072 2509 1075 1071 2401 1886 1476 2504 2452 1477 2401 1886 1476 2509 1075 1071 2489 1072 444 2495 1073 1069 2515 1102 445 2516 2453 1478 2515 1102 445 2495 1073 1069 2522 2454 448 2516 2453 1478 2519 1078 449 2495 1073 1069 2519 1078 449 2516 2453 1478 2481 1086 432 2476 1893 1479 2534 1088 1079 2529 2455 1480 2534 1088 1079 2476 1893 1479 2496 1083 1077 2488 1084 456 2541 1089 1080 2540 1912 454 2541 1089 1080 2488 1084 456 2532 1906 1481 2531 1910 452 2547 2456 459 2546 1094 458 2547 2456 459 2531 1910 452 2551 1099 462 2536 1905 1482 2547 2456 459 2532 1906 1481 2547 2456 459 2536 1905 1482 2538 2457 1483 2553 2458 463 2539 1913 455 2554 1101 464 2539 1913 455 2553 2458 463 2527 2459 1484 2542 1090 1081 2558 2460 466 2557 2461 467 2558 2460 466 2542 1090 1081 2581 2462 1485 2580 2463 469 2587 2464 1486 2586 2465 471 2587 2464 1486 2580 2463 469 2573 2466 1487 2568 1916 472 2595 2467 1488 2594 2468 473 2595 2467 1488 2568 1916 472 2600 2469 1491 2601 1971 1490 2609 2470 1489 2600 2469 1491 2609 2470 1489 2607 2471 492 2578 2472 502 2616 1120 500 2591 1921 1492 2617 1122 1095 2591 1921 1492 2616 1120 500 2611 1920 485 2623 1923 487 2612 1947 1493 2624 2473 1494 2612 1947 1493 2623 1923 487 2635 1145 491 2637 1931 1495 2564 1104 489 2570 2474 1496 2564 1104 489 2637 1931 1495 2620 2475 494 2625 1132 1102 2644 1151 495 2645 1134 1104 2644 1151 495 2625 1132 1102 2652 1178 1136 2651 2476 496 2659 1180 1138 2658 1140 497 2659 1180 1138 2651 2476 496 2569 1121 1094 2616 1120 500 2665 1927 1497 2671 2477 501 2665 1927 1497 2616 1120 500 2680 1142 1110 2678 1143 506 2661 1930 1498 2660 2478 1499 2661 1930 1498 2678 1143 506 2686 2479 1500 2653 2480 515 2685 2481 507 2683 2482 509 2685 2481 507 2653 2480 515 2637 1931 1495 2690 1932 523 2643 2483 511 2696 2484 513 2643 2483 511 2690 1932 523 2664 1136 1106 2663 1137 1107 2704 1152 1115 2703 1153 1116 2704 1152 1115 2663 1137 1107 2709 1155 1118 2669 1935 1501 2704 1152 1115 2664 1136 1106 2704 1152 1115 2669 1935 1501 2710 1156 1119 2712 1157 1120 2670 1139 1109 2672 1138 1108 2670 1139 1109 2712 1157 1120 2716 1160 1121 2676 1939 1502 2715 1158 526 2675 2485 1503 2715 1158 526 2676 1939 1502 2721 2486 1504 2566 1915 1505 2719 1165 1123 2572 1164 480 2719 1165 1123 2566 1915 1505 2433 1885 1473 2731 1176 1506 2443 1166 1124 2733 1167 1125 2443 1166 1124 2731 1176 1506 2739 1177 536 2740 1179 1507 2492 2451 537 2499 1946 1508 2492 2451 537 2740 1179 1507 2735 1966 1509 2602 1968 1511 2732 2487 1510 2559 1914 1512 2732 2487 1510 2602 1968 1511 2738 2488 545 2634 2489 544 2739 1177 1135 2652 1178 1136 2739 1177 1135 2634 2489 544 2439 1950 1513 2438 2490 563 2723 1182 1140 2724 1184 561 2723 1182 1140 2438 2490 563 2422 2491 552 2746 2492 551 2597 1113 1142 2747 1185 1143 2597 1113 1142 2746 2492 551 2750 1190 1149 2753 1188 1147 2749 2493 555 2752 2494 556 2749 2493 555 2753 1188 1147 2755 2495 557 2756 1191 1150 2758 2496 559 2759 1193 1152 2758 2496 559 2756 1191 1150 2724 1184 561 2761 2497 562 2598 1183 1141 2762 1195 1154 2598 1183 1141 2761 2497 562 2765 2498 567 2502 1171 565 2766 1199 569 2741 1170 1157 2766 1199 569 2502 1171 565 2687 2499 572 2767 1200 571 2718 1204 1514 2768 1203 1515 2718 1204 1514 2767 1200 571 2778 2500 574 2771 2501 576 2779 1205 1163 2773 1206 1164 2779 1205 1163 2771 2501 576 2785 1973 577 2787 1975 1516 2786 586 579 2788 1603 1517 2786 586 579 2787 1975 1516 2797 1215 1518 2798 1216 1520 2808 2502 1519 2807 1219 1521 2808 2502 1519 2798 1216 1520 2819 1217 1177 2811 1218 1179 2820 1972 1522 2812 588 1523 2820 1972 1522 2811 1218 1179 2817 1212 1524 2827 1974 1525 2819 1217 1177 2829 1209 1178 2819 1217 1177 2827 1974 1525 2827 1974 1525 2817 1212 1524 2833 2503 1526 2838 1213 1527 2833 2503 1526 2817 1212 1524 2847 1224 1186 2839 1225 1868 2848 2504 2298 2842 2505 1867 2848 2504 2298 2839 1225 1868 2854 2506 1873 2853 2507 1874 2845 2508 2299 2846 2509 2300 2845 2508 2299 2853 2507 1874 2858 2510 2301 2860 2511 2302 2868 2512 2303 2871 2513 2304 2868 2512 2303 2860 2511 2302 2873 2514 2305 2862 2515 2306 2875 2516 2307 2864 2517 2308 2875 2516 2307 2862 2515 2306 2876 1249 1197 2875 2518 2309 2877 1249 2310 2876 1249 1197 2877 1249 2310 2878 1249 2311 2882 2519 2312 2881 2520 1879 2884 2521 2313 2883 2522 2314 2884 2521 2313 2881 2520 1879 2886 2523 2315 2885 2524 2316 2888 2525 2317 2887 2526 2318 2888 2525 2317 2885 2524 2316 2917 1231 2319 2905 1230 1890 2918 2527 1213 2904 2528 1892 2918 2527 1213 2905 1230 1890 2919 2529 2320 2908 2530 2321 2921 2514 2322 2910 2515 2323 2921 2514 2322 2908 2530 2321 2923 2516 2324 2912 2531 2325 2925 2532 2326 2914 2533 2327 2925 2532 2326 2912 2531 2325 2947 2534 2328 2972 2535 2329 2948 2536 2330 2971 2537 2331 2948 2536 2330 2972 2535 2329 2950 2538 2332 2952 2539 2333 2949 2540 2334 2951 2541 2335 2949 2540 2334 2952 2539 2333 2964 2542 1908 2953 2543 1234 2966 2544 1909 2955 2545 1235 2966 2544 1909 2953 2543 1234 2928 2546 2336 2930 2547 2337 2937 2548 2338 2939 2549 2339 2937 2548 2338 2930 2547 2337 2941 2550 2340 2932 2551 2341 2943 2552 2342 2934 2553 2343 2943 2552 2342 2932 2551 2341 2944 1249 1241 2943 2554 2344 2945 1249 2345 2944 1249 1241 2945 1249 2345 2946 1249 2346 43 2555 2347 58 2556 2348 33 70 72 59 62 64 33 70 72 58 2556 2348 35 2039 1920 34 2040 1921 50 2557 2349 49 2558 2350 50 2557 2349 34 2040 1921 52 13 1245 51 1280 1244 69 2559 2351 70 1285 1249 69 2559 2351 51 1280 1244 76 2560 2352 86 21 2353 77 1307 1273 87 1284 1272 77 1307 1273 86 21 2353 75 2561 2354 68 1281 1246 69 2559 2355 69 2559 2355 74 23 2356 75 2561 2354 40 2052 1933 94 2047 1928 39 2032 1914 93 2048 1929 39 2032 1914 94 2047 1928 104 102 104 105 103 105 26 39 40 25 40 41 26 39 40 105 103 105 114 2562 2357 17 2563 2358 112 1310 1276 18 1311 1277 112 1310 1276 17 2563 2358 117 42 43 118 2564 2359 14 1294 1259 13 1296 1262 14 1294 1259 118 2564 2359 122 45 2360 113 73 75 20 54 56 19 55 57 20 54 56 113 73 75 129 2565 2361 127 46 48 90 29 29 88 48 50 90 29 29 127 46 48 135 2049 1930 134 2566 2362 133 52 54 132 50 52 133 52 54 134 2566 2362 21 1295 1260 20 54 1261 142 2567 1932 140 56 2363 142 2567 1932 20 54 1261 147 1314 1280 99 1308 1274 126 47 49 89 49 51 126 47 49 99 1308 1274 55 18 18 66 19 19 151 2054 1935 153 2568 2364 151 2054 1935 66 19 19 66 19 19 77 1307 1273 153 2568 2364 157 69 71 153 2568 2364 77 1307 1273 100 32 33 29 31 32 160 108 111 162 2057 1939 160 108 111 29 31 32 165 2569 2365 168 2570 2366 45 1290 1255 123 2571 2367 45 1290 1255 168 2570 2366 137 1313 1279 94 2047 1928 171 77 79 158 2056 1938 171 77 79 94 2047 1928 176 1701 2368 198 2572 2369 175 725 2370 197 123 126 175 725 2370 198 2572 2369 184 1341 1310 209 2573 2371 183 2061 1943 210 90 92 183 2061 1943 209 2573 2371 213 1319 1286 188 1318 1285 215 2574 2372 189 1342 1311 215 2574 2372 188 1318 1285 219 2575 2373 194 2080 1962 218 2576 2374 192 1345 1314 218 2576 2374 194 2080 1962 161 2577 2375 8 2578 1293 232 2579 2376 231 1324 1291 232 2579 2376 8 1326 1293 237 2580 2377 218 2576 2374 235 1346 1315 192 1345 1314 235 1346 1315 218 2576 2374 6 2581 2378 242 2582 2379 7 2065 1955 241 2073 1956 7 2065 1955 242 2583 2379 3 1331 1299 2 89 2380 245 101 103 246 2584 2381 245 101 103 2 89 2380 251 109 112 250 105 2382 8 1335 1303 9 2585 2383 8 2586 1303 250 105 2382 0 86 1954 248 2069 1953 164 84 2384 254 2587 2385 164 84 2384 248 2069 1953 186 2060 1942 260 2588 2386 212 87 89 256 2589 2387 212 87 89 260 2588 2386 272 2590 2388 270 2078 1960 271 1731 2389 269 766 2390 271 1731 2389 270 2078 1960 276 2591 2391 263 2077 1959 277 2079 1961 262 2592 2392 277 2079 1961 263 2077 1959 283 1338 1307 186 2060 1942 282 1339 1308 185 1340 1309 282 1339 1308 186 2060 1942 190 1343 1312 287 1344 1313 183 2061 1943 280 121 124 183 2061 1943 287 1344 1313 191 1323 1290 235 1346 1315 288 2593 2393 291 1347 1316 288 2593 2393 235 1346 1315 264 1350 1319 311 1348 1317 297 2594 2394 312 2595 2395 297 2594 2394 311 1348 1317 264 1350 1319 297 2594 2394 259 142 145 318 140 143 259 142 145 297 2594 2394 304 2143 2032 316 1353 1323 329 2094 1978 328 2095 1979 329 2094 1978 316 1353 1323 322 2084 1966 301 2082 1964 337 2093 2396 335 145 148 337 2093 2396 301 2082 1964 343 1358 1328 344 154 157 222 2596 2397 223 2597 2398 222 2596 2397 344 154 157 350 1359 1329 347 155 158 352 2598 2399 349 153 156 352 2598 2399 347 155 158 361 2599 2400 194 2600 2401 360 2601 2402 219 2602 2403 360 2601 2402 194 2600 2401 360 2601 2402 369 228 232 361 2599 2400 370 1406 1375 361 2599 2400 369 228 232 384 1755 2404 385 2603 2405 333 1756 2406 331 2604 2407 333 1756 2406 385 2603 2405 397 1371 1341 396 1370 1340 380 1366 1336 382 813 2408 380 1366 1336 396 1370 1340 348 2086 2409 406 2605 2410 351 2606 2411 407 2607 2412 351 2606 2411 406 2605 2410 402 1372 1342 415 2092 1975 405 1373 1343 416 2608 2413 405 1373 1343 415 2092 1975 419 2090 1973 418 2609 2414 424 2105 1990 425 205 209 424 2105 1990 418 2609 2414 377 165 168 376 166 169 432 182 187 433 183 188 432 182 187 376 166 169 395 170 173 398 1383 1352 440 2610 2415 439 1384 1353 440 2610 2415 398 1383 1352 443 187 192 442 186 191 446 2611 2416 445 2612 2417 446 2611 2416 442 186 191 389 211 215 460 1395 1362 386 2613 2418 459 2102 2419 386 2613 2418 460 1395 1362 465 2614 2420 464 194 2421 458 1386 2422 457 189 2423 458 1386 2422 464 194 2421 472 2615 206 473 1404 1373 453 2616 1988 452 1405 1374 453 2616 1988 473 1404 1373 449 2617 203 470 2618 2424 481 2619 2425 480 1393 1360 481 2619 2425 470 2618 2424 428 2091 1974 429 180 185 481 2619 2425 482 2620 2426 481 2619 2425 429 180 185 447 1388 1357 467 2100 1984 469 197 202 488 212 216 469 197 202 467 2100 1984 492 2108 2427 491 2621 2428 497 214 218 496 215 219 497 214 218 491 2621 2428 500 2109 1995 499 1783 2429 505 218 222 504 219 223 505 218 222 499 1783 2429 513 223 227 508 2112 1998 512 225 229 507 2622 2430 512 225 229 508 2112 1998 515 2623 2431 391 167 170 516 2113 2001 392 169 172 516 2113 2001 391 167 170 371 2624 2432 523 2625 2433 372 2626 2434 524 2627 2435 372 2626 2434 523 2625 2433 533 2628 2436 365 2087 1970 532 2629 2437 375 163 166 532 2629 2437 365 2087 1970 523 2625 2433 522 1407 1376 541 240 244 540 238 242 541 240 244 522 1407 1376 550 242 246 532 2629 2437 549 243 247 531 1408 1377 549 243 247 532 2629 2437 545 2117 2005 544 1796 2438 559 2630 2439 558 1797 2440 559 2630 2439 544 1796 2438 551 2631 2441 537 233 237 566 2632 2442 536 2115 2003 566 2632 2442 537 233 237 574 253 257 575 252 256 556 1412 1381 557 896 2443 556 1412 1381 575 252 256 583 1420 1389 584 2633 2444 569 1421 1390 570 2119 2007 569 1421 1390 584 2633 2444 592 267 271 593 2127 2015 578 2634 2445 579 2120 2008 578 2634 2445 593 2127 2015 601 2123 2011 604 1806 2446 599 2124 2012 602 913 2447 599 2124 2012 604 1806 2446 608 2126 2014 607 1423 1392 613 2635 2448 612 264 268 613 2635 2448 607 1423 1392 597 259 263 596 2122 2010 617 1428 1397 618 275 279 617 1428 1397 596 2122 2010 614 2636 2449 625 274 278 609 2125 2013 626 272 276 609 2125 2013 625 274 278 623 270 274 624 1426 1395 636 2637 2450 635 934 2451 636 2637 2450 624 1426 1395 629 2638 2452 642 1429 1398 644 285 289 643 284 288 644 285 289 642 1429 1398 637 2639 2453 636 2637 2450 653 287 291 652 2134 2022 653 287 291 636 2637 2450 646 2640 2454 660 1434 1403 647 2132 2020 661 2137 2025 647 2132 2020 660 1434 1403 656 2133 2021 669 3 3 650 1430 1399 670 1433 1402 650 1430 1399 669 3 3 662 2641 2455 682 2642 2456 663 1825 2457 681 943 2458 663 1825 2457 682 2642 2456 674 292 296 675 293 297 689 296 300 690 5 5 689 296 300 675 293 297 463 2098 1982 302 2643 2459 697 1437 1406 696 302 306 697 1437 1406 302 2643 2459 705 1453 1421 706 2644 2460 704 1436 1405 691 2645 2461 704 1436 1405 706 2646 2460 699 2647 2462 698 2648 2463 714 2649 2464 713 1460 1428 714 2649 2464 698 2648 2463 737 334 337 736 2650 2465 723 2149 2038 722 2651 2466 723 2652 2038 736 2653 2465 745 339 342 744 2654 2467 731 2655 2468 730 2656 2469 731 2655 2468 744 2654 2467 760 2657 2470 757 1443 1412 759 1841 2471 756 1444 1413 759 1841 2471 757 1443 1412 762 1842 2472 768 1844 2473 763 2658 2474 769 2659 2475 763 2658 2474 768 1844 2473 725 1449 1417 773 1450 1418 726 2147 2036 774 2660 2476 726 2147 2036 773 1450 1418 729 1441 1410 777 1452 1420 730 2656 2469 770 1451 1419 730 2656 2469 777 1452 1420 706 2644 2460 705 1453 1421 782 2661 2477 781 1455 1423 782 2661 2477 705 1453 1421 710 305 309 709 1456 1424 786 2662 2478 785 1458 1426 786 2662 2478 709 1456 1424 714 2649 2464 713 1460 1428 790 2663 2479 789 1459 1427 790 2663 2479 713 1460 1428 797 2664 2480 799 2665 2481 798 346 349 800 2666 2482 798 346 349 799 2665 2481 816 2667 2483 818 2668 2484 815 2669 2485 817 2670 2486 815 2669 2485 818 2668 2484 828 2671 2487 797 2664 2480 829 2672 2488 796 1463 1431 829 2672 2488 797 2664 2480 825 2673 2489 826 2674 2490 816 2675 2483 818 2676 2484 816 2677 2483 826 1469 2490 838 2678 2491 839 384 387 836 2679 2492 837 383 386 836 2679 2492 839 384 387 860 2680 2493 836 2679 2492 859 2162 2049 834 1473 1440 859 2162 2049 836 2679 2492 851 360 363 867 364 367 852 1476 1443 869 1480 1447 852 1476 1443 867 364 367 843 2681 2494 842 2160 2047 874 1509 1470 875 2682 2495 874 1509 1470 842 2160 2047 852 1476 1443 869 1480 1447 877 2166 2053 878 370 373 877 2166 2053 869 1480 1447 882 1494 1460 884 2167 2054 905 1496 1462 892 1481 1448 905 1496 1462 884 2167 2054 916 2683 2496 891 2684 2497 917 2685 2498 890 2179 2064 917 2685 2498 891 2684 2497 920 1489 1456 919 382 385 913 1487 1454 899 402 404 913 1487 1454 919 382 385 916 2683 2496 889 2686 2499 923 1510 2500 924 2687 2501 923 1510 2500 889 2686 2499 930 1495 1461 905 1496 1462 932 395 397 906 2175 2061 932 395 397 905 1496 1462 936 2688 2502 902 2170 2056 935 1499 2503 921 1490 1457 935 1499 2503 902 2689 2056 855 362 365 854 361 364 937 2690 2504 938 2691 2505 937 2690 2504 854 361 364 943 401 2506 849 2692 2507 944 403 2508 853 2693 2509 944 403 2508 849 2692 2507 890 2179 2064 891 2684 2497 942 2178 2063 947 2694 2510 942 2695 2063 891 2684 2497 968 1512 1471 975 2233 1806 969 1511 1050 976 2696 1807 969 1511 1050 975 2233 1806 957 415 415 952 1516 1055 984 2697 1808 983 1518 1473 984 2697 1808 952 1516 1055 951 1526 1476 996 1525 1072 978 2698 1057 995 2699 1058 978 2698 1057 996 1525 1072 1003 423 423 1005 532 529 960 408 408 961 409 409 960 408 408 1005 532 529 1000 2700 1060 1012 2701 1062 1001 2186 1809 1013 2189 1810 1001 2186 1809 1012 2701 1062 950 2185 1811 1026 1532 1479 953 2182 1812 1025 2702 1813 953 2182 1812 1026 1532 1479 997 435 435 1010 2703 1814 1032 434 434 1034 2704 1815 1032 434 434 1010 2703 1814 1041 437 437 1040 438 438 1048 2193 1816 1047 2705 1068 1048 2193 1816 1040 438 438 1057 461 460 1061 462 461 967 2192 1472 1006 2706 1817 967 2707 1472 1061 462 461 1069 449 449 1068 2708 1074 1045 1530 1069 1047 2705 1068 1045 1530 1069 1068 2708 1074 1075 2709 1818 1073 2710 1082 1074 2711 1075 1046 1534 1077 1074 2711 1075 1073 2710 1082 1033 1523 1067 1086 1537 1482 1029 1524 1475 1082 1536 1481 1029 1524 1475 1086 1537 1482 1043 2712 1819 1077 2713 1484 1073 2710 1082 1092 1540 1081 1073 2710 1082 1077 2713 1484 1098 2234 1083 1083 451 450 1096 459 458 1081 453 452 1096 459 458 1083 451 450 1095 2198 1085 1101 463 462 1080 2200 1820 1086 1537 1482 1080 2200 1820 1101 463 462 1090 455 454 1105 2714 1086 1089 456 455 1104 465 464 1089 456 455 1105 2714 1086 1110 2715 1088 1109 1588 1512 1115 2716 1087 1116 1582 1505 1115 2716 1087 1109 1588 1512 1139 2717 1090 1118 474 472 1138 479 477 1113 476 474 1138 479 477 1118 474 472 1133 2718 1821 1134 2719 1155 1149 2720 1139 1148 1596 1141 1149 2720 1139 1134 2719 1155 1154 2211 1822 1161 487 485 1155 481 479 1160 486 484 1155 481 479 1161 487 485 1141 1549 1492 1127 2209 1091 1167 1551 1095 1168 2721 1823 1167 1551 1095 1127 2209 1091 1172 488 486 1173 489 487 1177 2722 1099 1178 2214 1824 1177 2722 1099 1173 489 487 1188 2723 1101 1129 470 468 1190 2724 1825 1135 472 470 1190 2724 1825 1129 470 468 1180 2725 1103 1196 2726 1105 1197 2219 1826 1198 2220 1827 1197 2219 1826 1196 2726 1105 1117 2727 1089 1213 1570 1107 1119 1561 1094 1215 1562 1497 1119 1561 1094 1213 1570 1107 1222 1577 1108 1171 2213 1097 1223 2728 1828 1176 2729 1098 1223 2728 1828 1171 2213 1097 1231 2730 1829 1212 2731 1830 1230 1563 1110 1211 1564 1498 1230 1563 1110 1212 2731 1830 1187 1555 1495 1240 526 523 1185 493 491 1238 2732 1111 1185 493 491 1240 526 523 1247 2733 1114 1248 2734 1831 1194 497 495 1195 1558 1104 1194 497 495 1248 2734 1831 1213 1570 1107 1253 1571 1116 1215 1562 1497 1255 525 522 1215 1562 1497 1253 1571 1116 1260 1574 1119 1259 1572 1118 1220 1575 1109 1219 1573 1501 1220 1575 1109 1259 1572 1118 1262 1576 1120 1222 1577 1108 1263 2735 1832 1223 2728 1828 1263 2735 1832 1222 1577 1108 1267 2736 1833 1266 1578 1121 1232 2737 1834 1226 1579 1502 1232 2737 1834 1266 1578 1121 965 2738 1049 970 2739 1051 1276 549 1835 1277 2740 1836 1276 549 1835 970 2739 1051 1009 426 426 1279 2741 1837 986 424 424 1272 544 1838 986 424 424 1279 2741 1837 1290 1585 1507 1049 1586 1508 1292 2742 1130 1071 2194 1131 1292 2742 1130 1049 1586 1508 1153 2743 1132 1283 1584 1134 1162 1553 1493 1284 2744 1839 1162 1553 1493 1283 1584 1134 1212 2731 1830 1231 2730 1829 1291 1598 1841 1292 2742 1840 1291 1598 1841 1231 2730 1829 1295 550 549 989 1589 1513 982 2232 1842 973 439 1843 982 2745 1842 989 1589 1513 975 2233 1844 1298 553 553 976 2696 1845 977 2746 1846 976 2696 1845 1298 553 553 1301 554 554 1030 452 1847 1304 558 558 1083 451 1848 1304 558 558 1030 452 1847 1307 560 560 1098 2234 1849 1310 564 564 1058 442 1850 1310 564 564 1098 2234 1849 1294 2747 1851 1313 2748 1853 1076 2749 1852 1043 2750 1819 1076 2749 1852 1313 2748 1853 1212 2731 1158 1317 571 571 1211 1564 1854 1318 1600 1515 1211 1564 1854 1317 571 571 992 418 418 1285 535 532 1319 2751 1855 1320 575 1856 1319 2751 1855 1285 535 532 1331 2752 1857 1327 573 573 1152 1587 1511 1152 1587 1511 1151 1546 1490 1331 2752 1857 1341 1605 1858 1339 1606 1171 1342 1210 1859 1340 1221 1172 1342 1210 1859 1339 1606 1171 1333 578 578 1335 577 577 1343 587 1169 1345 585 1860 1343 587 1169 1335 577 577 1336 579 579 1334 580 580 1338 1216 1517 1354 1219 1861 1338 1216 1517 1334 580 580 1334 580 580 1342 1210 1859 1354 1219 1861 1359 1220 1174 1354 1219 1861 1342 1210 1859 1342 1210 1859 1340 1221 1172 1359 1220 1174 1379 1607 1178 1380 1972 1181 1377 581 1862 1378 582 1183 1377 581 1862 1380 1972 1181 1365 589 1863 1366 1216 1865 1381 591 1864 1382 1219 1866 1381 591 1864 1366 1216 1865 1397 2753 2511 1398 2240 1530 1389 2754 2512 1392 2241 595 1389 2754 2512 1398 2240 1530 1404 2755 2513 1395 2756 2514 1403 2757 2515 1396 2758 2516 1403 2757 2515 1395 2756 2514 1412 2242 1534 1416 2759 2517 1406 2243 2105 1414 2759 2518 1406 2243 2105 1416 2759 2517 1421 2760 2519 1424 2761 2520 1425 2761 1537 1426 2762 2521 1425 2761 1537 1424 2761 2520 1425 2763 1537 1434 2764 2522 1421 2764 2519 1433 2765 2523 1421 2764 2519 1434 2764 2522 1443 614 1540 1444 615 1539 1442 616 613 1441 617 612 1442 616 613 1444 615 1539 1447 618 2120 1452 619 2524 1441 617 612 1450 620 614 1441 617 612 1452 619 2524 1463 618 620 1457 617 619 1464 2766 2525 1460 615 617 1464 2766 2525 1457 617 619 1470 2767 2526 1480 2768 2527 1469 2768 2528 1477 2769 2529 1469 2768 2528 1480 2768 2527 1474 2266 1555 1476 2770 1554 1473 2264 2125 1475 2771 2530 1473 2264 2125 1476 2770 1554 1498 626 628 1488 625 627 1497 2772 2531 1485 2773 2532 1497 2772 2531 1488 625 627 1498 2269 2128 1499 2268 1559 1501 2272 2131 1502 2273 1560 1501 2272 2131 1499 2268 1559 1503 2274 2132 1504 2275 1561 1505 634 636 1506 633 637 1505 634 636 1504 2275 1561 1521 2774 2533 1509 2775 2534 1524 2775 2535 1510 2776 2536 1524 2775 2535 1509 2775 2534 1526 2282 1571 1513 2280 642 1528 2283 1573 1515 2284 645 1528 2283 1573 1513 2280 642 1520 2777 2537 1531 2778 2538 1519 2778 2539 1532 2779 2540 1519 2778 2539 1531 2778 2538 1547 2292 647 1546 2291 2140 1548 2270 648 1545 2271 1576 1548 2270 648 1546 2291 2140 1549 2293 2141 1550 2294 1579 1551 2295 2142 1552 2296 1581 1551 2295 2142 1550 2294 1579 1542 2780 2541 1544 2781 2542 1541 2782 2543 1543 2783 1585 1541 2782 2543 1544 2781 2542 1570 2303 2149 1567 652 659 1569 2301 1588 1566 654 661 1569 2301 1588 1567 652 659 1614 2784 2544 1615 2785 2545 1629 710 719 1630 2786 2546 1629 710 719 1615 2785 2545 1631 1674 1592 1632 1675 1593 1636 2787 2547 1635 2788 2548 1636 2787 2547 1632 1675 1593 1623 663 670 1644 2310 2158 1622 657 664 1633 2789 2549 1622 657 664 1644 2310 2158 1652 2790 2550 1637 2791 2551 1653 2792 2552 1636 2793 2547 1653 2794 2552 1637 2791 2551 1640 2307 2153 1639 1696 1616 1649 670 677 1650 1678 1595 1649 670 677 1639 1696 1616 1616 2795 1590 1615 2796 2553 1670 2797 2554 1669 2798 2555 1670 2799 2554 1615 2796 2553 1680 2315 2163 1679 752 762 1596 2316 2164 1597 688 697 1596 2316 2164 1679 752 762 1688 2800 2556 1687 684 693 1589 701 710 1590 700 709 1589 701 710 1687 684 693 1691 689 698 1586 1684 1603 1692 2801 2557 1585 2323 2173 1692 2801 2557 1586 1684 1603 1692 2801 2557 1585 2323 2173 1696 1699 1619 1619 2322 2172 1696 1699 1619 1585 2323 2173 1703 2802 2558 1704 2320 2559 1701 694 703 1702 695 704 1701 694 703 1704 2320 2559 1590 700 709 1591 1682 1601 1707 698 707 1709 2332 2182 1707 698 707 1591 1682 1601 1669 2803 2555 1714 702 2560 1716 2804 2561 1716 2805 2561 1670 2799 2554 1669 2798 2555 1722 2328 2178 1620 658 665 1721 2325 2175 1621 659 666 1721 2325 2175 1620 658 665 1655 2806 2562 1658 2308 2154 1728 2807 2563 1727 2808 2564 1728 2807 2563 1658 2308 2154 1634 2324 2174 1655 2806 2562 1725 2326 2176 1728 2807 2563 1725 2326 2176 1655 2806 2562 1736 760 770 1684 2314 2162 1738 720 729 1618 1698 1618 1738 720 729 1684 2314 2162 1741 722 731 1696 1699 1619 1742 2809 2565 1619 2322 2172 1742 2809 2565 1696 1699 1619 1742 2809 2565 1619 2322 2172 1745 2810 2566 1719 706 715 1745 2810 2566 1619 2322 2172 1762 2335 2185 1763 2811 2567 179 1317 2186 178 2812 2568 179 1317 2186 1763 2811 2567 1771 1704 1624 1773 2813 2569 1748 1702 1622 1749 1735 1653 1748 1702 1622 1773 2813 2569 1754 1736 1654 1753 1706 1626 1778 2814 2570 1777 1708 1628 1778 2814 2570 1753 1706 1626 1783 2352 2203 1787 738 748 1782 2815 2571 1788 740 750 1782 2815 2571 1787 738 748 1580 2816 2572 1795 2817 2573 1734 1713 1633 1794 1714 1634 1734 1713 1633 1795 2817 2573 1799 2339 2189 1798 1718 1637 1769 2340 2190 1780 1710 1630 1769 2340 2190 1798 1718 1637 1579 2818 1638 1803 749 759 1578 735 2574 1804 2819 2575 1578 735 2574 1803 749 759 1575 1723 1641 1807 750 760 1574 2820 2576 1808 2821 2577 1574 2820 2576 1807 750 760 1617 2822 2578 1574 2820 2576 1813 2823 2579 1808 2821 2577 1813 2823 2579 1574 2820 2576 1737 1727 1645 1617 2822 2578 1815 758 768 1813 2823 2579 1815 758 768 1617 2822 2578 1823 1732 1650 1822 2824 2580 1818 2825 2581 1816 2826 2582 1818 2825 2581 1822 2824 2580 1831 770 779 1830 2827 2583 1832 771 780 1829 1730 1648 1832 771 780 1830 2827 2583 1834 2828 2584 1835 2354 2206 1822 2824 2580 1821 1729 1647 1822 2824 2580 1835 2354 2206 1751 2336 2187 1752 1707 1627 1840 2829 2585 1841 2830 2586 1840 2829 2585 1752 1707 1627 1755 1738 1656 1751 2336 2187 1844 1739 1657 1840 2829 2585 1844 1739 1657 1751 2336 2187 273 2831 2587 1830 2832 2588 308 2833 2589 1861 2834 2590 308 2833 2589 1830 2832 2588 1852 1741 1659 1854 2835 2591 1864 1742 1660 1865 2836 2592 1864 1742 1660 1854 2835 2591 1873 2357 2210 1872 2837 1664 1854 2835 2591 1856 1747 1666 1854 2835 2591 1872 2837 1664 1882 846 856 1881 1758 1677 1880 2381 2235 1870 2838 2593 1880 2381 2235 1881 1758 1677 1876 2359 2212 1783 2839 2594 1887 798 807 1782 799 808 1887 798 807 1783 2839 2594 1891 2363 2216 1892 800 809 1895 2840 2595 1893 1749 1668 1895 2840 2595 1892 800 809 1903 2841 2596 1900 802 811 1904 2842 2597 1901 804 813 1904 2842 2597 1900 802 811 1911 2843 2598 1845 2844 2599 1912 2845 2600 1768 2846 2601 1912 2845 2600 1845 2844 2599 1912 2845 2600 1920 1788 1715 1911 2843 2598 1919 880 889 1911 2843 2598 1920 1788 1715 1931 2847 2602 387 2107 2603 1929 1757 1676 384 1755 1674 1929 1757 1676 387 2107 2603 1872 2848 2604 1874 2849 2605 1939 2850 2606 1940 2373 2227 1939 2850 2606 1874 2849 2605 1921 2851 2607 1948 833 843 1907 2852 2608 1944 2853 2609 1907 2852 2608 1948 833 843 1947 1759 1680 1958 1761 1682 1946 820 829 1957 2854 2610 1946 820 829 1958 1761 1682 1957 2854 2610 1966 2387 2242 1956 1760 1681 1967 857 866 1956 1760 1681 1966 2387 2242 1971 832 842 1949 831 841 1975 2855 2611 1974 836 846 1975 2855 2611 1949 831 841 1980 1765 1687 1936 817 826 1981 2856 2612 1934 1786 1713 1981 2856 2612 1936 817 826 1993 1771 1696 1963 2377 2228 1992 1773 1698 1970 2376 2229 1992 1773 1698 1963 2857 2228 1995 2382 2236 1994 2858 2613 2002 2383 2238 2001 2859 2614 2002 2383 2238 1994 2858 2613 2006 2860 2615 1999 843 2616 2005 847 857 1998 845 1693 2005 847 857 1999 843 2616 1990 2861 2617 2015 868 877 1991 2862 2241 2014 2863 864 1991 2862 2241 2015 868 877 2022 1776 1700 2008 2384 2239 2023 2864 2618 1984 2380 2233 2023 2864 2618 2008 2384 2239 1984 2380 2233 1960 2379 2232 2023 2864 2618 1961 2865 2619 2023 2864 2618 1960 2379 2232 2029 867 876 2028 865 874 2025 2388 2244 2024 2866 2620 2025 2388 2244 2028 865 874 2011 852 862 2035 870 879 1988 851 861 2031 2867 2621 1988 851 861 2035 870 879 2038 2389 2622 2042 871 880 2037 2868 2623 2041 873 882 2037 2868 2623 2042 871 880 2044 2390 2249 2048 876 885 509 221 2624 514 875 884 509 221 2624 2048 876 885 1976 2869 2625 1981 2856 2626 2051 2391 2250 2050 2870 2627 2051 2391 2250 1981 2856 2626 1928 814 823 2058 2871 2628 383 812 821 526 2872 2629 383 812 821 2058 2871 2628 2052 2873 2630 2065 2874 2631 1915 2368 2221 1914 2875 2632 1915 2368 2221 2065 2874 2631 2073 893 902 2057 1789 1716 543 894 903 525 2876 2633 543 894 903 2057 1789 1716 2068 1799 1726 2069 2393 2252 2080 1798 1725 2081 2877 2634 2080 1798 1725 2069 2393 2252 2087 2878 2635 2075 2879 2636 2088 2880 2637 2076 2394 2253 2088 2880 2637 2075 2879 2636 2093 900 909 2080 1798 1725 2095 2400 2261 2096 1800 1728 2095 2400 2261 2080 1798 1725 2102 909 918 2086 1795 1722 2103 907 916 2087 2878 2635 2103 907 916 2086 1795 1722 2098 2881 2638 2099 2397 2256 2110 2882 2639 2111 917 926 2110 2882 2639 2099 2397 2256 2106 2399 2258 2118 2883 2640 2105 2884 2641 2117 2885 2642 2105 2884 2641 2118 2883 2640 2123 912 921 2125 2401 2262 603 914 923 606 2886 2643 603 914 923 2125 2401 2262 2128 1813 1741 2133 924 933 2127 1807 1735 2132 1808 1736 2127 1807 1735 2133 924 933 2118 2883 2640 2138 2887 2644 2117 2885 2642 2139 2888 2645 2117 2885 2642 2138 2887 2644 628 928 937 2145 927 936 604 1806 1734 2124 1805 1733 604 1806 1734 2145 927 936 2140 2889 2646 2153 2890 2647 2141 2891 2648 2152 1818 1747 2141 2891 2648 2153 2890 2647 2147 2892 2649 2148 2893 2650 2160 938 948 2161 936 946 2160 938 948 2148 2893 2650 2154 2894 2651 2168 939 949 2153 2890 2647 2167 2404 2265 2153 2890 2647 2168 939 949 2163 2895 2652 649 282 2653 2175 1824 1753 663 1825 1754 2175 1824 1753 649 282 2653 2182 2896 2654 2186 942 952 671 2897 2655 676 941 951 671 2897 2655 2186 942 952 2174 1821 1750 2175 1824 1753 2191 2898 2656 2190 944 954 2191 2898 2656 2175 1824 1753 671 2897 2655 686 2899 2657 2182 2896 2654 2194 2900 2658 2182 2896 2654 686 2899 2657 1996 2901 2659 1879 1745 1663 2205 953 963 2206 1832 1760 2205 953 963 1879 1745 1663 2200 2902 2660 2213 2416 2278 2199 2903 2661 2212 2904 2662 2199 2903 2661 2213 2416 2278 701 2144 2663 716 2155 2664 2207 2905 2665 2220 2906 2666 2207 2905 2665 716 2155 2664 2238 985 994 2239 986 995 2226 2907 2275 2227 1846 1773 2226 2413 2275 2239 986 995 750 2148 2667 747 322 2668 2248 2908 2669 2246 971 981 2248 2908 2669 747 322 2668 759 1841 1767 2254 1840 1766 762 1842 1769 2256 1843 1770 762 1842 1769 2254 1840 1766 2257 2414 2276 2261 1849 1776 2256 1843 1770 2260 1845 1772 2256 1843 1770 2261 1849 1776 2228 1847 1774 2229 2909 2670 2265 1848 1775 2266 2910 2671 2265 1848 1775 2229 2909 2670 2224 958 968 2269 2911 2672 2223 960 970 2259 970 980 2223 960 970 2269 2911 2672 2212 2912 2662 2273 2913 2673 2211 2914 1759 2272 2915 1777 2211 2914 1759 2273 2913 2673 2215 1851 1778 2216 2411 2272 2276 1852 1779 2277 2916 2674 2276 1852 1779 2216 2411 2272 2220 2906 2666 2281 2917 2675 2219 1833 1761 2280 1854 1781 2219 1833 1761 2281 2917 2675 2291 2918 2676 2293 1860 1787 2290 2919 2677 2292 1861 1788 2290 2919 2677 2293 1860 1787 2310 1857 1784 2296 2920 2678 2311 2921 2679 2300 2420 2281 2311 2921 2679 2296 2920 2678 2311 2921 2679 2300 2420 2281 2321 2922 2680 2318 2421 2282 2321 2922 2680 2300 2420 2281 2292 1861 1788 2325 1003 1012 2298 2419 2280 2326 2923 2681 2298 2419 2280 2325 1003 1012 2336 2924 2682 2337 2925 2683 2334 1863 1790 2335 2926 2684 2334 1863 1790 2337 2925 2683 2350 2428 2289 2351 2927 2685 2361 1013 1022 2360 2928 2686 2361 1013 1022 2351 2927 2685 2367 1865 1792 2368 2929 2687 2340 1866 1793 2345 2930 2688 2340 1866 1793 2368 2929 2687 2324 1001 1010 2293 1860 1787 2373 1043 2297 2374 1871 2689 2373 1043 2297 2293 1860 1787 2335 2931 2684 2337 2932 2683 2376 2933 2690 2375 2934 2691 2376 2933 2690 2337 2932 2683 2383 2935 2692 2358 2427 2288 2384 2936 2693 2364 1015 1024 2384 2936 2693 2358 2427 2288 2351 2927 2685 2350 2428 2289 2387 1035 2694 2388 1876 2695 2387 1035 2694 2350 2428 2289 2315 2937 2696 2314 2938 2697 2390 2939 2698 2389 2940 2699 2390 2939 2698 2314 2938 2697 2371 1018 1027 2385 1874 1801 2353 2941 2290 2396 2942 2700 2353 2943 2290 2385 2436 1801 2399 2944 417 2404 2945 410 2400 1891 1811 2403 1892 1812 2400 1891 1811 2404 2945 410 2406 2946 2067 2429 2947 413 2401 1886 1476 2428 1054 1057 2401 1886 1476 2429 2947 413 2416 1050 425 2421 2948 1054 2436 1943 424 2437 2949 2089 2436 1943 424 2421 2948 1054 2446 1076 1072 2445 1055 1058 2448 1058 1059 2450 1059 1060 2448 1058 1059 2445 1055 1058 2456 2950 1817 2457 2951 2068 2408 2952 2066 2430 2953 412 2408 2952 2066 2457 2951 2068 2461 1060 1061 2462 1061 1062 2466 2954 431 2467 2449 429 2466 2954 431 2462 1061 1062 2413 2443 420 2418 1880 1471 2479 1904 1475 2478 2955 453 2479 1904 1475 2418 1880 1471 2465 2956 2701 2485 2957 2071 2470 2958 2702 2486 2959 457 2470 2958 2702 2485 2957 2071 2401 1886 1476 2504 2452 1477 2406 2946 2067 2503 2960 2703 2406 2946 2067 2504 2452 1477 2512 2961 2704 2510 1074 1070 2461 1060 1061 2448 1058 1059 2461 1060 1061 2510 1074 1070 2498 1899 1816 2520 2962 2070 2497 1071 1068 2518 1080 1074 2497 1071 1068 2520 2962 2070 2475 1894 1813 2528 2963 2073 2476 1893 1479 2529 2455 1480 2476 1893 1479 2528 2963 2073 2535 1087 1078 2537 2964 2076 2482 1085 434 2484 1897 1815 2482 1085 434 2537 2964 2076 2544 2965 2705 2529 2455 1480 2543 2966 2072 2528 2963 2073 2543 2966 2072 2529 2455 1480 2534 1088 1079 2529 2455 1480 2549 2967 2075 2544 2965 2705 2549 2967 2075 2529 2455 1480 2550 2968 2074 2552 2969 2077 2535 1087 1078 2537 2964 2076 2535 1087 1078 2552 2969 2077 2555 1100 1086 2556 2970 2078 2540 1912 454 2541 1089 1080 2540 1912 454 2556 2970 2078 2571 2971 482 2572 1164 480 2565 1105 1087 2566 1915 1505 2565 1105 1087 2572 1164 480 2590 1123 1096 2589 1110 1090 2573 2466 1487 2568 1916 472 2573 2466 1487 2589 1110 1090 2601 1971 1490 2560 1107 1088 2602 1968 1511 2559 1914 1512 2602 1968 1511 2560 1107 1088 2614 2972 2082 2574 1128 1100 2613 2973 483 2575 2974 2079 2613 2973 483 2574 1128 1100 2596 1112 540 2577 1114 1091 2619 2975 2706 2618 1922 1823 2619 2975 2706 2577 1114 1091 2626 1125 1098 2631 2976 2707 2627 1127 1099 2632 2977 2708 2627 1127 1099 2631 2976 2707 2642 1149 493 2641 2978 2084 2607 2471 492 2600 2469 1491 2607 2471 492 2641 2978 2084 2633 2979 2081 2632 2977 2708 2651 2476 496 2650 2980 498 2651 2476 496 2632 2977 2708 2583 1918 2709 2584 1196 2710 2666 2981 2086 2668 1197 2085 2666 2981 2086 2584 1196 2710 2631 2976 2707 2674 2982 2087 2649 2983 2083 2675 2485 1503 2649 2983 2083 2674 2982 2087 2677 1202 1160 2654 1201 1159 2682 1938 1834 2679 2984 504 2682 1938 1834 2654 1201 1159 2693 1192 520 2640 1187 1825 2691 2985 521 2638 1131 1101 2691 2985 521 2640 1187 1825 2646 1135 1105 2648 1926 1827 2699 2986 527 2700 1159 528 2699 2986 527 2648 1926 1827 2667 2987 503 2666 2981 2086 2707 2988 2711 2706 2989 519 2707 2988 2711 2666 2981 2086 2671 2477 501 2667 2987 503 2711 2990 524 2707 2988 2711 2711 2990 524 2667 2987 503 2713 1936 1832 2714 2991 525 2673 1928 1828 2674 2982 2087 2673 1928 1828 2714 2991 525 2718 1204 1162 2677 1202 1160 2717 1937 1833 2682 1938 1834 2717 1937 1833 2677 1202 1160 2731 1176 1506 2433 1885 1473 2730 2992 2712 2434 1884 1808 2730 2992 2712 2433 1885 1473 2452 1168 1126 2734 1169 1127 2464 2993 2069 2736 2994 2713 2464 2993 2069 2734 1169 1127 2727 1941 2714 2581 2462 1485 2725 2995 2715 2587 2464 1486 2725 2995 2715 2581 2462 1485 2728 2996 2093 2729 1944 2716 2595 2467 1488 2619 2975 2706 2595 2467 1488 2729 1944 2716 2732 2487 533 2721 2486 2088 2398 2997 419 2405 2998 411 2398 2997 419 2721 2486 2088 2746 2492 551 2723 1182 1140 2747 1185 1143 2599 1181 1139 2747 1185 1143 2723 1182 1140 2725 2995 2717 2587 2464 2718 2749 2493 555 2750 1190 1149 2749 2493 555 2587 2464 2718 2752 2494 556 2753 1188 1147 2755 2495 557 2756 1191 1150 2755 2495 557 2753 1188 1147 2758 2496 559 2759 1193 1152 2761 2497 562 2762 1195 1154 2761 2497 562 2759 1193 1152 2744 1960 2719 2763 1962 2720 2686 2479 1500 2653 2480 515 2686 2479 1500 2763 1962 2720 2558 2999 2721 2517 3000 2722 2764 3001 568 2494 1077 2098 2764 3001 568 2517 3002 2722 2772 3003 2723 2774 3004 2724 2771 2501 2725 2773 1206 2726 2771 2501 2725 2774 3004 2724 2791 1217 1858 2783 1218 578 2792 1972 1859 2784 588 580 2792 1972 1859 2783 1218 578 2789 1212 2727 2799 1974 2728 2791 1217 1858 2801 1209 1167 2791 1217 1858 2799 1974 2728 2799 1974 2728 2789 1212 2727 2805 2503 2729 2810 1213 2730 2805 2503 2729 2789 1212 2727 2813 1973 589 2815 1975 1863 2814 586 2103 2816 1603 1865 2814 586 2103 2815 1975 1863 2825 1215 1175 2826 1216 1176 2836 2502 2731 2835 1219 1180 2836 2502 2731 2826 1216 1176 2851 3005 1872 2848 2504 2298 2844 3006 1190 2842 2505 1867 2844 3006 1190 2848 2504 2298 2869 1231 1193 2857 1230 1192 2870 2527 2732 2856 2528 2733 2870 2527 2732 2857 1230 1192 2871 2513 2304 2860 2511 2302 2873 2514 2305 2862 2515 2306 2873 2514 2305 2860 2511 2302 2875 2516 2307 2864 2517 2308 2877 3007 2734 2866 3008 2735 2877 3007 2734 2864 2517 2308 2881 2520 1879 2882 2519 2312 2880 3009 1881 2879 3010 2736 2880 3009 1881 2882 2519 2312 2884 2521 2313 2883 2522 2314 2886 2523 2315 2885 2524 2316 2886 2523 2315 2883 2522 2314 2900 3011 1211 2902 3012 2737 2887 3013 2318 2889 3014 2738 2887 3013 2318 2902 3012 2737 2906 3015 2739 2908 2530 2321 2916 3016 2740 2919 2529 2320 2916 3016 2740 2908 2530 2321 2921 2514 2322 2910 2515 2323 2923 2516 2324 2912 2531 2325 2923 2516 2324 2910 2515 2323 2924 1249 1896 2923 2518 2741 2925 1249 2742 2924 1249 1896 2925 1249 2742 2926 1249 1223 2948 2536 2330 2950 2538 2332 2947 2534 2328 2949 2540 2334 2947 2534 2328 2950 2538 2332 2952 2539 2333 2954 1268 1232 2951 2541 2335 2953 1270 1234 2951 2541 2335 2954 1268 1232 2938 1273 1237 2927 1272 1236 2970 3017 2743 2968 3018 2744 2970 3017 2743 2927 1272 1236 2939 2549 2339 2930 2547 2337 2941 2550 2340 2932 2551 2341 2941 2550 2340 2930 2547 2337 2943 2552 2342 2934 2553 2343 2945 3019 2745 2936 3020 2746 2945 3019 2745 2934 2553 2343 41 3021 2747 56 2034 1916 42 3022 2748 57 2033 1915 42 3022 2748 56 2034 1916 58 2556 2348 63 3023 2749 59 62 64 62 63 65 59 62 64 63 3023 2749 50 2557 2349 49 2558 2350 71 24 24 60 25 25 71 24 24 49 2558 2350 79 66 2750 80 3024 2751 64 2035 2752 63 3025 2749 64 2035 2752 80 3026 2751 67 17 17 76 2560 2352 66 19 19 77 1307 1273 66 19 19 76 2560 2352 43 3027 2347 97 3028 62 42 3029 2753 96 3030 2754 42 3029 2753 97 3031 62 107 1291 1256 23 1292 1257 106 3032 2755 24 3033 2756 106 3032 2755 23 1292 1257 115 2041 1922 16 2042 1924 114 2562 2357 17 2563 2358 114 2562 2357 16 2042 1924 118 2564 2359 119 3034 2757 13 1296 1262 12 1302 1268 13 1296 1262 119 3034 2757 119 3034 2757 123 2571 2367 12 1302 1268 46 1300 1266 12 1302 1268 123 2571 2367 130 51 2758 128 1297 1263 131 53 2759 129 2565 2361 131 53 2759 128 1297 1263 17 2563 2358 134 2566 2362 18 1311 1277 136 1312 1278 18 1311 1277 134 2566 2362 143 3035 63 141 1299 2760 96 3036 2754 96 3030 2754 97 3031 62 143 3037 63 149 72 74 148 64 66 47 1309 1275 48 1304 1270 47 1309 1275 148 64 66 82 2037 1919 155 3038 2761 85 1282 1247 154 3039 1936 85 1282 1247 155 3038 2761 61 1305 1271 152 65 67 82 2037 1919 155 3038 2761 82 2037 1919 152 65 67 163 3040 2762 165 2569 2365 111 1289 1254 45 1290 1255 111 1289 1254 165 2569 2365 168 2570 2366 169 3041 2763 123 2571 2367 46 1300 1266 123 2571 2367 169 3041 2763 169 3041 2763 172 2058 1940 46 1300 1266 146 1301 1267 46 1300 1266 172 2058 1940 200 1316 1283 179 1317 1284 201 126 129 178 2812 2764 201 126 129 179 1317 1284 209 2573 2371 184 1341 1310 211 85 87 185 1340 1309 211 85 87 184 1341 1310 190 1343 1312 216 91 93 189 1342 1311 215 2574 2372 189 1342 1311 216 91 93 221 1336 1304 220 3042 2765 225 112 115 226 3043 2766 225 112 115 220 3042 2765 7 2065 1947 161 2577 2375 233 97 99 232 2579 2376 233 97 99 161 2577 2375 238 96 98 207 1329 1297 237 2580 2377 218 2576 2374 237 2580 2377 207 1329 1297 6 3044 2378 5 2067 1951 242 3045 2379 243 2068 1952 242 2583 2379 5 2067 1951 2 89 2380 1 88 2767 246 2584 2381 247 3046 2768 246 2584 2381 1 88 2767 44 3047 2769 252 3048 2770 1 88 2767 247 3046 2768 1 88 2767 252 3048 2770 164 84 2384 254 2587 2385 44 3047 2769 252 3048 2770 44 3047 2769 254 2587 2385 255 2075 1957 261 3049 2771 257 111 114 262 2592 2392 257 111 114 261 3049 2771 275 3050 2772 276 2591 2391 274 3051 2773 272 2590 2388 274 3051 2773 276 2591 2391 278 119 122 261 3049 2771 279 120 123 260 2588 2386 279 120 123 261 3049 2771 285 127 130 188 1318 1285 284 3052 2774 187 1320 1287 284 3052 2774 188 1318 1285 191 1323 1290 288 2593 2393 187 1320 1287 284 3052 2774 187 1320 1287 288 2593 2393 309 132 135 274 2081 1963 308 2833 2775 273 2831 2776 308 2833 2775 274 2081 1963 297 2594 2394 312 2595 2395 299 2083 1965 313 137 140 299 2083 1965 312 2595 2395 323 1354 1324 299 2083 1965 322 2084 1966 301 2082 1964 322 2084 1966 299 2083 1965 332 1387 1356 330 191 196 331 2604 2407 320 3053 2777 331 2604 2407 330 191 196 326 141 144 338 1357 1327 221 143 146 220 3054 2778 221 143 146 338 1357 1327 342 151 154 346 152 155 343 1358 1328 344 154 157 343 1358 1328 346 152 155 354 157 160 355 156 159 351 2606 2779 352 2598 2399 351 2606 2779 355 156 159 206 3055 2780 289 3056 2781 363 3057 2782 362 3058 2783 363 3057 2782 289 3056 2781 363 3057 2782 362 3058 2783 372 2626 2434 371 2624 2432 372 2626 2434 362 3058 2783 388 210 214 385 2603 2405 387 2107 1992 384 1755 2404 387 2107 1992 385 2603 2405 322 2084 1976 399 2089 193 324 2085 2784 400 1376 1347 324 2085 2784 399 2089 193 374 3059 2785 358 159 174 408 175 180 404 171 176 408 175 180 358 159 174 417 3060 2786 418 2609 2414 406 2605 2410 407 2607 2412 406 2605 2410 418 2609 2414 417 3060 2786 416 2608 2413 426 206 210 427 1392 1359 426 206 210 416 2608 2413 431 1380 1350 435 3061 2787 409 3062 2788 434 3063 2789 409 3062 2788 435 3061 2787 392 169 172 395 170 173 441 3064 2790 440 2610 2415 441 3064 2790 395 170 173 453 2616 1988 452 1405 1374 423 1382 1349 430 1381 1351 423 3065 1349 452 1405 1374 455 190 195 462 193 198 454 2097 1981 461 2099 1983 454 2097 1981 462 193 198 466 2101 1985 465 2614 2420 459 2102 1987 458 1386 2422 459 2102 1987 465 2614 2420 450 2110 1996 451 3066 205 475 2111 1997 474 3067 1358 475 2111 1997 451 3066 205 482 2620 2426 483 3068 2791 468 3069 201 444 1385 1354 468 1389 201 483 3068 2791 444 1385 1354 483 3068 2791 420 178 183 421 176 181 420 178 183 483 3068 2791 491 2621 2428 486 209 213 490 1397 1364 485 208 212 490 1397 1364 486 209 213 471 3070 2792 448 199 204 498 1401 1368 493 213 217 498 1401 1368 448 199 204 502 216 220 501 217 221 507 2622 2793 506 1402 1371 507 2622 2793 501 217 221 510 220 224 509 221 225 515 2623 2431 514 875 2794 515 2623 2431 509 221 225 436 3071 2795 518 222 226 441 3064 2796 517 224 228 441 3064 2796 518 222 226 381 1368 1338 383 812 2797 527 2116 2004 526 2872 2798 527 2116 2004 383 812 2797 519 232 236 367 161 164 534 2114 2002 366 162 165 534 2114 2002 367 161 164 542 1411 1380 543 894 2799 524 2627 2435 525 2876 2800 524 2627 2435 543 894 2799 537 233 237 551 2631 2441 538 234 238 552 2118 2006 538 234 238 551 2631 2441 560 3072 2801 561 2121 2009 546 236 240 547 237 241 546 236 240 561 2121 2009 566 2632 2442 568 256 260 551 2631 2441 569 1421 1390 551 2631 2441 568 256 260 577 1417 1386 578 2634 2445 559 2630 2439 560 3072 2801 559 2630 2439 578 2634 2445 586 265 269 572 248 252 585 263 267 571 247 251 585 263 267 572 248 252 581 251 255 580 250 254 595 3073 2802 594 3074 2803 595 3073 2802 580 250 254 600 1422 1391 603 914 2804 605 260 264 606 2886 2805 605 260 264 603 914 2804 609 2125 2013 608 2126 2014 614 2636 2449 613 2635 2448 614 2636 2449 608 2126 2014 595 3073 2802 594 3074 2803 619 276 280 620 2130 2018 619 276 280 594 3074 2803 601 2123 2011 627 1427 1396 604 1806 2446 628 928 2806 604 1806 2446 627 1427 1396 621 2128 2016 622 269 273 638 3075 2807 637 2639 2453 638 3075 2807 622 269 273 630 2129 2017 645 1431 1400 631 273 277 646 2640 2454 631 273 277 645 1431 1400 639 2131 2019 638 3075 2807 655 1432 1401 654 286 290 655 1432 1401 638 3075 2807 648 280 284 662 2641 2455 649 282 286 663 1825 2457 649 282 286 662 2641 2455 676 941 2808 677 3076 2809 671 2897 2810 672 2139 2027 671 2897 2810 677 3076 2809 661 2137 2025 683 2138 2026 662 2641 2455 682 2642 2456 662 2641 2455 683 2138 2026 671 2897 2810 672 2139 2027 686 2899 2811 687 2140 2028 686 2899 2811 672 2139 2027 456 2096 1980 698 2648 2463 329 2094 1978 699 2647 2462 329 2094 1978 698 2648 2463 693 298 302 692 2142 2030 708 1457 1425 707 2153 2040 708 1457 1425 692 2142 2030 701 2144 2033 700 2145 2034 716 2155 2042 715 2154 2041 716 2155 2042 700 2145 2034 738 332 335 724 3077 1416 739 3078 2812 725 1449 1417 739 3078 2812 724 1447 1416 750 2148 2037 751 316 320 747 322 325 748 321 324 747 322 325 751 316 320 759 1841 2471 762 1842 2472 760 2657 2470 763 2658 2474 760 2657 2470 762 1842 2472 764 329 332 763 2658 2474 770 1451 1419 769 2659 2475 770 1451 1419 763 2658 2474 726 2147 2036 774 2660 2476 727 311 315 775 326 329 727 311 315 774 2660 2476 767 1446 1415 778 3079 2813 721 1440 1409 722 2651 2466 721 1440 1409 778 3079 2813 707 3080 2040 706 3081 2460 783 335 338 782 3082 2477 783 335 338 706 3081 2460 710 305 309 786 2662 2478 711 304 308 787 337 340 711 304 308 786 2662 2478 715 2154 2041 714 2649 2464 791 338 341 790 2663 2479 791 338 341 714 2649 2464 802 347 350 801 3083 2814 804 3084 1436 803 3085 2815 804 3084 1436 801 3083 2814 822 3086 2816 821 3087 2817 794 1462 1430 805 3088 2818 794 1462 1430 821 3087 2817 831 3089 2819 830 3090 2820 806 3091 2821 793 1464 1432 806 3091 2821 830 3090 2820 828 3092 2822 829 3093 2823 811 343 346 810 345 348 811 343 346 829 3093 2823 841 2171 2057 840 2159 2046 843 2681 2494 842 2160 2047 843 2681 2494 840 2159 2046 850 358 361 846 357 360 861 2163 2050 860 2680 2493 861 2163 2050 846 357 360 868 363 366 850 358 361 871 2164 2051 861 2163 2050 871 2164 2051 850 358 361 842 2160 2047 848 1475 1442 875 2682 2495 876 2165 2052 875 2682 2495 848 1475 1442 885 3094 2824 887 3095 2825 884 2167 2054 886 373 376 884 2167 2054 887 3095 2825 900 1485 1452 911 1486 1453 901 2168 2055 910 379 382 901 2168 2055 911 1486 1453 917 2685 2498 890 2179 2064 918 381 384 895 400 402 918 381 384 890 2179 2064 874 1509 1470 923 1510 1468 843 2681 2494 924 2687 2826 843 2681 2494 923 1510 1468 885 3096 2824 926 386 2827 887 3097 2825 925 2172 2828 887 3097 2825 926 386 2827 933 399 401 934 394 396 908 1483 1450 914 1484 1451 908 1483 1450 934 394 396 901 2168 2055 937 2690 2829 900 1485 1452 938 2691 2830 900 1485 1452 937 2690 2829 865 368 371 940 3098 2831 864 3099 2832 939 3100 2833 864 3099 2832 940 3098 2831 921 1490 1457 903 3101 1455 935 1499 2503 946 3102 2065 935 1499 2503 903 3103 1455 953 2182 1812 954 410 410 950 2185 1811 949 417 417 950 2185 1811 954 410 410 956 2184 2067 951 1526 1476 979 413 413 978 2698 1057 979 413 413 951 1526 1476 966 425 425 986 424 424 971 3104 1054 987 551 2089 971 3104 1054 986 424 424 996 1525 1072 998 3105 1059 995 2699 1058 1000 2700 1060 995 2699 1058 998 3105 1059 1006 3106 1817 958 2183 2066 1007 2188 2068 980 412 412 1007 2188 2068 958 2183 2066 1011 3107 1061 1016 431 431 1012 2701 1062 1017 429 429 1012 2701 1062 1016 431 431 963 420 420 1029 1524 1475 968 1512 1471 1028 454 453 968 1512 1471 1029 1524 1475 1015 3108 2701 1020 3109 2702 1035 2196 2071 1036 458 457 1035 2196 2071 1020 3109 2702 951 1526 1476 956 2184 2067 1054 1528 1477 1053 3110 2703 1054 1528 1477 956 2184 2067 1062 3111 2704 1011 3107 1061 1060 3112 1070 998 3105 1059 1060 3112 1070 1011 3107 1061 1048 2193 1816 1047 2705 1068 1070 2195 2070 1068 2708 1074 1070 2195 2070 1047 2705 1068 1025 2702 1813 1026 1532 1479 1078 2199 2073 1079 1533 1480 1078 2199 2073 1026 1532 1479 1085 2201 1078 1032 434 434 1087 2204 2076 1034 2704 1815 1087 2204 2076 1032 434 434 1094 3113 2705 1093 2197 2072 1079 1533 1480 1078 2199 2073 1079 1533 1480 1093 2197 2072 1084 1531 1079 1099 2203 2075 1079 1533 1480 1094 3113 2705 1079 1533 1480 1099 2203 2075 1100 2202 2074 1085 2201 1078 1102 2205 2077 1087 2204 2076 1102 2205 2077 1085 2201 1078 1105 2714 1086 1090 455 454 1106 2206 2078 1091 1535 1080 1106 2206 2078 1090 455 454 1116 1582 1505 1122 482 480 1115 2716 1087 1121 484 482 1115 2716 1087 1122 482 480 1140 3114 1096 1123 1543 1487 1139 2717 1090 1118 474 472 1139 2717 1090 1123 1543 1487 1151 1546 1490 1152 1587 1511 1110 2715 1088 1109 1588 1512 1110 2715 1088 1152 1587 1511 1164 2216 2082 1163 485 483 1124 3115 1100 1125 2207 2079 1124 3115 1100 1163 485 483 1146 543 540 1169 3116 2706 1127 2209 1091 1168 2721 1823 1127 2209 1091 1169 3116 2706 1176 2729 1098 1177 2722 1099 1181 3117 2707 1182 3118 2708 1181 3117 2707 1177 2722 1099 1192 495 493 1157 494 492 1191 2221 2084 1150 1547 1491 1191 2221 2084 1157 494 492 1183 2215 2081 1201 498 496 1182 3118 2708 1200 500 498 1182 3118 2708 1201 498 496 1133 2718 2709 1216 2226 2086 1134 2719 2710 1218 2225 2085 1134 2719 2710 1216 2226 2086 1181 3117 2707 1199 2217 2083 1224 2227 2087 1225 1580 1503 1224 2227 2087 1199 2217 2083 1227 3119 1160 1232 2737 1834 1204 2218 1159 1229 507 504 1204 2218 1159 1232 2737 1834 1243 523 520 1241 524 521 1190 2724 1825 1188 2723 1101 1190 2724 1825 1241 524 521 1196 2726 1105 1249 530 527 1198 2220 1827 1250 531 528 1198 2220 1827 1249 530 527 1217 505 503 1257 3120 2711 1216 2226 2086 1256 522 519 1216 2226 2086 1257 3120 2711 1221 503 501 1261 527 524 1217 505 503 1257 3120 2711 1217 505 503 1261 527 524 1263 2735 1832 1223 2728 1828 1264 528 525 1224 2227 2087 1264 528 525 1223 2728 1828 1232 2737 1834 1227 3119 1160 1267 2736 1833 1268 3121 1162 1267 2736 1833 1227 3119 1160 1281 1583 1506 1280 2228 2712 983 1518 1473 984 2697 1808 983 1518 1473 1280 2228 2712 1002 2187 1126 1014 2190 2069 1284 2744 1127 1286 2230 2713 1284 2744 1127 1014 2190 2069 1277 2740 2714 1275 3122 2715 1131 1541 1485 1137 1542 1486 1131 1541 1485 1275 3122 2715 1278 2229 2093 1145 1544 1488 1279 2741 2716 1169 3116 2706 1279 2741 2716 1145 1544 1488 1282 536 533 948 419 419 1271 1581 2088 955 411 411 1271 1581 2088 948 419 419 1296 552 551 1297 1591 1143 1273 1590 1140 1149 2720 1139 1273 1590 1140 1297 1591 1143 1275 3122 2717 1299 555 555 1137 1542 2718 1300 1592 1149 1137 1542 2718 1299 555 555 1302 556 556 1305 557 557 1303 1593 1147 1306 1594 1150 1303 1593 1147 1305 557 557 1308 559 559 1311 562 562 1309 1595 1152 1312 1597 1154 1309 1595 1152 1311 562 562 1294 2747 2719 1236 1566 1500 1313 2748 2720 1203 3123 515 1313 2748 2720 1236 1566 1500 1108 3124 2721 1314 568 568 1067 3125 2722 1044 2236 2098 1067 3126 2722 1314 568 568 1322 3127 2723 1321 576 2725 1324 3128 2724 1323 1602 2726 1324 3128 2724 1321 576 2725 1341 1605 1858 1342 1210 1859 1333 578 578 1334 580 580 1333 578 578 1342 1210 1859 1339 1606 2727 1341 1605 1858 1349 581 2728 1351 1607 1167 1349 581 2728 1341 1605 1858 1349 581 2728 1355 583 2729 1339 1606 2727 1360 1608 2730 1339 1606 2727 1355 583 2729 1363 577 589 1364 579 2103 1365 589 1863 1366 1216 1865 1365 589 1863 1364 579 2103 1375 590 1175 1386 592 2731 1376 1603 1176 1385 1604 1180 1376 1603 1176 1386 592 2731 1390 3129 2834 1389 3130 2512 1391 593 594 1392 594 595 1391 593 594 1389 3130 2512 1402 1610 1529 1404 3131 2513 1401 1612 1531 1403 3132 2515 1401 1612 1531 1404 3131 2513 1416 3133 2517 1415 601 602 1414 3134 2835 1413 603 604 1414 3134 2835 1415 601 602 1423 3135 2836 1424 3136 2837 1422 2249 2110 1421 2250 2111 1422 2249 2110 1424 3136 2837 1431 3137 1538 1429 3138 2838 1436 3139 2117 1435 3140 2116 1436 3139 2117 1429 3138 2838 1446 3141 2839 1448 3142 2118 1438 1626 1541 1444 1624 1539 1438 1626 1541 1448 3142 2118 1453 608 2840 1456 609 2841 1457 609 619 1458 610 618 1457 609 619 1456 609 2841 1457 611 619 1466 612 622 1453 612 2840 1465 613 2842 1453 612 2840 1466 612 622 1479 623 625 1478 624 626 1480 3143 2527 1477 3144 2529 1480 3143 2527 1478 624 626 1497 1658 2130 1485 1659 2843 1500 1659 2129 1486 1660 2844 1500 1659 2129 1485 1659 2843 1502 1642 1560 1489 1641 1558 1504 1643 1561 1491 1644 1562 1504 1643 1561 1489 1641 1558 1496 1665 2845 1507 1666 2846 1495 1666 2135 1508 1667 638 1495 1666 2135 1507 1666 2846 1523 1652 1569 1522 1651 1568 1524 3145 2535 1521 3146 2533 1524 3145 2535 1522 1651 1568 1525 1653 1570 1526 1654 1571 1527 1655 1572 1528 1656 1573 1527 1655 1572 1526 1654 1571 1518 640 644 1520 3147 2847 1517 642 646 1519 3148 2539 1517 642 646 1520 3147 2847 1535 645 649 1537 1662 1580 1547 643 647 1550 1661 1579 1547 643 647 1537 1662 1580 1552 1663 1581 1539 1664 1582 1554 1645 2144 1541 3149 2543 1554 1645 2144 1539 1664 1582 1557 3150 2147 1560 1669 1587 1565 3151 662 1566 1668 661 1565 3151 662 1560 1669 1587 1563 3152 2848 1572 3153 2150 1564 3153 2849 1571 3154 2148 1564 3153 2849 1572 3153 2150 1611 676 685 1612 677 686 1626 665 672 1627 2306 2152 1626 665 672 1612 677 686 1630 2786 2546 1637 2791 2850 1629 710 719 1638 711 720 1629 710 719 1637 2791 2850 1658 2308 2154 1655 2806 2562 1657 2309 2155 1656 3155 2851 1657 2309 2155 1655 2806 2562 1633 2789 2549 1656 3156 2851 1634 2324 2174 1655 2806 2562 1634 2324 2174 1656 3156 2851 1663 1687 1606 1609 660 667 1661 1688 1607 1608 662 669 1661 1688 1607 1609 660 667 1672 1694 1614 1662 1695 1615 1620 658 665 1607 656 663 1620 658 665 1662 1695 1615 1604 690 2852 1683 755 2853 1605 3157 2854 1681 3158 2855 1605 3157 2854 1683 755 2853 1688 2800 2556 1589 701 710 1689 2317 2856 1588 2318 2857 1689 2317 2856 1589 701 710 1594 3159 1610 1693 3160 2167 1694 721 730 1694 721 730 1584 3161 2858 1594 3159 1610 1698 696 705 1700 697 706 1697 707 716 1699 709 718 1697 707 716 1700 697 706 1589 701 710 1705 699 708 1588 2318 2857 1703 2802 2859 1588 2318 2857 1705 699 708 1667 1681 1598 1666 675 684 1710 1700 1620 1708 1689 1608 1710 1700 1620 1666 675 684 1718 3162 2860 1716 3163 2561 1717 3164 2861 1715 3165 1611 1717 3164 2861 1716 3163 2561 1613 1680 1597 1723 3166 2862 1628 1697 1617 1724 712 721 1628 1697 1617 1723 3166 2862 1727 3167 2564 1658 2308 2154 1729 2327 2863 1660 1679 2156 1729 2327 2863 1658 2308 2154 1667 1681 1598 1731 724 733 1613 1680 1597 1723 3166 2862 1613 1680 1597 1731 724 733 1602 683 692 1735 718 727 1685 685 694 1739 2330 2180 1685 685 694 1735 718 727 1591 1682 1601 1740 2331 2181 1709 2332 2182 1743 2333 2183 1709 2332 2182 1740 2331 2181 1745 2810 2566 1719 706 715 1746 2334 2184 1720 708 717 1746 2334 2184 1719 706 715 1765 777 786 181 80 2864 1764 778 787 180 2059 2865 1764 778 787 181 80 2864 1749 1735 1653 1773 2813 2569 1750 1728 1646 1774 762 772 1750 1728 1646 1773 2813 2569 1747 1703 1623 1754 1736 1654 1772 1705 1625 1778 2814 2570 1772 1705 1625 1754 1736 1654 1790 3168 2866 1785 3169 2867 1789 3170 2868 1784 3171 2869 1789 3170 2868 1785 3169 2867 1579 3172 747 1799 2339 2189 1580 3173 2572 1795 2817 2573 1580 3174 2572 1799 2339 2189 1770 3175 2870 1801 3176 2871 1769 2340 2190 1800 2342 2192 1769 2340 2190 1801 3176 2871 1577 734 2872 1578 735 2574 1805 2343 2873 1804 2819 2575 1805 2343 2873 1578 735 2574 1583 765 2195 1573 764 1644 1809 757 767 1583 763 2195 1809 757 767 1810 3177 2196 1580 1721 1639 1734 2348 2199 1802 748 758 1814 2349 2200 1802 748 758 1734 2348 2199 1582 3178 2188 1792 739 749 1816 2826 2582 1818 2825 2581 1816 2826 2582 1792 739 749 1825 772 781 1824 773 782 1820 2350 2201 1819 2351 2202 1820 2350 2201 1824 773 782 1828 768 777 1827 769 778 1833 1733 1651 1834 2828 2584 1833 1733 1651 1827 769 778 1837 776 785 1836 1737 1655 1748 1702 1622 1747 1703 1623 1748 1702 1622 1836 1737 1655 1752 1707 1627 1753 1706 1626 1841 2830 2586 1842 780 789 1841 2830 2586 1753 1706 1626 1846 781 790 1845 3179 2874 1756 1712 1632 1757 1711 1631 1756 1712 1632 1845 3179 2874 1831 2356 2208 1862 784 793 1830 2832 2588 1861 2834 2590 1830 2832 2588 1862 784 793 1856 1747 1666 1866 2360 2213 1854 2835 2591 1865 2836 2592 1854 2835 2591 1866 2360 2213 1875 2358 2211 1874 2849 2875 1873 2357 2210 1872 2837 1664 1873 2357 2210 1874 2849 2875 1884 1748 1667 1883 796 805 1856 1747 1666 1866 2360 2213 1856 1747 1666 1883 796 805 1875 2358 2211 1876 2359 2212 1889 2362 2215 1887 798 807 1889 2362 2215 1876 2359 2212 1898 805 814 1897 803 812 1895 2840 2595 1894 822 2876 1895 2840 2595 1897 803 812 1906 3180 2877 1904 2842 2597 1905 2367 2220 1902 2366 2219 1905 2367 2220 1904 2842 2597 1907 2852 2878 1906 3180 2877 1913 1791 1718 1914 2875 2632 1913 1791 1718 1906 3180 2877 1907 2852 2878 1913 1791 1718 1921 3181 2879 1922 884 893 1921 3181 2879 1913 1791 1718 390 877 886 1933 878 887 393 1369 2224 1935 816 825 393 1369 2224 1933 878 887 1942 825 835 1941 826 836 1890 2371 2225 1888 3182 2880 1890 2371 2225 1941 826 836 1951 2372 2226 1950 3183 2231 1940 2373 2227 1939 2850 2606 1940 2373 2227 1950 3184 2231 1944 2853 2609 1952 827 837 1943 3185 2881 1959 829 839 1943 3185 2881 1952 827 837 1968 858 867 1969 1775 1699 1955 823 833 1954 824 834 1955 823 833 1969 1775 1699 1925 2369 2222 1978 837 2230 1926 2370 2223 1977 3186 2882 1926 2370 2223 1978 837 2230 1939 3187 2606 1982 842 852 1872 1746 2604 1886 840 850 1872 1746 2604 1982 842 852 1879 1745 1663 1996 2901 2659 1878 791 800 1994 2858 2613 1878 791 800 1996 2901 2659 2003 1828 1757 2001 2859 2614 1996 2901 2659 1994 2858 2613 1996 2901 2659 2001 2859 2614 2007 862 871 2000 863 872 2006 2860 2615 1999 843 2616 2006 2860 2615 2000 863 872 2016 3188 2883 1993 3189 1696 2017 3190 2884 2012 3191 1695 2017 3190 2884 1993 3189 1696 1964 830 840 2017 3190 2884 1965 1762 1683 2018 2385 2240 1965 1762 1683 2017 3190 2884 2024 2866 2620 484 2106 2885 1931 2847 2602 387 2107 2603 1931 2847 2602 484 2106 2885 2031 2867 2621 2030 1779 2886 2027 860 869 2026 861 870 2027 860 869 2030 1779 2886 2033 866 875 2037 2868 2623 2032 864 873 2036 1781 1705 2032 864 873 2037 2868 2623 1990 2861 2617 2043 1785 1711 2015 868 877 2039 869 878 2015 868 877 2043 1785 1711 2050 2870 2887 2049 1787 1714 2046 872 881 2045 874 883 2046 872 881 2049 1787 1714 1915 2368 2221 1916 810 819 2052 2873 2630 2053 2392 2251 2052 2873 2630 1916 810 819 2060 2395 2254 2059 3192 2888 1977 3186 2882 1926 2370 2223 1977 3186 2882 2059 3192 2888 2065 2874 2631 2052 2873 2630 2067 898 907 2068 1799 1726 2067 898 907 2052 2873 2630 2058 2871 2628 2059 3192 2888 2074 1794 1721 2075 2879 2636 2074 1794 1721 2059 3192 2888 2070 889 898 2071 887 896 2082 3193 2889 2083 2396 2255 2082 3193 2889 2071 887 896 2089 3194 2890 2077 891 900 2090 2398 2257 2078 892 901 2090 2398 2257 2077 891 900 2081 2877 2634 2082 3193 2889 2097 1802 1730 2098 2881 2638 2097 1802 1730 2082 3193 2889 2105 2884 2641 2104 1804 1732 2089 3194 2890 2088 2880 2637 2089 3194 2890 2104 1804 1732 2113 3195 2891 2112 915 924 2101 903 912 2100 902 911 2101 903 912 2112 915 924 2119 1811 1739 2107 904 913 2120 921 930 2094 906 915 2120 921 930 2107 904 913 2124 1805 1733 2128 1813 1741 2122 911 920 2127 1807 1735 2122 911 920 2128 1813 1741 2126 1809 1737 2131 1810 1738 2129 916 925 2130 918 927 2129 916 925 2131 1810 1738 2116 1803 1731 2140 2889 2646 2115 908 917 2141 2891 2648 2115 908 917 2140 2889 2646 2135 925 934 2143 926 935 2147 2892 2649 2148 2893 2650 2147 2892 2649 2143 926 935 2138 2887 2644 2155 3196 2892 2139 2888 2645 2154 2894 2651 2139 2888 2645 2155 3196 2892 2149 2402 2263 2150 929 938 2162 1820 1749 2163 2895 2652 2162 1820 1749 2150 929 938 2156 2403 2264 2164 1822 1751 2155 3196 2892 2169 940 950 2155 3196 2892 2164 1822 1751 2166 1819 1748 2177 3197 2893 2165 933 943 2176 3198 2894 2165 933 943 2177 3197 2893 2187 3199 2895 2183 2406 2267 2188 3200 2896 2184 1826 1755 2188 3200 2896 2183 2406 2267 2174 1821 1750 2191 2898 2656 2173 937 947 2192 2405 2266 2173 937 947 2191 2898 2656 2182 2896 2654 2194 2900 2658 2183 2406 2267 2195 2407 2268 2183 2406 2267 2194 2900 2658 1853 3201 2897 2200 2902 2660 1851 3202 2898 2199 2903 2661 1851 3202 2898 2200 2902 2660 306 788 797 701 2144 2663 1859 790 799 2207 2905 2665 1859 790 799 701 2144 2663 2214 1853 1780 2201 2408 2269 2215 1851 1778 2202 950 960 2215 1851 1778 2201 2408 2269 2209 951 961 2210 1829 1758 2208 2409 2270 2221 2415 2277 2208 2409 2270 2210 1829 1758 2240 3203 2899 2241 3204 2900 2228 1847 1774 2229 2909 2670 2228 1847 1774 2241 3204 2900 750 2148 2667 2248 2908 2669 753 1445 2274 2250 966 976 753 1445 2274 2248 2908 2669 2222 2412 2273 2258 969 979 719 309 2901 765 320 2902 719 309 2901 2258 969 979 2225 1835 1763 2226 3205 2275 2262 3206 2903 2263 3207 983 2262 3208 2903 2226 3209 2275 2229 2909 2670 2230 978 987 2266 2910 2671 2267 979 988 2266 2910 2671 2230 978 987 2221 2415 2277 2270 981 990 717 2152 2904 780 331 2905 717 2152 2904 2270 981 990 2213 2416 2278 2274 983 992 2212 2904 2662 2273 2913 2673 2212 2904 2662 2274 983 992 2277 2916 2674 2216 2411 2272 2278 989 998 2217 956 966 2278 989 998 2216 2411 2272 2220 2906 2666 716 2155 2664 2281 2917 2675 792 340 2906 2281 2917 2675 716 2155 2664 2290 2919 2677 2292 1861 1788 2297 2418 2279 2298 2419 2280 2297 2418 2279 2292 1861 1788 2308 995 1004 2309 994 1003 2313 2422 2283 2312 2423 2284 2313 2422 2283 2309 994 1003 2312 2423 2284 2311 2921 2679 2322 2425 2286 2321 2922 2680 2322 2425 2286 2311 2921 2679 2298 2419 2280 2326 2923 2681 2302 1859 1786 2327 1006 1015 2302 1859 1786 2326 2923 2681 2343 1009 1018 2336 2924 2682 2342 1862 1789 2334 1863 1790 2342 1862 1789 2336 2924 2682 2351 2927 2685 2352 1017 1026 2360 2928 2686 2362 1019 1028 2360 2928 2686 2352 1017 1026 2368 2929 2687 2369 1868 1795 2345 2930 2688 2349 1869 1796 2345 2930 2688 2369 1868 1795 2289 1855 1782 2376 2933 2907 2291 2918 2676 2375 2934 2908 2291 2918 2676 2376 2933 2907 2377 2431 2909 2378 1023 2910 2333 3210 1038 2330 2433 1037 2333 3211 1038 2378 1023 2910 2364 1015 1024 2356 1016 1025 2384 2936 2693 2382 1872 1799 2384 2936 2693 2356 1016 1025 2390 3212 2911 2389 3213 2912 2383 2935 2692 2358 2427 2288 2383 2935 2692 2389 3214 2912 2393 1037 2913 2392 1038 1805 2345 2930 2688 2340 1866 1793 2345 2930 2688 2392 1038 1805 2363 2440 1794 2353 3215 2290 2395 2439 2295 2396 3216 2700 2395 2439 2295 2353 3217 2290 2404 2945 410 2410 1888 408 2403 1892 1812 2409 1067 1066 2403 1892 1812 2410 1888 408 2408 2952 2066 2430 2953 412 2406 2946 2067 2429 2947 413 2406 2946 2067 2430 2953 412 2400 1891 1811 2440 3218 433 2399 2944 417 2441 3219 416 2399 2944 417 2440 3218 433 2444 1053 1056 2443 1166 1124 2451 1889 1809 2452 1168 1126 2451 1889 1809 2443 1166 1124 2457 2951 2068 2458 2446 427 2430 2953 412 2412 2447 414 2430 2953 412 2458 2446 427 2463 1890 1810 2464 2993 2069 2468 1064 1064 2469 1062 1063 2468 1064 1064 2464 2993 2069 2440 3218 433 2400 1891 1811 2481 1086 432 2476 1893 1479 2481 1086 432 2400 1891 1811 2489 1072 444 2471 3220 430 2490 1070 438 2472 2450 428 2490 1070 438 2471 3220 430 2423 3221 439 2417 1901 1472 2506 1095 441 2507 1900 460 2506 1095 441 2417 1901 1472 2513 3222 465 2466 2954 431 2514 1103 443 2471 3220 430 2514 1103 443 2466 2954 431 2499 1946 1508 2521 1173 1131 2498 1899 1816 2520 2962 2070 2498 1899 1816 2521 1173 1131 2479 1904 1475 2478 2955 453 2532 1906 1481 2531 1910 452 2532 1906 1481 2478 2955 453 2538 2457 1483 2539 1913 455 2485 2957 2071 2486 2959 457 2485 2957 2071 2539 1913 455 2543 2966 2072 2528 2963 2073 2545 1097 1085 2530 1911 1820 2545 1097 1085 2528 2963 2073 2535 1087 1078 2534 1088 1079 2550 2968 2074 2549 2967 2075 2550 2968 2074 2534 1088 1079 2537 2964 2076 2552 2969 2077 2538 2457 1483 2553 2458 463 2538 2457 1483 2552 2969 2077 2556 2970 2078 2557 2461 467 2541 1089 1080 2542 1090 1081 2541 1089 1080 2557 2461 467 2575 2974 2079 2580 2463 469 2576 3223 547 2581 2462 1485 2576 3223 547 2580 2463 469 2591 1921 1492 2577 1114 1091 2592 1186 2080 2582 1115 1092 2592 1186 2080 2577 1114 1091 2563 1917 474 2588 1111 477 2604 1919 1822 2605 1118 479 2604 1919 1822 2588 1111 477 2613 2973 483 2575 2974 2079 2615 1162 481 2576 3223 547 2615 1162 481 2575 2974 2079 2608 1117 1093 2621 1124 1097 2610 1119 484 2622 1126 486 2610 1119 484 2621 1124 1097 2629 3224 542 2628 1924 1824 2634 2489 544 2633 2979 2081 2634 2489 544 2628 1924 1824 2637 1931 1495 2643 2483 511 2570 2474 1496 2614 2972 2082 2570 2474 1496 2643 2483 511 2650 2980 498 2649 2983 2083 2657 1141 499 2655 3225 505 2657 1141 499 2649 2983 2083 2670 1139 1109 2608 1117 1093 2669 1935 1501 2606 1116 478 2669 1935 1501 2608 1117 1093 2654 1201 1159 2660 2478 1499 2679 2984 504 2678 1143 506 2679 2984 504 2660 2478 1499 2647 1925 1826 2684 3226 508 2648 1926 1827 2656 3227 510 2648 1926 1827 2684 3226 508 2642 1149 493 2695 1148 1113 2641 2978 2084 2694 1154 1117 2641 2978 2084 2695 1148 1113 2701 1161 1122 2656 3227 510 2702 3228 517 2683 2482 509 2702 3228 517 2656 3227 510 2708 1194 518 2706 2989 519 2668 1197 2085 2666 2981 2086 2668 1197 2085 2706 2989 519 2711 2990 524 2705 1934 522 2671 2477 501 2665 1927 1497 2671 2477 501 2705 1934 522 2674 2982 2087 2714 2991 525 2675 2485 1503 2715 1158 526 2675 2485 1503 2714 2991 525 2721 2486 2088 2719 1165 531 2405 2998 411 2411 1887 409 2405 2998 411 2719 1165 531 2437 2949 2089 2422 2491 2090 2436 1943 424 2722 1945 1838 2436 1943 424 2422 2491 2090 2469 1062 1063 2737 3229 2091 2474 1063 535 2738 2488 534 2474 1063 535 2737 3229 2091 2730 2992 2092 2728 2996 2093 2594 2468 473 2595 2467 1488 2594 2468 473 2728 2996 2093 2624 2473 1494 2629 3224 542 2736 2994 2094 2737 3229 543 2736 2994 2094 2629 3224 542 2732 2487 1510 2559 1914 1512 2721 2486 1504 2566 1915 1505 2721 2486 1504 2559 1914 1512 2437 2949 550 2421 3230 2095 2745 1948 549 2432 1949 1842 2745 1948 549 2421 3230 2095 2748 1953 553 2751 1955 554 2425 1881 1844 2480 1957 1847 2425 1881 1844 2751 1955 554 2754 1956 558 2757 1958 560 2533 1909 1848 2548 1092 1849 2533 1909 1848 2757 1958 560 2438 2490 563 2424 3231 2096 2760 1959 564 2508 1093 1850 2760 1959 564 2424 3231 2096 2501 3232 566 2764 3001 568 2500 1079 2097 2494 1077 2098 2500 1079 2097 2764 3001 568 2743 3233 570 2527 3234 2099 2766 1199 569 2765 2498 567 2766 1199 569 2527 3234 2099 2602 1968 1511 2735 1966 1509 2777 1969 573 2770 1967 575 2777 1969 573 2735 1966 1509 2801 1209 1167 2799 1974 581 2802 1210 1168 2800 1221 582 2802 1210 1168 2799 1974 581 2787 1975 1516 2803 1976 2100 2788 1603 1517 2804 1604 1861 2788 1603 1517 2803 1976 2100 2819 1217 1177 2820 1972 1522 2817 1212 2101 2818 582 2102 2817 1212 2101 2820 1972 1522 2811 1218 1179 2821 1211 587 2813 1973 589 2823 1214 585 2813 1973 589 2821 1211 587 2820 1972 1522 2812 588 1523 2818 582 2102 2837 584 2104 2818 582 2102 2812 588 1523 2812 588 1523 2814 586 2103 2837 584 2104 2832 1604 1866 2837 584 2104 2814 586 2103 2814 586 2103 2816 1603 1865 2832 1604 1866 2849 3235 2914 2848 3236 2298 2852 1981 1871 2851 1982 1872 2852 1981 1871 2848 3236 2298 2857 1986 1192 2858 1985 1875 2856 3237 2733 2855 2007 2915 2856 3237 2733 2858 1985 1875 2860 1987 1876 2859 1988 1194 2862 1989 1877 2861 1990 1198 2862 1989 1877 2859 1988 1194 2876 1235 1197 2878 3238 2311 2863 1237 1199 2865 3239 2916 2863 1237 1199 2878 3238 2311 2882 1240 1202 2884 1998 1883 2892 1238 1200 2895 1997 1882 2892 1238 1200 2884 1998 1883 2897 1999 1884 2886 2000 1885 2899 2001 1886 2888 2002 1887 2899 2001 1886 2886 2000 1885 2900 1249 1211 2899 1247 1209 2901 1249 2917 2900 1249 1211 2901 1249 2917 2902 1249 2737 2906 1985 1891 2905 2005 1890 2908 2008 1894 2907 2009 1218 2908 2008 1894 2905 2005 1890 2910 2010 1895 2909 2011 1219 2912 3240 2918 2911 3241 1897 2912 3240 2918 2909 2011 1219 2958 3242 1224 2974 3243 1226 2947 3244 2328 2972 3245 2329 2947 3244 2328 2974 3243 1226 2959 2018 1901 2961 2019 1902 2950 2017 1900 2952 2021 1904 2950 2017 1900 2961 2019 1902 2963 2020 1903 2965 3246 2919 2954 2022 1905 2956 3247 2920 2954 2022 1905 2965 3246 2919 2927 2025 1236 2928 2024 1910 2968 3248 2744 2967 3249 2921 2968 3248 2744 2928 2024 1910 2930 2026 1911 2929 2027 1238 2932 2028 1912 2931 2029 1242 2932 2028 1912 2929 2027 1238 2944 1277 1241 2946 3250 2346 2933 1279 1243 2935 3251 2922 2933 1279 1243 2946 3250 2346 42 3029 2753 57 3252 2923 43 3027 2347 58 3253 2348 43 3027 2347 57 3254 2923 49 2558 2350 48 1304 1270 60 25 25 61 1305 1271 60 25 25 48 1304 1270 51 1280 1244 50 2557 2349 70 1285 1249 71 24 24 70 1285 1249 50 2557 2349 64 2035 1917 65 2036 1918 79 66 68 78 67 69 79 66 68 65 2036 1918 68 1281 1246 75 2561 2354 67 17 17 76 2560 2352 67 17 17 75 2561 2354 96 3255 2924 95 3256 2925 42 3022 2748 41 3021 2747 42 3022 2748 95 3256 2925 106 3032 2755 24 3033 2756 105 103 105 25 40 41 105 103 105 24 3033 2756 27 1288 1253 115 2041 1922 28 33 34 114 2562 2357 28 33 34 115 2041 1922 24 3033 2756 23 1292 1257 118 2564 2359 119 3034 2757 118 2564 2359 23 1292 1257 23 1292 1257 45 1290 1255 119 3034 2757 123 2571 2367 119 3034 2757 45 1290 1255 15 1293 1258 14 1294 1259 130 51 2758 128 1297 1263 130 51 2758 14 1294 1259 93 2048 1929 135 2049 1930 92 1286 1250 133 52 54 92 1286 1250 135 2049 1930 143 3035 63 142 2567 1932 140 56 2363 140 56 2363 141 1299 2760 143 3035 63 33 70 72 59 62 64 149 72 74 148 64 66 149 72 74 59 62 64 155 3038 2761 81 3257 2926 154 3039 1936 80 3258 2751 154 3259 1936 81 3257 2926 152 65 67 62 63 65 155 3038 2761 81 3257 2926 155 3038 2761 62 63 65 165 2569 2365 163 3040 2762 22 3260 2927 109 3261 2928 22 3260 2927 163 3040 2762 121 2043 1926 11 2046 1927 168 2570 2366 169 3041 2763 168 2570 2366 11 2046 1927 11 2046 1927 144 2050 1931 169 3041 2763 172 2058 1940 169 3041 2763 144 2050 1931 198 2572 2369 176 1701 2368 199 114 117 177 115 118 199 114 117 176 1701 2368 209 2573 2371 44 3047 2929 210 90 92 1 88 90 210 90 92 44 3047 2929 3 1331 2930 4 1330 2931 215 2574 2372 213 1319 1286 215 2574 2372 4 1330 2931 219 2575 2373 218 2576 2374 208 2066 1948 207 1329 1297 208 2066 1948 218 2576 2374 232 2579 2376 231 1324 1291 227 2062 1944 226 3043 2766 227 2062 1944 231 1324 1291 217 1322 1289 237 2580 2377 191 1323 1290 235 1346 1315 191 1323 1290 237 2580 2377 102 34 35 242 2583 2379 103 1287 1252 243 2068 1952 103 1287 1252 242 2583 2379 106 3032 2755 246 2584 2381 107 1291 1256 247 3046 2768 107 1291 1256 246 2584 2381 107 1291 1256 247 3046 2768 111 1289 1254 252 3048 2770 111 1289 1254 247 3046 2768 254 2587 2385 163 3040 2762 252 3048 2770 111 1289 1254 252 3048 2770 163 3040 2762 260 2588 2386 261 3049 2771 256 2589 2387 255 2075 1957 256 3262 2387 261 3049 2771 274 3051 2773 272 2590 2388 273 3263 2932 271 1731 2389 273 3263 2932 272 2590 2388 277 2079 1961 262 2592 2392 278 119 122 261 3049 2771 278 119 122 262 2592 2392 198 2572 2369 199 114 117 282 1339 1308 283 1338 1307 282 1339 1308 199 114 117 287 1344 1313 203 82 84 280 121 124 196 83 85 280 121 124 203 82 84 234 1328 1295 204 1315 1281 291 1347 1316 288 2593 2393 291 1347 1316 204 1315 1281 312 2595 2395 311 1348 1317 296 2141 2029 295 3264 2933 296 2141 2029 311 1348 1317 319 3265 2934 320 3053 2777 307 1351 1320 305 1352 1321 307 1351 1320 320 3053 2777 305 1352 1321 320 3053 2777 327 192 197 330 191 196 327 192 197 320 3053 2777 321 195 200 337 2093 2396 303 144 147 335 145 148 303 144 147 337 2093 2396 346 152 155 342 151 154 345 1374 1969 341 149 152 345 1374 1969 342 151 154 353 1363 1333 208 1362 1332 350 1359 1329 240 1360 1330 350 1359 1329 208 1362 1332 289 3056 2781 194 2600 2401 362 3058 2783 361 2599 2400 362 3058 2783 194 2600 2401 362 3058 2783 361 2599 2400 371 2624 2432 370 1406 1375 371 2624 2432 361 2599 2400 386 2613 2418 332 1387 1356 385 2603 2405 331 2604 2407 385 2603 2405 332 1387 1356 397 1371 1341 380 1366 1336 398 1383 1352 378 1365 1335 398 1383 1352 380 1366 1336 354 157 175 351 2606 2411 403 172 177 407 2607 2412 403 172 177 351 2606 2411 406 2605 2410 405 1373 1343 417 3060 2786 416 2608 2413 417 3060 2786 405 1373 1343 418 2609 2414 417 3060 2786 425 205 209 426 206 210 425 205 209 417 3060 2786 433 183 2935 376 166 2936 434 3063 2789 409 3062 2788 434 3063 2789 376 166 2936 435 3061 2787 440 2610 2937 434 3063 2789 439 1384 2938 434 3063 2789 440 2610 2937 444 1385 1354 443 187 192 447 1388 1357 446 2611 2416 447 1388 1357 443 187 192 303 144 147 315 146 149 462 193 198 461 2099 1983 462 193 198 315 146 149 446 2611 2416 445 2612 2417 466 2101 1985 465 2614 2420 466 2101 1985 445 2612 2417 451 3066 205 450 2110 1996 472 2615 206 473 1404 1373 472 2615 206 450 2110 1996 481 2619 2425 482 2620 2426 449 2617 203 468 3266 201 449 3267 203 482 2620 2426 429 180 185 421 176 181 482 2620 2426 483 3068 2791 482 2620 2426 421 176 181 490 1397 1364 485 208 212 489 1399 1366 484 2106 1991 489 1399 1366 485 208 212 493 213 217 492 2108 1993 498 1401 1368 497 214 1370 498 1401 1368 492 2108 1993 501 217 221 500 2109 1995 506 1402 1371 505 218 222 506 1402 1371 500 2109 1995 473 1404 1373 450 2110 1996 513 223 227 508 2112 1998 513 223 227 450 2110 1996 516 2113 2001 392 169 172 517 224 1999 441 3064 2790 517 224 1999 392 169 172 373 3268 2939 372 2626 2434 525 2876 2800 524 2627 2435 525 2876 2800 372 2626 2434 365 2087 1970 533 2628 2436 366 162 165 534 2114 2002 366 162 165 533 2628 2436 524 2627 2435 523 2625 2433 542 1411 1380 541 240 244 542 1411 1380 523 2625 2433 532 2629 2437 550 242 246 533 2628 2436 535 1414 1383 533 2628 2436 550 242 246 559 2630 2439 560 3072 2801 545 2117 2005 546 236 240 545 2117 2005 560 3072 2801 565 1413 1382 567 257 261 566 2632 2442 568 256 260 566 2632 2442 567 257 261 577 1417 1386 559 2630 2439 576 1418 1387 558 1797 2440 576 1418 1387 559 2630 2439 584 2633 2444 585 263 267 570 2119 2007 571 247 251 570 2119 2007 585 263 267 580 250 254 579 2120 2008 594 3074 2803 593 2127 2015 594 3074 2803 579 2120 2008 605 260 264 606 2886 2805 588 255 259 589 254 258 588 255 259 606 2886 2805 613 2635 2448 612 264 268 584 2633 2444 585 263 267 584 2633 2444 612 264 268 596 2122 2010 595 3073 2802 618 275 279 619 276 280 618 275 279 595 3073 2802 609 2125 2013 626 272 276 601 2123 2011 627 1427 1396 601 2123 2011 626 272 276 636 2637 2450 637 2639 2453 623 270 274 622 269 273 623 270 274 637 2639 2453 630 2129 2017 629 2638 2452 645 1431 1400 644 285 289 645 1431 1400 629 2638 2452 638 3075 2807 637 2639 2453 654 286 290 653 287 291 654 286 290 637 2639 2453 647 2132 2020 661 2137 2025 648 280 284 662 2641 2455 648 280 284 661 2137 2025 643 284 288 650 1430 1399 657 283 287 670 1433 1402 657 283 287 650 1430 1399 683 2138 2026 678 2136 2024 682 2642 2456 677 3076 2809 682 2642 2456 678 2136 2024 686 2899 2811 687 2140 2028 664 3269 2940 665 2135 2023 664 3269 2940 687 2140 2028 675 293 297 670 1433 1402 690 5 5 669 3 3 690 5 5 670 1433 1402 456 2096 1980 463 2098 1982 698 2648 2463 697 1437 1406 698 2648 2463 463 2098 1982 692 2142 2030 691 2645 2461 707 3270 2040 706 3081 2460 707 3080 2040 691 2645 2461 700 2145 2034 699 2647 2462 715 2154 2041 714 2649 2464 715 2154 2041 699 2647 2462 738 332 335 737 334 337 724 1447 1416 723 2149 2038 724 2150 1416 737 334 337 731 2655 2468 732 3271 2941 745 339 342 746 341 344 745 339 342 732 3271 2941 760 2657 2470 761 327 330 757 1443 1412 758 3272 2942 757 1443 1412 761 327 330 768 1844 2473 732 3271 2941 769 2659 2475 731 2655 2468 769 2659 2475 732 3271 2941 773 1450 1418 755 3273 319 774 2660 2476 758 3272 2942 774 2660 2476 755 3274 319 778 3079 2813 771 325 328 722 2651 2466 723 2652 2038 722 2651 2466 771 325 328 735 1439 1408 736 2653 2465 781 1455 1423 782 2661 2477 781 1455 1423 736 2653 2465 785 1458 1426 739 3078 2812 786 2662 2478 740 2146 2035 786 2662 2478 739 3078 2812 789 1459 1427 743 1442 1411 790 2663 2479 744 2654 2467 790 2663 2479 743 1442 1411 798 346 349 800 2666 2482 802 347 350 801 3083 2814 802 347 350 800 2666 2482 820 356 359 819 354 357 807 2156 2043 808 352 355 807 2156 2043 819 354 357 796 1463 1431 793 1464 1432 829 2672 2488 830 3090 2820 829 2672 2488 793 1464 1432 827 3275 2943 828 3276 2822 813 1465 1433 811 343 346 813 1465 1433 828 3092 2822 840 2159 2046 841 2171 2057 838 2678 2491 839 384 387 838 2678 2491 841 2171 2057 846 357 360 838 2678 2491 860 2680 2493 836 2679 2492 860 2680 2493 838 2678 2491 864 3099 2832 854 361 364 871 2164 2051 868 363 366 871 2164 2051 854 361 364 875 2682 2495 876 2165 2052 844 3277 2944 849 2692 2507 844 3277 2944 876 2165 2052 883 3278 2060 885 3094 2824 882 1494 1460 884 2167 2054 882 1494 1460 885 3094 2824 905 1496 1462 892 1481 1448 906 2175 2061 896 1482 1449 906 2175 2061 892 1481 1448 889 2686 2499 916 2683 2496 888 374 377 917 2685 2498 888 374 377 916 2683 2496 898 378 381 919 382 385 912 380 383 920 1489 1456 912 380 383 919 382 385 887 3097 2825 925 2172 2828 889 2686 2499 924 2687 2501 889 2686 2499 925 2172 2828 932 395 397 907 393 395 930 1495 1461 904 3279 2945 930 1495 1461 907 393 395 902 2170 2056 936 2688 2502 901 2168 2055 937 2690 2829 901 2168 2055 936 3280 2502 864 3099 2832 939 3100 2833 854 361 364 938 2691 2505 854 361 364 939 3281 2833 944 403 2508 853 2693 2509 945 404 406 870 405 372 945 404 406 853 2693 2509 844 3277 2944 942 2695 2946 845 1508 1469 947 3282 1467 845 1508 1469 942 3283 2946 970 2739 1051 969 1511 1050 977 2746 2947 976 2696 1807 977 2746 2947 969 1511 1050 962 414 414 957 415 415 985 1521 1474 984 2697 1808 985 1521 1474 957 415 415 990 433 433 991 416 416 999 3284 2948 990 433 433 999 3284 2948 997 435 435 1007 2188 2068 981 1514 1052 1006 3106 1817 967 1515 1472 1006 3106 1817 981 1514 1052 1001 2186 1809 1013 2189 1810 1002 2187 1126 1014 2190 2069 1002 2187 1126 1013 2189 1810 1025 2702 1813 1027 3285 1065 953 2182 1812 959 1520 1066 953 2182 1812 1027 3285 1065 1010 2703 1814 1015 3108 2701 1034 2704 1815 1035 2196 2071 1034 2704 1815 1015 3108 2701 1042 540 537 1041 437 437 1049 1586 1508 1048 2193 1816 1049 1586 1508 1041 437 437 958 2183 2066 1006 3286 1817 1055 3287 1084 1061 462 461 1055 3287 1084 1006 2706 1817 1070 2195 2070 1068 2708 1074 1051 566 2949 1050 2235 1073 1051 566 2949 1068 2708 1074 1076 2749 1852 1043 3288 1819 1075 2709 1818 1073 2710 1082 1075 2709 1818 1043 3288 1819 1080 2200 1820 1086 1537 1482 1027 3285 1065 1033 1523 1067 1027 3285 1065 1086 1537 1482 1054 1528 1477 1053 3110 2703 1094 3113 2705 1093 2197 2072 1094 3113 2705 1053 3110 2703 1099 2203 2075 1059 1527 1071 1094 3113 2705 1054 1528 1477 1094 3113 2705 1059 1527 1071 1100 2202 2074 1102 2205 2077 1060 3112 1070 1062 3111 2704 1060 3112 1070 1102 2205 2077 1106 2206 2078 1066 1529 1478 1105 2714 1086 1065 445 445 1105 2714 1086 1066 1529 1478 1115 2716 1087 1121 484 482 1114 491 489 1120 1556 1496 1114 491 489 1121 484 482 1119 1561 1094 1140 3114 1096 1117 2727 1089 1139 2717 1090 1117 2727 1089 1140 3114 1096 1111 490 488 1150 1547 1491 1110 2715 1088 1151 1546 1490 1110 2715 1088 1150 1547 1491 1154 2211 1822 1153 2743 1132 1161 487 485 1162 1553 1493 1161 487 485 1153 2743 1132 1167 1551 1095 1168 2721 1823 1140 3114 1096 1123 1543 1487 1140 3114 1096 1168 2721 1823 1173 489 487 1174 1554 1494 1178 2214 1824 1179 545 542 1178 2214 1824 1174 1554 1494 1150 1547 1491 1111 490 488 1191 2221 2084 1186 492 490 1191 2221 2084 1111 490 488 1182 3118 2708 1200 500 498 1181 3117 2707 1199 2217 2083 1181 3117 2707 1200 500 498 1133 2718 2709 1128 506 502 1216 2226 2086 1217 505 503 1216 2226 2086 1128 506 502 1223 2728 1828 1176 2729 1098 1224 2227 2087 1181 3117 2707 1224 2227 2087 1176 2729 1098 1209 1560 1138 1231 2730 1829 1208 499 497 1230 1563 1110 1208 499 497 1231 2730 1829 1189 515 512 1188 2723 1101 1242 517 514 1241 524 521 1242 517 514 1188 2723 1101 1248 2734 1831 1249 530 527 1195 1558 1104 1196 2726 1105 1195 1558 1104 1249 530 527 1253 1571 1116 1238 2732 1111 1255 525 522 1240 526 523 1255 525 522 1238 2732 1111 1245 2222 1113 1244 2223 1117 1260 1574 1119 1259 1572 1118 1260 1574 1119 1244 2223 1117 1247 2733 1114 1262 1576 1120 1248 2734 1831 1263 2735 1832 1248 2734 1831 1262 1576 1120 1252 520 517 1251 2224 1122 1267 2736 1833 1266 1578 1121 1267 2736 1833 1251 2224 1122 1277 2740 1836 970 2739 1051 1275 3122 2950 977 2746 2947 1275 3122 2950 970 2739 1051 1278 2229 2951 1279 2741 1837 985 1521 1474 1009 426 426 985 1521 1474 1279 2741 1837 1276 549 548 1277 2740 2714 1126 548 547 1131 1541 1485 1126 548 547 1277 2740 2714 1169 3116 2706 1146 543 540 1279 2741 2716 1272 544 541 1279 2741 2716 1146 543 540 1290 1585 1137 1292 2742 1840 1209 1560 1138 1231 2730 1829 1209 1560 1138 1292 2742 1840 1296 552 551 1273 1590 1140 1295 550 549 989 1589 1513 1295 550 549 1273 1590 1140 1275 3122 2717 977 2746 1846 1299 555 555 1298 553 553 1299 555 555 977 2746 1846 1302 556 556 1301 554 554 1305 557 557 1304 558 558 1305 557 557 1301 554 554 1308 559 559 1307 560 560 1311 562 562 1310 564 564 1311 562 562 1307 560 560 1313 2748 2952 1293 570 570 1043 2750 2953 1077 3289 2099 1043 3288 2953 1293 570 570 1318 1600 1161 1204 2218 1159 1211 1564 1498 1210 1565 1499 1211 1564 1498 1204 2218 1159 1319 2751 1855 1320 575 1856 1322 3127 2723 1321 576 2725 1322 3127 2723 1320 575 1856 992 418 418 1319 2751 1855 1332 3290 2954 992 418 418 1332 3290 2954 991 416 416 1345 585 1860 1346 586 2955 1343 587 1169 1344 588 1170 1343 587 1169 1346 586 2955 1335 577 577 1337 589 2956 1345 585 1860 1347 590 2957 1345 585 1860 1337 589 2956 1337 589 2956 1353 591 2958 1347 590 2957 1358 592 2959 1347 590 2957 1353 591 2958 1363 577 589 1361 578 1179 1364 579 2103 1362 580 1523 1364 579 2103 1361 578 1179 1377 581 1862 1378 582 1183 1383 583 2960 1384 584 1182 1383 583 2960 1378 582 1183 1400 3291 2961 1397 2753 2511 1390 3292 2962 1389 2754 2963 1390 3292 2962 1397 2753 2511 1393 595 596 1394 596 597 1395 3293 2964 1396 3294 2965 1395 3293 2964 1394 596 597 1412 1615 1534 1409 1616 1535 1416 3295 2517 1415 1617 602 1416 3295 2517 1409 1616 1535 1422 606 608 1428 607 609 1423 3296 2966 1427 3297 2967 1423 3296 2966 1428 607 609 1429 2252 2113 1421 2250 2111 1435 3298 2968 1433 3299 2969 1435 3298 2968 1421 2250 2111 1445 1628 1543 1446 1632 2970 1437 1629 1544 1438 1633 2971 1437 1629 1544 1446 1632 2970 1449 1634 2972 1450 1635 2973 1451 1635 2974 1452 1636 2524 1451 1635 2974 1450 1635 2973 1464 2256 2525 1462 2257 2975 1463 2258 620 1461 2259 2124 1463 2258 620 1462 2257 2975 1471 2265 2126 1470 3300 2976 1472 2267 2127 1469 3301 2977 1472 2267 2127 1470 3300 2976 1484 3302 2978 1483 3303 1556 1482 621 623 1481 622 624 1482 621 623 1483 3303 1556 1499 643 1559 1500 644 2129 1487 645 1557 1486 646 2979 1487 645 1557 1500 644 2129 1501 628 630 1503 629 631 1490 627 629 1492 631 633 1490 627 629 1503 629 631 1505 630 632 1507 3304 2980 1494 632 634 1496 3305 2981 1494 632 634 1507 3304 2980 1511 637 641 1510 3306 2982 1512 635 639 1509 3307 2983 1512 635 639 1510 3306 2982 1514 636 640 1516 639 643 1513 638 642 1515 641 645 1513 638 642 1516 639 643 1530 2285 1575 1517 2286 646 1532 3308 2540 1519 3309 2539 1532 3308 2540 1517 2286 646 1536 2288 2137 1546 2287 2136 1538 648 653 1549 647 651 1538 648 653 1546 2287 2136 1551 629 652 1553 630 655 1540 631 654 1542 650 657 1540 631 654 1553 630 655 1555 633 2984 1553 634 2143 1554 633 2144 1554 633 2144 1556 633 1586 1555 633 2984 1564 3310 2985 1571 3311 2148 1562 1671 1589 1569 1670 1588 1562 1671 1589 1571 3311 2148 1612 677 686 1613 1680 1597 1627 2306 2152 1628 1697 1617 1627 2306 2152 1613 1680 1597 1631 3312 1592 1636 3313 2547 1630 3314 2986 1637 2791 2551 1630 3315 2986 1636 2793 2547 1645 2312 2159 1646 673 682 1656 3316 2851 1657 2309 2155 1656 3317 2851 1646 673 682 1636 2787 2547 1635 2788 2548 1653 3318 2552 1654 3319 2987 1653 3318 2552 1635 2788 2548 1661 1688 1607 1608 662 669 1662 1695 1615 1607 656 663 1662 1695 1615 1608 662 669 1606 1673 1591 1616 1672 1590 1671 3320 2988 1670 3321 2554 1671 3320 2988 1616 1672 1590 1595 719 728 1605 3322 2854 1681 3323 2855 1595 3324 728 1681 3158 2855 1682 3325 769 1600 678 687 1688 2800 2556 1599 679 688 1689 2317 2856 1599 679 688 1688 2800 2556 1693 3160 2167 1605 3322 2854 1595 719 728 1595 719 728 1694 721 730 1693 3160 2167 1586 1684 1603 1698 696 705 1585 2323 2173 1697 707 716 1585 2323 2173 1698 696 705 1704 2320 2559 1664 2313 2989 1702 695 704 1663 1687 1606 1702 695 704 1664 2313 2989 1710 1700 1620 1708 1689 1608 1709 2332 2182 1707 698 707 1709 2332 2182 1708 1689 1608 1584 3161 2858 1717 3164 2861 1715 3165 1611 1715 3165 1611 1594 3159 1610 1584 3161 2858 1723 3166 2862 1614 2784 2544 1724 712 721 1629 710 719 1724 712 721 1614 2784 2544 1653 3326 2552 1727 3327 2564 1652 2790 2550 1729 2327 2863 1652 2790 2550 1727 3327 2564 1731 724 733 1668 705 714 1723 3166 2862 1614 2784 2544 1723 3166 2862 1668 705 714 1603 692 701 1686 693 702 1735 718 727 1739 2330 2180 1735 718 727 1686 693 702 1740 2331 2181 1592 1686 1605 1743 2333 2183 1711 2321 2171 1743 2333 2183 1592 1686 1605 1717 3164 2861 1745 2810 2566 1718 3162 2860 1746 2334 2184 1718 3162 2860 1745 2810 2566 1763 2811 2567 1764 778 787 178 2812 2568 180 2059 2865 178 2812 2568 1764 778 787 1617 2822 2990 1737 1727 2991 1771 1704 1624 1773 2813 2569 1771 1704 1624 1737 1727 2991 1575 1723 2992 1778 2814 2570 1576 1722 2993 1777 1708 1628 1576 1722 2993 1778 2814 2570 1789 3170 2868 1784 3171 2869 1788 740 750 1782 2815 2571 1788 740 750 1784 3171 2869 1795 2817 2573 1790 3168 2866 1794 1714 1634 1789 3170 2868 1794 1714 1634 1790 3168 2866 1799 2339 2189 1579 3328 747 1798 1718 1637 1779 736 746 1798 1718 1637 1579 737 747 1805 2343 2873 1804 2819 2575 1677 681 690 1676 680 689 1677 681 690 1804 2819 2575 1682 3325 769 1681 3158 2855 1810 2345 2196 1682 3329 769 1810 3329 2196 1809 3329 767 1802 748 758 1814 2349 2200 1673 746 756 1733 716 725 1673 746 756 1814 2349 2200 1583 2344 773 1582 3330 2188 1817 3331 771 1816 2826 2582 1817 3332 771 1582 3333 2188 1824 773 782 1823 1732 1650 1819 2351 2202 1818 2825 2581 1819 2351 2202 1823 1732 1650 1832 771 780 1829 1730 1648 1833 1733 1651 1828 768 777 1833 1733 1651 1829 1730 1648 1835 2354 2206 1839 1734 1652 1821 1729 1647 1750 1728 1646 1821 1729 1647 1839 1734 1652 1840 2829 2585 1841 2830 2586 1762 2335 2185 1763 2811 2567 1762 2335 2185 1841 2830 2586 1762 2335 2185 1766 743 753 1840 2829 2585 1844 1739 1657 1840 2829 2585 1766 743 753 1848 2410 2271 292 301 2994 1861 2834 2590 308 2833 2589 1861 2834 2590 292 301 2994 1865 2836 2592 1853 3201 2897 1864 1742 1660 1851 3202 2898 1864 1742 1660 1853 3201 2897 1869 1744 1662 1873 2357 2210 1852 1741 1659 1854 2835 2591 1852 1741 1659 1873 2357 2210 333 1756 1675 319 3265 2995 1881 1758 1677 1870 2838 2593 1881 1758 1677 319 3265 2995 1874 2849 2875 1875 2358 2211 1888 3182 2996 1889 2362 2215 1888 3182 2996 1875 2358 2211 1893 1749 1668 1785 1750 1669 1896 1752 1671 1786 2365 2218 1896 1752 1671 1785 1750 1669 1902 2366 2219 1904 2842 2597 1899 1751 1670 1901 804 813 1899 1751 1670 1904 2842 2597 195 3334 2997 364 3335 2998 1768 2846 2601 1912 2845 2600 1768 2846 2601 364 3335 2998 364 3335 2998 373 3268 2999 1912 2845 2600 1920 1788 1715 1912 2845 2600 373 3268 2999 1931 2847 2602 1929 1757 1676 1932 1768 1691 1930 844 854 1932 1768 1691 1929 1757 1676 1941 826 836 1940 2373 2227 1888 3182 2880 1874 2849 2605 1888 3182 2880 1940 2373 2227 1949 831 841 1948 833 843 1923 1764 3000 1921 3181 2607 1923 1764 3000 1948 833 843 1943 3185 2881 1959 829 839 1947 1759 1680 1958 1761 1682 1947 1759 1680 1959 829 839 1967 857 866 1968 858 867 1956 1760 1681 1955 823 833 1956 1760 1681 1968 858 867 1976 2869 2625 1970 2376 2229 1975 2855 2611 1971 832 842 1975 2855 2611 1970 2376 2229 1976 2869 2625 1975 2855 2611 1981 2856 2626 1980 1765 3001 1981 2856 2626 1975 2855 2611 1877 792 801 1878 791 800 1995 2382 2236 1994 2858 2613 1995 2382 2236 1878 791 800 1857 795 804 1867 794 803 2003 1828 1757 2001 2859 2614 2003 1828 1757 1867 794 803 1987 1777 1701 2007 862 871 1986 1767 1690 2006 2860 2615 1986 1767 1690 2007 862 871 2010 850 860 2014 2863 864 2011 852 862 2015 868 877 2011 852 862 2014 2863 864 1962 828 838 2016 3188 2883 1964 830 840 2017 3190 2884 1964 830 840 2016 3188 2883 1962 828 838 1963 3336 2228 2016 3188 2883 1993 3189 1696 2016 3188 2883 1963 3336 2228 2030 1779 1703 2029 867 876 2026 861 2243 2025 2388 2244 2026 861 2243 2029 867 876 2032 864 873 2036 1781 1705 494 1398 2245 499 1783 1707 494 1398 2245 2036 1781 1705 2043 1785 1711 2042 871 1712 2039 869 878 2038 2389 2247 2039 869 878 2042 871 1712 2049 1787 1714 2048 876 885 2045 874 883 2044 2390 2249 2045 874 883 2048 876 885 1970 2376 2229 1976 2869 2625 1992 1773 1698 2051 2391 2250 1992 1773 1698 1976 2869 2625 2059 3192 2888 2058 2871 2628 1926 2370 2223 1928 814 823 1926 2370 2223 2058 2871 2628 2064 1790 1717 2065 2874 2631 2066 897 906 2067 898 907 2066 897 906 2065 2874 2631 2074 1794 1721 544 1796 1723 2058 2871 2628 526 2872 2629 2058 2871 2628 544 1796 1723 2082 3193 2889 2081 2877 2634 2070 889 898 2069 2393 2252 2070 889 898 2081 2877 2634 2077 891 900 2089 3194 2890 2076 2394 2253 2088 2880 2637 2076 2394 2253 2089 3194 2890 2080 1798 1725 2081 2877 2634 2096 1800 1728 2097 1802 1730 2096 1800 1728 2081 2877 2634 2087 2878 2635 2088 2880 2637 2103 907 916 2104 1804 1732 2103 907 916 2088 2880 2637 2112 915 924 2111 917 926 2100 902 911 2099 2397 2256 2100 902 911 2111 917 926 2118 2883 2640 2106 2399 2258 2119 1811 1739 2107 904 913 2119 1811 1739 2106 2399 2258 2122 911 920 2127 1807 1735 2123 912 921 2126 1809 1737 2123 912 921 2127 1807 1735 2133 924 933 2108 923 932 2132 1808 1736 2109 1801 1729 2132 1808 1736 2108 923 932 2117 2885 2642 2139 2888 2645 2116 1803 1731 2140 2889 2646 2116 1803 1731 2139 2888 2645 2135 925 934 2147 2892 2649 2134 920 929 2146 930 940 2134 920 929 2147 2892 2649 2153 2890 2647 2140 2889 2646 2154 2894 2651 2139 2888 2645 2154 2894 2651 2140 2889 2646 2162 1820 1749 2161 936 946 2149 2402 2263 2148 2893 2650 2149 2402 2263 2161 936 946 2155 3196 2892 2169 940 950 2154 2894 2651 2168 939 949 2154 2894 2651 2169 940 950 2165 933 943 2176 3198 2894 651 935 945 664 3269 3002 651 935 945 2176 3198 2894 2186 942 952 2182 2896 2654 2187 3199 2895 2183 2406 2267 2187 3199 2895 2182 2896 2654 2192 2405 2266 2191 2898 2656 2188 3200 2896 2187 3199 2895 2188 3200 2896 2191 2898 2656 2194 2900 2658 2176 3198 2894 2195 2407 2268 2177 3197 2893 2195 2407 2268 2176 3198 2894 1851 3202 2898 2199 2903 2661 1850 785 794 2198 952 962 1850 785 794 2199 2903 2661 2207 2905 2665 2206 1832 1760 1859 790 799 1879 1745 1663 1859 790 799 2206 1832 1760 2201 2408 2269 2214 1853 1780 2200 2902 2660 2213 2416 2278 2200 2902 2660 2214 1853 1780 2221 2415 2277 717 2152 2904 2208 2409 2270 702 300 3003 2208 2409 2270 717 2152 2904 2239 986 995 2240 3203 2899 2227 1846 1773 2228 1847 1774 2227 1846 1773 2240 3203 2899 2247 972 982 2249 3337 985 2246 971 981 2248 2908 2669 2246 971 981 2249 3337 985 2256 1843 1770 2254 1840 1766 2257 2414 2276 2255 3338 3004 2257 2414 2276 2254 1840 1766 2232 964 974 2233 1839 1765 2261 1849 1776 2260 1845 1772 2261 1849 1776 2233 1839 1765 2265 1848 1775 2266 2910 2671 2253 967 977 2255 3338 3004 2253 967 977 2266 2910 2671 2247 972 982 2259 970 980 2262 3339 2903 2269 2911 2672 2262 3339 2903 2259 970 980 2236 1836 967 2272 2915 1777 2237 1834 1762 2273 2913 2673 2237 1834 1762 2272 2915 1777 2276 1852 1779 2277 2916 2674 2240 3203 2899 2241 3204 2900 2240 3203 2899 2277 2916 2674 2280 1854 1781 2281 2917 2675 2244 962 972 2245 1838 1764 2244 962 972 2281 2917 2675 2297 2418 2279 2296 2920 2678 2290 2919 2677 2288 1856 1783 2290 2919 2677 2296 2920 2678 2309 994 1003 2310 1857 1784 2312 2423 2284 2311 2921 2679 2312 2423 2284 2310 1857 1784 2322 2425 2286 2321 2922 2680 2315 2937 2696 2314 2938 2697 2315 2937 2696 2321 2922 2680 2326 2923 2681 2299 1036 1042 2327 1006 1015 2303 1008 1017 2327 1006 1015 2299 1036 1042 2337 2925 2683 2336 2924 2682 2339 1870 1797 2338 3340 3005 2339 1870 1797 2336 2924 2682 2346 1014 1023 2361 1013 1022 2347 1010 1019 2360 2928 2686 2347 1010 1019 2361 1013 1022 2338 3340 3005 2344 1011 1020 2367 1865 1792 2368 2929 2687 2367 1865 1792 2344 1011 1020 2293 1860 1787 2291 2918 2676 2375 2934 2908 2375 2934 2908 2374 1871 2689 2293 1860 1787 2333 3210 1038 2335 2931 2684 2377 2431 2909 2376 2933 2690 2377 2431 2909 2335 2931 2684 2384 2936 2693 2365 3341 3006 2383 2935 2692 2359 3342 3007 2383 2935 2692 2365 3341 3006 2358 2427 2288 2389 3214 2912 2350 2428 2289 2388 1876 2695 2350 2428 2289 2389 3214 2912 2316 3343 3008 2315 2937 2696 2391 3344 3009 2390 2939 2698 2391 3344 3009 2315 2937 2696 2329 2435 2287 2307 3345 3010 2385 2436 2293 2396 2942 3011 2385 2436 2293 2307 3345 3010 2399 2944 417 2398 2997 419 2404 2945 410 2405 2998 411 2404 2945 410 2398 2997 419 2407 1883 415 2402 1052 1055 2429 2947 413 2428 1054 1057 2429 2947 413 2402 1052 1055 2423 2445 1843 2424 3231 2096 2439 1950 1513 2438 2490 563 2439 1950 1513 2424 3231 2096 2444 1053 1056 2451 1889 1809 2445 1055 1058 2450 1059 1060 2445 1055 1058 2451 1889 1809 2431 1048 1052 2416 1050 425 2457 2951 2068 2458 2446 427 2457 2951 2068 2416 1050 425 2462 1061 1062 2463 1890 1810 2467 2449 429 2468 1064 1064 2467 2449 429 2463 1890 1810 2478 2955 453 2418 1880 1471 2480 1957 451 2425 1881 1806 2480 1957 451 2418 1880 1471 2470 2958 2702 2486 2959 457 2487 1082 1076 2488 1084 456 2487 1082 1076 2486 2959 457 2406 2946 2067 2503 2960 2703 2408 2952 2066 2505 1096 1084 2408 2952 2066 2503 2960 2703 2512 2961 2704 2461 1060 1061 2513 3222 465 2466 2954 431 2513 3222 465 2461 1060 1061 2521 1173 1131 2502 1171 1129 2520 2962 2070 2501 3232 2949 2520 2962 2070 2502 1171 1129 2477 1066 1065 2530 1911 1820 2475 1894 1813 2528 2963 2073 2475 1894 1813 2530 1911 1820 2537 2964 2076 2538 2457 1483 2484 1897 1815 2485 2957 2071 2484 1897 1815 2538 2457 1483 2503 2960 2703 2543 2966 2072 2505 1096 1084 2545 1097 1085 2505 1096 1084 2543 2966 2072 2550 2968 2074 2549 2967 2075 2510 1074 1070 2509 1075 1071 2510 1074 1070 2549 2967 2075 2552 2969 2077 2512 2961 2704 2553 2458 463 2513 3222 465 2553 2458 463 2512 2961 2704 2557 2461 467 2556 2970 2078 2522 2454 448 2516 2453 1478 2522 2454 448 2556 2970 2078 2574 1128 1100 2579 1130 468 2575 2974 2079 2580 2463 469 2575 2974 2079 2579 1130 468 2583 1918 2709 2578 3346 502 2592 1186 2080 2591 1921 1492 2592 1186 2080 2578 3346 502 2563 1917 474 2604 1919 1822 2593 1174 475 2603 1175 1132 2593 1174 475 2604 1919 1822 2571 2971 482 2570 2474 1496 2613 2973 483 2614 2972 2082 2613 2973 483 2570 2474 1496 2618 1922 1823 2573 2466 1487 2619 2975 2706 2595 2467 1488 2619 2975 2706 2573 2466 1487 2627 1127 1099 2632 2977 2708 2628 1924 1824 2633 2979 2081 2628 1924 1824 2632 2977 2708 2614 2972 2082 2643 2483 511 2574 1128 1100 2639 1129 512 2574 1128 1100 2643 2483 511 2634 2489 544 2633 2979 2081 2652 1178 1136 2651 2476 496 2652 1178 1136 2633 2979 2081 2669 1935 1501 2606 1116 478 2664 1136 1106 2562 1109 476 2664 1136 1106 2606 1116 478 2676 1939 1502 2655 3225 505 2675 2485 1503 2649 2983 2083 2675 2485 1503 2655 3225 505 2682 1938 1834 2679 2984 504 2676 1939 1502 2655 3225 505 2676 1939 1502 2679 2984 504 2641 2978 2084 2694 1154 1117 2636 1147 490 2689 1146 1112 2636 1147 490 2694 1154 1117 2701 1161 1122 2700 1159 528 2656 3227 510 2648 1926 1827 2656 3227 510 2700 1159 528 2707 2988 2711 2706 2989 519 2692 3347 514 2691 2985 521 2692 3347 514 2706 2989 519 2711 2990 524 2707 2988 2711 2696 2484 513 2692 3347 514 2696 2484 513 2707 2988 2711 2698 1933 1831 2699 2986 527 2713 1936 1832 2714 2991 525 2713 1936 1832 2699 2986 527 2687 3348 516 2718 1204 1162 2702 3228 517 2717 1937 1833 2702 3228 517 2718 1204 1162 2730 2992 2712 2434 1884 1808 2728 2996 2951 2435 2448 1474 2728 2996 2951 2434 1884 1808 2464 2993 2069 2736 2994 2713 2469 1062 1063 2737 3229 2091 2469 1062 1063 2736 2994 2713 2731 1176 1133 2730 2992 2092 2593 1174 475 2594 2468 473 2593 1174 475 2730 2992 2092 2612 1947 1493 2624 2473 1494 2734 1169 1839 2736 2994 2094 2734 1169 1839 2624 2473 1494 2455 1057 529 2720 1163 530 2415 1045 1049 2726 1940 1835 2415 1045 1049 2720 1163 530 2747 1185 1143 2599 1181 1139 2592 1186 1145 2583 1918 1821 2592 1186 1145 2599 1181 1139 2585 1189 1148 2750 1190 1149 2586 2465 3012 2587 2464 2718 2586 2465 3012 2750 1190 1149 2753 1188 1147 2640 1187 1146 2756 1191 1150 2693 1192 1151 2756 1191 1150 2640 1187 1146 2759 1193 1152 2708 1194 1153 2762 1195 1154 2668 1197 1156 2762 1195 1154 2708 1194 1153 2763 1962 2952 2743 3233 570 2653 2480 3013 2687 3349 572 2653 2480 3013 2743 3233 570 2527 3234 2099 2558 2999 2721 2765 2498 567 2764 3001 568 2765 2498 567 2558 2999 2721 2774 3004 2724 2776 3350 3014 2773 1206 2726 2775 1208 3015 2773 1206 2726 2776 3350 3014 2795 1214 1860 2796 579 2955 2797 1215 1518 2798 1216 1520 2797 1215 1518 2796 579 2955 2791 1217 1858 2801 1209 1167 2783 1218 578 2793 1211 1169 2783 1218 578 2801 1209 1167 2796 579 2955 2794 580 1170 2798 1216 1520 2807 1219 1521 2798 1216 1520 2794 580 1170 2794 580 1170 2802 1210 1168 2807 1219 1521 2806 1220 584 2807 1219 1521 2802 1210 1168 2802 1210 1168 2800 1221 582 2806 1220 584 2829 1209 1178 2830 1210 1181 2821 1211 587 2822 580 588 2821 1211 587 2830 1210 1181 2817 1212 2101 2818 582 2102 2838 1213 3016 2837 584 2104 2838 1213 3016 2818 582 2102 2841 1979 1869 2843 1226 1188 2842 1977 1867 2844 1228 1190 2842 1977 1867 2843 1226 1188 2867 1250 3017 2870 1251 2732 2855 1251 3018 2856 1252 3019 2855 1251 3018 2870 1251 2732 2872 1233 1195 2874 1234 1196 2859 1232 1194 2861 1236 1198 2859 1232 1194 2874 1234 1196 2866 1257 3020 2865 1258 2916 2877 1258 3021 2878 1259 2311 2877 1258 3021 2865 1258 2916 2893 1244 1206 2894 3351 1880 2892 1242 1204 2891 3352 3022 2892 1242 1204 2894 3351 1880 2895 1243 1205 2897 1246 1208 2896 1245 1207 2898 1248 1210 2896 1245 1207 2897 1246 1208 2888 2525 2317 2887 2526 2318 2890 3353 3023 2889 3354 2738 2890 3353 3023 2887 2526 2318 2905 1230 1890 2917 1231 2319 2907 1255 1218 2920 1253 1216 2907 1255 1218 2917 1231 2319 2922 1254 1217 2924 1235 1896 2909 1256 1219 2911 2013 1897 2909 1256 1219 2924 1235 1896 2957 2016 1899 2948 2015 1898 2973 3355 3024 2971 3356 3025 2973 3355 3024 2948 2015 1898 2957 1261 1225 2958 1260 1224 2959 1264 1228 2960 1265 1229 2959 1264 1228 2958 1260 1224 2961 1266 1230 2962 1267 1231 2963 2023 1907 2964 633 1908 2963 2023 1907 2962 1267 1231 2969 3357 3026 2970 3358 2743 2967 3358 3027 2968 3359 3028 2967 3358 3027 2970 3358 2743 2940 1275 1239 2942 1276 1240 2929 1274 1238 2931 1278 1242 2929 1274 1238 2942 1276 1240 2936 3360 3029 2935 3361 2922 2945 3361 3030 2946 3362 2346 2945 3361 3030 2935 3361 2922 39 2032 1914 54 16 16 40 2052 1933 55 18 18 40 2052 1933 54 16 16 58 3253 2348 57 3254 2923 63 3363 2749 64 2035 2752 63 3025 2749 57 3364 2923 72 26 26 83 3365 27 73 22 22 84 20 20 73 22 22 83 3366 27 63 3023 2749 80 3367 2751 62 63 65 81 3257 2926 62 63 65 80 3367 2751 88 48 50 89 49 51 35 2039 1920 34 2040 1921 35 2039 1920 89 49 51 33 70 72 98 58 60 43 2555 2347 97 60 62 43 2555 2347 98 58 60 108 3368 107 32 3369 44 22 3260 2927 22 3370 2927 109 3371 2928 108 104 107 27 1288 1253 26 39 3031 115 2041 1922 116 41 1923 115 2041 1922 26 39 3031 22 3260 2927 32 3369 44 120 2044 46 22 3260 2927 120 2044 46 121 2043 1926 13 1296 1262 12 1302 1268 125 1298 1264 124 1303 1269 125 1298 1264 12 1302 1268 131 53 2759 129 2565 2361 91 28 28 90 29 29 91 28 28 129 2565 2361 137 1313 1279 136 1312 1278 135 2049 1930 134 2566 2362 135 2049 1930 136 1312 1278 142 2051 1932 144 2050 1931 11 2046 1927 11 2046 1927 21 2045 1260 142 2051 1932 150 2053 1934 151 2054 1935 41 3021 2747 56 2034 1916 41 3021 2747 151 2054 1935 80 3372 2751 79 66 2750 154 3373 1936 156 68 1937 154 3373 1936 79 66 2750 158 2056 1938 150 2053 1934 95 3256 2925 41 3021 2747 95 3256 2925 150 2053 1934 30 38 39 162 2057 1939 113 73 75 166 74 76 113 73 75 162 2057 1939 167 75 77 170 76 78 19 55 57 138 57 59 19 55 57 170 76 78 144 2050 1931 145 59 61 172 2058 1940 173 79 81 172 2058 1940 145 59 61 201 126 129 178 2812 2764 202 124 127 180 2059 1941 202 124 127 178 2812 2764 44 3047 2929 209 2573 2371 164 84 86 211 85 87 164 84 86 209 2573 2371 2 89 91 3 1331 2930 216 91 93 215 2574 2372 216 91 93 3 1331 2930 227 2062 1944 226 3043 2766 222 2063 1945 220 3042 2765 222 2063 1945 226 3043 2766 233 97 99 232 2579 2376 228 95 97 227 2062 1944 228 95 97 232 2579 2376 238 96 98 237 2580 2377 6 3374 1946 217 1322 1289 6 3375 1946 237 2580 2377 244 100 1950 104 102 3032 243 2068 1952 103 1287 1252 243 2068 1952 104 102 3032 249 106 109 108 104 107 109 3371 2928 109 3376 2928 248 3376 1953 249 3376 109 241 2073 1956 100 32 33 253 107 110 160 108 111 253 107 110 100 32 33 10 1332 3033 256 3377 2387 9 3378 1292 255 2075 1957 9 3379 1292 256 3262 2387 263 2077 1959 258 113 116 262 2592 2392 257 111 114 262 2592 2392 258 113 116 276 2591 2391 277 2079 1961 272 2590 2388 270 2078 1960 272 2590 2388 277 2079 1961 279 120 123 260 2588 2386 283 1338 1307 186 2060 1942 283 1338 1307 260 2588 2386 201 126 129 285 127 130 200 1316 1283 284 3052 2774 200 1316 1283 285 127 130 200 1316 1283 284 3052 2774 204 1315 1281 288 2593 2393 204 1315 1281 284 3052 2774 293 133 136 309 132 135 292 301 305 308 2833 2775 292 301 305 309 132 135 313 137 140 312 2595 2395 298 139 142 296 2141 2029 298 139 142 312 2595 2395 299 2083 1965 323 1354 1324 297 2594 2394 318 140 143 297 2594 2394 323 1354 1324 320 3053 2777 319 3265 2934 331 2604 2407 333 1756 2406 331 2604 2407 319 3265 2934 324 2085 1967 339 148 151 325 1355 1325 340 150 153 325 1355 1325 339 148 151 344 154 157 347 155 158 223 2597 2398 224 1361 1331 223 2597 2398 347 155 158 353 1363 1333 350 1359 1329 355 156 159 352 2598 2399 355 156 159 350 1359 1329 363 3057 2782 364 3335 3034 206 3055 2780 195 3334 3035 206 3055 2780 364 3335 3034 364 3335 3034 363 3057 2782 373 3268 2939 372 2626 2434 373 3268 2939 363 3057 2782 388 210 214 389 211 215 385 2603 2405 386 2613 2418 385 2603 2405 389 211 215 401 1375 1346 339 148 1972 400 1376 1347 324 2085 2784 400 1376 1347 339 148 1972 409 3062 2788 376 166 2936 408 175 180 374 2088 2785 408 175 180 376 166 2936 403 172 177 407 2607 2412 419 2090 1973 418 2609 2414 419 2090 1973 407 2607 2412 427 1392 1359 416 2608 2413 428 2091 1974 415 2092 1975 428 2091 1974 416 2608 2413 436 3071 2795 435 3061 2787 430 1381 1351 431 1380 1350 430 1381 1351 435 3061 2787 436 3071 2795 441 3064 2796 435 3061 2787 440 2610 2937 435 3061 2787 441 3064 2796 327 192 197 455 190 195 328 2095 1979 454 2097 1981 328 2095 1979 455 190 195 302 2643 2459 463 2098 1982 315 146 149 461 2099 1983 315 146 149 463 2098 1982 447 1388 1357 446 2611 2416 467 2100 1984 466 2101 1985 467 2100 1984 446 2611 2416 470 3380 2424 471 3070 2792 474 3067 1358 475 2111 1997 474 3067 1358 471 3070 2792 477 204 208 476 2104 1989 424 2105 1990 422 1377 1348 424 2105 1990 476 2104 1989 422 1377 1348 476 2104 1989 423 3381 1349 453 2103 1988 423 3381 1349 476 2104 1989 492 2108 2427 487 1394 1361 491 2621 2428 486 209 213 491 2621 2428 487 1394 1361 495 1396 1363 494 1398 1365 500 2109 1995 499 1783 2429 500 2109 1995 494 1398 1365 508 2112 1998 503 1400 1367 507 2622 2430 502 216 1369 507 2622 2430 503 1400 1367 516 2113 2001 511 1403 1372 515 2623 2431 510 220 224 515 2623 2431 511 1403 1372 430 1381 1351 452 1405 1374 436 3071 2795 518 222 226 436 3071 2795 452 1405 1374 528 235 239 379 1367 1337 527 2116 2004 381 1368 1338 527 2116 2004 379 1367 1337 533 2628 2436 535 1414 1383 534 2114 2002 536 2115 2003 534 2114 2002 535 1414 1383 545 2117 2005 527 2116 2004 544 1796 2438 526 2872 2798 544 1796 2438 527 2116 2004 553 246 250 539 1409 1378 552 2118 2006 538 234 238 552 2118 2006 539 1409 1378 548 1410 1379 547 237 241 562 249 253 561 2121 2009 562 249 253 547 237 241 551 2631 2441 569 1421 1390 552 2118 2006 570 2119 2007 552 2118 2006 569 1421 1390 560 3072 2801 578 2634 2445 561 2121 2009 579 2120 2008 561 2121 2009 578 2634 2445 572 248 252 586 265 269 573 1415 1384 587 262 266 573 1415 1384 586 265 269 595 3073 2802 596 2122 2010 581 251 255 582 1416 1385 581 251 255 596 2122 2010 599 2124 2012 600 1422 1391 608 2126 2014 607 1423 1392 608 2126 2014 600 1422 1391 614 2636 2449 613 2635 2448 583 1420 1389 584 2633 2444 583 1420 1389 613 2635 2448 594 3074 2803 593 2127 2015 620 2130 2018 621 2128 2016 620 2130 2018 593 2127 2015 616 1425 1394 615 1424 1393 630 2129 2017 629 2638 2452 630 2129 2017 615 1424 1393 638 3075 2807 639 2131 2019 621 2128 2016 620 2130 2018 621 2128 2016 639 2131 2019 647 2132 2020 632 271 275 646 2640 2454 631 273 277 646 2640 2454 632 271 275 640 278 282 639 2131 2019 656 2133 2021 655 1432 1401 656 2133 2021 639 2131 2019 652 2134 2022 651 935 3036 665 2135 2023 664 3269 2940 665 2135 2023 651 935 3036 677 3076 2809 678 2136 2024 672 2139 2027 673 1435 1404 672 2139 2027 678 2136 2024 684 294 298 679 290 294 683 2138 2026 678 2136 2024 683 2138 2026 679 290 294 687 2140 2028 688 295 299 665 2135 2023 666 289 293 665 2135 2023 688 295 299 296 2141 2029 295 3264 2933 692 2142 2030 691 2645 2461 692 2142 2030 295 3264 2933 700 2145 2034 304 2143 2032 699 2647 2462 329 2094 1978 699 2647 2462 304 2143 2032 694 297 301 693 298 302 709 1456 1424 708 1457 1425 709 1456 1424 693 298 302 718 1454 1422 703 299 303 717 2152 2039 702 300 304 717 2152 2039 703 299 303 739 3078 2812 725 1449 1417 740 2146 2035 726 2147 2036 740 2146 2035 725 1449 1417 749 324 327 748 321 324 752 3382 321 751 316 320 752 3382 321 748 321 324 763 2658 2474 764 329 332 760 2657 2470 761 327 330 760 2657 2470 764 329 332 730 2656 2469 770 1451 1419 731 2655 2468 769 2659 2475 731 2655 2468 770 1451 1419 774 2660 2476 758 3272 2942 775 326 329 761 327 330 775 326 329 758 3272 2942 749 324 327 771 325 328 767 1446 1415 778 3079 2813 767 1446 1415 771 325 328 736 2650 2465 737 334 337 782 3082 2477 783 335 338 782 3082 2477 737 334 337 786 2662 2478 740 2146 2035 787 337 340 741 310 314 787 337 340 740 2146 2035 790 2663 2479 744 2654 2467 791 338 341 745 339 342 791 338 341 744 2654 2467 806 3091 2821 793 1464 1432 805 3088 2818 794 1462 1430 805 3088 2818 793 1464 1432 823 2157 2044 822 3086 2816 795 1461 1429 794 1462 1430 795 1461 1429 822 3086 2816 821 3087 2817 831 3089 2819 805 3088 2818 806 3091 2821 805 3088 2818 831 3089 2819 810 345 348 829 3093 2823 807 2156 2043 830 2158 2045 807 2156 2043 829 3093 2823 847 359 362 840 2159 2046 846 357 360 838 2678 2491 846 357 360 840 2159 2046 861 2163 2050 860 2680 2493 862 1478 1445 859 2162 2049 862 1478 1445 860 2680 2493 872 367 370 865 368 371 871 2164 2051 864 3099 2832 871 2164 2051 865 368 371 876 2165 2052 877 2166 2053 849 2692 2507 853 2693 2509 849 2692 2507 877 2166 2053 887 3095 2825 889 2686 2499 886 373 376 888 374 377 886 373 376 889 2686 2499 896 1482 1449 897 377 380 911 1486 1453 910 379 382 911 1486 1453 897 377 380 888 374 377 917 2685 2498 894 376 379 918 381 384 894 376 379 917 2685 2498 925 2172 2058 841 2171 2057 843 2681 2494 843 2681 2494 924 2687 2826 925 2172 2058 883 2173 2060 927 385 2059 885 3096 2824 926 386 2827 885 3096 2824 927 385 2059 934 394 396 933 399 401 915 392 394 909 397 399 915 392 394 933 399 401 908 1483 1450 900 1485 1452 939 2177 2062 938 2691 2830 939 2177 2062 900 1485 1452 866 366 369 941 3383 3037 865 368 371 940 3098 2831 865 368 371 941 3383 3037 879 1500 375 935 1499 1464 857 3384 374 946 3102 407 857 3384 374 935 1499 1464 949 417 417 954 410 410 948 419 419 955 411 411 948 419 419 954 410 410 957 415 415 979 413 413 952 1516 1055 978 2698 1057 952 1516 1055 979 413 413 988 563 563 974 440 2096 989 1589 1513 973 439 1843 989 1589 1513 974 440 2096 994 1517 1056 995 2699 1058 1001 2186 1809 1000 2700 1060 1001 2186 1809 995 2699 1058 981 1514 1052 1007 2188 2068 966 425 425 1008 427 427 966 425 425 1007 2188 2068 1012 2701 1062 1017 429 429 1013 2189 1810 1018 1522 1064 1013 2189 1810 1017 429 429 1028 454 453 1030 452 451 968 1512 1471 975 2233 1806 968 1512 1471 1030 452 451 1020 3109 2702 1037 3385 1076 1036 458 457 1038 457 456 1036 458 457 1037 3385 1076 956 2184 2067 958 2183 2066 1053 3110 2703 1055 3287 1084 1053 3110 2703 958 2183 2066 1062 3111 2704 1063 466 465 1011 3107 1061 1016 431 431 1011 3107 1061 1063 466 465 1071 2194 1131 1070 2195 2070 1052 565 1129 1051 566 2949 1052 565 1129 1070 2195 2070 1027 3285 1065 1025 2702 1813 1080 2200 1820 1078 2199 2073 1080 2200 1820 1025 2702 1813 1087 2204 2076 1034 2704 1815 1088 1538 1483 1035 2196 2071 1088 1538 1483 1034 2704 1815 1053 3110 2703 1055 3287 1084 1093 2197 2072 1095 2198 1085 1093 2197 2072 1055 3287 1084 1100 2202 2074 1060 3112 1070 1099 2203 2075 1059 1527 1071 1099 2203 2075 1060 3112 1070 1102 2205 2077 1103 464 463 1062 3111 2704 1063 466 465 1062 3111 2704 1103 464 463 1107 469 467 1072 448 448 1106 2206 2078 1066 1529 1478 1106 2206 2078 1072 448 448 1124 3115 1100 1125 2207 2079 1129 470 468 1130 471 469 1129 470 468 1125 2207 2079 1133 2718 2709 1142 3386 2080 1128 506 502 1141 1549 1492 1128 506 502 1142 3387 2080 1113 476 474 1143 477 475 1154 2211 1822 1153 2743 1132 1154 2211 1822 1143 477 475 1121 484 482 1163 485 483 1120 1556 1496 1164 2216 2082 1120 1556 1496 1163 485 483 1168 2721 1823 1169 3116 2706 1123 1543 1487 1145 1544 1488 1123 1543 1487 1169 3116 2706 1177 2722 1099 1178 2214 1824 1182 3118 2708 1183 2215 2081 1182 3118 2708 1178 2214 1824 1164 2216 2082 1124 3115 1100 1193 514 511 1189 515 512 1193 514 511 1124 3115 1100 1184 547 544 1202 1559 1136 1183 2215 2081 1201 498 496 1183 2215 2081 1202 1559 1136 1219 1573 1501 1214 1568 1106 1156 480 478 1112 478 476 1156 480 478 1214 1568 1106 1199 2217 2083 1205 508 505 1225 1580 1503 1226 1579 1502 1225 1580 1503 1205 508 505 1232 2737 1834 1226 1579 1502 1229 507 504 1205 508 505 1229 507 504 1226 1579 1502 1191 2221 2084 1186 492 490 1244 2223 1117 1239 3388 1112 1244 2223 1117 1186 492 490 1251 2224 1122 1206 513 510 1250 531 528 1198 2220 1827 1250 531 528 1206 513 510 1257 3120 2711 1242 517 514 1256 522 519 1241 524 521 1256 522 519 1242 517 514 1261 527 524 1246 516 513 1257 3120 2711 1242 517 514 1257 3120 2711 1246 516 513 1248 2734 1831 1263 2735 1832 1249 530 527 1264 528 525 1249 530 527 1263 2735 1832 1237 519 516 1252 520 517 1268 3121 1162 1267 2736 1833 1268 3121 1162 1252 520 517 1280 2228 2712 1278 2229 2951 984 2697 1808 985 1521 1474 984 2697 1808 1278 2229 2951 1014 2190 2069 1019 2191 1063 1286 2230 2713 1287 546 2091 1286 2230 2713 1019 2191 1063 1281 1583 1133 1143 477 475 1280 2228 2092 1144 475 473 1280 2228 2092 1143 477 475 1162 1553 1493 1284 2744 1839 1174 1554 1494 1286 2230 2094 1174 1554 1494 1284 2744 1839 1005 532 529 965 2738 1049 1270 533 530 1276 549 1835 1270 533 530 965 2738 1049 1297 1591 1143 1142 3389 1145 1149 2720 1139 1133 2718 1821 1149 2720 1139 1142 3390 1145 1135 472 1148 1136 473 3012 1300 1592 1149 1137 1542 2718 1300 1592 1149 1136 473 3012 1303 1593 1147 1306 1594 1150 1190 2724 1146 1243 523 1151 1190 2724 1146 1306 1594 1150 1309 1595 1152 1312 1597 1154 1258 521 1153 1218 2225 1156 1258 521 1153 1312 1597 1154 1313 2748 2952 1203 3123 3013 1293 570 570 1237 3391 572 1293 570 570 1203 1567 3013 1077 2237 2099 1315 567 567 1108 3124 2721 1314 568 568 1108 3124 2721 1315 567 567 1324 3128 2724 1323 1602 2726 1326 3392 3014 1325 3393 3015 1326 3392 3014 1323 1602 2726 1345 585 1860 1347 590 1518 1346 586 2955 1348 1603 1520 1346 586 2955 1347 590 1518 1341 1605 1858 1333 578 578 1351 1607 1167 1343 587 1169 1351 1607 1167 1333 578 578 1352 1972 1168 1344 588 1170 1350 582 582 1356 584 584 1350 582 582 1344 588 1170 1344 588 1170 1346 586 2955 1356 584 584 1357 1604 1521 1356 584 584 1346 586 2955 1346 586 2955 1348 1603 1520 1357 1604 1521 1379 1607 1178 1371 587 587 1380 1972 1181 1372 588 588 1380 1972 1181 1371 587 587 1367 1606 2101 1388 1608 3016 1368 1221 2102 1387 1220 2104 1368 1221 2102 1388 1608 3016 1398 1611 1530 1397 3394 2511 1399 1609 1528 1400 3395 2961 1399 1609 1528 1397 3394 2511 1405 3396 3038 1409 3397 1535 1408 3397 3039 1410 3398 1533 1408 3397 3039 1409 3397 1535 1409 3399 1535 1405 3400 3038 1418 3400 1536 1417 3401 3040 1418 3400 1536 1405 3400 3038 1427 3402 2967 1428 1620 609 1426 3403 2521 1425 1622 1537 1426 3403 2521 1428 1620 609 1431 1623 1538 1436 3404 2117 1425 1622 1537 1434 3405 2522 1425 1622 1537 1436 3404 2117 1447 618 2120 1441 617 612 1448 2766 2118 1444 615 1539 1448 2766 2118 1441 617 612 1460 1624 617 1459 1625 616 1454 1626 3041 1455 1627 3042 1454 1626 3041 1459 1625 616 1461 1628 1547 1453 1629 1549 1467 1630 3043 1465 1631 3044 1467 1630 3043 1453 1629 1549 1478 3406 626 1481 1640 624 1472 3407 2127 1474 1638 1555 1472 3407 2127 1481 1640 624 1487 3408 1557 1486 3409 2979 1488 3410 3045 1485 3411 3046 1488 3410 3045 1486 3409 2979 1490 3412 3047 1492 3413 3048 1489 3414 1558 1491 3415 1562 1489 3414 1558 1492 3413 3048 1506 1645 637 1493 1646 1563 1508 3416 638 1495 3417 2135 1508 3416 638 1493 1646 1563 1512 1648 1565 1522 1647 1564 1514 3418 3049 1525 3419 3050 1514 3418 3049 1522 1647 1564 1527 3420 3051 1529 3421 3052 1516 3422 3053 1518 3423 3054 1516 3422 3053 1529 3421 3052 1531 633 3055 1529 1657 1574 1530 633 1575 1530 633 1575 1532 633 2540 1531 633 3055 1536 3410 3056 1538 3424 3057 1535 3425 649 1537 3426 1580 1535 3425 649 1538 3424 3057 1540 3427 3058 1542 2780 2541 1539 3428 1582 1541 2782 2543 1539 3428 1582 1542 2780 2541 1558 3429 3059 1557 3430 3060 1568 3430 660 1565 3431 662 1568 3430 660 1557 3430 3060 1563 3432 3061 1564 3433 2985 1561 3434 3062 1562 3435 1589 1561 3434 3062 1564 3433 2985 1610 2305 2161 1611 676 685 1625 664 671 1626 665 672 1625 664 671 1611 676 685 1627 2306 2152 1628 1697 1617 1640 2307 2153 1639 1696 1616 1640 2307 2153 1628 1697 1617 1657 2309 2155 1646 673 682 1659 668 2157 1647 669 680 1659 668 2157 1646 673 682 1644 2310 2158 1645 2312 2159 1633 2789 2549 1656 3155 2851 1633 2789 2549 1645 2312 2159 1664 2313 2989 1610 2305 2151 1663 1687 1606 1609 660 667 1663 1687 1606 1610 2305 2151 1602 683 692 1601 682 691 1673 746 756 1675 747 757 1673 746 756 1601 682 691 1683 755 765 1604 690 699 1674 717 726 1603 692 701 1674 717 726 1604 690 699 1599 679 1600 1689 2317 2165 1598 686 695 1690 687 696 1598 686 695 1689 2317 2165 1605 3157 2854 1693 2319 2167 1604 690 2852 1695 691 2168 1604 690 2852 1693 2319 2167 1700 697 706 1661 1688 1607 1699 709 718 1662 1695 1615 1699 709 718 1661 1688 1607 1705 699 708 1706 1690 1609 1703 2802 2859 1704 2320 2169 1703 2802 2859 1706 1690 1609 1593 1685 1604 1713 1693 2170 1592 1686 1605 1711 2321 2171 1592 1686 1605 1713 1693 2170 1671 3320 2988 1670 3321 2554 1718 3162 2860 1716 3163 2561 1718 3162 2860 1670 3321 2554 1632 1675 1593 1721 2325 2175 1635 2788 2548 1725 2326 2176 1635 2788 2548 1721 2325 2175 1652 2790 3063 1729 2327 2177 1651 715 724 1730 714 723 1651 715 724 1729 2327 2177 1671 3320 2988 1732 2329 2179 1606 1673 1591 1722 2328 2178 1606 1673 1591 1732 2329 2179 1686 693 702 1592 1686 1605 1739 2330 2180 1740 2331 2181 1739 2330 2180 1592 1686 1605 1743 2333 2183 1711 2321 2171 1744 723 732 1712 704 713 1744 723 732 1711 2321 2171 1718 3162 2860 1746 2334 2184 1671 3320 2988 1732 2329 2179 1671 3320 2988 1746 2334 2184 181 80 2864 1765 777 786 174 81 735 1758 727 737 174 81 735 1765 777 786 1737 1727 2991 1573 764 774 1773 2813 2569 1774 762 772 1773 2813 2569 1573 764 774 1574 2820 3064 1772 1705 1625 1575 1723 2992 1778 2814 2570 1575 1723 2992 1772 1705 1625 1786 3436 3065 1785 3169 2867 1791 2341 2191 1790 3168 2866 1791 2341 2191 1785 3169 2867 1799 2339 2189 1791 2341 2191 1795 2817 2573 1790 3168 2866 1795 2817 2573 1791 2341 2191 1801 3176 2871 1786 3436 3065 1800 2342 2192 1791 2341 2191 1800 2342 2192 1786 3436 3065 1805 2343 2194 1677 681 1599 1806 751 761 1678 753 763 1806 751 761 1677 681 1599 1683 755 2853 1811 3437 2198 1681 3158 2855 1810 2345 2196 1681 3158 2855 1811 2347 2198 1814 2349 2200 1812 756 766 1733 716 725 1674 717 726 1733 716 725 1812 756 766 1819 2351 2202 1818 2825 2581 1787 738 748 1792 739 749 1787 738 748 1818 2825 2581 1761 2355 2207 1826 2353 2204 177 115 3066 265 117 2205 177 115 3066 1826 2353 2204 1827 769 778 1826 2353 2204 1834 2828 2584 1835 2354 2206 1834 2828 2584 1826 2353 2204 1836 1737 1655 1837 776 785 1758 727 737 1759 726 736 1758 727 737 1837 776 785 1764 778 787 1763 2811 2567 1842 780 789 1841 2830 2586 1842 780 789 1763 2811 2567 1767 729 739 1768 728 738 1846 781 790 1845 3179 2874 1846 781 790 1768 728 738 1861 2834 2590 1862 784 793 1848 2410 2271 1849 783 792 1848 2410 2271 1862 784 793 1866 2360 2213 1855 2361 2214 1865 2836 2592 1853 3201 2897 1865 2836 2592 1855 2361 2214 1783 2839 2594 1876 2359 2212 1820 1743 1661 1869 1744 1662 1820 1743 1661 1876 2359 2212 1858 3438 3067 1867 794 803 1884 1748 1667 1883 796 805 1884 1748 1667 1867 794 803 1888 3182 2996 1889 2362 2215 1890 2371 3068 1891 2363 2216 1890 2371 3068 1889 2362 2215 1895 2840 2595 1893 1749 1668 1898 805 814 1896 1752 1671 1898 805 814 1893 1749 1668 1907 2852 2878 1903 2841 2596 1906 3180 2877 1904 2842 2597 1906 3180 2877 1903 2841 2596 1905 2367 2220 1915 2368 2221 1906 3180 2877 1914 2875 2632 1906 3180 2877 1915 2368 2221 1922 884 893 1924 883 892 1921 3439 2879 1923 1764 1685 1921 3439 2879 1924 883 892 1933 878 887 1934 1786 1713 1935 816 825 1936 817 826 1935 816 825 1934 1786 1713 1907 2852 2608 1944 2853 2609 1903 2841 3069 1943 3185 2881 1903 2841 3069 1944 2853 2609 1952 827 837 1944 2853 2609 1953 834 844 1948 833 843 1953 834 844 1944 2853 2609 1961 2865 2619 1960 2379 2232 1951 2372 2226 1950 3183 2231 1951 2372 2226 1960 2379 2232 1969 1775 1699 1961 2865 2619 1954 824 834 1951 2372 2226 1954 824 834 1961 2865 2619 1972 1763 1684 1977 3186 2882 1973 838 1686 1978 837 2230 1973 838 1686 1977 3186 2882 1982 842 852 1939 3187 2606 1983 1766 1689 1950 2378 2231 1983 1766 1689 1939 3187 2606 1997 1769 2234 1880 2381 2235 1995 2382 2236 1877 792 801 1995 2382 2236 1880 2381 2235 2002 2383 2238 1858 3438 3067 2004 848 2237 1871 839 3070 2004 848 2237 1858 3438 3067 2008 2384 2239 1989 3440 859 2009 1778 1702 1988 851 861 2009 1778 1702 1989 849 859 2017 3190 2884 2012 3191 1695 2018 2385 2240 1991 2386 2241 2018 2385 2240 2012 3191 1695 1965 1762 1683 2018 2385 2240 1966 2387 2242 2019 853 863 1966 2387 2242 2018 2385 2240 2024 2866 2620 1931 2847 2602 2025 2388 2244 1932 1768 1691 2025 2388 2244 1931 2847 2602 2009 1778 1702 1988 851 861 2027 860 869 2031 2867 2621 2027 860 869 1988 851 861 2034 1780 1704 2038 2389 2622 2033 866 875 2037 2868 2623 2033 866 875 2038 2389 2622 2040 1782 1706 2044 2390 2249 504 219 1708 509 221 2624 504 219 1708 2044 2390 2249 2051 2391 2250 2050 2870 2627 2047 1784 1709 2046 872 1710 2047 1784 1709 2050 2870 2627 1916 810 819 1917 811 820 2053 2392 2251 2054 888 897 2053 2392 2251 1917 811 820 1977 3186 2882 1972 1763 1684 2060 2395 2254 2061 890 899 2060 2395 2254 1972 1763 1684 2052 2873 2630 2053 2392 2251 2068 1799 1726 2069 2393 2252 2068 1799 1726 2053 2392 2251 2059 3192 2888 2060 2395 2254 2075 2879 2636 2076 2394 2253 2075 2879 2636 2060 2395 2254 2071 887 896 2072 1792 1719 2083 2396 2255 2084 901 910 2083 2396 2255 2072 1792 1719 2079 1793 1720 2091 905 914 2078 892 901 2090 2398 2257 2078 892 901 2091 905 914 2082 3193 2889 2083 2396 2255 2098 2881 2638 2099 2397 2256 2098 2881 2638 2083 2396 2255 2089 3194 2890 2090 2398 2257 2105 2884 2641 2106 2399 2258 2105 2884 2641 2090 2398 2257 575 252 1727 589 254 3071 2101 903 912 2113 3195 2891 2101 903 912 589 254 3071 2095 2400 2261 2121 919 928 2094 906 915 2120 921 930 2094 906 915 2121 919 928 2125 2401 2262 2129 916 925 2113 3195 2891 2112 915 924 2113 3195 2891 2129 916 925 2110 2882 2639 2111 917 926 2131 1810 1738 2130 918 927 2131 1810 1738 2111 917 926 2115 908 917 2141 2891 2648 2114 910 919 2142 1815 1743 2114 910 919 2141 2891 2648 2149 2402 2263 2148 2893 2650 2144 1814 1742 2143 926 935 2144 1814 1742 2148 2893 2650 2137 1812 1740 2156 2403 2264 2138 2887 2644 2155 3196 2892 2138 2887 2644 2156 2403 2264 2150 929 938 634 281 939 2163 2895 2652 649 282 2653 2163 2895 2652 634 281 939 2159 1816 1745 2171 6 6 2158 1817 1746 2170 945 955 2158 1817 1746 2171 6 6 2167 2404 2265 2178 948 958 2166 1819 1748 2177 3197 2893 2166 1819 1748 2178 948 958 2188 3200 2896 2184 1826 1755 2189 946 956 2185 1827 1756 2189 946 956 2184 1826 1755 2188 3200 2896 2189 946 956 2192 2405 2266 2193 8 8 2192 2405 2266 2189 946 956 2195 2407 2268 2177 3197 2893 2196 947 957 2178 948 958 2196 947 957 2177 3197 2893 1855 2361 2214 2201 2408 2269 1853 3201 2897 2200 2902 2660 1853 3201 2897 2201 2408 2269 2208 2409 2270 702 300 3003 1848 2410 2271 292 301 2994 1848 2410 2271 702 300 3003 2203 949 959 2216 2411 2272 2202 950 960 2215 1851 1778 2202 950 960 2216 2411 2272 2234 982 991 2222 2412 2273 733 307 3072 719 309 2901 733 307 3072 2222 2412 2273 2241 3204 2900 2242 987 996 2229 2909 2670 2230 978 987 2229 2909 2670 2242 987 996 2250 966 976 2248 2908 2669 2251 968 978 2249 3441 985 2251 968 978 2248 2908 2669 747 322 2668 765 320 2902 2246 971 981 2258 969 979 2246 971 981 765 320 2902 2249 3441 985 2247 972 982 2263 3207 983 2262 3208 2903 2263 3207 983 2247 972 982 2266 2910 2671 2267 979 988 2255 3338 3004 2257 2414 2276 2255 3338 3004 2267 979 988 2270 981 990 2234 982 991 780 331 2905 733 307 3072 780 331 2905 2234 982 991 2238 985 994 2237 1834 1762 2274 983 992 2273 2913 2673 2274 983 992 2237 1834 1762 2242 987 996 2241 3204 2900 2278 989 998 2277 2916 2674 2278 989 998 2241 3204 2900 2281 2917 2675 792 340 2906 2245 1838 1764 746 341 3073 2245 1838 1764 792 340 2906 2296 2920 2678 2297 2418 2279 2300 2420 2281 2301 1858 1785 2300 2420 2281 2297 2418 2279 2304 1875 1802 2318 2421 2282 2305 997 1006 2317 998 1007 2305 997 1006 2318 2421 2282 2323 2424 2285 2322 2425 2286 2316 3343 3008 2315 2937 2696 2316 3343 3008 2322 2425 2286 2320 1007 1016 2307 3442 3010 2328 1005 1014 2329 2426 2287 2328 1005 1014 2307 3442 3010 2336 2924 2682 2343 1009 1018 2338 3340 3005 2344 1011 1020 2338 3340 3005 2343 1009 1018 2347 1010 1019 2360 2928 2686 2348 1012 1021 2362 1019 1028 2348 1012 1021 2360 2928 2686 2344 1011 1020 2348 1012 1021 2368 2929 2687 2369 1868 1795 2368 2929 2687 2348 1012 1021 2287 991 1000 2377 2431 2291 2289 1855 1782 2376 2933 2907 2289 1855 1782 2377 2431 2291 2379 3443 3074 2372 2432 2292 2378 1023 2910 2330 3444 1037 2378 1023 2910 2372 2432 2292 2365 3341 3006 2384 2936 2693 2357 3445 3075 2382 1872 1799 2357 3445 3075 2384 2936 2693 2391 3446 3076 2390 3212 2911 2359 3342 3007 2383 2935 2692 2359 3342 3007 2390 3212 2911 2345 2930 2688 2349 1869 1796 2393 1037 2913 2394 1877 2294 2393 1037 2913 2349 1869 1796 2395 2439 3077 2396 3216 3011 2320 3447 1016 2307 3448 3010 2320 3447 1016 2396 3216 3011 2405 2998 411 2411 1887 409 2404 2945 410 2410 1888 408 2404 2945 410 2411 1887 409 2430 2953 412 2412 2447 414 2429 2947 413 2407 1883 415 2429 2947 413 2412 2447 414 2441 3219 416 2442 1964 418 2399 2944 417 2398 2997 419 2399 2944 417 2442 1964 418 2413 2443 420 2454 1069 422 2414 1044 421 2453 1056 423 2414 1044 421 2454 1069 422 2436 1943 424 2459 1942 426 2416 1050 425 2458 2446 427 2416 1050 425 2459 1942 426 2472 2450 428 2471 3220 430 2467 2449 429 2466 2954 431 2467 2449 429 2471 3220 430 2447 1895 435 2440 3218 433 2482 1085 434 2481 1086 432 2482 1085 434 2440 3218 433 2473 1065 436 2491 1898 437 2472 2450 428 2490 1070 438 2472 2450 428 2491 1898 437 2423 2445 439 2506 1095 441 2424 3231 440 2508 1093 442 2424 3231 440 2506 1095 441 2471 3220 430 2489 1072 444 2514 1103 443 2515 1102 445 2514 1103 443 2489 1072 444 2517 3449 446 2522 2454 448 2494 1077 447 2519 1078 449 2494 1077 447 2522 2454 448 2533 1909 450 2531 1910 452 2480 1957 451 2478 2955 453 2480 1957 451 2531 1910 452 2540 1912 454 2488 1084 456 2539 1913 455 2486 2959 457 2539 1913 455 2488 1084 456 2546 1094 458 2506 1095 441 2547 2456 459 2507 1900 460 2547 2456 459 2506 1095 441 2511 1098 461 2551 1099 462 2507 1900 460 2547 2456 459 2507 1900 460 2551 1099 462 2553 2458 463 2513 3222 465 2554 1101 464 2514 1103 443 2554 1101 464 2513 3222 465 2522 2454 448 2517 3450 446 2557 2461 467 2558 2460 466 2557 2461 467 2517 3450 446 2579 1130 468 2585 1189 470 2580 2463 469 2586 2465 471 2580 2463 469 2585 1189 470 2568 1916 472 2563 1917 474 2594 2468 473 2593 1174 475 2594 2468 473 2563 1917 474 2562 1109 476 2606 1116 478 2588 1111 477 2605 1118 479 2588 1111 477 2606 1116 478 2613 2973 483 2615 1162 481 2571 2971 482 2572 1164 480 2571 2971 482 2615 1162 481 2610 1119 484 2622 1126 486 2611 1920 485 2623 1923 487 2611 1920 485 2622 1126 486 2561 1106 488 2636 1147 490 2564 1104 489 2635 1145 491 2564 1104 489 2636 1147 490 2607 2471 492 2620 2475 494 2642 1149 493 2644 1151 495 2642 1149 493 2620 2475 494 2651 2476 496 2650 2980 498 2658 1140 497 2657 1141 499 2658 1140 497 2650 2980 498 2616 1120 500 2578 3451 502 2671 2477 501 2667 2987 503 2671 2477 501 2578 3346 502 2679 2984 504 2678 1143 506 2655 3225 505 2657 1141 499 2655 3225 505 2678 1143 506 2685 2481 507 2683 2482 509 2684 3226 508 2656 3227 510 2684 3226 508 2683 2482 509 2643 2483 511 2696 2484 513 2639 1129 512 2692 3347 514 2639 1129 512 2696 2484 513 2653 2480 515 2687 3348 516 2683 2482 509 2702 3228 517 2683 2482 509 2687 3348 516 2708 1194 518 2693 1192 520 2706 2989 519 2691 2985 521 2706 2989 519 2693 1192 520 2705 1934 522 2711 2990 524 2690 1932 523 2696 2484 513 2690 1932 523 2711 2990 524 2714 2991 525 2699 2986 527 2715 1158 526 2700 1159 528 2715 1158 526 2699 2986 527 2719 1165 531 2720 1163 530 2411 1887 409 2455 1057 529 2411 1887 409 2720 1163 530 2735 1966 532 2732 2487 533 2442 1964 418 2398 2997 419 2442 1964 418 2732 2487 533 2738 2488 534 2739 1177 536 2474 1063 535 2492 2451 537 2474 1063 535 2739 1177 536 2597 1113 538 2596 1112 540 2422 2491 539 2722 1945 541 2422 2491 539 2596 1112 540 2629 3224 542 2634 2489 544 2737 3229 543 2738 2488 545 2737 3229 543 2634 2489 544 2615 1162 481 2576 3223 547 2720 1163 546 2726 1940 548 2720 1163 546 2576 3223 547 2745 1948 549 2746 2492 551 2437 2949 550 2422 2491 552 2437 2949 550 2746 2492 551 2748 1953 553 2749 2493 555 2751 1955 554 2752 2494 556 2751 1955 554 2749 2493 555 2755 2495 557 2758 2496 559 2754 1956 558 2757 1958 560 2754 1956 558 2758 2496 559 2724 1184 561 2438 2490 563 2761 2497 562 2760 1959 564 2761 2497 562 2438 2490 563 2502 1171 565 2765 2498 567 2501 3232 566 2764 3001 568 2501 3232 566 2765 2498 567 2766 1199 569 2767 1200 571 2743 3233 570 2687 2499 572 2743 3233 570 2767 1200 571 2777 1969 573 2770 1967 575 2778 2500 574 2771 2501 576 2778 2500 574 2770 1967 575 2785 1973 577 2786 586 579 2783 1218 578 2784 588 580 2783 1218 578 2786 586 579 2799 1974 581 2805 2503 583 2800 1221 582 2806 1220 584 2800 1221 582 2805 2503 583 2823 1214 585 2821 1211 587 2824 579 586 2822 580 588 2824 579 586 2821 1211 587 2813 1973 589 2823 1214 585 2815 1975 590 2825 1215 591 2815 1975 590 2823 1214 585 2815 1975 590 2825 1215 591 2831 1976 592 2836 2502 593 2831 1976 592 2825 1215 591 2853 2507 1874 2851 3005 1872 2846 2509 1191 2844 3006 1190 2846 2509 1191 2851 3005 1872 2869 3452 1193 2870 3453 2732 2868 3454 3078 2867 3455 3017 2868 3454 3078 2870 3453 2732 2871 3456 3079 2873 3457 3080 2872 3458 1195 2874 3459 1196 2872 3458 1195 2873 3457 3080 2864 1991 1878 2863 1992 1199 2866 3460 3081 2865 3461 2916 2866 3460 3081 2863 1992 1199 2881 1994 1879 2893 1993 1206 2883 3462 2314 2896 3463 1207 2883 3462 2314 2893 1993 1206 2898 3464 1210 2900 3011 1211 2885 3465 2316 2887 3013 2318 2885 3465 2316 2900 3011 1211 2916 3016 2740 2915 3466 3082 2906 3015 2739 2903 3467 3083 2906 3015 2739 2915 3466 3082 2916 3468 3084 2919 3469 3085 2917 3470 2319 2920 3471 1216 2917 3470 2319 2919 3469 3085 2921 3472 3086 2923 2518 2741 2922 3473 1217 2924 1249 1896 2922 3473 1217 2923 2518 2741 2973 3474 1227 2971 3475 3087 2974 3475 1226 2972 3476 3088 2974 3475 1226 2971 3475 3087 2960 3477 1229 2949 3478 2334 2962 3479 1231 2951 3480 2335 2962 3479 1231 2949 3478 2334 2956 3481 3089 2965 3482 3090 2955 3482 1235 2966 3483 1909 2955 3482 1235 2965 3482 3090 2938 3484 1237 2970 3485 2743 2937 3486 3091 2969 3487 3026 2937 3486 3091 2970 3485 2743 2939 3488 3092 2941 3489 3093 2940 3490 1239 2942 3491 1240 2940 3490 1239 2941 3489 3093 2934 2030 1913 2933 2031 1243 2936 3492 3094 2935 3461 2922 2936 3492 3094 2933 2031 1243 48 1304 1270 49 2558 2350 47 1309 1275 34 2040 1921 47 1309 1275 49 2558 2350 36 30 31 35 2039 1920 51 1280 1244 50 2557 2349 51 1280 1244 35 2039 1920 52 13 13 69 2559 2355 53 15 15 68 1281 1246 53 15 15 69 2559 2355 86 21 2353 76 2560 2352 74 23 2356 75 2561 2354 74 23 2356 76 2560 2352 69 2559 2351 70 1285 1249 74 23 23 73 22 22 74 23 23 70 1285 1249 92 1286 1250 38 14 14 93 2048 1929 39 2032 1914 93 2048 1929 38 14 14 27 1288 1253 103 1287 1252 26 39 3031 104 102 3032 26 39 3031 103 1287 1252 28 33 34 114 2562 2357 29 31 32 112 1310 1276 29 31 32 114 2562 2357 25 40 41 24 3033 2756 117 42 43 118 2564 2359 117 42 43 24 3033 2756 31 37 38 30 38 39 122 45 2360 113 73 75 122 45 2360 30 38 39 128 1297 1263 125 1298 1264 129 2565 2361 127 46 48 129 2565 2361 125 1298 1264 134 2566 2362 17 2563 2358 132 50 52 16 2042 1924 132 50 52 17 2563 2358 141 1299 1265 139 78 80 96 3255 2924 95 3256 2925 96 3255 2924 139 78 80 146 1301 1267 147 1314 1280 124 1303 1269 126 47 49 124 1303 1269 147 1314 1280 56 2034 1916 151 2054 1935 65 2036 1918 153 2568 2364 65 2036 1918 151 2054 1935 153 2568 2364 157 69 71 65 2036 1918 78 67 69 65 2036 1918 157 69 71 160 108 111 162 2057 1939 101 36 37 30 38 39 101 36 37 162 2057 1939 22 3260 2927 121 2043 1926 165 2569 2365 168 2570 2366 165 2569 2365 121 2043 1926 171 77 79 158 2056 1938 139 78 80 95 3256 2925 139 78 80 158 2056 1938 175 725 2370 197 123 126 174 81 83 196 83 85 174 81 83 197 123 126 206 130 133 195 730 3095 205 128 131 193 731 1294 205 128 131 195 730 3095 5 2067 3096 214 1321 1288 4 1330 2931 213 1319 1286 4 1330 2931 214 1321 1288 6 3375 1946 217 1322 1289 5 2067 3096 214 1321 1288 5 2067 3096 217 1322 1289 225 112 115 226 3043 2766 230 110 113 231 1324 1291 230 110 113 226 3043 2766 234 1328 1295 236 744 1296 204 1315 1281 182 745 1282 204 1315 1281 236 744 1296 100 32 33 241 2073 1956 102 34 35 242 2583 2379 102 34 35 241 2073 1956 246 2584 2381 106 3032 2755 245 101 103 105 103 105 245 101 103 106 3032 2755 250 105 2382 251 109 112 110 35 36 101 36 37 110 35 36 251 109 112 248 2069 1953 109 3261 2928 254 2587 2385 163 3040 2762 254 2587 2385 109 3261 2928 256 2589 2387 10 2071 3033 212 87 89 0 86 88 212 87 89 10 2070 3033 268 118 121 267 767 1306 270 2078 1960 269 766 2390 270 2078 1960 267 767 1306 263 2077 1959 276 2591 2391 264 2076 1958 275 3050 2772 264 2076 1958 276 2591 2391 282 1339 1308 281 122 125 198 2572 2369 197 123 126 198 2572 2369 281 122 125 203 82 84 287 1344 1313 202 124 127 286 125 128 202 124 127 287 1344 1313 205 128 131 234 1328 1295 290 129 132 291 1347 1316 290 129 132 234 1328 1295 294 135 138 295 3264 2933 310 134 137 311 1348 1317 310 134 137 295 3264 2933 317 787 1322 316 1353 1323 306 788 2031 304 2143 2032 306 788 2031 316 1353 1323 328 2095 1979 316 1353 1323 327 192 197 305 1352 1321 327 192 197 316 1353 1323 315 146 149 334 147 150 302 2643 2459 336 1356 1326 302 2643 2459 334 147 150 338 1357 1327 343 1358 1328 220 3054 2778 222 2596 2397 220 3054 2778 343 1358 1328 351 2606 2779 352 2598 2399 348 2086 1968 349 153 156 348 2086 1968 352 2598 2399 360 2601 2402 219 2602 2403 359 1364 1334 208 1362 1332 359 1364 1334 219 2602 2403 359 1364 1334 368 226 230 360 2601 2402 369 228 232 360 2601 2402 368 226 230 383 812 2797 381 1368 1338 382 813 2408 380 1366 1336 382 813 2408 381 1368 1338 394 168 171 397 1371 1341 395 170 173 398 1383 1352 395 170 173 397 1371 1341 406 2605 2410 348 2086 2409 405 1373 1343 345 1374 1345 405 1373 1343 348 2086 2409 415 2092 1975 402 1372 1342 414 181 186 401 1375 1346 414 181 186 402 1372 1342 412 173 178 419 2090 1973 422 1377 1348 424 2105 1990 422 1377 1348 419 2090 1973 409 3062 2788 408 175 180 431 1380 1350 413 174 179 431 1380 1350 408 175 180 439 1384 2938 438 185 3097 434 3063 2789 433 183 2935 434 3063 2789 438 185 3097 321 195 3098 445 2612 2417 337 2093 1977 442 186 191 337 2093 1977 445 2612 2417 459 2102 2419 458 1386 1355 386 2613 2418 332 1387 1356 386 2613 2418 458 1386 1355 445 2612 2417 321 195 3098 465 2614 2420 464 194 2421 465 2614 2420 321 195 3098 449 200 203 448 199 204 470 3380 2424 471 3070 2792 470 3380 2424 448 199 204 479 207 211 480 1393 1360 474 1391 1358 470 2618 2424 474 1391 1358 480 1393 1360 481 2619 2425 480 1393 1360 428 2091 1974 427 1392 1359 428 2091 1974 480 1393 1360 488 212 216 467 2100 1984 487 1394 1994 460 1395 1986 487 1394 1994 467 2100 1984 495 1396 1363 496 215 219 490 1397 1364 491 2621 2428 490 1397 1364 496 215 219 475 2111 1997 471 3070 2792 503 1400 1367 498 1401 1368 503 1400 1367 471 3070 2792 507 2622 2793 506 1402 1371 512 225 2000 511 1403 1372 512 225 2000 506 1402 1371 514 875 2794 390 877 1971 515 2623 2431 391 167 170 515 2623 2431 390 877 1971 370 1406 1375 522 1407 1376 371 2624 2432 523 2625 2433 371 2624 2432 522 1407 1376 377 165 168 531 1408 1377 375 163 166 532 2629 2437 375 163 166 531 1408 1377 522 1407 1376 521 229 233 540 238 242 539 1409 1378 540 238 242 521 229 233 530 231 235 548 1410 1379 531 1408 1377 549 243 247 531 1408 1377 548 1410 1379 542 1411 1380 556 1412 1381 543 894 2799 557 896 2443 543 894 2799 556 1412 1381 535 1414 1383 565 1413 1382 536 2115 2003 566 2632 2442 536 2115 2003 565 1413 1382 555 241 245 573 1415 1384 556 1412 1381 574 253 257 556 1412 1381 573 1415 1384 582 1416 1385 567 257 261 564 244 248 565 1413 1382 564 244 248 567 257 261 578 2634 2445 577 1417 1386 592 267 271 591 268 272 592 267 271 577 1417 1386 599 2124 2012 602 913 2447 600 1422 1391 603 914 2804 600 1422 1391 602 913 2447 587 262 266 586 265 269 610 261 265 611 266 270 610 261 265 586 265 269 617 1428 1397 615 1424 1393 597 259 263 598 258 262 597 259 263 615 1424 1393 583 1420 1389 616 1425 1394 614 2636 2449 625 274 278 614 2636 2449 616 1425 1394 634 281 285 628 928 2806 633 279 283 627 1427 1396 633 279 283 628 928 2806 615 1424 1393 617 1428 1397 629 2638 2452 642 1429 1398 629 2638 2452 617 1428 1397 636 2637 2450 635 934 2451 652 2134 2022 651 935 3036 652 2134 2022 635 934 2451 646 2640 2454 645 1431 1400 660 1434 1403 659 2 2 660 1434 1403 645 1431 1400 655 1432 1401 668 4 4 656 2133 2021 669 3 3 656 2133 2021 668 4 4 676 941 2808 681 943 2458 677 3076 2809 682 2642 2456 677 3076 2809 681 943 2458 680 291 295 685 1 1 657 283 287 658 0 0 657 283 287 685 1 1 689 296 300 690 5 5 667 288 292 668 4 4 667 288 292 690 5 5 302 2643 2459 336 1356 1326 696 302 306 695 303 307 696 302 306 336 1356 1326 294 135 138 704 1436 1405 295 3264 2933 691 2645 2461 295 3264 2933 704 1436 1405 698 2648 2463 697 1437 1406 713 1460 1428 712 1438 1407 713 1460 1428 697 1437 1406 736 2653 2465 735 1439 1408 722 2651 2466 721 1440 1409 722 2651 2466 735 1439 1408 743 1442 1411 729 1441 1410 744 2654 2467 730 2656 2469 744 2654 2467 729 1441 1410 757 1443 1412 758 3272 2942 754 314 318 755 3493 319 754 314 318 758 3272 2942 766 319 322 748 321 324 767 1446 1415 749 324 327 767 1446 1415 748 321 324 772 1448 326 752 3494 321 773 1450 1418 755 3493 319 773 1450 1418 752 3495 321 729 1441 1410 728 313 317 777 1452 1420 776 328 331 777 1452 1420 728 313 317 781 1455 1423 779 330 333 735 1439 1408 734 306 310 735 1439 1408 779 330 333 784 333 336 738 332 335 785 1458 1426 739 3078 2812 785 1458 1426 738 332 335 743 1442 1411 789 1459 1427 742 312 316 788 336 339 742 312 316 789 1459 1427 798 346 349 795 1461 1429 797 2664 2480 796 1463 1431 797 2664 2480 795 1461 1429 812 342 345 816 2667 2483 814 1466 1434 815 2669 2485 814 1466 1434 816 2667 2483 827 3275 3099 799 2665 2481 828 3496 2487 797 2664 2480 828 2671 2487 799 2665 2481 812 342 345 824 1470 1437 816 2675 2483 825 2673 2489 816 2675 2483 824 1470 1437 836 2679 2492 837 383 386 834 1473 1440 833 1471 1438 834 1473 1440 837 383 386 835 1474 1441 858 2161 2048 834 1473 1440 859 2162 2049 834 1473 1440 858 2161 2048 855 362 365 856 1479 1446 867 364 367 869 1480 1447 867 364 367 856 1479 1446 874 1509 1470 875 2682 2495 845 1508 1469 844 3277 2944 845 1508 1469 875 2682 2495 878 370 373 870 369 372 877 2166 2053 853 2693 2509 877 2166 2053 870 369 372 893 375 378 894 376 379 897 377 380 898 378 381 897 377 380 894 376 379 906 2175 2061 896 1482 1449 914 1484 1451 911 1486 1453 914 1484 1451 896 1482 1449 902 2170 2056 912 380 383 921 1490 1457 920 1489 1456 921 1490 1457 912 380 383 832 3497 1439 833 3497 1438 929 387 3100 928 391 1458 929 387 3100 833 1471 1438 881 1497 1463 931 1493 1459 904 3279 2945 930 1495 1461 904 3279 2945 931 1493 1459 880 3498 393 883 3278 2060 931 1493 1459 882 1494 1460 931 1493 1459 883 3278 2060 936 1503 1465 856 1502 1446 855 362 365 936 3499 1465 855 362 365 937 2690 2504 849 2692 2507 943 401 2506 844 3277 2944 942 2695 2946 844 3277 2944 943 401 2506 947 3500 2510 891 2684 2497 923 3501 2500 916 2683 2496 923 1510 2500 891 2684 2497 964 421 421 969 1511 1050 965 2738 1049 970 2739 1051 965 2738 1049 969 1511 1050 981 1514 1052 966 425 425 982 3502 1053 971 3503 1054 982 3502 1053 966 425 425 952 1516 1055 978 2698 1057 994 1517 1056 995 2699 1058 994 1517 1056 978 2698 1057 1003 423 423 964 421 421 1005 532 529 965 2738 1049 1005 532 529 964 421 421 998 3105 1059 1011 3107 1061 1000 2700 1060 1012 2701 1062 1000 2700 1060 1011 3107 1061 1019 2191 1063 1018 1522 1064 1024 538 535 1023 436 436 1024 538 535 1018 1522 1064 1027 3285 1065 1033 1523 1067 959 1520 1066 1004 422 422 959 1520 1066 1033 1523 1067 1045 1530 1069 1047 2705 1068 1039 444 444 1040 438 438 1039 444 444 1047 2705 1068 1060 3112 1070 998 3105 1059 1059 1527 1071 996 1525 1072 1059 1527 1071 998 3105 1059 1044 450 447 1050 2235 1073 1069 449 449 1068 2708 1074 1069 449 449 1050 2235 1073 1074 2711 1075 1046 1534 1077 1037 3385 1076 1038 457 456 1037 3385 1076 1046 1534 1077 1032 434 434 1085 2201 1078 1031 432 432 1084 1531 1079 1031 432 432 1085 2201 1078 1091 1535 1080 1046 1534 1077 1092 1540 1081 1073 2710 1082 1092 1540 1081 1046 1534 1077 1098 2234 1083 1096 459 458 1058 442 442 1056 441 441 1058 442 442 1096 459 458 1055 3287 1084 1061 462 461 1095 2198 1085 1101 463 462 1095 2198 1085 1061 462 461 1105 2714 1086 1065 445 445 1104 465 464 1064 443 443 1104 465 464 1065 445 445 1114 491 489 1111 490 488 1115 2716 1087 1110 2715 1088 1115 2716 1087 1111 490 488 1117 2727 1089 1139 2717 1090 1112 478 476 1138 479 477 1112 478 476 1139 2717 1090 1146 543 540 1127 2209 1091 1147 541 538 1132 2210 1092 1147 541 538 1127 2209 1091 1156 480 478 1155 481 479 1158 2212 1093 1160 486 484 1158 2212 1093 1155 481 479 1166 1552 500 1167 1551 1095 1119 1561 1094 1140 3114 1096 1119 1561 1094 1167 1551 1095 1171 2213 1097 1172 488 486 1176 2729 1098 1177 2722 1099 1176 2729 1098 1172 488 486 1124 3115 1100 1129 470 468 1189 515 512 1188 2723 1101 1189 515 512 1129 470 468 1175 1557 1102 1195 1558 1104 1180 2725 1103 1196 2726 1105 1180 2725 1103 1195 1558 1104 1112 478 476 1214 1568 1106 1117 2727 1089 1213 1570 1107 1117 2727 1089 1214 1568 1106 1222 1577 1108 1220 1575 1109 1171 2213 1097 1158 2212 1093 1171 2213 1097 1220 1575 1109 1228 509 506 1207 501 499 1230 1563 1110 1208 499 497 1230 1563 1110 1207 501 499 1238 2732 1111 1239 3388 1112 1185 493 491 1186 492 490 1185 493 491 1239 3388 1112 1245 2222 1113 1247 2733 1114 1192 495 493 1194 497 495 1192 495 493 1247 2733 1114 1254 1569 1115 1239 3388 1112 1253 1571 1116 1238 2732 1111 1253 1571 1116 1239 3388 1112 1244 2223 1117 1239 3388 1112 1259 1572 1118 1254 1569 1115 1259 1572 1118 1239 3388 1112 1260 1574 1119 1262 1576 1120 1245 2222 1113 1247 2733 1114 1245 2222 1113 1262 1576 1120 1265 529 526 1266 1578 1121 1250 531 528 1251 2224 1122 1250 531 528 1266 1578 1121 1269 534 1123 1270 533 546 1122 482 480 1165 483 481 1122 482 480 1270 533 546 993 1519 1124 1002 2187 1126 1283 1584 1125 1284 2744 1127 1283 1584 1125 1002 2187 1126 1291 1598 1128 1292 2742 1130 1052 565 1129 1071 2194 1131 1052 565 1129 1292 2742 1130 1143 477 475 1281 1583 1133 1153 2743 1132 1283 1584 1134 1153 2743 1132 1281 1583 1133 1289 539 1135 1290 1585 1137 1202 1559 1136 1209 1560 1138 1202 1559 1136 1290 1585 1137 1149 2720 1139 1148 1596 1141 1273 1590 1140 1274 561 561 1273 1590 1140 1148 1596 1141 1147 541 1142 1132 2210 1144 1297 1591 1143 1142 3387 1145 1297 1591 1143 1132 2210 1144 1300 1592 1149 1303 1593 1147 1135 472 1148 1190 2724 1146 1135 472 1148 1303 1593 1147 1306 1594 1150 1309 1595 1152 1243 523 1151 1258 521 1153 1243 523 1151 1309 1595 1152 1148 1596 1141 1134 2719 1155 1312 1597 1154 1218 2225 1156 1312 1597 1154 1134 2719 1155 1291 1598 1157 1316 569 569 1212 2731 1158 1317 571 571 1212 2731 1158 1316 569 569 1204 2218 1159 1318 1600 1161 1227 3119 1160 1268 3504 1162 1227 3119 1160 1318 1600 1161 1329 1601 1163 1330 3505 1165 1323 1602 1164 1325 3393 1166 1323 1602 1164 1330 3505 1165 1351 1607 1167 1343 587 1169 1352 1972 1168 1344 588 1170 1352 1972 1168 1343 587 1169 1339 1606 1171 1360 1608 1173 1340 1221 1172 1359 1220 1174 1340 1221 1172 1360 1608 1173 1373 585 585 1375 590 1175 1374 586 586 1376 1603 1176 1374 586 586 1375 590 1175 1369 1605 1177 1361 578 1179 1379 1607 1178 1371 587 587 1379 1607 1178 1361 578 1179 1380 1972 1181 1372 588 588 1378 582 1183 1384 584 1182 1378 582 1183 1372 588 588 1372 588 588 1374 586 586 1384 584 1182 1385 1604 1180 1384 584 1182 1374 586 586 1374 586 586 1376 1603 1176 1385 1604 1180 1403 2757 2515 1396 2758 2965 1401 2238 1531 1394 2239 597 1401 2238 1531 1396 2758 2965 1405 600 601 1406 598 599 1413 2246 2107 1414 3506 3101 1413 2246 2107 1406 598 599 1417 3507 3040 1419 3508 3102 1418 3508 1536 1420 3509 3103 1418 3508 1536 1419 3508 3102 1432 3510 607 1430 3511 3104 1431 3137 1538 1429 3138 2838 1431 3137 1538 1430 3511 3104 1439 2260 3105 1440 2261 3106 1438 1633 2971 1437 1629 1544 1438 1633 2971 1440 2261 3106 1447 2258 2120 1445 2259 2121 1452 2262 2524 1451 2263 2974 1452 2262 2524 1445 2259 2121 1462 3141 3107 1464 3142 2525 1454 1626 3041 1460 1624 617 1454 1626 3041 1464 3142 2525 1469 3512 2977 1477 3513 2529 1472 3407 2127 1478 3406 626 1472 3407 2127 1477 3513 2529 1475 3514 3108 1476 3515 3109 1484 3515 2978 1483 3516 1556 1484 3515 2978 1476 3515 3109 1488 3410 3045 1490 3412 3047 1487 3408 1557 1489 3414 1558 1487 3408 1557 1490 3412 3047 1492 3413 3048 1494 2276 2133 1491 3415 1562 1493 2278 1563 1491 3415 1562 1494 2276 2133 1523 2281 1569 1524 3517 2535 1511 2279 641 1510 3518 2982 1511 2279 641 1524 3517 2535 1525 3419 3050 1527 3420 3051 1514 3418 3049 1516 3422 3053 1514 3418 3049 1527 3420 3051 1529 3421 3052 1531 3519 3110 1518 3423 3054 1520 3520 3111 1518 3423 3054 1531 3519 3110 1535 3425 649 1534 3521 650 1536 3410 3056 1533 3411 3112 1536 3410 3056 1534 3521 650 1538 3424 3057 1540 3427 3058 1537 3426 1580 1539 3428 1582 1537 3426 1580 1540 3427 3058 1554 1645 2144 1541 3149 2543 1556 3522 1586 1543 3523 1585 1556 3522 1586 1541 3149 2543 1561 3434 3062 1562 3435 1589 1559 2297 2145 1560 2298 1587 1559 2297 2145 1562 3435 1589 1615 2796 2553 1616 2795 1590 1630 3524 2986 1631 3312 1592 1630 3314 2986 1616 2795 1590 1622 657 664 1633 2789 2549 1621 659 666 1634 2324 2174 1621 659 666 1633 2789 2549 1624 661 668 1643 3525 681 1623 663 670 1644 2310 2158 1623 663 670 1643 2311 681 1637 2791 2850 1652 2790 3063 1638 711 720 1651 715 724 1638 711 720 1652 2790 3063 1641 667 674 1640 2307 2153 1648 671 678 1649 670 677 1648 671 678 1640 2307 2153 1669 703 712 1615 2785 2545 1668 705 714 1614 2784 2544 1668 705 714 1615 2785 2545 1679 752 762 1678 753 763 1597 688 697 1598 686 695 1597 688 697 1678 753 763 1600 678 687 1601 682 691 1688 2800 2556 1687 684 693 1688 2800 2556 1601 682 691 1597 688 697 1691 689 698 1596 2316 2164 1692 2801 2557 1596 2316 2164 1691 689 698 1596 2316 2164 1692 2801 2557 1618 1698 1618 1696 1699 1619 1618 1698 1618 1692 2801 2557 1588 2318 2166 1703 2802 2558 1587 1683 1602 1701 694 703 1587 1683 1602 1703 2802 2558 1666 675 684 1665 674 683 1708 1689 1608 1706 1690 1609 1708 1689 1608 1665 674 683 1713 1693 1613 1715 1692 1611 1716 2804 2561 1713 1693 1613 1716 2804 2561 1714 702 2560 1606 1673 1591 1722 2328 2178 1632 1675 1593 1721 2325 2175 1632 1675 1593 1722 2328 2178 1728 2807 2563 1727 2808 2564 1654 3319 2987 1653 3526 2552 1654 3319 2987 1727 3527 2564 1725 2326 2176 1728 2807 2563 1635 2788 2548 1654 3319 2987 1635 2788 2548 1728 2807 2563 1738 720 729 1595 719 728 1736 760 770 1682 759 769 1736 760 770 1595 719 728 1694 721 730 1741 722 731 1584 3161 2858 1742 2809 2565 1584 3161 2858 1741 722 731 1584 3161 2858 1742 2809 2565 1717 3164 2861 1745 2810 2566 1717 3164 2861 1742 2809 2565 1760 775 784 1761 2355 2207 176 1701 1621 177 115 3066 176 1701 1621 1761 2355 2207 1771 1704 1624 1772 1705 1625 1617 2822 2990 1574 2820 3064 1617 2822 2990 1772 1705 1625 1576 1722 2993 1777 1708 1628 1577 734 744 1775 732 742 1577 734 744 1777 1708 1628 1781 1709 1629 1770 3175 2870 1780 1710 1630 1769 2340 2190 1780 1710 1630 1770 3175 2870 1794 1714 1634 1789 3170 2868 1793 741 751 1788 740 750 1793 741 751 1789 3170 2868 1797 1717 1636 1798 1718 1637 1755 1738 1656 1779 736 746 1755 1738 1656 1798 1718 1637 1675 747 757 1676 680 689 1803 749 759 1804 2819 2575 1803 749 759 1676 680 689 1679 752 762 1680 2315 2163 1807 750 760 1808 2821 2577 1807 750 760 1680 2315 2163 1680 2315 2163 1684 2314 2162 1808 2821 2577 1813 2823 2579 1808 2821 2577 1684 2314 2162 1815 758 768 1813 2823 2579 1736 760 770 1684 2314 2162 1736 760 770 1813 2823 2579 1822 2824 2580 1821 1729 1647 1816 2826 2582 1817 3332 771 1816 2826 2582 1821 1729 1647 1830 2827 2583 273 3263 3113 1829 1730 1648 271 1731 1649 1829 1730 1648 273 3263 3113 1833 1733 1651 1834 2828 2584 1823 1732 1650 1822 2824 2580 1823 1732 1650 1834 2828 2584 1760 775 784 1838 774 783 1761 2355 2207 1839 1734 1652 1761 2355 2207 1838 774 783 1843 779 788 1836 1737 1655 1765 777 786 1758 727 737 1765 777 786 1836 1737 1655 1796 742 752 1847 782 791 1766 743 753 1844 1739 1657 1766 743 753 1847 782 791 1864 1742 1660 1851 3202 2898 1863 786 795 1850 785 794 1863 786 795 1851 3202 2898 319 3265 2995 307 1351 2209 1870 2838 2593 1860 793 802 1870 2838 2593 307 1351 2209 1860 793 802 1877 792 801 1870 2838 2593 1880 2381 2235 1870 2838 2593 1877 792 801 1871 839 3070 1858 3438 3067 1886 840 1665 1884 1748 1667 1886 840 1665 1858 3438 3067 1895 2840 2595 1894 822 2876 1891 2363 2216 1890 2371 3068 1891 2363 2216 1894 822 2876 1902 2366 2219 1899 1751 1670 1770 806 815 1801 2364 2217 1770 806 815 1899 1751 1670 1845 2844 2599 1911 2843 2598 1757 1753 1672 1910 1754 1673 1757 1753 1672 1911 2843 2598 1911 2843 2598 1919 880 889 1910 1754 1673 1918 879 888 1910 1754 1673 1919 880 889 1930 844 854 1929 1757 1676 1882 846 856 1881 1758 1677 1882 846 856 1929 1757 1676 1937 818 827 1938 819 828 1927 815 824 1925 2369 2222 1927 815 824 1938 819 828 1903 2841 3069 1943 3185 2881 1900 802 1679 1947 1759 1680 1900 802 1679 1943 3185 2881 1946 820 829 1957 2854 2610 1945 821 830 1956 1760 1681 1945 821 830 1957 2854 2610 1958 1761 1682 1965 1762 1683 1957 2854 2610 1966 2387 2242 1957 2854 2610 1965 1762 1683 1973 838 848 1974 836 846 1923 1764 3000 1949 831 841 1923 1764 3000 1974 836 846 1975 2855 2611 1974 836 846 1980 1765 3001 1979 835 845 1980 1765 3001 1974 836 846 1984 2380 2233 1987 1777 1701 1983 1766 1689 1986 1767 1690 1983 1766 1689 1987 1777 1701 1858 3438 3067 2002 2383 2238 1867 794 803 2001 2859 2614 1867 794 803 2002 2383 2238 1986 1767 1690 2006 2860 2615 1985 841 851 2005 847 857 1985 841 851 2006 2860 2615 1991 2862 2241 2012 1770 1695 1990 2861 2617 2013 1772 1697 1990 2861 2617 2012 1770 1695 2021 859 868 1989 1774 859 2022 1776 1700 2008 2384 2239 2022 1776 1700 1989 3528 859 1969 1775 1699 2022 1776 1700 1961 2865 2619 2023 2864 2618 1961 2865 2619 2022 1776 1700 2028 865 874 489 1399 2246 2024 2866 2620 484 2106 2885 2024 2866 2620 489 1399 2246 2031 2867 2621 2035 870 879 2030 1779 2886 2034 1780 2248 2030 1779 2886 2035 870 879 2037 2868 2623 2041 873 882 2036 1781 1705 2040 1782 1706 2036 1781 1705 2041 873 882 2013 1772 1697 2047 1784 1709 1990 2861 2617 2043 1785 1711 1990 2861 2617 2047 1784 1709 1981 2856 2612 1934 1786 1713 2050 2870 2887 2049 1787 1714 2050 2870 2887 1934 1786 1713 373 3268 2999 525 2876 2633 1920 1788 1715 2057 1789 1716 1920 1788 1715 525 2876 2633 1913 1791 1718 1914 2875 2632 2064 1790 1717 2065 2874 2631 2064 1790 1717 1914 2875 2632 2057 1789 1716 2073 893 902 2056 882 891 2072 1792 1719 2056 882 891 2073 893 902 2063 886 895 2064 1790 1717 2079 1793 1720 2066 897 906 2079 1793 1720 2064 1790 1717 2086 1795 1722 2074 1794 1721 2087 2878 2635 2075 2879 2636 2087 2878 2635 2074 1794 1721 2092 899 908 2093 900 909 2094 906 915 2095 2400 2261 2094 906 915 2093 900 909 2102 909 918 576 1418 2259 2086 1795 1722 558 1797 1724 2086 1795 1722 576 1418 2259 2109 1801 1729 2097 1802 1730 2110 2882 2639 2098 2881 2638 2110 2882 2639 2097 1802 1730 2105 2884 2641 2117 2885 2642 2104 1804 1732 2116 1803 1731 2104 1804 1732 2117 2885 2642 2125 2401 2262 2113 3195 2891 606 2886 2643 589 254 3071 606 2886 2643 2113 3195 2891 2132 1808 1736 2109 1801 1729 2131 1810 1738 2110 2882 2639 2131 1810 1738 2109 1801 1729 2119 1811 1739 2137 1812 1740 2118 2883 2640 2138 2887 2644 2118 2883 2640 2137 1812 1740 2128 1813 1741 2124 1805 1733 2144 1814 1742 2145 927 936 2144 1814 1742 2124 1805 1733 2151 932 942 2142 1815 1743 2152 1818 1747 2141 2891 2648 2152 1818 1747 2142 1815 1743 2147 2892 2649 2160 938 948 2146 930 940 2159 1816 1745 2146 930 940 2160 938 948 2153 2890 2647 2167 2404 2265 2152 1818 1747 2166 1819 1748 2152 1818 1747 2167 2404 2265 2162 1820 1749 2163 2895 2652 2174 1821 1750 2175 1824 1753 2174 1821 1750 2163 2895 2652 2158 1817 1746 2170 945 955 2164 1822 1751 2181 1823 1752 2164 1822 1751 2170 945 955 2191 2898 2656 2190 944 954 2187 3199 2895 2186 942 952 2187 3199 2895 2190 944 954 686 2899 2657 664 3269 3002 2194 2900 2658 2176 3198 2894 2194 2900 2658 664 3269 3002 2185 1827 1756 2197 10 10 2181 1823 1752 2180 9 9 2181 1823 1752 2197 10 10 1996 2901 2659 2205 953 963 2003 1828 1757 2204 955 965 2003 1828 1757 2205 953 963 2199 2903 2661 2212 3529 2662 2198 952 962 2211 2914 1759 2198 952 962 2212 2912 2662 2207 2905 2665 2220 2906 2666 2206 1832 1760 2219 1833 1761 2206 1832 1760 2220 2906 2666 2238 985 994 2226 2413 2275 2237 1834 1762 2225 1835 1763 2237 1834 1762 2226 3205 2275 2233 1839 1765 2245 1838 1764 732 3271 3114 746 341 3073 732 3271 3114 2245 1838 1764 2254 1840 1766 2252 965 975 2255 3338 3004 2253 967 977 2255 3338 3004 2252 965 975 768 1844 1771 2260 1845 1772 732 3271 3114 2233 1839 1765 732 3271 3114 2260 1845 1772 2264 974 984 2265 1848 1775 2251 968 978 2253 967 977 2251 968 978 2265 1848 1775 2269 2911 2672 2224 958 968 2262 3339 2903 2225 1837 1763 2262 3339 2903 2224 958 968 2235 959 969 2271 980 989 2236 957 967 2272 1850 1777 2236 957 967 2271 980 989 2275 984 993 2276 1852 1779 2239 986 995 2240 3203 2899 2239 986 995 2276 1852 1779 2279 988 997 2280 1854 1781 2243 961 971 2244 962 972 2243 961 971 2280 1854 1781 2289 1855 1782 2291 2918 2676 2288 1856 1783 2290 2919 2677 2288 1856 1783 2291 2918 2676 2286 993 1002 2288 1856 1783 2310 1857 1784 2296 2920 2678 2310 1857 1784 2288 1856 1783 2314 2938 2697 2321 2922 2680 2304 1875 1802 2318 2421 2282 2304 1875 1802 2321 2922 2680 2325 1003 1012 2294 1004 1013 2326 2923 2681 2299 1036 1042 2326 2923 2681 2294 1004 1013 2334 1863 1790 2335 2926 2684 2332 1031 1039 2333 1030 1038 2332 1031 1039 2335 2926 2684 2346 1014 1023 2342 1862 1789 2356 1016 1025 2355 1864 1791 2356 1016 1025 2342 1862 1789 2339 1870 1797 2338 3340 3005 2366 1042 1048 2367 1865 1792 2366 1042 1048 2338 3340 3005 2348 1012 1021 2362 1019 1028 2369 1868 1795 2370 1020 1029 2369 1868 1795 2362 1019 1028 2337 2932 2683 2339 1870 1797 2375 2934 2691 2374 1871 1798 2375 2934 2691 2339 1870 1797 2382 1872 1799 2380 1028 1036 2357 3445 3075 2354 1026 1034 2357 3445 3075 2380 1028 1036 2352 1017 1026 2351 2927 2685 2386 1873 1800 2387 1035 2694 2386 3530 1800 2351 2927 2685 2314 2938 2697 2304 1875 1802 2389 2940 2699 2388 1876 1803 2389 3531 2699 2304 1875 1802 2394 1877 1804 2395 2439 3077 2303 1878 1017 2320 3447 1016 2303 3532 1017 2395 2439 3077 2294 1004 1013 2295 1002 1011 2392 1038 1044 2397 3533 2296 2392 1038 1044 2295 1002 1011 2420 1047 1051 2427 1954 2947 2419 1046 1050 2426 1882 1807 2419 1046 1050 2427 1954 2947 2412 2447 414 2435 2448 1474 2407 1883 415 2434 1884 1808 2407 1883 415 2435 2448 1474 2449 3534 2948 2441 3219 416 2440 3218 433 2440 3218 433 2447 1895 435 2449 3534 2948 2457 2951 2068 2456 2950 1817 2431 1048 1052 2417 1901 1472 2431 1048 1052 2456 2950 1817 2451 1889 1809 2452 1168 1126 2463 1890 1810 2464 2993 2069 2463 1890 1810 2452 1168 1126 2475 1894 1813 2403 1892 1812 2477 1066 1065 2409 1067 1066 2477 1066 1065 2403 1892 1812 2460 1896 1814 2484 1897 1815 2465 2956 2701 2485 2957 2071 2465 2956 2701 2484 1897 1815 2492 2451 537 2499 1946 1508 2491 1898 437 2498 1899 1816 2491 1898 437 2499 1946 1508 2408 2952 2066 2505 1096 1084 2456 3535 1817 2511 1098 461 2456 1902 1817 2505 1096 1084 2520 2962 2070 2501 3232 2949 2518 1080 1074 2500 1079 1073 2518 1080 1074 2501 3232 2949 2526 1961 1852 2525 1903 1818 2493 3536 1819 2523 1091 1082 2493 3536 1819 2525 1903 1818 2530 1911 1820 2477 1066 1065 2536 1905 1482 2483 1068 1067 2536 1905 1482 2477 1066 1065 2504 2452 1477 2544 2965 2705 2503 2960 2703 2543 2966 2072 2503 2960 2703 2544 2965 2705 2549 2967 2075 2544 2965 2705 2509 1075 1071 2504 2452 1477 2509 1075 1071 2544 2965 2705 2550 2968 2074 2510 1074 1070 2552 2969 2077 2512 2961 2704 2552 2969 2077 2510 1074 1070 2556 2970 2078 2555 1100 1086 2516 2453 1478 2515 1102 445 2516 2453 1478 2555 1100 1086 2570 2474 1496 2571 2971 482 2564 1104 489 2565 1105 1087 2564 1104 489 2571 2971 482 2569 1121 1094 2567 1108 1089 2590 1123 1096 2589 1110 1090 2590 1123 1096 2567 1108 1089 2561 1106 488 2560 1107 1088 2600 2469 1491 2601 1971 1490 2600 2469 1491 2560 1107 1088 2604 1919 1822 2611 1920 485 2603 1175 1132 2612 1947 1493 2603 1175 1132 2611 1920 485 2617 1122 1095 2590 1123 1096 2618 1922 1823 2573 2466 1487 2618 1922 1823 2590 1123 1096 2623 1923 487 2628 1924 1824 2624 2473 1494 2629 3224 542 2624 2473 1494 2628 1924 1824 2600 2469 1491 2641 2978 2084 2561 1106 488 2636 1147 490 2561 1106 488 2641 2978 2084 2632 2977 2708 2631 2976 2707 2650 2980 498 2649 2983 2083 2650 2980 498 2631 2976 2707 2583 1918 2709 2666 2981 2086 2578 3346 502 2667 2987 503 2578 3346 502 2666 2981 2086 2673 1928 1828 2674 2982 2087 2626 1125 1098 2631 2976 2707 2626 1125 1098 2674 2982 2087 2659 1180 1138 2658 1140 497 2681 1929 1829 2680 1142 1110 2681 1929 1829 2658 1140 497 2639 1129 512 2692 3347 514 2638 1131 1101 2691 2985 521 2638 1131 1101 2692 3347 514 2698 1933 1831 2645 1134 1104 2699 2986 527 2646 1135 1105 2699 2986 527 2645 1134 1104 2703 1153 1116 2705 1934 522 2688 1144 1111 2690 1932 523 2688 1144 1111 2705 1934 522 2695 1148 1113 2710 1156 1119 2694 1154 1117 2709 1155 1118 2694 1154 1117 2710 1156 1119 2697 1150 1114 2698 1933 1831 2712 1157 1120 2713 1936 1832 2712 1157 1120 2698 1933 1831 2702 3228 517 2717 1937 1833 2701 1161 1122 2716 1160 1121 2701 1161 1122 2717 1937 1833 2727 1941 1836 2725 2995 2950 2420 1047 1051 2427 1954 2947 2420 1047 1051 2725 2995 2950 2728 2996 2951 2435 2448 1474 2729 1944 1837 2459 1942 426 2729 1944 1837 2435 2448 1474 2726 1940 548 2576 3223 547 2727 1941 2714 2581 2462 1485 2727 1941 2714 2576 3223 547 2619 2975 2706 2729 1944 2716 2596 1112 540 2722 1945 541 2596 1112 540 2729 1944 2716 2740 1179 1137 2659 1180 1138 2742 1172 1840 2681 1929 1829 2742 1172 1840 2659 1180 1138 2746 2492 551 2745 1948 549 2723 1182 1140 2439 1950 1513 2723 1182 1140 2745 1948 549 2725 2995 2717 2749 2493 555 2427 1954 1846 2748 1953 553 2427 1954 1846 2749 2493 555 2752 2494 556 2755 2495 557 2751 1955 554 2754 1956 558 2751 1955 554 2755 2495 557 2758 2496 559 2761 2497 562 2757 1958 560 2760 1959 564 2757 1958 560 2761 2497 562 2763 1962 2952 2493 1963 2953 2743 3233 570 2527 3537 2099 2743 3233 570 2493 3536 2953 2768 1203 1161 2661 1930 1498 2654 1201 1159 2660 2478 1499 2654 1201 1159 2661 1930 1498 2769 1965 1855 2772 3003 2723 2770 1967 1856 2771 2501 2725 2770 1967 1856 2772 3003 2723 2782 3538 2954 2769 1965 1855 2442 1964 418 2442 1964 418 2441 3219 416 2782 3538 2954 2795 1214 1860 2793 1211 1169 2796 579 2955 2794 580 1170 2796 579 2955 2793 1211 1169 2785 1973 577 2795 1214 1860 2787 1975 2956 2797 1215 2957 2787 1975 2956 2795 1214 1860 2787 1975 2956 2797 1215 2957 2803 1976 2958 2808 2502 2959 2803 1976 2958 2797 1215 2957 2813 1973 589 2814 586 2103 2811 1218 1179 2812 588 1523 2811 1218 1179 2814 586 2103 2827 1974 1862 2833 2503 2960 2828 1221 1183 2834 1220 1182 2828 1221 1183 2833 2503 2960 2850 3539 1184 2847 3540 1186 2849 3235 2914 2848 3236 2298 2849 3235 2914 2847 3540 1186 2868 2512 2303 2867 3541 3115 2858 2510 2301 2855 3542 3116 2858 2510 2301 2867 3541 3115 2868 3454 3078 2871 3456 3079 2869 3452 1193 2872 3458 1195 2869 3452 1193 2871 3456 3079 2873 3457 3080 2875 2518 2309 2874 3459 1196 2876 1249 1197 2874 3459 1196 2875 2518 2309 2891 3543 3022 2894 3544 1880 2879 3544 3117 2880 3545 3118 2879 3544 3117 2894 3544 1880 2896 3463 1207 2898 3464 1210 2883 3462 2314 2885 3465 2316 2883 3462 2314 2898 3464 1210 2890 3546 3119 2889 3547 2738 2901 3547 3120 2902 3548 2737 2901 3547 3120 2889 3547 2738 2917 3470 2319 2918 3453 1213 2916 3468 3084 2915 3455 1212 2916 3468 3084 2918 3453 1213 2919 3469 3085 2921 3472 3086 2920 3471 1216 2922 3473 1217 2920 3471 1216 2921 3472 3086 2912 3240 2918 2911 3241 1897 2914 3549 3121 2913 3550 1221 2914 3549 3121 2911 3241 1897 2947 3244 2328 2949 3478 2334 2958 3242 1224 2960 3477 1229 2958 3242 1224 2949 3478 2334 2962 3479 1231 2951 3480 2335 2964 2542 1908 2953 2543 1234 2964 2542 1908 2951 3480 2335 2937 2548 2338 2969 3551 3122 2928 2546 2336 2967 3552 3123 2928 2546 2336 2969 3551 3122 2937 3486 3091 2939 3488 3092 2938 3484 1237 2940 3490 1239 2938 3484 1237 2939 3488 3092 2941 3489 3093 2943 2554 2344 2942 3491 1240 2944 1249 1241 2942 3491 1240 2943 2554 2344</p> - </triangles> - </mesh> - </geometry> - <geometry id="Geometry-mesh005" name="Prop"> - <mesh> - <source id="Geometry-mesh005-positions" name="positions"> - <float_array id="Geometry-mesh005-positions-array" count="270">0.579497 0.00127973 -0.0249472 0.579806 -0.0167014 -0.0178633 0.579385 -0.0251153 -0.000927925 0.579613 -0.0180048 0.0170259 0.57921 -0.0011469 0.0254235 0.57956 0.0167761 0.0183625 0.579323 0.0252538 0.00150061 0.579754 0.0182184 -0.0164528 0.441826 0.00544639 -0.126761 0.441816 -0.0856837 -0.0935702 0.441687 -0.126814 -0.00514698 0.441564 -0.0935618 0.0858865 0.441451 -0.00533508 0.126949 0.441494 0.0856245 0.0938597 0.441592 0.126896 0.00563812 0.441747 0.093865 -0.0854254 0.348691 0.00748689 -0.171067 0.34867 -0.115727 -0.126202 0.348562 -0.171105 -0.00718546 0.348435 -0.126174 0.115913 0.348342 -0.0073698 0.171216 0.348369 0.115652 0.126463 0.348472 0.171177 0.00767422 0.348605 0.126488 -0.115469 0.230145 0.00935127 -0.211065 0.230131 -0.14286 -0.15564 0.230057 -0.211074 -0.00904417 0.229968 -0.155573 0.143002 0.229907 -0.00922178 0.211128 0.229923 0.142741 0.155845 0.229996 0.211119 0.00953102 0.230086 0.155911 -0.142602 0.11035 0.0103852 -0.236429 0.110345 -0.159949 -0.174405 0.110321 -0.236431 -0.0100751 0.110288 -0.17432 0.160048 0.110269 -0.0102359 0.236445 0.110274 0.159804 0.174584 0.110298 0.236443 0.0105476 0.110331 0.174668 -0.159706 -2.28882e-005 0.0115762 -0.251821 -2.03848e-005 -0.170749 -0.185432 -5.36442e-006 -0.251821 -0.0112734 1.09673e-005 -0.185348 0.170825 2.28882e-005 -0.0114187 0.251821 2.06232e-005 0.170602 0.185597 5.48363e-006 0.251821 0.0117221 -1.0848e-005 0.185681 -0.170526 0.586611 0.01165 0.000882149 0.58758 0.00683232 -0.00588417 0.586612 0.000664189 -0.0116386 0.587587 -0.00598656 -0.00666094 0.586612 -0.0116256 -0.000290394 0.587448 -0.00684933 0.00634241 0.586612 -0.000506744 0.0116377 0.58744 0.0062408 0.00702143 0.589514 4.66257e-005 0.000209332 0.520681 -0.053487 -0.0584283 0.520622 0.00337 -0.0791893 0.520482 -0.0792618 -0.00305414 0.520435 -0.0584446 0.05371 0.520253 -0.00325374 0.0794268 0.520368 0.0534423 0.0587583 0.520394 0.0793532 0.00357294 0.520615 0.0587384 -0.0532222 0.0819987 1.50573 -0.548035 0.0819987 1.31258 -0.919068 0.0819987 1.02998 -1.22747 0.0819987 0.677197 -1.45222 0.0819987 0.278261 -1.578 0.0819987 -0.139636 -1.59625 0.0819987 -0.548017 -1.50571 0.0819987 -0.91905 -1.31257 0.0819987 -1.22745 -1.02997 0.0819987 -1.4522 -0.677181 0.0819987 -1.57798 -0.278245 0.0819987 -1.59623 0.139652 0.0819987 -1.50569 0.548033 0.0819987 -1.31255 0.919065 0.0819987 -1.02995 1.22747 0.0819987 -0.677163 1.45222 0.0819987 -0.278227 1.578 0.0819987 0.139671 1.59625 0.0819987 0.548051 1.50571 0.0819987 0.919084 1.31256 0.0819987 1.22748 1.02997 0.0819987 1.45223 0.677179 0.0819987 1.57802 0.278243 0.0819987 1.59626 -0.139655 0.0819987 1.72406e-005 -1.43051e-006</float_array> - <technique_common> - <accessor count="90" source="#Geometry-mesh005-positions-array" stride="3"> - <param name="X" type="float" /> - <param name="Y" type="float" /> - <param name="Z" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh005-normals" name="normals"> - <float_array id="Geometry-mesh005-normals-array" count="198">0.375564 -0.680793 0.628866 0.464123 -0.599494 0.652071 0.393764 -0.0396944 0.918354 0.488357 -0.0375631 0.871835 0.263915 -0.709302 0.653636 0.282678 -0.0415301 0.958315 0.173285 -0.725129 0.666454 0.184367 -0.0426182 0.981933 0.136507 -0.814627 0.563692 0.138404 -0.042904 0.989446 0.999961 0.000423538 0.008851 0.944464 -0.240347 0.224101 0.946071 -0.219551 -0.238216 0.927527 -0.373562 -0.0120521 0.758974 0.437929 0.481847 0.944044 0.21863 0.246943 0.828612 0.55889 0.0323162 0.927235 0.373377 0.0287306 0.573739 -0.602485 0.554829 0.626506 -0.0333326 0.778704 0.464161 0.701961 -0.54019 0.574335 0.604887 -0.551589 0.480004 0.0919864 -0.87243 0.62825 0.0352355 -0.777213 0.375519 0.623575 0.685668 0.463912 0.54078 0.701671 0.264112 0.649809 0.712737 0.17259 0.664548 0.727041 0.13776 0.762356 0.632326 0.760966 0.480991 -0.435407 0.94565 0.244804 -0.214049 0.574587 -0.553881 -0.602549 0.76166 -0.439379 -0.476255 0.829723 0.0278574 -0.55748 0.573481 0.552518 0.60485 0.827941 -0.0240847 0.560297 0.375698 -0.926022 -0.0365235 0.479703 -0.877272 0.0167086 0.264279 -0.963648 -0.0392281 0.172686 -0.984109 -0.0413275 0.137799 -0.974461 -0.177306 0.926888 0.0227215 -0.37465 0.927959 -0.0180694 0.372243 0.759678 -0.477068 0.441922 0.375743 0.685844 -0.623246 0.375607 0.92572 0.0442841 0.479709 0.872468 0.0931557 0.264312 0.712931 -0.649514 0.263954 0.96349 0.0448863 0.172698 0.727257 -0.664284 0.173295 0.983864 0.0445048 0.137813 0.632432 -0.762258 0.136493 0.98638 -0.0917789 0.627569 -0.777948 -0.0308931 0.829027 -0.558863 -0.0196505 0.627187 0.777956 0.0377047 0.363711 -0.685185 -0.631059 0.367388 -0.0128745 -0.929979 0.459709 -0.600514 -0.654256 0.24539 0.042553 -0.96849 0.264136 -0.653317 -0.709513 0.161544 0.0431997 -0.98592 0.17337 -0.666176 -0.725364 0.138445 0.0432902 -0.989423 0.136535 -0.563254 -0.814925 1 0 0</float_array> - <technique_common> - <accessor count="66" source="#Geometry-mesh005-normals-array" stride="3"> - <param name="X" type="float" /> - <param name="Y" type="float" /> - <param name="Z" type="float" /> - </accessor> - </technique_common> - </source> - <source id="Geometry-mesh005-Texture" name="Texture"> - <float_array id="Geometry-mesh005-Texture-array" count="206">0.526906 0.422304 0.530068 0.419783 0.530496 0.425509 0.532671 0.422287 0.52347 0.425683 0.528081 0.429513 0.520313 0.429132 0.525766 0.433556 0.517439 0.432257 0.523562 0.437254 0.541127 0.415986 0.54133 0.415695 0.541412 0.416179 0.541569 0.415895 0.540288 0.415438 0.540834 0.415793 0.540115 0.416188 0.540693 0.41607 0.533243 0.417809 0.534858 0.419499 0.542684 0.423797 0.541519 0.420524 0.545829 0.422177 0.543576 0.419433 0.534714 0.42755 0.535821 0.423845 0.533443 0.432042 0.532253 0.436499 0.531171 0.440606 0.540575 0.416822 0.540931 0.416275 0.54513 0.417727 0.54195 0.416519 0.541282 0.417142 0.536915 0.42055 0.538094 0.417496 0.537081 0.417153 0.524118 0.418203 0.528307 0.416495 0.519666 0.420883 0.515808 0.423845 0.512471 0.426543 0.541212 0.416425 0.540925 0.414977 0.541043 0.415562 0.536408 0.416548 0.540301 0.417486 0.543867 0.427483 0.539297 0.42823 0.539267 0.424369 0.545167 0.431974 0.539297 0.432897 0.546458 0.436378 0.539366 0.437491 0.547723 0.44042 0.539428 0.441732 0.541326 0.416989 0.545911 0.415573 0.542166 0.415782 0.53923 0.42083 0.539189 0.417712 0.551563 0.422094 0.548066 0.425379 0.548345 0.419637 0.550565 0.429392 0.555083 0.425392 0.552908 0.433327 0.558319 0.428783 0.555081 0.436915 0.56128 0.431864 0.541677 0.415144 0.532427 0.415683 0.536149 0.415802 0.549992 0.416357 0.554196 0.417918 0.558749 0.420469 0.562734 0.423351 0.56614 0.42604 0.635417 0.872055 0.534508 0.894426 0.5 0.5 0.431247 0.889918 0.332672 0.858837 0.245499 0.803302 0.175671 0.727098 0.127945 0.635417 0.105574 0.534508 0.110082 0.431247 0.141163 0.332672 0.196698 0.245499 0.272902 0.175671 0.364583 0.127945 0.465492 0.105574 0.568753 0.110082 0.667328 0.141163 0.754501 0.196698 0.824329 0.272902 0.872055 0.364583 0.894426 0.465492 0.889918 0.568753 0.858837 0.667328 0.803302 0.754501 0.727098 0.824329</float_array> - <technique_common> - <accessor count="103" source="#Geometry-mesh005-Texture-array" stride="2"> - <param name="S" type="float" /> - <param name="T" type="float" /> - </accessor> - </technique_common> - </source> - <vertices id="Geometry-mesh005-vertices"> - <input semantic="POSITION" source="#Geometry-mesh005-positions" /> - </vertices> - <triangles count="120" material="Material-cesium_air"> - <input semantic="VERTEX" source="#Geometry-mesh005-vertices" offset="0" /> - <input semantic="NORMAL" source="#Geometry-mesh005-normals" offset="1" /> - <input semantic="TEXCOORD" source="#Geometry-mesh005-Texture" offset="2" set="0" /> - <p>19 0 0 11 1 1 20 2 2 12 3 3 20 2 2 11 1 1 27 4 4 19 0 0 28 5 5 20 2 2 28 5 5 19 0 0 35 6 6 27 4 4 36 7 7 28 5 5 36 7 7 27 4 4 43 8 8 35 6 6 44 9 9 36 7 7 44 9 9 35 6 6 56 10 10 53 11 11 51 12 12 52 13 13 51 12 12 53 11 11 5 14 14 55 15 15 6 16 16 48 17 17 6 16 16 55 15 15 11 1 1 60 18 18 12 3 3 61 19 19 12 3 3 60 18 18 15 20 20 64 21 21 8 22 22 58 23 23 8 22 22 64 21 21 21 24 24 20 2 2 13 25 25 12 3 3 13 25 25 20 2 2 29 26 26 28 5 5 21 24 24 20 2 2 21 24 24 28 5 5 37 27 27 36 7 7 29 26 26 28 5 5 29 26 26 36 7 7 45 28 28 44 9 9 37 27 27 36 7 7 37 27 27 44 9 9 7 29 29 6 16 16 49 30 30 48 17 17 49 30 30 6 16 16 57 31 31 58 23 23 1 32 32 0 33 33 1 32 32 58 23 23 62 34 34 61 19 19 5 14 35 4 35 36 5 14 35 61 19 19 18 36 37 10 37 38 19 0 0 11 1 1 19 0 0 10 37 38 26 38 39 18 36 37 27 4 4 19 0 0 27 4 4 18 36 37 34 39 40 26 38 39 35 6 6 27 4 4 35 6 6 26 38 39 42 40 41 34 39 40 43 8 8 35 6 6 43 8 8 34 39 40 56 10 10 51 12 12 49 30 30 50 41 42 49 30 30 51 12 12 5 14 14 4 35 43 55 15 15 54 42 44 55 15 15 4 35 43 60 18 18 3 43 45 61 19 19 4 35 36 61 19 19 3 43 45 64 21 21 7 29 46 58 23 23 0 33 33 58 23 23 7 29 46 23 44 47 22 45 48 15 20 20 14 46 49 15 20 20 22 45 48 31 47 50 30 48 51 23 44 47 22 45 48 23 44 47 30 48 51 39 49 52 38 50 53 31 47 50 30 48 51 31 47 50 38 50 53 47 51 54 46 52 55 39 49 52 38 50 53 39 49 52 46 52 55 1 32 32 0 33 56 51 12 12 50 41 42 51 12 12 0 33 56 57 31 31 1 32 32 59 53 57 2 54 58 59 53 57 1 32 32 62 34 34 5 14 35 63 55 59 6 16 60 63 55 59 5 14 35 17 56 61 16 57 62 9 58 63 8 22 22 9 58 63 16 57 62 24 59 64 16 57 62 25 60 65 17 56 61 25 60 65 16 57 62 32 61 66 24 59 64 33 62 67 25 60 65 33 62 67 24 59 64 40 63 68 32 61 66 41 64 69 33 62 67 41 64 69 32 61 66 56 10 10 49 30 30 55 15 15 48 17 17 55 15 15 49 30 30 3 43 70 2 54 58 53 11 11 52 13 13 53 11 11 2 54 58 60 18 18 59 53 71 3 43 45 2 54 72 3 43 45 59 53 71 64 21 21 63 55 59 7 29 46 6 16 60 7 29 46 63 55 59 16 57 62 23 44 47 8 22 22 15 20 20 8 22 22 23 44 47 24 59 64 31 47 50 16 57 62 23 44 47 16 57 62 31 47 50 32 61 66 39 49 52 24 59 64 31 47 50 24 59 64 39 49 52 40 63 68 47 51 54 32 61 66 39 49 52 32 61 66 47 51 54 1 32 32 51 12 12 2 54 58 52 13 13 2 54 58 51 12 12 9 58 63 57 31 31 10 37 73 59 53 57 10 37 73 57 31 31 13 25 25 62 34 34 14 46 49 63 55 59 14 46 49 62 34 34 17 56 61 9 58 63 18 36 74 10 37 73 18 36 74 9 58 63 25 60 65 17 56 61 26 38 75 18 36 74 26 38 75 17 56 61 33 62 67 25 60 65 34 39 76 26 38 75 34 39 76 25 60 65 41 64 69 33 62 67 42 40 77 34 39 76 42 40 77 33 62 67 56 10 10 55 15 15 53 11 11 54 42 44 53 11 11 55 15 15 3 43 70 53 11 11 4 35 43 54 42 44 4 35 43 53 11 11 11 1 1 10 37 38 60 18 18 59 53 71 60 18 18 10 37 38 15 20 20 14 46 49 64 21 21 63 55 59 64 21 21 14 46 49 22 45 48 21 24 24 14 46 49 13 25 25 14 46 49 21 24 24 30 48 51 29 26 26 22 45 48 21 24 24 22 45 48 29 26 26 38 50 53 37 27 27 30 48 51 29 26 26 30 48 51 37 27 27 46 52 55 45 28 28 38 50 53 37 27 27 38 50 53 45 28 28 7 29 29 49 30 30 0 33 56 50 41 42 0 33 56 49 30 30 9 58 63 8 22 22 57 31 31 58 23 23 57 31 31 8 22 22 13 25 25 12 3 3 62 34 34 61 19 19 62 34 34 12 3 3</p> - </triangles> - <triangles count="24" material="Material-prop"> - <input semantic="VERTEX" source="#Geometry-mesh005-vertices" offset="0" /> - <input semantic="NORMAL" source="#Geometry-mesh005-normals" offset="1" /> - <input semantic="TEXCOORD" source="#Geometry-mesh005-Texture" offset="2" set="0" /> - <p>65 65 78 88 65 79 89 65 80 88 65 79 87 65 81 89 65 80 87 65 81 86 65 82 89 65 80 86 65 82 85 65 83 89 65 80 85 65 83 84 65 84 89 65 80 84 65 84 83 65 85 89 65 80 83 65 85 82 65 86 89 65 80 82 65 86 81 65 87 89 65 80 81 65 87 80 65 88 89 65 80 80 65 88 79 65 89 89 65 80 79 65 89 78 65 90 89 65 80 78 65 90 77 65 91 89 65 80 77 65 91 76 65 92 89 65 80 76 65 92 75 65 93 89 65 80 75 65 93 74 65 94 89 65 80 74 65 94 73 65 95 89 65 80 73 65 95 72 65 96 89 65 80 72 65 96 71 65 97 89 65 80 71 65 97 70 65 98 89 65 80 70 65 98 69 65 99 89 65 80 69 65 99 68 65 100 89 65 80 68 65 100 67 65 101 89 65 80 67 65 101 66 65 102 89 65 80 66 65 102 65 65 78 89 65 80</p> - </triangles> - </mesh> - </geometry> - </library_geometries> - <library_lights> - <light id="Light-polyRender085" name="Render"> - <technique_common> - <ambient> - <color sid="ambient_light_rgb">0 0 0</color> - </ambient> - </technique_common> - </light> - </library_lights> - <library_visual_scenes> - <visual_scene id="DefaultScene"> - <node id="polyRender085" name="Render" type="NODE"> - <instance_light url="#Light-polyRender085" /> - </node> - <node id="Geometry-mesh090Node" name="Cesium_Air" type="NODE"> - <instance_geometry url="#Geometry-mesh090"> - <bind_material> - <technique_common> - <instance_material symbol="Material-cesium_air" target="#Material-cesium_air"> - <bind_vertex_input semantic="Texture" input_semantic="TEXCOORD" input_set="0" /> - </instance_material> - </technique_common> - </bind_material> - </instance_geometry> - <node id="Geometry-mesh005Node" name="Prop" type="NODE"> - <translate sid="translation006">1.91915 0.684061 3.40932</translate> - <rotate sid="rotation744Y">0 1 0 0</rotate> - <rotate sid="rotation744X">1 0 0 0</rotate> - <rotate sid="rotation744Z">0 0 1 0</rotate> - <scale sid="scale746">1 1 1</scale> - <instance_geometry url="#Geometry-mesh005"> - <bind_material> - <technique_common> - <instance_material symbol="Material-cesium_air" target="#Material-cesium_air"> - <bind_vertex_input semantic="Texture" input_semantic="TEXCOORD" input_set="0" /> - </instance_material> - <instance_material symbol="Material-prop" target="#Material-prop"> - <bind_vertex_input semantic="Texture" input_semantic="TEXCOORD" input_set="0" /> - </instance_material> - </technique_common> - </bind_material> - </instance_geometry> - </node> - <node id="meshInst741Node" name="Prop__2_" type="NODE"> - <translate sid="translation742">1.91915 0.684061 -3.40932</translate> - <rotate sid="rotation743Y">0 1 0 0</rotate> - <rotate sid="rotation743X">1 0 0 0</rotate> - <rotate sid="rotation743Z">0 0 1 0</rotate> - <scale sid="scale745">1 1 1</scale> - <instance_geometry url="#Geometry-mesh005"> - <bind_material> - <technique_common> - <instance_material symbol="Material-cesium_air" target="#Material-cesium_air"> - <bind_vertex_input semantic="Texture" input_semantic="TEXCOORD" input_set="0" /> - </instance_material> - <instance_material symbol="Material-prop" target="#Material-prop"> - <bind_vertex_input semantic="Texture" input_semantic="TEXCOORD" input_set="0" /> - </instance_material> - </technique_common> - </bind_material> - </instance_geometry> - </node> - </node> - <node id="groupLocator008Node" name="Texture_Group" type="NODE"> - <node id="txtrLocator017Node" name="Cesium_Air_Prop__Image___Texture_" type="NODE"> - <translate sid="translation020">0 0 0</translate> - <rotate sid="rotation019Y">0 1 0 0</rotate> - <rotate sid="rotation019X">1 0 0 0</rotate> - <rotate sid="rotation019Z">0 0 1 0</rotate> - <scale sid="scale018">1 1 1</scale> - </node> - <node id="txtrLocator010Node" name="Cesium_Air__Image___Texture_" type="NODE"> - <translate sid="translation013">0 0 0</translate> - <rotate sid="rotation012Y">0 1 0 0</rotate> - <rotate sid="rotation012X">1 0 0 0</rotate> - <rotate sid="rotation012Z">0 0 1 0</rotate> - <scale sid="scale011">1 1 1</scale> - </node> - </node> - </visual_scene> - </library_visual_scenes> - <scene> - <instance_visual_scene url="#DefaultScene" /> - </scene> -</COLLADA> diff --git a/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.glb b/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.glb index 7d2ca273c1e60ed46b04a5bf4514fb160195364c..f4b70f77e7303863bcf4c5efe8de614168d9e7d0 100644 GIT binary patch literal 586652 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%0D?&YME0K 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π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≤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≧1$ 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 literal 623993 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%0AAr--S5nwmOtg|4U;Z1os(J;I#LoH z<_G1L=W&tF`C2vVc(NP}y@&jE{L=e1*^tQ4sG*J$;IeT>nQwNz(jX2YW}Y30=q5sW z7nEDeXwQ@1_Oa=jY+Kr~%Hallp>*=Cgv>$Y^S;_w18=#-3uPCfg$IB>KbP)ea{a;j z{%q^n>*$X)*9O};zZfBR;V<4VW(paS4M~AB_Q+HwN|G$Cwmh2apy?5|-GwEyN$3*; zrq7fhYzu7z>UQ_ZzkD2V@@5udVDF(Q2nnl&$##dDmm&r#teU@ntC}lW3~P1~Z9BCc z2(DQp@|xH|s&D8~UP-?3_LDOy>|Rs&&H9zj?6{#ceXK}({vKw~0dqd0$?vKO15RBq zWad<Jl4yyMrtieS!I_ft#5f!V(~EwETl+$M@}r1*s3Fim!gxE2c<T9DLGGlTVHvZ) zWt14lhqe|lBu>7U!=*!zU_#j?LCZH2p4Bb;E|jX$VDjDPqgM+VHSc^?9c<3>se@>0 z6Uol~_TV=&)YUV^1Qn$z$?MfilO*#HM}Hk$jd8+!tIXyXq0y`xLE76R+M1+UQ+-=j zj(%@0xM<$-Pv+od!|#}eYwe~{%dr>Zlk5Z$^E^91`AP1uvcdi_Who!b_qI|*AJ>Uq zN$^RjXOk<^uBT$LR()<@!2cYOH<`}tL?!;}sc(0m1_JQiC+G0@pGh$6hUb);;#U6E zb5z`?Epc<qUr54R&DVaStR4Q3tmS{E4BzR;9GTLm4Mh4F@0<wDC!iZF4F?4(joYVn z+8HtvJT>FxgSDaYi0Pn4f?cUV?ZRMW<V4}P<{1_8>sORaS)b0|(l@+lC?Oz3B-6SF z#Dqkl%H+lr90o)oXz2wKCcnC+r%3<cgbAUV6Ohd7YiQQCC~6;+H7m(mqIXRqoj&WG zLwahTxqo2<O|JY=jo*?Tp>cQE@d52keZL%jB3g|-{x60ZJc%`T31I%jZYgzbMJl}e zG4FfqJGrNwTO!K`lDM~wISnOXRu;clj$EI>e((GD8U38tXa-W}-i_^cCMw%!IHv~V zEE+T#^vp&YQ_oqmBV1ZvLv%-KAT_ni{^p8sF&6Pn&D0#CLQmJ+($G0p&DD=3GcpmO zV|rymJn|Q(U;M^!eOIVy>iS(1G}f<w>}_}rXA$zVGl3*vZ)rwwH81(57QfaBM#b+i z!d=P6MX(0kdRR^Llsn}&Z|J;5o^~IyS%q6WAEz7DXsR7VO;qP(*nGK5yLqGYz4gb7 zH1IgK&#ah+a(RlT{6Ol2`4RooeDCzqeP+EQ0ZdXAw5Bv_`=T9w=0l|oll152O%*;u z@`TAP;s^R;&5YXO@e=5pS@V~*h=kuO`QTM49?#fuSAz6lr{7PY5(BJc7T5mg;RItE ztDsoUZtdWq61r%eT$p^WB&;s;_AwAi);HSKLmSo{YpM-yPV!JtezKfg4D#+);l+{F z?9Wf1qBD_$aou@IbPz(gFw2MfTc%*iQ+L?k0`0>v#iG!;rrR+axmH2DDeaAsE5u4i z*9%2rL_~Fw(_f)lmT5`A1t$)=xnk|w+NXP^m>BQDk%Ij(QeRs{sYO{Fl(eB%+M=)d z#L|FuVmm@mn6SBWT)MP<ZXVFmS}S=e*%gf_C0(CV>PsOj8zA7@1K@k(FB1Pan;WLb z329ys+jnle%#(7#y<GKY!Ev;DuFA;7&y=K!aX0$*Cb&!F8=$40^5oti>vSKEf*X{A zP2p!Sl$9<>A_{g~{Ycgf(@Kn~;NPeL?s=e{1GoNy0S^FKK8XWSbo>@E^Z{+>UD(iU zJ7W^I8zJJ;K*7W=0vJ9A(*srOLv})Tqv)<c(J(N~qOe@DL?FOD0QvwR?|lGRklkQC z06NskJM`}`@A+7CG+Uu~ndUpbQ!-j&IO!$E)uhi+CtM5`upvaJ<(dTbfha({l=%Fj za?vjYBwuPC08y|Ll|S91c>s*5xZJ2Ay|*#R+gU>?axZJ^G8@?OD^h7wmuX34XS*^W zRu)iSjq0D$N%{P?Ha;jfs2TcNIEuEAQ}Kz(txar9$8YqGYP+htngIXjYipJFZz}gQ zZ2fJQXi?*Z^<Eaz$F1)oU3jj@eiK9}$vflSS<43rVOVSBJoGjZBb+c(j+n=819 z!gj4`lKioBu{WB_Be13F%dr)(F;192fc>{1CrI}RZX?TI@K;rT6+ZxmCstAJnD%nM zy=A?!3egE?47Q#;D&6baGGwU*a*FL-_n4IzUW7yRu(Z_;-LA5nb?J)Zf?(GAVL(v4 zB0%!(FI05d6>zwn<O;jt`}8U3)U!e%wR9=#$!Vrf3Z)99g&hn#Ec)((iEB<$^&E8F z0rlhZ(w26VzA0Hy?qJcTUe7(^k(`zwgn5*7PMv@|`c$7*N>9uO==KP(Acf1Hyj2Y= zr7hj4)IFwkN2R0e+CyZx$dKgwmIaBCohl!R*d^6QIYeow(nXb)<-iGBQAjbi!NNsX zZ@>Im6zjQl<O3iPaciD<nbLJ8WN4Ud-P+FKtvLieiJT8Qi#h2r`COiG$Z>IY^FoZj zZZoF8ut*k%My<>uB6TxK%IG*R&gUxX^Xv8AS23hH?M#e%q1-I-m@y1b$0f(#7|T4) zah>f^GN;Buw4BCHx`!!}+rxBztL#eOLg}8r43BKo>ojAIHxFXiB#W(PXN9Jx2_8Rt z7Nz_d+o$q&HR1KUH@p}UYG>UXA?MpDB2|RE--PX<!&87Ci<9^)z5HA%Sfr})E*-^Y z37~6Fx@Q|n@2InGx>Xb-v@3FLHj{U#URp0t864&~fEjh2MvO`Z8IdlEuuT{Xw_HX@ ziexzjNb2n9SeXm0*S4zX^etPhS5sqZuH?NgWj77HKEzn@Yl1(@Olh9Sw*Mc5ePvjb z;np>Xf`EWDk|H@M(w))_J(RT4-Q6nPF?7c;Fq8sABP!j(FvL*OjdX+Gc+Ppxci!(h z*Y*8-=6>#pAJ5!-@3q%jJ3!Gd|LF-<f*FN`;Yy6zksqWNYB_7G+NE7r2j|Ti+@YYD zJ~qrokql<(Jt=&tuwGT|^1h=$XwGOn8>O}UZi$E}{_+TREAi5^>EI~ACu`ZI)X`*W z&~f0%t=g0g-*s8TOySPuW}YprSa=C!F(jdlPLSjkzb`4Yzwt`nUCD@PlPog)!e3mZ zZXfPArZrGvLZ0zyw4x;gd7vu58ZqNG`~0!z=#WPub46C@wd$k@hjZMv1W7oA4CvLV zTBwQuG}!BM<Rf@fc$JOZ2hy#;rGf}$%RL}kHIVec?L({<F<%dG!<-9$n{;9;-Dx{3 zV!Q<-ZxE|FrrL{S1=+#ZkWSOWg)TtH#^t(Ko@yXdr#Q)w;zgt;+(n(;YUw*yf_JP< zx(3&HDaFG8$esG$`X3Bf^tgo9ilU-MuXmN+8#Q>bhbqHNi*b3~kj=hjYi$QNLc>4- z*7{~AP-*JAMXzxyT1vTLuuatM*!0{r1j2on%g~Tyd$+42Rug1b-5Ty?T$Sp`yEIeU zG|YhPGFD{gS3Ln+`?^h>5x`-d3&!+Y)sv=q8fRP;?}C!1L4l(FHKG*xGv`AO^p@bv z%yV=(8R<an3(Tl0B;SZ_S*C9G`*dx1I_Se8P&!Jb0Y|rz4rdONlY0wG<i&$G9+F3c zg^bq|{-v~0gx}{sKKRzZjfqrz7`F-i@j%axoyo`atDH25LyfMK`1oNaKB)6mNs4w7 zQQ$kO$AYP(31g}?It1&A82P`>gl`HZpVw6CZGCZ$NlOlx^EkCfQU`5Qcf6=%ZSkvk zR;Fj<6`Ae&s9}X7jYUZl518@>BMSFF$kG3|Ws9}<`v)o{%KDb~(o5~dU}IhiHK}d1 zkZEme2F3Ijh#)z$3LOma{W<BUjewpN_Jh*hHZke~l3@QJ2Zj@ci^I1@L@j~peemXF zy3>_uDc$~mEVXh)&zvt2SL}F>qJ%Gv6GI+_f4(WZ%*&0<h_Vclcv)Dm<xHvZ2O~gc z(no%GFKT4G)<OC8wiDe$KkAdb;M#ulI+vM^o4<pH3ElX%z^#hFD0;U!MM<ld{_NN) z>02ZE^N9A^<JK<4(-msFgLvI@?_2Ag@gL8A8XTA0_?NaSF14c9^K`w*D-6HR454s^ z74PtBUzc1sKSgMG=$a%YSBPe3bsEr0A)mraS*9QERWLvK72GVzHa6U)CNZMx?L%Dx z!xg#HKqlO4A9wC2Av8Q4D(ee+zm^k0y7pc6%7Gz`e|LI$gP6TMw5Z#l6c<E3#P{+F zvV0)91ZZvhC9$Yo6Tdy|HZ5!yqF}UCZF@G(9=EJQve&MC0<h|#4U+D*-3LtXk#>hC zCEun>x6EDs!SGXFO>E#JB19)H@7#zX)n9f6@T%5Q#F0|KAoK+FLRopmXq9?nMO&4U zvdW*41G<9W8Fq^Q3360Tz@^kHqc*gD#~AlZI*u`#wGo$<Z{_KX>1vV3s6^w-s~dls ziA=pYq5v-v%dKTctc^6j*^~W<+tzGI#+&v)QUNRT;XfV^*HT6cd?l&3p&!>@XaCj* z?7iHzWta~ix0TLpblNUzG>`q8UG_(}r-xHOi(6F;UEA~#t#X5Dr?JOMrol&~<hpcP z#aUa>`?7r^C!@7fRN5;=i<hhs{WoD6(Po~$p5AZF2wGiGT03jycQKYVB8?;k<$}K+ z(6cB;sz7)AiiSP{nmR_mOT<*3a1r0R*+;bOB@&7?Q*-)p^Dx#n$v*eiU{$vGZQLT2 zPhIk*IG`Zb#3Gdnx*OQl?JYp<p>oq@C#Mb*qjosJw~40k=c_oM=)0qs^(|;uBN`|E zM;00&6dfUYPmVfaU{vtx95vICvNj_Ap1opfMpZhe%{IoDAW(3I7r8fv61jc8Vo(!< z2rwDTY{`FiBLSl5I>=e^mU?pe>0P4XgduNaL8UPv*TMXc_x57NXXjGSvcGc`82;RD za{Gh9p;6~?XP8RBe<7ehbL(nP8dB?e=E0ET!OPIb%UC7`)ip`%3+kV~IFWVs4k^|t z?wk^TUo2K)d@iN)1jfzUu(57?E0GCby$*d}g7VG(=0@qncD5_CrFfN{qklaW$FIDi zXu}kZ&rbV#zBTpUk^|?IkAS3rgf5aqkZ7-b8W`LrStxb$cb{x>cSIfo1mMbaEoSZ| z1u6ISqGx%%8nwW+{nfp2F@VyJ3wl~c%^?mni6lnJ{%rAtw4ZM@YG1!EF6k~s6Lk|W zSxdBu?+paQ?o){fzxG8ddSNNJ#3~$4wT<rrf2EbzwHQziO(a6Pp^TGga_{aH-$gf4 zwTH*cHZyx;IN96KyZXj{a?c1&ube7Rg9S{G$4D3|lk(Od*FJCDCF1|Z?gc4A+pQFW zO3Ob!=7~=``Lvq21zj)}KqPl(gm*xE&Gbsn9u;p)Oy!v9)yrz1;Jp%4Q&BtFEY+lS z3g<7}Lohb9H?cl#%1tMbJCs>{odq$B=lcP_y>d?WpX?rK6K$HY%i<`vvCna>Vo^B* z3w9~}n3S#N4{KBz1O<KF*!OpDi5@V&hL3FLQ^ZtH-&e{h(z~JgoTdzc=kf+s?KZ9* zj>2%QzIdVSKNxBoHj#j=tmUU?f_|YUTs-qZ{Ln$k3>`@;)na80;glrh=$I-sA>B25 zC_tI5R%u90RTosLGV-X@N|7gJPn$wD{9|q+I~@6$62Z0?-D;w9Ab!79y@u5_e3#Uo za5Ema!R4uHGECl(_3@RoYi9|uct(P<{?|DDV$EX81_Sam5*|`ouxg`wX0{^HOWfah zVPSI>yQ%ABF#R&J=*`GI4OyzqR2B{g1P19Q)xnS*xDuhPXmRElqgqY2pqf{SkqVbB ziu2O<Hni1V$bTK*V{l2;C%|hL<>_r<AwP}#O#-KvRFKo}-N9?&orwgpZB;3c$vf{3 zo);&ll^``aRkbj5s_KAIW>QzD$P?7%yr&ZLM$XN<1~s_XYVMGO<Pj_r8C#~@l_;Ce ztcTY%vO3u7+P|3WK7#ovqDR*Lrfg7K)HovUKKSCM=o>qv@BD_pk!-6Bv2O5WuwQUB z+^R8$VFKzum<!Sjg;d)14V~O53N?HQRQ0b#iO88XtqSGqX9daH?9G=Ae?L3~H2H1v zIiK9U7#|&f5<<;+jI}E?&N{B554@#(b+fZru0x+QS^48v%ggG~)^NdYg!WJ=%aeyi zES&xw943~ps*QVEeI9~~7`LkbU|39?k<9u}R}PCK)SKs`y-lP!@nwEY6cv0-d7`R{ z5R%u~iREl@rhCPk^fEQgzgCsAHU9mDq1n_#y3tK4#WaVn=b8Tg2qz*(z7AP$rELic zPD%sIU|xTtGq2ax{+l|i<E`@6O{_Y$w?378EKQ6r_U)gIL(E4=&*4Xsek(Y#n95mM zD5bv1=ZsDK?tIr`(rR@(I@r3HPg@1|@eV{Y9}{8Dx$f}tx?wU2PrZ?n?0vA*%z}qv zkq#<;V2ZMPqL(YzywGY;_dqN)j*2MBg(m1(YXd`1WfaYe<D3+K_W;liB`Gk;&0faJ zeuv!7lD!&Ny!(sjgfSI>kmWsxp|s&Ay~6+2-y~`p!<|fAF>pnooko)Ih5lf?8Te*% z7kw!$2wlcNp#@1a4{^k_4?`b*SjQaxXX*iPFQN3DzAIb0UY9#n)CDoVhS|aI1Sf*O zV2*=$RjAz6AVE%1FMfu>I2mQJGkYb~F!2X$LH60YWysI+rhR3qo1LO+9Ak?w%wa{; zcKI=~xq@53Nxj81O_bI_ncYZfLBr$5)|-;9lDenM^}x4^92qLPQ0O@rRdT#~;3O^E zU4FPND=vZ}s0>US^W+WoQQhgAhbl$1hzryIY?+#8jjzlQ&&KU{nSOeyfgA-63)~Qw zpms0wCb2`l=E}@>{fcC<RQiLl?|AQP5B*YHvsGocQL98d=%D@kbcby_uFB?Gu9&(a zKO+042sX9C2}$LG=^Y~ugXcU8I`{w#*_0)9PG&ydfIubg&Gp~-*6)S48zXi@Y%Z2H zzcN?`kB@u3W`U@WJD^TN=@VFCyU*@3z?}&E_ZMnMSYB>aeHW`LPRPVqN+y_;TRKA- zIvmAL&k|Q&7@!7i_?;lRmK=JYQzUDHaM5|O=T2=MF)~QQNuJA=z%lurT!j72jY`+4 zteV6)tfp@@;a+jKUEG8LWL<%#>G2Wp%p>(}*r(dcs~ATfw?5U_&rRLFkbGYzmc3ag zmW_~LJvOYclkfkjIeI>0_e=7t;V2^%l^5JiDID39>DnY<wLrk`gT0Vtwkbo#Sd32E z-?=eZ*$^5vfs_uU9@>m;*;MfZ1C_jKmA03!b#{{(*f>Sjk}v8B$mv<wH>2pJWI#}= z>gQZrX+|fq=xHhAtgR*yU$?KzBs7KIZmcqPz8hXk++i#(F?n4QB_X11@5xaeMk^c? z&Ua8y(DL_FUh8*L<TPpx`<Ewe4cYT6=f2#zK=1E{40`>+P$z4mR_#%0p5BeWp|Efd znUs}RXx03Kp`(}XC>sHlB&iQ8A1{+0J8QNrKLYsNY5H4?o_Xomd^}3}q?k3pz~xcJ zuj31Drj@gMZ#j(Dunbfuk5TQ_K8w%$$9IhFgilPAG79*?DRG)fftg}oYyZB(0WyB@ z{Pe(>y>;Q8lO8gJomHKvtHgC&s|HN&Mgx7;S3Zr*@1bbl`EVnvdANfPz~tSgc??%r z9xqp81q1J$Rr!@`GGx11^IvYEGC0tnh(Rj)34A&Z5<tu%jxM0PqjU5tT9-7EuEFVY z=<kDm&U38K*HZnOqn{oC^=dp83W7=Z%|+SeZ#3`iUM`ogKN2YMLazNnXDCUzL2Gi` ze{U4qEucm;qWwRakK~tJ-_;DrSkKAG=4KcV&?uwZD8vHt<??(t3RZEdr8rTNDO@F9 z*M$-tE0oLI??b+09m5G!5J2&!TY(F0I50q&VdV9WzX{WoP-T3g(R|j=llrcvUg`vZ zX9wZRaT9;`ha6{6YRGT}hgENkV4+Sr<PoDXKt{p_51;UnM7>2K*H!>l06Rk6NJ89C zK1k}|2JY3d1241L3<&Y8MC#cv(Q^8g)ZTRl=cmJk+U5LTtu_8)rKWqlf5`KDL-cD< zaKfIr!sJJPKN;ps9ZML8-CIx{&ogrfYnobiHctZs7yCd(B9H?rEyD3FeA$HE+LeAV zd|A+y4M!bXYyObyQC_Mj&(c`!Aa!9>hUM4?gzwlObrGpbt4&03(l)6tf7|u1G2PYu z=vMxrNDczR+;5_R=B%aLzdo+rHkt1PUz)zM1Gny^IK@?upHtP8hp%Kw>mpSxp#0>4 zFT{cG4q^H14qsWmbukT%zFd`aH{`ay)ue6fDq#%jdrzLLbE&7&=^<EpGo<0@6P5ec zkb7M<ueR{hrw{8<eF6(9+>;eU(SU~)W{&2$Dtrpmv7pug`kmJE?)R1C>A5W2Q~8+z z#ZhcfS*o+)A=b<&ozkDHs*xLt!QY|=XkQ%n@sWyC*Y{mS?K6eXhS{Cxsc7$JbfI%6 z%T2s#05C%j8Lo;wnMO&GdcaSX@}MP#QH<nw)?Cha^^pR6JfyjIz83wQSAOzQe#Yqy zzE34eYh`6ISMq4oW;Qr^Dwud`(a5Z6e-%a<FRRIQ^U=KGEo_)_6I!M;zw#MvFYo|_ zf%bxW00M`VVqh=`^!4=)uj<Ce3c>uwuK!?YUYlZL6B=RXzG8>-3`$L3r@i3eO?pgJ zJ0?FM?Mr6+j_uyA^DMs_v-74K<7ogD;k*BdPec}&n7>Offd!+YXom8#_z&^>a$L`r za1tr;hX|r&VUB^@Lt+G9^7QF9S7^+K@5jALp*yt!Fa_o9GimJ|cX`L8(i9@o&c}GV ztXiCUS?W9^8Jf&Qn}w2Acdvtp8~HPOT72Rk6iMDrmDr_GtW+1fO#&KObBsq=*x#|> z0$h?+GPLks>hn0$eP>};^84^#`;$Qt*Sr^2NPl12EqU{!7JG8LM!T~XY-^ZDWl%S8 zaC(QguIkaN6l!ae^eiW=1z9IXTucB4_Qk)FgMWS|o=$PS&j?XiPRMQ=={TM4f9jh4 zqvXeW_8arN43SJ|a6cg|J;Mx<@#gyHb3@u^A~No16Xc1<6rU#7`3iJhu0K5ZxjI>T zl&IryJ@dg<0;qBSuPX(W&I<UQqjUp(3Devp>b~*0A(2+fU(oL#mzv4w%j|z$js~gK z6rA!r`1$PF3vMgwzN@z%Y~7jHNl&ee7(fs4Ws|ya_Xcq$lQCxmXZAi^NDC&0hOS|V zp>^95?W8-#GAJ*C?~K<1GG?`VVEtExl514${waO>wNJuP?ET)MK6K9|U4sBFm|WfR z=KDv+%O69sZ00F(8U*~O$|rfx=qojIfdn8m=Sq(W1fK^kp~_lyWC5Ndhlv%*`|_{k z`5ej!g;L>nE7o77a45>wtHoOVmNvLF!Gmg?W=CbBj1wV@p=rU2*k%g{qbI?Mj`_|( zggQv6w!MPG^MZwS$;8TE7X{uSN?D_ptB6fqo}0xPbXU{&?!ax^f3Z}A+1=QV4Qo&` zjc4}cE%*VX<g0nRo`hF#D|C62Ku^AC(7~R52bq}rqQUl&6W$Ia@X*{Vo29>&iJ>+j za*%qNo~F5$pA@;Azh+Hp=n2H1W+FI~iEumGCl*d>cs~p=YvaaMX=ZAATeVWgt#j2j z;I!&6gVSlo-X}bq{0Yx<WL4lJO*XT|*MsB)H%K~n5%b-$sP^5p=5~rtuq`xJ-?Nv@ z8<<n`-o}1W>v|yS$jSxpxo&qMFJ+1bh@5zZt;_v&C@-7~?|7Gp>~LPhE2Vat_wmVb z*b21kSGxC}rjnA`%oF_{jj)ugHa!h}bs~$y7<G=La4$*wb;D!efTWgkciJjmKZ&!N zjwxz}W1tr!rWXdWZ$RJ|Co5V@GkVxRLdJzr&6Y($7pH1kDpM83-`wi%&j$G2(Jl+_ zpS8v<@nr9Bz90iD6>)&bhO_%=`*a%$3=}lMWa(f?IcF_pQ&SEh_a;{g>_mJgA%8Ha zb0vY8wwBNLJO{_?h>e8r*^U$OVAk%`nRnvh*t2{$Vu}J0i*J%2|91O`8WQn?d=MN$ z5p0C~6|rG0Jb=Q+PaaMxz~*HurQ!jIQDf<9t!htkOc}aw8sTh4M$J9Z*x?h=e?SZN z623tYkTZ2d782MRM9v)53za|Jo-bd^X+)Y?beFWg%vIYmZl1q~fF_c7AvIRdF;9lY zMQ@mTN?O6f%fB|$p&`1DqTx&&QsE>WIAcpODE)S>91E>InyI9o@3y8osNA?gAC-~* zQO2ox2C@p~Ps9T}JRJRQ4=w2<zl1KU3w}te!aU)o^*}##go<Y}53rCh{<iR}m<AX{ z{<hKf!=SKl?mgCte5ssz=^k|FlBtQ!-`YAG0GrP>_)c!i!%N#mD|+*&oF>Z?QI*^z zd~qa?LrX`M%h&dA<Q{%p2dDn@xsrATSA5;v?Z&Y@U?%)bob4p<J8(mk`|!3MMj?7< z@=L@$6E%K*CiNKK+gb}GFd%e()4md4cq@k!^)=`9M~z`4f1>Vvir!S-3BI!&)6G^; zw5J*+gIxOpuX0z?$;byTJvWR;f)n5aAlcy}J?8&9)&7Y=J%7qz_BA%~Rwn+*9}NDb z>oL91rOW@h_4jbYR6?IWk<Z3%v>0~dG~`44^rPPXR|?ku1crZ>RsTATvBjn=ui<C! zrk<v#=#$1*B{IW6Xw8R%%K~Ky_{;PtOVY8JHGBWB${Nup-`pQdU=BaR(&KOJo~C=% z;;F4uZaUfMf*<T1?S_!Bo04#raSH#!J;sy9*n82if@r}5rskG@#0<TxJF+>vYi;Mf zJo(xTs^Zi1j#e-Czl(lb&SI}?_<>g?MdL)L>v7Oz3GeUfQtYtFh9O&KAxx?7(=mO- zw;aR3Ij_M6<Zr7Xl?t#SJUarZf-ym3gDe9_(q_oMZ(!yN=WA%jvIBjJKFwkCJC7L7 zEUuW2WN70X3NJ?3Wx`wB;g@EyBl|%!vp4FjtrlI~1&dLey(hlya*MZDi}Oz3cWUuz z9S@IstuS>ZSX%uAuw@5x;gxuH*;OS@)sJ6ShY5F#&|AofhI2l1WiEdOz`b@Jo)aOc zjjVi7BkrP#;)wNvZ$?tBQYHv)`Udvd?K$4}*UX$AF54HMs4hYFX?-<t8xA{Ps<5f? zd=aZp3f3C07>-_njBzUAEcTkG45>jB(bG{rLmpL1T62$pMu>6Q9BLbQYp$58Kn|Hk za;ilfdvAMn{IAYqMmZKqbZ;sg=!}1Fk{>xYyf2b)Pnp3~?v`6|)rjm-&u#fJsc_8A z^Rri^$1;w;vI$QC$>MjpIrwsglgiG<nR)GAyS4yHc0>`!Pi`DQK5ns|x=0$;6tR1$ z*dYe&^|5&tbtFtrO?@Dc8YVImFdK6jt3XX$E2`X8N>tmf7!5c?i@v^IkN(tf5zfrw z?`CDO^RkcWWc|^YI+>YS21|pr0`vji!VKVCFJPZ%sdwDuFQ50740Xw{_BV$oU4be2 z$aqlkI4kL^$scyVRU_H-2Itoyz3WEvCl!liLW~ayV%RV_m?#{il4eiu=STqg-n-7m zFNDW_Jacc8l4@X`q4Lmi?^HS26lYrH61!YF(rRn|lvcitMklSShXjKS8f{o@K*Tx) zZ<IHA>*iu)U$K`nH-3b0vWsQFkqzP$vx|<#x4PjO@xmUX_YD^bq_&ARrsr9aUuW9B zgePV84y#uwt)mV3G^pCg8vVT6<=`aZmB^%j{Nc{~mNm<Wm%X}t*PlE8d@0PeK!0(Z zqS4v=D640{US>*XUC=o9YzQE7`;+r=obtH)V+iom(Hh%DVXO?@xc%I;#1|=-Q4q`I z<XTBwbH3&?JmrU;#5{bYo@zWiRv)0KIftLsxYXo#F1plJN_8wdEN%AhZMDlUbV@5Y z!Qd3!hx9YCBcy!3pzM_w6D=&wF^CK)mRBPdh1Y<l4Fw$JP}DeRk>$173Iou@34~^y zZG690@=xR~xQntapH`vTy*nyGMeJ9*bQ<QKyVa&4<4Wp5bA}{itNuwK@87eVhq2>o zo{MjfILazzUT`|&PUL<3gOR17`mkmX4V%v7y<JF#K602h=JT~MIg6~pF9R(V6lC^E zdKc+w*R+I^2mzc)TrubZL!-WOS<d0N+K(^)!RSi)zHyI<+`nd%qWx`+>=GZVweJm{ zkz47LvB2}MQO36k17Jnd*=E>1GB70eNFqPG2eDpuBt!9A-@_;gQVuG1Tu8|k$chpN z(BrXfbTgxKl{Xp8$Cvv6s!cCTDij7xIXL=$>3TBSoO~j-{~Em&#PZ-8vB23`o-mgt z$yr0OP7hM%6#}u)J$$M_?_l1iHS@B3>;1OkK{|As=j4{$RvYbp;TBneH{+g{T`v~* z2g7vtjLI}P#)(1MXUKL0GlDuJc_m@Z?Nu1$k=F*T9*$$$^ECRrQIAamk5jE;$rO7V z)k+bKdg0>g`rHF8-q+4Iv)cq_%ltQ5R-Q|sBs`Yp&T1Ah?4Oo^KAc_NLnMP-j12@B z29JlmscPzxuwbHlQY}?`uR#neD9#fIVxia_ck*v8>j+NlGeIiLSWP6qWYQ=l14!qV zXE0B>yNe(Fl(A+jHs?4fwUdWerxUhFxGdf(>bbxyz#)dRUVh4C&wQ{3)InBOC@Fcl zyxHS@+{T=l=sfQ>0}0MNf&jgCTG;i+g>GhQ#LMGP9_|v_+4jbp`if^kbBKXHc+1>j z`>~)C%|!_f)4Jh*<qKWkof?O%klET?p&R^D{teiFF#cB<!;?$A6&?*i#s9&m;c;2e zzew}_%hvg?)xiG>O@H@%ygkkB+(oD{ubw+&J~(Wu2{J{{h@|p(nl)6QttN*x7@u2o zdQimJ=WA9W)x_5$;j+>D<dc=AbIqp{R~gkR!4yhmXq;K50IbEQ^uGHf1&{Z^<l`}q zr~!F$`I*Y@GRLufRmMq{AnwA)aj&+bJ!)k$2}dfKiuM<=nngmdKAa*uSITCjZkM*r zuH9QO*Pc8ap@6?_+$G5%Z_~?4Dpyi%;$xCvzRvbHSYrne3N|E_a&lmVKY09{n4-A# za5ttRN7XGl!Hr{Do(il+-m~JXssV^Byk+qHHD9MaVi0J}vyaQ-=&W~CG?5gYt_K}m zSLdDuQcM`V{gEkcC`+~84#i77I9I<~(bjptdD%A+wK{fDENr+?d@G_l^nKrHs4MeG zFa-CSPh2E;Z;WPXTdnydD&k`65607L%I>r}=XjFIY^!fwvR9lHx?t5oD+d|BiGzo& zy~l_gzi9Qtl+twxi@9~aE6$?GS}tQ<I;T;IBXRTdW#5&<tB!*F*_l>8GBrL#!%dm6 zT5T_)3)U&|ywDp1mkHX-r%M{ZjQ}MIsSidmJ-oV0j<K_f0cXKP?xJ^d&*F47hsZ1H z!2_w2mI@+e1^^h@Y&z=?w-yui$HNwxR?(2>dsT}8l_J|z8!Wz=Dy_rgZ=R<jsK(w_ z_2?OLdRC?&ng@MoiQ@Do;LERD06(f1-i#$h!BtF&AI4owplUk45(|P&N!=Tiw?FcR zd(jP=kIREfr=M007%Jlu4s$V(Mh#J!%<S~;Rkm?D8Ijr4aIBrS=SgZo>2mXP{5avS zQ6xH03iwl!uu>8oC5#8ER+(L0#SSnh;?V%^B~ps!vds1|_Jrz?X(DoZic>?U9l9pH z;0svOt7WIQca1H~;xsZSl~jAZA8Bd7D)QYFkm1bi5A*4L{2HCrt+Uxo%$C>p+K*TF zI+_>hhV%EF#Mk6?`yw?iTjr`u3W%I)yAt)Xcbj6C$WY(9ktEaAJeDA{Ov6v!gSpOL zP97wUNoy#uF`mLVysWkG-)})c9TM>bAHVZ_XVz@CE;PgRE~B!5$f~yYw^{N+P!<?% z<$T0}uEJi<#aFEN%>}qNoH+!U*6KEM)a&k?shfNId%yP}t*>_h^jXsx#-y)I6$2+B zB*19q6y-!I6EA%oq|TyE-0+z{H9M3rvn;bg@p05vM$A7Y9S^Yfpx=p%IOBZ|<Cl-m z8<_1$CQ_)aG@4AEODCQ#XO|RCSnEBY_%ft@tX@&4q~)Z<0VD&G&<O91<Ap|Z341I) z@Qdy`3XN?w=xT8kR6b$H#;Om7eQF`u|8xYz_+TlQPQCzUsDAO_h1D9}R*PWTS>uz} zhQvmY3G&4(t~)EK4m1QVug01jM{U`8mVEQGJw4Jww&Z2UYqRU0;p-HU@<w3tI}W*) zKNwqKTr5Qd-tnI|5ru;V)kUO!{6DZ739>g4jit!rS5fw0I|!k9PXmM1s}{%pY5)~b zpCk3dh0JjtH$>e|GFOuOEEcF2aFC?<TUOU(yexmvcq7d2)%fClj+X8jV(xA$&&!8j zYxXtTLGdHu{_CQGf_kI7Er;4x^x`b7@K)m9Y4Jz@bN<H8nJ$x{5i)N%4FVKp;-H;8 zMv&*f7p1hF!wc?#<+5vlYVZ3p>fHl$Q`lnLNxa^%hS{uaHoYND1iyg-5^bPU!oh{X z*AOChRgBOXq17VmHh0wyRQLR0X41}iwxmvt82f=nhZFVhKDglN*S3l1I_IBE(ARQ( zkskn$H2#>K!T+!^2a-5U;i;2k`!`JVpGPiH?UH=oJ)=TINVdzJO{KI8T3+%W=X6Pb z@}-q<?%A2bAB<_Lri03x!ERmi|J?Dnto+Z~<nNnBInSvdsf&k&@&duw&rMV-mKt@R z;hX5~LWd#{EkE{9qz!=@Z!@F8YFhZrZsA>FNKna}!X1d<7p>CcJBWHw+ipF{T(4F~ zqYpp?t4#52!~1Co@?0PjEQ6`%?DclZD3bp~!KJlstxTV52cd^(XrlMTkaj^~hBoB> zdPP?toJY4#&t@w_-PRL6Z6~B(*KCniGP$S>C|$geVF6E3e(G>n8!5DsJVfc9bjz1V zZP?fNvmLzjh~14a*Ze8)V!SC^bx0*&HhmY-<K(r$kLn&W(w!p&JS0L<<t%@9RNe^} z=~^t)caAnZ``&$riWbqQ-O$_~9uVLZ4u68N(_xm&Gw<joCEjK1`AKd}L^|bHpVHfA zv$mH=n(QwUJX`~Q<VH3A=ID-Jf11}icbez*8;sSlDsf;dJ)MO9qvS$SCP*EEw>6}U z%up#e>nv+sdwajm+I0I$Q4q7k1V{TYW<*y*#E`vAL<YH1Gi6_0N;EXV{LGGjwh>ml z2Q<>)(7c}LmF{O2Ks@xq5}_kFgd$e@;^`x?Rf{J5PFwWrPcz?)%`lOjSSJ8W>n4v- z1*7knLQ5~U-ih}diJn5*B`>8X+KQK!h4iZLERnOOs*nef(xjw1tn@(%_BLhqj-|li zA>K5$0N&c_^;XdLSNFObSnES(@EZeP$dplJl;ra>ydp1CeO>8MeFwO}$F;6ZT%Zi- z0kz#@AdOS{L^{f;K@bHBV|o4xUEV&hPJCNA2lq4jxC9&SAL}13HV1mEo$;Tx^=pD? zWhP{jO3NRRJ$@c4XBe~FRl`x{#M8?v(p_mnX0FALq>NtX5ig@L>bi)FBx}{;9TC!D zNT0-e399C1fwfsdvsE0cAG7B;JyHRIO92i+M1a7r;T)j!AW7K(?{qzLo=!WBrm(|A z2=OK#DW6O1(B_4rwRN!#&bgPza<A~%c-C=LW>n|*77D3Y20VX=Tqe2zZg~Uyd^D%l zK{6lhR!EwWvZL3i!&{iN#4qd$cS7an#jh`2&E9bEG&-AB85`695Io|5hGC?rm#MJ4 zV7uDJ{T~b-8b|~8m*QMg{<%DHUo?3)s0p57($u5Y=0E-@cosHZ`6O~ky+uApc3<!_ z=8RqjdHAnVaDE|xZB(3|ZSZ_*5TUr8<y+QTd~KdpHtrX-s;e!O6GUUwdUkNCWsLAk z3|Y23_CjWm!gqb7#&B+kcFbMB8ZqhRsuuK_olZb^a5u^C3O05+EQ_l@Z+^)g*bn!N zzr3=Z_0XWjtAXyka=0E)^h(LqD}50Gd5SBRyMu8Mpull&;LfwNUKT8PpVICqZVHDK zplALlUgY2{oW9BYeP70nJRbW%i2!$^6;_wEG<dbp^N?(1|Nb=6SSP?P;)+SqOveFv zJfze21bTv=#4tibbQ@xGRWxjWJ7l}T8aAU5Tsi!%ay^!h&))rrf#wf}5|g?1RFiU^ zdHLrwifz?^W-5?JerTdpE_&A|JEUX;0nhLDKNxQf1z%GdLV#6A@eq^|2q=(n3DL@2 z$I<C`t$Ei7A%oauNE_8W_!3tn!CmanoIJPS0uHK#H^RwmxEp?{tvHl%!1>6AdoFcH zooHD_=6e=yRaKwmwyWue)U>~l<P4emP3_rSVP{I`Srz(#Qb5WNI(Ga)t<2Qm_c0tt zWvNMntFB~zQ>Y7U<$8Cb-&d;97JpA?)FLsqDN>~oE=4Gmd2!g(SE2!TiRSd3w$byl z(RCnCC+D93VK=5mrYyKa^N+F^HDo`dBgBHH53;cU*#<TmBYec}zA__e_a|;!6dxb^ z&)1Chua%rrxv3s^8hLDr+pNBP!9N%F@8cV1f~aV<cb`eSS*q2Ss*Q`#YN$+i6E@Yu z@t!wsW1--!o4GOLo2z^^d2I*3zNfP25d+e$;YAHNpNSfLq^V`<G5M!{J!g89d=eT( zRvU-oJr(ec!)ws16BrEF&sO1`s0Q>c=v$UPNqrnU$m&FCr1SN~=|;fAoA(ju!mq5H z)aiNP1?Oj;lh~~aGZOG=C$azY)vq-jn#GM9ZbSY-xO&0G9>m38dt1e7IIM20bu(2* zIChdUoy_D_M_6P}sAB)2Q+uTgK;Ss=?Umn>Z1GU2EmH}HdjY>+$Klu#lI5O-hBdx9 z5WRiJm`<YZhWRZ6tLQ0hg!Cv+>L%t~T2qavP0d3b-4c%N>AlddGjdg~SX~vyvxhVy z@=oEN%;LGU3K|z76jB#)ADjSX6{9@-+$@VAx6iasPWxt~diyU`kZL?%`89N2t38|C zVXJ>_q|hNE-)#4_4zXAv!ErqkRAT|uc6M@uL*2<rbFG*^K6!-wUxFj%+09ln+H9Ep z=hz9F&0Te7OMuq<|7YYR6E$oyBd0G=&@H+eh~BF5A6%39e=8>8`GPncnr<xL&`tk$ zG>D^67mZ%bc4<!?1p9O0747_4%}{V&E9amaZb1!@SNR*EDl_TTvYq_0)grCI;n+Lf z(sH5n7S!qXPV8-VAQ)*?D#p7ZJ%a+)!M*6PHQqMH-26jPnv)UN!PW$;Bl9yPU)A?6 z{e!`3f}%^*%6-q#zq2~RU527lY=<*jNchWbRnRkwjT{k`r|Lh9r$#JC?3WLz0nE*7 zT3WDK)}qw4M^sWVe+LND(C85b%E~Efn`jR{&F}F2QE5__;>k(ZV7c{jo^3}!toWT; zovU~HI)YtuYgDW?>My@id29VfDvkrb%qdxI2?sPhEV9dm)Y~?%twz=$Us#TSnfia# z)$~%9d~sCYQjAms!A$C!<okM@R(GoE$~HJ>u`Q`nGTB_`A-HC5m3Jg#OSTeo1r(L| zb<sBH2PB@evB~;g_8p!`Hhoqr6KDVZ0^{Pjg|;eK{wrskb0eX^<rU@SAO5Iip@=!) zmdT0yxPw>gNgM@TO}4gab7M5ldtYYugimFGVRF+tXR7bV=_niWTAUG?XLh2rCAKJR zEZiL&=erfImxiQ8Z<uhOW3Ig*p$y3nMcWVrZeYRkFQwmjO}q&$TFmhJVs3~OTe)aK z^T|1>-)!&nm{$r%`x!jb(}dCmZ5lHY2!^o$L6hhaA}LA_u;hL3j`|MkCgMpdjGi1V zy_<qft8qAkvbZcK$=z<6orrMKROEhG;mR&9`!;pr&$gMLFA>_stXL&daKNIY?8CdZ z(_M9;D7kFY0@uw7p}c(+aC(NUcD%CIRvKGM1LK93pf#(tfo)0VYQQ=kGK|sA#T^_4 zLzN9_1@Qzs8LvnolvabU&tUra?fh@4-55orjSKT?M^xu^l>uibinS^dx3L_8ENW!D zr<DVX6EQ<kW}E^BMYQIZW4;A$C+78#d7YyGS7VByfDZEosIs!w8r$(M7u(eOc9lw# z*q2#vW0xtCO@K0o%X?5X!Mp$aXKCIN{a)z}XMquXf$7tU%E!-V0r2L#IE7l|fvB)o zm}w;HI3VSd_*W)5^<R$INGY*nVEOf`s#n82$WP%qi!gJW`S$Hwmm_6WD33}y(gr-) zrtAb)1+CM$hQ&RAR2M@kv0z|jwhHF61gn7R&ki;Ax%7M}`>5mShJcb!PuA+{g%B6b z1*;x09C4-HxxKJ<@Q6xvq+ZW!E$9OZZtrS>M~rVJ$Wq9NG~Yy*c%2iF%k>fgI-kKT zBI~RX2l)>z>%K_VF2YB@?tba@g6#|M=Oj2l?|IP_A|1zqgVT^lQlGd!d^lwqqz#tz z8oKp67(12cyB}qMdFxMV-SXe#pl@0XlBA6oBLnim`*`b<yAdVK_lusnXLc9a9(Z^( zN$@1s!pHqv(mbj7HjcMXlxp#@v+WbUsLEY+v*yxrSRbj%-K3v7^ZxJL9n;5FvfTma ziRgEi-GdKiC+8hY4r9@Sbne-oY2Oc%Rj_b8B5Z5`I5i`pwVfN`jSUs}ASGw&4%S+l z^`O^+Az$F|yXw#}CItJD7>-m_9vT;tC9mCY$2OZl(*+~7x6b+F#S8)^*#&OWzPdEP zrh1E|l#)YUS2YcSgMn_njg6XV&Y2$WDG-7WZ*ZTq6)k2%@z0j*gDdFqxaPFe`p>z3 zNqlE<y`J*RJ@Bc<^QqkLGV(t0`EBYKfPFZGdcXbASAA)EI3D6P*V<yKy>a#Ri^u$V zU`ZXXk)a`CL|)X}-tsp{)^7cCJD@wwNnyQ|&kMQ@@MSjDSK}QkbsN#Jwy)H*R@X&U zr<o?D$tF}Wa`;<Y%Qv#jJ(8}N){FR=TVW4;^PDTl<w*8$vIYSld&Wh~NsyJAQ_Y=S z;*M%j&|1T4K6qid{0xKk^gGiimwd4^#EtLiT!o#oUbc!-hBOdFf;~PXPf1s(xiNu8 zs50J49QW_yqqS<f7K*1eYi5Ei&;~z9LQZ~?OyVZ7ZB6-3JlU9B39W?fUZsP)XkTh7 zKHZvDKj1#B<RO}&uaD*wpG%t&>X~csDlE4^kn4@xc>soq47aOduR(EPS5KK=>DvlZ zbJ=Q4TM%rM`Jh_<y7x6=Y;qUaxejzv)m%mlnNnwZxf6Z!6GjoR0BZY#)tNx$K^w}2 zdO;k^8_cPJ>q%?!YsNsy{zf(*?8@%kWTwN{v-!`it($ir{=ooJnQe!E9zzM=ice+x zj%X`r@l0<`z$#o5cZ<Fd@cRhp&-PC_wA7^0J#K;YN~{C6d8H=5s`B@F7@vD-5bJfZ zS?Nu*tm|(Sd~bnD-)A*W7L5I6@e*ryo2Ij1dQlG#f7HDP^tW;T!I%YQ{w40d6kTfB z6Z?Y^L*z1h5ieLV1lJiF9#H*l#N3u!iREJUio~Dx1A>o-C$i^lW+mw-CWPMv`E<4d z2`fn&i~QTc$kq@+CYqP4(7rBN-LA1Xo2Pmt2Or)F;NR_Ljzmi;j5+ZlZII{a2TQVZ zU@3Wc-31jtM?xL>zoYg)3*Y}Q8mddR@e3B1D~+ahys$~>(0v;o^`8|p=6B7fbQGP@ zp-o&1I`#a>EPdy}qIaY1hG4r!ot4G650k*9B>s=#{3FI`uySa2cjIM0V(6=XaDjB) z@8WfdpL1ow-4)73JtQGU?(e~j-KW>eT6C>v#G))_Bx27iqw|1S?M97Tw``^-{1-GF zw=d4nQff_C^@+4mociR1_~a?-7q=rG6SND4c|DW!ZR&QxALdj*d0qPpLIHL5GLnEb zpd?wa0oEqI7M%*Z5~p7A{amB9V7*w0;>SH}ilEPgc4*l_0(G#e03rHqM6=&-<TxIM z_mH0A`n^0c**egOyPjWfb9}~MThTiydD=Vw#4k6w0L&%l$v?gD((!OL1XO_T_pJQ5 zYt|C{rOkVWsbNJ@ND3|-1lHB17R&+^3wH_J=m<y`rp!K7^W5@V-&ZVTG%U!2oo3dr zbVy<cz4IoDEt32hP(Hf^9v)rcz>*(0Pnrm1)T_O1M;<f@sb>-)HY#;`%W~6QpUV7% zk^ps+2;Yn;`KDcHL@HXHD1UjC%`4)WV<;aM?u_efAdIudgV>819<C<q=9rjp2YtJ4 zC{bHmH*WkkaPxvB9`i>=!bhy)j3aJ3{H{T)qL59@$<EZcZ*HU9w3ND-F#qw@yk(ri z^s0{4Am2#4u+!3!HzZE=R>tft)}LZzrpQ_hrL%$>KchZ)DG`K|F_!~u@d#w6$5a!4 zT&Qsf5ww-)(L;As7bNrbU8VqFY_#;KeLRCuaNOJPe3K=Iurg&8mI6xAgflj!5V!LW z8FvWY1DuJh?#pT(JL0RPj-5|0k90}6`A_);<}1QtT+l~lTa!oAZv~M6!b1dI&?(x0 z#rGrBSa3l<&Of|bu6B}~J6rdYY;uW+ipvz%{t!@OsE&g`@FTbpH%mL#kxaDd!F00# zk)iO%=^AF|tbo<1c;~j?sJ|LdUU=-pdNxdrk0Y(R`*WnVvEjswQBC=Cx+3*gs~jTu zGU%LmA%V7?!b?hT2h<>8+{r=hC&7(E<C8B%`aUa5Zh@98UxkY9_m4_5KS??joH{kU z#K^7(^p<o>!jP59$<h@gXtv{kvR!m&D8;I($cvp>nT%!#Ty!Pn@goN&H~egsaiL!n zjv`I^0$K7L8eC38ir*iJuw7*x4L@3jN=Exc<Y8Zx=+}yk8B|WTJnJp9*AZze&W+%B zEb}q09+r`0x7M(MM`7sI^Z?k%iT5Ma(kbv%Kkzx++&tT}wY&3loP;A_O1{8f{0~Nh zOjm&4;*9F~qJd1~af{zS4WQmuUDGX64>`T`Fgp85vOyl3ANw;TkDGWyf^h7K0)Vf+ z&*W@UxQkJhdH&Rx^X&l6mDV~%8JCU>d^FqIRP#vcmsRkVdYB#@_G21g)Z)EYx4AQE z7lTn&rHyh@2|CZ!8LDt|Ds@>;%IgQ7mshdCZ`2?yzE`i}4dPyz`1=kUX*}NK5rt+r zPdCxXT~_COZGJX?CK71ON!={Br2lN4l-i;oSllU?GV|x<5tlQ%{GgBUmAV#bH}I`B zvM{1=w?n;$ya<{V<N}`Y%(lSL6M=r#tEK>RNS&IvBWAs(>EAb0IAc$q#EDPH26o1w zIRkaEcVT}pmdf#hw10+}@Rqz}t|fIZRn2QZDQ?Eq@4Bj=ypXspj6KqT{<K2RTRf3F z{)6#M>S71ika~Jca(5pOnUS-MNX(JksfHDz-IsqGy|(|rF<;Y%mnYX<dG@IK=jRDo zd2lJjL7$uKVHHovQJN&6bM*>6;_4bu6Jqy^Cjx%WyvXmb@1-&~^*YhuI*t8If|O9- zvGQI%T95Xn8>@j`WsUstjtog1Xd(x-!(CU{P|DvGXNqw-fY!W!oki4eUj{V4vJYGQ zZLO+fAUi=W5zoDw4;BBBo0hv?_C9Ho5qS*$C39X2z>NI$H($bH*^<I;f9odRqI-DP z1zGhTRMXQ^CbyTsya4Q}zfAYj7<GE0vaeEIZSQ3ZeEJy<hE`!u+6k3>Sg|SZuW0c> zoqL4=b{u(M55b!{d@F+w^y^85;&ZgyvWCWZ#C&e%WUjwRP&sqLgmkLP%68B5K<o}L z(KZEmn>*T0!D{lfEk0K3NgH}kQ!|p`92_)JxSE!V9TfE1MMZt4?nxn+JeMg_JyPI@ zvRl=^ez`3agt(x`1u;n7Krs~>?x+fWc<8=a^+|$RDZ7VD#hUc^0@Z(SB+cb5wBEV# zQOKzwvm=Wencu3EBpkv49AZ)wR3cbSC+dvsa4vZ*629m(mqhL@z<{A=XOm1wkL+P+ z@#1}K+IN{kbu~j{+aaAD+cX2{z^L8vdZyo947+SXu^*EEV_^~m0tbIol8HjeK6^Qy zz1qR@*~<paC1-anSU=N-I{(2K{GE%<-zom^R<&yPqj#F@_@LStBcR^OKhjrwE-iB& zrQ^-&w!uIHj3GQv{r!B^-L;rPu+mrdGTn9<F6jRI*Us-8`^u3sT~yuvw2WVXkVjBv z)77&@!4q$nAB_hyRoDWZ!cr^Kz<s~ARqadTNh9}IjrHq0^A5|gfx#gU3b4?y*HlWF zv*FL=6kfd~(PYeoLf-QX-%oD)Mdz;)GPY`IP#rdN{AimBr#Uka41D!W-J;TORHuyy z(s&`fGOsroS7EO;!2Hdc;K|X+QNr@-U%!s$(|59Sw24NyB01Ju>&GoQe)O}>4#@gp zy#w`8YvN8HP8wNmI~R!Gstt5{GJe79=$XqB*_FCWmEp8{-h@F?-r~g1eEaRX<5XF5 zFs%mXsg+vkOLrm0H<>tPl`GlUQcwLc@53t#=AsBf?<GC%d#2AF(UQ7%eAwyNj<*kx zd&<-i@WYZSio4-WA(UsVL94F0j2U5-&|q$`yK-L>KMkl!r3nrMVIL;JvCV!isSJH@ z)9cYbJU^Wz;5rXsLP`-<DV9k<hc{f-0-kx?_yv%*<qeJr&<HIDV4;6{Y51?SD$4nU zJj1|%x#KjvL?PtH>zv?f*(60yNNbJb8Bi-)j~C3&mbv3o4#Ay=voP~HRj;@#!-Gu7 zc3<=!JsQVD+SiK@$J56vA^pXN=Wh{}1n}2GYQt%*J5!|)b|nrF7~^3wX71C^D<q#E z<2?&qeuJlsFD*r%L^1@OC{W}9J$Xfp;AGxBkvTS`x|Yds{?g4nydW4<U_$mZdVqo& zgFCe33$QP{=_T}}Q@E4vNuap=xV~e(V014?h&lhOFB1clSV3{<H{_-(WF@0V(9C#S zr|pBzo#AIYxbk2%(Cq4wm-2I%#Y9~Kc1r3HI1MVgYNgJJmxIU5I5mMaSpJ_`-M=zL zoaxQtwL)<`es0o#bGh!eFTV*vS24f6MI$-E+ysAL62;+&Fi>GD_WlDtVm}qIUa3s{ z)c*%#&n`M2*e9a*g5qzZ1?Q2nh8N~p=3{5|fd(NlL6l;T%7aJC56piR4f302RjCMm zSO5k+56;X1a^VqZ7&mywDZzHENX+Q2;H-#iRrMHXvB3C(2Cd@u!yh^@iOK9tCFX1u z{A>&&@dmONo;ryn;JW6NdK3NEIZpE@DpK;CC`2^geU{V1yA5jQBgU@mWlz!Sh7p36 z0(u}GSaFf!T9seX(;<J9yu5W*OW|4}?!{aBAGL2~?QdiOo<!|kYJc6WyyP9CaVLy) zAx=t<2otH>YWJ`9)=H!TIV0!qim^^jnaa{Kyzu5T)PrNaZ%PxlJ8UlgX_(RU>bm+= zI4QTz#ecZteYA?|s7h<}(;3Uwm6W1{4k^|oT&cQV|DFy8!ow>2BhFX3)-*09w!n}g z;^<7$PCiUx(vsG+t6wi-az9^dv)@-qgA&SSohgk{nyGT!5~rV~h;Nb}qv8riNXvAQ zK!bf*qdk^umI~dxvArN;ZpE1^IraQw`+dSOeXhv-HxSfug=1LS_1={X;)qIy441)J zzOX|b0KaK8y|rGd%#sJHA(k>7QpWKe8yizdbaZ@dG6N%RbL4AGy$rk?YK36~VU}LU zp?e+)Nl(*VMWsQ`yRFlo_wDme0_Pj9IZ0wQ{QbYYtyF(usHdO{ru;Yfqw;U?M;kuW z*Y_O}S!;FA;QMigoXFwiPWzDBZMPs}aQ$HO=2=Uv9y*Np&52~1j?7Uu2;k^R@P!cI zs~o1MK~OxE(}8zf)6`8i644saiCqn$cJ57)?JhpfSH~%zhK(!y8n`$td^x|_J6HPK z(Z1V}*Nc~3rU|X&jT8^EK)L(qniqMrNgNcZUAHo)s=wL;n!cQ;UnEQUn^u0yXo~5C z5cd&KY?s<~=fi`EbUBQ#q6z57ry=C>Z!(GCFS#_6Qv|SS)Vmw;%D}7frI4OhvX1Xn zsM+sQ36#XssvRfYF1WOMW@#-ze`Xd3N_e<Ck`?V8GPUwnwqCW`&XIFk?<wI=D1}=Z zZFqLz%Rr43-daLBe+JXUzxLx^^c1FSa{KhO*+&JDD-rNpYK%^N2GYh}<HNP-u*8^# zj}1~cD6HbZ*MX|YysvcrJ8nzViUw#kW2&^5egsjpIo%Vku0G=*$Wu+v^!n6u{{|c@ zUlZRfW@r6K>(<Z!(o(O2Uq7izwE3H~8}u&n5E2%M>@$eFwqNjg(}BJ01nES3Z_;jH zF9Xn6VPjqf(ZU2U)DeC9j-8vqY_dX<N}x&E$(hktQ>{Y4VnG!ypjvI@ep@06$~dOT zi{`ATqd=itag02L!y$NYRIz32s%ME=(b5&H1uPnWzxz{c8K{=*D~~}%cFg=w<(K!i zc&8maP9$kzrBBuZ-Oi-dlvG&XS%nj3;xMhaC5~Z=urX(ttjDp{8WS!M{gyT`-0$wg z&*j%H%~?^2swDg-Fl8<O)HEY3jSck(T$0m&1|=Su9dYm;-rpz@p63e`lXnZ=F_%Bw zkVt$Ks1T^utX$vh*m@ePafX)>xIh_S%cqi>0*B#drGxF=G9c5uw{!0uq2LE;19-2? z(?0;8*6jq>x6}01eQpe9#U^))Ht`&m(-w+Cl2T^H_7Tosxklym4G4w!2-XOWclGrY zyKWViXJr>7M6FrJN$pmbG9>wU?2hs!6|RpkLQkc}Hx3P3+qHcQQoq7|G<NWR;=d?_ z*b}@LAn#|b=1*6N(}I}D;4OGLXya!RkO8uE*-tXPwoTs!sqj^zupkL4wz?H|Xl|5K z7KLR6nEFv3?{H~c$zuZk$u>vcr|FvDFy`lun9tb?iG90Z<~!;vJc2qn#Qr{U{&~X% zC!A9ENFu^gU+|ZW(p`DN&Z<W36bdA&)rxZ<J8WOch_r{GIem!T#)Zp!o#m{Yu9VPV z6qnfFHnU6@)|_3G>U8kJ^I*A+xvD~M=NN(5)=E<YMhbAG?LT`C*qFe*!pbZi*O8x! z16n(Fn#YAbz|s+SYrs)x{&ZM0?QdFdw=en29yxJ+hIHca`ag8NWmH>_y6sJnQk-JN zrNsgSDDK)K!Go1xrNsgbF2yN@BBe!xI|K+?+@(k<K}(S0?ox^r=l^E!eb2r3+;QG- z87pffpVnG)&1XKpi7%~Hfk9zwzCA0X!ssxiP&cp!348$h(onZKg0Mds7w`4u^W(hr zq0eaTj`jRGYB{)i3B8RkGU&_@Wkas8P7+jN4K!MRTbZg_U_en>`x(iU99}A~wo3gI zKCYvXncObbJB8{{O*`kN+e9hD=8Qq82;nt*CJ#Gu22|t3+PtBzgdMrrP?Ww~WBigO z@$u<OKtzI8+E4PwAY#%xifJ;wRUMX=vNnz*N6)J_&xSKiAp21l*-~(ensA(W2I;FN zTM1<L;O0uvHfmrB@I0%$t-YB=V{svTWxMMou~EOl8QYBUm&+S=_TsOd?vTdMiy{@& zY2=5~No_#Rq~)(;8YG5br<2d(=BoU?1=xa-ifR{;Z58rhCU?5>g8FmI;H9@h8OT?> z=hi)ZwZLY|0-u(wP-XgE0GYQD%0{m5{P#?8uvF+?MxoP7_vfEyH&?cgZpR-zmIR4l z*$psr7q%cpYe%9YlawNEgQ@c52TN8*AGWaTG=6?5ro#5LVXF}1?Bxa=A2tqvsGc{9 z;hO^Dh_jR?VP2RXxlHi|XR8=;!%VevZN8ZJAOrFzZl97~3o6g1M>^t|nw3)w`~12W zH99?|?_ctIfn2niKfTjZ1Y>h$LeKY7Usa&c0Ysz>1}Kw3ruAM3wt%=S%H8h1GiPlK zR1=sdGku@7sFgQ!^?KfSTQ^EoFPhaHt;7sfZyq;+FlLr50Tg&LV3t)F-c}Z%-=IG1 zb>1O#wAs%3`8spKS_jl@vq9=K6bU~`9C+reOop`4;4_c-Ug`8b+F2oNL3@sIyU0{N z)g(Ppd!s|}0E<5<woHLchqtF}QAPl38y7TQ(sMPCZgS)P`nNle&8pv;u+fZNZTkO% zbDxD6Th(W{Vog^3l0nI&#~egxb6MA@*zlD>qW`Q-PVZo@zF`D{>0oZ=2aTr{kD2h( zRlXpfBzd!x;Z4;*2h|$o=hugk)e}dlI_gq!pE~mwi(59%J>IRKGbTo~yjc4X8hu41 zu^Z*I-%`Op($d77@w|o42a+z)%K>T;rjpjxqZOMQ+>$G@ajR3g<Dg(1QvXiz@*u^_ zQ`6z_vjWD+YYjAWB$h9pk-TtiM=N!JruUm>fN>k7%)yAEUn82ED5ONX{kH!n$L~h; zxW=Sy<kHFQsGs<<X*NYIe9o$(_sqDtNc;e%lmA>UtCSQs@cQi2HQhRCaMl=+!?N9< zC)M``poDt|7R9@BlGVRDHL^MVYx35&#q+ASBl5R=k9!ZysoN4%*Mx4pKx1cOzmH3; zDQcW<+Meh|ZP7+pr3|fvOsX5?-sbgO1|_^z=dW;Q|MqLK%US2m-{7BqS$A0tJ--|d zDSD2cyu1t1fzJ@$Jy`R~9TVVilEqR;vcKdzzpVkL{~R=RzX3v5r0*;1dnSF=%5Lx= z4WF&mRVNh-Dw=M_|HTOj%KH3b`osJSO2vZ8!n<%W%)*qlgH5T-LV)9B^Ywn=T@_tn zOIhdWi@Pd^#xH|G4Zr`v*(5Pol&r2x3f!+@`j}*Bcp~1<cK@$~jO7P)XTPK7&if6s zQ<5-|*%jJTTgZiY7k5D8^BOI%0kkIGNamG81+?tR(~SBV(VxEZ{_gnKfAl6Y7^wmn z+M@d&-D$TLG#0kbRDWGGk7notHq4v!#UNs357n)SunWSmcgKwkf$FMiYY>MeODvrG zE5(7KYkNgdfvv+)#PJRHuk3|v#c9}?eR*ZMojN)d46BbT&tO*c!}{G%b%GWR3w=Kf z(CP%VEGb`WsCvM+uWf}96kmIde8lv81>J7o+CpCE>t3?)qP1I@u8NaV994ScvIXM3 zoykZ7(X;fj_lkApMmd@K*PqY^l>egUSZ-eWjYpf}?M`G6XR%~^WXzf_Hwn*Jdt!I9 z*Ag2J!Ecl^ydM}OlmCFn<J>%HN;lV5fr*?=f1lK-B^=Cu<foIrC?q!C3)8sb1mK9i zSqFT}7$#(`ISmazjnJpJ@<16E|A8ADOQh{@`p`6+f?#;8jh&G^@*y6ghL5DQX|=x# zn7zARDjdy!K7pDD3hHM-v<KHFh6kq&?9^UER>ob;HcDoySyduK9MD`0_br`|zx0<K zrMY}VWCl@-gBNve91jc?)|KvHZ;?DlA5mf@8(vFe_BO_B-)4R7$t88<ei-IXCFG7h zD$^0J(t;qND)b1%TiXDX2Fo+bhOCr14W=m!AqUI1lTa?Qr}(Aiz&%23dQ#b{EJru* zUZ0wu@Fk9S<rrD=uZIMl*g+xsx@4l51>t_2Jp5qGN+o$Nr8k-c4+g5hOOEHcFm5WE z4hlI#-qMRHsIC6Brb3WhH@J?ai_fQ!A?3w3mHUPtSQr&;^u9G*hAW)ruZj=3*VBrX z5XU2WMvP_@b(SN_LuRc}C1GSrZGPCK2t1g@LPX+s*_+hC4gXS<|M!EoHeVk5zBlRZ z2V^2MzqOnCnGAt5WG#gfbg8=)NR_;QS+OZM=Q1NtjI;@v9NXk>5<LY|k_O$UG`aXl zpz-s3yuTQ;t8x@NMVOxl2x0xDKGuJ5N^aP4_i{rqv2(Yhu0p<wzedp4qtcr5qsv3+ zzwj*~H>c0DK9-V)7{gB2%#?g+<#ZW^-ZVcgtbce!Z$z$ky}ErrymH2*0q6w9wo(*m za&{Z8@JR%YG;sMsN`zzrFkU`o0)mx5!2)Lgmr{v)R4PdkG%k2cdWH+Wq33ky=7WHY zp%N3Z^Ii2F7tO-ikIEd4i4$t$;dy|e`OgvfxM7Kj0DLty$qK7DmY;h*cYoAW!E*<F zbusiT56J;DhnFv$psC0P>6E^&-teR=Z7<W5;L<WQ2%FCm!BU*p*3^t>@|&8hd5PH? zmmNfLb@=8ttOjz=gddgc$M`W3h*8Se4!`L-E5^+k{s#xxAhi&QxmKO_#1?`9$o_I# zqeNv6$}{IVi-_LGop(u*gk@_NPco>wqRUwZHucbWY_nMb$6Y2>e3(WTzZvVDni%bF z@HbhN_fYjfzxU@#ftYI(pWh_)uC#tJGo;h!jH%DuUnYuw)<6_i@C5z1UD)-zm<7k! zZLuP#gaq*OS}nIrfv%PP5t-dQA3W#I&8rNWGvZqv$u))1yHQR2R7^QbNCI2B<sVGJ z`mEuOAqA(aN3Dl+o0BA|FZm{FF$Z0Ws%ce&k|4P`4G414Pz2PTGV?hGBs2e>PnHg0 zqa?Yk87L$rF`>n%r+pTkZCQVac1x$Z30_=#a9Q$W=rLW19`GaIE}SXLy}#U%0Wztp z$&I_0cKmySA&Y@UXXZJAOHnWS=3=|8<IP@ZHuBQLae_%t5+Xj#l5VC)W4g2V?8{Vc zRA{ZYR<~j=MN~N|b2;jcuJ!j^UnL0Z$2$)|tFE&!0$fh+0?65zg6Wj71wR{{Lt=Mz z27}O^cI9i%PRa~~smm?~NT!GR$OYtxEcJ=lO5ND90%w_}L&}DAJDK(Mm5IDThcJ32 z11Pqz&e(u>M#eGS5BS~sy&Up=5uw4m=T!?AT+pOp|2pRxme;TC{a@nvYSPg=3q8e8 z(J=7hf5-vTa=E#yZZUX|_~RjJY^*M0j}c{CtyiZ%oGD?YK0Qq6#QML-b$@ik#`p^U zJW^b1A0zsWsV0B6br5)UCW5;%5d`WyA22$sq?wp|+#u-Ovyxa~o;(JH#hK@329avj z4f|=pJC2&ekD!Uk+kEV}uM~dD2}nJvy%h*lsOV%sQtKL9#c7H2UpG8q0+!8e;rRHx z$)dM$tw*eWq}#(QFoBviB$~e;jQ8R*^VQxoH7nN+wps~+%M0?9duaS{q}Zu7y;G1Y zI3MYtlX-HV#90JRnzpPvzQ8v~{89S6`T*)${YszR%=Xl=iLR{(T%57d-=zTz5P3EH zY!sqF<g2i!JBq@qqS8yYMvw;ndAuxowMt{_L(cXL@QX4)2@7of^!QdwkgMyeYsvbW z+yie-ZMM-xYkH$(wh`VXZ(3ozoso!ypb|f&rDvym+mMN1GzfI18c;wm6_EiumJWO^ zc5Hf#`?dLLU6EAi+R0$vqD-&;x!<5B(N<b+Vy&MG$5tjn;pDNtRutShOU=(o$;Hwf zFHSqMz?jjtEy~PLm4q{Upyhu3Di4&A)izOtB-;p7+F|Fd`+`(z+-nWL>GQf_=k+Ee zKPjP(*yhCF#>Jg2Z8tZAq!bk~|NVWgq+h%}2L`(*Z7A&pbZZKJH8;cd-3U`IRIO^t z6KU)bce>F9XHSif^!nrrdRYeX4fLg(5ZzvVGDg#sWL0gL(kUxRY0^tce>;6<yil;B zF-U<6(bZ6JW5HPJtAHmp*_80Nk3u)a|4uv@S62bMk9+-tvj|{l-FGN6lK=Ci<#r2K zly+Pq{`mJ1PIWAPuW?^Q+`B`0k$6#nO#gRt9;Z-U4>yHNqAT+V;9CyeEb>_v8718s z3os(SoqV8rH?&g21n&z@uoOO9GQK>>bN=zjHw(5GEgv^#iFTVg0N}BKB{Mc#=sQD7 zq?}W_y$nsAr~s+~!71f_l+&?Rj!p9ksaN-Wit%ThFL#><+L%o72yp@3cVA<k`xqB* zk@RaKVBE?xbTq}&`xB#5=K27o{Myjd<){$VH%6SK*q!40XFJ}8&#Yc1<vVc!_CiWA z#>2c@dV>tPW@&mG`tE!^%;;(9099ML$+g~|kUobn;(&&G?ssZ!yfiS_10Eh1n6%HH zSG2@Z;81<)9u<kdaU{*r<by14LA&pF3sPZuGyjWm_CF-Hv8%zgV?^fNKaMr?Wn2wR zpP<yoZ~VcPI)1X&37ILy8dyLT`^|_<1Qmiq3CKyQ)Mr&@4_q72F%Wlyo0TSQy^j4N zkIbD_l1JX25qeF!$)u6@<mo{wlzg@Cv5116ci8Vdc!KTmS{*`iZt`S{z5LS1*W3a_ z<OttLNaS?tGtTrTPw3W9LS&0qtGEBbAyK~jH5R?+C%$ujJI}xWT3CXap*o9@wdq(G z`$6QDOnO%qp|Q^GiVUACs~hE%^l9jx1I1yUOnUoY>=^}tD>4jy<VQt8_IRlB9})l` z@1hUCP~QNHv>ARcRU9Y_0uwy}BFyk%xb#>L9)$&>H7L7Zw1KacdDftT3(4gN8{5<# z3U|5pT8WL58ey9?`&dQ)b?{-ixNz7y+>4Ex-YjDtl_T0oBco|M=0rBL#!%#Gbp6gb zr@zJ@J-wYe>`nH?2qEn{+z}x_>w(p)5ule~qddm*ieSXW2bUCcZ3{Zxs>QiDv2$gr z{rp)Untd$5)f^hzGi9QkL{Oj1h0ir5-7;xIz~Q9fY*lv+XMCjGVwSKvA9~ZdQy`dw z&@mE{9W{9`w(t|$lcC*SM~e^o8anYIVxtu0tS5j^ARwNxb2cHTZtvn0JCe{F9BsH$ zr6*VRJOY~ZGCLy$!OvBkljc&?!{*I9hmc8uVtcASI1)ON8BI}WjD0ULt?)aPZ@oOO zMr#=PS=Bsq9><n)Y@95rqBeCgNc!|Qd`iTd&DpzrDzy<nY|I=gHM1@hO#-zVSbO>j zuG{5U+kmeJ{`p($Z=n&w9>!}93nJ5QujlHHw9t6T6lU>ql*WTWHo}DfMD}{(Z-c0T zAo>$%a>)&{$vfH@Au+EDLZYT*=1!0xLLv<uF7`z5*H6za%`zoEU^f#9s%V>I*0|pn z`F_u{K1rUd_~v4BZEW&_qUcqwx2|R-`yEU;t)|SX)v>F92Mc;B@-(JhrVF}44eRCS znm(R7J8MOisf+qP{q-Y$fqCik!jX%##%vw`vT^G3vBF0yDF~b~{9sG<b-s=JStY~B zLavpj5uhmn5KqBB$^ACuD6R+B@%ot+v7nfi94(JD)<MM2OezVvE<9Iy!=iC!94IQ} zr(QYl`C_}Gn44~N@2(@nXfYQ7wghKw6#EULJdo@(!3IcDfpw?GQi89!s@A;(s=n*< zR#<M{uKeR00{~i{Oo-H1;Y-W@&&v>hf1$qxxP>}rLhXWENw-PWGM7m?J-Y?uxo}oI zT{*7~dJy3Fc;$OYtP7R*+)*joEa{}Qqm=QpEKuZNp<-j9J*%x&a8UCr<+>+DVSp}D z)4hqNzIiU4tdmvXKS@+PUc<|!b+shvLq^lb8TlaL2Y4qJcP~i3dw%|Qa1lC?$}-@# zBuRR==xbWy)ZkRHUxxrA!7$fhU2U1#CRXqM#1dxcBogSvS(=E|s6jOE9N(4gK4>}y z+3o2u2RiIpR2B1e=p!lzr=2IkoO{2VVCx{^vpT!%+(h5k8gL*)pLXhnmOge^Nye;x zJks|lCuv;XxAwQE1}LU_#T&zAcrFO@M2wv~JVq}uc)A?8{Hkz(g^p4|Y7gtNxj)mU zQY=2jAGb7GVxAXg`yC7BTuB=(oT>@qyRLn<3BX-%IsC*pf^uT{<A&L#fr@=PZSb!& zac}X10sj-U%;Esm|DT{GPWLPG`TqHy(TQ4TQyuj_#TVA8#S>fHIj>Vu$+Np9l=EO{ z;&6T4kiSh2fCyFu>MspP@)_XFMMqU}8&`2VrbT`Xba=PEQ(00}R_JEuP4eY;Ir6Qf zaaw_P4M<t-fxS_5W5PZK^J;Oop^Z}IaQMfZ>y(*gxg0uE-LY~L&f|{aC%LZlpT-<F zrvvoRf7Ld(pLs$XBV^om*PZ)Dtj5&re=hl*eesQZvcBnBPRaV)pCy>a`%~CW+8>80 zl+}wT5r_OCU|14WQf!B$LStgzp$)lRqh$&_)xL;Q_}b(&$^3($W?qGS_nP2ZW=jdM zRZ=yLV{Uz5CV8&4i93v>>^_r&4YMU;KzEk5pLxw+3$|DJ%sC=qgfBK^Lxy~cgY%4j z_Gy@`DNV~uu8rI4ZauB(3`2r`A&#e<NppBi$D_X+X}$NvrX(`@`u%q@_$+0Ywi<gn z%o-{Kl%dJ<pz_k)?7Vour<tDd0d=M!KBD&fp`&MN&rOOYeS{y4x1UooMz8;_%0;bz ztBcb52j|#)o^>2^QJHIW{@Zl(2EJ9gRMYnQbnyH>c$nOQ-+seoDgGq&r}{CX(W-tk z(8N1%tg5zUFI!d<7(3b+ZEpvO<aFSxdXR!_U7JP?iizx*lOani=XSj#87Q3ismv2q z%rDx`4s&A(n)H+Xcx5B?1kQ&E=<;>>N6&1t{+@(3?w$F3RmmK@^6Q3*w|b=U(-S&M z|2P~!3#~meHBSa7uL(a;Lbt{p^${RUtHEE5mMdZbzYk5{k@&luB$B^Uh!;I7S>Mh* z+652{)uhtIukW(o>REI{r$Ij^1evnsdLxV{)`E_<r)Jq&=yLRta+{uI>jbhbOCirm z)5?yz!XuoeeC4V1I<n%*aAhS`;n>$xqHj_hmhQ)W_|F$M8ft`I<!q1bg)-Ifs+b$@ zah9}5VVmBhA44UQ5u^kJE(XK+_EmpBnA80w_D`gpq^QER`7|k3^j=srr}u}F?vUlq z=x?(h`h)v-ze39~M|lM)bMNByUW)=e^<Bg~hWdXdf9_k)yFXB}V3yaxcKV1@RkX=V z-D0x+Z;p81U%UpHiaTzMrj*CX8WkqQ;vL6Sbif|!4mV@7(m1D~6+`jrx@k{2nY*<Q zDL5l(vtrqjA0+*O?Hs(*{9~u)u6Nw=w4`Coz6PtFU@{3R9>!$ao=rp&@wP1P0V#7! z{$>Lt&N#eubG#HBm*}(SQl~$;49l1~mnT`?CT5UH%5r@KwPqC#WFf1QWW`VpTocJ6 z(qYaS$ga@ulaC+zxuaUmP;<b5(cP3<Sik>73oxr1W<Dd%vP-n9i-ntazM()0O13mn z)*or0O%SC2Kbii2`GP#~A&=E|7X}iwpLwHGPE%&nMY~?DZ_Ad`veK|Jy%yv6|H$;~ z709H-gMt=*34|7ES9;`7F&V|BP^PB5C-Ru-C8jK;3Ll1Q{8;_;o>%<NO|24H_wL2{ zhuDbi!!W&<icPo2%#o86JE1YDh%9?tJ{AM{71>B5*{p647DXv?)eZ80aBK-}hxvbW zKi3|-?Di4m<lJ5bRJKd&a#T8$O06BUwm9#)V!6zA?RN$>|0S-3#uVvi-V&UI*a0So zIem@rxr{k6XItY64FJISG$+Na&+L7!Ff(5{aN|<Zh|qY_Y?MlKEDK*0^7fpFr{p^> zHR44$BEKef#bF(whgzT|Qv0+!N2RVr_>$DLPmdbv+B<@4wKqfN-dN!;x3R~GEW0r7 z1!<>v*f_fP)uwXOg`;{tF6b*s1695VCjpQa>hCt*xxtLTf#4R*KI2YFhDMXRjhn^X z`?ZG=pgw%Q*BO(&yq=&$D5R&y2tgBCgn0146zSScRxx~7@kz+EoDY%dp5iPv?~=pi zKpFW^YlJBJ@8UzKl0Laa#Hy+X!~@4BvkN0WCGplTos4NkCPJ-6k>_BqVJxJ}IKi2m zvpSQvFRSp&=GXd?x4i*IMWshXy!tlsHfLB`pf}&->%|&wuOXeSxzZ<gbDQaQz^jsZ zEobEvh!chy8}%_lB&H;8Z6!p6Baq7FjDOZ;*Yf)!PJyM@nFI3oQ&6>xh1j~3Y$NmG zkLKP35G|UbArWkysP(2%*eVmm2onBYG8xJhDlTN?EeaKaEox1JUQ{invS_6qGKFoH zcPPq>55Yl_!$If3{zLdf6<_M`d>{+XBO?90f9JUYh<f$d&#%Tm!RJ-x#P&Xm>v`HC z`30Ky>}Whp7<t_ZfCjQLnooT+a8NG{sfDAXQeOXLW9Z}+qlTa|N*sRq(2S@cgj12T zD9E-6I+<Ka|M?n?`eZ)ILPJjU%ixTWD-EQUd}$8b$$1%ij-+e^<86kGXxfw52-0ya zmS}@M`X2GZbX)ZksZ44m>A|G~#ovp0wj2gNMh_1+JH`!28m$1bZkVbaNrF+kh~Y_l zi!{AR&(EinN^D=K+_TQ_ZEvw*3H+&+-JIcZV2^Sz^L_~4ZuT4C>DXobt0#)P1=@0} z)_<g?MJm?+{0OGU)=;qv#8e}@&msGnEmPf3686D_370cGE>sC;9f+BoTe%g`&CEn) z`J%5;#30W%+u<-yWQ!KU+1N<6WcebR=4V{Vv3wq%7lqcNR(ZX-x<H&__=E?trOfKj z;TFvHO6j!_ZHUIHe!GU0ed_A#fmM&_;$+~}_r(rAa+CQ=Jrk(S))tpthBw6HzIeh~ z$=i-YSIQj50nd|({9xW}vf_lEW)X3Qh|`_q+KBUH(G2p59yS(d!uuN=WGvx+kd&nG zA{?rCO|F+O3Ir=g(miI6w^v7_4MdZ+nk-;CH2#&kWmMr=AKDpg#VUL8y$$FMcC#MI z*f1ik^l$_Dj-)46W6$ob#(eI(NR<6NI`NxLe#|3t@BHNNm$3(weBUe3Kaln}KmP|u zh$m!z)lo>$e8oH>FT&HS-C^j;PxcS?i-^4TR>kfnQs%n7Yb!~=5Fv+upULaAV*2q7 zUj-}!FM@Sfd~hl9`V2&{`8?-%a~!;|R=f~grw%6#FEB|mB34Nzj)uhcx|H*<d+F1& z)Fnb+O#xlk9CkPu9tX{1sYPgP6fFuvG$r8BFNtT85(mp{O)6=!e6h7#Ey3r3NHvFM z!3QYkXeKh@^bnJp<WfpVfii&<^mU)k+!*bDFh`{M-$EYx4-J%1|BZZj4dBxA-*4X| zNi8X>RNz9|Wx`Uqxw);}!c?_~YERJ*!3z*`Ae>wPNlei&%Gw+};X-(6Q7>ipv&=D} zQNY<f!%|#VxYt#it3KGo<4ycLyvpu^B(8l=Kj+Pu)GF34Yp6%0{wD6XHrq2}oiHu` znOOZxvrz*adFH@3)*TmaTOAI2Q#g^W<)D8KK1i(W;!tx^=CvD%@N9_o^C*l>q+0v- zv^vmFP2xr4Qn?eDhEOC_W1!W=PbK7rlVDZ4yva^hO;9WUTKm%!5u;XlVhSzy^zcvw zCkMgzi}x*-a${CMonD`tL5n9B<HdBR6EGuu`DXRs&EV<8&N>q5UigIoc2dB6F^ADo zd2&Ch_Q2(B(s;j#F1k}!rrU^XDvgZjtWa@{dO!6l?O(hOZER*gtoX}Z#-mlyJQF*V zVNN<C2Llf3Su3NEXrdN3)oZZVC#H;N(mJg|epS|o^AbZQiIbVwu%1PB^H>k=2mOSF z_9BPXoW(p|3<OMI-WD(04dL09T3FRJ{6*>`Ot<K<sD<K#80Go1#a;M>*15>Cpz0Gh zO2HD_Wo~-+JES2m8yw#fw3n&6tnytXFaLa6ZJqUia}xA!RZIJb?OV3xv^mveX_ZCi zh{9I$Mv=99c0bS^)V^j^jQ$W!{GAA{g#DL>-u?@m+PAd_O*Gd!VolJ6uTwYL1gyuJ zdg^fy^5B=D{TE$Pk{^pdFP@&=#Kp+a?4R44m5P<aP#JY(M?)_f<n`cN6E*0?8ZZe! zlS>N7ZSVRpsvcDrED%iFZ@$?a7swKt2!bw8>?YiuUawIhT>DFUnKHt2o-C>cA00MU zI+O%rn`m;4a1m>9tA9LaHV<$3qfivk47d$R1*T;8WEV(cuyl(d6N~fmTBu11k1Y*V z*>98@Uo}}rMKgBMwz}%TIX?)O&nXe$HT@lXGn`wC+on9tM0}0ZF{$q|*nRv$1{#Pi z3;tkY4-c=vPYi2JE{X`P=VutDN!nr;WKzEF*qK{OaHslV#{u4wGBW<nN#6ZtmtqWn zTjxfsqwzygVQoPWZVjvojXgRFR!8F&@=f0MC3(LwB&%JE8oFd)$8`fp(d&nzYIIw& zRE)+|D+M+lOg_Bs6sF~SbB=Pr@rzVm2q3+^XXqn9Z}!SRbsilnrL5N~he<PB=-nhd z`)*(~$58Tola>Rnp+OftD-eFs{gefJ2j_`Rp!?`nw;2s14;b)OQg}pUO>>6g#lcHj zt{~8<Us+)$@Yx5jklU^Z70Y(3+rP>xYS~PC_~RXK?A^V!(S!Hz?%qkyck(bxj#@Js zzQHWam<uZNeJw+mO0qj8=C7=u`K20#VQ(2U*T`NZk&_)vZW`+2kjBRMSf|qS*NnW{ zU`OTPwY+_t!r5o51mh%&_Q_a`7O1s%L<)D#odld%#7n@XiCrnj56As?@b2Hw&;M)W zJ95wPQR!WR+qF~76C>xKl6_7p;pIjyU!VPX`8>}c^W{`Fij=?YknC(5p$5qpnQ-Or z(;cG(!g&Bw&wAeV)pNC%Rh6WoFJ#8676VtSQV<yA+2@w<*6E%d#6zIesD}~QD43lh z*@VBm74w26`BPk9&lrY;PVHza6FvQP*HcfDH@ZBfOGq!(<5dK&NMtsY%Cvz*Uk?JA zi+lCDZp6t?JlE`wvy0+0orfRoVX*&6xglNX9f=;SYLYoa3rV0*Eqf(R=!5KT*s_H` zgvvB$f26aZ8z^d7eIbBgEMc(eKm%tlJDTZmHI78tbv*&Os2ss|ypeoz?LRjKI>7@@ z=a4VL3G<4Bc-U&pZ*x$jUOT)MzUsK(H8;Xqt@}DS$popLe+8R0O+?h6>gK-?l&A;s zfhWL5i4QsHNy1Ea{JJHFN`~t3_l+l|vKK16yZ5&Ny;Fz>euK6&S4jZv+zw{MHPsL4 zt27e(j!I)bhzf>tTv>|P;Jg3r3h-cm5$dA32`rA+&*{Zq$KS$()<3o67lGD9Ccp38 ztiZSXN`AqL&w90wHW+w0W?eQ@AkRJg*`Yc4m)vC0dj4$g(P=DMM2D9%d<~<;TZ&>b z%pJ^PRx)(F?r^tA9)K*|47m%WN&;VAU`w=l5hFfzXPpa~T@9&*ynj2oblq_aty}mG z1~tKmN>J0V-zM_mLPI{D$48_3_mfd1OprjQKz^?$bE&ODNAhQT{wDS?s=*iemO8y6 zED*Z(DrhpdmFg=Fvw!V*z%}(D;}2~tU!7ImJ{3cV71}QO9wD)&h2jhW!nSpw&d;tR z>$h{6y054|cC(;)lRtR4@ZBqUyEBZ~lSp@Qj^1TlU-+1sMc89egZ63$C@IG9Kjl$a zTMHikV3Jvg>xCA??-e`HrYa+8H|5W)VS9;veL%z=cmBK!KC!ppwhPK6=go;Gxu^ZF z%p~|iGhNYPs;iSxa`q;d6PbUjJWn-a#@&E^#e`H<eE#65UfVPN=g8efB9F<xlMO(s zgED)andJFb2b$h9%s`E$hH^fRa{tVMCKkpiTixB9TKB?oNqCdN=8ej7O9Nwx;#2G# zmb_`$=3;X0Z}S{o_MjAmDt{6W5d9yq`hQ()|7RiEj_mQ;wuzTa=wYP`V~|Qt2}$Bf z!$%8uk)rK)j`@8w5!8u^8l(SPzakC>qU~G13V+g_P_zi2IZn%ld=`$rHPrFLBFy;J z|G~k@xThwAz#@72W~}rKVNk_OeC%0HN!n8Pz~c6hVMHNzA6qAc2s`BNMg0+)d6WB_ z2ZkkP7jbum_Znr`4E)jZo~OU1u5bMZXM)<g#|As`-o7km{2d!iG-v%^KgPM+?lV)g zEHpCbnIwI!JQNWWa0`9*Sgf2nnB!;!L#yivX5PypxPRn#>%Mo~f`simFr>0p!iM}E zbQ&0oG+I}Tb^3MvhmthG6OH3UaJl-3P^^4_B*aS+aJ!^^5^h(~_;<wkTH#EjT_%LC zmD>9<b@}YB0j{=fE)#O)I$bJKr#e%t$Rk`-KFvq9>-=Uof4U>7gBUcz99h2b!esjh zj{}*^lgxc2{Y5K+uv`STx1TGRv!eih`RQlx#KC~Y^3S7I&dOOZ7pqmYt_`S0pvN3W zbbv$uNHY`thb{u?wflmqLv-KJ>kQ-|`(-(q3W<%>eVxyY;3^0_Ss;*n33u`|+V|Ai zm^0U^w1Dh$BvRpWP3;r<wkOr6Onivleuw`m>2YDi=9f;1kEXEqf@lU96C^p55Y77| zYWm>(_L!DI;4HLk2ru-NT;|!B%TV#cabCmD-}52;_~h#Sh$kv-{9ICvnWgCBbdwD2 zwp~rYR(M~1+cy%lYOGkhi;4zW^l|WH0JTvdpHyI**vSelkWMV;vwFrmEt#J#{+WC+ zf%~$SVB;%kl<EA!gQ=4Xb`&u<>MhMg%ok4p`?bm!jr}j#*gC-^t<XdfinmId!w?80 zXgE;8jpizbd?Ojz9#?+aZBRa)mzHc)_;9Xa8zs*Uy1pQpeo!%IC}I4E%ZSQzA8zQX ze?+vWJ^QP^;%!E}U*!BCSb1(`A**PUPoHCRBw)Oz$w`v*b~AsCM_#8$UhZVq=sG8* zz{ei?vLYqZ-=;N*H>j`B(J&g8hs0II8uR$o`E2`~6l)oWW7syhxQi`Z+TEQOCZ#Fz zR$Xu3Wk8DgJiG>$iib?SDj`&Q+FT8EKc9)k6rxk?w1`N&K{EP@MoeZ*8XLV-tPxEy zFH{U#zI*R0saWW4L|BSr0}(s#JftfvozLXuUU^kbr8d7c3lf?{HI+R~^@y;u+J6oE zh-NlOhnAh32+$?!CsU>xZEYKb(?p;+upMZh-T%z|gTp@aSEo_2(T!r=A`pB1{1CrO zg2x?Z;r+LcT%3C>^4j|LgY~S$ulw0<OU95DyIlbj0Y);Dk)M_t#Xpw|(QWD_y3Q;j zX$M(l8JaM};IPrWkB){ik$}{^vtw8U2NxH+h*k1CLw`d?7O`{V5!^D1<ZqEBz{kZE z=2Oyk4<<U0a_A=UELs;iL{ob{ARtWTmFRuqk4uD+V`7E#48Ety2aLy|!bmT;YX>tS z1cD<#PIjVMSGHb&dUC&^P=U~}!o)0@>cJT2;wKlDB~j47S(u-a0UAIX)If&G8Knvn zkm>H{Zx>F$m+aBk4#cnDM)iLZB}M%Bv;;w@+UGEe4#6&xi?-i9b<Wn<ouoPA`D@Kv z<hIsf@lGN{tFlIFNX7Cg0MAvo$me>ky!QM-6iV$ckcjxZ5=-QdZVSlCkm{>stdU1a ztpV>V^jSE&RPq6L9ME3*hDvN34*!teje2<4NhwUbxr8g~%4Mxr71*997k`#_%Urp{ zSua?*#?U(zp_ejQPMm|fdmfbjcLQV9XlG|(IMy8T)VA-SfC;W)X6|fJ=Tfh==VDM4 zInw?=iy$SJyOLcT_jTnuxU9*}>(Ms*N(OZ<q>F4prqsDw5V10x8$Mk;uQj9<U^qNS z*YRE#*pG5H>KlH6$armk@TMY1kd?jl*L?l;@*{CDm)vCRMnyy(#w*ttzz?R^IvLa+ zip?jPquj4@!L}t;!ib~Hs%g=iPFt0_7O7lTPWc9<I?|$wit@rGR_T8Iw4fQf0;2}h z^U{CK8PbSeV(*Cn#2F?|P+H6iorr<6tV<dn%6eoD|MkY5orGqECs#k4lGz4*WYcn7 zSeve^C&ljQ>}iHp$I-Y_i^Wnrvh=~*EJx(73gfLMtT`Eez5L|dsKEAlZd&oi9+&Y} z_ZDn%=h-J@fw-fqnAZCTC$QVrnP<SazqqHC)9Y`-cesmBuCC!n%l$8(bjn9dEBmFY zY&Xv8Fcbl3c28!L$?$wBFeIK<?T)?r@kdCJWPc|vra|?X`2FM?wv)&n+&Sds^kv3R zXQFD1RO+TqfxDrm@3BOT+g?nx328dZbXD4b)ndV1Spx#2Gh_XyS3&sQz+MM-<g`Q3 zb&Jba3w52q|KpW|ujB6A1;qIW=N%u;j;v37=r=@;oYY$L;ao(%+n>}j%vnbLhgxx{ z#ZiILVoDamn}Gc5zEdFb`*Z}5Pvt%MJ$o4G17PU+r|>Q^S8^yk@|o)&V<Cao8*i|0 z+4SBN@%(Fh^CUS38m3~}e7p?XZcWXXIIqf2VkGN<ezr#hfluYcz2jnt;nBgfM$Tc8 zl1A>y7_KApk7lm5OlDg70dx9FKs|4QbJpL1&-=`tiTa`>Tnoomw(~D&I(`?oKZaI~ z07+7^l3R-%T+B?<1?%gg{p%-tK|&|b38_Lm$|1h^D5WVo-Sy+-<CE;t&U4B49i*u+ z7v9FWeq%0KWdn8_kxQ0`p;-yX*~h=cqRljO2+tIArdLi;6JVL9M1OAqT=&z^f$Q=W z&2KJ6h8V85j&up;&xa$b>~o9G*1j&SX#gI&@~}LMm+=iPGLUEJ!jEC;(kWaBe9Bj1 z@H(egbjo=7f~KpgGi4%`ZIingvUDCH^jep?4KFV=T7Cy}$ySeEbp8<S6;6ico7|6j z73e>i2ip5x7_pKK()F=74BrcQ$GZM$itkd-YEegvk`6)mbLrSOvAMWdFoz!IjJ)nT z5iuweZ$A}@o165U_YGMJJ$W-heLS?<+xy$N!n`hGcH0&{qLft1F)!~;FxsS^UJ@-< z`MucE+ZEK*H(@;FRhkcPhSWwN8$XQxH*EBOlUm%R$>5P8v*aca`uUVfzJ7)aR7C}B zsoNoPGD-C@Q$-mvjiii^C*llcmuJAZszdIZ1!Uws4c{RWn_P%?+0S*COXk*!VmxC^ z)kx6}Oj_kcz$Hlb`+!7*R6Mi36-}<1*&K@9y{O2hzPvcofph)oRpDmt2%yZ0^PYM^ z`O@74)zDT3^;!MOk5;AOKQDWln0PemfllSVvC|?|kdP|k@&8bnha%>p;K-Z$-_Zpo zw$*2=H{S0u+_zsJBh~Hmrl<<_&u@-u^uQBkI=C+*d91gPk>kB(YFxj}OF;~%bo*%~ z54=N2oC{RO-A==d&bUP{f4nsLdlAYg#wgQcBKb<foUFbVB!LB!ks*2iUCa=QgY%Ho zv#|a`Xuq?jlJ>zE*9GZkeEwQHa~?s8ovEZ;vGDKUX0;R<dA{OeO^@e7d9iP!_>lkL z$S7Qr7bGWPgLhw<5&r9II3Mk!Q<`>eSYE|LN^<l~4hXhAR0tsnKSyJv+5Z&>+P50h zx&mPF{yQIK&M2uT;Oh*bsG(xK@6|fFMipRnoK}MZ1o3adt!DA};;k=4rz{m}IP{Qu z&!jGdc~ZWZH%QYQLc$PZXq7NJ2rb+5bt6}Kz2khkDHkh)*5GU>dHcme{{lKhhv1rB zS(*8KN?wWdx#R?~ieU{X)`b}IVZt}yW&rzkhJt~m<Q1C9dyLh0gDmA%Wc_3QBq}b1 z?!g9$eksdq3R9iZe4qT9TrV2yun90Mgs41}Ykz-C`4~SdqgF=AWVbd`Y4<7*n=D?h zfRTAXU*euEBqHr50vCK2G;SuJO!|)(^OUuNc3q7M&^6836`XdKH_!FN3ln`fIRE|N zQOZqm@-Q2e#3akistoi|Du>R*R0AZ!hhnH15grV-71#CYei0HwuWl-ffQ6w6p)yx$ zu8aY~m(LchCyrPJI%r^j1x}c#WrJX__!OAyAs=uH)Hs1$_ozv9Z(eVQv~G1e8${B0 zK=`1B#T5Iz9{H~fk`JviPQP@*KD)Y4R?1ErH_3kagK*$s33wj7=V#IiycSg|jNjz8 zPN6;{rv2O%GIZ8&YHHTtr?V2fKF0D&+9MsU3C{dZ*cvQM6<2G1t**%0vBH&-_p4jp z6F{V!u;uwDbd@|F9KE~s4Dd`ySY1CrN#FaoMrG#{FY@!%>+{kv@K4tvU8JiCH|k4% zONyO?okfcGTT~y2$c<x)2En08j0e=;QC%b6ZK!f)+$x<lt!z<LulTvWlu$mwm*||D zk&pqiYkKKdf@7}B0fQJt;1r=aDIbQ$V@Fi~uc4vDF45J!t=$|ntw)>9gt6jvJi`u4 zjH*V8ozgvqkuAX8NyDwIlA&grBIJ?n375HcYZKQwNB~7nNKC_K{dVXigX}{VKYJP} ztgM~t*tfcgQAj6v)l^rg6+@+wm{PvvBd$;)(pPJ;9&JNDT-$*B+GL@xB&(8A7@HKI zC%y__O>Td`I+D*45Yip<>6Q-HL$7D3mzJE%`FM5Q?&3l>-XJ8b+vY(B{cpUfmZWcl zZOg9fe4E&Z-LyV)oEpzJoN8>WHu9+(I~lko;7#>y;$^qTKRAW7EALX!3EzlDk8+PS zTUsej(YTfhv5{d<xTAc-o|qFGbWeUt<@5^~<Rt}&@4(;L)$f9wgF8I_+HskRKbF2^ zhOkRvLR39_x%UhCJld-KkNbLfSYh91TT1h|fMyRl8I|`SfSXr>CU?YRB;usmfmpe# zcrW%-vHqA@XuRUM9vsSeQGNMs@D^Br-Ao6~e;8jnZZBR)Jkul#nDNE^Wf&J>DF&$z z=;mp7nx}A)n*89w%-C~DRZ~>`zLv5SsskPa-Fsl-lJ7UcSzaDkSr06jvx|-7hiSDn z5k$D?O2B1*)AV6{<UMJjgMZ}-k35yf*0R^7b}v&7b8pURY+vZ*?HRer>2=w~-4lc; zo;u+XTd_vCM%~G5qqNMJHFrLPqZV#{6dLh0IQ1njOqRMUmsq8`WL(p`YY;&)v__G{ zTpa!Hn?JHohddwp?yFVR2p@W^en_T?@OdHBW>Ne5ijM20S7l$i9d}jB<Duw>;6W|0 zt8-}&I&307agvRMO=CHNOrVHyj99XMkr-k}(`t(>8eu)idc*79ht$THN{W4iq)f)I zO)#o&%r9h*6pd`sg%?NukzCJRjW#KF*9kf{4;UIRLTMzF88w){a7q;OqdZ$^0#0=f zd1N)9HpC`;+ZtXRwt-_FTG`f%Bz2}ON7oIfJkIxj^kL!C>xSGrA<E>;&NRa4H%Klh zTmA>wkNyU;`*|f5h1BY3<!`qdJH9G<w;&V6#&K%6zs(Z2Kvs#W7w_4CxqaPTV`!x4 zZrEkY2u-S(qUwW%b-EFUF}8E_O@NU8S$n%?8AO!k;!I1mhx;W+pkS`T7Wd)qZNu+r z+)#PGG0Gajbl1M6*hAd~wr_il{yzWUB)U;1?HauMP~ylaTWGcV<NkEYHTBN$O36u& zZRu&C_GO||MRBP+wPm8J7fQ&u=`e;wum)Vjp)9x7D=4+r5(fgf$TU<sa}X^s!HVZ8 z4C}YMJ%%RA1;Hc5KPxkPoB`+vpRJ}jQEF<!T{yU<z4#ahOjQ9`_J~Qz`*9veGy=?0 zu?Mz`?|!f$>Pfl;a%Sb$q><{BS`mvAHyFo^P-}Z_<#I=+L(*O1d;Fp_(I2VC3Edvx zvV?s59&c}QP@MfzL)Z8t##JlUYalULm<C4ifS}68kiX{bHX|`wl@255z{4KIn#~Tx z1QVUpYK@74oXr6jDyl%sia9?s=_A0?5;Sh`;<0(f#2jvUu}SRMW<b?1&7(Y@bLSsk z*z0M~`hibzG44!(#A_yA_PB4{F-<O`?r2tPDRO}>z~PgOY>VlNU8F>F%0{kswnPRd zIW(1~h*zeBYm3n^jR@jXN-0UjE*1i5euT;Nzb%`uuLOc5x#ZU6^3DCsCCcg1xzaal z(~y%Havm>eY7xT!?FgggAk065MGpm9dIf`f^u(ALX%fDZl8=&-V&~=-sMq<``oEq@ z|G9wzI&*N_S)N)n$N5?b?imUhytU&JGjTvBH<maH7M=VcPW2`yvTstT0FsOCA(<H% zLazZ|&*)6l(uNF0VC4MEP@gZ`LwR^5Z$lMINweSVFxT2Mmg*Ro>;v^VKuuX2>r$8A zd%^l_vaAZ75+cEzsTCy@a<UlwFVVBc`LdeXS@D~r3sVwv?(ZS`Zk}9r6Op-Eqygm+ zOT)O(29ESsr(gcdz9yXfT@bgbuC_At0cIs3&S;ulI=AbJHsYF3PfoJ_3a@SGc+%H) z_?TItbpp9<P0)uIt(JmjPKHdg#yX$7<csShVx0Z@V?GZFb2W*%6?3(<{~jXxLD;y- zv;G)ctX;?A*)!e&YV*i;9=8L{sRB@b5>yxsjU62NnBgUt_7??%6JtO6xMq^xpS_ZT zGQo)5hjEe<H7V&N5;UtyogZTo%VFXfiCHP+?Iu-VB^4v`bDRkLh|p)Doq1HR&wU_Y z_RDPECo07VhNX}ntl>JDwJYg~Jd2_L+(~1753c1?_&+!+4~bk=?01`aDs?#ppork0 zYk}}Pl)O%%ti&49u6XN_iR$mhX)xt_DFVAYj03?4jvH{)hq6u#522c-G0{DV1rI~_ zFtV-N#lq~|n;YnkHHBJsZbL1zr;8^St-hff6NB_B0e-jaT=U4v?H*}|?I_{}1izEg z!xOANLmP$;v;mBhljjIENc1e2v=0?Nye0hLgtGAH(BJ{W0?$b)VxUhCKmF`EK?ZSz zNQBqVnQQFC<HQIa{zrwAf7xcUB~W;0%iOKM_i#^rJG7>OgTKTCv>#3MEv4*Zmj0<~ z6y({Rf#%JVvy(JP6*bilDhGD&7{Ltv9?vKuqTkQr8gb(!+;ie-E>y;}->d=%ZP;q| z0RuwB*a;m!a3FVyoyV?Qf3qcwBIlKYlAQOMrkvutcIU;9nYnXo{x?1w)WOIfvxh0r z^6SpU{V|@I7TFWYlcqzp!)P+?|4}-Km_C3GymdSLPM++J7oedxVo+fT&bJWvb28Mh zz)aK{Kj5}h1-d(`Wbwk3IkdpwD0HGs=nY)Nd45XjO39lF&8q(h3fGkG!#^u?k4q*1 zzhpnxACx}@NMPXaC%vweUQiw6WD-tAk?$s^Je6ga4G=N#BYyj4HHz4FL?IpCzG-FI z@HC?cxlzK!$N9buZ)_W2mf|kR`RdB651+CBMT|vZk|!|}Bq!THX(J(LBPUcz0|H0u zyQ9A)!bJ^j1#S8+47%~UegOU|y@4y$90i0O1pA{)(Apyt{355Xp&m9m956DPgchK| zSVzv!#Pp~y0*2J0->~cbP9QNF<9gz+yLuBI+0uOVL2uIbh;9nRFpDx}2b(fCaIJjq z7TZNCusqH3%I(lia4ni9w@LUXPxOJha}=CG8MnmeNsh+oT%8lbbYVv`G7=I9rp*v6 z-HjNQPPx0#&SLltl0t+Af7O1DG4j$j)jmPkl_9t`PUg#ml}{)ru#HKE?{wHB0uC!V znSG?gEW_M1L%Z>Me0zS7cQR%vV*Tnxic5h9lx^}1A$XY+d#EMxFZi&7k*P8YT^&)) zj{Os=QuiqYN&t->YwW92Dh;olpq%?xdPD=~fzXWJbIET_CU>cq06V7#sW*zb`yruC z^B7jlmdD@IyV~fx_KukO!A*yZj+^7p?_&kWR6g{&cub+tFWbTU5i*U3@*4(wv`!tY zJ|-rPc^|X=EnA&Qf{Lo0k|(TSS{gud_UvxqkUy~@e+@#uVigPE(|PrH+`3AHw-(xM z_q#&sqR|V(@s_fPeGY>>9ZB(y?&1U?zA0rAM|QEiT|YiPC}s!%&?2=dv--IF>0|D% zq#5rL568Px{p3ymj!I`M!?$Cjzr7!t0=<C@ng%s|g8XUMA}N#9Edly@SY*)m=F5F- zSF7_4_dMIY6baTSMdI}!h;mroeqm`i%&?0;txu=3t5=;L7Wrrak$9#6J0;3U)g^|S zyGo7mvWr!{d`>_JZC46<lEYZZE#&fK*FXQ2ehJ^h_>>B()<-}v!XKtn**BEGTLz^p zA!c+}#yJAQ9q2XLpS>OX(iKxQPn43jmgzx-0}jFEeM67$rx{2TnpGS4P7Vw=Z#3C# z77t7E9MVc9sRwTsvM*GOZUCS97tPtM*2mY>Oy2xpKzk%IKtJ!wx*w|AiUNx=RPu1} z(v`|smyI=)+$DEq-1nu0TOz%ZG*q%6nnZcV&yLpFPP8@wEX!b$xTb_5llYx`$)jDR zvWtIk<ns8$euGQ;_|ghmf|!3MYG_;>?$sQ4C~jmCq*v!8c13@0>e5WlH$BKC@Twms zB+GWpU$!FuII!7K+A{o>EW5qadOv2dZE=pV%WS<jW<IP=(rxP8Fk4#gBqt-_mj`gE zfjKGsE6)BgF89eNRc5P;&BfC5&4rmt_~6x4KJQi~Py?)Piv$9IESlXown+<#HbNTB zc*o7F{%yrFLDgBB8U}*pkmiF1m6qCjC$Qa>T@mU^+60>Ys`4$}Bqrw)YIR{!j7|)n zdm>OV+#x)XnflGs!n=3^<80k4saGWGAybl@`*YqMH1gHX3f8zlG^YD{-YvEiH|ulX zL-R19{&qtJx?s95m|4ZX^KqYKX0HCHYC8i!zAG)ihh=-V|KLPaM`S{d6vhBhItyYB z(tB<cp4;GnwMqBxG%h4}HDopH=#MnE=_X%?$Dy^WpMb^EKV+iIf<T$|F)N+L2HiXS z@zh5%elp@3^w?Jzr}NOJYCWPca^j-aw5Ch?ag_H3iEhHg&%Xh+@sG-bsqdMMr9E2J z0Z{V6`Pgzzm?L%xLkR*BB66jGvUG{_cpQu88&Xq@&<+ig@fAxqu#r~jKbrZW^b%`n zO?78a;z?|i%E-PL$~i%b6=cyQG*gGB7-mrjL{U5qVjp|h`LLN|T$Ut?^^r6A1kYpZ z*ORS>$`F6Qm=8lKndw*>e|nnttOFp$(AmKwL*Kn1ej?K>P)zHCB84EQ)I6$15&744 z4Frb2pqgP>Xn~)ctqutaIRQx0+<A%6Og}Web6#g?MOzS#ONO!GP+Q1521yK7%-2?E z8?yM#rl&G$x$2FACM?t49o=>0d`{+-^)?ydMU4&ojs_I!m7j$){Ybo%J?6im-ITQn z!xR#%i<Ci?OAE&r#}}RNzcOuM8rUF?r!0aMRH?xF3(Ao6X0&CR=Dqgb97WlY(TZba zcnQU|WaY)@ec95<4EXDs=LPj}G>hd1pXKPgpr&GkAf(`e_alTxS=H_s48}6<$`;># zF_iuENvej{Slj=ZT=Npv%U+OA2>$D*vp2Ra@>0qmLX>7oA$dT7F74A<7u(zUhWTjd zDz)lvRfj+)n?QRqXJfuI81UtaE$MXFAN|(^oSt?JyQjZpRr_3?UG^l<sVgRg77=os zT4>Bja<&^p+hFIno>GF`5vZ*%3L~Ft3@u_U#P&fkQ!0O!3rbBci;g2s>#BWv<gx;{ z*c9&@1sVQHzuDZTYl8(`KP&g{5D$h4#k`&HBacAPimXxXn}3<Sxos%%!C|V4jitZ3 z_XSDIO}&)w++AmTvtuSO>>yIVu5R5ar8ie!Xk3r=1eiirELVTt8s<J45>={_@l_Zs zbZI#kI+^#?FIsTU6gnCfK0g2dD0|DWHoCTJ7;CWtEm|m2oB+Yyr7aMwB)AqQP+W>b zTckjXyGw#gakpZ{B?O8VcX#ibUiWi7$Nj#4zT^8vW@aCg0cP)6v(9y{RgjSwyZ9rb z^k!3p2@ZcJHDX004+Qj)Vt`}eBx_iY1t+`|P)da2n?A6maq%bU)RFG?Po=xOyc@yD z`!66Bi<0pIWg4jj{S-0YD(uq^u?>tA&ru(tsjQ51%EofT;y-Bg3}9LlwVxa>F;AIr zk~hNEK3a~!_Xpo(y-M65RR-nYa!VAD%b?tNb3swvu}VS1YxzLjzSRExr}13sy7(^j zrTPKybtvp7*`q`y#vaW;l~|3z{FByZigfSw0Vw;9VYluX@`$oT8nb$CM`cN=u%b|m z7b-n~i{8~aW<@l=_UATfhSL<)8-LIcI;{@2^<j@wXSnARgxTB{p2cStjOVk^5LZ>Z z3Wk@sk`Pqo)e?%KQaOO#f!ZlnpTY=WILXN>D(WnzXY_`^ys(ud&A15e7fQQ#i(i!I zpt%M4<hv;v`e7Q^$%H4daEmAJI<#Og=TDIJb#x5}8T8nwVf4WXQ(!z?>MfohfWx!I z(HsGLWK`@87GuG%Op(cA!%dvU-FwMtH>@&w-h{}Jm~k2ascC|vTd)B1PlD;96ynjY zvx1Bz^%BJzrk}Qh9#95W;LV=5gpQ|U)S*Pv=)c%#$EZ7AiZ$@PWGWzue#eF=b4L{` z?cdZ{my2s%v+F*#FL;q0k0*lXTpJ8$T?5HTGm_`qvm+@&?c}w}#A08dOyh(3U_n9c z>V^KQ-6fU1-fV6MeDngNuU<PNKh#UB`B7SVC0H*lh0kiYFmFuEwnc<VgR>J@ph2;U zjE8}-E;@_s*zL)IOCalP#a%Q$3-_1)o`mo~!pE*Bfd`9_`HO2A-=!O~R0?p_)z$af z6HrG1!e)9gRhVVpL5X<3QMUw<|664s3q&O7Aj~SL{9bIU^S#h4X?8yd^XJchD&qey z(S?3l*kr?4gT;*C@sILED|qT3HH}VL1Z;J_=uoZdRFB8{VZdaD!2otWdHQTl-LZn_ z8HSRy^$!f=JoQ&+d9f9Nu!c_wOp(cfpY4k_)?1a<p5_yA76uBx`_PTm>Y<_K4Qoj< zHsBy^B6RY{q>1W7WhOt;tNU!z*CAt&*slE0CZ+NRtt>*l1W%!iBX5Ac`BQx1yFmX2 z9Ks2JdU~s>slrM=<aP{*Cut3Gn_bq>a_P%gP57`mz^r%MZJ?!rG!htnO*Znv?H$eJ zE`xSv<;;NYxh2tdT4&fX$3YZfJV{qs1!tQ(?SA7r#aaN)Muy@;Odo01FoBDw(@q(6 zyQRWOfe9Cr`IgXGO)BD??x%yaziF{J75l+n3FM0&&m(EbmLoGG_OuNl5OlrH4I^qo zIjP&OmK3F~7^j0?GyEzxuR@CK<@<MpI$tLH57X6rJ~}mm5$@DQf+VtdL1nI5f6%_# zS6(mMil>(B`HMMHI&S2DHXQo6U^*j6^qu)6KtMpj)v!;*C6dwpjo)lpksGLF$p6W3 z6E><^`1bAyg^X!pW>*vxc~s>#FZ{*BVNL5_ZfS6Nj&{_;Ksn0OG<0Pml&~EwDpT7V zfR!H}>j5tndt}(O%DGN*0~<t<aBzw_G45Ar&}+DGP?u|L<U_5%Y<rF_FK!D129Y^h zVCSWEh)&4Dt-I!7$!^!C{H|6LQg-{M$E*x?=9N-(U65$#ewpE-`+s-Wn-jPlVISGA zFwO*oKG4nvs9#7+Bc;(T7HhB5QT{IhmFWrR=`L~g8SP04dvim^OMU-fOVWV9&~p9{ z+MLJ}^gB!S;H0YuXY_|~n}Au*CjsS|LBjYH*j0bfAPUq}AE7Q@4|8{7^)Lr+gHi6d zpXU(ObH9cU9tR%xTYcQ7izrR=Rj>3dTl+8d`<uX?o9Qiu;~cpr__~PODxLB{F+<Uo zAyV!<x^RpoEp>4TqL`Fmn;l&9l<KWpO9B}Xx*iw^56(heMY!YDgA>Y-CEPA+))P1N zFpp?;^~alx#|;5(ZX35&-Zf8p;8w<f4Q0Ul65os2Js7NtSRN=)H5ZJG9eE3@)0|&4 zB@Y9as^eyXs#UrA#aH^r=)lF0MZ*4Je=^+>mnm_Ya#aB9{$q;Rv0<I}_4$`p`efqe z)o%(VnUxA8MFo0TG792Om7)0qlZlpa@aid7bS#Q7Fo@*9mD9{c5Bd(eIyh^izVTN0 z+xK~{ZE~xGKIuHZ?G*?X2>tQ|<)H8f4R0s_`jRIBu}yrnv%NnK`F`lnzC#LHAkRJv zHv6VMG3Re=D+f(TTuAaN0OZ(<1;Z7=q!_WVXc-0!nHx~1V2?o*m1MxZ;atG%7UA|; zqVN0YNPSO4$CW=9uzml-0LF{V*wAkVg~|@jIq|UAn5)KmG567{40M3>Hu+Wibh1m* z2WJSkZoVqB>SPhbgMgr}Kv#Emmjgnq+7w?Vsst><M~h8hS_<q)haC5m8yfitDTA$w zP6P(Db%3vO_;&dsd=DO*LY@0a>pe=|G3$a{YnaM@WS`S@Huoxb?Sjt0a}!)V<wf|9 z)n=mO;QZVGYqg<M;vmso{(gaN9paTN4MGuGC2+d)eDG#+cFmofBnORt`(~j~LCEVE zN!VE`ez@lFva2Gbn9O$20R)1BdsR`QbXe-EA9SLGQuV}?0L_LCf$!baZZ{eaEQVfA z>-s488i%+g|J|rb)yOKa67x1LtLW!G*s!4CZ0M|a#@Z#*)&K_*rVdaBitIXIr@y5z z{$j_x+jUSpUK^oql%T2~##g|M5a*<^oGin$?@d?gWHYeS$5jFaY5>5R7$H;2!r!8Y zQPlS?<o8#P<f}fy`-WQAMiuG@?b0VE+U4`CE$Tl!FAh8R>F|A3pu#j%Anrk&FtJwA zy4i-Z>rlCTXdF8>jz-6ZKx;9u1q~nV3^cZCbMr7XD{54maO~8eMO)(@_E3q^tyP(s zNlDjSIM|tOv~U^=jFw2UNW=PcxA()sQukfDRJyp7fw{4=*p6~UhrPB(+~n`_Xw4i> z19~XrQgiE>i_WgynP&j)*27gHC$EYJre-HGTD$4T>MmmrlVb6jnCP+`xs+eM5pYXW zZ!U;Gx>z^^&W@_OittZy(>}C0_suw{3PdrSuc71!sKAefE1N%PBynBgpRfF&x6%-I z`2=@c?6RLO1x$@)Q5ta3p+qawcCAFz)RSzF6Xlhxe9eVJ&^g^4QrOeVZ8oRIrgfn7 zk(D$5wrb|y{deLdN>VU_oo@UkVo|f)Q(vrnPHirKmV7>;S}{o(d;;Ev!Wh4!nQ`!Y zHH|-eX8DGm33Kfw&`;6Iws@amKFKQgnIKp`N>y<f9$%H%4hY44%K-`pe+pVF`Jhqn zrY|;7>sqxA_6Q`IdmdgIQsdhs<F<ac#QPAcTnlO7=BSnBAh~218&%IuG?2#%(42^x zqo@da#XH_>rAJ0wwQV9E{p}B0-7G(;MfJJ~0)MJmM@!<JVWs_!pKMC2;KU7cy^)JM zjJbXz!w_l2@eXdwZin2d+F~}v+n^t>fuY2Q`DY>`Wy@6a2m<+~lX}hATszgy4_r&I zatGN&!^XmWCFQy>C9l%MWDiyQks(U0cksq~8XHdB+%X?pU0m@n%w=>zmX7B-qb-kY zWrN;v90V2#bb$C`qTh+6zRzi)O}V;z#{zZv2>gsLMMcvQxR-d00w8EK*_?RzQOK*n ziV-Y-xs*5YiSogW=RE*q*~`oQLDt=fQ9SxckrmLDvu8Np%d$PM4tJtE6|7g1St2<7 z+TLGq0@tiClL;x#-T`kXPP6q+KHk*)h=`=-W&eS<;AK(^!Umg}v1kas0`BTj)VgHv z54#X)#5;daVMhrV0f((U{=e?9WsiCJZI*GqL3*`1ISxI-OLxU>$Lz{Z>;#}*u*_}0 z=+b-C2%O}w4S0#1KtpV!fts<FLSrm-+-2S~v7I;J;5aH=i(s-!UR|42y4dm|nE9Ry zt6|<Nz^OjPdqSl5QRg4DRNRV-pLTJtm}tj}pXve)1=j+8_kYf6b*5SyCk!9~$jkwK zwP&wymQ8N%x_2+AB+E-CsAeDQA@z6Oh?^Nkjm*C(+=FIr>$p|zyw7OrG?IQ&$?<?7 zLBR^^rWE6ZHn&+#!#`*tu7Y8rAFwMxqkLm;9Yxrc>;auLH+S^pCBZRbMXMhoq*5)_ z<Y1XpT1=>w)-wsiw|Y<N4_YP%ujPuvQQiN=y#KFe0sZ2`vUAy#`-?8tP>{tw;R;9M zSla6XYO9%aXFRY?RbYG(@M#Vr2kVpAmlh2^R3hX^Rxze}|7DTR%bR^Y)GPXYPOds} z+_?<&*CC?`ol&)j^liL=re}O}ZAGfbPMsjPA-i<t9ZedFWHt{C)mQ<CXZRzS-25G2 z{WM*Zdhx4=4pi)d69*!}6Qt)JTkC(&5|x^=CX&CA(K2&wuh6|#K(wzx9(1duRRnZ? z9kU&*In(F-6cLM2rV~_!`R}QP-_kPEjFWU{27QbxCJnfgq-!T2yO02hXB9)_ly-{+ z9PcFCe}5VOCrzEoGiFRvB?lJ?dbvR?O!fKQ6AbV4C6CjPf6lUi=ynKVwp2#yQ%XP6 zu)B{(edDyk2WQl|X|ulB(p|6pzGbtis9e!lP|0(C)HT3m`?>0-Oirb1`H@etBD&0z zCl;#*5vpW!u?$Vz!=B)C+Kw{eA(*jSfBYY`G3%!lV`iyV6iAg~rBblYnXSvF^qIxO z-D_A2BW{YB3<-|t{^1vvgQd^EI{qy&FDuIRl1KYjqN5LJ0TD@nA+|eZ`O6$HAfBIg zN0r^TL_6}DuLDGTv`Kh$ZYo+lr3jTm5(yC-i-CyG%3H%gqj@vg8n*jvD`0us*3s5p zVB3qD-`NS?jqKRtDj7XOKj~gRU3z{k-(7gL?It0i@m!X)WMeB)^ruDxi*esMvQXYI zm9aUhyLP32D6(~aFKRXfHYttdQ4#F3u*qCT*qg`ALYtO(uGOy!)GSR+bfLfpGy3Ap z-qhQWxfPJfd4_Ub2CeL%{oegUjr1$-&|h^-?k<Ka`mc?c_fx<0?awFdUWyXUWYsud zLAu@Q^)k5XjWF98*4zs3Wd_mz!r-Ke%BwMCk$hc%TrrXPh@4k2=0!t|ysG4|mIq<& z!hV4N8R3@QhH<RU&CF+lXY<pNQGG`in3C{I4$8y3k3)UuRfRSesrP{^ViO8VY5Lpm zBbW56OZv`%&u!wbq7O2e+)k@&c4I1{#3nOk=xkG;9_>hgG)THb;-B0M+nO2B+}pnH zt-RO$XTMP&u{XK2$>a^c^g3cc?=1O0_XA}neGQ-ad4^v7^yUGQN;<pyKl?S}k!Ac@ zeMKgkebsYGLJ8IfA*s!*T9U}e4!dUW9`PC_=t_ngJtL1_d=_V%%e{rPL`@VB0}#+6 zj)#1i?gKWtISKG5k3IS>I2vO7^eX4VWG8X?RP~(X7ph0b%%4Wzg)G4Ow9)rKp{#C` zBW1wOW8PssPjr^2CMh^jg0qEn)R9n)R(c{N_>Ky7nmq{)UpCY(LfR-~-Wm7O_nM?o z(`D6VaQWg3Un#m01)G4*cSb=D?Qa}Arp}v+KYTO!2y*3jxBZN$R+(@NKMN|RcDJ-u z=BujSujCwKr{}B*5(-*o1A)=dqe}mvz4_2dn^!{dx&*vbkOFu)SyJ`nn_?q2kOTB_ zhn-%5UFksGAqE=thFLKM$rJnkj~q`hS|SSH{1ingMSMBe9;s|T=j{q^pv|Arhbw|4 z<*I98Ewjc@F5rM~zfB3>;i?OK!wWyzK0!jB!0AITOQDl>F<bk4;Z~P4;mVT8`DD*r z;}Wh|MWvUt28Hvva~;H=a(Q6D-s#C1aRdG;ekm@B=UMuhadZ>ru(ONqA$1PBy{~n@ z20e9KSS0nEx>2cknU&Ksyd<=%P`^2=V=}nML)CUmhj)?_!XQ0CZDVQ`p!1sV5TLB+ zRqJ5i9ZVA;H=zchvmRJk+J92}{K~KxrSOfPy)%!$$Rvu`aH_2Hw{2+?E>oGiTe(=4 zSZ#4O%VcXXsjIb3ZRXmxTm?E=z5cBQmFTv1*bH>De-sTqQTnOY!_kJmVGm3TO)coE zNHCNhjdBREE2{QLWYMl5j&wtHAac=M`*=xsuNZ`;RuHBJ^V>9=I8>^UxIRG?ZzZi! zW`Zs_i*n)QqnhasZ-0aut`WuUQwJMJ)7rEZu0q#+e8i-xtE<oUpR|}6sLXOx?*}+) zi$(fm%Xrgm{kqcD^i}da&0iEoHmYY$_`NJtoOY*4{d}^cD%(Rbt(xy$GAzcDnv$IG z)(=nS{XjKe?5+ba`uokE{zOnh=@OGg9QxOqMU&&WVl7p}WY-i%b$s~SXr&HZll2U= zvw=hm7l|~w=lwc)YKdZg?B)IA-~I}4fFUVlMi3ACS;L7(eCdg)sV;T|B8J-QSOOH2 z-wFpN<IcXvopl>rYHfly7#W{wWq=e9(I5LA>cn`PUwi|YII&=r`cuN=-7?i`wg-w& z`N<d&&(A|OFQjsY`erC9rXWN}i|4tA(cB>M2d*|$3~ox+y)LZ72J7)Jr?6GO6`xMs zg7LGg@YHj)xq@54c)jV8Pqiw<e0l_md||Bzipq)oP^DPIrf>|jx4^o$v<Xi2+vzE< zC)f<loy;^zQ$9K^=tE6zBxy9;OTY!8*YbA1r5~Q}1egtBmrCG!{_ym;3e;fxvV0gO zhM6R24rEk!pq$#CCV{ZUt04ApvE!*z*6QGn-Ub<5%3OQyrnOIB=*I7(D-<NYqZh-B ze7`$(_l`Z*K4caRO{zi!XAB2@d$Pm4l~}Q8s{FR0g<|*eMWGFvUpHS6Z@u)mKptY1 zq9R_NhT6)~w>3GBL2JSleT-OKM!_N(H?evGgFgU=u-et7ig++RBUxTm2xUs*EW`ZL zEA|~{W0_1Nw^nf)yk@zd3GP0#5&v9$xaN%O?hCy%|15VtV`^%?7d!b#$^;vUU704W z2VBd|bm!|%y=c^IK|k(;8yW*kQ6_G<8Cg;?_5gboQStdcI%Og+I#1$}SclW@%P+X1 zVQ+o2nHJ-B{C?rQF~pq346Z!r0I4b$P-0*#wr;Uk=+{#5@sRPd)OC)C#b=2mr>Tzf zdRF)RK~wfI6qriu&`vyRHE0KPX;=#aBJz$jlJMhHCuZVGK#f96G5~11Zi>7j2VkR! z>*Vsph%L3uA1D7}<@)^JwB~<R0RQOeUOuIBlp=jXKZ?&q^#MkAg{Iev^9QZa#fkE) zUzzR*mCjZ8l-fI}=#YK-9OF?o>9&juGu1=3OwHpgHlG0j{~Dsjk2X$F&C^AttX(;Z zczqhlFvZh+lnaNh`k~xOntXkw&FaJJ!9Qqvf4B9C%)!##jRCuisHgtxoX$Kj?t^9J zy$$LJ=BvESkR<NEpVMU6+)x%b48I;~=>Lw&8E@~dlP<$CR+dwW(4KS25vU!5D;baF z^;0s^<T|p|7;)%MsPZ&CP2BY$V1WYm=%VG?6~n@dBlE+pb7Msu#x@eE;}Ia0Mr@J9 zIC-xJ*sI-&CJ8ZddhSpHA#7shGSEvua#%TKU369vn-e+_ab6cJVfkP>)>oXv-Ef&v zI?iZVq<y47>FG4f7dO{e2SP?HG3CN4)d7|EphO=!;7AqR-_tho=eXno{Hz%Qn_uj0 znWDk0vSzX*=RaqTKSOzlvZ`tzyXp#_5g(8+7Ee;3((Hf*cwcVDd19_}yu}%im(OEX zKw872hU6_P3VV{Nr|2e}r#ewh6kXCb8)o(0pSjrve+hN{Ji%))R+ziL;Hjk<T=8&s zI9Pc`h^4Zv_2lz>wNpcYN|Whdlu_L>1>dO^mF4#)(Fl-4suc~2NFPVM5<o~oipzg0 z=yMBs4{s5SecZ@Ci|PBtf*X>2fHLU+gBInkTt8a8Z9mSnsK~{THG+1BV^bK_L?u}` zz2{D?sHgaFZ&0snBHal%Cu-r72?<jV!x?g>%r7rxMk3cc@8gFbL%&P44u6&JDm(_f z_W9CEmgt%wSm-vTDGt95oT1azX7~^EU8Yvt;v4zhyU<2<tEHuneX#H!q?=dUP54Dh zn7_D&EQ&8R&HC)QO+}Ua_<|^RsW(J0N@r4^uX^tK-EWgo0znT!!~$4#721H2*2t95 zU@2||c9H6O231|AYz_%J+;#VIJr`pDGB3|-7h%`_FZ|d`E#vjXDg5p_N5p!$4CThj ztmOWBIvy3djMccwKbM-dlWo-LVkFPpO;;o128JHEf%SBz&_8w(fCbFTO5zgwPk{L> zCy|6984j@uMM`V#jER}iEr~(c`?qf_Mg7y5ax&Ke!E3ebzKba+Yk=<kJSDfxxnD|Q zNU*>}fn@d#E+6POg2UY+J+|0Kp<;o+{qjxt-`mlcj%Z>c;=TDpK0o4KMXl*Jm2EGi zoL0m~T{i#XMxu9y{Ef7L;Pm{s9OalQy27qU53tl@{k@u0sYgiDcy1^phw5d_wWvky z=a_-QqUSf?P0Ooa6Gn^;Q)A8-tJmTFTsMT^_8~(bGq_LL<PdnX!T<xWr;Xl7#CWQG z^&5R<S8^|#8~<qgaikER<LyUARMErhF5tp5L(Aj#S$^b>L$pC%PgXZsmuhVZ0x~pW zP^DHlg3L(M1sf%gknT)oOP-yLFxaM~GOP=QZw&Q6Pto>ow;}xItemGqM3gSOy)U&> z?NIC$S3Xv3!`v8hLYnZ1DY#~bJYHmOxQI(&)yBD&*#;Eo+vzPY6(xvV&U06D*7(uN zkfT3_hm@tiAgvu5)^%0qWF~f1*5L4XZTI$7%WVH!a2(f71UxCfYxID&VR$7V`1LTW ztYCP7Y*IS@d8$WmK5VM?<WhVGf#V##{iH6_MuFef<6u@%k~3s_)_@Ns4mDHdl@w8N zTZOim1Uc8<h&J9wRSUt}K|jLt#g4;ve;h;WDVKfREx(B$e_7Q>HWZ&L?_4FcSlCUB zRBGf;LHGF*!MiT|B5TF)*xx1GNu1Hq7%6!A^AKhI$-K#q#o@}}FwGU6a`sJ<XVm-D zKs(jE1)t%3%fTUs#NM8+e4edwfs^EvOr1>O)|J!4+T7!(eRr15MFGy=Tr~0z#0=b; z1REJFx7>n;ynm!X!W=Vq76D4mY5<tq4{&@A8mstJD?vpa??oFkzoCArd64U--SExg z@7=E>4?llhy<j9P%yra)cx4(^*q|oxz0;R2-k<J2iK;6wMhOdAc<)3@_t6`R<n+%= z9U5!dLN8aEMdo~G0z6DF0%G)R^_6|_2qbrWm!b=_qJL$0HM0vCXf)f-eISeY^iC1s zaVe`a;Yx=E1DH(oY()&OgEq!(3_T<Z)GGHyUuY*zO<Al@{JM(82K%%8rJp8yatCTq zt%}%q;$W>$PU1NDI?7a<2r`2h7p}q71g&XN2#Mu1n%avO-)osELBw(-^)^yR3r#>B zOXxw<O3735#fo{3nzN>M=NhL*cIAVDd~Z0`#c2eDqL^NPV{#}D>fVMdDsVHf4<-&{ zcU8$QX+$~1WmPd0wL+MAZMC+7v!42MnjAws6aS!XqI(5w_x~ga_$z685!W#q^&#vM z4dLRpAiTno<1y>v!Z)D`eSoV->*dvQ0J(OFOO<mR;Mb3534^heT7GEiS#n`N{q+jF zbe{aidS2A%l=Rj-(x0jvpVn&~!py=oNNXt=uAgD7Aue`S(o&QHutL^OR`q9j<|wPT z)ggw7bVOv1S(o^u#0*=eaj7+DF4N~GH#espl_o!vr9ic<u&SflRgwutlm%$O#N@kd zpwDFhCU`g5W9L8_Wo?!?Mo>z+Mh7&wgmvu+JxRZX6M~&2?`*cM=aH87zO1D+Q%Wf5 z<+fhLiub_sP09MCb*YA1^H=Ku%<QDTcr5MNZY(!eo51joAJNTs_yX{_2WZoWv(_j> zjI+`euAD4YgR<}HMQ~|7BM?7QP<2G)(^mL;a=azq$q*bz@dr325KALwMrl+7oj~z1 zW&xAT2M}7|LA>ufJcZ;y*rKpjk?AZdy!ILuUaQYco_Tg}R;iu-s-`rkgpEt=cBDb> zZ{B+%9OaD$V2Z|i4BKswvi_Vz<Ue>Pag6z$o%Yw}O~I1D>a;X>!r;Q_1;49tS*DrC zX`L%iYg(h-ER|OYZHi+^2CO7834X(0Qtx)pKdo0^AQ^#bgP2-$^h|P1-&;;eO!QKc zU2FuO+8Aqg>Z0;XGHblwH=P>QCdV(Y2F|^iDr52ENG&u@N=JHY^&3UtL5WX>AXA}u zgCN4B_~>|`M3pvaVArW}Y*JJo4TVI)x6XUiH<W2uuvizz`;krv+r>d*QSNP{DYm|v ziF5WqB}D^S*g?vVfqq9DbD(P5Jz(FojkWgicCK?7w={SiH_XRuqS2-b@M}U}oePxS zMLe|5_Q<df(fV3hTN}<6gkLe9b9~v#l^VS4bL1zfQ>Jabm{E+hO|7sWQW;ehs}<Qj z6l=<XL;`KW@wLQoz^hoLzy<;Jah~H0q+PD<N1yFSS@{#OljkZd&ECIHxCh#n^og0H zQ{@V>2n&JAk5rjk%eXo4*g#z@C1dr+ib{;f=h?=G0f!KS2SkS@0m&Id?aETkV&)1f zDuWGK79KvAP@v~wf%MmM$*Cc2Y79%--j#=2P9}b4R|GxHUgltvF<KpS#9F;7l>P<T zj5@Z(EcU|&j*z30IQ@RPNr$QZLA!THr>v08Zv1+cy~-$khx-Su{Vh%079ZJ@KWJnm zxBqNEzcg&cSp=}*z)M0hMFbx9H(l@RxYNA77tU2&t|g+h1i5t=l0G=B?fv@dDxC4L z;%0X%;;I*l2T;>ZwES4Kl50X@5;%<jKMVo)=0-0Dn1o%0IUHHjBEgq?1HvKM$Eein z6=3Jbvf*Q3C;Z+XTsEqGF^t%wU}Xb8R1Tmn1!(D2r959h>$u>#jC6^leuTzD`ah@{ z2bJ-*S3kZo)m&oILLm~+Rzc+_rSBj&>M>{8WUef4rTtBkUok-sUw>2(d;$diz)^Bm zMtSkd5x>a#U%vA12j=xJ{1qS9AU7`~i@q@ZU4Kxg{trZ_CZ#vRL%-?9R)@sn%`+Q} z_PzUPAq*fb(A3@+3?`XRRQQXiX((iKIZfSCT%-qHakJID6t|u|OmCG<(6~wrQeCT| zmo(MmCvMB*wS~-Eq$kcNfI>H)B3V*3`-cg~XU>8~pb5`9GCMV=P_BrqMn>bgnf(eP zPGi;qh7%mVtCa%zRnn7PMt<YV<1=GNGdU^qQz;sA(&R7$rMn-j-4%_f{p32K3$*ca zb5=dE=<hy<1aA44k5la&*ubAS9l}lHI8$H!dY>NBqyLVXbxru}mcf0})2%^50$RXJ z^q4)T_f{lzZ)!yf>s0KE9g4SezR5U4pt?2aHGgeR*v(ZN@E`Z_w+K$!z{ieO^ViX- z2YxrX#5w?43U=-a)Gz7F^Sa;zo*sy?%TmhXW4#-YFw>&e`2(a>0u)7<q&_*9znbmc zgxz82>WNCqiautS5HoxzAP}FcpW3}T86FgUm?0vDdAem4b*Xj!Osj~BZnWk_g~-yc zXl4;6VTKZj(H$cLc7!=M)$c6+o-^LLYbuQlpsuWGyeQ2^SE|Cvd8ei`dAI!cN;;ND z74e?V)umDsq!*;_#4F6IJH`v5e&J@(uKcepnnvGY6peb?+ivL(Hg>4L-q@Ci-B|k! z^c#)tew%D{)HyHJ?t!P9hYM==Th}XCw#B8?fL+D(0qTD+N*Fn^z1$}oi$?X@@twzm zmLLiuqOc%}2>rSkXp^Sk>a8cQv>&7Dc$rh)wmq(3S)Rs)KpZgI;MW4LZC$lqcz6|z zv;CCQhBb3)L`%JPwi_B3)*e@Nw$l0fKIl<a#Vlr?A$SYf)wTK5+ef{rbgnqlVz-7p z71zPEC74-OiT-cZlu+o@R{5LAEVaFoK5;f3ld;GHHr3!VeraJbc%jfppW9uNJc97f zJ=)N82rz1?*$Bn4^}+##YhxIs+SiJWDar3ChkQZZ=(H8y04Y-UHhz(x39IIB;h18s zIUlfKcg+xR^_PqD-lz32-6X%<IrGVkS1r3sWfoQ%@T$6vNf`Fz_FK>gwm`I9^sl8( z?(#at`d?5>h)VWB{<!Oz_CWyG*3~&W9WeZ=SLqB|jS?7ru-NMT8CPy7AZ{z`E_SbP ztY%c1(8{wV2bQwvHRPl=^gdfg@Jsb_8ouYm6ExF$Mmt5*diAjUFzV$}RT~ywQYZq3 z4mr?yhs)mLMkysM5LBi_4D+h^1PmMsrv4`QmYDV$qIrvg%fYFe;g3^8zax`0fe$kV zvbWW@m56U$qXv;oMnf6*Kf8~*O7>niwkW#+=ZJH78k@ecIKL;iB;)7Gnojh{#-R9k z_-ry-${97&_Dd4KY1rn?NPkPaHaeLREkg9BT=Xq_xQq|<lz<Vl5OVl1P}9s<sjj<= z#BidN>4OGS+%eOJ#FRBKdC&~nlMl_ZLs(Xe`i@X*1#4>2_8ak*|9Z(u$dq3P{SL>B zgOvR2C-q<88mbE>+R;>>d}2a01tCG2fH`k!;!v2l1`60ddG>lWmJ_=(>uJ-pyECAo zzVF!wq*NBbp#2apqhB`xR#UgGmztUC0-fYbBCmyK*J~1!*0M37Y35A^|GU&Zo<3?{ zO<F;8B8y8XWUp3Rm~Fxe`V|$&4`hKR3Hbv9^s0lEOh~Pic*UA{4y%5rS<QGMQXKmi z@;+BKXUMB%1S<C&?yS(olC`5M1^Vp(nYJN;2<>Zo_)+KVBDe#X2Qs#m;qR;2et;H~ zWbJX*3xx(I&c+%@C(Bq~V{0`yOg3{Jm3+S|opVuD(zbC!mi6Q$=?Jkf=Vw|74?2&9 z@vOMi&~xpBk_6^7jr1$>-_MND`Z4{+nhmbC+V)9zf<Vv1@-2#***%Or-l!Ry`n<TS znePr~UZ2I2Ivo*7jE>fX!(YY-s;EMEAS9&S%H~lK*ulw?5}-58dr`K4AGsy`+cG@V zkK@pPD$>5CnMgn9K@}AZ7N9Xx;%dGnk1nj>*lM?*C{Q)1+~b{r1n;A^+=%Gs?FJ(A zOU)sJ`Nlmf{1L6(-#J{}&eR9S4-FnNKxy7u%FZ=yA^Dkdlj8<z*_;G$)lzGK$dec4 zZBlIn^WwMMN0;5K>O23zPn@gM3jc+lZ2t>Cbrn6NPy~f!nYd1UE3)6YKUM!Lmqys> zRek-bb_m7S0gwT<m2xUUz>?%2eEE}*#z&~=oygi7C;eNaT1%ATWQl6D)(%=o@2Z7A zb(UH&(8y8wk2JeS(#EZ{1|`i_!j(e|GMg$AyqrE%a_o)zBIe#@ujM&ds9&S}Dcgz! z^qtK`z#3qG)8W?$1qC%TWFr&-%I{L(B6XeeB~Cz}&nkin+Jfqaj*a^oQ)S8x-1w<Q z0~Z-RZc`?O>cc0q^1xFoI{kE4JJq_`4{ZA&;+R0R!1^W0@-rh}rYrqvJF1dC_2=X- zbj-#L({p}lOU^km&vFdab;+5P*GMD?za5NhW&Z{CQW536`Qp4Z3;#S{MmARd^vcYo z;3lmh0C6vUF>XF5{gFKW8|y4}rZsEEPFY@Bb?U*w3`*g{+pxxGAgoH(8{4j@^wI~$ zj$xJIhQRrekM^S_s^jwRh$Lh?L66dtjN~BwJTSyT6y+wWyYP9s1sh`}iBhMO>F!6i zSn*oC8maMf)_y(IQ~yUl=Q4zi#^-tigKqho<n!M`(c;#U(#@CItf*q*>yIfhaqG#r zGj`z`!;MZBn>6oO(h3J9&<P12-cpO*+R>g&cwF3H;oI(&Hl^0`#Q{Zv*v(9RC++(U zWbsD$e>t#Sz3O(-wvI4p=shYqLau5Tp7(TL;%aAjRPevG^~iA@7-&>3Rcjc0tOsj< z8*RX^UYGbi5D{6_-d}&PUPJn0G=7v!iV#SP=6OHqKwOHy;=h`sUwvYihqSHwX$y6! zb|F3;7PuI7cMu4Ro=6A1O(LCf5*pLBr>}_q7v)H``%%zc1yfNzK-<qV%h218{yp*+ z2w{MguXBX&sRE|H;5Ph=i~f7S|3hZ}dx-a-sHIrDSl2x;C|(kr663_?fuHEyp)fmk zyK;7%ue-CX$wx6wYT*=c+2JB~-SO@Z+B0KJH^=U%AfM`BRjWM6ylt(z`=D*JxEeo~ zfqQ(_ip5STGoe769lkM$cm=bpXo_4}T_gd!hZaR|R2|ip*8hjzkVCeV>3{r(-azmF z!1I^hh!>j}gZ-s9RGa3$IM)L3L0|Na$nez=O%-#+DQ3UwkaD#KWtx=HdE?uB$|<Q? zsa~da$(H$@2IXb8AmX4;aDWUdz~R>5DD~*RwuN8hNu`KJUbVVMy;{M|{k3ki9BFE; zzXdj`t3Bko!9KHRlBuH*N|QP<TpBz7*l7AioA<ApN9=*JrP{xVNnruw+JxHvN{Zm9 zeqLLK6S%95cFoCf%=h=(_}VfwRi(@v`jMKo5B;yMV_lTK6uYZV<qPyAvJ$s|XC<V^ zMIDOx6H<ccGz)T!0&;aa{F4v&BtIt4J+F@>RS><SCTMP<w2unz`{p_zO&(-B)n=<! zHAMk#E;$6|=IX`STLJ~7(50Ifr5da2-Y8g^z7`QUKAbY4n-w>gtT`4m*XpWQ)N`J6 z`H9b}4Tm^u1DknWTn?*wbzaR+SkVH0g#`@cKrxGddJ6DnNnF3%*#I1~=SH}<C(*SH z50zfIO^5j>o-SV+CAzI@b1$%!3hP&KQLN3&zDScB>G`+@yI=rh%*;sU1dDi1zWOl( zgs0D3wXr;MC0;xr^X#d2pVc5==o*M_NL6U*-D9vI+<D{spmAcqv`}gvrxO;sZ8~ba zcsX_H<MmyrR*IZ8FN{X~Hl<CX1X;OQ(@=Cf)l)Y+5OImI=!NEC-)J4VdV&v(DwE?@ z2PBGJ4aqaSrX;<s+N*ufp<Uo-q63tQc$JG-%qrDpM-(O|L?>82>ND}0#*tU0#|2N; zK8=Sn#i9jXk^K8wfbO@QgrBamtJSi<kmoD*`-44m7*eTSv(BD!=GtR}I0&dx)Jp}H z|42yx8f)zlY!yq!P`>LlN-j31leT>6gLH&#f%@GmtkQN&iTA2WuL`hJ^S4b;x;k5> ziZ~Lt(Be6sxV^=qrfuMPUWJ-jsN!wUyJM6{HB+Yo<v8DO@IZ$4z=0iZeRt9t@CQu| z^!um~`&ic(60n(Qhl<;F(UA_8alO;#CjEWAo-Pwm!0dXZiPbV1?ie<-haf>@GU^}g zo(!-jdMy~20qlu+KuReCYPdA?E(20Uo<Yaw<w8ssiMuA$Vx67_f@(T7`-27GomyPn zHiJU1w)f4a`1Zq*b#r0!akYw|5S+)DME|2KK;Py5IQ{vvaBcSH^LZnvN)VE(fc^K% z>~xc5{H_+RHF3GU(zXI6u&frYNZf;5mQTLqeyq1b`)L;Q3k?A$^gKsTbGT6%TBOgE z8eyONMgxW=)TN551y4K;j1S6riH3%T{^dzu{!LC1e_7qVY0{@AvfG7#g}^~K8qMOw z*r9=R%KhkoW|ZyAqkfgi%{L39>!|1g?|=`Ac(LxP?aoM%(yWiDNDB_lbP;)o$lDzy zNg|ZzWr#b2r7rC_D`vmv&MRz!Mc49gTWNjfs4C|In%2x)4e{SPvU49U&F_EW0_GCS zZf?0bprSg4L~J;d!>=<e7hnAtZ4Hdg`-tue5yWZ^ZWIi3L0?!u{e$L$u?%0_)$S-5 zHJz+zdE@~;wpY5$=;fUj9eO09{R}+GgcYBqQIIhsy&UoUZa=yHpyc*vJpnk2sYYmR zuiBLxqmIgb2qh4di^ujQ=pXGU^ffDyVioCG0dKF8glEXEgdeG#LXw7O#I+sX<mnjR z#&28Gu;{<$Mny~sbM~<twY%dIR0W~PAzbut+5f)N`uX2*Ngv}0@ZTW<b|v*O1D5_h z^7pkD3zl>$=XfK45=B2Har$>D|L+n1^J4tphtS@Muwym`ZWSm}{=~q1af}I$j!~`9 z@fv<8avxv{Nfc&H&F%HS6ubLs99imqX5rRE7X0V~N&?SpP4lot*iXYJ(T#0Gltia; zf~YMUCEGQwbez+?#vOPFonYOq27?u$179a>-JzOoH?inm<J>^5pZX`+a|DdyZ=*5$ zpA*^M6Pe)O+8Lk6ZX8ogHIt)66K*5f3v_DhwqJ8LhQ~wlGYXmM?{a1+-FXZ)s%j|M z*}UNJZ5}Y4()LS&0d4OOJkJ*=J#8H-HMu5M5>)Fx!2tIcBG;W>ozvJf&*pOQXq~;z zp!FUiXC>{Hc7}phF?ss#(mtB=N}NKkN?scox!sfAAGcSb!c!3=h>z;V{u_}~vm!qH z%-WKEqCSh3wq$?MoOUedL_f?U2K=p{6S<n+OkPaBX!~@o{gym@qTWtUx#L7Zo35VM zcRjkls=X437;Ef}O3b}|hqxbos)^j7_%xXIS&C|{p=3p^nODE4nnSIou#6`u`7$3r zs<5d0$ya(2c?D6XyT|BJtS#a$WigsMs=R{gI1laPyO%zuh}x}Gj$*UqRcXXcxdXev zvrO7^bn>AD!;t}%0r<5w#W)lzrq)C%rv1Cn(Eit~2vlZWnsP?{1?T(so589&VG%z% z>K$xr3k(t)*!TyN(h}Uccy?_&@vwP+_5JuUWU5BXWX#;x(bGM+(#t|UYr3uegzAv7 zeAbe~g^XDc*SWvwJJGlsA<Q=_0A<@$U#DfjDk&1sEMY!>8`(Kqv;RKG?BUEQ`65?` z&d4B)iZjphb+J*iz+NvOnn8K>;AnUBT+GkN=PtXW)QT2d9)}XIDW7Ba1W)*KUM0|o zZ9PIMy|Oo7O3|Zk^(TWrDni>S=ilG#-tnSj)q0JvqRviH-Nm5<$$E`}`Mz@1hRH@> z>{*?coK0`bmc?aX3Y*K`QxI}+d+3(fO||Gvy^0^E=f}{F;kviY0g9CCohzh1D7>== zrQ<mlg+f}t6O$)6qBrQj*qZY6+J4^+m)F_gmQ+mEqG|O0TB~2bLwc_IpwcKX2u4o{ zX@Z*)l$%b%3E9{hVDNWBk`*Wmc*5C7RBwLg90|j}fgl!?@rmbiv~up}brV95#CdK( z?w2^Y^Q+<dQ>8^94W{V+s*sQJ+5P&7$aZzu#C9x!5(H4ws5v;Oq|6s-pi(m-qih2b zLglZc)1#Kkz=LxO?<%Hw?Y9XB_N)b$UdcG$G-HDRaHf5It(a4$WPBo3X28fa*AxiX zzBxx7E8$r%m)589cEWt14jVYrrTx`ild__sqB3v~B-fH#lH2+gIy?aO*ew1?(<B2b zcK@{Gw3+iFMBF_vXU8}NN?tohe1S^7HLCvrw%B+k$gS4I_Fnz_+%{+|DRyof3|>-> zWMX>~R3<ONN*~E?Oyf_dLq=ZUFeSo1aW*iyZk*)ak5BbR<08$OnW^TMfPRV`qjmZP zSo?D@%J}v96aDFr3c+uEnHR}M7M4h^91VM=kG7uJxp)guqiL6m?hLbEBE?>%&(BpT zPr$e+$#|K9iDBO-vSOSkf-IPs`^c-%=4+`7LqsN}UuUV<3D#{2#6`RaUx2$jon7a$ zvo)^Z*}YBFTro1;7RY&lGUlvPlZ!kdC62BXG#}ST4v>-6yXi#iI;<4k%wnF@OIGkI zB&jsogCJpEp#_@o;5|iI`<KCNhmYvlpO6)`MTUlxg_&4I*+Aj-zJsC+DWU9Bt*dN9 z%^VzHWjr!wkeDGlKm+hTkB}9giH%8+L&wv3<wfWjBB4Tzz-xx#JB`5S5BjHWzl{mr zZ=Cp<*0_4OzF4Ri_X-;keiEGW4|_@XCjF&no0CD$>oAo&nn`cfEKhY|E~HvlWAP_r z`=-x>5XHoJ=cOP`;WBJfbC+=KY2LcTP0q(Y&L=zbsX8(rlW?W<cF~FDPK?OV`wYa% zC3~J-x&;;w*pU|V4m+_*dZRWJcWD5N!Dp*==$Jetg-9y%Y|h~)UV;8jB%CHE>NLep zr0H&>Ssf_*>hdD%k8&);IB!LytT4R7SLPWlM#NBMd!k|tQ;Iy7(PF*pC@(;Nhlt`y z|0izT8IE!_A3R(81P8Pwj{2nDN6Q1hiAsE4VI=r8tNB~udc22s`vj|&h+e9R$;hXB z>?FQtj}vaL#059G1?En=qqx!<QlnB-j|0iAKuzBC`q#5<bYb|Np+0iA%{5DdK%z(+ z6|tNVEKZs$M%!M^D@himS5C{{#xPw#Ko?j$%u`=@PML7CRx_C32JC*ksLVysQVR>V zjFRXzWM{~yw%tgRGB(G5_rJIgr4?^LS=z9Tjh?Ea5{%Dn2vBCE|IHN>$C?b|qFf3e zYGhRZ2NeC^1OEG&iGp@pd)>{L+)_bA;qh4bg~(PAV%HhZrPUk4j3Jfc?~L0w9Y;cn zl*rL5PTu6;Q~v5ev->4oE3Ht)(0DXm6Sh^C?2@bN`vEFv#PQ<~TE-#y(T+lxT)aqQ zT7x~W+jbJ+<-Ko{p-SoJGYeE+CzudteKLs)b|<TiPV>ezuO-j$EY#9Al>CwuE@V5o zJQby^Igx63*E;Q%XdGv=R2sm@b8F`;dP6@9iz?V8v1KeOA@*h*)lWB^b^s`a3ffNP zfnT_r<*@?Zi=7Q_F)je5iZaTgy>ExPrP)jf#mKueUE<Y=C>G?F1?L9CB6>Y^`+>o4 z*O35}7BM}vp6>_UqSzBxp|kx>0%z*%aY@T4!NH(=-b$d3J6D*r$EYFk`HkVK<LIIw zZtvXM5K{weu;nHV<YhSAuZUUI414A)R$N@dyMiD^c>F}LHdb+#DWF^^rQP1WS72Io zNT7b?E*XU729RG-$b9vfVYMW(jk-ll#HHj|w)=i{uh~0Up4i2uNIC92<vhpMDvPNf z>~+eur%kLGpTlNQ4y;Rc?#Avb2+s-&sk*9gb_TB`>1@T{a3~hkE7Sl}-{CuizOkIn zFnilx$&vcO=TKyI7p<%>sggk8h2{62JC392VhOWjN-L+<+_OqSm){gvt?a3Wrk9in z8yqKbuGAs(&cs7P<hLWtc<WVz5sbJzbT)V7P7qrs`HtFeom_E7)x=d(mQC|%Nz~z_ zNvs7^%gLFU$`C^7{_~W2E84X~eSM-mSzI}1UZHpuV+u%<d2yH}czAa~%M|+Zbd6bE z9&rI=0TyQtKuel7zXS2CGG=4zYDJMviNwm)gzg3-Bnd#>12}c;--2+lL#@Degdl!* zmlkc|Le0KlTnc>{i=P>k-e_Luoqx78QUP)Kf|1m6cWB5t^VxxKmwz?F*y?MII-cif z`@P@3E(s2;^P#5%#ukErq5b?*IaElJpdZe7KHZEm5cN{Xj`R<Ju3b3Lws@CaHc=9! zq|fT6@&KBy+C3Sk?TEiL?M^1L&Ol#es(gmq%3Li4s?Q{^TMAcLSRMO{l&Fk;FcEGt zFaZRwsPbz1JU4TAKakTSCPd!Jj`zG*ye|()-XgJ(e<8Po(mgpYP+uhG{W@o{*w{U1 z%}QO%29OXO{2JE)zgZnr4xlziTT)=8v$D9zH#VnDP8<G%MpQM@ONbbG-_osST%r$r z$XjeYXVvDW(QiPyEuLGd4j0kmYM@~;d7z;OO8X1D=uwxCbR2z$)(BKL?oEyN9Xs!| z!1wILHYN?eMd%|6M1_TUO6hTE+AOZoDTb|1t~n`tdedI<u2*?p&wKvp%s&OLEggm! z$t^$l+ZH()5swT`TE?b?`=CW9e2y=1?t6<%)3UnmGgx2cV-^nW$~A*#lI;2Ec+@?1 zHJ{efP3Z2?=#?y<g}I|N?Npm(x;mCznMkP&R&^&$KtwXTzE@;yMtPp2LfmiBZZGvW zY!R&{aKWJ;TdMWlP?0;^xsJQC0&i3tw1&a*g)#Edb`vIA)Krn%_BeIj*+9pDQ-{UA z*qspmHYq>Pe8Qc*CPBz6dv3lX@;z*B-(lqJR5&}wlwH+oda1^E-h{Ri*HIxjE3lm; zllkHZdC8SRBaV<orN!#lTcz(!4r|!R=U8R2#QsXPuOACZcX#Cb#i1*gVZc=reg6CN zA2bE?u7coVExxiseM5Kc{a8>Ezfs$$m}*}Vdm;@8@X@$n=eDt2D0CbJI9(;y6X(G4 zt}N)UCKjF0G$ohUe6s;@;kcJi->9osKP45t1XGI>E40Q+VbZmuJ5DZ&zMVzG#)@0S z_$CZlub9`C-IIDsoLjizWxAFfxy4v;8;z;MMtj=$GO#oYelDXo>!%Mb`LQp{PFXIr zfhPKJGZ;0&fOH84Y;rUT9w||esfiJ6O6%wrA3zNC3CC8xYfZ041z|yql*5>73!Ley zq|DGb3fcPj>&GekOv*7B?AX9>sIeluM0lR1RtU-bT4I#CSpAGHfV4qxPWzqDzlko% zZ6K%E-?^nR4a2&1KO^!i`H(1q;uuRn@@ZqG4w5p5Q9+N4n%0JHf!|Myz;C0U5@Qef zZwDgN{-FI3@2WNt1f<!nF0=O+j2E5^OA0dDj`ck24;?T8eNcgDaUG1euw@r1X~?<o z5x;JCS8S`JLAJm8{mI|}R4<w<HeKkUW$f?PuJ~GZTfde)el`mqf?=e}&vy&8b5-O> z+rX?;Hh{C^7w=1~d>)rPCY%V{+`O`F*f%oHOSxcPn~5(JmM?Lc>@<iYQXUmyHn1mz z)nKsFILq2synAH&{WM9}jn2^1t1-Fi{PvAQGgY-9L&}V;>axQSg2fn>RzGW^3}KU- zoH1}<`b(e}q6l<+Fgkj)fNS^&^OcW0xQVrb!l;@BsUb)PF4F2ti}AO3|6(y=p+A7W zZUWX2%nX$QeN<N@$ep00TNL5c;$<zWx~RS6*xfQ*>j6hH6{zGJEN~9SzRow;N+4~h zqXBC!voA)+qs`E;o_%U?YbF8Em!`gU)8}`b66I0_|F$h*>CXKjlk7hFvqh*#nccpQ zTHN4~_+(ii|8T~Nc&B!rvMO@#0bs8L1$-c#m28EOCdDt|YT#OV@~y-Lf8}ICH8nE9 z0x6AzhgG9-{A8(HV03(tXffYx#`;osD&JhIx2@}z;!m}~go<c!pO1&0akR}(h1Kq% z>Uy=r_#g4Hh)P6Q9!)QBKr#&*+=DB;+!^hPz+gU^n^)!-EZqa=mAjEsSc8X;k&R0) z)|*>JaMU%%tg(6G<xUb}64L0o`h{Q#XmYVm-d^3nVMu%(pn^YoA{uu#yYrX&V7{2| zvYS2`t`CvthO(+y@CR0u$<p;+M^zc?yWy`~;C$~3BA9u_Bo;m>;MiF!)h>>2t)ys2 zh|)#OZ*!fbW2J82;YI1qS^T<7g~K3as4Wq;X3*NFxp0}zhiEwsb!MvT<s=0=L0dnM zwW@8z>7)`&1#FTTYv09wLbxWfc$N{#bPnnzjr;ZE6gN4{cf(uZVw&(GD=fn}Cfj4O zmc`4XC1^2sU;xxIpyi|j*bZ(1w>y>12wNEGr(TlRlfo_6B~+MmqW=X|{~shaD7_U) zIex1HmY&365G{BY`~R}mj}>~+V~+m<x+hUzv0sGtVy2^hK2lN~_=35K&LL@(3wgn< zX?rsC@&lv-{?c!QoEu+ULnM27RmnnC8C;t>pQ{{-fsbUbRw-~6!DN5COFph+X@z<w zNBB6$<ke|O3et1CYNzUt#lJ8cE7a_t=SwitN+O()ww&7}Sw>QiuRz8z&Q@$MV1w8- zr@^<gdrl33x-oow5g<}N@>hF<A~a2YT&+2|jOlrXqik<VcCg9LvDf1)wzOIhwyBQO zs$K4lT=~h;N{UYg#geGi_l240<_M34x+3#SmA1B>=X@=ui^0D?&*oVfoO~OihZK5G z`+GSGW_b~ms@A;F=>&m7PxBeB{36WMHN{YmMDJ#gQIP87Rc#C4+rTh3O<Z<ABF)ww zEvmn9IKjF5^H-k;rQNYEEy-_W?y;_)B{|9#_%4H|ofghT8;v?cOj>pT@h?B|G-|g0 zbZy*$QM+CJ(-pMSVDCWb=~q<@aUV2MD7zL5maSpP(MW=$s(E7y;~OIJ!Q8ZZyd*}D z5$$lc$cUbBNm>o`MtzlPC?4JqJ;fb~+Yi@0j({2#{Nz1_8LXzF4)J6hwbqa5jC{wt z=ur)k2A}1)l{QSA3oL<DCHo@dXrIDZ6C$(EUXo_TM4(#Cpiey8V3m^QJvv>#-*9?` zmAS8SsP413J`T6$NGvlxjU_9xppSG?ETHdE6<e8|t(&#~KU}?aRFiQV|4)dNgp|@C zxsA~v-O@P*$OuIN8Qm?Sl(fKTq{kR7-5?UuFiN^XMv5Tq^PA5%f8YJLvz?uDpR;p+ zuKT*)*Xz|F_0xlyrm#MY{#jWDEP6&)$GicB**)>Y(CSFC?!CkMRsZgAI$`SbeKFrA z9Tf0)-ZJvY{@i8jx5tq6U8eeV#Y88sykrPh1F??%q5dN&(WbM7otz!9ON$rn^d5mJ zAe(6~9^_kXqc5US(5X_7jT<gRab*<2-NY$*bO^9HVUr8Gb6y@J@6ario#mF12cO%W zz9_3jEx(&VX8&9&uC;nQ^TZrckaiVAqN3b;fA!Mg`l&TnE?3B47f!9vMSpE)xTPB+ zEOhmT=gwDe+{7zeFR42tZxt*yZnq@CdjW7bujhY7_!Fnj>5dIed_b-p4XF_yQpe6P z$^_Dy&kV;HWEy8=&kILcC9BNVL$YAJxo=VhAg144s9J<^R$b;#7vN$S?Hasp>ChCP zv&OnBO%h6dv~*7-Y3T14aWXdzxtvFQ%huYwG(Xt!5aEBf-ZuIEj049<JY4we_R&p{ zd&8x|JonG(+85^_>z2}|YM+s=gXlf<fC@F<nAlQYC}D+<SU|f#u62d8R=sLEVrXO6 zi*9YbZ^t66Ebt4;nkD!tuT8Oth~?Xk+7WN^oJ=mXLXgJK--+YQyB#4cCRx3?Vm(<e z?7we|-jKiPXBFA=`7`|DQtH=-R<{mg24d<;;~%J5w(Tj@59b2WF;JmldkP|V{#5?& z3)vsCdx?pk;{>(~f!iV&vtbv;-rlL`A>$A}Chj(d=~5@kENyW+Z1e+JAbt2#(LGX? zy9xJHfT|R6m+tPvYaQRF4;B3|&*r+l-as*VYsG-4Avq65>`z`#WS$ku1U+Y%O-^lc zK{MTp<#)+6SCd>|cILzZzwl^qjqj<4$2A-L-(p@P<S4mE{ZpXl(Bj$Kr5+v}h^2X> zTLllRC0tepj~#jvUFO2F*zs*U@r`>_Vcqp&nVW==3|jQIXSsjJC=OY?Teaaag{xMA zoq{j2sc50tMtXMV|KL>_R35Di6xnXw20NT#6ZsFOD;0lfZqOQE_T?99Z=cKBBR#(G z#t7RGDO5D6$RvxJgyr0Z{Jh02SFS9hvKJAsa+?|GvyK!nR_yXeW=8!<=GK`()Lv#_ z@=<n$RD&SOv(prs6v{}Nj;|;nw!52gLvLBIR209RY!SfiBYzuil(a*P#I>ExOw%qE ztNNRYx!F>tKkFA-q|WidJoH6?7~Zly3nGxFPUjcxbS)6M0oXOZ;2B8MpJMG|Jv!*J z=$Df|MqFnOFiXKsyO81!;enaeayLrB>_GmJQzGJ<!I6<H5YNq}bc=LvyzAyK;)N5F zR$@){iTdc=0#_J9T3fzLA39teSd6ISw@GViMS_DYRE%33Aqk>d(!#7jnjcHDe8Y+l zx-A;AUb}KLq%>$W;gWP*8RU*Aoop8iD2?(Uw;#I{xqW3j_?e9s-=7sjh7S1Y57}g5 zOO{{`a7=`9H|3-F4%$R1GS%~G$sGuBcZA>gB5oJ+xV^Z*pSWfDbIU$He14{(DbR9T zZQX=nNR$2Se(2qOuv`HwVCbibA1MiC!m=l&^3AJqnZFN<h#CY~_{hHVvGbE0T7r3a zI`*XY^Mr|UgN<!78k+dFXzrAhEwy{<RpP}7##du_dy5zOPo8@4Wy!CHr?e-{5`dnH z8Y0===yzVc;^19u!FXH+6NVi>#8>DWp~l<c<Nia;(QU$A<&LCImvoVm$1TAUbf{I9 zmg6g(?X?mV71k9NnO0d+mMhemLYPgDf7BD;-C#m48!QX7{YQo+7Ufby3+nNzTK1Dx zADYa4W&}5f*1n%nquU`w-XR0cD|~hTWIM6t7*_4O;-UnpU7nc7c}ZDdsdS5-nrrC7 zAE|J#Y_fYXk80_CLXGCtGrL=%%a-(VGx1%Whehd@H=OfMvHF9rw9t{;4Bz;zIPxIp zZ<o@oTyalSttHXB1^QA*;!n5Efgm=n;HOYNr*_$?t%gPnA}J#Wde_K|nwf`3GI?}w z3)*ZnS;D4I86EWon^?EbwHY>;Id|1jaBI|0<S+RW*f5HIUwx~@vjgd7dFHpphm?-z zoV}`0Ks2xHEU8SjZ~<UYQ4(Rg$GDOCKBm%Z7ED>rG?wIO=eQE!C7>u8V|%@54|gs_ z*W8$IcOp_jOCCTiazl;?YE_&!sNd-$>|SxakjbH=-fVC3Rivl6dZw&sO?$CSV{(Z$ z%?G0f0q)PGMn;^^)O4-7<b-~;72fI(Ha*AO6zJ+Vrjp*c7MEn8bqd;v+Di-@T%C^` zqNt&XL-$gNB6zr)gtQ#T3|^TBc-L1e3S0%}i|u5<hO^Voi)$!%=RO$Uunw?ikUU`o zs*ISc_%+S3{@P6(zgI5mYdfs1#mII<WgxPBu4IA)&qpF8`Bq4~zn_i}!Bi4OziSyg za$U1c(4&D)A8q=;%$mf*+Zi-7V_^Reo5U(Rhot(<^|njXL(|j44SNyBFW!oxEuta% z7F=%6%DZ|*dyU1O+GLd_=w_CtavO9AjI?(<2IwINU?d!b2}Q>u(V3@Q8(=i0<1X9v zaH$sVAS2^(WXgp7(et4<uyS<FUD~YFI<+Q)m<eXuibggjhhnH79)*8=AojmnZ-o07 zlej43N27wg9o)l`Id*~>cN+fRjXOZSk83$}pvMju9b?GI{g~j0_@4rw|JB_)obL7! z4CdgJ6`gu5C`J6uqxW7)x;%bM5^w8LzIR+?T#p}nopeNTyTG#YMpNV=U%KurazDOW z#l_9juoY>Srjpa|OMrZk8&z!a%qn%xz?-RyfeEZz(q@ueHD;0xM@lz_X=UVEgg*Eb zUK8<%YLFu%kFwYwai+a!X}Zw#xivO<dTMcWCujLfOa%I=f&aZ^$}PRdNrTsM7keKa za%=sQFf`MG9Op6H*?Fny>%fDOCnkr<DXCdV34t-b>dpkU;d0HNGGJ1Llf4xt_&)!P znWneZML(+wHqAb@@Q-%~kqfPaw4$GGiAR&n+I?DX!-BKG-x^*g*hbc?^xoWrrg-Lf z;OVECcr=52Tf+p(5)GT8r``~m0g&XpEWRBJDGek(r1hgr+OJ&K_RW^<{j46j`F)^j z;VjcM$Eoz10Nyn9YfSl=0(usv_tuUeD7?&W%BgU6TF<VtyfPCiAt9BWigg~w>MH^| zbD#gvmkGa@aQDRLWSux_#kg#(EAl#`aTMn@8tE9&ceJ7aT4Q~D^c|FmfF8!r`lRxe zE)ZHjWqSQnFASnoE>U|8VcM!-V;8a@l5|_~VHX{49un4M8X5dQ&)h^CGa^h{7)gD+ z7?bVDI0%X*@i}}yYIAz6V+ad#*z5_>{z^VVxa$A@>s|Z-#kH3#-*QhLcftIZ*M=ka zk+IAls|4%&zgCWF@&=kF2ChzHp;MSL*rLu)N4qVs9(_HQpnCzj(C?WNijj9btCxH1 zT|4t??TgQc<LS(%GSYO<D7)vhBYMK~sxe|96D!gG*VBW#zS(P8z|1g5M)h3an~?53 zGadq4<o<1+<lnGQ6%;;L7B!0cknQ@ilp#Bp%%`4k#7?J&P*-9cv-~S+=8Fyk&+f~; z#Ja1$O_x-!B}5Jd-w3%WE|TXh4*#fZ&ovDwU+p6K!KBlh$S&vnD{SBMR{xiI$jT|L z&jrZ3r`qzjAZ8ntI?A#aK(PTcbF}s$(E%5L3wpxu6)lJMx|2|hugP|k_c8Y}6!APQ z36_C^$sxXZLJDK~Sm(Agm{@I{=usE&wsjVhS1SI~fd`agZvzmjMUgwW3lgq$Q64{I z|CaJ$9UQp7toZ9ZNF1trcdqF|2ME3%Qsh)$+1FVbK17BzwzSI%MrCfXdlMJ_xsTLd zMO^J6r)Id%BJ{2R(LVBBWG;Q&{4A6)nq;i9K(L97NlB%4#f(io)!_S&Wkb$0ZeAID zsPyNgkFZDlhb#E3fsaZ3K=*<cTi?2~dH#ww$SD3rWtpn#s8EAtaYA91!gKT3iW6%U z#@ozeJR~Jq{&fAgY&=~vQD5jy`29}mO~|9Ol^^TFIwj}B(9e!AJ5R^A+V2QwG6^}} zsfApgSZucY`=^*ZG^zQyE5Ci%^!n9QUF|CJwFXMjR&IIoMJy;W#>FzL)qd5ZRkv_h zJm5*SPs#hA6~P9cuTOWD7k;$8mX%7u4v-|ic9KYxj?+1_(I~6Zkz%viNaff9@Rf3n zNu5nSZM*k0JxoEw?y|&nY@G|nnvxR&Ddmlwp=~kt#2ljaT!?^VK2)AThZoAGo-%h) zUVdS;v{XHPdHS*NT-=%sW&aC?oY_ZVu>;pVI~!rjz*bN|C3MF!Fj}TTFi(``?P~0s z9Yv``Og6F0`k`(UQnE^V;5>NP?Lb#AJ@d0jAaGl8GU@Ws`Y-y{Pcy?<W83iPWsa#$ z{J!^R*H=_Whb&eHi<9poq%E16$E6P``?1bK%(Q3i{%5b#8-r?yV>DO<o#Z#X9lxTJ zTqjup**+0AVr~ghP2Q-Q%X9fajcu!w#hEw1*^6up3JesTJ6zw1ZOjzr8uqX}p4<^+ z;}h6}ztnnFJB_K4<v|kDUnRdDcl~>B(<O)L^`6?52hJ|p`6@4HzLRlDt@G0qpYmS^ zuQ%G$Rb@iWDDA{?kfKm{NO<*ZV4R{!(soJR`&Dkrq-QJo*AC;H)(n4Wxtiw|%=_PA zc{~Z9T#K6a6{wyVVPZZrV31n+v#29R?DQE@zA>*<kGD-xAbr(?129MUK=?bX78ge- z`WHv=!&V?QG9a=_7O4Q5WV5+1OCE6<WO4^dVCtkeme3-6H8f;)9TN6>hej?R47|hV zKx@7M+@aZ*F$CXQT+nmLg+t$AZPYnQ_%^c@v6Yy{Nh!oy?)&z&yIezt-qB1CxzzTU zO~<c2@3=j3e@F|{RL)-*yQb->81e@Q;h?88_;!o+7HRsY&1PcaKb+-;5IV7hJa{2< z8zlcYcLSBcgLU*^vqhjw@|TItcg9KEO*>D@c}mLrGCxe!eb@Qih!Cndl0j|bA<bCO za*vBSz4Yn5Rkg5Qacs?@2j_#5{g7+A2%hJr=eQ~M@-9A+U%tz8i?uBxXD2ca@5{HJ zSZM>%t`EOB;`{S(eYswfw%QjFYUtxff_^?_Lv4jnvnB;~ZZvTx%bqbV{t7MCdSMHe z&bW8@lO~Am>Us@SpFL4IjrS8oTt%P!Qiut>@FUstt<wVayjk0h((lmDW`7^8Iy=_o zV}*v!;-nvy&))1`tK($$@U8K**jNhGV=30Z4^7fLz@Y7yLc@wuWFvJ2Qe*ld3huNI z<nk0Y^RL&qhP&$5@WW0I@e}-0*A^oLMZxP%zl^?ZBSW<7baRqW((aS6K>MsE3{BJw zpQwg{*37-9SEdY$p^Xb4K72|h>^9Kc?B>$-Cu_8onpjItF-n;Np!Z;U%eL(;^S@p6 zz_n>_7PGutyC4A$6xFkqOG{IuJPpm62nj(p)qlgm2dnFK#WG3Na(?g-1Y8diqF!#& znz=g;!6w&w(M<nIMxmBfQ(hzu*)C?94$#!MB)kBR-Zl_ps#1S~Oz)--TQt)%w;&Ul zeyYbjJq-6Z{EA(0wWO{0K8Db~zNZ(8B-84vf#{Iz|B_-9MriOHgIr5l3Mvi>iCOaz zzCY`pDQrp^N$+jrGiKQtk?q_c3z7A>=+-6Xvz6hgT0WIk@@!rFVA6~3`jK<@<6oL7 z-f5b5NBnO_zvi-mlhh^RLGQS@F}A{~aO6*=!7QtvV>cK2CU}G9vgH31SJ!uEmhU#` z9Nt`&{4*NY<96BqUHtz}k&;=FT9nh<oMda_Vs1}(9*&u4hX1dQo>;;OD=v~B*5H=U z{@yS&J+MnHUH_sCvq#t>L;^GNH*#VcK$@P$fU=@AQn{K#@)vOY!+K-rnL4iLhLB30 z42WMD>a=s@;o=c*A7u%C$4yUL*!lezzjjM+>ZgqsPdZR8{LN2fwy7W4H3CL@Ga|0F zq4Hq1Wp1_uF-p_QE8~5^ldb5L$VWZNI$0GYvOFImU%oKz22WjfFyq%uT@{nyK396W z&+mb1vAu39Bg3oh3{P4RdRP*j0eNHPLDRCl&K}7aTWEbz=J2^i5r$An0+^LT%meKZ zEZYDdEudykqEhgPvDMpo+#<XXkSFuCMeSeovj$t9ti3BqWHRl=D^NgcVaCU`vL+#2 za-9#k-H?!&7Qpu#4-BVd_`X~513bJd5=s-%Ph!mvl(fc|#LK)}cXqMPxIz`=F`z`s zPGjHzvwIW)ST?Lro(R;>Z`n$TpPsiH2@MIZsZiTPIEIh%-XPGH{7vzq9uaN)=x9HC zriFCsR32bApF2mTJPGT%>mvz|+6{QXM{`EvDh_F*?vZ;EAXeRbJk4JC51NbcqZ)L2 zxk5XrI#Km)xFQL|tg`d(G0AnADOCqGuI<I7I{Mpg^{wF378Lb{AGaMyJ5u>Rp{@@K zGj;;U412`f#h1_d7LUlwWcu-^S%t~<E|T!W;(BJxbYqF~|9=L<($=egl~F2lWOUCl zt}?oMrb!1&m%j@rH0m7%TH4IF+7?j}NiKag1V5Fd+jk(&7)lSnpXHQ}9NlCrR~Wv< z?+~C6{_{=|mmk2dFtwLQcBMDv9j1;SZXcMg7=Ywvj#tB-Da7W+X}YLG`1j_Bx_YUY zTJyXo1+(7gRKd<=G47KkEa&e<5iy>YH1U#A$q|iHE<BB~4%<jhQas@}0$gLc6z2PR zCS(~p%+S|ZMqjq<m_HK1mWZQwj7;B74gXhSMYinY1TjQ#(*v~e2y}^2OT>Y=^i(@! zy10sx8wt3keWPc*y=!FDa^=G`^399ps2Qj9)oEv#DutP=j*PYOZYuwc_He1pXIpkB z{kePj+~3=Zf4W>q2X(wZ1j*<9dEr~8Ct{La3;?D3r0{=p76S-w8tCxM?j#RX;-vS4 zH}p04k4Kj<hb%nGT)Qg-DbjvaCt{0@y7z@J7O^uzI!D=gK2L$Bi2_90I;H=?D+9*P z3_bq2F4~@3Mell>kChuSO5#7ar17orW)-gJ)|P*cZ;m_bSd?^HOkgqz#Xj=E`6B&w zE%}Yj`jw8;NSPPY?ucnV8kvX5#J>mDm-=CURwRdqO!S_&y6<M^Wqm)m)qOtDU&#Bq zeBABfJL)UF5Q;th6oq}$k-E&R%&!_%{JxKm>w~G5F$&7<H-p#1e;5PKWX63X{hmJl zQkbBp;Oj*w+iA41kuJl@B_ZGJEq_}C7N2(rugY9H&$cinx^vNshGT_YM2%e%ha}sN z4T-<AaB+=4?Am-~C+tubosqpdoPPeo1gfShuQo|Ve|LYH{0S_g7y9WFTBi{)0-mQ= z6ub_-R^p~1y>1PD{d18k#B(x&P2TvK$E?u6;0#JSZNz48AW^Dyc9Xo%ai;1=oy?1G zWiQy8=N;{9Vc`1<Ttr}0Gq?93A=`_G!z&cOz72Gj69dG=<gmAoe@kD>$v*}^u-r^+ zMdf*;bz~8^(Y%5GRq=}daPnf}0~c^Ef4l#OoHUqS<pSL|=$wWMI<?Ug62d9XK1IlO z<Nn8aWA}{&)EyNbv^_b0X;$Wxn`l%&6Ir>>kfP!c9<6mhOH*43?_Qk7Oj-8m^1`d> zs#fPc3-rZJ>C0Y$li{fk90`vN#Q8VQ#_%8ieR=y*UgM;DDer+RD;-MZ{Y17Z3F%k% zA#=?KeUcD}RzC-zPA_cE;pQcv&bybj4}h04MNPLi1evB&xgX?BO$T4}7b@3_qgEa~ z{L^i5zNkf0J0?Suui2v>7>1u%Eic@e(||exsjp;J=nrel+|UJRn7dqI!d+D<0Otky z8$&7(OOJYjf)+TVA=Q)S>WxGUVaqvXr7K)0vZ@&VTfD3c8Ft1B&TC#VcVJj?HpqO# zT{3U+Ri9_iR|%pTWC`;`5k6QBR=(DpwQ7S*lW(e@mnCTyX|^doub7bv)NQYbD+i-- zaqk&S50eWC86>Tc2Jt})PwD0BP5ceui_FYB!@sxdS{Y_*sa&fIo{F3LdA52xv(E}I zc!OWcJ+ogqk51sc5Rx8WOXcv{J3(BLgd<DjV8P0~dFScpxKr~~|M)9R^T;zuyW6kO zzr{boA_b6*BfSlJNG(+31}<O1^5(T4lclz7QVmE*mTcWEznwfvGo2*;RJoWuDjr3u zwG+mj_NW=p_(Ne1|2B?W+UDZM@)rz##Oj%i%JQ!LZ9}$;c{7GL;H;k*8rlr#lzxg> zX1`fHxiQEtmq}M!+GgAI)VB&kRJJjCq$A?ELp?WYmF4jl2u^E)-#UoP6xeU9E0066 z;OI9y$fIe6gTkj2$C8*WOu8wt;fH!6YJ8a2Cq^&5U^joIR>yJUqpO>$Mfih9%z0H4 zG+V7FDyp2K`U)MrAon2x_Xs<sLo$lbMZYKtFI)sH8T3ZomgzQSxJT|fj2&I-b#n`n z8|fenG>}5l$7IB8C($2Ud7V4KPAU4JDU#GAbd$ho)c&)Hz`NJ-obV64JifCIr<g`W z&)(Fwy)&sVB4x@eocs0W^bT*XLwSlK{8>$zi=?Su#UUJla(GNg_|RO}(>_}zd&rK= zkmGPacZ1Yg^Z~juO5rH5+n^r$cIksK$^I+>@8P0X%IbXrpw(jNqiM>MhYRnB@7+yM zyIKVP=&TG(O$@TY&}V_|mG_wXo|N-PZNJ&JQg)g5%W|iaS(rfbXd2?6smk|g@lWUX z$S(m}mzLOVJ~MAl<2smZY29!Bg2B${=qRw(8IK?^?RFvAaNkKKt;Gavci!0B!@yvd zDtr>qhZkDC7lObhG_68pUKC!tyl6Xe%zHZDcv!6wQXv0y815!Llx_p`7_Dq<qHo|M zRYADp3$v@P5O*egri}#NOQgQl8#ci*wHSVa<{Z|Z6J(u>&ZcJ>0~eBvlY;VO7F{Z& zMSCzSb1OETuigoq1a7KKIEjuI$JlkKrlrD5K2S&UO#HwB8SoIHc(~VN!h8aP4i^|i zC5pE(+rX4sV_J<biz~S}*3**jXIwDe2dhaXw^1DaiTa_jnjJt&>4t+-cM&rtsjNB3 zDx(D9t29>|ZrApToS9>7Rgo?X07#kuQlEQwTacQSHj;%9JA98W&jOr3Uo?H&rkSZ# zB3ff<O3<TWkQkCguAtDadKussp&-?uqcrIdbYCURe=LLw^ERKig)VAtU;KFJHw$o? z_pG(!{L%dbA#yT2;gNr5?Y|x!Rqc!W*QrqjD|D7}dw){)SpBtywE1V?{kYxlM~X(N z&(s6XT7=iRWuHn2|J0Pl*>A&<_yC5Ow`F=E{X^1~CVv(MKR<5%&U(_~e7E%D^FQR@ zr!F?XCtVg3iy8mHGvHU$nUvvbl^B1cn6O{!BSY);&N}5kcy1r3SVz6)shuhoDTvDg zHGG6qcA|M#ZbvKCndH$pSdYQOKcROaKUyuW58+eSO#dV^B%>azCHso$CN`n>q3Eo8 zQ#Oj$JN=x6MZLv$#xM@bIiLG_MK@-HxS>oL0UPVvM4E&n4cb6Dg|rgP*GtAED$34* zXbrD(y`L}AN{kJr&*WtO@hX=Rc<W_vJpj8{^QfqQWXiU@8Hs|`%`l!nH19nB`#VwW zWln1C)xHMP-|`M#{SN>TqOsvd(=xrxs;qPGaB2tG7afpZ0ts*4U{ZppZ^(Qg85rVq zC{InIpBmen`NdU?)v{8klTdgc*P>t2A)J#39xV?0qxuc4z{5`*4Fb$~Zh_m%?A{bY zmQgbJij#o+ym1PeL>ktThR)Wg0P#E8R^HT5B^A5u<GI_1Ti?|D^ji)N0qE9Blch`w z@>~R0ZP|>L{lH&<tE!&J^o*G;p|1zKxCgj|VUhH%zHjL07^{Y6&t)iT6^fo`c<I5c z@WVoa9F|qI%vNzWyV~Rxa655Ed!r`llFMoB&XiDYxM*ORspA3X!Y&IJkmDBRtJ}(3 z%}al4kF0c=C5ue!XloU}!5Wh(<}#rVK1=w~795S%S~UB>e&$`i<BN7zJn?R#@ZBbv zJoEy8TgemO6?F{k5SN>j@EmJSeQTqiMB&4y_9TJL`)SULce<s&$;SdxMEN~b4-I+Q zc>b-656vj_)W9hkM}ZS4oq~c$%t)DWV)HW}6M5s3R6Vq#lk|h{wK;Jtk}|zkPO8nu z;5hLG<5O)9eA3-$V(Q24b7*f@oS7C{M)9TfTN){D)_{|1$xzL${_b~(&S896<`UC3 zQ|gWSY#|CsIR@a}41V(Fd;uBq&Fd6_r&$?>_HBBP)i-GUNO3M@AH3c_yjQ)OHeE|R z`^1HH)OcR_+d_&|c&?S`GmTEVmiO1p!e<6rVwYn6W7U~rrL>U0M`YY~Fzt|Cn!2lX z{{vXn9-8@nCU7k?t906a`71eeRJkX0x6_bBW9Q=xZ-zSR2M&QV)1}>5yuAdwf8HQ~ zNY3NXWNq!Sx088A&uhn+rk(sL{3Qii^Y}uIM>h*WI-O;^7`yadJJZcm=G-`r<@~y} z_b;}qy#>Zqqv)(M`h2#URfzbGpaFTzyxXg)vy0?)BuRG325vkX7H5Gl)F6j2_l6G} zBB#lRl$`ksc$9UN3>_2D*R~-vl0+Bs4lvW5>Q%ZceX}Qf4Hfh1wtRl|5#@*j`I z4<w+$>#;g?A;yo(ahmBxWp4ISr`e%-fC8&OaXlEe;7IZh-`>Gnep;n{;0`F(8Tw)X zV+DcvWvn48hV`d|&mn}y=Q^0?Up3RrM}fx;Qn5`3fx)YwnZqCp1AvgGmNWdnqN9M8 zq7JQpqN5WO9c=@%;ioB9_@-0b3U?(ui1}l#poGldLT%_nMUX~^8#dn5B(u1{1$ibR zdODF#!0N;K(v{TXwUp6!oQ>#z-1NlUNZFX%{X7;GM!HCI1gtI)*)zmj^zMUG<aF?W zM!VkO<m2fba!=2rNJPXvnNzyLeJxF(2fp%wP~^LUVO|s6nRj&YriP?6zh7%rFpeYd z&Vy#K61wjeA>$&viVmA%e+}8@-S_k5B-~#hlUo5jV=;@f@?ZFd&FUOPN#D#`t5S&U ziwXL8y4vXpW6Xq4(|+gFr&elI5Y0h4V``b)ITe)a<_?AF823Bg)P5Wf?lwYIMcA${ zo&PrTCnZ|a;sY6R1dxz38(<Ub(0;M+pTqZN87PCVNFLuLKRFMqK`PW&KQr|!j*uhm z#(Q0C<o#$L9{@Dkn>xJg*6uL7FxZv}2-dw<yDy9IYYp;w99r)a^SwzT#Q+%S<z35~ zf*wL6y@#^R4onr`Qe4=0%OhiQ`P6bk8Y%6J4DXFe@o}?+c6Eoho8LN%#-7iq6<#@* zi;4x2sC`qrDJRCBCVo7WPmiw?GmeO6+dHO`h<|TN5oniS&ljoDF}EN8xFB9XD-R!N zZZ>)EB5ryzKv%Wuvmo5}x-2EySz20n69)??;?b}fyRSd`#reQ^(*aei7NY0~YAgq> z)DY|cLJ3!>fQ&hA+S;$x^!PJsPbXQq+kM9Fl4}lH16MM#yop&Ck80!2A&H*|Bx_|A z*&XcRUwab7{s=`xm`Zr)2|b4|n7E$Yd`o550>iy4S|G{kneLLLnH~d+lmdwg*$Gsi z5?h_)^TO&x>(?eRQa5%#fA*jV$@n9ElF{JCZ0G7SLqrZc!nM)ln&skD=a~*S(Hp{H zYMk9Lvv1FPru~`t!f;MAmeL5m0077v6tzh;Xb<b@nqcEc6c*JER1*qK&B>qR>*&@g zt3^(Qo+(bkXUW)5mrAfSJA!PvscSEvIhX6HDd&92v#GkWvIt>F1O3zQ=;7kjdu*>* zn6*_*^Ur`UbN)!luko-balhO}IZ#G~SNO25$p|Wg9`_Slek9RGa`pjql%(bHPD4>+ zi+Uq0l|;{33EFT)bC;4!I!$BJ`;$v0D~#wOo{EM8*|tOkTex3nY_Q%Jotm<9(jHY^ z9G>piDn2i79*n+x2EsU5DKV?SUR)n$b%t4PJKV!MmjVB5kE*{aFvu3Dq-+{_Wdr)R z;}}KT!bhe86;|RjtK?Cr5MbZXzchb0HigR%-SPf>_w^M6jA?GoV(qSawxZ+nTYo=z zaCmWpGHrZ^okeM5No=(0M^eifj$wt(=N@Xc$h4skbP#AbU8K-oiGl8-+prh&lDmKB zyA|U-PWb<W$1(Ru4+jNpbf?<13?@_jE^(LQ`tC3X?^@8Bh<%Ic?_iVSpE1Iszp;7m zVHP}{_iKD}-hCC_J^mY@1dlhEJe+JJ`&&NkO&b+B)82^n@;t2*U))(sbsr-AV4>+Z z`yS#RIWwcdgBv4^xJ*4}*qAEwdbBorZMIGbYsMyamC-cuP(-&hS_e;-Cr1;ft#s#r zDM9d`nhO4h3m}u{9@xrfQYrgF*NRcT6^nt{JaAbw!m*MUVq}ciWlQ&o%Jtyk)Ur?p zX%qOZOTpeRkoLRhD7N{AG^PdBdi!oRF{ELW-yfD=bgYHQ*93R@^0z&is!Tm42-DVF zJSGrXq^5^re7OO5Ic$0Sl!>AxH*dC&x>cY5khu!xklOv^9{8q)nl(i%?Ci_b8VA=? zVfwg-tDE?7{=e5pgRM_Y%7Vp)G5lUB7szO1<izOEfT%jGWUKW~9lko)Z1g?rfkHZU z1h_#wHQ!bHr2=2ReECVsnSw;nM`qL5Dz+zC1%^|yzLig+TdZUnx1-iovOQWt5o2wl z3mHhMWFEF{hLRiziwDY>A4{ScMBiif!H<CD0hYcm&^^y)Y_YzrHtk$+yWY{*zS5vn ztFm#TkpX>jFq92+3+a<9-gd<!FfIPH0G5~nJ=JnXv&v0j386z05+L2UxE5JP9CZs( zOgkxy&}5CW3B5<;Gy5)S7AmSjN==j2<7<(u#SeI5UZXA(R`1=b`&-S^04*ioX+-K# z&qGXlh(Ez^>p32hLCwkv)UoU1D?Q~~#|Lf@mX3{kyynQ0qHvh&q8X<OA+kLJ64SB3 z;dca;u4BmSj;gFvK2Y*tj*p-YYTmPba3)0CCgLXUb0wS2Z3c)|%v;TTr|Dx9vhHi; z{V>y7f3~UeD5E1u`$f98s<tPsdYy(X64klXd$i-HC3I6x=@v9g-RasdG)W-qLV0%% zv+>3oT+sc%xytnR!vXIl;}XX&&r1a!v3cR+Omg_(#&8~fRZUV=2Nh}@aZFpu;(xb= z6(;1K97X$F`kowX?9$Z#q%T!@8Zw*2O?AD_kg--_P`p6(g80viTwskO;h%oO>iVd| zE;(WkLxaP7>GSCdoWAD^evf79@~0kB`LVAAW96?h_LjEgKZF1s9$V|EzURX=n`!O3 zDp3EZ=ahRX#qXk%|AXfQxciCwwAHrs?k-d4&Q7s|e9*y<1{$`Ije94I152umglZ8O zRjsbSA}Xk4QT%R<I!|!4wm~rbXel4#sVs6;n;_)ELY>XTiUzCI)T<?jky(M%%xXoP z99!IyBG+72UmVnQDw}W?1*%V>yR#wgth(RFH7OrVTz312;XJxA*_V$gV{)##aUPtn zhOD~lclE@^Pk)E5jk3q#>C*1vKNQ?8c`0r9{TM&SJl%%H%w(5$7!H?|D+Ri*(eCSe zv(rv{$4yH1*ks({v|T%zxK%nOcJ2+~I$1QNQWDv^PQ)G5d_<M|uC1L21UYxp7FYkC zJ3ab(nmlBpVK3Hpx{A4^wl@xe66vk|;cIiw+1Rt>L87lYl!k~)zIVUVi9Nv}T>rg= zz{=C6kLnp?TBFmn+=~o$-LYwK5Uvt40c+6;6|_s{TSEwKo{<8{U<6_2KG~T6;GHC3 z_L12k--C=L7>uxi)}Af4^Zc(&ko1+jR`Bu>Ed?ulQgZ-Y@6ZEJpcD+Cc-4CMbn%t` z9!^@>$=pB|@v!A0Ni(ku+rwQ_f>ikqpF=K|DB$8;l4w1iT}TAYr;Y9<RTBxtDav2= zT@~<s?dc}*nD3=}rybTm8xHoG-V`^s{ww<84yM1XAkt<=Z2Wa%01F-EnobPOm#3Fs zJsuqL+}tECo+^8*jgZp+_^rE0q<mz3@~fx`w69pn<t7_49%R3~zr-|J##CJfTYqcd z7+H@s2{~>l%c+K2nmx0-4nJE37mKb++MELhBpVl)^|x7gNHx3hlnnpR%tMHRZhilS zKcclnz?xND;iPNd6LCI1YIIO;?^rHAQf9j7_|`?c@gKworfklvlA|;R6=g%Yo8VmN zADj~Ff$gubtX&1(S0PRiQ471Hz>3AeEjsDJq-?cv&taX!1e@$#9?wewXP9N^d0qIs zXH#GQgBP9^`&8gh6jTDz1TYMFrC(k?BW_~h(q#ATzBz<Kyifj5^3&!IXLSiY17tm? zku5eI-huL&DBpO|p4y*uSP9B#j*)n#c&!vyYf}{y#Qg=Ev}}9|$#5PVO^pD8Yab9& z)5$Ea3V!Fz>m-=ZYqfUYHVEn>cnL6Aa)Q;Q%e8KGYw4M$<yXeY2Y>y2oe!up@g!mC zHb@E$ZOtd<c*z#N+fI~iXR5>0<gW!dYO~E%4LBgT<0ITxgS~wY$%C0iR}v9Gk5yzz z%6_`d%8vlvQc{I{qVY26qZc5S2^PTxv_-5aN{ilo>JK6zmCoAG1ORW8L;IK19jZS6 zqJJa!qm!E&na^&V=WH|Y^SagG+cwJ~vi7vinDASFqW5_ui!+l5y1_uAIc6>Wxj5wQ z)gaI-wM-PM<HN`>6k~jQO$_~;m=iqZaI_QjW=2fc5!L?AjQJ5?Y{ZZdMPTbL?-n{y zxTa+J#nuGt;~s>&qI81k{YQtdPUb#twD4CBV;oMW2cdY8jM~(QGd%nWl8L^|-o7kU z#g}nL-Nu`7p|oK~Bl!=;85KrigAX5!f7>MroUax;kOwJwrfV4yEfn9_kuL5)s7%f- zy)TnkJF?rdRUJ$iP<ry)4Pl7B{#?_j;#(p2^^$fm*d7vwL1&c8d~&4MfJj$^wt`bm z*pCLLCH4D<4suwfJOWWU=e{SRXD^K%c3LF_n-8^5>iIo^kPl`18JUnkXLzF}_8kiR z@nCAm9Jnd`9n(;YL~^QDdunKw?dL9(M)78AEAQn5uPHd*fhla8BxL*Ief4Ox1JE7P zQ`+D*n5PSZr>VpeI%@J?gN$2}u?=?xr)95{BqF?0xur8g0ckyR$GO3!>exgg*+JRi zI=cs5g*q_sq2}}KT_%2NdRX@FC2K7p0f4P-P97&9l^t&u%(NI(K>S$2kUC8Il&{(d zpA{`Xz$}7KFMfEZ;`Nd88Ta9GLZ>_RBLi5@;``NlBGYtDQvJU#UL<gUM4^B45#6TT zw!hwgB!6c;q@HSkiOrTTZG^9@4(D#b#;=<j*lII!%W(1gXqat#v%aKgQerI#q`}=w z^WPj8v6);x;CE4hB0m|cPKgKpE9*XJ(8f{=#63lLD`j^riZ<zQB?-=Gm@6WTwB+S^ zr!zd<e*e$c>s}LYFN5^?_@ewvB`rN2$%Op#v7m0qE}qtfM$Wz1t<t2Aq&~^A?2#NY zRLHQae6HHs)O$(iXQ8?9-pK#p@gpCEOm7fw_w-ibHrdzVdy>;fe}%+L)T2uNm^PSV zA!m+O_e}#~(fXxg;^$;<Gu1^APl1_3-dMvSozp#A&xPIkw0wos#F*U(57W&JlW$l5 z!Mhz+`%90HvodI<cdrb!mihX;NLUD(@-7R*7`tMeV{UJY62xmG0GViW;>Vc|h~)Gv z*dolm7@)=Rsh??Y&;L?#kFORNq!ZFpnjtjYy<S}de?04|ll-rOxP@YA6uUUMvx(@q z5shE3UO3)sbFWj;1Ivk@D3?BRlTrY^i!yr<--gZDJ`G?i16qG+6FgcTod5E8$4!=y z$Z@=6uexs5vJw=fKu~e>s&QGFJhODA3C9FA8dO^7$x^E?r#mm`sl|jLx4C)94Fpmn zIJrfdeqlQSE#n(hN;2<eE4^+!@T1NRFrB~ZrkSxJhYeD3{~pbEK}k-q1wXAo6&)u{ zl@=Ye&gdvBR?EY3U@k%`|8ps+ipq)s^5JGlj>~3BliMZZBKyLR2b_L5f_~-7oSyzk zrT-@<FJqj);&+NJra=<L$sfgP4#SL8)Q$eX{)#w>ftVwJ)Mq__oVEwx9hSPl>+Yja zc7I^y!Cyb2&)?5cW<xukS<6k#Ee>P8aYXO`?_A>BcmB>(`;t~Fkgw-6yop*x9UxUy zgbkX}K8b&UXI{g8L4_tXZ7Mw9mr$f3o^B5(mYpe&^|*6+=>v6a%n6*zb;lPkd?`!X zKv|qY5}jovkCP#dlyBlMi*W~Z`<|zUEdK8Hr3D^w$nrX0;l7cr_?WWa8Icz>L}=0M zmZ6x?S~&jN!>lGmaS+@eYyeT92v&SCTAN$*n((C<*=guzZqW+ihpWT9ar^<fgzS8o z^lNWn>N!zF4t?C6J9Vn$s^@87@EVQ|Dfqs*IpjO3R(Y~jD3l2jdbL6D-fD&z9Suw` zK4Nu;mOk+E`^D!!wF2!>fS4D`vKDVDx{VQh@03$Nqtz%MU0}NF^UXDv@Y|Y_9F^Q} z2b{G;JqN;QPMP0M1N2fk;pBuwdZm6^p?$O=$!=k(1ut?M1QVo?tXU=cEg;Elg|Vvf zVRZj=aYcg|_(`KZ^OF1=?7#nKv=&FVQ)BTpJcoSJ89kH`chXdzPSii)Y+QOF>)omr z*Keiil_}Y~v>A8kT&cAvxU<c}FG~=EVXEs*EO}OboeI!HJ17z`d`4O)mx^zmGdG@O zRMni-5{B0@rl)^`K`o6P$puUCQYpeKa2@B8CqpJ`CL&^!Ro88MkjrmaiJ=+KzL{YI zedI&lG^;}MS?-k6>Q;sZ#t2|V^jugtfS*$k*-^<yLI#4AwY_Li?SIkdXI343sL~d! zD&c4vQZ#fP9b|u=Rj7$d!!Z2=*f#QHUKo<KxS#@K(kd#ojVRvyw@LoLLl@*>I^KEE z^ZuJ8%rf1S&W96R1+!{zk=DR?9e%qCMz-$)t-`?rlH!XAAV>Y_0&OY03@W8|dHF|f z4_9R26{{C`jo!7Rdg{t8WtE$TLQw1UAo2`og922l_J)EEpsQD9;JK{w^aCqc4>~G0 zsb^%y_azuN-&SCf0~;4tv2oi0nGOTAr+Id1jat4Tu;OjWzbRY)JKr|k*HOv*H{X_8 zL?%SLP=bp{15HY@;KeWso9}zRaeJd3Z!E;C-0ED0VR3y5>INCu6|Ypm9>c|;We-=7 zqxv>jTbetAbSPq5A3;Xy!JQZ#+60_C=)tJIVH9R)u;0#jC;M4SJ}{4;{8hO%+iCL7 z5pGhQ&p#y*adhX$?KhC#LqLKqFYGtaU-JzO-`4RA+68{)d67$CGT)m@7j-}A>@+mp zO7$_n(Q!`j1EMh1GGwK1GhH$bieHpFPb`Y}ohMkK7{JzEO<bNmgOEPj?0i*@WUKms zx0?8IdHY|XqTd7AeWfmj&wn03=xa&1rrp-9Ic65~@L2jRWg;xG>84YdE~~N!=0vo# zTN~X=RBhHmU7Yp;W=cO1w!qNb%M?`z6Dzw;a#=LFA<O!eoom^9)?-crTX5k%hqzax zYTkZ9Mc1A_z9?&#YI{LTOxY6K^E+dWE4<5GjACz4JLo{~*)8FnrRQI#1E<w*H*bC! zp9wVC4Z=^hzs=^hrysr*Eh*@~F1T3OY0k@loNBBxx4ccP^PCEn<G=a)M_cq#+!L9E z1Xd0gfQL>ov~k=Is9I%=9zOi~*(kjlFDGJG{#RZjw?&FX6R>qx?<Ja(4htG<X?dZg zFZIJ<iMr}Pcx*}j=XALewJtKX&`KoEK^0sWTQzK7&zMQcx!h*)ov->iRr;zHQ_zC7 zc-E+Fo9ut^hyyoSD~Dd*eWw^b1E{y;^7*tIid@!763JOzoxAPqR^{2=32h}FH#K%y z+@@c;b$k!K7^<516ZWmz%p~ruJL}_@^!E-<kJO0Nwbd$uz8!_;I%ZHA&Z-f6>1`J+ zyH%&X<j}!PAB_1@=K6<L>OdL`I8ejFw3t&opWb^nH0x4(_;&kjK#4Z>Y5tYW{r7@W z?@#QI?Q|i^4jPLeJLF2B)j2AEe<smcu5d`La7dF8j}d0z7{%qehBRVffY3sNrkrkb znXdx%^9d%jQ`5W|S+Fk0aH&*W`v>v>mg{JSt%k`)XQsf<`1t{NAE<&qmYtN+(d16h zh>hB^eWDBKPff`nee{^GCUg%w#P{=zou5+PM2Q~%DqmXFj+jr8pETP2K0$)=Z)$eo zm9)kLSnKPJvF&}=X&{xJqhQu#71N?uRe|0Yam)@Jpo-70r4t-u+xpQQ))MP}L<&$* z9r6F4cL^aqmi2*;l$<3yTW27(qqeWm^V*o?%IrY<08zV*PBW?6i2F^aON(vHjUdK_ zm-2+`d6QWiZpMf6PAK!LE0DYx>GDC-0;DAA6y|Z1m$Z-n#y`=Y$-13-uhvI9$*&29 z<P73vRUy-H9LNa$z4ajl=L!Emxv&QV>vIl^*Y7t-3rtz()lkqqlaAMo+(2(^dor&b zFLI@9SaQ>#w##Q0kxGXq`&pb!rHX%EF93{qU+w8^c+6x4Mi0p?w%P6tx)hf(LaC`u zmA-2#SSc%bWJC4Y87Rc)Ppr)BR<c9XT10wPAB@n2=z-GHRqd=*r6FJL1VfB8vx0;~ z%)Ad3WAwzcN`?)->jCqlcrb;(?;XHmg5Q%!jX$sGL;7!$YWROj$u<x9tS?tAKLk|f z^K5SgxyrSkA5*7>B$gS^@Gd?t$#-*mXL9u#d({oy@)3QulLMUss>YY&<1;S*+TUIw zK=TC|vum3g7PRqj_;9~r3`L7rqU8UQX$)|E3C&PDNS^GV{GcGrYNp8hK6!_OhrI>u z`OWjQnf@IIU@EKJNi${CXC&d$z=4F&+{J8bPI%G_pBSyrA(5wap0@PbOmy>2U{&Dt zN8?aC?YFfAA@Zq=`*|9J)f$yM^FB^`EPS4}2#s6@E<ziPDi2ytJtyxDS<fhUWVbQ% zhKgf>zQt*6MM1az63a(YN8gqudOm{BS=s~%GTemtK2ue##Xo?7aL0uR@N=UB*>2UY z^B{e3-@)AJWxMGt`XX1zu)<WctK+aJjcCD~;Z*RzD#XIgD}j^HGZI=~Z2O5rn62(| z$zSKEUbT>)btebRNf9if5G}b_=SsKarQFBqL<E^m5<O-9=14TdAxQ^G&PV1`&%U)f zYr5qV@85a#-a#G>iv=FwOn4S`0=*)@p`qCn!TOmJ?p(pp@CrnI$)D!9|F#wUrn~f1 z_27Qt=Rz8ncvW+i)A##izIZv(if8VgF6iV8s&khtIypta_2;9W@&Jq$poX93Km${c zemy9|UADkq)-(IOXTAY55L-v@vihy*`Y+~S$+I5dgMtg1c(ideytq=SR5H{zbjHQ- z*X^%&GdF^sU)wI{D!*{b5ASxkPQbn4y$3#ml$P5HCYh0Mx9|d7`8>5hRUoysC|qZb zxSAt3NIfZ?R@$xoTG5uPc4fz{yjXRE?7GaM^QcF|tHW;pbZjW;1rCAl_wFw{$csgm z*{4nN*w=4ZSIf%^F3ym}YiENck-C+D9Uh>$tYIoaXy|>(bE0Qz3j)O>%N=YKCZkLk zS1vvuvZV<p8=n@SabdcV=TaIi-N~0PeKlBLbSk<5Tw9!5>e2g2B~EQ#_^fbeGb>vy z+Y{}z08eq$OSjH?yEiR4rMcLm1BvDY;B6(l<6&Phyo#;sJC3B+17EdmtU4&H%R7BM z!q*zmFC;)KZ(@eJTuKDX1v7<AO7uCuffP9nb>gKXPG=(UagZmaTM~|QYF6uwERET1 zM={BwQqev;fX-Tk_d-Z@+`T(c^pJO|5|8QczTnP}OS1Gtlr5pX3#kL+_%dB?Pyw)E zM@8Tr(4m0#OuO#X3sa3~8CAA$0=kTrYn!HoeF!a>wkMb<f!uPI0dyekazCfa9;6<* z8K9lW^g})w+TsL>1`wA-QsB+s;i8k_;_;DGXNo3dtu&DN{XVu!XcWJsQ$ddVBpY?j z{N@)${<W26eL1D&h+&BxI50?*Ml9J)dvqj<H4RQ`AWi=AUNZp{vXR`e4)**ubcwsC z;&<F~21+Ujv%G+sTPBjzQ%Ds8^KWyu2g--6@LQfTr&C1$^`@D^Dh1FKoI7?_&ds&S z`OH3gQPoSFfsZYT_9&iZC&tFRwM)dfn&w|mX{6X%K;fAt!;y>dKgi`k5B<hHi?6dN znD$3F&>0EZi9*SVop^j*y=Pij@t3|ipw5|81AYqedF0Z{C7?IGh;Y$NhaP-qx!N^k zasOSyuo<D>Tv&)K{e=86H5-!Q6w&8sj)2Sf03DO~o?=BsOYKTlKySH`{CE#SbMyEI zp`%c>VO9~kIT7;Ka<r2vq^Gk&UGf=0$Z<~Qy%vd@VA9KONQu*7>4&ChzD`{t!H^vu zW_)(*10^Fz`oAwBv7bGrH-+f{*p*$f3m?}0kY+Nc^MW>zJO0U7a6U(iIUkXr@97A! z$?W2P@E+_ZWd6SUNorOlv`|6#K2+mfEy1(vpN!wi41cqekdr}L)6U0GEn~3-+HtSf zHdhY{|AW_zI<E3_rOV$8;FQNaF!GK~r`()K4W@j_lUIGVU=5JopKBT;Fv4P6k4-fd zt%>^yjIP(@wNI0_<T`(l8k;+RU_gMXD7V7!CAc7Uxyp{!F8L|%M^q9t#;Y~S-#`wq zai70(mMw4sqpxC|Q!2)c*bQ|O3Z9Vx9sVvZ9qwX;bbF`lWvc0|9vPfR1{or$Z$GEN zbYk4R;<9ww`)_Q)M4Vb2In;q+OKSf^u4L}J;ewEsv0GKu6X4tyv{I6+^@w=$<$Ara z3YYlsHqRc4*Ptj1EFKgBQG|m6jQaIODCm9lTZ7`T+cn=3cz6S};mm0d_5F8CuN981 z@505QPDqOyf!Ll7e-jA;)8zf+DbWLMEdWqES|=!)n>#rro#gA+9_0bc-kBbO82=fc z0f5)2h)gsfhUk^mMnvfo*Mu8BM;2q-zea?N0I9oL_X5Nx-Dk8So=zpaW2vmZ1q)*K zre8FxL>g^t_E);Ij5WUn_iW_o*m2h6M)dd+PUQ4n`e<!HuG)Sbw8G7*W7*0rr?q;! zKw<}i#^`%QE(OLDLAMx<dHS-<5*Ls$)Z|fAv2}R;R(;I|ye0G<;PNqT;?2$Pt6rWX z&>_$UgB@r`(r5`k+~&CeF?-#7q7Mu%5lLGER%%mpXzs5H6K|_f8`md%V%-y8YX`aM z->m^15O}Yt9~us6Anrk%rYeZStViE`)E1ASlZ5aa(^AI$u}F|aygpFPym|7gCxS2D zy>q(VN95Tu-5<F%DXQBwS)PfPPk8*V^JTj^WUA}$RbWJ^G|9DwdlD6Wr5%jJQfMCt zTW0wnwp+ZC!U5LW99vYO*M%;Ut*wQBbVrOca_l_obdmi_S~?$Lo^(|1YAVBy8hWlb zP)~8}FSYtiX*~rL(4N^Ln3+=xqVYXh_Vq&-Be``wF_x5-hAL0hwDQ3B@`)$5<E{P2 zdjU=Zt5iy7nBNl1cIwjC9y-tEuS}3zZx24g61MjbPzILQ8B>mmF|`eAYfmBSq&G?t z=p*Z@L86uPO~>1+PtaDs?a|>p%o@%$=2%`=(<xZLnO$sB^y^z~hvKgZT%5^xer8#v zLOcR|2&y8&&#?)+W)c2x%1K}cHTp&fzU<Le8O}aYL|e4r^yi83xpnB)Z}IB}g#vwO zPY<KzL1A(PXua+6y*m$D-6Tsn!?Rfn7sAL7t9k2bINZ>ZRM|0U{=Z6(;ADaof7Tk{ zleV({J8D$E)XFS%#*oGvNH2odBD_O}C`3|6W~tCLu>|z-G-kWFN);E78B!JMlgU&4 zB|CdEWaX6@G*(dV7kmhMJ)Na{HpBK_GoXKaI)K-zf0vI1zNO14)V#0PI`z%F$Vt<X zqFY8D87Md-t6v}Zy=W22^eRVG929~Wi9>W=q+zdgMG*xxmL5)0tWYE^PT*3e6u`R2 z?*Cx{;bd1uc`%RAow0)0gJQJq2`j!ztR5rmP31>F`~Nt5>#(N7xBnZYq(mvDK^Q5Z zG$`F82BTz@G#ifYRsku=jgk=9=z#*GOH#VKqy<DkI(>G3fA@3$?&sg<-|g7v*s;$( z*L9ue`F_9N>J4FQ|3ebFw>4&A+#tqjDk$hyZNJG{Zki?*;e(jGqAz?b%J+P+Q`3z@ zLtoJhN=6FS6@5?jn(D1krAF_2^1|=c;;BCa{yqlhXqixc&?@A&amhqVd_58srUy7M zJP=#%<`~6t^z>&cE=O+hL?AQ$y0GU~w_K~@^2SAnW1X>4*49bt<;$lb|L_z+k9YpI ziR{wUx}L?eN#uFWl?EiOYpw|w(~|B9rBu4k(=truX`pePe}frbrSa8`VKldQ%P?1o zRUZk5v-+N+9k;9GQ$c#?>7u;{70&SBvTD;)-Swu@av--+O!kO*dTu&A9OJB|>3&+G zh_5TC$o`YAc%7>YK%grw3HI_hNuCUTI?2CT=5ElCGg4{h?TB);_y1H<B<)&-!Z3Y? zjABss0$`Am3bAGFD}x{)hACNT4|Q}@_D9FSG4pd83|(wQI_Jm?heDLcj~`$%BKtJR zpp$~wBAo6rS&?FJ1Qopgs%P1R;q~nE+zVE-7Glpko|~VdgLQ>OYi9iKBTwX&@5|TL zI?FFOk!HARn{`baC3gle<Z<z-TEJsQLXYR~U5{C5uSAzJ@<*)+zrUv5-6mFjGADjH zPg1&$YZ2@z<&7+**6we<oozl?mLQsWxs#pI{^gZq?L893a@qL%BgdTE_=;s$Z=y?^ z>p&mf)J_P)yq$fX2mZqodBgV`XW!2-(h8+Hc$sLB+tY^2c3mu{@O8e@DXn!`_riXc zc4I8>`kAJS`rRv;fp9s4?zgqd?C&#hH+7ez^r21Mk~@L45@vF&8+Rb5e|YalY~vg+ zkxyncbg#@D+}qpMLiY(8LmB5r%>Us<>pdwvJ}L6+2wBfGPIWsktcfAZR@&e@C-5di ztaEX>ZfRGGKKm%LbxI-fsf15+5p4XW)964Wu)CtnePo9B2B@iTzqOs6o`y1b3lZ7e z&_kDKS{J<F-9y(9!8P5x%floEf&EeD^udx{3#MNAHtLX9>fZ6$0QZR%WC_IEY#JlC zIQU@*A(&CSm<_z|P6jdVNY2B)wgRKL=Zz-6&K{Oiy<#+O-X{#^bUyos*Pn-)+&zf! zNTjQ_@O_j;^*zq<A0B^X3b^d`VgJNsi6j8C*Yh(aQy;_+^Y=KW<XmQohV#BHTl(?j z^>_Bu9&&9)MBb`Z?wv*3vDH7kW!&Yc$PNQ2egEMNCE!wYB5}DIIrL`4p{zJfg(%zI zF(o&ud?b<){hiYc_*H%jN6KEdMont@*)T-g4GNg~Y|zv!ShW33hl+D@cC2c_g(%%+ z)!YPe*Yd|*>;9fZDr|%z%?88Q|N9zD^MLP4M_2Wn!N#8euN<$^yX!j7i3^eC&BqHa zh~o(_p|5)waA~V6lxOc8yrQ1&&P0DJw3(R(Njc<)w`*Lg08+eK&yVESOzG54e70xc zYOu`6Bnz8&qOUPx9jxT{Rr;BPxH#Gu!T{f~*5psvAK~j2A2zLJ8#%qy`!Bp*YGgn} z2%qCPP5pKW^@nC6;}4xHpD63J99C*-IHMcQKX9m7W@}=F7@$7y5yqHLV&i&Q#U<)^ zcF7>{8=k3rIcaA#6O{RD+Kn)sds{t0|M0BwJk^^$X1VQ`o~?an(w&kjWf^>t@a*?x zh!cgco7?FciOqOXMN@SoTnB}t!U{Q{^-7?F>l9id^R(#3wZ$}2IH}qu9gbC!GJkIw zb@Z;wh?LX?SsaAQOCDFR0?>sspX`oZq?2Jt5-gv=Gh<*iI>xvaT2<3?7EJbCS{Cu0 zt?D`L19qvBHG&u*QmCYoF-6?Uf?5Y$lbZHyut@|{VydtFjDs?wjFimN<&=<}Plbb> zST1Z~_(AjiX2Xl0F1Z%ta?~zlM&I<#Y=5=5rglF_wd1KOgi#2&+9FBc%nFr&bq0Ca zzl2loDO&Fy+{=kTM!Yrpm4<@@xYAff;D=e3>?~&in*^R7|M(324DT<yc3?~OF(uQ& zU<LXA8eVR;=IEKd+mk2FVP(d1!`E>zh+utOKEMr+@#=d2he5_Iq*|2!q&>s^<E|%B zUteTwiPC!(f2al&g(9pCOYA?sN>EQ;WHkQmpEF9oX=SwNl{)A3;3uJPSRKy+bSGac zg%mX1TJ$@t8`%^g=EBZZL?cp1<Px^$dEf1QVj+v-+oD3no9c|KaI0)G5ZR2~(B$|- zWtV#j7k7U7yIz}fO-ouCw-0IOnlkt`7gwc7Ht|6jjid?;#zDhx_)<)`4S`eFICa$B zpRcrinJX{UozwdRZ$g_;gfY9NEQg}kG&2t$(isK$$byncD(BAH6+;5t+x>N3BB{8x z?lGnr`Lg#nS6sZr=~6~CrzQ=9HOE2PH*W+dU(ZmjuGeYW1F(HhEqGUE+`tJ|t=xB? zkacKpYva?7Dkj7FrKB*B(yM%WuN#sEHU)@%vf4V*Q^xD|A@RxI?Q}8&of`d#W%A?a z1n6^ubr0HMykpNo5{>(zvB1v2hKb|?Cx*dxHj^w8FQ|p-*r3WaP(8G-$nPNGS-VD? zz1H&`Q94ANBhQq1`^_kgmlkPETN9@nS5~4($3#xdF}pukZq>a?;FlKI%RQ0vH9*Xd ze((;%$lHWJe<L>OBP<pg;TcB2VVGh4{qyO2<077MIi2+fg!43_{H4HfY1!B5uazbr zYC(-@iH+iNONsJ?_J=8kdmXloeH`&4zp8^`THT)I=9v!}S-PlZmj4%}5XD!613ol@ zaD<r5d&NT|Knv9dhU*x(ZgT27LA$^{ewL6<eB=6GsRd_(y1$#fB`lK^3pKRc+ziY3 zp(T7!iFtwGzKCX}hvQ~s;K}M5E^0UYaGhAy@=MZnnWL{*nm9p|NlO0m`~v40Z~i8| z+Fi;%AyZK>l_8sl#ppmZaGngRVcZSi*L73ie7NOd6~f%gV{YVU;Y_%UIUI4*kXnLh zO}Pkw*R1DaRG~EysYcHSbZc5|1x(F!Yip$5qYK>OGoRgL>sFP=Z+?av?P{Cd7&}eP zp;8QJM!pzrvfMny>0$HYZCHY*8DZ{1Qojs1YEer-O}J`1QaF`0!>y@@hb+rxK|YdM z*qsDwB~sqkr(^h}&RIuZT*n1YZeE|2N|MdB*69+Wc_Q)Cz=aFNM}{Z*EQOa~6CZ5< zt&S_9x|~Ear(`xEA&c--;x*ul=bS7%_u2gi3It!n6l}{F)T%4$KDm|gCfn#{%@TZ5 zGTe<1;mMI}e|p>z6)6+!Z<WB$`vd7ck^UfWN<kIc5ul)5Q+^T_^I_s4%NM?Lx)DWe z$!_sXsm?&nOIKOLpfHxn5ap8SsEm#1^mu0p8;{#5f&sMH>Ak4DgTdx3oguEfNyoqJ z38DwyztigqfUQW&O^<gDV{k?rsF&&U1=}6oWJ9cf2~gG$lp$+VEh^gW6czO|^VG7T zOG$s$_92avGfw1~@cjNhKBp+(p*CS`Rl2+y!51XK*>mO!vm$+b9!bGNmM?-9pnNjy zCxcWi4i{1*OoDHzIRPK%*8Pz=`a(Du8&C<5eYU$N{tu6|MWQ&(x8((9vKLXgZKRG# zlv^X2Bg-E*ko-6tWMuRI%Z@miP;mU~Vt$z+HLjA5*;s$)G&{I_V)BW#P`-_E7t+59 z+1HQZ%A1?YQ>CGC0&wsfHjxQF&iPEGd=OJr_z)#H;zfbK^6-hs-;@xa18YHcWFr#5 z*X#M-{S=oO9x}ZoyIRqg)q;hs+9U}J^Y3A}-2-Va6$sIIx13Ybz3|R;{J%{-f0|^w z(r6_kzhX888(S=90ClWGe>gb*bP@CZuZfmbkdRre>PpviHY6ZJn`U|me2oH{Q>$6` zsC31qU^vb$Ka~imZB2e_;3s4F!5-Hkm4X9_(g_=1_+c!{s_EdPV-9t8`LP!ggC7Kv z4Wl23aCLnJ38xHzgpoBxj!ki1agDGs2c`+}C0A$TcNaL_PvT_FQas69KAvr~&r`JW zS2NVG#I9i)6PO#74nMm+;o%VC;sa<JgV9{meCyr*Wgm%zwSyRLsJWh%8Zdt9oG&%< zKxT%otbX$UG-t}!|45JYi6-fJ;JTc<DfU88XTLkHf=ykZlks$t3~Ss!xujPBcI07B zPb>gh(4N+@<HB~+;2_OcJ8*{C<n?$dFya6*g?s|61fH0^lG%N?tXu0$)~}y>X6}_! zL~vIa<cXh98WLqeR%V`+g}pe-Dx6@=_BNa&i~s!8!v<nr?+<Uh;(vzTrv8+t3n=V} z;^M&D$7eMdU8m6^z2hBT-2R7`ES%1^);4@^ZkkOwG#UcrgRRcQEl}?Wd$xT2JRTvf zcxq1T(I8g}W4@j9_4#8w6xDOP{l@ge=)sW)-=g?{QWNfMChmA`fdAH6GT&%z2wmGG zNtD`?x%+IQdMC{z)?wM%1{&E<U+^4_t7tO>--mw*uP>66iDO3zYEnS93mn(=rhN}> z<L-fO9>GWU<A{>VbBOPrF+OsY^jyiJGoKI{9^uxL#POR<wy4(<vG)r3TnA+$58soQ z;(P&UoG(Cw<5SY=z#8pO@aLb(rU;sosPU_By)!on_;$PURFLa}<eav$MixIvdBC`R z!wdk2DUA<EHf9_cLb>t*5j2b8DRK8d>r}*c|E^y9FI5PWb<rIU9VzTp1P%B%4>vcX zU4BTDR;GekKi>Z9R4{cSIxz3G8wHY&o#LrriG@J@MVeEC9csbX<=`n7x-DGUkkJn3 zb%~~9nciHfLnz$SHQRZEJK=?d6vM>&$yvGPpK~YI{d)Y7SAZXA52*f!xA1U^I72!2 zh;y98@EfOcQ*v_f(0KA3!SD3Q0`1~~qX*ym5e9<ZcxogYPjCh$+>7;~D5I!#)sj?~ zMY?TXXrg=0+;+!ShKg+$kM@GTKvFZU=mamW#5nH~S1dG=2vR$NvsLK193S1O+v2p& zZ#xYc?Ii`)O!BMx$#0mNqDhMWGJm@jeb~%sA9m5Q=Aazal$<U&PcUv6BOnwlKD<6{ z>Ar00u0;w?M#Mvuz@)Nd(dX|CXe6~&bDI5}E(DhX*a`wXyLVbPZgG3#*I!f9T;P9r zFNP-GYU$vAt&Q*V+Fmi1c$XUo*iA*gHo;{Rh@I~y|KSP)s(gF$Qei}uW<%~5`LMdG z)5s5gApBh772+cqt>>TkTtg!FY=K0zp%hS_=35T_AAhfUUz2|HI=T<yGR&PfywAFg ztB<i^sl_|x%?m=n7U}1x`mNJ9MbgrDzFTje&9{*m!!1sw`-6WMvm`V&dl5P=^2z5A z^s|Jn%1o^RyR#-*bn>G6gMKbA4DpKH#I-LCq+7$tX4iZLNC+PS4QY{lJo|I|X%RJU zj^vEOG}|=GvTZjY^3K&umXg@&Z|jeV;V(8{%m?S*bQg}0?!VOCX>-Z6|72@sL^kDu z)pJlvP)GGuIKV=no00z|vLkY-$CmH{smTy%JbZ4sr`I1Ahlzs82G;iS^>J}P50`o5 ziEeF$CQlA@HX)h0_Gw(>g$o|#cRN1ZW*Ly=J-C)m73#&M<kS%PTUo=O+wBD%pWo4Q z2|x@wyju(#c6!pUgq>H38;rD1;&D!%h+$WkToDVvRH<fz9Wwl37!#D2var;Ox~h-Q z9x0`+q@G1oWHt#~C`cV3s>wP5M!pe*eOl7<2X5=Y38Vq0&uOE}BAOrOcz)cHp}GD_ zEh--HIhqe<+D_IQrAtVdG9mua(5J6F<wRYB+-9|^0*KkvZ1mURpxs*5%9^>)CGey- zX@8rBrlWt*z41$C&`JN<HSo2gYz~7wZ$zSzHqb&)UZ2zb_5)ClXYbxUOCRGT?(E@d zU&kuFM9~F#Ew(53MV+vyK3L(&JhR&K<fMZQpL5Un#7A~e1ZmZ7c1j=xFOmHs@}9=d zxq^+I`|;|RNS1UHmQ398!1B;rHwo$8Bi|-}pW^we;GoBfaOId2ij+aN*y|5#?*H(f z1iipd@D3ceKdhf{t_3IA@ZYqdED}|^x*^lmi31dkhHKi55ju0~v0(smfFQ!UYt`N? zIkC6#)6VNd9o;JKBC&+X7M(KlPpK_RxmGT@S}A^>`hyR&tHs4?52yb=?>OfL@Hpv1 zlpkwdnK{|_q;7wl^-Mi9T`FzUu*+^6tjygC>kf$6(K~u)*y0GwH0|uk9COk|WH8zX z(~)H@$gL?|raT+$&s%J0QKl$>86vW~0WdP#5F|;IsOD@o%UH9^h*<#Uu=k<}&v88W zh}asus}}!j?$kE**wv`<gtPMR$TmJp0<f)1#GIE??c~iL2*T6VsHvFZA6_2_fjh(j zN4jKmE#@3*T-C@d6o7SR*tb6&?@EJy0t74(+fjnvX-__n?K5e(v2-_ulv7z%6uuGc zuR~?`id(CCLJUwl{OmavWQ8w-y=m}Wm*tW`(cU(?KrP)$Cf!bzuU<M#Hskik^7W{q z&-<d1bq-VTO^@S2<NaCP(Hg6x<)hb`K%7{cj_G|o==@_|D1O)h=xF1}0-b0lRl2#) zm2g0*B-`=sfb&rQ`X`63-`+(jXnpzuy%J}8-KE#-vV{5qa0qe@(sMY^i06@XRRp#* zTRgO*$>kG{BNp}SQtu*K#V$*qMk{lzLOvVGf;?|8!am;U>B{=L-kLSGWZBBcl@__~ z9WsAgqw4Ldj`lJ8bZZ57x*}6UPbq>Xm2cUl?|4CMs;kfaR;M4lVUM^I*=-=CAjo}v zq42t~3<K$_m?4++sfSGs`5U28DLlf4je8Sx43X$@Ean-yF9M_aR<M`$;RAd~yofeY zHBJ!*ny)h&vst2DSpLz#^J}V9>{@g(riI_#;}|Te^Gs^ucjFv6v`df=Y@AGs<a((1 zkZHd|9ksu<*%2%o>*H!xa)nk!B!*b(rj;3X8!^Ls9SFAU4fdtF70+pqwP7a%pU`z= zO3!h!-#sg0*7Qm|$jUyM<KwGftI^%?Ht8MGmWjvW{P3jR)!NH(aB+r<J<$F5YyV$x zq=?mWO)bGBoNi{HWKDM|;Bs}v3`2evEue26H)J!=U=K?!AL6K8G9&jf?amV-l$nnq zU8G*qe4_Wmj?W7%7?y-jjgQ|k`S5-9EJeF*E9;UAMzhia>bg?0I8kcQbUa8Y^IDS) zAB)3s30sjy*>-M<w6SW&hyW~{Qt(G5v<Zz9)nAjQz6*<6$s%ei#$}GzaSDUJXmMO& zH4nQ!2n<i=&Pjcd+1KckXSN*{)V4G#eVbM%)^BX=ElD{iw`p0jsI8sgo^l9hNqjL; zWU!^pU6H6NYwuZt&q=CF(ynT(<X+ycbn2cn`iRMqRqqivmz|wV9XHS<7_{?#NS!c% z<Gwe%xlf^3${gy(kS{rSmbRzP1W|P|uNgL}!R+ON`MfT7bZs^KTb-#|)0h?)q9Ff6 zKrs_$(-i*BJ<<sCi7<)RBq`i6IM5uD1y=1<|1EPzBlxrj2Q=!tI_*%1#_{R-i3kp$ zCSfER)>dfIo|XL$oIck2SRB^m0aqv-|Kn5QmGQW0O*w0>kb9fi+1VbZJLfCO$EP?; zYn;q2^tYhfw&&b9NatjEV6^9?P_645{4rCpteQ(Pzk#?+6_bCsPJ>t>gJ5kWtNVTH z`vjg9CEZP_A0$dK;27uxC0k6ng2_o6&|BT?poB$uELfs)>0BK2`S*g)OhKDo&gadV zx~xsDuSlt_=>@Zx`IPYg=*B4PS1ZSsj>6Zx`!t(;KLAgQw0xSEgaR-n!s4!h@~`q6 ziU2%@(KGgmAC+R`w3?c1qu)xc(T1^}UvLD--bh^7lqyGQb^LU|;e*yyPWdq%KeZ48 z-sc24RZA>Y;q_w%y4)6?!Y=+j3&!7{MW>;E1aMdu<5YdyteQM1qF6URT{|DH+)@HY z3mpcnNMPZ7%a#MRnj*_2i60ep%ky|X9v57)_8(>^FUJkDy5E`u?+c7n&S>;3fN!;k zr8zjA9OnRv_OO*b6}Y;v0M(N|t__@~=l{0+4_9}gb1Wg>ie6v6U8e0WAQ;q<P=Wl% zYL?c({M-b0l;SR<`II8sr{xSzN$?huQ4g&Ujve{H`WP1p_R>xJc`}NEusCUE<ho78 z#-T=VAo(l@`L<Xahe4ta3{n`G!za-`%|3JSL0M*><FY^TuS}(`e@b#{2#8W?=IK^S zGkm}LBC<qgJtI-+<C9aw@<r%Mt90xA%gZO^g~@Bvh_Xt(S4a4kNXS=eqw~0Sl}v+@ zKh-&-w2-EXJS=UTBm1r1li|CPx60vkcDM2z_%;&<bDAdH_FKjXA}<d0w(YQ)YcMS1 zMc3k~eQnjA?@NlB=3H;`qDI3PISqUyzpvJDRj9*E-M-KQJu48MoPYlZ3)Oj00lD=j z@pbhRTT?-YeM;zflg}Y~K$qLa__Nn2dY3}v3S0x&sJ)^^)KjlVlM%2BDp$oTKh~>% zc(@;;GrjaPRGs!GnFjxa3{G*Zep9&-szSuQe`s=;KQoXD*=Y8AQHyqXjd0PYgj9<n z7`!Erf@X;B7dt+wTgD!1$>!_;fC_+}DCEPhWxr>-U-%tA2rmEHyXdO#0p-GQOMU$< z)jvG)f#j{?nH`xF46U^0&UPW7xTdT$vjGz5YznrYGaM41LCoXd*YuuY=F?clmhp3F zHUv{zQIYQ1lnB@#J;sRb4kQcZf6^;8g3=^cO#raO*#Q=fo&v!&l~4nyH(HP#CG}n@ z%sTa!G^~o`Nc#wB`w#D3&dRMPzN52zo@)hy+&ZI`t$w$rBA_o9$c+*fkby<;FIIFT zWul`Ux2NmwbwVjqlarAp=IwgaU%M*;SS`5)kwng^5rH3gt|yE`vCp4a8MH8h9>e9D zwlM>tiob9S1w9GV2El>d^hLz-);QK<Ozx)U$1IwD<ORZB!+5E09!-?}@+Z~W42WIV zExVfQ-R+-WJe6~@_)&lx=^!P?M}r7ld6cc|-q0dk#v20lBM&u^dbPIl@fu=zITKHh zW$eq>8Q}&RfAck^IhivlG>oWEefYbRS1F4Z-c3kQkH#`v^Wew7kp-_l9*>*)g#Yty zXw~fXg?ZsF!5IO?1pIS_@h=^gN&Q)9E!v*dUIYZ_WmJ+5IziCYrq<y~(B5o{PKA^1 zG?i49Z-@Ir`#qp_UzgA;RQuZpIak(qY?}E7MczywG4{xk23@Bq=t-syw}&OfsaE<^ z%{7vk_8MxbWMQCFqCiAHsyj+o6JX2Aps{liJM%VZKZXxyN2=?&$1nS$lKdZ@8T`D4 z$zl?bRUSe<=7AegE`?Uy%kU1cU1ss99a3`XUmbw(><Jn;P;x7k08xDd+Cv^A9Cd|E z#m%*5;C5h^mTn2Dz8<_oB5@`gbTWqJueKfrp9FSZeNb#LUUx1s7P3$Zz;NMEtEnsq z8=y|F$1KF4*1Dw>Z0Jjf;C*$lCeXtf8^R@)8K}1BafZvlEPWVL-d)Bi(lxl)O8c0< zh&A1pQkc_EL-REgSqyEBzyzG~_k5GGfD|3HkS8ZSJtKZ5BZp>s@zSFils<Qj3uq64 ziPG+t7H^i?*zmOEbH;hK2?g!H;Q86vBN*K-8T}{m$e<K#zTmJ@&xWYaeIO&Nq?8AE zp_867KcQQHP$ntSkOO>Zc)*GK>wV4JvdliiG`O&rS?dN8EZ<YZO?rp7#^X-Tlhxkv zik{5^liv+!ST#x%RT{j*SIxl!a!tv6SAd!v8ox>06W_eZX>qP34|*Z1?HK)l<F^^f z!rRtHkpqE7AaZXLQENeQH9j^pH{|TIxWC0IwJ7q$%%~aiO2EsfFQd)nfxK4^8o<2{ z4UUB!A<A`Eaq$CnJi2BRRFngI->`5E@KiWjh4^8EEGHF-0<uM6owgn;CeK|)ytdH9 zS!9ZT9QM8Vr20mhEi28VC_i&@Pp}+WaOjedEcxZ#&E(#n2&!5FW>^t=DSwhF+0sg> zUZ_z>Myce>(9lwvIhNX5RJGeh>2;ceKlxjB3FU~%;u2>jJPmN?z1<@8yKZsgT~&2u zKdXsrpJaQ50HwXGobo}2_gFeX;eiG&M6JO9e$^N|THT+FRKsk18Ce$<RQ)RQ#98&n zR+<QWzScuieywPjfOzoY=Au^TBz>*dM--Pa2E2a|cb0T{pF#>Zn@EVF7_S>V8Y$Nm zSZmQKO}X4+fBySFJCM#OFWo{#6To@?#IzBqi<Vf#$YgUoE6U9b?k1F&fPbMAgz1w4 z!K7Sa#M;D@PNDBZqaIWbXd1x+tb}b0N=1g7IA4YiGtku+E>qGY`NO3p`lA<X(ioIz z!~c+RXe=_FccvAjb?Cg4>UNF_)~m<;9vOA1(Bz?O`pn;rnfH}gl!c^4&}e&IqB@aT zp48;`)R@)!vz5ruk79Q@!a8Z+TeF06N=>Q>$FTOdUl=xt>!SBtvBL{9)6&iR%XhbT zC&aDp1iz}?{L95Zmc0_)-5fv<r02jLa>agBf;Z9N@4(N{q9vG<RNXyhA!)InnnGOc zL_Ddiy6)&z{T?0y#?)-d$vp{R+a9&ZF`|DcNvbri{F(~z+P&tjN(UHOy9X4iT4|o^ z0T)hVW3e6oy>Z_^X|&L7Fi6WEgN_XA>dHj|002{i_}1M?Y6J%#VTnp29syU@eXQ7& zg}%-Ue<Z9llP|OMvx?|)>V=cLY_aiW(_U>mcBjw1t<QwXU35gk0?cgSQKIQa3t#%! zps1+H2jD7(JNh_G_Wdr`KKNh+u@Tf(*)2VGdGtv15%ZRVltGWsy3GOcU}tX}qw|#L zwCwBE5Yd5zsvAEo0fSd!V!>i(kTQ#Nt!gOzseKP?8kGDs2*-%mF8)H3#Z{v6AVYS2 z)BC_>Aq!d<$7u6X+bA?{S?<^QQ=dY>g^Jm2pgzmt)R=_+rB>!X8DGD8#eg@if?E?< z9%@q6r+YKedm|oVBT>lpx9;kq!pxwvTES_Y7+mCFwC5t&@e>F4$N`Qg<K4e!UX%Uh zeE=$}__PPFR%l}7S+{RTM`kc$EHnX42U>7w<({c<oQe8}XE~)`NmaoH1RCXg+FQOZ z8Tp4-r_v*IH}&fIk^GJO<?DZV=Ah}`*|?dHkzp?r#gyEby@qu2?v@y!MVk*=UqnRz z!&^)EQNCXm+LG|i%Pi;#RFyb6Q&3*v*KkdE8Ddi@CL>MF(9l=r$`I=<D^l<->^a_} z$d;tGxi}q9wP)IAQ`-Kj`LEKQ7ihJY-9uKs>sDTb{L=9$Jas6_!xw&qKyu@vsH*we zNq;Ro;HdE;kkaVulhu47Zhxm&g|p~euW74WFgEXIIs|P7NK8V;V%eBNjglaTdE@<M zo)d-;%m~o`aCc+D2OcrdU%c@J?*0{<Co4O?wTb`fQu<RC%eR)<0Nclc^ij=2`uPr= zxeTRGxozi05MFP4mZEAbc}A{6$XP5On(W)B2-v_13{Ht;!o?PEn}0VqDnh_$sXZ5& z!f||_mvplaGJfp6m2Il2-5Tp0u(m718axtL-HmaTm@+C})z<DQX}jNiv@sN0S2asJ z^!l4q!duJWBpT<D?l_lLHoyJDyGgNK%suc?b<zIeTFHEpjiG}n%%TXfk^7<%cQ8jc z^g%vvVsz^DE`W&yVQk(xv)Ag5gBP=&h4KMX6T^#FRyFhfZfo;D_On0NJmn;z76<(q zA#1QoGxLq@m3zgM@;wb*w1(+?T#d=LY7o42tOdwsJljB@>QGEU5|RC^%5;2kX0aK; z`S%Kol4LOZc^ydVU%u(Pvh1q`6DB_c^<=@wZZ?X{cZE}=3-2007GHF<%neKUi2i=8 z)NZ+n7L(x9MOF<K?B0h0h`K9N6PIskkH!x}X7-G2j=lw{c(p2lAzvCK8CqPp%nVe! z^03IK#ub2E_j0L3Rv@{(B9x3@sY4kma3EwEEphw?$!!s+Am<nEsqz=XETKtiK~Y=v zHUCzyXj*+gH4z;gtQor&@VA1kgnUkOM48rtQhU3fpptX*^2<v=mVyc}C@d_Bn3(-p zQ;U+B$-eIrxK>_JqC>%$_=dw)o;Au4B5Mi`_Onbf`tbnGcK<=W^gez+Sey9inpqe5 zyJgB27qb|-XEk>{#Xz$^#<w4=8UY!lLmHf!(&OVygOkgf&vzfDnnAM6U`qE=CEB6H zjRBT&l$lz;zr9(`d{@dk`acFc>7bToTvN6}*;h26_OE~arf|q$fuEC4ZGdazr4`nG z<HGwV>j>5vTFl{TL_U3zS=rwp@U6WtNtnM|*2%5B=F5)1CaKcI0Ki&<Qf}q|sNCae z0h1(yW@%3RW(0JCL|}E#n1E_Vje)Q<3aJv!zQ~p0=WFrX%K6Ue3$grAo$xR0Vgu%W zn6-rH5&OFmIj+imr86G+*|v|5<Mz$wZvI%kOxn|}M7ANO_v@Di)I4k6JbOa1`bCbB zl_Ll|f!X``ahUW}X*b`(2%kr(kuTM7wLn{XkJuC_PA36igi-;V+_zb@;Pf+tU?o}w z_+3l@*RohZiMO`d%yfe3l{4><tS9A+tJ$6ErO6^W{HZA^N(lF0zMuSRIBqsS{`YHs zc(FvFY75D2Pz5A~CQHrz)NvkLV@Mkf2}arvnQWRPXXmua(lbMHYGjNpG@V3H;dx|R z)Kv)L^_}g!&Q-}bmVY1H2W(F*EUW1?>`8Rb_ya{bWoXAorDKaU`UgM7fXzXICxJsK z0i1OE%e)1{q3~hcC_n8G+SV@+8g~;n`FERkbI+A~BU38|UPGJjP~l*y><8x(Lq>MQ zAgF1vNa8^Vy*H-F2P4z<O|XGXmOA0-<R``?trV5!nz%9@bZxqQVY{+U9&Y;%4@02Y zaghZXUL5G-m<|nH(c7h;FaE>`SsEX;p-Wcr-+9zwDHFUx+55Mj{F2!cw&Jxd$g0@Q zN8}}I_Wgbu7i&}dzNObkEkMC`0FyGJ+|biYlXAQ$)9%Ny<N0f8%JoPeb#<<vRdoII z*F;gV2X$OCRvY_5HwT9RkV*~<i+EZl^bm}uM!if-q&8&L{Er>>ziZ&fm6UO$6;I0< zY(xiJpqjli5~I;YSx+m#XDccX_ZcpCU&=n(rNC(Nuq*}9T!vdcN}vj_=qobUf{mov zkPgeu_Vj<Nj7DB%W`U35l9Gu7+nq71l^&U(VlNoR0X13EG*!sxJtZB6Z|M>8i^{A< z25NxtcXW@ph3f6ar$1z9ozpOYYLdvxv|H9d?aC=pzB{;7lO5DR2|E|(?hd|X64FFT zk@fX+8mc}4CMAzRyLNp659iH9lvj_33NhCdgHmdCZ=%#5KI+EM9iJoLXuw}wb9CN$ z=2gp!tel8mUpQMPegVxu@m}CDQ<ZrmAbvH0kKx^Q(&zIhp}~#GU{t?7{9I!%s$;Oq z8$d(-H=b7}B%!lt1-~@lU6&X7Qzd;)S{qnd)Z}HgW%-;QQ4j(Ryt;Zq*)rB^`8m~k z27g3*TUO4EVSXmfiubLeJaamE1<;6tSC0WltnSdxVrgr9BW+%(%_l`Ne2-wflYtah zq~L3o)Ii97uqREXlM^3%>kMEt_v4r;;uPNKfErsg$B{BMzxCyI-4llJ^~VHt&@=an zF(m>J+5Hj|u;^m@+rr$k452>iUS8InrCHnCS&EPB<zlpoPuT8L%B>xIuq5>ceflhP zICV!`Q@d7fu08k^3$Fhy^LAs%6s`rR_5ah{kGO;vCL<1bV2nU@1-u~@^^XRWo^pU! zhPRf7f`{+cIK(<b4so`<Kz7;Pws+tJGxLrEVc(atf3yOIrJ)PMD+B#!@a2|S({y>r zElnuNt%(crg4AK9(V^5Ya7O-~@W=my=gr;^2f_b0o|i(hJS3usgznlX+LG0;ZF0b} zHu^*e7IK_aG=nxrZkF?*1_s1I5M}|v#MS><?I;+^Tf<wM$Kd|{tt=ORYlLFvOG#Cx z<W8y`ibXK}zfBEF(o;jeVC(4_HJqvt2n=lNUKlcxU^-VtpnE|}Fe6|yLAX#RN$Tdx zelc&(w{$ksy6PjX1AS?8b1YE}0ze3ul5Uu^CgOl;SPOzqJe#2>F}*pH0+nG`H;WN3 zk$co<Eg>mpIVLYA#c~XhGVsf^ujuy`X0X{rblH6%g5Vx3^y2|*0H@6eEVBAgtE@Jn zT6;4PxYj5(Ujj-(Y{^8LZ4JtG{Kq^~^GEN$sT@zkPJG|x0_D3#-mx+}Eeg*krxKmJ zF1+~$ABL$u&6AebP9)WU<t&U(j9;TO=lwO^1a<PvQRQL_I<>U;JF0%W0Q>K~JVw6q zu`g|}&G0MBj!ceJ+}>|Tv$hHlKFYSnWQA_(J&85Iniz`LUgk{RI!wmgE_qB|hK$#{ z1auxBPXyH_P6W-YfU`WE;d!Ks1>t#oEO-xT|F55mkl1@Qv~$KnsuI5a7M9(nN!fqZ zPt+}O4cG#{R~l!upLh?_UT1gwMi{x+cO_HJn~^^*VD2zMcysevt0a(rSQL!2bl7)E z>=u~`bMO-aV9NFi_w<r|!V*+YLVlN0jtOmEb_0|!8cNeV0N%4E577sdD6YJ1Zf@#0 z0jM<G6fZtJ0&i&E`6p&|#8zDIv4zM+Gg55bva~5?%S=g!kFYH5_mN=sb<3asYBf&O zxwh0xgsPWUFiTmZ7<E5DjT&Gz4cvgO#~MYo3&&B`WXiydK;}LqO3*Q|6w(KY*5~Jn z0Aex2phiSKRNeZQp=aF&Ng9H1Fdp;uzQIIT!!28ADFI;TuFxPW4T^3}EI4==c>0_n zwXX^7z_l1)aj5V%X=d;~6(e?f!(ysJ(!zf(|1zUeyFLwgZs++x=JqwgW>oWwnuM;x znL6kU-8UbD;@{u&ORFW8)SzD#GqgCu#$Nw6OvF;o_Ax1P0oYZwz|&HtT{!be(64h! zne)mCr_^yuzH;LQvp>%rXHz%(YId2n_#SB2g9l*qU^nc0UoHwH7t3Pd@Q7pK>=RFu zx}p%#SDfpD&z8r2Y}i~}B!Q|cT^=zzu2Oc6wGqyY-t=EYO(`ZdP>)MM8bjY9WE!GV zLkFlK6n9gK!#fG4h{c`eJ7n}>(Lr->TSTiYtCn=DzSHevs&$hkr(9pA8=2Y#;Dzg` zEK$;_h1dk6EXRn68F6q%@Nv9Yk#Y<i7d-H4%{M%|)Re$R0S~|)kX1YKV*^_IfZ1UD z)_)~eUfSP$cx=S6v{iy@YI;f94B?gl=+(zefcw$(;ZhM^e0qdx+AufwuiI4A>7^Mv zudLt42t-dY)1ntehRU45KY;FG5<QG=hrF={+UnoaR1Jppvg*f!hru#5VR+HExnl`j zzjD@n9}=9_+`QA4r79r#$QxC8N!cJ9aKA?9(HJ8Q<)RQX<?P<9nnssFXZV67LF{WH z3#!zoW6}J>EJz0657XKFfb$WjKDw3gZ#wiwDA=bB``SaQWShx}h!fkscpIY({$x6A zpa*q;-C5jpJ}f$Yqx*Sz|H#*$_>(7p+1DR^qf_}hBszw<x?E-WzSW>HtUK@X@uy&b zBQB-%ZHP{|;4}KqKveW;i1B_b1fr#7s(6zRM1XQfTq^p8yM|~lyg?9ukD7p2m}&SU z(Us4m8<J(tcBN4jmDK4wCUU;HTG>~sTQ)B}oVID@D6_!7BxTwP$3x=+gRA6|;X45C z{Fyz?8&v!z#?-wV|A)b>G7xfUi}D*nH@*aM27I;cF1mTK<8`|%IvijXZu$1?vt(ec zL*Q7?Ez)W&SG|(IUY&Q(MbxQDf4#p2d^h$$Kq`L~*;s8Z=?(~m{&oKT&Ri$KZ+Ki) zMRaiE_||CBv)0pMq3xxAS&t-hWcM#N)Z=xYPNR5?%=q0amoz9a%dr2E&kqfAP*wf{ z{I`n@Mp)!nJG?eaBm#{}#u7#d+Uq)UdylSYwe_fL1{b?t&wx&q=a~}>Z)CnPq@6hm zXEY`Kw*TR><*NI~SCSd^b`E(!ahsR(xsDdcg~!Sp))6v>`W!c~cHa=yJ7QK0dquNH zPV>O0pXQuhmUV|>M@0Q*83-;ebFUxg&Q;%ThJ~`>`ZhMl*Ak)4Ul~Z0S|sD?1v-kQ z(td{O2@08T&gO>IQGDv&^WXApxU1o7t*oPj<2Jw+|IOb_o$NR}G-lQQ?s<?xXdaC1 zZ0+96WT<vRr^wFdFO!0|lruhTC|uBMh5TE6ML`b>MWDN}G*`Ko)Dx0&NJdo4RB1*= z><js$<J>c$wra=g0XkF1J*y(3O6-EMrNKvC{PJt#+RXQl#r0ZTHA`>GlAD;xpwxfM z4W>T=2Y?UK5QzxES5?NeVcq}mddvI@|KY{4;d<l0APu+mVeO37I|_dDur{32;M6*V z66|7S;W|g3{aG{R%&?~C=ts)uQzOueex<XTe|Y5#;c(z(_xDx;L-Ddt%VJUpto?7x zrx#6A<ag10dMY;<#?!W4aZ_W5<d00auq5bao=~_9E-VQ*6YOy-NOUS9G<S06gAH1l z%eY0CKE9;}e`z2s?MA*agjJOf0VwMW>3^3AC|TV1Mk8qI0bR`2${g4$(62VX`Q5gk zQ_82Tca&fuE3oJMx&7w<`G%b%St+OJ|N4gKGQDLP;c&1t;CmH;>xuAa<XX<pv!dO! z^$(zZA<%!_quP_x|Mwn2|G)RhNvv)({U?2rjmE@jWz7DYdLf6))`_zDVQ}$Z8U}Cs zR>RMKJu5`9`SV7N)<gZkR0$$NE{T75TER>sgc!Eg4R891pHEjl7aKIRRtkG9(!n;~ zUw#rqd)mPaT>IN_Ce>p`<8DICOXKij;*nogq>Ino+V(+{W1YIWJ1ce4tP3|p)pk(U z(T!v2SO4&gpslXLnSYk%7KSWe)NhF3vs0wJI}S_DEC-`TO~k?WUvn<qydskPAg7f6 z<9vJ(8h6Y;w6zPGQ3X5R2YXO}`kz>*vMTX$wD#U)`7UCqq)1X+e`G!ejFx{j!^`%y z>(>GA%sll!yhuh|%6xDN`s6B5OV+$>>Tr#uD-R{ev%4%;4~g2fY}mXHg2)`a_SP(e zeUix;uMP+EUU*SOo|{8JGgXiCW#}sc@?L(a!g7z7mFfL~6?}M^T3WUF?k?3VHFxMg zWZh+>GI<b2_Ek!V+621Lhz4|A_y8C)gXQbf-_@l~N;!-fGB6P@DdgKoFODlHzC&Gh zJ*#upc<GUqyA<|KC{=Gym&etj{q*lH`zz2%uURTQhgq6Q?$c5|S4zSb7fICU|2~K) ztV$!b-9d%Pzwk<i6biWRxlfLWut#s4RoG+%&7X^&%7}{qt<!df#86E#HMAw<UjOhS zvJ!%V$NbaN!B1`US<7M04SHB8iuP1)+_ZP#v^W-w-G!tL%txMlc<0j`6JRYrAfBAE zna~&F1W7&><4NePP<f%{g7Z{hrh2~WKSwj4O6?{^#goRibdK>ae-(A<<2UXppk?sF z&z$&BICf~mJ?U$Fdgf5(urcH6i!3@3_h#Lxte3xD#=RkIW&aOPxgNVeO6Ilo-c7{Q zy=mqj9(P3XAIsK(!VL2@l0vcZWhtEcE0QPlgA(oo(Q{VGn4?FdMcSC<?0<MIoJ+U~ z$ZMQo?C2#=R=NA*I2Mt*0AKm=3Y^RjYYlsue|n~0inZiGyiY0g`E!3KHfcHc@|mEz z$LX2P5GZq|yRTt*BIaK3#QWHH%LQy_HG=A1%dH~<&E^)9CS{FUd{(tP;|r(BiBGg! zbezddx56Gkbn!1v<$23@v~_gKS35PZ+%`KI^$bZx+^DV%)HOKvvnjNT-pcNMO9n|r z;FG=puek&r$Y&7mR<qWR)Rl<<#&Nt`*iX0IuL1Qj^YMGjtpiMk&hu$}>^r4SH}l8@ zzaJxFYr66UV5+Sstn84Hk3X`zWy~bwh-TEWu)GxY&Bmc2k{$wHyi;?1sYI_1dbRe{ zHbHDRX9QGZW{jERQ%jL|T_o+mdsP--KPqRr4!d6S0*ZIanlUaE@ugB}H-V8*ex~ft z1=>}J+zc@BN-ZP5_;_Q<{CVCm7dtHC5&tlmd2uZ=xND11;I|*b*IW#)F%dIgr(X%N zn<mz<aVL{^dqJb4KlZ{%bjsKTt>Q;zQaVt~Cgfow$k$9miWIzS{*cq_<4IV28f{4Y zgKt>oUHsQ4GkQ#51~*!2Vt4$KMGfOzG_W;4{)0P1*vtb0skriG%coct!T_TYV_4T& zu|Gc(SmmeF_Ej;Jh1Z{t(e#t%>}&U~VR}`g8v4Bm;>@GJi#NRtjE{vm<qG9nD8@}j zAAW&W_kX{uyIdD%n;ResomZA0+c+gE@*kcq8Iiz$g_xL*a2#0PdURL#BH&qTa)2ee z7{hzDUkNg^RI|*_$5Iv7;$5%7H3OP>0K#Nz+ytVjbow=3i+5*+NoORIxM$#HW>HlE zN3odXwyf4vsSa<lbOJb6*_MqC0lzt-Pch`-5*`r2yx27yC{;a=l23s_`Eh6iQA!aQ z`V}{NI=C;KI_Q14(v0fc4Fxl!vXJrCy*m0V%jvENSb}-o1dln&2+fp%$VT`J*RE5E ztN~fzU37W>1?kr$e5er{f`dtSo5+7yi2&@uaI4)&<Xu!XpK(zOK<t!9yCj)L13ukP zTj+qsg-<x*>GOG`^ST7cl#;*PFCC=xz7nt`@daQE>WXhT4S8uiPtMVs&NbN@l@+k8 zwNY?JDo#CdOy*ssG|mF;=}(r-gZ68@A#WPZKV1BbEd~1sQ#Y>YVwynyv;h&2O7(0c zGLu*DKm5Y4b@RY89KUc2QS&}=jdYQ~s^UPgXD10;YTzRoZ6sG<2Fv;T>*T67MF?mN zbK+1f%t?1CzM6$<%_C(}Ex^>k56+xW3g%#P5N)F9#q}uLiGkVOMEe`6b*ooi@;_eQ zChzC&BZ%?u0BkYpH~XK0|KVx&uN=OnAo_346tP8>Ut;sK0T$Y_2WKUtJbI~*L{4Q; zC630CU@#)0fJno54Hy(d@*}ZyLaJuXqg>X~#LC6KMALXv)*{%No%O?xZ*T89KD|}+ z9Upb%Zt=9te8!f?cpbm%L!+-{gsv9~K51*!F(sqHCa(nqdNg@+gKS66F8+q?@O7Ke zf&ZYlz4L4D0z8&--IXhK7aGsPGH*??bOr%60>=D(oScG&*&6a5P3`KQF)p0j^L&h* z9_;T<7Rq04Z^pG-U0HYK(u%~Uxd-fcG$sd6%D(oy^d4!MCU7}<oFK#{Som=A^kQSp z-_F6^`Lzis+T=AQ40A;8!@pZx>SC!WAX>KN@mUY=&t6<Qc6Pd#?UYQmyK}S7lG>v* z`-bDKxJc?dcS>pD=V&h8Q&N3pyD&E(&EXTHKA3;aF8??D>Q`bHhVC!AWcgG4L871< zcz?CWv4}VSaf~R92hJ4<8W@luLxvXwD5DXL^m9u6M$G}T*-cF9@;Xu}Fy7DF+Q;b! zkJ#+@L+C%d`wtZ~U%zymGG?}HTswNfoFAw?vf#Y%Y3+t-AWx3^hSSNQe9^>6#OAsT zD>Ul8P$F2NTBod~Jm8|kN4alm%0ZRZFTsvh)Z~|&05mQL0APCw)Rjjbn>~|%*Y~Gf z=szF%HUBx;H{bu2A0!jnIg(30HS)1q=VDn#Gz|lh2uh(1bja*NWudA7DAdNh7W{cX zHFe}DuK5Vy!y`oD;oW;F+0jwRmoNCJ<LOJO)b5^AScR)-k3&FzEV#*$+m|DZ`o&?K zxXs{Sha$4{t^6VF5gj|sX3)__NO7mAVYP|@h^w-AupHNu+)JUG5U_m2m@oAUkHYcW z4h^k#fw^)+9V=(POzx|$3lG1<%_i@__tLT<dU4X~QSnQSio+s7-=h!5q@sq*4&LLb zFQnI4m#ryzKo%@<1mdDjsTY2oV0QzI9;<rNNEg-6<HJqOF5MRzStN^!Bc7+-HNea~ zFd`|-{`DV{kcK^mr`)s|5jHw5T<^<osu`fEd=WO9e+pPy)n8;jfkhbWzKM9?07?z9 zTI2+XbU$xrw)V4g+w6I^IJ9b-oKaUPxtYA+Yrzn5++CX*sWL!zlhr|O_^Ef%U(>#} z^9N8No^^U@C>LAk&i_d&7brK-%XiH^_Q>y}uiXLb=-i_xUc=?`1#)xi&~3K2mJV={ zzp=4$_!kL3`(YOQ7Pa;{1-e54SedPSoq(?Jfkjlk*`ks;)Q=xuD6gv3AcAT9eeq@F z<ZPg_owly5T-;$yL7evd*#X;=*m=0$$4MW{#kp%sp7yfwcv0=c^w@<ZdD738!qC(w z@yZqd)4g5BfffGYshf2PcMGT$)qfaE{e7)81p8w53%jINqN^!s<xT`mH;l1IbJOo> zW0<kH@nhAhffIOoV#i6AXY?PQQrky<)~_Ilx#rP<pZVm9wP#5cy-|jsVy5ADZ}!HL z=(JMGk{WhCKn2(k{VIY8C4s7dcl>HYJFM@x=7;`77M*c@D)4dJbh8pC)paemkkrjL z%E--L-kr{Y@l{hN7uXmwfds?t1yN-l=Yo2v+rMxn!sEjkZ|(n-2<S5+7nhv>Qz96Y z7=VB!@c)zuypT)*D6T}PDXC$$=fp>_1Ge}l8x*vM6cKOi{@@PAu^qFe&eMtG4oHp{ zAqI;XAb&M(>h<0YCKC5+LNir^G1H3l-6DY~GOtTs>@)Jr;^q^Lf(Cx7L4G@ll(Q$< z^xOOwN#j(VpWMsCN*^R^X?{6BTY4k57Sf})3p!Pz&zDK7@K?_LzRX@mHl%i&KLIiE zK|uu!O0KdE&^-Gt|2Y?%7pcJLxDZQ?828EKz&ue6Wbb5&T}@?kx^o?`Zv5Z$wAF1* zYVfA+1gv=X0r=Kl&AmN@!<A0pxYI)YBXBdNcK^zN6j`Kip8;pb3m1Ey^fzYNxJF4J z21@$sD=`&93H(P!<A?0cPmYiG5}G|HDm5O&{CEPqdU9X*LHOkpGOu}wxU<W4Jy?0! zvPqg{`0XJM<=dgOxU-pZbb!C<i{6IKyZU+VwEVoS*72wVlzSv6d!v8UI?N(7P?L+n z;j*80;N1fQd`^S_HH&;j!6N+Q%Kwcpv=gG%0MP~5<(K0Z8=B{S{OkFgbuA-uDdXJI z^jzI`rE&^iFHH-8M@YENvx%?ORMKaj`2%PM0SDx);NyP@@*H(sX~G0pNSAoaoeps` z!mL|<2ndBqQq56CUA70h7w{Sw52hO{7*;(X=_Pp15Hs(+RILA+1dqAhu1x<d4NGn^ z{+*wTx!p=E^@?EQRUFZfmXa~Ph7>2uPkuAC!4lcVC{lhzBkkOXLeL#I0n@JRlb7sk z{=semMg0UnTp3Cp+q*73h6~13nmc_UBVf^L<E6Y<%~@hyNjK>GZp3X+5#Sg&CQFxK z`pp9&7Hz)GRrKdV<yqA!a9J5KqXhPa%Y`=JZ&E#>-9iWH)KHstQSjTeB$8Mi<b!s? zPC<&lphg^N^kHgai;lPnKt+O5$|hP!Q=<I5pTxEHUU{rdc+Kj(*td(-r0K^92sPH? z=>+hvdfl@CyJ-@on|zZi6$pQ+G*E0pmbR$=?dZ1b3Dld8oUPg=XWme5G^-P*ZCo9j z6MoqllGzxRA!fvtobw|QqdkBMR>T(abQO;QlVm%y9~gM-%mj~)&HK=qi|Qh7&3ox6 zJ)GkAh)+k&)|0o3ommEx7A0!Y#&Y9@WNoj+)or!UVY#%7ilwwMDqWp*sD(bl?HM~T z_)F-Q`|>$YPtF9bd{X^9OdAV>%*(K5mUUV#Ff%QG;Zm593NQbclrf^gbIrZnj~W4z zAhaXaM|n|K<40|h0v7f}S2B7VP$i$Y*>GhOOc*leE$-z`B2;eVl^<90;12C32)ssg zsBh!So!FT<OcrFq6^M)NhH&^V`n>IC)okjp(F+*tblwu4ol>Qi;62%2VOcwJePBcT zdB`_)Yz#GLrjQ5aVf*$XBHIwAyormv!~){H&cAR!dV0TOl&Z^ypx}i6?SSe>6a+&1 z9EI?DdcTHGS^I4va0cK49N@Dh^Ds)B|8W;BYvT<R8xQZv0B<a9|1c^YdgjAjdL0%D z#M0h5WrLyNQ`OcnbO9dgnU%x;4_9v))mGcB3u7(P;!xZ*P^1)hD-t{q+#QO$6l?L~ z5Znn8v_NnQ6n6`h;_gzcK(Xh`^X{|vx6k>Lk*q&iV<ltGd0+FAsqslZ1n|AgH-d1| zwD52isTRFYy|x#Y0Qjm0Jl8k2IxcJ<bu>~Q^8?#(kF2)haL_c(E4EQ|n00<;=ytlI z((4zGK>Sw)f0ypjpHtx)8{fz=?-mNs=`N8Gtkz>W4>qWwNZh9Jy!js#y6;Gl%Ljgq zQ*q?v_pal46#s?<sVFKG7(BUt|4FxIOt;)^RzOPrBf^8^wv5HzE2p_Ert)jF49F%+ zXZ~F}(RMfnbNjJ#1iPytF$87dp=GAz;(J4lBV^NH0~y#*%8`G)gW%6u`Xa^Oyd-0o zG7hhPNE{cIRZ>x7aN*Ji5|t8QnNv0PY4<z!HXZ4Gzv{tj*0P5?V3t?@3226ZcT25p z3}oCF*1Si|BXeYlN&$`x0H886Dr)!!Q=>LaMdcp)UFK$Ky*n*RN&Upi2X)XLA%%tA zZnA6!wFYVsK{z>8VsKUw<ReEfB{8IR9DFxiY$Cwc4Uy@kq$;_@XPZnIe|{XVpM=(o ztmv+O7+kb<2CPip%6)NcxxQ6!Pf?bLc|0eh&aF~*hZCWAqB3pip!S4zR~w{fIjB}x zC{f(Df08_S-EF;~qFVD)mvqFw6&exP<HT`#h4R=gZH}Z3>TuzFSkTM~sEq(<CveU$ ziVyMO>3nG^2Ipt$iasgeEV(oa^u=%t)-HQ}eFI8}4WdjSf;N{%(PaArKtxB7ux}Xb zp<%hC>=4e?<@bQ-Mw(dw>BrACoYIA$J+|`lGD02}7S`Up0E^uU7Th9i45X1K3NxBA zJyte*9Z_ppX6F=E^gdtgaS2{bB@C`ek+n;39n#m`Yr2}&V$)RqHRr?oCW<bd0i4l1 z!;}~d7G-xH^=7QKqnog!u~C8uc2Nk|hu2S-<}S_D7K2t2YI}YI?-4aezu#Zmg)0hY z<tR=yKVNUDGw)ss7&3*=(*zh6SO>9hzaO;}p1d{I6D^&kvY9>pQg49V;oh`nrte&k z`+Wok*p};fUM8}iNkrMtS31@-s%itlf+u}dC?z6SfXmoBkM0<PlN_*hFkEq-coQhD zqqB5`gVLB-Eq`Z!!Lnjl%5iIWfS+`Vk4?*5M$w{^#2bg7p#--m{;2RstEs^&l=}(8 zs87$Rm|fk4WA~ayOy2L4HjL)Y{rofL+~22qS6s@OU1#t1{b>=lVSo8S()nDa2zAge zdS^KkeA8$56y9I^gqoJ~?uyuoF6+W0<UsYeY`@^W+N~ump1WjmtRjP|tP9S}xn6Ya zE#Y-vxz+06J3_nDR&eq613n}l_>|}@ExlBkOjc87mo#xS=A*wF%G=JB4b6%SExZZW zAOki@CVFY@Ige#$@kpr`q<a_!E4YWZkB_}l1}?kfyx;_;C;{j{V`Ip++Yc1m*YXhe zTKcO70y*mNT5DtAL*$v84rf>0{Z>CFBX>FK>!@j`%P0#}5vff<k{L^7H0Gr&3Yp=B zBwQS?%qn+fWNhA^{95KbH~P`8qeg1$K{$AuEo$^g7o0BvYbs`2KYPAesLgE-_Vb9n zUw;hoseQ8#{{5cTR&mly;lEw!AL7mzHu3U$%uutzz2Z=aL{<miRC-1$Sh*lG3zAjc z{(3;&CWBSl4Ss!v&|n6zW2=M#<Q!13ac+urIeZe@K-{*cz&r&59RTdpunK8{g%JyY z;~p?cdL4Zgmv&J+4ptrT)d?YA>N6s5hFf^FJ>>;gECZx?_4k9_82J&@yUyS#c8TPE zu+yI7QQ^$8-mI-@{!U-abHwZx=GqF6{G0yN3nt@AyYohUZjl|%4lc=+Z*-tcxsP;? zNRwqHg_wMg%=FDMB?Nrlx!@y!ZPlZNw{0FDrU9XwLMC+em3o0rUzx`C+BoQ7D^O|7 z$T^{4E|O+t8P4D!bMO#NaE!2DsL|nVq0;mi8@6cZl|7T@%xq?Z(hmXB+G{zt_xX|N zjh-^{)_=VZQ7P~q@h~vKRugi(MA{;nOCWqRb{q)>9pTgk_=_ri2(XMKf{DKQ8?X4e zxd7GBm@?0IqjT+_V<8$9>=jcZM)3RbF-iFH2O|C@Xr8S1N-G?CxoczQY0m;&Y(iB5 zf#h~-{|`~|KT?D4R*;xq3Bu+R&yf&P)A=6tbXVk0&FK*ZIytI-Xd6J@Lk1{h*R0@) z`c5zT4-CwPDx-X+s2z<fz4c1ww~5ihG2?v0VU3vJ*L+=@jpHKJW-2$Xf!x0+@555h z3218^0;nM^JBw~{MQM2J+{NgeMhO_<*TO?KNPKm;x#QTTA7CJXtcNilyo8BBqUOYj z?5~Qmn=s<2H==R+tWSRzgrUPR$d=afOPDqSr49A+xZV?~h}S`}g$Zcg?!KH$`CnKB zEnWH845%fU=B!@&2B}qkPM5F+Y1ReWvjZD8S9tL-`=fE|H=D!Lz_g&8!6Vgjx#S17 zK>2H330q&={9pDgYSvY|YYaAxAu}R#`_fLt@D0LsC?@2S@uA8BUG&e?)mgBC7nP$+ zaTbgX=S!?=f4!1nfO)8<3<c&oX2m2@rbJX+)J}{|Pfc&Pij+*$h-$)zZ$-C@#$U*k z%_fJsNt$dhm3H-bBNNMa<MZf6-`wY)6CrSk(-Om9(AG0j+qv+eh=lfu?n=w0`9nO= zA_rbOPl}S`vsaJ!{<`Q2R?u6KnMo>XDK~Qnd-z7%c}N1?=KrZfYY1*RWKra$0Lo91 ze72*O5QEvG$vz>BT(u8zXIusg+{?`H`I=eN5%I04sLCKL`i<n90a&F&KF+)<cp{Nw z1;>HKaNG6(JRefeH#Y3vyxYY1ZJ9#-UAh(@mFD3b$;RI=#I@k_Eyl4ge?;d?L6j{5 zwTI>W?;__OJca-6S#Z7+-SYpjIi;+1V9fXN!^`GBIu`{&ItK1dEbT$E3aP{P5cF0L zXi|fsOC=NLY4p5?m72+X+Zb`|OY8jf;$zZwlby7&aUJItT83btp;6Gcx=iw^QP#Vl zc;URc4#|b>gviIf+b)>C5V|~cbWHo?Z>+l##R^H2dUx*ikDft%xy(fA0zv`zl~2}6 zBV0bU$%~#>4CXAvw}F=v75=%!YQ2)bn~BMT#<t8-SZXSA)kZ;!Idc;zrNtI9#y4Cl z5bX}U?G}fiNFg*{4JYD#T>f!S0lh^w?+b>i^v)`6{xe+H(M{7cE3c6w6`M}0Zb@&N z$NKYdgoX!aRW--;87qrXNxfz#JpFf}<gt==3b9U|fqSubN{Y=Z7z<m`52npzTw-x( zu2O<qk|NcTD0lP8VUEY6rHze#R){*sA%t9gOZ7+kZdl@e$MtV~Jm_88(s8V7tU4X6 zVb8I?a?SyRrC~dNI#1;VJmDdw0muD{;QaVs7+4Om#wBby-~M$j=>0;6`gZ|tXz5{q ziF-!+=ju}o7DbFx;rlp+><%^)iG}I`pD>Qloe38$XzGl*Dhtz9W=-kGUgqx#S)$Xy zpi=Hj(rex25ltz3UhY^T$m?><BVOvue^By5w=*6OLp{0_&=Wwx1k@hdsJ&Tt(kfje zLrU1#={l+}+2_O@$LCCR%MVL8Ka}e_Kqy}Xm~Iq-t!Lizh_La_OF$Z~)X}0S-NpN1 zI5@z_4Taa%(FHg*u@_tQH&8z=KXu2ac!_df*C?0dQN$5-oqlH1NtPk=rN2wj+-14L zu%%5L423iO$QKI386|<{I@N^yG?Q=n5d}sD+yxKKJoKrREmkmEEbT%<rlbTPEby4e z00Q0`yi{6-x<EsfoNR?RM7ofdB^TZYN`?rM{o`DWi$qOGj%|J~OHI6KlHBQ}TELHe z(aKVhvhhY)6X~KN#>=nq1jg9DT$l-_45s9r)^}z{xy|Vpo@KPdH{CTNAC0{h`_*P^ zu^oKJID>U9=$@z|qCj(f_L&yy4GRJ&k+`KRO-p=9mCkBE`xLnf^M;l0!mF61tY2)i z^>fXziB`4)_=202e&Fa^m!lUacW_)iB^@V5X%?@Ec2o$Bnr74*bI0f{K!(SHl~d3@ zr$AVwRGGtC{I$p@J(NS63pqvo%QKp*P2sDeh#U{w8pA5pm(0v8AR*yuB4y^#@KSo1 ziWasksFXeYvw~BX8I?f1`WsTAN`J-s2fH*y3X5@DUXNA*%dL4wtK5H3>Ka7G&!ehW zFz)OOjF~4mwOl#iO;ds2xzm>_SapgG;~;|Q6QdDCI;HG2tQImH+I~uMGU}L;CEsp6 zF>N%y#)w{sU6)5u1&a&2!QH#Zn)fcYo%PSZZ7a~ZG`S-QI*GJG`EM3u{#MhEjijI+ z=qT!6gEf@=+pVf$&eOKGxm3w1CFgMgtOmBN5tcc&Rptz}-Nk%}h##@l_F#iXL}>B4 z=MEFI#XEIAQK!Kn*+r&d)VU9xq@V0wPRVL0v?snL_fw4LMxrvxxBAQlX^P<m6nujP z;}Q$0EfOB`ro61+T)zleZM7T#+P|HaEUw!}Wc)^zP3;i&JC*oeg8hlH+_i_&Qe7^D zHd*oo`^AxuTAqgeLj@C!Ow751{5F`qcqPr=%au;@LXt#QTv=Z29W;&w{aXG|p*%!W z;a%bcF3akZ5^br3WJMl(r^p}i@<L%cb_W4zYl7M^az;uuCHz^<>ae)KUeVdwq|B_a zuOBNkG`N!!9IRt&Q~aCgtt2p$V^w*Gj>a}2PTrCS5@OfUG4;IDi6p;q5U}FX{@<^C zwus$B+j43V$r^?WCmA9fVgI1e_;T6@ch4(RpF}+>T)9jgQZ{CZ21$Br(|tcpyzot2 zJ3I_n+xGD-xONs1-!+Zma4cB8(YOoLIJ+!RoWC5Ew7+-w541wj*T;cqa$P4<r+aI3 zv{e4H0#f4!-{B+)fFrH3?RHJ8fz8MG{2T1ZH3m>NsSpIM_>9F%=Z@49{vXOF76#_4 zQ&djA+H;ba+vwqurvn^q1P-u;)UK|NfaX^g#&)LikUe(4+UwU9){m-~HeCS(?-Tw( z!NTHZrwa{D$+hzENP3^>wLgj$0ZQIi6)fQD3DP9rj-8-r7mnSi0^bETutIH)^#*en zPDkbE)%FSBj?bNZxt!qI6^y9iifBzKP6No$Z*mA@NV5O;5c)4Hi9A<D5a5$!J7P`U zc9(cfJ&BKFws>#}W{gfRB6DAE+)+J2IC;_l8WPcp#1d3D0gbicVF1#@Dp1<$V{m%5 z2KgJ+5ziM3X39)Aaw&}qXQ3<0044da=JXro+w0Jm%FQOaGQjB3K+fSFYfg|uV3bf9 zo}%eD3fA!7JBTmv?Mid*SkFza7e#(kC+3`7-D!XH7WPq$DnPyfIh32wQavNNaagBS zx%Lve$(g7|l_O+)%2ofH-Jp2PE4xv&`{_|C4^qXT$+ASi?&DSczravBWjd8_c>G$h z`zwGiF1y+&*Y_{gnAy2nGeH{tL}L*2Rd4lM^5Nag%$<ZfW&WRWF&xxggrAKtk|edT zO;!0rQJ9HQ`9g`qPzl*tn8Omj(~DuGK{u>uM0>n-6@v??d*s}|;bHEFCKY6i;(_p! zM$O+1R!_&xQ#@5LVM)AO-$X6qSI0W`GJT)3EwG#p9>HnCesio-ID#*D?5QE%l)CI9 zVs6z1UPfm)5X_nRLNX}pc`ZFDzQF@iHmM0~sm9n=W8O$cC45_cvltqiK9f*L{Wls< zmM9<^?+4&gDb!h`Cuo}bR6S5y5E(r;jN(IphI&RX%57*eRn8p|WdHI-O07})!=z_k z(FiQ0nQvrjJ=#>uUP<SAO5@|(T2q*<wwc_QS1KtnB6MD=U|u!;(Wy3J!A;BaWH8^s zw2EP2Z|<65ZVBI!uX+40Lk(l%+ksBteq|R8P0~RwjXh0~yvs7;SZ&!-CifD08ne$# zsjjTms}Deju^qD##^^Bhm8#aBtCV>!jYIs$eru9vC4oprGUk8{R9e6m+*4L-!F|(* z6c16_qzmTr?e@yOP*c8goA3P+3(P+iTcN;l&X&_P8^^~B(d}wl8WR?|Lbv07fjXni z>amMFZ(Sqrlt@?xE^Bt1&j|e)Z5_v07Woij5c_bSurmLfLtVSaF8pr6Be#qT*P@=K z3@vh~+-Wf@EHO+eU(qbz(lzQ=GuPj?7SnCh6)5k-GN;w*dl>M`70IrYvh1WX27@iK z`=C=LC{2wLZjMMY1O7;;Z0D=*W>{)OR&m%SlxrQo$L`+47^OOFE$!C)Rf^a8!kjKT zx`~E)-b`PY)q7jV!9zntYt!d6*dqPsw^dPF86~%b5nyhXqV{eQhI(v(&c~_)So#7f zBp{D#6mrq${P6K4lPl70XLoN78Y%^dVaxAT55RlESD&5<E{}1EG3t(=AZlE+v}{!D zBFTb~6plJfm^?uV@J>^P?2lJAeDCDdX*3mB_?o?%JJjZa`KyE?+I3Dvb!T0`_^lDm zwU&7tfM11J2bkLHCvgyY#211g)&6bO2P%@eZyIUlPOMa}t{M7RFmm$HURuUZO#6ix zI;>keoa_mO@|wzdiTP#l;*x)s$8vRP1~D7h0^nYHrEhqtnL$9~tp2UR(7(Szl6nJK zQXZn7DgH#oRAn8z0=bI#vLr#3O(Ny9<E0WU)L6h(cQXV#1A{t%tGWnh$^CoM;^Oy` z7=Cl@K+k+Fvfom(!dGw=MJc#Pju;;2Q02ld^`7&RRQ36;e^ebcgPR8Q6OTcPPKUzh z@l~Xi25D87hZ>qskP17elIDm*{6xt|Y%QQHDl)&y-3+{FM910aW|__S$GdXH?mU5- zDWl78YSgEBapLr?L-yX>bs1ZD@cT9YhmvqR)?HL<U_)NT@AbOz%u}O?qJgY!e+5V} z!vKmV_$nrr!Jr@FljYoiBHq=l%OoJ|)~Cx{^%nHYnReSs_{fT1`$wc>S}(I!;?L*1 zW{5Xqj9{Yd`eL*pp})N9SH(km`9t}6_LvL{8qoAZ@y`fvl`cjwJ;CeOme`%G0Od1A zt{1yM956@Ugde%-%ly8T9V~xog0X+gV5OZ8{IrRD1xXUXDH9BX3E*TII1V^ZiOa88 z4;^Amp3p2)$qZRXb^h=|&lFAT6DkcXOIcmO{lsC*+vJsH29_?L`<F`R41*LM9{P1z zM>0F)#I?ma70OtP`lnvq%+7mSc<R}}7=H%Uud3vxEB%9#&;fyC?%u<s(uYI(e{-Ka zr+(T~FVM)-8TuV)^=Ptv+cs2s92md27BW+lItf1TD1$w%TmOR+1%LhxxDGOVyS<lK zMu6;p=u&qY*B7dr703wJkj9Yfom|Z25zoH|m_mOK@P34l<Mn)5`tO4`Cio^4l8vzs zeZg3`c=R&h&nc=>ma~k!71C7^8>P9k7R{n90x$C_^dzg4Jvnh|4ZR)QCbx1q+>c?V z%Rwifi#JWOR4QB~cJU=idU;Oztq+A<qem*$`SLzP<3hzaW`7iwD37Dt`k-yC+l8gZ z9BYNon{vI=QKaVZ=SofhNTK+#k<(wT2ur&Zm${-8TUkpO$+IUP{O=n?@_Iwgi;@Re zvp1-p>1H}YmdASnecwXvdvz|;Bu>mz=YqbGu~4Y=f)iGUg+n_IPoWJ2?r~mI!P9R( z1C*b1ZqP#$gFP%5#6FETMm=;@;FiJDlg1nXK=)sESJKv0-UG}`G!LIuU;KmOtjbn~ zb&0;lM)&FEhvqUgO~`B9RuuotSH(b2TpJM#GzE>l&|DJ-E+)qn3Yww5)6lX>Gp}|J zcOl{Mgzq|CNdyzyOkii0n6w&ZA|*{mbmCRJtg0rI8O$7Oji=?sr@Pl*%ZN6!XJ@`V z4nZb0t|t4hbwwJ89hOiY`elc;FGq}kIOyc3(fFc%-DQ9}!aQL++l{Tg07B#vGUgzm z?!&1v|JZD%Q~3>g_dEf_8B0l`vvY$nv^uXCy<K4@#WNF6!!>cdhcr~osyr7%ph)7` zQ~~YPDT@*lG8SmyH&AsRuy-+CxD9>TEue&!`XP<$Y+#1Z{U)RXwO+7Pg74Bfuh4>? z@J8DBEj%sJ%SvLBo{5D<vL1Dv{J4derg_8b>Q34t|Cf|S=spd;J_aW5|C+b{Yw!|< zq4dZEC>Z>MvaqY!eUS9})muvA&QxlJxnGuA?0Oq3#SP)8)2(;MiIqH3i+$7~_QMXY zwED4pVknsQc;;`P8N4g!H|wP95*UA12Fbd_m>c{NOR48ncED4U;AG<1K~&gqbN%~w zVP^(7C~HxG6gBByx?$nwZus_bg8dp&)8=1=4QTQ|2}t)3sF}x%W)pX3GixH(HjqO8 z@^mB;pI0=`zil;h;=D59tQ6<?otpFNSmOF=A)ioUkCoQd*_Bq$W_$y2Xt{KANYfN_ zlklFVj_8k(T&ve?4JMKSiVANZ&M47J<!zaHJC?wu-oAO8zO@QUKl(<LH>SnF4pbmY z3%fo^pBmly)+tWOk9cldkL$9^TcW7G;faYit!(r6iQar2IsO?36d%Sw&qD8YAMUzD z{TC+2sm=*<%fF*XeG}^fovTJ1V!N(^6z3^mMX{A<mGvA%DCp(AeDVgdHZ-rp^Gd$O zz*mhrO1~9IHE<Dp?XV(b?@W^U-@8eA0+r9G<nP|7P19y5-+9N5a}kwI&Q4dSCDa39 z)@7x%MM}DO1i_sOlohsREhH@_8D1*i=k~Fs=+Xc=YNe!xmcJ=K8TgUqZ|WJY&WTa3 zXQ@T_tBD9`_`_IpAkeASmN&ca#B*7&fQs*uG~?hv;?8ed+dF|X^^S{KQ)GBjHfH3T zZ(_Cs{QQToHhXy-G8S5loCgsjclxOhhQb;Y-?iQ}8GkB|yVw@&l+$J!`>u?<eY=oX z3bwYN)P+4WQgiu!i`3qHHq69Y9o4D<qE!2D{23Z0&|q8qZaBB_#zeYBz(XZt?6C#T zzC8I@P|{?DP8Ilfk0(Iv-C<q(E8TU%7c4wS69m+^A5cS1XN3ArjEFl*)n~Wd?~TX! zaUEK0_DM#=ORjVq>jalGZ*`#9P*RkDB&?}^+5aFvzqVYo`y~fEDs+~sVruyFQfkyI zwX+A)Cg~eCoL$g7^(3&I604)5V{MtUDzm;e%SLk&U1#}l<HU8&9T_NPXF?!vo3}20 z1K2qXl-Pt{DAEy=SSw^@WjcJHMFu|<6eINq3#iyxN0lqsKIv)D{PLfuLwlj$T!Oqh z4>KSNGfiH)<;EmuW`Z7uMcm7F9-fJ#>;#H^)z-0qrak?=_B#7W$<DjD?MmQIuxal` z{#OYl^>y8xsw4XJOucp?7l$@QP%bCEg&jRQLYS~Df3LlRGo6hfS7lO3_`AlY4M|&J z{ix$tPgZXnjeeLjzs$pHRV@uKKZuVpU-mMrju%!AXRRcNpc!$vnXASR<)9FLkaU~T z@H7cZ#o5Af06ca@n;swumugi{A0wGGnw*1&UTwWB7~NBI$lDmcT9<a)zR&HGzg3Jm zF}N=usH`5915@cmIm>s@x^F}=+t11KZ#(=D8_9Nu5+Z0wG_(*DG3WbjTZ*<)soP5z z1r-7Si5{Q&VZrS%Ze-K|Y*bF}X2^Og27L!RdWJ2ACZn+vXfy(t%v;@Ng9)xoX%tL< z^$Y%m{JJ#E){1Y?`O%8yjQ2Q93^>hf>WaT+qR;o+KPjE;CU9T753sxtBInRlU;jZF z6>>~)UMX%EGRL8MVN!Ca2^#203KpzBzxoFS5EY?!pE^+fB>S`4FVk(xRfncj$3Zk! zcWk#*cra~&#;Jmurb@mD7^NOgO&(9mX2PCUN0>n2avxoyEEMo<J4Q=oo=c=!MPS-` zcgQ9s8L@vE85{3aw~8}wgsyLx)qcI!6$_DANT11+#c{h*(N?FAK#@&>lO*pbFg6ma zF6ow4R0>O)K5<F_y5YxzjauAaM<b3r$OgJybx(bt9LgnpWZG4m1YDh+<y&IfKP?*> zV{7f4E!W$Fig-lK|D6l|tEEz)hyVTug))eL=x#%+`@ugG-!%)^KN_@?6hO_%ONL9( zGy_k3n}VPAV)KL9J9ulF4HFH@B^ok`#8SJTHBX1u{^X|P5J%&w;#LVav^k9+jhP73 z;xe?m0>^Z&xzOWXe%|XBSI*-b$iSN&AD_@+pPePpAgH#`8oJ&2!a;y<*`~L8<27CG zi?)EZy)2H#$sTOx?Q$8^ovHZSug%47@c`9^>tKs79^f=ul`F0*VgNV9OH(#Qv$z3L zK84CwxPpZndY*ED=Npel12ZfYq)LUc>@(Nmc(v(q8+wzk5VoR$ps-go7u^)h<hb8% z65-x9Es)>XUu6s9z93kfkj*aRtv8@5#iH0lB9$}oC@<z9dap}gALPTlze|udBCYKQ zbVqcF_1J5W&qdG?)iBFy&uj`TKbEl-i?-ZD-jb)u67M7vq#av_UEFVo6()*5pJ2#C z|J_n!n*SP<Qbm=vHV@LI#)$8T{nSN3L+vWzek%<+o&^S|^@l(A@1f(obN!uJ+B9}g z#ylD-HQi%}BVXuffQ@^NecOntiJK&&6nd5x>Vdh6IvPq7^-CU;K5VYXGfrC4?e!Pb z@&AE1{{J`Vw6hY=EXQ^?>F}uifRDGuS5LX`hHg@ZwG?DgQMd8SJ`SnTsrU&t3FE?D zB~7L(h0p~8%TnKF3Dr9zei}<>zS0Ud%F|NK{^brw`Q2zcZH)TLx#w?D=%4p}8b8uk zlbUS)OvS4(XnPxMj1P2J&IuK@dpZ~zs~}E4izM>c(^hsiN6tYzAvHG5k{KNxB~j`m zwmuO;mCpP#5~6Dr$N$;5))2q9|C@f{8qA{Kn7;UDDYFx7?0x8H2USFJxFoClKO9}Z z2?&4eEB(Ntyqc7oe{r@KljR5e_-(cJP{dF>IuTEUi1_XD8Pq)P!#1u#zxv3`?3xf> z$s`vEK%jgH0(^<Do}9vvU_)kq_n`)>Ba{B~|NQa)=Z(te_k{1fi%|Ej5Vw{v712>0 zCC%aJOjFiFkxFgu+^{bzge2MAa4_%SiqUzCgL_yZBnZEgH9RYK_q$4Uv2x2=nL2;X zgsLFf6W<#m%~JSw#VduUzPu(ump4C$=QHXe{;Cx_zZ(sKUUsSuY@J1pF8Ot^NvPZ5 z$F~if`sKSnS>=^6ItzY!HvQ>5Qm&V0rcuY?3!6Uxi^O{CYUf6Y5Wf{JTUEFwWiir) zyoM&ZCn+7%y&C+{Kei2yh<Q_)m6>@ngdMbwNrnIJi#j*;T6Qrj+oHIIYMfIz8oI=t zPF@$gu@L8GolnSfPFm=LQGh3UCkDw>?h`vU%;E7?=LL_}+ruFFmJg)fiqL#V2Uv{3 z$R}5u!JltZ_^{4$>7toGz^YWMz@kM!$`Ba9+M}trf-IqQ1l#8IlW{$9W&SWi&-dl% zPx)&*W0H_D`?!LcXj9}xGheeGT%Qzg*9~A}Q+Gk_`1cDKJc^d{x5`@ZZc_(R#|TSp zJ@$d6RG9mDhqtv20GqsTy9`5hUVe!A18M)-QG;_ZQ|h(1?y8hY!|(HoubVe&^<o`g zJ!6>vP-Z!EK8}BX<RI%i$+7g6i0ZElxqEWre4K2TdN?90sdrM}EWO|^cos6k`3I%5 zHu3q);(<SSW;NT4P-XR4NT4~_2fI|%^B<J>Lwp%2xU7##bU$%(Fv8E@7JQxhT-`S< zWuKG_*%D{o%CT=tXx;BZg3&PEYy2fZBlec?wV+8wT|v_t-BW+>ub`O+^%0h_i`U=? zeV>K|_s3<gklRkKsFkO3JJecwkXwy#6L>*tVn3MfrkYF96LAuo-t^mcz`?n)w(Z%q z<M9n`6!Ky;<$_Hqi{S@nn(y5iwIMH}idMb{<<U_7?33{FSid!*C;7R6R4bgEH_?nO zEPn0eUCM>biiS_fD#Lu&=c>N*G|a}PEDZ#Bu41AKAH5GFG~=Hc*^w&SFaG)cmFYEE zbe3V<{jr`}kzor5QLS(y*hLp2!1JEFd6wV}4d|Gd!Ma8n;9LV!2F4zB^!+c#x0f=T zT-1{s@R6?ko5C4Ivwz!!dypE@6qC!mi-b>Z*ezWxTD=05$*l}kaH8qo(C=J-YLswJ z5r<Y|UFO^(MwYVW;Iai)obU;5^KSYhk`UI02>M(f$)hyU$KZ<Bsm=*8%2bhVoqK3^ zh3!<5mp!^D7(Herm@xogigrRPGVbaoUa*vpB<-Q~FcUjwDSwWX!BH{$bK*hh0Of>t z88H27vf>m-0-nq7Mc<to;EDdb#&S2%&K;(sGr^a|U+GQ0>7ZC8SWE;hwN8r&ViXM= zWkctsQao63SClZnz&F@zZZjI-K1q5H&(iacU6$Y$VrQa|Max<%C3?9v`!W!XPWlEc znQ9gcER`7FAEl36b@)SnDm<z_E5y8EO`Av07hf(a_1aEW>DJ-0hwkt{O{AN7FANn& zLL*le{6+^){NC$$4Q;mlE@1ZfH^@G_$$c3R+~Ml^g2OfU8x<a#<M(Nws`7rX(C%MK z<iJl+PS>GdJ0u`$X!M$c*r8|12?hD+ttj4%=y@Gc`Y+d3&4t-V4iS@Rug6;i8qhRM zlgKY}+|9y0E|t^00NEvV02!RY*|d%Q7UO5D^U&cqUMRCr7^01UP*zDqBE$nd*B=W{ zQEm-I9u0L*RNC|ZJ|`gYa<KU9OPwRdpA}e+Fzw{){Y5&X;x`{QalI>LiFDebt>|rg z(S|C$K#%7J*db?rJ99RAo6!bV9-m`GOnD2q#pi;|bJECr#9?o-1yEtQoA(M^Pt<8+ zi$_OQiwu+%Q|mOU6`vH^_~*e4?ix`;)#~?U3ttm<Q<LL}7~l2j&^EvwYe`Cjve4Ho z=r%DlFFJF$FHp-lm#P?o<hG{zkNY`w9yNtW+J)QZIqVuF>PAvqxNIHkCdQ1eVO~xd zDK@Tj2W#F+DoP%fmKHnk1^&X9{eCp(3_=x#q3h%U1u|JKU!2rJ{9yhgZy-GS1%1&T z)}DODF<^`|0DvNM3ACZp7%h3_DagFN{ag@F8&6xa#ieu6d2ufx9I#S8lj+BGz3iUR z^Mw8~h~w#_>RRSzU)1dJ(EL7an#uz1p}R!K(44K=TcTO9)6)yWcj#%Q5}(ZzxMdYT z*%G3EBR^prZo?q>e-3E>_9cuYhMuWh*~u!UGkn)v`Cd&E*E*RSc`TsJ%1f!0XjPS@ zUz7N`YF|4?FK#zcl|GQgb+E=K{}tu>eblgS2Agaf`*;tqX+JKwOtmMx%KN)$S{s5V z)rSm?sh%i#Ud$>eA-I>^I&~3ndQ?XG%F;d0kQF=>GfE=&-THs~4w0A<tD8af&mlZ< zt3x4zmd^0U`8R!YqqqZlkW&7L2?<UXO-q|OzKl2FfZj-?vj-en5eH+cz;9XnTpW!p z+w?+OF(b%o63rVHVbzIYJzfxpX{|~Zhhba5Hi>4F(d9<0CW1=AF=YQQ_JoX!#RM}G z76@Z~bd`AMQThHBYcw1KooxjbMZOUIz+d`<i{9$6(qC!cUE*KV$b|#0Oeav-jh9M7 zav0ZkgA$_G0tXhK8iE&nr6@DBH}MLg>8o`bBvo{1kQeyL<A$}4S|iY|tid#@zCPN~ zc~SMu*xaY0s##W_o%G_X{NmZY!>dz?E_3EeLxaP5HD`a2=5{ZbjT1Mz@^|L{u7dKL z*kX4Lv)8%ab3ppz<%j2S%yw^zU@g?9*E`;dnwYs5yR>F5b47^!@Ez~ajspkN)waun zPlY_dH{d2|XQV<p`T3;BwE1p@pr|!)6`Pl==0$H|S{!xN8YcY3p|m&Rn>lg8839=- zhjols1%q73EXA2Q!_P{Y=21k#Dz8|O8>R17OfAtpXK%#sPvbhQHo57=opZVUB|q>4 zA7Xalg*82KT*@PuQdsyIZHMKR#J@GZr);0WK5|G}@ATM6zHB=4jZ}Z@6l4R*%5=^K zdqd|^IYz177lrV-Zf4049L_*>53DI!WJ*`nDS2(92rwfz!=J<9=WO%*PN6$$y3^sT z%gAhgTe4Mc;KQW+wY+D#T$w~0gY<^~9s|dC6%4yK%4M2(yc+Vt`52X^$$DR+YZz;y zI&AJHG#Wx0m%GhNsDOI-cZ1PeWE@i@)PD~>6AvYHqhZnXGJK!r0(FGqcnLM}mR_VE zlROk}k(U}Un0lS7bU%)%$Og?qO3@scw#rdLL))JSJ0bI>_r8x65v61i+$B|%HcBi4 zV)rROG-mNM3azdNinGg$1rV#so-w#sva!TfB&5kJLfZBPf2L>5tUs1?z_yrFjBT_@ z?yKjHl?HFE0d<mL1^Y=U_>08FCH<w`UCd5qcWY6e?NUxTz!16+wwJUtiZOVXOGm33 zl6?rHbbDrN*r;z6`X%+{mx2aLu1T%BU*X=xH-5G%Q4d89mxcw&N>Ub?m{)T0z5-L$ z%Fc@OquI?$2f6(fS0=h;vnUUg+{C#2w@6aQjISP{OGTNUO3gKt`h|phdrI(+w;`%X z`Qcq&Ug>^oQob9*L-1lbeS!asmXCGVr3P0w0$=*6B<kQ%d0bSEY@(h!k?ZF}E%B{t zIl*_Dua?3tQ(HI|(i%q-3~)NAbp?*>b8kz!6#st)FyGACQ<ZG`Dw8VJ=jHibo0lP# z=6zs^cmZEIN}hoBkd(X7b`mMaNbA(U2yXoS$chvD{Ef|f@J3J#Oi28vx-!^gu<^;h zjLq!Z%&E5?ezxD@_!Gi|bEl)%55FTXI^LTSa29zJd*GECc$CU5S#Xa$^!7a&#;LbY zkjQ?~Dt7xI?@Ri#x^P44;<gH6cke2kvo*>Ufl>3L_ifZ}&4YTDK*C_W+<UsG2%L!e zfZ{uKFTOVW70P2DwZ%E*5ejQf*a(+8C_hb0e6gztuZTG@{~gYjWpulJX7=9r7<rb? zL&Hgv6Q^!@keMEr<X8D(#9BeME(f9_9g+mGc`;<>zknsD#()i)Ya&Q1Wlli}{cCw0 z8N`rN)!%-UyJ;2?@Ll$6A&KE<mEW*e>Dk?^S^6M0)}+EWbFpud+WbF+7DLM{uA}7M zj$)=0(0%yCYM)k)`-y+ikb(=qfw+0XPOpqj&hp+fEig67^=^`gNE6}Po<xy#dxHX$ z#-<Be^cP-S7JJ1-eHi_{?p-ia+tIle0+mE<@`O0klzh#~+SED!Ugx6IzYI5&s=l&L zPn7wRc_1=e==BhgnS<Bk-`|V(#Hjc}|9-3G?Y<kjNKE_Nefs|N4H+;}h|YnSr6MY+ z$Uvf#RS1Wa-G!eomG4-XCgiWt$1{Iqja%68+K~}C6Z{(8t@rf1-n1ClGxXNGsAy)f zOP^=^uvcc&n=k|hV`<UKm#0fh(Q7Qw0>7X4#UioMq3*~0_V~$x%<Fn*$=_FM)19{0 zv;O+6UOyX|!d5e={D^PMuRm0*oiv$#C#G|3I*YU|&}}WK4>6Pk<i1~l-mi}T5km2* z0Kzbj4qm%jxN=YS?}NXeQkyI;34elhw<W{Z<7ue{)H_$}>>WRa56GN&*krUd35Pi5 zZMaA={1l}Ks&Bj!&gQ*fw3!?~aV|<PF=eIh=TifAs6drPv?|qJvMd49jwc^rveHP? zz#A0wxgmvWpu^YsUg{&aqgrPTLAq9P89#8LhKNQ8xRj)M0p5<lt0@jvK^pn}`D~RM z)6#51?9l(P>Ll?6e*E>$^M>o|m;UX@c0SOtP?e_xs6C*>#u`6Cl#udQ&QN2;({b~+ zTUYyqhjfDs{5Zk5S?H=ql+(Q9du*K7O=Bwd1~d)D>eIo(Y`c`1Ig6=f5|p+!ZBgw8 zqk96X@|?y}ceM_0z8TLwyg6*zKVAB+8<ZvLr)#Spv~P?hD<qgV!U9wpO(9-@q1e8+ z_ATJd>5mgV%y!Izd&gvL&O}MIFLsuZ>ZgH8wF&(X1rq}urwic``0r@*c1y<z{-b;% zlJ58{iN;_DW)eA$``fRI_tlQA@RT3}l+f1C%{5^&`-;bmKYMc~Pd0gf<_u`mpq*pn ztp2_=FtKSub~YnNUnRa8dg2aee+^aWas_<JA6>{8_=>a#^!Fe5Jt)$Dof+d~^WJZf zdY&Q<(4;f5U68i4!j?9q-zoXA<O*^9?~D^f=*N4nPK|F!O}z9dda>^H%*AcOU8r4C z$tA0>3Y&wvh#FUavoy3oQ_G5C+0$HRmpkyp0>zp*=({_qMBdmJBus^q5h#>7nMyi| z;9GkHxt^~%FWY5J>^bi|ShSfL3~?E?iT(9gc<PvG<vUAvzvxM5TIUnBDlv9+;95p{ z_vBBs)Z{6aPEDy@E*aH&WFnoukjCAH^G$5nvT1IpycF@+D7I*fS_#k|A9OYX!kqCJ ziT(>N%eBvTYEB<xmh>SIV(-|r4tvltFb20d?-1lsOroJ4CdF%cy~KDqq%%HmuO?t~ z+!;x%IzNIrD}Ll<xz&B)BKU9FwO;Bv7`BQr^dGJ<5_q?h%(zn<JiA>`OxLJ*N=WQ^ zLGzaHIeWPdbsgd^*7_tjU;lU0QLGGE{%0z)tJnqS;H(vwQJxxk>7d}=?TRM?goY>B zBrmdkYV;ozA$a6o60HsBRO)Z0QPK<z3*}S7@RnpB2CGM^``Dw-pE}Vr{KK#MkLNRh z3xL9t))HGNTN6$mtHz048EAw~UkgL7udaSeYgMPzu{mqu;zZ>#LnwdH)SdI`B@<G< zEegx8tnzjg+u*9qt)FrdXKaSlVV!atY^IwzCB~Axe$^2<EB5Dbu7@P|Pd^6yUP!s4 zrJKv-x#G1QG(o}?5!2EKaJH|W(?=JfaB-M>5!B&%GjJi{$|^2t8WL#m#K<MyB~Z|F zY+Ms0R`Q?_^wlHJIN0oG&PS&Rz8V&-yg+UkK)g*^Z*>W8_wuF?;0RQsprf7s9}oxY zb>fd%kxt`7D}CCVlIbC{hoESDzshR__oXHjCGWdW@=sJHd%ka>qNxe1=G@uuoExw) z5;BK0rf#K8y#yF!0J20v=C{YF{?n$)N+5Nh8wu9)Ch`-_XzKb45n*032=3LmN+vye zLhNB;1KMe77M2s_ZT_zzdmNJ=l4;+*LCilDiu+$@HNkX(=$haO;9@e98WDb2zO9UN zxP{VkqNJm`C&D#905i4+^=Z{y<Uk{MnodLV_0q4k#&fo^TZ%GlMH}ZESZ#x?NWr@5 z*bCyYd6~SsA+@{XxE|LR@uHAbZDrZWpbw#Lfq}@;OYt|K38R%C&g$-Tba+*Ri#ckp z-8NEM=IaUye$EQbQbl0h>KuX8F~PpPH1WEblX8DvYK9beVHuD`>DA^0Xo-)suT(h< zd3PmAURpY{Y>{N0y3FG6jXDNoe6WUYL~(GH-&$J6{%45dyoY)T2Ua_R0e}1%b)C6u z%s`sTQeNt@4@~_fZ9@H$1tZlAAjmB+g(Qr}SzWA^w%^IV?}K6t5X~>DrHn5-D9dY{ zhju&UOCuL4UCkUbKD<x9q(7lAd(jJKWbMUq5VBeC;V|{bwT#lLtu|1s9u`oig+pXW zCdCnA>F5pc!hZy<L}mw;gH4haye`Q9J}b;Vc*FP01-Jb;&xoMGe*dv{5QE<m37`~T zL+aH~+3Zy&Cy3k;Fx;?PxoO2yf~T;4==5V*(K6AY)Hk)(%joBvpHT-9=MQiC&!XSb zIOeHyWDiHW@xI_oiM+aE>D`PtNQlgSD0)Vw##=r7?dKZB%%*@Op*&qKKAz8OSRYok z^IgC5tO;KbP}t9-w_+_Bc?e-7#0@H(3HFH0r#gX9kFN;H74Y<qoa6tZjcgMaRxOEg zX5W2jd%8P;<j3)-aa{&4V6##liHjPSM4n<PkHU+?8^jk>?U67~|HryEq>jz7^e`b` zi{%NFY^z<Gjr4D~1Ow>Y2q`P`VF*<(9ix^CHD(r)7&lCdQ9`n`CBkI&^5(qgWNZ9T zdl|tfx490v5__fl(9p<TVD8A$$pe6CL_G}cJPBr|>r7Gnq`Q}rA$`_jh7xq~j+i~W z_|3@_@~LxgT8Ne?`2U!0;*ngMFNj2)v|OVJf?Tklr3c11i()#(<psMv_m3EPCP4o| zQH_j#JU>4|{@QfgH^FW$h4z1D#PKazjI6FCo5$6^dZwD$OHs5>X&ov}XT?|sCpJ6A zHA~Kp=0zhE4Up4sPt}Ex=B<{!5fKV9^_8-(F8K*yL03lCDCNMmaZ616-E2<9QHSoA zfNOhk!Qpqiy46>kH(W8RBeU^_71s0KHx-kC#aRp-;RVMv!Xe@U+P@HbZf?&f8_#A( z12YmAl3grQ>)cc^3n$`Ij-18<4z176<9c?O*=)5UEwjP!)~&GU3l5DapsjY~)2lQ+ zeg|jLA@Mbz{H64eGA7;&&NDwRA7lP8yzvrdMu?NL3NpO_-h&d9Y&2d|#vr-Mow=ZU zc*1sMFK?=CZ*}A}#-Gnt$$!b~nBL#8+=Gm(^FCdFN(%PterOinj4rw0*~09(efiwN zH9+?!AjC?Ch3l3x_($C;-}t;OlyHLj&;fVP(bXf<8%u?&MxCpP0afMJGA=QPN6BuM zqP<h47B)$Gr&l${-j4dAg1PHHsm-D4(g6~|=;45a>a0}c@G2usABO{IOQ+<;H(uy( zftuRNhH{YwHP6K#^hRfUzN@GCH|BK}Nu&M;g@x`PlnPHDq<69Xc*rBtG5Oi%TCy;y zn!zYM=<r-JdLq|68lojTi)j|eE%sTG#&X7*g4T^jCrNvqj=bWaxM(gRD<b8H)rXo> z%2)(z*!vX?>CJ~?aHd7R#I?f3!ZWpFGfV7|1T-TnH$B7fv;2qyvQH;U>+qpUypP^- z9?usHw40BLnhJk7o%!|4V4ON(x}2CegZ$R4YUKD<=?{;p9fT=J{}0dtI0|ZO6DWE$ zbPA5Ie85i3*xr3F;#d<SKh#AB>Y3PW<X^{YEr?x-_xXXkW^!AauX1?|FjNQ0tE%>| z5xygSlkUAm6)O?Yb^SBKb~QT#l$GqG%$}1Xrb)d-1@a#N-~<_^;O*lifRsd-^M8go z?AKpjTPzrl8)alj{)0l*8YpFJ?e?B@OG{pUy`X@5{S~ilT4~;>7TcDpJIw-;dDWu8 zucsxjb^~eP-;2DS8=EYY;-zAN$&;d(xSOOTufvYx@X7=m{KW@-DS6L}uWkdEvc}KM zn7#;SHrhWtCEXmULB_^PA)Vz|PuUl#w~C7nU*)z1+|%?SXwpZj7y_!zqRcyw#oWzV zZZx1o_0Nnpg5lDiMq=dqGE>)(A{AvTdZcV8I<)8N6m64+-Xy#gv5k=PWB$f^e7hT< zTjWs*<}5Pc^E^<KEpB-g<7`8tGv2kAyUGhqV@oegY7rFdlKi#o&lMjgU^#JosH#EH z&Ew^kGd~t(0N1dyIuSox9Ex=-p7XA?3O6d~@;m>!o~YD0G!^%W;Wp*Jc8XZ9|2%>< zNbvveQ2u$&CGFnSr0`XhU|gqEW31otx|!Q<?-pXv*t_o>n39J6+|L;IcB#q{(@G1r zIRRL+Wo|VyvtaiUrG-wk^Bnr!wL3W1ymMW<qO^e#yXuhfu6kTIr1v9m(-{6W!5vrT zHBy#M$H~^t$urdj5u`=RPn)Uweif6_uUyLL$H!{-_8y+AU{7{|*y-3Ea5p@-x;k$? zjvk>ZEtRK~{WVX4vU4%K;B1B=Y%DWlYky5}U9Vj?R|O$Gugd!dyQQ0r_a1<CACKOX z#_aLVj(vhD?m(9VJ;Shd4<m0%f%<D8g39V~!1e4SSLo0dv03+Y6Y+yP>Nn-<;!m$$ zz8_+{d5?@^Zu&-%s3Pw8$m|_Fm^5dk(Ql{30{BDgS~a#R)L)7hMBSo0+twh!QqMoA z^I3b`L2MQT-^Bq&+j70$8j46@mw?@83#TKV<ZtMhmP0~Y(&EjKro(n@1xK}QqkA5C z%N<m09|wJMU)=9>;Kd2|l0Fg1AVCr?iXc*8#_{?k;OPL#J_T{ygUkMmKUj{Ijqi7h zf;o_L7b%!Vt1RoFq^-{<s^-(8iD2ny+cOm#dwNE}K?-Wjf|(bx_Q?cB(MY-N#>V&Y zAh3xR#J8n`qP?&_R-A9*8otcZ+4>60;7_K>IA#1xx6smO=BF5SN({YEW&5dNdR&LP z_&z1Y8vlq~`M<j+##2@Q+uW*H$UM%g_{d55U8D!Sf+QeQ!>oa<q=C!KYckOQ{7OoV z#hL@+Q(jhX5>WVX0!-H=<2@<>U~}k68v`Z-wvojncJB{sbQ7m<3=OUsQ76|?)T_!i zHL~;j!5Sl_8VWjtn*c{59u@4+$(z5OT|TEdGaa@<Y$Bv4=M(=6?H+!l5#swzCaOP| zokXi!GTrx~f0scaD9+m2+HQ|tWi>D*0~V)R%2=nQ#D0&RtdArBynW~T!Ay;TiK{YY z2O_4VH?-nLo7X}7h43IhWgE()D|^eT5Lc`Kj9np=j5(~0Rk?2m5wTSCNnmq}AkGM` zHI#j4AT_Ai+U!Mf$<wgD#9RrCfRB|a-c5>FnJqa;t14Nq#HiCQf@^#=AI;R7Gj<lR zD4H~SVVc`ND5rhX5(4Au9Ri$Vq@&3CeS<0b)Hz%reLY9jY-LOVajV@b#7N%N@I){F z>!es1;94+6>ulKCgdTTWL-}~pm|(=;Y@=&q1OWc*?C8eG4Xj0tD<~-tj%oQ&{A38E z(iKb0l{F@iKE9`yNV~T4cDaH%kRF%#%*{b_;6^do;hp1KB$p<{TqHGOXh_r0s`6TO z-~NI2V%M4DyhP5rD<P)^?uQo2@whHeX>SwXw%ud&>w-$20Im@gy<jJp0^HjpK%cd= zDi?yfmZReQO>#&i5-Fco&wi)^i7E!DT4-lqd9dFuQKZln8_VhVD8!sqs~lKE5vZgp z&%4>4!8(^!c<_=7x)hK!owdLNamiA4+UC}P3~;4pWwJ_y!{az#&kUwPz))M#S1Or6 z0}q-@7P5cGuRID7^&e&1(@U`wnDg^0XBPf6y%bn<sK!xP)Z;--(%jqi^lib+v#+FK zE2-Y;5Equ(3|;zhSRcwL09>*FS;i>Zy&!?P1@7=m1u$M35(CoGlviSGf82#*u}+^6 zrQImeX@>6orwTHNh_Ox`Bb=G&n%%I-l&4mk2e`VtWxsQbhB&o^5(=iN_H&J#F?xyS zZd!iSsR;Wq-E#Wo)^0Oy|D7o3No~6rbal%}^&gZSx9X`!QuRVLRc7R%wd_bJi3A~m zgj=YKlg&4&CITpdmNI-hPpLRAlwzX-52&#FG0-s7UUjZsN^zM~kc!U1M*TV3p;$D# z>Lk!8rZTbptL(3G^u<1XAM?aR6|5)Tr>qBMsh57K1;;`#-IGcUFO}sp2;03CpUiU^ za=U6o6cD8(AQ-}0)BnQ#TX3oek%xowb4>($5OM}aYUWm+%N?!PNR8(>i@i-9Nn1*< zZg`>i6S$tg&YvnK+z`;aWe{{?PBGhYUa0KH{oheti!Gf3ytJqH(q4vfza_KE_;rnu zt}ICR2JmedVJ++^k3{i9AD6SyrE_FyMZ+*KkeQE{kp}>0%}!0T`je$Q^Mr#E4P<>c z{V%rhTB_2NK^*PC`&Oc~ePIYMaq(7w2XZRraX8lwmJHU;oTYWm;ePC;b`4Y)-1231 z0nQdB$sj!*OAi_DSnQu}CCc^eXm1`@W%EY=#C$beuhL^C8+X7fhe)WU1%n@1%#i}G zW_AG15*$D;&~<V>^@-hi3>k-~b=_^ud6`0r`L8urjzVUP;a7VDpsj)GyjsRABJ>4R z6ybtV;VMg-7TQB*SI*`*vI-VaA?s5w(kd3v{MQ-FNH>{9K!D?ooced}RjzB^qvR%_ z1CMALds@_+ms^zop!fuQd}dC~0IRzUY*xt~&M7+Lb0=z4fjEg9K@FwWa0CK(E>rHT zlnPW18dEk5({x5A*w)ewDf%7%gOZx@Kw(6;gxryIbSiYpdZT4&6|d*|9t*gr*8_ty zbknMiA`ER{i)2Zf*Ht4P=1~;xI3S&+FyQBC`Y*30sttL3C_<4>m?{DqENtw0Xp=pW zr<2{xL#Mlx6;QLP60|r6PoG{g(r)<OI62r`yj|pi6n25;5wwk*U4eF7U&uYnI=m}c zA8RIAd4A`N|H(+5I5QoXuu^AsEdKvUJI|=5yKdW4ML-k*Q94Ksy-V*k^w1<U={58s zC`AQnQiO!wA%p+{h0sBeBGMtDNN>_bklvpgpZA`7&b?o6K4pw#><|Bu>^=8dbIsok zAhQwLGq*q+yG@agP1cIhaL3K*R{QMvkDVUg<ef{KW>g%-Ep%j!Q01bUG!|OVyv&03 z7}}X_Bm7{teP1i`XPtSEzT|{;kYo>e-SNwL`D9{p$wW_K*V6QMG{Ncks#mf5$e7P- z43f{i1sbj6MMg{e)QM?176JgQ@^V-KWQbuGLHu_zR!Z2ztxwM~?3{hY$CDpUCvGRp z6tk}kZ~C6OcsrHHS9WG?Z_OeP%bdgIatQ9<ky-BZ?efnr5pLqyT>9EKP0b$70X<=o z8&ZmDc=JS_Z74thN#aNIBInF64qgiJm1Z#!%o7<msGc($9{UQb#yrVVzDd|4P9A-- z+uhxhVEWkRgRT{zU9{J{kDyI<aj%67{X0Ecra1VsAcLVIOYp;?Z$Fyvc?GB<-ZUJY zGgiXl3=c|Iz9IN_hA}RV6OU4^(SH__W7<E`n|gg4tq^caP6*B0niU`3r#?_Yx3Rs1 zG*(tk?Z7PKE3m+YUl;wSW0>T09lfG31>i#~fytR4fxX5O2DL5+vC!3hoAI9RY`1ua zxrgUN-P}9ggp86q?R7d0g4VK5>07CH^wY%jGkr7Qv)n;sZ#($*9|;NW%cj={gX6ZH zg9Jy1?Xc<rp`TqFadGVm*WS}@&COx;Xul?yxq3Ky(fb?s!MP>E)h@V=9xaqzJb4m8 z^jm6Zkc4pXn&iykqbxkNqsDyZT=rr6#cn9{rX$`yZiTc^^uAYxNoCzKU!h-!z*_|p zdo?|V$`nNI(6wpJE3uQ%&kqkA85Fw<qCJc@HX<HjjCH)P4FkQS!|WX2ooT9)zwjIa zbi`2aua5ODQXmqjnK}Ae--&>OtP||CuN1}_0mt8xgMK<u{g7A8BV1>)l4E4NTTj#T zD))nx=j+g#IFr$KQwgpE$s*vzH)~xm=eTj5U;t1>!Dmu5PvkzCwQXCmfqtG{PluzL zINla(lv3`+brP#A0ZGd}y=A`#otrCnQ+P*hmOKR$h<*kLw^+UPr+%z9%VxJbN_~mn z{it?fu7)0=)5ys(imaEc7j*V^pHsP@8YY&z?b>~H;cC`X4tTDw>*mssuIaq8JG81U zf^9oofA|gZvb`k6Y(vL+^E6#32G*TjCViUpdgG<~o@86^rCjyuQJ;%#V8nFQ2*Y+n z!fxQAhr-li#;!4h+5c5@(+qcWJsMRNErU&5r{;Kakw3X)b?S8<qIIyfKZ4wxhCNI0 zTcc*=4U={Jt)U9=)SW+vov!N|+|S)v3xCbUohZOiZO&&d;qLddnfJ()EK$X+KkMRR zJ6h&=aD)emqxe$6Q9w?0wN!16zJ%(QKYZD{IYWQ4^8Mx4_gsrV$UKdII?ni%JxWbe z3)pLh+spsUlz5kjSY@JKFz0Z)?8m8my<yeVuEZTj*W*y#><unNS^jfK8J*iFv)u%6 zDzu0d2{go`dLgN*drfm~Aps6YvMJ+OFtdgwM)?&6!;9&2>AxzRvU$koL`+YD^8A;G zM56(d90J<PKw2eF60*hk(F772GnGJk`=w6-mx;3asRf1lwvV&T_p(BufF4v7C@0VO z6&0lk7a{lI_gNa1Q{A4PStDxd$M2^t!=vRfdocY<Tbrk~CbM&?s8{wGdKmcdAaE!h zV+}#Z@Oq+7F|~ymG=o5}k`aVxk1{>Ww|9ATReJf$HR3TitkSDPwaje85!sRkuaCP7 z1HB#W92{(yp-i7oIVsCGRzvR&bL#L5tXg~I(qCPhvCu4CtmEoHx4E!U+|BCx(kNV} z54nch?dNd2{k^a7#VnSD@PZ$ylF>7et(zl5=*DF)HejaCb97`s(8EB2W@cO4=rb<` zBE3sA9b?+;q+{qpL36xZe;VyRr2U7kQ=lNwY|;?C?oMmEEujSSGIy{O5VUcNe>=7H zJWze?5ClSVr<0MT({-ra{LOs6owxyAKiDBIwYc|+`ha%jV^h1g+(@wERP?jS(-l-} z$lO_tT>HD1E;r=IZE_5OuBM6)_N|pLM+Wyo5i66i$9?FF+~MnF2f+w$A^TweW{Zsy z=WC%C&H@6*@2}|sZ)@b8f5^QCQ>7gqPjgMI?{dp~0n;(1k}A&bhlfK_8&>*sz`=Me z@LQl^ZOY(0k8gLEEmf-i4|=*@v)skWOLh4RWHu)%3|rx!*e|?8cLEdRT>;b0uW2tD zM_McKaw_GRdK{P~%q0i|jnl7+eIL;HCt<M-_e@=SAIH0pwpey{#L|}gWEEe25z28N zs43IW@d0=OR$8nPxoKg#JPpV!O)EdW)szqI{3`;Yei%Z$fBP;3f2E+~Z&Hl;H=B>8 z_tKCPc=&XqhrO{63KLq?A?Vrk5z>AJL#1te)pSVXqYNslM@hITjV7{Q&fz5dxBg=s zE`*4E92(<8y(IMQm%c)yUkcyJzePpUT7tgMzj~`VK(JR*{+9kb$q;d;O#lJyr`1Ez zf|(baOk((Ep)cQeJ-f#zPXZ;5t2pB+nM?E6!I{88e+q=fa8sfej;o`f{K-Z3eI}Jm zb098sXCsAip7QO=?1zixfYAX$rfbZr*Q|J@f!l{YcaAO<=)3a7*A785;pVTNIT5%k z8{hGGfeQx^ee{9p=V6co0y~<{s*rqq_$uuC^+3jW{~eLmrml>uKk^SJ)3?O5LCWX$ zY<&6om#4{Zwm)>5!mS1*VS$HS1R=0U?eFJ-`}k6`F)ar3_lN@8(r?yz9=zAZn*t<K z)R=H$lM@QVe+lrkak#e>A<T|m4=k+fL!Vq4Q)??-^~c4#=WAsnliZ)4XO2?=0n^to zb=4Mt7bz_4xi?2|o6O%DbqhgLN<E7#KoUMKUUv)<$ZGg{n+1uwed!8)nX-Gn^##$9 zIZNW(ls2=ul%}Gvdb@ujjAa`3$1vVL@qMJ=uaAl6Bb9G2@)00sd9F&%l22RG{91c! zZ9*y!dBgX93QoA7FcRd=0(yrEj}0HXDJke}Ku^RRu30f<D1`UH(PLNn_q$CWj$v(m zTp54uUkmS2U=<7CSq<y|;K{WxJf*)<E@>;4=r+rV=qK?o?jC+b{vLA7f)bP}dO%fr z9#HmEDgXy)d2?YcP)rihohV&fcOxnGu=>kSBeejlRLR5|JtZ%Vcf1&oFtq67n};Fb zv0Qfz?c^!PS<PdCH<URlg8vcBL<9r{LDuQ0X!nWz%AIw@xGNO=3VRaY3l5~h)KXOy zHtp`qtlV`gW#a{>7gIq?Q<W&`S1N2IzC65Cv^Q`Um|2x5ISRN8=9}W&^H>EnD|~S% zcauZXyDw!&kUi&JN2B7%zzs!Yh7{gY9Xc*w{egQHuip1gF?55<7R#Sn4?KdsFc1;% zcDm0qgfb1#`UKWiF~pH8bMiDOLA0gs@uoWTy5C+tsuX(GjUb^f`nwsaa3RmCZe-rz zFrj^9d1^hC^~9*LPZ(8oXer#oT$qNaN}|JB{#icY_XDTfvLuq@TMRB#zwtcKXVl83 zG2fQ^<4$qT&Xv#az4^VX@g$q>Hi>TVjX(jtyh#iEH^bxSo;MOu=lr-}9y8N7Pp>O~ z6E~HJ)|-yYod+trDU${Y?72NrG6F+!q8t@2V<Rkc6R5NJY&tfnTuX1zc${la(zK`5 z-J}85^a(zIA*#DCn?XZ9pzKr1#;MMuq-9U8KfAitV;gtrl&6{1CgEWwwDV5Xug0`u zWWqi08G|DmZ>YOlm#XeyEm?k`UBmMiNOx68YRbYQk34n6<6A}nqYz8UM+FraPc8l7 zNidci<~^+SOfag(4OZZ6bb(+Zwkv}_6keUcq@e+N(eKM6s1kZP7+EO7aJgvz$-iX} z0tcH$2b%oC4bYbxc?5vpVIIZHgSGvzAZp#Jf5+#^-6jNhapUtiqV`*SN}BWkK930q zpKh7cUhDXbOU_*~pd@y~-f!e(i8qIQfyhtKyNV;M(*k&{Cx4MLq|e6wcq?p}Dnlnw zi4F=_5=s#7leLZB5C|!IX>k9~TwOuljHRq=-z|cSH{ZOGL2Yr|#5YME(Ghg$v#?EO z1+^e0_lQqqJ{{$u-S}Op{ZmY|0n>RG^fRwpU#>9~I1!WS$vNs<^ocWk)MbBzlctw$ zUfy;U5p{Se*5&MySH_-vccrg)kD{x)8d<{`hq#vTO^N_Y^{Dx^naW9xGBbSc{s%A4 zo7hT|6d0ILE#55CwuEdD*iF>Pk=+%OrWk0*I4yQt{$y#GVT>dL;HwD`+jO(F$+EbD zh5y*|=7dUwiiNB{4EM*5XI<H?)y=gwNQP}bCUeg0fE&PRlj^*TrZKTsocVH%%vpO( zH6F1$!4F#pnO1syKw4*oGRUGCpH(Si9zwh@AEtZF%s#c=f<=fsJ_eKIK=1pKE%!sB z!ag(Vbn5)*vNpW3>sekq{CV3{J+^AYNSn{i>HHL9!x$H~=y>y4QbLyWg#t@}fP--h z*dRMX4k#q}UCAJ0?!HzKAwvI0^!fd@!tVyQf+_b~LzlY?H`%2W89RORySaZyvXhTY zZjz9!Q$GyQok3;qt}b;ZMfJC2oD`e=Dv#4B<3vib>gjpIz0$u^-!+7(V50@Je1Gz@ zN#p%iGS45`*YD}qWVH78m`&C}HD7+2)9smCiBL~nfHddlKLJ0*L4T5U4o})MVlz9w z&Fb|aO3AAlOVduL?}Y~QIo0h7!XI<mecO>BvCt{!N8JN3*YMY~@#(}q&tidf(WFM! zzq~2w2x)W877f6)!f5{F*v629<v+_bALKuN#gx|+B1d1`wjTNqUN`dxoB5ZEN53+$ zgCBhBl=t~&k0vZroew7%T9DRN`kp5PDCe+#WX35QkN%l82wKGk(CXi!!rLNx>4|%N z<5;zylrWXsa6Z};3ViqOT}Jl@IbQp02dElYu1M#vh5qju?sOw~aJIH)<!QlWG;VWO zBK)AiJ$K333I~}mb*G|!-DozLi+umY*bCy@$Y3_fRH2gUqfANnPUV{5wd2d!)51@3 z@+SlZzrr<9w@lh~9!Jt`!)?i)&3wC3>wLl75kfpmjhTsGGsPRn75~&vkpI>gZ<X?E z{N?_7>DiQE4#Ef^q^0fY_OE)2Yc6Tm{;S>&5LBl14CyJurv*jItJ>0m#+*XcoB;}X zYC(kqe2>WVY(C3M@bQ`vR@VuxOGGK`7&U9V8HmHmi83hfFVl6Oe^b2T>G)xAa~U~8 zi(6u)k=q^ncZtBRzcJkZSt6N}PePpXKTDi^!esniLZ*}>DuY&Il`cYEp30ken6KVh zV0Txuh60!qTG;%4w-JRq)Bcv|B|q{<VIDvI>c)vX7~J%|0z)jcR6umCs@DY93{nB7 zMW0^Fqi>7$lKwsxAkO7}VfF80k=U8pz&#chvAavH>4`<q<E8GiNIl9g9D$1JO;0fl z3L9mQ^+Z?e(Ni#k0_X<1A$NU9xXa4h-%Fq#VmM${njiI+P9{8rA@!6j=)+wy3anw7 zDNo%*e7Ck$?yuS(*(%8xh&I6RO8M!-VQLQ^+NT2KI+}X}&KWhdCkp99?KH1`=vGit zjuD5S;>xb_J~F)(U#fYE#|?-jKL_c@kQ!f%swTCsR*H*Z6i}hl@0@FaQ0_(A{r04e zgI-<vWd)1>Gh^j=L%ZhjVUYpi@++L_W%I<<oj3_YtLtIrfsP7sq<PuI`#F=YY*@(O z8CLPs+GjKkZ*n<ai2Ubw_wS{MkpJMZM&<O&IgB<hC$F>b#tD6*=o+XB(98DTg+63c zON)c8A;&Vo+_8wvsFSEOjC2w76~q(a*Mb1_jT`<2r+Iwlse*S#eYh&U4ySyiP4@_H z34=!7@n2uZ_aB2Zb<UdP=Y<<S&ZAOR<6z_aE`@IsLB%S#qsr&O_<8JP>(%w>0)8NN zvfuGBrC;uHNI?`qc$pE5Eli73^Qu+JBO;czLIPnWW8Fx#<B?&~PWGZvcsAZ7gY2%x z-5vQ=Rt1M0>_8rJNH6KlG_)<uF_ZK~eNs;+!NgtZ$S+M!6ZP8<DAUalWWKqlkA}IW zci#NAm16sum-8uT^U1Fl3Ki&G3&>zlk{~^H{|=U&7j|cTYG(q$2&STnB7jp>=MjOQ zx}?^LP=`2?2gec{pdWc}!v_tY9HmnA6jV4iQkS%q*t%Mqw1XyF-hwJLKC}xOoFk3h z2=^VE|N1XYXTWKwKWs*ww0re>3s>yML5??0oH!_qt~`+~l__cH14?YiQoCN^AY8LN zy-<qw;~|%w>XFKEkbu>RzF6sOw8AqpiNj?US|`rZvE-4j=9lH}Wis@<yMX3!X4FOZ zP}O3i+-x$&u!-yW=#K#m$pVGnOWy@Wfo`v4{s(U0Ma=mtu$_NI-fGFe!F{$xTVK-V z7H=LH0H`YVTWqxNN?#GFO`DwP8tDdDd5*jOD&?%OY6<#qPdvXM`|rTK@cV36y9P|b zmIiBv>wlfww6{q2Z|Saqaq<=5X=Kn%fhXp|2HW&IdywXWRNtZ8>5FIgt}0|d@Y|gJ zI>i7OB&vmzdVdAZgIPlN!G8r##^`|V#KV6DPC~k?RH@Xz0%vfq{`~~`fRZOq5vQ__ zlA%X94&G@)(W3pUqmz8vPyz=Y!coSri9a*{B@bmZ7VN?Pl84L|4W2Q=_h+Eq6h2cO z`s7OG<|b{3`?-WRk4+z%;Ba<Dp^K?#(z1=lCK?Rq`tx!&2+<uVlMtu64mjimE5HtQ z3E!^!b7KBwvw|Mbm6SYpI+$DI3=&M=sgJvOEgrck=^NM2wK%`!t34;UIDzDm9RN<y zuLOmf+)7O|O&T}3URz<esM1bIa3QcJdCv+3&2nd_OtPF!B{+_D+&-yLSqJu!fu5n< z2Vy;lXI4E{wZmuYWoa+}+?ghuq^dUvRr#!0>E3JaY!+_%lXk&wBRA{+4jp=;@V}d& z55jNA_aB4-nt09-aqV*^5`6h_KKeh>6CYk0lQ}0}$FNCA7^@DF`RF#y|9~lb!v-CP zIn~F--oIOlNt!s37N+UnDRPkloV^|*W)9tE$PjI4<p03(im-8jkiw&nyp7(M(|^F` zTJ4~u>{+inFh7e9+`eFs-SO80!aaQXIk(Hw(G9d~@pp+h0KK_R8iZ8t`_UxPw4dCr z7jsRo<<P}IP?%oEra+~rew<unG`#0<6Y$;HsUU=Oq>s9pQ_Bnl=XlSeS(3M$AV{!r zF629O4=J$o=(|7mcI*0u#Hr;t+reDOI&#l#nl@{L*;aI|B-(Qn*R$YlT_vR0aVh33 zlaN=*v-$96*s9c0XXe*7c~ZAKQtBHew23j>*~_TWZyEf4>R~-EP=7VG{*L(6zFNt1 z6q$GhTJyu8^G2ntB()fKz-$_gMG*Xy2iemuc)SB`zryouNKt_XzfFM=znv~lSY<u( z2$UHvK363V*jTN+p*dq2`f~F^xV~=-hj|{WoTS&2jiHlitNO6^q0Ss(OA|0SQp5+) z+2gz@TcD`ID~(}L=`@^=$}PPEm`En~ewYVn-Q<5&_cl)}C`gU9?SyP9v!cK9m79;> z#!t|%)+RE%U%r+mG%!1Dkdob=5*DS5@o4cjI05xk%}H$Ex2+i$B*R%KQ|G^7R;53* zK~W4jU|P{TAoRzvcla8AYwC208co>M?wA!^t3Z%dFkUT@J@3~JH+ot`&m*U;`8w+K zBG5@+ApFRMT=p9cL5vQdL9$F!_l1M$!^dcw<3F2Q!`r)a1<YPv-VVRoZjpUo%bY81 zAnr|m$HkKYjS5!Mk_eSBR(;MYZOLu=b%Z#>sdbh)DC;6v{-a^Yx(qF>r6J{Kvx=d~ z4;9WaeahmhXz$}0fy-H`hX^q>d(8+l@9>7WWT)cH?Y@r8Q7^8MzB~)}&HJxH$2|ht zdj4#NRD>SvHONS;eeS&Z2Twz2$6BM^&V&w@VKRgQe>mP1Qb3ot#05L1?xeq;5NV&9 z;U&{19a%0gfG$}lBx~-K`E15WWhI=TvEkMm?DK~g?frAlAKiXqr;<9%jBC{CHQW4^ z)fj$p?c4k{K5q0ey&ZNf!noxhytR_n%QZ*bB#Up%b-=CQ;~mK7n>p%p-fKE}2Nwf{ zpRwEE5l6j+XD+;>4oRO$gVvWL?KK%d{)b0TS$#jTyjmZ7g0D?-_Egnt4Z9Qh^IkBE z;Ai|d^N6EPnV?w4wHlia6Rk}=#zziov3Ec+USFA7I(5u;O<vg~O8d^kvcO>q1w20| zuCIS}f$c5cV@w*Yz~6zC(6`0KN_bQTTBtzdXtimp*{4Eca>eqMMtUz{y)^0@&f^b9 zT+k9&>(`bqsm8L*2`|U_f=q}ijqiax4YRYCR2BqMxG0NwqY-4_l(p~ARs8VhBdhNO zhe~n*rB-)yY$igjA)}M0v(8*gB!&H6)pMf;_XHjeoLtHa4NjffJhjJ}Q{01^L)A>{ z^`!Mz3Y0l5oSMrfCY>*{j4Q*Ej5b*N2L#yQF<PXyRZV0MCs}Lm9?>n_)R@-3l#`vF zyUomJ4Bg3Rk~%n{6X-0_JIY)llhHd5HKq<{67OSfliK~TXWsh{UQg(7Uen$#3%Fio zLT4LpN^Nf;Hac!9Jn&JJE-c%zDcu<7u-N>Px=dWGPav{Z*XrTEcNd$SC`OHi>XlvF z3sCo=Y6j8r={okFr~(l)+dEGkYNQi-n{*c)VzhGn_xavwwBgA)NG$#c|6MCZ(dy{L ziJ0VCGlx#Vn#HYvl(nUUrUmICkd>au9YafAaxEheE%jg^oxg@WO~;cxQ1b@Q<LZyI zGX6Y6Z_5~}ZGwNM9o96_M#Tk`r6Q-_#gl`+8f$xd=nQnlQxy(26ci<_3dsf-I|+re zAA|DLgTkPuJ2W^9l%KnqNfn8;v-N=g-LRe#zf?@V8=oPmAS+X+nD?I)T+>}&@l(gu z5q?HM>sa%$OoqdE>`6g<qE*d2>L?6u*1!nIaM%u33LL^&pt-&%6qM7ljB&mc>F~l( zMOA3arPyHk2+llltxzYlr+;#*S#ir~E2MMv%tb7i{l`|y!q8&g{BJL5t(iK$#mB)E z;mIBEzGVEtx2-IBOCBCxq>}%@5OAjFg|PT|@@$<@t(ns>I~44)Bu30RHD&k-Rtncr z*4v52Qj-~rRoGjK7LeJJzYwjV$iu%12#UL=<!M!{_R}l<9SSLZ5TA>u)IvQi(aJFs z>eb9UODPIR9Y>N(Q@g3JsOC(g9+%a4{zi;5u=fYj_HF;|PA3Kg>ooV+KzWFbJw_&! zM<{sp`U`zO+@c@-VR@|||8W)c=CT;#GAfwmK9A))G+3UPQ^JX<H8+FJ_i+;4(H?p~ z{`AVKRJ+^~3u+^d1dcOZleVVib91i1h>t^X*CYN19H#DH>mycEm#+{08lA&(pP8*H zyxucKcz)+N^)X}0WWNM;N8l`i278ocTWy-UHGmEQq~mLfFT3$qJ>PF|GcX@L^>;is z3f!-E9Zl-<`U9DF%8YZASPTQCDNIhqCl|D{#&@pb`A{AbgEC^1f}wR57fxj<IQyWc z<5vC-lY=r!b1rau_x)PHFAid>x;KgwF+sPk>iz+)34-K6kVZlg4cIe{6w+WR&;Y&Q z;E8<7n=?FBEI<pcw|J9E^$B0zf2`Nc0}&6aQE6{`7Py$_Hx93$@|#un(JuxCS>H!< zIU)CT2ixmkBsmy}W6Ny=1kflB0Bh&#kN;gg{vT}-2BYNyZHZCpFflk@&A^q*R-^%t z|IZQ03jTgxucO?2DkqSp8Z21~U}?wq=IRHH?@J7Fs(S4UrCc9SPs~Z*baHsH+5EoC zp=1U1pf7H(G${*bFtB>fDtM`0A{n*(Ihqkq;R&;?32`p~A}biVlVc=B6e&tla294r z?e*!%p;!Zd>n=Ag?@qI_<+>H9<0id3k<70Yg4>oeLPrf>3N=0Vb*ga#WH~mGK9TFJ z8AT^I5Pl_0X2<U#AmA_ANzeAOgF}&x1gS;ylz#U}#`_4*oKAdvnjNNvnq$g%jZFr~ z_jQL9hb#++h#Ts89H~I1Y5C3E^8SwzX-uydqi12HHKyJI01Ld**Eq!YPO|u616<os z5sy_6=vRiX&HKHRNXg7GWySEj)VV!D3ID(V0W|F-mh_a)X8d<~r~W5Q=RnKm3ce)9 zhh!ATaKdS|x|5n%Yl4;P$&4>e3De{XoyB?+583#hw|lvPO)9ZK)g;a+S@Bg$1du+^ z4(~Sr;_^hh)8l>1%j=ht2m8M|aMdKrJjL=?4h1^}k#)(|j9<)!f)#%Z4~I5{Am>JA zhPqC@)@xin!s{>X!XM0<2kOjC@qa6KHz}Do)|Ixdt%?%i?T+^17!;5QiF-VVybJ8t z0eX9scMZJ7q)bzQj#rOsKZcDO9~*Z!EH??HU)T&)F32SHGKV_|ur?2;*=qzg1hrTJ zgNCG=0l<;2;;8qH3;DPPQ5?tmq;byYm+oVife&Zj4VGYcCgOX3O;jN*1jLWK1Gy-# zkQx)niCT<Vp$UVMtP)P}Zi~NMvq?wkk5u_C7&?Pc2BG?HJ9;0LQnFRO3X6cw?q<r3 z>v{NU@Qw5s$|?XEFp^dH|4Sy*3B}yrmnvD!4r#U~7@K>$=G2dHf|;hLts7^Bl&KE7 z%}mF0&OBGvo^7Pk_QfMGOHmDy@;MHau-VS~SoKG?>Ua>WJZhX7p6EGPQ6y6~3DX^D zx;z!*Kh&7u{MLhg1%=ybYi-;)JXl*HU)k&)I21Q42sJSrSf4cQIGu!v&Mt0TVMaKB zY;O2>$stifFW7w-YYXT0bXU&a-{*I|hs(6s3ak$TN*H9OriC_ZL$>2z`2$EZt?GVk z0;LL}%nsx#Um;{<WI!znqCXnPL2~j{dQ?b{MzYIhAGecU5yNz^MCYlp43nbv_hgJ2 z_odRF@tBo{e$5QEJ5H>Ye4i|WZisE+@;p>nTlR>%lu+)czmsm_6;Ra3cpvPyTMp1` z6l{*k``M81X9+2r2hAJ10ae{O)`*5n+eA22v?#tDH2rB^i|A4}XJU^b%j>Xg@Jg(i z;IG^PI{QH<E`vBso_N{V#XQLpC=`dYb!HfSl8Pbc2Na$*MtSS*Mh?F~4$kFTxkj&) zq!~+)Msa=SIB0goV9GP@OYZ(2tQ}gl@*QhX)zg-NrsBrQff)l244Z;hh2Gmppo`7H zO*T_H;pYtqLf6wgg2Ie;)00owTa@UMCMOpN`wQte%K6~gkQSIqpOp^=k;@F>=-1D^ zx2G?w1U7A@Y86bias!ey&wa%A9GSyXyhW^!XzHT1q%J!aBFl7*oKsL$`g|3y0M;)! zmY|gq={Ig}++`1}lyqc8d_{%1T3F_|S#ds@7Xq?e7gY=QCJJ(k2M`lG-avHi7-wg+ zL$Gb@uLNBSu=5Uj(qbC>dB?$0av4taVQuHU*G$`gYmO$yRmr6oL!%#lgs-2I(O7Yx zXM%InuTX<9PiC`l8=pSNFIsX5hXw%<esZm3wq6#gpZi)vkey(a*Crtr-7eAMaY76? zp1jKMM(B?yelA5P?#pzg7ed(pcxh3k_+xkPX_hmSGE;^Y1?w)JJ-#~u2-)7t|1{ig zi3D+AKcgk{tx7)(itah_5dDJ4LQUXKKu|2sR&@-K0|bh+1TUKs9AMYAN!lG}pQR<g zQmSzt+pnjVPRucFgbj|0ST?T6s`O<ao43iO444C|F2C0^uN}mv{lTFyKNeWsVM{;O zz!6Q=&)-Ec6@ENNj)?juZ&VQ{S1H7uQHry;+_E***9m&ry)=y=cdZLBF#9%Q&Nn%9 zCL3h6(3(-_?%Uz}<H_Rg@r&20kV?PMX7-3}J$rkQk+%-Ut&#E4ncEBs(6%cPVZ|zY z0A^FyVwHFq(m%rRdbST9{BgGEdTBIj712FOavng!-YL{udb*<6aT7Kc5u@Z7|KL4I zsXAmFE>P*5Q;xn2l(A@bqko;$gq?A=NXJmUpHp#v!=nNsP*K9e!%K>0Fn6~br!h*l zQuB$8uZWF3_4VJKk>#Umu5Kgaa``ZX)g2l-Tdo?rmI>peCwAB9V9itay^wyt;WU>& zHS37w1JTf=tO=P+%$0wqgSdfAL}^k<AEqWYHVE&=mxx%ewHu54iOVr)c_}je=~R-F zT6cX5eXyddcFpyaOa4#qN8Cnl1HCkDJTR!h-9#dOMVx+Lx|nNYvA#x!n=5W4?S~m0 znO~&jjqL+1q8`b5tN@rI(ma!vCc8Ji4sL=E$1e=BW!p~_hix~EUBs_2fvLAQ7)b~2 zt3OT!g6*&ed9B?iOM{y03a-D;CjP;bh{%$#7un{Tn|=+~Kq5?9KbAoYTbSJ4r@g?A zNMiO-IM<Vx5MFWyYlF6rxd?!?PjH|2ioLq2y}Hq?TN!r!p~50nZ(?&R;bSs4#C^A{ z-AAS`ZvmM{(GEsZrGE~wfH=v@e5MKBv@|#dBf#Js+Ge><L+r0ES^N(kt5eV324ra; zvQYng;o_|R_B{*CHVc0Az~RQ3J5Lc76hZT@M?ia4?qPk7yha!hb%RJszQU=z^xKGQ z#-&pnc2VrQ;G#&Vr=*AYbA}v^L?UbO5Zol<oSFNkFk&!5@s{KYXQ|J+HMqu%oag_U z9gu8a?yq!ZFEd#%j5vSF{{Mb!>e2S9`Ravn(*{C(zx!#kZV7-#G}Sawx@L3;O+ZC! zc4bo?z5Xh;Tf38u+m~2Vhao~T@p+oma}#y>r`}?l)CLO_^Gsi7&?`OmtJ4yJnP^RD zukGvlG~3s@a?b_mCsjr#=W3U+XMC7sT^&Pb&me%%V7~%_GL3f)v+8zN8#os8F1pil zR2Vmq*8gpBxIM8#&QfhDN?pX`G{-$5AZKYV*p?)q;m-Z6gBlSpF$ulBMWHh9DFJV% z?C$bV1ah_+?EZ5yOryr?gqG8of9R&$JT!1)h79yh+j0Q(mLR>J=v|~)$%aEr=Fo<} z>26=ON4|N5v-3hzYxC=BOMu1)vZt||?)FcGmfpU5LN~d`hh<o^lu(!(&l4$rrN7=< zi3zX_&Dj+Y+x5p96uqb4kST3g++<V<7SPrjF;T)*h8quhyVElc!n#p;-CT*FcF=6C zD?ezv^@m+!S%}+pDfasP9K>I!$?R%`lXOFFH-Vj3`0>Yp-#GpUER!_-?8)6YvQcCF zd5$!EI`k9r&?AhS&bN9#zwh&=I2ed2Tx=JLiA2yF5fv%B8L|V27##!q{AtT7eatGn zpXnqqLoVRN6E)=7FV-qL?mC0HFX!S|vbn8Fx|6n>y%+;NlbWO5#7rOYI0TxNU5^v4 zT$on;9gZ>vS;@IV(~x0#f<@7#Kl!niqnAGt1JA^bW_-108sKt}kBxA8W^Gkg{8Kd> zGc0AUx@h+FZosMWiTG1N@Wa&iW5Q8*3M!;N@N0$hyY7MPBZM{5(ua}nL=Uw_z4KoH zut_hd9_1<-x$}|p8Oq=NCWh}lIZs^A@i7rm7V1Drd%|1XC_bx<X3pJ=)RI@UGS|vd z6Ns;?<iocNZ;JZV$a2~{9qPk`Y6yfW<yTHt%&PloV*w`3rX6C^!h3>t6t!3_VlSzB z002lu3WDO%3A3<$`X7d;f4fY7wf>#nbIlzm9iW`{anM>R$XHgwu+5@S7*i%~M^;f3 zFybcrINug^B)PVTOH~<JX3?k4wzDco0rGC^)IgK$yM)O;PcxAi)DoD%ii!P+U%z>` zL`o<8*t)eCR69uQSDG5OQdfAPggakYT{(Us-o5!<03{AG)*g?7ic)DE8W{Y(*&=-d zX8_+lQOl(gemK^tnuQ_QGV-!zlApg&0=dgj{v6~}aWW|`nw~$u?zuy}7SSye*Zb}5 z^f9<~1nQ3Br|S9H)?}GF$`Oq-+&<vsa3mnr*T8{Vj%54JVjfe6Gs+Z?<otQyLT6T? z*L2fi1vT>1FY7WhZf_J8u7Vgro`Y2|K#djrH!q}j@f&Pt6duv9tXfp@i{R#lK9@^` zIND6YO&Bta@A2^pplQg`S5x!8>}Y9&f$_>iB;&Q`&k9{NV8*{%f!Xf?XkG>t3v{KA z3McKjRzFADyZO{m4d9dA<yi&;T`h!86(=uf9aETE_2S{8NUbL4q|T?Q!EiOgeZHbA zRzAOmo>nh7%z-1ghv;Wp0)A~Nfr>`x1x|6WiX@f!9(6KDFNs}RqF#Hs5f}Jl-q~Op zy%Kfc#+&evs-lgH)cr3p4D)k|DA`m|7+jT2snesre_QA!<4mvwa2)jqYY-F!GsH>k zS-mvd0;px8lp$P9jE{AVnj$q7w5wz3p-&SH;GlX!zjZv)#)GOXLwJM4J1lqq+K$)P z`Opdf+K#n+;MDwO?q!49kWK;|k++e+<XI8ffRabb@y4Hj@D5vUhYR-k?=)HGXYI$I z^tn&$?I>hyg%Nm#=O4GBg3??krX}=!T>-j-fNW%2SDt4IItJ`pTbj59_DiK-s<26A zNv!_#JZ&~G$amidXuKo$mxO`3)cZTPVz?7xJTarel{t_?(Cmc>1*V|BgHu(lBx({D z#igM2PQPrPp0`et-^Kw9)vi&@CmlNy7G}<=F$_9e?r!Tvf>AO%1fBC#tKWP|QYv1C z9|ZdP-h5;F*d<XD`rR_^+3TaN&{j}}<?#1Goq_geqFZiH1e=~@1g9_l<n;0c=0bP{ zIpjyM9U8%1S2}?NpCMKO47k%7YFk-hYF@w990=s#_`OaKc079oOPud)^Gj>=?r0KQ zKy59)<Qdg2G-(poN%kgImr3(EF(`0{-U%MBAyT}HqOIfRUr<~o*WG|4Twv0>kKt`O zNsvaGbR7P;;&WD5!)ZgVcm|;z5d2mpy|(ZR{F+-%M7I@Ea9@v*7g$@*r@7Uxc}tFe zXYC;1pt?<<0$yNsushCGx-)U+xM5woohPXQX;|>YU8-<uXEEJ}0BGap>Pyy@Qd&+x zc)w;m_<-M1Gp%!rZ2K)rueqbaklyW^dC^j*Gt6hrwnJPe_Qocyxzw1~(YZQq$5cbP z9jjY3;@C<hS}mPE@hPvS#68|5m<Y;OQtQWpl8mOa1_#<E)_ACm^7VQB4w{-}sW=S_ zLCK)!qW4}6Y04Uek3NyQIhdOqArg!uG%jbzAFqPeYqpkd@7R%N&%g#0rcMr-x8SVa zhJl}(c{v4(+HYE0XHYS5^awM?!-}c3S%*YKBeTdinI2b9rqzMHA!#hVFJMz|zq`$V zyf2)QJL)JdH><1h-GXB5T%f7UC@l>y<F3h92?>BMyx!CeL7t<^c&sl8<G<$xAR_j{ zE5|F@TzvB>)NbqcU=oO!w3!;=6_n||%ArX|Re09(i{IH>$DE;Jf}I#tLS6;&$(~UZ zrJ!o?|G}fs39VOa@{$L4>>PS3#Kq?^yKklF7z2Pu-+k(M=8!6#q-K4T?G>_Suosbo z=`Jz2yWU5Wf`VG9u)0mojnk}Vk3@3RGMksDK=!-j!&+G4SB79a**f$KF$#}Z9Y5`b z!+H+nP!QxLlcuK&hZ4A6AY2u>m^H!K_OYIq@G6Q3&S$&53TenK7fTJjeIBCZtS3Kp z5dvrH7Qf4SKjtYR?aLZlzN#(LW=@_}C}TBT({)4(;xKs0lWA71Cxm4(Xbt#MCt}r* z2g%Bcm%9<cT-RE$#r2yz*=mt9(Uj%;%ElPAvc|U5$ed4l=`rdr=%jvhwiayXKb*_J zkz<>h&CKdk@^hf|0HFK;RC`Ak6jH;O*}%p@K(LHics?nA|I5!n9d!x8<+|VQw$ElV zm{1ns1&V+nH_zsQOgmTK_C2XJ_t~OmK9IihQ^N7Zd+h=&k8GX{OU_M^r!GysayFPr z9fW>C7G+n0sAg2Z+rt5azWzdJC6kFm7t?mM6sXwxeoRd+L#V|q&9y;x;ODAFidPz5 z7TvlqKhRa#W2FA5p40uJcql>yts}gJ?{8e5Y9P=f1xjI}AStGQ737*sDan|GbR8+2 zn+~ft*|-w@S?|Gb!ohXnh02gNz9#@_{ya6W(ont!qDh<NQ1Ug$WLczILCw~Z1|l2W zL)~O~<iA0wWFj>*HzONyKhRpy-B4#sHd0<At>1V<cO=Iu?ZkrAdL2K1GI3Ay*NuMD z)X+Fp>cTQYbDS_eGGKSuvXg_R(g2ONX^4CX`>Z~J9MtjQ5chBGzzK#UvnGR9^x7x^ zf%4UJqViwT?7t&ZGV2GzW6k{E`r>n(wESLG4ZFf)<ya`<r=)r?@p_q6Fiku|G$TDN z|AMtsDF|FT7jwb(E5F;fho~-j`iVAaPB263W}_CVOrm`|JMY?JQ~jN<>^>yrlr%cH zFwthgS2p05%hcHghIo}b_Z7pr%F&g&i-Hy84J)4ShP2PAaC2KD108~9b@h<sxb?Gr z{2%Vo6VXIS2qQb*;Q`5hXYjSx0tHKiee5Mi>D~LxlkV6pxqda8DhH-Q4lcoM=>wu+ z{Q5kEBFvCuZ8tK8)2!hqH?@L*WI|#JNN13JcgGjsqST#9GQM7(-Ltl9;rA-_q=oc1 zgPyfgVytGh4NPqVG?F821Du#4Y#br1!eWyIKt}<=pyD=4CVhW$?Uz8oujy52gjI=& zuqYh*B~tcv4|x#?T^5@-O!i3mX8VV7roNKmSS)$!M5ANXxBQgSF)pxWD`;QD$-3^% z#PtyIs0va~yD1KaWdUh#M+LL9NKrgG&h*^lpDZBf`*PhL5Qxl4GuWZ&uN2(O)Srph zNi%h$(=LoIeQOyKLlcdzYJhXXp|Dy^3bRV6q$K=v$oY&bg!y;FPu|)Oqf>}17*f0F zbX<Z@r5s1Bqxz)en=#|IF@2n}rUljlDdV3Ei+06sv2tR0imS({K^T`WtlZ!<sXcre zAY%|N7~d*HNevSD;3et%l&CYqt7Y~gPeg0nZ3SUdxP`o_@Y0DrVTW|COLoCdp-dLi zZqcq|r-#IJ0=XC7Ecg9#f%5Z96>H~=O;E;dTfq`8+bW8r5?!d6?T1THPrEumXGE1u zKjP%RDC;{J$30J-itUo56AjIO@Ng9@p}W+Nqe&HkC_x3QuecA5H@q1jYNgYhZ=|<u zn2I4><wiSa3)v%}n^6PJPF^?mGdnj46>Q6irNK|PG$DpnD2xq;WS`C%@d@YR0#w#Y z7%!+`W+!@I#qe=;$Vv={`^C>;?{l(x`+O*0zUP>mY2Jn8Spx#YFkHs4+d--LDroje zTe3+mk7DgeL@43v>i=$r|Cb}-KZ>^{K+IgwhUKJoWI9JwAL#tqaY6j@hRddOcAEd! zQ0|~V1?NPOD=3E#!lult&6>-@T&OTjoSk9X0#WbHk5*ICNJqO3GY!~rAm}*dzfe*? zyEmML2pR^SwR=E!<mr<+j`wU(CfRCjRnSVk3?^KV4jYAJ6fpn?o&tijr6}pYRw~Hf zQe>0*)w$X-2F{Ar`BRbRIL%3dg4SRZNDn1onVaYlf6-7w6&fBx05kznp 71{oH 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∨J{qQiwuu8iMHJ!6;a>lg5`@yX=LYVgQucy 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 diff --git a/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.gltf b/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.gltf deleted file mode 100644 index 3156e6c68..000000000 --- a/app/plot_app/static/cesium/SampleData/models/CesiumAir/Cesium_Air.gltf +++ /dev/null @@ -1,802 +0,0 @@ -{ - "accessors": { - "accessor_120": { - "bufferView": "bufferView_131", - "byteOffset": 1440, - "byteStride": 0, - "componentType": 5123, - "count": 72, - "type": "SCALAR" - }, - "accessor_123": { - "bufferView": "bufferView_131", - "byteOffset": 1584, - "byteStride": 0, - "componentType": 5123, - "count": 72, - "type": "SCALAR" - }, - "accessor_125": { - "bufferView": "bufferView_132", - "byteOffset": 1560, - "byteStride": 12, - "componentType": 5126, - "count": 25, - "max": [ - 0.08199869841337204, - 1.5962599515914917, - 1.5962499380111694 - ], - "min": [ - 0.08199869841337204, - -1.596229910850525, - -1.5962499380111694 - ], - "type": "VEC3" - }, - "accessor_127": { - "bufferView": "bufferView_132", - "byteOffset": 1860, - "byteStride": 2, - "componentType": 5120, - "count": 25, - "max": [ - 127, - 0 - ], - "min": [ - 127, - 0 - ], - "type": "VEC2" - }, - "accessor_129": { - "bufferView": "bufferView_132", - "byteOffset": 1912, - "byteStride": 6, - "componentType": 5122, - "count": 25, - "max": [ - 32727, - 32726, - -32766 - ], - "min": [ - 0, - 0, - -32766 - ], - "type": "VEC3" - }, - "accessor_29": { - "bufferView": "bufferView_131", - "byteOffset": 1728, - "byteStride": 0, - "componentType": 5123, - "count": 17088, - "type": "SCALAR" - }, - "accessor_31": { - "bufferView": "bufferView_132", - "byteOffset": 2064, - "byteStride": 12, - "componentType": 5126, - "count": 4180, - "max": [ - 8.00469970703125, - 5.464059829711914, - 12.86829948425293 - ], - "min": [ - -13.396899223327637, - -2.2960000038146973, - -12.86829948425293 - ], - "type": "VEC3" - }, - "accessor_33": { - "bufferView": "bufferView_132", - "byteOffset": 52224, - "byteStride": 2, - "componentType": 5120, - "count": 4180, - "max": [ - 127, - 127 - ], - "min": [ - -127, - -127 - ], - "type": "VEC2" - }, - "accessor_35": { - "bufferView": "bufferView_132", - "byteOffset": 60584, - "byteStride": 6, - "componentType": 5122, - "count": 4180, - "max": [ - 32733, - 32733, - -32766 - ], - "min": [ - 0, - 0, - -32766 - ], - "type": "VEC3" - }, - "accessor_73": { - "bufferView": "bufferView_131", - "byteOffset": 0, - "byteStride": 0, - "componentType": 5123, - "count": 360, - "type": "SCALAR" - }, - "accessor_76": { - "bufferView": "bufferView_131", - "byteOffset": 720, - "byteStride": 0, - "componentType": 5123, - "count": 360, - "type": "SCALAR" - }, - "accessor_78": { - "bufferView": "bufferView_132", - "byteOffset": 0, - "byteStride": 12, - "componentType": 5126, - "count": 78, - "max": [ - 0.5895140171051025, - 0.25182101130485535, - 0.25182101130485535 - ], - "min": [ - -0.000022888199964654632, - -0.25182101130485535, - -0.25182101130485535 - ], - "type": "VEC3" - }, - "accessor_80": { - "bufferView": "bufferView_132", - "byteOffset": 936, - "byteStride": 2, - "componentType": 5120, - "count": 78, - "max": [ - 126, - 116 - ], - "min": [ - 11, - -116 - ], - "type": "VEC2" - }, - "accessor_82": { - "bufferView": "bufferView_132", - "byteOffset": 1092, - "byteStride": 6, - "componentType": 5122, - "count": 78, - "max": [ - 19094, - 19296, - -32766 - ], - "min": [ - 17200, - 18374, - -32766 - ], - "type": "VEC3" - }, - "animAccessor_0": { - "bufferView": "bufferView_130", - "byteOffset": 0, - "componentType": 5126, - "count": 8, - "type": "SCALAR" - }, - "animAccessor_1": { - "bufferView": "bufferView_130", - "byteOffset": 32, - "componentType": 5126, - "count": 8, - "type": "VEC4" - } - }, - "animations": { - "animation_0": { - "channels": [ - { - "sampler": "animation_0_rotation_sampler", - "target": { - "id": "Geometry-mesh005Node", - "path": "rotation" - } - } - ], - "parameters": { - "TIME": "animAccessor_0", - "rotation": "animAccessor_1" - }, - "samplers": { - "animation_0_rotation_sampler": { - "input": "TIME", - "interpolation": "LINEAR", - "output": "rotation" - } - } - }, - "animation_1": { - "channels": [ - { - "sampler": "animation_1_rotation_sampler", - "target": { - "id": "meshInst741Node", - "path": "rotation" - } - } - ], - "parameters": { - "TIME": "animAccessor_0", - "rotation": "animAccessor_1" - }, - "samplers": { - "animation_1_rotation_sampler": { - "input": "TIME", - "interpolation": "LINEAR", - "output": "rotation" - } - } - } - }, - "asset": { - "generator": "collada2gltf@", - "premultipliedAlpha": true, - "profile": { - "api": "WebGL", - "version": "1.0.2" - }, - "version": "1.0" - }, - "bufferViews": { - "bufferView_130": { - "buffer": "Cesium_Air", - "byteLength": 160, - "byteOffset": 0 - }, - "bufferView_131": { - "buffer": "Cesium_Air", - "byteLength": 35904, - "byteOffset": 160, - "target": 34963 - }, - "bufferView_132": { - "buffer": "Cesium_Air", - "byteLength": 85664, - "byteOffset": 36064, - "target": 34962 - } - }, - "buffers": { - "Cesium_Air": { - "byteLength": 121728, - "type": "arraybuffer", - "uri": "data:application/octet-stream;base64,AAAAAMGqKj6fqqo+AAAAP7CqKj9QVVU/AACAPwAAoD8AAAAAAAAAAAAAAAAAAIA//+jJvgAAAAAAAAAA0kBrPwKMOb8AAAAAAAAAACZgMD+PEHC/AAAAgAAAAIDP0bE+5qt/vwAAAIAAAACAg3FPvYjWZb8AAACAAAAAgEp74b42wCa/AAAAgAAAAIAXPkK/qzHPvQAAAIAAAACAwK9+vwAAAQACAAMAAgABAAQAAAAFAAIABQAAAAYABAAHAAUABwAEAAgABgAJAAcACQAGAAoACwAMAA0ADAALAA4ADwAQABEAEAAPAAEAEgADABMAAwASABQAFQAWABcAFgAVABgAAgAZAAMAGQACABoABQAYAAIAGAAFABsABwAaAAUAGgAHABwACQAbAAcAGwAJAB0AEAAeABEAHgAQAB8AFwAgACEAIAAXACIAEwAjACQAIwATACUAJgAAAAEAAAAmACcAJQAEAAAABAAlACgAJwAGAAQABgAnACkAKAAIAAYACAAoAAoADAAeACoAHgAMAA4AKwAPACwADwArABIALQATACQAEwAtABUALgAXACEAFwAuAC8AMAAUADEAFAAwADIAMwAvADAALwAzADQANQAyADMAMgA1ADYANwA0ADUANAA3ACAAOAAMACoADAA4AB8AIAA5ADoAOQAgACIAIwA7ADwAOwAjAD0APgA/ABYAPwA+AEAAPgBBAD0AQQA+AEIAQABDAEEAQwBAAEQAQgBFAEMARQBCAAoAHgAPABEADwAeAEYAOgALAA0ACwA6ABIARwAtAEgALQBHABUAOwAuADwALgA7AD4ALwAWABQAFgAvAEAAMgA+AC8APgAyAEIANABAADIAQAA0AEQANgBCADQAQgA2ACAADAA6AA0AOgAMAD8AHwBJADkASQAfABkAIgAxADsAMQAiAD0APwBKAEkASgA/AEEAPQBLAEoASwA9AEMAQQBMAEsATABBAEUAQwBNAEwATQBDAAoADwALACwACwAPAEYACwArACwAKwALAAEAJgASAEcAEgAmABQAMQAVADsAFQAxADAAGAAxABkAMQAYADMAGgAwABgAMAAaADUAGwAzABoAMwAbADcAHAA1ABsANQAcAB0AHgA4ACoAOAAeAD8AFgAfABcAHwAWABkAAwAiABMAIgADAAAAAQACAAMAAgABAAQAAAAFAAIABQAAAAYABAAHAAUABwAEAAgABgAJAAcACQAGAAoACwAMAA0ADAALAA4ADwAQABEAEAAPAAEAEgADABMAAwASABQAFQAWABcAFgAVABgAAgAZAAMAGQACABoABQAYAAIAGAAFABsABwAaAAUAGgAHABwACQAbAAcAGwAJAB0AEAAeABEAHgAQAB8AFwAgACEAIAAXACIAEwAjACQAIwATACUAJgAAAAEAAAAmACcAJQAEAAAABAAlACgAJwAGAAQABgAnACkAKAAIAAYACAAoAAoADAAeACoAHgAMAA4AKwAPACwADwArABIALQATACQAEwAtABUALgAXACEAFwAuAC8AMAAUADEAFAAwADIAMwAvADAALwAzADQANQAyADMAMgA1ADYANwA0ADUANAA3ACAAOAAMACoADAA4AB8AIAA5ADoAOQAgACIAIwA7ADwAOwAjAD0APgA/ABYAPwA+AEAAPgBBAD0AQQA+AEIAQABDAEEAQwBAAEQAQgBFAEMARQBCAAoAHgAPABEADwAeAEYAOgALAA0ACwA6ABIARwAtAEgALQBHABUAOwAuADwALgA7AD4ALwAWABQAFgAvAEAAMgA+AC8APgAyAEIANABAADIAQAA0AEQANgBCADQAQgA2ACAADAA6AA0AOgAMAD8AHwBJADkASQAfABkAIgAxADsAMQAiAD0APwBKAEkASgA/AEEAPQBLAEoASwA9AEMAQQBMAEsATABBAEUAQwBNAEwATQBDAAoADwALACwACwAPAEYACwArACwAKwALAAEAJgASAEcAEgAmABQAMQAVADsAFQAxADAAGAAxABkAMQAYADMAGgAwABgAMAAaADUAGwAzABoAMwAbADcAHAA1ABsANQAcAB0AHgA4ACoAOAAeAD8AFgAfABcAHwAWABkAAwAiABMAIgADAAAAAQACAAEAAwACAAMABAACAAQABQACAAUABgACAAYABwACAAcACAACAAgACQACAAkACgACAAoACwACAAsADAACAAwADQACAA0ADgACAA4ADwACAA8AEAACABAAEQACABEAEgACABIAEwACABMAFAACABQAFQACABUAFgACABYAFwACABcAGAACABgAAAACAAAAAQACAAEAAwACAAMABAACAAQABQACAAUABgACAAYABwACAAcACAACAAgACQACAAkACgACAAoACwACAAsADAACAAwADQACAA0ADgACAA4ADwACAA8AEAACABAAEQACABEAEgACABIAEwACABMAFAACABQAFQACABUAFgACABYAFwACABcAGAACABgAAAACAAAAAQACAAMABAAFAAYABwAIAAkACgALAAwADQAOAA8ADgANABAAEQASABMAEgARABQAFQAWABcAFgAVABgAGQAaABsAGgAZABwAHQAeAB8AHgAdACAAIQAiACMAIgAhACQAJQAmACcAJgAlACgAKQAqACsAKgApACwALQAuAC8ALgAtADAAMQAyADMAMgAxADQANQA2ADcANgA1ADgAOQA6ADsAOgA5ADwAPQA+AD8APgA9AEAAQQBCAEMAQgBBAEQARQBGAEcARgBFADwASABJAEoASQBIAEsATAA5AE0AOQBMAE4ATwA7AFAAOwBPAD0APABRAEkAUQA8AFIAUwBUAFUAVABTAFYAVwBYAFkAWABXAFoAWwBcAF0AXABbAF4AXwBgAGEAYABfAGIAYwBfAGEAXwBjAGQAZQBeAF8AXgBlAGYAZwBoAGkAaABnAGoAawBsAG0AbABrAG4AbwBwACUAcABvAHEAcgBzAHQAcwByAHUAdgB3AHgAdwB2AHkAegB3AHsAdwB6AHwAVQB9AH4AfQBVAH8AgACBAIIAgQCAAIMAhACFAIYAhQCEAIcAiACJAIoAiQCIAIsAjACNAI4AjQCMAI8AkACRAJIAkQCQAJMAlACVAJYAlQCUAJcAmACZAJoAmQCYAJsAnACdAJ4AnQCcAJ8AoAChAKIAoQCgAKMAoQCkAKUApAChAKYApwCoAKkAqACnAKoAqwCsAK0ArACrAK4ArwCwALEAsACvALIAswCwALQAsACzALUAtgC3ALgAtwC2ALkAugC1ALYAtQC6ALsAvAC9AL4AvQC8AL8AwADBALgAwQDAAMIAwwDEAMUAxADDAMYAxwCTAMgAkwDHAMkAygDLAMwAzQDKAM4AzwDQANEA0ADPANIA0wDQANQA0ADTANUA1gDXANgA1wDWAMoA2QDMANoAzADZANsA3ADdAN4A3QDcAN8A4ADhAOIA4QDgAOMA5ADlAOYA5QDkAOcA6ADpAOoA6QDoAL0A6wC7AOwAuwDrAO0A7gDoAO8A6ADuAPAA8QDrAPIA6wDxAPMA9AD1APYA9QD0APcA+AD5APoA+QD4APsA/AD0AP0A9AD8AP4A/wD6AAAB+gD/AAEBAgEDAQQBAwECAQUBBgEHAQgBBwEGAQkBBAEKAQsBCgEEAQwBDQEOAQ8BDgENARABEQESARMBEgERARQBFQEWARcBFgEVARgBGQEaARsBGgEZARwBHQEeAR8BHgEdASABAAAhASIBIQEAACMBJAElASYBJQEkAScBKAEpASoBKQEoAScBKwEoAQEAKAErASwBLQEmASUBJgEtAY0AjgAuAS8BLgGOADABiAAxATIBMQGIADMBNAE1ATYBNQE0ATcBOAE5AToBOQE4ATsBPAE9AT4BPQE8AT8BQAFBAUIBQQFDAUQBRQFGAUcBRgFFAUIBSAFJAUoBSQFIAUsBTAFNAU4BTQFMAU8BUAE3ATgBNwFQAVEBUgFTAVQBUwFSAT0BVQE7AVYBOwFVAVcBWAFZAVoBWQFYAVsBXAFdAV4BXQFcAV8BYAFhAWIBYQFgAWMBXQFkAWUBZAFdAWYBZwFoAWkBaAFnAWoBawFsAW0BbAFrAW4BbwFwAXEBcAFvAXIBcwF0AXUBdAFzAXYBdwF4AXkBeAF3AXoBewF8AX0BfAF7AX4BfwGAAYEBgAF/AX0BggF/AYMBfwGCAYQBhQGGAYcBhgGFAYgBiQGKAYsBigGMAY0BjgGPAZABjwGOAZEBkgGTAZQBkwGSAZUBlgGXAZgBlwGWAZkBmgGbAZwBmwGaAZ0BngGfAaABnwGeAaEBogGjAaQBowGiAaUBpgGnAagBpwGmAakBqgGrAawBqwGqAa0BrgGvAbABrwGuAbEBsgGzAbQBswGyAbUBtgG3AbgBtwG2AbkBsQG6AbsBugGxAbwBvQG+Ab8BvgG9AbMBwAHBAcIBwQHAAcMBxAHFAcYBxQHHAcgByQHKAcsBygHJAcwBzQHOAc8BzgHNAdAB0QG+AdIBvgHRAdMB0gHUAdEB1AHSAdUB1gHXAcAB1wHWAdgB2QHaAcUB2gHZAdsB3AHdAd4B3QHcAd8B4AHhAeIB4QHgAeMB5AHlAeYB5QHkAecB6AHpAeoB6QHoAesB7AHtAe4B7QHsAe8B8AHxAfIB8QHwAfMB9AH1AfYB9QH0AfcB+AH5AfoB+QH4AfsB/AH9Af4B/wH8AQACAQICAvoBAgIBAgMCBAIFAgYCBQIEAgcCCAIJAgoCCQIIAgsCBQIMAg0CDAIFAg4CDwIQAhECEAIPAhICEwIUAgkCFAITAhUCFgIXAhgCFwIWAhkCGgKeARsCngEaAhwCpwEdAqgBHQKnAR4CHwIgAiECIAIfAiICIwIkAiUCJAIjAiYCJwIoAikCKAInAugBKgIrAiwCKwIqAi0CLgIvAjACLwIuAjECMgIzAjQCMwIyAjUCNgI3AjgCNwI2AjkCOgI7AjwCOwI6Aj0CPgI/AkACPwI+AkECQgJDAkQCQwJCAkUCRgJHAkgCRwJGAkkCSgJLAkwCSwJKAk0CTgJPAlACTwJOAlECUgJTAlQCUwJSAlUCVgJRAlcCUQJWAlYCWAJXAlkCVwJYAloCWwJcAl0CXAJbAl4CXwJgAmECYAJfAmICYwJkAmUCZAJjAmYCZwJoAmkCaAJnAmoCawJsAm0CbAJrAm4CbwJwAnECcAJvAnICcwJ0AnUCdAJzAnYCdwJ1AngCdQJ3AnkCegJ7AnwCewJ6An0CfgJ/AoACfwJ+AoECggKDAoQCgwKCAoUChgKHAocCiAKFAokCigKLAowCiwKKAo0CjgKPApACjwKOApECkgKTApQCkwKSApUClgKXApgClwKWApkCmgKbApwCmwKaAp0CngKfAqACnwKeAqECogKjAqQCowKiAqUCpgKnAqgCpwKmAqkCqgKrAqwCqwKqAq0CrgKvArACrwKuArECsgKzArQCswKyArUCtgK3ArgCtwK2ArkCugK7ArwCuwK6Ar0CvgK/AsACvwK+AsECwgLDAsQCwwLCAsUCxgLHAsgCxwLGAskCygLLAswCywLKAs0CzgLPAtACzwLOAtEC0gLTAtQC0wLSAtUC1gLXAtgC1wLWAtkC2gLbAtwC2wLaAtwC2gLdAt4C3QLaAt8C4ALhAscC4QLgAuIC4wLkAuUC5ALjAuYC0wLnAtQC5wLTAugC6QLqAusC6gLpAuwC7QLuAu8C7gLtAvAC8QLyAvMC8gLxAvEC9ALzAvUC8wL0AvYC9wL4AvkC+AL3AvoC+wL8Av0C/AL7Av4C/wIAAwEDAAP/AgIDAwMEAwUDBAMDAwYDBwMIA+ACCAMHAwkDCgMLAwwDCwMKAw0DDgMPAxADEQMOAxIDEwMUAxUDFAMTAxYDFwMYAxkDGAMXAxoDGwMcA+oCHAMbAx0DHgMfAyADHwMeA+0CIQP6AiID+gIhAyMDJAMlAyYDJQMkAycDKAMpAyoDKQMoAysDLAMpAy0DKQMsAy4DLwMwAzEDMAMvAzIDMwM0AzUDNAMzAzYDNwM4AzkDOAM3AzoDOwM8Az0DPAM7AzwDPQM+Az8DPgM9A0ADQQNCA0MDQgNBA0QDRQNGA0cDRgNFA0gDSQNKA0sDSgNJA0wDTQNOA08DTgNNA1ADUQNSA1MDUgNRA1QDVQNWA1cDVgNVA1gDWQNaA1sDWgNZA1wDXQNeA18DXgNdA2ADYQNiA2MDYgNhA14DZANcA2UDXANkA2YDZwNoA2kDaANnA2oDawNsA20DbANrA24DbANvA3ADbwNsA3EDcgNzA3QDcwNyA3UDdgN3A3gDdwN2A3kDegNpA3sDaQN6A3wDfQN+A38DfgN9A4ADgQOCA4MDggOBA4QDhQOGA4cDhgOFA4gDiQOKA4sDigOJA4YDjAONA44DjQOMA48DigOQA5EDkAOKA5IDkwOUA5UDlAOTA5YDlwOYA5kDmAOXA5oDlAObA5wDmwOUA50DngOfA5gDnwOeA6ADoQOiA6MDogOhA6QDpQOmA6cDpgOlA6gDqQOqA6sDqgOpA6wDrQOuA68DrgOtA7ADsQOyA7MDsgOxA7QDtQO2A7cDtgO1A60DuAOvA7kDrwO4A7oDuwO8A70DvAO7A74DvwPAAwcAwAO/A8EDwgMLAAkACwDCA8MDxAPFA8YDxQPEAwYACADHA8gDxwMIAMkDygMKAAsACgDKAy8DywMxA8wDMQPLAyMDJQPNA84DzQMlA88D0APRA9ID0QPQA9MD1APVA9YD1QPUA9cD2APZA9oD2QPYA9sD3APdA94D3QPcA98D4APhA+ID4QPgA+MD5APlA94D5gPkA9kD5wPoA+kD6APnA+oD1QPrA+wD6wPVA+0D7gPvA/AD7wPuA9cD8QPyA/MD8gPxA/QD9QP2A/cD9gP1A/gD+QP2A/oD9gP5A/sD/AP9A/4D/QP8A/8DAAQBBAIEAQQABAMEBAQFBAYEBQQEBAcECAQJBAoECQQIBAsEDAQNBA4EDQQMBA8EEAQRBBIEEQQQBBMEFAQVBBYE9AMXBBgEGQQaBBsEGgQZBBwEGgQdBB4EHQQaBPsDHwQgBCEEIgT7AyMEAgQkBCUEJAQCBCYEJwQoBCkEKAQqBCsELAQtBC4ELQQsBC8EMAQxBDIEMQQwBDMENAQ1BDYENQQ0BDcEOAQrBCwEKwQ4BDkEOgQ7BDwEOwQ6BD0EPgQ/BEAEPwQ+BEEEQgRDBEQEQwRCBEUERgRHBEgERwRGBEkESgQ5BEsEOQRKBEwETQROBE8ETgRNBFAEUQRSBFMEUgRRBFQEVQRWBFcEVgRVBFgEWQRSBFoEUgRZBFsEXARdBF4EXQRcBF8EYARhBGIEYQRgBGMEZARlBGYEZQRkBGcEaARpBGoEaQRoBGsEbARtBG4EbQRsBG8EcARxBHIEcQRwBHMEdAR1BHYEdQR0BHcEeAR5BHoEeQR4BHsEfAR9BH4EfQR8BH8EgASBBIIEgQSABIMEhASFBIYEhQSEBGwEawSHBIgEhwRrBIkEewSKBHQEigR7BIsEjASNBI4EjQSMBI8EkASRBJIEkQSQBJMElASVBJYElQSUBJcEmASRBI8EkQSYBJkEmgSRBJcEkQSaBJsEkwScBJUEnASTBJ0EngSfBKAEnwSeBKEEogSjBKQEowSiBKUEpgSnBKgEpwSmBKkEqgSrBKwEqwSqBK0ErgSvBLAErwSuBLEEsgSzBLQEswSyBLUEtgS3BLgEtwS2BLkEugS7BLwEuwS6BL0EvgS/BMAEvwS+BMEEwgTDBMQEwwTCBLcExQTGBMcExgTFBMgEyQTKBMsEygTJBMwEzQTOBM8EzgTNBNAE0QTSBNME0gTRBNQE1QTWBNcE1gTVBNgE2QTaBNsE2gTZBNwE3QTeBN8E3gTdBOAE4QTiBOME4gThBN0E5ATfBOUE3wTkBOQE5gTlBOcE5QTmBOYE6ATnBOkE6gTrBOwE6wTqBO0E7gTvBPAE7wTuBPEE8gTzBPQE8wTyBPUE9gT3BPgE9wT2BPkE+gT7BPwE+wT6BP0E/gT/BAAF/wT+BAEFAgUDBQQFAwUCBQUFBgUHBQgFBwUGBQkFCgULBQwFCwUKBQ0FDgUPBRAFDwUOBREFEgUTBRQFEwUSBRUFFgUXBRgFFwUWBRkFGgUbBRwFGwUaBR0FHgUfBSAFHwUeBSEFIgUjBSQFIwUiBSUFJgUfAB4AHwAmBQ8AJwUQABEAEAAnBSgFKQUUABUAFAAqBRgAGgArBRYAKwUaACwFLQUOAAwADgAtBS4FLwUjACIAIwAvBTAFMQUyBTMFMgUxBSoAKwA0BTUFNAUrAC4ALwA2BTcFNgUvADUFOAU5BToFOQU4BTYANwAsBS0FLAU3ADoAOwA7BVAAOwU7ADwFPQU+BT8FPgU9BUAFQgBBBUMAQQVCAEYARwBCBUMFQgVHAEkASgBEBUUFRAVKAEYFRwVMAE0ATABHBUgFSQVOAE8ATgBJBVEASQBKBUQFSgVJAEsFTAVNBU4FTQVMBU8FUAVRBVIFUQVQBVMFVAVSBVEFUgVUBXEAVQVWBVcFWAVVBYMAWQVaBVsFWgVZBWIAXwBcBWUAXAVfAF0FXgVmAGcAZgBeBV8FYAVtAGwAbQBgBWEFbgBiBXAAYgVuAHMAdABjBWQFYwV0AGUFeQB4AHcAeAB5AHsAZgV3AHUAdwBmBWcFaAV9AGkFfQBoBWoFgABrBWwFawWAAG0FhABuBW8FbgWEAIkAcAVxBXIFcQVwBXMFdAV1BXYFdQV0BXcFeAWPAJAAjwB4BZYAiwB5BY0AeQWLAJkAmgB6BXsFegWaAHwFfQWeAH4FngB9BX8FgAWBBaMAgQWABaQA5wCjAIEFowDnAIIFgwWEBYUFhAWDBYYFhwWrAIgFqwCHBYkFigWLBYwFiwWKBboAjQW2AI4FtgCNBY8FkAWyALMAsgCRBZIFswCTBZQFkwWzAJUFggWWBb4AlgWCBbgAwAC3AJcFtwDAAJgFwgCZBcQAmQXCAMIAxwDDAMYAwwDHAJcFmgWbBcoAnAWaBdAA1ADOAJ0FzgDUANMAngXUAJ8F1ACeBaAFoQXWANgA1gChBaIFowWkBaUFpAWjBaYFpwWoBakFqAWnBaoF3wCrBeEAqwXfAOQA4wCsBa0FrAXjAOkA6gCuBa8FrgXqALAFqADsALsA7ACoAOgA7wDqALEF6gDvALIF7ADyAOsA8gDsAPUA9gCzBbQFswX2APkAtQX3ALYF9wC1BfQA/QD2ALcF9gD9APkA+gC4BQABuAX6ALkFugURAbsFEQG6BbwFvQUHAQUBBwG9Bb4FCQG/BQoBvwUJAcAFwQUHAbwFBwHBBREBuwUTAcIFEwG7BRUBFAHDBRwBwwUUAcQFGAHFBRoBxQUYAcUFGgEhAcYFIQEaAccFIgECAAAAAgAiAcgFIwEEACUBBAAjAckFKgEgASgBIAEqAcoFAgArAQEAKwECAMsFKQEsAS0BLAEpAY0ALgF5BTQBeQUuAcwFigAwAYgAMAGKAM0FMwHOBTUBzgUzAc8FNwHQBTkB0AU3AdEF0gU+AT0BPgHSBdMFPwHUBdUF1AU/AUQB1gU5AdAFOQHWBdcF2AXZBdoF2QXYBU4B2wVNAdwFTQHbBd0F3gXfBU8B3wXeBeAF4QXiBVIB4gXhBVUB4wXOBeQFzgXjBeUF5gXnBegF5wXmBVwBWwHpBeoF6QVbAWIBYAHrBewF7QVgAVsBXQHuBWMB7gVdAe8F8AXxBfIF8QXwBWwBbQHzBfQF8wVtAWsBcAFtAXEBbQFwAfUFcgH2BXQB9gVyAfcFeQH4BXcB+AV5AfkFfAH6BX4B+gV8AfsF/AX9Bf4F/QX8Bf8FAAYBBgIGAQYDBoQBhgHvBQQG7wWGAQUGBgYHBggGBwYGBgUGCQYKBooBCgYJBgsGDAYNBg4GDwYLBpcBmAEQBhEGEgaYARMGFAYVBhYGFQYXBqoBqQEYBhkGGAapARoGvAEbBhwGGwa8AR0GHgYfBiAGHwYeBp0BIQasAasBrAEhBrABowGvASIGrwGjAbIBsQEjBrkBIwaxAasBJAapASUGqQEkBh8CuQEhAroBIQK5ASYGJwYoBikGKAYnBioGKwbCAcEBwgErBsUBxgEqBisGKgbGAbUBLAYtBi4GLQYsBi8GMAbOAcwBzgEwBjEG0QHKAdABygHRAdQB0QEyBjEGMgbRATMGzQHVAdYB1QHNATQG2AE1BtoBNQbYATYGNwbcAd4B3AE3BjgGOQbfAeAB3wE5BjoGOwY8BjwG8wE6Bj0GPgY/BkAGQQY+BuwBQgbuAUMG7gFCBvIB8AFEBkUGRAbwAfUB9gFGBkcGRgb2AUgGSQb3AfgB9wFJBkoGSwZBBvwB+wFLBkwGTQYCAk4GAgJNBk8GAwJQBgUCUAYDAkQGBwITAgkCEwIHAlEGUgZTBlQGUwZSBlUGUgZWBlEGVgZSBlcGWAZZBloGWQZYBlsGFgJcBl0GXAYWAl4GXwZgBucBYAZfBh8GIAZhBmIGYQYgBiACIQJjBmQGYwYhAmUGZgZnBmgGZwZmBikCaQYoAkgGKAJpBmoGawY7AjkCOwJrBjACbAYvAm0GLwJsBm4GMwJvBjQCbwYzAjUCNwJwBnEGcAY3AjkCcgY6AnMGOgJyBj8CQQI9AnQGPQJBAkQCdQZDAnYGQwJ1BkYCdwZIAngGSAJ3BkkCSwJ5BnoGeQZLAnsGfAZ9Bn4GfQZ8Bn8GgAaBBoIGgQaABoMGfwaEBoUGhAZ/BoQGhgaDBocGgwaGBogGiQaKBosGigaJBowGjQaOBo8GjgaNBpAGjwaRBpIGkQaPBpMGlAaVBpYGlQaUBpcGmAaZBpoGmQaYBpsGnAadBp4GnQacBp8GoAahBqIGoQagBqMGpAalBqYGpQakBqcGqAapBqoGqQaoBqsGrAatBq4GrQasBq8GsAaxBrIGsQawBrMGtAa1BrYGtQa0BrcGuAa5BroGuQa4BrsGvAa9Br4GvQa8Br8GwAbBBsIGwQbABsMGxAbFBsYGxQbEBscGyAbJBsoGyQbIBssGzAbNBs4GzQbMBs8G0AbRBtIG0QbQBqcCqAKhAqICoQKoAtMGsQLUBrMC1QaxAq8C1gatAtcGrQLWBqsCrAKwAqsCsAKuAtgGuALZBrYC2Qa4AtoG2wYFA8ECBQPbBr8CwALPAtwGzwLAAsIC3QbEAt4GxALdBsYC3wbIAuAGyALfBsoC4QbMAuIGzALhBuMG5AbNAs4CzQLkBuUG5gbnBugG5wbmBtcC2ALpBuoG6QbYAtwC6wbbAuwG2wLrBusG3ALWBt0C1gbcAv4C3wK+AuECvgLfAuMC7QblAu4G5QLtBu8G5gLZBucC2QbmAvAG6AIbA+oCGwPoAvEG8gbzBvQG8wbyBvUG9gb3BvAC9wb2BvgG+Qb6BvsG+gb5BvwG/Qb+BvkC/wb9BvsG+QYABwEHAAf5BgIHAwcBAwADAQMEBwUHAwMGBwIDBgcDAwcHBgMIBwgDCQcGAwoHCwcJAwoDCQMLBwwHDgMNBw0DDQcOAw4HDwcUAxIDFAMPBxAHGQMRBxcDEQcZAxIHGgMMBxMHDAcaAxQH8gYfAxUHHwPyBhYHFwcAByIDAAcXBxgHGQcmAxoHJgMZBxgHGwcZBxwHGQcbByoDHQcpAysDKQMdBx4HHwcgByEHIAcfBzQDNQMiByMHIgc1AyQHOAMlBzkDJQc4AzsDJgc9AycHPQMmBz0DJwc/A4QDPwMnBygHKQcqBysHKgcpB0YDQwMsB0EDLAdDA0oDLQdIAy4HSAMtB04DSQNMAy8HTANJA1IDUwMwBzEHMAdTA4gDMgczBzQHMwcyB0UDNQdHAzYHRwM1BzcHOAdfA14DXwM4BzkHYQM6B2ADOgdhA2QDOwdlAzwHZQM7Bz0HPgc/B0AHPwc+B0EHcANtA2wDbQNwA28DcANCB0MHQgdwA0QHRQdzA3EDcwNFB0YHRwd4A3cDeANHB0gHSQdKB0sHSgdJB0wHTQdOB08HTgdNB1AHgwNRB4EDUQeDA4UDUgeHA1MHhwNSB1QHiwNVB4kDVQeLA4cDVgeGA4wDhgNWB1cHkQOLA4oDiwORA1gHWQdaB1sHWgdZB1wHmQNdB5cDXQeZA5wDlANeB5UDXgeUA7ADXwdgB2EHYAdfB6EDoANiB2MHYgegA2QHpANlB6YDZQekA2YHZwdoB2kHaAdnB64DrwNqB2sHagevA7EDbAezA20HswNsB24HugNvB7wDbwe6A7gDcAe5A3EHuQNwB3IHcwe6A7sDugNzB74DdAe/A3UHvwN0B8IDdgcJAHcHCQB2B3gHeQfGA8UDxgN5B3oHyQN7BwoAewfJA3wH0QMvA8sDLwPRA30HzQN+B84DfwfNA4AHgQfPA9ADzwOBB4IHgweEB9QD0wOFB4YHhwfYA9oD2AOHB4gHiQfbA4oH2wOJB4sHjAeNB44HjQeMB48HkAfkA5EH5AOQB9kD2gPnA5IH5wPaA+oDfQeTB34Hkwd9B5QHlQeWB+4DlgeVB4EHlwfQA/ID0AOXB/UDmAf3A5kH9wOYB/YD9wP4A5oH+AP3A5sHnAf8A/4D/AOcB50H/wOeBwEEngf/A5wHBAT+AwME/gMEBJ8HoAehBx4EoQegBykEogcoBKMHKASiBxIEpAelB6YHpQekBykEKgSnB6gHpwcqBBsEqQehBw4EoQepB6oHqwcPBBAEDwSrB/sDIgSsB60HrAciBCQErgcjBK8HIwSuB6MHsAcoBLEHKASwB7IHLQSzB7QHswctBLUHtgczBLcHMwS2B7gHNQRLBDYESwQ1BLkHOAS6BzcEugc4BDoEuwc8BLwHPAS7B70Hvge/B8AHvwe+B8EHVATCB8MHwgdUBMQHxQdFBEYERQTFB8YHxwdhBMgHYQTHB00ESARPBEYETwRIBMkHUARaBFIEWgRQBEMEygfLB8wHywfKB80HWgTOB1kEzgdaBFsEXQTPB9AHzwddBGAE0QdiBMsHYgTRB9IH0wdjBGQEYwTTB2oEaATUB9UH1AdoBG0EbgTWB9cH1gduBLcExgS1BNgHtQTGBNkHdQTaB3YE2gd1BNsHeQRxBNwHcQR5BH0EfgTdB94H3Qd+BIIE3weBBOAHgQTfB4QE4QeGBOIHhgThB2sEeASIBOMHiAR4BIkE5Ad7BHwEewTkB+UHjQTmB+cH5geNBOgHkATpB48E6QeQBJUElgTqB4UE6geWBIgE4weYBOsHmATjB5sEigSaBOwHmgSKBJwE7QeJBOQHiQTtB+4H7wefBPAHnwTvBywE8QcuBPIHLgTxB/MH9Af1B/YH9Qf0B/cHqwT4B6wE+AerBK4E+QewBPoHsAT5B/sH5Qf8B+YH/AflB/0H/gf/BwAI/wcBCAIIAwgECAUIBAgDCAYIBwgICAkICAgHCAoICwgMCA0IDAgLCA4IDwgQCBEIEAgPCMkEEgjLBBMIywQSCBQIFQgWCBcIFggVCBgIGQgaCBgIGggbCBwIHQjYBNkE2AQdCB4I1gQfCCAIHwjWBB0IIQjZBNsE2QQhCCEIIgjbBCMI2wQiCCIIJAgjCOEEJQjmBOgE5gQlCCYIJwgoCCkIKAgnCCoIKwgsCC0ILAgrCC4ILwgwCDEIMAgvCDIIMwg0CDUINAgzCDYINwg4CDkIOAg3CDoIOwg8CD0IPAg7CD4IPwhACEEIQAg/CEIIQwhECEUIRAhDCEYIRwhICEkISAhHCEoISwhMCE0ITAhLCE4ITwhQCFEIUAhPCFIIUwhUCFUIVAhTCFYIVwhYCFkIWAhXCFoIWwhcCFwIXQhaCF4IXwhgCGEIYAhfCGIIYwhkCGUIZAhjCA4ADwBmCBAAZggPAGcIaAhpCGoIaQhoCCgFFABrCBsAawgUABkAQQVsCGsIbAhBBR0AMgAfAG0IHwAyAEQFRQUzAG4IMwBFBS0ALABqAGsAagAsAG8IcAhxCHIIcQhwCHMIdAh1CHMIdQh2CDoFPwUwADEAMAA/BXEIcgg0ADUANAByCHcISQV4CHkIeAhJBT0Aegg/AHsIPwB6CHwIEgB9CH4IfQgSAH8IgAgoBSoFKAWACHcIfAiBCH0IgQh8CCAARgWCCEwAgghGBUcFSAVNAE4ATQBIBYMIUQA9BUoFPQVRAIQIUgB/AFQAfwBSAGgFhQhXAFkAVwCFCIYIXABrBV0AawVcAGEAhwhgAIgIYACHCIkIighiAGMAYgCKCIsIXAVkAGUAZABcBYwIjQiOCI8IjgiNCJAIkQiSCJMIlAiQCJUIlghhBW4AYQWWCJcImAhxAHIAcQCYCJkIZAWaCHQAmghkBZsInAh5AHoAeQCcCH0AaQV8AIYIfABpBYAAagWCAE8FggBqBYQAbQWGAJ0IhgBtBXEFngiJAIcAiQCeCJ8IoAiLAIwAiwCgCKEIogh3BXgFdwWiCJQAnwiWAIsAlgCfCHgFmQCQAHoFkACZAJwAmwCjCKQIowibAKEAowCfAIAFnwCjAKIApQihAKUAoQClCKIApgilCKYApQimCKcIhgWqAKsAqgCGBYkFiwWNBagIjQWLBbYAjgW4AKkIuACOBbAAsQCyAKoIsgCxAKsIrAi5ALoAuQCsCIIFhAW+AL0AvgCEBcEArQi/AK4IvwCtCK8IsAixCLIIsQiwCLMIsQi0CLIItAixCLUItgi3CLgItwi2CM8AuQjRALoI0QC5CLsI0gDRANAA0QDSANUA1wC8CL0IvAjXANoA2QC+CL8IvgjZANwAogXeAMAI3gCiBcEIwgjDCKYFwwjCCMQIxQjGCKsFxgjFCKQA7QDnAOgA5wDtAOsAvQDwAIQF8AC9AMcIyAjtAO4A7QDICMkIygjwAPEA8ADKCLEF+wDzAPQA8wD7AP4A+gCyBfgAsgX6AMsIzAj7APwA+wDMCP8A/gDNCM4IzQj+ALcFCwECAQQBAgELAc8ICAG4BQYBuAUIAdAI0QjSCNMI0gjRCL8FCgENAQ8BDQEKAdQIEAHVCBIB1QgQAcEF1ggXARYBFwHWCBkB1wgbAdgIGwHXCBQB2QgcAR0BHAHZCBoBGwHGBdoIxgUbASQB2wgmAdwIJgHbCN0IJwHLBSkBywUnAd4IygXfCCsB3wjKBeAIywXhCCwB4QjLBY4A4ggvAeMILwHiCOQI5QjmCOcI5gjlCOAFNgEuATQBLgE2AcwFMAHdBd4F3QUwAegI6Qg7ATwBOwHpCOoI1QVBAT8BQQHVBUUBRAE6ATkBOgFEAesISgHsCEgB7QhKATwBSwE+AU0BPgFLAd4F7ghPAVABTwHuCOEF7whSAVQBUgHvCFYBVQE1Ac4FNQFVAfAIVwHxCFkB8QhXAfIIZQFeAV0BXgFlAV8BYQHlBfMI5QVhAWQBZQFmAWcBZgFlAWgBaQH0CPII9AhpAfUIbAH2CPMF9ghsAfcI9QX4CPYF+Aj1BfYFdAH5CPoI+Qh0AfMF9AX7CPwI+wj0BXwB+QV6Af0IegH5Bf4IgAH/CIEBAAmAAYIBlQGDAZcBgwGVAYUBAQmHAQIJhwEBCQMJBAmMAQoGjAEFCfwFjwEGCZABBgmPAZMBlAEHCfsFCAmUAZYBlQEJCQoJCQmVARIGEQYLCQwJDQkRBiEGnQEOCZ8BDgmdAQ8JEAmhAaIBoQEQCREJpgG2AaUBtgGmAR4GEgkgBhMJIAYSCRQJoQGwAaMBsAGhARUJIwYWCRcJFgkjBrYBtQERCS0GEQm1AcEBuwGzAbEBswG7AbwBvgEYCdIBGAm+AdcBwAG0AbMBtAHAAWQGGQkaCRsJGgkZCSUGMQbLAcoBywExBjMGHAnNAc8BzQEcCR0JHgkfCSAJHwkeCSEJIgksBiMJLAYiCSQJMwYlCdUBJQkzBjUG2gEwBiYJMAbaAScJKwLcATYG3AErAj4GKAkpCSoJKQkoCeEBKwnkAeYB5AErCeoB6AEnCSsCJwnoASwJ6wEtCe0BLQnrASYCKAIuCS8JLgkoAkQGRQYHAjAJBwJFBvkB+gExCQECMQn6AVgGVgYsCeUBLAlWBjIJAAJOBgICTgYAAjMJNAkEAgYCBAI0CfQBNQk2CTcJNgk1CTgJDQIGAgUCBgINAg4COQkPAjoJDwI5CRQC/AESAksGEgL8ATsJXQYVAhYCFQJdBjwJoAEbAp4BGwKgAT0JrQE+CT8JPgmtARcJHwJACR4CQAkfAkEJ4AFCCTkGQgngAUMGQwkmAicCJgJDCWYGXgZoBmAGaAZeBi4CLQJECUUJRAktAkYJMgJHCTECRwkyAjYCSAk4AkkJOAJICTsCPAJKCUsJSgk8Aj4CTAlAAk0JQAJMCUICQQJOCT8CTglBAmcGRQJlBkcCZQZFAk8JUAlNAk4CTQJQCXkGegZRCVIJUQl6Bn8GUwmABlQJgAZTCYEGVQJTAlECUwJVAlUJggZWCVcJVgmCBoIGgAZXCVgJVwmABoAGVAlYCVkJWglbCVwJWwlaCV0JXglfCWAJXwleCWEJYglhAmMJYQJiCWQJZQlmCWcJZgllCWgJaQlqCWsJaglpCWwJbQluCW8JbgltCXAJcQmiBqEGogZxCXIJcwl0CXUJdAlzCXYJdwl4CXkJeAl3CXoJewl8CX0JfAl7CX4JfwmACYEJgAl/CYIJgwmECYUJhAmDCYYJhwmICYkJiAmHCYoJiwmMCY0JjAmLCY4JjwmQCZEJkAmPCZIJkwmUCZUJlAmTCZYJlwmYCZkJmAmXCZoJmwmcCZ0JnAmbCZ4JnwmgCaEJoAmfCdQGpQLTBqIJ0walAqoCowmsAqQJrAKjCaUJpgmnCagJpwmmCakJqgmrCbQCqwmzArUCtwKsCa0JrAm3ArsC/wK5Ar0CuQL/Aq4JrwntBrAJ7QavCbEJsgnCAt0GwgKyCbMJ5Qa0CecGtAnlBt0GyQLeBssC3gbJAuQGtQK1CawJtQm1ArYJ0QK3CdMCtwnRArgJuQnVAtYC1QK5CaQCugm7CbwJuwm6Cb0J1wbdAtYG3QLXBqMCvgnpBr8J6Qa+CcACwAncBsEJ3AbACcIJwwnvBuYC7wbDCcQJ1wK/CekGvwnXAvsCxQn9AsYJ/QLFCfEC8ALHCfYGxwnwAvQC8QIWB8cJFgfxAvcCyAn5Av8G+QLJCe0C+gLvAvwC7wL6AsoJywnMCc0JzAnLCc4JzwkFBwMDBQfPCdAJ0QnSCdMJ0gnRCdQJCQfVCQgD1QkJB9YJ1wnYCfYC2AnXCdkJFQPaCRMD2gkVA9sJ2QkSB9wJEgfZCRoDHAMTB/EGEwccA/UGFAcgAx8DIAMUB/sGAAchAyIDIQMAByQD3QkmAxgHJgPdCd4JJwMtAykDLQMnA98JHAfgCeEJ4AkcBzADMQPiCeMJ4gkxA+QJMgPlCTQD5QkyAyQHJQfmCecJ5gklBzoDPAPoCekJ6Ak8A+oJ6Qk+AzwDPgPpCesJ7AlDA0IDQwPsCe0JRAMsB0YDLAdEA04D7glJA0sDSQPuCU0D7wlPA/AJTwPvCVEDUAPxCVcD8glQA1UD8wlXA/QJVwPzCUcDNgfrCfUJ6wk2B/YJ9wk3B/gJNwf3CWIDYwP5CfoJ+QljA/kJ+wn8Cf0J/An7CfgJ/glEB0UHRAf+Cf8JAApqA2sDagMACgEKagNuA2wDbgNqAwIKAwo6BzkHOgcDCnUDBAp2AwUKdgMECnoDBgp7AwcKewMGCn4DfwNJBwgKSQd/A0wHPwcJCkAHCQo/Bz8DhAONA4YDjQOEA4oDjwOIAzIHiAOPAwoKjQMLCo4DCwqNA5ADDAqPAw0KjwMMClYHkgOaA5QDmgOSA54DVweYA5YDmANXBw4KmgMPCpsDDwqaA54DnQMQChEKEAqdA6IDowMSChMKEgqjA7ADrANfBxQKXwesA6UDaAcVCqkDFQpoB7ADsgOsA60DrAOyA6MDbgcTCm8HEwpuB20HtAMWCrYDFgq0A68DuQNrBxcKawe5A7kDcQcXCnYHFwpxB8ADBwBwBwYAcAcHAMEDCwAYCsoDGAoLAMgDewfHA3cHxwN7B78DGQoHAAgABwAZChoKGwp6B8kDegcbCuMJMQMcCswDHAoxA80DHQojAx4KIwMdCtED0gPLAx8KywPSA9UD1gPsAyAK7APWA9kD6APXA/ED1wPoA9sDigfcAyEK3AOKB9YD4AMgCt8DIArgAyIKjwfjA+QD4wOPByMK6QOSB+cDkgfpA30H6gMkCusDJArqA5YH7gMlCu0DJQruA/MD0gPyA9AD8gPSA/QD9gMmCvoDJgr2AycKKAqbB5wHmwcoCikKmwcqCvwDKgqbBysKLAotCi4KLQosCv0D/gMvCgMELwr+A58HDAQHBAgEBwQMBDAKMQoNBAsEDQQxCqQHEgQyChAEMwoSBPUD9AM0ChYENAr0AxoEGwQeBKEHHgQbBDUKGAQ2ChoENgoYBDcKOAo5Ch8EOgogBKYHOwo8Cj0KPAo+Cj8KAARACv8DQQoABCsELQRCCrIHQgotBEMKLwRECscHRAovBDMEtwc0BKUENAS3B7oHNwRCBEQEQgQ3BEUK8wdGCkcKRgrzB0gKPwRJCkAESQo/BEQEQgpDBMoHQwRCCj4ESgpABMQHQARKCksESgS4B0sKuAdKBEcESARlBEwKZQRIBE0KTApNBEgETQRMClUEvwdXBE4KVwS/B1IEUwRYBNIHWARTBMwH0AdPCl0ETwrQB2IEywdPCswHTwrLB1AKUQrTB2QE0wdRClIKWQRTClQKUwpZBFUKVgpXClgKVwpWClkK1gdaClsKWgrWB1wKGwhdClwKXQpeCl8KdwTbB3kE2wd3BNoH3Qf5B2AK+QfdB5AE6AdnBGEKZwToB2IKgwSWBIUElgSDBLIEYwq0BIsEtARjCngEdwTjB2QK4wd3BI0EjgTnB2UK5weOBGYKZwpoCmkKaApnCugH6QdqCmsKagrpB4cEiASXBJgElwSIBJoE7AeXBIcElwTsB5sEnASKBIkEigScBJ8E8AedBGwKnQTwB20K1QekBKMEpATVB7cHbgqlBKYEpQRuCm8K9wdKCvgHSgr3B3AKGAhxCtQHcQoYCHIKcwqxBLIEsQRzCv8HdAq2BLgEtgR0CnUKdgq5BLoEuQR2CsAEvgR3CngKdwq+BHkKwQR6CsMEegrBBLgEewq3BMUEtwR7CnwKfQrKBMgEygR9Cn4KywR/ChMIfwrLBIAKgQrQBNEE0ASBCh8IggoiCCQIIgiCCoMKhAqFCoYKhQqECuAE4gSHCogKhwriBIkKigrgBOEE4ASKCooKiQqLCowKiwqJCusEjQqOCo8KjgqNCpAKkQqSCpMKkgqRCpQKlQqWCpcKlgqVCpgKmQqaCpsKmgqZCpwKnQqeCpwKngqfCqAKoQqiCqMKogqhCqQKpQqmCqcKpgqlCqgKqQqqCqsKqgqpCqwKrQquCq8KrgqtCrAKsQqyCrMKsgqxCrQKtQq2CrcKtgq1CrgKuQq6CrsKugq5CrwKvQq+Cr8Kvgq9CsAKwQrCCsMKwgrBCsQKxQrGCscKxgrFCsgKyQrKCsgKygrLCswKzQpIAEAASADNCm0IbgjOCs8KzgpuCCYFJQXQCisF0AolBdEK0gpDBdMKQwXSCtQKJwXVCtUK1grUCnwIdwhmCHgIZgh3CGgAaQAoACkAKABpANcK2ApGBUcFRgXYCisA2Qo1BTgFNQXZCtoKSwA4ADkAOABLANsKMAAdADIAHQAwAHkI3Ao2ADQANgDcCjYFNwXdCt4K3Qo3BUoFRAUxADMAMQBEBRIAEwB+CN8KfggTABMAQwXfCkcA3wpDBSEAIABvAIIIbwAgAOAK4QoxBeIKMQXhCkkFdwhPAIEITwB3COMK5ArlCn4A5QrkCmkF5gqGCFwAhgjmClAFTwXnCmoF5wpPBegKnQjpCm0F6QqdCOoK6wrsClUF7ApXBe0K6QpuBW0FbgXpCu4K7wqVCJYIlQjwCl4F8QpnAPIKZwDxCnAA8wpiBfQK9QrzCpEIkAj2CvcK9gqQCIUI+ApZAPkKWQD4CvoKmwj7CvwK+wqbCP0KmgicCP4KnAiaCGYFhQhnBWgFZwWFCGsFbAWGCHwAhghsBVQFbgX/Cm8F/wpuBXIFcAUACwELAAtwBXIFAAuRAI8AkQAAC+UIdgWvCLAIrwh2BaEInwgCC5QAAgufCHsFnQADCwQLAwudAHwFngAFC5wABQueAAYLBwsICwkLCAsHCwgL6QAGC64FBgvpAAoLCwsMCw0LDAsLC4gFhwWDBQ4LgwWHBQ8LEAsRCxILEQsQC4kFrAiKBRMLigWsCKoIFAu7CNIAuwgUC6gAqQC7ALwAuwCpAK0AlQUVC5YFFQuVBcAAvwAWCxcLFgu/ANgAoQUYCxkLGAuhBRoLGwscCx0LHAsbCx4LrAUfC60FHwusBSALIQsiC58FIgshC6sIuQAiCyMLIgu5AJoFtQjKANkAygC1CCQLJQvbANwA2wAlC8AIJgvfAOAA3wAmC+QAwwjmACcL5gDDCCgLqgDGCKwAxgiqACkLKgsrCywLKwsqCy0LpQguC6YALgulCCoLrwX1APMA9QCvBfcALgv4ALAF+AAuC8oILwswCzELMAsvCzIL7gAzC8gIMwvuAAIBAQG0BTQLtAUBAbwFNQu9BcwIvQU1CxAB1Ag2C80INgvUCNAINwvRCDgL0Qg3C9MIvwU5Cw0BOQu/BQgBzwjEBRgBxAXPCDoLFwHSCBUB0ggXARMBwgU7CzwLOwvCBT0LxQUiASEBIgHFBT4LOwskAdsIJAE7Cz8LygXZCN4I2QjKBdoIAwDGBckFxgUDAEALQQtCC0MLQgtBCykBKgEtAQUALQEqAbMIRAvNBTMBzQVEC90FRQvMBUYLzAVHC0gLSQtKC+QFSgtJC1MBSwvrCEwLTQtOC1gBTwtQC1ELUAtPC1IL0wVTC9QFUwvTBVQLVQtWC1cLVgtVC9kF2gXpCFgL6QjaBdEF3AVRC9sFUQvcBUUL3QVZC98FWQvdBTYB4AVaC+IFWgvgBUoL5AVbC+MFWwvkBVwLXQtfAV4LXwFdC18LYAthC2ILYQtgC2MLXAtkC+cFZAtcC2ULZgtnC2gLaQtqC2sLhQFsC4QBbAuFAW0LbAv4CPEF+AhsC20BcQH0BfgF9AVxAW4L9ggWBm8LFgb2CPQF+AX8CHcB/Aj4BQYG/QgIBvkFCAb9CHALcQtyCwoJcgtxCwEGgwH/BZcB/wWDAXALcwt0C3ULdAtzCwcGCAaQAQYJkAEIBnYLAAl3CwIGdwt4C28BbgF5C3oLeQtuAXsLfAt9C34LfQt8CwoJcQsJCX8LgAtxCxkGgQsYBoILGAaBC6QBHQaDCx8GgwsdBicGJgaEC4ULhAsmBqwBGQKdAZ4BnQEZAoYLhwsSCRUJEgmHCxEJLQYOCYgLDgktBrgBiQu3AYoLtwGJC7oBuwEZCYsLGQm7AdIB0wEYCYwLjQvTAcYBjgsrBosLKwaOC48LkAuRCy8GkQuQCyQGMgYlBjEGJQYyBpILkwuQCzUGkAuTC5QLyAHQAcoB0AHIAR4J1AEgCTIGIAnUAcwBlQvNAdYBzQGVC5YLaAaXC2AGlwtoBpgL3wHkAeEB5AHfAZkLmgubC3IGmwuaCysJ7AHmAesB5gHsAT4GKQlABpwLQAYpCe0B7gGdCy4JnQvuAZ4L2wGfC90BnwvbAaALoQszCTQJMwmhC6ILUwZKBksGSgZTBloGLQmjC6QLowstCaULpgtMBk0GTAamC0QGEwLyAacL8gETAqgLqQv2AUcG9gGpC1MGVAZLBhICSwZUBlcGVQZYBlYGWAZVBlkGWgaqC6MLqgtaBqsLWwasC1wGrAtbBq0LrguvC7ALrwuuC68BsQutAT8JrQGxC2MGZAayCxoJsgtkBrMLtAtCBrULQga0C6YLpQu2C7cLtgulCy0CagZFCbgLuQtqBkcJMQK6C7sLugsxAjICRgk2AkgJNgJGCTgCSQk8AksJPAJJCbwLvQu+C78Lvgu9C8ALQwLBC3YGwQtDAqcBHALCC8MLwgscAsQLRQJnBmcGOwbEC8ULxgvHC8gLxwvGC0oCSQLJC8oLyQtJAksCTAJ6BlIJegZMAkwCxwtSCcsLUgnHC8cLyAvLC4UGzAvNC84LzQvMC88LVgnQC1cJ0AtWCdELWwnSC1wJ0gtbCdML1AvVC9YL1QvUC10J1wteCdgLXgnXC9kL2gvbC9wL2wvaC90L3gvfC+AL3wveC+EL4gvjC+QL4wviC+UL5gvkC+cL5AvmC3YCdQLoC3MC6At1AukL6gvrC+wL6wvqC3gJ7Qt2Ce4LdgntC34CfQLvC/AL7wt9AnsJegl+CX8Jfgl6CYAJgQmGAocChgKBCfEL8gvzC/QL8wvyC4kJhwmKCYsJigmHCfUL9gv3C/gL9wv2C5MJkgn5C/oL+QuSCZQJlQmWCZcJlgmVCfsL/Av9C/4L/Qv8C6AJnQKeCZ8CngmdAv8LAAzZAgEM2QIADNEG0gYCDAMMAgzSBqgCqQmiAgQMogKpCQUMBgwHDAgMCQwGDKQJ6wavAtYGrwLrBgoMCwwMDA0MDgwLDK8JBAOwCcMCsAkEAw8MvwLQAs8C0AK/AsQC3gYQDLkJEAzeBhAMuQnuBrgJ7ga5CREMEgzJAsoCyQISDM8C3AbNAsIJzQLcBhMMFAwVDBYMDgwNDL4JowK7CaQCuwmjAhcMpQkYDBkMGAylCboJFwy8CRgMvAkXDAwDrgnjAu0G4wKuCeUC7gYaDLgJGgzuBhoMuAkbDNUCGwy4CcUJHAzGCR0MxgkcDPMGHgzxBhMH8QYeDBQH9QYfDPcGHwz1BtgJ9gIgDPgCIAz2AiEMIgz8Bv0G/AYiDMoJAQfLCfkGywkBByMMAQMkDCUMJAwBAwYHAgMmDCcMJgwCAygMJgwpDCcMKQwmDAsHKAwKAykMCgMoDBAHKgwrDCwMKwwqDBYDLQwXAw4HFwMtDC4M2wkqDA0HKgzbCccJ9gYvDDAMLwz2BhYHxwkXBy8MFwfHCTEMMgwzDDQMMwwyDBkHNQwaBzYMGgc1DN8JNww1DCAHNQw3DGMDKwf6CTgM+gkrB+EJOQwyAzMDMgM5DOUJNAM6DCIHOgw0AzsMNgM8DDgDPAw2Az0MPgw/DEAMPww+DD8MUgc9DIUDPQxSB0EMQgwqBygHKgdCDEMMRAxFDPAJRQxEDEYMVgNHDEgMRwxWAy4HMAdIA0kMSAMwB0kMAQovB24DLwcBClUDVANKDFkDSgxUAzUHRQNLDFAHSwxFAz4H9AlAB/MJQAdMDPsJTQz9CU4M/QlNDE8MUAxkAzsHZANQDFEMeQNSDFMMUgx5A0MH/glUDPgJVAz+CfgJ9wlUDFUMVAz3CXgDdgMDClYMAwp2A2kDewNoA1cMaAN7A1gMfANZDH4DWQx8AwgKgQNaDIADWgyBA1sMXAwJCl0MCQpcDEIDXgxAA18MQANeDGAMYQzqCWIM6glhDJIDUweTA2MMkwNTB10HCwpcB2QMXAcLCmUMZgxnDAwKZwxmDJkDXAcUCl8HFApcB6IDWQegA2UMoANZB2gMDwppDKoDaQwPChEKagxrDGwMawxqDKUDFQqnA20MpwMVCmwHsQNmB2cHZgexA2oMbgxsDG8MbAxuDLUDtANlB2QHZQe0A3AMcQxyDHIHcgxxDHMMdAzAA74DwAN0DHUMwQNxDBgKcQzBA3YMdwx4B3kHeAd3DHgMxAN5DMMDeQzEA3UHeAd6DMYDegx4B3kMewx4DHwMeAx7DH0MHQfPA4AHzwMdB34MJQp/DIAMfwwlCoEMggyDDIQMgwyCDO8D8AOFDI8HIgrwA4YMhwyIDOEDiAyHDIkHiAeLB4wHiweIByMKkgeMB44HjAeSB5AHiQyRB4oMkQeJDNQDiwzWA+AD1gOLDIwMjQyODI8MjgyNDJQHHwqVB5AMlQcfCoQMkQyBB5cHgQeRDJIMnQeTDJ4HkwydB5oHlAyVDCkKlQyUDJUMKQqWDCoKlgwpCp4HAQQoCpcMKAoBBJgMmQygB5oMoAeZDDEKmwwLBJwMCwSbDKIHnQyjB54MowedDP8DnQdBCp8MQQqdB6AMoQyiDKMMogyhDKQMMAqlDA0EpQwwCpsMMQqmDKcMpgwxCqgMqQyqDKsMqgypDBAEqwesDK0MrgyvDLAMsQy9B74HvQexDLIMswy4BzUEuAezDDEEtAz0B7UM9Ae0DEsENgQ5BDoEOQQ2BLYMtwy4DLkMuAy3DDsEPAS6DEgKugw8BEIKsgfKB7sMygeyB7wMvQy+DL8Mvgy9DLgHSwqyDMAMsgxLCsEMSQQ7BDkEOwRJBMUHwgxGBE8ERgTCDMAHwwy/B04KvwfDDFYExAxUBMMHVATEDMUMTgrGDMMMxgxOClcETgrHDMUMxwxOCsgMyQxWBMQMVgTJDGMEygzSB1gE0gfKDMsMowRoBNUHaASjBHoEbQRZCtYHWQptBBsIagQYCNQHGAhqBMwMfwTNDM4MzQx/BG8EcQTPDNwHzwxxBHwE0Ax+BNEMfgTQDJQE0gxeClwKXgrSDNMM0QxjCtQMYwrRDNUM1gzXDNgM1wzWDNAM2QzaDGwK2gzZDM0EzATvB9sM7wfMBNwM3wfdDIIE3QzfB4YE4gfeDJ4E3gziB98M1wzgDOEM4AzXDGQK3wziDOAM4gzfDO0H4wzkB9kM5AfjDM8EzQTuB+8H7gfNBG4KtwfkDLYH5Ay3B6cEqATlDOYM5QyoBOcMVQroDFcK6AxVCukM6gxaCs8MWgrqDOsM7AztDO4M7QzsDHYKtgS6BLUEugS2BO8M8Ax3CsAEdwrwDHgKvgR5CsEEeQq+BHoKwwR7CsUEewrDBPEM8gxmCmcKZgryDPMM9Az1DPYM9Qz3DPgM+Qz6DPsM+gz5DBwIHggdCCEIHQgeCPwM/QwcCNQEHAj9DP0M/Az+DP8M/gz8DAANJggBDSgIAQ0mCN4E3wQCDeUEAg3fBAMNjgoEDY8KBA2OCvIE8QQFDQYNBQ3xBJcKlQqYCpkKmAqVCpoKmwoHDQgNBw2bCqEKoAoJDQoNCQ2gCqIKowqkCqUKpAqjCgsNDA0NDQ4NDQ0MDQ8NrQoQDawKEA2tCq4KrwqwCrEKsAqvChENEg0TDRENEw0UDbYKuAq0CroKtAq4CrkKGQW7ChsFuwoZBR4FHQUVDRYNFQ0dBcMKwQrECsUKxArBCsYKxwoXDRgNFw3HChkNaAgaDWcIGg1oCM0KGw1AAEEAQAAbDc4KzwoYABkAGADPChwNHQ0eDR8NHg0gDREA0QoTAEMFEwDRCiENIg0jDSQNIw0lDTIFMwUmDScNJg0zBW8IcQjXCtgK1wpxCNkKKA04BT4FOAUoDSgN4go+BTwFPgXiCikNOQUqDdsKKg05BdgK3ApHBUgFRwXcCisNLA0tDSQNJQ0uDUoAQgBFBUAFRQVCAGsILw0oBTANKAUvDUEFQwBrCC8NawhDADEN4AowBTEFMAXgCuEKMg3iCjwF4goyDTINgwg8BT0FPAWDCE0FTgWBADMNgQBOBeYKaQVXAGgFVwBpBWsFXQBqBecKagVdAGMFNA1zADUNcwA0DYoI6gpjAOwKYwDqCmIAXAXtCukK7QpcBTYNjgg3DY8I8AqOCPEKOA3yCjkN8go4DToNOw04DTkNOA07DfYK9wo6DTsNOg33CpgIPA1yAP4KcgA8DT0N/Qo+DfoKPg39CnoAPA17APgKewA8DYIATwU/DVEFPw1PBVQF/wpRBT8NUQX/CocAnghADUENQA2eCAALAQugCIwAoAgBC3cFoAihCJ8IoQigCJkFxAANC0INDQvEAJAAegWSAEMNkgB6BZoAmwB7BZ0AewWbAKAAnwBEDQULRA2fAEUNRg1HDUgNRw1GDUcNSA0rCykLKwtIDdcACwu9CAoLvQgLC60IqQhJDY4FSQ2pCEoNrgC0ALAAtACuAEsNFAsQCxILEAsUC0sNEwvTAJ4F0wATC5IFTA1NDU4NTQ1MDawArQBPDRULTw2tAB8LrQWUBZMFUA2tBcMAxgCyCLQIsgjGALYIGgu4CBwLuAgaC8EIUQ3CCFINwghRDSMLUw1UDZcFmwVTDZcFUw23ALUAtwBTDSUL1gCjBdUAowXWAFUNzACnBdoApwXMAN0A3gBWDaoFVg3eAOEA4gAoC1cNKAviAFgN4wBZDeUAWQ3jAIUFWg3JCFsNyQhaDe0ApADHCKUAxwikALMFXA0sC10NLAtcDe4AMgvvAMsI7wAyC14NzgjxAPIA8QDOCDMLBQEyC70FMgsFAbkFNgswC14NMAs2Cw4B/QAMAfwADAH9AAAB/wBfDWANXw3/AL4FYQ0JAWINCQFhDdII0wg6CzkLOgvTCF8NYA0ZAdcIGQFgDdAIwwU3C2MNNwvDBdUIEgFkDT4LZA0SAdYIxwUWAT8LFgHHBdgIZA3IBSMByAVkDR0BQAsfAUILHwFAC2UNZg1nDeAIZw1mDd4I3whAC0ELQAvfCGcN4AhoDeEIaA3gCLEISQuvCEgLrwhJCy8B4wjhBe8I4QXjCOYI5wjxCPAI8QjnCFEBaQ1qDdkFag3XBeoIQQFHAUYBRwFBAVMLVAtSC1YLUgtUC04BVgvbBVcL2wVWC+kIWAs8AUsBPAFYC9YFaw3QBUwL0AVrDWwNbQ1UAW4NVAFtDTYBWgs1AVYBNQFaC/AISgtXAVsLVwFKC2ABbw1wDXENcA1vDXINcw3mBXQN5gVzDXUNdg13DegFdw12DXgNeQ1cAV4BXAF5DQEJ9QhuC/YIbgv1CGsBagH5CG0L+QhqAXABawH6CPkI+ghrAfYI8wVvC/sIbwvzBXoNew39CHoB/Qh7Df0F/gX+CIAB/gj+BXILCgmCAZUBggEKCRYGFwZuC3wNbgsXBn0Nfg1/DYANfw1+DZQBjwH7BfwF+wWPAf4IgQ39BYIN/QWBDXUBgw2EDYUNhA2DDQIGhg13C4cNdwuIDQ4JnwERCaYBEQmfARAJJwaiAYQLogEnBq4BrQGJDT0JiQ2tASYGig2FC4YLhQuKDYsNDwkUCaEBFAkPCYwNtAGHC7IBhwu0AakBJQYZBssBGQYlBo0Njg0cCc8BHAmODScGEAkpBo8NKQYQCZANjA2RDYoNkQ2MDRkJiwsbCY4LGwmLC4gLLQYfCS4GHwktBiEJtwEkCYoLJAm3AZINHQkuBh8JLgYdCSwGIwkuBpINLgYjCSIJIQklCSQJJQkhCZULzAEmCTAGJgnMAWAG5wGXC+kBlwvnAZMNOAaYC98BmAs4BjsGZwaWC2gGlgtnBjAJ6gGUDScJlA3qASQClQ0pCZwLKQmVDaQLnQuWDZcNlg2dC/QB8wE1CTwGNQnzAS8J9wGXDfkBlw33AZgNOgmZDTkJmQ06CZYNMQk7CV0GOwkxCZoNrAsyCQACMgmsCxACEQKfC54LnwsRAqELFwI0CRgCNAkXAv4Bmw06CQ8COgmbDfwBFAL+AZsN/gEUAqoLowsVAjsJFQKjC6wLmg2rC5wNqwuaDWEGnQ0fBoMLHwadDRMJFgmeDZ8Nng0WCaANoQ02BjcGNgahDUIJOQaiDZUNog05Bh0CqAE8CaABPAmoAS8CbQZrBpsLawZtBqMNMwKkDW4GpA0zAjQCNQJvBnAGbwY1AjcCOgJxBnMGcQY6AqUNTwamDacNpg1PBqgNQAKpDU0Jqg1AAqsNrA2tDa4NrQ2sDcULxwtKAkwCSgLHC68NxQuwDU8JsA3FC7ANsQ2vDbINrw2xDVUCVQnPC1YJzwtVCbMNtA21DbYNtQ20DbcNuA1aAlsCWgK4DYkGuQ2LBroNiwa5DbsNYgK8DWQCvA1iAr0Nvg1kCWUJZAm+Db8NwA3BDcINwQ3ADcMNxA2ZBpcGmQbEDcUNxg3HDcgNxw3GDckNyg3LDcwNyw3KDXsCfALNDc4NzQ18As8N0A3RDdIN0Q3QDa4GrAavBrAGrwasBtMN1A3VDdYN1Q3UDbgGtwbXDdgN1w23BrkGuga7BrwGuwa6Bo4C2Q2QAtoNkALZDZMCxAaRAsMGkQLEBsUGxgbbDdwN2w3GBt0NzAbeDcsG3g3MBt8N4A3hDeIN4Q3gDbcCuAKqAqMJqgK4AgEM4w3ZAtoC2QLjDaUJFwymCeQNpgkXDAQM5Q26CRcMugnlDeEGpQLiBqcC4galAukG6gajAqECowLqBuYN5w3oDekN6A3nDQ8M0ALqDesN6g3QAuwN7Q3kAuQC7g3sDcsCzALWAtgC1gLMAtACzgLrDe8N6w3OAtkGtgLvBuMG7wa2AvAN8Q3yDfMN8g3xDdgG9A3sBtsC7Ab0DfUNpQn2DacJ9g2lCdkG5wLYBvQN2AbnAr4C4QLAAsAJwALhAtwGwQnCCcMJwgnBCRsM1QLECdcCxAnVAh0D9w0eA/gNHgP3DRMHHgwMBw4DDAceDPIGFAf0Bh8M9AYUB/kN+g37DfwN+w36Df0Nygn+DSIM/w3KCQAOAQ7LCc0JywkBDgIOJAwDDiUMAw4kDAQOCgcJAwUOCQMGDgQH1AkAA9UJAAPUCQcO9wIsDCsMLAz3AhgDGQPWCdcJ1gkZAxQDFQMRBy4MEQcVAxwDFQfxBvIG8QYVB/YG9QYwDCADMAz1BiEDCA77BvoG+wYIDt0JJAMyDDQMMgwkAyAH4gk1DDYMNQziCeAJCQ7fCTcM3wkJDiEHMAMgB+IJIAcwA+AJ4QnkCTID5AnhCTkDNwM6DAoOOgw3AwsOPAzpCegJ6Qk8DAwOCw5VB2IMVQcLDgwOVQcNDokDDQ5VB4IDgwPtCUQD7QmDA04DTwPuCQ4O7glPA+8JDw7wCUUM8AkQDkgMUAMRDlIDEQ5QA28DQgdMA00DTANCB+sJ9QnsCRIO7An1CRMOXwMUDl0DFA5fAx0HfQwrA00MKwN9DHwHTgx9DE0MfQxODHMDdANPDFAMTwx0AxUOFg4XDhgOFw4WDlMDFw4xB/8JMQcXDlYMGQ5BDEIMQQwZDlcMGg5xA3IDcQMaDncDWQx1A0gHdQNZDFEMTgd5A3oDeQNOBxsOUQd9A38DfQNRB+oJPgNgDAoKYAw+Aw0KHA4SDuwJEg4cDmEMYAyXA10HlwNgDF4MHA5YB2YMWAccDo4DjAMdDg4KHQ6MAx4OkAMQCpEDEAqQA2QMHQ5hB2gMYQcdDmsMYwceDmcMHg5jBx8OqAOcA5sDnAOoA2oHnQOuA58DrgOdA2QHbAekA2YHpANsB2gHaQepA6sDqQNpB2IHcAyhA3IMoQNwDLIDswNzDHQMcwyzA24MIA5vDHUMbwwgDhYKtgN0B3YMdAe2AxcKdgcgDsIDIA52B3MHIQ67AyIOuwMhDiMOGgokDnoHJA4aCnUHegy/AxkKvwN6DHgMfAwaChsKGgp8DCUOfgwmDn8MJg5+DCgDgQwqA4MMKgOBDJYHHAqUB8wDlAccCs0DfQcdCiQKHQp9BycOKA6QB4kMkAcoDoYMiAwhCtwDIQqIDCAK3wMpDioOKQ7fA4MHKw4sDi0OLg4vDokM6AOKDOkDigzoAyQK6wMwDjEOMA7rAyUK7QOADI0MgAztA5AMHwrzA9ID8wMfCoQMggyRDDIOkQyCDJMMngcnCigKJwqeB/kD+AMrCiwKKwr4AywKlQwuCpYMLgqVDCgKlwycBwQEnAeXDAcEmAyfB6AHnweYDJsMDwScDBEEnAwPBJ0MpQeeDKYHngylB5gHMw6SDDQOkgwzDjUONg43DjYKOA42Dg0EDgSlDKkHpQwOBDkOOg6kDDAKpAw7DjwOsAeeDKMHngywBz4KPQ49Cj4OPQo/DrEMuge+B0IEvge6B7gMuQyyDLMMsgy5DL0HQA6wDEEOsAxADjQEpQS7B6cEuwelBLcMRQq5DEYKuQxFCrwH5Qw/BD0EPwTlDEAOvQdVBL8HVQS9B0cEQg5FBEkKRQRCDkMOxwdeBMYHXgTHB0QOugxmBEIOZgS6DPgHrATFB8IMxQesBMoHuwzMB9AHzAe7DFAK0we9DL8MvQzTB8YMwwxgBNEHYATDDFYEVwTIDMcMyAxXBMQMyQxQClEKUArJDMoMVApYBFkEWARUCs4MVgpFDlUKRQ5WCtsHcQRGDnIERg5xBNcHbgTZB3UE2QduBM0MzgyhBEUOoQTODHQEewR2BH0EdgR7BEcO3gdzCtMMcwreB+gHagphCswMYQpqCtQM2gyMBEgOjATaDIoEdATsB3ME7Ad0BMwEZQrbDI4E2wxlCuEHSQ7iB0oO4gdJDpQEkwTSDJkE0gyTBKAESg5LDmkKSw5KDkwO4QzYDNcM2AzhDOIM6wdkCuMHZArrB9kM4wxsCp0EbArjDOwMTQ7uDLkH7gxNDrUMTg70B/YH9AdODj0ETw4+BFAOPgRPDlEO6QxbCloKWwrpDGAKRw5SDlMOUg5HDnEK1AdtCtUHbQrUB1QOVQ79B/4H/QdVDgQIBggCCAgIAggGCAcICggJCAwICQgKCHQKVg4LCA0ICwhWDlcO9QxYDvYMWA71DFkOWg7KBHwKygRaDhgIcAoZCFsOGQhwCtQEXA7VBF0O1QRcDoIKXg4kCCMIJAheDuAEhwpfDmAOXw6HCuIE4wQADdwEAA3jBIcKiApgDmEOYA6ICogKAQ1hDikIYQ4BDQENKAgpCGIOYw4uCC8ILghjDjMIMghkDmUOZA4yCDQINQg2CDcINgg1CPYEZg74BGcO+ARmDvsEPwj5BD4I+QQ/CEAIQQhCCEMIQghBCAQFAgVoDgQFaA5pDkcIRghKCEsISghGCEwITQhqDmsOag5NCGwObQ5uDm8Obg5tDlUIVghUCFgIVAhWCFcIcA5ZCHEOWQhwDl8IXghyDnMOcg5eCGAIYQhiCGMIYghhCCIFdA4kBXUOJAV0DiMNdg4hDXcOIQ14Ds8KQAUZAEEFGQBABSUFzgorBRgAKwXOCmkIaghEAEUARABqCCcF1AoRANEKEQDUCnkOeg4aDRkNGg16DiYNJw1pACkAaQAnDS8FbwgiANcKIgBvCCcNMwXZCigN2QozBTMFMQUoDeIKKA0xBTQFNQUpDTkFKQ01BXgIeQgsBTYALAV5CCsN3QreCt4KLA0rDUgAQABKAEIASgBAAC8New4wDXwOfQ57DkMAQQAvDXsOLw1BAOAKMQ1+Dn8Ofg4xDXMIdgjhCjIN4Qp2CHYIeggyDYMIMg16COQK4wp1AHYAdQDjCuYKgA5cAFoAXACADoEOgg7nClAF5wqCDugK6QqLCFwFiwjpCuwKVQWHCDUNhwhVBVMF7QpUBW4FVAXtCiMA8AouBY8ILgXwCiYN8goyBTkNMgXyCjIFOQ0wBTsNMAU5DfcKMQ07DTAFOw0xDfgKPA35CpgIgw48DT4N+gqEDvsKhA76CpwI/gp6ADwNegD+CuQKdQBnBWYFZwV1AGwFVAB8AFUAfABUAFoFSwVvBf8KbwVLBQELcAXiCIUO4ghwBYYOQg1zBXQFcwVCDXQFQg3FAMQAxQBCDcgAAguTAJQAkwACC5sAmgCkCJgApAiaAIAFfwV8BX0FfAV/BUYNBwtIDQYLSA0HC0gNBgspC64FKQsGCxgLmQULCw0LCwuZBYgFgwWVBYIFlQWDBa8AEQuxABILsQARCxALigVLDRMLSw2KBRQLSw3SANMA0gBLDYcOiA5ODU0NTg2IDkwNiQ5ODYoOTg2JDpcFwACaBRYLmgXAAJMAlQDGALQIxgCVABYLFwu2CBoLtggXC1ENwQgeC6wFHgvBCCILIwsgC4sOjA4jC7kAtQAjC1MNIwu1AKMF1QClBbwIpQXVANoAvginBakFpwW+CN4AwAiqBd8AqgXACKwFwQjkAMMI5ADBCMYIrADECE8NxAisAI0OKwtdDSwLXQ0rC6UILQulAMcIpQAtCywLKguzBfUAswUqCy4L9wAtC7YFLQv3ADALXg3KCPEAygheDbUFBgEzCwUBMwsGAbkFMAu6BTELugUwCzULDAHMCPwAzAgMAf8AzQhgDdQIYA3NCAkBYg0EAQMBBAFiDTkLDQE1CwwBNQsNAc8IXw0YARkBGAFfDdIIFQHQCMMF0AgVATsLPgsTARIBEwE+C9YIPQvHBSIBxwU9C2QNPgsjASQBIwE+C9kI3ggdAUALHQHeCCEBxgUgAckFIAHGBd8I3QhBC2YNQQvdCGgN4QiODtwIjg7hCCoByQUFAAMABQDJBbEIswhJC80FSQuzCOMIRguPDm0NbA1GC+cISAvwCEoL8AhIC1EBUwHXBesI7AhTAVALkA5YAVoBWAGQDlILTAHTBZEO0wVMAVULkA5XC1ALVwuQDtoFkg5YC5EOWAuTDmsNSgFMC00LTAtKAc8FTgvfBVkL3wVOC+IFag1aC+gIWgtqDeMF0gVbC08LWwvSBV8BXgtgAW8NYAFeC2kBZwHyCGUB8ghnAecF6AVkC3YNZAvoBZQOlQ7pBVwB6QV4DfUIAQlrC4UBawsBCWoBawttC2wLbQtrC4QNbgH6CHAB+ghuAW8L+wiWDnwLlg77CJcOeg0GBv0IBgZ6DQgG+QUGCfoFBgn5BXMLcAt7AXILewFwC38BgwGBAQEGgQGDAX8NgA1zC3ULcwuADZABjgEHBpgOBwaOAQAJdgv+CIEN/giZDoQNhQ1uAXoLbgGaDn0LfguZAZoBmQF+C5YOmw4VBpwOFQadDq4LGAaeDoILng4YBqMBpAEiBoMLIgakAbYBpQGfDrYBnw64ARQJGwaLDRwGiw0bBhIJFQkTCRYJEwkVCYgLoA4OCSEGDgmgDokLjQ2KCxwJiguNDSECugFkBhkJZAa6AQ8JoQ6iDtMBog6MCxsJjgujDqQOow6OC74LpQ6PC5ALjwulDiAJMgagDiQGoA4yBikGjw2SDR0Jkg2PDSMJKAaSDSkGkg0oBiIJJQmRDZANkQ0lCSYJKgaVC8IBlQsqBpcL6QHwAUUG8AHpAUoGkw2iC5gLoguTDe8BPAaWCzsGlgs8BisJswvsAUIG7AGzC0AGnAuTDTgGkw2cC+4BQwYuCSYCLglDBjwG7wE1CfEBNQnvAZcN+QGWDTEJlg35AZgN/wE6Cf4BOgn/AaMLpAs7CZYNOwmkC0kGpQv4AUwG+AGlCwgCngsKAhECCgKeC6kLFwJHBqELRwYXAlQGpwsSAhMCEgKnCzYJNwlXBlUGVwY3CagLWQapC6oLqQtZBg0COAmrC1sGqws4CbALrgumDp4Opg6uC6cOsQsiBq8BIgaxCywCoA0rAjYGKwKgDZUNJAKiDSUCog0kAqgOtwtJBqULSQa3Cy8CawYtAmoGLQJrBqMNuwszAjECMwK7CzQCMgI1AjYCNQIyAjcCOAI6AjwCOgI4AqkOQgKqDqsOrA5CAq0OMglNBk4GTQYyCcILwwurDawNqw3DC6cBwguuDqcBrg6lAcoLrw7JC7AOyQuvDkkCsQ7KC7IOyguxDrEOsw6yDrQOsg6zDlUCgQZVCYIGVQmBBs0Lzgu1DrYOtQ7OC7cO0Qu4DrkOuA7RC1wCXQK6DrsOug5dAo4Gjwa8DpAGvA6PBmgCaQK9Dr4OvQ5pAmcJZQm/DsAOvw5lCZsGwQ6cBsIOnAbBDsMOxA7FDsYOxQ7EDscOyA5yCXMJcgnIDncJyQ55CcoOeQnJDssOzA55AnoCeQLMDq0GzQ6rBs4OqwbNDoACgQJ/AoMCfwKBAoICzw6EAtAOhALPDosC0Q6JAtIOiQLRDooCjQKMAo8CjAKNAowJjQnTDtQO0w6NCY8JjgmXApUClwKOCZYCmQKYApsCmAKZAtUOmAmZCZkJ1g7VDtcO2A7OBs0GzgbYDrgC2AajCewGownYBtkO2g7bDgYM3A4IDKsJtALdDqYJ3g60AgIMAwzfDuAO3w4DDOIGpwLqBqEC6ganAtAGzwbhDuIO4Q7PBuIC4w7kDuUO6Q3mDrkCDwy6AuoNugIPDO0N4w7iAuIC5ALtDd4GywK5CdYCuQnLAhIM5w7KAuEGygLnDu8G4wbCCc0CwgnjBu4N8g3zDfMN7A3uDfQN/wvbAtkC2wL/C+gO6Q4FDPYNBQzpDucC1AL0Df8L9A3UAscCyALhAsAJ4QLIAsEJ4AbDCbcJwwngBvINGwzwDcQJ8A0bDBwMHgMdDPgNHQweA+oO6w7zBh4M8wbrDuwOHwztDvcG7Q4fDPsN/A34AiAM+AL8DSIM+Q39BvsN/Qb5DcoJ7g4BB/QCAQf1AgMOJQy8ArsCvAIlDOYO6Q3RCe8O8A7xDgAD1Qn+At8C/gLVCfIO8w70DiwM9Q72DhkDEAfXCSsM1wkQBxcDDgcRBxQDEQcOB9sJEgcNBwwHDQcSBy8MMAzFCRwMxQkwDMUJ+wIvDBcHLwz7Ah4K9w40DDMMNAz3DjYMJQ4aByYOGgclDhwH3wkZBzUMGQffCSkH+A4rBzgMKwf4DgkO4An5DuQJ+Q7gCSIHIwclB+cJJQcjB+gJPAwkBzgDJAc8DPoO+w5ADD8MQAz7DvsO/A4/DFIHPwz8DkEMKgc5B2EDOQcqB08D8AkODkQMDg7wCVQDVgP9Dv4O/Q5WAxEOUgMuBzAHLgdSA24DbwMvB0wDLwdvA1sM8wlKDFUDSgzzCVsMSgxcDP8OXAxKDCwDKwP7CU0M+wkrAy8DLgN8B04MfAcuA0QHcwM4B08MOAdzA2cDUwxpA3kDaQNTDFEDFQ5TAxcOUwMVDlEDAA8VDhYOFQ4AD0YHeAMCCgMKAgp4A3UDSAcECkoHBApIB04HTwd6AwYKegNPB1EHgQN/AwgKfwOBA/MJWwxABwkKQAdbDBwOXgzsCUID7AleDFQHYQyWA5cDlgNhDFgHWgdeDF8MXgxaBx0OZAyOAwsKjgNkDJADHg4MCmcMDAoeDlwHZAxfB2EHXwdkDGUMZwygA2MHoANnDKgDqgObAw8KmwOqA2oMEQpqB50DagcRCqQDZgelA2gHpQNmB7EDsANnB2AHZwewA2wMbwxiB3AMYgdvDLIDcwytA7gDrQNzDHEMcAx1DG8MdQxwDHQHvgMWCnQMFgq+AyAOwgN1DMEDdQzCA7sDIg69AwEPvQMiDsQDeAwjDhoKIw54DBkKegwkDiMOJA56DHwMIg4bCiEOGwoiDiYOfwwlA84DJQN/DIMMgAcqAx0HKgOABxwKlgd+DCUKfgyWByQKMA4dCgIPHQowDvADJw6PB5AHjwcnDuIDAw/hA4gM4QMDD4wHiAcjCgQPIwqIB9oDhweSB44HkgeHB5EHigzdAwQP3QOKDOID4AMFD4sMBQ/gA4QHjwyCB40MggePDJUHkAwnDigOJw6QDJcHkQzYA4YH2AORDCcKlAyTDJkHkwyUDPgDmgcsCpUMLAqaBy4KlgyoDKkMqAyWDJcMIwQEBAYEBAQjBJkMmAynBwYPpweYDAwECwQIBJwMCAQLBAYPCQSiB50MogcJBJ0Hkgw0DjQOnwydBzcOoAw1DqIMNQ6gDKUMBw+kDAgPpAwHDzAKOw4xCqcMMQo7DgkPqAwKD6oMCg+oDDgKCw85CgwPOQoLD7AM7QyxDO4MsQztDLUHMwSzDDUEswwzBA0PVg7/B3QK/wdWDjQEuwc2BDoENgS7By8EMQS3DEUKtwwxBDwEvAdICj8ESAq8B7sMsgcOD7MHDg+yB74MvwxRBFMEUQS/DLIMwAy4DF8EuAzADMEMOwREDroMRA47BKwEqgTCDA8PwgyqBEEE0QfAB8MMwAfRB8QMUArDB70MwwdQCsAMxgxfBGAEXwTGDMgMxwxJBEoESQTHDMkMwQxRCkQOUQrBDFQKygxNCkwKTQrKDH8EgQTODFYKzgyBBNUMEA9GDtsHRg4QD9cH2QetBK4ErQTZB8sMYQrNDMwMzQxhCtwHWQrPDFoKzwxZCn4E0QzeB9MM3gfRDMwMagp/BIAEfwRqCnMK0wyyBGMKsgTTDOwHcwSHBGwEhwRzBPAHSA5sCtoMbApIDu8H2wzwB0gO8AfbDNIMmQSSBJEEkgSZBKAEngRKDuIHSg6eBOAM4QwRD90MEQ/hDOIM4AxrChEPawrgDOoH3gztB+MM7QfeDBIPzwRLDu4HSw7PBOQMtgcTD0cKEw+2B+UM5gw9BE8OPQTmDK8EUQ6tBFsKrQRRDvkHYAr6B1IO+gdgCjgEFA8sBPEHLAQUD7oEtQS8BNgHvAS1BL8EwAQVD/AMFQ/ABL4EvQTBBMIEwQS9BMMExATFBMcExQTEBBYPWQ4XDxgPFw9ZDloO8wx8CvUMfArzDPkMGQ/7DBoP+wwZDyAIGw+DCoQKgwobDxwI1AQeCNYEHgjUBBsP1wSECoYKhArXBNcE1QSGChwPhgrVBNUEXQ4cD+EE5gTjBOQE4wTmBF8OYA4dD2EOHQ9gDiwI7QQqCO8EKgjtBB4PHw8gDyEPIA8fD/QE9QTzBPcE8wT1BCIPIw8kDyUPJA8jD/8EJg/9BCcP/QQmD/4EAQUABQMFAAUBBaYKpwooDykPKA+nCqkKqAoLBQkFCwWoCgoFTggMBVAIDAVOCFMIUggqDysPKg9SCBIFEQUVBRYFFQURBRcFGAVbCFwIWwgYBSwPLQ8uDy8PLg8tDyAFIQUfBSMFHwUhBTAPMQ8yDzMPMg8xD2YIEAB8CBIAfAgQAHcOeA40Dx4NHw01DxoANg8WABQAFgA3DxsNOA9BAHsOQQA4DzIAMwBtCG4IbQgzAEgAPADMCj4AzAo8ADkPOg9+DjsPPA9rAC8FPQ9vCHAIbwg9D34OOg90CH4OdAhzCDgFPgU6BT8FOgU+BSoN2wocAB0AHADbCkkFSAV5CNwKeQhIBXsIegh2CHYIdQh7CH0IfggZDWgIGQ1+CD4PHA0/D4AIPw8cDYEIfQh6DhkNeg59CCcAgghLAEwASwCCCE0ATgA5ADsAOQBOAHoIPQCDCFEAgwg9AIEAMw1/AIQIfwAzDYAO5gpWAFcAVgDmClsAgQ5dAOcKXQCBDocINQ2ICDQNiAg1DWMA7AphAIcIYQDsCmIA7QpAD1MFQQ/tCo0IQg+PCC4FjwhCD20AawA8D0MPRA9FD5YIIQBuAG8AbgAhAEYPRw9ID5gISQ+DDpoIdAD+CnIA/gp0AP0KnAj6CpsI+gqcCHsA+ApmBYUIZgX4CoEAggBNBT8NTQWCAE0FPw1LBf8KSwU/DYgAhwAyAUANMgGHAIwAAQuOAOIIjgABC6AIdwUAC48AAAt3BUINhg4NCwwLDQuGDqIIlwB4BZkAeAWXAJ0AngAEC34FBAueAIAFfAWfAAULnwB8BUcNSg9FDUsPRQ1KD0oPRw2NDisLjQ5HDdcA2AALCxgLCwvYAI0FqAiOBUkNjgWoCE0NiA60AEwPtACIDrEAEguqCBQLqggSC54FEwurCKwIqwgTC1gNTA2TBZIFkwVMDVgNWQ1MDYkOTA1ZDcUAwwCwCLIIsAjDAEQLswiVALQIlQCzCJoFFgu1CLYItQgWC00PVQ1SDcIIUg1VDdEAugi7CI8Fuwi6CI8FughOD7kITg+6CCQLoAUlC9YAJQugBaIFpAXACCYLwAikBcMIpgUnC6gFJwumBcYIqwUoC+EAKAurBZMFrQVYDeMAWA2tBfAAhAXJCIUFyQiEBS0LtgXHCMgIxwi2BcoIyQgvC1sNLwvJCPsAsQXLCO8AywixBbIF8gD+AM4I/gDyADILvQXLCMwIywi9BV4NNgvOCM0Izgg2C/0ADgG3BQsBtwUOAV8NzwgAAbgFAAHPCNEIvgXTCL8F0wi+BToLOQu8BTULvAU5C2AN1AjXCNUI1wjUCMEFwAXWCD0L1gjABWQN2AjVCNcI1QjYCNkIFAE/CxYBPwsUARsB2AjaCMgF2gjYCNsITw/cCI4O3AhPD2YN3QjgCMsF4AjdCCsBJwHfCN0I3wgnAeEILAHcCCYB3AgsAeIIhQ7jCEYL4wiFDucI5QhIC68ISAvlCC4BLwHgBeEF4AUvAd4FMAHuCDEB7ggwAWoN2QXoCOkI6AjZBUkBRgFQD0EBUA9GAVYLTgFSC0wBUgtOAVEL2wVQC1cLUAvbBVgLkQ5LAUwBSwGRDkkBSgHWBWsN1gVKAUsLUwFuDVQBbg1TAVoL6AhWATsBVgHoCFsLTwtXAVgBVwFPC3cN6AV0DeYFdA3oBfMIcg3lBeYF5QVyDXMNdQ10DXcNdA11DV4BeQ3yCPQI8gh5DWwB9QhqAWsLagH1CPkIbQv2BfgI9gVtC3QBdQH6CIQN+gh1AfsI/Ah8C34LfAv8CHsNcwt6AXsBegFzC/oFfgH+BYAB/gV+AXsBcgt9AYIBfQFyCwIJAQluC24LfA0CCQQJAwl9DX4NfQ0DCY8BlAGNAZIBjQGUAfsF/QUICYINCAn9BXMBUQ91AYMNdQFRDwwGCwZSD1MPUg8LBqYBnwGoAaABqAGfAaQBogEdBoQLHQaiATsCSglqBrgLagZKCR4GhQsSCYYLEgmFCxsGFAmuAbABrgEUCYcLsgEVCSMGFQmyAcsByQEZBoELGQbJAY4NVA/PAc4BzwFUDxAJDwmPDaIOjw0PCZAN1wGMDbQBjA3XARoJGwlVD6MOVQ8bCaAOiAsgCR8JIAmICyQJigszBhwJMwaKC48Nog4dCR4JHQmiDiIJkQ0jCSgGIwmRDSUJ1QGQDdcBkA3VAdoBxQEmCSoGJgnFAZQNJwnbAdwB2wEnCZgNVg//AT4G/wFXD+EB4gErCbMLKwniAekB6gFFBjAJRQbqAZwLlQ04BjkGOAaVDZ0LLgmXDS8Jlw0uCTAJlA0HAggCBwKUDSgCSAYvCfcBLwlIBlYGUQblAeMB5QFRBjEJAQJdBlwGXQYBAqwLXAYAAgECAAJcBjUJ8QE3CVgPNwnxATgJBgIYAjQJGAIGApsNCgIPAhECDwIKAhQCCQKbDQoCmw0JAqkLqgsXAhUCFwKqCwwCDQKcDasLnA0NAp0Npw6DCyIGgwunDhYJFwmfDUAJnw0XCVkP4gFBCeABQQniAUIGtQtDBkMJQwa1CxkCrQsaAq8LGgKtC20GWg+bC5kLmwtbD1wPXQ9uBqQNbgZdD28GcAZeD18PXg9wBnEGcwZgD2EPYA9zBqkOYg9CAmMPQgJkD04JPwKoDUACqA0/Aq0Nrg1lD2YPZQ+uDcoLewavDn0Grw57BsULSgJPCckLTwlKAlAJsA5OAlACTgKwDrAOrw5QAn4GUAKvDq8OfQZ+BoUGUwLMC1QCzAtTAlMJZw9UCVgJVAlnD4oGaA+IBmkPiAZoD2oPaw9sD20PbA9rD24Pbw9wD3EPcA9vD3IPkwZzD5UGcw+TBpYGdA+VBnUPlQZ0D+UL5At2D+ILdg/kC3cPeA95D3oPeQ94D58GoQZ7D3wPew+hBn0PqgZ+D6gGfg+qBn8PgA+BD4IPgQ+AD4MPhA+FD4YPhQ+ED7EGsgaHD4gPhw+yBrQGswaJD4oPiQ+zBosPjA+ND44PjQ+MD48PvQa+Br4GkA+PD5EPkg+TD5QPkw+SD5UP+wuWD/0Llg/7C5cPmA+ZD5oPmQ+YD5sPnA+dD54PnQ+cD60JtwKpAqoCqQK3AqMJ7AakCesGpAnsBqYJtAKoCbICqAm0AqkJqwkEDOQNBAyrCecOognhBqUC4QaiCb4CvQL+Av8C/gK9AgcDxQLgAscC4ALFAtsGsQnBAsICwQKxCegNswnmDbQJ5g2zCcwC4gbYAuoG2ALiBs4C5AbvDbUJ7w3kBt8GtgngBrcJ4Aa2CeEO4g7wDfEN8A3iDtIGuwkDDLwJAwy7CZ8PvQneAt0C3gK9CeEOvwnQBr4J0Aa/CcgC4AbACcEJwAngBsMJtwnmAtMC5gK3CfANxAnhDr8J4Q7ECfcNHQPpAusC6QIdA+sOEAMeDA4DHgwQA6AP9AbsDh8M7A70BqEP+g3MCfkNzAn6DcoJzAkiDPkNIgzMCQEOoQ/NCcwJzQmhD88J2gYDAwUDAwPaBucNog/pDdEJ6Q3TCdUJCAPfAuAC3wIIA9cJKwz2AvcC9gIrDNwJ2QmjD9oJow/ZCRUD2QkuDNsJLgzZCRUHHAPrAuoC6wIcAx4DHAwgAzAMIAMcDO0C7AIhAwgOIQPsAjQMJAMeCiMDHgokA+IJ4wk2DCUONgzjCTkM4QkbBxwHGwfhCaQPLgMhBzADIQcuA/kO5AmlD+UJpQ/kCToMIgc5AyUHOQMiBwwOOwwLDjwMCw47DOkJ6gkLDmIMCw7qCYkDiAOmDzMHpg+IA4MDUAdEA0UDRANQB0cMSAynDxEOpw9IDFADSAxXA1YDVwNIDFUM9wnvCQ8O7wn3CUIHVQxNA+8JTQNVDDIHEg40B/UJNAcSDl8DEw43B/YJNwcTDvkJ+gn7CSwD+wn6Cf0JpA/8CagP/AmkD/4JqQ9FB2gDRQdmAxcOGA7/CQAK/wkYDjEH/wkBCmoDAQr/CVYMQQwDCjkHAwpBDEUHaANxA1cMcQNoA0cHWAx3A1kMdwNYDEkHCApLB1oMSwcICgkKXQxMB00HTAddDD4DPwMKCo0DCgo/AxIOMgcNCo8DDQoyB2AMCgpdBwsKXQcKChwODQpmDAwKZgwNCowDVgcOCpoDDgpWB1cHngORAxAKkQOeAx0ODgpoDA8KaAwOCh4OEAprDBEKawwQCl4Hqg+cAx8OnAOqDxQKrAOfA64DnwOsAxUKqQMfDqgDHw6pA2kMqgNpB6sDaQeqA6EDcgyjA24HowNyDBYKdAxtB7MDbQd0DGsHFwpuDCAObgwXCrYDtwN2DHcMdgy3A3AHBgBxB8cDcQcGABgKygNzByEOcwfKAyQOegfIA3sHyAN6ByQOyAMZCggAGQrIAxsKIQ7JA8oDyQMhDuMJHAolDn4MJQ4cCh0KAg8eCvcOHgoCD8sDHwrMA5QHzAMfCuwDIAqrDykOqw8gCigO8QOJDOgDiQzxA9wDiAzeA6wP3gOIDIcMKg7hA98D4QMqDqwP4gMtDi4OLQ7iA4oM6QMEDyMKBA/pA+sD7AMxDqsPMQ7sA+8DggftA40M7QOCB/EDKA7zA5AM8wMoDpEMMg6GB60PhgcyDpQMJwopCpsHKQonCqwHKgr7A/wD+wMqCi0KLgoJD6gMCQ8uCgUErg8DBC8KAwSuD5gMBwQGDwkEBg8HBAgEnAwKBBEECgScDAkECgSdDKUHnQwKBPUDNAqYBzMOmAc0Cq8PNQo2DrAPNg41CgcPpQyxD6kHsQ+lDLIPOQ4ID6QMCA85Dp4Mpgc8DjwKPA6mB7MPtA+1D7YPtQ+0D+4MuQexDLoHsQy5B7kMRgqzDLUHswxGCkEOFAiwDO0MsAwUCEIKRAQrBDcEKwREBPQH8wcxBEUKMQTzB0kKQg5ICroMSApCDsEHQA5UBFUEVARADkAExAdJCkUESQrEB0QKXgS3D1wEtw9eBEIORwRmBGUEZgRHBLgPTQpMBE0ETARNCs8H0AcOD7sMDg/QB9IHUwTTB78M0wdTBF0EXgRPCsYHTwpeBGEEYgTGB08KxgdiBFEKRA5kBGYEZAREDk0KuQ9UClMKVAq5D4EE4AdWClgKVgrgB9YH1wdbCq0EWwrXB2wEcwRuBHUEbgRzBM0MoQTLDKMEywyhBHYEfQTaB90H2gd9BGkEkgRnBJAEZwSSBF4KYgqUBJYElARiCmMK1AyLBIwEiwTUDHcEug9kCt8MZAoQD9sMjgRIDowESA6OBGgKaQpJDkoOSQ5pCmoKawqABBEPgARrCmcKEg9pCksOaQoSD0wO3AzhDN0M4QzcDOsH4gzpB2sK6QfiDOMM3gydBJ4EnQTeDE0OFA+5BzgEuQcUDxYI6wwUCO0MFAjrDFAObwo+BEoKPgRvCnAEbwS7D7wPuw9vBEcOcwpTDnIKUw5zCqEERQ6iBL0PogRFDv0HdgpUDnUKVA52CgQIdwoGCHgKBgh3CnkKegoHCAoIBwh6CrgEdAp7CgsIewp0Cn0KfApXDvUMVw58CsoEywRZDn4KWQ7LBBkIWw6ACoEKgApbDh8IIggeCCEIHggiCFwOvg9dDhwPXQ6+D9wE4wTdBOQE3QTjBAAN3AS/D8APvw/cBL8PwA/BD8IPwQ/AD5EKAw3DDwQNww8DDcQPxQ/GD8cPxg/FD8gPyQ/KD8sPyg/JDzgIOQjMD80PzA85CDsIOgjOD88Pzg86CNAPCw3RDw0N0Q8LDRAN0g8PDdMPDw3SD9QP1Q/WD9cP1g/VD9gPEg3ZDxEN2Q8SDdoP2w/cD90P3A/bD94P3w/gD+EP4A/fD+IP4w/kD+UP5A/jD+YP5w/oD+kP6A/nD+oP6w/sD+0P7A/rD2QIZQjuD+8P7g9lCEAFzwpFBW4IRQXPCh8AbQglBc4KJQVtCA0A1QoPACcFDwDVCtIK0QrWCtQK1grRCtAKKwUXABYAFwArBSwFDgB4CGYIeAgOAC8FLgU9D0IPPQ8uBSIA1wogAEYFIADXCikAJw0rANkKKwAnDSYAJwDaCksA2gonADkFOgXbCjAA2wo6BdwK2Ao0AHEINADYCjsFUAB5DnoOeQ5QAD0FSgU/BTEAPwVKBWgIfghqCN8Kagh+CN8KRwBqCEUAaghHAG8AggglACcAJQCCCH4OcwjgCuEK4ApzCE8AgQhQAHoOUACBCOUKfgBTAFUAUwB+AIUA8A+DAFkFgwDwD/EPUgWCDlAFgg5SBUEPUwXxD1IF8Q9TBXMANQ1xAFUFcQA1DVoFWwVLBUwFSwVbBSEAlggjAPAKIwCWCPIKJg1nAGkAZwAmDfMKcAAkACUAJABwAJAIfw73CjEN9wp/DvkK8g9ZAFgAWQDzD3kAZQWbCPwKmwhlBZoI/QqZCD0NmQj9CmcFfQDkCn4A5Ap9AFQAbAV/AIAAfwBsBYMAWgWEAG8FhABaBYoAhQ6JAHAFiQCFDnUFdgXkCOUI5Ah2BbAIdgXFAHQFxQB2BZUAlgBEC3kFRAuWAHoFewVDDQMLQw17BUQNBQujCJwAowgFCwgLCQuBBX8FgQUJC4EF5wAIC+kACAvnAFoNhQUOC4MFDguFBasAiAWtAJUFrQCIBRALDwuKBYwFigUPC6wIiQW6AI0FugCJBbIAqgiPBbsIjwWqCE0NtACSBbMAkgW0AIoO9A9ODYcOTg30D/UPFwuuCL8ArggXCxkLmAUYC5kFGAuYBRcL9Q8aCxsLGgv1D80AzABND1UNTQ/MANQAnwWdBSELnQWfBSILnwWrCJ4FqwifBdkAtQi/CLcIvwi1CKIF3ACjBSULowXcAMIIVQ2mBacFpgVVDVYNqgXFCKsFxQiqBVcNpwgoC6oAKAunCK4FrwUpCyoLKQuvBagAsAWmAC4LpgCwBa8F6gDzALEF8wDqAOwAsgWwBfgAsAWyBbMFtAVcDTQLXA20BbYFtQXICDMLyAi1BfYAtwW0BQIBtAW3BbgFBgH5ALUF+QAGATYLuQUQAREBEAG5BdEIOAu+BWENvgU4CwsBDgEKAQ8BCgEOAcQFwAUIAQcBCAHABbwFwQU6CxcBOgvBBR4BYw0cAcMFHAFjDcAFxAU9C8UFPQvEBTsLPAvbCE8P2wg8Cz8LxwXKBQIAygXHBcgFBADaCAMA2ggEAGUNQwtmDUELZg1DCygBAQAgAQAAIAEBAC0BBQAlAQQAJQEFAEQLeQUzATQBMwF5BYoAzAWFDkYLhQ7MBUkLzQXkBc4F5AXNBU4LzwVMC9AFTAvPBdIF0QVPC1ELTwvRBdMFkQ4/AfYPPwGRDkQBRgHWBUkB1gVGAdgF9w/aBfYP2gX4D9EFPgHcBU0B3AU+Ad8FTwHPBTcBzwVPAVIBUQHiBWoN4gVRAdIF4wU9AVUBPQHjBV8B5QVcC+cFXAvlBVsBXwvqBWEL6gVfC/kPXQv6D1wLYwtdC1sB7gVnC2ULZwvuBWwLhAHxBe8F8QWEAfIF9wjxBfgI8QX3CG8B9wVxAfgFcQH3BRYGbwsVBpYOFQZvC3cBdgH8CH4L/Ah2AXwBfQF+AX8BfgF9AQYJ+gX8Bf4F/AX6BQAJgQECBgEGAgaBAfsP/A/9D/4P/Q/vBQkGBQaYDgcGmA4FBv8Plw4FBgYGBQaXDg8GDgZvAQAQbwF5C3wLewuWDpsOlg57CwEQcQsCEHALdAtxC6oBGAatC64LrQsYBhsGrgEDEAQQAxCuAR0GhAseBoULHgaEC6wBqgEZAq0LGQKqAYoNjA2GC4cLhguMDRcJIwYfArkBHwIjBqAOJAYhBqsBIQYkBisGiwvBAbsBwQGLC5ENig0oBiYGKAaKDccBpA7GAY4LxgGkDpELLwZUD84BVA8vBrcBIQm1ASwGtQEhCTAGLwY1BpALNQYvBpQL0AG/Ab4BvwHQAaIO0wEeCdQBHgnTAZULwgHWAcAB1gHCAfAB7wGXC5YLlwvvAaILmAvjAeQB4wGYCyQCKQkiAioJIgIpCeUB5gEsCesBLAnmAUEGQAZKBpMNSgZABi0J7QGkC50LpAvtAZQN2wEIAp4LCALbAUYGRwagC6ELoAtHBuMBUQaiC1MGogtRBloGWAYtCSwJLQlYBgIC+gFMBvgBTAb6AacLWA/yAfEB8gFYDzYJqAv0AfYB9AGoC1IGWA9UBqcLVAZYDzcJWA9VBlIGVQZYD1cGWQY2CagLNglZBhYCWwYYAjgJGAJbBl8GKgLnAegB5wEqAiAGEwliBp4NYgYTCQUQsgtVDxoJVQ+yC+IBWQ+zC7QLswtZD2kGqA5IBkkGSAaoDpsLcgZrBjkCawZyBmwGBhBtBgcQbQYGEG4GbwZcD14PXA9vBnAGcQZfD2APXw9xBnIGmgtzBmEPcwaaC3QGQQLAC0MCwAtBAjIJrQ6aDQgQmg2tDncGCRB4BgoQeAYJEE8JyQtQCbAOUAnJC8YLCxDIC8sLyAsLEFECsw1SArUNUgKzDX8GgQaFBlMChQaBBswLVALOC7YOzgtUAlQCUgK2DrYNtg5SAlICtQ22DdULDBBZCVoJWQkMEGECXwJhCQ0QYQlfAg4QDxAQEBEQEBAPEBIQExC/DcANvw0TEBQQFRDCDpwGwg4VEG4JbwkWEBcQFhBvCRgQGRB5D3cPeQ8ZEBoQGxB+D30Pfg8bEBwQHRAeEB8QHhAdEIEPgw9/D4UPfw+DD4QPggmGD4QJhg+CCYgJIBCGCSEQhgkgEIoPiw+JD40PiQ+LD4wPIhCODyMQjg8iEJMPJBCRDyUQkQ8kEJIPlQ+UD5YPlA+VD9sN3A0mECcQJhDcDZ0Png+aCZsJmgmeDwsMCgwoENkO2w4KDKICBAykAroJpAIEDKYCKRCoAqkJqAKqCeMNnw/aAt4C2gKfD6wCpAmwAq8CsAKkCdICAAzUAv8L1AIADAQDBQPDAsECwwIFA7kCvQIPDL8CDwy9AsMCxAKwCRAMsAnEArAJEAztBu4G7QYQDLIJEQzdBskC3QYRDLYCtQLjBuQG4wa1AugG5gYVDOgGFQwUDNAGvgnSBrsJ0ga+CRgMGQzgDioQ4A4rELwJGAwDDOAOAwwYDOMC4gIMAwsDDAPiAuQC5QLuDRoM7g3lAu4NGgzyDRsM8g0aDBsD3AnwBqMP8AbcCfMG9AbqDqAP6g70Bu0O9wbyAvAC8gL3BvgGAA75BssJ+QYADv0G+w35AvgC+QL7DQAHAQcWB/QCFgcBB/8CuwIBAyUMAQO7AgQDrwkCAycMAgOvCa8JrgknDCkMJwyuCQoDKQwMA64JDAMpDCoMDQcsDPUOLAwNBy0MLBAOBw8HDgcsEBEHLgwQByoMEAcuDBsDGgPcCRIH3AkaAx8DFQcdA+sCHQMVB/oCIgP7AhcH+wIiAxoHJg4mAyUDJgMmDvgO3gk4DC0DOAzeCS0DLAM4DPoJOAwsA6gPpA8fByEHHwekDzoMCg7lCaUP5QkKDugJJAc6A+YJOgMkBz4MPQwmBycHJgc9DD0MhQMnB4QDJweFA2EDKgdjAysHYwMqB0YDRwNDA+sJQwNHA6cPEQ4tBy4HLQcRDkgDSQxJAy8HSQNJDDAHMQdJDAEKSQwxB1sDWQP9DlQD/Q5ZA0oMWQP/DlgD/w5ZA/gJRAc3BzgHNwdEB6QP/QkuA04MLgP9CTgHTwxeA2QDXgNPDFIMPQdRDD8HUQw9B3ADQQdDB/4JQwctEEIHQwdVDFQMVQxDB3YDBQpWDBkOVgwFClcMewMaDgcKGg57A1kMfgNIB0kHSAd+Az8HTAdRDE4HUQxMB0sMUAcbDlEHGw5QB/wOYwxSB1MHUgdjDFUHYgxUB2EMVAdiDFMHkgOHA1YHhwOSA4sDVAdXB5YDVwdUB1kHWAdlDGYMZQxYB5gDmQOfAxQKnwOZA6IDEgpZB1sHWQcSCmAHYQdpDGgMaQxhB2sMbAxjB2IHYwdsDBUKHw5tDKoPbQwfDmcHYAdpB2kMaQdgB2oHawdqDG4MagxrB2wHZAdtB7QDbQdkB7oDbgdyB3IMcgduB3MMwAO4A3AHuAPAA3EMGApyB3MHcgcYCnQHdgx1B3gHdQd2DHEHxwN2B3cHdgfHA3oMxgMjDsQDIw7GA3sMAQ98DCIOfAwBD3sHCgB3BwkAdwcKAH0MzwN8B9EDfAfPA38MLhDOA44MzgOMDIMMhAyAB4EHgAeEDO8DIgqCB4MHggcrDocHhgcvEK0PLxCGB4gH2wMED90DBA/bA40HjgcvEIcHLxCOB+QDkQfeA90D3gORB4sM1AMFD4UHBQ/UA9UD6gPTA5MH0wPqA+4DlQfwAycO8AOVB/IDlwfXA9gD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gDBgawKAPTJdawKAkDAOaQKASDIMaQKAMVEVNgKA/U8jNgKAKlGDOAKA6U9oOAKAKi+GbAKAky5rbAKAflOUMwKAhlRaMwKADh9eewKA+xk9ewKARRpqbgKAFBW+eQKAQBWBbQKAvxSxfQKAfg92fQKAfBCrcQKAXhWCcQKArQycewKAVw3mbwKAxAwHbAKAhQxGagKAkwgFawKA4AlQdgKAVQ0xdgKA3wghewKA/AmDegKAOAgAdAKA+AeIdQKApAaeawKAowR3dwKANwjUcQKAfAbGcQKAeQSScAKAXwQCdAKAOgRCbwKACgPBcAKA2AK4cwKAnwH0cAKAxFRleAKA8lOjbwKAaF++cAKA9GaJdwKA0m9cdQKAZ29qcQKAe2Z/cAKA2HLgcgKAKXSwcgKALXTFcgKASHF/dAKA7W6McwKAU3BxcwKAA2/4cgKAXnA5cwKAT3G0cQKAvXDwcQKA1l/QdwKAKGAaegKA32LDdwKATV9mcgKARF85cwKAYGKBcgKAgmJ/cAKAb19dcAKAbU8nSgKAQlMuUQKAbFknSgKAGVo5UQKAl06vKAKArj6vKAKAIjJ0OAKAozKVNwKAIjJ0OAKASkCoIAKAvXJpVQKASXb7VgKAn3PyUwKAI3exVQKAW2hGTgKAXGgETAKAQHevTwKA+XTsTgKAS2iwSAKAU2jWSQKAjG95CAKAkG8dCwKARnJIEAKAH3LADQKAu28HEAKAoG/5DQKAOF03DQKAcF05DgKAZmGqDQKAWGGVDgKAcF05DgKArXJ9VQKA3XGaBAKAk3CYBQKANnLqBgKAP3GUBwKARnMEBAKAtHFxAgKAXmI1SQKAYGJFSQKAS2iwSAKAS2iwSAKASmiiSAKAOF03DQKAEF0+DQKAOF03DQKAg14dUAKAcmLOUAKAlF4EUAKAdmK5UAKAcmLOUAKArHeZZwKAtHf/aAKA33fmagKA7nbbagKA63YzagKAVnHPawKASm+wawKATXFsbAKAP29IbAKAj3QLaQKAnnSDbAKAimqyawKAzHX1aQKA13bVaQKATW8RawKAUnEHawKAS2+9agKAUHG5agKA52cWawKA/WdWawKASW9zagKAT3FpagKATnF0agKA0We8agKA0mfMagKA3nbhaQKA0HUEagKAdmqeagKAOGfTagKAh2fHagKAGn/YIgKAfH+1IgKA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" - } - }, - "images": { - "TextureAtlas0": { - "name": "TextureAtlas0", - "uri": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQEAAQABAAD/2wBDAAIBAQEBAQIBAQECAgICAgQDAgICAgUEBAMEBgUGBgYFBgYGBwkIBgcJBwYGCAsICQoKCgoKBggLDAsKDAkKCgr/2wBDAQICAgICAgUDAwUKBwYHCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgoKCgr/wAARCAPOA7cDAREAAhEBAxEB/8QAHgAAAQMFAQEAAAAAAAAAAAAAAAUGBwECAwQICQr/xACHEAABAgUCBAIFBgUICxUSBRUBAgMABAUGEQcSCBMhMQlBChQiUWEVMnGBkaEWFyOx8BgkM0JSwdHUGRomYnKCkpbT1eElJzQ1Q0RTVFdYY3OTlJWip7LS5fE2N0VVZWZ0dYOGl6OkpbPCw8QoOUZHVllkZ4SFpjh2h7S1tsUpSHdJaeLj5P/EAB0BAQACAwEBAQEAAAAAAAAAAAABAgMEBQYHCAn/xABNEQACAQIEBAIFBgwEBQQCAgMAAQIDEQQSITEFBkFRE2EicYGRoRUyUrHR8AcUFiNCU1SSosHS4RczQ+JEYnKCsggkZPE0wmODkzVF/9oADAMBAAIRAxEAPwD5/wCACACACACACACACACACACACACACACACACACACACACACALkNrcO1tJUT2A6mAH3R+FbifuKSFTt/hxvyfllK2pmJK0J11snGcBSGiD0IgCWR4QHiJnl7eHrPN/Y8XZSev8A5XAEmaFeAPxp6pTci7qPVbTsGSeqqWZxNXq4nJxEoAhS5ppuTDjLnsqWEtrfaKltkKLaSFkDqbRf0crQGz7m+U9ede69eMmzOMPStPpFObozDyG1qLrMwS7MOuIcAQn8ktlaBvwolSVIA9DdB9L+GvhXtpVrcPmj1s2k0/KyrE67RaU23NTqZZCkMmafxzJtSQpZ5jylrJcWoqJUokB80zUanNTK+W40jmqCnUpAG4+8/H9PdAD/ALFviXm0oKZkdVjurr931wBN9mVppcpzEr3fk8nPXGB0+mAPDvxPbud4suI26KdrXJyNckKNNPUajyr8k0lMpKNOv8tLakJCgtPOdw7uLgLh9roMWSKNu55n8bPClbOjMvJ6iaePerUeenEyL1IddccVLv8ALWtKm1qKipCktqKgpWUq7EpVhBolMg6zrBvrUSrGgafWZVa7PBoumSo1OdmndgUlJVsbSTjKkjOMZUPfFSw9pTgp4yZ/Z6hwl6mP8xQS3ybDqKtxJwAMM9ST0+mAJgmPBE8T+VKw/wAMmOWEleL0opxnt2nPjADv088ADj8vO213BdDdlWc4mcWw3TbjuRTr7qEoSrnAyDUy2EElSQFLC8tqykApUoDqXRP0dzhzsyuN1viA17uC8ZRE5LPS9Ko1Obo7LjaVqLrMyouPuOIcGxOWlsLQN+FEqSUAddaR8P3B3wqU+Xl9A9Frdt2Yl5Z6VVVZWWD1QfYceDymnZ13fMOo3hJCVuKCQhAGAhOAHc5q1JrXy0utgftsrxn49f0+wQA89P8AUymzAyqYB3Ed/d8IAmK3dU5mn23NuyVUWEpk1Z/KHAAAVgfueoznvnrAHi5q/ctN1xqrcnqZb1NrMnTEpl6dKT1PaeaYba3hsBKknqAtftElXtkZxF0il9TmHxNuG7hd0ylaDqHwt0moUWmrkKRS6rSJ1555MzPimIVOTqVPvOrRvm2pk7AooKXG9qWwkpVDRKdzkKKlggAgAgAgAgAgAgAgAgAgAgAgAAJOBAF3LV3+HeJtZXG7sKll2Jeuo1yy1nae2lU69V5zeZOlUWnuTUy/sQVr2NNJUpe1CVKOAcJSSegjLRoVq9VU6cXKT2STbfqS8tTHWrUcPTdSrJRit22kl01v56HZHDZ4F/FbrJTqfdOq9UpWndGnMrMvVErmqshlTIcacEm2QlOVqS2pt55p1BSvcjKUhXrOHcl8UxcVUqtU09ddZW0s8u1tdU2no7o8nxDnfhWCk6dJOrJdtI3u7rNvstGk4vTU640M8BnhG0+lkTOs9YruoNRVKuszDcxNLplP3l7ch1pmVWH0LS2A3hUw4g7lq2glIR6nB8k8JoK9duo/XlW/RLVW2+c0+21vJ47nni2IdsOlTXqzPbq3o9dfmprvvfqfSLhj4c9Ayw9o3oha9uTUvSk075SplFZROvSw2fk3ZnbznsltClKcWpSlIClEq6x6XC8O4fgbeBSjF2tdJXt2b3eybb3e55jF8R4hj/8A8itKSvezel/JbLdpJbIfSsrIykY+mN1u/wB/v7jRtdff7+0oRt6A/DMQS9XcochWOn04gCuOu6AKdPf1gCpVk9QCPdEphlhJyASe/QxOr1RbSV7lCvPsk9PLERp2FmuoDZkn3+URp2DLhgDaoAjOe0R7CL67lSQfLHTBx06fp+eLvZq+nYrZb21DdjsM/AxW0XoyU2ndMpgbgSc4+P6foYlNpp9vv99hlSjYjmv8I/CfdFcnLmuThf07qFRqEy5M1CenrJkHnpl9xRU464tbRUtalEqKickkkxzp8J4XUk3KhBt7vIr/AH89zow4txWnFKOImktlmlZfH+xEes/hDcBur5qM8nR78FanUQzmp2dPrkvVuXsH5GV9qTRuSjar8gc71q+ed45uM5V4JjG5eHkb6xdreqPzfXp8dTqYPm3juDUY+Jniukle/rl871a/DQ5a109Hyq7Uy7UeGvXaVeYXMNJao98SymlsM8o8xapyVQoOr5oBSn1dsbVnKso9vzGO5GlFt4SrpppK/bV3W+uyyrT1a+pwPPkWsuLpO/eFu+iyvbTd5nr69OUNXvC+46NG6wKZVuHuuVxh6amGZKo2hKqqzMwlpQHNxLBbjCFhSVID6G1KBPs5SsJ8xiuW+M4SpldFy3tl9K9vVqr30uk2emwfMfBcZTzxrKO18zy2v010dutm0u9miAy0oDMcSzO4tQLS0jJhZoFsQAgAgAgAAycCAJ10D8NHjg4m9OG9XdFNB5qq24/OOS0rVZmsSMiiZW2dqy0Jt9pTqAvKOYgFG9C0btyFAAdPWX6OJxSztzsSWpOudgUmjHm+uT9FVPVCZbIbJQG5d2Xl0OZXsBy6jaklXtFIQoCX9NfR19A5KkuM6ta7XnWZ5T6lsTVuy0pS2UtbE7W1NPNzSircFkr3gEKSNo2lSgJ2tTwaPDos5FFfktBF1OdpBllLqFfr88+Z11oAlyYl+eJZzetIUtvlBo5KeWEnbAEns8C/BqiVQhfB9pgoh3JV+ANOyQO/+IwBhZ4EuDrnNr/UjaYkJa2kfgBTvaJ3df2H4j7IAzy/AXwdJ2BzhC0vOM5P4BU7rnP+g/EfZAG3ROA7g0kyr5Q4OtLXvMZ0/pp/OxADokeDTgDRKusv8C+lilraIQv8WtKO0kHr1ZgCTuGjgq8OGZq6mbm8OjSaqNIZy4t/SmivJTkdD7TOe/l3gD54vGP4Z9F+D7xJ9UOHzh4ptUkbMo09ITFBp9YnfWXpJucpspOqlw4RuW225MLbbKypzloRzFuL3LUBzHABABABABABAAOsAV2HG7I6/GABKFKOEjJz2gDpXhy8JzjP4nrRF76Z6Vzj1OWMtTDydgc+jPeAEjik8MzjA4P7TZvzWnSubkKK+6G01NA3shRIABUOgJJAwYAgCACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACACAHpppptUdQahTqLbypRmcnpnkImZqZXsbUT+3SlBIGPdnuIA9DeH/AFy477KspdHpVqadVmmNFK5WaYqj0sUKUNoKludFA7DjoD0MASLZvFX4g71YlXKzw+2/WabsJSbfuUoWolJ2lLjra04B75B8+xgBzV/i44+mZF78EODeYRNBOW3J275VxHQjJKUsIUenxHv84ARprjC8TOYmV8vhZprErsSW0rrra1lWAV5VuSOp7ez0+MAX/qwPEabdRjhJkVgn2z+FDIOOvXv8e0AZneLvxEQ4AzwtyIRjsLiYJ+3eIAlDQji88Q6bqLLNw8OdLlW+m9wVVslI7eSzmAPRvhq1h1Hr1sh2+7Tl5N1TPtIZf3AHHfpAHkzxLTVvTvEveJlHlNSy7hmNyklTvtbiVYKkpJyrPkMZ84yLYxvcgzxR+H5c9wkjVnTtVaqNDpVbkahUag7br7cgw25zJXkpmicOOofmWUHKUpPte1kBKqy2JjucicI/FNc/D1NONWTLKU88szU22WZUCYcbOUFTimVulKUbsICsAqURgqJNS53ppn4hnHPO2y5KyegEg9UBMNuU59x8Swba9n9kStSV8zqo5G0dU+z0MAP2occHiO1mtTczamgko9TlFKUNP1hMw8MYB3uAAH2h3CR5dfMga7nFv4oj0wW0cKcm40FYS78sNJ3DGf3WB37fRAGtNcSviLzgUzVOF1DQKei03GxgkHt1z+ggBHd1o47ZlRK+GJJUemDdEvjvAGlNan8fLi90vw5S6MDOF3DLk/74fGAH7o5qLx8LmWfljhsShAQCFJuKXSTn61QB1tpVcvEVOWrUHbv0palkJkXN6PlgLKvZPmlMA9jzml5GnzFRnH3pxcoozCy1L8rmHv23dPOMi2MZn8QTgXcqnhlzXF4riVsBDNHqkrPylgqqivl6abVUTSv8DbQEdX1P53K/JN57npWWxaO55YRUsEAEAEAEAEAEAEAEAEAEAAGTgQBdyleXnE2b2B0VwleFtxY8YttG/tPqDS6PbKucmUuS555cvLTjrS0oW2ylptx5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OAogBPYbh1+MWjGUtispxjuJI4ueHFQyNU6d9I3fwRPhzK+LAZFV8TXhHpFSmaU/dFxuuyjym3FSti1V5CikkHatEuQsdOhSSD3BxDw59ifEh3F6zOO/hpvqnKqVGuyosISvaUVS3Z2Tcz8EPtIUfpxBU5MOpBDhlOJ/RCeZ57V8y6UE9S6CjA953AYHxifDmR4sDalNf9FKsFCW1RofsnB31NofvxVwmt0WUosyO6k6bTSd0vftIWD2KKi2f34izGaI19Q9edCdNaa1VtQdX7co0q+7ymJip1dplC14J2hSlAE4BMMrJzRGa1xu8Gc3PtU6V4o7EcfmCEssoueWKlknAAG/rDKxmQ8WdVtMn3ky8tfdLWtZwhKZxJJ6Z8j7onJLsRnj3N+WvO0n/abuOUI94dERZjNEUpWr0Vz8qKtLbT585PT74WZOaL6ijL1WiLR1qkt8fyyf4YWYujHOV61GwWX7gkELAwULm0Ajp36n64WZN0IlKnqRM3My9S6lLzCShSHi24FgeYBxEWYPn99Na0NFu8UOinEim4AtN2WDULaTRhJ7fVvkmdE16xzt53835a2cvYnZ6tncvmYQB4nQAQAQAQAQAQAQAQAQAQB9/g7QAQAQAQAQAQAQAQAQAQAQAQAQAj210qdUz/llP+9ES9iq3FiILBABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABABmAKFaevtfZAEd3eUyXEHadQBCQ/R6hLYx84lcuvH04bP3xePzGY5aTRIfMGcYMUMhTrnzIEAXD2k9U/UYATrrtG179tap2NfVtyFaolap70jWaPVpNuYlZ+VebU26w+y4Ch1taFKQpCgUqSogjBgD4l/FM4K0+Hd4guqPB3L1/5Up9n3An5BnnJrnPOUqbl2p6Q9YWGWQqZEpMsB7Y2lAeS4EZRtUQGZwy8XWuPCJeTl5aJ3cJIzhYTV6XNS4ek6m004FpbebV/TJ5iCh1KXHAhaN6s9LhvFcZwqt4mHla+6ezS11/s00r2auc/ifCsFxaj4eIje2zW6drafXZppu107HqTwWeLhoRxLopGnmpTn4I39PhqWEjMNqFOqc4rmZEo/lWzcUJIafKVb3kNIU+r2j9L4RzTguI5adX0KrSVmvRbv8Aou77dddbJvc+Z8Y5Vx3D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ACACACACACACACACACACACACACACACACACACACACACACACACACACAAQB72ehocXUg3a2rnA1WpmQampefYvq2Wm5GY9amW3UM0+pKceyWQ00WaUEIIQ4VTLp/KAHlAfQDSV82QaeUSTt9rI8+0AbaegyB9UAVAz1zg+6AKkjyH1wAYz3GfjAFT9P1QBatUAYHXwD36CANKcqTaElW8YHfrACRO3E037Rc98AItSvKXaBSHcwA36lfsu2naDuOSOnvgBv1DUZIBAzkdMQAiTt+1FwKTLsOKyemEGAEqbuK5phGJaTcyO4IIHWAE6d/ClwblpSyDjapawAfogBPmaNXVtB56qMIawSVIyofcIA1pq2Fts86o3AlIUnIynBI+G4iANP8HLdfVyXanNLd2lZaWnA25x3APnmANqatG2qfbfy5MyzrgVOJYaSHioZUM9QQOmPzwBFFU42vD9sivVG07z4tdIadVKVNuSdQplS1EprEzJzDa9jjTja5gKQ4hQUlSFAFJSQR0MARlqn403hb6L3Q5a1e4t7UmHly4elV2vJTNeli0VrSN0xTWH2krylX5NSwsDaopCVJJAinVf0lHw2NP5CRNn3ReF7TU8HfWDZtqvS4kNmzbzvlJcpu37iE8oOY5a92zKdwEPavelP8OTLSqppBw431ck05PYNOuuZkaOyywQolxLzC51SnAQhPL5aUkKUd4KAlYETahelTaoVaRnZzS7hJplHrL2RKP3BfD9Skm0qV7aXJdmWlVu+wVhOHUBKtqvaCShQEOX/AOkk+IXedJelrepWnVqVFaGky9eoNtPuTMtsWlRKET0zMsHcAUKC2lDatW3arCkgRDqH40fidaoUWYoVzcWlYl25nZvmqBSafSpxG1SVDZNSMu0+31SAdixuTlKspUoECJdQ+MXi21ctubs3Vbil1GuekT4bE9SbhvifnZZ8NrS4je086pK9qkIUMg4KUkdQMARwT07/AHwBbABABABABABABAFUDcoD3mAZuy0rzFbQz5dBiLqOpjbHbZ7VSkssSqglpzBWgjAJ64Pv7fmEbdFSRq1nFjtYlk4ye5HXMbSVzUbsZeQyOuwRbKVzMotlG0gDvEOJKkNi86Y/NNDe+oto3bUj44/gEa1aLZtUJpMYk3JqbdKdv2RoyVmbqk2ap6dIqXCACACACACACACACACAPUL0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" - }, - "TextureAtlas1": { - "name": "TextureAtlas1", - "uri": "data:image/png;base64,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" - } - }, - "materials": { - "Effect-cesium_air": { - "name": "cesium_air", - "technique": "technique0", - "values": { - "diffuse": "texture_TextureAtlas0", - "shininess": 256, - "specular": [ - 0.20000000298023224, - 0.20000000298023224, - 0.20000000298023224, - 1 - ] - } - }, - "Effect-prop": { - "name": "prop", - "technique": "technique1", - "values": { - "diffuse": "texture_TextureAtlas1", - "shininess": 256, - "specular": [ - 0.20000000298023224, - 0.20000000298023224, - 0.20000000298023224, - 1 - ] - } - } - }, - "meshes": { - "Geometry-mesh005": { - "name": "Prop", - "primitives": [ - { - "attributes": { - "NORMAL": "accessor_80", - "POSITION": "accessor_78", - "TEXCOORD_0": "accessor_82" - }, - "indices": "accessor_73", - "material": "Effect-cesium_air", - "mode": 4 - }, - { - "attributes": { - "NORMAL": "accessor_80", - "POSITION": "accessor_78", - "TEXCOORD_0": "accessor_82" - }, - "indices": "accessor_76", - "material": "Effect-cesium_air", - "mode": 4 - } - ] - }, - "Geometry-mesh005-dup-0": { - "name": "Geometry-mesh005-dup-0", - "primitives": [ - { - "attributes": { - "NORMAL": "accessor_127", - "POSITION": "accessor_125", - "TEXCOORD_0": "accessor_129" - }, - "indices": "accessor_120", - "material": "Effect-prop", - "mode": 4 - }, - { - "attributes": { - "NORMAL": "accessor_127", - "POSITION": "accessor_125", - "TEXCOORD_0": "accessor_129" - }, - "indices": "accessor_123", - "material": "Effect-prop", - "mode": 4 - } - ] - }, - "Geometry-mesh090": { - "name": "Cesium_Air", - "primitives": [ - { - "attributes": { - "NORMAL": "accessor_33", - "POSITION": "accessor_31", - "TEXCOORD_0": "accessor_35" - }, - "indices": "accessor_29", - "material": "Effect-cesium_air", - "mode": 4 - } - ] - } - }, - "nodes": { - "Geometry-mesh005Node": { - "children": [ - "node_3", - "node_4" - ], - "name": "Prop", - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "translation": [ - 1.9191499948501587, - 0.6840609908103943, - 3.4093198776245117 - ] - }, - "meshInst741Node": { - "children": [ - "node_6", - "node_7" - ], - "name": "Prop__2_", - "rotation": [ - 0, - 0, - 0, - 1 - ], - "scale": [ - 1, - 1, - 1 - ], - "translation": [ - 1.9191499948501587, - 0.6840609908103943, - -3.4093198776245117 - ] - }, - "node_1": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh090" - ], - "name": "" - }, - "node_3": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh005" - ], - "name": "" - }, - "node_4": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh005-dup-0" - ], - "name": "" - }, - "node_6": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh005" - ], - "name": "" - }, - "node_7": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "meshes": [ - "Geometry-mesh005-dup-0" - ], - "name": "" - }, - "polyRender085": { - "children": [], - "matrix": [ - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1, - 0, - 0, - 0, - 0, - 1 - ], - "name": "Render" - } - }, - "programs": { - "program_0": { - "attributes": [ - "a_normal", - "a_position", - "a_texcoord0" - ], - "fragmentShader": "Cesium_Air0FS", - "vertexShader": "Cesium_Air0VS" - }, - "program_1": { - "attributes": [ - "a_normal", - "a_position", - "a_texcoord0" - ], - "fragmentShader": "Cesium_Air1FS", - "vertexShader": "Cesium_Air1VS" - } - }, - "samplers": { - "sampler_0": { - "magFilter": 9729, - "minFilter": 9987, - "wrapS": 10497, - "wrapT": 10497 - } - }, - "scene": "defaultScene", - "scenes": { - "defaultScene": { - "nodes": [ - "polyRender085", - "node_1", - "Geometry-mesh005Node", - "meshInst741Node" - ] - } - }, - "shaders": { - "Cesium_Air0FS": { - "type": 35632, - "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Owp2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7CnZhcnlpbmcgdmVjMiB2X3RleGNvb3JkMDsKdW5pZm9ybSBzYW1wbGVyMkQgdV9kaWZmdXNlOwp1bmlmb3JtIHZlYzQgdV9zcGVjdWxhcjsKdW5pZm9ybSBmbG9hdCB1X3NoaW5pbmVzczsKdm9pZCBtYWluKHZvaWQpIHsKdmVjMyBub3JtYWwgPSBub3JtYWxpemUodl9ub3JtYWwpOwp2ZWM0IGNvbG9yID0gdmVjNCgwLiwgMC4sIDAuLCAwLik7CnZlYzQgZGlmZnVzZSA9IHZlYzQoMC4sIDAuLCAwLiwgMS4pOwp2ZWM0IHNwZWN1bGFyOwpkaWZmdXNlID0gdGV4dHVyZTJEKHVfZGlmZnVzZSwgdl90ZXhjb29yZDApOwpzcGVjdWxhciA9IHVfc3BlY3VsYXI7CmRpZmZ1c2UueHl6ICo9IG1heChkb3Qobm9ybWFsLHZlYzMoMC4sMC4sMS4pKSwgMC4pOwpjb2xvci54eXogKz0gZGlmZnVzZS54eXo7CmNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBkaWZmdXNlLmEsIGRpZmZ1c2UuYSk7CmdsX0ZyYWdDb2xvciA9IGNvbG9yOwp9Cg==" - }, - "Cesium_Air0VS": { - "type": 35633, - "uri": "data:text/plain;base64,Y29uc3QgZmxvYXQgdXZNdWx0aXBsaWVyID0gMC4wMDAwMzA1MTg1Owpjb25zdCBmbG9hdCBub3JtYWxNdWx0aXBsaWVyID0gMC4wMDc4NzQwMTU3NDgwMzE1Owp2ZWMyIHNpZ25Ob3RaZXJvKHZlYzIgdikKewogIHJldHVybiB2ZWMyKCh2LnggPj0gMC4wKSA/ICsxLjAgOiAtMS4wLCAodi55ID49IDAuMCkgPyArMS4wIDogLTEuMCk7Cn0KdmVjMyBvY3RfdG9fZmxvYXQzMngzKHZlYzIgZSkKewogIHZlYzMgdiA9IHZlYzMoZS54eSwgMS4wIC0gYWJzKGUueCkgLSBhYnMoZS55KSk7CiAgaWYgKHYueiA8IDAuMCkKICAgICAgdi54eSA9ICgxLjAgLSBhYnModi55eCkpICogc2lnbk5vdFplcm8odi54eSk7CiAgcmV0dXJuIG5vcm1hbGl6ZSh2KTsKfQpwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CmF0dHJpYnV0ZSB2ZWMzIGFfcG9zaXRpb247CmF0dHJpYnV0ZSB2ZWMyIGFfbm9ybWFsOwp2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7CnVuaWZvcm0gbWF0MyB1X25vcm1hbE1hdHJpeDsKdW5pZm9ybSBtYXQ0IHVfbW9kZWxWaWV3TWF0cml4Owp1bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4OwphdHRyaWJ1dGUgdmVjMyBhX3RleGNvb3JkMDsKdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOwp2b2lkIG1haW4odm9pZCkgewp2ZWM0IHBvcyA9IHVfbW9kZWxWaWV3TWF0cml4ICogdmVjNChhX3Bvc2l0aW9uLDEuMCk7CnZfbm9ybWFsID0gbm9ybWFsaXplKHVfbm9ybWFsTWF0cml4ICogb2N0X3RvX2Zsb2F0MzJ4MyhhX25vcm1hbCpub3JtYWxNdWx0aXBsaWVyKSk7CnZfdGV4Y29vcmQwID0gYV90ZXhjb29yZDAueHkgKiB1dk11bHRpcGxpZXIgKiAoYV90ZXhjb29yZDAueiszMjc2Ny4wKTsKZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBwb3M7Cn0KCgo=" - }, - "Cesium_Air1FS": { - "type": 35632, - "uri": "data:text/plain;base64,cHJlY2lzaW9uIGhpZ2hwIGZsb2F0Owp2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7CnZhcnlpbmcgdmVjMiB2X3RleGNvb3JkMDsKdW5pZm9ybSBzYW1wbGVyMkQgdV9kaWZmdXNlOwp1bmlmb3JtIHZlYzQgdV9zcGVjdWxhcjsKdW5pZm9ybSBmbG9hdCB1X3NoaW5pbmVzczsKdm9pZCBtYWluKHZvaWQpIHsKdmVjMyBub3JtYWwgPSBub3JtYWxpemUodl9ub3JtYWwpOwp2ZWM0IGNvbG9yID0gdmVjNCgwLiwgMC4sIDAuLCAwLik7CnZlYzQgZGlmZnVzZSA9IHZlYzQoMC4sIDAuLCAwLiwgMS4pOwp2ZWM0IHNwZWN1bGFyOwpkaWZmdXNlID0gdGV4dHVyZTJEKHVfZGlmZnVzZSwgdl90ZXhjb29yZDApOwpzcGVjdWxhciA9IHVfc3BlY3VsYXI7CmRpZmZ1c2UueHl6ICo9IG1heChkb3Qobm9ybWFsLHZlYzMoMC4sMC4sMS4pKSwgMC4pOwpjb2xvci54eXogKz0gZGlmZnVzZS54eXo7CmNvbG9yID0gdmVjNChjb2xvci5yZ2IgKiBkaWZmdXNlLmEsIGRpZmZ1c2UuYSk7CmdsX0ZyYWdDb2xvciA9IGNvbG9yOwp9Cg==" - }, - "Cesium_Air1VS": { - "type": 35633, - "uri": "data:text/plain;base64,Y29uc3QgZmxvYXQgdXZNdWx0aXBsaWVyID0gMC4wMDAwMzA1MTg1Owpjb25zdCBmbG9hdCBub3JtYWxNdWx0aXBsaWVyID0gMC4wMDc4NzQwMTU3NDgwMzE1Owp2ZWMyIHNpZ25Ob3RaZXJvKHZlYzIgdikKewogIHJldHVybiB2ZWMyKCh2LnggPj0gMC4wKSA/ICsxLjAgOiAtMS4wLCAodi55ID49IDAuMCkgPyArMS4wIDogLTEuMCk7Cn0KdmVjMyBvY3RfdG9fZmxvYXQzMngzKHZlYzIgZSkKewogIHZlYzMgdiA9IHZlYzMoZS54eSwgMS4wIC0gYWJzKGUueCkgLSBhYnMoZS55KSk7CiAgaWYgKHYueiA8IDAuMCkKICAgICAgdi54eSA9ICgxLjAgLSBhYnModi55eCkpICogc2lnbk5vdFplcm8odi54eSk7CiAgcmV0dXJuIG5vcm1hbGl6ZSh2KTsKfQpwcmVjaXNpb24gaGlnaHAgZmxvYXQ7CmF0dHJpYnV0ZSB2ZWMzIGFfcG9zaXRpb247CmF0dHJpYnV0ZSB2ZWMyIGFfbm9ybWFsOwp2YXJ5aW5nIHZlYzMgdl9ub3JtYWw7CnVuaWZvcm0gbWF0MyB1X25vcm1hbE1hdHJpeDsKdW5pZm9ybSBtYXQ0IHVfbW9kZWxWaWV3TWF0cml4Owp1bmlmb3JtIG1hdDQgdV9wcm9qZWN0aW9uTWF0cml4OwphdHRyaWJ1dGUgdmVjMyBhX3RleGNvb3JkMDsKdmFyeWluZyB2ZWMyIHZfdGV4Y29vcmQwOwp2b2lkIG1haW4odm9pZCkgewp2ZWM0IHBvcyA9IHVfbW9kZWxWaWV3TWF0cml4ICogdmVjNChhX3Bvc2l0aW9uLDEuMCk7CnZfbm9ybWFsID0gbm9ybWFsaXplKHVfbm9ybWFsTWF0cml4ICogb2N0X3RvX2Zsb2F0MzJ4MyhhX25vcm1hbCpub3JtYWxNdWx0aXBsaWVyKSk7CnZfdGV4Y29vcmQwID0gYV90ZXhjb29yZDAueHkgKiB1dk11bHRpcGxpZXIgKiAoYV90ZXhjb29yZDAueiszMjc2Ny4wKTsKZ2xfUG9zaXRpb24gPSB1X3Byb2plY3Rpb25NYXRyaXggKiBwb3M7Cn0KCgo=" - } - }, - "skins": {}, - "techniques": { - "technique0": { - "attributes": { - "a_normal": "normal", - "a_position": "position", - "a_texcoord0": "texcoord0" - }, - "parameters": { - "diffuse": { - "type": 35678 - }, - "modelViewMatrix": { - "semantic": "MODELVIEW", - "type": 35676 - }, - "normal": { - "semantic": "NORMAL", - "type": 35665 - }, - "normalMatrix": { - "semantic": "MODELVIEWINVERSETRANSPOSE", - "type": 35675 - }, - "position": { - "semantic": "POSITION", - "type": 35665 - }, - "projectionMatrix": { - "semantic": "PROJECTION", - "type": 35676 - }, - "shininess": { - "type": 5126 - }, - "specular": { - "type": 35666 - }, - "texcoord0": { - "semantic": "TEXCOORD_0", - "type": 35664 - } - }, - "program": "program_0", - "states": { - "enable": [ - 2929, - 2884 - ] - }, - "uniforms": { - "u_diffuse": "diffuse", - "u_modelViewMatrix": "modelViewMatrix", - "u_normalMatrix": "normalMatrix", - "u_projectionMatrix": "projectionMatrix", - "u_shininess": "shininess", - "u_specular": "specular" - } - }, - "technique1": { - "attributes": { - "a_normal": "normal", - "a_position": "position", - "a_texcoord0": "texcoord0" - }, - "parameters": { - "diffuse": { - "type": 35678 - }, - "modelViewMatrix": { - "semantic": "MODELVIEW", - "type": 35676 - }, - "normal": { - "semantic": "NORMAL", - "type": 35665 - }, - "normalMatrix": { - "semantic": "MODELVIEWINVERSETRANSPOSE", - "type": 35675 - }, - "position": { - "semantic": "POSITION", - "type": 35665 - }, - "projectionMatrix": { - "semantic": "PROJECTION", - "type": 35676 - }, - "shininess": { - "type": 5126 - }, - "specular": { - "type": 35666 - }, - "texcoord0": { - "semantic": "TEXCOORD_0", - "type": 35664 - } - }, - "program": "program_1", - "states": { - "enable": [ - 2929, - 3042 - ], - "functions": { - "blendEquationSeparate": [ - 32774, - 32774 - ], - "blendFuncSeparate": [ - 1, - 771, - 1, - 771 - ], - "depthMask": false - } - }, - "uniforms": { - "u_diffuse": "diffuse", - "u_modelViewMatrix": "modelViewMatrix", - "u_normalMatrix": "normalMatrix", - "u_projectionMatrix": "projectionMatrix", - "u_shininess": "shininess", - "u_specular": "specular" - } - } - }, - "textures": { - "texture_TextureAtlas0": { - "format": 6408, - "internalFormat": 6408, - "sampler": "sampler_0", - "source": "TextureAtlas0", - "target": 3553, - "type": 5121 - }, - "texture_TextureAtlas1": { - "format": 6408, - "internalFormat": 6408, - "sampler": "sampler_0", - "source": "TextureAtlas1", - "target": 3553, - "type": 5121 - } - } -} \ No newline at end of file diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index 2a9b087dc..900f8c589 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -106,31 +106,26 @@ <script> -{% if bing_api_key != '' %} -Cesium.BingMapsApi.defaultKey = "{{ bing_api_key }}"; -{% endif %} - {% if cesium_api_key != '' %} Cesium.Ion.defaultAccessToken = "{{ cesium_api_key }}"; {% endif %} +var terrain = Cesium.Terrain.fromWorldTerrain({ + requestWaterMask: true, + requestVertexNormals: true +}); var viewer = new Cesium.Viewer('cesiumContainer', { terrainProviderViewModels : [], //Disable terrain changing infoBox : false, //Disable InfoBox widget selectionIndicator : false, //Disable selection indicator - navigationInstructionsInitiallyVisible : false + navigationInstructionsInitiallyVisible : false, + terrain : terrain }); var scene = viewer.scene; //Lighting based on sun/moon positions scene.globe.enableLighting = false; // generally a bit too dark when enabled -//Terrain -viewer.terrainProvider = Cesium.createWorldTerrain({ - requestWaterMask: true, - requestVertexNormals: true -}); - //Enable depth testing so things behind the terrain disappear. scene.globe.depthTestAgainstTerrain = true; @@ -215,22 +210,24 @@ var rotation_matrix = new Cesium.Matrix3(); Cesium.Matrix4.getRotation(transform_matrix, rotation_matrix); - // rotate by 90 deg to point towards north (instead of east) - var m = Cesium.Matrix3.fromRotationZ(Cesium.Math.toRadians(90.0)); - rotation_matrix = Cesium.Matrix3.multiply(rotation_matrix, m, new Cesium.Matrix3()); // rotation quaterion from ENU to ECEF var q_enu_to_ecef = Cesium.Quaternion.fromRotationMatrix(rotation_matrix); - - + var kHalfSqrt2 = 0.7071067811865476; + var q_ned_to_enu = new Cesium.Quaternion(kHalfSqrt2, kHalfSqrt2, 0.0, 0.0); // 180 deg along X, -90 deg along Z (intrinsic) + var q_ned_to_enu_inv = new Cesium.Quaternion(); + Cesium.Quaternion.inverse(q_ned_to_enu, q_ned_to_enu_inv); + var tmp = new Cesium.Quaternion(); + for (i = 0; i < attitude_data.length; ++i) { var cur_attitude = attitude_data[i]; var time_att = Cesium.JulianDate.fromIso8601(cur_attitude[0]); - // we need to swap the y & z axis: in NED the body-frame y-axis points to the right - // and the z axis down, whereas in ECEF the y-axis points to the left and the z-axis - // upwards (x-axis points forward in both coordinate systems) - var q = new Cesium.Quaternion(cur_attitude[1], -cur_attitude[2], - -cur_attitude[3], cur_attitude[4]); + var q = new Cesium.Quaternion(cur_attitude[1], cur_attitude[2], cur_attitude[3], cur_attitude[4]); + + // Convert NED to ENU + Cesium.Quaternion.multiply(q_ned_to_enu, q, tmp); + Cesium.Quaternion.multiply(tmp, q_ned_to_enu_inv, q); + var orientation = new Cesium.Quaternion(); Cesium.Quaternion.multiply(q_enu_to_ecef, q, orientation); //orientationProperty.addSample(time_att, orientation); // this uses interpolation @@ -331,14 +328,16 @@ // sample the ground height at takeoff position to get the offset (there can be // an offset of several meters) -var promise = Cesium.sampleTerrainMostDetailed(viewer.terrainProvider, [ takeoff_position ]); -Cesium.when(promise, function(updatedPositions) { - var ground_offset = takeoff_position.height - takeoff_altitude; - console.log('Ground Offset in meters: ' + ground_offset); - // re-compute the positions taking the ground offset into account. - // add 2 meters more to allow for inaccuracies - var positionProperty = computePositionProperty(ground_offset + 2); - entity.position = positionProperty; +terrain.readyEvent.addEventListener(provider => { + var promise = Cesium.sampleTerrainMostDetailed(provider, [ takeoff_position ]); + promise.then((updatedPositions) => { + var ground_offset = takeoff_position.height - takeoff_altitude; + console.log('Ground Offset in meters: ' + ground_offset); + // re-compute the positions taking the ground offset into account. + // add 2 meters more to allow for inaccuracies + var positionProperty = computePositionProperty(ground_offset + 2); + entity.position = positionProperty; + }); }); diff --git a/app/tornado_handlers/three_d.py b/app/tornado_handlers/three_d.py index b1f6f9fe8..375d907e1 100644 --- a/app/tornado_handlers/three_d.py +++ b/app/tornado_handlers/three_d.py @@ -10,7 +10,7 @@ # this is needed for the following imports sys.path.append(os.path.join(os.path.dirname(os.path.realpath(__file__)), '../plot_app')) -from config import get_bing_maps_api_key, get_cesium_api_key +from config import get_cesium_api_key from helper import validate_log_id, get_log_filename, load_ulog_file, \ get_flight_mode_changes, flight_modes_table, get_lat_lon_alt_deg @@ -191,6 +191,5 @@ def get(self, *args, **kwargs): model_scale_factor=model_scale_factor, model_uri=model_uri, log_id=log_id, - bing_api_key=get_bing_maps_api_key(), cesium_api_key=get_cesium_api_key())) From d36c3f67be9cead994b0c319c3aa4da69f53753b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Wed, 27 Nov 2024 20:27:44 +0100 Subject: [PATCH 02/11] 3d: use hermite polynomial interpolation for smoother position --- app/plot_app/templates/3d.html | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index 900f8c589..a96a3bad8 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -170,6 +170,11 @@ function computePositionProperty(altitude_offset) { var property = new Cesium.SampledPositionProperty(); + property.setInterpolationOptions({ + interpolationDegree : 2, + interpolationAlgorithm : Cesium.HermitePolynomialApproximation + }); + var position; for (var i = 0; i < position_data.length; ++i) { From 7c451c246bd953e02fe2d533a1581a0319ac9916 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Wed, 27 Nov 2024 21:19:44 +0100 Subject: [PATCH 03/11] 3d: also consider position with lowest altitude for ground offset calculation As the altitude can be inaccurate, this reduces the possibility for the trajectory to be below ground. This is especially the case in acrobatic flights. --- app/plot_app/templates/3d.html | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index a96a3bad8..77c4eb996 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -331,12 +331,22 @@ } }); -// sample the ground height at takeoff position to get the offset (there can be +// sample the ground height at takeoff position and the lowest altitude to get the offset (there can be // an offset of several meters) terrain.readyEvent.addEventListener(provider => { - var promise = Cesium.sampleTerrainMostDetailed(provider, [ takeoff_position ]); + // Find position with minimum altitude + var min_pos = position_data[0]; + for (i = 0; i < position_data.length; ++i) { + var cur_pos = position_data[i]; + if (cur_pos[3] < min_pos[3]) { + min_pos = cur_pos; + } + } + var altitudes = [ takeoff_altitude, min_pos[3] ]; + var positions = [ takeoff_position, Cesium.Cartographic.fromDegrees(min_pos[1], min_pos[2])]; + var promise = Cesium.sampleTerrainMostDetailed(provider, positions); promise.then((updatedPositions) => { - var ground_offset = takeoff_position.height - takeoff_altitude; + var ground_offset = Math.max(positions[0].height - altitudes[0], positions[1].height - altitudes[1]); console.log('Ground Offset in meters: ' + ground_offset); // re-compute the positions taking the ground offset into account. // add 2 meters more to allow for inaccuracies From 607dfd17f8eba574ec74478c1cee0c86f0598a15 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Thu, 28 Nov 2024 12:08:33 +0100 Subject: [PATCH 04/11] prune_old_logs: check if ulog file exists before deleting --- app/prune_old_logs.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/app/prune_old_logs.py b/app/prune_old_logs.py index fadbe4ff5..3d9ec0ea9 100755 --- a/app/prune_old_logs.py +++ b/app/prune_old_logs.py @@ -91,7 +91,8 @@ # and the log file ulog_file_name = get_log_filename(log_id) - os.unlink(ulog_file_name) + if os.path.exists(ulog_file_name): + os.unlink(ulog_file_name) #and preview image if exist preview_image_filename=os.path.join(get_overview_img_filepath(), log_id+'.png') if os.path.exists(preview_image_filename): From 3ca7d03f2bd51f03abedc3a021cf7add597b4c9a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Thu, 28 Nov 2024 19:13:39 +0100 Subject: [PATCH 05/11] 3d: prevent initial attitude jump --- app/plot_app/templates/3d.html | 1 + 1 file changed, 1 insertion(+) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index 77c4eb996..031053463 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -146,6 +146,7 @@ var boot_timestamp = Cesium.JulianDate.fromIso8601({{ boot_timestamp }}); var stop = Cesium.JulianDate.fromIso8601({{ end_timestamp }}); var attitude_data = {{ attitude_data }}; +attitude_data[0][0] = {{ start_timestamp }}; // Prevent initial attitude jump if the first sample is a bit later var model_scale_factor = {{ model_scale_factor }}; // model-specific scale factor var model_uri = "{{ model_uri }}"; From 83054982c7c66938105d71afccc17b931f50d31c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Fri, 6 Dec 2024 14:14:15 +0100 Subject: [PATCH 06/11] 3d: add options to configure flight path width, color and show/hide radio --- app/plot_app/templates/3d.html | 43 ++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index 031053463..5aada466b 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -94,6 +94,25 @@ <input type="checkbox" value="true" data-bind="checked: path_visible, valueUpdate: 'input'"> </td> </tr> + <tr> + <td>Flight Path Width</td> + <td> + <input type="range" min="1" max="30" step="1" data-bind="value: path_width, valueUpdate: 'input'"> + <input type="text" size="2" data-bind="value: path_width"> + </td> + </tr> + <tr> + <td>Flight Path Color</td> + <td> + <input type="color" value="#f6b73c" data-bind="value: path_color, valueUpdate: 'input'"> + </td> + </tr> + <tr> + <td>Show Radio</td> + <td> + <input type="checkbox" value="true" data-bind="checked: radio_visible, valueUpdate: 'input'"> + </td> + </tr> <tr> <td>Camera Tracks Vehicle</td> <td> @@ -456,7 +475,10 @@ // UI: configuration var viewModel = { size : default_model_scale, + path_width : 10, + path_color : '#FFFF00', path_visible : true, + radio_visible : true, track_vehicle : false, }; // Convert the viewModel members into knockout observables. @@ -471,11 +493,32 @@ entity.model.scale = newValue * model_scale_factor; } ); +Cesium.knockout.getObservable(viewModel, 'path_width').subscribe( + function(newValue) { + entity.path.width = newValue; + } +); +Cesium.knockout.getObservable(viewModel, 'path_color').subscribe( + function(newValue) { + var color = new Cesium.Color(); + Cesium.Color.fromCssColorString(newValue, color); + entity.path.material.color = color; + } +); Cesium.knockout.getObservable(viewModel, 'path_visible').subscribe( function(newValue) { entity.path.show = newValue; } ); +Cesium.knockout.getObservable(viewModel, 'radio_visible').subscribe( + function(newValue) { + if (newValue) { + document.getElementById('radio-controller').style.display = 'block'; + } else { + document.getElementById('radio-controller').style.display = 'none'; + } + } +); Cesium.knockout.getObservable(viewModel, 'track_vehicle').subscribe( function(newValue) { if (newValue) { From b638dd225e8214b935783e063591ed7728512d76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Fri, 6 Dec 2024 14:14:33 +0100 Subject: [PATCH 07/11] 3d: add support to move the radio --- app/plot_app/templates/3d.html | 27 +++++++++++++++++++++++++++ 1 file changed, 27 insertions(+) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index 5aada466b..ff39b9d74 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -450,6 +450,33 @@ radio_controller.redraw(); }); +// Mouse dragging +var radio_controller_offset = [0, 0]; +var radio_controller_element = document.getElementById("radio-controller"); +var is_mouse_down = false; +radio_controller_element.addEventListener('mousedown', function(e) { + is_mouse_down = true; + radio_controller_offset = [ + radio_controller_element.offsetLeft - e.clientX, + radio_controller_element.offsetTop - e.clientY, + ]; +}, true); +document.addEventListener('mouseup', function() { + is_mouse_down = false; +}, true); +document.addEventListener('mousemove', function(e) { + event.preventDefault(); + if (is_mouse_down) { + var margin_left = parseInt(window.getComputedStyle(radio_controller_element).marginLeft); + var margin_top = parseInt(window.getComputedStyle(radio_controller_element).marginTop); + var x = (e.clientX + radio_controller_offset[0]); + var y = (e.clientY + radio_controller_offset[1]); + x = Math.max(0, Math.min(window.innerWidth - radio_controller_element.clientWidth, x)); + y = Math.max(0, Math.min(window.innerHeight - radio_controller_element.clientHeight, y)); + radio_controller_element.style.left = (x - margin_left) + 'px'; + radio_controller_element.style.top = (y - margin_top) + 'px'; + } +}, true); // additional keyboard handling From d7288fb8d87b5ac954a72e7629f6da3906d0f381 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Fri, 6 Dec 2024 14:56:58 +0100 Subject: [PATCH 08/11] 3d: make configuration options collapsible --- app/plot_app/templates/3d.html | 48 +++++++++++++++++++++++++++++----- 1 file changed, 41 insertions(+), 7 deletions(-) diff --git a/app/plot_app/templates/3d.html b/app/plot_app/templates/3d.html index ff39b9d74..fca049a78 100644 --- a/app/plot_app/templates/3d.html +++ b/app/plot_app/templates/3d.html @@ -29,10 +29,9 @@ } #toolbar { background: rgba(42, 42, 42, 0.8); - padding: 4px; border-radius: 4px; margin: 5px; - padding: 2px 5px; + padding: 6px 5px; position: absolute; top: 0; left: 0; @@ -42,7 +41,7 @@ padding-top: 2px; padding-bottom: 2px; } - #toolbar td:not(.noalign) { + #toolbar td { text-align: right; } #toolbar .header { @@ -69,6 +68,28 @@ margin-left: -320px; margin-top: -300px; } + + .collapsible { + background-color: #777; + color: white; + cursor: pointer; + padding: 5px; + width: 100%; + border: none; + text-align: center; + outline: none; + border-radius: 4px; + margin-top: 6px; + } + .active, .collapsible:hover { + background-color: #555; + } + .content { + padding: 0 18px; + max-height: 0; + overflow: hidden; + transition: max-height 0.2s ease-out; + } </style> </head> <body> @@ -76,11 +97,10 @@ <div id="radio-controller"></div> <div id="toolbar"> + <a href="plot_app?log={{ log_id }}">Open Plot Page</a> + <button class="collapsible">Configure</button> + <div class="content"> <table><tbody> - <tr> - <td class="noalign" colspan="2"><a href="plot_app?log={{ log_id }}">Open Plot Page</a></td> - </tr> - <!-- <tr><td class="header">Options</td></tr> --> <tr> <td>Model Size</td> <td> @@ -120,6 +140,7 @@ </td> </tr> </tbody></table> + </div> </div> <script> @@ -561,6 +582,19 @@ viewer.zoomTo(entity, new Cesium.HeadingPitchRange(0, Cesium.Math.toRadians(-90), 200)); + +var coll = document.getElementsByClassName("collapsible"); +for (var i = 0; i < coll.length; i++) { + coll[i].addEventListener("click", function() { + this.classList.toggle("active"); + var content = this.nextElementSibling; + if (content.style.maxHeight){ + content.style.maxHeight = null; + } else { + content.style.maxHeight = content.scrollHeight + "px"; + } + }); +} </script> </body> </html> From 678f3c1a55c4e263777ccd9824ea446e88d23ec7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Mon, 9 Dec 2024 10:31:56 +0100 Subject: [PATCH 09/11] dependencies: change fftw3 to libfftw3-bin (renamed ubuntu package) And change Docker container to ubuntu noble (24.04) --- .github/workflows/test.yml | 2 +- README.md | 2 +- app/Dockerfile | 6 +++--- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index e4c53cd74..fde4f873a 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -26,7 +26,7 @@ jobs: python-version: ${{ matrix.python-version }} - name: Install Dependencies run: | - sudo apt install -y sqlite3 fftw3 libfftw3-dev + sudo apt install -y sqlite3 libfftw3-bin libfftw3-dev pip install -r app/requirements.txt - name : Running Tests run: | diff --git a/README.md b/README.md index 7675cca96..294059a4e 100644 --- a/README.md +++ b/README.md @@ -25,7 +25,7 @@ Flight Review is deployed at https://review.px4.io. #### Ubuntu ```bash -sudo apt-get install sqlite3 fftw3 libfftw3-dev +sudo apt-get install sqlite3 libfftw3-bin libfftw3-dev ``` **Note:** Under some Ubuntu and Debian environments you might have to diff --git a/app/Dockerfile b/app/Dockerfile index c5b236aa4..7e81c67e1 100644 --- a/app/Dockerfile +++ b/app/Dockerfile @@ -1,11 +1,11 @@ -FROM ubuntu:jammy +FROM ubuntu:noble COPY requirements.txt requirements.txt RUN apt-get update && \ - apt-get install -y --no-install-recommends apt-utils python3 python3-pip sqlite3 fftw3 python3-setuptools && \ + apt-get install -y --no-install-recommends apt-utils python3 python3-pip sqlite3 libfftw3-bin python3-setuptools && \ apt-get install -y --no-install-recommends python3-dev libfftw3-dev git && \ - pip3 install --no-cache-dir -r requirements.txt && \ + pip3 install --break-system-packages --no-cache-dir -r requirements.txt && \ apt-get remove -y python3-dev libfftw3-dev git && \ apt-get -y autoremove && \ rm -rf /var/lib/apt/lists/* From eaf122e73000240754cb6b43bdd1e03255945219 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Mon, 9 Dec 2024 10:32:10 +0100 Subject: [PATCH 10/11] ci: update python versions --- .github/workflows/test.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index fde4f873a..2c8512bda 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -14,7 +14,7 @@ jobs: strategy: fail-fast: false # don't cancel if a job from the matrix fails matrix: - python-version: ["3.9", "3.10", "3.11"] # 3.12: pyfftw not yet supported + python-version: ["3.10", "3.11", "3.12", "3.13"] steps: - uses: actions/checkout@v2 From 8d583fba35e24d8ea2b188c79e92b5577aa7b01d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beat=20K=C3=BCng?= <beat-kueng@gmx.net> Date: Mon, 9 Dec 2024 10:42:27 +0100 Subject: [PATCH 11/11] pylintrc: update config using version 3.3.1 And set max-positional-arguments=13 --- app/pylintrc | 786 ++++++++++++++++++++++++++++++++++++--------------- 1 file changed, 562 insertions(+), 224 deletions(-) diff --git a/app/pylintrc b/app/pylintrc index 1251f953b..4cfdf7964 100644 --- a/app/pylintrc +++ b/app/pylintrc @@ -1,361 +1,699 @@ -[MASTER] +[MAIN] -# Specify a configuration file. -#rcfile= +# Analyse import fallback blocks. This can be used to support both Python 2 and +# 3 compatible code, which means that the block might have code that exists +# only in one or another interpreter, leading to false positives when analysed. +analyse-fallback-blocks=no + +# Clear in-memory caches upon conclusion of linting. Useful if running pylint +# in a server-like mode. +clear-cache-post-run=no + +# Load and enable all available extensions. Use --list-extensions to see a list +# all available extensions. +#enable-all-extensions= + +# In error mode, messages with a category besides ERROR or FATAL are +# suppressed, and no reports are done by default. Error mode is compatible with +# disabling specific errors. +#errors-only= + +# Always return a 0 (non-error) status code, even if lint errors are found. +# This is primarily useful in continuous integration scripts. +#exit-zero= + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. +extension-pkg-allow-list= + +# A comma-separated list of package or module names from where C extensions may +# be loaded. Extensions are loading into the active Python interpreter and may +# run arbitrary code. (This is an alternative name to extension-pkg-allow-list +# for backward compatibility.) +extension-pkg-whitelist= + +# Return non-zero exit code if any of these messages/categories are detected, +# even if score is above --fail-under value. Syntax same as enable. Messages +# specified are enabled, while categories only check already-enabled messages. +fail-on= + +# Specify a score threshold under which the program will exit with error. +fail-under=10 + +# Interpret the stdin as a python script, whose filename needs to be passed as +# the module_or_package argument. +#from-stdin= + +# Files or directories to be skipped. They should be base names, not paths. +ignore=CVS + +# Add files or directories matching the regular expressions patterns to the +# ignore-list. The regex matches against paths and can be in Posix or Windows +# format. Because '\\' represents the directory delimiter on Windows systems, +# it can't be used as an escape character. +ignore-paths= + +# Files or directories matching the regular expression patterns are skipped. +# The regex matches against base names, not paths. The default value ignores +# Emacs file locks +ignore-patterns= + +# List of module names for which member attributes should not be checked and +# will not be imported (useful for modules/projects where namespaces are +# manipulated during runtime and thus existing member attributes cannot be +# deduced by static analysis). It supports qualified module names, as well as +# Unix pattern matching. +ignored-modules=numpy,bokeh.palettes # Python code to execute, usually for sys.path manipulation such as # pygtk.require(). #init-hook= -# Add files or directories to the blacklist. They should be base names, not -# paths. -ignore=CVS +# Use multiple processes to speed up Pylint. Specifying 0 will auto-detect the +# number of processors available to use, and will cap the count on Windows to +# avoid hangs. +jobs=1 -# Add files or directories matching the regex patterns to the blacklist. The -# regex matches against base names, not paths. -ignore-patterns= +# Control the amount of potential inferred values when inferring a single +# object. This can help the performance when dealing with large functions or +# complex, nested conditions. +limit-inference-results=100 + +# List of plugins (as comma separated values of python module names) to load, +# usually to register additional checkers. +load-plugins= # Pickle collected data for later comparisons. persistent=yes -# List of plugins (as comma separated values of python modules names) to load, -# usually to register additional checkers. -load-plugins= +# Resolve imports to .pyi stubs if available. May reduce no-member messages and +# increase not-an-iterable messages. +prefer-stubs=no -# Use multiple processes to speed up Pylint. -jobs=1 +# Minimum Python version to use for version dependent checks. Will default to +# the version used to run pylint. +py-version=3.12 + +# Discover python modules and packages in the file system subtree. +recursive=no + +# Add paths to the list of the source roots. Supports globbing patterns. The +# source root is an absolute path or a path relative to the current working +# directory used to determine a package namespace for modules located under the +# source root. +source-roots= + +# When enabled, pylint would attempt to guess common misconfiguration and emit +# user-friendly hints instead of false-positive error messages. +suggestion-mode=yes # Allow loading of arbitrary C extensions. Extensions are imported into the # active Python interpreter and may run arbitrary code. unsafe-load-any-extension=no -# A comma-separated list of package or module names from where C extensions may -# be loaded. Extensions are loading into the active Python interpreter and may -# run arbitrary code -extension-pkg-whitelist= +# In verbose mode, extra non-checker-related info will be displayed. +#verbose= -[MESSAGES CONTROL] +[BASIC] -# Only show warnings with the listed confidence levels. Leave empty to show -# all. Valid levels: HIGH, INFERENCE, INFERENCE_FAILURE, UNDEFINED -confidence= +# Naming style matching correct argument names. +argument-naming-style=snake_case -# Enable the message, report, category or checker with the given id(s). You can -# either give multiple identifier separated by comma (,) or put this option -# multiple time (only on the command line, not in the configuration file where -# it should appear only once). See also the "--disable" option for examples. -#enable= +# Regular expression matching correct argument names. Overrides argument- +# naming-style. If left empty, argument names will be checked with the set +# naming style. +argument-rgx=[a-z_][a-z0-9_]{2,30}$ -# Disable the message, report, category or checker with the given id(s). You -# can either give multiple identifiers separated by comma (,) or put this -# option multiple times (only on the command line, not in the configuration -# file where it should appear only once).You can also use "--disable=all" to -# disable everything first and then reenable specific checks. For example, if -# you want to run only the similarities checker, you can use "--disable=all -# --enable=similarities". If you want to run only the classes checker, but have -# no Warning level messages displayed, use"--disable=all --enable=classes -# --disable=W" -disable=useless-suppression,suppressed-message,too-many-instance-attributes,too-many-branches,wildcard-import,wrong-import-position,too-many-arguments,broad-except,unused-wildcard-import,fixme,locally-disabled,too-many-locals,multiple-statements,bare-except,unused-format-string-argument,trailing-newlines,unused-variable,len-as-condition,try-except-raise,unnecessary-pass,unused-argument,no-value-for-parameter,consider-using-f-string,consider-using-with +# Naming style matching correct attribute names. +attr-naming-style=snake_case +# Regular expression matching correct attribute names. Overrides attr-naming- +# style. If left empty, attribute names will be checked with the set naming +# style. +attr-rgx=[a-z_][a-z0-9_]{2,30}$ -[REPORTS] +# Bad variable names which should always be refused, separated by a comma. +bad-names=foo, + bar, + baz, + toto, + tutu, + tata -# Set the output format. Available formats are text, parseable, colorized, msvs -# (visual studio) and html. You can also give a reporter class, eg -# mypackage.mymodule.MyReporterClass. -output-format=text +# Bad variable names regexes, separated by a comma. If names match any regex, +# they will always be refused +bad-names-rgxs= -# Tells whether to display a full report or only the messages -reports=no +# Naming style matching correct class attribute names. +class-attribute-naming-style=any -# Python expression which should return a note less than 10 (10 is the highest -# note). You have access to the variables errors warning, statement which -# respectively contain the number of errors / warnings messages and the total -# number of statements analyzed. This is used by the global evaluation report -# (RP0004). -evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) +# Regular expression matching correct class attribute names. Overrides class- +# attribute-naming-style. If left empty, class attribute names will be checked +# with the set naming style. +class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ -# Template used to display messages. This is a python new-style format string -# used to format the message information. See doc for all details -#msg-template= +# Naming style matching correct class constant names. +class-const-naming-style=UPPER_CASE +# Regular expression matching correct class constant names. Overrides class- +# const-naming-style. If left empty, class constant names will be checked with +# the set naming style. +#class-const-rgx= -[BASIC] +# Naming style matching correct class names. +class-naming-style=PascalCase -# Good variable names which should always be accepted, separated by a comma -good-names=i,j,k,ex,Run,_,e,h,m,s,m1,s1,h1,p,x,y,z,t,_p,d,dx,dy,dz,q,sx,sy,dt +# Regular expression matching correct class names. Overrides class-naming- +# style. If left empty, class names will be checked with the set naming style. +class-rgx=[A-Z_][a-zA-Z0-9]+$ -# Bad variable names which should always be refused, separated by a comma -bad-names=foo,bar,baz,toto,tutu,tata +# Naming style matching correct constant names. +const-naming-style=UPPER_CASE + +# Regular expression matching correct constant names. Overrides const-naming- +# style. If left empty, constant names will be checked with the set naming +# style. +const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ + +# Minimum line length for functions/classes that require docstrings, shorter +# ones are exempt. +docstring-min-length=-1 + +# Naming style matching correct function names. +function-naming-style=snake_case + +# Regular expression matching correct function names. Overrides function- +# naming-style. If left empty, function names will be checked with the set +# naming style. +function-rgx=[a-z_][a-z0-9_]{2,35}$ + +# Good variable names which should always be accepted, separated by a comma. +good-names=i, + j, + k, + ex, + Run, + _, + e, + h, + m, + s, + m1, + s1, + h1, + p, + x, + y, + z, + t, + _p, + d, + dx, + dy, + dz, + q, + sx, + sy, + dt + +# Good variable names regexes, separated by a comma. If names match any regex, +# they will always be accepted +good-names-rgxs= + +# Include a hint for the correct naming format with invalid-name. +include-naming-hint=no + +# Naming style matching correct inline iteration names. +inlinevar-naming-style=any + +# Regular expression matching correct inline iteration names. Overrides +# inlinevar-naming-style. If left empty, inline iteration names will be checked +# with the set naming style. +inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ + +# Naming style matching correct method names. +method-naming-style=snake_case + +# Regular expression matching correct method names. Overrides method-naming- +# style. If left empty, method names will be checked with the set naming style. +method-rgx=[a-z_][a-z0-9_]{2,30}$ + +# Naming style matching correct module names. +module-naming-style=snake_case + +# Regular expression matching correct module names. Overrides module-naming- +# style. If left empty, module names will be checked with the set naming style. +module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Colon-delimited sets of names that determine each other's naming style when # the name regexes allow several styles. name-group= -# Include a hint for the correct naming format with invalid-name -include-naming-hint=no +# Regular expression which should only match function or class names that do +# not require a docstring. +no-docstring-rgx=^_ # List of decorators that produce properties, such as abc.abstractproperty. Add # to this list to register other decorators that produce valid properties. +# These decorators are taken in consideration only for invalid-name. property-classes=abc.abstractproperty -# Regular expression matching correct function names -function-rgx=[a-z_][a-z0-9_]{2,35}$ +# Regular expression matching correct type alias names. If left empty, type +# alias names will be checked with the set naming style. +#typealias-rgx= + +# Regular expression matching correct type variable names. If left empty, type +# variable names will be checked with the set naming style. +#typevar-rgx= -# Regular expression matching correct variable names +# Naming style matching correct variable names. +variable-naming-style=snake_case + +# Regular expression matching correct variable names. Overrides variable- +# naming-style. If left empty, variable names will be checked with the set +# naming style. variable-rgx=[a-z_][a-z0-9_]{2,35}$ -# Regular expression matching correct constant names -const-rgx=(([A-Z_][A-Z0-9_]*)|(__.*__))$ -# Regular expression matching correct attribute names -attr-rgx=[a-z_][a-z0-9_]{2,30}$ +[CLASSES] -# Regular expression matching correct argument names -argument-rgx=[a-z_][a-z0-9_]{2,30}$ +# Warn about protected attribute access inside special methods +check-protected-access-in-special-methods=no -# Regular expression matching correct class attribute names -class-attribute-rgx=([A-Za-z_][A-Za-z0-9_]{2,30}|(__.*__))$ +# List of method names used to declare (i.e. assign) instance attributes. +defining-attr-methods=__init__, + __new__, + setUp -# Regular expression matching correct inline iteration names -inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ +# List of member names, which should be excluded from the protected access +# warning. +exclude-protected=_asdict, + _fields, + _replace, + _source, + _make -# Regular expression matching correct class names -class-rgx=[A-Z_][a-zA-Z0-9]+$ +# List of valid names for the first argument in a class method. +valid-classmethod-first-arg=cls -# Regular expression matching correct module names -module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ +# List of valid names for the first argument in a metaclass class method. +valid-metaclass-classmethod-first-arg=mcs -# Regular expression matching correct method names -method-rgx=[a-z_][a-z0-9_]{2,30}$ -# Regular expression which should only match function or class names that do -# not require a docstring. -no-docstring-rgx=^_ +[DESIGN] -# Minimum line length for functions/classes that require docstrings, shorter -# ones are exempt. -docstring-min-length=-1 +# List of regular expressions of class ancestor names to ignore when counting +# public methods (see R0903) +exclude-too-few-public-methods= +# List of qualified class names to ignore when counting class parents (see +# R0901) +ignored-parents= -[ELIF] +# Maximum number of arguments for function / method. +max-args=5 -# Maximum number of nested blocks for function / method body -max-nested-blocks=7 +# Maximum number of attributes for a class (see R0902). +max-attributes=7 +# Maximum number of boolean expressions in an if statement (see R0916). +max-bool-expr=5 -[SPELLING] +# Maximum number of branch for function / method body. +max-branches=12 -# Spelling dictionary name. Available dictionaries: en_IE (myspell), en_ZW -# (myspell), en_CA (myspell), en_BS (myspell), en_ZM (myspell), en_HK -# (myspell), en_NG (myspell), en_PH (myspell), en_DK (myspell), en_AG -# (myspell), en_SG (myspell), en_NA (myspell), en_NZ (myspell), en_MW -# (myspell), en_US (myspell), en_GB (myspell), en_JM (myspell), en_BZ -# (myspell), en_TT (myspell), en_IN (myspell), en_GH (myspell), en_ZA -# (myspell), en_AU (myspell), en_BW (myspell). -spelling-dict= +# Maximum number of locals for function / method body. +max-locals=15 -# List of comma separated words that should not be checked. -spelling-ignore-words= +# Maximum number of parents for a class (see R0901). +max-parents=7 -# A path to a file that contains private dictionary; one word per line. -spelling-private-dict-file= +# Maximum number of positional arguments for function / method. +max-positional-arguments=13 -# Tells whether to store unknown words to indicated private dictionary in -# --spelling-private-dict-file option instead of raising a message. -spelling-store-unknown-words=no +# Maximum number of public methods for a class (see R0904). +max-public-methods=20 +# Maximum number of return / yield for function / method body. +max-returns=6 -[SIMILARITIES] +# Maximum number of statements in function / method body. +max-statements=150 -# Minimum lines number of a similarity. -min-similarity-lines=7 +# Minimum number of public methods for a class (see R0903). +min-public-methods=1 -# Ignore comments when computing similarities. -ignore-comments=yes -# Ignore docstrings when computing similarities. -ignore-docstrings=yes +[EXCEPTIONS] -# Ignore imports when computing similarities. -ignore-imports=no +# Exceptions that will emit a warning when caught. +overgeneral-exceptions=builtins.Exception [FORMAT] -# Maximum number of characters on a single line. -max-line-length=100 +# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. +expected-line-ending-format= # Regexp for a line that is allowed to be longer than the limit. ignore-long-lines=^\s*(# )?<?https?://\S+>?$ -# Allow the body of an if to be on the same line as the test if there is no -# else. -single-line-if-stmt=no - -# Maximum number of lines in a module -max-module-lines=1200 +# Number of spaces of indent required inside a hanging or continued line. +indent-after-paren=4 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' -# Number of spaces of indent required inside a hanging or continued line. -indent-after-paren=4 +# Maximum number of characters on a single line. +max-line-length=100 -# Expected format of line ending, e.g. empty (any line ending), LF or CRLF. -expected-line-ending-format= +# Maximum number of lines in a module. +max-module-lines=1200 +# Allow the body of a class to be on the same line as the declaration if body +# contains single statement. +single-line-class-stmt=no -[TYPECHECK] +# Allow the body of an if to be on the same line as the test if there is no +# else. +single-line-if-stmt=no -# Tells whether missing members accessed in mixin class should be ignored. A -# mixin class is detected if its name ends with "mixin" (case insensitive). -ignore-mixin-members=yes -# List of module names for which member attributes should not be checked -# (useful for modules/projects where namespaces are manipulated during runtime -# and thus existing member attributes cannot be deduced by static analysis. It -# supports qualified module names, as well as Unix pattern matching. -ignored-modules=numpy,bokeh.palettes +[IMPORTS] -# List of class names for which member attributes should not be checked (useful -# for classes with dynamically set attributes). This supports the use of -# qualified names. -ignored-classes=optparse.Values,thread._local,_thread._local +# List of modules that can be imported at any level, not just the top level +# one. +allow-any-import-level= -# List of members which are set dynamically and missed by pylint inference -# system, and so shouldn't trigger E1101 when accessed. Python regular -# expressions are accepted. -generated-members= +# Allow explicit reexports by alias from a package __init__. +allow-reexport-from-package=no -# List of decorators that produce context managers, such as -# contextlib.contextmanager. Add to this list to register other decorators that -# produce valid context managers. -contextmanager-decorators=contextlib.contextmanager +# Allow wildcard imports from modules that define __all__. +allow-wildcard-with-all=no +# Deprecated modules which should not be used, separated by a comma. +deprecated-modules=regsub, + TERMIOS, + Bastion, + rexec -[MISCELLANEOUS] +# Output a graph (.gv or any supported image format) of external dependencies +# to the given file (report RP0402 must not be disabled). +ext-import-graph= -# List of note tags to take in consideration, separated by a comma. -notes=FIXME,XXX,TODO +# Output a graph (.gv or any supported image format) of all (i.e. internal and +# external) dependencies to the given file (report RP0402 must not be +# disabled). +import-graph= + +# Output a graph (.gv or any supported image format) of internal dependencies +# to the given file (report RP0402 must not be disabled). +int-import-graph= + +# Force import order to recognize a module as part of the standard +# compatibility libraries. +known-standard-library= + +# Force import order to recognize a module as part of a third party library. +known-third-party=enchant + +# Couples of modules and preferred modules, separated by a comma. +preferred-modules= [LOGGING] +# The type of string formatting that logging methods do. `old` means using % +# formatting, `new` is for `{}` formatting. +logging-format-style=old + # Logging modules to check that the string format arguments are in logging -# function parameter format +# function parameter format. logging-modules=logging -[VARIABLES] +[MESSAGES CONTROL] -# Tells whether we should check for unused import in __init__ files. -init-import=no +# Only show warnings with the listed confidence levels. Leave empty to show +# all. Valid levels: HIGH, CONTROL_FLOW, INFERENCE, INFERENCE_FAILURE, +# UNDEFINED. +confidence=HIGH, + CONTROL_FLOW, + INFERENCE, + INFERENCE_FAILURE, + UNDEFINED -# A regular expression matching the name of dummy variables (i.e. expectedly -# not used). -dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy +# Disable the message, report, category or checker with the given id(s). You +# can either give multiple identifiers separated by comma (,) or put this +# option multiple times (only on the command line, not in the configuration +# file where it should appear only once). You can also use "--disable=all" to +# disable everything first and then re-enable specific checks. For example, if +# you want to run only the similarities checker, you can use "--disable=all +# --enable=similarities". If you want to run only the classes checker, but have +# no Warning level messages displayed, use "--disable=all --enable=classes +# --disable=W". +disable=raw-checker-failed, + bad-inline-option, + locally-disabled, + file-ignored, + suppressed-message, + useless-suppression, + deprecated-pragma, + use-symbolic-message-instead, + use-implicit-booleaness-not-comparison-to-string, + use-implicit-booleaness-not-comparison-to-zero, + too-many-instance-attributes, + too-many-branches, + wildcard-import, + wrong-import-position, + too-many-arguments, + broad-exception-caught, + unused-wildcard-import, + fixme, + too-many-locals, + multiple-statements, + bare-except, + unused-format-string-argument, + trailing-newlines, + unused-variable, + use-implicit-booleaness-not-len, + try-except-raise, + unnecessary-pass, + unused-argument, + no-value-for-parameter, + consider-using-f-string, + consider-using-with -# List of additional names supposed to be defined in builtins. Remember that -# you should avoid to define new builtins when possible. -additional-builtins= +# Enable the message, report, category or checker with the given id(s). You can +# either give multiple identifier separated by comma (,) or put this option +# multiple time (only on the command line, not in the configuration file where +# it should appear only once). See also the "--disable" option for examples. +enable= -# List of strings which can identify a callback function by name. A callback -# name must start or end with one of those strings. -callbacks=cb_,_cb -# List of qualified module names which can have objects that can redefine -# builtins. -redefining-builtins-modules=six.moves,future.builtins +[METHOD_ARGS] +# List of qualified names (i.e., library.method) which require a timeout +# parameter e.g. 'requests.api.get,requests.api.post' +timeout-methods=requests.api.delete,requests.api.get,requests.api.head,requests.api.options,requests.api.patch,requests.api.post,requests.api.put,requests.api.request -[CLASSES] -# List of method names used to declare (i.e. assign) instance attributes. -defining-attr-methods=__init__,__new__,setUp +[MISCELLANEOUS] -# List of valid names for the first argument in a class method. -valid-classmethod-first-arg=cls +# List of note tags to take in consideration, separated by a comma. +notes=FIXME, + XXX, + TODO -# List of valid names for the first argument in a metaclass class method. -valid-metaclass-classmethod-first-arg=mcs +# Regular expression of note tags to take in consideration. +notes-rgx= -# List of member names, which should be excluded from the protected access -# warning. -exclude-protected=_asdict,_fields,_replace,_source,_make +[REFACTORING] -[IMPORTS] +# Maximum number of nested blocks for function / method body +max-nested-blocks=7 -# Deprecated modules which should not be used, separated by a comma -deprecated-modules=regsub,TERMIOS,Bastion,rexec +# Complete name of functions that never returns. When checking for +# inconsistent-return-statements if a never returning function is called then +# it will be considered as an explicit return statement and no message will be +# printed. +never-returning-functions=sys.exit,argparse.parse_error -# Create a graph of every (i.e. internal and external) dependencies in the -# given file (report RP0402 must not be disabled) -import-graph= +# Let 'consider-using-join' be raised when the separator to join on would be +# non-empty (resulting in expected fixes of the type: ``"- " + " - +# ".join(items)``) +suggest-join-with-non-empty-separator=yes -# Create a graph of external dependencies in the given file (report RP0402 must -# not be disabled) -ext-import-graph= -# Create a graph of internal dependencies in the given file (report RP0402 must -# not be disabled) -int-import-graph= +[REPORTS] -# Force import order to recognize a module as part of the standard -# compatibility libraries. -known-standard-library= +# Python expression which should return a score less than or equal to 10. You +# have access to the variables 'fatal', 'error', 'warning', 'refactor', +# 'convention', and 'info' which contain the number of messages in each +# category, as well as 'statement' which is the total number of statements +# analyzed. This score is used by the global evaluation report (RP0004). +evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) -# Force import order to recognize a module as part of a third party library. -known-third-party=enchant +# Template used to display messages. This is a python new-style format string +# used to format the message information. See doc for all details. +msg-template= -# Analyse import fallback blocks. This can be used to support both Python 2 and -# 3 compatible code, which means that the block might have code that exists -# only in one or another interpreter, leading to false positives when analysed. -analyse-fallback-blocks=no +# Set the output format. Available formats are: text, parseable, colorized, +# json2 (improved json format), json (old json format) and msvs (visual +# studio). You can also give a reporter class, e.g. +# mypackage.mymodule.MyReporterClass. +#output-format= +# Tells whether to display a full report or only the messages. +reports=no -[DESIGN] +# Activate the evaluation score. +score=yes -# Maximum number of arguments for function / method -max-args=5 -# Argument names that match this expression will be ignored. Default to name -# with leading underscore -ignored-argument-names=_.* +[SIMILARITIES] -# Maximum number of locals for function / method body -max-locals=15 +# Comments are removed from the similarity computation +ignore-comments=yes -# Maximum number of return / yield for function / method body -max-returns=6 +# Docstrings are removed from the similarity computation +ignore-docstrings=yes -# Maximum number of branch for function / method body -max-branches=12 +# Imports are removed from the similarity computation +ignore-imports=no -# Maximum number of statements in function / method body -max-statements=150 +# Signatures are removed from the similarity computation +ignore-signatures=yes -# Maximum number of parents for a class (see R0901). -max-parents=7 +# Minimum lines number of a similarity. +min-similarity-lines=7 -# Maximum number of attributes for a class (see R0902). -max-attributes=7 -# Minimum number of public methods for a class (see R0903). -min-public-methods=1 +[SPELLING] -# Maximum number of public methods for a class (see R0904). -max-public-methods=20 +# Limits count of emitted suggestions for spelling mistakes. +max-spelling-suggestions=4 -# Maximum number of boolean expressions in a if statement -max-bool-expr=5 +# Spelling dictionary name. Available dictionaries: en_AG (hunspell), en_AU +# (hunspell), en_BS (hunspell), en_BW (hunspell), en_BZ (hunspell), en_CA +# (hunspell), en_DK (hunspell), en_GB (hunspell), en_GH (hunspell), en_HK +# (hunspell), en_IE (hunspell), en_IN (hunspell), en_JM (hunspell), en_MW +# (hunspell), en_NA (hunspell), en_NG (hunspell), en_NZ (hunspell), en_PH +# (hunspell), en_SG (hunspell), en_TT (hunspell), en_US (hunspell), en_ZA +# (hunspell), en_ZM (hunspell), en_ZW (hunspell). +spelling-dict= +# List of comma separated words that should be considered directives if they +# appear at the beginning of a comment and should not be checked. +spelling-ignore-comment-directives=fmt: on,fmt: off,noqa:,noqa,nosec,isort:skip,mypy: -[EXCEPTIONS] +# List of comma separated words that should not be checked. +spelling-ignore-words= -# Exceptions that will emit a warning when being caught. Defaults to -# "Exception" -overgeneral-exceptions=builtins.Exception +# A path to a file that contains the private dictionary; one word per line. +spelling-private-dict-file= + +# Tells whether to store unknown words to the private dictionary (see the +# --spelling-private-dict-file option) instead of raising a message. +spelling-store-unknown-words=no + + +[STRING] + +# This flag controls whether inconsistent-quotes generates a warning when the +# character used as a quote delimiter is used inconsistently within a module. +check-quote-consistency=no + +# This flag controls whether the implicit-str-concat should generate a warning +# on implicit string concatenation in sequences defined over several lines. +check-str-concat-over-line-jumps=no + + +[TYPECHECK] + +# List of decorators that produce context managers, such as +# contextlib.contextmanager. Add to this list to register other decorators that +# produce valid context managers. +contextmanager-decorators=contextlib.contextmanager + +# List of members which are set dynamically and missed by pylint inference +# system, and so shouldn't trigger E1101 when accessed. Python regular +# expressions are accepted. +generated-members= + +# Tells whether to warn about missing members when the owner of the attribute +# is inferred to be None. +ignore-none=yes + +# This flag controls whether pylint should warn about no-member and similar +# checks whenever an opaque object is returned when inferring. The inference +# can return multiple potential results while evaluating a Python object, but +# some branches might not be evaluated, which results in partial inference. In +# that case, it might be useful to still emit no-member and other checks for +# the rest of the inferred objects. +ignore-on-opaque-inference=yes + +# List of symbolic message names to ignore for Mixin members. +ignored-checks-for-mixins=no-member, + not-async-context-manager, + not-context-manager, + attribute-defined-outside-init + +# List of class names for which member attributes should not be checked (useful +# for classes with dynamically set attributes). This supports the use of +# qualified names. +ignored-classes=optparse.Values,thread._local,_thread._local + +# Show a hint with possible names when a member name was not found. The aspect +# of finding the hint is based on edit distance. +missing-member-hint=yes + +# The minimum edit distance a name should have in order to be considered a +# similar match for a missing member name. +missing-member-hint-distance=1 + +# The total number of similar names that should be taken in consideration when +# showing a hint for a missing member. +missing-member-max-choices=1 + +# Regex pattern to define which classes are considered mixins. +mixin-class-rgx=.*[Mm]ixin + +# List of decorators that change the signature of a decorated function. +signature-mutators= + + +[VARIABLES] + +# List of additional names supposed to be defined in builtins. Remember that +# you should avoid defining new builtins when possible. +additional-builtins= + +# Tells whether unused global variables should be treated as a violation. +allow-global-unused-variables=yes + +# List of names allowed to shadow builtins +allowed-redefined-builtins= + +# List of strings which can identify a callback function by name. A callback +# name must start or end with one of those strings. +callbacks=cb_, + _cb + +# A regular expression matching the name of dummy variables (i.e. expected to +# not be used). +dummy-variables-rgx=(_+[a-zA-Z0-9]*?$)|dummy + +# Argument names that match this expression will be ignored. +ignored-argument-names=_.* + +# Tells whether we should check for unused import in __init__ files. +init-import=no + +# List of qualified module names which can have objects that can redefine +# builtins. +redefining-builtins-modules=six.moves,future.builtins
    2. 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